diff --git a/.hgignore b/.hgignore new file mode 100644 index 00000000..62aa69eb --- /dev/null +++ b/.hgignore @@ -0,0 +1,200 @@ +# Ignore file for Visual Studio 2010 + +# use glob syntax +syntax: glob + +# Ignore Visual Studio 2010 files +*.obj +*StyleCop.Cache +#*.exe +*.pdb +*.user +*.aps +*.pch +*.vspscc +*_i.c +*_p.c +*.ncb +*.suo +*.tlb +*.tlh +*.bak +*.cache +*.ilk +*.log +*.lib +*.sbr +*.scc +*.vsmdi +*.onetoc2 +[Bb]in +[Db]ebug*/ +[Tt]est[Rr]esults*/ +obj/ +[Rr]elease*/ +_Resharper*/ +_ReSharper*/ +Framework 4.0\DotSpatial.Desktop\_ReSharper.DotSpatial.Desktop* +Framework 4.0\TestViewer\_ReSharper.TestViewer* +Framework 4.0\_ReSharper* +Framework 4.0\DotSpatial.Forms.Ribbons\_ReSharper* +Unit Tests\DotSpatial_Topology\_ReSharper* +Unit Tests\Framework 4.0\DotSpatial_Data\_ReSharper* +Framework 4.0\Tools\DotSpatial.Tools\_ReSharper* +Source\Main\Packages* +*_Resharper*/ +[Tt]est[Rr]esult* +[Bb]uild[Ll]og.* +*.[Pp]ublish.xml +glob:System.Spatial.Topology/System.Spatial.Topology/ClassDiagram3.cd +*.build +*.bat +glob:Binaries/ +glob:*.ReSharper +glob:*.orig +*.csproj.vs10x +*.sln.docstates +Source/Packages/ +Documentation/OnlineHelp/build/ +Source/packages/ +Source/HDReferenceFixer.exe +Source/DataAggregation.1.5.11.nupkg +Source/HydroDesktop.MainPlugin/credits.txt +Source/HydroDesktop.MainPlugin/Resources/zoom_selection_32x32.png +Source/HydroDesktop.MainPlugin/Resources/zoom_selection_16x16.png +Source/HydroDesktop.MainPlugin/Resources/zoom_out_32x32.png +Source/HydroDesktop.MainPlugin/Resources/zoom_out_16x16.png +Source/HydroDesktop.MainPlugin/Resources/zoom_layer_32x32.png +Source/HydroDesktop.MainPlugin/Resources/zoom_layer_16x16.png +Source/HydroDesktop.MainPlugin/Resources/zoom_in_32x32.png +Source/HydroDesktop.MainPlugin/Resources/zoom_in_16x16.png +Source/HydroDesktop.MainPlugin/Resources/zoom_extend_32x32.png +Source/HydroDesktop.MainPlugin/Resources/zoom_extend_16x16.png +Source/HydroDesktop.MainPlugin/Resources/zoom_coordinate_32x32.png +Source/HydroDesktop.MainPlugin/Resources/zoom_coordinate_16x16.png +Source/HydroDesktop.MainPlugin/Resources/zoom_32x32.png +Source/HydroDesktop.MainPlugin/Resources/zoom_16x16.png +Source/HydroDesktop.MainPlugin/Resources/select_32x32.png +Source/HydroDesktop.MainPlugin/Resources/select_16x16.png +Source/HydroDesktop.MainPlugin/Resources/save_as_32x32.png +Source/HydroDesktop.MainPlugin/Resources/save_as_16x16.png +Source/HydroDesktop.MainPlugin/Resources/printer_32x32.png +Source/HydroDesktop.MainPlugin/Resources/printer_16x16.png +Source/HydroDesktop.MainPlugin/Resources/measure_32x32.png +Source/HydroDesktop.MainPlugin/Resources/measure_16x16.png +Source/HydroDesktop.MainPlugin/Resources/layer_save_32x32.png +Source/HydroDesktop.MainPlugin/Resources/layer_save_16x16.png +Source/HydroDesktop.MainPlugin/Resources/layer_remove_32x32.png +Source/HydroDesktop.MainPlugin/Resources/layer_remove_16x16.png +Source/HydroDesktop.MainPlugin/Resources/layer_add_32x32.png +Source/HydroDesktop.MainPlugin/Resources/layer_add_16x16.png +Source/HydroDesktop.MainPlugin/Resources/info_rhombus_32x32.png +Source/HydroDesktop.MainPlugin/Resources/info_rhombus_16x16.png +Source/HydroDesktop.MainPlugin/Resources/folder_32x32.png +Source/HydroDesktop.MainPlugin/Resources/folder_16x16.png +Source/HydroDesktop.MainPlugin/Resources/document_empty_32x32.png +Source/HydroDesktop.MainPlugin/Resources/document_empty_16x16.png +Source/HydroDesktop.MainPlugin/Resources/disk_32x32.png +Source/HydroDesktop.MainPlugin/Resources/disk_16x16.png +Source/HydroDesktop.MainPlugin/Resources/deselect_32x32.png +Source/HydroDesktop.MainPlugin/Resources/deselect_16x16.png +HydroDesktop.app/Contents/Resources/HydroDesktop.icns +HydroDesktop.app/Contents/MacOS/zh-tw/ZedGraph.resources.dll +HydroDesktop.app/Contents/MacOS/zh-cn/ZedGraph.resources.dll +HydroDesktop.app/Contents/MacOS/tr/ZedGraph.resources.dll +HydroDesktop.app/Contents/MacOS/sv/ZedGraph.resources.dll +HydroDesktop.app/Contents/MacOS/sk/ZedGraph.resources.dll +HydroDesktop.app/Contents/MacOS/ru/ZedGraph.resources.dll +HydroDesktop.app/Contents/MacOS/pt/ZedGraph.resources.dll +HydroDesktop.app/Contents/MacOS/ja/ZedGraph.resources.dll +HydroDesktop.app/Contents/MacOS/it/ZedGraph.resources.dll +HydroDesktop.app/Contents/MacOS/hu/ZedGraph.resources.dll +HydroDesktop.app/Contents/MacOS/fr/ZedGraph.resources.dll +HydroDesktop.app/Contents/MacOS/es/ZedGraph.resources.dll +HydroDesktop.app/Contents/MacOS/de/ZedGraph.resources.dll +HydroDesktop.app/Contents/MacOS/ZedGraph.dll +HydroDesktop.app/Contents/MacOS/Support/Mono/libsqlite3.so.0 +HydroDesktop.app/Contents/MacOS/Support/Mono/libsqlite3.0.dylib +HydroDesktop.app/Contents/MacOS/Support/Mono/System.Data.SQLite.dll +HydroDesktop.app/Contents/MacOS/Support/Mono/System.Data.SQLite.Linq.dll +HydroDesktop.app/Contents/MacOS/Plugins/Wizard.UI.dll +HydroDesktop.app/Contents/MacOS/Plugins/Wizard.Controls.dll +HydroDesktop.app/Contents/MacOS/Plugins/TableView.dll +HydroDesktop.app/Contents/MacOS/Plugins/Search3.dll.config +HydroDesktop.app/Contents/MacOS/Plugins/Search3.dll +HydroDesktop.app/Contents/MacOS/Plugins/Newtonsoft.Json.dll +HydroDesktop.app/Contents/MacOS/Plugins/MetadataFetcher.dll +HydroDesktop.app/Contents/MacOS/Plugins/ICSharpCode.SharpZipLib.dll +HydroDesktop.app/Contents/MacOS/Plugins/HelpTab.dll.config +HydroDesktop.app/Contents/MacOS/Plugins/HelpTab.dll +HydroDesktop.app/Contents/MacOS/Plugins/GraphView.dll +HydroDesktop.app/Contents/MacOS/Plugins/ExportToCSV.dll.config +HydroDesktop.app/Contents/MacOS/Plugins/ExportToCSV.dll +HydroDesktop.app/Contents/MacOS/Plugins/ExcelExtension.dll +HydroDesktop.app/Contents/MacOS/Plugins/Excel.dll +HydroDesktop.app/Contents/MacOS/Plugins/EPADelineation.dll.config +HydroDesktop.app/Contents/MacOS/Plugins/EPADelineation.dll +HydroDesktop.app/Contents/MacOS/Plugins/DataImport.dll +HydroDesktop.app/Contents/MacOS/Plugins/DataAggregation.dll +HydroDesktop.app/Contents/MacOS/Mono Extensions/HydroDesktop.Mono.HeaderControl.dll +HydroDesktop.app/Contents/MacOS/Mono Extensions/HydroDesktop.Mono.Docking.dll +HydroDesktop.app/Contents/MacOS/Microsoft.Practices.Unity.dll +HydroDesktop.app/Contents/MacOS/Microsoft.Practices.Unity.Configuration.dll +HydroDesktop.app/Contents/MacOS/Microsoft.Practices.ServiceLocation.dll +HydroDesktop.app/Contents/MacOS/HydroDesktop_1_6_dev.vshost.exe +HydroDesktop.app/Contents/MacOS/HydroDesktop_1_6_dev.exe +HydroDesktop.app/Contents/MacOS/HydroDesktopSplashLogo.png +HydroDesktop.app/Contents/MacOS/HydroDesktopScript +HydroDesktop.app/Contents/MacOS/HydroDesktop.ZedGraphEx.dll +HydroDesktop.app/Contents/MacOS/HydroDesktop.WebServices.dll +HydroDesktop.app/Contents/MacOS/HydroDesktop.ObjectModel.Controls.dll +HydroDesktop.app/Contents/MacOS/HydroDesktop.Interfaces.dll +HydroDesktop.app/Contents/MacOS/HydroDesktop.Help.dll +HydroDesktop.app/Contents/MacOS/HydroDesktop.ErrorReporting.dll +HydroDesktop.app/Contents/MacOS/HydroDesktop.Data.dll +HydroDesktop.app/Contents/MacOS/HydroDesktop.Data.ODMCVServiceClient.dll +HydroDesktop.app/Contents/MacOS/HydroDesktop.Configuration.dll +HydroDesktop.app/Contents/MacOS/HydroDesktop.Common.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Topology.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Symbology.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Symbology.Forms.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Serialization.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Projections.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Projections.Forms.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Positioning.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Positioning.Forms.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Positioning.Design.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Mono.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Modeling.Forms.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Extensions.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Data.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Data.Forms.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Controls.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Compatibility.dll +HydroDesktop.app/Contents/MacOS/DotSpatial.Analysis.dll +HydroDesktop.app/Contents/MacOS/Application Extensions/NuGet.Core.dll +HydroDesktop.app/Contents/MacOS/Application Extensions/HydroDesktop.SplashScreenManager.dll +HydroDesktop.app/Contents/MacOS/Application Extensions/HydroDesktop.SimpleLegend.dll +HydroDesktop.app/Contents/MacOS/Application Extensions/HydroDesktop.SeriesView.dll +HydroDesktop.app/Contents/MacOS/Application Extensions/HydroDesktop.MainPlugin.dll +HydroDesktop.app/Contents/MacOS/Application Extensions/DotSpatial.Plugins.MenuBar.dll +HydroDesktop.app/Contents/MacOS/Application Extensions/DotSpatial.Plugins.ExtensionManager.dll +HydroDesktop.app/Contents/MacOS/Application Extensions/BruTile.dll +HydroDesktop.app/Contents/Info.plist +HydroDesktop.app/Contents/MacOS/Application Extensions/HydroDesktop.Mono.HeaderControl.dll +HydroDesktop.app/Contents/MacOS/Application Extensions/HydroDesktop.Mono.Docking.dll +.DS_Store +HydroDesktop.app/Contents/MacOS/Plugins/Resources/Synonyms.xml +HydroDesktop.app/Contents/MacOS/Plugins/Resources/OntologyTree.xml +HydroDesktop.app/Contents/MacOS/Plugins/EditView.dll +HydroDesktop.app/Contents/MacOS/Plugins/DotSpatial.Plugins.WebMap.dll +HydroDesktop.app/Contents/MacOS/Plugins/BruTile.dll +HydroDesktop.app/Contents/MacOS/Plugins/HydroDesktop.ObjectModel.Controls.dll +HydroDesktop.app/Contents/MacOS/Plugins/DataDownload.dll.config +HydroDesktop.app/Contents/MacOS/Plugins/DataDownload.dll +HydroDesktop.app/Contents/MacOS/HydroDesktop_1_6_dev.sln +HydroDesktop.app/Contents/MacOS/Application Extensions/HydroDesktop.DownloadExtensions.dll +HydroDesktop.app/Contents/MacOS/Application Extensions/BruTile.Desktop.dll +HydroDesktop.app/Contents/MacOS/Application Extensions/BruTile.MbTiles.dll +HydroDesktop.app/Contents/MacOS/Application Extensions/DotSpatial.Plugins.WebMap.dll +Source/HydroDesktop.HeaderControl/Resources/nodata.bmp diff --git a/Build/BuildHydroDesktop.proj b/Build/BuildHydroDesktop.proj new file mode 100644 index 00000000..9ea79c34 --- /dev/null +++ b/Build/BuildHydroDesktop.proj @@ -0,0 +1,356 @@ + + + + + + + ./ + ./ + ./ + ./ + + + + + + + + + + + hydrodesktop + 1 + 3 + + Beta + false + false + false + Hydrodesktop Release AutoBuild + + Planned + + + + + + + + + + + + cuahsihisdev + hisdevelopers + $(MSBuildProjectDirectory)/../ + $(ProgramFiles)\Inno Setup 5 + https://hydrodesktop.svn.codeplex.com/svn + $(HgBase)/Maps + default + + $(HgBase)/hydrodesktop/trunk + + + + Debug + + + + + + + + + + + Clean + + + + + + + + + + + + + + + + + + + + +$(Major).$(Minor).$(Build).$(Revision) + + + + + + + + + + + + + + + + + + + + + + BuildMain + + + + + + + + + + + + + BuildCorePlugins + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Installer + $(MSBuildProjectDirectory)\..\Installer + $(MSBuildProjectDirectory)\HydrodesktopInstaller + HydroDesktop_Installer_$(ReleaseName)_$(ReleaseVersion) + + + + + + + + + Zip Source + + + + + + + + + + + + Create Release + + + + + + + + + Upload Files To Codeplex + $(MSBuildProjectDirectory)\HydrodesktopInstaller + HydroDesktop_$(ReleaseName)_Installer + + + + + RuntimeBinary + + + + SourceCode + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Build/BuildHydroDesktop.rsp b/Build/BuildHydroDesktop.rsp new file mode 100644 index 00000000..9e131710 --- /dev/null +++ b/Build/BuildHydroDesktop.rsp @@ -0,0 +1,14 @@ +# MSBUILD Response file +# used to set the preferences for an automated build +/p:SendEmail=false +/p:EmailTo=his-dev@sdsc.edu +/p:EmailFrom=me@example.com +/p:EmailServerUserName=me +/p:EmailPassword=none +/p:EmailServer=relay.sdsc.edu +/p:EmailEnableSSL=false +###################### +# codeplex +############### +#/p:User=Codeplex +#/p:Password=None \ No newline at end of file diff --git a/Build/CodePlexTasks/CodePlex.WebServices.Client.XmlSerializers.dll b/Build/CodePlexTasks/CodePlex.WebServices.Client.XmlSerializers.dll new file mode 100644 index 00000000..3d7bf77c Binary files /dev/null and b/Build/CodePlexTasks/CodePlex.WebServices.Client.XmlSerializers.dll differ diff --git a/Build/CodePlexTasks/CodePlex.WebServices.Client.dll b/Build/CodePlexTasks/CodePlex.WebServices.Client.dll new file mode 100644 index 00000000..7b5c9355 Binary files /dev/null and b/Build/CodePlexTasks/CodePlex.WebServices.Client.dll differ diff --git a/Build/CodePlexTasks/ccnet.codeplex.plugin.dll b/Build/CodePlexTasks/ccnet.codeplex.plugin.dll new file mode 100644 index 00000000..385b1a37 Binary files /dev/null and b/Build/CodePlexTasks/ccnet.codeplex.plugin.dll differ diff --git a/Build/HdBuildVersion.txt b/Build/HdBuildVersion.txt new file mode 100644 index 00000000..fd76c732 --- /dev/null +++ b/Build/HdBuildVersion.txt @@ -0,0 +1 @@ +1.3.0.0 \ No newline at end of file diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/Interop.COMAdmin.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/Interop.COMAdmin.dll new file mode 100644 index 00000000..b9383304 Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/Interop.COMAdmin.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/Interop.IWshRuntimeLibrary.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/Interop.IWshRuntimeLibrary.dll new file mode 100644 index 00000000..2400e761 Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/Interop.IWshRuntimeLibrary.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/Ionic.Zip.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/Ionic.Zip.dll new file mode 100644 index 00000000..7b11577f Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/Ionic.Zip.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/IronPython.Modules.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/IronPython.Modules.dll new file mode 100644 index 00000000..7d93410e Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/IronPython.Modules.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/IronPython.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/IronPython.dll new file mode 100644 index 00000000..26fe7e17 Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/IronPython.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/IronRuby.Libraries.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/IronRuby.Libraries.dll new file mode 100644 index 00000000..65159680 Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/IronRuby.Libraries.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/IronRuby.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/IronRuby.dll new file mode 100644 index 00000000..b19a2694 Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/IronRuby.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.BizTalk.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.BizTalk.dll new file mode 100644 index 00000000..e301e0c2 Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.BizTalk.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.BizTalk.xsd b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.BizTalk.xsd new file mode 100644 index 00000000..ab55729e --- /dev/null +++ b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.BizTalk.xsd @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Framework.xsd b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Framework.xsd new file mode 100644 index 00000000..80c0cd36 --- /dev/null +++ b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Framework.xsd @@ -0,0 +1,1653 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Executes .NET code dynamically. + + + + + + + Specifies the task action to do. + + + + + + + Compiles and executes code. + Required: @Code. + Optional: @Inputs, @Outputs, @Input1, @Input2, @Input3. + Outputs: "Output1", "Output2", "Output3", "OutputMethodId". + Rare Optional: @References, @UsingNamespaces, @NoDefaultParameters, @NoDefaultReferences, @NoDefaultUsingNamespaces. + + + + + + + Calls a method. The method must have been previously defined by "Define". + Required: @MethodId. + Optional: @Input1, @Input2, @Input3. + Outputs: "Output1", "Output2", "Output3". + + + + + + + Defines a method containing code. + Required: @Code. + Optional: @Inputs, @Outputs. + Outputs: "OutputMethodId". + Rare Optional: @References, @UsingNamespaces, @NoDefaultParameters, @NoDefaultReferences, @NoDefaultUsingNamespaces. + + + + + + + Creates a closure. + Required: @MethodId. + Outputs: "OutputClosureId". + + + + + + + Sets an argument value for a closure. + Required: @ClosureId, @Name, @InputValue. + + + + + + + Invokes a closure. + Required: @ClosureId. + + + + + + + Retrieves a result value from a closure. + Required: @ClosureId, @Name. + Outputs: "OutputValue" + + + + + + + Destroys a closure. + Required: @ClosureId. + + + + + + + + + + The actual method code. + Required for: "Run", "Define". + + + + + + + The input parameters for the method. + Optional for: "Run", "Define". + + + + + + + The output parameters for the method. + Optional for: "Run", "Define". + + + + + + + Additional assembly references for the method. + Optional for: "Run", "Define". + + + + + + + Additional namespace scope imports for the method. + Optional for: "Run", "Define". + + + + + + + If true, no default parameters are passed to the method. + Optional for: "Run", "Define". + + + + + + + If true, no default assembly references are linked to the method. + Optional for: "Run", "Define". + + + + + + + If true, no namespace scopes are imported for the method. + Optional for: "Run", "Define". + + + + + + + The method on which to perform the task action. + Required for: "Call", "Create". + + + + + + + The closure on which to perform the task action. + Required for: "SetInput", "Invoke", "GetOutput", "Destroy". + + + + + + + The name of the parameter to set or get. + Required for: "SetInput", "GetOutput". + + + + + + + The value to pass for this parameter. + Required for: "SetInput". + + + + + + + The value to pass for the first parameter. + Optional for: "Run", "Call". + + + + + + + The value to pass for the second parameter. + Optional for: "Run", "Call". + + + + + + + The value to pass for the third parameter. + Optional for: "Run", "Call". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Iis7.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Iis7.dll new file mode 100644 index 00000000..4e555053 Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Iis7.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Iis7.xsd b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Iis7.xsd new file mode 100644 index 00000000..4ce5bc72 --- /dev/null +++ b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Iis7.xsd @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.JSharp.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.JSharp.dll new file mode 100644 index 00000000..f431043a Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.JSharp.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.JSharp.xsd b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.JSharp.xsd new file mode 100644 index 00000000..07c3a152 --- /dev/null +++ b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.JSharp.xsd @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Loggers.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Loggers.dll new file mode 100644 index 00000000..9464bb40 Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Loggers.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.MSTFSBuild2008.xsd b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.MSTFSBuild2008.xsd new file mode 100644 index 00000000..70d0902f --- /dev/null +++ b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.MSTFSBuild2008.xsd @@ -0,0 +1,745 @@ + + + + + + + + The Get task retrieves a read-only copy of the files and folders in a workspace by using specified options. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + The build URI. + + + + + + + REQUIRED. The workspace name. + + + + + + + The file versionspec. By default the versionspec used is T, or the latest version. + + + + + + + The items in the workspace. By default, Team Foundation Build gets all items in the workspace specified by the WorkspaceName property. + + + + + + + Specifies whether to overwrite writable files that are not checked out. + + + + + + + Populate the Gets, Replaces, Deletes and GetWarnings Item Groups + + + + + + + Specifies whether to display what would occur without actually performing the Get operation. + + + + + + + Specifies whether files are retrieved recursively. + + + + + + + Specifies whether the files are retrieved incrementally. + + + + + + + + + + + + The Label task attaches a label to the latest version of the files in the workspace. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + REQUIRED. The label name. By default, the name of the label created by Team Foundation Build is the same as the BuildNumber property. + + + + + + + The version of the file or folder. + + + + + + + Specifies the scope of the label + + + + + + + REQUIRED. The items to be labeled. + + + + + + + This corresponds to the /child option of tf.exe label command. + + + + + + + Specifies whether the files are labeled recursively. + + + + + + + The comment used for the label by Team Foundation Build. + + + + + + + + + + + + The GenCheckinNotesUpdateWorkItems task associates changesets and work items with a specified build. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + REQUIRED. The URI for the build definition. + + + + + + + The Team Foundation Build build number. + + + + + + + REQUIRED. The version number label to which the changesets and work items are associated. + + + + + + + The starting version number label from which the changesets and work items are associated. + + + + + + + Boolean property that specifies whether the Microsoft.VSTS.Build.IntegrationBuild of the associated work items should be updated with the build number. + + + + + + + + + + + + The CreateNewWorkItem task creates a new work item of the specified type and with the specified title and description. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + The Team Foundation Build build number. + + + + + + + REQUIRED. The work item description. + + + + + + + REQUIRED. The team project name. + + + + + + + REQUIRED. The work item title. + + + + + + + Specifies a list of field names and values for the created work item. + + + + + + + The work item type. + + + + + + + + + + + + The CreateWorkspaceTask task creates a workspace with the name and mapping file specified in the TFSBuild.proj file. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + REQUIRED. The URI for the build definition. + + + + + + + REQUIRED. The build directory. + + + + + + + REQUIRED. The solution root for directory for source files. + + + + + + + REQUIRED. The workspace name. + + + + + + + The comment used for the workspace. + + + + + + + + + + + + The DeleteWorkspaceTask task deletes the workspace left by the previous build. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + Indicates whether local items that are specified in the workspace mappings are deleted or not. + + + + + + + REQUIRED. The workspace name. + + + + + + + + + + + + The TestToolsTask task runs tests for an end-to-end build or for a desktop build. + + + + + + + + + The build configuration e.g. debug + + + + + + + The platform e.g. x86 + + + + + + + The Team Foundation Server URL. + + + + + + + The build number for the build. + + + + + + + The search path for test files. + + + + + + + Specifies where test results get uploaded. + + + + + + + The test metadata file. + + + + + + + The test configuration file. + + + + + + + The test list that is contained in the test metadata file. + + + + + + + The team project name. + + + + + + + The files that contain tests. + + + + + + + + + + + + The UpdateBuildNumberDropLocation updates the build number and drop location in the Team Foundation version control database. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + REQUIRED. The URI for the build definition. + + + + + + + REQUIRED. The new build number. + + + + + + + REQUIRED. The new drop location. + + + + + + + + + + + + The BuildStep task is a convenience task that adds, and potentially updates via the output ID property, a BuildStep. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + If specified, this is the Id of the build step that is updated. If not specified, a new build step is created. + + + + + + + REQUIRED. The URI for the build definition. + + + + + + + The name of the build step that this task adds. + + + + + + + The message that is displayed in the build report in the build steps section. + + + + + + + The status for the build step. + + + + + + + + + + + + The GetBuildProperties task outputs the initial values for the build properties. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + REQUIRED. The URI for the build definition. + + + + + + + + + + + + The SetBuildProperty task sets various properties for a build. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + REQUIRED. The URI for the build definition. + + + + + + + The build number. + + + + + + + The label name. + + + + + + + The Log Location. + + + + + + + + The compilation status. Valid values are Succeeded, Failed and Unknown. + + + + + + + + + + + + + + The drop location. + + + + + + + The build quality. + + + + + + + The build status. Valid values are NotStarted, InProgress, Succeeded, PartiallySucceeded, Failed, and Stopped. + + + + + + + + + + + + + + + + + The test status. Valid values are Succeeded, Failed, and Unknown. + + + + + + + + + + + + + + + + + + + The WorkspaceItemConverterTask task converts server items to local items and local items to server items. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + REQUIRED. The workspace name. + + + + + + + The workspace owner. + + + + + + + The server items that are converted to local items. + + + + + + + The local items that are converted to server items. + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sql2005.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sql2005.dll new file mode 100644 index 00000000..156cc1d5 Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sql2005.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sql2005.xsd b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sql2005.xsd new file mode 100644 index 00000000..aa6ec897 --- /dev/null +++ b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sql2005.xsd @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sql2008.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sql2008.dll new file mode 100644 index 00000000..610e828f Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sql2008.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sql2008.xsd b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sql2008.xsd new file mode 100644 index 00000000..1088dbd7 --- /dev/null +++ b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sql2008.xsd @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.StyleCop.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.StyleCop.dll new file mode 100644 index 00000000..30facb7d Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.StyleCop.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.StyleCop.xsd b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.StyleCop.xsd new file mode 100644 index 00000000..cf61f40d --- /dev/null +++ b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.StyleCop.xsd @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sync.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sync.dll new file mode 100644 index 00000000..eca1105e Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sync.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sync.xsd b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sync.xsd new file mode 100644 index 00000000..b0d96b2f --- /dev/null +++ b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Sync.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.TaskFactory.Dlr.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.TaskFactory.Dlr.dll new file mode 100644 index 00000000..2cdd9783 Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.TaskFactory.Dlr.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.TaskFactory.PowerShell.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.TaskFactory.PowerShell.dll new file mode 100644 index 00000000..533e9684 Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.TaskFactory.PowerShell.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Tfs.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Tfs.dll new file mode 100644 index 00000000..01a184b1 Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Tfs.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Tfs.xsd b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Tfs.xsd new file mode 100644 index 00000000..eb27f507 --- /dev/null +++ b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Tfs.xsd @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.VersionNumber.targets b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.VersionNumber.targets new file mode 100644 index 00000000..b9eb371a --- /dev/null +++ b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.VersionNumber.targets @@ -0,0 +1,127 @@ + + + + + + 1 + 0 + + + DateString + MMdd + AutoIncrement + 00 + + + + + 1 + 0 + + + DateString + MMdd + AutoIncrement + 00 + + + + + + + + + + + + + + + + + + + + + + false + false + + + + + + + + + + + + + + + + $(CoreCompileDependsOn); + UpdateAssemblyInfoFiles + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Virtualisation.VirtualPc.xsd b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Virtualisation.VirtualPc.xsd new file mode 100644 index 00000000..06a74fdc --- /dev/null +++ b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.Virtualisation.VirtualPc.xsd @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.WindowsVirtualPC.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.WindowsVirtualPC.dll new file mode 100644 index 00000000..8df3ad4e Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.WindowsVirtualPC.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.dll b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.dll new file mode 100644 index 00000000..5a481124 Binary files /dev/null and b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.dll differ diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.dll.config b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.dll.config new file mode 100644 index 00000000..39d87609 --- /dev/null +++ b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.dll.config @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.tasks b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.tasks new file mode 100644 index 00000000..c9b16747 --- /dev/null +++ b/Build/MSBuild.ExtensionPack.Binaries4.0.1.0/MSBuild.ExtensionPack.tasks @@ -0,0 +1,127 @@ + + + + $(MSBuildProjectDirectory) + $(BuildPath)\..\..\BuildBinaries\ + $(MSBuildExtensionsPath)\ExtensionPack\4.0\ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Build/MSBuild.Mercurial/Docs/MSBuild.Mercurial.chm b/Build/MSBuild.Mercurial/Docs/MSBuild.Mercurial.chm new file mode 100644 index 00000000..20751251 Binary files /dev/null and b/Build/MSBuild.Mercurial/Docs/MSBuild.Mercurial.chm differ diff --git a/Build/MSBuild.Mercurial/License.txt b/Build/MSBuild.Mercurial/License.txt new file mode 100644 index 00000000..8e992844 --- /dev/null +++ b/Build/MSBuild.Mercurial/License.txt @@ -0,0 +1,7 @@ +Copyright (c) 2010 Franois Karman + +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. \ No newline at end of file diff --git a/Build/MSBuild.Mercurial/MSBuild.Mercurial.dll b/Build/MSBuild.Mercurial/MSBuild.Mercurial.dll new file mode 100644 index 00000000..49ffa5b2 Binary files /dev/null and b/Build/MSBuild.Mercurial/MSBuild.Mercurial.dll differ diff --git a/Build/MSBuild.Mercurial/MSBuild.Mercurial.tasks b/Build/MSBuild.Mercurial/MSBuild.Mercurial.tasks new file mode 100644 index 00000000..9e220d39 --- /dev/null +++ b/Build/MSBuild.Mercurial/MSBuild.Mercurial.tasks @@ -0,0 +1,22 @@ + + + + + $(MSBuildExtensionsPath)\MSBuild.Mercurial + $(MSBuildMercurialPath)\MSBuild.Mercurial.dll + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuild.Mercurial/Samples/HgVersion.targets b/Build/MSBuild.Mercurial/Samples/HgVersion.targets new file mode 100644 index 00000000..e25553a9 --- /dev/null +++ b/Build/MSBuild.Mercurial/Samples/HgVersion.targets @@ -0,0 +1,125 @@ + + + + + + + 0.1.0 + + + + + + + true + + + + + false + + + + + + + + + + + true + + + + + false + + + + + + + + + + GenerateAssemblyInfo; + $(BuildDependsOn) + + + + + + + + + + + + 0 + + + + + + + + + + + ExtendedChecks; + $(BuildDependsOn) + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/Interop.COMAdmin.dll b/Build/MSBuildExtensionPackBinaries3.5.6.0/Interop.COMAdmin.dll new file mode 100644 index 00000000..b9383304 Binary files /dev/null and b/Build/MSBuildExtensionPackBinaries3.5.6.0/Interop.COMAdmin.dll differ diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/Interop.IWshRuntimeLibrary.dll b/Build/MSBuildExtensionPackBinaries3.5.6.0/Interop.IWshRuntimeLibrary.dll new file mode 100644 index 00000000..2400e761 Binary files /dev/null and b/Build/MSBuildExtensionPackBinaries3.5.6.0/Interop.IWshRuntimeLibrary.dll differ diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.BizTalk.dll b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.BizTalk.dll new file mode 100644 index 00000000..b939ea6f Binary files /dev/null and b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.BizTalk.dll differ diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.BizTalk.xsd b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.BizTalk.xsd new file mode 100644 index 00000000..4fc89fbb --- /dev/null +++ b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.BizTalk.xsd @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Framework.xsd b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Framework.xsd new file mode 100644 index 00000000..178fcc98 --- /dev/null +++ b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Framework.xsd @@ -0,0 +1,1647 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Executes .NET code dynamically. + + + + + + + Specifies the task action to do. + + + + + + + Compiles and executes code. + Required: @Code. + Optional: @Inputs, @Outputs, @Input1, @Input2, @Input3. + Outputs: "Output1", "Output2", "Output3", "OutputMethodId". + Rare Optional: @References, @UsingNamespaces, @NoDefaultParameters, @NoDefaultReferences, @NoDefaultUsingNamespaces. + + + + + + + Calls a method. The method must have been previously defined by "Define". + Required: @MethodId. + Optional: @Input1, @Input2, @Input3. + Outputs: "Output1", "Output2", "Output3". + + + + + + + Defines a method containing code. + Required: @Code. + Optional: @Inputs, @Outputs. + Outputs: "OutputMethodId". + Rare Optional: @References, @UsingNamespaces, @NoDefaultParameters, @NoDefaultReferences, @NoDefaultUsingNamespaces. + + + + + + + Creates a closure. + Required: @MethodId. + Outputs: "OutputClosureId". + + + + + + + Sets an argument value for a closure. + Required: @ClosureId, @Name, @InputValue. + + + + + + + Invokes a closure. + Required: @ClosureId. + + + + + + + Retrieves a result value from a closure. + Required: @ClosureId, @Name. + Outputs: "OutputValue" + + + + + + + Destroys a closure. + Required: @ClosureId. + + + + + + + + + + The actual method code. + Required for: "Run", "Define". + + + + + + + The input parameters for the method. + Optional for: "Run", "Define". + + + + + + + The output parameters for the method. + Optional for: "Run", "Define". + + + + + + + Additional assembly references for the method. + Optional for: "Run", "Define". + + + + + + + Additional namespace scope imports for the method. + Optional for: "Run", "Define". + + + + + + + If true, no default parameters are passed to the method. + Optional for: "Run", "Define". + + + + + + + If true, no default assembly references are linked to the method. + Optional for: "Run", "Define". + + + + + + + If true, no namespace scopes are imported for the method. + Optional for: "Run", "Define". + + + + + + + The method on which to perform the task action. + Required for: "Call", "Create". + + + + + + + The closure on which to perform the task action. + Required for: "SetInput", "Invoke", "GetOutput", "Destroy". + + + + + + + The name of the parameter to set or get. + Required for: "SetInput", "GetOutput". + + + + + + + The value to pass for this parameter. + Required for: "SetInput". + + + + + + + The value to pass for the first parameter. + Optional for: "Run", "Call". + + + + + + + The value to pass for the second parameter. + Optional for: "Run", "Call". + + + + + + + The value to pass for the third parameter. + Optional for: "Run", "Call". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Iis7.dll b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Iis7.dll new file mode 100644 index 00000000..c95b8d28 Binary files /dev/null and b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Iis7.dll differ diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Iis7.xsd b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Iis7.xsd new file mode 100644 index 00000000..c072a6b7 --- /dev/null +++ b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Iis7.xsd @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.JSharp.dll b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.JSharp.dll new file mode 100644 index 00000000..10535eda Binary files /dev/null and b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.JSharp.dll differ diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.JSharp.xsd b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.JSharp.xsd new file mode 100644 index 00000000..07c3a152 --- /dev/null +++ b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.JSharp.xsd @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.MSTFSBuild2008.xsd b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.MSTFSBuild2008.xsd new file mode 100644 index 00000000..70d0902f --- /dev/null +++ b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.MSTFSBuild2008.xsd @@ -0,0 +1,745 @@ + + + + + + + + The Get task retrieves a read-only copy of the files and folders in a workspace by using specified options. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + The build URI. + + + + + + + REQUIRED. The workspace name. + + + + + + + The file versionspec. By default the versionspec used is T, or the latest version. + + + + + + + The items in the workspace. By default, Team Foundation Build gets all items in the workspace specified by the WorkspaceName property. + + + + + + + Specifies whether to overwrite writable files that are not checked out. + + + + + + + Populate the Gets, Replaces, Deletes and GetWarnings Item Groups + + + + + + + Specifies whether to display what would occur without actually performing the Get operation. + + + + + + + Specifies whether files are retrieved recursively. + + + + + + + Specifies whether the files are retrieved incrementally. + + + + + + + + + + + + The Label task attaches a label to the latest version of the files in the workspace. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + REQUIRED. The label name. By default, the name of the label created by Team Foundation Build is the same as the BuildNumber property. + + + + + + + The version of the file or folder. + + + + + + + Specifies the scope of the label + + + + + + + REQUIRED. The items to be labeled. + + + + + + + This corresponds to the /child option of tf.exe label command. + + + + + + + Specifies whether the files are labeled recursively. + + + + + + + The comment used for the label by Team Foundation Build. + + + + + + + + + + + + The GenCheckinNotesUpdateWorkItems task associates changesets and work items with a specified build. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + REQUIRED. The URI for the build definition. + + + + + + + The Team Foundation Build build number. + + + + + + + REQUIRED. The version number label to which the changesets and work items are associated. + + + + + + + The starting version number label from which the changesets and work items are associated. + + + + + + + Boolean property that specifies whether the Microsoft.VSTS.Build.IntegrationBuild of the associated work items should be updated with the build number. + + + + + + + + + + + + The CreateNewWorkItem task creates a new work item of the specified type and with the specified title and description. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + The Team Foundation Build build number. + + + + + + + REQUIRED. The work item description. + + + + + + + REQUIRED. The team project name. + + + + + + + REQUIRED. The work item title. + + + + + + + Specifies a list of field names and values for the created work item. + + + + + + + The work item type. + + + + + + + + + + + + The CreateWorkspaceTask task creates a workspace with the name and mapping file specified in the TFSBuild.proj file. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + REQUIRED. The URI for the build definition. + + + + + + + REQUIRED. The build directory. + + + + + + + REQUIRED. The solution root for directory for source files. + + + + + + + REQUIRED. The workspace name. + + + + + + + The comment used for the workspace. + + + + + + + + + + + + The DeleteWorkspaceTask task deletes the workspace left by the previous build. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + Indicates whether local items that are specified in the workspace mappings are deleted or not. + + + + + + + REQUIRED. The workspace name. + + + + + + + + + + + + The TestToolsTask task runs tests for an end-to-end build or for a desktop build. + + + + + + + + + The build configuration e.g. debug + + + + + + + The platform e.g. x86 + + + + + + + The Team Foundation Server URL. + + + + + + + The build number for the build. + + + + + + + The search path for test files. + + + + + + + Specifies where test results get uploaded. + + + + + + + The test metadata file. + + + + + + + The test configuration file. + + + + + + + The test list that is contained in the test metadata file. + + + + + + + The team project name. + + + + + + + The files that contain tests. + + + + + + + + + + + + The UpdateBuildNumberDropLocation updates the build number and drop location in the Team Foundation version control database. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + REQUIRED. The URI for the build definition. + + + + + + + REQUIRED. The new build number. + + + + + + + REQUIRED. The new drop location. + + + + + + + + + + + + The BuildStep task is a convenience task that adds, and potentially updates via the output ID property, a BuildStep. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + If specified, this is the Id of the build step that is updated. If not specified, a new build step is created. + + + + + + + REQUIRED. The URI for the build definition. + + + + + + + The name of the build step that this task adds. + + + + + + + The message that is displayed in the build report in the build steps section. + + + + + + + The status for the build step. + + + + + + + + + + + + The GetBuildProperties task outputs the initial values for the build properties. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + REQUIRED. The URI for the build definition. + + + + + + + + + + + + The SetBuildProperty task sets various properties for a build. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + REQUIRED. The URI for the build definition. + + + + + + + The build number. + + + + + + + The label name. + + + + + + + The Log Location. + + + + + + + + The compilation status. Valid values are Succeeded, Failed and Unknown. + + + + + + + + + + + + + + The drop location. + + + + + + + The build quality. + + + + + + + The build status. Valid values are NotStarted, InProgress, Succeeded, PartiallySucceeded, Failed, and Stopped. + + + + + + + + + + + + + + + + + The test status. Valid values are Succeeded, Failed, and Unknown. + + + + + + + + + + + + + + + + + + + The WorkspaceItemConverterTask task converts server items to local items and local items to server items. + + + + + + + + + REQUIRED. Team Foundation Server URL. + + + + + + + REQUIRED. The workspace name. + + + + + + + The workspace owner. + + + + + + + The server items that are converted to local items. + + + + + + + The local items that are converted to server items. + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sql2005.dll b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sql2005.dll new file mode 100644 index 00000000..99c4c267 Binary files /dev/null and b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sql2005.dll differ diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sql2005.xsd b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sql2005.xsd new file mode 100644 index 00000000..aa6ec897 --- /dev/null +++ b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sql2005.xsd @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sql2008.dll b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sql2008.dll new file mode 100644 index 00000000..83fee368 Binary files /dev/null and b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sql2008.dll differ diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sql2008.xsd b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sql2008.xsd new file mode 100644 index 00000000..1088dbd7 --- /dev/null +++ b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sql2008.xsd @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.StyleCop.dll b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.StyleCop.dll new file mode 100644 index 00000000..c8d94262 Binary files /dev/null and b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.StyleCop.dll differ diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.StyleCop.xsd b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.StyleCop.xsd new file mode 100644 index 00000000..cf61f40d --- /dev/null +++ b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.StyleCop.xsd @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sync.dll b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sync.dll new file mode 100644 index 00000000..a63a6ef5 Binary files /dev/null and b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sync.dll differ diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sync.xsd b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sync.xsd new file mode 100644 index 00000000..b0d96b2f --- /dev/null +++ b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Sync.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Tfs.dll b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Tfs.dll new file mode 100644 index 00000000..5c866e44 Binary files /dev/null and b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Tfs.dll differ diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Tfs.xsd b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Tfs.xsd new file mode 100644 index 00000000..eb27f507 --- /dev/null +++ b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Tfs.xsd @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.VersionNumber.targets b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.VersionNumber.targets new file mode 100644 index 00000000..b9eb371a --- /dev/null +++ b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.VersionNumber.targets @@ -0,0 +1,127 @@ + + + + + + 1 + 0 + + + DateString + MMdd + AutoIncrement + 00 + + + + + 1 + 0 + + + DateString + MMdd + AutoIncrement + 00 + + + + + + + + + + + + + + + + + + + + + + false + false + + + + + + + + + + + + + + + + $(CoreCompileDependsOn); + UpdateAssemblyInfoFiles + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Virtualisation.VirtualPc.xsd b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Virtualisation.VirtualPc.xsd new file mode 100644 index 00000000..06a74fdc --- /dev/null +++ b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.Virtualisation.VirtualPc.xsd @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.WindowsVirtualPC.dll b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.WindowsVirtualPC.dll new file mode 100644 index 00000000..11be7130 Binary files /dev/null and b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.WindowsVirtualPC.dll differ diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.dll b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.dll new file mode 100644 index 00000000..d3acd68e Binary files /dev/null and b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.dll differ diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.dll.config b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.dll.config new file mode 100644 index 00000000..10ce0aa8 --- /dev/null +++ b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.dll.config @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.tasks b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.tasks new file mode 100644 index 00000000..607070cb --- /dev/null +++ b/Build/MSBuildExtensionPackBinaries3.5.6.0/MSBuild.ExtensionPack.tasks @@ -0,0 +1,123 @@ + + + + $(MSBuildProjectDirectory) + $(BuildPath)\..\..\BuildBinaries\ + $(MSBuildExtensionsPath)\ExtensionPack\ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Build/MsBuildCommunityTasks/ICSharpCode.SharpZipLib.dll b/Build/MsBuildCommunityTasks/ICSharpCode.SharpZipLib.dll new file mode 100644 index 00000000..77bafe8b Binary files /dev/null and b/Build/MsBuildCommunityTasks/ICSharpCode.SharpZipLib.dll differ diff --git a/Build/MsBuildCommunityTasks/MSBuild.Community.Tasks.Targets b/Build/MsBuildCommunityTasks/MSBuild.Community.Tasks.Targets new file mode 100644 index 00000000..72f69da0 --- /dev/null +++ b/Build/MsBuildCommunityTasks/MSBuild.Community.Tasks.Targets @@ -0,0 +1,141 @@ + + + + + + $(MSBuildExtensionsPath)\MSBuildCommunityTasks + $(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Build/MsBuildCommunityTasks/MSBuild.Community.Tasks.chm b/Build/MsBuildCommunityTasks/MSBuild.Community.Tasks.chm new file mode 100644 index 00000000..80371b7f Binary files /dev/null and b/Build/MsBuildCommunityTasks/MSBuild.Community.Tasks.chm differ diff --git a/Build/MsBuildCommunityTasks/MSBuild.Community.Tasks.dll b/Build/MsBuildCommunityTasks/MSBuild.Community.Tasks.dll new file mode 100644 index 00000000..cd63738f Binary files /dev/null and b/Build/MsBuildCommunityTasks/MSBuild.Community.Tasks.dll differ diff --git a/Build/MsBuildCommunityTasks/MSBuild.Community.Tasks.xml b/Build/MsBuildCommunityTasks/MSBuild.Community.Tasks.xml new file mode 100644 index 00000000..6477f7ce --- /dev/null +++ b/Build/MsBuildCommunityTasks/MSBuild.Community.Tasks.xml @@ -0,0 +1,10409 @@ + + + + MSBuild.Community.Tasks + + + + + Installs and register script mappings for ASP.NET + + Uses the aspnet_regiis.exe tool included with the .NET Framework. + + Install the latest version of ASP.NET on the server: + + ]]> + + + Install the latest version of ASP.NET on the server, but do not update script maps: + + ]]> + + + Install the script maps for ASP.NET 2.0 on a web directory on the default website: + + ]]> + + + Install the script maps for ASP.NET 1.1 on a web directory on a non-default website: + + ]]> + + + Install client side script only for the latest version: + + ]]> + + + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Returns a string value containing the command line arguments + to pass directly to the executable file. + + + A string value containing the command line arguments to pass + directly to the executable file. + + + + + When overridden in a derived class, executes the task. + + + True if the task successfully executed; otherwise, false. + + + + + Determines if the current property values can be used together + + when properties can be used together. + + + + + The version of ASP.NET to install + + + The default behavior is to use the latest version of ASP.NET available on the computer. + + Version + Version11ASP.NET v1.1 + Version20ASP.NET v2.0 + VersionLatestThe latest version of ASP.NET available + + + + + + The method used to determine if ASP.NET script mappings should be applied + + + The default behavior is to register script mappings on all sites except those with a newer version of ASP.NET. + + Value + NeverRegister ASP.NET on the computer without updating any script mappings. + IfNoneExistRegister script mappings only on for sites that do not have any existing ASP.NET script mappings (not available for ASP.NET v1.1) + UnlessNewerExistRegister script mappings on all sites except those with a newer version of ASP.NET. + AlwaysRegister script mappings on all sites, even if they already have a newer version of ASP.NET. + + + + + + When , the aspnet_client scripts will be installed. No script mappings will be updated. + + This cannot be if a value for or has been specified. + + + + The web application that should have its script maps updated. + + + The path must be of the form W3SVC/[instance]/Root/[webdirectory], for example W3SVC/1/Root/SampleApp1. + As a shortcut, you can specify just the web directory name, + if the web directory is installed in the default website instance (W3SVC/1/Root). + You should not specify a value for when specifying a path. + + + + + When , script maps are applied recursively under . + + This property is only valid when specifying a value for . It is by default. + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + Generates an AssemblyInfo files + + + Generates a common version file. + + ]]> + Generates a complete version file. + + ]]> + Generates a complete version file for C++/CLI. + + ]]> + + + + + The default value of . + The value is "AssemblyInfo.cs". + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the code language. + + The code language. + + + + Gets or sets a value indicating whether [COMVisible]. + + true if [COMVisible]; otherwise, false. + + + + Gets or sets a value indicating whether [CLSCompliant]. + + true if [CLSCompliant]; otherwise, false. + + + + Gets or sets the GUID. + + The GUID. + + + + Gets or sets the assembly title. + + The assembly title. + + + + Gets or sets the assembly description. + + The assembly description. + + + + Gets or sets the assembly configuration. + + The assembly configuration. + + + + Gets or sets the assembly company. + + The assembly company. + + + + Gets or sets the assembly product. + + The assembly product. + + + + Gets or sets the assembly copyright. + + The assembly copyright. + + + + Gets or sets the assembly trademark. + + The assembly trademark. + + + + Gets or sets the assembly culture. + + The assembly culture. + + + + Gets or sets the assembly version. + + The assembly version. + + + + Gets or sets the assembly file version. + + The assembly file version. + + + + Gets or sets the assembly informational version. + + The assembly informational version. + + + + Gets or sets the assembly key file. + + + + + Gets or sets the assembly key name. + + + + + Gets or sets the assembly delay sign value. + + + + + Gets or sets the assembly delay sign value. + + + + + Gets or sets the assembly delay sign value. + + + + + Gets or sets a value indicating whether to generate the ThisAssmebly class. + + + + + Gets or sets the neutral language which is used as a fallback language configuration + if the locale on the computer isn't supported. Example is setting this to "en-US". + + + + + Makes it possible to make certain assemblies able to use constructs marked as internal. + Example might be setting this value to "UnitTests" assembly. The typical use case might + be constructors in classes which shouldn't be available to other assemblies, but the unit + tests should be able to use them. + + + + + Gets or sets whether to allow strong-named assemblies to be called by partially trusted code. + + + + + Gets or sets the output file. + + The output file. + + + + Changes the attributes of files and/or directories + + + Make file Readonly, Hidden and System. + + ]]> + Clear Hidden and System attributes. + + ]]> + Make file Normal. + + ]]> + + + + + Executes the task. + + if the task ran successfully; + otherwise . + + + + Gets or sets the list of files to change attributes on. + + The files to change attributes on. + + + + Gets or sets the list of directories to change attributes on. + + The directories to change attributes on. + + + + Gets or sets file's archive status. + + true if archive; otherwise, false. + + + + Gets or sets a value indicating file is compressed. + + true if compressed; otherwise, false. + + + + Gets or sets a value indicating file is encrypted. + + true if encrypted; otherwise, false. + + + + Gets or sets a value indicating file is hidden, and thus is not included in an ordinary directory listing. + + true if hidden; otherwise, false. + + + + Gets or sets a value indicating file is normal and has no other attributes set. + + true if normal; otherwise, false. + + + + Gets or sets a value indicating file is read-only. + + true if read-only; otherwise, false. + + + + Gets or sets a value indicating file is a system file. + + true if system; otherwise, false. + + + + Describes certain byte measurements as nice strings. + + + + + Provides information about the build computer. + + Get build computer information. + + + + + + + ]]> + + + + + Initializes a new instance of the class. + + + + + Executes the task. + + + if the task ran successfully; otherwise . + + + + + Gets the host name of the build computer. + + + + + Gets the IP address of the build computer. + + + + + Gets the platform identifier of the build computer's operating system . + + + + + Gets the version number of the build computer's operating system. + + + + + A task to play the sound of a beep through the console speaker. + + + By default, the beep plays at a frequency of 800 hertz for a duration of 200 milliseconds. + + To play the sound of a beep at a frequency of 800 hertz and for a duration of 200 milliseconds, use + + ]]> + + + To play the sound of a beep at a frequency of 440 hertz and for a duration of 300 milliseconds, use + + ]]> + + + + + + Plays the sound of a beep + at the given and for the given + through the console speaker. + + + Always returns , even when the sound could not be played. + + + + + Gets or sets the frequency of the beep, ranging from 37 to 32767 hertz. + Defaults to 800 hertz. + + + + + Gets or sets the of the beep measured in milliseconds. + Defaults to 200 milliseconds. + + + + + Delete a directory tree. This task supports wild card directory selection. + + + Delete all bin and obj directories. + + ]]> + Delete all bin and obj directories that start with MSBuild.Community. + + ]]> + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the directories to be deleted. + + The directories to be deleted. + + Directories can contain wild cards. + + + + + Gets or sets a value indicating whether this is recursive. + + true if recursive; otherwise, false. + + + + Gets the deleted directories. + + The deleted directories. + + + + Uploads a group of files using File Transfer Protocol (FTP). + + + Set either LocalFiles or LocalFile but not both. + + Upload a file. + + ]]> + + Upload all the files in an ItemGroup: + '%(RecursiveDir)%(Filename)%(Extension)')" /> + ]]> + + + + + Describes a factory for IFtpWebRequest. + + + + + Instantiates an FtpWebRequest. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance that will inject the specified dependency. + + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the single file to upload. Use + this or LocalFiles, but not both. + + + + + Gets or sets the local files to upload. Use this + or LocalFile, but not both. + + The local file. + + + + Gets or sets the remote files to upload. + Each item in this list should have a corresponding item in LocalFiles. + + + + + Gets or sets the remote URI to upload. + + The remote URI. + + + + Gets or sets the username. + + The username. + + + + Gets or sets the password. + + The password. + + + + Gets or sets the behavior of a client application's data transfer process. + + true if [use passive]; otherwise, false. + + + + This class references an interface that looks like FtpWebRequest + in order to support unit testing without an actual FTP Server. + + + + + Sets the ContentLength property of the FtpWebRequest. + + + + + + Calls GetRequestStream on the FtpWebRequest. + + + + + + Gets the StatusDescription property of the response, then closes the response + on the FtpWebRequest. + + + + + + Gets the response from the FTP server and closes it. + + + + + Gets the response stream from the FtpWebRequest. + + + + + + An adapter to make the real FtpWebRequest look like + an IFtpWebRequest. + + + + + Initializes a new instance of the RealFtpWebRequest class. + + + + + Ftp client base class. + + + + + The socket that will connect to the FTP server. + + + + + The size of the data buffer. + + + + + The last recieved FTP response over the client socket. + + + + + The password to use to login. + + + + + The port number of the FTP server. + + + + + The hostname of the FTP server. + + + + + The username to use to login. + + + + + Initializes a new instance of the class. + + + + + Connects this FTP server socket. + + Thrown when unable to connect. + + + + Login to the FTP server with the specified credentials. + + + + + Changes the working directory. + + The remote directory. + Occurs if there where connection problems during the process or the FTP server doesn't support the CWD command. See the Message of the exception for details. + Sends the CWD command. + + + + Gets the working directory. + + The current working directory. + + + + Change to the parent of the current working directory. + + Occurs if there where connection problems during the process or the FTP server doesn't support the CDUP command. See the Message of the exception for details. + Sends the CDUP command. + + + + Determs whether a remote file exists. + + The remote file. + + Occurs if there where connection problems during the operation or if the FTP server doesn't support the SIZE command. See the Message of the exception for details. + + + + Determs whether a remote directory exists. + + The remote directory. + + This method is based on the succeedness of a CWD command, this can give wrong indication at a rare number of FTP server! + + Thrown if the opperation couldn't be executed. + true if the directory exists remotely; otherwise false + + + + Removes a remote directory. + + The remote directory name. + Occurs if there where connection problems during the process or the FTP server doesn't support the RMD command. See the Message of the exception for details. + Sends the RMD command. + + + + Creates a remote directory in the current working folder. + + Name of the directory. + Occurs if there where connection problems during the process or the FTP server doesn't support the MMD command. See the Message of the exception for details. + + + + Closes the connection to the server. + + + + + Stores the specified localFile. + + The localfile. + The remotefile. + + + + Send a command to the FTP server. + + The command, for example PWD. + The value. + + + + Send a command to the FTP server. + + The full command to send. + + + + Send a command to the FTP server and returns the response. + + The command, for example PWD. + The value + The reply of the FTP server for this command. + + + + Send a command to the FTP server and returns the response. + + The raw command to send. + The reply of the FTP server for this command. + + + + Get the full directory details of the current directory. + + A array that contains all the FTP files located in the currenct directory. + + + + Create a data stream and send a raw command. + + The raw command to send. + The data stream that was created. + + + + Parses the data IP end point from datarequest message. + + The message. + + + + + Get the full directory details of the current directory. + + The remove directory, emtpy or null will get the details of the current directory. + A array that contains all the FTP files located in the currenct directory. + + + + Reads the ftp response from the client socket. + + The response of the FTP server. + + + + Reads the response string from the client socket. + + The response of the client socket. + + + + Make sure the connections are closed and trow the specified exception. + + The exception to throw. + + + + Gets or sets the server host. + + The server host. + The lenght of the given value is greater then 126 characters. + + + + Gets or sets the port number. + + The port numer. + + + + Gets or sets the client socket. + + The client socket. + + + + Gets a value indicating whether this is connected. + + true if connected; otherwise, false. + + + + Gets the encoding to use with communication with the server. + + The encoding. + + + + Gets the last recieved FTP response over the client socket. + + The last recieved FTP response over the client socket. + + + + Gets or sets the username to login. + + The username. + + + + Gets or sets the password to login. + + The password. + + + + Gets or sets a value indicating whether the FTP message conversation should be logged. + + + true if the FTP message conversation should be logged; otherwise, false. + + + + + Gets or sets the size of the data buffer. + + + + + Creates a full remote directory on the remote server if not exists using the File Transfer Protocol (FTP). + This can be one directory or a full path to create. + + Create remote directory: + + ]]> + + The full remote directory path will be created. All directories that doesn't exists on the remote server will be created. + + + + The remote directory to create. + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the remote directory to create. + + The remote directory. + This can be one directory name, like "Directory", or a directory path, like "Directory\Subdirectoy". + + + + + Determ if a remote directory exists on a FTP server or not. + + Determ of Directory\1 exists: + + + + + + ]]> + If the directory exists on the server you should see the following output in the console: + Directory '1\2\3' exists: true + + The full remote directory path will be created. All directories that doesn't exists on the remote server will be created. + + + + The remote directory to create. + + + + + Flag that indicates whether the directory exists on the server. + + + + + Executes the current task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the remote directory to create. + + The remote directory. + This can be one directory name, like "Directory", or a directory path, like "Directory\Subdirectoy". + + + + + Gets an indication whether the directory exists on the server. + + true when the directory exists on the server; otherwise false. + + + + Exception returned by FTP server. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Represents an remote file or directory on a FTP server. + + + + + Indicates whether this instance represents a directory. + + + + + Represents the file or directory name. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + if set to true this instance represents a directory; otherwise, false. + The name. + + + + Parses the dir list. + + The entry lines. + + + + + Gets or sets a value indicating whether this instance represents a directory. + + + true if this instance represents a directory; otherwise, false. + + + + + Gets or sets the name. + + The name. + + + + Represenatation of a FTP reply message. + + + + + The result code of the FTP response. + + + + + The response message. + + + + + Initializes a new instance of the class. + + The result code of the FTP response. + The response message. + + + + Gets or sets the result code. + + The result code. + + + + Gets or sets the message. + + The message. + + + + Uploads a full directory content to a remote directory. + + Uploads directory content, including all subdirectories and subdirectory content: + + + ]]> + To go a little step further. If the local directory looked like this: + + [mywebsite] + [images] + 1.gif + 2.gif + 3.gif + [js] + clientscript.js + nofocus.js + [css] + print.css + main.css + index.htm + contact.htm + downloads.htm + + All directories and there content will be uploaded and a excact copy of the content of mywebsite directory will be created remotely. + + If is set the false; only index.htm, contact.htm and downloads.htm will be uploaded and no subdirectories will be created remotely. + + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Upload a directory and its file contents. + + The local path. + if set to true all subdurectiries will be included. + + + + Upload a directory and its file contents. + + The local path. + Only upload files that compli to the mask. + if set to true all subdurectiries will be included. + + + + Gets or sets the local directory that contains the content to upload. + + The local directory. + + + + Gets or sets the remote directory destination for the local files. + + The remote directory. + + + + Gets or sets a value indicating whether the subdirectories of the local directory should be created remotely and the content of these should also be uploaded. + + true if recursive; otherwise, false. + + + + The status of an uninstall. + + + + + No status. + + + + + Uninstalled successfully. + + + + + Assembly is still in use. + + + + + Assembly already uninstalled or not found. + + + + + Assembly delete is pending. + + + + + Assembly has a reference to an installed application. + + + + + Assembly not found. + + + + + A class wrapping fusion api calls + + + + + Installs the assembly. + + The assembly path. + if set to true force. + + + + Uninstalls the assembly. + + Name of the assembly. + if set to true force. + Returns true if uninstall successful. + + + + Uninstalls the assembly. + + Name of the assembly. + if set to true force. + The UninstallStatus result. + Returns true if uninstall successful. + + + + Gets the assembly path. + + Name of the assembly. + The path to the assembly in the GAC. + + + + Gets the name of the assembly. + + Name of the assembly. + An instance. + + + + Html Help 1x compiler task. + + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Logs the starting point of the run to all registered loggers. + + A descriptive message to provide loggers, usually the command line and switches. + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Handles execution errors raised by the executable file. + + + true if the method runs successfully; otherwise, false. + + + + + Gets or sets the project file path. + + The project file path. + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + Gets the with which to log errors. + + + The with which to log errors. + + + + A Html Help 2.0 compiler task. + + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Logs the starting point of the run to all registered loggers. + + A descriptive message to provide loggers, usually the command line and switches. + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Handles execution errors raised by the executable file. + + + true if the method runs successfully; otherwise, false. + + + + + Gets or sets the project file path. + + The project file path. + + + + Gets or sets the log file. + + The log file. + + + + Gets or sets the project root. + + The project root. + + + + Gets or sets the output file. + + The output file. + + + + Gets or sets a value indicating whether no info messages will be output. + + true if no info messages; otherwise, false. + + + + Gets or sets a value indicating whether no warning messages will be output. + + true if no warning messages; otherwise, false. + + + + Gets or sets a value indicating whether no error messages will be output. + + true if no error messages; otherwise, false. + + + + Gets or sets a value indicating quite mode. + + true if quite mode; otherwise, false. + + + + Gets or sets the uncompile file. + + The uncompile file. + + + + Gets or sets the uncompile directory. + + The uncompile directory. + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + Gets the with which to log errors. + + + The with which to log errors. + + + + MSBuild task to create installer with InnoSetup + + Create installer + + ]]> + + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Logs the starting point of the run to all registered loggers. + + A descriptive message to provide loggers, usually the command line and switches. + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + + + + + + + Filename of Inno Setup script (.iss) + + InnoSetup file, example: C:\Setup.iss + + + + Specify output filename + + Name for setup, examples: MySetup.exe + + + + Specify output path + + Path for output setup, example: C:\Setups + + + + Quiet compile + + True o False + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + Gets the with which to log errors. + + + The with which to log errors. + + + + Defines the modes for merging files. + + + + + Merges files as binary data. + + + + + Merges files as text. + + + + + Merges files as text line by line. + + + + + Merge files into the destination file. + + Merge CSS files together for better browser performance. + + ]]> + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the mode to use when merging. + + The merge mode. + + + + + Gets or sets the source files to merge. + + The source files to merge. + + + + Gets or sets the destination file where the + are merged to. + + The destination file. + + + + Makes an HTTP request, optionally validating the result and writing it to a file. + + + Execute a http request to hit the database update. + Target attributes to set: + Url (required), + FailOnNon2xxResponse (200 responses generally means successful http request. default=true), + EnsureResponseContains (string to check for), + WriteResponseTo (file name to write to), + + + Example of a update request ensuring "Database upgrade check completed successfully." was returned. + + ]]> + + + + + Constructor to set the default parameters for http request + + + + + Entry Point inherited from Task + + + + + The URL to make an HTTP request against. + + + + + Optional: if set then the task fails if the response text doesn't contain the text specified. + + + + + Default is true. When true, if the web server returns a status code less than 200 or greater than 299 then the task fails. + + + + + Optional; the name of the file to write the response to. + + + + + Creates a relative path from one file + or folder to another. + + + Contains the directory that defines the + start of the relative path. + + + Contains the path that defines the + endpoint of the relative path. + + + The relative path from the start + directory to the end path. + + + Thrown if or are null. + + + + + Compiles regular expressions and saves them to disk in an assembly. + + + + When defining the regular expressions in an MSBuild project file, the ItemGroup + item must have a metadata tag called 'Pattern' that is the actually regular expression. + Other optional metadata tags are the following. + + + Metadata Tags + Description + + + Pattern + The actually regular expression pattern to be compiled. (Required) + + + Options + The RegexOptions for the expression. + + + Namespace + The class namespace for the compile class. + + + IsPublic + A flag if the generated expression should be public. + + + + + Creates an assembly with the compiled regular expressions. + + + + \G[^<]+ + RegexOptions.Singleline | RegexOptions.Multiline + + + \G<%--(([^-]*)-)*?-%> + RegexOptions.Singleline | RegexOptions.Multiline + + + \G<%(?![@%])(?<code>.*?)%> + RegexOptions.Singleline | RegexOptions.Multiline + MSBuild.Community.RegularExpressions + + + + + + +]]> + + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the name of the assembly to be created by the regex compiler. + + The name of the assembly. + + + + Gets or sets the assembly title. + + The assembly title. + + + + Gets or sets the assembly description. + + The assembly description. + + + + Gets or sets the assembly company. + + The assembly company. + + + + Gets or sets the assembly product. + + The assembly product. + + + + Gets or sets the assembly copyright. + + The assembly copyright. + + + + Gets or sets the assembly culture. + + The assembly culture. + + + + Gets or sets the assembly version. + + The assembly version. + + + + Gets or sets the assembly file version. + + The assembly file version. + + + + Gets or sets the assembly informational version. + + The assembly informational version. + + + + Gets or sets the assembly key file. + + The assembly key file. + + + + Gets or sets the directory where the assembly will be saved. + + The output directory. + + + + Gets or sets the output file. + + The output file. + + + + Gets or sets the regular expressions. + + The regular expressions. + + + + Gets or sets a value indicating whether the default value is public for regular expression instances. + + true if regular expression instance is public; otherwise, false. + + + + Gets or sets the default namespace for regular expression instances. + + The namespace for regular expression instances. + + + + Gets or sets the default regular expression options. + + The default regular expression options. + + + + BuildAssembler task for Sandcastle. + + + + + A base class for Sandcastle Tools, + + + + + Initializes a new instance of the class. + + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Logs the starting point of the run to all registered loggers. + + A descriptive message to provide loggers, usually the command line and switches. + + + + Logs the events from text output. + + The single line. + The message importance. + + + + Gets or sets the sandcastle enviroment. + + The sandcastle enviroment. + + + + Gets or sets the enviroment variables. + + The enviroment variables. + + + + Gets or sets the sandcastle install root directory. + + The sandcastle root directory. + + + + Gets or sets a value indicating whether no info messages will be output. + + true if no info messages; otherwise, false. + + + + Gets or sets a value indicating whether no warning messages will be output. + + true if no warning messages; otherwise, false. + + + + Gets the with which to log errors. + + + The with which to log errors. + + + + Gets the override value of the PATH environment variable. + + + The override value of the PATH environment variable. + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Gets or sets the configuration file. + + The configuration file. + + + + Gets or sets the manifest file. + + The manifest file. + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + ChmBuilder task for Sandcastle. + + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Gets or sets the HTML directory. + + The HTML directory. + + + + Gets or sets the name of the project. + + The name of the project. + + + + Gets or sets the toc file. + + The toc file. + + + + Gets or sets the output file. + + The output file. + + + + Gets or sets a value indicating whether this is metadata. + + true if metadata; otherwise, false. + + + + Gets or sets the language id. + + The language id. + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + DBCSFix task for Sandcastle. + + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Gets or sets the CHM directory. + + The CHM directory. + + + + Gets or sets the language id. + + The language id. + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + MRefBuilder task for Sandcastle. + + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Gets or sets the output file. + + The output file. + + + + Gets or sets the config file. + + The config file. + + + + Gets or sets the references. + + The references. + + + + Gets or sets the assemblies. + + The assemblies. + + + + Gets or sets a value indicating whether to include internal members. + + true to include internal; otherwise, false. + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + The Sandcastle task. + + Create the Html Help for MSBuild Community Task project. + + ]]> + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the sandcastle install root directory. + + The sandcastle root directory. + + + + Gets or sets the working directory. + + The working directory. + + + + Gets or sets the html help topic style. + + The html help topic style. + + The styles supported are hana, prototype and vs2005. + The default style is vs2005. + + + + + Gets or sets a value indicating whether working directory is cleaned. + + true if clean; otherwise, false. + + + + Gets or sets the references. + + The references. + + + + Gets or sets the assemblies. + + The assemblies. + + + + Gets or sets the comments. + + The comments. + + + + Gets or sets the build assembler config file. + + The build assembler config. + + + + Gets or sets the name of the CHM. + + The name of the CHM. + + + + Gets or sets the language id. + + The language id. + + + + Gets or sets a value indicating a Html Help 2x project will be created. + + The name of the Html Help 2x project. + + + + Gets or sets a value indicating whether no info messages will be output. + + true if no info messages; otherwise, false. + + + + Gets or sets a value indicating whether no warning messages will be output. + + true if no warning messages; otherwise, false. + + + + A class representing the sandcastle enviroment. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The sandcastle root. + + + + Gets or sets the sandcastle root. + + The sandcastle root. + + + + Gets or sets the tools directory. + + The tools directory. + + + + Gets or sets the transforms directory. + + The transforms directory. + + + + Gets or sets the presentation directory. + + The presentation directory. + + + + XslTransform task for Sandcastle. + + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Gets or sets the output file. + + The output file. + + + + Gets or sets the XSLT files. + + The XSLT files. + + + + Gets or sets the XML files. + + The XML files. + + + + Gets or sets the arguments. + + The arguments. + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + The contract for a service that will provide access to the file system. + + + + + + Determines whether the specified file exists. + + The path of the file to check. + True if the file exists on the filesystem. + + + + Returns the contents of a file. + + The path of the file to read. + The text with the specified file. + + + + Writes text to a file. + + The path of the file to write. + The text to write to the file. + + + + Provides access to the file system. + + + + + + Determines whether the specified file exists. + + The path of the file to check. + True if the file exists on the filesystem. + + + + Returns the contents of a file. + + The path of the file to read. + The text with the specified file. + + + + Writes text to a file. + + The path of the file to write. + The text to write to the file. + + + + The list of the commands available to the GacUtil Task + + + + Install the list of assemblies into the GAC. + + + Uninstall the list of assembly names from the GAC. + + + + MSBuild task to install and uninstall assemblies into the GAC + + Install a dll into the GAC. + + ]]> + + Uninstall a dll from the GAC. + + ]]> + + + + + Runs the executable file with the specified task parameters. + + + true if the task runs successfully; otherwise, false. + + + + + Gets or sets the command. + + The command. + + + + + Gets or sets the related file extensions to copy when is true. + + The related file extensions. + + The default extensions are .pdb and .xml. + + + + + Gets or sets a value indicating whether related files are included when installing in GAC. + + true if related files are included when installing in GAC; otherwise, false. + + Setting IncludeRelatedFiles to true will copy the pdb and xml files from the same folder as the + assembly to the location in the GAC that the assembly was installed to. This is useful in some + debugging scenarios were you need to debug assemblies that are GAC'd. + + + + + Gets or sets a value indicating whether warning messages are output. + + true to not log warning messages; otherwise, false. + + + + Gets or sets a value indicating whether to force reinstall of an assembly. + + true if force; otherwise, false. + + + + Gets or sets the assembly name or file. + + The assembly name or file. + + When the command is install, Assemblies should be a file path to the assembly + to install in the GAC. When command is uninstall, Assemblies should be a + the full name of the assembly to uninstall. + + + + + Gets the installed assembly paths. + + The installed paths. + + + + Gets the installed assembly names. + + The installed names. + + + + Gets the number of assemblies successfully installed/uninstalled. + + The number successful assemblies. + + + + Gets the number of assemblies that failed to installed/uninstalled. + + The number failed assemblies. + + + + Gets the number of assemblies that were skipped during installed/uninstalled. + + The number of skipped assemblies. + + + + Compresses JavaScript source by removing comments and unnecessary + whitespace. It typically reduces the size of the script by half, + resulting in faster downloads and code that is harder to read. + + + This task does not change the behavior of the program that it is + compressing. The resulting code will be harder to debug as well as + harder to read. + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the files to source-compress. + + + + + Encoding to use to read and write files. + + + + + Gets the files that were successfully source-compressed. + + + + + Defines a database host within the Oracle TNSNAMES.ORA file. + + Add an entry to the system default TNSNAMES.ORA file and update any entry that already exists: + ]]> + + + Add an entry to a specific file and fail if the entry already exists: + ]]> + + + + + + Creates a new instance of the AddTnsName task using dependency injection. + + A service that provides access to the Windows registry. + A service that provides access to the file system. + + + + Creates a new instance of the AddTnsName task using the default system services. + + + + + When overridden in a derived class, executes the task. + + + + true if the task successfully executed; otherwise, false. + + + + + Determines which TNSNAMES.ORA file to update based on task input and the current system environment. + + The path of the TNSNAMES.ORA file that will be used by the task. + + + + + The path to a specific TNSNAMES.ORA file to update. + + If not specified, the default is %ORACLE_HOME%\network\admin\tnsnames.ora + + + + The contents of the TNSNAMES.ORA file before any changes are made. + + + + + The path to the TNSNAMES.ORA that was used by task. + + + + + The name of the host entry to add. + + To be properly recognized by Oracle, the value must contain a period, followed by a suffix. For example: mydatabase.world + + + + The contents of the TNSNAMES.ORA file after the task executes. + + + + + The definition of the host entry to add. + + To be properly recognized by Oracle, the value must be surrounded by parentheses. + + + + When true, the task will update an existing entry with . + If false, the task will fail if already exists. + + + + + Contains information about a TNS definition + + + + + + Creates a new instance of a TnsEntry + + The position of the entry within a TNSNAMES.ORA file + The length of the entry definition within the TNSNAMES.ORA file + + + + The position of the entry within a TNSNAMES.ORA file + + + + + The length of the entry definition within the TNSNAMES.ORA file + + + + + Locates host entries within a TNSNAMES.ORA file + + + + + + Initializes a new instance of the parser using the contents of a TNSNAMES.ORA file. + + + + + + Locates a host entry by its name. + + The name of the entry to find. + A which contains information about the location of the entry within the file. + + + + Task wrapping the Window Resource Kit Robocopy.exe command. + + Deploy website to web server. + + ]]> + + + + + Handles execution errors raised by the executable file. + + + true if the method runs successfully; otherwise, false. + + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Logs the starting point of the run to all registered loggers. + + A descriptive message to provide loggers, usually the command line and switches. + + + + Source directory + + + You can use drive:\path or \\server\share\path + + + + + Names of files to act upon. + + + You can use wildcard characters (? and *). If no + files are listed, Robocopy defaults to all files (*.*). + + + + + Destination directory. + + + You can use drive:\path or \\server\share\path + + + + + /S Copies subdirectories (excluding empty ones). + + + + + /E Copies all subdirectories (including empty ones). + + + + + /Z Copies files in restartable mode (that is, restarts the copy process from the point of failure). + + + + + /B Copies files in Backup mode (Backup copies are not restartable, but can copy some files that restartable mode cannot). + + + + + /COPY:copyflags Copies the file information specified by copyflags. + + + D – file Data, S – file Security (NTFS ACLs), A – file Attributes, + O – file Ownership information, T – file Timestamps, U – file Auditing infomation. + + + + + /COPYALL Copies Everything. Equivalent to /COPY:DATSOU. + + + + + /NOCOPY Copies Nothing. Can be useful with /PURGE. + + + + + /SEC Copies NTFS security information. (Source and destination volumes must both be NTFS). Equivalent to /COPY:DATS. + + + + + /MOV Moves files (that is, deletes source files after copying). + + + + + /MOVE Moves files and directories (that is, deletes source files and directories after copying). + + + + + /PURGE Deletes destination files and directories that no longer exist in the source. + + + + + /MIR Mirrors a directory tree (equivalent to running both /E and /PURGE). + + + + + /CREATE Creates a directory tree structure containing zero-length files only (that is, no file data is copied). + + + + + /FAT Creates destination files using only 8.3 FAT file names. + + + + + /FFT Assume FAT File Times (2-second granularity). + + + + + /IA:{R|A|S|H|C|N|E|T|O} Includes files with the specified attributes. + + + The following file attributes can be acted upon: + R – Read only, A – Archive, S – System, H – Hidden, + C – Compressed, N – Not content indexed, E – Encrypted, + T – Temporary, O - Offline + + + + + /XA:{R|A|S|H|C|N|E|T|O} Excludes files with the specified attributes. + + + The following file attributes can be acted upon: + R – Read only, A – Archive, S – System, H – Hidden, + C – Compressed, N – Not content indexed, E – Encrypted, + T – Temporary, O - Offline + + + + + /A Copies only files with the archive attribute set. + + + + + /M Copies only files with the archive attribute set and then resets (turns off) the archive attribute in the source files. + + + + + /XJ Excludes Junction points. + + + + + /XF file [file] Excludes files with the specified names, paths, or wildcard characters. + + + + + /XD dir [dir] Excludes directories with the specified names, paths, or wildcard characters. + + + + + /V Produces verbose output (including skipped files). + + + + + /NFL Turns off logging of file names. File names are still shown, however, if file copy errors occur. + + + + + /NDL Turns off logging of directory names. Full file pathnames (as opposed to simple file names) will be shown if /NDL is used. + + + + + /NJH Turns of logging of the job header. + + + + + /NJS Turns off logging of the job summary. + + + + + /NP Turns off copy progress indicator (% copied). + + + + + /LOG:file Redirects output to the specified file, overwriting the file if it already exists. + + + + + /LOG+:file Redirects output to the specified file, appending it to the file if it already exists. + + + + + Manually entered options. + + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + Gets the with which to log errors. + + + The with which to log errors. + + + + A task to play a sound from a .wav file path or URL. + + + You must specify either + a file or URL (), + a file relative to the (), + or a file within the folder (). + + To play the windows XP startup sound, use + + ]]> + + + To play a wav file from the "MyMusic" folder, use + + ]]> + + + + + + Loads the .wav file given by + and plays the sound using a new thread. + + + Returns if the .wav file can successfully be played; + otherwise, returns . + + + + + Gets or sets the file path or URL of the .wav file to load. + + + + + Sets the file path of the .wav file to load + as a relative path to . + + + For example, on a Windows XP platform, you can call + ]]> + + + + + Sets the file path of the .wav file to load + as a relative path to . + + + + + Gets or sets the time, in milliseconds, in which the .wav file must load. + + The number of milliseconds to wait. The default is 10000 (10 seconds). + + After this time has expired, the loading is canceled and the task execution fails. + + + + + Gets or sets a value indicating whether to play the sound synchronously. + + + if playing the sound using the caller's thread (default); + otherwise, if playing the sound using a new thread. + + + + + A base class that has a file. + + + + + Initializes a new instance of the class. + + Name of the file. + + + + Initializes a new instance of the class. + + The file info. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Performs an implicit conversion from to . + + The output file. + The result of the conversion. + + + + Gets or sets the file. + + The file. + + + + Commands for the tasks. + + + + + Read stream from pdb symbol file. + + + + + Write stream to pdb symbol file. + + + + + A task for the pdbstr from source server. + + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Gets or sets the PDB file. + + The PDB file. + + + + Gets or sets the stream file. + + The stream file. + + + + Gets or sets the name of the stream. + + The name of the stream. + + + + Gets or sets the command. + + The command. + + + + + Gets the name of the executable file to run. + + + + The name of the executable file to run. + + + + + A class representing a source file. + + + + + Initializes a new instance of the class. + + Name of the file. + + + + Initializes a new instance of the class. + + The file info. + + + + Creates the source string. + + The format. + + + + + Gets or sets the properties. + + The properties. + + + + Gets or sets a value indicating whether this instance is resolved. + + + true if this instance is resolved; otherwise, false. + + + + + A base class for source indexing a pdb symbol file. + + + + + + + + + + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Indexes the symbol file. + + The symbol file task item. + true if index successfully; otherwise false. + + + + Creates an instance of from the symbol file task item and add the source file list to it. + + The symbol file task item. + An instance of or null if there was an error. + + + + Adds the source properties to the symbol file. + + The symbol file to add the source properties to. + true if successful; otherwise false. + + + + Creates the source index file. + + The symbol file to create the index file from. + The source index file. + true if successful; otherwise false. + + + + Writes the source index file to the symbol file. + + The symbol file. + The source index file. + true if successful; otherwise false. + + + + Copies the build engine to the task. + + The task. + + + + Gets or sets the symbol files to have to source index added. + + The symbol files. + + + + Gets or sets the source server SDK path. + + The source server SDK path. + + + + Gets or sets the name of the source server. + + The name of the source server. + + + + Gets or sets the source command format. The SRCSRVCMD environment variable. + + The source command format. + + Describes how to build the command to extract the file from source control. + This includes the name of the executable file and its command-line parameters. + See srcsrv.doc for full documentation on SRCSRVCMD. + + + + + Gets or sets the source target format. The SRCSRVTRG environment variable. + + The source target format. + + Describes how to build the target path for the extracted file. + See srcsrv.doc for full documentation on SRCSRVTRG. + + + + + A task for the srctool from source server. + + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Parses a single line of text to identify any errors or warnings in canonical format. + + A single line of text for the method to parse. + A value of that indicates the importance level with which to log the message. + + + + Handles execution errors raised by the executable file. + + + true if the method runs successfully; otherwise, false. + + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Logs the starting point of the run to all registered loggers. + + A descriptive message to provide loggers, usually the command line and switches. + + + + Gets or sets the PDB file. + + The PDB file. + + + + Gets or sets a value indicating whether to dumps raw source data from the PDB. The -r switch. + + true if source only; otherwise, false. + + + + Gets or sets the filter to only source files that match this regular expression. The -l switch. + + The filter regular expression. + + + + Gets or sets a value indicating whether to extracts the files, instead of simply listing them. The -x switch. + + true if extract; otherwise, false. + + + + Gets or sets the directory to extract to. The -d switch. + + The extract directory. + + + + Gets or sets a value indicating whether to get the count of indexed files. The -c switch. + + true if count only; otherwise, false. + + + + Gets or sets the number of source files. + + The number of source files. + + + + Gets the source files. Populated when is true. + + The source files. + + + + Gets the extracted files. Populated when is true. + + The extracted files. + + + + Gets the name of the executable file to run. + + + + The name of the executable file to run. + + + + + Gets the with which to log errors. + + + The with which to log errors. + + + + A subversion source index task. + + + + + Initializes a new instance of the class. + + + + + Adds the source properties to the symbol file. + + The symbol file to add the source properties to. + + true if successful; otherwise false. + + + + + Creates the source index file. + + The symbol file to create the index file from. + The source index file. + + true if successful; otherwise false. + + + + + A class representing a symbol file. + + + + + Initializes a new instance of the class. + + Name of the file. + + + + Initializes a new instance of the class. + + The file info. + + + + Adds the source files. + + The files. + + + + Gets the source files. + + The source files. + + + + Gets or sets a value indicating whether this instance is indexed. + + + true if this instance is indexed; otherwise, false. + + + + + The SqlPubWiz commands + + + + + Scripts a local database to one or more files + + + + + Publishes a local database to a web service provided by a hoster. + + + + + The Database Publishing Wizard enables the deployment of + SQL Server databases (both schema and data) into a shared + hosting environment. + + Generate the database script for Northwind on localhost. + + ]]> + + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Logs the starting point of the run to all registered loggers. + + A descriptive message to provide loggers, usually the command line and switches. + + + + Gets or sets the database publishing command. + + The database publishing command. + + Use either script or publish. Use script to script a local + database to a file on the local computer. Use publish to + transfer database objects directly to a hosted database via + a web service. script and publish enable some of the same + options and switches. Some options and switches are only + enabled only by one of these verbs. + + + + + Gets or sets the full connection string to the local database. + + The connection string. + + Provides a full connection string to connect to the local + database. This connection string encapsulates all connection + options to the server. Incompatible with , + or, . + + + + + Gets or sets the name of the local database to be scripted. + + The name of the database to be scripted. + + + + Gets or sets the SQL Server user name to use for connection + to the source database. + + The SQL Server user name. + + Specifies the SQL Server User name to use for connection + to the source database. Requires . + Incompatible with . + + + + + Gets or sets the password to use for connection + to the source database. + + The password. + + Specifies the password to use for connection to the source + database. Requires . + Incompatible with . + + + + + Gets or sets the name or IP address for the local database connection. + + The name or IP address of server. + + Specifies the name or IP address for the local database connection. + The default is localhost. Incompatible with . + + + + + Gets or sets the full file path for the script file generated. + + The full file path. + + Use only with script. Specifies the full file path for the script + file generated by the sqlpubwiz. + + + + + Gets or sets a value indicating whether the schema, + but not the data, should be scripted. + + + true if only the schema should be scripted; + otherwise, false. + + + Specifies that the schema, but not the data, should be + scripted. Incompatible with . + If neither nor + are specified, both the schema and data are scripted. + + + + + Gets or sets a value indicating whether the data but + not the schema should be scripted. + + + true if only the data is scripted; + otherwise, false. + + + Specifies that the data but not the schema should be + scripted. Incompatible with + or . If neither + nor are specified, both the schema + and data are scripted. + + + + + Gets or sets the target server the script should target. + + The target server the script should target. + + Specifies that the script to be generated should target + a SQL Server 2000 or SQL Server 2005 instance. + The default is SQL Server 2005. + + + + + Gets or sets a value indicating whether objects will + not be qualified with a schema. + + + true if objects will not be schema qualified; + otherwise, false. + + + + + Gets or sets a value indicating whether the produced + script should not drop pre-existing objects. + + + true if pre-existing objects should not be dropped; + otherwise, false. + + + + + Gets or sets a value indicating output message suppression. + + true to suppress messages; otherwise, false. + + + + Gets or sets the friendly name of previously + configured hosting Web service. + + The name of the hoster. + + + + Gets or sets the configuration of the hosting Web service endpoint. + + The web service address. + + + + Gets or sets the username on the hosting Web service endpoint. + + The service username. + + + + Gets or sets the password for the remote Web service endpoint. + + The service password. + + + + Gets or sets the database name to publish to on the remote server. + + The service database server. + + + + Gets or sets the remote database server name. + + The service database. + + + + Gets or sets a value indicating whether the publish operation + should not be executed within a single transaction. + + true to not publish in a single transaction; otherwise, false. + + Specifies that the publish operation should not be executed + within a single transaction. This reduces logging overhead + on the target server, but if the publish is interrupted, the + target database may be left in a partially populated state. + + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + Gets the with which to log errors. + + + The with which to log errors. + + + + Copy a file or folder in Subversion + + + This is most useful for automatically tagging your source code during a build. + You can create a tag by copying a path from one server location to another. + + Create a tag of the trunk with the current Cruise Control build number: + + + + ]]> + + + + + Subversion client base class + + + + + Generates the SVN command. + + + + + + Generates the SVN arguments. + + + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Indicates whether all task paratmeters are valid. + + + true if all task parameters are valid; otherwise, false. + + + + + Logs the events from text output. + + The single line. + The message importance. + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Finds the tool path. + + Name of the tool. + + + + + Logs the starting point of the run to all registered loggers. + + A descriptive message to provide loggers, usually the command line and switches. + + + + Gets or sets the command. + + The command. + + + + Gets or sets the arguments. + + The arguments. + + + + Gets or sets the username. + + The username. + + + + Gets or sets the password. + + The password. + + + + Gets or sets the verbose. + + The verbose. + + + + Gets or sets the force. + + The force. + + + + Gets or sets the message. + + The message. + + + + Gets or sets the message file. + + The message file. + + Uses the contents of the named file for the specified + subcommand, though different subcommands do different + things with this content. + + + + Gets or sets the repository path. + + The repository path. + + + + Gets or sets the local path. + + The local path. + + + + Gets or sets the target file. + + The target file. + + Tells Subversion to get the list of files that you wish to operate on from + the filename that you provide instead of listing all the files on the command line. + + + + + Gets or sets the targets. + + The targets. + + + + Gets or sets a value indicating the command is non interactive]. + + true if non interactive; otherwise, false. + + + + Gets or sets a value indicating no auth cache. + + true if no auth cache; otherwise, false. + + + + Gets or sets a value indicating whether to trust the server cert. + + true to trust the server cert; otherwise, false. + + + + Gets or sets a value indicating the output is XML. + + true to output in XML; otherwise, false. + + + + Gets or sets the revision. + + The revision. + + + + Gets the output of SVN command-line client. + + + + + Gets the error output of SVN command-line client. + + + + + Gets the with which to log errors. + + + The with which to log errors. + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + Initializes a new instance of the class. + + + + + Generates the SVN command. + + + + + + Indicates whether all task paratmeters are valid. + + + true if all task parameters are valid; otherwise, false. + + + + + The path of the source file or folder that should be copied + + + + + The path to which the SourcePath should be copied + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Subversion status command. + + + + + Creates an instance of SvnStatus. + + + + + Commands for the SymStore tasks. + + + + + Add to the symbol server store. + + + + + Query the symbol server store. + + + + + Delete from the symbol serer store. + + + + + Task that wraps the Symbol Server SymStore.exe application. + + + + + Initializes a new instance of the class. + + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Logs the starting point of the run to all registered loggers. + + A descriptive message to provide loggers, usually the command line and switches. + + + + Gets or sets the command. + + The command. + + + + + Gets or sets a value indicating SymStore will append new indexing information to an existing index file. + + true if append; otherwise, false. + + + + Gets or sets the comment for the transaction. + + The comment for the transaction. + + + + Gets or sets a value indicating SymStore will create a compressed version of each file copied to the symbol store instead of using an uncompressed copy of the file. + + true if compress; otherwise, false. + + + + Gets or sets a log file to be used for command output. If this is not included, transaction information and other output is sent to stdout. + + The log file to be used for command output. + + + + Gets or sets the network path of files or directories to add. + + The network path of files or directories to add. + + + + Gets or sets the server and share where the symbol files were originally stored. + + The server and share where the symbol files were originally stored. + + + + Gets or sets the transaction ID string. + + The transaction ID string. + + + + Gets or sets a value indicating whether the file will be in a local directory rather than a network path. + + true if local; otherwise, false. + + + + Gets or sets a value indicating whether SymStore will display verbose output. + + true if verbose; otherwise, false. + + + + Gets or sets a value indicating whether SymStore will store a pointer to the file, rather than the file itself. + + true if pointer; otherwise, false. + + + + Gets or sets a value indicating whether SymStore will add files or directories recursively. + + true if recursive; otherwise, false. + + + + Gets or sets the root directory for the symbol store. + + The root directory for the symbol store. + + + + Gets or sets the name of the product. + + The name of the product. + + + + Gets or sets the version of the product. + + The version of the product. + + + + Gets or sets the message to be added to each file. + + The message to be added to each file. + + + + Gets or sets a value indicating whether the paths in the file pointers will be relative. + + true if relative; otherwise, false. + + + + Gets or sets a value indicating whether to omit the creation of reference pointer files for the files and pointers being stored. + + true to omit the creation of reference pointer; otherwise, false. + + + + Gets or sets the index file. Causes SymStore not to store the actual symbol files. Instead, SymStore records information in the IndexFile that will enable SymStore to access the symbol files at a later time. + + The write index file. + + + + Gets or sets the index file. Causes SymStore to read the data from a file created with WriteIndexFile. + + The read index file. + + + + Gets the name of the executable file to run. + + + + The name of the executable file to run. + + + + + Gets the with which to log errors. + + + The with which to log errors. + + + + Describes the behavior of a Team Foundation Server + + + + + + Retrieves the latest changeset ID associated with a path + + A path on the local filesystem + Credentials used to authenticate against the serer + + + + + Handles all communication with the Team Foundation Server + + + + + Creates an instace of the TeamFoundationServer class + + The local file path containing the TFS libraries. null if TFS is in the GAC. + + + + Retrieves the latest changeset ID associated with a path + + A path on the local filesystem + Credentials used to authenticate against the serer + + + + + Exceptions returned by the Team Foundation Server + + + + + + Creates a new instance of the exception + + + + + Creates a new instance of the exception + + A description of the exception + + + + Determines the changeset in a local Team Foundation Server workspace + + + + + Runs the exectuable file with the specified task parameters. + + + true if the task runs successfully; otherwise, false. + + + + + The user to authenticate on the server + + Leave empty to use the credentials of the current user. + + + + The password for the user to authenticate on the server + + Leave empty to use the credentials of the current user. + + + + The domain of the user to authenticate on the server + + Leave empty to use the credentials of the current user. + + + Path to local working copy. + + + + The latest changeset ID in the local path + + + + + The location of the Team Foundation Server client assemblies. Leave empty when the client is installed in the Global Assembly Cache. + + + + + The contract for a service that will provide access to the registry. + + + + + + Returns the names of the subkeys under the provided key. + + The hive where is located. + The key to search. + A list of subkeys. + + + + Returns the value of an entry in the registry. + + The key of the registry entry that contains + The name of the value to return. + The value of the registry entry. + + + + Provides access to the Windows registry. + + + + + + Returns the names of the subkeys under the provided key. + + The hive where is located. + The key to search. + A list of subkeys. + + + + Returns the value of an entry in the registry. + + The key of the registry entry that contains + The name of the value to return. + The value of the registry entry. + + + + Provides information about the build user. + + Get build user information. + + + + + + + ]]> + + + The following output parameters are set only if information about the build user can be retrieved + from the Active Directory if one exists: + + FirstName + LastName + MiddleInitial + FullName + Email + Phone + + + + + + Initializes a new instance of the class. + + + + + Executes the task. + + + if the task ran successfully; otherwise . + + + + + Gets the user name of the build user. + + + + + Gets the domain name of the build user. + + + + + Gets the first name of the build user. + + + + + Gets the last name of the build user. + + + + + Gets the middle initial of the build user. + + + + + Gets the email address of the build user. + + + + + Gets the phone number of the build user. + + + + + Gets the username and domain name of the build user in "[Domain name]\[User name]" format. + + + + + Gets the full name of the build user in "[First name] [Middle initial]. [Last name]" format . + + + + + Performs multiple updates on an XML file + + + XmlMassUpdate allows to to specify multiple changes to make to an XML file (the . By default, the changes are applied to the , but you can create a new file by providing the attribute. The change instructions are specified using XML in the . If the does not mirror the structure of the exactly, you can specify the and XPath expressions which determine how the files should be mapped to each other. + + Any element within the will find the corresponding element in the . If it does not exist, it will be created with all of its attributes. If it does exist, the attributes will be added or updated as specified. + + + Any attribute declared within the will not be copied to the modified file. Valid attributes are key and action. The key attribute allows you to define an attribute to use as the identifying attribute when you only want to update a single element, and multiple elements with the same name exist. You can also use the action="remove" attribute to specify that an element should be deleted instead of updated. + + + + These examples will demonstrate how to make multiple updates to a XML file named web.config. It looks like: + + + + + + + + + + + + + + + ]]> + + + + You can update the file using instructions from an external file (specified as the ): + + ]]> + + The is named changes.xml and contains: + + + + + + + + ]]> + + + You can also provide the update instructions within the MSBuild project file itself. It takes advantage of the MSBuild ProjectExtensions element which allows you to add XML to a project file that will be ignored by the MSBuild engine. This example also demonstrates how to use : + + + + + + + + + + ]]> + + + The following example demonstrates how to deal with "keyed" elements. When you need to update an element, and multiple elements exist with the same name, it must be be differentied by one of its attributes. You designate the differentiating attribute using the "key" attribute declared in the . + If an element matching the keyed attribute is not found, a new element will be created (DefaultSort in the example). This example also demonstrates creating a new file with the merged changes instead of modifying the original file. + + ]]> + + Using a changes.xml file with the following contents: + + + + + + + ]]> + + + Use a changes.xml file with the following contents to demonstrate how to remove an element from the updated file: + + + + + + + ]]> + + + You can also specify the changes to apply from within the target document. By making use of the property, you can store multiple sets of changes to apply based on runtime conditions. + Consider the following source web.config file: + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + You could use the following task definition, which relies on a property "TargetEnvironment" to determine which set of changes to apply: + + ]]> + + You will need to provide a value of "test" or "prod" to the TargetEnvironment property. The property can be defined in a PropertyGroup section of the MSBuild file, or passed as a command-line parameter. + + + + + + + + + When overridden in a derived class, executes the task. + + + True if the task successfully executed; otherwise, false. + + + + + Returns as an . + + This method is not intended for use by consumers. It is exposed for testing purposes. + + + + + + Returns as an . + + This method is not intended for use by consumers. It is exposed for testing purposes. + + + + + + Creates from the specified + + The XML to save to a file + This method is not intended for use by consumers. It is exposed for testing purposes. + + + + + + The original file whose content is to be updated + + This task is currently under construction and not necessarily feature complete. + + + + The file containing the list of updates to perform + + + + + The file created after performing the updates + + + + + The XPath expression used to locate the list of substitutions to perform + + When not specified, the default is the document root: / + When there is a set of elements with the same name, and you want to update + a single element which can be identified by one of its attributes, you need to include an attribute + named 'key' in the namespace urn:msbuildcommunitytasks-xmlmassupdate. The value of the + attribute is the name of the attribute that should be used as the unique identifier. + + + + The XPath expression identifying root node that substitions are relative to + + When not specified, the default is the document root: / + + + + A collection of prefix=namespace definitions used to query the XML documents + + + Defining multiple namespaces: + + +/>]]> + + + + + + The full path of the file containing content updated by the task + + + + + The full path of the file containing substitutions used by the task + + + + + The full path of the file containing the results of the task + + + + + The namespace used for XmlMassUpdate pre-defined attributes + + Evaluates to: urn:msbuildcommunitytasks-xmlmassupdate + Attributes decorated with this namespace are used to control how a substitutions element + or attribute is handled during the update. For example, the key attribute is used to identify the + attribute on an element that uniquely identifies the element in a set. + + + + Sets an application mapping for a filename extension on an existing web directory. + + Map the .axd extension to the lastest version of ASP.NET: + + ]]> + + Map GET requests to the .rss extension to a specific executable: + + ]]> + + + + + Base task for any IIS-related task. + + Stores the base logic for gathering the IIS version and server and port checking. This + base task also stores common properties for other related tasks. + + + + IIS version. + + + + + Gets the IIS version. + + The for IIS. + + + + + Gets the remote machine OS version. + + Returns a of the operating system. + + + + + Verifies that the IIS root exists based on the and . + + + + + + Verify that the IIS Website exists if it has been specified. + + DirectoryEntry that meets the IISWebServer schema + True if a site is found when specified. True if no site has been specified. + + + + Helper method for that verifies the server port exists. + + The site to verify the port. + Boolean value indicating the status of the port check. + + + + + Sets some of the protected properties for the Virtual Directory Creation Wizard. + + DirectoryEntry.Name where the Entry is an IISWebServer schema + + + + Gets or sets the name of the server. The default value is 'localhost'. + + The name of the server. + + + + Gets or sets host header. Used when you have more than one website in IIS that have the same port but different host headers. + + The name of the host header. + + + + Gets or sets the server port. + + The server port. + + + + Gets or sets the IIS server path. + + Is in the form 'IIS://localhost/W3SVC/1/Root'. + The IIS server path. + + + + Gets or sets the application path. + + Is in the form '/LM/W3SVC/1/Root'. + The application path. + + + + Gets or sets the IIS application pool path. + + Is in the form 'IIS://localhost/W3SVC/AppPools'. + The IIS application pool path. + + + + Gets or sets the username for the account the task will run under. This property + is needed if you specified a for a remote machine. + + The username of the account. + + + + Gets or sets the password for the account the task will run under. This property + is needed if you specified a for a remote machine. + + The password of the account. + + + + Defines the possible IIS versions supported by the task. + + + + + IIS version 4.x + + + + + IIS version 5.x + + + + + IIS version 6.x + + + + + Defines the possible application pool actions to be performed. + + + + + Recycles an application pool. + + + + + Stops and restarts the application pool. + + + + + Starts the application pool. + + + + + Stops the application pool. + + + + + Defines the current application pool state. + + + + + The application pool is starting. + + + + + The application pool has started. + + + + + The application pool is stopping. + + + + + The application pool has stopped. + + + + + When overridden in a derived class, executes the task. + + + True if the task successfully executed; otherwise, false. + + + + + Gets or sets the name of the virtual directory. + + The name of the virtual directory. + + + + The filename extension that will be mapped to an executable. + + + + + The full path to the executable used to respond to requests for a Uri ending with + + This property is required when is false (the default). + + + + Indicates whether should be mapped to the ASP.NET runtime. + + When true, is set to aspnet_isapi.dll + in the installation folder of the latest version of the .NET Framework. + + + + A comma-separated list of the HTTP verbs to include in the application mapping. + + The default behavior (when this property is empty or unspecified) is to map all verbs. + A semi-colon-separated list will also be recognized, allowing you to use an MSBuild Item. + + + + Set to true when you want the application to run in a directory without Execute permissions. + + + + + Set to true to instruct the Web server to verify the existence of the requested script file and to ensure that the requesting user has access permission for that script file. + + + + + Reads and modifies a web directory configuration setting. + + Display the file system path of the MyWeb web directory: + + + + + ]]> + + Set the default document for the MyWeb directory to Default.aspx: + + + ]]> + + + + + When overridden in a derived class, executes the task. + + + True if the task successfully executed; otherwise, false. + + + + + Gets or sets the name of the virtual directory. + + The name of the virtual directory. + + + + Gets or sets the configuration setting to read or modify. + + + + + Gets or sets the value of on the web directory + + + + + A wrapper for the ILMerge tool. + + + + The ILMerge tool itself must be installed separately. + It is available here. + + + The command line options "/wildcards" and "/lib" of ILMerge are not supported, + because MSBuild is in charge of expanding wildcards for item groups. + + + + This example merges two assemblies A.dll and B.dll into one: + + $(testDir)\ilmergetest.dll + $(testDir)\keypair.snk + $(testDir)\ExcludeTypes.txt + $(testDir)\ilmergetest.log + + + + + + + + + ]]> + + + + + Initializes a new instance of the class. + + + + + Gets the standard installation path of ILMerge.exe. + + + If ILMerge is not installed at its standard installation path, + provide its location to . + + Returns [ProgramFiles]\Microsoft\ILMerge.exe. + + + + Generates a string value containing the command line arguments + to pass directly to the executable file. + + + Returns a string value containing the command line arguments + to pass directly to the executable file. + + + + + Gets or sets the names of public types + to be renamed when they are duplicates. + + + Set to an empty item group to allow all public types to be renamed. + Don't provide this parameter if no duplicates of public types are allowed. + Corresponds to command line option "/allowDup". + The default value is null. + + + + + Gets or sets a value indicating whether to treat an assembly + with a zero PeKind flag + (this is the value of the field listed as .corflags in the Manifest) + as if it was ILonly. + + + Corresponds to command line option "/zeroPeKind". + The default value is false. + + + + + Gets or sets the attribute assembly + from whre to get all of the assembly-level attributes + such as Culture, Version, etc. + It will also be used to get the Win32 Resources from. + + + This property is mutually exclusive with . + + When not specified, then the Win32 Resources from the primary assembly + are copied over into the target assembly. + + Corresponds to command line option "/attr". + The default value is null. + + + + + Gets or sets a value indicating whether + to augment the list of input assemblies + to its "transitive closure". + + + + An assembly is considered part of the transitive closure if it is referenced, + either directly or indirectly, + from one of the originally specified input assemblies + and it has an external reference to one of the input assemblies, + or one of the assemblies that has such a reference. + + Corresponds to command line option "/closed". + The default value is false. + + + + + Gets or sets a value indicating whether + to copy the assembly level attributes + of each input assembly over into the target assembly. + + + + Any duplicate attribute overwrites a previously copied attribute. + The input assemblies are processed in the order they are specified. + + This parameter is mutually exclusive with . + Corresponds to command line option "/copyattrs". + The default value is false. + + + + + Gets or sets a value indicating whether + to preserve any .pdb files + that are found for the input assemblies + into a .pdb file for the target assembly. + + + Corresponds to command line option "/ndebug". + The default value is true. + + + + + Gets or sets a value indicating whether + the target assembly will be delay signed. + + + This property can be set only in conjunction with . + Corresponds to command line option "/delaysign". + The default value is false. + + + + + Gets or sets the file + that will be used to identify types + that are not to have their visibility modified. + + + + If an empty item group is provided, + then all types in any assembly other than the primary assembly are made non-public. + + Omit this parameter to prevent ILMerge from modifying the visibility of any types. + + The contents of the file should be one per line. + The regular expressions are matched against each type's full name, + e.g., System.Collections.IList. + If the match fails, it is tried again with the assembly name (surrounded by square brackets) + prepended to the type name. + Thus, the pattern \[A\].* excludes all types in assembly A from being made non-public. + The pattern N.T will match all types named T in the namespace named N + no matter what assembly they are defined in. + + Corresponds to command line option "/internalize". + The default value is null. + + + + + Gets or sets the input assemblies to merge. + + + + + Gets or sets a value indicating whether whether types in assemblies other than the primary assembly have their visibility modified. + + true if internalize; otherwise, false. + + This controls whether types in assemblies other than the primary assembly have + their visibility modified. When it is true, then all non-exempt types that are visible + outside of their assembly have their visibility modified so that they are not visible + from outside of the merged assembly. A type is exempt if its full name matches a line + from the ExcludeFile (Section 2.9) using the .NET regular expression engine. + Corresponds to command line option "/internalize". + The default value is false. + + + + + Gets or sets the .snk file + to sign the target assembly. + + + Can be used with . + Corresponds to command line option "/keyfile". + The default value is null. + + + + + Gets or sets a log file + to write log messages to. + + + + If an empty item group is provided, + then log messages are writte to . + + Corresponds to command line option "/log". + The default value is null. + + + + + Gets or sets the target assembly. + + + Corresponds to command line option "/out". + + + + + Gets or sets a value indicating whether + external assembly references in the manifest + of the target assembly will use public keys (false) + or public key tokens (true). + + + Corresponds to command line option "/publickeytokens". + The default value is false. + + + + + Gets or sets the .NET framework version for the target assembly. + + + Valid values are "v1", "v1.1", "v2". + Corresponds to the first part of command line option "/targetplatform". + The default value is null. + + + + + Gets or sets the directory in which mscorlib.dll is to be found. + + + Can only be used in conjunction with . + Corresponds to the second part of command line option "/targetplatform". + The default value is null. + + + + + Gets or sets the indicator + whether the target assembly is created as a library (Dll), + a console application (Exe) or as a Windows application (WinExe). + + + Corresponds to command line option "/target". + The default value is the same kind as that of the primary assembly. + + + + + Gets or sets the version number of the target assembly. + + + The parameter should look like 6.2.1.3. + Corresponds to command line option "/ver". + The default value is null. + + + + + Gets or sets a value indicating whether + to merge XML documentation files + into one for the target assembly. + + + Corresponds to command line option "/xmldocs". + The default value is false. + + + + + Gets the name of the executable file to run. + + + + + Installs assemblies. + + + Uses InstallUtil.exe to execute the + Install + method of + Installer + classes contained within specified assemblies. + + + Install multiple assemblies by specifying the file names: + + +]]> + + + Install an assembly using the assembly name. Also disable the log file by setting it to a single space: + + +]]> + + + You can easily chain an install to the result of a build: + + + + + +]]> + + + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Returns a string value containing the command line arguments + to pass directly to the executable file. + + + A string value containing the command line arguments to pass + directly to the executable file. + + + + + The assemblies to process, identified by their assembly name. + + + + + The assemblies to process, identified by their filename. + + + + + The file to write installation progress to. + + Set to a single space to disable logging to a file. + + If not specified, the default is to log to [assemblyname].installLog + + + + + + If an exception occurs at any point during installation, the call + stack will be printed to the log. + + + + + Determines whether assemblies are installed or uninstalled. + + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + Uninstalls assemblies. + + Uses InstallUtil.exe to execute the + Uninstall + method of + Installer + classes contained within specified assemblies. + + Uninstall multiple assemblies by specifying the file names: + + ]]> + + Unnstall an assembly using the assembly name. Also disable the log file by setting it to a single space: + + ]]> + + + + + Determines whether assemblies are installed or uninstalled. + + + + + Performs the modulo operation on numbers. + + + The modulo operation finds the remainder of the division of one number by another. + When the second number (modulus) is a fractional value, the result can be a fractional value. + + Equivalent to the % operator in C# or the Mod operator in Visual Basic. + + + Numbers evenly divide: + + + + + +]]> + + Above example will display: + 12 modulo 4 = 0 + + Division on the numbers produces a remainder: + + + + + +]]> + + Above example will display: + 14 modulo 4 = 2 + + Modulus is a fractional value: + + + + + +]]> + + Above example will display: + 12 modulo 3.5 = 1.5 + + + + + Math task base class + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Strings array to decimal array. + + The numbers. + + + + + Gets or sets the numbers to work with. + + The numbers. + + + + Gets or sets the result. + + The result. + + + + Gets or sets the numeric format. + + The numeric format. + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Displays a message on the console and waits for user input. + + It is important to note that the message is not written to the MSBuild logger, + it is always written to the console, no matter which logger is configured. + This task requires user input from the console. Do not use this task for projects + that will be executed unattended. It is recommended that you always add a Condtion so that + this task is only enabled when a custom property is set through the command line. + This will ensure that the other users do not attempt to execute the task in unattended mode. + + Pause the build if the interactive property is set: + + + + ]]> + + Obtain user input during the build: + (Note: in most cases, it is recommended that users instead provide custom values to your build through the /property argument of msbuild.exe) + + + + + ]]> + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + The message to display in the console. + + + + + The text entered at the console. + + + + + Base class for Regex tasks + Handles public properties for Input, Expression, Options and Output + + + + + Regex expression + + + + + Input, list of items to perform the regex on + + + + + Regex options as strings corresponding to the RegexOptions enum: + Compiled + CultureInvariant + ECMAScript + ExplicitCapture + IgnoreCase + IgnorePatternWhitespace + Multiline + None + RightToLeft + Singleline + + + + + + Results of the Regex transformation. + + + + + Options converted to RegexOptions enum + + + + + Task to filter an Input list with a Regex expression. + Output list contains items from Input list that matched given expression + + Matches from TestGroup those names ending in a, b or c + + + + + + + + + + + + + + + + + ]]> + + + + + Performs the Match task + + if the task ran successfully; + otherwise . + + + + Task to replace portions of strings within the Input list + Output list contains all the elements of the Input list after + performing the Regex Replace. + + + 1st example replaces first occurance of "foo." with empty string + 2nd example replaces occurance of "foo." after character 6 with "oop." string + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + Performs the Replace task + + if the task ran successfully; + otherwise . + + + + String replacing matching expression strings in input list. + If left empty matches in the input list are removed (replaced with empty string) + + + + + Number of matches to allow on each input item. + -1 indicates to perform matches on all matches within input item + + + + + Position within the input item to start matching + + + + + Different ways to specify the assembly in a UsingTask element. + + + + + Assembly file name (Default): <UsingTask AssemblyFile="foo.dll" /> + + + + + Assembly location: <UsingTask AssemblyName="foo" /> + + + + + Assembly Name: <UsingTask AssemblyFile="bin\debug\foo.dll" /> + + + + + Assembly fully qualified name: <UsingTask AssemblyName="foo.dll,version ...." /> + + + + + A Task that generates a XSD schema of the tasks in an assembly. + + + Creates schema for MSBuild Community Task project + + ]]> + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the list of path to analyse. + + + + + Gets or sets the output path for the generated files. + + + + + Gets the list of path to the generated XSD schema. + + + + + Gets or sets a value indicating if the task list (using UsingTask) + has to be genereted. + + + + + Gets or sets a value indicating how the assembly is specified in the + UsingTask element. + + + + + + Gets or sets a value indicating wheter documentation should be ignored + even if available (Default is false). + + + + + Gets the path to the task list if it was generated. + + + + + Gets or sets a value indicating if the + MsBuild schema inclusing should be ignored + + + + + Gets or sets a list of included schemas + + + + + Retrieves the list of Projects contained within a Visual Studio Solution (.sln) file + + + Returns project name, GUID, and path information from test solution + + + + + + + + + + + + + + + ]]> + + + + + Perform task + + true on success + + + + A list of the project files found in + + + The name of the project can be retrieved by reading metadata tag ProjectName. + + The path to the project as it is is stored in the solution file retrieved by reading metadata tag ProjectPath. + + + The project's GUID can be retrieved by reading metadata tag ProjectGUID. + + + + + + Name of Solution to get Projects from + + + + + MSBuild task to execute DDL and SQL statements. + + Requires the the SQL Server libraries and dynamically loads the + required Microsoft.SqlServer.ConnectionInfo assembly. + + + Server=localhost;Integrated Security=True + + + + + + ]]> + + + + + Executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + The connection string + + + + + Gets or sets the DDL/SQL files. + + The assemblies. + + + + Output the return count/values + + + + + Timeout to execute a DDL statement. + + Defaults to 30 seconds. Set to 0 for an infinite timeout period. + + + + Gets or sets the batch delimter string. + + Default is "GO" for T-SQL. + + + + The kind of Subversion node. The names match the text output + by "svn info". + + + + + Node is a file + + + + + Node is a directory + + + + + Unknown node type + + + + + The Subversion schedule type. + + + + + Normal schedule + + + + + Unknown schedule. + + + + + Run the "svn info" command and parse the output + + + This example will determine the Subversion repository root for + a working directory and print it out. + + + + + + + ]]> + + You can retrieve Subversion information for a or . + If you do not provide a value for or , the current directory is assumed. + + + + Initializes a new instance of the class. + + + + + Reset all instance variables to their default (unset) state. + + + + + Execute the task. + + true if execution is successful, false if not. + + + + Return the repository root or null if not set by Subversion. + + + + + Return the repository UUID value from Subversion. + + + + + The Subversion node kind. + + + + + + The author who last changed this node. + + + + + The last changed revision number. + + + + + The date this node was last changed. + + + + + The Subversion schedule type. + + + + + + MSBuild task that replaces tokens in a template file and writes out a new file. + + + + + MSBuild Community Tasks + + + + + ]]> + + Tokens in the template file are formatted using ${var} syntax and names are not + case-sensitive, so ${Token} and ${TOKEN} are equivalent. + + + + Meta data tag used for token replacement + + + + + Default constructor. Creates a new TemplateFile task. + + + + + Executes the task. + + Success or failure of the task. + + + + The token replaced template file. + + + + + The full path to the output file name. If no filename is specified (the default) the + output file will be the Template filename with a .out extension. + + + + + The template file used. Tokens with values of ${Name} are replaced by name. + + + + + List of tokens to replace in the template. Token name is taken from the TaskItem.ItemSpec and the + replacement value comes from the ReplacementValue metadata of the item. + + + + + Gets the current date and time. + + + See + + DateTimeFormatInfo + for the syntax of the format string. + + Using the Time task to get the Month, Day, + Year, Hour, Minute, and Second: + + + + + + + + + ]]> + Set property "BuildDate" to the current date and time: + + + ]]> + + + + + When overridden in a derived class, executes the task. + + + True if the task successfully executed; otherwise, false. + + + + + Gets or sets the format string + for output parameter . + + + See + + DateTimeFormatInfo + for the syntax of the format string. + + + + + Gets the month component of the date represented by this instance. + + + + + Gets the day of the month represented by this instance. + + + + + Gets the year component of the date represented by this instance. + + + + + Gets the hour component of the date represented by this instance. + + + + + Gets the minute component of the date represented by this instance. + + + + + Gets the seconds component of the date represented by this instance. + + + + + Gets the milliseconds component of the date represented by this instance. + + + + + Gets the number of ticks that represent the date and time of this instance. + + + + + Gets or sets a value that indicates whether the time represented by this instance is based + on local time, Coordinated Universal Time (UTC), or neither. + + + Possible values are: + + Local (default), + Utc, + Unspecified + + + + + + + Gets the time of day for this instance. + + + + + Gets the day of the year represented by this instance. + + + + + Gets the day of the week represented by this instance. + + + + + Gets the value of this instance to its equivalent string representation. + If input parameter is provided, + the value is formatted according to it. + + + + + Gets the value of this instance to its equivalent short date string representation. + + + + + Gets the value of this instance to its equivalent long date string representation. + + + + + Gets the value of this instance to its equivalent short time string representation. + + + + + Gets the value of this instance to its equivalent long time string representation. + + + + + Gets the internal time value. + + + + + Represents a single XmlNode selected using an XML task. + + + + + + Initializes a new instance of an XmlNodeTaskItem + + The selected XmlNode + The prefix to attach to the reserved metadata properties. + + + + Returns a string representation of the XmlNodeTaskItem. + + + + + + Returns the ItemSpec when the XmlNodeTaskItem is explicitly cast as a + + The XmlNodeTaskItem + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reads a value or values from lines of XML + + + Use the Lines property (possibly populated from the the ReadLinesFromFile task) if you want to perform multiple + queries against some XML in memory. Use the XmlFileName property to query a large XML file. + + An XPath expression can return multiple nodes in the collection. + The number of nodes returned is availabe in the output TaskParameter. + + + When the XPath expression resolves to an element node, all of the + attributes of the element are added as metadata to the returned . + In addition, some reserved metadata properties are available on all element nodes. + They are all prefixed with the , + which is a single underscore (_) by default. + + + Reserved Property + + + _value + The value of the node (non-xml text between the opening and closing tags). + + + _innerXml + The markup representing the children of this node. + + + _outerXml + The markup representing this node and all its child nodes. + + + + + Read an attribute value by selecting it with an XPath expression: + + + + + + + + + + +]]> + + + Read attribute values (from an XML file) using item metadata on a selected element node: + + + + + + + +]]> + + + Read an element value (requires use of the reserved metadata property "_value"): + + + + + + + + + + +]]> + + + + + + When overridden in a derived class, executes the task. + + + True if the task successfully executed; otherwise, false. + + + + + The lines of a valid XML document + + + + + Gets or sets the name of an XML file to query + + The full path of the XML file. + + + + A collection of prefix=namespace definitions used to query the XML document + + + Defining multiple namespaces: + + +/>]]> + + + + + + The query used to identify the values in the XML document + + + + + The values selected by + + + + + The number of values returned in + + + + + The string that is prepended to all reserved metadata properties. + + The default value is a single underscore: '_' + All attributes of an element node are added as metadata to the returned ITaskItem, + so this property can be used to avoid clashes with the reserved properties. + For example, if you selected the following node: + ]]> + the _value attribute would clash with the value reserved property, when using + the default prefix. If you set the ReservedMetaDataPrefix to another value (two underscores '__') + there would be no clash. You would be able to select the attribute using %(item._value) + and the value of the node using %(item.__value). + + + + Provides methods used by all of the XML tasks + + + + + + Concatenates the string value of a list of ITaskItems into a single string + + The items to concatenate + A single string containing the values from all of the items + + + + Uses the prefix=namespace definitions in to populate + + The to populate. + The prefix=namespace definitions. + + + + A task to merge and transform a set of xml files. + + +

+ The xml files of parameter + are merged into one xml document, + wrapped with a root tag +

+

+ If only one input file is provided, + merging and wrapping can be omitted + by setting to an empty string. +

+

+ The root tag can be given any number of attributes + by providing a list of semicolon-delimited name/value pairs + to parameter . + For example: RootAttributes="foo=bar;date=$(buildDate)" +

+

+ Parameter defaults to + one attribute with a name specified by , + and a local time stamp as value. + To suppress the default value, an empty parameter + RootAttributes="" + must be specified explicitely. +

+

+ The xsl transformation file + specified by parameter + is applied on the input. +

+

+ The + can be given any number of metadata, + which will be handed to the xsl transformation + as parameters. +

+

+ If only one input file is given with , + metadata will also be handed to the xsl transformation. + However, the metadata is preferred in case of equal names. + To overcome this limitation, for each input item metadatum, an additional parameter + prefixed with is created. +

+

+ The output is written to the file + specified by parameter . +

+
+ This example for generating a report + from a set of NUnit xml results: + + + + $(project) + $(configuration) + $(MSBuildProjectFullPath) + $(MSBuildBinPath) + $(MSBuildCommunityTasksPath)\$(nunitReportXsl) + + + + + +]]> + + + This examples shows all available task attributes: + + + + + +]]> + + +
+ + + The name of the default attribute + of the . + The value is "created", + and the attribute will contain a local time stamp. + + + + + The prefix of XSLT parameters created from single XML input metadata. + The value is "input_". + + + + + When overridden in a derived class, executes the task. + + + Returns true if the task successfully executed; otherwise, false. + + + + + Adds a new xsl parameter with to the specified argument list. + + The name of the parameter. + The value of the parameter. + The parameter list. + Whether the parameter was added. + Does not add the parameter + when a parameter with the same name is already part of the . + + + + Gets or sets the xml input files. + + + + + Gets or sets the xml tag name + of the root tag wrapped + around the merged xml input files. + + + + + Gets or sets the list of + semicolon-delimited name/value pairs + of the . + For example: RootAttributes="foo=bar;date=$(buildDate)" + + + + + Gets or sets the path of the + xsl transformation file to apply. + + + The property can be given any number of metadata, + which will be handed to the xsl transformation + as parameters. + + + + + Gets or sets the path of the output file. + + + + + Replace text in file(s) using a Regular Expression. + + Search for a version number and update the revision. + + ]]> + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the files to update. + + The files. + + + + Gets or sets the regex. + + The regex. + + + + Gets or sets a value specifies case-insensitive matching. . + + true if [ignore case]; otherwise, false. + + + + Gets or sets a value changing the meaning of ^ and $ so they match at the beginning and end, + respectively, of any line, and not just the beginning and end of the entire string. + + true if multiline; otherwise, false. + + + + Gets or sets a value changing the meaning of the dot (.) so it matches + every character (instead of every character except \n). + + true if singleline; otherwise, false. + + + + Gets or sets the maximum number of times the replacement can occur. + + The replacement count. + + + + Gets or sets the replacement text. + + The replacement text. + + + + The character encoding used to read and write the file. + + Any value returned by is valid input. + The default is utf-8 + + + + When TRUE, a warning will be generated to show which file was not updated. + + N/A + + + + Uses FxCop to analyse managed code assemblies and reports on + their design best-practice compliance. + + + Shows how to analyse an assembly and use an XSLT stylesheet + to present the report as an HTML file. If the static anlysis fails, + the build does not stop - this is controlled with the FailOnError + parameter. + + ]]> + + If you include the MSBuild.Community.Tasks.Targets file + in you build project, the ItemGroup @(FxCopRuleAssemblies) is defined + with the standard FxCop Rules Assemblies. + + + + Executes the task. + + if the task ran successfully; + otherwise . + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Returns a string value containing the command line arguments + to pass directly to the executable file. + + + A string value containing the command line arguments to pass + directly to the executable file. + + + + + Indicates whether all task paratmeters are valid. + + true if all task parameters are valid; otherwise, false + + + + Returns the directory in which to run the executable file. + + + The directory in which to run the executable file, + or a null reference (Nothing in Visual Basic) if the executable file + should be run in the current directory. + + + + + Tells FxCop to search the GAC for assembly references. This parameter was added in FxCop 1.35 + + + + + Applies the XSL transformation specified in /outXsl to the + analysis report before saving the file. + + + + + Directs analysis output to the console or to the + Output window in Visual Studio .NET. By default, + the XSL file FxCopConsoleOutput.xsl is applied to the + output before it is displayed. + + + + + Specifies additional directories to search for assembly dependencies. + FxCopCmd always searches the target assembly directory and the current + working directory. + + + + + Specifies the target assembly to analyze. + + + + + Specifies the XSL or XSLT file that contains a transformation to + be applied to the analysis output before it is displayed in the console. + + + + + Specifies the name of an analysis report or project file to import. + Any messages in the imported file that are marked as excluded are not + included in the analysis results. + + + + + Specifies the custom dictionary. + + + + + Specifies the filename(s) of FxCop rule assemblies + + + + + The list of rules to run + + Rule names should be provided using the format Library#RuleNumber. For example Microsoft.Design#CA1012 + Place a single hyphen (-) in front of the rule name to exclude it. For example -Microsoft.Performance#CA1805 + + + + + Specifies the file name for the analysis report. + + + + + Specifies the XSL or XSLT file that is referenced by the + xml-stylesheet processing instruction in the analysis report. + + + + + Specifies the location of the version of Mscorlib.dll + that was used when building the target assemblies if this + version is not installed on the computer running FxCopCmd. + + + + + Specifies the filename of FxCop project file. + + + + + Includes a summary report with the informational + messages returned by FxCopCmd. + + + + + Comma-separated list of type names to analyze. This option disables + analysis of assemblies, namespaces, and resources; only the specified + types and their members are included in the analysis. + Use the wildcard character '*' at the end of the name to select multiple types. + + + + + Saves the results of the analysis in the project file. + + + + + Gets or sets the working directory. + + The working directory. + + The directory in which to run the executable file, or a null reference (Nothing in Visual Basic) if the executable file should be run in the current directory. + + + + + Gets or sets a value indicating whether the output is verbose. + + true if verbose; otherwise, false. + + + + Gets or sets a value indicating whether the build should + fail if static code analysis reports errors. Defaults to + true. + + true if verbose; otherwise, false. + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + Defines the actions that can be performed on a service. + + + + + Starts a service. + + + + + Stops a service. + + + + + Restarts a service. + + + + + Pauses a running service. + + + + + Continues a paused service. + + + + + Task that can control a Windows service. + + + Restart Web Server + + ]]> + + + + + Task that can determine the status of a specified service + on a target server. + + + Check status of SQL Server + + + + + ]]> + + + + + The unknown + returned when the service does not exist. + The value is "Unknown". + + + + + Initializes a new instance of the class. + + + + + Executes the task. + + if the task ran successfully; + otherwise . + + + + Gets the service controller. + + + + + + Gets or sets the name of the service. + + The name of the service. + + + + Gets or sets the name of the machine. + + The name of the machine. + + + + Gets or sets the status. + + The status of the service. + + + + Gets a value indicating whether the service can be paused and resumed. + + + true if this instance can pause and continue; otherwise, false. + + + + + Gets a value indicating whether the service should be notified when the system is shutting down. + + + true if this instance can shutdown; otherwise, false. + + + + + Gets a value indicating whether the service can be stopped after it has started. + + true if this instance can stop; otherwise, false. + + + + Gets a friendly name for the service. + + The name of the display. + + + + Gets a value indicating whether the service exists. + + true if the service exists; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Executes the task. + + if the task ran successfully; + otherwise . + + + + Gets or sets the to perform on the service. + + The action to perform on the service. + + + + + Gets or sets the timeout for the command. The default is + one minute. + + The timeout for the command. + + + + Task that can strip the source control information from a + Visual Studio Solution and subprojects. + + This task is useful if you keep an archive of the + source tree at each build milestone, because it's irritating to have + to remove source control binding manually once you've copied a + version of the code from your archive. + + + + Executes the task. + + if the task ran successfully; + otherwise . + + + + Creates a new application pool on a local or remote machine with IIS installed. The default is + to create the new application pool on the local machine. If connecting to a remote machine, you can + specify the and for the task + to run under. + + Create a new application pool on the local machine. + + ]]> + + + + + When overridden in a derived class, executes the task. + + + True if the task successfully executed; otherwise, false. + + + + + Gets or sets the name of the application pool. + + The name of the application pool. + + + + The AppPoolAutoStart property indicates to the World Wide Web Publishing Service (WWW service) + to automatically start an application pool when the application pool is created or when IIS + is started, if the value of this property is set to true. + + Value indicating if AppPoolAutoStart is enabled or disabled. + + + + The AppPoolIdentityType property allows application pools to run as a specific user account: + + 0 - The application pool runs as NT AUTHORITY\SYSTEM. + 1 - The application pool runs as NT AUTHORITY\LOCAL SERVICE. + 2 - The application pool runs as NT AUTHORITY\NETWORK SERVICE. + 3 - The application pool runs as a specific user account, defined by the property. + + Value indicating the application pool identity type. + + + + The AppPoolQueueLength property indicates to the Universal Listener how many requests + to queue up for an application pool before rejecting future requests. When the limit + for this property is exceeded, IIS rejects the additional requests with a 503 error. + + Value indicating the application pool queue length. + + + + The AutoShutdownAppPoolExe property specifies an executable to run when the World Wide Web + Publishing Service (WWW service) shuts down an application pool for rapid fail protection. You + can use the property to send parameters to the executable. + + Value indicating the application pool auto shutdown executable. + + + + The AutoShutdownAppPoolParams property specifies any command-line parameters for the executable that + is specified in the AutoShutdownAppPoolExe property. You can use these two properties in the following + way to send e-mail, for example, when the World Wide Web Publishing Service (WWW service) shuts down + an application pool for rapid fail protection: + + AutoShutdownAppPoolExe = "C:\LogAndSendMail.bat" + AutoShutdownAppPoolParams = "-AppPoolName %1%" + + where %1% represents the application pool name. + + Value indicating the parameters for the application pool auto shutdown executable. + + + + The CPUAction property configures the action(s) that IIS takes when Microsoft Windows NT ® job objects + run. Only one Windows NT job object exists per application pool, therefore the CPUAction property + is configured on a per application pool basis. + + Possible values: + 0 - No action is taken except that a warning is written to the event log when the CPU limit is exceeded. + 1 - Application pool worker processes that exceed their CPU limit will be forced to shut down. + + Value indicating the CPU action. + + + + The CPULimit property configures the maximum percentage of CPU resources that worker processes + in an application pool are allowed to consume over a period of time, as indicated by the + property. Set this property by specifying a percentage of CPU + usage, multiplied by 1000. For example, if you want the CPU usage limit to be 50%, set CPULimit to 50,000. + + Value indicating the CPU limit. + + + + The CPUResetInterval property specifies the reset period (in minutes) for CPU monitoring and + throttling limits on the application pool. When the number of minutes elapsed since the last + process accounting reset equals the number specified by this property, IIS will reset the CPU + timers for both the logging and limit intervals. Setting the value of this property to 0 + disables CPU monitoring. + + Value indicating the CPU reset interval. + + + + The DisallowOverlappingRotation property specifies whether or not the World Wide Web Publishing + Service (WWW Service) should start up another worker process to replace the existing worker + process while it is shutting down. + + Value indicating the DisallowOverlappingRotation. + + + + The DisallowRotationOnConfigChange property specifies whether or not the World Wide Web Publishing + Service (WWW Service) should rotate worker processes in an application pool when the configuration + has changed. This means that the worker processes will not pick up application pool changes to + values passed to the worker process, such as and . + + Value indicating the DisallowRotationOnConfigChange. + + + + The IdleTimeout property specifies how long (in minutes) a worker process should run idle if no new + requests are received and the worker process is not processing requests. After the allotted time + passes, the worker process should request to be shut down by the World Wide Web Publishing Service (WWW Service). + + Value indicating the idle timeout. + + + + The LoadBalancerCapabilities property specifies behavior when a service is unavailable. A setting of 1 + terminates the connection. A setting of 2 sends error code 503. + + Value indicating the load balancer capabilities. + + + + The LogEventOnRecycle property specifies that IIS should log an event when an application pool is + recycled. Application pools recycle for a variety of reasons. In order for IIS to log the event, the + LogEventOnRecycle property must have a bit set corresponding to the reason for the recycle. + + Value indicating which recycle events to log. + + + + The LogonMethod property contains an integer that specifies the logon method for cleartext + logons. Valid settings are: + + 0 for interactive logon. + 1 for batch logon. + 2 for network logon. + 3 for cleartext logon. + + Value indicating the logon method. + + + + The MaxProcesses property determines the maximum number of worker processes an application pool + allows to service requests for an application pool. This property cannot be set to 0 because there + are no unmanaged pools. + + Value indicating the maximum number of worker processes allowed by the application pool. + + + + The OrphanActionExe property specifies an executable to run when the World Wide Web Publishing + Service (WWW service) orphans a worker process. You can use the property + to send parameters to the executable. + + The value for the orphan action executable. + + + + The OrphanActionParams property specifies command-line parameters for the executable + specified by the property. + + Value indicating the orphan action parameters. + + + + The OrphanWorkerProcess property, when set to true, notifies the World Wide Web Publishing + Service (WWW Service) not to terminate a worker process that fails to respond to pings, but + to instead orphan the worker process in the application pool if the worker process suffers + fatal errors. + + Value indicating the orphan worker process. + + + + The PeriodicRestartMemory property specifies the amount of virtual memory (in KB) that a + worker process can use before the worker process recycles. The maximum value supported + for this property is 4,294,967 KB. + + Value indicating the amount of memory. + + + + The PeriodicRestartPrivateMemory property specifies the amount of private memory (in KB) that a + worker process can use before the worker process recycles. The maximum value supported + for this property is 4,294,967 KB. + + Value indicating the amount of memory. + + + + The PeriodicRestartRequests property indicates the number of requests the OOP application + should process, after which it is recycled. + + Value indicating the number of requests. + + + + The PeriodicRestartSchedule property specifies the time (in 24 hour format) that the application + will be rotated. Each time is in local time and is specified in the following format: + + PeriodicRestartSchedule="hh:mm,hh:mm,hh:mm" + + Value indicating the restart schedule. + + + + The PeriodicRestartTime property specifies the period of time, in minutes, after which IIS + rotates an isolated OOP application. Setting the value of this property to 0 disables the + property. The maximum supported value for this property is 71,582. + + Value indicating the restart time period. + + + + The PingingEnabled property specifies whether the World Wide Web Publishing Service + (WWW Service) should periodically monitor the health of a worker process. Setting the + value of this property to true indicates to the WWW service to monitor the worker + processes to ensure that the they are running and healthy. + + Value indicating if pinging is enabled or disabled. + + + + The PingInterval property specifies the period of time (in seconds) between health-monitoring + pings that the World Wide Web Publishing Service (WWW Service) sends to a worker process. + + Value indicating the ping interval. + + + + The PingResponseTime property specifies the amount of time (in seconds) that a worker process + is given to respond to a health monitoring ping. After the time limit is exceeded, the World + Wide Web Publishing Service (WWW Service) terminates the worker process. + + Value indicating the ping response time. + + + + Setting the RapidFailProtection property to true instructs the World Wide Web Publishing + Service (WWW service) to put all applications in an application pool out of service if the + number of worker process crashes has reached the maximum specified by the + property, within the number of minutes specified + by the property. + + Value indicating if rapid fail protection is enabled or disabled. + + + + The RapidFailProtectionInterval property specifies the number of minutes before the failure + count for a process is reset. See . + + Value indicating the rapid fail protection interval. + + + + The RapidFailProtectionMaxCrashes property specifies the maximum number of failures + allowed within the number of minutes specified by the + property. See . + + Value indicating the maximum number of crashes. + + + + The ShutdownTimeLimit property specifies the amount of time (in seconds) after a recycle + threshold has been reached that IIS waits for all old requests to finish running in a worker + process before terminating the worker process. + + Value indicating the shutdown time limit. + + + + Setting the SMPAffinitized property to true indicates that a particular worker process + assigned to an application pool should be assigned to a given CPU. This property is used + in conjunction with the property to configure a + particular processor a worker process will be assigned to. + + Value indicating if SMPAffinitized is enabled or disabled. + + + + The SMPProcessorAffinityMask property configures the hexadecimal processor mask. The hexadecimal + processor mask indicates to which CPU the worker processes in an application pool should be + bound. Before this property takes affect, the property must be set + to true for the application pool. These properties cannot be set through IIS Manager. + + Do not set this property to zero. Doing so causes no SMP affinity to be configured, creating an + error condition. The default DWORD value is 4294967295 (or -1), which is represented in hexadecimal + as 0xFFFFFFFF. A value of 0xFFFFFFFF in SMPProcessorAffinityMask indicates that all processors are enabled. + + Value indicating the SMP processor affinity bit mask. + + + + The value of the StartupTimeLimit property specifies the amount of time (in seconds) that the World Wide + Web Publishing Service (WWW Service) should wait for a worker process to finish starting up and + reporting to the WWW Service. + + Value indicating the startup time limit. + + + + The WAMUserName property specifies the account user name that IIS uses by default as the COM+ + application identity for newly created IIS out-of-process applications. The values of this + property and its companion property, , are set when IIS is installed, and + match the user name and password values in the Microsoft Windows user account, which is established + at the same time. Changing the value of this property is not recommended. If you do, change + it to a valid Windows user account, and change WAMUserPass to the corresponding password + for the new account. + + Important: + Changes to WAMUserName and WAMUserPass may disrupt the operation of existing IIS out-of-process + applications. You can synchronize application identities using Component Services to edit the + user name and password values, found on the Identity tab of the property sheet for each package. + + In-process applications are not affected by these property values. + + Value indicating the username. + + + + The WAMUserPass property specifies the password for the account that IIS uses by default as the COM+ + application identity for newly created IIS out-of-process applications. The values of this property + and its companion property, , are set when IIS is installed, and match the + password and user name values in the Microsoft Windows user account (IWAM_ MachineName, where MachineName + is the name of the machine on which IIS is installed) established at the same time. + + Important: + Changing the value of this property is not recommended. If you do, you must change the Windows account + password to the identical value. You must also synchronize existing IIS out-of-process application + identities, using Component Services to edit the user name and password values, which are found on the + Identity tab of the property sheet for each package. + + In-process applications are not affected by these property values. + + Value indicating the password. + + + + Creates a new web directory on a local or remote machine with IIS installed. The default is + to create the new web directory on the local machine. The physical path is required to already exist + on the target machine. If connecting to a remote machine, you can specify the + and for the task to run under. + + Create a new web directory on the local machine. + + ]]> + + + + + When overridden in a derived class, executes the task. + + + True if the task successfully executed; otherwise, false. + + + + + Gets or sets the name of the virtual directory. + + The name of the virtual directory. + + + + Gets or sets the virtual directory physical path. The physical directory must + exist before this task executes. + + The virtual directory physical path. + + + + Gets or sets a value that indicates if the file + or the contents of the folder may be executed, regardless of file type. + + A value indicating if AccessExecute is enabled or disabled. + + + + A value of true indicates that remote requests to execute applications + are denied; only requests from the same computer as the IIS server succeed + if the AccessExecute property is set to true. You cannot set + AccessNoRemoteExecute to false to enable remote requests, and set + to false to disable local requests. + + Value indicating if AccessNoRemoteExecute is enabled or disabled. + + + + A value of true indicates that remote requests to view files are denied; only + requests from the same computer as the IIS server succeed if the + property is set to true. You cannot set to false to enable + remote requests, and set to false to disable local requests. + + Value indicating if AccessNoRemoteRead is enabled or disabled. + + + + A value of true indicates that remote requests to view dynamic content are denied; only + requests from the same computer as the IIS server succeed if the property + is set to true. You cannot set AccessNoRemoteScript to false to enable remote requests, + and set to false to disable local requests. + + Value indicating if AccessNoRemoteScript is enabled or disabled. + + + + A value of true indicates that remote requests to create or change files are denied; only + requests from the same computer as the IIS server succeed if the property + is set to true. You cannot set AccessNoRemoteWrite to false to enable remote requests, + and set to false to disable local requests. + + Value indicating if AccessNoRemoteWrite is enabled or disabled. + + + + A value of true indicates that the file or the contents of the folder may be read + through Microsoft Internet Explorer. + + Value indicating if AccessRead is enabled or disabled. + + + + A value of true indicates that users are allowed to access source code if either + Read or Write permissions are set. Source code includes scripts in Microsoft ® Active + Server Pages (ASP) applications. + + Value indicating if AccessSource is enabled or disabled. + + + + A value of true indicates that the file or the contents of the folder may be executed + if they are script files or static content. A value of false only allows static files, + such as HTML files, to be served. + + Value indicating if AccessScript is enabled or disabled. + + + + A value of true indicates that file access requires SSL file permission processing, with + or without a client certificate. + + Value indicating if AccessSsl is enabled or disabled. + + + + A value of true indicates that file access requires SSL file permission processing + with a minimum key size of 128 bits, with or without a client certificate. + + Value indicating if AccessSsl128 is enabled or disabled. + + + + A value of true indicates that SSL file permission processing maps a client certificate + to a Microsoft Windows ® operating system user-account. The property + must also be set to true for the mapping to occur. + + Value indicating if AccessSslMapCert is enabled or disabled. + + + + A value of true indicates that SSL file access processing requests a certificate from + the client. A value of false indicates that access continues if the client does not have + a certificate. Some versions of Internet Explorer will close the connection if the server + requests a certificate and a certificate is not available (even if + is also set to true). + + Value indicating if AccessSslNegotiateCert is enabled or disabled. + + + + A value of true indicates that SSL file access processing requests a certificate from the + client. If the client provides no certificate, the connection is closed. + must also be set to true when using AccessSSLRequireCert. + + Value indicating if AccessSslRequireCert is enabled or disabled. + + + + A value of true indicates that users are allowed to upload files and their associated + properties to the enabled directory on your server or to change content in a Write-enabled + file. Write can be implemented only with a browser that supports the PUT feature of + the HTTP 1.1 protocol standard. + + Value indicating if AccessWrite is enabled or disabled. + + + + The AnonymousPasswordSync property indicates whether IIS should handle the user password + for anonymous users attempting to access resources. + + Value indicating if AnonymousPasswordSync is enabled or disabled. + + + + The AppAllowClientDebug property specifies whether ASP client-side debugging + is enabled. This property is independent of , which + applies to server-side debugging. + + Value indicating if AppAllowClientDebug is enabled or disabled. + + + + The AppAllowDebugging property specifies whether ASP debugging is enabled on + the server. This property is independent of the property, + which applies to client-side debugging. + + Value indicating if AppAllowDebugging is enabled or disabled. + + + + The AspAllowSessionState property enables session state persistence for the ASP application. + + Value indicating if the AspAllowSessionState is enabled or disabled. + + + + The AspBufferingOn property specifies whether output from an ASP application will be buffered. + + Value indicating if the AspBufferingOn is enabled or disabled. + + + + The AspEnableApplicationRestart determines whether an ASP application can be + automatically restarted. When changes are made to Global.asa or metabase properties + that affect an application, the application will not restart unless the + AspEnableApplicationRestart property is set to true. + + Value indicating if AspEnableApplicationRestart is enabled or disabled. + + + + The AspEnableAspHtmlFallback property controls the behavior of ASP when a + new request is to be rejected due to a full request queue. + + Value indicating if AspEnableAspHtmlFallback is enabled or disabled. + + + + The AspEnableChunkedEncoding property specifies whether HTTP 1.1 chunked + transfer encoding is enabled for the World Wide Web Publishing Service (WWW service). + + Value indicating if AspEnableChunkedEncoding is enabled or disabled. + + + + The AspErrorsToNTLog property specifies which ASP errors are written to the + Windows event log. ASP errors are written to the client browser and to the IIS + log files by default. + + Value indicating if AspErrorsToNTLog is enabled or disabled. + + + + The AspEnableParentPaths property specifies whether an ASP page allows paths + relative to the current directory (using the ..\ notation) or above the current directory. + + Value indicating if AspEnableParentPaths is enabled or disabled. + + + + The AspEnableTypelibCache property specifies whether type libraries are cached + on the server. The World Wide Web Publishing Service (WWW service) setting for + this property is applicable to all in-process and pooled out-of-process application + nodes, at all levels. Metabase settings at the Web server level or lower are ignored + for in-process and pooled out-of-process applications. However, settings at the Web + server level or lower are used if that node is an isolated out-of-process application. + + Value indicating if AspEnableTypelibCache is enabled or disabled. + + + + The AspExceptionCatchEnable property specifies whether ASP pages trap exceptions + thrown by components. + + Value indicating if AspExceptionCatchEnable is enabled or disabled. + + + + The AspLogErrorRequests property controls whether the Web server writes ASP errors + to the application section of the Windows event log. ASP errors are written to the + client browser and to the IIS log files by default. + + Value indicating if AspLogErrorRequests is enabled or disabled. + + + + The AspScriptErrorSentToBrowser property specifies whether the Web server writes + debugging specifics (file name, error, line number, description) to the client + browser, in addition to logging them to the Windows Event Log. The + property provides the error message to be sent if this property is set to false. + + Value indicating if AspScriptErrorSentToBrowser is enabled or disabled. + + + + The AspTrackThreadingModel property specifies whether IIS checks the threading model + of any components (COM objects) that your application creates. The preferred setting + of this metabase property is false. + + Value indicating if AspTrackThreadingModel is enabled or disabled. + + + + Specifies Anonymous authentication as one of the possible Windows authentication + schemes returned to clients as being available. + + Value indicating if AuthAnonymous is enabled or disabled. + + + + Specifies Basic authentication as one of the possible Windows authentication + schemes returned to clients as being available. + + Value indicating if AuthBasic is enabled or disabled. + + + + Specifies Integrated Windows authentication (also known as Challenge/Response or + NTLM authentication) as one of the possible Windows authentication schemes + returned to clients as being available. + + Value indicating if AuthNtlm is enabled or disabled. + + + + Setting this flag to true specifies that authentication persists only for a single + request on a connection. IIS resets the authentication at the end of each request, and + forces re-authentication on the next request of the session. + + Value indicating if AuthPersistSingleRequest is enabled or disabled. + + + + Setting this flag to true specifies authentication will persist only across single + requests on a connection if the connection is by proxy. IIS will reset the authentication + at the end of the request if the current authenticated request is by proxy and it is + not the special case where IIS is running MSPROXY. + + Value indicating if AuthPersistSingleRequestIfProxy is enabled or disabled. + + + + Setting this flag to true specifies that authentication is valid for a single request if + by proxy. IIS will reset the authentication at the end of the request and force + re-authentication on the next request if the current authenticated request is by + proxy of any type. + + Value indicating if AuthPersistSingleRequestAlwaysIfProxy is enabled or disabled. + + + + The CacheControlNoCache property specifies the HTTP 1.1 directive to prevent caching of content. + + Value indicating if CacheControlNoCache is enabled or disabled. + + + + The CacheISAPI property indicates whether ISAPI extensions are cached in memory after first use. + + Value indicating if CacheIsapi is enabled or disabled. + + + + The ContentIndexed property specifies whether the installed content indexer should + index content under this directory tree. + + Value indicating if ContentIndexed is enabled or disabled. + + + + This property specifies whether process accounting and throttling should be performed + for ISAPI extensions and ASP applications. To perform process accounting on CGI + applications, use the property . + + Value indicating if CpuAppEnabled is enabled or disabled. + + + + This property indicates whether IIS should perform process accounting for CGI + applications. To effectively throttle CGI applications, use the CgiTimeout + property. To use process accounting for ISAPI and ASP applications, use . + + Value indicating if CpuCgiEnabled is enabled or disabled. + + + + The CreateCGIWithNewConsole property indicates whether a CGI application runs in its own console. + + Value indicating if CreateCgiWithNewConsole is enabled or disabled. + + + + The CreateProcessAsUser property specifies whether a CGI process is created in the system context or in the context of the requesting user. + + Value indicating if CreateProcessAsUser is enabled or disabled. + + + + When set to true, date information is displayed when browsing directories. + + Value indicating if DirBrowseShowDate is enabled or disabled. + + + + When set to true, file name extensions are displayed when browsing directories. + + Value indicating if DirBrowseShowExtension is enabled or disabled. + + + + When set to true, date information is displayed in extended format when displaying directories. + + Value indicating if DirBrowseShowLongDate is enabled or disabled. + + + + When set to true, file size information is displayed when browsing directories. + + Value indicating if DirBrowseShowSize is enabled or disabled. + + + + When set to true, file time information is displayed when displaying directories. + + Value indicating if DirBrowseShowTime is enabled or disabled. + + + + The DontLog property specifies whether client requests are written to the IIS log files. + + Value indicating if DontLog is enabled or disabled. + + + + When set to true, the default document (specified by the property) for + a directory is loaded when the directory is browsed. + + Value indicating if EnableDefaultDoc is enabled or disabled. + + + + When set to true, directory browsing is enabled. + + Value indicating if EnableDirBrowsing is enabled or disabled. + + + + The EnableDocFooter property enables or disables custom footers specified by + the DefaultDocFooter property. + + Value indicating if EnableDocFooter is enabled or disabled. + + + + The EnableReverseDns property enables or disables reverse Domain Name Server (DNS) lookups + for the World Wide Web Publishing Service (WWW service). Reverse lookups involve looking + up the domain name when the IP address is known. Reverse DNS lookups can use significant + resources and time. + + Value indicating if EnableReverseDns is enabled or disabled. + + + + The SSIExecDisable property specifies whether server-side include (SSI) #exec directives + are disabled under this path. + + Value indicating if SsiExecDisable is enabled or disabled. + + + + The UNCAuthenticationPassthrough property enables user authentication passthrough + for Universal Naming Convention (UNC) virtual root access (for authentication schemes + that support delegation). + + Value indicating if UncAuthenticationPassthrough is enabled or disabled. + + + + The AspScriptErrorMessage property specifies the error message to send to the browser + if specific debugging errors are not sent to the client (if + is set to false). + + Value indicating if AspScriptErrorMessage is enabled or disabled. + + + + The DefaultDoc contains one or more file names of default documents that will be returned + to the client if no file name is included in the client's request. The default document + will be returned if the flag of the DirBrowseFlags property + is set to true for the directory. This property can contain a list of default document + file names separated by a comma and a space, for example Default.htm, Default.asp. + + Listing of the default documents for the web application. + + + + Deletes an existing application pool on a local or remote machine with IIS installed. The default is + to delete an existing application pool on the local machine. If connecting to a remote machine, you can + specify the and for the task + to run under. + + Delete an existing application pool on the local machine. + + ]]> + + + + + When overridden in a derived class, executes the task. + + + True if the task successfully executed; otherwise, false. + + + + + Gets or sets the name of the application pool. + + The name of the application pool. + + + + Deletes a web directory on a local or remote machine with IIS installed. The default is + to delete the web directory on the local machine. If connecting to a remote machine, you + can specify the and for the + task to run under. + + Deletes a web directory on the local machine. + + ]]> + + + + + When overridden in a derived class, executes the task. + + + True if the task successfully executed; otherwise, false. + + + + + Gets or sets the name of the virtual directory. + + The name of the virtual directory. + + + + Actions the can do. + + + + Start the applicaiton pool + + + Stop the applicaiton pool + + + Restart the applicaiton pool + + + Recycle the applicaiton pool + + + + Allows control for an application pool on a local or remote machine with IIS installed. The default is + to control the application pool on the local machine. If connecting to a remote machine, you can + specify the and for the task + to run under. + + Restart an application pool on the local machine. + + ]]> + + + + + When overridden in a derived class, executes the task. + + + True if the task successfully executed; otherwise, false. + + + + + Gets or sets the name of the app pool. + + The name of the app pool. + + + + Gets or sets the application pool action. + + The application pool action. + + + + + Sends an email message + + Example of sending an email. + + + + ]]> + + + + + Initializes a new instance of the class. + + + + Sends an email message + Returns true if successful + + + + List of files to attach to message + + + + + List of addresss that contains the blind carbon copy (BCC) recipients for this e-mail message + + + + + List of addresss that contains the carbon copy (CC) recipients for this e-mail message + + + + + The email message body + + + + + The from address for this e-mail message + + + This property is required. + + + + + A value indicating whether the mail message body is in Html + + + + + The priority of this e-mail message + + + Possible values are High, Normal, and Low + + + + + The subject line for this e-mail message + + + This property is required. + + + + + The name or IP address of the host used for SMTP transactions + + + This property is required. + + + + + List of addresss that contains the recipients of this e-mail message + + + This property is required. + + + + + Gets or sets the username. + + The username. + + + + Gets or sets the password. + + The password. + + + + Specify whether the Mail task uses SSL to encrypt the connection. + + true if the Mail task uses SSL; otherwise false. The default value is false. + + + + Add numbers + + Adding numbers: + + + + + ]]> + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Divide numbers + + + + + + + +]]> + + Above example will display: + Divide 1/2= 0.5 + + Truncate the result to always return an integer: + + + + + +]]> + + Above example will display: + Divide 7/3= 2 + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + When , uses integer division to truncate the result. Default is + + + Any remainder in the result is dropped, and the closest integer to zero is returned. + + Refer to the documentation for the \ Operator + for more information about integer division. + + + + + + Multiple numbers + + + + + + + ]]> + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Subtract numbers + + + + + + + ]]> + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Moves files on the filesystem to a new location. + + + Move a file to another folder + + ]]> + Rename a file + + ]]> + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets the items that were successfully moved. + + The moved files. + + + + Gets or sets the list of files to moved the source files to. + + + This list is expected to be a one-to-one mapping with the + list specified in the SourceFiles parameter. That is, the + first file specified in SourceFiles will be moved to the + first location specified in DestinationFiles, and so forth. + + The destination files. + + + + Gets or sets the directory to which you want to move the files. + + The destination folder. + + + + Gets or sets the source files to move. + + The source files to move. + + + + Runs the NDoc application. + + Generated html help file. + + ]]> + + + + + Initializes a new instance of the class. + + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Logs the starting point of the run to all registered loggers. + + A descriptive message to provide loggers, usually the command line and switches. + + + + Returns the directory in which to run the executable file. + + + The directory in which to run the executable file, or a null reference (Nothing in Visual Basic) if the executable file should be run in the current directory. + + + + + Gets or sets the documenter. + + The documenter. + Available documenters are VS.NET_2003, JavaDoc, LaTeX, LinearHtml, MSDN, XML. + + + + Gets or sets the project file path. + + The project file path. + + + + Gets or sets a value indicating whether the output is verbose. + + true if verbose; otherwise, false. + + + + Gets or sets the working directory. + + The working directory. + + The directory in which to run the executable file, or a null reference (Nothing in Visual Basic) if the executable file should be run in the current directory. + + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + Gets the with which to log errors. + + + The with which to log errors. + + + + Run NUnit 2.4 on a group of assemblies. + + Run NUnit tests. + + + + + + + ]]> + + + + + The default relative path of the NUnit installation. + The value is @"NUnit 2.4\bin". + + + + + Initializes a new instance of the class. + + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Logs the starting point of the run to all registered loggers. + + A descriptive message to provide loggers, usually the command line and switches. + + + + Returns the directory in which to run the executable file. + + + The directory in which to run the executable file, or a null reference (Nothing in Visual Basic) if the executable file should be run in the current directory. + + + + + Gets or sets the assemblies. + + The assemblies. + + + + Gets or sets the categories to include. + + Multiple values must be separated by a comma "," + + + + Gets or sets the categories to exclude. + + Multiple values must be separated by a comma "," + + + + Gets or sets the fixture. + + The fixture. + + + + Gets or sets the XSLT transform file. + + The XSLT transform file. + + + + Gets or sets the output XML file. + + The output XML file. + + + + The file to receive test error details. + + + + + Gets or sets the working directory. + + The working directory. + + The directory in which to run the executable file, or a null reference (Nothing in Visual Basic) if the executable file should be run in the current directory. + + + + + Determines whether assemblies are copied to a shadow folder during testing. + + Shadow copying is enabled by default. If you want to test the assemblies "in place", + you must set this property to True. + + + + The project configuration to run. + + Only applies when a project file is used. The default is the first configuration, usually Debug. + + + + Allows tests to be run in a new thread, allowing you to take advantage of ApartmentState and ThreadPriority settings in the config file. + + + + + Determines whether the tests are run in a 32bit process on a 64bit OS. + + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + Gets the with which to log errors. + + + The with which to log errors. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Failed to lookup information for {0} in Active Directory.. + + + + + Looks up a localized string similar to Attrib directory '{0}'. {1}. + + + + + Looks up a localized string similar to Attrib file '{0}'. {1}. + + + + + Looks up a localized string similar to Couldn't connect to remove server.. + + + + + Looks up a localized string similar to Couldn't resolve server host name {0}.. + + + + + Looks up a localized string similar to Creating directory "{0}".. + + + + + Looks up a localized string similar to Both "{0}" and "{1}" were specified as input parameters in the project file. Please choose one or the other.. + + + + + Looks up a localized string similar to File Not Found: {0}. + + + + + Looks up a localized string similar to Local File Not Found: {0}. + + + + + Looks up a localized string similar to {0}% Complete ({1}). + + + + + Looks up a localized string similar to Transfered {0} ({1}) in {2}. + + + + + Looks up a localized string similar to Upload File Complete, {0}. + + + + + Looks up a localized string similar to Uploading "{0}" + to "{1}" + . + + + + + Looks up a localized string similar to The URI "{0}" scheme is not valid.. + + + + + Looks up a localized string similar to Compressed by {0}, from {1} to {2} byte(s). + + + + + Looks up a localized string similar to Compressing JavaScript in "{0}".. + + + + + Looks up a localized string similar to Writing compressed JavaScript back to "{0}" using {1}.. + + + + + Looks up a localized string similar to Emailing "{0}".. + + + + + Looks up a localized string similar to "{0}" is not a number.. + + + + + Looks up a localized string similar to Merge Complete: {0} files merged into '{1}'.. + + + + + Looks up a localized string similar to Merge Complete: No source files to merge.. + + + + + Looks up a localized string similar to Merging file '{0}' into '{1}'. + + + + + Looks up a localized string similar to Unable to move file "{0}" to "{1}". {2}. + + + + + Looks up a localized string similar to Moving file from "{0}" to "{1}".. + + + + + Looks up a localized string similar to Could not find the NUnit Project File open command. Please make sure NUnit is installed.. + + + + + Looks up a localized string similar to Checking Oracle Home: {0}. + + + + + Looks up a localized string similar to The parameter "{1}" does not apply to the current use of task "{0}".. + + + + + Looks up a localized string similar to The "{0}" task was not given a value for the required parameter "{1}".. + + + + + Looks up a localized string similar to Read Windows Registry. + + + + + Looks up a localized string similar to Write Windows Registry. + + + + + Looks up a localized string similar to Cannot continue service {0} on computer '{1}' as it does not support the pause and continue.. + + + + + Looks up a localized string similar to Cannot pause service {0} on computer '{1}' as it does not support the pause and continue.. + + + + + Looks up a localized string similar to Cannot stop service {0} on computer '{1}'.. + + + + + Looks up a localized string similar to {0} service was continued successfully.. + + + + + Looks up a localized string similar to {0} service is continuing .... + + + + + Looks up a localized string similar to Couldn't find the '{0}' service on '{1}'. + + + + + Looks up a localized string similar to Cannot continue service {0} on computer '{1}' as its not currently paused.. + + + + + Looks up a localized string similar to Cannot pause service {0} on computer '{1}' as its not currently started.. + + + + + Looks up a localized string similar to {0} service was paused successfully.. + + + + + Looks up a localized string similar to {0} service is pausing .... + + + + + Looks up a localized string similar to {0} service was started successfully.. + + + + + Looks up a localized string similar to {0} service is starting .... + + + + + Looks up a localized string similar to The '{0}' service on '{1}' is '{2}'.. + + + + + Looks up a localized string similar to {0} service was stopped successfully.. + + + + + Looks up a localized string similar to {0} service is stopping .... + + + + + Looks up a localized string similar to Solution file "{0}" not found.. + + + + + Looks up a localized string similar to LocalPath is not a working subversion copy.. + + + + + Looks up a localized string similar to Could not {0} the file "{1}" to the destination file "{2}", because the destination is a folder instead of a file. To {0} the source file into a folder, consider using the DestinationFolder parameter instead of DestinationFiles.. + + + + + Looks up a localized string similar to No destination specified for {0}. Please supply either "{1}" or "{2}".. + + + + + Looks up a localized string similar to The source file "{0}" is actually a directory. The "{1}" task does not support moving directories.. + + + + + Looks up a localized string similar to Failed to get current date!. + + + + + Looks up a localized string similar to Getting current date.. + + + + + Looks up a localized string similar to Adding TNSNAMES entry "{0}" to "{1}". + + + + + Looks up a localized string similar to Looking for {0}. + + + + + Looks up a localized string similar to Unable to locate a TNSNAMES.ORA file. Please specify a value for TnsNamesFile.. + + + + + Looks up a localized string similar to TNSNAME entry "{0}" already exists in "{1}" and AllowUpdates=false.. + + + + + Looks up a localized string similar to Updating TNSNAMES entry "{0}" in "{1}". + + + + + Looks up a localized string similar to "{2}" refers to {0} item(s), and "{3}" refers to {1} item(s). They must have the same number of items.. + + + + + Looks up a localized string similar to extracted "{0}". + + + + + Looks up a localized string similar to Unzip File "{0}" + to Directory "{1}" + . + + + + + Looks up a localized string similar to Unzipped file "{0}" successfully.. + + + + + Looks up a localized string similar to Commitment of change set failed!. + + + + + Looks up a localized string similar to Files added to Vault repository successfully.. + + + + + Looks up a localized string similar to Files specified for addition to repository cannot be found.. + + + + + Looks up a localized string similar to The file {0} could not be checked in: {1}.. + + + + + Looks up a localized string similar to File or folder {0} not found for checkin.. + + + + + Looks up a localized string similar to The folder {0} could not be checked in: {1}.. + + + + + Looks up a localized string similar to {0} successfully checked out.. + + + + + Looks up a localized string similar to {0} successfully checked out.. + + + + + Looks up a localized string similar to Specified diskfile {0} does not exist.. + + + + + Looks up a localized string similar to File [{0}] added to change set.. + + + + + Looks up a localized string similar to Folder [{0}] added to change set.. + + + + + Looks up a localized string similar to Incorrect parameters passed to VaultSession.. + + + + + Looks up a localized string similar to Login to Vault repository failed.. + + + + + Looks up a localized string similar to Error validating path "{0}".. + + + + + Looks up a localized string similar to Selection of the repository failed: {0}.. + + + + + Looks up a localized string similar to File or folder {0} not found for checkout.. + + + + + Looks up a localized string similar to Set working folder for {0} to {1} from {2}.. + + + + + Looks up a localized string similar to ClientInstance.TreeCache has not been initialized, Common cause is that SelectRepository has not been called sucessfully.. + + + + + Looks up a localized string similar to Successfully undid check out for {0}.. + + + + + Looks up a localized string similar to Url specifying vault location is required.. + + + + + Looks up a localized string similar to Username must be set to access repository.. + + + + + Looks up a localized string similar to Clearing working folder for {0}.. + + + + + Looks up a localized string similar to Restoring working folder for {0} to {1}.. + + + + + Looks up a localized string similar to Version file "{0}" not found - creating new file.. + + + + + Looks up a localized string similar to Updated to version {0}. + + + + + Looks up a localized string similar to Initialized to version {0}. + + + + + Looks up a localized string similar to Reading version from file "{0}".. + + + + + Looks up a localized string similar to Unable to read version number from "{0}". {1}. + + + + + Looks up a localized string similar to Unable to write version number to "{0}". {1}". + + + + + Looks up a localized string similar to Wrote version to file "{0}".. + + + + + Looks up a localized string similar to Web directory {0} does not exist on {1}.. + + + + + Looks up a localized string similar to Setting scriptmap for {0} on web directory {1} on {2}.. + + + + + Looks up a localized string similar to Web directory {0} on {1} does not have a setting called {2}.. + + + + + Looks up a localized string similar to Reading {0} property of web directory {1} on {2}.. + + + + + Looks up a localized string similar to Setting {0} property of web directory {1} on {2}.. + + + + + Looks up a localized string similar to Reading Xml Document "{0}".. + + + + + Looks up a localized string similar to {0} node(s) selected for read.. + + + + + Looks up a localized string similar to XmlRead Result: "{0}". + + + + + Looks up a localized string similar to Updating Xml Document "{0}".. + + + + + Looks up a localized string similar to {0} node(s) selected for update.. + + + + + Looks up a localized string similar to XmlUpdate Wrote: "{0}".. + + + + + Looks up a localized string similar to Adding Parameter "{0}": "{1}".. + + + + + Looks up a localized string similar to Adding root attribute {0}="{1}".. + + + + + Looks up a localized string similar to Creating root tag "{0}".. + + + + + Looks up a localized string similar to No input files.. + + + + + Looks up a localized string similar to No root tag inserted.. + + + + + Looks up a localized string similar to added "{0}".. + + + + + Looks up a localized string similar to Creating zip file "{0}".. + + + + + Looks up a localized string similar to Zip File Not Found: {0}.. + + + + + Looks up a localized string similar to Created zip file "{0}" successfully.. + + + + + Reads a value from the Registry + + Read .NET Framework install root from Registry. + + + + + ]]> + + The parameter is set according to the following rules: + If a is provided, it will be used if the or does not exist. + If a is not provided, the exists, but the does not exist, will be set to an empty string. + If a is not provided, and the does not exist, the task will fail. + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the full registry path of the key, beginning with a valid registry root, such as "HKEY_CURRENT_USER". + + The name of the key. + + + + Gets or sets the name of the name/value pair. + + The name of the value. + + + + Gets or sets the default value. + + The default value. + + + + Gets the stored value. + + The value. + + + + Writes a value to the Registry + + Write a value to Registry + + ]]> + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the full registry path of the key, beginning with a valid registry root, such as "HKEY_CURRENT_USER". + + The name of the key. + + + + Gets or sets the name of the name/value pair. + + The name of the value. + + + + Gets or sets the value to be stored. + + The value. + + + + Executes code contained within the task. + + + Simple script that writes to the console + + + + + + + + + + +]]> + + + + + + Executes the task. + + if the task ran successfully; + otherwise . + + + + The required references + + + + + The namespaces to import. + + + + + The language of the script block (defaults to C#). + + The supported languages are: + + Visual Basic.NET (VB, vb, VISUALBASIC) + C# (C#, c#, CSHARP) + JavaScript (JS, js, JSCRIPT) + J# (VJS, vjs, JSHARP) + or, proviude the fully-qualified name for a class implementing + . + + + + The name of the main class containing the static ScriptMain + entry point. + + + + + The code to compile and execute + + + The code must include a static (Shared in VB) method named ScriptMain. + It cannot accept any parameters. If you define the method return a , + the returned value will be available in the output property. + + + + + The string returned from the custom ScriptMain method. + + + + + A task for sleeping for a specified period of time. + + Causes the build to sleep for 300 milliseconds. + + ]]> + + + + + Executes the task. + + if the task ran successfully; + otherwise . + + + + The number of milliseconds to add to the time to sleep. + + + + + The number of seconds to add to the time to sleep. + + + + + The number of minutes to add to the time to sleep. + + + + + The number of hours to add to the time to sleep. + + + + + Base class for all of the Visual SourceSafe tasks. + + + + + Attempts to connect to the SourceSafe Database and + load the specified item, or version of the item, if specified. + + + + + Reserved. + + Reserved. + + + + Logs an exception using the MSBuild logging framework. + + The to log. + + + + The path to the folder that contains the srcsafe.ini file. + + + + + The Visual SourceSafe project or file to perform the action + on (starts with "$/"). + + + + + The name of the user accessing the SourceSafe database. + + + + + A version of the to reference. + + + + + The password to use to log in to SourceSafe. + + + + + Represents the VSS Database + + + + + Represents the VSS item selected (file or project). + + + + + Task that executes a checkin against a VSS Database. + + + + + ]]> + + + + + Base class for VSS tasks that can act recursively. + + + + + Reserved. + + Reserved. + + + + Determines whether to perform the SourceSafe operation + recursively. The default is . + + + + + Executes the task. + + if the task ran successfully; + otherwise . + + + + The path to the local working directory. + + + + + Determines whether to leave the file(s) as writable once the + checkin is complete. The default is . + + + + + The checkin comment. + + + + + Task that executes a checkout of files or projects + against a Visual SourceSafe database. + + + + + ]]> + + + + + Executes the task. + + if the task ran successfully; + otherwise . + + + + The path to the local working directory. + + + + + Determines whether files will be writable once retrieved from + the repository. The default is . + + + + + Task that adds files to a Visual SourceSafe database. + + + + + Executes the task. + + if the task ran successfully; + otherwise . + + + + List of files that should be added to SourceSafe. + + + + + The comment to be applied to the newly added file. + + + + + Task that records differences between the latest version + of all the items in a Visual SourceSafe project and another version or label + to a file. + + + Generates a file containing all of the differences between the + current version and the label "Test Label" + ]]> + + + + + Executes the task. + + if the task ran successfully; + otherwise . + + + + The value of the label to compare to. + + + + + The name of the file to send the output to. + + + + + Task that retireves an item or project from a Visual SourceSafe database. + + + Get the latest version (recursive) of a file from a VSS database and place + in the specified local folder. + + + + + + Runs the task using the specified parameters. + + if the task ran successfully; + otherwise . + + + + The path to the local working directory. + + + + + Determines whether to replace writable files. + The default is . + + + + + Determines whether files will be writable once retrieved from + the repository. The default is . + + + + + Generates an XML file containing details of all changes made + to a Visual SourceSafe project or file between specified labels or dates. + + + Generates a file containing details of all the changes made to the $/Test + project by a user called joe.bloggs + + ]]> + + + Generates a file containing details of all the changes made between the + labels Build1 and Build2 in the $/Test project. + + ]]> + + + Generates a file containing details of all the changes made between the + 1st December 2005 and 10th December 2005in the $/Test project. + + ]]> + + + + + Executes the task. + + if the task ran successfully; + otherwise . + + + + The label to start comparing to. + + + + + The label to compare up to. + + + + + The Start Date for the history. + + + + + The End Date for the history. + + + + + The name and path of the XML output file. + + + + + The name of the user whose changes should be listed in + the history. + + + + + Task that applies a label to a Visual SourceSafe item. + + + + + Executes the task. + + if the task ran successfully; + otherwise . + + + + The text of the label. + + + + + An optional comment. + + + + + Task that undoes a checkout of files or projects + against a Visual SourceSafe database. + + + + + ]]> + + + + + Executes the task. + + if the task ran successfully; + otherwise . + + + + The path to the local working directory. + + + + + Executes a SQL command. + + + Execute a SQL command against a database. Target attributes to set: + ConnectionString (required), Command (required, the SQL to execute), + SelectMode (NonQuery, Scalar, or ScalarXml, default is NonQuery), + OutputFile (required when SelectMode is Scalar or ScalarXml). + + Note: ScalarXml was created because of the 2033 byte limit on the sql return. + See http://aspnetresources.com/blog/executescalar_truncates_xml.aspx for details. + + + Example of returning a count of items in a table. Uses the default SelectMode of NonQuery. + + ]]> + + Example of returning the items of a table in an xml format. + + ]]> + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Determines if an output file was specified. + + + + + The connection string + + + + + The command to execute + + + + + Command Timeout + + Defaults to 30 seconds. Set to 0 for an infinite timeout period. + + + + The SQL Selection Mode. Set to NonQuery, Scalar, or ScalarXml. Default is NonQuery. + + + + + The file name to write to + + + + + Output the return count/value + + + + + Checkout a local working copy of a Subversion repository. + + Checkout a working copy + + + + + + + + ]]> + + + + + Initializes a new instance of the class. + + + + + Indicates whether all task paratmeters are valid. + + + true if all task parameters are valid; otherwise, false. + + + + + Subversion Commit command + + + + + Initializes a new instance of the class. + + + + + Indicates whether all task paratmeters are valid. + + + true if all task parameters are valid; otherwise, false. + + + + + Export a folder from a Subversion repository + + Export from repository + + + + + + + + + ]]> + + + + + Initializes a new instance of the class. + + + + + Indicates whether all task paratmeters are valid. + + + true if all task parameters are valid; otherwise, false. + + + + + Summarize the local revision(s) of a working copy. + + The following example gets the revision of the current folder. + + + + + + + ]]> + + + + + Initializes a new instance of the class. + + + + + Returns the fully qualified path to the executable file. + + + The fully qualified path to the executable file. + + + + + Logs the starting point of the run to all registered loggers. + + A descriptive message to provide loggers, usually the command line and switches. + + + + Returns a string value containing the command line arguments to pass directly to the executable file. + + + A string value containing the command line arguments to pass directly to the executable file. + + + + + Runs the exectuable file with the specified task parameters. + + + true if the task runs successfully; otherwise, false. + + + + + Logs the events from text output. + + The single line. + The message importance. + + + Path to local working copy. + + + + Specifies whether to use the last committed revision number as + opposed to the last updated revision number. + + + + Revision number of the local working repository. + + + High revision number of the local working repository revision range. + + + Low revision number of the local working repository revision range. + + + True if working copy contains modifications. + + + True if working copy is switched. + + + + True if invoked on a directory that is not a working copy, + svnversion assumes it is an exported working copy and prints "exported". + + + + + Gets the with which to log errors. + + + The with which to log errors. + + + + Gets the name of the executable file to run. + + + The name of the executable file to run. + + + + Subversion Update command + + + + + Initializes a new instance of the class. + + + + + Indicates whether all task paratmeters are valid. + + + true if all task parameters are valid; otherwise, false. + + + + + Unzip a file to a target directory. + + Unzip file tasks + + ]]> + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the name of the zip file. + + The name of the zip file. + + + + Gets or sets the target directory. + + The target directory. + + + + Gets or sets a value indicating whether to overwrite any existing files on extraction. Defaults to true. + + true to overwrite any existing files on extraction; otherwise, false. + + + + Gets the files extracted from the zip. + + The files extracted from the zip. + + + + Generates version information based on various algorithms + + Get version information from file and increment revision. + + + + + + + + ]]> + + Specify Major and Minor version information and generate Build and Revision. + + + + + + + + ]]> + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the major version number. + + The major version number. + + + + Gets or sets the minor version number. + + The minor version number. + + + + Gets or sets the build version number. + + + The build version number. + + + + Gets or sets the revision version number. + + + The revision version number. + + + + Gets or sets the file used to initialize and persist the version. + + The version file. + + When specified, the task will attempt to load the previous version information from the file. + After updating the version, the new value will be saved to the file. + + If you do not specify a value for this property, the version will be calculated + based on the values passed to the , , + , and properties. The new version will not be persisted. + + + + Gets or sets the method used to generate a number + + + If value is not provided, None is assumed. + The number is set according to the following table: + + MajorTypeDescription + NoneThe number is not modified. + IncrementIncreases the previous value by 1. + + + + + + Gets or sets the method used to generate a number + + + If value is not provided, None is assumed. + The number is set according to the following table: + + MinorTypeDescription + NoneThe number is not modified. + IncrementIncreases the previous value by 1. + ResetResets the previous value to 0. + + + + + + Gets or sets the method used to generate a number + + + If value is not provided, None is assumed. + The number is set according to the following table: + + BuildTypeDescription + NoneThe number is not modified. + AutomaticThe number of days since . + IncrementIncreases the previous value by 1. + ResetResets the previous value to 0. + + + + + + Gets or sets the method used to generate a number + + + If value is not provided, None is assumed. + The number is set according to the following table: + + RevisionTypeDescription + NoneThe number is not modified. + AutomaticA number that starts at 0 at midnight, and constantly increases throughout the day (changing roughly every 1.3 seconds). Guaranteed to be safe for components of the AssemblyVersion attribute. + IncrementIncreases the previous value by 1. + BuildIncrementIncreases the previous value by 1 when the value of is unchanged. If the value of has changed, is reset to 0. + ResetResets the previous value to 0. + + + + + + Gets or sets the starting date used to calculate the number when is Automatic. + + The starting date for calculation of the build number. + + This value is only used when the is Automatic. + This default value is January 1, 2000. + + + + + Downloads a resource with the specified URI to a local file. + + Download the Microsoft.com home page. + + ]]> + + Download a page from your local intranet protected by Windows Authentication + + ]]> + + Download a page from a password protected website + + ]]> + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Determines which credentials to pass with the web request + + + + + + Gets or sets the name of the local file that is to receive the data. + + The name of the file. + + + + Gets or sets the URI from which to download data. + + The file URI. + + + + When true, the current user's credentials are used to authenticate against the remote web server + + + This value is ignored if the property is set to a non-empty value. + + + + The username used to authenticate against the remote web server + + + + + The password used to authenticate against the remote web server. A value for must also be provided. + + + + + The domain of the user being used to authenticate against the remote web server. A value for must also be provided. + + + + + Reads a value from a XML document using a XPath. + + Read all targest from a build project. + + + + + ]]> + + + If the XPath returns multiple nodes, the Value will + be a semicolon delimited list of the nodes text. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the name of the XML file. + + The name of the XML file. + + + + Gets or sets the XPath. + + The XPath. + + + + Gets the value read from file. + + The value. + + If the XPath returns multiple nodes, the values will be semicolon delimited. + + + + + Gets or sets the default namespace. + + The namespace. + + + + Gets or sets the prefix to associate with the namespace being added. + + The namespace prefix. + + + + Updates a XML document using a XPath. + + Update a XML element. + + ]]> + + + The XML node being updated must exist before using the XmlUpdate task. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the name of the XML file. + + The name of the XML file. + + + + Gets or sets the XPath. + + The XPath. + + + + Gets or sets the value to write. + + The value. + + + + Gets or sets a value indicating whether the matched node is deleted. + + true to delete matched node; otherwise, false. + + + + Gets or sets the default namespace. + + The namespace. + + + + Gets or sets the prefix to associate with the namespace being added. + + The namespace prefix. + + + + Create a zip file with the files specified. + + Create a zip file + + + + + + + ]]> + Create a zip file using a working directory. + + + + + + + ]]> + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, executes the task. + + + true if the task successfully executed; otherwise, false. + + + + + Gets or sets the name of the zip file. + + The name of the zip file. + + + + Gets or sets the zip level. Default is 6. + + The zip level. + 0 - store only to 9 - means best compression + + + + Gets or sets the files to zip. + + The files to zip. + + + + Gets or sets a value indicating whether this is flatten. + + true if flatten; otherwise, false. + + Flattening the zip means that all directories will be removed + and the files will be place at the root of the zip file + + + + + Gets or sets the comment. + + The comment. + + + + Gets or sets the working directory for the zip file. + + The working directory. + + The working directory is the base of the zip file. + All files will be made relative from the working directory. + + + + + Gets or sets the password. + + The password. + + + + Gets or sets the encryption algorithm. + + The encryption algorithm. + + Possible values are None, PkzipWeak, WinZipAes128 and WinZipAes256 + + +
+
diff --git a/Build/MsBuildCommunityTasks/MSBuild.Community.Tasks.xsd b/Build/MsBuildCommunityTasks/MSBuild.Community.Tasks.xsd new file mode 100644 index 00000000..9c9e3143 --- /dev/null +++ b/Build/MsBuildCommunityTasks/MSBuild.Community.Tasks.xsd @@ -0,0 +1,6491 @@ + + + + + + Installs and register script mappings for ASP.NET + + + + + + + [Optional] The method used to determine if ASP.NET script mappings should be applied + + + + + [Optional] When , the aspnet_client scripts will be installed. No script mappings will be updated. + + + + + + [Optional] The web application that should have its script maps updated. + + + + + [Optional] When , script maps are applied recursively under . + + + + + + + [Optional] The version of ASP.NET to install + + + + + + + + + Generates an AssemblyInfo files + + + + + + + [Optional] Gets or sets whether to allow strong-named assemblies to be called by partially trusted code. + + + + + [Optional] Gets or sets the assembly company. + + + + + [Optional] Gets or sets the assembly configuration. + + + + + [Optional] Gets or sets the assembly copyright. + + + + + [Optional] Gets or sets the assembly culture. + + + + + [Optional] Gets or sets the assembly delay sign value. + + + + + [Optional] Gets or sets the assembly description. + + + + + [Optional] Gets or sets the assembly file version. + + + + + [Optional] Gets or sets the assembly informational version. + + + + + [Optional] Gets or sets the assembly key file. + + + + + [Optional] Gets or sets the assembly key name. + + + + + [Optional] Gets or sets the assembly product. + + + + + [Optional] Gets or sets the assembly title. + + + + + [Optional] Gets or sets the assembly trademark. + + + + + [Optional] Gets or sets the assembly version. + + + + + [Optional] Gets or sets a value indicating whether [CLSCompliant]. + + + + + Gets or sets the code language. + + + + + [Optional] Gets or sets a value indicating whether [COMVisible]. + + + + + [Optional] Gets or sets a value indicating whether to generate the ThisAssmebly class. + + + + + [Optional] Gets or sets the GUID. + + + + + [Optional] Makes it possible to make certain assemblies able to use constructs marked as internal. + Example might be setting this value to "UnitTests" assembly. The typical use case might + be constructors in classes which shouldn't be available to other assemblies, but the unit + tests should be able to use them. + + + + + [Optional] Gets or sets the neutral language which is used as a fallback language configuration + if the locale on the computer isn't supported. Example is setting this to "en-US". + + + + + [Optional] [Output] Gets or sets the output file. + + + + + [Optional] Gets or sets the assembly delay sign value. + + + + + [Optional] Gets or sets the assembly delay sign value. + + + + + + + + + Changes the attributes of files and/or directories + + + + + + + [Optional] Gets or sets file's archive status. + + + + + [Optional] Gets or sets a value indicating file is compressed. + + + + + [Optional] Gets or sets the list of directories to change attributes on. + + + + + [Optional] Gets or sets a value indicating file is encrypted. + + + + + [Optional] Gets or sets the list of files to change attributes on. + + + + + [Optional] Gets or sets a value indicating file is hidden, and thus is not included in an ordinary directory listing. + + + + + [Optional] Gets or sets a value indicating file is normal and has no other attributes set. + + + + + [Optional] Gets or sets a value indicating file is read-only. + + + + + [Optional] Gets or sets a value indicating file is a system file. + + + + + + + + + A task to play the sound of a beep through the console speaker. + + + + + + + [Optional] Gets or sets the of the beep measured in milliseconds. + Defaults to 200 milliseconds. + + + + + [Optional] Gets or sets the frequency of the beep, ranging from 37 to 32767 hertz. + Defaults to 800 hertz. + + + + + + + + + Provides information about the build computer. + + + + + + + [Optional] [Output] Gets the IP address of the build computer. + + + + + [Optional] [Output] Gets the host name of the build computer. + + + + + [Optional] [Output] Gets the platform identifier of the build computer's operating system . + + + + + [Optional] [Output] Gets the version number of the build computer's operating system. + + + + + + + + + Delete a directory tree. This task supports wild card directory selection. + + + + + + + [Optional] [Output] Gets the deleted directories. + + + + + Gets or sets the directories to be deleted. + + + + + [Optional] Gets or sets a value indicating whether this is recursive. + + + + + + + + + Replace text in file(s) using a Regular Expression. + + + + + + + [Optional] The character encoding used to read and write the file. + + + + + [Optional] Gets or sets the files to update. + + + + + [Optional] Gets or sets a value specifies case-insensitive matching. . + + + + + [Optional] Gets or sets a value changing the meaning of ^ and $ so they match at the beginning and end, + respectively, of any line, and not just the beginning and end of the entire string. + + + + + [Optional] Gets or sets the regex. + + + + + [Optional] Gets or sets the maximum number of times the replacement can occur. + + + + + [Optional] Gets or sets the replacement text. + + + + + [Optional] Gets or sets a value changing the meaning of the dot (.) so it matches + every character (instead of every character except \n). + + + + + [Optional] When TRUE, a warning will be generated to show which file was not updated. + + + + + + + + + Creates a full remote directory on the remote server if not exists using the File Transfer Protocol (FTP). + This can be one directory or a full path to create. + + + + + + + [Optional] Gets or sets the size of the data buffer. + + + + + [Optional] Gets the last recieved FTP response over the client socket. + + + + + [Optional] Gets or sets the password to login. + + + + + [Optional] Gets or sets the port number. + + + + + Gets or sets the remote directory to create. + + + + + Gets or sets the server host. + + + + + [Optional] Gets or sets the username to login. + + + + + + + + + Determ if a remote directory exists on a FTP server or not. + + + + + + + [Optional] Gets or sets the size of the data buffer. + + + + + [Optional] [Output] Gets an indication whether the directory exists on the server. + + + + + [Optional] Gets the last recieved FTP response over the client socket. + + + + + [Optional] Gets or sets the password to login. + + + + + [Optional] Gets or sets the port number. + + + + + Gets or sets the remote directory to create. + + + + + Gets or sets the server host. + + + + + [Optional] Gets or sets the username to login. + + + + + + + + + Uploads a full directory content to a remote directory. + + + + + + + [Optional] Gets or sets the size of the data buffer. + + + + + [Optional] Gets the last recieved FTP response over the client socket. + + + + + [Optional] Gets or sets the local directory that contains the content to upload. + + + + + [Optional] Gets or sets the password to login. + + + + + [Optional] Gets or sets the port number. + + + + + [Optional] Gets or sets a value indicating whether the subdirectories of the local directory should be created remotely and the content of these should also be uploaded. + + + + + [Optional] Gets or sets the remote directory destination for the local files. + + + + + Gets or sets the server host. + + + + + [Optional] Gets or sets the username to login. + + + + + + + + + Uploads a group of files using File Transfer Protocol (FTP). + + + + + + + [Optional] Gets or sets the single file to upload. Use + this or LocalFiles, but not both. + + + + + [Optional] Gets or sets the local files to upload. Use this + or LocalFile, but not both. + + + + + [Optional] Gets or sets the password. + + + + + Gets or sets the remote files to upload. + Each item in this list should have a corresponding item in LocalFiles. + + + + + Gets or sets the remote URI to upload. + + + + + [Optional] Gets or sets the behavior of a client application's data transfer process. + + + + + [Optional] Gets or sets the username. + + + + + + + + + Uses FxCop to analyse managed code assemblies and reports on + their design best-practice compliance. + + + + + + + [Optional] Specifies the file name for the analysis report. + + + + + [Optional] Applies the XSL transformation specified in /outXsl to the + analysis report before saving the file. + + + + + [Optional] Specifies the XSL or XSLT file that contains a transformation to + be applied to the analysis output before it is displayed in the console. + + + + + [Optional] Specifies the custom dictionary. + + + + + [Optional] Specifies additional directories to search for assembly dependencies. + FxCopCmd always searches the target assembly directory and the current + working directory. + + + + + [Optional] Directs analysis output to the console or to the + Output window in Visual Studio .NET. By default, + the XSL file FxCopConsoleOutput.xsl is applied to the + output before it is displayed. + + + + + + [Optional] Gets or sets a value indicating whether the build should + fail if static code analysis reports errors. Defaults to + true. + + + + + [Optional] Specifies the name of an analysis report or project file to import. + Any messages in the imported file that are marked as excluded are not + included in the analysis results. + + + + + [Optional] Includes a summary report with the informational + messages returned by FxCopCmd. + + + + + [Optional] Specifies the XSL or XSLT file that is referenced by the + xml-stylesheet processing instruction in the analysis report. + + + + + [Optional] Specifies the location of the version of Mscorlib.dll + that was used when building the target assemblies if this + version is not installed on the computer running FxCopCmd. + + + + + [Optional] Specifies the filename of FxCop project file. + + + + + [Optional] Specifies the filename(s) of FxCop rule assemblies + + + + + [Optional] The list of rules to run + + + + + [Optional] Saves the results of the analysis in the project file. + + + + + [Optional] Tells FxCop to search the GAC for assembly references. This parameter was added in FxCop 1.35 + + + + + [Optional] Specifies the target assembly to analyze. + + + + + + + [Optional] Comma-separated list of type names to analyze. This option disables + analysis of assemblies, namespaces, and resources; only the specified + types and their members are included in the analysis. + Use the wildcard character '*' at the end of the name to select multiple types. + + + + + [Optional] Gets or sets a value indicating whether the output is verbose. + + + + + [Optional] Gets or sets the working directory. + + + + + + + + + MSBuild task to install and uninstall assemblies into the GAC + + + + + + + Gets or sets the assembly name or file. + + + + + [Optional] Gets or sets the command. + + + + + [Optional] [Output] Gets the number of assemblies that failed to installed/uninstalled. + + + + + [Optional] Gets or sets a value indicating whether to force reinstall of an assembly. + + + + + [Optional] Gets or sets a value indicating whether related files are included when installing in GAC. + + + + + [Optional] [Output] Gets the installed assembly names. + + + + + [Optional] [Output] Gets the installed assembly paths. + + + + + [Optional] Gets or sets a value indicating whether warning messages are output. + + + + + [Optional] Gets or sets the related file extensions to copy when is true. + + + + + [Optional] [Output] Gets the number of assemblies that were skipped during installed/uninstalled. + + + + + [Optional] [Output] Gets the number of assemblies successfully installed/uninstalled. + + + + + + + + + + + + + Install the list of assemblies into the GAC. + + + + + Uninstall the list of assembly names from the GAC. + + + + + + + + + Retrieves the list of Projects contained within a Visual Studio Solution (.sln) file + + + + + + + [Optional] [Output] A list of the project files found in + + + + + Name of Solution to get Projects from + + + + + + + + + Html Help 1x compiler task. + + + + + + + + Gets or sets the project file path. + + + + + + + + + + + A Html Help 2.0 compiler task. + + + + + + + + [Optional] Gets or sets the log file. + + + + + [Optional] Gets or sets a value indicating whether no error messages will be output. + + + + + [Optional] Gets or sets a value indicating whether no info messages will be output. + + + + + [Optional] Gets or sets a value indicating whether no warning messages will be output. + + + + + [Optional] Gets or sets the output file. + + + + + Gets or sets the project file path. + + + + + [Optional] Gets or sets the project root. + + + + + [Optional] Gets or sets a value indicating quite mode. + + + + + + + [Optional] Gets or sets the uncompile directory. + + + + + [Optional] Gets or sets the uncompile file. + + + + + + + + + Allows control for an application pool on a local or remote machine with IIS installed. The default is + to control the application pool on the local machine. If connecting to a remote machine, you can + specify the and for the task + to run under. + + + + + + + Gets or sets the application pool action. + + + + + Gets or sets the name of the app pool. + + + + + [Optional] Gets or sets host header. Used when you have more than one website in IIS that have the same port but different host headers. + + + + + [Optional] Gets or sets the password for the account the task will run under. This property + is needed if you specified a for a remote machine. + + + + + [Optional] Gets or sets the name of the server. The default value is 'localhost'. + + + + + [Optional] Gets or sets the server port. + + + + + [Optional] Gets or sets the username for the account the task will run under. This property + is needed if you specified a for a remote machine. + + + + + + + + + + + + + Start the applicaiton pool + + + + + Stop the applicaiton pool + + + + + Restart the applicaiton pool + + + + + Recycle the applicaiton pool + + + + + + + + + Creates a new application pool on a local or remote machine with IIS installed. The default is + to create the new application pool on the local machine. If connecting to a remote machine, you can + specify the and for the task + to run under. + + + + + + + Gets or sets the name of the application pool. + + + + + [Optional] The AppPoolAutoStart property indicates to the World Wide Web Publishing Service (WWW service) + to automatically start an application pool when the application pool is created or when IIS + is started, if the value of this property is set to true. + + + + + [Optional] The AppPoolIdentityType property allows application pools to run as a specific user account: + + 0 - The application pool runs as NT AUTHORITY\SYSTEM. + 1 - The application pool runs as NT AUTHORITY\LOCAL SERVICE. + 2 - The application pool runs as NT AUTHORITY\NETWORK SERVICE. + 3 - The application pool runs as a specific user account, defined by the property. + + + + + [Optional] The AppPoolQueueLength property indicates to the Universal Listener how many requests + to queue up for an application pool before rejecting future requests. When the limit + for this property is exceeded, IIS rejects the additional requests with a 503 error. + + + + + [Optional] The AutoShutdownAppPoolExe property specifies an executable to run when the World Wide Web + Publishing Service (WWW service) shuts down an application pool for rapid fail protection. You + can use the property to send parameters to the executable. + + + + + [Optional] The AutoShutdownAppPoolParams property specifies any command-line parameters for the executable that + is specified in the AutoShutdownAppPoolExe property. You can use these two properties in the following + way to send e-mail, for example, when the World Wide Web Publishing Service (WWW service) shuts down + an application pool for rapid fail protection: + + AutoShutdownAppPoolExe = "C:\LogAndSendMail.bat" + AutoShutdownAppPoolParams = "-AppPoolName %1%" + + where %1% represents the application pool name. + + + + + [Optional] The CPUAction property configures the action(s) that IIS takes when Microsoft Windows NT ® job objects + run. Only one Windows NT job object exists per application pool, therefore the CPUAction property + is configured on a per application pool basis. + + Possible values: + 0 - No action is taken except that a warning is written to the event log when the CPU limit is exceeded. + 1 - Application pool worker processes that exceed their CPU limit will be forced to shut down. + + + + + [Optional] The CPULimit property configures the maximum percentage of CPU resources that worker processes + in an application pool are allowed to consume over a period of time, as indicated by the + property. Set this property by specifying a percentage of CPU + usage, multiplied by 1000. For example, if you want the CPU usage limit to be 50%, set CPULimit to 50,000. + + + + + [Optional] The CPUResetInterval property specifies the reset period (in minutes) for CPU monitoring and + throttling limits on the application pool. When the number of minutes elapsed since the last + process accounting reset equals the number specified by this property, IIS will reset the CPU + timers for both the logging and limit intervals. Setting the value of this property to 0 + disables CPU monitoring. + + + + + [Optional] The DisallowOverlappingRotation property specifies whether or not the World Wide Web Publishing + Service (WWW Service) should start up another worker process to replace the existing worker + process while it is shutting down. + + + + + [Optional] The DisallowRotationOnConfigChange property specifies whether or not the World Wide Web Publishing + Service (WWW Service) should rotate worker processes in an application pool when the configuration + has changed. This means that the worker processes will not pick up application pool changes to + values passed to the worker process, such as and . + + + + + [Optional] Gets or sets host header. Used when you have more than one website in IIS that have the same port but different host headers. + + + + + [Optional] The IdleTimeout property specifies how long (in minutes) a worker process should run idle if no new + requests are received and the worker process is not processing requests. After the allotted time + passes, the worker process should request to be shut down by the World Wide Web Publishing Service (WWW Service). + + + + + [Optional] The LoadBalancerCapabilities property specifies behavior when a service is unavailable. A setting of 1 + terminates the connection. A setting of 2 sends error code 503. + + + + + [Optional] The LogEventOnRecycle property specifies that IIS should log an event when an application pool is + recycled. Application pools recycle for a variety of reasons. In order for IIS to log the event, the + LogEventOnRecycle property must have a bit set corresponding to the reason for the recycle. + + + + + [Optional] The LogonMethod property contains an integer that specifies the logon method for cleartext + logons. Valid settings are: + + 0 for interactive logon. + 1 for batch logon. + 2 for network logon. + 3 for cleartext logon. + + + + + [Optional] The MaxProcesses property determines the maximum number of worker processes an application pool + allows to service requests for an application pool. This property cannot be set to 0 because there + are no unmanaged pools. + + + + + [Optional] The OrphanActionExe property specifies an executable to run when the World Wide Web Publishing + Service (WWW service) orphans a worker process. You can use the property + to send parameters to the executable. + + + + + [Optional] The OrphanActionParams property specifies command-line parameters for the executable + specified by the property. + + + + + [Optional] The OrphanWorkerProcess property, when set to true, notifies the World Wide Web Publishing + Service (WWW Service) not to terminate a worker process that fails to respond to pings, but + to instead orphan the worker process in the application pool if the worker process suffers + fatal errors. + + + + + [Optional] Gets or sets the password for the account the task will run under. This property + is needed if you specified a for a remote machine. + + + + + [Optional] The PeriodicRestartMemory property specifies the amount of virtual memory (in KB) that a + worker process can use before the worker process recycles. The maximum value supported + for this property is 4,294,967 KB. + + + + + [Optional] The PeriodicRestartPrivateMemory property specifies the amount of private memory (in KB) that a + worker process can use before the worker process recycles. The maximum value supported + for this property is 4,294,967 KB. + + + + + [Optional] The PeriodicRestartRequests property indicates the number of requests the OOP application + should process, after which it is recycled. + + + + + [Optional] The PeriodicRestartSchedule property specifies the time (in 24 hour format) that the application + will be rotated. Each time is in local time and is specified in the following format: + + PeriodicRestartSchedule="hh:mm,hh:mm,hh:mm" + + + + + [Optional] The PeriodicRestartTime property specifies the period of time, in minutes, after which IIS + rotates an isolated OOP application. Setting the value of this property to 0 disables the + property. The maximum supported value for this property is 71,582. + + + + + [Optional] The PingingEnabled property specifies whether the World Wide Web Publishing Service + (WWW Service) should periodically monitor the health of a worker process. Setting the + value of this property to true indicates to the WWW service to monitor the worker + processes to ensure that the they are running and healthy. + + + + + [Optional] The PingInterval property specifies the period of time (in seconds) between health-monitoring + pings that the World Wide Web Publishing Service (WWW Service) sends to a worker process. + + + + + [Optional] The PingResponseTime property specifies the amount of time (in seconds) that a worker process + is given to respond to a health monitoring ping. After the time limit is exceeded, the World + Wide Web Publishing Service (WWW Service) terminates the worker process. + + + + + [Optional] Setting the RapidFailProtection property to true instructs the World Wide Web Publishing + Service (WWW service) to put all applications in an application pool out of service if the + number of worker process crashes has reached the maximum specified by the + property, within the number of minutes specified + by the property. + + + + + [Optional] The RapidFailProtectionInterval property specifies the number of minutes before the failure + count for a process is reset. See . + + + + + [Optional] The RapidFailProtectionMaxCrashes property specifies the maximum number of failures + allowed within the number of minutes specified by the + property. See . + + + + + [Optional] Gets or sets the name of the server. The default value is 'localhost'. + + + + + [Optional] Gets or sets the server port. + + + + + [Optional] The ShutdownTimeLimit property specifies the amount of time (in seconds) after a recycle + threshold has been reached that IIS waits for all old requests to finish running in a worker + process before terminating the worker process. + + + + + [Optional] Setting the SMPAffinitized property to true indicates that a particular worker process + assigned to an application pool should be assigned to a given CPU. This property is used + in conjunction with the property to configure a + particular processor a worker process will be assigned to. + + + + + [Optional] The SMPProcessorAffinityMask property configures the hexadecimal processor mask. The hexadecimal + processor mask indicates to which CPU the worker processes in an application pool should be + bound. Before this property takes affect, the property must be set + to true for the application pool. These properties cannot be set through IIS Manager. + + Do not set this property to zero. Doing so causes no SMP affinity to be configured, creating an + error condition. The default DWORD value is 4294967295 (or -1), which is represented in hexadecimal + as 0xFFFFFFFF. A value of 0xFFFFFFFF in SMPProcessorAffinityMask indicates that all processors are enabled. + + + + + [Optional] The value of the StartupTimeLimit property specifies the amount of time (in seconds) that the World Wide + Web Publishing Service (WWW Service) should wait for a worker process to finish starting up and + reporting to the WWW Service. + + + + + [Optional] Gets or sets the username for the account the task will run under. This property + is needed if you specified a for a remote machine. + + + + + [Optional] The WAMUserName property specifies the account user name that IIS uses by default as the COM+ + application identity for newly created IIS out-of-process applications. The values of this + property and its companion property, , are set when IIS is installed, and + match the user name and password values in the Microsoft Windows user account, which is established + at the same time. Changing the value of this property is not recommended. If you do, change + it to a valid Windows user account, and change WAMUserPass to the corresponding password + for the new account. + + Important: + Changes to WAMUserName and WAMUserPass may disrupt the operation of existing IIS out-of-process + applications. You can synchronize application identities using Component Services to edit the + user name and password values, found on the Identity tab of the property sheet for each package. + + In-process applications are not affected by these property values. + + + + + [Optional] The WAMUserPass property specifies the password for the account that IIS uses by default as the COM+ + application identity for newly created IIS out-of-process applications. The values of this property + and its companion property, , are set when IIS is installed, and match the + password and user name values in the Microsoft Windows user account (IWAM_ MachineName, where MachineName + is the name of the machine on which IIS is installed) established at the same time. + + Important: + Changing the value of this property is not recommended. If you do, you must change the Windows account + password to the identical value. You must also synchronize existing IIS out-of-process application + identities, using Component Services to edit the user name and password values, which are found on the + Identity tab of the property sheet for each package. + + In-process applications are not affected by these property values. + + + + + + + + + Deletes an existing application pool on a local or remote machine with IIS installed. The default is + to delete an existing application pool on the local machine. If connecting to a remote machine, you can + specify the and for the task + to run under. + + + + + + + Gets or sets the name of the application pool. + + + + + [Optional] Gets or sets host header. Used when you have more than one website in IIS that have the same port but different host headers. + + + + + [Optional] Gets or sets the password for the account the task will run under. This property + is needed if you specified a for a remote machine. + + + + + [Optional] Gets or sets the name of the server. The default value is 'localhost'. + + + + + [Optional] Gets or sets the server port. + + + + + [Optional] Gets or sets the username for the account the task will run under. This property + is needed if you specified a for a remote machine. + + + + + + + + + Creates a new web directory on a local or remote machine with IIS installed. The default is + to create the new web directory on the local machine. The physical path is required to already exist + on the target machine. If connecting to a remote machine, you can specify the + and for the task to run under. + + + + + + + [Optional] Gets or sets a value that indicates if the file + or the contents of the folder may be executed, regardless of file type. + + + + + [Optional] A value of true indicates that remote requests to execute applications + are denied; only requests from the same computer as the IIS server succeed + if the AccessExecute property is set to true. You cannot set + AccessNoRemoteExecute to false to enable remote requests, and set + to false to disable local requests. + + + + + [Optional] A value of true indicates that remote requests to view files are denied; only + requests from the same computer as the IIS server succeed if the + property is set to true. You cannot set to false to enable + remote requests, and set to false to disable local requests. + + + + + [Optional] A value of true indicates that remote requests to view dynamic content are denied; only + requests from the same computer as the IIS server succeed if the property + is set to true. You cannot set AccessNoRemoteScript to false to enable remote requests, + and set to false to disable local requests. + + + + + [Optional] A value of true indicates that remote requests to create or change files are denied; only + requests from the same computer as the IIS server succeed if the property + is set to true. You cannot set AccessNoRemoteWrite to false to enable remote requests, + and set to false to disable local requests. + + + + + [Optional] A value of true indicates that the file or the contents of the folder may be read + through Microsoft Internet Explorer. + + + + + [Optional] A value of true indicates that the file or the contents of the folder may be executed + if they are script files or static content. A value of false only allows static files, + such as HTML files, to be served. + + + + + [Optional] A value of true indicates that users are allowed to access source code if either + Read or Write permissions are set. Source code includes scripts in Microsoft ® Active + Server Pages (ASP) applications. + + + + + [Optional] A value of true indicates that file access requires SSL file permission processing, with + or without a client certificate. + + + + + [Optional] A value of true indicates that file access requires SSL file permission processing + with a minimum key size of 128 bits, with or without a client certificate. + + + + + [Optional] A value of true indicates that SSL file permission processing maps a client certificate + to a Microsoft Windows ® operating system user-account. The property + must also be set to true for the mapping to occur. + + + + + [Optional] A value of true indicates that SSL file access processing requests a certificate from + the client. A value of false indicates that access continues if the client does not have + a certificate. Some versions of Internet Explorer will close the connection if the server + requests a certificate and a certificate is not available (even if + is also set to true). + + + + + [Optional] A value of true indicates that SSL file access processing requests a certificate from the + client. If the client provides no certificate, the connection is closed. + must also be set to true when using AccessSSLRequireCert. + + + + + [Optional] A value of true indicates that users are allowed to upload files and their associated + properties to the enabled directory on your server or to change content in a Write-enabled + file. Write can be implemented only with a browser that supports the PUT feature of + the HTTP 1.1 protocol standard. + + + + + [Optional] The AnonymousPasswordSync property indicates whether IIS should handle the user password + for anonymous users attempting to access resources. + + + + + [Optional] The AppAllowClientDebug property specifies whether ASP client-side debugging + is enabled. This property is independent of , which + applies to server-side debugging. + + + + + [Optional] The AppAllowDebugging property specifies whether ASP debugging is enabled on + the server. This property is independent of the property, + which applies to client-side debugging. + + + + + [Optional] The AspAllowSessionState property enables session state persistence for the ASP application. + + + + + [Optional] The AspBufferingOn property specifies whether output from an ASP application will be buffered. + + + + + [Optional] The AspEnableApplicationRestart determines whether an ASP application can be + automatically restarted. When changes are made to Global.asa or metabase properties + that affect an application, the application will not restart unless the + AspEnableApplicationRestart property is set to true. + + + + + [Optional] The AspEnableAspHtmlFallback property controls the behavior of ASP when a + new request is to be rejected due to a full request queue. + + + + + [Optional] The AspEnableChunkedEncoding property specifies whether HTTP 1.1 chunked + transfer encoding is enabled for the World Wide Web Publishing Service (WWW service). + + + + + [Optional] The AspEnableParentPaths property specifies whether an ASP page allows paths + relative to the current directory (using the ..\ notation) or above the current directory. + + + + + [Optional] The AspEnableTypelibCache property specifies whether type libraries are cached + on the server. The World Wide Web Publishing Service (WWW service) setting for + this property is applicable to all in-process and pooled out-of-process application + nodes, at all levels. Metabase settings at the Web server level or lower are ignored + for in-process and pooled out-of-process applications. However, settings at the Web + server level or lower are used if that node is an isolated out-of-process application. + + + + + [Optional] The AspErrorsToNTLog property specifies which ASP errors are written to the + Windows event log. ASP errors are written to the client browser and to the IIS + log files by default. + + + + + [Optional] The AspExceptionCatchEnable property specifies whether ASP pages trap exceptions + thrown by components. + + + + + [Optional] The AspLogErrorRequests property controls whether the Web server writes ASP errors + to the application section of the Windows event log. ASP errors are written to the + client browser and to the IIS log files by default. + + + + + [Optional] The AspScriptErrorMessage property specifies the error message to send to the browser + if specific debugging errors are not sent to the client (if + is set to false). + + + + + [Optional] The AspScriptErrorSentToBrowser property specifies whether the Web server writes + debugging specifics (file name, error, line number, description) to the client + browser, in addition to logging them to the Windows Event Log. The + property provides the error message to be sent if this property is set to false. + + + + + [Optional] The AspTrackThreadingModel property specifies whether IIS checks the threading model + of any components (COM objects) that your application creates. The preferred setting + of this metabase property is false. + + + + + [Optional] Specifies Anonymous authentication as one of the possible Windows authentication + schemes returned to clients as being available. + + + + + [Optional] Specifies Basic authentication as one of the possible Windows authentication + schemes returned to clients as being available. + + + + + [Optional] Specifies Integrated Windows authentication (also known as Challenge/Response or + NTLM authentication) as one of the possible Windows authentication schemes + returned to clients as being available. + + + + + [Optional] Setting this flag to true specifies that authentication persists only for a single + request on a connection. IIS resets the authentication at the end of each request, and + forces re-authentication on the next request of the session. + + + + + [Optional] Setting this flag to true specifies that authentication is valid for a single request if + by proxy. IIS will reset the authentication at the end of the request and force + re-authentication on the next request if the current authenticated request is by + proxy of any type. + + + + + [Optional] Setting this flag to true specifies authentication will persist only across single + requests on a connection if the connection is by proxy. IIS will reset the authentication + at the end of the request if the current authenticated request is by proxy and it is + not the special case where IIS is running MSPROXY. + + + + + [Optional] The CacheControlNoCache property specifies the HTTP 1.1 directive to prevent caching of content. + + + + + [Optional] The CacheISAPI property indicates whether ISAPI extensions are cached in memory after first use. + + + + + [Optional] The ContentIndexed property specifies whether the installed content indexer should + index content under this directory tree. + + + + + [Optional] This property specifies whether process accounting and throttling should be performed + for ISAPI extensions and ASP applications. To perform process accounting on CGI + applications, use the property . + + + + + [Optional] This property indicates whether IIS should perform process accounting for CGI + applications. To effectively throttle CGI applications, use the CgiTimeout + property. To use process accounting for ISAPI and ASP applications, use . + + + + + [Optional] The CreateCGIWithNewConsole property indicates whether a CGI application runs in its own console. + + + + + [Optional] The CreateProcessAsUser property specifies whether a CGI process is created in the system context or in the context of the requesting user. + + + + + [Optional] The DefaultDoc contains one or more file names of default documents that will be returned + to the client if no file name is included in the client's request. The default document + will be returned if the flag of the DirBrowseFlags property + is set to true for the directory. This property can contain a list of default document + file names separated by a comma and a space, for example Default.htm, Default.asp. + + + + + [Optional] When set to true, date information is displayed when browsing directories. + + + + + [Optional] When set to true, file name extensions are displayed when browsing directories. + + + + + [Optional] When set to true, date information is displayed in extended format when displaying directories. + + + + + [Optional] When set to true, file size information is displayed when browsing directories. + + + + + [Optional] When set to true, file time information is displayed when displaying directories. + + + + + [Optional] The DontLog property specifies whether client requests are written to the IIS log files. + + + + + [Optional] When set to true, the default document (specified by the property) for + a directory is loaded when the directory is browsed. + + + + + [Optional] When set to true, directory browsing is enabled. + + + + + [Optional] The EnableDocFooter property enables or disables custom footers specified by + the DefaultDocFooter property. + + + + + [Optional] The EnableReverseDns property enables or disables reverse Domain Name Server (DNS) lookups + for the World Wide Web Publishing Service (WWW service). Reverse lookups involve looking + up the domain name when the IP address is known. Reverse DNS lookups can use significant + resources and time. + + + + + [Optional] Gets or sets host header. Used when you have more than one website in IIS that have the same port but different host headers. + + + + + [Optional] Gets or sets the password for the account the task will run under. This property + is needed if you specified a for a remote machine. + + + + + [Optional] Gets or sets the name of the server. The default value is 'localhost'. + + + + + [Optional] Gets or sets the server port. + + + + + [Optional] The SSIExecDisable property specifies whether server-side include (SSI) #exec directives + are disabled under this path. + + + + + [Optional] The UNCAuthenticationPassthrough property enables user authentication passthrough + for Universal Naming Convention (UNC) virtual root access (for authentication schemes + that support delegation). + + + + + [Optional] Gets or sets the username for the account the task will run under. This property + is needed if you specified a for a remote machine. + + + + + Gets or sets the name of the virtual directory. + + + + + Gets or sets the virtual directory physical path. The physical directory must + exist before this task executes. + + + + + + + + + Deletes a web directory on a local or remote machine with IIS installed. The default is + to delete the web directory on the local machine. If connecting to a remote machine, you + can specify the and for the + task to run under. + + + + + + + [Optional] Gets or sets host header. Used when you have more than one website in IIS that have the same port but different host headers. + + + + + [Optional] Gets or sets the password for the account the task will run under. This property + is needed if you specified a for a remote machine. + + + + + [Optional] Gets or sets the name of the server. The default value is 'localhost'. + + + + + [Optional] Gets or sets the server port. + + + + + [Optional] Gets or sets the username for the account the task will run under. This property + is needed if you specified a for a remote machine. + + + + + Gets or sets the name of the virtual directory. + + + + + + + + + Sets an application mapping for a filename extension on an existing web directory. + + + + + + + [Optional] Set to true when you want the application to run in a directory without Execute permissions. + + + + + [Optional] The full path to the executable used to respond to requests for a Uri ending with + + + + + The filename extension that will be mapped to an executable. + + + + + [Optional] Gets or sets host header. Used when you have more than one website in IIS that have the same port but different host headers. + + + + + [Optional] Indicates whether should be mapped to the ASP.NET runtime. + + + + + [Optional] Gets or sets the password for the account the task will run under. This property + is needed if you specified a for a remote machine. + + + + + [Optional] Gets or sets the name of the server. The default value is 'localhost'. + + + + + [Optional] Gets or sets the server port. + + + + + [Optional] Gets or sets the username for the account the task will run under. This property + is needed if you specified a for a remote machine. + + + + + [Optional] A comma-separated list of the HTTP verbs to include in the application mapping. + + + + + [Optional] Set to true to instruct the Web server to verify the existence of the requested script file and to ensure that the requesting user has access permission for that script file. + + + + + Gets or sets the name of the virtual directory. + + + + + + + + + Reads and modifies a web directory configuration setting. + + + + + + + [Optional] Gets or sets host header. Used when you have more than one website in IIS that have the same port but different host headers. + + + + + [Optional] Gets or sets the password for the account the task will run under. This property + is needed if you specified a for a remote machine. + + + + + [Optional] Gets or sets the name of the server. The default value is 'localhost'. + + + + + [Optional] Gets or sets the server port. + + + + + Gets or sets the configuration setting to read or modify. + + + + + [Optional] [Output] Gets or sets the value of on the web directory + + + + + [Optional] Gets or sets the username for the account the task will run under. This property + is needed if you specified a for a remote machine. + + + + + Gets or sets the name of the virtual directory. + + + + + + + + + A wrapper for the ILMerge tool. + + + + + + + [Optional] Gets or sets the names of public types + to be renamed when they are duplicates. + + + + + [Optional] Gets or sets a value indicating whether to treat an assembly + with a zero PeKind flag + (this is the value of the field listed as .corflags in the Manifest) + as if it was ILonly. + + + + + [Optional] Gets or sets the attribute assembly + from whre to get all of the assembly-level attributes + such as Culture, Version, etc. + It will also be used to get the Win32 Resources from. + + + + + [Optional] Gets or sets a value indicating whether + to augment the list of input assemblies + to its "transitive closure". + + + + + [Optional] Gets or sets a value indicating whether + to copy the assembly level attributes + of each input assembly over into the target assembly. + + + + + [Optional] Gets or sets a value indicating whether + to preserve any .pdb files + that are found for the input assemblies + into a .pdb file for the target assembly. + + + + + [Optional] Gets or sets a value indicating whether + the target assembly will be delay signed. + + + + + [Optional] Gets or sets the file + that will be used to identify types + that are not to have their visibility modified. + + + + + + Gets or sets the input assemblies to merge. + + + + + [Optional] Gets or sets a value indicating whether whether types in assemblies other than the primary assembly have their visibility modified. + + + + + [Optional] Gets or sets the .snk file + to sign the target assembly. + + + + + [Optional] Gets or sets a log file + to write log messages to. + + + + + Gets or sets the target assembly. + + + + + [Optional] Gets or sets a value indicating whether + external assembly references in the manifest + of the target assembly will use public keys (false) + or public key tokens (true). + + + + + [Optional] Gets or sets the indicator + whether the target assembly is created as a library (Dll), + a console application (Exe) or as a Windows application (WinExe). + + + + + [Optional] Gets or sets the directory in which mscorlib.dll is to be found. + + + + + [Optional] Gets or sets the .NET framework version for the target assembly. + + + + + + + [Optional] Gets or sets the version number of the target assembly. + + + + + [Optional] Gets or sets a value indicating whether + to merge XML documentation files + into one for the target assembly. + + + + + + + + + MSBuild task to create installer with InnoSetup + + + + + + + + [Optional] Specify output filename + + + + + [Optional] Specify output path + + + + + [Optional] Quiet compile + + + + + Filename of Inno Setup script (.iss) + + + + + + + + + + + Installs assemblies. + + + + + + + [Optional] The assemblies to process, identified by their filename. + + + + + [Optional] The assemblies to process, identified by their assembly name. + + + + + + [Optional] The file to write installation progress to. + + + + + [Optional] If an exception occurs at any point during installation, the call + stack will be printed to the log. + + + + + + + + + + + Uninstalls assemblies. + + + + + + + [Optional] The assemblies to process, identified by their filename. + + + + + [Optional] The assemblies to process, identified by their assembly name. + + + + + + [Optional] The file to write installation progress to. + + + + + [Optional] If an exception occurs at any point during installation, the call + stack will be printed to the log. + + + + + + + + + + + Compresses JavaScript source by removing comments and unnecessary + whitespace. It typically reduces the size of the script by half, + resulting in faster downloads and code that is harder to read. + + + + + + + [Optional] [Output] Gets the files that were successfully source-compressed. + + + + + [Optional] Encoding to use to read and write files. + + + + + Gets or sets the files to source-compress. + + + + + + + + + Sends an email message + + + + + + + [Optional] List of files to attach to message + + + + + [Optional] List of addresss that contains the blind carbon copy (BCC) recipients for this e-mail message + + + + + [Optional] The email message body + + + + + [Optional] List of addresss that contains the carbon copy (CC) recipients for this e-mail message + + + + + [Optional] Specify whether the Mail task uses SSL to encrypt the connection. + + + + + The from address for this e-mail message + + + + + [Optional] A value indicating whether the mail message body is in Html + + + + + [Optional] Gets or sets the password. + + + + + [Optional] The priority of this e-mail message + + + + + The name or IP address of the host used for SMTP transactions + + + + + The subject line for this e-mail message + + + + + List of addresss that contains the recipients of this e-mail message + + + + + [Optional] Gets or sets the username. + + + + + + + + + Add numbers + + + + + + + Gets or sets the numbers to work with. + + + + + [Optional] Gets or sets the numeric format. + + + + + [Optional] [Output] Gets or sets the result. + + + + + + + + + Divide numbers + + + + + + + Gets or sets the numbers to work with. + + + + + [Optional] Gets or sets the numeric format. + + + + + [Optional] [Output] Gets or sets the result. + + + + + [Optional] When , uses integer division to truncate the result. Default is + + + + + + + + + Performs the modulo operation on numbers. + + + + + + + Gets or sets the numbers to work with. + + + + + [Optional] Gets or sets the numeric format. + + + + + [Optional] [Output] Gets or sets the result. + + + + + + + + + Multiple numbers + + + + + + + Gets or sets the numbers to work with. + + + + + [Optional] Gets or sets the numeric format. + + + + + [Optional] [Output] Gets or sets the result. + + + + + + + + + Subtract numbers + + + + + + + Gets or sets the numbers to work with. + + + + + [Optional] Gets or sets the numeric format. + + + + + [Optional] [Output] Gets or sets the result. + + + + + + + + + Merge files into the destination file. + + + + + + + Gets or sets the destination file where the + are merged to. + + + + + [Optional] Gets or sets the mode to use when merging. + + + + + Gets or sets the source files to merge. + + + + + + + + + + + + + + Merges files as binary data. + + + + + + + Merges files as text. + + + + + + + Merges files as text line by line. + + + + + + + + + + Moves files on the filesystem to a new location. + + + + + + + [Optional] [Output] Gets or sets the list of files to moved the source files to. + + + + + [Optional] Gets or sets the directory to which you want to move the files. + + + + + [Optional] [Output] Gets the items that were successfully moved. + + + + + Gets or sets the source files to move. + + + + + + + + + Runs the NDoc application. + + + + + + + Gets or sets the documenter. + + + + + + Gets or sets the project file path. + + + + + + + [Optional] Gets or sets a value indicating whether the output is verbose. + + + + + [Optional] Gets or sets the working directory. + + + + + + + + + Makes an HTTP request, optionally validating the result and writing it to a file. + + + + + + + [Optional] Optional: if set then the task fails if the response text doesn't contain the text specified. + + + + + [Optional] Default is true. When true, if the web server returns a status code less than 200 or greater than 299 then the task fails. + + + + + The URL to make an HTTP request against. + + + + + [Optional] Optional; the name of the file to write the response to. + + + + + + + + + Run NUnit 2.4 on a group of assemblies. + + + + + + + Gets or sets the assemblies. + + + + + [Optional] Determines whether assemblies are copied to a shadow folder during testing. + + + + + [Optional] The file to receive test error details. + + + + + [Optional] Gets or sets the categories to exclude. + + + + + + [Optional] Gets or sets the fixture. + + + + + [Optional] Determines whether the tests are run in a 32bit process on a 64bit OS. + + + + + [Optional] Gets or sets the categories to include. + + + + + [Optional] Gets or sets the output XML file. + + + + + [Optional] The project configuration to run. + + + + + [Optional] Allows tests to be run in a new thread, allowing you to take advantage of ApartmentState and ThreadPriority settings in the config file. + + + + + + + [Optional] Gets or sets the working directory. + + + + + [Optional] Gets or sets the XSLT transform file. + + + + + + + + + Defines a database host within the Oracle TNSNAMES.ORA file. + + + + + + + [Optional] When true, the task will update an existing entry with . + If false, the task will fail if already exists. + + + + + The name of the host entry to add. + + + + + [Optional] The definition of the host entry to add. + + + + + [Optional] [Output] The path to the TNSNAMES.ORA that was used by task. + + + + + [Optional] [Output] The contents of the TNSNAMES.ORA file after the task executes. + + + + + [Optional] [Output] The contents of the TNSNAMES.ORA file before any changes are made. + + + + + [Optional] The path to a specific TNSNAMES.ORA file to update. + + + + + + + + + Displays a message on the console and waits for user input. + + + + + + + [Optional] The message to display in the console. + + + + + [Optional] [Output] The text entered at the console. + + + + + + + + + Compiles regular expressions and saves them to disk in an assembly. + + + + + + + [Optional] Gets or sets the assembly company. + + + + + [Optional] Gets or sets the assembly copyright. + + + + + [Optional] Gets or sets the assembly culture. + + + + + [Optional] Gets or sets the assembly description. + + + + + [Optional] Gets or sets the assembly file version. + + + + + [Optional] Gets or sets the assembly informational version. + + + + + [Optional] Gets or sets the assembly key file. + + + + + Gets or sets the name of the assembly to be created by the regex compiler. + + + + + [Optional] Gets or sets the assembly product. + + + + + [Optional] Gets or sets the assembly title. + + + + + [Optional] Gets or sets the assembly version. + + + + + [Optional] Gets or sets a value indicating whether the default value is public for regular expression instances. + + + + + [Optional] Gets or sets the default namespace for regular expression instances. + + + + + [Optional] Gets or sets the default regular expression options. + + + + + Gets or sets the directory where the assembly will be saved. + + + + + [Optional] [Output] Gets or sets the output file. + + + + + Gets or sets the regular expressions. + + + + + + + + + Task to filter an Input list with a Regex expression. + Output list contains items from Input list that matched given expression + + + + + + + Regex expression + + + + + Input, list of items to perform the regex on + + + + + [Optional] Regex options as strings corresponding to the RegexOptions enum: + Compiled + CultureInvariant + ECMAScript + ExplicitCapture + IgnoreCase + IgnorePatternWhitespace + Multiline + None + RightToLeft + Singleline + + + + + [Optional] [Output] Results of the Regex transformation. + + + + + + + + + Task to replace portions of strings within the Input list + Output list contains all the elements of the Input list after + performing the Regex Replace. + + + + + + + [Optional] Number of matches to allow on each input item. + -1 indicates to perform matches on all matches within input item + + + + + Regex expression + + + + + Input, list of items to perform the regex on + + + + + [Optional] Regex options as strings corresponding to the RegexOptions enum: + Compiled + CultureInvariant + ECMAScript + ExplicitCapture + IgnoreCase + IgnorePatternWhitespace + Multiline + None + RightToLeft + Singleline + + + + + [Optional] [Output] Results of the Regex transformation. + + + + + [Optional] String replacing matching expression strings in input list. + If left empty matches in the input list are removed (replaced with empty string) + + + + + [Optional] Position within the input item to start matching + + + + + + + + + Reads a value from the Registry + + + + + + + [Optional] Gets or sets the default value. + + + + + Gets or sets the full registry path of the key, beginning with a valid registry root, such as "HKEY_CURRENT_USER". + + + + + [Optional] [Output] Gets the stored value. + + + + + [Optional] Gets or sets the name of the name/value pair. + + + + + + + + + Writes a value to the Registry + + + + + + + Gets or sets the full registry path of the key, beginning with a valid registry root, such as "HKEY_CURRENT_USER". + + + + + Gets or sets the value to be stored. + + + + + [Optional] Gets or sets the name of the name/value pair. + + + + + + + + + Task wrapping the Window Resource Kit Robocopy.exe command. + + + + + + + [Optional] /E Copies all subdirectories (including empty ones). + + + + + [Optional] /LOG+:file Redirects output to the specified file, appending it to the file if it already exists. + + + + + [Optional] /B Copies files in Backup mode (Backup copies are not restartable, but can copy some files that restartable mode cannot). + + + + + [Optional] /COPYALL Copies Everything. Equivalent to /COPY:DATSOU. + + + + + [Optional] /COPY:copyflags Copies the file information specified by copyflags. + + + + + [Optional] /CREATE Creates a directory tree structure containing zero-length files only (that is, no file data is copied). + + + + + Destination directory. + + + + + [Optional] /XF file [file] Excludes files with the specified names, paths, or wildcard characters. + + + + + [Optional] /XD dir [dir] Excludes directories with the specified names, paths, or wildcard characters. + + + + + [Optional] /XJ Excludes Junction points. + + + + + [Optional] /XA:{R|A|S|H|C|N|E|T|O} Excludes files with the specified attributes. + + + + + + [Optional] /FAT Creates destination files using only 8.3 FAT file names. + + + + + [Optional] /FFT Assume FAT File Times (2-second granularity). + + + + + [Optional] /A Copies only files with the archive attribute set. + + + + + [Optional] /M Copies only files with the archive attribute set and then resets (turns off) the archive attribute in the source files. + + + + + [Optional] /IA:{R|A|S|H|C|N|E|T|O} Includes files with the specified attributes. + + + + + [Optional] /LOG:file Redirects output to the specified file, overwriting the file if it already exists. + + + + + [Optional] /MIR Mirrors a directory tree (equivalent to running both /E and /PURGE). + + + + + [Optional] /MOVE Moves files and directories (that is, deletes source files and directories after copying). + + + + + [Optional] /MOV Moves files (that is, deletes source files after copying). + + + + + [Optional] /NOCOPY Copies Nothing. Can be useful with /PURGE. + + + + + [Optional] /NFL Turns off logging of file names. File names are still shown, however, if file copy errors occur. + + + + + [Optional] /NDL Turns off logging of directory names. Full file pathnames (as opposed to simple file names) will be shown if /NDL is used. + + + + + [Optional] /NJH Turns of logging of the job header. + + + + + [Optional] /NJS Turns off logging of the job summary. + + + + + [Optional] /NP Turns off copy progress indicator (% copied). + + + + + [Optional] Manually entered options. + + + + + [Optional] /PURGE Deletes destination files and directories that no longer exist in the source. + + + + + [Optional] /Z Copies files in restartable mode (that is, restarts the copy process from the point of failure). + + + + + [Optional] /SEC Copies NTFS security information. (Source and destination volumes must both be NTFS). Equivalent to /COPY:DATS. + + + + + [Optional] Names of files to act upon. + + + + + Source directory + + + + + [Optional] /S Copies subdirectories (excluding empty ones). + + + + + + + [Optional] /V Produces verbose output (including skipped files). + + + + + + + + + BuildAssembler task for Sandcastle. + + + + + + + Gets or sets the configuration file. + + + + + + Gets or sets the manifest file. + + + + + [Optional] Gets or sets a value indicating whether no info messages will be output. + + + + + [Optional] Gets or sets a value indicating whether no warning messages will be output. + + + + + [Optional] Gets or sets the sandcastle install root directory. + + + + + + + + + + + ChmBuilder task for Sandcastle. + + + + + + + + [Optional] Gets or sets the HTML directory. + + + + + [Optional] Gets or sets the language id. + + + + + [Optional] Gets or sets a value indicating whether this is metadata. + + + + + [Optional] Gets or sets a value indicating whether no info messages will be output. + + + + + [Optional] Gets or sets a value indicating whether no warning messages will be output. + + + + + [Optional] Gets or sets the output file. + + + + + [Optional] Gets or sets the name of the project. + + + + + [Optional] Gets or sets the sandcastle install root directory. + + + + + + [Optional] Gets or sets the toc file. + + + + + + + + + + DBCSFix task for Sandcastle. + + + + + + + [Optional] Gets or sets the CHM directory. + + + + + + [Optional] Gets or sets the language id. + + + + + [Optional] Gets or sets a value indicating whether no info messages will be output. + + + + + [Optional] Gets or sets a value indicating whether no warning messages will be output. + + + + + [Optional] Gets or sets the sandcastle install root directory. + + + + + + + + + + + MRefBuilder task for Sandcastle. + + + + + + + Gets or sets the assemblies. + + + + + [Optional] Gets or sets the config file. + + + + + + [Optional] Gets or sets a value indicating whether to include internal members. + + + + + [Optional] Gets or sets a value indicating whether no info messages will be output. + + + + + [Optional] Gets or sets a value indicating whether no warning messages will be output. + + + + + Gets or sets the output file. + + + + + [Optional] Gets or sets the references. + + + + + [Optional] Gets or sets the sandcastle install root directory. + + + + + + + + + + + The Sandcastle task. + + + + + + + Gets or sets the assemblies. + + + + + [Optional] Gets or sets the name of the CHM. + + + + + [Optional] Gets or sets a value indicating whether working directory is cleaned. + + + + + Gets or sets the comments. + + + + + [Optional] Gets or sets a value indicating a Html Help 2x project will be created. + + + + + [Optional] Gets or sets the language id. + + + + + [Optional] Gets or sets a value indicating whether no info messages will be output. + + + + + [Optional] Gets or sets a value indicating whether no warning messages will be output. + + + + + [Optional] Gets or sets the references. + + + + + [Optional] Gets or sets the build assembler config file. + + + + + [Optional] Gets or sets the sandcastle install root directory. + + + + + [Optional] Gets or sets the html help topic style. + + + + + [Optional] Gets or sets the working directory. + + + + + + + + + XslTransform task for Sandcastle. + + + + + + + [Optional] Gets or sets the arguments. + + + + + + [Optional] Gets or sets a value indicating whether no info messages will be output. + + + + + [Optional] Gets or sets a value indicating whether no warning messages will be output. + + + + + Gets or sets the output file. + + + + + [Optional] Gets or sets the sandcastle install root directory. + + + + + + + [Optional] Gets or sets the XML files. + + + + + [Optional] Gets or sets the XSLT files. + + + + + + + + + A Task that generates a XSD schema of the tasks in an assembly. + + + + + + + Gets or sets the list of path to analyse. + + + + + + [Optional] Gets or sets a value indicating if the task list (using UsingTask) + has to be genereted. + + + + + + [Optional] Gets or sets a value indicating wheter documentation should be ignored + even if available (Default is false). + + + + + [Optional] Gets or sets a value indicating if the + MsBuild schema inclusing should be ignored + + + + + [Optional] Gets or sets a list of included schemas + + + + + + [Optional] Gets or sets the output path for the generated files. + + + + + [Optional] [Output] Gets the list of path to the generated XSD schema. + + + + + [Optional] Gets or sets a value indicating how the assembly is specified in the + UsingTask element. + + + + + [Optional] [Output] Gets the path to the task list if it was generated. + + + + + + + + + + + + + + Assembly file name (Default): <UsingTask AssemblyFile="foo.dll" /> + + + + + + + Assembly location: <UsingTask AssemblyName="foo" /> + + + + + + + Assembly Name: <UsingTask AssemblyFile="bin\debug\foo.dll" /> + + + + + + + Assembly fully qualified name: <UsingTask AssemblyName="foo.dll,version ...." /> + + + + + + + + + + Executes code contained within the task. + + + + + + + [Optional] The code to compile and execute + + + + + [Optional] The namespaces to import. + + + + + The language of the script block (defaults to C#). + + + + + [Optional] The name of the main class containing the static ScriptMain + entry point. + + + + + [Optional] The required references + + + + + [Optional] [Output] The string returned from the custom ScriptMain method. + + + + + + + + + Task that can control a Windows service. + + + + + + + Gets or sets the to perform on the service. + + + + + [Optional] [Output] Gets a value indicating whether the service can be paused and resumed. + + + + + [Optional] [Output] Gets a value indicating whether the service should be notified when the system is shutting down. + + + + + [Optional] [Output] Gets a value indicating whether the service can be stopped after it has started. + + + + + [Optional] [Output] Gets a friendly name for the service. + + + + + [Optional] [Output] Gets a value indicating whether the service exists. + + + + + [Optional] Gets or sets the name of the machine. + + + + + Gets or sets the name of the service. + + + + + [Optional] [Output] Gets or sets the status. + + + + + [Optional] Gets or sets the timeout for the command. The default is + one minute. + + + + + + + + + + + + + + Starts a service. + + + + + + + Stops a service. + + + + + + + Restarts a service. + + + + + + + Pauses a running service. + + + + + + + Continues a paused service. + + + + + + + + + + Task that can determine the status of a specified service + on a target server. + + + + + + + [Optional] [Output] Gets a value indicating whether the service can be paused and resumed. + + + + + [Optional] [Output] Gets a value indicating whether the service should be notified when the system is shutting down. + + + + + [Optional] [Output] Gets a value indicating whether the service can be stopped after it has started. + + + + + [Optional] [Output] Gets a friendly name for the service. + + + + + [Optional] [Output] Gets a value indicating whether the service exists. + + + + + [Optional] Gets or sets the name of the machine. + + + + + Gets or sets the name of the service. + + + + + [Optional] [Output] Gets or sets the status. + + + + + + + + + A task for sleeping for a specified period of time. + + + + + + + [Optional] The number of hours to add to the time to sleep. + + + + + [Optional] The number of milliseconds to add to the time to sleep. + + + + + [Optional] The number of minutes to add to the time to sleep. + + + + + [Optional] The number of seconds to add to the time to sleep. + + + + + + + + + A task to play a sound from a .wav file path or URL. + + + + + + + [Optional] Gets or sets the time, in milliseconds, in which the .wav file must load. + + + + + [Optional] Sets the file path of the .wav file to load + as a relative path to . + + + + + [Optional] Gets or sets the file path or URL of the .wav file to load. + + + + + [Optional] Gets or sets a value indicating whether to play the sound synchronously. + + + + + [Optional] Sets the file path of the .wav file to load + as a relative path to . + + + + + + + + + Task that adds files to a Visual SourceSafe database. + + + + + + + [Optional] The comment to be applied to the newly added file. + + + + + The path to the folder that contains the srcsafe.ini file. + + + + + List of files that should be added to SourceSafe. + + + + + [Optional] The password to use to log in to SourceSafe. + + + + + The Visual SourceSafe project or file to perform the action + on (starts with "$/"). + + + + + The name of the user accessing the SourceSafe database. + + + + + [Optional] A version of the to reference. + + + + + + + + + Task that executes a checkin against a VSS Database. + + + + + + + [Optional] The checkin comment. + + + + + The path to the folder that contains the srcsafe.ini file. + + + + + The path to the local working directory. + + + + + [Optional] The password to use to log in to SourceSafe. + + + + + The Visual SourceSafe project or file to perform the action + on (starts with "$/"). + + + + + [Optional] Determines whether to perform the SourceSafe operation + recursively. The default is . + + + + + The name of the user accessing the SourceSafe database. + + + + + [Optional] A version of the to reference. + + + + + [Optional] Determines whether to leave the file(s) as writable once the + checkin is complete. The default is . + + + + + + + + + Task that executes a checkout of files or projects + against a Visual SourceSafe database. + + + + + + + The path to the folder that contains the srcsafe.ini file. + + + + + The path to the local working directory. + + + + + [Optional] The password to use to log in to SourceSafe. + + + + + The Visual SourceSafe project or file to perform the action + on (starts with "$/"). + + + + + [Optional] Determines whether to perform the SourceSafe operation + recursively. The default is . + + + + + The name of the user accessing the SourceSafe database. + + + + + [Optional] A version of the to reference. + + + + + [Optional] Determines whether files will be writable once retrieved from + the repository. The default is . + + + + + + + + + Task that can strip the source control information from a + Visual Studio Solution and subprojects. + + + + + + + + + + Task that records differences between the latest version + of all the items in a Visual SourceSafe project and another version or label + to a file. + + + + + + + The path to the folder that contains the srcsafe.ini file. + + + + + The value of the label to compare to. + + + + + The name of the file to send the output to. + + + + + [Optional] The password to use to log in to SourceSafe. + + + + + The Visual SourceSafe project or file to perform the action + on (starts with "$/"). + + + + + The name of the user accessing the SourceSafe database. + + + + + [Optional] A version of the to reference. + + + + + + + + + Task that retireves an item or project from a Visual SourceSafe database. + + + + + + + The path to the folder that contains the srcsafe.ini file. + + + + + The path to the local working directory. + + + + + [Optional] The password to use to log in to SourceSafe. + + + + + The Visual SourceSafe project or file to perform the action + on (starts with "$/"). + + + + + [Optional] Determines whether to perform the SourceSafe operation + recursively. The default is . + + + + + [Optional] Determines whether to replace writable files. + The default is . + + + + + The name of the user accessing the SourceSafe database. + + + + + [Optional] A version of the to reference. + + + + + [Optional] Determines whether files will be writable once retrieved from + the repository. The default is . + + + + + + + + + Generates an XML file containing details of all changes made + to a Visual SourceSafe project or file between specified labels or dates. + + + + + + + The path to the folder that contains the srcsafe.ini file. + + + + + [Optional] The End Date for the history. + + + + + [Optional] The label to compare up to. + + + + + The name and path of the XML output file. + + + + + [Optional] The password to use to log in to SourceSafe. + + + + + The Visual SourceSafe project or file to perform the action + on (starts with "$/"). + + + + + [Optional] Determines whether to perform the SourceSafe operation + recursively. The default is . + + + + + [Optional] The Start Date for the history. + + + + + [Optional] The label to start comparing to. + + + + + [Optional] The name of the user whose changes should be listed in + the history. + + + + + The name of the user accessing the SourceSafe database. + + + + + [Optional] A version of the to reference. + + + + + + + + + Task that applies a label to a Visual SourceSafe item. + + + + + + + [Optional] An optional comment. + + + + + The path to the folder that contains the srcsafe.ini file. + + + + + The text of the label. + + + + + [Optional] The password to use to log in to SourceSafe. + + + + + The Visual SourceSafe project or file to perform the action + on (starts with "$/"). + + + + + [Optional] Determines whether to perform the SourceSafe operation + recursively. The default is . + + + + + The name of the user accessing the SourceSafe database. + + + + + [Optional] A version of the to reference. + + + + + + + + + Task that undoes a checkout of files or projects + against a Visual SourceSafe database. + + + + + + + The path to the folder that contains the srcsafe.ini file. + + + + + The path to the local working directory. + + + + + [Optional] The password to use to log in to SourceSafe. + + + + + The Visual SourceSafe project or file to perform the action + on (starts with "$/"). + + + + + [Optional] Determines whether to perform the SourceSafe operation + recursively. The default is . + + + + + The name of the user accessing the SourceSafe database. + + + + + [Optional] A version of the to reference. + + + + + + + + + A task for the pdbstr from source server. + + + + + + + [Optional] Gets or sets the command. + + + + + + [Optional] Gets or sets the PDB file. + + + + + [Optional] Gets or sets the stream file. + + + + + [Optional] Gets or sets the name of the stream. + + + + + + + + + + + + + + + + Read stream from pdb symbol file. + + + + + + + Write stream to pdb symbol file. + + + + + + + + + + A task for the srctool from source server. + + + + + + + [Optional] Gets or sets a value indicating whether to get the count of indexed files. The -c switch. + + + + + + [Optional] Gets or sets a value indicating whether to extracts the files, instead of simply listing them. The -x switch. + + + + + [Optional] Gets or sets the directory to extract to. The -d switch. + + + + + [Optional] [Output] Gets the extracted files. Populated when is true. + + + + + [Optional] Gets or sets the filter to only source files that match this regular expression. The -l switch. + + + + + [Optional] Gets or sets the PDB file. + + + + + [Optional] [Output] Gets or sets the number of source files. + + + + + [Optional] [Output] Gets the source files. Populated when is true. + + + + + [Optional] Gets or sets a value indicating whether to dumps raw source data from the PDB. The -r switch. + + + + + + + + + + + A subversion source index task. + + + + + + + [Optional] Gets or sets the source command format. The SRCSRVCMD environment variable. + + + + + Gets or sets the name of the source server. + + + + + [Optional] Gets or sets the source server SDK path. + + + + + [Optional] Gets or sets the source target format. The SRCSRVTRG environment variable. + + + + + Gets or sets the symbol files to have to source index added. + + + + + + + + + Executes a SQL command. + + + + + + + The command to execute + + + + + [Optional] Command Timeout + + + + + The connection string + + + + + [Optional] The file name to write to + + + + + [Optional] [Output] Output the return count/value + + + + + [Optional] The SQL Selection Mode. Set to NonQuery, Scalar, or ScalarXml. Default is NonQuery. + + + + + + + + + MSBuild task to execute DDL and SQL statements. + + + + + + + [Optional] Gets or sets the batch delimter string. + + + + + The connection string + + + + + Gets or sets the DDL/SQL files. + + + + + [Optional] [Output] Output the return count/values + + + + + [Optional] Timeout to execute a DDL statement. + + + + + + + + + The Database Publishing Wizard enables the deployment of + SQL Server databases (both schema and data) into a shared + hosting environment. + + + + + + + [Optional] Gets or sets the database publishing command. + + + + + [Optional] Gets or sets the full connection string to the local database. + + + + + [Optional] Gets or sets the name of the local database to be scripted. + + + + + [Optional] Gets or sets a value indicating whether the data but + not the schema should be scripted. + + + + + + [Optional] Gets or sets the friendly name of previously + configured hosting Web service. + + + + + [Optional] Gets or sets a value indicating whether the produced + script should not drop pre-existing objects. + + + + + [Optional] Gets or sets a value indicating whether objects will + not be qualified with a schema. + + + + + [Optional] Gets or sets a value indicating whether the publish operation + should not be executed within a single transaction. + + + + + [Optional] Gets or sets the full file path for the script file generated. + + + + + [Optional] Gets or sets the password to use for connection + to the source database. + + + + + [Optional] Gets or sets a value indicating output message suppression. + + + + + [Optional] Gets or sets a value indicating whether the schema, + but not the data, should be scripted. + + + + + [Optional] Gets or sets the name or IP address for the local database connection. + + + + + [Optional] Gets or sets the remote database server name. + + + + + [Optional] Gets or sets the database name to publish to on the remote server. + + + + + [Optional] Gets or sets the password for the remote Web service endpoint. + + + + + [Optional] Gets or sets the username on the hosting Web service endpoint. + + + + + [Optional] Gets or sets the target server the script should target. + + + + + + + [Optional] Gets or sets the SQL Server user name to use for connection + to the source database. + + + + + [Optional] Gets or sets the configuration of the hosting Web service endpoint. + + + + + + + + + Checkout a local working copy of a Subversion repository. + + + + + + + [Optional] Gets or sets the arguments. + + + + + [Optional] Gets or sets the command. + + + + + + [Optional] Gets or sets the force. + + + + + [Optional] Gets or sets the local path. + + + + + [Optional] Gets or sets the message. + + + + + [Optional] Gets or sets the message file. + + + + + [Optional] Gets or sets a value indicating no auth cache. + + + + + [Optional] Gets or sets a value indicating the command is non interactive]. + + + + + [Optional] Gets or sets the password. + + + + + [Optional] [Output] Gets or sets the repository path. + + + + + [Optional] [Output] Gets or sets the revision. + + + + + [Optional] [Output] Gets the error output of SVN command-line client. + + + + + [Optional] [Output] Gets the output of SVN command-line client. + + + + + [Optional] Gets or sets the target file. + + + + + [Optional] Gets or sets the targets. + + + + + + + [Optional] Gets or sets a value indicating whether to trust the server cert. + + + + + [Optional] Gets or sets the username. + + + + + [Optional] Gets or sets the verbose. + + + + + [Optional] Gets or sets a value indicating the output is XML. + + + + + + + + + Subversion client base class + + + + + + + [Optional] Gets or sets the arguments. + + + + + [Optional] Gets or sets the command. + + + + + + [Optional] Gets or sets the force. + + + + + [Optional] Gets or sets the local path. + + + + + [Optional] Gets or sets the message. + + + + + [Optional] Gets or sets the message file. + + + + + [Optional] Gets or sets a value indicating no auth cache. + + + + + [Optional] Gets or sets a value indicating the command is non interactive]. + + + + + [Optional] Gets or sets the password. + + + + + [Optional] [Output] Gets or sets the repository path. + + + + + [Optional] [Output] Gets or sets the revision. + + + + + [Optional] [Output] Gets the error output of SVN command-line client. + + + + + [Optional] [Output] Gets the output of SVN command-line client. + + + + + [Optional] Gets or sets the target file. + + + + + [Optional] Gets or sets the targets. + + + + + + + [Optional] Gets or sets a value indicating whether to trust the server cert. + + + + + [Optional] Gets or sets the username. + + + + + [Optional] Gets or sets the verbose. + + + + + [Optional] Gets or sets a value indicating the output is XML. + + + + + + + + + Subversion Commit command + + + + + + + [Optional] Gets or sets the arguments. + + + + + [Optional] Gets or sets the command. + + + + + + [Optional] Gets or sets the force. + + + + + [Optional] Gets or sets the local path. + + + + + [Optional] Gets or sets the message. + + + + + [Optional] Gets or sets the message file. + + + + + [Optional] Gets or sets a value indicating no auth cache. + + + + + [Optional] Gets or sets a value indicating the command is non interactive]. + + + + + [Optional] Gets or sets the password. + + + + + [Optional] [Output] Gets or sets the repository path. + + + + + [Optional] [Output] Gets or sets the revision. + + + + + [Optional] [Output] Gets the error output of SVN command-line client. + + + + + [Optional] [Output] Gets the output of SVN command-line client. + + + + + [Optional] Gets or sets the target file. + + + + + [Optional] Gets or sets the targets. + + + + + + + [Optional] Gets or sets a value indicating whether to trust the server cert. + + + + + [Optional] Gets or sets the username. + + + + + [Optional] Gets or sets the verbose. + + + + + [Optional] Gets or sets a value indicating the output is XML. + + + + + + + + + Copy a file or folder in Subversion + + + + + + + [Optional] Gets or sets the arguments. + + + + + [Optional] Gets or sets the command. + + + + + [Optional] The path to which the SourcePath should be copied + + + + + + [Optional] Gets or sets the force. + + + + + [Optional] Gets or sets the local path. + + + + + [Optional] Gets or sets the message. + + + + + [Optional] Gets or sets the message file. + + + + + [Optional] Gets or sets a value indicating no auth cache. + + + + + [Optional] Gets or sets a value indicating the command is non interactive]. + + + + + [Optional] Gets or sets the password. + + + + + [Optional] [Output] Gets or sets the repository path. + + + + + [Optional] [Output] Gets or sets the revision. + + + + + [Optional] The path of the source file or folder that should be copied + + + + + [Optional] [Output] Gets the error output of SVN command-line client. + + + + + [Optional] [Output] Gets the output of SVN command-line client. + + + + + [Optional] Gets or sets the target file. + + + + + [Optional] Gets or sets the targets. + + + + + + + [Optional] Gets or sets a value indicating whether to trust the server cert. + + + + + [Optional] Gets or sets the username. + + + + + [Optional] Gets or sets the verbose. + + + + + [Optional] Gets or sets a value indicating the output is XML. + + + + + + + + + Export a folder from a Subversion repository + + + + + + + [Optional] Gets or sets the arguments. + + + + + [Optional] Gets or sets the command. + + + + + + [Optional] Gets or sets the force. + + + + + [Optional] Gets or sets the local path. + + + + + [Optional] Gets or sets the message. + + + + + [Optional] Gets or sets the message file. + + + + + [Optional] Gets or sets a value indicating no auth cache. + + + + + [Optional] Gets or sets a value indicating the command is non interactive]. + + + + + [Optional] Gets or sets the password. + + + + + [Optional] [Output] Gets or sets the repository path. + + + + + [Optional] [Output] Gets or sets the revision. + + + + + [Optional] [Output] Gets the error output of SVN command-line client. + + + + + [Optional] [Output] Gets the output of SVN command-line client. + + + + + [Optional] Gets or sets the target file. + + + + + [Optional] Gets or sets the targets. + + + + + + + [Optional] Gets or sets a value indicating whether to trust the server cert. + + + + + [Optional] Gets or sets the username. + + + + + [Optional] Gets or sets the verbose. + + + + + [Optional] Gets or sets a value indicating the output is XML. + + + + + + + + + Run the "svn info" command and parse the output + + + + + + + [Optional] Gets or sets the arguments. + + + + + [Optional] Gets or sets the command. + + + + + + [Optional] Gets or sets the force. + + + + + [Optional] [Output] The author who last changed this node. + + + + + [Optional] [Output] The date this node was last changed. + + + + + [Optional] [Output] The last changed revision number. + + + + + [Optional] Gets or sets the local path. + + + + + [Optional] Gets or sets the message. + + + + + [Optional] Gets or sets the message file. + + + + + [Optional] Gets or sets a value indicating no auth cache. + + + + + [Optional] [Output] The Subversion node kind. + + + + + [Optional] Gets or sets a value indicating the command is non interactive]. + + + + + [Optional] Gets or sets the password. + + + + + [Optional] [Output] Gets or sets the repository path. + + + + + [Optional] [Output] Return the repository root or null if not set by Subversion. + + + + + [Optional] [Output] Return the repository UUID value from Subversion. + + + + + [Optional] [Output] Gets or sets the revision. + + + + + [Optional] [Output] The Subversion schedule type. + + + + + [Optional] [Output] Gets the error output of SVN command-line client. + + + + + [Optional] [Output] Gets the output of SVN command-line client. + + + + + [Optional] Gets or sets the target file. + + + + + [Optional] Gets or sets the targets. + + + + + + + [Optional] Gets or sets a value indicating whether to trust the server cert. + + + + + [Optional] Gets or sets the username. + + + + + [Optional] Gets or sets the verbose. + + + + + [Optional] Gets or sets a value indicating the output is XML. + + + + + + + + + + + + + + Node is a file + + + + + + + Node is a directory + + + + + + + Unknown node type + + + + + + + + + + + + + + + Normal schedule + + + + + + + Unknown schedule. + + + + + + + + + + Subversion status command. + + + + + + + [Optional] Gets or sets the arguments. + + + + + [Optional] Gets or sets the command. + + + + + + + [Optional] Gets or sets the force. + + + + + [Optional] Gets or sets the local path. + + + + + [Optional] Gets or sets the message. + + + + + [Optional] Gets or sets the message file. + + + + + [Optional] Gets or sets a value indicating no auth cache. + + + + + [Optional] Gets or sets a value indicating the command is non interactive]. + + + + + [Optional] Gets or sets the password. + + + + + [Optional] [Output] Gets or sets the repository path. + + + + + [Optional] [Output] Gets or sets the revision. + + + + + [Optional] [Output] Gets the error output of SVN command-line client. + + + + + [Optional] [Output] Gets the output of SVN command-line client. + + + + + [Optional] Gets or sets the target file. + + + + + [Optional] Gets or sets the targets. + + + + + + + [Optional] Gets or sets a value indicating whether to trust the server cert. + + + + + [Optional] Gets or sets the username. + + + + + [Optional] Gets or sets the verbose. + + + + + [Optional] Gets or sets a value indicating the output is XML. + + + + + + + + + Subversion Update command + + + + + + + [Optional] Gets or sets the arguments. + + + + + [Optional] Gets or sets the command. + + + + + + [Optional] Gets or sets the force. + + + + + [Optional] Gets or sets the local path. + + + + + [Optional] Gets or sets the message. + + + + + [Optional] Gets or sets the message file. + + + + + [Optional] Gets or sets a value indicating no auth cache. + + + + + [Optional] Gets or sets a value indicating the command is non interactive]. + + + + + [Optional] Gets or sets the password. + + + + + [Optional] [Output] Gets or sets the repository path. + + + + + [Optional] [Output] Gets or sets the revision. + + + + + [Optional] [Output] Gets the error output of SVN command-line client. + + + + + [Optional] [Output] Gets the output of SVN command-line client. + + + + + [Optional] Gets or sets the target file. + + + + + [Optional] Gets or sets the targets. + + + + + + + [Optional] Gets or sets a value indicating whether to trust the server cert. + + + + + [Optional] Gets or sets the username. + + + + + [Optional] Gets or sets the verbose. + + + + + [Optional] Gets or sets a value indicating the output is XML. + + + + + + + + + Summarize the local revision(s) of a working copy. + + + + + + + + [Optional] [Output] True if invoked on a directory that is not a working copy, + svnversion assumes it is an exported working copy and prints "exported". + + + + + [Optional] [Output] High revision number of the local working repository revision range. + + + + + Path to local working copy. + + + + + [Optional] [Output] Low revision number of the local working repository revision range. + + + + + [Optional] [Output] True if working copy contains modifications. + + + + + [Optional] [Output] Revision number of the local working repository. + + + + + [Optional] [Output] True if working copy is switched. + + + + + + + [Optional] Specifies whether to use the last committed revision number as + opposed to the last updated revision number. + + + + + + + + + Task that wraps the Symbol Server SymStore.exe application. + + + + + + + [Optional] Gets or sets a value indicating SymStore will append new indexing information to an existing index file. + + + + + [Optional] Gets or sets the command. + + + + + [Optional] Gets or sets the comment for the transaction. + + + + + [Optional] Gets or sets a value indicating SymStore will create a compressed version of each file copied to the symbol store instead of using an uncompressed copy of the file. + + + + + + [Optional] Gets or sets the network path of files or directories to add. + + + + + [Optional] Gets or sets the transaction ID string. + + + + + [Optional] Gets or sets a value indicating whether the file will be in a local directory rather than a network path. + + + + + [Optional] Gets or sets a log file to be used for command output. If this is not included, transaction information and other output is sent to stdout. + + + + + [Optional] Gets or sets the message to be added to each file. + + + + + [Optional] Gets or sets a value indicating whether to omit the creation of reference pointer files for the files and pointers being stored. + + + + + [Optional] Gets or sets a value indicating whether SymStore will store a pointer to the file, rather than the file itself. + + + + + [Optional] Gets or sets the name of the product. + + + + + [Optional] Gets or sets the index file. Causes SymStore to read the data from a file created with WriteIndexFile. + + + + + [Optional] Gets or sets a value indicating whether SymStore will add files or directories recursively. + + + + + [Optional] Gets or sets a value indicating whether the paths in the file pointers will be relative. + + + + + [Optional] Gets or sets the server and share where the symbol files were originally stored. + + + + + [Optional] Gets or sets the root directory for the symbol store. + + + + + + + [Optional] Gets or sets a value indicating whether SymStore will display verbose output. + + + + + [Optional] Gets or sets the version of the product. + + + + + [Optional] Gets or sets the index file. Causes SymStore not to store the actual symbol files. Instead, SymStore records information in the IndexFile that will enable SymStore to access the symbol files at a later time. + + + + + + + + + + + + + + Add to the symbol server store. + + + + + + + Query the symbol server store. + + + + + + + Delete from the symbol serer store. + + + + + + + + + + MSBuild task that replaces tokens in a template file and writes out a new file. + + + + + + + [Optional] [Output] The token replaced template file. + + + + + [Optional] The full path to the output file name. If no filename is specified (the default) the + output file will be the Template filename with a .out extension. + + + + + The template file used. Tokens with values of ${Name} are replaced by name. + + + + + [Optional] List of tokens to replace in the template. Token name is taken from the TaskItem.ItemSpec and the + replacement value comes from the ReplacementValue metadata of the item. + + + + + + + + + Determines the changeset in a local Team Foundation Server workspace + + + + + + + [Optional] [Output] The latest changeset ID in the local path + + + + + [Optional] The domain of the user to authenticate on the server + + + + + Path to local working copy. + + + + + [Optional] The password for the user to authenticate on the server + + + + + [Optional] The location of the Team Foundation Server client assemblies. Leave empty when the client is installed in the Global Assembly Cache. + + + + + [Optional] The user to authenticate on the server + + + + + + + + + Gets the current date and time. + + + + + + + [Optional] Gets the internal time value. + + + + + [Optional] [Output] Gets the day of the month represented by this instance. + + + + + [Optional] [Output] Gets the day of the week represented by this instance. + + + + + [Optional] [Output] Gets the day of the year represented by this instance. + + + + + [Optional] Gets or sets the format string + for output parameter . + + + + + [Optional] [Output] Gets the value of this instance to its equivalent string representation. + If input parameter is provided, + the value is formatted according to it. + + + + + [Optional] [Output] Gets the hour component of the date represented by this instance. + + + + + [Optional] [Output] Gets or sets a value that indicates whether the time represented by this instance is based + on local time, Coordinated Universal Time (UTC), or neither. + + + + + [Optional] [Output] Gets the value of this instance to its equivalent long date string representation. + + + + + [Optional] [Output] Gets the value of this instance to its equivalent long time string representation. + + + + + [Optional] [Output] Gets the milliseconds component of the date represented by this instance. + + + + + [Optional] [Output] Gets the minute component of the date represented by this instance. + + + + + [Optional] [Output] Gets the month component of the date represented by this instance. + + + + + [Optional] [Output] Gets the seconds component of the date represented by this instance. + + + + + [Optional] [Output] Gets the value of this instance to its equivalent short date string representation. + + + + + [Optional] [Output] Gets the value of this instance to its equivalent short time string representation. + + + + + [Optional] [Output] Gets the number of ticks that represent the date and time of this instance. + + + + + [Optional] [Output] Gets the time of day for this instance. + + + + + [Optional] [Output] Gets the year component of the date represented by this instance. + + + + + + + + + + + + + + + + + + + + Unzip a file to a target directory. + + + + + + + [Optional] [Output] Gets the files extracted from the zip. + + + + + [Optional] Gets or sets a value indicating whether to overwrite any existing files on extraction. Defaults to true. + + + + + Gets or sets the target directory. + + + + + Gets or sets the name of the zip file. + + + + + + + + + Provides information about the build user. + + + + + + + [Optional] [Output] Gets the domain name of the build user. + + + + + [Optional] [Output] Gets the email address of the build user. + + + + + [Optional] [Output] Gets the first name of the build user. + + + + + [Optional] [Output] Gets the full name of the build user in "[First name] [Middle initial]. [Last name]" format . + + + + + [Optional] [Output] Gets the last name of the build user. + + + + + [Optional] [Output] Gets the middle initial of the build user. + + + + + [Optional] [Output] Gets the phone number of the build user. + + + + + [Optional] [Output] Gets the user name of the build user. + + + + + [Optional] [Output] Gets the username and domain name of the build user in "[Domain name]\[User name]" format. + + + + + + + + + Generates version information based on various algorithms + + + + + + + [Optional] [Output] Gets or sets the build version number. + + + + + [Optional] Gets or sets the method used to generate a number + + + + + [Optional] [Output] Gets or sets the major version number. + + + + + [Optional] Gets or sets the method used to generate a number + + + + + [Optional] [Output] Gets or sets the minor version number. + + + + + [Optional] Gets or sets the method used to generate a number + + + + + [Optional] [Output] Gets or sets the revision version number. + + + + + [Optional] Gets or sets the method used to generate a number + + + + + [Optional] Gets or sets the starting date used to calculate the number when is Automatic. + + + + + [Optional] Gets or sets the file used to initialize and persist the version. + + + + + + + + + Downloads a resource with the specified URI to a local file. + + + + + + + [Optional] The domain of the user being used to authenticate against the remote web server. A value for must also be provided. + + + + + Gets or sets the name of the local file that is to receive the data. + + + + + Gets or sets the URI from which to download data. + + + + + [Optional] The password used to authenticate against the remote web server. A value for must also be provided. + + + + + [Optional] When true, the current user's credentials are used to authenticate against the remote web server + + + + + [Optional] The username used to authenticate against the remote web server + + + + + + + + + Performs multiple updates on an XML file + + + + + + + The original file whose content is to be updated + + + + + [Optional] [Output] The full path of the file containing content updated by the task + + + + + [Optional] The XPath expression identifying root node that substitions are relative to + + + + + [Optional] The file created after performing the updates + + + + + [Optional] [Output] The full path of the file containing the results of the task + + + + + [Optional] A collection of prefix=namespace definitions used to query the XML documents + + + + + [Optional] The file containing the list of updates to perform + + + + + [Optional] [Output] The full path of the file containing substitutions used by the task + + + + + [Optional] The XPath expression used to locate the list of substitutions to perform + + + + + [Optional] The namespace used for XmlMassUpdate pre-defined attributes + + + + + + + + + Reads a value or values from lines of XML + + + + + + + [Optional] The lines of a valid XML document + + + + + [Optional] A collection of prefix=namespace definitions used to query the XML document + + + + + [Optional] The string that is prepended to all reserved metadata properties. + + + + + [Optional] [Output] The values selected by + + + + + [Optional] [Output] The number of values returned in + + + + + [Optional] Gets or sets the name of an XML file to query + + + + + The query used to identify the values in the XML document + + + + + + + + + Reads a value from a XML document using a XPath. + + + + + + + [Optional] Gets or sets the default namespace. + + + + + [Optional] Gets or sets the prefix to associate with the namespace being added. + + + + + [Optional] [Output] Gets the value read from file. + + + + + Gets or sets the name of the XML file. + + + + + Gets or sets the XPath. + + + + + + + + + Updates a XML document using a XPath. + + + + + + + [Optional] Gets or sets a value indicating whether the matched node is deleted. + + + + + [Optional] Gets or sets the default namespace. + + + + + [Optional] Gets or sets the prefix to associate with the namespace being added. + + + + + [Optional] Gets or sets the value to write. + + + + + Gets or sets the name of the XML file. + + + + + Gets or sets the XPath. + + + + + + + + + A task to merge and transform a set of xml files. + + + + + + + Gets or sets the xml input files. + + + + + Gets or sets the path of the output file. + + + + + [Optional] Gets or sets the list of + semicolon-delimited name/value pairs + of the . + For example: RootAttributes="foo=bar;date=$(buildDate)" + + + + + [Optional] Gets or sets the xml tag name + of the root tag wrapped + around the merged xml input files. + + + + + Gets or sets the path of the + xsl transformation file to apply. + + + + + + + + + Create a zip file with the files specified. + + + + + + + [Optional] Gets or sets the comment. + + + + + [Optional] Gets or sets the encryption algorithm. + + + + + Gets or sets the files to zip. + + + + + [Optional] Gets or sets a value indicating whether this is flatten. + + + + + [Optional] Gets or sets the password. + + + + + [Optional] Gets or sets the working directory for the zip file. + + + + + Gets or sets the name of the zip file. + + + + + [Optional] Gets or sets the zip level. Default is 6. + + + + + + + \ No newline at end of file diff --git a/Build/MsBuildCommunityTasks/MSBuildCommunityTasks.reg b/Build/MsBuildCommunityTasks/MSBuildCommunityTasks.reg new file mode 100644 index 00000000..94aee162 Binary files /dev/null and b/Build/MsBuildCommunityTasks/MSBuildCommunityTasks.reg differ diff --git a/Build/MsBuildCommunityTasks/Sample.proj b/Build/MsBuildCommunityTasks/Sample.proj new file mode 100644 index 00000000..4d323d47 --- /dev/null +++ b/Build/MsBuildCommunityTasks/Sample.proj @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + list = new List(); + list.Add("Happy"); + list.Add("New"); + list.Add("Year"); + Console.WriteLine("Hello MSBuild Community Scripting World."); + foreach(string s in list) + { + Console.WriteLine(s); + } + } + ]]> + + + + + + {%- endif %} + {%- endblock %} + + +{%- endif %}{% endif %} + +{% endblock %} +{%- block document %} +
+ {%- if not embedded %}{% if not theme_nosidebar|tobool %} +
+ {%- endif %}{% endif %} +
+ {% block body %} {% endblock %} +
+ {%- if not embedded %}{% if not theme_nosidebar|tobool %} +
+ {%- endif %}{% endif %} +
+{%- endblock %} +{%- block sidebar2 %}{% endblock %} +{%- block relbar2 %}{% endblock %} +{%- block footer %} + + +{%- endblock %} diff --git a/Documentation/OnlineHelp/source/conf.py b/Documentation/OnlineHelp/source/conf.py new file mode 100644 index 00000000..296523bf --- /dev/null +++ b/Documentation/OnlineHelp/source/conf.py @@ -0,0 +1,219 @@ +# -*- coding: utf-8 -*- +# +# HydroDesktop documentation build configuration file, created by +# sphinx-quickstart on Thu Jul 22 16:24:13 2010. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.append(os.path.abspath('.')) + +# -- General configuration ----------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = [] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'welcome' + +# General information about the project. +project = u'HydroDesktop' +copyright = u'2010, Consortium of Universities for the Advancement of Hydrologic Science, Inc.' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '1.1' +# The full version, including alpha/beta/rc tags. +release = '1.1' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = ['.svn'] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'vs' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'basic' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +html_title = 'HydroDesktop Help' + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +html_domain_indices = False + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +html_show_sourcelink = False + +# If true, the reST sources are included in the HTML build as _sources/. (needed for the search feature) +html_copy_source = False + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = '' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'HydroDesktopdoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('welcome', 'HydroDesktop.tex', u'HydroDesktop Documentation', + u'Consortium of Universities for the Advancement of Hydrologic Science, Inc.', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('welcome', 'hydrodesktop', u'HydroDesktop Documentation', + [u'Consortium of Universities for the Advancement of Hydrologic Science, Inc.'], 1) +] diff --git a/Documentation/OnlineHelp/source/extensions/EditView/ChangingtheValueofSelectedDataValues.rst b/Documentation/OnlineHelp/source/extensions/EditView/ChangingtheValueofSelectedDataValues.rst new file mode 100644 index 00000000..16c215a3 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/EditView/ChangingtheValueofSelectedDataValues.rst @@ -0,0 +1,20 @@ +.. index:: Changing the Value of Selected Data Values + +Changing the Value of Selected Data Values +===================================================== + +The Edit View extension provides functions for changing the value of selected data values. An example of when this functionality could be useful might be when an improper offset has been used in a datalogger program and the values of a data series need to be adjusted. Use the following steps to change the value of selected data values: + +1. If you have not already, select a data series for editing and click the "Start Editing" button on the Edit View ribbon. +2. Use the data filters or click on records in the Edit View table to select the data values that you would like to modify. +3. Click the "Change Value" button on the Edit View ribbon. The following window will open: + + +.. figure:: ./images/Edit_image004.png + :align: center + +4. Select the operation that you would like to perform to the selected data values (e.g., add, subtract, multiply, or set value to). +5. Type a numeric value into the text box and then click OK. In the following example, the Edit View extension will add a value of 20 to the selected data values. + +.. figure:: ./images/Edit_image005.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/EditView/DeletingDataValues.rst b/Documentation/OnlineHelp/source/extensions/EditView/DeletingDataValues.rst new file mode 100644 index 00000000..bb1f5cd6 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/EditView/DeletingDataValues.rst @@ -0,0 +1,22 @@ +.. index:: Deleting Data Values + +Deleting Data Values +===================================================== + +In many cases you will need to delete erroneous data from data series that you are working with. This can be useful for example when you have a sensor data stream within which the sensor has failed and you need to delete the period of data during which the sensor failure occurred. Use the following steps to delete values from a data series: + +1. If you have not already, select a data series for editing and click the "Start Editing" button on the Edit View ribbon. +2. Use the data filters or click on records in the Edit View table to select the data values that you would like to modify. In the following example, all dissolved oxygen data during a period of sensor failure have been selected for deletion using the date filter. + +.. figure:: ./images/Edit_image011.png + :align: center + +3. Click the "Delete Point" button on the Edit View ribbon. The following window will appear. Click the "OK" button to delete the selected data values. + +.. figure:: ./images/Edit_image012.png + :align: center + +4. You will notice that the selected data values have been deleted from the data series. + +.. figure:: ./images/Edit_image013.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/EditView/DerivingNewDataSeries.rst b/Documentation/OnlineHelp/source/extensions/EditView/DerivingNewDataSeries.rst new file mode 100644 index 00000000..8020301c --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/EditView/DerivingNewDataSeries.rst @@ -0,0 +1,22 @@ +.. index:: Deriving New Data Series + +Deriving New Data Series +====================================================== + +The Edit View extension provides some functionality for deriving new data series from existing data series in the HydroDesktop database. You can access this functionality by selecting an existing data series and then clicking on the "Derive Series" button on the Edit View ribbon. The following are the options for deriving new series: + + * Derive a Copy of Data For Editing - this option will create an exact copy of an existing data series so that you can edit the copy and preserve the original. + * Derive Using an Aggregate Function - this option will derive a new data series by aggregating an existing data series to a new time step (e.g., daily, monthly, quarterly) using a selected statistic (e.g., maximum, minimum, average, sum). + * Derive Using an Algebraic Equation - this option will derive a new data series from an existing data series by applying a user defined algebraic transformation to each data value. + +Use the following steps to derive a new data series using Edit View: + +1. If you have not already, select a data series in the Series Selection tool. +2. Click the "Derive Series" button on the Edit View tab. The following window will appear. + +.. figure:: ./images/Edit_image014.png + :align: center + +3. Select the derivation options that you want to apply by selecting the appropriate radio buttons. +4. Modify any parameters at the bottom of the form that need to be modified. If you need to create a new method, variable, or quality control level, select "New Method," "New Variable," or "New QualityControlLevel" from the drop down lists at the bottom of the form. The example in the figure above will create an exact copy of the data series, maintaining the same method description, variable description, and quality control level description. +5. When you have selected all of the appropriate options on the form, click the "New Data Series" button to derive the new data series. diff --git a/Documentation/OnlineHelp/source/extensions/EditView/EditView.rst b/Documentation/OnlineHelp/source/extensions/EditView/EditView.rst new file mode 100644 index 00000000..3db12597 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/EditView/EditView.rst @@ -0,0 +1,64 @@ +.. index:: Edit Tab + +Edit View Tab +============= + +.. index:: + single: version number; getting + single: getting the version number + +This webpage was created to provide on-line assistance for using the Edit View extension. Below is a list of items for which more detailed information is provided. + + +.. toctree:: + :maxdepth: 4 + + Introduction + + SelectingDataSeriestoEdit + + SelectingDataValuestoEdit + + ChangingtheValueofSelectedDataValues + + InterpolatingSelectedDataValues + + FlaggingSelectedDataValueswithQualifiers + + InsertingDataValues + + DeletingDataValues + + RestoringDataSeriesValues + + SavingDataSeriesEditstotheHydroDesktopDatabase + + DerivingNewDataSeries + + ZoomingInandOutonPlots + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Documentation/OnlineHelp/source/extensions/EditView/FlaggingSelectedDataValueswithQualifiers.rst b/Documentation/OnlineHelp/source/extensions/EditView/FlaggingSelectedDataValueswithQualifiers.rst new file mode 100644 index 00000000..77dd015a --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/EditView/FlaggingSelectedDataValueswithQualifiers.rst @@ -0,0 +1,17 @@ +.. index:: Flagging Selected Data Values with Qualifiers + +Flagging Selected Data Values with Qualifiers +===================================================== + +When you edit data values within a data series, you may want to flag them with a qualifying comment that states that the data values have been edited. Use the following steps to flag selected data values with a qualifying comment: + +1. If you have not already, select a data series for editing and click the "Start Editing" button on the Edit View ribbon. +2. Use the data filters or click on records in the Edit View table to select the data values that you would like to add a qualifying comment to. +3. Click on the "Flag" button on the Edit View ribbon. The following window will open. + +.. figure:: ./images/Edit_image008.png + :align: center + +4. On this form you can either select a data qualifying comment from the drop down list at the top of the form (in the case that it already exists in the HydroDesktop database), or you can create a new qualifying comment by selecting "New Qualifier" from the drop down list. +5. If you selected "New Qualifier," you need to create a code for your qualifier and a description, which is the text of your qualifying comment. +6. Once you have completed the form by either selecting an existing comment or creating a new one, click the "Set" button to apply the qualifying comment to the selected data values. diff --git a/Documentation/OnlineHelp/source/extensions/EditView/InsertingDataValues.rst b/Documentation/OnlineHelp/source/extensions/EditView/InsertingDataValues.rst new file mode 100644 index 00000000..9559e786 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/EditView/InsertingDataValues.rst @@ -0,0 +1,19 @@ +.. index:: Inserting Data Values + +Inserting Data Values +===================================================== + +In some cases, you may want to insert one or more data values into an existing data series. This functionality is useful in filling small data gaps with missing values. Use the following steps to insert data values into an existing data series: + +1. If you have not already, select a data series for editing and click the "Start Editing" button on the Edit View ribbon. +2. Click the "Add Point" on the Edit View ribbon. The following window will open. + +.. figure:: ./images/Edit_image009.png + :align: center + +3. On the third row of the table on this form you can type in the data value that you wish to add and the additional metadata that describe it. You must input at least values for the DataValue, LocalDateTime, UTCOffset, and DateTimeUTC fields, which are all highlighted in yellow. + +.. figure:: ./images/Edit_image010.png + :align: center + +4. You can continue adding new values in the final row in the table until your edits are complete. When you have finished inserting new data values, click the "Add" button to add the new data to your data series. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/EditView/InterpolatingSelectedDataValues.rst b/Documentation/OnlineHelp/source/extensions/EditView/InterpolatingSelectedDataValues.rst new file mode 100644 index 00000000..a354e2cf --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/EditView/InterpolatingSelectedDataValues.rst @@ -0,0 +1,17 @@ +.. index:: Interpolating Selected Data Values + +Interpolating Selected Data Values +===================================================== + +The Edit View extension provides a function for linearly interpolating data values based on the numeric values of the data values that come before and after the selected data values in time. This can be useful for correcting anomalies and obvious out of range values within a dataset. Use the following steps to interpolate selected data values: + +1. If you have not already, select a data series for editing and click the "Start Editing" button on the Edit View ribbon. +2. Use the data filters or click on records in the Edit View table to select the data values that you would like to modify. In the following example, all dissolved oxygen data values greater than 15 mg/L have been selected using a value threshold filter as it is known that these are obvious out of range data values that need to be corrected. + +.. figure:: ./images/Edit_image006.png + :align: center + +3. Click the "Interpolate" button on the Edit View tab. A window will pop up asking you if you are sure that you want to Interpolate. Click the "Yes" button. After a moment you will notice that the data values you selected have now been linearly interpolated and that the scale of your plot has been changed to reflect the new extents of your data. + +.. figure:: ./images/Edit_image007.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/EditView/Introduction.rst b/Documentation/OnlineHelp/source/extensions/EditView/Introduction.rst new file mode 100644 index 00000000..09033cc2 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/EditView/Introduction.rst @@ -0,0 +1,7 @@ +.. index:: introduction + +Introduction +===================================================== + +The Edit View is a HydroDesktop extension that provides functionality for editing time series data that have been downloaded and stored in the HydroDesktop data repository database. The Edit View enables you to perform a number of data editing functions that can be very useful in doing simple data quality assurance and quality control as well as in preparing time series data that may have some anomalous data values for input to an analysis or model. + diff --git a/Documentation/OnlineHelp/source/extensions/EditView/RestoringDataSeriesValues.rst b/Documentation/OnlineHelp/source/extensions/EditView/RestoringDataSeriesValues.rst new file mode 100644 index 00000000..c26f2431 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/EditView/RestoringDataSeriesValues.rst @@ -0,0 +1,6 @@ +.. index:: Restoring Data Series Values + +Restoring Data Series Values +===================================================== + +During your editing session, the Edit View extension maintains a copy of the data in memory. Any editing functions that you perform are made on the memory copy of the data. The changes that you make to the data will not be saved to the database until you decide to do so. If you make a mistake and would like to undo your edits, you can click the "Restore Data" button on the Edit View ribbon. This button will reload the original data series from the HydroDesktop database and will discard any changes that you have made since your last save. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/EditView/SavingDataSeriesEditstotheHydroDesktopDatabase.rst b/Documentation/OnlineHelp/source/extensions/EditView/SavingDataSeriesEditstotheHydroDesktopDatabase.rst new file mode 100644 index 00000000..aaeee01a --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/EditView/SavingDataSeriesEditstotheHydroDesktopDatabase.rst @@ -0,0 +1,6 @@ +.. index:: Saving Data Series Edits to the HydroDesktop Database + +Saving Data Series Edits to the HydroDesktop Database +====================================================== + +To save the edits you have made to a selected data series to the HydroDesktop database, click the "Save to Database" button on the Edit View ribbon. Any changes that you have made to the data series will be saved to the database, overwriting the original data series. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/EditView/SelectingDataSeriestoEdit.rst b/Documentation/OnlineHelp/source/extensions/EditView/SelectingDataSeriestoEdit.rst new file mode 100644 index 00000000..a599188d --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/EditView/SelectingDataSeriestoEdit.rst @@ -0,0 +1,16 @@ +.. index:: Selecting DataSeries to Edit + +Selecting Data Series to Edit +===================================================== + +Edit View was designed to enable editing of one data series at a time. Use the following steps to select a data series for editing: + +1. Select a data series in the HydroDesktop Series Selection tool by clicking the check box next to it. This will create a plot of the data series in the plot portion of the Edit View tab. + +.. figure:: ./images/Edit_image001.png + :align: center + +2. Once a series is selected, click the "Edit Series" button on the Edit View ribbon. You will notice that the plot changes and shows the points associated with the selected series. The data values of the series are also loaded into the tabular view at the bottom of the Edit View tab, and the data filters at the right of the plot are enabled. The series you have selected is now ready for editing. + +.. figure:: ./images/Edit_image002.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/EditView/SelectingDataValuestoEdit.rst b/Documentation/OnlineHelp/source/extensions/EditView/SelectingDataValuestoEdit.rst new file mode 100644 index 00000000..90485d6a --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/EditView/SelectingDataValuestoEdit.rst @@ -0,0 +1,20 @@ +.. index:: Selecting Data Values to Edit + +Selecting Data Values to Edit +===================================================== + +Before data values within a data series can be edited, they must first be selected. You can select individual data values by clicking on their associated record in the tabular view at the bottom of the Edit View tab. When you do so, you will notice that the corresponding point on the plot changes color from black to red. Additionally, the Edit View extension provides several filters that can be used for selecting multiple data values that you would like to edit. These include the following: + + * Value Threshold Filter - use this filter to select all data values greater than or less than a given threshold or between two threshold values. Useful for selecting out of range values for interpolation. + * Data Gaps Filter - use this filter to select data values where the time gap between two values is greater than a threshold. Useful for finding data gaps. + * Date Filter - use this filter to select all data values greater than or less than a give date or between two dates. Useful for selecting blocks of data for deletion. + * Value Change Threshold Filter - use this filter to select all data values where the change from one value to the next is greater than some threshold value. Useful for detecting anomalies in time series. + +The following is an example of how to apply a value threshold data filter: + +1. If you have not already, select a data series for editing and click the "Start Editing" button on the Edit View ribbon. +2. Type a value into one of the threshold value boxes and then click the "Apply Filter" button. In the example below, a filter has been applied to select dissolved oxygen data values greater than 15 mg/L, which are obvious out of range values that need to be edited. + +.. figure:: ./images/Edit_image003.png + :align: center + diff --git a/Documentation/OnlineHelp/source/extensions/EditView/ZoomingInandOutonPlots.rst b/Documentation/OnlineHelp/source/extensions/EditView/ZoomingInandOutonPlots.rst new file mode 100644 index 00000000..630e9324 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/EditView/ZoomingInandOutonPlots.rst @@ -0,0 +1,6 @@ +.. index:: Zooming In and Out on Plots + +Zooming In and Out on Plots +====================================================== + +The Edit View has the same plot zooming functionality that the Graph View extension has. Refer to the Graph View help for details. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image001.PNG b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image001.PNG new file mode 100644 index 00000000..e47424ce Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image001.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image002.PNG b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image002.PNG new file mode 100644 index 00000000..b35adb7e Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image002.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image003.PNG b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image003.PNG new file mode 100644 index 00000000..cf0e8775 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image003.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image004.PNG b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image004.PNG new file mode 100644 index 00000000..6a4e0a30 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image004.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image005.PNG b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image005.PNG new file mode 100644 index 00000000..6fa3c5b1 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image005.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image006.PNG b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image006.PNG new file mode 100644 index 00000000..8be4155c Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image006.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image007.PNG b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image007.PNG new file mode 100644 index 00000000..c59ceecb Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image007.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image008.PNG b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image008.PNG new file mode 100644 index 00000000..fa7e3322 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image008.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image009.PNG b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image009.PNG new file mode 100644 index 00000000..e1e35243 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image009.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image010.PNG b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image010.PNG new file mode 100644 index 00000000..300f7dcf Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image010.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image011.PNG b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image011.PNG new file mode 100644 index 00000000..9b29d635 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image011.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image012.PNG b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image012.PNG new file mode 100644 index 00000000..700eb36f Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image012.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image013.PNG b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image013.PNG new file mode 100644 index 00000000..d19fc68e Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image013.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image014.PNG b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image014.PNG new file mode 100644 index 00000000..63597bb6 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/EditView/images/Edit_image014.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/EpaTools/EPA-Delineation.rst b/Documentation/OnlineHelp/source/extensions/EpaTools/EPA-Delineation.rst new file mode 100644 index 00000000..844abdab --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/EpaTools/EPA-Delineation.rst @@ -0,0 +1,23 @@ +.. index:: EPA Delineation + +EPA Delineation +=============== + +After you specify one point on the main map, EPA Delineation tool returns back to you the watershed delineated from that point based on NHD, as well as all NHD flowlines that flow down to the point in that watershed. It uses EPA's WATERS Web and Database Services. + +Delineating Your Watershed +-------------------------- + +Using EPA Delineation tool to get the watershed shapefile makes it possible to search hydrological data within particular watersheds. It follows several steps: + +#. Click the **Delineate** button in the **EPA Delineation** Panel in the **Home** Tab. +#. Specify the names of *Watershed Point*, *Watershed* and *Streamline* for the files that you want to save. +#. Click **OK**. You will find the cursor turns to a cross shape. +#. Click at one point that you want to use as the outlet on the map. +#. The Delineation tool is now starting to collect the coordinate information of the point you clicked and send it to the EPA Web Services to get responses. +#. Wait until the message telling you *"Drawing Features on the Map..."*. The message box will close automatically after all procedures ending. +#. You will find three shapefiles with the names you specified shown on the top of the map. They are temporarily saved in *Users\Application Data\HydroDesktop\Delineation* folder in your system. +#. You can export the features as shapefiles to other locations by right clicking on the name and selecting **Data --> Export Data**. +#. You can also check the attributes of these shapefiles by right clicking on the name and selecting **View Attributes**, or directly click the **Attribute** button in the ribbon tab. + +Now you have a pretty hydrological view of all the upstream of your particular point. diff --git a/Documentation/OnlineHelp/source/extensions/EpaTools/EPA-tool.rst b/Documentation/OnlineHelp/source/extensions/EpaTools/EPA-tool.rst new file mode 100644 index 00000000..74031e65 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/EpaTools/EPA-tool.rst @@ -0,0 +1,17 @@ +.. index:: + single: extensions; EPA Tools + single: EPA Tools + +EPA Tools +========= + +The EPA Tools in HydroDesktop provide access to **EPA's WATERS Web and Database Services**. Users can use these tools to get the watershed and the flowlines that are delineated from the specified point on the map. Both the watershed and flowlines are based on **NHD** (National Hydrography Dataset) system. + +Contact information for EPA's WATERS Web and Database Services is: http://www.epa.gov/waters/comments.html + +EPA Tool: + +.. toctree:: + :maxdepth: 2 + + EPA-Delineation \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/FetchBasemap/FetchBasemap.rst b/Documentation/OnlineHelp/source/extensions/FetchBasemap/FetchBasemap.rst new file mode 100644 index 00000000..d0765eff --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/FetchBasemap/FetchBasemap.rst @@ -0,0 +1,16 @@ +.. index:: + single: extensions; Fetch Basemap + single: Fetch Basemap + +Fetch Basemap +============= + +The Fetch Basemap extension in HydroDesktop enables automatic retrieval of online basemap tiles from a variety of tile providers, including ESRI, Bing, and OpenStreetMap. These basemaps help give context to your spatial and hydrologic data. The selected basemap is automatically refreshed upon zooming, panning, or otherwise changing the visible extent of the main HydroDesktop map. + +Selecting a Basemap Service +--------------------------- +Using the Fetch Basemap extension is very easy. To enable the automatic fetching, simply select the desired basemap service from the dropdown in the **Online Basemap** panel of the **Home** Tab. To change the basemap service, simply select another option from the dropdown. The basemap can be turned off by selecting the **'None'** option from the dropdown or by removing the Online Basemap layer from the listing of map layers in the main HydroDesktop map window. + +Changing Basemap Opacity +------------------------ +The opacity of the basemap can be adjusted using the **Opacity** dropdown in the **Online Basemap** panel. Setting the basemap to be semi-transparent will allow map layers that fall beneath the basemap to be visible according to which opacity is chosen. Smaller opacity numbers result in greater transparency of the basemap. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/ChangingthePlotOptions.rst b/Documentation/OnlineHelp/source/extensions/GraphView/ChangingthePlotOptions.rst new file mode 100644 index 00000000..f9bf02ed --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/GraphView/ChangingthePlotOptions.rst @@ -0,0 +1,13 @@ +.. index:: change plot options + +Changing the Plot Options +===================================================== + +Some of the plot types within the Graph View have some options for customizing the look and feel of the plot that is displayed. Use the following steps to explore the options for each plot type: + +1. Select one or more time series from the Series Selection Tool to create a plot in the Graph View. +2. Select the desired plot type from the Graph View Ribbon at the top of the Graph View. You will notice that a set of options for the selected plot type appears in the Graph View ribbon. +3. Set the options that you want to customize your plot. The following describe the options for each plot: + * Time Series and Probability Plots - Using the "Plot Type" button you can set the plot type to show the line, the data points, or both. Using the "Color Setting" button you can set the colors used to symbolize the lines and points on the plots. Using the "Close Legend" button you can control whether the legend is shown on the plot or not. + * Histograms - Using the "Histogram Type" button you can control the type of histogram that is shown. Using the "Binning Algorithms" button you can choose the algorithm used to calculate the histogram bins. + * Box/Whisker Plots - Using the "Box Whisker Type" button you can choose the time scale for the box/whisker plots (e.g., monthly, seasonal, yearly, or overall). diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/ChangingthePlotTypeandDisplayingSummaryStatistics.rst b/Documentation/OnlineHelp/source/extensions/GraphView/ChangingthePlotTypeandDisplayingSummaryStatistics.rst new file mode 100644 index 00000000..fd04f74b --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/GraphView/ChangingthePlotTypeandDisplayingSummaryStatistics.rst @@ -0,0 +1,34 @@ +.. index:: change plot type + +Changing the Plot Type and Displaying Summary Statistics +========================================================= + +Graph View offers several different types of plots for visualizing your time series data. Use the following steps to change the plot type in Graph View: + +1. Select one or more data series to be plotted in the Series Selection Tool. +2. On the Graph View ribbon, select the type of plot to be displayed by clicking on the appropriate icon. Available plot types are shown below: + +2a. Time series + +.. figure:: ./images/Graph_image007.png + :align: center + +2b. Probability + +.. figure:: ./images/Graph_image008.png + :align: center + +2c. Histogram + +.. figure:: ./images/Graph_image009.png + :align: center + +2d. Box/whisker + +.. figure:: ./images/Graph_image010.png + :align: center + +3. To display summary statistics for one or more selected time series, click on the "Summary" icon on the Graph View ribbon. Summary statistics for the currently selected time series will be displayed. + +.. figure:: ./images/Graph_image011.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/ExportingthePlotImage.rst b/Documentation/OnlineHelp/source/extensions/GraphView/ExportingthePlotImage.rst new file mode 100644 index 00000000..c2ffd513 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/GraphView/ExportingthePlotImage.rst @@ -0,0 +1,18 @@ +.. index:: export + +Exporting the Plot Image +===================================================== + +Use the following steps to export the plot image that is shown in the Graph View: + +1. Create a plot that you want to export by selecting a number of data series from the Series Selection Tool and the desired plot type from the Graph View Ribbon. +2. To copy the plot image to the clipboard, right click on the plot window and select "Copy" from the context menu. The image can then be pasted into a document or other software program +3. To save a copy of the image to disk, right click on the plot window and select "Save Image As." A file dialog will open asking you where you want to store the image. Select a location to which you want to save the image, select a desired file type, give your image file a name, and then click the "Save" button to save it to disk. + +.. figure:: ./images/Graph_image013.png + :align: center + +4. The image that you export will look something like the following (depending on the data series that you have selected. + +.. figure:: ./images/Graph_image014.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/GraphView.rst b/Documentation/OnlineHelp/source/extensions/GraphView/GraphView.rst new file mode 100644 index 00000000..5940f808 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/GraphView/GraphView.rst @@ -0,0 +1,68 @@ +.. index:: Graph Tab + +Graph Tab +=========== + +.. index:: + single: version number; getting + single: getting the version number + +This webpage was created to provide on-line assistance for using the Graph View extension. Below is a list of items for which more detailed information is provided. + + +.. toctree:: + :maxdepth: 4 + + Introduction + + VisualizingDataintheGraphView + + ZoomingInandOutOnPlots + + ChangingthePlotTypeandDisplayingSummaryStatistics + + SettingtheDateRange + + ChangingthePlotOptions + + ExportingthePlotImage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/Introduction.rst b/Documentation/OnlineHelp/source/extensions/GraphView/Introduction.rst new file mode 100644 index 00000000..9e17a887 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/GraphView/Introduction.rst @@ -0,0 +1,9 @@ +.. index:: introduction + +Introduction +===================================================== + +The Graph View is a HydroDesktop extension that provides functionality for visualizing data that have been downloaded and stored in the HydroDesktop data repository database. The Graph View enables you to generate a variety of plot types for time series data as well as simple summary statistics that can be used for exploratory data analysis. A variety of plot customization options are available for changing the look and feel of the plots generated by the Graph View extension. + +.. figure:: ./images/Graph_introduction.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/SettingtheDateRange.rst b/Documentation/OnlineHelp/source/extensions/GraphView/SettingtheDateRange.rst new file mode 100644 index 00000000..e658f166 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/GraphView/SettingtheDateRange.rst @@ -0,0 +1,16 @@ +.. index:: set date range + +Setting the Date Range +===================================================== + +You can restrict the date range of the data shown in the Graph View plot using the following steps. The plot is drawn for the selected date range, and the summary statistics are calculated only for data that fall within the selected range. + +1. Select one or more time series from the Series Selection Tool to create a plot in the Graph View. You will notice that the start date and end date for the selected time series are shown in the Graph View ribbon. +2. Change the start date and the end date for the plot in the graph view ribbon. When you have selected an appropriate date range, click the "Refresh" button. + + +.. figure:: ./images/Graph_image012.png + :align: center + +3. You will notice that the plot has been restricted to the selected date range. +4. You can easily reset the plot to the full date range by clicking the "Full Date Range" option on the Graph View ribbon. diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/VisualizingDataintheGraphView.rst b/Documentation/OnlineHelp/source/extensions/GraphView/VisualizingDataintheGraphView.rst new file mode 100644 index 00000000..143d9258 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/GraphView/VisualizingDataintheGraphView.rst @@ -0,0 +1,18 @@ +.. index:: visualizing + +Visualizing Data in the Graph View +===================================================== + +Once you have discovered and downloaded some time series data into HydroDesktop, you can use the following steps to begin visualizing those data using the Graph View extension: + +1. Make sure the Graph View is active by clicking on the "Graph" tab at the top of the HydroDesktop window. +2. Select a data series by clicking on the check box to the left of any of the data series in the HydroDesktop Series Selection Tool. You will notice that the Graph View creates a plot of the selected series. + + +.. figure:: ./images/Graph_image002.png + :align: center + +3. You can visualize multiple series at once by selecting multiple series on the series selection tool. You will notice that a legend appears at the bottom of the plot when more than one series is selected. + +.. figure:: ./images/Graph_image003.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/ZoomingInandOutOnPlots.rst b/Documentation/OnlineHelp/source/extensions/GraphView/ZoomingInandOutOnPlots.rst new file mode 100644 index 00000000..642ddde3 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/GraphView/ZoomingInandOutOnPlots.rst @@ -0,0 +1,23 @@ +.. index:: zoom in-out plots + +Zooming In and Out On Plots +===================================================== + +You can easily zoom in and out on a plot within Graph View using the following steps: + +1. Create a time series plot by selecting one or more data series in the Series Selection Tool. + + +.. figure:: ./images/Graph_image004.png + :align: center + +2. Click and drag rectangle on the plot to define a zoom area. You will notice that when you hover over the plot the cursor changes to a cross, enabling you to select a zoom area. + +.. figure:: ./images/Graph_image005.png + :align: center + +3. While you are zoomed in, you will notice that scroll bars appear at the bottom and on the right of the plot window. You can zoom in on a time series plot and then scroll through time using the scroll bars. +4. To zoom out, you can right click on the plot and select "Un-zoom," "Undo All Zoom/Pan," or "Set Scale to Default." + +.. figure:: ./images/Graph_image006.png + :align: center diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image002.PNG b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image002.PNG new file mode 100644 index 00000000..2a430270 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image002.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image003.PNG b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image003.PNG new file mode 100644 index 00000000..0c37099b Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image003.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image004.PNG b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image004.PNG new file mode 100644 index 00000000..3ca8dee8 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image004.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image005.PNG b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image005.PNG new file mode 100644 index 00000000..5434ebb3 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image005.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image006.PNG b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image006.PNG new file mode 100644 index 00000000..f2789403 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image006.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image007.PNG b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image007.PNG new file mode 100644 index 00000000..4f645f92 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image007.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image008.PNG b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image008.PNG new file mode 100644 index 00000000..cd3b6d8f Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image008.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image009.PNG b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image009.PNG new file mode 100644 index 00000000..b849bf96 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image009.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image010.PNG b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image010.PNG new file mode 100644 index 00000000..9d0cf3f3 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image010.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image011.PNG b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image011.PNG new file mode 100644 index 00000000..70a18156 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image011.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image012.PNG b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image012.PNG new file mode 100644 index 00000000..3762986b Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image012.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image013.PNG b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image013.PNG new file mode 100644 index 00000000..1a498634 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image013.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image014.PNG b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image014.PNG new file mode 100644 index 00000000..04c6c476 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_image014.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_introduction.PNG b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_introduction.PNG new file mode 100644 index 00000000..c8222404 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/GraphView/images/Graph_introduction.PNG differ diff --git a/Documentation/OnlineHelp/source/extensions/GraphView/images/Thumbs.db b/Documentation/OnlineHelp/source/extensions/GraphView/images/Thumbs.db new file mode 100644 index 00000000..5f9808ec Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/GraphView/images/Thumbs.db differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/Authors.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/Authors.rst new file mode 100644 index 00000000..b2ca86be --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/Authors.rst @@ -0,0 +1,7 @@ +.. index:: Authors + +List of Authors and Developers +============================== + +HydroModeler was developed at the University of South Carolina by Jon Goodall, Tony Castronova, Mostafa Elag, Mehmet Ercan, Benjamin Felton, and Shirani Fuller + \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/ChangingInputs.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/ChangingInputs.rst new file mode 100644 index 00000000..bc939381 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/ChangingInputs.rst @@ -0,0 +1,41 @@ +.. index:: ChangingModelInputs + +How to Change the Inputs for a Model Component +============================================== + +The config.xml file will defines key inputs for a modeling component. This section shows how to view and edit the config.xml file. + +1. To open the config.xml file, navigate to the modeling project folder using Windows Explorer. + +.. figure:: ./images/ChangingInputs/HM_fig1_m1.png + :align: center + +| + + +.. figure:: ./images/ChangingInputs/HM_fig2_m1.png + :align: center + +| + +2. Next navigate through the folders to the specific component you would like to edit. The figure below is for the Sediment_Diff model from example configuration 3, which is installed with HydroModeler. + +.. figure:: ./images/ChangingInputs/HM_fig3_m1.png + :align: center + +| + +3. Open this folder and config.xml file. + +.. figure:: ./images/ChangingInputs/HM_fig4_m1.png + :align: center + +| + +4. Open the file with a text editor (a free text editor called Notepad ++ is used in the figure below). + +.. figure:: ./images/ChangingInputs/HM_fig6_m1.png + :align: center + +| +5. This file includes input and output exchange items for the component, as well as other metadata defining the component. For example the time horizon information, which is near the bottom on the config.xml file, has a TimeStepInSeconds element that controls the time interval on which this particular component steps during a simulation. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/Concentration.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/Concentration.rst new file mode 100644 index 00000000..8a14fa06 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/Concentration.rst @@ -0,0 +1,41 @@ +.. index:: Concentration + + +.. role:: raw-latex(raw) + :format: latex html + +.. raw:: html + + + + +Concentration +============= + +These components were created to find the concentrations of a contaminant in soil and water at any given timestep. They were designed to model the concentration of a contaminant in a river or channel. + +Water Advection and Sediment Diffusion +-------------------------------------- + +These comonents were designed assuming a state where a water layer resides above a sediment column and, as a result, must work in tandem using a bidirectional link because of the shared boundary condition. Assuming a pollutant is introduced, we can model it's dilution based on the advection-diffusion equation. Advection describes the horizontal displacement of the contaminant, governed by the flow characteristics of the river, where as diffusion describes the infiltration of the conaminant to or from the soil bed, moving from areas of higher concentration to lower concentration. Assuming that the primary means of transportation are advection in the x direction and diffusion in the z direction, the equations for the concentration of the water and the concentration of the sediment column are derived from the advection-diffusion equation. Using these equations, we are able to estimate the concentration of pollutant, at any given time step, that is present in the water or in the soil. + + +The two components are derived from this equation. + +.. raw:: latex html + + \[\frac{\partial C}{\partial t} = D_x \frac{\partial^2C}{\partial x^2}+D_z \frac{\partial^2C}{\partial z^2} - u \frac{\partial C}{\partial x} - v \frac{\partial C}{\partial z}\] + + +The following equation was used to model the Water Advection Component. + +.. raw:: latex html + + \[\frac{\partial C_w}{\partial t} = D_{w,z} \frac{\partial^2C_w}{\partial z^2} - v \frac{\partial C_w}{\partial x}\] + + +The following equation was used to model the Sediment Diffusion Component. + +.. raw:: latex html + + \[\frac{\partial C_s}{\partial t} = D_{s,z} \frac{\partial^2C_s}{\partial z^2}\] \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/Evapotranspiration.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/Evapotranspiration.rst new file mode 100644 index 00000000..2121b8a5 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/Evapotranspiration.rst @@ -0,0 +1,71 @@ +.. index:: Evapotranspiration + + +.. role:: raw-latex(raw) + :format: latex html + +.. raw:: html + + + + +Evapotranspiration +================== + +Evapotranspiration is a hydrological process that describes the loss of surface water to the atmosphere by means of evaporation from soil and water bodies as well as transpiration from vegitation. + +Hargreaves +---------- + +The Hargreaves component is the simplest of the three methods used to compute evapotranspiration. This method requires only two inputs, temperature and solar radiation; both of which are easily obtainable sets of data. Although this method requires less initial information, it can be found to be as accurate as Penman Monteith and Preistly Taylor given that the model spans a larger time frame. + +This is the Hargreaves equation. + +.. raw:: latex html + + \[ET_0 = 0.0135(KT)(R_a)(\sqrt{TD})(TC+17.8)\] + +.. Note:: + + Where :raw-latex:`\((ET_0)\)` is the evapotranspiration, :raw-latex:`\((KT)\)` is the temperature reduction coefficient, :raw-latex:`\((R_a)\)` is the incoming extraterrestrial radiation, :raw-latex:`\((TD)\)` is the difference of the maximum and minimum daily temperatures, and :raw-latex:`\((TC)\)` is the average daily temperature. + + +Penman Monteith +--------------- + +Penman Monteith is an American Society of Civil Engineering (ASCE) recognized method for determining evapotranspiration. This component is designed off of a variation of the ASCE Penman Monteith approximation referred to as the standarized reference evapotranspiration. This component takes a number of variables into consideration, ranging from time series data, which includes temperature and windspeed, and geospatial data, which includes land cover and elevation, to evaporation from surfaces and vegitation. This component is primarily used for smaller scale models where input data is readily available. Net radiation, air temperature, humidy, wind speed and air pressure are some of the required known variables for Penman Monteith to compute the evapotranspiration. + +This is the Penman Monteith equation. + +.. raw:: latex html + + \[ET_{sz} = \frac{\frac{1}{\lambda\rho_w}\Delta(R_n-G)+\gamma\frac{C_n}{T+273}u_2(e_s-e_a)}{\Delta+\gamma(1+C_du_2)}\] + +.. Note:: + + Where :raw-latex:`\((ET_{sz})\)` is the standardized evapotranspiration, :raw-latex:`\((R_n)\)` is the net radiation, :raw-latex:`\((G)\)` is the soil heat flux, :raw-latex:`\((T)\)` is the daily average temperature, :raw-latex:`\((u_2)\)` is the daily average wind speed, :raw-latex:`\((e_s)\)` is the saturation vapor pressure, :raw-latex:`\((e_a)\)` is the mean actual vapor pressure, :raw-latex:`\((\Delta)\)` is the slope of the saturation vapor pressure - temperature curve, :raw-latex:`\((\gamma)\)` is the psychometric constant, :raw-latex:`\((C_n)\)` and :raw-latex:`\((C_d)\)` are constants based on crop reference type and simulation time step, :raw-latex:`\((\lambda)\)` is the latent heat of vaporization, and :raw-latex:`\((\rho_w)\)` is water density. + +Priestly Taylor +--------------- + +Priestly Taylor is a component that calculates evapotranspirtation similarly to Penman Monteith. However, this method requires less initial data and is therefore the more desirable technique when looking at a broader land span. Because energy balance has a greater effect on evapotranspiration on larger areas, the Penman Monteith equation can be reduced by the assumption that the aerodynamic properties are attributed to approximately 30% of the net radiation's influence on the total evapotranspiration. This assumption varies slighty when looking from one region to the next, but allows the user to effectively compute evapotranspiration with a minimal amount of required data. + +This is the combination method for computing evaporation that was developed by Penman. + +.. raw:: latex html + + \[E = \frac{\Delta}{\Delta+\gamma}E_r+\frac{\gamma}{\Delta+\gamma}E_a\] + +.. Note:: + + Where :raw-latex:`\((E)\)` is the weighted evaporation, :raw-latex:`\((\Delta)\)` is the gradient of the saturated vapor pressure curve, :raw-latex:`\((\gamma)\)` is the psychrometric constant, :raw-latex:`\((E_r)\)` is the evaporation rate determined from the net radiation, and :raw-latex:`\((E_a)\)` is the evaporation rate determined from the aerodynamic method. + +The following equation can be derived from the previous, using the aforementioned assumption. + +.. raw:: latex html + + \[E = \alpha\frac{\Delta}{\Delta+\gamma}E_r\] + +.. Note:: + + Where :raw-latex:`\((E)\)` is the weighted evaporation, :raw-latex:`\((\alpha)\)` is a constant held at 1.3, :raw-latex:`\((\Delta)\)` is the gradient of the saturated vapor pressure curve, :raw-latex:`\((\gamma)\)` is the psychrometric constant, and :raw-latex:`\((E_r)\)` is the evaporation rate determined from the net radiation. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/ExConfig1.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/ExConfig1.rst new file mode 100644 index 00000000..f59463c7 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/ExConfig1.rst @@ -0,0 +1,27 @@ +.. index:: ExConfig1 + +Example Configuration 1 - Smith Branch +====================================== + +.. figure:: ./images/ExampleConfig/HM_fig1.png + :align: center + + +The major purpose of this configuration is to find the streamflow at the Smith Branch watershed outlet using a given amount of rainfall. The rainfall is imported from the HIS database using the DbReader method. This data is then sent to the Curve Number Method, which can estimate the infiltration of water that occurs in the soil. This method uses existing conditions such as land use, soil type, and antecedent soil conditions to get an approximation for the excess rainfall. This newly calculated data is now sent to the Unit Hydrograph method. This method takes the new data and computes an estimated streamflow of an outlet for a specific subbasin. The streamflow for each of these outlets are then exported to the Muskingum Method so that a channel network can be applied to determine the streamflow to the watershed outlet. DbWriter will then store this information. + +The following equations are used in the estimation of excess rainfall using the Curved Numbers Method. The excess precipitation can be obtained using equation 1. Equation 2 is a conceptual model used to approximate the continuing abstraction. Equation 3 is an empirical formula for soil water storage. Equation 4 is an estimation of the initial abstraction using an empirically derived relationship. + +.. figure:: ./images/ExampleConfig/HM_fig2.png + :align: center + + +The following equations are used in the estimation of the streamflow for an outlet. Equation 1 is used to obtain the lag time. Equation 2 estimates the peak flow rate. Equation 3 defines the peak flow. Equation 4 uses the excess precipitation and instantaneous unit hydrograph to solve for the direct runoff hydrograph. + +.. figure:: ./images/ExampleConfig/HM_fig3.png + :align: center + + +The following equations are used in the estimation of the streamflow at the watershed outlet. In Equation 1, the total water storage in a channel is computed using wedge and prism volumes. The wedge volumes account for the back water or flood wave effects. The prism volumes account for the volume of the water residing in the cross sectional area of the channel. Equation 1 can be simplified to equation 2 by the assumption that the storage can be expressed as a function of the weighting factor and proportionality coefficient. + +.. figure:: ./images/ExampleConfig/HM_fig4.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/ExConfig2.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/ExConfig2.rst new file mode 100644 index 00000000..6ba0f289 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/ExConfig2.rst @@ -0,0 +1,22 @@ +.. index:: ExConfig2 + +Example Configuration 2 - Penman-Monteith +========================================= + +.. figure:: ./images/ExampleConfig/HM_fig5.png + :align: center + +The primary purpose of the Penman Monteith method is to calculate the loss of water from land surfaces due to evaporation. This method is designed off of the ASCE Penman Monteith approximation. This method is better at describing evapotranspirtation that other "open-water" evaporation equations because it considers transpiration as well as evaporation. We will be refering to the newer version of this model known as the standard reference evapotranspiration equation. Because net solar radiation and evapotranspiration are data that can be reused for other calculations, they have been seperated into a different components. + +The first equation is the ASCE standardized referencce evapotranspiration equation used to find the evapotranspiration. + +.. figure:: ./images/ExampleConfig/HM_fig6.png + :align: center + +The following equations show how the net solar radiation was calculated. The second equation is the main equation for the net radiation. Equation 3 is used to find the short wave radiation. Equation 4 is used to find the long wave radiation. Equation 5 is used to find the extraterrestrial radiation. Equation 6 is used to find the cloudiness factor. Equation 7 shows the relative solar radiation and can have values ranging from 0.3 to 1.0. + +.. figure:: ./images/ExampleConfig/HM_fig7.png + :align: center + +.. figure:: ./images/ExampleConfig/HM_fig8.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/ExConfig3.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/ExConfig3.rst new file mode 100644 index 00000000..3f7ef11e --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/ExConfig3.rst @@ -0,0 +1,37 @@ +.. index:: ExConfig3 + +Example Configuration 3 - Bidirectional Link +============================================ + +.. figure:: ./images/ExampleConfig/HM_fig9m.png + :align: center + +| + + +Example configuration 3's primary objective is to solve for the concentration of a contaminant in a river and its riverbed by simultaneously solving for both the soil and the water concentrations using a bidirectional link. To do this, the process is broken up into two seperate components. The two components are the water advection and sediment diffusion models. Advection is generally associated with the lateral movement of the contaminant and diffusion with the infiltration into the soil. The water advection model is comprised of movement in both the x and z direction. The sediment diffusion model is only concerned with contanimants moving in the z direction. A clearer representation of this is given in the image below. The flow velocity and diffusion coefficients are required to help use determine the level of contamination in the soil and water. + +.. figure:: ./images/ExampleConfig/HM_fig10m.png + :align: center + +| + + +These two components are both derived from the equation shown below. D represents the diffusion coefficients in the x and z directions. u represents the velocity in the x direction and v represents the velocity in the z direction. + +.. figure:: ./images/ExampleConfig/HM_fig11m.png + :align: center + +| + +To obtain the equation for the water advection component, we only concern ourselves with the x and z direction since we assume that the dominate means of contaminant transportation is advection in the x direction and diffusion in the z direction. + +.. figure:: ./images/ExampleConfig/HM_fig12m.png + :align: center + +| + +We use similar assumptions to help us derive the sediment diffusion component. Only concerned with the diffusion in the z direction, we can reduce the equation as follows. + +.. figure:: ./images/ExampleConfig/HM_fig13m.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/ExConfig4.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/ExConfig4.rst new file mode 100644 index 00000000..8d391dcb --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/ExConfig4.rst @@ -0,0 +1,14 @@ +.. index:: ExConfig4 + +Example Configuration 4 - TOPMODEL +================================== + +.. figure:: ./images/ExampleConfig/HM_fig14.png + :align: center + +This example configuration was created using the conservation of mass equation, which states that the inflow rate minus the outflow rate equals the rate of change in the storage, and Darcy's law, which can be used to calculate the water flow rate through soil. The TOPMODEL component is also dependent upon the Topographic Index(TI), which is derived from the analysis of the watershed topography by using Terrain Analysis Using Digital Elevation Models(TauDEM). + +Located below are the equations used to model the TOPMODEL component. The first equation determines the total flow rate. Equations 2 and 3 are used to determine the overland flow rate. Equation 4 determines the subsurface flow rate. + +.. figure:: ./images/ExampleConfig/HM_fig15.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/HydroModeler.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/HydroModeler.rst new file mode 100644 index 00000000..5e58f67a --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/HydroModeler.rst @@ -0,0 +1,84 @@ +.. index:: HydroModeler + +HydroModeler +============ + +This help system for HydroModeler provides a brief introduction to HydroModeler, documentation for various general help topics associated with using HydroModeler, tutorials for using and extending HydroModeler, an explanation of the sample configurations installed with HydroModeler, and a glossary of common terms used in association with HydroModeler. + + +Introduction +------------ + +HydroModeler is a HydroDesktop plugin that extends its capabilities to include component-based model development. HydroModeler is based on an open-source model editor provided by the OpenMI Association Technical Committee (OATC) Configuration Editor version 1.4. Its integration within the HydroDesktop environment provides the ability to both retrieve data from remote sources and to utilize this data in a model simulation. This help document includes tutorials that show how to run the installed example configurations and how to extend HydroModeler through the developement of new model components. + +HydroModeler adpots the Open Modeling Interface (OpenMI) standard for model coupling. This allows any OpenMI-compliant model to be used within the application. Tutorial 3 outlines how to create a new model component. It is also possible to follow the development strategy outlined in the OpenMI document series which can be found at http://openmi.com . The basic functionality of HydroModeler includes the ability to open and save model compositions, adding and removing components and connections, and executing a model composition. Output data can be written to the HydroDesktop database so that it can be viewed and edited using other HydroDesktop plug-ins (e.g., Graph View, Edit View, HydroR, etc.) + + +Help Topics +----------- + +.. toctree:: + :maxdepth: 2 + + OpeningOprFile + + LinkingModels + + RunningComposition + + ChangingInputs + + +Tutorials +--------- + +.. toctree:: + :maxdepth: 2 + + Tutorial01 + + Tutorial02 + + Tutorial03 + + +Example Configurations +---------------------- + +.. toctree:: + :maxdepth: 2 + + ExConfig1 + + ExConfig2 + + ExConfig3 + + ExConfig4 + + +Glossary +-------- + +.. toctree:: + :maxdepth: 2 + + config + + dll + + omi + + opr + + shp + + smw + +Authors and Developers +---------------------- + +.. toctree:: + :maxdepth: 2 + + Authors \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/Infiltration.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/Infiltration.rst new file mode 100644 index 00000000..12fb2a39 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/Infiltration.rst @@ -0,0 +1,75 @@ +.. index:: Infiltration + + +.. role:: raw-latex(raw) + :format: latex html + +.. raw:: html + + + + +Infiltration +============ + +Infiltration is the process of water penetrating through the surface and into the soil. The amount of infiltration that occurs is dictated by the characteristics of the soil, ranging from the porosity to the current moisture content, as well as surface covering, like vegitation. + +Green Ampt +---------- + +The component uses the Green and Ampt method to determine the amount of excess precipitation that has occured. Green Ampt does a better approximation of excess rainfall by incorporation more than just the amount of rainfall by including the intensity and the time frame that the rainfall occurs. This component also requires soil charateristics, such as the current moisture content and the moisure content at complete saturation. The Green and Ampt method uses a few contants such as the porosity, effective porosity, soil suction head and hydraulic conductivity, all of which have estimated values, for varying soil types, found by Rawls, Brakensiek and Miller. Because this method requires more initial data, the estimation of excess rainfall becomes a more accurate model than the Curve Number method. + +This is the Green Ampt equation. + +.. raw:: latex html + + \[F(t) = Kt+\psi\Delta\theta ln\left(1+\frac{F(t)}{\psi\Delta\theta}\right)\] + +.. Note:: + + Where :raw-latex:`\((K)\)` is the hydraulic conductivity, and :raw-latex:`\((\psi)\)` is the wetting front soil suction head. + +Curve Number Method +------------------- + +The purpose of this component is to compute the amount of excess precipitation that occurs based on the amount of water that infiltrates into the soil. This component is designed on a commonly used practice in hydrological engineering, which calculates the excess precipitation using continuing extraction and soil water storage as supporting data. Geospatial information, like the land cover and soil data obtained from the Enviromental Protection Agncy (EPA) and National Resources Conservation Service (NRCS), are used to model this method. Using this information allows for the calculation of curve numbers for each subbasin within the watershed. Because some data is not readily available, this component would be more advantageous to use than the Green Ampt. For example, if the moisture content of the soil is unknown, then the Curve Number component can approximate the excess rainfall based on assumed soil conditions. + +Excess precipitation can be obtained using the Curve Numbers equation. + +.. raw:: latex html + + \[P_e = P-I_a-F_a\] + +.. Note:: + + Where :raw-latex:`\((P_e)\)` is the excess precipitation, :raw-latex:`\((P)\)` is the precipitation, :raw-latex:`\((I_a)\)` is the initial abstraction, and :raw-latex:`\((F_a)\)` is the continuing abstraction. + +The following equation is a conceptual model used to approximate the continuing abstraction. + +.. raw:: latex html + + \[F_a = \frac{S(P-I_a)}{P-I_a+S}\] + +.. Note:: + + Where :raw-latex:`\((F_a)\)` is the continuing abstraction, :raw-latex:`\((S)\)` is soil water storage, :raw-latex:`\((P)\)` is the precipitation, and :raw-latex:`\((I_a)\)` is the initial abstraction. + +The following equation is an empirical formula for soil water storage. + +.. raw:: latex html + + \[S = \frac{1000}{CN}-10\] + +.. Note:: + + Where :raw-latex:`\((S)\)` is the soil water storage, and :raw-latex:`\((CN)\)` is the curve number parameter. + +The following equation is an estimation of the initial abstraction using an empirically derived relationship. + +.. raw:: latex html + + \[I_a = 0.2S\] + +.. Note:: + + Where :raw-latex:`\((I_a)\)` is the initial abstraction, and :raw-latex:`\((S)\)` is the soil water storage. diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/LinkingModels.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/LinkingModels.rst new file mode 100644 index 00000000..720dd06c --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/LinkingModels.rst @@ -0,0 +1,50 @@ +.. index:: LinkingModels + +How to Link Models into a Configuration +===================================== + +The purpose of linking the models together is to transfer data back and forth between models so that you are able to calculate the required data for your project. In this demonstration, we will be recreating example configuration 3. + +1. To link models together, we first need to place a few models within the HydroModeler plugin in HydroDesktop. Navigate to the model folder within example_configuration_03. Inside these folders you will find the Sediment_Diff and Water_adv .omi files. Add these to your project. + +.. figure:: ./images/LinkingModels/HM_fig1_m.png + :align: center + +2. Next, you will want to add a trigger. Locate the Composition panel of the ribbon toolbar and click Add Trigger. + +.. figure:: ./images/LinkingModels/HM_fig2_m.png + :align: center + +3. Now that our components have been place, we can begin to link them together. Find the Add Connection button located at the top in the main ribbon. First click your starting model and then click again on the model you wish for your link to end. + +.. figure:: ./images/LinkingModels/HM_fig3_m.png + :align: center + +4. For some intances, you may have a project that needs the link to work in both directions. You can repeat the above directions but switch the order in which you click the models. + +.. figure:: ./images/LinkingModels/HM_fig4_m.png + :align: center + +5. You may link as many models and in any direction as you wish but note that the trigger can only function as a terminal end to a link and only one model may be linked to it. + +.. figure:: ./images/LinkingModels/HM_fig5_m.png + :align: center + +6. Once the link has been made, you need to modify it to determine what information will be conveyed through the link. To do this, click the link to access the Connection Properties. + +.. figure:: ./images/LinkingModels/HM_fig6_m.png + :align: center + +7. You will see two boxes, one labeled Output Exchange Items and one labeled Input Exchange Items. Expand the desired input and output variables you would like for the model to utilize and select the appropriate location. The location can be found as a subset of a selected variable. + +.. figure:: ./images/LinkingModels/HM_fig7_m.png + :align: center + +8. Note that within the location branch, there are Element Mappers. These are built in functions to help you mediate your data if they do not overlay eachother. More than likely, you will not need to check anything here. To confirm that your data is appropriate, you may click the ElementSet button to display a visual representation of your data. + +9. Now click apply and notice that a link has been created in the links box. Different links can be created and stored in the links box and you can apply or delete them as you see fit. + +.. figure:: ./images/LinkingModels/HM_fig8_m.png + :align: center + +10. Your have created your link and you can exit the Connection Properties dialog box by clicking close. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/OpeningOprFile.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/OpeningOprFile.rst new file mode 100644 index 00000000..fa291bee --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/OpeningOprFile.rst @@ -0,0 +1,35 @@ +.. index:: OpeningOprFile + +How to Open an OpenMI Project File +================================== + +A simple model configuration can be created and executed using freely available model components provided by the HydroDesktop community. This section describes how to access the pre-developed model components built in to HydroModeler. If you have downloaded a stable release of HydroDesktop, a few preset example configurations will be available to you and displayed in the left hand box of the HydroModeler window. +Within each of these example configurations exist a "bin" folder, which contains all of the libraries needed to run the model, a "data" folder, which contains all of the necessary input files for each model component and a "models" folder, which contains files pertaining to each individual model components. + +1. Open Hydrodesktop and load the HydroModeler plug in. + +.. figure:: ./images/OpeningOprFile/HM_fig1mm.png + :align: center + +| + +2. If none of the example configurations are present in the left hand box, look to the top of the page and find an area labeled Current Directory. Click the button to the right of the text box and navigate to the following directory. + +**Program Files/CUAHSI HIS/HydroDesktop/Plugins/HydroModeler/hydromodeler_example_configuration** +*(Note that the exact location will vary slight, based on where you installed HydroDesktop)* + +.. figure:: ./images/OpeningOprFile/HM_fig2mm.png + :align: center + +| + + +3. Once the example configurations are displayed, you can navigate into the folders to find the .opr files for the preset configuration you are looking for. You can double click, click and drag, or click the Add Item button to display the configuration. + +.. figure:: ./images/OpeningOprFile/HM_fig3mm.png + :align: center + +| + + +4. After the configuration has been loaded, you are free to manipulate and run the configuration as you see fit. diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/Routing.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/Routing.rst new file mode 100644 index 00000000..e00f07e9 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/Routing.rst @@ -0,0 +1,40 @@ +.. index:: Routing + + +.. role:: raw-latex(raw) + :format: latex html + +.. raw:: html + + + + +Routing +======= + +Routing is the determination of the strength and time span of water flow using upstream points to help approximate these values. + +Muskingum Method +---------------- + +This component will transform flow data through a channel network at each subbasin to a watershed outlet. The method behind this component is derived from a variable discharge-storage relationship that is comprised of wedge and prism volumes. The wedge shape accounts for the wave effect caused in moving water, which is controlled by a weighing factor that ranges from 0 to 0.5, while the prism shape accounts for the water residing in the cross sectional area of the channel, which is weighted by proportionality constants, the time it takes a flood wave to move through the channel. By looking at these pieces we are able to determine the total storage of the channel. + +The following equation is used to obtain the total water storage in a channel. + +.. raw:: latex html + + \[S_{j+1}-S_j = \frac{I_j+I_{j+1}}{2}\Delta t-\frac{Q_j+Q_{j+1}}{2}\Delta t\] + +.. Note:: + + Where :raw-latex:`\((S)\)` is the total storage at times :raw-latex:`\(j\)` and :raw-latex:`\(j+1\)`, :raw-latex:`\((I)\)` is the inflow at times :raw-latex:`\(j\)` and :raw-latex:`\(j+1\)`, and :raw-latex:`\((Q)\)` is the outflow at times :raw-latex:`\(j\)` and :raw-latex:`\(j+1\)`. + +By assuming that the storage can be expressed as a function of the weighting factor and proportionality coefficient, the equation can be reduced as follows. + +.. raw:: latex html + + \[Q_{j+1} = C_1I_{j+1}+C_2I_j+C_3Q_j\] + +.. Note:: + + Where :raw-latex:`\((I)\)` is the inflow at times :raw-latex:`\(j\)` and :raw-latex:`\(j+1\)`, :raw-latex:`\((Q)\)` is the outflow at times :raw-latex:`\(j\)` and :raw-latex:`\(j+1\)`, and :raw-latex:`\((C_1)\)`, :raw-latex:`\((C_2)\)`, and :raw-latex:`\((C_3)\)` are functions of the weighing factor, proportionality coefficient, and the change in time. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/RunningComposition.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/RunningComposition.rst new file mode 100644 index 00000000..ebc88b37 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/RunningComposition.rst @@ -0,0 +1,43 @@ +.. index:: RunningComposition + +How to Run a Model Configuration +============================== + +This page will show you how to run your projects and extract the data that is calculated. + +1. Begin by loading your configuration into the Hydromodeler plug in. I will be using example configuration 2 in my images. + +.. figure:: ./images/RunningComposition/HM_fig1_mm.png + :align: center + +| + +2. Right click in the white space in the Hydrodesktop window and select run. A dialog box will appear. + +.. figure:: ./images/RunningComposition/HM_fig2_mm.png + :align: center + +| + +3. This box will allow you to select a variety of options to fine tune the output that will be displayed once you run the project. + +4. If you do not wish to save the output to your computer, skip to the next step. To log this information to a text document, you will need to click the box to the left of the log to file area of the previously mentioned box. Now click the button to the right and a window will appear prompting you to choose a file name and location for your text document. When you are finished here, click save to return to the Run Properties dialog box. + +.. figure:: ./images/RunningComposition/HM_fig3_mm.png + :align: center + +| + +5. When you finish altering the settings, click run on the Run Properties dialog box and another dialog box will appear. This box will contain all the log information that you directed HydroModeler to collect. + +.. figure:: ./images/RunningComposition/HM_fig4_mm.png + :align: center + +| + +6. After HydroModeler has finished running your project, you can click close to be promted to select whether you would like to keep the exsisting project or clear it from the HydroModeler screen. + +.. figure:: ./images/RunningComposition/HM_fig5_mm.png + :align: center + +7. If you created a log file, you can now navigate to the file and open it. It will contain all of the output that was displayed when you ran your project. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/Runoff.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/Runoff.rst new file mode 100644 index 00000000..28acfef9 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/Runoff.rst @@ -0,0 +1,134 @@ +.. index:: Runoff + + +.. role:: raw-latex(raw) + :format: latex html + +.. raw:: html + + + + + +Runoff +====== + +These components are designed to predict the tendencies and characteristics of surface water runoff. The watershed characteristics and upstream information help to determine the outcome of excess rainfall. + +2D Diffusive Wave +----------------- + +*component currently not working correctly* + +This component was created to estimate surface runoff. It is designed off of the Saint-Venant momentum equation, which uses multiple terms to predict surface runoff. Diffusive Wave ignores terms for the local and convective acceleration and only includes the pressure, gravity and friction forces. The pressue force is dependant of the water depth along the channel. The gravity force is dependant upon the slope of the channel bed. The frictional force is dependant on the friction slope. Kinematic wave is a simpler model, which does not include the pressure force term, where as dynamic wave considers all terms of the Saint-Venant momentum equation, including the local and convective acceleration. + +This is the Saint-Venant momentum equation. + +.. raw:: latex html + + \[\frac{\partial V}{\partial t} + V\frac{\partial V}{\partial x} + g\frac{\partial y}{\partial x}-g(S_0-S_f) = 0\] + +.. Note:: + + Where :raw-latex:`\(\frac{\partial V}{\partial t}\)` is the local acceleration term, :raw-latex:`\(V\frac{\partial V}{\partial x}\)` is the convective acceleration term, :raw-latex:`\(g\frac{\partial y}{\partial x}\)` is the pressure force term, :raw-latex:`\(gS_0\)` is the gravity force term, and :raw-latex:`\(gS_f\)` is the friction force term. + +This is the equation used for the 2D Diffusive Wave component after reducing the Saint-Venant momentum equation. + +.. raw:: latex html + + \[g\frac{\partial y}{\partial x}-g(S_0-S_f) = 0\] + +.. Note:: + + Where :raw-latex:`\(g\frac{\partial y}{\partial x}\)` is the pressure force term, :raw-latex:`\(gS_0\)` is the gravity force term, and :raw-latex:`\(gS_f\)` is the friction force term. + + +Unit Hydrograph +--------------- + +This component was designed to approximate the watershed response to excess rainfall. It is based off of the synthetic Soil Conservation Service (SCS) Unitless Hydrograph. Using excess precipitation as inputs, this method can determine the streamflow at an outlet to a subbasin. This component also uses the time of peak flow, the peak flow rate and the subbasin lag time as supporting data. By using this data, the component can build a unit hydrograph that represents one inch of uniform runoff from a watershed in a set amount of time. This unit hydrograph is then used to approximate the total runoff values. + +This is the Unit Hydrograph equation, which solves for the direct runoff hydrograph using excess precipitation and the instantaneous unit hydrograph. + +.. raw:: latex html + + \[Q_n = \sum_{m=1}^{n\le M}P_{e,m}U_{n-m+1}\] + +.. Note:: + + Where :raw-latex:`\((Q_n)\)` is the direct runoff hydrograph, :raw-latex:`\((P_{e,m})\)` is the excess precipitation at time :raw-latex:`\(m\)`, and :raw-latex:`\((U_{n-m+1})\)` is the unit hydrograph ordinate at current index :raw-latex:`\(n-m+1\)`. + +The lag time is obtained using this equation. + +.. raw:: latex html + + \[t_p = 0.6t_c\] + +.. Note:: + + Where :raw-latex:`\((t_p)\)` is the lag time, and :raw-latex:`\((t_c)\)` is the time of concentration. + +The peak flow rate is estimated using this equation. + + +.. raw:: latex html + + \[q_p = \frac{483.4A}{T_p}\] + +.. Note:: + + Where :raw-latex:`\((q_p)\)` is the peak flow rate, :raw-latex:`\((A)\)` is the watershed area, and :raw-latex:`\((T_p)\)` is the peak flow. + +The peak flow is determined using this equation. + +.. raw:: latex html + + \[T_p = \frac{t_r}{2}+t_p\] + +.. Note:: + + Where :raw-latex:`\((T_p)\)` is the peak flow, :raw-latex:`\((t_r)\)` is the rainfall duration, and :raw-latex:`\((t_p)\)` is the lag time. + +TOPMODEL +-------- + +This component is design around the concept that the topography can determine flow routing through upland catchments. The component relies on the conservation of mass equation, to deteremine the inflow, outflow and change in storage, as well as Darcy's law, to determine the water flow rate through soil. The Topographic Intdex (TI) is used to determine the index of hydrological similarity so that TOPMODEL can predict the hydrological responses. From a Digital Elevation Model (DEM), tools referred to as Terrain Analysis Using Digital Elevation Models (TauDEM), are used to obtain hydrological information. From here, we are able to analyse the watershed topography to derive an appropriate TI. + +The following equation is used to determine the total flow rate. + +.. raw:: latex html + + \[q_{total} = q_{subsurface}+q_{overland}\] + +.. Note:: + + Where :raw-latex:`\((q_{total})\)` is the total flow rate, :raw-latex:`\((q_{subsurface})\)` is the subsurface flow rate, and :raw-latex:`\((q_{overland})\)` is the flow rate from the saturated contributing area. + + +The 2 following equations are used to deteremine the overland flow rate. + +.. raw:: latex html + + \[q_{overland} = \frac{A_{sat}}{A}\times P+q_{return}\] + +.. Note:: + + Where :raw-latex:`\((q_{overland})\)` is the flow rate from the saturated contributing area, :raw-latex:`\((A_{sat})\)` is the saturated area, :raw-latex:`\((P)\)` is the precipitation, and :raw-latex:`\((q_{return})\)` is the return flow. + +.. raw:: latex html + + \[q_{overland} = T_{max}\times e^{-\frac{s}{m}}\times\tan\beta\] + +.. Note:: + + Where :raw-latex:`\((q_{overland})\)` is the flow rate from the saturated contributing area, :raw-latex:`\((T_{max})\)` is the average transmissivity of saturated soil, :raw-latex:`\((s)\)` is the saturation deficit, :raw-latex:`\((m)\)` is the soil parameter, and :raw-latex:`\((\beta)\)` is the local slope. + +The following equation is used to determine the subsurface flow rate. + +.. raw:: latex html + + \[q_{subsurface} = T_{max}\times e^{-\lambda}\times e^{-\frac{s_{average}}{m}}\] + +.. Note:: + + Where :raw-latex:`\((q_{subsurface})\)` is the subsurface flow rate, :raw-latex:`\((T_{max})\)` is the average transmissivity of saturated soil, :raw-latex:`\((\lambda)\)` is the average topographic index, :raw-latex:`\((s_{average})\)` is the average saturation deficit, and :raw-latex:`\((m)\)` is the soil parameter. diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/Solar Radiation.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/Solar Radiation.rst new file mode 100644 index 00000000..671da9a4 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/Solar Radiation.rst @@ -0,0 +1,80 @@ +.. index:: Solar Radiation + + +.. role:: raw-latex(raw) + :format: latex html + +.. raw:: html + + + + +Solar Radiation +=============== + +This component is used to determine the amount of solar radiation that is present at Earth's surface. Radiation can either be absorbed or deflected. A surfaced ability to deflect radiation is described by the albedo, and this can vary based on the type of surface that is present. For example, snow will have a different albedo than vegitation. + +Net Solar Radiation +------------------- + +This component is design to compute the total amount of solar radiation. The net radiation is the total of short and long wave radiation. The short wave radiation is determined by the canopy reflection coefficient and the incoming solar radiation. For this component, the canopy coefficient will be assumed to be a constant value of 0.23 because the variables that characterize the canopy coefficient, such as the time of day, angle of exposure and surface vegetation, vary only slighty. The long wave radiation is determined using standarized equations for long wave radiation, cloudiness factor and relative solar radiation. + +This is the net solar radiation equation. + +.. raw:: latex html + + \[R_n = S_n + L_n\] + +.. Note:: + + Where :raw-latex:`\((R_n)\)` is the net radiation, :raw-latex:`\((S_n)\)` is the short wave radiation, and :raw-latex:`\((L_n)\)` is the long wave radiation. + +The following equation is used to determine the short wave radiation. + +.. raw:: latex html + + \[S_n = (1-\alpha)R_s\] + +.. Note:: + + Where :raw-latex:`\((S_n)\)` is the short wave radiation, :raw-latex:`\((\alpha)\)` is the canopy coefficient held constant at 0.23, and :raw-latex:`\((R_s)\)` is the incoming solar radiation. + +The following equation is used to determine the long wave radiation. + +.. raw:: latex html + + \[R_s = T_fR_a\] + +.. Note:: + + Where :raw-latex:`\((R_s)\)` is the incoming solar radiation, :raw-latex:`\((T_f)\)` is the atmospheric transmittance, and :raw-latex:`\((R_a)\)` is the extraterrestrial radiation. + +The following equation is used to find the extraterrestrial radation. + +.. raw:: latex html + + \[L_n = \frac{-c_f\sigma(0.34-0.14\sqrt{e_a})(T_{kmax}^4+T_{kmin}^4)}{2}\] + +.. Note:: + + Where :raw-latex:`\((L_n)\)` is the long wave radiation, :raw-latex:`\((c_f)\)` is the cloudiness factor, :raw-latex:`\((\sigma)\)` is the Stefan-Boltzmann constant, :raw-latex:`\((T_{kmax})\)` is the maximum temperature, and :raw-latex:`\((T_{kmin})\)` is the minimum temperature. + +The following equation is used to find the cloudiness factor. + +.. raw:: latex html + + \[c_f = 1.35\frac{R_s}{R_{s0}}-0.35\] + +.. Note:: + + Where :raw-latex:`\((c_f)\)` is the cloudiness factor, :raw-latex:`\((R_s)\)` is the incoming solar radiation, and :raw-latex:`\((R_{s0})\)` is the clear sky radiation. + +The following equation is used to determine the relative solar radiation and can have values that range from 0.3 to 1.0. + +.. raw:: latex html + + \[\frac{R_s}{R_{s0}} = \frac{T_f}{0.75+2\times10^{-5}z}\] + +.. Note:: + + Where :raw-latex:`\((R_s)\)` is the incoming solar radiation, :raw-latex:`\((R_{s0})\)` is the clear sky radiation, and :raw-latex:`\((T_f)\)` is the atmospheric transmittance. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/Tools.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/Tools.rst new file mode 100644 index 00000000..b63734b2 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/Tools.rst @@ -0,0 +1,36 @@ +.. index:: Tools + +Tools +===== + +These components are designed by the HydroModeler development team to assist in building and running user defined configurations. + +Db Reader +--------- + +Db Reader is a tool to help users extract data from HydroDesktop database and provide this data to the model simulation. Because not all data will follow the same conformity, Db Reader will gather the required information and format it to a usable type, an OpenMI Exchange Item. Db Reader gathers this information in two steps. It extracts all available information to be potentially utilized from the database. Then, Db Reader analyzes the data's time series information so that duplicate or reduntant data is not loaded. This helps to reduce the amount of resources used by your computer. Db Reader is seperated into three methods; Initialize, On Add Link, and Get Values. Initialize extracts the data from the HydroDesktop database and also pulls the data characteristics such as the name, description and ID. On Add Link will run once Db Reader has been linked to another component and will gather the specific data series required and store them to a buffer (Oatc.SmartBuffer). Get Values will find the required data buffer and filter the results to include only those in the desire time range and return these values. If the data series is too sparse or the output and input data do not align properly, Db Reader will interpolate to create a more appropriate data series. + +Db Writer +--------- + +Db Writer is a tool to help users save computed, simulation data to the HydroDesktop database. This allows users to manipulate the data, using other plug-ins present in HydroDesktop, to view, edit, and manage the simulation data. This tool is comprised of four methods; Initialize, Add Link, Data Changed and Finish. Initialize will create generic output exchange items that will be detailed after the model simulation has run. Add Link will set up Db Writer to grab data from a component immediately after it has been computed after one simulated time step. Db will also set up a data model that will include variable parameters like time unit, variable unit, measurement method and measurment source. Data Changed operates when a data transfer occurs. When this does occur, data is obtained from the preceeding component and added to its respective data series contained within the data model. The data model is only kept in memory during the duration of the simulation to alleviate the demand on computer resources as well as save computational time. Finish will take the data model and either create a new instance for the data or ammend it to a pre existing series of data within the HydroDesktop database. + +Hydro Link +---------- + +*obsolete component* + +Load Calculator +--------------- + +to come... + +wtmp Reader +----------- + +*obsolete component* + +Random Input Generator +---------------------- + +to come... \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/Tutorial01.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/Tutorial01.rst new file mode 100644 index 00000000..9ed91a15 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/Tutorial01.rst @@ -0,0 +1,133 @@ +.. index:: Tutorial01 + +Tutorial 1: Quick Start +======================= + +The quick start tutorial will familiarize you with the HydroModeler interface as we as teach you how to open a pre-existing project. + +Starting HydroModeler +--------------------- + +1. Begin by going to the start menu and, from program, choose the CUAHSI HIS, then press the HydroDesktop icon. Click ok on the initial dialog box. + +.. figure:: ./images/Tutorial01/HM_fig1_m2.png + :align: center +. + +This will start HydroDesktop (shown below), which consists of the map and the map layers box. With the map layers box, you are able to enable or disable a range of options that display simple base data (countries of the world, U.S states, major rivers and lakes, watersheds) to the map. The other parts are the Graph View and Table view menu. + +.. figure:: ./images/Tutorial01/HM_fig2_m2.png + :align: center +. + +2. Load the HydroModeler plugin by selecting the icon in the upper left corner of the screen - Extensions - HydroModeler. + +.. figure:: ./images/Tutorial01/HM_fig3_m2.png + :align: center +. + +A new tab will appear in HydroDesktop. This is the HydroModeler plug-in's user interface. + +.. figure:: ./images/Tutorial01/HM_fig4_m2.png + :align: center +. + +HydroModeler Plugin +------------------- + +HydroModeler is a plugin application that extends the core HydroDesktop application to support hydrologic modeling. HydroModeler makes use of the OpenMI standard to provide a "plug and play" framework. By adopting the OpenMI standard HydroModeler is able to focus on the specific task of running integrated modeling configurations. + +There are a number of tools located in the ribbon that will help you organize, navigate and create your project files. + +.. figure:: ./images/Tutorial01/HM_fig5_m2.png + :align: center +. + ++ *Open.* This button will allow you to open any projects you may have created or downloaded by using the windows browser to navigate to the files location. ++ *Save.* This button will allow you to save any projects currently open in the HydroModeler interface. If an instance of the project has already been saved and you are continuing to edit it, this button will allow you to quickly resave the file under the same name and location. ++ *Save As.* This button will also allow you to save you projects, however, it will always create a new save for your project without overridding the original, unless you select the exact same name and location. ++ *Add Component.* This button lets you add .omi files, also known as components, to the HydroModeler interface. These components will be methods you can use to extract the data you need by setting up projects. ++ *Add Trigger.* This button will finalize your project and be a terminal spot for the calculations done by your components. ++ *Add Connection.* This button will link two components together and dictate what information is transfered between them. ++ *Run.* This button will run your projects and output the desired data. ++ *Clear Composition.* This button will clear all components, links and triggers present in the HydroModeler interface. ++ *Current Directory.* This button will allow you to choose the folder that is displayed in the left hand side of the HydroModeler interface. This folder will contain all of your components and/or project files. ++ *Help.* This button will access the HydroDesktop help files, where you can find more information about the program as well as tutorials like the one you are reading now. ++ *View.* This button allows you to pan through the visual depiction of your project. + + +Open an Existing Model +---------------------- + +A simple model configuration can be created and executed using freely available model components, provided by the HydroDesktop community. This section describes how to utilize pre-developed model components to recreate a model simulation. + +1. In the window to the left you should see the folders within the HydroModeler example configuration folder. Double click on example_configuration_4. The HydroModeler window should now look like this: + +.. figure:: ./images/Tutorial01/HM_fig6_m2.png + :align: center +. + +.. NOTE:: + At the top of the page there is an area labeled Current Directory. You can change the current directory to any path on the computer using this textbox. By default, the current directory will already be set to the pre-existing example configurations that come with the HydroModeler plug in. If none of the example configurations are present in the left hand box, look to the top of the page and find the area labeled Current Directory. Click the button to the right of the text box and navigate to the following directory. C:/Program Files/CUAHSI HIS/HydroDesktop/Plugins/HydroModeler/hydromodeler_example_configuration. Note that the exact location will vary slight, based on where you installed HydroDesktop. +. + +2. Double-click the OpenMI Pproject file (*.opr) to add it to your HydroModeler canvas. + +.. figure:: ./images/Tutorial01/HM_fig7_m2.png + :align: center +. + +3. Press the Run button from the user interface and the Run Properties box will appear. + +.. figure:: ./images/Tutorial01/HM_fig8_m2.png + :align: center +. + +4. For now, just click Run and HydroModeler will output data to your screen. + +.. figure:: ./images/Tutorial01/HM_fig9_m2.png + :align: center +. + +5. Once the simulation has finished running, you can click close and decide wether you would like to keep the open composition (by selecting Yes) or clear HydroModeler (by selecting No). Click No. + +.. figure:: ./images/Tutorial01/HM_fig10_m2.png + :align: center + + +Accessing the output data +------------------------- + +Now that you have run your composition, the data calculated will be stored to your computer in a specific location. + +1. For this tutorial, that data can be located in *C:/Hydrodesktop/Installer/HydroModeler_example_configurations/example_configuration_04/Data/cuahsi-his* + + +2. Click on the Table tab located in HydroDesktop and then click Change in the Database section located in the ribbon. + +.. figure:: ./images/Tutorial01/HM_fig11_m2.png + :align: center +. + +3. From here, you can navigate to the aforementioned location and find the example4.sqlite file. Click Open and then Ok to display your data series. Information will appear in the left hand box. + +.. figure:: ./images/Tutorial01/HM_fig12_m2.png + :align: center +. + +4. To show greater detail on the data, check the box next to the desired data series. Check Precipitation. + +.. figure:: ./images/Tutorial01/HM_fig13_m2.png + :align: center +. + +5. To export this data to an external program, click Export within the Table tab. A dialog box appears allowing you to choose what data to export, the notation used to seperate the data, and the name and location of the output file. When you are finished, click Ok and a text file will be created in the location you chose. + +.. figure:: ./images/Tutorial01/HM_fig14_m2.png + :align: center +. + +6. This data can also be manipulated in the Graph tab to present you with a visual representation of the data series, as shown in the image below. This is explained further in tutorial 2. + +.. figure:: ./images/Tutorial01/HM_fig15_m2.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/Tutorial02.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/Tutorial02.rst new file mode 100644 index 00000000..6f5f6ca2 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/Tutorial02.rst @@ -0,0 +1,263 @@ +.. index:: Tutorial02 + +Tutorial 2: Creating and Running a Model Configuration +====================================================== +The purpose of this tutorial is to show how to create a model configuration by linking components in HydroModeler, and then how to execute it and view model output. In short, the goal of this tutorial is to create the project in example configuration 4: watershed runoff calculation using TOPMODEL. + +Overview +-------- +In this exercise we are interested in calculating the streamflow at the outlet of a watershed using a TOPMODEL component coupled to a Evapotranspiration component. We will be simulating watershed number 18 in the Coweeta Hydrologic Laboratory located near Asheville, NC. The TOPMODEL component requires an ASCII raster file of topographic index for every pixel in the watershed, model parameters (m, Tmax, R, and canopy interception), and two input exchange items (precipitation and evapotranspiration). Input precipitation was obtained using the HydroDesktop search mechanism, and stored in a local database file. Daily potential evapotranspiration rate is calculated and delivered by a Hargreaves model component. The Hargreaves component is also linked to the HydroDesktop database to obtain three input exchange items (maximum, minimum, and average daily temperatures). Then, the TOPMODEL component is connected to a trigger which initiates the model run, and to the DbWriter component to store the output streamflow values back into the HydroDesktop database. Finally, the stored streamflow is plotted using the HydroDesktop Graph View plugin and compared to observed streamflow values. + +Creating the Configuration +-------------------------- + +1. Open the start menu, choose Program -- CUAHSI HIS -- HydroDesktop. + +| + +.. figure:: ./images/Tutorial02/Hydrodesktop_start.png + :align: center + +| + +.. NOTE:: + You can check that you have the latest version of HydroDesktop by comparing the version number of the CUAHSI Hydro Desktop you have and the latest available on http://hydrodesktop.codeplex.com. This tutorial was written using HydroDesktop version 1.2537.0. + +| + +2. Choose Create New Empty Project button. + +| + +.. figure:: ./images/Tutorial02/newproject.png + :align: center + +| + +3. Load the HydroModeler plugin by selecting the Orb icon in the upper left corner of the screen - Extensions - HydroModeler. + +| + +.. figure:: ./images/Tutorial02/extensions.png + :align: center + +| + +4. Set the current directory, using the ribbon toolbar "Current Directory" textbox, to *C:/Hydrodesktop/Installer/HydroModeler_example_configurations/example_configuration_04/models/TOPMODEL*. + +| + +.. figure:: ./images/Tutorial02/CurrentDirectory.png + :align: center +| + +5. To view Coweeta watershed # 18, click on the Home tab, use the add button, and navigate to *[path to Hydrodesktop]/HydroModeler_example_configurations/example_configuration_04/data/gis*. Load the following shapefiles of CoweetaWatershed.shp, streams.shp, climateStation.shp, and coweeta18.shp. + +| + +.. NOTE:: + If prompted to reproject this data, choose "Yes". + +| + + +.. figure:: ./images/Tutorial02/coweeta.png + :align: center + +| + +6. Return to the HydroModelrer tab and click once on TopModel.omi to populate its attributes in the properties window. Make sure that the "Assembly" and "Class" properties are correct. Next, check that the correct paths are given for inputs "TI" and "ConfigFile". + +| + +.. figure:: ./images/Tutorial02/TopModel.omi.png + :align: center + +| + +7. Follow the same procedures to be sure that the Hargreaves, DbReader, and Dbwriter omi files are setup correctly. + +| + +8. Now that all model inputs have been verified, we can begin to construct the model configuration. To add a model, click the "Add Component" button on the ribbon toolbar. + +| + +.. figure:: ./images/Tutorial02/ModelAdding.png + :align: center + +| + +9. Navigate to *C:/Hydrodesktop/Installer/HydroModeler_example_configurations/example_configuration_04/models* and add both models (TOPMODEL and Hargreaves),and add the DbReader and DbWriter components from *C:/Hydrodesktop/Installer/HydroModeler_example_configurations/example_configuration_04/Data/cuahsi-his*. Now all the models should be added to the HydroModeler workspace. Finally, click the "Add Trigger" button on the ribbon toolbar to add a trigger component to the configuration. + +| + +.. figure:: ./images/Tutorial02/Component.png + :align: center + +| + +10. Connections must be added between components to define how data will flow during model simualation. To add a connection, click the "Add Connection" button on the ribbon toolbar. Next, click on the DbReader to assign it as the source component and then click on the Hargreaves to assign it as the target component. + +| + +11. Click on the link arrow to view the connection properties between the DbReader and Hargreaves components. Expand the Temperature output exchange item of the Dbreader to view the available data series. Select "Coweeta Max Temperature" as the output exchange item and "Max Temp" as the input exchange item, then press apply to activate the link. Repeat this with the "Minimum Temperature" and "Temperature" items as well. + +| + +.. figure:: ./images/Tutorial02/Dbconnection.png + :align: center +| + +12. Add a connection between the DbReader to the TOPMODEL components. This will serve to supply input precipitation for the Coweeta watershed to the TOPMODEL component. Choose DbReader as a source and TopModel as a target component. + +| + +.. figure:: ./images/Tutorial02/DbTopmodel.png + :align: center + +| + +13. Connect the Hargreaves PET as a source component to supply the calculated PET values to the TOPMODEL component. + +| + +.. figure:: ./images/Tutorial02/hargreaves-TopModel.png + :align: center + +| + +14. Create a connection between the TOPMODEL and DbWriter components. This will used to save TOPMODEL output to the HydroDesktop database. + +| + +.. figure:: ./images/Tutorial02/DbWriter-TopModel.png + :align: center + +| + +15. Finally, create a connection between the TOPMODEL and the Trigger. + +| + +.. figure:: ./images/Tutorial02/TopModel-Trigger.png + :align: center + +| + +Running the Configuration +----------------------- + +| + +1. From the ribbon toolbar, select the "Run" button. + +| + +.. figure:: ./images/Tutorial02/run.png + :align: center + +| + +2. Turn on all simulation event notifications by selecting the "Set all" button. Then choose a simulation end time, or click "Latest overlapping" to let HydroModeler determine the simulation end time. Finally, click "RUN!!". + +| + +.. figure:: ./images/Tutorial02/runsetup.png + :align: center +| + +3. Simulation running. + +| + +.. figure:: ./images/Tutorial02/duringruning.png + :align: center +| + +4. Simulation finish succesfully. + +| + +.. figure:: ./images/Tutorial02/finishsuccess.png + :align: center + +| + +Viewing Model Output +-------------------- + +| + +1. Switch to the Table ribbon tab. + +| + +.. figure:: ./images/Tutorial02/graphview.png\ + :align: center + +| + +2. Next, we need to tell HydroDesktop to look at the database containing our simulation output. To do this, click the "Change" database ribbon button. Navigate to *C:/Hydrodesktop/Installer/HydroModeler_example_configurations/example_configuration_04/Data/cuahsi-his* and select OK. + +| + +.. figure:: ./images/Tutorial02/changedb.png + :align: center + +| + +3. You will now see all available data series. + +| + +.. figure:: ./images/Tutorial02/Table2.png + :align: center + +| + +5. Switch to the *Graph* tab to plot the results. + +| + +.. figure:: ./images/Tutorial02/graph.png + :align: center + +| + +6. Load the measured and calculated runoff data series for the Coweeta watershed, *Flume at watershed 18*. We can now compare our calculated streamflow with known observation. + +| + +.. figure:: ./images/Tutorial02/graph2.png + :align: center + +| + +7. To get a better view of how well our calculation matches the known observations, zoom into the simulation period by drawing a box around the data series using the mouse. + +| + +.. figure:: ./images/Tutorial02/graph4.png + :align: center + +| + +.. NOTE:: + After comparing the results, we can return back to the HydroModeler tab and change model parameters and then re-run the simulation to produce a better fit between calulated and observed streamflow. + +| + +9. Next, uncheck the streamflow data series and instead select precipitation to show the input precipitation data series. This can also be done with the temperature data series. + + +.. figure:: ./images/Tutorial02/graph5.png + :align: center +. + +10. To utilize our calculation outside of HydroDesktop, we can export it using the "Export" ribbon button located on the Table tab. + +.. figure:: ./images/Tutorial02/export.png + :align: center + + diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/Tutorial03.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/Tutorial03.rst new file mode 100644 index 00000000..46b9e1ab --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/Tutorial03.rst @@ -0,0 +1,524 @@ +.. index:: Tutorial03 + +Tutorial 3: Creating a New Model Component +========================================== + +The purpose of this tutorial is to show how to create a new component for HydroModeler using the Simple Model Wrapper (SMW) approach. The focus will be on creating the Hargreaves component that is used in Tutorial 2 to calculate potential evapotranspiration. We will be using the C# programming language in this demonstration. Hargreaves is a simple potential evapotranspiration model that requires only geographic location and air temperature (daily minimum, maximum, and average) as input. + +.. Note:: + We assume that you have some knowledge of programming using C#. For background information on programming with C#, we recommend Microsoft's Development Network: http://msdn.microsoft.com/en-us/beginner/bb308734.aspx. + +.. Note:: + In this tutorial, we show how to create the component from scratch. There is, however, a sample component template is available in the HydroDesktop source code that may be useful if you are creating your own components. The sample component is available at *[Path to HydroDesktop Source]\Source\Plugins\HydroModeler\Components\SampleComponent*. + +Installing Visual Studio +------------------------ + +.. Note:: + Perform these steps only if you do not already have Microsoft Visual Studio 2010 installed on your computer. + +1. Download Microsoft Visual C# 2010 for free from http://www.microsoft.com/express/Downloads/ + +2. Choose the tab Visual Studio 2010 Express. Then select Visual C# 2010 Express Edition. Click Download and follow instructions to install. + +.. figure:: ./images/Tutorial03/HM_fig44.png + :align: center + +| + +Downloading HydroDesktop Source Code +------------------------------------ + +1. You can download the HydroDesktop source code either using the source control management system (Hg) or by going to *http://hydrodesktop.codeplex.com/SourceControl/list/changesets* and downloading the latest revision of the source control. + +Create Hargreaves component using Microsoft Visual C# +----------------------------------------------------- + +1. Start Microsoft Visual Studio 2010. + +2. Create a new C# class library project. Name the project "Hargreaves" and save it in your working directory. + +.. figure:: ./images/Tutorial03/class.png + :align: center + +| + +3. Add two new folders (source and data) by right clicking on the project name and selecting Add --> New Folder. Next, copy the default class "class1.cs" into the source folder and rename it Hargreaves.cs. + +.. figure:: ./images/Tutorial03/folders.png + :align: center + +| + +Adding References +''''''''''''''''' + +1. You can view the references that currently exist in the project by expanding the "Reference" item listed in the Solution Explorer window (located on the upper right side of the page). Currently, this project only contains the default references. We need to add several additional references. To do this, right click on "References" in the Solution Explorer and select "Add New Reference". + +.. figure:: ./images/Tutorial03/ref.png + :align: center + +| + +2. Browse to *[Path to HydroDesktop Source Code]/Binaries/Plugins/HydroModeler/*. Add the following dll's: + + - Oatc.OpenMI.Sdk.Backbone.dll + - Oatc.OpenMI.Sdk.Buffer.dll + - Oatc.OpenMI.Sdk.DevelopmentSupport.dll + - Oatc.OpenMI.Sdk.Wrapper.dll + - OpenMI.Standard.dll) + +3. Right click on "References" in the solution explorer again and browse to *[Path to HydroDesktop]/Binaries/Plugins/HydroModeler/example_configuration/bin*. Add the following dll: + - SMW.dll. + +.. figure:: ./images/Tutorial03/referencesstructure.png + :align: center + +| + +Create the Linkable Component Class +''''''''''''''''''''''''''''''''''' + +1. Right-click on the "source" folder in the Solution Explorer and select Add --> Class. Rename the class LinkableComponent.cs. + +.. figure:: ./images/Tutorial03/linkablecomponent.png + :align: center + +| + +2. Add the following line of code so that the LinkableComponent class inherits from the Oatc.OpenMI.Sdk.Wrapper.LinkableEngine abstract class. + +.. code-block:: c# + + class SampleLinkableComponent : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + +| + + +Creating the Hargreaves Component using SMW +''''''''''''''''''''''''''''''''''''''''''' + +1. Include the following using statements to the top of the Hargreaves.cs file. + +.. code-block:: c# + + using Oatc.OpenMI.Sdk.Backbone; + using Oatc.OpenMI.Sdk.Buffer; + using Oatc.OpenMI.Sdk.DevelopmentSupport; + using Oatc.OpenMI.Sdk.Wrapper; + using SMW; + +| + +2. Make the class inherit from SMW.Wrapper. + +.. code-block:: c# + + public class Engine : SMW.Wrapper + + +3. Define the global variables for the class using the following lines of code. + +.. code-block:: c# + + namespace Hargreaves + { + public class Engine : SMW.Wrapper + { + public string[] input_quantity; + public string output_quantity; + public string[] input_elementset; + public string output_elementset; + Dictionary _output = new Dictionary(); + string output_path = "./hargreaves_output.txt"; + +| + +4. Define what the component should do when a model is loaded into HydroModeler by implementing the *Initialize* method. In the code below, the component will read input data from the configuration file and create input and output exchange items from the information included in the configuration file. + +.. code-block:: c# + + public override void Initialize(System.Collections.Hashtable properties) + { + //---- get configuration data + string config = null; + if (properties.ContainsKey("ConfigFile")) + config = properties["ConfigFile"].ToString(); + else + throw new Exception("A configuration file must be supplied for the Hargreaves component!!!"); + + if (properties.ContainsKey("Output")) + output_path = properties["Output"].ToString(); + + //---- set smw parameters + this.SetVariablesFromConfigFile(config); + this.SetValuesTableFields(); + + //---- get exchange item attributes + //-- input exchange items + int num_inputs = this.GetInputExchangeItemCount(); + input_elementset = new string[num_inputs]; + input_quantity = new string[num_inputs]; + for(int i=0; i<= num_inputs-1; i++) + { + InputExchangeItem input = this.GetInputExchangeItem(i); + input_elementset[i] = input.ElementSet.ID; + input_quantity[i] = input.Quantity.ID; + } + + //-- output exchange items + int num_outputs = this.GetOutputExchangeItemCount(); + OutputExchangeItem output = this.GetOutputExchangeItem(num_outputs - 1); + output_elementset = output.ElementSet.ID; + output_quantity = output.Quantity.ID; + } + +| + + +5. Define what the component should do when a model is for each iteration of the model run by implementing the *PerformTimeStep* method. In the code below, the component will get input data from other components and then using the data to calculate PET for that time step. Finally, it will set the PET values for other components to read. + +.. code-block:: c# + + public override bool PerformTimeStep() + { + //---- get input data + //-- temp + double[] temp = ((ScalarSet)this.GetValues(input_quantity[0], input_elementset[0])).data; + //-- max temp + double[] maxtemp = ((ScalarSet)this.GetValues(input_quantity[1], input_elementset[1])).data; + //-- min temp + double[] mintemp = ((ScalarSet)this.GetValues(input_quantity[2], input_elementset[2])).data; + + //---- calculate PET for each element + //-- get the number of elements (assuming that they're all the same) + int elemcount = this.GetInputExchangeItem(0).ElementSet.ElementCount; + double[] pet = new double[elemcount]; + for (int i = 0; i <= elemcount - 1; i++) + { + pet[i] = CalculatePET(temp[i], mintemp[i], maxtemp[i], i); + } + + //---- save output values + DateTime dt = CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)this.GetCurrentTime()).ModifiedJulianDay); + _output.Add(dt, pet); + + //---- set output values + this.SetValues(output_quantity, output_elementset, new ScalarSet(pet)); + + //---- advance the component's internal time + this.AdvanceTime(); + + return true; + } + +| + +6. In the PerformTimeStep method we called a second method named *CalculatePET*. We next need to implement this method which will do the actual Hargreaves calculation. + +.. code-block:: c# + + /// + /// Calculates the potential evapotranspiration using the Hargreaves-Samani method + /// + /// Averaged daily temperature + /// Minimum daily temperature + /// Maximum daily temperature + /// element index + /// PET in mm/day + public double CalculatePET(double T, double Tmin, double Tmax, int eid) + { + + + //---- calculate the relative distance between the earth and sun + //-- get Julian day + TimeStamp ts = (TimeStamp)this.GetCurrentTime(); + DateTime dt = CalendarConverter.ModifiedJulian2Gregorian(ts.ModifiedJulianDay); + int j = dt.DayOfYear; + double dr = 1 + 0.033 * Math.Cos((2 * Math.PI * j) / 365); + + //---- calculate the solar declination + double d = 0.4093 * Math.Sin((2 * Math.PI * j) / 365 - 1.405); + + //---- calculate the sunset hour angle + //-- get latitude in degrees + ElementSet es = (ElementSet)this.GetInputExchangeItem(0).ElementSet; + Element e = es.GetElement(eid); + double p = e.GetVertex(0).y * Math.PI / 180; + //-- calc ws + double ws = Math.Acos(-1 * Math.Tan(p) * Math.Tan(d)); + + //---- calculate the total incoming extra terrestrial solar radiation + double Ra = 15.392 * dr * (ws * Math.Sin(p) * Math.Sin(d) + Math.Cos(p) * Math.Cos(d) * Math.Sin(ws)); + + //---- calculate PET (From Hargreaves and Samani 1985) + //-- calculate latent heat of vaporization (from Water Resources Engineering, David A. Chin) + double L = 2.501 - 0.002361 * T; + double PET = (0.0023 * Ra * Math.Sqrt(Tmax - Tmin) * (T + 17.8)) / L; + + return PET; + + } + +7. Define what the component should do after a model run has completed by implementing the *Finish* method. In the code below, the component will simply write out the results to a text file. + +.. code-block:: c# + + public override void Finish() + { + StreamWriter sw = new StreamWriter(output_path,false); + + //write header line + sw.WriteLine("Simulation Time, PET[mm/day]"); + + //write all values + foreach (KeyValuePair kvp in _output) + { + sw.Write(String.Format("{0:MM/dd/yyyy: hh:mm tt}", kvp.Key)); + for (int i = 0; i <= kvp.Value.Length - 1; i++) + { + sw.Write("," + kvp.Value[i]); + } + sw.Write("\n"); + } + + //close file + sw.Close(); + } + +| + +Compiling +'''''''''' + +The next step involves compiling the application. Compiling is the process of converting written code into an binary file that the computer can run. + +1. In Visual Studio C#, select Build --> Build Solution. If there are any errors, the Error List window at the bottom of the screen will notify you. + + +Create the Configuration XML File +''''''''''''''''''''''''''''''''' + +The configuration file defines the input and output exchange items of the component, the time horizon of the component (start and end times), as well as the time step of the component. + +1. Right-click on the Data folder in the Solution Explorer and select Add --> New Item. Select to add an XML file. Rename this file config.xml. + +2. Add the following lines to the config.xml file to provide the overall structure. + +.. code-block:: xml + + + + + + + +3. Add the following output exchange item within the ExchangeItems element. + +.. code-block:: xml + + + + Coweeta + Coweeta watershed, NC + ..\..\data\gis\coweeta_18.shp + 1 + + + PET + Potential Evapotranspiration + + + Length + 1 + + + Time + -1 + + + + mm/day + Millimeters per day + 1 + 0 + + Scalar + + + +| + +4. Add the following input exchange item for average temperature as well. + +.. code-block:: xml + + + + Climate Station 01 + Climate Station 01, near Coweeta watershed 18 in NC + ..\..\data\gis\climateStation.shp + 1 + + + Temp + Daily Averaged Temperature + + + Temperature + 1 + + + + Celsius + Degrees Celsius + 1 + 0 + + Scalar + + + +| + +5. Next add two more input exchange items for minimum and maximum temperature. You can copy the input exchange item above and just replace the Quantity ID and Description for each of the new exchange item. + +Create the omi File +''''''''''''''''''' + +The *omi* file defines the component properties including the path (which is recommended to be a relative path) to the component dll, the path to the component cofig.xml file, and any other arguments for the component. + +1. Add a new XML file under the *Data* folder as you did previously and name it Hargreaves.omi. + +3. Define the relative path to the Hargeaves.dll. + +4. Define an argument (Key - ReadOnly - Value) for the configuration file. Key is a string used to search in the properties of the omi, ReadOnly is a boolen and is set to be true, and Value points to the *relative* location of the configuration.xml. + +5. Add an argument named Output to define the relative location of the output csv file. + +.. code-block:: XML + + + + + + + +| + +.. Note:: + You may need to edit the paths to either the Hargreaves.dll or Config.xml files. They should be relative paths from the Hargreaves.omi file. + +| + +Viewing the Component in HydroModeler +''''''''''''''''''''''''''''''''''''' + +You have completed the steps to create the component. Next we will show how to load the component into HydroModeler. + +1. Start HydroDesktop. + +2. Select the HydroModeler extension by selecting the HydroModeler tab. + +.. figure:: ./images/Tutorial03/HM_fig50.png + :align: center + +| + +3. Use the Add Component button from the HydroModeler ribbon control to add the Hargreaves.omi file. If everything worked correctly, you will see the Hargreaves component added to modeling canvas. + +.. figure:: ./images/Tutorial03/trigger.png + :align: center + +Creating a Unit Test Case +''''''''''''''''''''''''' + +The last step is to create a unit test for your new component. A unit test allows you to verify that the component works properly. We will show how to create tests for each of the Initialize and PerformTimeStep methods. You could also add a test for the Finish method using the same basic approach. There is not need to test the CalculatePET method because this is done already within the PerformTimeStep test. + +.. Note:: + + We recommend using TestDriven.Net from http://www.testdriven.net as a user friendly way of running the unit tests. + +1. In the same solution in which you created the Hargreaves component, right-click on the solution and select Add --> New Project to create a new project for the unit tests. Choose Visual C# Class Library and name the project HargreavesTest. + +2. Add a references to the HargreavesTest project for the following dlls. + + - nunit.framework.dll from *[Path to HydroDesktop Source]/Binaries/Plugins/HydroModeler/example_configuration/bin* + - Oatc.OpenMI.Sdk.Backbone + - Oatc.OpenMI.Sdk.Buffer + - Oatc.OpenMI.Sdk.DevelopmentSupport + - Oatc.OpenMI.Sdk.Wrapper + - SMW + +3. Add a project reference to the Hargreaves project by right-clicking on References and selecting Add Reference and switching to the Projects tab. + +4. The following lines of code are needed to setup the test class file. + +.. code-block:: c# + + namespace Test + { + [TestFixture] + public class TestClass + { + Hargreaves.Engine hargreaves; + + +5. To test the Initialize method, we will try to initialize the component using the config.xml file as shown in the lines below. You may need to change the path to the config.xml file from what is shown below. + +.. code-block:: c# + + [TestFixtureSetUp] + public void Initialize() + { + //---- create instance of the hargreaves model + hargreaves = new Hargreaves.Engine(); + + //---- define input arguments + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "../../../data/config.xml"); + + //---- call the initialize method + hargreaves.Initialize(args); + + Debug.WriteLine("Initialize has completed successfully"); + + } + +6. To test the PerformTimeStep method, we will do an example calculation for a known solution where the average temperature is 19 degrees C, the minimum temperature is 17 degrees C, and the maximum temperature is 21 degrees C. We know that the solution for this problem is 1.16 mm/d. If the code does not perform this calculation correctly, the test will fail. + +.. code-block:: c# + + [Test] + public void PerformTimeStep() + { + Debug.WriteLine("\n\n---------------------------------------------------"); + Debug.WriteLine("Running the 'PerformTimeStep' Test"); + Debug.WriteLine("---------------------------------------------------"); + + //---- put data into IValueSets + IValueSet temp = new ScalarSet(new double[1] { 19 }); + IValueSet mintemp = new ScalarSet(new double[1] { 17 }); + IValueSet maxtemp = new ScalarSet(new double[1] { 21 }); + + //---- set values + hargreaves.SetValues("Temp", "Climate Station 01",temp); + hargreaves.SetValues("Min Temp", "Climate Station 01", mintemp); + hargreaves.SetValues("Max Temp", "Climate Station 01", maxtemp); + + //---- call perform time step + hargreaves.PerformTimeStep(); + + //---- read calculated results + double[] pet = ((ScalarSet)hargreaves.GetValues("PET", "Coweeta")).data; + + double chk = Math.Round(pet[0], 2); + Assert.IsTrue(chk == 1.16, "The calculated value of " + chk.ToString() + " does not equal the known value of 1.16"); + } + + + + + + + diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/config.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/config.rst new file mode 100644 index 00000000..d419bf08 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/config.rst @@ -0,0 +1,19 @@ +.. index:: config + +config.xml file +=============== + +*Model configuration file when using Simple Model Wrapper*. These files contain metadata for a model component including a description of the input and output exchange items including their units and unit conversion factors to SI. The benefit of using a configuration file for a component is that when the data changes, components do not need to be recompiled. Double-clicking these files will allow you to view them through Internet Explorer. For simple viewing purposes, this is the suggested approach because it will color code the syntax, making the file much easier to read. However, to edit the files, Notepad++ is the suggested approach because it is a free and powerful text editor. + +This is a configuration file opened using Internet Explorer. + +.. figure:: ./images/KeyTerms/HM_fig3m.png + :align: center + +| + + +This is a configuration file opened using Notepad++. + +.. figure:: ./images/KeyTerms/HM_fig4m.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/dll.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/dll.rst new file mode 100644 index 00000000..ebd96e5e --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/dll.rst @@ -0,0 +1,6 @@ +.. index:: dll + +*.dll file +========== + +*Dynamic link library file*. This file is a compiled library of code used by a computer program. Each model component in HydroModeler will have an associated dll file that contains the computational engine for that model. When you run a project in HydroModeler, it will call the model dll files to compute data based on the logic contained within that specific model. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/HM_fig1_m1.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/HM_fig1_m1.png new file mode 100644 index 00000000..52168b9a Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/HM_fig1_m1.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/HM_fig2_m1.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/HM_fig2_m1.png new file mode 100644 index 00000000..6a773153 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/HM_fig2_m1.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/HM_fig3_m1.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/HM_fig3_m1.png new file mode 100644 index 00000000..7166e6d7 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/HM_fig3_m1.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/HM_fig4_m1.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/HM_fig4_m1.png new file mode 100644 index 00000000..8e14f408 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/HM_fig4_m1.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/HM_fig6_m1.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/HM_fig6_m1.png new file mode 100644 index 00000000..019156ea Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/HM_fig6_m1.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/Thumbs.db b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/Thumbs.db new file mode 100644 index 00000000..382b5b6c Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ChangingInputs/Thumbs.db differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig1.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig1.png new file mode 100644 index 00000000..4e4cf746 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig1.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig10m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig10m.png new file mode 100644 index 00000000..5deb4966 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig10m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig11m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig11m.png new file mode 100644 index 00000000..9a8317ef Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig11m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig12m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig12m.png new file mode 100644 index 00000000..51985206 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig12m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig13m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig13m.png new file mode 100644 index 00000000..fb63cab7 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig13m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig14.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig14.png new file mode 100644 index 00000000..8e0bfa4f Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig14.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig15.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig15.png new file mode 100644 index 00000000..2a52fbe6 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig15.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig2.png new file mode 100644 index 00000000..50b159ff Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig3.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig3.png new file mode 100644 index 00000000..c0e90b8a Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig3.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig4.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig4.png new file mode 100644 index 00000000..42fef572 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig4.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig5.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig5.png new file mode 100644 index 00000000..845c3140 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig5.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig6.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig6.png new file mode 100644 index 00000000..eb339b9b Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig6.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig7.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig7.png new file mode 100644 index 00000000..bbaecb1b Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig7.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig8.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig8.png new file mode 100644 index 00000000..e979a95b Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig8.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig9m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig9m.png new file mode 100644 index 00000000..b582359e Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/ExampleConfig/HM_fig9m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig1m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig1m.png new file mode 100644 index 00000000..00311d63 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig1m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig2.png new file mode 100644 index 00000000..7a1502bd Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig3m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig3m.png new file mode 100644 index 00000000..f5e369f4 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig3m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig4m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig4m.png new file mode 100644 index 00000000..f1fdf239 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig4m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig5m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig5m.png new file mode 100644 index 00000000..ab160faf Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig5m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig6m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig6m.png new file mode 100644 index 00000000..79585188 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/HM_fig6m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/Thumbs.db b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/Thumbs.db new file mode 100644 index 00000000..27b1d2b9 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/KeyTerms/Thumbs.db differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig1_m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig1_m.png new file mode 100644 index 00000000..35ed99fb Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig1_m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig2_m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig2_m.png new file mode 100644 index 00000000..99ffe7fd Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig2_m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig3_m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig3_m.png new file mode 100644 index 00000000..89882598 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig3_m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig4_m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig4_m.png new file mode 100644 index 00000000..1bb8ad63 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig4_m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig5_m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig5_m.png new file mode 100644 index 00000000..c68084dc Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig5_m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig6_m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig6_m.png new file mode 100644 index 00000000..abd915ad Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig6_m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig7_m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig7_m.png new file mode 100644 index 00000000..61c09949 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig7_m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig8_m.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig8_m.png new file mode 100644 index 00000000..e2b798f3 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/HM_fig8_m.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/Thumbs.db b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/Thumbs.db new file mode 100644 index 00000000..1470366a Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/LinkingModels/Thumbs.db differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/OpeningOprFile/HM_fig1mm.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/OpeningOprFile/HM_fig1mm.png new file mode 100644 index 00000000..fd3443fc Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/OpeningOprFile/HM_fig1mm.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/OpeningOprFile/HM_fig2mm.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/OpeningOprFile/HM_fig2mm.png new file mode 100644 index 00000000..5dcf2613 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/OpeningOprFile/HM_fig2mm.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/OpeningOprFile/HM_fig3mm.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/OpeningOprFile/HM_fig3mm.png new file mode 100644 index 00000000..58453a95 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/OpeningOprFile/HM_fig3mm.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/OpeningOprFile/Thumbs.db b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/OpeningOprFile/Thumbs.db new file mode 100644 index 00000000..c55aad5f Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/OpeningOprFile/Thumbs.db differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/HM_fig1_mm.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/HM_fig1_mm.png new file mode 100644 index 00000000..538e98d6 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/HM_fig1_mm.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/HM_fig2_mm.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/HM_fig2_mm.png new file mode 100644 index 00000000..1040e09c Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/HM_fig2_mm.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/HM_fig3_mm.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/HM_fig3_mm.png new file mode 100644 index 00000000..16ae8d68 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/HM_fig3_mm.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/HM_fig4_mm.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/HM_fig4_mm.png new file mode 100644 index 00000000..ac745412 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/HM_fig4_mm.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/HM_fig5_mm.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/HM_fig5_mm.png new file mode 100644 index 00000000..de7fb798 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/HM_fig5_mm.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/Thumbs.db b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/Thumbs.db new file mode 100644 index 00000000..ac18d319 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/RunningComposition/Thumbs.db differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig10_m2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig10_m2.png new file mode 100644 index 00000000..c8f855f5 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig10_m2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig11_m2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig11_m2.png new file mode 100644 index 00000000..5d132940 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig11_m2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig12_m2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig12_m2.png new file mode 100644 index 00000000..8e112623 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig12_m2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig13_m2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig13_m2.png new file mode 100644 index 00000000..3916707c Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig13_m2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig14_m2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig14_m2.png new file mode 100644 index 00000000..7bc981c4 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig14_m2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig15_m2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig15_m2.png new file mode 100644 index 00000000..fc412026 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig15_m2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig1_m2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig1_m2.png new file mode 100644 index 00000000..14d0052e Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig1_m2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig2_m2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig2_m2.png new file mode 100644 index 00000000..74e36db9 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig2_m2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig3_m2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig3_m2.png new file mode 100644 index 00000000..13fe50cd Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig3_m2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig4_m2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig4_m2.png new file mode 100644 index 00000000..d4e42bb5 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig4_m2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig5_m2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig5_m2.png new file mode 100644 index 00000000..2a6ad8be Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig5_m2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig6_m2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig6_m2.png new file mode 100644 index 00000000..1c62ff59 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig6_m2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig7_m2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig7_m2.png new file mode 100644 index 00000000..789097f5 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig7_m2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig8_m2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig8_m2.png new file mode 100644 index 00000000..c8af9b1c Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig8_m2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig9_m2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig9_m2.png new file mode 100644 index 00000000..d5e999ee Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial01/HM_fig9_m2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/CurrentDirectory.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/CurrentDirectory.png new file mode 100644 index 00000000..64ba578d Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/CurrentDirectory.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/DbTopmodel.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/DbTopmodel.png new file mode 100644 index 00000000..ebb96c6d Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/DbTopmodel.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/DbWriter-TopModel.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/DbWriter-TopModel.png new file mode 100644 index 00000000..6b2ffcdf Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/DbWriter-TopModel.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Dbconnection.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Dbconnection.png new file mode 100644 index 00000000..afa0b545 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Dbconnection.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Hydrodesktop_start.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Hydrodesktop_start.png new file mode 100644 index 00000000..056ab5fd Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Hydrodesktop_start.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/ModelAdding.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/ModelAdding.png new file mode 100644 index 00000000..b231c7f6 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/ModelAdding.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Table1.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Table1.png new file mode 100644 index 00000000..6522a0a1 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Table1.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Table2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Table2.png new file mode 100644 index 00000000..0f7958b1 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Table2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Thumbs.db b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Thumbs.db new file mode 100644 index 00000000..33cd8350 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Thumbs.db differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Thumbs.db.orig b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Thumbs.db.orig new file mode 100644 index 00000000..015d25e3 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/Thumbs.db.orig differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/TopModel-Trigger.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/TopModel-Trigger.png new file mode 100644 index 00000000..2be2d47a Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/TopModel-Trigger.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/TopModel.omi.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/TopModel.omi.png new file mode 100644 index 00000000..ceca66b4 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/TopModel.omi.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/changedb.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/changedb.png new file mode 100644 index 00000000..6f4a2c19 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/changedb.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/component.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/component.png new file mode 100644 index 00000000..17d3b82c Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/component.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/coweeta.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/coweeta.png new file mode 100644 index 00000000..d707c717 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/coweeta.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/duringruning.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/duringruning.png new file mode 100644 index 00000000..b175c94b Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/duringruning.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/export.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/export.png new file mode 100644 index 00000000..cddcb7a8 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/export.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/extensions.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/extensions.png new file mode 100644 index 00000000..05ad548c Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/extensions.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/finishsuccess.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/finishsuccess.png new file mode 100644 index 00000000..1d9370e5 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/finishsuccess.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graph.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graph.png new file mode 100644 index 00000000..7a8a3a1c Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graph.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graph2.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graph2.png new file mode 100644 index 00000000..966919ee Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graph2.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graph3.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graph3.png new file mode 100644 index 00000000..e5d5869c Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graph3.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graph4.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graph4.png new file mode 100644 index 00000000..138165cd Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graph4.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graph5.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graph5.png new file mode 100644 index 00000000..470014ec Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graph5.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graphview.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graphview.png new file mode 100644 index 00000000..3a50ea21 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/graphview.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/hargreaves-TopModel.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/hargreaves-TopModel.png new file mode 100644 index 00000000..1ed15a4b Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/hargreaves-TopModel.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/newproject.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/newproject.png new file mode 100644 index 00000000..88b32cf9 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/newproject.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/omiarguments.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/omiarguments.png new file mode 100644 index 00000000..fe52feff Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/omiarguments.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/run.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/run.png new file mode 100644 index 00000000..f365a96a Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/run.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/runsetup.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/runsetup.png new file mode 100644 index 00000000..97d28c3a Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/runsetup.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/sim1.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/sim1.png new file mode 100644 index 00000000..fa07a9f8 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/sim1.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/tables.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/tables.png new file mode 100644 index 00000000..736d0710 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial02/tables.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig44.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig44.png new file mode 100644 index 00000000..ea46cfa4 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig44.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig45.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig45.png new file mode 100644 index 00000000..73de6b7f Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig45.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig46.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig46.png new file mode 100644 index 00000000..1c288634 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig46.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig47.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig47.png new file mode 100644 index 00000000..f20c57e2 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig47.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig48.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig48.png new file mode 100644 index 00000000..634d914b Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig48.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig49.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig49.png new file mode 100644 index 00000000..ddf5681d Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig49.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig50.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig50.png new file mode 100644 index 00000000..88b32cf9 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig50.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig51.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig51.png new file mode 100644 index 00000000..ec83550c Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/HM_fig51.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/ModelAdding.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/ModelAdding.png new file mode 100644 index 00000000..adbe59a5 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/ModelAdding.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/PET.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/PET.png new file mode 100644 index 00000000..1618aeac Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/PET.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/Sample.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/Sample.png new file mode 100644 index 00000000..b3dcf17f Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/Sample.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/Test.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/Test.png new file mode 100644 index 00000000..455b0abc Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/Test.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/Thumbs.db b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/Thumbs.db new file mode 100644 index 00000000..4805d675 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/Thumbs.db differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/class.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/class.png new file mode 100644 index 00000000..d26b1849 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/class.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/compile.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/compile.png new file mode 100644 index 00000000..b2e35c48 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/compile.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/config.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/config.png new file mode 100644 index 00000000..6b6b9414 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/config.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/download.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/download.png new file mode 100644 index 00000000..a27e0b0a Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/download.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/finish.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/finish.png new file mode 100644 index 00000000..c6ffcef0 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/finish.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/finishtest.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/finishtest.png new file mode 100644 index 00000000..0fcb8d06 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/finishtest.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/folders.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/folders.png new file mode 100644 index 00000000..6b6d08ae Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/folders.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/inherited.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/inherited.png new file mode 100644 index 00000000..262db952 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/inherited.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/inputexchangeitem.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/inputexchangeitem.png new file mode 100644 index 00000000..2c9d07cf Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/inputexchangeitem.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/intialization.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/intialization.png new file mode 100644 index 00000000..207fc801 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/intialization.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/linkablecomponent.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/linkablecomponent.png new file mode 100644 index 00000000..80dd1e65 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/linkablecomponent.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/omi.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/omi.png new file mode 100644 index 00000000..02e9a3a7 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/omi.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/open.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/open.png new file mode 100644 index 00000000..6ed7a55a Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/open.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/outputexchangeitem.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/outputexchangeitem.png new file mode 100644 index 00000000..f854cb08 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/outputexchangeitem.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/preform.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/preform.png new file mode 100644 index 00000000..337ed3ff Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/preform.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/preformtest.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/preformtest.png new file mode 100644 index 00000000..bb8468d9 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/preformtest.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/ref.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/ref.png new file mode 100644 index 00000000..6746c0ec Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/ref.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/referencesstructure.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/referencesstructure.png new file mode 100644 index 00000000..5908b541 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/referencesstructure.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/sampleclass.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/sampleclass.png new file mode 100644 index 00000000..7ea7646b Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/sampleclass.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/start.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/start.png new file mode 100644 index 00000000..533ac5cb Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/start.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/system.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/system.png new file mode 100644 index 00000000..421242f7 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/system.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/trigger.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/trigger.png new file mode 100644 index 00000000..6a6eb21e Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/trigger.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/variable.png b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/variable.png new file mode 100644 index 00000000..cb127ab6 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroModeler/images/Tutorial03/variable.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/omi.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/omi.rst new file mode 100644 index 00000000..9375734b --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/omi.rst @@ -0,0 +1,9 @@ +.. index:: omi + +*.omi file +========== + +*OpenMI model file*. An OpenMI model file (or *.omi file) is a single component that can be used to create a component configuration. Components can be models or tools for working with data. Each component has input and output exchange items that allow the component to be linked to other components. Below is an image of what a .omi file when loaded into HydroModeler. + +.. figure:: ./images/KeyTerms/HM_fig1m.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/opr.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/opr.rst new file mode 100644 index 00000000..ec1dab0e --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/opr.rst @@ -0,0 +1,9 @@ +.. index:: opr + +*.opr file +========== + +*OpenMI project file*. An OpenMI project file (or *.opr file) defines a linked configuration of model components. The opr file is an xml file and can be exited with any text editor. It can also be run using a command line utility provided by the OpenMI Technical Association. An image of an opr file vieed within HydroModeler is below. + +.. figure:: ./images/KeyTerms/HM_fig2.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/shp.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/shp.rst new file mode 100644 index 00000000..ed043710 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/shp.rst @@ -0,0 +1,18 @@ +.. index:: shp + +*.shp file +========== + +*Shapefile.* A shapefile is used to graphically describe geospatial data including points, polylines, or polygons that serve as an input to a model component. A shapefile can be included in your configuration files and subsequently read by the HydroModeler plug in. A .shp file is not required and is also not the only format that can be used, an alternative would be to use an ASCII file. + +This is an example of a .shp file that has been added to a configuration file. + +.. figure:: ./images/KeyTerms/HM_fig5m.png + :align: center + +| + +This is an example of a .shp files resulting image, created using HydroModeler's ElementSetViewer. + +.. figure:: ./images/KeyTerms/HM_fig6m.png + :align: center diff --git a/Documentation/OnlineHelp/source/extensions/HydroModeler/smw.rst b/Documentation/OnlineHelp/source/extensions/HydroModeler/smw.rst new file mode 100644 index 00000000..6b273ed9 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroModeler/smw.rst @@ -0,0 +1,8 @@ +.. index:: smw + +SMW +=== + +*Simple Model Wrapper*. Simple Model Wrapper (or SMW) is an approach for creating OpenMI model components that simplifies the OpenMI interface in order to create new components more easily by reducing the amount of code required. The Simple Model Wrapper will reduce the required number of methods from 19 to 3. When designing your components, they will consist of three methods, called Initialize, Preform Time Step, and Finish. Initialize will set up the model with initial conditions, units, and system parameters. Perform Time Step will take all the initialized information and process it to output your calculated values. It will return these values so that they may be accessed by other components. The Finish method will close out any files opened to retrieve any information, for example, the configuration file. This method helps to conserve computer memory and allow processes to run faster. SMW is described in more detail in the following journal article. + +Castronova, A. M., and J. L. Goodall (2010), A generic approach for developing process-level hydrologic modeling components, Environmental Modelling & Software, 25(7), 819-825, http://dx.doi.org/10.1016/j.envsoft.2010.01.003. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/ChangingRVersion.rst b/Documentation/OnlineHelp/source/extensions/HydroR/ChangingRVersion.rst new file mode 100644 index 00000000..def79588 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroR/ChangingRVersion.rst @@ -0,0 +1,13 @@ +.. index:: Changing the R Version + +Changing the R Version +====================== + +When you have multiple versions of **R**, you can check and change the version of R that is used by HydroR with the following steps: + +1. Click the "Path to R" button on the HydroDesktop ribbon. The following window will appear asking if you want to change the path to R. + +.. figure:: ./images/HR_image011.png + :align: center + +2. Use the **Browse...** button to locate a different version of R on your computer. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/ClosingRConsole.rst b/Documentation/OnlineHelp/source/extensions/HydroR/ClosingRConsole.rst new file mode 100644 index 00000000..ab029e92 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroR/ClosingRConsole.rst @@ -0,0 +1,13 @@ +.. index:: Closing the R Console + +Closing the R Console +===================================================== + +When you are done using the R Console, you can close it using the following steps: + +1. Click the "Close R" button on the HydroDesktop ribbon. The following window will appear asking if you want to save the R Workspace Image. + +.. figure:: ./images/HR_image010.png + :align: center + +2. Choose whether you want to save your R workspace image containing any R objects that you have loaded. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/CreatingRCommands.rst b/Documentation/OnlineHelp/source/extensions/HydroR/CreatingRCommands.rst new file mode 100644 index 00000000..81b7e6c7 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroR/CreatingRCommands.rst @@ -0,0 +1,9 @@ +.. index:: Creating R Commands in the HydroR Script Editor + +Creating R Commands in the HydroR Script Editor +===================================================== + +Any command that can be executed within R can be typed into the HydroR script editor. The following figure shows an R script that first loads a data series into an R List object and then determines the number of data values within the data series and some simple descriptive statistics of the data values. + +.. figure:: ./images/HR_image004.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/ExecutingRCode.rst b/Documentation/OnlineHelp/source/extensions/HydroR/ExecutingRCode.rst new file mode 100644 index 00000000..0fcbbc8a --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroR/ExecutingRCode.rst @@ -0,0 +1,20 @@ +.. index:: Executing R Code from the HydroR Script Editor + +Executing R Code from the HydroR Script Editor +===================================================== + +Use the following steps to execute R commands from the HydroR script editor: + +1. Open the R Console within HydroR by clicking on the "Start R" button on the HydroR ribbon. You will notice that the R Console opens within the HydroR tab. + +.. figure:: ./images/HR_image005.png + :align: center + +NOTE: The first time you start the R console, you may get a pop-up dialog that asks you to navigate to the location of your R installation. Follow the instructions on the form. You may also have to choose a R CRAN Mirror site from which the HydroR extension will download a number of R packages to complete the installation. Choose a CRAN mirror site that his near you and then click "OK." + +2. On the HydroR ribbon, you will notice that there are three buttons for sending code from the HydroR script editor to the R console for execution: 1) Send Line, 2) Send Selection, and 3) Send All. Send Line sends the currently selected line to the R Console, Send Selection sends all of the selected lines to the R Console, and Send All sends everything within the HydroR script editor to the R Console. Select a number of lines by clicking and dragging in the script editor and then click the "Send Selection" button to send them to the R console. + +.. figure:: ./images/HR_image006.png + :align: center + +3. You will notice that the lines from the script editor are sent to the R console and executed. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/HydroR.rst b/Documentation/OnlineHelp/source/extensions/HydroR/HydroR.rst new file mode 100644 index 00000000..69a14491 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroR/HydroR.rst @@ -0,0 +1,34 @@ +.. index:: HydroR + +HydroR +============ + +.. index:: + single: version number; getting + single: getting the version number + +This webpage was created to provide on-line assistance for using the HydroR extension. Below is a list of items for which more detailed information is provided. + + +.. toctree:: + :maxdepth: 2 + + Introduction + + OpeningHydroR + + LoadingData + + CreatingRCommands + + ExecutingRCode + + SavingRScripts + + RCommands + + ClosingRConsole + + ChangingRVersion + + diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/Introduction.rst b/Documentation/OnlineHelp/source/extensions/HydroR/Introduction.rst new file mode 100644 index 00000000..26eb2026 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroR/Introduction.rst @@ -0,0 +1,24 @@ +.. index:: Introduction + + +Introduction +============ + +.. index:: + single: Introduction + +HydroR is a HydroDesktop extension that provides an interface between HydroDesktop and the R statistical computing environment. In a nutshell, R is a language and environment for statistical computing and graphics. R provides a wide variety of statistical and graphical techniques and is highly extensible. R is available as free software, and can be downloaded from http://www.r-project.org/. + +HydroR provides a scripting interface within which R commands can be written and then sent to the R Console for execution. HydroR provides functionality for automatically generating the R code needed to retrieve any of the hydrologic time series data that have been downloaded and stored within HydroDesktop's data repository database into an R List object. The R list object contains all of the metadata for a time series and a Data Frame object that contains the time series data values. One the data have been transferred from the HydroDesktop database into an R List object, they can be manipulated using any of the graphical or statistical tools that R, or any extended R packages, provides. + +HydroR includes a package for R called "HydroR." This package is installed the first time you open the R Console from the HydroR extension. Once installed, this R package can be used independently from HydroDesktop given some information about the syntax used in the R commands that are included in the HydroR package. + +.. index:: + single: Prerequisites + +Prerequisites +--------------------- + +Before using the HydroDesktop HydroR extension, you must download and install the latest version of R from http://www.r-project.org/. + + diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/LoadingData.rst b/Documentation/OnlineHelp/source/extensions/HydroR/LoadingData.rst new file mode 100644 index 00000000..fb714627 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroR/LoadingData.rst @@ -0,0 +1,12 @@ +.. index:: Loading Data Series Into R from HydroDesktop + +Loading Data Series Into R from HydroDesktop +===================================================== + +Once you have discovered and downloaded some time series data into HydroDesktop, you can use the following steps to begin loading any of those time series into R for analysis: + +1. Select any of the data series shown in the HydroDesktop Series Selection tool by clicking on the check box to the left of the data series. +2. Click the "Generate R Code" button on the HydroR ribbon. You will notice that new lines of R code have been added to the HydroR script window. These lines of code can be executed by the R console to load the selected data series from the HydroDesktop data repository database into R as an R List object. In the following example, a single data series has been selected and will be loaded into an R List object called "data0." + +.. figure:: ./images/HR_image003.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/OpeningHydroR.rst b/Documentation/OnlineHelp/source/extensions/HydroR/OpeningHydroR.rst new file mode 100644 index 00000000..1ccc24a4 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroR/OpeningHydroR.rst @@ -0,0 +1,23 @@ +.. index:: Opening the HydroR Extension + +Opening the HydroR Extension +===================================================== + +Follow the steps below to open the HydroR extension within HydroDesktop: + +1. If you don't have HydroDesktop open already, open it by clicking on Start / All Programs / CUAHSI HIS / HydroDesktop / HydroDesktop + +2. The HydroR extension is loaded by default, but if you do not see a HydroR tab at the top of your HydroDesktop window, click on the "File" tab at the top of the HydroDesktop window and then click on "Extension Manager" to show the list of available HydroDesktop Extensions. + +.. figure:: ./images/HR_image001.png + :align: center + +3. Make sure that the box next to the HydroR extension is checked and then click the "Close" button. You will notice that a new tab called "HydroR" has been added to the HydroDesktop Window. + +4. Click on the "HydroR" tab to access its functionality. The following window shows the HydroR tab. + +.. figure:: ./images/HR_image002.png + :align: center + + + diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/RCommands.rst b/Documentation/OnlineHelp/source/extensions/HydroR/RCommands.rst new file mode 100644 index 00000000..b37b4219 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroR/RCommands.rst @@ -0,0 +1,9 @@ +.. index:: R Commands Indluded in the HydroR Package for R + +R Commands Included in the HydroR Package for R +===================================================== + +The HydroR package for R, which is used by the HydroR extension for HydroDesktop, includes a number of useful functions for interacting with hydrologic time series data stored within the HydroDesktop data repository database. The following table describes the included functions and shows example s of the included commands. + +.. figure:: ./images/HR_image009.png + :align: center \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/SavingRScripts.rst b/Documentation/OnlineHelp/source/extensions/HydroR/SavingRScripts.rst new file mode 100644 index 00000000..4892da89 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/HydroR/SavingRScripts.rst @@ -0,0 +1,20 @@ +.. index:: Saving R Scripts and Opening Them Later + +Saving R Scripts and Opening Them Later +===================================================== + +Follow the steps below to save a script that you have written in the HydroR script editor to your hard disk for later use: + +1. Click on the "Save Script" button on the HydroR ribbon. A file dialog window will open asking you where you want to save your script. + +.. figure:: ./images/HR_image007.png + :align: center + +2. Select a location on disk to save your file and then provide a file name. The file will be stored as a text file with a ".r" extension. Click the "Save" button. + +3. To open a script that you have saved to your hard disk, click the "Open Script" button on the HydroR ribbon. The file dialog window will open asking you where your R script is located on your hard disk. + +.. figure:: ./images/HR_image008.png + :align: center + +4. Navigate to your R script that you have saved and select it in the file dialog box. Then click the "Open" button. Your saved script will be loaded into the HydroR script editor. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image001.png b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image001.png new file mode 100644 index 00000000..d2ac1b5c Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image001.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image002.png b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image002.png new file mode 100644 index 00000000..af5f44a5 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image002.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image003.png b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image003.png new file mode 100644 index 00000000..ff07180e Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image003.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image004.png b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image004.png new file mode 100644 index 00000000..b1b02eaa Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image004.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image005.png b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image005.png new file mode 100644 index 00000000..9122851a Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image005.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image006.png b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image006.png new file mode 100644 index 00000000..9859d55e Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image006.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image007.png b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image007.png new file mode 100644 index 00000000..c6b79417 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image007.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image008.png b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image008.png new file mode 100644 index 00000000..6a27c34c Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image008.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image009.png b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image009.png new file mode 100644 index 00000000..480fc7a0 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image009.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image010.png b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image010.png new file mode 100644 index 00000000..be0e5f30 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image010.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image011.png b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image011.png new file mode 100644 index 00000000..1328412e Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroR/images/HR_image011.png differ diff --git a/Documentation/OnlineHelp/source/extensions/HydroR/images/Thumbs.db b/Documentation/OnlineHelp/source/extensions/HydroR/images/Thumbs.db new file mode 100644 index 00000000..cb0d8f02 Binary files /dev/null and b/Documentation/OnlineHelp/source/extensions/HydroR/images/Thumbs.db differ diff --git a/Documentation/OnlineHelp/source/extensions/MetadataFetcher/MetadataFetcher.rst b/Documentation/OnlineHelp/source/extensions/MetadataFetcher/MetadataFetcher.rst new file mode 100644 index 00000000..a11721f8 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/MetadataFetcher/MetadataFetcher.rst @@ -0,0 +1,67 @@ +.. index:: + single: extensions; Metadata Fetcher + single: Metadata Fetcher + +Metadata Fetcher +================ + +HIS Central maintains a catalog of time series metadata, i.e., where time series variables are measured and from which Web services they may be obtained. HydroDesktop queries HIS Central's catalog when searching for data. But what happens when a service isn't registered with HIS Central? This may happen when a service is developmental or if the service is private. HydroDesktop can still search for data from such services, but instead of searching HIS Central, the search is performed on a local metadata cache database. + +The local metadata cache database is similar to the HIS Central catalog. Like the HIS Central catalog, the local metadata cache database doesn't store time series values; it stores information about where time series variables are measured and from which Web services they may be obtained. One difference is that the variables in the local metadata cache database are not mapped to the CUAHSI hydrologic variable ontolgoy, because the ontology and mappings are maintained by HIS Central. Another difference is that the local metadata cache database only stores metadata from the services that you choose to harvest into it. + +The *Metadata Fetcher* is the tool that you use to harvest metadata into the local metadata cache database. You'll find it under the *Data Sources* *Metadata* panel added to the *Search* tab. The panel has buttons for working with the metadata cache. + +The general workflow for harvesting metadata into your local cache is: + +#. Use the **Add Data Source** button to add WaterOneFlow services to the list of services that the metadata cache will harvest. This just adds services to a list and doesn't actually perform any harvesting. +#. Use the **Manage** button to harvest metadata for selected services. + +Once metadata has been harvested, you can search the local metadata cache database by using the Search tab. +For more information on search see :doc:`/guide-books/Search/Search`. + + +Managing Services +----------------- + +When you click the *Manage* button, the *Metadata Fetcher* window opens showing a list of WaterOneFlow Web services that can be harvested. The title of the service, it's URL, and a timestamp indicating when the service was last harvested is displayed. + +.. note:: If you see a timestamp for the year 0001, this indicates that metadata has not yet been harvested for the given service. + +To update the local metadata cache database, place a check next to the service(s) that you want to harvest and click **Download Metadata**. The database will be updated with the latest metadata available from the service. Remember that you are not downloading time series values here. You are simply downloading metadata about where time series are measured to enable efficient searching for data later on. + +In the *Service Management* menu, you'll find options for adding services and removing checked services from the local metadata cache database. You can also refresh the service list if you suspect that the list of services displayed in the *Metadata Fetcher* window is not current. + +Adding Services +--------------- + +The *Add WaterOneFlow Service Info* window is used to add WaterOneFlow Web services to the list of services for which metadata can be harvested into the local metadata cache database. You can open the *Add WaterOneFlow Service Info* window either by clicking **Add** in the *Metadata* panel of the *Table* tab in HydroDesktop, or by accessing the *Service Management* menu in the *Metadata Fetcher window*. + +In the *Add WaterOneFlow Service Info* window, you can add information for one service at a time or for multiple services. Before updating the local metadata cache database with information about the services you want to add, you can check for any identical services already in the database by clicking the **Check Existing** button. This helps to avoid duplicate entries in the database. Click **Update Database** to add information about the services to the database. + +Adding a Single Service +''''''''''''''''''''''' + +To add information about a single WaterOneFlow Web service: + +#. In the **Add WaterOneFlow Service Info** window, activate the **Add Single Service** tab. +#. Fill out the information for a single service. +#. Optionally, click to check if the service already exists in the database. +#. Click to update the database. + +Adding Multiple Services +'''''''''''''''''''''''' + +To add information about multiple WaterOneFlow Web services, you have three options: + +* In the **Add WaterOneFlow Service Info** window, activate the **Add Multiple Services** tab and complete the information for each service to add. +* In the **Import** menu, choose **From HydroServer** and input the URL to a HydroServer's Capabilities service. +* In the **Import** menu, choose **From File** and input the path to a comma delimited file containing information about the services to add. The names of the columns in the file must match the names in the **Add Multiple Services** tab. + +For any of the options above, the result is a list of services in the **Add Multiple Services** tab. Once the list is complete, you can optionally click to check if the service already exists in the database. Then, click to update the database. + +.. note:: A HydroServer is a Web server hosting one or more WaterOneFlow services. HydroServers also publish a Capabilities service which enables clients to automatically determine what services the HydroServer has to offer. + +Options +''''''' + +In the *Add WaterOneFlow Service Info* window, from the *Options* menu, you can choose whether or not each service in the list should be checked to see if it matches the WaterOneFlow service signature before adding the service to the database. Checking the service requires following the given URL to see if a Web service is present, and if so, whether or not it has the same methods as defined by WaterOneFlow. This checking requires additional processing time, but helps to insure that only operational WaterOneFlow services are added to the metadata cache database. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/extensions/extensions.rst b/Documentation/OnlineHelp/source/extensions/extensions.rst new file mode 100644 index 00000000..4644e151 --- /dev/null +++ b/Documentation/OnlineHelp/source/extensions/extensions.rst @@ -0,0 +1,23 @@ +.. index:: extensions + +Extensions +========== + +Extensions add functionality to HydroDesktop. For example, a Fetch Basemap extension might enable HydroDesktop to display basemaps from online maps services. This extension might add a few buttons to the HydroDesktop user interface to give the user control over the choice and display properties of the basemap. A nice thing about extensions is that they can contain very specific functionality when it does not make sense to include such specific functionality in the general HydroDesktop user interface. Extensions can also be created and added to HydroDesktop without requiring access to the HydroDesktop source code and without requiring rebuilding HydroDesktop from the source code. + +.. note:: While it might be temping to enable all extensions, keep in mind that extensions often add buttons or other items to the user interface, and require memory to operate. To keep your user interface from getting cluttered, and to keep HydroDesktop running as efficiently as possible, it's a good idea to only enable extensions that you use. + +.. tip:: Extensions can be enabled by clicking the HydroDesktop Orb Button. + +HydroDesktop Extensions: + +.. toctree:: + :maxdepth: 6 + + EpaTools/EPA-tool + FetchBasemap/FetchBasemap + HydroModeler/HydroModeler + HydroR/HydroR + GraphView/GraphView + EditView/EditView + MetadataFetcher/MetadataFetcher \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/general-concepts.rst b/Documentation/OnlineHelp/source/general-concepts.rst new file mode 100644 index 00000000..17808b3d --- /dev/null +++ b/Documentation/OnlineHelp/source/general-concepts.rst @@ -0,0 +1,53 @@ +.. index:: + single: general concepts + single: concepts; general + + +General Concepts +================ + +WaterOneFlow Web Service +------------------------ + +Web services are like programs that you access on the Internet, which typically have one distinct "service" that they provide to you. WaterOneFlow is a Web service whereby you provide a location, a variable of interest (e.g., streamflow), and a time period, and it returns a time series of data. The output format from WaterOneFlow is an XML language called WaterML that includes both the time series data and also the metadata to fully describe the data. This is a standard design that dozens of agencies and universities now use to publish their data. + +HydroDesktop knows how to request data from a WaterOneFlow Web service and translate the WaterML response into your local database so that you can get on with your analysis. It handles this details of communicating with Web services so that you don't have to. + +Data Management +--------------- + +HydroDesktop works with both spatial and temporal data. Spatial data tend to be in the form of shapefiles, and some shapefiles such as basemap data are distributed with HydroDesktop. Extensions can enable HydroDesktop to work with additional spatial data types such as online map services. + +Temporal data are stored in a relational database called the Data Repository. By default, SQLite is used as the database format. Tools in HydroDesktop know how to read this database and present information from it to the user. A default database is included with HydroDesktop, but you can and are encouraged to create and use your own project-specific databases. These databases are filled with temporal data that you acquire through data searches, data import, or data generation using models and analytical tools. + +HydroDesktop also has the ability to query a given data service to figure out what data are available through the service. It stores this catalog of available data in another database called the Metadata Cache. To keep things clean, this database is kept separate from the Data Repository. Think of the Metadata Cache as a description of all data from all remote data sources that your installation of HydroDesktop knows about, and the Data Repository as a collection of data that you've actually downloaded from data sources and saved. + +For more information on data management see :doc:`working-with-databases`. + +Map +--- + +HydroDesktop displays spatial data in the map. For more information on working with the map see :doc:`guide-books/Map/Map`. + +Search +------ + +HydroDesktop can search for hydrologic time series data, download it, and save it to your local Data Repository database. +When searching for data, you can specify the following filters: region of interest, parameter, time range, and data source. +When the search results are returned, you can further filter the results and then choose which data you want to actually download. + +For more information on search see :doc:`guide-books/Search/Search`. + +Projects +-------- + +You save elements of a HydroDesktop session in a project file. The project file keeps track of which Data Repository database you were using, what layers you had in your map, how those layers were symbolized, etc. + +Getting Help +------------ + +There are a variety ways of getting help with HydroDesktop: + +* Click buttons on the Help tab of the ribbon. The Help tab has buttons for opening the help system, leaving a comment, etc. +* Click help buttons on the specific HydroDesktop tools that you are using, if available. +* Add to discussions and issues on the HydroDesktop Web site at http://hydrodesktop.codeplex.com/. diff --git a/Documentation/OnlineHelp/source/guide-books.rst b/Documentation/OnlineHelp/source/guide-books.rst new file mode 100644 index 00000000..755a9930 --- /dev/null +++ b/Documentation/OnlineHelp/source/guide-books.rst @@ -0,0 +1,22 @@ +.. index:: guide books + +Guide Books +=========== + +Guide books focus on specific tasks that a user might perform. You can browse quick tasks like how to open a project, or walk through comprehensive tutorials that illustrate how to use HydroDesktop to answer science questions. + +Guide Books: + +.. toctree:: + :maxdepth: 2 + + guide-books/Map/Map + guide-books/Search/Search + guide-books/ImportingTimeSeries/time-series-import + guide-books/ExportingTimeSeries/time-series-export + guide-books/TableView/TableView + guide-books/Interpolation/Interpolation + using-the-file-menu + working-with-databases + + \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/guide-books/ExportingTimeSeries/time-series-export.rst b/Documentation/OnlineHelp/source/guide-books/ExportingTimeSeries/time-series-export.rst new file mode 100644 index 00000000..5c4f3996 --- /dev/null +++ b/Documentation/OnlineHelp/source/guide-books/ExportingTimeSeries/time-series-export.rst @@ -0,0 +1,67 @@ +.. index:: + single: data, time series export + single: time series export + single: exporting time series data + +Time Series Data Export +======================= + +HydroDesktop can export your time series data to delimited text files for use +in other programs. This is useful when HydroDesktop does not include all of +the analysis capabilities needed, or when the user prefers to work with +downloaded data in another program. + +How To Export Data +------------------ + +Time series can be exported using a number of workflows. In addition, users +familiar with SQLite can access the time series database directly. The +database is typically located in the same directory where you saved your +project. + +Exporting using the Data Export Tool +'''''''''''''''''''''''''''''''''''' + +On the *Table* tab of the ribbon, click the **Export** button to invoke the +data export dialog. + +Exporting from the Series Selector +'''''''''''''''''''''''''''''''''' + +In views such as table view or graph view, a series selector shows a list of +time series on the left side of the display. To export a time series, +right-click the time series in the series selector and click **Export Series**. + +Exporting from the Map Legend +''''''''''''''''''''''''''''' + +In views such as map view, a legend shows a list of map layers on the left side +of the display. If a data search or download has been performed, a group layer called +*Data Sites* will be included in the legend, with each layer in this group +symbolized by data source. Layers with downloaded data will include a box drawn +around the site symbol. + +To export downloaded data for a given data source, right-click the layer name +for that data source, point to **Data**, and click **Export Time Series Data**. + +Export Options +-------------- + +When exporting time series data, a dialog like the one below provides options +for the data export. + +.. figure:: ts-export-dialog.PNG +Time Series Export Dialog + +This dialog allows the user to set the following options: + +* Which themes will be included +* Whether or not 'No Data' values will be included. +* Which fields will be included to describe each time series value +* Which delimiter will be used to separate field values +* Output file name and location + +.. note:: When exporting individual time series using the series selector, not all export options may be available. + +After clicking **Export Data** in the dialog, the time series data are exported +to a text file. You can close the dialog once the export is complete. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/guide-books/ExportingTimeSeries/ts-export-dialog.PNG b/Documentation/OnlineHelp/source/guide-books/ExportingTimeSeries/ts-export-dialog.PNG new file mode 100644 index 00000000..e57ffb30 Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/ExportingTimeSeries/ts-export-dialog.PNG differ diff --git a/Documentation/OnlineHelp/source/guide-books/ImportingTimeSeries/time-series-import.rst b/Documentation/OnlineHelp/source/guide-books/ImportingTimeSeries/time-series-import.rst new file mode 100644 index 00000000..4097871a --- /dev/null +++ b/Documentation/OnlineHelp/source/guide-books/ImportingTimeSeries/time-series-import.rst @@ -0,0 +1,54 @@ +.. index:: + single: data, time series import + single: time series import + single: importing time series data + single: data import + +Time Series Data Import +======================= + +HydroDesktop can import time series data from delimited text files and from +Microsoft Excel files. This is useful when some of the data for your analysis +is not available online and when you want to use HydroDesktop to compare the +online downloaded data with your own data. + +How To Import Data +------------------ + +Time series can be imported using the data import tool. In addition, users +familiar with SQLite can modify the time series database directly. The +database is located in the same directory where you saved your +project. + +Importing using the Data Import Tool +'''''''''''''''''''''''''''''''''''' + +On the *Table* tab of the ribbon, click the **Import** button to invoke the +data import dialog. +In the first step, select the file to import. The file must be an Excel, CSV, +WaterML or text file with at least two columns: Time and Value. The file can +contain a single time series (one variable at one site) or multiple time series +(several variables and / or several sites). + +Format Options +-------------- + +For correct data import of text files, it is necessary to set up the format options. +Typically the text files use the delimited format options with one of the following separators: +Comma, Tab, Space, Pipe or Semicolon. + +Properties of Imported Fields +----------------------------- + +The imported file must contain one Date/Time column. The system will try to select this column +automatically. For all other columns that you wish to import, the properties must be specified. +These properties are: Site, Variable, Source, Method, Quality Control and Offset. The Site and +Variable properties are required. If your cureent Hydrodesktop project already contains data, +you may select an existing site or an existing variable. Otherwise, use the Create new... button +to specify a new site. + +.. figure:: ts-import-dialog.png +Time Series Import Dialog + +.. figure:: ts-import-columns.png +Time Series Properties of imported columns \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/guide-books/ImportingTimeSeries/ts-import-columns.png b/Documentation/OnlineHelp/source/guide-books/ImportingTimeSeries/ts-import-columns.png new file mode 100644 index 00000000..208e1bf0 Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/ImportingTimeSeries/ts-import-columns.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/ImportingTimeSeries/ts-import-dialog.png b/Documentation/OnlineHelp/source/guide-books/ImportingTimeSeries/ts-import-dialog.png new file mode 100644 index 00000000..41f58b4e Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/ImportingTimeSeries/ts-import-dialog.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Interpolation/Interpolation.rst b/Documentation/OnlineHelp/source/guide-books/Interpolation/Interpolation.rst new file mode 100644 index 00000000..c4f3ddaf --- /dev/null +++ b/Documentation/OnlineHelp/source/guide-books/Interpolation/Interpolation.rst @@ -0,0 +1,129 @@ +.. index:: Interpolation + + +Interpolation Tool +================== + +Creating Interpolated Maps +-------------------------- + +After you downloaded or imported time series data into HydroDesktop, you can use the interpolation tool to calculate data values +at points without observations and to create continuous interpolated maps. The interpolation tool takes values at sampling points +(data sites), examines the spatial relationship between the points and their values (are nearby points more likely to have similar +value?), creates a regular raster (grid) and calculates a new data value at each point of the grid. + +#. :ref:`Data aggregation ` +#. :ref:`Interpolation - apply interpolation method ` +#. :ref:`Set color scheme of interpolated map ` + +In the data aggregation step you select a time period and the aggregation statistic: maximum, minimum, average or sum. The data +aggregation step is necessary, because for each site (station) there are multiple observations. +The observations at each station are not always at synchronous times. The data aggregation step ensures that for each station +there will be a representative data value for the selected period. If a station has no data values within the period, then it is +excluded from the interpolation. + +.. _interpolation-data-aggregation: + +Data Aggregation +---------------- + +To start the data aggregation step: + +#. Go to the map tab. +#. Right-click on the Data layer in the map legend +#. In the context menu select Data – Show Data Values In Map. The picture below shows this step. + +.. figure:: ./images/interpolation_fig01.png + +Data Aggregation Settings +''''''''''''''''''''''''' + +The data aggregation settings dialog selects the type of aggregation, time period, and other options. +The options are explained here: + +.. figure:: ./images/interpolation_fig01a.png + +Select the aggregation settings in the dialog window + +The aggregation settings are: + +#. Type of aggregation: specifies, how the value is calculated at each site. the options are MAX (maximum), MIN (minimum), AVG (average), SUM (the sum) +#. Variable: this shows the variable code. This is the type of the observation. You can look up more information about variable by right-clicking a time series in the graph or table tabs. +#. Start time: beginning time of the aggregation. By default this is the earliest observation data point for the selected data sites layer. +#. End time: ending time of the aggregation. By default this is the latest observation data point for the selected data sites layer. +#. Decimal places: number of decimal places (rounding of calculated values). Use this option to control the map display of the data values. +#. Create new layer: If checked, this will create a new layer to the map. This layer has the column with the calculated value and a column PercAvailable that indicates the percentage of valid observation data points within the selected period at the station. +#. Create categories: If checked, then the points will be shown as circles with different sizes proportional to the aggregated data value. + +.. note:: Observations with unknown value ('NoData value, usually coded as -9999) are excluded from the aggregation. + +.. _interpolation-methods: + +Interpolation Methods +--------------------- + +Two types of interpolation methods are available in the interpolation tool tab: **Geostatistical methods** and **Deterministic methods**. + +Interpolation - Geostatistical Methods +'''''''''''''''''''''''''''''''''''''' + +.. figure:: ./images/interpolation_fig02.png + +The first step in interpolation is selecting the layer and selecting a field. This is the column in the attribute table that +has the data values. + +.. note:: Only point layers that have a column with numeric values and at least 7 points are shown in the list. + +Interpolation - Semivariogram +''''''''''''''''''''''''''''' + +The next step is viewing the semi-variogram. This graph shows the statistical relationship between distances of point pairs +and the semi-variance of point values. + +.. figure:: ./images/interpolation_fig03.png + +Interpolation - Cross-Validation +'''''''''''''''''''''''''''''''' + +The next important step is cross-validation. For randomly selected points, the point is excluded from the dataset and its value is calculated +using the interpolation method. It is then compared to the original value. Cross-validation provides information about error +introduced by the interpolation. + +.. figure:: ./images/interpolation_fig04.png + +Interpolation - Set Output Extent +''''''''''''''''''''''''''''''''' + +In the last step you have an option to set the "Extension area". Use this option when you need to extrapolate values outside +of the bounding box of the data points. + +.. figure:: ./images/interpolation_fig05.png + + + +Interpolation - Deterministic Methods +''''''''''''''''''''''''''''''''''''' + +Instead of geostatistical methods, you can also use the deterministic method: inverse distance weighted, radial basis function, +local polynomial or global polynomial. Follow the steps to complete the interpolation + + + +.. _interpolation-set-color-scheme: + +Setting the interpolated map color scheme +----------------------------------------- + +#. Change the color scheme of the raster: +#. Right click on the layer in the map legend table of contents and select Properties. +#. Change the color ramp to RGB, set Start Color to light blue, End Color to dark blue and set number of breaks to 5 (Num Breaks in the “Statistics” tab). +#. Click the “OK” button. This will re-color your raster data map to represent five different levels of precipitation. + +.. figure:: ./images/interpolation_fig06.png +Interpolated layer color scheme setting + +Display the final map +''''''''''''''''''''' + +.. figure:: ./images/interpolation_fig07.png +The final interpolated map \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig01.png b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig01.png new file mode 100644 index 00000000..6b0f3d6f Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig01.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig01a.png b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig01a.png new file mode 100644 index 00000000..f6caee09 Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig01a.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig02.png b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig02.png new file mode 100644 index 00000000..715f5149 Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig02.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig03.png b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig03.png new file mode 100644 index 00000000..30399fb4 Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig03.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig04.png b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig04.png new file mode 100644 index 00000000..ad3b5516 Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig04.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig05.png b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig05.png new file mode 100644 index 00000000..ef791b9e Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig05.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig06.png b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig06.png new file mode 100644 index 00000000..839aae13 Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig06.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig07.png b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig07.png new file mode 100644 index 00000000..eee5513c Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Interpolation/images/interpolation_fig07.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Map/Map.rst b/Documentation/OnlineHelp/source/guide-books/Map/Map.rst new file mode 100644 index 00000000..841333c9 --- /dev/null +++ b/Documentation/OnlineHelp/source/guide-books/Map/Map.rst @@ -0,0 +1,70 @@ +.. index:: Map + + +Working with the Map +==================== + + + +#. :ref:`Map Layers ` +#. :ref:`Selection ` +#. :ref:`Attribute Table ` +#. :ref:`Map Layout ` + +.. _map-working-with-map-layers: + +Working with Map Layers +----------------------- + +The spatial data in HydroDesktop is organized in map layers. The list of all map layers is shown in the legend. Checking or unchecking a layer checkbox shows or hides the layer in the map. +There are five main types of layers: +* Point Layer (for example, cities) +* Line Layer (for example, rivers) +* Polygon Layer (for example, lakes) +* Raster Layer (for example, elevation) +* Background Map Layer (for example, satellite images) + +Each layer has a data set storing the associated spatial data. The data set can be a file on the local computer or it can be an online dataset (web map service). Some spatial data are +shipped with HydroDesktop. These include the 'World' and 'North America' templates and the 'jacobs_well_spring' and 'elbe' sample projects. + + To add a new layer to the map, click the *Add* button in the main toolbar. + + To change the color scheme or symbol of a layer, right-click on the layer in the legend and select *Properties*. + + To add labels to the layer, right-click on the layer in the legend and select *Labeling - Label Setup*. + +.. _map-selection: + +Selection +--------- + +You can highlight features in a map layer by using *Selection*. To enable selection, use the *Select* tool in the main toolbar. Click on a feature in the map to select it. The selected +feature is highlighted in light blue color. Holde the *CTRL* button to select more features. To deselect all features, click the *Deselect All* button in the main toolbar. + +.. _map-attribute-table: + +Attribute Table +--------------- + +Each point, line or polygon layer has an *Attribute table* associated with it. This table shows additional information describing the layer. For example, the attribute table of the +Countries layer has fields describing the country names, areas and populations. + +There are two ways to view or edit the attribute table: + * Click the *View Attribute Table* button in the main toolbar. + * Right-click on layer in the legend and select *Attribute Table Editor*. + +If some features in the layer are selected, then the corresponding rows in the attribute table are also selected. You can also use the *Query* tool in the selection menu of the attribute +table editor to filter the data using a custom query expression. + +.. _map-layout: + +Layout +------ + +To print or export a map, or set up the map layout by going to the *File* menu in the main toolbar and selecting *Print Layout*. This displays the Print Layout window. + * To add a map to the layout, click on the *Insert Map* button and drag-drop it to the layout. You can change the scale of the map by changing the Scale value in the map properties + of the layout. + + * To add a legend to the layout, click on the *Insert Legend* button and drag-drop it to the layout + + * You can also add a scale bar, north arrow, text or picture to the layout. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/guide-books/Search/Search.rst b/Documentation/OnlineHelp/source/guide-books/Search/Search.rst new file mode 100644 index 00000000..7ff2632e --- /dev/null +++ b/Documentation/OnlineHelp/source/guide-books/Search/Search.rst @@ -0,0 +1,185 @@ +.. index:: Search + + +Searching for Data +================== + +When searching for data in HydroDesktop, you can specify the following filters: + +#. :ref:`Area of interest ` +#. :ref:`Keywords (e.g., Precipitation) ` +#. :ref:`Time range ` +#. :ref:`Data sources ` + +Once you :ref:`initiate a search`, HydroDesktop queries the CUAHSI-HIS national catalog of known time series data to find locations of time series that match your search. +Search results are presented in the map and include information that HydroDesktop +can use to connect to each individual data provider for data access. + +You can then further filter the results and choose which data you want to actually :ref:`download`. + +.. figure:: ./images/Search_fig01.png + +The tools for running a search are located on the *Search* tab of the HydroDesktop ribbon. +The panels in this tab represent the steps in the workflow above. + +.. figure:: ./images/Search_fig02.png + +.. _search-specifying-area-of-interest: + +Specifying Area of Interest +--------------------------- + +There are two ways of specifying an area of interest for the search: *drawing a box* or *selecting a polygon*. + +Drawing a Box +''''''''''''' + +If you are very familiar with the location of your study area, then drawing a box may be the easiest option. + +To draw a box around your area of interest: + +#. Use the tools on the *Map* tab to locate and zoom in to your area of interest. +#. On the *Search* tab, click the **Draw Rectangle** tool. +#. With the left mouse button, click and drag in the map to draw a box around your study area. + +.. figure:: ./images/Search_fig03.png + + Once a box is drawn, it is highlighted in the map + +Selecting a Polygon +''''''''''''''''''' + +If a polygon feature in the map represents your area of interest, you can select that polygon to be used in the search. +For example, the polygon could represent a county as found in the U.S. Counties dataset included with HydroDesktop, +or the polygon could come from a shapefile that you created and added to the map. + +You can either select polygons by location or by attributes of the polygon feature. + +To select polygons by location: + +#. In the *Legend*, left-click to select the map layer that you want to use. Note that you must select a polygon layer. The search will not work with online basemap data, point layers, or line layers. +#. In the *Legend*, make sure the desired map layer is visible by placing a check in the box next to the layer's name. +#. On the *Search* tab, click the **Select Features** tool. This tool works like the **Select** tool on the Map tab, and either tool can be used to select features. +#. With the left mouse button, click a polygon in the map or draw a box that intersects one or more polygons to select those features. + +.. figure:: ./images/Search_fig04.png + + A selected polygon is highlighted in the map + +Alternately, you can select polygons using attributes of polygon features. + +To select polygons by attributes: + +#. In the *Legend*, make sure the desired map layer is visible by placing a check in the box next to the layer's name. +#. On the *Search* tab, click the **Select by Attribute** button. +#. In the dialog that opens, choose the layer of interest, an attribute of that layer, and then the value of the attribute that will be used to identify the polygon of interest. To choose the value, you can either select it from the list or type in the desired value. +#. With the attribute value highlighted, click **OK** to close the dialog and select the feature. + +.. figure:: ./images/Search_fig05.png + +.. _search-choosing-keywords: + +Choosing Keywords +----------------- + +To faciliate searching across a variety of data sources, each with their own naming conventions for hydrologic parameters, CUAHSI maintains an ontology of hydrologic *keywords* to which a given data source's parameters are mapped. +This means a search for the keyword *Precipitation* will return results even if a data source calls that parameter "rainfall" or "precip" instead. + +You can choose from one or more of these keywords when conducting a search. + +To quickly choose a single keyword: + +#. In the *Keyword* panel on the *Search* tab, locate the drop down box where you can type a keyword. +#. Start typing the keyword, e.g., *streamflow*, in the box. The box autocompletes to a valid keyword based on what you type. Or, you can click the drop down arrow to choose a keyword from the list. + +To select multiple keywords: + +#. In the *Search* tab, click the **Add More Keywords** button. +#. In the dialog that opens, choose a keyword by either typing it in the text box at the top or by browsing the keywords and selecting a desired keyword. +#. With a keyword highlighted, click the green plus sign to add it to the list of selected keywords. +#. Repeat steps 2 and 3 to add more keywords. +#. Click **OK** when all desired keywords have been added. + +.. figure:: ./images/Search_fig06.png + +.. note:: If you are interested in all variables, then select the top-level **Hydrosphere** keyword. + +.. _search-setting-a-time-range: + +Setting a Time Range +-------------------- + +Search results will only be returned if the period of record for a time series intersects the time range that you specify. + +To quickly set the time range, enter the start and end dates into the boxes in the *Time Range* panel of the *Search* tab. Default values are provided as a guide. + +For more advanced options regarding time ranges, click the **Select Time** button. This button opens a dialog in which you can manually set the start and end dates or quickly select a recent period such as the last month. + +.. _search-choosing-data-sources: + +Choosing Data Sources +--------------------- + +Dozens of data source publish data using WaterOneFlow, making them accessible in HydroDesktop. These data sources register with CUAHSI's HIS Central, where a catalog of all data sources and what parameters those data sources publish is maintained. + +By default, when HydroDesktop performs a search, it sends the request to HIS Central. HIS Central searches its catalog to see who has time series that match the search criteria, and is sends back search results to HydroDesktop. + +In many cases, this default behavior is fine and there is no need to modify this aspect of search. However, you do have a couple of advanced options available to you. + +One of these options is to **restrict the search to specific data sources**. You might do this when you know you only want to work with USGS data. + +To restrict the option to particular data sources: + +#. On the *Search* tab, click the **Select Data Sources** button. +#. In the dialog that opens, place a check next to services that you do not want to exclude from the search, and click **OK**. + +Another option you have is to search the local metadata cache instead of HIS Central. +The *metadata cache* is a database, much like the one at HIS Central, which catalogs what parameters are available from certain data sources. +However, the metadata cache is created by you and managed by you. It has no ties to HIS Central. +Creating a metadata cache is useful if you are aware of services that are not registered at HIS Central. These services wouldn't be returned in HIS Central search results, but may still be useful to you. +For more information on creating a metadata cache, see :doc:`/extensions/MetadataFetcher/MetadataFetcher`. + +To search the metadata cache instead of HIS Central: + +#. On the *Search* tab, click the **Select Data Sources** button. +#. In the dialog that opens, check the **Local Data Source** radio-button and click **OK**. + +.. note:: You must have already harvested data into the metadata cache before attempting to search it. + +.. _search-running-a-search: + +Running a Search +---------------- + +With search parameters set, follow these steps to run a search: + +#. In the *Search* tab, click the **Run Search** button. +#. When the dialog indicates the search has finished, click to **Hide** the dialog. + +Locations of time series that match your search criteria are displayed in the map and symbolized by data source and number of data values available. +You can hover your mouse over one of the symbols in the map to see more about that location. + +.. figure:: ./images/Search_fig07.png + +.. _search-downloading-data: + +Downloading Data +---------------- + +There are a couple of ways to download data from search results. The easiest is to hover the mouse over the location of a desired time series in the map, and in the pop-up window that opens, click the **Download** button. + +If you would like to download multiple time series, then you can select them and click the **Download** button on the *Search* tab. +You select series the same way you select other features in the map. +For example, you can use the **Select** tool on the *Map* tab to click on or draw a box around the time series you want to download. + +When the download begins, the Download Manager shows detailed progress of each download. + +.. figure:: ./images/Search_fig08.png + + Download Manager + +When the download completes, click to **Hide** the dialog. +If any errors occur during the download, you can click to view the details of the download attempt or attempt to re-download the series with errors. +You can also copy the error log so that you can post it to the HydroDesktop issue tracker, thereby alerting the development team to potential issues with the system. + +With the download complete, you can now visualize, analyze, and export the data using HydroDesktop's other capabilities. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig01.png b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig01.png new file mode 100644 index 00000000..93c0778c Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig01.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig02.png b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig02.png new file mode 100644 index 00000000..e50425bd Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig02.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig03.png b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig03.png new file mode 100644 index 00000000..e4854eea Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig03.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig04.png b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig04.png new file mode 100644 index 00000000..75e63ef5 Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig04.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig05.png b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig05.png new file mode 100644 index 00000000..3823b741 Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig05.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig06.png b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig06.png new file mode 100644 index 00000000..fa4534bd Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig06.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig07.png b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig07.png new file mode 100644 index 00000000..f6fba87e Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig07.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig08.png b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig08.png new file mode 100644 index 00000000..825011cb Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/Search/images/search_fig08.png differ diff --git a/Documentation/OnlineHelp/source/guide-books/TableView/TableView.rst b/Documentation/OnlineHelp/source/guide-books/TableView/TableView.rst new file mode 100644 index 00000000..590c6316 --- /dev/null +++ b/Documentation/OnlineHelp/source/guide-books/TableView/TableView.rst @@ -0,0 +1,19 @@ +.. index:: Table tab + +Table Tab +=========== + +The Table Tab in HydroDesktop provides functions to view and export time series data. +You can also change the current database and build your own local metadata cache +using the tools on this tab. + +.. figure:: ./images/Table_introduction.png + + Table tab + +For more information on exporting time series data, see :doc:`/guide-books/ExportingTimeSeries/time-series-export`. + +For more information on the local metadata cache, see :doc:`/extensions/MetadataFetcher/MetadataFetcher`. + +For more information on the current database path and working with databases, see +:doc:`/working-with-databases`. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/guide-books/TableView/images/Table_introduction.png b/Documentation/OnlineHelp/source/guide-books/TableView/images/Table_introduction.png new file mode 100644 index 00000000..eb3c55e6 Binary files /dev/null and b/Documentation/OnlineHelp/source/guide-books/TableView/images/Table_introduction.png differ diff --git a/Documentation/OnlineHelp/source/using-the-file-menu.rst b/Documentation/OnlineHelp/source/using-the-file-menu.rst new file mode 100644 index 00000000..f9fd3cdf --- /dev/null +++ b/Documentation/OnlineHelp/source/using-the-file-menu.rst @@ -0,0 +1,20 @@ +.. index:: File Menu + +Using the File Menu +=================== + +The HydroDesktop File Menu provides access to general application-wide functionality such as printing and saving. + +.. index:: + single: version number; getting + single: getting the version number + +Getting Your HydroDesktop Version Number +---------------------------------------- + +Knowing the HydroDesktop version helps you check if you have the latest version of the software, and can also be useful when reporting bugs. + +To check for your HydroDesktop version number: + +#. Click the File menu. +#. Click About. The dialog that opens will show you the version number. \ No newline at end of file diff --git a/Documentation/OnlineHelp/source/version-history.rst b/Documentation/OnlineHelp/source/version-history.rst new file mode 100644 index 00000000..2a6c7211 --- /dev/null +++ b/Documentation/OnlineHelp/source/version-history.rst @@ -0,0 +1,161 @@ +.. index:: + single: history; versions + single: version history + single: releases + + +Version History +=============== + +Release 1.5 Build 2 (June 2, 2012) +---------------------------------- + +* Time series data import from text files and from Excel +* Improved performance of graph and table views for large time series +* Improved performance of data download for large time series +* Display of complete metadata in the series properties window + +Release 1.4 Build 6 (Feb 21, 2012) +---------------------------------- + +* Showing aggregated data values in map +* Geostatistical tool (kriging and IDW interpolation) +* Option to update all time series from server. +* Additional extensions available using the extension manager + +* Fixed issue 8417 Saving project doesn't save all files to user-specified folder +* Fixed issue 8410 User with limited privileges cannot modify sample projects +* Fixed issue 8414 Change database fails if current database doesn't exist +* Fixed issue 8307 Add tool for unselecting features +* Fixed issue 8388 File - new doesn't reset the basemap +* Fixed issue 8363 Startup logging +* Fixed issue 8411 Change Database - Context menu items not added to map layer +* Fixed issue 8412 Incorrect context menu of Data Sites layer after opening project +* Fixed issue 8363 Startup Logging +* Fixed issue 8400 Metadata fetcher - incorrect start date and end date in search results +* Fixed issue 8399 Metadata fetcher - improve speed +* Fixed issue 8404 Data download fails when download directory doesn't exist +* Fixed issue 8351 Update Unpublished Web Services Tutorial +* Fixed issue 8391 Data Download: Time is Truncated from DateTime +* Fixed issue 8396 Incorrect Lat / Lon display in status bar after creating new empty project +* Fixed issue 8352 Clicking on Search Tab goes to Map Tab +* Fixed issue 8257 Edit View - Data Filter - Show number of selected values +* Fixed issue 8366 File - New doesn't do anything +* Fixed issue 8371 Unhandled error when opening project file that includes delineated watersheds +* Fixed issue 8384 Project always opens in WGS 84 Projection +* Fixed issue 8375 Show Observation Data Values in Map and in Layer Attribute Table +* Fixed issue 8379 Series without a Theme are not shown in the map +* Fixed issue 8374 Edit Plug-in fails to Add Point +* Fixed issue 8361 File association with dspx project file not working +* Fixed issue 8370 HydroDesktop shows Welcome screen if I double-click a project file +* Fixed issue 8279 Series Selector does not show all series +* Fixed issue 8332 Change database - Data Sites are not shown in map + +Release 1.3 Build 246 (Dec 15, 2011) +------------------------------------ + +* Search toolbar moved to the main ribbon +* Pop-up map context menu for quick time series download from selected site added +* Download speed for very large time series improved +* Support for re-sizing and docking the map, graph, table and edit panels added +* Data export option using the map context menu added +* Support for using online published 3rd-party extensions added +* Quick context menu for updating data from server added +* Graph display options improved - show site name or site code, show variable name in graph legend +* Support for more web basemap layers added and basemap display speed improved +* Documentation and help files updated + +Release 1.2 Build 625 (Oct 14, 2011) +------------------------------------ + +* Download manager added and data download speed improved +* Fixed issue 7175 - Project File doco with tests +* Fixed issue 8093 - Graph View error after opening project or changing database +* Fixed issue 8094 - Table view does not refresh after changing database +* Fixed issue 8095 - Include a sample project and database +* Fixed issue 8127 - Graph date range change doesn't affect the ribbon +* Fixed issue 8166 - Incorrect series are storing in theme and display in graph +* Fixed issue 8174 - Cannot use sandbox HIS Central in advanced settings +* Fixed issue 8177 - Data export doesn't include speciation +* Fixed issue 8178 - Variable name in graph legend +* Fixed issue 8186 - HydroModeler images in help documentation +* Fixed issue 8187 - Show all fields in sequence is not refreshing table +* Fixed issue 8197 - HydroR - unable to read data series if current project folder has spaces in the folder name +* Fixed issue 8208 - HydroR - Set path to R +* Fixed issue 8209 - show more descriptive error messages in download manager +* Fixed issue 8213 - incorrect map icon display +* Fixed issue 8214 - List of services not refreshing when searching with metadata cache option +* Fixed issue 8220 - EPA Watershed Tool not working +* Fixed issue 8250 - Welcome Screen doesn't close when pressing Enter +* Fixed issue 8254 - changing column width in table plugin +* Fixed issue 8247 - Incorrect map icon display for recently added service +* Fixed issue 8248 - Error saving multiple series from GetValues xml file +* Fixed issue 8219 - Error using the 'Sandbox HIS Central' catalog +* Fixed issue 8241 - Searching for Total Dissolved Solids +* Fixed issue 8248 - Multiple Series in Xml File +* Fixed issue 8249 - NullReferenceException in EPA Delineation Plugin +* Fixed issue 8255 - Data Export does not export censor code +* Fixed issue 8260 - HydroR Issue +* Fixed issue 8261 - Graph plug-in (export to text file) +* Fixed issue 8262 - Edit plug-in: setting 'flag' +* Fixed issue 8264 - Welcome screen - click on existing project + + +Release 1.1 Beta 390 (Jan 26, 2011) +------------------------------------ + +Release 1.1 Beta 342 (Dec 9, 2010) +----------------------------------- + +* Fixed issue 7175 - Project File doco with tests +Fixed issue 8093 - Graph View error after opening project or changing database +Fixed issue 8094 - Table view does not refresh after changing database +Fixed issue 8095 - Include a sample project and database +Fixed issue 8127 - Graph date range change doesn't affect the ribbon +Fixed issue 8166 - Incorrect series are storing in theme and display in graph +Fixed issue 8174 - Cannot use sandbox HIS Central in advanced settings +Fixed issue 8177 - Data export doesn't include speciation +Fixed issue 8178 - Variable name in graph legend +Fixed issue 8186 - HydroModeler images in help documentation +Fixed issue 8187 - Show all fields in sequence is not refreshing table +Fixed issue 8197 - HydroR - unable to read data series if current project folder has spaces in the folder name +Fixed issue 8208 - HydroR - Set path to R +Fixed issue 8209 - show more descriptive error messages in download manager +Fixed issue 8213 - incorrect map icon display +Fixed issue 8214 - List of services not refreshing when searching with metadata cache option +Fixed issue 8220 - EPA Watershed Tool not working +Fixed issue 8250 - Welcome Screen doesn't close when pressing Enter +Fixed issue 8254 - changing column width in table plugin +Fixed issue 8247 - Incorrect map icon display for recently added service +Fixed issue 8248 - Error saving multiple series from GetValues xml file +Fixed issue 8219 - Error using the 'Sandbox HIS Central' catalog +Fixed issue 8241 - Searching for Total Dissolved Solids +Fixed issue 8248 - Multiple Series in Xml File +Fixed issue 8249 - NullReferenceException in EPA Delineation Plugin +Fixed issue 8255 - Data Export does not export censor code +Fixed issue 8260 - HydroR Issue +Fixed issue 8261 - Graph plug-in (export to text file) +Fixed issue 8262 - Edit plug-in: setting 'flag' +Fixed issue 8264 - Welcome screen - click on existing project + +Release 1.1 Beta RC4 (Aug 28, 2010) +----------------------------------- + +* Help system added as Help tab to ribbon. +* #6975: Introduced failover to backup HIS Central if main HIS Central is down. + +Release 1.0 Beta RC12 (Aug 20, 2010) +------------------------------------ + +* Implemented Ribbon in the user interface. +* Implemented search functionality as a side panel next to the map. + +Release 1.0 Beta RC9 (Jul 19, 2010) +------------------------------------ + +* Build released for the CUAHSI Biennial Colloquium. + +Release 0.7 Alpha (Mar 25, 2010) +-------------------------------- + +* First public release. diff --git a/Documentation/OnlineHelp/source/welcome.rst b/Documentation/OnlineHelp/source/welcome.rst new file mode 100644 index 00000000..efd58c9d --- /dev/null +++ b/Documentation/OnlineHelp/source/welcome.rst @@ -0,0 +1,40 @@ +.. index:: welcome + +.. HydroDesktop documentation master file, created by + sphinx-quickstart on Thu Jul 22 16:24:13 2010. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to HydroDesktop Help +============================ + +Welcome to the help system for HydroDesktop. This help system provides comprehensive documentation for all aspects of using HydroDesktop, as well as complete walkthroughs for performing example use cases. + +About HydroDesktop +------------------ + +HydroDesktop is a free and open source desktop application developed in C# .NET that serves as a client for CUAHSI HIS WaterOneFlow Web services data and includes data discovery, download, visualization, editing, and integration with other analysis and modeling tools. By communicating with WaterOneFlow, HydroDesktop gives the user access to rich hydrologic datasets that have been published using this Web service standard. + +The HydroDesktop source code is hosted on Codeplex at http://hydrodesktop.codeplex.com/. For more information about CUAHSI HIS, see the HIS Web site at http://his.cuahsi.org/. + + + +Table of Contents +----------------- + +.. toctree:: + :maxdepth: 2 + + general-concepts + guide-books + extensions/extensions + version-history + +Additional Resources +-------------------- + +* :ref:`genindex` +* :ref:`search` + +In addition to this help system, you can find documentation at http://hydrodesktop.codeplex.com/documentation. + diff --git a/Documentation/OnlineHelp/source/working-with-databases.rst b/Documentation/OnlineHelp/source/working-with-databases.rst new file mode 100644 index 00000000..0e86fbf1 --- /dev/null +++ b/Documentation/OnlineHelp/source/working-with-databases.rst @@ -0,0 +1,38 @@ +.. index:: + single: databases; working with + single: working with databases + +Working with Databases +====================== + +Temporal data are stored in a relational database called the Data Repository. Catalogs of available data, which may not yet have been downloaded into the Data Repository, are maintained in another database called the Metadata Cache database. + +Tools in HydroDesktop know how to read these databases and present information from them to the user, and they also know how to properly save information to these databases. Therefore, it's generally a good idea to use HydroDesktop to work with these databases. However, some users may want to open the databases directly. This page describes how to locate and open HydroDesktop databases outside of HydroDesktop. + +.. index:: + single: databases; locating + single: locating databases + +Locating the HydroDesktop Databases +----------------------------------- + +The *Data Repository* and *Metadata Cache* databases are linked to the current project opened in HydroDesktop. To locate the Data Repository database: + +#. In the Ribbon, in the **Table** tab, in the **Database** panel, click **Change**. The location of the current database is shown in the dialog that opens. + +The *Metadata Cache* database has the name ending with _cache.sqlite. To locate the Metadata cache database: + +#. In the Ribbon, in the **Table** tab, in the **Database** panel, click **Change**. The location of the current metadata cache database is shown in the dialog that opens. + +.. index:: + single: databases; viewing + single: viewing databases + +Viewing the HydroDesktop Databases +---------------------------------- + +HydroDesktop attempts to provide simplified and useful views into its databases through its user interface. However, it is also possible to open and peruse the database contents directly. By default, HydroDesktop uses SQLite as its database format. You can view the contents of a SQLite database using the following free viewers: + +* SQLite Database Browser - http://sourceforge.net/projects/sqlitebrowser/ +* Firefox SQLite Manager Add-on (requires Firefox) - https://addons.mozilla.org/en-US/firefox/addon/5817/ + diff --git a/Documentation/OnlineHelp/~$adme Help Authors.docx b/Documentation/OnlineHelp/~$adme Help Authors.docx new file mode 100644 index 00000000..fb2c244d Binary files /dev/null and b/Documentation/OnlineHelp/~$adme Help Authors.docx differ diff --git a/Documentation/how_to_make_packages.txt b/Documentation/how_to_make_packages.txt new file mode 100644 index 00000000..8370fcf1 --- /dev/null +++ b/Documentation/how_to_make_packages.txt @@ -0,0 +1,10 @@ +Get a template ready for projects +Drop into visual studio into each project +name it package.nuspec +change the links +verify information in AssemblyInfo + +create package - HydroDesktop Core +create package - HydroDesktop Core Application Extensions + +create dependency in other packages that depend on HydroDesktop Core diff --git a/Installer/AboutThisFolder.txt b/Installer/AboutThisFolder.txt new file mode 100644 index 00000000..02784ae0 --- /dev/null +++ b/Installer/AboutThisFolder.txt @@ -0,0 +1,6 @@ +- This folder contains the INNO Setup files and configuration files for the Installer for HydroDesktop +- Installers get posted on the CodePlex Downloads page, but this folder is used to maintain the installer +- To rebuild the installer: + 1. Download the free InnoSetup program + 2. In InnoSetup, open the file setup.iss and select build - compile. + 3. This will create the installation file Installer\bin\HydroDesktopSetup.exe diff --git a/Installer/SetupImage.bmp b/Installer/SetupImage.bmp new file mode 100644 index 00000000..ab2959f0 Binary files /dev/null and b/Installer/SetupImage.bmp differ diff --git a/Installer/SetupImageSmall.bmp b/Installer/SetupImageSmall.bmp new file mode 100644 index 00000000..9dc6b7d4 Binary files /dev/null and b/Installer/SetupImageSmall.bmp differ diff --git a/Installer/setup.iss b/Installer/setup.iss new file mode 100644 index 00000000..1b3580af --- /dev/null +++ b/Installer/setup.iss @@ -0,0 +1,370 @@ +; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + +; NEEDS QUERY START PACK +;; http://www.jrsoftware.org/isdl.php + +;[ISSI] +;;#define Debug + +;; define some version parameters +;; from http://stackoverflow.com/questions/357803/automated-build-version-number-with-wix-inno-setup-and-vs2008 +;; or maybe http://agiletracksoftware.com/blog.html?id=4 +#define AppName "HydroDesktop 1.7.2" +#define SrcApp "HydroDesktop_1_7_2.exe" +#define FileVerStr GetFileVersion(SrcApp) +;#define StripBuild(str VerStr) Copy(VerStr, 1, RPos(".", VerStr)-1) +#define StripBuild(VerStr) Copy(VerStr, 1, RPos(".", VerStr)-1) +#define AppVerStr StripBuild(FileVerStr) +;#define MyAppPublisher "CUAHSI" +;#define MyAppURL "http://www.hydrodesktop.org" +;#define MyOutputBaseFilename "HydroDesktop09_Installer" + +;; Include ALL languages +;#define ISSI_Languages + +;; Create an About button in the Setup Wizard +;#define ISSI_About "{cm:issiAbout}" +;; Set date-time format and seperator +;#define ISSI_Constants "YYMDHMS" +;#define ISSI_ConstantsSeperator "." +;; Create a print button on the License page +;#define ISSI_LicensePrint +; Add BeveledLabel message (leave empty for default "Inno Setup" value) +;#define ISSI_BeveledLabel "HydroDesktop" + +[Setup] +; NOTE: The value of AppId uniquely identifies this application. +; Do not use the same AppId value in installers for other applications. +; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) +AppID={{DED92382-70DE-4917-9956-431324047ABD} + +PrivilegesRequired=poweruser +MinVersion=,5.01 +; Necessary setting for the 64bit version +ArchitecturesInstallIn64BitMode="x64 ia64" +AppName={#AppName} +AppVersion={#AppVerStr} +AppVerName={#AppName} {#AppVerStr} +UninstallDisplayName={#AppName} {#AppVerStr} +VersionInfoVersion={#FileVerStr} +VersionInfoTextVersion={#AppVerStr} +;OutputBaseFilename=MyApp-{#FileVerStr}-setup +AppPublisher="CUAHSI" +AppPublisherURL="www.cuahsi.org" +AppSupportURL="www.hydrodesktop.org" +AppUpdatesURL="www.hydrodesktop.org" +AppCopyright=Copyright CUAHSI 2009-2012 +AppContact="www.hydrodesktop.org" +VersionInfoCompany=CUAHSI [www.cuahsi.org] +VersionInfoCopyright=Mozilla Public License (MPL) 1.1 +VersionInfoDescription=HydroDesktop [www.HydroDesktop.org] +VersionInfoProductName="{#AppName} {#AppVerStr} +VersionInfoProductVersion={#AppVerStr} +DefaultDirName={pf}\CUAHSI HIS\{#AppName} +DefaultGroupName=CUAHSI HIS\{#AppName} +;If this is set to auto, at startup Setup will look in the registry +;to see if the same application is already installed, and if so, it +;will not show the Select Start Menu Folder wizard page. +AllowNoIcons=true +AlwaysShowComponentsList=false +;LicenseFile=Source\App\license.rtf +;InfoBeforeFile=Source\..\..\Documents\Pre-install.txt +;InfoAfterFile=Source\..\..\Documents\Post-install.txt +OutputDir=Releases +OutputBaseFilename="HydroDesktop16_Installer" + +;install to a separate directory +UsePreviousAppDir=no + +;SetupIconFile=HydroDesktop.ico +;UninstallDisplayIcon=HydroDesktop.ico +ChangesAssociations=true +Compression=lzma2/ultra64 +SolidCompression=true +InternalCompressLevel=ultra64 +WizardImageFile=SetupImage.bmp +WizardSmallImageFile=SetupImageSmall.bmp +;#ifdef Debug +;SetupLogging=true +;#endif +;[Languages] + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}" +Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked + +[Files] +Source: "..\Binaries\HydroDesktop.*.dll"; DestDir: "{app}"; Flags: ignoreversion; +Source: "..\Binaries\DotSpatial.*.dll"; DestDir: "{app}"; Flags: ignoreversion; +Source: "..\Binaries\Microsoft.*.dll"; DestDir: "{app}"; Flags: ignoreversion; + +Source: "..\Documentation\HydroDesktop_Quick_Start_Guide_1.5.pdf"; DestDir: "{app}\Help\html"; Flags: ignoreversion; +Source: "..\Documentation\HydroDesktop User Guide.pdf"; DestDir: "{app}\Help\html"; Flags: ignoreversion; + +Source: "..\Binaries\ZedGraph.dll*"; DestDir: "{app}"; Flags: ignoreversion; +Source: "..\Binaries\x86\SQLite.Interop.dll"; DestDir: "{app}\x86"; Flags: ignoreversion; +Source: "..\Binaries\x64\SQLite.Interop.dll"; DestDir: "{app}\x64"; Flags: ignoreversion; +Source: "..\Binaries\HydroDesktopSplashLogo.png"; DestDir: "{app}"; Flags: ignoreversion; +Source: "..\Binaries\HydroDesktop_1_6_dev.exe"; DestDir: "{app}"; DestName: "{#SrcApp}"; Flags: ignoreversion; +Source: "..\Binaries\HydroDesktop_1_6_dev.exe.config"; DestDir: "{app}"; DestName: "{#SrcApp}.config"; Flags: ignoreversion; + +;Plugins +Source: "..\Binaries\Plugins\*"; DestDir: "{commonappdata}\{#SrcApp}\Extensions\Packages"; Flags: recursesubdirs ignoreversion; +Source: "..\Source\packages\DotSpatial.Plugins.ExtensionManager.1.1.1\*"; DestDir: "{commonappdata}\{#SrcApp}\Extensions\Packages\DotSpatial.Plugins.ExtensionManager.1.1.1"; Flags: recursesubdirs ignoreversion; +Source: "..\Source\packages\DotSpatial.Plugins.MenuBar.1.0.1200\*"; DestDir: "{commonappdata}\{#SrcApp}\Extensions\Packages\DotSpatial.Plugins.MenuBar.1.0.1200"; Flags: recursesubdirs ignoreversion; +Source: "..\Source\packages\DotSpatial.Plugins.Ribbon.1.4.38\*"; DestDir: "{commonappdata}\{#SrcApp}\Extensions\Packages\DotSpatial.Plugins.Ribbon.1.4.38"; Flags: recursesubdirs ignoreversion; +Source: "..\Source\packages\DotSpatial.Plugins.WebMap.1.1.0.0\*"; DestDir: "{commonappdata}\{#SrcApp}\Extensions\Packages\DotSpatial.Plugins.WebMap.1.1.0.0"; Flags: recursesubdirs ignoreversion; + +;Windows Specific Folders +Source: "..\Binaries\Support\Windows\*"; DestDir: "{app}\Support\Windows\"; Flags: ignoreversion; + +[Icons] +Name: "{group}\{#AppName}"; Filename: "{app}\{#SrcApp}" +Name: "{group}\{cm:UninstallProgram,{#AppName}}"; Filename: "{uninstallexe}" +Name: "{commondesktop}\{#AppName}"; Filename: "{app}\{#SrcApp}"; Tasks: desktopicon + +[Registry] +Root: HKCR; Subkey: ".dspx"; ValueType: string; ValueName: ""; ValueData: "HD_Project"; Flags: uninsdeletevalue +Root: HKCR; Subkey: "HD_Project"; ValueType: string; ValueName: ""; ValueData: "HydroDesktop Project"; Flags: uninsdeletekey +Root: HKCR; Subkey: "HD_Project\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#SrcApp},0" +Root: HKCR; Subkey: "HD_Project\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#SrcApp}"" ""%1""" + +;[Run] +;Start HydroDesktop +;Filename: "{app}\HydroDesktop.exe"; Description: "{cm:LaunchProgram,HydroDesktop}"; Flags: nowait postinstall skipifsilent + +[InstallDelete] +Type: filesandordirs; Name: "{app}\*" +Type: files; Name: "{userappdata}\hydrodesktop_log.txt" +Type: filesandordirs; Name: "{localappdata}\CUAHSI\{#SrcApp}*" +Type: filesandordirs; Name: "{localappdata}\Temp\HydroDesktop" +Type: filesandordirs; Name: "{commonappdata}\{#SrcApp}" + +[UninstallDelete] +Type: filesandordirs; Name: "{app}\*" +Type: files; Name: "{userappdata}\hydrodesktop_log.txt" +Type: filesandordirs; Name: "{localappdata}\CUAHSI\{#SrcApp}*" +Type: filesandordirs; Name: "{localappdata}\Temp\HydroDesktop" +Type: filesandordirs; Name: "{commonappdata}\{#SrcApp}" + +[Dirs] +Name: {app}; Permissions: everyone-modify; Flags: uninsalwaysuninstall +Name: {app}\Maps; Permissions: everyone-modify; Flags: uninsalwaysuninstall +; not yet capable of moving stuff outside of the HD folder reliably +;Name: {userdocs}\HydroDesktop\default; Permissions: everyone-modify + +[Code] +function MsiQueryProductState(ProductCode: string): integer; +external 'MsiQueryProductStateA@msi.dll'; + +const + INSTALLSTATE_DEFAULT = 5; + INSTALLLEVEL_MAXIMUM = $ffff; + INSTALLSTATE_ABSENT = 2; + +function IsDotNET20Detected(): boolean; +var + NetSuccess: boolean; + NetInstall: cardinal; +begin + NetSuccess := RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727', 'Install', NetInstall); + Result := NetSuccess and (NetInstall = 1); + +//#ifdef Debug +// if Result then +// MsgBox('Found DotNET20', mbInformation, MB_OK); +//#endif + +end; + +function IsDotNET35Detected(): boolean; +var + NetSuccess: boolean; + NetInstall: cardinal; +begin + NetSuccess := RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5', 'Install', NetInstall); + Result := NetSuccess and (NetInstall = 1); + +//#ifdef Debug +// if Result then +// MsgBox('Found DotNET35', mbInformation, MB_OK); +//#endif +end; + +function IsDotNetDetected(version: string; service: cardinal): boolean; +// Indicates whether the specified version and service pack of the .NET Framework is installed. +// +// version -- Specify one of these strings for the required .NET Framework version: +// 'v1.1.4322' .NET Framework 1.1 +// 'v2.0.50727' .NET Framework 2.0 +// 'v3.0' .NET Framework 3.0 +// 'v3.5' .NET Framework 3.5 +// 'v4\Client' .NET Framework 4.0 Client Profile +// 'v4\Full' .NET Framework 4.0 Full Installation +// +// service -- Specify any non-negative integer for the required service pack level: +// 0 No service packs required +// 1, 2, etc. Service pack 1, 2, etc. required +var + key: string; + install, serviceCount: cardinal; + success: boolean; +begin + key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version; + // .NET 3.0 uses value InstallSuccess in subkey Setup + if Pos('v3.0', version) = 1 then begin + success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install); + end else begin + success := RegQueryDWordValue(HKLM, key, 'Install', install); + end; + // .NET 4.0 uses value Servicing instead of SP + if Pos('v4', version) = 1 then begin + success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount); + end else begin + success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount); + end; + result := success and (install = 1) and (serviceCount >= service); +end; + +function IsDotNet40Detected(): boolean; +begin + Result := IsDotNetDetected('v4\Client', 0); +end; + + +function IsMsiProductInstalled(const ProductId: string): boolean; +begin + Result := MsiQueryProductState(ProductId) = INSTALLSTATE_DEFAULT; +end; + +//http://download.microsoft.com/download/7/B/6/7B629E05-399A-4A92-B5BC-484C74B5124B/dotNetFx40_Client_setup.exe +function InstallDotNET40Client(): boolean; +var + ExpectedLocalLocation: String; + ErrorCode: Integer; +begin + ExpectedLocalLocation := ExpandConstant('{src}') + '\' + 'dotNetFx40_Client_setup'; + if not FileExists(ExpectedLocalLocation) then + ExpectedLocalLocation := ExpandConstant('{src}') + '\' + 'dotNetFx40_Client_setup.exe'; + + if FileExists(ExpectedLocalLocation) then + begin + ShellExec('open', ExpectedLocalLocation, '', '', SW_SHOW, ewNoWait, ErrorCode); + Result := MsgBox('Ready to continue HydroDesktop installation?' #13#13 '(Click Yes after installing .Net Framework 4.0 Client )', mbConfirmation, MB_YESNO) = idYes; + end + else + begin + if MsgBox('The .Net Framework 4.0 Client is required but was not found.' #13#13 'Open the web page for downloading .Net 4.0 Client now?', mbConfirmation, MB_YESNO) = idYes then + begin + ShellExec('open', 'http://download.microsoft.com/download/7/B/6/7B629E05-399A-4A92-B5BC-484C74B5124B/dotNetFx40_Client_setup.exe', '', '', SW_SHOW, ewNoWait, ErrorCode) + Result := MsgBox('Ready to continue HydroDesktop installation?' #13#13 '(Click Yes after installing .Net Framework 4.0 Client)', mbConfirmation, MB_YESNO) = idYes; + end + else + Result := MsgBox('.Net 4.0 Client Framework is required but was not found.' #13#13 'Continue HydroDesktop installation?', mbConfirmation, MB_YESNO) = idYes; + end; +end; + +function InstallDotNET(versionDotNET: string; file1: String; file2: String; urlFamilyID: String): Boolean; +var + ExpectedLocalLocation: String; + ErrorCode: Integer; +begin + ExpectedLocalLocation := ExpandConstant('{src}') + '\' + file1; + if not FileExists(ExpectedLocalLocation) then + ExpectedLocalLocation := ExpandConstant('{src}') + '\' + file2; + + if FileExists(ExpectedLocalLocation) then + begin + ShellExec('open', ExpectedLocalLocation, '', '', SW_SHOW, ewNoWait, ErrorCode); + Result := MsgBox('Ready to continue HydroDesktop installation?' #13#13 '(Click Yes after installing .Net Framework ' + versionDotNET + ')', mbConfirmation, MB_YESNO) = idYes; + end + else + begin + if MsgBox('The .Net Framework ' + versionDotNET + ' is required but was not found.' #13#13 'Open the web page for downloading .Net ' + versionDotNET + ' now?', mbConfirmation, MB_YESNO) = idYes then + begin + ShellExec('open', 'http://www.microsoft.com/downloads/details.aspx?FamilyID=' + urlFamilyID, '', '', SW_SHOW, ewNoWait, ErrorCode) + Result := MsgBox('Ready to continue MapWindow installation?' #13#13 '(Click Yes after installing .Net Framework ' + versionDotNET + ')', mbConfirmation, MB_YESNO) = idYes; + end + else + Result := MsgBox('.Net ' + versionDotNET + ' Framework is required but was not found.' #13#13 'Continue HydroDesktop installation?', mbConfirmation, MB_YESNO) = idYes; + end; +end; + +function CheckDotNetVersions(): Boolean; +begin + // v2.0 + Result := IsDotNET20Detected(); + if not Result then + begin + Result := InstallDotNET('v2.0', 'dotnetfx20.exe', 'dotnetfx_v2.0.exe', '79BC3B77-E02C-4AD3-AACF-A7633F706BA5'); + end; + + // v3.5 + Result := IsDotNET35Detected(); + if not Result then + begin + Result := InstallDotNET('v3.5', 'dotnetfx35.exe', 'dotnetfx_v3.5.exe', 'AB99342F-5D1A-413D-8319-81DA479AB0D7'); + end; + // v4.0 + Result := IsDotNET40Detected(); + if not Result then + begin + Result := InstallDotNET('v4.0', 'dotnetfx40.exe', 'dotnetfx_v4.0.exe', '7B629E05-399A-4A92-B5BC-484C74B5124B'); + end; + + + + +end; + + + + +function IsX64: Boolean; +begin + Result := Is64BitInstallMode and (ProcessorArchitecture = paX64); +end; + +function IsIA64: Boolean; +begin + Result := Is64BitInstallMode and (ProcessorArchitecture = paIA64); +end; + +function GetURL(x86, x64, ia64: String): String; +begin + if IsX64() and (x64 <> '') then + Result := x64; + if IsIA64() and (ia64 <> '') then + Result := ia64; + + if Result = '' then + Result := x86; +end; + +procedure CurUninstallStepChanged (CurUninstallStep: TUninstallStep); +var + mres : integer; +begin + case CurUninstallStep of + usPostUninstall: + begin + DelTree(ExpandConstant('{userappdata}\Hydrodesktop.exe'), True, True, True); + end; + end; +end; + +procedure DeletePackages; +begin + DelTree(ExpandConstant('{userappdata}\Hydrodesktop.exe'), True, True, True); +end; + + +function InitializeSetup(): Boolean; +begin + DeletePackages(); + + // Check for .NET prerequisites + Result := CheckDotNetVersions(); + +end; diff --git a/Source/.nuget/NuGet.Config b/Source/.nuget/NuGet.Config new file mode 100644 index 00000000..6a318ad9 --- /dev/null +++ b/Source/.nuget/NuGet.Config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/.nuget/NuGet.exe b/Source/.nuget/NuGet.exe new file mode 100644 index 00000000..8f613402 Binary files /dev/null and b/Source/.nuget/NuGet.exe differ diff --git a/Source/.nuget/NuGet.targets b/Source/.nuget/NuGet.targets new file mode 100644 index 00000000..f90d6af6 --- /dev/null +++ b/Source/.nuget/NuGet.targets @@ -0,0 +1,71 @@ + + + + ..\..\ + + + $([System.IO.Path]::Combine($(SolutionDir), ".nuget")) + $([System.IO.Path]::Combine($(ProjectDir), "packages.config")) + $([System.IO.Path]::Combine($(SolutionDir), "packages")) + + + $(SolutionDir).nuget + packages.config + $(SolutionDir)packages + + + $(NuGetToolsPath)\nuget.exe + "$(NuGetExePath)" + mono --runtime=v4.0.30319 $(NuGetExePath) + + $(TargetDir.Trim('\\')) + + + "https://www.myget.org/F/cuahsi/;https://nuget.org/api/v2/" + + + false + + + false + + + $(NuGetCommand) install "$(PackagesConfig)" -source $(PackageSources) -o "$(PackagesDir)" + $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols + + + + RestorePackages; + $(BuildDependsOn); + + + + + $(BuildDependsOn); + BuildPackage; + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/AboutThisFolder.txt b/Source/AboutThisFolder.txt new file mode 100644 index 00000000..dd876216 --- /dev/null +++ b/Source/AboutThisFolder.txt @@ -0,0 +1 @@ +- Each plugin has a subfolder \ No newline at end of file diff --git a/Source/AssemblyInfoShared.cs b/Source/AssemblyInfoShared.cs new file mode 100644 index 00000000..47232ca0 --- /dev/null +++ b/Source/AssemblyInfoShared.cs @@ -0,0 +1,19 @@ +using System.Reflection; + +/* + * Shared assembly attributes for all projects + */ + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] + +[assembly: AssemblyVersion("1.7.2.0")] +[assembly: AssemblyFileVersion("1.7.2.0")] diff --git a/Source/AssemblyInfoShared.vb b/Source/AssemblyInfoShared.vb new file mode 100644 index 00000000..94350853 --- /dev/null +++ b/Source/AssemblyInfoShared.vb @@ -0,0 +1,16 @@ +Imports System +Imports System.Reflection + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Source/Core/HydroDesktop.Common/AppContext.cs b/Source/Core/HydroDesktop.Common/AppContext.cs new file mode 100644 index 00000000..18bdb647 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/AppContext.cs @@ -0,0 +1,72 @@ +using System; +using System.Reflection; +using Microsoft.Practices.Unity; + +namespace HydroDesktop.Common +{ + /// + /// Context of application + /// + public class AppContext + { + private static readonly Lazy _lazy = new Lazy(ValueFactory, true); + private string _productVersion; + + private AppContext() + { + + } + private static AppContext ValueFactory() + { + return new AppContext(); + } + + /// + /// Gets the instance of context. + /// + public static AppContext Instance + { + get { return _lazy.Value; } + } + + /// + /// Gets registered service. + /// + /// Type to resolve. + /// Instance of type T. + public T Get() + { + return Container.Current.Resolve(); + } + + /// + /// Gets current DI container. + /// + public IUnityContainer UnityContainer + { + get { return Container.Current; } + } + + /// + /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + /// + public void Dispose() + { + Container.Current.Dispose(); + } + + /// + /// Returns product version + /// + public string ProductVersion + { + get + { + return _productVersion ?? + (_productVersion = + AssemblyName.GetAssemblyName(Assembly.GetAssembly(typeof (AppContext)).Location).Version. + ToString()); + } + } + } +} diff --git a/Source/Core/HydroDesktop.Common/Container.cs b/Source/Core/HydroDesktop.Common/Container.cs new file mode 100644 index 00000000..a54e353e --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Container.cs @@ -0,0 +1,76 @@ +using System.Configuration; +using HydroDesktop.Common.Logging; +using HydroDesktop.Common.UserMessage; +using Microsoft.Practices.ServiceLocation; +using Microsoft.Practices.Unity; +using Microsoft.Practices.Unity.Configuration; + +namespace HydroDesktop.Common +{ + /// + /// DI container accesor + /// + internal static class Container + { + #region Properties + + static IUnityContainer _currentContainer; + private static IServiceLocator _serviceLocator; + + /// + /// Get the current configured container + /// + /// Configured container + public static IUnityContainer Current + { + get + { + return _currentContainer; + } + } + + #endregion + + #region Constructor + + static Container() + { + ConfigureContainer(); + ConfigureFactories(); + } + + #endregion + + #region Methods + + static void ConfigureContainer() + { + /* + * Add here the code configuration or the call to configure the container + * using the application configuration file + */ + _currentContainer = new UnityContainer(); + var section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity"); + if (section != null) + { + section.Configure(_currentContainer); + } + } + + + static void ConfigureFactories() + { + // Configure services here... + _currentContainer.RegisterType(new ContainerControlledLifetimeManager()); + _currentContainer.RegisterType(); + _currentContainer.RegisterType(); + _currentContainer.RegisterType(); + + // Create service locator + _serviceLocator = new UnityServiceLocator(_currentContainer); + ServiceLocator.SetLocatorProvider(() => _serviceLocator); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/Controls/DelimiterSelector.Designer.cs b/Source/Core/HydroDesktop.Common/Controls/DelimiterSelector.Designer.cs new file mode 100644 index 00000000..cd721259 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Controls/DelimiterSelector.Designer.cs @@ -0,0 +1,152 @@ +namespace HydroDesktop.Common.Controls +{ + partial class DelimiterSelector + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.gbxDelimiters = new System.Windows.Forms.GroupBox(); + this.rdoComma = new System.Windows.Forms.RadioButton(); + this.rdoTab = new System.Windows.Forms.RadioButton(); + this.rdoSpace = new System.Windows.Forms.RadioButton(); + this.rdoPipe = new System.Windows.Forms.RadioButton(); + this.rdoSemicolon = new System.Windows.Forms.RadioButton(); + this.rdoOthers = new System.Windows.Forms.RadioButton(); + this.tbOther = new System.Windows.Forms.TextBox(); + this.gbxDelimiters.SuspendLayout(); + this.SuspendLayout(); + // + // gbxDelimiters + // + this.gbxDelimiters.Controls.Add(this.rdoComma); + this.gbxDelimiters.Controls.Add(this.rdoTab); + this.gbxDelimiters.Controls.Add(this.rdoSpace); + this.gbxDelimiters.Controls.Add(this.rdoPipe); + this.gbxDelimiters.Controls.Add(this.rdoSemicolon); + this.gbxDelimiters.Controls.Add(this.rdoOthers); + this.gbxDelimiters.Controls.Add(this.tbOther); + this.gbxDelimiters.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbxDelimiters.Location = new System.Drawing.Point(0, 0); + this.gbxDelimiters.Name = "gbxDelimiters"; + this.gbxDelimiters.Size = new System.Drawing.Size(313, 78); + this.gbxDelimiters.TabIndex = 11; + this.gbxDelimiters.TabStop = false; + this.gbxDelimiters.Text = "Select a Delimiter"; + // + // rdoComma + // + this.rdoComma.AutoSize = true; + this.rdoComma.Location = new System.Drawing.Point(11, 23); + this.rdoComma.Name = "rdoComma"; + this.rdoComma.Size = new System.Drawing.Size(90, 17); + this.rdoComma.TabIndex = 0; + this.rdoComma.Text = "&Comma (CSV)"; + this.rdoComma.UseVisualStyleBackColor = true; + // + // rdoTab + // + this.rdoTab.AutoSize = true; + this.rdoTab.Location = new System.Drawing.Point(116, 23); + this.rdoTab.Name = "rdoTab"; + this.rdoTab.Size = new System.Drawing.Size(44, 17); + this.rdoTab.TabIndex = 1; + this.rdoTab.Text = "&Tab"; + this.rdoTab.UseVisualStyleBackColor = true; + // + // rdoSpace + // + this.rdoSpace.AutoSize = true; + this.rdoSpace.Location = new System.Drawing.Point(203, 23); + this.rdoSpace.Name = "rdoSpace"; + this.rdoSpace.Size = new System.Drawing.Size(56, 17); + this.rdoSpace.TabIndex = 2; + this.rdoSpace.Text = "&Space"; + this.rdoSpace.UseVisualStyleBackColor = true; + // + // rdoPipe + // + this.rdoPipe.AutoSize = true; + this.rdoPipe.Location = new System.Drawing.Point(11, 41); + this.rdoPipe.Name = "rdoPipe"; + this.rdoPipe.Size = new System.Drawing.Size(46, 17); + this.rdoPipe.TabIndex = 3; + this.rdoPipe.Text = "&Pipe"; + this.rdoPipe.UseVisualStyleBackColor = true; + // + // rdoSemicolon + // + this.rdoSemicolon.AutoSize = true; + this.rdoSemicolon.Location = new System.Drawing.Point(116, 41); + this.rdoSemicolon.Name = "rdoSemicolon"; + this.rdoSemicolon.Size = new System.Drawing.Size(74, 17); + this.rdoSemicolon.TabIndex = 4; + this.rdoSemicolon.Text = "Se&micolon"; + this.rdoSemicolon.UseVisualStyleBackColor = true; + // + // rdoOthers + // + this.rdoOthers.AutoSize = true; + this.rdoOthers.Location = new System.Drawing.Point(203, 41); + this.rdoOthers.Name = "rdoOthers"; + this.rdoOthers.Size = new System.Drawing.Size(54, 17); + this.rdoOthers.TabIndex = 5; + this.rdoOthers.Text = "&Other:"; + this.rdoOthers.UseVisualStyleBackColor = true; + // + // tbOther + // + this.tbOther.Location = new System.Drawing.Point(269, 38); + this.tbOther.MaxLength = 1; + this.tbOther.Name = "tbOther"; + this.tbOther.Size = new System.Drawing.Size(27, 20); + this.tbOther.TabIndex = 6; + this.tbOther.TextChanged += new System.EventHandler(this.tbOther_TextChanged); + // + // DelimiterSelector + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.gbxDelimiters); + this.Name = "DelimiterSelector"; + this.Size = new System.Drawing.Size(313, 78); + this.gbxDelimiters.ResumeLayout(false); + this.gbxDelimiters.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.GroupBox gbxDelimiters; + private System.Windows.Forms.RadioButton rdoComma; + private System.Windows.Forms.RadioButton rdoTab; + private System.Windows.Forms.RadioButton rdoSpace; + private System.Windows.Forms.RadioButton rdoPipe; + private System.Windows.Forms.RadioButton rdoSemicolon; + private System.Windows.Forms.RadioButton rdoOthers; + private System.Windows.Forms.TextBox tbOther; + } +} diff --git a/Source/Core/HydroDesktop.Common/Controls/DelimiterSelector.cs b/Source/Core/HydroDesktop.Common/Controls/DelimiterSelector.cs new file mode 100644 index 00000000..554316e4 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Controls/DelimiterSelector.cs @@ -0,0 +1,119 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Windows.Forms; + +namespace HydroDesktop.Common.Controls +{ + /// + /// Delimiter selector allows to select delimiter + /// + public partial class DelimiterSelector : UserControl + { + #region Fields + + private readonly List _delimiterControls; + private string _currentDelimiter; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public DelimiterSelector() + { + InitializeComponent(); + + rdoComma.Tag = ","; + rdoTab.Tag = "\t"; + rdoSpace.Tag = " "; + rdoPipe.Tag = "|"; + rdoSemicolon.Tag = ";"; + rdoOthers.Tag = string.Empty; + + _delimiterControls = new List { rdoComma, rdoTab, rdoSpace, rdoPipe, rdoSemicolon, rdoOthers }; + foreach(var rb in _delimiterControls) + { + var rb1 = rb; + rb.CheckedChanged += delegate + { + if (rb1.Checked) + { + CurrentDelimiter = (string) rb1.Tag; + } + }; + } + rdoComma.Checked = true; + } + + #endregion + + #region Events + + /// + /// Raised when changed. + /// + public event EventHandler CurrentDelimiterChanged; + + #endregion + + #region Properties + + /// + /// Current Delimiter + /// + [Browsable(false)] + public string CurrentDelimiter + { + get { return _currentDelimiter; } + set + { + _currentDelimiter = value; + + var findedButton = false; + foreach(var rb in _delimiterControls) + { + var delimiter = (string) rb.Tag; + if (string.Equals(delimiter, value)) + { + rb.Checked = true; + findedButton = true; + break; + } + } + if (!findedButton) + { + tbOther.Text = value; + } + + RaiseCurrentDelimiterChanged(); + } + } + + #endregion + + #region Private methods + + private void RaiseCurrentDelimiterChanged() + { + var handler = CurrentDelimiterChanged; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + + private void tbOther_TextChanged(object sender, EventArgs e) + { + if (tbOther.Text.Length != 0) + { + rdoOthers.Tag = tbOther.Text; + CurrentDelimiter = tbOther.Text; + } + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.Common/Controls/DelimiterSelector.resx b/Source/Core/HydroDesktop.Common/Controls/DelimiterSelector.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Controls/DelimiterSelector.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/Controls/SelectFeatureLayer.Designer.cs b/Source/Core/HydroDesktop.Common/Controls/SelectFeatureLayer.Designer.cs new file mode 100644 index 00000000..9e903be4 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Controls/SelectFeatureLayer.Designer.cs @@ -0,0 +1,110 @@ +namespace HydroDesktop.Common.Controls +{ + partial class SelectFeatureLayer + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SelectFeatureLayer)); + this.btnOK = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.cmbLayers = new System.Windows.Forms.ComboBox(); + this.SuspendLayout(); + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(94, 147); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 0; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(183, 147); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 1; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(60, 30); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(150, 26); + this.label1.TabIndex = 2; + this.label1.Text = "No feature layer was selected.\r\nSelect layer to view attributes:"; + // + // cmbLayers + // + this.cmbLayers.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbLayers.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbLayers.FormattingEnabled = true; + this.cmbLayers.Location = new System.Drawing.Point(15, 78); + this.cmbLayers.Name = "cmbLayers"; + this.cmbLayers.Size = new System.Drawing.Size(243, 21); + this.cmbLayers.TabIndex = 3; + // + // SelectFeatureLayer + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(273, 192); + this.Controls.Add(this.cmbLayers); + this.Controls.Add(this.label1); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "SelectFeatureLayer"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Select Feature Layer for Attributes"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox cmbLayers; + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/Controls/SelectFeatureLayer.cs b/Source/Core/HydroDesktop.Common/Controls/SelectFeatureLayer.cs new file mode 100644 index 00000000..dd1ca49b --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Controls/SelectFeatureLayer.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using DotSpatial.Symbology; + +namespace HydroDesktop.Common.Controls +{ + /// + /// Allow select feature layers + /// + public partial class SelectFeatureLayer : Form + { + /// + /// Create new instance of SelectFeatureLayer + /// + /// Layers to select + public SelectFeatureLayer(IEnumerable layers) + { + InitializeComponent(); + + cmbLayers.ValueMember = "LegendText"; + cmbLayers.Items.Clear(); + foreach (var item in layers) + { + cmbLayers.Items.Add(item); + } + if (cmbLayers.Items.Count > 0) + { + cmbLayers.SelectedIndex = 0; + } + } + + /// + /// Get selected layer + /// + public FeatureLayer SelectedLayer + { + get { return (FeatureLayer) cmbLayers.SelectedItem; } + } + } +} diff --git a/Source/Core/HydroDesktop.Common/Controls/SelectFeatureLayer.resx b/Source/Core/HydroDesktop.Common/Controls/SelectFeatureLayer.resx new file mode 100644 index 00000000..30ab7efa --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Controls/SelectFeatureLayer.resx @@ -0,0 +1,1253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAgBAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+Pj4APn5+QDw8PAA3NzcAMrKygCzsrMAnJudAIeGiQB2dXgAbWxvAF5d + YABRUFMAT05RAAAAAAEAAAADAAAAAwAAAAFOTVEAWFhbAGVlaABxcXQAfn2AAZGRkgCoqKkAwMDBANTU + 1QDl5eYA6unqAOno6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4+PgA+Pj4APn5+QDo6OgAxcXHAJ6dnwD7+/sA/f38APT0 + 9ADg4OAAAAAAEAAAADAAAABXAAAAgAAAAKgAAADLAAAA5wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA5wAAAMsAAACoAAAAgAAAAFcAAAAwAAAAEOnp6gDt7O0A7OvsAI6OkAC3t7gA29vcAOjo + 6QDl5eYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb3APb29wD4+PkA5+foAPv7 + +wD+//4A////APPz8wDPz9EAAAAACgAAADcAAAB8AAAAxQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAMUAAAB8AAAANwAAAArm5ucA8vLzAOzs7QCmpqcA1tbXAOXl5gDh4eIAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA3d3dAOLi4gD4+PkA+/v8AP///wDy8vMA6urqANra2gAAAAAlAAAAdgAAANYAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + ANYAAAB2AAAAJa+vrwDh4eEA7u7vAObm5wC/v78A7+/vAPr6+gD29vYAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNzc4Azc3OAM/P0ADf398A5+fmAPPz9ADs7O0A6OjpAAAA + ACUAAACGAAAA9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA9wAAAIYAAAAl19fYAMTE + xAD19fUA/v7+APf39wDr6+sA6urqAOrq6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAN3d3QDi4uIAAAAACgAAAGEAAADiAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADiAAAAYQAAAAr6+voA9vb2AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P0ADV1dYAzs7PANLS0wDX19gAAAAAGwAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQb/CwsN/hAQ + Ev4UExb9FhUZ/xcWGv8YFxv/GRgc/xgXG/8YFxz/GBcc/xgXG/8ZGBz/GBcb/xgXG/8YFxr/FhUY/xIR + FP8NDA7/BgYH/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAJEAAAAb8/PzAO7u7gDq6uoA9vX1APDv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4eHiAObm5wDe3t8A0tLTAN7e + 3wDJycoAAAAAIAAAAKgAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8EBAT/DQ0P/xQTFv8XFxr/GBgc/xkYHP8aGR3/Gxse/x4dIf8gHyP/IiEl/yQjJ/8nJin/JyYq/ykn + LP8oJyv/JyYp/yYlKP8jIiX/IB8k/x8eIv8cHCD/Gxoe/xkYHP8ZGBz/GRgc/xgXG/8UExb/Dg0P/wQE + BP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACoAAAAIOno + 6AD+/f0A8vHyAPr6+gAAAAAA/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA+fn5AP7+/gDh4eIA6urrAOXl5gDGxscAAAAAGAAAAKIAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJCv8UFBb/Gxoe/xwbH/8cGx//Hh0g/x8fI/8kIyf/Kykt/zIw + M/86OTz/Q0JE/0tKTP9SUFP/WFdZ/11cXf9gXmD/Y2Bj/2JgYv9fXV7/W1lc/1RTVf9OTVD/R0ZJ/z48 + QP82NTj/LSwv/ycmKf8iIST/Hx0h/x0cIP8cGx//HBsg/xsaHv8UFBb/CQkK/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAAABjq6eoA////AP///wD9/f0A1dTVAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+fkA/v7+AODg4QDi4uMAAAAABgAA + AIAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CAgJ/xUUF/8cGx//GRgc/xgX + G/8bGR3/IyEm/zMwNP9FREb/W1pb/3Bub/+DgIH/k5CQ/5+cnP+opaX/r6ys/7Sxsf+2tbT/ura1/7q3 + tv+7uLf/u7i3/7q3tf+4trX/trOz/7OvsP+sqan/pKGh/5iWl/+LiIn/end4/2VjZP9PTU//Ojg8/yoo + LP8eHSH/FxYb/xgXG/8cGx//Hh0h/xYWGP8ICAn/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAIAAAAAG/Pz8APr6+gDV1NUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADW1tYA1tbWAPr6+gD///8A4eHhAAAAAEkAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/EA8R/xkYHP8WFRn/FhUZ/x8eIf8wLzP/SUhK/2ViZP99en3/ko+Q/6Kgn/+uq6r/trKy/7u3 + t/+/u7r/wb28/8O/vv/DwL//xMHA/8TBwP/EwcD/w8G//8TBwP/EwcD/xMLA/8TCwP/EwL//xMC//8PA + vv/Bvr7/v7y7/726uP+5trT/sa+u/6elpP+al5f/iIWF/29tb/9UU1X/OTg7/yUkKP8bGh7/HBsf/x8e + Iv8eHSH/ERAS/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAABJ6OjoANXU + 1QD9/f0A/f39AP39/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoaCjANnZ2QDa2toA7u7tADc3OBYAAACtAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/ExMV/xgXG/8ZFxv/IR8j/y8vMv9GRUj/YV9h/3t6 + e/+TkpL/p6Wl/7Szs/++vLz/w8HA/8XDwv/EwsH/w8DB/8K/v//Avr3/v728/768vP+9u7v/vLu6/7y7 + uv+8u7r/vLq6/7y7uv+8u7r/vLu6/7y7uv+9vLv/vr28/7++vf/Av77/w8DA/8TCwf/EwsL/w8LB/8C/ + vv+6uLf/r62t/6Cfn/+Mi4z/cnJ0/1JSVf8yMTT/HRsf/xgXG/8bGh7/Hx4i/xUUFv8CAgP/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAAEP///wD///8A/v7+AOHh4QAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD19fUA9fX1APj4 + +ACfnqEAy8vMAMjIyAAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/FBMW/xwb + H/8eHCH/JCMn/zIyNv9MTFD/bG1v/42OkP+oqKn/uLi4/76+v/++vr//uru8/7i4uf+1trf/tbW2/7S1 + tf+1tLb/tbW2/7W1tv+1tbb/tbW2/7W1tv+1tbb/tbW2/7W1tv+1trb/tbW2/7W1tv+1tbb/tbW2/7W1 + tv+1tbb/tbW2/7W1tv+0tLX/s7S1/7W1tv+2t7j/ubq7/729vv+/wMD/vr+//7Sztf+bnJ3/cnJ0/0FB + Q/8nJir/JyYq/ygnK/8hICT/HBsf/x0cIP8UFBb/AgIC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAASfX19QD5+fkA4uLiAL29vgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX19QD19fUA+Pj4AKKipAAAAAADAAAAkQAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/EhEU/x4cIP8cGx//IB8j/zMxNv9WV1r/fICC/5ygov+usrT/srW3/7Cz + tf+tsLL/rK+x/6yvsv+rr7L/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yv + sf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rLCy/6yvsf+ssLL/rbCz/66y + tP+usrT/q6+x/6Cjpf+LjY//bm9y/1JSVv8+PUH/ODg8/0dITP9YWl7/TE1R/ycmKv8cGh7/HBoe/x4c + IP8gHiL/EhIU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAkQAAAAPe3t4Avb2+AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADl5eYA9fX1APX1 + 9QD5+fkAAAAAGAAAANYAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DAwN/xwbHv8ZGBz/Hh0h/zY3 + O/9aXmH/gISJ/5ieof+iqaz/pqyw/6essP+nrLD/pqqu/6Sqrv+iqq3/o6ms/6OprP+jqKz/oqmt/6Op + rf+jqa3/o6mt/6Oprf+jqa3/o6mt/6Kprf+jqa3/pKmt/6Sprf+kqa3/pKmt/6Sprf+jqa3/o6mt/6Kp + rf+iqKz/o6mt/6Sqrf+mrLD/qa+0/6mwtP+jqa7/k5mb/3p+gf9dX2L/RUVI/zc3O/87O0D/TlFV/2Vo + bf9xdXn/aGtv/1BRVf80NDj/Jycr/zk5Pf87PED/Li0x/x8dIf8fHiL/Hh0g/wwMDf8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAAABi9vb4AoqGjAKKhowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA1tbXAOXl5gDy8vID7e3tAAAAADcAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AgIC/xgXGv8eHSH/JCUp/zc5Pv9YXGH/eX+F/5OboP+hqrD/pq+1/6Wts/+iqrD/n6et/5+n + rf+gp63/oKiu/6Corv+hqa//oamv/6Gpr/+hqrD/oaqw/6GqsP+hqrD/oKmv/6Corv+fqK7/nqet/56l + q/+dpKr/nKSq/5yjqf+co6n/nKSq/52lq/+epqz/n6et/6Cprv+iqrD/oKmu/5igpv+IjpT/c3d8/1xf + Y/9KTVD/QkNH/0JFSf9OUFb/XWJo/2hsc/9nbHH/XWBl/05PVP9BQkb/QEFF/0xPVP9kaW7/fIKH/3R5 + f/9QUlf/KSkt/x0cIf8cHCL/HR0j/xgXGv8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + ADejoqQAnZyeAAAAAAD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJAMjIyQDW1tcA5eXmAN7e + 3wAAAABXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w0MDv8dHCD/HBse/x4dIf8tLjL/TlFW/250 + ev+Ah43/g4qQ/32Dif94foT/dnyC/3V6gP9zeX//c3l//3V6gP92fIL/eX+F/3uCiP99hIr/gIeO/4KK + kf+EjJP/h4+V/4mQl/+Kkpn/jJSb/46Xnv+RmqH/k5yj/5Wepv+Xoaj/lqGo/5egqP+WoKj/lqCn/5Se + pf+Tm6L/j5ee/4eOlf94foT/ZGhu/09SV/9AQkb/ODs//z5BRv9PVFn/ZGtw/3R7gv94f4X/bXJ4/1hd + Yf9ERkv/OjxB/0NGTP9dY2n/eYGH/4iQlv+CiZH/anB5/0dKU/8nKDD/Gxsh/x0dIf8dHSP/HR0j/x0d + I/8NDA7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAFe7urwA////AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAMjIyQDHx8gAyMjJANXV1gDW1tYAAAAAcQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8VFBf/Hhwg/x0cIP8cGh7/ISEl/zAxNf9DRUr/Q0VK/z4/RP85O0D/Nzk9/zc3PP82Njr/NTU6/zQ1 + Of80NTr/Nzg9/zo9Qf8+QUb/Q0ZL/0hKUP9MUFX/UFVa/1VaYP9ZXmX/XWJo/2Fmbf9lbHL/anF3/3B4 + fv92foT/fIWN/4KLkv+DjZT/goyT/4CIkf97hIz/dX2E/21zev9hZmz/T1JY/zg6P/8pKi7/Ly80/0NH + Tf9haW//fYeO/4yYn/+Hkpj/bXV8/0lMUv8xMzj/MzY6/0tPVP9rc3r/hpGZ/5Gdpf+Ejpb/Ymhv/zs9 + RP8kJSn/IB4g/yUhIP8qJR7/Misc/y8pHv8kIiH/HR0i/x4dI/8WFRj/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAHHv7+8A7e3tAPz8/AAAAAAA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJAMjIyQDHx8gAzs7PAAAA + AIAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8EBAT/Gxod/xwbH/8gHyP/Kisv/y4uM/8vMDX/MTI3/zI0 + Of8yNDn/NDY7/zU4Pf83O0D/Oz5E/z5CSP9DSE7/SU5U/01UWv9SWWD/Vl1k/1hgZ/9bYmn/W2Nr/1xk + a/9cZGv/XGRr/1phaf9YXmX/U1lg/01SWf9HTFL/QkVL/z5BRv89QEX/PkJH/z9CR/88PUP/Njg8/zEx + Nv8rLC//Jycq/yYmKv8uLjP/P0NI/1lfZ/9we4P/go+Y/4qYof+AjZX/Ympx/z5BRv8rKy//OjxC/1lh + aP9zfof/hJCZ/4uZov+Fk5v/ZGx0/zs/R/8hIin/JiEd/zovF/9PPBH/XUYN/2dMC/9yVAf/a08L/0w8 + FP8oJCD/Gxwj/xwdIv8cGx7/BAQE/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAICQkJIA/Pz8AAAA + AAD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAANXV1gDGxscAy8vMAMrKywAAAACGAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CgkL/xwb + H/8cGh7/LC0x/0pQV/9ganP/ZW94/2Vud/9lb3f/ZG93/2VveP9ncXr/aHN8/2p2fv9sd4H/bnqD/3F9 + hv90gIn/dYKM/3eEjf93ho//eYaQ/3mGkP95hpD/eYWQ/3mFkP94hZD/d4SO/3aDjP9zgIr/cHyG/2t3 + gf9ncXr/YGpz/1lia/9TXGP/TVRb/0dMU/9CR03/QERL/0FGTP9HTVP/UVhg/15ncP9teYL/e4mT/4aV + oP+CkJr/a3R8/0ZLUP8sLTH/Li80/0hOVf9ncnv/eoeR/4WUn/+HlqD/eISN/05WYf8tMTn/KSQf/z4w + Ev9ZQwr/blAH/3lXBP99WgL/gFwB/4NeAf+CXQH/dVUG/1lED/80Kxz/Hh4j/xobI/8fHiL/CgkL/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIb///8A////AP39/QD9/fwAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OEA09PUANPT1ADKyssAAAAAgAAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ND/8cGx//Hx4h/zE0Of9PWGD/bn2H/3yLl/9+jpr/fY2Z/36O + mf9+j5r/fo+b/36Pm/9/j5z/gJGc/4CRnP+AkZz/gJGc/4GRnf+AkZz/gJCc/3+QnP9/kJv/f5Cb/3+Q + mv9/j5v/gI+c/4CQnP+AkJz/gJGc/4CRnP+AkJz/f4+b/36Omf96i5b/doaQ/3GAi/9seoT/aHWA/2Zz + ff9nc33/aXaA/298h/92hJD/fIyY/4KTn/+Ckp7/c4GM/1dfZ/82OD3/IyMn/y4xNv9NVV7/bnyH/4CQ + nP+DlKD/fIyY/2d0f/9FTFb/Kyot/zMpFv9QPAz/b1IH/4BdA/+GYQD/h2AA/4VgAP+EYAD/g18A/4Rf + AP+FYAD/fVsD/2JJDf8+Mhn/JSIg/xsbI/8dHCP/Dg4Q/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AID7+/oA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADy8vIA8vLyAN7e3wDZ2doA19fYAAAAAHEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8REBL/HRwf/yAg + JP8yNjz/VWBq/3CBjf94i5n/dYeU/3SGk/90hZL/dIaR/3SGkv90hpL/c4WS/3SEkv90hZL/dIWR/3SF + kf9zhZD/c4WR/3OFkf90hZL/dIWS/3OGkv9zhpL/coaS/3OGkv90hZL/dIWS/3SFkv90hZL/dIWR/3OE + kf90hZH/c4WR/3SHkv91iJT/d4mX/3eKl/94i5j/eYyZ/3mLmf94i5j/eIqX/3eJl/92iJX/c4WS/2h2 + gv9JUVn/KSov/xwcH/8zNz3/WGRu/3KEkP95jZr/dYiV/3GCj/9danf/PURN/yclI/8/MRT/aE0K/4Vi + A/+MZgD/iGMB/4ZiAv+FYQL/hmIC/4ZiAv+GYgH/hWEC/4diAv+JZAH/imQB/3FUCv9JOhb/JiIh/x0c + I/8dHSP/Dw8R8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAHHq6uoA5ubmAKWlpgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8gDy8vIA4ODhAOTk5QAAAABXAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/EhIU/xwaHv8hICT/NTlB/1lodP9sf43/cIOR/21/jv9tgI7/bYCO/22B + jv9tgY7/bYGO/22Bjv9tgY7/bYGO/22Bjv9tgI7/bYCO/21/jf9sgI7/bYCO/22Bjv9tgY//boKQ/26C + kP9ugpD/boKQ/26Bj/9ugY//bYGP/26Bj/9tgI7/bIGP/22Ajv9tgI7/bX+N/22Ajv9tgI7/bYCO/22A + jv9tgI7/bICN/22Ajv9ugo//cIOS/2x/jf9baXX/OT9H/yAfJP8fHyP/OkFH/15uev9tgY7/cYWT/26C + kP9kdYL/SVRg/yowO/8oJCD/Uj8S/4NgB/+TbAL/k20C/5FrAv+QagP/kGsD/5FrA/+RawP/kWsD/5Fr + A/+RawP/kGoD/5BrAv+SawL/lW0B/4NhB/9XRBT/JiQh/xscI/8dHSL/EBAS5AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAFeUlJYApaWmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA9fb1APX29QDx8fIAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xISFP8bGR3/ISEm/zc/ + Rv9YaHT/ZXqK/2h+jf9nfIv/ZnuK/2Z8iv9mfIv/ZnyK/2Z8iv9mfIr/ZnyK/2Z7iv9mfIr/Z32L/2d9 + jP9ofo3/aH6N/2h+jf9nfYz/ZnyK/2R5h/9jd4b/ZHeG/2V5h/9le4n/ZnuK/2Z9jP9ofo3/aX+O/2mA + j/9qgZD/aoGQ/2qBkP9qgJD/aYCP/2h/jv9ofo7/Z32M/2h9jP9pf47/aYCR/2h+jf9cbnz/RlFc/y4x + N/8dGh//IyUq/z5HUP9cbnv/Z3yL/2uDkv9me4n/UWBu/y83Rv8fIi3/NSwb/2NLDf+QagT/nnMB/55z + Af+ccgH/m3IC/5tyAv+ccwL/nHIC/5xyAv+ccgL/nHIC/5xyAv+ccgL/nHIC/5xyAv+edAH/nnQB/49q + Bf9jTBD/LSge/xkaJP8cHCL/EhIV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADejo6QAxMTFAMTE + xQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ2cngCvrq8Ar6+wAAAAABgAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8RERL/Hhwg/yIiJ/83P0j/UWNw/2J5if9ieYn/YXeH/2B2hv9gd4f/YHeH/2F4 + hv9gd4f/YXiI/2J6if9jeor/YnqJ/2F5iP9fd4b/XXOC/1tvfv9ZbXr/VWd0/1Bhbf9LWWT/RFFb/z9J + U/89RU7/PUVO/z5HUP9ASVP/Qk1X/0VRW/9IVF//S1hj/05daf9RYW3/VGVy/1Zpd/9ZbXv/W3B+/15z + gv9fdoX/X3aF/11ygP9VZ3b/SVZh/zg/R/8lJyz/Gxgc/yUmK/8+SlP/WGx5/2V8jP9lfY3/W3F//0RT + Yv8sMj3/LSgg/0s5Ef92Vwj/m3IE/6x9AP+pegD/pnkA/6Z5Af+meQH/pnkB/6Z6Af+meQH/pnkB/6Z5 + Af+meQH/pnkB/6Z5Af+meQH/pnkB/6Z4Af+pfAD/qnwA/5txBP9nTxD/NC0d/xkaI/8cHCP/ERET/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2NiLCwsMAwMDCAOfn5wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADLy8wAmZeaAHx7fQAAAAADAAAA1gAAAP8AAAD/AAAA/wAAAP8AAAD/Dg4Q/x4eIf8hISX/MzxF/09i + cP9feIr/XXeI/1x0hP9cdIX/XHSF/1x1hf9cdYX/XXaF/1x1hf9bdIT/WnKB/1hvfv9XbXv/VGp4/1Jn + df9RZHL/T2Fv/0xea/9JWWX/Q1Jd/z5KVf83Qkv/MDhA/youNv8mJy3/IyQp/yMkKf8lJiv/Jigt/ygp + MP8qLTP/LTA3/zA1PP8zOUH/Nj5G/zpDTP8+SVL/Qk9Z/0VUX/9FU17/QEtV/zQ7Q/8mKC3/HBod/xsY + Gv8lJyv/P0tV/1Vsef9geor/XXWG/1Rqef89S1r/Ky81/zYrGP9nTQ7/l24G/7GAAP+2hAD/soEA/7CA + Af+wgAH/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/r4AA/7CA + Af+yggD/t4UA/6R4BP9sUxD/MSse/xsbI/8cHSP/CAgJxwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAA + AAPQ0NEA5eXlAPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvLzACioaMAo6KkAAAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/woJC/8eHCD/Hh4h/ycqL/9CUl7/U2p5/1ZvgP9Vb4D/Vm+A/1dwgv9WcIH/VnCB/1Zv + gP9Wbn//VGx8/09mdf9JXWv/RVZi/0NSXf9CUl7/Q1Vi/0haaP9KYG7/TWNy/09mdv9QaHf/UWh4/1Bo + eP9NY3P/R1ln/z1LVv82QEr/MTpB/y82Pf8rMTj/KSwz/yYoL/8kJSv/IiMo/yEhJP8gICP/HyAj/yAh + Jf8iIif/JCUq/yQkKf8hHyX/HRsg/x4cIP8fHiL/KCsx/z1LVf9Tanv/WXSF/1Zwgf9NZHT/NUJP/yUm + Lf9DNRb/hGML/7eGAv/AiwD/vYkA/7qIAP+6iAD/uogB/7qIAf+6iAH/uogB/7qIAf+6iAH/uogB/7qI + Af+6iAH/uogB/7qIAf+6iAH/uogB/7qIAf+6iAH/uYgB/7qHAP+7iAD/wowA/6t+BP9yVxD/KiYg/xwd + I/8dHSPuAAAAswAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAke3t7QDp6ekA/Pz8AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPf3 + 9wD39/cAysrLAMzMzQAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8EBAT/Hx4h/x0bH/8dGx7/IB8j/yot + M/8xOED/N0JL/zxKVv9BUl7/RFdk/0ZYZv9EVmT/P05b/zhFT/80PUb/MTlC/zQ+SP87SlX/Q1dl/0lg + cf9NZnj/T2l6/1BqfP9Qanz/UGp8/1Brff9Pa3z/UGx9/1Bsff9Qa33/T2l6/05neP9MZXX/SmNz/0lh + cP9HXWz/RVpp/0NXZf9BVGL/P1Fe/z1NWv87S1b/OUhU/zhGUf82RE//NkNO/zdDT/82Qk7/OEVR/ztL + Vv9DVmT/TWZ4/1Nugf9Ra3z/QVVk/ykzQv8jJCf/WUUV/5pyCP/EjwH/x5IA/8aSAP/EkAD/xJAB/8SR + Af/FkQH/xJAB/8OPAf/DjwH/w5AB/8OQAf/EkQH/xZAB/8WQAf/FkAH/xJEB/8ORAf/EkQH/xJEB/8WR + Af/EkAH/xJAB/8SQAP/GkQD/yZQA/7OEBf9vVhL/KCUg/xgZJP8dHSDVAAAA6QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAASfv7+wD8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP39/QDs7OwAAAAAEAAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/xsaHf8fHiL/Jiow/yw1Pf8nKzL/ISMn/yAgJP8iISX/JSUp/yYpLv8pLDP/KzA3/ysy + Of8sMzv/LTdA/zI+Sf83SFX/PlNi/0Rcbf9IYnT/SmZ5/0xoe/9LaHr/TGh7/0xoe/9LZ3r/S2d6/0tn + ev9LZ3r/TGh7/01pfP9Nan3/TWp9/01qff9NaXz/TWp8/0xpe/9LaHr/S2d5/0tmef9KZXj/SmR2/0lj + df9IYnT/R2Fz/0Zgcf9GX3H/R2By/0dgcv9IYXP/SWR1/0xoe/9ObH//SGBx/zJDVv8hKjn/Lyoh/2pR + Ef+ofAf/zZYB/9ObAP/PmAD/zZcB/86XAP/RmQD/05sA/9edAP/ZnwD/2p8A/9ygAP/coQD/2J8A/9Sc + AP/RmQD/0poA/9KaAP/SmgD/0psA/9KbAP/TmwD/05oA/9OaAP/TmwD/0poA/9GZAP/UmwD/05oA/7iI + Bf9iTRX/KCQh/xYYI/8cGx7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEMfHyQDf398A39/fAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANLS + 0wDPzs8Az8/QANjY2QAAAACtAAAA/wAAAP8AAAD/AAAA/wAAAP8VFBf/Hhwf/yUoMP8zQ07/PVVk/zZJ + V/8vPEf/KjQ8/ycuNf8nLDP/Jisz/yctNv8pMTr/LDdB/zA/Sv82SVf/PVRl/0Nfcf9HZXn/SGZ7/0dl + eP9GY3f/RmN2/0Vidf9GYnb/RmN2/0Zjdv9GY3b/RmN2/0Zjdv9GYnb/RmJ2/0Zidv9GYnX/RWJ2/0Zi + dv9GY3f/R2N3/0Zkd/9HZHj/R2R4/0dlef9IZnn/SGZ7/0hne/9IZ3z/SWd8/0hne/9JZ3z/SWh8/0lp + ff9JaX3/R2R4/z1Waf8rO03/Jikv/0E0Gf9/Xwz/xpIF/+SnAP/nqQD/4KQA/+CjAP/eogD/3aIA/9uf + AP/WnAH/z5cC/8aRBP+/jQX/u4oG/7yLBv/IkwT/1JwB/9uhAP/aoAD/2J4A/9adAf/WmwH/1JsB/9Sb + AP/TmgH/1JsB/9WcAf/WnQD/2p8A/9ygAP/gowD/4qUA/7GDB/9aRxf/Hx4i/xsbI/8WFRj/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAACtvr6/AOfn5wDn5+cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4Az8/QAJiXmQCXlpgAAAAASQAAAP8AAAD/AAAA/wAA + AP8AAAD/DQwN/x4dIP8gICX/Lz1K/z1Za/9EZXr/QmJ2/0Fecv89Wmz/PFZn/zxUZv87U2X/PFVo/z1Y + a/9AXHD/QWF1/0Njd/9DYnf/QWB1/0FgdP9AX3P/QV5y/0Ffc/9BX3P/QV9z/0Ffc/9BX3P/QV9z/0Ff + c/9BX3P/QV9z/0Ffc/9BX3P/QV9z/0Ffc/9BX3P/QF9z/0Ffc/9BX3T/QV90/0FgdP9BYHT/QV9z/0Ff + dP9BYHT/QWB0/0FgdP9BYHT/QGBz/0FfdP9AX3P/QV90/z9cb/83TV7/KTRB/yUkJf9UQRX/nnQL/9+i + Af/sqwH/5qgC/+CkAv/fogL/3qIC/9ugAv/WnAL/ypQE/7mIB/+jeQv/jGkN/3ldEf9sUxT/aFEV/4Nj + EP+qfQn/xJAF/8SQBv/DjwX/wo4G/8GNBf/CjwX/wo8E/8GQBP/AjgX/vYwF/7yKBf/DkAX/ypUE/9CY + A//VnAL/2Z8C/5NvDf9ANRz/GBkj/x4cI/8NDA7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABJzMzNAMzM + zAC6ursAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gDS0tMA0dHSAAAAAAYAAAD8AAAA/wAAAP8AAAD/AAAA/wICAv8eHCD/Hx4i/ykzPf82UWL/PF5y/zxb + cP88W3D/PFxx/zxccf89XHH/PVxx/z1ccv89XHH/PFxx/zxccP88XHH/O1tw/zxab/88W3D/PFtw/zxb + cP88Wm//PFtw/zxbcP88XHH/PFxx/zxdcf88XXH/PF1x/zxdcf88XXH/PFxy/zxccf88W3H/PFxw/zxb + cP87XHH/PFxx/zxdcv89XXP/PV5z/z1dcv89XHH/PFtw/ztab/88Wm7/PFlu/zxab/88Wm//O1lu/zpW + af81TFz/KzpH/yInMP8uKR//d1oR/7uMCP/XnwT/xpEF/66ACv+ddQz/lW8O/5RuDv+Zcg3/mnMM/5Rw + Df+HaA//emAS/3JaFP9tWBT/ZlMV/1ZHGP8/Nh3/PDMd/09BGf9qUxX/d1wT/4RnEP+RcQ//nHkM/6aA + Cv+rhAn/rYUI/6aBCv+VdQ3/fGIQ/3leEf9/YhH/h2cQ/49tD/+eeAv/mXQL/2tUFP8qJyD/Gxwi/x0d + Iv8BAQH+AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAAGeHd6ALq6uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8wDj5OMAAAAAgAAAAP8AAAD/AAAA/wAA + AP8AAAD/GBYZ/x8dIf8jKTD/MElY/zZXbP84WW//N1Zr/zdXbP83WG3/OFht/zhZbv84WW7/OFlu/zhZ + bv84WG3/N1ht/zdYbf83V2z/N1ds/zZXbP83V2z/N1hu/zhZb/84WnD/N1lv/zdYbf82WGz/N1ds/zdW + a/83V2z/N1dr/zdWbP83V2z/N1ds/zZXbP83WG3/OFlu/zdZbv83WGv/NVNm/zNNX/8xR1f/L0BP/yw6 + Sf8rNkP/KTNA/ykzP/8oMT//KTNA/ykzQP8oMD7/Jyo4/yIhLv8gGyT/MScb/2BLFP+NaQ7/lXEO/4hp + EP95XxL/dl0T/39kEf+RcQ7/poEL/7aNCf/Blgf/x5sG/8mdBf/Knwb/zaEG/9CiBv/Oogb/x5wH/7eR + Cf+siQv/rokK/7iRCP/CmAf/zaEF/9SmBf/bqwT/3q0D/+CwA//gsAL/368D/9ipBP/KnwX/xJoG/8OZ + B//Fmgf/yJ0G/82gBP/aqgP/wpcH/3dfE/8kISH/GRkj/xcXGv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AICkpKUAtra3APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+vr6AAAA + AADc3N0A5OTkAAAAABgAAAD/AAAA/wAAAP8AAAD/AAAA/wwMDf8eGx//IiQq/ys8Sf80VWn/NVhu/zRW + bP81Vmz/NVdt/zVYbf81WG3/NVht/zVXbf81V2z/NVds/zVXbP81Vmz/NVds/zRXbP81V23/NVdt/zVZ + b/80Vmz/Mk9i/y5FV/8rPk7/KztK/yo5SP8rN0f/KzdG/ys4R/8rOEb/KzdH/yo4SP8rOUn/KjpJ/ys7 + TP8sPU3/Kz1N/ys5R/8oMT//JSo2/yMlMP8iIyz/ISMq/yEkKP8gJSf/ICQn/yAkJ/8gJCf/ICQn/yAl + J/8hKif/HzQs/yU2Kv9MRRz/mnMK/7mOB/+0jQn/p4QM/6aEDP+siAz/uZIJ/8qeBv/aqgT/47ED/+m3 + Af/vugD/870A//fBAP/7xAD//cQA//3FAP/8xAD/+cEA//O+AP/xuwD/8bwA//S+AP/2wAD/+MEA//jC + AP/4wgD/+MMA//jDAP/4wgD/+cMA//fBAP/0vgD/8r0A//G8AP/xvQD/8bwA//fCAP/zvQH/w5gH/09B + Gv8gHiH/GRki/wwMDf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAABja2tsA/Pz8AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0AAAAAAMfHyAC/v8AAAAAAogAAAP8AAAD/AAAA/wAA + AP8AAAD/HRwf/x8gJP8nMjz/MlBj/zVZbv80WG3/M1Zs/zRXbP80V2z/NFds/zRXbP80V2v/NFds/zRX + bP80V2z/NFds/zRWbP80V2z/M1ds/zRWbP80VWv/MlJm/y5GV/8pNkP/JCky/yEjKv8hIyj/ICIn/yEi + Jv8hJCb/ISQn/yEjJv8hIib/ICIn/yEjKP8hIyj/ISMp/yEjKf8hIyn/ISIm/yAjI/8fJyT/IS0n/yI3 + LP8kQTH/Jkc2/ydMN/8nTTj/J045/ydNOP8mTTj/J1A6/ypeQP8sdU3/MXVL/1JwM/+dgxL/y58F/+Kw + AP/vuQD/+8MA///HAP//xwD//cUA//rDAP/4wQD/9b8A//O9AP/yvQD/8bwA//G8AP/wvAD/8LwA//G8 + AP/zvQD/9b8A//W/AP/0vgD/870A//G8AP/xvAD/8LwA//G8AP/xvAD/8bwA//C8AP/xvAD/8bwA//K9 + AP/zvQD/870A//O9AP/zvQD/8r0A//nCAP/uuQH/lXYP/zoxHf8WFyP/HRwg/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAovHw8QDn5+cAAAAAAPv7+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX1 + 9QAAAAAA9/f3AAAAACAAAAD/AAAA/wAAAP8AAAD/AAAA/xISFP8fHB//JCkw/y1AT/80VWr/M1Nn/zJR + ZP8xUGP/MU9i/zFOYf8xTmD/MExe/zBLXf8xTF7/ME1f/zFOYP8xT2L/MlBk/zFQZP8xT2P/MU1e/y5E + VP8oN0P/IiQs/yAfI/8hKCX/JDYu/yU/M/8lRDX/Jkc2/ydKOP8nSjn/J0k4/yZHN/8lRTb/JUM2/yVA + NP8lPTL/JDov/yQ6MP8mRTb/KllB/y1uS/8wgFX/Mo1b/zSXYP81nGP/Np5k/zafZP82oGT/Np9j/zWf + Y/82oGT/N6Rk/zipZv81pmb/N5Ra/0t2PP97chv/nHsM/7mQCP/YqQP/7LgB//K9AP/zvgD/8bwA//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8 + AP/xvQD/8b0A//G9AP/xvQD/8bwA//G9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/9L8A//S+ + AP/aqgP/alYV/yEgIf8ZGSP/EhIV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAILq6uwAAAAAA+/v6AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sAxMPFAPv7+wDOzc8AAAAAqAAAAP8AAAD/AAAA/wAA + AP8CAgL/Hh4i/x4aH/8hICj/JSo0/yYuOv8mKzj/JSk1/yMoM/8jJTH/IyQv/yMjLv8iIS3/IiAs/yIh + Lf8iIi3/IiMu/yMlMP8kKDP/Iyg0/yMmMf8iISz/IBwm/x8eJP8jNi//KlxC/zB+VP80j13/NJNg/zWW + Yv81mGP/Nplk/zaZZP82mGT/NZdj/zSWYv80lWP/NJRi/zSSYP8zkF//NJBf/zSXYv82nmf/N6Vq/zep + a/83q2z/OKpr/zeqav83qWn/OKlp/zipaf83qGj/OKlo/zmpaf85q2n/OKxo/ziuaf83q2j/NaBi/zaH + U/82bkT/O1o1/01RI/94YhT/xZkG//G8AP/0vgD/8bwA//G8AP/xvAD/8b0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8bwA//G8AP/xvAD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/xvQD/8bwA//G8AP/xvAD/8b0A//G8AP/xvAD/9L4A//bAAP+phgv/Sz8a/xMVI/8fHiP/AgIC/wAA + AP8AAAD/AAAA/wAAAP8AAACo7+7vAAAAAAD8/PsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gDe3t8D/v7+AAAAABsAAAD/AAAA/wAAAP8AAAD/AAAA/xUUF/8fHSH/Hx8j/yAkJv8hJij/ISYn/yEn + J/8hJyf/ISso/yItKf8iLSj/Ii8p/yIwKv8iMSr/IjAq/yIvKf8iLin/Iiwo/yErKf8iKyn/Iiwp/yIw + K/8kPjH/KVc//y97U/81mGP/N6ls/zmub/85r2//Oq9w/zqvcf86r3H/Oq9x/zqwcf86sHH/Oa9w/zmv + cf85r3H/Oa9w/zmucP85rXD/Oa9w/zmvcf85r3D/Oa5u/zmubv86rW3/Oa1t/zmubf85r23/ObBu/ziw + bf83rm3/Natr/zKlaf8unWb/K5Vj/yiOX/8lhlv/IXJT/yNdRv8vTjb/SEwk/3pkFP/HnAb/8b0A//O9 + AP/xvAD/8LsA//G8AP/xvAD/8bwA//G8AP/xvAD/8bwA//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7 + AP/yvQD/+cIA/92uA/+CaBH/IiAh/xwcI/8UFBf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAb/v7+ANPT + 0wD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7OzsAPLy8gLs7OwAAAAAkQAAAP8AAAD/AAAA/wAA + AP8CAgL/Hh0h/yEkJf8mRTT/KFQ7/ylVO/8pVTv/KVk9/ypcP/8rYUH/LGVE/yxoRf8sbEj/LW5J/y1v + Sv8tbkr/LW1J/yxrSP8rZ0f/K2RF/yxkRf8sZkj/LXBN/zGCWP81mmX/OK1v/zmxcf85rnD/Oatv/ziq + bv84q2//OKpv/ziqb/84q2//OKtv/zisb/85rG//OKxv/zisb/84q2//Oaxv/zmscP85rW//Oa1w/zet + b/83rG//Natv/zWqbv8zp23/MqRr/zCgaf8vm2b/LZVi/y2OXv8vh1n/MYBT/zV5Tf87ckf/Q24+/09t + Nf9fbiz/cXEi/4h5Gf+jhhH/w5oI/+KxAv/yvQD/870A//W/AP/3wAD/+MIA//fCAP/3wAD/9sAA//bA + AP/2wAD/9sAA//K9AP/yvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//G8AP/zvgD/+cIA/7eQCf9NPxv/Gxoj/xsb + I/8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAJH///8Ay8vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTk + 5AC7u7wAwMDCAAAAAAoAAAD/AAAA/wAAAP8AAAD/AAAA/xUSFf8fHyL/JTsw/zKEUf82n17/N59g/zef + YP83o2L/OKVk/zimZf84p2b/OKhn/ziqaP84q2n/OKxq/zisav84rGr/OKxs/zesbP84q23/OKxt/zis + bv85rnD/Oa9w/ziucP84q27/OKpt/zmqbv85q2//OKtv/zmscP85q3H/Oaxw/zmscf84rXH/OKxx/zmt + cv85rXH/Oa1x/zitcP84rXH/OKxx/zascf82rHH/Napv/zSmbf8zoGn/MJlm/y+PYP8uhFr/LXdT/y9s + S/8yYUL/OVk5/0ZVMf9WVyn/a18i/4VrHP+ffBT/uo4O/9KfB//krQL/8rkA//vCAP/8xAD/9sAA//S9 + AP/0vQD/9b4A//S+AP/zvQD/874A//W+AP/2vwD/9b8A//a/AP/1wAD/874A//K9AP/xvAD/8bwA//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/xvAD/8bwA//K9AP/8xQD/3q0E/4ttEP8jICL/Ghoj/xUUFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AAr5+fkA+fn5AAAAAAAAAAAAAAAAAAAAAAAAAAAA5OTkAHx8fgB/f4EAAAAAYQAAAP8AAAD/AAAA/wAA + AP8AAAD/Hxgg/yEoJ/8rYkH/Nptd/zinY/83o2L/OKNi/zilY/84pmT/OKZl/zimZv84p2f/OKho/zin + Z/84qGj/OKpq/zeqav84qmz/OKtt/zmrbv85q27/Oatu/zmqbf85q27/Oatv/zmrbv84q3D/Oaxx/zms + cf85rXH/Oa1y/zmtcv84rXL/Oa1y/zmtcv84rXL/OK1y/zmvc/85snX/ObR1/zavdP8vom7/KpBl/yqD + XP8weVX/PXRN/0lvRf9PaT7/WGU4/2VnNP94bS7/i3cs/5+EKf+ykSb/xZ0j/9WoHf/ishr/6rgV//C8 + Ev/0vg3/9L8J//O/Bf/0vgL/98AA//zFAP/9xAD/978A/+iyAP/PngP/s4gH/6V9CP+sggf/wJIG/8qa + Bf/HmQb/xJgG/86hBv/ptgD/8b0A//K9AP/xvAD/8b0A//G9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/8bwA//bAAP/yvQD/wJcH/0M4 + HP8eHSL/Gxsj/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAYdvb3ADV1tcAAAAAAAAAAAAAAAAAAAAAAAAA + AADn5+cAwsLDAK+vsAAAAADiAAAA/wAAAP8AAAD/AAAA/xAPEf8fGyH/JTow/zKEUv83omH/OKVj/zaj + Yf84pGP/OKRi/zelZP83pWX/N6Vm/zelZv84pmf/N6do/zeoaf83qGv/OKlr/zipbP85qW3/Oalt/zmp + bf85qW7/OKpu/zirb/85rHD/Oaxw/zmtcv85rXL/Oa1x/zmucv85rXL/OK1y/zitcv85rnP/OrJ2/zq1 + d/83tHj/Mqpy/yqZaf8nhV7/K3NS/zpqS/9VcEb/dH5F/5CMRf+ol0L/t54//76gO//Eojf/zaY0/9ar + L//fsi7/6Lgr/++8KP/zwCT/98Mf//jEG//4xBf/+sUU//zHEP//yQz//8oH//vDA//ttgD/1qIB/7iK + Bv+Xcwz/eGAT/11THP9JTCP/Qk0o/0hWKf9VXSb/WFMf/1RGGv9MPBj/W0UV/6iECv/ntwL/+sQA//C7 + AP/wvAD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//G8AP/yvQD/8rwA//nCAP/gsAP/eGAT/yolIf8XGCT/ERAS/wAAAP8AAAD/AAAA/wAA + AP8AAADinp6gAJiYmgDz8/MAAAAAAAAAAAAAAAAAAAAAAM3NzQDb29sAAAAAJQAAAP8AAAD/AAAA/wAA + AP8AAAD/HBce/yEmJv8pVj3/Npxe/zijYv83o2L/N6Ni/zikY/84pGP/OKVl/zimZv84pmf/OKZn/zen + aP83qGr/OKlr/zipbP85qmz/Oals/zmpbf85qW7/Oapu/zmrcP85rHH/Oaxx/zmtcv85rXL/Oa5y/zmt + c/84rXP/Oa1z/zmudP85sHX/OLJ3/zWwdf8wp3H/LZtq/y2NY/8zfln/QHVS/1VxS/9wdEb/j39F/7CT + Rv/Npkf/47ZI//LBR//5yEX//MtD//3NP//+zzv//s84//3PNP/9zDH/+sks//fGKP/1xST/98Yf//nH + G//5xBb/87wR/+axDf/SoQv/uI8M/5p8Ef96bhr/W2Im/0JaMf8vWDv/JVtD/yFiSf8hak3/JHBO/yVu + TP8jXUL/IE48/xY1NP8bIif/XEgW/8SYBv/4wgD/+cQA//jCAP/0vwD/8r0A//G8AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/wuwD/+MEA//C7 + Af+wign/QDYc/xgYI/8cGyD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAls7O0APb29gAAAAAAAAAAAAAA + AADh4eIAl5aZAKCfoQAAAACGAAAA/wAAAP8AAAD/AAAA/wgICf8eFx//JDgv/y90TP84pmP/OKVj/zaj + Yv84pGP/OKVk/zimZf84pmf/OKdo/zenaP84qGn/N6lq/ziqbP85qm3/Oalt/zmpbf85qW3/Oapu/zmr + cP85rHD/Oa1y/zmucv85rXL/Oa1z/zmtc/85rnP/OK10/ziudf85r3b/N7B3/zaudv8zqHP/Mp1r/zKK + YP84dVP/SWdJ/2VmRf+MeUn/t5VQ/92yWf/1yV3//dNc//7UWf/70VT/+c5P//fLS//2yUf/9MlC//TI + Pv/0xzr/88c1//TFMv/0xS7/9cUq//XFJ//zwyH/67sd/92uGf/DnBj/oIMZ/3VoH/9OVSn/MlA2/yRe + Rv8jclT/KIZc/y+XYf81omP/N6dk/zipZP84qGP/N6di/zWgXf80mVr/Ln9P/yVQPP8sMib/gmcR/8ue + Bf/rugL/874B//S+AP/zvgD/8bwA//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7AP/0vgD/9b8A/92sAv9jUBb/IiAi/xobI/8ICAn/AAAA/wAA + AP8AAAD/AAAA/wAAAIb29vYA6urqAAAAAAAAAAAAAAAAAOHh4gBsa24Abm1wAAAAAPcAAAD/AAAA/wAA + AP8AAAD/FhQY/x8bIf8oTjn/M49Y/zimY/84pWP/N6Ri/zilY/84pWX/OKZm/zimZ/83p2j/N6dp/zio + av83qWv/OKls/zmqbf85qm3/Oalt/zmqbv85q3D/Oaxx/zmscf85rXL/Oa5y/zmtc/85rnT/Oa50/zmu + df84rnb/OK93/zizev8zrXb/LJNo/y5zVf9CY0j/aGtI/5eEUv/CpF7/4b5o//DNbf/30mz/+dJo//jP + Y//2zF7/9cta//TLVf/1ylH/9cpN//TJSf/1ykX/9slB//XIPf/1yDn/98g1//nKMv/4yi3/7b0n/8Wb + If+UdB7/Zlwl/0ZfNv8zaEX/K3RR/yuEW/8wl2P/NKRo/zaoaf83qGj/N6dm/zemZP83pWP/OKNi/zii + Yf83omD/NqFe/zeiXf83olz/NJRX/ypnRf8vQSz/V0gZ/5BvDv+7kwn/26wD/++6AP/0vgD/8r0A//G8 + AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//K9 + AP/1vwD/874A/5BxEP84MR7/FBcj/xYVGf8AAAD/AAAA/wAAAP8AAAD/AAAA98rKywDAwMEAAAAAAAAA + AAAAAAAA4uLjAMfHyQAAAAAlAAAA/wAAAP8AAAD/AAAA/wAAAP8fGiD/ISkn/y1nRP83oWH/OKVj/zil + Yv83pWT/OKZl/zilZv84pmf/OKZo/zenaf83qWv/N6lr/zipbP85qWz/Oalt/zmrb/85q2//Oaxx/zmt + cv85rXL/Oa1y/zmtc/85rnT/Oa91/zmvdv85r3f/Oa94/zixef84sXj/Nady/0GKYf9jfVj/kYtc/7ij + Z//Ut27/58Vx//PNc//50nP/+dRx//nTb//40Gv/9s1m//XMYf/0y1z/9MtY//fOVf/80VL//dNP///T + Sv//z0T//ck9//jEOP/xvDP/3awt/7aPKP99ZCT/T0wp/zhUOf8xc07/MZFh/zGdaP8yomv/NKZs/zWq + a/83qmr/N6pp/zioaP84p2f/OKZk/zekY/84o2L/OKJh/zihYP83ol//OKFe/zeiXP83oVz/NJdY/y5/ + T/8tXD3/Mjwo/z4yG/9xWRT/xpwH//zEAP/zvQD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/8bwA//S/AP/4wgD/u5IJ/1ZHGf8VFyT/Hh0j/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAJYqKiwD29vYAAAAAAAAAAADKycsA2NfZAAAAAHYAAAD/AAAA/wAA + AP8AAAD/CQkL/x4ZH/8lPzH/MX1Q/zipZf84pGL/N6Vj/zilZv84pmf/N6Zn/zimaP84p2r/N6lr/ziq + bf84qm3/Oals/zmpbf85qm7/Oaxx/zmtcv85rXL/Oa1z/zmtc/85rXP/Oa51/zmvdv85sHf/ObB4/zmw + eP85sXn/OLN6/zWsdv8xe1j/dYFa/7ula//ix3v/9tF///3Zf//92n3/+9d6//fSdf/10HH/9M9u//XO + a//1zWj/9s5l//vRYv/80V7/98tW/+q9Tf/YrkX/yaNA/7udPv+xmz3/pZo//5WTPv99hD3/W3I+/zZi + Qv8naE//J4Be/y6da/81rXH/OLBx/zqwcf86rm7/OKtr/zioaf83p2f/N6Zn/zilZ/84pWX/OKVk/zik + Y/84o2L/OKJh/zihYP84oF7/N6Bc/zegXP85pV3/NqRe/y2IVf8fUkD/EhYl/ygfHv+GaRD/4bAD//zF + AP/3wQD/8r0A//G8AP/xvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/wuwD/8r4A//fBAP/drAP/d2AU/yAeIv8cHCL/CQkL/wAAAP8AAAD/AAAA/wAAAP8AAAB2vLy9APj4 + +AAAAAAA+Pj4AJqZmwCjoqUAAAAA1gAAAP8AAAD/AAAA/wAAAP8WFBf/Hhwh/ylWPf8zkFn/OKpm/zil + Y/82pGX/OKZn/zinaP82p2j/OKdp/zepa/85qmz/Oalt/zmpbv85qW3/Oapu/zmscP85rXL/Oa5y/zmt + cv85rXP/Oa51/zmudf85r3f/ObB4/zmxef85sXn/ObB5/ziyev84tXz/NKp2/y9kTP+Ee1b/1LZ0//Xf + if/+3Ib/+teA//fTfP/30nn/9tB2//XQc//0z3D/9c9t//bPa//3zmf/78hh/925WP/Bo07/oY1F/4R9 + Qf9tdkL/XHhI/1GAT/9Ghlf/OYVa/y6CXf8ohmL/LJhq/zWqcv86tHX/OrJz/zmsb/84qW7/OKht/zip + bf85qWz/N6lr/zioaP82p2f/OKVm/zilZ/84pmX/OKVj/zikYv84o2L/OKJh/ziiYP84oV7/N59c/zef + W/83pF7/OKNd/zOGUP8kQTP/Fxsm/0U1Gv+WdQ3/3a0D//C8AP/2wQD/9sAA//S+AP/yvQD/8bwA//G8 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8AP/xvAD/9L4A//K8AP+ZeQ7/NS4e/xka + I/8UFBn/AAAA/wAAAP8AAAD/AAAA/wAAANb6+vsA7e3uAAAAAAD4+PgAf36AAAAAAAoAAAD/AAAA/wAA + AP8AAAD/AAAA/x4bH/8gJCX/LWxJ/zadYP84qGb/OKVl/zelZv84pmf/N6do/zeoaf84qGr/OKls/zmp + bP85qW3/Oapu/zmrb/85rHH/Oa1y/zmtc/85rnL/Oa10/zmudf85sHb/ObB3/zmweP85sXn/ObJ5/zmy + ev85sXv/OLJ8/zi1fv83sXz/L41n/z9pT/95dVL/w6ds/+3Of//42IL/+tZ///jTe//30nj/9tF1//XQ + cv/20XD/9s9t/+nEZf+1nFP/eXZG/0liQ/8yZkz/KnhZ/yuMZv8unnH/MKp3/zKvef80snn/NrJ5/zmz + eP84snf/OK90/ziuc/85rXL/Oaxx/zirb/85qm7/Oalt/zmqbf84qWz/OKlq/zeoaf83pmf/OKZn/zim + Zv84pWT/OKRj/zijYv84o2L/OKJh/zihX/83n13/OJ9c/zefW/83olz/Np5a/zGBTv8lSDf/HiQn/zgu + Hf98YRD/wJcG/+e2Av/2wAD/9r8A//K9AP/yvQD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8bwA//G8AP/yvQD/+8MA/7aQCf9TRRj/Fxgj/xsaIf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AArQ0NEAAAAAAPj4+ADi4uIAAAAANwAAAP8AAAD/AAAA/wAAAP8EAwT/Hxsh/yQyLP8xf1H/N6Zk/zin + Zv84pmb/N6Vm/zilZv83pmf/N6hq/zepa/84qmz/Oals/zmpbf85qm//Oatx/zmtcv85rnP/Oa1z/zmt + c/85rnX/Oa92/zmxeP85sXj/ObB4/zmxef85snr/ObN8/zmzff84tH7/OLV//zi1f/83s37/M6By/zaC + X/9ObE//hHtV/8KjaP/sxXf//dd///3cf//92Hv/+dR2//rVdP/wymz/o4lO/0ZZQf8fZ1H/JJVu/yup + ev8ws3//NLeA/za3fv82s3z/N7J6/zeyef84snn/ObF3/zmwd/85rnT/OK1y/zitcf85rHH/Oaxx/zmq + b/85qW3/Oapt/ziobP84qWv/N6hq/zenaP84pmf/OKVn/zimZv84pGT/OKNi/zijYv84omH/OKFg/zif + Xv84n1v/N55a/zefW/83oVv/N6Bb/zSOVP8sbkf/Jks4/yozJ/9ENxr/dFcQ/6yECf/crAP/9L4A//W/ + AP/yvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8LsA//G8AP/8xAD/0KIF/3Nd + FP8aGST/HBsj/wQEBP8AAAD/AAAA/wAAAP8AAAD/AAAAN62srgAAAAAA39/gAOfm5wAAAAB8AAAA/wAA + AP8AAAD/AAAA/w4MD/8eHiL/JkQ0/zOOWP84qmb/N6Zl/zilZ/84pWb/N6do/zeoaf83qWz/OKls/zmp + bP85qW3/Oatv/zmrcP85rHL/Oa1y/zmtc/85rnX/Oa51/zmvd/85sHj/ObF5/zmyef85snr/ObN7/zm0 + ff85tH7/ObV//zm1f/84tH7/OLZ//zm5gv81uIH/L6h4/y6Sa/8+gl//Xn1Z/4KBWP+mkV7/yKlm/+i+ + b//6znT//9p3//jVcv/Ao1v/dnZL/1J1UP9Nj2H/Q5dp/zOXbf8rm3L/K6V3/zCwff82tn7/OLZ8/zqz + ev85sHf/Oa94/ziudf85rnT/Oa1z/zmtcv85rXL/Oaxx/zmrb/85qW3/Oalt/zmpbf84qWz/N6hq/zin + aP83pmj/OKVn/zilZv84pGT/OKNi/zijYf84omH/OKBf/zigXf84n1v/N55a/zifW/84o13/N6Rd/zab + Wv8xiFP/J25K/yFVP/8mQDH/Ojsi/2BOF/+ZeQ7/16gE//K9AP/yvQD/8r0A//G8AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/xvAD/8r0A//rCAP/isAP/knQP/yQhIv8bGyP/Dg0Q/wAAAP8AAAD/AAAA/wAA + AP8AAAB8goKEAPr6+gCysbMAtrW2AAAAAMUAAAD/AAAA/wAAAP8AAAD/FhMX/x8iJP8pWT//NZhd/zis + Z/82pWb/OKZn/zemZ/83qGn/OKlr/ziobf85qm3/Oalt/zmqbv85rHD/Oaxx/zmtcv85rXP/Oa50/zmv + dv85r3f/ObB4/zmxef85sXr/ObJ7/zmzff85tH7/ObV//zm1f/85tYD/ObWA/zm1f/84toD/OLaA/zm5 + g/85vYb/Nr2G/yyqe/8pjmn/Mnlc/0t1Vv9vgFj/lJBd/7ejY//Qs2f/4MBq/+e/Z//TsmD/vadb/6yh + WP+WmVf/doxX/1qHWv9Fi2D/OJRq/zGecf8wqHf/MrB6/za0e/84s3r/OLF4/zmvdv84rnT/Oa1z/zmt + cv85rXL/Oaxx/zmqbv85qm7/Oalu/zmpbf84qWv/OKhp/zanaP84pmj/OKZn/zilZf84pGP/OKRi/zij + Yv84oWD/OKFf/zigXP84nlv/N55a/zifW/83o1z/Oahf/zmqYP84ol3/NpBT/y5oQ/8sQC7/QDUc/3lg + Ev/LnwX/8b0A//O+AP/xvAD/8LsA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7AP/yvQD/9r8A/+66 + Af+siAv/NC0f/xwcI/8VFRr/AAAA/wAAAP8AAAD/AAAA/wAAAMWjo6UA+/v7AIKBgwCFhIYAAAAA/wAA + AP8AAAD/AAAA/wAAAP8cGB3/ISgn/y1tSf82n2H/OKto/zelZv84pmf/N6dp/zeoa/84qmz/OKlt/zmp + bf85q2//Oaxw/zmtcf85rXL/Oa1z/zmudf85r3b/ObB4/zmweP85sXn/ObJ6/zmze/85s33/ObV//zm1 + f/85tX//ObaA/zm1gP85toH/ObeC/zi3g/85uIP/ObiE/zi4hP84uYX/OL6H/ze/if8yt4X/K6V6/ymP + a/8ve13/R3RV/2p7VP+Vjlj/wahh/97AaP/rzmr/8tBn//bJYf/mu1n/xKZS/5mRTf9wgU3/Tn9V/zuM + Yv8znnD/M6x3/zWxev82snn/OLB3/zmwdv85rnT/OK1z/zitcv85rXH/Oaxw/zmrb/85qW3/Oals/zip + bP84qGv/N6hp/zemZ/84pWb/OKVl/zilZP84pGL/OKNh/ziiYf84omD/OKBd/zefXP83n1v/OKBc/zee + Wv81l1j/MotT/zODTf9TkUP/fJwz/5mVHv+siAv/xZsG/+SzAf/yvQD/8r0A//K9AP/xvAD/8bwA//G8 + AP/xvAD/8bwA//G8AP/xvAD/8bwA//K9AP/yvAD/9r8A/8KYB/9KPhv/Hh0i/xgYIf8AAAD/AAAA/wAA + AP8AAAD/AAAA//v7+wD39/cAY2JlAAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/x8aIP8iLyr/MH1R/zaj + ZP83qmj/N6Zn/zinaP83p2n/OKlr/zmpbf85qW3/Oapu/zmrcP85rHH/Oa1y/zmtcv85rXT/Oa92/zmw + d/85sHj/ObF5/zmxev85snv/ObN9/zm0fv85tX//ObV//zm2f/85toD/ObaB/zm3gv85uIP/ObiE/zm5 + hf85uYX/OLmE/zm6hf85uob/OLqG/zi6h/83u4f/N7uG/zW3hf8yrX//Mp91/zaOaP9GgF3/YX1U/4SF + Uf+sllP/0qxX/+/BXP/1zV3/8M9c/+fGVv/Lr0//oJVI/22ASv9DflX/LpFo/y6odv81s3v/ObR6/ziv + dv84rXT/Oa1z/zitcv85rHH/Oatw/zmqbv85qW3/OKls/zipa/83qGn/N6do/zimZ/84pWb/OKVk/zik + Y/84o2L/OKJh/ziiYf84oF//N59c/zegW/84oFz/MoVP/ypZPf8gMy7/Iion/2FRGf/AmQv/78ME//LF + Af/1xgD/+MQA//jBAP/2vwD/874A//K9AP/yvQD/8bwA//K9AP/yvQD/8r0A//K9AP/xvAD/8r0A//G8 + AP/6wwD/0aUF/2NQFv8gHiL/GBkk/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEOnp6QC3trgAAAAAMAAA + AP8AAAD/AAAA/wAAAP8GBQb/Hhwh/yQ5L/8zi1j/N6Zm/zipaP82pmf/OKdp/zeoa/84qWz/Oalt/zmp + bf85qm//Oaxx/zmtcv85rXL/Oa1z/zmudf85sHf/ObF5/zmxef85sXn/ObJ7/zm0ff85tX7/ObV//zm1 + f/85tYD/ObaB/zm3gv85uIP/ObmE/zm4hf85uYX/ObmF/zm6hv85uYf/ObqI/zm6h/84uof/ObuI/zm8 + if85vor/N76L/zW8iv8zt4b/MLGC/zGofP82oHX/Ppds/02OY/9iiVv/folT/5uRT/+4nk3/1axM/+e1 + TP/ouEn/2LJG/7ikRv+Ikkn/U4VT/zOLYv8qn3L/NLN7/zizef85r3T/OK1x/zmtcv85rHH/Oatv/zmp + bf85qW3/N6ls/zepav82qGj/OKZn/zilZ/84pWb/OKRk/zijYv84o2L/OKNi/zihYP82oF7/OKBc/zig + XP80jFP/LWtE/yVJNv8jNi7/Ojsj/29cF/+WeA7/rIgJ/8GUBP/TnwL/4aoA/+yyAP/0uQD/+b4A//zC + AP/9xAD//cYA//3FAP/6xAD/9cAA//K9AP/yvQD/8LsA//vEAP/drQP/fGMS/yQiIf8XGCT/BgYG/wAA + AP8AAAD/AAAA/wAAAP8AAAAw2NjZAODg4QAAAABXAAAA/wAAAP8AAAD/AAAA/wwLDf8fICP/JkQ1/zSV + Xf84p2f/N6ho/zenaP84qGr/OKls/zmpbf85qW3/Oapu/zmrcP85rXL/Oa5z/zmtc/85rnT/Oa92/zmx + eP85sXr/ObF6/zmxe/85s33/ObV+/zm1f/85tn//ObWA/zm2gf85t4P/ObiD/zm5hP85uoX/ObmG/zm6 + h/85uof/ObuH/zm6iP85uon/ObuJ/zm7if85u4r/OLuK/zi7iv84u4r/ObyK/zq+i/85wIz/OMGM/zO8 + iv8ttIT/K6h8/y6bc/83jmn/R4hg/12GWP93i1P/lZlR/7ClT//Dq0n/yqdC/7+bPP+gkD7/doZG/0yE + VP8zj2T/NKdz/zevdv84rnP/Oa5y/zitcv85rHD/Oapu/zmobf84qm3/OKpr/zepaf83pmj/OKZn/zim + Z/84pWX/OKRj/ziiYf84omH/OKJh/zehX/83n13/OJ9c/zeaWf80kFT/MYJP/y91Sv8raET/MmI9/0Bi + NP9RZiz/Y2ol/3VyH/+Gehn/loEU/6aKEf+zkA7/vJQL/8OXB//MnAT/2acD/+WzA//tugH/8b0A//G8 + AP/xvAD/+sMA/+WyAv+TdQ7/KiYg/xYXJP8NDA3/AAAA/wAAAP8AAAD/AAAA/wAAAFfFxcYAz87PAAAA + AIAAAAD/AAAA/wAAAP8AAAD/Eg8T/yAjJf8oTjr/Npxh/zipaf82p2n/OKhp/zepa/85qmz/Oahs/zmp + bf85q2//Oaxy/zmtc/85rXP/Oa10/zmudf85sHj/ObF5/zmxev85snv/ObN9/zm1f/85tYD/ObWA/zm2 + gP85t4L/ObiD/zm5hf85uYX/ObmF/zm6hv85u4f/ObuJ/zm8if85vIn/ObyK/zm7i/85vIv/ObyL/zm9 + jP85vYz/Ob2M/zm9jP85vIv/OLuK/zm7iv85vIn/OLyJ/zm9iv85wIv/N8GL/zO8iP8tsYP/KqN6/yuV + b/8zjmf/QIhg/1WEVv9yhkv/nYxA/8+nPP/Qpjj/oIw3/19yQP86hVv/NKFv/zewdv84rnP/OK1y/zms + cf85q2//Oalt/zmqbf85qW3/OKlr/zanaf84p2j/OKdo/zimZf84pWT/OKNi/zijYv84oWD/OKBf/zef + Xf84oFv/OKFb/zikXf85p1//OaZe/zaiXf8wmFv/KoxY/yZ/VP8ldU7/J2xJ/y1mQ/81ZT3/QGc3/0xp + Mf9XaSv/YGck/2xlHP98ZhT/lXYP/72VCP/ltAH/8r0A//K9AP/5wgD/67cB/6aDC/8yKx7/Fxgj/xIR + FP8AAAD/AAAA/wAAAP8AAAD/AAAAgLKxswDDw8QAAAAAqAAAAP8AAAD/AAAA/wAAAP8WEhf/ICcm/ylY + P/82oWT/OKlp/zeoaf84qGn/OKlr/zmpbP85qW3/Oapu/zmscP85rHL/Oa1z/zmtc/85rnX/Oa92/zmw + eP85sXn/ObF7/zmzfP85tH7/ObV//zm1gP85toH/ObaB/zm3g/85uIT/ObmF/zm5hv85uYb/ObqI/zm7 + if85u4r/ObyK/zm8iv85vYv/Ob2M/zm9jP85vYz/Ob2N/zm9jf85vY3/Ob2N/zm9jP85vYz/ObyL/zm8 + i/84vIr/ObuK/zi7if84u4n/OLuI/zi8iP83von/Nb+K/zG7iP8rsIH/K550/zOBX/9LXkD/oog7/+G9 + QP/tyz7/xpox/1phN/8zg1z/NK93/ziudP84rXL/Oa1x/zmrcP85qm7/Oapt/zmpbf84qWz/N6hq/zin + aP83p2j/OKZm/zilZP84o2L/OKNi/ziiYf84oV//N6Be/zigXP84n1v/OKBc/zifW/84oFz/N6Bc/zeh + W/83olz/N6Nd/zajXf81ol3/NZ9d/zOdXP8xmVv/LpZa/y6RWP8rhVX/I2dI/xguMP8jISL/bVUT/82g + Bf/0vwD/9L4A//jBAP/uugH/t48J/zoyHv8ZGSP/FhYZ/wAAAP8AAAD/AAAA/wAAAP8AAACooJ+hALS0 + tgAAAADLAAAA/wAAAP8AAAD/AAAA/xoUGv8hKyn/K2JF/zalZ/84qmn/N6ho/zipav84qWz/Oalt/zmp + bf85q2//Oa1x/zmtcv85rXL/Oa10/zmvdv85sHj/ObF4/zmxev85snz/ObR+/zm1f/85tX//ObWA/zm3 + gv85t4P/ObiE/zm5hP85uYX/ObqH/zm6iP85u4n/ObyK/zm8i/85vYv/Ob2L/zm+jP85vY3/Ob2N/zm9 + jv85vo//Ob6P/zm+j/85vo//Ob6O/zm9jf85vYz/Ob2M/zm8i/85vYv/OL6M/zjBjv80wI3/LbmJ/yut + gP8zonX/S5xt/2qbYv+Km1f/oJZM/6aLQP+vjTv/rJM8/56SPf+Bgj7/SHZL/zSVZ/82sXj/N691/zmu + c/85rXL/Oaxx/zmrb/85qW3/Oaht/ziqbf83qWv/OKdo/zenaP84pmf/OKVl/zikY/84o2P/OKJh/zih + YP84oF//OJ9c/zieW/84n1v/N59b/zefW/84n1v/OKBc/zihXP84olz/OKJd/ziiXf82oVz/NqFd/zaj + X/82p2D/L5lc/yd9Uf8tXz//VVUi/4ptEf/AlAf/57UB//K9AP/xvQD/9sAA//K8AP/Fmgf/Qzkd/xsb + I/8YGB7/AAAA/wAAAP8AAAD/AAAA/wAAAMuOjY8AqqqrAAAAAOcAAAD/AAAA/wAAAP8AAAD/GxUd/yIv + K/8takn/N6do/zirav84p2n/Oapr/zmqbf85qG3/Oapu/zmscP85rXL/Oa5z/zmtdP85rnX/ObB3/zmx + ef85snr/ObN8/zm0fv85tX//ObV//zm1gP85toH/ObiD/zm4hP85uYX/ObqF/zm7h/85u4n/ObuK/zm8 + i/85vYz/ObyM/zm+jP85vY3/Ob6O/zm+j/85vo//Ob6Q/znAkf85wJH/Ob+R/zm/kf85vpD/Ob6P/zi+ + jv85vY3/OcCP/zfDkP8zvIz/LquB/zehd/9OnnD/ap1p/4CaYP+Pllj/lpJR/5SOTP+LjUz/fpBQ/2qP + VP9Yjln/TJBf/0OVZP86n2z/N6t1/zixd/84rnX/Oa50/zmsc/85rXL/Oaxx/zmqbv85qW3/Oalt/zip + bP84qGr/N6Zn/zelZ/84pmb/OKVk/zikY/84o2L/OKJh/zihYP84oF3/OJ9c/zifWv84oFz/OKBc/zig + XP84n1z/N59b/zefW/84n1v/OJ9b/zefW/84oVz/OKBc/zCEUP8oYEH/Q1ku/4R6G/+9mgv/4rAD//G8 + AP/zvgD/8bwA//C8AP/1vwD/874A/86hBf9LQBv/HR0i/xkZIP8AAAD/AAAA/wAAAP8AAAD/AAAA54B/ + gQCenp8AAAAA/AAAAP8AAAD/AAAA/wAAAP8dFR7/IzMs/y5xTP82qGf/OKtr/zioav85qmz/Oapt/zmp + bf85q2//Oaxx/zmsc/85rnL/Oa51/zmvdv85sXj/ObF5/zmxe/85tH3/ObV//zm1f/85tX//ObaB/zm3 + gv85uYT/ObmF/zm5hv85uof/ObyJ/zm8iv85vIv/Ob2M/zm+jf85vY3/Ob6N/zm+j/85v5D/OcCR/znA + kf85wJH/OcGS/znBkv85wJL/OcCS/zm/kf84wJH/OL+Q/zm/kP82uYv/N62C/z+fdv9Wlmv/dJNi/5CO + WP+ijFL/ppBR/5mTU/9/j1X/XolZ/0GHXv8wjGj/KJdw/yeieP8prn//LrSB/zW5gf84t37/ObN5/zmv + dv84rXX/Oaxz/zmuc/85rXL/Oatv/zmqbv85qG7/Oapt/zipa/84p2j/NqZn/zimZ/84pWX/OKVi/zik + Yf84o2L/OKBf/zihXv84oFv/OJ5a/zigXP84oFz/OKBc/zigXP84oFz/OKBc/zigXP83nlr/OKJc/zee + W/8yhlD/H0c4/zIzI/98XA//26YA//rDAP/8xQD/9sEA//K9AP/yvQD/8bsA//S+AP/0vwD/1KYE/1NG + Gf8fHiH/GRki/wAAAP8AAAD/AAAA/wAAAP8AAAD8eXh7AJGRkgAAAAD/AAAA/wAAAP8AAAD/AAAA/x4X + H/8jNi7/L3ZP/zepaP84q2v/OKhq/zmpbP85qm3/Oapu/zmscP85rXL/Oa1z/zmuc/85rnX/Oa93/zmx + ef85sXr/ObJ8/zm0fv85tX//ObV//zm1gP85t4L/ObiE/zm5hf85uYb/ObqI/zm7if85vIr/ObyL/zm8 + jP85vY3/Ob6O/zm/kP85v5D/OcCR/znBkv85wZL/OcGT/znBk/85wZT/OcKU/znBlP85wZT/OcCT/zjA + kv84wZP/OcKU/zClf/83fGH/X25P/6iXXP/Oq2L/upVV/454SP9rc0v/UX5X/0OHYP89j2j/O5ht/zqe + cf85onP/OKV1/zapd/81q3n/NK56/zeye/84snn/OK93/ziudv85rXT/Oa1z/zmtcv85rHD/Oapu/zmp + bf85qW3/OKlr/zioaf83pmf/OKZn/zilZf84pWP/OKRi/zijYv84oWD/OKFe/zigXP84n1v/OKBb/zig + XP84oFz/OKBc/zigXP83n1v/OKBc/zefW/84pF3/NJBU/yZROf8WGiT/YkoT/8WaB//6xQD/874A//G8 + AP/yvQD/8r0A//K9AP/xvAD/874A//S/AP/ZqgT/WksY/yIgIv8ZGiP/AAAA/wAAAP8AAAD/AAAA/wAA + AP90c3YAAAAAAQAAAP8AAAD/AAAA/wAAAP8AAAD/Hhcf/yQ3L/8veVD/N6lp/zera/83qWv/Oalt/zmq + bv85qm7/Oaxw/zmtcv85rXL/Oa5z/zmudf85sHf/ObJ5/zmyev85snz/ObR+/zm2gP85toD/ObaA/zm3 + gv85uIT/ObmF/zm6hv85uoj/ObuJ/zm8i/85vYz/Ob2M/zm9jv85vo//Ob+Q/zm/kf85wJL/OcGT/znC + k/85wpP/OcGT/znClP85wpT/OcKU/znClP85wZP/N8CS/znBk/85w5X/MaV//zaDZf9Pelr/dpRk/3yS + Yf9uglf/Z3pT/3CGWP91jFr/dYxZ/3KLWP9uiVb/ZoFR/195TP9Wc0r/TnBK/0ZxTP8+eVP/N4Ze/zSa + a/84rnf/N692/zmudP85rXL/Oa1y/zmscP85qm3/Oalt/zmpbf84qWv/OKhp/zenaP84pmf/OKRm/zik + Y/84pGL/OKNi/zihYP84oV//OKBc/zifW/84oFv/OKBc/zigXP84oFz/OKBc/zefW/84n1v/N6Nd/zif + W/8tdUv/GCYq/zApHv+beA3/7rkB//XAAP/yvQD/8LsA//G8AP/yvQD/8r0A//G8AP/zvQD/9L8A/9yt + A/9eTRj/IiAi/xkZI/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAEAAAADAAAA/wAAAP8AAAD/AAAA/wAA + AP8dFx7/JDow/zCAVP84r2z/Oa5s/zipa/84qG3/OKlt/ziqb/85rHH/Oa5z/zmuc/85rXX/Oa93/zmw + eP85snr/ObJ6/zmzff85tH7/ObaA/zm2gP85t4L/ObiE/zm5hf85uob/ObqH/zm6if85u4r/ObyM/zm9 + jf85vY7/Ob6P/zm/kP85wJL/OcGS/znAkv85wZP/OcKU/znClf85wpX/OcOW/znDlv85w5b/OcOW/znC + lf84wpT/OMGT/znBk/82uY3/N6+G/zurgf9CroH/QKh9/z2kef9ApHj/Sql6/0+ref9Sr3r/Ua95/0um + c/9Elmj/Q4he/0V3Uv9UaUT/eWw4/6WNPf99ez7/RHdP/zKhcP84sHj/ObB2/zitc/85rHL/Oa1x/zmr + b/85qm3/Oaht/zeoa/83qGr/NqZo/zilZ/84pWb/OKVk/zijYv84omH/OKFg/zigXv84n1z/OJ5c/zig + Wv84oFz/OKBc/zigXP83n1v/N6Bb/zikXf85p17/LoNR/yBHOf8oIyD/gGQR/9SlBP/5wgD/8r0A//G8 + AP/xvAD/8r0A//K9AP/yvQD/8bwA//K+AP/1vwD/3a4D/19OF/8jISL/GBoj/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAAwAAAAMAAAD/AAAA/wAAAP8AAAD/AAAA/x4XH/8jNi7/LnRN/zamZ/85rm3/Oa9v/zmu + cf85rnD/Oa1x/zmtcv84rXL/OK10/zmudf85r3j/ObF5/zmyef85s3v/ObR+/zm1f/85tn//ObeB/zm3 + g/85uYX/ObqF/zm7h/85u4j/ObuK/zm8i/85vYz/Ob6O/zm+j/85v5D/OcCS/znBk/85wpP/OcGT/znC + lP85w5b/OcOX/znEmP85xJj/OcSY/znEl/85xJf/OMSX/znDl/85w5b/OcOV/znImP84y5r/NMua/y/F + lv8uw5T/L8ST/zDEk/8ww5H/Lr6P/yqxhP8tpHr/O5xx/02Zav9clGH/aIhU/3l9Rv+bgTz/u5xA/4aG + Q/9Gf1T/MqNy/zexeP85sHf/OK50/zmtcf85rXL/Oaxw/zmqbv85qWz/OKls/zipa/83p2n/N6Zm/zim + Z/84pmX/OKRj/zijYv84omH/OKFf/zigXf84n1z/OJ9b/zigXP84oFz/OJ9b/zefW/83oFv/NpxZ/zCC + T/8qVDr/Pz0h/4BjEP/TqAX/9cIA//fAAP/xvAD/8LsA//G8AP/xvAD/8r0A//K9AP/xvAD/874A//W+ + AP/drgL/X08X/yMhIv8YGiP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAADAAAAAQAAAP8AAAD/AAAA/wAA + AP8AAAD/Hhog/yEqKP8oTzv/L3pR/zGQXv80nmb/OKZs/zirb/85r3L/Oa9z/zivdP85r3b/ObB2/zmw + eP84sHn/ObF6/zmzfP85tX//ObV//zm1gP85uIL/ObiE/zm5hf85uob/ObqI/zm8if85vIv/Ob2M/zm9 + jf85vo//Ob+Q/znBkv85wpT/OcKU/znClP85w5X/OcSW/znFmP85xZn/OcWZ/znGmf85xpr/OcaZ/znH + mv83xpn/N8aa/zfFmP82w5f/NsKV/zbBlP82wZP/NsCS/ze/kP83vI7/N7yN/ze6iv80q4D/NYdl/0Vv + Uf9mcUv/hn5K/5iHSf+cjEn/lZJM/4aYU/9nlVn/SJxo/zipdf84snr/OLF4/zmvdv85rnT/Oa1y/zmt + cv85q3D/Oalv/zmpbf85qm3/Oapr/zioaf82p2f/OKVn/zimZf84pGT/OKNj/zijYv84ol//OKFd/zig + W/84nlv/OKBc/zigXP83n1r/OKFc/zaeWv8zhlD/I0s4/y4uIv9rTxH/y50F/+q9Af/zwQD/9b8A//S/ + AP/zvQD/870A//K9AP/xvAD/8bwA//C7AP/yvQD/9b8A/9ytA/9eThj/IyEi/xkaI/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAAGRkJIAAAAA/wAAAP8AAAD/AAAA/wAAAP8eHSH/IyIl/ykpLP8nLi3/Ijgw/yNN + Ov8qakr/MoZb/zWdaf84rHL/ObN3/zm0eP84s3r/ObF5/zixef85snr/ObN9/zi1f/85tYD/ObaA/zm4 + g/85uIT/ObmF/zm6h/85u4n/ObyJ/zm8i/85vYz/Ob6N/zm/j/85v5H/OcGS/znClP85wpT/OcKV/znD + l/85xJj/OcWZ/znFmf85xpr/OMea/zjHm/84x5z/OMqd/zfLnv80xpv/ML2T/y+wiv8wp4L/MqB8/zab + d/87mXX/Qpdy/0eSbf9GjGj/QYBg/0NpT/9qZkP/jnNE/5WBTP97f07/YYNU/02OYP8/nW3/N6h3/zSv + ff81s37/OLN8/ziyef84sXj/Oa92/zmudP85rXL/Oa1y/zmscf85qm//Oalt/zmqbf85qmv/OKhp/zen + Z/84pmf/OKZm/zilZP84pGP/OKNi/ziiYP84oV7/OKBc/zifW/84oFz/OKBc/zefW/83oVv/N5pZ/zB5 + S/8nUzr/Lz4r/0c/Hf9mThT/k3IN/8udBf/xvAD/+sQA//nCAP/2wAD/870A//G8AP/yvQD/8bwA//O+ + AP/0vwD/26wD/1xNGP8iICL/GRoj/wAAAP8AAAD/AAAA/wAAAP8AAAD/amlsAJaWmAAAAAD8AAAA/wAA + AP8AAAD/AAAA/xoaHv8qKCz/RkJF/1VQUv9FQUT/MTQ1/yUwLf8gNS7/Ikc3/yhfRf8ueVb/M5Rm/zeo + c/85tHv/Obl+/zm3fv85tX7/OLR+/zi1gP84toH/OLeD/zi4hP84uIb/ObmH/zm7iv85u4r/Ob2L/zm+ + jf85vo//Ob+R/znAkv85wJL/OcGT/znDlv85xJf/OcWY/znFmf85xpr/Ocab/znHm/84y5//NMyh/y3E + m/8wuZL/O6mF/0iXdv9Vh2j/Yn9g/2p9Xf9ve1r/c31a/3eCW/97iF7/f41h/3eLX/9ifVj/VnZV/12A + Wf9djGH/TpVo/0Gecf86qHj/Nq9+/zSzgP8ztYH/NLWB/za1f/84s3z/OLF5/zmxef85r3b/Oa91/zms + c/85rXP/Oaxx/zmqb/85qW3/Oapt/zmqbP84p2n/N6Zn/zimZ/84pmb/OKVk/zikY/84o2L/OKJg/zih + Xv84oFz/OJ9b/zigXP84oFz/N6Bb/zefW/83nlv/NZZX/zSPVP8zgk7/MGlC/yxHMv80NyX/WEcY/4dm + Df+0hwb/1KIC/+y2AP/5wgD/+cMA//O+AP/xvAD/874A//S/AP/XqAP/WEgY/yEfIf8ZGCL/AAAA/wAA + AP8AAAD/AAAA/wAAAPx3dnkAoqKkAAAAAOcAAAD/AAAA/wAAAP8AAAD/GBcb/y0rL/9UUlP/dXJx/2tl + Z/9ZUlX/SEFF/zkzOP8tKy7/JC0r/yE3L/8jSjr/KWJJ/y99Wf80mWv/N7B6/zm7gv85vYT/Or6F/zq+ + hv86wIn/OsGJ/zm/iv85vYr/ObyK/zi8iv84vIz/Ob2O/zi+kP84v5H/OMCS/znBk/85wpT/OcSX/znF + mP85xZn/OcWa/znHnP84yJ3/OMmf/zfDm/8/uZL/UqyH/1iWdv9Uf2T/WHhd/2aAYf9sgWH/bYRi/2yH + ZP9pjGf/Z5Rr/2Wdcf9mpXb/Yad3/1Ohdf9Ionf/Qql8/zitgP8vr4L/LraG/zK7iP81vYf/OLuE/zm4 + gv85tX//OLR+/zmyfP85snr/ObF4/zmwd/85r3b/Oax0/zmsc/85rXL/Oatu/zmobP85qm3/Oapt/zio + av83p2j/OKdn/zimZ/84pmP/OKVi/zijYv84omH/OKFf/zigXf84n1v/OKBc/zigXP84oFz/N59b/zig + XP84o13/OaZe/zaiXf8wk1j/KXhP/yFeRf8nUDr/OlEv/1ZcJf9zZxr/iW8R/6OBDP/GnAf/7LgB//O+ + AP/1vwD/874A/9KkBP9RQxr/Hh0i/xgYIP8AAAD/AAAA/wAAAP8AAAD/AAAA53x7fgCvr7EAAAAAywAA + AP8AAAD/AAAA/wAAAP8XFhn/Kiks/1FPUP99e3n/gH18/3t4d/9zcHD/ZWJi/1JNT/8+ODz/LiYs/yQd + JP8gISP/ITIt/ydWQv8ugV3/M55w/zSldf80pnb/NKV2/zWpev82rn3/OLaE/zi9iv85v4z/OcGO/znB + j/85wZH/OcKT/znDlP85w5T/OcKU/zjDlf85xJj/OcSZ/znFmv85xpz/Ocie/zfKn/82zKL/NbKP/02X + eP+Dk3L/i35h/25qU/9Ycln/VpNx/0ygfP9FqoT/QK+I/zqziv81t4z/MruQ/zG/kv8ywZP/M8GS/zPB + kf80wZD/NsGO/zrAjP85vIj/ObqF/zi4hP85t4L/ObaA/zm1gP85tX//ObR+/zmye/85sXn/ObB4/zmu + dv85rXT/Oa1z/zmtcv85q2//Oalt/zmqbf85qm3/OKlr/zeoaf84pmf/OKZn/zimZP84pWP/OKNi/zii + Yf84oV//OKBd/zifW/84oFz/OKBc/zigXP84oFz/OKBc/zifW/83n1v/OKBc/zikXf85pl//OKFc/zKR + V/8ofVH/IWRI/x9DN/8nLCX/T0AZ/5l5Dv/mtAH/874A//fAAP/yvQD/yp8G/0g9HP8bGyP/Fxce/wAA + AP8AAAD/AAAA/wAAAP8AAADLg4KFALe4ugAAAACoAAAA/wAAAP8AAAD/AAAA/xQTFv8nJin/TUpL/398 + ev+Cf3z/fXp4/3x5dv96d3X/d3Rz/3BtbP9hXl//TEpM/zUyNf8iHSL/HBke/x8qKP8kRzv/JlRC/yZU + Qv8mUkH/JlVF/yljTv8vgmP/NKJ5/ze2hv84wI7/OMCO/ze/j/84wJH/OcWW/znFlv84xJb/OMSX/znF + mf85xZn/OMab/zjInf85yp//OMug/zbNov8zqIb/S4Vr/4GPcP+GiGj/a3Vb/09yW/9CiW3/N6SB/zW7 + k/82x5v/OMiZ/zfFl/84w5X/OMGT/zjAkv84vo//OL6O/zi9jP84vIv/ObuJ/zm7h/85uob/OLmE/zm4 + gv85toH/ObWA/zm1f/85tH7/ObJ7/zmxef85sHj/Oa92/zmtdP85rXP/Oa1y/zmrb/85qW3/Oapt/zmq + bf84qWv/N6hp/zimZ/84pmf/OKZk/zilY/84o2L/OKJh/zihX/84oF3/OJ9b/zigXP84oFz/OKBc/zig + XP84oFz/OKBc/zefW/84oFz/N59b/zigXP83oVv/OKVd/zeiXP8yi1P/JFQ+/zY6Jf90WhL/w5kG/+66 + AP/zvQD/+MEA//C7AP+/lgj/PzYd/xkaI/8VFRr/AAAA/wAAAP8AAAD/AAAA/wAAAKiVlZcAycnJAAAA + AIAAAAD/AAAA/wAAAP8AAAD/EA8S/yQjJ/9HRkf/gH18/4aDgP+Cf3v/gH16/316eP98eXj/end2/3Z0 + c/9xb27/ZWRj/1BMTv86NTj/Kycs/yooLP8qKy3/Kist/ygoK/8jIyf/HSAj/x0pKP8hPTb/JllI/ypx + Wf8qcFn/KWpU/ytyWv8xknL/NbCH/zjElv85y53/Ocea/zjFmf84x5v/OMqf/znOo/840qb/OM2j/zq5 + k/8/n3//Rotv/013Yf9QZlP/XGJN/3BuVf99iGf/U5Z1/zeviv83yJv/N8OV/znClP85wZP/OcCR/zm9 + jv85vY3/ObyL/zm7iv84uoj/OLqH/zi5hf84uIT/OLeC/zi2gP84tX//OLR+/zmzff84sXr/OLB5/ziw + d/85r3X/Oa1z/zmtcv85rHH/Oapv/zmpbf85qWz/Oals/zioav83p2j/OKVn/zilZ/84pWX/OKRk/zii + Yv84oWD/OKBf/zifXP84nlr/OJ9b/zifW/84n1v/OJ9b/zifW/84n1v/N59c/zefW/83n1v/N59b/zef + W/84pF3/NpdX/y1tR/8fNC//VEMZ/6uBCP/wuwD/+8QA//S/AP/4wQD/7bgA/7GLCf83MB3/GBkj/xER + Ff8AAAD/AAAA/wAAAP8AAAD/AAAAgKOjpQDW1tYAAAAAVwAAAP8AAAD/AAAA/wAAAP8LCw3/IiEl/0FA + Qv+AfXz/ioeF/4eEgf+EgX7/gX58/398e/9+e3n/fXp4/3x5eP95d3X/cG1t/2NgX/9XVFX/VU5Q/1NM + Tv9SS07/T0dL/0Y/Q/84MTb/LSYr/yUhJv8jJyn/JjQy/yYzMv8jLSz/Hy0r/yI9Nv8mV0n/LHpi/zOl + gv85yp3/OtCi/znSo/850aT/OMyh/zW9lv8woIH/WqOB/4Cog/9sjXD/QXhi/z57ZP9Phmr/XpFw/2ul + ff9PrYb/Or6T/zjNnv84x5j/OcOV/zjBk/84wJL/OcCQ/znDkf85xJH/OcOQ/znDjv85wo3/OsKL/zrB + iv85v4j/Ob6G/zm9hP85u4L/ObqB/zm3fv85tnz/ObR6/zmyd/84r3X/Oa5z/zmtcv85rHH/Oaxv/zmr + bf85q23/N6lr/zaoaf83pmb/N6Zm/zemZP83pWP/N6Nh/zijYf84omD/OKFd/zigW/84oVz/OKFc/zih + XP83olz/OKJc/ziiXP84oVz/OKJc/zijXf84o13/OKNd/zimXv84n1v/M41U/y1xSP9Dazj/a3Il/52F + Ef/RowL/7bcA//zCAP/oswD/n30J/y4qH/8XGCP/DQwO/wAAAP8AAAD/AAAA/wAAAP8AAABXuLi5AOPj + 5AAAAAAwAAAA/wAAAP8AAAD/AAAA/wYFBv8fHyL/OTg7/357ev+Oi4n/jImH/4iFg/+FgoD/hIF//4J/ + fP9/fHr/fXp4/315eP98eXj/e3h2/3h2dP92c3H/c3Fv/3Jvbv9vbWv/aGZl/11bW/9PTU7/Qz9C/zs1 + Of89NDn/PTM4/zYtM/8sIyn/JRsh/yAaIP8hLi3/KGFS/zKkg/80to//M7ON/zGlhP8ukXb/KXRg/yNY + TP9UcFv/kJFy/5SMb/9XjHD/PKiF/zq/l/87wZf/PbuS/zirh/81rIf/NruQ/zjElv85xZb/OMaW/zjF + lf84wZH/N7yM/ze3if82tIb/NrSE/zaygv83soD/N7B//zavff83r33/N698/zeve/82r3r/OK95/zix + ef85snn/OLJ4/ziydv85snX/ObB0/ziucf85rG//Oa1u/zmub/85rW3/OKxr/zmraf85q2n/Oatn/zmq + Zv85p2T/OKdj/zilYv84pF//OKJc/ziiXf84ol3/OKJd/zejXf84ol3/OKJd/zigW/83oFv/N59b/zWd + Wv80m1n/MZpX/zGZV/8wmlf/L5ZW/yWAT/8gXUD/N0ko/35lEf/RpBP//Mka/+K2HP+LcRr/JyUh/xYX + Iv8GBgb/AAAA/wAAAP8AAAD/AAAA/wAAADDOzs8A3NvcAAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/xwc + IP8yMDT/d3V1/5KPjP+Sj43/jYqI/4qHhf+IhYP/hoOB/4SBf/+Cf33/gX57/357ef98eXj/end2/3h1 + dP91c3H/c3Fv/3Jvbv9wbWz/b21r/2xqaf9pZmX/ZGJh/2NhYf9hXl7/WllZ/1BPT/9DQkP/Mi0x/yMa + If8eJyj/JlNI/ylsWf8oYlP/J0xE/yY1NP8hHyP/HB0i/yE6Nv9GY1P/gYNq/26dff9EwZj/L9Om/zPB + mP8tlHf/J2JS/yhcTf8tfWT/Mp57/zWshf82tYv/NrWK/zSmf/8wkG//LoFl/y16X/8teF3/LXZb/yx1 + Wf8sc1f/LHNX/y12Wf8telr/LXxb/y5/XP8whV//MYxj/zOTZ/80m2n/NaBs/zWjbP81oGv/NJhl/zOT + Yf8zmWP/NJtk/zScZP80nGP/NJ1i/zWeYf81nmD/NJxf/zSZXf8zl1z/M5Ra/zKSV/8zkFT/Mo1T/zKM + U/8xjFL/MotT/zKJUv8xiFL/MYZQ/zCET/8vgU7/Ln1L/y15Sv8sd0n/LHRH/yxwRf8ubkb/L3RJ/zFs + Sv81VkX/Tkk8/7qeT//412P/3MBe/3NlPP8jISL/Fxgf/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEODg + 4ACIh4oAe3p9AAAAAP8AAAD/AAAA/wAAAP8AAAD/Ghgd/yspLf9ta2z/k5CO/5iVk/+Sj43/kI2L/46L + if+MiYf/iYaE/4eEgv+FgoD/g4B+/4F+e/9/fHn/fXp4/3t4dv94dXT/dnNy/3Nwb/9xb23/b21r/25r + av9saWj/aWdm/2ZkY/9kYmH/YV9f/15cW/9TUlL/Ojc5/yUjJ/8jIib/KSot/zIyNP8/PD7/RkJF/zs4 + O/8lIyn/ICAk/z89N/95cFr/c3xk/0KHbf8khmz/LWxa/y0/PP8kJCf/Hh0h/x0lJ/8gNjL/I0U9/yVU + Rv8lVUf/JEQ7/yMyL/8iKSr/Iycp/yMmJ/8iJij/IiYo/yElJv8gJSb/ICUn/yAmJ/8fJyb/Hygn/yAr + Kf8hMS3/Izgx/yVANf8nSDr/J08+/yhMPP8kQDX/Hjkw/xs9Mf8bPzL/HEE0/x1ENP8dRjX/Hkc1/x5H + Nf8dRjT/HEMy/xxBMf8bPi//Gzwt/xs5LP8aNir/GjUq/xkzKf8ZMyn/GjIo/xovKP8eMSr/IjMs/yc2 + Lv8wPDP/Pkc7/05TRf9eYU7/bWxX/3dzXf+CfWT/mZJz/7aqhv/LuZL/69Si//3nrv/SvpL/W1NI/x8f + Iv8XFxz/AAAA/wAAAP8AAAD/AAAA/wAAAP/y8vIA7u7uAJubnQCgoKIAAAAAxQAAAP8AAAD/AAAA/wAA + AP8TExb/JSQo/2BeX/+TkI7/n5ya/5aTkf+UkY//ko+N/5CNi/+Oi4n/jImH/4qHhf+IhYP/hYKA/4OA + fv+Bfnz/f3x6/357eP97eHb/eHV0/3Zzcv90cXD/cm9u/3BtbP9ta2r/a2hn/2lnZv9nZWT/ZmNj/2Jg + X/9VU1P/SUZH/0U/Qv9IQUT/T0hK/1RPUP9XU1P/VlNS/1xWT/9oXlL/c2dX/3BnV/9GQjv/LDk2/y9D + QP9CS0n/S0ZH/0M9P/85Mjb/MCsv/ysoK/8oKCr/LC8x/zM3OP87Ojv/Pjk7/z85O/9AOTv/QDk8/z85 + Pf9AOj3/Pjk8/z04PP8+ODz/Pzo8/z44Ov85Mzf/My0x/ygkKP8hHyP/IB8i/yEhJP8eIST/GBsg/xkZ + H/8rKCn/SEM7/0dEPP9EQTv/QUA4/z8+N/9APzf/QkE5/0VDOv9HRTz/S0g9/09KQP9TTUH/Vk5D/1hR + Rf9ZU0b/XVVI/2FZSv9nX07/cGdV/3xxW/+Ie2L/loZq/6aTdP+0oX7/wa6H/8u3jv/Sv5P/18KW/9vG + mf/lz5//8tum//ngq//947D/++Ox/8Cui/9CPjv/Hh0h/xQTF/8AAAD/AAAA/wAAAP8AAAD/AAAAxZST + lQDy8vIAzs7PANXV1gAAAAB8AAAA/wAAAP8AAAD/AAAA/wwMDv8hHyT/TkxO/5COjP+koZ//m5iW/5mW + lP+XlJL/lZKQ/5OQjv+Rjoz/j4yK/42KiP+Kh4X/iIWD/4aDgf+EgX7/g4B8/4B9e/99enn/e3h3/3l2 + df92c3L/dHFw/3Jwbv9wbWz/bmtq/2tpaP9pZmb/Z2Vk/2VjYv9iYGD/YF5d/15dXP9eXFv/W1pZ/2Ff + Wv95cWX/e3Rl/3pzZf9ybWH/XVlT/zo2OP84LzT/Rz1B/1ZOUP9cWVj/WVhX/1NSUf9NSkv/R0NE/0M9 + QP9GP0L/TUZI/1RPT/9WU1P/V1VU/1hWVP9XVlT/WFZV/1hXVv9ZV1f/WFdW/1VTU/9QTk3/SEZG/z89 + P/82Mzb/JiQp/xsZH/8WExr/FBAZ/xMPGf8bFh7/RT03/4BzXP+pmXb/qpl2/6eUc/+kkXD/oo5v/6KO + b/+kkHD/p5Ry/6qXdf+tmnf/sZ15/7ShfP+4pH3/uqeA/7upgf++rIT/wrCG/8i1if/QvY//2MWU/+LM + mf/s057/9tyk//ziqP//56z//+mu///qrv//6a7//+qu///nrP/95ar//eKo//7lqv/x2KH/p5Z0/y4r + K/8dGyD/DQ0P/wAAAP8AAAD/AAAA/wAAAP8AAAB8bm1wAPHx8QDs7OwA1dXWAAAAADcAAAD/AAAA/wAA + AP8AAAD/AwME/x4cIf87Oj3/iIaF/6ekov+hnpz/npuZ/52amP+bmJb/mJWT/5aTkf+UkY//kY6M/5CN + i/+Oi4n/i4iH/4mGhP+HhIL/hYKA/4OAfv+Bfnv/f3x5/3x5d/96d3X/d3Rz/3Vycf9zcG//cW5t/25s + a/9samn/amhn/2lnZv9nZWP/Y2Fg/15cXP9aWFj/ZmJa/4yBbP98dWb/ZmJc/1hXVv9TUlL/U1JR/1lW + Vv9dWlr/XFpZ/1pZV/9bWlj/XVtZ/11bWv9dW1r/XVta/11bWv9eXFr/XVtZ/1xaWf9bWVj/XFpZ/1xa + Wf9dW1r/XVta/1xaWf9WVFP/SUhI/zw6PP8vLjH/JiYq/yEgJv8dHSL/HR0h/yEgI/8nJSf/Mi4u/1VO + Qv+hkW//59Ob//7rq///6qr//+ip///nqP//56n//+ep///nqP//6Kn//+mq///pqv//6an//+mq///q + qv//6qr//+qq///qq///6qr//+qq//7pqv/+6Kn//uap//7kp//94qX/++Gk//rfo//53qL/+N6i//jd + of/43qL/+N2h//fcof/43aL//uao/97Klf+Ie2D/Hx4i/xsbIf8EBAT/AAAA/wAAAP8AAAD/AAAA/wAA + ADeXl5gAAAAAAOzs7ABwb3EAAAAACgAAAP8AAAD/AAAA/wAAAP8AAAD/HRwf/ywrLv97eXj/pqKg/6il + o/+joJ7/oZ6c/5+cmv+cmZf/mpeV/5iVk/+VkpD/lJGP/5KPjf+QjYv/jYqI/4uIhv+JhoT/h4SC/4WC + f/+DgH3/gH17/357ef99enf/end2/3h1dP91cnH/c3Bv/3Fubf9vbGv/bWpp/2toZ/9oZWT/ZmNi/2Be + XP9hXVr/d3Bj/4d+bP+QhnL/h35s/2lkXP9bWVf/WVdX/1tZWP9bWVj/WlhX/1tZWP9bWVj/W1lY/1tZ + WP9bWVj/W1lY/1tZWP9bWVj/W1lY/1pYV/9bWVj/XFpZ/1xaWv9bWVj/Tk1N/zg3Of8iICX/GRge/xUU + G/8UFBv/GRkf/ywqKv9MRjz/bWNO/41/Yf+unHT/1r+K//HZm//74qH/+t6f//nenv/53Z//+t6f//rf + n//63p//+d6f//rdn//63p//+d6f//nen//43p7/+d2e//nenv/53p//+d6e//nenv/53p7/+d6e//nd + nv/53Z7/+d2e//ndnv/53Z3/+d2e//ndnv/43Z7/+N2e//jdn//43J7/+Nye//ndn//+5qT/x7WE/2de + TP8XGB7/Gxof/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAACry8vQAAAAAA7OzsAIeGiACPjpEAAAAA1gAA + AP8AAAD/AAAA/wAAAP8UFBb/Hx8i/2hmZv+gnJv/sK2r/6ilo/+loqD/o6Ce/6GenP+fnJr/nZqY/5qX + lf+ZlpT/l5SS/5WSkP+TkI7/kI2L/46Lif+LiIb/ioeF/4iFg/+FgoD/g4B+/4J/fP9/fHr/fnt4/3t4 + dv95dnT/dnNy/3RxcP9yb27/cG1s/25rav9nZGL/bGdh/3x0Z/+Hf3D/k4l1/56Sef+UiXP/b2hf/1tY + V/9YVlb/WlhX/1pYV/9aWFf/WlhX/1pYV/9aWFf/WlhX/1pYV/9aWFf/WlhX/1pYV/9cWlj/XVxa/1xa + Wf9WVFT/S0pL/z48Pv8rKy//Ghsh/xUVHP8nJSb/Qz42/2BXRf99cVX/p5Zt/8i0gf/bx4z/5dCT/+7X + l//53Zv/+96c//ndm//425r/+Nua//jbmv/425r/+Nua//jbmv/425r/+Nua//jbmv/425r/+Nua//fb + mv/425r/+Nua//jbmv/425r/+NuZ//jbmv/425r/+Nua//jbmv/32pn/+Nua//rdmv/53Jr/99qZ//jb + mv/425r/+Nua//famf/325r/+dyb//7hnv+tm3H/RkA4/xgYHv8UFBb/AAAA/wAAAP8AAAD/AAAA/wAA + ANbp6eoA3t7fAAAAAAAAAAAAtbS2AL+9wAAAAAB2AAAA/wAAAP8AAAD/AAAA/wkJCv8aGR3/UE5R/5OQ + kP+3tLL/raqo/6qnpf+opaP/paKg/6Ognv+in53/oJ2b/56bmf+cmZf/mZaU/5iVk/+VkpD/k5CO/5CN + i/+Oi4r/jImI/4qHhf+IhYP/h4SB/4SBfv+DgHz/gH17/357eP98eXb/eXZ1/3d0c/91cXH/c3Bv/2to + Z/94cmn/jYNx/4J7b/9+d23/fnds/3lzaP9mY17/XVta/1pYWP9bWVj/WlhX/1pYV/9aWFj/W1lY/1tZ + WP9bWVj/WlhX/1pYV/9bWVj/XFpZ/1hWVf9PTk3/RURE/zo4Ov8sKy//Ghsi/xkYH/8zLyz/ZlxI/5CA + X/+vnXH/xbJ+/9jCh//v1ZP//eCa///knf/+45z//eGb//vdmP/42pb/99mW//falv/32pb/99qW//fa + lv/32pb/99qW//falv/32pb/99qW//falv/32pb/+NqW//falv/32pb/99qW//falv/32pb/99qW//fa + lv/42pb/99qW//bZlv/32Zb/9tmW//jblv/425f/99qW//fZlv/42pb/9tmV//jal//73Jj/8NOS/41+ + Xf8rKCn/Gxog/wkJCv8AAAD/AAAA/wAAAP8AAAD/AAAAdv7+/wD19fYAAAAAAAAAAADc29wA6OfoAAAA + ACUAAAD/AAAA/wAAAP8AAAD/AAAA/xoZHf84Njr/gX5//7m2tP+0sa//sK2r/62qqP+qp6X/qKWj/6ek + ov+loqD/o6Ce/6GenP+em5n/nJmX/5qXlf+YlZP/lZKQ/5OQjv+Rjoz/j4yK/42KiP+LiIb/iYaD/4eE + gf+EgX//gn98/4F+ev9+e3n/fHl4/3p2df93dHT/c3Bv/3x3cf+IgHT/dG9q/2hlZP9iYGL/YWBg/2Fg + YP9iYF//YF1d/11bWv9bWVn/WlhX/1tZV/9aWFf/WlhX/1pYV/9aWFf/W1lY/1lXVv9SUE//Q0FD/zEw + M/8iIif/Ghog/xoZHv8hHyL/RD42/4V4WP/OuYD/8tWS//7hmv//5Zv//+Sa//3fl//62pT/99iT//fY + kv/32JP/99mT//fZk//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//jZ + k//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//fZk//42ZP/99mT//TWkv/awIT/58uL//ja + lP/42pT/99iT//fZk//22JL/+duU//vel//SuoH/amBK/xoZH/8dHCL/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAAl5eXlAP7+/gAAAAAAAAAAAPT09ADz8/QAvb2+AAAAAPcAAAD/AAAA/wAAAP8AAAD/EhET0SMi + Jv9pZmj/sK2t/7q3tf+2s7H/s7Cu/7Ctq/+uq6n/rKmn/6mmpP+npKL/paKg/6Shn/+hnpz/n5ya/52a + mP+al5X/mZaU/5eUkv+UkY//ko+N/5CNi/+Nioj/i4iG/4mGhP+HhIL/hYKA/4OAfv+Cf3z/f3x5/316 + eP97eHb/eHV0/3Zzcf90cXD/cW9t/29sa/9tamn/amhn/2hmZf9mY2P/Y2Bg/19dXf9eXFv/XFpY/1tZ + V/9aWFf/W1lY/1xaWf9aWFf/TUtM/zQzNf8hICX/GBge/xcXHf8gICP/PDcx/25iSv+wnG3/6M+L//rg + lf/73JP/+NmQ//fYkP/42ZD/+NmQ//jYkP/42JD/99iQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jY + kP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jY + kP/42JD/99eQ//jYkP/62pD/8dSM/6GOZP+6o3H/7dCL//rbkf/32ZD/99eP//fYj//625H/+d2S/6mX + av9JQjj/ExQc/xYVGP8AAAD/AAAA/wAAAP8AAAD/AAAA97CvsQCqqasA/v7+AAAAAAAAAAAA9/f3AJua + nACWlZcAAAAAhgAAAP8AAAD/AAAA/wAAAP8AAADCGRgc/k5NT/+amJn/wL69/7u5uP+3tLP/tLGx/7Kv + rv+xrqz/r6yq/6ypp/+ppqT/qKWj/6WioP+joJ7/oZ6c/5+cmv+dmpj/m5iW/5iVk/+Wk5H/lJGP/5GO + jP+QjYv/jouJ/4uIh/+JhoX/h4SC/4aDgP+DgH3/gX58/398ev99enj/end1/3h1dP92c3H/dHFw/3Fv + bf9ubGv/bWpp/2toZ/9oZmT/ZWNi/2NhYP9gXl3/Xlxb/11bWv9dW1r/WFZW/0ZERf8sKy//Fhcf/xcX + Hf8zMSv/XlVB/419WP/AqHD/38aC//HVi//62o3/+NmN//jXjP/414z/99eM//fXjP/314z/99eM//jX + jP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jX + jP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/31oz/+NeM//zbjv/y04n/eWxO/3xu + UP/ErXT/++CQ//fZjP/21ov/+NeM//vbjf/v0Yj/fG5R/y0qKv8WFx7/CAgJ/wAAAP8AAAD/AAAA/wAA + AP8AAACG39/gANPT1AD+/v4AAAAAAAAAAAD29vYAq6qsALa2twAAAAAlAAAA/wAAAP8AAAD/AAAA/wAA + AP8UExfENTQ3/3l4ef/Bv77/wb69/7u5uP+5t7b/t7W0/7azsv+0sLD/sq+t/6+sqv+uq6j/q6im/6il + o/+mo6H/o6Ce/6Kfnf+gnZv/npuZ/5yZl/+al5X/l5SS/5WSkP+TkI7/kY6M/4+Miv+Nioj/i4iF/4iF + g/+Gg4H/hIF//4J/fP+AfXr/fnt4/3t4dv95dnX/d3Rz/3RxcP9yb27/cG1s/25rav9raWj/aWdm/2Zk + Y/9mZGT/ZmRk/11bWv8/P0D/ISEp/xoaIf85NC3/cmVI/6aTYf/Js3T/4Md///bWh//93Yv/+9yK//nY + iP/21of/9taH//fXiP/314j/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fX + iP/314j/99eI//fXiP/314j/99aI//fWiP/31oj/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fX + iP/314j/99eI//bWh//314j//NqK//HQhf84MST/RD40/4h5VP/y1Yf/+NmJ//fWiP/62or/99iJ/8+0 + df9TSjv/Gxsh/xoZH/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAACWamZwA4+PkAAAAAAAAAAAAAAAAAAAA + AADg4OAA6urpAM7OzgAAAADiAAAA/wAAAP8AAAD/AAAA/wcHCbEhICX/VlVW/7Oxsf/Fw8L/w8C//767 + uv+8urn/uri3/7i1tP+2s7L/tLGw/7Kvrf+wrav/raqo/6uopv+opaP/p6Si/6WioP+joJ7/oZ6c/5+c + mv+cmZf/mpeV/5iVk/+VkpD/k5CO/5GOjP+QjYv/jYqI/4uIhv+JhoT/h4SB/4WCf/+DgH3/gH17/357 + ef98eXf/eXZ1/3d0c/91cnH/c3Bv/3Fubf9wbGv/bmtq/2dlZP9bWVr/SEZI/yEiKP8dHCD/SEA0/5WD + V//UunT/99iF///hi//+34n/+9qG//jWhP/21IP/9tWE//fVhP/31YT/9tWE//bVhP/21YT/9tWE//bV + hP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YP/9tWE//fWhP/41oT/+NeE//fW + hP/31oT/9tWD//bVhP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YT/9dSD//fWhP/72IX/2bx1/xQR + Df8iISP/T0c4/8mvcP/214T/+tiF//3bh//sz4H/moda/zQwK/8VFh3/EBAS/wAAAP8AAAD/AAAA/wAA + AP8AAADif36AAHp5fADf3+AAAAAAAAAAAAAAAAAAAAAAAPr6+gDx8fEA39/fAAAAAGEAAAD/AAAA/wAA + AP8AAAD/AAAA/xgXHP84Nzr/kpGR/8bEw//Mycj/w8C//8G+vf++vLv/vLq4/7q3t/+4tbX/trOz/7Sx + r/+yr63/sK2r/62qqP+rqKb/qaak/6ekov+loqD/o6Ce/6Cdm/+em5n/nJmX/5mWlP+XlJL/lZKQ/5SR + j/+Sj4z/j4yK/42KiP+LiIb/iYaE/4eEgv+EgX//g4B9/4F+e/9+e3n/fHl3/3p3df94dXT/dnNy/3Vy + cf9vbGv/VVRU/zU1Of8lJSn/JCMk/1hPOv+rlWD/89KA//zchP/62IL/99OA//bTf//303//99OA//fT + gP/304D/99OA//fTgP/204D/9tOA//fTgP/304D/99OA//fTgP/304D/99OA//fTgP/304D/9tOA//bT + gP/204D/99SA//fUgP/41YH/+NWA//nVgf/51oH/+NWA//nWgP/41YD/9tOA//bTgP/204D/9tOA//fT + gP/304D/99OA//fTgP/20n//+NWA//rWgf+ullz/LCcc/xkZH/8oJib/hHRO/+jKev/82oL//NmC/9e6 + dP9eUz7/IiEk/xgYH/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAGG/v8AAubm6AAAAAAAAAAAAAAAAAAAA + AAAAAAAA/Pz8AK6urwCwsLEAAAAACgAAAP8AAAD/AAAA/wAAAP8AAAD/EA8T/yYlKf9hYWP/vbu6/9LP + zv/Jx8b/xsPC/8TBwP/Cvr3/v728/727uv+8ubj/uba1/7e0s/+2srH/s7Cu/7GurP+vrKr/rKmn/6qn + pf+opaP/paKg/6Shn/+in53/n5ya/52amP+bmJb/mZaU/5eUkv+VkpD/k5CO/5GOjP+PjIr/jImH/4mG + hP+IhYP/hoOA/4OAff+Bfnv/gHx6/398e/9/fHr/d3Rz/1lXV/8wLzP/ExMc/x8eIv94aUf/yrBq//TV + ff/51n7/+NN9//bSe//303z/9tJ8//bTfP/203z/9tN8//bTfP/203z/9tN8//fTfP/303z/9tN8//bT + fP/203z/9tN8//fTfP/303z/99N8//bTfP/20nv/99N8//fTfP/6137//Nl///vZf//20nz/8M15/+7L + eP/xz3r/+dZ9//zYf//51n7/99N8//fTfP/20nv/9tN8//fTfP/303z/99N8//bSe//51X3/+dZ9/3po + P/88NSf/Gxsg/xcXH/9EPTH/wKVm//bYf//w03v/rJRd/zAtKf8bGiD/ExIV/gAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAACuzs7QHo6OkAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sA09PUANzc3QDX19gAAAAAkQAA + AP8AAAD/AAAA/wAAAP8BAQH/HRwg/zc3Ov+dnJv/09HQ/93c2v/U0tH/zszL/8nGxf/EwsH/wb++/8C9 + vP++u7r/vLm4/7q3tv+3tbP/trOy/7Sxr/+xrqz/r6yq/62qqP+qp6T/qKWj/6ajof+koZ//op+d/6Cd + m/+em5n/m5iW/5mWlP+XlJL/lZKQ/5OQjv+Rjoz/jouJ/4yJh/+Kh4T/iIWD/4eEgv+JhoP/gn99/2xq + aP9MSkz/LCwx/yIgJP82MSr/bV9B/8qvZ//31Xn/+9h7//fTef/20Xf/9tF4//fSeP/30nj/99J4//fS + eP/20nj/9dF3//bReP/20nj/99J5//fSeP/20nj/9tF3//XReP/20Xj/99J4//fSeP/30nj/9tF3//XR + eP/403n//dh7/+zJdP/Iq2f/oIxX/4h2Tf95akj/cWJC/3RkQP+MeEr/v6Ri/+zKdf//2Xz/99J4//XR + eP/20Xf/99J4//fSeP/30nj/9tF3//rWef/403j/QDYg/0M7Lv8bGyH/FBYe/yUjJP99bEj/4MZz/9W8 + bf9vYEL/HBwh/xoaIP8BAQH4AAAA/wAAAP8AAAD/AAAA/wAAAJHz8/QArKytAPPz9AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADw8PEAwsLEAPDw8QAAAAAbAAAA/wAAAP8AAAD/AAAA/wAAAP8TEhX/ISAk/15d + Xv+VlJT/tbS1/8HAv//My8r/0dDP/9LQz//Pzcz/yMbF/8PAv//Avbz/vry7/7u5uP+6uLf/uLa1/7az + sv+0sa//sq+t/7Guq/+yr6z/sa6r/6qnpf+npKL/pKGf/6Kfnf+fnJr/npuZ/5uYlv+ZlpT/l5SS/5WS + kP+UkY//lJGP/5OQjv+Rjoz/jYqI/3p3dv9cWlv/PDs//xwdJv8hICL/V002/56JU//IrGT/89B1//zX + d//10XT/9dB0//XQdP/20XT/9tF0//bRdP/20XT/9tF0//jTdf/61Xb//Nh3//7Yd///2Hf//th3//7Z + eP/+2Xj/+9d3//nTdf/20XT/9tB0//XQdP/10HP/+NJ1//nUdv/XuGn/mINR/2BUPP9BOzD/MCwo/yEf + IP8jISP/Ly0s/zw2MP9VSjT/loFO/9y7av/813f/+NJ1//XQc//10HT/9tF0//bQdP/10HP/+9V2//TQ + c/8LCgb/QDou/xkZIP8ZGR//HBwh/0E6L/+jkFf/mIdS/zs2Lf8aGiD/ExMW/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAG+/v8ACxsbMA7+/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzs7QCbmpwA7OztAKSj + pQAAAACoAAAA/wAAAP8AAAD/AAAA/wICAv8dHCD/JCMn/z08QP9dXGD/enp9/5mZmv+vr6//v769/8fG + xf/Lysn/y8jH/8fEw//DwcD/wL69/7+9vP+9u7r/u7i3/7m2tf+2tLP/tbKx/6+sqv+qqKX/raqp/6uo + p/+ppqT/p6Si/6Shn/+koZ//op+d/5+cmv+em5n/nZqY/5qXlf+XlJL/lZKQ/5OQjv+Bf33/UE9R/yQk + Kv8VFh3/Hx4f/1hNNv+zmln/+9d0//3Ydf/40nL/9c9x//XPcP/2z3H/9tBx//XQcf/10HD/9c9w//bQ + cf/40nH/+dNx//XQcP/pyWz/3Lpk/9KxYP/QsWD/2Llk/+PEav/wzW7/+NFx//nTcf/503L/99Fx//fT + cf/51XL/6cds/4p3Sv81MSr/DhAb/xARG/8QERj/Fxgg/z4/Rf9mZmv/Xl9m/y0vOf87Ni7/iXVG/+LB + af/403H/+NNy//bRcP/30XH/99Bx//bRcP/813P/6cdr/woJBf83Miv/FhYe/x0cIf8eHSH/ISAj/1NK + Nv9ORTP/ICAj/x0dIv8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAKjX19gAAAAAAObm5wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/e3wAAAAAA4+LjAAAAACAAAAD/AAAA/wAAAP8AAAD/AAAA/xIR + FP8cGx//GBcc/xcWHP8aGiH/Kiow/0VESP9iYmP/hoWF/7KxsP/Ny8r/0M7N/8rHxv/GxMP/xsLB/8PB + wP+/vr3/vbu6/727uv+tq6r/h4WF/3p4d/+npKP/sa6s/7Ctq/+tqqj/qqel/6qnpf+opaP/p6Si/6aj + of+mo6D/m5iV/4aDgf95dnX/fHp4/1VUVv8kJCz/ERIZ/zMuKP95aUH/yKpd//PObP/6027/99Bu//bP + bf/1z23/9c9t//bPbf/2z23/9c9t//XPbP/2z23/99Bt//bQbv/ow2j/xahc/5eBSv9rXTv/Ukgx/01D + L/9cUTL/gW9A/7GWU//buWL/885r//fVbv/61W//+9px/+3PbP+3nFf/Pjct/xgYH/8ZGR//Ghgc/xcW + Gv9PTlL/qamr+e7u7QDk5OQAoKGj8klLUvg2Mir/i3dE/+bGaP/613D/+tNu//nSbf/40m7/+dJt//3a + cf/HrFv/LygY/y4qKP8WFx//Hx4i/x4dIv8eHiL/HR0i/x4dIv8eHiL/EhEU/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAIJGRkwAAAAAA5OTlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6ejpAAAA + AACgoKIAlZSWAAAAAKIAAAD/AAAA/wAAAP8AAAD/AAAA/xwcH/8dHSD/Lyol/0E5Kf8lISL/FhUf/xUW + Iv8mJy7/T09S/5ybnP/Kycj/1NPS/83Lyf/Fw8H/xsTD/8nHxv/Jx8X/wb69/4B/gP9SUVP/W1lb/5WT + kv+0sbD/uba1/7azsv+zsK7/pqOh/52amP+XlZT/k5GP/4WEgv9iYWL/Pz1B/y4tMf8yMTX/IiIp/zQv + Kf9qWzf/r5RQ/929Yf/0zmj/+dBp//bOaP/2zWj/9c5o//XOaP/2zmj/9s5o//bOaP/1zWf/9s5o//jP + af/0y2j/tppU/3BfO/9COi3/Qz86/3h2d/+Ih4n/d3d6/1taXP9PTUr/Tkg+/15SOP+AbDv/p45H/8io + U//PsVr/qZNQ/1lPNv8gHiH/EREY/xIRFf8gHyP/X19i/7m4uv/u7u6p+/v8Ovn59zq+v8E6rK2wpXx8 + f/9MRj3/hXE+/8eoUf/sxmD/8cli//DJZP/txmT/9dFp/5J+Qf9HPSX/JyUl/xYXH/8gHyP/Hx4i/x4d + Iv8cHCL/HRwi/x4dIP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKLb29sAzc3OAAAAAADk5OUAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADl5OUAAAAAAL29vgDLy8wAAAAAGAAAAP8AAAD/AAAA/wAA + AP8AAAD/DAwN/xsbIv89Nyz/e2o9/4d1P/9hUjL/NC0j/xoZG/8YGSH/RkZM/3l4ef+sq6r/1NPR/7Gv + r/+PjY7/nJqa/8XCwf+3tLT/h4aH/4qKjP+fnqD/jo2O/7e0tP+/vLz/oJ2d/3Nxcf9wbm7/enh4/25t + bf9QT1D/QD9C/ycnL/8YGCH/DxAa/xARHP8yLSX/hnM//82wV//xymH//NRm//rQZP/1zWL/9Mxi//XM + Yv/1zGL/9cxi//XMY//1zGL/9cxi//TLYv/3zWP/+M5j/+e/Xv95aD7/JCAe/yMjLf9ub3b2o6Sqka2u + snaQkpt2q6yzdpyepXaTlJvViYiK/3x3b/95cFv/dmlJ/2dZOf9FPCn/Gxka/xUVGv8kJCj/SEhL/3p6 + e/KkpKWGzs7Odv///z36+vsA8PDvAMTFxwDe3uA7y8vPoJGRlv9uaF3/fW9L/5aBTv+Wf0n/h3I//3pl + N/+AbDr/Ni4a/zw1Jv8iISP/Ghoh/yAfI/8gHyP/Hx4j/x8eI/8fHiP/DAwN/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAGL+/wADo6OgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA8PDwAOHh4QDFxMUAAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/EhMZ/zAsJ/95aDz/z7FU/8ar + Uf+chkX/bl43/zw1Jv8ZGBv/ISEp/2JhZf+2tbT/lJOT/2RjZf9sa23/mZeX/4mIiP+enp//2NjZ/+fn + 6P+Xl5n/oqCh/5mWl/93dXb/W1pc/3JxdP9sa27/Q0JH/xQVHP8SEhn/Ih8e/0A4Kf9ORS7/SEAs/4Fu + PP/WtVX//9pi//vSX//1zF3/9Mpc//TLXP/1y1z/9Mtc//TLXP/0y1z/9Mtd//TLXP/1y1z/9cxd//rP + Xv/60F7/4btW/1xOLv8TEhj/RkZO/8XFxvLW1dUuzMvMAIuNlADp6ewA6urtAO3t8HHY2N6zwsPJs56g + qLaBgYjvYGFo/0hJUf9EREr/VlVY/25ucNOcnJ2zxMTEmMXFxQy9vb0AAAAAAPr6+wAAAAAAw8TGAOfn + 6QDx8fIv3t7hr3t9hrOKio7miIWE/397dv9kYV7/R0VG/zczNf8JCAj/IiIi/x8dIv8eHSL/IB8j/yAf + I/8gHyP/IB8j/xkYG/8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2Nr+4t7gEtbS2AAAAAADg4OAA4uLiAODg + 4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs7OwAsbCyALa1twAAAAAGAAAA/AAA + AP8AAAD/AAAA/wAAAP8CAgL/GBgg/zEsJv+jiUT/5shX//vXW//mvlT/qY5E/0tCK/8XFhn/KSgv/2Zm + aP9ubm//c3J1/3Rzdv9oZ2n/T05Q/6ampv/s7O3/7u7u/7Gxsv93dXb/VFJU/2dmaP+mpab/wMDC/3Z1 + ef8vLjP/HRwd/zcxJ/9uXjT/rJJE/8ytTf/Epkv/37pS//LKV//2zVj/9MtX//TLVv/1y1f/9MpX//XL + V//1y1f/9ctX//TKV//0y1b/9ctX//bMV//3zVj/+dBY//jPV//lvlH/ZFUs/zMxMv93d3346ejq1/n5 + +S719fUAAAAAAOTk5wDk5OcA5ubpA9LS1wT19fYE9PT1DPT09arg4OHkxMTF5Li4ueTMzM3k0tLTX9PT + 1AS+vr4EwsLCAL+/vwAAAAAAAAAAAAAAAAAAAAAA5uboAO7u7wHY2NsEe3yDBPX2+Ejx8vUA4uPoAMfI + zACpqq1yfX2CAAAAAP8eHiP/HBsg/x4dIf8gHyP/IB8j/yAfI/8gHyP/AgIC/wAAAP8AAAD/AAAA/wAA + AP8BAQH/qaqqAODg4ADv7+9w9vb2GuDg4Bbi4uIC4ODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOzs7ADs7OwA8vLyAOjo6AAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8LCw3/HB0h/0lA + LP+1mUT/981T//zSVP/vx1H/vp9E/35rNP9EOyn/Hx8m/yIiKP9vbnH/uLe4/7y8vf9xcXL/vb29//f3 + 9//5+fn/2dna/29vcf93d3n/srGy/8DAwP94eXz/MDA3/zgxIv+Cbjb/vJ5E/+C6Tf/yyVH/985T//bN + U//2zFP/9ctS//TKUv/zylH/9MpS//XLUv/1ylL/9cpS//XKUv/1ylL/9MpS//XLUv/70FL/+c5S/+vE + UP/gvUr/2bdG/8amSf94bVD/h4aJ/8bFyczX1tku2tnbB/r6+gAAAAAA5OTnAOTk5wDm5ukA0tLXAPv7 + +wD9/f4A////HO3t7ibR0dEmxMTFJtnZ2Sbd3d4O2dnaAL6+vgDCwsIAv7+/AAAAAAAAAAAAAAAAAAAA + AADm5ugA7u7vANjY2wB7fIMA////F/z+/ybt7vQm0tPYJsfHySatra+XGxob/yQjKP8bGh7/Hh0h/yAf + I/8gHyP/IB8j/w0NDv8AAAD/AAAA/wAAAP8AAAD/AAAA/x0cH/9AP0L/ZmVn/5SUlejExMUA4ODgt+Li + 4hbg4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADk5OUA4ODhAL6+ + wAAAAACtAAAA/wAAAP8AAAD/AAAA/wAAAP8TExf/HR0i/2ZWMf/DoUL//9NO//zQT//yyUz/27hH/5+E + Of84MCH/CQoT/1ZWXv+/vr//8vLy/8/Pz//o6Oj//Pz8//7+/v/29vb/y8vM/7a2t/+SkpT/UVFY/ygq + M/9KQCn/ln81/927SP/zyU3/+89O//vOTf/5zU7/+c5O//fMTf/1ykz/9MlM//TKTP/1yk3/9cpN//XK + Tf/1yk3/9cpN//TJTP/4zE3/9stN/964SP+ghjz/bl0r/21eNP+ZjWD/yb2b/766r47Ix8dd3dzfRdHP + 0wDPztEA9/f3AAAAAAAAAAAAAAAAAAAAAAAAAAAA9/f4APf3+AD4+PkA5OTlAMjIyQC8vL0A0NDRANbW + 1wDV1dYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+vwA9fb5AObn + 7ADLzNAAsbGxAHBwcZc+PT7/Hh0g/xoZHf8fHiL/IB8j/yAfI/8WFhn/AAAA/wAAAP8AAAD/AAAA/wAA + AP8LCgz/Hh0h/xwbH/8mJSn/ODc7/1RTV/94d3n2lJSVALa3uKHPz9AA6OjpAOfn6AgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+vr6ANDP0QDR0NIAvr2/AAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8UFh3/KSYl/3hkMv/XsUH/+s5H//3RSP//1En/5r1E/5N8NP8+NR//Pj0//4+Plf/x8fD///////// + ///+/v7////////////y8vL/pKSm/0FCSv8MDBT/Misd/5d/Nf/mwEX//9VJ//rNSP/1ykf/9MhG//TI + R//0yEf/9MlH//XJR//1yUf/9clH//XJR//1yUf/9clH//TJRv/1yUf/9clG//jMR//atEP/i3Y1/zs0 + Iv8mJCf/WFdc/6qrrfTg4eSi7+/vJuHg3gDW1dgA09LVANPS1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7u7vAO7u7wCCgoQAMzMzs0dHSf8YFxv/Gxoe/yAf + I/8gHyP/HRwf/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x4dIP8eHSH/Gxoe/xUUGP8ODRH/Dw4T/x8e + Iv8/PkL/Xl5h/0pKS/85OTq0wsLDDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09LUANPS + 1AClpaYArq2vAAAAAEkAAAD/AAAA/wAAAP8AAAD/AAAA/wQEBP8TFSH/My4l/4ZwMf/lvT//98xB//nM + Qf/6zUL/7MRA/6KHM/9HPib/TU5V/7Cxs//q6ur//Pz8///////+/v7/8vLy/7Cxsv9MTFH/GxgY/0U8 + JP+RejL/37k///3RQ//1yED/88dB//PHQf/0yEH/9MhB//TIQf/0yEH/9MhB//TIQf/0yEH/9MhB//TI + Qf/0yEH/88dA//TIQf/6zEH/68E//6KHNf8uKiP/ERIe/1NTXf+1trnv9vf5sfX2+RL19vkA4N/fALy8 + vgCfnqEAm5udAMHBwgDe3t4A3NzcANzc3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADw8PEA8PDxAX19gB4WFhfeQEBD/xgXG/8cGx//IB8j/yAfI/8EBAT/AAAA/wAAAP8AAAD/AAAA/wAA + AP8WFRj/HBsf/xwbH/8cGx//Hh0h/yIhJf8nJyr/JiUo/w8PEP8PDw//VFRV86OipFKPjpAKAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO/v7wD19fUAy8vMAAAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/wkJCv8ZGCH/Ni8l/5Z9Mf/lvjr/+848//XIO//2yjz/8MU7/4xzK/81LyT/OjxG/6Oj + pv/o6Oj//Pz8//Ly8//ExMX/S01V/yooJP9pWCX/y6g2/+rAOv/0yDz/9cg7//PGOv/0xzv/9Mc7//TH + O//0xzv/9Mc7//THO//0xzv/9Mc7//THO//0xzv/9Mc7//THO//zxjr/9Mc7//7PPP/MqDb/a1oo/xcW + H/9CQkj/sbGy+vP09KL4+PgT9fb4AvX2+ATi4uQGvLy+Bp+eoQabm50GwcHCBt7e3gTc3NwA3NzcAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzs7QDs7O0F5eXmAAgICP8uLjH/Ghkd/x0c + IP8gHyP/CgoL/wAAAP8AAAD/AAAA/wAAAP8AAAD/DQ0P/xoZHv8ZGB3/HRwh/yoqLf8/PkL/NDQ1/QAA + AP8AAACaAAAAJuHh4gDu7u8A8fHyAJCPkQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOzs7ADo6OkAAAAAAwAAANYAAAD/AAAA/wAAAP8AAAD/AAAA/wwMEP8dHCL/PDUl/52C + Lv/kuzT//c82//XIN//8zTf/1K0y/3plJf8kISH/OTpD/5ydof/My8r/qaiq/1NUW/8kJCf/aFYk/8ij + Mf/3yjb/+Mo3//XHNv/zxTb/88U2//TGNv/0xjb/88Y2//PGNv/zxjb/88Y2//PGNv/zxjb/88Y2//PG + Nv/zxjb/88Y2//LFNf/zxjb//9A3/7ybMf9SRSL/Fxci/3Z1ev+xsbCIurq6I/n5+QD7+/sA/v7+gOno + 6rfCwsS3pKOmt6CgorfHx8i34+Piet3d3ADc3NwAxMTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA0NDRANDQ0QbPz9AACAgI/x4dIf8dHCD/Hh0h/w8OEP8AAAD/AAAA/wAAAP8AAAD/AAAA/wQE + Bf8bGh7/MC8z/wAAAP8AAAD/AAAAtxUVFf9nZ2i8w8PDT8fHyEfn5+dH////R////yQAAAAAkI+RAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+fkA4eHhANnZ2QDR0NEAAAAAGAAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/w8PE/8YGSH/SD4l/52CK//luzD/+8wx//nJMv/2xzL/y6Ut/3Je + Iv8lIRz/R0hP/19gZ/9GSFH/Hh0k/1lLIf+5lyz/98gy//nKMv/0xjH/88Ux//PEMv/0xTL/9MUy//TF + Mv/0xTL/9MUy//TFMv/0xTL/9MUy//TFMv/0xTL/9MUy//TFMv/0xTL/88Qx//TFMv/+zjL/w58u/1pL + Iv8TFSL/YWJn/5WVmKafoKdzyMrTebe5wnykpq/eiIqT/2lrc/9VVl//UFFc/2lrdf+foKba09PUa9LS + 0wi/v8EA8fHzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPr6+gCgoKEAoaGiAIiIiQAfHx//FRQY/x4d + If8RERP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABuBwcH/QAAAKiXl5ic/Pz8hf// + /y7+/v4AvLy9ANvb2wD09PQA/f3+APz8/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADj4+MAwsLCAMPDwwDBwcEAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xAQ + FP8UFiL/SD4j/56CKf/mvCv/9sct//zLLf/5yS3/1Kwr/29cI/8oIx7/Dg8a/x4cGv9QQyD/tpQp/+/C + Lf/7yi3/88Mt//PDLP/0xC3/9MQt//TELf/0xC3/9MQt//TELf/0xC3/9MQt//TELf/0xC3/9MQt//TE + Lf/0xC3/9MQt//TELf/zwyz/9MQt//zLLf/asCv/g2wl/yEfIf8pKjT/YWFo/4qIiP+JhX//c29i/1tU + RP9HPyr/OjEb/zMrFf8sJBP/JiEY/1NQTv+np6ntzc3PWNPT1BX4+PkAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/Pz8AKSkpAqhoaI8U1NTACgoKf8UExf/EhEU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAACoBwcH/QAAAG7b29tk+vr6AM/P0ADx8fEA+vr6APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQAxMTEAKuq + qwCtrK0AAAAAVwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xAQFP8XGCL/PTUk/5d8Jv/luif/+Mgm//rI + Jv/4xyb/2K4l/2hXIf85MiD/aFgj/8miJv/zwif/+Mcm//PDJv/zwyb/88Mn//PDJ//zwyf/88Mn//PD + J//zwyf/88Mn//PDJ//zwyf/88Mn//PDJ//zwyf/88Mn//PDJ//zwyf/88Mn//PCJ//zwyf/9sUn//XE + J//Dnib/X1Aj/yYiH/8tKB3/V0gd/4NqHf+Zexv/qoke/7eUIv++mST/vJkk/7OSJf+PdRz/YlMi/1xb + Wf3R0dP08fH0VOnp6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD39/cA9/f3KOzs7AA2Njf+IyMm/w4N + EP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7+KSkp4BsbG0TCwsML7OztC/v7+wX4+PgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExADExMQAqKeoAJ6dnwCamZsAAAAAcQAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/w8OE/8cHCP/NjAi/4duIv/XrCH//ssf//vIIP/2xCD/yaEg/7qXIP/SqSD/9MMg//bF + IP/zwh//8sEg//PCIP/zwiD/88Mg//PCIP/zwiD/88Ig//PCIP/zwiD/88Mg//PCIP/zwiD/88Ig//PD + IP/zwiD/88Ig//PCIP/zwyD/88Ig//LCIP/ywR//9cQg/+2+If/QpiD/qIgg/7GOHf/OpRv/5Lcb/+q7 + HP/vvx7/8sEg//PCIf/zwiH/8cQg/+q/H/+nhhr/Qz0s/4mKjv+cn6hWlZifAPr6+wD6+vsA/f7/AOvr + 7QDNzM0Avr6+AOnp6QD4+PcA9PT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5+joAOfo + 6ADn6OgA5+joANna2gDj5OMq1dbWABEREv8NDA//AAAA/wAAAP8AAAD/AAAA/wAAAPYAAAD/Dw8Ppaem + p0P49/gc8O/wAMLCwwDs7O0A+/v7APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACqqaoAl5aYAI2MjgCHhogAAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wwMEP8ZGSL/NC4i/3hi + IP/DnBz/9cMb///KGv/1wxv/8sAc//XEG//3xBv/88Eb//LAG//zwBv/8sEb//LBG//ywRv/8sEb//LB + G//ywRv/8sEb//LBG//ywRv/8sEb//LBG//ywRv/8sEb//LBG//ywRv/8sEb//LBG//zwRv/8sEb//LA + G//zwRv/9cMb//bEHP/tvRz/8sAc//jGHP/7yRz/+sgc//rGHP/5xhz/+cYc//nGHP/5xxv//84c/9Kn + GP9kUxv/PT1E/mxwf7epqrGS////Of///wH///8n9fX3WNjX13THx8eH7e3tkvv7+jv39/cAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA8fDxAPn4+ADo6ekA7e7uBuzt7Xrs7e05wcHCAKenqSKen6AADw4P/wAA + AP8AAAD/AAAA/wAAAPcAAADYAAAAW0NDQ3L///8G+fn5AO/u7wDr6usAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZmJoAraytALGwsQCvrq8AAAAAhgAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJC/8UFSL/KSUh/2ZUHv+1kRr/57cX//vHFf/8yBb/9cIW//G/ + Fv/xvxf/88AX//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PA + Fv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AX//K/Fv/yvxb/9cIW//rGFv/4xBb/9MIW//G/ + Fv/xvxb/8b4W//K/Fv/ywBb/8sAW//G/Fv/6xRb/6bkW/6mHFv9COBr/UVBS/5OTmv/DxMrkzs/TYMvM + 0KqwsbibkJCWYoqKjCnPz8+A5ubmauDg4AAAAAAAAAAAAAAAAAAAAAAAycrLAMnKywDz8vMA////KuHi + 4lTGx8dmysvMAMnJymLR0dIdmZmadCQkJAAAAAD/AAAA/wAAANIAAACXAAAAYQAAAAAAAAAA9vb2APj4 + +AD39/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD7+/oA/f39APn5+ACsq60AAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wQE + BP8VFh7/HRwi/0c9H/+ggBj/3bAT//XCEf/1wRH/88AR//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/ + Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/ + Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//PA + Ev/2wxH/6bkS/6KBE/9XRxX/RD4s/2NfUv5/eWn8c2xc/klFPv8eHSD/IB8l/5mZmv/BwcJnt7e4AAAA + AAAAAAAA5ubmAO3t7QDIycoAy8zNAOzs7Rjr6uqLuLi6fm9vcX6PjpD+kI+SVLW1tW0YGBj/AAAA/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A/v79AJmY + mgCUlJYAAQEBcwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8TEhn/HBwh/zArH/9zXxn/wJgR//K+ + C//7xQv/9MEL//G/DP/xvgz/8b8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/ + DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/ + DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvgz/8b4M//K/DP/zwAv/7rwM/9SoDP+5kg3/rIkP/7KN + EP+1kA7/knUR/09BFP8kIyb/lpWY/728v2ezsrUAAAAAAAAAAADm5uYA7e3tAMnKywHIycoKz9DRQ5WV + lwtCQkWcKSgs/46Nj/9GRUaKAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAC/vsAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/f38AAAAAAD7+/oAk5OVAKOjpQCcnJ4AAAAAVwAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8LCw7/GRki/ykmIP9VRhv/knUT/9KmC//3wgX//ccE//fCBf/xvgb/8L0G//G9 + B//xvgf/8r4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+ + B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//K+ + B//xvQf/8b4H//K+B//3wgb/9cAG/++6BP/otQL/6LQA/+q4Af/hsgP/poIK/0pCJ/+io6T/w8XNZ7q8 + wgD19vUA8fLxAOjo6ADz8/M409PTLpmZmxtlZWeqODg7/xgXG/8mJSn/QEBB/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAAAAAAAAAAAAA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACVlZcApKSlALa2twCxsbIAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/EBIa/xsb + Iv85Mh7/clwW/66KDP/aqwX/9L8C//vEAf/4wQH/874C//G9Av/xvAL/8b0C//G9Av/yvQL/8r0C//K9 + Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9 + Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8bwC//G9Av/0vgL/+MEB//nD + Av/6wwL/+sUC//7IAP/GmwT/V0sl/6eoqP/DxtFixcjOAPz9/Aj9/v1D2traEbu7vDCKiovMSkpN/yAg + I/8UExf/ERAU/wICAv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAANwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKUAwsLDAMLCwwDNzc0AAAAAGAAA + ANYAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CgoN/xUVIf8aGiP/Qjgc/4FnEv+/lQn/5LID//K8 + Af/2vwD/9b8A//S+AP/zvQD/8rwA//G8AP/xvAD/8bwA//K8AP/yvQD/8rwA//K8AP/yvAD/8rwA//K8 + AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8 + AP/yvAD/8rwA//K8AP/yvQD/8rwA//G8AP/xvAD/8LsA//G8AP/2vwD/8LsA/6yHBf9AOCP/k5OW/8HD + yoTT1NYd5OTkA9LS0lyenp/fWVhb/yIiJf8SERb/GBcb/wwLDf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA1qamplD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADCwsMAwsLDAN/f3wDj4+MAAAAAAwAAAJEAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/xERFf8YGSP/IB4i/0A2Hf96YRT/upIK/+SyAv/3wQD/+cIA//W/AP/zvQD/8bwA//K9 + AP/yvQD/8r0A//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//K9 + AP/xvAD/8r0A//rDAP/ksgP/jnAL/yEfH/9jY2j/vb7AedLS03aWlpjeVVRX/CkoLP8aGB3/Gxoe/xIR + FP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAJEAAAADs7K0AP7+/gAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMLCwwDCwsMA4+PjAPX1 + 9QDw8PAAyMjJAAAAAEkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wICAv8SEhj/HRwj/ygl + IP9DOBz/bVkV/59+Df/NoQb/7bkA//vEAP/9xgD/+cMA//S/AP/xvAD/8LsA//G8AP/xvAD/8bwA//G8 + AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//G8AP/xvAD/8bwA//G8AP/wuwD/8bwA//S9AP/4wQD//8kA//K/Af+ohAr/MCod/zEx + N/9WVlv/WFha/zMyNf8gHyP/Ghkd/xISFP8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAABJwcHCAMfGxwCnpqgA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADi4uIA9/f3AP///wD29vcAubm5AAAAABAAAACtAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgP/Dw8X/xcYI/8lIyH/QTcc/2VTF/+NcBD/sYwL/8+j + Bv/ntAL/9L4A//vDAP/7xAD/+8QA//jCAP/2vwD/874A//K9AP/xvAD/8bwA//C8AP/wuwD/8LwA//C8 + AP/wvAD/8bwA//C8AP/wvAD/8LwA//C8AP/wuwD/8LwA//G8AP/xvAD/874A//W/AP/3wQD/+sMA//zE + AP/7xAD/+MAA/+y4Af/YqwT/upMJ/39mEv8wKx7/HR0i/x8eJP8dHCD/FRQY/xEQE/8CAgL/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAAEObm5gDR0dEAz8/PAK2srgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD39/cA/v7+AOzs7QDIyMkA3NzdAL29vgAAAABJAAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wwNEv8SFCH/Fxkj/ysmIP9KPxv/cl0U/5h5Dv+3kAn/z6IG/9+vBP/ptwL/8LsB//S+ + AP/2vwD/98AA//bAAP/3wAD/9sAA//bAAP/1wAD/9r8A//bAAP/3wAD/9sAA//XAAP/2wAD/9sAA//bA + AP/3wAD/+MEA//fBAP/2wAD/9b4A//K8Af/ruAL/47ED/9WmBf/Blwj/pIIM/4BmEv9aSRj/OTId/yQi + If8cHCH/GBcb/w4OEP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8BwcHTc3N + zQD8/PwA8/PzAM7OzgDOzs4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMfHyAD19fUA+vr6AOPj + 4wAXFxcHAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ICAn/EhMY/xUX + JP8YGST/JCIh/zszHP9aShj/fWQT/519Df+6kgn/z6IG/96tA//otQL/7rsB//K+Af/0vwH/9cAB//bA + Af/3wAD/98AA//e/AP/3wAD/98AA//bAAf/1wAH/9MAB//O+Af/xvAH/67gC/+KwAv/VpgX/wpgI/6aE + C/+HaxH/ZlIW/0Y6G/8sJyD/HBsj/xYXJP8YGSP/FRUY/wgICf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAgAAAAAbLy8wAxcXGAPj4+ADy8vIAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAx8fIAPj4+AD///8A5OTlANfX2ADMzM0AAAAAGAAAAKIAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJC/8TFBn/Gxsh/x4dIv8jISH/LCgf/zkx + Hv9KPRz/XUsY/29ZFP+BZxL/kXQQ/6B/Df+qhwz/s40K/7qRCP++lQj/wJUI/7+WCP+8kgj/tI4J/62I + DP+jgQ3/lngO/4hsEv91XxT/YlAX/09DG/8+Nh3/MCsf/yUjIf8fHiL/HBsi/xoaIf8TFBn/CQkL/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAAABjm5uYA8PDwAPHx + 8QDExMUA+Pj4APLy8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9/f3AP7+ + /gDh4eIA5ubnAPDw8QDPz9AAsbKyAAAAACAAAACoAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AwME/woLEP8RERr/Fxch/xwbI/8hICL/JyQh/y4pH/82MB7/PDQd/0I5 + HP9HPBv/TEAb/09BGv9RQhv/UEIa/01AG/9JPhv/RDoc/z82Hf84MR7/MSsf/yomIf8jISH/HRwi/xkZ + I/8VFiL/EBEa/wsLEP8DAwT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/KSkp/gAAACDU1dUA7u7uAP///wD8/PwA/Pz8AMXFxgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLi4wDi4uMA5ubnANzc2wDk5OQA3d3dALGx + swAAAAAbAAAAkQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wUFB/8JCg//DA0V/w4QG/8PER//EBMh/xETJP8SFST/ExUl/xMVJf8TFSX/EhUl/xMV + JP8RFCT/EBMi/xARH/8OEBv/DQ4V/woKDv8FBQf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAkSMjIyPX1tYp9vf2C/r7+wDz9PQA/Pz8APn5 + +QD5+fkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39/gAOPj5ADPz9AAAAAACgAAAGEAAADiAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADiAAAAYQAA + AArn5+gA/Pv8APn4+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADa2toA3t7eANTU + 1ADh4eIA6OjpAO/v7wDq6eoA4ODgAL69vwAAAAAlAAAAhgAAAPcAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPcAAACGAAAAJcnJygDMzM0A09PUAO3t7gD///8A+/r7AO3u7gD19vYA8vPzAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/f4ADj4+QA9fX1APv7+wD8/PwA2trbANfX + 2ADJyMkAuLi5AAAAACUBAQF4AAAA1gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAAAHYAAAAlycnJANvb2wDr6+sA5OTkAN3d + 3gDZ2doA5+foAPz7/AD5+PkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADz8/MA9fX1APLy8gDQ0NEA8vLyAPf39wD29vUA09LUAM3NzgC2trcAAAAACgAA + ADcAAAB8AAAAxQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAMUAAAB8AAAANwAA + AAq+vr8AxcXFAO3t7QD///8A////AP39/QDa2tsA19fYANfX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADt7e0A7+/vAOvr6wDJyMoA/Pz8AP7+/gD8+/wA6+rrAM/P0ACvr7AAkZCRAAAAABAAAAAwAAAAVwAA + AIAAAACoAAAAywAAAOcAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAOcAAADLAAAAqAAA + AIAAAABXAAAAMAAAABCioaMAxMPEAOHh4QDx8fEA8PDwAO/v7wC7u7wA4uLiAPj4+AD7+/sA+vr6AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6+voA+/v7APj3 + +ADn5ucAy8vMAKysrQCOjY8AcnJ0AOTk5ADi4uIA3t7eANTU1QDOzc8AxMTGALu7vAC4uLkAAAAAAQAA + AAMAAAADAAAAAbq5ugDDw8QAy8rMANLS0wDc3N0A5eTlAOjo6QDr6+sAhoWHAJ+eoADAv8AA3d3dAO3t + 7QDt7e0A7e3tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////////gAAAA///////////////4AAAAAAf/////////////gAAAAAA + Af////////////gAAAAAAAAf///////////AAAAAAAAAA///////////+AAAAAAAAB///////////wAA + AAAAAAAA//////////gAAAAAAAAAAF/////////gAAAAAAAAAAAP////////4AAAAAAAAAAAD/////// + /4AAAAAAAAAAAAH///////8AAAAAAAAAAAAA///////4AAAAAAAAAAAAAH//////+AAAAAAAAAAAAAB/ + //////AAAAAAAAAAAAAAH//////gAAAAAAAAAAAAABf/////gAAAAAAAAAAAAAAP/////wAAAAAAAAAA + AAAAAv////8AAAAAAAAAAAAAAAL////+AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAP////AAAAAA + AAAAAAAAAAA////wAAAAAAAAAAAAAAAAP///8AAAAAAAAAAAAAAAAC///+AAAAAAAAAAAAAAAAAH///A + AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//wAAAAAAAAAAAAAAAAAD//8AAAAAAAAAAAAAAAAA + AP/+AAAAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAA + AAAAAAA/9AAAAAAAAAAAAAAAAAAAP/QAAAAAAAAAAAAAAAAAAD/0AAAAAAAAAAAAAAAAAAA/4AAAAAAA + AAAAAAAAAAAAL+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAAAAAAAAAAAB8AA + AAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAHwAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAA + AAOAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAA + AAfAAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAC/0AAAAAAAAAAAA + AAAAAAAv9AAAAAAAAAAAAAAcAAAAL/QAAAAAAAAAAAAAPgAAAD/8AAAAAAAAAAHwAP8AAABP/AAAAAAA + AAAB/wP/wAAAf/wAAAAAAAAAA/////4AAB//AAAAAAAAAAf////+AAAB/gAAAAAAAAAf/////gAAAf8A + AAAAAAAAP/////4AAAH/wAAAAAAAAH/////8AAAB/+AAAAAAAADgP////AAAP//AAAAAAAAAAB////wA + AP//4AAAAAAAAAAP///8AAf///AAAAAAAAAAB///+AA////wAAAAAAAAAAf///gA/////AAAAAAAAAAA + B/+4A/////4AAAAAAAAAAAP+EB//////AAAAAAAAAAAD/AP//////4AAAAAAAAAAA/AB//////9AAAAA + AAAAAAPAAf//////4AAAAAAAAAADAAB///////AAAAAAAAAAAAAA///////4AAAAAAAAAAAAAP////// + +AAAAAAAAAAAAAB///////4AAAAAAAAAAAAA////////AAAAAAAAAAAAAf///////+AAAAAAAAAAAAf/ + ///////gAAAAAAAAAAAH////////8AAAAAAAAAAAH/////////wAAAAAAAAAAD//////////8AAAAAAA + AA///////////4AAAAAAAAAB///////////wAAAAAAAAD////////////AAAAAAAAH/////////////A + AAAAAAP//////////////AAAAAB///////8= + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/DataSitesLayerTools.cs b/Source/Core/HydroDesktop.Common/DataSitesLayerTools.cs new file mode 100644 index 00000000..b8ed0f61 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/DataSitesLayerTools.cs @@ -0,0 +1,40 @@ +using System; +using System.Diagnostics.Contracts; +using System.Linq; +using DotSpatial.Controls; + +namespace Hydrodesktop.Common +{ + /// + /// Tools for 'Data Sites Layer' + /// + public static class DataSitesLayerTools + { + /// + /// Get Data Sites Layer for given map + /// + /// Map + /// Create data sites layer, if it not exists. + /// Data Sites Layer. + public static IMapGroup GetDataSitesLayer(this IMap map, bool createIfNotExists = false) + { + if (map == null) throw new ArgumentNullException("map"); + Contract.EndContractBlock(); + + var layerName = LayerConstants.SearchGroupName; + var layer = FindGroupLayerByName(map, layerName); + if (layer == null && createIfNotExists) + { + layer = new MapGroup(map, layerName); + } + return layer; + } + + private static IMapGroup FindGroupLayerByName(IMap map, string layerName) + { + return map.Layers + .OfType() + .FirstOrDefault(group => group.LegendText.ToLower() == layerName.ToLower()); + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/Hydrodesktop.Common.csproj b/Source/Core/HydroDesktop.Common/Hydrodesktop.Common.csproj new file mode 100644 index 00000000..f5c79b04 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Hydrodesktop.Common.csproj @@ -0,0 +1,223 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {882C41F5-6A96-419F-9153-8D277ED91464} + Library + Properties + HydroDesktop.Common + HydroDesktop.Common + v4.0 + 512 + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\HydroDesktop.Common.XML + + + pdbonly + true + ..\..\..\Binaries\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\ + DEBUG;TRACE + ..\..\..\Binaries\HydroDesktop.Common.XML + full + x86 + ..\..\..\Binaries\HydroDesktop.Common.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + ..\..\..\Binaries\HydroDesktop.Common.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + + + + False + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + False + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + False + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + False + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + False + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + False + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + False + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + False + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + ..\..\packages\CommonServiceLocator.1.0\lib\NET35\Microsoft.Practices.ServiceLocation.dll + + + False + ..\..\packages\Unity.2.1.505.2\lib\NET35\Microsoft.Practices.Unity.dll + + + False + ..\..\packages\Unity.2.1.505.2\lib\NET35\Microsoft.Practices.Unity.Configuration.dll + + + + + + + + + + + + + + UserControl + + + DelimiterSelector.cs + + + Form + + + SelectFeatureLayer.cs + + + + + + + + + + Properties\AssemblyInfoShared.cs + + + + + + + + True + True + Resources.resx + + + + + + + + + + + + + DelimiterSelector.cs + + + SelectFeatureLayer.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/IProgressHandler.cs b/Source/Core/HydroDesktop.Common/IProgressHandler.cs new file mode 100644 index 00000000..14ee6746 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/IProgressHandler.cs @@ -0,0 +1,33 @@ +using System.Threading; + +namespace HydroDesktop.Common +{ + /// + /// Interface for progressing when long operations are executed + /// + public interface IProgressHandler + { + /// + /// Report progress + /// + /// Percentage of progress + /// State of progress + void ReportProgress(int percentage, object state); + + /// + /// Check for cancel + /// + void CheckForCancel(); + + /// + /// Report any custom message + /// + /// Message to report + void ReportMessage(string message); + + /// + /// CancellationToken + /// + CancellationToken CancellationToken { get; } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/LayerConstants.cs b/Source/Core/HydroDesktop.Common/LayerConstants.cs new file mode 100644 index 00000000..ef2827b9 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/LayerConstants.cs @@ -0,0 +1,18 @@ +using HydroDesktop.Common.Properties; + +namespace Hydrodesktop.Common +{ + /// + /// Contains some constants related to layers + /// + public static class LayerConstants + { + /// + /// Name of search results layer group (Data Sites layer) + /// + public static string SearchGroupName + { + get { return Resources.SearchGroupName; } + } + } +} diff --git a/Source/Core/HydroDesktop.Common/Logging/IExtraLog.cs b/Source/Core/HydroDesktop.Common/Logging/IExtraLog.cs new file mode 100644 index 00000000..585783ac --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Logging/IExtraLog.cs @@ -0,0 +1,10 @@ +namespace HydroDesktop.Common.Logging +{ + interface IExtraLog : ILog + { + /// + /// Number of frames to skip when constructing stack-frame of calling method. + /// + int SkipFrames { get; set; } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/Logging/ILog.cs b/Source/Core/HydroDesktop.Common/Logging/ILog.cs new file mode 100644 index 00000000..c2cba27a --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Logging/ILog.cs @@ -0,0 +1,35 @@ +using System; + +namespace HydroDesktop.Common.Logging +{ + /// + /// Logger + /// + public interface ILog + { + /// + /// Log info message. + /// + /// Message to log. + void Info(string message); + + /// + /// Log warning message. + /// + /// Message to log. + /// Exception (optional). + void Warn(string message, Exception exception = null); + + /// + /// Log error message. + /// + /// Message to log. + /// Exception (optional). + void Error(string message, Exception exception = null); + + /// + /// Log Destination. + /// + string Destination { get; } + } +} diff --git a/Source/Core/HydroDesktop.Common/Logging/ILogInitializer.cs b/Source/Core/HydroDesktop.Common/Logging/ILogInitializer.cs new file mode 100644 index 00000000..ca098bd7 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Logging/ILogInitializer.cs @@ -0,0 +1,9 @@ +using System; + +namespace HydroDesktop.Common.Logging +{ + interface ILogInitializer : IDisposable + { + string Destination { get; } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/Logging/TraceLogInitializer.cs b/Source/Core/HydroDesktop.Common/Logging/TraceLogInitializer.cs new file mode 100644 index 00000000..8d432b8b --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Logging/TraceLogInitializer.cs @@ -0,0 +1,98 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Windows.Forms; + +namespace HydroDesktop.Common.Logging +{ + class TraceLogInitializer : ILogInitializer + { + private const string LOG_FILE_NAME = "trace{0}.log"; + + public TraceLogInitializer() + { + Destination = CreateTraceFile(); + } + + #region Implementation of ILogInitializer + + public string Destination { get; private set; } + + #endregion + + private static string CreateTraceFile() + { + //first try to create it in application startup path + var programFilesPath = Application.StartupPath; + var documentsPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), + "HydroDesktop"); + var tempPath = Path.Combine(Path.GetTempPath(), "HydroDesktop"); + + var stream = TryToCreateLogFile(programFilesPath); + + if (stream == null) + stream = TryToCreateLogFile(documentsPath); + + if (stream == null) + stream = TryToCreateLogFile(tempPath); + + //create the trace listener + if (stream != null) + { + var myTextListener = new TextWriterTraceListener(stream); + Trace.Listeners.Add(myTextListener); + return stream.Name; + } + return null; + } + + private static FileStream TryToCreateLogFile(string logFileDirectory) + { + if (!Directory.Exists(logFileDirectory)) + { + try + { + Directory.CreateDirectory(logFileDirectory); + } + catch (Exception ex) + { + Trace.TraceError("Unable to create directory {0}: {1}", logFileDirectory, ex.Message); + return null; + } + } + if (!Directory.Exists(logFileDirectory)) + { + return null; + } + + //at this point the directory exists + var logFileName = string.Format(LOG_FILE_NAME, string.Empty); + var fullPath = Path.Combine(logFileDirectory, logFileName); + try + { + // Rename previous file to LOG_FILE_NAME_yyyyMMdd.log + if (File.Exists(fullPath)) + { + var lastTime = File.GetLastWriteTime(fullPath); + if (lastTime.Date != DateTime.Now.Date) + { + File.Move(fullPath, Path.Combine(logFileDirectory, string.Format(LOG_FILE_NAME, "_" + lastTime.Date.ToString("yyyyMMdd")))); + } + } + + // Add to existing log file or create new + return new FileStream(fullPath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite); + } + catch (Exception ex) + { + Trace.TraceError("Unable to create log file {0}: {1}", fullPath, ex.Message); + return null; + } + } + + public void Dispose() + { + Trace.Flush(); + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/Logging/TraceLogger.cs b/Source/Core/HydroDesktop.Common/Logging/TraceLogger.cs new file mode 100644 index 00000000..97452b30 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Logging/TraceLogger.cs @@ -0,0 +1,82 @@ +using System; +using System.Diagnostics; +using System.Text; +using System.Runtime.CompilerServices; + +namespace HydroDesktop.Common.Logging +{ + /// + /// Simple logger, which uses Trace class. + /// + class TraceLogger : IExtraLog + { + public TraceLogger(ILogInitializer initializer) + { + SkipFrames = 3; + Destination = initializer.Destination; + } + + [MethodImpl(MethodImplOptions.NoInlining)] + public void Info(string message) + { + LogMessage(message, "INFO"); + } + + [MethodImpl(MethodImplOptions.NoInlining)] + public void Warn(string message, Exception exception = null) + { + LogMessage(message, "WARN", exception); + } + + [MethodImpl(MethodImplOptions.NoInlining)] + public void Error(string message, Exception exception = null) + { + LogMessage(message, "ERROR", exception); + // Flush to see message in log immediately after error. + Trace.Flush(); + } + + public string Destination { get; private set; } + + private void LogMessage(string message, string category, Exception exception = null) + { + if (!IsEnabled()) return; + + var sb = new StringBuilder(); + sb.AppendFormat("[{0}] [{1}] [{2}]", DateTime.Now, category, GetCallingMethod()); + sb.AppendLine(); + sb.Append(message); + if (exception != null) + { + sb.AppendLine(); + sb.AppendLine(exception.Message); + sb.AppendLine("Inner: " + (exception.InnerException != null? exception.InnerException.ToString() : "NULL")); + sb.Append("Stack trace: " + exception.StackTrace); + } + Trace.WriteLine(sb.ToString()); + } + + private static bool IsEnabled() + { +#if TRACE + return true; +#else + return false; +#endif + } + + private string GetCallingMethod() + { + if (!IsEnabled()) return string.Empty; + var frame = new StackFrame(SkipFrames); + var method = frame.GetMethod(); + return method.DeclaringType != null ? method.DeclaringType.FullName + "." + method.Name : method.Name; + } + + #region Implementation of IExtraLog + + public int SkipFrames { get; set; } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/ObservableObject.T.cs b/Source/Core/HydroDesktop.Common/ObservableObject.T.cs new file mode 100644 index 00000000..e30f4fbc --- /dev/null +++ b/Source/Core/HydroDesktop.Common/ObservableObject.T.cs @@ -0,0 +1,34 @@ +using System; +using System.ComponentModel; +using System.Linq.Expressions; +using HydroDesktop.Common.Tools; + +namespace HydroDesktop.Common +{ + /// + /// Base class for classes which implements INotifyPropertyChanged + /// + /// + public abstract class ObservableObject : INotifyPropertyChanged + { + #region Implementation of INotifyPropertyChanged + + /// + /// Occurs when a property value changes. + /// + public event PropertyChangedEventHandler PropertyChanged; + + /// + /// Called when [property changed]. + /// + /// The property. + protected virtual void NotifyPropertyChanged(Expression> property) + { + PropertyChangedEventHandler handler = PropertyChanged; + if (handler != null) + handler(this, new PropertyChangedEventArgs(NameHelper.Name(property))); + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.Common/Properties/AssemblyInfo.cs b/Source/Core/HydroDesktop.Common/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..3f5fac79 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Properties/AssemblyInfo.cs @@ -0,0 +1,22 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Common")] +[assembly: AssemblyDescription("HydroDesktop common library")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HydroDesktop.Common")] +[assembly: AssemblyCopyright("Copyright © CUAHSI 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("9603cad0-14d6-450e-adec-1a22afb668aa")] \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/Properties/Resources.Designer.cs b/Source/Core/HydroDesktop.Common/Properties/Resources.Designer.cs new file mode 100644 index 00000000..59b32a63 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Properties/Resources.Designer.cs @@ -0,0 +1,72 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.239 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Common.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Common.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Data Sites. + /// + internal static string SearchGroupName { + get { + return ResourceManager.GetString("SearchGroupName", resourceCulture); + } + } + } +} diff --git a/Source/Core/HydroDesktop.Common/Properties/Resources.resx b/Source/Core/HydroDesktop.Common/Properties/Resources.resx new file mode 100644 index 00000000..a2050f12 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Properties/Resources.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Data Sites + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/SharedConstants.cs b/Source/Core/HydroDesktop.Common/SharedConstants.cs new file mode 100644 index 00000000..9a52aad7 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/SharedConstants.cs @@ -0,0 +1,57 @@ +namespace HydroDesktop.Common +{ + /// + /// Contains some shared constants to use them in plug-ins + /// + public static class SharedConstants + { + /// + /// Root Key of Metadata ribbon + /// + public static string MetadataRootKey + { + get { return "kHydroMetadata"; } + } + + /// + /// Root Key of Search Ribbon + /// + public static string SearchRootkey + { + get { return "kHydroSearchV3"; } + } + + /// + /// Root Key of HydroShare Ribbon + /// + public static string HydroShareRootkey + { + get { return "kHydroShare"; } + } + + /// + /// Root Key of Table Ribbon + /// + public static string TableRootKey + { + get { return "kHydroTable"; } + } + + /// + /// Key of SeriesSelector dock panel + /// + public static string SeriesViewKey + { + get { return "kHydroSeriesView"; } + } + + /// + /// Name of Data Sources group in search ribbon + /// + public static string SearchDataSourcesGroupName + { + get { return "Data Sources"; } + } + } +} + diff --git a/Source/Core/HydroDesktop.Common/Tools/AppManagerHelper.cs b/Source/Core/HydroDesktop.Common/Tools/AppManagerHelper.cs new file mode 100644 index 00000000..3676899a --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Tools/AppManagerHelper.cs @@ -0,0 +1,22 @@ +using System.Linq; +using DotSpatial.Controls; + +namespace HydroDesktop.Common.Tools +{ + /// + /// Contains extension methods for + /// + public static class AppManagerHelper + { + /// + /// Get active extension by it's type. + /// + /// Extension type + /// App manager + /// Instance of extension, or null (if extension not found). + public static T GetExtension(this AppManager appManager) + { + return appManager.Extensions.Where(ext => ext.IsActive).OfType().FirstOrDefault(); + } + } +} diff --git a/Source/Core/HydroDesktop.Common/Tools/ControlHelper.cs b/Source/Core/HydroDesktop.Common/Tools/ControlHelper.cs new file mode 100644 index 00000000..678a182b --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Tools/ControlHelper.cs @@ -0,0 +1,83 @@ +using System; +using System.ComponentModel; +using System.Linq.Expressions; +using System.Windows.Forms; + +namespace HydroDesktop.Common.Tools +{ + /// + /// Helper for + /// + public static class ControlHelper + { + /// + /// Executes the Action asynchronously on the UI thread, does not block execution on the calling thread. + /// + /// Control + /// Action + public static void UIThread(this Control control, Action code) + { + if (control.InvokeRequired) + { + control.BeginInvoke(code); + } + else + { + code.Invoke(); + } + } + + + /// + /// Add binding to control + /// + /// Type of control + /// Type of object to bind + /// Control + /// Expression that returns control property to bind + /// Bind source + /// Expression that returns source property to bind + public static void AddBinding(this T control, Expression> controlProperty, object source, Expression> sourceProperty) + where T : Control + { + control.DataBindings.Add(new Binding(NameHelper.Name(controlProperty), + source, NameHelper.Name(sourceProperty, true), + true, DataSourceUpdateMode.OnPropertyChanged)); + } + + /// + /// Add binding to control + /// + /// Type of control + /// Type of object to bind + /// Control + /// Expression that returns control property to bind + /// Bind source + /// Expression that returns source property to bind + public static void AddBinding(this T control, Expression> controlProperty, TS source, Expression> sourceProperty) + where T : Control + { + control.DataBindings.Add(new Binding(NameHelper.Name(controlProperty), + source, NameHelper.Name(sourceProperty, true), + true, DataSourceUpdateMode.OnPropertyChanged)); + } + + + /// + /// Detecting Design Mode In Visual Studio + /// + /// Control + /// True - Design Mode, otherwise - False. + public static bool IsDesignMode(this Control control) + { + var isDesignMode = (LicenseManager.UsageMode == LicenseUsageMode.Designtime); + if (isDesignMode) return true; + + var site = control.Site; + if (site != null) + isDesignMode = site.DesignMode; + + return isDesignMode; + } + } +} diff --git a/Source/Core/HydroDesktop.Common/Tools/DrawingHelper.cs b/Source/Core/HydroDesktop.Common/Tools/DrawingHelper.cs new file mode 100644 index 00000000..f7915ea6 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Tools/DrawingHelper.cs @@ -0,0 +1,33 @@ +using System.Drawing; +using System.Windows.Forms; + +namespace HydroDesktop.Common.Tools +{ + /// + /// Contains misc helper methods for System.Drawing namespace + /// + public static class DrawingHelper + { + /// + /// Show dialog to select color. + /// + /// Default color for dialog. + /// Selected color, or null, if dialog was cancelled. + public static Color? PromptForColor(Color? defaultColor = null) + { + using(var dlg = new ColorDialog()) + { + if (defaultColor != null) + { + dlg.Color = defaultColor.Value; + } + + if (dlg.ShowDialog() == DialogResult.OK) + { + return dlg.Color; + } + return null; + } + } + } +} diff --git a/Source/Core/HydroDesktop.Common/Tools/EnumHelper.cs b/Source/Core/HydroDesktop.Common/Tools/EnumHelper.cs new file mode 100644 index 00000000..e5bc19d7 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Tools/EnumHelper.cs @@ -0,0 +1,27 @@ +using System; +using System.ComponentModel; + +namespace HydroDesktop.Common.Tools +{ + /// + /// Helper for enums + /// + public static class EnumHelper + { + /// + /// Get description from Enum Value + /// + /// Enum value. + /// Description of value. + public static string Description(this Enum enumValue) + { + var descriptions = + (DescriptionAttribute[])enumValue.GetType().GetField(enumValue.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), false); + if (descriptions.Length == 0) + { + return Enum.GetName(enumValue.GetType(), enumValue); + } + return descriptions[0].Description; + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/Tools/LegendExtensions.cs b/Source/Core/HydroDesktop.Common/Tools/LegendExtensions.cs new file mode 100644 index 00000000..cfe7aeee --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Tools/LegendExtensions.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using DotSpatial.Controls; +using DotSpatial.Symbology; + +namespace HydroDesktop.Common.Tools +{ + /// + /// Contains legend extensions + /// + public static class LegendExtensions + { + /// + /// Process all legend items of type T + /// + /// + /// Legend + /// Action + public static void ForEachRecursively(this ILegend legend, Action action) where T : class + { + ForEachRecursively(legend.RootNodes, action); + } + + private static void ForEachRecursively(IEnumerable nodes, Action action) where T : class + { + if (nodes == null) return; + foreach (var legendItem in nodes) + { + var tt = legendItem as T; + if (tt != null) + { + action(tt); + } + ForEachRecursively(legendItem.LegendItems, action); + } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/Tools/NameHelper.cs b/Source/Core/HydroDesktop.Common/Tools/NameHelper.cs new file mode 100644 index 00000000..2eb51662 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Tools/NameHelper.cs @@ -0,0 +1,59 @@ +using System; +using System.Linq.Expressions; + +namespace HydroDesktop.Common.Tools +{ + /// + /// Helper class to get properties names. + /// + public static class NameHelper + { + /// + /// Get name of property in current class. + /// + public static string Name(Expression> expression, bool isDeep = false) + { + return GetMemberName(expression.Body, isDeep); + } + + internal static string GetMemberName(Expression expression, bool isDeep) + { + switch (expression.NodeType) + { + case ExpressionType.MemberAccess: + var memberExpression = (MemberExpression)expression; + var memberName = memberExpression.Member.Name; + if (!isDeep) + return memberName; + var superPath = GetMemberName(memberExpression.Expression, true); + return !string.IsNullOrEmpty(superPath) ? superPath + "." + memberName : memberName; + case ExpressionType.Call: + var callExpression = (MethodCallExpression)expression; + return callExpression.Method.Name; + case ExpressionType.Convert: + var unaryExpression = (UnaryExpression)expression; + return GetMemberName(unaryExpression.Operand, isDeep); + case ExpressionType.Parameter: + case ExpressionType.Constant: //Change + return string.Empty; + default: + throw new ArgumentException("The expression is not a member access or method call expression"); + } + } + } + + /// + /// Helper class to get property name in the given class. + /// + /// Class with properties. + public static class NameHelper + { + /// + /// Get name of property in the given class. + /// + public static string Name(Expression> expression, bool isDeep = false) + { + return NameHelper.GetMemberName(expression.Body, isDeep); + } + } +} diff --git a/Source/Core/HydroDesktop.Common/Tools/SymbologyHelper.cs b/Source/Core/HydroDesktop.Common/Tools/SymbologyHelper.cs new file mode 100644 index 00000000..2172bae9 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/Tools/SymbologyHelper.cs @@ -0,0 +1,24 @@ +using System; +using DotSpatial.Symbology; + +namespace HydroDesktop.Common.Tools +{ + /// + /// Contains extension methods for DotSpatial.Symbology namespace + /// + public static class SymbologyHelper + { + /// + /// Add sub-menu item into parent menu item. + /// + /// Parent menu item. + /// Menu item to add. + /// Click event handler. + public static void AddMenuItem(this SymbologyMenuItem parent, string menuItemName, EventHandler handler) + { + if (parent.MenuItems.Exists(item => item.Name == menuItemName)) return; + var menuItem = new SymbologyMenuItem(menuItemName, handler); + parent.MenuItems.Add(menuItem); + } + } +} diff --git a/Source/Core/HydroDesktop.Common/UserMessage/IUserMessage.cs b/Source/Core/HydroDesktop.Common/UserMessage/IUserMessage.cs new file mode 100644 index 00000000..e2cb6812 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/UserMessage/IUserMessage.cs @@ -0,0 +1,30 @@ +using System; + +namespace HydroDesktop.Common.UserMessage +{ + /// + /// Shows custom message to user. + /// + public interface IUserMessage + { + /// + /// Show info message. + /// + /// Message to show. + void Info(string message); + + /// + /// Show warning message. + /// + /// Message to show. + /// Exception. + void Warn(string message, Exception exception = null); + + /// + /// Show error message. + /// + /// Message to show. + /// Exception. + void Error(string message, Exception exception = null); + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/UserMessage/MessageBoxUserMessage.cs b/Source/Core/HydroDesktop.Common/UserMessage/MessageBoxUserMessage.cs new file mode 100644 index 00000000..19f523c8 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/UserMessage/MessageBoxUserMessage.cs @@ -0,0 +1,46 @@ +using System; +using System.Windows.Forms; +using HydroDesktop.Common.Logging; + +namespace HydroDesktop.Common.UserMessage +{ + internal class MessageBoxUserMessage : IUserMessage + { + private readonly ILog _logger; + + public MessageBoxUserMessage(IExtraLog logger) + { + if (logger == null) throw new ArgumentNullException("logger"); + logger.SkipFrames++; + _logger = logger; + } + + #region Implementation of IUserMessage + + public void Info(string message) + { + _logger.Info(message); + MessageBox.Show(message, "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + + public void Warn(string message, Exception exception = null) + { + _logger.Warn(message); + MessageBox.Show(message + (exception != null + ? Environment.NewLine + + "Reason: " + exception.Message + : string.Empty), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + + public void Error(string message, Exception exception = null) + { + _logger.Error(message, exception); + MessageBox.Show(message + (exception != null + ? Environment.NewLine + + "Reason: " + exception.Message + : string.Empty), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/package.nuspec b/Source/Core/HydroDesktop.Common/package.nuspec new file mode 100644 index 00000000..ed7f0e97 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/package.nuspec @@ -0,0 +1,17 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + true + $description$ + + en-US + HideReleaseFromEndUser + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Common/packages.config b/Source/Core/HydroDesktop.Common/packages.config new file mode 100644 index 00000000..8ca44ba0 --- /dev/null +++ b/Source/Core/HydroDesktop.Common/packages.config @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Configuration/ConfigurationHelper.cs b/Source/Core/HydroDesktop.Configuration/ConfigurationHelper.cs new file mode 100644 index 00000000..29972ddd --- /dev/null +++ b/Source/Core/HydroDesktop.Configuration/ConfigurationHelper.cs @@ -0,0 +1,46 @@ +using System; +using System.IO; + +namespace HydroDesktop.Configuration +{ + /// + /// Helper methods for finding and creating directories + /// + static class ConfigurationHelper + { + public static string FindOrCreateAppDataDirectory() + { + string baseAppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); + + //check if this directory can be created + string hdAppData = Path.Combine(baseAppData, Properties.Settings.Default.AppDataDirectoryName); + CheckDirectory(hdAppData); + return hdAppData; + } + + public static string FindOrCreateTempDirectory() + { + string basePath = Path.GetTempPath(); + //check if this directory can be created + string hdTempDir = Path.Combine(basePath, Properties.Settings.Default.TempDirectoryName); + CheckDirectory(hdTempDir); + return hdTempDir; + } + + private static void CheckDirectory(string directoryName) + { + if (!Directory.Exists(directoryName)) + { + try + { + Directory.CreateDirectory(directoryName); + } + catch (Exception ex) + { + throw new UnauthorizedAccessException("Error creating directory " + + directoryName + ". " + ex.Message); + } + } + } + } +} diff --git a/Source/Core/HydroDesktop.Configuration/HydroDesktop.Configuration.csproj b/Source/Core/HydroDesktop.Configuration/HydroDesktop.Configuration.csproj new file mode 100644 index 00000000..c94dcaf1 --- /dev/null +++ b/Source/Core/HydroDesktop.Configuration/HydroDesktop.Configuration.csproj @@ -0,0 +1,100 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB} + Library + Properties + HydroDesktop.Configuration + HydroDesktop.Configuration + v4.0 + 512 + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Binaries\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\ + DEBUG;TRACE + full + x86 + prompt + false + false + + + + + ..\..\..\Binaries\ + TRACE + true + pdbonly + x86 + prompt + false + true + + + + + + + + + Properties\AssemblyInfoShared.cs + + + True + True + Settings.settings + + + + + + Designer + + + + Designer + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Configuration/HydroDesktop.Configuration.sln b/Source/Core/HydroDesktop.Configuration/HydroDesktop.Configuration.sln new file mode 100644 index 00000000..87b0f2aa --- /dev/null +++ b/Source/Core/HydroDesktop.Configuration/HydroDesktop.Configuration.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Configuration", "HydroDesktop.Configuration.csproj", "{0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Debug|x86.ActiveCfg = Debug|x86 + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Debug|x86.Build.0 = Debug|x86 + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Release|Any CPU.Build.0 = Release|Any CPU + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Release|x86.ActiveCfg = Release|x86 + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Core/HydroDesktop.Configuration/Properties/AssemblyInfo.cs b/Source/Core/HydroDesktop.Configuration/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..e106d1cd --- /dev/null +++ b/Source/Core/HydroDesktop.Configuration/Properties/AssemblyInfo.cs @@ -0,0 +1,22 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Configuration")] +[assembly: AssemblyDescription("HydroDesktop Configuration Settings Management")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CUAHSI")] +[assembly: AssemblyProduct("HydroDesktop.Configuration")] +[assembly: AssemblyCopyright("Copyright © CUAHSI 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("55b10f46-85ac-40bb-bc56-3d7bd32c7d5b")] \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Configuration/Properties/Settings.Designer.cs b/Source/Core/HydroDesktop.Configuration/Properties/Settings.Designer.cs new file mode 100644 index 00000000..51f9a03c --- /dev/null +++ b/Source/Core/HydroDesktop.Configuration/Properties/Settings.Designer.cs @@ -0,0 +1,165 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.544 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Configuration.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.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; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("HydroDesktop")] + public string TempDirectoryName { + get { + return ((string)(this["TempDirectoryName"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("HydroDesktop")] + public string AppDataDirectoryName { + get { + return ((string)(this["AppDataDirectoryName"])); + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("new1.sqlite")] + public string NewDataRepositoryName { + get { + return ((string)(this["NewDataRepositoryName"])); + } + set { + this["NewDataRepositoryName"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("new1_metadatacache.sqlite")] + public string NewMetadataCacheName { + get { + return ((string)(this["NewMetadataCacheName"])); + } + set { + this["NewMetadataCacheName"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("new1.dspx")] + public string NewProjectFileName { + get { + return ((string)(this["NewProjectFileName"])); + } + set { + this["NewProjectFileName"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("\r\n")] + public global::System.Collections.Specialized.StringCollection RecentProjectFiles { + get { + return ((global::System.Collections.Specialized.StringCollection)(this["RecentProjectFiles"])); + } + set { + this["RecentProjectFiles"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Append")] + public string DownloadOption { + get { + return ((string)(this["DownloadOption"])); + } + set { + this["DownloadOption"] = value; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute(@" + + Append + Overwrite + Fill + Copy +")] + public global::System.Collections.Specialized.StringCollection OVERWRITE_OPTIONS { + get { + return ((global::System.Collections.Specialized.StringCollection)(this["OVERWRITE_OPTIONS"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Sample Projects")] + public string SampleProjectsDirectory { + get { + return ((string)(this["SampleProjectsDirectory"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("projects\\default\\default.hdprj")] + public string DefaultProjectFileName { + get { + return ((string)(this["DefaultProjectFileName"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("projects\\default\\default.sqlite")] + public string DefaultDatabaseFileName { + get { + return ((string)(this["DefaultDatabaseFileName"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Maps\\BaseData")] + public string DefaultBaseMapDirectory { + get { + return ((string)(this["DefaultBaseMapDirectory"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("MetadataCache.sqlite")] + public string DefaultMetadataCacheFileName { + get { + return ((string)(this["DefaultMetadataCacheFileName"])); + } + } + } +} diff --git a/Source/Core/HydroDesktop.Configuration/Properties/Settings.settings b/Source/Core/HydroDesktop.Configuration/Properties/Settings.settings new file mode 100644 index 00000000..0a49f55d --- /dev/null +++ b/Source/Core/HydroDesktop.Configuration/Properties/Settings.settings @@ -0,0 +1,52 @@ + + + + + + HydroDesktop + + + HydroDesktop + + + new1.sqlite + + + new1_metadatacache.sqlite + + + new1.dspx + + + <?xml version="1.0" encoding="utf-16"?> +<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /> + + + Append + + + <?xml version="1.0" encoding="utf-16"?> +<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <string>Append</string> + <string>Overwrite</string> + <string>Fill</string> + <string>Copy</string> +</ArrayOfString> + + + Sample Projects + + + projects\default\default.hdprj + + + projects\default\default.sqlite + + + Maps\BaseData + + + MetadataCache.sqlite + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Configuration/Settings.cs b/Source/Core/HydroDesktop.Configuration/Settings.cs new file mode 100644 index 00000000..0dacb916 --- /dev/null +++ b/Source/Core/HydroDesktop.Configuration/Settings.cs @@ -0,0 +1,263 @@ +using System; +using System.IO; +using System.Linq; + +namespace HydroDesktop.Configuration +{ + /// + /// Application - level settings including web service URLs and database + /// locations + /// + public class Settings + { + private string _downloadOption = "Append"; + private string _dataRepositoryConnectionString; + private string _metadataCacheConnectionString; + + /// + /// Allocate ourselves. We have a private constructor, so no one else can. + /// + static readonly Settings _instance = new Settings(); + + /// + /// Access SiteStructure.Instance to get the singleton object. + /// Then call methods on that instance. + /// + public static Settings Instance + { + get { return _instance; } + } + + /// + /// Creates a new settings object with default values. + /// This is a private constructor, meaning no outsiders have access. + /// + private Settings() + { + } + + + /// + /// The user-defined data repository connection string + /// + public string DataRepositoryConnectionString + { + get { return _dataRepositoryConnectionString; } + set + { + string oldValue = _dataRepositoryConnectionString; + _dataRepositoryConnectionString = value; + if (oldValue != value) + OnDatabaseChanged(); + } + } + + /// + /// Gets or sets the currently used metadata cache database connection string + /// + public string MetadataCacheConnectionString + { + get + { + return _metadataCacheConnectionString; + } + set + { + string oldValue = _metadataCacheConnectionString; + _metadataCacheConnectionString = value; + if (oldValue != value) + OnMetadataCacheChanged(); + } + } + + /// + /// The option how to handle duplicate data values during + /// data download and saving to database + /// + public string DownloadOption + { + get { return _downloadOption; } + set + { + string[] overwriteOptions = Properties.Settings.Default.OVERWRITE_OPTIONS.Cast().ToArray(); + + if (overwriteOptions.Contains(value)) + { + _downloadOption = value; + } + else + { + throw new ArgumentException(String.Format("The DownloadOption '{0}' is not a valid option.", value)); + } + _downloadOption = value; + } + } + + /// + /// Gets the default project file name + /// + [Obsolete] + public string DefaultProjectFileName + { + get + { + return Path.Combine(ApplicationDataDirectory, Properties.Settings.Default.DefaultProjectFileName); + } + } + + /// + /// Gets the default sqlite path + /// + public string DefaultDatabasePath + { + get + { + return Path.Combine(ApplicationDataDirectory, Properties.Settings.Default.DefaultDatabaseFileName); + } + } + + /// + /// Gets the default 'metadata cache' sqlite db path + /// + public string DefaultMetadataCacheDbPath + { + get + { + return Path.Combine(ApplicationDataDirectory, + Properties.Settings.Default.DefaultMetadataCacheFileName); + } + } + + /// + /// Gets the Current project file name + /// (the full path is returned) + /// + public string CurrentProjectFile + { + get; + set; + } + + /// + /// Gets the current project directory path + /// + public string CurrentProjectDirectory + { + get + { + return Path.GetDirectoryName(CurrentProjectFile); + } + } + + /// + /// Gets or the directory where 'Sample Projects' are located + /// + public string SampleProjectsDirectory + { + get + { + string programPath = AppDomain.CurrentDomain.BaseDirectory; + return Path.Combine(programPath, Properties.Settings.Default.SampleProjectsDirectory); + } + } + + /// + /// Gets the directory with the default 'base map' data + /// + public string DefaultBaseMapDirectory + { + get + { + string programPath = AppDomain.CurrentDomain.BaseDirectory; + return Path.Combine(programPath, Properties.Settings.Default.DefaultBaseMapDirectory); + } + } + + /// + /// Gets the application data directory where the + /// 'settings.xml' file is saved + /// + public string ApplicationDataDirectory + { + get + { + return ConfigurationHelper.FindOrCreateAppDataDirectory(); + } + } + + /// + /// Gets the directory for saving temporary HydroDesktop related + /// files + /// + public string TempDirectory + { + get + { + return ConfigurationHelper.FindOrCreateTempDirectory(); + } + } + + /// + /// Gets the list of recent project files + /// + public System.Collections.Specialized.StringCollection RecentProjectFiles + { + get + { + return Properties.Settings.Default.RecentProjectFiles; + } + } + + /// + /// Add a project file name to the list of recent project files + /// + /// + public void AddFileToRecentFiles(string fileName) + { + const int maximumNumberOfRecentFiles = 10; + + if (Properties.Settings.Default.RecentProjectFiles.Contains(fileName)) + { + Properties.Settings.Default.RecentProjectFiles.Remove(fileName); + } + + if (Properties.Settings.Default.RecentProjectFiles.Count >= maximumNumberOfRecentFiles) + Properties.Settings.Default.RecentProjectFiles.RemoveAt(Properties.Settings.Default.RecentProjectFiles.Count - 1); + + // insert value at the top of the list + Properties.Settings.Default.RecentProjectFiles.Insert(0, fileName); + + //save settings + Properties.Settings.Default.Save(); + } + + #region Events + + /// + /// This event occurs when the main database connection string has changed + /// + public event EventHandler DatabaseChanged; + + private void OnDatabaseChanged() + { + var handler = DatabaseChanged; + if (handler != null) + handler(this, EventArgs.Empty); + } + + /// + /// This event occurs when the metadata cache database connection string + /// has changed + /// + public event EventHandler MetadataCacheChanged; + + private void OnMetadataCacheChanged() + { + var handler = MetadataCacheChanged; + if (handler != null) + handler(this, EventArgs.Empty); + } + + #endregion Events + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Configuration/app.config b/Source/Core/HydroDesktop.Configuration/app.config new file mode 100644 index 00000000..9d4c92c5 --- /dev/null +++ b/Source/Core/HydroDesktop.Configuration/app.config @@ -0,0 +1,69 @@ + + + + +
+ + +
+ + + + + + new1.sqlite + + + new1_metadatacache.sqlite + + + new1.dspx + + + + + + + + Append + + + + + + + HydroDesktop + + + HydroDesktop + + + + + Append + Overwrite + Fill + Copy + + + + + Sample Projects + + + projects\default\default.hdprj + + + projects\default\default.sqlite + + + Maps\BaseData + + + MetadataCache.sqlite + + + + diff --git a/Source/Core/HydroDesktop.Configuration/package.nuspec b/Source/Core/HydroDesktop.Configuration/package.nuspec new file mode 100644 index 00000000..ed7f0e97 --- /dev/null +++ b/Source/Core/HydroDesktop.Configuration/package.nuspec @@ -0,0 +1,17 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + true + $description$ + + en-US + HideReleaseFromEndUser + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Configuration/packages.config b/Source/Core/HydroDesktop.Configuration/packages.config new file mode 100644 index 00000000..037b768b --- /dev/null +++ b/Source/Core/HydroDesktop.Configuration/packages.config @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.ODMCVServiceClient/HydroDesktop.Data.ODMCVServiceClient.csproj b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/HydroDesktop.Data.ODMCVServiceClient.csproj new file mode 100644 index 00000000..c607bcd2 --- /dev/null +++ b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/HydroDesktop.Data.ODMCVServiceClient.csproj @@ -0,0 +1,133 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {7E4B6C24-4526-4995-9BDA-410CC41C7512} + Library + Properties + HydroDesktop.Data.ODMCVServiceClient + HydroDesktop.Data.ODMCVServiceClient + v4.0 + 512 + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\HydroDesktop.Data.ODMCVServiceClient.XML + 1591 + + + pdbonly + true + ..\..\..\Binaries\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\ + DEBUG;TRACE + ..\..\..\Binaries\HydroDesktop.Data.ODMCVServiceClient.XML + full + x86 + ..\..\..\Binaries\HydroDesktop.Data.ODMCVServiceClient.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + ..\..\..\Binaries\HydroDesktop.Data.ODMCVServiceClient.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + + + + + + + + + + + + + + True + True + Reference.svcmap + + + + + + + + Properties\AssemblyInfoShared.cs + + + + + + + + + + + + + + + + + + + + WCF Proxy Generator + Reference.cs + + + + + {0b9ba90b-2016-4754-915a-0ad74fd0067a} + HydroDesktop.Interfaces + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.ODMCVServiceClient/IODMCVServiceClient.cs b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/IODMCVServiceClient.cs new file mode 100644 index 00000000..ce991fde --- /dev/null +++ b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/IODMCVServiceClient.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Data.ODMCVServiceClient +{ + public interface IODMCVServiceClient + { + IEnumerable GetUnits(); + } +} diff --git a/Source/Core/HydroDesktop.Data.ODMCVServiceClient/IODMCVServiceClientFactory.cs b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/IODMCVServiceClientFactory.cs new file mode 100644 index 00000000..1d6c8404 --- /dev/null +++ b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/IODMCVServiceClientFactory.cs @@ -0,0 +1,7 @@ +namespace HydroDesktop.Data.ODMCVServiceClient +{ + public interface IODMCVServiceClientFactory + { + IODMCVServiceClient GetODMCVServiceClient(); + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Infrastructure/SOAP/ODMCVSoapServiceClient.cs b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Infrastructure/SOAP/ODMCVSoapServiceClient.cs new file mode 100644 index 00000000..66c43b68 --- /dev/null +++ b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Infrastructure/SOAP/ODMCVSoapServiceClient.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Xml; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Data.ODMCVServiceClient.Infrastructure.SOAP +{ + class ODMCVSoapServiceClient : ServiceReference.ODMCV.ODMCVServiceSoapClient, IODMCVServiceClient + { + protected ODMCVSoapServiceClient() + { + } + + public static ODMCVSoapServiceClient CreateNew() + { + return new ODMCVSoapServiceClient(); + } + + #region Implementation of IODMCVServiceClient + + public new IEnumerable GetUnits() + { + var units = base.GetUnits(); + using (var textReader = new StringReader(units)) + using (var xmlReader = new XmlTextReader(textReader)) + { + while (xmlReader.Read()) + { + if (xmlReader.IsStartElement() && + string.Equals(xmlReader.Name, "Record", StringComparison.OrdinalIgnoreCase)) + { + var unit = new Unit(); + while (xmlReader.Read()) + { + if (xmlReader.IsStartElement()) + { + if (string.Equals(xmlReader.Name, "UnitsName", StringComparison.OrdinalIgnoreCase)) + { + unit.Name = xmlReader.ReadString(); + } + else if (string.Equals(xmlReader.Name, "UnitsType", StringComparison.OrdinalIgnoreCase)) + { + unit.UnitsType = xmlReader.ReadString(); + } + else if (string.Equals(xmlReader.Name, "UnitsAbbreviation", + StringComparison.OrdinalIgnoreCase)) + { + unit.Abbreviation = xmlReader.ReadString(); + } + } + else + { + if (string.Equals(xmlReader.Name, "Record", StringComparison.OrdinalIgnoreCase)) + break; + } + } + yield return unit; + } + } + } + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.Data.ODMCVServiceClient/ODMCVServiceClientFactory.cs b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/ODMCVServiceClientFactory.cs new file mode 100644 index 00000000..af94f4f2 --- /dev/null +++ b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/ODMCVServiceClientFactory.cs @@ -0,0 +1,27 @@ +using System; +using HydroDesktop.Data.ODMCVServiceClient.Infrastructure.SOAP; + +namespace HydroDesktop.Data.ODMCVServiceClient +{ + public class ODMCVServiceClientFactory : IODMCVServiceClientFactory + { + #region Singletone implementation + + private ODMCVServiceClientFactory() + { + + } + private static readonly Lazy _instance = new Lazy(() => new ODMCVServiceClientFactory(), true); + public static IODMCVServiceClientFactory Instance + { + get { return _instance.Value; } + } + + #endregion + + public IODMCVServiceClient GetODMCVServiceClient() + { + return ODMCVSoapServiceClient.CreateNew(); + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Properties/AssemblyInfo.cs b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..4e0ca135 --- /dev/null +++ b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Properties/AssemblyInfo.cs @@ -0,0 +1,22 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Data.ODMCVServiceClient")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HydroDesktop.Data.ODMCVServiceClient")] +[assembly: AssemblyCopyright("Copyright © 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a32e73f6-9d08-41b7-8e3d-4e5a3bac284c")] \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/ODMCV_1_1.disco b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/ODMCV_1_1.disco new file mode 100644 index 00000000..d78918f6 --- /dev/null +++ b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/ODMCV_1_1.disco @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/ODMCV_1_1.wsdl b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/ODMCV_1_1.wsdl new file mode 100644 index 00000000..c87e46ce --- /dev/null +++ b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/ODMCV_1_1.wsdl @@ -0,0 +1,491 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This method returns a string (formatted as XML) with all of the items in the CensorCode Controlled Vocabulary. + + + + + This method returns a string (formatted as XML) with all of the items in the DataType Controlled Vocabulary. + + + + + This method returns a string (formatted as XML) with all of the items in the GeneralCategory Controlled Vocabulary. + + + + + This method returns a string (formatted as XML) with all of the items in the SampleMedium Controlled Vocabulary. + + + + + This method returns a string (formatted as XML) with all of the items in the SampleType Controlled Vocabulary. + + + + + This method returns a string (formatted as XML) with all of the items in the TopicCategory Controlled Vocabulary. + + + + + This method returns a string (formatted as XML) with all of the items in the ValueType Controlled Vocabulary. + + + + + This method returns a string (formatted as XML) with all of the items in the VariableName Controlled Vocabulary. + + + + + This method returns a string (formatted as XML) with all of the items in the VerticalDatum Controlled Vocabulary. + + + + + This method returns a string (formatted as XML) with all of the items in the SpatialReferences Controlled Vocabulary. + + + + + This method returns a string (formatted as XML) with all of the items in the Units Controlled Vocabulary. + + + + + This method returns a string (formatted as XML) with all of the items in the Speciation Controlled Vocabulary. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/Reference.cs b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/Reference.cs new file mode 100644 index 00000000..cf87510f --- /dev/null +++ b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/Reference.cs @@ -0,0 +1,970 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.544 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV { + + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://his.cuahsi.org/his/1.1/ws/", ConfigurationName="ServiceReference.ODMCV.ODMCVServiceSoap")] + internal interface ODMCVServiceSoap { + + // CODEGEN: Generating message contract since element name GetCensorCodeCVResult from namespace http://his.cuahsi.org/his/1.1/ws/ is not marked nillable + [System.ServiceModel.OperationContractAttribute(Action="http://his.cuahsi.org/his/1.1/ws/GetCensorCodeCV", ReplyAction="*")] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetCensorCodeCVResponse GetCensorCodeCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetCensorCodeCVRequest request); + + // CODEGEN: Generating message contract since element name GetDataTypeCVResult from namespace http://his.cuahsi.org/his/1.1/ws/ is not marked nillable + [System.ServiceModel.OperationContractAttribute(Action="http://his.cuahsi.org/his/1.1/ws/GetDataTypeCV", ReplyAction="*")] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetDataTypeCVResponse GetDataTypeCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetDataTypeCVRequest request); + + // CODEGEN: Generating message contract since element name GetGeneralCategoryCVResult from namespace http://his.cuahsi.org/his/1.1/ws/ is not marked nillable + [System.ServiceModel.OperationContractAttribute(Action="http://his.cuahsi.org/his/1.1/ws/GetGeneralCategoryCV", ReplyAction="*")] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetGeneralCategoryCVResponse GetGeneralCategoryCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetGeneralCategoryCVRequest request); + + // CODEGEN: Generating message contract since element name GetSampleMediumCVResult from namespace http://his.cuahsi.org/his/1.1/ws/ is not marked nillable + [System.ServiceModel.OperationContractAttribute(Action="http://his.cuahsi.org/his/1.1/ws/GetSampleMediumCV", ReplyAction="*")] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleMediumCVResponse GetSampleMediumCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleMediumCVRequest request); + + // CODEGEN: Generating message contract since element name GetSampleTypeCVResult from namespace http://his.cuahsi.org/his/1.1/ws/ is not marked nillable + [System.ServiceModel.OperationContractAttribute(Action="http://his.cuahsi.org/his/1.1/ws/GetSampleTypeCV", ReplyAction="*")] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleTypeCVResponse GetSampleTypeCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleTypeCVRequest request); + + // CODEGEN: Generating message contract since element name GetTopicCategoryCVResult from namespace http://his.cuahsi.org/his/1.1/ws/ is not marked nillable + [System.ServiceModel.OperationContractAttribute(Action="http://his.cuahsi.org/his/1.1/ws/GetTopicCategoryCV", ReplyAction="*")] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetTopicCategoryCVResponse GetTopicCategoryCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetTopicCategoryCVRequest request); + + // CODEGEN: Generating message contract since element name GetValueTypeCVResult from namespace http://his.cuahsi.org/his/1.1/ws/ is not marked nillable + [System.ServiceModel.OperationContractAttribute(Action="http://his.cuahsi.org/his/1.1/ws/GetValueTypeCV", ReplyAction="*")] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetValueTypeCVResponse GetValueTypeCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetValueTypeCVRequest request); + + // CODEGEN: Generating message contract since element name GetVariableNameCVResult from namespace http://his.cuahsi.org/his/1.1/ws/ is not marked nillable + [System.ServiceModel.OperationContractAttribute(Action="http://his.cuahsi.org/his/1.1/ws/GetVariableNameCV", ReplyAction="*")] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVariableNameCVResponse GetVariableNameCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVariableNameCVRequest request); + + // CODEGEN: Generating message contract since element name GetVerticalDatumCVResult from namespace http://his.cuahsi.org/his/1.1/ws/ is not marked nillable + [System.ServiceModel.OperationContractAttribute(Action="http://his.cuahsi.org/his/1.1/ws/GetVerticalDatumCV", ReplyAction="*")] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVerticalDatumCVResponse GetVerticalDatumCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVerticalDatumCVRequest request); + + // CODEGEN: Generating message contract since element name GetSpatialReferencesResult from namespace http://his.cuahsi.org/his/1.1/ws/ is not marked nillable + [System.ServiceModel.OperationContractAttribute(Action="http://his.cuahsi.org/his/1.1/ws/GetSpatialReferences", ReplyAction="*")] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpatialReferencesResponse GetSpatialReferences(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpatialReferencesRequest request); + + // CODEGEN: Generating message contract since element name GetUnitsResult from namespace http://his.cuahsi.org/his/1.1/ws/ is not marked nillable + [System.ServiceModel.OperationContractAttribute(Action="http://his.cuahsi.org/his/1.1/ws/GetUnits", ReplyAction="*")] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetUnitsResponse GetUnits(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetUnitsRequest request); + + // CODEGEN: Generating message contract since element name GetSpeciationCVResult from namespace http://his.cuahsi.org/his/1.1/ws/ is not marked nillable + [System.ServiceModel.OperationContractAttribute(Action="http://his.cuahsi.org/his/1.1/ws/GetSpeciationCV", ReplyAction="*")] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpeciationCVResponse GetSpeciationCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpeciationCVRequest request); + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetCensorCodeCVRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetCensorCodeCV", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetCensorCodeCVRequestBody Body; + + public GetCensorCodeCVRequest() { + } + + public GetCensorCodeCVRequest(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetCensorCodeCVRequestBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute()] + internal partial class GetCensorCodeCVRequestBody { + + public GetCensorCodeCVRequestBody() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetCensorCodeCVResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetCensorCodeCVResponse", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetCensorCodeCVResponseBody Body; + + public GetCensorCodeCVResponse() { + } + + public GetCensorCodeCVResponse(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetCensorCodeCVResponseBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://his.cuahsi.org/his/1.1/ws/")] + internal partial class GetCensorCodeCVResponseBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string GetCensorCodeCVResult; + + public GetCensorCodeCVResponseBody() { + } + + public GetCensorCodeCVResponseBody(string GetCensorCodeCVResult) { + this.GetCensorCodeCVResult = GetCensorCodeCVResult; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetDataTypeCVRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetDataTypeCV", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetDataTypeCVRequestBody Body; + + public GetDataTypeCVRequest() { + } + + public GetDataTypeCVRequest(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetDataTypeCVRequestBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute()] + internal partial class GetDataTypeCVRequestBody { + + public GetDataTypeCVRequestBody() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetDataTypeCVResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetDataTypeCVResponse", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetDataTypeCVResponseBody Body; + + public GetDataTypeCVResponse() { + } + + public GetDataTypeCVResponse(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetDataTypeCVResponseBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://his.cuahsi.org/his/1.1/ws/")] + internal partial class GetDataTypeCVResponseBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string GetDataTypeCVResult; + + public GetDataTypeCVResponseBody() { + } + + public GetDataTypeCVResponseBody(string GetDataTypeCVResult) { + this.GetDataTypeCVResult = GetDataTypeCVResult; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetGeneralCategoryCVRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetGeneralCategoryCV", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetGeneralCategoryCVRequestBody Body; + + public GetGeneralCategoryCVRequest() { + } + + public GetGeneralCategoryCVRequest(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetGeneralCategoryCVRequestBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute()] + internal partial class GetGeneralCategoryCVRequestBody { + + public GetGeneralCategoryCVRequestBody() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetGeneralCategoryCVResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetGeneralCategoryCVResponse", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetGeneralCategoryCVResponseBody Body; + + public GetGeneralCategoryCVResponse() { + } + + public GetGeneralCategoryCVResponse(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetGeneralCategoryCVResponseBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://his.cuahsi.org/his/1.1/ws/")] + internal partial class GetGeneralCategoryCVResponseBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string GetGeneralCategoryCVResult; + + public GetGeneralCategoryCVResponseBody() { + } + + public GetGeneralCategoryCVResponseBody(string GetGeneralCategoryCVResult) { + this.GetGeneralCategoryCVResult = GetGeneralCategoryCVResult; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetSampleMediumCVRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetSampleMediumCV", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleMediumCVRequestBody Body; + + public GetSampleMediumCVRequest() { + } + + public GetSampleMediumCVRequest(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleMediumCVRequestBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute()] + internal partial class GetSampleMediumCVRequestBody { + + public GetSampleMediumCVRequestBody() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetSampleMediumCVResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetSampleMediumCVResponse", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleMediumCVResponseBody Body; + + public GetSampleMediumCVResponse() { + } + + public GetSampleMediumCVResponse(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleMediumCVResponseBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://his.cuahsi.org/his/1.1/ws/")] + internal partial class GetSampleMediumCVResponseBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string GetSampleMediumCVResult; + + public GetSampleMediumCVResponseBody() { + } + + public GetSampleMediumCVResponseBody(string GetSampleMediumCVResult) { + this.GetSampleMediumCVResult = GetSampleMediumCVResult; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetSampleTypeCVRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetSampleTypeCV", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleTypeCVRequestBody Body; + + public GetSampleTypeCVRequest() { + } + + public GetSampleTypeCVRequest(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleTypeCVRequestBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute()] + internal partial class GetSampleTypeCVRequestBody { + + public GetSampleTypeCVRequestBody() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetSampleTypeCVResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetSampleTypeCVResponse", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleTypeCVResponseBody Body; + + public GetSampleTypeCVResponse() { + } + + public GetSampleTypeCVResponse(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleTypeCVResponseBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://his.cuahsi.org/his/1.1/ws/")] + internal partial class GetSampleTypeCVResponseBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string GetSampleTypeCVResult; + + public GetSampleTypeCVResponseBody() { + } + + public GetSampleTypeCVResponseBody(string GetSampleTypeCVResult) { + this.GetSampleTypeCVResult = GetSampleTypeCVResult; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetTopicCategoryCVRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetTopicCategoryCV", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetTopicCategoryCVRequestBody Body; + + public GetTopicCategoryCVRequest() { + } + + public GetTopicCategoryCVRequest(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetTopicCategoryCVRequestBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute()] + internal partial class GetTopicCategoryCVRequestBody { + + public GetTopicCategoryCVRequestBody() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetTopicCategoryCVResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetTopicCategoryCVResponse", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetTopicCategoryCVResponseBody Body; + + public GetTopicCategoryCVResponse() { + } + + public GetTopicCategoryCVResponse(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetTopicCategoryCVResponseBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://his.cuahsi.org/his/1.1/ws/")] + internal partial class GetTopicCategoryCVResponseBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string GetTopicCategoryCVResult; + + public GetTopicCategoryCVResponseBody() { + } + + public GetTopicCategoryCVResponseBody(string GetTopicCategoryCVResult) { + this.GetTopicCategoryCVResult = GetTopicCategoryCVResult; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetValueTypeCVRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetValueTypeCV", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetValueTypeCVRequestBody Body; + + public GetValueTypeCVRequest() { + } + + public GetValueTypeCVRequest(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetValueTypeCVRequestBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute()] + internal partial class GetValueTypeCVRequestBody { + + public GetValueTypeCVRequestBody() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetValueTypeCVResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetValueTypeCVResponse", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetValueTypeCVResponseBody Body; + + public GetValueTypeCVResponse() { + } + + public GetValueTypeCVResponse(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetValueTypeCVResponseBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://his.cuahsi.org/his/1.1/ws/")] + internal partial class GetValueTypeCVResponseBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string GetValueTypeCVResult; + + public GetValueTypeCVResponseBody() { + } + + public GetValueTypeCVResponseBody(string GetValueTypeCVResult) { + this.GetValueTypeCVResult = GetValueTypeCVResult; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetVariableNameCVRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetVariableNameCV", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVariableNameCVRequestBody Body; + + public GetVariableNameCVRequest() { + } + + public GetVariableNameCVRequest(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVariableNameCVRequestBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute()] + internal partial class GetVariableNameCVRequestBody { + + public GetVariableNameCVRequestBody() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetVariableNameCVResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetVariableNameCVResponse", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVariableNameCVResponseBody Body; + + public GetVariableNameCVResponse() { + } + + public GetVariableNameCVResponse(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVariableNameCVResponseBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://his.cuahsi.org/his/1.1/ws/")] + internal partial class GetVariableNameCVResponseBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string GetVariableNameCVResult; + + public GetVariableNameCVResponseBody() { + } + + public GetVariableNameCVResponseBody(string GetVariableNameCVResult) { + this.GetVariableNameCVResult = GetVariableNameCVResult; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetVerticalDatumCVRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetVerticalDatumCV", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVerticalDatumCVRequestBody Body; + + public GetVerticalDatumCVRequest() { + } + + public GetVerticalDatumCVRequest(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVerticalDatumCVRequestBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute()] + internal partial class GetVerticalDatumCVRequestBody { + + public GetVerticalDatumCVRequestBody() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetVerticalDatumCVResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetVerticalDatumCVResponse", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVerticalDatumCVResponseBody Body; + + public GetVerticalDatumCVResponse() { + } + + public GetVerticalDatumCVResponse(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVerticalDatumCVResponseBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://his.cuahsi.org/his/1.1/ws/")] + internal partial class GetVerticalDatumCVResponseBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string GetVerticalDatumCVResult; + + public GetVerticalDatumCVResponseBody() { + } + + public GetVerticalDatumCVResponseBody(string GetVerticalDatumCVResult) { + this.GetVerticalDatumCVResult = GetVerticalDatumCVResult; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetSpatialReferencesRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetSpatialReferences", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpatialReferencesRequestBody Body; + + public GetSpatialReferencesRequest() { + } + + public GetSpatialReferencesRequest(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpatialReferencesRequestBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute()] + internal partial class GetSpatialReferencesRequestBody { + + public GetSpatialReferencesRequestBody() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetSpatialReferencesResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetSpatialReferencesResponse", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpatialReferencesResponseBody Body; + + public GetSpatialReferencesResponse() { + } + + public GetSpatialReferencesResponse(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpatialReferencesResponseBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://his.cuahsi.org/his/1.1/ws/")] + internal partial class GetSpatialReferencesResponseBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string GetSpatialReferencesResult; + + public GetSpatialReferencesResponseBody() { + } + + public GetSpatialReferencesResponseBody(string GetSpatialReferencesResult) { + this.GetSpatialReferencesResult = GetSpatialReferencesResult; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetUnitsRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetUnits", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetUnitsRequestBody Body; + + public GetUnitsRequest() { + } + + public GetUnitsRequest(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetUnitsRequestBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute()] + internal partial class GetUnitsRequestBody { + + public GetUnitsRequestBody() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetUnitsResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetUnitsResponse", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetUnitsResponseBody Body; + + public GetUnitsResponse() { + } + + public GetUnitsResponse(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetUnitsResponseBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://his.cuahsi.org/his/1.1/ws/")] + internal partial class GetUnitsResponseBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string GetUnitsResult; + + public GetUnitsResponseBody() { + } + + public GetUnitsResponseBody(string GetUnitsResult) { + this.GetUnitsResult = GetUnitsResult; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetSpeciationCVRequest { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetSpeciationCV", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpeciationCVRequestBody Body; + + public GetSpeciationCVRequest() { + } + + public GetSpeciationCVRequest(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpeciationCVRequestBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute()] + internal partial class GetSpeciationCVRequestBody { + + public GetSpeciationCVRequestBody() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + internal partial class GetSpeciationCVResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="GetSpeciationCVResponse", Namespace="http://his.cuahsi.org/his/1.1/ws/", Order=0)] + public HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpeciationCVResponseBody Body; + + public GetSpeciationCVResponse() { + } + + public GetSpeciationCVResponse(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpeciationCVResponseBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://his.cuahsi.org/his/1.1/ws/")] + internal partial class GetSpeciationCVResponseBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string GetSpeciationCVResult; + + public GetSpeciationCVResponseBody() { + } + + public GetSpeciationCVResponseBody(string GetSpeciationCVResult) { + this.GetSpeciationCVResult = GetSpeciationCVResult; + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + internal interface ODMCVServiceSoapChannel : HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + internal partial class ODMCVServiceSoapClient : System.ServiceModel.ClientBase, HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap { + + public ODMCVServiceSoapClient() { + } + + public ODMCVServiceSoapClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public ODMCVServiceSoapClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public ODMCVServiceSoapClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public ODMCVServiceSoapClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetCensorCodeCVResponse HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap.GetCensorCodeCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetCensorCodeCVRequest request) { + return base.Channel.GetCensorCodeCV(request); + } + + public string GetCensorCodeCV() { + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetCensorCodeCVRequest inValue = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetCensorCodeCVRequest(); + inValue.Body = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetCensorCodeCVRequestBody(); + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetCensorCodeCVResponse retVal = ((HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap)(this)).GetCensorCodeCV(inValue); + return retVal.Body.GetCensorCodeCVResult; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetDataTypeCVResponse HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap.GetDataTypeCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetDataTypeCVRequest request) { + return base.Channel.GetDataTypeCV(request); + } + + public string GetDataTypeCV() { + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetDataTypeCVRequest inValue = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetDataTypeCVRequest(); + inValue.Body = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetDataTypeCVRequestBody(); + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetDataTypeCVResponse retVal = ((HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap)(this)).GetDataTypeCV(inValue); + return retVal.Body.GetDataTypeCVResult; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetGeneralCategoryCVResponse HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap.GetGeneralCategoryCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetGeneralCategoryCVRequest request) { + return base.Channel.GetGeneralCategoryCV(request); + } + + public string GetGeneralCategoryCV() { + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetGeneralCategoryCVRequest inValue = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetGeneralCategoryCVRequest(); + inValue.Body = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetGeneralCategoryCVRequestBody(); + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetGeneralCategoryCVResponse retVal = ((HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap)(this)).GetGeneralCategoryCV(inValue); + return retVal.Body.GetGeneralCategoryCVResult; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleMediumCVResponse HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap.GetSampleMediumCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleMediumCVRequest request) { + return base.Channel.GetSampleMediumCV(request); + } + + public string GetSampleMediumCV() { + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleMediumCVRequest inValue = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleMediumCVRequest(); + inValue.Body = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleMediumCVRequestBody(); + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleMediumCVResponse retVal = ((HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap)(this)).GetSampleMediumCV(inValue); + return retVal.Body.GetSampleMediumCVResult; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleTypeCVResponse HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap.GetSampleTypeCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleTypeCVRequest request) { + return base.Channel.GetSampleTypeCV(request); + } + + public string GetSampleTypeCV() { + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleTypeCVRequest inValue = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleTypeCVRequest(); + inValue.Body = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleTypeCVRequestBody(); + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSampleTypeCVResponse retVal = ((HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap)(this)).GetSampleTypeCV(inValue); + return retVal.Body.GetSampleTypeCVResult; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetTopicCategoryCVResponse HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap.GetTopicCategoryCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetTopicCategoryCVRequest request) { + return base.Channel.GetTopicCategoryCV(request); + } + + public string GetTopicCategoryCV() { + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetTopicCategoryCVRequest inValue = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetTopicCategoryCVRequest(); + inValue.Body = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetTopicCategoryCVRequestBody(); + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetTopicCategoryCVResponse retVal = ((HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap)(this)).GetTopicCategoryCV(inValue); + return retVal.Body.GetTopicCategoryCVResult; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetValueTypeCVResponse HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap.GetValueTypeCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetValueTypeCVRequest request) { + return base.Channel.GetValueTypeCV(request); + } + + public string GetValueTypeCV() { + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetValueTypeCVRequest inValue = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetValueTypeCVRequest(); + inValue.Body = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetValueTypeCVRequestBody(); + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetValueTypeCVResponse retVal = ((HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap)(this)).GetValueTypeCV(inValue); + return retVal.Body.GetValueTypeCVResult; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVariableNameCVResponse HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap.GetVariableNameCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVariableNameCVRequest request) { + return base.Channel.GetVariableNameCV(request); + } + + public string GetVariableNameCV() { + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVariableNameCVRequest inValue = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVariableNameCVRequest(); + inValue.Body = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVariableNameCVRequestBody(); + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVariableNameCVResponse retVal = ((HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap)(this)).GetVariableNameCV(inValue); + return retVal.Body.GetVariableNameCVResult; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVerticalDatumCVResponse HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap.GetVerticalDatumCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVerticalDatumCVRequest request) { + return base.Channel.GetVerticalDatumCV(request); + } + + public string GetVerticalDatumCV() { + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVerticalDatumCVRequest inValue = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVerticalDatumCVRequest(); + inValue.Body = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVerticalDatumCVRequestBody(); + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetVerticalDatumCVResponse retVal = ((HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap)(this)).GetVerticalDatumCV(inValue); + return retVal.Body.GetVerticalDatumCVResult; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpatialReferencesResponse HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap.GetSpatialReferences(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpatialReferencesRequest request) { + return base.Channel.GetSpatialReferences(request); + } + + public string GetSpatialReferences() { + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpatialReferencesRequest inValue = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpatialReferencesRequest(); + inValue.Body = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpatialReferencesRequestBody(); + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpatialReferencesResponse retVal = ((HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap)(this)).GetSpatialReferences(inValue); + return retVal.Body.GetSpatialReferencesResult; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetUnitsResponse HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap.GetUnits(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetUnitsRequest request) { + return base.Channel.GetUnits(request); + } + + public string GetUnits() { + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetUnitsRequest inValue = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetUnitsRequest(); + inValue.Body = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetUnitsRequestBody(); + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetUnitsResponse retVal = ((HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap)(this)).GetUnits(inValue); + return retVal.Body.GetUnitsResult; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpeciationCVResponse HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap.GetSpeciationCV(HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpeciationCVRequest request) { + return base.Channel.GetSpeciationCV(request); + } + + public string GetSpeciationCV() { + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpeciationCVRequest inValue = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpeciationCVRequest(); + inValue.Body = new HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpeciationCVRequestBody(); + HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.GetSpeciationCVResponse retVal = ((HydroDesktop.Data.ODMCVServiceClient.ServiceReference.ODMCV.ODMCVServiceSoap)(this)).GetSpeciationCV(inValue); + return retVal.Body.GetSpeciationCVResult; + } + } +} diff --git a/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/Reference.svcmap b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/Reference.svcmap new file mode 100644 index 00000000..49aa4cf6 --- /dev/null +++ b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/Reference.svcmap @@ -0,0 +1,31 @@ + + + + false + true + + false + true + false + + + true + Auto + true + true + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/configuration.svcinfo b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/configuration.svcinfo new file mode 100644 index 00000000..fb2ca559 --- /dev/null +++ b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/configuration.svcinfo @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/configuration91.svcinfo b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/configuration91.svcinfo new file mode 100644 index 00000000..8c909cb2 --- /dev/null +++ b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/Service References/ServiceReference.ODMCV/configuration91.svcinfo @@ -0,0 +1,201 @@ + + + + + + + ODMCVServiceSoap + + + 00:01:00 + + + 00:01:00 + + + 00:10:00 + + + 00:01:00 + + + False + + + False + + + StrongWildcard + + + 65536 + + + 524288 + + + 65536 + + + Text + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 32 + + + 8192 + + + 16384 + + + 4096 + + + 16384 + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + System.Text.UTF8Encoding + + + Buffered + + + True + + + + + + + + + http://odm.usu.edu/ODMCV_1_1/ODMCV_1_1.asmx + + + + + + basicHttpBinding + + + ODMCVServiceSoap + + + ServiceReference.ODMCV.ODMCVServiceSoap + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + ODMCVServiceSoap + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.ODMCVServiceClient/app.config b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/app.config new file mode 100644 index 00000000..30804abb --- /dev/null +++ b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/app.config @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.ODMCVServiceClient/packages.config b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/packages.config new file mode 100644 index 00000000..037b768b --- /dev/null +++ b/Source/Core/HydroDesktop.Data.ODMCVServiceClient/packages.config @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.Shell/HydroDesktop.Data.Shell.csproj b/Source/Core/HydroDesktop.Data.Shell/HydroDesktop.Data.Shell.csproj new file mode 100644 index 00000000..43de5acc --- /dev/null +++ b/Source/Core/HydroDesktop.Data.Shell/HydroDesktop.Data.Shell.csproj @@ -0,0 +1,164 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {BE7E6470-D691-454D-9705-2B9E8F8C2EF1} + Exe + Properties + HydroDesktop.Data.Shell + HydroDesktop.Data.Shell + v4.0 + Client + 512 + ..\..\ + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + AnyCPU + bin\Debug\ + true + TRACE;DEBUG + bin\Debug\HydroDesktop.Data.Shell.XML + + + AnyCPU + bin\Release\ + true + true + TRACE + + + + ..\..\packages\DotSpatial.Analysis.1.6.1\lib\net40-Client\DotSpatial.Analysis.dll + False + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + 3.5 + + + + False + Default\System.Data.SQLite.dll + False + + + False + Default\System.Data.SQLite.Linq.dll + False + + + + + + + Properties\AssemblyInfoShared.cs + + + + + True + True + Resources.resx + + + + + + + + + + + + {CEB869C6-ED48-4846-9040-4E82AB58B86B} + HydroDesktop.Data + False + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.Shell/Program.cs b/Source/Core/HydroDesktop.Data.Shell/Program.cs new file mode 100644 index 00000000..2ea02b13 --- /dev/null +++ b/Source/Core/HydroDesktop.Data.Shell/Program.cs @@ -0,0 +1,18 @@ +using System; +using HydroDesktop.Database; + +namespace HydroDesktop.Data.Shell +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Updating Units..."); + var connectionString = SQLiteHelper.GetSQLiteConnectionString(Properties.Resources.PathToDefaultDatabase); + UnitConversions.UnitConverter.UpdateDefaultUnitsFromWeb(connectionString); + + Console.WriteLine("Finished. Press any key to continue..."); + Console.ReadKey(); + } + } +} diff --git a/Source/Core/HydroDesktop.Data.Shell/Properties/AssemblyInfo.cs b/Source/Core/HydroDesktop.Data.Shell/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..d18500d5 --- /dev/null +++ b/Source/Core/HydroDesktop.Data.Shell/Properties/AssemblyInfo.cs @@ -0,0 +1,22 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Data.Shell")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HydroDesktop.Data.Shell")] +[assembly: AssemblyCopyright("Copyright © 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("def3705a-00e8-4168-a819-43df6669681c")] \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.Shell/Properties/Resources.Designer.cs b/Source/Core/HydroDesktop.Data.Shell/Properties/Resources.Designer.cs new file mode 100644 index 00000000..a66c0064 --- /dev/null +++ b/Source/Core/HydroDesktop.Data.Shell/Properties/Resources.Designer.cs @@ -0,0 +1,72 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.261 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Data.Shell.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Data.Shell.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to ..\..\..\HydroDesktop.Data\Resources\defaultDatabase.sqlite. + /// + internal static string PathToDefaultDatabase { + get { + return ResourceManager.GetString("PathToDefaultDatabase", resourceCulture); + } + } + } +} diff --git a/Source/Core/HydroDesktop.Data.Shell/Properties/Resources.resx b/Source/Core/HydroDesktop.Data.Shell/Properties/Resources.resx new file mode 100644 index 00000000..f92e8e3e --- /dev/null +++ b/Source/Core/HydroDesktop.Data.Shell/Properties/Resources.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\..\..\HydroDesktop.Data\Resources\defaultDatabase.sqlite + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.Shell/app.config b/Source/Core/HydroDesktop.Data.Shell/app.config new file mode 100644 index 00000000..c3598bb7 --- /dev/null +++ b/Source/Core/HydroDesktop.Data.Shell/app.config @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data.Shell/packages.config b/Source/Core/HydroDesktop.Data.Shell/packages.config new file mode 100644 index 00000000..6e42468e --- /dev/null +++ b/Source/Core/HydroDesktop.Data.Shell/packages.config @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/AboutThisFolder.txt b/Source/Core/HydroDesktop.Data/AboutThisFolder.txt new file mode 100644 index 00000000..3a4a5e4a --- /dev/null +++ b/Source/Core/HydroDesktop.Data/AboutThisFolder.txt @@ -0,0 +1 @@ +This folder contains the source of the HydroDesktop.Data.dll which is the main library for accessing the database and communicating with web services. \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/ClassDiagrams/DataManagerClassDiagram.cd b/Source/Core/HydroDesktop.Data/ClassDiagrams/DataManagerClassDiagram.cd new file mode 100644 index 00000000..d95c10d8 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/ClassDiagrams/DataManagerClassDiagram.cd @@ -0,0 +1,95 @@ + + + + + + AAAgAAAAQAAAAAAAgAAAAAAKAAAAAEAAAAAAEAAAAAA= + Utilities\Config.cs + + + + + + + + + EQAQAIAIACAACBEgBAAEAEAGgAABCAAICAAABAAAAAA= + Utilities\DbOperations.cs + + + + + + + + + gACBAEABABAgAAASIAACAACAAAGgACIAAQAAgAQAAAA= + DataManager\ActualData\ActualDataManager.cs + + + + + + + + + + + + + + + IQAgAIAAAAAgAIAoAAAAAAAAQACABAAAAAAIgAAgAAI= + DataManager\ActualData\SeriesRepository.cs + + + + + + IAAAAIAAAAAAAAAAAAAAAAIAAAAABAAAAAAAAAAAAAA= + DataManager\ActualData\SiteRepository.cs + + + + + + IAAAEAAAABAAIAAAAEAAAAAAAAAAAAAAABAAAAAAAAA= + DataManager\Repository.cs + + + + + + + + + IAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAA= + DataManager\ActualData\ThemeRepository.cs + + + + + + IABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAA= + DataManager\ActualData\VariableRepository.cs + + + + + + gAAAgCQAAAAgAEAAAAAAAAgAAAEAAAAEAAAIAAAAQAA= + DataManager\MetadataCache\MetadataCacheManager.cs + + + + + + + + + BAAAAMABAiAABAACAAIAAAAAQAEAAEgAAAACAAAAAAA= + DataManager\NHibernateHelper.cs + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/ClassDiagrams/DataManagerClassDiagram.png b/Source/Core/HydroDesktop.Data/ClassDiagrams/DataManagerClassDiagram.png new file mode 100644 index 00000000..5c36f095 Binary files /dev/null and b/Source/Core/HydroDesktop.Data/ClassDiagrams/DataManagerClassDiagram.png differ diff --git a/Source/Core/HydroDesktop.Data/ClassDiagrams/ObjectModelClassDiagram.png b/Source/Core/HydroDesktop.Data/ClassDiagrams/ObjectModelClassDiagram.png new file mode 100644 index 00000000..8c94cca7 Binary files /dev/null and b/Source/Core/HydroDesktop.Data/ClassDiagrams/ObjectModelClassDiagram.png differ diff --git a/Source/Core/HydroDesktop.Data/ClassDiagrams/SeriesViewClassDiagram.cd b/Source/Core/HydroDesktop.Data/ClassDiagrams/SeriesViewClassDiagram.cd new file mode 100644 index 00000000..31778884 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/ClassDiagrams/SeriesViewClassDiagram.cd @@ -0,0 +1,51 @@ + + + + + + EAAIAAAAAAAAEAAAEAAAAAAAAAAAAAAIAAAAAAAAAAg= + Plugins\ISeriesView.cs + + + + + + AAAACAAAAFAKIAAAAAAAEACQAGAAAAAAAAAABABAAAA= + Plugins\IHydroPluginArgs.cs + + + + + + AAAAAAAAAgAABAAACAAAAAAAAAAoAAkAAGCAAAQAAAA= + Plugins\ISeriesSelector.cs + + + + + + AAMAAAAAAAAAAIAAAAAAAAAAAAAAAAAAACAAAAAAAIA= + Plugins\IHydroDatabase.cs + + + + + + AAAAAWAQAAAAAIAAAAAAAAQAAIEAAAAAAAAAAAQAgAA= + DataManagers\IRepositoryManager.cs + + + + + + + + EQAQAAAIAAAACBEgAAAEAEACgAABAAAACCAABAAAAAA= + Utilities\IHydroDbOperations.cs + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/BaseRepository.cs b/Source/Core/HydroDesktop.Data/Database/BaseRepository.cs new file mode 100644 index 00000000..86b8a875 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/BaseRepository.cs @@ -0,0 +1,152 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + /// + /// Base Repository + /// + abstract class BaseRepository : IRepository + where T : BaseEntity + { + #region Fields + + private readonly IHydroDbOperations _db; + + #endregion + + #region Constructors + + /// + /// Creates a new instance of the manager given a connection string + /// + /// The type of the database (SQLite, SQLServer, ...) + /// The connection string + protected BaseRepository(DatabaseTypes dbType, string connectionString) + { + //if it's a SQLite database - check if DB file exists + if (dbType == DatabaseTypes.SQLite) + { + CheckDbFile(connectionString); + } + + //initialize the DAO objects + _db = new DbOperations(connectionString, dbType); + } + + /// + /// Creates a new BaseRepository associated with the specified database + /// + /// The DbOperations object for handling the database + protected BaseRepository(IHydroDbOperations db) + { + //if it's a SQLite database - check if DB file exists + if (db.DatabaseType == DatabaseTypes.SQLite) + { + CheckDbFile(db.ConnectionString); + } + + _db = db; + } + + #endregion + + #region Properties + + /// + /// Database operations + /// + public IHydroDbOperations DbOperations + { + get { return _db; } + } + + /// + /// Table (Entity) name for which this repository used + /// + protected abstract string TableName { get; } + + /// + /// Name of primary key column + /// + protected virtual string PrimaryKeyName + { + get + { + throw new NotImplementedException("You should implement PrimaryKeyName for " + GetType()); + } + } + + protected static string LastRowIDSelect + { + get { return "; SELECT LAST_INSERT_ROWID();"; } + } + + #endregion + + #region Public methods + + public DataTable AsDataTable() + { + var table = DbOperations.LoadTable(TableName, string.Format("Select * from {0}", TableName)); + return table; + } + + public long GetNextID() + { + return DbOperations.GetNextID(TableName, PrimaryKeyName); + } + + public IList GetAll() + { + var dt = AsDataTable(); + var res = dt.Rows.Cast().Select(DataRowToEntity).ToList(); + return res; + } + + public T GetByKey(object key) + { + var table = DbOperations.LoadTable(TableName, + string.Format("select * from {0} where {1}={2} LIMIT 1", TableName, PrimaryKeyName, key)); + if (table.Rows.Count == 0) + return default(T); + return DataRowToEntity(table.Rows[0]); + } + + public bool Exists(object key) + { + var res = + DbOperations.ExecuteSingleOutput( + string.Format("select count(*) from {0} where {1}=?", TableName, PrimaryKeyName), key); + return Convert.ToInt64(res) > 0; + } + + #endregion + + #region Private Methods + + protected virtual T DataRowToEntity (DataRow row) + { + throw new NotImplementedException("You should implement DataRowToEntity for " + GetType()); + } + + /// + /// Checks if the SQLite db file exists. if it doesn't exist, + /// re-create it + /// + private void CheckDbFile(string sqLiteConnString) + { + string sqlitePath = SQLiteHelper.GetSQLiteFileName(sqLiteConnString); + if (!SQLiteHelper.DatabaseExists(sqlitePath)) + { + SQLiteHelper.CreateSQLiteDatabase(sqlitePath); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/CaseInsensitiveEqualityComparer.cs b/Source/Core/HydroDesktop.Data/Database/CaseInsensitiveEqualityComparer.cs new file mode 100644 index 00000000..f8486643 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/CaseInsensitiveEqualityComparer.cs @@ -0,0 +1,55 @@ +using System.Collections; +using System.Collections.Generic; +using System.Globalization; + +namespace HydroDesktop.Database +{ + /// + /// equality comparer (case insensitive) + /// + public class CaseInsensitiveEqualityComparer : IEqualityComparer + { + private readonly CaseInsensitiveComparer myComparer; + /// + /// creates a new instance of the comparer + /// + public CaseInsensitiveEqualityComparer () + { + myComparer = CaseInsensitiveComparer.DefaultInvariant; + } + /// + /// creates a culture specific instance of the comparer + /// + /// the CultureInfo parameter + public CaseInsensitiveEqualityComparer ( CultureInfo myCulture ) + { + myComparer = new CaseInsensitiveComparer ( myCulture ); + } + /// + /// alphabetic equality comparison of two strings + /// + /// string x + /// string y + /// true if the lowercase x and lowercase y are equal + public bool Equals ( string x, string y ) + { + if ( myComparer.Compare ( x, y ) == 0 ) + { + return true; + } + else + { + return false; + } + } + /// + /// hash code of the equality comparer + /// + /// object + /// true if lowercase strings have identical hash codes + public int GetHashCode ( string obj ) + { + return obj.ToLower ().GetHashCode (); + } + } +} diff --git a/Source/Core/HydroDesktop.Data/Database/DataFilesRepository.cs b/Source/Core/HydroDesktop.Data/Database/DataFilesRepository.cs new file mode 100644 index 00000000..6a1ad7e1 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/DataFilesRepository.cs @@ -0,0 +1,21 @@ +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + class DataFilesRepository : BaseRepository, IDataFilesRepository + { + public DataFilesRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + } + + public DataFilesRepository(IHydroDbOperations db) : base(db) + { + } + + protected override string TableName + { + get { return "DataFiles"; } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/DataReader.cs b/Source/Core/HydroDesktop.Data/Database/DataReader.cs new file mode 100644 index 00000000..b4ce8eba --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/DataReader.cs @@ -0,0 +1,64 @@ +using System; + +namespace HydroDesktop.Database +{ + /// + /// Auxiliary data reader class + /// + static class DataReader + { + /// + /// Convert object in data reader result to null or string + /// + /// the value in the DB + /// Null if the value in DB is NULL, string if the value is a valid string + public static string ReadString(object obj) + { + return obj != DBNull.Value ? (string) obj : string.Empty; + } + + /// + /// Convert object in data reader result to Integer + /// + /// the value in the DB + /// Null if the value in DB is NULL, + /// Integer if the value is a valid Integer number + public static int ReadInteger(object obj) + { + return obj != DBNull.Value ? Convert.ToInt32(obj) : 0; + } + + /// + /// Convert object in data reader result to Double + /// + /// the value in the DB + /// Null if the value in DB is NULL, + /// Double if the value in the DB is a valid Double number + public static double ReadDouble(object obj) + { + return obj != DBNull.Value ? Convert.ToDouble(obj) : 0.0; + } + + /// + /// Convert object in data reader result to boolean + /// + /// the value in the DB + /// Null if the value in DB is NULL, + /// a boolean value if the value in the DB is a valid boolean value + public static bool ReadBoolean(object obj) + { + return obj != DBNull.Value && Convert.ToBoolean(obj); + } + + /// + /// Convert object in data reader result to DateTime + /// + /// the value in the DB + /// Null if the value in DB is NULL, + /// DateTime if the value in the DB is a valid date time + public static DateTime ReadDateTime(object obj) + { + return obj != DBNull.Value ? Convert.ToDateTime(obj) : DateTime.MinValue; + } + } +} diff --git a/Source/Core/HydroDesktop.Data/Database/DataRowHelper.cs b/Source/Core/HydroDesktop.Data/Database/DataRowHelper.cs new file mode 100644 index 00000000..aa45982c --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/DataRowHelper.cs @@ -0,0 +1,14 @@ +using System.Data; + +namespace HydroDesktop.Database +{ + static class DataRowHelper + { + public static object GetDataOrNull(this DataRow row, string columnName) + { + if (row.Table != null && !row.Table.Columns.Contains(columnName)) + return null; + return row[columnName]; + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/DataSeriesRepository.cs b/Source/Core/HydroDesktop.Data/Database/DataSeriesRepository.cs new file mode 100644 index 00000000..6a783255 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/DataSeriesRepository.cs @@ -0,0 +1,754 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Diagnostics.Contracts; +using System.Globalization; +using System.Linq; +using System.Text; +using HydroDesktop.Common; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + /// + /// Repository for DataSeries + /// + class DataSeriesRepository : BaseRepository, IDataSeriesRepository + { + #region Fields + + private readonly ISitesRepository _sitesRepository; + private readonly IVariablesRepository _variablesRepository; + private readonly IMethodsRepository _methodsRepository; + private readonly IQualityControlLevelsRepository _qualityControlLevelsRepository; + private readonly ISourcesRepository _sourcesRepository; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + /// The type of the database (SQLite, SQLServer, ...) + /// The connection string + public DataSeriesRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + _sitesRepository = new SitesRepository(dbType, connectionString); + _variablesRepository = new VariablesRepository(dbType, connectionString); + _methodsRepository = new MethodsRepository(dbType, connectionString); + _qualityControlLevelsRepository = new QualityControlLevelsRepository(dbType, connectionString); + _sourcesRepository = new SourcesRepository(dbType, connectionString); + } + + /// + /// Create new instance of + /// + /// The DbOperations object for handling the database + public DataSeriesRepository(IHydroDbOperations db) + : base(db) + { + _sitesRepository = new SitesRepository(db); + _variablesRepository = new VariablesRepository(db); + _methodsRepository = new MethodsRepository(db); + _qualityControlLevelsRepository = new QualityControlLevelsRepository(db); + _sourcesRepository = new SourcesRepository(db); + } + + #endregion + + #region Public methods + + public double GetNoDataValueForSeriesVariable(long seriesID) + { + var query = + "SELECT NoDataValue FROM DataSeries LEFT JOIN Variables ON DataSeries.VariableID = Variables.VariableID WHERE SeriesID = " + + seriesID; + var result = DbOperations.ExecuteSingleOutput(query); + return Convert.ToDouble(result); + } + + public int GetVariableID(int seriesID) + { + var result = + DbOperations.ExecuteSingleOutput("SELECT VariableID FROM DataSeries WHERE SeriesID = " + seriesID); + return Convert.ToInt32(result); + } + + public DataTable GetDetailedSeriesTable() + { + var sql = DetailedSeriesSQLQuery(); + sql += " ORDER BY VariableName, SiteName"; + var table = DbOperations.LoadTable("SeriesListTable", sql); + return table; + } + + public DataTable GetSeriesTable(string seriesDataFilter) + { + var sql = DetailedSeriesSQLQuery() + + " WHERE " + seriesDataFilter; + + var table = DbOperations.LoadTable("SeriesListTable", sql); + return table; + } + + public DataTable GetSeriesTable(IEnumerable listOfSeriesID) + { + var seriesIDs = listOfSeriesID.ToArray(); + var sqlIn = new StringBuilder(); + for (var i = 0; i < seriesIDs.Length; i++) + { + sqlIn.Append(seriesIDs[i].ToString(CultureInfo.InvariantCulture)); + if (i < seriesIDs.Length - 1) + { + sqlIn.Append(","); + } + } + var filter = "DataThemes.SeriesID in (" + sqlIn + ")"; + return GetSeriesTable(filter); + } + + public DataTable GetSeriesTable(int seriesID) + { + return GetSeriesTable(string.Format("DataSeries.SeriesID={0}", seriesID)); + } + + public DataTable GetSeriesIDsWithNoDataValueTable(IEnumerable themeIDs) + { + var themeList = themeIDs.ToList(); + + var hasNulls = themeList.Any(value => !value.HasValue); + var notNullsFilter = new StringBuilder(); + const string separator = ", "; + foreach (var themeID in themeList.Where(themeID => themeID.HasValue)) + { + notNullsFilter.Append(themeID + separator); + } + if (notNullsFilter.Length > 0) + { + notNullsFilter.Remove(notNullsFilter.Length - separator.Length, separator.Length); + } + + var query = "SELECT v.NoDataValue, ds.SeriesID " + + "FROM DataSeries ds INNER JOIN variables v ON ds.VariableID = v.VariableID " + + "LEFT JOIN DataThemes t ON ds.SeriesID = t.SeriesID " + + "WHERE t.ThemeID in (" + notNullsFilter + ")"; + if (hasNulls) + { + query += " or t.ThemeID is null"; + } + + var dtSeries = DbOperations.LoadTable("series", query); + return dtSeries; + } + + public IList GetAllSeriesForSite(Site mySite) + { + if (mySite.Id <= 0) throw new ArgumentException("The site must have a valid ID"); + Contract.EndContractBlock(); + + var sqlQuery = DetailedSeriesSQLQuery(); + sqlQuery += string.Format(" WHERE DataSeries.SiteID = {0}", mySite.Id); + var tbl = DbOperations.LoadTable(sqlQuery); + return SeriesListFromTable(tbl); + } + + public IList GetAllSeries() + { + var seriesTable = GetDetailedSeriesTable(); + return SeriesListFromTable(seriesTable); + } + + public IList GetSeriesBySite(Site site) + { + if (site.Id <= 0) throw new ArgumentException("site must have a valid ID"); + + var filter = "DataSeries.SiteID = " + site.Id; + var seriesTable = GetSeriesTable(filter); + return SeriesListFromTable(seriesTable); + } + + public Tuple GetDatesRange(long seriesID) + { + var query = string.Format("select BeginDateTime, EndDateTime from DataSeries where SeriesID={0}", seriesID); + var list = DbOperations.Read(query, reader => + new Tuple(reader.GetDateTime(0), reader.GetDateTime(1))); + return list.FirstOrDefault(); + } + + protected override Series DataRowToEntity(DataRow row) + { + var series = new Series + { + Id = Convert.ToInt64(row["SeriesID"]), + BeginDateTime = Convert.ToDateTime(row["BeginDateTime"]), + EndDateTime = Convert.ToDateTime(row["EndDateTime"]), + BeginDateTimeUTC = Convert.ToDateTime(row["BeginDateTimeUTC"]), + EndDateTimeUTC = Convert.ToDateTime(row["EndDatetimeUTC"]), + IsCategorical = Convert.ToBoolean(row["IsCategorical"]), + LastCheckedDateTime = Convert.ToDateTime(row["LastCheckedDateTime"]), + UpdateDateTime = Convert.ToDateTime(row["UpdateDateTime"]), + Subscribed = Convert.ToBoolean(row["Subscribed"]), + ValueCount = Convert.ToInt32(row["ValueCount"]), + Site = _sitesRepository.GetByKey(row["SiteID"]), + Variable = _variablesRepository.GetByKey(row["VariableID"]), + Method = _methodsRepository.GetByKey(row["MethodID"]), + Source = _sourcesRepository.GetByKey(row["SourceID"]), + QualityControlLevel =_qualityControlLevelsRepository.GetByKey(row["QualityControlLevelID"]) + }; + + return series; + } + + public bool ExistsSeries(Site site, Variable variable) + { + var query = string.Format("select count(*) from DataSeries where SiteID={0} and VariableID={1}", site.Id, + variable.Id); + var res = DbOperations.ExecuteSingleOutput(query); + return Convert.ToInt64(res) > 0; + } + + public void DeleteSeries(long seriesID, long themeId) + { + var _db = DbOperations; + + var sqlTheme2 = "SELECT count(ThemeID) from DataThemes where ThemeID = " + themeId; + var sqlTheme = "SELECT ThemeID from DataThemes where SeriesID = " + seriesID; + var sqlDeleteSeriesThemeDescription = "DELETE FROM DataThemeDescriptions WHERE ThemeID = " + themeId; + + var tblTheme = _db.LoadTable("tblTheme", sqlTheme); + + + //if the series belongs to multiple themes, remove link from theme + if (tblTheme.Rows.Count != 1) + { + _db.ExecuteNonQuery("DELETE FROM DataThemes WHERE SeriesID=? and ThemeId=?", new object[] { seriesID, themeId }); + var themesCount = Convert.ToInt32(_db.ExecuteSingleOutput(sqlTheme2)); + if (themesCount == 0) + { + _db.ExecuteNonQuery(sqlDeleteSeriesThemeDescription); + } + return; + } + + // otherwise, delete the series + var seriesToDel = GetByKey(seriesID); + + //SQL Queries + var sqlSite = "SELECT count(SiteID) from DataSeries where SiteID = " + seriesToDel.Site.Id; + var sqlVariable = "SELECT count(VariableID) from DataSeries where VariableID = " + seriesToDel.Variable.Id; + var sqlSource = "SELECT count(SourceID) from DataSeries where SourceID = " + seriesToDel.Source.Id; + var sqlMethod = "SELECT count(MethodID) from DataSeries where MethodID = " + seriesToDel.Method.Id; + var sqlQuality = "SELECT count(QualityControlLevelID) from DataSeries where QualityControlLevelID = " + seriesToDel.QualityControlLevel.Id; + + //SQL Delete Commands + var sqlDeleteValues = "DELETE FROM DataValues WHERE SeriesID = " + seriesID; + var sqlDeleteSeries = "DELETE FROM DataSeries WHERE SeriesID = " + seriesID; + var sqlDeleteSeriesTheme = "DELETE FROM DataThemes WHERE SeriesID = " + seriesID; + + var sqlDeleteSite = "DELETE FROM Sites WHERE SiteID = " + seriesToDel.Site.Id; + var sqlDeleteVariable = "DELETE FROM Variables WHERE VariableID = " + seriesToDel.Variable.Id; + var sqlDeleteMethod = "DELETE FROM Methods WHERE MethodID = " + seriesToDel.Method.Id; + var sqlDeleteSource = "DELETE FROM Sources WHERE SourceID = " + seriesToDel.Source.Id; + var sqlDeleteQuality = "DELETE FROM QualityControlLevels WHERE QualityControlLevelID = " + seriesToDel.QualityControlLevel.Id; + + //Begin Transaction + using (var conn = _db.CreateConnection()) + { + conn.Open(); + + using (var tran = conn.BeginTransaction()) + { + //delete the site + var sitesCount = Convert.ToInt32(_db.ExecuteSingleOutput(sqlSite)); + if (sitesCount == 1) + { + using (var cmdDeleteSite = conn.CreateCommand()) + { + cmdDeleteSite.CommandText = sqlDeleteSite; + cmdDeleteSite.ExecuteNonQuery(); + } + } + + //delete the variable + var variablesCount = Convert.ToInt32(_db.ExecuteSingleOutput(sqlVariable)); + if (variablesCount == 1) + { + using (var cmdDeleteVariable = conn.CreateCommand()) + { + cmdDeleteVariable.CommandText = sqlDeleteVariable; + cmdDeleteVariable.ExecuteNonQuery(); + } + } + + //delete the method + var methodsCount = Convert.ToInt32(_db.ExecuteSingleOutput(sqlMethod)); + if (methodsCount == 1) + { + using (var cmdDeleteMethod = conn.CreateCommand()) + { + cmdDeleteMethod.CommandText = sqlDeleteMethod; + cmdDeleteMethod.ExecuteNonQuery(); + } + } + + //delete the source + var sourcesCount = Convert.ToInt32(_db.ExecuteSingleOutput(sqlSource)); + if (sourcesCount == 1) + { + using (var cmdDeleteSource = conn.CreateCommand()) + { + cmdDeleteSource.CommandText = sqlDeleteSource; + cmdDeleteSource.ExecuteNonQuery(); + } + } + + //delete the quality control level + var qualitiesCount = Convert.ToInt32(_db.ExecuteSingleOutput(sqlQuality)); + if (qualitiesCount == 1) + { + using (var cmdDeleteQuality = conn.CreateCommand()) + { + cmdDeleteQuality.CommandText = sqlDeleteQuality; + cmdDeleteQuality.ExecuteNonQuery(); + } + } + + //delete the data values + using (var cmdDeleteValues = conn.CreateCommand()) + { + cmdDeleteValues.CommandText = sqlDeleteValues; + cmdDeleteValues.ExecuteNonQuery(); + } + + //finally delete the series + using (var cmdDeleteSeries = conn.CreateCommand()) + { + cmdDeleteSeries.CommandText = sqlDeleteSeries; + cmdDeleteSeries.ExecuteNonQuery(); + } + using (var cmdDeleteSeriesTheme = conn.CreateCommand()) + { + cmdDeleteSeriesTheme.CommandText = sqlDeleteSeriesTheme; + cmdDeleteSeriesTheme.ExecuteNonQuery(); + } + + + //commit transaction + tran.Commit(); + } + + var themesCount = Convert.ToInt32(_db.ExecuteSingleOutput(sqlTheme2)); + if (themesCount == 0) + { + _db.ExecuteNonQuery(sqlDeleteSeriesThemeDescription); + } + } + } + + public Tuple GetDateTimes(long seriesID) + { + var begin = Convert.ToDateTime(DbOperations.ExecuteSingleOutput("Select BeginDateTime FROM DataSeries WHERE SeriesID = " + seriesID)); + var end = Convert.ToDateTime(DbOperations.ExecuteSingleOutput("Select EndDateTime FROM DataSeries WHERE SeriesID = " + seriesID)); + return new Tuple(begin, end); + } + + public DataTable GetUnitSiteVarForFirstSeries(long seriesID) + { + var sqlQuery = string.Format("SELECT UnitsName, SiteName, VariableName FROM DataSeries " + + "INNER JOIN Variables ON Variables.VariableID = DataSeries.VariableID " + + "INNER JOIN Units ON Variables.VariableUnitsID = Units.UnitsID " + + "INNER JOIN Sites ON Sites.SiteID = DataSeries.SiteID WHERE SeriesID = {0} limit 1", + seriesID); + var seriesNameTable = DbOperations.LoadTable("table", sqlQuery); + return seriesNameTable; + } + + public void UpdateDataSeriesFromDataValues(long seriesID) + { + var SQLstring = "SELECT LocalDateTime FROM DataValues WHERE SeriesID = " + seriesID + + " ORDER BY LocalDateTime ASC"; + var BeginDateTime = Convert.ToDateTime(DbOperations.ExecuteSingleOutput(SQLstring), + CultureInfo.InvariantCulture); + + SQLstring = "SELECT LocalDateTime FROM DataValues WHERE SeriesID = " + seriesID + + " ORDER BY LocalDateTime DESC"; + var EndDateTime = Convert.ToDateTime(DbOperations.ExecuteSingleOutput(SQLstring), + CultureInfo.InvariantCulture); + SQLstring = "SELECT DateTimeUTC FROM DataValues WHERE SeriesID = " + seriesID + + " ORDER BY LocalDateTime ASC"; + var BeginDateTimeUTC = Convert.ToDateTime(DbOperations.ExecuteSingleOutput(SQLstring), + CultureInfo.InvariantCulture); + SQLstring = "SELECT DateTimeUTC FROM DataValues WHERE SeriesID = " + seriesID + + " ORDER BY LocalDateTime DESC"; + var EndDateTimeUTC = Convert.ToDateTime(DbOperations.ExecuteSingleOutput(SQLstring), + CultureInfo.InvariantCulture); + SQLstring = "SELECT COUNT(*) FROM DataValues WHERE SeriesID = " + seriesID; + var ValueCount = DbOperations.ExecuteSingleOutput(SQLstring); + + SQLstring = "UPDATE DataSeries SET BeginDateTime = '" + BeginDateTime.ToString("yyyy-MM-dd HH:mm:ss") + "', "; + SQLstring += "EndDateTime = '" + EndDateTime.ToString("yyyy-MM-dd HH:mm:ss") + "', "; + SQLstring += "BeginDateTimeUTC = '" + BeginDateTimeUTC.ToString("yyyy-MM-dd HH:mm:ss") + "', "; + SQLstring += "EndDateTimeUTC = '" + EndDateTimeUTC.ToString("yyyy-MM-dd HH:mm:ss") + "', "; + SQLstring += "ValueCount = " + ValueCount + " WHERE SeriesID = " + seriesID; + DbOperations.ExecuteNonQuery(SQLstring); + } + + public string GetQualityControlLevelCode (long seriesID) + { + var query = + "SELECT QualityControlLevelCode FROM DataSeries AS d LEFT JOIN QualityControlLevels AS q ON (d.QualityControlLevelID = q.QualityControlLevelID) WHERE SeriesID = " + + seriesID; + var res = DbOperations.ExecuteSingleOutput(query); + return Convert.ToString(res); + } + + public long GetQualityControlLevelID(long seriesID) + { + var res = + DbOperations.ExecuteSingleOutput("SELECT QualityControlLevelID FROM DataSeries WHERE SeriesID = " + + seriesID); + return Convert.ToInt64(res); + } + + public IList GetDataValuesIDs(long seriesID) + { + var query = "SELECT ValueID FROM DataValues WHERE SeriesID = " + seriesID; + var res = DbOperations.Read(query, + r => r.GetInt64(0)); + return res; + } + + public int InsertNewSeries(long sourceSeriesID, long variableID, long methodID, long qualityControlLevelID) + { + var newSeriesID = DbOperations.GetNextID("DataSeries", "SeriesID"); + var dt = DbOperations.LoadTable("DataSeries", "SELECT * FROM DataSeries WHERE SeriesID = " + sourceSeriesID); + var row = dt.Rows[0]; + + //Making the INSERT SQL string for the new data series + var sqlString = new StringBuilder(); + sqlString.Append("INSERT INTO DataSeries(SeriesID, SiteID, VariableID, IsCategorical, MethodID, SourceID, "); + sqlString.Append("QualityControlLevelID, BeginDateTime, EndDateTime, BeginDateTimeUTC, EndDateTimeUTC, "); + sqlString.Append("ValueCount, CreationDateTime, Subscribed, UpdateDateTime, LastcheckedDateTime) Values ("); + //SeriesID value + sqlString.Append(newSeriesID + ", "); + //SiteID value + sqlString.Append(Convert.ToInt64(row[1]) + ", "); + //VariableID values + sqlString.Append(variableID + ", "); + //IsCategorical value + sqlString.Append(row[3].ToString() == "True" ? "1, " : "0, "); + //MethodID value + sqlString.Append(methodID + ", "); + //SourceID value + sqlString.Append(Convert.ToInt64(row[5]) + ", "); + //QualityControlLevelID value + sqlString.Append(qualityControlLevelID + ", "); + //BeginDateTime, EndDateTime, BeginDateTimeUTC and EndDateTimeUTC values + for(var i =7; i<=10; i++) + { + var tempstring = Convert.ToDateTime(row[i]).ToString("yyyy-MM-dd HH:mm:ss"); + sqlString.Append("'" + tempstring + "', "); + } + var todaystring = DateTime.Today.ToString("yyyy-MM-dd HH:mm:ss"); + //ValueCount, CreationDateTime, Subscribed, UpdateDateTime and LastcheckedDateTime values + sqlString.Append(row[11] + ", '" + todaystring + "', 0, '" + todaystring + "','" + todaystring + + "')"); + //Execute the SQL string + DbOperations.ExecuteNonQuery(sqlString.ToString()); + + return newSeriesID; + } + + public void DeriveInsertAggregateDataValues(DataTable dt, + long newSeriesID, + DateTime currentdate, DateTime lastdate, DeriveAggregateMode mode, + DeriveComputeMode computeMode, + double nodatavalue, IProgressHandler progressHandler) + { + const string insertQuery = + "INSERT INTO DataValues(ValueID, SeriesID, DataValue, ValueAccuracy, LocalDateTime, UtcOffset, DateTimeUtc, OffsetValue, OffsetTypeID, CensorCode, QualifierID, SampleID, FileID) " + + "VALUES ({0}, {1}, {2}, {3}, '{4}', {5}, '{6}', {7}, {8}, '{9}', {10}, {11}, {12});"; + + const int chunkLength = 400; + var index = 0; + + while (currentdate <= lastdate) + { + // Save values by chunks + + var newValueID = DbOperations.GetNextID("DataValues", "ValueID"); + var query = new StringBuilder("BEGIN TRANSACTION; "); + + for (var i = 0; i <= chunkLength - 1; i++) + { + var newvalue = 0.0; + var sqlString = string.Empty; + var UTC = 0.0; + + switch (mode) + { + case DeriveAggregateMode.Daily: + sqlString = "LocalDateTime >= '" + currentdate.ToString(CultureInfo.InvariantCulture) + "' AND LocalDateTime <= '" + + currentdate.AddDays(1).AddMilliseconds(-1).ToString(CultureInfo.InvariantCulture) + "' AND DataValue <> " + + nodatavalue.ToString(CultureInfo.InvariantCulture); + break; + case DeriveAggregateMode.Monthly: + sqlString = "LocalDateTime >= '" + currentdate.ToString(CultureInfo.InvariantCulture) + "' AND LocalDateTime <= '" + + currentdate.AddMonths(1).AddMilliseconds(-1).ToString(CultureInfo.InvariantCulture) + "' AND DataValue <> " + + nodatavalue.ToString(CultureInfo.InvariantCulture); + break; + case DeriveAggregateMode.Quarterly: + sqlString = "LocalDateTime >= '" + currentdate.ToString(CultureInfo.InvariantCulture) + + "' AND LocalDateTime <= '" + + currentdate.AddMonths(3).AddMilliseconds(-1).ToString( + CultureInfo.InvariantCulture) + "' AND DataValue <> " + + nodatavalue.ToString(CultureInfo.InvariantCulture); + break; + } + try + { + switch (computeMode) + { + case DeriveComputeMode.Maximum: + newvalue = Convert.ToDouble(dt.Compute("Max(DataValue)", sqlString)); + break; + case DeriveComputeMode.Minimum: + newvalue = Convert.ToDouble(dt.Compute("MIN(DataValue)", sqlString)); + break; + case DeriveComputeMode.Average: + newvalue = Convert.ToDouble(dt.Compute("AVG(DataValue)", sqlString)); + break; + case DeriveComputeMode.Sum: + newvalue = Convert.ToDouble(dt.Compute("Sum(DataValue)", sqlString)); + break; + } + + UTC = Convert.ToDouble(dt.Compute("AVG(UTCOffset)", sqlString)); + } + catch (Exception) + { + newvalue = nodatavalue; + } + + query.AppendFormat(insertQuery, + newValueID + i, + newSeriesID, + newvalue, + 0, + currentdate.ToString("yyyy-MM-dd HH:mm:ss"), + UTC.ToString(CultureInfo.InvariantCulture), + currentdate.AddHours(UTC).ToString("yyyy-MM-dd HH:mm:ss"), + "NULL", + "NULL", + "nc", + "NULL", + "NULL", + "NULL"); + query.AppendLine(); + + switch (mode) + { + case DeriveAggregateMode.Daily: + currentdate = currentdate.AddDays(1); + break; + case DeriveAggregateMode.Monthly: + currentdate = currentdate.AddMonths(1); + break; + case DeriveAggregateMode.Quarterly: + currentdate = currentdate.AddMonths(3); + break; + + } + + if (currentdate > lastdate) break; + index = index + 1; + + //Report progress + progressHandler.ReportProgress(index - 1, null); + } + + query.AppendLine("COMMIT;"); + DbOperations.ExecuteNonQuery(query.ToString()); + + progressHandler.ReportProgress(index - 1, null); + } + } + + public void DeriveInsertDataValues(double A, double B, double C, double D, double E, double F, + DataTable dt, + long newSeriesID, long sourceSeriesID, bool isAlgebraic, IProgressHandler progressHandler) + { + const int chunkLength = 400; + var nodatavalue = GetNoDataValueForSeriesVariable(newSeriesID); + + const string insertQuery = + "INSERT INTO DataValues(ValueID, SeriesID, DataValue, ValueAccuracy, LocalDateTime, UtcOffset, DateTimeUtc, OffsetValue, OffsetTypeID, CensorCode, QualifierID, SampleID, FileID) " + + "VALUES ({0}, {1}, {2}, {3}, '{4}', {5}, '{6}', {7}, {8}, '{9}', {10}, {11}, {12});"; + + var index = 0; + while (index != dt.Rows.Count - 1) + { + //Save values by chunks + + var newValueID = DbOperations.GetNextID("DataValues", "ValueID"); + var query = new StringBuilder("BEGIN TRANSACTION; "); + + + for (var i = 0; i < chunkLength; i++) + { + // Calculating value + var newvalue = 0.0; + if (isAlgebraic) + { + var currentvalue = Convert.ToDouble(dt.Rows[index]["DataValue"]); + if (currentvalue != nodatavalue) + { + + //NOTE:Equation = Fx ^ 5 + Ex ^ 4 + Dx ^ 3 + Cx ^ 2 + Bx + A + newvalue = (F*(Math.Pow(currentvalue, 5))) + (E*(Math.Pow(currentvalue, 4))) + + (D*(Math.Pow(currentvalue, 3))) + (C*(Math.Pow(currentvalue, 2))) + + (B*currentvalue) + + A; + newvalue = Math.Round(newvalue, 5); + } + else + { + newvalue = nodatavalue; + } + + } + else + { + newvalue = Convert.ToDouble(dt.Rows[index]["DataValue"]); + } + + var row = dt.Rows[index]; + query.AppendFormat(insertQuery, + newValueID + i, + newSeriesID, + newvalue, + row["ValueAccuracy"].ToString() == "" ? "NULL" : row["ValueAccuracy"].ToString(), + Convert.ToDateTime(row["LocalDateTime"]).ToString("yyyy-MM-dd HH:mm:ss"), + row["UTCOffset"], + Convert.ToDateTime(row["DateTimeUTC"]).ToString("yyyy-MM-dd HH:mm:ss"), + row["OffsetValue"].ToString() == "" ? "NULL" : row["OffsetValue"].ToString(), + row["OffsetTypeID"].ToString() == "" ? "NULL" : row["OffsetTypeID"].ToString(), + row["CensorCode"], + row["QualifierID"].ToString() == "" ? "NULL" : row["QualifierID"].ToString(), + row["SampleID"].ToString() == "" ? "NULL" : row["SampleID"].ToString(), + row["FileID"].ToString() == "" ? "NULL" : row["FileID"].ToString()); + query.AppendLine(); + + if (index == dt.Rows.Count - 1) break; + index = index + 1; + } + + query.AppendLine("COMMIT;"); + DbOperations.ExecuteNonQuery(query.ToString()); + + progressHandler.ReportProgress(index, null); + } + } + + + #endregion + + #region Private methods + + private string DetailedSeriesSQLQuery() + { + const string sql = "SELECT DataSeries.SeriesID, " + + "DataThemes.ThemeID, DataSeries.SiteID, DataSeries.VariableID, DataSeries.MethodID, DataSeries.SourceID, DataSeries.QualityControlLevelID, " + + "SiteName, SiteCode, Latitude, Longitude, " + + "VariableName, VariableCode, DataType, ValueType, Speciation, SampleMedium, " + + "TimeSupport, GeneralCategory, NoDataValue, " + + "units1.UnitsName as 'VariableUnitsName', units2.UnitsName as 'TimeUnitsName', " + + "MethodDescription, " + + "SourceDescription, Organization, Citation, " + + "QualityControlLevelCode, Definition as 'QualityControlLevelDefinition', " + + "BeginDateTime, EndDateTime, BeginDateTimeUTC, EndDateTimeUTC, ValueCount, ThemeName " + + "FROM DataSeries " + + "LEFT JOIN DataThemes ON DataThemes.SeriesID = DataSeries.SeriesID " + + "LEFT JOIN DataThemeDescriptions ON DataThemes.ThemeID = DataThemeDescriptions.ThemeID " + + "LEFT JOIN Sites ON DataSeries.SiteID = Sites.SiteID " + + "LEFT JOIN Variables ON DataSeries.VariableID = Variables.VariableID " + + "LEFT JOIN Units units1 ON Variables.VariableUnitsID = units1.UnitsID " + + "LEFT JOIN Units units2 ON Variables.TimeUnitsID = units2.UnitsID " + + "LEFT JOIN Methods ON DataSeries.MethodID = Methods.MethodID " + + "LEFT JOIN Sources ON DataSeries.SourceID = Sources.SourceID " + + "LEFT JOIN QualityControlLevels ON DataSeries.QualityControlLevelID = QualityControlLevels.QualityControlLevelID "; + + return sql; + } + + private IList SeriesListFromTable(DataTable seriesTable) + { + return (from DataRow row in seriesTable.Rows select CreateSeriesFromSeriesRow(row)).ToList(); + } + + private Series CreateSeriesFromSeriesRow(DataRow row) + { + var st = new Site(); + st.Id = (long)row["SiteID"]; + st.Latitude = (double)row["Latitude"]; + st.Longitude = (double)row["Longitude"]; + st.Name = (string)row["SiteName"]; + st.Code = (string)row["SiteCode"]; + + var timeUnit = Unit.UnknownTimeUnit; + timeUnit.Name = (string)row["TimeUnitsName"]; + + var variableUnit = Unit.Unknown; + variableUnit.Abbreviation = (string)row["VariableUnitsName"]; + + var v = new Variable(); + v.Id = (long)row["VariableID"]; + v.Name = (string)row["VariableName"]; + v.Code = (string)row["VariableCode"]; + v.DataType = (string)row["DataType"]; + v.ValueType = (string)row["ValueType"]; + v.Speciation = row["Speciation"] == DBNull.Value ? null : (string)row["Speciation"]; + v.SampleMedium = row["SampleMedium"] == DBNull.Value ? null : (string)row["SampleMedium"]; + v.TimeSupport = row["TimeSupport"] == DBNull.Value ? 0 : (double)row["TimeSupport"]; + v.VariableUnit = variableUnit; + v.TimeUnit = timeUnit; + v.GeneralCategory = row["GeneralCategory"] == DBNull.Value ? null : (string)row["GeneralCategory"]; + v.NoDataValue = (double)row["NoDataValue"]; + + var m = new Method {Description = (string) row["MethodDescription"]}; + + var src = Source.Unknown; + src.Description = (string)row["SourceDescription"]; + src.Citation = (string)row["Citation"]; + src.Organization = (string)row["Organization"]; + + var qc = QualityControlLevel.Unknown; + qc.Code = (string)row["QualityControlLevelCode"]; + qc.Definition = (string)row["QualityControlLevelDefinition"]; + + var ser = new Series(st, v, m, qc, src); + ser.BeginDateTime = Convert.ToDateTime(row["BeginDateTime"]); + ser.EndDateTime = Convert.ToDateTime(row["EndDateTime"]); + ser.BeginDateTimeUTC = Convert.ToDateTime(row["BeginDateTimeUTC"]); + ser.EndDateTimeUTC = Convert.ToDateTime(row["EndDateTimeUTC"]); + ser.ValueCount = Convert.ToInt32(row["ValueCount"]); + ser.Id = (long)row["SeriesID"]; + + return ser; + } + + #endregion + + protected override string TableName + { + get { return "DataSeries"; } + } + + protected override string PrimaryKeyName + { + get { return "SeriesID"; } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/DataServicesRepository.cs b/Source/Core/HydroDesktop.Data/Database/DataServicesRepository.cs new file mode 100644 index 00000000..48dbc974 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/DataServicesRepository.cs @@ -0,0 +1,21 @@ +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + class DataServicesRepository: BaseRepository, IDataServicesRepository + { + public DataServicesRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + } + + public DataServicesRepository(IHydroDbOperations db) : base(db) + { + } + + protected override string TableName + { + get { return "DataServices"; } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/DataThemesRepository.cs b/Source/Core/HydroDesktop.Data/Database/DataThemesRepository.cs new file mode 100644 index 00000000..6b50a9dd --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/DataThemesRepository.cs @@ -0,0 +1,152 @@ +using System; +using System.ComponentModel; +using System.Data; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + /// + /// Repository for DataThemes + /// + class DataThemesRepository : BaseRepository, IDataThemesRepository + { + #region Constants + + private const string OTHER_DATA_SERIES = "Other Data Series"; + + #endregion + + #region Constructors + + public DataThemesRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + } + + public DataThemesRepository(IHydroDbOperations db) + : base(db) + { + } + + #endregion + + #region Public methods + + public DataTable GetThemesForAllSeries() + { + var dtThemes = DbOperations.LoadTable(TableName, "SELECT ThemeID, ThemeName from DataThemeDescriptions"); + if (Int32.Parse(DbOperations.ExecuteSingleOutput("Select count(*) from DataSeries " + + "Where SeriesID not in (Select SeriesID from DataThemes)"). + ToString()) > 0) + { + dtThemes.Rows.Add(DBNull.Value, OTHER_DATA_SERIES); + } + return dtThemes; + } + + public DataTable GetThemesTableForThemeManager(long? themeID) + { + var sql = + "SELECT src.Organization as 'DataSource', ds.SeriesID, " + + "s.SiteName as 'SiteName', s.Latitude as 'Latitude', s.Longitude as 'Longitude', s.SiteCode as 'SiteCode', " + + "v.VariableName as 'VarName', v.DataType as 'DataType', v.SampleMedium as 'SampleMed', " + + "v.VariableCode as 'VarCode', u.UnitsName as 'Units', " + + "v.VariableCode as 'ServiceCode', " + + "m.MethodDescription as 'Method', qc.Definition as 'QCLevel', " + + "ds.BeginDateTime as 'StartDate', ds.EndDateTime as 'EndDate', ds.ValueCount as 'ValueCount', " + + "null as 'ServiceURL' " + + "FROM DataSeries ds " + + "LEFT JOIN DataThemes dt on dt.SeriesID = ds.SeriesID " + + "LEFT JOIN Sites s on ds.SiteID = s.SiteID " + + "LEFT JOIN Variables v on ds.VariableID = v.VariableID " + + "LEFT JOIN Units u on u.UnitsID = v.VariableUnitsID " + + "LEFT JOIN Methods m on ds.MethodID = m.MethodID " + + "LEFT JOIN Sources src on ds.SourceID = src.SourceID " + + "LEFT JOIN QualityControlLevels qc on ds.QualityControlLevelID = qc.QualityControlLevelID " + + (themeID.HasValue ? "WHERE dt.ThemeID = " + themeID : "WHERE dt.ThemeID is null"); + + var table = DbOperations.LoadTable("ThemeTable", sql); + return table; + } + + public int? GetID(string themeName) + { + const string sql = "SELECT ThemeID from DataThemeDescriptions WHERE ThemeName =?"; + var objThemeId = DbOperations.ExecuteSingleOutput(sql, themeName); + if (objThemeId == null || objThemeId == DBNull.Value) return null; + return Convert.ToInt32(objThemeId); + } + + /// + /// Delete a theme - a background worker and progress bar is used + /// + /// The themeID (this needs to be a valid ID) + /// The background worker component + /// True - on success, otherwise false. + public bool DeleteTheme(long themeID, BackgroundWorker worker = null) + { + var sqlTheme = "SELECT SeriesID FROM DataThemes where ThemeID = " + themeID; + var sqlDeleteTheme = "DELETE FROM DataThemeDescriptions WHERE ThemeID = " + themeID; + var sqlDeleteTheme2 = "DELETE FROM DataThemes WHERE ThemeID = " + themeID; + + var tblSeries = DbOperations.LoadTable("tblSeries", sqlTheme); + var seriesRepository = RepositoryFactory.Instance.Get(); + for (var i = 0; i < tblSeries.Rows.Count; i++) + { + // Check cancellation + if (worker != null && worker.CancellationPending) + { + return false; + } + + var seriesRow = tblSeries.Rows[i]; + var seriesID = Convert.ToInt32(seriesRow["SeriesID"]); + seriesRepository.DeleteSeries(seriesID, themeID); + + // Progress report + if (worker != null && worker.WorkerReportsProgress) + { + var percent = (int)(((i + 1) / (float)tblSeries.Rows.Count) * 100); + var userState = "Deleting series " + (i + 1) + " of " + tblSeries.Rows.Count + "..."; + worker.ReportProgress(percent, userState); + } + } + + // Delete the actual theme + DbOperations.ExecuteNonQuery(sqlDeleteTheme2); + DbOperations.ExecuteNonQuery(sqlDeleteTheme); + + return true; + } + + public void InsertNewTheme(long seriesID, long newSeriesID) + { + var SQLstring = "SELECT ThemeID FROM DataThemes WHERE SeriesID = " + seriesID; + var ThemeID = Convert.ToInt64(DbOperations.ExecuteSingleOutput(SQLstring)); + + SQLstring = "INSERT INTO DataThemes(ThemeID, SeriesID) VALUES ("; + SQLstring += ThemeID + "," + newSeriesID + ")"; + + DbOperations.ExecuteNonQuery(SQLstring); + } + + #endregion + + protected override Theme DataRowToEntity(DataRow row) + { + var newTheme = new Theme + { + Name = Convert.ToString(row["ThemeName"]), + Description = Convert.ToString(row["ThemeDescription"]), + Id = Convert.ToInt64(row["ThemeID"]), + DateCreated = row["DateCreated"] != DBNull.Value? Convert.ToDateTime(row["DateCreated"]) : DateTime.MinValue, + }; + return newTheme; + } + + protected override string TableName + { + get { return "DataThemeDescriptions"; } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/DataValuesRepository.cs b/Source/Core/HydroDesktop.Data/Database/DataValuesRepository.cs new file mode 100644 index 00000000..dc454923 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/DataValuesRepository.cs @@ -0,0 +1,378 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Globalization; +using System.Text; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + /// + /// Repository for DataValues + /// + class DataValuesRepository : BaseRepository, IDataValuesRepository + { + #region Constructors + + public DataValuesRepository(DatabaseTypes dbType, string connectionString) + : base(dbType, connectionString) + { + } + + public DataValuesRepository(IHydroDbOperations db) + : base(db) + { + } + + #endregion + + #region Public methods + + public double? AggregateValues(long seriesID, string aggregateFunction, DateTime minDate, DateTime maxDate) + { + var query = + string.Format( + "select {0}(DataValue) from {1} main " + + "LEFT JOIN DataSeries ds ON ds.SeriesID = main.SeriesID " + + "LEFT JOIN Variables v ON v.VariableID = ds.VariableID " + + "WHERE DateTimeUTC >= '{2}' and DateTimeUTC <= '{3}' and main.SeriesID = {4} and DataValue <> v.NoDataValue ", + aggregateFunction, TableName, + minDate.ToString("yyyy-MM-dd HH:mm:ss"), maxDate.ToString("yyyy-MM-dd HH:mm:ss"), + seriesID); + var value = DbOperations.ExecuteSingleOutput(query); + return value != DBNull.Value ? (double?) Convert.ToDouble(value, CultureInfo.InvariantCulture) : null; + } + + public double CalculatePercAvailable(long seriesID, DateTime minDate, DateTime maxDate) + { + var query = + string.Format( + "select count(DataValue) from {0} main " + + "LEFT JOIN DataSeries ds ON ds.SeriesID = main.SeriesID " + + "LEFT JOIN Variables v ON v.VariableID = ds.VariableID " + + "WHERE DateTimeUTC >= '{1}' and DateTimeUTC <= '{2}' and main.SeriesID = {3} and DataValue <> v.NoDataValue ", + TableName, + minDate.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture), maxDate.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture), + seriesID); + var hasValues = Convert.ToDouble(DbOperations.ExecuteSingleOutput(query), CultureInfo.InvariantCulture); + + query = + string.Format( + "select count(DataValue) from {0} main " + + "WHERE DateTimeUTC >= '{1}' and DateTimeUTC <= '{2}' and main.SeriesID = {3} ", + TableName, + minDate.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture), maxDate.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture), + seriesID); + var totalValues = Convert.ToDouble(DbOperations.ExecuteSingleOutput(query), CultureInfo.InvariantCulture); + + var value = hasValues*100.0/totalValues; + return value; + } + + public DataTable GetAll(long seriesID) + { + var query = "SELECT * FROM DataValues WHERE SeriesID = " + seriesID; + var result = DbOperations.LoadTable(TableName, query); + return result; + } + + public DataTable GetAllOrderByLocalDateTime(long seriesID) + { + var query = "SELECT * FROM DataValues WHERE SeriesID = " + seriesID + " ORDER BY LocalDateTime"; + var result = DbOperations.LoadTable(TableName, query); + return result; + } + + public IList GetValues(long seriesID) + { + var list = DbOperations.Read("SELECT DataValue FROM DataValues WHERE SeriesID = " + seriesID, + r => r.GetDouble(0)); + return list; + } + + public IList GetValuesOrderByLocalDateTime(long seriesID, DateTime firstDate, DateTime lastDate) + { + var list = DbOperations.Read("SELECT DataValue FROM DataValues WHERE SeriesID = " + seriesID + + " AND LocalDateTime >=@p0 AND LocalDateTime <= @p1 ORDER BY LocalDateTime", + r => r.GetDouble(0), new object[] {firstDate, lastDate} ); + return list; + } + + public IList GetTimesOrderByLocalDateTime(long seriesID, DateTime firstDate, DateTime lastDate) + { + var list = DbOperations.Read("SELECT LocalDateTime FROM DataValues WHERE SeriesID = " + seriesID + + " AND LocalDateTime >=@p0 AND LocalDateTime <= @p1 ORDER BY LocalDateTime", + r => r.GetDateTime(0), new object[] { firstDate, lastDate} ); + return list; + } + + public DataTable GetTableForExportFromTimeSeriesPlot(long seriesID) + { + var query = + "SELECT ds.SeriesID, s.SiteName, v.VariableName, dv.DataValue, dv.LocalDateTime, U.UnitsName, S.Citation " + + "FROM DataSeries ds, Sites s, Variables v, DataValues dv, Units U, Sources S " + + "WHERE v.VariableID = ds.VariableID AND s.SiteID = ds.SiteID AND dv.SeriesID = ds.SeriesID AND U.UnitsID = v.VariableUnitsID AND ds.SeriesID = " + + seriesID + " AND S.SourceID = ds.SourceID "; + return DbOperations.LoadTable(TableName, query); + } + + public DataTable GetTableForExport(long seriesID, double? noDataValue = null, string dateColumn = null, DateTime? firstDate = null, DateTime? lastDate = null) + { + var sql = + "SELECT ds.SeriesID, s.SiteName, v.VariableName, dv.LocalDateTime, dv.DataValue, U1.UnitsName As VarUnits, v.DataType, s.SiteID, s.SiteCode, v.VariableID, v.VariableCode, " + + "S.Organization, S.SourceDescription, S.SourceLink, S.Citation, v.ValueType, v.TimeSupport, U2.UnitsName As TimeUnits, v.IsRegular, v.NoDataValue, " + + "dv.UTCOffset, dv.DateTimeUTC, s.Latitude, s.Longitude, dv.ValueAccuracy, dv.CensorCode, m.MethodDescription, q.QualityControlLevelCode, v.SampleMedium, v.GeneralCategory, " + + "OffsetValue, OT.OffsetDescription, Un.UnitsAbbreviation as OffsetUnits, QL.QualifierCode " + + "FROM DataSeries ds, Sites s, Variables v, DataValues dv, Units U1, Units U2, Methods m, QualityControlLevels q, Sources S " + + "LEFT JOIN OffsetTypes OT on DV.OffsetTypeId = OT.OffsetTypeId " + + "LEFT JOIN Units Un on Un.UnitsID = OT.OffsetUnitsId " + + "LEFT JOIN Qualifiers QL on QL.QualifierID = dv.QualifierID " + + "WHERE v.VariableID = ds.VariableID " + + "AND s.SiteID = ds.SiteID " + + "AND m.MethodID = ds.MethodID " + + "AND q.QualityControlLevelID = ds.QualityControlLevelID " + + "AND S.SourceID = ds.SourceID " + + "AND dv.SeriesID = ds.SeriesID " + + "AND U1.UnitsID = v.VariableUnitsID " + + "AND U2.UnitsID = v.TimeUnitsID " + + "AND ds.SeriesID = " + seriesID; + if (noDataValue.HasValue) + { + sql += " AND dv.DataValue != " + noDataValue; + } + + var cmd = DbOperations.CreateCommand(sql); + + // Append date range filter + if (!string.IsNullOrEmpty(dateColumn) && + firstDate.HasValue && lastDate.HasValue) + { + cmd.CommandText += string.Format(" AND ({0} >= @p1 and {0} <= @p2)", dateColumn); + var startDateParameter = DbOperations.AddParameter(cmd, "@p1", DbType.DateTime); + var endDateParemater = DbOperations.AddParameter(cmd, "@p2", DbType.DateTime); + + startDateParameter.Value = firstDate.Value; + endDateParemater.Value = lastDate.Value; + } + + var tbl = DbOperations.LoadTable("values", cmd); + + return tbl; + } + + public DataTable GetTableForGraphView(long seriesID, double nodatavalue, DateTime startDate, DateTime endDate) + { + var strStartDate = startDate.ToString("yyyy-MM-dd HH:mm:ss"); + var strEndDate = endDate.ToString("yyyy-MM-dd HH:mm:ss"); + var strNoDataValue = nodatavalue.ToString(CultureInfo.InvariantCulture); + + var query = + "SELECT DataValue, LocalDateTime, CensorCode, strftime('%m', LocalDateTime) as DateMonth, strftime('%Y', LocalDateTime) as DateYear FROM DataValues WHERE (SeriesID = " + + +seriesID + ") AND (DataValue <> " + strNoDataValue + ") AND (LocalDateTime between '" + strStartDate + + "' AND '" + strEndDate + "') ORDER BY LocalDateTime"; + var table = DbOperations.LoadTable("DataValues", query); + return table; + } + + public double GetMaxValue(long seriesID) + { + var query = "SELECT MAX(DataValue) FROM DataValues WHERE SeriesID = " + seriesID; + var res = DbOperations.ExecuteSingleOutput(query); + return Convert.ToDouble(res); + } + + public double GetMinValue(long seriesID) + { + var query = "SELECT MIN(DataValue) FROM DataValues WHERE SeriesID = " + seriesID; + var res = DbOperations.ExecuteSingleOutput(query); + return Convert.ToDouble(res); + } + + public DataTable GetTableForEditView(long seriesID) + { + var query = "SELECT ValueID, SeriesID, DataValue, ValueAccuracy, LocalDateTime, UTCOffset, " + + "DateTimeUTC, QualifierCode, OffsetValue, OffsetTypeID, CensorCode, SampleID, " + + "FileID, 0 as Other FROM DataValues AS d LEFT JOIN Qualifiers AS q ON (d.QualifierID = q.QualifierID) " + + "WHERE SeriesID = " + seriesID; + var table = DbOperations.LoadTable(TableName, query); + return table; + } + + public long GetCountForAllFieldsInSequence(IList seriesIDs) + { + var whereClause = GetWhereClauseForIds(seriesIDs); + var countQuery = "select count(ValueID) from DataValues WHERE " + whereClause; + var res = DbOperations.ExecuteSingleOutput(countQuery); + return Convert.ToInt64(res); + } + + public long GetCountForJustValuesInParallel(IList seriesIDs) + { + var whereClause = GetWhereClauseForIds(seriesIDs); + var countQuery = + string.Format("select count(*) from (select distinct LocalDateTime from DataValues where {0}) A", + whereClause); + var res = DbOperations.ExecuteSingleOutput(countQuery); + return Convert.ToInt64(res); + } + + public DataTable GetTableForAllFieldsInSequence(IList seriesIDs, int valuesPerPage, int currentPage) + { + var whereClause = GetWhereClauseForIds(seriesIDs); + var dataQuery = + "SELECT ValueID, SeriesID, DataValue, LocalDateTime, UTCOffset, CensorCode, OffsetValue, OT.OffsetDescription, Un.UnitsAbbreviation as OffsetUnits FROM DataValues DV " + + "LEFT JOIN OffsetTypes OT on DV.OffsetTypeId = OT.OffsetTypeId " + + "LEFT JOIN Units Un on Un.UnitsID = OT.OffsetUnitsId " + + "WHERE " + + whereClause; + var limitQuery = string.Format("{0} limit {1} offset {2}", dataQuery, valuesPerPage, + currentPage*valuesPerPage); + + var table = DbOperations.LoadTable(limitQuery); + return table; + } + + public DataTable GetTableForJustValuesInParallel(IList seriesIDs, int valuesPerPage, int currentPage) + { + /* + Example of builded query: + + select + A.LocalDateTime as DateTime, + (select DV1.DataValue from DataValues DV1 where DV1.LocalDateTime = A.LocalDateTime and DV1.seriesId = 1 limit 1) as D1, + (select DV2.DataValue from DataValues DV2 where DV2.LocalDateTime = A.LocalDateTime and DV2.seriesId = 2 limit 1) as D2 + from + (select distinct LocalDateTime from DataValues where seriesId in (1,2)) A + order by LocalDateTime + + */ + + + var whereClause = GetWhereClauseForIds(seriesIDs); + var dataQueryBuilder = new StringBuilder(); + dataQueryBuilder.Append("select A.LocalDateTime as DateTime"); + foreach (var id in seriesIDs) + { + dataQueryBuilder.AppendFormat( + ", (select DV{0}.DataValue from DataValues DV{0} where DV{0}.LocalDateTime = A.LocalDateTime and DV{0}.seriesId = {0} limit 1) as D{0}", + id); + } + dataQueryBuilder.AppendFormat(" from (select distinct LocalDateTime from DataValues where {0}) A", + whereClause); + dataQueryBuilder.Append(" order by LocalDateTime"); + + var dataQuery = dataQueryBuilder.ToString(); + + var table = DbOperations.LoadTable(string.Format("{0} limit {1} offset {2}", dataQuery, valuesPerPage, currentPage * valuesPerPage)); + return table; + } + + public void DeleteById(long valueID) + { + DbOperations.ExecuteNonQuery("DELETE FROM DataValues WHERE ValueID =" + valueID); + } + + public void UpdateValuesForEditView(DataTable table) + { + const string updateFormatString = "UPDATE DataValues SET DataValue = {0}, QualifierID = {1} WHERE ValueID = {2}; "; + const string insertFormatString = "INSERT INTO DataValues (ValueID,SeriesID,DataValue,ValueAccuracy,LocalDateTime,UTCOffset,DateTimeUTC, " + + "OffsetValue, OffsetTypeID, CensorCode, QualifierID, SampleID, FileID) VALUES (" + + "{0},{1},{2},'{3}','{4}',{5},'{6}',{7},{8},'{9}',{10},{11},{12}) ;"; + + var sqLstring2 = new StringBuilder(); + sqLstring2.Append("BEGIN TRANSACTION; "); + + var qualifierRepo = RepositoryFactory.Instance.Get(); + for (int i = 0; i < table.Rows.Count; i++) + { + var row = table.Rows[i]; + var valueID = Convert.ToInt64(row["ValueID"]); + var other = Convert.ToInt64(row["Other"]); + if (other != 0) + { + //Deleteing point + if (other == -1) + { + sqLstring2.AppendFormat("DELETE FROM DataValues WHERE ValueID = {0}; ", valueID); + } + else if (other == 1) + { + if ( + String.IsNullOrEmpty( + DbOperations.ExecuteSingleOutput( + "Select ValueID FROM DataValues WHERE ValueID = " + valueID).ToString())) + { + sqLstring2.AppendFormat(insertFormatString, + row[0], + row[1], + Convert.ToString(row[2], CultureInfo.InvariantCulture), + row[3] == DBNull.Value ? "NULL" : row[3], + Convert.ToDateTime(row[4]).ToString("yyyy-MM-dd HH:mm:ss", + CultureInfo.InvariantCulture), + row[5], + Convert.ToDateTime(row[6]).ToString("yyyy-MM-dd HH:mm:ss", + CultureInfo.InvariantCulture), + row[8] == DBNull.Value + ? "NULL" + : Convert.ToString(row[8], CultureInfo.InvariantCulture), + row[9] == DBNull.Value ? "NULL" : row[9], + row[10] == DBNull.Value ? "NULL" : row[10], + row[7] == DBNull.Value + ? "NULL" + : qualifierRepo.FindByCodeOrCreate(row[7].ToString()).Id. + ToString(CultureInfo.InvariantCulture), + row[11] == DBNull.Value ? "NULL" : row[11], + row[12] == DBNull.Value ? "NULL" : row[12]); + } + } + else if (other == 2) + { + sqLstring2.AppendFormat(updateFormatString, + Convert.ToString(row["DataValue"], CultureInfo.InvariantCulture), + qualifierRepo.FindByCodeOrCreate(row["QualifierCode"].ToString()).Id, + valueID); + } + } + } + + if (!sqLstring2.ToString().TrimEnd().EndsWith(";")) + sqLstring2.Append(";"); + + + sqLstring2.Append("COMMIT;"); + DbOperations.ExecuteNonQuery(sqLstring2.ToString()); + } + + #endregion + + private static string GetWhereClauseForIds(ICollection seriesIDs) + { + string whereClause; + if (seriesIDs.Count == 0) + { + whereClause = "1 = 0"; + } + else + { + var sb = new StringBuilder("SeriesID in ("); + foreach (var id in seriesIDs) + sb.AppendFormat(" {0},", id); + sb.Remove(sb.Length - 1, 1); + sb.Append(")"); + whereClause = sb.ToString(); + } + return whereClause; + } + + protected override string TableName + { + get { return "DataValues"; } + } + + protected override string PrimaryKeyName + { + get { return "ValueID"; } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/DbOperations.cs b/Source/Core/HydroDesktop.Data/Database/DbOperations.cs new file mode 100644 index 00000000..8f87d402 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/DbOperations.cs @@ -0,0 +1,875 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Common; +using System.Data.SqlClient; +using System.Diagnostics; +using System.Globalization; +using System.Text; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Database +{ + /// + /// Commonly used database operations + /// + public class DbOperations : IHydroDbOperations + { + private readonly DbProviderFactory dbFactory; + + private readonly string _connectionString; + private string _errorMessage = ""; + + /// + /// Creates a new instance of the dbOperations object. + /// + /// the connection string + /// the type of the DBMS (SQLite, SQLServer) + public DbOperations(string connectionString, DatabaseTypes databaseType) + { + _connectionString = connectionString; + if (databaseType == DatabaseTypes.SQLite) + { + dbFactory = new System.Data.SQLite.SQLiteFactory(); + } + else if (databaseType == DatabaseTypes.SQLServer) + { + dbFactory = SqlClientFactory.Instance; + } + } + + /// + /// The database provider factory currently used + /// + public DbProviderFactory DbFactory + { + get { return dbFactory; } + } + + /// + /// Error message displayed in case of unsuccessful connection + /// + public string ErrorMessage + { + get { return _errorMessage; } + } + + /// + /// Get the database connection string + /// + public string ConnectionString + { + get { return _connectionString; } + } + /// + /// Database type (supported type is SQLite) + /// + public DatabaseTypes DatabaseType + { + get + { + if (dbFactory is System.Data.SQLite.SQLiteFactory) + { + return DatabaseTypes.SQLite; + } + if (dbFactory is SqlClientFactory) + { + return DatabaseTypes.SQLServer; + } + return DatabaseTypes.Unknown; + } + } + + + + /// + /// Test if we are able to connect to the database specified in the constructor + /// + /// true if connection successful, false otherwise + public bool TestConnection() + { + DbConnection connection1 = CreateConnection(); + + try + { + connection1.Open(); + const string commandText = "SELECT * FROM DataThemeDescriptions"; + var da = dbFactory.CreateDataAdapter(); + da.SelectCommand = dbFactory.CreateCommand(); + da.SelectCommand.CommandText = commandText; + da.SelectCommand.Connection = connection1; + var dt = new DataTable {TableName = "table"}; + da.Fill(dt); + + return true; + } + catch (Exception ex) + { + _errorMessage = "Failed Test Connection connectionstring{" + connection1.ConnectionString + "} error" + ex.Message; + + return false; + } + finally + { + connection1.Close(); + connection1.Dispose(); + } + } + + /// + /// Creates a new instance of a database connection + /// + /// the database connection + public DbConnection CreateConnection() + { + DbConnection conn = dbFactory.CreateConnection(); + conn.ConnectionString = _connectionString; + return conn; + } + + /// + /// Creates a new instance of a database command + /// + /// the SQL query + /// the database command + public DbCommand CreateCommand(string txtQuery) + { + DbCommand cmd = dbFactory.CreateCommand(); + cmd.Connection = CreateConnection(); + cmd.CommandText = txtQuery; + return cmd; + } + + /// + /// Creates a new command parameter with the specified data type + /// + /// the parameter data type + /// The parameter object + public DbParameter CreateParameter(DbType parameterType) + { + DbParameter param = dbFactory.CreateParameter(); + param.DbType = parameterType; + param.Direction = ParameterDirection.Input; + return param; + } + + /// + /// Creates a new instance of a database command parameter with the specified name + /// and data type + /// + /// the parameter name + /// the parameter data type + /// the database command parameter + public DbParameter CreateParameter(string name, DbType parameterType) + { + DbParameter param = dbFactory.CreateParameter(); + param.ParameterName = name; + param.DbType = parameterType; + param.Direction = ParameterDirection.Input; + return param; + } + + /// + /// Creates a new dB command parameter with the specified name and value + /// + /// + /// + /// + public DbParameter CreateParameter(DbType parameterType, object value) + { + DbParameter param = dbFactory.CreateParameter(); + //param.ParameterName = name; + param.DbType = parameterType; + param.Direction = ParameterDirection.Input; + param.Value = value; + return param; + } + + /// + /// Adds a parameter to an existing command + /// + public DbParameter AddParameter(DbCommand cmd, string parameterName, DbType parameterType) + { + DbParameter param = dbFactory.CreateParameter(); + param.ParameterName = parameterName; + param.DbType = parameterType; + param.Direction = ParameterDirection.Input; + cmd.Parameters.Add(param); + return param; + } + + /// + /// Executes a SQL statement without returning any results. + /// This is used for INSERT or DELETE statements. + /// + /// the SQL string + public void ExecuteNonQuery(string sqlString) + { + using (var conn = CreateConnection()) + { + conn.Open(); + using (var cmd = conn.CreateCommand()) + { + cmd.CommandText = sqlString; + cmd.ExecuteNonQuery(); + } + } + } + + /// + /// Executes a SQL command without returning any results. + /// This is used for INSERT or DELETE commands. + /// + /// the database command + public void ExecuteNonQuery(DbCommand cmd) + { + cmd.Connection.Open(); + cmd.ExecuteNonQuery(); + cmd.Connection.Close(); + } + + /// + /// Executes an SQL command without returning any results. + /// This is used for INSERT or DELETE commands. The parameter values + /// can be supplied in the parameter array + /// + /// the SQL query (parameters should be marked as + /// ? or @) + /// the values of the command parameters + public void ExecuteNonQuery(string txtQuery, object[] parameterValues) + { + DbConnection conn = CreateConnection(); + conn.Open(); + + DbCommand cmd = conn.CreateCommand(); + cmd.CommandText = txtQuery; + + for (int p = 0; p < parameterValues.Length; p++) + { + DbParameter param = dbFactory.CreateParameter(); + param.Value = parameterValues[p]; + param.DbType = GetDbTypeFromValue(parameterValues[p]); + param.ParameterName = "@p" + p.ToString(CultureInfo.InvariantCulture); + cmd.Parameters.Add(param); + } + + cmd.ExecuteNonQuery(); + conn.Close(); + cmd.Dispose(); + conn.Dispose(); + } + + private DbType GetDbTypeFromValue(object value) + { + if (value is long) + return DbType.Int64; + if (value is int) + return DbType.Int32; + if (value is double) + return DbType.Double; + if (value is DateTime) + return DbType.DateTime; + if (value is string) + return DbType.String; + return DbType.String; + } + + /// + /// Executes a batch SQL insert / update statement. The SQL string should have parameters + /// marked as '?'. Number of parameters needs to be the same as the parameterValues[][] + /// 2d-array row length + /// + /// the sql insert statement(should use parameters) + /// the values of sql parameters + /// The array of new primary keys + private void ExecuteBatchSQL(string sqlString, object[][] parameterValues) + { + if (parameterValues.Length == 0) return; + + //create the command + DbCommand cmd1 = null; + DbConnection conn = CreateConnection(); + + try + { + + conn.Open(); + cmd1 = conn.CreateCommand(); + cmd1.CommandText = sqlString; + int numParameters = parameterValues[0].Length; + + for (int i = 0; i < numParameters; i++) + { + cmd1.Parameters.Add(dbFactory.CreateParameter()); + } + + //execute the command for each item + for (int r = 0; r < parameterValues.Length; r++) + { + for (int c = 0; c < parameterValues[r].Length; c++) + { + cmd1.Parameters[c].Value = parameterValues[r][c]; + } + cmd1.ExecuteNonQuery(); + } + } + finally + { + if (cmd1 != null) cmd1.Dispose(); + conn.Close(); + conn.Dispose(); + } + } + + /// + /// Executes a multiple-row insert or update operation (similar to DataAdapter.Update()) + /// + /// the sql string (should be an insert or an update command) + /// the indices of data rows to be inserted or updated + /// the primary key column name + /// the local copy of the data table + private void ExecuteBatchSQL(string sqlString, IList rowIndices, string primaryKey, DataTable table) + { + if (rowIndices.Count == 0) return; + + //create the command + using (DbConnection conn = CreateConnection()) + { + conn.Open(); + + using (DbTransaction tran = conn.BeginTransaction()) + { + bool isInsertCommand = false; + if (sqlString.ToLower().StartsWith("insert")) + { + isInsertCommand = true; + sqlString += ";select last_insert_rowid()"; + } + + //get the indices of parameters to be inserted or updated + int[] columnIndices; + if (isInsertCommand) + { + columnIndices = new int[table.Columns.Count - 1]; + for (int c = 0; c < table.Columns.Count - 1; c++) + { + columnIndices[c] = c + 1; + } + } + else + { + columnIndices = new int[table.Columns.Count]; + for (int c = 0; c < table.Columns.Count - 1; c++) + { + columnIndices[c] = c + 1; + } + columnIndices[columnIndices.Length - 1] = table.Columns.IndexOf(primaryKey); + } + + + using (DbCommand cmd1 = conn.CreateCommand()) + { + //cmd1 = conn.CreateCommand(); + cmd1.CommandText = sqlString; + int numParameters = columnIndices.Length; + + for (int i = 0; i < numParameters; i++) + { + cmd1.Parameters.Add(dbFactory.CreateParameter()); + } + + //assign the correct parameter types + for (int c = 0; c < columnIndices.Length; c++) + { + int colIndex = columnIndices[c]; + if (table.Columns[colIndex].DataType == typeof(DateTime)) + { + cmd1.Parameters[c].DbType = DbType.DateTime; + } + } + + //execute the command for each item + for (int r = 0; r < rowIndices.Count; r++) + { + int rowIndex = rowIndices[r]; + + //populate command parameter values + for (int c = 0; c < columnIndices.Length; c++) + { + int columnIndex = columnIndices[c]; + + cmd1.Parameters[c].Value = table.Rows[rowIndex][columnIndex]; + } + + if (isInsertCommand) + { + //if it's an insert command then the value of the primary key + //in the in-memory data table gets modified. + table.Rows[rowIndex][primaryKey] = cmd1.ExecuteScalar(); + } + else + { + //if it's an update command then nothing gets modified in the in-memory data table + cmd1.ExecuteNonQuery(); + } + } + } + + //commit the transaction + tran.Commit(); + + }//end the transaction + }//dispose the connection + } + + /// + /// Generates an SQL Insert command for the given table name. + /// We assume that the first column is the identifier column. + /// + /// name of the database table + /// corresponding DataTable object + /// the insert sql string (parametric query) + public string GenerateInsertCommand(string tableName, DataTable table) + { + var sql = new StringBuilder("insert into " + tableName + " ("); + var sqlValues = new StringBuilder(" values("); + + for(int c = 1; c < table.Columns.Count - 1; c++) + { + sql.Append(table.Columns[c].ColumnName); + sql.Append(","); + sqlValues.Append("?,"); + } + sql.Append(table.Columns[table.Columns.Count - 1]); + sql.Append(") "); + sqlValues.Append("?)"); + sql.Append(sqlValues); + return sql.ToString(); + } + + /// + /// Generates an SQL Update command for the given table name. + /// + /// name of the database table + /// name of the primary key column + /// corresponding DataTable object + /// the update sql string (parametric query) + private string GenerateUpdateCommand(string tableName, string primaryKeyName, DataTable table) + { + string sqlUpdate = "update " + tableName + " set "; + + for(int c = 1; c < table.Columns.Count - 1; c++) + { + sqlUpdate += table.Columns[c].ColumnName + "=?, "; + } + sqlUpdate += table.Columns[table.Columns.Count - 1] + "=? where " + primaryKeyName + "=?"; + + return sqlUpdate; + } + /// + /// Creates an unique query command object + /// + /// table name + /// primary key name + /// list of unique columnhs + /// the DB command object that can be used for running the query + private string GenerateUniqueQueryCommand(string tableName, string primaryKeyName, IList uniqueFields) + { + string uniqueSQL = "select " + primaryKeyName + " from " + tableName + " where "; + + for (int i = 0; i < uniqueFields.Count - 1; i++) + { + uniqueSQL += uniqueFields[i] + "=? AND "; + } + uniqueSQL += uniqueFields[uniqueFields.Count - 1] + "=?"; + + return uniqueSQL; + } + + + /// + /// Inserts the content of the data table back to database. If a row already exists that has + /// the unique fields, then an update is done instead of an insert. The primary key (ID) values are modified + /// to reflect their values in the database + /// + /// name of the DataTable + /// the name of the primary key column + /// In-memory Datatable. This table must have exactly same structure as the database table + /// an array of all field names that define an unique key ('business key') + public void SaveTable(string tableName, DataTable table, string primaryKey, string[] uniqueFields) + { + int nr = table.Rows.Count; + + //create an 'insert command' + string sqlInsert = GenerateInsertCommand(tableName, table); + string sqlUpdate = GenerateUpdateCommand(tableName, primaryKey, table); + + //integer array with new values of primary keys + int[] primaryKeys = new int[nr]; + int numRowsToInsert = 0; + int numRowsToUpdate = 0; + + if (uniqueFields != null) + { + using (DbConnection conn = CreateConnection()) + { + //to select unique id's + string sqlUnique = GenerateUniqueQueryCommand(tableName, primaryKey, uniqueFields); + + //for each row in the table find if there is an existing database row with the same + //unique identifier + conn.Open(); + + using (DbCommand uniqueCmd = conn.CreateCommand()) + { + uniqueCmd.CommandText = sqlUnique; + uniqueCmd.Connection = conn; + foreach (string t in uniqueFields) + { + var param = dbFactory.CreateParameter(); + param.ParameterName = t; + uniqueCmd.Parameters.Add(param); + } + + for (int r = 0; r < nr; r++) + { + for (int p = 0; p < uniqueFields.Length; p++) + { + uniqueCmd.Parameters[p].Value = table.Rows[r][uniqueFields[p]]; + } + + object uniqueID = uniqueCmd.ExecuteScalar(); + if (uniqueID != null) + { + primaryKeys[r] = Convert.ToInt32(uniqueID); + //change the ID value in the table + table.Rows[r][primaryKey] = primaryKeys[r]; + numRowsToUpdate++; + } + else + { + primaryKeys[r] = 0; + numRowsToInsert++; + } + } + } //dispose the command + } //dispose the Connection + + } + else + { + for (int r = 0; r < nr; r++) + { + primaryKeys[r] = 0; + numRowsToInsert++; + } + } + + var insertRowIndices = new List(numRowsToInsert); + var updateRowIndices = new List(numRowsToUpdate); + + for (int r=0; r 0) + { + updateRowIndices.Add(r); + } + else + { + insertRowIndices.Add(r); + } + } + + //execute the batch insert command + if (numRowsToInsert > 0) + { + ExecuteBatchSQL(sqlInsert, insertRowIndices, primaryKey, table); + } + + //execute the batch update command + if (numRowsToUpdate > 0) + { + ExecuteBatchSQL(sqlUpdate, updateRowIndices, primaryKey, table); + } + } + + /// + /// Creates a new database command with an array of parameters + /// + /// the SQL string + /// the number of command parameters + /// a new instance of a database command object + public DbCommand CreateCommand(string sqlString, int numParameters) + { + DbConnection conn = CreateConnection(); + conn.Open(); + + DbCommand cmd = conn.CreateCommand(); + cmd.CommandText = sqlString; + for (int i = 0; i < numParameters; i++) + { + DbParameter param = dbFactory.CreateParameter(); + cmd.Parameters.Add(param); + } + conn.Close(); + return cmd; + } + + /// + /// Get the next auto-incremented (primary key) ID + /// + public int GetNextID(string tableName, string primaryKeyName) + { + DbConnection conn = CreateConnection(); + conn.Open(); + DbCommand cmd = conn.CreateCommand(); + + cmd.CommandText = "select max(" + primaryKeyName + ") FROM " + tableName; + + object obj = cmd.ExecuteScalar(); + + conn.Close(); + cmd.Dispose(); + conn.Dispose(); + + if (obj.ToString() == "") + { + return 1; + } + return Convert.ToInt32(obj) + 1; + } + + /// + /// Updates the existing in-memory data table object by + /// the results of the SQL query + /// + /// + /// + /// + public DataTable LoadTable(string sqlQuery, DataTable table) + { + var conn = CreateConnection(); + conn.Open(); + var da = dbFactory.CreateDataAdapter(); + da.SelectCommand = dbFactory.CreateCommand(); + da.SelectCommand.CommandText = sqlQuery; + da.SelectCommand.Connection = conn; + if (table == null) + { + table = new DataTable {TableName = "table"}; + } + + da.Fill(table); + conn.Close(); + return table; + } + + /// + /// Based on a SQL query, returns a data table with all rows that + /// match the query results + /// + /// the SQL query string + /// The resulting data table + public DataTable LoadTable(string sqlQuery) + { + var conn = CreateConnection(); + conn.Open(); + var da = dbFactory.CreateDataAdapter(); + da.SelectCommand = dbFactory.CreateCommand(); + da.SelectCommand.CommandText = sqlQuery; + da.SelectCommand.Connection = conn; + var dt = new DataTable(); + dt.TableName = "table"; + da.Fill(dt); + conn.Close(); + + return dt; + } + + /// + /// Based on a SQL query, returns a data table with all rows that + /// match the query results + /// + /// name of the resulting data table + /// the SQL query string + /// The resulting data table + public DataTable LoadTable(string tableName, string sqlQuery) + { + var conn = CreateConnection(); + conn.Open(); + var da = dbFactory.CreateDataAdapter(); + Debug.Assert(da != null, "da != null"); + da.SelectCommand = dbFactory.CreateCommand(); + Debug.Assert(da.SelectCommand != null, "da.SelectCommand != null"); + da.SelectCommand.CommandText = sqlQuery; + da.SelectCommand.Connection = conn; + var dt = new DataTable {TableName = tableName}; + da.Fill(dt); + conn.Close(); + return dt; + } + + /// + /// Gets the collection of entities + /// + /// Type of collection + /// Query to select any data + /// Delegate that converted row into entity + /// The values of command parameters. + /// Collection of entities + public List Read(string query, Func rowReader, params object[] parameters) + { + var result = new List(); + var cmd = CreateCommand(query); + try + { + cmd.Connection.Open(); + for (int p = 0; p < parameters.Length; p++) + { + var param = dbFactory.CreateParameter(); + Debug.Assert(param != null); + param.Value = parameters[p]; + param.DbType = GetDbTypeFromValue(parameters[p]); + param.ParameterName = "@p" + p.ToString(CultureInfo.InvariantCulture); + + cmd.Parameters.Add(param); + } + + var reader = cmd.ExecuteReader(); + while (reader.Read()) + { + result.Add(rowReader(reader)); + } + reader.Close(); + } + finally + { + cmd.Connection.Close(); + cmd.Dispose(); + } + + return result; + } + + /// + /// Based on a database command, returns a data table with all rows that + /// match the query results + /// + /// name of the resulting data table + /// the database command (with parameter values set) + /// The resulting data table + public DataTable LoadTable(string tableName, DbCommand cmd) + { + bool openCloseConnection = false; + + if (cmd.Connection.State != ConnectionState.Open) + { + openCloseConnection = true; + cmd.Connection.Open(); + } + + DbDataAdapter da = dbFactory.CreateDataAdapter(); + da.SelectCommand = cmd; + var dt = new DataTable {TableName = tableName}; + da.Fill(dt); + + if (openCloseConnection) + { + cmd.Connection.Close(); + } + return dt; + } + + /// + /// Creates a data adapter for the specified data table + /// + /// name of the table in the database + /// name of primary key column + /// a new data adapter associated with the table + public DbDataAdapter CreateDataAdapter(string tableName, string primaryKeyName) + { + DbConnection conn = CreateConnection(); + DbDataAdapter da = dbFactory.CreateDataAdapter(); + da.SelectCommand = conn.CreateCommand(); + da.SelectCommand.CommandText = "SELECT * FROM " + tableName; + + DbCommandBuilder cmdBuilder = dbFactory.CreateCommandBuilder(); + cmdBuilder.DataAdapter = da; + + da.InsertCommand = (DbCommand)((ICloneable)cmdBuilder.GetInsertCommand()).Clone(); + + //sqLITE - specific... + if (dbFactory is System.Data.SQLite.SQLiteFactory) + { + da.InsertCommand.CommandText += String.Format(";SELECT last_insert_rowid() AS [{0}]", primaryKeyName); + da.InsertCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord; + } + return da; + } + + /// + /// Executes an SQL query with a single output value + /// + /// the SQL query string + /// the values of command parameters + /// the query result (value of first matching row and column) + public object ExecuteSingleOutput(string inputString, params object[] parameters) + { + object output; + var cmd = CreateCommand(inputString); + try + { + cmd.Connection.Open(); + cmd.CommandText = inputString; + + for (int p = 0; p < parameters.Length; p++) + { + var param = dbFactory.CreateParameter(); + Debug.Assert(param != null); + param.Value = parameters[p]; + param.DbType = GetDbTypeFromValue(parameters[p]); + param.ParameterName = "@p" + p.ToString(CultureInfo.InvariantCulture); + + cmd.Parameters.Add(param); + } + + output = cmd.ExecuteScalar(); + } + finally + { + cmd.Connection.Close(); + cmd.Dispose(); + } + + return output; + + } + + /// + /// returns a DataTable object that has the same schema as + /// the user-specified table with the name + /// + /// name of the table in the database + /// an empty dataTable with the same column names and types + public DataTable GetTableSchema(string tableName) + { + var conn = CreateConnection(); + try + { + var table = new DataTable {TableName = tableName}; + var da = dbFactory.CreateDataAdapter(); + da.SelectCommand = conn.CreateCommand(); + da.SelectCommand.CommandText = "SELECT * FROM " + tableName + " WHERE 1 = 0"; + da.Fill(table); + return table; + } + finally + { + if (conn.State == ConnectionState.Open) + { + conn.Close(); + } + } + } + } +} diff --git a/Source/Core/HydroDesktop.Data/Database/ISOMetadataRepository.cs b/Source/Core/HydroDesktop.Data/Database/ISOMetadataRepository.cs new file mode 100644 index 00000000..cd509c77 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/ISOMetadataRepository.cs @@ -0,0 +1,49 @@ +using System; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.DAL; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + /// + /// Repository for + /// + class ISOMetadataRepository : BaseRepository, IISOMetadataRepository + { + public ISOMetadataRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + } + + public ISOMetadataRepository(IHydroDbOperations db) : base(db) + { + } + + #region Overrides of BaseRepository + + protected override ISOMetadata DataRowToEntity(System.Data.DataRow row) + { + var result = new ISOMetadata + { + Id = Convert.ToInt64(row["MetadataID"]), + Abstract = Convert.ToString(row["Abstract"]), + MetadataLink = Convert.ToString(row["MetadataLink"]), + ProfileVersion = Convert.ToString(row["ProfileVersion"]), + Title = Convert.ToString(row["Title"]), + TopicCategory = Convert.ToString(row["TopicCategory"]), + }; + return result; + } + + protected override string TableName + { + get { return "ISOMetadata"; } + } + + protected override string PrimaryKeyName + { + get { return "MetadataID"; } + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/MetadataCacheManagerSQL.cs b/Source/Core/HydroDesktop.Data/Database/MetadataCacheManagerSQL.cs new file mode 100644 index 00000000..f808e654 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/MetadataCacheManagerSQL.cs @@ -0,0 +1,1203 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Common; +using System.Globalization; +using System.Linq; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; +using System.Data.SQLite; + +namespace HydroDesktop.Database +{ + /// + /// This class is responsible for communication with the 'Metadata Cache' database + /// This is an alternative implementation internally using SQL queries instead of NHibernate. + /// This is to compare saving speed. + /// + public class MetadataCacheManagerSQL + { + #region Variables + + //helper class which communicates with the database + private readonly DbOperations _db; + + #endregion + + #region Constructor + /// + /// Creates a new instance of the manager given a connection string + /// + /// The type of the database (SQLite, SQLServer, ...) + /// The connection string + public MetadataCacheManagerSQL(DatabaseTypes dbType, string connectionString) + { + _db = new DbOperations(connectionString, dbType); + } + /// + /// Creates a new instance of the manager using a DbOperations object + /// + /// The dbOperations object + public MetadataCacheManagerSQL(DbOperations db) + { + _db = db; + } + #endregion + + private bool NumberIsBetween(double numberToCheck, double bounds1, double bounds2, bool inclusiveAtBounds) + { + double lowerBound, upperBound; + + if (bounds1 > bounds2) + { + lowerBound = bounds2; + upperBound = bounds1; + } + else + { + lowerBound = bounds1; + upperBound = bounds2; + } + + return inclusiveAtBounds + ? numberToCheck >= lowerBound && numberToCheck <= upperBound + : numberToCheck > lowerBound && numberToCheck < upperBound; + } + + private bool EnvelopesIntersect(double env1xMin, double env1xMax, double env1yMin, double env1yMax, double env2xMin, double env2xMax, double env2yMin, double env2yMax) + { + return (((NumberIsBetween(env1xMin, env2xMin, env2xMax, true) || NumberIsBetween(env1xMax, env2xMin, env2xMax, true)) && (NumberIsBetween(env1yMin, env2yMin, env2yMax, true) || NumberIsBetween(env1yMax, env2yMin, env2yMax, true))) || + ((NumberIsBetween(env2xMin, env1xMin, env1xMax, true) || NumberIsBetween(env2xMax, env1xMin, env1xMax, true)) && (NumberIsBetween(env2yMin, env1yMin, env1yMax, true) || NumberIsBetween(env2yMax, env1yMin, env1yMax, true)))); + } + + private bool PointIntersectsEnvelope(double pointX, double pointY, double envXMin, double envXMax, double envYMin, double envYMax) + { + return (NumberIsBetween(pointX, envXMin, envXMax, true) && NumberIsBetween(pointY, envYMin, envYMax, true)); + } + + private bool DateRangesOverlap(DateTime startDate1, DateTime endDate1, DateTime startDate2, DateTime endDate2) + { + return (((startDate1 >= startDate2) && (startDate1 <= endDate2)) || + ((endDate1 >= startDate2) && (endDate1 <= endDate2)) || + ((startDate2 >= startDate1) && (startDate2 <= endDate1)) || + ((endDate2 >= startDate1) && (endDate2 <= endDate1))); + } + + + + #region Public Methods + + + + /// + /// Get all data services saved in the metadata cache database + /// + public IList GetAllServices() + { + const string sql = "SELECT * FROM DataServices"; + + var tbl = _db.LoadTable("services", sql); + + IList services = null; + + services = new List(); + if (tbl.Rows.Count > 0) + { + foreach (DataRow row in tbl.Rows) + { + services.Add(ServiceFromDataRow(row)); + } + } + return services; + } + + /// + /// Get data service by serviceUrl + /// + /// ServiceUrl + /// Data service or null (if not found) + public DataServiceInfo GetServiceByServiceUrl(string serviceURL) + { + var sql = string.Format("SELECT * FROM DataServices where ServiceID = '{0}'", serviceURL); + var tbl = _db.LoadTable("services", sql); + return tbl.Rows.Count == 1 ? ServiceFromDataRow(tbl.Rows[0]) : null; + } + + #endregion + + /// + /// Gets a list of all services within the bounding box + /// + /// minimum x (longitude) + /// maximum x (lognitude) + /// minimum y (latitude) + /// maximum y (latitude) + /// the list of serviceInfo objects matching the criteria + public IList GetServicesInBox(double xMin, double xMax, double yMin, double yMax) + { + //IList services = null; + + string sql = "SELECT * FROM DataServicesCache WHERE " + + String.Format("EastLongitude BETWEEN {0} AND {1}", xMin, xMax) + + String.Format("OR WestLongitude BETWEEN {0} AND {1}", xMin, xMax) + + String.Format("OR NorthLatitude BETWEEN {0} AND {1}", yMin, yMax) + + String.Format("OR SouthLatitude BETWEEN {0} AND {1}", yMin, yMax); + + DataTable tbl = _db.LoadTable(sql); + + IList services = null; + + if (tbl.Rows.Count > 0) + { + services = new List(); + foreach (System.Data.DataRow row in tbl.Rows) + { + services.Add(ServiceFromDataRow(row)); + } + } + return services; + } + + private string DetailedSeriesSQLQuery() + { + const string sql = "SELECT SeriesID, " + + "SiteName, SiteCode, Latitude, Longitude, " + + "VariableName, VariableCode, DataType, ValueType, Speciation, SampleMedium, " + + "TimeSupport, GeneralCategory, " + + "TimeUnitsName, " + + "BeginDateTime, EndDateTime, DataSeriesCache.ValueCount, ServiceTitle, ServiceEndpointURL " + + "FROM DataSeriesCache " + + "LEFT JOIN SitesCache ON DataSeriesCache.SiteID = SitesCache.SiteID " + + "LEFT JOIN VariablesCache ON DataSeriesCache.VariableID = VariablesCache.VariableID " + + "LEFT JOIN DataServices ON DataSeriesCache.ServiceID = DataServices.ServiceID"; + return sql; + } + + private DataServiceInfo ServiceFromDataRow(System.Data.DataRow row) + { + DataServiceInfo dsi = new DataServiceInfo(); + dsi.Id = DataReader.ReadInteger(row["ServiceID"]); + dsi.ServiceCode = DataReader.ReadString(row["ServiceCode"]); + dsi.ServiceName = DataReader.ReadString(row["ServiceName"]); + dsi.ServiceType = DataReader.ReadString(row["ServiceType"]); + dsi.Version = DataReader.ReadDouble(row["ServiceVersion"]); + dsi.Protocol = DataReader.ReadString(row["ServiceProtocol"]); + dsi.EndpointURL = DataReader.ReadString(row["ServiceEndpointURL"]); + dsi.DescriptionURL = DataReader.ReadString(row["ServiceDescriptionURL"]); + dsi.NorthLatitude = DataReader.ReadDouble(row["NorthLatitude"]); + dsi.SouthLatitude = DataReader.ReadDouble(row["SouthLatitude"]); + dsi.EastLongitude = DataReader.ReadDouble(row["EastLongitude"]); + dsi.WestLongitude = DataReader.ReadDouble(row["WestLongitude"]); + dsi.Abstract = DataReader.ReadString(row["Abstract"]); + dsi.ContactEmail = DataReader.ReadString(row["ContactEmail"]); + dsi.ContactName = DataReader.ReadString(row["ContactName"]); + dsi.Citation = DataReader.ReadString(row["Citation"]); + dsi.IsHarvested = DataReader.ReadBoolean(row["IsHarvested"]); + dsi.HarveDateTime = DataReader.ReadDateTime(row["HarveDateTime"]); + dsi.ServiceTitle = DataReader.ReadString(row["ServiceTitle"]); + dsi.ValueCount = DataReader.ReadInteger(row["ValueCount"]); + dsi.SiteCount = DataReader.ReadInteger(row["SiteCount"]); + dsi.VariableCount = DataReader.ReadInteger(row["VariableCount"]); + return dsi; + } + + private Variable VariableFromDataRow(DataRow row) + { + Variable v = new Variable(); + v.Name = Convert.ToString(row["VariableName"]); + v.Code = Convert.ToString(row["VariableCode"]); + v.DataType = Convert.ToString(row["DataType"]); + v.ValueType = Convert.ToString(row["ValueType"]); + v.Speciation = Convert.ToString(row["Speciation"]); + v.SampleMedium = Convert.ToString(row["SampleMedium"]); + v.TimeSupport = Convert.ToDouble(row["TimeSupport"]); + v.GeneralCategory = Convert.ToString(row["GeneralCategory"]); + v.VariableUnit = Unit.Unknown; + v.VariableUnit.Name = Convert.ToString(row["VariableUnitsName"]); + v.VariableUnit.Abbreviation = Convert.ToString(row["VariableUnitsAbbreviation"]); + v.TimeUnit = Unit.UnknownTimeUnit; + v.TimeUnit.Name = Convert.ToString(row["TimeUnitsName"]); + v.IsRegular = Convert.ToBoolean(row["IsRegular"]); + v.NoDataValue = Convert.ToDouble(row["NoDataValue"]); + v.Id = Convert.ToInt32(row["VariableID"]); + return v; + } + + private SeriesMetadata SeriesFromDataRow(DataRow row) + { + Site site = new Site(); + site.Name = Convert.ToString(row["SiteName"]); + site.Code = Convert.ToString(row["SiteCode"]); + site.Latitude = Convert.ToDouble(row["Latitude"]); + site.Longitude = Convert.ToDouble(row["Longitude"]); + + Variable v = new Variable(); + v.Name = Convert.ToString(row["VariableName"]); + v.Code = Convert.ToString(row["VariableCode"]); + v.DataType = Convert.ToString(row["DataType"]); + v.ValueType = Convert.ToString(row["ValueType"]); + v.Speciation = Convert.ToString(row["Speciation"]); + v.SampleMedium = Convert.ToString(row["SampleMedium"]); + v.TimeSupport = Convert.ToDouble(row["TimeSupport"]); + v.GeneralCategory = Convert.ToString(row["GeneralCategory"]); + v.VariableUnit = Unit.Unknown; + v.VariableUnit.Name = Convert.ToString(row["VariableUnitsName"]); + v.TimeUnit = Unit.UnknownTimeUnit; + v.TimeUnit.Name = Convert.ToString(row["TimeUnitsName"]); + + Method m = Method.Unknown; + //m.Description = Convert.ToString(row["MethodDescription"]); + + Source src = Source.Unknown; + //src.Description = Convert.ToString(row["SourceDescription"]); + src.Organization = Convert.ToString(row["Organization"]); + src.Citation = Convert.ToString(row["Citation"]); + + QualityControlLevel qc = QualityControlLevel.Unknown; + //qc.Code = Convert.ToString(row["QualityControlLevelCode"]); + //qc.Definition = Convert.ToString(row["QualityControlLevelDefinition"]); + + SeriesMetadata newSeries = new SeriesMetadata(site, v, m, qc, src); + newSeries.BeginDateTime = Convert.ToDateTime(row["BeginDateTime"]); + newSeries.EndDateTime = Convert.ToDateTime(row["EndDateTime"]); + newSeries.BeginDateTimeUTC = Convert.ToDateTime(row["BeginDateTimeUTC"]); + newSeries.EndDateTimeUTC = Convert.ToDateTime(row["EndDateTimeUTC"]); + newSeries.ValueCount = Convert.ToInt32(row["ValueCount"]); + + DataServiceInfo servInfo = new DataServiceInfo(); + servInfo.EndpointURL = Convert.ToString(row["ServiceEndpointURL"]); + //servInfo.ServiceCode = Convert.ToString(row["ServiceCode"]); + newSeries.DataService = servInfo; + + return newSeries; + } + + /// + /// Converts DataRow into SeriesDataCart + /// + /// DataRow to convert + /// SeriesDataCart + public SeriesDataCart SeriesDataCartFromRow(DataRow row) + { + var result = new SeriesDataCart(); + result.SiteName = Convert.ToString(row["SiteName"]); + result.SiteCode = Convert.ToString(row["SiteCode"]); + result.Latitude = Convert.ToDouble(row["Latitude"], CultureInfo.InvariantCulture); + result.Longitude = Convert.ToDouble(row["Longitude"], CultureInfo.InvariantCulture); + + //Variable v = new Variable(); + result.VariableName = Convert.ToString(row["VariableName"]); + result.VariableCode = Convert.ToString(row["VariableCode"]); + result.DataType = Convert.ToString(row["DataType"]); + result.ValueType = Convert.ToString(row["ValueType"]); + + result.SampleMedium = Convert.ToString(row["SampleMedium"]); + result.TimeSupport = Convert.ToDouble(row["TimeSupport"], CultureInfo.InvariantCulture); + result.GeneralCategory = Convert.ToString(row["GeneralCategory"]); + result.TimeUnit = Convert.ToString(row["TimeUnitsName"]); + + result.BeginDate = Convert.ToDateTime(row["BeginDateTime"], CultureInfo.InvariantCulture); + result.EndDate = Convert.ToDateTime(row["EndDateTime"], CultureInfo.InvariantCulture); + result.ValueCount = Convert.ToInt32(row["ValueCount"]); + + result.ServURL = Convert.ToString(row["ServiceEndpointURL"]); + result.ServCode = Convert.ToString(row["ServiceTitle"]); + + return result; + } + /// + /// Gets a list of all data series within the bounding box + /// + /// minimum X (longitude) + /// maximum X (longitude) + /// minimum Y (latitude) + /// maximum Y (latitude) + /// the list of data series metadata matching the search criteria + public IList GetSeriesListInBox(double xMin, double xMax, double yMin, double yMax) + { + string sql1 = DetailedSeriesSQLQuery(); + const string sqlWhere = " WHERE Latitude > @minlat AND Latitude <= @maxlat AND Longitude > @minlon AND Longitude <= @maxlon"; + string sql = sql1 + sqlWhere; + + DbCommand cmd = _db.CreateCommand(sql); + //lat, lon parameters + _db.AddParameter(cmd, "@minlat", DbType.Double); + _db.AddParameter(cmd, "@maxlat", DbType.Double); + _db.AddParameter(cmd, "@minlon", DbType.Double); + _db.AddParameter(cmd, "@maxlon", DbType.Double); + + cmd.Parameters[0].Value = yMin; + cmd.Parameters[1].Value = yMax; + cmd.Parameters[2].Value = xMin; + cmd.Parameters[3].Value = xMax; + + DataTable seriesTable = _db.LoadTable("seriesTable", cmd); + + //DataTable seriesTable = _db.LoadTable("seriesTable", sql); + + return (from DataRow row in seriesTable.Rows select SeriesDataCartFromRow(row)).ToList(); + } + + /// + /// Gets a data table of all data series within the bounding box + /// + /// minimum X (longitude) + /// maximum X (longitude) + /// minimum Y (latitude) + /// maximum Y (latitude) + /// array of Concept keywords + /// start date + /// end date + /// larray of service codes + /// the list of data series metadata matching the search criteria + public DataTable GetSeriesDataTableInBox(double xMin, double xMax, double yMin, double yMax, string[] conceptCodes, DateTime startDate, DateTime endDate, int[] networkIDs) + { + string sql1 = DetailedSeriesSQLQuery(); + string sqlWhere1 = " WHERE Latitude >= @minlat AND Latitude <= @maxlat AND Longitude >= @minlon AND Longitude <= @maxlon"; + string sqlWhere2 = ""; + + //concept keywords | variable names + if (conceptCodes == null) + { + sqlWhere2 = ""; + } + else if (conceptCodes.Length == 0) + { + sqlWhere2 = ""; + } + else if (string.IsNullOrEmpty(conceptCodes[0])) + { + sqlWhere2 = ""; + } + else if (conceptCodes.Length == 1) + { + sqlWhere2 = " AND VariableName = '" + conceptCodes[0] + "'"; + } + else if (conceptCodes.Length > 1) + { + sqlWhere2 = " AND VariableName IN ("; + foreach (string keyword in conceptCodes) + { + sqlWhere2 += "'" + keyword + "',"; + } + if (sqlWhere2.EndsWith(",")) + { + sqlWhere2 = sqlWhere2.Substring(0, sqlWhere2.Length - 1); + } + sqlWhere2 += ")"; + } + + //date and time + const string sqlWhere3 = " AND ( (BeginDateTime < @p1 AND EndDateTime > @p2) OR (BeginDateTime > @p1 AND BeginDateTime <= @p2) OR (EndDateTime > @p1 AND EndDateTime <= @p2) )"; + + //network IDs + string sqlWhere4 = ""; + + if (networkIDs != null) + { + if (networkIDs.Length == 1) + { + sqlWhere4 = " AND DataSeriesCache.ServiceID = " + networkIDs[0]; + } + else if (networkIDs.Length > 1) + { + sqlWhere4 = networkIDs.Aggregate(" AND DataSeriesCache.ServiceID IN (", (current, servID) => current + (servID.ToString(CultureInfo.InvariantCulture) + ",")); + if (sqlWhere4.EndsWith(",")) + { + sqlWhere4 = sqlWhere4.Substring(0, sqlWhere4.Length - 1); + } + sqlWhere4 += ")"; + } + } + + string sql = sql1 + sqlWhere1 + sqlWhere2 + sqlWhere3 + sqlWhere4; + DbCommand cmd = _db.CreateCommand(sql); + //lat, lon parameters + _db.AddParameter(cmd, "@minlat", DbType.Double); + _db.AddParameter(cmd, "@maxlat", DbType.Double); + _db.AddParameter(cmd, "@minlon", DbType.Double); + _db.AddParameter(cmd, "@maxlon", DbType.Double); + + _db.AddParameter(cmd, "@p1", DbType.DateTime); + _db.AddParameter(cmd, "@p2", DbType.DateTime); + cmd.Parameters[0].Value = yMin; + cmd.Parameters[1].Value = yMax; + cmd.Parameters[2].Value = xMin; + cmd.Parameters[3].Value = xMax; + cmd.Parameters[4].Value = startDate; + cmd.Parameters[5].Value = endDate; + + var seriesTable = _db.LoadTable("seriesTable", cmd); + return seriesTable; + } + + /// + /// Gets a list of all data series within the bounding box + /// + /// minimum X (longitude) + /// maximum X (longitude) + /// minimum Y (latitude) + /// maximum Y (latitude) + /// array of Concept keywords + /// start date + /// end date + /// larray of service codes + /// the list of data series metadata matching the search criteria + public IList GetSeriesListInBox(double xMin, double xMax, double yMin, double yMax, string[] conceptCodes, DateTime startDate, DateTime endDate, int[] networkIDs) + { + var dt = GetSeriesDataTableInBox(xMin, xMax, yMin, yMax, conceptCodes, startDate, endDate, networkIDs); + return (from DataRow row in dt.Rows select SeriesDataCartFromRow(row)).ToList(); + } + + /// + /// Gets all variables that are currently stored in the metadata cache database + /// + public IList GetVariables() + { + string sql = "SELECT * FROM VariablesCache"; + + DataTable tbl = _db.LoadTable(sql); + var variables = new List(); + foreach (DataRow row in tbl.Rows) + { + Variable v = VariableFromDataRow(row); + variables.Add(v); + } + return variables; + } + + /// + /// Gets all variables that are currently stored in the metadata cache database + /// + public IList GetVariablesByService(int serviceID) + { + string sql = "SELECT * FROM VariablesCache WHERE serviceID=" + serviceID; + + DataTable tbl = _db.LoadTable(sql); + List variables = new List(); + foreach (DataRow row in tbl.Rows) + { + Variable v = VariableFromDataRow(row); + variables.Add(v); + } + return variables; + } + + /// + /// Gets the names of all variables accessible by the specific web service + /// + /// + public IList GetVariableNamesByService(int serviceID) + { + string sql = "SELECT DISTINCT VariableName FROM VariablesCache WHERE ServiceID = " + serviceID; + DataTable tbl = _db.LoadTable(sql); + List variableNames = new List(); + foreach (DataRow row in tbl.Rows) + { + variableNames.Add(row["VariableName"].ToString()); + } + return variableNames; + } + + /// + /// Gets the names of all variables that are currently stored in the metadata cache DB + /// + /// + public IList GetVariableNames() + { + string sql = "SELECT DISTINCT VariableName FROM VariablesCache"; + DataTable tbl = _db.LoadTable(sql); + List variableNames = new List(); + foreach (DataRow row in tbl.Rows) + { + variableNames.Add(row["VariableName"].ToString()); + } + return variableNames; + } + + /// + /// Saves a new data service object to the database. If an entry with the same + /// web service URL already exists in the database, update it. + /// + /// the ServiceInfo object to be saved to the DB + public void SaveDataService(DataServiceInfo service) + { + if (!columnExists("SiteCount")) + { + addColumn("SiteCount"); + } + if (!columnExists("VariableCount")) + { + addColumn("VariableCount"); + } + const string sqlInsert = "INSERT INTO DataServices(" + + "ServiceCode, ServiceName, ServiceType, ServiceVersion, ServiceProtocol, " + + "ServiceEndpointURL, ServiceDescriptionURL, NorthLatitude, SouthLatitude, EastLongitude, WestLongitude, " + + "Abstract, ContactName, ContactEmail, Citation, IsHarvested, HarveDateTime, ServiceTitle, SiteCount, VariableCount) " + + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + + using (DbConnection conn = _db.CreateConnection()) + { + conn.Open(); + + using (DbTransaction tran = conn.BeginTransaction()) + { + using (DbCommand cmd = conn.CreateCommand()) + { + cmd.CommandText = sqlInsert; + cmd.Parameters.Add(_db.CreateParameter(DbType.String, service.ServiceCode)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, service.ServiceName)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, service.ServiceType)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Double, service.Version)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, service.Protocol)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, service.EndpointURL)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, service.DescriptionURL)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Double, service.NorthLatitude)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Double, service.SouthLatitude)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Double, service.EastLongitude)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Double, service.WestLongitude)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, service.Abstract)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, service.ContactName)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, service.ContactEmail)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, service.Citation)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Boolean, service.IsHarvested)); + cmd.Parameters.Add(_db.CreateParameter(DbType.DateTime, service.HarveDateTime)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, service.ServiceTitle)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Int32, service.SiteCount)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Int32, service.VariableCount)); + cmd.ExecuteNonQuery(); + } + tran.Commit(); + } + } + } + + /// + /// Deletes all entries in the metadata cache database that were + /// added by the data service + /// + /// The serviceInfo object to be deleted + /// Set to true if the record in the DataServices + /// table should also be deleted. Set to false if the record in the DataServices + /// table should be kept + /// The total number of records deleted + public int DeleteRecordsForService(DataServiceInfo service, bool deleteService) + { + string serviceID = service.Id.ToString(CultureInfo.InvariantCulture); + + string sqlDelete = "DELETE FROM DataSeriesCache WHERE ServiceID = " + serviceID + "; " + + "DELETE FROM SitesCache WHERE ServiceID = " + serviceID + "; " + + "DELETE FROM VariablesCache WHERE ServiceID = " + serviceID + "; " + + "DELETE FROM SourcesCache WHERE ServiceID = " + serviceID + "; " + + "DELETE FROM MethodsCache WHERE ServiceID = " + serviceID + "; " + + "DELETE FROM QualityControlLevelsCache WHERE ServiceID = " + serviceID + ";" + + "DELETE FROM ISOMetadataCache WHERE ServiceID = " + serviceID + ";"; + + if (deleteService) + { + sqlDelete += "DELETE FROM DataServices WHERE ServiceID = " + serviceID + ";"; + } + + using (var conn = _db.CreateConnection()) + { + conn.Open(); + + using (var tran = conn.BeginTransaction()) + { + using (var cmd01 = conn.CreateCommand()) + { + cmd01.CommandText = sqlDelete; + cmd01.ExecuteNonQuery(); + } + tran.Commit(); + } + + } + return 0; + } + + + /// + /// Deletes a series given it's ID. The series is only deleted when it belongs to one theme. + /// + /// The database ID of the series + /// true if series was deleted, false otherwise + public bool DeleteSeries(int seriesID) + { + int siteID = 0; + int variableID = 0; + int sourceID = 0; + int qualityID = 0; + int methodID = 0; + + + string sqlSeries = "SELECT SiteID, VariableID, MethodID, SourceID, QualityControlLevelID " + + "FROM DataSeriesCache WHERE SeriesID = " + seriesID; + + DataTable seriesTable = _db.LoadTable("seriesTable", sqlSeries); + + if (seriesTable.Rows.Count == 0) return false; + + DataRow seriesRow = seriesTable.Rows[0]; + siteID = Convert.ToInt32(seriesRow["SiteID"]); + variableID = Convert.ToInt32(seriesRow["VariableID"]); + methodID = Convert.ToInt32(seriesRow["MethodID"]); + sourceID = Convert.ToInt32(seriesRow["SourceID"]); + qualityID = Convert.ToInt32(seriesRow["QualityControlLevelID"]); + + //SQL Queries + string sqlSite = "SELECT SiteID from DataSeriesCache where SiteID = " + siteID; + string sqlVariable = "SELECT VariableID from DataSeriesCache where VariableID = " + variableID; + string sqlSource = "SELECT SourceID from DataSeriesCache where SourceID = " + sourceID; + string sqlMethod = "SELECT MethodID from DataSeriesCache where MethodID = " + methodID; + string sqlQuality = "SELECT QualityControlLevelID from DataSeriesCache where QualityControlLevelID = " + qualityID; + + + //SQL Delete Commands + string sqlDeleteSeries = "DELETE FROM DataSeriesCache WHERE SeriesID = " + seriesID; + + string sqlDeleteSite = "DELETE FROM SitesCache WHERE SiteID = " + siteID; + string sqlDeleteVariable = "DELETE FROM VariablesCache WHERE VariableID = " + variableID; + string sqlDeleteMethod = "DELETE FROM MethodsCache WHERE MethodID = " + methodID; + string sqlDeleteSource = "DELETE FROM SourcesCache WHERE SourceID = " + sourceID; + string sqlDeleteQuality = "DELETE FROM QualityControlLevelsCache WHERE QualityControlLevelID = " + qualityID; + + DataTable tblSite = new DataTable(); + DataTable tblVariable = new DataTable(); + DataTable tblSource = new DataTable(); + DataTable tblMethod = new DataTable(); + DataTable tblQuality = new DataTable(); + + //Begin Transaction + using (DbConnection conn = _db.CreateConnection()) + { + conn.Open(); + + using (DbTransaction tran = conn.BeginTransaction()) + { + // get site IDs + using (DbCommand cmd01 = conn.CreateCommand()) + { + cmd01.CommandText = sqlSite; + tblSite = _db.LoadTable("t1", cmd01); + } + + // get variable IDs + using (DbCommand cmd02 = conn.CreateCommand()) + { + cmd02.CommandText = sqlVariable; + tblVariable = _db.LoadTable("t2", cmd02); + } + + // get source IDs + using (DbCommand cmd03 = conn.CreateCommand()) + { + cmd03.CommandText = sqlSource; + tblSource = _db.LoadTable("t3", cmd03); + } + + // get method IDs + using (DbCommand cmd04 = conn.CreateCommand()) + { + cmd04.CommandText = sqlMethod; + tblMethod = _db.LoadTable("t4", cmd04); + } + + // get qualityControl IDs + using (DbCommand cmd05 = conn.CreateCommand()) + { + cmd05.CommandText = sqlQuality; + tblQuality = _db.LoadTable("t5", cmd05); + } + + //delete the site + if (tblSite.Rows.Count == 1) + { + using (DbCommand cmdDeleteSite = conn.CreateCommand()) + { + cmdDeleteSite.CommandText = sqlDeleteSite; + cmdDeleteSite.ExecuteNonQuery(); + } + } + + //delete the variable + if (tblVariable.Rows.Count == 1) + { + using (DbCommand cmdDeleteVariable = conn.CreateCommand()) + { + cmdDeleteVariable.CommandText = sqlDeleteVariable; + cmdDeleteVariable.ExecuteNonQuery(); + } + } + + //delete the method + if (tblMethod.Rows.Count == 1) + { + using (DbCommand cmdDeleteMethod = conn.CreateCommand()) + { + cmdDeleteMethod.CommandText = sqlDeleteMethod; + cmdDeleteMethod.ExecuteNonQuery(); + } + } + + //delete the source + if (tblSource.Rows.Count == 1) + { + using (DbCommand cmdDeleteSource = conn.CreateCommand()) + { + cmdDeleteSource.CommandText = sqlDeleteSource; + cmdDeleteSource.ExecuteNonQuery(); + } + } + + //delete the quality control level + if (tblQuality.Rows.Count == 1) + { + using (DbCommand cmdDeleteQuality = conn.CreateCommand()) + { + cmdDeleteQuality.CommandText = sqlDeleteQuality; + cmdDeleteQuality.ExecuteNonQuery(); + } + } + + //finally delete the series + using (DbCommand cmdDeleteSeries = conn.CreateCommand()) + { + cmdDeleteSeries.CommandText = sqlDeleteSeries; + cmdDeleteSeries.ExecuteNonQuery(); + } + + //commit transaction + tran.Commit(); + } + } + return true; + } + + + + /// + /// Check if the series with the same site, variable, method, + /// source, quality control level and data service already + /// exists in the database. + /// + /// the series to be checked + /// The series from the db, or NULL if it doesn't exist + /// Not implemented + private SeriesMetadata CheckIfSeriesExists(SeriesMetadata seriesToCheck) + { + throw new NotImplementedException(); + } + + /// + /// Saves the series metadata to the metadata cache database. + /// This method also automatically saves the site, variable, + /// method, source and quality control level of the series. + /// + /// The series to be saved + /// The web service containing the series + public void SaveSeries(SeriesMetadata series, DataServiceInfo dataService) + { + string sqlSite = "SELECT SiteID FROM SitesCache WHERE SiteCode = ?"; + string sqlVariable = "SELECT VariableID FROM VariablesCache WHERE VariableCode = ?"; + string sqlMethod = "SELECT MethodID FROM MethodsCache WHERE MethodDescription = ?"; + string sqlSource = "SELECT SourceID FROM SourcesCache WHERE Organization = ?"; + string sqlQuality = "SELECT QualityControlLevelID FROM QualityControlLevelsCache WHERE Definition = ?"; + string sqlRowID = "; SELECT LAST_INSERT_ROWID();"; + + string sqlSaveSite = "INSERT INTO SitesCache(SiteCode, SiteName, Latitude, Longitude, LatLongDatumSRSID, LatLongDatumName, " + + "Elevation_m, VerticalDatum, LocalX, LocalY, LocalProjectionSRSID, LocalProjectionName, " + + "PosAccuracy_m, State, County, Comments, ServiceID) " + + "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" + sqlRowID; + + string sqlSaveVariable = "INSERT INTO variablesCache(VariableCode, VariableName, Speciation, " + + "SampleMedium, ValueType, DataType, GeneralCategory, NoDataValue, VariableUnitsName, VariableUnitsType, VariableUnitsAbbreviation, " + + "IsRegular, TimeSupport, TimeUnitsName, TimeUnitsType, TimeUnitsAbbreviation, ServiceID) " + + "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" + sqlRowID; + + string sqlSaveMethod = "INSERT INTO MethodsCache(OriginMethodID, MethodDescription, MethodLink, ServiceID) VALUES(?, ?, ?, ?)" + sqlRowID; + + string sqlSaveQualityControl = "INSERT INTO QualityControlLevelsCache(OriginQualityControlLevelID, QualityControlLevelCode, Definition, Explanation) " + + "VALUES(?,?,?,?)" + sqlRowID; + + string sqlSaveSource = "INSERT INTO SourcesCache(OriginSourceID, Organization, SourceDescription, SourceLink, ContactName, Phone, " + + "Email, Address, City, State, ZipCode, Citation, MetadataID) " + + "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" + sqlRowID; + + string sqlSaveISOMetadata = "INSERT INTO ISOMetadataCache(TopicCategory, Title, Abstract, ProfileVersion, MetadataLink) " + + "VALUES(?, ?, ?, ?, ?)" + sqlRowID; + + string sqlSaveSeries = "INSERT INTO DataSeriesCache(SiteID, VariableID, MethodID, SourceID, QualityControlLevelID, " + + "BeginDateTime, EndDateTime, BeginDateTimeUTC, EndDateTimeUTC, ValueCount, ServiceID) " + + "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" + sqlRowID; + + int siteID = 0; + int variableID = 0; + + int methodID = 0; + int qualityControlLevelID = 0; + int sourceID = 0; + int isoMetadataID = 0; + int seriesID = 0; + + + //check the ServiceID (must be already set) + if (dataService.Id <= 0) + { + throw new ArgumentException("The DataServiceID must be set."); + } + + + //Step 1 Begin Transaction + using (DbConnection conn = _db.CreateConnection()) + { + conn.Open(); + + using (DbTransaction tran = conn.BeginTransaction()) + { + //**************************************************************** + //*** Step 2 Site + //**************************************************************** + object siteIDResult = null; + using (DbCommand cmd01 = conn.CreateCommand()) + { + cmd01.CommandText = sqlSite; + cmd01.Parameters.Add(_db.CreateParameter(DbType.String, series.Site.Code)); + siteIDResult = cmd01.ExecuteScalar(); + if (siteIDResult != null) + { + siteID = Convert.ToInt32(siteIDResult); + } + } + + if (siteID == 0) //New Site needs to be created + { + //Insert the site to the database + using (DbCommand cmd04 = conn.CreateCommand()) + { + Site site = series.Site; + + cmd04.CommandText = sqlSaveSite; + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.Code)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.Name)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.Double, site.Latitude)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.Double, site.Longitude)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.Int32, site.SpatialReference.SRSID)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.SpatialReference.SRSName)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.Double, site.Elevation_m)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.VerticalDatum)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.Double, site.LocalX)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.Double, site.LocalY)); + if (site.LocalProjection != null) + { + cmd04.Parameters.Add(_db.CreateParameter(DbType.Int32, site.LocalProjection.SRSID)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.LocalProjection.SRSName)); + } + else + { + cmd04.Parameters.Add(_db.CreateParameter(DbType.Int32, 0)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, "unknown")); + } + cmd04.Parameters.Add(_db.CreateParameter(DbType.Double, site.PosAccuracy_m)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.State)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.County)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.Comments)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.Int32, dataService.Id)); + + siteIDResult = cmd04.ExecuteScalar(); + siteID = Convert.ToInt32(siteIDResult); + } + } + + //**************************************************************** + //*** Step 3 Variable + //**************************************************************** + Variable variable = series.Variable; + + object variableIDResult = null; + using (DbCommand cmd05 = conn.CreateCommand()) + { + cmd05.CommandText = sqlVariable; + cmd05.Parameters.Add(_db.CreateParameter(DbType.String, variable.Code)); + cmd05.Parameters[0].Value = variable.Code; + variableIDResult = cmd05.ExecuteScalar(); + if (variableIDResult != null) + { + variableID = Convert.ToInt32(variableIDResult); + } + } + + if (variableID == 0) //New variable needs to be created + { + //Insert the variable to the database + using (DbCommand cmd09 = conn.CreateCommand()) + { + cmd09.CommandText = sqlSaveVariable; + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.Code)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.Name)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.Speciation)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.SampleMedium)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.ValueType)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.DataType)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.GeneralCategory)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.Double, variable.NoDataValue)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.VariableUnit.Name)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.VariableUnit.UnitsType)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.VariableUnit.Abbreviation)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.Boolean, variable.IsRegular)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.Double, variable.TimeSupport)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.TimeUnit.Name)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.TimeUnit.UnitsType)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.TimeUnit.Abbreviation)); + + cmd09.Parameters.Add(_db.CreateParameter(DbType.Int32, dataService.Id)); + + variableIDResult = cmd09.ExecuteScalar(); + variableID = Convert.ToInt32(variableIDResult); + } + } + + //**************************************************************** + //*** Step 4 Method + //**************************************************************** + Method method = series.Method; + + object methodIDResult = null; + using (DbCommand cmd10 = conn.CreateCommand()) + { + cmd10.CommandText = sqlMethod; + cmd10.Parameters.Add(_db.CreateParameter(DbType.String, method.Description)); + methodIDResult = cmd10.ExecuteScalar(); + if (methodIDResult != null) + { + methodID = Convert.ToInt32(methodIDResult); + } + } + + if (methodID == 0) + { + using (DbCommand cmd11 = conn.CreateCommand()) + { + cmd11.CommandText = sqlSaveMethod; + cmd11.Parameters.Add(_db.CreateParameter(DbType.Int32, method.Code)); + cmd11.Parameters.Add(_db.CreateParameter(DbType.String, method.Description)); + cmd11.Parameters.Add(_db.CreateParameter(DbType.String, method.Link)); + cmd11.Parameters.Add(_db.CreateParameter(DbType.Int32, dataService.Id)); + methodIDResult = cmd11.ExecuteScalar(); + methodID = Convert.ToInt32(methodIDResult); + } + } + + //**************************************************************** + //*** Step 5 Quality Control Level + //**************************************************************** + QualityControlLevel qc = series.QualityControlLevel; + + object qualityControlLevelIDResult = null; + using (DbCommand cmd12 = conn.CreateCommand()) + { + cmd12.CommandText = sqlQuality; + cmd12.Parameters.Add(_db.CreateParameter(DbType.String, qc.Definition)); + qualityControlLevelIDResult = cmd12.ExecuteScalar(); + if (qualityControlLevelIDResult != null) + { + qualityControlLevelID = Convert.ToInt32(qualityControlLevelIDResult); + } + } + + if (qualityControlLevelID == 0) + { + //to set the code + int qcCode = 0; + int.TryParse(qc.Code, out qcCode); + + using (DbCommand cmd13 = conn.CreateCommand()) + { + cmd13.CommandText = sqlSaveQualityControl; + cmd13.Parameters.Add(_db.CreateParameter(DbType.Int32, qcCode)); + cmd13.Parameters.Add(_db.CreateParameter(DbType.String, qc.Code)); + cmd13.Parameters.Add(_db.CreateParameter(DbType.String, qc.Definition)); + cmd13.Parameters.Add(_db.CreateParameter(DbType.String, qc.Explanation)); + cmd13.Parameters.Add(_db.CreateParameter(DbType.Int32, dataService.Id)); + qualityControlLevelIDResult = cmd13.ExecuteScalar(); + qualityControlLevelID = Convert.ToInt32(qualityControlLevelIDResult); + } + } + + //**************************************************************** + //*** Step 6 Source + //**************************************************************** + Source source = series.Source; + + object sourceIDResult = null; + using (DbCommand cmd14 = conn.CreateCommand()) + { + cmd14.CommandText = sqlSource; + cmd14.Parameters.Add(_db.CreateParameter(DbType.String, source.Organization)); + sourceIDResult = cmd14.ExecuteScalar(); + if (sourceIDResult != null) + { + sourceID = Convert.ToInt32(sourceIDResult); + } + } + + if (sourceID == 0) + { + using (DbCommand cmd17 = conn.CreateCommand()) + { + cmd17.CommandText = sqlSaveSource; + cmd17.Parameters.Add(_db.CreateParameter(DbType.Int32, source.OriginId)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.Organization)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.Description)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.Link)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.ContactName)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.Phone)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.Email)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.Address)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.City)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.State)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.Int32, source.ZipCode)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.Citation)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, isoMetadataID)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.Int32, dataService.Id)); + sourceIDResult = cmd17.ExecuteScalar(); + sourceID = Convert.ToInt32(sourceIDResult); + } + } + + //**************************************************************** + //*** Step 7 Series + //**************************************************************** + using (DbCommand cmd18 = conn.CreateCommand()) + { + cmd18.CommandText = sqlSaveSeries; + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, siteID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, variableID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, methodID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, sourceID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, qualityControlLevelID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.BeginDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.EndDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.BeginDateTimeUTC)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.EndDateTimeUTC)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, series.ValueCount)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, dataService.Id)); + + object seriesIDResult = cmd18.ExecuteScalar(); + seriesID = Convert.ToInt32(seriesIDResult); + } + + //Commit Transaction + tran.Commit(); + } + conn.Close(); + } + } + + /// + /// updates the data row corresponding to the serviceInfo object + /// The following parameters are updated: + /// IsHarvested + /// HarveDateTime + /// ServiceName + /// ServiceVersion + /// ServiceType + /// ServiceProtocol + /// EastLongitude + /// WestLongitude + /// EastLatitude + /// WestLatitude + /// + /// the corresponding ServiceInfo + public void UpdateDataRow(DataServiceInfo serviceInfo) + { + if (!columnExists("SiteCount")) { + addColumn("SiteCount"); + } + if (!columnExists("VariableCount")) + { + addColumn("VariableCount"); + } + + string sql = "UPDATE DataServices SET " + + "IsHarvested=?,HarveDateTime=?,ServiceName=?,ServiceVersion=?,ServiceType=?,ServiceProtocol=?," + + "EastLongitude=?,WestLongitude=?,NorthLatitude=?,SouthLatitude=?,SiteCount=?, VariableCount=?, ValueCount=? WHERE ServiceID = ?"; + + using (DbConnection conn = _db.CreateConnection()) + { + conn.Open(); + + using (DbTransaction tran = conn.BeginTransaction()) + { + using (DbCommand cmd = conn.CreateCommand()) + { + cmd.CommandText = sql; + cmd.Parameters.Add(_db.CreateParameter(DbType.Boolean, serviceInfo.IsHarvested)); + cmd.Parameters.Add(_db.CreateParameter(DbType.DateTime, serviceInfo.HarveDateTime)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, serviceInfo.ServiceName)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, serviceInfo.Version)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, serviceInfo.ServiceType)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, serviceInfo.Protocol)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Double, serviceInfo.EastLongitude)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Double, serviceInfo.WestLongitude)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Double, serviceInfo.NorthLatitude)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Double, serviceInfo.SouthLatitude)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Int32, serviceInfo.SiteCount)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Int32, serviceInfo.VariableCount)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Int32, serviceInfo.ValueCount)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Int32, serviceInfo.Id)); + + cmd.ExecuteNonQuery(); + } + + tran.Commit(); + } + } + } + + private void addColumn(string colName) + { + string sql = "ALTER TABLE DataServices ADD COLUMN " + colName +" INTEGER"; + using (DbConnection conn = _db.CreateConnection()) + { + conn.Open(); + using (DbTransaction tran = conn.BeginTransaction()) + { + using (DbCommand cmd = conn.CreateCommand()) + { + cmd.CommandText = sql; + cmd.ExecuteNonQuery(); + } + tran.Commit(); + } + } + } + + private bool columnExists(string colName) + { + try + { + string sql = "Select " + colName + " from DataServices"; + using (DbConnection conn = _db.CreateConnection()) + { + conn.Open(); + using (DbTransaction tran = conn.BeginTransaction()) + { + using (DbCommand cmd = conn.CreateCommand()) + { + cmd.CommandText = sql; + cmd.ExecuteNonQuery(); + } + tran.Commit(); + } + } + return true; + } + catch (SQLiteException e) + { + return false; + } + } + } +} + diff --git a/Source/Core/HydroDesktop.Data/Database/MethodsRepository.cs b/Source/Core/HydroDesktop.Data/Database/MethodsRepository.cs new file mode 100644 index 00000000..57de9d14 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/MethodsRepository.cs @@ -0,0 +1,76 @@ +using System; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + /// + /// Repository for Methods + /// + class MethodsRepository : BaseRepository, IMethodsRepository + { + #region Constructors + + public MethodsRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + } + + public MethodsRepository(IHydroDbOperations db) + : base(db) + { + } + + #endregion + + #region Public methods + + public long InsertMethod(string methodDescription, string methodLink) + { + var methodID = DbOperations.GetNextID(TableName, "MethodID"); + DbOperations.ExecuteNonQuery( + string.Format( + "INSERT INTO Methods(MethodID, MethodDescription, MethodLink) VALUES ({0}, '{1}', '{2}')", methodID, + methodDescription, methodLink)); + return methodID; + } + + public void UpdateMethod(int methodID, string methodDescription, string methodLink) + { + DbOperations.ExecuteNonQuery( + string.Format("UPDATE Methods SET MethodDescription='{0}', MethodLink='{1}' Where MethodID = {2}", + methodDescription, methodLink, methodID) + ); + } + + public int? GetMethodID(string methodDescription) + { + var res = DbOperations.ExecuteSingleOutput(string.Format("select MethodID from Methods where MethodDescription='{0}'", methodDescription)); + if (res == null || res == DBNull.Value) + return null; + return Convert.ToInt32(res); + } + + #endregion + + protected override Method DataRowToEntity(System.Data.DataRow row) + { + return new Method + { + Id = Convert.ToInt32(row["MethodID"]), + Code = Convert.ToInt32(row["MethodID"]), + Description = Convert.ToString(row["MethodDescription"]), + Link = Convert.ToString(row["MethodLink"]), + }; + } + + protected override string TableName + { + get { return "Methods"; } + } + + protected override string PrimaryKeyName + { + get { return "MethodID"; } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/OffsetTypesRepository.cs b/Source/Core/HydroDesktop.Data/Database/OffsetTypesRepository.cs new file mode 100644 index 00000000..c53adcc2 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/OffsetTypesRepository.cs @@ -0,0 +1,48 @@ +using System; +using System.Data; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + /// + /// Repository for + /// + class OffsetTypesRepository : BaseRepository, IOffsetTypesRepository + { + private readonly IUnitsRepository _unitsRepository = RepositoryFactory.Instance.Get(); + + #region Constructors + + public OffsetTypesRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + } + + public OffsetTypesRepository(IHydroDbOperations db) : base(db) + { + } + + #endregion + + protected override string TableName + { + get { return "OffsetTypes"; } + } + + protected override OffsetType DataRowToEntity(DataRow row) + { + var entity = new OffsetType + { + Id = Convert.ToInt64(row["OffsetTypeID"]), + Description = Convert.ToString(row["OffsetDescription"]), + Unit = _unitsRepository.GetByKey(row["OffsetUnitsID"]), + }; + return entity; + } + + protected override string PrimaryKeyName + { + get { return "OffsetTypeID"; } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/QualifiersRepository.cs b/Source/Core/HydroDesktop.Data/Database/QualifiersRepository.cs new file mode 100644 index 00000000..efbb84c8 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/QualifiersRepository.cs @@ -0,0 +1,83 @@ +using System; +using System.Data; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + class QualifiersRepository : BaseRepository, IQualifiersRepository + { + #region Contsructors + + public QualifiersRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + } + + public QualifiersRepository(IHydroDbOperations db) : base(db) + { + } + + #endregion + + public Qualifier FindByCodeOrCreate(string qualifierCode) + { + var entity = FindByCode(qualifierCode); + if (entity == null) + { + entity = new Qualifier {Code = qualifierCode, Description = string.Empty}; + AddQualifier(entity); + } + + return entity; + } + + public Qualifier FindByCode(string qualifierCode) + { + var res = DbOperations.LoadTable(string.Format("select * from {0} where QualifierCode='{1}'", TableName, + qualifierCode)); + if (res.Rows.Count == 0) + return null; + return DataRowToEntity(res.Rows[0]); + } + + public void Update(Qualifier entity) + { + var query = "UPDATE Qualifiers SET QualifierCode = ?, QualifierDescription = ? WHERE QualifierID = " + + entity.Id; + DbOperations.ExecuteNonQuery(query, new object[] {entity.Code, entity.Description}); + } + + public void AddQualifier(Qualifier entity) + { + var query = "INSERT INTO Qualifiers(QualifierCode, QualifierDescription) VALUES (?, ?)" + + LastRowIDSelect; + var id = DbOperations.ExecuteSingleOutput(query, new object[] + { + entity.Code, + entity.Description + }); + entity.Id = Convert.ToInt64(id); + } + + protected override string TableName + { + get { return "Qualifiers"; } + } + + protected override string PrimaryKeyName + { + get { return "QualifierID"; } + } + + protected override Qualifier DataRowToEntity(DataRow row) + { + var entity = new Qualifier + { + Id = Convert.ToInt64(row["QualifierID"]), + Description = Convert.ToString("QualifierDescription"), + Code = Convert.ToString("QualifierCode"), + }; + return entity; + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/QualityControlLevelsRepository.cs b/Source/Core/HydroDesktop.Data/Database/QualityControlLevelsRepository.cs new file mode 100644 index 00000000..a84ff0cc --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/QualityControlLevelsRepository.cs @@ -0,0 +1,68 @@ +using System; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + class QualityControlLevelsRepository : BaseRepository, IQualityControlLevelsRepository + { + #region Constructors + + public QualityControlLevelsRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + } + + public QualityControlLevelsRepository(IHydroDbOperations db) : base(db) + { + } + + #endregion + + public void AddNew(QualityControlLevel entity) + { + var query = + "INSERT INTO QualityControlLevels(QualityControlLevelCode, Definition, Explanation) VALUES (?, ?, ?)" + + LastRowIDSelect; + var id = DbOperations.ExecuteSingleOutput(query, new object[] + { + entity.Code, entity.Definition, entity.Explanation + }); + entity.Id = Convert.ToInt64(id); + } + + public void Update(QualityControlLevel entity) + { + const string query = "UPDATE QualityControlLevels SET QualityControlLevelCode=?, Definition=?, Explanation=? WHERE QualityControlLevelID = ?"; + DbOperations.ExecuteNonQuery(query, new object[] + { + entity.Code, entity.Definition, entity.Explanation, + entity.Id + }); + } + + protected override QualityControlLevel DataRowToEntity(System.Data.DataRow row) + { + var res = new QualityControlLevel + { + Id = Convert.ToInt64(row["QualityControlLevelID"]), + Code = Convert.ToString(row["QualityControlLevelCode"]), + Definition = Convert.ToString(row["Definition"]), + Explanation = Convert.ToString(row["Explanation"]), + }; + return res; + } + + protected override string PrimaryKeyName + { + get + { + return "QualityControlLevelID"; + } + } + + protected override string TableName + { + get { return "QualityControlLevels"; } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/RepositoryFactory.Register.cs b/Source/Core/HydroDesktop.Data/Database/RepositoryFactory.Register.cs new file mode 100644 index 00000000..04b428b0 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/RepositoryFactory.Register.cs @@ -0,0 +1,126 @@ +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.DAL; + +namespace HydroDesktop.Database +{ + public partial class RepositoryFactory + { + partial void Register() + { + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new DbRepositoryManagerSQL(dbType, connStr), + CreatorByDbOperations = dbOp => new DbRepositoryManagerSQL(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new DataSeriesRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new DataSeriesRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new DataThemesRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new DataThemesRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new MethodsRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new MethodsRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new VariablesRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new VariablesRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new UnitsRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new UnitsRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new DataValuesRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new DataValuesRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new SitesRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new SitesRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new SourcesRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new SourcesRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new QualityControlLevelsRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new QualityControlLevelsRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new OffsetTypesRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new OffsetTypesRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new QualifiersRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new QualifiersRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new DataServicesRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new DataServicesRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new SamplesRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new SamplesRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new DataFilesRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new DataFilesRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new SeriesProvenanceRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new SeriesProvenanceRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new UnitConversionsRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new UnitConversionsRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new SpatialReferenceRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new SpatialReferenceRepository(dbOp) + }); + Add( + new RepositoryCreator + { + CreatorByConnectionString = (dbType, connStr) => new ISOMetadataRepository(dbType, connStr), + CreatorByDbOperations = dbOp => new ISOMetadataRepository(dbOp) + }); + } + } +} diff --git a/Source/Core/HydroDesktop.Data/Database/RepositoryFactory.cs b/Source/Core/HydroDesktop.Data/Database/RepositoryFactory.cs new file mode 100644 index 00000000..08604d1f --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/RepositoryFactory.cs @@ -0,0 +1,120 @@ +using System; +using System.Collections.Generic; +using HydroDesktop.Configuration; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Database +{ + /// + /// Factory to get repositories + /// + public partial class RepositoryFactory + { + #region Fields + + private readonly Dictionary _repositoryCreators; + + #endregion + + #region Constructors + + private RepositoryFactory() + { + _repositoryCreators = new Dictionary(); + Register(); + } + + partial void Register(); + + #endregion + + #region Singletone implementation + + private static readonly Lazy _instance = new Lazy(() => new RepositoryFactory(), true); + /// + /// Instance of RepositoryFactory + /// + public static RepositoryFactory Instance + { + get { return _instance.Value; } + } + + #endregion + + #region Public methods + + /// + /// Get instance of repository of type T using default settings + /// + /// Instance of T + public T Get() + { + return Get(DatabaseTypes.SQLite, Settings.Instance.DataRepositoryConnectionString); + } + + /// + /// Get instance of T using connection string + /// + /// The type of the database (SQLite, SQLServer, ...) + /// The connection string + /// Instance of T + public T Get(DatabaseTypes dbType, string connectionString) + { + RepositoryCreator repoCreator; + if (!_repositoryCreators.TryGetValue(typeof(T), out repoCreator)) + { + throw new Exception("Interface not registered."); + } + + if (repoCreator != null && repoCreator.CreatorByConnectionString != null) + { + return (T)repoCreator.CreatorByConnectionString(dbType, connectionString); + } + + return default(T); + } + + /// + /// Get instance of T using DbOperations + /// + /// The DbOperations object for handling the database + /// Instance of T + public T Get(IHydroDbOperations dbOperations) + { + RepositoryCreator repoCreator; + if (!_repositoryCreators.TryGetValue(typeof(T), out repoCreator)) + { + throw new Exception("Interface not registered."); + } + + if (repoCreator != null && repoCreator.CreatorByDbOperations != null) + { + return (T)repoCreator.CreatorByDbOperations(dbOperations); + } + + return default(T); + } + + #endregion + + #region Private methods + + private void Add(RepositoryCreator creator) + { + _repositoryCreators.Add(typeof(T), creator); + } + + #endregion + + #region Nested type: RepositoryCreator + + private class RepositoryCreator + { + public Func CreatorByConnectionString { get; set; } + public Func CreatorByDbOperations { get; set; } + + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/RepositoryManagerSQL.cs b/Source/Core/HydroDesktop.Data/Database/RepositoryManagerSQL.cs new file mode 100644 index 00000000..eeae3244 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/RepositoryManagerSQL.cs @@ -0,0 +1,1603 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Common; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + /// + /// Helper class for reading and writing HydroDesktop objects to + /// and from the HydroDesktop data repository SQLite database + /// + class DbRepositoryManagerSQL : BaseRepository, IRepositoryManager + { + #region Constructor + /// + /// Creates a new instance of the manager given a connection string + /// + /// The type of the database (SQLite, SQLServer, ...) + /// The connection string + public DbRepositoryManagerSQL(DatabaseTypes dbType, string connectionString) + : base(dbType, connectionString) + { + + } + + /// + /// Creates a new RepositoryManager associated with the specified database + /// + /// The DbOperations object for handling the database + public DbRepositoryManagerSQL(IHydroDbOperations db) + :base(db) + { + } + + #endregion + + #region Properties + + private IHydroDbOperations _db + { + get { return DbOperations; } + } + + protected override string TableName + { + get { throw new NotImplementedException(); } + } + + #endregion + + #region Save Series + + /// + /// Simplified version of SaveSeries (for HydroForecaster) + /// + /// site ID + /// variable ID + /// description of method + /// theme name + /// The table with data values. First column must be DateTime and second column must be Double. + /// number of saved data values + public int SaveSeries(int siteID, int variableID, string methodDescription, string themeName, DataTable dataValues) + { + string sqlSaveSeries = "INSERT INTO DataSeries(SiteID, VariableID, MethodID, SourceID, QualityControlLevelID, " + + "IsCategorical, BeginDateTime, EndDateTime, BeginDateTimeUTC, EndDateTimeUTC, ValueCount, CreationDateTime, " + + "Subscribed, UpdateDateTime, LastCheckedDateTime) " + + "VALUES(?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?)" + LastRowIDSelect; + + string sqlSaveTheme1 = "INSERT INTO DataThemeDescriptions(ThemeName, ThemeDescription) VALUES (?,?)" + LastRowIDSelect; + string sqlSaveTheme2 = "INSERT INTO DataThemes(ThemeID,SeriesID) VALUEs (?,?)"; + + + int methodID = 0; + int qualityControlLevelID = 0; + int sourceID = 0; + int seriesID = 0; + long themeID = 0; + + //create the series object + Series series = new Series(); + series.Variable = new Variable(); + series.Method = Method.Unknown; + series.Method.Description = methodDescription; + + //to add the data values + foreach (DataRow row in dataValues.Rows) + { + series.AddDataValue(Convert.ToDateTime(row[0]), Convert.ToDouble(row[1])); + } + + var theme = new Theme(themeName); + + int numSavedValues; + + //Step 1 Begin Transaction + using (DbConnection conn = _db.CreateConnection()) + { + conn.Open(); + + using (DbTransaction tran = conn.BeginTransaction()) + { + methodID = GetOrCreateMethodID(series.Method, conn); + qualityControlLevelID = GetOrCreateQualityControlLevelID(series.QualityControlLevel, conn); + sourceID = GetOrCreateSourceID(series.Source, conn); + + using (DbCommand cmd18 = conn.CreateCommand()) + { + cmd18.CommandText = sqlSaveSeries; + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, siteID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, variableID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, methodID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, sourceID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, qualityControlLevelID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Boolean, series.IsCategorical)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.BeginDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.EndDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.BeginDateTimeUTC)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.EndDateTimeUTC)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, series.ValueCount)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.CreationDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Boolean, series.Subscribed)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.UpdateDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.LastCheckedDateTime)); + + var seriesIDResult = cmd18.ExecuteScalar(); + seriesID = Convert.ToInt32(seriesIDResult); + } + + Dictionary qualifierLookup; + Dictionary sampleLookup; + Dictionary offsetLookup; + GetLookups(series, out qualifierLookup, out sampleLookup, out offsetLookup); + + SaveQualifiers(conn, qualifierLookup); + SaveSamplesAndLabMethods(conn, sampleLookup); + SaveOffsets(conn, offsetLookup); + numSavedValues = SaveDataValues(conn, seriesID, series.DataValueList); + + //**************************************************************** + //*** Step 14 Data Theme *********** + //**************************************************************** + var themeIDResult = GetThemeID(conn, theme); + if (themeIDResult.HasValue) + { + themeID = themeIDResult.Value; + } + + if (themeID == 0) + { + using (DbCommand cmd23 = conn.CreateCommand()) + { + cmd23.CommandText = sqlSaveTheme1; + cmd23.Parameters.Add(_db.CreateParameter(DbType.String, theme.Name)); + cmd23.Parameters.Add(_db.CreateParameter(DbType.String, theme.Description)); + themeID = Convert.ToInt32(cmd23.ExecuteScalar()); + } + } + + using (DbCommand cmd24 = conn.CreateCommand()) + { + cmd24.CommandText = sqlSaveTheme2; + cmd24.Parameters.Add(_db.CreateParameter(DbType.Int32, themeID)); + cmd24.Parameters.Add(_db.CreateParameter(DbType.Int32, seriesID)); + cmd24.ExecuteNonQuery(); + } + + //Step 13 Commit Transaction + tran.Commit(); + } + conn.Close(); + } + return numSavedValues; + } + + /// + /// Saves a data series to the database. The series will be associated with the + /// specified theme. Depending on the OverwriteOptions, this will check if the series + /// already exists in the database and overwrite data values in the database if required. + /// + /// The data series to be saved. This should contain + /// information about site, variable, method, source and quality control level. + /// The theme where this series should belong to + /// The overwrite options. Set this to 'Copy' if + /// a new series should be created in the database. For options other than 'Copy', + /// some of the existing data values in the database may be overwritten. + public int SaveSeries(Series seriesToSave, Theme theme, OverwriteOptions overwrite) + { + switch (overwrite) + { + case OverwriteOptions.Fill: + case OverwriteOptions.Append: + return SaveSeriesAppend(seriesToSave, theme); + case OverwriteOptions.Copy: + return SaveSeriesAsCopy(seriesToSave, theme); + case OverwriteOptions.Overwrite: + return SaveSeriesOverwrite(seriesToSave, theme); + default: + goto case OverwriteOptions.Append; + } + } + + /// + /// Saves a data series to the database. The series will be associated with the + /// specified theme. This method checks whether there are any existing series with + /// the same properties in the database. If there are existing series with the same + /// properties, the new data values are 'appended' to the existing series (no duplicate + /// series or data values are created) + /// + /// The time series + /// The associated theme + /// Number of DataValue saved + private int SaveSeriesAppend(Series series, Theme theme) + { + const string sqlThemeSeries = "SELECT ThemeID FROM DataThemes WHERE ThemeID = ? AND SeriesID = ?"; + string sqlSeries = "SELECT SeriesID, BeginDateTime, BeginDateTimeUTC, EndDateTime, EndDateTimeUTC, ValueCount FROM DataSeries WHERE SiteID = ? AND VariableID = ? AND MethodID = ? AND QualityControlLevelID = ? AND SourceID = ?"; + string sqlSaveSeries = "INSERT INTO DataSeries(SiteID, VariableID, MethodID, SourceID, QualityControlLevelID, " + + "IsCategorical, BeginDateTime, EndDateTime, BeginDateTimeUTC, EndDateTimeUTC, ValueCount, CreationDateTime, " + + "Subscribed, UpdateDateTime, LastCheckedDateTime) " + + "VALUES(?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?)" + LastRowIDSelect; + + string sqlSaveTheme1 = "INSERT INTO DataThemeDescriptions(ThemeName, ThemeDescription) VALUES (?,?)" + LastRowIDSelect; + string sqlSaveTheme2 = "INSERT INTO DataThemes(ThemeID,SeriesID) VALUEs (?,?)"; + + string sqlUpdateSeries = "UPDATE DataSeries SET BeginDateTime = ?, BeginDateTimeUTC = ?, EndDateTime = ?, EndDateTimeUTC = ?, " + + "ValueCount = ?, UpdateDateTime = ? WHERE SeriesID = ?"; + + int siteID; + int variableID; + int methodID; + int qualityControlLevelID; + int sourceID; + int seriesID; + long themeID = 0; + + object seriesIDResult = null; + + int numSavedValues = 0; + + bool seriesAlreadyExists = false; + var beginTimeDb = DateTime.MinValue; + var endTimeDb = DateTime.MinValue; + var valueCountDb = 0; + + //Step 1 Begin Transaction + using (var conn = _db.CreateConnection()) + { + conn.Open(); + + using (DbTransaction tran = conn.BeginTransaction()) + { + siteID = GetOrCreateSiteID(series.Site, conn); + variableID = GetOrCreateVariableID(series.Variable, conn); + methodID = GetOrCreateMethodID(series.Method, conn); + qualityControlLevelID = GetOrCreateQualityControlLevelID(series.QualityControlLevel, conn); + sourceID = GetOrCreateSourceID(series.Source, conn); + + //**************************************************************** + //*** Step 7 Series + //**************************************************************** + using (DbCommand cmdSeries = conn.CreateCommand()) + { + //To retrieve the BeginTime, EndTime and SeriesID of the existing series + cmdSeries.CommandText = sqlSeries; + cmdSeries.Parameters.Add(_db.CreateParameter(DbType.Int32, siteID)); + cmdSeries.Parameters.Add(_db.CreateParameter(DbType.Int32, variableID)); + cmdSeries.Parameters.Add(_db.CreateParameter(DbType.Int32, methodID)); + cmdSeries.Parameters.Add(_db.CreateParameter(DbType.Int32, qualityControlLevelID)); + cmdSeries.Parameters.Add(_db.CreateParameter(DbType.Int32, sourceID)); + + DbDataReader reader = cmdSeries.ExecuteReader(CommandBehavior.SingleRow); + if (reader.HasRows) + { + seriesIDResult = reader[0]; + try + { + beginTimeDb = Convert.ToDateTime(reader[1]); + endTimeDb = Convert.ToDateTime(reader[3]); + valueCountDb = Convert.ToInt32(reader[5]); + } + catch { } + finally + { + reader.Close(); + reader.Dispose(); + } + } + } + + + if (seriesIDResult != null && beginTimeDb > DateTime.MinValue && endTimeDb > DateTime.MinValue) + { + //Case 1: Series Already Exists. + seriesAlreadyExists = true; + seriesID = Convert.ToInt32(seriesIDResult); + + //If the series already exists, don't save any data values within the existing series time range + //to do this, we remove data values that should not be saved from the DataValueList + for (int i = series.DataValueList.Count - 1; i >= 0; i--) + { + DataValue val = series.DataValueList[i]; + if (val.LocalDateTime >= beginTimeDb && val.LocalDateTime <= endTimeDb) + { + series.DataValueList.Remove(val); + } + } + } + else + { + //Case 2: Series does not exist. + using (DbCommand cmd18 = conn.CreateCommand()) + { + cmd18.CommandText = sqlSaveSeries; + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, siteID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, variableID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, methodID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, sourceID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, qualityControlLevelID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Boolean, series.IsCategorical)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.BeginDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.EndDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.BeginDateTimeUTC)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.EndDateTimeUTC)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, series.ValueCount)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.CreationDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Boolean, series.Subscribed)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.UpdateDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.LastCheckedDateTime)); + + seriesIDResult = cmd18.ExecuteScalar(); + seriesID = Convert.ToInt32(seriesIDResult); + } + } + + //********************************************************************** + //*** Data Value - related: Only if new data values are saved ********** + //********************************************************************** + if (series.DataValueList.Count > 0) + { + + //**************************************************************** + //*** Step 8 Qualifier and Sample Lookup + //**************************************************************** + Dictionary qualifierLookup; + Dictionary sampleLookup; + Dictionary offsetLookup; + GetLookups(series, out qualifierLookup, out sampleLookup, out offsetLookup); + + SaveQualifiers(conn, qualifierLookup); + SaveSamplesAndLabMethods(conn, sampleLookup); + SaveOffsets(conn, offsetLookup); + numSavedValues = SaveDataValues(conn, seriesID, series.DataValueList); + + //**************************************************************** + //*** Step 14 Data Series Update *********** + //**************************************************************** + if (seriesAlreadyExists && seriesID > 0) + { + //begin DateTime + DateTime beginDateTime = beginTimeDb; + DateTime beginDateTimeUTC = beginTimeDb; + if (series.BeginDateTime < beginTimeDb) + { + beginDateTime = series.BeginDateTime; + beginDateTimeUTC = series.BeginDateTimeUTC; + } + + //end DateTime + DateTime endDateTime = endTimeDb; + DateTime endDateTimeUTC = endTimeDb; + if (series.EndDateTime > endTimeDb) + { + endDateTime = series.EndDateTime; + endDateTimeUTC = series.EndDateTimeUTC; + } + + //valueCount and UpdateDateTime + int valueCount = valueCountDb + series.ValueCount; + DateTime updateDateTime = DateTime.Now; + + using (DbCommand cmdUpdateSeries = conn.CreateCommand()) + { + cmdUpdateSeries.CommandText = sqlUpdateSeries; + cmdUpdateSeries.Parameters.Add(_db.CreateParameter(DbType.DateTime, beginDateTime)); + cmdUpdateSeries.Parameters.Add(_db.CreateParameter(DbType.DateTime, beginDateTimeUTC)); + cmdUpdateSeries.Parameters.Add(_db.CreateParameter(DbType.DateTime, endDateTime)); + cmdUpdateSeries.Parameters.Add(_db.CreateParameter(DbType.DateTime, endDateTimeUTC)); + cmdUpdateSeries.Parameters.Add(_db.CreateParameter(DbType.Int32, valueCount)); + cmdUpdateSeries.Parameters.Add(_db.CreateParameter(DbType.DateTime, updateDateTime)); + cmdUpdateSeries.Parameters.Add(_db.CreateParameter(DbType.Int32, seriesID)); + + cmdUpdateSeries.ExecuteNonQuery(); + } + } + } //End of (If DataValueList.Count > 0) + + //**************************************************************** + //*** Step 15 Data Theme *********** + //**************************************************************** + // string sqlThemeSeries = "SELECT ThemeID FROM DataThemes WHERE ThemeID = ? AND SeriesID = ?"; + // string sqlSaveTheme1 = "INSERT INTO DataThemeDescriptions(ThemeName, ThemeDescription) VALUES (?,?)" + LastRowIDSelect; + // string sqlSaveTheme2 = "INSERT INTO DataThemes(ThemeID,SeriesID) VALUEs (?,?)"; + // Database changes need to happen here - Eric Hullinger + var themeIDResult = GetThemeID(conn, theme); + if (themeIDResult.HasValue) + { + themeID = themeIDResult.Value; + } + if (themeID == 0) + { + using (DbCommand cmd23 = conn.CreateCommand()) + { + cmd23.CommandText = sqlSaveTheme1; + cmd23.Parameters.Add(_db.CreateParameter(DbType.String, theme.Name)); + cmd23.Parameters.Add(_db.CreateParameter(DbType.String, theme.Description)); + themeID = Convert.ToInt32(cmd23.ExecuteScalar()); + } + } + + //To save the Theme-Series combination (DataThemes DataTable) + object seriesThemeCombinationResult; + using (DbCommand cmd24 = conn.CreateCommand()) + { + cmd24.CommandText = sqlThemeSeries; + cmd24.Parameters.Add(_db.CreateParameter(DbType.Int32, themeID)); + cmd24.Parameters.Add(_db.CreateParameter(DbType.Int32, seriesID)); + seriesThemeCombinationResult = cmd24.ExecuteScalar(); + } + + if (seriesThemeCombinationResult == null) + { + using (DbCommand cmd25 = conn.CreateCommand()) + { + cmd25.CommandText = sqlSaveTheme2; + cmd25.Parameters.Add(_db.CreateParameter(DbType.Int32, themeID)); + cmd25.Parameters.Add(_db.CreateParameter(DbType.Int32, seriesID)); + cmd25.ExecuteNonQuery(); + } + } + + + //Step 13 Commit Transaction + tran.Commit(); + } + conn.Close(); + } + + series.Id = seriesID; + + return numSavedValues; + } + + /// + /// Saves a data series to the database. The series will be associated with the + /// specified theme. This method checks whether there is any existing series with + /// the same site, variable, method, source and QCLevel in the database. If there + /// is an existing series with the same properties, the existing series is deleted + /// and it is replaced by the new series. + /// + /// The time series + /// The associated theme + /// Number of DataValue saved + private int SaveSeriesOverwrite(Series series, Theme theme) + { + const string sqlThemeSeries = "SELECT ThemeID FROM DataThemes WHERE ThemeID = ? AND SeriesID = ?"; + const string sqlSeries = "SELECT SeriesID, BeginDateTime, BeginDateTimeUTC, EndDateTime, EndDateTimeUTC, ValueCount FROM DataSeries WHERE SiteID = ? AND VariableID = ? AND MethodID = ? AND QualityControlLevelID = ? AND SourceID = ?"; + string sqlSaveSeries = "INSERT INTO DataSeries(SiteID, VariableID, MethodID, SourceID, QualityControlLevelID, " + + "IsCategorical, BeginDateTime, EndDateTime, BeginDateTimeUTC, EndDateTimeUTC, ValueCount, CreationDateTime, " + + "Subscribed, UpdateDateTime, LastCheckedDateTime) " + + "VALUES(?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?)" + LastRowIDSelect; + + string sqlSaveTheme1 = "INSERT INTO DataThemeDescriptions(ThemeName, ThemeDescription) VALUES (?,?)" + LastRowIDSelect; + string sqlSaveTheme2 = "INSERT INTO DataThemes(ThemeID,SeriesID) VALUEs (?,?)"; + + const string sqlUpdateSeries = "UPDATE DataSeries SET BeginDateTime = ?, BeginDateTimeUTC = ?, EndDateTime = ?, EndDateTimeUTC = ?, " + + "ValueCount = ?, UpdateDateTime = ? WHERE SeriesID = ?"; + + const string sqlDeleteValues = "DELETE FROM DataValues WHERE SeriesID = ? AND LocalDateTime >= ? AND LocalDateTime <= ?"; + + int siteID; + int variableID; + int methodID; + int qualityControlLevelID; + int sourceID; + int seriesID; + long themeID = 0; + + object seriesIDResult = null; + + int numSavedValues = 0; + + bool seriesAlreadyExists; + DateTime beginTimeDb = DateTime.MinValue; + DateTime endTimeDb = DateTime.MinValue; + int valueCountDb = 0; + + //Step 1 Begin Transaction + using (DbConnection conn = _db.CreateConnection()) + { + conn.Open(); + + using (DbTransaction tran = conn.BeginTransaction()) + { + siteID = GetOrCreateSiteID(series.Site, conn); + variableID = GetOrCreateVariableID(series.Variable, conn); + methodID = GetOrCreateMethodID(series.Method, conn); + qualityControlLevelID = GetOrCreateQualityControlLevelID(series.QualityControlLevel, conn); + sourceID = GetOrCreateSourceID(series.Source, conn); + + //**************************************************************** + //*** Step 7 Series + //**************************************************************** + using (DbCommand cmdSeries = conn.CreateCommand()) + { + //To retrieve the BeginTime, EndTime and SeriesID of the existing series + cmdSeries.CommandText = sqlSeries; + cmdSeries.Parameters.Add(_db.CreateParameter(DbType.Int32, siteID)); + cmdSeries.Parameters.Add(_db.CreateParameter(DbType.Int32, variableID)); + cmdSeries.Parameters.Add(_db.CreateParameter(DbType.Int32, methodID)); + cmdSeries.Parameters.Add(_db.CreateParameter(DbType.Int32, qualityControlLevelID)); + cmdSeries.Parameters.Add(_db.CreateParameter(DbType.Int32, sourceID)); + + DbDataReader reader = cmdSeries.ExecuteReader(CommandBehavior.SingleRow); + if (reader.HasRows) + { + //a series already exists: + seriesIDResult = reader[0]; + try + { + beginTimeDb = Convert.ToDateTime(reader[1]); + endTimeDb = Convert.ToDateTime(reader[3]); + valueCountDb = Convert.ToInt32(reader[5]); + } + catch { } + finally + { + reader.Close(); + reader.Dispose(); + } + } + } + + + if (seriesIDResult != null && beginTimeDb > DateTime.MinValue && endTimeDb > DateTime.MinValue) + { + //Case 1: Series Already Exists. + seriesAlreadyExists = true; + seriesID = Convert.ToInt32(seriesIDResult); + + //If the series already exists, delete any values within the existing time range from the database. + //also remove all items associated with the data values (qualifiers, samples..) + using (DbCommand cmdDeleteValues = conn.CreateCommand()) + { + cmdDeleteValues.CommandText = sqlDeleteValues; + cmdDeleteValues.Parameters.Add(_db.CreateParameter(DbType.Int32, seriesID)); + cmdDeleteValues.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.BeginDateTime)); + cmdDeleteValues.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.EndDateTime)); + var deletedCount = cmdDeleteValues.ExecuteNonQuery(); + valueCountDb -= deletedCount; // Correct valueCount + } + } + else + { + //Case 2: Series does not exist. + seriesAlreadyExists = false; + using (DbCommand cmd18 = conn.CreateCommand()) + { + cmd18.CommandText = sqlSaveSeries; + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, siteID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, variableID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, methodID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, sourceID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, qualityControlLevelID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Boolean, series.IsCategorical)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.BeginDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.EndDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.BeginDateTimeUTC)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.EndDateTimeUTC)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, series.ValueCount)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.CreationDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Boolean, series.Subscribed)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.UpdateDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.LastCheckedDateTime)); + + seriesIDResult = cmd18.ExecuteScalar(); + seriesID = Convert.ToInt32(seriesIDResult); + } + } + + //********************************************************************** + //*** Data Value - related: Only if new data values are saved ********** + //********************************************************************** + if (series.DataValueList.Count > 0) + { + + //**************************************************************** + //*** Step 8 Qualifier and Sample Lookup + //**************************************************************** + Dictionary qualifierLookup; + Dictionary sampleLookup; + Dictionary offsetLookup; + GetLookups(series, out qualifierLookup, out sampleLookup, out offsetLookup); + + SaveQualifiers(conn, qualifierLookup); + SaveSamplesAndLabMethods(conn, sampleLookup); + SaveOffsets(conn, offsetLookup); + numSavedValues = SaveDataValues(conn, seriesID, series.DataValueList); + + //**************************************************************** + //*** Step 14 Data Series Update *********** + //**************************************************************** + if (seriesAlreadyExists && seriesID > 0) + { + //begin DateTime + DateTime beginDateTime = beginTimeDb; + DateTime beginDateTimeUTC = beginTimeDb; + if (series.BeginDateTime < beginTimeDb) + { + beginDateTime = series.BeginDateTime; + beginDateTimeUTC = series.BeginDateTimeUTC; + } + + //end DateTime + DateTime endDateTime = endTimeDb; + DateTime endDateTimeUTC = endTimeDb; + if (series.EndDateTime > endTimeDb) + { + endDateTime = series.EndDateTime; + endDateTimeUTC = series.EndDateTimeUTC; + } + + //valueCount and UpdateDateTime + int valueCount = valueCountDb + series.ValueCount; + DateTime updateDateTime = DateTime.Now; + + using (DbCommand cmdUpdateSeries = conn.CreateCommand()) + { + cmdUpdateSeries.CommandText = sqlUpdateSeries; + cmdUpdateSeries.Parameters.Add(_db.CreateParameter(DbType.DateTime, beginDateTime)); + cmdUpdateSeries.Parameters.Add(_db.CreateParameter(DbType.DateTime, beginDateTimeUTC)); + cmdUpdateSeries.Parameters.Add(_db.CreateParameter(DbType.DateTime, endDateTime)); + cmdUpdateSeries.Parameters.Add(_db.CreateParameter(DbType.DateTime, endDateTimeUTC)); + cmdUpdateSeries.Parameters.Add(_db.CreateParameter(DbType.Int32, valueCount)); + cmdUpdateSeries.Parameters.Add(_db.CreateParameter(DbType.DateTime, updateDateTime)); + cmdUpdateSeries.Parameters.Add(_db.CreateParameter(DbType.Int32, seriesID)); + + cmdUpdateSeries.ExecuteNonQuery(); + } + } + } //End of (If DataValueList.Count > 0) + + //**************************************************************** + //*** Step 15 Data Theme *********** + //**************************************************************** + + var themeIDResult = GetThemeID(conn, theme); + if (themeIDResult.HasValue) + { + themeID = themeIDResult.Value; + } + if (themeID == 0) + { + using (DbCommand cmd23 = conn.CreateCommand()) + { + cmd23.CommandText = sqlSaveTheme1; + cmd23.Parameters.Add(_db.CreateParameter(DbType.String, theme.Name)); + cmd23.Parameters.Add(_db.CreateParameter(DbType.String, theme.Description)); + themeID = Convert.ToInt32(cmd23.ExecuteScalar()); + } + } + + //To save the Theme-Series combination (DataThemes DataTable) + object seriesThemeCombinationResult; + using (DbCommand cmd24 = conn.CreateCommand()) + { + cmd24.CommandText = sqlThemeSeries; + cmd24.Parameters.Add(_db.CreateParameter(DbType.Int32, themeID)); + cmd24.Parameters.Add(_db.CreateParameter(DbType.Int32, seriesID)); + seriesThemeCombinationResult = cmd24.ExecuteScalar(); + } + + if (seriesThemeCombinationResult == null) + { + using (DbCommand cmd25 = conn.CreateCommand()) + { + cmd25.CommandText = sqlSaveTheme2; + cmd25.Parameters.Add(_db.CreateParameter(DbType.Int32, themeID)); + cmd25.Parameters.Add(_db.CreateParameter(DbType.Int32, seriesID)); + cmd25.ExecuteNonQuery(); + } + } + + + //Step 13 Commit Transaction + tran.Commit(); + } + conn.Close(); + } + series.Id = seriesID; + + return numSavedValues; + } + + /// + /// Saves a data series to the database. The series will be associated with the + /// specified theme. This method does not check whether there are any existing series with + /// the same properties in the database. It will always create a new 'copy' of the series + /// + /// The time series + /// The associated theme + /// Number of DataValue saved + private int SaveSeriesAsCopy(Series series, Theme theme) + { + string sqlSaveSeries = "INSERT INTO DataSeries(SiteID, VariableID, MethodID, SourceID, QualityControlLevelID, " + + "IsCategorical, BeginDateTime, EndDateTime, BeginDateTimeUTC, EndDateTimeUTC, ValueCount, CreationDateTime, " + + "Subscribed, UpdateDateTime, LastCheckedDateTime) " + + "VALUES(?, ?, ?, ?,?,?,?,?,?,?,?,?,?,?,?)" + LastRowIDSelect; + string sqlSaveTheme1 = "INSERT INTO DataThemeDescriptions(ThemeName, ThemeDescription) VALUES (?,?)" + LastRowIDSelect; + string sqlSaveTheme2 = "INSERT INTO DataThemes(ThemeID,SeriesID) VALUEs (?,?)"; + + int siteID = 0; + int variableID = 0; + int methodID = 0; + int qualityControlLevelID = 0; + int sourceID = 0; + int seriesID = 0; + long themeID = 0; + + object seriesIDResult = null; + + int numSavedValues = 0; + + //Step 1 Begin Transaction + using (DbConnection conn = _db.CreateConnection()) + { + conn.Open(); + + using (DbTransaction tran = conn.BeginTransaction()) + { + siteID = GetOrCreateSiteID(series.Site, conn); + variableID = GetOrCreateVariableID(series.Variable, conn); + methodID = GetOrCreateMethodID(series.Method, conn); + qualityControlLevelID = GetOrCreateQualityControlLevelID(series.QualityControlLevel, conn); + sourceID = GetOrCreateSourceID(series.Source, conn); + + //**************************************************************** + //*** Step 7 Series + //**************************************************************** + using (DbCommand cmd18 = conn.CreateCommand()) + { + cmd18.CommandText = sqlSaveSeries; + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, siteID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, variableID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, methodID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, sourceID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, qualityControlLevelID)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Boolean, series.IsCategorical)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.BeginDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.EndDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.BeginDateTimeUTC)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.EndDateTimeUTC)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Int32, series.ValueCount)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.CreationDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.Boolean, series.Subscribed)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.UpdateDateTime)); + cmd18.Parameters.Add(_db.CreateParameter(DbType.DateTime, series.LastCheckedDateTime)); + + seriesIDResult = cmd18.ExecuteScalar(); + seriesID = Convert.ToInt32(seriesIDResult); + } + + + //**************************************************************** + //*** Step 8 Qualifier and Sample Lookup + //**************************************************************** + Dictionary qualifierLookup; + Dictionary sampleLookup; + Dictionary offsetLookup; + GetLookups(series, out qualifierLookup, out sampleLookup, out offsetLookup); + + SaveQualifiers(conn, qualifierLookup); + SaveSamplesAndLabMethods(conn, sampleLookup); + SaveOffsets(conn, offsetLookup); + numSavedValues = SaveDataValues(conn, seriesID, series.DataValueList); + + //**************************************************************** + //*** Step 14 Data Theme *********** + //**************************************************************** + var themeIDResult = GetThemeID(conn, theme); + if (themeIDResult.HasValue) + { + themeID = themeIDResult.Value; + } + if (themeID == 0) + { + using (DbCommand cmd23 = conn.CreateCommand()) + { + cmd23.CommandText = sqlSaveTheme1; + cmd23.Parameters.Add(_db.CreateParameter(DbType.String, theme.Name)); + cmd23.Parameters.Add(_db.CreateParameter(DbType.String, theme.Description)); + themeID = Convert.ToInt32(cmd23.ExecuteScalar()); + } + } + + using (DbCommand cmd24 = conn.CreateCommand()) + { + cmd24.CommandText = sqlSaveTheme2; + cmd24.Parameters.Add(_db.CreateParameter(DbType.Int32, themeID)); + cmd24.Parameters.Add(_db.CreateParameter(DbType.Int32, seriesID)); + cmd24.ExecuteNonQuery(); + } + + //Step 13 Commit Transaction + tran.Commit(); + } + conn.Close(); + } + series.Id = seriesID; + + return numSavedValues; + } + + #endregion + + #region Private methods + + private void GetLookups(Series series, out Dictionary qualifierLookup, + out Dictionary sampleLookup, + out Dictionary offsetLookup) + { + qualifierLookup = new Dictionary(); + sampleLookup = new Dictionary(); + offsetLookup = new Dictionary(); + + foreach (var val in series.DataValueList) + { + if (val.Qualifier != null) + { + if (!qualifierLookup.ContainsKey(val.Qualifier.Code)) + { + qualifierLookup.Add(val.Qualifier.Code, val.Qualifier); + } + } + + if (val.Sample != null) + { + if (!sampleLookup.ContainsKey(val.Sample.LabSampleCode)) + { + sampleLookup.Add(val.Sample.LabSampleCode, val.Sample); + } + } + if (val.OffsetType != null) + { + if (!offsetLookup.ContainsKey(val.OffsetType.Description)) + { + offsetLookup.Add(val.OffsetType.Description, val.OffsetType); + } + } + } + } + + private int GetOrCreateMethodID(Method method, DbConnection conn) + { + const string sqlMethod = "SELECT MethodID FROM Methods WHERE MethodDescription = ?"; + string sqlSaveMethod = "INSERT INTO Methods(MethodDescription, MethodLink) VALUES(?, ?)" + LastRowIDSelect; + + int methodID = 0; + if (method != null) + { + using (DbCommand cmd10 = conn.CreateCommand()) + { + cmd10.CommandText = sqlMethod; + cmd10.Parameters.Add(_db.CreateParameter(DbType.String, method.Description)); + var methodIDResult = cmd10.ExecuteScalar(); + if (methodIDResult != null) + { + methodID = Convert.ToInt32(methodIDResult); + } + } + + if (methodID == 0) + { + using (DbCommand cmd11 = conn.CreateCommand()) + { + cmd11.CommandText = sqlSaveMethod; + cmd11.Parameters.Add(_db.CreateParameter(DbType.String, method.Description)); + cmd11.Parameters.Add(_db.CreateParameter(DbType.String, method.Link)); + var methodIDResult = cmd11.ExecuteScalar(); + methodID = Convert.ToInt32(methodIDResult); + } + } + } + + return methodID; + } + + private int GetOrCreateQualityControlLevelID(QualityControlLevel qc, DbConnection conn) + { + const string sqlQuality = "SELECT QualityControlLevelID FROM QualityControlLevels WHERE Definition = ?"; + string sqlSaveQualityControl = "INSERT INTO QualityControlLevels(QualityControlLevelCode, Definition, Explanation) " + + "VALUES(?,?,?)" + LastRowIDSelect; + + int qualityControlLevelID = 0; + if (qc != null) + { + using (DbCommand cmd12 = conn.CreateCommand()) + { + cmd12.CommandText = sqlQuality; + cmd12.Parameters.Add(_db.CreateParameter(DbType.String, qc.Definition)); + var qualityControlLevelIDResult = cmd12.ExecuteScalar(); + if (qualityControlLevelIDResult != null) + { + qualityControlLevelID = Convert.ToInt32(qualityControlLevelIDResult); + } + } + + if (qualityControlLevelID == 0) + { + using (DbCommand cmd13 = conn.CreateCommand()) + { + cmd13.CommandText = sqlSaveQualityControl; + cmd13.Parameters.Add(_db.CreateParameter(DbType.String, qc.Code)); + cmd13.Parameters.Add(_db.CreateParameter(DbType.String, qc.Definition)); + cmd13.Parameters.Add(_db.CreateParameter(DbType.String, qc.Explanation)); + var qualityControlLevelIDResult = cmd13.ExecuteScalar(); + qualityControlLevelID = Convert.ToInt32(qualityControlLevelIDResult); + } + } + } + return qualityControlLevelID; + } + + private int GetOrCreateSiteID(Site site, DbConnection conn) + { + const string sqlSite = "SELECT SiteID FROM Sites WHERE SiteCode = ?"; + const string sqlSpatialReference = "SELECT SpatialReferenceID FROM SpatialReferences WHERE SRSID = ? AND SRSName = ?"; + + string sqlSaveSpatialReference = "INSERT INTO SpatialReferences(SRSID, SRSName) VALUES(?, ?)" + LastRowIDSelect; + var sites = _db.GetTableSchema("Sites"); + + var sqlSaveSite = (sites.Columns.Contains("Country") && sites.Columns.Contains("SiteType")) + ? "INSERT INTO Sites(SiteCode, SiteName, Latitude, Longitude, LatLongDatumID, Elevation_m, VerticalDatum, " + + "LocalX, LocalY, LocalProjectionID, PosAccuracy_m, State, County, Comments, Country, SiteType) " + + "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" + LastRowIDSelect + : "INSERT INTO Sites(SiteCode, SiteName, Latitude, Longitude, LatLongDatumID, Elevation_m, VerticalDatum, " + + "LocalX, LocalY, LocalProjectionID, PosAccuracy_m, State, County, Comments) " + + "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" + LastRowIDSelect; + + int siteID = 0; + int spatialReferenceID = 0; + int localProjectionID = 0; + + using (DbCommand cmd01 = conn.CreateCommand()) + { + cmd01.CommandText = sqlSite; + cmd01.Parameters.Add(_db.CreateParameter(DbType.String, site.Code)); + var siteIDResult = cmd01.ExecuteScalar(); + if (siteIDResult != null) + { + siteID = Convert.ToInt32(siteIDResult); + } + } + + if (siteID == 0) //New Site needs to be created + { + using (DbCommand cmd02 = conn.CreateCommand()) + { + cmd02.CommandText = sqlSpatialReference; + cmd02.Parameters.Add(_db.CreateParameter(DbType.Int32)); + cmd02.Parameters.Add(_db.CreateParameter(DbType.String)); + + if (site.SpatialReference != null) + { + cmd02.Parameters[0].Value = site.SpatialReference.SRSID; + cmd02.Parameters[1].Value = site.SpatialReference.SRSName; + + var spatialReferenceIDResult = cmd02.ExecuteScalar(); + if (spatialReferenceIDResult != null) + { + spatialReferenceID = Convert.ToInt32(spatialReferenceIDResult); + } + } + if (site.LocalProjection != null) + { + cmd02.Parameters[0].Value = site.LocalProjection.SRSID; + cmd02.Parameters[1].Value = site.LocalProjection.SRSName; + + var localProjectionIDResult = cmd02.ExecuteScalar(); + if (localProjectionIDResult != null) + { + localProjectionID = Convert.ToInt32(localProjectionIDResult); + } + } + } + + //save spatial reference + if (spatialReferenceID == 0 && + site.SpatialReference != null) + { + using (DbCommand cmd03 = conn.CreateCommand()) + { + //Save the spatial reference (Lat / Long Datum) + cmd03.CommandText = sqlSaveSpatialReference; + cmd03.Parameters.Add(_db.CreateParameter(DbType.Int32, site.SpatialReference.SRSID)); + cmd03.Parameters.Add(_db.CreateParameter(DbType.String, site.SpatialReference.SRSName)); + + var spatialReferenceIDResult = cmd03.ExecuteScalar(); + spatialReferenceID = Convert.ToInt32(spatialReferenceIDResult); + } + } + + //save local projection + if (localProjectionID == 0 && + site.LocalProjection != null) + { + //save spatial reference and the local projection + using (DbCommand cmd03 = conn.CreateCommand()) + { + //Save the spatial reference (Lat / Long Datum) + cmd03.CommandText = sqlSaveSpatialReference; + cmd03.Parameters.Add(_db.CreateParameter(DbType.Int32, site.LocalProjection.SRSID)); + cmd03.Parameters.Add(_db.CreateParameter(DbType.String, site.LocalProjection.SRSName)); + + var localProjectionIDResult = cmd03.ExecuteScalar(); + localProjectionID = Convert.ToInt32(localProjectionIDResult); + } + } + + + //Insert the site to the database + using (DbCommand cmd04 = conn.CreateCommand()) + { + cmd04.CommandText = sqlSaveSite; + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.Code)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.Name)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.Double, site.Latitude)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.Double, site.Longitude)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.Int32, spatialReferenceID)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.Double, site.Elevation_m)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.VerticalDatum)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.Double, site.LocalX)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.Double, site.LocalY)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.Int32, localProjectionID)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.Double, site.PosAccuracy_m)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.State)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.County)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.Comments)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.Country)); + cmd04.Parameters.Add(_db.CreateParameter(DbType.String, site.SiteType)); + + + var siteIDResult = cmd04.ExecuteScalar(); + siteID = Convert.ToInt32(siteIDResult); + } + } + return siteID; + } + + private int GetOrCreateSourceID(Source source, DbConnection conn) + { + const string sqlSource = "SELECT SourceID FROM Sources WHERE Organization = ?"; + const string sqlISOMetadata = "SELECT MetadataID FROM ISOMetadata WHERE Title = ? AND MetadataLink = ?"; + + string sqlSaveSource = "INSERT INTO Sources(Organization, SourceDescription, SourceLink, ContactName, Phone, " + + "Email, Address, City, State, ZipCode, Citation, MetadataID) " + + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?)" + LastRowIDSelect; + string sqlSaveISOMetadata = "INSERT INTO ISOMetadata(TopicCategory, Title, Abstract, ProfileVersion, MetadataLink) " + + "VALUES(?,?,?,?,?)" + LastRowIDSelect; + + int sourceID = 0; + int isoMetadataID = 0; + if (source != null) + { + using (DbCommand cmd14 = conn.CreateCommand()) + { + cmd14.CommandText = sqlSource; + cmd14.Parameters.Add(_db.CreateParameter(DbType.String, source.Organization)); + var sourceIDResult = cmd14.ExecuteScalar(); + if (sourceIDResult != null) + { + sourceID = Convert.ToInt32(sourceIDResult); + } + } + + if (sourceID == 0) + { + ISOMetadata isoMetadata = source.ISOMetadata; + + using (DbCommand cmd15 = conn.CreateCommand()) + { + cmd15.CommandText = sqlISOMetadata; + cmd15.Parameters.Add(_db.CreateParameter(DbType.String, isoMetadata.Title)); + cmd15.Parameters.Add(_db.CreateParameter(DbType.String, isoMetadata.MetadataLink)); + var isoMetadataIDResult = cmd15.ExecuteScalar(); + if (isoMetadataIDResult != null) + { + isoMetadataID = Convert.ToInt32(isoMetadataIDResult); + } + } + + if (isoMetadataID == 0) + { + using (DbCommand cmd16 = conn.CreateCommand()) + { + cmd16.CommandText = sqlSaveISOMetadata; + cmd16.Parameters.Add(_db.CreateParameter(DbType.String, isoMetadata.TopicCategory)); + cmd16.Parameters.Add(_db.CreateParameter(DbType.String, isoMetadata.Title)); + cmd16.Parameters.Add(_db.CreateParameter(DbType.String, isoMetadata.Abstract)); + cmd16.Parameters.Add(_db.CreateParameter(DbType.String, isoMetadata.ProfileVersion)); + cmd16.Parameters.Add(_db.CreateParameter(DbType.String, isoMetadata.MetadataLink)); + var isoMetadataIDResult = cmd16.ExecuteScalar(); + isoMetadataID = Convert.ToInt32(isoMetadataIDResult); + } + } + + using (DbCommand cmd17 = conn.CreateCommand()) + { + cmd17.CommandText = sqlSaveSource; + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.Organization)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.Description)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.Link)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.ContactName)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.Phone)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.Email)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.Address)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.City)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.State)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.Int32, source.ZipCode)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, source.Citation)); + cmd17.Parameters.Add(_db.CreateParameter(DbType.String, isoMetadataID)); + var sourceIDResult = cmd17.ExecuteScalar(); + sourceID = Convert.ToInt32(sourceIDResult); + } + } + } + + return sourceID; + } + + private int GetOrCreateVariableID(Variable variable, DbConnection conn) + { + const string sqlVariable = "SELECT VariableID FROM Variables WHERE VariableCode = ? AND DataType = ?"; + string sqlSaveVariable = "INSERT INTO Variables(VariableCode, VariableName, Speciation, VariableUnitsID, SampleMedium, ValueType, " + + "IsRegular, ISCategorical, TimeSupport, TimeUnitsID, DataType, GeneralCategory, NoDataValue) " + + "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" + LastRowIDSelect; + + int variableID = 0; + long variableUnitsID = 0; + long timeUnitsID = 0; + + using (DbCommand cmd05 = conn.CreateCommand()) + { + cmd05.CommandText = sqlVariable; + cmd05.Parameters.Add(_db.CreateParameter(DbType.String, variable.Code)); + cmd05.Parameters.Add(_db.CreateParameter(DbType.String, variable.DataType)); + cmd05.Parameters[0].Value = variable.Code; + cmd05.Parameters[1].Value = variable.DataType; + var variableIDResult = cmd05.ExecuteScalar(); + if (variableIDResult != null) + { + variableID = Convert.ToInt32(variableIDResult); + } + } + + if (variableID == 0) //New variable needs to be created + { + // Get Variable unit + if (variable.VariableUnit != null) + { + var unitID = GetUnitID(conn, variable.VariableUnit); + if (unitID.HasValue) + { + variableUnitsID = unitID.Value; + } + } + + // Get Time Unit + if (variable.TimeUnit != null) + { + var unitID = GetUnitID(conn, variable.TimeUnit); + if (unitID.HasValue) + { + timeUnitsID = unitID.Value; + } + } + + // Save the variable units + if (variableUnitsID == 0 && + variable.VariableUnit != null) + { + SaveUnit(conn, variable.VariableUnit); + variableUnitsID = variable.VariableUnit.Id; + } + + // Save the time units + if (timeUnitsID == 0 && + variable.TimeUnit != null) + { + SaveUnit(conn, variable.TimeUnit); + timeUnitsID = variable.TimeUnit.Id; + } + + //Insert the variable to the database + using (DbCommand cmd09 = conn.CreateCommand()) + { + cmd09.CommandText = sqlSaveVariable; + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.Code)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.Name)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.Speciation)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.Int32, variableUnitsID)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.SampleMedium)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.ValueType)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.Boolean, variable.IsRegular)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.Boolean, variable.IsCategorical)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.Double, variable.TimeSupport)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.Int32, timeUnitsID)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.DataType)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.String, variable.GeneralCategory)); + cmd09.Parameters.Add(_db.CreateParameter(DbType.Double, variable.NoDataValue)); + + var variableIDResult = cmd09.ExecuteScalar(); + variableID = Convert.ToInt32(variableIDResult); + } + } + + return variableID; + } + + private long? GetUnitID(DbConnection conn, Unit unit) + { + const string sqlUnits = "SELECT UnitsID FROM Units WHERE UnitsName = ? AND UnitsAbbreviation = ?"; + + using (var cmd = conn.CreateCommand()) + { + cmd.CommandText = sqlUnits; + cmd.Parameters.Add(_db.CreateParameter(DbType.String, unit.Name)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, unit.Abbreviation)); + + var result = cmd.ExecuteScalar(); + if (result != null) + return Convert.ToInt64(result); + return null; + } + } + + private long? GetQualifierID(DbConnection conn, Qualifier qualifier) + { + const string sqlQualifier = "SELECT QualifierID FROM Qualifiers WHERE QualifierCode = ?"; + + using (var cmd = conn.CreateCommand()) + { + cmd.CommandText = sqlQualifier; + cmd.Parameters.Add(_db.CreateParameter(DbType.String, qualifier.Code)); + + var result = cmd.ExecuteScalar(); + if (result != null) + return Convert.ToInt64(result); + return null; + } + } + + private long? GetThemeID(DbConnection conn, Theme theme) + { + const string sqlTheme = "SELECT ThemeID FROM DataThemeDescriptions WHERE ThemeName = ?"; + + using (var cmd = conn.CreateCommand()) + { + cmd.CommandText = sqlTheme; + cmd.Parameters.Add(_db.CreateParameter(DbType.String, theme.Name)); + + var result = cmd.ExecuteScalar(); + if (result != null) + return Convert.ToInt64(result); + return null; + } + } + + private long? GetSampleID(DbConnection conn, Sample sample) + { + const string sqlSample = "SELECT SampleID FROM Samples WHERE SampleType = ? AND LabSampleCode = ?"; + + using (var cmd = conn.CreateCommand()) + { + cmd.CommandText = sqlSample; + cmd.Parameters.Add(_db.CreateParameter(DbType.String, sample.SampleType)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, sample.LabSampleCode)); + + var result = cmd.ExecuteScalar(); + if (result != null) + return Convert.ToInt64(result); + return null; + } + } + + private long? GetLabMethodID(DbConnection conn, LabMethod labMethod) + { + const string sqlLabMethod = "SELECT LabMethodID FROM LabMethods WHERE LabName = ? AND LabMethodName = ?"; + + using (var cmd = conn.CreateCommand()) + { + cmd.CommandText = sqlLabMethod; + cmd.Parameters.Add(_db.CreateParameter(DbType.String, labMethod.LabName)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, labMethod.LabMethodName)); + + var result = cmd.ExecuteScalar(); + if (result != null) + return Convert.ToInt64(result); + return null; + } + } + + private long? GetOffsetTypeID(DbConnection conn, OffsetType offsetType) + { + const string sqlOffsetType = "SELECT OffsetTypeID FROM OffsetTypes WHERE OffsetDescription = ?"; + + using (var cmd = conn.CreateCommand()) + { + cmd.CommandText = sqlOffsetType; + cmd.Parameters.Add(_db.CreateParameter(DbType.String, offsetType.Description)); + + var result = cmd.ExecuteScalar(); + if (result != null) + return Convert.ToInt64(result); + return null; + } + } + + private void SaveLabMethod(DbConnection conn, LabMethod labMethodToSave) + { + var sqlSaveLabMethod = "INSERT INTO LabMethods(LabName, LabOrganization, LabMethodName, LabMethodLink, LabMethodDescription) " + + "VALUES(?, ?, ?, ?, ?)" + LastRowIDSelect; + + using (var cmd = conn.CreateCommand()) + { + cmd.CommandText = sqlSaveLabMethod; + cmd.Parameters.Add(_db.CreateParameter(DbType.String, labMethodToSave.LabName)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, labMethodToSave.LabOrganization)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, labMethodToSave.LabMethodName)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, labMethodToSave.LabMethodLink)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, labMethodToSave.LabMethodDescription)); + + var labMethodIDResult = cmd.ExecuteScalar(); + labMethodToSave.Id = Convert.ToInt64(labMethodIDResult); + } + } + + private void SaveSample(DbConnection conn, Sample sample) + { + var sqlSaveSample = "INSERT INTO Samples(SampleType, LabSampleCode, LabMethodID) VALUES (?,?, ?)" + LastRowIDSelect; + + using (var cmd = conn.CreateCommand()) + { + cmd.CommandText = sqlSaveSample; + cmd.Parameters.Add(_db.CreateParameter(DbType.String, sample.SampleType)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, sample.LabSampleCode)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Int64, sample.LabMethod.Id)); + + var sampleIDResult = cmd.ExecuteScalar(); + sample.Id = Convert.ToInt64(sampleIDResult); + } + } + + private void SaveSamplesAndLabMethods(DbConnection conn, Dictionary sampleLookup) + { + if (sampleLookup.Count <= 0) return; + + var unsavedSamples = new List(); + var unsavedLabMethods = new List(); + var labMethodLookup = new Dictionary(); + + foreach (var sample in sampleLookup.Values) + { + var id = GetSampleID(conn, sample); + if (id.HasValue) + { + sample.Id = id.Value; + } + else + { + unsavedSamples.Add(sample); + var labMethodKey = sample.LabMethod.LabName + "|" + sample.LabMethod.LabMethodName; + if (!labMethodLookup.ContainsKey(labMethodKey)) + { + labMethodLookup.Add(labMethodKey, sample.LabMethod); + } + } + } + foreach (var labMethod in labMethodLookup.Values) + { + var id = GetLabMethodID(conn, labMethod); + if (id.HasValue) + { + labMethod.Id = id.Value; + } + else + { + unsavedLabMethods.Add(labMethod); + } + } + + //save lab methods + foreach (var labMethodToSave in unsavedLabMethods) + { + SaveLabMethod(conn, labMethodToSave); + } + + //save samples + foreach (var sample in unsavedSamples) + { + SaveSample(conn, sample); + } + } + + private void SaveQualifiers(DbConnection conn, Dictionary qualifierLookup) + { + if (qualifierLookup.Count <= 0) return; + + var sqlSaveQualifier = "INSERT INTO Qualifiers(QualifierCode, QualifierDescription) VALUES (?,?)" + LastRowIDSelect; + + var unsavedQualifiers = new List(); + foreach (var qualifier in qualifierLookup.Values) + { + var id = GetQualifierID(conn, qualifier); + if (id.HasValue) + { + qualifier.Id = id.Value; + } + else + { + unsavedQualifiers.Add(qualifier); + } + } + if (unsavedQualifiers.Count > 0) + { + using (DbCommand cmd20 = conn.CreateCommand()) + { + cmd20.CommandText = sqlSaveQualifier; + cmd20.Parameters.Add(_db.CreateParameter(DbType.String)); + cmd20.Parameters.Add(_db.CreateParameter(DbType.String)); + + foreach (var qual2 in unsavedQualifiers) + { + cmd20.Parameters[0].Value = qual2.Code; + cmd20.Parameters[1].Value = qual2.Description; + var qualifierIDResult = cmd20.ExecuteScalar(); + qual2.Id = Convert.ToInt64(qualifierIDResult); + } + } + } + } + + private void SaveOffsets(DbConnection conn, Dictionary offsetLookup) + { + if (offsetLookup.Count <= 0) return; + + var offsetUnitLookup = new Dictionary(); + var unsavedOffsetUnits = new List(); + var unsavedoffsets = new List(); + + foreach (var offset in offsetLookup.Values) + { + var id = GetOffsetTypeID(conn, offset); + if (id.HasValue) + { + offset.Id = id.Value; + } + else + { + unsavedoffsets.Add(offset); + string offsetUnitsKey = offset.Unit.Abbreviation + "|" + offset.Unit.Name; + if (!offsetUnitLookup.ContainsKey(offsetUnitsKey)) + { + offsetUnitLookup.Add(offsetUnitsKey, offset.Unit); + } + } + } + + //check for existing offset units + foreach (var offsetUnit in offsetUnitLookup.Values) + { + var unitID = GetUnitID(conn, offsetUnit); + if (unitID.HasValue) + { + offsetUnit.Id = unitID.Value; + } + else + { + unsavedOffsetUnits.Add(offsetUnit); + } + } + + //save offset units + foreach (var unitToSave in unsavedOffsetUnits) + { + SaveUnit(conn, unitToSave); + } + + //save offset types + foreach (var offsetToSave in unsavedoffsets) + { + SaveOffsetType(conn, offsetToSave); + } + } + + private void SaveUnit(DbConnection conn, Unit unit) + { + var sqlSaveUnits = "INSERT INTO Units(UnitsName, UnitsType, UnitsAbbreviation) VALUES(?, ?, ?)" + LastRowIDSelect; + + using (var cmd = conn.CreateCommand()) + { + cmd.CommandText = sqlSaveUnits; + cmd.Parameters.Add(_db.CreateParameter(DbType.String, unit.Name)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, unit.UnitsType)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, unit.Abbreviation)); + + var result = cmd.ExecuteScalar(); + unit.Id = Convert.ToInt64(result); + } + } + + private void SaveOffsetType(DbConnection conn, OffsetType offsetType) + { + var sqlSaveOffsetType = "INSERT INTO OffsetTypes(OffsetUnitsID, OffsetDescription) VALUES (?, ?)" + LastRowIDSelect; + + using (var cmd = conn.CreateCommand()) + { + cmd.CommandText = sqlSaveOffsetType; + cmd.Parameters.Add(_db.CreateParameter(DbType.Int32, offsetType.Unit.Id)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String, offsetType.Description)); + + var result = cmd.ExecuteScalar(); + offsetType.Id = Convert.ToInt64(result); + } + } + + private int SaveDataValues(DbConnection conn, int seriesID, IEnumerable dataValueList) + { + const string sqlSaveDataValue = "INSERT INTO DataValues(SeriesID, DataValue, ValueAccuracy, LocalDateTime, " + + "UTCOffset, DateTimeUTC, OffsetValue, OffsetTypeID, CensorCode, QualifierID, SampleID, FileID) " + + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?)"; + + var numSavedValues = 0; + using (var cmd = conn.CreateCommand()) + { + cmd.CommandText = sqlSaveDataValue; + cmd.Parameters.Add(_db.CreateParameter(DbType.Int32, seriesID)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Double)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Double)); + cmd.Parameters.Add(_db.CreateParameter(DbType.DateTime)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Double)); + cmd.Parameters.Add(_db.CreateParameter(DbType.DateTime)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Double)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Int32)); + cmd.Parameters.Add(_db.CreateParameter(DbType.String)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Int32)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Int32)); + cmd.Parameters.Add(_db.CreateParameter(DbType.Int32)); + + foreach (var val in dataValueList) + { + cmd.Parameters[1].Value = val.Value; + cmd.Parameters[2].Value = null; + if (val.ValueAccuracy != 0) + { + cmd.Parameters[2].Value = val.ValueAccuracy; + } + cmd.Parameters[3].Value = val.LocalDateTime; + cmd.Parameters[4].Value = val.UTCOffset; + cmd.Parameters[5].Value = val.DateTimeUTC; + if (val.OffsetType != null) + { + cmd.Parameters[6].Value = val.OffsetValue; + cmd.Parameters[7].Value = val.OffsetType.Id; + } + else + { + cmd.Parameters[6].Value = null; + cmd.Parameters[7].Value = null; + } + cmd.Parameters[8].Value = val.CensorCode; + if (val.Qualifier != null) + { + cmd.Parameters[9].Value = val.Qualifier.Id; + } + + if (val.Sample != null) + { + cmd.Parameters[10].Value = val.Sample.Id; + } + + cmd.Parameters[11].Value = null; + + cmd.ExecuteNonQuery(); + numSavedValues++; + } + } + return numSavedValues; + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.Data/Database/SQLiteHelper.cs b/Source/Core/HydroDesktop.Data/Database/SQLiteHelper.cs new file mode 100644 index 00000000..eb5adfa6 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/SQLiteHelper.cs @@ -0,0 +1,293 @@ +using System; +using System.Data; +using System.Data.SQLite; +using System.Diagnostics; +using System.IO; +using System.Reflection; +using System.Runtime.Serialization; +using System.Text; + +namespace HydroDesktop.Database +{ + /// + /// This class contains methods for working with the + /// SQLite database + /// + public static class SQLiteHelper + { + /// + /// To get the SQLite database path given the SQLite connection string + /// + public static string GetSQLiteFileName(string sqliteConnString) + { + if (String.IsNullOrEmpty(sqliteConnString)) + throw new ArgumentException("sqliteConnString is null or empty.", "sqliteConnString"); + + var conn = new SQLiteConnectionStringBuilder(sqliteConnString); + return conn.DataSource; + } + /// + /// To get the full SQLite connection string given the SQLite database path + /// + public static string GetSQLiteConnectionString(string dbFileName) + { + if (String.IsNullOrEmpty(dbFileName)) + throw new ArgumentException("dbFileName is null or empty.", "dbFileName"); + + var conn = new SQLiteConnectionStringBuilder { DataSource = dbFileName, Version = 3, FailIfMissing = true }; + conn.Add("Compress", true); + + return conn.ConnectionString; + + } + + /// + /// Create the default .SQLITE database in the user-specified path + /// + /// true if database was created, false otherwise + public static Boolean CreateSQLiteDatabase(string dbPath) + { + if (String.IsNullOrEmpty(dbPath)) + throw new ArgumentException("dbPath is null or empty.", "dbPath"); + + var asm = Assembly.GetAssembly(typeof(DbOperations)); + + //to create the default.sqlite database file + try + { + using (Stream input = asm.GetManifestResourceStream("HydroDesktop.Resources.defaultDatabase.sqlite")) + { + using (Stream output = File.Create(dbPath)) + { + CopyStream(input, output); + } + } + } + catch (UnauthorizedAccessException ex) + { + Debug.WriteLine("Error creating the default database " + dbPath + + ". Please check the write permissions for HydroDesktop. " + ex.Message); + return false; + } + catch (Exception ex) + { + Debug.WriteLine("Error creating the default database " + dbPath + + ". Error details: " + ex.Message); + return false; + } + return File.Exists(dbPath); + } + + + /// + /// Create the default empty MetadataCache.SQLITE database in the user-specified path + /// The created database has the correct db schema. + /// + /// true if database was created, false otherwise + public static Boolean CreateMetadataCacheDb(string dbPath) + { + if (String.IsNullOrEmpty(dbPath)) + throw new ArgumentException("dbPath is null or empty.", "dbPath"); + + var asm = Assembly.GetAssembly(typeof(DbOperations)); + + //to create the default.sqlite database file + try + { + using (var input = asm.GetManifestResourceStream("HydroDesktop.Resources.MetadataCache.sqlite")) + { + using (Stream output = File.Create(dbPath)) + { + CopyStream(input, output); + } + } + } + catch (UnauthorizedAccessException ex) + { + Debug.WriteLine("Error creating the metadata cache database " + dbPath + + ". Please check the write permissions for HydroDesktop. " + ex.Message); + return false; + } + catch (Exception ex) + { + Debug.WriteLine("Error creating the metadata cache database " + dbPath + + ". Error details: " + ex.Message); + return false; + } + return File.Exists(dbPath); + } + + private static void CopyStream(Stream input, Stream output) + { + var buffer = new byte[8192]; + + int bytesRead; + while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer, 0, bytesRead); + } + } + + /// + /// Check if the path is a valid SQLite database + /// This function returns false, if the SQLite db + /// file doesn't exist or if the file size is 0 Bytes + /// + public static bool DatabaseExists(string dbPath) + { + if (!File.Exists(dbPath)) + { + return false; + } + var dbFileInfo = new FileInfo(dbPath); + if (dbFileInfo.Length == 0) + { + return false; + } + return true; + } + + /// + /// Validate database schema. + /// If schema not valid - InvalidDatabaseSchemaException throws. + /// + /// Path to SQLite checked database. + /// Database type. + /// Throws if database schema not valid. + public static void CheckDatabaseSchema(string databaseToCheck, DatabaseType databaseType) + { + if (!DatabaseExists(databaseToCheck)) + throw new InvalidDatabaseSchemaException("Database not exists"); + + var originalDbPath = Path.GetTempFileName(); + try + { + bool dbCreated; + switch (databaseType) + { + case DatabaseType.DefaulDatabase: + dbCreated = CreateSQLiteDatabase(originalDbPath); + break; + case DatabaseType.MetadataCacheDatabase: + dbCreated = CreateMetadataCacheDb(originalDbPath); + break; + default: + dbCreated = false; + break; + } + if (!dbCreated) + throw new InvalidDatabaseSchemaException("Unable to create original database"); + + var originalDbOperations = new DbOperations(GetSQLiteConnectionString(originalDbPath), + Interfaces.DatabaseTypes.SQLite); + + var checkedlDbOperations = new DbOperations(GetSQLiteConnectionString(databaseToCheck), + Interfaces.DatabaseTypes.SQLite); + + const string allTablesQuery = "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name"; + + var originalTables = originalDbOperations.LoadTable(allTablesQuery); + var checkedTables = checkedlDbOperations.LoadTable(allTablesQuery); + + var sbErrors = new StringBuilder(); + foreach(DataRow row in originalTables.Rows) + { + var tableName = row["name"].ToString(); + + // Check for table existing + var rows = checkedTables.Select(string.Format("name = '{0}'", tableName)); + if (rows.Length == 0) + { + sbErrors.AppendLine(string.Format("Table '{0}' not found", tableName)); + continue; + } + + // Check for table schema + var schemaQuery = string.Format("PRAGMA table_info({0})", tableName); + var originalSchema = originalDbOperations.LoadTable(schemaQuery); + var checkedSchema = checkedlDbOperations.LoadTable(schemaQuery); + + foreach(DataRow schemaRow in originalSchema.Rows) + { + var columnName = schemaRow["name"].ToString(); + + var columnRows = checkedSchema.Select(string.Format("name = '{0}'", columnName)); + if (columnRows.Length == 0) + { + sbErrors.AppendLine(string.Format("Table '{0}': column '{1}' not found", tableName, columnName)); + } + } + } + + if (sbErrors.Length != 0) + { + sbErrors.Remove(sbErrors.Length - Environment.NewLine.Length, Environment.NewLine.Length); // remove last new line delimeter + throw new InvalidDatabaseSchemaException(sbErrors.ToString()); + } + + }catch(Exception ex) + { + if (ex is InvalidDatabaseSchemaException) throw; + throw new InvalidDatabaseSchemaException("Unable to check database schema", ex); + } + finally + { + try + { + File.Delete(originalDbPath); + } + catch (IOException ex) + { + Trace.TraceError("Unable to delete temp file: {0}. Reason: {1}" , originalDbPath, ex.Message); + } + } + } + } + /// + /// The type of SQLite database (data repositor or metadata cache) + /// + public enum DatabaseType + { + /// + /// Data repository sqlite database + /// + DefaulDatabase, + /// + /// Metadata cache SQLite database + /// + MetadataCacheDatabase + } + /// + /// This exception occurs in case of invalid database schema + /// + public class InvalidDatabaseSchemaException : Exception + { + /// + /// new instance of invalid database schema exception + /// + public InvalidDatabaseSchemaException() + { + } + + /// + /// invalid database schema exception with message and inner exception + /// + /// the error messsage + /// the inner exception + public InvalidDatabaseSchemaException(string message, Exception inner = null) + : base(message, inner) + { + + } + /// + /// invalid database schema exception with serialization info and streaming context + /// + /// serialization info + /// streaming context + protected InvalidDatabaseSchemaException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + + } + } +} diff --git a/Source/Core/HydroDesktop.Data/Database/SamplesRepository.cs b/Source/Core/HydroDesktop.Data/Database/SamplesRepository.cs new file mode 100644 index 00000000..d5d7ed77 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/SamplesRepository.cs @@ -0,0 +1,21 @@ +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + class SamplesRepository : BaseRepository, ISamplesRepository + { + public SamplesRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + } + + public SamplesRepository(IHydroDbOperations db) : base(db) + { + } + + protected override string TableName + { + get { return "Samples"; } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/SeriesProvenanceRepository.cs b/Source/Core/HydroDesktop.Data/Database/SeriesProvenanceRepository.cs new file mode 100644 index 00000000..57637beb --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/SeriesProvenanceRepository.cs @@ -0,0 +1,39 @@ +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + /// + /// Repository for + /// + class SeriesProvenanceRepository : BaseRepository, ISeriesProvenanceRepository + { + public SeriesProvenanceRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + } + + public SeriesProvenanceRepository(IHydroDbOperations db) : base(db) + { + } + + public void AddNew(SeriesProvenance entity) + { + entity.Id = DbOperations.GetNextID("SeriesProvenance", "ProvenanceID"); + const string query = "INSERT INTO SeriesProvenance(ProvenanceID, ProvenanceDateTime, InputSeriesID, OutputSeriesID, MethodID, Comment) VALUES (?, ?,?,?,?,?)"; + DbOperations.ExecuteNonQuery(query, new object[] + { + entity.Id, + entity.ProvenanceDateTime, + entity.InputSeries.Id, + entity.OutputSeries.Id, + entity.Method.Id, + entity.Comment + }); + } + + protected override string TableName + { + get { return "SeriesProvenance"; } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/SitesRepository.cs b/Source/Core/HydroDesktop.Data/Database/SitesRepository.cs new file mode 100644 index 00000000..080e4db7 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/SitesRepository.cs @@ -0,0 +1,115 @@ +using System; +using System.Collections.Generic; +using System.Data; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.DAL; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + /// + /// Repository for + /// + class SitesRepository : BaseRepository, ISitesRepository + { + #region Fields + + private readonly ISpatialReferenceRepository _spatialReferenceRepository; + + #endregion + + #region Constructors + + public SitesRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + _spatialReferenceRepository = new SpatialReferenceRepository(dbType, connectionString); + } + + public SitesRepository(IHydroDbOperations db) : base(db) + { + _spatialReferenceRepository = new SpatialReferenceRepository(db); + } + + #endregion + + protected override string TableName + { + get { return "Sites"; } + } + + protected override Site DataRowToEntity(DataRow row) + { + var site = new Site + { + Id = Convert.ToInt64(row["SiteID"]), + Code = Convert.ToString(row["SiteCode"]), + Name = Convert.ToString(row["SiteName"]), + Latitude = Convert.ToDouble(row["Latitude"]), + Longitude = Convert.ToDouble(row["Longitude"]), + Elevation_m = Convert.ToDouble(row["Elevation_m"]), + Comments = Convert.ToString(row["Comments"]), + County = Convert.ToString(row["County"]), + State = Convert.ToString(row["State"]), + PosAccuracy_m = Convert.ToDouble(row["PosAccuracy_m"]), + LocalX = Convert.ToDouble(row["LocalX"]), + LocalY = Convert.ToDouble(row["LocalY"]), + VerticalDatum = Convert.ToString(row["VerticalDatum"]), + LocalProjection = _spatialReferenceRepository.GetByKey(row["LocalProjectionID"]), + SpatialReference = _spatialReferenceRepository.GetByKey(row["LatLongDatumID"]), + Country = Convert.ToString(row.GetDataOrNull("Country")), + SiteType = Convert.ToString(row.GetDataOrNull("SiteType")), + }; + return site; + } + + protected override string PrimaryKeyName + { + get { return "SiteID"; } + } + + public bool Exists(Site site) + { + if (site == null) return false; + + const string query = "select count(*) from {0} where SiteID = {1} and SiteCode = '{2}'"; + var result = DbOperations.ExecuteSingleOutput(string.Format(query, TableName, site.Id, site.Code)); + return Convert.ToInt32(result) > 0; + } + + public IList GetSitesWithBothVariables(Variable variable1, Variable variable2) + { + if (variable1.Id <= 0) throw new ArgumentException("variable1 must have a valid ID"); + if (variable2.Id <= 0) throw new ArgumentException("variable2 must have a valid ID"); + + string sqlQuery = String.Format("select s1.SeriesID as 'SeriesID1', s2.SeriesID as 'SeriesID2', " + + "site.SiteID, site.SiteName, site.SiteCode, site.Latitude, site.Longitude " + + "FROM DataSeries s1 INNER JOIN DataSeries s2 ON s1.SiteID = s2.SiteID " + + "INNER JOIN Sites site ON s1.SiteID = site.SiteID " + + "WHERE s1.VariableID = {0} AND s2.VariableID = {1}", variable1.Id, variable2.Id); + + DataTable tbl = DbOperations.LoadTable(sqlQuery); + List siteList = new List(); + + foreach (DataRow r in tbl.Rows) + { + Site s = new Site(); + s.Id = (long)r["SiteID"]; + s.Code = (string)r["SiteCode"]; + s.Latitude = (double)r["Latitude"]; + s.Longitude = (double)r["Longitude"]; + s.Name = (string)r["SiteName"]; + + Series s1 = new Series(s, variable1, Method.Unknown, QualityControlLevel.Unknown, Source.Unknown); + s1.Id = (long)r["SeriesID1"]; + s.AddDataSeries(s1); + + Series s2 = new Series(s, variable2, Method.Unknown, QualityControlLevel.Unknown, Source.Unknown); + s2.Id = (long)r["SeriesID2"]; + s.AddDataSeries(s2); + + siteList.Add(s); + } + return siteList; + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/SourcesRepository.cs b/Source/Core/HydroDesktop.Data/Database/SourcesRepository.cs new file mode 100644 index 00000000..1e82fbfe --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/SourcesRepository.cs @@ -0,0 +1,62 @@ +using System; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.DAL; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + class SourcesRepository : BaseRepository, ISourcesRepository + { + #region Fields + + private readonly IISOMetadataRepository _iisoMetadataRepository; + + #endregion + + #region Constructors + + public SourcesRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + _iisoMetadataRepository = new ISOMetadataRepository(dbType, connectionString); + } + + public SourcesRepository(IHydroDbOperations db) : base(db) + { + _iisoMetadataRepository = new ISOMetadataRepository(db); + } + + #endregion + + protected override Source DataRowToEntity(System.Data.DataRow row) + { + var result = new Source + { + Id = Convert.ToInt64(row["SourceId"]), + Address = Convert.ToString(row["Address"]), + Citation = Convert.ToString(row["Citation"]), + City = Convert.ToString(row["City"]), + ContactName = Convert.ToString(row["ContactName"]), + Description = Convert.ToString(row["SourceDescription"]), + Email = Convert.ToString(row["Email"]), + Link = Convert.ToString(row["SourceLink"]), + State = Convert.ToString(row["State"]), + Organization = Convert.ToString(row["Organization"]), + Phone = Convert.ToString(row["Phone"]), + ZipCode = Convert.ToInt32(row["ZipCode"]), + ISOMetadata = _iisoMetadataRepository.GetByKey(row["MetadataID"]), + }; + + return result; + } + + protected override string TableName + { + get { return "Sources"; } + } + + protected override string PrimaryKeyName + { + get { return "SourceID"; } + } + } +} diff --git a/Source/Core/HydroDesktop.Data/Database/SpatialReferenceRepository.cs b/Source/Core/HydroDesktop.Data/Database/SpatialReferenceRepository.cs new file mode 100644 index 00000000..6a2bb6fe --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/SpatialReferenceRepository.cs @@ -0,0 +1,52 @@ +using System; +using System.Data; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.DAL; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + /// + /// Repository for + /// + class SpatialReferenceRepository : BaseRepository, ISpatialReferenceRepository + { + #region Constructors + + public SpatialReferenceRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + } + + public SpatialReferenceRepository(IHydroDbOperations db) : base(db) + { + } + + #endregion + + #region Overrides of BaseRepository + + protected override SpatialReference DataRowToEntity(DataRow row) + { + var result = new SpatialReference + { + Id = Convert.ToInt64(row["SpatialReferenceID"]), + Notes = Convert.ToString(row["Notes"]), + SRSID = Convert.ToInt32(row["SRSID"]), + SRSName = Convert.ToString(row["SRSName"]), + }; + return result; + } + + protected override string TableName + { + get { return "SpatialReferences"; } + } + + protected override string PrimaryKeyName + { + get { return "SpatialReferenceID"; } + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/UnitConversionsRepository.cs b/Source/Core/HydroDesktop.Data/Database/UnitConversionsRepository.cs new file mode 100644 index 00000000..a1dee9e4 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/UnitConversionsRepository.cs @@ -0,0 +1,82 @@ +using System; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + /// + /// Repository for + /// + class UnitConversionsRepository : BaseRepository, IUnitConversionsRepository + { + #region Fields + + private readonly IUnitsRepository _unitsRepository = RepositoryFactory.Instance.Get(); + + #endregion + + #region Constructors + + public UnitConversionsRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + } + + public UnitConversionsRepository(IHydroDbOperations db) : base(db) + { + } + + #endregion + + #region Public methods + + public bool ExistsConversion(Unit unitA, Unit unitB) + { + var res = DbOperations.ExecuteSingleOutput + ( + "select count(*) from UnitConversions where FromUnitsID = ? and ToUnitsID = ?", + new object[] {unitA.Id, unitB.Id} + ); + return Convert.ToInt64(res) > 0; + } + + public UnitConversion GetConversion(Unit unitA, Unit unitB) + { + var table = DbOperations.LoadTable( + string.Format("select * from UnitConversions where FromUnitsID = {0} and ToUnitsID = {1}", + unitA.Id, unitB.Id)); + if (table.Rows.Count == 0) + return null; + + return DataRowToEntity(table.Rows[0]); + } + + #endregion + + #region Overrides of BaseRepository + + protected override string TableName + { + get { return "UnitConversions"; } + } + + protected override string PrimaryKeyName + { + get { return "ConversionID"; } + } + + protected override UnitConversion DataRowToEntity(System.Data.DataRow row) + { + var entity = new UnitConversion + { + Id = Convert.ToInt64(row["ConversionID"]), + FromUnit = _unitsRepository.GetByKey(row["FromUnitsID"]), + ToUnit = _unitsRepository.GetByKey(row["ToUnitsID"]), + ConversionFactor = Convert.ToDouble(row["ConversionFactor"]), + Offset = Convert.ToDouble(row["Offset"]), + }; + return entity; + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/UnitsRepository.cs b/Source/Core/HydroDesktop.Data/Database/UnitsRepository.cs new file mode 100644 index 00000000..3f3d7fb3 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/UnitsRepository.cs @@ -0,0 +1,96 @@ +using System; +using System.Data; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + /// + /// Repository for + /// + class UnitsRepository : BaseRepository, IUnitsRepository + { + #region Constructors + + public UnitsRepository(DatabaseTypes dbType, string connectionString) : base(dbType, connectionString) + { + } + + public UnitsRepository(IHydroDbOperations db) + : base(db) + { + } + + #endregion + + #region Public methods + + public bool Exists(string name) + { + var res = DbOperations.ExecuteSingleOutput("Select count(*) FROM Units where UnitsName=?", new object[]{name}); + return Convert.ToInt64(res) > 0; + } + + public Unit GetByName(string name) + { + var dt = DbOperations.LoadTable(TableName, string.Format("Select * FROM Units where UnitsName='{0}'", name)); + if (dt == null || dt.Rows.Count == 0) + return null; + + var res = DataRowToEntity(dt.Rows[0]); + return res; + } + + public void AddUnit(Unit unit) + { + var query = "INSERT INTO Units(UnitsAbbreviation, UnitsName, UnitsType)" + + "VALUES (?, ?, ?)" + LastRowIDSelect; + var id = DbOperations.ExecuteSingleOutput(query, + new object[] + { + unit.Abbreviation, + unit.Name, + unit.UnitsType, + }); + unit.Id = Convert.ToInt64(id); + } + + #endregion + + #region Private methods + + protected override Unit DataRowToEntity(DataRow row) + { + var res = new Unit + { + Id = Convert.ToInt64(row["UnitsID"]), + Abbreviation = Convert.ToString(row["UnitsAbbreviation"]), + Name = Convert.ToString(row["UnitsName"]), + UnitsType = Convert.ToString(row["UnitsType"]), + // Test for column existence for backward compatibility + ConversionFactorToSI = !row.Table.Columns.Contains("ConversionFactorToSI") ||row["ConversionFactorToSI"] == DBNull.Value + ? (double?) null + : Convert.ToDouble(row["ConversionFactorToSI"]), + Dimension = !row.Table.Columns.Contains("Dimension") || row["Dimension"] == DBNull.Value + ? null + : Convert.ToString(row["Dimension"]), + OffsetToSI = !row.Table.Columns.Contains("OffsetToSI") || row["OffsetToSI"] == DBNull.Value + ? (double?) null + : Convert.ToDouble(row["OffsetToSI"]), + }; + return res; + } + + #endregion + + protected override string TableName + { + get { return "Units"; } + } + + protected override string PrimaryKeyName + { + get { return "UnitsID"; } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Database/VariablesRepository.cs b/Source/Core/HydroDesktop.Data/Database/VariablesRepository.cs new file mode 100644 index 00000000..49f2c2a2 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Database/VariablesRepository.cs @@ -0,0 +1,118 @@ +using System; +using System.Data; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Database +{ + /// + /// Repository for Variables + /// + class VariablesRepository : BaseRepository, IVariablesRepository + { + #region Constructors + + public VariablesRepository(DatabaseTypes dbType, string connectionString) + : base(dbType, connectionString) + { + } + + public VariablesRepository(IHydroDbOperations db) + : base(db) + { + } + + #endregion + + #region Public methods + + public void AddVariable(Variable variable) + { + var query = + string.Format( + @"INSERT INTO {0}(VariableCode, VariableName, Speciation, SampleMedium, ValueType, IsRegular, IsCategorical, TimeSupport, DataType, GeneralCategory, NoDataValue, TimeUnitsID, VariableUnitsID) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + TableName) + LastRowIDSelect; + var res = DbOperations.ExecuteSingleOutput(query, + new object[] + { + variable.Code, variable.Name, variable.Speciation, + variable.SampleMedium, + variable.ValueType, Convert.ToInt32(variable.IsRegular), + Convert.ToInt32(variable.IsCategorical), variable.TimeSupport, + variable.DataType, variable.GeneralCategory, variable.NoDataValue, + variable.TimeUnit != null ? variable.TimeUnit.Id : 0, + variable.VariableUnit != null ? variable.VariableUnit.Id : 0 + }); + variable.Id = Convert.ToInt64(res); + } + + public void Update(Variable variable) + { + var query = + string.Format( + @"UPDATE {0} SET VariableCode=?, VariableName=?, Speciation=?, SampleMedium=?, ValueType=?, IsRegular=?, IsCategorical=?, TimeSupport=?, DataType=?, GeneralCategory=?, NoDataValue=?, TimeUnitsID=?, VariableUnitsID=? + WHERE VariableID=?", + TableName); + DbOperations.ExecuteNonQuery(query, new object[] + { + variable.Code, variable.Name, variable.Speciation, + variable.SampleMedium, + variable.ValueType, Convert.ToInt32(variable.IsRegular), + Convert.ToInt32(variable.IsCategorical), + variable.TimeSupport, + variable.DataType, variable.GeneralCategory, + variable.NoDataValue, + variable.TimeUnit.Id, + variable.VariableUnit.Id, variable.Id + }); + } + + public bool Exists(Variable entity) + { + if (entity == null) return false; + + const string query = "select count(*) from {0} where VariableID = {1} and VariableCode = '{2}'"; + var result = DbOperations.ExecuteSingleOutput(string.Format(query, TableName, entity.Id, entity.Code)); + return Convert.ToInt32(result) > 0; + } + + #endregion + + protected override Variable DataRowToEntity(DataRow row) + { + var unitsRepo = RepositoryFactory.Instance.Get(); + var res = new Variable + { + Id = Convert.ToInt64(row["VariableID"]), + Code = Convert.ToString(row["VariableCode"]), + Name = Convert.ToString(row["VariableName"]), + Speciation = Convert.ToString(row["Speciation"]), + SampleMedium = Convert.ToString(row["SampleMedium"]), + ValueType = Convert.ToString(row["ValueType"]), + IsRegular = Convert.ToBoolean(row["IsRegular"]), + IsCategorical = Convert.ToBoolean(row["IsCategorical"]), + TimeSupport = Convert.ToSingle(row["TimeSupport"]), + DataType = Convert.ToString(row["DataType"]), + GeneralCategory = Convert.ToString(row["GeneralCategory"]), + NoDataValue = Convert.ToDouble(row["NoDataValue"]), + TimeUnit = unitsRepo.GetByKey(row["TimeUnitsID"]), + VariableUnit = unitsRepo.GetByKey(row["VariableUnitsID"]), + }; + return res; + } + + protected override string PrimaryKeyName + { + get + { + return "VariableID"; + } + } + + protected override string TableName + { + get { return "Variables"; } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/HydroDesktop.Data.csproj b/Source/Core/HydroDesktop.Data/HydroDesktop.Data.csproj new file mode 100644 index 00000000..627443c0 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/HydroDesktop.Data.csproj @@ -0,0 +1,278 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {CEB869C6-ED48-4846-9040-4E82AB58B86B} + Library + Properties + HydroDesktop + HydroDesktop.Data + v4.0 + 512 + + + 3.5 + + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\HydroDesktop.Data.XML + + + pdbonly + true + ..\..\..\Binaries\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\ + DEBUG;TRACE + full + x86 + prompt + ..\..\..\Binaries\HydroDesktop.Data.XML + + + ..\..\..\Binaries\ + TRACE + true + pdbonly + x86 + prompt + + + + False + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + False + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + False + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + False + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + False + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + False + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + False + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + False + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + 3.5 + + + + False + Default\System.Data.SQLite.dll + False + + + False + Default\System.Data.SQLite.Linq.dll + False + + + + + + Properties\AssemblyInfoShared.cs + + + + + + + + + + + Code + + + + + + + + RepositoryFactory.cs + + + + + + + + + + + + + + + + True + True + Resources.resx + + + True + True + Settings.settings + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + Designer + + + + PreserveNewest + + + PreserveNewest + + + + Designer + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + + + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB} + HydroDesktop.Configuration + False + + + {7E4B6C24-4526-4995-9BDA-410CC41C7512} + HydroDesktop.Data.ODMCVServiceClient + + + {0B9BA90B-2016-4754-915A-0AD74FD0067A} + HydroDesktop.Interfaces + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/HydroDesktop.Data.sln b/Source/Core/HydroDesktop.Data/HydroDesktop.Data.sln new file mode 100644 index 00000000..8a6c059f --- /dev/null +++ b/Source/Core/HydroDesktop.Data/HydroDesktop.Data.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Data", "HydroDesktop.Data.csproj", "{CEB869C6-ED48-4846-9040-4E82AB58B86B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Debug|x86.ActiveCfg = Debug|x86 + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Debug|x86.Build.0 = Debug|x86 + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Release|Any CPU.Build.0 = Release|Any CPU + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Release|x86.ActiveCfg = Release|x86 + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Core/HydroDesktop.Data/ImportExport/CsvFileParser.cs b/Source/Core/HydroDesktop.Data/ImportExport/CsvFileParser.cs new file mode 100644 index 00000000..e5feef7f --- /dev/null +++ b/Source/Core/HydroDesktop.Data/ImportExport/CsvFileParser.cs @@ -0,0 +1,235 @@ +using System.ComponentModel; +using System.Data; +using System.IO; + +namespace HydroDesktop.ImportExport +{ + /// + /// Helper class for CSV file parsing + /// + public static class CsvFileParser + { + #region Private Members + + /// + /// Creates a name for a column that has not been used for any existing columns in the given data table + /// + /// The data table for which a unique column name is to be created + /// A unique column name for the data table + private static string GetUniqueColumnName ( DataTable dataTable ) + { + return GetUniqueColumnName ( dataTable, "Column" ); + } + + /// + /// Creates a name for a column that has not been used for any existing columns in the given data table + /// + /// The data table for which a unique column name is to be created + /// The base column name to start with when creating a unique column name. A number will be appended to the base column name until a unique column name is found. + /// A unique column name for the data table + private static string GetUniqueColumnName ( DataTable dataTable, string baseColumnName ) + { + // Check the input column name + if ( string.IsNullOrEmpty(baseColumnName) ) + { + baseColumnName = "Column"; + } + + if ( dataTable.Columns.Contains ( baseColumnName ) == false ) + { + return baseColumnName; + } + + // Add a number to the column name until we find a unique name + int counter = 1; + while ( true ) + { + string columnName = baseColumnName + counter++; + if ( dataTable.Columns.Contains ( columnName ) == false ) + { + return columnName; + } + } + } + + #endregion + + #region Public Members + + /// + /// Counts the number of lines in a file + /// + /// The full path to and name of the file to count lines in + /// The number of lines in the file + private static long CountLinesInFile ( string fileName ) + { + long lineCount = 0; + using ( var reader = new StreamReader ( fileName ) ) + { + while ( (reader.ReadLine ()) != null ) + { + lineCount++; + } + } + return lineCount; + } + + /// + /// Parses a comma separated file into a DataTable + /// + /// The full path to and name of the CSV file to parse + /// True if the file has column headers; false otherwise + /// BackgroundWorker (may be null), in order to show progress + /// Arguments from a BackgroundWorker (may be null), in order to support canceling + /// Max rows count in result DataTable + /// DataTable of the parsed data + public static DataTable ParseFileToDataTable ( string fileToParse, bool hasHeaders, BackgroundWorker bgWorker = null, DoWorkEventArgs e = null, int maxRowsCount = -1) + { + var dataTable = new DataTable (); + + // Get the number of lines in the file + long totalSteps = 0; + long currentStep = 0; + int previousPercentComplete = 0; + + if ( e != null && bgWorker != null ) + { + // Check for cancel + if ( bgWorker.CancellationPending ) + { + e.Cancel = true; + return dataTable; + } + + // Report progress + if ( bgWorker.WorkerReportsProgress ) + { + bgWorker.ReportProgress ( 0, "Opening file..." ); + totalSteps = CountLinesInFile ( fileToParse ); + } + + } + + using ( TextReader stream = new StreamReader ( fileToParse ) ) + { + var csv = new CsvStreamReader ( stream ); + string[] line = csv.ReadLine (); + if ( line == null ) + { + return dataTable; + } + + // Get the column headers + int percentComplete; + if ( hasHeaders ) + { + // Check for cancel + if ( e != null && bgWorker != null ) + { + if ( bgWorker.CancellationPending ) + { + e.Cancel = true; + return dataTable; + } + + // Report progress + if ( bgWorker.WorkerReportsProgress ) + { + currentStep++; + percentComplete = (int)(100 * currentStep / totalSteps); + if ( percentComplete > previousPercentComplete ) + { + bgWorker.ReportProgress ( percentComplete, "Reading data header..." ); + previousPercentComplete = percentComplete; + } + } + } + + foreach ( string part in line ) + { + // Get a unique column header + string columnHeader = part; + + if ( string.IsNullOrEmpty(columnHeader) ) + { + columnHeader = GetUniqueColumnName ( dataTable ); + } + else if ( dataTable.Columns.Contains ( columnHeader ) ) + { + columnHeader = GetUniqueColumnName ( dataTable, columnHeader ); + } + + // Add the column to the table + dataTable.Columns.Add ( columnHeader, typeof ( string ) ); + } + + line = csv.ReadLine (); + } + + // Parse the rest of the file + while ( line != null ) + { + // Check for cancel + if ( e != null && bgWorker != null ) + { + if ( bgWorker.CancellationPending ) + { + e.Cancel = true; + return dataTable; + } + + // Report progress + if ( bgWorker.WorkerReportsProgress ) + { + currentStep++; + percentComplete = (int)(100 * currentStep / totalSteps); + if ( percentComplete > previousPercentComplete ) + { + bgWorker.ReportProgress ( percentComplete, "Reading line " + currentStep + " of " + totalSteps + "..." ); + previousPercentComplete = percentComplete; + } + } + } + + // Add columns if the current line has more columns than the data table + while ( line.Length > dataTable.Columns.Count ) + { + dataTable.Columns.Add ( GetUniqueColumnName ( dataTable ), typeof ( string ) ); + } + + // Add the row to the data table + if (maxRowsCount < 0 || + dataTable.Rows.Count < maxRowsCount) + { + dataTable.Rows.Add(line); + } + else + { + break; + } + line = csv.ReadLine (); + } + + } + + // Report progress + if ( e != null && bgWorker != null ) + { + if ( bgWorker.CancellationPending ) + { + e.Cancel = true; + return dataTable; + } + + if ( bgWorker.WorkerReportsProgress ) + { + bgWorker.ReportProgress ( 100, "All lines read from file" ); + } + } + + return dataTable; + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.Data/ImportExport/CsvStreamReader.cs b/Source/Core/HydroDesktop.Data/ImportExport/CsvStreamReader.cs new file mode 100644 index 00000000..ad77933d --- /dev/null +++ b/Source/Core/HydroDesktop.Data/ImportExport/CsvStreamReader.cs @@ -0,0 +1,200 @@ +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace HydroDesktop.ImportExport +{ + class CsvStreamReader + { + #region Variables + + private readonly TextReader _csvStream; + private readonly char[] _buffer = new char[4096]; + private int _currentPositionInBuffer; + private int _lengthReadFromStream; + private bool _endOfStream; + private bool _endOfLine; + + #endregion + + #region Constructor + + public CsvStreamReader ( TextReader textStream ) + { + _csvStream = textStream; + } + + #endregion + + #region Private Members + + /// + /// Reads one data item (an item delimited by commas) in a line from a CSV stream + /// + /// A string representing the data item, or null if the end of the line was already reached in the stream + private string ReadData () + { + var data = new StringBuilder (); + + // See if we're at the end of a line + if ( _endOfLine ) + { + _endOfLine = false; + return null; + } + + // Step through each character until we've found the end of the data item + bool isQuoted = false; // True if data item is surrounded by quotes + bool enteringData = true; // True if we're about to enter the beginning of a data item in the stream + bool exitingData = false; // True if we're about to leave a quoted data item in the stream + + while ( true ) + { + // Read the next character from the buffer. This is more efficient than reading characters one-by-one from the stream. + char currentCharacter = ReadCharacter (); + + // Check for end of stream + if ( _endOfStream ) + { + if ( data.Length > 0 ) + { + return data.ToString (); + } + return null; + } + + // Check for end of data item + if ( (exitingData || isQuoted == false) + && (currentCharacter == ',') ) + { + return data.ToString (); + } + + // Check for end of line + if ( (enteringData || exitingData || isQuoted == false) + && (currentCharacter == '\x0A' || currentCharacter == '\x0D') ) + { + _endOfLine = true; + // If the stream uses the carriage return - new line combination, then advance the reader past the new line character + if ( currentCharacter == '\x0D' && Peek () == '\x0A' ) + { + ReadCharacter (); + } + return data.ToString (); + } + + // See if we're entering a data item + if ( enteringData ) + { + // See if data item begins with quotes + if ( currentCharacter == '"' ) + { + isQuoted = true; + } + else + { + data.Append ( currentCharacter ); + } + enteringData = false; + continue; + } + + // Check for end of quoted data item + if ( currentCharacter == '"' && isQuoted ) + { + if ( Peek () == '"' ) + { + // If a data item is surrounded by quotes, then back to back double quotes within the item represents a one double quote. + // Add one quote, and skip the other. + data.Append ( currentCharacter ); + ReadCharacter (); + } + else + { + exitingData = true; + } + + continue; + } + + // If we made it this far, then this character is part of the data item + data.Append ( currentCharacter ); + } + } + + /// + /// Returns the next available character but does not consume it + /// + /// The next character to be read + private char Peek () + { + // If we're at the end of the buffer, replace its contents with the next block of data + if ( _currentPositionInBuffer >= _lengthReadFromStream ) + { + _lengthReadFromStream = _csvStream.ReadBlock ( _buffer, 0, _buffer.Length ); + + // Check for end of stream + if ( _lengthReadFromStream == 0 ) + { + _endOfStream = true; + return '\a'; // ('Alert' character) Doesn't matter what we return, because we'll exit when we see that we're at the end of the stream. + } + _currentPositionInBuffer = 0; + } + + return _buffer[_currentPositionInBuffer]; + } + + /// + /// Returns the next available character + /// + /// The next character to be read + private char ReadCharacter () + { + // If we're at the end of the buffer, replace its contents with the next block of data + if ( _currentPositionInBuffer >= _lengthReadFromStream ) + { + _lengthReadFromStream = _csvStream.ReadBlock ( _buffer, 0, _buffer.Length ); + + // Check for end of stream + if ( _lengthReadFromStream == 0 ) + { + _endOfStream = true; + return 'a'; // Doesn't matter what we return, because we'll exit when we see that we're at the end of the stream. + } + _currentPositionInBuffer = 0; + } + + return _buffer[_currentPositionInBuffer++]; + } + + #endregion + + #region Public Members + + /// + /// Reads a line from the CSV stream, and parses it into a string array + /// + /// String array of data items parsed from the stream, or null if the end of the stream has been reached + public string[] ReadLine () + { + var line = new List (); + string data = ReadData (); + + while ( data != null ) + { + line.Add ( data ); + data = ReadData (); + } + + if ( _endOfStream && line.Count == 0 ) + { + return null; + } + + return line.ToArray(); + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.Data/ImportExport/DelimitedFormatOptions.cs b/Source/Core/HydroDesktop.Data/ImportExport/DelimitedFormatOptions.cs new file mode 100644 index 00000000..e0f50ce6 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/ImportExport/DelimitedFormatOptions.cs @@ -0,0 +1,53 @@ +using System.Globalization; +using System.Threading; + +namespace HydroDesktop.ImportExport +{ + /// + /// Specifies the format options for DelimitedTextWriter + /// + public class DelimitedFormatOptions + { + /// + /// Creates a new instance of delimited format options with default settings + /// + public DelimitedFormatOptions() + { + Delimiter = ","; + IncludeHeaders = true; + DateTimeFormat = Thread.CurrentThread.CurrentCulture.DateTimeFormat; + UseShortDateFormat = false; + } + + /// + /// The delimiter to be used to separate data items in a given data row. + /// Typically this is comma (","), semicolon (";"), space or tab + /// + public string Delimiter { get; set; } + + /// + /// True if the column names from the data table should be included as headers in the output streamTrue if column headers should be included, false otherwise + /// + public bool IncludeHeaders { get; set; } + + /// + /// The culture specific date/time format + /// + public DateTimeFormatInfo DateTimeFormat { get; set; } + + /// + /// If true, then the short date format is used + /// + public bool UseShortDateFormat { get; set; } + + /// + /// Determines whether data is to be appended to the file. If the file exists and append is false, the file is overwritten. If the file exists and append is true, the data is appended to the file. Otherwise, a new file is created. + /// + public bool Append { get; set; } + + /// + /// True if the culture should be set to InvariantCulture (decimal points will always be saved as ".") + /// + public bool UseInvariantCulture { get; set; } + } +} diff --git a/Source/Core/HydroDesktop.Data/ImportExport/DelimitedTextWriter.cs b/Source/Core/HydroDesktop.Data/ImportExport/DelimitedTextWriter.cs new file mode 100644 index 00000000..b0a9607a --- /dev/null +++ b/Source/Core/HydroDesktop.Data/ImportExport/DelimitedTextWriter.cs @@ -0,0 +1,636 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Data; +using System.Globalization; +using System.IO; +using System.Threading; + +namespace HydroDesktop.ImportExport +{ + /// + /// background worker progress report information + /// + public enum BackgroundWorkerReportingOptions + { + /// + /// report both user state and progress + /// + UserStateAndProgress, + /// + /// only report progress + /// + ProgressOnly, + /// + /// report none + /// + None + } + + + /// + /// Writes items to a text file in which items should be separated by a delimiter + /// + public class DelimitedTextWriter : IDisposable + { + #region Variables + + private TextWriter _textStream; + private bool _isDisposed; + private readonly string _delimiter; + private static string[] citationBg = new string[]{ + "HydroDesktop is in development at Brigham Young University and led by Dr. Daniel P. Ames (dan.ames@byu.edu). ", + "Development is supported by the Consortium of Universities for the Advancement of Hydrologic Sciences, Inc. ", + "(CUAHSI) under NSF Grant Nos. 03-26064 and 07-53521. ", + "If you use HydroDesktop in your research, please consider citing both the HydroDesktop web site ", + "(www.hydrodesktop.org) and the paper that describes the software:", + + }; + + private static string[] citation = new string[]{ + "Ames, D.P., Horsburgh, J.S., Cao, Y., Kadlec, J., Whiteaker, T., and Valentine, D., 2012. ", + "HydroDesktop: Web Services-Based Software for Hydrologic Data Discovery, Download, Visualization, ", + "and Analysis. Environmental Modeling & Software. Vol 37, pp 146-156. http:\\dx.doi.org/10.1016/j.envsoft.2012.03.013" + }; + #endregion + + #region Constructor + + /// + /// Initializes a new instance of the DelimitedTextWriter class for the specified stream, using the specified delimiter and the default encoding and buffer size. + /// + /// The stream to write to. + /// The delimiter to be used to separate data items in a given data row. + public DelimitedTextWriter ( TextWriter textStream, string delimiter ) + { + if ( textStream == null ) + { + throw new ArgumentNullException ( "Null text stream provided to DelimitedTextWriter" ); + } + _textStream = textStream; + + if ( delimiter == null ) + { + throw new ArgumentNullException ( "Null delimiter provided to DelimitedTextWriter" ); + } + if ( delimiter == String.Empty ) + { + throw new ArgumentException ( "Empty delimiter provided to DelimitedTextWriter" ); + } + _delimiter = delimiter; + } + + /// + /// Initializes a new instance of the DelimitedTextWriter class for the specified file on the specified path, using the specified delimiter and the default encoding and buffer size. + /// + /// The complete file path to write to. + /// The delimiter to be used to separate data items in a given data row. + public DelimitedTextWriter ( string path, string delimiter ) + { + _textStream = OpenStream ( path, false ); + + if ( delimiter == null ) + { + throw new ArgumentNullException ( "Null delimiter provided to DelimitedTextWriter" ); + } + if ( delimiter == String.Empty ) + { + throw new ArgumentException ( "Empty delimiter provided to DelimitedTextWriter" ); + } + _delimiter = delimiter; + } + + /// + /// Initializes a new instance of the DelimitedTextWriter class for the specified file on the specified path, using the specified delimiter and the default encoding and buffer size. If the file exists, it can be either overwritten or appended to. If the file does not exist, this constructor creates a new file. + /// + /// The complete file path to write to. + /// The delimiter to be used to separate data items in a given data row. + /// Determines whether data is to be appended to the file. If the file exists and append is false, the file is overwritten. If the file exists and append is true, the data is appended to the file. Otherwise, a new file is created. + public DelimitedTextWriter ( string path, string delimiter, bool append ) + { + _textStream = OpenStream ( path, append ); + + if ( delimiter == null ) + { + throw new ArgumentNullException ( "Null delimiter provided to DelimitedTextWriter" ); + } + if ( delimiter == String.Empty ) + { + throw new ArgumentException ( "Empty delimiter provided to DelimitedTextWriter" ); + } + _delimiter = delimiter; + } + + #endregion + + #region Destructor + /// + /// dispose the delimited text writer + /// + ~DelimitedTextWriter () + { + //Indicate that the GC called Dispose, not the user + Dispose ( false ); + } + + #endregion + + #region Private Methods + + /// + /// Formats the input string so that it can be parsed properly in a delimited file, by enclosing the string in double quotes if the string contains characters that would make parsing difficult + /// + /// The input string to format + /// The delimiter to be used to separate data items in a given data row. + /// Properly formatted string for writing to a delimited file + private static string FormatDataItem ( string dataItem, string delimiter ) + { + var charactersRequiringQuotes = new char[3]; + charactersRequiringQuotes[0] = '\"'; + charactersRequiringQuotes[1] = '\x0A'; + charactersRequiringQuotes[2] = '\x0D'; + + if ( dataItem.IndexOfAny ( charactersRequiringQuotes ) > -1 || dataItem.IndexOf(delimiter, StringComparison.Ordinal) > -1 ) + { + dataItem = "\"" + dataItem.Replace ( "\"", "\"\"" ) + "\""; + } + + return dataItem; + } + + /// + /// Opens a TextWriter to the output file + /// + /// Full path and filename for the output file + /// Determines whether data is to be appended to the file. If the file exists and append is false, the file is overwritten. If the file exists and append is true, the data is appended to the file. Otherwise, a new file is created. + /// TextWriter for the file at the path specified + private static TextWriter OpenStream ( string outputFilename, bool append ) + { + // Check that the folder exists + try + { + string parentFolder = Path.GetDirectoryName ( outputFilename ); + if ( Directory.Exists ( parentFolder ) == false ) + { + throw new Exception ( "The folder where the output file is to be written does not exist" ); + } + } + catch ( Exception ex ) + { + throw new Exception ( "Could not identify folder where output file should be written.\n" + ex.Message ); + } + + // Attempt to create the output file + TextWriter outputStream = null; + try + { + outputStream = new StreamWriter ( outputFilename, append ); + } + catch ( Exception ex ) + { + throw new Exception ( "Could not create output file.\n" + ex.Message ); + } + + return outputStream; + } + + #endregion + + #region Public Methods + + /// + /// Closes the current DelimitedTextWriter and the underlying stream + /// + public void Close () + { + Dispose (); + } + + /// + /// Converts items from a data table row to a delimited list of items, writes the list to the text stream in a single line, and then writes a line terminator to the stream + /// + /// Data row containing the items to be written as a delimited list in a single line + /// True if each item should be formatted for delimited file compatibility + public void WriteLine ( DataRow row, bool formatItems ) + { + var itemArray = new ArrayList ( row.ItemArray.Length ); + + object[] rowItems = row.ItemArray; + + foreach (object rowItem in rowItems) + { + itemArray.Add(rowItem == null ? "" : rowItem.ToString()); + } + + var items = (string[])itemArray.ToArray ( typeof ( string ) ); + + WriteLine ( items, formatItems ); + } + + /// + /// Converts input items to a delimited list of items, writes the list to the text stream in a single line, and then writes a line terminator to the stream + /// + /// The items which should be written as a delimited list in a single line + /// True if each item should be formatted for delimited file compatibility + private void WriteLine ( string[] items, bool formatItems ) + { + // Write data from each column for the current row + for ( int i = 0; i < items.Length; i++ ) + { + string item = items[i] ?? String.Empty; + + if ( formatItems ) + { + item = FormatDataItem ( item, _delimiter ); + } + + if ( i > 0 ) + { + _textStream.Write ( _delimiter + item ); + } + else + { + _textStream.Write ( item ); + } + } + + _textStream.Write ( System.Environment.NewLine ); + } + + /// + /// Writes data from a data table to a text stream, formatted as delimited values + /// + /// The data table with the data to write + /// The text stream to which the delimited data will be written + /// The delimited text stream formatting options + public static void DataTableToStream(DataTable dataTable, TextWriter outputStream, DelimitedFormatOptions formatOptions) + { + DataTableToStream(dataTable, outputStream, formatOptions, null, null, BackgroundWorkerReportingOptions.None); + } + + /// + /// Writes data from a data table to a text stream, formatted as delimited values + /// + /// The data table with the data to write + /// The text stream to which the delimited data will be written + /// The delimited text stream formatting options + /// BackgroundWorker (may be null), in order to show progress + /// Arguments from a BackgroundWorker (may be null), in order to support canceling + /// Indicates how the BackgroundWorker should report progress + private static void DataTableToStream(DataTable dataTable, TextWriter outputStream, DelimitedFormatOptions formatOptions, BackgroundWorker bgWorker, DoWorkEventArgs e, BackgroundWorkerReportingOptions reportingOption) + { + // Check that columns are present + int columnCount = dataTable.Columns.Count; + if (columnCount == 0) + { + return; + } + + // Get the number of rows in the table + long totalSteps = 0; + long currentStep = 0; + int previousPercentComplete = 0; + + // Background worker updates + if (bgWorker != null) + { + // Check for cancel + if (e != null && bgWorker.CancellationPending) + { + e.Cancel = true; + return; + } + + // Report progress + if (bgWorker.WorkerReportsProgress && reportingOption != BackgroundWorkerReportingOptions.None) + { + if (reportingOption == BackgroundWorkerReportingOptions.UserStateAndProgress) + { + bgWorker.ReportProgress(0, "Reading data..."); + } + else if (reportingOption == BackgroundWorkerReportingOptions.ProgressOnly) + { + bgWorker.ReportProgress(0); + } + + totalSteps = dataTable.Rows.Count; + } + } + + + // Write the column headers + if (formatOptions.IncludeHeaders) + { + // Background worker updates + if (bgWorker != null) + { + // Check for cancel + if (e != null && bgWorker.CancellationPending) + { + e.Cancel = true; + return; + } + + // Report progress + if (bgWorker.WorkerReportsProgress && reportingOption != BackgroundWorkerReportingOptions.None) + { + if (reportingOption == BackgroundWorkerReportingOptions.UserStateAndProgress) + { + bgWorker.ReportProgress(0, "Reading column headers..."); + } + else if (reportingOption == BackgroundWorkerReportingOptions.ProgressOnly) + { + bgWorker.ReportProgress(0); + } + + totalSteps = dataTable.Rows.Count; + } + } + + outputStream.Write("\"" + String.Join(formatOptions.Delimiter, citationBg) + "\""); + outputStream.WriteLine(); + outputStream.Write("Citation:,"); + outputStream.Write("\"" + String.Join(formatOptions.Delimiter, citation) + "\""); + outputStream.WriteLine(); + outputStream.WriteLine(); + + // Write each column name from the data table + for (int i = 0; i < columnCount; i++) + { + var item = FormatDataItem(dataTable.Columns[i].ColumnName, formatOptions.Delimiter); + if (i > 0) + { + outputStream.Write(formatOptions.Delimiter + item); + } + else + { + outputStream.Write(item); + } + } + + outputStream.Write(Environment.NewLine); + } + + //date time column index + int dateTimeColumnIndex = -1; + for (int i = 0; i < columnCount; i++) + { + if (dataTable.Columns[i].DataType == typeof(DateTime)) + { + dateTimeColumnIndex = i; + break; + } + } + + //set correct culture info - decimal point formatting option + CultureInfo originalCulture = Thread.CurrentThread.CurrentCulture; + if (formatOptions.UseInvariantCulture) + { + Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; + } + + + // Write the data + foreach (DataRow row in dataTable.Rows) + { + // Background worker updates + if (bgWorker != null) + { + // Check for cancel + if (e != null && bgWorker.CancellationPending) + { + e.Cancel = true; + return; + } + + // Report progress + if (bgWorker.WorkerReportsProgress && reportingOption != BackgroundWorkerReportingOptions.None) + { + currentStep++; + var percentComplete = (int)(100 * currentStep / totalSteps); + if (percentComplete > previousPercentComplete) + { + if (reportingOption == BackgroundWorkerReportingOptions.UserStateAndProgress) + { + bgWorker.ReportProgress(percentComplete, "Writing line " + currentStep + " of " + totalSteps + "..."); + } + else if (reportingOption == BackgroundWorkerReportingOptions.ProgressOnly) + { + bgWorker.ReportProgress(percentComplete); + } + + previousPercentComplete = percentComplete; + } + } + } + + // write data for each row + for (int i = 0; i < columnCount; i++) + { + var rowValue = row[i] ?? String.Empty; + + string item; + + if (i != dateTimeColumnIndex) + { + item = FormatDataItem(rowValue.ToString(), formatOptions.Delimiter); + } + else if (!formatOptions.UseShortDateFormat) + { + item = FormatDataItem((Convert.ToDateTime(rowValue)).ToString(formatOptions.DateTimeFormat), formatOptions.Delimiter); + } + else + { + item = FormatDataItem((Convert.ToDateTime(rowValue)).ToString("yyyy-MM-dd"), formatOptions.Delimiter); + } + + if (i > 0) + { + outputStream.Write(formatOptions.Delimiter + item); + } + else + { + outputStream.Write(item); + } + } + + outputStream.Write(System.Environment.NewLine); + } + + //reset the culture info + if (Thread.CurrentThread.CurrentCulture != originalCulture) + Thread.CurrentThread.CurrentCulture = originalCulture; + + // Background worker updates + if (bgWorker != null) + { + // Check for cancel + if (e != null && bgWorker.CancellationPending) + { + e.Cancel = true; + return; + } + + // Report progress + if (bgWorker.WorkerReportsProgress && reportingOption != BackgroundWorkerReportingOptions.None) + { + if (reportingOption == BackgroundWorkerReportingOptions.UserStateAndProgress) + { + bgWorker.ReportProgress(100, "All lines written"); + } + else if (reportingOption == BackgroundWorkerReportingOptions.ProgressOnly) + { + bgWorker.ReportProgress(100); + } + } + } + } + + /// + /// Writes data from a data table to a delimited text file + /// + /// The data table with the data to write + /// Full path and filename for the output file + /// The delimiter to be used to separate data items in a given data row. + /// True if the column names from the data table should be included as headers in the output stream + public static void DataTableToDelimitedFile ( DataTable dataTable, string outputFilename, string delimiter, bool includeHeaders ) + { + //DataTableToDelimitedFile ( dataTable, outputFilename, delimiter, includeHeaders, false, null, null, BackgroundWorkerReportingOptions.None ); + DataTableToDelimitedFile(dataTable, outputFilename, new DelimitedFormatOptions { Delimiter = delimiter, Append = false, IncludeHeaders = includeHeaders }); + } + + /// + /// Writes data from a data table to a delimited text file + /// + /// The data table with the data to write + /// Full path and filename for the output file + /// The delimiter to be used to separate data items in a given data row. + /// True if the column names from the data table should be included as headers in the output stream + /// Determines whether data is to be appended to the file. If the file exists and append is false, the file is overwritten. If the file exists and append is true, the data is appended to the file. Otherwise, a new file is created. + public static void DataTableToDelimitedFile ( DataTable dataTable, string outputFilename, string delimiter, bool includeHeaders, bool append ) + { + DataTableToDelimitedFile ( dataTable, outputFilename, delimiter, includeHeaders, append, null, null, BackgroundWorkerReportingOptions.None ); + } + + /// + /// Writes data from a data table to a delimited text file + /// + /// The data table with the data to write + /// Full path and filename for the output file + /// The delimiter to be used to separate data items in a given data row. + /// True if the column names from the data table should be included as headers in the output stream + /// BackgroundWorker (may be null), in order to show progress + /// Arguments from a BackgroundWorker (may be null), in order to support canceling + /// Indicates how the BackgroundWorker should report progress + public static void DataTableToDelimitedFile ( DataTable dataTable, string outputFilename, string delimiter, bool includeHeaders, BackgroundWorker bgWorker, DoWorkEventArgs e, BackgroundWorkerReportingOptions reportingOption ) + { + DataTableToDelimitedFile ( dataTable, outputFilename, delimiter, includeHeaders, false, bgWorker, e, reportingOption ); + } + + /// + /// Writes data from a data table to a delimited text file + /// + /// The data table with the data to write + /// Full path and filename for the output file + /// The delimiter to be used to separate data items in a given data row. + /// True if the column names from the data table should be included as headers in the output stream + /// Determines whether data is to be appended to the file. If the file exists and append is false, the file is overwritten. If the file exists and append is true, the data is appended to the file. Otherwise, a new file is created. + /// BackgroundWorker (may be null), in order to show progress + /// Arguments from a BackgroundWorker (may be null), in order to support canceling + /// Indicates how the BackgroundWorker should report progress + public static void DataTableToDelimitedFile(DataTable dataTable, string outputFilename, string delimiter, bool includeHeaders, bool append, BackgroundWorker bgWorker, DoWorkEventArgs e, BackgroundWorkerReportingOptions reportingOption) + { + var formatOptions = new DelimitedFormatOptions { Append = append, Delimiter = delimiter, IncludeHeaders = includeHeaders }; + DataTableToDelimitedFile(dataTable, outputFilename, formatOptions, bgWorker, e, reportingOption); + } + + /// + /// Writes data from a data table to a delimited text file + /// + /// The data table with the data to write + /// Full path and filename for the output file + /// Delimited text formatting options + /// BackgroundWorker (may be null), in order to show progress + /// Arguments from a BackgroundWorker (may be null), in order to support canceling + /// Indicates how the BackgroundWorker should report progress + private static void DataTableToDelimitedFile(DataTable dataTable, string outputFilename, DelimitedFormatOptions formatOptions, BackgroundWorker bgWorker = null, DoWorkEventArgs e = null, BackgroundWorkerReportingOptions reportingOption = BackgroundWorkerReportingOptions.None) + { + // Check that the folder exists + try + { + string parentFolder = Path.GetDirectoryName ( outputFilename ); + if ( Directory.Exists ( parentFolder ) == false ) + { + throw new Exception ( "The folder where the output file is to be written does not exist" ); + } + } + catch ( Exception ex ) + { + throw new Exception ( "Could not identify folder where output file should be written.\n" + ex.Message ); + } + + // Attempt to create the output file + try + { + TextWriter outputStream; + using ( outputStream = new StreamWriter ( outputFilename, formatOptions.Append ) as TextWriter ) + { + try + { + // Write the data + DataTableToStream ( dataTable, outputStream, formatOptions, bgWorker, e, reportingOption ); + } + catch ( Exception ex ) + { + throw new Exception ( "Could not write to file.\n" + ex.Message ); + } + + // Close the file + outputStream.Close (); + } + } + catch ( Exception ex ) + { + throw new Exception ( "Could not create output file.\n" + ex.Message ); + } + } + + #endregion + + #region IDisposable Members + /// + /// supresses the GC when disposing object + /// + public void Dispose () + { + Dispose ( true ); + GC.SuppressFinalize ( this ); + } + /// + /// Dispose the writer object + /// + /// true if disposing is in progress + protected void Dispose ( bool disposing ) + { + if ( _isDisposed == false ) + { + if ( disposing ) + { + // Code to dispose the managed resources of the class + } + + // Code to dispose the un-managed resources of the class + if ( _textStream != null ) + { + _textStream.Dispose (); + _textStream = null; + } + } + + _isDisposed = true; + } + + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.Data/Properties/AssemblyInfo.cs b/Source/Core/HydroDesktop.Data/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..236de99d --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Properties/AssemblyInfo.cs @@ -0,0 +1,22 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Data")] +[assembly: AssemblyDescription("HydroDesktop Database access functions")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CUAHSI")] +[assembly: AssemblyProduct("HydroDesktop.Data")] +[assembly: AssemblyCopyright("Copyright © CUAHSI 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("ff3fe48f-5992-4a93-a367-984af1491ca5")] \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Properties/Resources.Designer.cs b/Source/Core/HydroDesktop.Data/Properties/Resources.Designer.cs new file mode 100644 index 00000000..1a5432d5 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.239 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [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/Source/Core/HydroDesktop.Data/Properties/Resources.resx b/Source/Core/HydroDesktop.Data/Properties/Resources.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Properties/Resources.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Properties/Settings.Designer.cs b/Source/Core/HydroDesktop.Data/Properties/Settings.Designer.cs new file mode 100644 index 00000000..47f5e0f2 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Properties/Settings.Designer.cs @@ -0,0 +1,141 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.239 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.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; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://hiscentral.cuahsi.org/webservices/hiscentral.asmx")] + public string defaultHISCentralURL { + get { + return ((string)(this["defaultHISCentralURL"])); + } + set { + this["defaultHISCentralURL"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute(@" + + http://hiscentral.cuahsi.org/webservices/hiscentral.asmx + http://water.sdsc.edu/hiscentral/webservices/hiscentral.asmx +")] + public global::System.Collections.Specialized.StringCollection hisCentralURLList { + get { + return ((global::System.Collections.Specialized.StringCollection)(this["hisCentralURLList"])); + } + set { + this["hisCentralURLList"] = value; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("default.hdprj")] + public string DefaultHDProjectName { + get { + return ((string)(this["DefaultHDProjectName"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("settings.xml")] + public string settingsFileName { + get { + return ((string)(this["settingsFileName"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("HydroDesktop")] + public string TempDirectoryName { + get { + return ((string)(this["TempDirectoryName"])); + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("projects\\default")] + public string defaultProjectDirectory { + get { + return ((string)(this["defaultProjectDirectory"])); + } + set { + this["defaultProjectDirectory"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("HydroDesktop")] + public string ApplicationDirectoryName { + get { + return ((string)(this["ApplicationDirectoryName"])); + } + set { + this["ApplicationDirectoryName"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("default.sqlite")] + public string DefaultDatabaseName { + get { + return ((string)(this["DefaultDatabaseName"])); + } + set { + this["DefaultDatabaseName"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("MetadataCache.sqlite")] + public string DefaultMetadataCacheName { + get { + return ((string)(this["DefaultMetadataCacheName"])); + } + set { + this["DefaultMetadataCacheName"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Append")] + public string DownloadOption { + get { + return ((string)(this["DownloadOption"])); + } + set { + this["DownloadOption"] = value; + } + } + } +} diff --git a/Source/Core/HydroDesktop.Data/Properties/Settings.settings b/Source/Core/HydroDesktop.Data/Properties/Settings.settings new file mode 100644 index 00000000..385cc13e --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Properties/Settings.settings @@ -0,0 +1,40 @@ + + + + + + http://hiscentral.cuahsi.org/webservices/hiscentral.asmx + + + <?xml version="1.0" encoding="utf-16"?> +<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <string>http://hiscentral.cuahsi.org/webservices/hiscentral.asmx</string> + <string>http://water.sdsc.edu/hiscentral/webservices/hiscentral.asmx</string> +</ArrayOfString> + + + default.hdprj + + + settings.xml + + + HydroDesktop + + + projects\default + + + HydroDesktop + + + default.sqlite + + + MetadataCache.sqlite + + + Append + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Resources/ChangeLog_DefaultDatabase.txt b/Source/Core/HydroDesktop.Data/Resources/ChangeLog_DefaultDatabase.txt new file mode 100644 index 00000000..9218a502 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/Resources/ChangeLog_DefaultDatabase.txt @@ -0,0 +1,23 @@ +-- These indexes need to optimize queries in tableView +CREATE INDEX ix_dataValues_SeriesID ON DataValues(SeriesID ASC); +CREATE INDEX ix_dataValues_SeriesID_LocalDateTime ON DataValues(SeriesID ASC, LocalDateTime ASC); + +-- Columns for Unit Conversions +ALTER TABLE Units +ADD COLUMN Dimension nvarchar; + +ALTER TABLE Units +ADD COLUMN ConversionFactorToSI float; + +ALTER TABLE Units +ADD COLUMN OffsetToSI float; + +ALTER TABLE UnitConversions +ADD COLUMN Offset float; + +-- Site: SiteType/Country columns +ALTER TABLE Sites +ADD COLUMN SiteType nvarchar; + +ALTER TABLE Sites +ADD COLUMN Country nvarchar; \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/Resources/MetadataCache.sqlite b/Source/Core/HydroDesktop.Data/Resources/MetadataCache.sqlite new file mode 100644 index 00000000..ad50b77e Binary files /dev/null and b/Source/Core/HydroDesktop.Data/Resources/MetadataCache.sqlite differ diff --git a/Source/Core/HydroDesktop.Data/Resources/defaultDatabase.sqlite b/Source/Core/HydroDesktop.Data/Resources/defaultDatabase.sqlite new file mode 100644 index 00000000..2cf2a023 Binary files /dev/null and b/Source/Core/HydroDesktop.Data/Resources/defaultDatabase.sqlite differ diff --git a/Source/Core/HydroDesktop.Data/Support/Mono/System.Data.SQLite.Linq.dll b/Source/Core/HydroDesktop.Data/Support/Mono/System.Data.SQLite.Linq.dll new file mode 100644 index 00000000..5f9a4621 Binary files /dev/null and b/Source/Core/HydroDesktop.Data/Support/Mono/System.Data.SQLite.Linq.dll differ diff --git a/Source/Core/HydroDesktop.Data/Support/Mono/System.Data.SQLite.dll b/Source/Core/HydroDesktop.Data/Support/Mono/System.Data.SQLite.dll new file mode 100644 index 00000000..e436ec53 Binary files /dev/null and b/Source/Core/HydroDesktop.Data/Support/Mono/System.Data.SQLite.dll differ diff --git a/Source/Core/HydroDesktop.Data/Support/Mono/libsqlite3.0.dylib b/Source/Core/HydroDesktop.Data/Support/Mono/libsqlite3.0.dylib new file mode 100644 index 00000000..4982a000 Binary files /dev/null and b/Source/Core/HydroDesktop.Data/Support/Mono/libsqlite3.0.dylib differ diff --git a/Source/Core/HydroDesktop.Data/Support/Mono/libsqlite3.so.0 b/Source/Core/HydroDesktop.Data/Support/Mono/libsqlite3.so.0 new file mode 100644 index 00000000..683f9bc4 Binary files /dev/null and b/Source/Core/HydroDesktop.Data/Support/Mono/libsqlite3.so.0 differ diff --git a/Source/Core/HydroDesktop.Data/Support/Windows/System.Data.SQLite.Linq.dll b/Source/Core/HydroDesktop.Data/Support/Windows/System.Data.SQLite.Linq.dll new file mode 100644 index 00000000..b94dcba2 Binary files /dev/null and b/Source/Core/HydroDesktop.Data/Support/Windows/System.Data.SQLite.Linq.dll differ diff --git a/Source/Core/HydroDesktop.Data/Support/Windows/System.Data.SQLite.dll b/Source/Core/HydroDesktop.Data/Support/Windows/System.Data.SQLite.dll new file mode 100644 index 00000000..457521fa Binary files /dev/null and b/Source/Core/HydroDesktop.Data/Support/Windows/System.Data.SQLite.dll differ diff --git a/Source/Core/HydroDesktop.Data/UnitConversions/DefaultDatabaseUnitsSource.cs b/Source/Core/HydroDesktop.Data/UnitConversions/DefaultDatabaseUnitsSource.cs new file mode 100644 index 00000000..4a2696c0 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/UnitConversions/DefaultDatabaseUnitsSource.cs @@ -0,0 +1,32 @@ +using System.Collections.Generic; +using System.IO; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.UnitConversions +{ + class DefaultDatabaseUnitsSource : IUnitsSource + { + #region Implementation of IUnitsSource + + public IEnumerable GetUnits() + { + var path = Path.GetTempFileName(); + try + { + SQLiteHelper.CreateSQLiteDatabase(path); + var connectionString = SQLiteHelper.GetSQLiteConnectionString(path); + var unitsRepo = RepositoryFactory.Instance.Get(DatabaseTypes.SQLite, connectionString); + return unitsRepo.GetAll(); + } + finally + { + if (File.Exists(path)) + File.Delete(path); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/UnitConversions/IUnitsSource.cs b/Source/Core/HydroDesktop.Data/UnitConversions/IUnitsSource.cs new file mode 100644 index 00000000..baa65bfe --- /dev/null +++ b/Source/Core/HydroDesktop.Data/UnitConversions/IUnitsSource.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.UnitConversions +{ + interface IUnitsSource + { + IEnumerable GetUnits(); + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/UnitConversions/UnitConverter.cs b/Source/Core/HydroDesktop.Data/UnitConversions/UnitConverter.cs new file mode 100644 index 00000000..0f9f0be6 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/UnitConversions/UnitConverter.cs @@ -0,0 +1,154 @@ +using System; +using System.Diagnostics; +using HydroDesktop.Configuration; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.UnitConversions +{ + /// + /// Contains methods for units conversion. + /// + public static class UnitConverter + { + #region Public methods + + /// + /// Shows that one unit can be converted to another unit + /// + /// Source unit + /// + /// + public static bool CanConvertUnits(Unit unitA, Unit unitB) + { + // Check that given units has same base SI unit + if (unitA.Dimension != unitB.Dimension || + unitA.UnitsType != unitB.UnitsType) + { + return false; + } + + // Check for Conversion factor and offset + if (unitA.ConversionFactorToSI.HasValue && + unitA.OffsetToSI.HasValue && + unitB.ConversionFactorToSI.HasValue && + unitB.OffsetToSI.HasValue) + { + return true; + } + + // Check for conversion via UnitConversions table + return RepositoryFactory.Instance.Get().ExistsConversion(unitA, unitB); + } + + /// + /// Convert value from one unit to another + /// + /// Original value + /// Unit of original value + /// New Unit + /// Converted value. + public static double ConvertValue (double originalValue, Unit originalUnit, Unit newUnit) + { + var conversionFunc = GetConversionFunc(originalUnit, newUnit); + return conversionFunc(originalValue); + } + + /// + /// Convert all values in series to new unit + /// + /// Original series + /// New unit + /// New series with converted values. + public static Series ConvertSeries (Series originalSeries, Unit newUnit) + { + var conversionFunc = GetConversionFunc(originalSeries.Variable.VariableUnit, newUnit); + var series = new Series(originalSeries, false) {Variable = (Variable) originalSeries.Variable.Clone()}; + series.Variable.VariableUnit = newUnit; + foreach (var dataValue in originalSeries.DataValueList) + { + var value = conversionFunc(dataValue.Value); + series.AddDataValue(dataValue.LocalDateTime, value, dataValue.UTCOffset, dataValue.Qualifier); + } + + return series; + } + + /// + /// Ensure that all columns need to unit conversion are present in the current database. + /// Also it populates units from default database into current database. + /// + public static void UpdateDefaultUnits() + { + var connectionString = Settings.Instance.DataRepositoryConnectionString; + EnsureColumnsForUnitConversions(connectionString); + var unitsSource = new DefaultDatabaseUnitsSource(); + UpdateUnits(connectionString, unitsSource); + } + + /// + /// Updates units table from "ODM Controlled Vocabulary" + /// + /// Connection string to database to update. By default it is Settings.Instance.DataRepositoryConnectionString + public static void UpdateDefaultUnitsFromWeb(string connectionString = null) + { + if (String.IsNullOrEmpty(connectionString)) + { + connectionString = Settings.Instance.DataRepositoryConnectionString; + } + EnsureColumnsForUnitConversions(connectionString); + var unitsSource = new WebUnitsSource(); + UpdateUnits(connectionString, unitsSource); + } + + #endregion + + #region Private methods + + private static void EnsureColumnsForUnitConversions(string connectionString) + { + //todo: implement me + } + + private static Func GetConversionFunc(Unit originalUnit, Unit newUnit) + { + var conversion = RepositoryFactory.Instance.Get().GetConversion(originalUnit, + newUnit); + if (conversion != null) + { + // ConversionFactor * (x + Offset) + return x => conversion.ConversionFactor*(x + conversion.Offset); + } + + return delegate(double x) + { + // Convert to SI + // f^-1(x) = ConversionFactorToSI * (x + OffsetToSI) + var originalInSI = originalUnit.ConversionFactorToSI*(x + originalUnit.OffsetToSI); + + // Convert to New Unit + // f(x) = 1/ConversionFactorToSI *x - OffsetToSI + var res = 1 / newUnit.ConversionFactorToSI * originalInSI - newUnit.OffsetToSI; + + Debug.Assert(res != null, "res != null"); + return (double) res; + }; + } + + private static void UpdateUnits(string connectionString, IUnitsSource source) + { + var unitsRepo = RepositoryFactory.Instance.Get(DatabaseTypes.SQLite, connectionString); + foreach (var unit in source.GetUnits()) + { + if (String.IsNullOrEmpty(unit.Name)) continue; + if (!unitsRepo.Exists(unit.Name)) + { + unitsRepo.AddUnit(unit); + } + } + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.Data/UnitConversions/WebUnitsSource.cs b/Source/Core/HydroDesktop.Data/UnitConversions/WebUnitsSource.cs new file mode 100644 index 00000000..c9513eb6 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/UnitConversions/WebUnitsSource.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; +using HydroDesktop.Data.ODMCVServiceClient; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.UnitConversions +{ + class WebUnitsSource : IUnitsSource + { + #region Implementation of IUnitsSource + + public IEnumerable GetUnits() + { + var client = ODMCVServiceClientFactory.Instance.GetODMCVServiceClient(); + return client.GetUnits(); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/app.config b/Source/Core/HydroDesktop.Data/app.config new file mode 100644 index 00000000..2241dc50 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/app.config @@ -0,0 +1,57 @@ + + + + +
+ + +
+ + + + + + http://hiscentral.cuahsi.org/webservices/hiscentral.asmx + + + + + http://hiscentral.cuahsi.org/webservices/hiscentral.asmx + http://water.sdsc.edu/hiscentral/webservices/hiscentral.asmx + + + + + projects\default + + + HydroDesktop + + + default.sqlite + + + MetadataCache.sqlite + + + Append + + + + + + + default.hdprj + + + settings.xml + + + HydroDesktop + + + + + + + diff --git a/Source/Core/HydroDesktop.Data/package.nuspec b/Source/Core/HydroDesktop.Data/package.nuspec new file mode 100644 index 00000000..6df3f5f2 --- /dev/null +++ b/Source/Core/HydroDesktop.Data/package.nuspec @@ -0,0 +1,22 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + true + $description$ + + en-US + HideReleaseFromEndUser + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/packages.config b/Source/Core/HydroDesktop.Data/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Core/HydroDesktop.Data/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Data/x64/SQLite.Interop.dll b/Source/Core/HydroDesktop.Data/x64/SQLite.Interop.dll new file mode 100644 index 00000000..21c2bd85 Binary files /dev/null and b/Source/Core/HydroDesktop.Data/x64/SQLite.Interop.dll differ diff --git a/Source/Core/HydroDesktop.Data/x86/SQLite.Interop.dll b/Source/Core/HydroDesktop.Data/x86/SQLite.Interop.dll new file mode 100644 index 00000000..817fa3a2 Binary files /dev/null and b/Source/Core/HydroDesktop.Data/x86/SQLite.Interop.dll differ diff --git a/Source/Core/HydroDesktop.ErrorReporting/CodePlex/HtmlElement.cs b/Source/Core/HydroDesktop.ErrorReporting/CodePlex/HtmlElement.cs new file mode 100644 index 00000000..388d14ce --- /dev/null +++ b/Source/Core/HydroDesktop.ErrorReporting/CodePlex/HtmlElement.cs @@ -0,0 +1,69 @@ +using System.Collections.Generic; +using System.Text.RegularExpressions; + +namespace HydroDesktop.ErrorReporting.CodePlex +{ + internal class HtmlElement + { + private readonly Dictionary _attributes = new Dictionary(); + + public HtmlElement(string name, string value) + { + Name = name; + Value = value; + } + + public HtmlElement(string text) + { + var regex = new Regex("(\\w*)\\s*=\\s*\"([^\"]*)\"|(\\w*)\\s*=\\s*'([^\"]*)'", + RegexOptions.IgnoreCase | RegexOptions.Compiled); + var matchCollection = regex.Matches(text); + foreach (Match match in matchCollection) + { + var text2 = match.Value.Replace("\"", "").Replace("'", ""); + var num = text2.IndexOf('='); + var key = text2.Substring(0, num); + var value = text2.Substring(num + 1); + _attributes[key] = value; + } + } + + public string ID + { + get { return GetValueOrDefault("id"); } + } + + public string Name + { + get { return GetValueOrDefault("name"); } + set { _attributes["name"] = value; } + } + + public string Value + { + get { return GetValueOrDefault("value"); } + set { _attributes["value"] = value; } + } + + public string Type + { + get { return GetValueOrDefault("type"); } + } + + public bool IsFile { get; set; } + public string FileName { get; set; } + public byte[] File { get; set; } + public string ContentType { get; set; } + + public override string ToString() + { + return string.Format("{0}={1}", Name, Value); + } + + private string GetValueOrDefault(string name) + { + string value; + return _attributes.TryGetValue(name, out value) ? value : null; + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ErrorReporting/CodePlex/HtmlForm.cs b/Source/Core/HydroDesktop.ErrorReporting/CodePlex/HtmlForm.cs new file mode 100644 index 00000000..40c2a8f1 --- /dev/null +++ b/Source/Core/HydroDesktop.ErrorReporting/CodePlex/HtmlForm.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Text.RegularExpressions; + +namespace HydroDesktop.ErrorReporting.CodePlex +{ + internal class HtmlForm : HtmlElement + { + private List _elements = new List(); + + private HtmlForm(string text) + : base(text) + { + } + + public IList Elements + { + get + { + return _elements; + } + } + + public override string ToString() + { + var stringBuilder = new StringBuilder(); + foreach (var htmlElement in _elements) + { + if (htmlElement.Name == null) continue; + if (stringBuilder.Length > 0) + { + stringBuilder.Append('&'); + } + stringBuilder.Append(htmlElement); + } + return stringBuilder.ToString(); + } + + public static HtmlForm GetForm(string doc, string id) + { + HtmlForm htmlForm = null; + var arrayList = new List(); + var regex = new Regex("]*)>|]*)", RegexOptions.IgnoreCase | RegexOptions.Compiled); + var matchCollection = regex.Matches(doc); + foreach (Match match in matchCollection) + { + if (match.Value.StartsWith("(arrayList.Count); + htmlForm._elements.AddRange(arrayList); + } + + return htmlForm; + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ErrorReporting/CodePlex/Issue.cs b/Source/Core/HydroDesktop.ErrorReporting/CodePlex/Issue.cs new file mode 100644 index 00000000..019b49a4 --- /dev/null +++ b/Source/Core/HydroDesktop.ErrorReporting/CodePlex/Issue.cs @@ -0,0 +1,37 @@ +using System; +using System.IO; + +namespace HydroDesktop.ErrorReporting.CodePlex +{ + internal class Issue + { + private FileInfo _fileToAttach; + public string Description { get; set; } + public string Summary { get; set; } + + /// + /// File to attach + /// + /// Throws when file not exists or size of attached file is too big. + public FileInfo FileToAttach + { + get { return _fileToAttach; } + set + { + if (value != null) + { + if (!value.Exists) + { + throw new ArgumentOutOfRangeException("value", "File to attach not exists."); + } + if (value.Length > 4 * 1024 * 1024) // Max 4 MB) + { + throw new ArgumentOutOfRangeException("value", "Size of attached file is too big. Maximum is 4 MB."); + } + } + + _fileToAttach = value; + } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ErrorReporting/CodePlex/IssueTracker.cs b/Source/Core/HydroDesktop.ErrorReporting/CodePlex/IssueTracker.cs new file mode 100644 index 00000000..8e9a5385 --- /dev/null +++ b/Source/Core/HydroDesktop.ErrorReporting/CodePlex/IssueTracker.cs @@ -0,0 +1,152 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; + +namespace HydroDesktop.ErrorReporting.CodePlex +{ + internal class IssueTracker + { + private readonly string _projectName; + private WebBrowser _browser; + + public bool IsSignedIn { get; private set; } + + public IssueTracker(string projectName) + { + _projectName = projectName; + } + + public void SignIn(string userName, string password) + { + if (String.IsNullOrWhiteSpace(userName)) + { + throw new ArgumentOutOfRangeException("userName", "User name should be not empty"); + } + if (String.IsNullOrWhiteSpace(password)) + { + throw new ArgumentOutOfRangeException("password", "Password should be not empty"); + } + + _browser = new WebBrowser("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19"); + const string loginUrl = @"https://www.codeplex.com/site/login"; + var page = _browser.Get(loginUrl); + var form = HtmlForm.GetForm(page, "aspnetForm"); + + foreach (var t in form.Elements) + { + if (t.Name == null) continue; + switch (t.Name.ToLower()) + { + case "username": + t.Value = userName; + break; + case "password": + t.Value = password; + break; + } + } + + var doc = _browser.Post(loginUrl, form); + if (!doc.Contains("Redirect")) + { + throw new Exception("Invalid user name or password."); + } + IsSignedIn = true; + } + + /// + /// Creates issue on Codeplex + /// + /// Issue to create + /// Link to created issue. + public string CreateIssue(Issue issue) + { + if (issue == null) throw new ArgumentNullException("issue"); + if (!IsSignedIn) + { + throw new Exception("Not signed in into codeplex."); + } + + var createIssueUrl = string.Format(@"https://{0}.codeplex.com/WorkItem/Create", _projectName); + + var createIssuePage = _browser.Get(createIssueUrl); + var form = HtmlForm.GetForm(createIssuePage, "aspnetForm"); + var elements = new List(form.Elements); + form.Elements.Clear(); + + var file = issue.FileToAttach; + byte[] fileData = null; + if (file != null) + { + using (var fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read)) + { + fileData = new byte[fs.Length]; + fs.Read(fileData, 0, fileData.Length); + } + } + form.Elements.Add(new HtmlElement("__RequestVerificationToken", elements.First(t => t.Name == "__RequestVerificationToken").Value)); + form.Elements.Add(new HtmlElement("searchsite", "Search all projects")); + form.Elements.Add(new HtmlElement("WorkItem.Summary", issue.Summary)); + form.Elements.Add(new HtmlElement("Text", issue.Description)); + + if (fileData != null) + { + form.Elements.Add(new HtmlElement("PostedFile_text", @"C:\fakepath\" + file.Name)); + form.Elements.Add(new HtmlElement("PostedFile", null) + { + IsFile = true, + File = fileData, + ContentType = "application/octet-stream", + FileName = file.Name + }); + } + else + { + form.Elements.Add(new HtmlElement("PostedFile_text", null)); + form.Elements.Add(new HtmlElement("PostedFile", null) {IsFile = true,}); + } + + form.Elements.Add(new HtmlElement("SubscribeCheckBox", "true")); + form.Elements.Add(new HtmlElement("EmailSubscriptionTypeList", "1")); + form.Elements.Add(new HtmlElement("StopNotificationsCheckBox", "false")); + form.Elements.Add(new HtmlElement("SelectedSubscriptionItem", "1")); + form.Elements.Add(new HtmlElement("SelectedStatus", "Proposed")); + form.Elements.Add(new HtmlElement("SelectedType", "Issue")); + form.Elements.Add(new HtmlElement("SelectedPriority", "Low")); + form.Elements.Add(new HtmlElement("WorkItem.PlannedForRelease", "Unassigned")); + form.Elements.Add(new HtmlElement("WorkItem.AssignedTo", "Unassigned")); + form.Elements.Add(new HtmlElement("SelectedComponent", "No Component Selected")); + form.Elements.Add(new HtmlElement("WorkItem.Custom", null)); + + var res = _browser.Post(createIssueUrl, form, createIssueUrl, true); + // Check that issue was created + string issueLink = null; + var itemNumberSection = res.IndexOf(@">Item number:", StringComparison.Ordinal); + if (itemNumberSection >= 0) + { + var itemNumberStarts = res.IndexOf(">", itemNumberSection + @">Item number:".Length + 1, + StringComparison.Ordinal); + if (itemNumberStarts >= 0) + { + var itemNumberEnds = res.IndexOf("", itemNumberStarts + 1, StringComparison.Ordinal); + if (itemNumberEnds >= 0) + { + var itemNumber = res.Substring(itemNumberStarts + 1, itemNumberEnds - itemNumberStarts - 1); + int number; + if (Int32.TryParse(itemNumber, out number)) + { + issueLink = string.Format("http://{0}.codeplex.com/workitem/{1}", _projectName, number); + } + } + } + } + if (issueLink == null) + { + throw new Exception("Unable to post issue on Codeplex."); + } + return issueLink; + } + } +} diff --git a/Source/Core/HydroDesktop.ErrorReporting/CodePlex/WebBrowser.cs b/Source/Core/HydroDesktop.ErrorReporting/CodePlex/WebBrowser.cs new file mode 100644 index 00000000..508d2685 --- /dev/null +++ b/Source/Core/HydroDesktop.ErrorReporting/CodePlex/WebBrowser.cs @@ -0,0 +1,155 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; +using System.Text; + +namespace HydroDesktop.ErrorReporting.CodePlex +{ + internal class WebBrowser + { + private readonly string _userAgent = string.Empty; + private CookieCollection m_cookies = new CookieCollection(); + + static WebBrowser() + { + ServicePointManager.Expect100Continue = false; + } + + public WebBrowser(string userAgent) + { + _userAgent = userAgent; + } + + public string Get(string url, HtmlForm form = null, string referer = null) + { + return Send(url, "GET", form, referer); + } + + public string Post(string url, HtmlForm form, string referer = null, bool isMultiPart = false) + { + return Send(url, "POST", form, referer, isMultiPart); + } + + private string Send(string url, string method, HtmlForm form, string referer, bool isMultiPart = false) + { + if (form != null && string.Equals(method, "GET", StringComparison.OrdinalIgnoreCase)) + { + url = url + "?" + form; + } + var httpWebRequest = (HttpWebRequest)WebRequest.Create(url); + httpWebRequest.UserAgent = _userAgent; + httpWebRequest.Accept = "*/*"; + httpWebRequest.KeepAlive = true; + httpWebRequest.CookieContainer = new CookieContainer(); + if (m_cookies.Count > 0) + { + httpWebRequest.CookieContainer.Add(m_cookies); + } + httpWebRequest.Method = method; + if (referer != null) + { + httpWebRequest.Referer = referer; + } + if (form != null && string.Equals(httpWebRequest.Method, "POST", StringComparison.OrdinalIgnoreCase)) + { + byte[] bytes; + if (!isMultiPart) + { + httpWebRequest.ContentType = "application/x-www-form-urlencoded"; + var text = form.ToString(); + bytes = Encoding.UTF8.GetBytes(text); + } + else + { + var formDataBoundary = String.Format("----------{0:N}", Guid.NewGuid()); + var contentType = "multipart/form-data; boundary=" + formDataBoundary; + httpWebRequest.ContentType = contentType; + bytes = GetMultipartFormData(form.Elements, formDataBoundary); + } + + httpWebRequest.ContentLength = bytes.Length; + + // Send the form data to the request. + using (Stream requestStream = httpWebRequest.GetRequestStream()) + { + requestStream.Write(bytes, 0, bytes.Length); + requestStream.Close(); + } + } + var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); + var text2 = GetText(httpWebResponse.GetResponseStream()); + if (httpWebResponse.Cookies.Count > 0) + { + m_cookies.Add(httpWebResponse.Cookies); + } + httpWebResponse.Close(); + return text2; + } + + private static string GetText(Stream stream) + { + var streamReader = new StreamReader(stream); + return streamReader.ReadToEnd(); + } + + private static byte[] GetMultipartFormData(IEnumerable postParameters, string boundary) + { + var encoding = Encoding.UTF8; + Stream formDataStream = new MemoryStream(); + bool needsCLRF = false; + + foreach (var param in postParameters) + { + if (param.Name == null) continue; + + // Thanks to feedback from commenters, add a CRLF to allow multiple parameters to be added. + // Skip it on the first parameter, add it to subsequent parameters. + if (needsCLRF) + formDataStream.Write(encoding.GetBytes("\r\n"), 0, encoding.GetByteCount("\r\n")); + + needsCLRF = true; + + if (param.IsFile) + { + // Add just the first part of this param, since we will write the file data directly to the Stream + string header = + string.Format( + "--{0}\r\nContent-Disposition: form-data; name=\"{1}\"; filename=\"{2}\";\r\nContent-Type: {3}\r\n\r\n", + boundary, + param.Name, + param.FileName ?? param.Name, + param.ContentType ?? "application/octet-stream"); + + formDataStream.Write(encoding.GetBytes(header), 0, encoding.GetByteCount(header)); + + // Write the file data directly to the Stream, rather than serializing it to a string. + if (param.File != null) + { + formDataStream.Write(param.File, 0, param.File.Length); + } + } + else + { + string postData = string.Format("--{0}\r\nContent-Disposition: form-data; name=\"{1}\"\r\n\r\n{2}", + boundary, + param.Name, + param.Value); + formDataStream.Write(encoding.GetBytes(postData), 0, encoding.GetByteCount(postData)); + } + } + + // Add the end of the request. Start with a newline + string footer = "\r\n--" + boundary + "--\r\n"; + formDataStream.Write(encoding.GetBytes(footer), 0, encoding.GetByteCount(footer)); + + // Dump the Stream into a byte[] + formDataStream.Position = 0; + byte[] formData = new byte[formDataStream.Length]; + formDataStream.Read(formData, 0, formData.Length); + formDataStream.Close(); + + return formData; + } + } +} diff --git a/Source/Core/HydroDesktop.ErrorReporting/ErrorReportingForm.Designer.cs b/Source/Core/HydroDesktop.ErrorReporting/ErrorReportingForm.Designer.cs new file mode 100644 index 00000000..e1d5458a --- /dev/null +++ b/Source/Core/HydroDesktop.ErrorReporting/ErrorReportingForm.Designer.cs @@ -0,0 +1,298 @@ +namespace HydroDesktop.ErrorReporting +{ + partial class ErrorReportingForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ErrorReportingForm)); + this.lblInfo = new System.Windows.Forms.Label(); + this.paMain = new System.Windows.Forms.Panel(); + this.paProgress = new System.Windows.Forms.Panel(); + this.pbProgress = new System.Windows.Forms.ProgressBar(); + this.gbCredentials = new System.Windows.Forms.GroupBox(); + this.linkRegister = new System.Windows.Forms.LinkLabel(); + this.tbLogin = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.tbPassword = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.tbDescribe = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.tbError = new System.Windows.Forms.TextBox(); + this.btnCopyError = new System.Windows.Forms.Button(); + this.btnZipLog = new System.Windows.Forms.Button(); + this.btnSendError = new System.Windows.Forms.Button(); + this.errorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); + this.paMain.SuspendLayout(); + this.paProgress.SuspendLayout(); + this.gbCredentials.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).BeginInit(); + this.SuspendLayout(); + // + // lblInfo + // + this.lblInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.lblInfo.Location = new System.Drawing.Point(12, 9); + this.lblInfo.Name = "lblInfo"; + this.lblInfo.Size = new System.Drawing.Size(399, 46); + this.lblInfo.TabIndex = 0; + this.lblInfo.Text = "HydroDesktop has encountered an error. We are sorry for the inconvenience.\r\nWe ha" + + "ve created an error report that you can send to us by clicking the “Send Error” " + + "button below."; + // + // paMain + // + this.paMain.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.paMain.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.paMain.Controls.Add(this.paProgress); + this.paMain.Controls.Add(this.gbCredentials); + this.paMain.Controls.Add(this.label6); + this.paMain.Controls.Add(this.tbDescribe); + this.paMain.Controls.Add(this.label4); + this.paMain.Controls.Add(this.tbError); + this.paMain.Location = new System.Drawing.Point(15, 58); + this.paMain.Name = "paMain"; + this.paMain.Size = new System.Drawing.Size(393, 364); + this.paMain.TabIndex = 1; + // + // paProgress + // + this.paProgress.Controls.Add(this.pbProgress); + this.paProgress.Location = new System.Drawing.Point(44, 159); + this.paProgress.Name = "paProgress"; + this.paProgress.Size = new System.Drawing.Size(293, 54); + this.paProgress.TabIndex = 14; + // + // pbProgress + // + this.pbProgress.Location = new System.Drawing.Point(17, 15); + this.pbProgress.MarqueeAnimationSpeed = 50; + this.pbProgress.Name = "pbProgress"; + this.pbProgress.Size = new System.Drawing.Size(263, 23); + this.pbProgress.Style = System.Windows.Forms.ProgressBarStyle.Marquee; + this.pbProgress.TabIndex = 0; + // + // gbCredentials + // + this.gbCredentials.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbCredentials.Controls.Add(this.linkRegister); + this.gbCredentials.Controls.Add(this.tbLogin); + this.gbCredentials.Controls.Add(this.label3); + this.gbCredentials.Controls.Add(this.label1); + this.gbCredentials.Controls.Add(this.tbPassword); + this.gbCredentials.Location = new System.Drawing.Point(15, 261); + this.gbCredentials.Name = "gbCredentials"; + this.gbCredentials.Size = new System.Drawing.Size(359, 89); + this.gbCredentials.TabIndex = 13; + this.gbCredentials.TabStop = false; + this.gbCredentials.Text = "Codeplex"; + // + // linkRegister + // + this.linkRegister.AutoSize = true; + this.linkRegister.Location = new System.Drawing.Point(271, 22); + this.linkRegister.Name = "linkRegister"; + this.linkRegister.Size = new System.Drawing.Size(79, 13); + this.linkRegister.TabIndex = 13; + this.linkRegister.Text = "Not registered?"; + // + // tbLogin + // + this.tbLogin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.tbLogin.Location = new System.Drawing.Point(69, 19); + this.tbLogin.Name = "tbLogin"; + this.tbLogin.Size = new System.Drawing.Size(178, 20); + this.tbLogin.TabIndex = 9; + this.tbLogin.Validating += new System.ComponentModel.CancelEventHandler(this.tbLogin_Validating); + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(7, 48); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(56, 13); + this.label3.TabIndex = 12; + this.label3.Text = "Password:"; + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(7, 22); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(36, 13); + this.label1.TabIndex = 10; + this.label1.Text = "Login:"; + // + // tbPassword + // + this.tbPassword.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.tbPassword.Location = new System.Drawing.Point(69, 45); + this.tbPassword.Name = "tbPassword"; + this.tbPassword.PasswordChar = '*'; + this.tbPassword.Size = new System.Drawing.Size(178, 20); + this.tbPassword.TabIndex = 11; + this.tbPassword.Validating += new System.ComponentModel.CancelEventHandler(this.tbPassword_Validating); + // + // label6 + // + this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(12, 130); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(297, 13); + this.label6.TabIndex = 8; + this.label6.Text = "Describe what you were doing when error occurred (optional):"; + // + // tbDescribe + // + this.tbDescribe.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbDescribe.Location = new System.Drawing.Point(15, 146); + this.tbDescribe.Multiline = true; + this.tbDescribe.Name = "tbDescribe"; + this.tbDescribe.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.tbDescribe.Size = new System.Drawing.Size(361, 109); + this.tbDescribe.TabIndex = 7; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(12, 8); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(32, 13); + this.label4.TabIndex = 4; + this.label4.Text = "Error:"; + // + // tbError + // + this.tbError.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbError.Location = new System.Drawing.Point(15, 24); + this.tbError.Multiline = true; + this.tbError.Name = "tbError"; + this.tbError.ReadOnly = true; + this.tbError.ScrollBars = System.Windows.Forms.ScrollBars.Both; + this.tbError.Size = new System.Drawing.Size(359, 94); + this.tbError.TabIndex = 3; + // + // btnCopyError + // + this.btnCopyError.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnCopyError.Location = new System.Drawing.Point(16, 428); + this.btnCopyError.Name = "btnCopyError"; + this.btnCopyError.Size = new System.Drawing.Size(78, 37); + this.btnCopyError.TabIndex = 2; + this.btnCopyError.Text = "Copy Error to clipboard"; + this.btnCopyError.UseVisualStyleBackColor = true; + this.btnCopyError.Click += new System.EventHandler(this.btnCopyError_Click); + // + // btnZipLog + // + this.btnZipLog.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnZipLog.Location = new System.Drawing.Point(100, 428); + this.btnZipLog.Name = "btnZipLog"; + this.btnZipLog.Size = new System.Drawing.Size(75, 37); + this.btnZipLog.TabIndex = 3; + this.btnZipLog.Text = "Zip log file"; + this.btnZipLog.UseVisualStyleBackColor = true; + this.btnZipLog.Click += new System.EventHandler(this.btnZipLog_Click); + // + // btnSendError + // + this.btnSendError.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnSendError.Location = new System.Drawing.Point(259, 428); + this.btnSendError.Name = "btnSendError"; + this.btnSendError.Size = new System.Drawing.Size(149, 37); + this.btnSendError.TabIndex = 4; + this.btnSendError.Text = "Send Error"; + this.btnSendError.UseVisualStyleBackColor = true; + this.btnSendError.Click += new System.EventHandler(this.btnSendError_Click); + // + // errorProvider1 + // + this.errorProvider1.ContainerControl = this; + // + // ErrorReportingForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(421, 475); + this.Controls.Add(this.btnSendError); + this.Controls.Add(this.btnZipLog); + this.Controls.Add(this.btnCopyError); + this.Controls.Add(this.paMain); + this.Controls.Add(this.lblInfo); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(400, 500); + this.Name = "ErrorReportingForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "HydroDesktop Error"; + this.Shown += new System.EventHandler(this.ErrorReportingForm_Shown); + this.paMain.ResumeLayout(false); + this.paMain.PerformLayout(); + this.paProgress.ResumeLayout(false); + this.gbCredentials.ResumeLayout(false); + this.gbCredentials.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label lblInfo; + private System.Windows.Forms.Panel paMain; + private System.Windows.Forms.Button btnCopyError; + private System.Windows.Forms.Button btnZipLog; + private System.Windows.Forms.Button btnSendError; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox tbDescribe; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox tbError; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox tbPassword; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox tbLogin; + private System.Windows.Forms.GroupBox gbCredentials; + private System.Windows.Forms.LinkLabel linkRegister; + private System.Windows.Forms.ErrorProvider errorProvider1; + private System.Windows.Forms.Panel paProgress; + private System.Windows.Forms.ProgressBar pbProgress; + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ErrorReporting/ErrorReportingForm.cs b/Source/Core/HydroDesktop.ErrorReporting/ErrorReportingForm.cs new file mode 100644 index 00000000..90847147 --- /dev/null +++ b/Source/Core/HydroDesktop.ErrorReporting/ErrorReportingForm.cs @@ -0,0 +1,204 @@ +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.IO; +using System.Threading; +using System.Windows.Forms; +using HydroDesktop.Common; +using HydroDesktop.Common.UserMessage; +using HydroDesktop.ErrorReporting.CodePlex; + +namespace HydroDesktop.ErrorReporting +{ + /// + /// Error Reporting form is used to show exceptions and send them to developers. + /// + public partial class ErrorReportingForm : Form + { + #region Fields + + private readonly ErrorReportingFormArgs _initParams; + private static string _user; + private static string _password; + + #endregion + + #region Constructors + + /// + /// Creates new instance of + /// + /// Init params.> + public ErrorReportingForm(ErrorReportingFormArgs initParams) + { + if (initParams == null) throw new ArgumentNullException("initParams"); + + _initParams = initParams; + InitializeComponent(); + + linkRegister.Links.Remove(linkRegister.Links[0]); + linkRegister.Links.Add(0, linkRegister.Text.Length, + "https://hydrodesktop.codeplex.com/site/register?associate=None&ProjectName=hydrodesktop"); + linkRegister.LinkClicked += delegate(object o, LinkLabelLinkClickedEventArgs ee) + { + var sInfo = new ProcessStartInfo(ee.Link.LinkData.ToString()); + Process.Start(sInfo); + }; + + tbLogin.Text = _user; + tbPassword.Text = _password; + } + + #endregion + + #region Private methods + + private void ErrorReportingForm_Shown(object sender, EventArgs e) + { + Text = string.Format("HydroDesktop Error - [{0}]", + _initParams.IsFatal + ? "Fatal error. Application will be closed." + : "Unhandled Exception."); + tbError.Text = _initParams.Exception != null ? _initParams.Exception.ToString() : null; + EnableControls(true); + } + + private void btnCopyError_Click(object sender, EventArgs e) + { + Clipboard.SetText(tbError.Text); + } + + private void btnZipLog_Click(object sender, EventArgs e) + { + var zipFileName = ZipLog(); + + // Opens the folder in explorer and selects file + Process.Start("explorer.exe", @"/select, " + zipFileName); + } + + private string ZipLog() + { + if (String.IsNullOrEmpty(_initParams.LogFile) || + !File.Exists(_initParams.LogFile)) + { + AppContext.Instance.Get().Warn("Log file not exists."); + return null; + } + + try + { + var logFile = _initParams.LogFile; + + // Zip file + var zipFileName = Path.ChangeExtension(logFile, "zip"); + ZipHelper.AddFileToZip(zipFileName, logFile); + return zipFileName; + } + catch (Exception ex) + { + AppContext.Instance.Get().Error("Unable to zip log file.", ex); + return null; + } + } + + private void btnSendError_Click(object sender, EventArgs e) + { + // Validation + if (!ValidateLogin()) + { + tbLogin.Focus(); + return; + } + if (!ValidatePassword()) + { + tbPassword.Focus(); + return; + } + + // Send error + EnableControls(false); + var bworker = new BackgroundWorker(); + bworker.DoWork += delegate(object sender1, DoWorkEventArgs e1) + { + var logFile = ZipLog(); + var issueTracker = new IssueTracker("hydrodesktop"); + issueTracker.SignIn(tbLogin.Text, tbPassword.Text); + + var issue = new Issue + { + Summary = _initParams.IsFatal ? "Fatal Error" : "Unhandled Exception", + Description = "Version: " + AppContext.Instance.ProductVersion + Environment.NewLine + + "Description: " + tbDescribe.Text + Environment.NewLine + + "==============================" + Environment.NewLine + + "Error: " + tbError.Text, + }; + + if (!String.IsNullOrEmpty(logFile) && File.Exists(logFile)) + { + try + { + var fi = new FileInfo(logFile); + issue.FileToAttach = fi; + } + catch (Exception ex) + { + AppContext.Instance.Get().Warn("Unable to attach log file.", ex); + } + } + + e1.Result = issueTracker.CreateIssue(issue); + }; + bworker.RunWorkerCompleted += delegate(object o, RunWorkerCompletedEventArgs args) + { + EnableControls(true); + if (args.Error != null) + { + AppContext.Instance.Get().Error("Unable to send error.", args.Error); + }else + { + AppContext.Instance.Get().Info("Error was sent." + Environment.NewLine + + "Link to issue: " + args.Result); + _user = tbLogin.Text; + _password = tbPassword.Text; + Close(); + } + }; + bworker.RunWorkerAsync(); + } + + private void EnableControls(bool enable) + { + paMain.Enabled = enable; + btnCopyError.Enabled = enable; + btnZipLog.Enabled = enable; + btnSendError.Enabled = enable; + paProgress.Visible = !enable; + } + + private bool ValidateLogin() + { + var error = String.IsNullOrWhiteSpace(tbLogin.Text) ? "Login should be not empty." : string.Empty; + errorProvider1.SetError(tbLogin, error); + return error == string.Empty; + } + + private bool ValidatePassword() + { + var error = String.IsNullOrWhiteSpace(tbPassword.Text) ? "Password should be not empty." : string.Empty; + errorProvider1.SetError(tbPassword, error); + return error == string.Empty; + } + + private void tbLogin_Validating(object sender, CancelEventArgs e) + { + ValidateLogin(); + } + + private void tbPassword_Validating(object sender, CancelEventArgs e) + { + ValidatePassword(); + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.ErrorReporting/ErrorReportingForm.resx b/Source/Core/HydroDesktop.ErrorReporting/ErrorReportingForm.resx new file mode 100644 index 00000000..6f3e7826 --- /dev/null +++ b/Source/Core/HydroDesktop.ErrorReporting/ErrorReportingForm.resx @@ -0,0 +1,1256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAgBAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+Pj4APn5+QDw8PAA3NzcAMrKygCzsrMAnJudAIeGiQB2dXgAbWxvAF5d + YABRUFMAT05RAAAAAAEAAAADAAAAAwAAAAFOTVEAWFhbAGVlaABxcXQAfn2AAZGRkgCoqKkAwMDBANTU + 1QDl5eYA6unqAOno6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4+PgA+Pj4APn5+QDo6OgAxcXHAJ6dnwD7+/sA/f38APT0 + 9ADg4OAAAAAAEAAAADAAAABXAAAAgAAAAKgAAADLAAAA5wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA5wAAAMsAAACoAAAAgAAAAFcAAAAwAAAAEOnp6gDt7O0A7OvsAI6OkAC3t7gA29vcAOjo + 6QDl5eYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb3APb29wD4+PkA5+foAPv7 + +wD+//4A////APPz8wDPz9EAAAAACgAAADcAAAB8AAAAxQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAMUAAAB8AAAANwAAAArm5ucA8vLzAOzs7QCmpqcA1tbXAOXl5gDh4eIAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA3d3dAOLi4gD4+PkA+/v8AP///wDy8vMA6urqANra2gAAAAAlAAAAdgAAANYAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + ANYAAAB2AAAAJa+vrwDh4eEA7u7vAObm5wC/v78A7+/vAPr6+gD29vYAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNzc4Azc3OAM/P0ADf398A5+fmAPPz9ADs7O0A6OjpAAAA + ACUAAACGAAAA9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA9wAAAIYAAAAl19fYAMTE + xAD19fUA/v7+APf39wDr6+sA6urqAOrq6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAN3d3QDi4uIAAAAACgAAAGEAAADiAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADiAAAAYQAAAAr6+voA9vb2AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P0ADV1dYAzs7PANLS0wDX19gAAAAAGwAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQb/CwsN/hAQ + Ev4UExb9FhUZ/xcWGv8YFxv/GRgc/xgXG/8YFxz/GBcc/xgXG/8ZGBz/GBcb/xgXG/8YFxr/FhUY/xIR + FP8NDA7/BgYH/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAJEAAAAb8/PzAO7u7gDq6uoA9vX1APDv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4eHiAObm5wDe3t8A0tLTAN7e + 3wDJycoAAAAAIAAAAKgAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8EBAT/DQ0P/xQTFv8XFxr/GBgc/xkYHP8aGR3/Gxse/x4dIf8gHyP/IiEl/yQjJ/8nJin/JyYq/ykn + LP8oJyv/JyYp/yYlKP8jIiX/IB8k/x8eIv8cHCD/Gxoe/xkYHP8ZGBz/GRgc/xgXG/8UExb/Dg0P/wQE + BP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACoAAAAIOno + 6AD+/f0A8vHyAPr6+gAAAAAA/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA+fn5AP7+/gDh4eIA6urrAOXl5gDGxscAAAAAGAAAAKIAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJCv8UFBb/Gxoe/xwbH/8cGx//Hh0g/x8fI/8kIyf/Kykt/zIw + M/86OTz/Q0JE/0tKTP9SUFP/WFdZ/11cXf9gXmD/Y2Bj/2JgYv9fXV7/W1lc/1RTVf9OTVD/R0ZJ/z48 + QP82NTj/LSwv/ycmKf8iIST/Hx0h/x0cIP8cGx//HBsg/xsaHv8UFBb/CQkK/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAAABjq6eoA////AP///wD9/f0A1dTVAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+fkA/v7+AODg4QDi4uMAAAAABgAA + AIAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CAgJ/xUUF/8cGx//GRgc/xgX + G/8bGR3/IyEm/zMwNP9FREb/W1pb/3Bub/+DgIH/k5CQ/5+cnP+opaX/r6ys/7Sxsf+2tbT/ura1/7q3 + tv+7uLf/u7i3/7q3tf+4trX/trOz/7OvsP+sqan/pKGh/5iWl/+LiIn/end4/2VjZP9PTU//Ojg8/yoo + LP8eHSH/FxYb/xgXG/8cGx//Hh0h/xYWGP8ICAn/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAIAAAAAG/Pz8APr6+gDV1NUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADW1tYA1tbWAPr6+gD///8A4eHhAAAAAEkAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/EA8R/xkYHP8WFRn/FhUZ/x8eIf8wLzP/SUhK/2ViZP99en3/ko+Q/6Kgn/+uq6r/trKy/7u3 + t/+/u7r/wb28/8O/vv/DwL//xMHA/8TBwP/EwcD/w8G//8TBwP/EwcD/xMLA/8TCwP/EwL//xMC//8PA + vv/Bvr7/v7y7/726uP+5trT/sa+u/6elpP+al5f/iIWF/29tb/9UU1X/OTg7/yUkKP8bGh7/HBsf/x8e + Iv8eHSH/ERAS/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAABJ6OjoANXU + 1QD9/f0A/f39AP39/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoaCjANnZ2QDa2toA7u7tADc3OBYAAACtAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/ExMV/xgXG/8ZFxv/IR8j/y8vMv9GRUj/YV9h/3t6 + e/+TkpL/p6Wl/7Szs/++vLz/w8HA/8XDwv/EwsH/w8DB/8K/v//Avr3/v728/768vP+9u7v/vLu6/7y7 + uv+8u7r/vLq6/7y7uv+8u7r/vLu6/7y7uv+9vLv/vr28/7++vf/Av77/w8DA/8TCwf/EwsL/w8LB/8C/ + vv+6uLf/r62t/6Cfn/+Mi4z/cnJ0/1JSVf8yMTT/HRsf/xgXG/8bGh7/Hx4i/xUUFv8CAgP/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAAEP///wD///8A/v7+AOHh4QAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD19fUA9fX1APj4 + +ACfnqEAy8vMAMjIyAAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/FBMW/xwb + H/8eHCH/JCMn/zIyNv9MTFD/bG1v/42OkP+oqKn/uLi4/76+v/++vr//uru8/7i4uf+1trf/tbW2/7S1 + tf+1tLb/tbW2/7W1tv+1tbb/tbW2/7W1tv+1tbb/tbW2/7W1tv+1trb/tbW2/7W1tv+1tbb/tbW2/7W1 + tv+1tbb/tbW2/7W1tv+0tLX/s7S1/7W1tv+2t7j/ubq7/729vv+/wMD/vr+//7Sztf+bnJ3/cnJ0/0FB + Q/8nJir/JyYq/ygnK/8hICT/HBsf/x0cIP8UFBb/AgIC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAASfX19QD5+fkA4uLiAL29vgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX19QD19fUA+Pj4AKKipAAAAAADAAAAkQAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/EhEU/x4cIP8cGx//IB8j/zMxNv9WV1r/fICC/5ygov+usrT/srW3/7Cz + tf+tsLL/rK+x/6yvsv+rr7L/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yv + sf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rLCy/6yvsf+ssLL/rbCz/66y + tP+usrT/q6+x/6Cjpf+LjY//bm9y/1JSVv8+PUH/ODg8/0dITP9YWl7/TE1R/ycmKv8cGh7/HBoe/x4c + IP8gHiL/EhIU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAkQAAAAPe3t4Avb2+AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADl5eYA9fX1APX1 + 9QD5+fkAAAAAGAAAANYAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DAwN/xwbHv8ZGBz/Hh0h/zY3 + O/9aXmH/gISJ/5ieof+iqaz/pqyw/6essP+nrLD/pqqu/6Sqrv+iqq3/o6ms/6OprP+jqKz/oqmt/6Op + rf+jqa3/o6mt/6Oprf+jqa3/o6mt/6Kprf+jqa3/pKmt/6Sprf+kqa3/pKmt/6Sprf+jqa3/o6mt/6Kp + rf+iqKz/o6mt/6Sqrf+mrLD/qa+0/6mwtP+jqa7/k5mb/3p+gf9dX2L/RUVI/zc3O/87O0D/TlFV/2Vo + bf9xdXn/aGtv/1BRVf80NDj/Jycr/zk5Pf87PED/Li0x/x8dIf8fHiL/Hh0g/wwMDf8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAAABi9vb4AoqGjAKKhowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA1tbXAOXl5gDy8vID7e3tAAAAADcAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AgIC/xgXGv8eHSH/JCUp/zc5Pv9YXGH/eX+F/5OboP+hqrD/pq+1/6Wts/+iqrD/n6et/5+n + rf+gp63/oKiu/6Corv+hqa//oamv/6Gpr/+hqrD/oaqw/6GqsP+hqrD/oKmv/6Corv+fqK7/nqet/56l + q/+dpKr/nKSq/5yjqf+co6n/nKSq/52lq/+epqz/n6et/6Cprv+iqrD/oKmu/5igpv+IjpT/c3d8/1xf + Y/9KTVD/QkNH/0JFSf9OUFb/XWJo/2hsc/9nbHH/XWBl/05PVP9BQkb/QEFF/0xPVP9kaW7/fIKH/3R5 + f/9QUlf/KSkt/x0cIf8cHCL/HR0j/xgXGv8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + ADejoqQAnZyeAAAAAAD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJAMjIyQDW1tcA5eXmAN7e + 3wAAAABXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w0MDv8dHCD/HBse/x4dIf8tLjL/TlFW/250 + ev+Ah43/g4qQ/32Dif94foT/dnyC/3V6gP9zeX//c3l//3V6gP92fIL/eX+F/3uCiP99hIr/gIeO/4KK + kf+EjJP/h4+V/4mQl/+Kkpn/jJSb/46Xnv+RmqH/k5yj/5Wepv+Xoaj/lqGo/5egqP+WoKj/lqCn/5Se + pf+Tm6L/j5ee/4eOlf94foT/ZGhu/09SV/9AQkb/ODs//z5BRv9PVFn/ZGtw/3R7gv94f4X/bXJ4/1hd + Yf9ERkv/OjxB/0NGTP9dY2n/eYGH/4iQlv+CiZH/anB5/0dKU/8nKDD/Gxsh/x0dIf8dHSP/HR0j/x0d + I/8NDA7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAFe7urwA////AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAMjIyQDHx8gAyMjJANXV1gDW1tYAAAAAcQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8VFBf/Hhwg/x0cIP8cGh7/ISEl/zAxNf9DRUr/Q0VK/z4/RP85O0D/Nzk9/zc3PP82Njr/NTU6/zQ1 + Of80NTr/Nzg9/zo9Qf8+QUb/Q0ZL/0hKUP9MUFX/UFVa/1VaYP9ZXmX/XWJo/2Fmbf9lbHL/anF3/3B4 + fv92foT/fIWN/4KLkv+DjZT/goyT/4CIkf97hIz/dX2E/21zev9hZmz/T1JY/zg6P/8pKi7/Ly80/0NH + Tf9haW//fYeO/4yYn/+Hkpj/bXV8/0lMUv8xMzj/MzY6/0tPVP9rc3r/hpGZ/5Gdpf+Ejpb/Ymhv/zs9 + RP8kJSn/IB4g/yUhIP8qJR7/Misc/y8pHv8kIiH/HR0i/x4dI/8WFRj/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAHHv7+8A7e3tAPz8/AAAAAAA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJAMjIyQDHx8gAzs7PAAAA + AIAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8EBAT/Gxod/xwbH/8gHyP/Kisv/y4uM/8vMDX/MTI3/zI0 + Of8yNDn/NDY7/zU4Pf83O0D/Oz5E/z5CSP9DSE7/SU5U/01UWv9SWWD/Vl1k/1hgZ/9bYmn/W2Nr/1xk + a/9cZGv/XGRr/1phaf9YXmX/U1lg/01SWf9HTFL/QkVL/z5BRv89QEX/PkJH/z9CR/88PUP/Njg8/zEx + Nv8rLC//Jycq/yYmKv8uLjP/P0NI/1lfZ/9we4P/go+Y/4qYof+AjZX/Ympx/z5BRv8rKy//OjxC/1lh + aP9zfof/hJCZ/4uZov+Fk5v/ZGx0/zs/R/8hIin/JiEd/zovF/9PPBH/XUYN/2dMC/9yVAf/a08L/0w8 + FP8oJCD/Gxwj/xwdIv8cGx7/BAQE/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAICQkJIA/Pz8AAAA + AAD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAANXV1gDGxscAy8vMAMrKywAAAACGAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CgkL/xwb + H/8cGh7/LC0x/0pQV/9ganP/ZW94/2Vud/9lb3f/ZG93/2VveP9ncXr/aHN8/2p2fv9sd4H/bnqD/3F9 + hv90gIn/dYKM/3eEjf93ho//eYaQ/3mGkP95hpD/eYWQ/3mFkP94hZD/d4SO/3aDjP9zgIr/cHyG/2t3 + gf9ncXr/YGpz/1lia/9TXGP/TVRb/0dMU/9CR03/QERL/0FGTP9HTVP/UVhg/15ncP9teYL/e4mT/4aV + oP+CkJr/a3R8/0ZLUP8sLTH/Li80/0hOVf9ncnv/eoeR/4WUn/+HlqD/eISN/05WYf8tMTn/KSQf/z4w + Ev9ZQwr/blAH/3lXBP99WgL/gFwB/4NeAf+CXQH/dVUG/1lED/80Kxz/Hh4j/xobI/8fHiL/CgkL/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIb///8A////AP39/QD9/fwAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OEA09PUANPT1ADKyssAAAAAgAAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ND/8cGx//Hx4h/zE0Of9PWGD/bn2H/3yLl/9+jpr/fY2Z/36O + mf9+j5r/fo+b/36Pm/9/j5z/gJGc/4CRnP+AkZz/gJGc/4GRnf+AkZz/gJCc/3+QnP9/kJv/f5Cb/3+Q + mv9/j5v/gI+c/4CQnP+AkJz/gJGc/4CRnP+AkJz/f4+b/36Omf96i5b/doaQ/3GAi/9seoT/aHWA/2Zz + ff9nc33/aXaA/298h/92hJD/fIyY/4KTn/+Ckp7/c4GM/1dfZ/82OD3/IyMn/y4xNv9NVV7/bnyH/4CQ + nP+DlKD/fIyY/2d0f/9FTFb/Kyot/zMpFv9QPAz/b1IH/4BdA/+GYQD/h2AA/4VgAP+EYAD/g18A/4Rf + AP+FYAD/fVsD/2JJDf8+Mhn/JSIg/xsbI/8dHCP/Dg4Q/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AID7+/oA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADy8vIA8vLyAN7e3wDZ2doA19fYAAAAAHEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8REBL/HRwf/yAg + JP8yNjz/VWBq/3CBjf94i5n/dYeU/3SGk/90hZL/dIaR/3SGkv90hpL/c4WS/3SEkv90hZL/dIWR/3SF + kf9zhZD/c4WR/3OFkf90hZL/dIWS/3OGkv9zhpL/coaS/3OGkv90hZL/dIWS/3SFkv90hZL/dIWR/3OE + kf90hZH/c4WR/3SHkv91iJT/d4mX/3eKl/94i5j/eYyZ/3mLmf94i5j/eIqX/3eJl/92iJX/c4WS/2h2 + gv9JUVn/KSov/xwcH/8zNz3/WGRu/3KEkP95jZr/dYiV/3GCj/9danf/PURN/yclI/8/MRT/aE0K/4Vi + A/+MZgD/iGMB/4ZiAv+FYQL/hmIC/4ZiAv+GYgH/hWEC/4diAv+JZAH/imQB/3FUCv9JOhb/JiIh/x0c + I/8dHSP/Dw8R8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAHHq6uoA5ubmAKWlpgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8gDy8vIA4ODhAOTk5QAAAABXAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/EhIU/xwaHv8hICT/NTlB/1lodP9sf43/cIOR/21/jv9tgI7/bYCO/22B + jv9tgY7/bYGO/22Bjv9tgY7/bYGO/22Bjv9tgI7/bYCO/21/jf9sgI7/bYCO/22Bjv9tgY//boKQ/26C + kP9ugpD/boKQ/26Bj/9ugY//bYGP/26Bj/9tgI7/bIGP/22Ajv9tgI7/bX+N/22Ajv9tgI7/bYCO/22A + jv9tgI7/bICN/22Ajv9ugo//cIOS/2x/jf9baXX/OT9H/yAfJP8fHyP/OkFH/15uev9tgY7/cYWT/26C + kP9kdYL/SVRg/yowO/8oJCD/Uj8S/4NgB/+TbAL/k20C/5FrAv+QagP/kGsD/5FrA/+RawP/kWsD/5Fr + A/+RawP/kGoD/5BrAv+SawL/lW0B/4NhB/9XRBT/JiQh/xscI/8dHSL/EBAS5AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAFeUlJYApaWmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA9fb1APX29QDx8fIAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xISFP8bGR3/ISEm/zc/ + Rv9YaHT/ZXqK/2h+jf9nfIv/ZnuK/2Z8iv9mfIv/ZnyK/2Z8iv9mfIr/ZnyK/2Z7iv9mfIr/Z32L/2d9 + jP9ofo3/aH6N/2h+jf9nfYz/ZnyK/2R5h/9jd4b/ZHeG/2V5h/9le4n/ZnuK/2Z9jP9ofo3/aX+O/2mA + j/9qgZD/aoGQ/2qBkP9qgJD/aYCP/2h/jv9ofo7/Z32M/2h9jP9pf47/aYCR/2h+jf9cbnz/RlFc/y4x + N/8dGh//IyUq/z5HUP9cbnv/Z3yL/2uDkv9me4n/UWBu/y83Rv8fIi3/NSwb/2NLDf+QagT/nnMB/55z + Af+ccgH/m3IC/5tyAv+ccwL/nHIC/5xyAv+ccgL/nHIC/5xyAv+ccgL/nHIC/5xyAv+edAH/nnQB/49q + Bf9jTBD/LSge/xkaJP8cHCL/EhIV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADejo6QAxMTFAMTE + xQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ2cngCvrq8Ar6+wAAAAABgAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8RERL/Hhwg/yIiJ/83P0j/UWNw/2J5if9ieYn/YXeH/2B2hv9gd4f/YHeH/2F4 + hv9gd4f/YXiI/2J6if9jeor/YnqJ/2F5iP9fd4b/XXOC/1tvfv9ZbXr/VWd0/1Bhbf9LWWT/RFFb/z9J + U/89RU7/PUVO/z5HUP9ASVP/Qk1X/0VRW/9IVF//S1hj/05daf9RYW3/VGVy/1Zpd/9ZbXv/W3B+/15z + gv9fdoX/X3aF/11ygP9VZ3b/SVZh/zg/R/8lJyz/Gxgc/yUmK/8+SlP/WGx5/2V8jP9lfY3/W3F//0RT + Yv8sMj3/LSgg/0s5Ef92Vwj/m3IE/6x9AP+pegD/pnkA/6Z5Af+meQH/pnkB/6Z6Af+meQH/pnkB/6Z5 + Af+meQH/pnkB/6Z5Af+meQH/pnkB/6Z4Af+pfAD/qnwA/5txBP9nTxD/NC0d/xkaI/8cHCP/ERET/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2NiLCwsMAwMDCAOfn5wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADLy8wAmZeaAHx7fQAAAAADAAAA1gAAAP8AAAD/AAAA/wAAAP8AAAD/Dg4Q/x4eIf8hISX/MzxF/09i + cP9feIr/XXeI/1x0hP9cdIX/XHSF/1x1hf9cdYX/XXaF/1x1hf9bdIT/WnKB/1hvfv9XbXv/VGp4/1Jn + df9RZHL/T2Fv/0xea/9JWWX/Q1Jd/z5KVf83Qkv/MDhA/youNv8mJy3/IyQp/yMkKf8lJiv/Jigt/ygp + MP8qLTP/LTA3/zA1PP8zOUH/Nj5G/zpDTP8+SVL/Qk9Z/0VUX/9FU17/QEtV/zQ7Q/8mKC3/HBod/xsY + Gv8lJyv/P0tV/1Vsef9geor/XXWG/1Rqef89S1r/Ky81/zYrGP9nTQ7/l24G/7GAAP+2hAD/soEA/7CA + Af+wgAH/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/r4AA/7CA + Af+yggD/t4UA/6R4BP9sUxD/MSse/xsbI/8cHSP/CAgJxwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAA + AAPQ0NEA5eXlAPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvLzACioaMAo6KkAAAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/woJC/8eHCD/Hh4h/ycqL/9CUl7/U2p5/1ZvgP9Vb4D/Vm+A/1dwgv9WcIH/VnCB/1Zv + gP9Wbn//VGx8/09mdf9JXWv/RVZi/0NSXf9CUl7/Q1Vi/0haaP9KYG7/TWNy/09mdv9QaHf/UWh4/1Bo + eP9NY3P/R1ln/z1LVv82QEr/MTpB/y82Pf8rMTj/KSwz/yYoL/8kJSv/IiMo/yEhJP8gICP/HyAj/yAh + Jf8iIif/JCUq/yQkKf8hHyX/HRsg/x4cIP8fHiL/KCsx/z1LVf9Tanv/WXSF/1Zwgf9NZHT/NUJP/yUm + Lf9DNRb/hGML/7eGAv/AiwD/vYkA/7qIAP+6iAD/uogB/7qIAf+6iAH/uogB/7qIAf+6iAH/uogB/7qI + Af+6iAH/uogB/7qIAf+6iAH/uogB/7qIAf+6iAH/uYgB/7qHAP+7iAD/wowA/6t+BP9yVxD/KiYg/xwd + I/8dHSPuAAAAswAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAke3t7QDp6ekA/Pz8AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPf3 + 9wD39/cAysrLAMzMzQAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8EBAT/Hx4h/x0bH/8dGx7/IB8j/yot + M/8xOED/N0JL/zxKVv9BUl7/RFdk/0ZYZv9EVmT/P05b/zhFT/80PUb/MTlC/zQ+SP87SlX/Q1dl/0lg + cf9NZnj/T2l6/1BqfP9Qanz/UGp8/1Brff9Pa3z/UGx9/1Bsff9Qa33/T2l6/05neP9MZXX/SmNz/0lh + cP9HXWz/RVpp/0NXZf9BVGL/P1Fe/z1NWv87S1b/OUhU/zhGUf82RE//NkNO/zdDT/82Qk7/OEVR/ztL + Vv9DVmT/TWZ4/1Nugf9Ra3z/QVVk/ykzQv8jJCf/WUUV/5pyCP/EjwH/x5IA/8aSAP/EkAD/xJAB/8SR + Af/FkQH/xJAB/8OPAf/DjwH/w5AB/8OQAf/EkQH/xZAB/8WQAf/FkAH/xJEB/8ORAf/EkQH/xJEB/8WR + Af/EkAH/xJAB/8SQAP/GkQD/yZQA/7OEBf9vVhL/KCUg/xgZJP8dHSDVAAAA6QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAASfv7+wD8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP39/QDs7OwAAAAAEAAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/xsaHf8fHiL/Jiow/yw1Pf8nKzL/ISMn/yAgJP8iISX/JSUp/yYpLv8pLDP/KzA3/ysy + Of8sMzv/LTdA/zI+Sf83SFX/PlNi/0Rcbf9IYnT/SmZ5/0xoe/9LaHr/TGh7/0xoe/9LZ3r/S2d6/0tn + ev9LZ3r/TGh7/01pfP9Nan3/TWp9/01qff9NaXz/TWp8/0xpe/9LaHr/S2d5/0tmef9KZXj/SmR2/0lj + df9IYnT/R2Fz/0Zgcf9GX3H/R2By/0dgcv9IYXP/SWR1/0xoe/9ObH//SGBx/zJDVv8hKjn/Lyoh/2pR + Ef+ofAf/zZYB/9ObAP/PmAD/zZcB/86XAP/RmQD/05sA/9edAP/ZnwD/2p8A/9ygAP/coQD/2J8A/9Sc + AP/RmQD/0poA/9KaAP/SmgD/0psA/9KbAP/TmwD/05oA/9OaAP/TmwD/0poA/9GZAP/UmwD/05oA/7iI + Bf9iTRX/KCQh/xYYI/8cGx7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEMfHyQDf398A39/fAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANLS + 0wDPzs8Az8/QANjY2QAAAACtAAAA/wAAAP8AAAD/AAAA/wAAAP8VFBf/Hhwf/yUoMP8zQ07/PVVk/zZJ + V/8vPEf/KjQ8/ycuNf8nLDP/Jisz/yctNv8pMTr/LDdB/zA/Sv82SVf/PVRl/0Nfcf9HZXn/SGZ7/0dl + eP9GY3f/RmN2/0Vidf9GYnb/RmN2/0Zjdv9GY3b/RmN2/0Zjdv9GYnb/RmJ2/0Zidv9GYnX/RWJ2/0Zi + dv9GY3f/R2N3/0Zkd/9HZHj/R2R4/0dlef9IZnn/SGZ7/0hne/9IZ3z/SWd8/0hne/9JZ3z/SWh8/0lp + ff9JaX3/R2R4/z1Waf8rO03/Jikv/0E0Gf9/Xwz/xpIF/+SnAP/nqQD/4KQA/+CjAP/eogD/3aIA/9uf + AP/WnAH/z5cC/8aRBP+/jQX/u4oG/7yLBv/IkwT/1JwB/9uhAP/aoAD/2J4A/9adAf/WmwH/1JsB/9Sb + AP/TmgH/1JsB/9WcAf/WnQD/2p8A/9ygAP/gowD/4qUA/7GDB/9aRxf/Hx4i/xsbI/8WFRj/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAACtvr6/AOfn5wDn5+cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4Az8/QAJiXmQCXlpgAAAAASQAAAP8AAAD/AAAA/wAA + AP8AAAD/DQwN/x4dIP8gICX/Lz1K/z1Za/9EZXr/QmJ2/0Fecv89Wmz/PFZn/zxUZv87U2X/PFVo/z1Y + a/9AXHD/QWF1/0Njd/9DYnf/QWB1/0FgdP9AX3P/QV5y/0Ffc/9BX3P/QV9z/0Ffc/9BX3P/QV9z/0Ff + c/9BX3P/QV9z/0Ffc/9BX3P/QV9z/0Ffc/9BX3P/QF9z/0Ffc/9BX3T/QV90/0FgdP9BYHT/QV9z/0Ff + dP9BYHT/QWB0/0FgdP9BYHT/QGBz/0FfdP9AX3P/QV90/z9cb/83TV7/KTRB/yUkJf9UQRX/nnQL/9+i + Af/sqwH/5qgC/+CkAv/fogL/3qIC/9ugAv/WnAL/ypQE/7mIB/+jeQv/jGkN/3ldEf9sUxT/aFEV/4Nj + EP+qfQn/xJAF/8SQBv/DjwX/wo4G/8GNBf/CjwX/wo8E/8GQBP/AjgX/vYwF/7yKBf/DkAX/ypUE/9CY + A//VnAL/2Z8C/5NvDf9ANRz/GBkj/x4cI/8NDA7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABJzMzNAMzM + zAC6ursAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gDS0tMA0dHSAAAAAAYAAAD8AAAA/wAAAP8AAAD/AAAA/wICAv8eHCD/Hx4i/ykzPf82UWL/PF5y/zxb + cP88W3D/PFxx/zxccf89XHH/PVxx/z1ccv89XHH/PFxx/zxccP88XHH/O1tw/zxab/88W3D/PFtw/zxb + cP88Wm//PFtw/zxbcP88XHH/PFxx/zxdcf88XXH/PF1x/zxdcf88XXH/PFxy/zxccf88W3H/PFxw/zxb + cP87XHH/PFxx/zxdcv89XXP/PV5z/z1dcv89XHH/PFtw/ztab/88Wm7/PFlu/zxab/88Wm//O1lu/zpW + af81TFz/KzpH/yInMP8uKR//d1oR/7uMCP/XnwT/xpEF/66ACv+ddQz/lW8O/5RuDv+Zcg3/mnMM/5Rw + Df+HaA//emAS/3JaFP9tWBT/ZlMV/1ZHGP8/Nh3/PDMd/09BGf9qUxX/d1wT/4RnEP+RcQ//nHkM/6aA + Cv+rhAn/rYUI/6aBCv+VdQ3/fGIQ/3leEf9/YhH/h2cQ/49tD/+eeAv/mXQL/2tUFP8qJyD/Gxwi/x0d + Iv8BAQH+AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAAGeHd6ALq6uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8wDj5OMAAAAAgAAAAP8AAAD/AAAA/wAA + AP8AAAD/GBYZ/x8dIf8jKTD/MElY/zZXbP84WW//N1Zr/zdXbP83WG3/OFht/zhZbv84WW7/OFlu/zhZ + bv84WG3/N1ht/zdYbf83V2z/N1ds/zZXbP83V2z/N1hu/zhZb/84WnD/N1lv/zdYbf82WGz/N1ds/zdW + a/83V2z/N1dr/zdWbP83V2z/N1ds/zZXbP83WG3/OFlu/zdZbv83WGv/NVNm/zNNX/8xR1f/L0BP/yw6 + Sf8rNkP/KTNA/ykzP/8oMT//KTNA/ykzQP8oMD7/Jyo4/yIhLv8gGyT/MScb/2BLFP+NaQ7/lXEO/4hp + EP95XxL/dl0T/39kEf+RcQ7/poEL/7aNCf/Blgf/x5sG/8mdBf/Knwb/zaEG/9CiBv/Oogb/x5wH/7eR + Cf+siQv/rokK/7iRCP/CmAf/zaEF/9SmBf/bqwT/3q0D/+CwA//gsAL/368D/9ipBP/KnwX/xJoG/8OZ + B//Fmgf/yJ0G/82gBP/aqgP/wpcH/3dfE/8kISH/GRkj/xcXGv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AICkpKUAtra3APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+vr6AAAA + AADc3N0A5OTkAAAAABgAAAD/AAAA/wAAAP8AAAD/AAAA/wwMDf8eGx//IiQq/ys8Sf80VWn/NVhu/zRW + bP81Vmz/NVdt/zVYbf81WG3/NVht/zVXbf81V2z/NVds/zVXbP81Vmz/NVds/zRXbP81V23/NVdt/zVZ + b/80Vmz/Mk9i/y5FV/8rPk7/KztK/yo5SP8rN0f/KzdG/ys4R/8rOEb/KzdH/yo4SP8rOUn/KjpJ/ys7 + TP8sPU3/Kz1N/ys5R/8oMT//JSo2/yMlMP8iIyz/ISMq/yEkKP8gJSf/ICQn/yAkJ/8gJCf/ICQn/yAl + J/8hKif/HzQs/yU2Kv9MRRz/mnMK/7mOB/+0jQn/p4QM/6aEDP+siAz/uZIJ/8qeBv/aqgT/47ED/+m3 + Af/vugD/870A//fBAP/7xAD//cQA//3FAP/8xAD/+cEA//O+AP/xuwD/8bwA//S+AP/2wAD/+MEA//jC + AP/4wgD/+MMA//jDAP/4wgD/+cMA//fBAP/0vgD/8r0A//G8AP/xvQD/8bwA//fCAP/zvQH/w5gH/09B + Gv8gHiH/GRki/wwMDf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAABja2tsA/Pz8AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0AAAAAAMfHyAC/v8AAAAAAogAAAP8AAAD/AAAA/wAA + AP8AAAD/HRwf/x8gJP8nMjz/MlBj/zVZbv80WG3/M1Zs/zRXbP80V2z/NFds/zRXbP80V2v/NFds/zRX + bP80V2z/NFds/zRWbP80V2z/M1ds/zRWbP80VWv/MlJm/y5GV/8pNkP/JCky/yEjKv8hIyj/ICIn/yEi + Jv8hJCb/ISQn/yEjJv8hIib/ICIn/yEjKP8hIyj/ISMp/yEjKf8hIyn/ISIm/yAjI/8fJyT/IS0n/yI3 + LP8kQTH/Jkc2/ydMN/8nTTj/J045/ydNOP8mTTj/J1A6/ypeQP8sdU3/MXVL/1JwM/+dgxL/y58F/+Kw + AP/vuQD/+8MA///HAP//xwD//cUA//rDAP/4wQD/9b8A//O9AP/yvQD/8bwA//G8AP/wvAD/8LwA//G8 + AP/zvQD/9b8A//W/AP/0vgD/870A//G8AP/xvAD/8LwA//G8AP/xvAD/8bwA//C8AP/xvAD/8bwA//K9 + AP/zvQD/870A//O9AP/zvQD/8r0A//nCAP/uuQH/lXYP/zoxHf8WFyP/HRwg/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAovHw8QDn5+cAAAAAAPv7+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX1 + 9QAAAAAA9/f3AAAAACAAAAD/AAAA/wAAAP8AAAD/AAAA/xISFP8fHB//JCkw/y1AT/80VWr/M1Nn/zJR + ZP8xUGP/MU9i/zFOYf8xTmD/MExe/zBLXf8xTF7/ME1f/zFOYP8xT2L/MlBk/zFQZP8xT2P/MU1e/y5E + VP8oN0P/IiQs/yAfI/8hKCX/JDYu/yU/M/8lRDX/Jkc2/ydKOP8nSjn/J0k4/yZHN/8lRTb/JUM2/yVA + NP8lPTL/JDov/yQ6MP8mRTb/KllB/y1uS/8wgFX/Mo1b/zSXYP81nGP/Np5k/zafZP82oGT/Np9j/zWf + Y/82oGT/N6Rk/zipZv81pmb/N5Ra/0t2PP97chv/nHsM/7mQCP/YqQP/7LgB//K9AP/zvgD/8bwA//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8 + AP/xvQD/8b0A//G9AP/xvQD/8bwA//G9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/9L8A//S+ + AP/aqgP/alYV/yEgIf8ZGSP/EhIV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAILq6uwAAAAAA+/v6AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sAxMPFAPv7+wDOzc8AAAAAqAAAAP8AAAD/AAAA/wAA + AP8CAgL/Hh4i/x4aH/8hICj/JSo0/yYuOv8mKzj/JSk1/yMoM/8jJTH/IyQv/yMjLv8iIS3/IiAs/yIh + Lf8iIi3/IiMu/yMlMP8kKDP/Iyg0/yMmMf8iISz/IBwm/x8eJP8jNi//KlxC/zB+VP80j13/NJNg/zWW + Yv81mGP/Nplk/zaZZP82mGT/NZdj/zSWYv80lWP/NJRi/zSSYP8zkF//NJBf/zSXYv82nmf/N6Vq/zep + a/83q2z/OKpr/zeqav83qWn/OKlp/zipaf83qGj/OKlo/zmpaf85q2n/OKxo/ziuaf83q2j/NaBi/zaH + U/82bkT/O1o1/01RI/94YhT/xZkG//G8AP/0vgD/8bwA//G8AP/xvAD/8b0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8bwA//G8AP/xvAD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/xvQD/8bwA//G8AP/xvAD/8b0A//G8AP/xvAD/9L4A//bAAP+phgv/Sz8a/xMVI/8fHiP/AgIC/wAA + AP8AAAD/AAAA/wAAAP8AAACo7+7vAAAAAAD8/PsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gDe3t8D/v7+AAAAABsAAAD/AAAA/wAAAP8AAAD/AAAA/xUUF/8fHSH/Hx8j/yAkJv8hJij/ISYn/yEn + J/8hJyf/ISso/yItKf8iLSj/Ii8p/yIwKv8iMSr/IjAq/yIvKf8iLin/Iiwo/yErKf8iKyn/Iiwp/yIw + K/8kPjH/KVc//y97U/81mGP/N6ls/zmub/85r2//Oq9w/zqvcf86r3H/Oq9x/zqwcf86sHH/Oa9w/zmv + cf85r3H/Oa9w/zmucP85rXD/Oa9w/zmvcf85r3D/Oa5u/zmubv86rW3/Oa1t/zmubf85r23/ObBu/ziw + bf83rm3/Natr/zKlaf8unWb/K5Vj/yiOX/8lhlv/IXJT/yNdRv8vTjb/SEwk/3pkFP/HnAb/8b0A//O9 + AP/xvAD/8LsA//G8AP/xvAD/8bwA//G8AP/xvAD/8bwA//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7 + AP/yvQD/+cIA/92uA/+CaBH/IiAh/xwcI/8UFBf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAb/v7+ANPT + 0wD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7OzsAPLy8gLs7OwAAAAAkQAAAP8AAAD/AAAA/wAA + AP8CAgL/Hh0h/yEkJf8mRTT/KFQ7/ylVO/8pVTv/KVk9/ypcP/8rYUH/LGVE/yxoRf8sbEj/LW5J/y1v + Sv8tbkr/LW1J/yxrSP8rZ0f/K2RF/yxkRf8sZkj/LXBN/zGCWP81mmX/OK1v/zmxcf85rnD/Oatv/ziq + bv84q2//OKpv/ziqb/84q2//OKtv/zisb/85rG//OKxv/zisb/84q2//Oaxv/zmscP85rW//Oa1w/zet + b/83rG//Natv/zWqbv8zp23/MqRr/zCgaf8vm2b/LZVi/y2OXv8vh1n/MYBT/zV5Tf87ckf/Q24+/09t + Nf9fbiz/cXEi/4h5Gf+jhhH/w5oI/+KxAv/yvQD/870A//W/AP/3wAD/+MIA//fCAP/3wAD/9sAA//bA + AP/2wAD/9sAA//K9AP/yvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//G8AP/zvgD/+cIA/7eQCf9NPxv/Gxoj/xsb + I/8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAJH///8Ay8vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTk + 5AC7u7wAwMDCAAAAAAoAAAD/AAAA/wAAAP8AAAD/AAAA/xUSFf8fHyL/JTsw/zKEUf82n17/N59g/zef + YP83o2L/OKVk/zimZf84p2b/OKhn/ziqaP84q2n/OKxq/zisav84rGr/OKxs/zesbP84q23/OKxt/zis + bv85rnD/Oa9w/ziucP84q27/OKpt/zmqbv85q2//OKtv/zmscP85q3H/Oaxw/zmscf84rXH/OKxx/zmt + cv85rXH/Oa1x/zitcP84rXH/OKxx/zascf82rHH/Napv/zSmbf8zoGn/MJlm/y+PYP8uhFr/LXdT/y9s + S/8yYUL/OVk5/0ZVMf9WVyn/a18i/4VrHP+ffBT/uo4O/9KfB//krQL/8rkA//vCAP/8xAD/9sAA//S9 + AP/0vQD/9b4A//S+AP/zvQD/874A//W+AP/2vwD/9b8A//a/AP/1wAD/874A//K9AP/xvAD/8bwA//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/xvAD/8bwA//K9AP/8xQD/3q0E/4ttEP8jICL/Ghoj/xUUFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AAr5+fkA+fn5AAAAAAAAAAAAAAAAAAAAAAAAAAAA5OTkAHx8fgB/f4EAAAAAYQAAAP8AAAD/AAAA/wAA + AP8AAAD/Hxgg/yEoJ/8rYkH/Nptd/zinY/83o2L/OKNi/zilY/84pmT/OKZl/zimZv84p2f/OKho/zin + Z/84qGj/OKpq/zeqav84qmz/OKtt/zmrbv85q27/Oatu/zmqbf85q27/Oatv/zmrbv84q3D/Oaxx/zms + cf85rXH/Oa1y/zmtcv84rXL/Oa1y/zmtcv84rXL/OK1y/zmvc/85snX/ObR1/zavdP8vom7/KpBl/yqD + XP8weVX/PXRN/0lvRf9PaT7/WGU4/2VnNP94bS7/i3cs/5+EKf+ykSb/xZ0j/9WoHf/ishr/6rgV//C8 + Ev/0vg3/9L8J//O/Bf/0vgL/98AA//zFAP/9xAD/978A/+iyAP/PngP/s4gH/6V9CP+sggf/wJIG/8qa + Bf/HmQb/xJgG/86hBv/ptgD/8b0A//K9AP/xvAD/8b0A//G9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/8bwA//bAAP/yvQD/wJcH/0M4 + HP8eHSL/Gxsj/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAYdvb3ADV1tcAAAAAAAAAAAAAAAAAAAAAAAAA + AADn5+cAwsLDAK+vsAAAAADiAAAA/wAAAP8AAAD/AAAA/xAPEf8fGyH/JTow/zKEUv83omH/OKVj/zaj + Yf84pGP/OKRi/zelZP83pWX/N6Vm/zelZv84pmf/N6do/zeoaf83qGv/OKlr/zipbP85qW3/Oalt/zmp + bf85qW7/OKpu/zirb/85rHD/Oaxw/zmtcv85rXL/Oa1x/zmucv85rXL/OK1y/zitcv85rnP/OrJ2/zq1 + d/83tHj/Mqpy/yqZaf8nhV7/K3NS/zpqS/9VcEb/dH5F/5CMRf+ol0L/t54//76gO//Eojf/zaY0/9ar + L//fsi7/6Lgr/++8KP/zwCT/98Mf//jEG//4xBf/+sUU//zHEP//yQz//8oH//vDA//ttgD/1qIB/7iK + Bv+Xcwz/eGAT/11THP9JTCP/Qk0o/0hWKf9VXSb/WFMf/1RGGv9MPBj/W0UV/6iECv/ntwL/+sQA//C7 + AP/wvAD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//G8AP/yvQD/8rwA//nCAP/gsAP/eGAT/yolIf8XGCT/ERAS/wAAAP8AAAD/AAAA/wAA + AP8AAADinp6gAJiYmgDz8/MAAAAAAAAAAAAAAAAAAAAAAM3NzQDb29sAAAAAJQAAAP8AAAD/AAAA/wAA + AP8AAAD/HBce/yEmJv8pVj3/Npxe/zijYv83o2L/N6Ni/zikY/84pGP/OKVl/zimZv84pmf/OKZn/zen + aP83qGr/OKlr/zipbP85qmz/Oals/zmpbf85qW7/Oapu/zmrcP85rHH/Oaxx/zmtcv85rXL/Oa5y/zmt + c/84rXP/Oa1z/zmudP85sHX/OLJ3/zWwdf8wp3H/LZtq/y2NY/8zfln/QHVS/1VxS/9wdEb/j39F/7CT + Rv/Npkf/47ZI//LBR//5yEX//MtD//3NP//+zzv//s84//3PNP/9zDH/+sks//fGKP/1xST/98Yf//nH + G//5xBb/87wR/+axDf/SoQv/uI8M/5p8Ef96bhr/W2Im/0JaMf8vWDv/JVtD/yFiSf8hak3/JHBO/yVu + TP8jXUL/IE48/xY1NP8bIif/XEgW/8SYBv/4wgD/+cQA//jCAP/0vwD/8r0A//G8AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/wuwD/+MEA//C7 + Af+wign/QDYc/xgYI/8cGyD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAls7O0APb29gAAAAAAAAAAAAAA + AADh4eIAl5aZAKCfoQAAAACGAAAA/wAAAP8AAAD/AAAA/wgICf8eFx//JDgv/y90TP84pmP/OKVj/zaj + Yv84pGP/OKVk/zimZf84pmf/OKdo/zenaP84qGn/N6lq/ziqbP85qm3/Oalt/zmpbf85qW3/Oapu/zmr + cP85rHD/Oa1y/zmucv85rXL/Oa1z/zmtc/85rnP/OK10/ziudf85r3b/N7B3/zaudv8zqHP/Mp1r/zKK + YP84dVP/SWdJ/2VmRf+MeUn/t5VQ/92yWf/1yV3//dNc//7UWf/70VT/+c5P//fLS//2yUf/9MlC//TI + Pv/0xzr/88c1//TFMv/0xS7/9cUq//XFJ//zwyH/67sd/92uGf/DnBj/oIMZ/3VoH/9OVSn/MlA2/yRe + Rv8jclT/KIZc/y+XYf81omP/N6dk/zipZP84qGP/N6di/zWgXf80mVr/Ln9P/yVQPP8sMib/gmcR/8ue + Bf/rugL/874B//S+AP/zvgD/8bwA//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7AP/0vgD/9b8A/92sAv9jUBb/IiAi/xobI/8ICAn/AAAA/wAA + AP8AAAD/AAAA/wAAAIb29vYA6urqAAAAAAAAAAAAAAAAAOHh4gBsa24Abm1wAAAAAPcAAAD/AAAA/wAA + AP8AAAD/FhQY/x8bIf8oTjn/M49Y/zimY/84pWP/N6Ri/zilY/84pWX/OKZm/zimZ/83p2j/N6dp/zio + av83qWv/OKls/zmqbf85qm3/Oalt/zmqbv85q3D/Oaxx/zmscf85rXL/Oa5y/zmtc/85rnT/Oa50/zmu + df84rnb/OK93/zizev8zrXb/LJNo/y5zVf9CY0j/aGtI/5eEUv/CpF7/4b5o//DNbf/30mz/+dJo//jP + Y//2zF7/9cta//TLVf/1ylH/9cpN//TJSf/1ykX/9slB//XIPf/1yDn/98g1//nKMv/4yi3/7b0n/8Wb + If+UdB7/Zlwl/0ZfNv8zaEX/K3RR/yuEW/8wl2P/NKRo/zaoaf83qGj/N6dm/zemZP83pWP/OKNi/zii + Yf83omD/NqFe/zeiXf83olz/NJRX/ypnRf8vQSz/V0gZ/5BvDv+7kwn/26wD/++6AP/0vgD/8r0A//G8 + AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//K9 + AP/1vwD/874A/5BxEP84MR7/FBcj/xYVGf8AAAD/AAAA/wAAAP8AAAD/AAAA98rKywDAwMEAAAAAAAAA + AAAAAAAA4uLjAMfHyQAAAAAlAAAA/wAAAP8AAAD/AAAA/wAAAP8fGiD/ISkn/y1nRP83oWH/OKVj/zil + Yv83pWT/OKZl/zilZv84pmf/OKZo/zenaf83qWv/N6lr/zipbP85qWz/Oalt/zmrb/85q2//Oaxx/zmt + cv85rXL/Oa1y/zmtc/85rnT/Oa91/zmvdv85r3f/Oa94/zixef84sXj/Nady/0GKYf9jfVj/kYtc/7ij + Z//Ut27/58Vx//PNc//50nP/+dRx//nTb//40Gv/9s1m//XMYf/0y1z/9MtY//fOVf/80VL//dNP///T + Sv//z0T//ck9//jEOP/xvDP/3awt/7aPKP99ZCT/T0wp/zhUOf8xc07/MZFh/zGdaP8yomv/NKZs/zWq + a/83qmr/N6pp/zioaP84p2f/OKZk/zekY/84o2L/OKJh/zihYP83ol//OKFe/zeiXP83oVz/NJdY/y5/ + T/8tXD3/Mjwo/z4yG/9xWRT/xpwH//zEAP/zvQD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/8bwA//S/AP/4wgD/u5IJ/1ZHGf8VFyT/Hh0j/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAJYqKiwD29vYAAAAAAAAAAADKycsA2NfZAAAAAHYAAAD/AAAA/wAA + AP8AAAD/CQkL/x4ZH/8lPzH/MX1Q/zipZf84pGL/N6Vj/zilZv84pmf/N6Zn/zimaP84p2r/N6lr/ziq + bf84qm3/Oals/zmpbf85qm7/Oaxx/zmtcv85rXL/Oa1z/zmtc/85rXP/Oa51/zmvdv85sHf/ObB4/zmw + eP85sXn/OLN6/zWsdv8xe1j/dYFa/7ula//ix3v/9tF///3Zf//92n3/+9d6//fSdf/10HH/9M9u//XO + a//1zWj/9s5l//vRYv/80V7/98tW/+q9Tf/YrkX/yaNA/7udPv+xmz3/pZo//5WTPv99hD3/W3I+/zZi + Qv8naE//J4Be/y6da/81rXH/OLBx/zqwcf86rm7/OKtr/zioaf83p2f/N6Zn/zilZ/84pWX/OKVk/zik + Y/84o2L/OKJh/zihYP84oF7/N6Bc/zegXP85pV3/NqRe/y2IVf8fUkD/EhYl/ygfHv+GaRD/4bAD//zF + AP/3wQD/8r0A//G8AP/xvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/wuwD/8r4A//fBAP/drAP/d2AU/yAeIv8cHCL/CQkL/wAAAP8AAAD/AAAA/wAAAP8AAAB2vLy9APj4 + +AAAAAAA+Pj4AJqZmwCjoqUAAAAA1gAAAP8AAAD/AAAA/wAAAP8WFBf/Hhwh/ylWPf8zkFn/OKpm/zil + Y/82pGX/OKZn/zinaP82p2j/OKdp/zepa/85qmz/Oalt/zmpbv85qW3/Oapu/zmscP85rXL/Oa5y/zmt + cv85rXP/Oa51/zmudf85r3f/ObB4/zmxef85sXn/ObB5/ziyev84tXz/NKp2/y9kTP+Ee1b/1LZ0//Xf + if/+3Ib/+teA//fTfP/30nn/9tB2//XQc//0z3D/9c9t//bPa//3zmf/78hh/925WP/Bo07/oY1F/4R9 + Qf9tdkL/XHhI/1GAT/9Ghlf/OYVa/y6CXf8ohmL/LJhq/zWqcv86tHX/OrJz/zmsb/84qW7/OKht/zip + bf85qWz/N6lr/zioaP82p2f/OKVm/zilZ/84pmX/OKVj/zikYv84o2L/OKJh/ziiYP84oV7/N59c/zef + W/83pF7/OKNd/zOGUP8kQTP/Fxsm/0U1Gv+WdQ3/3a0D//C8AP/2wQD/9sAA//S+AP/yvQD/8bwA//G8 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8AP/xvAD/9L4A//K8AP+ZeQ7/NS4e/xka + I/8UFBn/AAAA/wAAAP8AAAD/AAAA/wAAANb6+vsA7e3uAAAAAAD4+PgAf36AAAAAAAoAAAD/AAAA/wAA + AP8AAAD/AAAA/x4bH/8gJCX/LWxJ/zadYP84qGb/OKVl/zelZv84pmf/N6do/zeoaf84qGr/OKls/zmp + bP85qW3/Oapu/zmrb/85rHH/Oa1y/zmtc/85rnL/Oa10/zmudf85sHb/ObB3/zmweP85sXn/ObJ5/zmy + ev85sXv/OLJ8/zi1fv83sXz/L41n/z9pT/95dVL/w6ds/+3Of//42IL/+tZ///jTe//30nj/9tF1//XQ + cv/20XD/9s9t/+nEZf+1nFP/eXZG/0liQ/8yZkz/KnhZ/yuMZv8unnH/MKp3/zKvef80snn/NrJ5/zmz + eP84snf/OK90/ziuc/85rXL/Oaxx/zirb/85qm7/Oalt/zmqbf84qWz/OKlq/zeoaf83pmf/OKZn/zim + Zv84pWT/OKRj/zijYv84o2L/OKJh/zihX/83n13/OJ9c/zefW/83olz/Np5a/zGBTv8lSDf/HiQn/zgu + Hf98YRD/wJcG/+e2Av/2wAD/9r8A//K9AP/yvQD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8bwA//G8AP/yvQD/+8MA/7aQCf9TRRj/Fxgj/xsaIf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AArQ0NEAAAAAAPj4+ADi4uIAAAAANwAAAP8AAAD/AAAA/wAAAP8EAwT/Hxsh/yQyLP8xf1H/N6Zk/zin + Zv84pmb/N6Vm/zilZv83pmf/N6hq/zepa/84qmz/Oals/zmpbf85qm//Oatx/zmtcv85rnP/Oa1z/zmt + c/85rnX/Oa92/zmxeP85sXj/ObB4/zmxef85snr/ObN8/zmzff84tH7/OLV//zi1f/83s37/M6By/zaC + X/9ObE//hHtV/8KjaP/sxXf//dd///3cf//92Hv/+dR2//rVdP/wymz/o4lO/0ZZQf8fZ1H/JJVu/yup + ev8ws3//NLeA/za3fv82s3z/N7J6/zeyef84snn/ObF3/zmwd/85rnT/OK1y/zitcf85rHH/Oaxx/zmq + b/85qW3/Oapt/ziobP84qWv/N6hq/zenaP84pmf/OKVn/zimZv84pGT/OKNi/zijYv84omH/OKFg/zif + Xv84n1v/N55a/zefW/83oVv/N6Bb/zSOVP8sbkf/Jks4/yozJ/9ENxr/dFcQ/6yECf/crAP/9L4A//W/ + AP/yvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8LsA//G8AP/8xAD/0KIF/3Nd + FP8aGST/HBsj/wQEBP8AAAD/AAAA/wAAAP8AAAD/AAAAN62srgAAAAAA39/gAOfm5wAAAAB8AAAA/wAA + AP8AAAD/AAAA/w4MD/8eHiL/JkQ0/zOOWP84qmb/N6Zl/zilZ/84pWb/N6do/zeoaf83qWz/OKls/zmp + bP85qW3/Oatv/zmrcP85rHL/Oa1y/zmtc/85rnX/Oa51/zmvd/85sHj/ObF5/zmyef85snr/ObN7/zm0 + ff85tH7/ObV//zm1f/84tH7/OLZ//zm5gv81uIH/L6h4/y6Sa/8+gl//Xn1Z/4KBWP+mkV7/yKlm/+i+ + b//6znT//9p3//jVcv/Ao1v/dnZL/1J1UP9Nj2H/Q5dp/zOXbf8rm3L/K6V3/zCwff82tn7/OLZ8/zqz + ev85sHf/Oa94/ziudf85rnT/Oa1z/zmtcv85rXL/Oaxx/zmrb/85qW3/Oalt/zmpbf84qWz/N6hq/zin + aP83pmj/OKVn/zilZv84pGT/OKNi/zijYf84omH/OKBf/zigXf84n1v/N55a/zifW/84o13/N6Rd/zab + Wv8xiFP/J25K/yFVP/8mQDH/Ojsi/2BOF/+ZeQ7/16gE//K9AP/yvQD/8r0A//G8AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/xvAD/8r0A//rCAP/isAP/knQP/yQhIv8bGyP/Dg0Q/wAAAP8AAAD/AAAA/wAA + AP8AAAB8goKEAPr6+gCysbMAtrW2AAAAAMUAAAD/AAAA/wAAAP8AAAD/FhMX/x8iJP8pWT//NZhd/zis + Z/82pWb/OKZn/zemZ/83qGn/OKlr/ziobf85qm3/Oalt/zmqbv85rHD/Oaxx/zmtcv85rXP/Oa50/zmv + dv85r3f/ObB4/zmxef85sXr/ObJ7/zmzff85tH7/ObV//zm1f/85tYD/ObWA/zm1f/84toD/OLaA/zm5 + g/85vYb/Nr2G/yyqe/8pjmn/Mnlc/0t1Vv9vgFj/lJBd/7ejY//Qs2f/4MBq/+e/Z//TsmD/vadb/6yh + WP+WmVf/doxX/1qHWv9Fi2D/OJRq/zGecf8wqHf/MrB6/za0e/84s3r/OLF4/zmvdv84rnT/Oa1z/zmt + cv85rXL/Oaxx/zmqbv85qm7/Oalu/zmpbf84qWv/OKhp/zanaP84pmj/OKZn/zilZf84pGP/OKRi/zij + Yv84oWD/OKFf/zigXP84nlv/N55a/zifW/83o1z/Oahf/zmqYP84ol3/NpBT/y5oQ/8sQC7/QDUc/3lg + Ev/LnwX/8b0A//O+AP/xvAD/8LsA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7AP/yvQD/9r8A/+66 + Af+siAv/NC0f/xwcI/8VFRr/AAAA/wAAAP8AAAD/AAAA/wAAAMWjo6UA+/v7AIKBgwCFhIYAAAAA/wAA + AP8AAAD/AAAA/wAAAP8cGB3/ISgn/y1tSf82n2H/OKto/zelZv84pmf/N6dp/zeoa/84qmz/OKlt/zmp + bf85q2//Oaxw/zmtcf85rXL/Oa1z/zmudf85r3b/ObB4/zmweP85sXn/ObJ6/zmze/85s33/ObV//zm1 + f/85tX//ObaA/zm1gP85toH/ObeC/zi3g/85uIP/ObiE/zi4hP84uYX/OL6H/ze/if8yt4X/K6V6/ymP + a/8ve13/R3RV/2p7VP+Vjlj/wahh/97AaP/rzmr/8tBn//bJYf/mu1n/xKZS/5mRTf9wgU3/Tn9V/zuM + Yv8znnD/M6x3/zWxev82snn/OLB3/zmwdv85rnT/OK1z/zitcv85rXH/Oaxw/zmrb/85qW3/Oals/zip + bP84qGv/N6hp/zemZ/84pWb/OKVl/zilZP84pGL/OKNh/ziiYf84omD/OKBd/zefXP83n1v/OKBc/zee + Wv81l1j/MotT/zODTf9TkUP/fJwz/5mVHv+siAv/xZsG/+SzAf/yvQD/8r0A//K9AP/xvAD/8bwA//G8 + AP/xvAD/8bwA//G8AP/xvAD/8bwA//K9AP/yvAD/9r8A/8KYB/9KPhv/Hh0i/xgYIf8AAAD/AAAA/wAA + AP8AAAD/AAAA//v7+wD39/cAY2JlAAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/x8aIP8iLyr/MH1R/zaj + ZP83qmj/N6Zn/zinaP83p2n/OKlr/zmpbf85qW3/Oapu/zmrcP85rHH/Oa1y/zmtcv85rXT/Oa92/zmw + d/85sHj/ObF5/zmxev85snv/ObN9/zm0fv85tX//ObV//zm2f/85toD/ObaB/zm3gv85uIP/ObiE/zm5 + hf85uYX/OLmE/zm6hf85uob/OLqG/zi6h/83u4f/N7uG/zW3hf8yrX//Mp91/zaOaP9GgF3/YX1U/4SF + Uf+sllP/0qxX/+/BXP/1zV3/8M9c/+fGVv/Lr0//oJVI/22ASv9DflX/LpFo/y6odv81s3v/ObR6/ziv + dv84rXT/Oa1z/zitcv85rHH/Oatw/zmqbv85qW3/OKls/zipa/83qGn/N6do/zimZ/84pWb/OKVk/zik + Y/84o2L/OKJh/ziiYf84oF//N59c/zegW/84oFz/MoVP/ypZPf8gMy7/Iion/2FRGf/AmQv/78ME//LF + Af/1xgD/+MQA//jBAP/2vwD/874A//K9AP/yvQD/8bwA//K9AP/yvQD/8r0A//K9AP/xvAD/8r0A//G8 + AP/6wwD/0aUF/2NQFv8gHiL/GBkk/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEOnp6QC3trgAAAAAMAAA + AP8AAAD/AAAA/wAAAP8GBQb/Hhwh/yQ5L/8zi1j/N6Zm/zipaP82pmf/OKdp/zeoa/84qWz/Oalt/zmp + bf85qm//Oaxx/zmtcv85rXL/Oa1z/zmudf85sHf/ObF5/zmxef85sXn/ObJ7/zm0ff85tX7/ObV//zm1 + f/85tYD/ObaB/zm3gv85uIP/ObmE/zm4hf85uYX/ObmF/zm6hv85uYf/ObqI/zm6h/84uof/ObuI/zm8 + if85vor/N76L/zW8iv8zt4b/MLGC/zGofP82oHX/Ppds/02OY/9iiVv/folT/5uRT/+4nk3/1axM/+e1 + TP/ouEn/2LJG/7ikRv+Ikkn/U4VT/zOLYv8qn3L/NLN7/zizef85r3T/OK1x/zmtcv85rHH/Oatv/zmp + bf85qW3/N6ls/zepav82qGj/OKZn/zilZ/84pWb/OKRk/zijYv84o2L/OKNi/zihYP82oF7/OKBc/zig + XP80jFP/LWtE/yVJNv8jNi7/Ojsj/29cF/+WeA7/rIgJ/8GUBP/TnwL/4aoA/+yyAP/0uQD/+b4A//zC + AP/9xAD//cYA//3FAP/6xAD/9cAA//K9AP/yvQD/8LsA//vEAP/drQP/fGMS/yQiIf8XGCT/BgYG/wAA + AP8AAAD/AAAA/wAAAP8AAAAw2NjZAODg4QAAAABXAAAA/wAAAP8AAAD/AAAA/wwLDf8fICP/JkQ1/zSV + Xf84p2f/N6ho/zenaP84qGr/OKls/zmpbf85qW3/Oapu/zmrcP85rXL/Oa5z/zmtc/85rnT/Oa92/zmx + eP85sXr/ObF6/zmxe/85s33/ObV+/zm1f/85tn//ObWA/zm2gf85t4P/ObiD/zm5hP85uoX/ObmG/zm6 + h/85uof/ObuH/zm6iP85uon/ObuJ/zm7if85u4r/OLuK/zi7iv84u4r/ObyK/zq+i/85wIz/OMGM/zO8 + iv8ttIT/K6h8/y6bc/83jmn/R4hg/12GWP93i1P/lZlR/7ClT//Dq0n/yqdC/7+bPP+gkD7/doZG/0yE + VP8zj2T/NKdz/zevdv84rnP/Oa5y/zitcv85rHD/Oapu/zmobf84qm3/OKpr/zepaf83pmj/OKZn/zim + Z/84pWX/OKRj/ziiYf84omH/OKJh/zehX/83n13/OJ9c/zeaWf80kFT/MYJP/y91Sv8raET/MmI9/0Bi + NP9RZiz/Y2ol/3VyH/+Gehn/loEU/6aKEf+zkA7/vJQL/8OXB//MnAT/2acD/+WzA//tugH/8b0A//G8 + AP/xvAD/+sMA/+WyAv+TdQ7/KiYg/xYXJP8NDA3/AAAA/wAAAP8AAAD/AAAA/wAAAFfFxcYAz87PAAAA + AIAAAAD/AAAA/wAAAP8AAAD/Eg8T/yAjJf8oTjr/Npxh/zipaf82p2n/OKhp/zepa/85qmz/Oahs/zmp + bf85q2//Oaxy/zmtc/85rXP/Oa10/zmudf85sHj/ObF5/zmxev85snv/ObN9/zm1f/85tYD/ObWA/zm2 + gP85t4L/ObiD/zm5hf85uYX/ObmF/zm6hv85u4f/ObuJ/zm8if85vIn/ObyK/zm7i/85vIv/ObyL/zm9 + jP85vYz/Ob2M/zm9jP85vIv/OLuK/zm7iv85vIn/OLyJ/zm9iv85wIv/N8GL/zO8iP8tsYP/KqN6/yuV + b/8zjmf/QIhg/1WEVv9yhkv/nYxA/8+nPP/Qpjj/oIw3/19yQP86hVv/NKFv/zewdv84rnP/OK1y/zms + cf85q2//Oalt/zmqbf85qW3/OKlr/zanaf84p2j/OKdo/zimZf84pWT/OKNi/zijYv84oWD/OKBf/zef + Xf84oFv/OKFb/zikXf85p1//OaZe/zaiXf8wmFv/KoxY/yZ/VP8ldU7/J2xJ/y1mQ/81ZT3/QGc3/0xp + Mf9XaSv/YGck/2xlHP98ZhT/lXYP/72VCP/ltAH/8r0A//K9AP/5wgD/67cB/6aDC/8yKx7/Fxgj/xIR + FP8AAAD/AAAA/wAAAP8AAAD/AAAAgLKxswDDw8QAAAAAqAAAAP8AAAD/AAAA/wAAAP8WEhf/ICcm/ylY + P/82oWT/OKlp/zeoaf84qGn/OKlr/zmpbP85qW3/Oapu/zmscP85rHL/Oa1z/zmtc/85rnX/Oa92/zmw + eP85sXn/ObF7/zmzfP85tH7/ObV//zm1gP85toH/ObaB/zm3g/85uIT/ObmF/zm5hv85uYb/ObqI/zm7 + if85u4r/ObyK/zm8iv85vYv/Ob2M/zm9jP85vYz/Ob2N/zm9jf85vY3/Ob2N/zm9jP85vYz/ObyL/zm8 + i/84vIr/ObuK/zi7if84u4n/OLuI/zi8iP83von/Nb+K/zG7iP8rsIH/K550/zOBX/9LXkD/oog7/+G9 + QP/tyz7/xpox/1phN/8zg1z/NK93/ziudP84rXL/Oa1x/zmrcP85qm7/Oapt/zmpbf84qWz/N6hq/zin + aP83p2j/OKZm/zilZP84o2L/OKNi/ziiYf84oV//N6Be/zigXP84n1v/OKBc/zifW/84oFz/N6Bc/zeh + W/83olz/N6Nd/zajXf81ol3/NZ9d/zOdXP8xmVv/LpZa/y6RWP8rhVX/I2dI/xguMP8jISL/bVUT/82g + Bf/0vwD/9L4A//jBAP/uugH/t48J/zoyHv8ZGSP/FhYZ/wAAAP8AAAD/AAAA/wAAAP8AAACooJ+hALS0 + tgAAAADLAAAA/wAAAP8AAAD/AAAA/xoUGv8hKyn/K2JF/zalZ/84qmn/N6ho/zipav84qWz/Oalt/zmp + bf85q2//Oa1x/zmtcv85rXL/Oa10/zmvdv85sHj/ObF4/zmxev85snz/ObR+/zm1f/85tX//ObWA/zm3 + gv85t4P/ObiE/zm5hP85uYX/ObqH/zm6iP85u4n/ObyK/zm8i/85vYv/Ob2L/zm+jP85vY3/Ob2N/zm9 + jv85vo//Ob6P/zm+j/85vo//Ob6O/zm9jf85vYz/Ob2M/zm8i/85vYv/OL6M/zjBjv80wI3/LbmJ/yut + gP8zonX/S5xt/2qbYv+Km1f/oJZM/6aLQP+vjTv/rJM8/56SPf+Bgj7/SHZL/zSVZ/82sXj/N691/zmu + c/85rXL/Oaxx/zmrb/85qW3/Oaht/ziqbf83qWv/OKdo/zenaP84pmf/OKVl/zikY/84o2P/OKJh/zih + YP84oF//OJ9c/zieW/84n1v/N59b/zefW/84n1v/OKBc/zihXP84olz/OKJd/ziiXf82oVz/NqFd/zaj + X/82p2D/L5lc/yd9Uf8tXz//VVUi/4ptEf/AlAf/57UB//K9AP/xvQD/9sAA//K8AP/Fmgf/Qzkd/xsb + I/8YGB7/AAAA/wAAAP8AAAD/AAAA/wAAAMuOjY8AqqqrAAAAAOcAAAD/AAAA/wAAAP8AAAD/GxUd/yIv + K/8takn/N6do/zirav84p2n/Oapr/zmqbf85qG3/Oapu/zmscP85rXL/Oa5z/zmtdP85rnX/ObB3/zmx + ef85snr/ObN8/zm0fv85tX//ObV//zm1gP85toH/ObiD/zm4hP85uYX/ObqF/zm7h/85u4n/ObuK/zm8 + i/85vYz/ObyM/zm+jP85vY3/Ob6O/zm+j/85vo//Ob6Q/znAkf85wJH/Ob+R/zm/kf85vpD/Ob6P/zi+ + jv85vY3/OcCP/zfDkP8zvIz/LquB/zehd/9OnnD/ap1p/4CaYP+Pllj/lpJR/5SOTP+LjUz/fpBQ/2qP + VP9Yjln/TJBf/0OVZP86n2z/N6t1/zixd/84rnX/Oa50/zmsc/85rXL/Oaxx/zmqbv85qW3/Oalt/zip + bP84qGr/N6Zn/zelZ/84pmb/OKVk/zikY/84o2L/OKJh/zihYP84oF3/OJ9c/zifWv84oFz/OKBc/zig + XP84n1z/N59b/zefW/84n1v/OJ9b/zefW/84oVz/OKBc/zCEUP8oYEH/Q1ku/4R6G/+9mgv/4rAD//G8 + AP/zvgD/8bwA//C8AP/1vwD/874A/86hBf9LQBv/HR0i/xkZIP8AAAD/AAAA/wAAAP8AAAD/AAAA54B/ + gQCenp8AAAAA/AAAAP8AAAD/AAAA/wAAAP8dFR7/IzMs/y5xTP82qGf/OKtr/zioav85qmz/Oapt/zmp + bf85q2//Oaxx/zmsc/85rnL/Oa51/zmvdv85sXj/ObF5/zmxe/85tH3/ObV//zm1f/85tX//ObaB/zm3 + gv85uYT/ObmF/zm5hv85uof/ObyJ/zm8iv85vIv/Ob2M/zm+jf85vY3/Ob6N/zm+j/85v5D/OcCR/znA + kf85wJH/OcGS/znBkv85wJL/OcCS/zm/kf84wJH/OL+Q/zm/kP82uYv/N62C/z+fdv9Wlmv/dJNi/5CO + WP+ijFL/ppBR/5mTU/9/j1X/XolZ/0GHXv8wjGj/KJdw/yeieP8prn//LrSB/zW5gf84t37/ObN5/zmv + dv84rXX/Oaxz/zmuc/85rXL/Oatv/zmqbv85qG7/Oapt/zipa/84p2j/NqZn/zimZ/84pWX/OKVi/zik + Yf84o2L/OKBf/zihXv84oFv/OJ5a/zigXP84oFz/OKBc/zigXP84oFz/OKBc/zigXP83nlr/OKJc/zee + W/8yhlD/H0c4/zIzI/98XA//26YA//rDAP/8xQD/9sEA//K9AP/yvQD/8bsA//S+AP/0vwD/1KYE/1NG + Gf8fHiH/GRki/wAAAP8AAAD/AAAA/wAAAP8AAAD8eXh7AJGRkgAAAAD/AAAA/wAAAP8AAAD/AAAA/x4X + H/8jNi7/L3ZP/zepaP84q2v/OKhq/zmpbP85qm3/Oapu/zmscP85rXL/Oa1z/zmuc/85rnX/Oa93/zmx + ef85sXr/ObJ8/zm0fv85tX//ObV//zm1gP85t4L/ObiE/zm5hf85uYb/ObqI/zm7if85vIr/ObyL/zm8 + jP85vY3/Ob6O/zm/kP85v5D/OcCR/znBkv85wZL/OcGT/znBk/85wZT/OcKU/znBlP85wZT/OcCT/zjA + kv84wZP/OcKU/zClf/83fGH/X25P/6iXXP/Oq2L/upVV/454SP9rc0v/UX5X/0OHYP89j2j/O5ht/zqe + cf85onP/OKV1/zapd/81q3n/NK56/zeye/84snn/OK93/ziudv85rXT/Oa1z/zmtcv85rHD/Oapu/zmp + bf85qW3/OKlr/zioaf83pmf/OKZn/zilZf84pWP/OKRi/zijYv84oWD/OKFe/zigXP84n1v/OKBb/zig + XP84oFz/OKBc/zigXP83n1v/OKBc/zefW/84pF3/NJBU/yZROf8WGiT/YkoT/8WaB//6xQD/874A//G8 + AP/yvQD/8r0A//K9AP/xvAD/874A//S/AP/ZqgT/WksY/yIgIv8ZGiP/AAAA/wAAAP8AAAD/AAAA/wAA + AP90c3YAAAAAAQAAAP8AAAD/AAAA/wAAAP8AAAD/Hhcf/yQ3L/8veVD/N6lp/zera/83qWv/Oalt/zmq + bv85qm7/Oaxw/zmtcv85rXL/Oa5z/zmudf85sHf/ObJ5/zmyev85snz/ObR+/zm2gP85toD/ObaA/zm3 + gv85uIT/ObmF/zm6hv85uoj/ObuJ/zm8i/85vYz/Ob2M/zm9jv85vo//Ob+Q/zm/kf85wJL/OcGT/znC + k/85wpP/OcGT/znClP85wpT/OcKU/znClP85wZP/N8CS/znBk/85w5X/MaV//zaDZf9Pelr/dpRk/3yS + Yf9uglf/Z3pT/3CGWP91jFr/dYxZ/3KLWP9uiVb/ZoFR/195TP9Wc0r/TnBK/0ZxTP8+eVP/N4Ze/zSa + a/84rnf/N692/zmudP85rXL/Oa1y/zmscP85qm3/Oalt/zmpbf84qWv/OKhp/zenaP84pmf/OKRm/zik + Y/84pGL/OKNi/zihYP84oV//OKBc/zifW/84oFv/OKBc/zigXP84oFz/OKBc/zefW/84n1v/N6Nd/zif + W/8tdUv/GCYq/zApHv+beA3/7rkB//XAAP/yvQD/8LsA//G8AP/yvQD/8r0A//G8AP/zvQD/9L8A/9yt + A/9eTRj/IiAi/xkZI/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAEAAAADAAAA/wAAAP8AAAD/AAAA/wAA + AP8dFx7/JDow/zCAVP84r2z/Oa5s/zipa/84qG3/OKlt/ziqb/85rHH/Oa5z/zmuc/85rXX/Oa93/zmw + eP85snr/ObJ6/zmzff85tH7/ObaA/zm2gP85t4L/ObiE/zm5hf85uob/ObqH/zm6if85u4r/ObyM/zm9 + jf85vY7/Ob6P/zm/kP85wJL/OcGS/znAkv85wZP/OcKU/znClf85wpX/OcOW/znDlv85w5b/OcOW/znC + lf84wpT/OMGT/znBk/82uY3/N6+G/zurgf9CroH/QKh9/z2kef9ApHj/Sql6/0+ref9Sr3r/Ua95/0um + c/9Elmj/Q4he/0V3Uv9UaUT/eWw4/6WNPf99ez7/RHdP/zKhcP84sHj/ObB2/zitc/85rHL/Oa1x/zmr + b/85qm3/Oaht/zeoa/83qGr/NqZo/zilZ/84pWb/OKVk/zijYv84omH/OKFg/zigXv84n1z/OJ5c/zig + Wv84oFz/OKBc/zigXP83n1v/N6Bb/zikXf85p17/LoNR/yBHOf8oIyD/gGQR/9SlBP/5wgD/8r0A//G8 + AP/xvAD/8r0A//K9AP/yvQD/8bwA//K+AP/1vwD/3a4D/19OF/8jISL/GBoj/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAAwAAAAMAAAD/AAAA/wAAAP8AAAD/AAAA/x4XH/8jNi7/LnRN/zamZ/85rm3/Oa9v/zmu + cf85rnD/Oa1x/zmtcv84rXL/OK10/zmudf85r3j/ObF5/zmyef85s3v/ObR+/zm1f/85tn//ObeB/zm3 + g/85uYX/ObqF/zm7h/85u4j/ObuK/zm8i/85vYz/Ob6O/zm+j/85v5D/OcCS/znBk/85wpP/OcGT/znC + lP85w5b/OcOX/znEmP85xJj/OcSY/znEl/85xJf/OMSX/znDl/85w5b/OcOV/znImP84y5r/NMua/y/F + lv8uw5T/L8ST/zDEk/8ww5H/Lr6P/yqxhP8tpHr/O5xx/02Zav9clGH/aIhU/3l9Rv+bgTz/u5xA/4aG + Q/9Gf1T/MqNy/zexeP85sHf/OK50/zmtcf85rXL/Oaxw/zmqbv85qWz/OKls/zipa/83p2n/N6Zm/zim + Z/84pmX/OKRj/zijYv84omH/OKFf/zigXf84n1z/OJ9b/zigXP84oFz/OJ9b/zefW/83oFv/NpxZ/zCC + T/8qVDr/Pz0h/4BjEP/TqAX/9cIA//fAAP/xvAD/8LsA//G8AP/xvAD/8r0A//K9AP/xvAD/874A//W+ + AP/drgL/X08X/yMhIv8YGiP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAADAAAAAQAAAP8AAAD/AAAA/wAA + AP8AAAD/Hhog/yEqKP8oTzv/L3pR/zGQXv80nmb/OKZs/zirb/85r3L/Oa9z/zivdP85r3b/ObB2/zmw + eP84sHn/ObF6/zmzfP85tX//ObV//zm1gP85uIL/ObiE/zm5hf85uob/ObqI/zm8if85vIv/Ob2M/zm9 + jf85vo//Ob+Q/znBkv85wpT/OcKU/znClP85w5X/OcSW/znFmP85xZn/OcWZ/znGmf85xpr/OcaZ/znH + mv83xpn/N8aa/zfFmP82w5f/NsKV/zbBlP82wZP/NsCS/ze/kP83vI7/N7yN/ze6iv80q4D/NYdl/0Vv + Uf9mcUv/hn5K/5iHSf+cjEn/lZJM/4aYU/9nlVn/SJxo/zipdf84snr/OLF4/zmvdv85rnT/Oa1y/zmt + cv85q3D/Oalv/zmpbf85qm3/Oapr/zioaf82p2f/OKVn/zimZf84pGT/OKNj/zijYv84ol//OKFd/zig + W/84nlv/OKBc/zigXP83n1r/OKFc/zaeWv8zhlD/I0s4/y4uIv9rTxH/y50F/+q9Af/zwQD/9b8A//S/ + AP/zvQD/870A//K9AP/xvAD/8bwA//C7AP/yvQD/9b8A/9ytA/9eThj/IyEi/xkaI/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAAGRkJIAAAAA/wAAAP8AAAD/AAAA/wAAAP8eHSH/IyIl/ykpLP8nLi3/Ijgw/yNN + Ov8qakr/MoZb/zWdaf84rHL/ObN3/zm0eP84s3r/ObF5/zixef85snr/ObN9/zi1f/85tYD/ObaA/zm4 + g/85uIT/ObmF/zm6h/85u4n/ObyJ/zm8i/85vYz/Ob6N/zm/j/85v5H/OcGS/znClP85wpT/OcKV/znD + l/85xJj/OcWZ/znFmf85xpr/OMea/zjHm/84x5z/OMqd/zfLnv80xpv/ML2T/y+wiv8wp4L/MqB8/zab + d/87mXX/Qpdy/0eSbf9GjGj/QYBg/0NpT/9qZkP/jnNE/5WBTP97f07/YYNU/02OYP8/nW3/N6h3/zSv + ff81s37/OLN8/ziyef84sXj/Oa92/zmudP85rXL/Oa1y/zmscf85qm//Oalt/zmqbf85qmv/OKhp/zen + Z/84pmf/OKZm/zilZP84pGP/OKNi/ziiYP84oV7/OKBc/zifW/84oFz/OKBc/zefW/83oVv/N5pZ/zB5 + S/8nUzr/Lz4r/0c/Hf9mThT/k3IN/8udBf/xvAD/+sQA//nCAP/2wAD/870A//G8AP/yvQD/8bwA//O+ + AP/0vwD/26wD/1xNGP8iICL/GRoj/wAAAP8AAAD/AAAA/wAAAP8AAAD/amlsAJaWmAAAAAD8AAAA/wAA + AP8AAAD/AAAA/xoaHv8qKCz/RkJF/1VQUv9FQUT/MTQ1/yUwLf8gNS7/Ikc3/yhfRf8ueVb/M5Rm/zeo + c/85tHv/Obl+/zm3fv85tX7/OLR+/zi1gP84toH/OLeD/zi4hP84uIb/ObmH/zm7iv85u4r/Ob2L/zm+ + jf85vo//Ob+R/znAkv85wJL/OcGT/znDlv85xJf/OcWY/znFmf85xpr/Ocab/znHm/84y5//NMyh/y3E + m/8wuZL/O6mF/0iXdv9Vh2j/Yn9g/2p9Xf9ve1r/c31a/3eCW/97iF7/f41h/3eLX/9ifVj/VnZV/12A + Wf9djGH/TpVo/0Gecf86qHj/Nq9+/zSzgP8ztYH/NLWB/za1f/84s3z/OLF5/zmxef85r3b/Oa91/zms + c/85rXP/Oaxx/zmqb/85qW3/Oapt/zmqbP84p2n/N6Zn/zimZ/84pmb/OKVk/zikY/84o2L/OKJg/zih + Xv84oFz/OJ9b/zigXP84oFz/N6Bb/zefW/83nlv/NZZX/zSPVP8zgk7/MGlC/yxHMv80NyX/WEcY/4dm + Df+0hwb/1KIC/+y2AP/5wgD/+cMA//O+AP/xvAD/874A//S/AP/XqAP/WEgY/yEfIf8ZGCL/AAAA/wAA + AP8AAAD/AAAA/wAAAPx3dnkAoqKkAAAAAOcAAAD/AAAA/wAAAP8AAAD/GBcb/y0rL/9UUlP/dXJx/2tl + Z/9ZUlX/SEFF/zkzOP8tKy7/JC0r/yE3L/8jSjr/KWJJ/y99Wf80mWv/N7B6/zm7gv85vYT/Or6F/zq+ + hv86wIn/OsGJ/zm/iv85vYr/ObyK/zi8iv84vIz/Ob2O/zi+kP84v5H/OMCS/znBk/85wpT/OcSX/znF + mP85xZn/OcWa/znHnP84yJ3/OMmf/zfDm/8/uZL/UqyH/1iWdv9Uf2T/WHhd/2aAYf9sgWH/bYRi/2yH + ZP9pjGf/Z5Rr/2Wdcf9mpXb/Yad3/1Ohdf9Ionf/Qql8/zitgP8vr4L/LraG/zK7iP81vYf/OLuE/zm4 + gv85tX//OLR+/zmyfP85snr/ObF4/zmwd/85r3b/Oax0/zmsc/85rXL/Oatu/zmobP85qm3/Oapt/zio + av83p2j/OKdn/zimZ/84pmP/OKVi/zijYv84omH/OKFf/zigXf84n1v/OKBc/zigXP84oFz/N59b/zig + XP84o13/OaZe/zaiXf8wk1j/KXhP/yFeRf8nUDr/OlEv/1ZcJf9zZxr/iW8R/6OBDP/GnAf/7LgB//O+ + AP/1vwD/874A/9KkBP9RQxr/Hh0i/xgYIP8AAAD/AAAA/wAAAP8AAAD/AAAA53x7fgCvr7EAAAAAywAA + AP8AAAD/AAAA/wAAAP8XFhn/Kiks/1FPUP99e3n/gH18/3t4d/9zcHD/ZWJi/1JNT/8+ODz/LiYs/yQd + JP8gISP/ITIt/ydWQv8ugV3/M55w/zSldf80pnb/NKV2/zWpev82rn3/OLaE/zi9iv85v4z/OcGO/znB + j/85wZH/OcKT/znDlP85w5T/OcKU/zjDlf85xJj/OcSZ/znFmv85xpz/Ocie/zfKn/82zKL/NbKP/02X + eP+Dk3L/i35h/25qU/9Ycln/VpNx/0ygfP9FqoT/QK+I/zqziv81t4z/MruQ/zG/kv8ywZP/M8GS/zPB + kf80wZD/NsGO/zrAjP85vIj/ObqF/zi4hP85t4L/ObaA/zm1gP85tX//ObR+/zmye/85sXn/ObB4/zmu + dv85rXT/Oa1z/zmtcv85q2//Oalt/zmqbf85qm3/OKlr/zeoaf84pmf/OKZn/zimZP84pWP/OKNi/zii + Yf84oV//OKBd/zifW/84oFz/OKBc/zigXP84oFz/OKBc/zifW/83n1v/OKBc/zikXf85pl//OKFc/zKR + V/8ofVH/IWRI/x9DN/8nLCX/T0AZ/5l5Dv/mtAH/874A//fAAP/yvQD/yp8G/0g9HP8bGyP/Fxce/wAA + AP8AAAD/AAAA/wAAAP8AAADLg4KFALe4ugAAAACoAAAA/wAAAP8AAAD/AAAA/xQTFv8nJin/TUpL/398 + ev+Cf3z/fXp4/3x5dv96d3X/d3Rz/3BtbP9hXl//TEpM/zUyNf8iHSL/HBke/x8qKP8kRzv/JlRC/yZU + Qv8mUkH/JlVF/yljTv8vgmP/NKJ5/ze2hv84wI7/OMCO/ze/j/84wJH/OcWW/znFlv84xJb/OMSX/znF + mf85xZn/OMab/zjInf85yp//OMug/zbNov8zqIb/S4Vr/4GPcP+GiGj/a3Vb/09yW/9CiW3/N6SB/zW7 + k/82x5v/OMiZ/zfFl/84w5X/OMGT/zjAkv84vo//OL6O/zi9jP84vIv/ObuJ/zm7h/85uob/OLmE/zm4 + gv85toH/ObWA/zm1f/85tH7/ObJ7/zmxef85sHj/Oa92/zmtdP85rXP/Oa1y/zmrb/85qW3/Oapt/zmq + bf84qWv/N6hp/zimZ/84pmf/OKZk/zilY/84o2L/OKJh/zihX/84oF3/OJ9b/zigXP84oFz/OKBc/zig + XP84oFz/OKBc/zefW/84oFz/N59b/zigXP83oVv/OKVd/zeiXP8yi1P/JFQ+/zY6Jf90WhL/w5kG/+66 + AP/zvQD/+MEA//C7AP+/lgj/PzYd/xkaI/8VFRr/AAAA/wAAAP8AAAD/AAAA/wAAAKiVlZcAycnJAAAA + AIAAAAD/AAAA/wAAAP8AAAD/EA8S/yQjJ/9HRkf/gH18/4aDgP+Cf3v/gH16/316eP98eXj/end2/3Z0 + c/9xb27/ZWRj/1BMTv86NTj/Kycs/yooLP8qKy3/Kist/ygoK/8jIyf/HSAj/x0pKP8hPTb/JllI/ypx + Wf8qcFn/KWpU/ytyWv8xknL/NbCH/zjElv85y53/Ocea/zjFmf84x5v/OMqf/znOo/840qb/OM2j/zq5 + k/8/n3//Rotv/013Yf9QZlP/XGJN/3BuVf99iGf/U5Z1/zeviv83yJv/N8OV/znClP85wZP/OcCR/zm9 + jv85vY3/ObyL/zm7iv84uoj/OLqH/zi5hf84uIT/OLeC/zi2gP84tX//OLR+/zmzff84sXr/OLB5/ziw + d/85r3X/Oa1z/zmtcv85rHH/Oapv/zmpbf85qWz/Oals/zioav83p2j/OKVn/zilZ/84pWX/OKRk/zii + Yv84oWD/OKBf/zifXP84nlr/OJ9b/zifW/84n1v/OJ9b/zifW/84n1v/N59c/zefW/83n1v/N59b/zef + W/84pF3/NpdX/y1tR/8fNC//VEMZ/6uBCP/wuwD/+8QA//S/AP/4wQD/7bgA/7GLCf83MB3/GBkj/xER + Ff8AAAD/AAAA/wAAAP8AAAD/AAAAgKOjpQDW1tYAAAAAVwAAAP8AAAD/AAAA/wAAAP8LCw3/IiEl/0FA + Qv+AfXz/ioeF/4eEgf+EgX7/gX58/398e/9+e3n/fXp4/3x5eP95d3X/cG1t/2NgX/9XVFX/VU5Q/1NM + Tv9SS07/T0dL/0Y/Q/84MTb/LSYr/yUhJv8jJyn/JjQy/yYzMv8jLSz/Hy0r/yI9Nv8mV0n/LHpi/zOl + gv85yp3/OtCi/znSo/850aT/OMyh/zW9lv8woIH/WqOB/4Cog/9sjXD/QXhi/z57ZP9Phmr/XpFw/2ul + ff9PrYb/Or6T/zjNnv84x5j/OcOV/zjBk/84wJL/OcCQ/znDkf85xJH/OcOQ/znDjv85wo3/OsKL/zrB + iv85v4j/Ob6G/zm9hP85u4L/ObqB/zm3fv85tnz/ObR6/zmyd/84r3X/Oa5z/zmtcv85rHH/Oaxv/zmr + bf85q23/N6lr/zaoaf83pmb/N6Zm/zemZP83pWP/N6Nh/zijYf84omD/OKFd/zigW/84oVz/OKFc/zih + XP83olz/OKJc/ziiXP84oVz/OKJc/zijXf84o13/OKNd/zimXv84n1v/M41U/y1xSP9Dazj/a3Il/52F + Ef/RowL/7bcA//zCAP/oswD/n30J/y4qH/8XGCP/DQwO/wAAAP8AAAD/AAAA/wAAAP8AAABXuLi5AOPj + 5AAAAAAwAAAA/wAAAP8AAAD/AAAA/wYFBv8fHyL/OTg7/357ev+Oi4n/jImH/4iFg/+FgoD/hIF//4J/ + fP9/fHr/fXp4/315eP98eXj/e3h2/3h2dP92c3H/c3Fv/3Jvbv9vbWv/aGZl/11bW/9PTU7/Qz9C/zs1 + Of89NDn/PTM4/zYtM/8sIyn/JRsh/yAaIP8hLi3/KGFS/zKkg/80to//M7ON/zGlhP8ukXb/KXRg/yNY + TP9UcFv/kJFy/5SMb/9XjHD/PKiF/zq/l/87wZf/PbuS/zirh/81rIf/NruQ/zjElv85xZb/OMaW/zjF + lf84wZH/N7yM/ze3if82tIb/NrSE/zaygv83soD/N7B//zavff83r33/N698/zeve/82r3r/OK95/zix + ef85snn/OLJ4/ziydv85snX/ObB0/ziucf85rG//Oa1u/zmub/85rW3/OKxr/zmraf85q2n/Oatn/zmq + Zv85p2T/OKdj/zilYv84pF//OKJc/ziiXf84ol3/OKJd/zejXf84ol3/OKJd/zigW/83oFv/N59b/zWd + Wv80m1n/MZpX/zGZV/8wmlf/L5ZW/yWAT/8gXUD/N0ko/35lEf/RpBP//Mka/+K2HP+LcRr/JyUh/xYX + Iv8GBgb/AAAA/wAAAP8AAAD/AAAA/wAAADDOzs8A3NvcAAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/xwc + IP8yMDT/d3V1/5KPjP+Sj43/jYqI/4qHhf+IhYP/hoOB/4SBf/+Cf33/gX57/357ef98eXj/end2/3h1 + dP91c3H/c3Fv/3Jvbv9wbWz/b21r/2xqaf9pZmX/ZGJh/2NhYf9hXl7/WllZ/1BPT/9DQkP/Mi0x/yMa + If8eJyj/JlNI/ylsWf8oYlP/J0xE/yY1NP8hHyP/HB0i/yE6Nv9GY1P/gYNq/26dff9EwZj/L9Om/zPB + mP8tlHf/J2JS/yhcTf8tfWT/Mp57/zWshf82tYv/NrWK/zSmf/8wkG//LoFl/y16X/8teF3/LXZb/yx1 + Wf8sc1f/LHNX/y12Wf8telr/LXxb/y5/XP8whV//MYxj/zOTZ/80m2n/NaBs/zWjbP81oGv/NJhl/zOT + Yf8zmWP/NJtk/zScZP80nGP/NJ1i/zWeYf81nmD/NJxf/zSZXf8zl1z/M5Ra/zKSV/8zkFT/Mo1T/zKM + U/8xjFL/MotT/zKJUv8xiFL/MYZQ/zCET/8vgU7/Ln1L/y15Sv8sd0n/LHRH/yxwRf8ubkb/L3RJ/zFs + Sv81VkX/Tkk8/7qeT//412P/3MBe/3NlPP8jISL/Fxgf/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEODg + 4ACIh4oAe3p9AAAAAP8AAAD/AAAA/wAAAP8AAAD/Ghgd/yspLf9ta2z/k5CO/5iVk/+Sj43/kI2L/46L + if+MiYf/iYaE/4eEgv+FgoD/g4B+/4F+e/9/fHn/fXp4/3t4dv94dXT/dnNy/3Nwb/9xb23/b21r/25r + av9saWj/aWdm/2ZkY/9kYmH/YV9f/15cW/9TUlL/Ojc5/yUjJ/8jIib/KSot/zIyNP8/PD7/RkJF/zs4 + O/8lIyn/ICAk/z89N/95cFr/c3xk/0KHbf8khmz/LWxa/y0/PP8kJCf/Hh0h/x0lJ/8gNjL/I0U9/yVU + Rv8lVUf/JEQ7/yMyL/8iKSr/Iycp/yMmJ/8iJij/IiYo/yElJv8gJSb/ICUn/yAmJ/8fJyb/Hygn/yAr + Kf8hMS3/Izgx/yVANf8nSDr/J08+/yhMPP8kQDX/Hjkw/xs9Mf8bPzL/HEE0/x1ENP8dRjX/Hkc1/x5H + Nf8dRjT/HEMy/xxBMf8bPi//Gzwt/xs5LP8aNir/GjUq/xkzKf8ZMyn/GjIo/xovKP8eMSr/IjMs/yc2 + Lv8wPDP/Pkc7/05TRf9eYU7/bWxX/3dzXf+CfWT/mZJz/7aqhv/LuZL/69Si//3nrv/SvpL/W1NI/x8f + Iv8XFxz/AAAA/wAAAP8AAAD/AAAA/wAAAP/y8vIA7u7uAJubnQCgoKIAAAAAxQAAAP8AAAD/AAAA/wAA + AP8TExb/JSQo/2BeX/+TkI7/n5ya/5aTkf+UkY//ko+N/5CNi/+Oi4n/jImH/4qHhf+IhYP/hYKA/4OA + fv+Bfnz/f3x6/357eP97eHb/eHV0/3Zzcv90cXD/cm9u/3BtbP9ta2r/a2hn/2lnZv9nZWT/ZmNj/2Jg + X/9VU1P/SUZH/0U/Qv9IQUT/T0hK/1RPUP9XU1P/VlNS/1xWT/9oXlL/c2dX/3BnV/9GQjv/LDk2/y9D + QP9CS0n/S0ZH/0M9P/85Mjb/MCsv/ysoK/8oKCr/LC8x/zM3OP87Ojv/Pjk7/z85O/9AOTv/QDk8/z85 + Pf9AOj3/Pjk8/z04PP8+ODz/Pzo8/z44Ov85Mzf/My0x/ygkKP8hHyP/IB8i/yEhJP8eIST/GBsg/xkZ + H/8rKCn/SEM7/0dEPP9EQTv/QUA4/z8+N/9APzf/QkE5/0VDOv9HRTz/S0g9/09KQP9TTUH/Vk5D/1hR + Rf9ZU0b/XVVI/2FZSv9nX07/cGdV/3xxW/+Ie2L/loZq/6aTdP+0oX7/wa6H/8u3jv/Sv5P/18KW/9vG + mf/lz5//8tum//ngq//947D/++Ox/8Cui/9CPjv/Hh0h/xQTF/8AAAD/AAAA/wAAAP8AAAD/AAAAxZST + lQDy8vIAzs7PANXV1gAAAAB8AAAA/wAAAP8AAAD/AAAA/wwMDv8hHyT/TkxO/5COjP+koZ//m5iW/5mW + lP+XlJL/lZKQ/5OQjv+Rjoz/j4yK/42KiP+Kh4X/iIWD/4aDgf+EgX7/g4B8/4B9e/99enn/e3h3/3l2 + df92c3L/dHFw/3Jwbv9wbWz/bmtq/2tpaP9pZmb/Z2Vk/2VjYv9iYGD/YF5d/15dXP9eXFv/W1pZ/2Ff + Wv95cWX/e3Rl/3pzZf9ybWH/XVlT/zo2OP84LzT/Rz1B/1ZOUP9cWVj/WVhX/1NSUf9NSkv/R0NE/0M9 + QP9GP0L/TUZI/1RPT/9WU1P/V1VU/1hWVP9XVlT/WFZV/1hXVv9ZV1f/WFdW/1VTU/9QTk3/SEZG/z89 + P/82Mzb/JiQp/xsZH/8WExr/FBAZ/xMPGf8bFh7/RT03/4BzXP+pmXb/qpl2/6eUc/+kkXD/oo5v/6KO + b/+kkHD/p5Ry/6qXdf+tmnf/sZ15/7ShfP+4pH3/uqeA/7upgf++rIT/wrCG/8i1if/QvY//2MWU/+LM + mf/s057/9tyk//ziqP//56z//+mu///qrv//6a7//+qu///nrP/95ar//eKo//7lqv/x2KH/p5Z0/y4r + K/8dGyD/DQ0P/wAAAP8AAAD/AAAA/wAAAP8AAAB8bm1wAPHx8QDs7OwA1dXWAAAAADcAAAD/AAAA/wAA + AP8AAAD/AwME/x4cIf87Oj3/iIaF/6ekov+hnpz/npuZ/52amP+bmJb/mJWT/5aTkf+UkY//kY6M/5CN + i/+Oi4n/i4iH/4mGhP+HhIL/hYKA/4OAfv+Bfnv/f3x5/3x5d/96d3X/d3Rz/3Vycf9zcG//cW5t/25s + a/9samn/amhn/2lnZv9nZWP/Y2Fg/15cXP9aWFj/ZmJa/4yBbP98dWb/ZmJc/1hXVv9TUlL/U1JR/1lW + Vv9dWlr/XFpZ/1pZV/9bWlj/XVtZ/11bWv9dW1r/XVta/11bWv9eXFr/XVtZ/1xaWf9bWVj/XFpZ/1xa + Wf9dW1r/XVta/1xaWf9WVFP/SUhI/zw6PP8vLjH/JiYq/yEgJv8dHSL/HR0h/yEgI/8nJSf/Mi4u/1VO + Qv+hkW//59Ob//7rq///6qr//+ip///nqP//56n//+ep///nqP//6Kn//+mq///pqv//6an//+mq///q + qv//6qr//+qq///qq///6qr//+qq//7pqv/+6Kn//uap//7kp//94qX/++Gk//rfo//53qL/+N6i//jd + of/43qL/+N2h//fcof/43aL//uao/97Klf+Ie2D/Hx4i/xsbIf8EBAT/AAAA/wAAAP8AAAD/AAAA/wAA + ADeXl5gAAAAAAOzs7ABwb3EAAAAACgAAAP8AAAD/AAAA/wAAAP8AAAD/HRwf/ywrLv97eXj/pqKg/6il + o/+joJ7/oZ6c/5+cmv+cmZf/mpeV/5iVk/+VkpD/lJGP/5KPjf+QjYv/jYqI/4uIhv+JhoT/h4SC/4WC + f/+DgH3/gH17/357ef99enf/end2/3h1dP91cnH/c3Bv/3Fubf9vbGv/bWpp/2toZ/9oZWT/ZmNi/2Be + XP9hXVr/d3Bj/4d+bP+QhnL/h35s/2lkXP9bWVf/WVdX/1tZWP9bWVj/WlhX/1tZWP9bWVj/W1lY/1tZ + WP9bWVj/W1lY/1tZWP9bWVj/W1lY/1pYV/9bWVj/XFpZ/1xaWv9bWVj/Tk1N/zg3Of8iICX/GRge/xUU + G/8UFBv/GRkf/ywqKv9MRjz/bWNO/41/Yf+unHT/1r+K//HZm//74qH/+t6f//nenv/53Z//+t6f//rf + n//63p//+d6f//rdn//63p//+d6f//nen//43p7/+d2e//nenv/53p//+d6e//nenv/53p7/+d6e//nd + nv/53Z7/+d2e//ndnv/53Z3/+d2e//ndnv/43Z7/+N2e//jdn//43J7/+Nye//ndn//+5qT/x7WE/2de + TP8XGB7/Gxof/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAACry8vQAAAAAA7OzsAIeGiACPjpEAAAAA1gAA + AP8AAAD/AAAA/wAAAP8UFBb/Hx8i/2hmZv+gnJv/sK2r/6ilo/+loqD/o6Ce/6GenP+fnJr/nZqY/5qX + lf+ZlpT/l5SS/5WSkP+TkI7/kI2L/46Lif+LiIb/ioeF/4iFg/+FgoD/g4B+/4J/fP9/fHr/fnt4/3t4 + dv95dnT/dnNy/3RxcP9yb27/cG1s/25rav9nZGL/bGdh/3x0Z/+Hf3D/k4l1/56Sef+UiXP/b2hf/1tY + V/9YVlb/WlhX/1pYV/9aWFf/WlhX/1pYV/9aWFf/WlhX/1pYV/9aWFf/WlhX/1pYV/9cWlj/XVxa/1xa + Wf9WVFT/S0pL/z48Pv8rKy//Ghsh/xUVHP8nJSb/Qz42/2BXRf99cVX/p5Zt/8i0gf/bx4z/5dCT/+7X + l//53Zv/+96c//ndm//425r/+Nua//jbmv/425r/+Nua//jbmv/425r/+Nua//jbmv/425r/+Nua//fb + mv/425r/+Nua//jbmv/425r/+NuZ//jbmv/425r/+Nua//jbmv/32pn/+Nua//rdmv/53Jr/99qZ//jb + mv/425r/+Nua//famf/325r/+dyb//7hnv+tm3H/RkA4/xgYHv8UFBb/AAAA/wAAAP8AAAD/AAAA/wAA + ANbp6eoA3t7fAAAAAAAAAAAAtbS2AL+9wAAAAAB2AAAA/wAAAP8AAAD/AAAA/wkJCv8aGR3/UE5R/5OQ + kP+3tLL/raqo/6qnpf+opaP/paKg/6Ognv+in53/oJ2b/56bmf+cmZf/mZaU/5iVk/+VkpD/k5CO/5CN + i/+Oi4r/jImI/4qHhf+IhYP/h4SB/4SBfv+DgHz/gH17/357eP98eXb/eXZ1/3d0c/91cXH/c3Bv/2to + Z/94cmn/jYNx/4J7b/9+d23/fnds/3lzaP9mY17/XVta/1pYWP9bWVj/WlhX/1pYV/9aWFj/W1lY/1tZ + WP9bWVj/WlhX/1pYV/9bWVj/XFpZ/1hWVf9PTk3/RURE/zo4Ov8sKy//Ghsi/xkYH/8zLyz/ZlxI/5CA + X/+vnXH/xbJ+/9jCh//v1ZP//eCa///knf/+45z//eGb//vdmP/42pb/99mW//falv/32pb/99qW//fa + lv/32pb/99qW//falv/32pb/99qW//falv/32pb/+NqW//falv/32pb/99qW//falv/32pb/99qW//fa + lv/42pb/99qW//bZlv/32Zb/9tmW//jblv/425f/99qW//fZlv/42pb/9tmV//jal//73Jj/8NOS/41+ + Xf8rKCn/Gxog/wkJCv8AAAD/AAAA/wAAAP8AAAD/AAAAdv7+/wD19fYAAAAAAAAAAADc29wA6OfoAAAA + ACUAAAD/AAAA/wAAAP8AAAD/AAAA/xoZHf84Njr/gX5//7m2tP+0sa//sK2r/62qqP+qp6X/qKWj/6ek + ov+loqD/o6Ce/6GenP+em5n/nJmX/5qXlf+YlZP/lZKQ/5OQjv+Rjoz/j4yK/42KiP+LiIb/iYaD/4eE + gf+EgX//gn98/4F+ev9+e3n/fHl4/3p2df93dHT/c3Bv/3x3cf+IgHT/dG9q/2hlZP9iYGL/YWBg/2Fg + YP9iYF//YF1d/11bWv9bWVn/WlhX/1tZV/9aWFf/WlhX/1pYV/9aWFf/W1lY/1lXVv9SUE//Q0FD/zEw + M/8iIif/Ghog/xoZHv8hHyL/RD42/4V4WP/OuYD/8tWS//7hmv//5Zv//+Sa//3fl//62pT/99iT//fY + kv/32JP/99mT//fZk//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//jZ + k//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//fZk//42ZP/99mT//TWkv/awIT/58uL//ja + lP/42pT/99iT//fZk//22JL/+duU//vel//SuoH/amBK/xoZH/8dHCL/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAAl5eXlAP7+/gAAAAAAAAAAAPT09ADz8/QAvb2+AAAAAPcAAAD/AAAA/wAAAP8AAAD/EhET0SMi + Jv9pZmj/sK2t/7q3tf+2s7H/s7Cu/7Ctq/+uq6n/rKmn/6mmpP+npKL/paKg/6Shn/+hnpz/n5ya/52a + mP+al5X/mZaU/5eUkv+UkY//ko+N/5CNi/+Nioj/i4iG/4mGhP+HhIL/hYKA/4OAfv+Cf3z/f3x5/316 + eP97eHb/eHV0/3Zzcf90cXD/cW9t/29sa/9tamn/amhn/2hmZf9mY2P/Y2Bg/19dXf9eXFv/XFpY/1tZ + V/9aWFf/W1lY/1xaWf9aWFf/TUtM/zQzNf8hICX/GBge/xcXHf8gICP/PDcx/25iSv+wnG3/6M+L//rg + lf/73JP/+NmQ//fYkP/42ZD/+NmQ//jYkP/42JD/99iQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jY + kP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jY + kP/42JD/99eQ//jYkP/62pD/8dSM/6GOZP+6o3H/7dCL//rbkf/32ZD/99eP//fYj//625H/+d2S/6mX + av9JQjj/ExQc/xYVGP8AAAD/AAAA/wAAAP8AAAD/AAAA97CvsQCqqasA/v7+AAAAAAAAAAAA9/f3AJua + nACWlZcAAAAAhgAAAP8AAAD/AAAA/wAAAP8AAADCGRgc/k5NT/+amJn/wL69/7u5uP+3tLP/tLGx/7Kv + rv+xrqz/r6yq/6ypp/+ppqT/qKWj/6WioP+joJ7/oZ6c/5+cmv+dmpj/m5iW/5iVk/+Wk5H/lJGP/5GO + jP+QjYv/jouJ/4uIh/+JhoX/h4SC/4aDgP+DgH3/gX58/398ev99enj/end1/3h1dP92c3H/dHFw/3Fv + bf9ubGv/bWpp/2toZ/9oZmT/ZWNi/2NhYP9gXl3/Xlxb/11bWv9dW1r/WFZW/0ZERf8sKy//Fhcf/xcX + Hf8zMSv/XlVB/419WP/AqHD/38aC//HVi//62o3/+NmN//jXjP/414z/99eM//fXjP/314z/99eM//jX + jP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jX + jP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/31oz/+NeM//zbjv/y04n/eWxO/3xu + UP/ErXT/++CQ//fZjP/21ov/+NeM//vbjf/v0Yj/fG5R/y0qKv8WFx7/CAgJ/wAAAP8AAAD/AAAA/wAA + AP8AAACG39/gANPT1AD+/v4AAAAAAAAAAAD29vYAq6qsALa2twAAAAAlAAAA/wAAAP8AAAD/AAAA/wAA + AP8UExfENTQ3/3l4ef/Bv77/wb69/7u5uP+5t7b/t7W0/7azsv+0sLD/sq+t/6+sqv+uq6j/q6im/6il + o/+mo6H/o6Ce/6Kfnf+gnZv/npuZ/5yZl/+al5X/l5SS/5WSkP+TkI7/kY6M/4+Miv+Nioj/i4iF/4iF + g/+Gg4H/hIF//4J/fP+AfXr/fnt4/3t4dv95dnX/d3Rz/3RxcP9yb27/cG1s/25rav9raWj/aWdm/2Zk + Y/9mZGT/ZmRk/11bWv8/P0D/ISEp/xoaIf85NC3/cmVI/6aTYf/Js3T/4Md///bWh//93Yv/+9yK//nY + iP/21of/9taH//fXiP/314j/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fX + iP/314j/99eI//fXiP/314j/99aI//fWiP/31oj/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fX + iP/314j/99eI//bWh//314j//NqK//HQhf84MST/RD40/4h5VP/y1Yf/+NmJ//fWiP/62or/99iJ/8+0 + df9TSjv/Gxsh/xoZH/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAACWamZwA4+PkAAAAAAAAAAAAAAAAAAAA + AADg4OAA6urpAM7OzgAAAADiAAAA/wAAAP8AAAD/AAAA/wcHCbEhICX/VlVW/7Oxsf/Fw8L/w8C//767 + uv+8urn/uri3/7i1tP+2s7L/tLGw/7Kvrf+wrav/raqo/6uopv+opaP/p6Si/6WioP+joJ7/oZ6c/5+c + mv+cmZf/mpeV/5iVk/+VkpD/k5CO/5GOjP+QjYv/jYqI/4uIhv+JhoT/h4SB/4WCf/+DgH3/gH17/357 + ef98eXf/eXZ1/3d0c/91cnH/c3Bv/3Fubf9wbGv/bmtq/2dlZP9bWVr/SEZI/yEiKP8dHCD/SEA0/5WD + V//UunT/99iF///hi//+34n/+9qG//jWhP/21IP/9tWE//fVhP/31YT/9tWE//bVhP/21YT/9tWE//bV + hP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YP/9tWE//fWhP/41oT/+NeE//fW + hP/31oT/9tWD//bVhP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YT/9dSD//fWhP/72IX/2bx1/xQR + Df8iISP/T0c4/8mvcP/214T/+tiF//3bh//sz4H/moda/zQwK/8VFh3/EBAS/wAAAP8AAAD/AAAA/wAA + AP8AAADif36AAHp5fADf3+AAAAAAAAAAAAAAAAAAAAAAAPr6+gDx8fEA39/fAAAAAGEAAAD/AAAA/wAA + AP8AAAD/AAAA/xgXHP84Nzr/kpGR/8bEw//Mycj/w8C//8G+vf++vLv/vLq4/7q3t/+4tbX/trOz/7Sx + r/+yr63/sK2r/62qqP+rqKb/qaak/6ekov+loqD/o6Ce/6Cdm/+em5n/nJmX/5mWlP+XlJL/lZKQ/5SR + j/+Sj4z/j4yK/42KiP+LiIb/iYaE/4eEgv+EgX//g4B9/4F+e/9+e3n/fHl3/3p3df94dXT/dnNy/3Vy + cf9vbGv/VVRU/zU1Of8lJSn/JCMk/1hPOv+rlWD/89KA//zchP/62IL/99OA//bTf//303//99OA//fT + gP/304D/99OA//fTgP/204D/9tOA//fTgP/304D/99OA//fTgP/304D/99OA//fTgP/304D/9tOA//bT + gP/204D/99SA//fUgP/41YH/+NWA//nVgf/51oH/+NWA//nWgP/41YD/9tOA//bTgP/204D/9tOA//fT + gP/304D/99OA//fTgP/20n//+NWA//rWgf+ullz/LCcc/xkZH/8oJib/hHRO/+jKev/82oL//NmC/9e6 + dP9eUz7/IiEk/xgYH/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAGG/v8AAubm6AAAAAAAAAAAAAAAAAAAA + AAAAAAAA/Pz8AK6urwCwsLEAAAAACgAAAP8AAAD/AAAA/wAAAP8AAAD/EA8T/yYlKf9hYWP/vbu6/9LP + zv/Jx8b/xsPC/8TBwP/Cvr3/v728/727uv+8ubj/uba1/7e0s/+2srH/s7Cu/7GurP+vrKr/rKmn/6qn + pf+opaP/paKg/6Shn/+in53/n5ya/52amP+bmJb/mZaU/5eUkv+VkpD/k5CO/5GOjP+PjIr/jImH/4mG + hP+IhYP/hoOA/4OAff+Bfnv/gHx6/398e/9/fHr/d3Rz/1lXV/8wLzP/ExMc/x8eIv94aUf/yrBq//TV + ff/51n7/+NN9//bSe//303z/9tJ8//bTfP/203z/9tN8//bTfP/203z/9tN8//fTfP/303z/9tN8//bT + fP/203z/9tN8//fTfP/303z/99N8//bTfP/20nv/99N8//fTfP/6137//Nl///vZf//20nz/8M15/+7L + eP/xz3r/+dZ9//zYf//51n7/99N8//fTfP/20nv/9tN8//fTfP/303z/99N8//bSe//51X3/+dZ9/3po + P/88NSf/Gxsg/xcXH/9EPTH/wKVm//bYf//w03v/rJRd/zAtKf8bGiD/ExIV/gAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAACuzs7QHo6OkAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sA09PUANzc3QDX19gAAAAAkQAA + AP8AAAD/AAAA/wAAAP8BAQH/HRwg/zc3Ov+dnJv/09HQ/93c2v/U0tH/zszL/8nGxf/EwsH/wb++/8C9 + vP++u7r/vLm4/7q3tv+3tbP/trOy/7Sxr/+xrqz/r6yq/62qqP+qp6T/qKWj/6ajof+koZ//op+d/6Cd + m/+em5n/m5iW/5mWlP+XlJL/lZKQ/5OQjv+Rjoz/jouJ/4yJh/+Kh4T/iIWD/4eEgv+JhoP/gn99/2xq + aP9MSkz/LCwx/yIgJP82MSr/bV9B/8qvZ//31Xn/+9h7//fTef/20Xf/9tF4//fSeP/30nj/99J4//fS + eP/20nj/9dF3//bReP/20nj/99J5//fSeP/20nj/9tF3//XReP/20Xj/99J4//fSeP/30nj/9tF3//XR + eP/403n//dh7/+zJdP/Iq2f/oIxX/4h2Tf95akj/cWJC/3RkQP+MeEr/v6Ri/+zKdf//2Xz/99J4//XR + eP/20Xf/99J4//fSeP/30nj/9tF3//rWef/403j/QDYg/0M7Lv8bGyH/FBYe/yUjJP99bEj/4MZz/9W8 + bf9vYEL/HBwh/xoaIP8BAQH4AAAA/wAAAP8AAAD/AAAA/wAAAJHz8/QArKytAPPz9AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADw8PEAwsLEAPDw8QAAAAAbAAAA/wAAAP8AAAD/AAAA/wAAAP8TEhX/ISAk/15d + Xv+VlJT/tbS1/8HAv//My8r/0dDP/9LQz//Pzcz/yMbF/8PAv//Avbz/vry7/7u5uP+6uLf/uLa1/7az + sv+0sa//sq+t/7Guq/+yr6z/sa6r/6qnpf+npKL/pKGf/6Kfnf+fnJr/npuZ/5uYlv+ZlpT/l5SS/5WS + kP+UkY//lJGP/5OQjv+Rjoz/jYqI/3p3dv9cWlv/PDs//xwdJv8hICL/V002/56JU//IrGT/89B1//zX + d//10XT/9dB0//XQdP/20XT/9tF0//bRdP/20XT/9tF0//jTdf/61Xb//Nh3//7Yd///2Hf//th3//7Z + eP/+2Xj/+9d3//nTdf/20XT/9tB0//XQdP/10HP/+NJ1//nUdv/XuGn/mINR/2BUPP9BOzD/MCwo/yEf + IP8jISP/Ly0s/zw2MP9VSjT/loFO/9y7av/813f/+NJ1//XQc//10HT/9tF0//bQdP/10HP/+9V2//TQ + c/8LCgb/QDou/xkZIP8ZGR//HBwh/0E6L/+jkFf/mIdS/zs2Lf8aGiD/ExMW/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAG+/v8ACxsbMA7+/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzs7QCbmpwA7OztAKSj + pQAAAACoAAAA/wAAAP8AAAD/AAAA/wICAv8dHCD/JCMn/z08QP9dXGD/enp9/5mZmv+vr6//v769/8fG + xf/Lysn/y8jH/8fEw//DwcD/wL69/7+9vP+9u7r/u7i3/7m2tf+2tLP/tbKx/6+sqv+qqKX/raqp/6uo + p/+ppqT/p6Si/6Shn/+koZ//op+d/5+cmv+em5n/nZqY/5qXlf+XlJL/lZKQ/5OQjv+Bf33/UE9R/yQk + Kv8VFh3/Hx4f/1hNNv+zmln/+9d0//3Ydf/40nL/9c9x//XPcP/2z3H/9tBx//XQcf/10HD/9c9w//bQ + cf/40nH/+dNx//XQcP/pyWz/3Lpk/9KxYP/QsWD/2Llk/+PEav/wzW7/+NFx//nTcf/503L/99Fx//fT + cf/51XL/6cds/4p3Sv81MSr/DhAb/xARG/8QERj/Fxgg/z4/Rf9mZmv/Xl9m/y0vOf87Ni7/iXVG/+LB + af/403H/+NNy//bRcP/30XH/99Bx//bRcP/813P/6cdr/woJBf83Miv/FhYe/x0cIf8eHSH/ISAj/1NK + Nv9ORTP/ICAj/x0dIv8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAKjX19gAAAAAAObm5wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/e3wAAAAAA4+LjAAAAACAAAAD/AAAA/wAAAP8AAAD/AAAA/xIR + FP8cGx//GBcc/xcWHP8aGiH/Kiow/0VESP9iYmP/hoWF/7KxsP/Ny8r/0M7N/8rHxv/GxMP/xsLB/8PB + wP+/vr3/vbu6/727uv+tq6r/h4WF/3p4d/+npKP/sa6s/7Ctq/+tqqj/qqel/6qnpf+opaP/p6Si/6aj + of+mo6D/m5iV/4aDgf95dnX/fHp4/1VUVv8kJCz/ERIZ/zMuKP95aUH/yKpd//PObP/6027/99Bu//bP + bf/1z23/9c9t//bPbf/2z23/9c9t//XPbP/2z23/99Bt//bQbv/ow2j/xahc/5eBSv9rXTv/Ukgx/01D + L/9cUTL/gW9A/7GWU//buWL/885r//fVbv/61W//+9px/+3PbP+3nFf/Pjct/xgYH/8ZGR//Ghgc/xcW + Gv9PTlL/qamr+e7u7QDk5OQAoKGj8klLUvg2Mir/i3dE/+bGaP/613D/+tNu//nSbf/40m7/+dJt//3a + cf/HrFv/LygY/y4qKP8WFx//Hx4i/x4dIv8eHiL/HR0i/x4dIv8eHiL/EhEU/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAIJGRkwAAAAAA5OTlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6ejpAAAA + AACgoKIAlZSWAAAAAKIAAAD/AAAA/wAAAP8AAAD/AAAA/xwcH/8dHSD/Lyol/0E5Kf8lISL/FhUf/xUW + Iv8mJy7/T09S/5ybnP/Kycj/1NPS/83Lyf/Fw8H/xsTD/8nHxv/Jx8X/wb69/4B/gP9SUVP/W1lb/5WT + kv+0sbD/uba1/7azsv+zsK7/pqOh/52amP+XlZT/k5GP/4WEgv9iYWL/Pz1B/y4tMf8yMTX/IiIp/zQv + Kf9qWzf/r5RQ/929Yf/0zmj/+dBp//bOaP/2zWj/9c5o//XOaP/2zmj/9s5o//bOaP/1zWf/9s5o//jP + af/0y2j/tppU/3BfO/9COi3/Qz86/3h2d/+Ih4n/d3d6/1taXP9PTUr/Tkg+/15SOP+AbDv/p45H/8io + U//PsVr/qZNQ/1lPNv8gHiH/EREY/xIRFf8gHyP/X19i/7m4uv/u7u6p+/v8Ovn59zq+v8E6rK2wpXx8 + f/9MRj3/hXE+/8eoUf/sxmD/8cli//DJZP/txmT/9dFp/5J+Qf9HPSX/JyUl/xYXH/8gHyP/Hx4i/x4d + Iv8cHCL/HRwi/x4dIP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKLb29sAzc3OAAAAAADk5OUAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADl5OUAAAAAAL29vgDLy8wAAAAAGAAAAP8AAAD/AAAA/wAA + AP8AAAD/DAwN/xsbIv89Nyz/e2o9/4d1P/9hUjL/NC0j/xoZG/8YGSH/RkZM/3l4ef+sq6r/1NPR/7Gv + r/+PjY7/nJqa/8XCwf+3tLT/h4aH/4qKjP+fnqD/jo2O/7e0tP+/vLz/oJ2d/3Nxcf9wbm7/enh4/25t + bf9QT1D/QD9C/ycnL/8YGCH/DxAa/xARHP8yLSX/hnM//82wV//xymH//NRm//rQZP/1zWL/9Mxi//XM + Yv/1zGL/9cxi//XMY//1zGL/9cxi//TLYv/3zWP/+M5j/+e/Xv95aD7/JCAe/yMjLf9ub3b2o6Sqka2u + snaQkpt2q6yzdpyepXaTlJvViYiK/3x3b/95cFv/dmlJ/2dZOf9FPCn/Gxka/xUVGv8kJCj/SEhL/3p6 + e/KkpKWGzs7Odv///z36+vsA8PDvAMTFxwDe3uA7y8vPoJGRlv9uaF3/fW9L/5aBTv+Wf0n/h3I//3pl + N/+AbDr/Ni4a/zw1Jv8iISP/Ghoh/yAfI/8gHyP/Hx4j/x8eI/8fHiP/DAwN/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAGL+/wADo6OgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA8PDwAOHh4QDFxMUAAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/EhMZ/zAsJ/95aDz/z7FU/8ar + Uf+chkX/bl43/zw1Jv8ZGBv/ISEp/2JhZf+2tbT/lJOT/2RjZf9sa23/mZeX/4mIiP+enp//2NjZ/+fn + 6P+Xl5n/oqCh/5mWl/93dXb/W1pc/3JxdP9sa27/Q0JH/xQVHP8SEhn/Ih8e/0A4Kf9ORS7/SEAs/4Fu + PP/WtVX//9pi//vSX//1zF3/9Mpc//TLXP/1y1z/9Mtc//TLXP/0y1z/9Mtd//TLXP/1y1z/9cxd//rP + Xv/60F7/4btW/1xOLv8TEhj/RkZO/8XFxvLW1dUuzMvMAIuNlADp6ewA6urtAO3t8HHY2N6zwsPJs56g + qLaBgYjvYGFo/0hJUf9EREr/VlVY/25ucNOcnJ2zxMTEmMXFxQy9vb0AAAAAAPr6+wAAAAAAw8TGAOfn + 6QDx8fIv3t7hr3t9hrOKio7miIWE/397dv9kYV7/R0VG/zczNf8JCAj/IiIi/x8dIv8eHSL/IB8j/yAf + I/8gHyP/IB8j/xkYG/8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2Nr+4t7gEtbS2AAAAAADg4OAA4uLiAODg + 4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs7OwAsbCyALa1twAAAAAGAAAA/AAA + AP8AAAD/AAAA/wAAAP8CAgL/GBgg/zEsJv+jiUT/5shX//vXW//mvlT/qY5E/0tCK/8XFhn/KSgv/2Zm + aP9ubm//c3J1/3Rzdv9oZ2n/T05Q/6ampv/s7O3/7u7u/7Gxsv93dXb/VFJU/2dmaP+mpab/wMDC/3Z1 + ef8vLjP/HRwd/zcxJ/9uXjT/rJJE/8ytTf/Epkv/37pS//LKV//2zVj/9MtX//TLVv/1y1f/9MpX//XL + V//1y1f/9ctX//TKV//0y1b/9ctX//bMV//3zVj/+dBY//jPV//lvlH/ZFUs/zMxMv93d3346ejq1/n5 + +S719fUAAAAAAOTk5wDk5OcA5ubpA9LS1wT19fYE9PT1DPT09arg4OHkxMTF5Li4ueTMzM3k0tLTX9PT + 1AS+vr4EwsLCAL+/vwAAAAAAAAAAAAAAAAAAAAAA5uboAO7u7wHY2NsEe3yDBPX2+Ejx8vUA4uPoAMfI + zACpqq1yfX2CAAAAAP8eHiP/HBsg/x4dIf8gHyP/IB8j/yAfI/8gHyP/AgIC/wAAAP8AAAD/AAAA/wAA + AP8BAQH/qaqqAODg4ADv7+9w9vb2GuDg4Bbi4uIC4ODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOzs7ADs7OwA8vLyAOjo6AAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8LCw3/HB0h/0lA + LP+1mUT/981T//zSVP/vx1H/vp9E/35rNP9EOyn/Hx8m/yIiKP9vbnH/uLe4/7y8vf9xcXL/vb29//f3 + 9//5+fn/2dna/29vcf93d3n/srGy/8DAwP94eXz/MDA3/zgxIv+Cbjb/vJ5E/+C6Tf/yyVH/985T//bN + U//2zFP/9ctS//TKUv/zylH/9MpS//XLUv/1ylL/9cpS//XKUv/1ylL/9MpS//XLUv/70FL/+c5S/+vE + UP/gvUr/2bdG/8amSf94bVD/h4aJ/8bFyczX1tku2tnbB/r6+gAAAAAA5OTnAOTk5wDm5ukA0tLXAPv7 + +wD9/f4A////HO3t7ibR0dEmxMTFJtnZ2Sbd3d4O2dnaAL6+vgDCwsIAv7+/AAAAAAAAAAAAAAAAAAAA + AADm5ugA7u7vANjY2wB7fIMA////F/z+/ybt7vQm0tPYJsfHySatra+XGxob/yQjKP8bGh7/Hh0h/yAf + I/8gHyP/IB8j/w0NDv8AAAD/AAAA/wAAAP8AAAD/AAAA/x0cH/9AP0L/ZmVn/5SUlejExMUA4ODgt+Li + 4hbg4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADk5OUA4ODhAL6+ + wAAAAACtAAAA/wAAAP8AAAD/AAAA/wAAAP8TExf/HR0i/2ZWMf/DoUL//9NO//zQT//yyUz/27hH/5+E + Of84MCH/CQoT/1ZWXv+/vr//8vLy/8/Pz//o6Oj//Pz8//7+/v/29vb/y8vM/7a2t/+SkpT/UVFY/ygq + M/9KQCn/ln81/927SP/zyU3/+89O//vOTf/5zU7/+c5O//fMTf/1ykz/9MlM//TKTP/1yk3/9cpN//XK + Tf/1yk3/9cpN//TJTP/4zE3/9stN/964SP+ghjz/bl0r/21eNP+ZjWD/yb2b/766r47Ix8dd3dzfRdHP + 0wDPztEA9/f3AAAAAAAAAAAAAAAAAAAAAAAAAAAA9/f4APf3+AD4+PkA5OTlAMjIyQC8vL0A0NDRANbW + 1wDV1dYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+vwA9fb5AObn + 7ADLzNAAsbGxAHBwcZc+PT7/Hh0g/xoZHf8fHiL/IB8j/yAfI/8WFhn/AAAA/wAAAP8AAAD/AAAA/wAA + AP8LCgz/Hh0h/xwbH/8mJSn/ODc7/1RTV/94d3n2lJSVALa3uKHPz9AA6OjpAOfn6AgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+vr6ANDP0QDR0NIAvr2/AAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8UFh3/KSYl/3hkMv/XsUH/+s5H//3RSP//1En/5r1E/5N8NP8+NR//Pj0//4+Plf/x8fD///////// + ///+/v7////////////y8vL/pKSm/0FCSv8MDBT/Misd/5d/Nf/mwEX//9VJ//rNSP/1ykf/9MhG//TI + R//0yEf/9MlH//XJR//1yUf/9clH//XJR//1yUf/9clH//TJRv/1yUf/9clG//jMR//atEP/i3Y1/zs0 + Iv8mJCf/WFdc/6qrrfTg4eSi7+/vJuHg3gDW1dgA09LVANPS1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7u7vAO7u7wCCgoQAMzMzs0dHSf8YFxv/Gxoe/yAf + I/8gHyP/HRwf/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x4dIP8eHSH/Gxoe/xUUGP8ODRH/Dw4T/x8e + Iv8/PkL/Xl5h/0pKS/85OTq0wsLDDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09LUANPS + 1AClpaYArq2vAAAAAEkAAAD/AAAA/wAAAP8AAAD/AAAA/wQEBP8TFSH/My4l/4ZwMf/lvT//98xB//nM + Qf/6zUL/7MRA/6KHM/9HPib/TU5V/7Cxs//q6ur//Pz8///////+/v7/8vLy/7Cxsv9MTFH/GxgY/0U8 + JP+RejL/37k///3RQ//1yED/88dB//PHQf/0yEH/9MhB//TIQf/0yEH/9MhB//TIQf/0yEH/9MhB//TI + Qf/0yEH/88dA//TIQf/6zEH/68E//6KHNf8uKiP/ERIe/1NTXf+1trnv9vf5sfX2+RL19vkA4N/fALy8 + vgCfnqEAm5udAMHBwgDe3t4A3NzcANzc3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADw8PEA8PDxAX19gB4WFhfeQEBD/xgXG/8cGx//IB8j/yAfI/8EBAT/AAAA/wAAAP8AAAD/AAAA/wAA + AP8WFRj/HBsf/xwbH/8cGx//Hh0h/yIhJf8nJyr/JiUo/w8PEP8PDw//VFRV86OipFKPjpAKAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO/v7wD19fUAy8vMAAAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/wkJCv8ZGCH/Ni8l/5Z9Mf/lvjr/+848//XIO//2yjz/8MU7/4xzK/81LyT/OjxG/6Oj + pv/o6Oj//Pz8//Ly8//ExMX/S01V/yooJP9pWCX/y6g2/+rAOv/0yDz/9cg7//PGOv/0xzv/9Mc7//TH + O//0xzv/9Mc7//THO//0xzv/9Mc7//THO//0xzv/9Mc7//THO//zxjr/9Mc7//7PPP/MqDb/a1oo/xcW + H/9CQkj/sbGy+vP09KL4+PgT9fb4AvX2+ATi4uQGvLy+Bp+eoQabm50GwcHCBt7e3gTc3NwA3NzcAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzs7QDs7O0F5eXmAAgICP8uLjH/Ghkd/x0c + IP8gHyP/CgoL/wAAAP8AAAD/AAAA/wAAAP8AAAD/DQ0P/xoZHv8ZGB3/HRwh/yoqLf8/PkL/NDQ1/QAA + AP8AAACaAAAAJuHh4gDu7u8A8fHyAJCPkQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOzs7ADo6OkAAAAAAwAAANYAAAD/AAAA/wAAAP8AAAD/AAAA/wwMEP8dHCL/PDUl/52C + Lv/kuzT//c82//XIN//8zTf/1K0y/3plJf8kISH/OTpD/5ydof/My8r/qaiq/1NUW/8kJCf/aFYk/8ij + Mf/3yjb/+Mo3//XHNv/zxTb/88U2//TGNv/0xjb/88Y2//PGNv/zxjb/88Y2//PGNv/zxjb/88Y2//PG + Nv/zxjb/88Y2//LFNf/zxjb//9A3/7ybMf9SRSL/Fxci/3Z1ev+xsbCIurq6I/n5+QD7+/sA/v7+gOno + 6rfCwsS3pKOmt6CgorfHx8i34+Piet3d3ADc3NwAxMTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA0NDRANDQ0QbPz9AACAgI/x4dIf8dHCD/Hh0h/w8OEP8AAAD/AAAA/wAAAP8AAAD/AAAA/wQE + Bf8bGh7/MC8z/wAAAP8AAAD/AAAAtxUVFf9nZ2i8w8PDT8fHyEfn5+dH////R////yQAAAAAkI+RAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+fkA4eHhANnZ2QDR0NEAAAAAGAAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/w8PE/8YGSH/SD4l/52CK//luzD/+8wx//nJMv/2xzL/y6Ut/3Je + Iv8lIRz/R0hP/19gZ/9GSFH/Hh0k/1lLIf+5lyz/98gy//nKMv/0xjH/88Ux//PEMv/0xTL/9MUy//TF + Mv/0xTL/9MUy//TFMv/0xTL/9MUy//TFMv/0xTL/9MUy//TFMv/0xTL/88Qx//TFMv/+zjL/w58u/1pL + Iv8TFSL/YWJn/5WVmKafoKdzyMrTebe5wnykpq/eiIqT/2lrc/9VVl//UFFc/2lrdf+foKba09PUa9LS + 0wi/v8EA8fHzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPr6+gCgoKEAoaGiAIiIiQAfHx//FRQY/x4d + If8RERP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABuBwcH/QAAAKiXl5ic/Pz8hf// + /y7+/v4AvLy9ANvb2wD09PQA/f3+APz8/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADj4+MAwsLCAMPDwwDBwcEAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xAQ + FP8UFiL/SD4j/56CKf/mvCv/9sct//zLLf/5yS3/1Kwr/29cI/8oIx7/Dg8a/x4cGv9QQyD/tpQp/+/C + Lf/7yi3/88Mt//PDLP/0xC3/9MQt//TELf/0xC3/9MQt//TELf/0xC3/9MQt//TELf/0xC3/9MQt//TE + Lf/0xC3/9MQt//TELf/zwyz/9MQt//zLLf/asCv/g2wl/yEfIf8pKjT/YWFo/4qIiP+JhX//c29i/1tU + RP9HPyr/OjEb/zMrFf8sJBP/JiEY/1NQTv+np6ntzc3PWNPT1BX4+PkAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/Pz8AKSkpAqhoaI8U1NTACgoKf8UExf/EhEU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAACoBwcH/QAAAG7b29tk+vr6AM/P0ADx8fEA+vr6APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQAxMTEAKuq + qwCtrK0AAAAAVwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xAQFP8XGCL/PTUk/5d8Jv/luif/+Mgm//rI + Jv/4xyb/2K4l/2hXIf85MiD/aFgj/8miJv/zwif/+Mcm//PDJv/zwyb/88Mn//PDJ//zwyf/88Mn//PD + J//zwyf/88Mn//PDJ//zwyf/88Mn//PDJ//zwyf/88Mn//PDJ//zwyf/88Mn//PCJ//zwyf/9sUn//XE + J//Dnib/X1Aj/yYiH/8tKB3/V0gd/4NqHf+Zexv/qoke/7eUIv++mST/vJkk/7OSJf+PdRz/YlMi/1xb + Wf3R0dP08fH0VOnp6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD39/cA9/f3KOzs7AA2Njf+IyMm/w4N + EP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7+KSkp4BsbG0TCwsML7OztC/v7+wX4+PgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExADExMQAqKeoAJ6dnwCamZsAAAAAcQAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/w8OE/8cHCP/NjAi/4duIv/XrCH//ssf//vIIP/2xCD/yaEg/7qXIP/SqSD/9MMg//bF + IP/zwh//8sEg//PCIP/zwiD/88Mg//PCIP/zwiD/88Ig//PCIP/zwiD/88Mg//PCIP/zwiD/88Ig//PD + IP/zwiD/88Ig//PCIP/zwyD/88Ig//LCIP/ywR//9cQg/+2+If/QpiD/qIgg/7GOHf/OpRv/5Lcb/+q7 + HP/vvx7/8sEg//PCIf/zwiH/8cQg/+q/H/+nhhr/Qz0s/4mKjv+cn6hWlZifAPr6+wD6+vsA/f7/AOvr + 7QDNzM0Avr6+AOnp6QD4+PcA9PT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5+joAOfo + 6ADn6OgA5+joANna2gDj5OMq1dbWABEREv8NDA//AAAA/wAAAP8AAAD/AAAA/wAAAPYAAAD/Dw8Ppaem + p0P49/gc8O/wAMLCwwDs7O0A+/v7APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACqqaoAl5aYAI2MjgCHhogAAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wwMEP8ZGSL/NC4i/3hi + IP/DnBz/9cMb///KGv/1wxv/8sAc//XEG//3xBv/88Eb//LAG//zwBv/8sEb//LBG//ywRv/8sEb//LB + G//ywRv/8sEb//LBG//ywRv/8sEb//LBG//ywRv/8sEb//LBG//ywRv/8sEb//LBG//zwRv/8sEb//LA + G//zwRv/9cMb//bEHP/tvRz/8sAc//jGHP/7yRz/+sgc//rGHP/5xhz/+cYc//nGHP/5xxv//84c/9Kn + GP9kUxv/PT1E/mxwf7epqrGS////Of///wH///8n9fX3WNjX13THx8eH7e3tkvv7+jv39/cAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA8fDxAPn4+ADo6ekA7e7uBuzt7Xrs7e05wcHCAKenqSKen6AADw4P/wAA + AP8AAAD/AAAA/wAAAPcAAADYAAAAW0NDQ3L///8G+fn5AO/u7wDr6usAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZmJoAraytALGwsQCvrq8AAAAAhgAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJC/8UFSL/KSUh/2ZUHv+1kRr/57cX//vHFf/8yBb/9cIW//G/ + Fv/xvxf/88AX//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PA + Fv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AX//K/Fv/yvxb/9cIW//rGFv/4xBb/9MIW//G/ + Fv/xvxb/8b4W//K/Fv/ywBb/8sAW//G/Fv/6xRb/6bkW/6mHFv9COBr/UVBS/5OTmv/DxMrkzs/TYMvM + 0KqwsbibkJCWYoqKjCnPz8+A5ubmauDg4AAAAAAAAAAAAAAAAAAAAAAAycrLAMnKywDz8vMA////KuHi + 4lTGx8dmysvMAMnJymLR0dIdmZmadCQkJAAAAAD/AAAA/wAAANIAAACXAAAAYQAAAAAAAAAA9vb2APj4 + +AD39/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD7+/oA/f39APn5+ACsq60AAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wQE + BP8VFh7/HRwi/0c9H/+ggBj/3bAT//XCEf/1wRH/88AR//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/ + Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/ + Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//PA + Ev/2wxH/6bkS/6KBE/9XRxX/RD4s/2NfUv5/eWn8c2xc/klFPv8eHSD/IB8l/5mZmv/BwcJnt7e4AAAA + AAAAAAAA5ubmAO3t7QDIycoAy8zNAOzs7Rjr6uqLuLi6fm9vcX6PjpD+kI+SVLW1tW0YGBj/AAAA/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A/v79AJmY + mgCUlJYAAQEBcwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8TEhn/HBwh/zArH/9zXxn/wJgR//K+ + C//7xQv/9MEL//G/DP/xvgz/8b8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/ + DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/ + DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvgz/8b4M//K/DP/zwAv/7rwM/9SoDP+5kg3/rIkP/7KN + EP+1kA7/knUR/09BFP8kIyb/lpWY/728v2ezsrUAAAAAAAAAAADm5uYA7e3tAMnKywHIycoKz9DRQ5WV + lwtCQkWcKSgs/46Nj/9GRUaKAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAC/vsAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/f38AAAAAAD7+/oAk5OVAKOjpQCcnJ4AAAAAVwAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8LCw7/GRki/ykmIP9VRhv/knUT/9KmC//3wgX//ccE//fCBf/xvgb/8L0G//G9 + B//xvgf/8r4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+ + B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//K+ + B//xvQf/8b4H//K+B//3wgb/9cAG/++6BP/otQL/6LQA/+q4Af/hsgP/poIK/0pCJ/+io6T/w8XNZ7q8 + wgD19vUA8fLxAOjo6ADz8/M409PTLpmZmxtlZWeqODg7/xgXG/8mJSn/QEBB/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAAAAAAAAAAAAA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACVlZcApKSlALa2twCxsbIAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/EBIa/xsb + Iv85Mh7/clwW/66KDP/aqwX/9L8C//vEAf/4wQH/874C//G9Av/xvAL/8b0C//G9Av/yvQL/8r0C//K9 + Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9 + Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8bwC//G9Av/0vgL/+MEB//nD + Av/6wwL/+sUC//7IAP/GmwT/V0sl/6eoqP/DxtFixcjOAPz9/Aj9/v1D2traEbu7vDCKiovMSkpN/yAg + I/8UExf/ERAU/wICAv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAANwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKUAwsLDAMLCwwDNzc0AAAAAGAAA + ANYAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CgoN/xUVIf8aGiP/Qjgc/4FnEv+/lQn/5LID//K8 + Af/2vwD/9b8A//S+AP/zvQD/8rwA//G8AP/xvAD/8bwA//K8AP/yvQD/8rwA//K8AP/yvAD/8rwA//K8 + AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8 + AP/yvAD/8rwA//K8AP/yvQD/8rwA//G8AP/xvAD/8LsA//G8AP/2vwD/8LsA/6yHBf9AOCP/k5OW/8HD + yoTT1NYd5OTkA9LS0lyenp/fWVhb/yIiJf8SERb/GBcb/wwLDf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA1qamplD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADCwsMAwsLDAN/f3wDj4+MAAAAAAwAAAJEAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/xERFf8YGSP/IB4i/0A2Hf96YRT/upIK/+SyAv/3wQD/+cIA//W/AP/zvQD/8bwA//K9 + AP/yvQD/8r0A//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//K9 + AP/xvAD/8r0A//rDAP/ksgP/jnAL/yEfH/9jY2j/vb7AedLS03aWlpjeVVRX/CkoLP8aGB3/Gxoe/xIR + FP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAJEAAAADs7K0AP7+/gAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMLCwwDCwsMA4+PjAPX1 + 9QDw8PAAyMjJAAAAAEkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wICAv8SEhj/HRwj/ygl + IP9DOBz/bVkV/59+Df/NoQb/7bkA//vEAP/9xgD/+cMA//S/AP/xvAD/8LsA//G8AP/xvAD/8bwA//G8 + AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//G8AP/xvAD/8bwA//G8AP/wuwD/8bwA//S9AP/4wQD//8kA//K/Af+ohAr/MCod/zEx + N/9WVlv/WFha/zMyNf8gHyP/Ghkd/xISFP8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAABJwcHCAMfGxwCnpqgA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADi4uIA9/f3AP///wD29vcAubm5AAAAABAAAACtAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgP/Dw8X/xcYI/8lIyH/QTcc/2VTF/+NcBD/sYwL/8+j + Bv/ntAL/9L4A//vDAP/7xAD/+8QA//jCAP/2vwD/874A//K9AP/xvAD/8bwA//C8AP/wuwD/8LwA//C8 + AP/wvAD/8bwA//C8AP/wvAD/8LwA//C8AP/wuwD/8LwA//G8AP/xvAD/874A//W/AP/3wQD/+sMA//zE + AP/7xAD/+MAA/+y4Af/YqwT/upMJ/39mEv8wKx7/HR0i/x8eJP8dHCD/FRQY/xEQE/8CAgL/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAAEObm5gDR0dEAz8/PAK2srgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD39/cA/v7+AOzs7QDIyMkA3NzdAL29vgAAAABJAAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wwNEv8SFCH/Fxkj/ysmIP9KPxv/cl0U/5h5Dv+3kAn/z6IG/9+vBP/ptwL/8LsB//S+ + AP/2vwD/98AA//bAAP/3wAD/9sAA//bAAP/1wAD/9r8A//bAAP/3wAD/9sAA//XAAP/2wAD/9sAA//bA + AP/3wAD/+MEA//fBAP/2wAD/9b4A//K8Af/ruAL/47ED/9WmBf/Blwj/pIIM/4BmEv9aSRj/OTId/yQi + If8cHCH/GBcb/w4OEP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8BwcHTc3N + zQD8/PwA8/PzAM7OzgDOzs4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMfHyAD19fUA+vr6AOPj + 4wAXFxcHAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ICAn/EhMY/xUX + JP8YGST/JCIh/zszHP9aShj/fWQT/519Df+6kgn/z6IG/96tA//otQL/7rsB//K+Af/0vwH/9cAB//bA + Af/3wAD/98AA//e/AP/3wAD/98AA//bAAf/1wAH/9MAB//O+Af/xvAH/67gC/+KwAv/VpgX/wpgI/6aE + C/+HaxH/ZlIW/0Y6G/8sJyD/HBsj/xYXJP8YGSP/FRUY/wgICf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAgAAAAAbLy8wAxcXGAPj4+ADy8vIAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAx8fIAPj4+AD///8A5OTlANfX2ADMzM0AAAAAGAAAAKIAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJC/8TFBn/Gxsh/x4dIv8jISH/LCgf/zkx + Hv9KPRz/XUsY/29ZFP+BZxL/kXQQ/6B/Df+qhwz/s40K/7qRCP++lQj/wJUI/7+WCP+8kgj/tI4J/62I + DP+jgQ3/lngO/4hsEv91XxT/YlAX/09DG/8+Nh3/MCsf/yUjIf8fHiL/HBsi/xoaIf8TFBn/CQkL/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAAABjm5uYA8PDwAPHx + 8QDExMUA+Pj4APLy8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9/f3AP7+ + /gDh4eIA5ubnAPDw8QDPz9AAsbKyAAAAACAAAACoAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AwME/woLEP8RERr/Fxch/xwbI/8hICL/JyQh/y4pH/82MB7/PDQd/0I5 + HP9HPBv/TEAb/09BGv9RQhv/UEIa/01AG/9JPhv/RDoc/z82Hf84MR7/MSsf/yomIf8jISH/HRwi/xkZ + I/8VFiL/EBEa/wsLEP8DAwT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/KSkp/gAAACDU1dUA7u7uAP///wD8/PwA/Pz8AMXFxgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLi4wDi4uMA5ubnANzc2wDk5OQA3d3dALGx + swAAAAAbAAAAkQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wUFB/8JCg//DA0V/w4QG/8PER//EBMh/xETJP8SFST/ExUl/xMVJf8TFSX/EhUl/xMV + JP8RFCT/EBMi/xARH/8OEBv/DQ4V/woKDv8FBQf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAkSMjIyPX1tYp9vf2C/r7+wDz9PQA/Pz8APn5 + +QD5+fkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39/gAOPj5ADPz9AAAAAACgAAAGEAAADiAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADiAAAAYQAA + AArn5+gA/Pv8APn4+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADa2toA3t7eANTU + 1ADh4eIA6OjpAO/v7wDq6eoA4ODgAL69vwAAAAAlAAAAhgAAAPcAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPcAAACGAAAAJcnJygDMzM0A09PUAO3t7gD///8A+/r7AO3u7gD19vYA8vPzAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/f4ADj4+QA9fX1APv7+wD8/PwA2trbANfX + 2ADJyMkAuLi5AAAAACUBAQF4AAAA1gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAAAHYAAAAlycnJANvb2wDr6+sA5OTkAN3d + 3gDZ2doA5+foAPz7/AD5+PkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADz8/MA9fX1APLy8gDQ0NEA8vLyAPf39wD29vUA09LUAM3NzgC2trcAAAAACgAA + ADcAAAB8AAAAxQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAMUAAAB8AAAANwAA + AAq+vr8AxcXFAO3t7QD///8A////AP39/QDa2tsA19fYANfX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADt7e0A7+/vAOvr6wDJyMoA/Pz8AP7+/gD8+/wA6+rrAM/P0ACvr7AAkZCRAAAAABAAAAAwAAAAVwAA + AIAAAACoAAAAywAAAOcAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAOcAAADLAAAAqAAA + AIAAAABXAAAAMAAAABCioaMAxMPEAOHh4QDx8fEA8PDwAO/v7wC7u7wA4uLiAPj4+AD7+/sA+vr6AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6+voA+/v7APj3 + +ADn5ucAy8vMAKysrQCOjY8AcnJ0AOTk5ADi4uIA3t7eANTU1QDOzc8AxMTGALu7vAC4uLkAAAAAAQAA + AAMAAAADAAAAAbq5ugDDw8QAy8rMANLS0wDc3N0A5eTlAOjo6QDr6+sAhoWHAJ+eoADAv8AA3d3dAO3t + 7QDt7e0A7e3tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////////gAAAA///////////////4AAAAAAf/////////////gAAAAAA + Af////////////gAAAAAAAAf///////////AAAAAAAAAA///////////+AAAAAAAAB///////////wAA + AAAAAAAA//////////gAAAAAAAAAAF/////////gAAAAAAAAAAAP////////4AAAAAAAAAAAD/////// + /4AAAAAAAAAAAAH///////8AAAAAAAAAAAAA///////4AAAAAAAAAAAAAH//////+AAAAAAAAAAAAAB/ + //////AAAAAAAAAAAAAAH//////gAAAAAAAAAAAAABf/////gAAAAAAAAAAAAAAP/////wAAAAAAAAAA + AAAAAv////8AAAAAAAAAAAAAAAL////+AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAP////AAAAAA + AAAAAAAAAAA////wAAAAAAAAAAAAAAAAP///8AAAAAAAAAAAAAAAAC///+AAAAAAAAAAAAAAAAAH///A + AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//wAAAAAAAAAAAAAAAAAD//8AAAAAAAAAAAAAAAAA + AP/+AAAAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAA + AAAAAAA/9AAAAAAAAAAAAAAAAAAAP/QAAAAAAAAAAAAAAAAAAD/0AAAAAAAAAAAAAAAAAAA/4AAAAAAA + AAAAAAAAAAAAL+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAAAAAAAAAAAB8AA + AAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAHwAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAA + AAOAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAA + AAfAAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAC/0AAAAAAAAAAAA + AAAAAAAv9AAAAAAAAAAAAAAcAAAAL/QAAAAAAAAAAAAAPgAAAD/8AAAAAAAAAAHwAP8AAABP/AAAAAAA + AAAB/wP/wAAAf/wAAAAAAAAAA/////4AAB//AAAAAAAAAAf////+AAAB/gAAAAAAAAAf/////gAAAf8A + AAAAAAAAP/////4AAAH/wAAAAAAAAH/////8AAAB/+AAAAAAAADgP////AAAP//AAAAAAAAAAB////wA + AP//4AAAAAAAAAAP///8AAf///AAAAAAAAAAB///+AA////wAAAAAAAAAAf///gA/////AAAAAAAAAAA + B/+4A/////4AAAAAAAAAAAP+EB//////AAAAAAAAAAAD/AP//////4AAAAAAAAAAA/AB//////9AAAAA + AAAAAAPAAf//////4AAAAAAAAAADAAB///////AAAAAAAAAAAAAA///////4AAAAAAAAAAAAAP////// + +AAAAAAAAAAAAAB///////4AAAAAAAAAAAAA////////AAAAAAAAAAAAAf///////+AAAAAAAAAAAAf/ + ///////gAAAAAAAAAAAH////////8AAAAAAAAAAAH/////////wAAAAAAAAAAD//////////8AAAAAAA + AA///////////4AAAAAAAAAB///////////wAAAAAAAAD////////////AAAAAAAAH/////////////A + AAAAAAP//////////////AAAAAB///////8= + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ErrorReporting/ErrorReportingFormArgs.cs b/Source/Core/HydroDesktop.ErrorReporting/ErrorReportingFormArgs.cs new file mode 100644 index 00000000..7c2ab1f4 --- /dev/null +++ b/Source/Core/HydroDesktop.ErrorReporting/ErrorReportingFormArgs.cs @@ -0,0 +1,25 @@ +using System; + +namespace HydroDesktop.ErrorReporting +{ + /// + /// Init params for + /// + public class ErrorReportingFormArgs + { + /// + /// Gets or sets Exception to show. + /// + public Exception Exception { get; set; } + + /// + /// Gets or sets path to log file. + /// + public string LogFile { get; set; } + + /// + /// Gets or sets boolean, that indicates that application will be closed. + /// + public bool IsFatal { get; set; } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ErrorReporting/HydroDesktop.ErrorReporting.csproj b/Source/Core/HydroDesktop.ErrorReporting/HydroDesktop.ErrorReporting.csproj new file mode 100644 index 00000000..d341ae5c --- /dev/null +++ b/Source/Core/HydroDesktop.ErrorReporting/HydroDesktop.ErrorReporting.csproj @@ -0,0 +1,117 @@ + + + + true + bin\Debug\ + DEBUG;TRACE + bin\Debug\HydroDesktop.ErrorReporting.XML + full + x86 + bin\Debug\HydroDesktop.ErrorReporting.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + false + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + bin\Release\HydroDesktop.ErrorReporting.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + + + + Debug + AnyCPU + {42B7A22C-FD5D-4EF3-856F-E01F8DD8A82B} + Library + Properties + HydroDesktop.ErrorReporting + HydroDesktop.ErrorReporting + v4.0 + 512 + ..\..\ + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + bin\Debug\HydroDesktop.ErrorReporting.XML + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + Properties\AssemblyInfoShared.cs + + + + + + + + + Form + + + ErrorReportingForm.cs + + + + + + + ErrorReportingForm.cs + + + + + {882c41f5-6a96-419f-9153-8d277ed91464} + HydroDesktop.Common + True + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ErrorReporting/Properties/AssemblyInfo.cs b/Source/Core/HydroDesktop.ErrorReporting/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..3f09d93b --- /dev/null +++ b/Source/Core/HydroDesktop.ErrorReporting/Properties/AssemblyInfo.cs @@ -0,0 +1,23 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.ErrorReporting")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HydroDesktop.ErrorReporting")] +[assembly: AssemblyCopyright("Copyright © 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b3ee5026-d38c-4bce-ba6b-6b9f4c141c01")] \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ErrorReporting/ZipHelper.cs b/Source/Core/HydroDesktop.ErrorReporting/ZipHelper.cs new file mode 100644 index 00000000..badff2cc --- /dev/null +++ b/Source/Core/HydroDesktop.ErrorReporting/ZipHelper.cs @@ -0,0 +1,45 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.IO.Packaging; + +namespace HydroDesktop.ErrorReporting +{ + internal static class ZipHelper + { + private const long BUFFER_SIZE = 4096; + + public static void AddFileToZip(string zipFilename, string fileToAdd) + { + using (var zip = Package.Open(zipFilename, FileMode.OpenOrCreate)) + { + var destFilename = ".\\" + Path.GetFileName(fileToAdd); + var uri = PackUriHelper.CreatePartUri(new Uri(destFilename, UriKind.Relative)); + if (zip.PartExists(uri)) + { + zip.DeletePart(uri); + } + var part = zip.CreatePart(uri, "", CompressionOption.Maximum); + using (var fileStream = new FileStream(fileToAdd, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)) + { + Debug.Assert(part != null, "part != null"); + using (var dest = part.GetStream()) + { + CopyStream(fileStream, dest); + } + } + } + } + + private static void CopyStream(Stream inputStream, Stream outputStream) + { + var bufferSize = inputStream.Length < BUFFER_SIZE ? inputStream.Length : BUFFER_SIZE; + var buffer = new byte[bufferSize]; + int bytesRead; + while ((bytesRead = inputStream.Read(buffer, 0, buffer.Length)) != 0) + { + outputStream.Write(buffer, 0, bytesRead); + } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ErrorReporting/packages.config b/Source/Core/HydroDesktop.ErrorReporting/packages.config new file mode 100644 index 00000000..037b768b --- /dev/null +++ b/Source/Core/HydroDesktop.ErrorReporting/packages.config @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Help/HydroDesktop.Help.csproj b/Source/Core/HydroDesktop.Help/HydroDesktop.Help.csproj new file mode 100644 index 00000000..99e8b00c --- /dev/null +++ b/Source/Core/HydroDesktop.Help/HydroDesktop.Help.csproj @@ -0,0 +1,100 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {F09E70CC-9D65-45C2-A451-D22CFB400C26} + Library + Properties + HydroDesktop.Help + HydroDesktop.Help + v4.0 + 512 + + + 3.5 + + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Binaries\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\ + DEBUG;TRACE + full + x86 + prompt + false + false + false + + + + + ..\..\..\Binaries\ + TRACE + true + pdbonly + x86 + prompt + + + + + 3.5 + + + + + Properties\AssemblyInfoShared.cs + + + + + True + True + Settings.settings + + + + + + Designer + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Help/HydroDesktop.Help.sln b/Source/Core/HydroDesktop.Help/HydroDesktop.Help.sln new file mode 100644 index 00000000..91c0ecc2 --- /dev/null +++ b/Source/Core/HydroDesktop.Help/HydroDesktop.Help.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Help", "HydroDesktop.Help.csproj", "{F09E70CC-9D65-45C2-A451-D22CFB400C26}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Debug|x86.ActiveCfg = Debug|x86 + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Debug|x86.Build.0 = Debug|x86 + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Release|Any CPU.Build.0 = Release|Any CPU + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Release|x86.ActiveCfg = Release|x86 + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Core/HydroDesktop.Help/LocalHelp.cs b/Source/Core/HydroDesktop.Help/LocalHelp.cs new file mode 100644 index 00000000..2c79dba6 --- /dev/null +++ b/Source/Core/HydroDesktop.Help/LocalHelp.cs @@ -0,0 +1,62 @@ +using System; +using System.IO; +using System.Reflection; + +namespace HydroDesktop.Help +{ + /// + /// Utilities for working with local help files + /// + public class LocalHelp + { + #region Private Member Variables + + private static readonly string _helpRelativePath = Properties.Settings.Default.helpRelativePath; + + #endregion + + #region Public Methods + + /// + /// Gets the directory in which HydroDesktop help files are located. + /// + /// The path to the directory in which HydroDesktop help files are located. + public static string GetHelpPath () + { + string hydroDesktopFolder = AppDomain.CurrentDomain.BaseDirectory; + string helpPath = Path.Combine ( hydroDesktopFolder, _helpRelativePath ); + return helpPath; + } + + /// + /// Opens a help topic from the HydroDesktop help system using the default program for viewing HTML files. + /// + /// The location of the file to open, relative to the HydroDesktop Help directory, and including the .html extension, e.g., Printing.html, Extensions/HydroR/HydroR.html. + public static void OpenHelpFile ( string RelativeFileLocation ) + { + string rootHelpPath = GetHelpPath (); + + if ( Directory.Exists ( rootHelpPath ) == false ) + { + throw new Exception ( "Could not open help file. The system cannot find the directory at '" + rootHelpPath + "'." ); + } + + string helpFilePath = Path.Combine ( rootHelpPath, RelativeFileLocation ); + + if ( File.Exists ( helpFilePath ) == false ) + { + throw new ArgumentException ( "Could not open help file. File at '" + helpFilePath + "' does not exist.", "RelativeFileLocation" ); + } + if (Path.GetExtension(helpFilePath) == "pdf") + { + System.Diagnostics.Process.Start(helpFilePath); + } + else + { + WebUtilities.OpenUri(helpFilePath); + } + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.Help/Properties/AssemblyInfo.cs b/Source/Core/HydroDesktop.Help/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..dffa4ab9 --- /dev/null +++ b/Source/Core/HydroDesktop.Help/Properties/AssemblyInfo.cs @@ -0,0 +1,22 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle ( "HydroDesktop.Help" )] +[assembly: AssemblyDescription ( "HydroDesktop Help Files" )] +[assembly: AssemblyConfiguration ( "" )] +[assembly: AssemblyCompany ( "CUAHSI" )] +[assembly: AssemblyProduct ( "HydroDesktop.Help" )] +[assembly: AssemblyCopyright ( "Copyright © CUAHSI 2011" )] +[assembly: AssemblyTrademark ( "" )] +[assembly: AssemblyCulture ( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible ( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid ( "3665371f-91e0-4cf8-9710-700edaddf864" )] \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Help/Properties/Settings.Designer.cs b/Source/Core/HydroDesktop.Help/Properties/Settings.Designer.cs new file mode 100644 index 00000000..48743746 --- /dev/null +++ b/Source/Core/HydroDesktop.Help/Properties/Settings.Designer.cs @@ -0,0 +1,38 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.296 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Help.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.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; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Help\\html")] + public string helpRelativePath { + get { + return ((string)(this["helpRelativePath"])); + } + set { + this["helpRelativePath"] = value; + } + } + } +} diff --git a/Source/Core/HydroDesktop.Help/Properties/Settings.settings b/Source/Core/HydroDesktop.Help/Properties/Settings.settings new file mode 100644 index 00000000..cea5307b --- /dev/null +++ b/Source/Core/HydroDesktop.Help/Properties/Settings.settings @@ -0,0 +1,9 @@ + + + + + + Help\html + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Help/WebUtilities.cs b/Source/Core/HydroDesktop.Help/WebUtilities.cs new file mode 100644 index 00000000..ed9bf0eb --- /dev/null +++ b/Source/Core/HydroDesktop.Help/WebUtilities.cs @@ -0,0 +1,119 @@ +using System; +using System.Diagnostics; +using System.Net; +//using Microsoft.Win32; // Not supported in Mono. + +namespace HydroDesktop.Help +{ + /// + /// Utilities for working with the web and opening the HD website + /// + public class WebUtilities + { + #region Public Methods + + /// + /// Tests for an internet connection. + /// + /// True if internet connection found; false otherwise. + public static bool IsInternetAvailable () + { + // Test a few sites for connectivity. + string[] sites = { "www.bing.com", "www.google.com" }; + + for ( int i = 0; i < sites.Length; i++ ) + { + try + { + // This works even if the site is down because it just tries to reach one of several ISP DNS servers + // to resolve the address and get the name, which ping also does even before sending the packets. + IPHostEntry ipHostEntry = Dns.GetHostEntry ( sites[i] ); + return true; + } + catch + { + } + } + + // If we made it this far, then no tests were successful. + return false; + } + + /// + /// Retrieves the user's default Web browser. + /// + /// The full path to the default Web browser, or string.Empty if the browser could not be determined. + public static string GetSystemDefaultBrowser () + { + string browser = string.Empty; + + // Not supported in Mono. + //RegistryKey regKey = null; + + //try + //{ + // regKey = Registry.ClassesRoot.OpenSubKey ( "HTTP\\shell\\open\\command", false ); + + // //get rid of the enclosing quotes + // browser = regKey.GetValue ( null ).ToString ().ToLower ().Replace ( "" + (char)34, "" ); + + // //check to see if the value ends with .exe (this way we can remove any command line arguments) + // if ( !browser.EndsWith ( "exe" ) ) + // { + // //get rid of all command line arguments (anything after the .exe must go) + // browser = browser.Substring ( 0, browser.LastIndexOf ( ".exe" ) + 4 ); + // } + //} + //finally + //{ + // if ( regKey != null ) + // { + // regKey.Close (); + // } + //} + + return browser; + } + + /// + /// Opens the given URI using the default Web browser. + /// + /// The URI to open. + public static void OpenUri ( string uriString ) + { + // Attempt to create a Uri from the input string. This also validates the format of the Uri string. + Uri uri = new Uri ( uriString.Trim () ); + + // Try to open the Uri using the default Web browser. + string browser = GetSystemDefaultBrowser (); + if ( browser != "" ) + { + Process process = new Process (); + process.StartInfo.FileName = browser; + process.StartInfo.Arguments = uri.AbsoluteUri; + process.Start (); + } + else + { + // We could not identify the default browser, so just try opening the link directly. + Process.Start ( uri.AbsoluteUri ); + } + } + + /// + /// Opens the default program for handling the given mailto link. + /// + /// The mailto link to open. + public static void OpenMailtoLink ( string mailtoLink ) + { + string link = mailtoLink.Trim (); + if ( link.Substring ( 0, 7 ).ToLower () != "mailto:" ) + { + throw new ArgumentException ( "Invalid mailto link format." ); + } + Process.Start ( mailtoLink ); + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.Help/app.config b/Source/Core/HydroDesktop.Help/app.config new file mode 100644 index 00000000..6d0035eb --- /dev/null +++ b/Source/Core/HydroDesktop.Help/app.config @@ -0,0 +1,15 @@ + + + + +
+ + + + + + Help\html + + + + diff --git a/Source/Core/HydroDesktop.Help/package.nuspec b/Source/Core/HydroDesktop.Help/package.nuspec new file mode 100644 index 00000000..ed7f0e97 --- /dev/null +++ b/Source/Core/HydroDesktop.Help/package.nuspec @@ -0,0 +1,17 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + true + $description$ + + en-US + HideReleaseFromEndUser + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Help/packages.config b/Source/Core/HydroDesktop.Help/packages.config new file mode 100644 index 00000000..037b768b --- /dev/null +++ b/Source/Core/HydroDesktop.Help/packages.config @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IDataFilesRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IDataFilesRepository.cs new file mode 100644 index 00000000..3b54b415 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IDataFilesRepository.cs @@ -0,0 +1,11 @@ +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for Repository + /// + public interface IDataFilesRepository : IRepository + { + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IDataSeriesRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IDataSeriesRepository.cs new file mode 100644 index 00000000..a4681994 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IDataSeriesRepository.cs @@ -0,0 +1,150 @@ +using System; +using System.Collections.Generic; +using System.Data; +using HydroDesktop.Common; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for DataSeries Repository + /// + public interface IDataSeriesRepository : IRepository + { + /// + /// Get Variable.NoDataValue for given series + /// + /// Series ID + /// NoDataValue + double GetNoDataValueForSeriesVariable(long seriesID); + + /// + /// Get VariableID for given SeriesID + /// + /// SeriesID + /// VariableID + int GetVariableID(int seriesID); + + /// + /// Returns a detailed data table for all series in the database. The + /// table includes the IDs of site, variable, source, method and QCLevel. + /// + /// The DataTable with series metadata information + DataTable GetDetailedSeriesTable(); + + /// + /// Returns a detailed table for all series that match the attributes + /// + /// The list of series IDs + /// the data table + DataTable GetSeriesTable(IEnumerable listOfSeriesID); + + + /// + /// Returns a detailed data table for all series in the database with custom filter. The + /// table includes the IDs of site, variable, source, method and QCLevel. + /// + /// The DataTable with series metadata information + DataTable GetSeriesTable(string seriesDataFilter); + + /// + /// Returns all series + /// + /// Series collection + IList GetAllSeries(); + + /// + /// Returns the data table of detailed properties for one series + /// + /// The id of the series + /// The detailed table. This table only has one data row. + DataTable GetSeriesTable(int seriesID); + + /// + /// Returns the data table of SeriesID and NoDataValue + /// + /// The ids of the themes + /// Data table. + DataTable GetSeriesIDsWithNoDataValueTable(IEnumerable themeIDs); + + /// + /// Gets the list of all series that are available at a site + /// + /// The site + /// The list of the series from the db + /// The data values aren't loaded unless requested + IList GetAllSeriesForSite(Site mySite); + + /// + /// Gets list of all series that are associated with the site + /// + IList GetSeriesBySite(Site site); + + Tuple GetDatesRange(long seriesID); + + /// + /// Deletes a series given it's ID. The series is only deleted when it belongs to one theme. + /// + /// The database ID of the series + /// Theme Id + /// true if series was deleted, false otherwise + void DeleteSeries(long seriesID, long themeId); + + /// + /// Check that exists series with given Site and Variable. + /// + /// Site + /// Variable + /// True - exists, otherwise - false. + bool ExistsSeries(Site site, Variable variable); + + /// + /// Get BeginDateTime and EndDateTime for given seriesID + /// + /// SeriesID + /// BeginDateTime and EndDateTime + Tuple GetDateTimes(long seriesID); + + /// + /// Get UnitsName, SiteName, VariableName for first series with given seriesID + /// + /// SeriesID + /// Table with UnitsName, SiteName, VariableName + DataTable GetUnitSiteVarForFirstSeries(long seriesID); + + void UpdateDataSeriesFromDataValues(long seriesID); + + string GetQualityControlLevelCode(long seriesID); + long GetQualityControlLevelID(long seriesID); + + IList GetDataValuesIDs(long seriesID); + + int InsertNewSeries(long sourceSeriesID, long variableID, long methodID, long qualityControlLevelID); + + void DeriveInsertAggregateDataValues(DataTable dt, + long newSeriesID, + DateTime currentdate, DateTime lastdate, DeriveAggregateMode mode, + DeriveComputeMode computeMode, + double nodatavalue, IProgressHandler progressHandler); + + void DeriveInsertDataValues(double A, double B, double C, double D, double E, double F, + DataTable dt, + long newSeriesID, long sourceSeriesID, bool isAlgebraic, + IProgressHandler progressHandler); + } + + public enum DeriveAggregateMode + { + Daily, + Monthly, + Quarterly, + } + + public enum DeriveComputeMode + { + Maximum, + Minimum, + Average, + Sum + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IDataServicesRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IDataServicesRepository.cs new file mode 100644 index 00000000..988f1287 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IDataServicesRepository.cs @@ -0,0 +1,11 @@ +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for Repository + /// + public interface IDataServicesRepository : IRepository + { + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IDataThemesRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IDataThemesRepository.cs new file mode 100644 index 00000000..c263a209 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IDataThemesRepository.cs @@ -0,0 +1,42 @@ +using System.ComponentModel; +using System.Data; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for DataThemes Repository + /// + public interface IDataThemesRepository : IRepository + { + /// + /// Get themes for all series. + /// If series do not belongs any theme, than "Other Data Series" theme added to result DataTable + /// + /// DataTable with themes + DataTable GetThemesForAllSeries(); + + /// + /// Get DataTable which contains some specific columns for ThemeManager + /// + /// DataTable with data. + DataTable GetThemesTableForThemeManager(long? themeId); + + /// + /// Get Theme ID by Theme Name + /// + /// Theme name + /// Theme ID or null, if themeID not found. + int? GetID(string themeName); + + /// + /// Delete a theme - a background worker and progress bar is used + /// + /// The themeID (this needs to be a valid ID) + /// The background worker component + /// True if the theme was successfully deleted + bool DeleteTheme(long themeID, BackgroundWorker worker = null); + + void InsertNewTheme(long seriesID, long newSeriesID); + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IDataValuesRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IDataValuesRepository.cs new file mode 100644 index 00000000..5ffeda98 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IDataValuesRepository.cs @@ -0,0 +1,119 @@ +using System; +using System.Collections.Generic; +using System.Data; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for DataValues Repository + /// + public interface IDataValuesRepository : IRepository + { + /// + /// Aggregate values for series + /// + /// SeriesID + /// SQL aggregate function: sum, min, max,... + /// Minimum date to aggregate series + /// Maximum date to aggregate series + /// Aggregated value. + double? AggregateValues(long seriesID, string aggregateFunction, DateTime minDate, DateTime maxDate); + + /// + /// Calculates percent of avalible values (not equal NoDataValue) for given seriesID and period + /// + /// SeriesID + /// Minimum date of period + /// Maximum date of period + /// Percent of avalible values + double CalculatePercAvailable(long seriesID, DateTime minDate, DateTime maxDate); + + /// + /// Get all DataValues for specified seriesID + /// + /// SeriesID + /// DataTable with DataValues + DataTable GetAll(long seriesID); + + /// + /// Get all DataValues (ordered by LocalDateTime) for specified seriesID + /// + /// SeriesID + /// DataTable with DataValues + DataTable GetAllOrderByLocalDateTime(long seriesID); + + /// + /// Get all values for specified seriesID + /// + /// SeriesID + /// List of values. + IList GetValues(long seriesID); + + /// + /// Gets all values for specified seriesID in the time range ordered by time + /// + /// SeriesID + /// First date from localDateTime column filter + /// Last date from localDateTime column filter + /// List of values + IList GetValuesOrderByLocalDateTime(long seriesID, DateTime firstDate, DateTime lastDate); + + /// + /// Gets all times for specified seriesID in the time range ordered by time + /// + /// SeriesID + /// First date from localDateTime column filter + /// Last date from localDateTime column filter + /// List of DateTime's + IList GetTimesOrderByLocalDateTime(long seriesID, DateTime firstDate, DateTime lastDate); + + /// + /// Get DataTable for export + /// + /// SeriesID + /// NoDataValue filter + /// DateColumn filter + /// First date from dateColumn filter + /// Last date from dateColumn filter + /// DataTable for export + DataTable GetTableForExport(long seriesID, double? noDataValue = null, string dateColumn = null, + DateTime? firstDate = null, DateTime? lastDate = null); + + /// + /// Get DataTable for export for time series plot + /// + /// SeriesID + /// DataTable for export. + DataTable GetTableForExportFromTimeSeriesPlot(long seriesID); + + /// + /// Get DataTable with values for GraphView + /// + /// SeriesID + /// NoDataValue + /// StartDate. + /// EndDate. + /// DataTable for GraphView. + DataTable GetTableForGraphView(long seriesID, double nodatavalue, DateTime startDate, DateTime endDate); + + /// + /// Get DataTable with values for EditView + /// + /// SeriesID + /// DataTable for EditView. + DataTable GetTableForEditView(long seriesID); + + double GetMaxValue(long seriesID); + double GetMinValue(long seriesID); + + long GetCountForAllFieldsInSequence(IList seriesIDs); + long GetCountForJustValuesInParallel(IList seriesIDs); + + DataTable GetTableForAllFieldsInSequence(IList seriesIDs, int valuesPerPage, int currentPage); + DataTable GetTableForJustValuesInParallel(IList seriesIDs, int valuesPerPage, int currentPage); + + void DeleteById(long valueID); + void UpdateValuesForEditView(DataTable table); + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IHydroDbOperations.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IHydroDbOperations.cs new file mode 100644 index 00000000..a2cf4113 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IHydroDbOperations.cs @@ -0,0 +1,230 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Common; + +namespace HydroDesktop.Interfaces +{ + /// + /// Commonly used database operations + /// These don't depend on the specific database type + /// + public interface IHydroDbOperations + { + + + /// + /// The database provider factory currently used + /// + DbProviderFactory DbFactory { get; } + + + /// + /// Error message displayed in case of unsuccessful connection + /// + string ErrorMessage { get; } + + + /// + /// Get the database connection string + /// + string ConnectionString { get; } + + /// + /// Database type (supported type is SQLite) + /// + DatabaseTypes DatabaseType { get; } + + /// + /// Test if we are able to connect to the database specified in the constructor + /// + /// true if connection successful, false otherwise + bool TestConnection(); + + + /// + /// Creates a new instance of a database connection + /// + /// the database connection + DbConnection CreateConnection(); + + + /// + /// Creates a new instance of a database command + /// + /// the SQL query + /// the database command + DbCommand CreateCommand(string txtQuery); + + + /// + /// Creates a new command parameter with the specified data type + /// + /// the parameter data type + /// The parameter object + DbParameter CreateParameter(DbType parameterType); + + + /// + /// Creates a new instance of a database command parameter with the specified name + /// and data type + /// + /// the parameter name + /// the parameter data type + /// the database command parameter + DbParameter CreateParameter(string name, DbType parameterType); + + + /// + /// Creates a new dB command parameter with the specified name and value + /// + /// + /// + /// + DbParameter CreateParameter(DbType parameterType, object value); + + /// + /// Adds a parameter to an existing command + /// + DbParameter AddParameter(DbCommand cmd, string parameterName, DbType parameterType); + + + /// + /// Executes a SQL statement without returning any results. + /// This is used for INSERT or DELETE statements. + /// + /// the SQL string + void ExecuteNonQuery(string sqlString); + + + /// + /// Executes a SQL command without returning any results. + /// This is used for INSERT or DELETE commands. + /// + /// the database command + void ExecuteNonQuery(DbCommand cmd); + + + /// + /// Executes an SQL command without returning any results. + /// This is used for INSERT or DELETE commands. The parameter values + /// can be supplied in the parameter array + /// + /// the SQL query (parameters should be marked as + /// ? or @) + /// the values of the command parameters + void ExecuteNonQuery(string txtQuery, object[] parameterValues); + + + /// + /// Generates an SQL Insert command for the given table name. + /// We assume that the first column is the identifier column. + /// + /// name of the database table + /// corresponding DataTable object + /// the insert sql string (parametric query) + string GenerateInsertCommand(string tableName, DataTable table); + + + /// + /// Inserts the content of the data table back to database. If a row already exists that has + /// the unique fields, then an update is done instead of an insert. The primary key (ID) values are modified + /// to reflect their values in the database + /// + /// name of the table in the database + /// the name of the primary key column + /// In-memory Datatable. This table must have exactly same structure as the database table + /// an array of all field names that define an unique key ('business key') + void SaveTable(string tableName, DataTable table, string primaryKey, string[] uniqueFields); + + + /// + /// Creates a new database command with an array of parameters + /// + /// the SQL string + /// the number of command parameters + /// a new instance of a database command object + DbCommand CreateCommand(string sqlString, int numParameters); + + + /// + /// Get the next auto-incremented (primary key) ID + /// + int GetNextID(string tableName, string primaryKeyName); + + + /// + /// Based on a SQL query, returns a data table with all rows that + /// match the query results + /// + /// the sql query statement + /// The resulting data table + DataTable LoadTable(string sqlQuery); + + /// + /// Updates the existing in-memory data table object by + /// the results of the SQL query + /// + /// the existing table + /// the SQL query + DataTable LoadTable(string sqlQuery, DataTable existingTable); + + + /// + /// Based on a SQL query, returns a data table with all rows that + /// match the query results + /// + /// name of the resulting data table + /// the SQL query string + /// The resulting data table + DataTable LoadTable(string tableName, string sqlQuery); + + /// + /// Gets the collection of entities + /// + /// Type of collection + /// Query to select any data + /// Delegate that converted row into entity + /// The values of command parameters. + /// Collection of entities + List Read(string query, Func rowReader, params object[] parameters); + + + /// + /// Based on a database command, returns a data table with all rows that + /// match the query results + /// + /// name of the resulting data table + /// the database command (with parameter values set) + /// The resulting data table + DataTable LoadTable(string tableName, DbCommand cmd); + + + /// + /// Creates a data adapter for the specified data table + /// + /// name of the table in the database + /// name of primary key column + /// a new data adapter associated with the table + DbDataAdapter CreateDataAdapter(string tableName, string primaryKeyName); + + + /// + /// Executes an SQL query with a single output value + /// + /// the SQL query string + /// the values of command parameters + /// the query result (value of first matching row and column) + object ExecuteSingleOutput(string inputString, params object[] parameters); + + + /// + /// returns a DataTable object that has the same schema as + /// the user-specified table with the name + /// + /// name of the table in the database + /// an empty dataTable with the same column names and types + DataTable GetTableSchema(string tableName); + + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IISOMetadataRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IISOMetadataRepository.cs new file mode 100644 index 00000000..eb9f97db --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IISOMetadataRepository.cs @@ -0,0 +1,11 @@ +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces.DAL +{ + /// + /// Interface for repository + /// + public interface IISOMetadataRepository : IRepository + { + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IMethodsRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IMethodsRepository.cs new file mode 100644 index 00000000..465e1fcb --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IMethodsRepository.cs @@ -0,0 +1,34 @@ +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for Methods Repository + /// + public interface IMethodsRepository : IRepository + { + /// + /// Insert method + /// + /// Method description + /// Method link + /// MethodID of inserted method + long InsertMethod(string methodDescription, string methodLink); + + /// + /// Update method + /// + /// Method ID + /// Method description + /// Method link + void UpdateMethod(int methodID, string methodDescription, string methodLink); + + + /// + /// Get MethodID by methodDescription + /// + /// Method Description + /// MethodID or null. + int? GetMethodID(string methodDescription); + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IOffsetTypesRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IOffsetTypesRepository.cs new file mode 100644 index 00000000..30f74cf8 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IOffsetTypesRepository.cs @@ -0,0 +1,11 @@ +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for Repository + /// + public interface IOffsetTypesRepository : IRepository + { + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IQualifiersRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IQualifiersRepository.cs new file mode 100644 index 00000000..926da4bd --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IQualifiersRepository.cs @@ -0,0 +1,15 @@ +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for Repository + /// + public interface IQualifiersRepository : IRepository + { + Qualifier FindByCode(string qualifierCode); + Qualifier FindByCodeOrCreate(string qualifierCode); + void AddQualifier(Qualifier entity); + void Update(Qualifier entity); + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IQualityControlLevelsRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IQualityControlLevelsRepository.cs new file mode 100644 index 00000000..fa4f8f2f --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IQualityControlLevelsRepository.cs @@ -0,0 +1,13 @@ +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for Repository + /// + public interface IQualityControlLevelsRepository : IRepository + { + void AddNew(QualityControlLevel entity); + void Update(QualityControlLevel entity); + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IRepository.cs new file mode 100644 index 00000000..fce69793 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IRepository.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Data; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Non-generic interface for repositories + /// + public interface IRepository + { + /// + /// Get all data from current repository as DataTable + /// + /// DataTable with all data. + DataTable AsDataTable(); + + /// + /// Get the next auto-incremented (primary key) ID + /// + /// ID + [Obsolete("Don't use this method. It added only for backward compatibility with DbOperations.")] + long GetNextID(); + + /// + /// Check that entity exists by given key + /// + /// Entity ID (key) + /// True - entity exists, otherwise - false. + bool Exists(object key); + } + + /// + /// Generic interface for repositories + /// + /// T of entity + public interface IRepository : IRepository where T : BaseEntity + { + /// + /// Get all data from current repository as array of entities. + /// + /// List of entities. + IList GetAll(); + + /// + /// Get entity by key + /// + /// key + /// Entity or null, if it not found. + T GetByKey(object key); + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IRepositoryManager.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IRepositoryManager.cs new file mode 100644 index 00000000..1b7b4f55 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IRepositoryManager.cs @@ -0,0 +1,37 @@ +using System.Data; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// This is a general interface for accessing the data repository + /// + public interface IRepositoryManager + { + /// + /// Simplified version of SaveSeries (for HydroForecaster) + /// + /// site ID + /// variable ID + /// Method description + /// theme name + /// The table with data values. First column must be DateTime and second column must be Double. + /// number of saved data values + int SaveSeries(int siteID, int variableID, string methodDescription, string themeName, DataTable dataValues); + + + /// + /// Saves a data series to the database. The series will be associated with the + /// specified theme. Depending on the OverwriteOptions, this will check if the series + /// already exists in the database and overwrite data values in the database if required. + /// + /// The data series to be saved. This should contain + /// information about site, variable, method, source and quality control level. + /// The theme where this series should belong to + /// The overwrite options. Set this to 'Copy' if + /// a new series should be created in the database. For options other than 'Copy', + /// some of the existing data values in the database may be overwritten. + /// The number of saved data values + int SaveSeries(Series seriesToSave, Theme theme, OverwriteOptions overwrite); + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/ISamplesRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/ISamplesRepository.cs new file mode 100644 index 00000000..69dc5237 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/ISamplesRepository.cs @@ -0,0 +1,11 @@ +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for Repository + /// + public interface ISamplesRepository : IRepository + { + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/ISeriesProvenanceRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/ISeriesProvenanceRepository.cs new file mode 100644 index 00000000..8e7be45f --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/ISeriesProvenanceRepository.cs @@ -0,0 +1,12 @@ +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for Repository + /// + public interface ISeriesProvenanceRepository : IRepository + { + void AddNew(SeriesProvenance entity); + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/ISitesRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/ISitesRepository.cs new file mode 100644 index 00000000..d649b1ce --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/ISitesRepository.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for repository + /// + public interface ISitesRepository : IRepository + { + /// + /// Check that site already exists in the database + /// + /// Site to check. + /// True - if site exists, False - otherwise. + bool Exists(Site site); + + + /// + /// Gets the site objects that have both variables. + /// + /// the first variable + /// the second variable + /// + IList GetSitesWithBothVariables(Variable variable1, Variable variable2); + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/ISourcesRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/ISourcesRepository.cs new file mode 100644 index 00000000..5b77c1ec --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/ISourcesRepository.cs @@ -0,0 +1,12 @@ +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for Repository + /// + public interface ISourcesRepository : IRepository + { + + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/ISpatialReferenceRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/ISpatialReferenceRepository.cs new file mode 100644 index 00000000..701b1c61 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/ISpatialReferenceRepository.cs @@ -0,0 +1,11 @@ +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces.DAL +{ + /// + /// Interface for repository + /// + public interface ISpatialReferenceRepository : IRepository + { + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IUnitConversionsRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IUnitConversionsRepository.cs new file mode 100644 index 00000000..ddda1cdd --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IUnitConversionsRepository.cs @@ -0,0 +1,26 @@ +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for Repository + /// + public interface IUnitConversionsRepository : IRepository + { + /// + /// Check that exists direct conversion from unitA to unitB + /// + /// UnitA (source) + /// UnitB (dest) + /// True - exists direct convrsion from unitA to unitB, otherwise - False. + bool ExistsConversion(Unit unitA, Unit unitB); + + /// + /// Get UnitConversion from unitA to unitB + /// + /// UnitA (source) + /// UnitB (dest) + /// UnitConversion from unitA to unitB, or null, if it not exists. + UnitConversion GetConversion(Unit unitA, Unit unitB); + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IUnitsRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IUnitsRepository.cs new file mode 100644 index 00000000..2b661cb8 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IUnitsRepository.cs @@ -0,0 +1,14 @@ +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for Units Repository + /// + public interface IUnitsRepository : IRepository + { + Unit GetByName(string name); + bool Exists(string name); + void AddUnit(Unit unit); + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DAL/IVariablesRepository.cs b/Source/Core/HydroDesktop.Interfaces/DAL/IVariablesRepository.cs new file mode 100644 index 00000000..b38a92b4 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DAL/IVariablesRepository.cs @@ -0,0 +1,29 @@ +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces +{ + /// + /// Interface for Variables Repository + /// + public interface IVariablesRepository : IRepository + { + /// + /// Insert Variable + /// + /// Variable to insert + void AddVariable(Variable variable); + + /// + /// Update Variable + /// + /// Variable to update + void Update(Variable variable); + + /// + /// Check that variable already exists in the database + /// + /// Variable to check. + /// True - if Variable exists, False - otherwise. + bool Exists(Variable site); + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/DatabaseChangedEventArgs.cs b/Source/Core/HydroDesktop.Interfaces/DatabaseChangedEventArgs.cs new file mode 100644 index 00000000..8c757985 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/DatabaseChangedEventArgs.cs @@ -0,0 +1,20 @@ +using System; + +namespace HydroDesktop.Interfaces +{ + /// + /// information about the changed database + /// + public class DatabaseChangedEventArgs : EventArgs + { + /// + /// Connection string of the new database + /// + public string ConnectionString; + + /// + /// Database type of the new database + /// + public DatabaseTypes DatabaseType; + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/Enums.cs b/Source/Core/HydroDesktop.Interfaces/Enums.cs new file mode 100644 index 00000000..db5a2e65 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/Enums.cs @@ -0,0 +1,50 @@ + +namespace HydroDesktop.Interfaces +{ + /// + /// The database types supported by HydroDesktop. + /// Currently, only SQLite is supported. + /// + public enum DatabaseTypes + { + /// + /// The database type is SQLite + /// + SQLite, + /// + /// The db type is SQL server + /// + SQLServer, + /// + /// The db type is unknown + /// + Unknown + } + + /// + /// The overwrite option when saving data to the database + /// + public enum OverwriteOptions + { + /// + /// All duplicate values in the series are overwritten by new data values + /// + Overwrite, + /// + /// No data values in the original series are replaced by the new data values + /// + Fill, + /// + /// Only data values recorded after the End date of the original series are + /// added to the series + /// + Append, + /// + /// A completely new series is created in the database. The site code and variable + /// code of the new series is the same as the original series, but the DateCreated, + /// SeriesID and Data Values are different. This is like creating a new version of + /// the series. + /// + Copy + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/FilterTypes.cs b/Source/Core/HydroDesktop.Interfaces/FilterTypes.cs new file mode 100644 index 00000000..1ec7828d --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/FilterTypes.cs @@ -0,0 +1,23 @@ + +namespace HydroDesktop.Interfaces +{ + /// + /// The filter types for filtering data series in + /// the series selector + /// + public enum FilterTypes + { + /// + /// Show all series + /// + All, + /// + /// Simple filter + /// + Simple, + /// + /// Complex filter + /// + Complex + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/HydroDesktop.Interfaces.csproj b/Source/Core/HydroDesktop.Interfaces/HydroDesktop.Interfaces.csproj new file mode 100644 index 00000000..47c0d37c --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/HydroDesktop.Interfaces.csproj @@ -0,0 +1,216 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {0B9BA90B-2016-4754-915A-0AD74FD0067A} + Library + Properties + HydroDesktop.Interfaces + HydroDesktop.Interfaces + v4.0 + 512 + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Binaries\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\ + DEBUG;TRACE + full + x86 + prompt + true + true + true + + + + + ..\..\..\Binaries\ + TRACE + true + pdbonly + x86 + prompt + true + false + + + + False + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + False + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + False + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + False + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + False + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + False + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + False + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + False + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + + + + + + + Properties\AssemblyInfoShared.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Designer + + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/HydroDesktop.Interfaces.sln b/Source/Core/HydroDesktop.Interfaces/HydroDesktop.Interfaces.sln new file mode 100644 index 00000000..39bce12d --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/HydroDesktop.Interfaces.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Interfaces", "HydroDesktop.Interfaces.csproj", "{0B9BA90B-2016-4754-915A-0AD74FD0067A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Debug|x86.ActiveCfg = Debug|x86 + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Debug|x86.Build.0 = Debug|x86 + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Release|Any CPU.Build.0 = Release|Any CPU + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Release|x86.ActiveCfg = Release|x86 + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Core/HydroDesktop.Interfaces/ISeriesSelector.cs b/Source/Core/HydroDesktop.Interfaces/ISeriesSelector.cs new file mode 100644 index 00000000..388009a0 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ISeriesSelector.cs @@ -0,0 +1,84 @@ +using System; +using System.ComponentModel; +using System.Windows.Forms; + +namespace HydroDesktop.Interfaces +{ + /// + /// Provides methods for selecting and unselecting data series in the series selector control + /// and interacting with the HydroDesktop database + /// + public interface ISeriesSelector + { + /// + /// Get the array of all checked series IDs + /// + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + int[] CheckedIDList { get; } + + /// + /// Get the array of all visible series IDs as defined by the current filter + /// + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + int[] VisibleIDList { get; } + + /// + /// Get the currently selected (highlighted) series ID. If no series is selected, + /// 0 is returned. + /// + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + int SelectedSeriesID { get; set; } + + /// + /// Get or set the currently used filter expression to limit the number of displayed + /// series. If there is no filter expression used, returns a empty string + /// + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + string FilterExpression { get; set; } + + /// + /// Get the currently used type of filter (All, Simple, Complex) + /// + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + FilterTypes FilterType { get; } + + /// + /// Get the context menu that appears on right-click of a series + /// + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + ContextMenuStrip ContextMenuStrip { get; } + + /// + /// When set to true, the series check boxes are visible. When set to false, the series check + /// boxes are not visible. + /// + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + bool CheckBoxesVisible { get; set; } + + /// + /// Refresh all check boxes according to the status of the database. This method should be + /// called when the data repository database is changed by a different application + /// + void RefreshSelection(); + /// + /// Sets up the database (populates the series selector control by data series from the current + /// database) + /// + void SetupDatabase(); + + /// + /// When a series is checked or unchecked + /// + event SeriesEventHandler SeriesCheck; + + /// + /// When the refresh method is called or the 'Refresh' button is pressed + /// + event EventHandler Refreshed; + + /// + /// Site column name. + /// + string SiteDisplayColumn { get; } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ISeriesView.cs b/Source/Core/HydroDesktop.Interfaces/ISeriesView.cs new file mode 100644 index 00000000..f964e01d --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ISeriesView.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.ComponentModel; + +namespace HydroDesktop.Interfaces +{ + public interface ISeriesView + { + /// + /// The Series selector menu control in the Series View. + /// + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + ISeriesSelector SeriesSelector { get; } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/BaseEntity.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/BaseEntity.cs new file mode 100644 index 00000000..950f2b19 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/BaseEntity.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Base Entity overrides the comparison operators + /// so that the persistence tests will work when comparing + /// referenced entities during testing. + /// + /// From http://pastie.org/434198 + [Serializable] + public class BaseEntity : IEquatable, ICloneable + { + /// + /// Id (primary key) of the entity + /// + public virtual long Id { get; set; } + + /// + /// Two entities are considered equal if they have the same Id + /// + /// other entity + /// true if the entities are considered equal + public virtual bool Equals(BaseEntity other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + if (Id == 0 || other.Id == 0) return false; + return other.Id == Id; + } + + /// + /// A base entity and another object are considered equal + /// only if they represent a reference to the same object + /// instance + /// + /// the compared object + /// true if the objects are considered equal + public override bool Equals(object obj) + { + if (obj.Equals(DBNull.Value)) return false; + if (ReferenceEquals(this, obj)) return true; + + return Equals((BaseEntity)obj); + } + + /// + /// Creates a hash code identifier using the Id + /// + /// + public override int GetHashCode() + { + return (Id.GetHashCode() * 397) ^ GetType().GetHashCode(); + } + + /// + /// equals operator for comparing two base entities + /// + /// left side of the operator + /// right side of the operator + /// true if entities are considered equal + public static bool operator ==(BaseEntity left, BaseEntity right) + { + return Equals(left, right); + } + + /// + /// not equals operator for comparing two base entities + /// + /// left side of != operator + /// right side of != operator + /// true if entities are considered equal + public static bool operator !=(BaseEntity left, BaseEntity right) + { + return !Equals(left, right); + } + + # region Validation + + /// + /// Return true if the object is valid + /// + public virtual bool IsValid + { + get { return (!GetRuleViolations().Any()); } + } + + /// + /// Show all rule violations + /// + /// rule violations + public virtual IEnumerable GetRuleViolations() + { + yield break; // basically, empty + } + + #endregion + + public object Clone() + { + var result = (BaseEntity)MemberwiseClone(); + OnCopy(result); + return result; + } + + protected virtual void OnCopy(BaseEntity copy) + { + // do nothing here + } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/Constants.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Constants.cs new file mode 100644 index 00000000..f433bd9f --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Constants.cs @@ -0,0 +1,13 @@ + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// This class is used to store some + /// constant string values + /// + internal static class Constants + { + public const string Unknown = "unknown"; + public const string NotCensored = "nc"; + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/DataFile.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/DataFile.cs new file mode 100644 index 00000000..75d63de5 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/DataFile.cs @@ -0,0 +1,71 @@ +using System; + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// represents either a WaterML data file returned + /// by the WaterOneFlow service or a source file used + /// for importing data into HydroDesktop. + /// + public class DataFile : BaseEntity + { + /// + /// The WaterML file name + /// + public virtual string FileName { get; set; } + /// + /// The WaterML file description + /// + public virtual string FileDescription { get; set; } + /// + /// The WaterML file type + /// + public virtual string FileType { get; set; } + /// + /// The WaterML file path + /// + public virtual string FilePath { get; set; } + /// + /// The WaterML file origin + /// + public virtual string FileOrigin { get; set; } + /// + /// The method used for retrieving the WaterML file + /// (from GetValues call, created by HydroDesktop, other method) + /// + public virtual string LoadMethod { get; set; } + /// + /// The time of loading data from the WaterML file + /// + public virtual DateTime LoadDateTime { get; set; } + //public virtual int QueryID { get; set; } + /// + /// Information about WaterML query parameters + /// + public virtual QueryInfo QueryInfo { get; set; } + + /// + /// Determines if the file was retrieved from a water one flow service + /// + public virtual bool IsFromWaterOneFlow + { + get { return (QueryInfo != null); } + } + + /// + public override bool Equals(BaseEntity other) + { + var file2 = other as DataFile; + if (file2 == null) + { + return base.Equals(other); + } + return (FileName.Equals(file2.FileName) && FilePath.Equals(file2.FilePath)); + } + /// + public override int GetHashCode() + { + return (FileName + FilePath).GetHashCode(); + } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/DataServiceInfo.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/DataServiceInfo.cs new file mode 100644 index 00000000..ff0f4ded --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/DataServiceInfo.cs @@ -0,0 +1,233 @@ +using System; + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Represents information about a web service + /// + public class DataServiceInfo : BaseEntity + { + /// + /// Creates a new default data service info object + /// + public DataServiceInfo() + { + EndpointURL = Constants.Unknown; + ServiceTitle = Constants.Unknown; + ServiceCode = Constants.Unknown; + ServiceName = Constants.Unknown; + ServiceType = "CUAHSI"; + Version = 1.0; + Protocol = "soap"; + EndpointURL = Constants.Unknown; + DescriptionURL = Constants.Unknown; + NorthLatitude = 90.0; + SouthLatitude = -90.0; + EastLongitude = 180.0; + WestLongitude = -180.0; + Abstract = Constants.Unknown; + ContactName = Constants.Unknown; + ContactEmail = Constants.Unknown; + Citation = Constants.Unknown; + IsHarvested = false; + } + + /// + /// Creates a copy of the data service object with the same + /// properties as the original + /// + /// The original dataServiceInfo object + public DataServiceInfo(DataServiceInfo original) + { + ServiceTitle = original.ServiceTitle; + ServiceCode = original.ServiceCode; + ServiceName = original.ServiceName; + ServiceType = original.ServiceType; + Version = original.Version; + Protocol = original.Protocol; + EndpointURL = original.EndpointURL; + DescriptionURL = original.DescriptionURL; + NorthLatitude = original.NorthLatitude; + SouthLatitude = original.SouthLatitude; + EastLongitude = original.EastLongitude; + WestLongitude = original.WestLongitude; + Abstract = original.Abstract; + ContactName = original.ContactName; + ContactEmail = original.ContactEmail; + Citation = original.Citation; + IsHarvested = original.IsHarvested; + HarveDateTime = original.HarveDateTime; + } + + /// + /// Creates a new data service entry with the specified url and service title + /// + /// the url of the .asmx web page + /// the short description of the web service + public DataServiceInfo(string serviceURL, string serviceTitle) + { + ServiceTitle = serviceTitle; + ServiceCode = Constants.Unknown; + ServiceName = Constants.Unknown; + ServiceType = "CUAHSI"; + Version = 1.0; + Protocol = "soap"; + EndpointURL = serviceURL; + DescriptionURL = serviceURL; + NorthLatitude = 90.0; + SouthLatitude = -90.0; + EastLongitude = 180.0; + WestLongitude = -180.0; + Abstract = Constants.Unknown; + ContactName = Constants.Unknown; + ContactEmail = Constants.Unknown; + Citation = Constants.Unknown; + IsHarvested = false; + } + + /// + /// The service code (for example NWISDW, txEvap,...) + /// + public virtual string ServiceCode { get; set; } + + /// + /// The service name. In most cases the name is 'WaterOneFlow' or 'HISCentral'. + /// + public virtual string ServiceName { get; set; } + + /// + /// The service type. Default value is 'CUAHSI'. + /// + public virtual string ServiceType { get; set; } + + /// + /// The version of the service (1.0 or 1.1) + /// + public virtual double Version { get; set; } + + /// + /// The service protocol (SOAP or REST) + /// + public virtual string Protocol { get; set; } + + /// + /// The URI of the web service. For SOAP web services, + /// the URI ends with .asmx (without the ?WSDL suffix) + /// + public virtual string EndpointURL { get; set; } + + /// + /// The URI of a web page with detailed description of the + /// web service + /// + public virtual string DescriptionURL { get; set; } + + /// + /// Latitude of the northernmost site provided by the + /// web service. Default value is +90 + /// + public virtual double NorthLatitude { get; set; } + + /// + /// Latitude of the southernmost site provided by the + /// web service. Default value is -90 + /// + public virtual double SouthLatitude { get; set; } + + /// + /// Longitude of the easternmost site provided by the + /// web service. Default value is +180 + /// + public virtual double EastLongitude { get; set; } + + /// + /// Longitude of the westernmost site provided by the + /// web service. Default value is -180 + /// + public virtual double WestLongitude { get; set; } + + /// + /// (Optional) Abstract with a description of the web service + /// + public virtual string Abstract { get; set; } + + /// + /// (Optional) The contact name + /// + public virtual string ContactName { get; set; } + + /// + /// (Optional) The contact email + /// + public virtual string ContactEmail { get; set; } + + /// + /// (Optional) the citation + /// + public virtual string Citation { get; set; } + + /// + /// True if the data from the web service have been harvested + /// + public virtual bool IsHarvested { get; set; } + + /// + /// The last time this service was harvested by the client + /// + public virtual DateTime HarveDateTime { get; set; } + + /// + /// A brief description or name of the web service + /// + public virtual string ServiceTitle { get; set; } + + /// + /// The total number of data values provided by the web service + /// + public virtual Int64 ValueCount { get; set; } + + /// + /// The total number of sites provided by the web service + /// + public virtual int SiteCount { get; set; } + + /// + /// The total number of sites provided by the web service + /// + public virtual int VariableCount { get; set; } + + /// + /// The Id of this web service as specified by HIS Central + /// Only specify this property when the web service is + /// registered at HIS Central. + /// + public virtual int HISCentralID { get; set; } + + /// + /// Creates a copy of this instance + /// + public virtual DataServiceInfo Copy() + { + return new DataServiceInfo(this); + } + + /// + public override bool Equals(BaseEntity other) + { + DataServiceInfo otherService = other as DataServiceInfo; + if (otherService == null) + { + return base.Equals(other); + } + else + { + return EndpointURL.Equals(otherService.EndpointURL); + } + } + /// + public override int GetHashCode() + { + return EndpointURL.GetHashCode(); + } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/DataTypeCV.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/DataTypeCV.cs new file mode 100644 index 00000000..705d576c --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/DataTypeCV.cs @@ -0,0 +1,103 @@ +using System.ComponentModel; + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Used to populate the DataType field of the Variables table + /// + /// + /// See http://his.cuahsi.org/mastercvreg/edit_cv11.aspx?tbl=DataTypeCV&id=485576768 + /// + public enum DataTypeCV + { + /// + /// The data type is unknown + /// + [Description("Unknown")] + Unknown = 0, + + /// + /// The values represent the average over a time interval, such as daily mean discharge or daily mean temperature. + /// + [Description("Average")] + Average, + + /// + /// Best Easy Systematic Estimator BES = (Q1 +2Q2 +Q3)/4. Q1, Q2, and Q3 are first, second, and third quartiles. See Woodcock, F. and Engel, C., 2005: Operational Consensus Forecasts.Weather and Forecasting, 20, 101-111. (http://www.bom.gov.au/nmoc/bulletins/60/article_by_Woodcock_in_Weather_and_Forecasting.pdf) and Wonnacott, T. H., and R. J. Wonnacott, 1972: Introductory Statistics. Wiley, 510 pp. + /// + [Description("Best Easy Systematic Estimator")] + BestEasySystematicEstimator, + + /// + /// The values are categorical rather than continuous valued quantities. Mapping from Value values to categories is through the CategoryDefinitions table. + /// + [Description("Categorical")] + Categorical, + + /// + /// The values are quantities that can be interpreted as constant for all time, or over the time interval to a subsequent measurement of the same variable at the same site. + /// + [Description("Constant Over Interval")] + ConstantOverInterval, + + /// + /// A quantity specified at a particular instant in time measured with sufficient frequency (small spacing) to be interpreted as a continuous record of the phenomenon. + /// + [Description("Continuous")] + Continuous, + + /// + /// The values represent the cumulative value of a variable measured or calculated up to a given instant of time, such as cumulative volume of flow or cumulative precipitation. + /// + [Description("Cumulative")] + Cumulative, + + /// + /// The values represent the incremental value of a variable over a time interval, such as the incremental volume of flow or incremental precipitation. + /// + [Description("Incremental")] + Incremental, + + /// + /// The values are the maximum values occurring at some time during a time interval, such as annual maximum discharge or a daily maximum air temperature. + /// + [Description("Maximum")] + Maximum, + + /// + /// The values represent the median over a time interval, such as daily median discharge or daily median temperature. + /// + [Description("Median")] + Median, + + /// + /// The values are the minimum values occurring at some time during a time interval, such as 7-day low flow for a year or the daily minimum temperature. + /// + [Description("Minimum")] + Minimum, + + /// + /// The values are the most frequent values occurring at some time during a time interval, such as annual most frequent wind direction. + /// + [Description("Mode")] + Mode, + + /// + /// The phenomenon is sampled at a particular instant in time but with a frequency that is too coarse for interpreting the record as continuous. This would be the case when the spacing is significantly larger than the support and the time scale of fluctuation of the phenomenon, such as for example infrequent water quality samples. + /// + [Description("Sporadic")] + Sporadic, + + /// + /// The values represent the standard deviation of a set of observations made over a time interval. Standard deviation computed using the unbiased formula SQRT(SUM((Xi-mean)^2)/(n-1)) are preferred. The specific formula used to compute variance can be noted in the methods description. + /// + [Description("StandardDeviation")] + StandardDeviation, + + /// + /// The values represent the variance of a set of observations made over a time interval. Variance computed using the unbiased formula SUM((Xi-mean)^2)/(n-1) are preferred. The specific formula used to compute variance can be noted in the methods description. + /// + [Description("Variance")] + Variance + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/DataValue.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/DataValue.cs new file mode 100644 index 00000000..07107706 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/DataValue.cs @@ -0,0 +1,230 @@ +using System; +using System.Globalization; + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Information about a data value. This allows to specify a method, source + /// and quality control level associated with the data value. + /// Some data values can have multiple qualifiers. In this case, the Qualifier + /// property is the composite qualifier from the multiple qualifiers. + /// + public class DataValue : BaseEntity + { + private DateTime _localDateTime = DateTime.MinValue; + private DateTime _dateTimeUTC = DateTime.MinValue; + private double _utcOffset; + + /// + /// Creates a new empty data value + /// + public DataValue() + { + CensorCode = "nc"; + } + + /// + /// Creates a new data value object with the user-specified value. + /// The local time and the UTC Offset (UTC Offset = time[LocalTime] - time[UTC]) + /// needs to be specified. + /// + /// the data value + /// the local time + /// the UTC Offset (UTC Offset = time[LocalTime] - time[UTC]) + public DataValue(double value, DateTime localDateTime, double utcOffset) + { + CensorCode = "nc"; + LocalDateTime = localDateTime; + UTCOffset = utcOffset; + Value = value; + } + + /// + /// The Copy Constructor. + /// Creates a new copy of the data value from the + /// original data value. The new copy is not associated + /// with any series or data file. + /// + /// + public DataValue(DataValue original) + { + CensorCode = original.CensorCode; + DataFile = null; + Series = null; + DateTimeUTC = original.DateTimeUTC; + LocalDateTime = original.LocalDateTime; + OffsetType = original.OffsetType; + OffsetValue = original.OffsetValue; + Qualifier = original.Qualifier; + Sample = original.Sample; + UTCOffset = original.UTCOffset; + ValueAccuracy = original.ValueAccuracy; + Value = original.Value; + } + + /// + /// Gets or sets the recorded data value. The units of the value can be obtained by + /// calling this.Series.Variable.Units + /// + public virtual double Value { get; set; } + + /// + /// Gets or sets the data value accuracy (default value is zero) + /// + public virtual double ValueAccuracy { get; set; } + + /// + /// Gets or sets the local date time in the local time zone + /// + public virtual DateTime LocalDateTime + { + get + { + return _localDateTime; + } + + set + { + _localDateTime = value; + if (_dateTimeUTC > DateTime.MinValue) + { + _utcOffset = (_localDateTime - _dateTimeUTC).TotalHours; + } + else + { + _dateTimeUTC = _localDateTime.AddHours(_utcOffset); + } + } + } + + /// + /// Gets or sets the UTC Offset (difference between local time and UTC) + /// The UTC offset should be a value between -12 and +12. For example, America has negative + /// UTC Offset values and India has positive utc offset values. + /// + public virtual double UTCOffset + { + get + { + return _utcOffset; + } + + set + { + _utcOffset = value; + if (_localDateTime > DateTime.MinValue) + { + DateTime calculatedTimeUTC = _localDateTime.AddHours(-_utcOffset); + if (_dateTimeUTC != calculatedTimeUTC) + { + _dateTimeUTC = calculatedTimeUTC; + } + } + else if (_dateTimeUTC > DateTime.MinValue) + { + DateTime calculatedLocalTime = _dateTimeUTC.AddHours(-_utcOffset); + if (_localDateTime != calculatedLocalTime) + { + _localDateTime = calculatedLocalTime; + } + } + + } + } + + /// + /// Gets or sets the Time in UTC when the value was recorded. Setting DateTimeUTC + /// will update the UTCOffset property of the data value. + /// + public virtual DateTime DateTimeUTC + { + get + { + return _dateTimeUTC; + } + set + { + _dateTimeUTC = value; + if (LocalDateTime > DateTime.MinValue) + { + double calculatedUTCOffset = (LocalDateTime - _dateTimeUTC).TotalHours; + + if (_utcOffset != calculatedUTCOffset) + { + _utcOffset = calculatedUTCOffset; + } + } + else + { + _localDateTime = _dateTimeUTC.AddHours(-_utcOffset); + } + } + } + + /// + /// The vertical offset of the observation + /// + public virtual double OffsetValue { get; set; } + + /// + /// The censor code specifies data value uncertainity. + /// If the value is not censored then the censor code is 'nc'. + /// + public virtual string CensorCode { get; set; } + + /// + /// The data series to which this data value belongs. + /// One data value can only be part of one data series. + /// + public virtual Series Series { get; set; } + + /// + /// The qualifier information explaining measurement circumstances + /// In some cases this is a compound qualifier (such as 'Ae' or 'p,ice') + /// + public virtual Qualifier Qualifier { get; set; } + + /// + /// The DataFile is the xml or other file from which the values had been read + /// + public virtual DataFile DataFile { get; set; } + + /// + /// The Sample property should be specified if the data value is part of a water quality sample + /// + public virtual Sample Sample { get; set; } + + /// + /// The type of the vertical offset (should be null if vertical offset is zero) + /// + public virtual OffsetType OffsetType { get; set; } + + public bool IsCensoredValue + { + get { return IsCensored(CensorCode); } + } + + public static bool IsCensored(string censorCode) + { + return !(string.Equals(censorCode, "nc", StringComparison.OrdinalIgnoreCase) || + string.Equals(censorCode, "unknown", StringComparison.OrdinalIgnoreCase)); + } + + /// + /// Creates a copy of the data value. The copied value is not associated with any series. + /// + /// + public virtual DataValue Copy() + { + return new DataValue(this); + } + /// + /// String representation of the data value in Time|Value format + /// + /// String representation of the data value in Time|Value format + public override string ToString() + { + return LocalDateTime.ToString(CultureInfo.InvariantCulture) + "|" + Value.ToString(CultureInfo.InvariantCulture); + } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/ISOMetadata.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/ISOMetadata.cs new file mode 100644 index 00000000..d42abaee --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/ISOMetadata.cs @@ -0,0 +1,48 @@ + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// ISO Metadata Information + /// + public class ISOMetadata : BaseEntity + { + /// + /// The ISO metadata topic category + /// + public virtual string TopicCategory { get; set; } + /// + /// The ISO metadata title + /// + public virtual string Title { get; set; } + /// + /// The ISO metadata abstract + /// + public virtual string Abstract { get; set; } + /// + /// The ISO metadata profile version + /// + public virtual string ProfileVersion { get; set; } + /// + /// The ISO metadata link + /// + public virtual string MetadataLink { get; set; } + + /// + /// When the ISO metadata is unknown + /// + public static ISOMetadata Unknown + { + get + { + return new ISOMetadata + { + TopicCategory = Constants.Unknown, + Title = Constants.Unknown, + Abstract = Constants.Unknown, + ProfileVersion = Constants.Unknown, + MetadataLink = Constants.Unknown + }; + } + } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/LabMethod.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/LabMethod.cs new file mode 100644 index 00000000..747ebead --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/LabMethod.cs @@ -0,0 +1,49 @@ + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Information about a laboratory method + /// used for analyzing a water quality sample + /// + public class LabMethod : BaseEntity + { + /// + /// Lab name + /// + public virtual string LabName { get; set; } + /// + /// Lab Organization + /// + public virtual string LabOrganization { get; set; } + /// + /// Lab Method name + /// + public virtual string LabMethodName { get; set; } + /// + /// Lab method description + /// + public virtual string LabMethodDescription { get; set; } + /// + /// Lab method link + /// + public virtual string LabMethodLink { get; set; } + + /// + /// When the lab method is unknown + /// + public static LabMethod Unknown + { + get + { + return new LabMethod + { + LabName =Constants.Unknown, + LabOrganization = Constants.Unknown, + LabMethodDescription = Constants.Unknown, + LabMethodName = Constants.Unknown, + LabMethodLink = Constants.Unknown + }; + } + } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/Method.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Method.cs new file mode 100644 index 00000000..6f51cef8 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Method.cs @@ -0,0 +1,57 @@ + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Represents an observation method or a data derivation / simulation / + /// modeling method + /// + public class Method : BaseEntity + { + /// + /// Creates a new unknown method object + /// + public Method() + { + Code = 0; + Description = Constants.Unknown; + Link = Constants.Unknown; + } + + /// + /// The code of the method (optional) + /// + public virtual int Code { get; set; } + /// + /// Method description + /// + public virtual string Description { get; set; } + /// + /// Method link (web address) + /// + public virtual string Link { get; set; } + /// + /// Shows the method description + /// + /// Method description + public override string ToString() + { + return Description; + } + + /// + /// When the method is unknown + /// + public static Method Unknown + { + get + { + return new Method + { + Description = Constants.Unknown, + Link = Constants.Unknown, + Code = 0 + }; + } + } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/OffsetType.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/OffsetType.cs new file mode 100644 index 00000000..b83fcfcf --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/OffsetType.cs @@ -0,0 +1,52 @@ +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Information about the type of the vertical offset + /// of a data value + /// + public class OffsetType : BaseEntity + { + /// + /// Creates a new default vertical offset type + /// (offset is unknown + /// + public OffsetType() + { + Description = Constants.Unknown; + Unit = Unit.Unknown; + } + /// + /// Offset type description + /// + public virtual string Description { get; set; } + + /// + /// The distance units of the vertical offset + /// + public virtual Unit Unit { get; set; } + + /// + /// When the offset is unknown + /// + public static OffsetType Unknown + { + get + { + return new OffsetType + { + Description = Constants.Unknown, + Unit = Unit.Unknown, + }; + } + } + + /// + /// Shows the description of the offset type + /// + /// offset type description string + public override string ToString() + { + return Description; + } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/Qualifier.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Qualifier.cs new file mode 100644 index 00000000..ebffe782 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Qualifier.cs @@ -0,0 +1,119 @@ +using System; +using System.Collections.Generic; + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// The qualifier provides additional information about a data value + /// this includes information about special conditions that occurred + /// during the observation. + /// + public class Qualifier : BaseEntity + { + /// + /// qualifier code (for example "P" or "Ice") + /// + public virtual string Code { get; set; } + /// + /// More detailed qualifier description + /// + public virtual string Description { get; set; } + + /// + /// Returns true if this qualifier is a composite qualifier + /// (combination of two different qualifiers such as "P, ice").. + /// + public virtual bool IsCompositeQualifier + { + get + { + return (Code.IndexOf(",") >= 0); + } + } + /// + /// String representation of the qualifier + /// + /// the qualifier code + public override string ToString() + { + return Code; + } + + /// + /// Two qualifieres are equal if they have the same qualifier code. + /// + public override bool Equals(object obj) + { + var other = obj as Qualifier; + if (other == null) return base.Equals(obj); + + return Code.Equals(other.Code); + } + + /// + /// The hash code (uses the qualifier code) + /// + /// the hash code of the qualifier code + public override int GetHashCode() + { + if (string.IsNullOrEmpty(Code)) return base.GetHashCode(); + return Code.GetHashCode(); + } + + /// + /// If the qualifier is a composite qualifier, split it into a list of + /// simple qualifiers + /// + /// The collection of simple qualifiers + public virtual IList GetSimpleQualifiers() + { + var resultList = new List(); + if (IsCompositeQualifier == false) + { + resultList.Add(this); + } + else + { + var separators = new string[] {","}; + var codes = Code.Split(separators,StringSplitOptions.RemoveEmptyEntries); + var descriptions = Description.Split(separators, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < codes.Length; i++) + { + var newQual = new Qualifier(); + newQual.Code = codes[i].Trim(); + newQual.Description = descriptions[i].Trim(); + resultList.Add(newQual); + } + } + return resultList; + } + + /// + /// Creates a new composite qualifier. This is a qualifier with multiple codes + /// for example 'p, ice'. This is used to simplify access to the database in + /// cases when one data value can have only one qualifier. + /// + /// The list of multiple qualifiers + /// The new composite qualifier + public static Qualifier CreateCompositeQualifier(IList qualifiers) + { + string newDescription = ""; + string newCode = ""; + foreach (Qualifier qual in qualifiers) + { + newDescription += qual.Description + ", "; + newCode += qual.Code + ", "; + } + newDescription = newDescription.Remove(newDescription.LastIndexOf(",")); + newCode = newCode.Remove(newCode.LastIndexOf(",")); + + Qualifier newQualifier = new Qualifier(); + newQualifier.Code = newCode; + newQualifier.Description = newDescription; + + return newQualifier; + } + } + + +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/QualityControlLevel.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/QualityControlLevel.cs new file mode 100644 index 00000000..f67c88cd --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/QualityControlLevel.cs @@ -0,0 +1,56 @@ + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Specifies the quality control level (raw data, approved data) + /// + public class QualityControlLevel : BaseEntity + { + /// + /// The original identifier of the quality control level specified by a + /// web service. This is an optional property. Set this property to 0 if not + /// used. + /// + public virtual int OriginId { get; set; } + + /// + /// Quality control level code specified by the web service + /// + public virtual string Code { get; set; } + /// + /// Quality control level definition specified + /// + public virtual string Definition { get; set; } + + /// + /// Quality control level explanation + /// + public virtual string Explanation { get; set; } + + /// + /// Returns a string representation of the quality control level + /// + /// quality control level definition string + public override string ToString() + { + return Definition; + } + + /// + /// When the quality control level is unknown or unspecified + /// + public static QualityControlLevel Unknown + { + get + { + return new QualityControlLevel + { + Code = Constants.Unknown, + Definition = Constants.Unknown, + Explanation = Constants.Unknown, + OriginId = 0 + }; + } + } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/QueryInfo.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/QueryInfo.cs new file mode 100644 index 00000000..32296b68 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/QueryInfo.cs @@ -0,0 +1,47 @@ +using System; + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Information about the query parameters submitted when calling + /// a WaterOneFlow web service + /// + public class QueryInfo : BaseEntity + { + /// + /// The site code specified as the location parameter + /// + public virtual string LocationParameter { get; set; } + + /// + /// The variable code specified as the variable parameter + /// + public virtual string VariableParameter { get; set; } + + /// + /// The begin date time parameter + /// + public virtual DateTime BeginDateParameter { get; set; } + + /// + /// The end date time parameter + /// + public virtual DateTime EndDateParameter { get; set; } + + /// + /// The authentication token (only required by some services) + /// + public virtual string AuthenticationToken { get; set; } + + /// + /// The date and time when the query was submitted and the web + /// service method was called + /// + public virtual DateTime QueryDateTime { get; set; } + + /// + /// The web service associated with this query + /// + public virtual DataServiceInfo DataService { get; set; } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/RuleViolation.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/RuleViolation.cs new file mode 100644 index 00000000..4350332c --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/RuleViolation.cs @@ -0,0 +1,38 @@ +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Information about violation of rules + /// + public class RuleViolation + { + /// + /// Rule violation error message + /// + public string ErrorMessage { get; private set; } + + /// + /// rule violation property name + /// + public string PropertyName { get; private set; } + + /// + /// Creates a new instance of a rule violation + /// + /// the error message + public RuleViolation(string errorMessage) + { + ErrorMessage = errorMessage; + } + + /// + /// Creates a new instance of a rule violation + /// + /// the rule violation error message + /// the rule violation property name + public RuleViolation(string errorMessage, string propertyName) + { + ErrorMessage = errorMessage; + PropertyName = propertyName; + } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/Sample.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Sample.cs new file mode 100644 index 00000000..2a946d7e --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Sample.cs @@ -0,0 +1,43 @@ + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Represents a water quality sample. One sample + /// can have multiple data values. + /// + public class Sample : BaseEntity + { + /// + /// Type of the sample + /// + public virtual string SampleType { get; set; } + + /// + /// Sample code assigned by the laboratory + /// + public virtual string LabSampleCode { get; set; } + + /// + /// The lab method used for analysis of this + /// sample + /// + public virtual LabMethod LabMethod { get; set; } + + /// + /// When the lab method is unknown + /// + /// a default 'Unknown' lab method + public static Sample Unknown + { + get + { + return new Sample + { + SampleType = Constants.Unknown, + LabSampleCode = Constants.Unknown, + LabMethod = LabMethod.Unknown + }; + } + } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/SampleMediumCV.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/SampleMediumCV.cs new file mode 100644 index 00000000..4c0d328f --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/SampleMediumCV.cs @@ -0,0 +1,109 @@ +using System.ComponentModel; + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Used to populate the SampleMedium field in the Variables table + /// + /// + /// See http://his.cuahsi.org/mastercvreg/edit_cv11.aspx?tbl=SampleMediumCV&id=533576939 + /// + public enum SampleMediumCV + { + /// + /// The sample medium is unknown + /// + [Description("Unknown")] + Unknown = 0, + + /// + /// Sample taken from the atmosphere + /// + [Description("Air")] + Air, + + /// + /// A mixture of formation water and hydraulic fracturing injectates deriving from oil and gas wells prior to placing wells into production + /// + [Description("Flowback water")] + Flowbackwater, + + /// + /// Sample taken from water located below the surface of the ground, such as from a well or spring + /// + [Description("Groundwater")] + Groundwater, + + /// + /// Sample taken from raw municipal waste water stream. + /// + [Description("Municipal waste water")] + Municipalwastewater, + + /// + /// Sample medium not relevant in the context of the measurement + /// + [Description("Not Relevant")] + NotRelevant, + + /// + /// Sample medium other than those contained in the CV + /// + [Description("Other")] + Other, + + /// + /// Sample taken from solid or liquid precipitation + /// + [Description("Precipitation")] + Precipitation, + + /// + /// Fluids produced from wells during oil or gas production which may include formation water, injected fluids, oil and gas. + /// + [Description("Production water")] + Productionwater, + + /// + /// Sample taken from the sediment beneath the water column + /// + [Description("Sediment")] + Sediment, + + /// + /// Observation in, of or sample taken from snow + /// + [Description("Snow")] + Snow, + + /// + /// Sample taken from the soil + /// + [Description("Soil")] + Soil, + + /// + /// Air contained in the soil pores + /// + [Description("Soil air")] + Soilair, + + /// + /// the water contained in the soil pores + /// + [Description("Soil water")] + Soilwater, + + /// + /// Observation or sample of surface water such as a stream, river, lake, pond, reservoir, ocean, etc. + /// + [Description("Surface Water")] + SurfaceWater, + + /// + /// Sample taken from the tissue of a biological organism + /// + [Description("Tissue")] + Tissue, + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/Series.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Series.cs new file mode 100644 index 00000000..4a299d00 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Series.cs @@ -0,0 +1,255 @@ +using System; +using System.Collections.Generic; + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Represents a time series. The time series is a combination of a specific site, variable, + /// method, source and quality control level. + /// + public class Series : BaseEntity + { + #region Constructors + + /// + /// Creates a new series with properties set to default. + /// + public Series() + { + DataValueList = new List(); + ValueCount = 0; + ThemeList = new List(); + Method = Method.Unknown; + Source = Source.Unknown; + QualityControlLevel = QualityControlLevel.Unknown; + } + + /// + /// Creates a new data series associated with the specific site, variable, + /// method, quality control level and source. This series will contain zero + /// data values after creation. + /// + /// the observation site (location of measurement) + /// the observed variable + /// the observation method + /// the quality control level of observed values + /// the source of the data values for this series + public Series(Site site, Variable variable, Method method, QualityControlLevel qualControl, Source source) + { + DataValueList = new List(); + ValueCount = 0; + ThemeList = new List(); + + Site = site; + Variable = variable; + Method = method; + QualityControlLevel = qualControl; + Source = source; + } + + /// + /// Creates a copy of the original series. If copyDataValues is set to true, + /// then the data values are also copied. + /// The new series shares the same site, variable, source, method and quality + /// control level. The new series does not belong to any data theme. + /// + /// The original series + /// if set to true, then all data values are copied + public Series(Series original, bool copyDataValues) + { + //TODO: need to include series provenance information + + BeginDateTime = original.BeginDateTime; + EndDateTime = original.EndDateTime; + CreationDateTime = DateTime.Now; + DataValueList = original.DataValueList; + EndDateTime = original.EndDateTime; + EndDateTimeUTC = original.EndDateTimeUTC; + IsCategorical = original.IsCategorical; + Method = original.Method; + QualityControlLevel = original.QualityControlLevel; + Source = original.Source; + UpdateDateTime = DateTime.Now; + ValueCount = original.ValueCount; + Variable = original.Variable; + + //to copy the data values + if (copyDataValues) + { + foreach (DataValue originalDataValue in original.DataValueList) + { + AddDataValue(originalDataValue.Copy()); + } + } + } + + #endregion + + #region Properties + + /// + /// True if the series represents categorical data + /// + public virtual bool IsCategorical { get; set; } + + /// + /// The local time when the first value of the series was measured + /// + public virtual DateTime BeginDateTime { get; set; } + + /// + /// The local time when the last value of the series was measured + /// + public virtual DateTime EndDateTime { get; set; } + + /// + /// Gets or sets the begin date time of series in UTC + /// + public virtual DateTime BeginDateTimeUTC { get; set; } + + /// + /// Gets or sets the end date time of the series in UTC + /// + public virtual DateTime EndDateTimeUTC { get; set; } + + /// + /// The number of data values in this series + /// + public virtual int ValueCount { get; set; } + + /// + /// The time when the series has been saved to the HydroDesktop + /// repository + /// + public virtual DateTime CreationDateTime { get; set; } + + /// + /// A 'Subscribed' Data series may be regularly updated by appending data + /// + public virtual bool Subscribed { get; set; } + + /// + /// The time when this data series was last updated (its data values were changed) + /// + public virtual DateTime UpdateDateTime { get; set; } + + /// + /// Time when this series was last checked + /// + public virtual DateTime LastCheckedDateTime { get; set; } + + /// + /// The site where the data is measured + /// + public virtual Site Site { get; set; } + + /// + /// The measured variable + /// + public virtual Variable Variable { get; set; } + + /// + /// The method of measurement + /// + public virtual Method Method { get; set; } + + /// + /// The primary source of the data + /// + public virtual Source Source { get; set; } + + /// + /// The primary quality control level of the data + /// + public virtual QualityControlLevel QualityControlLevel { get; set; } + + /// + /// The list of all values belonging to this data series + /// + public virtual IList DataValueList { get; protected set; } + + /// + /// The list of all themes containing this series + /// + public virtual IList ThemeList { get; protected set; } + + #endregion + + #region Public methods + + public void UpdateSeriesInfoFromDataValues() + { + if (DataValueList.Count > 0) + { + ValueCount = DataValueList.Count; + EndDateTimeUTC = DataValueList[DataValueList.Count - 1].DateTimeUTC; + BeginDateTimeUTC = DataValueList[0].DateTimeUTC; + + EndDateTime = DataValueList[DataValueList.Count - 1].LocalDateTime; + BeginDateTime = DataValueList[0].LocalDateTime; + } + else + { + ValueCount = 0; + } + } + + /// + /// String representation of the series + /// SiteName | VariableName | DataType + /// + public override string ToString() + { + return Site.Name + "|" + Variable.Name + "|" + Variable.DataType; + } + + /// + /// Associates an existing data value with this data series + /// + /// + public virtual void AddDataValue(DataValue val) + { + DataValueList.Add(val); + val.Series = this; + UpdateSeriesInfoFromDataValues(); + } + + /// + /// Adds a data value to the end of this series + /// + /// the local observation time of the data value + /// the observation value + /// the DataValue object + public virtual void AddDataValue(DateTime time, double value) + { + var val = new DataValue(value, time, 0.0); + AddDataValue(val); + } + + /// + /// Adds a data value to the end of this series + /// + /// the local observation time of the data value + /// the observed value + /// the difference between UTC and local time + /// the qualifier (contains information about specific + /// observation conditions + /// the DataValue object + public virtual void AddDataValue(DateTime time, double value, double utcOffset, Qualifier qualifier) + { + var val = new DataValue(value, time, utcOffset) {Qualifier = qualifier}; + AddDataValue(val); + } + + /// + /// Shortcut method, to obtain the ValueCount from the DataValueList + /// + /// The number of DataValues in the DataValueList + public virtual int GetValueCount() + { + return DataValueList == null ? 0 : DataValueList.Count; + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/SeriesDataCart.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/SeriesDataCart.cs new file mode 100644 index 00000000..c4deac73 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/SeriesDataCart.cs @@ -0,0 +1,93 @@ +using System; + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Basic information about the series as returned by HIS Central + /// + public class SeriesDataCart + { + /// + /// code of the web service + /// + public string ServCode { get; set; } + /// + /// URL of the web service (WSDL) + /// + public string ServURL { get; set; } + /// + /// The full site code (NetworkCode:SiteCode) + /// + public string SiteCode { get; set; } + /// + /// The full variable code (VocabularyPrefix:Variable) + /// + public string VariableCode { get; set; } + /// + /// Name of the variable + /// + public string VariableName { get; set; } + /// + /// Begin date (date of first available observation in the series) + /// + public DateTime BeginDate { get; set; } + /// + /// End date (date of last available observation in the series) + /// + public DateTime EndDate { get; set; } + /// + /// Total number of DataValues provided by the service + /// + public int ValueCount { get; set; } + /// + /// Then name of the site + /// + public string SiteName { get; set; } + /// + /// Latitude of the site + /// + public double Latitude { get; set; } + /// + /// Longitude of the site + /// + public double Longitude { get; set; } + /// + /// Data type of the values in the series (average, minimum, maximum..) + /// + public string DataType { get; set; } + /// + /// Value Type + /// + public string ValueType { get; set; } + /// + /// Sample Medium (water, air, other, not applicable) + /// + public string SampleMedium { get; set; } + /// + /// The time unit of the time support period + /// + public string TimeUnit { get; set; } + /// + /// The general category + /// + public string GeneralCategory { get; set; } + /// + /// The time support. This is the length + /// of the period following the value DateTime + /// for which the value is valid + /// + public double TimeSupport { get; set; } + /// + /// This is the concept keyword returened by HIS Central + /// If the variable is not registered, then an empty + /// keyword is returned. + /// + public string ConceptKeyword { get; set; } + + public bool IsRegular { get; set; } + + public string VariableUnits { get; set; } + + public string Citation { get; set; } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/SeriesMetadata.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/SeriesMetadata.cs new file mode 100644 index 00000000..3991cb8b --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/SeriesMetadata.cs @@ -0,0 +1,193 @@ +using System; + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Represents time series metadata (without any actual data values). + /// The time series is a combination of a specific site, variable, + /// method, source and quality control level. + /// + public class SeriesMetadata : BaseEntity + { + #region Constructors + + /// + /// Creates a new series with properties set to default. + /// + public SeriesMetadata() + { + ValueCount = 0; + Method = Method.Unknown; + Source = Source.Unknown; + QualityControlLevel = QualityControlLevel.Unknown; + } + + /// + /// Creates a new data series associated with the specific site, variable, + /// method, quality control level and source. This series will contain zero + /// data values after creation. + /// + /// the observation site (location of measurement) + /// the observed variable + /// the observation method + /// the quality control level of observed values + /// the source of the data values for this series + public SeriesMetadata(Site site, Variable variable, Method method, QualityControlLevel qualControl, Source source) + { + ValueCount = 0; + Site = site; + Variable = variable; + Method = method; + QualityControlLevel = qualControl; + Source = source; + } + + /// + /// Creates a copy of the original series. If copyDataValues is set to true, + /// then the data values are also copied. + /// The new series shares the same site, variable, source, method and quality + /// control level. The new series does not belong to any data theme. + /// + /// The original series + public SeriesMetadata(SeriesMetadata original) + { + BeginDateTime = original.BeginDateTime; + EndDateTime = original.EndDateTime; + CreationDateTime = DateTime.Now; + EndDateTime = original.EndDateTime; + EndDateTimeUTC = original.EndDateTimeUTC; + IsCategorical = original.IsCategorical; + Method = original.Method; + QualityControlLevel = original.QualityControlLevel; + Source = original.Source; + UpdateDateTime = DateTime.Now; + ValueCount = original.ValueCount; + Variable = original.Variable; + } + + #endregion + + #region Private Variables + + #endregion + + #region Properties + /// + /// True if the series represents categorical values, false otherwise + /// + public virtual bool IsCategorical { get; set; } + + /// + /// The local time when the first value of the series was measured + /// + public virtual DateTime BeginDateTime { get; set; } + + /// + /// The local time when the last value of the series was measured + /// + public virtual DateTime EndDateTime { get; set; } + + /// + /// Begin time of the series in UTC + /// + public virtual DateTime BeginDateTimeUTC { get; set; } + + /// + /// End time of the series in UTC + /// + public virtual DateTime EndDateTimeUTC { get; set; } + + + /// + /// The number of data values in this series + /// + public virtual int ValueCount { get; set; } + + /// + /// The time when the series has been saved to the HydroDesktop + /// repository + /// + public virtual DateTime CreationDateTime { get; set; } + + /// + /// A 'Subscribed' Data series may be regularly updated by appending data + /// + public virtual bool Subscribed { get; set; } + + /// + /// The time when this data series was last updated (its data values were changed) + /// + public virtual DateTime UpdateDateTime { get; set; } + /// + /// Thime when the series was last checked for updates + /// + public virtual DateTime LastCheckedDateTime { get; set; } + + /// + /// The site where the data is measured + /// + public virtual Site Site { get; set; } + + /// + /// The measured variable + /// + public virtual Variable Variable { get; set; } + + /// + /// Specification of the data service that was used to retrieve + /// this series + /// + public virtual DataServiceInfo DataService { get; set; } + + /// + /// The method of measurement + /// + public virtual Method Method { get; set; } + + /// + /// The primary source of the data + /// + public virtual Source Source { get; set; } + + /// + /// The primary quality control level of the data + /// + public virtual QualityControlLevel QualityControlLevel { get; set; } + + + #endregion + + #region Methods + /// + /// String representation of the series metadata + /// + /// Site.Name | Variable.Name | Variable.DataType + public override string ToString() + { + return Site.Name + "|" + Variable.Name + "|" + Variable.DataType; + } + + /// + /// A shortcut method to obtain the 'no data' value used by the variable + /// of this series + /// + /// the no data value of the variable in this series + public virtual double GetNoDataValue() + { + return (Variable != null) ? Variable.NoDataValue : 0; + } + + /// + /// Creates a copy of this data series. The data values are also + /// copied. the new data series shares the same site, variable, method, + /// source and quality control level with the original series. + /// + /// The new copy of the data series + public virtual SeriesMetadata Copy() + { + return new SeriesMetadata(this); + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/SeriesProvenance.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/SeriesProvenance.cs new file mode 100644 index 00000000..e92403e9 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/SeriesProvenance.cs @@ -0,0 +1,13 @@ +using System; + +namespace HydroDesktop.Interfaces.ObjectModel +{ + public class SeriesProvenance : BaseEntity + { + public virtual DateTime ProvenanceDateTime { get; set; } + public virtual Series InputSeries { get; set; } + public virtual Series OutputSeries { get; set; } + public virtual Method Method { get; set; } + public virtual string Comment { get; set; } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/Site.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Site.cs new file mode 100644 index 00000000..5d4d0cb0 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Site.cs @@ -0,0 +1,139 @@ +using System; +using System.Collections.Generic; + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Represents the data site. One site can have one or many series available at the site. + /// The site is specific for a data service If two services have data from the same + /// location, then they are represented as two different sites + /// + public class Site : BaseEntity + { + /// + /// Create a new instance of a WaterML Site object + /// + public Site() + { + //default time zone is UTC + DefaultTimeZone = TimeZoneInfo.Utc; + } + /// + /// WaterML Site code in NetworkPrefix:SiteCode format + /// + public virtual string Code { get; set; } + /// + /// Site name provided by the data source organization + /// + public virtual string Name { get; set; } + /// + /// Latitude in decimal degrees + /// + public virtual double Latitude { get; set; } + /// + /// Longitude in decimal degrees + /// + public virtual double Longitude { get; set; } + /// + /// Elevation in meters + /// + public virtual double Elevation_m { get; set; } + /// + /// Vertical datum + /// + public virtual string VerticalDatum { get; set; } + /// + /// X coordinate in projected coordinate system + /// + public virtual double LocalX { get; set; } + /// + /// Y coordinate in projected coordinate system + /// + public virtual double LocalY { get; set; } + /// + /// Positional accuracy in meters + /// + public virtual double PosAccuracy_m { get; set; } + /// + /// State (optional, use only for U.S states) + /// + public virtual string State { get; set; } + /// + /// County (optional, use only for U.S counties) + /// + public virtual string County { get; set; } + /// + /// Comments (optional comments about the site) + /// + public virtual string Comments { get; set; } + + /// + /// SiteType (optional) + /// + public virtual string SiteType { get; set; } + + /// + /// Country (optional) + /// + public virtual string Country { get; set; } + + /// + /// Network prefix. This is the first part of the site + /// code before the ':' separator. + /// + public virtual string NetworkPrefix { get; set; } + + /// + /// The spatial reference(datum) of the site's geographic coordinates + /// + public virtual SpatialReference SpatialReference { get; set; } + + /// + /// The local projection spatial reference system (if available) + /// + public virtual SpatialReference LocalProjection { get; set; } + + /// + /// The list of all time series available for this site + /// + public virtual IList DataSeriesList { get; protected set; } + + /// + /// Information about time zone at this site + /// + public virtual TimeZoneInfo DefaultTimeZone { get; set; } + + ///// + ///// Information about data service that was used to + ///// retrieve this site + ///// + //public virtual DataServiceInfo DataService { get; set; } + + /// + /// Associates a data series with this site + /// + /// the data series + public void AddDataSeries(Series dataSeries) + { + if (DataSeriesList == null) + DataSeriesList = new List(); + + DataSeriesList.Add(dataSeries); + } + + /// + public override string ToString() + { + return Name; + } + + protected override void OnCopy(BaseEntity copy) + { + base.OnCopy(copy); + + var entity = (Site) copy; + if (entity.SpatialReference != null) entity.SpatialReference = (SpatialReference) SpatialReference.Clone(); + if (entity.LocalProjection != null) entity.LocalProjection = (SpatialReference)LocalProjection.Clone(); + } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/Source.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Source.cs new file mode 100644 index 00000000..90248650 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Source.cs @@ -0,0 +1,139 @@ + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// The source of the observation data + /// + public class Source : BaseEntity + { + /// + /// Creates a new default source (the source is unknown) + /// + public Source() + { + Organization = Constants.Unknown; + Description = Constants.Unknown; + Link = Constants.Unknown; + ContactName = Constants.Unknown; + Phone = Constants.Unknown; + Email = Constants.Unknown; + Address = Constants.Unknown; + City = Constants.Unknown; + State = Constants.Unknown; + ZipCode = 0; + Citation = Constants.Unknown; + ISOMetadata = ISOMetadata.Unknown; + //DataService = null; + } + + //public Source(DataServiceInfo DataService) + //{ + // this.DataService = DataService; + // Organization = DataService.ServiceTitle; + // Description = Constants.Unknown; + // Link = DataService.EndpointURL; + // ContactName = Constants.Unknown; + // Phone = Constants.Unknown; + // Email = Constants.Unknown; + // Address = Constants.Unknown; + // City = Constants.Unknown; + // State = Constants.Unknown; + // ZipCode = 0; + // Citation = Constants.Unknown; + // ISOMetadata = ISOMetadata.Unknown; + //} + /// + /// The original indentifier used in the WaterML + /// + public virtual int OriginId { get; set; } + /// + /// The source organization + /// + public virtual string Organization { get; set; } + /// + /// The source description + /// + public virtual string Description { get; set; } + /// + /// source link + /// + public virtual string Link { get; set; } + /// + /// contact name + /// + public virtual string ContactName { get; set; } + /// + /// contact phone number + /// + public virtual string Phone { get; set; } + /// + /// contact email + /// + public virtual string Email { get; set; } + /// + /// contact address (street and number) + /// + public virtual string Address { get; set; } + /// + /// contact address city + /// + public virtual string City { get; set; } + /// + /// contact address state + /// + public virtual string State { get; set; } + /// + /// contact address zip code + /// + public virtual int ZipCode { get; set; } + /// + /// source citation + /// + public virtual string Citation { get; set; } + + // + // An optional data service associated with the source + // removed + // + // public virtual DataServiceInfo DataService { get; set; } + + /// + /// The ISO Metadata information + /// + public virtual ISOMetadata ISOMetadata { get; set; } + /// + /// shows the organization name + /// + /// name of organization + public override string ToString() + { + return Organization; + } + + /// + /// When the source is unknown + /// + public static Source Unknown + { + get + { + return new Source + { + Organization = Constants.Unknown, + Description = Constants.Unknown, + Link = Constants.Unknown, + ContactName = Constants.Unknown, + Phone = Constants.Unknown, + Email = Constants.Unknown, + Address = Constants.Unknown, + City = Constants.Unknown, + State = Constants.Unknown, + ZipCode = 0, + Citation = Constants.Unknown, + ISOMetadata = ISOMetadata.Unknown, + // DataService = null + }; + } + } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/SpatialReference.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/SpatialReference.cs new file mode 100644 index 00000000..2209b950 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/SpatialReference.cs @@ -0,0 +1,83 @@ +using System.Globalization; + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Represents a spatial reference system + /// SRSID is the EPSG code of the system. + /// + public class SpatialReference : BaseEntity + { + /// + /// Creates a new spatial reference (unknown spatial reference) + /// + public SpatialReference() + { + SRSID = 0; + SRSName = Constants.Unknown; + Notes = Constants.Unknown; + } + /// + /// Creates a spatial reference with the specified EPSG code (SRS ID) + /// + /// The EPSG identifier + public SpatialReference(int srsID) + { + SRSID = srsID; + SRSName = "EPSG:" + srsID.ToString(CultureInfo.InvariantCulture); + } + /// + /// Creates a spatial reference with the specified name + /// + /// the spatial reference name + public SpatialReference(string srsName) + { + SRSName = srsName; + if (srsName.StartsWith("EPSG:") && srsName.Length > 5) + { + string srsIDstring = srsName.Substring(5); + int srsid = 0; + if (int.TryParse(srsIDstring, out srsid)) + { + this.SRSID = srsid; + } + } + } + /// + /// EPSG Code + /// + public virtual int SRSID { get; set; } + /// + /// Spatial reference name + /// + public virtual string SRSName { get; set; } + /// + /// Optional spatial reference notes + /// + public virtual string Notes { get; set; } + /// + /// Shows the spatial reference name + /// + /// spatial reference name string representation + public override string ToString() + { + return SRSName; + } + + /// + /// When the spatial reference information is unknown + /// + public static SpatialReference Unknown + { + get + { + return new SpatialReference + { + SRSID = 0, + SRSName = Constants.Unknown, + Notes = Constants.Unknown + }; + } + } + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/Theme.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Theme.cs new file mode 100644 index 00000000..ed43bfba --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Theme.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; + + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Represents a data theme. A data theme is a group of + /// data series created by the user. One data series may belong + /// to multiple themes. + /// + public class Theme : BaseEntity + { + /// + /// Creates a default theme object with an empty series list + /// + public Theme() + { + this.DateCreated = DateTime.Now; + SeriesList = new List(); + } + + /// + /// Creates a new theme with the specified name + /// + /// the name of the theme + public Theme(string name) + { + this.Name = name; + this.DateCreated = DateTime.Now; + } + + /// + /// Creates a new theme with the specified name and + /// description + /// + /// theme name + /// theme description + public Theme(string name, string description) + { + Name = name; + Description = description; + DateCreated = DateTime.Now; + } + /// + /// Theme name + /// + public virtual string Name { get; set; } + /// + /// Theme description + /// + public virtual string Description { get; set; } + /// + /// Date when the theme was created + /// + public virtual DateTime DateCreated { get; set; } + + /// + /// The collection of data series belonging to this theme + /// + public virtual IList SeriesList { get; set; } + + #region Methods + + /// + /// Adds a data series to this theme + /// + public virtual void AddSeries(Series series) + { + if (SeriesList == null) + { + SeriesList = new List(); + } + this.SeriesList.Add(series); + series.ThemeList.Add(this); + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/Unit.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Unit.cs new file mode 100644 index 00000000..6c143a9a --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Unit.cs @@ -0,0 +1,110 @@ +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Represents an observation unit or a time unit + /// + public class Unit : BaseEntity + { + /// + /// The unit name (for example "centimeter") + /// + public virtual string Name { get; set; } + + /// + /// The unit type ("length", "time") + /// + public virtual string UnitsType { get; set; } + + /// + /// The unit abbreviation + /// + public virtual string Abbreviation { get; set; } + + /// + /// Dimension of unit + /// + public virtual string Dimension { get; set; } + + /// + /// Conversion factor to base SI unit + /// + public virtual double? ConversionFactorToSI { get; set; } + + /// + /// Offset to base SI unit + /// + public virtual double? OffsetToSI { get; set; } + + /// + /// Converts the unit to string + /// + /// The unit abbreviation + public override string ToString() + { + return Abbreviation; + } + + /// + /// When the variable unit is unknown + /// + public static Unit Unknown + { + get + { + return new Unit + { + Name = Constants.Unknown, + UnitsType = Constants.Unknown, + Abbreviation = Constants.Unknown + }; + } + } + + /// + /// When the time unit is unknown + /// + public static Unit UnknownTimeUnit + { + get + { + return new Unit + { + Name = Constants.Unknown, + UnitsType = "Time", + Abbreviation = Constants.Unknown + }; + } + } + + #region Equality + + /// + /// Two units are considered equal, if they have the same name, abbreviation and unit type + /// + /// + /// + public override bool Equals(BaseEntity other) + { + var unit = other as Unit; + if (unit != null) + { + if (unit.Name != Name) return false; + if (unit.UnitsType != UnitsType) return false; + if (unit.Abbreviation != Abbreviation) return false; + return true; + } + return base.Equals(other); + } + + /// + /// Returns an unique hash code of the unit object + /// + /// Code in form Name|UnitType|Abbreviation + public override int GetHashCode() + { + return (Name + "|" + UnitsType + "|" + Abbreviation).GetHashCode(); + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/UnitConversion.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/UnitConversion.cs new file mode 100644 index 00000000..f921e86f --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/UnitConversion.cs @@ -0,0 +1,28 @@ +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Represents conversion between units + /// + public class UnitConversion : BaseEntity + { + /// + /// Source unit + /// + public virtual Unit FromUnit { get; set; } + + /// + /// Destination Unit + /// + public virtual Unit ToUnit { get; set; } + + /// + /// Conversion factor + /// + public virtual double ConversionFactor { get; set; } + + /// + /// Offset + /// + public virtual double Offset { get; set; } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/ValueTypeCV.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/ValueTypeCV.cs new file mode 100644 index 00000000..ad086910 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/ValueTypeCV.cs @@ -0,0 +1,49 @@ +using System.ComponentModel; + +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// Used to populate the ValueType field in the Variables table + /// + /// + /// See http://his.cuahsi.org/mastercvreg/edit_cv11.aspx?tbl=ValueTypeCV&id=805577908 + /// + public enum ValueTypeCV + { + /// + /// The value type is unknown. + /// + [Description("Unknown")] + Unknown = 0, + + /// + /// A value used as part of the calibration of an instrument at a particular time. + /// + [Description("Calibration Value")] + CalibrationValue = 1, + + /// + /// Value that is directly derived from an observation or set of observations. + /// + [Description("Derived Value")] + DerivedValue = 2, + + /// + /// Observation of a variable using a field instrument. + /// + [Description("Field Observation")] + FieldObservation = 3, + + /// + /// Values generated by a simulation model. + /// + [Description("Model Simulation Result")] + ModelSimulationResult = 4, + + /// + /// Observation that is the result of analyzing a sample in a laboratory. + /// + [Description("Sample")] + Sample = 5, + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/ObjectModel/Variable.cs b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Variable.cs new file mode 100644 index 00000000..feebb352 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/ObjectModel/Variable.cs @@ -0,0 +1,122 @@ +namespace HydroDesktop.Interfaces.ObjectModel +{ + /// + /// The variable (observed property) + /// + public class Variable : BaseEntity + { + /// + /// The WaterML full variable code in form + /// VocabularyPrefix:VariableCode + /// + public virtual string Code { get; set; } + /// + /// The variable name. This should be one of the + /// CUAHSI controlled vocabulary names + /// + public virtual string Name { get; set; } + /// + /// The speciation (for example, Ammonia as N) + /// This attribute is used for water quality samples + /// + public virtual string Speciation { get; set; } + /// + /// The sample medium (Surface Water, Air, Precipitation) + /// + public virtual string SampleMedium { get; set; } + /// + /// Text value indicating what + /// type of data value is being + /// recorded. This should be from + /// the ValueTypeCV controlled + /// vocabulary table. + /// + public virtual string ValueType { get; set; } + /// + /// True if the variable is observed at a regular time step + /// + public virtual bool IsRegular { get; set; } + /// + /// True if the variable is categorical + /// + public virtual bool IsCategorical { get; set; } + /// + /// Numerical value that indicates the time support (or temporal + /// footprint) of the data values. 0 is used to indicate data values + /// that are instantaneous. Other values indicate the time over + /// which the data values are implicitly or explicitly + /// averaged or aggregated. + /// + public virtual double TimeSupport { get; set; } + /// + /// Text value indicating what + /// type of data value is being + /// recorded. This should be from + /// the ValueTypeCV controlled + /// vocabulary table. + /// + public virtual string DataType { get; set; } + /// + /// General category of the variable from the GeneralCategoryCV table + /// + public virtual string GeneralCategory { get; set; } + /// + /// Numeric value used to encode no data values for this variable + /// + public virtual double NoDataValue { get; set; } + /// + /// The WaterML vocabulary prefix (part of the VariableCode before the ":" separator) + /// + public virtual string VocabularyPrefix { get; set; } + + /// + /// reference to the unit of the data values associated with this variable + /// + public virtual Unit VariableUnit { get; set; } + + /// + /// Units of the time support of this variable. If TimeSupport is 0, + /// indicating an instantaneous observation, a unit needs to still + /// be given for completeness, although it is somewhat arbitrary. + /// + public virtual Unit TimeUnit { get; set; } + /// + /// returns the name of the unit + /// + /// + public override string ToString() + { + return Name; + } + + protected override void OnCopy(BaseEntity copy) + { + base.OnCopy(copy); + + var entity = (Variable)copy; + if (VariableUnit != null) entity.VariableUnit = (Unit) VariableUnit.Clone(); + if (TimeUnit != null) entity.TimeUnit = (Unit) TimeUnit.Clone(); + } + + #region Equality + /// + /// Two units are considered equal if they have the same unit code + /// + /// + /// + public override bool Equals(BaseEntity other) + { + var variable = other as Variable; + return variable != null ? (variable).Code.Equals(Code) : base.Equals(other); + } + /// + /// Get the unique hash code of this variable + /// + /// hash code + public override int GetHashCode() + { + return Code != null? Code.GetHashCode() : 0; + } + #endregion + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/PluginContracts/IDataAggregationPlugin.cs b/Source/Core/HydroDesktop.Interfaces/PluginContracts/IDataAggregationPlugin.cs new file mode 100644 index 00000000..f3d15232 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/PluginContracts/IDataAggregationPlugin.cs @@ -0,0 +1,16 @@ +using DotSpatial.Symbology; + +namespace HydroDesktop.Interfaces.PluginContracts +{ + /// + /// Provides methods for data aggregation + /// + public interface IDataAggregationPlugin + { + /// + /// Attach layer to data aggregation plug-in + /// + /// Layer to attach + void AttachLayerToPlugin(ILayer layer); + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/PluginContracts/IDataExportPlugin.cs b/Source/Core/HydroDesktop.Interfaces/PluginContracts/IDataExportPlugin.cs new file mode 100644 index 00000000..ce683490 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/PluginContracts/IDataExportPlugin.cs @@ -0,0 +1,23 @@ +using System.Data; +using DotSpatial.Symbology; + +namespace HydroDesktop.Interfaces.PluginContracts +{ + /// + /// Interface of data export plugin + /// + public interface IDataExportPlugin + { + /// + /// Export layer + /// + /// Layer to export. + void Export(IFeatureLayer layer); + + /// + /// Export DataTable + /// + /// DataTable to export + void Export(DataTable dataTable); + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/PluginContracts/IMetadataFetcherPlugin.cs b/Source/Core/HydroDesktop.Interfaces/PluginContracts/IMetadataFetcherPlugin.cs new file mode 100644 index 00000000..3e761451 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/PluginContracts/IMetadataFetcherPlugin.cs @@ -0,0 +1,18 @@ +namespace HydroDesktop.Interfaces.PluginContracts +{ + /// + /// Interface of MetadataFetcher plug-in + /// + public interface IMetadataFetcherPlugin + { + /// + /// Add services to the list of services that can be harvested in metadata catalog. + /// + void AddServices(); + + /// + /// Show window to update or edit metadata. + /// + void DownloadMetadata(); + } +} diff --git a/Source/Core/HydroDesktop.Interfaces/PluginContracts/ISearchPlugin.cs b/Source/Core/HydroDesktop.Interfaces/PluginContracts/ISearchPlugin.cs new file mode 100644 index 00000000..3ff54ba5 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/PluginContracts/ISearchPlugin.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using DotSpatial.Data; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Interfaces.PluginContracts +{ + /// + /// Provides methods for displaying search results + /// + public interface ISearchPlugin + { + /// + /// Adds features to the search results layer + /// + /// number of features per site code + void AddFeatures(List> featuresPerCode); + + /// + /// Get web services list. + /// + /// Web services list. + IList GetWebServices(); + + /// + /// Gets current HIS Central URL. + /// + string HisCentralUrl { get; } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/Properties/AssemblyInfo.cs b/Source/Core/HydroDesktop.Interfaces/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..83191f16 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/Properties/AssemblyInfo.cs @@ -0,0 +1,22 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Interfaces")] +[assembly: AssemblyDescription("Interfaces for HydroDesktop Extensions")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CUAHSI")] +[assembly: AssemblyProduct("HydroDesktop.Interfaces")] +[assembly: AssemblyCopyright("Copyright © CUAHSI 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("8b4c0000-7171-447c-9df3-49354752b5ff")] \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/SeriesEventArgs.cs b/Source/Core/HydroDesktop.Interfaces/SeriesEventArgs.cs new file mode 100644 index 00000000..40d68ec8 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/SeriesEventArgs.cs @@ -0,0 +1,51 @@ +using System; + +namespace HydroDesktop.Interfaces +{ + /// + /// Event arguments for the SeriesChecked event + /// + public class SeriesEventArgs : EventArgs + { + private readonly int _seriesID; + private readonly bool _isChecked; + + /// + /// Creates a new instance of the series EventArgs + /// + /// Series ID + /// True if new staus is checked, + /// false if new status is unchecked + public SeriesEventArgs(int seriesID, bool isChecked) + { + _seriesID = seriesID; + _isChecked = isChecked; + } + + /// + /// The checked or unchecked series ID + /// + public int SeriesID + { + get { return _seriesID; } + } + + /// + /// The check state (checked or unchecked) + /// + public bool IsChecked + { + get { return _isChecked; } + } + } + + #region Delegates + /// + /// Series checked event handler + /// + /// sender object + /// information about checked or unchecked series + public delegate void SeriesEventHandler(object sender, SeriesEventArgs e); + #endregion + +} diff --git a/Source/Core/HydroDesktop.Interfaces/package.nuspec b/Source/Core/HydroDesktop.Interfaces/package.nuspec new file mode 100644 index 00000000..ed7f0e97 --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/package.nuspec @@ -0,0 +1,17 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + true + $description$ + + en-US + HideReleaseFromEndUser + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.Interfaces/packages.config b/Source/Core/HydroDesktop.Interfaces/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Core/HydroDesktop.Interfaces/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.MainApplication/HydroDesktop.MainApplication.csproj b/Source/Core/HydroDesktop.MainApplication/HydroDesktop.MainApplication.csproj new file mode 100644 index 00000000..35b9a9d6 --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/HydroDesktop.MainApplication.csproj @@ -0,0 +1,209 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {A064E7D2-5730-4214-A29F-FDB790691E47} + WinExe + Properties + HydroDesktop.MainApplication + HydroDesktop_1_6_dev + v4.0 + Client + 512 + ..\..\ + true + + + x86 + true + full + false + ..\..\..\Binaries\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\HydroDesktop_1_6_dev.XML + + + x86 + pdbonly + true + ..\..\..\Binaries\ + TRACE + prompt + 4 + + + Resources\HydroDesktop.ico + + + AnyCPU + ..\..\..\Binaries\ + true + true + DEBUG;TRACE + ..\..\..\Binaries\HydroDesktop_1_6_dev.XML + 1591 + + + AnyCPU + ..\..\..\Binaries\ + TRACE + true + true + + + HydroDesktop.MainApplication.Program + + + + False + ..\..\packages\DotSpatial.Analysis.1.6.1\lib\net40-Client\DotSpatial.Analysis.dll + + + False + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + + + False + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + + + False + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + + + False + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + + + False + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + + + False + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + + + False + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + + + False + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + + + False + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + + + False + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + + + False + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + + + False + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + + + + + + + + + + + + Properties\AssemblyInfoShared.cs + + + Form + + + MainForm.cs + + + UserControl + + + NavigationControl.cs + + + + + MainForm.cs + Designer + + + NavigationControl.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + Designer + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + PreserveNewest + + + PreserveNewest + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + + + {42b7a22c-fd5d-4ef3-856f-e01f8dd8a82b} + HydroDesktop.ErrorReporting + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.MainApplication/HydroDesktopSplashLogo.png b/Source/Core/HydroDesktop.MainApplication/HydroDesktopSplashLogo.png new file mode 100644 index 00000000..6a9a4c51 Binary files /dev/null and b/Source/Core/HydroDesktop.MainApplication/HydroDesktopSplashLogo.png differ diff --git a/Source/Core/HydroDesktop.MainApplication/License-LGPL.txt b/Source/Core/HydroDesktop.MainApplication/License-LGPL.txt new file mode 100644 index 00000000..8ac0cecf --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/License-LGPL.txt @@ -0,0 +1,506 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + + + diff --git a/Source/Core/HydroDesktop.MainApplication/MainForm.cs b/Source/Core/HydroDesktop.MainApplication/MainForm.cs new file mode 100644 index 00000000..7cb73697 --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/MainForm.cs @@ -0,0 +1,87 @@ +using System; +using System.ComponentModel.Composition; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Controls.Docking; + + +namespace HydroDesktop.MainApplication +{ + /// + /// A Form to test the map controls. + /// + internal partial class MainForm : Form + { + // the main form is exported so that the IHeaderControl plug-in can add the menu or the + // ribbon toolbar to it. + [Export("Shell", typeof(ContainerControl))] + private static ContainerControl Shell; + + /// + /// Initializes a new instance of the class. + /// + public MainForm() + { + InitializeComponent(); + + //It looks better if we Maximize the main window, + //but the Form.Owner property doesn't seem to do anything when running on Mono, so for now only maximize if on Windows. + this.WindowState = FormWindowState.Maximized; + appManager = new AppManager(); + appManager.Map = new Map(); + LoadCustomBranding(Properties.Settings.Default); + + appManager.SatisfyImportsExtensionsActivated += + delegate + { + DockablePanel dp = new DockablePanel("kMap", "Map", (Map)appManager.Map, DockStyle.Fill) { SmallImage = Properties.Resources.map_16x16 }; + appManager.DockManager.Add(dp); + NavigationControl nc = new NavigationControl(appManager); + nc.Parent = (UserControl)appManager.Map; + nc.Show(); + }; + + Shell = this; + appManager.LoadExtensions(); + // Hack: HydroDockManager need to know time when all plugins are activated to save initial layout of dock-panels + // (this need to working of HydroDockManager.ResetLayout() method). + // appManager.ExtensionsActivated is not suitable, because plugins also can change dock-panels there. + // To avoid direct referencing from MainForm to HydroDockManager (or vice versa), + // we just send needed info through Add() method. + appManager.DockManager.Add(new DockablePanel { Key = "save_snapshot" }); + + appManager.ProgressHandler.Progress("", 0, "Go to the extension manager to find additional extensions!"); + } + + private void LoadCustomBranding(Properties.Settings settings) + { + if (!String.IsNullOrWhiteSpace(settings.CustomAppIconPath) && + System.IO.File.Exists(settings.CustomAppIconPath)) + { + var ico = new System.Drawing.Icon(settings.CustomAppIconPath); + this.Icon = ico; + } + + if (!String.IsNullOrWhiteSpace(settings.CustomMainFormTitle)) + { + Text = settings.CustomMainFormTitle; + } + } + + /// + /// Gets or sets the appManager + /// + public AppManager appManager { get; set; } + + //Added this event to prevent so white line fading that would happen when I would move the the legend in the MainForm off the edge of the + //screen. I am still confused as to why it was happening, but this locationChanged event seems to fix the problem just fine by constantly + //redrawing the legend when the form is moving. + private void MainForm_LocationChanged(object sender, EventArgs e) + { + if (appManager.Map != null && appManager.Map.Legend != null) + { + appManager.Map.Legend.RefreshNodes(); + } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.MainApplication/MainForm.designer.cs b/Source/Core/HydroDesktop.MainApplication/MainForm.designer.cs new file mode 100644 index 00000000..bcce9eee --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/MainForm.designer.cs @@ -0,0 +1,68 @@ +// ******************************************************************************************************** +// Product Name: TestViewer.exe +// Description: A very basic demonstration of the controls. +// ******************************************************************************************************** +// The contents of this file are subject to the MIT License (MIT) +// you may not use this file except in compliance with the License. You may obtain a copy of the License at +// http://dotspatial.codeplex.com/license +// +// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF +// ANY KIND, either expressed or implied. See the License for the specific language governing rights and +// limitations under the License. +// +// The Initial Developer of this Original Code is Ted Dunsford. Created during refactoring 2010. +// ******************************************************************************************************** + +namespace HydroDesktop.MainApplication +{ + /// + /// Form + /// + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.SuspendLayout(); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(871, 149); + this.Icon = Properties.Resources.HydroDesktop; + this.Name = "MainForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.WindowsDefaultBounds; + this.Text = "HydroDesktop"; + this.LocationChanged += new System.EventHandler(this.MainForm_LocationChanged); + this.ResumeLayout(false); + + } + + #endregion + + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.MainApplication/MainForm.resx b/Source/Core/HydroDesktop.MainApplication/MainForm.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/MainForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.MainApplication/NavigationControl.Designer.cs b/Source/Core/HydroDesktop.MainApplication/NavigationControl.Designer.cs new file mode 100644 index 00000000..f48663e1 --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/NavigationControl.Designer.cs @@ -0,0 +1,129 @@ +namespace HydroDesktop.MainApplication +{ + partial class NavigationControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(NavigationControl)); + this.button2 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // button2 + // + this.button2.BackColor = System.Drawing.Color.White; + this.button2.Image = ((System.Drawing.Image)(resources.GetObject("button2.Image"))); + this.button2.Location = new System.Drawing.Point(-1, 30); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(32, 32); + this.button2.TabIndex = 2; + this.button2.UseVisualStyleBackColor = false; + this.button2.Click += new System.EventHandler(this.button2_Click); + this.button2.MouseHover += new System.EventHandler(this.button2_MouseHover); + // + // button1 + // + this.button1.BackColor = System.Drawing.Color.White; + this.button1.Image = ((System.Drawing.Image)(resources.GetObject("button1.Image"))); + this.button1.Location = new System.Drawing.Point(-1, -1); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(32, 32); + this.button1.TabIndex = 1; + this.button1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.button1.UseVisualStyleBackColor = false; + this.button1.Click += new System.EventHandler(this.button1_Click); + this.button1.MouseHover += new System.EventHandler(this.button1_MouseHover); + // + // button3 + // + this.button3.BackColor = System.Drawing.Color.White; + this.button3.Image = ((System.Drawing.Image)(resources.GetObject("button3.Image"))); + this.button3.Location = new System.Drawing.Point(-1, 61); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(32, 32); + this.button3.TabIndex = 3; + this.button3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.button3.UseVisualStyleBackColor = false; + this.button3.Click += new System.EventHandler(this.button3_Click); + this.button3.MouseHover += new System.EventHandler(this.button3_MouseHover); + // + // button4 + // + this.button4.BackColor = System.Drawing.Color.White; + this.button4.Image = ((System.Drawing.Image)(resources.GetObject("button4.Image"))); + this.button4.Location = new System.Drawing.Point(-1, 92); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(32, 32); + this.button4.TabIndex = 4; + this.button4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.button4.UseVisualStyleBackColor = false; + this.button4.Click += new System.EventHandler(this.button4_Click); + this.button4.MouseHover += new System.EventHandler(this.button4_MouseHover); + // + // button5 + // + this.button5.BackColor = System.Drawing.Color.White; + this.button5.Image = ((System.Drawing.Image)(resources.GetObject("button5.Image"))); + this.button5.ImageAlign = System.Drawing.ContentAlignment.BottomCenter; + this.button5.Location = new System.Drawing.Point(-1, 123); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(32, 32); + this.button5.TabIndex = 5; + this.button5.UseVisualStyleBackColor = false; + this.button5.Click += new System.EventHandler(this.button5_Click); + this.button5.MouseHover += new System.EventHandler(this.button5_MouseHover); + // + // NavigationControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.White; + this.Controls.Add(this.button5); + this.Controls.Add(this.button4); + this.Controls.Add(this.button3); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Location = new System.Drawing.Point(17, 17); + this.Name = "NavigationControl"; + this.Size = new System.Drawing.Size(30, 154); + this.MouseHover += new System.EventHandler(this.NavigationControl_MouseHover); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + } +} diff --git a/Source/Core/HydroDesktop.MainApplication/NavigationControl.cs b/Source/Core/HydroDesktop.MainApplication/NavigationControl.cs new file mode 100644 index 00000000..201dfe2e --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/NavigationControl.cs @@ -0,0 +1,130 @@ +using System; +using System.Drawing; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Topology; + +namespace HydroDesktop.MainApplication +{ + public partial class NavigationControl : UserControl + { + private AppManager appManager; + private Button button6; + + public NavigationControl(AppManager appManager) + { + this.appManager = appManager; + button6 = new Button(); + button6.Size = Size.Empty; + Controls.Add(button6); + InitializeComponent(); + + appManager.Map.FunctionModeChanged += Map_FunctionModeChanged; + } + + protected override bool ProcessCmdKey(ref Message msg, Keys keyData) + { + switch (keyData) + { + case Keys.Up: + case Keys.Down: + case Keys.Left: + case Keys.Right: + case Keys.Space: + return true; + } + return base.ProcessCmdKey(ref msg, keyData); + } + + void Map_FunctionModeChanged(object sender, EventArgs e) + { + if (appManager.Map.FunctionMode == FunctionMode.Pan) + button1.Focus(); + else if (appManager.Map.FunctionMode == FunctionMode.ZoomIn) + button2.Focus(); + else if (appManager.Map.FunctionMode == FunctionMode.ZoomOut) + button3.Focus(); + else if (appManager.Map.FunctionMode == FunctionMode.Select) + button4.Focus(); + else + button6.Focus(); + } + + private void button1_Click(object sender, EventArgs e) + { + appManager.Map.FunctionMode = FunctionMode.Pan; + } + + private void button2_Click(object sender, EventArgs e) + { + appManager.Map.FunctionMode = FunctionMode.ZoomIn; + } + + private void button3_Click(object sender, EventArgs e) + { + appManager.Map.FunctionMode = FunctionMode.ZoomOut; + } + + private void button4_Click(object sender, EventArgs e) + { + appManager.Map.FunctionMode = FunctionMode.Select; + } + + private void button5_Click(object sender, EventArgs e) + { + if (appManager.Map.FunctionMode == FunctionMode.Pan) + button1.Focus(); + else if (appManager.Map.FunctionMode == FunctionMode.ZoomIn) + button2.Focus(); + else if (appManager.Map.FunctionMode == FunctionMode.ZoomOut) + button3.Focus(); + else if (appManager.Map.FunctionMode == FunctionMode.Select) + button4.Focus(); + else + button6.Focus(); + + IEnvelope env; + appManager.Map.MapFrame.ClearSelection(out env); + } + + private void button1_MouseHover(object sender, EventArgs e) + { + var ToolTip1 = new ToolTip(); + ToolTip1.SetToolTip(button1, "Pan"); + Cursor = Cursors.Arrow; + } + + private void button2_MouseHover(object sender, EventArgs e) + { + var ToolTip2 = new ToolTip(); + ToolTip2.SetToolTip(button2, "Zoom In"); + Cursor = Cursors.Arrow; + } + + private void button3_MouseHover(object sender, EventArgs e) + { + var ToolTip3 = new ToolTip(); + ToolTip3.SetToolTip(button3, "Zoom Out"); + Cursor = Cursors.Arrow; + } + + private void button4_MouseHover(object sender, EventArgs e) + { + var ToolTip4 = new ToolTip(); + ToolTip4.SetToolTip(button4, "Select"); + Cursor = Cursors.Arrow; + } + + private void button5_MouseHover(object sender, EventArgs e) + { + var ToolTip5 = new ToolTip(); + ToolTip5.SetToolTip(button5, "Deselect"); + Cursor = Cursors.Arrow; + } + + private void NavigationControl_MouseHover(object sender, EventArgs e) + { + Cursor = Cursors.Arrow; + } + } +} diff --git a/Source/Core/HydroDesktop.MainApplication/NavigationControl.resx b/Source/Core/HydroDesktop.MainApplication/NavigationControl.resx new file mode 100644 index 00000000..2249c88f --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/NavigationControl.resx @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKTSURBVDhPlZFbSJNhGMe977I7Ieoq8CIxvIs8jqBI + AiGyJQRGliCEdJerVDwr4inBU7lU2jyRSqYT04vNPGwSzBOeNiWPU5uHuXmY+/V+25cpRdAfHt7ve77/ + //c8H6/faY2URaSbSkJcpuJrnJR4l/qy5YwA+UloqCh0aa4tAY+tXfRHwGPynp61dqS+9F22nugEMFAY + trRqSMNhHyK7a4romu/cq1/kgXaZUv0czu1hVvSpSD5fwicvwFCoSJ9qiWd3U0+M2krdyDZWu5uJjSN6 + 552UGbdI6l7HZdcz1fwYyS/nfYC+vLD944U6sj+Pe8MrDjfjP9xcVObyaWGfSvMOyQY777/N47bWIvnl + vA/QmxMCu21EqxeZtB0yYT/GaIeAuCI+rkHZtIt8s4MXQy7YauWL8Mt5H6A7KxTsWmI+rDC56eaSmCyF + g5684UpcIZeVOZRbD8kYPYINDTrhl/M+QFdGOKzXE9toQ2dx0SHWliZL4eY9aNiBd8vH5E4L+2otnRlh + ZwEd6REHB+MFlPaZyevfomJ0W6y9750shZscUL0K7dYFnOZ82lLDd+S8D1CRdK3KVBPLnkXN8+4NVP3b + 4p/3KJ8/FJM9vBXbVCyC06pmoEpJT07k2Q2E/FteR9pmWxNwzVSgNo6RbDwic9xD7oyYPGfBZalkoukp + uoK7MJaIoSjCm/wFkBTY+EphG6y6j9OkgrlsmM0UlYVjWIWhXElnmritHiUstcHEMwZLFCL/GyApsCjx + erX2peKgQRWJVi6NSrGjSbkJVedBfQH6YsVt6OgvjvgDIMlf1FVRwacqSDo1aXegxh9aApjvfNTytfjG + XwH/UrAmNQptym2a024RHxXw8H8Bkk5vdg7w+wkJniHp6AG5OQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAI0SURBVDhPhdPrS1NhHAdwX/eif0IIdJezS0RXSUoZ + Kx1d0NSCCRFYMYqoN70okCAos82xZuuFXV5FkKnLXZwNLTbWOdtMmY2CiOVxN51Lt5kV336nxpA6O33h + 4QcPv9+H53ngqQHwe4mFs6qfchYGsw51srxVSWVODAhb1XphcP7xTvz4ZMM7hwIRmwa0/77cIg1wA8xG + IWZB1F6PQtBIVYaN+E2qqkqjJMBalChxPYjQYCHYTVWO1elWzDgYsGbVE6FHGjALwNlNgIIAA6KDtD97 + FfEh7TNJIGzb/ucE9zYBUwZEBhnkvfsw59DQyF8APZCR7g7OquoVTrA+cwlhWx3WAkaqcnydaiVAhfxE + A+YeaP8FOIvye+HDEEL9ss9v78pRil5EYqwdmckTNNyGvL8FYTuDFW8VgDUr8PPjbcQeNiJ0px6lyAV8 + cbYjMWpAYkSPjFuHnK8ZOU8VwNVb516P3cCix4jArW0ocibwrg7w40exMHoYieEmLDxvQMa5Rxy4b6o1 + Jpyd+Ba7jmL0MtZC55H2dSHlOY7keAsWnc3gR/aDH94lDlC2sgPabJJOUIxeIeAclvynkPXRO3gMSLt0 + SDsbkR7bDc6unRcDhCgDfbIU7z6JAmtC7nU3lv0dWPIdQdarR9Z9gJC9eHFNZq0GCFG+6ZOn+JdtWA2e + Rn66E7lXx7A8eQi5iYOIP9oBS0+tTgoQogj1K+gaZwjoqgArvib6UBqhecv/ACFaiVWeQ80vu5xIZYAT + 8zAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKfSURBVDhPlZFdSJNRGMe977I7IbopqhspuotK5wiK + IgqKGlYXUSQEId3V+nD4WSZqFkwXuVTatAZq5JpZXmyVH7NsrQ8/5tSaruVyc7o3N/XXebc3U4qgPzyc + c573//+dh/ekLFfvbVWe8+YOyVmxjaUSZ7mvWFYIUHZCXeU7fZ7mbBYDLaLfC4vOxLr4tQW5L39XrEta + ArwqS/f5HTpmproosn7iwN0xDtd9RmMep9LuIRruZsKei+xLJpJKABxl6rx+y2kiQTtHjF5qnSGGgjH6 + JiSeema41R0ip+0b0pSd/oenkP1KPgnouJ7+Y2G0jqLW99T1hhmPxHntl2gfncUyEEH/NsxFxxT33oww + 761F9iv5JOB58Q6INHPQ+IWPgRjuYByHP06rL455bI7KfokS1wwXuiQINfFM+JV8EtBWuBOmzBy5P8HH + 4Dxrjxaz7lgJG47fYKNY14uz3hsj/10cJk3YhF/JJwFP8jPgWz1ZjQFswxKPRiQaxM01vgXufwdzGO6O + L3BtQNj9tVjz01cCHuep5ubel1LZ4eL6ixB6V4gyd4Rqr0T95DyNEbjjhxbvKFFXCc25GdNKPgmoytlm + cNZkMTts5HzbpPhhYa71RagcjGL4HE+Eq75A1GvklUFDe3HmygmEUi1XMgNDTdlIg1UYe9xc7IlR4BZj + D4qbPcNIw9V8eHAGW+khcJ/FUa5KJH8BZKU1XlYHOg1HiTq14CmCoQJRhcx0a3HoNVh14rXaNeBrhg/n + 6LypFvnfAFlp5We33zFfUs81aDMxK2XSqqdNV3eDYTUY10BHlngNGy8qVH8AZKWK2iJq67LaLK8m3X6o + SQXLJkasJy0vK3b9FfAvbTXl7sN8dS8PdXs4vW/Tif8FyFo+2Sog5SdygCaSeWWOgwAAAABJRU5ErkJg + gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFjSURBVDhPnZHLTsJQEIbnXUzcuuDVjK7oaeMFFIFC + KW0praJE4iNojIkJMQIx4kJjuBQSV+rCNW7GmYMaoVwaT/Kdk5zM//+TGdA0jcGIb4jxBRCL8s6Cr7nu + U8ysW+j+l3l1fC3tQFVVEEKgoiggGMEISaQOvgtjx9Ua+JUquF4F7JIHplUaD5GYnvbES8lY9o8kLHZc + H4q2C4ZpL9/CTzqLr+t1acLpEwbzYLFfOQESUbsOjj5H2Gy1pAm3v9BAJbGixKldDyzHBd0w8fXtHXv9 + ABuNpjTJF6zZBpxsOWVqswSFoi3J6HnsB0O8bz+QyQDrN7fSJCSWK6NV5U0Lcob5y0FGx8enZ+z2Ajyt + nWEqnUUy/QiJqVXI5gxOnIAF5xeX6JYPMRgMcX1j06Phrk0ZCEriYj2EULeukvtpjAvtrtPp4vZu8oWD + IhvQWeF1Eqs0PNxJpDCxl+b/fx02IgC+AAr3pFGlRy/TAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vwAADr8BOAVTJAAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAABkklEQVQ4T52R + S0tCURSF90AIadjMwgfRpIGaNQmifkATC4QgCCGaFERk6CDyXOmh5Vu7aWqPSYLvDBwkDRz1IwyqWUg0 + aBJhyu6eY4j5Sjrw7QX37rXOYW+wWCwU7FFbqBWA8V60HbR0TG+ibV/X9EY69dHy5ws4jgNCCJrNZiAU + QiGMnl4Q3zBhXCLCpEyMWYUYY5rhaDB0BnwgVBuiQPO061rYNmEpc4VoXka0rSOSFXzN3+C1coj388Hu + W8i9oTYxKMKqQYf0VNZmmVaNC5hSSbEe0In8O84k5f2Im3NY1k8zM1PDPKbUskLXAE4Y0P0HajPSPvxa + mmTmT52KaVk/RQPSvuNA+wA63cBpBE6CIfCvGrGUjQpmJVYWJ5i+5FIYGpUkIueXrQFsZcKqfHwAvH6e + ER4ZiKXVMkxpFJgek1Ozw+50g8vj+x1AzR7B4Pb62c9GqOE2fwfhyAU8Pj3DltFEh90cQMDhos2eFgi3 + C7YjJ+wQCxSLD7B3YGMX9RzQeOjw9q12sB46f778+wB8A3USntjq01A/AAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.MainApplication/Program.cs b/Source/Core/HydroDesktop.MainApplication/Program.cs new file mode 100644 index 00000000..b0176b40 --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/Program.cs @@ -0,0 +1,80 @@ +using System; +using System.Windows.Forms; +using HydroDesktop.Common; +using HydroDesktop.Common.Logging; +using HydroDesktop.ErrorReporting; +using System.IO; +using System.Reflection; + +namespace HydroDesktop.MainApplication +{ + static class Program + { + private static MainForm _mainForm; + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main(string[] args) + { + //Hack described in https://hydrodesktop.codeplex.com/workitem/8676 + AppDomain.CurrentDomain.AssemblyResolve += LoadAssembly; + + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + + var log = AppContext.Instance.Get(); + Application.ApplicationExit += delegate + { + log.Info("Application Exit"); + AppContext.Instance.Dispose(); + }; + // Log all unhandled exceptions + Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); + Application.ThreadException += (sender, e) => ProcessUnhandled(e.Exception, false); + AppDomain.CurrentDomain.UnhandledException += + delegate(object sender, UnhandledExceptionEventArgs e) + { + ProcessUnhandled((Exception)e.ExceptionObject, true); + AppContext.Instance.Dispose(); + }; + + log.Info("Application Started"); + _mainForm = new MainForm(); + if (args.Length > 0 && System.IO.File.Exists(args[0])) + { + _mainForm.appManager.SerializationManager.OpenProject(args[0]); + } + + Application.Run(_mainForm); + } + + private static void ProcessUnhandled(Exception ex, bool isFatal) + { + var log = AppContext.Instance.Get(); + log.Error(isFatal ? "Fatal" : "Unhandled", ex); + var errorForm = new ErrorReportingForm(new ErrorReportingFormArgs + { + Exception = ex, + IsFatal = isFatal, + LogFile = log.Destination + }); + errorForm.ShowDialog(_mainForm); + } + + + //This method is used to load the correct System.Data.SQlite dlls. + //See HydroDesktop Issue 8676 for more information: https://hydrodesktop.codeplex.com/workitem/8676 + static Assembly LoadAssembly(object sender, ResolveEventArgs args) + { + //If this isn't a SQLite DLL we don't want/need to execute this code. + if (!args.Name.Contains("SQLite")) { return null; } + + var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Support", DotSpatial.Mono.Mono.IsRunningOnMono() ? "Mono" : "Windows"); + var assemblyPath = Path.Combine(filePath, new AssemblyName(args.Name).Name + ".dll"); + return !File.Exists(assemblyPath) ? null : Assembly.LoadFrom(assemblyPath); + } + } +} + diff --git a/Source/Core/HydroDesktop.MainApplication/Properties/AssemblyInfo.cs b/Source/Core/HydroDesktop.MainApplication/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..7f3fe1ac --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/Properties/AssemblyInfo.cs @@ -0,0 +1,22 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CUAHSI")] +[assembly: AssemblyProduct("HydroDesktop")] +[assembly: AssemblyCopyright("Copyright © CUAHSI 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("621b23cd-d483-4d02-9f0e-5d4f201eea17")] \ No newline at end of file diff --git a/Source/Core/HydroDesktop.MainApplication/Properties/Resources.Designer.cs b/Source/Core/HydroDesktop.MainApplication/Properties/Resources.Designer.cs new file mode 100644 index 00000000..9e1f4038 --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/Properties/Resources.Designer.cs @@ -0,0 +1,83 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.MainApplication.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.MainApplication.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon HydroDesktop { + get { + object obj = ResourceManager.GetObject("HydroDesktop", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap map_16x16 { + get { + object obj = ResourceManager.GetObject("map_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Core/HydroDesktop.MainApplication/Properties/Resources.resx b/Source/Core/HydroDesktop.MainApplication/Properties/Resources.resx new file mode 100644 index 00000000..7f02e7b0 --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/Properties/Resources.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\HydroDesktop.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\map_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.MainApplication/Properties/Settings.Designer.cs b/Source/Core/HydroDesktop.MainApplication/Properties/Settings.Designer.cs new file mode 100644 index 00000000..26b0a795 --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/Properties/Settings.Designer.cs @@ -0,0 +1,50 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.MainApplication.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.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; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("CUAHSI HydroDesktop")] + public string CustomMainFormTitle { + get { + return ((string)(this["CustomMainFormTitle"])); + } + set { + this["CustomMainFormTitle"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("HydroDesktop.ico")] + public string CustomAppIconPath { + get { + return ((string)(this["CustomAppIconPath"])); + } + set { + this["CustomAppIconPath"] = value; + } + } + } +} diff --git a/Source/Core/HydroDesktop.MainApplication/Properties/Settings.settings b/Source/Core/HydroDesktop.MainApplication/Properties/Settings.settings new file mode 100644 index 00000000..5a7afa60 --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/Properties/Settings.settings @@ -0,0 +1,12 @@ + + + + + + CUAHSI HydroDesktop + + + HydroDesktop.ico + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.MainApplication/Resources/HydroDesktop.ico b/Source/Core/HydroDesktop.MainApplication/Resources/HydroDesktop.ico new file mode 100644 index 00000000..ff79992c Binary files /dev/null and b/Source/Core/HydroDesktop.MainApplication/Resources/HydroDesktop.ico differ diff --git a/Source/Core/HydroDesktop.MainApplication/Resources/map_16x16.png b/Source/Core/HydroDesktop.MainApplication/Resources/map_16x16.png new file mode 100644 index 00000000..44d804dd Binary files /dev/null and b/Source/Core/HydroDesktop.MainApplication/Resources/map_16x16.png differ diff --git a/Source/Core/HydroDesktop.MainApplication/app.config b/Source/Core/HydroDesktop.MainApplication/app.config new file mode 100644 index 00000000..44e83c68 --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/app.config @@ -0,0 +1,81 @@ + + + + +
+ + + + + + + + + + CUAHSI HydroDesktop + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Core/HydroDesktop.MainApplication/packages.config b/Source/Core/HydroDesktop.MainApplication/packages.config new file mode 100644 index 00000000..6e42468e --- /dev/null +++ b/Source/Core/HydroDesktop.MainApplication/packages.config @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/HydroDesktop.ObjectModel.Controls.csproj b/Source/Core/HydroDesktop.ObjectModel.Controls/HydroDesktop.ObjectModel.Controls.csproj new file mode 100644 index 00000000..ee339790 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/HydroDesktop.ObjectModel.Controls.csproj @@ -0,0 +1,222 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {58B443B0-D995-434B-B403-D5D62959D32E} + Library + Properties + HydroDesktop.ObjectModel.Controls + HydroDesktop.ObjectModel.Controls + v4.0 + 512 + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Binaries\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\ + DEBUG;TRACE + full + x86 + ..\..\..\Binaries\HydroDesktop.ObjectModel.Controls.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + ..\..\..\Binaries\HydroDesktop.ObjectModel.Controls.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + + False + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + False + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + False + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + False + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + False + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + False + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + False + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + False + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + + + + + + Properties\AssemblyInfoShared.cs + + + UserControl + + + ISOMetadataView.cs + + + UserControl + + + MethodView.cs + + + Component + + + + UserControl + + + QualityControlLevelView.cs + + + UserControl + + + SiteView.cs + + + UserControl + + + SourceView.cs + + + UserControl + + + VariableView.cs + + + + + ISOMetadataView.cs + + + MethodView.cs + + + QualityControlLevelView.cs + + + SiteView.cs + + + SourceView.cs + + + VariableView.cs + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + {0B9BA90B-2016-4754-915A-0AD74FD0067A} + HydroDesktop.Interfaces + False + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/ISOMetadataView.Designer.cs b/Source/Core/HydroDesktop.ObjectModel.Controls/ISOMetadataView.Designer.cs new file mode 100644 index 00000000..ee0321f7 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/ISOMetadataView.Designer.cs @@ -0,0 +1,172 @@ +namespace HydroDesktop.ObjectModel.Controls +{ + partial class ISOMetadataView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lblTopicCategory = new System.Windows.Forms.Label(); + this.tbTopicCategory = new System.Windows.Forms.TextBox(); + this.tbTitle = new System.Windows.Forms.TextBox(); + this.lblTitle = new System.Windows.Forms.Label(); + this.tbAbstract = new System.Windows.Forms.TextBox(); + this.lblAbstract = new System.Windows.Forms.Label(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + this.tbProfileVersion = new System.Windows.Forms.TextBox(); + this.lblProfileVersion = new System.Windows.Forms.Label(); + this.tblMetadataLink = new System.Windows.Forms.TextBox(); + this.lblMetadataLink = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + this.SuspendLayout(); + // + // lblTopicCategory + // + this.lblTopicCategory.AutoSize = true; + this.lblTopicCategory.Location = new System.Drawing.Point(14, 11); + this.lblTopicCategory.Name = "lblTopicCategory"; + this.lblTopicCategory.Size = new System.Drawing.Size(79, 13); + this.lblTopicCategory.TabIndex = 0; + this.lblTopicCategory.Text = "Topic Category"; + // + // tbTopicCategory + // + this.tbTopicCategory.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbTopicCategory.Location = new System.Drawing.Point(96, 8); + this.tbTopicCategory.Name = "tbTopicCategory"; + this.tbTopicCategory.Size = new System.Drawing.Size(166, 20); + this.tbTopicCategory.TabIndex = 0; + // + // tbTitle + // + this.tbTitle.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbTitle.Location = new System.Drawing.Point(96, 34); + this.tbTitle.Name = "tbTitle"; + this.tbTitle.Size = new System.Drawing.Size(166, 20); + this.tbTitle.TabIndex = 1; + // + // lblTitle + // + this.lblTitle.AutoSize = true; + this.lblTitle.Location = new System.Drawing.Point(14, 37); + this.lblTitle.Name = "lblTitle"; + this.lblTitle.Size = new System.Drawing.Size(27, 13); + this.lblTitle.TabIndex = 2; + this.lblTitle.Text = "Title"; + // + // tbAbstract + // + this.tbAbstract.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbAbstract.Location = new System.Drawing.Point(96, 60); + this.tbAbstract.Name = "tbAbstract"; + this.tbAbstract.Size = new System.Drawing.Size(166, 20); + this.tbAbstract.TabIndex = 2; + // + // lblAbstract + // + this.lblAbstract.AutoSize = true; + this.lblAbstract.Location = new System.Drawing.Point(14, 63); + this.lblAbstract.Name = "lblAbstract"; + this.lblAbstract.Size = new System.Drawing.Size(46, 13); + this.lblAbstract.TabIndex = 4; + this.lblAbstract.Text = "Abstract"; + // + // tbProfileVersion + // + this.tbProfileVersion.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbProfileVersion.Location = new System.Drawing.Point(96, 86); + this.tbProfileVersion.Name = "tbProfileVersion"; + this.tbProfileVersion.Size = new System.Drawing.Size(166, 20); + this.tbProfileVersion.TabIndex = 3; + // + // lblProfileVersion + // + this.lblProfileVersion.AutoSize = true; + this.lblProfileVersion.Location = new System.Drawing.Point(14, 89); + this.lblProfileVersion.Name = "lblProfileVersion"; + this.lblProfileVersion.Size = new System.Drawing.Size(74, 13); + this.lblProfileVersion.TabIndex = 6; + this.lblProfileVersion.Text = "Profile Version"; + // + // tblMetadataLink + // + this.tblMetadataLink.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tblMetadataLink.Location = new System.Drawing.Point(96, 112); + this.tblMetadataLink.Name = "tblMetadataLink"; + this.tblMetadataLink.Size = new System.Drawing.Size(166, 20); + this.tblMetadataLink.TabIndex = 4; + // + // lblMetadataLink + // + this.lblMetadataLink.AutoSize = true; + this.lblMetadataLink.Location = new System.Drawing.Point(14, 115); + this.lblMetadataLink.Name = "lblMetadataLink"; + this.lblMetadataLink.Size = new System.Drawing.Size(75, 13); + this.lblMetadataLink.TabIndex = 8; + this.lblMetadataLink.Text = "Metadata Link"; + // + // ISOMetadataView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tblMetadataLink); + this.Controls.Add(this.lblMetadataLink); + this.Controls.Add(this.tbProfileVersion); + this.Controls.Add(this.lblProfileVersion); + this.Controls.Add(this.tbAbstract); + this.Controls.Add(this.lblAbstract); + this.Controls.Add(this.tbTitle); + this.Controls.Add(this.lblTitle); + this.Controls.Add(this.tbTopicCategory); + this.Controls.Add(this.lblTopicCategory); + this.Name = "ISOMetadataView"; + this.Size = new System.Drawing.Size(275, 143); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblTopicCategory; + private System.Windows.Forms.TextBox tbTopicCategory; + private System.Windows.Forms.TextBox tbTitle; + private System.Windows.Forms.Label lblTitle; + private System.Windows.Forms.TextBox tbAbstract; + private System.Windows.Forms.Label lblAbstract; + private System.Windows.Forms.BindingSource bindingSource1; + private System.Windows.Forms.TextBox tbProfileVersion; + private System.Windows.Forms.Label lblProfileVersion; + private System.Windows.Forms.TextBox tblMetadataLink; + private System.Windows.Forms.Label lblMetadataLink; + } +} diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/ISOMetadataView.cs b/Source/Core/HydroDesktop.ObjectModel.Controls/ISOMetadataView.cs new file mode 100644 index 00000000..9800852f --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/ISOMetadataView.cs @@ -0,0 +1,82 @@ +using System.ComponentModel; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.ObjectModel.Controls +{ + /// + /// View of + /// + public partial class ISOMetadataView : UserControl + { + #region Fields + + private ISOMetadata _entity; + private bool _readOnly; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public ISOMetadataView() + { + InitializeComponent(); + + if (this.IsDesignMode()) return; + + Entity = null; + + // Set bindings + tbTopicCategory.AddBinding(x => x.Text, bindingSource1, x => x.TopicCategory); + tbTitle.AddBinding(x => x.Text, bindingSource1, x => x.Title); + tbAbstract.AddBinding(x => x.Text, bindingSource1, x => x.Abstract); + tbProfileVersion.AddBinding(x => x.Text, bindingSource1, x => x.ProfileVersion); + tblMetadataLink.AddBinding(x => x.Text, bindingSource1, x => x.MetadataLink); + } + + #endregion + + #region Properties + + /// + /// Current Entity + /// + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public ISOMetadata Entity + { + get { return _entity; } + set + { + _entity = value; + bindingSource1.DataSource = value ?? (object)typeof(ISOMetadata); + } + } + + + /// + /// Gets or sets a value indicating whether control is read-only. + /// + [Browsable(false)] + public bool ReadOnly + { + get { return _readOnly; } + set + { + _readOnly = value; + + tbTopicCategory.ReadOnly = value; + tbTitle.ReadOnly = value; + tbAbstract.ReadOnly = value; + tbProfileVersion.ReadOnly = value; + tblMetadataLink.ReadOnly = value; + } + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/ISOMetadataView.resx b/Source/Core/HydroDesktop.ObjectModel.Controls/ISOMetadataView.resx new file mode 100644 index 00000000..4d6bea97 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/ISOMetadataView.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/MethodView.Designer.cs b/Source/Core/HydroDesktop.ObjectModel.Controls/MethodView.Designer.cs new file mode 100644 index 00000000..28f438f4 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/MethodView.Designer.cs @@ -0,0 +1,103 @@ +namespace HydroDesktop.ObjectModel.Controls +{ + partial class MethodView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lblDescription = new System.Windows.Forms.Label(); + this.tbDescription = new System.Windows.Forms.TextBox(); + this.lblLink = new System.Windows.Forms.Label(); + this.tbLink = new System.Windows.Forms.TextBox(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + this.SuspendLayout(); + // + // lblDescription + // + this.lblDescription.AutoSize = true; + this.lblDescription.Location = new System.Drawing.Point(14, 23); + this.lblDescription.Name = "lblDescription"; + this.lblDescription.Size = new System.Drawing.Size(60, 13); + this.lblDescription.TabIndex = 0; + this.lblDescription.Text = "Description"; + // + // tbDescription + // + this.tbDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbDescription.Location = new System.Drawing.Point(81, 20); + this.tbDescription.Multiline = true; + this.tbDescription.Name = "tbDescription"; + this.tbDescription.Size = new System.Drawing.Size(192, 109); + this.tbDescription.TabIndex = 0; + // + // lblLink + // + this.lblLink.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.lblLink.AutoSize = true; + this.lblLink.Location = new System.Drawing.Point(17, 142); + this.lblLink.Name = "lblLink"; + this.lblLink.Size = new System.Drawing.Size(27, 13); + this.lblLink.TabIndex = 2; + this.lblLink.Text = "Link"; + // + // tbLink + // + this.tbLink.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbLink.Location = new System.Drawing.Point(81, 135); + this.tbLink.Name = "tbLink"; + this.tbLink.Size = new System.Drawing.Size(192, 20); + this.tbLink.TabIndex = 1; + // + // MethodView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tbLink); + this.Controls.Add(this.lblLink); + this.Controls.Add(this.tbDescription); + this.Controls.Add(this.lblDescription); + this.Name = "MethodView"; + this.Size = new System.Drawing.Size(291, 170); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblDescription; + private System.Windows.Forms.TextBox tbDescription; + private System.Windows.Forms.Label lblLink; + private System.Windows.Forms.TextBox tbLink; + private System.Windows.Forms.BindingSource bindingSource1; + } +} diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/MethodView.cs b/Source/Core/HydroDesktop.ObjectModel.Controls/MethodView.cs new file mode 100644 index 00000000..e6fc9992 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/MethodView.cs @@ -0,0 +1,75 @@ +using System.ComponentModel; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.ObjectModel.Controls +{ + /// + /// View of + /// + public partial class MethodView : UserControl + { + #region Fields + + private Method _entity; + private bool _readOnly; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public MethodView() + { + InitializeComponent(); + + if (this.IsDesignMode()) return; + + Entity = null; + + // Set bindings + tbDescription.AddBinding(t => t.Text, bindingSource1, m => m.Description); + tbLink.AddBinding(t => t.Text, bindingSource1, m => m.Link); + } + + #endregion + + #region Properties + + /// + /// Gets or sets Entity to View + /// + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public Method Entity + { + get { return _entity; } + set + { + _entity = value; + bindingSource1.DataSource = value ?? (object)typeof(Method); + } + } + + /// + /// Gets or sets a value indicating whether control is read-only. + /// + [Browsable(false)] + public bool ReadOnly + { + get { return _readOnly; } + set + { + _readOnly = value; + + tbDescription.ReadOnly = value; + tbLink.ReadOnly = value; + } + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/MethodView.resx b/Source/Core/HydroDesktop.ObjectModel.Controls/MethodView.resx new file mode 100644 index 00000000..4d6bea97 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/MethodView.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/NumericUpDownEx.cs b/Source/Core/HydroDesktop.ObjectModel.Controls/NumericUpDownEx.cs new file mode 100644 index 00000000..eeda4122 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/NumericUpDownEx.cs @@ -0,0 +1,47 @@ +using System.Windows.Forms; + +namespace HydroDesktop.ObjectModel.Controls +{ + /// + /// NumericUpDown with fixed ReadOnly behavior + /// + public class NumericUpDownEx : NumericUpDown + { + /// + /// Create new instance of + /// + public NumericUpDownEx() + { + Maximum = decimal.MaxValue; + Minimum = decimal.MinValue; + } + + public override void DownButton() + { + if (FullReadOnly) + return; + base.DownButton(); + } + + public override void UpButton() + { + if (FullReadOnly) + return; + base.UpButton(); + } + + private bool _fullReadOnly; + /// + /// Gets or sets value indicating whether Value can be changed by the User + /// + public bool FullReadOnly + { + get { return _fullReadOnly; } + set + { + _fullReadOnly = value; + ReadOnly = value; + } + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/Properties/AssemblyInfo.cs b/Source/Core/HydroDesktop.ObjectModel.Controls/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..0ab9df7c --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/Properties/AssemblyInfo.cs @@ -0,0 +1,22 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.ObjectModel.Controls")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HydroDesktop.ObjectModel.Controls")] +[assembly: AssemblyCopyright("Copyright © 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("523cac4e-d500-4730-89f5-f13ce55b5aea")] \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/QualityControlLevelView.Designer.cs b/Source/Core/HydroDesktop.ObjectModel.Controls/QualityControlLevelView.Designer.cs new file mode 100644 index 00000000..ddba3fdd --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/QualityControlLevelView.Designer.cs @@ -0,0 +1,128 @@ +namespace HydroDesktop.ObjectModel.Controls +{ + partial class QualityControlLevelView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lblCode = new System.Windows.Forms.Label(); + this.tbCode = new System.Windows.Forms.TextBox(); + this.tbDefinition = new System.Windows.Forms.TextBox(); + this.lblDefinition = new System.Windows.Forms.Label(); + this.tbExplanation = new System.Windows.Forms.TextBox(); + this.lblExplanation = new System.Windows.Forms.Label(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + this.SuspendLayout(); + // + // lblCode + // + this.lblCode.AutoSize = true; + this.lblCode.Location = new System.Drawing.Point(14, 13); + this.lblCode.Name = "lblCode"; + this.lblCode.Size = new System.Drawing.Size(32, 13); + this.lblCode.TabIndex = 0; + this.lblCode.Text = "Code"; + // + // tbCode + // + this.tbCode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbCode.Location = new System.Drawing.Point(86, 10); + this.tbCode.Name = "tbCode"; + this.tbCode.Size = new System.Drawing.Size(118, 20); + this.tbCode.TabIndex = 0; + // + // tbDefinition + // + this.tbDefinition.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbDefinition.Location = new System.Drawing.Point(86, 36); + this.tbDefinition.Multiline = true; + this.tbDefinition.Name = "tbDefinition"; + this.tbDefinition.Size = new System.Drawing.Size(118, 32); + this.tbDefinition.TabIndex = 1; + this.tbDefinition.Text = "line1\r\nline2"; + // + // lblDefinition + // + this.lblDefinition.AutoSize = true; + this.lblDefinition.Location = new System.Drawing.Point(14, 39); + this.lblDefinition.Name = "lblDefinition"; + this.lblDefinition.Size = new System.Drawing.Size(51, 13); + this.lblDefinition.TabIndex = 2; + this.lblDefinition.Text = "Definition"; + // + // tbExplanation + // + this.tbExplanation.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbExplanation.Location = new System.Drawing.Point(86, 75); + this.tbExplanation.Multiline = true; + this.tbExplanation.Name = "tbExplanation"; + this.tbExplanation.Size = new System.Drawing.Size(118, 32); + this.tbExplanation.TabIndex = 2; + this.tbExplanation.Text = "line1\r\nline2"; + // + // lblExplanation + // + this.lblExplanation.AutoSize = true; + this.lblExplanation.Location = new System.Drawing.Point(14, 78); + this.lblExplanation.Name = "lblExplanation"; + this.lblExplanation.Size = new System.Drawing.Size(62, 13); + this.lblExplanation.TabIndex = 4; + this.lblExplanation.Text = "Explanation"; + // + // QualityControlLevelView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tbExplanation); + this.Controls.Add(this.lblExplanation); + this.Controls.Add(this.tbDefinition); + this.Controls.Add(this.lblDefinition); + this.Controls.Add(this.tbCode); + this.Controls.Add(this.lblCode); + this.Name = "QualityControlLevelView"; + this.Size = new System.Drawing.Size(217, 121); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblCode; + private System.Windows.Forms.TextBox tbCode; + private System.Windows.Forms.TextBox tbDefinition; + private System.Windows.Forms.Label lblDefinition; + private System.Windows.Forms.TextBox tbExplanation; + private System.Windows.Forms.Label lblExplanation; + private System.Windows.Forms.BindingSource bindingSource1; + } +} diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/QualityControlLevelView.cs b/Source/Core/HydroDesktop.ObjectModel.Controls/QualityControlLevelView.cs new file mode 100644 index 00000000..c1f0c35b --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/QualityControlLevelView.cs @@ -0,0 +1,78 @@ +using System.ComponentModel; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.ObjectModel.Controls +{ + /// + /// View of + /// + public partial class QualityControlLevelView : UserControl + { + #region Fields + + private QualityControlLevel _entity; + private bool _readOnly; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public QualityControlLevelView() + { + InitializeComponent(); + + if (this.IsDesignMode()) return; + + Entity = null; + + // Set bindings + tbCode.AddBinding(x => x.Text, bindingSource1, x => x.Code); + tbDefinition.AddBinding(x => x.Text, bindingSource1, x => x.Definition); + tbExplanation.AddBinding(x => x.Text, bindingSource1, x => x.Explanation); + } + + #endregion + + #region Properties + + /// + /// Current Entity + /// + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public QualityControlLevel Entity + { + get { return _entity; } + set + { + _entity = value; + bindingSource1.DataSource = value ?? (object)typeof(QualityControlLevel); + } + } + + + /// + /// Gets or sets a value indicating whether control is read-only. + /// + [Browsable(false)] + public bool ReadOnly + { + get { return _readOnly; } + set + { + _readOnly = value; + + tbCode.ReadOnly = value; + tbDefinition.ReadOnly = value; + tbExplanation.ReadOnly = value; + } + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/QualityControlLevelView.resx b/Source/Core/HydroDesktop.ObjectModel.Controls/QualityControlLevelView.resx new file mode 100644 index 00000000..4d6bea97 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/QualityControlLevelView.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/SiteView.Designer.cs b/Source/Core/HydroDesktop.ObjectModel.Controls/SiteView.Designer.cs new file mode 100644 index 00000000..8a3d3c3b --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/SiteView.Designer.cs @@ -0,0 +1,520 @@ +namespace HydroDesktop.ObjectModel.Controls +{ + partial class SiteView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lblElevation = new System.Windows.Forms.Label(); + this.tbSiteCode = new System.Windows.Forms.TextBox(); + this.lblSiteCode = new System.Windows.Forms.Label(); + this.lblLongitude = new System.Windows.Forms.Label(); + this.lblLatitude = new System.Windows.Forms.Label(); + this.tbSiteName = new System.Windows.Forms.TextBox(); + this.lblSiteName = new System.Windows.Forms.Label(); + this.tbVertDatum = new System.Windows.Forms.TextBox(); + this.lblVerticalDatum = new System.Windows.Forms.Label(); + this.lblLocalX = new System.Windows.Forms.Label(); + this.lblLocalY = new System.Windows.Forms.Label(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + this.lblPosAccuracy = new System.Windows.Forms.Label(); + this.nudPosAccuracy = new HydroDesktop.ObjectModel.Controls.NumericUpDownEx(); + this.nudLocalY = new HydroDesktop.ObjectModel.Controls.NumericUpDownEx(); + this.nudLocalX = new HydroDesktop.ObjectModel.Controls.NumericUpDownEx(); + this.nudElevation = new HydroDesktop.ObjectModel.Controls.NumericUpDownEx(); + this.nudLng = new HydroDesktop.ObjectModel.Controls.NumericUpDownEx(); + this.nudLat = new HydroDesktop.ObjectModel.Controls.NumericUpDownEx(); + this.tbState = new System.Windows.Forms.TextBox(); + this.lblState = new System.Windows.Forms.Label(); + this.tbCounty = new System.Windows.Forms.TextBox(); + this.lblCounty = new System.Windows.Forms.Label(); + this.tbComments = new System.Windows.Forms.TextBox(); + this.lblComments = new System.Windows.Forms.Label(); + this.tbLocalProjection = new System.Windows.Forms.TextBox(); + this.lblLocalProjection = new System.Windows.Forms.Label(); + this.lblLatLongDatum = new System.Windows.Forms.Label(); + this.tbLatLongDatum = new System.Windows.Forms.TextBox(); + this.tbSiteType = new System.Windows.Forms.TextBox(); + this.lblSiteType = new System.Windows.Forms.Label(); + this.tbCountry = new System.Windows.Forms.TextBox(); + this.lblCountry = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudPosAccuracy)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudLocalY)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudLocalX)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudElevation)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudLng)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudLat)).BeginInit(); + this.SuspendLayout(); + // + // lblElevation + // + this.lblElevation.AutoSize = true; + this.lblElevation.Location = new System.Drawing.Point(14, 149); + this.lblElevation.Name = "lblElevation"; + this.lblElevation.Size = new System.Drawing.Size(51, 13); + this.lblElevation.TabIndex = 20; + this.lblElevation.Text = "Elevation"; + // + // tbSiteCode + // + this.tbSiteCode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbSiteCode.Location = new System.Drawing.Point(103, 42); + this.tbSiteCode.Name = "tbSiteCode"; + this.tbSiteCode.Size = new System.Drawing.Size(162, 20); + this.tbSiteCode.TabIndex = 1; + // + // lblSiteCode + // + this.lblSiteCode.AutoSize = true; + this.lblSiteCode.Location = new System.Drawing.Point(14, 45); + this.lblSiteCode.Name = "lblSiteCode"; + this.lblSiteCode.Size = new System.Drawing.Size(52, 13); + this.lblSiteCode.TabIndex = 19; + this.lblSiteCode.Text = "Site code"; + // + // lblLongitude + // + this.lblLongitude.AutoSize = true; + this.lblLongitude.Location = new System.Drawing.Point(14, 97); + this.lblLongitude.Name = "lblLongitude"; + this.lblLongitude.Size = new System.Drawing.Size(54, 13); + this.lblLongitude.TabIndex = 18; + this.lblLongitude.Text = "Longitude"; + // + // lblLatitude + // + this.lblLatitude.AutoSize = true; + this.lblLatitude.Location = new System.Drawing.Point(14, 71); + this.lblLatitude.Name = "lblLatitude"; + this.lblLatitude.Size = new System.Drawing.Size(45, 13); + this.lblLatitude.TabIndex = 17; + this.lblLatitude.Text = "Latitude"; + // + // tbSiteName + // + this.tbSiteName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbSiteName.Location = new System.Drawing.Point(103, 16); + this.tbSiteName.Name = "tbSiteName"; + this.tbSiteName.Size = new System.Drawing.Size(162, 20); + this.tbSiteName.TabIndex = 0; + // + // lblSiteName + // + this.lblSiteName.AutoSize = true; + this.lblSiteName.Location = new System.Drawing.Point(14, 19); + this.lblSiteName.Name = "lblSiteName"; + this.lblSiteName.Size = new System.Drawing.Size(54, 13); + this.lblSiteName.TabIndex = 14; + this.lblSiteName.Text = "Site name"; + // + // tbVertDatum + // + this.tbVertDatum.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbVertDatum.Location = new System.Drawing.Point(103, 172); + this.tbVertDatum.Name = "tbVertDatum"; + this.tbVertDatum.Size = new System.Drawing.Size(162, 20); + this.tbVertDatum.TabIndex = 6; + // + // lblVerticalDatum + // + this.lblVerticalDatum.AutoSize = true; + this.lblVerticalDatum.Location = new System.Drawing.Point(14, 175); + this.lblVerticalDatum.Name = "lblVerticalDatum"; + this.lblVerticalDatum.Size = new System.Drawing.Size(76, 13); + this.lblVerticalDatum.TabIndex = 22; + this.lblVerticalDatum.Text = "Vertical Datum"; + // + // lblLocalX + // + this.lblLocalX.AutoSize = true; + this.lblLocalX.Location = new System.Drawing.Point(14, 201); + this.lblLocalX.Name = "lblLocalX"; + this.lblLocalX.Size = new System.Drawing.Size(40, 13); + this.lblLocalX.TabIndex = 24; + this.lblLocalX.Text = "LocalX"; + // + // lblLocalY + // + this.lblLocalY.AutoSize = true; + this.lblLocalY.Location = new System.Drawing.Point(14, 227); + this.lblLocalY.Name = "lblLocalY"; + this.lblLocalY.Size = new System.Drawing.Size(40, 13); + this.lblLocalY.TabIndex = 26; + this.lblLocalY.Text = "LocalY"; + // + // lblPosAccuracy + // + this.lblPosAccuracy.AutoSize = true; + this.lblPosAccuracy.Location = new System.Drawing.Point(13, 279); + this.lblPosAccuracy.Name = "lblPosAccuracy"; + this.lblPosAccuracy.Size = new System.Drawing.Size(84, 13); + this.lblPosAccuracy.TabIndex = 28; + this.lblPosAccuracy.Text = "PosAccuracy_m"; + // + // nudPosAccuracy + // + this.nudPosAccuracy.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nudPosAccuracy.DecimalPlaces = 4; + this.nudPosAccuracy.FullReadOnly = false; + this.nudPosAccuracy.Location = new System.Drawing.Point(103, 276); + this.nudPosAccuracy.Maximum = new decimal(new int[] { + 90, + 0, + 0, + 0}); + this.nudPosAccuracy.Minimum = new decimal(new int[] { + 90, + 0, + 0, + -2147483648}); + this.nudPosAccuracy.Name = "nudPosAccuracy"; + this.nudPosAccuracy.Size = new System.Drawing.Size(162, 20); + this.nudPosAccuracy.TabIndex = 10; + // + // nudLocalY + // + this.nudLocalY.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nudLocalY.DecimalPlaces = 4; + this.nudLocalY.FullReadOnly = false; + this.nudLocalY.Location = new System.Drawing.Point(103, 224); + this.nudLocalY.Maximum = new decimal(new int[] { + 90, + 0, + 0, + 0}); + this.nudLocalY.Minimum = new decimal(new int[] { + 90, + 0, + 0, + -2147483648}); + this.nudLocalY.Name = "nudLocalY"; + this.nudLocalY.Size = new System.Drawing.Size(162, 20); + this.nudLocalY.TabIndex = 8; + // + // nudLocalX + // + this.nudLocalX.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nudLocalX.DecimalPlaces = 4; + this.nudLocalX.FullReadOnly = false; + this.nudLocalX.Location = new System.Drawing.Point(103, 198); + this.nudLocalX.Maximum = new decimal(new int[] { + 90, + 0, + 0, + 0}); + this.nudLocalX.Minimum = new decimal(new int[] { + 90, + 0, + 0, + -2147483648}); + this.nudLocalX.Name = "nudLocalX"; + this.nudLocalX.Size = new System.Drawing.Size(162, 20); + this.nudLocalX.TabIndex = 7; + // + // nudElevation + // + this.nudElevation.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nudElevation.DecimalPlaces = 4; + this.nudElevation.FullReadOnly = false; + this.nudElevation.Location = new System.Drawing.Point(103, 146); + this.nudElevation.Maximum = new decimal(new int[] { + -1, + -1, + -1, + 0}); + this.nudElevation.Minimum = new decimal(new int[] { + -1, + -1, + -1, + -2147483648}); + this.nudElevation.Name = "nudElevation"; + this.nudElevation.Size = new System.Drawing.Size(162, 20); + this.nudElevation.TabIndex = 5; + // + // nudLng + // + this.nudLng.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nudLng.DecimalPlaces = 4; + this.nudLng.FullReadOnly = false; + this.nudLng.Location = new System.Drawing.Point(103, 94); + this.nudLng.Maximum = new decimal(new int[] { + 180, + 0, + 0, + 0}); + this.nudLng.Minimum = new decimal(new int[] { + 180, + 0, + 0, + -2147483648}); + this.nudLng.Name = "nudLng"; + this.nudLng.Size = new System.Drawing.Size(162, 20); + this.nudLng.TabIndex = 3; + // + // nudLat + // + this.nudLat.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nudLat.DecimalPlaces = 4; + this.nudLat.FullReadOnly = false; + this.nudLat.Location = new System.Drawing.Point(103, 68); + this.nudLat.Maximum = new decimal(new int[] { + 90, + 0, + 0, + 0}); + this.nudLat.Minimum = new decimal(new int[] { + 90, + 0, + 0, + -2147483648}); + this.nudLat.Name = "nudLat"; + this.nudLat.Size = new System.Drawing.Size(162, 20); + this.nudLat.TabIndex = 2; + // + // tbState + // + this.tbState.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbState.Location = new System.Drawing.Point(103, 302); + this.tbState.Name = "tbState"; + this.tbState.Size = new System.Drawing.Size(162, 20); + this.tbState.TabIndex = 11; + // + // lblState + // + this.lblState.AutoSize = true; + this.lblState.Location = new System.Drawing.Point(14, 305); + this.lblState.Name = "lblState"; + this.lblState.Size = new System.Drawing.Size(32, 13); + this.lblState.TabIndex = 30; + this.lblState.Text = "State"; + // + // tbCounty + // + this.tbCounty.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbCounty.Location = new System.Drawing.Point(103, 328); + this.tbCounty.Name = "tbCounty"; + this.tbCounty.Size = new System.Drawing.Size(162, 20); + this.tbCounty.TabIndex = 12; + // + // lblCounty + // + this.lblCounty.AutoSize = true; + this.lblCounty.Location = new System.Drawing.Point(14, 331); + this.lblCounty.Name = "lblCounty"; + this.lblCounty.Size = new System.Drawing.Size(40, 13); + this.lblCounty.TabIndex = 32; + this.lblCounty.Text = "County"; + // + // tbComments + // + this.tbComments.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbComments.Location = new System.Drawing.Point(103, 354); + this.tbComments.Name = "tbComments"; + this.tbComments.Size = new System.Drawing.Size(162, 20); + this.tbComments.TabIndex = 13; + // + // lblComments + // + this.lblComments.AutoSize = true; + this.lblComments.Location = new System.Drawing.Point(14, 357); + this.lblComments.Name = "lblComments"; + this.lblComments.Size = new System.Drawing.Size(56, 13); + this.lblComments.TabIndex = 34; + this.lblComments.Text = "Comments"; + // + // tbLocalProjection + // + this.tbLocalProjection.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbLocalProjection.Location = new System.Drawing.Point(103, 250); + this.tbLocalProjection.Name = "tbLocalProjection"; + this.tbLocalProjection.Size = new System.Drawing.Size(162, 20); + this.tbLocalProjection.TabIndex = 9; + // + // lblLocalProjection + // + this.lblLocalProjection.AutoSize = true; + this.lblLocalProjection.Location = new System.Drawing.Point(14, 253); + this.lblLocalProjection.Name = "lblLocalProjection"; + this.lblLocalProjection.Size = new System.Drawing.Size(80, 13); + this.lblLocalProjection.TabIndex = 36; + this.lblLocalProjection.Text = "LocalProjection"; + // + // lblLatLongDatum + // + this.lblLatLongDatum.AutoSize = true; + this.lblLatLongDatum.Location = new System.Drawing.Point(14, 123); + this.lblLatLongDatum.Name = "lblLatLongDatum"; + this.lblLatLongDatum.Size = new System.Drawing.Size(77, 13); + this.lblLatLongDatum.TabIndex = 38; + this.lblLatLongDatum.Text = "LatLongDatum"; + // + // tbLatLongDatum + // + this.tbLatLongDatum.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbLatLongDatum.Location = new System.Drawing.Point(103, 120); + this.tbLatLongDatum.Name = "tbLatLongDatum"; + this.tbLatLongDatum.Size = new System.Drawing.Size(162, 20); + this.tbLatLongDatum.TabIndex = 4; + // + // tbSiteType + // + this.tbSiteType.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbSiteType.Location = new System.Drawing.Point(103, 380); + this.tbSiteType.Name = "tbSiteType"; + this.tbSiteType.Size = new System.Drawing.Size(162, 20); + this.tbSiteType.TabIndex = 39; + // + // lblSiteType + // + this.lblSiteType.AutoSize = true; + this.lblSiteType.Location = new System.Drawing.Point(14, 383); + this.lblSiteType.Name = "lblSiteType"; + this.lblSiteType.Size = new System.Drawing.Size(49, 13); + this.lblSiteType.TabIndex = 40; + this.lblSiteType.Text = "SiteType"; + // + // tbCountry + // + this.tbCountry.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbCountry.Location = new System.Drawing.Point(103, 406); + this.tbCountry.Name = "tbCountry"; + this.tbCountry.Size = new System.Drawing.Size(162, 20); + this.tbCountry.TabIndex = 41; + // + // lblCountry + // + this.lblCountry.AutoSize = true; + this.lblCountry.Location = new System.Drawing.Point(14, 409); + this.lblCountry.Name = "lblCountry"; + this.lblCountry.Size = new System.Drawing.Size(43, 13); + this.lblCountry.TabIndex = 42; + this.lblCountry.Text = "Country"; + // + // SiteView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tbCountry); + this.Controls.Add(this.lblCountry); + this.Controls.Add(this.tbSiteType); + this.Controls.Add(this.lblSiteType); + this.Controls.Add(this.lblLatLongDatum); + this.Controls.Add(this.tbLatLongDatum); + this.Controls.Add(this.lblLocalProjection); + this.Controls.Add(this.tbLocalProjection); + this.Controls.Add(this.tbComments); + this.Controls.Add(this.lblComments); + this.Controls.Add(this.tbCounty); + this.Controls.Add(this.lblCounty); + this.Controls.Add(this.tbState); + this.Controls.Add(this.lblState); + this.Controls.Add(this.nudPosAccuracy); + this.Controls.Add(this.lblPosAccuracy); + this.Controls.Add(this.nudLocalY); + this.Controls.Add(this.lblLocalY); + this.Controls.Add(this.nudLocalX); + this.Controls.Add(this.lblLocalX); + this.Controls.Add(this.tbVertDatum); + this.Controls.Add(this.lblVerticalDatum); + this.Controls.Add(this.nudElevation); + this.Controls.Add(this.lblElevation); + this.Controls.Add(this.tbSiteCode); + this.Controls.Add(this.lblSiteCode); + this.Controls.Add(this.nudLng); + this.Controls.Add(this.nudLat); + this.Controls.Add(this.lblLongitude); + this.Controls.Add(this.lblLatitude); + this.Controls.Add(this.tbSiteName); + this.Controls.Add(this.lblSiteName); + this.Name = "SiteView"; + this.Size = new System.Drawing.Size(279, 432); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudPosAccuracy)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudLocalY)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudLocalX)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudElevation)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudLng)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudLat)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private NumericUpDownEx nudElevation; + private System.Windows.Forms.Label lblElevation; + private System.Windows.Forms.TextBox tbSiteCode; + private System.Windows.Forms.Label lblSiteCode; + private NumericUpDownEx nudLng; + private NumericUpDownEx nudLat; + private System.Windows.Forms.Label lblLongitude; + private System.Windows.Forms.Label lblLatitude; + private System.Windows.Forms.TextBox tbSiteName; + private System.Windows.Forms.Label lblSiteName; + private System.Windows.Forms.BindingSource bindingSource1; + private System.Windows.Forms.TextBox tbVertDatum; + private System.Windows.Forms.Label lblVerticalDatum; + private NumericUpDownEx nudLocalX; + private System.Windows.Forms.Label lblLocalX; + private NumericUpDownEx nudLocalY; + private System.Windows.Forms.Label lblLocalY; + private NumericUpDownEx nudPosAccuracy; + private System.Windows.Forms.Label lblPosAccuracy; + private System.Windows.Forms.TextBox tbState; + private System.Windows.Forms.Label lblState; + private System.Windows.Forms.TextBox tbCounty; + private System.Windows.Forms.Label lblCounty; + private System.Windows.Forms.TextBox tbComments; + private System.Windows.Forms.Label lblComments; + private System.Windows.Forms.TextBox tbLocalProjection; + private System.Windows.Forms.Label lblLocalProjection; + private System.Windows.Forms.Label lblLatLongDatum; + private System.Windows.Forms.TextBox tbLatLongDatum; + private System.Windows.Forms.TextBox tbSiteType; + private System.Windows.Forms.Label lblSiteType; + private System.Windows.Forms.TextBox tbCountry; + private System.Windows.Forms.Label lblCountry; + } +} diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/SiteView.cs b/Source/Core/HydroDesktop.ObjectModel.Controls/SiteView.cs new file mode 100644 index 00000000..70332043 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/SiteView.cs @@ -0,0 +1,103 @@ +using System.ComponentModel; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.ObjectModel.Controls +{ + /// + /// View of + /// + public partial class SiteView : UserControl + { + #region Fields + + private bool _readOnly; + private Site _entity; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public SiteView() + { + InitializeComponent(); + + if (this.IsDesignMode()) return; + + Entity = null; + + // Set Bindings + tbSiteName.AddBinding(t => t.Text, bindingSource1, s => s.Name); + tbSiteCode.AddBinding(t => t.Text, bindingSource1, s => s.Code); + nudLat.AddBinding(n => n.Value, bindingSource1, s => s.Latitude); + nudLng.AddBinding(n => n.Value, bindingSource1, s => s.Longitude); + nudElevation.AddBinding(n => n.Value, bindingSource1, s => s.Elevation_m); + tbVertDatum.AddBinding(t => t.Text, bindingSource1, s => s.VerticalDatum); + nudLocalX.AddBinding(n => n.Value, bindingSource1, s => s.LocalX); + nudLocalY.AddBinding(n => n.Value, bindingSource1, s => s.LocalY); + nudPosAccuracy.AddBinding(n => n.Value, bindingSource1, s => s.PosAccuracy_m); + tbState.AddBinding(t => t.Text, bindingSource1, s => s.State); + tbCounty.AddBinding(t => t.Text, bindingSource1, s => s.County); + tbComments.AddBinding(t => t.Text, bindingSource1, s => s.Comments); + tbLocalProjection.AddBinding(t => t.Text, bindingSource1, s => s.LocalProjection); + tbLatLongDatum.AddBinding(t => t.Text, bindingSource1, s => s.SpatialReference); + tbSiteType.AddBinding(t => t.Text, bindingSource1, s => s.SiteType); + tbCountry.AddBinding(t => t.Text, bindingSource1, s => s.Country); + } + + #endregion + + #region Properties + + /// + /// Gets or sets Entity to View + /// + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public Site Entity + { + get { return _entity; } + set + { + _entity = value; + bindingSource1.DataSource = value ?? (object)typeof(Site); + } + } + + /// + /// Gets or sets a value indicating whether control is read-only. + /// + [Browsable(false)] + public bool ReadOnly + { + get { return _readOnly; } + set + { + _readOnly = value; + + tbSiteName.ReadOnly = value; + tbSiteCode.ReadOnly = value; + nudLat.FullReadOnly = value; + nudLng.FullReadOnly = value; + nudElevation.FullReadOnly = value; + tbVertDatum.ReadOnly = value; + nudLocalX.FullReadOnly = value; + nudLocalY.FullReadOnly = value; + nudPosAccuracy.FullReadOnly = value; + tbState.ReadOnly = value; + tbCounty.ReadOnly = value; + tbComments.ReadOnly = value; + tbLocalProjection.ReadOnly = value; + tbLatLongDatum.ReadOnly = value; + tbSiteType.ReadOnly = value; + tbCountry.ReadOnly = value; + } + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/SiteView.resx b/Source/Core/HydroDesktop.ObjectModel.Controls/SiteView.resx new file mode 100644 index 00000000..4d6bea97 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/SiteView.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/SourceView.Designer.cs b/Source/Core/HydroDesktop.ObjectModel.Controls/SourceView.Designer.cs new file mode 100644 index 00000000..dc54be9e --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/SourceView.Designer.cs @@ -0,0 +1,322 @@ +namespace HydroDesktop.ObjectModel.Controls +{ + partial class SourceView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lblOrganization = new System.Windows.Forms.Label(); + this.tbOrganization = new System.Windows.Forms.TextBox(); + this.tbDescription = new System.Windows.Forms.TextBox(); + this.lblSourceDescription = new System.Windows.Forms.Label(); + this.tbLink = new System.Windows.Forms.TextBox(); + this.lblLink = new System.Windows.Forms.Label(); + this.tbContactName = new System.Windows.Forms.TextBox(); + this.lblContactName = new System.Windows.Forms.Label(); + this.tbPhone = new System.Windows.Forms.TextBox(); + this.lblPhone = new System.Windows.Forms.Label(); + this.tbEmail = new System.Windows.Forms.TextBox(); + this.lblEmail = new System.Windows.Forms.Label(); + this.tbAddress = new System.Windows.Forms.TextBox(); + this.lblAddress = new System.Windows.Forms.Label(); + this.tbCity = new System.Windows.Forms.TextBox(); + this.lblCity = new System.Windows.Forms.Label(); + this.tbState = new System.Windows.Forms.TextBox(); + this.lblState = new System.Windows.Forms.Label(); + this.tbZipCode = new System.Windows.Forms.TextBox(); + this.lblZipCode = new System.Windows.Forms.Label(); + this.tbCitation = new System.Windows.Forms.TextBox(); + this.lblCitation = new System.Windows.Forms.Label(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + this.SuspendLayout(); + // + // lblOrganization + // + this.lblOrganization.AutoSize = true; + this.lblOrganization.Location = new System.Drawing.Point(13, 13); + this.lblOrganization.Name = "lblOrganization"; + this.lblOrganization.Size = new System.Drawing.Size(66, 13); + this.lblOrganization.TabIndex = 0; + this.lblOrganization.Text = "Organization"; + // + // tbOrganization + // + this.tbOrganization.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbOrganization.Location = new System.Drawing.Point(101, 10); + this.tbOrganization.Multiline = true; + this.tbOrganization.Name = "tbOrganization"; + this.tbOrganization.Size = new System.Drawing.Size(182, 32); + this.tbOrganization.TabIndex = 0; + this.tbOrganization.Text = "line1\r\nline2"; + // + // tbDescription + // + this.tbDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbDescription.Location = new System.Drawing.Point(101, 48); + this.tbDescription.Multiline = true; + this.tbDescription.Name = "tbDescription"; + this.tbDescription.Size = new System.Drawing.Size(182, 48); + this.tbDescription.TabIndex = 1; + this.tbDescription.Text = "line1\r\nline2\r\nline3"; + // + // lblSourceDescription + // + this.lblSourceDescription.AutoSize = true; + this.lblSourceDescription.Location = new System.Drawing.Point(13, 51); + this.lblSourceDescription.Name = "lblSourceDescription"; + this.lblSourceDescription.Size = new System.Drawing.Size(60, 13); + this.lblSourceDescription.TabIndex = 2; + this.lblSourceDescription.Text = "Description"; + // + // tbLink + // + this.tbLink.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbLink.Location = new System.Drawing.Point(101, 104); + this.tbLink.Name = "tbLink"; + this.tbLink.Size = new System.Drawing.Size(182, 20); + this.tbLink.TabIndex = 2; + // + // lblLink + // + this.lblLink.AutoSize = true; + this.lblLink.Location = new System.Drawing.Point(13, 107); + this.lblLink.Name = "lblLink"; + this.lblLink.Size = new System.Drawing.Size(27, 13); + this.lblLink.TabIndex = 4; + this.lblLink.Text = "Link"; + // + // tbContactName + // + this.tbContactName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbContactName.Location = new System.Drawing.Point(101, 132); + this.tbContactName.Name = "tbContactName"; + this.tbContactName.Size = new System.Drawing.Size(182, 20); + this.tbContactName.TabIndex = 3; + // + // lblContactName + // + this.lblContactName.AutoSize = true; + this.lblContactName.Location = new System.Drawing.Point(13, 135); + this.lblContactName.Name = "lblContactName"; + this.lblContactName.Size = new System.Drawing.Size(73, 13); + this.lblContactName.TabIndex = 6; + this.lblContactName.Text = "Contact name"; + // + // tbPhone + // + this.tbPhone.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbPhone.Location = new System.Drawing.Point(101, 160); + this.tbPhone.Name = "tbPhone"; + this.tbPhone.Size = new System.Drawing.Size(182, 20); + this.tbPhone.TabIndex = 4; + // + // lblPhone + // + this.lblPhone.AutoSize = true; + this.lblPhone.Location = new System.Drawing.Point(13, 163); + this.lblPhone.Name = "lblPhone"; + this.lblPhone.Size = new System.Drawing.Size(38, 13); + this.lblPhone.TabIndex = 8; + this.lblPhone.Text = "Phone"; + // + // tbEmail + // + this.tbEmail.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbEmail.Location = new System.Drawing.Point(101, 188); + this.tbEmail.Name = "tbEmail"; + this.tbEmail.Size = new System.Drawing.Size(182, 20); + this.tbEmail.TabIndex = 5; + // + // lblEmail + // + this.lblEmail.AutoSize = true; + this.lblEmail.Location = new System.Drawing.Point(13, 191); + this.lblEmail.Name = "lblEmail"; + this.lblEmail.Size = new System.Drawing.Size(32, 13); + this.lblEmail.TabIndex = 10; + this.lblEmail.Text = "Email"; + // + // tbAddress + // + this.tbAddress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbAddress.Location = new System.Drawing.Point(101, 216); + this.tbAddress.Name = "tbAddress"; + this.tbAddress.Size = new System.Drawing.Size(182, 20); + this.tbAddress.TabIndex = 6; + // + // lblAddress + // + this.lblAddress.AutoSize = true; + this.lblAddress.Location = new System.Drawing.Point(13, 219); + this.lblAddress.Name = "lblAddress"; + this.lblAddress.Size = new System.Drawing.Size(45, 13); + this.lblAddress.TabIndex = 12; + this.lblAddress.Text = "Address"; + // + // tbCity + // + this.tbCity.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbCity.Location = new System.Drawing.Point(101, 244); + this.tbCity.Name = "tbCity"; + this.tbCity.Size = new System.Drawing.Size(182, 20); + this.tbCity.TabIndex = 7; + // + // lblCity + // + this.lblCity.AutoSize = true; + this.lblCity.Location = new System.Drawing.Point(13, 247); + this.lblCity.Name = "lblCity"; + this.lblCity.Size = new System.Drawing.Size(24, 13); + this.lblCity.TabIndex = 14; + this.lblCity.Text = "City"; + // + // tbState + // + this.tbState.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbState.Location = new System.Drawing.Point(101, 272); + this.tbState.Name = "tbState"; + this.tbState.Size = new System.Drawing.Size(182, 20); + this.tbState.TabIndex = 8; + // + // lblState + // + this.lblState.AutoSize = true; + this.lblState.Location = new System.Drawing.Point(13, 275); + this.lblState.Name = "lblState"; + this.lblState.Size = new System.Drawing.Size(32, 13); + this.lblState.TabIndex = 16; + this.lblState.Text = "State"; + // + // tbZipCode + // + this.tbZipCode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbZipCode.Location = new System.Drawing.Point(101, 300); + this.tbZipCode.Name = "tbZipCode"; + this.tbZipCode.Size = new System.Drawing.Size(182, 20); + this.tbZipCode.TabIndex = 9; + // + // lblZipCode + // + this.lblZipCode.AutoSize = true; + this.lblZipCode.Location = new System.Drawing.Point(13, 303); + this.lblZipCode.Name = "lblZipCode"; + this.lblZipCode.Size = new System.Drawing.Size(47, 13); + this.lblZipCode.TabIndex = 18; + this.lblZipCode.Text = "ZipCode"; + // + // tbCitation + // + this.tbCitation.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbCitation.Location = new System.Drawing.Point(101, 328); + this.tbCitation.Multiline = true; + this.tbCitation.Name = "tbCitation"; + this.tbCitation.Size = new System.Drawing.Size(182, 48); + this.tbCitation.TabIndex = 10; + this.tbCitation.Text = "line1\r\nline2\r\nline3"; + // + // lblCitation + // + this.lblCitation.AutoSize = true; + this.lblCitation.Location = new System.Drawing.Point(13, 331); + this.lblCitation.Name = "lblCitation"; + this.lblCitation.Size = new System.Drawing.Size(42, 13); + this.lblCitation.TabIndex = 20; + this.lblCitation.Text = "Citation"; + // + // SourceView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tbCitation); + this.Controls.Add(this.lblCitation); + this.Controls.Add(this.tbZipCode); + this.Controls.Add(this.lblZipCode); + this.Controls.Add(this.tbState); + this.Controls.Add(this.lblState); + this.Controls.Add(this.tbCity); + this.Controls.Add(this.lblCity); + this.Controls.Add(this.tbAddress); + this.Controls.Add(this.lblAddress); + this.Controls.Add(this.tbEmail); + this.Controls.Add(this.lblEmail); + this.Controls.Add(this.tbPhone); + this.Controls.Add(this.lblPhone); + this.Controls.Add(this.tbContactName); + this.Controls.Add(this.lblContactName); + this.Controls.Add(this.tbLink); + this.Controls.Add(this.lblLink); + this.Controls.Add(this.tbDescription); + this.Controls.Add(this.lblSourceDescription); + this.Controls.Add(this.tbOrganization); + this.Controls.Add(this.lblOrganization); + this.Name = "SourceView"; + this.Size = new System.Drawing.Size(296, 388); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblOrganization; + private System.Windows.Forms.TextBox tbOrganization; + private System.Windows.Forms.TextBox tbDescription; + private System.Windows.Forms.Label lblSourceDescription; + private System.Windows.Forms.TextBox tbLink; + private System.Windows.Forms.Label lblLink; + private System.Windows.Forms.TextBox tbContactName; + private System.Windows.Forms.Label lblContactName; + private System.Windows.Forms.TextBox tbPhone; + private System.Windows.Forms.Label lblPhone; + private System.Windows.Forms.TextBox tbEmail; + private System.Windows.Forms.Label lblEmail; + private System.Windows.Forms.TextBox tbAddress; + private System.Windows.Forms.Label lblAddress; + private System.Windows.Forms.TextBox tbCity; + private System.Windows.Forms.Label lblCity; + private System.Windows.Forms.TextBox tbState; + private System.Windows.Forms.Label lblState; + private System.Windows.Forms.TextBox tbZipCode; + private System.Windows.Forms.Label lblZipCode; + private System.Windows.Forms.TextBox tbCitation; + private System.Windows.Forms.Label lblCitation; + private System.Windows.Forms.BindingSource bindingSource1; + } +} diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/SourceView.cs b/Source/Core/HydroDesktop.ObjectModel.Controls/SourceView.cs new file mode 100644 index 00000000..23143c92 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/SourceView.cs @@ -0,0 +1,93 @@ +using System.ComponentModel; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.ObjectModel.Controls +{ + /// + /// View of + /// + public partial class SourceView : UserControl + { + #region Fields + + private Source _entity; + private bool _readOnly; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public SourceView() + { + InitializeComponent(); + + if (this.IsDesignMode()) return; + + Entity = null; + + // Set bindings + tbOrganization.AddBinding(t => t.Text, bindingSource1, s => s.Organization); + tbDescription.AddBinding(t => t.Text, bindingSource1, s => s.Description); + tbLink.AddBinding(t => t.Text, bindingSource1, s => s.Link); + tbContactName.AddBinding(t => t.Text, bindingSource1, s => s.ContactName); + tbPhone.AddBinding(t => t.Text, bindingSource1, s => s.Phone); + tbEmail.AddBinding(t => t.Text, bindingSource1, s => s.Email); + tbAddress.AddBinding(t => t.Text, bindingSource1, s => s.Address); + tbCity.AddBinding(t => t.Text, bindingSource1, s => s.City); + tbState.AddBinding(t => t.Text, bindingSource1, s => s.State); + tbZipCode.AddBinding(t => t.Text, bindingSource1, s => s.ZipCode); + tbCitation.AddBinding(t => t.Text, bindingSource1, s => s.Citation); + } + + #endregion + + #region Properties + + /// + /// Gets or sets Entity to View + /// + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public Source Entity + { + get { return _entity; } + set + { + _entity = value; + bindingSource1.DataSource = value ?? (object)typeof(Source); + } + } + + /// + /// Gets or sets a value indicating whether control is read-only. + /// + [Browsable(false)] + public bool ReadOnly + { + get { return _readOnly; } + set + { + _readOnly = value; + + tbOrganization.ReadOnly = value; + tbDescription.ReadOnly = value; + tbLink.ReadOnly = value; + tbContactName.ReadOnly = value; + tbPhone.ReadOnly = value; + tbEmail.ReadOnly = value; + tbAddress.ReadOnly = value; + tbCity.ReadOnly = value; + tbState.ReadOnly = value; + tbZipCode.ReadOnly = value; + tbCitation.ReadOnly = value; + } + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/SourceView.resx b/Source/Core/HydroDesktop.ObjectModel.Controls/SourceView.resx new file mode 100644 index 00000000..4d6bea97 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/SourceView.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/VariableView.Designer.cs b/Source/Core/HydroDesktop.ObjectModel.Controls/VariableView.Designer.cs new file mode 100644 index 00000000..9f020c95 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/VariableView.Designer.cs @@ -0,0 +1,366 @@ +namespace HydroDesktop.ObjectModel.Controls +{ + partial class VariableView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lblName = new System.Windows.Forms.Label(); + this.tbCode = new System.Windows.Forms.TextBox(); + this.lblCode = new System.Windows.Forms.Label(); + this.lblVariableUnits = new System.Windows.Forms.Label(); + this.lblTimeUnits = new System.Windows.Forms.Label(); + this.lblDataType = new System.Windows.Forms.Label(); + this.lblValueType = new System.Windows.Forms.Label(); + this.lblTimeSupport = new System.Windows.Forms.Label(); + this.lblNoDataValue = new System.Windows.Forms.Label(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + this.nudNoDataValue = new HydroDesktop.ObjectModel.Controls.NumericUpDownEx(); + this.nudTimeSupport = new HydroDesktop.ObjectModel.Controls.NumericUpDownEx(); + this.lblSampleMedium = new System.Windows.Forms.Label(); + this.tbName = new System.Windows.Forms.TextBox(); + this.tbVariableUnits = new System.Windows.Forms.TextBox(); + this.tbDataType = new System.Windows.Forms.TextBox(); + this.tbValueType = new System.Windows.Forms.TextBox(); + this.tbSampleMedium = new System.Windows.Forms.TextBox(); + this.tbTimeUnits = new System.Windows.Forms.TextBox(); + this.lblIsRegular = new System.Windows.Forms.Label(); + this.tbIsRegular = new System.Windows.Forms.TextBox(); + this.tbSpeciation = new System.Windows.Forms.TextBox(); + this.lblSpeciation = new System.Windows.Forms.Label(); + this.tbGeneralCategory = new System.Windows.Forms.TextBox(); + this.lblGeneralCategory = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudNoDataValue)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTimeSupport)).BeginInit(); + this.SuspendLayout(); + // + // lblName + // + this.lblName.AutoSize = true; + this.lblName.Location = new System.Drawing.Point(13, 15); + this.lblName.Name = "lblName"; + this.lblName.Size = new System.Drawing.Size(35, 13); + this.lblName.TabIndex = 0; + this.lblName.Text = "Name"; + // + // tbCode + // + this.tbCode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbCode.Location = new System.Drawing.Point(103, 38); + this.tbCode.Name = "tbCode"; + this.tbCode.Size = new System.Drawing.Size(186, 20); + this.tbCode.TabIndex = 1; + // + // lblCode + // + this.lblCode.AutoSize = true; + this.lblCode.Location = new System.Drawing.Point(13, 41); + this.lblCode.Name = "lblCode"; + this.lblCode.Size = new System.Drawing.Size(32, 13); + this.lblCode.TabIndex = 2; + this.lblCode.Text = "Code"; + // + // lblVariableUnits + // + this.lblVariableUnits.AutoSize = true; + this.lblVariableUnits.Location = new System.Drawing.Point(13, 67); + this.lblVariableUnits.Name = "lblVariableUnits"; + this.lblVariableUnits.Size = new System.Drawing.Size(70, 13); + this.lblVariableUnits.TabIndex = 4; + this.lblVariableUnits.Text = "Variable units"; + // + // lblTimeUnits + // + this.lblTimeUnits.AutoSize = true; + this.lblTimeUnits.Location = new System.Drawing.Point(13, 223); + this.lblTimeUnits.Name = "lblTimeUnits"; + this.lblTimeUnits.Size = new System.Drawing.Size(55, 13); + this.lblTimeUnits.TabIndex = 6; + this.lblTimeUnits.Text = "Time units"; + // + // lblDataType + // + this.lblDataType.AutoSize = true; + this.lblDataType.Location = new System.Drawing.Point(13, 119); + this.lblDataType.Name = "lblDataType"; + this.lblDataType.Size = new System.Drawing.Size(53, 13); + this.lblDataType.TabIndex = 8; + this.lblDataType.Text = "Data type"; + // + // lblValueType + // + this.lblValueType.AutoSize = true; + this.lblValueType.Location = new System.Drawing.Point(13, 145); + this.lblValueType.Name = "lblValueType"; + this.lblValueType.Size = new System.Drawing.Size(57, 13); + this.lblValueType.TabIndex = 10; + this.lblValueType.Text = "Value type"; + // + // lblTimeSupport + // + this.lblTimeSupport.AutoSize = true; + this.lblTimeSupport.Location = new System.Drawing.Point(13, 197); + this.lblTimeSupport.Name = "lblTimeSupport"; + this.lblTimeSupport.Size = new System.Drawing.Size(68, 13); + this.lblTimeSupport.TabIndex = 12; + this.lblTimeSupport.Text = "Time support"; + // + // lblNoDataValue + // + this.lblNoDataValue.AutoSize = true; + this.lblNoDataValue.Location = new System.Drawing.Point(13, 249); + this.lblNoDataValue.Name = "lblNoDataValue"; + this.lblNoDataValue.Size = new System.Drawing.Size(74, 13); + this.lblNoDataValue.TabIndex = 14; + this.lblNoDataValue.Text = "No data value"; + // + // nudNoDataValue + // + this.nudNoDataValue.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nudNoDataValue.FullReadOnly = false; + this.nudNoDataValue.Location = new System.Drawing.Point(103, 246); + this.nudNoDataValue.Maximum = new decimal(new int[] { + -1, + -1, + -1, + 0}); + this.nudNoDataValue.Minimum = new decimal(new int[] { + -1, + -1, + -1, + -2147483648}); + this.nudNoDataValue.Name = "nudNoDataValue"; + this.nudNoDataValue.Size = new System.Drawing.Size(186, 20); + this.nudNoDataValue.TabIndex = 9; + // + // nudTimeSupport + // + this.nudTimeSupport.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nudTimeSupport.FullReadOnly = false; + this.nudTimeSupport.Location = new System.Drawing.Point(103, 194); + this.nudTimeSupport.Maximum = new decimal(new int[] { + -1, + -1, + -1, + 0}); + this.nudTimeSupport.Minimum = new decimal(new int[] { + -1, + -1, + -1, + -2147483648}); + this.nudTimeSupport.Name = "nudTimeSupport"; + this.nudTimeSupport.Size = new System.Drawing.Size(186, 20); + this.nudTimeSupport.TabIndex = 7; + // + // lblSampleMedium + // + this.lblSampleMedium.AutoSize = true; + this.lblSampleMedium.Location = new System.Drawing.Point(14, 171); + this.lblSampleMedium.Name = "lblSampleMedium"; + this.lblSampleMedium.Size = new System.Drawing.Size(82, 13); + this.lblSampleMedium.TabIndex = 17; + this.lblSampleMedium.Text = "Sample Medium"; + // + // tbName + // + this.tbName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbName.Location = new System.Drawing.Point(103, 12); + this.tbName.Name = "tbName"; + this.tbName.Size = new System.Drawing.Size(186, 20); + this.tbName.TabIndex = 0; + // + // tbVariableUnits + // + this.tbVariableUnits.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbVariableUnits.Location = new System.Drawing.Point(103, 64); + this.tbVariableUnits.Name = "tbVariableUnits"; + this.tbVariableUnits.Size = new System.Drawing.Size(186, 20); + this.tbVariableUnits.TabIndex = 2; + // + // tbDataType + // + this.tbDataType.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbDataType.Location = new System.Drawing.Point(103, 116); + this.tbDataType.Name = "tbDataType"; + this.tbDataType.Size = new System.Drawing.Size(186, 20); + this.tbDataType.TabIndex = 4; + // + // tbValueType + // + this.tbValueType.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbValueType.Location = new System.Drawing.Point(103, 142); + this.tbValueType.Name = "tbValueType"; + this.tbValueType.Size = new System.Drawing.Size(186, 20); + this.tbValueType.TabIndex = 5; + // + // tbSampleMedium + // + this.tbSampleMedium.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbSampleMedium.Location = new System.Drawing.Point(103, 168); + this.tbSampleMedium.Name = "tbSampleMedium"; + this.tbSampleMedium.Size = new System.Drawing.Size(186, 20); + this.tbSampleMedium.TabIndex = 6; + // + // tbTimeUnits + // + this.tbTimeUnits.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbTimeUnits.Location = new System.Drawing.Point(103, 220); + this.tbTimeUnits.Name = "tbTimeUnits"; + this.tbTimeUnits.Size = new System.Drawing.Size(186, 20); + this.tbTimeUnits.TabIndex = 8; + // + // lblIsRegular + // + this.lblIsRegular.AutoSize = true; + this.lblIsRegular.Location = new System.Drawing.Point(13, 301); + this.lblIsRegular.Name = "lblIsRegular"; + this.lblIsRegular.Size = new System.Drawing.Size(52, 13); + this.lblIsRegular.TabIndex = 25; + this.lblIsRegular.Text = "IsRegular"; + // + // tbIsRegular + // + this.tbIsRegular.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbIsRegular.Location = new System.Drawing.Point(103, 298); + this.tbIsRegular.Name = "tbIsRegular"; + this.tbIsRegular.Size = new System.Drawing.Size(186, 20); + this.tbIsRegular.TabIndex = 11; + // + // tbSpeciation + // + this.tbSpeciation.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbSpeciation.Location = new System.Drawing.Point(103, 90); + this.tbSpeciation.Name = "tbSpeciation"; + this.tbSpeciation.Size = new System.Drawing.Size(186, 20); + this.tbSpeciation.TabIndex = 3; + // + // lblSpeciation + // + this.lblSpeciation.AutoSize = true; + this.lblSpeciation.Location = new System.Drawing.Point(13, 93); + this.lblSpeciation.Name = "lblSpeciation"; + this.lblSpeciation.Size = new System.Drawing.Size(57, 13); + this.lblSpeciation.TabIndex = 27; + this.lblSpeciation.Text = "Speciation"; + // + // tbGeneralCategory + // + this.tbGeneralCategory.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbGeneralCategory.Location = new System.Drawing.Point(103, 272); + this.tbGeneralCategory.Name = "tbGeneralCategory"; + this.tbGeneralCategory.Size = new System.Drawing.Size(186, 20); + this.tbGeneralCategory.TabIndex = 10; + // + // lblGeneralCategory + // + this.lblGeneralCategory.AutoSize = true; + this.lblGeneralCategory.Location = new System.Drawing.Point(13, 275); + this.lblGeneralCategory.Name = "lblGeneralCategory"; + this.lblGeneralCategory.Size = new System.Drawing.Size(89, 13); + this.lblGeneralCategory.TabIndex = 29; + this.lblGeneralCategory.Text = "General Category"; + // + // VariableView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tbGeneralCategory); + this.Controls.Add(this.lblGeneralCategory); + this.Controls.Add(this.tbSpeciation); + this.Controls.Add(this.lblSpeciation); + this.Controls.Add(this.tbIsRegular); + this.Controls.Add(this.lblIsRegular); + this.Controls.Add(this.tbTimeUnits); + this.Controls.Add(this.tbSampleMedium); + this.Controls.Add(this.tbValueType); + this.Controls.Add(this.tbDataType); + this.Controls.Add(this.tbVariableUnits); + this.Controls.Add(this.tbName); + this.Controls.Add(this.lblSampleMedium); + this.Controls.Add(this.nudNoDataValue); + this.Controls.Add(this.lblNoDataValue); + this.Controls.Add(this.nudTimeSupport); + this.Controls.Add(this.lblTimeSupport); + this.Controls.Add(this.lblValueType); + this.Controls.Add(this.lblDataType); + this.Controls.Add(this.lblTimeUnits); + this.Controls.Add(this.lblVariableUnits); + this.Controls.Add(this.tbCode); + this.Controls.Add(this.lblCode); + this.Controls.Add(this.lblName); + this.Name = "VariableView"; + this.Size = new System.Drawing.Size(303, 335); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudNoDataValue)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTimeSupport)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.BindingSource bindingSource1; + private System.Windows.Forms.Label lblName; + private System.Windows.Forms.TextBox tbCode; + private System.Windows.Forms.Label lblCode; + private System.Windows.Forms.Label lblVariableUnits; + private System.Windows.Forms.Label lblTimeUnits; + private System.Windows.Forms.Label lblDataType; + private System.Windows.Forms.Label lblValueType; + private System.Windows.Forms.Label lblTimeSupport; + private NumericUpDownEx nudTimeSupport; + private NumericUpDownEx nudNoDataValue; + private System.Windows.Forms.Label lblNoDataValue; + private System.Windows.Forms.Label lblSampleMedium; + private System.Windows.Forms.TextBox tbName; + private System.Windows.Forms.TextBox tbVariableUnits; + private System.Windows.Forms.TextBox tbDataType; + private System.Windows.Forms.TextBox tbValueType; + private System.Windows.Forms.TextBox tbSampleMedium; + private System.Windows.Forms.TextBox tbTimeUnits; + private System.Windows.Forms.Label lblIsRegular; + private System.Windows.Forms.TextBox tbIsRegular; + private System.Windows.Forms.TextBox tbSpeciation; + private System.Windows.Forms.Label lblSpeciation; + private System.Windows.Forms.TextBox tbGeneralCategory; + private System.Windows.Forms.Label lblGeneralCategory; + } +} diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/VariableView.cs b/Source/Core/HydroDesktop.ObjectModel.Controls/VariableView.cs new file mode 100644 index 00000000..23d21e41 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/VariableView.cs @@ -0,0 +1,97 @@ +using System.ComponentModel; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.ObjectModel.Controls +{ + /// + /// View of + /// + public partial class VariableView : UserControl + { + #region Fields + + private Variable _entity; + private bool _readOnly; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public VariableView() + { + InitializeComponent(); + + if (this.IsDesignMode()) return; + + Entity = null; + + // Set Bindings + tbName.AddBinding(t => t.Text, bindingSource1, v => v.Name); + tbCode.AddBinding(t => t.Text, bindingSource1, v => v.Code); + tbVariableUnits.AddBinding(t => t.Text, bindingSource1, v => v.VariableUnit); + tbDataType.AddBinding(t => t.Text, bindingSource1, v => v.DataType); + tbValueType.AddBinding(t => t.Text, bindingSource1, v => v.ValueType); + tbSampleMedium.AddBinding(t => t.Text, bindingSource1, v => v.SampleMedium); + nudTimeSupport.AddBinding(n => n.Value, bindingSource1, v => v.TimeSupport); + tbTimeUnits.AddBinding(t => t.Text, bindingSource1, v => v.TimeUnit); + nudNoDataValue.AddBinding(n => n.Value, bindingSource1, v => v.NoDataValue); + tbIsRegular.AddBinding(t => t.Text, bindingSource1, v => v.IsRegular); + tbGeneralCategory.AddBinding(t => t.Text, bindingSource1, v => v.GeneralCategory); + tbSpeciation.AddBinding(t => t.Text, bindingSource1, v => v.Speciation); + + } + + #endregion + + #region Properties + + /// + /// Gets or sets Entity to View + /// + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public Variable Entity + { + get { return _entity; } + set + { + _entity = value; + bindingSource1.DataSource = value ?? (object)typeof(Variable); + } + } + + /// + /// Gets or sets value indicating whether all editors is read-only. + /// + [Browsable(false)] + public bool ReadOnly + { + get { return _readOnly; } + set + { + _readOnly = value; + + tbName.ReadOnly = value; + tbCode.ReadOnly = value; + tbVariableUnits.ReadOnly = value; + tbDataType.ReadOnly = value; + tbValueType.ReadOnly = value; + tbSampleMedium.ReadOnly = value; + nudTimeSupport.FullReadOnly = value; + tbTimeUnits.ReadOnly = value; + nudNoDataValue.FullReadOnly = value; + tbIsRegular.ReadOnly = value; + tbGeneralCategory.ReadOnly = value; + tbSpeciation.ReadOnly = value; + } + } + + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/VariableView.resx b/Source/Core/HydroDesktop.ObjectModel.Controls/VariableView.resx new file mode 100644 index 00000000..4d6bea97 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/VariableView.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ObjectModel.Controls/packages.config b/Source/Core/HydroDesktop.ObjectModel.Controls/packages.config new file mode 100644 index 00000000..3f43a534 --- /dev/null +++ b/Source/Core/HydroDesktop.ObjectModel.Controls/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/HydroDesktop.WebServices.csproj b/Source/Core/HydroDesktop.WebServices/HydroDesktop.WebServices.csproj new file mode 100644 index 00000000..ac494692 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/HydroDesktop.WebServices.csproj @@ -0,0 +1,331 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA} + Library + Properties + HydroDesktop.WebServices + HydroDesktop.WebServices + v4.0 + 512 + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Binaries\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\ + DEBUG;TRACE + full + x86 + prompt + false + + + + + ..\..\..\Binaries\ + TRACE + true + pdbonly + x86 + prompt + false + false + false + + + + + + + + + Properties\AssemblyInfoShared.cs + + + + True + True + Resources.resx + + + + + + + + + + + + + + + Code + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + + + Designer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {0B9BA90B-2016-4754-915A-0AD74FD0067A} + HydroDesktop.Interfaces + False + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/HydroDesktop.WebServices.sln b/Source/Core/HydroDesktop.WebServices/HydroDesktop.WebServices.sln new file mode 100644 index 00000000..3c48e369 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/HydroDesktop.WebServices.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.WebServices", "HydroDesktop.WebServices.csproj", "{7D649595-3CD3-4F13-A59B-5F7B8716FDFA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Debug|x86.ActiveCfg = Debug|x86 + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Debug|x86.Build.0 = Debug|x86 + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Release|Any CPU.Build.0 = Release|Any CPU + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Release|x86.ActiveCfg = Release|x86 + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Core/HydroDesktop.WebServices/Properties/AssemblyInfo.cs b/Source/Core/HydroDesktop.WebServices/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..cfb464de --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.WebServices")] +[assembly: AssemblyDescription("HydroDesktop WaterOneFlow Web Services API")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CUAHSI")] +[assembly: AssemblyProduct("HydroDesktop.WebServices")] +[assembly: AssemblyCopyright("Copyright © CUAHSI 2010-2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +[assembly: InternalsVisibleTo("HydroDesktop.WebServices.Tests")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("554048f6-b589-48b9-8f34-1098eb136317")] \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/Properties/Resources.Designer.cs b/Source/Core/HydroDesktop.WebServices/Properties/Resources.Designer.cs new file mode 100644 index 00000000..e02397fa --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/Properties/Resources.Designer.cs @@ -0,0 +1,580 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.544 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.WebServices.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.WebServices.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap AmeriFlux { + get { + object obj = ResourceManager.GetObject("AmeriFlux", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap BaltimoreGW { + get { + object obj = ResourceManager.GetObject("BaltimoreGW", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap BaltPrecip { + get { + object obj = ResourceManager.GetObject("BaltPrecip", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap Benthic { + get { + object obj = ResourceManager.GetObject("Benthic", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap BESOD { + get { + object obj = ResourceManager.GetObject("BESOD", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap BESSoil { + get { + object obj = ResourceManager.GetObject("BESSoil", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap CIMS { + get { + object obj = ResourceManager.GetObject("CIMS", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap COTCsnow { + get { + object obj = ResourceManager.GetObject("COTCsnow", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to http://www.cuahsi.org/his/1.0/ws/. + /// + internal static string CUAHSI_1_0_Namespace { + get { + return ResourceManager.GetString("CUAHSI_1_0_Namespace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to http://www.cuahsi.org/his/1.1/ws/. + /// + internal static string CUAHSI_1_1_Namespace { + get { + return ResourceManager.GetString("CUAHSI_1_1_Namespace", resourceCulture); + } + } + + internal static System.Drawing.Bitmap czo_ariz { + get { + object obj = ResourceManager.GetObject("czo_ariz", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap czo_boulder { + get { + object obj = ResourceManager.GetObject("czo_boulder", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap czo_catalina { + get { + object obj = ResourceManager.GetObject("czo_catalina", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap czo_luquillo { + get { + object obj = ResourceManager.GetObject("czo_luquillo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap czo_merced { + get { + object obj = ResourceManager.GetObject("czo_merced", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap czo_psu { + get { + object obj = ResourceManager.GetObject("czo_psu", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap czo_udel { + get { + object obj = ResourceManager.GetObject("czo_udel", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap CZSNW { + get { + object obj = ResourceManager.GetObject("CZSNW", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap defaulticon { + get { + object obj = ResourceManager.GetObject("defaulticon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap EPA { + get { + object obj = ResourceManager.GetObject("EPA", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap GlacialRidge { + get { + object obj = ResourceManager.GetObject("GlacialRidge", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap GW_Edwards { + get { + object obj = ResourceManager.GetObject("GW_Edwards", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap HermineFlood { + get { + object obj = ResourceManager.GetObject("HermineFlood", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to http://hiscentral.cuahsi.org. + /// + internal static string HISCentral_Site { + get { + return ResourceManager.GetString("HISCentral_Site", resourceCulture); + } + } + + internal static System.Drawing.Bitmap HydroNEXRAD { + get { + object obj = ResourceManager.GetObject("HydroNEXRAD", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap IIHRTippingB { + get { + object obj = ResourceManager.GetObject("IIHRTippingB", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap IIHRWQ { + get { + object obj = ResourceManager.GetObject("IIHRWQ", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap LBL { + get { + object obj = ResourceManager.GetObject("LBL", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap LittleBearRiver { + get { + object obj = ResourceManager.GetObject("LittleBearRiver", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap LoganRiver { + get { + object obj = ResourceManager.GetObject("LoganRiver", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap MAST { + get { + object obj = ResourceManager.GetObject("MAST", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap MPE { + get { + object obj = ResourceManager.GetObject("MPE", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap MuddyRiver { + get { + object obj = ResourceManager.GetObject("MuddyRiver", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap MudLake { + get { + object obj = ResourceManager.GetObject("MudLake", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap NADP { + get { + object obj = ResourceManager.GetObject("NADP", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap NCDCISH { + get { + object obj = ResourceManager.GetObject("NCDCISH", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap NLDAS_MOS0125_H { + get { + object obj = ResourceManager.GetObject("NLDAS_MOS0125_H", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap NPCA { + get { + object obj = ResourceManager.GetObject("NPCA", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap NWISDV { + get { + object obj = ResourceManager.GetObject("NWISDV", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap NWISGW { + get { + object obj = ResourceManager.GetObject("NWISGW", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap NWISIID { + get { + object obj = ResourceManager.GetObject("NWISIID", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap NWISUV { + get { + object obj = ResourceManager.GetObject("NWISUV", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap NWS_WGRFC_Daily_MPE { + get { + object obj = ResourceManager.GetObject("NWS_WGRFC_Daily_MPE", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap NWS_WGRFC_Daily_MPE_Recent_Values { + get { + object obj = ResourceManager.GetObject("NWS_WGRFC_Daily_MPE_Recent_Values", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap NWS_WGRFC_Daily_MPE_Recent_Values1 { + get { + object obj = ResourceManager.GetObject("NWS_WGRFC_Daily_MPE_Recent_Values1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap NWS_WGRFC_Hourly_MPE { + get { + object obj = ResourceManager.GetObject("NWS_WGRFC_Hourly_MPE", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap NWS_WGRFC_Hourly_MPE_Recent_Values { + get { + object obj = ResourceManager.GetObject("NWS_WGRFC_Hourly_MPE_Recent_Values", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap NWS_WGRFC_MPE { + get { + object obj = ResourceManager.GetObject("NWS_WGRFC_MPE", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap ODMDCEW2 { + get { + object obj = ResourceManager.GetObject("ODMDCEW2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap ODMPMRW2 { + get { + object obj = ResourceManager.GetObject("ODMPMRW2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap ODMRCEW2 { + get { + object obj = ResourceManager.GetObject("ODMRCEW2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap ParadiseCreek { + get { + object obj = ResourceManager.GetObject("ParadiseCreek", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap PWP { + get { + object obj = ResourceManager.GetObject("PWP", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap RIMP { + get { + object obj = ResourceManager.GetObject("RIMP", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap RioGrandeET { + get { + object obj = ResourceManager.GetObject("RioGrandeET", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap RiverGages { + get { + object obj = ResourceManager.GetObject("RiverGages", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap SantaFe_RainDlySRWMD { + get { + object obj = ResourceManager.GetObject("SantaFe_RainDlySRWMD", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap SDRPF { + get { + object obj = ResourceManager.GetObject("SDRPF", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap SFe_CTDSondes { + get { + object obj = ResourceManager.GetObject("SFe_CTDSondes", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap SFe_FLStoret { + get { + object obj = ResourceManager.GetObject("SFe_FLStoret", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap SFe_GWL_USGS { + get { + object obj = ResourceManager.GetObject("SFe_GWL_USGS", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap SFe_MICROWAVECITRA { + get { + object obj = ResourceManager.GetObject("SFe_MICROWAVECITRA", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap SFe_SRGWL { + get { + object obj = ResourceManager.GetObject("SFe_SRGWL", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap SFe_SRWMD_SurfWater { + get { + object obj = ResourceManager.GetObject("SFe_SRWMD_SurfWater", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap SFe_Storet { + get { + object obj = ResourceManager.GetObject("SFe_Storet", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap SFe_SWFGWL { + get { + object obj = ResourceManager.GetObject("SFe_SWFGWL", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap SRBHOS { + get { + object obj = ResourceManager.GetObject("SRBHOS", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap TCEQ_SWQM { + get { + object obj = ResourceManager.GetObject("TCEQ_SWQM", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap TIFP_LowerSabine { + get { + object obj = ResourceManager.GetObject("TIFP_LowerSabine", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap TIFP_LowerSanAntonio { + get { + object obj = ResourceManager.GetObject("TIFP_LowerSanAntonio", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap TWDB_Sondes { + get { + object obj = ResourceManager.GetObject("TWDB_Sondes", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap TWDB_Wind { + get { + object obj = ResourceManager.GetObject("TWDB_Wind", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap WFO_FWD_Hourly_MPE_Recent_Values { + get { + object obj = ResourceManager.GetObject("WFO_FWD_Hourly_MPE_Recent_Values", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Core/HydroDesktop.WebServices/Properties/Resources.resx b/Source/Core/HydroDesktop.WebServices/Properties/Resources.resx new file mode 100644 index 00000000..bbea4446 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/Properties/Resources.resx @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\AmeriFlux.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\BaltimoreGW.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\BaltPrecip.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Benthic.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\BESOD.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\BESSoil.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\CIMS.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\COTCsnow.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\czo_ariz.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\czo_boulder.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\czo_catalina.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\czo_luquillo.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\czo_merced.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\czo_psu.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\czo_udel.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\CZSNW.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\defaulticon.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\EPA.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\GlacialRidge.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\GW_Edwards.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\HermineFlood.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\HydroNEXRAD.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\IIHRTippingB.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\IIHRWQ.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\LBL.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\LittleBearRiver.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\LoganRiver.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\MAST.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\MPE.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\MuddyRiver.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\MudLake.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NADP.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NCDCISH.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NLDAS_MOS0125_H.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NPCA.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NWISDV.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NWISGW.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NWISIID.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NWISUV.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NWS-WGRFC_Daily_MPE.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NWS_WGRFC_Daily_MPE_Recent_Values.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NWS-WGRFC_Daily_MPE_Recent_Values.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NWS-WGRFC_Hourly_MPE.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NWS-WGRFC_Hourly_MPE_Recent_Values.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NWS-WGRFC MPE.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ODMDCEW2.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ODMPMRW2.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ODMRCEW2.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ParadiseCreek.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\PWP.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\RIMP.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\RioGrandeET.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\RiverGages.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SantaFe-RainDlySRWMD.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SDRPF.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SFe_CTDSondes.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SFe-FLStoret.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SFe_GWL_USGS.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SFe_MICROWAVECITRA.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SFe-SRGWL.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SFe_SRWMD_SurfWater.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SFe_Storet.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SFe_SWFGWL.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\SRBHOS.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\TCEQ SWQM.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\TIFP_LowerSabine.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\TIFP_LowerSanAntonio.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\TWDB_Sondes.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\TWDB_Wind.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\WFO_FWD_Hourly_MPE_Recent_Values.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + http://www.cuahsi.org/his/1.0/ws/ + + + http://www.cuahsi.org/his/1.1/ws/ + + + http://hiscentral.cuahsi.org + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/Resources/AmeriFlux.gif b/Source/Core/HydroDesktop.WebServices/Resources/AmeriFlux.gif new file mode 100644 index 00000000..b65bd726 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/AmeriFlux.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/BESOD.gif b/Source/Core/HydroDesktop.WebServices/Resources/BESOD.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/BESOD.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/BESSoil.gif b/Source/Core/HydroDesktop.WebServices/Resources/BESSoil.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/BESSoil.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/BaltPrecip.gif b/Source/Core/HydroDesktop.WebServices/Resources/BaltPrecip.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/BaltPrecip.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/BaltimoreGW.gif b/Source/Core/HydroDesktop.WebServices/Resources/BaltimoreGW.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/BaltimoreGW.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/Benthic.gif b/Source/Core/HydroDesktop.WebServices/Resources/Benthic.gif new file mode 100644 index 00000000..a0ae4f5a Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/Benthic.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/CIMS.gif b/Source/Core/HydroDesktop.WebServices/Resources/CIMS.gif new file mode 100644 index 00000000..897c77cc Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/CIMS.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/COTCsnow.gif b/Source/Core/HydroDesktop.WebServices/Resources/COTCsnow.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/COTCsnow.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/CZSNW.gif b/Source/Core/HydroDesktop.WebServices/Resources/CZSNW.gif new file mode 100644 index 00000000..2619c3cb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/CZSNW.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/EPA.gif b/Source/Core/HydroDesktop.WebServices/Resources/EPA.gif new file mode 100644 index 00000000..3b2828b8 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/EPA.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/GW_Edwards.gif b/Source/Core/HydroDesktop.WebServices/Resources/GW_Edwards.gif new file mode 100644 index 00000000..99399e74 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/GW_Edwards.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/GlacialRidge.gif b/Source/Core/HydroDesktop.WebServices/Resources/GlacialRidge.gif new file mode 100644 index 00000000..4b72f0b0 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/GlacialRidge.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/HermineFlood.gif b/Source/Core/HydroDesktop.WebServices/Resources/HermineFlood.gif new file mode 100644 index 00000000..1ff01db5 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/HermineFlood.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/HydroNEXRAD.gif b/Source/Core/HydroDesktop.WebServices/Resources/HydroNEXRAD.gif new file mode 100644 index 00000000..41f96566 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/HydroNEXRAD.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/IIHRTippingB.gif b/Source/Core/HydroDesktop.WebServices/Resources/IIHRTippingB.gif new file mode 100644 index 00000000..59dad2ec Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/IIHRTippingB.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/IIHRWQ.gif b/Source/Core/HydroDesktop.WebServices/Resources/IIHRWQ.gif new file mode 100644 index 00000000..59dad2ec Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/IIHRWQ.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/LBL.gif b/Source/Core/HydroDesktop.WebServices/Resources/LBL.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/LBL.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/LittleBearRiver.gif b/Source/Core/HydroDesktop.WebServices/Resources/LittleBearRiver.gif new file mode 100644 index 00000000..6125e1fc Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/LittleBearRiver.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/LoganRiver.gif b/Source/Core/HydroDesktop.WebServices/Resources/LoganRiver.gif new file mode 100644 index 00000000..59dad2ec Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/LoganRiver.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/MAST.gif b/Source/Core/HydroDesktop.WebServices/Resources/MAST.gif new file mode 100644 index 00000000..d2e2a300 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/MAST.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/MPE.gif b/Source/Core/HydroDesktop.WebServices/Resources/MPE.gif new file mode 100644 index 00000000..db299e34 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/MPE.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/MudLake.gif b/Source/Core/HydroDesktop.WebServices/Resources/MudLake.gif new file mode 100644 index 00000000..59dad2ec Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/MudLake.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/MuddyRiver.gif b/Source/Core/HydroDesktop.WebServices/Resources/MuddyRiver.gif new file mode 100644 index 00000000..8cb8d308 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/MuddyRiver.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/NADP.gif b/Source/Core/HydroDesktop.WebServices/Resources/NADP.gif new file mode 100644 index 00000000..bc49bfe6 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/NADP.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/NCDCISH.gif b/Source/Core/HydroDesktop.WebServices/Resources/NCDCISH.gif new file mode 100644 index 00000000..ef8878a9 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/NCDCISH.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/NLDAS_MOS0125_H.gif b/Source/Core/HydroDesktop.WebServices/Resources/NLDAS_MOS0125_H.gif new file mode 100644 index 00000000..481a01c0 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/NLDAS_MOS0125_H.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/NPCA.gif b/Source/Core/HydroDesktop.WebServices/Resources/NPCA.gif new file mode 100644 index 00000000..8e57b387 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/NPCA.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/NWISDV.gif b/Source/Core/HydroDesktop.WebServices/Resources/NWISDV.gif new file mode 100644 index 00000000..8ad2f438 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/NWISDV.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/NWISGW.gif b/Source/Core/HydroDesktop.WebServices/Resources/NWISGW.gif new file mode 100644 index 00000000..7bb199d7 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/NWISGW.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/NWISIID.gif b/Source/Core/HydroDesktop.WebServices/Resources/NWISIID.gif new file mode 100644 index 00000000..7bb199d7 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/NWISIID.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/NWISUV.gif b/Source/Core/HydroDesktop.WebServices/Resources/NWISUV.gif new file mode 100644 index 00000000..8ad2f438 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/NWISUV.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/NWS-WGRFC MPE.gif b/Source/Core/HydroDesktop.WebServices/Resources/NWS-WGRFC MPE.gif new file mode 100644 index 00000000..58547224 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/NWS-WGRFC MPE.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/NWS-WGRFC_Daily_MPE.gif b/Source/Core/HydroDesktop.WebServices/Resources/NWS-WGRFC_Daily_MPE.gif new file mode 100644 index 00000000..58547224 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/NWS-WGRFC_Daily_MPE.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/NWS-WGRFC_Daily_MPE_Recent_Values.gif b/Source/Core/HydroDesktop.WebServices/Resources/NWS-WGRFC_Daily_MPE_Recent_Values.gif new file mode 100644 index 00000000..58547224 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/NWS-WGRFC_Daily_MPE_Recent_Values.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/NWS-WGRFC_Hourly_MPE.gif b/Source/Core/HydroDesktop.WebServices/Resources/NWS-WGRFC_Hourly_MPE.gif new file mode 100644 index 00000000..58547224 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/NWS-WGRFC_Hourly_MPE.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/NWS-WGRFC_Hourly_MPE_Recent_Values.gif b/Source/Core/HydroDesktop.WebServices/Resources/NWS-WGRFC_Hourly_MPE_Recent_Values.gif new file mode 100644 index 00000000..58547224 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/NWS-WGRFC_Hourly_MPE_Recent_Values.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/NWS_WGRFC_Daily_MPE_Recent_Values.gif b/Source/Core/HydroDesktop.WebServices/Resources/NWS_WGRFC_Daily_MPE_Recent_Values.gif new file mode 100644 index 00000000..58547224 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/NWS_WGRFC_Daily_MPE_Recent_Values.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/ODMDCEW2.gif b/Source/Core/HydroDesktop.WebServices/Resources/ODMDCEW2.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/ODMDCEW2.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/ODMPMRW2.gif b/Source/Core/HydroDesktop.WebServices/Resources/ODMPMRW2.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/ODMPMRW2.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/ODMRCEW2.gif b/Source/Core/HydroDesktop.WebServices/Resources/ODMRCEW2.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/ODMRCEW2.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/PWP.gif b/Source/Core/HydroDesktop.WebServices/Resources/PWP.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/PWP.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/ParadiseCreek.gif b/Source/Core/HydroDesktop.WebServices/Resources/ParadiseCreek.gif new file mode 100644 index 00000000..ba8c5173 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/ParadiseCreek.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/RIMP.gif b/Source/Core/HydroDesktop.WebServices/Resources/RIMP.gif new file mode 100644 index 00000000..facd8740 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/RIMP.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/RioGrandeET.gif b/Source/Core/HydroDesktop.WebServices/Resources/RioGrandeET.gif new file mode 100644 index 00000000..6d71c2ae Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/RioGrandeET.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/RiverGages.gif b/Source/Core/HydroDesktop.WebServices/Resources/RiverGages.gif new file mode 100644 index 00000000..1d1b914c Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/RiverGages.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/SDRPF.gif b/Source/Core/HydroDesktop.WebServices/Resources/SDRPF.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/SDRPF.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/SFe-FLStoret.gif b/Source/Core/HydroDesktop.WebServices/Resources/SFe-FLStoret.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/SFe-FLStoret.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/SFe-SRGWL.gif b/Source/Core/HydroDesktop.WebServices/Resources/SFe-SRGWL.gif new file mode 100644 index 00000000..7316cdba Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/SFe-SRGWL.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/SFe_CTDSondes.gif b/Source/Core/HydroDesktop.WebServices/Resources/SFe_CTDSondes.gif new file mode 100644 index 00000000..8fea1e72 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/SFe_CTDSondes.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/SFe_GWL_USGS.gif b/Source/Core/HydroDesktop.WebServices/Resources/SFe_GWL_USGS.gif new file mode 100644 index 00000000..3634cad0 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/SFe_GWL_USGS.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/SFe_MICROWAVECITRA.gif b/Source/Core/HydroDesktop.WebServices/Resources/SFe_MICROWAVECITRA.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/SFe_MICROWAVECITRA.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/SFe_SRWMD_SurfWater.gif b/Source/Core/HydroDesktop.WebServices/Resources/SFe_SRWMD_SurfWater.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/SFe_SRWMD_SurfWater.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/SFe_SWFGWL.gif b/Source/Core/HydroDesktop.WebServices/Resources/SFe_SWFGWL.gif new file mode 100644 index 00000000..c51ddff5 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/SFe_SWFGWL.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/SFe_Storet.gif b/Source/Core/HydroDesktop.WebServices/Resources/SFe_Storet.gif new file mode 100644 index 00000000..5a9f0720 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/SFe_Storet.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/SRBHOS.gif b/Source/Core/HydroDesktop.WebServices/Resources/SRBHOS.gif new file mode 100644 index 00000000..319fd67e Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/SRBHOS.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/SantaFe-RainDlySRWMD.gif b/Source/Core/HydroDesktop.WebServices/Resources/SantaFe-RainDlySRWMD.gif new file mode 100644 index 00000000..7a2de9e8 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/SantaFe-RainDlySRWMD.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/TCEQ SWQM.gif b/Source/Core/HydroDesktop.WebServices/Resources/TCEQ SWQM.gif new file mode 100644 index 00000000..b814c72e Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/TCEQ SWQM.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/TIFP_LowerSabine.gif b/Source/Core/HydroDesktop.WebServices/Resources/TIFP_LowerSabine.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/TIFP_LowerSabine.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/TIFP_LowerSanAntonio.gif b/Source/Core/HydroDesktop.WebServices/Resources/TIFP_LowerSanAntonio.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/TIFP_LowerSanAntonio.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/TWDB_Sondes.gif b/Source/Core/HydroDesktop.WebServices/Resources/TWDB_Sondes.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/TWDB_Sondes.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/TWDB_Wind.gif b/Source/Core/HydroDesktop.WebServices/Resources/TWDB_Wind.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/TWDB_Wind.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/WFO_FWD_Hourly_MPE_Recent_Values.gif b/Source/Core/HydroDesktop.WebServices/Resources/WFO_FWD_Hourly_MPE_Recent_Values.gif new file mode 100644 index 00000000..58547224 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/WFO_FWD_Hourly_MPE_Recent_Values.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/czo_ariz.gif b/Source/Core/HydroDesktop.WebServices/Resources/czo_ariz.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/czo_ariz.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/czo_boulder.gif b/Source/Core/HydroDesktop.WebServices/Resources/czo_boulder.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/czo_boulder.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/czo_catalina.gif b/Source/Core/HydroDesktop.WebServices/Resources/czo_catalina.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/czo_catalina.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/czo_luquillo.gif b/Source/Core/HydroDesktop.WebServices/Resources/czo_luquillo.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/czo_luquillo.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/czo_merced.gif b/Source/Core/HydroDesktop.WebServices/Resources/czo_merced.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/czo_merced.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/czo_psu.gif b/Source/Core/HydroDesktop.WebServices/Resources/czo_psu.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/czo_psu.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/czo_udel.gif b/Source/Core/HydroDesktop.WebServices/Resources/czo_udel.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/czo_udel.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/Resources/defaulticon.gif b/Source/Core/HydroDesktop.WebServices/Resources/defaulticon.gif new file mode 100644 index 00000000..fd248ecb Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/Resources/defaulticon.gif differ diff --git a/Source/Core/HydroDesktop.WebServices/ServiceIconHelper.cs b/Source/Core/HydroDesktop.WebServices/ServiceIconHelper.cs new file mode 100644 index 00000000..7158e29d --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/ServiceIconHelper.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Drawing; +using System.Globalization; +using System.Net; + +namespace HydroDesktop.WebServices +{ + /// + /// Helper class for getting the web service logo icons from HIS Central + /// + public class ServiceIconHelper + { + #region Fields + + private readonly Dictionary _serviceIcons = new Dictionary(); + private static readonly Lazy _instance = new Lazy(() => new ServiceIconHelper(), true); + + #endregion + + private ServiceIconHelper() + { + LoadIcons(); + } + + public static ServiceIconHelper Instance + { + get { return _instance.Value; } + } + + #region Public methods + + /// + /// Given a service code (such as 'NWISDV'), returns the web service logo icon + /// Uses the getIcon.aspx service at http://hiscentral.cuahsi.org + /// + /// the service code + /// the service logo icon + public Image GetImageForService(string serviceCode) + { + if (!_serviceIcons.ContainsKey(serviceCode)) + { + var webImage = GetImageFromHISCentral(serviceCode); + _serviceIcons.Add(serviceCode, webImage); + } + + return _serviceIcons[serviceCode]; + } + + #endregion + + #region Private methods + + private void LoadIcons() + { + var rs = Properties.Resources.ResourceManager.GetResourceSet(new CultureInfo("en-US"), true, true); + foreach (DictionaryEntry entry in rs) + { + var entryImage = entry.Value as Image; + if (entryImage != null) + { + _serviceIcons.Add(entry.Key.ToString(), entryImage); + } + } + } + + private static Image GetImageFromHISCentral(string serviceCode) + { + try + { + var url = String.Format("{0}/getIcon.aspx?name={1}", Properties.Resources.HISCentral_Site, serviceCode); + var req = (HttpWebRequest)WebRequest.Create(url); + req.Timeout = 5000; + + using (var webResponse = req.GetResponse()) + using (var webStream = webResponse.GetResponseStream()) + { + return Image.FromStream(webStream); + } + } + catch (Exception) + { + // todo: log error + + //if the icon is not available on the web + return Properties.Resources.defaulticon; + } + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/ContactInformationType.cs b/Source/Core/HydroDesktop.WebServices/WaterML/ContactInformationType.cs new file mode 100644 index 00000000..91820d67 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/ContactInformationType.cs @@ -0,0 +1,14 @@ +namespace HydroDesktop.WebServices.WaterML +{ + /// + /// Represents WaterML 1.0/1.1 ContactInformationType + /// + public class ContactInformationType + { + public string ContactName { get; set; } + public string TypeOfContact { get; set; } + public string Phone { get; set; } + public string Email { get; set; } + public string Address { get; set; } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/DataValueWrapper.cs b/Source/Core/HydroDesktop.WebServices/WaterML/DataValueWrapper.cs new file mode 100644 index 00000000..54228c9d --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/DataValueWrapper.cs @@ -0,0 +1,15 @@ +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.WebServices.WaterML +{ + class DataValueWrapper + { + public DataValue DataValue { get; set; } + public string SeriesCode { get; set; } + public string SourceID { get; set; } + public string MethodID { get; set; } + public string OffsetID { get; set; } + public string SampleID { get; set; } + public string QualityID { get; set; } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/IWaterMLParser.cs b/Source/Core/HydroDesktop.WebServices/WaterML/IWaterMLParser.cs new file mode 100644 index 00000000..6b6a96c2 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/IWaterMLParser.cs @@ -0,0 +1,33 @@ +using System.Collections.Generic; +using System.IO; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.WebServices.WaterML +{ + /// + /// Contains methods for parsing the WaterML files + /// + public interface IWaterMLParser + { + /// + /// Reads the stream returned by GetSites call to a WaterOneFlow web service. + /// + /// Stream that contains xml file. + /// List of sites. + IList ParseGetSites(Stream stream); + + /// + /// Reads the stream returned by GetSiteInfo call to a WaterOneFlow web service. + /// + /// Stream that contains xml file. + /// List of SeriesMetadata. + IList ParseGetSiteInfo(Stream stream); + + /// + /// Parses a WaterML TimeSeriesResponse XML file + /// + /// Stream that contains xml file. + /// List of series. + IList ParseGetValues(Stream stream); + } +} diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/ParserFactory.cs b/Source/Core/HydroDesktop.WebServices/WaterML/ParserFactory.cs new file mode 100644 index 00000000..2d733fbb --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/ParserFactory.cs @@ -0,0 +1,47 @@ +using System; +using System.Globalization; +using System.IO; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.WebServices.WaterML +{ + public static class ParserFactory + { + public static IWaterMLParser GetParser(DataServiceInfo dataService) + { + IWaterMLParser parser; + switch (dataService.Version.ToString("F1", CultureInfo.InvariantCulture)) + { + case "1.0": + parser = new WaterML10Parser(); + break; + case "1.1": + parser = new WaterML11Parser(); + break; + case "2.0": + parser = new WaterML20Parser(); + break; + default: + parser = new WaterML11Parser(); + break; + } + return parser; + } + + public static IWaterMLParser GetParser(string fileName) + { + using (var fileStream = File.OpenRead(fileName)) + using(var txtReader = new StreamReader(fileStream)) + { + while (txtReader.Peek() != -1) + { + var line = txtReader.ReadLine(); + if (String.IsNullOrEmpty(line)) continue; + if (line.StartsWith(" + /// Contains helpers for parsing + ///
+ internal static class ParserHelper + { + /// + /// Converts the 'UTC Offset' value to a double digit in hours + /// + public static double ConvertUtcOffset(string offsetString) + { + var colonIndex = offsetString.IndexOf(":", StringComparison.Ordinal); + var minutes = 0.0; + var hours = 0.0; + if (colonIndex > 0 && colonIndex < offsetString.Length - 1) + { + minutes = Convert.ToDouble(offsetString.Substring(colonIndex + 1), CultureInfo.InvariantCulture); + hours = Convert.ToDouble((offsetString.Substring(0, colonIndex)), CultureInfo.InvariantCulture); + } + + return hours + Math.Sign(hours)*(minutes / 60.0); + } + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_0/WaterML_1_0_part1.pdf b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_0/WaterML_1_0_part1.pdf new file mode 100644 index 00000000..79ae42b9 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_0/WaterML_1_0_part1.pdf differ diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_0/WaterML_1_0_part3_v2.pdf b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_0/WaterML_1_0_part3_v2.pdf new file mode 100644 index 00000000..5150420d Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_0/WaterML_1_0_part3_v2.pdf differ diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_0/cuahsiTimeSeries_v1_0.xsd b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_0/cuahsiTimeSeries_v1_0.xsd new file mode 100644 index 00000000..f31be5dc --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_0/cuahsiTimeSeries_v1_0.xsd @@ -0,0 +1,1881 @@ + + + + + +Changes: +2006-07-10 valentine + removed choice. Replaced with Types + defined TimePeriodType + TimeIntervalType + TimeSingleType + added GeogLocationType to hold the geometry + redefined LatLongPoint as a type + defined LatLongBox to hold + defined simpleTypes Latitude and Longitude + added DataSetLocation Element (type GeogLocationType) to dataset info + removed xlink namespace. Just used the xlink concept (problems getting it to compile with xlink schema) +2006-08-30 valentine + MANY CHANGES to: + sync with the Observations Database terminolog + simplify. Removed many unneeded types. (initial version was Type happy) + types mostly used only when needed (Geometry, SourceInfo, TimeSeries, Notes, Enumerations). + *** Element Case Standardize **** + All types are PascalCase + All CUAHSI elements and attributes are camelCase + * All root response elements are now elements, and not types + ** SitesResponse + ** TimeSeriesResponse (not timeSeriesType) + ** VariablesResponse + * extension elements added. + ** These are extension points for groups like + the USGS that wish to include more information than the normal community uses. + * enumerations added + * unitType + * censorCode (characters used because symbols make for unmaintainable source code) + * lt - less than + * gt - greater than + * nc - no code + * variable types consolidated + * units element added + * consistent siteID/variableID pattern (both include a XXXCode) + * Remove many types + ** too many to list. + * values == TsValuesType renamed from TsValuesSingleVariableType + ** split values element out to type ValueSingleVar (c# change tsValuesTypeValueType to ValueSingleVar). + ** qualifier elements can be added after the final value element in the Values element. + *** we don't know the full list of included qualifiers until we get done with the values. + *** at present, qualifiers attribute in the value element is an aggregated field. + element block looks like: + = values + == value qualifers=&quot;A&quot; + == value qualifers=&quot;Ae&quot; + == qualifier qualifierCode=&quot;A&quot; &quot;Approved&quot; + == qualifier qualifierCode=&quot;e&quot; &quot;Estimated. This value has been estimated.&quot; +2006-09-08 + variableID renamed variableCode + siteID renamed siteCode + siteID and variableID attributes added, xxCode removed + siteCode name moved into siteInfo + +2006-09-15 + variable/name to variable/variableName + variablePeriod to variablePeriodOfObservation + +2006-09-17 + added QualityControlLevelEnum + added attribute qualityControlLevel to valueAttribute group. (affects ValueSingleVariable) + added qualityControlLevel element, and element to the TSValuesSingleVariableType + namespace changed to http://www.cuahsi.org/waterML/1.0/ + return to types for top level elements, without this they get named getValuesResponse + added note to siteInfoElement. We need to put the URL or Retireved from DB not in this block. + added TimePeriodRealTime. Need to represent real time data. +2006-0920 + variablePeriodofRecorr to seriesCatalog + variablePeriodOfObservation to series + variableObservationCount to valueCount (to match the OD) + added enumerations from the OD + valueTypeEnum + generalCategoryEnum + sampleMediumEnum + dataTypeEnum +2006-09-24 + queryInfo/criteria/timeParam is now a sequence, since a start or end time can be null + The community wants it to be easy, and VB and other .net have problems with some values: + converted xsd:decimal to xsd:double. decimal is not well handled by VB + converted tsValuesSingleVaribaleType/count from xsd:nonNegativeInteger to xsd:int. +2006-09-28 + API signature has been changed to strings. + queryInfo/timeInterval/... changed to strings +2007-07-09 + ODM seriesCatalog table added columns. Columns now added + DataValue element was missing: DataType(eg statistic), Method, Source, and QualityControlLevel. +2007-08-28 + added to values method[](methodType), source[](SourceType) + added &quot;Unknown&quot; to many enumerations. + contactInformation in sourceType changed to unbounded +2007-08-29 + DT/DM believes that including an offsetDescription on every element is verbose + offsetTypeID attribute added to offsetAttr + offsetType Type added, Designed to be a bit more extensible, and handle +2007-08-30 + restored attributes that had the offset information on the values + offsetAttr restored attr + offsetUnitsAbbreviation + offsetUnitsCode + offsetDescription +2007-11-14 + Many services use agency (aka EPA, and USGS) + added attributes agencyCode and AgencyName to siteCode. + 2007-11-29 + SiteInfo/TimezoneInfo min occurs 0 max 1 + Series/QualityControlLevel min occurs 0 max 1 + + + + + + A sampling station is any place where data are collected. + +SiteInfoType is the Element that for the core information about a point sampling location. The core information includes SiteName, SiteCode(s), location, elevation, timeZone information and note(s). + +SiteInfoType is <siteInfo> in a <site> of a <sitesResponse>. It is derived from SourceType so that other geographic location descriptions can be utilized in the <sourceInfo> of the <timeSeriesResponse> + + + + + + + + Full name of the sampling site. eg “LOGAN RIVER ABOVE STATE DAM, NEAR LOGAN,UT” + + + + + A &lt;siteCode&gt; is an identifier that this site is referred to as. This Code used by organization that collects the data to identify the site. + +A siteCode has a reference to it's source or network as the @network. For waterWebServices, a site/location is the network plus the value of the sitecode, eg '@network:siteCode' + siteCode identifiers often change, so multiple siteCode elements are allowed There may be multiple siteCode elements. Only one should be labeled as the default using @defaultID (set attribute defaultID=true) + +Multiple siteCode elements can utilize different observation networks may refer to the same site with different identifiers. + + + + + + + + True if this is the main identifier that this service uses to access this site. + default value is false. + + + + + + The abbreviation for the datasource or observation network that this site code is associated with. + +A siteCode has a reference to it's source or network as the @network. For waterWebServices, a site/location is the network plus the value of the sitecode, eg '@network:siteCode' + + + + + An internal numeric identifier of the site. + + + + + + Code used to differentiate sites in a datasource. Agency codes are specific to a data source, and are not required nor do they need to be understood by a web service client. + + + + + optional name to provide more detail about an agency code + + + + + + + + + Specifies the time zone information about a site. + +The default time zone for this site (+00:00) and if this site shifts to daylight savings time (attribute: usesDaylightSavingsTime) + + + + + The geoLocation speficies the details of the geographic location. It contains two portions, a geographic locaiton &amp;lt;geogLocation&amp;gt;, and a local location &amp;lt;localSiteXY&amp;gt;. + +In order to be discovered spatially, geogLocation is required. The geogLocation can be of GeogLocationType, which at present is either a latLonPoint or a latLongBox. + +There may be multiple localSiteXY, which might be used by data sources to provide other coordinated system information, like UTM and State Plane coordinates. + + + + + + Geographic location: +A geographic location is required as part of the site information (siteInfoType or siteInfo element) + +At present this can be elements of GeogLocationType: LatLonPointType and LatLonBoxType. an xml schema type attribute can be used to determine which type is contained in this element (xsi:type="LatLonPointType" or xsi:type="LatLonBoxType") + + + + + Site information can contain one or more other locations using the localSiteXY element. The projection string should be stored in projectionInformation. + +Lat or Northing = Y +Lon or Easting = X + + + + + + + + + + + + + Additional information should be encoded in zero or more note elmements. +The name of the property should be @title, and the value should be inside the note value. Attribute @type is provided so that notes can be grouped. + + + + + + Spatial Reference System of the local coordinates. +This should use the PROJ4 projection string standard + + + + + + + + + + Elevation in meters. +A vertical datum should also be provided. + + + + + + Additional information, like state, county, or other properties like HUC codes should be encoded in zero or more &lt;note&gt; elmements. +The name of the property should be @title, and the value should be inside the <note>value</note>. Attribute @type is provided so that notes can be grouped. + + + + + In order to simplify comprehension, data sources are encouraged to put additional informaiton in the extension area, using thier own namespace. Clients need not understand information in <extension? + + + + + Alternate name + + + + + + + + + + TsValuesSingleVariableTypea aggregates the list of values and associated metadata. It is the values element in the timeSereisResponse + +Attributes are optional, but use @count is encouraged. + +The atrributes @unitsAreConverted, @untsCode,@unitsAbbreviation, and @unitsType were originally included to allow for translation from orignal variable units. Thier use is not encouraged. Get unit information from the Variable element. + + + + + Multiple <value>s represent the data series. + + + + + + multiple <qualifier>s containg the data qualifying comments that accompany the data. + + + + + <qualityControlLevel> contains the quality control levels that are used for versioning data within the data values + + + + + Multiple &amp;amp;lt;method&amp;amp;gt;s lists the methods used to collect the data and any additional information about the method. + +@methodID is the link between the values, and method. + +Different instruments should be represented as different methods, according to ODM best practices + + + + + The Sources the original sources of the data, providing information sufficient to retrieve the data value. + +@sourceID is the link bewteen source the values. + + + + + <offset> is of type OffsetType. offset lists full descriptive information for each of the measurement offsets. + +@offsetID is the link between offset, and values. + + + + + + If a webservice has transformed the time zone from the original data. + + + + + the measurment units of the value elements in this values element + + + + + + + + + + + True if a webservice has transformed the data from the original units. + + + + + + VariableInfoType is a complex type containting full descriptive information about a variable, as described by the ODM. This includes one or more variable codes, the short variable name, a detailed variable description, and suggest + +It also extends the ODM model, in several methods: +- options contain extended reuqest information. +- note(s) are for generic extenstion. +- extension is an element where additional namespace information should be placed. +- related allows for parent and child relationships between variables to be communicated. + + + + + + + + One of more elements representing the Text code used by the organization that collects the data to identify the variable. + + + + + A brief name of the variable that could be shown in a menu + + + + + A detailed description of the variable. May include processing information and other details. + + + + + Text value indicating what type of data value is being recorded. For 1.0 this must be from the valueTypeEnum type. +A default value of “Unknown” can be used where the value type is unknown. + + + + + Text value that identifies the data values as one of several types from the dataTypeEnum +A default value of “Unknown” can be used where the data type is unknown. + + + + + General category of the data values from the generalCategoryEnum. +A default value of “Unknown” can be used where the general category is unknown. + + + + + Only terms from the SampleMediumEnume can be used to populate the sampleMedium element. + A default value of “Unknown” is used where the sample medium is unknown. + + + + + The units of the measurements asociated withthe variable. + +This will be changed to UnitsType in WaterML 1.1 + + + + + A list of options. Option elements are key-value pair elements that control how a variable maght be utilized in a service. + Examples: + MODIS web service. Information is aggreated over land or ocean or both. The plotarea option can include: plotarea=land, plotarea=land, plotarea=landocean + +USGS uses a statistic code, 0003, to repesent a value type of 'Average'. The USGS statistic codes also several options that do not fit the ODM data model. + + + + + Additional information, properties like should be encoded in zero or more &amp;lt;note&amp;gt; elmements. +The name of the property should be @title, and the value should be inside the &lt;note&gt;value&lt;/note&gt;. Attribute @type is provided so that notes can be grouped. + + + + + This can be used to build up relationships between variables. + + + + + + variableCode for the parent + + + + + + + + + + + + Child or other relationships can be encoded using the related element. + + + + + + + + + + + + + + + In order to simplify comprehension, data sources are encouraged to put additional informaiton in the extension area, using thier own namespace. Clients need not understand information in &lt;extension? + + + + + Numeric value used to encode no data values for this variable. + + + + + Element containing the time support (or temporal footprint) of the data values. +@isRegular indicates if the spacing is regular. +In waterML 1.0, there is a divergence of mean between ODM, and WaterML. +WaterML only communcates the regularity, and the spacing of the observations (timeInterval). Whereas timesupport in the ODM is associated with the dataType, and time support. This will be addressed in 1.1 + + + + + + +0 is used to indicate data values that are instantaneous. Other values indicate the time over which the data values are implicitly or explicitly averaged or aggregated. + +The default for the TimeSupport field is 0. This corresponds to instantaneous values. If the TimeSupport field is set to a value other than 0, an appropriate TimeUnitsID must be specified. The TimeUnitsID field can only reference valid UnitsID values from the Units controlled vocabulary table. If the TimeSupport field is set to 0, any time units can be used (i.e., seconds, minutes, hours, etc.), however a default value of 103 has been used, which corresponds with hours + + + + + + + + + + + + + + This contains information about the request, and is used to enable the XML responses (timeSeriesResponse, variablesResponse,siteResponse) to be stored on disk. + + + + + When was this response originally created. + + + + + The URL of the web page that was used as the original source for the response. Often requests scrap HTML pages. This should be the URL of that page. +If the response is retreive from a rest URL. This is also a the location for the URL. + + + + + For debugging, the SQL used to generate this request may be placed in this element. + + + + + The criteria are the actual parameters that are passed into the method. If you are generate this without a XML helper class, be sure to properly encode these elements. + + + + + + the location or site parameter passed into the site + + + + + the variable paramter passed into the service + + + + + the begin and end time of the GetValues request used to generate a timeSeriesResponse. + + + + + + The string submited as startDate to the GetValues method + + + + + The string submited a startDate to the GetValues method + + + + + + + + + + + Additional information, properties like should be encoded in zero or more &amp;lt;note&amp;gt; elmements. +The name of the property should be @title, and the value should be inside the &lt;note&gt;value&lt;/note&gt;. Attribute @type is provided so that notes can be grouped. + + + + + In order to simplify comprehension, data sources are encouraged to put additional informaiton in the extension area, using thier own namespace. Clients need not understand information in &lt;extension? + + + + + + + variables is a list of variable elements (VariableInfoType). + + + + + + zero or more variable elements are contained in a variables element. +See VariableInfoType for more details on the information in the variable element + + + + + + + + Tthe attribute group vocabularyAttributes contains common attributes used to differentiate data source codes. +A network should be provided with a siteCode, and a vocabular should be provided with a variableCode. +If there is more than one code, one code should be provided as the default code for the service. + + + + + @netowrk codespace for the siteCode datasource. +Submitted to webservice as 'network:sitecode' + + + + + @vocabulary codespace for the variableCode for a datasource. +Submitted to webservice as 'vocabulary:vocabularyCode' + + + + + + + thei attribute group provides provenance information for when an object is retrieved from a database. + + + + object identifier, or guid for an object + + + + + time object was created in the database. + + + + + + The default time zone for this site (+00:00) and if this site shifts to daylight savings time (attribute: usesDaylightSavingsTime) + + + + + + The default time zone for a site, specified in hours and minutes: "hh:mm" + + + + + + + + The daylight savings time zone for a site, specified in hours and minutes: "hh:mm" + + + + + + + + + If the location shifts it's data sources to Daylight Savings Time, this flag should be true. + + + + + + + valueAttr contains the possible attributes that can be associated with a data value element. + + + + @qualifier contains a qualifier code whose details are described in the values/ qualifier element(s) +Space delimit multiple qualifier codes. + + + + + indication of whether the data value is censored +@censorCode codelist is censorCodeEnum. + + + + + XML date and time at which the data value was observed. This is an ISO specified string, that can contain a time zone offset, if apprpriate. If no time offset is specificed, the data is in the local time zone of the station. + + + + + text string giving the level of quality control that the value has been subjected to. +Codelist is from qualityControlLevelEnum. + + + + + @qualifier contains a identifier whose details are described in the values/method element(s) + + + + + + @methodID contains an identifier whose details are described in the values/method element(s) + + + + + + Numeric value that describes the measurement accuracy of the data value. If not given, it is interpreted as unknown. + + + + + If a value is categorical, then @codedVocabulary is set to true, and the categorical term is placed in@codedVocabularyTerm, and a numeric value put in the value. + +While not a good practice, allows for categorical and numeric values to be intermixed. + + + + + + @sampleId contains a n identifier whose details are described in the values/samples element(s) +This is required only if the data value resulted from a physical sample processed in a lab. + + + + + + + the standard abbreviation for this time zone (GMT; EST) + + + + + Hours and minutes offset for this time zone (+00:00). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A list of options. Option elements are key-value pair elements that control how a variable maght be utilized in a service. + Examples: + MODIS web service. Information is aggreated over land or ocean or both. The plotarea option can include: plotarea=land, plotarea=land, plotarea=landocean + +USGS uses a statistic code, 0003, to repesent a value type of 'Average'. The USGS statistic codes also several options that do not fit the ODM data model. + + + + + + Option elements are key-value pair elements that control how a variable maght be utilized in a service. + Examples: + MODIS web service. Information is aggreated over land or ocean or both. The plotarea option can include: plotarea=land, plotarea=land, plotarea=landocean + +USGS uses a statistic code, 0003, to repesent a value type of 'Average'. The USGS statistic codes also several options that do not fit the ODM data model. + + + + + + + + SourceInfoType is used to describe the data source in the timeSeriesResponse. +SourceInfoType is the base type for data source information. At present, two types are derived from SourceInfoType: SiteInfoType, and DataSetInfoType. SiteInfoType describes tlocation for a timeseries where that time series is located at a site or a DataSetInfoType describes time series derived from a dataset, such as a netCDF file, or a gridded model. + + + + + + DataSetInfoType describes time series derived from a dataset, such as a netCDF file, or a gridded model. + + + + + + + The indentifier which the original source uses to identify this dataset. This may be a unique indentifier, or a URL from which the data source was retireved + + + + + the default time zone for this site (+00:00) and if this site shifts to daylight savings time (attribute: usesDaylightSavingsTime) + + + + + Text description describing the data source. + + + + + Additional information, about a dataset, or other properties should be encoded in zero or more &amp;lt;note&amp;gt; elmements. +The name of the property should be @title, and the value should be inside the &lt;note&gt;value&lt;/note&gt;. Attribute @type is provided so that notes can be grouped. + + + + + geolocation describing the spatial coverage of a gridded dataset. + + + + + In order to simplify comprehension, data sources are encouraged to put additional informaiton in the extension area, using thier own namespace. Clients need not understand information in extension element + + + + + + + + + dataSetInfo element describes time series derived from a dataset, such as a netCDF file, or a gridded model. + + + + + time series (site-variable-observation) can have three types of time periods: +1) definite start and end time, or TimeIntervalType, +2) single observation, or TimeSingleType +3) Real Time station with moving window of data available, or TimeRealTimeType + +In order to simplify client development, all types now include beginDateTime, and endDateTime. + +A fourth type should be added: +4) continuing site, where start is known, and site is still collecting data. This could be a realTimeType, or rename the real time type to TimeDefinedPeriodType. + + + + + + + For where a series has multiple observations, and a define beingDateTime as dateTime of the first data value in the series, and endDateTime dateTime of the last data value in the series. + + + + + + + dateTime of the first data value in the series. + +The dateTime is specified in the following form "YYYY-MM-DDThh:mm:ss" where: + + * YYYY indicates the year + * MM indicates the month + * DD indicates the day + * T indicates the start of the required time section + * hh indicates the hour + * mm indicates the minute + * ss indicates the second + +Note: All components are required! + + + + + Date of the last data value in the series. + +The dateTime is specified in the following form "YYYY-MM-DDThh:mm:ss" where: + + * YYYY indicates the year + * MM indicates the month + * DD indicates the day + * T indicates the start of the required time section + * hh indicates the hour + * mm indicates the minute + * ss indicates the second + +Note: All components are required! + + + + + + + + + For where a series is a single observation. + +timeSingle, beginDateTime, and endDateTime will have the same value. The beginDateTime and endDateTime are provided to simplify usage by clients.They should be be calculated based on the duration stored in realTimeDataPeriod + + + + + + + + dateTime of the first data value in the series. + +The dateTime is specified in the following form "YYYY-MM-DDThh:mm:ss" where: + + * YYYY indicates the year + * MM indicates the month + * DD indicates the day + * T indicates the start of the required time section + * hh indicates the hour + * mm indicates the minute + * ss indicates the second + +Note: All components are required! + + + + + Date of the last data value in the series. + +The dateTime is specified in the following form "YYYY-MM-DDThh:mm:ss" where: + + * YYYY indicates the year + * MM indicates the month + * DD indicates the day + * T indicates the start of the required time section + * hh indicates the hour + * mm indicates the minute + * ss indicates the second + +Note: All components are required! + + + + + + + + + Use where a site has an evolving period where data is available. +The US Geological Survey real time data is available for 30 days, the realTimeDataPeriod element is an XML duration and woudl be "30d" + +The beginDateTime and endDateTime are provided to simplify usage by clients.They should be be calculated based on the duration stored in realTimeDataPeriod + + + + + + + Duration Data Type + +The duration data type is used to specify a time interval. + +The time interval is specified in the following form "PnYnMnDTnHnMnS" where: + + * P indicates the period (required) + * nY indicates the number of years + * nM indicates the number of months + * nD indicates the number of days + * T indicates the start of a time section (required if you are going to specify hours, minutes, or seconds) + * nH indicates the number of hours + * nM indicates the number of minutes + * nS indicates the number of seconds + + + + + + dateTime of the first data value in the series. +This should be be calculated based on the duration stored in realTimeDataPeriod + +The dateTime is specified in the following form "YYYY-MM-DDThh:mm:ss" where: + + * YYYY indicates the year + * MM indicates the month + * DD indicates the day + * T indicates the start of the required time section + * hh indicates the hour + * mm indicates the minute + * ss indicates the second + +Note: All components are required! + + + + + Date of the last data value in the series. +This should be be calculated based on the duration stored in realTimeDataPeriod + +The dateTime is specified in the following form "YYYY-MM-DDThh:mm:ss" where: + + * YYYY indicates the year + * MM indicates the month + * DD indicates the day + * T indicates the start of the required time section + * hh indicates the hour + * mm indicates the minute + * ss indicates the second + +Note: All components are required! + + + + + + + + + GeogLocationType is the base class for the two geometry types: LatLonPointType, and LatLonBoxType. +Any additional types should derive from this type. +The default spatial reference system is @srs is EPSG:4326 or Geographic lat long. + + + + + + + + + + + + + The latitude of the site in a decimal degrees as calculated in terms of the given datum. + + + + + + + The longitude of the site in a decimal degrees as calculated in terms of the given datum. + + + + + + + + + + Point type for describing a geographic location + + + + + + + + + South Latitude + + + + + West Longitude + + + + + North Latitude + + + + + East longitude. + + + + + + + + + Box type describing a geographic location. + + + + + The longitude of the site in a decimal degrees as calculated in terms of the given datum. + + + + + + + + + The latitude of the site in a decimal degrees as calculated in terms of the given datum. + + + + + + + + + + Series catalog represents a list of series, where each separate data series are for the purposes of identifying or displaying what data are available at each site. + + + + + Additional information, properties like should be encoded in zero or more +In seriesCatalog note elements are placed at the top, to simplify human identification, since there can be tens, or hundred of series for a location. + +The name of the property should be @title, and the value should be inside the note +element. Attribute @type is provided so that notes can be grouped. + + + + + Separate data series are for the purposes of identifying or displaying what data are available at each site. + +Site information is a parent of the series so that it does not need to be repeated (difference from the ODM. ). A Site contains one or more seriesCatalogs which contain one or more series. + +Assotiated with site, a series is a unique combination of the textual repesentation of ODM series: Variable,Method,Source,QualityControlLevel. + +An ODM series is a unique site/variable combinations are defined by unique combinations of SiteID, VariableID, MethodID, SourceID, and QualityControlLevelID. + + + + + + Text value that identifies the data as one of several types as found ing dataTypeEnum + + + + + + + + + + + + + + + this describes the time period that ana variable or observed parameter are available for. +This is of TimePeriodType, which is presently: +TimeIntervalType - definite begin and end +TimeSingleType - single observation/datavalue +TimePeriodRealTime - a floating time period for when data is available. + +This will have a xml schema type attribute: +xsi:type="TimeIntervalType" +xsi:type="TimeSingleType" +xsi:type="TimePeriodRealTime" + + + + + Text value indicating what type of data value is being recorded as listed in valueTypeEnum + + + + + General category of the variable as listed in generalCategoryEnum + + + + + The medium of the sample as listed in SampleTypeEnum + + + + + Method description. +Optional, since many sources do not have detailed methods. + +ODM datasources require methods. + + + + + Source of the data values and reference information to recover/discover the data from the source. + + + + + Code used to identify the level of quality control to which data values have been subjected. + + + + + + + + + + + For clients, this is the list of the html select group element. +This would allow for groups or seriesCatalogs to appear in an HTML select menu. + + + + + (depreciated) +location of the WaterOneFlow service that the client should execute GetValues call on. + + +All services now proxy getValues methods from other sources. + + + + + + + + + + + + + + + + + + + + + + qualifying comments that accompany the data + + + + + qualifying comments that accompany the data. value/@qaulifier is a space delimted list of qualifiers for a data value. @qualifierCode is the link to the value/@qualifier for a single value + +The value inside provides the textual description. @qualifierCode is the reference code. + +@qualifierCode=A +qualifier value=Approved + +@vocabulary and @network are suggested. For example a value from the USGS may qualifiers from multiple vocabularies, and the network would be the data service. + + + + + + Text code used by organization that collects the data. +value/@qaulifier is a space delimted list of qualifiers for a data value. @qualifierCode is the link to the value/@qualifier for a single value + + + + + + + + + + + + Contains the source of the time series, the variable, and values element which is an array of value elements and thier associated metadata (qualifiers, methods, sources, quality control level, samples) + + + + + + Contains full descriptive information about a variable, as described by the ODM. This includes one or more variable codes, the short variable name, a detailed variable description, and suggest. +See VariableInforType for full details. + + + + + A list of values and associated metadata. It is the values element in the timeSerissResponse + + + + + + Name of the time series. optional. + + + + + + + + + + + + NoteType defines the note element available in many defined types. + +the value should the description of the note. +@title should be the brief name that might be displayed as a lable +@type can be used to allow for grouping of elements. + + + + + + + + + + + Option elements are key-value pair elements that control how a variable maght be utilized in a service. + Examples: + MODIS web service. Information is aggreated over land or ocean or both. The plotarea option can include: plotarea=land, plotarea=land, plotarea=landocean + +USGS uses a statistic code, 0003, to repesent a value type of 'Average'. The USGS statistic codes also several options that do not fit the ODM data model. + + + + + + + + + + + + + + Text code used by the organization that collects the data to identify the variable. The attribute @vocabulary must be set to the data source name, so the clients can subbumit variable requests to a web service (net + +USGS discharge + +variableCode + @vocabularyk=NWISDV + @default=true + “00060” + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + qualifying comments that accompany the data + + + + + + + + + + + + + + + In order to simplify comprehension, data sources are encouraged to put additional informaiton in the extension area, using thier own namespace. Clients need not understand information in &lt;extension? + + + + + VariablesResponseType is object type returned by the method GetVariableInfo. The elemnt name is variablesResponse. The request will contain a variables element containing a list of variable elements. + + + + + the parameter information passed to GetVariableInfo(variable) should be placed in QueryInfoType/criteria/variableParam +See QueryInfoType for more details. + + + + + variables element contains a list of variable elements + + + + + + + + + the parameter information passed to Getvalues(location,variable,beginDate,endDate) should be placed in QueryInfoType/criteria/ +See QueryInfoType for more details. + + + + + Contains the source of the time series, the variable, and values element which is an array of value elements and thier associated metadata (qualifiers, methods, sources, quality control level, samples) + + + + + + + A sitesResponse contains a list of zero or more site elements. + +The siteInfo element contains the basic site information, siteName, location, siteCodes, properties. +The seriesCatalog contains the list of observation series conducted at a site. + +A site element can have two parts: siteInfo, and one or more seriesCatalogs. +Rules: +GetSites(site[]) or GetSites(null), return no seriesCatalogs elements + +GetSiteInfo(site) return all information about a site, including the seriesCatalog. + + + + + The parameter information passed to GetSiteInfo(site) or GetSites(site[]) should be placed in QueryInfoType/criteria/locationParam +See QueryInfoType for more details. + + + + + A sitesResponse contains a list of zero or more site elements. A site element is + + + + + + + A site element can have two parts: siteInfo, and one or more seriesCatalogs. +The siteInfo element contains the basic site information, siteName, location, siteCodes, properties. +The seriesCatalog contains the list of observation series conducted at a site. + +Rules: +GetSites(site[]) or GetSites(null), return no seriesCatalogs elements + +GetSiteInfo(site) return all information about a site, including the seriesCatalog. + + + + + + siteInfo element contains a list of information about a site. +See SiteInfoType + + + + + + In order to simplify comprehension, data sources are encouraged to put additional informaiton in the extension area, using thier own namespace. Clients need not understand information in extension element + + + + + + + + + + + + + + + + + + quality control levels that are used for versioning data within the database. + + + + + + Unique integer identifying the quality control level. + + + + + + Code used to identify the level of quality control to which data values have been subjected. + + + + + + + + + Value is the text Code used to identify the level of quality control to which data values have been subjected. + + + + + + Integer identifier that indicates the level of quality control that the data values have been subjected to. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Method used to collect the data and any additional information about the method. + +@methodId is the link to value/@method + +As per communication from the ODM designers, multiple instruments observing the same variable, should be different methods. + +Methods should describe the manner in which the observation was collected (i.e., collected manually, or collected using an automated sampler) or measured (i.e., measured using a temperature sensor or measured using a turbidity sensor). Details about the specific sensor models and manufacturers can be included in the MethodDescription + + + + + Text description of each method. + + + + + Link to additional reference material on the method. + + + + + + + + information about physical samples analyzed in a laboratory. + +@sampleID is the link to the datavalues/@sampleID + +LabSampleCode is the sample code. In WaterML 1.1 this will be the link to the dataValue + +SampleType describes the the sample type + +LabMethod is a LabMethodType containing infomration about lab methods + + + + + + Code or label used to identify and track lab sample or sample container (e.g. bottle) during lab analysis. + + + + + Controlled vocabulary specifying the sample type from the SampleTypeEnum. + + + + + LabMethod is a LabMethodType containing infomration about lab methods + + + + + + + + contains descriptions of the laboratory methods used to analyze physical samples for specific constituents. + + + + + Name of the laboratory responsible for processing the sample. + + + + + Organization responsible for sample analysis. + + + + + Name of the method and protocols used for sample analysis. + +Suggest using nemi names and codes +http://www.nemi.gov/ + +“USEPA-365.1” + + + + + Description of the method and protocols used for sample analysis. + + + + + Link to additional reference material on the analysis method. + + + + + + Unique integer identifier for each laboratory method. This is the key used by the Samples table to reference a laboratory method. + + + + + + original sources of the data, providing information sufficient to retrieve and reconstruct the data value from the original data files if necessary + + + + + Name of the organization that collected the data. This should be the agency or organization that collected the data, even if it came out of a database consolidated from many sources such as STORET. + +“Utah Division of Water Quality” + + + + + Full text description of the source of the data. + +“Text file retrieved from the EPA STORET system indicating data originally from Utah Division of Water Quality” + + + + + MetadataType contains the information from the ODM table IsoMetadata. It is anticpated that many data sources may not have this fully available. + + + + + Contact information about source. + + + + + Link that can be pointed at the original data file and/or associated metadata stored in the digital library or URL of data source. + + + + + + Unique integer identifier that identifies each data source. + +link to datavalues/@sourceID + + + + + + Contains information about a contact. +A contact can be a person or an agency. +The name of the contact is required. + +And address, email or phone is suggested. (in 1.1 one of these will be required. + + + + + name of contact, or title of organization + + + + + Type of contact, in open terms: +Project Contact +Data source contact +HIS Admin +Data Source Admin +Data Base Admin + + + + + phone + + + + + email address + + + + + Any address element structure that can be used to communicate contact information. + + + + + + + + MetadataType contains the information from the ODM table IsoMetadata. It is anticpated that many data sources may not have this fully available. + + IsoMetadata table contains dataset and project level metadata required by the CUAHSI HIS metadata system (http://www.cuahsi.org/his/documentation.html) for compliance with standards such as the draft ISO 19115 or ISO 8601. The mandatory fields in this table must be populated to provide a complete set of ISO compliant metadata in the database. + + + + + Topic category keyword that gives the broad ISO19115 metadata topic category for data from this source. The controlled vocabulary of topic category keywords is given in the TopicCategoryCV table. + + + + + Title of data from a specific data source. + +Title field should be populated with a brief text description of what the referenced data represent. This field can be populated with “Unknown” if there is no title for the data. + + + + + Abstract of data from a specific data source. + +Abstract field should be populated with a more complete text description of the data that the metadata record references. This field can be populated with “Unknown” if there is no abstract for the data. + + + + + Name of metadata profile used by the data source + + + + + Link to additional metadata reference material. + + + + + + + OffsetType contains full descriptive information for each of the measurement offsets. +A set of observations may be done at an offset for the central location. + +offsetTypeID links to dataValue/@offsetTypeId + + + + + offsetValue element is value of offset. +If 0, then offset is not needed, and offsetTypeId should not be included on the dataValue + + + + + + Full text description of the offset type. + +Field should be filled in with a complete text description of the offset that provides enough information to interpret the type of offset being used. For example, “Distance from stream bank” is ambiguous because it is not known which bank is being referred to. + + + + + Units of the offsetValue + + + + + By default, the offset is vertical. +If the offset is horizontal, then this becomes a direction, and distance from the observation point + + + + + if offsetIsVertical=false, then this is the direction of the offset + + + + + + Unique integer identifier that identifies the type of measurement offset. + +Suggested that this is offsetType from ODM database. + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_1/WaterML_1_1_part1_v2.pdf b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_1/WaterML_1_1_part1_v2.pdf new file mode 100644 index 00000000..b6fe1851 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_1/WaterML_1_1_part1_v2.pdf differ diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_1/WaterML_1_1_part2_v1.pdf b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_1/WaterML_1_1_part2_v1.pdf new file mode 100644 index 00000000..3f361308 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_1/WaterML_1_1_part2_v1.pdf differ diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_1/WaterML_1_1_part3_v2.pdf b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_1/WaterML_1_1_part3_v2.pdf new file mode 100644 index 00000000..96343ce4 Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_1/WaterML_1_1_part3_v2.pdf differ diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_1/cuahsiTimeSeries_v1_1.xsd b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_1/cuahsiTimeSeries_v1_1.xsd new file mode 100644 index 00000000..074cb3ad --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/1_1/cuahsiTimeSeries_v1_1.xsd @@ -0,0 +1,1045 @@ + + + + + + + + + + A sampling station is any place where data are collected. + + + + + + + + A siteID is an identifier that this site is referred to as. + There may be multiple siteID elements. Only one should be labeled as the defaultID (set attribute defaultID=true) + Multiple siteID elements are allowed because site identifiers may change, + and different observation networks may refer to the same site with different identifiers. + + + + + + + + True if this is the main identifier that this service uses to access this site. + default value is false. + + + + + + The name of the observation network that this site identification is use for. + + + + + + An identifier of the site, the type of identifier must be specified. + + + + + + + + + + + + + + + + + the default time zone for this site (+00:00) and if this site shifts to daylight savings time (attribute: usesDaylightSavingsTime) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + + + + + + + + Multiple &lt;method&gt;s lists the methods used to collect the data and any additional information about the method. + +Different instruments should be represented as different methods, according to ODM best practices. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A brief name of the variable that could be shown in a menu + + + + + A detailed descriptn of the variable. May include processing information and other details. + + + + + + + + + The units of the measurement. + + + + + See option element for details. This is a list of options. Options are key-value pair elements that control how a variable might be utilized in a service. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Element containing the time support (or temporal footprint) of the data values. + +@isRegular indicates if the spacing is regular. +the timeInterval is the spacing between the observations, with the units being the units of the spacing. +This basically communicates the precision of the observation. If timeSupport isReqgular, and has units of 1 day, then clients should reformat output to spreadsheets and applications to day values. + +In waterML 1.0, there is a divergence of mean between ODM, and WaterML. +WaterML only communcates the regularity, and the spacing of the observations (timeInterval). Whereas timesupport in the ODM is associated with the dataType, and time support. This will be addressed in 1.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A list of options. Option elements are key-value pair elements that control how a variable maght be utilized in a service. + Examples: + MODIS web service. Information is aggreated over land or ocean or both. The plotarea option can include: plotarea=land, plotarea=land, plotarea=landocean + +USGS uses a statistic code, 0003, to repesent a value type of 'Average'. The USGS statistic codes also several options that do not fit the ODM data model. + + + + + + Option elements are key-value pair elements that control how a variable maght be utilized in a service. + Examples: + MODIS web service. Information is aggreated over land or ocean or both. The plotarea option can include: plotarea=land, plotarea=land, plotarea=landocean + +USGS uses a statistic code, 0003, to repesent a value type of 'Average'. The USGS statistic codes also several options that do not fit the ODM data model. + + + + + + + + Option elements are key-value pair elements that control how a variable maght be utilized in a service. + Examples: + MODIS web service. Information is aggreated over land or ocean or both. The plotarea option can include: plotarea=land, plotarea=land, plotarea=landocean + +USGS uses a statistic code, 0003, to repesent a value type of 'Average'. The USGS statistic codes also several options that do not fit the ODM data model. + + + + + + + + + + + + + + .Net serializer work around. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + the default time zone for this site (+00:00) and if this site shifts to daylight savings time (attribute: usesDaylightSavingsTime) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The latitude of the site in a decimal degrees as calculated in terms of the given datum. + + + + + + + The longitude of the site in a decimal degrees as calculated in terms of the given datum. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a coordinate tuple in one, two, or three dimensions. + + ============================================================== + There are two ways to represent coordinates: (1) as a sequence + of &lt;coord> elements that encapsulate tuples, or (2) using a + single &lt;coordinates> string. + =================================================================== + + + + + + + + + + + XML List based on XML Schema double type. An element + of this type contains a space-separated list of double + values + + =========================================================== + == Subset of basicTypes.xsd for this profile ============== + =========================================================== + =========================================================== + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This represents an offset for the time zone. [+/-]hh:mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This represents an offset for the time zone. [+/-]hh:mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The Abbrevation for the lab. e.g. BETA for Beta Analytical + + + + + + + + + + This is the contact information for a laboratory + + + + + + + + + + + + + + + + + The abbreviation for the source. e.g. USGS for US Geological Survey. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Code used to identify the level of quality control to which data values have been subjected. + +This code is used to link a quality element (qualityControlLevelType) to a dataValue/@qualityControlLevel + +“1”, “1.1”, “Raw”, “QCChecked” + +A quality control level code of -9999 is suggested for data whose quality control level is unknown + + + + + Definition of Quality Control Level. +“Raw Data”, “Quality Controlled Data” + + + + + + + + + + + Explanation of Quality Control Level + +eg +“Raw data is defined as unprocessed data and data products that have not undergone quality control.” + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/10-126r3_OGC_WaterML2.0_Standard.pdf b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/10-126r3_OGC_WaterML2.0_Standard.pdf new file mode 100644 index 00000000..544c380f Binary files /dev/null and b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/10-126r3_OGC_WaterML2.0_Standard.pdf differ diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/categorical-timeseries-tvp-observation.sch b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/categorical-timeseries-tvp-observation.sch new file mode 100644 index 00000000..27257e7e --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/categorical-timeseries-tvp-observation.sch @@ -0,0 +1,35 @@ + + + + + OGC WaterML2.0 categorical timeseries (tvp) observation +

Verifies that the OM_Observation result type is valid according to the WaterML2 categorical timeseries observation . Tests + requirements from http://www.opengis.net/spec/waterml/2.0/req/xsd-categorical-timeseries-tvp-observation

+ + + + + + + + + + + Test requirement: /req/xsd-categorical-timeseries-tvp-observation/result + + result must contain an element in the substitution group headed by wml2:CategoricalTimeseries + + + +
diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/categorical-timeseries-tvp.sch b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/categorical-timeseries-tvp.sch new file mode 100644 index 00000000..6e8f91a4 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/categorical-timeseries-tvp.sch @@ -0,0 +1,62 @@ + + + + + OGC WaterML2.0 category time series validation +

Verifies the value type of the time series is a catgory (string with a codespace). This is a test of + the requirement: http://www.opengis.net/spec/waterml/2.0/req/xsd-category-timeseries-tvp/value

+ + + + + + + + + + + + Test requirement: /req/xsd-categorical-timeseries-tvp/value-category + + The time series points must be of type category + + + + + Test default point metadata type + + The default metadata + for a point must use the category specific type. + + + + + Test point metadata type + + The time series + metadata type be the base metadata type. I.e. a TVPMedata element + + + + + + Test metadata type + + The timeseries metadata + must be consistent with the categorical series. I.e. TimeseriesMetadata + + + +
diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/collection.xsd b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/collection.xsd new file mode 100644 index 00000000..f420e87a --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/collection.xsd @@ -0,0 +1,188 @@ + + + + + An OGC WaterML2.0 generic collecton type that allows members of features, time series observations and related metadata. + + OGC WaterML 2.0 is an OGC Standard. + Copyright (c) 2012 Open Geospatial Consortium. + To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + + + + + + OGC WaterML2.0 defines a generic collection feature type, WaterCollection, to + allow the grouping of observations and/or sampling features with metadata to + describe the nature of the collection. Such collections are required in a number of + data exchange scenarios; whether the underlying transport technology is web + services, FTP or other technologies. + + + + + + + + + + Describes the temporal extent of the all the time series + contained within the collection (if they exist). + + + + + + + + + + + Provides a context for identification of particular data elements through use of MD_DataIdentification. + These can be referenced from individual timeseries values. + + + + + + + + + + + + A soft typed parameter for extra metadata properties. + + + + + + + + + + + Contains inline defintions of observed phenomenon. + + + + + + + + + + + Contains sampling feature member items. This allows + features of interest to be encoded at the header of a document and + referenced later or collections of features to be encoded. + + + + + + Contains members of Timeseries Observations. The type + shown here is only OM_Observation as the restrictions of this occur + using schematron. + + + + + Use this extention point for community-agreed extensions to the schema. + + + + + Use this extention point for internal extensions that have not been defined for external use. + + + + + + + + + + + + + + + + + + + + Metadata about the document + + + + + Metadata relating to the document, when it was created, by what etc. + + + + + + + + + + + Used to specify the conformance classes that are in use within the collection document. The conformance classes are identified by the URL + + + + + + + + + + + + + + + + + + + + A choice of defining a single sampling feature, or a + grouping. + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/domain-range-informative/timeseries-domain-range-example.xml b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/domain-range-informative/timeseries-domain-range-example.xml new file mode 100644 index 00000000..55712020 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/domain-range-informative/timeseries-domain-range-example.xml @@ -0,0 +1,72 @@ + + + + A handcrafted example of a domain-range style timeseries. + + + 2001-01-01T00:00:00Z 2001-01-02T00:00:00Z 2001-01-03T00:00:00Z 2001-01-04T00:00:00Z 2001-01-05T00:00:00Z + 2001-01-06T00:00:00Z + + + + + 2.03 2.06 2.42 missing 2.04 2.23 + + + + + + + + + + + + + + + + + + + + + + + + + + + good bad good missing good bad + + + + + + + + + + + + This is a free text comment + + Example comment + Another one + Has to be one for each point + + + + + + + + + + + diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/domain-range-informative/timeseries-domain-range-wfs-example.xml b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/domain-range-informative/timeseries-domain-range-wfs-example.xml new file mode 100644 index 00000000..f373d26b --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/domain-range-informative/timeseries-domain-range-wfs-example.xml @@ -0,0 +1,1766 @@ + + + + + + + + + + + 1900-01-01T00:00:00 + 2010-02-21T00:00:00 + + + + + + + + + + + + + 1990-01-01T12:00:00 1990-01-02T12:00:00 1990-01-03T12:00:00 1990-01-04T12:00:00 1990-01-05T12:00:00 + 1990-01-06T12:00:00 1990-01-07T12:00:00 1990-01-08T12:00:00 1990-01-09T12:00:00 1990-01-10T12:00:00 1990-01-11T12:00:00 + 1990-01-12T12:00:00 1990-01-13T12:00:00 1990-01-14T12:00:00 1990-01-15T12:00:00 1990-01-16T12:00:00 1990-01-17T12:00:00 + 1990-01-18T12:00:00 1990-01-19T12:00:00 1990-01-20T12:00:00 1990-01-21T12:00:00 1990-01-22T12:00:00 1990-01-23T12:00:00 + 1990-01-24T12:00:00 1990-01-25T12:00:00 1990-01-26T12:00:00 1990-01-27T12:00:00 1990-01-28T12:00:00 1990-01-29T12:00:00 + 1990-01-30T12:00:00 1990-01-31T12:00:00 1990-02-01T12:00:00 1990-02-02T12:00:00 1990-02-03T12:00:00 1990-02-04T12:00:00 + 1990-02-05T12:00:00 1990-02-06T12:00:00 1990-02-07T12:00:00 1990-02-08T12:00:00 1990-02-09T12:00:00 1990-02-10T12:00:00 + 1990-02-11T12:00:00 1990-02-12T12:00:00 1990-02-13T12:00:00 1990-02-14T12:00:00 1990-02-15T12:00:00 1990-02-16T12:00:00 + 1990-02-17T12:00:00 1990-02-18T12:00:00 1990-02-19T12:00:00 1990-02-20T12:00:00 1990-02-21T12:00:00 1990-02-22T12:00:00 + 1990-02-23T12:00:00 1990-02-24T12:00:00 1990-02-25T12:00:00 1990-02-26T12:00:00 1990-02-27T12:00:00 1990-02-28T12:00:00 + 1990-03-01T12:00:00 1990-03-02T12:00:00 1990-03-03T12:00:00 1990-03-04T12:00:00 1990-03-05T12:00:00 1990-03-06T12:00:00 + 1990-03-07T12:00:00 1990-03-08T12:00:00 1990-03-09T12:00:00 1990-03-10T12:00:00 1990-03-11T12:00:00 1990-03-12T12:00:00 + 1990-03-13T12:00:00 1990-03-14T12:00:00 1990-03-15T12:00:00 1990-03-16T12:00:00 1990-03-17T12:00:00 1990-03-18T12:00:00 + 1990-03-19T12:00:00 1990-03-20T12:00:00 1990-03-21T12:00:00 1990-03-22T12:00:00 1990-03-23T12:00:00 1990-03-24T12:00:00 + 1990-03-25T12:00:00 1990-03-26T12:00:00 1990-03-27T12:00:00 1990-03-28T12:00:00 1990-03-29T12:00:00 1990-03-30T12:00:00 + 1990-03-31T12:00:00 1990-04-01T12:00:00 1990-04-02T12:00:00 1990-04-03T12:00:00 1990-04-04T12:00:00 1990-04-05T12:00:00 + 1990-04-06T12:00:00 1990-04-07T12:00:00 1990-04-08T12:00:00 1990-04-09T12:00:00 1990-04-10T12:00:00 1990-04-11T12:00:00 + 1990-04-12T12:00:00 1990-04-13T12:00:00 1990-04-14T12:00:00 1990-04-15T12:00:00 1990-04-16T12:00:00 1990-04-17T12:00:00 + 1990-04-18T12:00:00 1990-04-19T12:00:00 1990-04-20T12:00:00 1990-04-21T12:00:00 1990-04-22T12:00:00 1990-04-23T12:00:00 + 1990-04-24T12:00:00 1990-04-25T12:00:00 1990-04-26T12:00:00 1990-04-27T12:00:00 1990-04-28T12:00:00 1990-04-29T12:00:00 + 1990-04-30T12:00:00 1990-05-01T12:00:00 1990-05-02T12:00:00 1990-05-03T12:00:00 1990-05-04T12:00:00 1990-05-05T12:00:00 + 1990-05-06T12:00:00 1990-05-07T12:00:00 1990-05-08T12:00:00 1990-05-09T12:00:00 1990-05-10T12:00:00 1990-05-11T12:00:00 + 1990-05-12T12:00:00 1990-05-13T12:00:00 1990-05-14T12:00:00 1990-05-15T12:00:00 1990-05-16T12:00:00 1990-05-17T12:00:00 + 1990-05-18T12:00:00 1990-05-19T12:00:00 1990-05-20T12:00:00 1990-05-21T12:00:00 1990-05-22T12:00:00 1990-05-23T12:00:00 + 1990-05-24T12:00:00 1990-05-25T12:00:00 1990-05-26T12:00:00 1990-05-27T12:00:00 1990-05-28T12:00:00 1990-05-29T12:00:00 + 1990-05-30T12:00:00 1990-05-31T12:00:00 1990-06-01T12:00:00 1990-06-02T12:00:00 1990-06-03T12:00:00 1990-06-04T12:00:00 + 1990-06-05T12:00:00 1990-06-06T12:00:00 1990-06-07T12:00:00 1990-06-08T12:00:00 1990-06-09T12:00:00 1990-06-10T12:00:00 + 1990-06-11T12:00:00 1990-06-12T12:00:00 1990-06-13T12:00:00 1990-06-14T12:00:00 1990-06-15T12:00:00 1990-06-16T12:00:00 + 1990-06-17T12:00:00 1990-06-18T12:00:00 1990-06-19T12:00:00 1990-06-20T12:00:00 1990-06-21T12:00:00 1990-06-22T12:00:00 + 1990-06-23T12:00:00 1990-06-24T12:00:00 1990-06-25T12:00:00 1990-06-26T12:00:00 1990-06-27T12:00:00 1990-06-28T12:00:00 + 1990-06-29T12:00:00 1990-06-30T12:00:00 1990-07-01T12:00:00 1990-07-02T12:00:00 1990-07-03T12:00:00 1990-07-04T12:00:00 + 1990-07-05T12:00:00 1990-07-06T12:00:00 1990-07-07T12:00:00 1990-07-08T12:00:00 1990-07-09T12:00:00 1990-07-10T12:00:00 + 1990-07-11T12:00:00 1990-07-12T12:00:00 1990-07-13T12:00:00 1990-07-14T12:00:00 1990-07-15T12:00:00 1990-07-16T12:00:00 + 1990-07-17T12:00:00 1990-07-18T12:00:00 1990-07-19T12:00:00 1990-07-20T12:00:00 1990-07-21T12:00:00 1990-07-22T12:00:00 + 1990-07-23T12:00:00 1990-07-24T12:00:00 1990-07-25T12:00:00 1990-07-26T12:00:00 1990-07-27T12:00:00 1990-07-28T12:00:00 + 1990-07-29T12:00:00 1990-07-30T12:00:00 1990-07-31T12:00:00 1990-08-01T12:00:00 1990-08-02T12:00:00 1990-08-03T12:00:00 + 1990-08-04T12:00:00 1990-08-05T12:00:00 1990-08-06T12:00:00 1990-08-07T12:00:00 1990-08-08T12:00:00 1990-08-09T12:00:00 + 1990-08-10T12:00:00 1990-08-11T12:00:00 1990-08-12T12:00:00 1990-08-13T12:00:00 1990-08-14T12:00:00 1990-08-15T12:00:00 + 1990-08-16T12:00:00 1990-08-17T12:00:00 1990-08-18T12:00:00 1990-08-19T12:00:00 1990-08-20T12:00:00 1990-08-21T12:00:00 + 1990-08-22T12:00:00 1990-08-23T12:00:00 1990-08-24T12:00:00 1990-08-25T12:00:00 1990-08-26T12:00:00 1990-08-27T12:00:00 + 1990-08-28T12:00:00 1990-08-29T12:00:00 1990-08-30T12:00:00 1990-08-31T12:00:00 1990-09-01T12:00:00 1990-09-02T12:00:00 + 1990-09-03T12:00:00 1990-09-04T12:00:00 1990-09-05T12:00:00 1990-09-06T12:00:00 1990-09-07T12:00:00 1990-09-08T12:00:00 + 1990-09-09T12:00:00 1990-09-10T12:00:00 1990-09-11T12:00:00 1990-09-12T12:00:00 1990-09-13T12:00:00 1990-09-14T12:00:00 + 1990-09-15T12:00:00 1990-09-16T12:00:00 1990-09-17T12:00:00 1990-09-18T12:00:00 1990-09-19T12:00:00 1990-09-20T12:00:00 + 1990-09-21T12:00:00 1990-09-22T12:00:00 1990-09-23T12:00:00 1990-09-24T12:00:00 1990-09-25T12:00:00 1990-09-26T12:00:00 + 1990-09-27T12:00:00 1990-09-28T12:00:00 1990-09-29T12:00:00 1990-09-30T12:00:00 1990-10-01T12:00:00 1990-10-02T12:00:00 + 1990-10-03T12:00:00 1990-10-04T12:00:00 1990-10-05T12:00:00 1990-10-06T12:00:00 1990-10-07T12:00:00 1990-10-08T12:00:00 + 1990-10-09T12:00:00 1990-10-10T12:00:00 1990-10-11T12:00:00 1990-10-12T12:00:00 1990-10-13T12:00:00 1990-10-14T12:00:00 + 1990-10-15T12:00:00 1990-10-16T12:00:00 1990-10-17T12:00:00 1990-10-18T12:00:00 1990-10-19T12:00:00 1990-10-20T12:00:00 + 1990-10-21T12:00:00 1990-10-22T12:00:00 1990-10-23T12:00:00 1990-10-24T12:00:00 1990-10-25T12:00:00 1990-10-26T12:00:00 + 1990-10-27T12:00:00 1990-10-28T12:00:00 1990-10-29T12:00:00 1990-10-30T12:00:00 1990-10-31T12:00:00 1990-11-01T12:00:00 + 1990-11-02T12:00:00 1990-11-03T12:00:00 1990-11-04T12:00:00 1990-11-05T12:00:00 1990-11-06T12:00:00 1990-11-07T12:00:00 + 1990-11-08T12:00:00 1990-11-09T12:00:00 1990-11-10T12:00:00 1990-11-11T12:00:00 1990-11-12T12:00:00 1990-11-13T12:00:00 + 1990-11-14T12:00:00 1990-11-15T12:00:00 1990-11-16T12:00:00 1990-11-17T12:00:00 1990-11-18T12:00:00 1990-11-19T12:00:00 + 1990-11-20T12:00:00 1990-11-21T12:00:00 1990-11-22T12:00:00 1990-11-23T12:00:00 1990-11-24T12:00:00 1990-11-25T12:00:00 + 1990-11-26T12:00:00 1990-11-27T12:00:00 1990-11-28T12:00:00 1990-11-29T12:00:00 1990-11-30T12:00:00 1990-12-01T12:00:00 + 1990-12-02T12:00:00 1990-12-03T12:00:00 1990-12-04T12:00:00 1990-12-05T12:00:00 1990-12-06T12:00:00 1990-12-07T12:00:00 + 1990-12-08T12:00:00 1990-12-09T12:00:00 1990-12-10T12:00:00 1990-12-11T12:00:00 1990-12-12T12:00:00 1990-12-13T12:00:00 + 1990-12-14T12:00:00 1990-12-15T12:00:00 1990-12-16T12:00:00 1990-12-17T12:00:00 1990-12-18T12:00:00 1990-12-19T12:00:00 + 1990-12-20T12:00:00 1990-12-21T12:00:00 1990-12-22T12:00:00 1990-12-23T12:00:00 1990-12-24T12:00:00 1990-12-25T12:00:00 + 1990-12-26T12:00:00 1990-12-27T12:00:00 1990-12-28T12:00:00 1990-12-29T12:00:00 1990-12-30T12:00:00 1990-12-31T12:00:00 + 1991-01-01T12:00:00 1991-01-02T12:00:00 1991-01-03T12:00:00 1991-01-04T12:00:00 1991-01-05T12:00:00 1991-01-06T12:00:00 + 1991-01-07T12:00:00 1991-01-08T12:00:00 1991-01-09T12:00:00 1991-01-10T12:00:00 1991-01-11T12:00:00 1991-01-12T12:00:00 + 1991-01-13T12:00:00 1991-01-14T12:00:00 1991-01-15T12:00:00 1991-01-16T12:00:00 1991-01-17T12:00:00 1991-01-18T12:00:00 + 1991-01-19T12:00:00 1991-01-20T12:00:00 1991-01-21T12:00:00 1991-01-22T12:00:00 1991-01-23T12:00:00 1991-01-24T12:00:00 + 1991-01-25T12:00:00 1991-01-26T12:00:00 1991-01-27T12:00:00 1991-01-28T12:00:00 1991-01-29T12:00:00 1991-01-30T12:00:00 + 1991-01-31T12:00:00 1991-02-01T12:00:00 1991-02-02T12:00:00 1991-02-03T12:00:00 1991-02-04T12:00:00 1991-02-05T12:00:00 + 1991-02-06T12:00:00 1991-02-07T12:00:00 1991-02-08T12:00:00 1991-02-09T12:00:00 1991-02-10T12:00:00 1991-02-11T12:00:00 + 1991-02-12T12:00:00 1991-02-13T12:00:00 1991-02-14T12:00:00 1991-02-15T12:00:00 1991-02-16T12:00:00 1991-02-17T12:00:00 + 1991-02-18T12:00:00 1991-02-19T12:00:00 1991-02-20T12:00:00 1991-02-21T12:00:00 1991-02-22T12:00:00 1991-02-23T12:00:00 + 1991-02-24T12:00:00 1991-02-25T12:00:00 1991-02-26T12:00:00 1991-02-27T12:00:00 1991-02-28T12:00:00 1991-03-01T12:00:00 + 1991-03-02T12:00:00 1991-03-03T12:00:00 1991-03-04T12:00:00 1991-03-05T12:00:00 1991-03-06T12:00:00 1991-03-07T12:00:00 + 1991-03-08T12:00:00 1991-03-09T12:00:00 1991-03-10T12:00:00 1991-03-11T12:00:00 1991-03-12T12:00:00 1991-03-13T12:00:00 + 1991-03-14T12:00:00 1991-03-15T12:00:00 1991-03-16T12:00:00 1991-03-17T12:00:00 1991-03-18T12:00:00 1991-03-19T12:00:00 + 1991-03-20T12:00:00 1991-03-21T12:00:00 1991-03-22T12:00:00 1991-03-23T12:00:00 1991-03-24T12:00:00 1991-03-25T12:00:00 + 1991-03-26T12:00:00 1991-03-27T12:00:00 1991-03-28T12:00:00 1991-03-29T12:00:00 1991-03-30T12:00:00 1991-03-31T12:00:00 + 1991-04-01T12:00:00 1991-04-02T12:00:00 1991-04-03T12:00:00 1991-04-04T12:00:00 1991-04-05T12:00:00 1991-04-06T12:00:00 + 1991-04-07T12:00:00 1991-04-08T12:00:00 1991-04-09T12:00:00 1991-04-10T12:00:00 1991-04-11T12:00:00 1991-04-12T12:00:00 + 1991-04-13T12:00:00 1991-04-14T12:00:00 1991-04-15T12:00:00 1991-04-16T12:00:00 1991-04-17T12:00:00 1991-04-18T12:00:00 + 1991-04-19T12:00:00 1991-04-20T12:00:00 1991-04-21T12:00:00 1991-04-22T12:00:00 1991-04-23T12:00:00 1991-04-24T12:00:00 + 1991-04-25T12:00:00 1991-04-26T12:00:00 1991-04-27T12:00:00 1991-04-28T12:00:00 1991-04-29T12:00:00 1991-04-30T12:00:00 + 1991-05-01T12:00:00 1991-05-02T12:00:00 1991-05-03T12:00:00 1991-05-04T12:00:00 1991-05-05T12:00:00 1991-05-06T12:00:00 + 1991-05-07T12:00:00 1991-05-08T12:00:00 1991-05-09T12:00:00 1991-05-10T12:00:00 1991-05-11T12:00:00 1991-05-12T12:00:00 + 1991-05-13T12:00:00 1991-05-14T12:00:00 1991-05-15T12:00:00 1991-05-16T12:00:00 1991-05-17T12:00:00 1991-05-18T12:00:00 + 1991-05-19T12:00:00 1991-05-20T12:00:00 1991-05-21T12:00:00 1991-05-22T12:00:00 1991-05-23T12:00:00 1991-05-24T12:00:00 + 1991-05-25T12:00:00 1991-05-26T12:00:00 1991-05-27T12:00:00 1991-05-28T12:00:00 1991-05-29T12:00:00 1991-05-30T12:00:00 + 1991-05-31T12:00:00 1991-06-01T12:00:00 1991-06-02T12:00:00 1991-06-03T12:00:00 1991-06-04T12:00:00 1991-06-05T12:00:00 + 1991-06-06T12:00:00 1991-06-07T12:00:00 1991-06-08T12:00:00 1991-06-09T12:00:00 1991-06-10T12:00:00 1991-06-11T12:00:00 + 1991-06-12T12:00:00 1991-06-13T12:00:00 1991-06-14T12:00:00 1991-06-15T12:00:00 1991-06-16T12:00:00 1991-06-17T12:00:00 + 1991-06-18T12:00:00 1991-06-19T12:00:00 1991-06-20T12:00:00 1991-06-21T12:00:00 1991-06-22T12:00:00 1991-06-23T12:00:00 + 1991-06-24T12:00:00 1991-06-25T12:00:00 1991-06-26T12:00:00 1991-06-27T12:00:00 1991-06-28T12:00:00 1991-06-29T12:00:00 + 1991-06-30T12:00:00 1991-07-01T12:00:00 1991-07-02T12:00:00 1991-07-03T12:00:00 1991-07-04T12:00:00 1991-07-05T12:00:00 + 1991-07-06T12:00:00 1991-07-07T12:00:00 1991-07-08T12:00:00 1991-07-09T12:00:00 1991-07-10T12:00:00 1991-07-11T12:00:00 + 1991-07-12T12:00:00 1991-07-13T12:00:00 1991-07-14T12:00:00 1991-07-15T12:00:00 1991-07-16T12:00:00 1991-07-17T12:00:00 + 1991-07-18T12:00:00 1991-07-19T12:00:00 1991-07-20T12:00:00 1991-07-21T12:00:00 1991-07-22T12:00:00 1991-07-23T12:00:00 + 1991-07-24T12:00:00 1991-07-25T12:00:00 1991-07-26T12:00:00 1991-07-27T12:00:00 1991-07-28T12:00:00 1991-07-29T12:00:00 + 1991-07-30T12:00:00 1991-07-31T12:00:00 1991-08-01T12:00:00 1991-08-02T12:00:00 1991-08-03T12:00:00 1991-08-04T12:00:00 + 1991-08-05T12:00:00 1991-08-06T12:00:00 1991-08-07T12:00:00 1991-08-08T12:00:00 1991-08-09T12:00:00 1991-08-10T12:00:00 + 1991-08-11T12:00:00 1991-08-12T12:00:00 1991-08-13T12:00:00 1991-08-14T12:00:00 1991-08-15T12:00:00 1991-08-16T12:00:00 + 1991-08-17T12:00:00 1991-08-18T12:00:00 1991-08-19T12:00:00 1991-08-20T12:00:00 1991-08-21T12:00:00 1991-08-22T12:00:00 + 1991-08-23T12:00:00 1991-08-24T12:00:00 1991-08-25T12:00:00 1991-08-26T12:00:00 1991-08-27T12:00:00 1991-08-28T12:00:00 + 1991-08-29T12:00:00 1991-08-30T12:00:00 1991-08-31T12:00:00 1991-09-01T12:00:00 1991-09-02T12:00:00 1991-09-03T12:00:00 + 1991-09-04T12:00:00 1991-09-05T12:00:00 1991-09-06T12:00:00 1991-09-07T12:00:00 1991-09-08T12:00:00 1991-09-09T12:00:00 + 1991-09-10T12:00:00 1991-09-11T12:00:00 1991-09-12T12:00:00 1991-09-13T12:00:00 1991-09-14T12:00:00 1991-09-15T12:00:00 + 1991-09-16T12:00:00 1991-09-17T12:00:00 1991-09-18T12:00:00 1991-09-19T12:00:00 1991-09-20T12:00:00 1991-09-21T12:00:00 + 1991-09-22T12:00:00 1991-09-23T12:00:00 1991-09-24T12:00:00 1991-09-25T12:00:00 1991-09-26T12:00:00 1991-09-27T12:00:00 + 1991-09-28T12:00:00 1991-09-29T12:00:00 1991-09-30T12:00:00 1991-10-01T12:00:00 1991-10-02T12:00:00 1991-10-03T12:00:00 + 1991-10-04T12:00:00 1991-10-05T12:00:00 1991-10-06T12:00:00 1991-10-07T12:00:00 1991-10-08T12:00:00 1991-10-09T12:00:00 + 1991-10-10T12:00:00 1991-10-11T12:00:00 1991-10-12T12:00:00 1991-10-13T12:00:00 1991-10-14T12:00:00 1991-10-15T12:00:00 + 1991-10-16T12:00:00 1991-10-17T12:00:00 1991-10-18T12:00:00 1991-10-19T12:00:00 1991-10-20T12:00:00 1991-10-21T12:00:00 + 1991-10-22T12:00:00 1991-10-23T12:00:00 1991-10-24T12:00:00 1991-10-25T12:00:00 1991-10-26T12:00:00 1991-10-27T12:00:00 + 1991-10-28T12:00:00 1991-10-29T12:00:00 1991-10-30T12:00:00 1991-10-31T12:00:00 1991-11-01T12:00:00 1991-11-02T12:00:00 + 1991-11-03T12:00:00 1991-11-04T12:00:00 1991-11-05T12:00:00 1991-11-06T12:00:00 1991-11-07T12:00:00 1991-11-08T12:00:00 + 1991-11-09T12:00:00 1991-11-10T12:00:00 1991-11-11T12:00:00 1991-11-12T12:00:00 1991-11-13T12:00:00 1991-11-14T12:00:00 + 1991-11-15T12:00:00 1991-11-16T12:00:00 1991-11-17T12:00:00 1991-11-18T12:00:00 1991-11-19T12:00:00 1991-11-20T12:00:00 + 1991-11-21T12:00:00 1991-11-22T12:00:00 1991-11-23T12:00:00 1991-11-24T12:00:00 1991-11-25T12:00:00 1991-11-26T12:00:00 + 1991-11-27T12:00:00 1991-11-28T12:00:00 1991-11-29T12:00:00 1991-11-30T12:00:00 1991-12-01T12:00:00 1991-12-02T12:00:00 + 1991-12-03T12:00:00 1991-12-04T12:00:00 1991-12-05T12:00:00 1991-12-06T12:00:00 1991-12-07T12:00:00 1991-12-08T12:00:00 + 1991-12-09T12:00:00 1991-12-10T12:00:00 1991-12-11T12:00:00 1991-12-12T12:00:00 1991-12-13T12:00:00 1991-12-14T12:00:00 + 1991-12-15T12:00:00 1991-12-16T12:00:00 1991-12-17T12:00:00 1991-12-18T12:00:00 1991-12-19T12:00:00 1991-12-20T12:00:00 + 1991-12-21T12:00:00 1991-12-22T12:00:00 1991-12-23T12:00:00 1991-12-24T12:00:00 1991-12-25T12:00:00 1991-12-26T12:00:00 + 1991-12-27T12:00:00 1991-12-28T12:00:00 1991-12-29T12:00:00 1991-12-30T12:00:00 1991-12-31T12:00:00 1992-01-01T12:00:00 + 1992-01-02T12:00:00 1992-01-03T12:00:00 1992-01-04T12:00:00 1992-01-05T12:00:00 1992-01-06T12:00:00 1992-01-07T12:00:00 + 1992-01-08T12:00:00 1992-01-09T12:00:00 1992-01-10T12:00:00 1992-01-11T12:00:00 1992-01-12T12:00:00 1992-01-13T12:00:00 + 1992-01-14T12:00:00 1992-01-15T12:00:00 1992-01-16T12:00:00 1992-01-17T12:00:00 1992-01-18T12:00:00 1992-01-19T12:00:00 + 1992-01-20T12:00:00 1992-01-21T12:00:00 1992-01-22T12:00:00 1992-01-23T12:00:00 1992-01-24T12:00:00 1992-01-25T12:00:00 + 1992-01-26T12:00:00 1992-01-27T12:00:00 1992-01-28T12:00:00 1992-01-29T12:00:00 1992-01-30T12:00:00 1992-01-31T12:00:00 + 1992-02-01T12:00:00 1992-02-02T12:00:00 1992-02-03T12:00:00 1992-02-04T12:00:00 1992-02-05T12:00:00 1992-02-06T12:00:00 + 1992-02-07T12:00:00 1992-02-08T12:00:00 1992-02-09T12:00:00 1992-02-10T12:00:00 1992-02-11T12:00:00 1992-02-12T12:00:00 + 1992-02-13T12:00:00 1992-02-14T12:00:00 1992-02-15T12:00:00 1992-02-16T12:00:00 1992-02-17T12:00:00 1992-02-18T12:00:00 + 1992-02-19T12:00:00 1992-02-20T12:00:00 1992-02-21T12:00:00 1992-02-22T12:00:00 1992-02-23T12:00:00 1992-02-24T12:00:00 + 1992-02-25T12:00:00 1992-02-26T12:00:00 1992-02-27T12:00:00 1992-02-28T12:00:00 1992-02-29T12:00:00 1992-03-01T12:00:00 + 1992-03-02T12:00:00 1992-03-03T12:00:00 1992-03-04T12:00:00 1992-03-05T12:00:00 1992-03-06T12:00:00 1992-03-07T12:00:00 + 1992-03-08T12:00:00 1992-03-09T12:00:00 1992-03-10T12:00:00 1992-03-11T12:00:00 1992-03-12T12:00:00 1992-03-13T12:00:00 + 1992-03-14T12:00:00 1992-03-15T12:00:00 1992-03-16T12:00:00 1992-03-17T12:00:00 1992-03-18T12:00:00 1992-03-19T12:00:00 + 1992-03-20T12:00:00 1992-03-21T12:00:00 1992-03-22T12:00:00 1992-03-23T12:00:00 1992-03-24T12:00:00 1992-03-25T12:00:00 + 1992-03-26T12:00:00 1992-03-27T12:00:00 1992-03-28T12:00:00 1992-03-29T12:00:00 1992-03-30T12:00:00 1992-03-31T12:00:00 + 1992-04-01T12:00:00 1992-04-02T12:00:00 1992-04-03T12:00:00 1992-04-04T12:00:00 1992-04-05T12:00:00 1992-04-06T12:00:00 + 1992-04-07T12:00:00 1992-04-08T12:00:00 1992-04-09T12:00:00 1992-04-10T12:00:00 1992-04-11T12:00:00 1992-04-12T12:00:00 + 1992-04-13T12:00:00 1992-04-14T12:00:00 1992-04-15T12:00:00 1992-04-16T12:00:00 1992-04-17T12:00:00 1992-04-18T12:00:00 + 1992-04-19T12:00:00 1992-04-20T12:00:00 1992-04-21T12:00:00 1992-04-22T12:00:00 1992-04-23T12:00:00 1992-04-24T12:00:00 + 1992-04-25T12:00:00 1992-04-26T12:00:00 1992-04-27T12:00:00 1992-04-28T12:00:00 1992-04-29T12:00:00 1992-04-30T12:00:00 + 1992-05-01T12:00:00 1992-05-02T12:00:00 1992-05-03T12:00:00 1992-05-04T12:00:00 1992-05-05T12:00:00 1992-05-06T12:00:00 + 1992-05-07T12:00:00 1992-05-08T12:00:00 1992-05-09T12:00:00 1992-05-10T12:00:00 1992-05-11T12:00:00 1992-05-12T12:00:00 + 1992-05-13T12:00:00 1992-05-14T12:00:00 1992-05-15T12:00:00 1992-05-16T12:00:00 1992-05-17T12:00:00 1992-05-18T12:00:00 + 1992-05-19T12:00:00 1992-05-20T12:00:00 1992-05-21T12:00:00 1992-05-22T12:00:00 1992-05-23T12:00:00 1992-05-24T12:00:00 + 1992-05-25T12:00:00 1992-05-26T12:00:00 1992-05-27T12:00:00 1992-05-28T12:00:00 1992-05-29T12:00:00 1992-05-30T12:00:00 + 1992-05-31T12:00:00 1992-06-01T12:00:00 1992-06-02T12:00:00 1992-06-03T12:00:00 1992-06-04T12:00:00 1992-06-05T12:00:00 + 1992-06-06T12:00:00 1992-06-07T12:00:00 1992-06-08T12:00:00 1992-06-09T12:00:00 1992-06-10T12:00:00 1992-06-11T12:00:00 + 1992-06-12T12:00:00 1992-06-13T12:00:00 1992-06-14T12:00:00 1992-06-15T12:00:00 1992-06-16T12:00:00 1992-06-17T12:00:00 + 1992-06-18T12:00:00 1992-06-19T12:00:00 1992-06-20T12:00:00 1992-06-21T12:00:00 1992-06-22T12:00:00 1992-06-23T12:00:00 + 1992-06-24T12:00:00 1992-06-25T12:00:00 1992-06-26T12:00:00 1992-06-27T12:00:00 1992-06-28T12:00:00 1992-06-29T12:00:00 + 1992-06-30T12:00:00 1992-07-01T12:00:00 1992-07-02T12:00:00 1992-07-03T12:00:00 1992-07-04T12:00:00 1992-07-05T12:00:00 + 1992-07-06T12:00:00 1992-07-07T12:00:00 1992-07-08T12:00:00 1992-07-09T12:00:00 1992-07-10T12:00:00 1992-07-11T12:00:00 + 1992-07-12T12:00:00 1992-07-13T12:00:00 1992-07-14T12:00:00 1992-07-15T12:00:00 1992-07-16T12:00:00 1992-07-17T12:00:00 + 1992-07-18T12:00:00 1992-07-19T12:00:00 1992-07-20T12:00:00 1992-07-21T12:00:00 1992-07-22T12:00:00 1992-07-23T12:00:00 + 1992-07-24T12:00:00 1992-07-25T12:00:00 1992-07-26T12:00:00 1992-07-27T12:00:00 1992-07-28T12:00:00 1992-07-29T12:00:00 + 1992-07-30T12:00:00 1992-07-31T12:00:00 1992-08-01T12:00:00 1992-08-02T12:00:00 1992-08-03T12:00:00 1992-08-04T12:00:00 + 1992-08-05T12:00:00 1992-08-06T12:00:00 1992-08-07T12:00:00 1992-08-08T12:00:00 1992-08-09T12:00:00 1992-08-10T12:00:00 + 1992-08-11T12:00:00 1992-08-12T12:00:00 1992-08-13T12:00:00 1992-08-14T12:00:00 1992-08-15T12:00:00 1992-08-16T12:00:00 + 1992-08-17T12:00:00 1992-08-18T12:00:00 1992-08-19T12:00:00 1992-08-20T12:00:00 1992-08-21T12:00:00 1992-08-22T12:00:00 + 1992-08-23T12:00:00 1992-08-24T12:00:00 1992-08-25T12:00:00 1992-08-26T12:00:00 1992-08-27T12:00:00 1992-08-28T12:00:00 + 1992-08-29T12:00:00 1992-08-30T12:00:00 1992-08-31T12:00:00 1992-09-01T12:00:00 1992-09-02T12:00:00 1992-09-03T12:00:00 + 1992-09-04T12:00:00 1992-09-05T12:00:00 1992-09-06T12:00:00 1992-09-07T12:00:00 1992-09-08T12:00:00 1992-09-09T12:00:00 + 1992-09-10T12:00:00 1992-09-11T12:00:00 1992-09-12T12:00:00 1992-09-13T12:00:00 1992-09-14T12:00:00 1992-09-15T12:00:00 + 1992-09-16T12:00:00 1992-09-17T12:00:00 1992-09-18T12:00:00 1992-09-19T12:00:00 1992-09-20T12:00:00 1992-09-21T12:00:00 + 1992-09-22T12:00:00 1992-09-23T12:00:00 1992-09-24T12:00:00 1992-09-25T12:00:00 1992-09-26T12:00:00 1992-09-27T12:00:00 + 1992-09-28T12:00:00 1992-09-29T12:00:00 1992-09-30T12:00:00 1992-10-01T12:00:00 1992-10-02T12:00:00 1992-10-03T12:00:00 + 1992-10-04T12:00:00 1992-10-05T12:00:00 1992-10-06T12:00:00 1992-10-07T12:00:00 1992-10-08T12:00:00 1992-10-09T12:00:00 + 1992-10-10T12:00:00 1992-10-11T12:00:00 1992-10-12T12:00:00 1992-10-13T12:00:00 1992-10-14T12:00:00 1992-10-15T12:00:00 + 1992-10-16T12:00:00 1992-10-17T12:00:00 1992-10-18T12:00:00 1992-10-19T12:00:00 1992-10-20T12:00:00 1992-10-21T12:00:00 + 1992-10-22T12:00:00 1992-10-23T12:00:00 1992-10-24T12:00:00 1992-10-25T12:00:00 1992-10-26T12:00:00 1992-10-27T12:00:00 + 1992-10-28T12:00:00 1992-10-29T12:00:00 1992-10-30T12:00:00 1992-10-31T12:00:00 1992-11-01T12:00:00 1992-11-02T12:00:00 + 1992-11-03T12:00:00 1992-11-04T12:00:00 1992-11-05T12:00:00 1992-11-06T12:00:00 1992-11-07T12:00:00 1992-11-08T12:00:00 + 1992-11-09T12:00:00 1992-11-10T12:00:00 1992-11-11T12:00:00 1992-11-12T12:00:00 1992-11-13T12:00:00 1992-11-14T12:00:00 + 1992-11-15T12:00:00 1992-11-16T12:00:00 1992-11-17T12:00:00 1992-11-18T12:00:00 1992-11-19T12:00:00 1992-11-20T12:00:00 + 1992-11-21T12:00:00 1992-11-22T12:00:00 1992-11-23T12:00:00 1992-11-24T12:00:00 1992-11-25T12:00:00 1992-11-26T12:00:00 + 1992-11-27T12:00:00 1992-11-28T12:00:00 1992-11-29T12:00:00 1992-11-30T12:00:00 1992-12-01T12:00:00 1992-12-02T12:00:00 + 1992-12-03T12:00:00 1992-12-04T12:00:00 1992-12-05T12:00:00 1992-12-06T12:00:00 1992-12-07T12:00:00 1992-12-08T12:00:00 + 1992-12-09T12:00:00 1992-12-10T12:00:00 1992-12-11T12:00:00 1992-12-12T12:00:00 1992-12-13T12:00:00 1992-12-14T12:00:00 + 1992-12-15T12:00:00 1992-12-16T12:00:00 1992-12-17T12:00:00 1992-12-18T12:00:00 1992-12-19T12:00:00 1992-12-20T12:00:00 + 1992-12-21T12:00:00 1992-12-22T12:00:00 1992-12-23T12:00:00 1992-12-24T12:00:00 1992-12-25T12:00:00 1992-12-26T12:00:00 + 1992-12-27T12:00:00 1992-12-28T12:00:00 1992-12-29T12:00:00 1992-12-30T12:00:00 1992-12-31T12:00:00 1993-01-01T12:00:00 + 1993-01-02T12:00:00 1993-01-03T12:00:00 1993-01-04T12:00:00 1993-01-05T12:00:00 1993-01-06T12:00:00 1993-01-07T12:00:00 + 1993-01-08T12:00:00 1993-01-09T12:00:00 1993-01-10T12:00:00 1993-01-11T12:00:00 1993-01-12T12:00:00 1993-01-13T12:00:00 + 1993-01-14T12:00:00 1993-01-15T12:00:00 1993-01-16T12:00:00 1993-01-17T12:00:00 1993-01-18T12:00:00 1993-01-19T12:00:00 + 1993-01-20T12:00:00 1993-01-21T12:00:00 1993-01-22T12:00:00 1993-01-23T12:00:00 1993-01-24T12:00:00 1993-01-25T12:00:00 + 1993-01-26T12:00:00 1993-01-27T12:00:00 1993-01-28T12:00:00 1993-01-29T12:00:00 1993-01-30T12:00:00 1993-01-31T12:00:00 + 1993-02-01T12:00:00 1993-02-02T12:00:00 1993-02-03T12:00:00 1993-02-04T12:00:00 1993-02-05T12:00:00 1993-02-06T12:00:00 + 1993-02-07T12:00:00 1993-02-08T12:00:00 1993-02-09T12:00:00 1993-02-10T12:00:00 1993-02-11T12:00:00 1993-02-12T12:00:00 + 1993-02-13T12:00:00 1993-02-14T12:00:00 1993-02-15T12:00:00 1993-02-16T12:00:00 1993-02-17T12:00:00 1993-02-18T12:00:00 + 1993-02-19T12:00:00 1993-02-20T12:00:00 1993-02-21T12:00:00 1993-02-22T12:00:00 1993-02-23T12:00:00 1993-02-24T12:00:00 + 1993-02-25T12:00:00 1993-02-26T12:00:00 1993-02-27T12:00:00 1993-02-28T12:00:00 1993-03-01T12:00:00 1993-03-02T12:00:00 + 1993-03-03T12:00:00 1993-03-04T12:00:00 1993-03-05T12:00:00 1993-03-06T12:00:00 1993-03-07T12:00:00 1993-03-08T12:00:00 + 1993-03-09T12:00:00 1993-03-10T12:00:00 1993-03-11T12:00:00 1993-03-12T12:00:00 1993-03-13T12:00:00 1993-03-14T12:00:00 + 1993-03-15T12:00:00 1993-03-16T12:00:00 1993-03-17T12:00:00 1993-03-18T12:00:00 1993-03-19T12:00:00 1993-03-20T12:00:00 + 1993-03-21T12:00:00 1993-03-22T12:00:00 1993-03-23T12:00:00 1993-03-24T12:00:00 1993-03-25T12:00:00 1993-03-26T12:00:00 + 1993-03-27T12:00:00 1993-03-28T12:00:00 1993-03-29T12:00:00 1993-03-30T12:00:00 1993-03-31T12:00:00 1993-04-01T12:00:00 + 1993-04-02T12:00:00 1993-04-03T12:00:00 1993-04-04T12:00:00 1993-04-05T12:00:00 1993-04-06T12:00:00 1993-04-07T12:00:00 + 1993-04-08T12:00:00 1993-04-09T12:00:00 1993-04-10T12:00:00 1993-04-11T12:00:00 1993-04-12T12:00:00 1993-04-13T12:00:00 + 1993-04-14T12:00:00 1993-04-15T12:00:00 1993-04-16T12:00:00 1993-04-17T12:00:00 1993-04-18T12:00:00 1993-04-19T12:00:00 + 1993-04-20T12:00:00 1993-04-21T12:00:00 1993-04-22T12:00:00 1993-04-23T12:00:00 1993-04-24T12:00:00 1993-04-25T12:00:00 + 1993-04-26T12:00:00 1993-04-27T12:00:00 1993-04-28T12:00:00 1993-04-29T12:00:00 1993-04-30T12:00:00 1993-05-01T12:00:00 + 1993-05-02T12:00:00 1993-05-03T12:00:00 1993-05-04T12:00:00 1993-05-05T12:00:00 1993-05-06T12:00:00 1993-05-07T12:00:00 + 1993-05-08T12:00:00 1993-05-09T12:00:00 1993-05-10T12:00:00 1993-05-11T12:00:00 1993-05-12T12:00:00 1993-05-13T12:00:00 + 1993-05-14T12:00:00 1993-05-15T12:00:00 1993-05-16T12:00:00 1993-05-17T12:00:00 1993-05-18T12:00:00 1993-05-19T12:00:00 + 1993-05-20T12:00:00 1993-05-21T12:00:00 1993-05-22T12:00:00 1993-05-23T12:00:00 1993-05-24T12:00:00 1993-05-25T12:00:00 + 1993-05-26T12:00:00 1993-05-27T12:00:00 1993-05-28T12:00:00 1993-05-29T12:00:00 1993-05-30T12:00:00 1993-05-31T12:00:00 + 1993-06-01T12:00:00 1993-06-02T12:00:00 1993-06-03T12:00:00 1993-06-04T12:00:00 1993-06-05T12:00:00 1993-06-06T12:00:00 + 1993-06-07T12:00:00 1993-06-08T12:00:00 1993-06-09T12:00:00 1993-06-10T12:00:00 1993-06-11T12:00:00 1993-06-12T12:00:00 + 1993-06-13T12:00:00 1993-06-14T12:00:00 1993-06-15T12:00:00 1993-06-16T12:00:00 1993-06-17T12:00:00 1993-06-18T12:00:00 + 1993-06-19T12:00:00 1993-06-20T12:00:00 1993-06-21T12:00:00 1993-06-22T12:00:00 1993-06-23T12:00:00 1993-06-24T12:00:00 + 1993-06-25T12:00:00 1993-06-26T12:00:00 1993-06-27T12:00:00 1993-06-28T12:00:00 1993-06-29T12:00:00 1993-06-30T12:00:00 + 1993-07-01T12:00:00 1993-07-02T12:00:00 1993-07-03T12:00:00 1993-07-04T12:00:00 1993-07-05T12:00:00 1993-07-06T12:00:00 + 1993-07-07T12:00:00 1993-07-08T12:00:00 1993-07-09T12:00:00 1993-07-10T12:00:00 1993-07-11T12:00:00 1993-07-12T12:00:00 + 1993-07-13T12:00:00 1993-07-14T12:00:00 1993-07-15T12:00:00 1993-07-16T12:00:00 1993-07-17T12:00:00 1993-07-18T12:00:00 + 1993-07-19T12:00:00 1993-07-20T12:00:00 1993-07-21T12:00:00 1993-07-22T12:00:00 1993-07-23T12:00:00 1993-07-24T12:00:00 + 1993-07-25T12:00:00 1993-07-26T12:00:00 1993-07-27T12:00:00 1993-07-28T12:00:00 1993-07-29T12:00:00 1993-07-30T12:00:00 + 1993-07-31T12:00:00 1993-08-01T12:00:00 1993-08-02T12:00:00 1993-08-03T12:00:00 1993-08-04T12:00:00 1993-08-05T12:00:00 + 1993-08-06T12:00:00 1993-08-07T12:00:00 1993-08-08T12:00:00 1993-08-09T12:00:00 1993-08-10T12:00:00 1993-08-11T12:00:00 + 1993-08-12T12:00:00 1993-08-13T12:00:00 1993-08-14T12:00:00 1993-08-15T12:00:00 1993-08-16T12:00:00 1993-08-17T12:00:00 + 1993-08-18T12:00:00 1993-08-19T12:00:00 1993-08-20T12:00:00 1993-08-21T12:00:00 1993-08-22T12:00:00 1993-08-23T12:00:00 + 1993-08-24T12:00:00 1993-08-25T12:00:00 1993-08-26T12:00:00 1993-08-27T12:00:00 1993-08-28T12:00:00 1993-08-29T12:00:00 + 1993-08-30T12:00:00 1993-08-31T12:00:00 1993-09-01T12:00:00 1993-09-02T12:00:00 1993-09-03T12:00:00 1993-09-04T12:00:00 + 1993-09-05T12:00:00 1993-09-06T12:00:00 1993-09-07T12:00:00 1993-09-08T12:00:00 1993-09-09T12:00:00 1993-09-10T12:00:00 + 1993-09-11T12:00:00 1993-09-12T12:00:00 1993-09-13T12:00:00 1993-09-14T12:00:00 1993-09-15T12:00:00 1993-09-16T12:00:00 + 1993-09-17T12:00:00 1993-09-18T12:00:00 1993-09-19T12:00:00 1993-09-20T12:00:00 1993-09-21T12:00:00 1993-09-22T12:00:00 + 1993-09-23T12:00:00 1993-09-24T12:00:00 1993-09-25T12:00:00 1993-09-26T12:00:00 1993-09-27T12:00:00 1993-09-28T12:00:00 + 1993-09-29T12:00:00 1993-09-30T12:00:00 1993-10-01T12:00:00 1993-10-02T12:00:00 1993-10-03T12:00:00 1993-10-04T12:00:00 + 1993-10-05T12:00:00 1993-10-06T12:00:00 1993-10-07T12:00:00 1993-10-08T12:00:00 1993-10-09T12:00:00 1993-10-10T12:00:00 + 1993-10-11T12:00:00 1993-10-12T12:00:00 1993-10-13T12:00:00 1993-10-14T12:00:00 1993-10-15T12:00:00 1993-10-16T12:00:00 + 1993-10-17T12:00:00 1993-10-18T12:00:00 1993-10-19T12:00:00 1993-10-20T12:00:00 1993-10-21T12:00:00 1993-10-22T12:00:00 + 1993-10-23T12:00:00 1993-10-24T12:00:00 1993-10-25T12:00:00 1993-10-26T12:00:00 1993-10-27T12:00:00 1993-10-28T12:00:00 + 1993-10-29T12:00:00 1993-10-30T12:00:00 1993-10-31T12:00:00 1993-11-01T12:00:00 1993-11-02T12:00:00 1993-11-03T12:00:00 + 1993-11-04T12:00:00 1993-11-05T12:00:00 1993-11-06T12:00:00 1993-11-07T12:00:00 1993-11-08T12:00:00 1993-11-09T12:00:00 + 1993-11-10T12:00:00 1993-11-11T12:00:00 1993-11-12T12:00:00 1993-11-13T12:00:00 1993-11-14T12:00:00 1993-11-15T12:00:00 + 1993-11-16T12:00:00 1993-11-17T12:00:00 1993-11-18T12:00:00 1993-11-19T12:00:00 1993-11-20T12:00:00 1993-11-21T12:00:00 + 1993-11-22T12:00:00 1993-11-23T12:00:00 1993-11-24T12:00:00 1993-11-25T12:00:00 1993-11-26T12:00:00 1993-11-27T12:00:00 + 1993-11-28T12:00:00 1993-11-29T12:00:00 1993-11-30T12:00:00 1993-12-01T12:00:00 1993-12-02T12:00:00 1993-12-03T12:00:00 + 1993-12-04T12:00:00 1993-12-05T12:00:00 1993-12-06T12:00:00 1993-12-07T12:00:00 1993-12-08T12:00:00 1993-12-09T12:00:00 + 1993-12-10T12:00:00 1993-12-11T12:00:00 1993-12-12T12:00:00 1993-12-13T12:00:00 1993-12-14T12:00:00 1993-12-15T12:00:00 + 1993-12-16T12:00:00 1993-12-17T12:00:00 1993-12-18T12:00:00 1993-12-19T12:00:00 1993-12-20T12:00:00 1993-12-21T12:00:00 + 1993-12-22T12:00:00 1993-12-23T12:00:00 1993-12-24T12:00:00 1993-12-25T12:00:00 1993-12-26T12:00:00 1993-12-27T12:00:00 + 1993-12-28T12:00:00 1993-12-29T12:00:00 1993-12-30T12:00:00 1993-12-31T12:00:00 1994-01-01T12:00:00 1994-01-02T12:00:00 + 1994-01-03T12:00:00 1994-01-04T12:00:00 1994-01-05T12:00:00 1994-01-06T12:00:00 1994-01-07T12:00:00 1994-01-08T12:00:00 + 1994-01-09T12:00:00 1994-01-10T12:00:00 1994-01-11T12:00:00 1994-01-12T12:00:00 1994-01-13T12:00:00 1994-01-14T12:00:00 + 1994-01-15T12:00:00 1994-01-16T12:00:00 1994-01-17T12:00:00 1994-01-18T12:00:00 1994-01-19T12:00:00 1994-01-20T12:00:00 + 1994-01-21T12:00:00 1994-01-22T12:00:00 1994-01-23T12:00:00 1994-01-24T12:00:00 1994-01-25T12:00:00 1994-01-26T12:00:00 + 1994-01-27T12:00:00 1994-01-28T12:00:00 1994-01-29T12:00:00 1994-01-30T12:00:00 1994-01-31T12:00:00 1994-02-01T12:00:00 + 1994-02-02T12:00:00 1994-02-03T12:00:00 1994-02-04T12:00:00 1994-02-05T12:00:00 1994-02-06T12:00:00 1994-02-07T12:00:00 + 1994-02-08T12:00:00 1994-02-09T12:00:00 1994-02-10T12:00:00 1994-02-11T12:00:00 1994-02-12T12:00:00 1994-02-13T12:00:00 + 1994-02-14T12:00:00 1994-02-15T12:00:00 1994-02-16T12:00:00 1994-02-17T12:00:00 1994-02-18T12:00:00 1994-02-19T12:00:00 + 1994-02-20T12:00:00 1994-02-21T12:00:00 1994-02-22T12:00:00 1994-02-23T12:00:00 1994-02-24T12:00:00 1994-02-25T12:00:00 + 1994-02-26T12:00:00 1994-02-27T12:00:00 1994-02-28T12:00:00 1994-03-01T12:00:00 1994-03-02T12:00:00 1994-03-03T12:00:00 + 1994-03-04T12:00:00 1994-03-05T12:00:00 1994-03-06T12:00:00 1994-03-07T12:00:00 1994-03-08T12:00:00 1994-03-09T12:00:00 + 1994-03-10T12:00:00 1994-03-11T12:00:00 1994-03-12T12:00:00 1994-03-13T12:00:00 1994-03-14T12:00:00 1994-03-15T12:00:00 + 1994-03-16T12:00:00 1994-03-17T12:00:00 1994-03-18T12:00:00 1994-03-19T12:00:00 1994-03-20T12:00:00 1994-03-21T12:00:00 + 1994-03-22T12:00:00 1994-03-23T12:00:00 1994-03-24T12:00:00 1994-03-25T12:00:00 1994-03-26T12:00:00 1994-03-27T12:00:00 + 1994-03-28T12:00:00 1994-03-29T12:00:00 1994-03-30T12:00:00 1994-03-31T12:00:00 1994-04-01T12:00:00 1994-04-02T12:00:00 + 1994-04-03T12:00:00 1994-04-04T12:00:00 1994-04-05T12:00:00 1994-04-06T12:00:00 1994-04-07T12:00:00 1994-04-08T12:00:00 + 1994-04-09T12:00:00 1994-04-10T12:00:00 1994-04-11T12:00:00 1994-04-12T12:00:00 1994-04-13T12:00:00 1994-04-14T12:00:00 + 1994-04-15T12:00:00 1994-04-16T12:00:00 1994-04-17T12:00:00 1994-04-18T12:00:00 1994-04-19T12:00:00 1994-04-20T12:00:00 + 1994-04-21T12:00:00 1994-04-22T12:00:00 1994-04-23T12:00:00 1994-04-24T12:00:00 1994-04-25T12:00:00 1994-04-26T12:00:00 + 1994-04-27T12:00:00 1994-04-28T12:00:00 1994-04-29T12:00:00 1994-04-30T12:00:00 1994-05-01T12:00:00 1994-05-02T12:00:00 + 1994-05-03T12:00:00 1994-05-04T12:00:00 1994-05-05T12:00:00 1994-05-06T12:00:00 1994-05-07T12:00:00 1994-05-08T12:00:00 + 1994-05-09T12:00:00 1994-05-10T12:00:00 1994-05-11T12:00:00 1994-05-12T12:00:00 1994-05-13T12:00:00 1994-05-14T12:00:00 + 1994-05-15T12:00:00 1994-05-16T12:00:00 1994-05-17T12:00:00 1994-05-18T12:00:00 1994-05-19T12:00:00 1994-05-20T12:00:00 + 1994-05-21T12:00:00 1994-05-22T12:00:00 1994-05-23T12:00:00 1994-05-24T12:00:00 1994-05-25T12:00:00 1994-05-26T12:00:00 + 1994-05-27T12:00:00 1994-05-28T12:00:00 1994-05-29T12:00:00 1994-05-30T12:00:00 1994-05-31T12:00:00 1994-06-01T12:00:00 + 1994-06-02T12:00:00 1994-06-03T12:00:00 1994-06-04T12:00:00 1994-06-05T12:00:00 1994-06-06T12:00:00 1994-06-07T12:00:00 + 1994-06-08T12:00:00 1994-06-09T12:00:00 1994-06-10T12:00:00 1994-06-11T12:00:00 1994-06-12T12:00:00 1994-06-13T12:00:00 + 1994-06-14T12:00:00 1994-06-15T12:00:00 1994-06-16T12:00:00 1994-06-17T12:00:00 1994-06-18T12:00:00 1994-06-19T12:00:00 + 1994-06-20T12:00:00 1994-06-21T12:00:00 1994-06-22T12:00:00 1994-06-23T12:00:00 1994-06-24T12:00:00 1994-06-25T12:00:00 + 1994-06-26T12:00:00 1994-06-27T12:00:00 1994-06-28T12:00:00 1994-06-29T12:00:00 1994-06-30T12:00:00 1994-07-01T12:00:00 + 1994-07-02T12:00:00 1994-07-03T12:00:00 1994-07-04T12:00:00 1994-07-05T12:00:00 1994-07-06T12:00:00 1994-07-07T12:00:00 + 1994-07-08T12:00:00 1994-07-09T12:00:00 1994-07-10T12:00:00 1994-07-11T12:00:00 1994-07-12T12:00:00 1994-07-13T12:00:00 + 1994-07-14T12:00:00 1994-07-15T12:00:00 1994-07-16T12:00:00 1994-07-17T12:00:00 1994-07-18T12:00:00 1994-07-19T12:00:00 + 1994-07-20T12:00:00 1994-07-21T12:00:00 1994-07-22T12:00:00 1994-07-23T12:00:00 1994-07-24T12:00:00 1994-07-25T12:00:00 + 1994-07-26T12:00:00 1994-07-27T12:00:00 1994-07-28T12:00:00 1994-07-29T12:00:00 1994-07-30T12:00:00 1994-07-31T12:00:00 + 1994-08-01T12:00:00 1994-08-02T12:00:00 1994-08-03T12:00:00 1994-08-04T12:00:00 1994-08-05T12:00:00 1994-08-06T12:00:00 + 1994-08-07T12:00:00 1994-08-08T12:00:00 1994-08-09T12:00:00 1994-08-10T12:00:00 1994-08-11T12:00:00 1994-08-12T12:00:00 + 1994-08-13T12:00:00 1994-08-14T12:00:00 1994-08-15T12:00:00 1994-08-16T12:00:00 1994-08-17T12:00:00 1994-08-18T12:00:00 + 1994-08-19T12:00:00 1994-08-20T12:00:00 1994-08-21T12:00:00 1994-08-22T12:00:00 1994-08-23T12:00:00 1994-08-24T12:00:00 + 1994-08-25T12:00:00 1994-08-26T12:00:00 1994-08-27T12:00:00 1994-08-28T12:00:00 1994-08-29T12:00:00 1994-08-30T12:00:00 + 1994-08-31T12:00:00 1994-09-01T12:00:00 1994-09-02T12:00:00 1994-09-03T12:00:00 1994-09-04T12:00:00 1994-09-05T12:00:00 + 1994-09-06T12:00:00 1994-09-07T12:00:00 1994-09-08T12:00:00 1994-09-09T12:00:00 1994-09-10T12:00:00 1994-09-11T12:00:00 + 1994-09-12T12:00:00 1994-09-13T12:00:00 1994-09-14T12:00:00 1994-09-15T12:00:00 1994-09-16T12:00:00 1994-09-17T12:00:00 + 1994-09-18T12:00:00 1994-09-19T12:00:00 1994-09-20T12:00:00 1994-09-21T12:00:00 1994-09-22T12:00:00 1994-09-23T12:00:00 + 1994-09-24T12:00:00 1994-09-25T12:00:00 1994-09-26T12:00:00 1994-09-27T12:00:00 1994-09-28T12:00:00 1994-09-29T12:00:00 + 1994-09-30T12:00:00 1994-10-01T12:00:00 1994-10-02T12:00:00 1994-10-03T12:00:00 1994-10-04T12:00:00 1994-10-05T12:00:00 + 1994-10-06T12:00:00 1994-10-07T12:00:00 1994-10-08T12:00:00 1994-10-09T12:00:00 1994-10-10T12:00:00 1994-10-11T12:00:00 + 1994-10-12T12:00:00 1994-10-13T12:00:00 1994-10-14T12:00:00 1994-10-15T12:00:00 1994-10-16T12:00:00 1994-10-17T12:00:00 + 1994-10-18T12:00:00 1994-10-19T12:00:00 1994-10-20T12:00:00 1994-10-21T12:00:00 1994-10-22T12:00:00 1994-10-23T12:00:00 + 1994-10-24T12:00:00 1994-10-25T12:00:00 1994-10-26T12:00:00 1994-10-27T12:00:00 1994-10-28T12:00:00 1994-10-29T12:00:00 + 1994-10-30T12:00:00 1994-10-31T12:00:00 1994-11-01T12:00:00 1994-11-02T12:00:00 1994-11-03T12:00:00 1994-11-04T12:00:00 + 1994-11-05T12:00:00 1994-11-06T12:00:00 1994-11-07T12:00:00 1994-11-08T12:00:00 1994-11-09T12:00:00 1994-11-10T12:00:00 + 1994-11-11T12:00:00 1994-11-12T12:00:00 1994-11-13T12:00:00 1994-11-14T12:00:00 1994-11-15T12:00:00 1994-11-16T12:00:00 + 1994-11-17T12:00:00 1994-11-18T12:00:00 1994-11-19T12:00:00 1994-11-20T12:00:00 1994-11-21T12:00:00 1994-11-22T12:00:00 + 1994-11-23T12:00:00 1994-11-24T12:00:00 1994-11-25T12:00:00 1994-11-26T12:00:00 1994-11-27T12:00:00 1994-11-28T12:00:00 + 1994-11-29T12:00:00 1994-11-30T12:00:00 1994-12-01T12:00:00 1994-12-02T12:00:00 1994-12-03T12:00:00 1994-12-04T12:00:00 + 1994-12-05T12:00:00 1994-12-06T12:00:00 1994-12-07T12:00:00 1994-12-08T12:00:00 1994-12-09T12:00:00 1994-12-10T12:00:00 + 1994-12-11T12:00:00 1994-12-12T12:00:00 1994-12-13T12:00:00 1994-12-14T12:00:00 1994-12-15T12:00:00 1994-12-16T12:00:00 + 1994-12-17T12:00:00 1994-12-18T12:00:00 1994-12-19T12:00:00 1994-12-20T12:00:00 1994-12-21T12:00:00 1994-12-22T12:00:00 + 1994-12-23T12:00:00 1994-12-24T12:00:00 1994-12-25T12:00:00 1994-12-26T12:00:00 1994-12-27T12:00:00 1994-12-28T12:00:00 + 1994-12-29T12:00:00 1994-12-30T12:00:00 1994-12-31T12:00:00 1995-01-01T12:00:00 1995-01-02T12:00:00 1995-01-03T12:00:00 + 1995-01-04T12:00:00 1995-01-05T12:00:00 1995-01-06T12:00:00 1995-01-07T12:00:00 1995-01-08T12:00:00 1995-01-09T12:00:00 + 1995-01-10T12:00:00 1995-01-11T12:00:00 1995-01-12T12:00:00 1995-01-13T12:00:00 1995-01-14T12:00:00 1995-01-15T12:00:00 + 1995-01-16T12:00:00 1995-01-17T12:00:00 1995-01-18T12:00:00 1995-01-19T12:00:00 1995-01-20T12:00:00 1995-01-21T12:00:00 + 1995-01-22T12:00:00 1995-01-23T12:00:00 1995-01-24T12:00:00 1995-01-25T12:00:00 1995-01-26T12:00:00 1995-01-27T12:00:00 + 1995-01-28T12:00:00 1995-01-29T12:00:00 1995-01-30T12:00:00 1995-01-31T12:00:00 1995-02-01T12:00:00 1995-02-02T12:00:00 + 1995-02-03T12:00:00 1995-02-04T12:00:00 1995-02-05T12:00:00 1995-02-06T12:00:00 1995-02-07T12:00:00 1995-02-08T12:00:00 + 1995-02-09T12:00:00 1995-02-10T12:00:00 1995-02-11T12:00:00 1995-02-12T12:00:00 1995-02-13T12:00:00 1995-02-14T12:00:00 + 1995-02-15T12:00:00 1995-02-16T12:00:00 1995-02-17T12:00:00 1995-02-18T12:00:00 1995-02-19T12:00:00 1995-02-20T12:00:00 + 1995-02-21T12:00:00 1995-02-22T12:00:00 1995-02-23T12:00:00 1995-02-24T12:00:00 1995-02-25T12:00:00 1995-02-26T12:00:00 + 1995-02-27T12:00:00 1995-02-28T12:00:00 1995-03-01T12:00:00 1995-03-02T12:00:00 1995-03-03T12:00:00 1995-03-04T12:00:00 + 1995-03-05T12:00:00 1995-03-06T12:00:00 1995-03-07T12:00:00 1995-03-08T12:00:00 1995-03-09T12:00:00 1995-03-10T12:00:00 + 1995-03-11T12:00:00 1995-03-12T12:00:00 1995-03-13T12:00:00 1995-03-14T12:00:00 1995-03-15T12:00:00 1995-03-16T12:00:00 + 1995-03-17T12:00:00 1995-03-18T12:00:00 1995-03-19T12:00:00 1995-03-20T12:00:00 1995-03-21T12:00:00 1995-03-22T12:00:00 + 1995-03-23T12:00:00 1995-03-24T12:00:00 1995-03-25T12:00:00 1995-03-26T12:00:00 1995-03-27T12:00:00 1995-03-28T12:00:00 + 1995-03-29T12:00:00 1995-03-30T12:00:00 1995-03-31T12:00:00 1995-04-01T12:00:00 1995-04-02T12:00:00 1995-04-03T12:00:00 + 1995-04-04T12:00:00 1995-04-05T12:00:00 1995-04-06T12:00:00 1995-04-07T12:00:00 1995-04-08T12:00:00 1995-04-09T12:00:00 + 1995-04-10T12:00:00 1995-04-11T12:00:00 1995-04-12T12:00:00 1995-04-13T12:00:00 1995-04-14T12:00:00 1995-04-15T12:00:00 + 1995-04-16T12:00:00 1995-04-17T12:00:00 1995-04-18T12:00:00 1995-04-19T12:00:00 1995-04-20T12:00:00 1995-04-21T12:00:00 + 1995-04-22T12:00:00 1995-04-23T12:00:00 1995-04-24T12:00:00 1995-04-25T12:00:00 1995-04-26T12:00:00 1995-04-27T12:00:00 + 1995-04-28T12:00:00 1995-04-29T12:00:00 1995-04-30T12:00:00 1995-05-01T12:00:00 1995-05-02T12:00:00 1995-05-03T12:00:00 + 1995-05-04T12:00:00 1995-05-05T12:00:00 1995-05-06T12:00:00 1995-05-07T12:00:00 1995-05-08T12:00:00 1995-05-09T12:00:00 + 1995-05-10T12:00:00 1995-05-11T12:00:00 1995-05-12T12:00:00 1995-05-13T12:00:00 1995-05-14T12:00:00 1995-05-15T12:00:00 + 1995-05-16T12:00:00 1995-05-17T12:00:00 1995-05-18T12:00:00 1995-05-19T12:00:00 1995-05-20T12:00:00 1995-05-21T12:00:00 + 1995-05-22T12:00:00 1995-05-23T12:00:00 1995-05-24T12:00:00 1995-05-25T12:00:00 1995-05-26T12:00:00 1995-05-27T12:00:00 + 1995-05-28T12:00:00 1995-05-29T12:00:00 1995-05-30T12:00:00 1995-05-31T12:00:00 1995-06-01T12:00:00 1995-06-02T12:00:00 + 1995-06-03T12:00:00 1995-06-04T12:00:00 1995-06-05T12:00:00 1995-06-06T12:00:00 1995-06-07T12:00:00 1995-06-08T12:00:00 + 1995-06-09T12:00:00 1995-06-10T12:00:00 1995-06-11T12:00:00 1995-06-12T12:00:00 1995-06-13T12:00:00 1995-06-14T12:00:00 + 1995-06-15T12:00:00 1995-06-16T12:00:00 1995-06-17T12:00:00 1995-06-18T12:00:00 1995-06-19T12:00:00 1995-06-20T12:00:00 + 1995-06-21T12:00:00 1995-06-22T12:00:00 1995-06-23T12:00:00 1995-06-24T12:00:00 1995-06-25T12:00:00 1995-06-26T12:00:00 + 1995-06-27T12:00:00 1995-06-28T12:00:00 1995-06-29T12:00:00 1995-06-30T12:00:00 1995-07-01T12:00:00 1995-07-02T12:00:00 + 1995-07-03T12:00:00 1995-07-04T12:00:00 1995-07-05T12:00:00 1995-07-06T12:00:00 1995-07-07T12:00:00 1995-07-08T12:00:00 + 1995-07-09T12:00:00 1995-07-10T12:00:00 1995-07-11T12:00:00 1995-07-12T12:00:00 1995-07-13T12:00:00 1995-07-14T12:00:00 + 1995-07-15T12:00:00 1995-07-16T12:00:00 1995-07-17T12:00:00 1995-07-18T12:00:00 1995-07-19T12:00:00 1995-07-20T12:00:00 + 1995-07-21T12:00:00 1995-07-22T12:00:00 1995-07-23T12:00:00 1995-07-24T12:00:00 1995-07-25T12:00:00 1995-07-26T12:00:00 + 1995-07-27T12:00:00 1995-07-28T12:00:00 1995-07-29T12:00:00 1995-07-30T12:00:00 1995-07-31T12:00:00 1995-08-01T12:00:00 + 1995-08-02T12:00:00 1995-08-03T12:00:00 1995-08-04T12:00:00 1995-08-05T12:00:00 1995-08-06T12:00:00 1995-08-07T12:00:00 + 1995-08-08T12:00:00 1995-08-09T12:00:00 1995-08-10T12:00:00 1995-08-11T12:00:00 1995-08-12T12:00:00 1995-08-13T12:00:00 + 1995-08-14T12:00:00 1995-08-15T12:00:00 1995-08-16T12:00:00 1995-08-17T12:00:00 1995-08-18T12:00:00 1995-08-19T12:00:00 + 1995-08-20T12:00:00 1995-08-21T12:00:00 1995-08-22T12:00:00 1995-08-23T12:00:00 1995-08-24T12:00:00 1995-08-25T12:00:00 + 1995-08-26T12:00:00 1995-08-27T12:00:00 1995-08-28T12:00:00 1995-08-29T12:00:00 1995-08-30T12:00:00 1995-08-31T12:00:00 + 1995-09-01T12:00:00 1995-09-02T12:00:00 1995-09-03T12:00:00 1995-09-04T12:00:00 1995-09-05T12:00:00 1995-09-06T12:00:00 + 1995-09-07T12:00:00 1995-09-08T12:00:00 1995-09-09T12:00:00 1995-09-10T12:00:00 1995-09-11T12:00:00 1995-09-12T12:00:00 + 1995-09-13T12:00:00 1995-09-14T12:00:00 1995-09-15T12:00:00 1995-09-16T12:00:00 1995-09-17T12:00:00 1995-09-18T12:00:00 + 1995-09-19T12:00:00 1995-09-20T12:00:00 1995-09-21T12:00:00 1995-09-22T12:00:00 1995-09-23T12:00:00 1995-09-24T12:00:00 + 1995-09-25T12:00:00 1995-09-26T12:00:00 1995-09-27T12:00:00 1995-09-28T12:00:00 1995-09-29T12:00:00 1995-09-30T12:00:00 + 1995-10-01T12:00:00 1995-10-02T12:00:00 1995-10-03T12:00:00 1995-10-04T12:00:00 1995-10-05T12:00:00 1995-10-06T12:00:00 + 1995-10-07T12:00:00 1995-10-08T12:00:00 1995-10-09T12:00:00 1995-10-10T12:00:00 1995-10-11T12:00:00 1995-10-12T12:00:00 + 1995-10-13T12:00:00 1995-10-14T12:00:00 1995-10-15T12:00:00 1995-10-16T12:00:00 1995-10-17T12:00:00 1995-10-18T12:00:00 + 1995-10-19T12:00:00 1995-10-20T12:00:00 1995-10-21T12:00:00 1995-10-22T12:00:00 1995-10-23T12:00:00 1995-10-24T12:00:00 + 1995-10-25T12:00:00 1995-10-26T12:00:00 1995-10-27T12:00:00 1995-10-28T12:00:00 1995-10-29T12:00:00 1995-10-30T12:00:00 + 1995-10-31T12:00:00 1995-11-01T12:00:00 1995-11-02T12:00:00 1995-11-03T12:00:00 1995-11-04T12:00:00 1995-11-05T12:00:00 + 1995-11-06T12:00:00 1995-11-07T12:00:00 1995-11-08T12:00:00 1995-11-09T12:00:00 1995-11-10T12:00:00 1995-11-11T12:00:00 + 1995-11-12T12:00:00 1995-11-13T12:00:00 1995-11-14T12:00:00 1995-11-15T12:00:00 1995-11-16T12:00:00 1995-11-17T12:00:00 + 1995-11-18T12:00:00 1995-11-19T12:00:00 1995-11-20T12:00:00 1995-11-21T12:00:00 1995-11-22T12:00:00 1995-11-23T12:00:00 + 1995-11-24T12:00:00 1995-11-25T12:00:00 1995-11-26T12:00:00 1995-11-27T12:00:00 1995-11-28T12:00:00 1995-11-29T12:00:00 + 1995-11-30T12:00:00 1995-12-01T12:00:00 1995-12-02T12:00:00 1995-12-03T12:00:00 1995-12-04T12:00:00 1995-12-05T12:00:00 + 1995-12-06T12:00:00 1995-12-07T12:00:00 1995-12-08T12:00:00 1995-12-09T12:00:00 1995-12-10T12:00:00 1995-12-11T12:00:00 + 1995-12-12T12:00:00 1995-12-13T12:00:00 1995-12-14T12:00:00 1995-12-15T12:00:00 1995-12-16T12:00:00 1995-12-17T12:00:00 + 1995-12-18T12:00:00 1995-12-19T12:00:00 1995-12-20T12:00:00 1995-12-21T12:00:00 1995-12-22T12:00:00 1995-12-23T12:00:00 + 1995-12-24T12:00:00 1995-12-25T12:00:00 1995-12-26T12:00:00 1995-12-27T12:00:00 1995-12-28T12:00:00 1995-12-29T12:00:00 + 1995-12-30T12:00:00 1995-12-31T12:00:00 1996-01-01T12:00:00 1996-01-02T12:00:00 1996-01-03T12:00:00 1996-01-04T12:00:00 + 1996-01-05T12:00:00 1996-01-06T12:00:00 1996-01-07T12:00:00 1996-01-08T12:00:00 1996-01-09T12:00:00 1996-01-10T12:00:00 + 1996-01-11T12:00:00 1996-01-12T12:00:00 1996-01-13T12:00:00 1996-01-14T12:00:00 1996-01-15T12:00:00 1996-01-16T12:00:00 + 1996-01-17T12:00:00 1996-01-18T12:00:00 1996-01-19T12:00:00 1996-01-20T12:00:00 1996-01-21T12:00:00 1996-01-22T12:00:00 + 1996-01-23T12:00:00 1996-01-24T12:00:00 1996-01-25T12:00:00 1996-01-26T12:00:00 1996-01-27T12:00:00 1996-01-28T12:00:00 + 1996-01-29T12:00:00 1996-01-30T12:00:00 1996-01-31T12:00:00 1996-02-01T12:00:00 1996-02-02T12:00:00 1996-02-03T12:00:00 + 1996-02-04T12:00:00 1996-02-05T12:00:00 1996-02-06T12:00:00 1996-02-07T12:00:00 1996-02-08T12:00:00 1996-02-09T12:00:00 + 1996-02-10T12:00:00 1996-02-11T12:00:00 1996-02-12T12:00:00 1996-02-13T12:00:00 1996-02-14T12:00:00 1996-02-15T12:00:00 + 1996-02-16T12:00:00 1996-02-17T12:00:00 1996-02-18T12:00:00 1996-02-19T12:00:00 1996-02-20T12:00:00 1996-02-21T12:00:00 + 1996-02-22T12:00:00 1996-02-23T12:00:00 1996-02-24T12:00:00 1996-02-25T12:00:00 1996-02-26T12:00:00 1996-02-27T12:00:00 + 1996-02-28T12:00:00 1996-02-29T12:00:00 1996-03-01T12:00:00 1996-03-02T12:00:00 1996-03-03T12:00:00 1996-03-04T12:00:00 + 1996-03-05T12:00:00 1996-03-06T12:00:00 1996-03-07T12:00:00 1996-03-08T12:00:00 1996-03-09T12:00:00 1996-03-10T12:00:00 + 1996-03-11T12:00:00 1996-03-12T12:00:00 1996-03-13T12:00:00 1996-03-14T12:00:00 1996-03-15T12:00:00 1996-03-16T12:00:00 + 1996-03-17T12:00:00 1996-03-18T12:00:00 1996-03-19T12:00:00 1996-03-20T12:00:00 1996-03-21T12:00:00 1996-03-22T12:00:00 + 1996-03-23T12:00:00 1996-03-24T12:00:00 1996-03-25T12:00:00 1996-03-26T12:00:00 1996-03-27T12:00:00 1996-03-28T12:00:00 + 1996-03-29T12:00:00 1996-03-30T12:00:00 1996-03-31T12:00:00 1996-04-01T12:00:00 1996-04-02T12:00:00 1996-04-03T12:00:00 + 1996-04-04T12:00:00 1996-04-05T12:00:00 1996-04-06T12:00:00 1996-04-07T12:00:00 1996-04-08T12:00:00 1996-04-09T12:00:00 + 1996-04-10T12:00:00 1996-04-11T12:00:00 1996-04-12T12:00:00 1996-04-13T12:00:00 1996-04-14T12:00:00 1996-04-15T12:00:00 + 1996-04-16T12:00:00 1996-04-17T12:00:00 1996-04-18T12:00:00 1996-04-19T12:00:00 1996-04-20T12:00:00 1996-04-21T12:00:00 + 1996-04-22T12:00:00 1996-04-23T12:00:00 1996-04-24T12:00:00 1996-04-25T12:00:00 1996-04-26T12:00:00 1996-04-27T12:00:00 + 1996-04-28T12:00:00 1996-04-29T12:00:00 1996-04-30T12:00:00 1996-05-01T12:00:00 1996-05-02T12:00:00 1996-05-03T12:00:00 + 1996-05-04T12:00:00 1996-05-05T12:00:00 1996-05-06T12:00:00 1996-05-07T12:00:00 1996-05-08T12:00:00 1996-05-09T12:00:00 + 1996-05-10T12:00:00 1996-05-11T12:00:00 1996-05-12T12:00:00 1996-05-13T12:00:00 1996-05-14T12:00:00 1996-05-15T12:00:00 + 1996-05-16T12:00:00 1996-05-17T12:00:00 1996-05-18T12:00:00 1996-05-19T12:00:00 1996-05-20T12:00:00 1996-05-21T12:00:00 + 1996-05-22T12:00:00 1996-05-23T12:00:00 1996-05-24T12:00:00 1996-05-25T12:00:00 1996-05-26T12:00:00 1996-05-27T12:00:00 + 1996-05-28T12:00:00 1996-05-29T12:00:00 1996-05-30T12:00:00 1996-05-31T12:00:00 1996-06-01T12:00:00 1996-06-02T12:00:00 + 1996-06-03T12:00:00 1996-06-04T12:00:00 1996-06-05T12:00:00 1996-06-06T12:00:00 1996-06-07T12:00:00 1996-06-08T12:00:00 + 1996-06-09T12:00:00 1996-06-10T12:00:00 1996-06-11T12:00:00 1996-06-12T12:00:00 1996-06-13T12:00:00 1996-06-14T12:00:00 + 1996-06-15T12:00:00 1996-06-16T12:00:00 1996-06-17T12:00:00 1996-06-18T12:00:00 1996-06-19T12:00:00 1996-06-20T12:00:00 + 1996-06-21T12:00:00 1996-06-22T12:00:00 1996-06-23T12:00:00 1996-06-24T12:00:00 1996-06-25T12:00:00 1996-06-26T12:00:00 + 1996-06-27T12:00:00 1996-06-28T12:00:00 1996-06-29T12:00:00 1996-06-30T12:00:00 1996-07-01T12:00:00 1996-07-02T12:00:00 + 1996-07-03T12:00:00 1996-07-04T12:00:00 1996-07-05T12:00:00 1996-07-06T12:00:00 1996-07-07T12:00:00 1996-07-08T12:00:00 + 1996-07-09T12:00:00 1996-07-10T12:00:00 1996-07-11T12:00:00 1996-07-12T12:00:00 1996-07-13T12:00:00 1996-07-14T12:00:00 + 1996-07-15T12:00:00 1996-07-16T12:00:00 1996-07-17T12:00:00 1996-07-18T12:00:00 1996-07-19T12:00:00 1996-07-20T12:00:00 + 1996-07-21T12:00:00 1996-07-22T12:00:00 1996-07-23T12:00:00 1996-07-24T12:00:00 1996-07-25T12:00:00 1996-07-26T12:00:00 + 1996-07-27T12:00:00 1996-07-28T12:00:00 1996-07-29T12:00:00 1996-07-30T12:00:00 1996-07-31T12:00:00 1996-08-01T12:00:00 + 1996-08-02T12:00:00 1996-08-03T12:00:00 1996-08-04T12:00:00 1996-08-05T12:00:00 1996-08-06T12:00:00 1996-08-07T12:00:00 + 1996-08-08T12:00:00 1996-08-09T12:00:00 1996-08-10T12:00:00 1996-08-11T12:00:00 1996-08-12T12:00:00 1996-08-13T12:00:00 + 1996-08-14T12:00:00 1996-08-15T12:00:00 1996-08-16T12:00:00 1996-08-17T12:00:00 1996-08-18T12:00:00 1996-08-19T12:00:00 + 1996-08-20T12:00:00 1996-08-21T12:00:00 1996-08-22T12:00:00 1996-08-23T12:00:00 1996-08-24T12:00:00 1996-08-25T12:00:00 + 1996-08-26T12:00:00 1996-08-27T12:00:00 1996-08-28T12:00:00 1996-08-29T12:00:00 1996-08-30T12:00:00 1996-08-31T12:00:00 + 1996-09-01T12:00:00 1996-09-02T12:00:00 1996-09-03T12:00:00 1996-09-04T12:00:00 1996-09-05T12:00:00 1996-09-06T12:00:00 + 1996-09-07T12:00:00 1996-09-08T12:00:00 1996-09-09T12:00:00 1996-09-10T12:00:00 1996-09-11T12:00:00 1996-09-12T12:00:00 + 1996-09-13T12:00:00 1996-09-14T12:00:00 1996-09-15T12:00:00 1996-09-16T12:00:00 1996-09-17T12:00:00 1996-09-18T12:00:00 + 1996-09-19T12:00:00 1996-09-20T12:00:00 1996-09-21T12:00:00 1996-09-22T12:00:00 1996-09-23T12:00:00 1996-09-24T12:00:00 + 1996-09-25T12:00:00 1996-09-26T12:00:00 1996-09-27T12:00:00 1996-09-28T12:00:00 1996-09-29T12:00:00 1996-09-30T12:00:00 + 1996-10-01T12:00:00 1996-10-02T12:00:00 1996-10-03T12:00:00 1996-10-04T12:00:00 1996-10-05T12:00:00 1996-10-06T12:00:00 + 1996-10-07T12:00:00 1996-10-08T12:00:00 1996-10-09T12:00:00 1996-10-10T12:00:00 1996-10-11T12:00:00 1996-10-12T12:00:00 + 1996-10-13T12:00:00 1996-10-14T12:00:00 1996-10-15T12:00:00 1996-10-16T12:00:00 1996-10-17T12:00:00 1996-10-18T12:00:00 + 1996-10-19T12:00:00 1996-10-20T12:00:00 1996-10-21T12:00:00 1996-10-22T12:00:00 1996-10-23T12:00:00 1996-10-24T12:00:00 + 1996-10-25T12:00:00 1996-10-26T12:00:00 1996-10-27T12:00:00 1996-10-28T12:00:00 1996-10-29T12:00:00 1996-10-30T12:00:00 + 1996-10-31T12:00:00 1996-11-01T12:00:00 1996-11-02T12:00:00 1996-11-03T12:00:00 1996-11-04T12:00:00 1996-11-05T12:00:00 + 1996-11-06T12:00:00 1996-11-07T12:00:00 1996-11-08T12:00:00 1996-11-09T12:00:00 1996-11-10T12:00:00 1996-11-11T12:00:00 + 1996-11-12T12:00:00 1996-11-13T12:00:00 1996-11-14T12:00:00 1996-11-15T12:00:00 1996-11-16T12:00:00 1996-11-17T12:00:00 + 1996-11-18T12:00:00 1996-11-19T12:00:00 1996-11-20T12:00:00 1996-11-21T12:00:00 1996-11-22T12:00:00 1996-11-23T12:00:00 + 1996-11-24T12:00:00 1996-11-25T12:00:00 1996-11-26T12:00:00 1996-11-27T12:00:00 1996-11-28T12:00:00 1996-11-29T12:00:00 + 1996-11-30T12:00:00 1996-12-01T12:00:00 1996-12-02T12:00:00 1996-12-03T12:00:00 1996-12-04T12:00:00 1996-12-05T12:00:00 + 1996-12-06T12:00:00 1996-12-07T12:00:00 1996-12-08T12:00:00 1996-12-09T12:00:00 1996-12-10T12:00:00 1996-12-11T12:00:00 + 1996-12-12T12:00:00 1996-12-13T12:00:00 1996-12-14T12:00:00 1996-12-15T12:00:00 1996-12-16T12:00:00 1996-12-17T12:00:00 + 1996-12-18T12:00:00 1996-12-19T12:00:00 1996-12-20T12:00:00 1996-12-21T12:00:00 1996-12-22T12:00:00 1996-12-23T12:00:00 + 1996-12-24T12:00:00 1996-12-25T12:00:00 1996-12-26T12:00:00 1996-12-27T12:00:00 1996-12-28T12:00:00 1996-12-29T12:00:00 + 1996-12-30T12:00:00 1996-12-31T12:00:00 1997-01-01T12:00:00 1997-01-02T12:00:00 1997-01-03T12:00:00 1997-01-04T12:00:00 + 1997-01-05T12:00:00 1997-01-06T12:00:00 1997-01-07T12:00:00 1997-01-08T12:00:00 1997-01-09T12:00:00 1997-01-10T12:00:00 + 1997-01-11T12:00:00 1997-01-12T12:00:00 1997-01-13T12:00:00 1997-01-14T12:00:00 1997-01-15T12:00:00 1997-01-16T12:00:00 + 1997-01-17T12:00:00 1997-01-18T12:00:00 1997-01-19T12:00:00 1997-01-20T12:00:00 1997-01-21T12:00:00 1997-01-22T12:00:00 + 1997-01-23T12:00:00 1997-01-24T12:00:00 1997-01-25T12:00:00 1997-01-26T12:00:00 1997-01-27T12:00:00 1997-01-28T12:00:00 + 1997-01-29T12:00:00 1997-01-30T12:00:00 1997-01-31T12:00:00 1997-02-01T12:00:00 1997-02-02T12:00:00 1997-02-03T12:00:00 + 1997-02-04T12:00:00 1997-02-05T12:00:00 1997-02-06T12:00:00 1997-02-07T12:00:00 1997-02-08T12:00:00 1997-02-09T12:00:00 + 1997-02-10T12:00:00 1997-02-11T12:00:00 1997-02-12T12:00:00 1997-02-13T12:00:00 1997-02-14T12:00:00 1997-02-15T12:00:00 + 1997-02-16T12:00:00 1997-02-17T12:00:00 1997-02-18T12:00:00 1997-02-19T12:00:00 1997-02-20T12:00:00 1997-02-21T12:00:00 + 1997-02-22T12:00:00 1997-02-23T12:00:00 1997-02-24T12:00:00 1997-02-25T12:00:00 1997-02-26T12:00:00 1997-02-27T12:00:00 + 1997-02-28T12:00:00 1997-03-01T12:00:00 1997-03-02T12:00:00 1997-03-03T12:00:00 1997-03-04T12:00:00 1997-03-05T12:00:00 + 1997-03-06T12:00:00 1997-03-07T12:00:00 1997-03-08T12:00:00 1997-03-09T12:00:00 1997-03-10T12:00:00 1997-03-11T12:00:00 + 1997-03-12T12:00:00 1997-03-13T12:00:00 1997-03-14T12:00:00 1997-03-15T12:00:00 1997-03-16T12:00:00 1997-03-17T12:00:00 + 1997-03-18T12:00:00 1997-03-19T12:00:00 1997-03-20T12:00:00 1997-03-21T12:00:00 1997-03-22T12:00:00 1997-03-23T12:00:00 + 1997-03-24T12:00:00 1997-03-25T12:00:00 1997-03-26T12:00:00 1997-03-27T12:00:00 1997-03-28T12:00:00 1997-03-29T12:00:00 + 1997-03-30T12:00:00 1997-03-31T12:00:00 1997-04-01T12:00:00 1997-04-02T12:00:00 1997-04-03T12:00:00 1997-04-04T12:00:00 + 1997-04-05T12:00:00 1997-04-06T12:00:00 1997-04-07T12:00:00 1997-04-08T12:00:00 1997-04-09T12:00:00 1997-04-10T12:00:00 + 1997-04-11T12:00:00 1997-04-12T12:00:00 1997-04-13T12:00:00 1997-04-14T12:00:00 1997-04-15T12:00:00 1997-04-16T12:00:00 + 1997-04-17T12:00:00 1997-04-18T12:00:00 1997-04-19T12:00:00 1997-04-20T12:00:00 1997-04-21T12:00:00 1997-04-22T12:00:00 + 1997-04-23T12:00:00 1997-04-24T12:00:00 1997-04-25T12:00:00 1997-04-26T12:00:00 1997-04-27T12:00:00 1997-04-28T12:00:00 + 1997-04-29T12:00:00 1997-04-30T12:00:00 1997-05-01T12:00:00 1997-05-02T12:00:00 1997-05-03T12:00:00 1997-05-04T12:00:00 + 1997-05-05T12:00:00 1997-05-06T12:00:00 1997-05-07T12:00:00 1997-05-08T12:00:00 1997-05-09T12:00:00 1997-05-10T12:00:00 + 1997-05-11T12:00:00 1997-05-12T12:00:00 1997-05-13T12:00:00 1997-05-14T12:00:00 1997-05-15T12:00:00 1997-05-16T12:00:00 + 1997-05-17T12:00:00 1997-05-18T12:00:00 1997-05-19T12:00:00 1997-05-20T12:00:00 1997-05-21T12:00:00 1997-05-22T12:00:00 + 1997-05-23T12:00:00 1997-05-24T12:00:00 1997-05-25T12:00:00 1997-05-26T12:00:00 1997-05-27T12:00:00 1997-05-28T12:00:00 + 1997-05-29T12:00:00 1997-05-30T12:00:00 1997-05-31T12:00:00 1997-06-01T12:00:00 1997-06-02T12:00:00 1997-06-03T12:00:00 + 1997-06-04T12:00:00 1997-06-05T12:00:00 1997-06-06T12:00:00 1997-06-07T12:00:00 1997-06-08T12:00:00 1997-06-09T12:00:00 + 1997-06-10T12:00:00 1997-06-11T12:00:00 1997-06-12T12:00:00 1997-06-13T12:00:00 1997-06-14T12:00:00 1997-06-15T12:00:00 + 1997-06-16T12:00:00 1997-06-17T12:00:00 1997-06-18T12:00:00 1997-06-19T12:00:00 1997-06-20T12:00:00 1997-06-21T12:00:00 + 1997-06-22T12:00:00 1997-06-23T12:00:00 1997-06-24T12:00:00 1997-06-25T12:00:00 1997-06-26T12:00:00 1997-06-27T12:00:00 + 1997-06-28T12:00:00 1997-06-29T12:00:00 1997-06-30T12:00:00 1997-07-01T12:00:00 1997-07-02T12:00:00 1997-07-03T12:00:00 + 1997-07-04T12:00:00 1997-07-05T12:00:00 1997-07-06T12:00:00 1997-07-07T12:00:00 1997-07-08T12:00:00 1997-07-09T12:00:00 + 1997-07-10T12:00:00 1997-07-11T12:00:00 1997-07-12T12:00:00 1997-07-13T12:00:00 1997-07-14T12:00:00 1997-07-15T12:00:00 + 1997-07-16T12:00:00 1997-07-17T12:00:00 1997-07-18T12:00:00 1997-07-19T12:00:00 1997-07-20T12:00:00 1997-07-21T12:00:00 + 1997-07-22T12:00:00 1997-07-23T12:00:00 1997-07-24T12:00:00 1997-07-25T12:00:00 1997-07-26T12:00:00 1997-07-27T12:00:00 + 1997-07-28T12:00:00 1997-07-29T12:00:00 1997-07-30T12:00:00 1997-07-31T12:00:00 1997-08-01T12:00:00 1997-08-02T12:00:00 + 1997-08-03T12:00:00 1997-08-04T12:00:00 1997-08-05T12:00:00 1997-08-06T12:00:00 1997-08-07T12:00:00 1997-08-08T12:00:00 + 1997-08-09T12:00:00 1997-08-10T12:00:00 1997-08-11T12:00:00 1997-08-12T12:00:00 1997-08-13T12:00:00 1997-08-14T12:00:00 + 1997-08-15T12:00:00 1997-08-16T12:00:00 1997-08-17T12:00:00 1997-08-18T12:00:00 1997-08-19T12:00:00 1997-08-20T12:00:00 + 1997-08-21T12:00:00 1997-08-22T12:00:00 1997-08-23T12:00:00 1997-08-24T12:00:00 1997-08-25T12:00:00 1997-08-26T12:00:00 + 1997-08-27T12:00:00 1997-08-28T12:00:00 1997-08-29T12:00:00 1997-08-30T12:00:00 1997-08-31T12:00:00 1997-09-01T12:00:00 + 1997-09-02T12:00:00 1997-09-03T12:00:00 1997-09-04T12:00:00 1997-09-05T12:00:00 1997-09-06T12:00:00 1997-09-07T12:00:00 + 1997-09-08T12:00:00 1997-09-09T12:00:00 1997-09-10T12:00:00 1997-09-11T12:00:00 1997-09-12T12:00:00 1997-09-13T12:00:00 + 1997-09-14T12:00:00 1997-09-15T12:00:00 1997-09-16T12:00:00 1997-09-17T12:00:00 1997-09-18T12:00:00 1997-09-19T12:00:00 + 1997-09-20T12:00:00 1997-09-21T12:00:00 1997-09-22T12:00:00 1997-09-23T12:00:00 1997-09-24T12:00:00 1997-09-25T12:00:00 + 1997-09-26T12:00:00 1997-09-27T12:00:00 1997-09-28T12:00:00 1997-09-29T12:00:00 1997-09-30T12:00:00 1997-10-01T12:00:00 + 1997-10-02T12:00:00 1997-10-03T12:00:00 1997-10-04T12:00:00 1997-10-05T12:00:00 1997-10-06T12:00:00 1997-10-07T12:00:00 + 1997-10-08T12:00:00 1997-10-09T12:00:00 1997-10-10T12:00:00 1997-10-11T12:00:00 1997-10-12T12:00:00 1997-10-13T12:00:00 + 1997-10-14T12:00:00 1997-10-15T12:00:00 1997-10-16T12:00:00 1997-10-17T12:00:00 1997-10-18T12:00:00 1997-10-19T12:00:00 + 1997-10-20T12:00:00 1997-10-21T12:00:00 1997-10-22T12:00:00 1997-10-23T12:00:00 1997-10-24T12:00:00 1997-10-25T12:00:00 + 1997-10-26T12:00:00 1997-10-27T12:00:00 1997-10-28T12:00:00 1997-10-29T12:00:00 1997-10-30T12:00:00 1997-10-31T12:00:00 + 1997-11-01T12:00:00 1997-11-02T12:00:00 1997-11-03T12:00:00 1997-11-04T12:00:00 1997-11-05T12:00:00 1997-11-06T12:00:00 + 1997-11-07T12:00:00 1997-11-08T12:00:00 1997-11-09T12:00:00 1997-11-10T12:00:00 1997-11-11T12:00:00 1997-11-12T12:00:00 + 1997-11-13T12:00:00 1997-11-14T12:00:00 1997-11-15T12:00:00 1997-11-16T12:00:00 1997-11-17T12:00:00 1997-11-18T12:00:00 + 1997-11-19T12:00:00 1997-11-20T12:00:00 1997-11-21T12:00:00 1997-11-22T12:00:00 1997-11-23T12:00:00 1997-11-24T12:00:00 + 1997-11-25T12:00:00 1997-11-26T12:00:00 1997-11-27T12:00:00 1997-11-28T12:00:00 1997-11-29T12:00:00 1997-11-30T12:00:00 + 1997-12-01T12:00:00 1997-12-02T12:00:00 1997-12-03T12:00:00 1997-12-04T12:00:00 1997-12-05T12:00:00 1997-12-06T12:00:00 + 1997-12-07T12:00:00 1997-12-08T12:00:00 1997-12-09T12:00:00 1997-12-10T12:00:00 1997-12-11T12:00:00 1997-12-12T12:00:00 + 1997-12-13T12:00:00 1997-12-14T12:00:00 1997-12-15T12:00:00 1997-12-16T12:00:00 1997-12-17T12:00:00 1997-12-18T12:00:00 + 1997-12-19T12:00:00 1997-12-20T12:00:00 1997-12-21T12:00:00 1997-12-22T12:00:00 1997-12-23T12:00:00 1997-12-24T12:00:00 + 1997-12-25T12:00:00 1997-12-26T12:00:00 1997-12-27T12:00:00 1997-12-28T12:00:00 1997-12-29T12:00:00 1997-12-30T12:00:00 + 1997-12-31T12:00:00 1998-01-01T12:00:00 1998-01-02T12:00:00 1998-01-03T12:00:00 1998-01-04T12:00:00 1998-01-05T12:00:00 + 1998-01-06T12:00:00 1998-01-07T12:00:00 1998-01-08T12:00:00 1998-01-09T12:00:00 1998-01-10T12:00:00 1998-01-11T12:00:00 + 1998-01-12T12:00:00 1998-01-13T12:00:00 1998-01-14T12:00:00 1998-01-15T12:00:00 1998-01-16T12:00:00 1998-01-17T12:00:00 + 1998-01-18T12:00:00 1998-01-19T12:00:00 1998-01-20T12:00:00 1998-01-21T12:00:00 1998-01-22T12:00:00 1998-01-23T12:00:00 + 1998-01-24T12:00:00 1998-01-25T12:00:00 1998-01-26T12:00:00 1998-01-27T12:00:00 1998-01-28T12:00:00 1998-01-29T12:00:00 + 1998-01-30T12:00:00 1998-01-31T12:00:00 1998-02-01T12:00:00 1998-02-02T12:00:00 1998-02-03T12:00:00 1998-02-04T12:00:00 + 1998-02-05T12:00:00 1998-02-06T12:00:00 1998-02-07T12:00:00 1998-02-08T12:00:00 1998-02-09T12:00:00 1998-02-10T12:00:00 + 1998-02-11T12:00:00 1998-02-12T12:00:00 1998-02-13T12:00:00 1998-02-14T12:00:00 1998-02-15T12:00:00 1998-02-16T12:00:00 + 1998-02-17T12:00:00 1998-02-18T12:00:00 1998-02-19T12:00:00 1998-02-20T12:00:00 1998-02-21T12:00:00 1998-02-22T12:00:00 + 1998-02-23T12:00:00 1998-02-24T12:00:00 1998-02-25T12:00:00 1998-02-26T12:00:00 1998-02-27T12:00:00 1998-02-28T12:00:00 + 1998-03-01T12:00:00 1998-03-02T12:00:00 1998-03-03T12:00:00 1998-03-04T12:00:00 1998-03-05T12:00:00 1998-03-06T12:00:00 + 1998-03-07T12:00:00 1998-03-08T12:00:00 1998-03-09T12:00:00 1998-03-10T12:00:00 1998-03-11T12:00:00 1998-03-12T12:00:00 + 1998-03-13T12:00:00 1998-03-14T12:00:00 1998-03-15T12:00:00 1998-03-16T12:00:00 1998-03-17T12:00:00 1998-03-18T12:00:00 + 1998-03-19T12:00:00 1998-03-20T12:00:00 1998-03-21T12:00:00 1998-03-22T12:00:00 1998-03-23T12:00:00 1998-03-24T12:00:00 + 1998-03-25T12:00:00 1998-03-26T12:00:00 1998-03-27T12:00:00 1998-03-28T12:00:00 1998-03-29T12:00:00 1998-03-30T12:00:00 + 1998-03-31T12:00:00 1998-04-01T12:00:00 1998-04-02T12:00:00 1998-04-03T12:00:00 1998-04-04T12:00:00 1998-04-05T12:00:00 + 1998-04-06T12:00:00 1998-04-07T12:00:00 1998-04-08T12:00:00 1998-04-09T12:00:00 1998-04-10T12:00:00 1998-04-11T12:00:00 + 1998-04-12T12:00:00 1998-04-13T12:00:00 1998-04-14T12:00:00 1998-04-15T12:00:00 1998-04-16T12:00:00 1998-04-17T12:00:00 + 1998-04-18T12:00:00 1998-04-19T12:00:00 1998-04-20T12:00:00 1998-04-21T12:00:00 1998-04-22T12:00:00 1998-04-23T12:00:00 + 1998-04-24T12:00:00 1998-04-25T12:00:00 1998-04-26T12:00:00 1998-04-27T12:00:00 1998-04-28T12:00:00 1998-04-29T12:00:00 + 1998-04-30T12:00:00 1998-05-01T12:00:00 1998-05-02T12:00:00 1998-05-03T12:00:00 1998-05-04T12:00:00 1998-05-05T12:00:00 + 1998-05-06T12:00:00 1998-05-07T12:00:00 1998-05-08T12:00:00 1998-05-09T12:00:00 1998-05-10T12:00:00 1998-05-11T12:00:00 + 1998-05-12T12:00:00 1998-05-13T12:00:00 1998-05-14T12:00:00 1998-05-15T12:00:00 1998-05-16T12:00:00 1998-05-17T12:00:00 + 1998-05-18T12:00:00 1998-05-19T12:00:00 1998-05-20T12:00:00 1998-05-21T12:00:00 1998-05-22T12:00:00 1998-05-23T12:00:00 + 1998-05-24T12:00:00 1998-05-25T12:00:00 1998-05-26T12:00:00 1998-05-27T12:00:00 1998-05-28T12:00:00 1998-05-29T12:00:00 + 1998-05-30T12:00:00 1998-05-31T12:00:00 1998-06-01T12:00:00 1998-06-02T12:00:00 1998-06-03T12:00:00 1998-06-04T12:00:00 + 1998-06-05T12:00:00 1998-06-06T12:00:00 1998-06-07T12:00:00 1998-06-08T12:00:00 1998-06-09T12:00:00 1998-06-10T12:00:00 + 1998-06-11T12:00:00 1998-06-12T12:00:00 1998-06-13T12:00:00 1998-06-14T12:00:00 1998-06-15T12:00:00 1998-06-16T12:00:00 + 1998-06-17T12:00:00 1998-06-18T12:00:00 1998-06-19T12:00:00 1998-06-20T12:00:00 1998-06-21T12:00:00 1998-06-22T12:00:00 + 1998-06-23T12:00:00 1998-06-24T12:00:00 1998-06-25T12:00:00 1998-06-26T12:00:00 1998-06-27T12:00:00 1998-06-28T12:00:00 + 1998-06-29T12:00:00 1998-06-30T12:00:00 1998-07-01T12:00:00 1998-07-02T12:00:00 1998-07-03T12:00:00 1998-07-04T12:00:00 + 1998-07-05T12:00:00 1998-07-06T12:00:00 1998-07-07T12:00:00 1998-07-08T12:00:00 1998-07-09T12:00:00 1998-07-10T12:00:00 + 1998-07-11T12:00:00 1998-07-12T12:00:00 1998-07-13T12:00:00 1998-07-14T12:00:00 1998-07-15T12:00:00 1998-07-16T12:00:00 + 1998-07-17T12:00:00 1998-07-18T12:00:00 1998-07-19T12:00:00 1998-07-20T12:00:00 1998-07-21T12:00:00 1998-07-22T12:00:00 + 1998-07-23T12:00:00 1998-07-24T12:00:00 1998-07-25T12:00:00 1998-07-26T12:00:00 1998-07-27T12:00:00 1998-07-28T12:00:00 + 1998-07-29T12:00:00 1998-07-30T12:00:00 1998-07-31T12:00:00 1998-08-01T12:00:00 1998-08-02T12:00:00 1998-08-03T12:00:00 + 1998-08-04T12:00:00 1998-08-05T12:00:00 1998-08-06T12:00:00 1998-08-07T12:00:00 1998-08-08T12:00:00 1998-08-09T12:00:00 + 1998-08-10T12:00:00 1998-08-11T12:00:00 1998-08-12T12:00:00 1998-08-13T12:00:00 1998-08-14T12:00:00 1998-08-15T12:00:00 + 1998-08-16T12:00:00 1998-08-17T12:00:00 1998-08-18T12:00:00 1998-08-19T12:00:00 1998-08-20T12:00:00 1998-08-21T12:00:00 + 1998-08-22T12:00:00 1998-08-23T12:00:00 1998-08-24T12:00:00 1998-08-25T12:00:00 1998-08-26T12:00:00 1998-08-27T12:00:00 + 1998-08-28T12:00:00 1998-08-29T12:00:00 1998-08-30T12:00:00 1998-08-31T12:00:00 1998-09-01T12:00:00 1998-09-02T12:00:00 + 1998-09-03T12:00:00 1998-09-04T12:00:00 1998-09-05T12:00:00 1998-09-06T12:00:00 1998-09-07T12:00:00 1998-09-08T12:00:00 + 1998-09-09T12:00:00 1998-09-10T12:00:00 1998-09-11T12:00:00 1998-09-12T12:00:00 1998-09-13T12:00:00 1998-09-14T12:00:00 + 1998-09-15T12:00:00 1998-09-16T12:00:00 1998-09-17T12:00:00 1998-09-18T12:00:00 1998-09-19T12:00:00 1998-09-20T12:00:00 + 1998-09-21T12:00:00 1998-09-22T12:00:00 1998-09-23T12:00:00 1998-09-24T12:00:00 1998-09-25T12:00:00 1998-09-26T12:00:00 + 1998-09-27T12:00:00 1998-09-28T12:00:00 1998-09-29T12:00:00 1998-09-30T12:00:00 1998-10-01T12:00:00 1998-10-02T12:00:00 + 1998-10-03T12:00:00 1998-10-04T12:00:00 1998-10-05T12:00:00 1998-10-06T12:00:00 1998-10-07T12:00:00 1998-10-08T12:00:00 + 1998-10-09T12:00:00 1998-10-10T12:00:00 1998-10-11T12:00:00 1998-10-12T12:00:00 1998-10-13T12:00:00 1998-10-14T12:00:00 + 1998-10-15T12:00:00 1998-10-16T12:00:00 1998-10-17T12:00:00 1998-10-18T12:00:00 1998-10-19T12:00:00 1998-10-20T12:00:00 + 1998-10-21T12:00:00 1998-10-22T12:00:00 1998-10-23T12:00:00 1998-10-24T12:00:00 1998-10-25T12:00:00 1998-10-26T12:00:00 + 1998-10-27T12:00:00 1998-10-28T12:00:00 1998-10-29T12:00:00 1998-10-30T12:00:00 1998-10-31T12:00:00 1998-11-01T12:00:00 + 1998-11-02T12:00:00 1998-11-03T12:00:00 1998-11-04T12:00:00 1998-11-05T12:00:00 1998-11-06T12:00:00 1998-11-07T12:00:00 + 1998-11-08T12:00:00 1998-11-09T12:00:00 1998-11-10T12:00:00 1998-11-11T12:00:00 1998-11-12T12:00:00 1998-11-13T12:00:00 + 1998-11-14T12:00:00 1998-11-15T12:00:00 1998-11-16T12:00:00 1998-11-17T12:00:00 1998-11-18T12:00:00 1998-11-19T12:00:00 + 1998-11-20T12:00:00 1998-11-21T12:00:00 1998-11-22T12:00:00 1998-11-23T12:00:00 1998-11-24T12:00:00 1998-11-25T12:00:00 + 1998-11-26T12:00:00 1998-11-27T12:00:00 1998-11-28T12:00:00 1998-11-29T12:00:00 1998-11-30T12:00:00 1998-12-01T12:00:00 + 1998-12-02T12:00:00 1998-12-03T12:00:00 1998-12-04T12:00:00 1998-12-05T12:00:00 1998-12-06T12:00:00 1998-12-07T12:00:00 + 1998-12-08T12:00:00 1998-12-09T12:00:00 1998-12-10T12:00:00 1998-12-11T12:00:00 1998-12-12T12:00:00 1998-12-13T12:00:00 + 1998-12-14T12:00:00 1998-12-15T12:00:00 1998-12-16T12:00:00 1998-12-17T12:00:00 1998-12-18T12:00:00 1998-12-19T12:00:00 + 1998-12-20T12:00:00 1998-12-21T12:00:00 1998-12-22T12:00:00 1998-12-23T12:00:00 1998-12-24T12:00:00 1998-12-25T12:00:00 + 1998-12-26T12:00:00 1998-12-27T12:00:00 1998-12-28T12:00:00 1998-12-29T12:00:00 1998-12-30T12:00:00 1998-12-31T12:00:00 + 1999-01-01T12:00:00 1999-01-02T12:00:00 1999-01-03T12:00:00 1999-01-04T12:00:00 1999-01-05T12:00:00 1999-01-06T12:00:00 + 1999-01-07T12:00:00 1999-01-08T12:00:00 1999-01-09T12:00:00 1999-01-10T12:00:00 1999-01-11T12:00:00 1999-01-12T12:00:00 + 1999-01-13T12:00:00 1999-01-14T12:00:00 1999-01-15T12:00:00 1999-01-16T12:00:00 1999-01-17T12:00:00 1999-01-18T12:00:00 + 1999-01-19T12:00:00 1999-01-20T12:00:00 1999-01-21T12:00:00 1999-01-22T12:00:00 1999-01-23T12:00:00 1999-01-24T12:00:00 + 1999-01-25T12:00:00 1999-01-26T12:00:00 1999-01-27T12:00:00 1999-01-28T12:00:00 1999-01-29T12:00:00 1999-01-30T12:00:00 + 1999-01-31T12:00:00 1999-02-01T12:00:00 1999-02-02T12:00:00 1999-02-03T12:00:00 1999-02-04T12:00:00 1999-02-05T12:00:00 + 1999-02-06T12:00:00 1999-02-07T12:00:00 1999-02-08T12:00:00 1999-02-09T12:00:00 1999-02-10T12:00:00 1999-02-11T12:00:00 + 1999-02-12T12:00:00 1999-02-13T12:00:00 1999-02-14T12:00:00 1999-02-15T12:00:00 1999-02-16T12:00:00 1999-02-17T12:00:00 + 1999-02-18T12:00:00 1999-02-19T12:00:00 1999-02-20T12:00:00 1999-02-21T12:00:00 1999-02-22T12:00:00 1999-02-23T12:00:00 + 1999-02-24T12:00:00 1999-02-25T12:00:00 1999-02-26T12:00:00 1999-02-27T12:00:00 1999-02-28T12:00:00 1999-03-01T12:00:00 + 1999-03-02T12:00:00 1999-03-03T12:00:00 1999-03-04T12:00:00 1999-03-05T12:00:00 1999-03-06T12:00:00 1999-03-07T12:00:00 + 1999-03-08T12:00:00 1999-03-09T12:00:00 1999-03-10T12:00:00 1999-03-11T12:00:00 1999-03-12T12:00:00 1999-03-13T12:00:00 + 1999-03-14T12:00:00 1999-03-15T12:00:00 1999-03-16T12:00:00 1999-03-17T12:00:00 1999-03-18T12:00:00 1999-03-19T12:00:00 + 1999-03-20T12:00:00 1999-03-21T12:00:00 1999-03-22T12:00:00 1999-03-23T12:00:00 1999-03-24T12:00:00 1999-03-25T12:00:00 + 1999-03-26T12:00:00 1999-03-27T12:00:00 1999-03-28T12:00:00 1999-03-29T12:00:00 1999-03-30T12:00:00 1999-03-31T12:00:00 + 1999-04-01T12:00:00 1999-04-02T12:00:00 1999-04-03T12:00:00 1999-04-04T12:00:00 1999-04-05T12:00:00 1999-04-06T12:00:00 + 1999-04-07T12:00:00 1999-04-08T12:00:00 1999-04-09T12:00:00 1999-04-10T12:00:00 1999-04-11T12:00:00 1999-04-12T12:00:00 + 1999-04-13T12:00:00 1999-04-14T12:00:00 1999-04-15T12:00:00 1999-04-16T12:00:00 1999-04-17T12:00:00 1999-04-18T12:00:00 + 1999-04-19T12:00:00 1999-04-20T12:00:00 1999-04-21T12:00:00 1999-04-22T12:00:00 1999-04-23T12:00:00 1999-04-24T12:00:00 + 1999-04-25T12:00:00 1999-04-26T12:00:00 1999-04-27T12:00:00 1999-04-28T12:00:00 1999-04-29T12:00:00 1999-04-30T12:00:00 + 1999-05-01T12:00:00 1999-05-02T12:00:00 1999-05-03T12:00:00 1999-05-04T12:00:00 1999-05-05T12:00:00 1999-05-06T12:00:00 + 1999-05-07T12:00:00 1999-05-08T12:00:00 1999-05-09T12:00:00 1999-05-10T12:00:00 1999-05-11T12:00:00 1999-05-12T12:00:00 + 1999-05-13T12:00:00 1999-05-14T12:00:00 1999-05-15T12:00:00 1999-05-16T12:00:00 1999-05-17T12:00:00 1999-05-18T12:00:00 + 1999-05-19T12:00:00 1999-05-20T12:00:00 1999-05-21T12:00:00 1999-05-22T12:00:00 1999-05-23T12:00:00 1999-05-24T12:00:00 + 1999-05-25T12:00:00 1999-05-26T12:00:00 1999-05-27T12:00:00 1999-05-28T12:00:00 1999-05-29T12:00:00 1999-05-30T12:00:00 + 1999-05-31T12:00:00 1999-06-01T12:00:00 1999-06-02T12:00:00 1999-06-03T12:00:00 1999-06-04T12:00:00 1999-06-05T12:00:00 + 1999-06-06T12:00:00 1999-06-07T12:00:00 1999-06-08T12:00:00 1999-06-09T12:00:00 1999-06-10T12:00:00 1999-06-11T12:00:00 + 1999-06-12T12:00:00 1999-06-13T12:00:00 1999-06-14T12:00:00 1999-06-15T12:00:00 1999-06-16T12:00:00 1999-06-17T12:00:00 + 1999-06-18T12:00:00 1999-06-19T12:00:00 1999-06-20T12:00:00 1999-06-21T12:00:00 1999-06-22T12:00:00 1999-06-23T12:00:00 + 1999-06-24T12:00:00 1999-06-25T12:00:00 1999-06-26T12:00:00 1999-06-27T12:00:00 1999-06-28T12:00:00 1999-06-29T12:00:00 + 1999-06-30T12:00:00 1999-07-01T12:00:00 1999-07-02T12:00:00 1999-07-03T12:00:00 1999-07-04T12:00:00 1999-07-05T12:00:00 + 1999-07-06T12:00:00 1999-07-07T12:00:00 1999-07-08T12:00:00 1999-07-09T12:00:00 1999-07-10T12:00:00 1999-07-11T12:00:00 + 1999-07-12T12:00:00 1999-07-13T12:00:00 1999-07-14T12:00:00 1999-07-15T12:00:00 1999-07-16T12:00:00 1999-07-17T12:00:00 + 1999-07-18T12:00:00 1999-07-19T12:00:00 1999-07-20T12:00:00 1999-07-21T12:00:00 1999-07-22T12:00:00 1999-07-23T12:00:00 + 1999-07-24T12:00:00 1999-07-25T12:00:00 1999-07-26T12:00:00 1999-07-27T12:00:00 1999-07-28T12:00:00 1999-07-29T12:00:00 + 1999-07-30T12:00:00 1999-07-31T12:00:00 1999-08-01T12:00:00 1999-08-02T12:00:00 1999-08-03T12:00:00 1999-08-04T12:00:00 + 1999-08-05T12:00:00 1999-08-06T12:00:00 1999-08-07T12:00:00 1999-08-08T12:00:00 1999-08-09T12:00:00 1999-08-10T12:00:00 + 1999-08-11T12:00:00 1999-08-12T12:00:00 1999-08-13T12:00:00 1999-08-14T12:00:00 1999-08-15T12:00:00 1999-08-16T12:00:00 + 1999-08-17T12:00:00 1999-08-18T12:00:00 1999-08-19T12:00:00 1999-08-20T12:00:00 1999-08-21T12:00:00 1999-08-22T12:00:00 + 1999-08-23T12:00:00 1999-08-24T12:00:00 1999-08-25T12:00:00 1999-08-26T12:00:00 1999-08-27T12:00:00 1999-08-28T12:00:00 + 1999-08-29T12:00:00 1999-08-30T12:00:00 1999-08-31T12:00:00 1999-09-01T12:00:00 1999-09-02T12:00:00 1999-09-03T12:00:00 + 1999-09-04T12:00:00 1999-09-05T12:00:00 1999-09-06T12:00:00 1999-09-07T12:00:00 1999-09-08T12:00:00 1999-09-09T12:00:00 + 1999-09-10T12:00:00 1999-09-11T12:00:00 1999-09-12T12:00:00 1999-09-13T12:00:00 1999-09-14T12:00:00 1999-09-15T12:00:00 + 1999-09-16T12:00:00 1999-09-17T12:00:00 1999-09-18T12:00:00 1999-09-19T12:00:00 1999-09-20T12:00:00 1999-09-21T12:00:00 + 1999-09-22T12:00:00 1999-09-23T12:00:00 1999-09-24T12:00:00 1999-09-25T12:00:00 1999-09-26T12:00:00 1999-09-27T12:00:00 + 1999-09-28T12:00:00 1999-09-29T12:00:00 1999-09-30T12:00:00 1999-10-01T12:00:00 1999-10-02T12:00:00 1999-10-03T12:00:00 + 1999-10-04T12:00:00 1999-10-05T12:00:00 1999-10-06T12:00:00 1999-10-07T12:00:00 1999-10-08T12:00:00 1999-10-09T12:00:00 + 1999-10-10T12:00:00 1999-10-11T12:00:00 1999-10-12T12:00:00 1999-10-13T12:00:00 1999-10-14T12:00:00 1999-10-15T12:00:00 + 1999-10-16T12:00:00 1999-10-17T12:00:00 1999-10-18T12:00:00 1999-10-19T12:00:00 1999-10-20T12:00:00 1999-10-21T12:00:00 + 1999-10-22T12:00:00 1999-10-23T12:00:00 1999-10-24T12:00:00 1999-10-25T12:00:00 1999-10-26T12:00:00 1999-10-27T12:00:00 + 1999-10-28T12:00:00 1999-10-29T12:00:00 1999-10-30T12:00:00 1999-10-31T12:00:00 1999-11-01T12:00:00 1999-11-02T12:00:00 + 1999-11-03T12:00:00 1999-11-04T12:00:00 1999-11-05T12:00:00 1999-11-06T12:00:00 1999-11-07T12:00:00 1999-11-08T12:00:00 + 1999-11-09T12:00:00 1999-11-10T12:00:00 1999-11-11T12:00:00 1999-11-12T12:00:00 1999-11-13T12:00:00 1999-11-14T12:00:00 + 1999-11-15T12:00:00 1999-11-16T12:00:00 1999-11-17T12:00:00 1999-11-18T12:00:00 1999-11-19T12:00:00 1999-11-20T12:00:00 + 1999-11-21T12:00:00 1999-11-22T12:00:00 1999-11-23T12:00:00 1999-11-24T12:00:00 1999-11-25T12:00:00 1999-11-26T12:00:00 + 1999-11-27T12:00:00 1999-11-28T12:00:00 1999-11-29T12:00:00 1999-11-30T12:00:00 1999-12-01T12:00:00 1999-12-02T12:00:00 + 1999-12-03T12:00:00 1999-12-04T12:00:00 1999-12-05T12:00:00 1999-12-06T12:00:00 1999-12-07T12:00:00 1999-12-08T12:00:00 + 1999-12-09T12:00:00 1999-12-10T12:00:00 1999-12-11T12:00:00 1999-12-12T12:00:00 1999-12-13T12:00:00 1999-12-14T12:00:00 + 1999-12-15T12:00:00 1999-12-16T12:00:00 1999-12-17T12:00:00 1999-12-18T12:00:00 1999-12-19T12:00:00 1999-12-20T12:00:00 + 1999-12-21T12:00:00 1999-12-22T12:00:00 1999-12-23T12:00:00 1999-12-24T12:00:00 1999-12-25T12:00:00 1999-12-26T12:00:00 + 1999-12-27T12:00:00 1999-12-28T12:00:00 1999-12-29T12:00:00 1999-12-30T12:00:00 1999-12-31T12:00:00 2000-01-01T12:00:00 + 2000-01-02T12:00:00 2000-01-03T12:00:00 2000-01-04T12:00:00 2000-01-05T12:00:00 2000-01-06T12:00:00 2000-01-07T12:00:00 + 2000-01-08T12:00:00 2000-01-09T12:00:00 2000-01-10T12:00:00 2000-01-11T12:00:00 2000-01-12T12:00:00 2000-01-13T12:00:00 + 2000-01-14T12:00:00 2000-01-15T12:00:00 2000-01-16T12:00:00 2000-01-17T12:00:00 2000-01-18T12:00:00 2000-01-19T12:00:00 + 2000-01-20T12:00:00 2000-01-21T12:00:00 2000-01-22T12:00:00 2000-01-23T12:00:00 2000-01-24T12:00:00 2000-01-25T12:00:00 + 2000-01-26T12:00:00 2000-01-27T12:00:00 2000-01-28T12:00:00 2000-01-29T12:00:00 2000-01-30T12:00:00 2000-01-31T12:00:00 + 2000-02-01T12:00:00 2000-02-02T12:00:00 2000-02-03T12:00:00 2000-02-04T12:00:00 2000-02-05T12:00:00 2000-02-06T12:00:00 + 2000-02-07T12:00:00 2000-02-08T12:00:00 2000-02-09T12:00:00 2000-02-10T12:00:00 2000-02-11T12:00:00 2000-02-12T12:00:00 + 2000-02-13T12:00:00 2000-02-14T12:00:00 2000-02-15T12:00:00 2000-02-16T12:00:00 2000-02-17T12:00:00 2000-02-18T12:00:00 + 2000-02-19T12:00:00 2000-02-20T12:00:00 2000-02-21T12:00:00 2000-02-22T12:00:00 2000-02-23T12:00:00 2000-02-24T12:00:00 + 2000-02-25T12:00:00 2000-02-26T12:00:00 2000-02-27T12:00:00 2000-02-28T12:00:00 2000-02-29T12:00:00 2000-03-01T12:00:00 + 2000-03-02T12:00:00 2000-03-03T12:00:00 2000-03-04T12:00:00 2000-03-05T12:00:00 2000-03-06T12:00:00 2000-03-07T12:00:00 + 2000-03-08T12:00:00 2000-03-09T12:00:00 2000-03-10T12:00:00 2000-03-11T12:00:00 2000-03-12T12:00:00 2000-03-13T12:00:00 + 2000-03-14T12:00:00 2000-03-15T12:00:00 2000-03-16T12:00:00 2000-03-17T12:00:00 2000-03-18T12:00:00 2000-03-19T12:00:00 + 2000-03-20T12:00:00 2000-03-21T12:00:00 2000-03-22T12:00:00 2000-03-23T12:00:00 2000-03-24T12:00:00 2000-03-25T12:00:00 + 2000-03-26T12:00:00 2000-03-27T12:00:00 2000-03-28T12:00:00 2000-03-29T12:00:00 2000-03-30T12:00:00 2000-03-31T12:00:00 + 2000-04-01T12:00:00 2000-04-02T12:00:00 2000-04-03T12:00:00 2000-04-04T12:00:00 2000-04-05T12:00:00 2000-04-06T12:00:00 + 2000-04-07T12:00:00 2000-04-08T12:00:00 2000-04-09T12:00:00 2000-04-10T12:00:00 2000-04-11T12:00:00 2000-04-12T12:00:00 + 2000-04-13T12:00:00 2000-04-14T12:00:00 2000-04-15T12:00:00 2000-04-16T12:00:00 2000-04-17T12:00:00 2000-04-18T12:00:00 + 2000-04-19T12:00:00 2000-04-20T12:00:00 2000-04-21T12:00:00 2000-04-22T12:00:00 2000-04-23T12:00:00 2000-04-24T12:00:00 + 2000-04-25T12:00:00 2000-04-26T12:00:00 2000-04-27T12:00:00 2000-04-28T12:00:00 2000-04-29T12:00:00 2000-04-30T12:00:00 + 2000-05-01T12:00:00 2000-05-02T12:00:00 2000-05-03T12:00:00 2000-05-04T12:00:00 2000-05-05T12:00:00 2000-05-06T12:00:00 + 2000-05-07T12:00:00 2000-05-08T12:00:00 2000-05-09T12:00:00 2000-05-10T12:00:00 2000-05-11T12:00:00 2000-05-12T12:00:00 + 2000-05-13T12:00:00 2000-05-14T12:00:00 2000-05-15T12:00:00 2000-05-16T12:00:00 2000-05-17T12:00:00 2000-05-18T12:00:00 + 2000-05-19T12:00:00 2000-05-20T12:00:00 2000-05-21T12:00:00 2000-05-22T12:00:00 2000-05-23T12:00:00 2000-05-24T12:00:00 + 2000-05-25T12:00:00 2000-05-26T12:00:00 2000-05-27T12:00:00 2000-05-28T12:00:00 2000-05-29T12:00:00 2000-05-30T12:00:00 + 2000-05-31T12:00:00 2000-06-01T12:00:00 2000-06-02T12:00:00 2000-06-03T12:00:00 2000-06-04T12:00:00 2000-06-05T12:00:00 + 2000-06-06T12:00:00 2000-06-07T12:00:00 2000-06-08T12:00:00 2000-06-09T12:00:00 2000-06-10T12:00:00 2000-06-11T12:00:00 + 2000-06-12T12:00:00 2000-06-13T12:00:00 2000-06-14T12:00:00 2000-06-15T12:00:00 2000-06-16T12:00:00 2000-06-17T12:00:00 + 2000-06-18T12:00:00 2000-06-19T12:00:00 2000-06-20T12:00:00 2000-06-21T12:00:00 2000-06-22T12:00:00 2000-06-23T12:00:00 + 2000-06-24T12:00:00 2000-06-25T12:00:00 2000-06-26T12:00:00 2000-06-27T12:00:00 2000-06-28T12:00:00 2000-06-29T12:00:00 + 2000-06-30T12:00:00 2000-07-01T12:00:00 2000-07-02T12:00:00 2000-07-03T12:00:00 2000-07-04T12:00:00 2000-07-05T12:00:00 + 2000-07-06T12:00:00 2000-07-07T12:00:00 2000-07-08T12:00:00 2000-07-09T12:00:00 2000-07-10T12:00:00 2000-07-11T12:00:00 + 2000-07-12T12:00:00 2000-07-13T12:00:00 2000-07-14T12:00:00 2000-07-15T12:00:00 2000-07-16T12:00:00 2000-07-17T12:00:00 + 2000-07-18T12:00:00 2000-07-19T12:00:00 2000-07-20T12:00:00 2000-07-21T12:00:00 2000-07-22T12:00:00 2000-07-23T12:00:00 + 2000-07-24T12:00:00 2000-07-25T12:00:00 2000-07-26T12:00:00 2000-07-27T12:00:00 2000-07-28T12:00:00 2000-07-29T12:00:00 + 2000-07-30T12:00:00 2000-07-31T12:00:00 2000-08-01T12:00:00 2000-08-02T12:00:00 2000-08-03T12:00:00 2000-08-04T12:00:00 + 2000-08-05T12:00:00 2000-08-06T12:00:00 2000-08-07T12:00:00 2000-08-08T12:00:00 2000-08-09T12:00:00 2000-08-10T12:00:00 + 2000-08-11T12:00:00 2000-08-12T12:00:00 2000-08-13T12:00:00 2000-08-14T12:00:00 2000-08-15T12:00:00 2000-08-16T12:00:00 + 2000-08-17T12:00:00 2000-08-18T12:00:00 2000-08-19T12:00:00 2000-08-20T12:00:00 2000-08-21T12:00:00 2000-08-22T12:00:00 + 2000-08-23T12:00:00 2000-08-24T12:00:00 2000-08-25T12:00:00 2000-08-26T12:00:00 2000-08-27T12:00:00 2000-08-28T12:00:00 + 2000-08-29T12:00:00 2000-08-30T12:00:00 2000-08-31T12:00:00 2000-09-01T12:00:00 2000-09-02T12:00:00 2000-09-03T12:00:00 + 2000-09-04T12:00:00 2000-09-05T12:00:00 2000-09-06T12:00:00 2000-09-07T12:00:00 2000-09-08T12:00:00 2000-09-09T12:00:00 + 2000-09-10T12:00:00 2000-09-11T12:00:00 2000-09-12T12:00:00 2000-09-13T12:00:00 2000-09-14T12:00:00 2000-09-15T12:00:00 + 2000-09-16T12:00:00 2000-09-17T12:00:00 2000-09-18T12:00:00 2000-09-19T12:00:00 2000-09-20T12:00:00 2000-09-21T12:00:00 + 2000-09-22T12:00:00 2000-09-23T12:00:00 2000-09-24T12:00:00 2000-09-25T12:00:00 2000-09-26T12:00:00 2000-09-27T12:00:00 + 2000-09-28T12:00:00 2000-09-29T12:00:00 2000-09-30T12:00:00 2000-10-01T12:00:00 2000-10-02T12:00:00 2000-10-03T12:00:00 + 2000-10-04T12:00:00 2000-10-05T12:00:00 2000-10-06T12:00:00 2000-10-07T12:00:00 2000-10-08T12:00:00 2000-10-09T12:00:00 + 2000-10-10T12:00:00 2000-10-11T12:00:00 2000-10-12T12:00:00 2000-10-13T12:00:00 2000-10-14T12:00:00 2000-10-15T12:00:00 + 2000-10-16T12:00:00 2000-10-17T12:00:00 2000-10-18T12:00:00 2000-10-19T12:00:00 2000-10-20T12:00:00 2000-10-21T12:00:00 + 2000-10-22T12:00:00 2000-10-23T12:00:00 2000-10-24T12:00:00 2000-10-25T12:00:00 2000-10-26T12:00:00 2000-10-27T12:00:00 + 2000-10-28T12:00:00 2000-10-29T12:00:00 2000-10-30T12:00:00 2000-10-31T12:00:00 2000-11-01T12:00:00 2000-11-02T12:00:00 + 2000-11-03T12:00:00 2000-11-04T12:00:00 2000-11-05T12:00:00 2000-11-06T12:00:00 2000-11-07T12:00:00 2000-11-08T12:00:00 + 2000-11-09T12:00:00 2000-11-10T12:00:00 2000-11-11T12:00:00 2000-11-12T12:00:00 2000-11-13T12:00:00 2000-11-14T12:00:00 + 2000-11-15T12:00:00 2000-11-16T12:00:00 2000-11-17T12:00:00 2000-11-18T12:00:00 2000-11-19T12:00:00 2000-11-20T12:00:00 + 2000-11-21T12:00:00 2000-11-22T12:00:00 2000-11-23T12:00:00 2000-11-24T12:00:00 2000-11-25T12:00:00 2000-11-26T12:00:00 + 2000-11-27T12:00:00 2000-11-28T12:00:00 2000-11-29T12:00:00 2000-11-30T12:00:00 2000-12-01T12:00:00 2000-12-02T12:00:00 + 2000-12-03T12:00:00 2000-12-04T12:00:00 2000-12-05T12:00:00 2000-12-06T12:00:00 2000-12-07T12:00:00 2000-12-08T12:00:00 + 2000-12-09T12:00:00 2000-12-10T12:00:00 2000-12-11T12:00:00 2000-12-12T12:00:00 2000-12-13T12:00:00 2000-12-14T12:00:00 + 2000-12-15T12:00:00 2000-12-16T12:00:00 2000-12-17T12:00:00 2000-12-18T12:00:00 2000-12-19T12:00:00 2000-12-20T12:00:00 + 2000-12-21T12:00:00 2000-12-22T12:00:00 2000-12-23T12:00:00 2000-12-24T12:00:00 2000-12-25T12:00:00 2000-12-26T12:00:00 + 2000-12-27T12:00:00 2000-12-28T12:00:00 2000-12-29T12:00:00 2000-12-30T12:00:00 2000-12-31T12:00:00 2001-01-01T12:00:00 + 2001-01-02T12:00:00 2001-01-03T12:00:00 2001-01-04T12:00:00 2001-01-05T12:00:00 2001-01-06T12:00:00 2001-01-07T12:00:00 + 2001-01-08T12:00:00 2001-01-09T12:00:00 2001-01-10T12:00:00 2001-01-11T12:00:00 2001-01-12T12:00:00 2001-01-13T12:00:00 + 2001-01-14T12:00:00 2001-01-15T12:00:00 2001-01-16T12:00:00 2001-01-17T12:00:00 2001-01-18T12:00:00 2001-01-19T12:00:00 + 2001-01-20T12:00:00 2001-01-21T12:00:00 2001-01-22T12:00:00 2001-01-23T12:00:00 2001-01-24T12:00:00 2001-01-25T12:00:00 + 2001-01-26T12:00:00 2001-01-27T12:00:00 2001-01-28T12:00:00 2001-01-29T12:00:00 2001-01-30T12:00:00 2001-01-31T12:00:00 + 2001-02-01T12:00:00 2001-02-02T12:00:00 2001-02-03T12:00:00 2001-02-04T12:00:00 2001-02-05T12:00:00 2001-02-06T12:00:00 + 2001-02-07T12:00:00 2001-02-08T12:00:00 2001-02-09T12:00:00 2001-02-10T12:00:00 2001-02-11T12:00:00 2001-02-12T12:00:00 + 2001-02-13T12:00:00 2001-02-14T12:00:00 2001-02-15T12:00:00 2001-02-16T12:00:00 2001-02-17T12:00:00 2001-02-18T12:00:00 + 2001-02-19T12:00:00 2001-02-20T12:00:00 2001-02-21T12:00:00 2001-02-22T12:00:00 2001-02-23T12:00:00 2001-02-24T12:00:00 + 2001-02-25T12:00:00 2001-02-26T12:00:00 2001-02-27T12:00:00 2001-02-28T12:00:00 2001-03-01T12:00:00 2001-03-02T12:00:00 + 2001-03-03T12:00:00 2001-03-04T12:00:00 2001-03-05T12:00:00 2001-03-06T12:00:00 2001-03-07T12:00:00 2001-03-08T12:00:00 + 2001-03-09T12:00:00 2001-03-10T12:00:00 2001-03-11T12:00:00 2001-03-12T12:00:00 2001-03-13T12:00:00 2001-03-14T12:00:00 + 2001-03-15T12:00:00 2001-03-16T12:00:00 2001-03-17T12:00:00 2001-03-18T12:00:00 2001-03-19T12:00:00 2001-03-20T12:00:00 + 2001-03-21T12:00:00 2001-03-22T12:00:00 2001-03-23T12:00:00 2001-03-24T12:00:00 2001-03-25T12:00:00 2001-03-26T12:00:00 + 2001-03-27T12:00:00 2001-03-28T12:00:00 2001-03-29T12:00:00 2001-03-30T12:00:00 2001-03-31T12:00:00 2001-04-01T12:00:00 + 2001-04-02T12:00:00 2001-04-03T12:00:00 2001-04-04T12:00:00 2001-04-05T12:00:00 2001-04-06T12:00:00 2001-04-07T12:00:00 + 2001-04-08T12:00:00 2001-04-09T12:00:00 2001-04-10T12:00:00 2001-04-11T12:00:00 2001-04-12T12:00:00 2001-04-13T12:00:00 + 2001-04-14T12:00:00 2001-04-15T12:00:00 2001-04-16T12:00:00 2001-04-17T12:00:00 2001-04-18T12:00:00 2001-04-19T12:00:00 + 2001-04-20T12:00:00 2001-04-21T12:00:00 2001-04-22T12:00:00 2001-04-23T12:00:00 2001-04-24T12:00:00 2001-04-25T12:00:00 + 2001-04-26T12:00:00 2001-04-27T12:00:00 2001-04-28T12:00:00 2001-04-29T12:00:00 2001-04-30T12:00:00 2001-05-01T12:00:00 + 2001-05-02T12:00:00 2001-05-03T12:00:00 2001-05-04T12:00:00 2001-05-05T12:00:00 2001-05-06T12:00:00 2001-05-07T12:00:00 + 2001-05-08T12:00:00 2001-05-09T12:00:00 2001-05-10T12:00:00 2001-05-11T12:00:00 2001-05-12T12:00:00 2001-05-13T12:00:00 + 2001-05-14T12:00:00 2001-05-15T12:00:00 2001-05-16T12:00:00 2001-05-17T12:00:00 2001-05-18T12:00:00 2001-05-19T12:00:00 + 2001-05-20T12:00:00 2001-05-21T12:00:00 2001-05-22T12:00:00 2001-05-23T12:00:00 2001-05-24T12:00:00 2001-05-25T12:00:00 + 2001-05-26T12:00:00 2001-05-27T12:00:00 2001-05-28T12:00:00 2001-05-29T12:00:00 2001-05-30T12:00:00 2001-05-31T12:00:00 + 2001-06-01T12:00:00 2001-06-02T12:00:00 2001-06-03T12:00:00 2001-06-04T12:00:00 2001-06-05T12:00:00 2001-06-06T12:00:00 + 2001-06-07T12:00:00 2001-06-08T12:00:00 2001-06-09T12:00:00 2001-06-10T12:00:00 2001-06-11T12:00:00 2001-06-12T12:00:00 + 2001-06-13T12:00:00 2001-06-14T12:00:00 2001-06-15T12:00:00 2001-06-16T12:00:00 2001-06-17T12:00:00 2001-06-18T12:00:00 + 2001-06-19T12:00:00 2001-06-20T12:00:00 2001-06-21T12:00:00 2001-06-22T12:00:00 2001-06-23T12:00:00 2001-06-24T12:00:00 + 2001-06-25T12:00:00 2001-06-26T12:00:00 2001-06-27T12:00:00 2001-06-28T12:00:00 2001-06-29T12:00:00 2001-06-30T12:00:00 + 2001-07-01T12:00:00 2001-07-02T12:00:00 2001-07-03T12:00:00 2001-07-04T12:00:00 2001-07-05T12:00:00 2001-07-06T12:00:00 + 2001-07-07T12:00:00 2001-07-08T12:00:00 2001-07-09T12:00:00 2001-07-10T12:00:00 2001-07-11T12:00:00 2001-07-12T12:00:00 + 2001-07-13T12:00:00 2001-07-14T12:00:00 2001-07-15T12:00:00 2001-07-16T12:00:00 2001-07-17T12:00:00 2001-07-18T12:00:00 + 2001-07-19T12:00:00 2001-07-20T12:00:00 2001-07-21T12:00:00 2001-07-22T12:00:00 2001-07-23T12:00:00 2001-07-24T12:00:00 + 2001-07-25T12:00:00 2001-07-26T12:00:00 2001-07-27T12:00:00 2001-07-28T12:00:00 2001-07-29T12:00:00 2001-07-30T12:00:00 + 2001-07-31T12:00:00 2001-08-01T12:00:00 2001-08-02T12:00:00 2001-08-03T12:00:00 2001-08-04T12:00:00 2001-08-05T12:00:00 + 2001-08-06T12:00:00 2001-08-07T12:00:00 2001-08-08T12:00:00 2001-08-09T12:00:00 2001-08-10T12:00:00 2001-08-11T12:00:00 + 2001-08-12T12:00:00 2001-08-13T12:00:00 2001-08-14T12:00:00 2001-08-15T12:00:00 2001-08-16T12:00:00 2001-08-17T12:00:00 + 2001-08-18T12:00:00 2001-08-19T12:00:00 2001-08-20T12:00:00 2001-08-21T12:00:00 2001-08-22T12:00:00 2001-08-23T12:00:00 + 2001-08-24T12:00:00 2001-08-25T12:00:00 2001-08-26T12:00:00 2001-08-27T12:00:00 2001-08-28T12:00:00 2001-08-29T12:00:00 + 2001-08-30T12:00:00 2001-08-31T12:00:00 2001-09-01T12:00:00 2001-09-02T12:00:00 2001-09-03T12:00:00 2001-09-04T12:00:00 + 2001-09-05T12:00:00 2001-09-06T12:00:00 2001-09-07T12:00:00 2001-09-08T12:00:00 2001-09-09T12:00:00 2001-09-10T12:00:00 + 2001-09-11T12:00:00 2001-09-12T12:00:00 2001-09-13T12:00:00 2001-09-14T12:00:00 2001-09-15T12:00:00 2001-09-16T12:00:00 + 2001-09-17T12:00:00 2001-09-18T12:00:00 2001-09-19T12:00:00 2001-09-20T12:00:00 2001-09-21T12:00:00 2001-09-22T12:00:00 + 2001-09-23T12:00:00 2001-09-24T12:00:00 2001-09-25T12:00:00 2001-09-26T12:00:00 2001-09-27T12:00:00 2001-09-28T12:00:00 + 2001-09-29T12:00:00 2001-09-30T12:00:00 2001-10-01T12:00:00 2001-10-02T12:00:00 2001-10-03T12:00:00 2001-10-04T12:00:00 + 2001-10-05T12:00:00 2001-10-06T12:00:00 2001-10-07T12:00:00 2001-10-08T12:00:00 2001-10-09T12:00:00 2001-10-10T12:00:00 + 2001-10-11T12:00:00 2001-10-12T12:00:00 2001-10-13T12:00:00 2001-10-14T12:00:00 2001-10-15T12:00:00 2001-10-16T12:00:00 + 2001-10-17T12:00:00 2001-10-18T12:00:00 2001-10-19T12:00:00 2001-10-20T12:00:00 2001-10-21T12:00:00 2001-10-22T12:00:00 + 2001-10-23T12:00:00 2001-10-24T12:00:00 2001-10-25T12:00:00 2001-10-26T12:00:00 2001-10-27T12:00:00 2001-10-28T12:00:00 + 2001-10-29T12:00:00 2001-10-30T12:00:00 2001-10-31T12:00:00 2001-11-01T12:00:00 2001-11-02T12:00:00 2001-11-03T12:00:00 + 2001-11-04T12:00:00 2001-11-05T12:00:00 2001-11-06T12:00:00 2001-11-07T12:00:00 2001-11-08T12:00:00 2001-11-09T12:00:00 + 2001-11-10T12:00:00 2001-11-11T12:00:00 2001-11-12T12:00:00 2001-11-13T12:00:00 2001-11-14T12:00:00 2001-11-15T12:00:00 + 2001-11-16T12:00:00 2001-11-17T12:00:00 2001-11-18T12:00:00 2001-11-19T12:00:00 2001-11-20T12:00:00 2001-11-21T12:00:00 + 2001-11-22T12:00:00 2001-11-23T12:00:00 2001-11-24T12:00:00 2001-11-25T12:00:00 2001-11-26T12:00:00 2001-11-27T12:00:00 + 2001-11-28T12:00:00 2001-11-29T12:00:00 2001-11-30T12:00:00 2001-12-01T12:00:00 2001-12-02T12:00:00 2001-12-03T12:00:00 + 2001-12-04T12:00:00 2001-12-05T12:00:00 2001-12-06T12:00:00 2001-12-07T12:00:00 2001-12-08T12:00:00 2001-12-09T12:00:00 + 2001-12-10T12:00:00 2001-12-11T12:00:00 2001-12-12T12:00:00 2001-12-13T12:00:00 2001-12-14T12:00:00 2001-12-15T12:00:00 + 2001-12-16T12:00:00 2001-12-17T12:00:00 2001-12-18T12:00:00 2001-12-19T12:00:00 2001-12-20T12:00:00 2001-12-21T12:00:00 + 2001-12-22T12:00:00 2001-12-23T12:00:00 2001-12-24T12:00:00 2001-12-25T12:00:00 2001-12-26T12:00:00 2001-12-27T12:00:00 + 2001-12-28T12:00:00 2001-12-29T12:00:00 2001-12-30T12:00:00 2001-12-31T12:00:00 2002-01-01T12:00:00 2002-01-02T12:00:00 + 2002-01-03T12:00:00 2002-01-04T12:00:00 2002-01-05T12:00:00 2002-01-06T12:00:00 2002-01-07T12:00:00 2002-01-08T12:00:00 + 2002-01-09T12:00:00 2002-01-10T12:00:00 2002-01-11T12:00:00 2002-01-12T12:00:00 2002-01-13T12:00:00 2002-01-14T12:00:00 + 2002-01-15T12:00:00 2002-01-16T12:00:00 2002-01-17T12:00:00 2002-01-18T12:00:00 2002-01-19T12:00:00 2002-01-20T12:00:00 + 2002-01-21T12:00:00 2002-01-22T12:00:00 2002-01-23T12:00:00 2002-01-24T12:00:00 2002-01-25T12:00:00 2002-01-26T12:00:00 + 2002-01-27T12:00:00 2002-01-28T12:00:00 2002-01-29T12:00:00 2002-01-30T12:00:00 2002-01-31T12:00:00 2002-02-01T12:00:00 + 2002-02-02T12:00:00 2002-02-03T12:00:00 2002-02-04T12:00:00 2002-02-05T12:00:00 2002-02-06T12:00:00 2002-02-07T12:00:00 + 2002-02-08T12:00:00 2002-02-09T12:00:00 2002-02-10T12:00:00 2002-02-11T12:00:00 2002-02-12T12:00:00 2002-02-13T12:00:00 + 2002-02-14T12:00:00 2002-02-15T12:00:00 2002-02-16T12:00:00 2002-02-17T12:00:00 2002-02-18T12:00:00 2002-02-19T12:00:00 + 2002-02-20T12:00:00 2002-02-21T12:00:00 2002-02-22T12:00:00 2002-02-23T12:00:00 2002-02-24T12:00:00 2002-02-25T12:00:00 + 2002-02-26T12:00:00 2002-02-27T12:00:00 2002-02-28T12:00:00 2002-03-01T12:00:00 2002-03-02T12:00:00 2002-03-03T12:00:00 + 2002-03-04T12:00:00 2002-03-05T12:00:00 2002-03-06T12:00:00 2002-03-07T12:00:00 2002-03-08T12:00:00 2002-03-09T12:00:00 + 2002-03-10T12:00:00 2002-03-11T12:00:00 2002-03-12T12:00:00 2002-03-13T12:00:00 2002-03-14T12:00:00 2002-03-15T12:00:00 + 2002-03-16T12:00:00 2002-03-17T12:00:00 2002-03-18T12:00:00 2002-03-19T12:00:00 2002-03-20T12:00:00 2002-03-21T12:00:00 + 2002-03-22T12:00:00 2002-03-23T12:00:00 2002-03-24T12:00:00 2002-03-25T12:00:00 2002-03-26T12:00:00 2002-03-27T12:00:00 + 2002-03-28T12:00:00 2002-03-29T12:00:00 2002-03-30T12:00:00 2002-03-31T12:00:00 2002-04-01T12:00:00 2002-04-02T12:00:00 + 2002-04-03T12:00:00 2002-04-04T12:00:00 2002-04-05T12:00:00 2002-04-06T12:00:00 2002-04-07T12:00:00 2002-04-08T12:00:00 + 2002-04-09T12:00:00 2002-04-10T12:00:00 2002-04-11T12:00:00 2002-04-12T12:00:00 2002-04-13T12:00:00 2002-04-14T12:00:00 + 2002-04-15T12:00:00 2002-04-16T12:00:00 2002-04-17T12:00:00 2002-04-18T12:00:00 2002-04-19T12:00:00 2002-04-20T12:00:00 + 2002-04-21T12:00:00 2002-04-22T12:00:00 2002-04-23T12:00:00 2002-04-24T12:00:00 2002-04-25T12:00:00 2002-04-26T12:00:00 + 2002-04-27T12:00:00 2002-04-28T12:00:00 2002-04-29T12:00:00 2002-04-30T12:00:00 2002-05-01T12:00:00 2002-05-02T12:00:00 + 2002-05-03T12:00:00 2002-05-04T12:00:00 2002-05-05T12:00:00 2002-05-06T12:00:00 2002-05-07T12:00:00 2002-05-08T12:00:00 + 2002-05-09T12:00:00 2002-05-10T12:00:00 2002-05-11T12:00:00 2002-05-12T12:00:00 2002-05-13T12:00:00 2002-05-14T12:00:00 + 2002-05-15T12:00:00 2002-05-16T12:00:00 2002-05-17T12:00:00 2002-05-18T12:00:00 2002-05-19T12:00:00 2002-05-20T12:00:00 + 2002-05-21T12:00:00 2002-05-22T12:00:00 2002-05-23T12:00:00 2002-05-24T12:00:00 2002-05-25T12:00:00 2002-05-26T12:00:00 + 2002-05-27T12:00:00 2002-05-28T12:00:00 2002-05-29T12:00:00 2002-05-30T12:00:00 2002-05-31T12:00:00 2002-06-01T12:00:00 + 2002-06-02T12:00:00 2002-06-03T12:00:00 2002-06-04T12:00:00 2002-06-05T12:00:00 2002-06-06T12:00:00 2002-06-07T12:00:00 + 2002-06-08T12:00:00 2002-06-09T12:00:00 2002-06-10T12:00:00 2002-06-11T12:00:00 2002-06-12T12:00:00 2002-06-13T12:00:00 + 2002-06-14T12:00:00 2002-06-15T12:00:00 2002-06-16T12:00:00 2002-06-17T12:00:00 2002-06-18T12:00:00 2002-06-19T12:00:00 + 2002-06-20T12:00:00 2002-06-21T12:00:00 2002-06-22T12:00:00 2002-06-23T12:00:00 2002-06-24T12:00:00 2002-06-25T12:00:00 + 2002-06-26T12:00:00 2002-06-27T12:00:00 2002-06-28T12:00:00 2002-06-29T12:00:00 2002-06-30T12:00:00 2002-07-01T12:00:00 + 2002-07-02T12:00:00 2002-07-03T12:00:00 2002-07-04T12:00:00 2002-07-05T12:00:00 2002-07-06T12:00:00 2002-07-07T12:00:00 + 2002-07-08T12:00:00 2002-07-09T12:00:00 2002-07-10T12:00:00 2002-07-11T12:00:00 2002-07-12T12:00:00 2002-07-13T12:00:00 + 2002-07-14T12:00:00 2002-07-15T12:00:00 2002-07-16T12:00:00 2002-07-17T12:00:00 2002-07-18T12:00:00 2002-07-19T12:00:00 + 2002-07-20T12:00:00 2002-07-21T12:00:00 2002-07-22T12:00:00 2002-07-23T12:00:00 2002-07-24T12:00:00 2002-07-25T12:00:00 + 2002-07-26T12:00:00 2002-07-27T12:00:00 2002-07-28T12:00:00 2002-07-29T12:00:00 2002-07-30T12:00:00 2002-07-31T12:00:00 + 2002-08-01T12:00:00 2002-08-02T12:00:00 2002-08-03T12:00:00 2002-08-04T12:00:00 2002-08-05T12:00:00 2002-08-06T12:00:00 + 2002-08-07T12:00:00 2002-08-08T12:00:00 2002-08-09T12:00:00 2002-08-10T12:00:00 2002-08-11T12:00:00 2002-08-12T12:00:00 + 2002-08-13T12:00:00 2002-08-14T12:00:00 2002-08-15T12:00:00 2002-08-16T12:00:00 2002-08-17T12:00:00 2002-08-18T12:00:00 + 2002-08-19T12:00:00 2002-08-20T12:00:00 2002-08-21T12:00:00 2002-08-22T12:00:00 2002-08-23T12:00:00 2002-08-24T12:00:00 + 2002-08-25T12:00:00 2002-08-26T12:00:00 2002-08-27T12:00:00 2002-08-28T12:00:00 2002-08-29T12:00:00 2002-08-30T12:00:00 + 2002-08-31T12:00:00 2002-09-01T12:00:00 2002-09-02T12:00:00 2002-09-03T12:00:00 2002-09-04T12:00:00 2002-09-05T12:00:00 + 2002-09-06T12:00:00 2002-09-07T12:00:00 2002-09-08T12:00:00 2002-09-09T12:00:00 2002-09-10T12:00:00 2002-09-11T12:00:00 + 2002-09-12T12:00:00 2002-09-13T12:00:00 2002-09-14T12:00:00 2002-09-15T12:00:00 2002-09-16T12:00:00 2002-09-17T12:00:00 + 2002-09-18T12:00:00 2002-09-19T12:00:00 2002-09-20T12:00:00 2002-09-21T12:00:00 2002-09-22T12:00:00 2002-09-23T12:00:00 + 2002-09-24T12:00:00 2002-09-25T12:00:00 2002-09-26T12:00:00 2002-09-27T12:00:00 2002-09-28T12:00:00 2002-09-29T12:00:00 + 2002-09-30T12:00:00 2002-10-01T12:00:00 2002-10-02T12:00:00 2002-10-03T12:00:00 2002-10-04T12:00:00 2002-10-05T12:00:00 + 2002-10-06T12:00:00 2002-10-07T12:00:00 2002-10-08T12:00:00 2002-10-09T12:00:00 2002-10-10T12:00:00 2002-10-11T12:00:00 + 2002-10-12T12:00:00 2002-10-13T12:00:00 2002-10-14T12:00:00 2002-10-15T12:00:00 2002-10-16T12:00:00 2002-10-17T12:00:00 + 2002-10-18T12:00:00 2002-10-19T12:00:00 2002-10-20T12:00:00 2002-10-21T12:00:00 2002-10-22T12:00:00 2002-10-23T12:00:00 + 2002-10-24T12:00:00 2002-10-25T12:00:00 2002-10-26T12:00:00 2002-10-27T12:00:00 2002-10-28T12:00:00 2002-10-29T12:00:00 + 2002-10-30T12:00:00 2002-10-31T12:00:00 2002-11-01T12:00:00 2002-11-02T12:00:00 2002-11-03T12:00:00 2002-11-04T12:00:00 + 2002-11-05T12:00:00 2002-11-06T12:00:00 2002-11-07T12:00:00 2002-11-08T12:00:00 2002-11-09T12:00:00 2002-11-10T12:00:00 + 2002-11-11T12:00:00 2002-11-12T12:00:00 2002-11-13T12:00:00 2002-11-14T12:00:00 2002-11-15T12:00:00 2002-11-16T12:00:00 + 2002-11-17T12:00:00 2002-11-18T12:00:00 2002-11-19T12:00:00 2002-11-20T12:00:00 2002-11-21T12:00:00 2002-11-22T12:00:00 + 2002-11-23T12:00:00 2002-11-24T12:00:00 2002-11-25T12:00:00 2002-11-26T12:00:00 2002-11-27T12:00:00 2002-11-28T12:00:00 + 2002-11-29T12:00:00 2002-11-30T12:00:00 2002-12-01T12:00:00 2002-12-02T12:00:00 2002-12-03T12:00:00 2002-12-04T12:00:00 + 2002-12-05T12:00:00 2002-12-06T12:00:00 2002-12-07T12:00:00 2002-12-08T12:00:00 2002-12-09T12:00:00 2002-12-10T12:00:00 + 2002-12-11T12:00:00 2002-12-12T12:00:00 2002-12-13T12:00:00 2002-12-14T12:00:00 2002-12-15T12:00:00 2002-12-16T12:00:00 + 2002-12-17T12:00:00 2002-12-18T12:00:00 2002-12-19T12:00:00 2002-12-20T12:00:00 2002-12-21T12:00:00 2002-12-22T12:00:00 + 2002-12-23T12:00:00 2002-12-24T12:00:00 2002-12-25T12:00:00 2002-12-26T12:00:00 2002-12-27T12:00:00 2002-12-28T12:00:00 + 2002-12-29T12:00:00 2002-12-30T12:00:00 2002-12-31T12:00:00 2003-01-01T12:00:00 2003-01-02T12:00:00 2003-01-03T12:00:00 + 2003-01-04T12:00:00 2003-01-05T12:00:00 2003-01-06T12:00:00 2003-01-07T12:00:00 2003-01-08T12:00:00 2003-01-09T12:00:00 + 2003-01-10T12:00:00 2003-01-11T12:00:00 2003-01-12T12:00:00 2003-01-13T12:00:00 2003-01-14T12:00:00 2003-01-15T12:00:00 + 2003-01-16T12:00:00 2003-01-17T12:00:00 2003-01-18T12:00:00 2003-01-19T12:00:00 2003-01-20T12:00:00 2003-01-21T12:00:00 + 2003-01-22T12:00:00 2003-01-23T12:00:00 2003-01-24T12:00:00 2003-01-25T12:00:00 2003-01-26T12:00:00 2003-01-27T12:00:00 + 2003-01-28T12:00:00 2003-01-29T12:00:00 2003-01-30T12:00:00 2003-01-31T12:00:00 2003-02-01T12:00:00 2003-02-02T12:00:00 + 2003-02-03T12:00:00 2003-02-04T12:00:00 2003-02-05T12:00:00 2003-02-06T12:00:00 2003-02-07T12:00:00 2003-02-08T12:00:00 + 2003-02-09T12:00:00 2003-02-10T12:00:00 2003-02-11T12:00:00 2003-02-12T12:00:00 2003-02-13T12:00:00 2003-02-14T12:00:00 + 2003-02-15T12:00:00 2003-02-16T12:00:00 2003-02-17T12:00:00 2003-02-18T12:00:00 2003-02-19T12:00:00 2003-02-20T12:00:00 + 2003-02-21T12:00:00 2003-02-22T12:00:00 2003-02-23T12:00:00 2003-02-24T12:00:00 2003-02-25T12:00:00 2003-02-26T12:00:00 + 2003-02-27T12:00:00 2003-02-28T12:00:00 2003-03-01T12:00:00 2003-03-02T12:00:00 2003-03-03T12:00:00 2003-03-04T12:00:00 + 2003-03-05T12:00:00 2003-03-06T12:00:00 2003-03-07T12:00:00 2003-03-08T12:00:00 2003-03-09T12:00:00 2003-03-10T12:00:00 + 2003-03-11T12:00:00 2003-03-12T12:00:00 2003-03-13T12:00:00 2003-03-14T12:00:00 2003-03-15T12:00:00 2003-03-16T12:00:00 + 2003-03-17T12:00:00 2003-03-18T12:00:00 2003-03-19T12:00:00 2003-03-20T12:00:00 2003-03-21T12:00:00 2003-03-22T12:00:00 + 2003-03-23T12:00:00 2003-03-24T12:00:00 2003-03-25T12:00:00 2003-03-26T12:00:00 2003-03-27T12:00:00 2003-03-28T12:00:00 + 2003-03-29T12:00:00 2003-03-30T12:00:00 2003-03-31T12:00:00 2003-04-01T12:00:00 2003-04-02T12:00:00 2003-04-03T12:00:00 + 2003-04-04T12:00:00 2003-04-05T12:00:00 2003-04-06T12:00:00 2003-04-07T12:00:00 2003-04-08T12:00:00 2003-04-09T12:00:00 + 2003-04-10T12:00:00 2003-04-11T12:00:00 2003-04-12T12:00:00 2003-04-13T12:00:00 2003-04-14T12:00:00 2003-04-15T12:00:00 + 2003-04-16T12:00:00 2003-04-17T12:00:00 2003-04-18T12:00:00 2003-04-19T12:00:00 2003-04-20T12:00:00 2003-04-21T12:00:00 + 2003-04-22T12:00:00 2003-04-23T12:00:00 2003-04-24T12:00:00 2003-04-25T12:00:00 2003-04-26T12:00:00 2003-04-27T12:00:00 + 2003-04-28T12:00:00 2003-04-29T12:00:00 2003-04-30T12:00:00 2003-05-01T12:00:00 2003-05-02T12:00:00 2003-05-03T12:00:00 + 2003-05-04T12:00:00 2003-05-05T12:00:00 2003-05-06T12:00:00 2003-05-07T12:00:00 2003-05-08T12:00:00 2003-05-09T12:00:00 + 2003-05-10T12:00:00 2003-05-11T12:00:00 2003-05-12T12:00:00 2003-05-13T12:00:00 2003-05-14T12:00:00 2003-05-15T12:00:00 + 2003-05-16T12:00:00 2003-05-17T12:00:00 2003-05-18T12:00:00 2003-05-19T12:00:00 2003-05-20T12:00:00 2003-05-21T12:00:00 + 2003-05-22T12:00:00 2003-05-23T12:00:00 2003-05-24T12:00:00 2003-05-25T12:00:00 2003-05-26T12:00:00 2003-05-27T12:00:00 + 2003-05-28T12:00:00 2003-05-29T12:00:00 2003-05-30T12:00:00 2003-05-31T12:00:00 2003-06-01T12:00:00 2003-06-02T12:00:00 + 2003-06-03T12:00:00 2003-06-04T12:00:00 2003-06-05T12:00:00 2003-06-06T12:00:00 2003-06-07T12:00:00 2003-06-08T12:00:00 + 2003-06-09T12:00:00 2003-06-10T12:00:00 2003-06-11T12:00:00 2003-06-12T12:00:00 2003-06-13T12:00:00 2003-06-14T12:00:00 + 2003-06-15T12:00:00 2003-06-16T12:00:00 2003-06-17T12:00:00 2003-06-18T12:00:00 2003-06-19T12:00:00 2003-06-20T12:00:00 + 2003-06-21T12:00:00 2003-06-22T12:00:00 2003-06-23T12:00:00 2003-06-24T12:00:00 2003-06-25T12:00:00 2003-06-26T12:00:00 + 2003-06-27T12:00:00 2003-06-28T12:00:00 2003-06-29T12:00:00 2003-06-30T12:00:00 2003-07-01T12:00:00 2003-07-02T12:00:00 + 2003-07-03T12:00:00 2003-07-04T12:00:00 2003-07-05T12:00:00 2003-07-06T12:00:00 2003-07-07T12:00:00 2003-07-08T12:00:00 + 2003-07-09T12:00:00 2003-07-10T12:00:00 2003-07-11T12:00:00 2003-07-12T12:00:00 2003-07-13T12:00:00 2003-07-14T12:00:00 + 2003-07-15T12:00:00 2003-07-16T12:00:00 2003-07-17T12:00:00 2003-07-18T12:00:00 2003-07-19T12:00:00 2003-07-20T12:00:00 + 2003-07-21T12:00:00 2003-07-22T12:00:00 2003-07-23T12:00:00 2003-07-24T12:00:00 2003-07-25T12:00:00 2003-07-26T12:00:00 + 2003-07-27T12:00:00 2003-07-28T12:00:00 2003-07-29T12:00:00 2003-07-30T12:00:00 2003-07-31T12:00:00 2003-08-01T12:00:00 + 2003-08-02T12:00:00 2003-08-03T12:00:00 2003-08-04T12:00:00 2003-08-05T12:00:00 2003-08-06T12:00:00 2003-08-07T12:00:00 + 2003-08-08T12:00:00 2003-08-09T12:00:00 2003-08-10T12:00:00 2003-08-11T12:00:00 2003-08-12T12:00:00 2003-08-13T12:00:00 + 2003-08-14T12:00:00 2003-08-15T12:00:00 2003-08-16T12:00:00 2003-08-17T12:00:00 2003-08-18T12:00:00 2003-08-19T12:00:00 + 2003-08-20T12:00:00 2003-08-21T12:00:00 2003-08-22T12:00:00 2003-08-23T12:00:00 2003-08-24T12:00:00 2003-08-25T12:00:00 + 2003-08-26T12:00:00 2003-08-27T12:00:00 2003-08-28T12:00:00 2003-08-29T12:00:00 2003-08-30T12:00:00 2003-08-31T12:00:00 + 2003-09-01T12:00:00 2003-09-02T12:00:00 2003-09-03T12:00:00 2003-09-04T12:00:00 2003-09-05T12:00:00 2003-09-06T12:00:00 + 2003-09-07T12:00:00 2003-09-08T12:00:00 2003-09-09T12:00:00 2003-09-10T12:00:00 2003-09-11T12:00:00 2003-09-12T12:00:00 + 2003-09-13T12:00:00 2003-09-14T12:00:00 2003-09-15T12:00:00 2003-09-16T12:00:00 2003-09-17T12:00:00 2003-09-18T12:00:00 + 2003-09-19T12:00:00 2003-09-20T12:00:00 2003-09-21T12:00:00 2003-09-22T12:00:00 2003-09-23T12:00:00 2003-09-24T12:00:00 + 2003-09-25T12:00:00 2003-09-26T12:00:00 2003-09-27T12:00:00 2003-09-28T12:00:00 2003-09-29T12:00:00 2003-09-30T12:00:00 + 2003-10-01T12:00:00 2003-10-02T12:00:00 2003-10-03T12:00:00 2003-10-04T12:00:00 2003-10-05T12:00:00 2003-10-06T12:00:00 + 2003-10-07T12:00:00 2003-10-08T12:00:00 2003-10-09T12:00:00 2003-10-10T12:00:00 2003-10-11T12:00:00 2003-10-12T12:00:00 + 2003-10-13T12:00:00 2003-10-14T12:00:00 2003-10-15T12:00:00 2003-10-16T12:00:00 2003-10-17T12:00:00 2003-10-18T12:00:00 + 2003-10-19T12:00:00 2003-10-20T12:00:00 2003-10-21T12:00:00 2003-10-22T12:00:00 2003-10-23T12:00:00 2003-10-24T12:00:00 + 2003-10-25T12:00:00 2003-10-26T12:00:00 2003-10-27T12:00:00 2003-10-28T12:00:00 2003-10-29T12:00:00 2003-10-30T12:00:00 + 2003-10-31T12:00:00 2003-11-01T12:00:00 2003-11-02T12:00:00 2003-11-03T12:00:00 2003-11-04T12:00:00 2003-11-05T12:00:00 + 2003-11-06T12:00:00 2003-11-07T12:00:00 2003-11-08T12:00:00 2003-11-09T12:00:00 2003-11-10T12:00:00 2003-11-11T12:00:00 + 2003-11-12T12:00:00 2003-11-13T12:00:00 2003-11-14T12:00:00 2003-11-15T12:00:00 2003-11-16T12:00:00 2003-11-17T12:00:00 + 2003-11-18T12:00:00 2003-11-19T12:00:00 2003-11-20T12:00:00 2003-11-21T12:00:00 2003-11-22T12:00:00 2003-11-23T12:00:00 + 2003-11-24T12:00:00 2003-11-25T12:00:00 2003-11-26T12:00:00 2003-11-27T12:00:00 2003-11-28T12:00:00 2003-11-29T12:00:00 + 2003-11-30T12:00:00 2003-12-01T12:00:00 2003-12-02T12:00:00 2003-12-03T12:00:00 2003-12-04T12:00:00 2003-12-05T12:00:00 + 2003-12-06T12:00:00 2003-12-07T12:00:00 2003-12-08T12:00:00 2003-12-09T12:00:00 2003-12-10T12:00:00 2003-12-11T12:00:00 + 2003-12-12T12:00:00 2003-12-13T12:00:00 2003-12-14T12:00:00 2003-12-15T12:00:00 2003-12-16T12:00:00 2003-12-17T12:00:00 + 2003-12-18T12:00:00 2003-12-19T12:00:00 2003-12-20T12:00:00 2003-12-21T12:00:00 2003-12-22T12:00:00 2003-12-23T12:00:00 + 2003-12-24T12:00:00 2003-12-25T12:00:00 2003-12-26T12:00:00 2003-12-27T12:00:00 2003-12-28T12:00:00 2003-12-29T12:00:00 + 2003-12-30T12:00:00 2003-12-31T12:00:00 2004-01-01T12:00:00 2004-01-02T12:00:00 2004-01-03T12:00:00 2004-01-04T12:00:00 + 2004-01-05T12:00:00 2004-01-06T12:00:00 2004-01-07T12:00:00 2004-01-08T12:00:00 2004-01-09T12:00:00 2004-01-10T12:00:00 + 2004-01-11T12:00:00 2004-01-12T12:00:00 2004-01-13T12:00:00 2004-01-14T12:00:00 2004-01-15T12:00:00 2004-01-16T12:00:00 + 2004-01-17T12:00:00 2004-01-18T12:00:00 2004-01-19T12:00:00 2004-01-20T12:00:00 2004-01-21T12:00:00 2004-01-22T12:00:00 + 2004-01-23T12:00:00 2004-01-24T12:00:00 2004-01-25T12:00:00 2004-01-26T12:00:00 2004-01-27T12:00:00 2004-01-28T12:00:00 + 2004-01-29T12:00:00 2004-01-30T12:00:00 2004-01-31T12:00:00 2004-02-01T12:00:00 2004-02-02T12:00:00 2004-02-03T12:00:00 + 2004-02-04T12:00:00 2004-02-05T12:00:00 2004-02-06T12:00:00 2004-02-07T12:00:00 2004-02-08T12:00:00 2004-02-09T12:00:00 + 2004-02-10T12:00:00 2004-02-11T12:00:00 2004-02-12T12:00:00 2004-02-13T12:00:00 2004-02-14T12:00:00 2004-02-15T12:00:00 + 2004-02-16T12:00:00 2004-02-17T12:00:00 2004-02-18T12:00:00 2004-02-19T12:00:00 2004-02-20T12:00:00 2004-02-21T12:00:00 + 2004-02-22T12:00:00 2004-02-23T12:00:00 2004-02-24T12:00:00 2004-02-25T12:00:00 2004-02-26T12:00:00 2004-02-27T12:00:00 + 2004-02-28T12:00:00 2004-02-29T12:00:00 2004-03-01T12:00:00 2004-03-02T12:00:00 2004-03-03T12:00:00 2004-03-04T12:00:00 + 2004-03-05T12:00:00 2004-03-06T12:00:00 2004-03-07T12:00:00 2004-03-08T12:00:00 2004-03-09T12:00:00 2004-03-10T12:00:00 + 2004-03-11T12:00:00 2004-03-12T12:00:00 2004-03-13T12:00:00 2004-03-14T12:00:00 2004-03-15T12:00:00 2004-03-16T12:00:00 + 2004-03-17T12:00:00 2004-03-18T12:00:00 2004-03-19T12:00:00 2004-03-20T12:00:00 2004-03-21T12:00:00 2004-03-22T12:00:00 + 2004-03-23T12:00:00 2004-03-24T12:00:00 2004-03-25T12:00:00 2004-03-26T12:00:00 2004-03-27T12:00:00 2004-03-28T12:00:00 + 2004-03-29T12:00:00 2004-03-30T12:00:00 2004-03-31T12:00:00 2004-04-01T12:00:00 2004-04-02T12:00:00 2004-04-03T12:00:00 + 2004-04-04T12:00:00 2004-04-05T12:00:00 2004-04-06T12:00:00 2004-04-07T12:00:00 2004-04-08T12:00:00 2004-04-09T12:00:00 + 2004-04-10T12:00:00 2004-04-11T12:00:00 2004-04-12T12:00:00 2004-04-13T12:00:00 2004-04-14T12:00:00 2004-04-15T12:00:00 + 2004-04-16T12:00:00 2004-04-17T12:00:00 2004-04-18T12:00:00 2004-04-19T12:00:00 2004-04-20T12:00:00 2004-04-21T12:00:00 + 2004-04-22T12:00:00 2004-04-23T12:00:00 2004-04-24T12:00:00 2004-04-25T12:00:00 2004-04-26T12:00:00 2004-04-27T12:00:00 + 2004-04-28T12:00:00 2004-04-29T12:00:00 2004-04-30T12:00:00 2004-05-01T12:00:00 2004-05-02T12:00:00 2004-05-03T12:00:00 + 2004-05-04T12:00:00 2004-05-05T12:00:00 2004-05-06T12:00:00 2004-05-07T12:00:00 2004-05-08T12:00:00 2004-05-09T12:00:00 + 2004-05-10T12:00:00 2004-05-11T12:00:00 2004-05-12T12:00:00 2004-05-13T12:00:00 2004-05-14T12:00:00 2004-05-15T12:00:00 + 2004-05-16T12:00:00 2004-05-17T12:00:00 2004-05-18T12:00:00 2004-05-19T12:00:00 2004-05-20T12:00:00 2004-05-21T12:00:00 + 2004-05-22T12:00:00 2004-05-23T12:00:00 2004-05-24T12:00:00 2004-05-25T12:00:00 2004-05-26T12:00:00 2004-05-27T12:00:00 + 2004-05-28T12:00:00 2004-05-29T12:00:00 2004-05-30T12:00:00 2004-05-31T12:00:00 2004-06-01T12:00:00 2004-06-02T12:00:00 + 2004-06-03T12:00:00 2004-06-04T12:00:00 2004-06-05T12:00:00 2004-06-06T12:00:00 2004-06-07T12:00:00 2004-06-08T12:00:00 + 2004-06-09T12:00:00 2004-06-10T12:00:00 2004-06-11T12:00:00 2004-06-12T12:00:00 2004-06-13T12:00:00 2004-06-14T12:00:00 + 2004-06-15T12:00:00 2004-06-16T12:00:00 2004-06-17T12:00:00 2004-06-18T12:00:00 2004-06-19T12:00:00 2004-06-20T12:00:00 + 2004-06-21T12:00:00 2004-06-22T12:00:00 2004-06-23T12:00:00 2004-06-24T12:00:00 2004-06-25T12:00:00 2004-06-26T12:00:00 + 2004-06-27T12:00:00 2004-06-28T12:00:00 2004-06-29T12:00:00 2004-06-30T12:00:00 2004-07-01T12:00:00 2004-07-02T12:00:00 + 2004-07-03T12:00:00 2004-07-04T12:00:00 2004-07-05T12:00:00 2004-07-06T12:00:00 2004-07-07T12:00:00 2004-07-08T12:00:00 + 2004-07-09T12:00:00 2004-07-10T12:00:00 2004-07-11T12:00:00 2004-07-12T12:00:00 2004-07-13T12:00:00 2004-07-14T12:00:00 + 2004-07-15T12:00:00 2004-07-16T12:00:00 2004-07-17T12:00:00 2004-07-18T12:00:00 2004-07-19T12:00:00 2004-07-20T12:00:00 + 2004-07-21T12:00:00 2004-07-22T12:00:00 2004-07-23T12:00:00 2004-07-24T12:00:00 2004-07-25T12:00:00 2004-07-26T12:00:00 + 2004-07-27T12:00:00 2004-07-28T12:00:00 2004-07-29T12:00:00 2004-07-30T12:00:00 2004-07-31T12:00:00 2004-08-01T12:00:00 + 2004-08-02T12:00:00 2004-08-03T12:00:00 2004-08-04T12:00:00 2004-08-05T12:00:00 2004-08-06T12:00:00 2004-08-07T12:00:00 + 2004-08-08T12:00:00 2004-08-09T12:00:00 2004-08-10T12:00:00 2004-08-11T12:00:00 2004-08-12T12:00:00 2004-08-13T12:00:00 + 2004-08-14T12:00:00 2004-08-15T12:00:00 2004-08-16T12:00:00 2004-08-17T12:00:00 2004-08-18T12:00:00 2004-08-19T12:00:00 + 2004-08-20T12:00:00 2004-08-21T12:00:00 2004-08-22T12:00:00 2004-08-23T12:00:00 2004-08-24T12:00:00 2004-08-25T12:00:00 + 2004-08-26T12:00:00 2004-08-27T12:00:00 2004-08-28T12:00:00 2004-08-29T12:00:00 2004-08-30T12:00:00 2004-08-31T12:00:00 + 2004-09-01T12:00:00 2004-09-02T12:00:00 2004-09-03T12:00:00 2004-09-04T12:00:00 2004-09-05T12:00:00 2004-09-06T12:00:00 + 2004-09-07T12:00:00 2004-09-08T12:00:00 2004-09-09T12:00:00 2004-09-10T12:00:00 2004-09-11T12:00:00 2004-09-12T12:00:00 + 2004-09-13T12:00:00 2004-09-14T12:00:00 2004-09-15T12:00:00 2004-09-16T12:00:00 2004-09-17T12:00:00 2004-09-18T12:00:00 + 2004-09-19T12:00:00 2004-09-20T12:00:00 2004-09-21T12:00:00 2004-09-22T12:00:00 2004-09-23T12:00:00 2004-09-24T12:00:00 + 2004-09-25T12:00:00 2004-09-26T12:00:00 2004-09-27T12:00:00 2004-09-28T12:00:00 2004-09-29T12:00:00 2004-09-30T12:00:00 + 2004-10-01T12:00:00 2004-10-02T12:00:00 2004-10-03T12:00:00 2004-10-04T12:00:00 2004-10-05T12:00:00 2004-10-06T12:00:00 + 2004-10-07T12:00:00 2004-10-08T12:00:00 2004-10-09T12:00:00 2004-10-10T12:00:00 2004-10-11T12:00:00 2004-10-12T12:00:00 + 2004-10-13T12:00:00 2004-10-14T12:00:00 2004-10-15T12:00:00 2004-10-16T12:00:00 2004-10-17T12:00:00 2004-10-18T12:00:00 + 2004-10-19T12:00:00 2004-10-20T12:00:00 2004-10-21T12:00:00 2004-10-22T12:00:00 2004-10-23T12:00:00 2004-10-24T12:00:00 + 2004-10-25T12:00:00 2004-10-26T12:00:00 2004-10-27T12:00:00 2004-10-28T12:00:00 2004-10-29T12:00:00 2004-10-30T12:00:00 + 2004-10-31T12:00:00 2004-11-01T12:00:00 2004-11-02T12:00:00 2004-11-03T12:00:00 2004-11-04T12:00:00 2004-11-05T12:00:00 + 2004-11-06T12:00:00 2004-11-07T12:00:00 2004-11-08T12:00:00 2004-11-09T12:00:00 2004-11-10T12:00:00 2004-11-11T12:00:00 + 2004-11-12T12:00:00 2004-11-13T12:00:00 2004-11-14T12:00:00 2004-11-15T12:00:00 2004-11-16T12:00:00 2004-11-17T12:00:00 + 2004-11-18T12:00:00 2004-11-19T12:00:00 2004-11-20T12:00:00 2004-11-21T12:00:00 2004-11-22T12:00:00 2004-11-23T12:00:00 + 2004-11-24T12:00:00 2004-11-25T12:00:00 2004-11-26T12:00:00 2004-11-27T12:00:00 2004-11-28T12:00:00 2004-11-29T12:00:00 + 2004-11-30T12:00:00 2004-12-01T12:00:00 2004-12-02T12:00:00 2004-12-03T12:00:00 2004-12-04T12:00:00 2004-12-05T12:00:00 + 2004-12-06T12:00:00 2004-12-07T12:00:00 2004-12-08T12:00:00 2004-12-09T12:00:00 2004-12-10T12:00:00 2004-12-11T12:00:00 + 2004-12-12T12:00:00 2004-12-13T12:00:00 2004-12-14T12:00:00 2004-12-15T12:00:00 2004-12-16T12:00:00 2004-12-17T12:00:00 + 2004-12-18T12:00:00 2004-12-19T12:00:00 2004-12-20T12:00:00 2004-12-21T12:00:00 2004-12-22T12:00:00 2004-12-23T12:00:00 + 2004-12-24T12:00:00 2004-12-25T12:00:00 2004-12-26T12:00:00 2004-12-27T12:00:00 2004-12-28T12:00:00 2004-12-29T12:00:00 + 2004-12-30T12:00:00 2004-12-31T12:00:00 2005-01-01T12:00:00 2005-01-02T12:00:00 2005-01-03T12:00:00 2005-01-04T12:00:00 + 2005-01-05T12:00:00 2005-01-06T12:00:00 2005-01-07T12:00:00 2005-01-08T12:00:00 2005-01-09T12:00:00 2005-01-10T12:00:00 + 2005-01-11T12:00:00 2005-01-12T12:00:00 2005-01-13T12:00:00 2005-01-14T12:00:00 2005-01-15T12:00:00 2005-01-16T12:00:00 + 2005-01-17T12:00:00 2005-01-18T12:00:00 2005-01-19T12:00:00 2005-01-20T12:00:00 2005-01-21T12:00:00 2005-01-22T12:00:00 + 2005-01-23T12:00:00 2005-01-24T12:00:00 2005-01-25T12:00:00 2005-01-26T12:00:00 2005-01-27T12:00:00 2005-01-28T12:00:00 + 2005-01-29T12:00:00 2005-01-30T12:00:00 2005-01-31T12:00:00 2005-02-01T12:00:00 2005-02-02T12:00:00 2005-02-03T12:00:00 + 2005-02-04T12:00:00 2005-02-05T12:00:00 2005-02-06T12:00:00 2005-02-07T12:00:00 2005-02-08T12:00:00 2005-02-09T12:00:00 + 2005-02-10T12:00:00 2005-02-11T12:00:00 2005-02-12T12:00:00 2005-02-13T12:00:00 2005-02-14T12:00:00 2005-02-15T12:00:00 + 2005-02-16T12:00:00 2005-02-17T12:00:00 2005-02-18T12:00:00 2005-02-19T12:00:00 2005-02-20T12:00:00 2005-02-21T12:00:00 + 2005-02-22T12:00:00 2005-02-23T12:00:00 2005-02-24T12:00:00 2005-02-25T12:00:00 2005-02-26T12:00:00 2005-02-27T12:00:00 + 2005-02-28T12:00:00 2005-03-01T12:00:00 2005-03-02T12:00:00 2005-03-03T12:00:00 2005-03-04T12:00:00 2005-03-05T12:00:00 + 2005-03-06T12:00:00 2005-03-07T12:00:00 2005-03-08T12:00:00 2005-03-09T12:00:00 2005-03-10T12:00:00 2005-03-11T12:00:00 + 2005-03-12T12:00:00 2005-03-13T12:00:00 2005-03-14T12:00:00 2005-03-15T12:00:00 2005-03-16T12:00:00 2005-03-17T12:00:00 + 2005-03-18T12:00:00 2005-03-19T12:00:00 2005-03-20T12:00:00 2005-03-21T12:00:00 2005-03-22T12:00:00 2005-03-23T12:00:00 + 2005-03-24T12:00:00 2005-03-25T12:00:00 2005-03-26T12:00:00 2005-03-27T12:00:00 2005-03-28T12:00:00 2005-03-29T12:00:00 + 2005-03-30T12:00:00 2005-03-31T12:00:00 2005-04-01T12:00:00 2005-04-02T12:00:00 2005-04-03T12:00:00 2005-04-04T12:00:00 + 2005-04-05T12:00:00 2005-04-06T12:00:00 2005-04-07T12:00:00 2005-04-08T12:00:00 2005-04-09T12:00:00 2005-04-10T12:00:00 + 2005-04-11T12:00:00 2005-04-12T12:00:00 2005-04-13T12:00:00 2005-04-14T12:00:00 2005-04-15T12:00:00 2005-04-16T12:00:00 + 2005-04-17T12:00:00 2005-04-18T12:00:00 2005-04-19T12:00:00 2005-04-20T12:00:00 2005-04-21T12:00:00 2005-04-22T12:00:00 + 2005-04-23T12:00:00 2005-04-24T12:00:00 2005-04-25T12:00:00 2005-04-26T12:00:00 2005-04-27T12:00:00 2005-04-28T12:00:00 + 2005-04-29T12:00:00 2005-04-30T12:00:00 2005-05-01T12:00:00 2005-05-02T12:00:00 2005-05-03T12:00:00 2005-05-04T12:00:00 + 2005-05-05T12:00:00 2005-05-06T12:00:00 2005-05-07T12:00:00 2005-05-08T12:00:00 2005-05-09T12:00:00 2005-05-10T12:00:00 + 2005-05-11T12:00:00 2005-05-12T12:00:00 2005-05-13T12:00:00 2005-05-14T12:00:00 2005-05-15T12:00:00 2005-05-16T12:00:00 + 2005-05-17T12:00:00 2005-05-18T12:00:00 2005-05-19T12:00:00 2005-05-20T12:00:00 2005-05-21T12:00:00 2005-05-22T12:00:00 + 2005-05-23T12:00:00 2005-05-24T12:00:00 2005-05-25T12:00:00 2005-05-26T12:00:00 2005-05-27T12:00:00 2005-05-28T12:00:00 + 2005-05-29T12:00:00 2005-05-30T12:00:00 2005-05-31T12:00:00 2005-06-01T12:00:00 2005-06-02T12:00:00 2005-06-03T12:00:00 + 2005-06-04T12:00:00 2005-06-05T12:00:00 2005-06-06T12:00:00 2005-06-07T12:00:00 2005-06-08T12:00:00 2005-06-09T12:00:00 + 2005-06-10T12:00:00 2005-06-11T12:00:00 2005-06-12T12:00:00 2005-06-13T12:00:00 2005-06-14T12:00:00 2005-06-15T12:00:00 + 2005-06-16T12:00:00 2005-06-17T12:00:00 2005-06-18T12:00:00 2005-06-19T12:00:00 2005-06-20T12:00:00 2005-06-21T12:00:00 + 2005-06-22T12:00:00 2005-06-23T12:00:00 2005-06-24T12:00:00 2005-06-25T12:00:00 2005-06-26T12:00:00 2005-06-27T12:00:00 + 2005-06-28T12:00:00 2005-06-29T12:00:00 2005-06-30T12:00:00 2005-07-01T12:00:00 2005-07-02T12:00:00 2005-07-03T12:00:00 + 2005-07-04T12:00:00 2005-07-05T12:00:00 2005-07-06T12:00:00 2005-07-07T12:00:00 2005-07-08T12:00:00 2005-07-09T12:00:00 + 2005-07-10T12:00:00 2005-07-11T12:00:00 2005-07-12T12:00:00 2005-07-13T12:00:00 2005-07-14T12:00:00 2005-07-15T12:00:00 + 2005-07-16T12:00:00 2005-07-17T12:00:00 2005-07-18T12:00:00 2005-07-19T12:00:00 2005-07-20T12:00:00 2005-07-21T12:00:00 + 2005-07-22T12:00:00 2005-07-23T12:00:00 2005-07-24T12:00:00 2005-07-25T12:00:00 2005-07-26T12:00:00 2005-07-27T12:00:00 + 2005-07-28T12:00:00 2005-07-29T12:00:00 2005-07-30T12:00:00 2005-07-31T12:00:00 2005-08-01T12:00:00 2005-08-02T12:00:00 + 2005-08-03T12:00:00 2005-08-04T12:00:00 2005-08-05T12:00:00 2005-08-06T12:00:00 2005-08-07T12:00:00 2005-08-08T12:00:00 + 2005-08-09T12:00:00 2005-08-10T12:00:00 2005-08-11T12:00:00 2005-08-12T12:00:00 2005-08-13T12:00:00 2005-08-14T12:00:00 + 2005-08-15T12:00:00 2005-08-16T12:00:00 2005-08-17T12:00:00 2005-08-18T12:00:00 2005-08-19T12:00:00 2005-08-20T12:00:00 + 2005-08-21T12:00:00 2005-08-22T12:00:00 2005-08-23T12:00:00 2005-08-24T12:00:00 2005-08-25T12:00:00 2005-08-26T12:00:00 + 2005-08-27T12:00:00 2005-08-28T12:00:00 2005-08-29T12:00:00 2005-08-30T12:00:00 2005-08-31T12:00:00 2005-09-01T12:00:00 + 2005-09-02T12:00:00 2005-09-03T12:00:00 2005-09-04T12:00:00 2005-09-05T12:00:00 2005-09-06T12:00:00 2005-09-07T12:00:00 + 2005-09-08T12:00:00 2005-09-09T12:00:00 2005-09-10T12:00:00 2005-09-11T12:00:00 2005-09-12T12:00:00 2005-09-13T12:00:00 + 2005-09-14T12:00:00 2005-09-15T12:00:00 2005-09-16T12:00:00 2005-09-17T12:00:00 2005-09-18T12:00:00 2005-09-19T12:00:00 + 2005-09-20T12:00:00 2005-09-21T12:00:00 2005-09-22T12:00:00 2005-09-23T12:00:00 2005-09-24T12:00:00 2005-09-25T12:00:00 + 2005-09-26T12:00:00 2005-09-27T12:00:00 2005-09-28T12:00:00 2005-09-29T12:00:00 2005-09-30T12:00:00 2005-10-01T12:00:00 + 2005-10-02T12:00:00 2005-10-03T12:00:00 2005-10-04T12:00:00 2005-10-05T12:00:00 2005-10-06T12:00:00 2005-10-07T12:00:00 + 2005-10-08T12:00:00 2005-10-09T12:00:00 2005-10-10T12:00:00 2005-10-11T12:00:00 2005-10-12T12:00:00 2005-10-13T12:00:00 + 2005-10-14T12:00:00 2005-10-15T12:00:00 2005-10-16T12:00:00 2005-10-17T12:00:00 2005-10-18T12:00:00 2005-10-19T12:00:00 + 2005-10-20T12:00:00 2005-10-21T12:00:00 2005-10-22T12:00:00 2005-10-23T12:00:00 2005-10-24T12:00:00 2005-10-25T12:00:00 + 2005-10-26T12:00:00 2005-10-27T12:00:00 2005-10-28T12:00:00 2005-10-29T12:00:00 2005-10-30T12:00:00 2005-10-31T12:00:00 + 2005-11-01T12:00:00 2005-11-02T12:00:00 2005-11-03T12:00:00 2005-11-04T12:00:00 2005-11-05T12:00:00 2005-11-06T12:00:00 + 2005-11-07T12:00:00 2005-11-08T12:00:00 2005-11-09T12:00:00 2005-11-10T12:00:00 2005-11-11T12:00:00 2005-11-12T12:00:00 + 2005-11-13T12:00:00 2005-11-14T12:00:00 2005-11-15T12:00:00 2005-11-16T12:00:00 2005-11-17T12:00:00 2005-11-18T12:00:00 + 2005-11-19T12:00:00 2005-11-20T12:00:00 2005-11-21T12:00:00 2005-11-22T12:00:00 2005-11-23T12:00:00 2005-11-24T12:00:00 + 2005-11-25T12:00:00 2005-11-26T12:00:00 2005-11-27T12:00:00 2005-11-28T12:00:00 2005-11-29T12:00:00 2005-11-30T12:00:00 + 2005-12-01T12:00:00 2005-12-02T12:00:00 2005-12-03T12:00:00 2005-12-04T12:00:00 2005-12-05T12:00:00 2005-12-06T12:00:00 + 2005-12-07T12:00:00 2005-12-08T12:00:00 2005-12-09T12:00:00 2005-12-10T12:00:00 2005-12-11T12:00:00 2005-12-12T12:00:00 + 2005-12-13T12:00:00 2005-12-14T12:00:00 2005-12-15T12:00:00 2005-12-16T12:00:00 2005-12-17T12:00:00 2005-12-18T12:00:00 + 2005-12-19T12:00:00 2005-12-20T12:00:00 2005-12-21T12:00:00 2005-12-22T12:00:00 2005-12-23T12:00:00 2005-12-24T12:00:00 + 2005-12-25T12:00:00 2005-12-26T12:00:00 2005-12-27T12:00:00 2005-12-28T12:00:00 2005-12-29T12:00:00 2005-12-30T12:00:00 + 2005-12-31T12:00:00 2006-01-01T12:00:00 2006-01-02T12:00:00 2006-01-03T12:00:00 2006-01-04T12:00:00 2006-01-05T12:00:00 + 2006-01-06T12:00:00 2006-01-07T12:00:00 2006-01-08T12:00:00 2006-01-09T12:00:00 2006-01-10T12:00:00 2006-01-11T12:00:00 + 2006-01-12T12:00:00 2006-01-13T12:00:00 2006-01-14T12:00:00 2006-01-15T12:00:00 2006-01-16T12:00:00 2006-01-17T12:00:00 + 2006-01-18T12:00:00 2006-01-19T12:00:00 2006-01-20T12:00:00 2006-01-21T12:00:00 2006-01-22T12:00:00 2006-01-23T12:00:00 + 2006-01-24T12:00:00 2006-01-25T12:00:00 2006-01-26T12:00:00 2006-01-27T12:00:00 2006-01-28T12:00:00 2006-01-29T12:00:00 + 2006-01-30T12:00:00 2006-01-31T12:00:00 2006-02-01T12:00:00 2006-02-02T12:00:00 2006-02-03T12:00:00 2006-02-04T12:00:00 + 2006-02-05T12:00:00 2006-02-06T12:00:00 2006-02-07T12:00:00 2006-02-08T12:00:00 2006-02-09T12:00:00 2006-02-10T12:00:00 + 2006-02-11T12:00:00 2006-02-12T12:00:00 2006-02-13T12:00:00 2006-02-14T12:00:00 2006-02-15T12:00:00 2006-02-16T12:00:00 + 2006-02-17T12:00:00 2006-02-18T12:00:00 2006-02-19T12:00:00 2006-02-20T12:00:00 2006-02-21T12:00:00 2006-02-22T12:00:00 + 2006-02-23T12:00:00 2006-02-24T12:00:00 2006-02-25T12:00:00 2006-02-26T12:00:00 2006-02-27T12:00:00 2006-02-28T12:00:00 + 2006-03-01T12:00:00 2006-03-02T12:00:00 2006-03-03T12:00:00 2006-03-04T12:00:00 2006-03-05T12:00:00 2006-03-06T12:00:00 + 2006-03-07T12:00:00 2006-03-08T12:00:00 2006-03-09T12:00:00 2006-03-10T12:00:00 2006-03-11T12:00:00 2006-03-12T12:00:00 + 2006-03-13T12:00:00 2006-03-14T12:00:00 2006-03-15T12:00:00 2006-03-16T12:00:00 2006-03-17T12:00:00 2006-03-18T12:00:00 + 2006-03-19T12:00:00 2006-03-20T12:00:00 2006-03-21T12:00:00 2006-03-22T12:00:00 2006-03-23T12:00:00 2006-03-24T12:00:00 + 2006-03-25T12:00:00 2006-03-26T12:00:00 2006-03-27T12:00:00 2006-03-28T12:00:00 2006-03-29T12:00:00 2006-03-30T12:00:00 + 2006-03-31T12:00:00 2006-04-01T12:00:00 2006-04-02T12:00:00 2006-04-03T12:00:00 2006-04-04T12:00:00 2006-04-05T12:00:00 + 2006-04-06T12:00:00 2006-04-07T12:00:00 2006-04-08T12:00:00 2006-04-09T12:00:00 2006-04-10T12:00:00 2006-04-11T12:00:00 + 2006-04-12T12:00:00 2006-04-13T12:00:00 2006-04-14T12:00:00 2006-04-15T12:00:00 2006-04-16T12:00:00 2006-04-17T12:00:00 + 2006-04-18T12:00:00 2006-04-19T12:00:00 2006-04-20T12:00:00 2006-04-21T12:00:00 2006-04-22T12:00:00 2006-04-23T12:00:00 + 2006-04-24T12:00:00 2006-04-25T12:00:00 2006-04-26T12:00:00 2006-04-27T12:00:00 2006-04-28T12:00:00 2006-04-29T12:00:00 + 2006-04-30T12:00:00 2006-05-01T12:00:00 2006-05-02T12:00:00 2006-05-03T12:00:00 2006-05-04T12:00:00 2006-05-05T12:00:00 + 2006-05-06T12:00:00 2006-05-07T12:00:00 2006-05-08T12:00:00 2006-05-09T12:00:00 2006-05-10T12:00:00 2006-05-11T12:00:00 + 2006-05-12T12:00:00 2006-05-13T12:00:00 2006-05-14T12:00:00 2006-05-15T12:00:00 2006-05-16T12:00:00 2006-05-17T12:00:00 + 2006-05-18T12:00:00 2006-05-19T12:00:00 2006-05-20T12:00:00 2006-05-21T12:00:00 2006-05-22T12:00:00 2006-05-23T12:00:00 + 2006-05-24T12:00:00 2006-05-25T12:00:00 2006-05-26T12:00:00 2006-05-27T12:00:00 2006-05-28T12:00:00 2006-05-29T12:00:00 + 2006-05-30T12:00:00 2006-05-31T12:00:00 2006-06-01T12:00:00 2006-06-02T12:00:00 2006-06-03T12:00:00 2006-06-04T12:00:00 + 2006-06-05T12:00:00 2006-06-06T12:00:00 2006-06-07T12:00:00 2006-06-08T12:00:00 2006-06-09T12:00:00 2006-06-10T12:00:00 + 2006-06-11T12:00:00 2006-06-12T12:00:00 2006-06-13T12:00:00 2006-06-14T12:00:00 2006-06-15T12:00:00 2006-06-16T12:00:00 + 2006-06-17T12:00:00 2006-06-18T12:00:00 2006-06-19T12:00:00 2006-06-20T12:00:00 2006-06-21T12:00:00 2006-06-22T12:00:00 + 2006-06-23T12:00:00 2006-06-24T12:00:00 2006-06-25T12:00:00 2006-06-26T12:00:00 2006-06-27T12:00:00 2006-06-28T12:00:00 + 2006-06-29T12:00:00 2006-06-30T12:00:00 2006-07-01T12:00:00 2006-07-02T12:00:00 2006-07-03T12:00:00 2006-07-04T12:00:00 + 2006-07-05T12:00:00 2006-07-06T12:00:00 2006-07-07T12:00:00 2006-07-08T12:00:00 2006-07-09T12:00:00 2006-07-10T12:00:00 + 2006-07-11T12:00:00 2006-07-12T12:00:00 2006-07-13T12:00:00 2006-07-14T12:00:00 2006-07-15T12:00:00 2006-07-16T12:00:00 + 2006-07-17T12:00:00 2006-07-18T12:00:00 2006-07-19T12:00:00 2006-07-20T12:00:00 2006-07-21T12:00:00 2006-07-22T12:00:00 + 2006-07-23T12:00:00 2006-07-24T12:00:00 2006-07-25T12:00:00 2006-07-26T12:00:00 2006-07-27T12:00:00 2006-07-28T12:00:00 + 2006-07-29T12:00:00 2006-07-30T12:00:00 2006-07-31T12:00:00 2006-08-01T12:00:00 2006-08-02T12:00:00 2006-08-03T12:00:00 + 2006-08-04T12:00:00 2006-08-05T12:00:00 2006-08-06T12:00:00 2006-08-07T12:00:00 2006-08-08T12:00:00 2006-08-09T12:00:00 + 2006-08-10T12:00:00 2006-08-11T12:00:00 2006-08-12T12:00:00 2006-08-13T12:00:00 2006-08-14T12:00:00 2006-08-15T12:00:00 + 2006-08-16T12:00:00 2006-08-17T12:00:00 2006-08-18T12:00:00 2006-08-19T12:00:00 2006-08-20T12:00:00 2006-08-21T12:00:00 + 2006-08-22T12:00:00 2006-08-23T12:00:00 2006-08-24T12:00:00 2006-08-25T12:00:00 2006-08-26T12:00:00 2006-08-27T12:00:00 + 2006-08-28T12:00:00 2006-08-29T12:00:00 2006-08-30T12:00:00 2006-08-31T12:00:00 2006-09-01T12:00:00 2006-09-02T12:00:00 + 2006-09-03T12:00:00 2006-09-04T12:00:00 2006-09-05T12:00:00 2006-09-06T12:00:00 2006-09-07T12:00:00 2006-09-08T12:00:00 + 2006-09-09T12:00:00 2006-09-10T12:00:00 2006-09-11T12:00:00 2006-09-12T12:00:00 2006-09-13T12:00:00 2006-09-14T12:00:00 + 2006-09-15T12:00:00 2006-09-16T12:00:00 2006-09-17T12:00:00 2006-09-18T12:00:00 2006-09-19T12:00:00 2006-09-20T12:00:00 + 2006-09-21T12:00:00 2006-09-22T12:00:00 2006-09-23T12:00:00 2006-09-24T12:00:00 2006-09-25T12:00:00 2006-09-26T12:00:00 + 2006-09-27T12:00:00 2006-09-28T12:00:00 2006-09-29T12:00:00 2006-09-30T12:00:00 2006-10-01T12:00:00 2006-10-02T12:00:00 + 2006-10-03T12:00:00 2006-10-04T12:00:00 2006-10-05T12:00:00 2006-10-06T12:00:00 2006-10-07T12:00:00 2006-10-08T12:00:00 + 2006-10-09T12:00:00 2006-10-10T12:00:00 2006-10-11T12:00:00 2006-10-12T12:00:00 2006-10-13T12:00:00 2006-10-14T12:00:00 + 2006-10-15T12:00:00 2006-10-16T12:00:00 2006-10-17T12:00:00 2006-10-18T12:00:00 2006-10-19T12:00:00 2006-10-20T12:00:00 + 2006-10-21T12:00:00 2006-10-22T12:00:00 2006-10-23T12:00:00 2006-10-24T12:00:00 2006-10-25T12:00:00 2006-10-26T12:00:00 + 2006-10-27T12:00:00 2006-10-28T12:00:00 2006-10-29T12:00:00 2006-10-30T12:00:00 2006-10-31T12:00:00 2006-11-01T12:00:00 + 2006-11-02T12:00:00 2006-11-03T12:00:00 2006-11-04T12:00:00 2006-11-05T12:00:00 2006-11-06T12:00:00 2006-11-07T12:00:00 + 2006-11-08T12:00:00 2006-11-09T12:00:00 2006-11-10T12:00:00 2006-11-11T12:00:00 2006-11-12T12:00:00 2006-11-13T12:00:00 + 2006-11-14T12:00:00 2006-11-15T12:00:00 2006-11-16T12:00:00 2006-11-17T12:00:00 2006-11-18T12:00:00 2006-11-19T12:00:00 + 2006-11-20T12:00:00 2006-11-21T12:00:00 2006-11-22T12:00:00 2006-11-23T12:00:00 2006-11-24T12:00:00 2006-11-25T12:00:00 + 2006-11-26T12:00:00 2006-11-27T12:00:00 2006-11-28T12:00:00 2006-11-29T12:00:00 2006-11-30T12:00:00 2006-12-01T12:00:00 + 2006-12-02T12:00:00 2006-12-03T12:00:00 2006-12-04T12:00:00 2006-12-05T12:00:00 2006-12-06T12:00:00 2006-12-07T12:00:00 + 2006-12-08T12:00:00 2006-12-09T12:00:00 2006-12-10T12:00:00 2006-12-11T12:00:00 2006-12-12T12:00:00 2006-12-13T12:00:00 + 2006-12-14T12:00:00 2006-12-15T12:00:00 2006-12-16T12:00:00 2006-12-17T12:00:00 2006-12-18T12:00:00 2006-12-19T12:00:00 + 2006-12-20T12:00:00 2006-12-21T12:00:00 2006-12-22T12:00:00 2006-12-23T12:00:00 2006-12-24T12:00:00 2006-12-25T12:00:00 + 2006-12-26T12:00:00 2006-12-27T12:00:00 2006-12-28T12:00:00 2006-12-29T12:00:00 2006-12-30T12:00:00 2006-12-31T12:00:00 + 2007-01-01T12:00:00 2007-01-02T12:00:00 2007-01-03T12:00:00 2007-01-04T12:00:00 2007-01-05T12:00:00 2007-01-06T12:00:00 + 2007-01-07T12:00:00 2007-01-08T12:00:00 2007-01-09T12:00:00 2007-01-10T12:00:00 2007-01-11T12:00:00 2007-01-12T12:00:00 + 2007-01-13T12:00:00 2007-01-14T12:00:00 2007-01-15T12:00:00 2007-01-16T12:00:00 2007-01-17T12:00:00 2007-01-18T12:00:00 + 2007-01-19T12:00:00 2007-01-20T12:00:00 2007-01-21T12:00:00 2007-01-22T12:00:00 2007-01-23T12:00:00 2007-01-24T12:00:00 + 2007-01-25T12:00:00 2007-01-26T12:00:00 2007-01-27T12:00:00 2007-01-28T12:00:00 2007-01-29T12:00:00 2007-01-30T12:00:00 + 2007-01-31T12:00:00 2007-02-01T12:00:00 2007-02-02T12:00:00 2007-02-03T12:00:00 2007-02-04T12:00:00 2007-02-05T12:00:00 + 2007-02-06T12:00:00 2007-02-07T12:00:00 2007-02-08T12:00:00 2007-02-09T12:00:00 2007-02-10T12:00:00 2007-02-11T12:00:00 + 2007-02-12T12:00:00 2007-02-13T12:00:00 2007-02-14T12:00:00 2007-02-15T12:00:00 2007-02-16T12:00:00 2007-02-17T12:00:00 + 2007-02-18T12:00:00 2007-02-19T12:00:00 2007-02-20T12:00:00 2007-02-21T12:00:00 2007-02-22T12:00:00 2007-02-23T12:00:00 + 2007-02-24T12:00:00 2007-02-25T12:00:00 2007-02-26T12:00:00 2007-02-27T12:00:00 2007-02-28T12:00:00 2007-03-01T12:00:00 + 2007-03-02T12:00:00 2007-03-03T12:00:00 2007-03-04T12:00:00 2007-03-05T12:00:00 2007-03-06T12:00:00 2007-03-07T12:00:00 + 2007-03-08T12:00:00 2007-03-09T12:00:00 2007-03-10T12:00:00 2007-03-11T12:00:00 2007-03-12T12:00:00 2007-03-13T12:00:00 + 2007-03-14T12:00:00 2007-03-15T12:00:00 2007-03-16T12:00:00 2007-03-17T12:00:00 2007-03-18T12:00:00 2007-03-19T12:00:00 + 2007-03-20T12:00:00 2007-03-21T12:00:00 2007-03-22T12:00:00 2007-03-23T12:00:00 2007-03-24T12:00:00 2007-03-25T12:00:00 + 2007-03-26T12:00:00 2007-03-27T12:00:00 2007-03-28T12:00:00 2007-03-29T12:00:00 2007-03-30T12:00:00 2007-03-31T12:00:00 + 2007-04-01T12:00:00 2007-04-02T12:00:00 2007-04-03T12:00:00 2007-04-04T12:00:00 2007-04-05T12:00:00 2007-04-06T12:00:00 + 2007-04-07T12:00:00 2007-04-08T12:00:00 2007-04-09T12:00:00 2007-04-10T12:00:00 2007-04-11T12:00:00 2007-04-12T12:00:00 + 2007-04-13T12:00:00 2007-04-14T12:00:00 2007-04-15T12:00:00 2007-04-16T12:00:00 2007-04-17T12:00:00 2007-04-18T12:00:00 + 2007-04-19T12:00:00 2007-04-20T12:00:00 2007-04-21T12:00:00 2007-04-22T12:00:00 2007-04-23T12:00:00 2007-04-24T12:00:00 + 2007-04-25T12:00:00 2007-04-26T12:00:00 2007-04-27T12:00:00 2007-04-28T12:00:00 2007-04-29T12:00:00 2007-04-30T12:00:00 + 2007-05-01T12:00:00 2007-05-02T12:00:00 2007-05-03T12:00:00 2007-05-04T12:00:00 2007-05-05T12:00:00 2007-05-06T12:00:00 + 2007-05-07T12:00:00 2007-05-08T12:00:00 2007-05-09T12:00:00 2007-05-10T12:00:00 2007-05-11T12:00:00 2007-05-12T12:00:00 + 2007-05-13T12:00:00 2007-05-14T12:00:00 2007-05-15T12:00:00 2007-05-16T12:00:00 2007-05-17T12:00:00 2007-05-18T12:00:00 + 2007-05-19T12:00:00 2007-05-20T12:00:00 2007-05-21T12:00:00 2007-05-22T12:00:00 2007-05-23T12:00:00 2007-05-24T12:00:00 + 2007-05-25T12:00:00 2007-05-26T12:00:00 2007-05-27T12:00:00 2007-05-28T12:00:00 2007-05-29T12:00:00 2007-05-30T12:00:00 + 2007-05-31T12:00:00 2007-06-01T12:00:00 2007-06-02T12:00:00 2007-06-03T12:00:00 2007-06-04T12:00:00 2007-06-05T12:00:00 + 2007-06-06T12:00:00 2007-06-07T12:00:00 2007-06-08T12:00:00 2007-06-09T12:00:00 2007-06-10T12:00:00 2007-06-11T12:00:00 + 2007-06-12T12:00:00 2007-06-13T12:00:00 2007-06-14T12:00:00 2007-06-15T12:00:00 2007-06-16T12:00:00 2007-06-17T12:00:00 + 2007-06-18T12:00:00 2007-06-19T12:00:00 2007-06-20T12:00:00 2007-06-21T12:00:00 2007-06-22T12:00:00 2007-06-23T12:00:00 + 2007-06-24T12:00:00 2007-06-25T12:00:00 2007-06-26T12:00:00 2007-06-27T12:00:00 2007-06-28T12:00:00 2007-06-29T12:00:00 + 2007-06-30T12:00:00 2007-07-01T12:00:00 2007-07-02T12:00:00 2007-07-03T12:00:00 2007-07-04T12:00:00 2007-07-05T12:00:00 + 2007-07-06T12:00:00 2007-07-07T12:00:00 2007-07-08T12:00:00 2007-07-09T12:00:00 2007-07-10T12:00:00 2007-07-11T12:00:00 + 2007-07-12T12:00:00 2007-07-13T12:00:00 2007-07-14T12:00:00 2007-07-15T12:00:00 2007-07-16T12:00:00 2007-07-17T12:00:00 + 2007-07-18T12:00:00 2007-07-19T12:00:00 2007-07-20T12:00:00 2007-07-21T12:00:00 2007-07-22T12:00:00 2007-07-23T12:00:00 + 2007-07-24T12:00:00 2007-07-25T12:00:00 2007-07-26T12:00:00 2007-07-27T12:00:00 2007-07-28T12:00:00 2007-07-29T12:00:00 + 2007-07-30T12:00:00 2007-07-31T12:00:00 2007-08-01T12:00:00 2007-08-02T12:00:00 2007-08-03T12:00:00 2007-08-04T12:00:00 + 2007-08-05T12:00:00 2007-08-06T12:00:00 2007-08-07T12:00:00 2007-08-08T12:00:00 2007-08-09T12:00:00 2007-08-10T12:00:00 + 2007-08-11T12:00:00 2007-08-12T12:00:00 2007-08-13T12:00:00 2007-08-14T12:00:00 2007-08-15T12:00:00 2007-08-16T12:00:00 + 2007-08-17T12:00:00 2007-08-18T12:00:00 2007-08-19T12:00:00 2007-08-20T12:00:00 2007-08-21T12:00:00 2007-08-22T12:00:00 + 2007-08-23T12:00:00 2007-08-24T12:00:00 2007-08-25T12:00:00 2007-08-26T12:00:00 2007-08-27T12:00:00 2007-08-28T12:00:00 + 2007-08-29T12:00:00 2007-08-30T12:00:00 2007-08-31T12:00:00 2007-09-01T12:00:00 2007-09-02T12:00:00 2007-09-03T12:00:00 + 2007-09-04T12:00:00 2007-09-05T12:00:00 2007-09-06T12:00:00 2007-09-07T12:00:00 2007-09-08T12:00:00 2007-09-09T12:00:00 + 2007-09-10T12:00:00 2007-09-11T12:00:00 2007-09-12T12:00:00 2007-09-13T12:00:00 2007-09-14T12:00:00 2007-09-15T12:00:00 + 2007-09-16T12:00:00 2007-09-17T12:00:00 2007-09-18T12:00:00 2007-09-19T12:00:00 2007-09-20T12:00:00 2007-09-21T12:00:00 + 2007-09-22T12:00:00 2007-09-23T12:00:00 2007-09-24T12:00:00 2007-09-25T12:00:00 2007-09-26T12:00:00 2007-09-27T12:00:00 + 2007-09-28T12:00:00 2007-09-29T12:00:00 2007-09-30T12:00:00 2007-10-01T12:00:00 2007-10-02T12:00:00 2007-10-03T12:00:00 + 2007-10-04T12:00:00 2007-10-05T12:00:00 2007-10-06T12:00:00 2007-10-07T12:00:00 2007-10-08T12:00:00 2007-10-09T12:00:00 + 2007-10-10T12:00:00 2007-10-11T12:00:00 2007-10-12T12:00:00 2007-10-13T12:00:00 2007-10-14T12:00:00 2007-10-15T12:00:00 + 2007-10-16T12:00:00 2007-10-17T12:00:00 2007-10-18T12:00:00 2007-10-19T12:00:00 2007-10-20T12:00:00 2007-10-21T12:00:00 + 2007-10-22T12:00:00 2007-10-23T12:00:00 2007-10-24T12:00:00 2007-10-25T12:00:00 2007-10-26T12:00:00 2007-10-27T12:00:00 + 2007-10-28T12:00:00 2007-10-29T12:00:00 2007-10-30T12:00:00 2007-10-31T12:00:00 2007-11-01T12:00:00 2007-11-02T12:00:00 + 2007-11-03T12:00:00 2007-11-04T12:00:00 2007-11-05T12:00:00 2007-11-06T12:00:00 2007-11-07T12:00:00 2007-11-08T12:00:00 + 2007-11-09T12:00:00 2007-11-10T12:00:00 2007-11-11T12:00:00 2007-11-12T12:00:00 2007-11-13T12:00:00 2007-11-14T12:00:00 + 2007-11-15T12:00:00 2007-11-16T12:00:00 2007-11-17T12:00:00 2007-11-18T12:00:00 2007-11-19T12:00:00 2007-11-20T12:00:00 + 2007-11-21T12:00:00 2007-11-22T12:00:00 2007-11-23T12:00:00 2007-11-24T12:00:00 2007-11-25T12:00:00 2007-11-26T12:00:00 + 2007-11-27T12:00:00 2007-11-28T12:00:00 2007-11-29T12:00:00 2007-11-30T12:00:00 2007-12-01T12:00:00 2007-12-02T12:00:00 + 2007-12-03T12:00:00 2007-12-04T12:00:00 2007-12-05T12:00:00 2007-12-06T12:00:00 2007-12-07T12:00:00 2007-12-08T12:00:00 + 2007-12-09T12:00:00 2007-12-10T12:00:00 2007-12-11T12:00:00 2007-12-12T12:00:00 2007-12-13T12:00:00 2007-12-14T12:00:00 + 2007-12-15T12:00:00 2007-12-16T12:00:00 2007-12-17T12:00:00 2007-12-18T12:00:00 2007-12-19T12:00:00 2007-12-20T12:00:00 + 2007-12-21T12:00:00 2007-12-22T12:00:00 2007-12-23T12:00:00 2007-12-24T12:00:00 2007-12-25T12:00:00 2007-12-26T12:00:00 + 2007-12-27T12:00:00 2007-12-28T12:00:00 2007-12-29T12:00:00 2007-12-30T12:00:00 2007-12-31T12:00:00 2008-01-01T12:00:00 + 2008-01-02T12:00:00 2008-01-03T12:00:00 2008-01-04T12:00:00 2008-01-05T12:00:00 2008-01-06T12:00:00 2008-01-07T12:00:00 + 2008-01-08T12:00:00 2008-01-09T12:00:00 2008-01-10T12:00:00 2008-01-11T12:00:00 2008-01-12T12:00:00 2008-01-13T12:00:00 + 2008-01-14T12:00:00 2008-01-15T12:00:00 2008-01-16T12:00:00 2008-01-17T12:00:00 2008-01-18T12:00:00 2008-01-19T12:00:00 + 2008-01-20T12:00:00 2008-01-21T12:00:00 2008-01-22T12:00:00 2008-01-23T12:00:00 2008-01-24T12:00:00 2008-01-25T12:00:00 + 2008-01-26T12:00:00 2008-01-27T12:00:00 2008-01-28T12:00:00 2008-01-29T12:00:00 2008-01-30T12:00:00 2008-01-31T12:00:00 + 2008-02-01T12:00:00 2008-02-02T12:00:00 2008-02-03T12:00:00 2008-02-04T12:00:00 2008-02-05T12:00:00 2008-02-06T12:00:00 + 2008-02-07T12:00:00 2008-02-08T12:00:00 2008-02-09T12:00:00 2008-02-10T12:00:00 2008-02-11T12:00:00 2008-02-12T12:00:00 + 2008-02-13T12:00:00 2008-02-14T12:00:00 2008-02-15T12:00:00 2008-02-16T12:00:00 2008-02-17T12:00:00 2008-02-18T12:00:00 + 2008-02-19T12:00:00 2008-02-20T12:00:00 2008-02-21T12:00:00 2008-02-22T12:00:00 2008-02-23T12:00:00 2008-02-24T12:00:00 + 2008-02-25T12:00:00 2008-02-26T12:00:00 2008-02-27T12:00:00 2008-02-28T12:00:00 2008-02-29T12:00:00 2008-03-01T12:00:00 + 2008-03-02T12:00:00 2008-03-03T12:00:00 2008-03-04T12:00:00 2008-03-05T12:00:00 2008-03-06T12:00:00 2008-03-07T12:00:00 + 2008-03-08T12:00:00 2008-03-09T12:00:00 2008-03-10T12:00:00 2008-03-11T12:00:00 2008-03-12T12:00:00 2008-03-13T12:00:00 + 2008-03-14T12:00:00 2008-03-15T12:00:00 2008-03-16T12:00:00 2008-03-17T12:00:00 2008-03-18T12:00:00 2008-03-19T12:00:00 + 2008-03-20T12:00:00 2008-03-21T12:00:00 2008-03-22T12:00:00 2008-03-23T12:00:00 2008-03-24T12:00:00 2008-03-25T12:00:00 + 2008-03-26T12:00:00 2008-03-27T12:00:00 2008-03-28T12:00:00 2008-03-29T12:00:00 2008-03-30T12:00:00 2008-03-31T12:00:00 + 2008-04-01T12:00:00 2008-04-02T12:00:00 2008-04-03T12:00:00 2008-04-04T12:00:00 2008-04-05T12:00:00 2008-04-06T12:00:00 + 2008-04-07T12:00:00 2008-04-08T12:00:00 2008-04-09T12:00:00 2008-04-10T12:00:00 2008-04-11T12:00:00 2008-04-12T12:00:00 + 2008-04-13T12:00:00 2008-04-14T12:00:00 2008-04-15T12:00:00 2008-04-16T12:00:00 2008-04-17T12:00:00 2008-04-18T12:00:00 + 2008-04-19T12:00:00 2008-04-20T12:00:00 2008-04-21T12:00:00 2008-04-22T12:00:00 2008-04-23T12:00:00 2008-04-24T12:00:00 + 2008-04-25T12:00:00 2008-04-26T12:00:00 2008-04-27T12:00:00 2008-04-28T12:00:00 2008-04-29T12:00:00 2008-04-30T12:00:00 + 2008-05-01T12:00:00 2008-05-02T12:00:00 2008-05-03T12:00:00 2008-05-04T12:00:00 2008-05-05T12:00:00 2008-05-06T12:00:00 + 2008-05-07T12:00:00 2008-05-08T12:00:00 2008-05-09T12:00:00 2008-05-10T12:00:00 2008-05-11T12:00:00 2008-05-12T12:00:00 + 2008-05-13T12:00:00 2008-05-14T12:00:00 2008-05-15T12:00:00 2008-05-16T12:00:00 2008-05-17T12:00:00 2008-05-18T12:00:00 + 2008-05-19T12:00:00 2008-05-20T12:00:00 2008-05-21T12:00:00 2008-05-22T12:00:00 2008-05-23T12:00:00 2008-05-24T12:00:00 + 2008-05-25T12:00:00 2008-05-26T12:00:00 2008-05-27T12:00:00 2008-05-28T12:00:00 2008-05-29T12:00:00 2008-05-30T12:00:00 + 2008-05-31T12:00:00 2008-06-01T12:00:00 2008-06-02T12:00:00 2008-06-03T12:00:00 2008-06-04T12:00:00 2008-06-05T12:00:00 + 2008-06-06T12:00:00 2008-06-07T12:00:00 2008-06-08T12:00:00 2008-06-09T12:00:00 2008-06-10T12:00:00 2008-06-11T12:00:00 + 2008-06-12T12:00:00 2008-06-13T12:00:00 2008-06-14T12:00:00 2008-06-15T12:00:00 2008-06-16T12:00:00 2008-06-17T12:00:00 + 2008-06-18T12:00:00 2008-06-19T12:00:00 2008-06-20T12:00:00 2008-06-21T12:00:00 2008-06-22T12:00:00 2008-06-23T12:00:00 + 2008-06-24T12:00:00 2008-06-25T12:00:00 2008-06-26T12:00:00 2008-06-27T12:00:00 2008-06-28T12:00:00 2008-06-29T12:00:00 + 2008-06-30T12:00:00 2008-07-01T12:00:00 2008-07-02T12:00:00 2008-07-03T12:00:00 2008-07-04T12:00:00 2008-07-05T12:00:00 + 2008-07-06T12:00:00 2008-07-07T12:00:00 2008-07-08T12:00:00 2008-07-09T12:00:00 2008-07-10T12:00:00 2008-07-11T12:00:00 + 2008-07-12T12:00:00 2008-07-13T12:00:00 2008-07-14T12:00:00 2008-07-15T12:00:00 2008-07-16T12:00:00 2008-07-17T12:00:00 + 2008-07-18T12:00:00 2008-07-19T12:00:00 2008-07-20T12:00:00 2008-07-21T12:00:00 2008-07-22T12:00:00 2008-07-23T12:00:00 + 2008-07-24T12:00:00 2008-07-25T12:00:00 2008-07-26T12:00:00 2008-07-27T12:00:00 2008-07-28T12:00:00 2008-07-29T12:00:00 + 2008-07-30T12:00:00 2008-07-31T12:00:00 2008-08-01T12:00:00 2008-08-02T12:00:00 2008-08-03T12:00:00 2008-08-04T12:00:00 + 2008-08-05T12:00:00 2008-08-06T12:00:00 2008-08-07T12:00:00 2008-08-08T12:00:00 2008-08-09T12:00:00 2008-08-10T12:00:00 + 2008-08-11T12:00:00 2008-08-12T12:00:00 2008-08-13T12:00:00 2008-08-14T12:00:00 2008-08-15T12:00:00 2008-08-16T12:00:00 + 2008-08-17T12:00:00 2008-08-18T12:00:00 2008-08-19T12:00:00 2008-08-20T12:00:00 2008-08-21T12:00:00 2008-08-22T12:00:00 + 2008-08-23T12:00:00 2008-08-24T12:00:00 2008-08-25T12:00:00 2008-08-26T12:00:00 2008-08-27T12:00:00 2008-08-28T12:00:00 + 2008-08-29T12:00:00 2008-08-30T12:00:00 2008-08-31T12:00:00 2008-09-01T12:00:00 2008-09-02T12:00:00 2008-09-03T12:00:00 + 2008-09-04T12:00:00 2008-09-05T12:00:00 2008-09-06T12:00:00 2008-09-07T12:00:00 2008-09-08T12:00:00 2008-09-09T12:00:00 + 2008-09-10T12:00:00 2008-09-11T12:00:00 2008-09-12T12:00:00 2008-09-13T12:00:00 2008-09-14T12:00:00 2008-09-15T12:00:00 + 2008-09-16T12:00:00 2008-09-17T12:00:00 2008-09-18T12:00:00 2008-09-19T12:00:00 2008-09-20T12:00:00 2008-09-21T12:00:00 + 2008-09-22T12:00:00 2008-09-23T12:00:00 2008-09-24T12:00:00 2008-09-25T12:00:00 2008-09-26T12:00:00 2008-09-27T12:00:00 + 2008-09-28T12:00:00 2008-09-29T12:00:00 2008-09-30T12:00:00 2008-10-01T12:00:00 2008-10-02T12:00:00 2008-10-03T12:00:00 + 2008-10-04T12:00:00 2008-10-05T12:00:00 2008-10-06T12:00:00 2008-10-07T12:00:00 2008-10-08T12:00:00 2008-10-09T12:00:00 + 2008-10-10T12:00:00 2008-10-11T12:00:00 2008-10-12T12:00:00 2008-10-13T12:00:00 2008-10-14T12:00:00 2008-10-15T12:00:00 + 2008-10-16T12:00:00 2008-10-17T12:00:00 2008-10-18T12:00:00 2008-10-19T12:00:00 2008-10-20T12:00:00 2008-10-21T12:00:00 + 2008-10-22T12:00:00 2008-10-23T12:00:00 2008-10-24T12:00:00 2008-10-25T12:00:00 2008-10-26T12:00:00 2008-10-27T12:00:00 + 2008-10-28T12:00:00 2008-10-29T12:00:00 2008-10-30T12:00:00 2008-10-31T12:00:00 2008-11-01T12:00:00 2008-11-02T12:00:00 + 2008-11-03T12:00:00 2008-11-04T12:00:00 2008-11-05T12:00:00 2008-11-06T12:00:00 2008-11-07T12:00:00 2008-11-08T12:00:00 + 2008-11-09T12:00:00 2008-11-10T12:00:00 2008-11-11T12:00:00 2008-11-12T12:00:00 2008-11-13T12:00:00 2008-11-14T12:00:00 + 2008-11-15T12:00:00 2008-11-16T12:00:00 2008-11-17T12:00:00 2008-11-18T12:00:00 2008-11-19T12:00:00 2008-11-20T12:00:00 + 2008-11-21T12:00:00 2008-11-22T12:00:00 2008-11-23T12:00:00 2008-11-24T12:00:00 2008-11-25T12:00:00 2008-11-26T12:00:00 + 2008-11-27T12:00:00 2008-11-28T12:00:00 2008-11-29T12:00:00 2008-11-30T12:00:00 2008-12-01T12:00:00 2008-12-02T12:00:00 + 2008-12-03T12:00:00 2008-12-04T12:00:00 2008-12-05T12:00:00 2008-12-06T12:00:00 2008-12-07T12:00:00 2008-12-08T12:00:00 + 2008-12-09T12:00:00 2008-12-10T12:00:00 2008-12-11T12:00:00 2008-12-12T12:00:00 2008-12-13T12:00:00 2008-12-14T12:00:00 + 2008-12-15T12:00:00 2008-12-16T12:00:00 2008-12-17T12:00:00 2008-12-18T12:00:00 2008-12-19T12:00:00 2008-12-20T12:00:00 + 2008-12-21T12:00:00 2008-12-22T12:00:00 2008-12-23T12:00:00 2008-12-24T12:00:00 2008-12-25T12:00:00 2008-12-26T12:00:00 + 2008-12-27T12:00:00 2008-12-28T12:00:00 2008-12-29T12:00:00 2008-12-30T12:00:00 2008-12-31T12:00:00 2009-01-01T12:00:00 + 2009-01-02T12:00:00 2009-01-03T12:00:00 2009-01-04T12:00:00 2009-01-05T12:00:00 2009-01-06T12:00:00 2009-01-07T12:00:00 + 2009-01-08T12:00:00 2009-01-09T12:00:00 2009-01-10T12:00:00 2009-01-11T12:00:00 2009-01-12T12:00:00 2009-01-13T12:00:00 + 2009-01-14T12:00:00 2009-01-15T12:00:00 2009-01-16T12:00:00 2009-01-17T12:00:00 2009-01-18T12:00:00 2009-01-19T12:00:00 + 2009-01-20T12:00:00 2009-01-21T12:00:00 2009-01-22T12:00:00 2009-01-23T12:00:00 2009-01-24T12:00:00 2009-01-25T12:00:00 + 2009-01-26T12:00:00 2009-01-27T12:00:00 2009-01-28T12:00:00 2009-01-29T12:00:00 2009-01-30T12:00:00 2009-01-31T12:00:00 + 2009-02-01T12:00:00 2009-02-02T12:00:00 2009-02-03T12:00:00 2009-02-04T12:00:00 2009-02-05T12:00:00 2009-02-06T12:00:00 + 2009-02-07T12:00:00 2009-02-08T12:00:00 2009-02-09T12:00:00 2009-02-10T12:00:00 2009-02-11T12:00:00 2009-02-12T12:00:00 + 2009-02-13T12:00:00 2009-02-14T12:00:00 2009-02-15T12:00:00 2009-02-16T12:00:00 2009-02-17T12:00:00 2009-02-18T12:00:00 + 2009-02-19T12:00:00 2009-02-20T12:00:00 2009-02-21T12:00:00 2009-02-22T12:00:00 2009-02-23T12:00:00 2009-02-24T12:00:00 + 2009-02-25T12:00:00 2009-02-26T12:00:00 2009-02-27T12:00:00 2009-02-28T12:00:00 2009-03-01T12:00:00 2009-03-02T12:00:00 + 2009-03-03T12:00:00 2009-03-04T12:00:00 2009-03-05T12:00:00 2009-03-06T12:00:00 2009-03-07T12:00:00 2009-03-08T12:00:00 + 2009-03-09T12:00:00 2009-03-10T12:00:00 2009-03-11T12:00:00 2009-03-12T12:00:00 2009-03-13T12:00:00 2009-03-14T12:00:00 + 2009-03-15T12:00:00 2009-03-16T12:00:00 2009-03-17T12:00:00 2009-03-18T12:00:00 2009-03-19T12:00:00 2009-03-20T12:00:00 + 2009-03-21T12:00:00 2009-03-22T12:00:00 2009-03-23T12:00:00 2009-03-24T12:00:00 2009-03-25T12:00:00 2009-03-26T12:00:00 + 2009-03-27T12:00:00 2009-03-28T12:00:00 2009-03-29T12:00:00 2009-03-30T12:00:00 2009-03-31T12:00:00 2009-04-01T12:00:00 + 2009-04-02T12:00:00 2009-04-03T12:00:00 2009-04-04T12:00:00 2009-04-05T12:00:00 2009-04-06T12:00:00 2009-04-07T12:00:00 + 2009-04-08T12:00:00 2009-04-09T12:00:00 2009-04-10T12:00:00 2009-04-11T12:00:00 2009-04-12T12:00:00 2009-04-13T12:00:00 + 2009-04-14T12:00:00 2009-04-15T12:00:00 2009-04-16T12:00:00 2009-04-17T12:00:00 2009-04-18T12:00:00 2009-04-19T12:00:00 + 2009-04-20T12:00:00 2009-04-21T12:00:00 2009-04-22T12:00:00 2009-04-23T12:00:00 2009-04-24T12:00:00 2009-04-25T12:00:00 + 2009-04-26T12:00:00 2009-04-27T12:00:00 2009-04-28T12:00:00 2009-04-29T12:00:00 2009-04-30T12:00:00 2009-05-01T12:00:00 + 2009-05-02T12:00:00 2009-05-03T12:00:00 2009-05-04T12:00:00 2009-05-05T12:00:00 2009-05-06T12:00:00 2009-05-07T12:00:00 + 2009-05-08T12:00:00 2009-05-09T12:00:00 2009-05-10T12:00:00 2009-05-11T12:00:00 2009-05-12T12:00:00 2009-05-13T12:00:00 + 2009-05-14T12:00:00 2009-05-15T12:00:00 2009-05-16T12:00:00 2009-05-17T12:00:00 2009-05-18T12:00:00 2009-05-19T12:00:00 + 2009-05-20T12:00:00 2009-05-21T12:00:00 2009-05-22T12:00:00 2009-05-23T12:00:00 2009-05-24T12:00:00 2009-05-25T12:00:00 + 2009-05-26T12:00:00 2009-05-27T12:00:00 2009-05-28T12:00:00 2009-05-29T12:00:00 2009-05-30T12:00:00 2009-05-31T12:00:00 + 2009-06-01T12:00:00 2009-06-02T12:00:00 2009-06-03T12:00:00 2009-06-04T12:00:00 2009-06-05T12:00:00 2009-06-06T12:00:00 + 2009-06-07T12:00:00 2009-06-08T12:00:00 2009-06-09T12:00:00 2009-06-10T12:00:00 2009-06-11T12:00:00 2009-06-12T12:00:00 + 2009-06-13T12:00:00 2009-06-14T12:00:00 2009-06-15T12:00:00 2009-06-16T12:00:00 2009-06-17T12:00:00 2009-06-18T12:00:00 + 2009-06-19T12:00:00 2009-06-20T12:00:00 2009-06-21T12:00:00 2009-06-22T12:00:00 2009-06-23T12:00:00 2009-06-24T12:00:00 + 2009-06-25T12:00:00 2009-06-26T12:00:00 2009-06-27T12:00:00 2009-06-28T12:00:00 2009-06-29T12:00:00 2009-06-30T12:00:00 + 2009-07-01T12:00:00 2009-07-02T12:00:00 2009-07-03T12:00:00 2009-07-04T12:00:00 2009-07-05T12:00:00 2009-07-06T12:00:00 + 2009-07-07T12:00:00 2009-07-08T12:00:00 2009-07-09T12:00:00 2009-07-10T12:00:00 2009-07-11T12:00:00 2009-07-12T12:00:00 + 2009-07-13T12:00:00 2009-07-14T12:00:00 2009-07-15T12:00:00 2009-07-16T12:00:00 2009-07-17T12:00:00 2009-07-18T12:00:00 + 2009-07-19T12:00:00 2009-07-20T12:00:00 2009-07-21T12:00:00 2009-07-22T12:00:00 2009-07-23T12:00:00 2009-07-24T12:00:00 + 2009-07-25T12:00:00 2009-07-26T12:00:00 2009-07-27T12:00:00 2009-07-28T12:00:00 2009-07-29T12:00:00 2009-07-30T12:00:00 + 2009-07-31T12:00:00 2009-08-01T12:00:00 2009-08-02T12:00:00 2009-08-03T12:00:00 2009-08-04T12:00:00 2009-08-05T12:00:00 + 2009-08-06T12:00:00 2009-08-07T12:00:00 2009-08-08T12:00:00 2009-08-09T12:00:00 2009-08-10T12:00:00 2009-08-11T12:00:00 + 2009-08-12T12:00:00 2009-08-13T12:00:00 2009-08-14T12:00:00 2009-08-15T12:00:00 2009-08-16T12:00:00 2009-08-17T12:00:00 + 2009-08-18T12:00:00 2009-08-19T12:00:00 2009-08-20T12:00:00 2009-08-21T12:00:00 2009-08-22T12:00:00 2009-08-23T12:00:00 + 2009-08-24T12:00:00 2009-08-25T12:00:00 2009-08-26T12:00:00 2009-08-27T12:00:00 2009-08-28T12:00:00 2009-08-29T12:00:00 + 2009-08-30T12:00:00 2009-08-31T12:00:00 2009-09-01T12:00:00 2009-09-02T12:00:00 2009-09-03T12:00:00 2009-09-04T12:00:00 + 2009-09-05T12:00:00 2009-09-06T12:00:00 2009-09-07T12:00:00 2009-09-08T12:00:00 2009-09-09T12:00:00 2009-09-10T12:00:00 + 2009-09-11T12:00:00 2009-09-12T12:00:00 2009-09-13T12:00:00 2009-09-14T12:00:00 2009-09-15T12:00:00 2009-09-16T12:00:00 + 2009-09-17T12:00:00 2009-09-18T12:00:00 2009-09-19T12:00:00 2009-09-20T12:00:00 2009-09-21T12:00:00 2009-09-22T12:00:00 + 2009-09-23T12:00:00 2009-09-24T12:00:00 2009-09-25T12:00:00 2009-09-26T12:00:00 2009-09-27T12:00:00 2009-09-28T12:00:00 + 2009-09-29T12:00:00 2009-09-30T12:00:00 2009-10-01T12:00:00 2009-10-02T12:00:00 2009-10-03T12:00:00 2009-10-04T12:00:00 + 2009-10-05T12:00:00 2009-10-06T12:00:00 2009-10-07T12:00:00 2009-10-08T12:00:00 2009-10-09T12:00:00 2009-10-10T12:00:00 + 2009-10-11T12:00:00 2009-10-12T12:00:00 2009-10-13T12:00:00 2009-10-14T12:00:00 2009-10-15T12:00:00 2009-10-16T12:00:00 + 2009-10-17T12:00:00 2009-10-18T12:00:00 2009-10-19T12:00:00 2009-10-20T12:00:00 2009-10-21T12:00:00 2009-10-22T12:00:00 + 2009-10-23T12:00:00 2009-10-24T12:00:00 2009-10-25T12:00:00 2009-10-26T12:00:00 2009-10-27T12:00:00 2009-10-28T12:00:00 + 2009-10-29T12:00:00 2009-10-30T12:00:00 2009-10-31T12:00:00 2009-11-01T12:00:00 2009-11-02T12:00:00 2009-11-03T12:00:00 + 2009-11-04T12:00:00 2009-11-05T12:00:00 2009-11-06T12:00:00 2009-11-07T12:00:00 2009-11-08T12:00:00 2009-11-09T12:00:00 + 2009-11-10T12:00:00 2009-11-11T12:00:00 2009-11-12T12:00:00 2009-11-13T12:00:00 2009-11-14T12:00:00 2009-11-15T12:00:00 + 2009-11-16T12:00:00 2009-11-17T12:00:00 2009-11-18T12:00:00 2009-11-19T12:00:00 2009-11-20T12:00:00 2009-11-21T12:00:00 + 2009-11-22T12:00:00 2009-11-23T12:00:00 2009-11-24T12:00:00 2009-11-25T12:00:00 2009-11-26T12:00:00 2009-11-27T12:00:00 + 2009-11-28T12:00:00 2009-11-29T12:00:00 2009-11-30T12:00:00 2009-12-01T12:00:00 2009-12-02T12:00:00 2009-12-03T12:00:00 + 2009-12-04T12:00:00 2009-12-05T12:00:00 2009-12-06T12:00:00 2009-12-07T12:00:00 2009-12-08T12:00:00 2009-12-09T12:00:00 + 2009-12-10T12:00:00 2009-12-11T12:00:00 2009-12-12T12:00:00 2009-12-13T12:00:00 2009-12-14T12:00:00 2009-12-15T12:00:00 + 2009-12-16T12:00:00 2009-12-17T12:00:00 2009-12-18T12:00:00 2009-12-19T12:00:00 2009-12-20T12:00:00 2009-12-21T12:00:00 + 2009-12-22T12:00:00 2009-12-23T12:00:00 2009-12-24T12:00:00 2009-12-25T12:00:00 2009-12-26T12:00:00 2009-12-27T12:00:00 + 2009-12-28T12:00:00 2009-12-29T12:00:00 2009-12-30T12:00:00 2009-12-31T12:00:00 2010-01-01T12:00:00 2010-01-02T12:00:00 + 2010-01-03T12:00:00 2010-01-04T12:00:00 2010-01-05T12:00:00 2010-01-06T12:00:00 2010-01-07T12:00:00 2010-01-08T12:00:00 + 2010-01-09T12:00:00 2010-01-10T12:00:00 2010-01-11T12:00:00 2010-01-12T12:00:00 2010-01-13T12:00:00 2010-01-14T12:00:00 + 2010-01-15T12:00:00 2010-01-16T12:00:00 2010-01-17T12:00:00 2010-01-18T12:00:00 2010-01-19T12:00:00 2010-01-20T12:00:00 + 2010-01-21T12:00:00 2010-01-22T12:00:00 2010-01-23T12:00:00 2010-01-24T12:00:00 2010-01-25T12:00:00 2010-01-26T12:00:00 + 2010-01-27T12:00:00 2010-01-28T12:00:00 2010-01-29T12:00:00 2010-01-30T12:00:00 2010-01-31T12:00:00 2010-02-01T12:00:00 + 2010-02-02T12:00:00 2010-02-03T12:00:00 2010-02-04T12:00:00 2010-02-05T12:00:00 2010-02-06T12:00:00 2010-02-07T12:00:00 + 2010-02-08T12:00:00 2010-02-09T12:00:00 2010-02-10T12:00:00 2010-02-11T12:00:00 2010-02-12T12:00:00 2010-02-13T12:00:00 + 2010-02-14T12:00:00 2010-02-15T12:00:00 2010-02-16T12:00:00 2010-02-17T12:00:00 2010-02-18T12:00:00 2010-02-19T12:00:00 + 2010-02-20T12:00:00 + + + + 146051.0 145748.0 144821.0 144045.0 143269.0 142435.0 + 141642.0 140847.0 140053.0 139322.0 138539.0 137755.0 136972.0 136140.0 135340.0 134540.0 133742.0 132953.0 132107.0 131318.0 130536.0 + 129758.0 128952.0 128093.0 127300.0 126179.0 125063.0 124225.0 123414.0 122581.0 121757.0 121093.0 120322.0 119508.0 118721.0 118038.0 + 117386.0 116741.0 116122.0 115502.0 114936.0 114276.0 113539.0 112803.0 112071.0 111343.0 110590.0 109839.0 109097.0 108380.0 107614.0 + 106857.0 106175.0 105468.0 104694.0 103974.0 103806.0 103062.0 102300.0 101520.0 100764.0 99965.0 99128.0 98686.0 98127.0 97551.0 + 96976.0 96402.0 95805.0 95260.0 94718.0 94131.0 93544.0 93008.0 92428.0 91848.0 91267.0 90670.0 89813.0 89021.0 88179.0 87317.0 86500.0 + 85668.0 84686.0 83722.0 82801.0 81804.0 80976.0 80195.0 79421.0 78606.0 77803.0 77002.0 76481.0 75889.0 75317.0 74745.0 74197.0 73615.0 + 73110.0 72528.0 71973.0 71629.0 71132.0 70635.0 70184.0 69734.0 69188.0 68738.0 69283.0 69602.0 69376.0 69038.0 69226.0 70260.0 71381.0 + 71591.0 71667.0 71686.0 71534.0 71362.0 71132.0 70903.0 70845.0 70654.0 70391.0 70090.0 69752.0 69489.0 69151.0 68832.0 68496.0 68161.0 + 67844.0 67471.0 67341.0 67304.0 67117.0 66840.0 66550.0 66260.0 65971.0 65681.0 65392.0 65084.0 64763.0 64459.0 64119.0 63798.0 63529.0 + 63529.0 63601.0 63780.0 63780.0 63672.0 62962.0 62116.0 61206.0 60325.0 59447.0 58541.0 57532.0 56533.0 55526.0 54477.0 53570.0 52783.0 + 52416.0 52066.0 51684.0 51369.0 51088.0 50931.0 50743.0 50587.0 50618.0 51025.0 51448.0 51875.0 52337.0 52862.0 53505.0 53943.0 54542.0 + 56383.0 58285.0 59686.0 61033.0 62151.0 63209.0 64101.0 64888.0 65536.0 66224.0 66949.0 67955.0 68888.0 70579.0 72741.0 74666.0 76323.0 + 77723.0 78891.0 80236.0 81266.0 82260.0 83136.0 83953.0 84665.0 86180.0 87769.0 89263.0 90714.0 92249.0 93679.0 95396.0 97206.0 99081.0 + 100953.0 102846.0 105420.0 107836.0 110213.0 112575.0 115038.0 116973.0 119324.0 122076.0 124658.0 127054.0 129368.0 131881.0 134483.0 + 137146.0 140082.0 142970.0 145597.0 147985.0 150062.0 152030.0 153770.0 155364.0 156816.0 158273.0 160194.0 161802.0 163164.0 164528.0 + 165680.0 166700.0 167490.0 168154.0 168687.0 169187.0 169587.0 169820.0 170020.0 170086.0 170120.0 170120.0 170120.0 170053.0 170020.0 + 169853.0 169687.0 169520.0 169620.0 169687.0 169687.0 169620.0 169487.0 169354.0 169220.0 169020.0 168788.0 168521.0 168454.0 168221.0 + 167988.0 167755.0 167888.0 167954.0 168421.0 168921.0 169287.0 169553.0 169787.0 170220.0 170686.0 171053.0 171526.0 172000.0 172778.0 + 173725.0 174538.0 175293.0 175877.0 176426.0 176837.0 177146.0 177386.0 177558.0 177832.0 178076.0 178250.0 178389.0 178354.0 178319.0 + 178285.0 178250.0 178285.0 178424.0 178667.0 178807.0 178807.0 179294.0 179433.0 179433.0 179399.0 179294.0 179190.0 179085.0 178946.0 + 178807.0 178667.0 178737.0 178667.0 178528.0 178389.0 178180.0 177902.0 177695.0 177455.0 177214.0 177146.0 176940.0 176322.0 175636.0 + 174950.0 174198.0 173522.0 172947.0 172338.0 171695.0 171019.0 170286.0 169620.0 168921.0 168255.0 167556.0 166832.0 166338.0 165647.0 + 164989.0 164331.0 163716.0 163002.0 162256.0 161543.0 160835.0 160066.0 159330.0 158593.0 157890.0 157195.0 156185.0 155017.0 153957.0 + 153708.0 153149.0 152496.0 151781.0 151074.0 150369.0 149632.0 148926.0 148226.0 147501.0 146624.0 145597.0 144582.0 143567.0 142524.0 + 141524.0 140494.0 139496.0 138568.0 137697.0 136598.0 135626.0 134597.0 133629.0 132614.0 131599.0 130814.0 130064.0 129313.0 128534.0 + 127765.0 127054.0 126288.0 125469.0 124712.0 123928.0 123143.0 122395.0 121598.0 120747.0 119875.0 119061.0 118222.0 117360.0 116534.0 + 115709.0 114860.0 113971.0 113007.0 112096.0 111193.0 110238.0 109097.0 107960.0 106808.0 105639.0 104550.0 103614.0 102631.0 101686.0 + 100716.0 99779.0 98732.0 97688.0 96678.0 95667.0 94854.0 94041.0 93209.0 92383.0 91558.0 90758.0 89879.0 88977.0 88071.0 87208.0 86436.0 + 85647.0 84857.0 84037.0 83345.0 82550.0 82074.0 81680.0 81266.0 80666.0 80073.0 79543.0 78932.0 78364.0 77743.0 77162.0 76581.0 76007.0 + 75416.0 74824.0 74236.0 74824.0 75139.0 74804.0 74236.0 73673.0 73052.0 72528.0 71897.0 71304.0 70730.0 70128.0 69489.0 68888.0 68272.0 + 67769.0 67266.0 66713.0 66098.0 65482.0 64870.0 64298.0 63690.0 63103.0 62469.0 61834.0 61206.0 60567.0 59961.0 59379.0 58798.0 58182.0 + 57581.0 56982.0 56367.0 55757.0 55131.0 54526.0 53926.0 53311.0 52703.0 52114.0 51525.0 50916.0 50306.0 49716.0 49086.0 48440.0 47821.0 + 47187.0 46561.0 45938.0 45508.0 45304.0 44736.0 44183.0 44227.0 44838.0 45641.0 46205.0 46679.0 47263.0 47806.0 48304.0 48870.0 49439.0 + 50212.0 51213.0 52241.0 53117.0 53991.0 54445.0 54818.0 55361.0 56317.0 57398.0 58524.0 59584.0 60688.0 62010.0 63298.0 64227.0 64459.0 + 64566.0 64709.0 65464.0 66478.0 67080.0 67545.0 67974.0 68514.0 69414.0 70241.0 71476.0 72954.0 74120.0 75179.0 76067.0 76842.0 77483.0 + 78083.0 78586.0 79075.0 79584.0 80134.0 80769.0 81432.0 82074.0 82926.0 84099.0 85454.0 86777.0 87899.0 88913.0 89769.0 90538.0 91267.0 + 92026.0 92830.0 93815.0 94944.0 96241.0 97505.0 98662.0 99942.0 101094.0 102607.0 104286.0 105834.0 107246.0 108553.0 109764.0 110941.0 + 112021.0 113285.0 114885.0 116457.0 118064.0 119639.0 121173.0 122767.0 124549.0 126726.0 128924.0 130981.0 132896.0 134597.0 136197.0 + 137581.0 139788.0 142348.0 144791.0 147410.0 150276.0 153180.0 155996.0 158721.0 161219.0 163132.0 165318.0 168288.0 171594.0 174641.0 + 177832.0 180930.0 183640.0 185839.0 187732.0 189318.0 190262.0 190951.0 191459.0 192371.0 193327.0 194209.0 194981.0 195422.0 195680.0 + 195903.0 195716.0 195385.0 194981.0 194577.0 194099.0 193510.0 192996.0 192408.0 191750.0 191895.0 192040.0 192114.0 192114.0 192151.0 + 192187.0 192224.0 192224.0 192187.0 192224.0 192334.0 192334.0 192261.0 192151.0 192114.0 192040.0 191859.0 191714.0 191568.0 191786.0 + 191859.0 191714.0 191677.0 191641.0 191750.0 191822.0 191895.0 191967.0 192040.0 192114.0 192151.0 192187.0 191967.0 191133.0 190116.0 + 189100.0 188089.0 187053.0 186053.0 185053.0 184275.0 183605.0 182864.0 182089.0 181313.0 180547.0 179816.0 179051.0 178250.0 177489.0 + 176734.0 175979.0 175190.0 174401.0 173556.0 172845.0 172034.0 171222.0 170486.0 169820.0 169487.0 169454.0 169154.0 168754.0 168221.0 + 167556.0 166964.0 166371.0 165713.0 165054.0 164364.0 163716.0 162970.0 162256.0 161543.0 161027.0 160643.0 160066.0 159426.0 159234.0 + 159298.0 159746.0 160194.0 160515.0 160899.0 161123.0 161349.0 161478.0 161576.0 161608.0 161543.0 161413.0 161252.0 161059.0 160835.0 + 160579.0 159714.0 159106.0 158433.0 157732.0 157038.0 156343.0 155680.0 154985.0 154299.0 153646.0 153025.0 152403.0 151781.0 151197.0 + 150645.0 150123.0 149540.0 149018.0 148834.0 148559.0 148045.0 147592.0 147289.0 146927.0 146564.0 146111.0 145597.0 145090.0 144254.0 + 143388.0 142465.0 141612.0 140788.0 139994.0 139235.0 138539.0 137842.0 137146.0 136455.0 135769.0 135054.0 134425.0 133855.0 133545.0 + 132925.0 132276.0 131599.0 130925.0 130286.0 129646.0 128952.0 128257.0 127656.0 126945.0 126261.0 125632.0 124928.0 124252.0 123576.0 + 122900.0 122209.0 121545.0 120854.0 120164.0 119481.0 118799.0 118117.0 117437.0 116766.0 116044.0 115348.0 114657.0 113971.0 113285.0 + 112550.0 111870.0 111167.0 110540.0 109863.0 109171.0 108479.0 107787.0 107100.0 106394.0 105712.0 105030.0 104430.0 103734.0 103038.0 + 102347.0 101614.0 100953.0 100268.0 99570.0 98848.0 98127.0 97413.0 96724.0 96058.0 95419.0 94922.0 94335.0 93657.0 92986.0 92317.0 + 91602.0 90912.0 90230.0 89483.0 88783.0 88114.0 87467.0 86799.0 86137.0 85519.0 84921.0 84267.0 83618.0 82989.0 82322.0 81639.0 80976.0 + 80277.0 79584.0 78912.0 78184.0 77463.0 76862.0 76244.0 75593.0 74923.0 74217.0 73518.0 72877.0 72356.0 71725.0 71094.0 70429.0 69809.0 + 69207.0 68608.0 67993.0 67359.0 66912.0 66894.0 66858.0 66749.0 66586.0 66387.0 66170.0 66007.0 65826.0 65717.0 65591.0 65428.0 65319.0 + 65229.0 65319.0 65518.0 65663.0 65681.0 65609.0 65518.0 65410.0 65283.0 65066.0 64923.0 64727.0 64548.0 64334.0 64137.0 63976.0 63905.0 + 63869.0 63887.0 63923.0 63941.0 63941.0 63941.0 63941.0 63958.0 63994.0 64030.0 64030.0 63976.0 63958.0 63941.0 64012.0 63994.0 63958.0 + 63958.0 63976.0 64030.0 64101.0 64173.0 64244.0 64334.0 64566.0 64816.0 65084.0 65319.0 65591.0 65826.0 66134.0 66496.0 66931.0 67564.0 + 68477.0 69339.0 70147.0 70979.0 71725.0 72566.0 73343.0 74178.0 75002.0 76007.0 77022.0 78003.0 78891.0 79808.0 80687.0 81577.0 82446.0 + 83848.0 85668.0 87317.0 88848.0 90230.0 91446.0 92606.0 93634.0 94583.0 95396.0 96839.0 98895.0 101851.0 104502.0 107393.0 109913.0 + 112753.0 115838.0 119035.0 121890.0 124387.0 126999.0 129869.0 132671.0 135397.0 138161.0 140700.0 143000.0 145418.0 148075.0 150951.0 + 153646.0 156280.0 158593.0 161091.0 163618.0 166009.0 168121.0 170187.0 172439.0 175224.0 178563.0 181631.0 183217.0 184134.0 184733.0 + 185196.0 185589.0 185732.0 185910.0 186053.0 186125.0 186053.0 185946.0 185839.0 185553.0 185304.0 184946.0 184522.0 184063.0 183570.0 + 183217.0 182723.0 182089.0 181948.0 181772.0 181525.0 181209.0 180895.0 180547.0 180373.0 180129.0 179990.0 179747.0 179538.0 179259.0 + 179016.0 178702.0 178389.0 178110.0 177832.0 177489.0 177249.0 177009.0 176700.0 176288.0 176254.0 175979.0 175705.0 175465.0 175362.0 + 175122.0 174916.0 174675.0 174436.0 174401.0 174470.0 174538.0 174470.0 174436.0 174333.0 174130.0 173928.0 173657.0 173353.0 173015.0 + 172609.0 172203.0 171763.0 171290.0 170686.0 170220.0 169654.0 170220.0 170286.0 170286.0 170153.0 169953.0 169820.0 169553.0 169121.0 + 168588.0 167988.0 167359.0 166700.0 165976.0 165252.0 164528.0 163748.0 162970.0 162191.0 161317.0 160387.0 159426.0 158561.0 157700.0 + 156785.0 155933.0 155081.0 153957.0 152683.0 151381.0 150276.0 149478.0 148680.0 147924.0 146957.0 145869.0 144940.0 144164.0 143239.0 + 142141.0 141053.0 139935.0 139206.0 138191.0 137262.0 136197.0 135140.0 134025.0 132925.0 131797.0 130647.0 129424.0 128203.0 126972.0 + 125714.0 124495.0 123279.0 122023.0 120801.0 119586.0 118406.0 117592.0 116534.0 115683.0 114758.0 113743.0 112625.0 111469.0 110314.0 + 109245.0 108108.0 107028.0 105858.0 104694.0 103494.0 102323.0 101236.0 100012.0 98848.0 97642.0 96448.0 95215.0 93995.0 92808.0 91624.0 + 90318.0 89087.0 87812.0 86500.0 85263.0 84016.0 82759.0 81515.0 80297.0 79034.0 77783.0 76721.0 75534.0 74334.0 73130.0 71859.0 70654.0 + 69508.0 68440.0 67285.0 66116.0 64959.0 63905.0 62769.0 61623.0 60480.0 59327.0 58182.0 57115.0 56037.0 54900.0 53651.0 52385.0 51166.0 + 49917.0 48670.0 47384.0 46161.0 44852.0 43795.0 42895.0 41949.0 41289.0 41164.0 41331.0 41500.0 41682.0 41893.0 42104.0 42300.0 42511.0 + 42567.0 42638.0 42723.0 42795.0 42866.0 42938.0 42995.0 43052.0 43152.0 43237.0 43195.0 43166.0 43138.0 43095.0 43052.0 43109.0 43209.0 + 43294.0 43352.0 43409.0 43466.0 43480.0 43494.0 43466.0 43437.0 43380.0 43280.0 43081.0 43066.0 43066.0 43066.0 43066.0 43066.0 43066.0 + 43066.0 43066.0 43123.0 43209.0 43081.0 42980.0 42980.0 42966.0 42938.0 42952.0 43023.0 43037.0 42624.0 42738.0 42909.0 42966.0 42938.0 + 42909.0 42881.0 42823.0 42852.0 42766.0 42723.0 42652.0 42709.0 42752.0 42738.0 42723.0 42952.0 43237.0 43223.0 43023.0 42809.0 42553.0 + 42525.0 42624.0 42638.0 42609.0 42567.0 42497.0 42412.0 42384.0 42384.0 42370.0 42356.0 42469.0 42809.0 43023.0 43037.0 43023.0 42995.0 + 43095.0 43352.0 43537.0 43494.0 43452.0 43323.0 43123.0 42952.0 42923.0 42837.0 42809.0 42738.0 42738.0 42780.0 43066.0 43052.0 43166.0 + 43338.0 43437.0 43480.0 43437.0 43280.0 43052.0 42809.0 42553.0 42511.0 42483.0 42511.0 42483.0 42455.0 42370.0 42258.0 42230.0 42469.0 + 42923.0 43066.0 43095.0 42980.0 42809.0 42539.0 42511.0 42666.0 42809.0 42923.0 42923.0 42837.0 42895.0 46739.0 49562.0 50962.0 51652.0 + 52114.0 52353.0 52337.0 52114.0 51684.0 51041.0 50509.0 49839.0 49024.0 48213.0 47399.0 46516.0 45908.0 45085.0 44590.0 44227.0 43809.0 + 43494.0 43309.0 43123.0 43195.0 43266.0 43180.0 43009.0 42866.0 42752.0 42638.0 42525.0 42356.0 42609.0 42980.0 43437.0 43609.0 43452.0 + 43209.0 42966.0 42837.0 43037.0 43152.0 43309.0 43437.0 43537.0 43595.0 43623.0 43751.0 43723.0 44227.0 45144.0 45730.0 46012.0 46027.0 + 45849.0 45479.0 44984.0 44372.0 43694.0 42909.0 42952.0 43066.0 43352.0 43266.0 43138.0 42952.0 42709.0 42652.0 42624.0 42539.0 42511.0 + 42638.0 42809.0 42952.0 43066.0 43109.0 43180.0 43223.0 43395.0 43623.0 43809.0 43980.0 44139.0 44270.0 44270.0 44256.0 44256.0 44270.0 + 44241.0 44372.0 44372.0 44343.0 44285.0 44212.0 44227.0 44241.0 44256.0 44343.0 44372.0 44241.0 44037.0 43994.0 43723.0 43466.0 43223.0 + 43209.0 43209.0 43195.0 43152.0 43138.0 43081.0 43037.0 43138.0 43280.0 43423.0 43551.0 43666.0 43751.0 43823.0 43866.0 43894.0 43809.0 + 43751.0 43623.0 43609.0 43595.0 43566.0 43566.0 43523.0 43480.0 43423.0 43352.0 43352.0 43352.0 43352.0 43366.0 43423.0 43566.0 43709.0 + 43937.0 44124.0 44241.0 44299.0 44299.0 44314.0 44285.0 44270.0 44503.0 44474.0 44314.0 44153.0 43980.0 43809.0 43595.0 43366.0 43123.0 + 43066.0 43152.0 43195.0 43223.0 43252.0 43280.0 43309.0 43423.0 43709.0 43694.0 43637.0 43551.0 43466.0 43523.0 43609.0 43680.0 43751.0 + 43937.0 44081.0 44314.0 44357.0 44256.0 44256.0 44287.0 44299.0 44314.0 44314.0 44314.0 44314.0 44299.0 44299.0 44299.0 44241.0 44183.0 + 44212.0 44372.0 44386.0 44357.0 44328.0 44285.0 44256.0 44270.0 44270.0 44241.0 44212.0 44153.0 44241.0 44285.0 44270.0 44212.0 44256.0 + 44212.0 44037.0 44037.0 44037.0 44037.0 44023.0 44066.0 44066.0 44066.0 44066.0 44066.0 44052.0 44037.0 44025.0 44008.0 43966.0 43923.0 + 43894.0 43866.0 43823.0 43780.0 43751.0 43723.0 43694.0 43566.0 43366.0 43166.0 42966.0 42752.0 42723.0 42709.0 42652.0 42681.0 42709.0 + 42738.0 42738.0 42823.0 43152.0 43195.0 43109.0 42980.0 42852.0 42709.0 42624.0 42609.0 42638.0 42809.0 42923.0 43037.0 43123.0 43195.0 + 43252.0 43294.0 43223.0 43123.0 43009.0 42895.0 42852.0 42837.0 42823.0 42795.0 42738.0 42723.0 42666.0 42666.0 42638.0 42609.0 42652.0 + 42695.0 42752.0 42837.0 42895.0 42952.0 42995.0 43395.0 43666.0 43751.0 43766.0 43709.0 43609.0 43466.0 43294.0 43095.0 42837.0 42567.0 + 42553.0 42581.0 42581.0 42553.0 42511.0 42455.0 42384.0 42300.0 42356.0 42398.0 42427.0 42483.0 42511.0 42539.0 42553.0 42553.0 42638.0 + 43152.0 43766.0 44314.0 44896.0 45114.0 45246.0 45347.0 45464.0 45582.0 45745.0 45493.0 45289.0 45114.0 45231.0 45421.0 45597.0 45775.0 + 45997.0 45864.0 45671.0 45435.0 45304.0 45304.0 45304.0 45849.0 46457.0 47052.0 47127.0 47082.0 47006.0 46902.0 46813.0 46724.0 46561.0 + 46383.0 46190.0 45983.0 45745.0 45864.0 47036.0 48516.0 49055.0 49039.0 49039.0 49024.0 48993.0 48670.0 49162.0 49794.0 50306.0 51025.0 + 50666.0 50180.0 49732.0 49255.0 48747.0 49486.0 50431.0 51448.0 52544.0 53732.0 55312.0 57032.0 58729.0 60515.0 62328.0 64316.0 66876.0 + 69433.0 72012.0 74508.0 77022.0 79747.0 82322.0 84899.0 87165.0 89373.0 91803.0 94357.0 96793.0 99128.0 101355.0 103398.0 105590.0 + 107663.0 109616.0 111469.0 112930.0 113921.0 114809.0 115657.0 116431.0 117179.0 117854.0 118589.0 119140.0 119875.0 120456.0 121093.0 + 121678.0 122288.0 122873.0 123468.0 124117.0 124820.0 125469.0 126233.0 127163.0 128285.0 129396.0 130731.0 131994.0 133122.0 134226.0 + 135226.0 136140.0 137059.0 137900.0 138713.0 139438.0 140258.0 141082.0 141877.0 142583.0 143299.0 143866.0 144493.0 145060.0 145597.0 + 146171.0 146836.0 147410.0 147924.0 148438.0 148987.0 149478.0 149939.0 150399.0 150860.0 151258.0 151688.0 152123.0 152372.0 152527.0 + 151750.0 150890.0 150031.0 149171.0 148287.0 147410.0 146564.0 145597.0 144791.0 144135.0 143537.0 142911.0 142318.0 141729.0 141200.0 + 140611.0 139994.0 139409.0 138829.0 138249.0 137668.0 137088.0 136341.0 135541.0 134940.0 134197.0 133432.0 132643.0 132050.0 131318.0 + 130647.0 129841.0 129035.0 128203.0 127437.0 126616.0 125796.0 125036.0 124387.0 123603.0 122794.0 121970.0 121146.0 120322.0 119534.0 + 118799.0 118091.0 117308.0 116612.0 115915.0 115270.0 114682.0 114047.0 113387.0 112803.0 112172.0 111494.0 110816.0 110138.0 109468.0 + 108751.0 107836.0 106759.0 105687.0 104598.0 103518.0 102394.0 101307.0 100221.0 99128.0 98057.0 97160.0 96356.0 95577.0 95531.0 95464.0 + 95464.0 95419.0 95396.0 95329.0 95283.0 95215.0 95170.0 95125.0 95080.0 95125.0 95125.0 94696.0 93950.0 93254.0 92540.0 91826.0 91110.0 + 90384.0 89681.0 88977.0 88200.0 87381.0 86543.0 85625.0 84686.0 83785.0 82842.0 81680.0 80542.0 79360.0 78204.0 78043.0 78404.0 78749.0 + 79095.0 79462.0 80114.0 80976.0 81804.0 82633.0 83576.0 84602.0 86009.0 87424.0 88568.0 89681.0 90736.0 91781.0 93098.0 94425.0 95851.0 + 96012.0 95805.0 95600.0 95329.0 95080.0 94696.0 94131.0 93544.0 92986.0 92093.0 91088.0 90142.0 89857.0 89835.0 89725.0 89263.0 88718.0 + 88200.0 87467.0 86692.0 85924.0 85177.0 84414.0 83911.0 83743.0 83366.0 82905.0 82405.0 81887.0 81349.0 80769.0 80053.0 80480.0 81122.0 + 82157.0 83429.0 84964.0 86564.0 88244.0 89945.0 91624.0 92763.0 93815.0 94809.0 95805.0 96770.0 96701.0 96241.0 95920.0 95486.0 95170.0 + 95441.0 95989.0 96976.0 98197.0 99128.0 99710.0 100669.0 101709.0 102631.0 103806.0 105225.0 106613.0 107911.0 109023.0 109987.0 + 110791.0 111494.0 112172.0 112778.0 113285.0 113895.0 114504.0 115399.0 116354.0 116999.0 117592.0 118091.0 118511.0 118826.0 119035.0 + 119140.0 119324.0 119980.0 120747.0 121491.0 122448.0 123441.0 124387.0 125577.0 126918.0 128479.0 130036.0 131487.0 132812.0 134025.0 + 135283.0 136455.0 137581.0 138597.0 139148.0 139788.0 140406.0 141082.0 141788.0 142612.0 143507.0 144463.0 145567.0 147350.0 149601.0 + 151504.0 153025.0 154174.0 155049.0 155680.0 156185.0 156501.0 156659.0 156753.0 156722.0 156659.0 156533.0 156375.0 156185.0 156154.0 + 156059.0 155933.0 155806.0 155617.0 155396.0 155144.0 154796.0 154485.0 154206.0 153864.0 153460.0 153087.0 152931.0 152838.0 152620.0 + 152372.0 152589.0 152900.0 153118.0 153304.0 153491.0 153677.0 154050.0 154268.0 154485.0 154672.0 154859.0 155049.0 155238.0 155017.0 + 154672.0 154485.0 154330.0 154112.0 153864.0 153615.0 153366.0 153118.0 152807.0 152527.0 152341.0 152154.0 151906.0 151658.0 151843.0 + 152185.0 152496.0 152745.0 152993.0 153366.0 153677.0 153615.0 153460.0 153273.0 153025.0 152838.0 152620.0 152496.0 152310.0 152185.0 + 152279.0 152434.0 152496.0 152558.0 153056.0 153584.0 154112.0 154579.0 155081.0 155523.0 155933.0 156375.0 156343.0 156185.0 156059.0 + 156154.0 156248.0 156311.0 156311.0 156343.0 156311.0 156248.0 156154.0 156059.0 155965.0 155806.0 155617.0 155396.0 155112.0 154796.0 + 154516.0 154237.0 153895.0 153864.0 153926.0 153895.0 153864.0 155049.0 156407.0 157764.0 158786.0 159714.0 160579.0 161641.0 162580.0 + 163423.0 164234.0 165022.0 165614.0 166207.0 166799.0 166240.0 165384.0 164692.0 164040.0 163164.0 162191.0 161446.0 161154.0 160899.0 + 160963.0 161027.0 160931.0 160835.0 160675.0 160579.0 160451.0 160258.0 160066.0 159906.0 159810.0 159970.0 159906.0 159714.0 159490.0 + 159330.0 159106.0 158882.0 158914.0 158978.0 158497.0 157922.0 157354.0 156596.0 155586.0 154610.0 153615.0 152620.0 151627.0 150645.0 + 150154.0 149417.0 148711.0 147954.0 147441.0 146745.0 146111.0 145508.0 144911.0 144314.0 143687.0 143060.0 142524.0 141936.0 141347.0 + 140729.0 140112.0 139351.0 138539.0 137871.0 137842.0 138684.0 138916.0 138916.0 138771.0 138568.0 138278.0 137987.0 137639.0 137262.0 + 136885.0 136483.0 136055.0 135454.0 134826.0 134169.0 133488.0 132812.0 132220.0 132022.0 131543.0 131064.0 130592.0 129897.0 129202.0 + 128479.0 127874.0 127273.0 126616.0 126015.0 125361.0 124577.0 123765.0 122927.0 122103.0 121359.0 121040.0 120535.0 120006.0 119481.0 + 118956.0 118432.0 117881.0 117308.0 116560.0 115786.0 115141.0 114555.0 113971.0 113464.0 113082.0 112550.0 111971.0 111418.0 110866.0 + 110665.0 110565.0 110414.0 110364.0 110289.0 110163.0 110062.0 110188.0 110088.0 110088.0 110314.0 110414.0 110640.0 111896.0 114225.0 + 115683.0 116766.0 117671.0 118007.0 118064.0 118064.0 118038.0 117907.0 117776.0 117592.0 117360.0 117076.0 116792.0 116483.0 116199.0 + 115864.0 115502.0 115141.0 114784.0 114378.0 113946.0 113489.0 113184.0 112905.0 112550.0 112121.0 111695.0 111619.0 111669.0 111644.0 + 111594.0 111544.0 111469.0 111418.0 111393.0 110966.0 110489.0 109987.0 109493.0 109072.0 108627.0 108182.0 107688.0 107174.0 106710.0 + 106248.0 106638.0 107149.0 107737.0 108726.0 108899.0 108825.0 108751.0 108677.0 108578.0 108479.0 108380.0 108281.0 108182.0 107713.0 + 107198.0 106638.0 106102.0 105541.0 105006.0 104718.0 104382.0 104046.0 103734.0 103374.0 103014.0 102750.0 102512.0 102229.0 101969.0 + 102205.0 102489.0 102798.0 103206.0 103590.0 103926.0 104142.0 104382.0 104574.0 104766.0 104958.0 105127.0 105298.0 105444.0 105176.0 + 104814.0 104598.0 104718.0 105127.0 105590.0 106028.0 106418.0 106686.0 107417.0 108207.0 108924.0 110088.0 111519.0 112930.0 114403.0 + 115889.0 117566.0 119193.0 120694.0 122395.0 124198.0 126015.0 127902.0 129841.0 131769.0 133573.0 135255.0 136943.0 138452.0 139759.0 + 140994.0 142200.0 142702.0 143060.0 143328.0 143537.0 143746.0 143836.0 143925.0 143955.0 144045.0 144224.0 144373.0 144493.0 144582.0 + 144642.0 144821.0 145000.0 145179.0 145358.0 145597.0 145778.0 146020.0 146383.0 146776.0 147289.0 148075.0 150000.0 153801.0 157258.0 + 160098.0 162386.0 164266.0 166273.0 168021.0 169687.0 171256.0 172609.0 173522.0 173928.0 174198.0 174164.0 174029.0 174164.0 174744.0 + 176871.0 178424.0 179712.0 180617.0 181631.0 182265.0 182723.0 183005.0 183182.0 183182.0 183112.0 183041.0 182794.0 182512.0 182089.0 + 181807.0 181313.0 180826.0 180478.0 180164.0 179851.0 179956.0 180269.0 180547.0 180826.0 181070.0 181278.0 181419.0 181560.0 181243.0 + 180895.0 180443.0 180025.0 179851.0 179503.0 179016.0 178528.0 178598.0 178772.0 179085.0 179364.0 179608.0 179886.0 180095.0 180269.0 + 180861.0 181560.0 182371.0 183217.0 183852.0 184557.0 185339.0 185589.0 185611.0 185589.0 185553.0 185553.0 185625.0 185589.0 185232.0 + 184768.0 184338.0 183852.0 183358.0 182822.0 182314.0 181842.0 181313.0 180826.0 180304.0 179747.0 179224.0 178702.0 178145.0 177558.0 + 176975.0 176426.0 175911.0 175328.0 174779.0 174232.0 173623.0 173048.0 172473.0 171966.0 171594.0 171053.0 170453.0 169886.0 169287.0 + 168687.0 167988.0 167194.0 166174.0 165186.0 164137.0 163067.0 162127.0 161187.0 160194.0 159170.0 158145.0 157101.0 156091.0 155049.0 + 153988.0 153149.0 152154.0 151136.0 150092.0 149141.0 148166.0 147320.0 146534.0 145627.0 144672.0 143717.0 142791.0 141995.0 141112.0 + 140171.0 139264.0 138307.0 137349.0 136569.0 135797.0 135054.0 134197.0 133122.0 131994.0 130925.0 130091.0 129007.0 127957.0 126918.0 + 125850.0 124820.0 123738.0 122634.0 121545.0 120482.0 119455.0 118432.0 117257.0 116070.0 114987.0 113844.0 112727.0 111544.0 110389.0 + 109220.0 108083.0 106881.0 105687.0 104574.0 103494.0 102536.0 101591.0 100669.0 99733.0 98802.0 97826.0 96861.0 96080.0 95306.0 94538.0 + 93747.0 92986.0 92227.0 91446.0 90692.0 90692.0 91000.0 91357.0 91669.0 91982.0 92294.0 92606.0 92919.0 93209.0 93521.0 93838.0 94154.0 + 94470.0 94786.0 95080.0 95374.0 95713.0 96058.0 96379.0 96609.0 96839.0 97068.0 97275.0 97367.0 97505.0 97619.0 97734.0 97826.0 97918.0 + 98081.0 98197.0 98360.0 98662.0 98057.0 97436.0 96770.0 96080.0 95396.0 94696.0 93838.0 93187.0 92517.0 91624.0 90736.0 90055.0 89241.0 + 88524.0 87942.0 87360.0 86692.0 86031.0 85348.0 84644.0 84942.0 85433.0 85860.0 86265.0 86692.0 87122.0 87532.0 87921.0 88330.0 88718.0 + 89153.0 89307.0 89439.0 89725.0 89901.0 90120.0 90384.0 90648.0 90824.0 91000.0 91132.0 91290.0 91602.0 91915.0 92272.0 92584.0 92897.0 + 93231.0 93544.0 93815.0 94131.0 94583.0 94967.0 95306.0 95622.0 95966.0 96287.0 96586.0 96884.0 97206.0 97505.0 97803.0 98150.0 98499.0 + 98848.0 99151.0 99500.0 99826.0 100151.0 100457.0 100740.0 101071.0 101402.0 101686.0 101969.0 102253.0 102607.0 102942.0 103374.0 + 103710.0 104070.0 104406.0 104742.0 105200.0 105712.0 106223.0 106686.0 107149.0 107589.0 108034.0 108479.0 108924.0 109344.0 109764.0 + 110213.0 110640.0 110916.0 111218.0 111469.0 111720.0 111971.0 112222.0 112473.0 112676.0 112905.0 113133.0 113489.0 113921.0 114428.0 + 114784.0 115322.0 115838.0 116354.0 116870.0 117386.0 117828.0 118379.0 118878.0 119350.0 119823.0 120269.0 120747.0 121279.0 121863.0 + 122422.0 122954.0 123522.0 124090.0 124631.0 125171.0 125796.0 126425.0 127218.0 128039.0 129118.0 130091.0 130925.0 131741.0 132558.0 + 133376.0 134140.0 134912.0 135626.0 136369.0 137146.0 137900.0 138597.0 139235.0 139847.0 140553.0 141141.0 141729.0 142318.0 142911.0 + 143448.0 143985.0 144582.0 145179.0 145627.0 146141.0 146624.0 147078.0 147562.0 147985.0 148166.0 148377.0 148589.0 148773.0 148957.0 + 149141.0 149202.0 149294.0 149387.0 149478.0 149601.0 149662.0 149816.0 149878.0 149847.0 149878.0 149878.0 149847.0 149816.0 149755.0 + 149693.0 149632.0 149571.0 149509.0 149448.0 149387.0 149448.0 149632.0 149662.0 149662.0 149755.0 149847.0 149939.0 150000.0 150092.0 + 150154.0 150215.0 150338.0 150430.0 150522.0 150614.0 150798.0 150860.0 150951.0 151044.0 151074.0 151136.0 151167.0 151197.0 151228.0 + 151258.0 151289.0 151289.0 151320.0 151320.0 151381.0 151443.0 151443.0 151412.0 151443.0 151412.0 151412.0 151412.0 151412.0 151412.0 + 151289.0 150982.0 150614.0 150276.0 149878.0 149662.0 149325.0 148957.0 148589.0 148196.0 148045.0 147924.0 147924.0 147954.0 147985.0 + 148015.0 148045.0 148075.0 148105.0 148141.0 148196.0 148093.0 147229.0 146111.0 144940.0 143776.0 142642.0 141376.0 140100.0 138887.0 + 137610.0 136398.0 135169.0 133968.0 132727.0 131599.0 130425.0 129230.0 128093.0 126918.0 125741.0 124522.0 123301.0 122081.0 120907.0 + 119665.0 118432.0 117231.0 116302.0 115270.0 114175.0 113032.0 111870.0 110640.0 109443.0 108306.0 107441.0 106564.0 105541.0 104382.0 + 103206.0 102370.0 101591.0 100433.0 99267.0 98104.0 96907.0 96540.0 96402.0 96402.0 96471.0 96425.0 96310.0 96172.0 96103.0 96012.0 + 95920.0 95805.0 95667.0 95622.0 95486.0 95396.0 95283.0 95193.0 95260.0 95396.0 95486.0 95577.0 95667.0 95736.0 95805.0 95874.0 95943.0 + 96058.0 96195.0 96356.0 96494.0 96632.0 96747.0 96861.0 96976.0 97114.0 97229.0 97344.0 97693.0 97826.0 97964.0 98081.0 98183.0 98290.0 + 98406.0 98499.0 98616.0 98755.0 98872.0 98988.0 99081.0 99198.0 99291.0 99384.0 99477.0 99742.0 100063.0 100282.0 100499.0 100716.0 + 101000.0 101236.0 101449.0 101425.0 101331.0 101236.0 101189.0 101142.0 101071.0 100977.0 100882.0 100788.0 100740.0 100764.0 100716.0 + 100646.0 100551.0 100504.0 100410.0 100315.0 100221.0 100128.0 99896.0 99639.0 99384.0 99128.0 98825.0 98499.0 98174.0 97872.0 97574.0 + 97229.0 96953.0 96724.0 96517.0 96264.0 96264.0 96149.0 96540.0 96747.0 96953.0 97344.0 97711.0 97988.0 98174.0 98360.0 98546.0 98709.0 + 98848.0 98988.0 98429.0 97826.0 96999.0 96264.0 95805.0 95690.0 95419.0 94944.0 94447.0 93905.0 93498.0 92919.0 92451.0 91937.0 91468.0 + 90934.0 90384.0 89725.0 89197.0 88848.0 88459.0 88632.0 88891.0 90077.0 91132.0 91132.0 91088.0 91000.0 90890.0 90648.0 90362.0 89923.0 + 89527.0 89307.0 89373.0 89285.0 89219.0 89263.0 89241.0 89175.0 89021.0 88891.0 88740.0 88502.0 88287.0 88007.0 87705.0 87338.0 87015.0 + 86692.0 86372.0 86052.0 85710.0 85301.0 84985.0 84708.0 84477.0 84246.0 85113.0 86137.0 87381.0 88416.0 89527.0 90780.0 91803.0 92919.0 + 93973.0 94922.0 95920.0 96861.0 96953.0 96678.0 96379.0 96058.0 95690.0 95374.0 95012.0 94651.0 94266.0 93815.0 93498.0 93142.0 92808.0 + 92406.0 91982.0 91580.0 91132.0 90604.0 90208.0 89747.0 89285.0 88804.0 88222.0 87467.0 86756.0 86031.0 85198.0 84602.0 84099.0 83513.0 + 84057.0 84708.0 85305.0 85988.0 86607.0 87381.0 88028.0 88697.0 89417.0 90208.0 90868.0 91669.0 92606.0 94989.0 97183.0 98988.0 100527.0 + 102087.0 103350.0 104574.0 105687.0 106808.0 108108.0 109122.0 110188.0 111167.0 112473.0 113793.0 115167.0 116405.0 117723.0 119009.0 + 120296.0 121545.0 122767.0 124658.0 126343.0 128203.0 129924.0 131853.0 133770.0 135969.0 138103.0 140317.0 141965.0 143717.0 145448.0 + 146171.0 146020.0 145718.0 145508.0 145358.0 145090.0 144791.0 144463.0 144105.0 143746.0 143418.0 143060.0 142642.0 142230.0 141818.0 + 141612.0 141465.0 141435.0 141318.0 141082.0 140818.0 140553.0 140229.0 139876.0 139496.0 139206.0 138858.0 138510.0 138161.0 137755.0 + 137349.0 137117.0 136769.0 136369.0 135969.0 135426.0 134912.0 134311.0 133911.0 133460.0 132896.0 132474.0 131938.0 131374.0 130536.0 + 129813.0 128979.0 128479.0 127820.0 127191.0 126507.0 125850.0 125090.0 124658.0 124117.0 123522.0 122954.0 122369.0 121784.0 121173.0 + 120960.0 120854.0 120535.0 120111.0 119639.0 119166.0 118747.0 118222.0 117644.0 117128.0 116508.0 115786.0 115167.0 114403.0 113590.0 + 112879.0 112121.0 111318.0 110514.0 109690.0 108874.0 108009.0 107100.0 106175.0 105371.0 104382.0 103302.0 103206.0 103278.0 103350.0 + 103518.0 103662.0 103806.0 104190.0 104574.0 104958.0 105346.0 105736.0 105882.0 105980.0 105980.0 106028.0 106175.0 106321.0 106418.0 + 106516.0 106613.0 106686.0 106833.0 107149.0 107490.0 107762.0 108133.0 108528.0 108973.0 109319.0 109616.0 109913.0 110062.0 110213.0 + 110364.0 110514.0 110665.0 110766.0 110866.0 111017.0 111268.0 111368.0 111469.0 111710.0 111996.0 112287.0 112550.0 112753.0 111996.0 + 111012.0 110062.0 109196.0 108133.0 107003.0 105834.0 104790.0 103710.0 102702.0 101709.0 100858.0 100058.0 99360.0 98686.0 98011.0 + 97872.0 97964.0 97918.0 97642.0 97206.0 96724.0 96241.0 95690.0 95215.0 94854.0 94538.0 93544.0 92517.0 91446.0 90384.0 89417.0 88459.0 + 88395.0 88611.0 88848.0 89087.0 89285.0 89483.0 89659.0 89835.0 89989.0 90208.0 90450.0 90692.0 90934.0 91178.0 91490.0 91803.0 92138.0 + 92629.0 93098.0 93567.0 94041.0 94515.0 94989.0 95441.0 95897.0 96356.0 96747.0 97068.0 97344.0 97596.0 97665.0 97734.0 97872.0 98057.0 + 98243.0 98429.0 98546.0 98709.0 99081.0 98779.0 98127.0 97436.0 96861.0 96195.0 95531.0 94899.0 94221.0 93634.0 93098.0 92696.0 92205.0 + 92160.0 92138.0 92071.0 92004.0 91803.0 91490.0 90560.0 89989.0 89329.0 88783.0 88136.0 87510.0 87036.0 86607.0 86137.0 85668.0 85326.0 + 85113.0 84708.0 84351.0 84016.0 83513.0 83932.0 84602.0 85220.0 85838.0 86393.0 86993.0 87553.0 87985.0 88309.0 88611.0 88913.0 89373.0 + 89945.0 90450.0 91022.0 91490.0 92004.0 92517.0 93053.0 93521.0 94018.0 94538.0 95012.0 95509.0 96012.0 96310.0 96678.0 96930.0 96793.0 + 96333.0 95943.0 95509.0 95012.0 94538.0 94064.0 93567.0 93209.0 92785.0 92294.0 91826.0 91312.0 90780.0 90252.0 89725.0 89219.0 89021.0 + 88848.0 88675.0 88546.0 88373.0 88309.0 88287.0 88244.0 88891.0 89813.0 90604.0 91580.0 92540.0 93408.0 94176.0 95396.0 96058.0 96402.0 + 96884.0 96861.0 96861.0 96816.0 96816.0 96609.0 97045.0 97459.0 97826.0 98616.0 99360.0 100198.0 101000.0 101614.0 101709.0 101709.0 + 101662.0 101544.0 101402.0 101213.0 101024.0 100764.0 100599.0 100410.0 100105.0 99826.0 99500.0 99151.0 98755.0 98243.0 97757.0 97275.0 + 96770.0 96264.0 95805.0 95441.0 94944.0 94447.0 93905.0 93365.0 92830.0 93276.0 93860.0 94447.0 95193.0 96448.0 97404.0 98197.0 99034.0 + 100362.0 101501.0 102798.0 103830.0 104982.0 106272.0 107320.0 108380.0 109468.0 110540.0 111619.0 112727.0 113718.0 114733.0 115760.0 + 116792.0 117828.0 118747.0 119718.0 120721.0 121651.0 122039.0 122554.0 123252.0 123928.0 124549.0 125090.0 125632.0 126206.0 126699.0 + 127273.0 127765.0 128312.0 128868.0 129396.0 129897.0 130397.0 130870.0 131430.0 132079.0 132614.0 132304.0 131684.0 131009.0 130369.0 + 129813.0 129174.0 128534.0 127902.0 127246.0 126616.0 125960.0 125361.0 124604.0 123792.0 122954.0 122182.0 121491.0 120907.0 120296.0 + 119560.0 118773.0 117881.0 117463.0 116896.0 116276.0 115606.0 114961.0 114327.0 113692.0 112981.0 112222.0 111519.0 110891.0 110364.0 + 110062.0 109616.0 109171.0 108652.0 108083.0 107466.0 106881.0 106501.0 107003.0 107589.0 108182.0 108726.0 109270.0 109665.0 110012.0 + 110339.0 110640.0 110941.0 111243.0 111544.0 111820.0 112071.0 112222.0 112348.0 112524.0 112803.0 113133.0 113489.0 113819.0 114403.0 + 114910.0 115348.0 115760.0 116147.0 116534.0 116921.0 117154.0 117360.0 117540.0 117723.0 117776.0 117828.0 117776.0 117723.0 117644.0 + 117671.0 117618.0 117540.0 117489.0 117463.0 117463.0 117489.0 117515.0 117592.0 117697.0 117723.0 117723.0 117854.0 118143.0 118432.0 + 118694.0 118852.0 118998.0 119245.0 119518.0 119035.0 118290.0 117566.0 116818.0 116070.0 115322.0 114581.0 113844.0 113108.0 112272.0 + 111418.0 110715.0 109863.0 108998.0 108182.0 107344.0 106492.0 105687.0 104862.0 104022.0 103158.0 102276.0 101378.0 100433.0 99477.0 + 98546.0 97596.0 96747.0 96035.0 95283.0 94538.0 93815.0 93098.0 93187.0 93408.0 93679.0 93950.0 94199.0 94447.0 94651.0 94854.0 95034.0 + 95170.0 95531.0 95713.0 95938.0 96195.0 96466.0 96738.0 97008.0 97321.0 97596.0 97872.0 98150.0 98406.0 98648.0 98895.0 99105.0 99267.0 + 99546.0 99779.0 100058.0 100433.0 100929.0 101402.0 101803.0 102111.0 102418.0 102678.0 102942.0 102489.0 101813.0 101213.0 100646.0 + 100012.0 99407.0 98802.0 98150.0 97528.0 96907.0 96356.0 95713.0 95080.0 94447.0 93792.0 93254.0 92718.0 92361.0 92160.0 92049.0 92183.0 + 92852.0 93544.0 94086.0 94583.0 95486.0 96425.0 97459.0 98243.0 99034.0 99710.0 100433.0 101000.0 101497.0 101945.0 102205.0 102583.0 + 102846.0 103110.0 103326.0 103422.0 103614.0 103806.0 103950.0 104046.0 104046.0 104046.0 104046.0 104046.0 104094.0 104094.0 104070.0 + 103998.0 103926.0 103830.0 103710.0 103614.0 103542.0 103422.0 103326.0 103206.0 103086.0 102559.0 102064.0 101567.0 101118.0 100599.0 + 100128.0 99616.0 99267.0 98848.0 98522.0 98197.0 97803.0 97505.0 97574.0 98057.0 98686.0 99384.0 100244.0 100929.0 101614.0 102229.0 + 102774.0 103302.0 103806.0 104190.0 104382.0 104550.0 104814.0 105103.0 105395.0 105663.0 105907.0 106126.0 106418.0 106808.0 107076.0 + 107344.0 107614.0 107836.0 108133.0 108330.0 108627.0 108899.0 109171.0 109665.0 110113.0 110565.0 111067.0 111494.0 111971.0 112398.0 + 112828.0 113336.0 113768.0 114250.0 114784.0 115218.0 115838.0 116715.0 118064.0 119744.0 121651.0 123819.0 125415.0 127082.0 128423.0 + 129535.0 130592.0 131459.0 132248.0 132896.0 133516.0 134082.0 134597.0 135083.0 135826.0 136483.0 137117.0 137784.0 138423.0 139090.0 + 139612.0 140171.0 140759.0 141289.0 141759.0 142259.0 142821.0 143299.0 143597.0 143836.0 144164.0 144493.0 144881.0 145329.0 145839.0 + 146201.0 146534.0 146957.0 147501.0 147924.0 148377.0 148711.0 149049.0 149448.0 149724.0 150092.0 150522.0 150951.0 151258.0 151627.0 + 151565.0 151443.0 151351.0 151228.0 151074.0 150890.0 150676.0 150430.0 150553.0 150860.0 151228.0 151688.0 151999.0 152341.0 152496.0 + 152776.0 153180.0 153615.0 153957.0 154206.0 154423.0 154547.0 154703.0 154796.0 154891.0 155049.0 155207.0 155364.0 155523.0 155175.0 + 154796.0 154361.0 153926.0 153429.0 152900.0 152403.0 151874.0 151167.0 150460.0 149601.0 148773.0 147924.0 147108.0 146353.0 145537.0 + 144881.0 144224.0 143537.0 142702.0 141729.0 140729.0 139788.0 139148.0 138510.0 137929.0 137320.0 136741.0 136197.0 135655.0 135054.0 + 134483.0 133883.0 133263.0 132474.0 131684.0 130814.0 130008.0 129285.0 128590.0 127656.0 126780.0 125878.0 124982.0 124063.0 123116.0 + 122156.0 121332.0 120456.0 119560.0 118668.0 117671.0 116663.0 115683.0 114657.0 113667.0 112702.0 111870.0 111393.0 110766.0 110113.0 + 109295.0 109394.0 109517.0 109641.0 109764.0 109814.0 109913.0 109938.0 109863.0 109764.0 109690.0 109616.0 109517.0 109394.0 109319.0 + 109171.0 109245.0 109295.0 109344.0 109394.0 109468.0 109418.0 109369.0 109319.0 109245.0 109196.0 109147.0 109072.0 108924.0 108775.0 + 108627.0 108504.0 108429.0 108355.0 108281.0 108207.0 108133.0 108083.0 107984.0 108083.0 108257.0 108380.0 108405.0 108320.0 108232.0 + 108227.0 108330.0 108603.0 108702.0 108775.0 108800.0 108949.0 109147.0 109443.0 109616.0 109789.0 110012.0 110163.0 110314.0 110188.0 + 109987.0 109754.0 109512.0 109270.0 109023.0 108800.0 108578.0 108355.0 108108.0 107861.0 107638.0 107393.0 107246.0 107028.0 106808.0 + 106564.0 106321.0 106077.0 105858.0 105615.0 105492.0 105395.0 105274.0 105225.0 105274.0 105200.0 105151.0 105054.0 105006.0 104910.0 + 104790.0 104694.0 104574.0 104454.0 104334.0 104238.0 104118.0 103998.0 103878.0 103758.0 103638.0 103518.0 103278.0 103014.0 102750.0 + 102394.0 102040.0 101638.0 100835.0 100244.0 99756.0 99291.0 98755.0 98104.0 97459.0 96861.0 96402.0 95943.0 95360.0 94759.0 94176.0 + 94266.0 94492.0 94673.0 94854.0 95057.0 95238.0 95419.0 95577.0 95759.0 96012.0 96292.0 96494.0 96678.0 96953.0 97137.0 97528.0 97895.0 + 98243.0 98550.0 98150.0 97619.0 97321.0 97022.0 96655.0 96218.0 95713.0 95260.0 94786.0 94266.0 93702.0 93120.0 92562.0 92004.0 91490.0 + 91468.0 91490.0 91468.0 91535.0 91580.0 91669.0 91714.0 91781.0 91826.0 91848.0 91915.0 91937.0 92026.0 92093.0 92227.0 92361.0 92584.0 + 92740.0 92919.0 93076.0 93209.0 93321.0 93408.0 93476.0 93589.0 93657.0 93702.0 93747.0 93905.0 94131.0 94244.0 94335.0 94425.0 94628.0 + 94854.0 95103.0 95396.0 95667.0 95943.0 96149.0 96356.0 96540.0 96701.0 96861.0 97068.0 97298.0 97619.0 98104.0 98895.0 99826.0 101709.0 + 103254.0 104622.0 105858.0 107125.0 108330.0 109468.0 110690.0 111820.0 112393.0 112813.0 113285.0 113743.0 114149.0 114504.0 114784.0 + 115115.0 115580.0 116199.0 116870.0 117412.0 117933.0 118379.0 118773.0 118956.0 119166.0 119324.0 119376.0 119429.0 119429.0 119429.0 + 119403.0 119350.0 119376.0 119508.0 119403.0 119324.0 119166.0 119009.0 118983.0 118983.0 118799.0 118721.0 118694.0 118642.0 118616.0 + 118642.0 118747.0 118458.0 118117.0 117881.0 117671.0 117463.0 117282.0 117128.0 116870.0 116735.0 116673.0 116612.0 116483.0 116354.0 + 116199.0 116147.0 116018.0 115838.0 115786.0 115683.0 115528.0 115967.0 116354.0 116844.0 117282.0 117907.0 118484.0 119035.0 120243.0 + 121890.0 123143.0 124198.0 125063.0 125960.0 126671.0 127601.0 128312.0 129035.0 129702.0 130314.0 130842.0 131374.0 131797.0 132107.0 + 132389.0 132643.0 132964.0 133234.0 133460.0 133686.0 133827.0 133827.0 134082.0 134082.0 134082.0 134082.0 133714.0 133347.0 132925.0 + 132558.0 132163.0 131712.0 131233.0 130814.0 130425.0 129969.0 129463.0 128979.0 128479.0 127984.0 127491.0 126999.0 126480.0 125933.0 + 125361.0 124820.0 124360.0 123846.0 123360.0 122900.0 122395.0 121863.0 121332.0 120747.0 120164.0 119718.0 119245.0 118773.0 118196.0 + 117671.0 117154.0 116612.0 116044.0 115451.0 114910.0 114378.0 113768.0 113159.0 112575.0 112021.0 111418.0 111117.0 110891.0 110514.0 + 110113.0 109987.0 109962.0 109839.0 109839.0 109888.0 109913.0 110037.0 110213.0 110489.0 110816.0 111117.0 111444.0 111770.0 112096.0 + 112423.0 112676.0 113007.0 113108.0 113159.0 113210.0 113210.0 113184.0 113108.0 112981.0 112676.0 112398.0 112162.0 111921.0 111745.0 + 111569.0 111569.0 111418.0 111318.0 111218.0 111142.0 111052.0 110941.0 110841.0 110238.0 109616.0 108949.0 108281.0 107539.0 107295.0 + 106857.0 106443.0 106028.0 105615.0 105225.0 104838.0 104358.0 103686.0 103230.0 102798.0 102323.0 102158.0 101709.0 101094.0 100291.0 + 99453.0 98662.0 97826.0 96999.0 96126.0 95125.0 94086.0 93321.0 92606.0 91892.0 91267.0 90648.0 90472.0 90252.0 90033.0 89813.0 89879.0 + 89967.0 90055.0 89945.0 89769.0 89571.0 89329.0 89153.0 88956.0 88778.0 88589.0 88395.0 88179.0 88395.0 88740.0 89065.0 89395.0 89703.0 + 90055.0 90428.0 90802.0 91110.0 91424.0 91714.0 91982.0 92249.0 92517.0 92830.0 93098.0 93120.0 93142.0 93120.0 93107.0 93120.0 93187.0 + 93276.0 93365.0 93453.0 93521.0 93589.0 93815.0 93973.0 94086.0 94221.0 94628.0 95103.0 95260.0 95283.0 95193.0 95057.0 94786.0 94447.0 + 94064.0 93453.0 93187.0 93476.0 93792.0 93995.0 94244.0 94628.0 94989.0 95374.0 95306.0 95260.0 95170.0 94854.0 94492.0 94244.0 93905.0 + 93679.0 93408.0 93187.0 93031.0 92874.0 92651.0 92428.0 92223.0 91892.0 91535.0 91201.0 90868.0 90494.0 90428.0 90340.0 90164.0 89967.0 + 89791.0 89615.0 89527.0 89615.0 90077.0 90714.0 91223.0 91535.0 91848.0 92071.0 92339.0 92606.0 92830.0 93031.0 93098.0 93187.0 93231.0 + 93231.0 93142.0 93453.0 93589.0 93476.0 93905.0 94041.0 94154.0 94266.0 94289.0 93860.0 93453.0 92964.0 92451.0 91892.0 91245.0 90780.0 + 90318.0 89769.0 89364.0 89461.0 89571.0 89681.0 89747.0 89857.0 90208.0 90604.0 90912.0 91201.0 91468.0 91736.0 91937.0 92205.0 92383.0 + 92651.0 93321.0 93950.0 94492.0 95057.0 95554.0 96035.0 96494.0 96494.0 96402.0 96287.0 96195.0 96058.0 95989.0 95874.0 95736.0 95600.0 + 95509.0 95351.0 94673.0 94221.0 93612.0 93098.0 92562.0 91982.0 91490.0 91178.0 90692.0 90296.0 89945.0 89461.0 89087.0 88740.0 88804.0 + 88804.0 88459.0 88416.0 88352.0 88416.0 88309.0 88200.0 88352.0 88524.0 88913.0 89395.0 89879.0 90362.0 90758.0 91223.0 91781.0 92339.0 + 92874.0 93431.0 93928.0 94538.0 95148.0 95600.0 96103.0 96609.0 97068.0 97505.0 97872.0 98290.0 98848.0 99174.0 99639.0 100012.0 + 100433.0 100835.0 101283.0 101733.0 102134.0 102512.0 102894.0 103278.0 103710.0 104046.0 104382.0 104694.0 104982.0 105298.0 105541.0 + 105858.0 106102.0 106394.0 106589.0 106808.0 106954.0 107149.0 107320.0 107564.0 107787.0 107935.0 108083.0 108257.0 108405.0 108603.0 + 108899.0 108973.0 109072.0 109270.0 109566.0 109740.0 109888.0 110037.0 110213.0 110715.0 111142.0 111393.0 111644.0 111870.0 112121.0 + 112297.0 112499.0 112676.0 112828.0 112981.0 113133.0 113235.0 113387.0 113489.0 113590.0 113667.0 113768.0 113819.0 113870.0 113946.0 + 113996.0 114073.0 114124.0 114175.0 114250.0 114378.0 114479.0 114530.0 114555.0 114581.0 114632.0 114606.0 114073.0 113336.0 112550.0 + 111770.0 111017.0 110289.0 109566.0 108825.0 108083.0 107369.0 106638.0 105907.0 105176.0 104406.0 103662.0 102865.0 102068.0 101283.0 + 100527.0 99756.0 98988.0 98220.0 97459.0 96839.0 96126.0 95396.0 94696.0 93950.0 93254.0 92473.0 91736.0 91669.0 91624.0 91558.0 91468.0 + 91379.0 91312.0 91223.0 91132.0 91022.0 90956.0 90846.0 90670.0 90494.0 90516.0 90648.0 90692.0 90736.0 90776.0 90811.0 90846.0 90956.0 + 91022.0 91110.0 91178.0 91201.0 91223.0 91245.0 91267.0 91290.0 91335.0 91513.0 91558.0 91571.0 91580.0 91584.0 91589.0 91589.0 91584.0 + 91580.0 91558.0 91558.0 91602.0 91624.0 91602.0 91513.0 91401.0 91290.0 91178.0 91044.0 90934.0 90934.0 90868.0 90846.0 90802.0 90802.0 + 90758.0 90736.0 90692.0 90648.0 90604.0 90560.0 90516.0 90450.0 90560.0 90538.0 90780.0 90846.0 90934.0 90934.0 90912.0 90868.0 90824.0 + 90758.0 90692.0 90626.0 90560.0 90494.0 90419.0 90340.0 90340.0 90296.0 90208.0 90340.0 90450.0 90582.0 90692.0 90802.0 90912.0 91022.0 + 91110.0 91214.0 91357.0 91468.0 91558.0 91647.0 91736.0 91848.0 91960.0 92026.0 92115.0 92227.0 92406.0 92651.0 92964.0 93299.0 93589.0 + 93769.0 93950.0 94064.0 94289.0 94538.0 94718.0 94922.0 95148.0 95351.0 95554.0 95782.0 95943.0 95600.0 95080.0 94561.0 94018.0 93476.0 + 92919.0 92718.0 92584.0 92584.0 92629.0 92696.0 92763.0 92830.0 92785.0 92785.0 92740.0 92763.0 92740.0 92696.0 92629.0 92540.0 92428.0 + 92383.0 92294.0 92294.0 92249.0 92205.0 92115.0 92026.0 91937.0 91826.0 91714.0 91580.0 91513.0 91401.0 91267.0 91178.0 91155.0 91044.0 + 90934.0 90824.0 90692.0 90780.0 90912.0 91044.0 91155.0 91267.0 91379.0 92249.0 93905.0 95441.0 97045.0 98429.0 99826.0 101236.0 + 102370.0 103182.0 103902.0 104526.0 105054.0 105634.0 106223.0 106954.0 107539.0 108380.0 109171.0 109814.0 110514.0 111167.0 112021.0 + 113164.0 114200.0 115064.0 115864.0 116663.0 117282.0 117697.0 118012.0 118327.0 118747.0 119534.0 120742.0 121916.0 122927.0 123901.0 + 124766.0 125632.0 126507.0 127327.0 128093.0 128868.0 129546.0 130202.0 130758.0 131205.0 131543.0 131825.0 132141.0 132389.0 132783.0 + 133065.0 133516.0 134082.0 134997.0 136174.0 137291.0 138452.0 139322.0 140200.0 141141.0 141906.0 142494.0 143120.0 143746.0 144403.0 + 144940.0 145561.0 146081.0 146685.0 147259.0 147900.0 148450.0 148957.0 149478.0 149969.0 150522.0 151013.0 151627.0 151999.0 152310.0 + 152683.0 153118.0 153578.0 153988.0 154299.0 154610.0 155238.0 155554.0 156185.0 156753.0 157258.0 157700.0 158273.0 158818.0 159426.0 + 160066.0 160707.0 161245.0 162243.0 163683.0 165779.0 167622.0 169121.0 170686.0 171831.0 172778.0 173542.0 174266.0 174881.0 175362.0 + 175773.0 176117.0 176391.0 176597.0 176720.0 176460.0 176117.0 175705.0 175183.0 174813.0 174470.0 173995.0 173522.0 172981.0 172439.0 + 171898.0 171290.0 170753.0 170240.0 169674.0 169080.0 168641.0 168208.0 167622.0 167063.0 166503.0 165976.0 165318.0 165120.0 164923.0 + 164758.0 164561.0 164364.0 163553.0 162632.0 161776.0 161021.0 160168.0 159356.0 158593.0 158017.0 157354.0 156659.0 155933.0 155238.0 + 154547.0 153665.0 152683.0 151750.0 150669.0 149571.0 148498.0 147410.0 146685.0 145657.0 144642.0 143925.0 143209.0 142553.0 141847.0 + 141141.0 140494.0 139847.0 139148.0 138510.0 137813.0 137175.0 136540.0 135826.0 135111.0 134425.0 133742.0 132953.0 132163.0 131340.0 + 130519.0 129646.0 128868.0 128093.0 127273.0 126616.0 125796.0 125090.0 124441.0 123738.0 123035.0 122342.0 121651.0 120960.0 120269.0 + 119602.0 118956.0 118301.0 117644.0 116993.0 116333.0 115657.0 114981.0 114306.0 113621.0 112930.0 112252.0 111559.0 110781.0 109997.0 + 109225.0 108459.0 107678.0 106969.0 106175.0 105298.0 104430.0 103912.0 103331.0 102793.0 102257.0 101718.0 101189.0 100655.0 100123.0 + 99584.0 99043.0 98508.0 98132.0 97863.0 97596.0 97266.0 96916.0 96563.0 96195.0 95828.0 95464.0 95098.0 94732.0 94366.0 94000.0 93648.0 + 93290.0 92919.0 92606.0 92294.0 91937.0 91714.0 91535.0 91401.0 91223.0 91044.0 90868.0 90780.0 90732.0 90692.0 90648.0 90604.0 90560.0 + 90516.0 90472.0 90428.0 90428.0 90384.0 90340.0 90296.0 90252.0 90195.0 90604.0 91044.0 91088.0 91132.0 91132.0 91132.0 91088.0 91132.0 + 91401.0 91446.0 91490.0 91522.0 91624.0 91714.0 91803.0 91892.0 91982.0 92049.0 92115.0 92183.0 92240.0 92303.0 92383.0 92428.0 92517.0 + 92606.0 92696.0 92740.0 92830.0 92785.0 92740.0 92740.0 92740.0 92785.0 92763.0 92785.0 92740.0 92696.0 92651.0 92562.0 92517.0 92517.0 + 92473.0 92428.0 92339.0 92294.0 92205.0 92205.0 92160.0 92115.0 92013.0 91982.0 92026.0 92205.0 92294.0 92696.0 93187.0 93950.0 94221.0 + 94583.0 94832.0 95057.0 95260.0 95667.0 96540.0 97367.0 98290.0 98848.0 99360.0 99826.0 100198.0 100480.0 100764.0 101142.0 101425.0 + 101945.0 102370.0 102894.0 103278.0 103662.0 104094.0 104526.0 104886.0 105395.0 105346.0 105200.0 104862.0 104814.0 104574.0 104190.0 + 104046.0 103758.0 103470.0 103182.0 102894.0 102536.0 102323.0 102016.0 101756.0 101425.0 101047.0 100811.0 100575.0 100221.0 100338.0 + 100622.0 100858.0 101142.0 101473.0 101898.0 102229.0 102503.0 102942.0 103998.0 105006.0 106004.0 107003.0 107836.0 108573.0 109270.0 + 109863.0 110414.0 110966.0 111318.0 111569.0 111820.0 112021.0 112172.0 112322.0 112625.0 112778.0 112930.0 113032.0 113133.0 113235.0 + 113235.0 113336.0 113438.0 113641.0 113996.0 114453.0 115167.0 116018.0 117076.0 118169.0 119271.0 120269.0 121066.0 121757.0 122448.0 + 123051.0 123630.0 124198.0 124766.0 125090.0 125469.0 125796.0 126233.0 126671.0 126999.0 127382.0 127656.0 127929.0 128148.0 128203.0 + 128312.0 128257.0 128479.0 128534.0 128534.0 128534.0 128534.0 128479.0 128924.0 129090.0 129257.0 129480.0 129646.0 129869.0 130002.0 + 130202.0 130369.0 130480.0 130536.0 130564.0 130036.0 129535.0 129368.0 129035.0 128646.0 128257.0 127765.0 127327.0 127163.0 126890.0 + 126562.0 126671.0 127524.0 128368.0 129035.0 129535.0 130258.0 131148.0 132276.0 133940.0 135683.0 137117.0 138394.0 139438.0 140435.0 + 141259.0 141906.0 142377.0 142911.0 143328.0 143687.0 143925.0 144164.0 144254.0 144403.0 144463.0 144343.0 144164.0 143746.0 143328.0 + 142970.0 142465.0 142200.0 141729.0 141259.0 140906.0 140494.0 140023.0 139554.0 139206.0 138800.0 138278.0 137755.0 137175.0 136598.0 + 136026.0 135454.0 134711.0 133911.0 133629.0 133573.0 133460.0 133291.0 133347.0 133460.0 133516.0 133432.0 133404.0 133460.0 133404.0 + 133263.0 133178.0 133065.0 133009.0 133065.0 133065.0 133009.0 132840.0 132614.0 132332.0 131949.0 131487.0 130870.0 130258.0 129646.0 + 129035.0 128368.0 127820.0 127218.0 126616.0 125823.0 125036.0 124225.0 123414.0 122607.0 121863.0 121119.0 120322.0 119586.0 118747.0 + 119035.0 118852.0 118432.0 117959.0 117437.0 116870.0 116508.0 115915.0 115425.0 114860.0 114301.0 113743.0 113082.0 112524.0 111921.0 + 111318.0 110715.0 110113.0 109493.0 108874.0 108257.0 107638.0 107003.0 106369.0 105736.0 105151.0 104526.0 103902.0 103230.0 102607.0 + 101992.0 101473.0 100858.0 100244.0 99593.0 98988.0 98336.0 97734.0 97091.0 96448.0 95805.0 95148.0 94967.0 94944.0 94832.0 94718.0 + 94606.0 94538.0 94447.0 94312.0 94221.0 94109.0 94041.0 93950.0 93838.0 93724.0 93589.0 93498.0 93498.0 93453.0 93544.0 93544.0 93544.0 + 93544.0 93453.0 93498.0 93498.0 93589.0 93679.0 93634.0 93634.0 93679.0 93724.0 93724.0 93684.0 93589.0 93544.0 93521.0 93489.0 93453.0 + 93417.0 93378.0 93369.0 93365.0 93365.0 93374.0 93276.0 93231.0 93142.0 93098.0 92919.0 92674.0 92428.0 92102.0 91781.0 91424.0 91178.0 + 91088.0 91013.0 91000.0 91000.0 91000.0 90978.0 90956.0 90912.0 90956.0 90912.0 90868.0 90868.0 90824.0 90824.0 90824.0 90824.0 90824.0 + 90912.0 91000.0 91088.0 91178.0 91178.0 91123.0 91009.0 90912.0 90780.0 90652.0 90516.0 90736.0 90956.0 91178.0 91490.0 91937.0 92227.0 + 92517.0 92740.0 92955.0 93098.0 93321.0 93404.0 93476.0 93634.0 93847.0 94041.0 94312.0 94447.0 94583.0 94651.0 94809.0 94899.0 94967.0 + 94989.0 94944.0 94899.0 94763.0 94763.0 94583.0 94402.0 94221.0 94131.0 94131.0 94131.0 94176.0 94131.0 94041.0 94086.0 94086.0 94109.0 + 94176.0 94176.0 94176.0 94154.0 94176.0 94131.0 94086.0 94086.0 94086.0 94131.0 94131.0 94538.0 95080.0 95396.0 95622.0 95943.0 96218.0 + 96471.0 97137.0 97551.0 97918.0 98290.0 98802.0 98988.0 99034.0 99128.0 99174.0 99198.0 99314.0 99430.0 99546.0 99686.0 99779.0 100012.0 + 100198.0 100433.0 100669.0 101000.0 101236.0 101567.0 101803.0 101992.0 102134.0 102323.0 103470.0 105395.0 106662.0 107688.0 108429.0 + 109072.0 109566.0 109913.0 110263.0 110615.0 110916.0 111218.0 111720.0 112575.0 113489.0 114403.0 115425.0 116302.0 117592.0 119061.0 + 120482.0 121757.0 122714.0 123630.0 124387.0 125090.0 125741.0 126157.0 126616.0 127163.0 127765.0 128203.0 128590.0 128979.0 129257.0 + 129591.0 129869.0 130064.0 130314.0 130703.0 131036.0 131261.0 131543.0 131769.0 131938.0 132163.0 132276.0 132332.0 132445.0 132389.0 + 132558.0 132614.0 132671.0 132727.0 132727.0 132705.0 132727.0 132727.0 132727.0 133347.0 134025.0 134768.0 135437.0 136140.0 136769.0 + 137001.0 137129.0 137343.0 137523.0 137871.0 138132.0 138336.0 138684.0 138974.0 139148.0 139322.0 139670.0 140023.0 140200.0 140435.0 + 140611.0 140847.0 141023.0 141141.0 141318.0 141494.0 141612.0 141788.0 141906.0 142082.0 142200.0 142377.0 142494.0 142612.0 143197.0 + 143448.0 143627.0 143717.0 144105.0 144224.0 144403.0 144582.0 144701.0 144821.0 144881.0 145060.0 145179.0 145239.0 145778.0 146322.0 + 146806.0 147289.0 147773.0 148166.0 148619.0 148803.0 148926.0 149049.0 149141.0 149233.0 149356.0 149417.0 149540.0 149515.0 149724.0 + 149785.0 149816.0 149878.0 149939.0 150031.0 150092.0 150092.0 150154.0 150215.0 150068.0 150062.0 150006.0 149847.0 149656.0 149478.0 + 149294.0 149080.0 148908.0 148736.0 148571.0 148408.0 148220.0 148039.0 147857.0 147670.0 147459.0 147289.0 147168.0 147048.0 146443.0 + 145778.0 145119.0 144403.0 143687.0 142970.0 142259.0 141553.0 140847.0 140200.0 139542.0 138858.0 138132.0 137372.0 136598.0 135797.0 + 134997.0 134197.0 133291.0 132349.0 131402.0 130414.0 129413.0 128412.0 127508.0 126622.0 125850.0 125090.0 125041.0 125101.0 125160.0 + 124647.0 123874.0 123105.0 122342.0 121572.0 120801.0 119912.0 118930.0 117959.0 117024.0 116147.0 115218.0 114230.0 113240.0 112322.0 + 111333.0 110354.0 109369.0 108607.0 107876.0 107149.0 106418.0 105687.0 104958.0 104228.0 103499.0 102726.0 101945.0 101189.0 100400.0 + 99621.0 98839.0 98057.0 97321.0 96586.0 95851.0 95080.0 94312.0 94027.0 93910.0 93815.0 93765.0 93950.0 94131.0 94154.0 94131.0 94176.0 + 94176.0 94266.0 94402.0 94615.0 94718.0 94763.0 94809.0 94818.0 94859.0 94809.0 94718.0 94718.0 94673.0 94583.0 94520.0 94447.0 94447.0 + 94447.0 94583.0 94583.0 94673.0 94809.0 94899.0 94989.0 94809.0 94492.0 94266.0 93950.0 93905.0 93544.0 93276.0 92964.0 92651.0 92330.0 + 92004.0 91669.0 91335.0 90978.0 90472.0 90033.0 89593.0 89109.0 88934.0 88977.0 89065.0 89197.0 89373.0 89655.0 89703.0 89725.0 89681.0 + 89549.0 89373.0 89241.0 89241.0 89109.0 88977.0 88960.0 89021.0 88977.0 88956.0 88977.0 88943.0 88787.0 88589.0 88373.0 88200.0 87942.0 + 87726.0 87640.0 87769.0 87864.0 87972.0 88161.0 88416.0 88675.0 88891.0 89153.0 89505.0 89769.0 89989.0 90120.0 90208.0 90384.0 90560.0 + 90736.0 90912.0 91178.0 91366.0 91624.0 91892.0 92205.0 92562.0 92830.0 93142.0 93365.0 93498.0 93724.0 93860.0 94041.0 94176.0 94357.0 + 94492.0 94944.0 95306.0 95572.0 95989.0 96310.0 96586.0 96816.0 97229.0 97422.0 97642.0 98011.0 98290.0 98569.0 98825.0 99081.0 99286.0 + 99546.0 99733.0 100105.0 100338.0 100575.0 100811.0 101047.0 101378.0 101709.0 101945.0 102229.0 102465.0 102654.0 102894.0 103182.0 + 103326.0 103422.0 103470.0 103614.0 103662.0 103806.0 103902.0 104190.0 104382.0 104622.0 104862.0 105103.0 105346.0 105541.0 105785.0 + 105980.0 106223.0 106418.0 106613.0 106857.0 107100.0 107344.0 107485.0 107688.0 108083.0 108281.0 108464.0 108963.0 109374.0 109819.0 + 110173.0 110474.0 110766.0 111057.0 111403.0 111770.0 112096.0 112438.0 112778.0 113057.0 113331.0 113565.0 113946.0 113956.0 113941.0 + 113921.0 113758.0 113590.0 113321.0 113047.0 112905.0 112737.0 112661.0 112493.0 112207.0 111921.0 111634.0 111469.0 111383.0 111288.0 + 111193.0 111092.0 110992.0 110966.0 110866.0 110756.0 110640.0 110524.0 110534.0 110545.0 110550.0 110545.0 110439.0 110238.0 110545.0 + 110746.0 111117.0 111368.0 111599.0 111820.0 111971.0 112111.0 112237.0 112363.0 112488.0 112707.0 112930.0 113148.0 112956.0 112899.0 + 112838.0 112778.0 112717.0 112656.0 112448.0 112277.0 111820.0 111428.0 110997.0 110560.0 110118.0 109645.0 109196.0 108815.0 108429.0 + 108034.0 107658.0 107295.0 106930.0 106564.0 106185.0 105800.0 105907.0 106126.0 106345.0 106564.0 106808.0 107052.0 107539.0 108073.0 + 108108.0 108088.0 108063.0 108059.0 107945.0 107393.0 106554.0 105649.0 105176.0 104785.0 104387.0 104022.0 103686.0 103312.0 102937.0 + 102559.0 102176.0 101794.0 101406.0 101014.0 100905.0 100811.0 100735.0 100669.0 100599.0 100527.0 100414.0 100296.0 100170.0 100049.0 + 99919.0 99724.0 99528.0 99328.0 99128.0 98909.0 98690.0 98374.0 98057.0 97743.0 97422.0 97100.0 96779.0 96462.0 96044.0 95622.0 95197.0 + 94772.0 94266.0 93769.0 93231.0 92687.0 92656.0 92700.0 92763.0 92897.0 92942.0 92942.0 92942.0 92942.0 92942.0 93017.0 93321.0 93356.0 + 93254.0 93142.0 93098.0 92942.0 92740.0 92517.0 92281.0 92035.0 91781.0 91522.0 91267.0 91009.0 90758.0 90481.0 90208.0 89945.0 89725.0 + 89637.0 89373.0 89285.0 89285.0 89285.0 89285.0 89188.0 89087.0 89065.0 89021.0 89241.0 89615.0 89901.0 90177.0 90384.0 90428.0 90516.0 + 90630.0 90604.0 90560.0 90503.0 90428.0 90349.0 90287.0 90226.0 90064.0 89804.0 89545.0 89179.0 88778.0 88390.0 88011.0 87769.0 87467.0 + 87113.0 86777.0 86385.0 86000.0 85668.0 85326.0 84985.0 84644.0 84518.0 84393.0 84267.0 83974.0 83597.0 83345.0 82968.0 82830.0 82675.0 + 82508.0 82343.0 82173.0 81991.0 81755.0 81556.0 81320.0 81287.0 81432.0 81515.0 81556.0 81701.0 81846.0 81950.0 82032.0 82115.0 82193.0 + 82281.0 82364.0 82591.0 82759.0 82926.0 83010.0 83094.0 83115.0 83157.0 83219.0 83236.0 83215.0 83136.0 83094.0 83073.0 83052.0 83010.0 + 82968.0 82884.0 82809.0 82717.0 82633.0 82550.0 82717.0 83052.0 83764.0 84326.0 84793.0 85177.0 85412.0 85753.0 91624.0 96402.0 99500.0 + 100953.0 102229.0 103446.0 104478.0 105541.0 106564.0 107638.0 108627.0 109542.0 110389.0 111122.0 111845.0 112575.0 113387.0 114149.0 + 114809.0 115425.0 116302.0 117257.0 118253.0 119140.0 120006.0 120801.0 121438.0 122023.0 122660.0 123306.0 124009.0 124766.0 125550.0 + 126233.0 126912.0 127502.0 128104.0 129135.0 130269.0 131656.0 133178.0 134620.0 136055.0 137320.0 138220.0 139090.0 139905.0 140788.0 + 141494.0 142259.0 142970.0 143657.0 144314.0 144863.0 145388.0 145839.0 146262.0 146685.0 147108.0 147531.0 147894.0 148196.0 148474.0 + 148730.0 148926.0 149110.0 149282.0 149478.0 149785.0 149969.0 150092.0 150154.0 150215.0 150326.0 150399.0 150522.0 150890.0 151074.0 + 151136.0 151320.0 151381.0 151522.0 151906.0 152123.0 152372.0 152496.0 152620.0 152683.0 152589.0 152496.0 152391.0 152279.0 152228.0 + 152297.0 152297.0 152310.0 152372.0 152434.0 152496.0 152869.0 153304.0 153739.0 154237.0 154610.0 154922.0 155112.0 155364.0 155649.0 + 155901.0 156122.0 156235.0 156375.0 156438.0 156470.0 156501.0 156470.0 156438.0 156545.0 156564.0 156577.0 156621.0 156621.0 156520.0 + 156375.0 156185.0 155996.0 155869.0 155743.0 155567.0 155491.0 155523.0 155364.0 155112.0 154985.0 155162.0 155427.0 155649.0 155743.0 + 155743.0 155630.0 155472.0 155295.0 155112.0 154903.0 154734.0 154516.0 154330.0 154299.0 154112.0 153789.0 153448.0 153093.0 152714.0 + 152185.0 151627.0 151565.0 151332.0 151338.0 151443.0 151565.0 151136.0 150522.0 149724.0 148803.0 147864.0 146897.0 145899.0 144899.0 + 143896.0 142887.0 141871.0 140994.0 140082.0 139148.0 138475.0 138004.0 137726.0 137929.0 138278.0 138336.0 138278.0 138045.0 137743.0 + 137349.0 136827.0 136284.0 135769.0 135203.0 134626.0 134048.0 133466.0 133082.0 132721.0 132332.0 131927.0 131515.0 131020.0 130497.0 + 129986.0 129480.0 128985.0 128479.0 127973.0 127464.0 126956.0 126496.0 126397.0 126179.0 125485.0 124874.0 124468.0 124144.0 124117.0 + 124074.0 124014.0 123939.0 123857.0 123738.0 123619.0 123457.0 123279.0 122783.0 122283.0 121778.0 121253.0 120641.0 120059.0 119481.0 + 119045.0 118631.0 118442.0 118327.0 118159.0 117949.0 117744.0 117520.0 117298.0 117071.0 116849.0 116591.0 116354.0 116096.0 115822.0 + 115549.0 115275.0 115012.0 114758.0 114504.0 114250.0 113996.0 113743.0 113148.0 112676.0 112428.0 112172.0 111921.0 111669.0 111418.0 + 111157.0 110886.0 110605.0 110319.0 110138.0 109962.0 109784.0 109601.0 109413.0 109225.0 109028.0 108825.0 108617.0 108528.0 108459.0 + 108380.0 108281.0 108133.0 107984.0 107831.0 107658.0 107383.0 107183.0 106954.0 106691.0 106433.0 106151.0 105853.0 105546.0 105229.0 + 104905.0 104579.0 104248.0 103912.0 103580.0 103244.0 102913.0 102578.0 102243.0 101907.0 101572.0 101231.0 100962.0 100711.0 100447.0 + 100189.0 100012.0 99793.0 99555.0 99319.0 99062.0 98881.0 98695.0 98476.0 98206.0 97964.0 97459.0 97183.0 96953.0 96742.0 96545.0 + 96370.0 96200.0 96030.0 95851.0 95672.0 95509.0 95437.0 95297.0 95125.0 94881.0 94673.0 94465.0 94257.0 94055.0 93851.0 93679.0 93521.0 + 93507.0 93851.0 94194.0 94533.0 94786.0 94913.0 95043.0 95048.0 94971.0 94890.0 94804.0 94714.0 94624.0 94533.0 94438.0 94348.0 94402.0 + 94420.0 94402.0 94335.0 94266.0 94199.0 94303.0 94380.0 94538.0 94700.0 94967.0 95211.0 95396.0 95586.0 95750.0 95897.0 95980.0 96195.0 + 96531.0 96889.0 97160.0 97505.0 97872.0 98081.0 98383.0 98662.0 98700.0 98709.0 98895.0 99011.0 99081.0 99174.0 99258.0 99314.0 99570.0 + 99896.0 100221.0 100806.0 101832.0 102937.0 103830.0 104608.0 105259.0 105834.0 106321.0 106881.0 107369.0 107782.0 108158.0 108775.0 + 109720.0 110715.0 111569.0 112322.0 113012.0 113641.0 114276.0 114799.0 115373.0 115889.0 116560.0 117282.0 118117.0 119691.0 121545.0 + 123252.0 124874.0 126370.0 127710.0 128924.0 130036.0 131009.0 131769.0 132220.0 132614.0 132840.0 133065.0 133330.0 133798.0 134197.0 + 134391.0 134597.0 134768.0 135054.0 135266.0 135340.0 135454.0 135512.0 135512.0 135477.0 135495.0 135541.0 135626.0 135700.0 135929.0 + 136026.0 136066.0 136055.0 136072.0 136129.0 136140.0 136238.0 136295.0 136249.0 136140.0 135969.0 135797.0 135683.0 135854.0 136226.0 + 136540.0 136798.0 137233.0 137546.0 137755.0 138278.0 138661.0 138887.0 139032.0 139160.0 139322.0 139467.0 139618.0 139770.0 139923.0 + 139952.0 139964.0 139876.0 139770.0 139647.0 139729.0 139612.0 139484.0 139322.0 139189.0 139067.0 139090.0 139032.0 138951.0 138870.0 + 138858.0 138858.0 138916.0 139032.0 139061.0 139206.0 139345.0 139537.0 139764.0 139935.0 140094.0 140241.0 140335.0 140594.0 140988.0 + 141335.0 141694.0 142082.0 142612.0 142553.0 142435.0 142024.0 142612.0 144164.0 144761.0 145000.0 145119.0 145149.0 145269.0 145329.0 + 145340.0 145778.0 146262.0 146552.0 146504.0 146443.0 146413.0 146407.0 146334.0 146268.0 146540.0 146739.0 147307.0 147948.0 148650.0 + 149356.0 150000.0 150338.0 150878.0 151480.0 152061.0 152496.0 152950.0 153429.0 153814.0 154174.0 154572.0 154859.0 155081.0 155270.0 + 155465.0 155586.0 155491.0 155232.0 154859.0 154473.0 154081.0 153720.0 153168.0 152570.0 151980.0 151369.0 150755.0 150142.0 149540.0 + 148920.0 148256.0 147592.0 146927.0 146268.0 145615.0 144958.0 144296.0 143806.0 143149.0 142494.0 141847.0 141200.0 140553.0 139905.0 + 139252.0 138597.0 137941.0 137285.0 136552.0 135826.0 134997.0 134140.0 133291.0 132569.0 131881.0 130970.0 129924.0 128952.0 127874.0 + 126589.0 125361.0 124124.117647059 122887.235294118 121650.352941176 120413.470588235 119176.588235294 117939.705882353 116702.823529412 + 115465.941176471 114229.058823529 112992.176470588 111755.294117647 110518.411764706 109281.529411765 108044.647058824 106807.764705882 + 105570.882352941 104334.0 103278.0 102224.0 101166.0 100433.0 99733.0 99267.0 98825.0 98453.0 98150.0 97596.0 97183.0 96632.0 96167.0 + 95577.0 94962.0 94330.0 93833.0 93399.0 92986.0 92606.0 92227.0 91848.0 91468.0 91088.0 90705.0 90296.0 90472.0 90674.0 90635.0 90718.0 + 91132.0 91490.0 91772.0 92071.0 92330.0 92473.0 92740.0 93098.0 93321.0 93544.0 93769.0 93986.0 94221.0 93883.0 93544.0 93209.0 92870.0 + 92473.0 92053.0 91459.0 90938.0 91000.0 91205.0 91446.0 91692.0 91960.0 92071.0 92160.0 92231.0 92294.0 92343.0 92406.0 92469.0 92562.0 + 92651.0 92718.0 92781.0 92830.0 92722.0 92606.0 92477.0 92339.0 92160.0 91937.0 91624.0 91303.0 91000.0 90736.0 90485.0 90151.0 89791.0 + 89417.0 89241.0 89047.0 88795.0 88580.0 88373.0 88157.0 87899.0 87597.0 87338.0 87062.0 86794.0 86521.0 86287.0 86137.0 85945.0 85890.0 + 85753.0 85315.5 84878.0 84414.0 83932.0 83479.0 83174.0 82976.0 82599.0 82157.0 81722.0 81287.0 81183.0 81266.0 81390.0 81515.0 81597.0 + 81676.0 81763.0 81867.0 82074.0 82239.0 82529.0 83136.0 83743.0 84246.0 84686.0 85006.0 85305.0 85540.0 85838.0 86222.0 86538.0 86958.0 + 87338.0 87251.5 87165.0 87208.0 87234.0 87553.0 87899.0 88244.0 88568.0 89065.0 89373.0 89681.0 89967.0 90252.0 90582.0 90912.0 91267.0 + 91669.0 92084.0 92553.0 92964.0 93365.0 93792.0 94221.0 94763.0 95260.0 95759.0 96149.0 96517.0 96976.0 97367.0 97711.0 98081.0 98686.0 + 99258.0 99817.0 100333.0 100433.0 100764.0 101331.0 101803.0 102489.0 103422.0 104425.0 105385.0 106248.0 107246.0 108232.0 109245.0 + 110253.0 111218.0 112096.0 113057.0 113844.0 114378.0 114860.0 116122.0 118495.0 120349.0 121332.0 122023.0 122634.0 122981.0 123219.0 + 123522.0 124063.0 124495.0 124712.0 124874.0 125144.0 125741.0 126403.0 126999.0 128093.0 130425.0 133940.0 138481.0 142294.0 145179.0 + 147350.0 149724.0 151781.0 153491.0 154796.0 156311.0 157511.0 158337.0 158993.5 159650.0 160290.0 160771.0 161349.0 162256.0 163877.0 + 165713.0 167622.0 169454.0 171107.0 172439.0 173427.0 174144.0 174820.0 175224.0 175636.0 175671.0 175554.0 175328.0 175001.5 174675.0 + 174232.0 173759.0 173251.0 172764.0 172264.0 171865.0 171492.0 171154.0 170753.0 170353.0 169953.0 169546.0 169147.0 168687.0 168221.0 + 167755.0 167286.0 166819.0 166338.0 165857.0 165417.0 165028.0 164758.0 164299.0 163812.0 163320.0 163002.0 162529.0 162075.0 161641.0 + 161193.0 160707.0 160213.0 159708.0 159189.0 158638.0 158113.0 157732.0 157480.0 157038.0 156652.0 156185.0 155712.0 155207.0 154703.0 + 154143.0 153454.0 152962.0 152434.0 151731.0 151013.0 150276.0 149969.0 149779.0 149724.0 149632.0 149540.0 149448.0 149356.0 149190.0 + 148987.0 148957.0 148834.0 148650.0 148408.0 148111.0 147809.0 147501.0 147192.0 146927.0 146624.0 146322.0 146014.0 145718.0 145418.0 + 145119.0 144821.0 144522.0 144594.0 144654.0 144701.0 144582.0 144373.0 144111.0 143866.0 143621.0 143382.0 143137.0 142893.0 142636.0 + 142406.0 142271.0 142106.0 141912.0 141717.0 141553.0 141376.0 141200.0 141023.0 140841.0 140658.0 140512.0 140411.0 140494.0 140406.0 + 140305.0 140212.0 140112.0 140023.0 139876.0 139700.0 139554.0 139316.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/domain-range-informative/timeseries-domain-range.xsd b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/domain-range-informative/timeseries-domain-range.xsd new file mode 100644 index 00000000..3e38fcc1 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/domain-range-informative/timeseries-domain-range.xsd @@ -0,0 +1,148 @@ + + + + + This schema describes the domain-range timeseries result structures for WaterML2.0. This is + only an informative schema and has not been adopted as a standard XML encoding. This is an implementation + of the domain-range timeseries conceptual model. This implementation only covers timeseries of measurements and categorical values + (string with codespaces). Subsequent versions of schema may support more complex results such as multi-result (compound), vectors etc. + + OGC WaterML 2.0 is an OGC Standard. + Copyright (c) 2012 Open Geospatial Consortium. + To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + + + + + + + A list of dateTime instances + + + + + + + + + + + + + + + + + gml:TimeInstant acts as a zero-dimensional geometric primitive that represents an identifiable position in time. + + + + + + + A coverage that describes metadata about another temporal coverage. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A coverage with a domainSet composed of time instants (a time list). Restriction performed in schematron (the gml cov schema does not restrict the types directly in schema, just through requirements clauses and tests). + + + + + + + + + + + + + + + A further restriction of the base domain-range timeseries type that restricts the rangeSet to be a measurement (quantity) + + + + + + + + + + + + + + + A further restriction of the base domain-range timeseries type that restricts the rangeSet to be a category (scoped text) + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/collection-forecasting-example.xml b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/collection-forecasting-example.xml new file mode 100644 index 00000000..7fefae13 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/collection-forecasting-example.xml @@ -0,0 +1,167 @@ + + + A handcrafted example of a Hydrologic Forecast timeseries + + The data describes a forecast timeseries available for one forecast point + from a run conducted for T0=2010-05-06T00:00Z (analysisTime) + with state selection "2010-05-03T12:00Z" (initTime) + out 10 days cut off at 12Z, executed at "2010-05-06T05.00Z, finished at "2010-05-06T05:01Z" (resultTime) + + OandM phenomenonTime=period stating begin timestamp and end timestamp of forecast timeseries + --> phenomenonTime.begin="2010-05-03T12:00Z" + phenomenonTime.end="2010-05-16T12:00Z" + OandM resultTime=time when forecast became available (i.e. when run is finished) + --> resultTime="2010-05-06T05:00Z" + OandM validTime=period for which forecast is intended to be used + + validityTime=T+x timestamp, accounted for in the MeasurementTVP of WaterML2 + + analysisTime=T0 + -->parameter.name="analysisTime" parameter.value="2010-05-06T00:00Z" (T0 timestamp) + initTime=start run (timestamp of first selected state) + -->parameter.name="initTime" parameter.value="2010-05-03T12:00Z" (timestamp first selected state) + datumTime=last observed time + ->parameter.name="datumTime" parameter.value="2010-05-06T00:00Z" + + + + 2011-09-21T16:46:00+10:00 + + + + + + + + + + + + New Jersey Water Science Center + + + + + + + 2012-04-10T12:50:07 + + + + + + 2010-05-06T12:00:00Z + 2010-05-16T12:00:00Z + + + + + + 2010-05-06T05:00:00Z + + + + + + + 2010-05-06T05:00:00Z + 2010-05-07T05:00:00Z + + + + + + + + + 2010-05-06T00:00:00+00:00 + + + + + + 2010-05-03T12:00:00+00:00 + + + + + + + + + + + + 2010-05-06T00:00:00+00:00 + 2010-05-16T12:00:00+00:00 + + + 2010-05-06T00:00:00+00:00 + PT6H + + + + + + + + + + + + 21.7 + + + + + 21.7 + + + + + + + + + + + + + + + 21.8 + + + + + 22.0 + + + + + 22.6 + + + + + + + diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-categorical-timeseries-tvp.xml b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-categorical-timeseries-tvp.xml new file mode 100644 index 00000000..c7d780ee --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-categorical-timeseries-tvp.xml @@ -0,0 +1,61 @@ + + + This is an example showing a categorical time series in waterml2.0. + Describes a timeseries of manual weather observations. + + + + + 2011-11-16T00:00:00+11:00 + 2011-11-18T00:00:00+11:00 + + + + + + + 2011-11-16T00:00:00+11:00 + + + Fairly uniform precipitation composed exclusively of very small water droplets (less than 0.5 mm in diameter) + very close to one another + + + Drizzle + + + + + + + 2011-11-17T00:00:00+11:00 + + + Usually begin and end suddenly. Relatively short-lived, but may last half an hour. + Fall from cumulus clouds, often separated by blue sky. Showers may fall in patches rather than across + the whole forecast area. Range in intensity from light to very heavy + + Showers + + + + + + + 2011-11-18T00:00:00+11:00 + + + + + No observation performed. + + + + + diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-collection.xml b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-collection.xml new file mode 100644 index 00000000..25d97cf7 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-collection.xml @@ -0,0 +1,137 @@ + + + Example collection for XML encoding http://www.opengis.net/spec/waterml/2.0/req/xsd-collection + + + + 2011-11-28T10:05:05+11:00 + + Manual + + + + + + + + + + + + 2011-11-21T12:30:00+10:00 + 2011-11-21T12:45:35+10:00 + + + + + + sweet_phenomenon + + + Temperature + Temperature + NASA SWEET definition of temperature + + + + + + + + Deddington + + + + -41.814935 147.568517 + + + + + + +11:00 + AEDT + + + + + + + + EX.OB.B.1 + + + + + 2011-11-28T10:01:00+10:00 + + + PT15M + + + + + + + + 2011-11-21T12:45:35+10:00 + + + + + + + + + + + + + + + + + + + + + + + + + + 2011-11-21T12:30:00+10:00 + 10.5 + + + + + + 95 + + + + + + + + + 2011-11-21T12:45:35+10:00 + 10.5 + + + + + 2011-11-21T13:00:10+10:00 + 10.4 + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-encoding-rules.xml b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-encoding-rules.xml new file mode 100644 index 00000000..08613b68 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-encoding-rules.xml @@ -0,0 +1,35 @@ + + + Example timeseries for XML encoding http://www.opengis.net/spec/waterml/2.0/req/xsd-encoding-rules + + + + + 2011-11-21T12:26:00+10:00 + 2011-11-21T12:27:00+10:00 + + + + + + + + + + + + 2011-11-21T12:27:00+10:00 + 3.45 + + + + + + + + diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-measurement-timeseries-tvp.xml b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-measurement-timeseries-tvp.xml new file mode 100644 index 00000000..2a938a8d --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-measurement-timeseries-tvp.xml @@ -0,0 +1,73 @@ + + + Example timeseries for XML encoding http://www.opengis.net/spec/waterml/2.0/req/xsd-timeseries-time-value-pair + + + + + 2011-11-21T12:27:00+10:00 + 2011-11-21T12:30:00+10:00 + + + 2011-11-21T12:27:00+10:00 + PT1M + + + + + + + + P1M + + + + + + 3.0 + + + + + + 3.2 + + + + + + 0.1 + + + + + + + + + + + + + + + + + + + + + 3.63 + + + + diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-monitoring-point.xml b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-monitoring-point.xml new file mode 100644 index 00000000..c2748833 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-monitoring-point.xml @@ -0,0 +1,46 @@ + + + Example monitoring point for XML http://www.opengis.net/spec/waterml/2.0/req/xsd-monitoring-point. Nile river at Deddington, South + Esk catchment, Tasmania + Deddington + + + + + -41.814935 147.568517 + + + + + + Department of Primary Industries, Parks, + Water and Environment (DPIPWE) + + + Owner + + + + + + + deddington_local_gauge + not known + + 102.3 + + + + + + +11:00 + AEDT + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-observation-process.xml b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-observation-process.xml new file mode 100644 index 00000000..a76c271e --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-observation-process.xml @@ -0,0 +1,31 @@ + + + Example observation process for XML encoding http://www.opengis.net/spec/waterml/2.0/req/xsd-observation-process + + + + P1D + + + + + + + -0.1 + + + diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-timeseries-observation.xml b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-timeseries-observation.xml new file mode 100644 index 00000000..81260c87 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/encoding_examples/xsd-timeseries-observation.xml @@ -0,0 +1,82 @@ + + + Example timeseries for XML encoding http://www.opengis.net/spec/waterml/2.0/req/xsd-timeseries-observation + + + + + + 2011-11-21T12:30:00+10:00 + + + + + + + 2011-11-21T12:26:00+10:00 + 2011-11-21T12:27:00+10:00 + + + + + 2011-11-21T12:27:00+10:00 + + + + + + + + + + + + + + + + + 2011-11-21T12:26:00+10:00 + 2011-11-21T12:27:00+10:00 + + + + + + + + + http://www.example.com/terms/2.3 + + + + + + 2011-11-21T12:27:00+10:00 + + + Biased + + + + + Sensor drift detected + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/measurement-timeseries-discharge.xml b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/measurement-timeseries-discharge.xml new file mode 100644 index 00000000..f269857b --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/measurement-timeseries-discharge.xml @@ -0,0 +1,160 @@ + + + KISTERS WaterML2.0 demonstration based on GRDC data + + + 2011-10-19T00:00:00Z + KISTERS KiWIS + + + + + + + 2000-01-01T00:00:00Z + 2000-01-10T00:00:00Z + + + + + 2000-01-10T00:00:00Z + + + + + + P1D + + + + + + 6731310 + + + + + + Dramselv + + + + + + + + Norway + + + + + + + + NO + + + + + + + + Norwegian Water Resources and Energy Directorate + + + + + + 9.908 59.881 + + + + + + + +1 + + + + + + + + + + false + + + + + + + + P1D + + + + + 2000-01-01T00:00:00.000Z + 266 + + + + + 2000-01-02T00:00:00.000Z + 266 + + + + + 2000-01-03T00:00:00.000Z + 255 + + + + + 2000-01-04T00:00:00.000Z + 266 + + + + + 2000-01-05T00:00:00.000Z + 258 + + + + + 2000-01-06T00:00:00.000Z + 265 + + + + + 2000-01-07T00:00:00.000Z + 268 + + + + + 2000-01-08T00:00:00.000Z + 275 + + + + + 2000-01-09T00:00:00.000Z + 275 + + + + + 2000-01-10T00:00:00.000Z + 275 + + + + + + + diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/measurement-timeseries-example.xml b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/measurement-timeseries-example.xml new file mode 100644 index 00000000..a58707b4 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/measurement-timeseries-example.xml @@ -0,0 +1,66 @@ + + + This is an example showing a measure time series in waterml2.0. + The series uses the measure-specific metadata types. + + + + + 2011-11-16T00:00:00+11:00 + 2011-04-08T00:00:00+11:00 + + + false + + + + + + + + + + + + + + 2011-11-16T00:00:00+11:00 + 2.0 + + + + + + + Relative Accuracy + + 2 + + + + + + + + + + 2011-11-17T00:00:00+11:00 + 2.0 + + + + + 2011-11-18T00:00:00+11:00 + 3.0 + + + diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/measurement-timeseries-min-daily-discharge-monthly.xml b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/measurement-timeseries-min-daily-discharge-monthly.xml new file mode 100644 index 00000000..6ec01af2 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/measurement-timeseries-min-daily-discharge-monthly.xml @@ -0,0 +1,154 @@ + + + This is an example WaterML2.0 encoding of the minimum daily discharge for each month for a site (Nile River at Deddington in + Tasmania, Australia). This is actual data. Auth: Pete Taylor, 25th October 2011, CSIRO. + + + 2011-10-25T15:39:00+10:00 + + Handcrafted + + + + + + Nile river at Deddington, South Esk catchment, Tasmania + Deddington + + + + -41.814935 147.568517 + + + + + + +11:00 + AEDT + + + + + + + + + + + 2010-10-01T00:00:00 + 2011-10-31T00:00:00 + + + + + + + P1D + + + + + + + + + + + 2010-11-01T00:00:00 + P1M + + 2010-10-01T00:00:00 + + + + + + + P1D + + + + + + 0.72 + + + + + 0.588 + + + + + 0.506 + + + + + 0.298 + + + + + 0.209 + + + + + + + + + + 0.529 + + + + + 0.524 + + + + + 0.791 + + + + + 1.102 + + + + + 2.901 + + + + + 0.827 + + + + + 0.625 + + + Only partial for this month - 5 days remain + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/measurement-timeseries-qualifier.xml b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/measurement-timeseries-qualifier.xml new file mode 100644 index 00000000..9a54d1f5 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/examples/measurement-timeseries-qualifier.xml @@ -0,0 +1,176 @@ + + + + This is an example WaterML2.0 encoding of the minimum daily discharge for each month for a site (Nile River at Deddington in + Tasmania, Australia). This is actual data. Auth: Pete Taylor, 25th October 2011, CSIRO. + + + 2011-10-25T15:39:00+10:00 + + Handcrafted + + + + + + + + offsetValue + Vertical offset + Describes the vertical offset from the sampling point + + + + + + + + Nile river at Deddington, South Esk catchment, Tasmania + Deddington + + + + -41.814935 147.568517 + + + + + + +11:00 + AEDT + + + + + + + + + + + 2010-10-01T00:00:00 + 2011-10-31T00:00:00 + + + + + + + P1D + + + + + + + + + + + 2010-11-01T00:00:00 + P1M + + 2010-10-01T00:00:00 + + + + + + + P1D + + + + + + 0.72 + + + + + + 3.0 + + + + + + + + + 0.588 + + + + + 0.506 + + + + + 0.298 + + + + + 0.209 + + + + + + + + + + 0.529 + + + + + 0.524 + + + + + 0.791 + + + + + 1.102 + + + + + 2.901 + + + + + 0.827 + + + + + 0.625 + + + Only partial for this month - 5 days remain + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/measurement-timeseries-tvp-observation.sch b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/measurement-timeseries-tvp-observation.sch new file mode 100644 index 00000000..36e1431c --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/measurement-timeseries-tvp-observation.sch @@ -0,0 +1,35 @@ + + + + + OGC WaterML2.0 measurement timeseries (tvp) observation +

Verifies that the OM_Observation result type is valid according to the WaterML2 measurement timeseries (tvp) observation . Tests + requirements from http://www.opengis.net/spec/waterml/2.0/req/xsd-measurement-timeseries-tvp-observation

+ + + + + + + + + + + Test requirement: /req/xsd-measurement-timeseries-tvp-observation/result + + result must contain an element in the substitution group headed by wml2:MeasurementTimeseries + + + +
diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/measurement-timeseries-tvp.sch b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/measurement-timeseries-tvp.sch new file mode 100644 index 00000000..09aea3a5 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/measurement-timeseries-tvp.sch @@ -0,0 +1,79 @@ + + + + + OGC WaterML2.0 measurement time series validation +

Verifies the timeseries is valid according the measure time series class, + http://www.opengis.net/spec/waterml/2.0/req/xsd-measurement-timeseries-tvp

+ + + + + + + + + + + + Test requirement: /req/xsd-measurement-timeseries-tvp/value-measure + + The time series points must be of type measurement + + + + + Test requirement: /req/xsd-measurement-timeseries-tvp/interpolation-type + + + The interpolation type of a point must be set explicitly or through the default point metadata. + + + + + + Test requirement: /req/xsd-measurement-timeseries-tvp/unit-of-measure + + A unit of measure + must be supplied either through the default point metadata or by explicit attribute on the value. + + + + + Test requirement: /req/xsd-measurement-timeseries-tvp/point-metadata + + The default metadata + for a point must use the measurement specific type. + + + + + Test requirement: /req/xsd-measurement-timeseries-tvp/point-metadata + + The point metadata for each point + must be consistent with the measurement series. I.e. a TVPMeasurementMetadata + + + + + Test requirement: /req/xsd-measurement-timeseries-tvp/timeseries-metadata + + The timeseries metadata + must be consistent with the measurement series. I.e. MeasurementTimeseriesMetadata + + + +
diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/monitoring-point-feature-of-interest.sch b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/monitoring-point-feature-of-interest.sch new file mode 100644 index 00000000..2fb6d91b --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/monitoring-point-feature-of-interest.sch @@ -0,0 +1,34 @@ + + + + + OGC WaterML2.0 observation validation +

Verifies that the om:featureOfInterest element contains a OGC WaterML2.0 monitoring point type.

+ + + + + + + + + + + Test requirement: /req/xsd-feature-of-interest-monitoring-point/featureOfInterest + + The xml element om:featureOfInterest shall contain a subelement of wml2:MonitoringPoint, a + member of its substitution group or a reference to a representation of the monitoring point using xlink. + + +
diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/monitoringPoint.xsd b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/monitoringPoint.xsd new file mode 100644 index 00000000..5d34c002 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/monitoringPoint.xsd @@ -0,0 +1,102 @@ + + + + Defines OGC WaterML2.0 monitoring point feature types. Based on OMXML sampling features. + + OGC WaterML 2.0 is an OGC Standard. + Copyright (c) 2012 Open Geospatial Consortium. + To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + A (point) location where water flow or properties are reported, such as a stream gauge, rainfall gauge, or water quality monitoring site. + + + + + + + + + + Describes parties – individuals or organisations – that are related to the monitoring point. Multiple related parties may be described using the role code list (from ISO 19115). The most common relationships are likely to be: owner, originator, pointOfContact, principalInvestigator and distributor. + + + + + + A characterisation of the type of station. E.g. meteorological, surface water, groundwater, water quality etc. + + + + + + Provide extra description about a monitoring point. This could be a link to an HTML page describing the location, photos of a monitoring point, history records etc. + + + + + + Specifies the elevation that is used as the zero point, or datum, for vertical measurements (e.g stage/level). + The gml:VerticalDatumPropertyType type allows specification of the local gauge zero as a height above a reference datum. E.g. local gauge zero is 23m above the AHD using the anchorDefinition. + + + + + + + Specifies the time zone that the sampling point is located in. The zone offset must be specified (e.g. +10:00 GMT), with an optional zone abbreviation (e.g. AEST) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/observationProcess.xsd b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/observationProcess.xsd new file mode 100644 index 00000000..f01701b4 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/observationProcess.xsd @@ -0,0 +1,90 @@ + + + + + Specialized observation procedures for OGC WaterML2.0 + + OGC WaterML 2.0 is an OGC Standard. + Copyright (c) 2012 Open Geospatial Consortium. + To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + A large number of direct in-situ hydrological observations are performed by a sensor or sensor system. Common types of sensors + include rain gauges, level gauges, quality sensors such as temperature, turbidity etc. Manual procedures may be also used to make measurements + at a particular sampling point. These may be ad-hoc visits to particular point that may be of interest, or continued visits to a well + identified sampling point. Procedures that generate derived or synthetic results also exist, such as those produced by algorithms or + simulations. Algorithms are commonly implemented in hydrological software to process data sets for reporting or other purposes. Examples + include: - Temporal interpolation or aggregation; - Spatial interpolation; - Quality assurance related tasks such as automatic spike removal + or gap filling; - Derivation of new observed phenomena such as calculation of volume from stage, discharge (flow) from stage + etc. + + + + + + + + + A defintion of the type of process used in the observation. This may be a Sensor, ManualMethod, Algorithm or Simulation + (including models). + + + + + A reference to the original source of the data. For example, if this is a post-processed time series (and processType is + algorithm), this link would specify the original process that generated the data, e.g. the sensor. This allows the origin of the data + to be maintained regardless of the processing that has occured to it. + + + + + If the process involves temporal aggregation of a result set, the time duration over which data has been aggregated should be expressed here. E.g. hourly, daily aggregates. + + + + + Specifies the datum that is used as the zero point for level measurements. This can be process-specific as opposed the + gauge at the actual monitoring point. + + + + + Comments specific to the process from the operator or system performing the process. + + + + + Reference to an external process definition. + + + + + A list of the inputs used in the process. This may be a list of references to the data sets used (e.g. model input + series) or a input array to an algorithm. + + + + + A defintion of the type of process used in the observation. This may be a Sensor, ManualMethod, Algorithm or Simulation + (including models). + + + + + + + + + + + + + + diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/timeseries-observation.sch b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/timeseries-observation.sch new file mode 100644 index 00000000..c1dfdea2 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/timeseries-observation.sch @@ -0,0 +1,51 @@ + + + + + OGC WaterML2.0 observation validation +

Verifies that the OM_Observation type is valid according to the core WaterML2 observation restrictions. Tests + requirements from http://www.opengis.net/spec/waterml/2.0/req/xsd-timeseries-observation

+ + + + + + + + + + + Test requirement: /req/xsd-timeseries-observation/procedure + + The xml element om:procedure shall contain a subelement of wml2:ObservationProcess, a + member of its substitution group or a reference to an external definition of the process using the xlink:href attribute. + + + + Test requirement: /req/xsd-timeseries-observation/metadata + + The xml element om:metadata shall contain a subelement of wml2:ObservationMetadata, a + member of its substitution group or a reference to an external definition of the process using the xlink:href attribute. + + + + Test requirement: /xsd-timeseries-observation/phenomenonTime + + The om:phenomenonTime element shall contain a + gml:TimePeriod element that represents the temporal extent of the timeseries result of the observation or a reference + to such an element. + + +
diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/timeseries-tvp-observation.sch b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/timeseries-tvp-observation.sch new file mode 100644 index 00000000..4032b02d --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/timeseries-tvp-observation.sch @@ -0,0 +1,35 @@ + + + + + OGC WaterML2.0 interleaved timeseries observation +

Verifies that the OM_Observation result type is valid according to the WaterML2 interleaved timeseries observation . Tests + requirements from http://www.opengis.net/spec/waterml/2.0/req/xsd-timeseries-tvp-observation

+ + + + + + + + + + + Test requirement: /req/xsd-timeseries-tvp-observation/result + + result must contain an element in the substitution group headed by wml2:Timeseries + + + +
diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/timeseries.sch b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/timeseries.sch new file mode 100644 index 00000000..4f7b2296 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/timeseries.sch @@ -0,0 +1,94 @@ + + + + + OGC WaterML2.0 timseries validation +

Verifies that the Timeseries type follows the requirements specified by + http://www.opengis.net/spec/waterml/2.0/req/xsd-timeseries-tvp

+ + + + + + + + + + + + + + Tests /req/xsd-xml-rules/iso8601-time and /req/xsd-xml-rules/time-zone + + + + + Input value is + + Timezone is mandatory according to the following format YYYY-MM-DDTHH:MM:SS(.s+)?(Z|[+-]HH:MM). TZ specifier must exist. + + + + + + + Input value is + + Timezone is mandatory according to the following format YYYY-MM-DDTHH:MM:SS(.s+)?(Z|[+-]HH:MM). TZ specifier must exist. + + + + + + Tests /req/xsd-timeseries-tvp/equidistant-encoding + and /req/xsd-timeseries-tvp/time-mandatory + + + Both spacing and baseTime need to be specifed if equidistant series, otherwise neither should be used. + + + + + + The time for each point in the series must be specified if equidistant spacing isn't being used (i.e. you must + specify the baseTime and spacing elements). If baseTime and spacing are specified then time is not required. + + + + + + + Tests /req/xsd-timeseries-tvp/null-point-reason + + + All null points must provide a nilReason or a censoredReason. + + + + + Test recommendation: /req/xsd-xml-rules/xlink-titles-for-core-elements + + xlink:title are required for + observedProperty and featureOfInterest + + +
diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/timeseries.xsd b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/timeseries.xsd new file mode 100644 index 00000000..8351c9f2 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/timeseries.xsd @@ -0,0 +1,431 @@ + + + + This schema describes the timeseries result structures for OGC WaterML2.0. The XML implements the interleaved coverage timeseries + represetation described in the OGC WaterML2.0 conceptual model. This implementation only covers timeseries of measurements and categorical values + (string with codespaces). Subsequent versions of schema may support more complex results such as multi-result (compound), vectors etc. + + OGC WaterML 2.0 is an OGC Standard. + Copyright (c) 2012 Open Geospatial Consortium. + To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + + + + + + + + Defines the quality of the point (or the default if it is the defaultTimeValuePair) using an OGC WaterML2.0 quality code. The + qualifier element should be used for other assertions (e.g. using internal codes). + + + + + Specifies the reason for a null point (xsi:nil='true'). Must be present if the value is null. + + + + + Free text comment associated with the data point. + + + + + Defines a reference to an observation that is related to this point. E.g. derived from a sample. + + + + + A general qualifier for the point to define influencing conditions, or other qualifying information. A broader, more + flexible location for qualifiers. + + + + + Defines what processing has occured on the data point using a reference to a code item. + + + + + Defines the source of the value through an indentification reference. This is used where the timeseries may be aggregated from multiple sources.his can be an internal link to om:OM_Observation/om:metadata/wml2:ObservationMetadata/gmd:identificationInfo/gmd:MD_DataIdentification + + + + + + + + + + + + + + Defines the default unit of measure across the series. The uom code is specified using the UCUM code. + + + + + The interpolation type of the time series point. This describes the nature of the value to the time with which it is + associated. E.g. average in the preceeding interval. The URL codes are available at http://www.opengis.net/def/waterml/2.0/interpolationType/ + + + + + Specifies the reason the value has been censored. e.g. left/right censoring, + + + + + Used to specify the accuracy of a single value. + + + + + Describes the temporal aggregation that has occured to the value. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Describes a time series as a collection of time-value pairs (implements TimeseriesTVP model type). A time series is a also a realisation of a discrete time coverage as + defined by ISO19123 - Coverages. + + + + + + + + + + + + + + + + + Describes a time series as a collection of time-value pairs where the value-type is a measurement + and associated metadata is specific to measurement types. + + + + + + + + + + + + + + + + + + + + + Describes a time series as a collection of time-value pairs where the value-type is a category + and associated metadata is specific to categorical types. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defines the start and end times of the represented time series. + + + + + Defines the start time for isochronous (equidistant) time series. Each point occurs at regular steps (defined by the spacing + property). If baseTime is specified you must supply a spacing element. + + + + + The spacing between points for isochronous or equidistant (equally space) points. This is used with the baseTime element to allow calculation of time instants. + + + + + A comment that applies over a period of time for the time series. + + + + + A named-value extension point, allowing extra metadata to be associated with a timeseries. + + + + + + + + + + + + + + + + + + + + + The anchor point for the beginning of the series. + + + + + The anchor point for the end of the series. + + + + + Sets the time series to be a cumulative series. + + + + + Defines the time at which accumulation begins. + + + + + Defines the period over which accumulation occurs. + + + + + Indicates the maxiumum period allowed between two series before interpolation is not possible. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defines the default codeSpace for the category timeseries + + + + + + + + + + + + + + + + + + + + + + + + + + The time instant for the data point. + + + + + + + + + + + + + The value of a measurement timeseries is a measure + + + + + + + + + + + + + + + + The value type is a category + + + + + + + + + + + + + + + The period over which the comment applies. + + + + + The comment that applies for the period. + + + + + + + + + + + + + + + + + + gml:MeasureType supports recording an amount encoded as a value of XML Schema double, together with a units of measure indicated + by an attribute uom, short for "units Of measure". The value of the uom attribute identifies a reference system for the amount, usually a + ratio or interval scale. OGC WaterML2.0 alters this definition to make uom optional as this value is defaulted for a series. + + + + + + + + + + + + diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/timeseriesObservationMetadata.xsd b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/timeseriesObservationMetadata.xsd new file mode 100644 index 00000000..05cc6683 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/timeseriesObservationMetadata.xsd @@ -0,0 +1,68 @@ + + + + Specialized observation metadata classes for OGC WaterML2.0 + + OGC WaterML 2.0 is an OGC Standard. + Copyright (c) 2012 Open Geospatial Consortium. + To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + + Metadata relating to water observation. Specialisation of the ISO19115 MD_Metadata type. + + + + + + + + + Defines the expected interval in which observations can be expected. e.g. daily. + + + + + Indicates the statues of the observation. E.g. unreleased, verified etc. + + + + + Indicates the medium that was sampled. E.g. water, air, etc. + + + + + + Defines the allowed gap between series when joining this time series with another. + + + + + + A soft-typed parameter to allow extension through name-value pairs. + + + + + + + + + + + + + + + diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/vocabulary.sch b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/vocabulary.sch new file mode 100644 index 00000000..9561edd8 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/vocabulary.sch @@ -0,0 +1,82 @@ + + + + + OGC WaterML2.0 Vocabulary tests +

This schematron schema checks the XML encoding requirements of OGC WaterML2.0, as specified + in the requirements class: http://www.opengis.net/spec/waterml/2.0/rec/xsd-xml-rules/vocabulary-references. + It further checks that the correct codes are available within the OGC repository.

+ + + + + + + + + + + + + + + + + + + + + Test recommendation: http://www.opengis.net/spec/waterml/2.0/rec/xsd-xml-rules/vocabulary-references + + Interpolation Type URI is not WaterML2 + Interpolation Type resource () is not in the OGC repository. + + + + + Test recommendation: http://www.opengis.net/spec/waterml/2.0/rec/xsd-xml-rules/vocabulary-references + + processType URI is not WaterML2 + processType resource () is not in the OGC repository. + + + + + Test recommendation: http://www.opengis.net/spec/waterml/2.0/rec/xsd-xml-rules/vocabulary-references + + quality URI is not WaterML2 + quality resource ()is not in the OGC repository. + + + + + Test recommendation: http://www.opengis.net/spec/waterml/2.0/rec/xsd-xml-rules/vocabulary-references + + Sample Medium URI is not WaterML2 + Sample Medium resource () is not in the OGC repository. + + + + +
diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/waterml2.xsd b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/waterml2.xsd new file mode 100644 index 00000000..f2053ba1 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/waterml2.xsd @@ -0,0 +1,27 @@ + + + + OGC WaterML2.0 is designed as an extensible schema to allow encoding of data to be used in a variety of exchange scenarios. Example + areas of usage are: exchange of data for operational hydrological monitoring programs; supporting operation of infrastructure (e.g. dams, supply + systems); cross-border exchange of observational data; release of data for public dissemination; enhancing disaster management through data + exchange; and exchange in support of national reporting. The core aspect of the model is in the correct, precise description of time series. + Interpretation of time series relies on understanding the nature of the process that generated them. This standard provides the framework under + which time series can be exchanged with appropriate metadata to allow correct machine interpretation and thus correct use for further analysis. + Existing systems should be able to use this model as a conceptual bridge between existing schema or systems, allowing consistency of the data to + maintained. + + OGC WaterML 2.0 is an OGC Standard. + Copyright (c) 2012 Open Geospatial Consortium. + To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/xml-rules.sch b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/xml-rules.sch new file mode 100644 index 00000000..c47b23cf --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/Schema/2_0/xml-rules.sch @@ -0,0 +1,64 @@ + + + + + OGC WaterML2.0 XML encoding tests +

This schematron schema checks the XML encoding requirements of OGC WaterML2.0, as specified + in the requirements class: http://www.opengis.net/spec/waterml/2.0/req/xsd-xml-rules

+ + + + + + + + + Test recommendation: /req/xsd-xml-rules/xlink-title + + If an xlink:href is used to reference a controlled vocabulary item, the element should encode the + xlink:title attribute with a text description of the referenced item.If an xlink:href is used to reference a controlled vocabulary item, the + element should encode the xlink:title attribute with a text description of the referenced item. + + + + + Test requirement: /req/xsd-xml-rules/swe-types + + When using the SWE Common types, the following elements shall not be used: + swe:quality (AbstractSimpleComponentType), swe:nilValues (AbstractSimpleComponentType), swe:constraint. + + + When using the SWE Common types, the following elements shall not be used: + swe:quality (AbstractSimpleComponentType), swe:nilValues (AbstractSimpleComponentType), swe:constraint. + + + + When using the SWE Common types, the following elements shall not be used: + swe:quality (AbstractSimpleComponentType), swe:nilValues (AbstractSimpleComponentType), swe:constraint. + + + + + + + Test recommendation: /req/xsd-xml-rules/xlink-valid-local-reference + + + If an xlink:href is a local reference + the reference element must exist. + + + + + +
diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/SeriesCodeHelper.cs b/Source/Core/HydroDesktop.WebServices/WaterML/SeriesCodeHelper.cs new file mode 100644 index 00000000..1442fb41 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/SeriesCodeHelper.cs @@ -0,0 +1,36 @@ + +namespace HydroDesktop.WebServices.WaterML +{ + internal static class SeriesCodeHelper + { + public static string CreateSeriesCode(string methodCode, string qualityCode, string sourceCode) + { + return methodCode + "|" + qualityCode + "|" + sourceCode; + } + + public static string GetMethodCode(string fullCode) + { + var index = fullCode.IndexOf("|", System.StringComparison.Ordinal); + if (index < 0) return fullCode; + return fullCode.Substring(0, index); + } + + public static string GetQualityCode(string fullCode) + { + var firstIndex = fullCode.IndexOf("|", System.StringComparison.Ordinal); + var lastIndex = fullCode.LastIndexOf("|", System.StringComparison.Ordinal); + var length = lastIndex - firstIndex - 1; + if (firstIndex < 0) return fullCode; + if (lastIndex + 1 == fullCode.Length) return fullCode; + return fullCode.Substring(firstIndex + 1, length); + } + + public static string GetSourceCode(string fullCode) + { + var lastIndex = fullCode.LastIndexOf("|", System.StringComparison.Ordinal); + if (lastIndex < 0) return fullCode; + if (lastIndex + 1 == fullCode.Length) return fullCode; + return fullCode.Substring(lastIndex + 1); + } + } +} diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/WaterML10FamilyParser.cs b/Source/Core/HydroDesktop.WebServices/WaterML/WaterML10FamilyParser.cs new file mode 100644 index 00000000..9f8c7fd5 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/WaterML10FamilyParser.cs @@ -0,0 +1,760 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Xml; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.WebServices.WaterML +{ + /// + /// Base class for WaterML1.0 family parsers + /// + public abstract class WaterML10FamilyParser : IWaterMLParser + { + #region Fields + + private static readonly XmlReaderSettings _readerSettings = new XmlReaderSettings { IgnoreWhitespace = true, DtdProcessing = DtdProcessing.Parse}; + + #endregion + + #region Implementation of IWaterOneFlowParser + + public IList ParseGetSites(string xmlFile) + { + using (var fileStream = new FileStream(xmlFile, FileMode.Open)) + { + return ParseGetSites(fileStream); + } + } + + public IList ParseGetSites(Stream stream) + { + var txtReader = new StreamReader(stream); + using (var reader = XmlReader.Create(txtReader, _readerSettings)) + { + return ReadSites(reader); + } + } + + public IList ParseGetSiteInfo(string xmlFile) + { + using (var fileStream = new FileStream(xmlFile, FileMode.Open)) + { + return ParseGetSiteInfo(fileStream); + } + } + + public IList ParseGetSiteInfo(Stream stream) + { + var txtReader = new StreamReader(stream); + using (var reader = XmlReader.Create(txtReader, _readerSettings)) + { + return ReadSeriesMetadata(reader); + } + } + + public IList ParseGetValues(string xmlFile) + { + using (var fileStream = new FileStream(xmlFile, FileMode.Open)) + { + return ParseGetValues(fileStream); + } + } + + public IList ParseGetValues(Stream stream) + { + var txtReader = new StreamReader(stream); + using (var reader = XmlReader.Create(txtReader, _readerSettings)) + { + return ReadValues(reader); + } + } + + #endregion + + #region Protected methods + + protected virtual IList ReadSites(XmlReader reader) + { + var siteList = new List(); + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + { + var readerName = reader.Name.ToLower(); + + if (readerName == "site") + { + //Read the site information + var site = ReadSite(reader); + if (site != null) + { + siteList.Add(site); + } + } + } + } + return siteList; + } + + protected virtual IList ReadSeriesMetadata(XmlReader reader) + { + IList seriesList = new List(); + Site site = null; + + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + { + var readerName = reader.Name.ToLower(); + + if (readerName == "siteinfo") + { + //Read the site information + site = ReadSite(reader); + } + else if (site != null && readerName == "series") + { + var newSeries = ReadSeriesFromSiteInfo(reader, site); + seriesList.Add(newSeries); + } + } + } + + return seriesList; + } + + protected virtual SeriesMetadata ReadSeriesFromSiteInfo(XmlReader r, Site site) + { + var series = new SeriesMetadata {Site = site}; + + while (r.Read()) + { + if (r.NodeType == XmlNodeType.Element) + { + string nodeName = r.Name.ToLower(); + if (nodeName == "variable") + { + series.Variable = ReadVariable(r); + } + else if (nodeName == "valuecount") + { + r.Read(); + series.ValueCount = Convert.ToInt32(r.Value); + } + else if (nodeName == "begindatetime") + { + r.Read(); + series.BeginDateTime = Convert.ToDateTime(r.Value, CultureInfo.InvariantCulture); + series.BeginDateTimeUTC = series.BeginDateTime; + } + else if (nodeName == "enddatetime") + { + r.Read(); + series.EndDateTime = Convert.ToDateTime(r.Value, CultureInfo.InvariantCulture); + series.EndDateTimeUTC = series.EndDateTime; + } + else if (nodeName == "begindatetimeutc") + { + r.Read(); + series.BeginDateTimeUTC = Convert.ToDateTime(r.Value, CultureInfo.InvariantCulture); + } + else if (nodeName == "enddatetimeutc") + { + r.Read(); + series.EndDateTimeUTC = Convert.ToDateTime(r.Value, CultureInfo.InvariantCulture); + } + else if (nodeName == "method") + { + series.Method = ReadMethod(r); + } + else if (nodeName == "source") + { + series.Source = ReadSource(r); + } + else if (nodeName == "qualitycontrollevel") + { + series.QualityControlLevel = ReadQualityControlLevel(r); + } + } + else + { + if (r.NodeType == XmlNodeType.EndElement && r.Name == "series") + { + return series; + } + } + } + return series; + } + + private IList ReadValues(XmlReader reader) + { + Site site = null; + Variable varInfo = null; + IList seriesList = null; + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + { + string readerName = reader.Name.ToLower(); + + if (readerName == "queryinfo") + { + //Read the 'Query Info' + //var qry = ReadQueryInfo(reader); + //xmlFileInfo.QueryInfo = qry; + } + else if (readerName == "source" || readerName == "sourceinfo") + { + //Read the site information + site = ReadSite(reader); + } + else if (readerName == "variable") + { + //Read the variable information + varInfo = ReadVariable(reader); + } + else if (readerName == "values") + { + //Read the time series and data values information + seriesList = ReadDataValues(reader); + foreach (var series in seriesList) + { + if (varInfo != null) + { + series.Variable = varInfo; + } + if (site != null) + { + series.Site = site; + } + + //ensure that properties are re-calculated + series.UpdateSeriesInfoFromDataValues(); + + //set the checked and creation date time + series.CreationDateTime = DateTime.Now; + series.LastCheckedDateTime = DateTime.Now; + series.UpdateDateTime = series.LastCheckedDateTime; + } + } + } + } + + return seriesList ?? (new List(0)); + } + + protected virtual Site ReadSite(XmlReader r) + { + var site = new Site(); + while (r.Read()) + { + var nodeName = r.Name.ToLower(); + + if (r.NodeType == XmlNodeType.Element) + { + if (nodeName == "sitename") + { + r.Read(); + site.Name = r.Value; + } + else if (nodeName == "geolocation") + { + ReadSpatialReference(r, site); + } + else if (nodeName.IndexOf("sitecode", StringComparison.Ordinal) >= 0) + { + string networkPrefix = r.GetAttribute("network"); + r.Read(); + string siteCode = r.Value; + if (!String.IsNullOrEmpty(networkPrefix)) + { + siteCode = networkPrefix + ":" + siteCode; + } + site.Code = siteCode; + site.NetworkPrefix = networkPrefix; + } + else if (nodeName == "verticaldatum") + { + r.Read(); + site.VerticalDatum = r.Value; + } + else if (nodeName == "timezoneinfo") + { + site.DefaultTimeZone = ReadTimeZoneInfo(r); + } + else if (nodeName == "elevation_m") + { + r.Read(); + site.Elevation_m = Convert.ToDouble(r.Value, CultureInfo.InvariantCulture); + } + // WaterML 1.0 notes + else if (nodeName == "note") + { + var title = r.GetAttribute("title"); + if (!String.IsNullOrEmpty(title)) + { + title = title.ToLower(); + r.Read(); + var value = r.Value; + switch (title) + { + case "county": + site.County = value; + break; + case "state": + site.State = value; + break; + case "comments": + site.Comments = value; + break; + } + } + } + // WaterML 1.1 site properties + else if (nodeName == "siteproperty") + { + var title = r.GetAttribute("name"); + if (!String.IsNullOrEmpty(title)) + { + title = title.ToLower(); + r.Read(); + var value = r.Value; + switch (title) + { + case "county": + site.County = value; + break; + case "state": + site.State = value; + break; + case "comments": + site.Comments = value; + break; + case "sitetype": + site.SiteType = value; + break; + case "country": + site.Country = value; + break; + case "posaccuracy_m": + site.PosAccuracy_m = Convert.ToDouble(value, CultureInfo.InvariantCulture); + break; + } + } + } + } + else if (r.NodeType == XmlNodeType.EndElement && + (nodeName.StartsWith("source") || nodeName.StartsWith("siteinfo"))) + { + //ensure that spatial reference is set + if (site.SpatialReference == null) + { + site.SpatialReference = new SpatialReference {SRSID = 0, SRSName = "unknown"}; + } + + return site; + } + } + return null; + } + + protected virtual void ReadSpatialReference(XmlReader r, Site site) + { + while (r.Read()) + { + //lat long datum (srs) + if (r.NodeType == XmlNodeType.Element && r.Name == "geogLocation") + { + if (r.HasAttributes) + { + site.SpatialReference = new SpatialReference(); + string srsName = r.GetAttribute("srs"); + if (String.IsNullOrEmpty(srsName)) + { + srsName = "unknown"; + } + site.SpatialReference.SRSName = srsName; + } + } + + //latitude + if (r.NodeType == XmlNodeType.Element && r.Name == "latitude") + { + r.Read(); + site.Latitude = r.ReadContentAsDouble(); + } + + //longitude + if (r.NodeType == XmlNodeType.Element && r.Name == "longitude") + { + r.Read(); + site.Longitude = r.ReadContentAsDouble(); + } + + //local projection + if (r.NodeType == XmlNodeType.Element && r.Name == "localSiteXY" && r.HasAttributes) + { + site.LocalProjection = new SpatialReference(); + site.LocalProjection.SRSName = r.GetAttribute("projectionInformation"); + } + + if (r.NodeType == XmlNodeType.Element && r.Name == "X") + { + r.Read(); + site.LocalX = r.ReadContentAsDouble(); + } + + if (r.NodeType == XmlNodeType.Element && r.Name == "Y") + { + r.Read(); + site.LocalY = r.ReadContentAsDouble(); + } + if (r.NodeType == XmlNodeType.EndElement && r.Name == "geoLocation") + { + return; + } + } + } + + protected TimeZoneInfo ReadTimeZoneInfo(XmlReader r) + { + var defaultTz = TimeZoneInfo.Utc; + while (r.Read()) + { + var nodeName = r.Name.ToLower(); + if (r.NodeType == XmlNodeType.Element) + { + if (nodeName == "defaulttimezone") + { + var zoneAbbrev = r.GetAttribute("zoneabbreviation"); + var zoneOffset = r.GetAttribute("zoneoffset"); + + if (!string.IsNullOrEmpty(zoneAbbrev) && !string.IsNullOrEmpty(zoneOffset)) + { + int offsetHours = Convert.ToInt32(zoneOffset.Substring(0, zoneOffset.IndexOf(":", StringComparison.Ordinal))); + int offsetMinutes = Convert.ToInt32(zoneOffset.Substring(zoneOffset.IndexOf(":", StringComparison.Ordinal) + 1)); + var offsetTimeSpan = new TimeSpan(offsetHours, offsetMinutes, 0); + defaultTz = TimeZoneInfo.CreateCustomTimeZone(zoneAbbrev, offsetTimeSpan, zoneAbbrev, zoneAbbrev); + return defaultTz; + } + } + } + else if (r.NodeType == XmlNodeType.EndElement && nodeName == "timezoneinfo") + { + return defaultTz; + } + } + return defaultTz; + } + + protected virtual QueryInfo ReadQueryInfo(XmlReader reader) + { + var query = new QueryInfo(); + while (reader.Read()) + { + var nodeName = reader.Name.ToLower(); + + if (reader.NodeType == XmlNodeType.Element) + { + switch (nodeName) + { + case "locationparam": + reader.Read(); + query.LocationParameter = reader.Value; + break; + case "variableparam": + reader.Read(); + query.VariableParameter = reader.ReadContentAsString(); + break; + case "begindatetime": + reader.Read(); + query.BeginDateParameter = Convert.ToDateTime(reader.Value, CultureInfo.InvariantCulture); + break; + case "enddatetime": + reader.Read(); + query.EndDateParameter = Convert.ToDateTime(reader.Value, CultureInfo.InvariantCulture); + break; + } + } + else if (reader.NodeType == XmlNodeType.EndElement && nodeName == "queryinfo") + { + return query; + } + } + return null; + } + + protected virtual Method ReadMethod(XmlReader reader) + { + var method = Method.Unknown; + var methodID = reader.GetAttribute("methodID"); + if (!String.IsNullOrEmpty(methodID)) + { + method.Code = Convert.ToInt32(methodID); + } + + if (reader.IsEmptyElement) + { + return method; + } + + while (reader.Read()) + { + var nodeName = reader.Name.ToLower(); + if (reader.NodeType == XmlNodeType.Element) + { + switch (nodeName) + { + case "methodcode": + // WaterML 1.1: methodCode + reader.Read(); + method.Code = Convert.ToInt32(reader.Value); + break; + case "methoddescription": + reader.Read(); + method.Description = reader.Value; + break; + case "methodlink": + reader.Read(); + method.Link = reader.Value; + break; + } + } + else if (reader.NodeType == XmlNodeType.EndElement && nodeName == "method") + { + break; + } + } + return method; + } + + protected virtual QualityControlLevel ReadQualityControlLevel(XmlReader reader) + { + var qc = QualityControlLevel.Unknown; + var qcID = reader.GetAttribute("qualityControlLevelID"); + if (!String.IsNullOrEmpty(qcID)) + { + qc.OriginId = Convert.ToInt32(qcID); + } + + // WaterML 1.0: QualityControlLevelType contains only one attribute without sub-elements + if (reader.IsEmptyElement) + { + return qc; + } + + // WaterML 1.1: QualityControlLevelType contains additional elements + while (reader.Read()) + { + var nodeName = reader.Name.ToLower(); + if (reader.NodeType == XmlNodeType.Element) + { + switch (nodeName) + { + case "qualitycontrollevelcode": + reader.Read(); + qc.Code = reader.Value; + break; + case "definition": + reader.Read(); + qc.Definition = reader.Value.Trim(); + break; + case "explanation": + reader.Read(); + qc.Explanation = reader.Value.Trim(); + break; + } + } + else if (reader.NodeType == XmlNodeType.EndElement && nodeName == "qualitycontrollevel") + { + break; + } + } + return qc; + } + + protected virtual Source ReadSource(XmlReader reader) + { + var source = Source.Unknown; + var sourceID = reader.GetAttribute("sourceID"); + if (!String.IsNullOrEmpty(sourceID)) + { + source.OriginId = Convert.ToInt32(sourceID); + } + + if (reader.IsEmptyElement) + { + return source; + } + + while (reader.Read()) + { + var nodeName = reader.Name.ToLower(); + if (reader.NodeType == XmlNodeType.Element) + { + switch (nodeName) + { + case "organization": // WML 1.0/1.1 + reader.Read(); + source.Organization = reader.Value; + break; + case "sourcedescription": // WML 1.0/1.1 + reader.Read(); + source.Description = reader.Value; + break; + case "metadata": // WML 1.0/1.1 + source.ISOMetadata = ReadISOMetadata(reader); + break; + case "contactinformation": // WML 1.0/1.1. Note: WML 1.1 supports many "ContactInformation" elements + var contact = ReadContactInformtaion(reader); + + source.ContactName = contact.ContactName; + source.Email = contact.Email; + source.Phone = contact.Phone; + + // Convert WaterML address into HD address + if (!String.IsNullOrEmpty(contact.Address)) + { + //Complete address: {Address},{City},{State},{ZipCode} + var split = contact.Address.Split(new [] {','}, + StringSplitOptions.RemoveEmptyEntries); + if (split.Length > 0) + { + source.Address = split[0].Trim(); + } + if (split.Length > 1) + { + source.City = split[1].Trim(); + } + if (split.Length > 2) + { + source.State = split[2].Trim(); + } + if (split.Length > 3) + { + int zipCode; + if (Int32.TryParse(split[3].Trim(), out zipCode)) + source.ZipCode = zipCode; + } + } + break; + case "sourcelink": // WML 1.0/1.1. Note: WML 1.1 supports many "SourceLinks" elements + reader.Read(); + source.Link = reader.Value; + break; + case "sourcecode": // WML 1.1 + reader.Read(); + break; + case "citation": // WML 1.1 + reader.Read(); + source.Citation = reader.Value; + break; + } + } + else if (reader.NodeType == XmlNodeType.EndElement && nodeName == "source") + { + break; + } + } + + return source; + } + + protected virtual ContactInformationType ReadContactInformtaion(XmlReader reader) + { + var contact = new ContactInformationType(); + + while (reader.Read()) + { + var nodeName = reader.Name.ToLower(); + if (reader.NodeType == XmlNodeType.Element) + { + switch (nodeName) + { + case "contactname": + reader.Read(); + contact.ContactName = reader.Value; + break; + case "typeofcontact": + reader.Read(); + contact.TypeOfContact = reader.Value; + break; + case "phone": + reader.Read(); + contact.Phone = reader.Value; + break; + case "email": + reader.Read(); + contact.Email = reader.Value; + break; + case "address": + reader.Read(); + contact.Address = reader.Value; + break; + } + } + else if (reader.NodeType == XmlNodeType.EndElement && nodeName == "contactinformation") + { + break; + } + } + + return contact; + } + + protected virtual ISOMetadata ReadISOMetadata(XmlReader reader) + { + var result = ISOMetadata.Unknown; + + if (reader.IsEmptyElement) + { + return result; + } + + while (reader.Read()) + { + var nodeName = reader.Name.ToLower(); + if (reader.NodeType == XmlNodeType.Element) + { + switch (nodeName) + { + case "topiccategory": // WML 1.0/1.1 + reader.Read(); + result.TopicCategory = reader.Value; + break; + case "title": // WML 1.0/1.1 + reader.Read(); + result.Title = reader.Value; + break; + case "abstract": // WML 1.0/1.1 + reader.Read(); + result.Abstract = reader.Value; + break; + case "profileversion": // WML 1.0/1.1 + reader.Read(); + result.ProfileVersion = reader.Value; + break; + case "metadatalink": // WML 1.0/1.1 + reader.Read(); + result.MetadataLink = reader.Value; + break; + } + } + else if (reader.NodeType == XmlNodeType.EndElement && nodeName == "metadata") + { + break; + } + } + + return result; + } + + #endregion + + protected abstract Variable ReadVariable(XmlReader r); + protected abstract IList ReadDataValues(XmlReader r); + } +} diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/WaterML10Parser.cs b/Source/Core/HydroDesktop.WebServices/WaterML/WaterML10Parser.cs new file mode 100644 index 00000000..fc96b325 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/WaterML10Parser.cs @@ -0,0 +1,492 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Xml; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.WebServices.WaterOneFlow; + +namespace HydroDesktop.WebServices.WaterML +{ + /// + /// Parses a WaterML 1.0 files to HydroDesktop domain objects + /// + public class WaterML10Parser : WaterML10FamilyParser + { + /// + /// Reads information about variable + /// + protected override Variable ReadVariable(XmlReader r) + { + Variable varInfo = new Variable(); + Unit timeUnit = Unit.Unknown; + Unit valueUnit = Unit.Unknown; + varInfo.Speciation = "Not Applicable"; + varInfo.DataType = "Unknown"; + varInfo.GeneralCategory = "Unknown"; + varInfo.SampleMedium = "Unknown"; + varInfo.ValueType = "Unknown"; + + while (r.Read()) + { + string nodeName = r.Name.ToLower(); + + if (r.NodeType == XmlNodeType.Element) + { + if (nodeName.IndexOf("variablecode") >= 0) + { + string prefix = r.GetAttribute("vocabulary"); + if (string.IsNullOrEmpty(prefix)) + { + prefix = r.GetAttribute("network"); + } + r.Read(); + string variableCode = r.Value; + if (!String.IsNullOrEmpty(prefix)) + { + variableCode = prefix + ":" + variableCode; + } + varInfo.Code = variableCode; + } + else if (nodeName == "variablename") + { + r.Read(); + varInfo.Name = r.Value; + } + else if (nodeName.IndexOf("valuetype") >= 0) + { + r.Read(); + varInfo.ValueType = r.Value; + } + else if (nodeName.IndexOf("datatype") >= 0) + { + r.Read(); + varInfo.DataType = r.Value; + } + else if (nodeName == "generalcategory") + { + r.Read(); + varInfo.GeneralCategory = r.Value; + } + else if (nodeName == "samplemedium") + { + r.Read(); + varInfo.SampleMedium = r.Value; + } + else if (nodeName == "speciation") + { + r.Read(); + varInfo.Speciation = r.Value; + } + else if (nodeName == "units") + { + string abrev = r.GetAttribute("unitsAbbreviation"); + if (String.IsNullOrEmpty(abrev)) + { + abrev = "unknown"; + } + + string unitType = r.GetAttribute("unitsType"); + if (String.IsNullOrEmpty(unitType)) + { + unitType = "unknown"; + } + r.Read(); + string unitName = r.Value; + if (String.IsNullOrEmpty(unitName)) + { + unitName = "unknown"; + } + + valueUnit.Abbreviation = abrev; + valueUnit.UnitsType = unitType; + valueUnit.Name = unitName; + } + else if (nodeName == "nodatavalue") + { + r.Read(); + varInfo.NoDataValue = Convert.ToDouble(r.Value, CultureInfo.InvariantCulture); + } + else if (nodeName == "timesupport") + { + string isRegular = r.GetAttribute("isRegular"); + if (!String.IsNullOrEmpty(isRegular)) + { + varInfo.IsRegular = Convert.ToBoolean(isRegular); + } + } + else if (nodeName == "unitname") + { + r.Read(); + timeUnit.Name = r.Value; + } + else if (nodeName == "unitdescription") + { + r.Read(); + timeUnit.Name = r.Value; + } + else if (nodeName == "unittype") + { + r.Read(); + timeUnit.UnitsType = r.Value; + } + else if (nodeName == "unitabbreviation") + { + r.Read(); + timeUnit.Abbreviation = r.Value; + } + else if (nodeName == "timeinterval") + { + r.Read(); + varInfo.TimeSupport = Convert.ToSingle(r.Value); + } + } + else if (r.NodeType == XmlNodeType.EndElement && nodeName == "variable") + { + varInfo.TimeUnit = timeUnit; + varInfo.VariableUnit = valueUnit; + return varInfo; + } + } + return varInfo; + } + + /// + /// Reads the DataValues section + /// + protected override IList ReadDataValues(XmlReader r) + { + int valueCount; + var lst = new List(Int32.TryParse(r.GetAttribute("count"), out valueCount) ? valueCount : 4); + + var qualifiers = new Dictionary(); + var methods = new Dictionary(); + var sources = new Dictionary(); + var qualityControlLevels = new Dictionary(); + var samples = new Dictionary(); + var offsets = new Dictionary(); + var seriesDictionary = new Dictionary(); + + while (r.Read()) + { + if (r.NodeType == XmlNodeType.Element) + { + if (r.Name == "value") + { + //create a new empty data value and add it to the list + var wrapper = new DataValueWrapper(); + var val = new DataValue(); + wrapper.DataValue = val; + lst.Add(wrapper); + + if (r.HasAttributes) + { + var censorCode = r.GetAttribute("censorCode"); + if (!string.IsNullOrEmpty(censorCode)) + { + val.CensorCode = censorCode; + } + //fix by Jiri - sometimes the dateTime attribute is uppercase + var localDateTime = r.GetAttribute("dateTime"); + if (string.IsNullOrEmpty(localDateTime)) + { + localDateTime = r.GetAttribute("DateTime"); + } + val.LocalDateTime = Convert.ToDateTime(localDateTime, CultureInfo.InvariantCulture); + val.DateTimeUTC = val.LocalDateTime; + val.UTCOffset = 0.0; + + //method + var methodID = r.GetAttribute("methodID"); + if (String.IsNullOrEmpty(methodID)) + { + methodID = "0"; //when a method ID is unspecified + } + if (!methods.ContainsKey(methodID)) + { + var newMethod = Method.Unknown; + methods.Add(methodID, newMethod); + } + wrapper.MethodID = methodID; + + //quality control level + string qualityCode = r.GetAttribute("qualityControlLevel"); + if (String.IsNullOrEmpty(qualityCode)) + { + qualityCode = "unknown"; //when the quality control level is unspecified + } + if (!qualityControlLevels.ContainsKey(qualityCode)) + { + var qualControl = QualityControlLevel.Unknown; + qualControl.Code = qualityCode; + qualControl.Definition = qualityCode; + qualControl.Explanation = qualityCode; + qualityControlLevels.Add(qualityCode, qualControl); + } + + //source + var sourceID = r.GetAttribute("sourceID"); + if (String.IsNullOrEmpty(sourceID)) + { + sourceID = "0"; //when a source ID is unspecified + } + if (!sources.ContainsKey(sourceID)) + { + sources.Add(sourceID, Source.Unknown); + } + wrapper.SourceID = sourceID; + wrapper.SeriesCode = SeriesCodeHelper.CreateSeriesCode(methodID, qualityCode, sourceID); //----method-source-qualityControl combination---- + + //sample + var sampleID = r.GetAttribute("sampleID"); + if (!String.IsNullOrEmpty(sampleID)) + { + if (!samples.ContainsKey(sampleID)) + { + samples.Add(sampleID, Sample.Unknown); + } + } + wrapper.SampleID = sampleID; + + //qualifiers + string qualifierCodes = r.GetAttribute("qualifiers"); + if (!String.IsNullOrEmpty(qualifierCodes)) + { + if (!qualifiers.ContainsKey(qualifierCodes)) + { + var newQualifier = new Qualifier {Code = qualifierCodes}; + qualifiers.Add(qualifierCodes, newQualifier); + val.Qualifier = newQualifier; + } + else + { + val.Qualifier = qualifiers[qualifierCodes]; + } + } + + //vertical offset + var offsetID = r.GetAttribute("offsetTypeID"); + if (!String.IsNullOrEmpty(offsetID)) + { + if (!offsets.ContainsKey(offsetID)) + { + offsets.Add(offsetID, new OffsetType()); + } + var offsetValue = r.GetAttribute("offsetValue"); + if (!String.IsNullOrEmpty(offsetValue)) + { + val.OffsetValue = Convert.ToDouble(offsetValue, CultureInfo.InvariantCulture); + } + } + wrapper.OffsetID = offsetID; + + //data value + val.Value = Convert.ToDouble(r.ReadString(), CultureInfo.InvariantCulture); + } + + + } + else if (r.Name == "method") + { + var method = ReadMethod(r); + var methodCodeKey = method.Code.ToString(CultureInfo.InvariantCulture); + if (methods.ContainsKey(methodCodeKey)) + { + methods[methodCodeKey] = method; + } + } + else if (r.Name == "source") + { + var source = ReadSource(r); + var sourceCodeKey = source.OriginId.ToString(CultureInfo.InvariantCulture); + if (sources.ContainsKey(sourceCodeKey)) + { + sources[sourceCodeKey] = source; + } + } + else if (r.Name == "qualityControlLevel") + { + //quality control level seems to be included with each value + } + else if (r.Name == "qualifier") + { + ReadQualifier(r, qualifiers); + } + else if (r.Name == "offset") + { + ReadOffset(r, offsets); + } + } + } + + //to assign special properties of each data value + foreach (var wrapper in lst) + { + var val = wrapper.DataValue; + + //which series does the data value belong to? + var seriesCode = wrapper.SeriesCode; + if (!seriesDictionary.ContainsKey(seriesCode)) + { + var newSeries = new Series(); + seriesDictionary.Add(seriesCode, newSeries); + //assign method, source and qual.control level + //assign method, source and qual.control level + try + { + newSeries.Method = methods[SeriesCodeHelper.GetMethodCode(seriesCode)]; + //fix by Jiri: fixes the case when sourceID is unspecified sources + //has more than one source entry + string sourceCode = SeriesCodeHelper.GetSourceCode(seriesCode); + if (sourceCode == "0" && sources.Count > 0) + { + foreach (string sc in sources.Keys) + { + if (sc != "0") + { + sourceCode = sc; + break; + } + } + } + newSeries.Source = sources[sourceCode]; + newSeries.QualityControlLevel = qualityControlLevels[SeriesCodeHelper.GetQualityCode(seriesCode)]; + } + catch { } + } + + //add the data value to the correct series + var series = seriesDictionary[seriesCode]; + series.DataValueList.Add(val); + val.Series = series; + + Sample sample; + if (!string.IsNullOrEmpty(wrapper.SampleID) && + samples.TryGetValue(wrapper.SampleID, out sample)) + { + val.Sample = sample; + } + OffsetType offset; + if (!string.IsNullOrEmpty(wrapper.OffsetID) && + offsets.TryGetValue(wrapper.OffsetID, out offset)) + { + val.OffsetType = offset; + } + if (series.Method == null) + { + series.Method = methods[wrapper.MethodID]; + } + if (series.Source == null) + { + series.Source = sources[wrapper.SourceID]; + } + } + + //to check the qualifiers + CheckQualifiers(qualifiers); + return seriesDictionary.Values.ToList(); + } + + /// + /// Read the vertical offset type + /// + private static void ReadOffset(XmlReader r, IDictionary offsets) + { + string offsetID = r.GetAttribute("offsetTypeID"); + if (String.IsNullOrEmpty(offsetID)) return; + if (!offsets.ContainsKey(offsetID)) return; + + OffsetType offset = offsets[offsetID]; + + while (r.Read()) + { + if (r.NodeType == XmlNodeType.Element) + { + if (r.Name == "offsetDescription") + { + r.Read(); + offset.Description = r.Value; + } + else if (r.Name == "units") + { + Unit units = new Unit(); + + string abrev = r.GetAttribute("unitsAbbreviation"); + if (String.IsNullOrEmpty(abrev)) + { + abrev = "unknown"; + } + units.Abbreviation = abrev; + + string unitsType = r.GetAttribute("unitsType"); + if (string.IsNullOrEmpty(unitsType)) + { + unitsType = "unknown"; + } + units.UnitsType = unitsType; + + r.Read(); + units.Name = r.Value; + offset.Unit = units; + } + } + else if (r.NodeType == XmlNodeType.EndElement && r.Name == "offset") + { + return; + } + } + } + + /// + /// Reads information about a qualifier + /// + private static void ReadQualifier(XmlReader r, IDictionary qualifiers) + { + string qualifierCode = r.GetAttribute("qualifierCode"); + if (String.IsNullOrEmpty(qualifierCode)) return; + if (!qualifiers.ContainsKey(qualifierCode)) + { + var newQualifier = new Qualifier {Code = qualifierCode}; + qualifiers.Add(qualifierCode, newQualifier); + } + + var qualifier = qualifiers[qualifierCode]; + r.Read(); + qualifier.Description = r.Value; + } + + + /// + /// Check compound qualifiers + /// + /// + private void CheckQualifiers(Dictionary qualifiers) + { + foreach (Qualifier qual in qualifiers.Values) + { + if (qual.IsCompositeQualifier) //it's a 'compound qualifier' + { + string[] codes = qual.Code.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); + + string description = ""; + + foreach (string code in codes) + { + Qualifier matchingQual = qualifiers[code]; + description += matchingQual.Description + ", "; + } + description = description.Remove(description.LastIndexOf(",")); + qual.Description = description; + } + } + + foreach (Qualifier qual in qualifiers.Values) + { + if (String.IsNullOrEmpty(qual.Description)) + { + qual.Description = "unknown"; + } + } + } + } +} diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/WaterML11Parser.cs b/Source/Core/HydroDesktop.WebServices/WaterML/WaterML11Parser.cs new file mode 100644 index 00000000..c13bedca --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/WaterML11Parser.cs @@ -0,0 +1,603 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Xml; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.WebServices.WaterOneFlow; + +namespace HydroDesktop.WebServices.WaterML +{ + /// + /// Parses a WaterML 1.1 files to HydroDesktop domain objects + /// + public class WaterML11Parser : WaterML10FamilyParser + { + /// + /// Reads information about time unit or variable unit + /// + /// + /// + private Unit ReadUnit(XmlReader r) + { + Unit unitInfo = Unit.Unknown; + while (r.Read()) + { + if (r.NodeType == XmlNodeType.Element) + { + string nodeName = r.Name.ToLower(); + if (nodeName == "unitname") + { + r.Read(); + unitInfo.Name = r.Value; + } + else if (nodeName == "unittype") + { + r.Read(); + unitInfo.UnitsType = r.Value; + } + else if (nodeName == "unitabbreviation") + { + r.Read(); + unitInfo.Abbreviation = r.Value; + } + } + else if (r.NodeType == XmlNodeType.EndElement && r.Name == "unit") + { + return unitInfo; + } + } + return unitInfo; + } + + /// + /// Reads information about variable + /// + protected override Variable ReadVariable(XmlReader r) + { + Variable varInfo = new Variable(); + //Unit timeUnit = Unit.Unknown; + //Unit valueUnit = Unit.Unknown; + varInfo.Speciation = "Not Applicable"; + varInfo.DataType = "Unknown"; + varInfo.GeneralCategory = "Unknown"; + varInfo.SampleMedium = "Unknown"; + varInfo.ValueType = "Unknown"; + + while (r.Read()) + { + string nodeName = r.Name.ToLower(); + + if (r.NodeType == XmlNodeType.Element) + { + if (nodeName.IndexOf("variablecode") >= 0) + { + string prefix = r.GetAttribute("vocabulary"); + if (string.IsNullOrEmpty(prefix)) + { + prefix = r.GetAttribute("network"); + } + r.Read(); + string variableCode = r.Value; + if (!String.IsNullOrEmpty(prefix)) + { + variableCode = prefix + ":" + variableCode; + varInfo.VocabularyPrefix = prefix; + } + varInfo.Code = variableCode; + } + else if (nodeName == "variablename") + { + r.Read(); + varInfo.Name = r.Value; + } + else if (nodeName.IndexOf("valuetype") >= 0) + { + r.Read(); + varInfo.ValueType = r.Value; + } + else if (nodeName.IndexOf("datatype") >= 0) + { + r.Read(); + varInfo.DataType = r.Value; + } + else if (nodeName == "generalcategory") + { + r.Read(); + varInfo.GeneralCategory = r.Value; + } + else if (nodeName == "samplemedium") + { + r.Read(); + varInfo.SampleMedium = r.Value; + } + else if (nodeName == "speciation") + { + r.Read(); + varInfo.Speciation = r.Value; + } + else if (nodeName == "unit") + { + Unit u = ReadUnit(r); + if (u.UnitsType.ToLower() == "time") + { + varInfo.TimeUnit = u; + } + else + { + varInfo.VariableUnit = u; + } + } + else if (nodeName == "units") + { + string unitAbbreviation = r.GetAttribute("unitsAbbreviation"); + if (!String.IsNullOrEmpty(unitAbbreviation)) + { + Unit u = Unit.Unknown; + u.Abbreviation = unitAbbreviation; + u.Name = unitAbbreviation; + varInfo.VariableUnit = u; + varInfo.TimeUnit = Unit.UnknownTimeUnit; + } + else + { + varInfo.VariableUnit = Unit.Unknown; + varInfo.TimeUnit = Unit.UnknownTimeUnit; + } + } + + else if (nodeName == "nodatavalue") + { + r.Read(); + varInfo.NoDataValue = Convert.ToDouble(r.Value, CultureInfo.InvariantCulture); + } + else if (nodeName == "timescale") //some versions of WaterML 1.1 use 'timescale' + { + string isRegular = r.GetAttribute("isRegular"); + if (!String.IsNullOrEmpty(isRegular)) + { + varInfo.IsRegular = Convert.ToBoolean(isRegular); + } + } + else if (nodeName == "timesupport") //other versions use 'timesupport' + { + r.Read(); + try + { + varInfo.TimeSupport = Convert.ToSingle(r.Value); + } + catch + { } + } + else if (nodeName == "timeinterval") + { + r.Read(); + varInfo.TimeSupport = Convert.ToSingle(r.Value); + } + } + else if (r.NodeType == XmlNodeType.EndElement && nodeName == "variable") + { + return varInfo; + } + } + return varInfo; + } + + /// + /// Reads the DataValues section + /// + protected override IList ReadDataValues(XmlReader r) + { + int valueCount; + var lst = new List(Int32.TryParse(r.GetAttribute("count"), out valueCount) ? valueCount : 4); + + var qualifiers = new Dictionary(); + var methods = new Dictionary(); + var sources = new Dictionary(); + var qualityControlLevels = new Dictionary(); + var samples = new Dictionary(); + var labMethods = new Dictionary(); + var offsets = new Dictionary(); + var seriesDictionary = new Dictionary(); + + while (r.Read()) + { + if (r.NodeType == XmlNodeType.Element) + { + if (r.Name == "value") + { + //create a new empty data value and add it to the list + var wrapper = new DataValueWrapper(); + var val = new DataValue(); + wrapper.DataValue = val; + lst.Add(wrapper); + + if (r.HasAttributes) + { + var censorCode = r.GetAttribute("censorCode"); + if (!string.IsNullOrEmpty(censorCode)) + { + val.CensorCode = censorCode; + } + val.LocalDateTime = Convert.ToDateTime(r.GetAttribute("dateTime"), CultureInfo.InvariantCulture); + + //utcOffset + var utcOffset = r.GetAttribute("timeOffset"); + val.UTCOffset = !String.IsNullOrEmpty(utcOffset) ? ParserHelper.ConvertUtcOffset(utcOffset) : 0.0; + + //dateTimeUtc + var dateTimeUTC = r.GetAttribute("dateTimeUTC"); + val.DateTimeUTC = !String.IsNullOrEmpty(dateTimeUTC) ? Convert.ToDateTime(dateTimeUTC, CultureInfo.InvariantCulture) : val.LocalDateTime; + + //method + var methodID = r.GetAttribute("methodCode"); + if (String.IsNullOrEmpty(methodID)) + { + //try methodID instead of methodCode + methodID = r.GetAttribute("methodID"); + if (String.IsNullOrEmpty(methodID)) + { + methodID = "unknown"; //when a method is unspecified + } + } + if (!methods.ContainsKey(methodID)) + { + var newMethod = Method.Unknown; + methods.Add(methodID, newMethod); + } + wrapper.MethodID = methodID; + + //quality control level + var qualityCode = r.GetAttribute("qualityControlLevelCode"); + if (String.IsNullOrEmpty(qualityCode)) + { + qualityCode = r.GetAttribute("qualityControlLevelID"); + if (string.IsNullOrEmpty(qualityCode)) + { + qualityCode = "unknown"; //when the quality control level is unspecified + } + } + if (!qualityControlLevels.ContainsKey(qualityCode)) + { + var qualControl = QualityControlLevel.Unknown; + qualControl.Code = qualityCode; + qualControl.Definition = qualityCode; + qualControl.Explanation = qualityCode; + qualityControlLevels.Add(qualityCode, qualControl); + } + wrapper.QualityID = qualityCode; + + //source + string sourceID = r.GetAttribute("sourceCode"); + if (string.IsNullOrEmpty(sourceID)) + { + sourceID = r.GetAttribute("sourceID"); + if (String.IsNullOrEmpty(sourceID)) + { + sourceID = "unknown"; //when a source is unspecified + } + } + if (!sources.ContainsKey(sourceID)) + { + sources.Add(sourceID, Source.Unknown); + } + wrapper.SourceID = sourceID; + wrapper.SeriesCode = SeriesCodeHelper.CreateSeriesCode(methodID, qualityCode, sourceID); //----method-source-qualityControl combination---- + + //sample + string sampleCode = r.GetAttribute("labSampleCode"); + if (!String.IsNullOrEmpty(sampleCode)) + { + if (!samples.ContainsKey(sampleCode)) + { + samples.Add(sampleCode, Sample.Unknown); + } + } + wrapper.SampleID = sampleCode; + + //qualifiers + string qualifierCodes = r.GetAttribute("qualifiers"); + if (!String.IsNullOrEmpty(qualifierCodes)) + { + if (!qualifiers.ContainsKey(qualifierCodes)) + { + var newQualifier = new Qualifier {Code = qualifierCodes}; + qualifiers.Add(qualifierCodes, newQualifier); + val.Qualifier = newQualifier; + } + else + { + val.Qualifier = qualifiers[qualifierCodes]; + } + } + + //vertical offset + string offsetCode = r.GetAttribute("offsetTypeCode"); + if (string.IsNullOrEmpty(offsetCode)) + { + offsetCode = r.GetAttribute("offsetTypeID"); + } + if (!String.IsNullOrEmpty(offsetCode)) + { + if (!offsets.ContainsKey(offsetCode)) + { + offsets.Add(offsetCode, new OffsetType()); + } + string offsetValue = r.GetAttribute("offsetValue"); + if (!String.IsNullOrEmpty(offsetValue)) + { + val.OffsetValue = Convert.ToDouble(offsetValue, CultureInfo.InvariantCulture); + } + } + wrapper.OffsetID = offsetCode; + } + + //data value + r.Read(); + val.Value = r.ReadContentAsDouble(); + + } + else if (r.Name == "method") + { + var method = ReadMethod(r); + var methodCodeKey = method.Code.ToString(CultureInfo.InvariantCulture); + if (methods.ContainsKey(methodCodeKey)) + { + methods[methodCodeKey] = method; + } + } + else if (r.Name == "source") + { + var source = ReadSource(r); + var sourceCodeKey = source.OriginId.ToString(CultureInfo.InvariantCulture); + if (sources.ContainsKey(sourceCodeKey)) + { + sources[sourceCodeKey] = source; + } + } + else if (r.Name == "qualityControlLevel") + { + var qcLevel = ReadQualityControlLevel(r); + var qcCodeKey = qcLevel.Code; + if (qualityControlLevels.ContainsKey(qcCodeKey)) + { + qualityControlLevels[qcCodeKey] = qcLevel; + } + } + else if (r.Name == "qualifier") + { + ReadQualifier(r, qualifiers); + } + else if (r.Name == "sample") + { + ReadSample(r, samples, labMethods); + } + else if (r.Name == "offset") + { + ReadOffset(r, offsets); + } + } + } + + //to assign special properties of each data value + foreach (var wrapper in lst) + { + var val = wrapper.DataValue; + + //which series does the data value belong to? + var seriesCode = wrapper.SeriesCode; + if (!seriesDictionary.ContainsKey(seriesCode)) + { + Series newSeries = new Series(); + seriesDictionary.Add(seriesCode, newSeries); + //assign method, source and qual.control level + try + { + newSeries.Method = methods[SeriesCodeHelper.GetMethodCode(seriesCode)]; + newSeries.Source = sources[SeriesCodeHelper.GetSourceCode(seriesCode)]; + newSeries.QualityControlLevel = qualityControlLevels[SeriesCodeHelper.GetQualityCode(seriesCode)]; + } + catch { } + } + + //add the data value to the correct series + var series = seriesDictionary[seriesCode]; + series.DataValueList.Add(val); + val.Series = series; + + Sample sample; + if (!string.IsNullOrEmpty(wrapper.SampleID) && + samples.TryGetValue(wrapper.SampleID, out sample)) + { + val.Sample = sample; + } + OffsetType offset; + if (!string.IsNullOrEmpty(wrapper.OffsetID) && + offsets.TryGetValue(wrapper.OffsetID, out offset)) + { + val.OffsetType = offset; + } + if (series.Method == null) + { + series.Method = methods[wrapper.MethodID]; + } + if (series.Source == null) + { + series.Source = sources[wrapper.SourceID]; + } + if (series.QualityControlLevel == null) + { + series.QualityControlLevel = qualityControlLevels[wrapper.QualityID]; + } + } + //to check the qualifiers + CheckQualifiers(qualifiers); + + return seriesDictionary.Values.ToList(); + } + + /// + /// Read the vertical offset type + /// + private static void ReadOffset(XmlReader r, IDictionary offsets) + { + string offsetID = r.GetAttribute("offsetTypeID"); + if (String.IsNullOrEmpty(offsetID)) return; + if (!offsets.ContainsKey(offsetID)) return; + + OffsetType offset = offsets[offsetID]; + offset.Unit = Unit.Unknown; + + while (r.Read()) + { + if (r.NodeType == XmlNodeType.Element) + { + if (r.Name == "offsetDescription") + { + r.Read(); + offset.Description = r.Value; + } + else if (r.Name == "unitName") + { + r.Read(); + offset.Unit.Name = r.Value; + } + else if (r.Name == "unitType") + { + r.Read(); + offset.Unit.UnitsType = r.Value; + } + else if (r.Name == "unitAbbreviation") + { + r.Read(); + offset.Unit.Abbreviation = r.Value; + } + } + else if (r.NodeType == XmlNodeType.EndElement && r.Name == "offset") + { + return; + } + } + } + + /// + /// Reads information about a sample + /// + private static void ReadSample(XmlReader r, IDictionary samples, Dictionary labMethods) + { + Sample sample = Sample.Unknown; + sample.LabMethod = LabMethod.Unknown; + + var newLabMethod = LabMethod.Unknown; + + string labSampleCode = String.Empty; + + while (r.Read()) + { + if (r.NodeType == XmlNodeType.Element) + { + string nodeName = r.Name.ToLower(); + if (nodeName == "labsamplecode") + { + r.Read(); + labSampleCode = r.Value; + sample.LabSampleCode = labSampleCode; + } + else if (nodeName == "sampletype") + { + r.Read(); + sample.SampleType = r.Value; + } + else if (nodeName == "labname") + { + r.Read(); + newLabMethod.LabName = r.Value; + } + else if (nodeName == "laborganization") + { + r.Read(); + newLabMethod.LabOrganization = r.Value; + } + else if (nodeName == "labmethodname") + { + r.Read(); + newLabMethod.LabMethodName = r.Value; + } + } + else if (r.NodeType == XmlNodeType.EndElement && r.Name.ToLower() == "sample") + { + + //assign the lab method + string labMethodKey = newLabMethod.LabName + "|" + newLabMethod.LabMethodName; + if (!labMethods.ContainsKey(labMethodKey)) + { + labMethods.Add(labMethodKey, newLabMethod); + sample.LabMethod = newLabMethod; + } + else + { + sample.LabMethod = null; + sample.LabMethod = labMethods[labMethodKey]; + } + + //check existing sample + if (samples.ContainsKey(labSampleCode)) + { + samples[labSampleCode] = null; + samples[labSampleCode] = sample; + } + return; + } + } + } + + /// + /// Reads information about a qualifier + /// + private static void ReadQualifier(XmlReader r, IDictionary qualifiers) + { + string qualifierCode = r.GetAttribute("qualifierCode"); + if (String.IsNullOrEmpty(qualifierCode)) return; + if (!qualifiers.ContainsKey(qualifierCode)) + { + var newQualifier = new Qualifier(); + newQualifier.Code = qualifierCode; + qualifiers.Add(qualifierCode, newQualifier); + } + + var qualifier = qualifiers[qualifierCode]; + r.Read(); + qualifier.Description = r.Value; + } + + /// + /// Check compound qualifiers + /// + /// + private void CheckQualifiers(Dictionary qualifiers) + { + foreach (Qualifier qual in qualifiers.Values) + { + if (qual.IsCompositeQualifier) //it's a 'compound qualifier' + { + string[] codes = qual.Code.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); + + var description = codes + .Select(code => qualifiers[code]) + .Aggregate("", (current, matchingQual) => current + (matchingQual.Description + ", ")); + + description = description.Remove(description.LastIndexOf(",", StringComparison.Ordinal)); + qual.Description = description; + } + } + + foreach (Qualifier qual in qualifiers.Values) + { + if (String.IsNullOrEmpty(qual.Description)) + { + qual.Description = "unknown"; + } + } + } + } +} diff --git a/Source/Core/HydroDesktop.WebServices/WaterML/WaterML20Parser.cs b/Source/Core/HydroDesktop.WebServices/WaterML/WaterML20Parser.cs new file mode 100644 index 00000000..a1d5caf4 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterML/WaterML20Parser.cs @@ -0,0 +1,209 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Xml; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.WebServices.WaterML +{ + /// + /// Parses a WaterML 2.0 files to HydroDesktop domain objects + /// + public class WaterML20Parser : IWaterMLParser + { + private static readonly XmlReaderSettings _readerSettings = new XmlReaderSettings { IgnoreWhitespace = true, DtdProcessing = DtdProcessing.Parse }; + + public IList ParseGetSites(Stream stream) + { + throw new NotImplementedException(); + } + + + public IList ParseGetSiteInfo(Stream stream) + { + throw new NotImplementedException(); + } + + /// + /// Parses a WaterML 2.0 timeseries XML file + /// + public IList ParseGetValues(string xmlFile) + { + using (var fileStream = new FileStream(xmlFile, FileMode.Open)) + { + return ParseGetValues(fileStream); + } + } + + public IList ParseGetValues(Stream stream) + { + var txtReader = new StreamReader(stream); + using (var reader = XmlReader.Create(txtReader, _readerSettings)) + { + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + { + var name = reader.Name.ToLower(); + if (name == "wml2:collection") + { + var subReader = reader.ReadSubtree(); + return ReadWMLTimeSeriesCollection(subReader).ToList(); + } + } + } + return Enumerable.Empty().ToList(); + } + } + + private IEnumerable ReadWMLTimeSeriesCollection(XmlReader reader) + { + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + { + var name = reader.Name.ToLower(); + if (name == "wml2:observationmember") + { + Series series = null; + + var subReader = reader.ReadSubtree(); + while (subReader.Read()) + { + if (subReader.NodeType == XmlNodeType.Element) + { + switch (subReader.Name.ToLower()) + { + case "om:result": + var sub2 = subReader.ReadSubtree(); + while (sub2.Read()) + { + if (sub2.NodeType == XmlNodeType.Element) + { + switch (sub2.Name.ToLower()) + { + case "wml2:timeseries": + case "wml2:measurementtimeseries": + series = ReadOneSeries(sub2.ReadSubtree()); + break; + } + } + } + break; + } + } + } + + if (series != null) yield return series; + } + } + } + } + + private Series ReadOneSeries(XmlReader reader) + { + var series = new Series(); + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + { + if (reader.Name.ToLower() == "wml2:point") + { + var subReader = reader.ReadSubtree(); + while (subReader.Read()) + { + if (subReader.NodeType == XmlNodeType.Element) + { + switch (subReader.Name.ToLower()) + { + case "wml2:timevaluepairmeasure": + case "wml2:measurementtvp": + var dv = ReadDataValue(subReader.ReadSubtree()); + series.DataValueList.Add(dv); + break; + } + } + } + } + } + } + + // Set variable + var varInfo = new Variable + { + Speciation = "Not Applicable", + DataType = "Unknown", + GeneralCategory = "Unknown", + SampleMedium = "Unknown", + ValueType = "Unknown", + TimeUnit = Unit.UnknownTimeUnit, + VariableUnit = Unit.Unknown, + Code = "Unknown", + Name = "Unknown", + NoDataValue = -9999 + }; + series.Variable = varInfo; + + // Set site + var site = new Site + { + Name = "Unknown", + Code = "Unknown" + }; + series.Site = site; + + //ensure that properties are re-calculated + series.UpdateSeriesInfoFromDataValues(); + + //set the checked and creation date time + series.CreationDateTime = DateTime.Now; + series.LastCheckedDateTime = DateTime.Now; + series.UpdateDateTime = series.LastCheckedDateTime; + + return series; + } + + private static DataValue ReadDataValue(XmlReader reader) + { + double value = 0; + double utcOffset = 0; + var dateTime = DateTime.MinValue; + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + { + switch (reader.Name.ToLower()) + { + case "wml2:value": + reader.Read(); + value = Convert.ToDouble(reader.Value, CultureInfo.InvariantCulture); + break; + case "wml2:time": + reader.Read(); + var dStr = reader.Value; + // without utc offset : 2008-04-05T23:00:00 + // with utc offset : 2005-08-05T22:30:00-07:00 + var withUtcOffset = dStr.Count(d => d == ':') == 3; + + if (withUtcOffset) + { + var utcOffsetFirstSymb = dStr.LastIndexOf(":", StringComparison.Ordinal) - 3; // e.g. -07:00 + dateTime = DateTime.Parse(dStr.Substring(0, utcOffsetFirstSymb), CultureInfo.InvariantCulture); + utcOffset = ParserHelper.ConvertUtcOffset(dStr.Substring(utcOffsetFirstSymb)); + } + else + { + dateTime = DateTime.Parse(dStr, CultureInfo.InvariantCulture); + } + break; + + } + } + } + + return new DataValue(value, dateTime, utcOffset); + } + } +} diff --git a/Source/Core/HydroDesktop.WebServices/WaterOneFlow/IGetValuesProgressHandler.cs b/Source/Core/HydroDesktop.WebServices/WaterOneFlow/IGetValuesProgressHandler.cs new file mode 100644 index 00000000..1ea6a55d --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterOneFlow/IGetValuesProgressHandler.cs @@ -0,0 +1,21 @@ +namespace HydroDesktop.WebServices.WaterOneFlow +{ + /// + /// Progress handler for calling the GetValues WaterOneFlow service request + /// + public interface IGetValuesProgressHandler + { + /// + /// Report progress + /// + /// Number of downloaded interval + /// Total intervals count + /// Time taken to download current interval (in seconds) + void Progress(int intervalNumber, int totalIntervalsCount, double timeTaken); + + /// + /// Shows that current operation should be cancelled + /// + bool CancellationPending { get;} + } +} \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/WaterOneFlow/WaterOneFlowClient.cs b/Source/Core/HydroDesktop.WebServices/WaterOneFlow/WaterOneFlowClient.cs new file mode 100644 index 00000000..fe42db97 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WaterOneFlow/WaterOneFlowClient.cs @@ -0,0 +1,404 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.WebServices.WaterML; + +namespace HydroDesktop.WebServices.WaterOneFlow +{ + /// + /// Special class for communicating WaterOneFlow web services + /// + public class WaterOneFlowClient + { + #region Fields + + private readonly string _serviceURL; + private readonly IWaterMLParser _parser; + private string _downloadDirectory; + private readonly DataServiceInfo _serviceInfo; + private readonly int _reqTimeOut; + private readonly int _valuesPerReq; + private readonly bool _allInOneRequest; + + #endregion + + #region Constructors + + /// + /// Creates a new instance of a WaterOneFlow web service client + /// which communicates with the specified web service. + /// + /// The object with web service information + /// Request timeout, in seconds + /// Number of values per request + /// All values in one request + /// Throws an exception if the web service is not a valid + /// WaterOneFlow service + public WaterOneFlowClient(DataServiceInfo serviceInfo, int reqTimeOut = 100, int valuesPerReq = 10000, + bool allInOneRequest = false) + { + _serviceURL = serviceInfo.EndpointURL; + + _valuesPerReq = valuesPerReq; + _allInOneRequest = allInOneRequest; + _serviceInfo = serviceInfo; + _reqTimeOut = reqTimeOut; + _serviceInfo.Version = WebServiceHelper.GetWaterOneFlowVersion(_serviceURL); + _parser = ParserFactory.GetParser(ServiceInfo); + + SaveXmlFiles = true; // for backward-compatibility + } + + /// + /// Creates a new instance of a WaterOneFlow web service client. + /// The constructor will throw an exception if the url is an invalid + /// WaterOneFlow web service url. + /// + /// The url of the .asmx web page + /// Request timeout, in seconds + /// Number of values per request + /// All values in one request + /// Throws an exception if the web service is not a valid + /// WaterOneFlow service + public WaterOneFlowClient(string asmxURL, int reqTimeOut = 100, int valuesPerReq = 10000, + bool allInOneRequest = false) : + this(new DataServiceInfo(asmxURL, asmxURL.Replace(@"http://", "")), reqTimeOut, valuesPerReq, allInOneRequest) + { + } + + #endregion + + #region Properties + + /// + /// Gets information about the web service used by this web service client + /// + public DataServiceInfo ServiceInfo + { + get { return _serviceInfo; } + } + + /// + /// Gets or sets the name of the directory where + /// downloaded xml files are stored + /// + public string DownloadDirectory + { + get + { + if (string.IsNullOrWhiteSpace(_downloadDirectory)) + { + DownloadDirectory = Path.Combine(Path.GetTempPath(), "HydroDesktop"); + } + + return _downloadDirectory; + } + set + { + if (!Directory.Exists(value)) + { + try + { + Directory.CreateDirectory(value); + } + catch + { + value = Path.GetTempPath(); + } + } + _downloadDirectory = value; + } + } + + /// + /// Gets or sets boolean indicated that WaterOneFlowClient should save temporary xml files. + /// + /// + public bool SaveXmlFiles { get; set; } + + #endregion + + #region Public Methods + + /// + /// Get the data values for the specific site, variable and time range as a list of Series objects + /// + /// the full site code (networkPrefix:siteCode) + /// the full variable code (vocabularyPrefix:variableCode) + /// the start date/time + /// the end date/time + /// The data series. Each data series object includes a list of data values, + /// site, variable, method, source and quality control level information. + /// Usually the list of Series returned will only contain one series. However in some + /// cases, it will contain two or more series with the same site code and variable code, but + /// with a different method or quality control level + public IList GetValues(string siteCode, string variableCode, DateTime startTime, DateTime endTime) + { + IList result; + if (SaveXmlFiles) + { + var xmlFile = GetValuesXML(siteCode, variableCode, startTime, endTime); + using (var fileStream = new FileStream(xmlFile, FileMode.Open)) + { + result = _parser.ParseGetValues(fileStream); + } + } + else + { + var req = WebServiceHelper.CreateGetValuesRequest(_serviceURL, siteCode, variableCode, startTime, endTime); + req.Timeout = _reqTimeOut*1000; + using (var resp = (HttpWebResponse) req.GetResponse()) + { + using (var stream = resp.GetResponseStream()) + { + result = _parser.ParseGetValues(stream); + } + } + } + + return result; + } + + /// + /// Gets information about all series available for the specific site + /// + /// the full site code (networkPrefix:siteCode) + /// A list of all series. The series don't contain any actual data values + /// but include all series metadata including the site, variable, source, method\ + /// and quality control level. + public IList GetSiteInfo(string siteCode) + { + IList result; + if (SaveXmlFiles) + { + var xmlFile = GetSiteInfoXML(siteCode); + using (var fileStream = new FileStream(xmlFile, FileMode.Open)) + { + result = _parser.ParseGetSiteInfo(fileStream); + } + } + else + { + var req = WebServiceHelper.CreateGetSiteInfoRequest(_serviceURL, siteCode); + req.Timeout = _reqTimeOut * 1000; + using (var resp = (HttpWebResponse) req.GetResponse()) + { + using (var stream = resp.GetResponseStream()) + { + result = _parser.ParseGetSiteInfo(stream); + } + } + } + + return result; + } + + /// + /// Gets the information about all sites available at this web service. + /// + /// The list of all sites supported by this web service. + public IList GetSites() + { + IList result; + if (SaveXmlFiles) + { + var xmlFile = GetSitesXML(); + using (var fileStream = new FileStream(xmlFile, FileMode.Open)) + { + result = _parser.ParseGetSites(fileStream); + } + } + else + { + var req = WebServiceHelper.CreateGetSitesRequest(_serviceURL); + req.Timeout = _reqTimeOut * 1000; + using (var resp = (HttpWebResponse) req.GetResponse()) + { + using (var stream = resp.GetResponseStream()) + { + result = _parser.ParseGetSites(stream); + } + } + } + + return result; + } + + /// + /// Get the data values for the specific site, variable and time range as a XML document + /// in the WaterML format + /// + /// the full site code (networkPrefix:siteCode) + /// the full variable code (vocabularyPrefix:variableCode) + /// the start date/time + /// the end date/time + /// the downloaded xml file name + public string GetValuesXML(string siteCode, string variableCode, DateTime startTime, DateTime endTime) + { + return GetValuesXML(siteCode, variableCode, startTime, endTime, -1).First(); + } + + /// + /// Get the data values for the specific site, variable and time range as a XML document + /// in the WaterML format + /// + /// the full site code (networkPrefix:siteCode) + /// the full variable code (vocabularyPrefix:variableCode) + /// the start date/time + /// the end date/time + /// Estimated values count. + /// If this value less then zero, the result collection will necessarily contains only 1 file, + /// otherwise number of file depends from this value. + /// Progress handler, may be null. + /// Collection of the downloaded xml file names + public IEnumerable GetValuesXML(string siteCode, string variableCode, + DateTime startTime, DateTime endTime, + int estimatedValuesCount, IGetValuesProgressHandler progressHandler = null) + { + var vr = _allInOneRequest ? estimatedValuesCount : _valuesPerReq; + int intervalsCount; + + if (estimatedValuesCount <= 0 || estimatedValuesCount <= vr) + intervalsCount = 1; + else + intervalsCount = estimatedValuesCount % vr == 0 + ? estimatedValuesCount / vr + : estimatedValuesCount / vr + 1; + + var datesDiff = endTime.Subtract(startTime); + var daysPerInteval = datesDiff.Days/intervalsCount; + + var loopStartDate = startTime; + var loopEndDate = loopStartDate.AddDays(daysPerInteval); + + var savedFiles = new List(intervalsCount); + for (int i = 0; i < intervalsCount; i++) + { + if (progressHandler != null && + progressHandler.CancellationPending) break; + + if (i == intervalsCount - 1) + { + loopEndDate = endTime; + } + + var startGetTime = DateTime.Now; + try + { + var xmlFile = GetAndSavesValuesXML(siteCode, variableCode, loopStartDate, loopEndDate); + savedFiles.Add(xmlFile); + } + finally + { + var endGetTime = DateTime.Now; + var timeTaken = endGetTime.Subtract(startGetTime).TotalSeconds; + if (progressHandler != null) + { + progressHandler.Progress(i, intervalsCount, timeTaken); + } + } + + // Set loop dates to next interval + loopStartDate = loopEndDate.AddMinutes(1); //AddDays(1); + loopEndDate = loopStartDate.AddDays(daysPerInteval); + } + + return savedFiles.AsEnumerable(); + } + + /// + /// Gets the information about all sites in the web service as a XML document in the WaterML format + /// + /// The downloaded XML file name + public string GetSitesXML() + { + //generate the file name + var fileName = Path.Combine(DownloadDirectory, "sites" + GenerateTimeStampString() + ".xml"); + var req = WebServiceHelper.CreateGetSitesRequest(_serviceURL); + req.Timeout = _reqTimeOut * 1000; + SaveWebResponseToFile(req, fileName); + return fileName; + } + + /// + /// Gets the information about all time series supported by the web service as a XML document + /// in the WaterML format + /// The full site code in NetworkPrefix:SiteCode format + /// + /// the downloaded xml file name + public string GetSiteInfoXML(string fullSiteCode) + { + //generate the file name + string fileName = "Site-" + fullSiteCode + "-" + GenerateTimeStampString() + ".xml"; + fileName = fileName.Replace(":", "-"); + fileName = Path.Combine(DownloadDirectory, fileName); + + var req = WebServiceHelper.CreateGetSiteInfoRequest(_serviceURL, fullSiteCode); + req.Timeout = _reqTimeOut * 1000; + SaveWebResponseToFile(req, fileName); + return fileName; + } + + #endregion + + #region Private Methods + + private static void SaveWebResponseToFile(WebRequest req, string filename) + { + using (var resp = (HttpWebResponse) req.GetResponse()) + { + // we will read data via the response stream + using (var stream = resp.GetResponseStream()) + { + var buffer = new byte[1024]; + using (var outFile = new FileStream(filename, FileMode.Create)) + { + int bytesRead; + while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) != 0) + { + outFile.Write(buffer, 0, bytesRead); + } + } + } + } + } + + private string GetAndSavesValuesXML(string siteCode, string variableCode, DateTime startTime, DateTime endTime) + { + var req = WebServiceHelper.CreateGetValuesRequest(_serviceURL, siteCode, variableCode, startTime, endTime); + req.Timeout = _reqTimeOut * 1000; + var filename = GenerateGetValuesFileName(siteCode, variableCode); + SaveWebResponseToFile(req, filename); + return filename; + } + + private string GenerateGetValuesFileName(string siteCode, string variableCode) + { + //generate the file name + var timeStamp = GenerateTimeStampString(); + var fileName = siteCode + "-" + variableCode + "-" + timeStamp + ".xml"; + fileName = fileName.Replace(":", "-"); + fileName = fileName.Replace("=", "-"); + fileName = fileName.Replace("/", "-"); + + fileName = Path.Combine(DownloadDirectory, fileName); + return fileName; + } + + /// + /// Generates a 'time stamp' string in the yyyyMMddhhmmss-miliseconds format for + /// the current system dateTime + /// s + private static string GenerateTimeStampString() + { + var now = DateTime.Now; + return now.ToString("yyyyMMddhhmmss") + now.Millisecond.ToString("000"); + } + + #endregion + } +} + diff --git a/Source/Core/HydroDesktop.WebServices/WebServiceHelper.cs b/Source/Core/HydroDesktop.WebServices/WebServiceHelper.cs new file mode 100644 index 00000000..96f5934a --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/WebServiceHelper.cs @@ -0,0 +1,283 @@ +using System; +using System.IO; +using System.Net; +using System.Text; +using System.Xml; + +namespace HydroDesktop.WebServices +{ + /// + /// This is a helper class providing methods for accessing WaterML SOAP web services + /// + public static class WebServiceHelper + { + /// + /// Creates a web request for the GetSites method + /// + /// the wsdl URL + /// the web request that can be sent to obtain the list of sites + public static HttpWebRequest CreateGetSitesRequest(string url) + { + url = url.Trim().ToLower(); + //for http request, we need to remove the ?WSDL part from the url + if (url.EndsWith("?wsdl")) + { + url = url.Replace("?wsdl", ""); + } + + //get the valid SOAP namespace + var soapNamespace = GetCuahsiSoapNamespace(url); + + //create the SOAP Envelope + var soapEnvelope = CreateSoapEnvelopeForGetSites(soapNamespace); + + //send the SOAP envelope to the service as a xml document + var doc = new XmlDocument(); + doc.Load(new StringReader(soapEnvelope)); + + var req = (HttpWebRequest)WebRequest.Create(url); + + //this is the valid SoapAction header for GetValues web method + var soapAction = soapNamespace == Properties.Resources.CUAHSI_1_1_Namespace + ? soapNamespace + "GetSitesObject" + : soapNamespace + "GetSites"; + + req.Headers.Add("SOAPAction", soapAction); + req.ContentType = "text/xml"; + req.Method = "POST"; + var stm = req.GetRequestStream(); + doc.Save(stm); + stm.Close(); + + return req; + } + + /// + /// Creates the web request to get site information (which series are available at the site) + /// + /// the web service wsdl url + /// the full site code in Network:SiteCode format + /// the web request for getting the site info + public static HttpWebRequest CreateGetSiteInfoRequest(string url, string fullSiteCode) + { + url = url.Trim().ToLower(); + //for http request, we need to remove the ?WSDL part from the url + if (url.EndsWith("?wsdl")) + { + url = url.Replace("?wsdl", ""); + } + + //get the valid SOAP namespace + var soapNamespace = GetCuahsiSoapNamespace(url); + + //create the SOAP Envelope + var soapEnvelope = CreateSoapEnvelopeForGetSiteInfo(soapNamespace, fullSiteCode); + + //send the SOAP envelope to the service as a xml document + var doc = new XmlDocument(); + doc.Load(new StringReader(soapEnvelope)); + + var req = (HttpWebRequest)WebRequest.Create(url); + + //this is the valid SoapAction header for GetValues web method + var soapAction = soapNamespace + "GetSiteInfoObject"; + + req.Headers.Add("SOAPAction", soapAction); + + req.ContentType = "text/xml;charset=\"utf-8\""; + req.Accept = "text/xml"; + req.Method = "POST"; + var stm = req.GetRequestStream(); + doc.Save(stm); + stm.Close(); + + return req; + } + + + /// + /// Creates the HTTP SOAP web request for GetValues method + /// + /// URL of the web service + /// full site code (NetworkPrefix:Site) + /// full variable code (NetworkPrefix:Variable) + /// start date + /// end date + /// Returns the fully initialized web request object + public static HttpWebRequest CreateGetValuesRequest(string url, string fullSiteCode, string fullVariableCode, DateTime startDate, DateTime endDate) + { + url = url.Trim().ToLower(); + //for http request, we need to remove the ?WSDL part from the url + if (url.EndsWith("?wsdl")) + { + url = url.Replace("?wsdl", ""); + } + + //get the valid SOAP namespace + var soapNamespace = GetCuahsiSoapNamespace(url); + + //create the SOAP Envelope + var soapEnvelope = CreateSoapEnvelope(soapNamespace, fullSiteCode, fullVariableCode, startDate, endDate); + + //send the SOAP envelope to the service as a xml document + var doc = new XmlDocument(); + doc.Load(new StringReader(soapEnvelope)); + + var req = (HttpWebRequest)WebRequest.Create(url); + + //this is the valid SoapAction header for GetValues web method + var soapAction = soapNamespace + "GetValuesObject"; + + req.Headers.Add("SOAPAction", soapAction); + + req.ContentType = "text/xml;charset=\"utf-8\""; + req.Accept = "text/xml"; + req.Method = "POST"; + var stm = req.GetRequestStream(); + doc.Save(stm); + stm.Close(); + + return req; + } + + /// + /// Gets the WaterOneFlow service version (1.0 or 1.1) + /// + /// the asmx url + /// the web service version + public static double GetWaterOneFlowVersion(string url) + { + if (url.Contains("cuahsi_1_0")) + { + return 1.0; + } + if (url.Contains("cuahsi_1_1")) + { + return 1.1; + } + return 1.0; + } + + /// + /// Finds out the SOAP namespace (1.0 or 1.1) from the + /// WSDL URL. This function assumes that the url is in format ".../cuahsi_1_0.asmx?wsdl" or + /// ".../cuahsi_1_1.asmx?wsdl" + /// + /// the wsdl url + /// the correctly formatted SOAP namespace + public static string GetCuahsiSoapNamespace(string url) + { + var soapNamespace = String.Empty; + if (url.Contains("cuahsi_1_0")) + { + soapNamespace = Properties.Resources.CUAHSI_1_0_Namespace; + } + else if (url.Contains("cuahsi_1_1")) + { + soapNamespace = Properties.Resources.CUAHSI_1_1_Namespace; + } + else + { + soapNamespace = Properties.Resources.CUAHSI_1_0_Namespace; + } + + return soapNamespace; + } + + /// + /// Creates the SOAP Envelope for the GetValues request + /// + /// the SOAP namespace + /// full site code in Network:SiteCode format + /// full variable code in Vocabulary:VariableCode format + /// start date + /// end date + /// The SOAP envelope that needs to be sent with the GetValues request + public static string CreateSoapEnvelope(string soapNamespace, string fullSiteCode, string fullVariableCode, + DateTime startDate, DateTime endDate) + { + + //to format the beginDate and endDate + var startDateStr = startDate.ToString("yyyy-MM-ddTHH:mm"); + var endDateStr = endDate.ToString("yyyy-MM-ddTHH:mm"); + + //create the AuthToken (currently, only empty AuthToken is supported) + var authToken = String.Empty; + + var webMethodName = "GetValuesObject"; + + var soapEnv = new StringBuilder(); + soapEnv.AppendLine(@""); + soapEnv.AppendLine(@""); + soapEnv.AppendLine(""); + soapEnv.AppendLine(String.Format(@"<{0} xmlns=""{1}"">", webMethodName, soapNamespace)); + soapEnv.AppendLine(String.Format(@"{0}", fullSiteCode)); + soapEnv.AppendLine(String.Format(@"{0}", fullVariableCode)); + soapEnv.AppendLine(String.Format(@"{0}", startDateStr)); + soapEnv.AppendLine(String.Format(@"{0}", endDateStr)); + soapEnv.AppendLine(String.Format(@"{0}", authToken)); + soapEnv.AppendLine(String.Format(@"", webMethodName)); + soapEnv.AppendLine(""); + soapEnv.AppendLine(""); + + return soapEnv.ToString(); + } + + /// + /// Creates the SOAP Envelope for the GetSiteInfo method + /// + /// SOAP Namespace + /// full site code parameter + /// the SOAP Envelope as a xml string + public static string CreateSoapEnvelopeForGetSiteInfo(string soapNamespace, string fullSiteCode) + { + //create the AuthToken (currently, only empty AuthToken is supported) + var authToken = String.Empty; + + const string webMethodName = "GetSiteInfoObject"; + + var soapEnv = new StringBuilder(); + soapEnv.AppendLine(@""); + soapEnv.AppendLine(@""); + soapEnv.AppendLine(""); + soapEnv.AppendLine(String.Format(@"<{0} xmlns=""{1}"">", webMethodName, soapNamespace)); + soapEnv.AppendLine(String.Format(@"{0}", fullSiteCode)); + soapEnv.AppendLine(String.Format(@"{0}", authToken)); + soapEnv.AppendLine(String.Format(@"", webMethodName)); + soapEnv.AppendLine(""); + soapEnv.AppendLine(""); + + return soapEnv.ToString(); + } + + /// + /// Creates a SOAP envelope for the GetSites web method + /// + /// the SOAP namespace (1.1 or 1.0) + /// The SOAP envelope that needs to be sent with the GetSites request + public static string CreateSoapEnvelopeForGetSites(string soapNamespace) + { + var webMethodName = "GetSites"; + if (soapNamespace == Properties.Resources.CUAHSI_1_1_Namespace) + { + webMethodName = "GetSitesObject"; + } + + //create the AuthToken (currently, only empty AuthToken is supported) + var authToken = String.Empty; + + var soapEnv = new StringBuilder(); + soapEnv.AppendLine(@""); + soapEnv.AppendLine(@""); + soapEnv.AppendLine(""); + soapEnv.AppendLine(String.Format(@"<{0} xmlns=""{1}"">", webMethodName, soapNamespace)); + soapEnv.Append(@""); + soapEnv.Append(String.Format(@"{0}", authToken)); + soapEnv.AppendLine(String.Format(@"", webMethodName)); + soapEnv.AppendLine(""); + soapEnv.AppendLine(""); + + return soapEnv.ToString(); + } + } +} diff --git a/Source/Core/HydroDesktop.WebServices/package.nuspec b/Source/Core/HydroDesktop.WebServices/package.nuspec new file mode 100644 index 00000000..f37a25e6 --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/package.nuspec @@ -0,0 +1,20 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + true + $description$ + + en-US + HideReleaseFromEndUser + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.WebServices/packages.config b/Source/Core/HydroDesktop.WebServices/packages.config new file mode 100644 index 00000000..037b768b --- /dev/null +++ b/Source/Core/HydroDesktop.WebServices/packages.config @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ZedGraphEx/HydroDesktop.ZedGraphEx.csproj b/Source/Core/HydroDesktop.ZedGraphEx/HydroDesktop.ZedGraphEx.csproj new file mode 100644 index 00000000..0834ac1f --- /dev/null +++ b/Source/Core/HydroDesktop.ZedGraphEx/HydroDesktop.ZedGraphEx.csproj @@ -0,0 +1,99 @@ + + + + true + ..\..\..\Binaries\ + DEBUG;TRACE + ..\..\..\Binaries\HydroDesktop.ZedGraphEx.XML + full + x86 + ..\..\..\Binaries\HydroDesktop.ZedGraphEx.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + ..\..\..\Binaries\HydroDesktop.ZedGraphEx.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + + + + Debug + AnyCPU + {9B0A0FAC-318F-4A27-A416-3977820B3B95} + Library + Properties + HydroDesktop.ZedGraphEx + HydroDesktop.ZedGraphEx + v4.0 + 512 + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\HydroDesktop.ZedGraphEx.XML + + + pdbonly + true + ..\..\..\Binaries\ + TRACE + prompt + 4 + + + + + + + + False + ..\..\packages\ZedGraph.5.1.6\lib\net35-Client\ZedGraph.dll + + + + + Properties\AssemblyInfoShared.cs + + + UserControl + + + + + + + + + + \ No newline at end of file diff --git a/Source/Core/HydroDesktop.ZedGraphEx/Properties/AssemblyInfo.cs b/Source/Core/HydroDesktop.ZedGraphEx/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..cf831ac8 --- /dev/null +++ b/Source/Core/HydroDesktop.ZedGraphEx/Properties/AssemblyInfo.cs @@ -0,0 +1,23 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.ZedGraphEx")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HydroDesktop.ZedGraphEx")] +[assembly: AssemblyCopyright("Copyright © 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("221742ed-8ae7-44c4-9431-dea650151e5d")] diff --git a/Source/Core/HydroDesktop.ZedGraphEx/ZedGraphControlEx.cs b/Source/Core/HydroDesktop.ZedGraphEx/ZedGraphControlEx.cs new file mode 100644 index 00000000..5172f2b0 --- /dev/null +++ b/Source/Core/HydroDesktop.ZedGraphEx/ZedGraphControlEx.cs @@ -0,0 +1,46 @@ +using System; +using System.Drawing; +using System.Windows.Forms; +using ZedGraph; + +namespace HydroDesktop.ZedGraphEx +{ + /// + /// Improved ZedGraphControl. + /// + public class ZedGraphControlEx : ZedGraphControl + { + /// + /// Create new instance of + /// + public ZedGraphControlEx() + { + ContextMenuBuilder += OnContextMenuBuilder; + } + + private static void OnContextMenuBuilder(ZedGraphControl sender, ContextMenuStrip menustrip, Point mousept, ContextMenuObjectState objstate) + { + foreach (ToolStripItem item in menustrip.Items) + { + if ("show_val".Equals(item.Tag) && String.Equals(item.Text, "Show Point Values", StringComparison.OrdinalIgnoreCase)) + { + item.Text = "Show Tooltips on Hover"; + break; + } + } + } + + #region Public methods + + /// + /// Zoom In. + /// + public void ZoomIn() + { + ZedGraphControl_MouseWheel(this, new MouseEventArgs(MouseButtons.None, + 1, Width/2, Height/2, 1)); + } + + #endregion + } +} diff --git a/Source/Core/HydroDesktop.ZedGraphEx/packages.config b/Source/Core/HydroDesktop.ZedGraphEx/packages.config new file mode 100644 index 00000000..eb764e06 --- /dev/null +++ b/Source/Core/HydroDesktop.ZedGraphEx/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch.sln b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch.sln new file mode 100644 index 00000000..e5632611 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch.sln @@ -0,0 +1,30 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FacetedSearch3", "FacetedSearch3\FacetedSearch3.csproj", "{BA38E49F-BB13-4AA3-A31F-69E16D7AA4A4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BA38E49F-BB13-4AA3-A31F-69E16D7AA4A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BA38E49F-BB13-4AA3-A31F-69E16D7AA4A4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BA38E49F-BB13-4AA3-A31F-69E16D7AA4A4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {BA38E49F-BB13-4AA3-A31F-69E16D7AA4A4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {BA38E49F-BB13-4AA3-A31F-69E16D7AA4A4}.Debug|x86.ActiveCfg = Debug|Any CPU + {BA38E49F-BB13-4AA3-A31F-69E16D7AA4A4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BA38E49F-BB13-4AA3-A31F-69E16D7AA4A4}.Release|Any CPU.Build.0 = Release|Any CPU + {BA38E49F-BB13-4AA3-A31F-69E16D7AA4A4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {BA38E49F-BB13-4AA3-A31F-69E16D7AA4A4}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {BA38E49F-BB13-4AA3-A31F-69E16D7AA4A4}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/AreaHelper.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/AreaHelper.cs new file mode 100644 index 00000000..b7c2d404 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/AreaHelper.cs @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Projections; +using FacetedSearch3.Area; +using FacetedSearch3.Properties; + +namespace FacetedSearch3.Area +{ + static class AreaHelper + { + #region Fields + + private static readonly ProjectionInfo _wgs84Projection = ProjectionInfo.FromEsriString(Resources.wgs_84_esri_string); + + #endregion + + #region Public methods + + public static IEnumerable GetAllPolygonLayers(Map map) + { + if (map == null) throw new ArgumentNullException("map"); + + return map.GetAllLayers().OfType(); + } + + public static IEnumerable GetAllSelectedPolygonLayers(Map map) + { + if (map == null) throw new ArgumentNullException("map"); + + return GetAllPolygonLayers(map) + .Where(subLayer => subLayer.IsVisible && + subLayer.IsSelected); + } + + public static void SelectFirstVisiblePolygonLayer(Map map, bool isWorldTemplate) + { + if (map == null) throw new ArgumentNullException("map"); + + //special case: world project template + if (isWorldTemplate) + { + map.MapFrame.IsSelected = false; + foreach (var layer in GetAllPolygonLayers(map).Where(subLayer => subLayer.IsVisible)) + { + layer.IsSelected = true; + map.Legend.RefreshNodes(); + break; + } + } + + if (map.MapFrame.IsSelected) return; //don't select layers if map frame is already selected + + var hasSelected = GetAllPolygonLayers(map).Where(subLayer => subLayer.IsVisible) + .Any(item => item.IsSelected); + if (hasSelected) + return; + + foreach (var layer in GetAllPolygonLayers(map).Where(subLayer => subLayer.IsVisible).Reverse()) + { + layer.IsSelected = true; + map.Legend.RefreshNodes(); + break; + } + } + + public static Box ReprojectBoxToWGS84(Box sourceBox, ProjectionInfo sourceProjection) + { + if (sourceBox == null) throw new ArgumentNullException("sourceBox"); + if (sourceProjection == null) throw new ArgumentNullException("sourceProjection"); + + var xMin = sourceBox.XMin; + var yMin = sourceBox.YMin; + var xMax = sourceBox.XMax; + var yMax = sourceBox.YMax; + + var xy = new[] { xMin, yMin, xMax, yMax }; + Reproject.ReprojectPoints(xy, new double[] { 0, 0 }, sourceProjection, _wgs84Projection, 0, 2); + + xMin = xy[0]; + yMin = xy[1]; + xMax = xy[2]; + yMax = xy[3]; + var rectangle = new Box(xMin, xMax, yMin, yMax); + return rectangle; + } + + public static List ReprojectPolygonsToWGS84(FeatureSet polygons) + { + if (polygons == null) throw new ArgumentNullException("polygons"); + + polygons.Reproject(_wgs84Projection); + return Enumerable.ToList(polygons.Features); + } + + public static Extent ReprojectExtentToWGS84(Extent sourceExtent, ProjectionInfo sourceProjection) + { + if (sourceExtent == null) throw new ArgumentNullException("sourceBox"); + if (sourceProjection == null) throw new ArgumentNullException("sourceProjection"); + + var MinX = sourceExtent.MinX; + var MinY = sourceExtent.MinY; + var MaxX = sourceExtent.MaxX; + var MaxY = sourceExtent.MaxY; + + var xy = new double[] { MinX, MinY, MaxX, MaxY }; + Reproject.ReprojectPoints(xy, new double[] { 0, 0 }, sourceProjection, _wgs84Projection, 0, 2); + + MinX = xy[0]; + MinY = xy[1]; + MaxX = xy[2]; + MaxY = xy[3]; + var rectangle = new Extent(MinX, MinY, MaxX, MaxY); + return rectangle; + } + + #endregion + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/Box.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/Box.cs new file mode 100644 index 00000000..f8556549 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/Box.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace FacetedSearch3.Area +{ + + // Represents a latitude / longitude bounding box. + public class Box + { + public Box(double xMin, double xMax, double yMin, double yMax) + { + XMin = xMin; + XMax = xMax; + YMax = yMax; + YMin = yMin; + } + + public double XMax { get; set;} + + public double XMin { get; set; } + + public double YMax { get; set; } + + public double YMin { get; set; } + + //public override string ToString(); + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/RectangleDrawing.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/RectangleDrawing.cs new file mode 100644 index 00000000..ce3912f5 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/RectangleDrawing.cs @@ -0,0 +1,309 @@ +using System; +using System.Diagnostics.Contracts; +using System.Linq; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Projections; +using DotSpatial.Topology; +using System.Data; +using DotSpatial.Symbology; +using System.Drawing; +using System.Windows.Forms; + +namespace FacetedSearch3.Area +{ + /// + /// This class is responsible for drawing the area rectangle + /// + public class RectangleDrawing + { + #region Fields + + private readonly Map _mainMap; + private MapPolygonLayer _rectangleLayer; + private bool _isActive; + private int _numClicks; + private Coordinate _startPoint; + + #endregion + + public event EventHandler RectangleCreated; + public event EventHandler Deactivated; + + #region Constructors + + public RectangleDrawing(Map map) + { + if (map == null) throw new ArgumentNullException("map"); + Contract.EndContractBlock(); + + _mainMap = map; + _mainMap.Layers.LayerRemoved += Layers_LayerRemoved; + } + + #endregion + + void Layers_LayerRemoved(object sender, LayerEventArgs e) + { + if (_rectangleLayer == null) return; + + if (e.Layer == _rectangleLayer) + { + Deactivate(); + } + } + + /// + /// The extent of the area rectangle + /// + public Extent RectangleExtent + { + get + { + if (_rectangleLayer.DataSet.Features.Count == 1) + { + IFeature polyF = _rectangleLayer.DataSet.Features[0]; + return polyF.Envelope.ToExtent(); + } + else + { + return new Extent(_mainMap.ViewExtents.ToEnvelope()); + } + } + } + + public bool IsActivated + { + get { return _isActive; } + } + + /// + /// Activates the rectangle drawing function + /// + public void Activate() + { + if (!_isActive) + { + _mainMap.MouseDown += mainMap_MouseDown; + _mainMap.MouseUp += mainMap_MouseUp; + } + _numClicks = 0; + _isActive = true; + _mainMap.FunctionMode = FunctionMode.Select; + _mainMap.Cursor = Cursors.Cross; + AddRectangleLayer(); + DisableLayerSelection(); + } + + /// + /// Deactivates the rectangle drawing function + /// + public void Deactivate() + { + if (!IsActivated) return; + + _mainMap.MouseDown -= mainMap_MouseDown; + _mainMap.MouseUp -= mainMap_MouseUp; + _numClicks = 0; + _isActive = false; + + if (_rectangleLayer != null) + { + if (_rectangleLayer.DataSet.Features != null) + { + _rectangleLayer.DataSet.Features.Clear(); + } + RemoveRectangleLayer(); + } + _mainMap.ResetBuffer(); + _mainMap.FunctionMode = FunctionMode.Select; + EnableLayerSelection(); + + //Raise event + OnDeactivated(); + } + + private void DisableLayerSelection() + { + foreach (IMapLayer lay in _mainMap.GetAllLayers()) + { + if (lay.LegendText != Properties.Resources.RectangleLayerName) + { + lay.IsSelected = false; + lay.SelectionEnabled = false; + } + else + { + lay.IsSelected = true; + } + } + } + + private void EnableLayerSelection() + { + foreach (IMapLayer lay in _mainMap.GetAllLayers()) + { + lay.SelectionEnabled = true; + } + } + + void mainMap_MouseUp(object sender, MouseEventArgs e) + { + //only modify rectangle drawing if function mode is Select + if (_mainMap.FunctionMode != FunctionMode.Select) return; + + if (_numClicks == 1) + { + Coordinate endPoint = new Coordinate(_mainMap.PixelToProj(e.Location)); + + _rectangleLayer.DataSet.Features.Clear(); + + Coordinate[] array = new Coordinate[5]; + array[0] = _startPoint; + array[1] = new Coordinate(_startPoint.X, endPoint.Y); + array[2] = endPoint; + array[3] = new Coordinate(endPoint.X, _startPoint.Y); + array[4] = _startPoint; + LinearRing shell = new LinearRing(array); + Polygon poly = new Polygon(shell); + IFeature newF = _rectangleLayer.DataSet.AddFeature(poly); + newF.DataRow["ID"] = 1; + _numClicks = 0; + + _mainMap.ResetBuffer(); + //Deactivate(); + OnRectangleCreated(); + } + } + + void mainMap_MouseDown(object sender, MouseEventArgs e) + { + //only modify rectangle drawing if function mode is Select + if (_mainMap.FunctionMode != FunctionMode.Select) return; + + if (_numClicks == 0) + { + //todo: draw point... + _startPoint = new Coordinate(_mainMap.PixelToProj(e.Location)); + _numClicks = 1; + + } + else if (_numClicks == 1) + { + _numClicks = 2; + } + + } + + /// + /// Restores the 'search area rectangle' in the map + /// + public void RestoreSearchRectangle(double minLon, double minLat, double maxLon, double maxLat) + { + AddRectangleLayer(); + if (_rectangleLayer != null) + { + _rectangleLayer.DataSet.Features.Clear(); + + double maxLat1 = Math.Max(minLat, maxLat); + double minLat1 = Math.Min(minLat, maxLat); + double maxLon1 = Math.Max(minLon, maxLon); + double minLon1 = Math.Min(minLon, maxLon); + + //reproject the points + int numPoints = 4; + double[] array = new double[8]; + array[0] = minLon1; + array[1] = minLat1; + array[2] = minLon1; + array[3] = maxLat1; + array[4] = maxLon1; + array[5] = maxLat1; + array[6] = maxLon1; + array[7] = minLat1; + + ProjectionInfo wgs84 = ProjectionInfo.FromEsriString(Properties.Resources.wgs_84_esri_string); + Reproject.ReprojectPoints(array, new double[] { 0, 0, 0, 0 }, wgs84, _mainMap.Projection, 0, numPoints); + + //form the coordinate array and add rectangle feature + Coordinate[] coords = new Coordinate[5]; + coords[0] = new Coordinate(array[0], array[1]); + coords[1] = new Coordinate(array[2], array[3]); + coords[2] = new Coordinate(array[4], array[5]); + coords[3] = new Coordinate(array[6], array[7]); + //add the closing point of the rectangle - same as first point + coords[4] = new Coordinate(array[0], array[1]); + + //create a polygon feature from the coordinate array + LinearRing shell = new LinearRing(coords); + Polygon poly = new Polygon(shell); + IFeature newF = _rectangleLayer.DataSet.AddFeature(poly); + newF.DataRow["ID"] = 1; + _numClicks = 0; + + _mainMap.ResetBuffer(); + //Deactivate(); + OnRectangleCreated(); + } + } + + /// + /// Adds the hidden "Search Rectangle" layer to the map + /// + private void AddRectangleLayer() + { + //check for the rectangle layer + if (_rectangleLayer == null) + { + _rectangleLayer = _mainMap.GetAllLayers().OfType() + .Where(lay => lay.LegendText == Properties.Resources.RectangleLayerName) + .FirstOrDefault(); + } + if (_rectangleLayer == null) + { + var rectangleFs = new FeatureSet(FeatureType.Polygon); + rectangleFs.DataTable.Columns.Add(new DataColumn("ID")); + rectangleFs.Projection = _mainMap.Projection; + + _rectangleLayer = new MapPolygonLayer(rectangleFs){LegendText = Properties.Resources.RectangleLayerName}; + var redColor = Color.Red.ToTransparent(0.5f); + _rectangleLayer.Symbolizer = new PolygonSymbolizer(redColor, Color.Red); + _rectangleLayer.SelectionSymbolizer = _rectangleLayer.Symbolizer; + _mainMap.Layers.Add(_rectangleLayer); + } + } + + /// + /// Returns true if the map already contains the rectangle layer.. + /// + /// + public bool RectangleLayerIsInMap() + { + return _mainMap.GetAllLayers().Cast().Any(lay => lay.LegendText == Properties.Resources.RectangleLayerName); + } + + private void RemoveRectangleLayer() + { + _mainMap.Layers.Remove(_rectangleLayer); + _rectangleLayer = null; + } + + private void OnRectangleCreated() + { + var handler = RectangleCreated; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + + private void OnDeactivated() + { + var handler = Deactivated; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/SelectAreaByAttributeDialog.Designer.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/SelectAreaByAttributeDialog.Designer.cs new file mode 100644 index 00000000..e2959d40 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/SelectAreaByAttributeDialog.Designer.cs @@ -0,0 +1,157 @@ +namespace FacetedSearch3.Area +{ + partial class SelectAreaByAttributeDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnApply = new System.Windows.Forms.Button(); + this.btnOK = new System.Windows.Forms.Button(); + this.lblActiveLayer = new System.Windows.Forms.Label(); + this.cmbActiveLayer = new System.Windows.Forms.ComboBox(); + this.cmbField = new System.Windows.Forms.ComboBox(); + this.lblField = new System.Windows.Forms.Label(); + this.lblValue = new System.Windows.Forms.Label(); + this.cmbValues = new System.Windows.Forms.ComboBox(); + this.SuspendLayout(); + // + // btnApply + // + this.btnApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnApply.Location = new System.Drawing.Point(146, 186); + this.btnApply.Name = "btnApply"; + this.btnApply.Size = new System.Drawing.Size(75, 23); + this.btnApply.TabIndex = 4; + this.btnApply.Text = "Apply"; + this.btnApply.UseVisualStyleBackColor = true; + this.btnApply.Click += new System.EventHandler(this.btnApply_Click); + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(227, 186); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 5; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + this.btnOK.Click += new System.EventHandler(this.btnOK_Click); + // + // lblActiveLayer + // + this.lblActiveLayer.AutoSize = true; + this.lblActiveLayer.Location = new System.Drawing.Point(14, 19); + this.lblActiveLayer.Name = "lblActiveLayer"; + this.lblActiveLayer.Size = new System.Drawing.Size(69, 13); + this.lblActiveLayer.TabIndex = 2; + this.lblActiveLayer.Text = "Active Layer:"; + // + // cmbActiveLayer + // + this.cmbActiveLayer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbActiveLayer.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbActiveLayer.FormattingEnabled = true; + this.cmbActiveLayer.Location = new System.Drawing.Point(17, 36); + this.cmbActiveLayer.Name = "cmbActiveLayer"; + this.cmbActiveLayer.Size = new System.Drawing.Size(288, 21); + this.cmbActiveLayer.TabIndex = 0; + // + // cmbField + // + this.cmbField.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbField.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbField.FormattingEnabled = true; + this.cmbField.Location = new System.Drawing.Point(17, 81); + this.cmbField.Name = "cmbField"; + this.cmbField.Size = new System.Drawing.Size(288, 21); + this.cmbField.TabIndex = 1; + // + // lblField + // + this.lblField.AutoSize = true; + this.lblField.Location = new System.Drawing.Point(17, 65); + this.lblField.Name = "lblField"; + this.lblField.Size = new System.Drawing.Size(32, 13); + this.lblField.TabIndex = 4; + this.lblField.Text = "Field:"; + // + // lblValue + // + this.lblValue.AutoSize = true; + this.lblValue.Location = new System.Drawing.Point(17, 131); + this.lblValue.Name = "lblValue"; + this.lblValue.Size = new System.Drawing.Size(141, 13); + this.lblValue.TabIndex = 6; + this.lblValue.Text = "Value: type-in first few letters"; + // + // cmbValues + // + this.cmbValues.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.cmbValues.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.cmbValues.FormattingEnabled = true; + this.cmbValues.Location = new System.Drawing.Point(17, 147); + this.cmbValues.Name = "cmbValues"; + this.cmbValues.Size = new System.Drawing.Size(288, 21); + this.cmbValues.TabIndex = 7; + // + // SelectAreaByAttributeDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(314, 221); + this.Controls.Add(this.cmbValues); + this.Controls.Add(this.lblValue); + this.Controls.Add(this.cmbField); + this.Controls.Add(this.lblField); + this.Controls.Add(this.cmbActiveLayer); + this.Controls.Add(this.lblActiveLayer); + this.Controls.Add(this.btnOK); + this.Controls.Add(this.btnApply); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "SelectAreaByAttributeDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Select Area By Attribute"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnApply; + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Label lblActiveLayer; + private System.Windows.Forms.ComboBox cmbActiveLayer; + private System.Windows.Forms.ComboBox cmbField; + private System.Windows.Forms.Label lblField; + private System.Windows.Forms.Label lblValue; + private System.Windows.Forms.ComboBox cmbValues; + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/SelectAreaByAttributeDialog.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/SelectAreaByAttributeDialog.cs new file mode 100644 index 00000000..bbcbe67d --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/SelectAreaByAttributeDialog.cs @@ -0,0 +1,192 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Symbology; + +namespace FacetedSearch3.Area +{ + public partial class SelectAreaByAttributeDialog : Form + { + #region Fields + + private readonly Map _map; + + private bool _changesApplied = false; + + #endregion + + #region Constructors + + private SelectAreaByAttributeDialog(Map map) + { + if (map == null) throw new ArgumentNullException("map"); + + _map = map; + + InitializeComponent(); + + + BindMapToForm(); + } + + #endregion + + #region Public methods + + public static DialogResult ShowDialog(Map map) + { + if (map == null) throw new ArgumentNullException("map"); + + using (var form = new SelectAreaByAttributeDialog(map)) + { + return form.ShowDialog(); + } + } + + #endregion + + #region Private methods + + private void BindMapToForm() + { + cmbActiveLayer.SelectedIndexChanged -= cmbActiveLayer_SelectedIndexChanged; + var layers = AreaHelper.GetAllPolygonLayers(_map).ToList(); + cmbActiveLayer.DisplayMember = "LegendText"; + cmbActiveLayer.DataSource = layers; + + var selectedLayer = AreaHelper.GetAllSelectedPolygonLayers(_map).FirstOrDefault(); + cmbActiveLayer.SelectedItem = selectedLayer; + cmbActiveLayer.SelectedIndexChanged += cmbActiveLayer_SelectedIndexChanged; + cmbActiveLayer_SelectedIndexChanged(cmbActiveLayer, EventArgs.Empty); + } + + void cmbActiveLayer_SelectedIndexChanged(object sender, EventArgs e) + { + var selectedLayer = cmbActiveLayer.SelectedItem as IMapPolygonLayer; + if (selectedLayer == null) + { + cmbField.DataSource = null; + return; + } + + // Select layer in the map + foreach (IMapPolygonLayer layer in cmbActiveLayer.Items) + layer.IsSelected = layer == selectedLayer; + _map.Legend.RefreshNodes(); + + // Update fields + cmbField.SelectedIndexChanged -= cmbField_SelectedIndexChanged; + var dataColumns = new DataColumn[selectedLayer.DataSet.DataTable.Columns.Count]; + selectedLayer.DataSet.DataTable.Columns.CopyTo(dataColumns, 0); + cmbField.DisplayMember = "ColumnName"; + cmbField.DataSource = dataColumns; + cmbField.SelectedIndexChanged += cmbField_SelectedIndexChanged; + cmbField_SelectedIndexChanged(cmbField, EventArgs.Empty); + } + + void cmbField_SelectedIndexChanged(object sender, EventArgs e) + { + var dataColumn = cmbField.SelectedItem as DataColumn; + if (dataColumn == null) + { + //lbValues.DataSource = null; + return; + } + + var selectedLayer = cmbActiveLayer.SelectedItem as IMapPolygonLayer; + if (selectedLayer == null) return; + + var uniqueValues = new SortedSet(); + foreach(DataRow row in selectedLayer.DataSet.DataTable.Rows) + uniqueValues.Add(row[dataColumn.ColumnName].ToString()); + + //lbValues.SuspendLayout(); + //lbValues.DataSource = uniqueValues.ToList(); + //lbValues.ResumeLayout(); + cmbValues.DataSource = uniqueValues.ToList(); + + if (!selectedLayer.IsVisible) + selectedLayer.IsVisible = true; + + _changesApplied = false; + } + + //private void teFirstLetters_TextChanged(object sender, EventArgs e) + //{ + // if (lbValues.Items.Count == 0) return; + + // var text = teFirstLetters.Text; + // for (int i = 0; i < lbValues.Items.Count; i++) + // { + // var curItem = lbValues.Items[i].ToString(); + // var selected = string.IsNullOrEmpty(text) + // ? (text == curItem) + // : curItem.StartsWith(text, StringComparison.InvariantCultureIgnoreCase); + // lbValues.SetSelected(i, selected); + + // } + //} + + private void SelectShapesInTheMap() + { + if (_changesApplied) return; + + var selectedLayer = cmbActiveLayer.SelectedItem as IMapPolygonLayer; + if (selectedLayer == null) return; + + + + var dataColumn = cmbField.SelectedItem as DataColumn; + if (dataColumn == null) return; + + //if (cmbValues.SelectedItem != null) + //{ + // selectedLayer.UnSelectAll(); + // _map.Refresh(); + // return; + //} + + //var selectedValues = new List(lbValues.SelectedItems.Count); + //selectedValues.AddRange(from object item in lbValues.SelectedItems select item.ToString()); + + ////selecting area by attribute + //_map.ClearSelection(); + string selectedColumn = cmbField.Text; + //foreach(string selectedVal in selectedValues) + //{ + // string filterEx = string.Format("[{0}] = '{1}'",selectedColumn, selectedVal); + // selectedLayer.SelectByAttribute(filterEx,ModifySelectionMode.Append); + //} + + var selectedValue = cmbValues.SelectedItem.ToString(); + string filterEx = string.Format("[{0}] = '{1}'", selectedColumn, selectedValue); + selectedLayer.SelectByAttribute(filterEx,ModifySelectionMode.Append); + + //zoom to selection + selectedLayer.ZoomToSelectedFeatures(); + + _changesApplied = true; + //_map.Refresh(); + } + + private void btnApply_Click(object sender, EventArgs e) + { + SelectShapesInTheMap(); + } + + private void btnOK_Click(object sender, EventArgs e) + { + SelectShapesInTheMap(); + } + + #endregion + + private void lbValues_SelectedIndexChanged(object sender, EventArgs e) + { + _changesApplied = false; + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/SelectAreaByAttributeDialog.resx b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/SelectAreaByAttributeDialog.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Area/SelectAreaByAttributeDialog.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Experimental.Plugins.FacetedSearch.csproj b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Experimental.Plugins.FacetedSearch.csproj new file mode 100644 index 00000000..86386ee4 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Experimental.Plugins.FacetedSearch.csproj @@ -0,0 +1,300 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {BA38E49F-BB13-4AA3-A31F-69E16D7AA4A4} + Library + Properties + FacetedSearch3 + FacetedSearch3 + v4.0 + 512 + Client + + + true + full + false + ..\..\..\..\Binaries\Plugins\ + DEBUG;TRACE + prompt + 4 + true + + + pdbonly + true + ..\..\..\..\Binaries\Plugins\ + TRACE + prompt + 4 + + + + ..\..\..\..\Binaries\DotSpatial.Controls.dll + False + + + ..\..\..\..\Binaries\DotSpatial.Data.dll + False + + + ..\..\..\..\Binaries\DotSpatial.Extensions.dll + False + + + ..\..\..\..\Binaries\DotSpatial.Projections.dll + False + + + ..\..\..\..\Binaries\DotSpatial.Symbology.dll + False + + + ..\..\..\..\Binaries\DotSpatial.Topology.dll + False + + + + + + + + + + + + + + + + + + + Form + + + SelectAreaByAttributeDialog.cs + + + + UserControl + + + FacetedSearchControl.cs + + + + + + + + UserControl + + + SearchFacetSpecifier.cs + + + + + + + + + True + True + Reference.svcmap + + + + + + + Form + + + DateSettingsDialog.cs + + + + True + True + Resources.resx + + + True + True + Settings.settings + + + + + + + + + + SelectAreaByAttributeDialog.cs + + + FacetedSearchControl.cs + Designer + + + SearchFacetSpecifier.cs + + + DateSettingsDialog.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + + + Designer + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + + Designer + + + Designer + + + Designer + + + Designer + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WCF Proxy Generator + Reference.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Extensions/BackgroundWorkerHelper.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Extensions/BackgroundWorkerHelper.cs new file mode 100644 index 00000000..ddfdcf66 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Extensions/BackgroundWorkerHelper.cs @@ -0,0 +1,25 @@ +using System.ComponentModel; + +namespace FacetedSearch3.Extensions +{ + static class BackgroundWorkerHelper + { + internal const string OPERATION_CANCELLED = "Operation Cancelled"; + + /// + /// Checking for CancellationPending and sets OPERATION_CANCELLED result + /// + /// Instance of BackgroundWorker + /// Args to set result + public static void CheckForCancel(this BackgroundWorker worker, DoWorkEventArgs e) + { + // Check for cancel + if (worker == null || e == null) return; + if (worker.CancellationPending) + { + e.Cancel = true; + e.Result = OPERATION_CANCELLED; + } + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Extensions/EnumHelper.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Extensions/EnumHelper.cs new file mode 100644 index 00000000..94185f6a --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Extensions/EnumHelper.cs @@ -0,0 +1,19 @@ +using System; +using System.ComponentModel; + +namespace FacetedSearch3.Extensions +{ + static class EnumHelper + { + public static string Description(this Enum enumValue) + { + var descriptions = + (DescriptionAttribute[])enumValue.GetType().GetField(enumValue.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), false); + if (descriptions.Length == 0) + { + return Enum.GetName(enumValue.GetType(), enumValue); + } + return descriptions[0].Description; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/FacetedSearchPlugin.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/FacetedSearchPlugin.cs new file mode 100644 index 00000000..c7f95543 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/FacetedSearchPlugin.cs @@ -0,0 +1,746 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using DotSpatial.Data; +using DotSpatial.Projections; +using FacetedSearch3.Area; +using FacetedSearch3.Extensions; +using FacetedSearch3.Properties; +using FacetedSearch3.Searching; +using FacetedSearch3.Searching.Exceptions; +using FacetedSearch3.Settings; +using FacetedSearch3.Settings.UI; + +namespace FacetedSearch3 +{ + public class FacetedSearchPlugin: Extension + { + #region Fields + + const string kHydroFacetedSearch3 = "kHydroFacetedSearchV3"; + const string TYPE_IN_KEYWORD = "Type-in a Keyword"; + + // private SimpleActionItem rbServices; + // private SimpleActionItem rbCatalog; + private TextEntryActionItem rbStartDate; + private TextEntryActionItem rbEndDate; + // private TextEntryActionItem rbKeyword; + private SimpleActionItem rbDrawBox; + private SimpleActionItem rbSelect; + private SimpleActionItem rbAttribute; + + private FacetedSearchControl fsc; + + private RectangleDrawing _rectangleDrawing; + // private Searcher _searcher; + // private bool _isManualKeywordTextEdit = true; + + #endregion + + #region Plugin operations + + public override void Activate() + { + AddSearchRibbon(); + base.Activate(); + } + + public override void Deactivate() + { + App.HeaderControl.RemoveAll(); + App.DockManager.Remove(kHydroFacetedSearch3); + base.Deactivate(); + } + + #endregion + + #region Private methods + + private void AddSearchRibbon() + { + var head = App.HeaderControl; + + //Search ribbon tab + var root = new RootItem(kHydroFacetedSearch3, "Faceted Search"); + //setting the sort order to small positive number to display it to the right of home tab + root.SortOrder = -1; + head.Add(root); + + #region Area group + + const string grpArea = "Area"; + + //to get area select mode + App.Map.FunctionModeChanged += new EventHandler(Map_FunctionModeChanged); + App.Map.SelectionChanged += Map_SelectionChanged; + + //Draw Box + rbDrawBox = new SimpleActionItem(kHydroFacetedSearch3, "Draw Rectangle", rbDrawBox_Click); + rbDrawBox.LargeImage = Resources.Draw_Box_32; + rbDrawBox.SmallImage = Resources.Draw_Box_16; + rbDrawBox.GroupCaption = grpArea; + rbDrawBox.ToggleGroupKey = grpArea; + head.Add(rbDrawBox); + SearchSettings.Instance.AreaSettings.AreaRectangleChanged += Instance_AreaRectangleChanged; + + //Select + rbSelect = new SimpleActionItem(kHydroFacetedSearch3, "Select Polygons", rbSelect_Click); + rbSelect.ToolTipText = "Select Region"; + rbSelect.LargeImage = Resources.select_poly_32; + rbSelect.SmallImage = Resources.select_poly_16; + rbSelect.GroupCaption = grpArea; + rbSelect.ToggleGroupKey = grpArea; + head.Add(rbSelect); + SearchSettings.Instance.AreaSettings.PolygonsChanged += AreaSettings_PolygonsChanged; + + //AttributeTable + rbAttribute = new SimpleActionItem(kHydroFacetedSearch3, "Select by Attribute", rbAttribute_Click); + rbAttribute.ToolTipText = "Select by Attribute"; + rbAttribute.GroupCaption = grpArea; + rbAttribute.ToggleGroupKey = grpArea; + rbAttribute.LargeImage = Resources.select_table_32; + rbAttribute.SmallImage = Resources.select_table_16; + head.Add(rbAttribute); + + #endregion + + #region do not implement these for now - use attribute table selection instead + + ////Select Layer + //var rbSelectLayer = new DropDownActionItem("kSearch3LayerDropDown", "Layer"); + //rbSelectLayer.GroupCaption = grpArea; + //rbSelectLayer.AllowEditingText = true; + //rbSelectLayer.Items.Add("Countries"); + //rbSelectLayer.Items.Add("U.S. States"); + //rbSelectLayer.Items.Add("u.S. HUC"); + //rbSelectLayer.Width = 120; + //rbSelectLayer.RootKey = kHydroSearch3; + //head.Add(rbSelectLayer); + + ////Select Field + //var rbSelectField = new DropDownActionItem("kSearch3FieldDropDown", "Field_"); + //rbSelectField.GroupCaption = grpArea; + //rbSelectField.AllowEditingText = true; + //rbSelectField.Items.Add("Name"); + //rbSelectField.Items.Add("Population"); + //rbSelectField.Items.Add("FIPS"); + //rbSelectField.Width = 120; + ////rbSelectLayer.SelectedItem = "Countries"; + //rbSelectField.RootKey = kHydroSearch3; + //head.Add(rbSelectField); + + ////Select Value + //var rbSelectVal = new DropDownActionItem("kSearch3ValueDropDown", "Value "); + //rbSelectVal.GroupCaption = grpArea; + //rbSelectVal.AllowEditingText = true; + //rbSelectVal.Items.Add("Afghanistan"); + //rbSelectVal.Items.Add("Australia"); + //rbSelectVal.Items.Add("Austria"); + //rbSelectVal.Width = 120; + ////rbSelectLayer.SelectedItem = "Countries"; + //rbSelectVal.RootKey = kHydroSearch3; + //head.Add(rbSelectVal); + + //rbSelectLayer.SelectedItem = "Countries"; + //rbSelectField.SelectedItem = "Name"; + + #endregion + + #region Keyword Group + + // Keyword text entry + /* + const string grpKeyword = "Keyword"; + rbKeyword = new TextEntryActionItem(); + rbKeyword.PropertyChanged += rbKeyword_PropertyChanged; + rbKeyword.GroupCaption = grpKeyword; + rbKeyword.RootKey = kHydroFacetedSearch3; + rbKeyword.Width = 150; + head.Add(rbKeyword); + UpdateKeywordsCaption(); + + //Keyword more options + var rbKeyword2 = new SimpleActionItem("Keyword Selection", rbKeyword_Click); + rbKeyword2.LargeImage = Resources.keyword_32; + rbKeyword2.SmallImage = Resources.keyword_16; + rbKeyword2.GroupCaption = grpKeyword; + rbKeyword2.ToolTipText = "Show Keyword Ontology Tree"; + rbKeyword2.RootKey = kHydroFacetedSearch3; + head.Add(rbKeyword2); + */ + #endregion + + #region Dates group + + const string grpDates = "Time Range"; + rbStartDate = new TextEntryActionItem(); + rbStartDate.Caption = "Start"; + rbStartDate.GroupCaption = grpDates; + rbStartDate.RootKey = kHydroFacetedSearch3; + rbStartDate.Width = 60; + rbStartDate.PropertyChanged += rbStartDate_PropertyChanged; + head.Add(rbStartDate); + + rbEndDate = new TextEntryActionItem(); + rbEndDate.Caption = " End"; + rbEndDate.GroupCaption = grpDates; + rbEndDate.RootKey = kHydroFacetedSearch3; + rbEndDate.Width = 60; + head.Add(rbEndDate); + rbEndDate.PropertyChanged += rbEndDate_PropertyChanged; + UpdateDatesCaption(); + + var rbDate = new SimpleActionItem("Select Dates", rbDate_Click); + rbDate.GroupCaption = grpDates; + rbDate.RootKey = kHydroFacetedSearch3; + rbDate.LargeImage = Resources.select_date_v1_32; + rbDate.SmallImage = Resources.select_date_v1_16; + head.Add(rbDate); + + #endregion + + #region Web Services group + /* + const string grpServices = "Web Services"; + rbServices = new SimpleActionItem("All Services", rbServices_Click); + ChangeWebServicesIcon(); + rbServices.ToolTipText = "Select web services (All Services selected)"; + rbServices.GroupCaption = grpServices; + rbServices.RootKey = kHydroFacetedSearch3; + head.Add(rbServices); + */ + #endregion + + #region Catalog group + /* + const string grpCatalog = "Catalog"; + rbCatalog = new SimpleActionItem("HIS Central", rbCatalog_Click); + rbCatalog.LargeImage = Resources.catalog_v2_32; + rbCatalog.SmallImage = Resources.catalog_v2_32; + rbCatalog.GroupCaption = grpCatalog; + rbCatalog.RootKey = kHydroFacetedSearch3; + head.Add(rbCatalog); + UpdateCatalogCaption(); + */ + #endregion + + #region Search and download buttons + + string grpSearch = "Search"; + var rbSearch = new SimpleActionItem("Initialize Faceted Search", rbSearch_Click); + rbSearch.LargeImage = Resources.search_32; + rbSearch.SmallImage = Resources.search_16; + rbSearch.ToolTipText = "Choose facets based on selected spatial and temporal criteria"; + rbSearch.GroupCaption = grpSearch; + rbSearch.RootKey = kHydroFacetedSearch3; + head.Add(rbSearch); + + // var cBShowSpatial = new SimpleActionItem(" + + /* + var btnDownload = new SimpleActionItem("Download", rbDownload_Click); + btnDownload.RootKey = kHydroFacetedSearch3; + btnDownload.GroupCaption = grpSearch; + btnDownload.LargeImage = Resources.download_32; + btnDownload.SmallImage = Resources.download_16; + App.HeaderControl.Add(btnDownload); + */ + #endregion + + //map buttons + AddMapButtons(); + + #region Faceted Search Control + + fsc = new FacetedSearchControl(App); + App.DockManager.Add(new DotSpatial.Controls.Docking.DockablePanel(kHydroFacetedSearch3, "Faceted Search", fsc, DockStyle.Left)); + + #endregion + } + + private void AddMapButtons() + { + string kHomeRoot = kHydroFacetedSearch3; + string rpMapTools = "Map Tools"; + string kHydroMapTools = "kHydroMapToolsSearch"; + var head = App.HeaderControl; + + //Pan + var _rbPan = new SimpleActionItem(kHomeRoot, "Pan", rbPan_Click); + _rbPan.GroupCaption = rpMapTools; + _rbPan.LargeImage = Properties.Resources.pan; + _rbPan.SmallImage = Properties.Resources.pan_16; + _rbPan.ToolTipText = "Pan - Move the Map"; + _rbPan.ToggleGroupKey = kHydroMapTools; + head.Add(_rbPan); + + //ZoomIn + var _rbZoomIn = new SimpleActionItem(kHomeRoot, "Zoom In", rbZoomIn_Click); + _rbZoomIn.ToolTipText = "Zoom In"; + _rbZoomIn.GroupCaption = rpMapTools; + _rbZoomIn.LargeImage = Properties.Resources.zoom_in; + _rbZoomIn.SmallImage = Properties.Resources.zoom_in_16; + _rbZoomIn.ToggleGroupKey = kHydroMapTools; + head.Add(_rbZoomIn); + + //ZoomOut + var _rbZoomOut = new SimpleActionItem(kHomeRoot, "Zoom Out", rbZoomOut_Click); + _rbZoomOut.ToolTipText = "Zoom Out"; + _rbZoomOut.GroupCaption = rpMapTools; + _rbZoomOut.LargeImage = Properties.Resources.zoom_out; + _rbZoomOut.SmallImage = Properties.Resources.zoom_out_16; + _rbZoomOut.ToggleGroupKey = kHydroMapTools; + head.Add(_rbZoomOut); + + //ZoomToFullExtent + var _rbMaxExtents = new SimpleActionItem(kHomeRoot, "MaxExtents", rbFullExtent_Click); + _rbMaxExtents.ToolTipText = "Maximum Extents"; + _rbMaxExtents.GroupCaption = rpMapTools; + _rbMaxExtents.LargeImage = Properties.Resources.full_extent; + _rbMaxExtents.SmallImage = Properties.Resources.full_extent_16; + head.Add(_rbMaxExtents); + + + + + ////ZoomToPrevious + //_rbZoomToPrevious = new SimpleActionItem(kHomeRoot, "Previous", rbZoomToPrevious_Click); + //_rbZoomToPrevious.ToolTipText = "Go To Previous Map Extent"; + //_rbZoomToPrevious.GroupCaption = rpMapTools; + //_rbZoomToPrevious.LargeImage = Properties.Resources.zoom_to_previous; + //_rbZoomToPrevious.SmallImage = Properties.Resources.full_extent_16; + //applicationManager1.HeaderControl.Add(_rbZoomToPrevious); + + //if (_previousExtents.Count == 0) + // _rbZoomToPrevious.Enabled = false; + + ////ZoomToNext + //_rbZoomToNext = new SimpleActionItem(kHomeRoot, "Next", rbZoomToNext_Click); + //_rbZoomToNext.ToolTipText = "Go To Next Map Extent"; + //_rbZoomToNext.GroupCaption = rpMapTools; + //_rbZoomToNext.LargeImage = Properties.Resources.zoom_to_next; + //_rbZoomToNext.SmallImage = Properties.Resources.zoom_to_next_16; + //applicationManager1.HeaderControl.Add(_rbZoomToNext); + + //if ((_mCurrentExtents < _previousExtents.Count - 1) != true) + // _rbZoomToNext.Enabled = false; + + //_rbZoomToNext.Click += new EventHandler(rbZoomToNext_Click); + + ////Separator + //var mapTools = new SeparatorItem(); + //mapTools.GroupCaption = rpMapTools; + //mapTools.RootKey = kHomeRoot; + //head.Add(mapTools); + + ////Add + //_rbAdd = new SimpleActionItem(kHomeRoot, "Add", rbAdd_Click); + //_rbAdd.ToolTipText = "Add Layer To The Map"; + //_rbAdd.GroupCaption = rpMapTools; + //_rbAdd.LargeImage = Properties.Resources.add; + //_rbAdd.SmallImage = Properties.Resources.add_16; + //applicationManager1.HeaderControl.Add(_rbAdd); + + ////Identifier + //_rbIdentifier = new SimpleActionItem(kHomeRoot, "Identify", rbIdentifier_Click); + //_rbIdentifier.ToolTipText = "Identify"; + //_rbIdentifier.SmallImage = Properties.Resources.identifier_16; + //_rbIdentifier.GroupCaption = rpMapTools; + //_rbIdentifier.LargeImage = Properties.Resources.identifier; + //_rbIdentifier.ToggleGroupKey = kHydroMapTools; + //applicationManager1.HeaderControl.Add(_rbIdentifier); + + + + ////AttributeTable + //var _rbAttribute = new SimpleActionItem(kHomeRoot, "Attribute", rbAttribute_Click); + //_rbAttribute.ToolTipText = "Attribute Table"; + //_rbAttribute.GroupCaption = rpMapTools; + //_rbAttribute.LargeImage = Properties.Resources.attribute_table; + //_rbAttribute.SmallImage = Properties.Resources.attribute_table_16; + //head.Add(_rbAttribute); + } + + void rbPan_Click(object sender, EventArgs e) { } + void rbZoomIn_Click(object sender, EventArgs e) { } + void rbZoomOut_Click(object sender, EventArgs e) { } + void rbFullExtent_Click(object sender, EventArgs e) { } + void rbDownload_Click(object sender, EventArgs e) { } + + #region Search + + void rbSearch_Click(object sender, EventArgs e) + { + //there must be at least one layer in the map + if (App.Map.Layers.Count == 0) + { + MessageBox.Show("Please add at least one layer to the map."); + return; + } + + //reproject the area parameter to wgs84 and then run search. + if (SearchSettings.Instance.AreaSettings.Polygons != null) + { + Extent extentInWgs84 = AreaHelper.ReprojectExtentToWGS84(SearchSettings.Instance.AreaSettings.Polygons.Extent, App.Map.Projection); + fsc.SetSearchParameters(extentInWgs84, SearchSettings.Instance.DateSettings.StartDate, SearchSettings.Instance.DateSettings.EndDate); + fsc.InitializeFacetedSearch(); + } + else if (SearchSettings.Instance.AreaSettings.AreaRectangle != null) + { + Extent areaRectangleExtent = new Extent(SearchSettings.Instance.AreaSettings.AreaRectangle.XMin, SearchSettings.Instance.AreaSettings.AreaRectangle.YMin, SearchSettings.Instance.AreaSettings.AreaRectangle.XMax, SearchSettings.Instance.AreaSettings.AreaRectangle.YMax); + Extent areaRectangelExtentInWgs84 = AreaHelper.ReprojectExtentToWGS84(areaRectangleExtent, App.Map.Projection); + + fsc.SetSearchParameters(areaRectangelExtentInWgs84, SearchSettings.Instance.DateSettings.StartDate, SearchSettings.Instance.DateSettings.EndDate); + fsc.InitializeFacetedSearch(); + } + else + { + MessageBox.Show("Please specify spatial and temporal constraints prior to initializing faceted search."); + } + } + + #endregion + + #region Area group + + void Map_FunctionModeChanged(object sender, EventArgs e) + { + if (App.Map.FunctionMode == FunctionMode.Select && CurrentAreaSelectMode != AreaSelectMode.DrawBox) + { + CurrentAreaSelectMode = AreaSelectMode.SelectPolygons; + rbSelect.Toggle(); + } + } + + private AreaSelectMode CurrentAreaSelectMode + { + get; + set; + } + + private enum AreaSelectMode + { + None, + DrawBox, + SelectPolygons, + SelectAttribute + } + + void Instance_AreaRectangleChanged(object sender, EventArgs e) + { + var rectangle = SearchSettings.Instance.AreaSettings.AreaRectangle; + rbDrawBox.ToolTipText = rectangle != null ? rectangle.ToString() : "Draw Box"; + } + + void rbDrawBox_Click(object sender, EventArgs e) + { + CurrentAreaSelectMode = AreaSelectMode.DrawBox; + + DeactivateSelectAreaByPolygon(); + + if (_rectangleDrawing == null) + { + _rectangleDrawing = new RectangleDrawing((Map)App.Map); + _rectangleDrawing.RectangleCreated += rectangleDrawing_RectangleCreated; + _rectangleDrawing.Deactivated += _rectangleDrawing_Deactivated; + } + + _rectangleDrawing.Activate(); + } + + void _rectangleDrawing_Deactivated(object sender, EventArgs e) + { + if (_isDeactivatingDrawBox) return; + rbSelect_Click(this, EventArgs.Empty); + } + + void rectangleDrawing_RectangleCreated(object sender, EventArgs e) + { + if (_rectangleDrawing == null) return; + + var xMin = _rectangleDrawing.RectangleExtent.MinX; + var yMin = _rectangleDrawing.RectangleExtent.MinY; + var xMax = _rectangleDrawing.RectangleExtent.MaxX; + var yMax = _rectangleDrawing.RectangleExtent.MaxY; + + SearchSettings.Instance.AreaSettings.SetAreaRectangle(new Box(xMin, xMax, yMin, yMax), App.Map.Projection); + } + + void AreaSettings_PolygonsChanged(object sender, EventArgs e) + { + var fsPolygons = SearchSettings.Instance.AreaSettings.Polygons; + var caption = "Select Polygons"; + if (fsPolygons != null && fsPolygons.Features.Count > 0) + { + int numPolygons = fsPolygons.Features.Count; + caption = numPolygons > 1 + ? String.Format("{0} polygons selected", fsPolygons.Features.Count) + : "1 polygon selected"; + } + + rbSelect.Caption = caption; + rbSelect.ToolTipText = caption; + } + + void rbSelect_Click(object sender, EventArgs e) + { + CurrentAreaSelectMode = AreaSelectMode.SelectPolygons; + + DeactivateDrawBox(); + + App.Map.FunctionMode = FunctionMode.Select; + + string isWorldTemplate = App.SerializationManager.GetCustomSetting("world_template", "false"); + AreaHelper.SelectFirstVisiblePolygonLayer((Map)App.Map, Convert.ToBoolean(isWorldTemplate)); + //App.Map.MapFrame.IsSelected = true; + } + + private void DeactivateSelectAreaByPolygon() + { + SearchSettings.Instance.AreaSettings.Polygons = null; + } + + void Map_SelectionChanged(object sender, EventArgs e) + { + if (CurrentAreaSelectMode == AreaSelectMode.SelectPolygons || + CurrentAreaSelectMode == AreaSelectMode.SelectAttribute) + { + var polygonLayer = AreaHelper.GetAllSelectedPolygonLayers((Map)App.Map).FirstOrDefault(); + if (polygonLayer == null) + { + //special case: if the map layers or the group is selected + if (App.Map.MapFrame.IsSelected) + { + IEnumerable polygonLayers = AreaHelper.GetAllPolygonLayers((Map)App.Map).Reverse(); + foreach (IMapPolygonLayer polyLayer in polygonLayers) + { + if (polyLayer.IsVisible && polyLayer.Selection.Count > 0) + { + var polyFs2 = new FeatureSet(DotSpatial.Topology.FeatureType.Polygon); + foreach (var f in polyLayer.Selection.ToFeatureList()) + { + polyFs2.Features.Add(f); + } + polyFs2.Projection = App.Map.Projection; + SearchSettings.Instance.AreaSettings.Polygons = polyFs2; + return; + } + + } + + } + return; + } + + var polyFs = new FeatureSet(DotSpatial.Topology.FeatureType.Polygon); + foreach (var f in polygonLayer.Selection.ToFeatureList()) + { + polyFs.Features.Add(f); + } + polyFs.Projection = App.Map.Projection; + SearchSettings.Instance.AreaSettings.Polygons = polyFs; + } + } + + private bool _isDeactivatingDrawBox; + private void DeactivateDrawBox() + { + if (_rectangleDrawing == null) return; + + _isDeactivatingDrawBox = true; + _rectangleDrawing.Deactivate(); + SearchSettings.Instance.AreaSettings.SetAreaRectangle(null, null); + _isDeactivatingDrawBox = false; + } + + void rbAttribute_Click(object sender, EventArgs e) + { + CurrentAreaSelectMode = AreaSelectMode.SelectAttribute; + + DeactivateDrawBox(); + DeactivateSelectAreaByPolygon(); + + AreaHelper.SelectFirstVisiblePolygonLayer((Map)App.Map, false); + SelectAreaByAttributeDialog.ShowDialog((Map)App.Map); + Map_SelectionChanged(this, EventArgs.Empty); + } + + #endregion + + #region Keywords + /* + void rbKeyword_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + if (!_isManualKeywordTextEdit) return; + if (e.PropertyName != "Text") return; + + //todo: implement tooltip with keyword mathcing + rbKeyword.ToolTipText = "Matches...."; + } + + private void UpdateKeywordsCaption() + { + var keywords = SearchSettings.Instance.KeywordsSettings.SelectedKeywords.ToList(); + var sbKeywords = new StringBuilder(); + const string separator = "; "; + foreach(var key in keywords) + { + sbKeywords.Append(key + separator); + } + // Remove last separator + if (sbKeywords.Length > 0) + { + sbKeywords.Remove(sbKeywords.Length - separator.Length, separator.Length); + } + + _isManualKeywordTextEdit = false; + rbKeyword.Text = sbKeywords.Length > 0 ? sbKeywords.ToString() : TYPE_IN_KEYWORD; + _isManualKeywordTextEdit = true; + rbKeyword.ToolTipText = rbKeyword.Text; + } + + void rbKeyword_Click(object Sender, EventArgs e) + { + if (KeywordsDialog.ShowDialog(SearchSettings.Instance.KeywordsSettings) == DialogResult.OK) + { + UpdateKeywordsCaption(); + } + } + */ + + #endregion + + #region WebServices + /* + void rbServices_Click(object Sender, EventArgs e) + { + if (WebServicesDialog.ShowDialog(SearchSettings.Instance.WebServicesSettings) == DialogResult.OK) + { + UpdateWebServicesCaption(); + } + } + + private void UpdateWebServicesCaption() + { + var webservicesSettings = SearchSettings.Instance.WebServicesSettings; + var checkedCount = webservicesSettings.CheckedCount; + var totalCount = webservicesSettings.TotalCount; + + string caption; + string hint; + WebServiceNode webServiceNode = null; + if (checkedCount == totalCount) + { + caption = "All services"; + hint = caption; + }else if (checkedCount == 1) + { + // Get single checked item + var items = webservicesSettings.WebServices.Where((w) => w.Checked).ToList(); + Debug.Assert(items.Count == 1); + webServiceNode = items[0]; + caption = items[0].Title; + hint = caption; + } + else + { + caption = string.Format("{0} services selected", checkedCount); + hint = string.Format("{0} services", checkedCount); + } + + // rbServices.Caption = caption; + // rbServices.ToolTipText = string.Format("Select web services ({0} selected)", hint); + ChangeWebServicesIcon(webServiceNode); + } + + private void ChangeWebServicesIcon(WebServiceNode webServiceNode = null) + { + if (webServiceNode == null || + string.IsNullOrEmpty(webServiceNode.ServiceCode)) + { + // rbServices.LargeImage = Resources.web_services_v1_32; + // rbServices.SmallImage = Resources.web_services_v1_16; + return; + } + + try + { + var imageHelper = new ServiceIconHelper(SearchSettings.Instance.CatalogSettings.HISCentralUrl); + var image = imageHelper.GetImageForService(webServiceNode.ServiceCode); + // rbServices.LargeImage = rbServices.SmallImage = image; + } + catch (Exception ex) + { + MessageBox.Show("Unable to change icon." + Environment.NewLine + + "Error: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + */ + #endregion + + #region Dates + + private void UpdateDatesCaption() + { + rbStartDate.Text = SearchSettings.Instance.DateSettings.StartDate.ToShortDateString(); + rbEndDate.Text = SearchSettings.Instance.DateSettings.EndDate.ToShortDateString(); + } + + void rbDate_Click(object Sender, EventArgs e) + { + if (DateSettingsDialog.ShowDialog(SearchSettings.Instance.DateSettings) == DialogResult.OK) + { + UpdateDatesCaption(); + } + } + + void rbEndDate_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + if (e.PropertyName != "Text") return; + + DateTime result; + if (DateTime.TryParse(rbEndDate.Text, out result)) + SearchSettings.Instance.DateSettings.EndDate = result; + } + + void rbStartDate_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + if (e.PropertyName != "Text") return; + + DateTime result; + if (DateTime.TryParse(rbStartDate.Text, out result)) + SearchSettings.Instance.DateSettings.StartDate = result; + } + + #endregion + + #region Catalog + /* + void rbCatalog_Click(object Sender, EventArgs e) + { + if (SearchCatalogSettingsDialog.ShowDialog(SearchSettings.Instance.CatalogSettings, + SearchSettings.Instance.WebServicesSettings, + SearchSettings.Instance.KeywordsSettings) == DialogResult.OK) + { + UpdateCatalogCaption(); + UpdateWebServicesCaption(); + UpdateKeywordsCaption(); + } + } + + private void UpdateCatalogCaption() + { + // rbCatalog.Caption = SearchSettings.Instance.CatalogSettings.TypeOfCatalog.Description(); + } + */ + #endregion + + #endregion + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Keywords/DbKeywordsList.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Keywords/DbKeywordsList.cs new file mode 100644 index 00000000..123922a0 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Keywords/DbKeywordsList.cs @@ -0,0 +1,32 @@ +using System.Collections.Generic; +using System.Linq; +using FacetedSearch3.Searching; +using FacetedSearch3.Settings; + +namespace FacetedSearch3.Keywords +{ + class DbKeywordsList : IKeywordsList + { + public void GetKeywordsAndOntology(out IList keywords, out OntologyTree ontoloyTree) + { + // Keywords + var searcher = new MetadataCacheSearcher(); + var keywordsList = searcher.GetKeywords(); + keywordsList.Add("Hydrosphere"); + var sortedKeywords = new SortedSet(keywordsList); + + // Ontology tree + var tree = new OntologyTree(); + var parentNode = new OntologyNode("Hydrosphere"); + foreach (var keyword in keywordsList.Where(keyword => keyword != "Hydrosphere")) + { + parentNode.Nodes.Add(new OntologyNode(keyword)); + } + tree.Nodes.Add(parentNode); + + //------ + keywords = sortedKeywords.ToList(); + ontoloyTree = tree; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Keywords/HdSearchOntologyHelper.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Keywords/HdSearchOntologyHelper.cs new file mode 100644 index 00000000..2b212356 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Keywords/HdSearchOntologyHelper.cs @@ -0,0 +1,305 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Xml; + +namespace FacetedSearch3.Keywords +{ + public class HdSearchOntologyHelper + { + //todo: Copied from Search2. Need to be refactored. + + private static readonly string _ontologyFilename = Properties.Settings.Default.OntologyFilename; + private static readonly string _ontologySynonymsFilename = Properties.Settings.Default.SynonymsFilename; + + public static XmlDocument ReadOntologyXmlFile() + { + return ReadXmlFile(_ontologyFilename); + } + public static XmlDocument ReadOntologyXmlFile(string filename) + { + return ReadXmlFile(filename); + } + public static XmlDocument ReadOntologySymbologyXmlFile() + { + return ReadXmlFile(_ontologySynonymsFilename); + } + public static XmlDocument ReadOntologySymbologyXmlFile(string filename) + { + return ReadXmlFile(filename); + } + private static XmlDocument ReadXmlFile(string filename) + { + XmlDocument tmpxmldoc = new XmlDocument(); + string assemblyFolder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); + tmpxmldoc.Load(Path.Combine(assemblyFolder, filename)); + return tmpxmldoc; + } + + #region Ontology Utilities + /* for refatoring + * we need a set of test cases + * top level terms that should return empty string + * couple of leaf nodes, should be return the same + * terms that are under, and only the top level should be retained + * disjount terms, that should be returned + * disjoint terms with a term or two under + * + * Note this is a good method to test (Tim good job). + * We could make a small sample ontology xml file to represent a subset of + * ontology and make a very small set of controlled use cases + * */ + /// + /// Modifies the input keyword list by removing redundant or otherwise unnecessary items for efficient searching. + /// + /// List of input keywords to refine. + /// XML of the CUAHSI hydrologic ontology. + public void RefineKeywordList(List KeywordList, XmlDocument OntologyXml) + { + // Refactoring. This is the entry point + // If searching 1st tier keywords, clear the list. + List tier1Keywords = GetKeywordsAtTier(1, OntologyXml); + foreach (string tier1keyword in tier1Keywords) + { + if (KeywordList.Contains(tier1keyword) == true) + { + KeywordList.Clear(); + return; + } + } + + // Remove repeated keywords. + List tmpList = KeywordList.Distinct().ToList(); + if (tmpList.Count != KeywordList.Count) + { + KeywordList.Clear(); + KeywordList.AddRange(tmpList); + } + + // Remove keywords that don't have a match in the ontology. + RemoveUnmatchedKeywords(KeywordList, OntologyXml); + + // Remove keywords if their ancestors are also in the list. + RemoveRedundantChildKeywords(KeywordList, OntologyXml); + + // Replace 2nd tier keywords with their 3rd tier child keywords. + // 2nd tier keywords cannot be searched at HIS Central. + List tier2Keywords = GetKeywordsAtTier(2, OntologyXml); + foreach (string tier2keyword in tier2Keywords) + { + if (KeywordList.Contains(tier2keyword) == true) + { + // Remove 2nd tier keyword + RemoveAllFromList(KeywordList, tier2keyword); + + // Add 3rd tier keywords that are children of the removed 2nd tier keyword. + List tier3Keywords = GetChildKeywords(tier2keyword, OntologyXml); + foreach (string tier3keyword in tier3Keywords) + { + if (KeywordList.Contains(tier3keyword) == false) + { + KeywordList.Add(tier3keyword); + } + } + } + } + } + + /// + /// Gets all child keywords for the given keyword from the ontology XML. + /// + /// The keyword for which child keywords are sought. + /// XML of the CUAHSI hydrologic ontology. + /// List of child keywords for the given keyword from the ontology XML. + private List GetChildKeywords(string Keyword, XmlDocument OntologyXml) + { + // Create a namespace manager to enable XPath searching. Otherwise, no results are returned if a namespace is present. + // This works even if no namespace is present. + XmlNamespaceManager nsmgr = new XmlNamespaceManager(OntologyXml.NameTable); + nsmgr.AddNamespace("x", OntologyXml.DocumentElement.NamespaceURI); + + // Create an XPath expression to find all child keywords of the given keyword. + string xpathExpression = "//x:OntologyNode[x:keyword='" + Keyword + "']/x:childNodes/x:OntologyNode/x:keyword"; + + // Select all nodes that match the XPath expression. + XmlNodeList keywordNodes = OntologyXml.SelectNodes(xpathExpression, nsmgr); + + // Return a list of the parent keywords. + return NodeListToStringList(keywordNodes); + } + + /// + /// Gets keywords at a given tier within the hierarchical CUAHSI hydrologic ontology. + /// + /// The tier for which keywords are sought. The highlest level is tier 1, the next level is tier 2, and so on. + /// XML of the CUAHSI hydrologic ontology. + /// List of keywords at the given tier in the ontology XML. + private List GetKeywordsAtTier(int Tier, XmlDocument OntologyXml) + { + // Validate inputs. + if (Tier < 1) + { + throw new ArgumentOutOfRangeException("Tier", "Tier must be greater than or equal to 1"); + } + + // Create a namespace manager to enable XPath searching. Otherwise, no results are returned if a namespace is present. + // This works even if no namespace is present. + XmlNamespaceManager nsmgr = new XmlNamespaceManager(OntologyXml.NameTable); + nsmgr.AddNamespace("x", OntologyXml.DocumentElement.NamespaceURI); + + // Create an XPath expression to find all keywords at the given tier. + StringBuilder expressionBuilder = new StringBuilder(Tier * 25); + for (int i = 2; i <= Tier; i++) + { + expressionBuilder.Append("/x:OntologyNode/x:childNodes"); + } + expressionBuilder.Append("/x:OntologyNode/x:keyword"); + string xpathExpression = expressionBuilder.ToString(); + + // Select all nodes that match the XPath expression. + XmlNodeList keywordNodes = OntologyXml.SelectNodes(xpathExpression, nsmgr); + + // Return a list of the keywords. + return NodeListToStringList(keywordNodes); + } + + /// + /// Gets all ancestor keywords (parent, grandparent, etc.) for the given keyword from the ontology XML. + /// + /// The keyword for which ancestor keywords are sought. + /// XML of the CUAHSI hydrologic ontology. + /// List of ancestor keywords for the given keyword from the ontology XML. + private List GetAncestorKeywords(string Keyword, XmlDocument OntologyXml) + { + // Create a namespace manager to enable XPath searching. Otherwise, no results are returned if a namespace is present. + // This works even if no namespace is present. + XmlNamespaceManager nsmgr = new XmlNamespaceManager(OntologyXml.NameTable); + nsmgr.AddNamespace("x", OntologyXml.DocumentElement.NamespaceURI); + + // Create an XPath expression to find all parent keywords of the given keyword. + string xpathExpression = "//x:OntologyNode[x:keyword='" + Keyword + "']/ancestor::x:OntologyNode/x:keyword"; + + // Select all nodes that match the XPath expression. + XmlNodeList keywordNodes = OntologyXml.SelectNodes(xpathExpression, nsmgr); + + // Return a list of the keywords. + return NodeListToStringList(keywordNodes); + } + + /// + /// Gets keyword nodes from the CUAHSI hydrologic ontology XML that match the given keyword. + /// + /// The keyword for which keyword nodes are sought. + /// XML of the CUAHSI hydrologic ontology. + /// Keyword nodes from the CUAHSI hydrologic ontology XML that match the given keyword. + private XmlNodeList GetKeywordNodes(string Keyword, XmlDocument OntologyXml) + { + // Create a namespace manager to enable XPath searching. Otherwise, no results are returned if a namespace is present. + // This works even if no namespace is present. + XmlNamespaceManager nsmgr = new XmlNamespaceManager(OntologyXml.NameTable); + nsmgr.AddNamespace("x", OntologyXml.DocumentElement.NamespaceURI); + + // Create an XPath expression to find the given keyword. + string xpathExpression = "//x:keyword[. = '" + Keyword + "']"; + + // Select all nodes that match the XPath expression. + return OntologyXml.SelectNodes(xpathExpression, nsmgr); + } + + /// + /// Modifies the input list by removing items whose ancestors from the Ontology XML also appear in the list. + /// + /// List of keywords for which redundant child keywords should be removed. + /// XML of the CUAHSI hydrologic ontology. + private void RemoveRedundantChildKeywords(List KeywordList, XmlDocument OntologyXml) + { + // Find parents for each keyword. If parent also exists in the keyword list, mark the keyword for removal. + List keywordsToRemove = new List(); + foreach (string keyword in KeywordList) + { + List parentKeywords = GetAncestorKeywords(keyword, OntologyXml); + if (parentKeywords.Intersect(KeywordList).Count() > 0) + { + keywordsToRemove.Add(keyword); + } + } + + // Remove unnecessary keywords. + foreach (string keywordToRemove in keywordsToRemove) + { + RemoveAllFromList(KeywordList, keywordToRemove); + } + } + + /// + /// Modifies the input list by removing keywords that do not appear in the CUAHSI hydrologic Ontology. + /// + /// List of keywords for which redundant child keywords should be removed. + /// XML of the CUAHSI hydrologic ontology. + private void RemoveUnmatchedKeywords(List KeywordList, XmlDocument OntologyXml) + { + // Find keywords with no match in the ontology. + List keywordsToRemove = new List(); + foreach (string keyword in KeywordList) + { + XmlNodeList matchingNodes = GetKeywordNodes(keyword, OntologyXml); + if (matchingNodes.Count == 0) + { + keywordsToRemove.Add(keyword); + } + } + + // Remove unmatched keywords. + foreach (string keywordToRemove in keywordsToRemove) + { + RemoveAllFromList(KeywordList, keywordToRemove); + } + } + + /// + /// Removes all occurrences of a specific string from the System.Collections.Generic.List. + /// + /// System.Collections.Generic.List of strings + /// The item to remove from the list + private void RemoveAllFromList(List StringList, string Item) + { + while (StringList.Contains(Item)) + { + StringList.Remove(Item); + } + } + + /// + /// Creates a list of InnerText values from the input XML node list. + /// + /// XML node list whose InnerText values will be added to a string list. + /// String list of InnerText values from the input XML list. + private List NodeListToStringList(XmlNodeList NodeList) + { + List stringList = new List(); + + foreach (XmlNode node in NodeList) + { + stringList.Add(node.InnerText); + } + + return stringList; + } + + /// + /// Gets the full path to the XML file storing the CUAHSI hydrologic ontology. + /// + /// The full path to the XML file storing the CUAHSI hydrologic ontology. + private string GetOntologyFilePath() + { + // note for refactoring. load file on creation of object + string hydroDesktopFolder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); + string ontologyFilePath = Path.Combine(hydroDesktopFolder, _ontologyFilename); + return ontologyFilePath; + } + + #endregion + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Keywords/HisCentalKeywordsList.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Keywords/HisCentalKeywordsList.cs new file mode 100644 index 00000000..e97b673b --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Keywords/HisCentalKeywordsList.cs @@ -0,0 +1,77 @@ +using System.Collections.Generic; +using System.Linq; +using System.Xml; +using FacetedSearch3.Settings; + +namespace FacetedSearch3.Keywords +{ + class HisCentalKeywordsList : IKeywordsList + { + private SortedSet keywordsList; + + public void GetKeywordsAndOntology(out IList keywords, out OntologyTree ontoloyTree) + { + // Keywords + var tmpsyndoc = HdSearchOntologyHelper.ReadOntologySymbologyXmlFile(); + var nList = tmpsyndoc.GetElementsByTagName("SearchableKeyword"); + keywordsList = new SortedSet(); + foreach (var elem in nList.Cast().Where(elem => !keywordsList.Contains(elem.InnerText))) + { + keywordsList.Add(elem.InnerText); + } + + // Ontology tree + var tree = new OntologyTree(); + var tmpxmldoc = HdSearchOntologyHelper.ReadOntologyXmlFile(); + FillTree(tmpxmldoc.DocumentElement, tree.Nodes); + + //------ + ontoloyTree = tree; + keywords = keywordsList.ToList(); + } + + private void FillTree(XmlNode node, ICollection parentnode) + { + // End recursion if the node is a text type + if (node == null || node.NodeType == XmlNodeType.Text || node.NodeType == XmlNodeType.CDATA) + return; + + var tmptreenodecollection = AddNodeToTree(node, parentnode); + + // Add all the children of the current node to the treeview + foreach (XmlNode tmpchildnode in node.ChildNodes) + { + if (tmpchildnode.Name == "childNodes") + { + foreach (XmlNode tmpchildnode2 in tmpchildnode.ChildNodes) + { + FillTree(tmpchildnode2, tmptreenodecollection); + } + } + } + } + private ICollection AddNodeToTree(XmlNode node, ICollection parentnode) + { + var newchildnode = CreateTreeNodeFromXmlNode(node); + if (parentnode != null) parentnode.Add(newchildnode); + return newchildnode.Nodes; + } + private OntologyNode CreateTreeNodeFromXmlNode(XmlNode node) + { + OntologyNode tmptreenode = null; + if (node.HasChildNodes) + { + if (node.FirstChild.InnerText != string.Empty) + { + tmptreenode = new OntologyNode(node.FirstChild.InnerText); + + if (!keywordsList.Contains(node.FirstChild.InnerText)) + { + keywordsList.Add(node.FirstChild.InnerText); + } + } + } + return tmptreenode ?? (new OntologyNode()); + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Keywords/IKeywordsList.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Keywords/IKeywordsList.cs new file mode 100644 index 00000000..3b8b41d4 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Keywords/IKeywordsList.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; +using FacetedSearch3.Settings; + +namespace FacetedSearch3.Keywords +{ + interface IKeywordsList + { + void GetKeywordsAndOntology(out IList keywords, out OntologyTree ontoloyTree); + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Keywords/KeywordsList.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Keywords/KeywordsList.cs new file mode 100644 index 00000000..d63d431d --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Keywords/KeywordsList.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using FacetedSearch3.Settings; + +namespace FacetedSearch3.Keywords +{ + class KeywordsList + { + public void GetKeywordsAndOntology(out IList keywords, out OntologyTree ontoloyTree, CatalogSettings catalogSettings) + { + if (catalogSettings == null) throw new ArgumentNullException("catalogSettings"); + + IKeywordsList concreteList; + switch (catalogSettings.TypeOfCatalog) + { + case TypeOfCatalog.LocalMetadataCache: + concreteList = new DbKeywordsList(); + break; + case TypeOfCatalog.HisCentral: + concreteList = new HisCentalKeywordsList(); + break; + default: + throw new Exception("Unknown TypeOfCatalog"); + } + + concreteList.GetKeywordsAndOntology(out keywords, out ontoloyTree); + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Properties/AssemblyInfo.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..9d9d2cbf --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("FacetedSearch3")] +[assembly: AssemblyDescription("Search for water data in the USA")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CUAHSI, Tufts University")] +[assembly: AssemblyProduct("FacetedSearch3")] +[assembly: AssemblyCopyright("Copyright © CUAHSI, Tufts University 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a2be5789-cb84-403f-8498-9040ada5bc13")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Properties/Resources.Designer.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Properties/Resources.Designer.cs new file mode 100644 index 00000000..5ab8c85f --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Properties/Resources.Designer.cs @@ -0,0 +1,265 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.239 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace FacetedSearch3.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("FacetedSearch3.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap catalog_v2_32 { + get { + object obj = ResourceManager.GetObject("catalog_v2_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap download_16 { + get { + object obj = ResourceManager.GetObject("download_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap download_32 { + get { + object obj = ResourceManager.GetObject("download_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap Draw_Box_16 { + get { + object obj = ResourceManager.GetObject("Draw_Box_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap Draw_Box_32 { + get { + object obj = ResourceManager.GetObject("Draw_Box_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap full_extent { + get { + object obj = ResourceManager.GetObject("full_extent", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap full_extent_16 { + get { + object obj = ResourceManager.GetObject("full_extent_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap keyword_16 { + get { + object obj = ResourceManager.GetObject("keyword_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap keyword_32 { + get { + object obj = ResourceManager.GetObject("keyword_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap pan { + get { + object obj = ResourceManager.GetObject("pan", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap pan_16 { + get { + object obj = ResourceManager.GetObject("pan_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to Search Rectangle. + /// + internal static string RectangleLayerName { + get { + return ResourceManager.GetString("RectangleLayerName", resourceCulture); + } + } + + internal static System.Drawing.Bitmap search_16 { + get { + object obj = ResourceManager.GetObject("search_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap search_32 { + get { + object obj = ResourceManager.GetObject("search_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to "Data Sites". + /// + internal static string SearchGroupName { + get { + return ResourceManager.GetString("SearchGroupName", resourceCulture); + } + } + + internal static System.Drawing.Bitmap select_date_v1_16 { + get { + object obj = ResourceManager.GetObject("select_date_v1_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap select_date_v1_32 { + get { + object obj = ResourceManager.GetObject("select_date_v1_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap select_poly_16 { + get { + object obj = ResourceManager.GetObject("select_poly_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap select_poly_32 { + get { + object obj = ResourceManager.GetObject("select_poly_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap select_table_16 { + get { + object obj = ResourceManager.GetObject("select_table_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap select_table_32 { + get { + object obj = ResourceManager.GetObject("select_table_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap web_services_v1_16 { + get { + object obj = ResourceManager.GetObject("web_services_v1_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap web_services_v1_32 { + get { + object obj = ResourceManager.GetObject("web_services_v1_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223562997]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]]. + /// + internal static string wgs_84_esri_string { + get { + return ResourceManager.GetString("wgs_84_esri_string", resourceCulture); + } + } + + internal static System.Drawing.Bitmap zoom_in { + get { + object obj = ResourceManager.GetObject("zoom_in", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap zoom_in_16 { + get { + object obj = ResourceManager.GetObject("zoom_in_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap zoom_out { + get { + object obj = ResourceManager.GetObject("zoom_out", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap zoom_out_16 { + get { + object obj = ResourceManager.GetObject("zoom_out_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Properties/Resources.resx b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Properties/Resources.resx new file mode 100644 index 00000000..dfd1e443 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Properties/Resources.resx @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\catalog_v2_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\full_extent.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\full_extent_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\pan.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\pan_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Search Rectangle + + + ..\Resources\select_date_v1_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\select_date_v1_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\web_services_v1_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\web_services_v1_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223562997]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]] + + + ..\Resources\zoom_in.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_in_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_out.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_out_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + "Data Sites" + + + ..\Resources\download_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\download_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Draw_Box_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Draw_Box_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\keyword_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\keyword_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\select_poly_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\select_poly_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\select_table_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\select_table_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\search_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Properties/Settings.Designer.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Properties/Settings.Designer.cs new file mode 100644 index 00000000..dd9b1f4b --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Properties/Settings.Designer.cs @@ -0,0 +1,86 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.239 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace FacetedSearch3.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.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; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("HisCentral")] + public global::FacetedSearch3.Settings.TypeOfCatalog TypeOfCatalog { + get { + return ((global::FacetedSearch3.Settings.TypeOfCatalog)(this["TypeOfCatalog"])); + } + set { + this["TypeOfCatalog"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("WebServices.xml")] + public string WebServicesFileName { + get { + return ((string)(this["WebServicesFileName"])); + } + set { + this["WebServicesFileName"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Resources\\Synonyms.xml")] + public string SynonymsFilename { + get { + return ((string)(this["SynonymsFilename"])); + } + set { + this["SynonymsFilename"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Resources\\OntologyTree.xml")] + public string OntologyFilename { + get { + return ((string)(this["OntologyFilename"])); + } + set { + this["OntologyFilename"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("searchresult_{0}.shp")] + public string SearchResultNameMask { + get { + return ((string)(this["SearchResultNameMask"])); + } + set { + this["SearchResultNameMask"] = value; + } + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Properties/Settings.settings b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Properties/Settings.settings new file mode 100644 index 00000000..53f56853 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Properties/Settings.settings @@ -0,0 +1,21 @@ + + + + + + HisCentral + + + WebServices.xml + + + Resources\Synonyms.xml + + + Resources\OntologyTree.xml + + + searchresult_{0}.shp + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/Draw_Box_16.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/Draw_Box_16.png new file mode 100644 index 00000000..eabde08f Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/Draw_Box_16.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/Draw_Box_32.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/Draw_Box_32.png new file mode 100644 index 00000000..3038cb2d Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/Draw_Box_32.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/attribute_table.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/attribute_table.png new file mode 100644 index 00000000..783061e2 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/attribute_table.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/attribute_table_16.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/attribute_table_16.png new file mode 100644 index 00000000..69d2ef7b Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/attribute_table_16.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/catalog_v1.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/catalog_v1.png new file mode 100644 index 00000000..d935a116 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/catalog_v1.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/catalog_v1_32.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/catalog_v1_32.png new file mode 100644 index 00000000..69dbc1f7 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/catalog_v1_32.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/catalog_v2.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/catalog_v2.png new file mode 100644 index 00000000..a0ee25fa Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/catalog_v2.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/catalog_v2_32.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/catalog_v2_32.png new file mode 100644 index 00000000..7ed398c9 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/catalog_v2_32.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/download32.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/download32.png new file mode 100644 index 00000000..431079fa Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/download32.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/download_16.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/download_16.png new file mode 100644 index 00000000..13241695 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/download_16.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/download_32.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/download_32.png new file mode 100644 index 00000000..9170c1d9 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/download_32.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/draw_box_16_a.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/draw_box_16_a.png new file mode 100644 index 00000000..571adf05 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/draw_box_16_a.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/draw_box_32_a.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/draw_box_32_a.png new file mode 100644 index 00000000..b66c172e Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/draw_box_32_a.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/full_extent.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/full_extent.png new file mode 100644 index 00000000..0945a25c Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/full_extent.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/full_extent_16.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/full_extent_16.png new file mode 100644 index 00000000..4373d2d9 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/full_extent_16.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_16.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_16.png new file mode 100644 index 00000000..a30194b1 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_16.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_32.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_32.png new file mode 100644 index 00000000..da22eb05 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_32.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_v1.jpg b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_v1.jpg new file mode 100644 index 00000000..f61d70fd Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_v1.jpg differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_v1_32.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_v1_32.png new file mode 100644 index 00000000..3cb54dc0 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_v1_32.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_v2_16.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_v2_16.png new file mode 100644 index 00000000..9d371880 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_v2_16.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_v2_32.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_v2_32.png new file mode 100644 index 00000000..81d24a23 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/keyword_v2_32.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/pan.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/pan.png new file mode 100644 index 00000000..cac42322 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/pan.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/pan_16.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/pan_16.png new file mode 100644 index 00000000..687882a2 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/pan_16.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/search2_3.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/search2_3.png new file mode 100644 index 00000000..47e1b228 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/search2_3.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/search_32.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/search_32.png new file mode 100644 index 00000000..225cc0ec Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/search_32.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select.png new file mode 100644 index 00000000..9cd9c816 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_16.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_16.png new file mode 100644 index 00000000..31c4813b Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_16.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_date_v1.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_date_v1.png new file mode 100644 index 00000000..b74f7283 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_date_v1.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_date_v1_16.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_date_v1_16.png new file mode 100644 index 00000000..5e22f70e Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_date_v1_16.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_date_v1_32.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_date_v1_32.png new file mode 100644 index 00000000..141abcc5 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_date_v1_32.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_poly_16.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_poly_16.png new file mode 100644 index 00000000..a6c84ed0 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_poly_16.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_poly_32.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_poly_32.png new file mode 100644 index 00000000..aefe8ec7 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_poly_32.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_table_16.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_table_16.png new file mode 100644 index 00000000..a442ed2b Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_table_16.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_table_32.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_table_32.png new file mode 100644 index 00000000..5c25fadd Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/select_table_32.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/web_connected.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/web_connected.png new file mode 100644 index 00000000..278de9b7 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/web_connected.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/web_services_v1_16.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/web_services_v1_16.png new file mode 100644 index 00000000..d275edf0 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/web_services_v1_16.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/web_services_v1_32.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/web_services_v1_32.png new file mode 100644 index 00000000..7b3e2f9e Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/web_services_v1_32.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/zoom.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/zoom.png new file mode 100644 index 00000000..8581239c Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/zoom.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/zoom_in.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/zoom_in.png new file mode 100644 index 00000000..a4543876 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/zoom_in.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/zoom_in_16.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/zoom_in_16.png new file mode 100644 index 00000000..33b091d8 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/zoom_in_16.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/zoom_out.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/zoom_out.png new file mode 100644 index 00000000..a127a413 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/zoom_out.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/zoom_out_16.png b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/zoom_out_16.png new file mode 100644 index 00000000..39dec8d3 Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Resources/zoom_out_16.png differ diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Exceptions/HydrodesktopSearchException.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Exceptions/HydrodesktopSearchException.cs new file mode 100644 index 00000000..d68b35b9 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Exceptions/HydrodesktopSearchException.cs @@ -0,0 +1,16 @@ +using System; + +namespace FacetedSearch3.Searching.Exceptions +{ + public class HydrodesktopSearchException: Exception + { + public HydrodesktopSearchException():base() + { + } + public HydrodesktopSearchException(string a ): base(a) + {} + public HydrodesktopSearchException(string a, Exception ex ): base(a, ex) + {} + } + +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Exceptions/NoAreaToSearchException.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Exceptions/NoAreaToSearchException.cs new file mode 100644 index 00000000..206d1db9 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Exceptions/NoAreaToSearchException.cs @@ -0,0 +1,33 @@ +using System; +using System.Runtime.Serialization; + +namespace FacetedSearch3.Searching.Exceptions +{ + public class NoAreaToSearchException : SearchSettingsException + { + public NoAreaToSearchException() + { + + } + + public NoAreaToSearchException(Exception inner) + : base(inner) + { + } + + public NoAreaToSearchException(string message) + : base(message) + { + } + + public NoAreaToSearchException(string message, Exception inner) + : base(message, inner) + { + } + + protected NoAreaToSearchException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Exceptions/NoSelectedKeywordsException.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Exceptions/NoSelectedKeywordsException.cs new file mode 100644 index 00000000..8ab1b796 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Exceptions/NoSelectedKeywordsException.cs @@ -0,0 +1,29 @@ +using System; +using System.Runtime.Serialization; + +namespace FacetedSearch3.Searching.Exceptions +{ + public class NoSelectedKeywordsException : SearchSettingsException + { + public NoSelectedKeywordsException() + { + + } + + public NoSelectedKeywordsException(Exception inner) : base(inner) + { + } + + public NoSelectedKeywordsException(string message) : base(message) + { + } + + public NoSelectedKeywordsException(string message, Exception inner) : base(message, inner) + { + } + + protected NoSelectedKeywordsException(SerializationInfo info, StreamingContext context) : base(info, context) + { + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Exceptions/NoWebServicesException.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Exceptions/NoWebServicesException.cs new file mode 100644 index 00000000..2120c4b9 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Exceptions/NoWebServicesException.cs @@ -0,0 +1,32 @@ +using System; +using System.Runtime.Serialization; + +namespace FacetedSearch3.Searching.Exceptions +{ + public class NoWebServicesException : SearchSettingsException + { + public NoWebServicesException() + { + + } + public NoWebServicesException(Exception inner) + : base(inner) + { + } + + public NoWebServicesException(string message) + : base(message) + { + } + + public NoWebServicesException(string message, Exception inner) + : base(message, inner) + { + } + + protected NoWebServicesException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Exceptions/SearchSettingsException.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Exceptions/SearchSettingsException.cs new file mode 100644 index 00000000..cbece265 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Exceptions/SearchSettingsException.cs @@ -0,0 +1,36 @@ +using System; +using System.Runtime.Serialization; + +namespace FacetedSearch3.Searching.Exceptions +{ + public abstract class SearchSettingsException : Exception + { + protected SearchSettingsException() + { + } + + protected SearchSettingsException(Exception inner) + : this(null, inner) + { + + } + + protected SearchSettingsException(string message) + : this(message, null) + { + + } + + protected SearchSettingsException(string message, Exception inner) + : base(message, inner) + { + + } + + protected SearchSettingsException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/FacetedSearchControl.Designer.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/FacetedSearchControl.Designer.cs new file mode 100644 index 00000000..91626175 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/FacetedSearchControl.Designer.cs @@ -0,0 +1,66 @@ +namespace FacetedSearch3 +{ + /// + /// The user control added by the plug-in + /// + partial class FacetedSearchControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.FacetFlowPanel = new System.Windows.Forms.FlowLayoutPanel(); + this.SuspendLayout(); + // + // FacetFlowPanel + // + this.FacetFlowPanel.AutoScroll = true; + this.FacetFlowPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.FacetFlowPanel.Location = new System.Drawing.Point(0, 0); + this.FacetFlowPanel.Name = "FacetFlowPanel"; + this.FacetFlowPanel.Size = new System.Drawing.Size(730, 319); + this.FacetFlowPanel.TabIndex = 1; + this.FacetFlowPanel.WrapContents = false; + this.FacetFlowPanel.Resize += new System.EventHandler(this.FacetedSearchForm_Resize); + // + // FacetedSearchControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(191)))), ((int)(((byte)(219)))), ((int)(((byte)(255))))); + this.Controls.Add(this.FacetFlowPanel); + this.Name = "FacetedSearchControl"; + this.Size = new System.Drawing.Size(730, 319); + this.Resize += new System.EventHandler(this.FacetedSearchForm_Resize); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.FlowLayoutPanel FacetFlowPanel; + + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/FacetedSearchControl.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/FacetedSearchControl.cs new file mode 100644 index 00000000..1d6c9a9f --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/FacetedSearchControl.cs @@ -0,0 +1,740 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Projections; +using System.ServiceModel.Description; +using DotSpatial.Data; +using DotSpatial.Topology; +using System.ServiceModel; + +namespace FacetedSearch3 +{ + /// + /// The user control added to the main window by this plugin + /// + public partial class FacetedSearchControl : UserControl + { + public string BaseMapPath; // location of BaseMap for Map display/query + public Boolean SpatialTemporalCommitted = false; // tracks state of the form => determines whether the user is ready to use the Faceted Search features. + public IEnumerable TopLevelFacets; // contains the XML representation of the entire searchable ontology + public IEnumerable SelectedFacets; // contains a record of what facets have been selected for the existing search. Equal to summing all selections from each existing SearchFacetSpecifier object. + + public DateTime BeginDateTime; // historical boundary of search temporal constraints + public DateTime EndDateTime; // modern boundary of search temporal constraints + public Boolean IncludeSpatialResults = true; // boolean variable designating whether an additional db transaction is desired for including additional metadata properties (for now, just Lat/Long) in ontology-pruning service response. + + private AppManager App; // the AppManager extension through which this control interacts with HydroDesktop + public DotSpatial.Data.Extent SrchExt; // Extents of last spatial search + public static int ShapeFileThreshold = 25000; // Seach results layers that contain more than this number of records create a shapefile create a shapefile inside the CurrentProjectDirectory + + + private static string FacetedShapeFileName = "FacetedSearchResults.shp"; + + #region Methods + public FacetedSearchControl(AppManager a) + { + InitializeComponent(); + App = a; + ResetInterface(); + } + + /// + /// Takes spatial temporal constraints from main form + /// + /// + /// + /// + public void SetSearchParameters(Extent SearchRegion, DateTime sTime, DateTime eTime) + { + SrchExt = SearchRegion; + BeginDateTime = sTime; + EndDateTime = eTime; + } + + private FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient GetMultiFacetedHISSvcClient() + { + //the code: new FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient() required modifying app.config + //this is the information originally from app.config, now set through code. + BasicHttpBinding binding = new BasicHttpBinding(); + binding.CloseTimeout = new TimeSpan(0, 5, 0); + binding.OpenTimeout = new TimeSpan(0, 5, 0); + binding.ReceiveTimeout = new TimeSpan(0, 10, 0); + binding.SendTimeout = new TimeSpan(0, 5, 0); + int maxSize = Int32.MaxValue; // 2147483647; + binding.MaxBufferSize = maxSize; + binding.MaxBufferPoolSize = maxSize; + binding.MaxReceivedMessageSize = maxSize; + binding.ReaderQuotas.MaxStringContentLength = maxSize; + binding.ReaderQuotas.MaxArrayLength = maxSize; + binding.ReaderQuotas.MaxBytesPerRead = maxSize; + binding.ReaderQuotas.MaxNameTableCharCount = maxSize; + + EndpointAddress address = new EndpointAddress("http://cuahsi.eecs.tufts.edu/FacetedSearch/MultiFacetedHISSvc.svc"); + // LOCALTESTING EndpointAddress address = new EndpointAddress("http://abedigcuahsi-pc:80/FacetedSearch/MultiFacetedHISSvc.svc"); + + FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient cl = new CUAHSIFacetedSearch.MultiFacetedHISSvcClient(binding, address); + ConfigureCUAHSIChannelFactory(cl); + return cl; + } + + /// + /// Called on client initialization. Loads the entire set of possible ontology terms to client-side memory. All mechanisms to display "what's left" will prune this collection. + /// + public void LoadTotalFacetCollection() + { + App.ProgressHandler.Progress(String.Empty, 0, "Initializing Faceted Search ... Please Wait"); + try + { + using (FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient cl = GetMultiFacetedHISSvcClient()) + { + /*bool configed = false; + try + { + ConfigureCUAHSIChannelFactory(cl); + configed = true; + } + catch (Exception ex) + { + MessageBox.Show(string.Format("Error configuring channel factory with message {0}, inner ex: {1}", ex.Message, ex.InnerException)); + }*/ + try + { + // if (configed) + // { + cl.BeginGetOntologyElements(LoadTotalFacetCollection_Complete, cl); + // } + } + catch (Exception e) + { + MessageBox.Show(string.Format("Error refreshing ontology from metadata source with message {0}, {1}.", e.Message, e.InnerException)); + } + } + } + catch (Exception exc) + { +#if DEBUG + MessageBox.Show("Error connecting to server. Please verify you have access to the internet and try again. Message: " + exc.Message); +#else + MessageBox.Show("Error connecting to server. Please verify you have access to the internet and try again."); +#endif + } + App.ProgressHandler.Progress(String.Empty, 0, "Initializing Faceted Search - Populating the Tree View"); + } + + private void LoadTotalFacetCollection_Complete(IAsyncResult result) + { + try + { + using (FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient cl = (FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient)result.AsyncState) + { + TopLevelFacets = cl.EndGetOntologyElements(result); + } + + using (FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient cl = GetMultiFacetedHISSvcClient()) + { + this.Invoke(new MethodInvoker(delegate + { + #region Initialize form with retrieved data + if (InputsSufficientForFacetedSearch()) + { + SpatialTemporalCommitted = true; + RemoveDownStreamSearchFacetSpecifiers(0); // remove all searchfacetspecifers + ResetFacetFlowPanel(); + try + { + cl.BeginGetOntologyElementsGivenConstraints(SelectedFacets.ToArray(), BeginDateTime, EndDateTime, SrchExt.MinY, SrchExt.MaxY, SrchExt.MinX, SrchExt.MaxX, false, + InitializeFacetedSearch_Complete, cl); + } + catch (Exception e) + { +#if DEBUG + MessageBox.Show(string.Format("Error in transit layer with message {0} and inner exception {1}", e.Message, e.InnerException)); +#else + MessageBox.Show("Error in transit layer. Please try again."); +#endif + } + } + else + { + MessageBox.Show("Please select a spatial region to bound your search prior to initiating faceted search"); + } + #endregion + })); + } + } + catch (Exception e) + { + MessageBox.Show(string.Format("Error initializing total list of ontology elements with message {0}, inner ex: {1}", e.Message, e.InnerException)); + } + } + + /// + /// Sets the MaxItemsInObjectGraph behavior to permit sufficiently-large transactions for faceted search + /// + /// + private static void ConfigureCUAHSIChannelFactory(FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient cl) + { + foreach (var operation in cl.ChannelFactory.Endpoint.Contract.Operations) + { + var behavior = operation.Behaviors.Find() as DataContractSerializerOperationBehavior; + if (behavior != null) + { + behavior.MaxItemsInObjectGraph = 2147483647; + } + + } + } + + /// + /// Checks that spatial and temporal requirements for the faceted search have been met. + /// Hits the HydroDesktop.CUAHSIFacetedSearch web service to determine the global facet set available for querying. + /// Enables the FacetFlow object + /// Creates the first SearchFacetSpecifier object. + /// Stores the global facet set for the spatial-temporal constraints specified in the first SearchFacetSpecifier object. + /// Stores the global facet set in the public form-level object TopLevelFacets for go-back purposes. [CONSIDER DEPRECATING IF NOT USEFUL] + /// + public void InitializeFacetedSearch() + { + LoadTotalFacetCollection(); + } + + private void InitializeFacetedSearch_Complete(IAsyncResult result) + { + try + { + FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient cl = (FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient)result.AsyncState; + FacetedSearch3.CUAHSIFacetedSearch.OntologyEnvelope env = cl.EndGetOntologyElementsGivenConstraints(result); + IEnumerable MyRemainingFacets = new List(); + MyRemainingFacets = env.OntologyElements; + this.Invoke(new MethodInvoker(delegate + { + FacetFlowPanel.Enabled = true; + FacetFlowPanel.Controls.Add(new SearchFacetSpecifier(this, TopLevelFacets, SelectedFacets, MyRemainingFacets, FacetFlowPanel.Controls.Count)); + ResizeSearchSpecifiers(); + MakeSearchPanelVisible(); + App.ProgressHandler.Progress(String.Empty, 0, String.Empty); + })); + } + catch (Exception e) + { + MessageBox.Show(string.Format("Error in transit layer with message {0} and inner exception {1}", e.Message, e.InnerException)); + } + } + + /// + /// Makes the "Faceted Search" dock panel selected and visible + /// + private void MakeSearchPanelVisible() + { + App.DockManager.SelectPanel("kHydroFacetedSearchV3"); + } + + /// + /// Input validation to determine if conditions for faceted search have occurred. + /// Reads Map1 object to set global selected-shapes variable "SelectedShapes" + /// + /// + public Boolean InputsSufficientForFacetedSearch() + { + + return (SrchExt != null); + #region currently inactive validation => TO-DO: Update given new Plug-in interface of HydroDesktop 1.3 + /* + object areaParameter = null; + if (App.AreaSettings.Polygons != null) + { + var polyFs = settings.AreaSettings.Polygons; + string esri = Resources.wgs_84_esri_string; + var wgs84 = ProjectionInfo.FromEsriString(esri); + + //reproject the selected polygons to WGS1984 + polyFs.Reproject(wgs84); + + //the list of selected polygons passed in to the search function + var selectedPolygons = Enumerable.ToList(polyFs.Features); + + areaParameter = selectedPolygons; + } + else if (settings.AreaSettings.AreaRectangle != null) + { + areaParameter = settings.AreaSettings.AreaRectangle; + } + return true; + */ + #endregion + } + + /// + /// Clears form and search-generated objects, resets UI to prepare for search. + /// + public void ResetInterface() + { + #region Reset Map and Map-affiliated parameters + SpatialTemporalCommitted = false; + // map1.ZoomToMaxExtent(); + // map1.ClearSelection(); + SrchExt = new DotSpatial.Data.Extent(); + #endregion + + #region Reset default DateTime values + // BeginTimePicker.Value = DateTime.Parse("1/1/1911 1:00 AM"); + // EndTimePicker.Value = DateTime.Now; + #endregion + + #region Clear and Disable Faceted Search interface + ResetFacetFlowPanel(); + #endregion + } + + /// + /// Resets faceted search without resetting user-defined spatial-temporal data + /// + private void ResetFacetFlowPanel() + { + FacetFlowPanel.Controls.Clear(); + FacetFlowPanel.Enabled = false; + SelectedFacets = new List(); + } + + /// + /// Provides surface for SearchFacetSpecifiers to specify the next facet of the search, executed by spawning a new SearchFacetSpecifier. + /// Uses CUAHSI Faceted Search webservices to determine what options are available, given the user's selections. + /// Regenerates spatial-temporal options, then submits faceted search + /// + /// + public void InvokeNextButton(List AllSelectedFacets, int MyIndex) + { + SelectedFacets = AllSelectedFacets; + if (InputsSufficientForFacetedSearch()) + { + try + { + RemoveDownStreamSearchFacetSpecifiers(MyIndex + 1); + SpatialTemporalCommitted = true; + + using(FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient cl = GetMultiFacetedHISSvcClient()) + { + cl.BeginGetOntologyElementsGivenConstraints(SelectedFacets.ToArray(), BeginDateTime, EndDateTime, SrchExt.MinY, SrchExt.MaxY, SrchExt.MinX, SrchExt.MaxX, IncludeSpatialResults, InvokeNextButton_Complete, cl); + // FacetedSearch3.CUAHSIFacetedSearch.OntologyEnvelope env = cl.GetTypedOntologyElementsGivenConstraints(SelectedFacets, BeginDateTime, EndDateTime, SrchExt.MinY, SrchExt.MaxY, SrchExt.MinX, SrchExt.MaxX, IncludeSpatialResults); + } + } + catch (Exception e) + { +#if DEBUG + MessageBox.Show(string.Format("Error in transit layer with message {0} and inner exception {1}", e.Message, e.InnerException)); +#else + MessageBox.Show("Error in transit layer. Please try again."); +#endif + } + } + else + { + MessageBox.Show("Please select a spatial region to bound your search prior to initiating faceted search"); + } + } + + private void InvokeNextButton_Complete(IAsyncResult result) + { + try + { + IEnumerable MyRemainingFacets = new List(); + FacetedSearch3.CUAHSIFacetedSearch.OntologyEnvelope env = new CUAHSIFacetedSearch.OntologyEnvelope(); + using (FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient cl = (FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient)result.AsyncState) + { + env = cl.EndGetOntologyElementsGivenConstraints(result); + MyRemainingFacets = env.OntologyElements; + } + + this.Invoke(new MethodInvoker(delegate + { + if (IncludeSpatialResults == true) + { + PutReturnOnMap(env.Sites); + } + + FacetFlowPanel.Enabled = true; + FacetFlowPanel.Controls.Add(new SearchFacetSpecifier(this, TopLevelFacets, SelectedFacets, MyRemainingFacets, FacetFlowPanel.Controls.Count)); + ResizeSearchSpecifiers(); + })); + } + catch (Exception exc) + { + MessageBox.Show(string.Format("Error completing Next request with message {0}, inner ex {1}", exc.Message, exc.InnerException)); + } + } + + /// + /// Executes search for SeriesCatalog + /// + /// + public void InvokeSearchButton(List AllSelectedFacets) + { + SelectedFacets = AllSelectedFacets; + if (InputsSufficientForFacetedSearch()) + { + try + { + SpatialTemporalCommitted = true; + // SrchExt = SelectedShapes.Envelope.ToExtent(); + //using (FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient cl = new FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient()) + + using (FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient cl = GetMultiFacetedHISSvcClient()) + { + cl.BeginGetSeriesGivenConstraints(SelectedFacets.ToArray(), BeginDateTime, EndDateTime, SrchExt.MinY, SrchExt.MaxY, SrchExt.MinX, SrchExt.MaxX, InvokeSearchButton_Complete, cl); + } + } + catch (Exception e) + { +#if DEBUG + MessageBox.Show(string.Format("Error in transit layer with message {0} and inner exception {1}", e.Message, e.InnerException)); +#else + MessageBox.Show("Error in transit layer. Please try again."); +#endif + } + } + else + { + MessageBox.Show("Please select a spatial region to bound your search prior to initiating faceted search"); + } + } + + private void InvokeSearchButton_Complete(IAsyncResult result) + { + try + { + List MyRemainingFacets = new List(); + List SearchRes = new List(); + using (FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient cl = (FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient)result.AsyncState) + { + SearchRes = cl.EndGetSeriesGivenConstraints(result).OrderByDescending(r => r.ValueCount).ToList(); + } + + this.Invoke(new MethodInvoker(delegate + { + PutReturnOnMap(SearchRes); + FacetFlowPanel.Enabled = true; + FacetFlowPanel.Controls.Add(new SearchFacetSpecifier(this, TopLevelFacets, SelectedFacets, MyRemainingFacets, FacetFlowPanel.Controls.Count)); + ResizeSearchSpecifiers(); + })); + } + catch (Exception exc) + { + MessageBox.Show(string.Format("Error completing Search request with message {0}, inner ex {1}", exc.Message, exc.InnerException)); + } + } + + /// + /// Method to call next search that returns sql that would be executed, rather than resultset. + /// + /// + public void InvokeNextSQLButton(List AllSelectedFacets, int MyIndex) + { + SelectedFacets = AllSelectedFacets; + List MyRemainingFacets = new List(); + if (InputsSufficientForFacetedSearch()) + { + try + { + RemoveDownStreamSearchFacetSpecifiers(MyIndex + 1); + SpatialTemporalCommitted = true; + // SrchExt = SelectedShapes.Envelope.ToExtent(); + string SQLRes; + //using (FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient cl = new FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient()) + using(FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient cl = GetMultiFacetedHISSvcClient()) + { + ConfigureCUAHSIChannelFactory(cl); + SQLRes = cl.GetSQLOfNextQuery(SelectedFacets.ToArray(), BeginDateTime, EndDateTime, SrchExt.MinY, SrchExt.MaxY, SrchExt.MinX, SrchExt.MaxX, IncludeSpatialResults); + } + + MessageBox.Show(SQLRes); + } + catch (Exception e) + { +#if DEBUG + MessageBox.Show(string.Format("Error in transit layer with message {0} and inner exception {1}", e.Message, e.InnerException)); +#else + MessageBox.Show("Error in transit layer. Please try again."); +#endif + } + } + else + { + MessageBox.Show("Please select a spatial region to bound your search prior to initiating faceted search"); + } + } + + /// + /// Method to call series search that returns sql that would be executed, rather than resultset. + /// + /// + public void InvokeSearchSQLButton(List AllSelectedFacets) + { + SelectedFacets = AllSelectedFacets; + List MyRemainingFacets = new List(); + if (InputsSufficientForFacetedSearch()) + { + try + { + SpatialTemporalCommitted = true; + // SrchExt = SelectedShapes.Envelope.ToExtent(); + string SQLRes; + //using (FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient cl = new FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient()) + using (FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvcClient cl = GetMultiFacetedHISSvcClient()) + { + ConfigureCUAHSIChannelFactory(cl); + SQLRes = cl.GetSQLOfSearchQuery(SelectedFacets.ToArray(), BeginDateTime, EndDateTime, SrchExt.MinY, SrchExt.MaxY, SrchExt.MinX, SrchExt.MaxX, IncludeSpatialResults); + } + + MessageBox.Show(SQLRes); + } + catch (Exception e) + { +#if DEBUG + MessageBox.Show(string.Format("Error in transit layer with message {0} and inner exception {1}", e.Message, e.InnerException)); +#else + MessageBox.Show("Error in transit layer. Please try again."); +#endif + } + + } + else + { + MessageBox.Show("Please select a spatial region to bound your search prior to initiating faceted search"); + } + } + + /// + /// Removes the facet that invoked the method (specified by DeleteIndex), and all facets specified after it. + /// Triggers the re-animation of the SearchFacetSpecifier with an Index of one less (one closer to the first facet selection) than the deleted SearchFacetSpecifier + /// + /// + public void InvokeDeleteFacetButton(int DeleteIndex) + { + RemoveDownStreamSearchFacetSpecifiers(DeleteIndex); + } + + /// + /// Removes all SearchFacetSpecifiers after the one specified. DeleteIndex is the index of the first SearchFacetSpecifier that needs to be deleted. + /// + /// + private void RemoveDownStreamSearchFacetSpecifiers(int DeleteIndex) + { + int StartCount = FacetFlowPanel.Controls.Count; + for (int i = DeleteIndex; i < StartCount; i++) + { + FacetFlowPanel.Controls.RemoveAt(DeleteIndex); // formerly RemoveAt(i) + } + } + + /// + /// Adjusts the height of the search specifiers to accomodate the new layout of the form. + /// + private void ResizeSearchSpecifiers() + { + int newHeight = SearchFacetSpecifierHeight(); + foreach (SearchFacetSpecifier s in FacetFlowPanel.Controls) + { + s.Height = newHeight; + } + } + + /// + /// Specifies the new height of the search facet specifier objects whenever they need to be resized + /// + /// + private int SearchFacetSpecifierHeight() + { + if (FacetFlowPanel.Controls.Count > 6) + { + return FacetFlowPanel.Height - 20; // 20 = height of horizontal scroll bar in px + } + else + { + return FacetFlowPanel.Height - 5; // 5 = decent margin + } + } + + /// + /// Test method for adding blank SearchFacetSpecifiers to the FacetFlowPanel. + /// Should deprecate upon production (demo :)). + /// + private void AddTestSearchFacetSpecifier() + { + FacetFlowPanel.Enabled = true; + List ele = new List(); + SearchFacetSpecifier spec = new SearchFacetSpecifier(ele, FacetFlowPanel.Controls.Count); + spec.Height = SearchFacetSpecifierHeight(); + FacetFlowPanel.Controls.Add(spec); + } + + /// + /// Creates shapefile from search results, shows shapefile on map display + /// + /// + private void PutReturnOnMap(IEnumerable SeriesCatalogResults) + { + FeatureSet fs = new FeatureSet(FeatureType.Point); + try + { + ClearPointLayersFromMap(); + + // string shapeFileName = String.Format(@"{0}\{1}.shp", Settings.Instance.TempDirectory, "FacetedSearchResult"); + + fs.DataTable.Columns.Add(new DataColumn("ServiceCode", typeof(string))); + fs.DataTable.Columns.Add(new DataColumn("ServiceURL", typeof(string))); + fs.DataTable.Columns.Add(new DataColumn("SiteCode", typeof(string))); + fs.DataTable.Columns.Add(new DataColumn("SiteName", typeof(string))); //to improve display of labels and pop-up. shows a copy of SiteCode + fs.DataTable.Columns.Add(new DataColumn("VarCode", typeof(string))); + fs.DataTable.Columns.Add(new DataColumn("VarName", typeof(string))); //to improve display of labels and pop-up. shows a copy of VarCode + fs.DataTable.Columns.Add(new DataColumn("StartDate", typeof(DateTime))); + fs.DataTable.Columns.Add(new DataColumn("EndDate", typeof(DateTime))); + fs.DataTable.Columns.Add(new DataColumn("ValueCount", typeof(int))); + + foreach (FacetedSearch3.CUAHSIFacetedSearch.SeriesCatalogRecord o in SeriesCatalogResults) + { + DotSpatial.Topology.Point p = new DotSpatial.Topology.Point(o.Longitude, o.Latitude); + IFeature f = fs.AddFeature(p); + f.DataRow.BeginEdit(); + f.DataRow["ServiceCode"] = o.ServCode; + f.DataRow["ServiceURL"] = o.ServURL; + f.DataRow["SiteCode"] = o.SiteCode; + f.DataRow["SiteName"] = o.SiteName; + f.DataRow["VarCode"] = o.VarCode; + f.DataRow["VarName"] = o.VariableName; + f.DataRow["StartDate"] = o.StartDate; + f.DataRow["EndDate"] = o.EndDate; + f.DataRow["ValueCount"] = o.ValueCount; + f.DataRow.EndEdit(); + } + + //set the projection + fs.Projection = + new ProjectionInfo(); + fs.ProjectionString = "+proj=longlat +ellps=WGS84 +no_defs"; + + // the faceted search shapefile is saved to the current project directory + // preferably this should be in the current project's directory + // if the current project directory doesn't exist then use a temp folder + string facetedSearchShapefileFullPath; + if (App.SerializationManager.CurrentProjectDirectory == null) + { + string hdTempPath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "HydroDesktop"); + facetedSearchShapefileFullPath = System.IO.Path.Combine(hdTempPath, FacetedShapeFileName); + } + else + { + facetedSearchShapefileFullPath = System.IO.Path.Combine(App.SerializationManager.CurrentProjectDirectory, FacetedShapeFileName); + } + fs.Filename = facetedSearchShapefileFullPath; + fs.Save(); + + // implement threshold for adding to map directly or via shapefile on disk? + if (SeriesCatalogResults.Count() > 25000) + { + } + else + { + } + + // need to use the full path (relative path didn't work when deploying + // the plugin as a package) + App.Map.AddLayer(facetedSearchShapefileFullPath); + } + finally + { + fs.Dispose(); + } + + //add featureSet to the map + // IMapLayer newLayer = MapArgs.Map.Layers.Add(shapeFileName); + + //add labels + // MapArgs.Map.AddLabels((IFeatureLayer)newLayer, + // String.Format("[{0}]", "FacetedSearchResults"), String.Empty, + // new LabelSymbolizer()); + + } + + + /// + /// Overloaded method for rendering point data on map + /// + /// + private void PutReturnOnMap(IEnumerable MyRemainingFacets) + { + + ClearPointLayersFromMap(); + FeatureSet fs = new FeatureSet(FeatureType.Point); + fs.Projection = KnownCoordinateSystems.Geographic.World.WGS1984; + + foreach (FacetedSearch3.CUAHSIFacetedSearch.SiteData o in MyRemainingFacets) + { + DotSpatial.Topology.Point p = new DotSpatial.Topology.Point(); + p.X = o.longitude; + p.Y = o.latitude; + fs.AddFeature(p); + } + + fs.Filename = FacetedShapeFileName; + fs.Save(); + + App.Map.AddLayer(FacetedShapeFileName); + // map1.Layers.Add(MyLocations); + } + + /// + /// Removes point layers from map + /// + public void ClearPointLayersFromMap() + { +#if (DEBUG) + // foreach (IMapLayer ptlyr in map1.GetPointLayers()) + // { + // map1.Layers.Clear(); + // map1.Layers.Remove(ptlyr); + // } + foreach (IMapLayer l in App.Map.Layers.Where(r => r.LegendText == FacetedShapeLayerName)) + { + App.Map.Layers.Remove(l); + } +#endif + + } + #endregion + + #region Events + private void FacetedSearchForm_Resize(object sender, EventArgs e) + { + ResizeSearchSpecifiers(); + } + + private void splitContainer1_SplitterMoved(object sender, SplitterEventArgs e) + { + ResizeSearchSpecifiers(); + } + + /// + /// Resets the user interface to the starting point + /// + /// + /// + private void ResetButton_Click(object sender, EventArgs e) + { + ResetInterface(); + // AddTestSearchFacetSpecifier(); + } + + private void InitFacetedSearchBtn_Click(object sender, EventArgs e) + { + InitializeFacetedSearch(); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/FacetedSearchControl.resx b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/FacetedSearchControl.resx new file mode 100644 index 00000000..c7e0d4bd --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/FacetedSearchControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/FacetedSearchCriteria.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/FacetedSearchCriteria.cs new file mode 100644 index 00000000..3ec41632 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/FacetedSearchCriteria.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace FacetedSearch3.Searching +{ + /// + /// Subset of SearchCriteria.cs object sufficient for Faceted Search demo + /// todo: Integrate further with HydroDesktop services that require this information + /// + public class FacetedSearchCriteria + { + public DateTime startDate { get; set; } + public DateTime endDate { get; set; } + private Boolean _boundingBoxSearch = false; + private object _areaSearch; + + public object areaParameter + { + get { return _areaSearch; } + set + { + + if (value.GetType().Equals(typeof(FacetedSearch3.Settings.AreaRectangle))) + { + _boundingBoxSearch = true; + } + else + { + _boundingBoxSearch = false; + + } + _areaSearch = value; + } + } // will be a List or ArrayList rectangleCoordinates + public bool BoundinBoxSearch + { + get { return _boundingBoxSearch; } + set { _boundingBoxSearch = value; } + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/HISCentralSearcher.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/HISCentralSearcher.cs new file mode 100644 index 00000000..ea608d69 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/HISCentralSearcher.cs @@ -0,0 +1,576 @@ +using System; +using System.Collections.Generic; +using System.Text; +using DotSpatial.Topology; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.WebServices; +using System.ComponentModel; +using DotSpatial.Data; +using System.Net; +using System.Windows.Forms; +using System.IO; +using System.Globalization; +using System.Web; +using System.Xml; +using FacetedSearch3.Extensions; +using log4net; + +namespace FacetedSearch3.Searching +{ + //todo: Copied from Search2. Need to be refactored. + + public interface IHISCentralSearcher + { + /// + /// Defined to make the class testable using MOQ + /// Gets all data series that match the + /// specified criteria and are within the geographic polygon + /// + /// one or multiple polygons + /// array of keywords. If set to null, + /// results will not be filtered by keyword. + /// start date. If set to null, results will not be filtered by start date. + /// end date. If set to null, results will not be filtered by end date. + /// The results of the search (convert to DataTable) + /// A list of data series matching the specified criteria + void GetSeriesCatalogInPolygon(IList polygons, string[] keywords, DateTime startDate,DateTime endDate, int[] serviceIDs, IProgressHandler bgWorker, DoWorkEventArgs e); + void GetSeriesCatalogInRectangle(double xMin, double XMax, double YMin, double YMax, string[] keywords, DateTime startDate, DateTime endDate, int[] serviceIDs, IProgressHandler bgWorker, DoWorkEventArgs e); + void GetWebServicesXml(string xmlFileName); + } + + + + + /// + /// Search for data series using HIS Central + /// + /// + public class HISCentralSearcher : IHISCentralSearcher + { + private static readonly log4net.ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + + /* I (valentine) honestly have no idea why this cals exsits. Jiri added it + * it did not inherit from HydroDesktop.Data.Search.HISCentralSearcher + * even though it had many of the same methods. + * I added HydroDesktop.Data.Search.HISCentralSearcher + * */ + #region Constructor + + /// + /// Create a new HIS Central Searcher which connects to the HIS Central web + /// services + /// + /// The URL of HIS Central + public HISCentralSearcher(string hisCentralURL) + { + HISCentralUrl = hisCentralURL; + } + + #endregion + + #region Fields + + private bool _usePagedQuery = false; + + #endregion + + #region ISearcher Members + + /// + /// Gets or sets the HIS Central URL + /// + public string HISCentralUrl { get; set; } + + /// + /// The query method for HIS Central. If use PagedQuery is true, + /// then the new method 'getSeriesCatalogForBoxPaged()' is used. + /// + public bool UsePagedQuery + { + get + { + return _usePagedQuery; + } + set + { + _usePagedQuery = value; + } + } + + /// + /// Get the 'Ontology Tree' and save it to the xml file + /// + public void GetOntologyTreeXml(string xmlFileName) + { + WebClient client = new WebClient(); + string url = HISCentralUrl + "/getOntologyTree?conceptKeyword=Hydrosphere"; + + try + { + client.DownloadFile(url, xmlFileName); + } + catch (Exception ex) + { + String error ="Error refreshing Ontology keywords from HIS Central. Using the existing list of keywords."; + log.Error(error, ex); + MessageBox.Show(error); + } + } + + public void GetWebServicesXml(string xmlFileName) + { + HttpWebResponse response = null; + int bytesRead = 0; + try + { + string url = HISCentralUrl + "/GetWaterOneFlowServiceInfo"; + + var request = (HttpWebRequest) WebRequest.Create(url); + //Endpoint is the URL to which u are making the request. + request.Method = "GET"; + request.Credentials = CredentialCache.DefaultCredentials; + request.ContentType = "text/xml"; + + request.Timeout = 5000; + + // send the request and get the response + response = (HttpWebResponse) request.GetResponse(); + + using (var responseStream = response.GetResponseStream()) + { + using (var localFileStream = new FileStream(xmlFileName, FileMode.Create)) + { + byte[] buffer = new byte[255]; + double totalBytesRead = 0; + + while ((bytesRead = responseStream.Read(buffer, 0, buffer.Length)) > 0) + { + totalBytesRead += bytesRead; + localFileStream.Write(buffer, 0, bytesRead); + } + } + } + } + catch (Exception ex) + { + log.Error(ex); + throw; + } + finally + { + if (response != null) + { + response.Close(); + } + } + } + + /// + /// Gets all data series within the geographic bounding box that match the + /// specified criteria + /// + /// minimum x (longitude) + /// maximum x (longitude) + /// minimum y (latitude) + /// maximum y (latitude) + /// the array of concept keywords. If set to null, + /// results will not be filtered by concept keyword + /// start date. If set to null, results will not be filtered by start date. + /// end date. If set to null, results will not be filtered by end date. + /// array of serviceIDs provided by GetServicesInBox. + /// If set to null, results will not be filtered by web service. + /// A list of data series matching the specified criteria + private IEnumerable GetSeriesCatalogForBox(double xMin, double XMax, double YMin, double YMax, string[] keywords, + DateTime startDate, DateTime endDate, int[] networkIDs) + { + if (keywords == null) + { + return GetSeriesCatalogForBox(xMin, XMax, YMin, YMax, String.Empty, startDate, endDate, networkIDs); + } + if (keywords.Length == 0) + { + return GetSeriesCatalogForBox(xMin, XMax, YMin, YMax, String.Empty, startDate, endDate, networkIDs); + } + if (keywords.Length == 1) + { + return GetSeriesCatalogForBox(xMin, XMax, YMin, YMax, keywords[0], startDate, endDate, networkIDs); + } + var lst = new List(); + foreach (string keyword in keywords) + { + lst.AddRange(GetSeriesCatalogForBox(xMin, XMax, YMin, YMax, keyword, startDate, endDate, networkIDs)); + } + return lst; + } + + /// + /// Gets all data series within the geographic bounding box that match the + /// specified criteria + /// + /// minimum x (longitude) + /// maximum x (longitude) + /// minimum y (latitude) + /// maximum y (latitude) + /// the concept keyword. If set to null, + /// results will not be filtered by concept keyword + /// start date. If set to null, results will not be filtered by start date. + /// end date. If set to null, results will not be filtered by end date. + /// array of serviceIDs provided by GetServicesInBox. + /// If set to null, results will not be filtered by web service. + /// A list of data series matching the specified criteria + private IEnumerable GetSeriesCatalogForBox(double xMin, double XMax, double YMin, double YMax, string keyword, + DateTime startDate, DateTime endDate, int[] networkIDs) + { + //call the web service dynamically, using WebClient + var usaFormat = new CultureInfo("en-US"); + + var url = new StringBuilder(); + url.Append(HISCentralUrl); + url.Append("/GetSeriesCatalogForBox2"); + url.Append("?xmin="); + url.Append(HttpUtility.UrlEncode(xMin.ToString(usaFormat))); + url.Append("&XMax="); + url.Append(HttpUtility.UrlEncode(XMax.ToString(usaFormat))); + url.Append("&YMin="); + url.Append(HttpUtility.UrlEncode(YMin.ToString(usaFormat))); + url.Append("&YMax="); + url.Append(HttpUtility.UrlEncode(YMax.ToString(usaFormat))); + + //to append the keyword + url.Append("&conceptKeyword="); + if (!String.IsNullOrEmpty(keyword)) + { + url.Append(HttpUtility.UrlEncode(keyword)); + } + + //to append the list of networkIDs separated by comma + url.Append("&networkIDs="); + if (networkIDs != null) + { + var serviceParam = new StringBuilder(); + for (int i = 0; i < networkIDs.Length - 1; i++) + { + serviceParam.Append(networkIDs[i]); + serviceParam.Append(","); + } + if (networkIDs.Length > 0) + { + serviceParam.Append(networkIDs[networkIDs.Length - 1]); + } + url.Append(HttpUtility.UrlEncode(serviceParam.ToString())); + } + + //to append the start and end date + url.Append("&beginDate="); + url.Append(HttpUtility.UrlEncode(startDate.ToString("MM/dd/yyyy"))); + url.Append("&endDate="); + url.Append(HttpUtility.UrlEncode(endDate.ToString("MM/dd/yyyy"))); + + //to encode the URL + string finalURL = url.ToString(); + + //to read the xml stream + var seriesList = new List(); + using(var reader = XmlReader.Create(finalURL)) + { + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + { + if (reader.Name == "SeriesRecord") + { + //Read the site information + var series = ReadSeriesFromHISCentral(reader); + if (series != null) + { + // Update BeginDate/EndDate/ValueCount to the user-specified range + var seriesStartDate = series.BeginDate < startDate ? startDate : series.BeginDate; + var seriesEndDate = series.EndDate > endDate ? endDate : series.EndDate; + + var serverDateRange = series.EndDate.Subtract(series.BeginDate); + var userDateRange = seriesEndDate.Subtract(seriesStartDate); + + var userFromServerPercentage = serverDateRange.TotalDays > 0 + ? userDateRange.TotalDays/serverDateRange.TotalDays + : 1.0; + if (userFromServerPercentage > 1.0) + userFromServerPercentage = 1.0; + var esimatedValueCount = (int) (series.ValueCount*userFromServerPercentage); + + series.ValueCount = esimatedValueCount; + series.BeginDate = seriesStartDate; + series.EndDate = seriesEndDate; + //--- + + seriesList.Add(series); + } + } + } + } + } + + return seriesList; + } + + /// + /// Read the list of series from the XML that is returned by HIS Central + /// + /// the xml reader + /// the list of intermediate 'SeriesDataCart' objects + private SeriesDataCart ReadSeriesFromHISCentral(XmlReader r) + { + var usaCulture = new CultureInfo("en-US"); + + var series = new SeriesDataCart(); + while (r.Read()) + { + string nodeName = r.Name.ToLower(); + + if (r.NodeType == XmlNodeType.Element) + { + + switch (nodeName) + { + case "servcode": + r.Read(); + series.ServCode = r.Value; + break; + case "servurl": + r.Read(); + series.ServURL = r.Value; + break; + case "location": + r.Read(); + series.SiteCode = r.Value; + break; + case "varcode": + r.Read(); + series.VariableCode = r.Value; + break; + case "varname": + r.Read(); + series.VariableName = r.Value; + break; + case "begindate": + r.Read(); + series.BeginDate = Convert.ToDateTime(r.Value, usaCulture); + break; + case "enddate": + r.Read(); + series.EndDate = Convert.ToDateTime(r.Value, usaCulture); + break; + case "valuecount": + r.Read(); + series.ValueCount = Convert.ToInt32(r.Value); + break; + case "sitename": + r.Read(); + series.SiteName = r.Value; + break; + case "latitude": + r.Read(); + series.Latitude = Convert.ToDouble(r.Value, CultureInfo.InvariantCulture); + break; + case "longitude": + r.Read(); + series.Longitude = Convert.ToDouble(r.Value, CultureInfo.InvariantCulture); + break; + case "datatype": + r.Read(); + series.DataType = r.Value; + break; + case "valuetype": + r.Read(); + series.ValueType = r.Value; + break; + case "samplemedium": + r.Read(); + series.SampleMedium = r.Value; + break; + case "timeunits": + r.Read(); + series.TimeUnit = r.Value; + break; + case "conceptkeyword": + r.Read(); + series.ConceptKeyword = r.Value; + break; + case "gencategory": + r.Read(); + series.GeneralCategory = r.Value; + break; + case "timesupport": + r.Read(); + series.TimeSupport = Convert.ToDouble(r.Value, CultureInfo.InvariantCulture); + break; + } + } + else if (r.NodeType == XmlNodeType.EndElement && nodeName == "seriesrecord") + { + return series; + } + } + + return null; + } + + /// + /// Gets all search result that match the + /// specified criteria and are within the specific rectangle + /// + /// array of keywords. If set to null, + /// results will not be filtered by keyword. + /// start date. If set to null, results will not be filtered by start date. + /// end date. If set to null, results will not be filtered by end date. + /// The results of the search (convert to DataTable) + /// A list of data series matching the specified criteria + public void GetSeriesCatalogInRectangle(double xMin, double XMax, double YMin, double YMax, string[] keywords, + DateTime startDate, DateTime endDate, int[] serviceIDs, IProgressHandler bgWorker, DoWorkEventArgs e) + { + if (bgWorker == null) throw new ArgumentNullException("bgWorker"); + + double tileWidth = 1.0; //the initial tile width is set to 1 degree + double tileHeight = 1.0; //the initial tile height is set to 1 degree + + bgWorker.CheckForCancel(); + + //get the list of series + var fullSeriesList = new List(); + + //Split the polygon area bounding box into 1x1 decimal degree tiles + + Box extentBox = new Box(xMin, XMax, YMin, YMax); + IList tiles = SearchHelper.CreateTiles(extentBox, tileWidth, tileHeight); + int numTiles = tiles.Count; + + for (int i = 0; i < numTiles; i++) + { + Box tile = tiles[i]; + + bgWorker.CheckForCancel(); + + // Do the web service call + //IList tileSeriesList = new List(); + IEnumerable tileSeriesList = GetSeriesCatalogForBox(tile.XMin, tile.XMax, tile.YMin, tile.YMax, keywords, startDate, endDate, serviceIDs); + + fullSeriesList.AddRange(tileSeriesList); + + // Report progress + { + string message = fullSeriesList.Count.ToString(); + int percentProgress = (i * 100) / numTiles + 1; + bgWorker.ReportProgress(percentProgress, message); + } + } + + + //(4) Create the Feature Set + SearchResult resultFs = null; + if (fullSeriesList.Count > 0) + { + bgWorker.ReportProgress(0, "Calculating Points"); + resultFs = SearchHelper.ToFeatureSetsByDataSource(fullSeriesList); + } + + // (5) Final Background worker updates + if (e != null) + { + bgWorker.CheckForCancel(); + + // Report progress + bgWorker.ReportProgress(100, "Search Finished"); + e.Result = resultFs; + } + } + + /// + /// Gets all data series that match the + /// specified criteria and are within the geographic polygon + /// + /// one or multiple polygons + /// array of keywords. If set to null, + /// results will not be filtered by keyword. + /// start date. If set to null, results will not be filtered by start date. + /// end date. If set to null, results will not be filtered by end date. + /// array of serviceIDs provided by GetServicesInBox. + /// The background worker (may be null) for reporting progress + /// The results of the search (convert to DataTable) + /// If set to null, results will not be filtered by web service. + /// A list of data series matching the specified criteria + public void GetSeriesCatalogInPolygon(IList polygons, string[] keywords, DateTime startDate, + DateTime endDate, int[] serviceIDs, IProgressHandler bgWorker, DoWorkEventArgs e) + { + double tileWidth = 1.0; //the initial tile width is set to 1 degree + double tileHeight = 1.0; //the initial tile height is set to 1 degree + + //(1): Get the union of the polygons + if (polygons.Count == 0) + { + throw new ArgumentException("The number of polygons must be greater than zero."); + } + + // Check for cancel + bgWorker.CheckForCancel(); + + if (polygons.Count > 1) + { + bgWorker.ReportProgress(0, "Processing Polygons"); + } + + //get the list of series + var fullSeriesList = new List(); + + foreach (IFeature polygon in polygons) + { + //Split the polygon area bounding box into 1x1 decimal degree tiles + IEnvelope env = polygon.Envelope; + Box extentBox = new Box(env.Left(), env.Right(), env.Bottom(), env.Top()); + IList tiles = SearchHelper.CreateTiles(extentBox, tileWidth, tileHeight); + int numTiles = tiles.Count; + + + for (int i = 0; i < numTiles; i++) + { + Box tile = tiles[i]; + + bgWorker.CheckForCancel(); + + // Do the web service call + IEnumerable tileSeriesList = GetSeriesCatalogForBox(tile.XMin, tile.XMax, tile.YMin, tile.YMax, keywords, startDate, endDate, serviceIDs); + + // Clip the points by polygon + IEnumerable seriesInPolygon = SearchHelper.ClipByPolygon(tileSeriesList, polygon); + + fullSeriesList.AddRange(seriesInPolygon); + + // Report progress + { + string message = fullSeriesList.Count.ToString(); + int percentProgress = (i * 100) / numTiles + 1; + bgWorker.ReportProgress(percentProgress, message); + } + } + } + + //(4) Create the Feature Set + SearchResult resultFs = null; + if (fullSeriesList.Count > 0) + { + bgWorker.ReportProgress(0, "Calculating Points"); + resultFs = SearchHelper.ToFeatureSetsByDataSource(fullSeriesList); + } + + // (5) Final Background worker updates + if (e != null) + { + bgWorker.CheckForCancel(); + + // Report progress + bgWorker.ReportProgress(100, "Search Finished"); + e.Result = resultFs; + } + } + + #endregion + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/LogMessageEventArgs.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/LogMessageEventArgs.cs new file mode 100644 index 00000000..8152bab0 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/LogMessageEventArgs.cs @@ -0,0 +1,16 @@ +using System; + +namespace FacetedSearch3.Searching +{ + public class LogMessageEventArgs : EventArgs + { + public string Message { get; private set; } + public Exception Exception { get; private set; } + + public LogMessageEventArgs(string message, Exception exception = null) + { + Message = message; + Exception = exception; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/OntologyElementForDisplayComparer.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/OntologyElementForDisplayComparer.cs new file mode 100644 index 00000000..11ffa7ac --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/OntologyElementForDisplayComparer.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace FacetedSearch3 +{ + public class OntologyElementForDisplayComparer : IEqualityComparer + { + public bool Equals(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement x, FacetedSearch3.CUAHSIFacetedSearch.OntologyElement y) + { + // return x.cVocabularyID == y.cVocabularyID; + return x.cConceptID == y.cConceptID; + } + + public int GetHashCode(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement obj) + { + // return obj.cVocabularyID.GetHashCode(); + return obj.cConceptID.GetHashCode(); + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/OntologyFacetConverter.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/OntologyFacetConverter.cs new file mode 100644 index 00000000..2260ecea --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/OntologyFacetConverter.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace FacetedSearch3 +{ + public static class OntologyElementConverter + { + public static FacetedSearch3.CUAHSIFacetedSearch.OntologyElement Serialize() + { + return new FacetedSearch3.CUAHSIFacetedSearch.OntologyElement(); + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Search2Helper.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Search2Helper.cs new file mode 100644 index 00000000..7a400fe9 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/Search2Helper.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using DotSpatial.Data; +using DotSpatial.Projections; +using FacetedSearch3.Properties; +using FacetedSearch3.Settings; + +namespace FacetedSearch3.Searching +{ + /// + /// Helper to port logic from Search2 + /// + static class Search2Helper + { + ///// + ///// Creates from Search3 settings SearchCriteria class (used in Search2) + ///// + ///// Search3 settings + ///// Search2 SearchCriteria class + //public static SearchCriteria GetSearchParameters(SearchSettings settings) + //{ + // // TODO: Remove this method and use SearchSettings + + // var searchCritria = new SearchCriteria(); + + // searchCritria.SearchMethod = settings.CatalogSettings.TypeOfCatalog; + // foreach (var keyword in settings.KeywordsSettings.SelectedKeywords) + // searchCritria.keywords.Add(keyword); + + // /* this region to be refactored /*/ + // // Validate and refine the list of keywords. + // //string ontologyFilePath = GetOntologyFilePath (); + // //XmlDocument ontologyXml = new XmlDocument (); + // //ontologyXml.Load ( ontologyFilePath ); + // if (searchCritria.SearchMethod == TypeOfCatalog.HisCentral) + // { + // var ontologyXml = HdSearchOntologyHelper.ReadOntologyXmlFile(); + // var ontologyHelper = new HdSearchOntologyHelper(); + // ontologyHelper.RefineKeywordList(searchCritria.keywords, ontologyXml); + // } + // else + // { + // //in the special case of metadata cache - hydrosphere keyword + // if (searchCritria.keywords.Contains("Hydrosphere")) + // { + // searchCritria.keywords.Clear(); + // } + // } + // /* this region to be refactored /*/ + + // //get the start date & end date + // searchCritria.startDate = settings.DateSettings.StartDate; + // searchCritria.endDate = settings.DateSettings.EndDate; + + + // //if all webservices are selected, pass an empty array + // if (settings.WebServicesSettings.TotalCount == settings.WebServicesSettings.CheckedCount) + // { + // searchCritria.serviceIDs.Clear(); + // } + // else + // { + // foreach (var item in settings.WebServicesSettings.WebServices.Where(item => item.Checked)) + // { + // searchCritria.serviceIDs.Add(Convert.ToInt32(item.ServiceID)); + // } + // } + + // //get the HIS Central URL + // searchCritria.hisCentralURL = settings.CatalogSettings.HISCentralUrl; + + // //get the selected polygons from the active layer or the rectangle + // GetSearchArea(searchCritria, settings); + + // //To pass in the search parameters + // return searchCritria; + //} + + private static void GetSearchArea(SearchCriteria searchCriteria, SearchSettings settings) + { + object areaParameter = null; + if (settings.AreaSettings.Polygons != null) + { + var polyFs = settings.AreaSettings.Polygons; + string esri = Resources.wgs_84_esri_string; + var wgs84 = ProjectionInfo.FromEsriString(esri); + + //reproject the selected polygons to WGS1984 + polyFs.Reproject(wgs84); + + //the list of selected polygons passed in to the search function + var selectedPolygons = Enumerable.ToList(polyFs.Features); + + areaParameter = selectedPolygons; + } + else if (settings.AreaSettings.AreaRectangle != null) + { + areaParameter = settings.AreaSettings.AreaRectangle; + } + + //to assign the area parameter + searchCriteria.areaParameter = areaParameter; + return; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchCriteria.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchCriteria.cs new file mode 100644 index 00000000..af6c49de --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchCriteria.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using FacetedSearch3.Settings; + +namespace FacetedSearch3.Searching +{ + public class SearchCriteria + { + //todo: Copied from Search2. Need to be refactored. + + private List _keywords = new List(); + private List _serviceIDs = new List(); + private Boolean _boundingBoxSearch = false; + + private object _areaSearch; + + public List keywords { get { return _keywords; } } + public DateTime startDate { get; set; } + public DateTime endDate { get; set; } + public List serviceIDs { get { return _serviceIDs; } } + public string hisCentralURL { get; set; } + public object areaParameter + { + get { return _areaSearch; } + set + { + + if (value.GetType().Equals(typeof(AreaRectangle))) + { + _boundingBoxSearch = true; + } + else + { + _boundingBoxSearch = false; + + } + _areaSearch = value; + } + } // will be a List or ArrayList rectangleCoordinates + public bool BoundinBoxSearch + { + get { return _boundingBoxSearch; } + set { _boundingBoxSearch = value; } + } + + public TypeOfCatalog SearchMethod { get; set; } + + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchFacetSpecifier.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchFacetSpecifier.cs new file mode 100644 index 00000000..d8a710aa --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchFacetSpecifier.cs @@ -0,0 +1,632 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.Xml; +using System.Xml.Serialization; +using System.IO; +using System.Timers; +using System.Runtime.InteropServices; + +namespace FacetedSearch3 +{ + /// + /// Mechanism for dealing with a single level of specificity of faceted search. + /// + public partial class SearchFacetSpecifier : UserControl + { + private FacetedSearchControl FacetedSearchHost; + public IEnumerable PreviousSelectedOntologyElements; // serialized ontology elements that have been specified by previous SearchFacetSpecifiers + public IEnumerable MyFullFacetSet; // The entire catalog of ontological terms, unfiltered + public IEnumerable RemainingFacets; // response from XML webservice. These are the facets that are remaining given the user's selections. + public IEnumerable Orphans; + public List MySelectedFacets; + // private Boolean MyRootIsSpecified; // Specifies whether the root element of one of the web-service layer properties has been selected + public int MyFacetIndex; // position in the search stack that is the FacetFlowPanel on the CUAHSISearchForm (parent FlowLayoutPanel). + public System.Timers.Timer ac_Timer; // manages delay of autocomplete + public double AutoDelay_ms = 800; // autocomplete delay in milliseconds + public int AutoComplete_charLim = 3; // minimum length of text to be considered for autocomplete + private int ExpandedTextMaxLen = 25; // the number of chars allowed to be shown in a synonym-appended Treenode Text + + #region Win32 API + /// + /// Win32 API commands for programmatically scrolling WPF forms controls. Not all necessarily used, but here to provide options. + /// + private const int WM_SCROLL = 276; // Horizontal scroll + private const int WM_VSCROLL = 277; // Vertical scroll + private const int SB_LINEUP = 0; // Scrolls one line up + private const int SB_LINELEFT = 0; // Scrolls one cell left + private const int SB_LINEDOWN = 1; // Scrolls one line down + private const int SB_LINERIGHT = 1; // Scrolls one cell right + private const int SB_PAGEUP = 2; // Scrolls one page up + private const int SB_PAGELEFT = 2; // Scrolls one page left + private const int SB_PAGEDOWN = 3; // Scrolls one page down + private const int SB_PAGERIGTH = 3; // Scrolls one page right + private const int SB_PAGETOP = 6; // Scrolls to the upper left + private const int SB_LEFT = 6; // Scrolls to the left + private const int SB_PAGEBOTTOM = 7; // Scrolls to the upper right + private const int SB_RIGHT = 7; // Scrolls to the right + private const int SB_ENDSCROLL = 8; // Ends scroll + + [DllImport("user32.dll", CharSet = CharSet.Auto)] + private static extern int SendMessage(IntPtr hWnd, int wMsg, IntPtr wParam, IntPtr lParam); + + #endregion + + /// + /// Used for thread-safe autocomplete behavior + /// + /// Index of the TreeNode to be exposed. + /// Name that was text-matched to trigger selection. + delegate void ExposeNodesCallback(Dictionary ExposeSet); + + private void ExposeNodes(Dictionary ExposeSet) + { + // reset TreeView + FacetTree.CollapseAll(); + foreach (TreeNode n in FacetTree.Nodes) + { + RecursiveFontSetter(n, FontStyle.Regular, true); + } + + // Expose nodes + foreach (KeyValuePair k in ExposeSet) + { + foreach (TreeNode n in FacetTree.Nodes) + { + ExposeNode(n, k.Key, k.Value); + } + } + + // scroll TreeView to the left + SendMessage(FacetTree.Handle, WM_SCROLL, (IntPtr)SB_LEFT, IntPtr.Zero); + } + + private void ExposeNode(TreeNode p, int KeyAsInt, string NameMatch) + { + if (p.Name == KeyAsInt.ToString()) + { + if ((p.Tag as List).First().cConceptName != NameMatch) + { + p.Text = string.Format("{0} ({1})", (p.Tag as List).First().cConceptName, NameMatch); + } + + // do node formatting + if (p.Text.Length > ExpandedTextMaxLen) + { + p.ToolTipText = p.Text; + p.Text = p.Text.Substring(0, ExpandedTextMaxLen) + "..."; + } + + p.NodeFont = new System.Drawing.Font(FacetTree.Font, FontStyle.Bold); + p.Text += string.Empty; // workaround for TreeView node truncation issue: http://support.microsoft.com/kb/937215/en-us?sp&s + p.EnsureVisible(); + } + else if (p.Checked) + { + p.EnsureVisible(); + } + + if (p.Nodes.Count > 0) + { + foreach (TreeNode n in p.Nodes) + { + ExposeNode(n, KeyAsInt, NameMatch); + } + } + } + + /// + /// Uses the existing FacetTree font to apply a new font to a node and all its children + /// + /// + /// + private void RecursiveFontSetter(TreeNode p, FontStyle f, Boolean ResetText) + { + p.NodeFont = new Font(FacetTree.Font, f); + if (ResetText) + { + if (p.Text.Length > ExpandedTextMaxLen) // optimization exploiting "..." appending + { + p.Text = (p.Tag as List).First().cConceptName; + } + + foreach (TreeNode n in p.Nodes) + { + RecursiveFontSetter(n, f, true); + } + } + else + { + + foreach (TreeNode n in p.Nodes) + { + RecursiveFontSetter(n, f, false); + } + } + } + + /// + /// Constructor for use with serialized lists of OntologyElements. + /// + /// The parent control of this, currently set to a Form object + /// The entire catalog of ontological terms, unfiltered. + /// The list of ontological terms that have already been selected (selected upstream of this). + /// The list of ontological terms that are remaining given the selections that have been made up to this. + /// Zero-based index of SearchFacetSpecifiers on the parent control. This is my position. + public SearchFacetSpecifier(FacetedSearchControl ParentForm, IEnumerable FullFacetSet, IEnumerable SelectedThusFar, IEnumerable RemainingFacetsIn, int MyIndex) + { + #region Initialize Control + InitializeComponent(); + FacetedSearchHost = ParentForm; + RemainingFacets = RemainingFacetsIn; + MyFacetIndex = MyIndex; + PreviousSelectedOntologyElements = SelectedThusFar; + MyFullFacetSet = FullFacetSet; + Orphans = MyFullFacetSet.Where(r => r.IsRoot == false).ToList(); + // MyRootIsSpecified = false; + MySelectedFacets = new List(); + ac_Timer = new System.Timers.Timer(AutoDelay_ms); + ac_Timer.AutoReset = false; + ac_Timer.Elapsed += new ElapsedEventHandler(OnAutoCompleteStart); + #endregion + + #region Render Display of Options + RenderMyFacetTree(); + #endregion + } + + /// + /// Constructor for scaffolding tests + /// + /// + /// + public SearchFacetSpecifier(IEnumerable RemainingFacetsIn, int MyIndex) + { + InitializeComponent(); + RemainingFacets = RemainingFacetsIn; + MyFacetIndex = MyIndex; + // MyRootIsSpecified = false; + ac_Timer = new System.Timers.Timer(AutoDelay_ms); + ac_Timer.AutoReset = false; + ac_Timer.Elapsed += new ElapsedEventHandler(OnAutoCompleteStart); + } + + /// + /// Makes the SearchFacetSpecifier display its full tree, and checks all of the facets that were specified in this SearchFacetSpecifier (as opposed to a higher-level instance) + /// + public void ReAnimate() + { + throw new NotImplementedException(); + } + + /// + /// Uses MyFullFacetSet and RemainingFacets to populate the FacetTree control. Displays the complete hierarchy minus the branches without any remaining facets. + /// + private void RenderMyFacetTree() + { + FacetTree.Nodes.Clear(); + + List FailedListings = new List(); + List AlreadyListed = new List(); + + // insert roots if they are recorded as having data attached to them + foreach (List os in RemainingFacets.Where(r => r.IsRoot == true).GroupBy(r => r.cConceptID).ToList()) + { + FacetTree.Nodes.Add(CreateCUAHSITreeNode(os)); + AlreadyListed.AddRange(os); + } + + // place non-root elements, inserting roots as necessary + Stack> AddNodes = new Stack>(); + List NowElements = new List(); + Boolean FoundRoot; + foreach (IGrouping g in RemainingFacets.GroupBy(r => r.cConceptID)) + { + AddNodes.Clear(); + NowElements.Clear(); + + NowElements.AddRange(g); + + FoundRoot = false; + while (FoundRoot == false + && !AlreadyListed.Contains(NowElements.First(), new OntologyElementForDisplayComparer()) + && !PreviousSelectedOntologyElements.Contains(NowElements.First(), new OntologyElementForDisplayComparer())) + { + AddNodes.Push(NowElements); + AlreadyListed.AddRange(NowElements); + if (NowElements.First().IsRoot) + { + FoundRoot = true; + } + else + { + NowElements = MyFullFacetSet.Where(r => r.cConceptID == (NowElements.First().cParentID)).ToList(); // a given conceptID can only have one parent + if (NowElements == null || NowElements.Count < 1) + { + MessageBox.Show(string.Format("Null element detected in tree leading concept {0}", NowElements.First().cConceptName)); + } + } + } + + // put stack of ontology + while (AddNodes.Count > 0) + { + List ThisNode = AddNodes.Pop(); + try + { + if (ThisNode.First().IsRoot) + { + FacetTree.Nodes.Add(CreateCUAHSITreeNode(ThisNode)); + } + else + { + FacetTree.Nodes.Find(ThisNode.First().cParentID.ToString(), true).First().Nodes.Add(CreateCUAHSITreeNode(ThisNode)); + } + } + catch + { + FailedListings.AddRange(ThisNode); + } + } + } + + #region DebugDiagnostics +#if DEBUG + if (FailedListings.Count > 0) + { + string FailedAdds = ""; + foreach (FacetedSearch3.CUAHSIFacetedSearch.OntologyElement o in FailedListings) + { + FailedAdds += string.Format("cID: {0}, cName: {1}, synonym: {2}\n ", o.cConceptID, o.cConceptName, o.Synonym); + } + MessageBox.Show(string.Format("There were {0} Failed Adds: {1}", FailedListings.Count, FailedAdds)); + } + + int LeafNodes = 0; + foreach (TreeNode n in FacetTree.Nodes) + { + if (n.Nodes.Count < 1) + { + LeafNodes++; + } + } + + // MessageBox.Show(string.Format("There are {0} nodes in the FacetTree, {1} objects in RemainingFacets, and {2} LeafNodes in FacetTree", FacetTree.Nodes.Count, RemainingFacets.Count, LeafNodes)); +#endif + #endregion + } + + /// + /// Recursively makes children of the root from Options + /// + /// + /// + private void AddChildrenToFacetSearchRoot(TreeNode root) + { + // Loads up entire tree - could then prune from here + foreach (List os in Orphans + .Where(r => r.cConceptID == (root.Tag as List).First().cConceptID) + .GroupBy(r => r.cConceptID).ToList()) + { + TreeNode n = CreateCUAHSITreeNode(os); + AddChildrenToFacetSearchRoot(n); + root.Nodes.Add(n); + } + } + + /// + /// Decorates a TreeNode object with Tag, Name, and Text properties to facilitate lookups and querying + /// + /// List of OntologyElements with the same ConceptID + /// + private static TreeNode CreateCUAHSITreeNode(List os) + { + TreeNode n = new TreeNode(); + n.Name = os.First().cConceptID.ToString(); + n.Text = os.First().cConceptName; + n.Tag = os; + return n; + } + + private void NextBtn_Click(object sender, EventArgs e) + { + FacetedSearchHost.InvokeNextButton(CollectTotalSelectedFacets(), MyFacetIndex); + } + + /// + /// Retrieves a list of OntologyElements from the checked facets of the faceted search + /// + /// + private List CollectTotalSelectedFacets() + { + MySelectedFacets.Clear(); + foreach (TreeNode n in FacetTree.Nodes) + { + List SelectedNodes = GetCheckedLeafChildren(n, new List()); + foreach (TreeNode d in SelectedNodes) + { + MySelectedFacets.Add((d.Tag as List).First()); + } + } + + List TotalSelectedFacets = new List(); + TotalSelectedFacets.AddRange(PreviousSelectedOntologyElements); + TotalSelectedFacets.AddRange(MySelectedFacets); + return TotalSelectedFacets; + } + + private void SearchBtn_Click(object sender, EventArgs e) + { + FacetedSearchHost.InvokeSearchButton(CollectTotalSelectedFacets()); + } + + /// + /// Manages UI interactivity due to selections within the facet tree + /// Selects + /// + /// + /// + private void FacetTree_AfterCheck(object sender, TreeViewEventArgs e) + { + if (e.Node.Checked) + { + // expand child nodes if there are just one of them + if (e.Node.Nodes.Count == 1) + { + e.Node.Expand(); + } + + // propagate selections to children + foreach (TreeNode n in e.Node.Nodes) + { + GovernChildren(n, true); + } + } + else + { + // propagate selections to childrens + foreach (TreeNode n in e.Node.Nodes) + { + GovernChildren(n, false); + } + } + } + + /// + /// Moves up the FacetTree until it finds a node with an OntologyElement with isRoot == True, signifying that it is a root node of the faceted search + /// + /// + /// + private TreeNode GetRootParentOfTreeNode(TreeNode n) + { + TreeNode NowNode = n; + while ((NowNode.Tag as List).First().IsRoot == false) + { + NowNode = n.Parent; + } + + return NowNode; + } + + /// + /// + /// + /// + /// + private void FacetTree_BeforeCheck(object sender, TreeViewCancelEventArgs e) + { + // CONSIDER IMPLEMENTING FILTER FOR NON-FIRST-SELECTION CHECKING HERE... SHOULD ALSO HAVE VISUAL CUE THOUGH + // e.Cancel = true; + } + + /// + /// Recursively check or uncheck TreeNode children. Handles single-child expansion too. Called AfterCheck. + /// + /// + /// + public void GovernChildren(TreeNode p, Boolean SetChecked) + { + p.Checked = SetChecked; + if (p.Nodes.Count > 1) + { + foreach (TreeNode n in p.Nodes) + { + GovernChildren(n, SetChecked); + } + } + else if (p.Nodes.Count > 0) + { + if (SetChecked) + { + p.Expand(); + } + + foreach (TreeNode n in p.Nodes) + { + GovernChildren(n, SetChecked); + } + } + } + + /// + /// Propagates a color down a tree + /// + /// + /// + public void ApplyColoringToNodeAndChildren(TreeNode p, Color c) + { + foreach (TreeNode n in p.Nodes) + { + ApplyColoringToNodeAndChildren(n, c); + } + } + + /// + /// Recursively finds the number of nodes that are checked in the tree, including the node that is passed + /// + /// + /// + public int CountCheckedChildren(TreeNode p, int NumSelected) + { + if (p.Checked) + { + NumSelected++; + } + + foreach (TreeNode n in p.Nodes) + { + NumSelected = CountCheckedChildren(n, NumSelected); + } + + return NumSelected; + } + + /// + /// Returns a list of all of the children of p that are checked and have no child-nodes + /// + /// + /// + public List GetCheckedLeafChildren(TreeNode p, List AlreadySelected) + { + // TO-DO: evolve behavior for selection to reflect canonical data binding to non-leaf/non-root items + if (p.Checked && p.Nodes.Count < 1) + { + AlreadySelected.Add(p); // only count those that are checked + } + + foreach (TreeNode n in p.Nodes) + { + AlreadySelected = GetCheckedLeafChildren(n, AlreadySelected); + } + + return AlreadySelected; + } + + /// + /// Removes me and all of my children from the search stack + /// + /// + /// + private void DeleteFacetBtn_Click(object sender, EventArgs e) + { + ac_Timer.Elapsed -= new ElapsedEventHandler(OnAutoCompleteStart); + FacetedSearchHost.InvokeDeleteFacetButton(MyFacetIndex); + } + + private void NextSQLBtn_Click(object sender, EventArgs e) + { + FacetedSearchHost.InvokeNextSQLButton(CollectTotalSelectedFacets(), MyFacetIndex); + } + + private void SearchSQLBtn_Click(object sender, EventArgs e) + { + FacetedSearchHost.InvokeSearchSQLButton(CollectTotalSelectedFacets()); + } + + /// + /// Event for autocomplete. Makes nodes visible. + /// + /// + /// + private void FacetTextBox_TextChanged(object sender, EventArgs e) + { + if (FacetTextBox.TextLength >= AutoComplete_charLim) + { + // reset timer before starting count again + if (ac_Timer.Enabled) + { + ac_Timer.Stop(); + } + + ac_Timer.Start(); + } + else + { + if (ac_Timer.Enabled) + { + ac_Timer.Stop(); + } + } + } + + /// + /// Exposes nodes of FacetTree that have canonical names or synonyms similar to the user's search terms + /// + /// + /// + private void OnAutoCompleteStart(object source, ElapsedEventArgs e) + { + // MessageBox.Show(string.Format("Autocompleting now for '{0}'...", FacetTextBox.Text.Trim())); + + String[] sTerms = FacetTextBox.Text.Trim().Split(new char[' ']); + + Dictionary ExposeIndexes = new Dictionary(); + foreach (string s in sTerms) + { + foreach (TreeNode n in FacetTree.Nodes) + { + ExposeIndexes = GetExposeChildren(n, s.Trim(new char[',']), ExposeIndexes); // do not include commas in the autocomplete search + } + } + + ExposeNodesCallback en = new ExposeNodesCallback(ExposeNodes); + this.Invoke(en, new object[] { ExposeIndexes }); + + ExposeIndexes.Clear(); + // MessageBox.Show("Autocompleting done."); + } + + /// + /// Recursive function for searching for children to expose in a UI tree by their canonical name and synonyms + /// + /// + private Dictionary GetExposeChildren(TreeNode p, String src, Dictionary exp) + { + foreach (TreeNode n in p.Nodes) + { + /* + if (n.Checked) // make sure all previously-checked selections are still visible + { + exp.Add((n.Tag as List).First().cConceptID, null); // null signifies that + } + else // select to expose as visible if this node matches the user's search + {*/ + // create single list of names for string matching to this node + List TagNames = (n.Tag as List).Select(r => r.cConceptName).ToList(); + TagNames.AddRange((n.Tag as List).Select(r => r.Synonym)); + + // tag this node for exposure if it matches the current search term + if (TagNames.Distinct().Any(r => r.IndexOf(src, StringComparison.OrdinalIgnoreCase) >= 0)) + { + exp.Add((n.Tag as List).First().cConceptID, TagNames.Where(r => r.IndexOf(src, StringComparison.OrdinalIgnoreCase) >= 0).First()); + } + + if (n.Nodes.Count > 0) + { + Dictionary cExp = GetExposeChildren(n, src, exp); + foreach (KeyValuePair k in cExp) + { + try + { + if (!exp.ContainsKey(k.Key)) // examine... in theory, for just 1 search word, this should not be needed (but it is...) + { + exp.Add(k.Key, k.Value); + } + } + catch (Exception e) + { + Console.WriteLine("Error adding key {0} value {1} with message {2}", k.Key, k.Value, e.Message); + } + } + } + // } + } + return exp; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchFacetSpecifier.designer.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchFacetSpecifier.designer.cs new file mode 100644 index 00000000..e4e6e392 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchFacetSpecifier.designer.cs @@ -0,0 +1,194 @@ +namespace FacetedSearch3 +{ + partial class SearchFacetSpecifier + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.ButtonsPanel = new System.Windows.Forms.Panel(); + this.SearchSQLBtn = new System.Windows.Forms.Button(); + this.NextSQLBtn = new System.Windows.Forms.Button(); + this.SearchBtn = new System.Windows.Forms.Button(); + this.NextBtn = new System.Windows.Forms.Button(); + this.FacetTextBox = new System.Windows.Forms.TextBox(); + this.FacetTree = new System.Windows.Forms.TreeView(); + this.DeleteFacetBtn = new System.Windows.Forms.Button(); + this.SearchPanel = new System.Windows.Forms.Panel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.ButtonsPanel.SuspendLayout(); + this.SearchPanel.SuspendLayout(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // ButtonsPanel + // + this.ButtonsPanel.Controls.Add(this.SearchSQLBtn); + this.ButtonsPanel.Controls.Add(this.NextSQLBtn); + this.ButtonsPanel.Controls.Add(this.SearchBtn); + this.ButtonsPanel.Controls.Add(this.NextBtn); + this.ButtonsPanel.Dock = System.Windows.Forms.DockStyle.Bottom; + this.ButtonsPanel.Location = new System.Drawing.Point(0, 217); + this.ButtonsPanel.Name = "ButtonsPanel"; + this.ButtonsPanel.Size = new System.Drawing.Size(250, 32); + this.ButtonsPanel.TabIndex = 0; + // + // SearchSQLBtn + // + this.SearchSQLBtn.Dock = System.Windows.Forms.DockStyle.Left; + this.SearchSQLBtn.Location = new System.Drawing.Point(184, 0); + this.SearchSQLBtn.Margin = new System.Windows.Forms.Padding(5); + this.SearchSQLBtn.Name = "SearchSQLBtn"; + this.SearchSQLBtn.Size = new System.Drawing.Size(65, 32); + this.SearchSQLBtn.TabIndex = 3; + this.SearchSQLBtn.Text = "Srch SQL"; + this.SearchSQLBtn.UseVisualStyleBackColor = true; + this.SearchSQLBtn.Click += new System.EventHandler(this.SearchSQLBtn_Click); + // + // NextSQLBtn + // + this.NextSQLBtn.Dock = System.Windows.Forms.DockStyle.Left; + this.NextSQLBtn.Location = new System.Drawing.Point(119, 0); + this.NextSQLBtn.Margin = new System.Windows.Forms.Padding(5); + this.NextSQLBtn.Name = "NextSQLBtn"; + this.NextSQLBtn.Size = new System.Drawing.Size(65, 32); + this.NextSQLBtn.TabIndex = 2; + this.NextSQLBtn.Text = "Next SQL"; + this.NextSQLBtn.UseVisualStyleBackColor = true; + this.NextSQLBtn.Click += new System.EventHandler(this.NextSQLBtn_Click); + // + // SearchBtn + // + this.SearchBtn.Dock = System.Windows.Forms.DockStyle.Left; + this.SearchBtn.Location = new System.Drawing.Point(61, 0); + this.SearchBtn.Margin = new System.Windows.Forms.Padding(5); + this.SearchBtn.Name = "SearchBtn"; + this.SearchBtn.Size = new System.Drawing.Size(58, 32); + this.SearchBtn.TabIndex = 1; + this.SearchBtn.Text = "Search"; + this.SearchBtn.UseVisualStyleBackColor = true; + this.SearchBtn.Click += new System.EventHandler(this.SearchBtn_Click); + // + // NextBtn + // + this.NextBtn.Dock = System.Windows.Forms.DockStyle.Left; + this.NextBtn.Location = new System.Drawing.Point(0, 0); + this.NextBtn.Margin = new System.Windows.Forms.Padding(5); + this.NextBtn.Name = "NextBtn"; + this.NextBtn.Size = new System.Drawing.Size(61, 32); + this.NextBtn.TabIndex = 0; + this.NextBtn.Text = "Next"; + this.NextBtn.UseVisualStyleBackColor = true; + this.NextBtn.Click += new System.EventHandler(this.NextBtn_Click); + // + // FacetTextBox + // + this.FacetTextBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.FacetTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.FacetTextBox.Location = new System.Drawing.Point(0, 0); + this.FacetTextBox.Margin = new System.Windows.Forms.Padding(0); + this.FacetTextBox.Name = "FacetTextBox"; + this.FacetTextBox.Size = new System.Drawing.Size(219, 24); + this.FacetTextBox.TabIndex = 0; + this.FacetTextBox.TextChanged += new System.EventHandler(this.FacetTextBox_TextChanged); + // + // FacetTree + // + this.FacetTree.CheckBoxes = true; + this.FacetTree.Dock = System.Windows.Forms.DockStyle.Fill; + this.FacetTree.Location = new System.Drawing.Point(0, 0); + this.FacetTree.Name = "FacetTree"; + this.FacetTree.ShowNodeToolTips = true; + this.FacetTree.Size = new System.Drawing.Size(250, 188); + this.FacetTree.TabIndex = 0; + this.FacetTree.BeforeCheck += new System.Windows.Forms.TreeViewCancelEventHandler(this.FacetTree_BeforeCheck); + this.FacetTree.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.FacetTree_AfterCheck); + // + // DeleteFacetBtn + // + this.DeleteFacetBtn.Dock = System.Windows.Forms.DockStyle.Right; + this.DeleteFacetBtn.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.DeleteFacetBtn.Location = new System.Drawing.Point(219, 0); + this.DeleteFacetBtn.Name = "DeleteFacetBtn"; + this.DeleteFacetBtn.Size = new System.Drawing.Size(31, 29); + this.DeleteFacetBtn.TabIndex = 0; + this.DeleteFacetBtn.Text = "X"; + this.DeleteFacetBtn.TextAlign = System.Drawing.ContentAlignment.TopCenter; + this.DeleteFacetBtn.UseVisualStyleBackColor = true; + this.DeleteFacetBtn.Click += new System.EventHandler(this.DeleteFacetBtn_Click); + // + // SearchPanel + // + this.SearchPanel.Controls.Add(this.FacetTextBox); + this.SearchPanel.Controls.Add(this.DeleteFacetBtn); + this.SearchPanel.Dock = System.Windows.Forms.DockStyle.Top; + this.SearchPanel.Location = new System.Drawing.Point(0, 0); + this.SearchPanel.Name = "SearchPanel"; + this.SearchPanel.Size = new System.Drawing.Size(250, 29); + this.SearchPanel.TabIndex = 1; + // + // panel1 + // + this.panel1.Controls.Add(this.FacetTree); + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point(0, 29); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(250, 188); + this.panel1.TabIndex = 2; + // + // SearchFacetSpecifier + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Controls.Add(this.panel1); + this.Controls.Add(this.SearchPanel); + this.Controls.Add(this.ButtonsPanel); + this.MinimumSize = new System.Drawing.Size(250, 250); + this.Name = "SearchFacetSpecifier"; + this.Size = new System.Drawing.Size(250, 249); + this.ButtonsPanel.ResumeLayout(false); + this.SearchPanel.ResumeLayout(false); + this.SearchPanel.PerformLayout(); + this.panel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel ButtonsPanel; + private System.Windows.Forms.Button SearchSQLBtn; + private System.Windows.Forms.Button NextSQLBtn; + private System.Windows.Forms.Button SearchBtn; + private System.Windows.Forms.Button NextBtn; + private System.Windows.Forms.TextBox FacetTextBox; + private System.Windows.Forms.TreeView FacetTree; + private System.Windows.Forms.Button DeleteFacetBtn; + private System.Windows.Forms.Panel SearchPanel; + private System.Windows.Forms.Panel panel1; + + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchFacetSpecifier.resx b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchFacetSpecifier.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchFacetSpecifier.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchLayerCreator.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchLayerCreator.cs new file mode 100644 index 00000000..8cbbc9f6 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchLayerCreator.cs @@ -0,0 +1,128 @@ +using System; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Symbology; +using System.Linq; + +namespace FacetedSearch3.Searching +{ + class SearchLayerCreator + { + #region Fields + + private readonly IMap _map; + private readonly SearchResult _searchResult; + private readonly string _searchGroupName; + + #endregion + + #region Constructors + + /// + /// Constructor of + /// + /// Map + /// Search result + /// Name of search layers group. + public SearchLayerCreator(IMap map, SearchResult searchResult, string searchGroupName) + { + if (map == null) throw new ArgumentNullException("map"); + if (searchResult == null) throw new ArgumentNullException("searchResult"); + if (searchGroupName == null) throw new ArgumentNullException("searchGroupName"); + + _map = map; + _searchResult = searchResult; + _searchGroupName = searchGroupName; + } + + #endregion + + #region Public methods + + /// + /// Create search layer + /// + public void Create() + { + var root = GetSearchResultLayerGroup() ?? new MapGroup(_map, _searchGroupName); + foreach(var item in _searchResult.ResultItems) + { + var subResultLayer = CreateSearchResultLayer(item, root); + root.Add(subResultLayer); + } + _map.Refresh(); + + //assign the projection again + foreach (var item in _searchResult.ResultItems) + item.FeatureSet.Reproject(_map.Projection); + + for (int i = 0; i < root.Layers.Count; i++) + { + var layer = root[i]; + var state = i == 0; + var rendItem = layer as IRenderableLegendItem; + if (rendItem != null) + { + rendItem.IsVisible = state; // force a re-draw in the case where we are talking about layers. + } + else + { + layer.Checked = state; + } + } + + _map.Refresh(); + } + + #endregion + + #region Private methods + + private MapPointLayer CreateSearchResultLayer(SearchResultItem item, MapGroup root) + { + var myLayer = new MapPointLayer(item.FeatureSet); + + // Get Title of web-server + var webService = Settings.SearchSettings.Instance.WebServicesSettings.WebServices.FirstOrDefault( + ws => ws.ServiceCode == item.SeriesDataCart.ServCode); + var defaulLegendText = webService != null? webService.Title : item.SeriesDataCart.ServCode; + + // Build legend text + var legendText = defaulLegendText; + int nameIndex = 1; + while(true) + { + // Check if legend text is already used + var nameUsed = root.Layers.Any(layer => layer.LegendText == legendText); + if (!nameUsed) + { + break; + } + + // Create new legend text + nameIndex++; + legendText = string.Format("{0} ({1})", defaulLegendText, nameIndex); + } + + myLayer.LegendText = legendText; + return myLayer; + } + + private MapGroup GetSearchResultLayerGroup() + { + MapGroup layer = null; + foreach (var lay in _map.Layers) + { + if (lay is MapGroup && + lay.LegendText.ToLower() == _searchGroupName.ToLower()) + { + layer = lay as MapGroup; + break; + } + } + return layer; + } + + #endregion + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchResult.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchResult.cs new file mode 100644 index 00000000..cd23bff8 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Searching/SearchResult.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using DotSpatial.Data; +using HydroDesktop.Interfaces.ObjectModel; + +namespace FacetedSearch3.Searching +{ + public class SearchResult + { + private readonly IEnumerable _featuresPerDataSource; + + public SearchResult(IEnumerable featuresPerDataSource) + { + if (featuresPerDataSource == null) throw new ArgumentNullException("featuresPerDataSource"); + _featuresPerDataSource = featuresPerDataSource; + } + + /// + /// Dictionary of features per DataSources + /// + public IEnumerable ResultItems + { + get { return _featuresPerDataSource; } + } + + public bool IsEmpty() + { + return ResultItems.All(item => item.FeatureSet.Features.Count <= 0); + } + } + + public class SearchResultItem + { + public SeriesDataCart SeriesDataCart { get; private set; } + public IFeatureSet FeatureSet { get; private set; } + + public SearchResultItem(SeriesDataCart seriesDataCart, IFeatureSet featureSet) + { + if (seriesDataCart == null) throw new ArgumentNullException("seriesDataCart"); + if (featureSet == null) throw new ArgumentNullException("featureSet"); + + SeriesDataCart = seriesDataCart; + FeatureSet = featureSet; + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/FacetedSearch3.CUAHSIFacetedSearch.OntologyElement.datasource b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/FacetedSearch3.CUAHSIFacetedSearch.OntologyElement.datasource new file mode 100644 index 00000000..b4c25ea3 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/FacetedSearch3.CUAHSIFacetedSearch.OntologyElement.datasource @@ -0,0 +1,10 @@ + + + + FacetedSearch3.CUAHSIFacetedSearch.OntologyElement, FacetedSearch3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/FacetedSearch3.CUAHSIFacetedSearch.OntologyEnvelope.datasource b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/FacetedSearch3.CUAHSIFacetedSearch.OntologyEnvelope.datasource new file mode 100644 index 00000000..78e0b3fc --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/FacetedSearch3.CUAHSIFacetedSearch.OntologyEnvelope.datasource @@ -0,0 +1,10 @@ + + + + FacetedSearch3.CUAHSIFacetedSearch.OntologyEnvelope, FacetedSearch3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/FacetedSearch3.CUAHSIFacetedSearch.SelectionDensityReport.datasource b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/FacetedSearch3.CUAHSIFacetedSearch.SelectionDensityReport.datasource new file mode 100644 index 00000000..27b92678 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/FacetedSearch3.CUAHSIFacetedSearch.SelectionDensityReport.datasource @@ -0,0 +1,10 @@ + + + + FacetedSearch3.CUAHSIFacetedSearch.SelectionDensityReport, FacetedSearch3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/FacetedSearch3.CUAHSIFacetedSearch.SeriesCatalogRecord.datasource b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/FacetedSearch3.CUAHSIFacetedSearch.SeriesCatalogRecord.datasource new file mode 100644 index 00000000..c6a89fea --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/FacetedSearch3.CUAHSIFacetedSearch.SeriesCatalogRecord.datasource @@ -0,0 +1,10 @@ + + + + FacetedSearch3.CUAHSIFacetedSearch.SeriesCatalogRecord, FacetedSearch3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISService.wsdl b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISService.wsdl new file mode 100644 index 00000000..3f2e488d --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISService.wsdl @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISSvc.disco b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISSvc.disco new file mode 100644 index 00000000..a1c595db --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISSvc.disco @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISSvc.xsd b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISSvc.xsd new file mode 100644 index 00000000..32e1c19a --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISSvc.xsd @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISSvc1.xsd b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISSvc1.xsd new file mode 100644 index 00000000..8bab7108 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISSvc1.xsd @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISSvc2.xsd b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISSvc2.xsd new file mode 100644 index 00000000..3153efe6 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISSvc2.xsd @@ -0,0 +1,28 @@ + + + + + + + true + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISSvc3.xsd b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISSvc3.xsd new file mode 100644 index 00000000..f1a962ec --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/MultiFacetedHISSvc3.xsd @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/Reference.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/Reference.cs new file mode 100644 index 00000000..31d69193 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/Reference.cs @@ -0,0 +1,1814 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.239 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace FacetedSearch3.CUAHSIFacetedSearch { + using System.Runtime.Serialization; + using System; + + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="OntologyElement", Namespace="http://schemas.datacontract.org/2004/07/MultiFacetedHIS")] + [System.SerializableAttribute()] + public partial class OntologyElement : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private bool IsLeafField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private bool IsRootField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private bool IsSearchableField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int LayerField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int QuerystructuretblField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string SynonymField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int cConceptIDField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string cConceptNameField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int cParentIDField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string itsJoinPropertyField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private double latitudeField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private double longitudeField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string myJoinPropertyField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string mySearchPropertyField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int seriesCatalogDistanceField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int tblJoinsToField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string tblNameField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public bool IsLeaf { + get { + return this.IsLeafField; + } + set { + if ((this.IsLeafField.Equals(value) != true)) { + this.IsLeafField = value; + this.RaisePropertyChanged("IsLeaf"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public bool IsRoot { + get { + return this.IsRootField; + } + set { + if ((this.IsRootField.Equals(value) != true)) { + this.IsRootField = value; + this.RaisePropertyChanged("IsRoot"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public bool IsSearchable { + get { + return this.IsSearchableField; + } + set { + if ((this.IsSearchableField.Equals(value) != true)) { + this.IsSearchableField = value; + this.RaisePropertyChanged("IsSearchable"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int Layer { + get { + return this.LayerField; + } + set { + if ((this.LayerField.Equals(value) != true)) { + this.LayerField = value; + this.RaisePropertyChanged("Layer"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int Querystructuretbl { + get { + return this.QuerystructuretblField; + } + set { + if ((this.QuerystructuretblField.Equals(value) != true)) { + this.QuerystructuretblField = value; + this.RaisePropertyChanged("Querystructuretbl"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string Synonym { + get { + return this.SynonymField; + } + set { + if ((object.ReferenceEquals(this.SynonymField, value) != true)) { + this.SynonymField = value; + this.RaisePropertyChanged("Synonym"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int cConceptID { + get { + return this.cConceptIDField; + } + set { + if ((this.cConceptIDField.Equals(value) != true)) { + this.cConceptIDField = value; + this.RaisePropertyChanged("cConceptID"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string cConceptName { + get { + return this.cConceptNameField; + } + set { + if ((object.ReferenceEquals(this.cConceptNameField, value) != true)) { + this.cConceptNameField = value; + this.RaisePropertyChanged("cConceptName"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int cParentID { + get { + return this.cParentIDField; + } + set { + if ((this.cParentIDField.Equals(value) != true)) { + this.cParentIDField = value; + this.RaisePropertyChanged("cParentID"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string itsJoinProperty { + get { + return this.itsJoinPropertyField; + } + set { + if ((object.ReferenceEquals(this.itsJoinPropertyField, value) != true)) { + this.itsJoinPropertyField = value; + this.RaisePropertyChanged("itsJoinProperty"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public double latitude { + get { + return this.latitudeField; + } + set { + if ((this.latitudeField.Equals(value) != true)) { + this.latitudeField = value; + this.RaisePropertyChanged("latitude"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public double longitude { + get { + return this.longitudeField; + } + set { + if ((this.longitudeField.Equals(value) != true)) { + this.longitudeField = value; + this.RaisePropertyChanged("longitude"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string myJoinProperty { + get { + return this.myJoinPropertyField; + } + set { + if ((object.ReferenceEquals(this.myJoinPropertyField, value) != true)) { + this.myJoinPropertyField = value; + this.RaisePropertyChanged("myJoinProperty"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string mySearchProperty { + get { + return this.mySearchPropertyField; + } + set { + if ((object.ReferenceEquals(this.mySearchPropertyField, value) != true)) { + this.mySearchPropertyField = value; + this.RaisePropertyChanged("mySearchProperty"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int seriesCatalogDistance { + get { + return this.seriesCatalogDistanceField; + } + set { + if ((this.seriesCatalogDistanceField.Equals(value) != true)) { + this.seriesCatalogDistanceField = value; + this.RaisePropertyChanged("seriesCatalogDistance"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int tblJoinsTo { + get { + return this.tblJoinsToField; + } + set { + if ((this.tblJoinsToField.Equals(value) != true)) { + this.tblJoinsToField = value; + this.RaisePropertyChanged("tblJoinsTo"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string tblName { + get { + return this.tblNameField; + } + set { + if ((object.ReferenceEquals(this.tblNameField, value) != true)) { + this.tblNameField = value; + this.RaisePropertyChanged("tblName"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="OntologyEnvelope", Namespace="http://schemas.datacontract.org/2004/07/MultiFacetedHIS")] + [System.SerializableAttribute()] + public partial class OntologyEnvelope : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] OntologyElementsField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private FacetedSearch3.CUAHSIFacetedSearch.SiteData[] SitesField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] OntologyElements { + get { + return this.OntologyElementsField; + } + set { + if ((object.ReferenceEquals(this.OntologyElementsField, value) != true)) { + this.OntologyElementsField = value; + this.RaisePropertyChanged("OntologyElements"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public FacetedSearch3.CUAHSIFacetedSearch.SiteData[] Sites { + get { + return this.SitesField; + } + set { + if ((object.ReferenceEquals(this.SitesField, value) != true)) { + this.SitesField = value; + this.RaisePropertyChanged("Sites"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="SiteData", Namespace="http://schemas.datacontract.org/2004/07/MultiFacetedHIS")] + [System.SerializableAttribute()] + public partial class SiteData : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int SiteIDField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private double latitudeField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private double longitudeField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int SiteID { + get { + return this.SiteIDField; + } + set { + if ((this.SiteIDField.Equals(value) != true)) { + this.SiteIDField = value; + this.RaisePropertyChanged("SiteID"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public double latitude { + get { + return this.latitudeField; + } + set { + if ((this.latitudeField.Equals(value) != true)) { + this.latitudeField = value; + this.RaisePropertyChanged("latitude"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public double longitude { + get { + return this.longitudeField; + } + set { + if ((this.longitudeField.Equals(value) != true)) { + this.longitudeField = value; + this.RaisePropertyChanged("longitude"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="SeriesCatalogRecord", Namespace="http://schemas.datacontract.org/2004/07/MultiFacetedHIS")] + [System.SerializableAttribute()] + public partial class SeriesCatalogRecord : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private System.DateTime EndDateField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private double LatitudeField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private double LongitudeField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int SeriesIDField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string ServCodeField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string ServURLField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string SiteCodeField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int SiteIDField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string SiteNameField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private System.DateTime StartDateField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int ValueCountField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string VarCodeField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private string VariableNameField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public System.DateTime EndDate { + get { + return this.EndDateField; + } + set { + if ((this.EndDateField.Equals(value) != true)) { + this.EndDateField = value; + this.RaisePropertyChanged("EndDate"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public double Latitude { + get { + return this.LatitudeField; + } + set { + if ((this.LatitudeField.Equals(value) != true)) { + this.LatitudeField = value; + this.RaisePropertyChanged("Latitude"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public double Longitude { + get { + return this.LongitudeField; + } + set { + if ((this.LongitudeField.Equals(value) != true)) { + this.LongitudeField = value; + this.RaisePropertyChanged("Longitude"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int SeriesID { + get { + return this.SeriesIDField; + } + set { + if ((this.SeriesIDField.Equals(value) != true)) { + this.SeriesIDField = value; + this.RaisePropertyChanged("SeriesID"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string ServCode { + get { + return this.ServCodeField; + } + set { + if ((object.ReferenceEquals(this.ServCodeField, value) != true)) { + this.ServCodeField = value; + this.RaisePropertyChanged("ServCode"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string ServURL { + get { + return this.ServURLField; + } + set { + if ((object.ReferenceEquals(this.ServURLField, value) != true)) { + this.ServURLField = value; + this.RaisePropertyChanged("ServURL"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string SiteCode { + get { + return this.SiteCodeField; + } + set { + if ((object.ReferenceEquals(this.SiteCodeField, value) != true)) { + this.SiteCodeField = value; + this.RaisePropertyChanged("SiteCode"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int SiteID { + get { + return this.SiteIDField; + } + set { + if ((this.SiteIDField.Equals(value) != true)) { + this.SiteIDField = value; + this.RaisePropertyChanged("SiteID"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string SiteName { + get { + return this.SiteNameField; + } + set { + if ((object.ReferenceEquals(this.SiteNameField, value) != true)) { + this.SiteNameField = value; + this.RaisePropertyChanged("SiteName"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public System.DateTime StartDate { + get { + return this.StartDateField; + } + set { + if ((this.StartDateField.Equals(value) != true)) { + this.StartDateField = value; + this.RaisePropertyChanged("StartDate"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int ValueCount { + get { + return this.ValueCountField; + } + set { + if ((this.ValueCountField.Equals(value) != true)) { + this.ValueCountField = value; + this.RaisePropertyChanged("ValueCount"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string VarCode { + get { + return this.VarCodeField; + } + set { + if ((object.ReferenceEquals(this.VarCodeField, value) != true)) { + this.VarCodeField = value; + this.RaisePropertyChanged("VarCode"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string VariableName { + get { + return this.VariableNameField; + } + set { + if ((object.ReferenceEquals(this.VariableNameField, value) != true)) { + this.VariableNameField = value; + this.RaisePropertyChanged("VariableName"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="SelectionDensityReport", Namespace="http://schemas.datacontract.org/2004/07/MultiFacetedHIS")] + [System.SerializableAttribute()] + public partial class SelectionDensityReport : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private System.DateTime BeginTimeField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int ChoiceCountField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private System.DateTime EndTimeField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private System.Collections.Generic.Dictionary FacetSelectionField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] FacetSelectionRootField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int Layer1OptionsField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int Layer2OptionsField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int Layer3OptionsField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int Layer4OptionsField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int Layer5OptionsField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int Layer6OptionsField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int Layer7OptionsField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int Layer8OptionsField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private double MaxXField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private double MaxYField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private double MinXField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private double MinYField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int OntologyCountField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] RemainingOntologyElementsField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int RootLayerOptionsField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int SeriesCountField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private int[] TopConstraintDimensionsField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private System.Collections.Generic.Dictionary TopConstraintSelectionField; + + [System.Runtime.Serialization.OptionalFieldAttribute()] + private long ValueCountField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public System.DateTime BeginTime { + get { + return this.BeginTimeField; + } + set { + if ((this.BeginTimeField.Equals(value) != true)) { + this.BeginTimeField = value; + this.RaisePropertyChanged("BeginTime"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int ChoiceCount { + get { + return this.ChoiceCountField; + } + set { + if ((this.ChoiceCountField.Equals(value) != true)) { + this.ChoiceCountField = value; + this.RaisePropertyChanged("ChoiceCount"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public System.DateTime EndTime { + get { + return this.EndTimeField; + } + set { + if ((this.EndTimeField.Equals(value) != true)) { + this.EndTimeField = value; + this.RaisePropertyChanged("EndTime"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public System.Collections.Generic.Dictionary FacetSelection { + get { + return this.FacetSelectionField; + } + set { + if ((object.ReferenceEquals(this.FacetSelectionField, value) != true)) { + this.FacetSelectionField = value; + this.RaisePropertyChanged("FacetSelection"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] FacetSelectionRoot { + get { + return this.FacetSelectionRootField; + } + set { + if ((object.ReferenceEquals(this.FacetSelectionRootField, value) != true)) { + this.FacetSelectionRootField = value; + this.RaisePropertyChanged("FacetSelectionRoot"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int Layer1Options { + get { + return this.Layer1OptionsField; + } + set { + if ((this.Layer1OptionsField.Equals(value) != true)) { + this.Layer1OptionsField = value; + this.RaisePropertyChanged("Layer1Options"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int Layer2Options { + get { + return this.Layer2OptionsField; + } + set { + if ((this.Layer2OptionsField.Equals(value) != true)) { + this.Layer2OptionsField = value; + this.RaisePropertyChanged("Layer2Options"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int Layer3Options { + get { + return this.Layer3OptionsField; + } + set { + if ((this.Layer3OptionsField.Equals(value) != true)) { + this.Layer3OptionsField = value; + this.RaisePropertyChanged("Layer3Options"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int Layer4Options { + get { + return this.Layer4OptionsField; + } + set { + if ((this.Layer4OptionsField.Equals(value) != true)) { + this.Layer4OptionsField = value; + this.RaisePropertyChanged("Layer4Options"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int Layer5Options { + get { + return this.Layer5OptionsField; + } + set { + if ((this.Layer5OptionsField.Equals(value) != true)) { + this.Layer5OptionsField = value; + this.RaisePropertyChanged("Layer5Options"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int Layer6Options { + get { + return this.Layer6OptionsField; + } + set { + if ((this.Layer6OptionsField.Equals(value) != true)) { + this.Layer6OptionsField = value; + this.RaisePropertyChanged("Layer6Options"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int Layer7Options { + get { + return this.Layer7OptionsField; + } + set { + if ((this.Layer7OptionsField.Equals(value) != true)) { + this.Layer7OptionsField = value; + this.RaisePropertyChanged("Layer7Options"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int Layer8Options { + get { + return this.Layer8OptionsField; + } + set { + if ((this.Layer8OptionsField.Equals(value) != true)) { + this.Layer8OptionsField = value; + this.RaisePropertyChanged("Layer8Options"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public double MaxX { + get { + return this.MaxXField; + } + set { + if ((this.MaxXField.Equals(value) != true)) { + this.MaxXField = value; + this.RaisePropertyChanged("MaxX"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public double MaxY { + get { + return this.MaxYField; + } + set { + if ((this.MaxYField.Equals(value) != true)) { + this.MaxYField = value; + this.RaisePropertyChanged("MaxY"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public double MinX { + get { + return this.MinXField; + } + set { + if ((this.MinXField.Equals(value) != true)) { + this.MinXField = value; + this.RaisePropertyChanged("MinX"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public double MinY { + get { + return this.MinYField; + } + set { + if ((this.MinYField.Equals(value) != true)) { + this.MinYField = value; + this.RaisePropertyChanged("MinY"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int OntologyCount { + get { + return this.OntologyCountField; + } + set { + if ((this.OntologyCountField.Equals(value) != true)) { + this.OntologyCountField = value; + this.RaisePropertyChanged("OntologyCount"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] RemainingOntologyElements { + get { + return this.RemainingOntologyElementsField; + } + set { + if ((object.ReferenceEquals(this.RemainingOntologyElementsField, value) != true)) { + this.RemainingOntologyElementsField = value; + this.RaisePropertyChanged("RemainingOntologyElements"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int RootLayerOptions { + get { + return this.RootLayerOptionsField; + } + set { + if ((this.RootLayerOptionsField.Equals(value) != true)) { + this.RootLayerOptionsField = value; + this.RaisePropertyChanged("RootLayerOptions"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int SeriesCount { + get { + return this.SeriesCountField; + } + set { + if ((this.SeriesCountField.Equals(value) != true)) { + this.SeriesCountField = value; + this.RaisePropertyChanged("SeriesCount"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public int[] TopConstraintDimensions { + get { + return this.TopConstraintDimensionsField; + } + set { + if ((object.ReferenceEquals(this.TopConstraintDimensionsField, value) != true)) { + this.TopConstraintDimensionsField = value; + this.RaisePropertyChanged("TopConstraintDimensions"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public System.Collections.Generic.Dictionary TopConstraintSelection { + get { + return this.TopConstraintSelectionField; + } + set { + if ((object.ReferenceEquals(this.TopConstraintSelectionField, value) != true)) { + this.TopConstraintSelectionField = value; + this.RaisePropertyChanged("TopConstraintSelection"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public long ValueCount { + get { + return this.ValueCountField; + } + set { + if ((this.ValueCountField.Equals(value) != true)) { + this.ValueCountField = value; + this.RaisePropertyChanged("ValueCount"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(ConfigurationName="CUAHSIFacetedSearch.MultiFacetedHISSvc")] + public interface MultiFacetedHISSvc { + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/MultiFacetedHISSvc/GetOntologyElements", ReplyAction="http://tempuri.org/MultiFacetedHISSvc/GetOntologyElementsResponse")] + FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] GetOntologyElements(); + + [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/MultiFacetedHISSvc/GetOntologyElements", ReplyAction="http://tempuri.org/MultiFacetedHISSvc/GetOntologyElementsResponse")] + System.IAsyncResult BeginGetOntologyElements(System.AsyncCallback callback, object asyncState); + + FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] EndGetOntologyElements(System.IAsyncResult result); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/MultiFacetedHISSvc/GetOntologyElementsGivenConstraints", ReplyAction="http://tempuri.org/MultiFacetedHISSvc/GetOntologyElementsGivenConstraintsResponse" + + "")] + FacetedSearch3.CUAHSIFacetedSearch.OntologyEnvelope GetOntologyElementsGivenConstraints(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults); + + [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/MultiFacetedHISSvc/GetOntologyElementsGivenConstraints", ReplyAction="http://tempuri.org/MultiFacetedHISSvc/GetOntologyElementsGivenConstraintsResponse" + + "")] + System.IAsyncResult BeginGetOntologyElementsGivenConstraints(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults, System.AsyncCallback callback, object asyncState); + + FacetedSearch3.CUAHSIFacetedSearch.OntologyEnvelope EndGetOntologyElementsGivenConstraints(System.IAsyncResult result); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/MultiFacetedHISSvc/GetSeriesGivenConstraints", ReplyAction="http://tempuri.org/MultiFacetedHISSvc/GetSeriesGivenConstraintsResponse")] + FacetedSearch3.CUAHSIFacetedSearch.SeriesCatalogRecord[] GetSeriesGivenConstraints(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX); + + [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/MultiFacetedHISSvc/GetSeriesGivenConstraints", ReplyAction="http://tempuri.org/MultiFacetedHISSvc/GetSeriesGivenConstraintsResponse")] + System.IAsyncResult BeginGetSeriesGivenConstraints(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, System.AsyncCallback callback, object asyncState); + + FacetedSearch3.CUAHSIFacetedSearch.SeriesCatalogRecord[] EndGetSeriesGivenConstraints(System.IAsyncResult result); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/MultiFacetedHISSvc/GetOntologyElementsDataDensities", ReplyAction="http://tempuri.org/MultiFacetedHISSvc/GetOntologyElementsDataDensitiesResponse")] + FacetedSearch3.CUAHSIFacetedSearch.SelectionDensityReport GetOntologyElementsDataDensities(System.Collections.Generic.Dictionary Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults); + + [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/MultiFacetedHISSvc/GetOntologyElementsDataDensities", ReplyAction="http://tempuri.org/MultiFacetedHISSvc/GetOntologyElementsDataDensitiesResponse")] + System.IAsyncResult BeginGetOntologyElementsDataDensities(System.Collections.Generic.Dictionary Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults, System.AsyncCallback callback, object asyncState); + + FacetedSearch3.CUAHSIFacetedSearch.SelectionDensityReport EndGetOntologyElementsDataDensities(System.IAsyncResult result); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/MultiFacetedHISSvc/GetSQLOfNextQuery", ReplyAction="http://tempuri.org/MultiFacetedHISSvc/GetSQLOfNextQueryResponse")] + string GetSQLOfNextQuery(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults); + + [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/MultiFacetedHISSvc/GetSQLOfNextQuery", ReplyAction="http://tempuri.org/MultiFacetedHISSvc/GetSQLOfNextQueryResponse")] + System.IAsyncResult BeginGetSQLOfNextQuery(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults, System.AsyncCallback callback, object asyncState); + + string EndGetSQLOfNextQuery(System.IAsyncResult result); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/MultiFacetedHISSvc/GetSQLOfSearchQuery", ReplyAction="http://tempuri.org/MultiFacetedHISSvc/GetSQLOfSearchQueryResponse")] + string GetSQLOfSearchQuery(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults); + + [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/MultiFacetedHISSvc/GetSQLOfSearchQuery", ReplyAction="http://tempuri.org/MultiFacetedHISSvc/GetSQLOfSearchQueryResponse")] + System.IAsyncResult BeginGetSQLOfSearchQuery(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults, System.AsyncCallback callback, object asyncState); + + string EndGetSQLOfSearchQuery(System.IAsyncResult result); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/MultiFacetedHISSvc/GetSQLOfNextDensityQuery", ReplyAction="http://tempuri.org/MultiFacetedHISSvc/GetSQLOfNextDensityQueryResponse")] + string GetSQLOfNextDensityQuery(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults); + + [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/MultiFacetedHISSvc/GetSQLOfNextDensityQuery", ReplyAction="http://tempuri.org/MultiFacetedHISSvc/GetSQLOfNextDensityQueryResponse")] + System.IAsyncResult BeginGetSQLOfNextDensityQuery(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults, System.AsyncCallback callback, object asyncState); + + string EndGetSQLOfNextDensityQuery(System.IAsyncResult result); + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public interface MultiFacetedHISSvcChannel : FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvc, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class GetOntologyElementsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + public GetOntologyElementsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + public FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Result { + get { + base.RaiseExceptionIfNecessary(); + return ((FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[])(this.results[0])); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class GetOntologyElementsGivenConstraintsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + public GetOntologyElementsGivenConstraintsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + public FacetedSearch3.CUAHSIFacetedSearch.OntologyEnvelope Result { + get { + base.RaiseExceptionIfNecessary(); + return ((FacetedSearch3.CUAHSIFacetedSearch.OntologyEnvelope)(this.results[0])); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class GetSeriesGivenConstraintsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + public GetSeriesGivenConstraintsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + public FacetedSearch3.CUAHSIFacetedSearch.SeriesCatalogRecord[] Result { + get { + base.RaiseExceptionIfNecessary(); + return ((FacetedSearch3.CUAHSIFacetedSearch.SeriesCatalogRecord[])(this.results[0])); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class GetOntologyElementsDataDensitiesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + public GetOntologyElementsDataDensitiesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + public FacetedSearch3.CUAHSIFacetedSearch.SelectionDensityReport Result { + get { + base.RaiseExceptionIfNecessary(); + return ((FacetedSearch3.CUAHSIFacetedSearch.SelectionDensityReport)(this.results[0])); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class GetSQLOfNextQueryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + public GetSQLOfNextQueryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + public string Result { + get { + base.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class GetSQLOfSearchQueryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + public GetSQLOfSearchQueryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + public string Result { + get { + base.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class GetSQLOfNextDensityQueryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + public GetSQLOfNextDensityQueryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + public string Result { + get { + base.RaiseExceptionIfNecessary(); + return ((string)(this.results[0])); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class MultiFacetedHISSvcClient : System.ServiceModel.ClientBase, FacetedSearch3.CUAHSIFacetedSearch.MultiFacetedHISSvc { + + private BeginOperationDelegate onBeginGetOntologyElementsDelegate; + + private EndOperationDelegate onEndGetOntologyElementsDelegate; + + private System.Threading.SendOrPostCallback onGetOntologyElementsCompletedDelegate; + + private BeginOperationDelegate onBeginGetOntologyElementsGivenConstraintsDelegate; + + private EndOperationDelegate onEndGetOntologyElementsGivenConstraintsDelegate; + + private System.Threading.SendOrPostCallback onGetOntologyElementsGivenConstraintsCompletedDelegate; + + private BeginOperationDelegate onBeginGetSeriesGivenConstraintsDelegate; + + private EndOperationDelegate onEndGetSeriesGivenConstraintsDelegate; + + private System.Threading.SendOrPostCallback onGetSeriesGivenConstraintsCompletedDelegate; + + private BeginOperationDelegate onBeginGetOntologyElementsDataDensitiesDelegate; + + private EndOperationDelegate onEndGetOntologyElementsDataDensitiesDelegate; + + private System.Threading.SendOrPostCallback onGetOntologyElementsDataDensitiesCompletedDelegate; + + private BeginOperationDelegate onBeginGetSQLOfNextQueryDelegate; + + private EndOperationDelegate onEndGetSQLOfNextQueryDelegate; + + private System.Threading.SendOrPostCallback onGetSQLOfNextQueryCompletedDelegate; + + private BeginOperationDelegate onBeginGetSQLOfSearchQueryDelegate; + + private EndOperationDelegate onEndGetSQLOfSearchQueryDelegate; + + private System.Threading.SendOrPostCallback onGetSQLOfSearchQueryCompletedDelegate; + + private BeginOperationDelegate onBeginGetSQLOfNextDensityQueryDelegate; + + private EndOperationDelegate onEndGetSQLOfNextDensityQueryDelegate; + + private System.Threading.SendOrPostCallback onGetSQLOfNextDensityQueryCompletedDelegate; + + public MultiFacetedHISSvcClient() { + } + + public MultiFacetedHISSvcClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public MultiFacetedHISSvcClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public MultiFacetedHISSvcClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public MultiFacetedHISSvcClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + public event System.EventHandler GetOntologyElementsCompleted; + + public event System.EventHandler GetOntologyElementsGivenConstraintsCompleted; + + public event System.EventHandler GetSeriesGivenConstraintsCompleted; + + public event System.EventHandler GetOntologyElementsDataDensitiesCompleted; + + public event System.EventHandler GetSQLOfNextQueryCompleted; + + public event System.EventHandler GetSQLOfSearchQueryCompleted; + + public event System.EventHandler GetSQLOfNextDensityQueryCompleted; + + public FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] GetOntologyElements() { + return base.Channel.GetOntologyElements(); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public System.IAsyncResult BeginGetOntologyElements(System.AsyncCallback callback, object asyncState) { + return base.Channel.BeginGetOntologyElements(callback, asyncState); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] EndGetOntologyElements(System.IAsyncResult result) { + return base.Channel.EndGetOntologyElements(result); + } + + private System.IAsyncResult OnBeginGetOntologyElements(object[] inValues, System.AsyncCallback callback, object asyncState) { + return this.BeginGetOntologyElements(callback, asyncState); + } + + private object[] OnEndGetOntologyElements(System.IAsyncResult result) { + FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] retVal = this.EndGetOntologyElements(result); + return new object[] { + retVal}; + } + + private void OnGetOntologyElementsCompleted(object state) { + if ((this.GetOntologyElementsCompleted != null)) { + InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state)); + this.GetOntologyElementsCompleted(this, new GetOntologyElementsCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState)); + } + } + + public void GetOntologyElementsAsync() { + this.GetOntologyElementsAsync(null); + } + + public void GetOntologyElementsAsync(object userState) { + if ((this.onBeginGetOntologyElementsDelegate == null)) { + this.onBeginGetOntologyElementsDelegate = new BeginOperationDelegate(this.OnBeginGetOntologyElements); + } + if ((this.onEndGetOntologyElementsDelegate == null)) { + this.onEndGetOntologyElementsDelegate = new EndOperationDelegate(this.OnEndGetOntologyElements); + } + if ((this.onGetOntologyElementsCompletedDelegate == null)) { + this.onGetOntologyElementsCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetOntologyElementsCompleted); + } + base.InvokeAsync(this.onBeginGetOntologyElementsDelegate, null, this.onEndGetOntologyElementsDelegate, this.onGetOntologyElementsCompletedDelegate, userState); + } + + public FacetedSearch3.CUAHSIFacetedSearch.OntologyEnvelope GetOntologyElementsGivenConstraints(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults) { + return base.Channel.GetOntologyElementsGivenConstraints(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public System.IAsyncResult BeginGetOntologyElementsGivenConstraints(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults, System.AsyncCallback callback, object asyncState) { + return base.Channel.BeginGetOntologyElementsGivenConstraints(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults, callback, asyncState); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public FacetedSearch3.CUAHSIFacetedSearch.OntologyEnvelope EndGetOntologyElementsGivenConstraints(System.IAsyncResult result) { + return base.Channel.EndGetOntologyElementsGivenConstraints(result); + } + + private System.IAsyncResult OnBeginGetOntologyElementsGivenConstraints(object[] inValues, System.AsyncCallback callback, object asyncState) { + FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections = ((FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[])(inValues[0])); + System.DateTime BeginTime = ((System.DateTime)(inValues[1])); + System.DateTime EndTime = ((System.DateTime)(inValues[2])); + double MinY = ((double)(inValues[3])); + double MaxY = ((double)(inValues[4])); + double MinX = ((double)(inValues[5])); + double MaxX = ((double)(inValues[6])); + bool IncludeSpatialResults = ((bool)(inValues[7])); + return this.BeginGetOntologyElementsGivenConstraints(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults, callback, asyncState); + } + + private object[] OnEndGetOntologyElementsGivenConstraints(System.IAsyncResult result) { + FacetedSearch3.CUAHSIFacetedSearch.OntologyEnvelope retVal = this.EndGetOntologyElementsGivenConstraints(result); + return new object[] { + retVal}; + } + + private void OnGetOntologyElementsGivenConstraintsCompleted(object state) { + if ((this.GetOntologyElementsGivenConstraintsCompleted != null)) { + InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state)); + this.GetOntologyElementsGivenConstraintsCompleted(this, new GetOntologyElementsGivenConstraintsCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState)); + } + } + + public void GetOntologyElementsGivenConstraintsAsync(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults) { + this.GetOntologyElementsGivenConstraintsAsync(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults, null); + } + + public void GetOntologyElementsGivenConstraintsAsync(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults, object userState) { + if ((this.onBeginGetOntologyElementsGivenConstraintsDelegate == null)) { + this.onBeginGetOntologyElementsGivenConstraintsDelegate = new BeginOperationDelegate(this.OnBeginGetOntologyElementsGivenConstraints); + } + if ((this.onEndGetOntologyElementsGivenConstraintsDelegate == null)) { + this.onEndGetOntologyElementsGivenConstraintsDelegate = new EndOperationDelegate(this.OnEndGetOntologyElementsGivenConstraints); + } + if ((this.onGetOntologyElementsGivenConstraintsCompletedDelegate == null)) { + this.onGetOntologyElementsGivenConstraintsCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetOntologyElementsGivenConstraintsCompleted); + } + base.InvokeAsync(this.onBeginGetOntologyElementsGivenConstraintsDelegate, new object[] { + Selections, + BeginTime, + EndTime, + MinY, + MaxY, + MinX, + MaxX, + IncludeSpatialResults}, this.onEndGetOntologyElementsGivenConstraintsDelegate, this.onGetOntologyElementsGivenConstraintsCompletedDelegate, userState); + } + + public FacetedSearch3.CUAHSIFacetedSearch.SeriesCatalogRecord[] GetSeriesGivenConstraints(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX) { + return base.Channel.GetSeriesGivenConstraints(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public System.IAsyncResult BeginGetSeriesGivenConstraints(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, System.AsyncCallback callback, object asyncState) { + return base.Channel.BeginGetSeriesGivenConstraints(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, callback, asyncState); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public FacetedSearch3.CUAHSIFacetedSearch.SeriesCatalogRecord[] EndGetSeriesGivenConstraints(System.IAsyncResult result) { + return base.Channel.EndGetSeriesGivenConstraints(result); + } + + private System.IAsyncResult OnBeginGetSeriesGivenConstraints(object[] inValues, System.AsyncCallback callback, object asyncState) { + FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections = ((FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[])(inValues[0])); + System.DateTime BeginTime = ((System.DateTime)(inValues[1])); + System.DateTime EndTime = ((System.DateTime)(inValues[2])); + double MinY = ((double)(inValues[3])); + double MaxY = ((double)(inValues[4])); + double MinX = ((double)(inValues[5])); + double MaxX = ((double)(inValues[6])); + return this.BeginGetSeriesGivenConstraints(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, callback, asyncState); + } + + private object[] OnEndGetSeriesGivenConstraints(System.IAsyncResult result) { + FacetedSearch3.CUAHSIFacetedSearch.SeriesCatalogRecord[] retVal = this.EndGetSeriesGivenConstraints(result); + return new object[] { + retVal}; + } + + private void OnGetSeriesGivenConstraintsCompleted(object state) { + if ((this.GetSeriesGivenConstraintsCompleted != null)) { + InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state)); + this.GetSeriesGivenConstraintsCompleted(this, new GetSeriesGivenConstraintsCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState)); + } + } + + public void GetSeriesGivenConstraintsAsync(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX) { + this.GetSeriesGivenConstraintsAsync(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, null); + } + + public void GetSeriesGivenConstraintsAsync(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, object userState) { + if ((this.onBeginGetSeriesGivenConstraintsDelegate == null)) { + this.onBeginGetSeriesGivenConstraintsDelegate = new BeginOperationDelegate(this.OnBeginGetSeriesGivenConstraints); + } + if ((this.onEndGetSeriesGivenConstraintsDelegate == null)) { + this.onEndGetSeriesGivenConstraintsDelegate = new EndOperationDelegate(this.OnEndGetSeriesGivenConstraints); + } + if ((this.onGetSeriesGivenConstraintsCompletedDelegate == null)) { + this.onGetSeriesGivenConstraintsCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetSeriesGivenConstraintsCompleted); + } + base.InvokeAsync(this.onBeginGetSeriesGivenConstraintsDelegate, new object[] { + Selections, + BeginTime, + EndTime, + MinY, + MaxY, + MinX, + MaxX}, this.onEndGetSeriesGivenConstraintsDelegate, this.onGetSeriesGivenConstraintsCompletedDelegate, userState); + } + + public FacetedSearch3.CUAHSIFacetedSearch.SelectionDensityReport GetOntologyElementsDataDensities(System.Collections.Generic.Dictionary Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults) { + return base.Channel.GetOntologyElementsDataDensities(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public System.IAsyncResult BeginGetOntologyElementsDataDensities(System.Collections.Generic.Dictionary Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults, System.AsyncCallback callback, object asyncState) { + return base.Channel.BeginGetOntologyElementsDataDensities(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults, callback, asyncState); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public FacetedSearch3.CUAHSIFacetedSearch.SelectionDensityReport EndGetOntologyElementsDataDensities(System.IAsyncResult result) { + return base.Channel.EndGetOntologyElementsDataDensities(result); + } + + private System.IAsyncResult OnBeginGetOntologyElementsDataDensities(object[] inValues, System.AsyncCallback callback, object asyncState) { + System.Collections.Generic.Dictionary Selections = ((System.Collections.Generic.Dictionary)(inValues[0])); + System.DateTime BeginTime = ((System.DateTime)(inValues[1])); + System.DateTime EndTime = ((System.DateTime)(inValues[2])); + double MinY = ((double)(inValues[3])); + double MaxY = ((double)(inValues[4])); + double MinX = ((double)(inValues[5])); + double MaxX = ((double)(inValues[6])); + bool IncludeSpatialResults = ((bool)(inValues[7])); + return this.BeginGetOntologyElementsDataDensities(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults, callback, asyncState); + } + + private object[] OnEndGetOntologyElementsDataDensities(System.IAsyncResult result) { + FacetedSearch3.CUAHSIFacetedSearch.SelectionDensityReport retVal = this.EndGetOntologyElementsDataDensities(result); + return new object[] { + retVal}; + } + + private void OnGetOntologyElementsDataDensitiesCompleted(object state) { + if ((this.GetOntologyElementsDataDensitiesCompleted != null)) { + InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state)); + this.GetOntologyElementsDataDensitiesCompleted(this, new GetOntologyElementsDataDensitiesCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState)); + } + } + + public void GetOntologyElementsDataDensitiesAsync(System.Collections.Generic.Dictionary Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults) { + this.GetOntologyElementsDataDensitiesAsync(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults, null); + } + + public void GetOntologyElementsDataDensitiesAsync(System.Collections.Generic.Dictionary Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults, object userState) { + if ((this.onBeginGetOntologyElementsDataDensitiesDelegate == null)) { + this.onBeginGetOntologyElementsDataDensitiesDelegate = new BeginOperationDelegate(this.OnBeginGetOntologyElementsDataDensities); + } + if ((this.onEndGetOntologyElementsDataDensitiesDelegate == null)) { + this.onEndGetOntologyElementsDataDensitiesDelegate = new EndOperationDelegate(this.OnEndGetOntologyElementsDataDensities); + } + if ((this.onGetOntologyElementsDataDensitiesCompletedDelegate == null)) { + this.onGetOntologyElementsDataDensitiesCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetOntologyElementsDataDensitiesCompleted); + } + base.InvokeAsync(this.onBeginGetOntologyElementsDataDensitiesDelegate, new object[] { + Selections, + BeginTime, + EndTime, + MinY, + MaxY, + MinX, + MaxX, + IncludeSpatialResults}, this.onEndGetOntologyElementsDataDensitiesDelegate, this.onGetOntologyElementsDataDensitiesCompletedDelegate, userState); + } + + public string GetSQLOfNextQuery(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults) { + return base.Channel.GetSQLOfNextQuery(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public System.IAsyncResult BeginGetSQLOfNextQuery(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults, System.AsyncCallback callback, object asyncState) { + return base.Channel.BeginGetSQLOfNextQuery(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults, callback, asyncState); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public string EndGetSQLOfNextQuery(System.IAsyncResult result) { + return base.Channel.EndGetSQLOfNextQuery(result); + } + + private System.IAsyncResult OnBeginGetSQLOfNextQuery(object[] inValues, System.AsyncCallback callback, object asyncState) { + FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections = ((FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[])(inValues[0])); + System.DateTime BeginTime = ((System.DateTime)(inValues[1])); + System.DateTime EndTime = ((System.DateTime)(inValues[2])); + double MinY = ((double)(inValues[3])); + double MaxY = ((double)(inValues[4])); + double MinX = ((double)(inValues[5])); + double MaxX = ((double)(inValues[6])); + bool IncludeSpatialResults = ((bool)(inValues[7])); + return this.BeginGetSQLOfNextQuery(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults, callback, asyncState); + } + + private object[] OnEndGetSQLOfNextQuery(System.IAsyncResult result) { + string retVal = this.EndGetSQLOfNextQuery(result); + return new object[] { + retVal}; + } + + private void OnGetSQLOfNextQueryCompleted(object state) { + if ((this.GetSQLOfNextQueryCompleted != null)) { + InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state)); + this.GetSQLOfNextQueryCompleted(this, new GetSQLOfNextQueryCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState)); + } + } + + public void GetSQLOfNextQueryAsync(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults) { + this.GetSQLOfNextQueryAsync(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults, null); + } + + public void GetSQLOfNextQueryAsync(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults, object userState) { + if ((this.onBeginGetSQLOfNextQueryDelegate == null)) { + this.onBeginGetSQLOfNextQueryDelegate = new BeginOperationDelegate(this.OnBeginGetSQLOfNextQuery); + } + if ((this.onEndGetSQLOfNextQueryDelegate == null)) { + this.onEndGetSQLOfNextQueryDelegate = new EndOperationDelegate(this.OnEndGetSQLOfNextQuery); + } + if ((this.onGetSQLOfNextQueryCompletedDelegate == null)) { + this.onGetSQLOfNextQueryCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetSQLOfNextQueryCompleted); + } + base.InvokeAsync(this.onBeginGetSQLOfNextQueryDelegate, new object[] { + Selections, + BeginTime, + EndTime, + MinY, + MaxY, + MinX, + MaxX, + IncludeSpatialResults}, this.onEndGetSQLOfNextQueryDelegate, this.onGetSQLOfNextQueryCompletedDelegate, userState); + } + + public string GetSQLOfSearchQuery(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults) { + return base.Channel.GetSQLOfSearchQuery(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public System.IAsyncResult BeginGetSQLOfSearchQuery(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults, System.AsyncCallback callback, object asyncState) { + return base.Channel.BeginGetSQLOfSearchQuery(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults, callback, asyncState); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public string EndGetSQLOfSearchQuery(System.IAsyncResult result) { + return base.Channel.EndGetSQLOfSearchQuery(result); + } + + private System.IAsyncResult OnBeginGetSQLOfSearchQuery(object[] inValues, System.AsyncCallback callback, object asyncState) { + FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections = ((FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[])(inValues[0])); + System.DateTime BeginTime = ((System.DateTime)(inValues[1])); + System.DateTime EndTime = ((System.DateTime)(inValues[2])); + double MinY = ((double)(inValues[3])); + double MaxY = ((double)(inValues[4])); + double MinX = ((double)(inValues[5])); + double MaxX = ((double)(inValues[6])); + bool IncludeSpatialResults = ((bool)(inValues[7])); + return this.BeginGetSQLOfSearchQuery(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults, callback, asyncState); + } + + private object[] OnEndGetSQLOfSearchQuery(System.IAsyncResult result) { + string retVal = this.EndGetSQLOfSearchQuery(result); + return new object[] { + retVal}; + } + + private void OnGetSQLOfSearchQueryCompleted(object state) { + if ((this.GetSQLOfSearchQueryCompleted != null)) { + InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state)); + this.GetSQLOfSearchQueryCompleted(this, new GetSQLOfSearchQueryCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState)); + } + } + + public void GetSQLOfSearchQueryAsync(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults) { + this.GetSQLOfSearchQueryAsync(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults, null); + } + + public void GetSQLOfSearchQueryAsync(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults, object userState) { + if ((this.onBeginGetSQLOfSearchQueryDelegate == null)) { + this.onBeginGetSQLOfSearchQueryDelegate = new BeginOperationDelegate(this.OnBeginGetSQLOfSearchQuery); + } + if ((this.onEndGetSQLOfSearchQueryDelegate == null)) { + this.onEndGetSQLOfSearchQueryDelegate = new EndOperationDelegate(this.OnEndGetSQLOfSearchQuery); + } + if ((this.onGetSQLOfSearchQueryCompletedDelegate == null)) { + this.onGetSQLOfSearchQueryCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetSQLOfSearchQueryCompleted); + } + base.InvokeAsync(this.onBeginGetSQLOfSearchQueryDelegate, new object[] { + Selections, + BeginTime, + EndTime, + MinY, + MaxY, + MinX, + MaxX, + IncludeSpatialResults}, this.onEndGetSQLOfSearchQueryDelegate, this.onGetSQLOfSearchQueryCompletedDelegate, userState); + } + + public string GetSQLOfNextDensityQuery(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults) { + return base.Channel.GetSQLOfNextDensityQuery(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public System.IAsyncResult BeginGetSQLOfNextDensityQuery(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults, System.AsyncCallback callback, object asyncState) { + return base.Channel.BeginGetSQLOfNextDensityQuery(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults, callback, asyncState); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public string EndGetSQLOfNextDensityQuery(System.IAsyncResult result) { + return base.Channel.EndGetSQLOfNextDensityQuery(result); + } + + private System.IAsyncResult OnBeginGetSQLOfNextDensityQuery(object[] inValues, System.AsyncCallback callback, object asyncState) { + FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections = ((FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[])(inValues[0])); + System.DateTime BeginTime = ((System.DateTime)(inValues[1])); + System.DateTime EndTime = ((System.DateTime)(inValues[2])); + double MinY = ((double)(inValues[3])); + double MaxY = ((double)(inValues[4])); + double MinX = ((double)(inValues[5])); + double MaxX = ((double)(inValues[6])); + bool IncludeSpatialResults = ((bool)(inValues[7])); + return this.BeginGetSQLOfNextDensityQuery(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults, callback, asyncState); + } + + private object[] OnEndGetSQLOfNextDensityQuery(System.IAsyncResult result) { + string retVal = this.EndGetSQLOfNextDensityQuery(result); + return new object[] { + retVal}; + } + + private void OnGetSQLOfNextDensityQueryCompleted(object state) { + if ((this.GetSQLOfNextDensityQueryCompleted != null)) { + InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state)); + this.GetSQLOfNextDensityQueryCompleted(this, new GetSQLOfNextDensityQueryCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState)); + } + } + + public void GetSQLOfNextDensityQueryAsync(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults) { + this.GetSQLOfNextDensityQueryAsync(Selections, BeginTime, EndTime, MinY, MaxY, MinX, MaxX, IncludeSpatialResults, null); + } + + public void GetSQLOfNextDensityQueryAsync(FacetedSearch3.CUAHSIFacetedSearch.OntologyElement[] Selections, System.DateTime BeginTime, System.DateTime EndTime, double MinY, double MaxY, double MinX, double MaxX, bool IncludeSpatialResults, object userState) { + if ((this.onBeginGetSQLOfNextDensityQueryDelegate == null)) { + this.onBeginGetSQLOfNextDensityQueryDelegate = new BeginOperationDelegate(this.OnBeginGetSQLOfNextDensityQuery); + } + if ((this.onEndGetSQLOfNextDensityQueryDelegate == null)) { + this.onEndGetSQLOfNextDensityQueryDelegate = new EndOperationDelegate(this.OnEndGetSQLOfNextDensityQuery); + } + if ((this.onGetSQLOfNextDensityQueryCompletedDelegate == null)) { + this.onGetSQLOfNextDensityQueryCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetSQLOfNextDensityQueryCompleted); + } + base.InvokeAsync(this.onBeginGetSQLOfNextDensityQueryDelegate, new object[] { + Selections, + BeginTime, + EndTime, + MinY, + MaxY, + MinX, + MaxX, + IncludeSpatialResults}, this.onEndGetSQLOfNextDensityQueryDelegate, this.onGetSQLOfNextDensityQueryCompletedDelegate, userState); + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/Reference.svcmap b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/Reference.svcmap new file mode 100644 index 00000000..cdcefce1 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/Reference.svcmap @@ -0,0 +1,35 @@ + + + + true + true + + false + false + false + + + true + Auto + true + true + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/configuration.svcinfo b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/configuration.svcinfo new file mode 100644 index 00000000..822c4840 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/configuration.svcinfo @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/configuration91.svcinfo b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/configuration91.svcinfo new file mode 100644 index 00000000..8dcb99d3 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Service References/CUAHSIFacetedSearch/configuration91.svcinfo @@ -0,0 +1,201 @@ + + + + + + + BasicHttpBinding_MultiFacetedHISSvc1 + + + 00:01:00 + + + 00:01:00 + + + 00:10:00 + + + 00:01:00 + + + False + + + False + + + StrongWildcard + + + 65536 + + + 524288 + + + 65536 + + + Text + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 32 + + + 8192 + + + 16384 + + + 4096 + + + 16384 + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + System.Text.UTF8Encoding + + + Buffered + + + True + + + + + + + + + http://cuahsi.eecs.tufts.edu/FacetedSearch/MultiFacetedHISSvc.svc + + + + + + basicHttpBinding + + + BasicHttpBinding_MultiFacetedHISSvc1 + + + CUAHSIFacetedSearch.MultiFacetedHISSvc + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + BasicHttpBinding_MultiFacetedHISSvc1 + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/AreaRectangle.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/AreaRectangle.cs new file mode 100644 index 00000000..8f7aefbf --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/AreaRectangle.cs @@ -0,0 +1,26 @@ +using System; + +namespace FacetedSearch3.Settings +{ + public class AreaRectangle + { + public AreaRectangle(double xmin, double ymin, double xmax, double ymax) + { + XMin = xmin; + YMin = ymin; + XMax = xmax; + YMax = ymax; + } + + public double XMin { get; private set; } + public double XMax { get; private set; } + public double YMin { get; private set; } + public double YMax { get; private set; } + + public override string ToString() + { + return string.Format("Point1 (Lng/Lat): {0:N6} {1:N6}" + Environment.NewLine + + "Point2 (Lng/Lat): {2:N6} {3:N6}", XMin, YMin, YMax, YMax); + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/AreaSettings.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/AreaSettings.cs new file mode 100644 index 00000000..99e5b595 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/AreaSettings.cs @@ -0,0 +1,68 @@ +using System; +using DotSpatial.Data; +using DotSpatial.Projections; +using FacetedSearch3.Area; + +namespace FacetedSearch3.Settings +{ + public class AreaSettings + { + public bool HasAnyArea + { + get + { + return AreaRectangle != null || + (Polygons != null && Polygons.Features.Count > 0); + } + } + + private Box _areaRectangle; + public Box AreaRectangle + { + get { return _areaRectangle; } + private set + { + _areaRectangle = value; + RaiseAreaRectangleChanged(); + } + } + public ProjectionInfo RectangleProjection { get; private set; } + + public void SetAreaRectangle(Box areaRectangle, ProjectionInfo rectangleProjection) + { + RectangleProjection = rectangleProjection; + AreaRectangle = areaRectangle; + } + + private FeatureSet _polygons; + public FeatureSet Polygons + { + get { return _polygons; } + set + { + _polygons = value; + RaisePolygonsChanged(); + } + } + + public event EventHandler AreaRectangleChanged; + public event EventHandler PolygonsChanged; + + private void RaiseAreaRectangleChanged() + { + var handler = AreaRectangleChanged; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + private void RaisePolygonsChanged() + { + var handler = PolygonsChanged; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/CatalogSettings.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/CatalogSettings.cs new file mode 100644 index 00000000..d526f898 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/CatalogSettings.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; + +namespace FacetedSearch3.Settings +{ + /// + /// Catalog settings + /// + public class CatalogSettings : INotifyPropertyChanged + { + #region Properties names + + internal const string PROPERTY_HISCentralUrl = "HISCentralUrl"; + internal const string PROPERTY_TypeOfCatalog = "TypeOfCatalog"; + + #endregion + + internal const string HISCENTRAL_URL_1 = "http://hiscentral.cuahsi.org/webservices/hiscentral.asmx"; + internal const string HISCENTRAL_URL_2 = "http://water.sdsc.edu/hiscentral/webservices/hiscentral.asmx"; + + private string _hisCentralUrl; + public string HISCentralUrl + { + get { return _hisCentralUrl; } + set + { + _hisCentralUrl = value; + NotifyPropertyChanged(PROPERTY_HISCentralUrl); + } + } + + private TypeOfCatalog _typeOfCatalog; + public TypeOfCatalog TypeOfCatalog + { + get { return _typeOfCatalog; } + set + { + _typeOfCatalog = value; + NotifyPropertyChanged(PROPERTY_TypeOfCatalog); + } + } + + #region INotifyPropertyChanged implementation + + public event PropertyChangedEventHandler PropertyChanged; + + private void NotifyPropertyChanged(string name) + { + if (PropertyChanged != null) + PropertyChanged(this, new PropertyChangedEventArgs(name)); + } + + #endregion + + public CatalogSettings() + { + TypeOfCatalog = TypeOfCatalog.HisCentral; + HISCentralUrl = HISCENTRAL_URL_1; + } + + /// + /// Create deep copy of current instance. + /// + /// Deep copy. + public CatalogSettings Copy() + { + var result = new CatalogSettings(); + result.Copy(this); + return result; + + } + + /// + /// Create deep from source into current instance. + /// + /// Source. + /// must be not null. + public void Copy(CatalogSettings source) + { + if (source == null) throw new ArgumentNullException("source"); + + HISCentralUrl = source.HISCentralUrl; + TypeOfCatalog = source.TypeOfCatalog; + } + } + + public enum TypeOfCatalog + { + [Description("HIS Central")] + HisCentral, + [Description("Local Metadata Cache")] + LocalMetadataCache + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/DateSettings.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/DateSettings.cs new file mode 100644 index 00000000..305b24bd --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/DateSettings.cs @@ -0,0 +1,76 @@ +using System; +using System.ComponentModel; + +namespace FacetedSearch3.Settings +{ + public class DateSettings : INotifyPropertyChanged + { + internal const string PROPERTY_StartDate = "StartDate"; + internal const string PROPERTY_EndDate = "EndDate"; + + private DateTime _startDate; + public DateTime StartDate + { + get { return _startDate; } + set + { + _startDate = value; + NotifyPropertyChanged(PROPERTY_StartDate); + } + } + + private DateTime _endDate; + public DateTime EndDate + { + get { return _endDate; } + set + { + _endDate = value; + NotifyPropertyChanged(PROPERTY_EndDate); + } + } + + public DateSettings() + { + EndDate = DateTime.Now.Date; + StartDate = EndDate.AddYears(-5); + } + + /// + /// Create deep copy of current instance. + /// + /// Deep copy. + public DateSettings Copy() + { + var result = new DateSettings(); + result.Copy(this); + return result; + + } + + /// + /// Create deep from source into current instance. + /// + /// Source. + /// must be not null. + public void Copy(DateSettings source) + { + if (source == null) throw new ArgumentNullException("source"); + + StartDate = source.StartDate; + EndDate = source.EndDate; + } + + #region INotifyPropertyChanged implementation + + public event PropertyChangedEventHandler PropertyChanged; + + private void NotifyPropertyChanged(string name) + { + if (PropertyChanged != null) + PropertyChanged(this, new PropertyChangedEventArgs(name)); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/OntologyNode.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/OntologyNode.cs new file mode 100644 index 00000000..e125610a --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/OntologyNode.cs @@ -0,0 +1,43 @@ +using System.Collections.ObjectModel; + +namespace FacetedSearch3.Settings +{ + public class OntologyNode + { + private readonly ObservableCollection _childs = new ObservableCollection(); + + public OntologyNode() + :this(null) + { + + } + + public OntologyNode(string text) + { + Text = text; + _childs.CollectionChanged += _childs_CollectionChanged; + } + + void _childs_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) + { + if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) + { + foreach (OntologyNode item in e.NewItems) + item.Parent = this; + } + } + + public OntologyNode Parent { get; set; } + public string Text { get; set; } + + public ObservableCollection Nodes + { + get { return _childs; } + } + + public override string ToString() + { + return Text; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/OntologyTree.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/OntologyTree.cs new file mode 100644 index 00000000..1983ae7a --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/OntologyTree.cs @@ -0,0 +1,16 @@ +using System.Collections.Generic; + +namespace FacetedSearch3.Settings +{ + public class OntologyTree + { + private readonly List _nodes = new List(); + public List Nodes + { + get + { + return _nodes; + } + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/SearchSettings.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/SearchSettings.cs new file mode 100644 index 00000000..000d983b --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/SearchSettings.cs @@ -0,0 +1,38 @@ +using System; + +namespace FacetedSearch3.Settings +{ + public class SearchSettings + { + #region Singletone implementation + + private SearchSettings() + { + + } + + private static readonly Lazy _instance = new Lazy(() => new SearchSettings(), true); + public static SearchSettings Instance + { + get { return _instance.Value; } + } + + #endregion + + + + private readonly DateSettings _dateSettings = new DateSettings(); + public DateSettings DateSettings + { + get { return _dateSettings; } + } + + + + private readonly AreaSettings _areaSettings = new AreaSettings(); + public AreaSettings AreaSettings + { + get { return _areaSettings; } + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/DateSettingsDialog.Designer.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/DateSettingsDialog.Designer.cs new file mode 100644 index 00000000..579e4a08 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/DateSettingsDialog.Designer.cs @@ -0,0 +1,182 @@ +namespace FacetedSearch3.Settings.UI +{ + partial class DateSettingsDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dtpStartDate = new System.Windows.Forms.DateTimePicker(); + this.dtpEndDate = new System.Windows.Forms.DateTimePicker(); + this.lblStartDate = new System.Windows.Forms.Label(); + this.lblEndDate = new System.Windows.Forms.Label(); + this.btnCancel = new System.Windows.Forms.Button(); + this.btnOK = new System.Windows.Forms.Button(); + this.rbLastDay = new System.Windows.Forms.RadioButton(); + this.rbLastMonth = new System.Windows.Forms.RadioButton(); + this.rbLastYear = new System.Windows.Forms.RadioButton(); + this.rbLastWeek = new System.Windows.Forms.RadioButton(); + this.SuspendLayout(); + // + // dtpStartDate + // + this.dtpStartDate.Format = System.Windows.Forms.DateTimePickerFormat.Short; + this.dtpStartDate.Location = new System.Drawing.Point(111, 12); + this.dtpStartDate.Name = "dtpStartDate"; + this.dtpStartDate.Size = new System.Drawing.Size(138, 20); + this.dtpStartDate.TabIndex = 0; + // + // dtpEndDate + // + this.dtpEndDate.Format = System.Windows.Forms.DateTimePickerFormat.Short; + this.dtpEndDate.Location = new System.Drawing.Point(111, 38); + this.dtpEndDate.Name = "dtpEndDate"; + this.dtpEndDate.Size = new System.Drawing.Size(138, 20); + this.dtpEndDate.TabIndex = 1; + // + // lblStartDate + // + this.lblStartDate.AutoSize = true; + this.lblStartDate.Location = new System.Drawing.Point(8, 18); + this.lblStartDate.Name = "lblStartDate"; + this.lblStartDate.Size = new System.Drawing.Size(56, 13); + this.lblStartDate.TabIndex = 2; + this.lblStartDate.Text = "Start date:"; + // + // lblEndDate + // + this.lblEndDate.AutoSize = true; + this.lblEndDate.Location = new System.Drawing.Point(11, 44); + this.lblEndDate.Name = "lblEndDate"; + this.lblEndDate.Size = new System.Drawing.Size(53, 13); + this.lblEndDate.TabIndex = 3; + this.lblEndDate.Text = "End date:"; + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(174, 143); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 7; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(93, 143); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 6; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + // + // rbLastDay + // + this.rbLastDay.AutoSize = true; + this.rbLastDay.Location = new System.Drawing.Point(14, 76); + this.rbLastDay.Name = "rbLastDay"; + this.rbLastDay.Size = new System.Drawing.Size(67, 17); + this.rbLastDay.TabIndex = 2; + this.rbLastDay.TabStop = true; + this.rbLastDay.Text = "Last Day"; + this.rbLastDay.UseVisualStyleBackColor = true; + // + // rbLastMonth + // + this.rbLastMonth.AutoSize = true; + this.rbLastMonth.Location = new System.Drawing.Point(111, 76); + this.rbLastMonth.Name = "rbLastMonth"; + this.rbLastMonth.Size = new System.Drawing.Size(78, 17); + this.rbLastMonth.TabIndex = 3; + this.rbLastMonth.TabStop = true; + this.rbLastMonth.Text = "Last Month"; + this.rbLastMonth.UseVisualStyleBackColor = true; + // + // rbLastYear + // + this.rbLastYear.AutoSize = true; + this.rbLastYear.Location = new System.Drawing.Point(111, 97); + this.rbLastYear.Name = "rbLastYear"; + this.rbLastYear.Size = new System.Drawing.Size(70, 17); + this.rbLastYear.TabIndex = 5; + this.rbLastYear.TabStop = true; + this.rbLastYear.Text = "Last Year"; + this.rbLastYear.UseVisualStyleBackColor = true; + // + // rbLastWeek + // + this.rbLastWeek.AutoSize = true; + this.rbLastWeek.Location = new System.Drawing.Point(14, 97); + this.rbLastWeek.Name = "rbLastWeek"; + this.rbLastWeek.Size = new System.Drawing.Size(77, 17); + this.rbLastWeek.TabIndex = 4; + this.rbLastWeek.TabStop = true; + this.rbLastWeek.Text = "Last Week"; + this.rbLastWeek.UseVisualStyleBackColor = true; + // + // DateSettingsDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(265, 178); + this.Controls.Add(this.rbLastWeek); + this.Controls.Add(this.rbLastYear); + this.Controls.Add(this.rbLastMonth); + this.Controls.Add(this.rbLastDay); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.Controls.Add(this.lblEndDate); + this.Controls.Add(this.lblStartDate); + this.Controls.Add(this.dtpEndDate); + this.Controls.Add(this.dtpStartDate); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "DateSettingsDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Select dates"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DateTimePicker dtpStartDate; + private System.Windows.Forms.DateTimePicker dtpEndDate; + private System.Windows.Forms.Label lblStartDate; + private System.Windows.Forms.Label lblEndDate; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.RadioButton rbLastDay; + private System.Windows.Forms.RadioButton rbLastMonth; + private System.Windows.Forms.RadioButton rbLastYear; + private System.Windows.Forms.RadioButton rbLastWeek; + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/DateSettingsDialog.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/DateSettingsDialog.cs new file mode 100644 index 00000000..2cfd8d74 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/DateSettingsDialog.cs @@ -0,0 +1,82 @@ +using System; +using System.Windows.Forms; + +namespace FacetedSearch3.Settings.UI +{ + public partial class DateSettingsDialog : Form + { + private readonly DateSettings _dateSettings; + + private DateSettingsDialog(DateSettings dateSettings) + { + InitializeComponent(); + + _dateSettings = dateSettings; + + dtpStartDate.MinDate = DateTime.MinValue; + dtpStartDate.MaxDate = DateTime.MaxValue; + dtpEndDate.MinDate = DateTime.MinValue; + dtpEndDate.MaxDate = DateTime.MaxValue; + + dtpStartDate.DataBindings.Add(new Binding("Value", _dateSettings, DateSettings.PROPERTY_StartDate) + {DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged}); + dtpEndDate.DataBindings.Add(new Binding("Value", _dateSettings, DateSettings.PROPERTY_EndDate) + {DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged}); + + // Quick radio Buttons + rbLastDay.Tag = RoundMode.LastDay; + rbLastWeek.Tag = RoundMode.LastWeek; + rbLastMonth.Tag = RoundMode.LastMonth; + rbLastYear.Tag = RoundMode.LastYear; + foreach (var rb in new[] { rbLastDay, rbLastWeek, rbLastMonth, rbLastYear }) + rb.CheckedChanged += rbQuickMode_CheckedChanged; + } + + void rbQuickMode_CheckedChanged(object sender, EventArgs e) + { + var radioButton = sender as RadioButton; + if (radioButton == null || + !radioButton.Checked) return; + + var roundMode = (RoundMode)radioButton.Tag; + switch(roundMode) + { + case RoundMode.LastDay: + dtpStartDate.Value = dtpEndDate.Value; + break; + case RoundMode.LastWeek: + dtpStartDate.Value = dtpEndDate.Value.AddDays(-7); + break; + case RoundMode.LastMonth: + dtpStartDate.Value = dtpEndDate.Value.AddDays(-30); + break; + case RoundMode.LastYear: + dtpStartDate.Value = dtpEndDate.Value.AddDays(-365); + break; + } + } + + public static DialogResult ShowDialog(DateSettings dateSettings) + { + if (dateSettings == null) throw new ArgumentNullException("dateSettings"); + + using(var form = new DateSettingsDialog(dateSettings.Copy())) + { + if (form.ShowDialog() == DialogResult.OK) + { + dateSettings.Copy(form._dateSettings); + } + + return form.DialogResult; + } + } + + private enum RoundMode + { + LastDay, + LastWeek, + LastMonth, + LastYear + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/DateSettingsDialog.resx b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/DateSettingsDialog.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/DateSettingsDialog.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsDialog.Designer.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsDialog.Designer.cs new file mode 100644 index 00000000..78f2d3a2 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsDialog.Designer.cs @@ -0,0 +1,91 @@ +namespace FacetedSearch3.Settings.UI +{ + partial class KeywordsDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnCancel = new System.Windows.Forms.Button(); + this.btnOK = new System.Windows.Forms.Button(); + this.keywordsUserControl1 = new FacetedSearch3.Settings.UI.KeywordsUserControl(); + this.SuspendLayout(); + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(290, 393); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 9; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(209, 393); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 8; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + // + // keywordsUserControl1 + // + this.keywordsUserControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.keywordsUserControl1.Location = new System.Drawing.Point(0, 0); + this.keywordsUserControl1.Name = "keywordsUserControl1"; + this.keywordsUserControl1.Size = new System.Drawing.Size(378, 386); + this.keywordsUserControl1.TabIndex = 10; + // + // KeywordsDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(377, 428); + this.Controls.Add(this.keywordsUserControl1); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "KeywordsDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Keywords"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Button btnOK; + private KeywordsUserControl keywordsUserControl1; + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsDialog.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsDialog.cs new file mode 100644 index 00000000..2ef5206a --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsDialog.cs @@ -0,0 +1,41 @@ +using System; +using System.Windows.Forms; + +namespace FacetedSearch3.Settings.UI +{ + public partial class KeywordsDialog : Form + { + #region Constructors + + private KeywordsDialog(KeywordsSettings settings) + { + InitializeComponent(); + Load += delegate + { + keywordsUserControl1.BindKeywordsAndOntologyTree(settings.Keywords, settings.OntologyTree); + keywordsUserControl1.AddSelectedKeywords(settings.SelectedKeywords); + }; + } + + #endregion + + #region Public methods + + public static DialogResult ShowDialog(KeywordsSettings settings) + { + if (settings == null) throw new ArgumentNullException("settings"); + + using(var form = new KeywordsDialog(settings.Copy())) + { + if (form.ShowDialog() == DialogResult.OK) + { + settings.SelectedKeywords = form.keywordsUserControl1.GetSelectedKeywords(); + } + + return form.DialogResult; + } + } + + #endregion + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsDialog.resx b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsDialog.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsDialog.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsUserControl.Designer.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsUserControl.Designer.cs new file mode 100644 index 00000000..6cc06772 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsUserControl.Designer.cs @@ -0,0 +1,286 @@ +namespace FacetedSearch3.Settings.UI +{ + partial class KeywordsUserControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(KeywordsUserControl)); + this.tboTypeKeyword = new System.Windows.Forms.TextBox(); + this.lblKeywords = new System.Windows.Forms.Label(); + this.lblKeywordRelation = new System.Windows.Forms.Label(); + this.btnAddKeyword = new System.Windows.Forms.Button(); + this.btnRemoveKeyword = new System.Windows.Forms.Button(); + this.groupboxKeywordDisplay = new System.Windows.Forms.GroupBox(); + this.rbBoth = new System.Windows.Forms.RadioButton(); + this.rbTree = new System.Windows.Forms.RadioButton(); + this.rbList = new System.Windows.Forms.RadioButton(); + this.spcKey = new System.Windows.Forms.SplitContainer(); + this.lbKeywords = new System.Windows.Forms.ListBox(); + this.treeviewOntology = new System.Windows.Forms.TreeView(); + this.lblSelectedKeywords = new System.Windows.Forms.Label(); + this.lbSelectedKeywords = new System.Windows.Forms.ListBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.groupboxKeywordDisplay.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.spcKey)).BeginInit(); + this.spcKey.Panel1.SuspendLayout(); + this.spcKey.Panel2.SuspendLayout(); + this.spcKey.SuspendLayout(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.SuspendLayout(); + // + // tboTypeKeyword + // + this.tboTypeKeyword.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tboTypeKeyword.Location = new System.Drawing.Point(109, 10); + this.tboTypeKeyword.Name = "tboTypeKeyword"; + this.tboTypeKeyword.Size = new System.Drawing.Size(174, 20); + this.tboTypeKeyword.TabIndex = 52; + this.tboTypeKeyword.TextChanged += new System.EventHandler(this.tboTypeKeyword_TextChanged); + // + // lblKeywords + // + this.lblKeywords.Dock = System.Windows.Forms.DockStyle.Left; + this.lblKeywords.Location = new System.Drawing.Point(0, 0); + this.lblKeywords.Name = "lblKeywords"; + this.lblKeywords.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + this.lblKeywords.Size = new System.Drawing.Size(103, 40); + this.lblKeywords.TabIndex = 53; + this.lblKeywords.Text = "Keywords: Type-in first few letters"; + // + // lblKeywordRelation + // + this.lblKeywordRelation.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.lblKeywordRelation.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblKeywordRelation.Location = new System.Drawing.Point(14, 44); + this.lblKeywordRelation.Name = "lblKeywordRelation"; + this.lblKeywordRelation.Size = new System.Drawing.Size(269, 30); + this.lblKeywordRelation.TabIndex = 54; + // + // btnAddKeyword + // + this.btnAddKeyword.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnAddKeyword.Image = ((System.Drawing.Image)(resources.GetObject("btnAddKeyword.Image"))); + this.btnAddKeyword.Location = new System.Drawing.Point(14, 277); + this.btnAddKeyword.Name = "btnAddKeyword"; + this.btnAddKeyword.Size = new System.Drawing.Size(25, 22); + this.btnAddKeyword.TabIndex = 59; + this.btnAddKeyword.UseVisualStyleBackColor = true; + this.btnAddKeyword.Click += new System.EventHandler(this.btnAddKeyword_Click); + // + // btnRemoveKeyword + // + this.btnRemoveKeyword.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnRemoveKeyword.Image = ((System.Drawing.Image)(resources.GetObject("btnRemoveKeyword.Image"))); + this.btnRemoveKeyword.Location = new System.Drawing.Point(45, 277); + this.btnRemoveKeyword.Name = "btnRemoveKeyword"; + this.btnRemoveKeyword.Size = new System.Drawing.Size(25, 22); + this.btnRemoveKeyword.TabIndex = 60; + this.btnRemoveKeyword.UseVisualStyleBackColor = true; + this.btnRemoveKeyword.Click += new System.EventHandler(this.button15_Click); + // + // groupboxKeywordDisplay + // + this.groupboxKeywordDisplay.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.groupboxKeywordDisplay.Controls.Add(this.rbBoth); + this.groupboxKeywordDisplay.Controls.Add(this.rbTree); + this.groupboxKeywordDisplay.Controls.Add(this.rbList); + this.groupboxKeywordDisplay.Location = new System.Drawing.Point(125, 263); + this.groupboxKeywordDisplay.Name = "groupboxKeywordDisplay"; + this.groupboxKeywordDisplay.Size = new System.Drawing.Size(158, 40); + this.groupboxKeywordDisplay.TabIndex = 61; + this.groupboxKeywordDisplay.TabStop = false; + this.groupboxKeywordDisplay.Text = "Keywords Display"; + // + // rbBoth + // + this.rbBoth.AutoSize = true; + this.rbBoth.Checked = true; + this.rbBoth.Location = new System.Drawing.Point(97, 17); + this.rbBoth.Name = "rbBoth"; + this.rbBoth.Size = new System.Drawing.Size(47, 17); + this.rbBoth.TabIndex = 2; + this.rbBoth.TabStop = true; + this.rbBoth.Text = "Both"; + this.rbBoth.UseVisualStyleBackColor = true; + // + // rbTree + // + this.rbTree.AutoSize = true; + this.rbTree.Location = new System.Drawing.Point(48, 17); + this.rbTree.Name = "rbTree"; + this.rbTree.Size = new System.Drawing.Size(47, 17); + this.rbTree.TabIndex = 1; + this.rbTree.Text = "Tree"; + this.rbTree.UseVisualStyleBackColor = true; + // + // rbList + // + this.rbList.AutoSize = true; + this.rbList.Location = new System.Drawing.Point(4, 17); + this.rbList.Name = "rbList"; + this.rbList.Size = new System.Drawing.Size(41, 17); + this.rbList.TabIndex = 0; + this.rbList.Text = "List"; + this.rbList.UseVisualStyleBackColor = true; + // + // spcKey + // + this.spcKey.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.spcKey.Location = new System.Drawing.Point(3, 80); + this.spcKey.Name = "spcKey"; + // + // spcKey.Panel1 + // + this.spcKey.Panel1.Controls.Add(this.lbKeywords); + // + // spcKey.Panel2 + // + this.spcKey.Panel2.Controls.Add(this.treeviewOntology); + this.spcKey.Size = new System.Drawing.Size(292, 179); + this.spcKey.SplitterDistance = 95; + this.spcKey.TabIndex = 62; + // + // lbKeywords + // + this.lbKeywords.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbKeywords.FormattingEnabled = true; + this.lbKeywords.HorizontalScrollbar = true; + this.lbKeywords.Location = new System.Drawing.Point(0, 0); + this.lbKeywords.Name = "lbKeywords"; + this.lbKeywords.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended; + this.lbKeywords.Size = new System.Drawing.Size(95, 179); + this.lbKeywords.Sorted = true; + this.lbKeywords.TabIndex = 42; + this.lbKeywords.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lbKeywords_MouseUp); + // + // treeviewOntology + // + this.treeviewOntology.BackColor = System.Drawing.SystemColors.Window; + this.treeviewOntology.Dock = System.Windows.Forms.DockStyle.Fill; + this.treeviewOntology.HideSelection = false; + this.treeviewOntology.Indent = 19; + this.treeviewOntology.Location = new System.Drawing.Point(0, 0); + this.treeviewOntology.Name = "treeviewOntology"; + this.treeviewOntology.Size = new System.Drawing.Size(193, 179); + this.treeviewOntology.TabIndex = 39; + this.treeviewOntology.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tvOntology_AfterSelect); + // + // lblSelectedKeywords + // + this.lblSelectedKeywords.AutoSize = true; + this.lblSelectedKeywords.Dock = System.Windows.Forms.DockStyle.Top; + this.lblSelectedKeywords.Location = new System.Drawing.Point(0, 0); + this.lblSelectedKeywords.Name = "lblSelectedKeywords"; + this.lblSelectedKeywords.Size = new System.Drawing.Size(98, 13); + this.lblSelectedKeywords.TabIndex = 64; + this.lblSelectedKeywords.Text = "Selected Keywords"; + // + // lbSelectedKeywords + // + this.lbSelectedKeywords.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbSelectedKeywords.ForeColor = System.Drawing.Color.Gray; + this.lbSelectedKeywords.FormattingEnabled = true; + this.lbSelectedKeywords.Location = new System.Drawing.Point(0, 13); + this.lbSelectedKeywords.Name = "lbSelectedKeywords"; + this.lbSelectedKeywords.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple; + this.lbSelectedKeywords.Size = new System.Drawing.Size(295, 85); + this.lbSelectedKeywords.TabIndex = 63; + // + // panel1 + // + this.panel1.Controls.Add(this.lbSelectedKeywords); + this.panel1.Controls.Add(this.lblSelectedKeywords); + this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel1.Location = new System.Drawing.Point(0, 309); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(295, 98); + this.panel1.TabIndex = 65; + // + // panel2 + // + this.panel2.Controls.Add(this.tboTypeKeyword); + this.panel2.Controls.Add(this.lblKeywords); + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(0, 0); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(295, 40); + this.panel2.TabIndex = 66; + // + // KeywordsUserControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.btnRemoveKeyword); + this.Controls.Add(this.groupboxKeywordDisplay); + this.Controls.Add(this.panel2); + this.Controls.Add(this.btnAddKeyword); + this.Controls.Add(this.panel1); + this.Controls.Add(this.spcKey); + this.Controls.Add(this.lblKeywordRelation); + this.Name = "KeywordsUserControl"; + this.Size = new System.Drawing.Size(295, 407); + this.groupboxKeywordDisplay.ResumeLayout(false); + this.groupboxKeywordDisplay.PerformLayout(); + this.spcKey.Panel1.ResumeLayout(false); + this.spcKey.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.spcKey)).EndInit(); + this.spcKey.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TextBox tboTypeKeyword; + private System.Windows.Forms.Label lblKeywords; + private System.Windows.Forms.Label lblKeywordRelation; + private System.Windows.Forms.Button btnAddKeyword; + private System.Windows.Forms.Button btnRemoveKeyword; + private System.Windows.Forms.GroupBox groupboxKeywordDisplay; + private System.Windows.Forms.RadioButton rbBoth; + private System.Windows.Forms.RadioButton rbTree; + private System.Windows.Forms.RadioButton rbList; + private System.Windows.Forms.SplitContainer spcKey; + private System.Windows.Forms.ListBox lbKeywords; + private System.Windows.Forms.TreeView treeviewOntology; + private System.Windows.Forms.Label lblSelectedKeywords; + private System.Windows.Forms.ListBox lbSelectedKeywords; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel2; + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsUserControl.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsUserControl.cs new file mode 100644 index 00000000..a6e7ddce --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsUserControl.cs @@ -0,0 +1,254 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace FacetedSearch3.Settings.UI +{ + public partial class KeywordsUserControl : UserControl + { + #region Fields + + private IList _keywords; + + #endregion + + #region Constructors + + public KeywordsUserControl() + { + InitializeComponent(); + + // Keywords display + rbList.Tag = DisplayMode.List; + rbTree.Tag = DisplayMode.Tree; + rbBoth.Tag = DisplayMode.Both; + foreach (var rb in new[] {rbList, rbTree, rbBoth}) + rb.CheckedChanged += rb_CheckedChanged; + } + + #endregion + + #region Public methods + + /// + /// Set data into control. + /// + /// Keywords. + /// Ontology tree. + /// Throws if or is null. + public void BindKeywordsAndOntologyTree(IList keywords, OntologyTree ontologyTree) + { + if (keywords == null) throw new ArgumentNullException("keywords"); + if (ontologyTree == null) throw new ArgumentNullException("ontologyTree"); + + _keywords = keywords; + + tboTypeKeyword.Clear(); + lblKeywordRelation.Text = ""; + + // Keywords + lbKeywords.DataSource = keywords; + + // Ontology tree + treeviewOntology.BeginUpdate(); + treeviewOntology.Nodes.Clear(); + FillTreeviewOntology(treeviewOntology.Nodes, ontologyTree.Nodes); + treeviewOntology.EndUpdate(); + } + + /// + /// Add selected keywords. + /// + /// Keywords to add. + /// Throws if is null. + public void AddSelectedKeywords(IEnumerable keywords) + { + if (keywords == null) throw new ArgumentNullException("keywords"); + + foreach (var keyword in keywords.Where(keyword => !lbSelectedKeywords.Items.Contains(keyword))) + { + lbSelectedKeywords.Items.Add(keyword); + } + } + + /// + /// Remove selected keywords. + /// + /// Keywords to remove. If parameter is null - removes all selected keywords. + public void RemoveSelectedKeywords(IEnumerable keywords = null) + { + if (keywords == null) + { + // remove all keywords + lbSelectedKeywords.Items.Clear(); + }else + { + foreach(var keyword in keywords) + { + lbSelectedKeywords.Items.Remove(keyword); + } + } + } + + /// + /// Get selected keywords. + /// + /// Selected keywords. + public IEnumerable GetSelectedKeywords() + { + var res = new List(lbSelectedKeywords.Items.Count); + res.AddRange(from object item in lbSelectedKeywords.Items select item.ToString()); + return res; + } + + #endregion + + #region Private methods + + private void FillTreeviewOntology(TreeNodeCollection treeNodeCollection, IEnumerable ontologyNodes) + { + foreach (var oNode in ontologyNodes) + { + var treeNode = CreateTreeNodeFromOntologyNode(oNode); + treeNodeCollection.Add(treeNode); + foreach (var oChild in oNode.Nodes) + { + var childTreeNode = CreateTreeNodeFromOntologyNode(oChild); + treeNode.Nodes.Add(childTreeNode); + FillTreeviewOntology(childTreeNode.Nodes, oChild.Nodes); + } + } + } + + private TreeNode CreateTreeNodeFromOntologyNode(OntologyNode oNode) + { + var res = new TreeNode(oNode.Text) { Tag = oNode }; + return res; + } + + void rb_CheckedChanged(object sender, EventArgs e) + { + var displayMode = (DisplayMode)((RadioButton)sender).Tag; + spcKey.Panel2Collapsed = displayMode == DisplayMode.List; + spcKey.Panel1Collapsed = displayMode == DisplayMode.Tree; + } + + private void tboTypeKeyword_TextChanged(object sender, EventArgs e) + { + //control display if user is in treeview mode + if (rbTree.Checked) + { + rbList.Checked = true; + } + + lbKeywords.ClearSelected(); + var searchString2 = tboTypeKeyword.Text; + lbKeywords.SelectionMode = SelectionMode.MultiSimple; + var x = -1; + + if (searchString2.Length != 0) + { + do + { + x = lbKeywords.FindString(searchString2, x); + if (x != -1) + { + if (lbKeywords.SelectedIndices.Count > 0) + { + if (x == lbKeywords.SelectedIndices[0]) + return; + } + lbKeywords.SetSelected(x, true); + } + } + while (x != -1); + } + } + + private void lbKeywords_MouseUp(object sender, MouseEventArgs e) + { + var keyIndex = lbKeywords.IndexFromPoint(e.Location); + if (keyIndex < 0) return; + + tboTypeKeyword.Text = string.Empty; + var strNode = lbKeywords.Items[keyIndex].ToString(); + + foreach (var str in _keywords.Where(str => str.ToLower() == strNode.ToLower())) + { + tboTypeKeyword.Text = str; + FindInTreeView(treeviewOntology.Nodes, tboTypeKeyword.Text); + } + + //check ends + if (tboTypeKeyword.Text == "") + { + tboTypeKeyword.Text = lbKeywords.Items[keyIndex].ToString(); + FindInTreeView(treeviewOntology.Nodes, tboTypeKeyword.Text); + } + } + + private void tvOntology_AfterSelect(object sender, TreeViewEventArgs e) + { + tboTypeKeyword.Text = e.Node.Text; + FindInTreeView(treeviewOntology.Nodes, tboTypeKeyword.Text); + } + + private void FindInTreeView(IEnumerable tncoll, string strNode) + { + foreach (TreeNode tnode in tncoll) + { + if (tnode.Text.ToLower() == strNode.ToLower()) + { + tnode.TreeView.SelectedNode = tnode; + lblKeywordRelation.Text = tnode.FullPath; + } + + FindInTreeView(tnode.Nodes, strNode); + } + } + + private void btnAddKeyword_Click(object sender, EventArgs e) + { + if (lbKeywords.SelectedIndex == -1) + { + MessageBox.Show("Please select a valid Keyword.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + var itemToAdd = lbKeywords.SelectedItem.ToString(); + if (GetSelectedKeywords().Any(item => item == itemToAdd)) + { + MessageBox.Show("This Keyword is already selected, Please select another keyword.", "Information", + MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + AddSelectedKeywords(new[] {itemToAdd}); + } + + private void button15_Click(object sender, EventArgs e) + { + if (lbSelectedKeywords.SelectedItems.Count <= 0) + return; + + var itemsToRemove = new List(lbSelectedKeywords.SelectedItems.Count); + itemsToRemove.AddRange(from object selected in lbSelectedKeywords.SelectedItems select selected.ToString()); + RemoveSelectedKeywords(itemsToRemove); + } + + #endregion + + #region Helpers + + private enum DisplayMode + { + List, + Tree, + Both + } + + #endregion + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsUserControl.resx b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsUserControl.resx new file mode 100644 index 00000000..5b56e1fd --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/KeywordsUserControl.resx @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAoBJREFUOE+lk+9L + k1EUx/1b3JsCoVFiFgpqSgkWyspmU1T81bacsyk627O5dOo2dWQ6J/6oqA3dRiPd5uZ0pGImTle6SH0c + SrRRBEFt7O2351F8pga+qAsHLlw+n3PPuecmAEj4n/gL1noaWF3ueqLdKSJbpwQR2ZuaSNPrClJiKSNE + 48Ws08lOCLQeCafTVR9+td6P1fAiAj/8WP++AlfQBoW7FnwjN1z14jbnuIQRHMLiqGfXhv3fu5j76oSR + HMbzbT1se0YsfXsLzYIUpWP5Ud5wHiM5EGhmJIkUHJreMWP31xZGt/rwdK0Lvb526ANaDAQ06N1ow/S+ + DYRbiELDjVBBf3YizR4IKFg+uKzC558bVMYB9G9qoH6voI4Ol2pNCtmiEPLlOjj2rLg7loO8JxlyRtDm + qCWdQSt1VRO6V5XoWJFBOidiBAIrD02zZZDMFGPooxZ9S6243ptGMgL5JD/m/eLE4CctBbcw4OmN2FUE + +Twf5sAosrSpMUbQYquKTQUnoPETUPoazxQQ3hpYAiNI70qOCxqt5aTBp4F+U42Wd0KI5ytQZbnDiOjM + dDx08zDoU6HH+whXVOx4CeKJEvl9Cwf2oBnS+UrUe0sPaj5aNCxycNEwXQz7jgnXdKlIfpwUb6LQVJRY + /bIwRLgFmCTHmYbRYJ2DDhrmYWrbiAfmezQcYivOx5+Rbkb5swJOycjNaLO9Eg5KYvB1gpithmymEobV + DtgpWGjmIlmZFKXgk4N0NJrcoVwOR58Tzh/KhG6BgOmDHia/HmpvM7J6Umg4fBxmXuH4bN/qy2Tl6tKJ + 7O6rZIY6JZLWeTFyuf0CeUmZRLAV587+TP/yrf8AQUbLH7FojlgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAmtJREFUOE+lk+tL + U3EYx/1b9EWUINGNkDAKCnNe5s5am9u8nWV63GIRS3PsDNMMahi68EU4a9pVK99kmtgotYzUrkPLY6Wu + nZrU2jxn15Rv26BNc/iifvB984PP5+H3PM8vBUDK/2QdvKDRpM1T1YaPVCUzqyK5GVUZ94FUMlOk3GAv + l6b9XWyNwKHWEJ8piv1hbkZwxIbQuwmExkfB3+/GgrYCb4oJ9qVSSKyWxAVReK6K4pfudmNl9j3Cg/cQ + 7mpB2HIBv263Y3lsEC69FhPyXP6FNDsuiQnm1erUCOzkbnZhhbEjfPkcPC1GeJvrELxkRKiVRtB0CsEH + t+A4TmLsyAHnU8m+1CgbE0RgerHBgGX7ZKxiwEzDfV4Hf6N6TbjTJIK91/C6IAvD4iw6LvhEHWN8vdcR + 7rHAY6rB9xJx0izVkOCb6+Ey1uIxkcnEBUyVyh962Iuw2QjPWW3kPvlxyfLgporhtbTBVrDLHxfMkCX+ + QI8VwSYt/GcqNxQsVijgbW/DkHBbQjBdrmDcpnoEWmhwJ5WIVkoaeQE8DXos6HUYFGQknmAvldKMRAB/ + Tyc8KgncFaJ1AlaaC7ZIBF/XFYwKd2AgZ0uiiW9LxKmvygino7oMvjvWWAMXFcKYhJXlg5VEYIkQfGcH + pkrFUdjZJ9icGGO0GZNFecS47BA/d1QB3w0rfjbRcJFyfFXK4G40gL/agWllIfpz0vkIvHaR/qzmc+lB + 4tnh/eyEaA++1engbr0Yy5faE3iStz0Ks6vh+BRW7/aIeG/asDDTYCN2M48Kd3JDgq3cQH4G05+bbujL + 3rTxZ/qXb/0bHdLOuV/psRIAAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/SearchCatalogSettingsDialog.Designer.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/SearchCatalogSettingsDialog.Designer.cs new file mode 100644 index 00000000..aa22dd31 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/SearchCatalogSettingsDialog.Designer.cs @@ -0,0 +1,242 @@ +namespace FacetedSearch3.Settings.UI +{ + partial class SearchCatalogSettingsDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.gbHisCentralUrl = new System.Windows.Forms.GroupBox(); + this.txtCustomUrl = new System.Windows.Forms.TextBox(); + this.rbHisCentalCustom = new System.Windows.Forms.RadioButton(); + this.rbHisCentral2 = new System.Windows.Forms.RadioButton(); + this.rbHisCentral1 = new System.Windows.Forms.RadioButton(); + this.btnOK = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.lblHisCentralURL = new System.Windows.Forms.Label(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.btnRefreshServices = new System.Windows.Forms.Button(); + this.btnRefreshKeywords = new System.Windows.Forms.Button(); + this.label2 = new System.Windows.Forms.Label(); + this.rbHisCentral = new System.Windows.Forms.RadioButton(); + this.rbLocalMetadataCache = new System.Windows.Forms.RadioButton(); + this.gbHisCentralUrl.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // gbHisCentralUrl + // + this.gbHisCentralUrl.Controls.Add(this.txtCustomUrl); + this.gbHisCentralUrl.Controls.Add(this.rbHisCentalCustom); + this.gbHisCentralUrl.Controls.Add(this.rbHisCentral2); + this.gbHisCentralUrl.Controls.Add(this.rbHisCentral1); + this.gbHisCentralUrl.Location = new System.Drawing.Point(12, 78); + this.gbHisCentralUrl.Name = "gbHisCentralUrl"; + this.gbHisCentralUrl.Size = new System.Drawing.Size(321, 59); + this.gbHisCentralUrl.TabIndex = 29; + this.gbHisCentralUrl.TabStop = false; + this.gbHisCentralUrl.Text = "Specify the HIS Central URL:"; + // + // txtCustomUrl + // + this.txtCustomUrl.BackColor = System.Drawing.Color.Gainsboro; + this.txtCustomUrl.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.txtCustomUrl.ForeColor = System.Drawing.Color.Gray; + this.txtCustomUrl.Location = new System.Drawing.Point(3, 38); + this.txtCustomUrl.Name = "txtCustomUrl"; + this.txtCustomUrl.Size = new System.Drawing.Size(314, 13); + this.txtCustomUrl.TabIndex = 31; + this.txtCustomUrl.Text = "Type-in the Custom URL here..."; + // + // rbHisCentalCustom + // + this.rbHisCentalCustom.AutoSize = true; + this.rbHisCentalCustom.Location = new System.Drawing.Point(187, 16); + this.rbHisCentalCustom.Name = "rbHisCentalCustom"; + this.rbHisCentalCustom.Size = new System.Drawing.Size(60, 17); + this.rbHisCentalCustom.TabIndex = 2; + this.rbHisCentalCustom.Text = "Custom"; + this.rbHisCentalCustom.UseVisualStyleBackColor = true; + // + // rbHisCentral2 + // + this.rbHisCentral2.AutoSize = true; + this.rbHisCentral2.Location = new System.Drawing.Point(96, 16); + this.rbHisCentral2.Name = "rbHisCentral2"; + this.rbHisCentral2.Size = new System.Drawing.Size(84, 17); + this.rbHisCentral2.TabIndex = 1; + this.rbHisCentral2.Text = "HIS central2"; + this.rbHisCentral2.UseVisualStyleBackColor = true; + // + // rbHisCentral1 + // + this.rbHisCentral1.AutoSize = true; + this.rbHisCentral1.Location = new System.Drawing.Point(5, 16); + this.rbHisCentral1.Name = "rbHisCentral1"; + this.rbHisCentral1.Size = new System.Drawing.Size(85, 17); + this.rbHisCentral1.TabIndex = 0; + this.rbHisCentral1.Text = "HIS Central1"; + this.rbHisCentral1.UseVisualStyleBackColor = true; + this.rbHisCentral1.CheckedChanged += new System.EventHandler(this.rbHisCentral_CheckedChanged); + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(176, 211); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 4; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(257, 211); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 5; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // lblHisCentralURL + // + this.lblHisCentralURL.AutoSize = true; + this.lblHisCentralURL.Location = new System.Drawing.Point(14, 78); + this.lblHisCentralURL.Name = "lblHisCentralURL"; + this.lblHisCentralURL.Size = new System.Drawing.Size(0, 13); + this.lblHisCentralURL.TabIndex = 33; + this.lblHisCentralURL.Visible = false; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.btnRefreshServices); + this.groupBox2.Controls.Add(this.btnRefreshKeywords); + this.groupBox2.Location = new System.Drawing.Point(11, 143); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(321, 62); + this.groupBox2.TabIndex = 35; + this.groupBox2.TabStop = false; + // + // btnRefreshServices + // + this.btnRefreshServices.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnRefreshServices.Location = new System.Drawing.Point(165, 21); + this.btnRefreshServices.Name = "btnRefreshServices"; + this.btnRefreshServices.Size = new System.Drawing.Size(142, 23); + this.btnRefreshServices.TabIndex = 3; + this.btnRefreshServices.Text = "Refresh Web Services"; + this.btnRefreshServices.UseVisualStyleBackColor = true; + this.btnRefreshServices.Click += new System.EventHandler(this.btnRefreshServices_Click); + // + // btnRefreshKeywords + // + this.btnRefreshKeywords.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnRefreshKeywords.Location = new System.Drawing.Point(15, 21); + this.btnRefreshKeywords.Name = "btnRefreshKeywords"; + this.btnRefreshKeywords.Size = new System.Drawing.Size(120, 23); + this.btnRefreshKeywords.TabIndex = 2; + this.btnRefreshKeywords.Text = "Refresh Keywords"; + this.btnRefreshKeywords.UseVisualStyleBackColor = true; + this.btnRefreshKeywords.Click += new System.EventHandler(this.btnRefreshKeywords_Click); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(14, 19); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(113, 13); + this.label2.TabIndex = 36; + this.label2.Text = "Select type of catalog:"; + // + // rbHisCentral + // + this.rbHisCentral.AutoSize = true; + this.rbHisCentral.Location = new System.Drawing.Point(17, 41); + this.rbHisCentral.Name = "rbHisCentral"; + this.rbHisCentral.Size = new System.Drawing.Size(79, 17); + this.rbHisCentral.TabIndex = 0; + this.rbHisCentral.TabStop = true; + this.rbHisCentral.Text = "HIS Central"; + this.rbHisCentral.UseVisualStyleBackColor = true; + // + // rbLocalMetadataCache + // + this.rbLocalMetadataCache.AutoSize = true; + this.rbLocalMetadataCache.Location = new System.Drawing.Point(121, 41); + this.rbLocalMetadataCache.Name = "rbLocalMetadataCache"; + this.rbLocalMetadataCache.Size = new System.Drawing.Size(133, 17); + this.rbLocalMetadataCache.TabIndex = 1; + this.rbLocalMetadataCache.TabStop = true; + this.rbLocalMetadataCache.Text = "Local Metadata Cache"; + this.rbLocalMetadataCache.UseVisualStyleBackColor = true; + // + // SearchCatalogSettingsDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(344, 245); + this.Controls.Add(this.rbLocalMetadataCache); + this.Controls.Add(this.rbHisCentral); + this.Controls.Add(this.label2); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.lblHisCentralURL); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.Controls.Add(this.gbHisCentralUrl); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "SearchCatalogSettingsDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Search Catalog"; + this.gbHisCentralUrl.ResumeLayout(false); + this.gbHisCentralUrl.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + public System.Windows.Forms.GroupBox gbHisCentralUrl; + private System.Windows.Forms.RadioButton rbHisCentalCustom; + private System.Windows.Forms.RadioButton rbHisCentral2; + private System.Windows.Forms.RadioButton rbHisCentral1; + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Button btnCancel; + public System.Windows.Forms.Label lblHisCentralURL; + public System.Windows.Forms.TextBox txtCustomUrl; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Button btnRefreshServices; + private System.Windows.Forms.Button btnRefreshKeywords; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.RadioButton rbHisCentral; + private System.Windows.Forms.RadioButton rbLocalMetadataCache; + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/SearchCatalogSettingsDialog.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/SearchCatalogSettingsDialog.cs new file mode 100644 index 00000000..37d6ef0f --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/SearchCatalogSettingsDialog.cs @@ -0,0 +1,175 @@ +using System; +using System.Collections.ObjectModel; +using System.Linq; +using System.Windows.Forms; +using FacetedSearch3.WebServices; + +namespace FacetedSearch3.Settings.UI +{ + public partial class SearchCatalogSettingsDialog : Form + { + #region Fields + + private readonly CatalogSettings _catalogSettings; + private readonly WebServicesSettings _webServicesSettings; + private readonly KeywordsSettings _keywordsSettings; + + #endregion + + #region Constructors + + private SearchCatalogSettingsDialog(CatalogSettings catalogSettings, + WebServicesSettings webServicesSettings, + KeywordsSettings keywordsSettings) + { + if (catalogSettings == null) throw new ArgumentNullException("catalogSettings"); + if (webServicesSettings == null) throw new ArgumentNullException("webServicesSettings"); + if (keywordsSettings == null) throw new ArgumentNullException("keywordsSettings"); + + InitializeComponent(); + + _catalogSettings = catalogSettings; + _webServicesSettings = webServicesSettings; + _keywordsSettings = keywordsSettings; + + rbHisCentral.Tag = TypeOfCatalog.HisCentral; + rbLocalMetadataCache.Tag = TypeOfCatalog.LocalMetadataCache; + + rbHisCentral.CheckedChanged += rbTypeOfCatalog_CheckedChanged; + rbLocalMetadataCache.CheckedChanged += rbTypeOfCatalog_CheckedChanged; + + switch (_catalogSettings.TypeOfCatalog) + { + case TypeOfCatalog.HisCentral: + rbHisCentral.Checked = true; + break; + case TypeOfCatalog.LocalMetadataCache: + rbLocalMetadataCache.Checked = true; + break; + } + + txtCustomUrl.TextChanged += new EventHandler(txtCustomUrl_TextChanged); + rbHisCentral1.Tag = CatalogSettings.HISCENTRAL_URL_1; + rbHisCentral2.Tag = CatalogSettings.HISCENTRAL_URL_2; + rbHisCentral1.CheckedChanged += rbHisCentral_CheckedChanged; + rbHisCentral2.CheckedChanged += rbHisCentral_CheckedChanged; + rbHisCentalCustom.CheckedChanged += rbHisCentral_CheckedChanged; + switch (_catalogSettings.HISCentralUrl) + { + case CatalogSettings.HISCENTRAL_URL_1: + rbHisCentral1.Checked = true; + break; + case CatalogSettings.HISCENTRAL_URL_2: + rbHisCentral2.Checked = true; + break; + default: + rbHisCentalCustom.Checked = true; + break; + } + } + + #endregion + + public static DialogResult ShowDialog(CatalogSettings catalogSettings, + WebServicesSettings webServicesSettings, + KeywordsSettings keywordsSettings) + { + if (catalogSettings == null) throw new ArgumentNullException("catalogSettings"); + if (webServicesSettings == null) throw new ArgumentNullException("webServicesSettings"); + if (keywordsSettings == null) throw new ArgumentNullException("keywordSettings"); + + using (var form = new SearchCatalogSettingsDialog(catalogSettings.Copy(), + webServicesSettings.Copy(), + keywordsSettings.Copy())) + { + if (form.ShowDialog() == DialogResult.OK) + { + if (catalogSettings.TypeOfCatalog != form._catalogSettings.TypeOfCatalog || + catalogSettings.HISCentralUrl != form._catalogSettings.HISCentralUrl) + { + form.RefreshWebServices(); + form.RefresKeywords(); + } + + + catalogSettings.Copy(form._catalogSettings); + webServicesSettings.Copy(form._webServicesSettings); + keywordsSettings.Copy(form._keywordsSettings); + } + + return form.DialogResult; + } + } + + + void txtCustomUrl_TextChanged(object sender, EventArgs e) + { + _catalogSettings.HISCentralUrl = txtCustomUrl.Text; + } + + void rbTypeOfCatalog_CheckedChanged(object sender, EventArgs e) + { + var radioButton = sender as RadioButton; + if (radioButton == null || + !radioButton.Checked) return; + + var typeOfCatalog = (TypeOfCatalog)radioButton.Tag; + _catalogSettings.TypeOfCatalog = typeOfCatalog; + + // Show groupbox with urls only for HisCentral + gbHisCentralUrl.Visible = _catalogSettings.TypeOfCatalog == TypeOfCatalog.HisCentral; + } + + private void btnRefreshServices_Click(object sender, EventArgs e) + { + RefreshWebServices(); + } + + private void btnRefreshKeywords_Click(object sender, EventArgs e) + { + RefresKeywords(); + } + + private void RefreshWebServices() + { + try + { + _webServicesSettings.RefreshWebServices(_catalogSettings); + }catch(Exception ex) + { + MessageBox.Show("Unable to refresh WebServices." + Environment.NewLine + "Error: " + ex.Message, "Error", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void RefresKeywords() + { + _keywordsSettings.UpdateKeywordsAndOntology(_catalogSettings); + } + + private void rbHisCentral_CheckedChanged(object sender, EventArgs e) + { + var radioButton = sender as RadioButton; + if (radioButton == null) return; + + var url = radioButton.Tag as string; + if (string.IsNullOrEmpty(url)) + { + url = "Type-in the Custom URL here..."; + } + + txtCustomUrl.Text = url; + + if (url != CatalogSettings.HISCENTRAL_URL_1 && + url != CatalogSettings.HISCENTRAL_URL_2) + { + txtCustomUrl.Enabled = true; + txtCustomUrl.Focus(); + } + else + { + txtCustomUrl.Enabled = false; + } + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/SearchCatalogSettingsDialog.resx b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/SearchCatalogSettingsDialog.resx new file mode 100644 index 00000000..c7e0d4bd --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/SearchCatalogSettingsDialog.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesDialog.Designer.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesDialog.Designer.cs new file mode 100644 index 00000000..1938e1d2 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesDialog.Designer.cs @@ -0,0 +1,145 @@ +namespace FacetedSearch3.Settings.UI +{ + partial class WebServicesDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnCancel = new System.Windows.Forms.Button(); + this.btnOK = new System.Windows.Forms.Button(); + this.webServicesUserControl1 = new FacetedSearch3.Settings.UI.WebServicesUserControl(); + this.paButtons = new System.Windows.Forms.Panel(); + this.btnRefresh = new System.Windows.Forms.Button(); + this.btnSelectNone = new System.Windows.Forms.Button(); + this.btnSelectAll = new System.Windows.Forms.Button(); + this.paButtons.SuspendLayout(); + this.SuspendLayout(); + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(314, 470); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 1; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(233, 470); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 0; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + // + // webServicesUserControl1 + // + this.webServicesUserControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.webServicesUserControl1.Location = new System.Drawing.Point(0, 56); + this.webServicesUserControl1.Name = "webServicesUserControl1"; + this.webServicesUserControl1.Size = new System.Drawing.Size(401, 387); + this.webServicesUserControl1.TabIndex = 0; + // + // paButtons + // + this.paButtons.Controls.Add(this.btnRefresh); + this.paButtons.Controls.Add(this.btnSelectNone); + this.paButtons.Controls.Add(this.btnSelectAll); + this.paButtons.Dock = System.Windows.Forms.DockStyle.Top; + this.paButtons.Location = new System.Drawing.Point(0, 0); + this.paButtons.Name = "paButtons"; + this.paButtons.Size = new System.Drawing.Size(401, 50); + this.paButtons.TabIndex = 45; + // + // btnRefresh + // + this.btnRefresh.Location = new System.Drawing.Point(20, 13); + this.btnRefresh.Name = "btnRefresh"; + this.btnRefresh.Size = new System.Drawing.Size(75, 23); + this.btnRefresh.TabIndex = 41; + this.btnRefresh.Text = "Refresh"; + this.btnRefresh.UseVisualStyleBackColor = true; + this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click); + // + // btnSelectNone + // + this.btnSelectNone.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnSelectNone.Location = new System.Drawing.Point(301, 13); + this.btnSelectNone.Name = "btnSelectNone"; + this.btnSelectNone.Size = new System.Drawing.Size(75, 23); + this.btnSelectNone.TabIndex = 43; + this.btnSelectNone.Text = "Select None"; + this.btnSelectNone.UseVisualStyleBackColor = true; + this.btnSelectNone.Click += new System.EventHandler(this.btnSelectNone_Click); + // + // btnSelectAll + // + this.btnSelectAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnSelectAll.Location = new System.Drawing.Point(220, 13); + this.btnSelectAll.Name = "btnSelectAll"; + this.btnSelectAll.Size = new System.Drawing.Size(75, 23); + this.btnSelectAll.TabIndex = 42; + this.btnSelectAll.Text = "Select All"; + this.btnSelectAll.UseVisualStyleBackColor = true; + this.btnSelectAll.Click += new System.EventHandler(this.btnSelectAll_Click); + // + // WebServicesDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(401, 507); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.Controls.Add(this.paButtons); + this.Controls.Add(this.webServicesUserControl1); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "WebServicesDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Web Services"; + this.paButtons.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private WebServicesUserControl webServicesUserControl1; + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Panel paButtons; + private System.Windows.Forms.Button btnRefresh; + private System.Windows.Forms.Button btnSelectNone; + private System.Windows.Forms.Button btnSelectAll; + private System.Windows.Forms.Button btnCancel; + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesDialog.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesDialog.cs new file mode 100644 index 00000000..45294a05 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesDialog.cs @@ -0,0 +1,48 @@ +using System; +using System.Windows.Forms; + +namespace FacetedSearch3.Settings.UI +{ + public partial class WebServicesDialog : Form + { + private readonly WebServicesSettings _settings; + + private WebServicesDialog(WebServicesSettings settings) + { + InitializeComponent(); + + _settings = settings; + webServicesUserControl1.SetSettings(settings); + } + + public static DialogResult ShowDialog(WebServicesSettings settings) + { + if (settings == null) throw new ArgumentNullException("settings"); + + using (var form = new WebServicesDialog(settings.Copy())) + { + if (form.ShowDialog() == DialogResult.OK) + { + settings.Copy(form._settings); + } + + return form.DialogResult; + } + } + + private void btnRefresh_Click(object sender, EventArgs e) + { + webServicesUserControl1.RefreshWebServices(); + } + + private void btnSelectAll_Click(object sender, EventArgs e) + { + webServicesUserControl1.CheckAllWebServices(true); + } + + private void btnSelectNone_Click(object sender, EventArgs e) + { + webServicesUserControl1.CheckAllWebServices(false); + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesDialog.resx b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesDialog.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesDialog.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesUserControl.Designer.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesUserControl.Designer.cs new file mode 100644 index 00000000..e9ad323a --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesUserControl.Designer.cs @@ -0,0 +1,58 @@ +namespace FacetedSearch3.Settings.UI +{ + partial class WebServicesUserControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.treeViewWebServices = new System.Windows.Forms.TreeView(); + this.SuspendLayout(); + // + // treeViewWebServices + // + this.treeViewWebServices.CheckBoxes = true; + this.treeViewWebServices.Dock = System.Windows.Forms.DockStyle.Fill; + this.treeViewWebServices.Location = new System.Drawing.Point(0, 0); + this.treeViewWebServices.Name = "treeViewWebServices"; + this.treeViewWebServices.Size = new System.Drawing.Size(376, 436); + this.treeViewWebServices.TabIndex = 40; + // + // WebServicesUserControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.treeViewWebServices); + this.Name = "WebServicesUserControl"; + this.Size = new System.Drawing.Size(376, 436); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TreeView treeViewWebServices; + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesUserControl.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesUserControl.cs new file mode 100644 index 00000000..2d7cb1a9 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesUserControl.cs @@ -0,0 +1,140 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Windows.Forms; + +namespace FacetedSearch3.Settings.UI +{ + public partial class WebServicesUserControl : UserControl + { + #region Fields + + private WebServicesSettings _webServicesSettings; + + #endregion + + #region Constructors + + public WebServicesUserControl() + { + InitializeComponent(); + + treeViewWebServices.NodeMouseClick += treeViewWebServices_OpenUrl; + treeViewWebServices.AfterCheck += treeViewWebServices_AfterCheck; + + } + + #endregion + + #region Private methods + + void treeViewWebServices_AfterCheck(object sender, TreeViewEventArgs e) + { + var webNode = (WebServiceNode)e.Node.Tag; + webNode.Checked = e.Node.Checked; + } + + private void treeViewWebServices_OpenUrl(Object sender, TreeNodeMouseClickEventArgs e) + { + if (!e.Node.Bounds.Contains(e.Location)) return; + + var node = e.Node; + var nodeInfo = node.Tag as WebServiceNode; + if (nodeInfo == null || + nodeInfo.DescriptionUrl == null) + { + MessageBox.Show("The node [" + node.Text + "] don't have any ServiceDescriptionURL attribute."); + return; + } + + try + { + System.Diagnostics.Process.Start(nodeInfo.DescriptionUrl); + } + catch (Exception ex) + { + MessageBox.Show("Can't open url. Exception:" + ex.Message); + } + } + + private void RefreshWebServices(IEnumerable webServiceNodeCollection) + { + treeViewWebServices.SuspendLayout(); + try + { + treeViewWebServices.Nodes.Clear(); + + var parentNodes = treeViewWebServices.Nodes; + var clrBule = Color.FromKnownColor(KnownColor.Blue); + var prototype = treeViewWebServices.Font; + var font = new Font(prototype, FontStyle.Underline); + + foreach (var webNode in webServiceNodeCollection) + { + var node = new TreeNode + { + ForeColor = clrBule, + NodeFont = font, + Text = webNode.Title, + Name = webNode.ServiceID, + Checked = webNode.Checked, + Tag = webNode + }; + parentNodes.Add(node); + } + treeViewWebServices.Sort(); + } + finally + { + treeViewWebServices.ResumeLayout(); + } + } + + #endregion + + #region Public methods + + /// + /// Refresh all web services. + /// + public void RefreshWebServices() + { + if (_webServicesSettings == null) + { + return; + } + + _webServicesSettings.RefreshWebServices(); + RefreshWebServices(_webServicesSettings.WebServices); + } + + + /// + /// Check all web services. + /// + /// Check or uncheck all web services. + public void CheckAllWebServices(bool check) + { + if (treeViewWebServices.Nodes.Count <= 0) return; + foreach (TreeNode tnode in treeViewWebServices.Nodes) + { + tnode.Checked = check; + } + } + + /// + /// Set settings into control. + /// + /// WebServices settings to set. + /// Throws if is null. + public void SetSettings(WebServicesSettings webServicesSettings) + { + if (webServicesSettings == null) throw new ArgumentNullException("webServicesSettings"); + + _webServicesSettings = webServicesSettings; + RefreshWebServices(webServicesSettings.WebServices); + } + + #endregion + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesUserControl.resx b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesUserControl.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/Settings/UI/WebServicesUserControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/WebServices/DbWebServicesList.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/WebServices/DbWebServicesList.cs new file mode 100644 index 00000000..c1dfbe80 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/WebServices/DbWebServicesList.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; +using System.Linq; +using FacetedSearch3.Searching; +using FacetedSearch3.Settings; + +namespace FacetedSearch3.WebServices +{ + class DbWebServicesList : IWebServicesList + { + public IEnumerable GetWebServices() + { + return new MetadataCacheSearcher().GetWebServices().Select( + service => + new WebServiceNode(service.ServiceTitle, + service.ServiceCode, service.Id.ToString(), service.DescriptionURL, service.EndpointURL)).ToList(); + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/WebServices/HisCentralWebServicesList.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/WebServices/HisCentralWebServicesList.cs new file mode 100644 index 00000000..59c6a08d --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/WebServices/HisCentralWebServicesList.cs @@ -0,0 +1,122 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Xml; +using FacetedSearch3.Searching; +using FacetedSearch3.Settings; +using log4net; + +namespace FacetedSearch3.WebServices +{ + class HisCentralWebServicesList : IWebServicesList + { + #region Fields + + private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + private string WebServicesFilename { get; set; } + private readonly string _hisCentralUrl; + + #endregion + + #region Constructors + + public HisCentralWebServicesList(string hisCentralUrl) + { + _hisCentralUrl = hisCentralUrl; + WebServicesFilename = Path.Combine(ServicesXmlDirectoryPath, Properties.Settings.Default.WebServicesFileName); + } + + #endregion + + #region Public methods + + public IEnumerable GetWebServices() + { + var document = GetWebServicesFromHISCentral(_hisCentralUrl); + if (document.DocumentElement == null) + return new WebServiceNode[] {}; + + var result = new List(document.DocumentElement.ChildNodes.Count); + foreach (XmlNode childNode1 in document.DocumentElement.ChildNodes) + { + if (childNode1.Name == "ServiceInfo") + { + string desciptionUrl = null; + string serviceUrl = null; + string title = null; + string serviceID = null; + string serviceCode = null; + foreach (XmlNode childNode2 in childNode1.ChildNodes) + { + switch (childNode2.Name) + { + case "Title": + title = childNode2.InnerText; + break; + case "ServiceID": + serviceID = childNode2.InnerText; + break; + case "ServiceDescriptionURL": + desciptionUrl = childNode2.InnerText; + break; + case "servURL": + serviceUrl = childNode2.InnerText; + break; + case "NetworkName": + serviceCode = childNode2.InnerText; + break; + } + } + var node = new WebServiceNode(title, serviceCode, serviceID, desciptionUrl, serviceUrl); + result.Add(node); + } + } + + return result; + } + + #endregion + + #region Private methods + + /// + /// Expect that this will be a method in the main class someday + /// + private string ServicesXmlDirectoryPath + { + get + { + var servicesXMLPath = HydroDesktop.Configuration.Settings.Instance.ApplicationDataDirectory; + return servicesXMLPath; + } + } + + private XmlDocument GetWebServicesFromHISCentral(string hisCentralUrl) + { + var searcher = new HISCentralSearcher(hisCentralUrl); + RefreshListFromHisCentral(searcher); + var document = new XmlDocument(); + try + { + document.Load(WebServicesFilename); + } + catch (Exception ex) + { + log.Error("Error in GetWebServicesFromHISCentral", ex); + } + if (File.Exists(WebServicesFilename)) + { + return document; + } + + throw new Exception(); + } + + private void RefreshListFromHisCentral(IHISCentralSearcher searcher) + { + searcher.GetWebServicesXml(WebServicesFilename); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/WebServices/IWebServicesList.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/WebServices/IWebServicesList.cs new file mode 100644 index 00000000..256b0a0c --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/WebServices/IWebServicesList.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; +using FacetedSearch3.Settings; + +namespace FacetedSearch3.WebServices +{ + interface IWebServicesList + { + IEnumerable GetWebServices(); + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/WebServices/WebServicesList.cs b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/WebServices/WebServicesList.cs new file mode 100644 index 00000000..ce46e3f8 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/WebServices/WebServicesList.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using FacetedSearch3.Settings; + +namespace FacetedSearch3.WebServices +{ + class WebServicesList + { + public IEnumerable GetWebServices(CatalogSettings catalogSettings) + { + if (catalogSettings == null) throw new ArgumentNullException("catalogSettings"); + + IWebServicesList webServicesList; + switch (catalogSettings.TypeOfCatalog) + { + case TypeOfCatalog.HisCentral: + webServicesList = new HisCentralWebServicesList(catalogSettings.HISCentralUrl); + break; + case TypeOfCatalog.LocalMetadataCache: + webServicesList = new DbWebServicesList(); + break; + default: + throw new Exception("Unsupported TypeOfCatalog"); + } + + return webServicesList.GetWebServices(); + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/app.config b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/app.config new file mode 100644 index 00000000..d988d5fd --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/app.config @@ -0,0 +1,85 @@ + + + + +
+ + + + + + HisCentral + + + WebServices.xml + + + Resources\Synonyms.xml + + + Resources\OntologyTree.xml + + + searchresult_{0}.shp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/package.nuspec b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/package.nuspec new file mode 100644 index 00000000..65153797 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearch/package.nuspec @@ -0,0 +1,17 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + true + $description$ + + en-US + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearchDev.sln b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearchDev.sln new file mode 100644 index 00000000..9970fd7b --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.FacetedSearch/FacetedSearchDev.sln @@ -0,0 +1,68 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HISFacetedSearch_Prototype2", "..\HISFacetedSearch_Prototype2\HISFacetedSearch_Prototype2\HISFacetedSearch_Prototype2\HISFacetedSearch_Prototype2.csproj", "{0149BC21-078A-4047-A470-4BB6F070C95B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FacetedSearchRibbon", "..\HISFacetedSearch_Prototype2\HISFacetedSearch_Prototype2\FacetedSearchRibbon\FacetedSearchRibbon.csproj", "{A54040C6-DC52-4381-93A5-BEAD2F036D6F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FacetedSearch3", "FacetedSearch3\FacetedSearch3.csproj", "{FB01F6EE-89C0-4A64-B023-C8CC566FF803}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Search3", "..\hydrodesktop\Source\Search3\Search3.csproj", "{B2BCC919-46F4-4D69-8605-7747BD14FE41}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0149BC21-078A-4047-A470-4BB6F070C95B}.Debug|Any CPU.ActiveCfg = Debug|x86 + {0149BC21-078A-4047-A470-4BB6F070C95B}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {0149BC21-078A-4047-A470-4BB6F070C95B}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {0149BC21-078A-4047-A470-4BB6F070C95B}.Debug|x86.ActiveCfg = Debug|x86 + {0149BC21-078A-4047-A470-4BB6F070C95B}.Debug|x86.Build.0 = Debug|x86 + {0149BC21-078A-4047-A470-4BB6F070C95B}.Release|Any CPU.ActiveCfg = Release|x86 + {0149BC21-078A-4047-A470-4BB6F070C95B}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {0149BC21-078A-4047-A470-4BB6F070C95B}.Release|Mixed Platforms.Build.0 = Release|x86 + {0149BC21-078A-4047-A470-4BB6F070C95B}.Release|x86.ActiveCfg = Release|x86 + {0149BC21-078A-4047-A470-4BB6F070C95B}.Release|x86.Build.0 = Release|x86 + {A54040C6-DC52-4381-93A5-BEAD2F036D6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A54040C6-DC52-4381-93A5-BEAD2F036D6F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A54040C6-DC52-4381-93A5-BEAD2F036D6F}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {A54040C6-DC52-4381-93A5-BEAD2F036D6F}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {A54040C6-DC52-4381-93A5-BEAD2F036D6F}.Debug|x86.ActiveCfg = Debug|x86 + {A54040C6-DC52-4381-93A5-BEAD2F036D6F}.Debug|x86.Build.0 = Debug|x86 + {A54040C6-DC52-4381-93A5-BEAD2F036D6F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A54040C6-DC52-4381-93A5-BEAD2F036D6F}.Release|Any CPU.Build.0 = Release|Any CPU + {A54040C6-DC52-4381-93A5-BEAD2F036D6F}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {A54040C6-DC52-4381-93A5-BEAD2F036D6F}.Release|Mixed Platforms.Build.0 = Release|x86 + {A54040C6-DC52-4381-93A5-BEAD2F036D6F}.Release|x86.ActiveCfg = Release|x86 + {A54040C6-DC52-4381-93A5-BEAD2F036D6F}.Release|x86.Build.0 = Release|x86 + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Debug|x86.ActiveCfg = Debug|Any CPU + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Release|Any CPU.Build.0 = Release|Any CPU + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Release|x86.ActiveCfg = Release|Any CPU + {B2BCC919-46F4-4D69-8605-7747BD14FE41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B2BCC919-46F4-4D69-8605-7747BD14FE41}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B2BCC919-46F4-4D69-8605-7747BD14FE41}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {B2BCC919-46F4-4D69-8605-7747BD14FE41}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {B2BCC919-46F4-4D69-8605-7747BD14FE41}.Debug|x86.ActiveCfg = Debug|Any CPU + {B2BCC919-46F4-4D69-8605-7747BD14FE41}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B2BCC919-46F4-4D69-8605-7747BD14FE41}.Release|Any CPU.Build.0 = Release|Any CPU + {B2BCC919-46F4-4D69-8605-7747BD14FE41}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {B2BCC919-46F4-4D69-8605-7747BD14FE41}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {B2BCC919-46F4-4D69-8605-7747BD14FE41}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Fill/Fill.sln b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Fill/Fill.sln new file mode 100644 index 00000000..c07cdd34 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Fill/Fill.sln @@ -0,0 +1,72 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fill", "Fill\Fill.csproj", "{F59FAA7B-147E-43D3-86D2-82A1B92C5EB7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spline", "..\Spline\Spline.csproj", "{132B6DF8-BA91-4617-B18F-AD6C6278F95D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlowDirection", "..\FlowDirection\FlowDirection.csproj", "{CB22CAB6-D281-4F23-A5DF-703FAC75E075}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlowAccumulation", "..\Flow Accumulation\FlowAccumulation.csproj", "{DFBE3F41-4792-4496-A715-F0A22321ACD2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Gui.ConfigurationEditor", "..\..\..\..\..\..\OpenMI 2.0\src\csharp\Oatc.OpenMI\Gui\ConfigurationEditor\Oatc.OpenMI.Gui.ConfigurationEditor.csproj", "{5990D533-2648-49CB-A3F2-A31EC8F03D59}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F59FAA7B-147E-43D3-86D2-82A1B92C5EB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F59FAA7B-147E-43D3-86D2-82A1B92C5EB7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F59FAA7B-147E-43D3-86D2-82A1B92C5EB7}.Debug|x64.ActiveCfg = Debug|Any CPU + {F59FAA7B-147E-43D3-86D2-82A1B92C5EB7}.Debug|x86.ActiveCfg = Debug|Any CPU + {F59FAA7B-147E-43D3-86D2-82A1B92C5EB7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F59FAA7B-147E-43D3-86D2-82A1B92C5EB7}.Release|Any CPU.Build.0 = Release|Any CPU + {F59FAA7B-147E-43D3-86D2-82A1B92C5EB7}.Release|x64.ActiveCfg = Release|Any CPU + {F59FAA7B-147E-43D3-86D2-82A1B92C5EB7}.Release|x86.ActiveCfg = Release|Any CPU + {132B6DF8-BA91-4617-B18F-AD6C6278F95D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {132B6DF8-BA91-4617-B18F-AD6C6278F95D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {132B6DF8-BA91-4617-B18F-AD6C6278F95D}.Debug|x64.ActiveCfg = Debug|Any CPU + {132B6DF8-BA91-4617-B18F-AD6C6278F95D}.Debug|x86.ActiveCfg = Debug|Any CPU + {132B6DF8-BA91-4617-B18F-AD6C6278F95D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {132B6DF8-BA91-4617-B18F-AD6C6278F95D}.Release|Any CPU.Build.0 = Release|Any CPU + {132B6DF8-BA91-4617-B18F-AD6C6278F95D}.Release|x64.ActiveCfg = Release|Any CPU + {132B6DF8-BA91-4617-B18F-AD6C6278F95D}.Release|x86.ActiveCfg = Release|Any CPU + {CB22CAB6-D281-4F23-A5DF-703FAC75E075}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB22CAB6-D281-4F23-A5DF-703FAC75E075}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB22CAB6-D281-4F23-A5DF-703FAC75E075}.Debug|x64.ActiveCfg = Debug|Any CPU + {CB22CAB6-D281-4F23-A5DF-703FAC75E075}.Debug|x86.ActiveCfg = Debug|Any CPU + {CB22CAB6-D281-4F23-A5DF-703FAC75E075}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB22CAB6-D281-4F23-A5DF-703FAC75E075}.Release|Any CPU.Build.0 = Release|Any CPU + {CB22CAB6-D281-4F23-A5DF-703FAC75E075}.Release|x64.ActiveCfg = Release|Any CPU + {CB22CAB6-D281-4F23-A5DF-703FAC75E075}.Release|x86.ActiveCfg = Release|Any CPU + {DFBE3F41-4792-4496-A715-F0A22321ACD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DFBE3F41-4792-4496-A715-F0A22321ACD2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DFBE3F41-4792-4496-A715-F0A22321ACD2}.Debug|x64.ActiveCfg = Debug|Any CPU + {DFBE3F41-4792-4496-A715-F0A22321ACD2}.Debug|x86.ActiveCfg = Debug|Any CPU + {DFBE3F41-4792-4496-A715-F0A22321ACD2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DFBE3F41-4792-4496-A715-F0A22321ACD2}.Release|Any CPU.Build.0 = Release|Any CPU + {DFBE3F41-4792-4496-A715-F0A22321ACD2}.Release|x64.ActiveCfg = Release|Any CPU + {DFBE3F41-4792-4496-A715-F0A22321ACD2}.Release|x86.ActiveCfg = Release|Any CPU + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Debug|x64.ActiveCfg = Debug|x64 + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Debug|x64.Build.0 = Debug|x64 + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Debug|x86.ActiveCfg = Debug|x86 + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Debug|x86.Build.0 = Debug|x86 + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Release|Any CPU.Build.0 = Release|Any CPU + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Release|x64.ActiveCfg = Release|x64 + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Release|x64.Build.0 = Release|x64 + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Release|x86.ActiveCfg = Release|x86 + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Fill/Fill/Fill.csproj b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Fill/Fill/Fill.csproj new file mode 100644 index 00000000..c0c8f15c --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Fill/Fill/Fill.csproj @@ -0,0 +1,85 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {F59FAA7B-147E-43D3-86D2-82A1B92C5EB7} + Library + Properties + Fill + Fill + v3.5 + 512 + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler2.0\Components\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler2.0\Oatc.OpenMI.Sdk.dll + + + False + ..\..\..\..\..\..\..\OpenMI 2.0\src\csharp\Oatc.OpenMI\ModelWrappers\EngineWrapper\bin\Debug\Oatc.OpenMI.Sdk.ModelWrapper.dll + + + False + ..\..\..\..\..\..\..\OpenMI 2.0\src\csharp\Oatc.OpenMI\ModelWrappers\EngineWrapper2\bin\Debug\Oatc_OpenMI_Sdk_ModelWrapper2.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler2.0\OpenMI.Standard2.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Fill/Fill/Fill.omi b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Fill/Fill/Fill.omi new file mode 100644 index 00000000..33fc04f8 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Fill/Fill/Fill.omi @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Fill/Fill/FillEngine.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Fill/Fill/FillEngine.cs new file mode 100644 index 00000000..6ed2bf03 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Fill/Fill/FillEngine.cs @@ -0,0 +1,334 @@ +using System; +using System.Collections.Generic; +using System.Collections; +using System.Linq; +using System.Text; +using OpenMI.Standard2; +using Oatc.OpenMI.Sdk.ModelWrapper; +using Oatc.OpenMI.Sdk.Backbone; +using ESRI.ArcGIS.Geoprocessor; +using ESRI.ArcGIS.esriSystem; +using ESRI.ArcGIS.SpatialAnalystTools; +using System.Collections.ObjectModel; +using System.IO; + +namespace Fill +{ + public class FillEngine: LinkableGetSetEngine + { + + private List _inputs = new List(); + private List _outputs = new List(); + private EngineInputItem _InputItem; + EngineOutputItem _OutputItem; + private readonly Time _simulationEnd; + private readonly Time _simulationStart; + private Time _currentTime; + private readonly double _timeStepLengthInSeconds; + private readonly double _timeStepLengthInDays; + private string _Inpath; + private string _Outpath; + private string _outpath; + private Geoprocessor GP; + private int numProcessed; + IAoInitialize license; + + public FillEngine() + { + //model ID + this.Id = "Raster Fill"; + //Component GUI Caption + this.Caption = "Raster Fill"; + //model description + this.Description = "Fills sinks in a raster grid"; + + _simulationStart = new Time(new DateTime(2005, 1, 1, 0, 0, 0)); + _simulationEnd = new Time(new DateTime(2005, 1, 2, 0, 0, 0)); + _currentTime = new Time(_simulationStart); + _timeStepLengthInSeconds = 3600 * 24; //one day + _timeStepLengthInDays = _timeStepLengthInSeconds / (24.0 * 3600.0); + numProcessed = 0; + license = new AoInitializeClass(); + } + public override void Finish() + { + license.Shutdown(); + } + + public override void Initialize(IArgument[] arguments) + { + //set component to run in loop mode + this.CascadingUpdateCallsDisabled = true; + + Status = LinkableComponentStatus.Initializing; + + //read arguments + foreach (IArgument entry in arguments) + { + if (entry.Id == "ElevationSurface") + { + _Inpath = Path.GetFullPath(entry.Value.ToString()); + } + else if (entry.Id == "OutputFile") + { + _outpath = Path.GetFullPath(entry.Value.ToString()); + } + } + + + // -- Time settings for input and output exchange items -- + ITime timeHorizon = new Time(StartTime, EndTime); + + + //Create input element set + Element e = new Element("Elevation Surface"); + e.Id = "Elevation Surface"; + ElementSet eSet = new ElementSet("Elevation Surface", "Elevation Surface", ElementType.IdBased); + eSet.AddElement(e); + Quantity quantity = new Quantity(new Unit("Raster", 1.0, 0.0, "Raster"), "Elevation Surface", "Elevation Surface"); + //add input item + _InputItem = new EngineEInputItem("ElevationSurface", quantity, eSet, this); + //_InputItem.StoreValuesInExchangeItem = true; + _InputItem.SetTimeHorizon(timeHorizon); + this.EngineInputItems.Add(_InputItem); + _InputItem.SetSingleTime(StartTime); + + //add input exchange item to input item list + _inputs.Add(_InputItem); + + + //create output element set + e = new Element("Filled Surface"); + e.Id = "Filled Surface"; + eSet = new ElementSet("Filled Surface", "Filled Surface", ElementType.IdBased); + eSet.AddElement(e); + quantity = new Quantity(new Unit("Raster", 1.0, 0.0, "Raster"), "Filled Surface", "Filled Surface"); + //add output item + _OutputItem = new EngineEOutputItem("Filled Surface", quantity, eSet, this); + _OutputItem.SetSingleTime(StartTime); + + //_OutputItem.StoreValuesInExchangeItem = true; + _OutputItem.SetTimeHorizon(timeHorizon); + this.EngineOutputItems.Add(_OutputItem); + + //add output exchange item to output item list + _outputs.Add(_OutputItem); + + + + + //initialize geoprocessing objects + GP = new Geoprocessor(); + GP.OverwriteOutput = true; + + //checkout spatial analyst license + esriLicenseStatus LicenseStatus = esriLicenseStatus.esriLicenseUnavailable; + LicenseStatus = license.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo); + LicenseStatus = license.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst); + + + Status = LinkableComponentStatus.Initialized; + } + + + + public override void Prepare() + { + } + + public override IValueSet GetEngineValues(ExchangeItem exchangeItem) + { + //--- give output items --- + + IList values = new List(); + if (exchangeItem is EngineInputItem) + { + // Input item, provide current input values + if (exchangeItem == _InputItem) + { + values.Add(_Inpath); + + //determine outpath + string[] inpath = _Inpath.Split('/'); + int l = inpath[inpath.Length].Length; + _Outpath = _Inpath.Remove(inpath.Length - l); + _Outpath += exchangeItem.Id + "_Fill"; + } + else + { + throw new ArgumentException("Unknown Exchange Item Id: \"" + exchangeItem.Id + "\"", "exchangeItem"); + } + } + else if (exchangeItem is EngineOutputItem) + { + // Output item, provide computed values + if (exchangeItem == _OutputItem) + { + //if (_Outpath == null) + //{ + //if no values exist, then run perform time step to calculate them + ICollection outputs = new Collection(); + outputs.Add(_outputExchangeItems[0]); + this.PerformTimestep(outputs); + + if (_Outpath != null){values.Add(_Outpath);} + else + { + //if output path is still null, try updating inputs + _inputExchangeItems[0].Update(); + //this.ProcessActiveInputItems(); + this.PerformTimestep(outputs); + } + + if (_Outpath == null){values.Add(null);} + else { values.Add(_Outpath); } + + //} + //else + //{ + // values.Add(_Outpath); + //} + } + else + { + throw new ArgumentException("Unknown Exchange Item Id: \"" + exchangeItem.Id + "\"", "exchangeItem"); + } + } + else + { + throw new Exception("Should be EngineInputItem or EngineOutputItem"); + } + //clear output + this._Outpath = null; + return new ValueSet(new List { values }); + } + + public override void SetEngineValues(EngineInputItem inputItem, IValueSet values) + { + //--- set input values --- + if (inputItem == _InputItem) + { + if (values == null) + _Inpath = null; + else + _Inpath = (string)values.GetValue(0,0); + + } + else + { + throw new ArgumentException("Unknown Input Item Id: \"" + inputItem.Id + "\"", "inputItem"); + } + } + + public override ITime CurrentTime + { + get { return _currentTime; } + } + + protected override ITime EndTime + { + get { return _simulationEnd; } + } + + public override ITime GetCurrentTime(bool asStamp) + { + double timeStepLengthInDays = _timeStepLengthInSeconds / (60 * 60 * 24); + + if (asStamp) + { + return new Time(_currentTime); + } + + return (new Time(_currentTime.StampAsModifiedJulianDay - timeStepLengthInDays, timeStepLengthInDays)); + } + + public override ITime GetInputTime(bool asStamp) + { + Time targetTime; + if (asStamp) + //targetTime = new Time(_currentTime.StampAsModifiedJulianDay + _timeStepLengthInDays); + targetTime = _currentTime; + else + targetTime = new Time(_currentTime.StampAsModifiedJulianDay, _timeStepLengthInDays); + return targetTime; + } + + protected override void OnPrepare() + { + } + + protected override string[] OnValidate() + { + return new string[0]; + } + + protected override void PerformTimestep(ICollection requiredOutputItems) + { + //--- perform calculation --- + + //Status = LinkableComponentStatus.Updating; + + if (_Inpath != null) + { + ESRI.ArcGIS.SpatialAnalystTools.Fill fill = new ESRI.ArcGIS.SpatialAnalystTools.Fill(); + fill.in_surface_raster = _Inpath; + + + _Outpath = _outpath; + + if (_Outpath == null) + { + //determine outpath + string[] inpath = _Inpath.Split('\\'); + int l = inpath[inpath.Length - 1].Length; + _Outpath = _Inpath.Remove(_Inpath.Length - l); + + string name = _OutputItem.ElementSet.Caption; + name = name.Replace(" ", ""); + if (name.Length >= 9) + name = name.Remove(9); + + _Outpath += name + "_fil"; + } + + fill.out_surface_raster = _Outpath; + + + GP.Execute(fill, null); + if (GP.MaxSeverity == 2) + { + object sev = 2; + throw new Exception("Unable to perform raster Fill operationESRI ERROR: " + GP.GetMessages(ref sev)); + } + + + + + numProcessed++; + _currentTime.AddSeconds(_timeStepLengthInSeconds); + this._outputExchangeItems[0].SetSingleTime(this.GetCurrentTime(true)); + this._inputExchangeItems[0].SetSingleTime(this.GetCurrentTime(true)); + + //Status = LinkableComponentStatus.Updated; + + //clear inputs + this._Inpath = null; + + //if (numProcessed >= requiredOutputItems.Count) + //{ + // //_currentTime = _simulationEnd; + // Status = LinkableComponentStatus.Done; + //} + + } + + + + } + + protected override ITime StartTime + { + get { return _simulationStart; } + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Fill/Fill/Properties/AssemblyInfo.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Fill/Fill/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..200d88a7 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Fill/Fill/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Fill")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("Fill")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("933d5388-291f-4240-aa73-1aff96fc5673")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Flow Accumulation/FaccEngine.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Flow Accumulation/FaccEngine.cs new file mode 100644 index 00000000..69bf913f --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Flow Accumulation/FaccEngine.cs @@ -0,0 +1,333 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using ESRI.ArcGIS.esriSystem; +using ESRI.ArcGIS.Geoprocessor; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.ModelWrapper; +using OpenMI.Standard2; +using System.Collections.ObjectModel; +using System.IO; + +namespace FlowAccumulation +{ + public class FaccEngine : LinkableGetSetEngine + { + private List _inputs = new List(); + private List _outputs = new List(); + private EngineInputItem _InputItem; + EngineOutputItem _OutputItem; + private readonly Time _simulationEnd; + private readonly Time _simulationStart; + private Time _currentTime; + private readonly double _timeStepLengthInSeconds; + private readonly double _timeStepLengthInDays; + private string _Inpath; + private string _Outpath; + private string _outpath; + + private Geoprocessor GP; + private int numProcessed; + IAoInitialize license; + + public FaccEngine() + { + //model ID + this.Id = "Flow Accumulation"; + //Component GUI Caption + this.Caption = "Flow Accumulation"; + //model description + this.Description = "Calculates the Flow Accumulation for each pixel on a surface raster"; + + _simulationStart = new Time(new DateTime(2005, 1, 1, 0, 0, 0)); + _simulationEnd = new Time(new DateTime(2005, 1, 2, 0, 0, 0)); + _currentTime = new Time(_simulationStart); + _timeStepLengthInSeconds = 3600 * 24; //one day + _timeStepLengthInDays = _timeStepLengthInSeconds / (24.0 * 3600.0); + numProcessed = 0; + license = new AoInitializeClass(); + } + public override void Finish() + { + license.Shutdown(); + + } + + public override void Initialize(IArgument[] arguments) + { + //set component to run in loop mode + this.CascadingUpdateCallsDisabled = true; + + Status = LinkableComponentStatus.Initializing; + + //read arguments + foreach (IArgument entry in arguments) + { + if (entry.Id == "FlowDirection") + { + _Inpath = Path.GetFullPath(entry.Value.ToString()); + } + else if (entry.Id == "OutputFile") + { + _outpath = Path.GetFullPath(entry.Value.ToString()); + } + } + + // -- Time settings for input and output exchange items -- + ITime timeHorizon = new Time(StartTime, EndTime); + + + //Create input element set + Element e = new Element("Flow Direction"); + e.Id = "Flow Direction"; + ElementSet eSet = new ElementSet("Flow Direction", "Flow Direction", ElementType.IdBased); + eSet.AddElement(e); + Quantity quantity = new Quantity(new Unit("Raster", 1.0, 0.0, "Raster"), "Flow Direction", "Flow Direction"); + //add input item + _InputItem = new EngineEInputItem("Flow Direction", quantity, eSet, this); + //_InputItem.StoreValuesInExchangeItem = true; + _InputItem.SetTimeHorizon(timeHorizon); + this.EngineInputItems.Add(_InputItem); + _InputItem.SetSingleTime(StartTime); + + + //add input exchange item to input item list + _inputs.Add(_InputItem); + + + //create output element set + e = new Element("Flow Accumulation"); + e.Id = "Flow Accumulation"; + eSet = new ElementSet("Flow Accumulation", "Flow Accumulation", ElementType.IdBased); + eSet.AddElement(e); + quantity = new Quantity(new Unit("Raster", 1.0, 0.0, "Raster"), "Flow Accumulation", "Flow Accumulation"); + //add output item + _OutputItem = new EngineEOutputItem("Flow Accumulation", quantity, eSet, this); + _OutputItem.SetSingleTime(StartTime); + + //_OutputItem.StoreValuesInExchangeItem = true; + _OutputItem.SetTimeHorizon(timeHorizon); + this.EngineOutputItems.Add(_OutputItem); + + //add output exchange item to output item list + _outputs.Add(_OutputItem); + + + + + //initialize geoprocessing objects + GP = new Geoprocessor(); + GP.OverwriteOutput = true; + + //checkout spatial analyst license + esriLicenseStatus LicenseStatus = esriLicenseStatus.esriLicenseUnavailable; + LicenseStatus = license.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo); + LicenseStatus = license.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst); + + + Status = LinkableComponentStatus.Initialized; + } + + + + public override void Prepare() + { + } + + public override IValueSet GetEngineValues(ExchangeItem exchangeItem) + { + //--- give output items --- + + IList values = new List(); + if (exchangeItem is EngineInputItem) + { + // Input item, provide current input values + if (exchangeItem == _InputItem) + { + values.Add(_Inpath); + + //determine outpath + string[] inpath = _Inpath.Split('/'); + int l = inpath[inpath.Length].Length; + _Outpath = _Inpath.Remove(inpath.Length - l); + _Outpath += exchangeItem.Id + "_FDR"; + } + else + { + throw new ArgumentException("Unknown Exchange Item Id: \"" + exchangeItem.Id + "\"", "exchangeItem"); + } + } + else if (exchangeItem is EngineOutputItem) + { + // Output item, provide computed values + if (exchangeItem == _OutputItem) + { + //if (_Outpath == null) + //{ + //if no values exist, then run perform time step to calculate them + ICollection outputs = new Collection(); + outputs.Add(_outputExchangeItems[0]); + this.PerformTimestep(outputs); + + if (_Outpath != null) { values.Add(_Outpath); } + else + { + //if output path is still null, try updating inputs + _inputExchangeItems[0].Update(); + //this.ProcessActiveInputItems(); + this.PerformTimestep(outputs); + } + + if (_Outpath == null) { values.Add(null); } + else { values.Add(_Outpath); } + //} + //else + //{ + // values.Add(_Outpath); + //} + } + else + { + throw new ArgumentException("Unknown Exchange Item Id: \"" + exchangeItem.Id + "\"", "exchangeItem"); + } + } + else + { + throw new Exception("Should be EngineInputItem or EngineOutputItem"); + + } + //clear output + this._Outpath = null; + return new ValueSet(new List { values }); + + } + + public override void SetEngineValues(EngineInputItem inputItem, IValueSet values) + { + //--- set input values --- + if (inputItem == _InputItem) + { + if (values == null) + _Inpath = null; + else + _Inpath = (string)values.GetValue(0,0); + + } + else + { + throw new ArgumentException("Unknown Input Item Id: \"" + inputItem.Id + "\"", "inputItem"); + } + } + + public override ITime CurrentTime + { + get { return _currentTime; } + } + + protected override ITime EndTime + { + get { return _simulationEnd; } + } + + public override ITime GetCurrentTime(bool asStamp) + { + double timeStepLengthInDays = _timeStepLengthInSeconds / (60 * 60 * 24); + + if (asStamp) + { + return new Time(_currentTime); + } + + return (new Time(_currentTime.StampAsModifiedJulianDay - timeStepLengthInDays, timeStepLengthInDays)); + } + + public override ITime GetInputTime(bool asStamp) + { + Time targetTime; + if (asStamp) + //targetTime = new Time(_currentTime.StampAsModifiedJulianDay + _timeStepLengthInDays); + targetTime = _currentTime; + else + targetTime = new Time(_currentTime.StampAsModifiedJulianDay, _timeStepLengthInDays); + return targetTime; + } + + protected override void OnPrepare() + { + } + + protected override string[] OnValidate() + { + return new string[0]; + } + + protected override void PerformTimestep(ICollection requiredOutputItems) + { + //--- perform calculation --- + //Status = LinkableComponentStatus.Updating; + + if (_Inpath != null) + { + ESRI.ArcGIS.SpatialAnalystTools.FlowAccumulation acc = new ESRI.ArcGIS.SpatialAnalystTools.FlowAccumulation(); + acc.in_flow_direction_raster = _Inpath; + acc.data_type = "FLOAT"; + + _Outpath = _outpath; + + + if (_Outpath == null) + { + //determine outpath + string[] inpath = _Inpath.Split('\\'); + int l = inpath[inpath.Length - 1].Length; + _Outpath = _Inpath.Remove(_Inpath.Length - l); + + string name = _OutputItem.ElementSet.Caption; + name = name.Replace(" ", ""); + if (name.Length >= 9) + name = name.Remove(9); + + _Outpath += name + "_acc"; + } + + + acc.out_accumulation_raster = _Outpath; + + GP.Execute(acc, null); + if (GP.MaxSeverity == 2) + { + object sev = 2; + throw new Exception("Unable to perform raster flow acculumation operationESRI ERROR: " + GP.GetMessages(ref sev)); + } + + + + numProcessed++; + _currentTime.AddSeconds(_timeStepLengthInSeconds); + + this._outputExchangeItems[0].SetSingleTime(this.GetCurrentTime(true)); + this._inputExchangeItems[0].SetSingleTime(this.GetCurrentTime(true)); + + //Status = LinkableComponentStatus.Updated; + + //clear inputs + this._Inpath = null; + + //if (numProcessed >= requiredOutputItems.Count) + //{ + // //_currentTime = _simulationEnd; + // Status = LinkableComponentStatus.Done; + //} + + } + + + + } + + protected override ITime StartTime + { + get { return _simulationStart; } + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Flow Accumulation/FlowAccumulation.csproj b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Flow Accumulation/FlowAccumulation.csproj new file mode 100644 index 00000000..7d55d606 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Flow Accumulation/FlowAccumulation.csproj @@ -0,0 +1,78 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {DFBE3F41-4792-4496-A715-F0A22321ACD2} + Library + Properties + FlowAccumulation + FlowAccumulation + v3.5 + 512 + + + true + full + false + ..\..\..\..\..\Binaries\Plugins\HydroModeler2.0\Components\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + False + ..\..\..\..\..\Binaries\Plugins\HydroModeler2.0\Oatc.OpenMI.Sdk.dll + + + False + ..\..\..\..\..\..\OpenMI 2.0\src\csharp\Oatc.OpenMI\ModelWrappers\EngineWrapper\bin\Debug\Oatc.OpenMI.Sdk.ModelWrapper.dll + + + False + ..\..\..\..\..\Binaries\Plugins\HydroModeler2.0\OpenMI.Standard2.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Flow Accumulation/Properties/AssemblyInfo.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Flow Accumulation/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..bd4a0e4c --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Flow Accumulation/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Flow Accumulation")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("Flow Accumulation")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e0500ff1-6e73-49b9-aac7-d3e104941987")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Flow Accumulation/facc.omi b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Flow Accumulation/facc.omi new file mode 100644 index 00000000..676aa9b8 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Flow Accumulation/facc.omi @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/FlowDirection/FDRengine.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/FlowDirection/FDRengine.cs new file mode 100644 index 00000000..2b65f559 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/FlowDirection/FDRengine.cs @@ -0,0 +1,342 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using ESRI.ArcGIS.esriSystem; +using ESRI.ArcGIS.Geoprocessor; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.ModelWrapper; +using OpenMI.Standard2; +using System.Collections.ObjectModel; +using System.IO; + +namespace FlowDirection +{ + public class FDRengine: LinkableGetSetEngine + { + + private List _inputs = new List(); + private List _outputs = new List(); + private EngineInputItem _InputItem; + EngineOutputItem _OutputItem; + private readonly Time _simulationEnd; + private readonly Time _simulationStart; + private Time _currentTime; + private readonly double _timeStepLengthInSeconds; + private readonly double _timeStepLengthInDays; + private string _Inpath; + private string _Outpath; + private string _outpath; + private Geoprocessor GP; + private int numProcessed; + IAoInitialize license; + TimeSet ts = new TimeSet(); + + public FDRengine() + { + //model ID + this.Id = "Raster FDR"; + //Component GUI Caption + this.Caption = "Flow Direction"; + //model description + this.Description = "Calculates the flow direction for each pixel on a surface raster"; + + _simulationStart = new Time(new DateTime(2005, 1, 1, 0, 0, 0)); + _simulationEnd = new Time(new DateTime(2005, 1, 2, 0, 0, 0)); + _currentTime = new Time(_simulationStart); + _timeStepLengthInSeconds = 3600 * 24; //one day + _timeStepLengthInDays = _timeStepLengthInSeconds / (24.0 * 3600.0); + numProcessed = 0; + license = new AoInitializeClass(); + } + public override void Finish() + { + license.Shutdown(); + } + + public override void Initialize(IArgument[] arguments) + { + //set component to run in loop mode + this.CascadingUpdateCallsDisabled = true; + + Status = LinkableComponentStatus.Initializing; + + //read arguments + foreach (IArgument entry in arguments) + { + if (entry.Id == "ElevationSurface") + { + _Inpath = Path.GetFullPath(entry.Value.ToString()); + } + else if (entry.Id == "OutputFile") + { + _outpath = Path.GetFullPath(entry.Value.ToString()); + } + } + + // -- Time settings for input and output exchange items -- + ITime timeHorizon = new Time(StartTime, EndTime); + + + //Create input element set + Element e = new Element("Filled Elevation"); + e.Id = "Filled Elevation"; + ElementSet eSet = new ElementSet("Filled Elevation", "Filled Elevation", ElementType.IdBased); + eSet.AddElement(e); + Quantity quantity = new Quantity(new Unit("Raster", 1.0, 0.0, "Raster"), "Filled Elevation", "Filled Elevation"); + //add input item + _InputItem = new EngineEInputItem("Filled Elevation", quantity, eSet, this); + //_InputItem.StoreValuesInExchangeItem = true; + _InputItem.SetTimeHorizon(timeHorizon); + this.EngineInputItems.Add(_InputItem); + _InputItem.SetSingleTime(StartTime); + + //add input exchange item to input item list + _inputs.Add(_InputItem); + + + //create output element set + e = new Element("Flow Direction Raster"); + e.Id = "Flow Direction Raster"; + eSet = new ElementSet("FDR", "FDR", ElementType.IdBased); + eSet.AddElement(e); + quantity = new Quantity(new Unit("Raster", 1.0, 0.0, "Raster"), "Flow Direction", "Flow Direction"); + //add output item + _OutputItem = new EngineEOutputItem("Flow Direction", quantity, eSet, this); + _OutputItem.SetSingleTime(StartTime); + + //_OutputItem.StoreValuesInExchangeItem = true; + _OutputItem.SetTimeHorizon(timeHorizon); + this.EngineOutputItems.Add(_OutputItem); + + //add output exchange item to output item list + _outputs.Add(_OutputItem); + + + + + //initialize geoprocessing objects + GP = new Geoprocessor(); + GP.OverwriteOutput = true; + + //checkout spatial analyst license + esriLicenseStatus LicenseStatus = esriLicenseStatus.esriLicenseUnavailable; + LicenseStatus = license.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo); + LicenseStatus = license.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst); + + + Status = LinkableComponentStatus.Initialized; + } + + + + public override void Prepare() + { + + } + + public override IValueSet GetEngineValues(ExchangeItem exchangeItem) + { + //--- give output items --- + + IList values = new List(); + if (exchangeItem is EngineInputItem) + { + // Input item, provide current input values + if (exchangeItem == _InputItem) + { + values.Add(_Inpath); + + //determine outpath + string[] inpath = _Inpath.Split('/'); + int l = inpath[inpath.Length].Length; + _Outpath = _Inpath.Remove(inpath.Length - l); + _Outpath += exchangeItem.Id + "_FDR"; + } + else + { + throw new ArgumentException("Unknown Exchange Item Id: \"" + exchangeItem.Id + "\"", "exchangeItem"); + } + } + else if (exchangeItem is EngineOutputItem) + { + // Output item, provide computed values + if (exchangeItem == _OutputItem) + { + //if (_Outpath == null) + //{ + //if no values exist, then run perform time step to calculate them + ICollection outputs = new Collection(); + outputs.Add(_outputExchangeItems[0]); + this.PerformTimestep(outputs); + + if (_Outpath != null) { values.Add(_Outpath); } + else + { + //if output path is still null, try updating inputs + _inputExchangeItems[0].Update(); + //this.ProcessActiveInputItems(); + this.PerformTimestep(outputs); + } + + if (_Outpath == null) { values.Add(null); } + else { values.Add(_Outpath); } + //} + //else + //{ + // values.Add(_Outpath); + //} + } + else + { + throw new ArgumentException("Unknown Exchange Item Id: \"" + exchangeItem.Id + "\"", "exchangeItem"); + } + } + else + { + throw new Exception("Should be EngineInputItem or EngineOutputItem"); + } + //clear output + this._Outpath = null; + return new ValueSet(new List { values }); + } + + public override void SetEngineValues(EngineInputItem inputItem, IValueSet values) + { + //--- set input values --- + if (inputItem == _InputItem) + { + if (values == null) + _Inpath = null; + else + _Inpath = (string)values.GetValue(0,0); + + } + else + { + throw new ArgumentException("Unknown Input Item Id: \"" + inputItem.Id + "\"", "inputItem"); + } + } + + public override ITime CurrentTime + { + get + { + return _currentTime; + } + } + + protected override ITime EndTime + { + get { return _simulationEnd; } + } + + public override ITime GetCurrentTime(bool asStamp) + { + double timeStepLengthInDays = _timeStepLengthInSeconds / (60 * 60 * 24); + + if (asStamp) + { + return new Time(_currentTime); + } + + return (new Time(_currentTime.StampAsModifiedJulianDay - timeStepLengthInDays, timeStepLengthInDays)); + } + + public override ITime GetInputTime(bool asStamp) + { + Time targetTime; + if (asStamp) + { + //targetTime = new Time(_currentTime.StampAsModifiedJulianDay + _timeStepLengthInDays); + targetTime = _currentTime; + } + else + targetTime = new Time(_currentTime.StampAsModifiedJulianDay, _timeStepLengthInDays); + return targetTime; + + } + + protected override void OnPrepare() + { + } + + protected override string[] OnValidate() + { + return new string[0]; + } + + protected override void PerformTimestep(ICollection requiredOutputItems) + { + //--- perform calculation --- + //Status = LinkableComponentStatus.Updating; + + + if (_Inpath != null) + { + ESRI.ArcGIS.SpatialAnalystTools.FlowDirection fdr = new ESRI.ArcGIS.SpatialAnalystTools.FlowDirection(); + fdr.in_surface_raster = _Inpath; + + _Outpath = _outpath; + + + if (_Outpath == null) + { + //determine outpath + string[] inpath = _Inpath.Split('\\'); + int l = inpath[inpath.Length - 1].Length; + _Outpath = _Inpath.Remove(_Inpath.Length - l); + + string name = _OutputItem.ElementSet.Caption; + name = name.Replace(" ", ""); + if (name.Length >= 9) + name = name.Remove(9); + + _Outpath += name + "_fdr"; + } + + fdr.out_flow_direction_raster = _Outpath; + + fdr.force_flow = "NORMAL"; + + GP.Execute(fdr, null); + if (GP.MaxSeverity == 2) + { + object sev = 2; + throw new Exception("Unable to perform raster FDR operationESRI ERROR: " + GP.GetMessages(ref sev)); + } + + + + numProcessed++; + + _currentTime.AddSeconds(_timeStepLengthInSeconds); + + this._outputExchangeItems[0].SetSingleTime(this.GetCurrentTime(true)); + this._inputExchangeItems[0].SetSingleTime(this.GetCurrentTime(true)); + + //_inputExchangeItems[0].TimeSet.Times.Add(this.CurrentTime); + + //Status = LinkableComponentStatus.Updated; + + //clear inputs + this._Inpath = null; + + + //if (numProcessed >= requiredOutputItems.Count) + //{ + // //_currentTime = _simulationEnd; + // Status = LinkableComponentStatus.Done; + //} + + } + + + + } + + protected override ITime StartTime + { + get { return _simulationStart; } + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/FlowDirection/FlowDirection.csproj b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/FlowDirection/FlowDirection.csproj new file mode 100644 index 00000000..4b1b865e --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/FlowDirection/FlowDirection.csproj @@ -0,0 +1,78 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {CB22CAB6-D281-4F23-A5DF-703FAC75E075} + Library + Properties + FlowDirection + FlowDirection + v3.5 + 512 + + + true + full + false + ..\..\..\..\..\Binaries\Plugins\HydroModeler2.0\Components\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + False + ..\..\..\..\..\Binaries\Plugins\HydroModeler2.0\Oatc.OpenMI.Sdk.dll + + + False + ..\..\..\..\..\..\OpenMI 2.0\src\csharp\Oatc.OpenMI\ModelWrappers\EngineWrapper\bin\Debug\Oatc.OpenMI.Sdk.ModelWrapper.dll + + + False + ..\..\..\..\..\Binaries\Plugins\HydroModeler2.0\OpenMI.Standard2.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/FlowDirection/Properties/AssemblyInfo.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/FlowDirection/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..9492937e --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/FlowDirection/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("FlowDirection")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("FlowDirection")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e916e403-c065-4a4e-ab47-aa6c91fb1994")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/FlowDirection/fdr.omi b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/FlowDirection/fdr.omi new file mode 100644 index 00000000..db659b82 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/FlowDirection/fdr.omi @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Spline/Properties/AssemblyInfo.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Spline/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..58bcea09 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Spline/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Spline")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("Spline")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b2a6c8f9-e35b-4600-9fb7-38a3f8c117c2")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Spline/Spine.omi b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Spline/Spine.omi new file mode 100644 index 00000000..0181386f --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Spline/Spine.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Spline/Spline.csproj b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Spline/Spline.csproj new file mode 100644 index 00000000..d5dd2f10 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Spline/Spline.csproj @@ -0,0 +1,85 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {132B6DF8-BA91-4617-B18F-AD6C6278F95D} + Library + Properties + Spline + Spline + v3.5 + 512 + + + true + full + false + ..\..\..\..\..\Binaries\Plugins\HydroModeler2.0\Components\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + False + ..\..\..\..\..\Binaries\Plugins\HydroModeler2.0\Oatc.OpenMI.Sdk.dll + + + False + ..\..\..\..\..\..\OpenMI 2.0\src\csharp\Oatc.OpenMI\ModelWrappers\EngineWrapper\bin\Debug\Oatc.OpenMI.Sdk.ModelWrapper.dll + + + False + ..\..\..\..\..\..\OpenMI 2.0\src\csharp\Oatc.OpenMI\Gui\bin\Oatc_OpenMI_Gui_Controls.dll + + + False + ..\..\..\..\..\..\OpenMI 2.0\src\csharp\Oatc.OpenMI\Gui\bin\Oatc_OpenMI_Gui_Core.dll + + + False + ..\..\..\..\..\Binaries\Plugins\HydroModeler2.0\OpenMI.Standard2.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Spline/SplineEngine.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Spline/SplineEngine.cs new file mode 100644 index 00000000..267b7a67 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/Components/Spline/SplineEngine.cs @@ -0,0 +1,322 @@ +using System; +using System.Collections.Generic; +using System.Collections; +using System.Linq; +using System.Text; +using Oatc.OpenMI.Sdk.ModelWrapper; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard2; +using ESRI.ArcGIS.Geoprocessor; +using ESRI.ArcGIS.esriSystem; +using System.IO; +using System.Collections.ObjectModel; + +namespace Spline +{ + public class SplineEngine : LinkableGetSetEngine + { + private EngineInputItem _InputItem; + EngineOutputItem _OutputItem; + private readonly Time _simulationEnd; + private readonly Time _simulationStart; + private Time _currentTime; + private readonly double _timeStepLengthInSeconds; + double _timeStepLengthInDays; + private string _Inpath; + private string _Outpath; + private string _outpath; + + private Geoprocessor GP; + Dictionary _outputFiles; + private int numProcessed; + IAoInitialize license; + + public SplineEngine() + { + //Model Info + Id = "Spline Interpolation"; + Caption = "Spline Interpolation"; + Description = "Performs a spline interpolation to create a surface raster"; + + _simulationStart = new Time(new DateTime(2005, 1, 1, 0, 0, 0)); + _simulationEnd = new Time(new DateTime(2005, 1, 2, 0, 0, 0)); + _currentTime = new Time(_simulationStart); + _timeStepLengthInSeconds = 3600 * 24; + _timeStepLengthInDays = _timeStepLengthInSeconds / (24.0 * 3600.0); + _outputFiles = new Dictionary(); + numProcessed = 0; + license = new AoInitializeClass(); + } + + public override IValueSet GetEngineValues(Oatc.OpenMI.Sdk.Backbone.ExchangeItem exchangeItem) + { + //--- give output items --- + + IList values = new List(); + if (exchangeItem is EngineInputItem) + { + // Input item, provide current input values + if (exchangeItem == _InputItem) + { + values.Add(_Inpath); + } + else + { + throw new ArgumentException("Unknown Exchange Item Id: \"" + exchangeItem.Id + "\"", "exchangeItem"); + } + } + else if (exchangeItem is EngineOutputItem) + { + // Output item, provide computed values + if (exchangeItem == _OutputItem) + { + //if (_Outpath == null) + //{ + //if no values exist, then run perform time step to calculate them + ICollection outputs = new Collection(); + outputs.Add(_outputExchangeItems[0]); + this.PerformTimestep(outputs); + + if (_Outpath != null) { values.Add(_Outpath); } + else + { + //if output path is still null, try updating inputs + _inputExchangeItems[0].Update(); + //this.ProcessActiveInputItems(); + this.PerformTimestep(outputs); + } + + if (_Outpath == null) { values.Add(null); } + else { values.Add(_Outpath); } + //} + //else + //{ + // values.Add(_Outpath); + //} + } + else + { + throw new ArgumentException("Unknown Exchange Item Id: \"" + exchangeItem.Id + "\"", "exchangeItem"); + } + } + else + { + throw new Exception("Should be EngineInputItem or EngineOutputItem"); + } + //clear output + this._Outpath = null; + return new ValueSet(new List { values }); + } + + public override void SetEngineValues(EngineInputItem inputItem, IValueSet values) + { + //--- set input values --- + if (inputItem == _InputItem) + { + _Inpath = (string)values.GetValue(0, 0); + + } + else + { + throw new ArgumentException("Unknown Input Item Id: \"" + inputItem.Id + "\"", "inputItem"); + } + } + + public override ITime CurrentTime + { + get { return _currentTime; } + } + + protected override ITime EndTime + { + get { return _simulationEnd; } + } + + public override void Finish() + { + license.Shutdown(); + } + + public override ITime GetCurrentTime(bool asStamp) + { + double timeStepLengthInDays = _timeStepLengthInSeconds / (60 * 60 * 24); + + if (asStamp) + { + return new Time(_currentTime); + } + + return (new Time(_currentTime.StampAsModifiedJulianDay - timeStepLengthInDays, timeStepLengthInDays)); + } + + public override ITime GetInputTime(bool asStamp) + { + Time targetTime; + if (asStamp) + //targetTime = new Time(_currentTime.StampAsModifiedJulianDay + _timeStepLengthInDays); + targetTime = _currentTime; + else + targetTime = new Time(_currentTime.StampAsModifiedJulianDay, _timeStepLengthInDays); + return targetTime; + } + + public override void Initialize(IArgument[] arguments) + { + + //set component to run in loop mode + this.CascadingUpdateCallsDisabled = true; + + Status = LinkableComponentStatus.Initializing; + + //read arguments + foreach (IArgument entry in arguments) + { + if (entry.Id == "ElevationPoints") + { + _Inpath = Path.GetFullPath( entry.Value.ToString()); + } + else if (entry.Id == "OutputFile") + { + _outpath = Path.GetFullPath(entry.Value.ToString()); + } + } + + + // -- Time settings for input and output exchange items -- + ITime timeHorizon = new Time(StartTime, EndTime); + + + //Create input element set + Element e = new Element("Elevation Points"); + e.Id = "Elevation Points"; + ElementSet eSet = new ElementSet("Elevation Points", "Elevation Points", ElementType.IdBased); + eSet.AddElement(e); + Quantity quantity = new Quantity(new Unit("Point Shapefile", 1.0, 0.0, "Point Shapefile"), "Elevation", "Elevation"); + //add input item + _InputItem = new EngineEInputItem("Elevation Points", quantity, eSet, this); + //_InputItem.StoreValuesInExchangeItem = true; + _InputItem.SetTimeHorizon(timeHorizon); + _InputItem.SetSingleTime(StartTime); + this.EngineInputItems.Add(_InputItem); + + + //create output element set + e = new Element("Spline Surface Interpolation"); + e.Id = "Spline Surface Interpolation"; + eSet = new ElementSet("Spline Surface Interpolation", "Spline Surface Interpolatione", ElementType.IdBased); + eSet.AddElement(e); + quantity = new Quantity(new Unit("Raster", 1.0, 0.0, "Raster"), "Spline Surface Interpolation", "Spline Surface Interpolation"); + //add output item + _OutputItem = new EngineEOutputItem("Spline Surface Interpolation", quantity, eSet, this); + _OutputItem.SetSingleTime(StartTime); + + //_OutputItem.StoreValuesInExchangeItem = true; + _OutputItem.SetTimeHorizon(timeHorizon); + this.EngineOutputItems.Add(_OutputItem); + + + //initialize geoprocessing obkects + GP = new Geoprocessor(); + GP.OverwriteOutput = true; + + //checkout spatial analyst license + esriLicenseStatus LicenseStatus = esriLicenseStatus.esriLicenseUnavailable; + LicenseStatus = license.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo); + LicenseStatus = license.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst); + + + + Status = LinkableComponentStatus.Initialized; + + } + + protected override void OnPrepare() + { + + } + + protected override string[] OnValidate() + { + return new string[0]; + } + + protected override void PerformTimestep(ICollection requiredOutputItems) + { + //--- perform calculation --- + + //this.Status = LinkableComponentStatus.Updating; + + if (_Inpath != null) + { + ESRI.ArcGIS.SpatialAnalystTools.Spline spline = new ESRI.ArcGIS.SpatialAnalystTools.Spline(); + spline.in_point_features = _Inpath; + spline.z_field = "Z"; + spline.number_points = 12; + spline.weight = 0.1; + spline.spline_type = "REGULARIZED"; + spline.cell_size = 10; + + _Outpath = _outpath; + + if (_Outpath == null) + { + //determine outpath + string[] inpath = _Inpath.Split('\\'); + int l = inpath[inpath.Length - 1].Length; + _Outpath = _Inpath.Remove(_Inpath.Length - l); + + string name = _OutputItem.ElementSet.Caption; + name = name.Replace(" ", ""); + if (name.Length >= 9) + name = name.Remove(9); + + _Outpath += name + "_spl"; + + + } + spline.out_raster = _Outpath; + + //check to see if this file has already been created + if (!_outputFiles.ContainsKey(_Outpath)) + { + _outputFiles.Add(_Outpath, true); + + GP.Execute(spline, null); + if (GP.MaxSeverity == 2) + { + object sev = 2; + throw new Exception("Spline Interpolation Failed. Input file path = " + _Inpath + " ESRI ERROR: " + GP.GetMessages(ref sev)); + } + } + + //clear inputs + //this._Inpath = null; + } + + + numProcessed++; + + + _currentTime.AddSeconds(_timeStepLengthInSeconds); + this._outputExchangeItems[0].SetSingleTime(this.GetCurrentTime(true)); + this._inputExchangeItems[0].SetSingleTime(this.GetCurrentTime(true)); + + //if (numProcessed >= requiredOutputItems.Count) + //{ + // _currentTime = _simulationEnd; + //} + //else + // this.Status = LinkableComponentStatus.Updated; + + + } + + protected override ITime StartTime + { + get { return _simulationStart; } + } + + + + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AboutBox.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AboutBox.cs new file mode 100644 index 00000000..5fec0be4 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AboutBox.cs @@ -0,0 +1,283 @@ +#region Copyright +/////////////////////////////////////////////////////////// +// +// Copyright (C) 2006 OpenMI Association +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// or look at URL www.gnu.org/licenses/lgpl.html +// +// Contact info: +// URL: www.openmi.org +// Email: sourcecode@openmi.org +// Discussion forum available at www.sourceforge.net +// +// Coordinator: Roger Moore, CEH Wallingford, Wallingford, Oxon, UK +// +/////////////////////////////////////////////////////////// +// +// Original authors: Jan Curn, DHI - Water & Environment, Prague, Czech Republic +// Jan B. Gregersen, DHI - Water & Environment, Horsholm, Denmark +// Created on: 1. July 2005 +// Version: 1.0.0 +// +// Modification history: +// +// +/////////////////////////////////////////////////////////// +#endregion +using System; +using System.Diagnostics; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + /// + /// Summary description for AboutBox. + /// + public class AboutBox : System.Windows.Forms.Form + { + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button buttonClose; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.LinkLabel linkWwwOpenMIOrg; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.LinkLabel linkWwwSourceforgeNet; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label12; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + /// + /// Creates a new instance of AboutBox dialog. + /// + public AboutBox() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // + // TODO: Add any constructor code after InitializeComponent call + // + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox)); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.label1 = new System.Windows.Forms.Label(); + this.linkWwwOpenMIOrg = new System.Windows.Forms.LinkLabel(); + this.buttonClose = new System.Windows.Forms.Button(); + this.label5 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.linkWwwSourceforgeNet = new System.Windows.Forms.LinkLabel(); + this.label9 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // pictureBox1 + // + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(4, 4); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(136, 436); + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(148, 8); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(380, 432); + this.label1.TabIndex = 1; + this.label1.Text = resources.GetString("label1.Text"); + this.label1.Click += new System.EventHandler(this.label1_Click); + // + // linkWwwOpenMIOrg + // + this.linkWwwOpenMIOrg.Location = new System.Drawing.Point(60, 459); + this.linkWwwOpenMIOrg.Name = "linkWwwOpenMIOrg"; + this.linkWwwOpenMIOrg.Size = new System.Drawing.Size(164, 16); + this.linkWwwOpenMIOrg.TabIndex = 2; + this.linkWwwOpenMIOrg.TabStop = true; + this.linkWwwOpenMIOrg.Text = "http://www.openmi.org"; + this.linkWwwOpenMIOrg.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkWwwOpenMIOrg_LinkClicked); + // + // buttonClose + // + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClose.Location = new System.Drawing.Point(413, 522); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(92, 32); + this.buttonClose.TabIndex = 10; + this.buttonClose.Text = "Close"; + // + // label5 + // + this.label5.Location = new System.Drawing.Point(12, 443); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(80, 16); + this.label5.TabIndex = 8; + this.label5.Text = "Contact info:"; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(20, 459); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(36, 16); + this.label2.TabIndex = 11; + this.label2.Text = "URL:"; + // + // label7 + // + this.label7.Location = new System.Drawing.Point(20, 491); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(156, 16); + this.label7.TabIndex = 13; + this.label7.Text = "Discussion forum available at:"; + // + // linkWwwSourceforgeNet + // + this.linkWwwSourceforgeNet.Location = new System.Drawing.Point(180, 491); + this.linkWwwSourceforgeNet.Name = "linkWwwSourceforgeNet"; + this.linkWwwSourceforgeNet.Size = new System.Drawing.Size(207, 16); + this.linkWwwSourceforgeNet.TabIndex = 15; + this.linkWwwSourceforgeNet.TabStop = true; + this.linkWwwSourceforgeNet.Text = "http://sourceforge.net/projects/openmi/"; + this.linkWwwSourceforgeNet.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkWwwSourceforgeNet_LinkClicked); + // + // label9 + // + this.label9.Location = new System.Drawing.Point(12, 512); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(68, 16); + this.label9.TabIndex = 17; + this.label9.Text = "Created on:"; + // + // label10 + // + this.label10.Location = new System.Drawing.Point(84, 512); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(92, 16); + this.label10.TabIndex = 18; + this.label10.Text = "January 2010"; + // + // label11 + // + this.label11.Location = new System.Drawing.Point(84, 532); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(80, 16); + this.label11.TabIndex = 20; + this.label11.Text = "2.0"; + // + // label12 + // + this.label12.Location = new System.Drawing.Point(12, 532); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(68, 16); + this.label12.TabIndex = 19; + this.label12.Text = "Version:"; + // + // AboutBox + // + this.AcceptButton = this.buttonClose; + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.CancelButton = this.buttonClose; + this.ClientSize = new System.Drawing.Size(534, 563); + this.Controls.Add(this.label11); + this.Controls.Add(this.label12); + this.Controls.Add(this.label10); + this.Controls.Add(this.label9); + this.Controls.Add(this.linkWwwSourceforgeNet); + this.Controls.Add(this.label7); + this.Controls.Add(this.label2); + this.Controls.Add(this.label5); + this.Controls.Add(this.buttonClose); + this.Controls.Add(this.linkWwwOpenMIOrg); + this.Controls.Add(this.label1); + this.Controls.Add(this.pictureBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AboutBox"; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.Text = "About \"OpenMI Editor 2\" ..."; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + + } + #endregion + + private void linkWwwOpenMIOrg_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) + { + ProcessStartInfo info = new ProcessStartInfo( linkWwwOpenMIOrg.Text ); + Process.Start( info ); + } + + //private void linkWwwJanCurn_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) + //{ + // ProcessStartInfo info = new ProcessStartInfo( linkWwwJanCurn.Text ); + // Process.Start( info ); + //} + + private void linkWwwSourceforgeNet_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) + { + ProcessStartInfo info = new ProcessStartInfo( linkWwwSourceforgeNet.Text ); + Process.Start( info ); + } + + private void label1_Click(object sender, EventArgs e) + { + + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AboutBox.resx b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AboutBox.resx new file mode 100644 index 00000000..40a51c9f --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AboutBox.resx @@ -0,0 +1,3379 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + Qk0ulAIAAAAAADYAAAAoAAAAggAAAK8BAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAosDsosDs + o8LtosHspMLupMLupMLuo8Lto8TsosbrosXrosXsocbsn8XunsXunMXum8PxmsLxkrvtjLfqjLjsirbr + ibbtjrzyiLfvf63nhbPvhbPvhbPvhbPuhrPuhbPuhrPthbTshrTth7Xth7btiLjuibnvirnwi7rxjLvw + i73viLvuhrvshrvth7vuiLzwirvyirzzi73zjL30jb3zjr7zkL7yj73wjr7tkL/uk8Txmcn0n8z2o8z0 + pM30o832osz3oMz4n8v4oMv3ocz2ocvzosvypc3zpMzxocnwocrzocz2nMjyk8Dujrrok8Dtj7zrmMTz + nMf4kbzvkLrvlL71kbvyk7zzk730k730lL71lL/zlL/zlL/ylb/ylMDxlL/xlL/xlL/xlL/xlb/xlcDy + lcDylcDylsLzlsLzlsL0lsL0l8P0l8P1mMP1mcT2mMT2lMP0lcX1lsb2l8f3mMf1l8X0lsTylMPymMTy + lsLwlMHulsPxmcbzmcXwmsXwncn0pND4LQmnxfKnxfKnxvOnxfKmxfKmxfKmxfKmxfGlxvCjx+6kyO+k + yPCjyfCiyfKhyfOfyfOex/aex/iTve+Kt+uRvvOTwfiNu/OKufCJuPKHtvGJuPWJuPWKuPWKuPWLufaL + uvaLuvWMu/WMu/WMvPWNvfWNvvaOv/ePv/eQwPiQwfaPwfWNwfSLwfOLwfWLwPWMwPaOwPiOwfiOwfiO + wfmQwfmRwvmTwveSwfWRwvOTw/OWyPaczfqj0Pun0Pmo0fqn0ful0Pyj0P2i0P6j0Pyk0Pul0Pmn0vmr + 0/qq0vin0Pem0Pqm0fyfy/eVw/KUwfCWw/GVw/Kcyfqfy/2YxPiUwPaYw/qYwvqVv/iWwfqWwfqXwfqX + w/mXw/mYw/iYw/iYxPeYxPeYxPeYxPeYxPeZxPeZxfiZxfiZxfiZxfiZxfiZxfeYxfeZxfeZxfiZxfiZ + xviYxviYx/qYyfuZyfuZyvubyvqayvqayfmZyfmcyvmbyfeax/Wbyfiey/meyvadyvaizvqo1f4tCabF + 8abF8abF8abE8KXE8KXE8KXE8KXE76TF7qPG7aPH7aPH7qPG8KDH8J/G8Z/G8ZzE8pzF9ZG77Iay5Yu4 + 7I688Yq37oe27Yq48Ym48Ye18oe284i284i384i384q39Iq584u68ou684y79Iy89Iy99I2+9Y2+9Y2+ + 9Y6+9I2/84vA8orA8YrA84rA9IzA9Y7A94/B94/B+I/B+Y/A95DB95LB9pHA9JDB8ZLC8pXH9ZvM+KLP + +qbP+KfQ+KbQ+qTP+6LP/KHP/KLP+qTP+qDL9KHM86XO9aXN9KTM9KTO+KPO+ZzI9JPB74y66I286pPB + 8ZrH95rH+ZTA9I+78JK99ZXA95O+9pS/95XA+JXA+JbB95bC95fC9pXC9pfD9pfE9pfE9pfE9pfE9pjE + 9pjF95jF95jF95fE9pfE9pfE9ZbD9ZXC9ZXC9ZXC9ZTC9ZTD9pbH95bH+JfI+ZfI+ZnI+JnJ+JnJ+JnJ + +JzK+JvI95nH9ZvJ953L+J3K9JzJ9KHN+KfU/C0JpsXypsXypsXypsTxpcTxpcTxpcTxpcTxpcXwpcbw + pMbwpcfxpMbyo8fyocbzocb0n8X0ncX1lr/vjrjqjLjsjLnskL3yl8X6lML5h7Xuh7byiLb0iLfziLfz + ibj0irj1irn0i7rzi7v0i7v0jLz0jL31jb71jb72jr/2jr/0jr/0i8DzisDyisDzisD0i8D1jsD4jsH4 + j8L5j8L5kMH4kcL4k8L3ksH1kcLyk8Pzlsj2nM35otD7ptD5p9H5ptH7pdD8o9D9otD9o9D8pdD7o874 + pc/3qNH3p9D1pM30o832osz2msbxkb/tjr/tk8Txmcn4ncz8msn6k8H1kL3zkr/4lMH5kr/3k8D4k8D5 + k8D5lML3lML4lcP3lMP2lcT2lcT3lcT3lcT3lcT3lsT3lsX4lsX4lsX4lsX3lsX3lsX2lcT2lcT2lcT2 + lcT2lcT2lsX3l8f4l8j5l8j6l8j6mcn4mcn4mcn4mcj4m8r5m8j3mcb1m8j3ncv5ncr1nMn1oc35p9T9 + LQmlxPClxPClxPClw++kw++kw++kw++kw++mw/CnxPGnxPGnxfKlxfOlxfOkxfOixfShxPSfxfWZwPGU + u+2Suu6Ru+6Xw/WgzP2ZxfmFs+uItPGGtfKHtvKHtvKIt/OJt/SJuPOKufKKufOKufOLuvOLvPOMvPSM + vfSNvfWNv/SMvvKKv/GJv/KJvvKJvvKKv/SNv/aOwPeOwfiOwfiQwfiRwviTwveSwfWRwvKTw/OWyPWc + zfmi0Pqm0Pin0fmm0fql0Puj0Pyiz/2jz/yk0Pqkzvin0fir1fmt1vmt1vqv2fyw2/2q1/yg0Pqf0Pyf + 0v2e0fyYy/mQwvOLvO+MvPGOvfSPv/aQv/aQwPeQwPiRwfiRwveRwveSwvaRwvWSw/WSxPaSxPaSxPaS + xPaTxPaTxfeTxfeTxfeUxveUxveUxvaTxfaTxfaTxfaTxfaTxfaUxfaWxveWx/iXx/mXyPmZyPiZyPiZ + yPeYyPebyfibyPaZxvSayPadyvidyfScyPShzPim0/0tCaXD8KXD8KXD8KXC76TC76TC76TC76TC7qbD + 8KnE86nC86jD9KbE9KfE9KXF9KPE9KHE9KHE9ZnA8Za+75zD9J3G9p3I+aDL+5jD9Ie06Ye174W08oa0 + 8oe18Ye28oi28om38om48Yq58ou684u684q784u884y89Iy89I298ou98oq+8Yi/8Im/8om/84q/9Iu9 + 9ou+9oq+9oq99o2+947A95DA9Y+/84+/8JHB8ZPG9ZrL+KDP+qTP+KXQ+KTQ+qLP+6HP/KDO/KHO+6LO + +qHM9qLN9KTP9aTN86HK86DL9p/L9pfE8Yy97Im964nA7oi+7YO46IK26Ii874zA9Yu99Ym79Iq89Iq9 + 9Yu99ou+9oy/9Yy/9Y3A9IzA9I3B9I3C9I3C9I3C843C847C9I7D9Y7D9Y7D9Y/E9o/E9o/E9Y7D9Y7C + 9Y7C9Y7D9Y/D9ZHC9ZLD9ZLD9pPE95TF95XF9pXF9pXF9pXF9pjH9pfF9JXD8pfF9ZrI9pnH8ZjF8Z3K + 9qTR/C0Jo8Lwo8Pwo8PwpMTwo8Pwo8Pvo8Pvo8PupMPwqMPyqsT1q8b3q8b3qcT1p8Typsbzpsb0qMr5 + oMTymr/uoMb2osr6n8j4nMb4lcDxibXqi7btirbwiLbxhrbzhrbzhbb0hrj1hrn1hrfzh7bwi7vzjL3z + jLzzjLz0jL31i772iL72hL73g733hLz1h7vxj73wlsDwncbxpMrzpcz1pcz0ps31ps30pczzo8vxpcvy + qc/1r9X4tNb5ttX3t9b3t9b5t9b5tNb5tdf5tNb4ttf4tNX0tNTyuNf0utj2udn1uNn2ttf0rdDwpsvs + qNDxp9Dzpc7yoMnuncbroMnuosryn8bvnsbvosnyosnzo8rzo8rzo8v0o8zyo8zxosvyoMz1nsz2nsz2 + oMz0ocz1os30os7zo870o870pM/1pM/1pM/0o871o871o870o870pM70pc/0pc/1ptD1p9H2qNH1qdL2 + qdL2qNH1qtH2q9H3qc/1qM7zqs/1rdH2rND1rND1r9P3tNj8LQmev+6fwO+gwe+gw+6hxO+hxO6gxOyg + w+yiwu2kwu+oxPKrx/WqxvSow/CpxPCsyPSwzvivzfmmxvKfwe+fxPSexfacxPabxfiTvvKHsuePuOyN + uO2Kt++GtvODtvSCtvWCtvWDuPWDtvOHuPKNvvWNvvKKue6HuO+Ku/OJvvaDuvSBvPl+vPuAuPSKuu6d + w++z0PLC3PbL4vjO5PnO5/vO5/vK5/vI5vvH5PrI4/rN5fvU6fzX6vvY6PvZ6fza6fza6vzZ6vzZ6vvZ + 6vrZ6vrY6vrY6vna7Prc7/ve8fve8fvc7/za7vvY7fvU6/3U7P3U7P3S6vzO5/vM5PnM5PnO5vvP5vvM + 5PrN5fvN5fvN5fvN5fvN5fvN5frL5PrH5fvE5PzF5PzH5PvI5fvK5fvM5/vM5/vM5/vO6PzN6PzM5/vL + 5/vK5/vK5/vL5/vN5/vL6PvK6PvL6fnK6frN6PvN6PzM5/zL5vvN5vvQ6PvQ6PvQ6PvQ6PvQ5/vR5vzT + 6f3U6v3V6vwtCZ/A7qDB76HD76HE8KLE76LE76HE7aHE7KLD7qXD8abC8KbD8KjF8q3H87HM97LP+7XU + /a7M+afJ9abK9aLH9ZzD9J3G96LM/pnD+IWy6Im28Ye28oe284a29IW29IW39YW39Ia49Ii48om58oq6 + 8Yi574e574e68ou99Yu+94m99Ya88Yi775LA76PJ8rfV+Mfh+9Hn/dTo/NPm+M7l9s3m+Mrm+sjl+cni + 98ri98/l+9bp/Nrr/drp/dzp/dzq/tzr/dzr/dzr/dzr/Nvq+9vr+9zr+9rr+dnp99jo9Nfo9Nnr9d3v + +d3w/cvh8svj9tDn+9Hp/NHo/NDn+9Dn+tDn+s/m+s7m+c/m+s/n+s/n+s/n+s/m+s/l+c7l+c7m+c7n + +c/n+NDn+NDn99Lo99Pp99Pp99Pp99Tp+NPp+NHp+NHo+NHo+NHo+NHo+NHo+NLp+NTq+tTq+9Tq+9Xq + +9Xr+9bq+9Xp+tbp+tXp+dXo+NXm+dbl+tfl+tjm+9no/dvq/dzr/S0Jnb7rnr/sn8DsoMDtoMLtoMHs + n8HqoMLooMDoob/qpcHtp8TvrMjzss32tdD5stD5sc/4rs73qsv3psn0nsPxlrztmL/xocr7msT4hbHq + g7PxgbPzg7PyhLTxhbTxhrXwh7Xxh7bwhrbvhbbvhrfwiLjyibvzi7zzi7zxi7rwjrvslL3ooMXps9Px + w935y+H6zuH2z+D00eL20+f4zOP3y+T5yeT5x+L5x+H3yeH2z+T51uf62un62uj62un62un72un72un7 + 2un72un62ur61+f42Oj42un62er41+j11uf01uf02ev32uz7y+L0yuL4zeT6zeX6zOP4y+L3y+L4zeT5 + zuX6zOT5zeX6zeX6zeX6zeX6zeX6zOT5zeT5z+X20eb10eb00eb10eb20eb20uf30ef30ef30uj40uj4 + 0ef30ef30Of3z+f2z+f3z+f4zub4yeT5yuX6yuX6y+T8y+T8zOT7y+P6y+P6zeX6z+X6zuP6zuP6z+P6 + 0eX70ub70+f71Oj7LQmev+yfwO2gwe2gwu2hxO2hxOyhxOqgxOmiwumlw+yryPOwzfey0Pizz/ezz/ex + z/exz/iwz/mnyvWixfKgxfScw/ScxPaeyPuXwvaGs+2DtfSCtPaDtPSGtPKHtfKHtvKItvKHtvKGufWJ + u/iJu/iLvfqOv/mNvfGMuOqQu+qcweu11fTG4ffO5/rV6/zW6fzU5frS5PfT5/zT6P/L5f7J5v7I5v7H + 5P3I4/zK4/zP5fzV6f3Y6/3Z6/3a7f3a7f7a7f7a7f7a7f7Z7P3a7f3X6fzW6fza7fzb7/3Z7P3W6fvW + 6vzZ7f3a8P7K4/vJ5P3M6P7N6P3L5v3I5PzI4/zJ5P3K5f3J5P3K5f7K5f7K5f7K5f7K5f7J5f7K5PzL + 5vvM5/vM5vvL5vvK5vzK5vzJ5v7K5/7L5/3N6P7N6P7M6P3M6P3M5/3L5/zK5/zK5/3J6PzK6fzL6/3L + 6/3L6/3M6v3M6f3M6fzL6fzO6fzN6fzO6PzP6PzO5/zQ6fzR6v3S7P3S7P0tCZ296Z6+66DB7KDB7KDC + 6p/A6J/C56DC56TF6qzL8a/N87HQ9rDP9a/M8q7L8a/N9LHP963N9qLE7pu+6p7C8aDG95zE95jB9ZC6 + 8IOw6oKx8IOz84W08oez8Yez8Iaz8ISz8IO08oG09IG19oK19oS284e374236pe+6ajK77rY9s3m+9To + 98/j8s/h89Hj99Ll+8/j/Mbc+bvY97LR8q/R86/S86/R8q/P8LLP77jS8b3W9cDZ9sHZ9MPb9MPb9cPb + 9cPb9cPb9cLb9MLa9MDY8sLa88be98Xe98LZ8r7V8L7W8cPb9MLe+K7M6q3N7rHT87TV9bTV9bLT87DR + 8a/Q8K7P8K7P8K/Q8a/Q8a/Q8a/Q8a/Q8a/Q8K7Q8a7R8q3R86vR9KvR9arR9qnQ9qnS96rS96zS9q7T + 9K7S87DS8bDS867S86zR86rR9KrS9q3U96/X9a/Y9K/Y9a/Y9bDY9bDY9bDX9LDX9LLY87PZ9LTY9LTY + 87TY87bZ9LXZ9Lfc9bvg9y0JnLvooL7rosHsocDqnr7mnr7locLnpsjrrM3wsM/zr8/ysM/zsdD0s9D0 + s9D0stD2sdD3rc31o8bwnsHuocX0oMb4ncT4m8T4krzzhbDphrHvh7TwibXxibXxh7PwhbLwg7TxgrX0 + hLf5hbn6hLb0h7XwkLruo8fzttf7x+H+0Ob+0OX40OT10eX30OT6zuT9yOD8vdf6sM30pcfwocfxn8jx + n8jxn8bwoMXto8buqsnysM72tNL3tNP1tdP1tdT2tdT2tdT2tdT2tdP1tdT2sM/xs9L0u9r7utn7tNP1 + sdDysdDysdDyrM3yosfvoMjwoMjxoMnyocnyocjxoMfwn8bvnsbvnsXvnsbwn8fwn8fxoMjxoMnyoMjx + n8jyn8jyncj0nMj1msj2mMj3mMj4msn3ncn3n8r0ncXupMzyqND2pMzzncbynMn2nMv5mcv7jsb+gr37 + gb/8gL/8gL/8gL/8gr/8gr77hL/8f7v2gbz3g774gr71hb/4hsD5gbv0hb/1kcz8LQmfvOifvOifveag + vuaiwOelxOuqye+uzvGwz/KuzvCw0PCw0PGw0POy0POy0POx0fSw0faszfSmyPKkx/OgxfSawfKbwvag + yP2WwPeGsOiMte+Ls/CJsu+Hsu+Hs/CItfOJtvSJt/eItvSEsu2Hs+qXvvGv0v3D4f7L4/3O4/zS5vzN + 4vjK4fnM5PvH4fy71/uty/WjxPGhxfShx/mdxvibxvicx/acxvWbxPKfxfOlyPerzfuu0fyw0/mw1Piw + 1Pmw1Pmw1Pmw1Pmw0/mw1Pqt0fau0vix1Puv0vusz/itz/qu0PqqzPeix/OcxvSbx/Wbx/abx/abx/ab + x/WaxvWaxfSaxfSbx/abyPabyPacyPecyfedyfidyficyficyfacyfSayfaZyfiZyPiZyfiayveeyvag + y/SgyfClzvSizPWaxvKWx/ib0f2Qyv1xsfVHkeQnd94keeYjeeUjeuQkeuQmeuMleuIme+Eled8ofOAp + feAoe90qfN4rfd8qfd4wg+Q/kvMtCZ265Z675qK/6KbE7arJ8K7M8q/O8q7O8K7O8K7Q8K/Q7q/R77DS + 8LLR8rLR8rHR87DR9KzP8qfJ8qLF8Zq+7ZC26JO67p3G/JfB+Iaw6Imy7Yqy74iy74iz8Iiz8Imz8Imy + 7omx64qx55K36aXH87XV+sDc/cfg/Mzh/M/j/M7j+83l/Mfj/b7a/LPR+ajI9qDE853D9p3E+p/H/ZrG + +prG+ZvG95vF9ZvE9JzF9aDI+qfM/KzR+67U+a/U+K/U+q/U+q/U+q/U+q/T+q/T+qzP+K3P+q3Q+6vN + +anM+KzP+67Q/KjK953E8ZrF9pfF95bF95bF95bF95bF95bE9pbE9pfE9pjG+JnH+ZnH+ZnH+ZrI+prI + +prI+5zJ+Z3J9Z/J85/J9J3J9ZzJ9ZzJ9Z3K9aDK9KLL8qTN8p3G7pbD7pfK+JHK/ne491Ca6C9/2B90 + 2hx06Rhx7Rhy7Rhz7Bpz7Bpz6xpz6Rp15xly5R115x935xx04h104x525B125CZ/7TiR/S0Jnrvnor/r + qsjxr831sM/1r8/zrc7wrMzurc7usNHur9HusNLvsdPws9Lxs9LystLzsdL1q83yo8buocTwocX1ncX3 + nsX5n8f8lL32gq3ohLDtiLPxirXzirT0iLPwibHsjrTqlLboo8Htu9X6yeH+0ef/0OT9zOD8zeL9z+X9 + z+f9wN76s9T4q8z2o8Xzn8T1nsX6n8b+ncb+m8f9m8b7nMf6nMf3nMb2nMT1ncX2osj6p8z8rNH7r9X5 + sNb3sNb4sNX6sNX6sNX6sNT6sNT6rdD5rdD6r9L8rdD7rM75rc/8r8/8qcv4ocXznMf3mMb4l8X3lsT1 + lcT1lcT1lsT1mMX3mMb4l8b3mMf4mMf4mcj5mcj5msn6msn6nMn4n8n0osvxosrxn8rznsnznsn0oMv1 + ocv0osvznMfvn8z3ntD+i8b7YqfvMoHbFG7TEXPhGHjuGHPsGXPuGXTuGXTuGXXsG3XrG3XqHHXoGnTl + H3joI3vqIHnmIHnlH3nlH3jlKYLvO5T8LQmlweqqxe+wzPWxzvSvzPGsyu2sye2uzO6vzu6wzu2wz+2x + 0O6x0PCy0PCy0PGx0PGv0fKqzfCfxOmZveaZwOyZwfGXv/OUvPOMtvGCrOyErvKHs/iJtfeJsvGHr+eL + sOObvOquyfHB2vfQ5fzL3fbL3fTP4/nQ5fzM4fzE2/vA2/qmx+2Zvuudw/GdxPWdxfibxPqawvuYxPqY + w/ibxfiaxfabxvSbxfOZw/KbxPOfx/eky/uq0Pqv0/aw1PSw1PWw0/aw0/aw0/aw0few0/iszvWtz/ax + 0vmv0PmszfiszPmtzfmpyfaixfGdx/WZxvWXxPOVw/GXwfKYwvOZw/WaxfaaxfSZxPSZxPSaxfWaxfWa + xfWcxfWcxPabxfWeyfSeyfKdx/GfyvOhzPShyvOfyPKeyfOfyvej0vyWyvx2sfFHi9kkccwbctkZeOwM + ce0HbOkUde8Wc+wZc+oacukac+gZdOgYdOcYd+cUdeQWd+YcfOkbe+cbeuYaeOMZdd8lf+g5lPotCbLM + 8rLM8rLM8rLM8bLM8bPN8bPN8rPM8bXM8LbM77fN8LfO8bXO8bXP8rTQ8rPR8bDS86bL65/H553H6ZzH + 7Z7H9JzE+pa++o2z9YWr9Ieu/oSs+oOr74mu6Ja456jH7LvW98vj/c/l+cre9snf9Mri983m/cvn/sLe + /rHO+p+/8JnA8pfD9pXD95fE+JfD+JfD95fC95jB9pfA9Z3I+57H+p7I+ZzH9prG9JvH9Z7L+KPQ+6vU + +7HU+bPV+LPV+bPV+bPV+bPV+7PU+7PU+rDS+bDR+bDR+LDR+bLT+7LT+6/Q+qrK9aTI8p/J9ZjG9JfC + 85jB85vC953D+Z3E+ZvC95rD9p/I96DI9aHH9qPI96TH+KfG+qfF+6TF+p3H+JXG8pbE75/H8qXM9aPL + 853H8pzL+pzQ/4G791KU5i541SV02iJ05B9z6R9z7Rtv6xVt6BZx6hxx6ipy6i9z6S105yh15R104xR0 + 4hF15BF36BN56hR66xd96hV55RV13SaB50KZ/C0JsMnusMruscrusMnusMruscruscrvssvvtMrutcrt + tcvutczwtMzws83xsc7xsM7wrtDxpcnqoMbonsXqmcHqmL/unMP3nML7k7f2hqvvharxg6briavkmrrq + ttL3y+T9z+b8yNz1xNjwyN/1yeH4x+L7vdv5r9H0o8bxmr7xlrzxlMDulMTslcTtl8TymsT2nMT6nMP6 + nMP7nML7ncH8nsD8ncH8nMD3nMD1ncH0ocb2p8z5q9H4rNT3rdX1rdX2rdX2rdX2rdT3rdT3rdP2rNP0 + qtH1qtH2qtH2rNP3rdP4qc/2pcvyn8fwmcXwlsTxlsLxmMHzm8L1nMP2nML1ncDznL/vnMDtn8Pupcbx + q8r1sMz5s8z6tMz7s8z7q834qtL5rdP5p8nyocDtpcb0o8n8jrv6aqTtLnPOHm3RHHHdHHPlG23kHWrh + J27kL2/jOnLlT37vWoDwZ4T0bYn1aYr0YofwU4PtR4HrOXjlLnXjJHThGXLeFXbgFHneFXfbJIDiOZP0 + LQmxy/Cxy/Cxy/Cxy/Cxy/Cxy/Cyy/CyzPGyzPCzzPC0zfG1zvKzzvK00POy0POx0POu0fWrz/aqzfei + x/OYveyVu+yawfSdxPmWvfSMsuuIqeOauO2yzvjE3v3L4vvN4PXO4PTR4fjS5PzQ5f7F3/211/emzfKb + xO6Vv/CSvvWTv/WVwe+YxOyYxe6ZxfGaxfSZxfaZw/iZw/iYwvicxPqexfuew/qdwvifwvWjw/Snx/at + zfuv0fur0fms0vms0vms0vms0vms0fus0Pur0Pqrz/mpzvipzvmqz/qs0fus0fypzvukyPaexvKXxfCW + xvGWxvOXxfSZxfSbxPOdw/Kgw/Cjxe+pyvCuzfGz0fO51fe/1vnB1vrB1Pq/1Pi80/W51PW71fq+1v2+ + 1f6zy/+Qsfdbid8sacwib9scdOgYdOwTa+YXZ98uceRKgO9diPRvjPaCkPiGkPSHjvKEjfCAjvB+j/B9 + kPR7kvlvi/RghfBJf+oudN8ddNwVeN4Ved4iguY0kfctCa/J7a/J7bDJ7q/J7bDJ7rDK7rDK7rDK7rHK + 77HL77DN77HO8LHO8LHP8a/P8q7P9K7O9qnJ9KPE86DB8p/D9KHF9qDF9JnB75O655S346rG8LjS9sjh + +9Hm+9Dj9M3c7Mvb7s3e98vf/L/a+q7O95zD7ZO/6pG/7pTD9ZTD+ZPA+JS/8ZfA75fA8ZfC9ZjF+JfH + +JfI+pfJ+5fK+pjL+5rL+5rJ+5vI+Z3G+KHH+KbL+q3R+6/U/K3T/K3U/K3U/a3U/a3U/a3U/a3U/KzT + /KzS/KvR/KvR/KzR/K7S/K3S/KvQ/abL+5/I+JrJ+ZfK+ZXK+ZTH+JXF95jE957F96bG9q7L9rjT97vU + 977W98HX98TX+MXV+MbS+MTR9sXT98fW+cnX+8fV/bnI+5ur83KM40943Thx4h1q4xVu6hBr6BNo4i9z + 51OF8myP9X2T8oSS8IOP6oWS64eR64aS7IKS7YGR7YKQ7oKO8IKN84GQ+m6N+E2A6zF24B503Bh03CN/ + 5zWP+i0JsMrusMrusMrusMrusMnusMruscrvscvvscvvsczxsM7vsc/xsdDwsM/ysM/zsM/1r874rcz6 + pMP0m7rtn77wosPzncHsmL7mn8bortHzyOP/yuD8yd/1zeHz0eT00uX3zOD6xNr7s833nb7tmL7vk73v + kL/xk8L0k8P0lsL2mML2lsH1lcD2k7/5kL78jb3+hrf9frP5ebH3d7D2eLL5ebP7ebH7erD5fK/3f7D2 + hrT2jLz3kMH3ksP3k8X1k8X2k8X2k8T4k8T4k8T3ksP3ksP4k8L3ksL3lMP5lcX5lcX6kcH4jLz1hrf2 + f7L1fK/3ea/2dqz0dajyeqfxharykK7zobf2ssL7ssL5tMP3tcP2tsP2t8L2u8D1vMD1ur/yvsT0ucL1 + oavmhpHXe4rYeY/paYvxTX/vIWXbG2fhHmrgK27iTYDubI3yeIzpgYzhgo/ke4/le4/mfY7mfI/neY/p + eY7peo3pfYvsfITpgYrxgJP7aYv2SXzoLXLeIHDbJXnlNYz4LQmwye6wye6wye6wye6wye6vye6xye6w + yu+wy++wzfCvze+vzu+vzu+wzvGxz/Oyz/WxzvetyfaoxPOjwPCivu2lw+6sy/K01vi83/vF5P3G3vfI + 3fbI4PXM5PjN5fvF4Pu20fajwfCXuu6Uu/SSvPaNu/GQv/OZxfiZwvSXvfCexPiUwPWRwfiUxf6Etvxk + lfBAc9wsYNAlXNEkXdUiXNglYN4hW9smX9woYdglX84zbdNJhONOieZJhuNKh+VKh+VKh+VKh+VKh+VK + huVKheZKhudLhedKhehMh+lNiOtNh+xHguY/ed47c9o4btk7b9w5ct46dN46cNs9bNZNctlmgON8jeuJ + k+yMlOmNluePl+SPl+SSmOWVl+WWl+OYmeOYm+KSmuGMl+CLmOONm+uInPF/mfZvlPZUiPBAe+RFfORc + jPF0lfWEl/GPnO2VneqRm+uNmu+PmvKSmfGRmfGOm/KKm/KJnPOJm/STnfiSmPeLlPWImvt0l/lRh+07 + gOQ3hus6jfMtCa/J7q/J7q/J7q/J7q/J7q/J7rDJ7rDK77DK7a7J7K/L7bHN77HO77LO8LPP8rLO87XO + 9a/I8arC7KjA6qrE7LbQ88Te/Mvm/cnl/cXg+sTa9sjd+sri/MTg+7bV9qXI75q+7ZO48JC49JG8+pO/ + +5TB+pO/85G775a98Zy/9Ze79pfD+4q//m2h9Uh84ihczxxRzx9W3SNd6CNe7BdU5RpX7BVS6RlW6xlY + 5xVX2yNn3zqB70CH8D6D6kCF60CF60CE7ECE7ECE7ECE60CD7ECD7UCD7D6B6j2A6z6B7D+C7j+C7z2A + 7T5+7EeB9EaB9UKC9UGD9EF/8UR87FaC8HOR+oia/5Ca/ZWc+JWe9Zaf9Jeh85ig9J2h85+f9J2e9Juf + 9Zei9JGk85Kl8pWk8pSl9JCl+Iqn+3We+F6N6F+M53me9pGo/pql95ql8Zum75qn8pim9Zym96Cl+KGl + +Zyn+Zip+pKp+ZGp95mq+Jmk9Zii9pqq/Imn+meW8E6N6ESR7ECU8S0JsMrusMrusMrusMrusMrusMru + sMruscvvsMrsr8vrss7utM/xtM/xs87ws83vs8zvt8/xtMrstMrsus/vwdj2y+H70+j90un8zuX7yuD6 + y+L9xt7+vdn9rs72ncLvkbrrjbjujbj0kr36lL77kLr1lsD5msL5j7jxj7f0msD8ncP/eqv6TIPrKF7U + G0/OIlfeJVvmHFXjGVbgHFzlFljhGlvoFFXnF1npF1vmEljdH2niNoHxP4fyQIPqQ4TsQoTsQoTsQoTs + QoTtQoTtQoPsQ4PsQ4TuQoLtQYHtQYLsQYLtQoPuQ4PvRIPwQYDtPn/rOYDsOIHsN4DoPX7mUYTrb5H2 + hZv7kJ73lZ/0laHylaPvlaTvlaTvmaTum6PxmZ/1mZ74lqL5kaX3kqX1lqPxmKTyl6n4kKz8dJ3xXY/j + XIzhdZzyk6v9nKj4laHtmKbtmavzkqfwlafymabymqb0laf0kqn1j6n0j6rzlKjwlaPtl6Xwmaz6hqj3 + ZJjqTpDkRJHoPY/pLQmvye2vye2vye2vye2vye2vye2wye2wyu6wyuyyzuu00O220fC1z/Cyy+2zyuy2 + ze270fC+0+/E2fHN4vfU6PvU5/rR5PjQ4PXP3/bM3vzE2v210PylxfWXvOyQuuyOu/CPu/WRvPiRuvaT + ufKXvfOVvfCSuvKVv/qcxv+Jtfxmk+0tYtAYUc8eVdweU+AeU+QhVegjWecgW+AdWtwbWtkfXt8aWN4d + WuMdXOAXWNgiaN45ge1Dh+5DgulGg+pHgutHgutHgutHguxHguxHguxGgetGgexIgu5Jg+9Igu5Ff+xE + fupDfepCfulAfuQ8gOI1geMzg+Q2g+I8geFRhuVtkOyEmfGRnfGUnu2ToOuTo+mSpOiSpeiUpOiWouuX + oPCYoPWVo/WSpvSXpfKbpPGaovGWo/OIpfZfkuVOjOBLiN5fkueAovSTpvWUouyYp+2ZqvCRpOySpe+V + pO+VpfGQpfGQp/KRp/GUpu+cp++epe+ap/KUq/d8pPJblehLkedHku5Bj+4tCbDK77DK77DK7rDK77DK + 77DK77HK77HL8LHL7LLN6rbP7rfQ8bbO77XM7bnP7sLW88vd99Pm+9fp+tTo99Tn99Xn99Tm99Pk+NPj + +svd/anA8J+89Ji78pO78Y+68o269Y+79pS995i99pq985e68Ze78p3E/ZnE/3Wk9kN12iJWyBdQyBlU + 1B5X4h5U5hxO5R1P6SNV6yRZ5yJY4iBW3yVa5SFU5CJX6CJZ5h1W3Cln4j+A8EaH8UOE6kSF6kSG6kSG + 6UOG6kOG6kOF6kOF6kGC6EKC6kOE60SE60GC6j5/6D5/6ECA7EOD7kOC7kCC7TqD7TmF8DyF7j+A6U+B + 6WSH636S85Wf/Jef9pag85ai8pOk8ZWl8Zek85qj9Juh8pmh8pai8pSl85mn9Z2m9ZWi9Yme9XWa9U6N + 6EWP7kKM6UqK5mqY8Yql+ZKm9ZWm75yn8Z6l8aGm9KGm9Z6m95yn+pym+qCm+qKm+Kam+KOj95mk+Imk + +muZ9EuM60GM7kKP9z6N9y0JrMXsr8fvscvws8zwscrur8jsrsjssMnssMrtr8russzvtszuuczqvs7p + yNbt1eDz4Ov63+n22+bz1uTxz+Lxzuf2z+v7xuT5sNHpnb3cmrnimbnplbXrlLbxmbz3lrr4kLTxlbjy + mLz2lbj0nL75mLv9f6b7U4DoJVfREUbLGE/YI1bdJlXZJ1LaJ1LdJVLgIVTkHFXjGFjhGFjiG1bkH1bp + F07kGVHmG1jlGFjcKWbjQHrwSYPxSYTuR4bpQ4fkQIfiPYbiPYbkPobmQIXoQoXoQYPmQYLmQYPnPoHl + PYLnPoPtMnboH2LcHmPhHWDiH13fI1zdJV7dKGHcLWPZMGHVRmvaaIDsdYXsf4rugozuf4rrfYjpgIjs + hYrviozsiovmiIrjho3mhJLufJTyaI3uS33kM3DcKW/hJm7mJW3kKWzhOHHgTnzjZ4jpf5Twh5juhJHl + iZLmi5Hljo/ojo3sjY3uiozxg4vwhJb4eZX4WoPsQnfkM3PmKHLmIXPjJn3mNIzzLQmux++vyPCwye+x + y/Cxy++xy++xy+6vyuyxyvCzzPOzy/C5zu7E1fDR4PTb5/jh6vfi6vff6PTd5/ba6PrR5fnG4Pm93fmy + 1vShy+qWv+WYu+mcvfGdvfabuvWXt/KXuPOZu/SUuPOVu/acwv6Msf1mjus2YtMcS8wcTtkgVecbUugV + TuMYT+EfUuEhU+IgVeIcV+AZWN8WWd8XWd8eWOUmW+0fVeseWOsZW+MRWNUiaNk/getJhfFHfO5Hfu1F + gupChepAiOw/iO09huw8gepChO1DhO1Dg+xDhO1AgOw/gPA+f/YtbfAWU90XUdwbUN4hUOElUOEhUeAb + UuAWUt8TUNsbUtktWt9BY+RXcetoe/FxgfF1g/B4g+x5gup5gu55g/F6hfN2hfNnge5QeOc6cOEkaNwa + Y9wbY+IaYuUZYuQZYeIcYt4lZ944b+NId+ZVgethi/Bmi/BvjfFzjfV4i/h0iPlthPhmhflSfu8+d+cr + buIbZd8YZuMXZ+UUZ94ddt8yi+4tCa/I8K3G7azG6qzG667I7LHL7rDK7a7J6bDI6rfM7r3Q8cfY9NLk + +dzs/OHv/ODt+Nrp89vp+Nfn+s3g+cHY9rfQ9K3M86XH8Z7C75m+8Zm69pK08Zi69aDB+Ji57pG06Za6 + 8pvC+5K7/HGc7kJt1R1LwRpKyiRT3SRU5B5N3xdI3BVK4hNN5hVN4xpN4BlR3RdT2hZV2BRW2BVV2R1W + 4SNY6B5R5R9T5x1Y4xlY2Chp2kCB50iG70h+8UV970J+7UCB6z+G7T6H7juE6zd/5TyC6ECD6UGC6kOD + 7UB/7kF88kF8+DBq7xtR3SBT4SJR4SRQ4SNO4B1P3xhP3xVR4RNU5BZV5xpU5yBU5CtV5Tld50do7FRy + 7l167V9971d671F38VF18klv7Tpn5Clg3R5e3Bpi4Bxm5Rtj5B1k5Rxm5xtm5hdk5RVj4hlk4yBl5CRn + 5Cdp4zBt5jhy6T517UBz8D1w7jZr6C1o5CRo3h9q3hpp4RZn5Blq6Blq5xlp3id34TyM8C0Jscrxrsfv + rcfsrcbrr8jssMrtscrtscrrt8zsw9T0z9/42ur+3+/+3e762uz12uz22e351+v8zOD3udDvr8jvr8n2 + rcr7psb4mr7yk7fuk7f0lbf1lrrzlLjvlbnwncL4mL7+f6b1UHnaJFHEIVHPHk/ZI1PkIE/jGkjbG0nZ + JFHgJVHjJE/jJ0/hKk/gJ1HeJVbcI1jdIlvfIlviJlvmKVrpIE7jI1DnJ1brJVbnMmbrRXvzR4HwQ4Dq + QIDmPX7mO33iOX7gOYDhOoHiPILhPYLfQIHbRYLdSYPfSH/iR3voR3rsNmvfG0/OGE7bGEzgG03fHVDg + IFLgIVTfHVXeFlPcFVTfGVjlFVLjF07jHE7kIlLlJlblJlrlI1zhJl3eJVzaJFrZI1nbIVzgH1/kHGLo + GWTpGGPpFl/kGWHlGmPnGWXnFmTmFWHmFmHnHGLqIGPqImToJWXmJmTjKGTjJ2TlJWPlI2TlIGblG2jg + GGrgFmnjE2jlGGnqGWjnGGXcJnHfPYfvLQmxyvGxyvGxy/Cwyu6uyOuux+uxyu2yy+zE1/Pb6f3b6Pvc + 6vnc7Pjb7vba7fbW6/bU6/rF3PS1ze2rxeqpxe+sy/mrzfygw/WVvOuSuuqVu++Tue+Pte6TufaZwP6J + sPxcg+QsVccYQsIbSNQeTOEcS+QXRt8YRt0hTuAlUd8gTNYhTtUlUtkvVt8+XOdJYOpPZuxTaO5TaO5U + au1Ta+hWb+lMZ+REY+MzWN0cSc8fVtM0dOI+f95BgtNPi9xckOhik+hpl+ZvneV4pOeAqumHsOyIr+uM + r+mRsuuOru2Jp+6Cou1skOBJcM88Y9swVtwjR9QbQM8bQ9McSNkbTd0WUN0RUNwQU9wVVeAdV+QoW+cz + Yek5Zuo8bek+ceg/b+ZAbuQ/beU8a+YzZ+UpYuMgX+IZXuQVX+UZYukYYuoXY+oYY+cZYeQbYeMhYuQp + ZeY0auhBb+xHcO1IdO1LdvBIdvJEc/A9cu04cussbuMjbN8dZ+AXYuAYY+UaY+YYY94lcOA5g/AtCazF + 7bHJ8bHL8K7I7a7I7LDI7LDK7bXO7s3f9uLu/N3o99nn89rp9dzt+Njr+czk9cHZ8LrW8q7K7ajG7a3N + 96nN+aLJ9aPM953I74234JG46JrB95zD+ou1/mqS7T9o1iBKxxhDzBxH2RxH3x5I4h1J4h1K4R9K3iJN + 3iFM3CFI1ixM1z1Y4Uhe51Fi7Flp7Vlq5Fds41lx41Ft11R10nWV736e7mqJ2GyJ3nCR53ii6oK474jH + 8ofO9IHA9ou6/Jm//Zy5/aa//qrA/LDG+6m/9rnQ+sXb/7XM9KbA663J97vd/6/c/6jX+ZjC8YOo8oCg + 83OS8mSE8V2A8kdx5DBg0yZa0RtQzh9P0DZc30dk7U9l8Fhr9ldr81xy9lhw7llx6l537lt17VRy60tw + 6z9s6i1l5hxe4Rlj6BZm6xVl6hRi5Rlh3yVl3zRu5EBz5kx16Vh47lp37Ft461t461x47ld471R471F7 + 8Eh56z536DFv5SRk4yFj5h5j6Rti4SZx5DuJ9y0JqsPrscrxscvwrsfsr8nsscrusMrtt9HxzOD32+v5 + 3u344O/73Oz61OX3y97zw9jyvtXzttHys9H2rs/3pMjvnMTsoMnzpNH4m8jvjrvmmcHzmL//gKj3Tnjd + IUzHFUDIG0jZH03jGkjfGEPYH0neI0zgI0zeIkjbIUfaJUzgLVLjPl3pUWvyVGrrUGHeVGbXWG3PWG7N + XnfWZYLZe53jo8j8s9X/pMb5ob7zn8Dxr+D6tPn9nPD7gd/7VajhRYDRWoXhZYThd43ndozldYrebYXR + mrbqvdz9mLzmaJK8ap3Ll9f4pfT9oPD+crPiU4jLXofbaIzlaIzleZ7ug6z5h7f+hrX8b5nybpHpaYLo + XXDeWGffX27mX27oX27qYXDvYHDwXWzrXG3oYHLrYXfwWHbwRW7rMGblG2DhFGHkE2DkFmDhJGXgOW/l + S3jpVXznVnrnVXfsVnfsWHjrWnnqXHjtXHjuW3juWHnuVHztT33tRHbsNmzrLGfrImHoGF7gIG7kNof3 + LQmqw+qwyfCwyu+tx+uuyOuwyOyvyey1z+/I3/ba7Prb7PnX6PnQ4PXG1/C/0e290fC91fa40vSvzfCo + ye2kye+ky/SfyfSZxfGYxfSdyP6PtvtehOIrUcMYPr0aRNAdSN4ZRt0SQ9gURdcdStkgS9kkS9olSdsk + RdgnR9kxU+M/YuxNb+9DY9k+WsxRadJme9OClt2gs/Gqu/uht/yEou+dvvuLqPBnhdVQbshCaL1rq9+U + 7vuG8fdw4flJquU5ftZYiu9qjvF0ju9zi+p5kuppiNaLsOmw2vyg0fZ4sNtdncx0xeiQ8/uR9fx7zv1H + itY6cMw8a9UpW80eWMskZ9Eqcc8+fs9mmuGMtPekxPymwfifvfGFou5yi91YcMlUatZVauVVauVdc+pj + eO1gc+hXbeNOb+hIdPAoY+IbX+AZXd4hX+A3audPdu1de+xgeeVXdeVMc+tLdOtNdupSd+tVduxYduxX + dutVdulUeOlReupLd+5DdPI1bO8jYOUYXd0ib+M1hvUtCavE7LHK8rHL8a7I7a/J7bHK7rDK7bTP8Mnj + +djw/c3h9sPW78DR7sDR88LU9sHU97zS9r3W+bDL8KfG66nN9qXJ+qLJ+6rR/5m//2uS5TRcwiZNxB9E + yx9E1h5F4BlB3hVB2hpJ2x5N3RxI2B1G2SNG4CpJ5CxK4C5K2TVU1kRj3VBm1Wp73JGh7aGz+q3C/77W + /56592J/009z0TtnyXej+XGV+VBu21Rr4kpo212R44za/I/2/nLn/FO47T6E21+N9XST9neN7neL6XmP + 5nyX46HA9K/R/KXM+ZnC83mp4nu955Tp/Zbw/pnq/Wqx5VqW4lyY80GM9SJ/7ReC7BaF6SWG50aQ7FuS + 7W2W7oKj8pe585az7bXJ/LXD8pal6HeL52N33Vht1Fxw2WN14WB051hz7U508jZq6yZg5CJb3ixh4kRt + 7Fp28mN472Jz51lv5FFx6lJy61Z26lh36lt261x161t16Vl05ld45lJ35k527Ep49Ttw8SRg5Bpg3SZ1 + 5zWJ9y0JqsLqsMjwsMnvrcbrrcfqrsfrsMnsudP0xN74xd70vdXuuc3tu83wwNH3wtP6wNL2u87yuM/x + sMvuqMbuqMn0qMr7pMf+kLL3Xn/ZJUqxG0W8GEXKG0PWHEDcGz7cH0HeIEbdG0bWG0bXHUndHkXhJETp + JULjHzrSJEDJSmfYepjqn7n2orj4kqfwc4jUd43TsMX7qsD0X3fWSGbKSG3Tfqf4gaH8WHDcVWbhUGbf + U4Daf8nxjfb8bu78W83zP47aVo7pZo7lcY7gg5zrkav0kK3us9H3tdTxpMLpqsj1lbXvjr7ppOf7ou77 + ou/7d8H0XprmVI/pOontHYLqDIDmC4HiI4TlTo/wZpL0eZX2e5HteZXocovVvcz1ys/5w8TwyMn4v8T9 + pa/vg43gaHPaXGvaWXDoU3T0OmvtKGDjIVnbLWHgRG3qVnPuWnPrWnHlX3HlbHjtcHrsc3/tdoLudYHw + coDvcH/ta37qZX/nWHjgUHPjTXfvPG/sIl3eGF/aI3TlLoTvLQmxxee1yuuxyu2qx+qtzPGuz/eiwuyd + u+avyu7A1/LC1fG/0vS9z/S/0fTC1/fB2PW91vGzz+2ry+6t0fap0P2Vv/h4pO5TfuMsVskbRcIiTM0g + S9MXQtUWPtcfRdsiR9odQtMcQ9MfSN8fSecbRt4ZQNEiR8tIadh8m/CVtP+Ws/ZyiulPZtVJZs9DZchJ + YceGk+m6y/+MqPlEY7lLacR/n/h+n/1QbtpSYdxYZN1VedR4v+qJ9/1o9f1T1PdDmt5YlOZ/pviTr/uX + sfefuPWftu680Pm5zPKqvuq60f6nxPaMsuKn1/qx7/2t9v2J1PZkoedPjewriOkLgOAQhecYguQtfuBi + k/V5mPqFnf2LnvaUpO2ruvS4xf2Ll+RweMyBid2fpey4vfbEyP+1u/mKleljd9tPbeM4Ze0gVugbVOck + XOk4aetPduxbeelkeuhzgPB+hfN9hfJ6h/N5iPN5ifF7ifF9h/B/h+95hutwhOdjgulSeuk7buYkXuAd + XtwpceQ5hfItCbLF5bHG57HN76rM8qPJ84+25XGYzHic0abC7sLX9sDR78HR9cPT98LV877V7rnV6rTT + 6rXY9azT+p3J+Xam4kN4xTtxzkV76jNm5xxM1BhCyRxEzBpFzxpG0RxG0x5H1CBH2CVK3SJI2xU+zRVA + xTxn1Xum95W9/HCV6UVlyEdh2FFi31dm401o40lr4k9k3l5h3pad+a7F+GB7xExouoCf94Gm/Etw3kph + 31Vn5U523GWu6nHn/Ffz+1fn/F/A+Gqq8Yyz+5y3+5iy66G456O05MDN88bR+qy47rXK9bza+pO25Y61 + 5LXm/rb2/KXo+Xis7VOM7imH6gR/3Q+E5iOD6jZ/5WWU9Hme+Xyg9oOe6Z+s5svU+6Wx+3CB5WV35Wx8 + 7XOA6HmA24OG0aSo5MTN/6/A+nKO6ipSzSJU3SRc7BxT5Ctb40508GWA8HWC64GG74CD7n6E73aF8nSH + 8XSJ7XiH7H6F7IGC7ICE7H+L73GL7lZ95j1r4ite4iFb3C1r30OE8y0Jq8XusMz4rc79lLjqfaTZa5TL + YInBdZrRpcTvwdr5wNPzwtP3xdX4wdLwus/ruNPuutv4sdf+i7brY5bXSoDKPHXIQ3zcRXzpLV/bF0bN + GEPOIknVKE3VI0fOGkDQGUHXG0TaGULSGT7CPWDKf6L0irL/X4rpMFvUGkXDJknDPVnQSmHdV2vrTF/l + UGLqXmvyT1PXc3XfwcP+o6/0TWi+bI/xhan9UXXhOV/cPGrkPHjjQpbpUMv3W/v9ZPb9bdT8a7LqfKzm + j7Dpl7Tinrfeo7XhvMr1wM76mqrblq3Xs9L5kbXkZYq8o8/1wPX9wPX+ibDwUHjcM3zjHoTpF3/lJ4Xs + P4/wVZTsaJ7wbp7rf6Pks8n8xtT+jZnkb33ecH3ncn7sdoHnfIbhf4fhfYLffoXelKLtrMP/krn1TXzX + I1THJFLTNVrkT2v2boP+eIXue3/miYb0h4Pyf4PxeoTueobrfIbrgYXxhIX2foLzeILybILxWHrrQm3m + LV7jIFfaKmbcQX/xLQmnyfubvvKDqeRokNBhis1lj9Fkjs12ndigwu+71/a81PK8z/S9zvTB0/bC2fq4 + 0/mpzPiCrOdQgso3ccA7ec9Fg+BGg+Y4cN0fUckVQsUcRNEiRtYgQs8gQ80nT9ohS9QaRMMkTMhrjuWq + yP1ykOk/YMwfRMQaRc8gTNwnTtoqTtMxVtM/Y91KZutOY/FQZfFOYuReaNqdnu/L1f5jh9hXiOKCrP1c + hOE8b9U5edpAhdxFk9xPu+Nm7/V59/2J5PyIyPCVvuyqx/C1ze+5y+y0we7AyvnEzvqotOeZq9+wyPOx + y/KFoNiewu7A9vzB+f2IreRGZr0vZ8Uredoledouf95EjudVlONflt5lltqDqui40fyrvPxygeBreel0 + gPNyfe9vfuxxg+x3hvNwfO9fbdtcbdNpgdWhxvWr1vx2ouY6YsY7W9RUbPJYbetic+Z2f/F8fPB9fvJ8 + gvN7hfJ5iO53hux3f/B2ffRud/Bpde9idu9Vc+tIbOs0YOQkV9otaN5Fg/YtCYWt5nOb2GGLz1mDzGKL + 1maQ2GGKzHSb1aDD7rbV9LfR8LnP9b7R+7/U/rTN+pi563uh3V2M1kJ4zDl00Dh52DR32Dd43Tdy3yVY + zxpFxx9Czx4+0x1D2iBL2hZDvxpGtE931aDD+5m58EpoyzRRxR89wilK1ylO4CJK3R1G3RxI2xpI0B5M + zy9Y4TVW5zlZ50do7E9l2HJ907PH+oay9U2Hynmw8Gef41WX3lOd5Fmi6Wy173fO84Ho+Jn4+673/arh + +6LH9KG566e57qu58KOv8LzJ+MDO+6W19pyw8qe988Pb/6nC/pG457T1/Lv8/afV9X6h6GKP6FuV71ma + 8Vue7mWi6Guf4WiS02qNyZOx77DK/nWL3Fpv31909GZ39WJw6F5v52Bz7VZs6E1j5FZt6lhy5Uxszk1y + wpi/97vj/5zC9WiJ3E9r0FZv4ltv7lZq6Vxv6mBz7WR58Gh+8GeC6mN+52F26Vxv6Vxu61xv7ldu7FFv + 6kpt7Thi5iZY2Ctn3kSF9y0JXofFZ5HSYozWW4bUYYvYZ5DaY4vPc5nSnsHrudj2udT0vtb/uNH/oLz1 + fqDea5LUaJXeXZDkSIHdP3zcPn7hPH3jP3/nP3voK2HaHErOKEnZHj/RHkrZDD2/I1HAdZ/locT0psLz + mrf3VnTUGTi+LE3cKEjhI0XbIEbeI0zoG0jlGkTgIUnhJU7jI0vdIknWI0bKKUm5TGnDgqXpuOn+f73j + idL3d8j4XbLuUKTvUZ7yW6XzWqvpY7znjeX9ne39kNTybp/QaYzObobZeovkcoTanLTxmrTza4jXZoXT + aYvgiKv3krr0XZLEl+X7nu/9l9P8YZDcM2PBP3LZWJLvba3xi8P6n8z/o8X7pL7uxtz9p8D2XnnIR2TM + SWTeUGbhXW3lXGvnUmPjUmbqU2zzR2TsRGboU3nsPWPBZ47Zpsr5wOD+vtz+l7PuY3zYT2baUWzpUXHw + S2zsT23uT2/pUHLhVHThU3DkWHDsVm3sVWvtVG/sT3DrSG3sNWLlIljYKGjePoT3LQldhsRsldZfiNFf + iNRnj9tnjthjiMx6nNamyPK+3fu41fmlwvSJp+Nyldhoj9hkkt5kludcj+hMguA8d9YxbM4tasw0cdc7 + d+YvZ+IbStEXPcshRtAUQro1Zc+Tvvqjyf9aeMgyS6p1kOCvzv9khuUbQMslSNsmSeQeQ+AdRd4gR94k + Q98lP9wZPdAQQMcqVs9SeOJpk+9xpO99tO2l2/aS0vBcteFIru0ffdYNYMshbd40feore9g3k9Z33P2J + 8fuQ7/1xvOlhl9trjOpziPFqgd+Xs/CZuPVpjN1kit9hieltmu6NxfpbodV70PCS6vuY5vxGitMCPqgW + UcYqbuAqddxGieRnmuJ/pt+mwOzU6vypxvWXtPN6lutviOdYbtlQYNVeauBjb+ZaaeVTZupVcPZMb/M+ + ZN01XL93nOa/3vy+2fi91PbH2/yvxvl5keJRbNFMauFLautSb/VNau1QbudYdupUbuVWbehWa+pXbOxU + buxJa+c+ZuMuXd4eWNYkZ904f/ItCV+FxWyT1mSM1GKM1WWN12aP1meN0Hqe2qLH9rHT+JO04nia12qO + 02eP2WaT4WWV5mSW6lyP6UyB4EZ83ER83EB53EN95EJ76yph3hdIzRdDySBJxVV/2JjA/ISq7TtdxyJB + vyhFxSpIwWeJ36nN/1h95Bk/wBpB1h5F3yBJ0yJJyyZFxjpW10t531WW72ao/Wuq9VSZ7zGB4TB9y3e5 + 7Jrh/Uam20ax9x994gBFwhFO0zRs7TR46S+K41jF+nfx/YD3/YDj/1Oe2lmE32+F72+D45iu8py293CO + 3WaH32SI62CN62ul82i172HF6Hzq+oj0/Tef3QBSuhNi3CWC+xl86yV+4z+H4GCX3qrQ/LLS/Xed13WZ + 3n2V6o6f842f+3mM8W9/52dz4VVh1VNi3l1z7Uhn4CtPvGSM4qnP/63L+bnQ+r3P+sLR+c/i/b7W+YWf + 31hw0FZr4llu8lZs9E9p6lBq51Zs6lht7Fpu8Vdu8kpo6jxh4jBd4CVZ3RxW1yNl3jd98i0JX4TEa5DS + Yo3QYI3SX43SYo/UZI7Rc5vch6/qfqbZZ47GZIjOcpfhc5rmZI7bW4rXZpfnVongP3PPPXPRQHfXO3TW + PnfdPHHiJFbRGUXAF0OyVH7hpsj/haT0J0fAFTa/JEjeIEffHELFIESyWnvUr9D/aYvsFj2yHkjCKVjI + PW/VbKDse7L2XaPuOY3ZIn3TH33fH3vlHXDkJnDcQH7RiMf5SpjqRp34L4XvAk7FFU7JR3HsSn/yMHvg + NpfdaOD8a+n7fvH8ZsPvUIvWZorjcYjimqzxn7P2dIndaYHbbYbuZIXvW4jrZrH8W9j3Uur7U+z8Jbbk + AXnPDXTlFX/1DHzrFHvjIXfaT5XhpNn8i7v7Vo3bUoPdTm3RUmXTVGvXaITrhJ39g5n6fZLxd47nUWvQ + N1WzWn3UqM3/hqr0P2C2fpvlv9j8uM/2uM7zy+P1xt37ma/tXXLQT2XcXnX4Um/xSmfpVXDxU27wS2Xs + RGHrNVvjJ1XbI1XdHlXfHFXaKGXgQHz0LQlhh8lokNNeis5ej9FcjtNgk9hgj9Vmkdppldtfjs9mkdZr + kN1rkd9tktxtlN1slt9qmeVcj+NDedRBedhHgeNAed9BeeE/ceMiTMgdRrRgidydwf1hf+gcN78hQNEj + R98TP9UTRNQgTdooTtMuTMNhe9unwf1khcx0oOdxqvthpPk+juQpg9sffdkVddkSfuMThe4Uce0YU+Mf + SNQlSL1qkPdsm/88eew/kv4TbtcQWcpDd+xKevE7decpfdNFuulj5v5v8/116v9ZruhKhNJVf9eTs/SZ + tPhtiOJqheFwivVphPtGaugwgeQ+3f8m7vsp8f0Wze4BktsIeuAOfOcOfuYWfeIjfOBWofWNzfxUlN8+ + iOg7gfE6auZLbetHauY7Yto7YdpFaNtukeaiyf6fxPqJrOekx/+AoPk+X9McRLhPe+mey/++5//E4/7F + 3PXG3fe+2fx9nOVBYs42W9k8Zuk2Yec2XuUwWN8uVOEtVuYkVOMcUuIbVOcbVOYdVeAvZORIevctCV+G + y2SN0l+Kzl+N012N02CR2GCP112L1FyM1VqO1l+R22WS32eS3muT22yW2muY2WaX21+U4Ud/2Dt32Tp4 + 3zlz3UV75El54jtmzll71L/a/4Sc5idCwBg10SRE4xxA2hpG1iBN2BxF0h08zCpFxFp1z7TS/8Xu/4G4 + 4USP1B540xZ62xuB4yB96SJ17BNt6QJe3wNG1RQ61yg92iAyxFVp84ef/DFYxzB86B984w1ZzDZw6kZ3 + 8z5z6C522hyFzE7L+WHr/Gnv+3He/Eui2jVzwnml6oKs+FB730523Vh76lZ19i9P4ABCuAqv6A3i9x31 + /AzS8QCR2wp64BeD7hyG6x983TiE3nC4/Gq19yx91CWA6Bdv5Q9S1xxP3CpZ4iNQ1SBN1x9O1xVIvTxw + xpHC9rfi/6rR/VJ01SJDtiVPxiZVxDxwyWKV24as7KbB+bPR/rfe/7ri/3Wb6SxZvxtTziBc4yBW3ihY + 4SNU4R5Q4CBT4x5U4x1U5BxS5RpS3ihf4kB39S0JXYTNY4rTZ5DYZY3WYYvTYI3VY5LYYJHYXZDYXJLb + W5HcXpLdYZTcZpbbZpjZZ5rYZJjaYZfjUYzkPnzhMW/eMm3bPHPZR3nTZ5Pdo8P9xtj8fY7gJkTCHkbb + HULaHD7SH0bZFj/PH0TLT3DeeJz1gK76c6fZnNb9jtTvLojOHIDhH37qGm3jGlvbGEvUE0LUEUDYF0Hc + IUDcJD7eJDfdLkLejKH8V3rVHl/GMYbxKXHlKFzWRHXrPG/dMW3UKnfXPZ/paeP9aOr+e/L+bNPtRIi7 + cp3dfaj8SXzlQ3HbS3HaTmzjO1beBTyyEI3PMdv6OvP9INDxB47bDHPeEXblE3vdI3fQU5DWhsn9OpPt + IYTjJIbtFXHlDVjeEEveIU7lJUvjHknnIlTxGU/TJFvAfLH0suL7qdL5ocTygaLndpfkbJLjX4fbSHLO + J1HDLlXSVH7nY5Hih7DssNH/a5PgE0/AE1bbI1zjI1XdIFPhHVTkJFfkKVniI1TgH1TiGVXeHF7hNXr5 + LQldhM1jitNmj9dkjdVgi9NhjdVkkNhgkNdekNdgkdpgkdxhkt5jk95olNxplttpl9tnl95ckN9Hftg8 + dtpCfedBeN1FdtN0nuqozf6y0/252P2DpusnVscHPMYTRdMYStEVT9Aoa9tWm/JqsP1Jk+Mxe9ItdMhk + n+Wn4P9eofIgZdYPTNUPQuEVPeIdO+IiO+QjPOUmPeQrP+ErP94hNdQQJbN2jO97mewzbL9Qm+ZlrPdH + gdxbiuVpj+pWet1jkO5np/CD3vyI8vuO+vqS9/iS2eWl0++Zw/d/q/SFqveOq/aTsPuHq/x5rvlvwOmC + 6/p7+Pto7PJUvulRoOhJm+U+md5ToN2Cve6Izvoxj9sTetIZeuEVa98UVdscT+EaRdkfR9wpUesfSOAi + S81ghuKv0v/B3fu+1/HO5f3G3P/C2f692P/A4f+r0P9hieYmU8UeTcoVRMAqU8ODpvWewv9MfOYZTsgk + WNofU9wZUd8YUuIZT98fUOAgUeIfUuQbUN0kWt48dPQtCV2EzWOK02aP12WN1WGL02GO1WSQ2GKP12KO + 1mSQ2GSQ2mWQ3maR32mS3mqU3mmV32aU4V6P5kV51zpu0UJ12UJxy1R8ypi58sjj/bLS/K/a/VuQ2RlY + vwxPwxlazDR03VOZ8me0/FSn8CyD1x100h1t3TF16Shax2eR9YGs/zBdxRI8xhk+4Rk73x052Bw21R02 + 0yM80ixF0TJN00Be4Exu4oWj+K7O/Gyd41+d6oXH/HCy+laP8FqK71N+70976lmU8XDG/VrD5Gjh8Xnz + +o/z+5Ti92yu4kWC0kV501KB2luR6EiN4TWN1SeYzUnP71jy/VDt+D646Uic6Vel82Cr8323863U+7Hg + +nK78mS18l+s9EiJ6zNi0i1QxihOzyFL0R5FyiFEwk1t1KG798jf+8PX89Dj9cvb9cHS7cXW8MLX8sHb + 9sDe/Ja69EVvyh9OvjVm5zdk4Elv1qHC/aLD/0JoziNW0htW3Sdk7Cxp7yFa4x9V3yZa5ipb6CtZ4j1q + 51iE+S0JXYTNY4rTZo/YZo3WYYvTY47WZpDZY4/YZI/WZpHYZY/aZZDeZpHhaZLgapThapTjZpPmWozo + R33cSn7cTn7YU3zJgqLdvNX7yt75vNj+kr35RHzOIGO8ImvHUpbndLP8aqj4RoThJmfPG2DQD1HVBELZ + EUXeFjvFNVDMhqP5eZnuKUzAEDS8H0XNMlfaT3LlZ4ftcI36aYf9XIDwUHzoS3jkWn7do8T5b5TnGUa2 + R4LeWaD4KGnYOG3jPm7oNWHdRHvpZ7b+PaPdPLniZOj6e+/7iuv9ZLvsMoHXO3/iTo31TJX6L43rBn7Q + AIfQE8H3I+39Fdz1AJTZCXPXI3zmJXHTVYrWqMr6ibPrS5DWSpfrVJz3VJH2W4bza472cJr3ZJLvSnTZ + RGfIfJnhw9r/zeL4zeT3zuT3ydz5wdPzztz11uT6zuL3yOL6sNL9cZ3lPG7OQ3XoUYHuOWTKhqv6xOH9 + a4zbFEu/DFHSPH/3S4r9NXLnLmrfOnXrPXbtPXPlVYnzcaL+LQldhs5ii9NljtZjjNRhi9NjjdVlj9dk + j9dlj9ZlkdZlkdplkd9lkt9pk99qkuBnkuJjkuZaj+pIgt9FfNNAcb5bhMOtzPDW7PnF2OvJ3/q00/lh + is9Cd8FgnOp+tflfkOsrVc4dQsggSNcXQtkVP94ZP+QVNtYqQtEeMaphd9OnwfxwjeFQcOFkifJpkfZm + ivRYduFBW9IwStUjQtAWQcoUQL4eQbR5leuSq/01UsMoX8lbpPtGiOs0ZNhGb+ZHbeZAb95kqPlGnukf + jspVzO995/uY9/t41O9Al99IlexQlvlFkvgtju8FfdcBi9sVwvkf7vwR4fkBneMIeeMbf/Ebc+JQkeOd + zvxgmuYdc80ZeOAed+0caucdW9kkWtY2bdRUi+NwoPaLsvey0fnM4/jI3e/Y7/vL4fPJ3PrG1vrN2fXX + 4vnY6PvI4/mhzPZ+tvd1rfdtoe1Sgto8a71uld3B3fqlxvkzbs0UYNFCjPVSlvU5fNozd9RBhuNCiOQ/ + g9xWlupsrPwtCVaEzF6N1V+N1l2J0mKO1meS2mWQ12eR2WKP11yM0WGU3F2R3V6Q3WWU3WOR2l2N2V2R + 4VKQ5kaI3zt6yEd+vou14c3r/tLr+tjs9dXn89jt/7vV+qDD+Hig6y1UyRI3yh063CI65B084RQ81xpB + 1yFB0yxH0UJZ22J34IWg76jF+42n+VFp4S5M0R5AzBs6yyI80h0y0yI44yE86hU84BtE3Bk/xExs6piw + /VJsyRRNs1Wq8WGu9i9n1j1v3j1w3y9r1T6J6VCq/iOL1kSw7X3i/537/Ins/VTB8Tif3DWS4jua9iON + 7wJ72QCF0hjC+B/t/g7h9gCf3wR53hJ66hdy51Od75DO+T+K3Bd/3AuA5gp76RJ97hl76CV74itz2i1r + ylaJ2aHH+M/r/tfq+uHv9eX2/Nzr99vp/trm/t/n+eTr+dvu+8/w/ozE7EWO1WSn6p/U/4y6+G6Z15y/ + 8dbu/dHw/ny39zWC3FCf8F6r90OS40CR5EWZ7Emc7U6e7GGq83S6/i0JXY/WbJ3kbJ7kYI/XW4vSYY7V + Yo7WX4zUYpLYaJvfZJvhXJbdYJfdbaDicqTjbaHibqXtWpzqR43cUZPWerXntuL62Pf61e761uz20ebw + zuPuvtXvvdX9UGvBGDe3GzzVGTnVEjPIG0XOKl3TOGbSZIjydpbwbo3yT3PmOmjHaJfueJ34NFHLDTC+ + G0bgIk7nIUvgG0PhFT3mF0LsG03tIVfqE0zLNmvgi7P8WoPQGV+3P6DlYL76UKDpNYDLN4XPQJXdSqns + XMH8PablOqPZbtHroPj4k/r8Yt/yPrjZM6bXOaruJ5zwCYvcAZLNEsrwF/L6CunwAq3aCYjaFojmHITn + VKrwiNH4OpPdEYbbCIjmCYfmCoTjCH3YE3zQQ5PYd67lpM30yej92Ov53ef05Oz15vD63er43uv83+r8 + 4+ny4env2ez2yuz7grzsPIfUPYPQZ5rdn8f6stT8zOb91On70u77rN/8VJrUU5/jV6ryOJPhMZHmN5ju + PZntRpnpXabvdLf8LQl6sfeAtv19s/lypu1qnuRkldxhktlomOB6q/GGuv14sPdqpetso+V8r+mEtuyB + t+5/uveAw/9nsPJmq+iW0/XE8/7V8/zX7/rT6vvJ4fbD3vW41va81fyas/NCYMsQM7ImTshXhOhqoPlb + m/pXkOlRet4nTMkeR9MpWucjXtc/fu2Ftv9SetoUQskmXvEtafkiYeYfXugVVOgeXfAmZPEvcvIeZtgu + dd+Gvv1soOApdcYxl+ZXw/9j0PlDr+RHsehRvfVJuvJbzvxPwfswntdKrtGF4vGL+P1n6vxKzfE7uuc7 + ufkpqv0PnfAAoeEP0PgP9P4I8PkAvOcJm+MZm+gkn+lYvveB1fdNpNU3ndg/p+VWsOtqufF1vfCKx+yv + 3/jK7v/T7/vT6vXW5vHh6/Pk7vvf7P3a6v3X5/3Y6Pzh6/Xh6/bj9vvQ8P6IwPdIk+lJjNxwot+oy/vK + 4/3d8v3D3PWz0vG86f57t99epuNRpvAzlOcsku0xmPQ2mfFBmetepvJ1t/4tCWij6HOt83u2+4C4/Xqw + 9maa4FeK0F6R122h5nGl62ui52Oc32qg3IGy5Y6+7JDD8pHJ+oXI+2av6mmt4pzX88Lv/NDs+Nnv+8rg + +LvV9LLS9b3d/r7W+8ne/3ya40xx1F2J6Gab8UyN6yhz5B9i2h5Q0BM/yBhG3SFT6xxV3iVd2oGu+Hac + 6SRNyhRF2RxT5RdU2BVT3A5J3RpS5SVY5SRa3BNVxR1hw32y8Yi27VSV2Ueg5lW38GbJ8V6/51mx32G2 + 51qx33DI9oHV/XC+7XKz1pvY66Pv/Ivo/HbX91++5U6x4zmg4iOW2xWZ1CjD7Czo9C3u9CzC5Del3Umr + 4mC85pDX9LPj+KPT55/Y8qne+cPo/Nbw/tnr/OPx/N7v+9fp+dfo9tjn89vq8+Ht9+Dv+93u/Nzt/dPl + /NHh+dvn9tro+tny/LLa92Sn6jOL4ESQ3YS25svr/d7y/NDk+6DA6oex4rnl+pXG6Weo5VCf7TaS6S+S + 7TWZ8jaZ7D+Y5Vyl7HO3+y0JTIrQY6DldrL3erX6c6zxZJvgWI3TXZDVap7hcqbodKnpcanmea/mjLvp + kb7pjbvpjL7yerfzY6XjcK7gndL0uuH2xN7r0ub4wdX0utH2udb7tdT2yeL8wdn6uNf/fqbtMGG/HlfB + JmzoHXD5HWj1GlXhEkXWEELcG0zmJljnGkjIeZnpm7D6RFzQFTTFI0ncKFbeJlLeI0neKU3iK03cN13f + QXXlT4jon8r6qND3fLXtdL3ufsnvk9r0nd30kMfwn9L0odf1q+H8uu38uej/rM3mw93ty/X9vPX7t/T6 + puX0k9jxgM/veczucsfngN3vgfLykPr1pOv2vOP5x+T90Oz/4/D76un05+333vD/1en72er44u/72Oj0 + 1eT32Ob81OP80+H82OX72ub43un34/H94/H92ej83On91uL73eb83uv71/P9nMvrSpPSKILPSZbWm8vq + 2fr90uj7ts7wgqzjYZPRpdD3n8z0b6zrUZ3uPZLrOJXsOpvwOJvrP5nkWKbtb7j8LQlAgMZfnuV1svh4 + s/d1re9mnNtbjc1pmdiHtvCayv6bzfyVx/eJueiJteKQueqSu/SMuPd8rPFfk9dvn9qjy/W+3vrE2vTK + 3fjG2fy+0vu71P251fnH5fq31u633PWl0fpNgdIbVr8nauMgZ+wYW+YJRdEHP8kWTdciXuEmaeMsbNVr + lOCrwfWIouZjiON1pPx1q/92pvt1nPBrlOdbjuVknuxiovFTkud2r+yUyfprp+pTmehbp/JbrOh6zv9k + vPVHothVsepXtu1myPVqyvJRns93uuaX7f2B7fZ/6vd84fxVwukyrOE2qt1QrdWT3Pi69v/O+v3g/P7j + 8/ja6fLZ6vfd7Pjf6vTe6/bc6/jZ6fvX6PvW6fzU6vvV6vzX6PzY5fvZ5Prb4/re5fne6Pfd6/ne7P3d + 6/3a5fzW3/zb4vzh6/zc8PzI5fqlz/Z/seGKt97K7PzX9P2/3vnD5v2SvOxfjcSXwOqp1P12s/JLm+o8 + kuU1j+I0kec1kuk+lupUo/FmsfstCVaR1mah5HKr7Hiv7nyw7nSl4HCe2Ii2653L/JzK+5vL+ZLC8Yq6 + 6I266ZG88Iu18oCs7WmZ3liIy3qk3bLW+snm+8vg+M3f+Mfa+8TX+MbZ9c3g99Lh88za7dHh98nf/pS1 + 6GON0VaG2FmN52CU8l2O71qJ7GKT72qg82mo9Gyq83ys6KzR9pXA9mGX61qY7EyN6UiC5UFv1jNjxUeA + 11CM30+K3kmBznmo3qXP94Sx5Gia33Gn7HGn5oa/+YfI+G6x5W6y7Ha9837J9IbN9Hes35XB7arn/Jnq + 9KDw+KPn+XjB51Cl2E+i1Ha84q3i+tPz/OT1++73/Orw9uDp893q+d3s+93r+97s++Hr+9/r/N3r/dvr + /drr/Nvs+93r9t/q8uHp8+Lo9OLq9OHt89/v9N/w+d/w/Nbk993n++Lq++Dq99/s99/z+9rz/tDt/dfw + /OP2+7/U5pGtybTV9Mfr/6PH8qvJ8cLi+5bH82ep7Fuk6Veh5lik7Fmj8GCm8HOy84S++i0Je6zrfrDu + hLTxjb32lMT6jLrvg7HjjbvtnMr6n879nM39ksT5hrnuf6/leafhcp7eZ5PXYJDTZZPSkLrrxuj+1fH7 + 1en51ef4zeL9zeP9x+D02O382eT52t/52t/31N33zuP8udv8l8L0ibjxhbX1eKbzaJftY5bnZpzpYZvq + VI7Ya5rZpc32irrzVI7lT5DrR47rTY7tW5DxY5n0b639ebj+frn+d6vtnMTuv+L8osjtjrbrncT7mLzw + n8Pwtdz+rNP7n8bvqM72qtT0vOL9s8jxv832wd/1t+Ts0fj54vz+zOj8rdHyqM/vvOH51vH97fn99fb7 + +PP89vH76uz74+r94+z94+395Oz+5u3+5u394u394e394O394e774e344e734+z45Oz44+724vH14fL3 + 4fX64vT94O384u394+z75+/67Pj85fT61Of00ef43u/85u/32OLwrsLgp8Ltqcf5pMDvus3v1OT6uNf8 + lcL5ibz3hrv2ib78iL79jr77osj8stT+LQmQuPCXv/acxfycxfmRvO+EsOODr96Nuumax/eezfyUxfuD + tvNxpeNkltZgkNNkk9ltmuJnltltm9Wbwu3H5fvQ6PXT5e3V5fPM3vbF3/jA4fXJ6fvI2/bP2/jS3fTM + 3PHL5ve43/iItOZjkdxVhuNLe+JHeeNIf+ZQivJPjvpIgudql+SrzviOtu5UiN1Qj+NJkONLjuNakuho + o/Jrr/VssvRxsfRvp+GUwOO73/ajye6KtOqZw/qZwfGUvOep0PW33fupzOymyeamy+W83vfE1/rJ1/y7 + 1eyr09zM6+7u/Pzn8vvV5vfN4fHd8fzm9Pv4+vz89vj48Pj17/rp6vrf6Pvh7Pvh6/vi7Pzj7Pzk6/zg + 6/zg6/zf7Prf7Prd6vvb6Pzc6Pzd6fve6vvg7vrh8Prj8vvk8vzd5/re5/rf6Prk7Pvg7PzD0+epvNe5 + zuve7fvs8vji6/rO4v3P6/+83vquzffO4Pnc6fq81PadwfKSuu6Pue6Qu/WPuveVu/KoxfO4z/otCZO6 + 6pO67JG46oyz5oex5Yq27I678Y268YOv6nWh42yb4WKU3V6S22CS3mOU4GWV5Gya5mqX33ag3qLF8cjj + /dPo9d3t8+Dv+8/j+cje+MXe98zj+9Dh9tTi9dTk8M3i7cjk9cTm/Zi97FyCzlN72FN841aA8E587Uh6 + 7kZ+9kZ97GWN6qjH+o+z9Up54UJ63kOC5UiF5kp/3k+G3WWk726v8n24/H+x7p3E6rzd9KLH6oq06JbC + +pjC+JW875/D68jp/r3Z/KjF5aXD47jV9sja/c/b/rnR8KbK4cjh8PL4/vb4/env+tvk7Ob1+eXz8/b7 + +vz7+vTz+O7v++Pq+9ro+97u/eDt+eLv+ePu+uLt/N7t/t3u/t7u+97u+9zr/dvp/dvo/d3o/ODr+uXv + +Ojy+Ozz+e30/OTq9+nv/Obu/d7o/NPi/LbK7J213q7J79zu/uv4+8rd65682q/W+q3Z/5fB8bvY+dHn + +7fX+ZvE+I278Ym58oq7+Ii5+I669aHE9bHS/S0JirTfi7Xhi7XlirTnhrLpga3pdqPiZpPXXovSXovV + XYvYW4zdXI/iYpPlZZPnZZLnZZHjbJbjeqHjo8PyzOP81uj23Ory3uv20OH3zNv41N7709370t/z0eHu + zOLvx+HxxOD6xuP/uNf9mrnwhaTidJLbb43cZ4jfW3/dTnnaR3TPZ4vap8b2jK3xSnPaSHbhS3zrTHrs + WHzwTXXjTX7hVormaprzeKLwnb/0vt77osrzirv0kL/8j7f4nL/4lrXosMvzzOP9us/yobjftMz0xdT8 + y9b7vNT2n8Lhtszk7/T89vT77vD65u7y4fHw5/j08Pj18/j37/X67PX74vH72ur53ez34u714+/z5O71 + 4uz33Or82+r82un62ur53er63ej33uj05O725O704+zu5/Dv6vL05e3z4Ojy3+v53uz82ev90eb+w93+ + uNX9udf8yN371N/8vs72gp7XXIDJXYjYVn/LlbHvvtT8fp/gVYDYWobkVILiT4HlTH/mUH7iZIrlepzz + LQmDst2MuumLuux6qd9nldNgjtJfj9Zbi9dejNtnlORmlOVll+lmmOxomO1rme5rmO5tme1wmulzmt+V + turG4Pva7Pvc6PTd6fbV4/vQ3f3R2v7O2/3H3fPH4vTF5vyz1veUteV7nNiEpdmlxuu+3PvJ5f/E3/+6 + 0/unw/WSsu2LrOeUs+a21fmVtexdgNJcg95TfuBKct1XeOpWeetMe+REdttEc9dMdNF/oeerzPuMu/Jt + p+54rviFtPuYwPydv/ehvuy+1/u/1/mjvOSvyfLH3PzP4v231vWUvd2qxuHl7v3x9fzx+v7w/Pvg8O3p + +Pfz/P7q8PbQ2efR3fDV5fnW6Pnk8vzp8/ns8/ft8fnr8P3l7v3h7P3g7P3h7P3j7vvh7Pnh7vrk8/3f + 8fvX6fjY6/7b7//X6//P5//F4P+syvqPruh+oNx9n9qHquGcvu260/nQ3/7G1/ymwvWjxvOLtfZZgsuZ + ufC0z/5ojt1Bc9VMf+lLfOhHe+tCeetCd+VSf+hmkfYtCYi56nyv4Wud01yOyVmJy16O1WOT3mKR32KR + 4GaU42WV5GaY5meZ6Gua6G2a6G2Z6W2Y6HKd6muW2oKn3LnV9dru/dvq9trn89nn/dTh/dDf+s/h+8nj + +sfo+rrd/Iqu3l6AuWSDvoqq2bDO8Mvn+tPs9czj787h9sbY+a/C7Zis2anC5cbl+q3P9Y+z75C69oa0 + +n2p+YCn+nqj+Wyf8Wuh722c72uU55W376rJ+H+q6mOb5nKq83ep73un6ZW58Z+/7LzX+cvk+q7F567F + 7NHj+uH0/cHf9KLI5brV6+bu/PL4/PL9/PD8+ez29+bx9fD3++Lo97zH5cfZ8cbb+cTa9t7w/dzn+OTp + 9eXo9+Lm+t3l/Nvj/Nrj+9vk/NXg+M/d+M7g+szk/L/Z+6nF8pi37Yyr6Hue4nCX42qV5lqG4Ex41Up3 + 0FJ7zmeO2ZW67sDc+8na98PV8MLc/L7f9ZK35nOZz6nI9KXD9mGN2UZ83E2E60yB6Up/6kZ+7EV851OF + 6maX+S0JgrXtbKDaWozIV4nJXY7SXY/WXY7XYpPeZpfiZpfgaJniaJvjapzjb53hcZzib5vkbpjjcaDp + cJ3gfaXZqMrq0On62ur21uTx2Ob40+L3y9ns0+L1z+H2xdv1xdz5wNn3t9Dywdn7zOL/yt770uX81OX3 + 0+Pz1eT31OL6y9f3ucbqv9byv9/8k7bkaI/SWYXTVofVZJbhbpzobJzqZZ/naqPpb5/pbpXhpMHzts/2 + i7Dqeqrzgrb+fK/2farwjLHtiKfXn7jZyNzxvtD0n6/Vwczk4u36x9zutdDq0eL57+/8+Pb7+fz79fr5 + 7vL36Oz58vb90dnznKzbq8P0k7HigaHQudb5x9z7zd320N32z9v3y9r7y9n8y9n4zNr1ydj3xtj5xtz8 + udX6lrPla4rHVHW/TnHISW7OSXPUSHTaSnnjTn/qTXriS3TVY4nbnL/0xuD/yNn5y9v5y9/7l67UdZK8 + pcLuy+X+nbnsXIfbSH7nTYDvTHzqSnnrR3nqSHnnVoTuapj9LQlpnd1lmNZhlNJkldRmlthmlthpl9xs + nOFwoeRwpORwpeVypuV1qOR7qOJ9p+N7o+R5ouZ0pOl7quuDreCav+HH4fXe7/jY5vHV5PXX5ffZ5fbY + 5fzZ4/3V4fzO3vzH2vnF2/rQ5f7H2/alteSdrduzxOvN3/7N4PrM3/fS4v3T4v3S4vbO3/a/0viuxfaP + rexhh9pNdtNLcthRfeVIgONKg+ZJeuJCbM2Fpu6cuvRvmN5ckuZjnfFemORdkdd3ot6Os+KiwODA2fTO + 4/u6y+fJ1unl8frM4PC81O/V5fvj4/Tt6/b1+vz1/P3m7PTp7/rr8/2qt9xtg8GauvF9pNtQfL6awvS8 + 3f2+2/zD3fzE3PzB2v3A2v3D2fnG2/fI2vPI2PLJ3ffG3/uzz/Kdt+aXsOaasu+VsfR/oO9ihdlUfNVd + hd9vlOiJquyjw/OgveujueHD1PnC0/bI2fjC1va3z/TF3/zE2/yPquVYgttIfexNg/VSgfFTf/JRfu9P + fOtYhvFrl/0tCXWm236u4oGw5YOw5I2465a+8Zi/8pi/8JbC75bF8JPF8pLG95fH+KDJ9KbK8qbJ8qTI + 9ZvG95zL+6PO+bTW+NTr/Or2/Orx/OPt/OLp+u3t/ebr/dfq+8He/KjL+Iuy5Xyd242o6qrB+7PH9rjJ + 8L/R88vf9dPj+NPk+8/k98rg9Mne8cvc9s3d+8/g/crg/rvU/6S+9Iah52+N32KF5luB5VF42VyF4ZjB + +oqz5mGMzmqW3YCq6Ja56aTH7rvc98vq/9Lr/tjs/OLw++by/+Ls/ufu/ODm+dnf+uDk+t3g9drn9dr3 + /dX5/Nj6/dv9/NH1/oCk0mWKyJ/H+H+q32ORy67P+c7g+9Hj+8DZ+cDa+8bc/Mfb/dHh/snZ9c7a9tHc + +c7e+cvg+8rd/dPj/tro/9Di/srj/bjc/pvD64Wl1aS96sPY/NXo/rzW/3WT5Gp/ybXA8tXi/cXa987n + /cLf/L3b+7LR/nSX40163EyA8FGD91R/9FZ98lp+8Vh/7VyJ82ub/S0Ji7nklMLsl8Lslb3mncPqpsnx + qMnvqMruqs7vqdHvos/xm8v1oMn0qMrtr83tsc7urs/0lsT0erDodKndiLXhtdPy4vL+6fL61tzs1tvs + 6O395vL/rMjxYIrJUIXNWI/lPGrXLE/PO1jXR1/SaX3fnbH3vtD/yNf/zNr9yN/5wt72v9r0wNj0wdb0 + wNT1wtb3xt36yN7/wtv/utT+qsX9kKvydZTbe53hocb9i7DifqLWqMj1wd38yuP81O3/1PD+0Or4z+Px + 0uHx2eP14+r83uX73uX82+H51dz20t/2xt7yuOHuru31l+zxg/T1fvX7etv2PIS6OWqnkrLlrcj8rMX3 + z93/zc/8y9T/xdz/x+L/wtj+u870xNTxzNr2ytj7wtH5vtD5vtP6wNL4yNX5ydf2wtbywdr6wN7/qcf2 + tdD3zOP90eL9qrjvWXTGQWfIiKTzyNT8z9r8yN75wNz2u9j7udf+fZ3uPV/OLlfRMV/hMl7mN17pP2Hr + QmDpPV7kQGzoUYP5LQmXwuuiy/SkzPWhx+6my++tz/OtzfCvzvGtz/CnzOyly+2hx/Gixe+qxuytyO2r + ye+kyPaSxfpkpOFJjMlPjcR4qNa/4Pji9vnZ4e7f6fTY7vyz1fSkzPl7qukxacUSTL4dUdYbRt4aP9wd + PtoWMcYrRMw/VdFtgemdsfe00Pqz0fO30vO70/S70vS91ve+1vm50/q30Pu20fu61vu62Pa92vy81/20 + zPi70vm2zfa81frG4PjA3PLE3vjA2/LD3/LM5PbQ5fXP3/DR3e/W4PPd5vni7fzX5PfG2/LB4PO54vKt + 4u2o6/OE8PM/6ekx5/NBzPJXs+eAtuW61fWoufZse9+AjOiRn/FTar5dfs6Fp+6oxfu91fq8z/a8zvO7 + 0vi00Pqxzfa30/a91Pq4y/q2y/i/2fm+1f5+jOJTYL2Lo9+83Pe0zP9dcM4dPJpfhs+11P6+z/nD0/jB + 1/SzzfC1z/uYsvo+WMkfO8UgQdUYP9cVO9kbP94jReUhQ+IXPtchT905bPQtCYq24ZjD7qDJ86DI8aXL + 86jP9KfL8KfK76fM76XM7KbN76fO86zO9rLQ97LQ+K3P+qTO/YzG/mKo7EuY4UWS2lKS0Iy85szo/uTu + ++Ly/77o/WmgzFKMyHq29o3J/12Z7xlSyws+xRhH1hRB1x9J5CVN6RpA1B9CyS1QvHaZ37fZ+7/Z/7zQ + /7/X/b7Z/LzV+7nR+rjP+7jQ/bvT+7nU77/a78Xd9MPZ9MLV9sDQ88jZ9szf9svf9dLl/c3f+M7h9dHl + +NDm98zh88vd7svb7tnl+ejz/tzr+sne9cbi9MXm9sPl88vv+7D7/mr5+Ejv90DA5nfP/bP0/7Pk/1V/ + 2goxsk534oiy+CxWwBQ8sSFHuj1du2N+zYyh8bjP/7fY/7DZ+7DW87LP8brU97nQ+LrS/rbP/oyg8zVA + t1Rj36zK/bfe/2aG3S5Ft2yG2LXS/rTN+r3R+8vf/bzS77rS+bTP/2iD5SI/xSFC2yVJ5hxE4RdB3xVC + 3xlI5RVH4xBG1x9a3Tp49C0Jc6TTgrLiirjmibbkjLfkkLnlj7jij7fikrzlk7/kk7/klL7llr7kmb7k + mL/mlr7okb/ve7TxVZjgQo3fRZPoRYvYXpXSpsnx3/D+0uT7jrnwP3a/GletImHFSoPedKj3dZ73SGzU + IUe/F0PDGknVHk/mIU7nIkjVJ0jDjKrvp8P/cojXfY/irsT9vdf8t9D4ts33v9L7wtP9wdD8wtT6wNTz + vdPsxNrxyNz2wtTyvc/wydr40uL8zt750uD70d73zNzzyN7zy+H2y+H1y93x0Nry4+r53+r5zN3zy+Lz + y+P0ytrr2+Lyy/L8l/3+Yur8J5bOJnzHS5rSdb3yRH3eACqyQ2rakbX6Xn7WUGzOXnnaZobkWHvbX4Dn + aIjndZzonsb4utr+vNT8vND0utHvwtf8rb76V2rcJTvCRF/raIrvVXjcKUSqW2/KvM39zNz2u830wNP3 + q8DnudD3u9b8i6v2MVfGFEDJFEXbFUnbG1HcHljhHVzhHWHlHWXoIGriMX3jR5PyLQlxo9WAseOFteWC + suKEs+KIteOHs+CJteCKuOKJt+GHteCGtt6Gtt2HttqKttyLt96IuOV2redTktg8hNg6h+M7hNtEhM1v + oNmu0PDP6/6x0P5XgNMhXcgbXdIPSsUfTslde+KUqPl8lvA5XdIhTMofTdcnUtoiRMRfeuywy/x4kuos + Rb0qRLtbdduXsvW+2P7E2/u90Pm/zffE0v2/zfzD0/7C2PvA2fa/2PLB2fTD1/rG1/zI2/vH3frM4PzO + 4PzL3ffF2vTG3fXJ3fXM2/LS2fDh5Pjk7v3W6PjL5vXM6vfQ5PTY4fPT8vyq/PaL7/lTqN8mb8Auer5t + t+l5q/hceOp4jfKqw/+vyvxzkPBmjO0+b98rYuEWR9UVPtQbPchBXtpjfeR/l+mrwv270vm90/2muvtK + YtkhRNIbQdgdQNMYNbVDWsCitfK+0/i0ze/C3PqnwuqQrt201v2fx/9Ie9kXVcgcYugga/Uhb/Ind/Ep + efAmefAkfPIhfvIffegtiONAmu0tCYu45pjF8pzJ9pvG8ZzH8Z3J8ZzH7p3I75/K86DI9Z7I9pvJ9ZrK + 9J3M8KDO8KLN8aDN9o/C+Gij5kuP30WR60mV70eR40uQ1m+r4bLg/NPw/KDB90aC2h9s2ilv7yZe5SJG + yjNGwWJ33o6v/nab90dv2yVKtElnyJ26/Iim/itMxB5CzCVK3x1AyjBQw2+M4bHM/cTd+73U877T8cTX + +sDT+77U+77X+b3Z9b3Z8sLY+Mnc/Mjf/MPg/MXg+8je+8fc+MTZ9sPZ9cva9tPe+dXa89vf9uXu/N7v + +szk9Mrn9M/n9c7e78zu97v5+qH0+XzJ/ESP5zuU4GW+9liW7zNSzzxUwnCO15e3+TRZyxlGyQpBzhVL + 5BxG6iFB6yVD8B074wwwxQ85tjlgyn+f67fV/J/A+EFlwxtFxRRAzRlBxjFTxXGO2bTQ9cLo/6vc+4W2 + 4Xmm0q3b+qPZ+2Oi6C562CF45hp48hh69hl78Bl76BR45BJ35RV77BV87RV65CKE4zeY8S0JnsbsqtH4 + rNP6ps7zp8/wqNHxps7uqtHyrNH1psnzpcn2oMn4n8n3osvypM7wps7wpM71lsn8aaXmRIvWQ5LkSJnv + Q5XnOIzaOYvUZqfdzvT/zvP8e7rrJ3jMFGPXIWPvIFLkHUDRIkPRLFHTVnvgi677eZvjkrHqq8z7QmjG + Ik3EJVTeHE3mG0XgGj7RJ0jFWHjUm77zwOL+vNz2tdLwt9Hwvdb4xdz9xd37wNfywNbyzOH60OX8x977 + x978yN38xtv6xdr6xtr6ytz50d/61d312uD26e/76/P83Ob41uLx1uDx1d7wze/7rPv9e+T6Ubb9DGPM + AFy2KKHsIn7nBj7KGUTBOmLAi63/XXzuIUPEKFLhIErgJ0bcJULZHkfhFUvjF1njGGDcGFfUT33spc// + pdP5VIO8OGbITX3ndqnsp9v/ueX/msPyb6blRorQRYfJkMnut/L/c7b0LnzKK4LhJofxF33rFYDuGYLu + G4LrGX/qF3zrGX3wGXzxF3npJITsOZb7LQmgxems0fWu0/anze6mzu2o0O6nzuup0e2r0e+mye2kyPGe + x/agx/elyfGpy++pzPClzPWNxPdhpONFktdBlOBCluREmOY7lOcmf9kue8Z8r9vF8fy48f1mp+QpatAe + Wt4gVO0bSeogSuQoU9slSsI0UrSCn/K/3f+oxv9RdNAjSsEWQsYUQc0fSd8rUOwlRtwZO8A0WMZ8oeu6 + 3/+83fm92vbB2PbE2vjG2vnE2ffD2vXF3/fK4PrM3vvL2/vH2vvF2fzE2vzH3P3J3f3N3/vS4vrU4/bi + 7Pju8/3l6Pje4O/d4PLb5vfH+f6J/f1c7fxMzf0Scc8BYcAvrPIog+oDPNMbRtImS8dxjfiUp/stScgU + Q9IZVugRV+Mib/EleO8mfe8jgPMhf/Qmdu4sauBimOqo2vqdze+CruuRwf+X0/t1tutUj+U9dNsrZs1B + gtmQy/i56f92qfE1ctIqb9smcukWZ+IZa+McbeQbbOMdbeQdbOYdaechbesibusgbOYse+9Bkf4tCZe9 + 46TK8KjP86TL76TM7qXO76LN7KLP66fT7qfS7aLQ8J7M+aHK+qvL97DN9a/N9ajP+o3G/Fuk5EGT1USZ + 3Uea4Eub5EWY7CuD5iFx1Cxswnis8L/u/73q/nSe5TJcyB1Mzx1S5h1S4RpLyihRw1+A26bD/XWS3lp3 + y4qm9Yai9U5v1jdZ0SRH0BI1yiVI5S1P8xs80y9Nz3GP7LLN/77X/cba+8PW8sHT8cLW98Ld+7/g+8He + +cjd+8Ta+r7Y+r7X+8Ta/Mjc/Mrd/cre+8zj+cff8NXo9ef1/d3t+NLl8s/r97/r95r1+0vw8TPt+TnO + /A5uzgBawjSf8St67AI21hxK3xtKz0Zs2KK++1V33xBHvRxn5Bt47RiD7h2I7x6D7RJz6g9q7ih97kSQ + 3GWh3J/M9Mjt/rDV/2eT4ipkySFl2SBh5hlV4D525pHD+rHX/3GK7DBKyxg9zx1I5hA+4Q473BZB2RU/ + 0hU90RZA1BVA1hY/1xtF1hxJ0hlKzyNa2zhz8y0JfqnZibXmjLjpibXkirfljbrnibjkibnji7rki7ji + ibflhrXriLTrkrXolrfnlbfnj7jsfrX0UZXdOIPOP4zZRI3eRIvfPIfkI3PdF2PWJWjeKGLLW4vUpc/y + veD/gaTpNF3AIE2+KljLIUzFSnDarcz/iKX2MFC4LEy8KkfIRWLpco3ziKH7eJP0TWveJkjVGT/UGUDa + G0DSJ0zIX4XZnsP5weD/x+T8s87quNTvwt74wtz4yOD9xtz7w9n5vtj6wNj7x9z9y979y+H5yeL0zOP0 + yN3sz+Ls4fX43fn8t+b3gMvjadrnVPP7IvH0IfT7KdD9CmvIAF2+OJ7yLnnsAznUHkznHkjbPV/TpsD/ + jaj6MlnTH1bgHmnoC13VD1nLHFvNMGzjVI/6dKz/dqz7WYXcTGzEbIncttf+gqrvM2PJD0K6BzXCMlrc + iK32nL/3WnbcKUHJIDrVIEHlGz7oGDroIEDtIkHoID3gIT/fJELjIkLjIUDhIkLfIELZGkHRJVPaO27w + LQl+quCItOqKteuFseaHs+iJteqGsuiGsuiJs+uLs+yKs++HtPCJtO+Pt+uSueySue2OufB/s/RZlOFE + g9dEhuFBheJCheZAhOsocN0VXtIcYNobXdEgXLxHf9aTxPi65f+TuOtJaLkmQ6RdetSkwf5zkvQtTswr + TdAsUd0fRd8bPtwbOcw3Uc5heOh2jvV0lPJoke5Pe+QsV88ZRLRLdsWfyfqSuOmu0Pe01vSz1O++2PLI + 1/bN2vrI1/jF1fjC1fjD1/rG2vzJ3PvJ4PPI3+3M4PDO3u/S4uzW6/PG7PyGy/Itoc4cyNwm9vwM7vQX + 7fkl1PwKbsQAXr41ofMre+kAOtMaSOsbPt8oQsV7j9+pvPw+VdAZNsIoUcw/atRkgeh3h/FyhPVlgO1L + Z9onQtAULsIcNccqRstnh+qw0/6Jq+40ValTcNClv/+duP1MadkdPb4iR9odRN8cRN4cRN8dQ+MZP+EY + Pt8YPd4ZQNwdRd4eRuEeReMeROMbQuAYQ9cnVds/cPAtCZm/7aPK+KbM+qDH9aLI9qXL+aPJ96LI96PJ + 96LH9qDI+J3I+p/I+aLK96fN96TN+Z/N/JDH/2em7U6R4kyT6UiP6UiP7ESP8ix75xtt2yB14yJ25SJ1 + 5B9u1zZ94nq097Lf/6LC8ZWt57nN/5Wt8jRV1Bg/xyRO5BpG4CBK4R5E2SVF4CM/3x461SRA0TdX2F2E + 6Hyj9Xuc/XGP5Iqm7arE/lJrrXKLzrjW/LTT9rnS98ja+cPR8s3Y/MnX+8TZ+8Tb/Mbd/sne/Mzf+c3e + 9sva+crc/M3n/7Xd+IHB7Fa08DG77xvY9Bfz/Qrx+hDo/DLf/g55yQBWwSeR9CJx6wA41BFE4BVC2S9W + 1WGB17bT/3+b5W+M5X+e8YSj52R940NZ4yxF1xQ0zhA02Bg96CFD8CJA6iI91ytDw4Gb76rJ/q3R96zU + /Xmj6ylVxxQ9yiNJ4xxC4B1C4R5E4R5D4h1B5B1A5hs+5Bs/4hs/3x1C3x5D4h5B5B9C5hxB4hpC2ilV + 30Jw8y0JqMjvsND3r9D2p8juqMnvrc30rs30sNH3rdD1pMfso8rvn8nxn8nwpMvups3vpM3yn875i8P5 + YaHjSY/ZSJHiRY/lQ47oPY3sInffDmnQFnraF4HhEnzpDnTlEWrWIGnPUoXbnL3zy+L/p7fxTmPLLEzC + KE/YHUrkGEXlFT3ZIEPdIUXhGDzbH0LhKEjoH0PZG0LNJEnMNFXKXHvZpsP+r8r+fZrghaPvsdL+t9n6 + t9X1wdnxwtXuxNTyxNf0xd31xd/0yN/1yt/1zN7zy9v0xdj4vdn7p9D0ebfaSp/JOqrdQNL7Mun7Hen6 + DuL3Ftr5QNn8FX2/Cmu6RaTsUJHlSG/PbYvngaH2iqfwhp/tkKfxobj/VWnWN0bRLDnZHS7PHTXTJEPf + IEXgFTrkEDLuGDbxIDrpJT/RO1i+hqXot9T+pMH2YHzdJUPGFz7JGkjaGUTcIETgIkPgIUPfIEPfID/i + ID/kID/kIEDjHT7bHUDbIEHfID/hIUDjH0DfHUHXLFTcRG/xLQmgw+qqzPOrzfSkxu2lyO6pyvGoyvCp + y/KpzPKlye6iyvKgyvKgy/OkzfGlz/Clz/Ohz/qMxPtgouVIjtlIkOJEjuZDjuo/ju8meuMPbNYUft8V + heYNfeUOduIceOcia9smXMc1WsNuiOCyyf+ft/1UctoeQ7whSM4jS94gQuQgQuYeR90bR9UdSOAZROUU + QOAeTOQeSdYdRsRJb96Ms/1Pds1Fbc1Redlvl+yVuvmxz/zB2v7C2/+72PvB3vvH4frK4vjO3/XP3fXT + 3fXU3fvS3v/H2v+fvet+rNl0sdxpteN42fp98/xq7PVk7PR37/yb8v1ut+RnuvF6zv5emfBTc+ZdeexF + Z+AuVMsjSsQvU8acvPxzjvIuP9UpOOUtQ+wfPd4WONofP+UkQusYNNsVM8wzVtZih+agyv+02/98nO80 + TskhOMspQeUnR+kfSN8dRt4jR+MiRuIgReAfQ98fQeEfQOMfQOQhQ+QbP9saP9kdQd0dP98eQOEeQN8c + QtcrVtxEcvItCZG655zG86DJ957G9KDJ96LK+J3G9JnD8J3G86HJ957G+JzH+ZzH95/I86LK9KPL96DO + /YrB/V+e5UeK2kaM4kOI5EOJ6EKM8S585xhv3xd15hh67Bl45xlw4B9r4yFj4RxS2BpCzyJDyUFd1HyY + 8KnG/4am8EZmyiVFvxo6yR5A2SNI3h1F2RhE4RVF5xVG5BdJ3BdHzD9s2Y+5/3Wd+SJMvBdDxRxH0xpC + ziBFxkZl03KN54al7pO48aPF97bR/sLZ/8ze/s/g/cXY/rjN+Zy16ajH9Za88oCu6JHM9oPN9YTb9o/z + +2PV3WXg4oL0+YXb9z6GvjyV2TiY7hRW0Ro51SI84xg72yNJ5xlE2xpEx3GW86/Q/lZ04yI/0B4+1Rs+ + 2R072x841h86yzFPymKE25TB96zd/3qr7EBw1BdBxRxB2ShK7SND6iNE5ydJ5CRF4SNF4iFF4CFE4B9D + 3yBB4iBA4yBA4yJC5Rs+2xs/2R9B3h9A4SFC4h5B3xxC1ytV3ERx8S0JcaDWfKvhfq3je6nffqzigK/l + fqzifqvigKzjgqvlgqvof6vofqrkgajegqndhKzfg6/nc6fqT4nXPHvQQIHbPn/ePn/gO4DnJm7dE13V + CVPUDlfcEVnZFFbWGVfdGVTfFEfdF0PhHkbgGj3NHDvATGvWhqPvk7P/gaDtWXnfJkfFHDnRHjrhHT/q + IUjuGUPcEjvCMFjPep/6qM39RWjbJkvSIEfkHUTvG0HrFTrcKE3ZR2vhR2vZQmjSWHrfaobldpLnhKXr + i7LwdaPrUobVNWvAbKfraKrvM33NR6biV873Udz3S+r4AKi5ALrQLuv4QNv9AXLDHZbmIp3vDFrMJEbY + LkTkKELmK0TqJEHjKEfYNE/HjKj4gKX8KVHHFTbCHDjPIz7MQV7Uaonlmbn5sNL/h634PmfQHUrGGkrS + HEzgGUjmGUTmG0PlIEThIkPeJUXgJ0bmJkXmJkflJkXmJULpJELpJELoJULoHjzeHT7bIUDgIj/jI0Dl + IT7jIEHcMFfiSXP2LQlqmNNzotx1pN5wn9lzodt3peB2pd96p+J6peN2n995ouR5pOZ4o+N7o9x8o9l8 + o9p6pOFrnuVIgtI4dcw9fNk8fdw9fd43euIdZdUOUsoSUdAXVNgTUdgPTtgSUN0ST90RR9kWRNsdR90g + RNomRtkkRNIjQsw7WdJykuyZuf+Xtf9rhepBWt0mQ9AhQsojQ8YpSMJigOibuv19nPQrTModQdQfRukX + P+oZPucYPdooUNVEbuFMeOtHdfFHce1FbORCbd5CdN5DeuBAeeA9ddpActl2pfRzpPQ+eNdMoORp4P9b + 7/445PoCvdcAy+Ad7Poq1/0DgdgenfAalugGWMYeTdMhSuATQuUYRu8UP+gkSuofPMo4VdWIrftYf9cx + S8FPYdWCmvGryv+tzP+Bn+tJZNwpRNglQd4pTegmTegiS+chSuchRuohROoiRuQiR94kSOElSOckR+Yj + RuUjReUhQucgP+cfP+YfP+QeP+EgQuEfQOIcPeIdPeIbPOAZPtgoUtxCbfMtCYmx55S88pfA9pS98pfA + 9prC+ZjA9pe/9ZnA95rA+ZrD/JnF/prF/Z3F+JzD9ZvC9prE+4W6+12Y5kmH3EqL5kmM6UuN7UeN8i95 + 5x9o2Slu4Sxy5yRt6x1n6B1l6htf5BdT2BhK0SJN2SNJ3Rk+2iBF5ydL6xxA1Rc4wTVTylt50o2s7aXI + /ZW6+m+U5EBhvURgxZOv/6PC9TlZwSxP0iRJ3yJK6RU+4Bk+3h5A2SxR2UNt5Uh27kBx7UBx7UJz7EN4 + 7D996Tt75Tl45UF75UNz3Hil73yu+jx72DiU11vd+1Py/C7g+wbP7gnk7x/0+h7T/ACJ2x+Y8RqC6ghQ + zhxJ2BxH4xBG6Q9C4hA60hs8yzFJzzNJu4mj8bLP/KzH+6rG/Zez9mB+4TJTySVJxiNKziBH1h9F4BtB + 5htA6BtC5BxF4BtH2htK2BtJ2hlI3xdH3RNG2BJH2RJH2BNI2hNH3RRG3hRG3hVH3hFG2RNI2BVK2xdK + 4BxO5h1R5htS3Sdj3z178S0Job3rrMn3r8z6rMj2rsv4sMz7q8j2qcb1p8f1osfzocn3n8r5ncj3nsfx + oMfvoMjyncr5jcP9YqHpSIzbRY3iRY3mR4/sRZH0Ln3pGG3cGXDfHHblGHPlFG3hGmviG2PeF1TTGUzR + HErXHUfbGkXfFkTiFkPiGkbhH0fdJkbWJ0TNKEnBPmTLYorhg6v1l7v/qcb+wNv/rc38ZIfUJkm/EjfI + GUPcHUfjIknlHUXfJ1XiPnLzRXz1Q3ntRHrsQnjrP3jpO3rmO3rmQHjoSHrmSXPZfKXwear4MHLMLIrM + WNn6XO7+M8f6AZnJDOH0G/n+HN3+AJ7hGZP1EWnpCkHQIkLWGz3VEj3RJk3OVHLZcozgl7H0rMX/rcX/ + lLDwZovfPmzRIFHFE0XGHFXXIF7gE1XZD1PYGV/mElbjEVTkFFbiFljhFVzcFV/aFF/eEV7iEWHiFGfj + FGjhFWnhFmrkF2npGWrrGmrsGWnrG2/qH3PrIHPuIXPyJnj3Jnn1InjrKobqPpz4LQmmwuuwzPSxzPWq + xu6rx++tyfGrx+2qx+2oye+jyO2fyO2cx+6dx+2fxuuex+udye2byvWLw/pgoeRFi9dEjeFDjuREkuhB + ke4ofOQRbNkRd+UTeukSd+IQcNsVbdwYZdkWVNYbTdkeStsbRdofSt4aTN0WSdkXRtgZRdkdRN4jRuQj + RuIdQ9YYQMgfSMI6YMhjhNaCpOmYuvajx/uDpvdegutIcN80XNghR9AROMQeTs42b+I8duU9dOI8duM4 + c+A0b9w2cd89duZFd+lLduVHbtR9pux7rPgzc9E5kNVu3/xx5Ps5newAV58PweQj7Psm2/MNos4eiNYi + ZdA1XM1bc91hf+N4n/Kfw/mvzv2kxPmLsvJsl+M+a88kVskUVc0TX90dcOkjee0gee4bdvAadvAaefMd + ffMcf+0cgOobf+kbfusafe0ZfO0ZfusZgekZgekYf+kYgOkYgekYgeoYf+saf+0bf+4cgO0agekZgOcX + feYVe+YYfukXfucUfeAejOMxoPItCZS+7KDK+KPN+p7I9J7I857K85zH753J8KDM853L8ZzH7J7I7qXO + 9qfP/KLM+pvL95fL+4fA/l+d5UeI3UiP6kaT60OU6D6S6yp94xlv3BV15Rl67Rp56Rhz5Bdy5BRq4RNW + 2RlJ2SFG3yVD4SND4RxG3xxH3h9G3CJG3CBI3iBL3yNP3SRR2yNP3iJM4B1H3Bc/0xlB0ChN1zpe3lh9 + 4n2j75C2+5K1/oSk9HWT5nSX43Ke5mSR6FaG6UyE5kGC3z5/3EJ530R24kZ240t74Ud1zXSj6nms+EWA + 1VGh3Yjt/YTe+j9+2yFmt07D5mz2+3Hx9m3X6YPI6Z7F9qrG/a/M/qDH94Gz6WaZ5kZ01ilbxxVSyxJb + 1h5u4CeB7B6H8hSI8Q+E7Ax+5hKE7BmI8xKB6g595RWE7RSE6xOD5xOC5hOA5hSA5hSA5heD5xmF6ReD + 6RN/6BSB7BWD7RSC6xJ/6RF+5xN/6RWB6heB6RWA6BR/5haB5xeD6RWB5xiC6SKN8iyY/C0Jgazljbnx + kLzzi7ftirfri7nsibbpibjojLzrjLzpjLvnkLzolL/ukrvwi7bsh7Tqhbjweq/1WZHjR4LfRobqPobm + PIrjPIvrLXbjHWTdG1/nIGTwIGPqHGHjGWTkFmDjF1LdH0veJ0nkK0bmKUflIUjlIknkKknkKkfjJ0bj + I0PhJ0rlKErmJUfnJ0rsKk/vKE7qI0njH0PeH0LYHUDNKUzULFHSN1zTRmjdUHTmZpHxf6/4jbj1mbvy + nsP0n8z3pc/6rMz7rsn7rsb5scb5sML2w9X7xtn+s8z6s9/4vPj7wPD7ssb4nb/1muj6mfn9lff9f9b8 + aKTqV3vXSGbUNlnSJE/QG1DSG1DUGk7XGVPgHmXyJnr8JoP6Gn7tFH3qGITuGYXvFYDrFIDqF4PsFYHp + FIDoFYLqFIHpFILpFYPpFoPoFYLnFYLnFYHlFYDlEX/jDIDiDoPmEIbpEIXpD4PnDIHkDoDjDoDlEoPp + FYPpFILpF4TqFYPpEn/mEn3mF4LrHojxLQl9peSJsvCNtfSHsOyGsOqHsuuEr+eFseeItemItemItemM + t+qPt+2KseyDqud+qeV9ret2qvRYjuZDfuFAgOo4fuQzgN8ygOUgbNwQVtYRTt4XUOcWUuAQUNkOVdwM + VNsNStYVQ9geRt8jRuMfROEZQ+AaQ98gQt8iQuAhQeEfQOIeQOYeQOcdP+UcP+IbQN0cQ9oeRd0gR+Qh + SOUcQ98cROAVPtgVQNoTPdoJNs4WSc0zbNlBeNdHd89OgdVTi99bkOdkk+prlutymep2mut7ned+ouRw + mNxyoeOS1Pmh9P2Iz/hQgM4sbrZDwt9L6PdW7P04uvQNas8AQMAPRNgeSukaROUbSeQlUuwnUuseTuYZ + VegfZu4gbu4WauUYbuUddegdd+gceOkZeOkYeusYf+0Yge8WgO4ZhPIXhO4Vgu0SgeoSgOkTf+gTf+gT + gOkSgukQhekQh+kQh+oOhegMg+YLguYNgugQhekOhOkQhOoRhewShewQhOsPgukPguoQg+sShewtCY6x + 65u++J7B+pi89Ji885m+8pa77pe875nA85a98pW78Zu+9aDC+6LB/Zy+/Ze++5fF/YGz/FKJ4Tl01jp8 + 5TmD6DSH5C2D5Rtt3Qxf1wtg3hFl5BFl3w1j2gxm3Qlj3ApU1hNO2RVG2A870hNC2BFG2xJH2hVF2BVE + 2BVG2RdK3w9E2Q9E2RZI3xdI3hVG2BRF1BNE1hA/1ws71RFF3hVK4g5E3BBH4BNH5A9C3BxU2zRx5Dp4 + 5Dh23Tl54jZ65jJ35jBw4jBu4DJw3TVz2zl33Tt/4Cp40C6H2lvJ+nbz/VXM+BR10wBmuA3E4hrr9y7w + /BC99AB11AFc0w5k6Rhh7BVZ5Ble4iBm5yBl6BZd4QtV3ApV3gtY3QpX1hJf2Q9c0gdXygxh0xBq3Ats + 3Qlv3glz4Adz4At35Al34wh24Qh14Ap34Q554xB85hR/6ReB7RuB8R2D9ByD9ByD8RiB7hWA7RWB7RWE + 7hKC6xGD6xKG7BCF6gyC5w2D6A+G6w6H7AuF6S0Jo8Dyrsz7stD8rMr4rMr4rcz4qsn1rMv3qMn4nb70 + m7zynbzxor/3pMD7n737l7v3kbz5hbX9U4vfMXHPO4LoSJn3RqD5Ppz6Lov0IIXwGozxHpX1HpPzHY7v + G43wGIXuGHPnI2ztIVzmEUbVHVbmImTwJWryKGjvJGbrH2brHmjrHWrnH2znImvqImbsJmbtK2jvJmLs + FFDfBkPRIGHoJ2vvIWboIWToI2DrI1vqM23vRYL0S4jsTormUo/qT5DwTI7wSIjtRofqSovoTpHpS5Dq + SZbsPpnjQa3qXdr8afb8WeL8KqjvA5PWFNbxGe38J+r9DLvwAInZCIDgFYjvHYfwH4nxHIzvFYnsEobr + E4bwFob2GIL3Gnz3HnjyKHvyHGzfDGDRFW/fIIHuGIDtEn7qEoLsEYTtEYTtEITsEYLqEYDoEn/mEX7m + EH7kFIDoEHDjBFTTE1/hGmfqIHDwInXzInn0IXr0HnzyIIH0IYb2Hof1F4XvEoLpEITqEontEYntDYXp + LQmgvPOqxvqsyPqmw/eoxfeqyPmoxvapyPakxfeau/WdvPefvPegvPihvPueu/yavPyUvfuFtP1UieEv + bc46gudJm/xCnvc8mvkvj/gXfukXie8WjO0YjOsUhuQYi+wcifESb+IcZeQeXOUKQ9EXU+IkaPQiaPAm + ae8eZekga+8VZuYNZNsSatwTZt4ZZOUhaeskaO0mZ/EQUd0DR84iaecfauMcaN0VXtcPUNEXVNoybutH + hfJHi+1Fj+hHlOxCj+tEkvI+i+03gOJBiudJk+tCkes/luw4n+RCuuxf4/1e7PpK2Pw7wvgAjscB1OsJ + 8vwk8/0LxPQAiNUIh+ANje4Rg+gUg+oSguoUhu8JfegLgOoPf+sPfegahe8cguwjg+8YdOADY88QduEd + ivMRhu4Ti/INh+4Jg+kSjPEWjfIOgecPguYVhuoSguYRguUVhOkQa98IStITS9oTTNsTTtsRUNwSVN0R + V90QWtwSYOAVZeMWa+YZc+oeee8ffvEfgfIegvMdg/ItCY6t85e2+5m4+5Oz9pW19pi4+Ja39Za39ZW6 + +JG5+ZO5+Ze5+pq5/Zu3/pu4/pi5/pS6/ISv/liJ5jdv1T9/6kyW+0mc+kSc/TKK+BNr4Qdd2gpf3Q9j + 3Q5l2hp46yqG+yBv7Bxc5BpS3ws/0BlQ4ipp+CVl8xlV4gQ+zQtI2BFS4Rpi6Bpm6A1X2wxT2xdb4x9j + 6SZm8BBP3gNF0SJm7CFn6B9k5Rdb3Q1N1hRS2y1u6EKH8UGN7T2N50KS7D6P6UKS8TuK7jN+4z6H50WO + 60GQ7DeP5jOe4EvI7mbq/Fbd9jzF7zbC+QCbzgDW6Qjx+x3n/RLA9wCS3QmL5BWL8B2E7xhz5wdd1Rdv + 6Rh27x6D9xaC7QZ53gaD4QqJ5hqN7xN95AFr0wt95BeP9AyJ7AuM7gOD5gB94AB01QN52wJ32Q5/4hmL + 7BmK6xaL6hiK7BZx4xdU3CFU4x9S4R1R4BpR3xdQ3RVP2hNO2BJO2BFP2BFP1xFS2BFU2hNW3BVb3hde + 4Rlf4y0JeZztg6b1haf1f6LwgaXxhKjzgqbxgafwgKrxe6jtfartgKvuhKnviKfziajziKjyhKjyeaH3 + UoDgNWnSPXflSIz0RZP0PpH2I3XlAkzKFVbiJ2X2JmbwCk7RBEzNE2DiG1/mJl3rIlLlCjfOGEriKGH3 + J2D1JFftFkXdFEbhC0DbFk7lHFfrFE7gF1LkIV7sJGPtJmPuEU3fCUbYJmP1JWPzI2HwG1joDkvfE1Hj + Km7sPYnxQI3uP4zqRZLsQo/nR5LuP4nvNnvnQ4XsSo3uRI/vMovhN6TlXNv3bPD+R8rzKbDfLsL4BLPf + CN7yFPD9FND3FLPxCJznBpDnDY3sFonwGX7vEWzlCmHcBl/aGXftH4DuDnfeCH/gDorpGo/yDXzkAGrS + CHziEI7zCIruDZH1CYzwCYnsFI7zGZD0EoXpFYXpF4rtEYfpDojoEYnsEHDiEFPYHVPhHlTiIVflIlfm + IlblIVTkIFPjIlXlIVXkIFPjIFHhHU7gHE3fG0zfG0zfGkzeLQl4m+yCpvWDp/Z+ovCApfGDqPKBpe+A + pu6ArPB/r/GAsPCFsPCKr/KOrfSPrvWNrvOKrvN9pvZUgt42ac8/euRLkfRGlfA9kPAkduIHVcscZucq + cvYpcO4MVtIFU84WZuIdYuUjWuUfTeANOM8bTeInX/IfWOsfU+ceUOMjWu4hWe8QQtgMPNEQQNUaTuAn + X+klYeUhXuUSTNkPSdkoYPIoX/ImXO8cVOcPR90TTuEobeo6h+0+iutAiehIkOlGjuFKkehChuw4eOZE + getNie5Ci+szjeA/r+lh4/pm6fs6uukXoc8lwe4UyO0T5/oa7/wHt+IPpOYUoe8Fj+UAiuIGjukGguYJ + eugXgfMNcuUIZ9oMZ9UXct8hhvIXhO4fi/UUf+oAa9YHe+QPi/MGhewLi/IKh+4JhOsQguoVhewSfuUW + g+oai/ETie0MiesLh+wNceMSVdsdVeIeVeMfVuQhVuQiVuQiVOMiVOMiVOMjVOMlVeQnV+YoVuYmVOUk + UuMhT+EfTd8tCYms8ZK2+5S4/Y+z95G195S4+ZK195G19ZO8+JTA+5S/+5fB+5rA+52//J6//JzA+5nA + /I64/l+P5DlxzkOE5E+c90if9EKd9jeT9h5/5w503gZv2Qpw2A102xyD7CSE9Bdn4R1b4SFU5Aw70BZJ + 3iNe7iFf7B5b5xJQ2xlc5x1g6yVe6SRX4hdL1RpR2iZh5iZl5yRi5hJN1w9H1Shg7Clf7Cdd6x1T4g9G + 2BNN2yls5zuG7T6K7D+K60aQ6kWP4UmT6EGH7TZ46EOB7kuK8j2J6TWS40i88V/m/l7i/Dmy5xWaziPB + 7BzY+Qrt/g/z/gCq2RKf5yGq+wyQ5wCC3QSG5gB84QZ86BiM+hSH9hCA7gt24wlz4BOD8RKG9xqJ+RB8 + 6QBs2Ap+6ReQ+w2J9A6K9QaD7QR85ABs1gFw2gBu1wd34A+E6wyF6waH6gaF7Apv5BRX3x9U5R1U4x1U + 4xxV5B5W5SBY5iNZ5iFX5CBV4yFW4yBW4yFW4yBU4R9T3x1R3hxP3i0Jn8Hyp8r6p8r6ocL0osT3pcb6 + pMX6psf7pMX5mr3zmb72l773l8D2mcH1msL1msL2mcL5jbf7XIzaOHPFP4XaSZzwR6T2PZ/1LJDsGofm + EIrqEZLxDI3pC4fkGI7rHYTpEmbZGlvbG07ZDTfJH0nbJlbmJlrpIl7oH2DoHGDoGl/mG1/kH2LiIWHh + ImDhJV/kKF/pJlzoF03cDEXSJ2LtJ2PuHlrnHlnpHVfnFlLdJWPiP4DyR4v1QojvRInpSYznSo3sQoHt + NnXmOXfnRIjxPoroOpXlT8nzYfT8Vdj2PKPmKJncGqvgKN38Eu78Duf8AqPbDZDbJrX6EJ/jAHzPBX7g + CH/lDYDlDoPoC4frC4jtCIfnBoPkDYPpE4TuG4vyDH7hAG/RB37hFpDyEZDxCoztB4vsBYnpDI/vDY/v + DIztDYrrDorrDInpCIbmDofpFXTmFVbbH1bhHVXgHVfhG1fhGljiGljiGlnjGFjhGFbgGlfiGlfiGlbi + GlXhGVTfGVLfGFHfLQmhxfKozPmlx/ebve6Zu+2au+6XuOyXt++Wt++Qs+uRtvKRufeTvvqWwvqZxfua + w/yZwvyQuf1jkOVCedNHieVQnPdMof5Enfwuh+8dfegdhvQij/wbifQWgesgg+8leu8eYuQlWOYjSeEY + NtYrSOkwUfEsUu8jUukgVOsfVesgV+wfV+kfV+UhWOMkVuMpVekxVfIwU/MhR+YUPdosWfEtXvMkVu0n + WvQpXfYiVukuY+lJgPlOiPtEgfJFg+1IiOxKie9FgPE9dew8d+xGh/Q6heQ/m+lb1/ti8/1MxfU6kuEv + keIbpOIx3f4d7f0V4f4HoeERiuAzv/kfvPYFk+kVkPUilPodjvAekvIYlfQTl/UOl/EMlO4NjesOhOcX + iO4PfOQBbdYIduAUhO4Vh/EShu8UiPIVifYTiPQThvMVhfMVhPIXgvEYgfAXf+8egPMic+8fWeInWeck + WecjWOYiWOYhWOYfV+UeV+YeVuUeVeQfVeUhVOYiU+YiUuUjUeQiT+UiTuMtCaPJ/avR/anO/J/E+Ju/ + 9Zi89JG074yw7I2w7oqw8Iev8oWu9ISw9Ye19oy6+ZO9/Ze//Yiw/l+I6ERy2kR65kSC7kCD8Dh87yJi + 3RJO0RhT2xpV4BRT2xBP1hZR2hdL3BQ61hYx1xsu3B0q3R0t3hgv3RYy2hI22RI62hM72xI82RE81xM+ + 1RY91Rg71Bo31xwy2x8w3R4v3Rww3Bwz2hs32hMw1xc33Rk73xM30yBI1ztn50Jw7Dtt5jpx4Tl33Tx5 + 4D1x5jpq5jlr5T946CVxzTuZ5Gjd/WDg+T+l6DJ51yN61wiL0R/G+iHl/RLR/AGN2QR10SKq8iK8/AaN + 5AZ53xWE6xF+4BCA4Q2E4wyK5wyS6wqU7AuQ6wuJ6RGI7RB/6Qdz3wZx3wl04ghw4AVq3ARn2QRk2AFj + 2gJj2gJh2gRf2gNe2QNc2gNb2gZa2g5Z3BhW3xxW4RxW4htX4xtX5BxY5B1Y5h1Y5SBY5yNa6CRZ6SZZ + 6idX6ShW6ChT5ydR5idQ5S0JirLrlr7zmcD2lr71mL74mL76krf0jrTzi7Lzha3xfabvc57qa5niaZne + bJrfcp3ldp7rcZj1U3njPGfZPW3jO27oPG/sOmzuJFDbFjfNHzPVIjHZHDHWGjHVGzTYHDLbHCvdGyTd + ISjkJS3pGCbdEyrZGDngIUvpJ1XuJlXsJFTpIFPlIlbmKFjpK1ToJUXjHTTbGSrXHy3dKDPmIC3cIC3c + GCbXGyzbHjLcFy/TJkTXQ2fqR2/uO2XmN2riNXHZN3PcPW3mP2noPWrlOXHfJHTLSKzneej9ZNL1P5Ll + OnLeJXLZAH7KGb/4Keb9DML0AIPUAHHLEpvrILz9C5LlAW/WEHvkEnjfEXfdC3feCXzfB4PhCYroC4zu + Do7xCo3tC43sDo7sDYvrD4zuFY7wFYrwEYTsEYPrD33pEHvoEXrpEHjoD3XoD3ToDnPnDXHnEHDoFG3p + FGzoE2roEWnmDmblDWTjDGLiDWHhDV/gDV3fEF3gEFzgEVrfElneEVXbEFTaD1PZLQmFsOmPufOPufWL + tO+MtfCPuPONtvGLtfGQuPeTufuPt/yKtPyEsfZ8rO91pehvneRrl+dkj+tJc9w6Ztg8aeQ3aOY8a+xB + avQsTuEdL9EtLeAxJ+EsKN4oKt4mKuAmK+InKuYlJuYgJuMcKOAYLt4bP+MgU+slYO4hYugcXuIZXeAa + Y+MZY+MdY+MmZOgpXuojS+QZONsVLdcXKNgbKtkeKtsYJdkfLOAjMuEcMNUoRNdAY+hGbPBAZ+07beY2 + cds4c9w/cOlDb+xAbugzbdcviNhcy/F/7P1evfE5ft0+b+Eqd+ACidAs1f4u5P0FsekAe9ACcc4IkuIg + vPwSm+wBb9cUeOQZeOMbd+QXduURduMMd+EJeeQLf+0MhvEEiukGlOoJmu4CkeYBjuMHleoKlewIkesM + lO4Nk+4Nku8Oke8PkO8Qj+8Qj+4Rj+8SjvASj/IVkfgUkPgTkPgSjvYTjfURi/QQifISifQOg+8MgOwN + ge0Of+wOfewMeuoKeOcJduYJdOUtCYy07ZO79JO79I+38JG58pG68o227Y627pK49JO395S4+pC3+Y64 + +Iy694q694q4+Ii1+nOg9lF/4z5w3jpv4zds5Tpr6Tlk6SVG1xsvzycq3Sgk3yYl3ics4Sks4yYp4iUm + 4yYo5CIp4hkp2hUy2BlF3ydg7yJk6B5m5Rlh3hhj3hVm4BFk3RJi3Bpk4SRl6iRZ6hlD3hIz1xYv2Bgr + 1yAw3x0r3yMx5SI05Bsz2ChI2j9m50Zw70Jt8Dpt5jZz3Tl23z1w5j5u5z5y5Cttzzic4mLd+HLe/Uyf + 6zBu0Txt3yh83ROm4Tjl/Dbf/gSU3AZ21wtu1wF91Rut8hqb7gVu2BZ04xx05Bty4htx5Rtz5xh46RZ6 + 6hB67AZ36QiD6guP7AuR6weN6AWN6AmV7wqY8QOU7QGO5wCN5QGR6QST7ASP6QOM5QWP5wqT6w2U7AuT + 7AiS6wWS6gSR6QSR6QeS6wiT7QeS7AeQ6wqT7guT7weP7AaO6wiP7AqS8AuS8gmR8AeO7S0Jhq/qkLj0 + kbn1jbTwj7fykbnzjrbvj7fxlbrzlLbxkrTxkrb1k7r3kr3zjbrwirjvh7j2gLL+XpXvQn7iPHznPX3t + RH72PnHyJlDcGjrSGzHZGCrZFirYGizaGy3dHCncHifcIynhIy3iGyzcFTHXG0TfLWDyJV7pJ2PrJl/p + J2DrImLsHF/pGVvkIF3nLGPzKVfxFTveDCrUFC3ZFyrbITDiHiviIC/lHTLiFjLXJUrbPGvqQXLuPGzq + PHHoOnTgOnXfP3PpOnDmNHLeK3rUSr7wcff+ZdH5QIjkN2/VOHHbI4bbJcj1Nub+HrH3AWvTFmfjIWzr + DHXfIKH0IJXzCGfbEWrfGG/iG3DkHXHoHHLqGHTmFXbmDXXnCXboCHnmDIDpE4rxE431DIzyCY3wBo/x + ApDwAI7rAI/pAJLsApXuAZLsAJHpBZTrCJbsBpPoA5HmApPoAZXpAZXpBZftBZftBZftBJbsA5TrApPr + ApPrA5XtBJbuApXuAZTtAJTtAJPtAJPtLQl/p+yMtPiPt/qLs/aMtPaOt/eLtPOLs/KUufaYuvSRs+2Q + s/GVufWVvPCOt+qJtuqMvfZ/svtak+lCg+E/hutBiPRFifpBfPcvYecmUuInU+sjTuoeSOQbQuAXOtwV + M9gVLdYXKdYYK9YVK9MQLtEbQt4tWO8dSd8aRNsZPdoYONgZPN0YPd0SOdUbQdwxU/EzUvUcN+ASJ9Ue + L+AeK98jL+QfKeIeLOMaLt4TL9MhRtc4aOY+cOs+b+pFduxAceI6a9xBcuo3b+Iqb9U5kOdb1fdr9PxI + reUubM06cdgwdNYqmuA35fwz4fsEfN0AP8MQQdQfT+IQYt8plvE1mPoXa+gRY90Va+EWbOMZb+cccugb + deYZd+YVeOcSeegPeucQfOYOfugNgekMhewLiu8Lj/IHkfACkO4AkuwBle4El/ADl+0BleoAkuYBk+YD + lOgDlukBl+wCl+4Dl+4Dl+4BlewAkusAkuoAkusAkOgAjugAkOoAkusAkuwAkewAku4AlO8AlfAtCXSb + 73ee8nad8XSb7nWd7XOb6nOc6n+o84+1/JO5+ZO395W5+Zm+/JnA+JS98o+78Y28+H2w+lmT6kWH5kCK + 8DiD7y546ilr6CZe5Sdd6yNe6yNg7SNh7SNd7CFZ6yNV6yVQ6yNL6SBI5xpF4RI/2RtO4yZY7g071Aow + zhIt1BYo1hko2Roq2hMl0RMozyg95TJJ8x804BUn1iEv4h8q3yYt5iIo5iQt6iMx5x4z3itM40Vx9EZ2 + 8jtr6Edy7Uxx7Uhs6Up18zpw6CZu1T+d8Gno/V3n+jWV4Ddr1T5y3jOA2ULB9z74/i3b/Ahv2wY70hs4 + 3iA+4AZFzRl25TaQ/iZ09BVl5RVr5hFq5RRq6Rpv6yJ27CV67SB67Rh36hV76BB95Qx74gx+5A2C6AyH + 7A2M7w+S8xCW9w6Z9weU8gKQ7AGS6wSV7QWX7gWW7QOV7AGW7QCX7gCV7QCU7ACT7AGV7gOW8ASW8QWW + 8QqZ9AqX9QWS8QOR7wOS8AKU8gKW9AGV8wCT8S0JW4LlXYTnXoXna5LydJ35ZY/qV4DaZI3jf6n2krr8 + lLr9j7X5hqvtiKzqkrnzlr/5jbn5gLL8XpbuP4HiM33mKHTjHmjcGFrZF1DaHVfjG1riG17jHGLkGWDj + GV7jH2HpI2LtJGHvIF3sFVThFlbiLnH3PX77HFbjGEjfHT/gGzPbHC7aJzbiHzDWCR7AESrLKELkITjf + EibQGivYHCfZJCzhICbiIyjmICniFybUIDvWM1fgPmjoP2voN1zaQ1vePlbcO1/kMmTgJm7YTa3zcOz8 + QMXiKYDSRnDjLl/OI3XFWNz9OvT7KdT7CGjZFEHdLEDqKEDlBDnCDGLWK4H7GWHlBlHTFWnoGW7tH3D0 + H23vHmbjGGDbGWLfGmrmHnnrFXvlDXXeEXniFoDpF4PsEYDpD4DnDYHnCXvhCYHmEI3xFZT4DpDyBITl + AH/iB4vtCpf1ApXtAJPpAJHpBJPsCZjwDZfyC5PtA4njAYDbBoTgD5HvE5bzDpHuCI3qBIvrB43sC5Py + LQlQcuk6YNFOf99omvVjju1UfN5SfNhfjeFzofCDrPaEq/V7o+yEq++Gru59puWHsPGJtvqEtv1Wj+ov + bdslaeAYXNwOTtMWTdcfTdofTtseVd8lYeogX+kWVuIPVeAVXOYfYeoWVN4RTNgcU+ASUtwbZecyhPwd + ePAKY9wSY+IRXOEaZ+kca+sPXt4YYt4ucOolX+wQQdYTOtcXOdkYNdYbN9kVLtkTKdkLINAFGscbMtI0 + TN46WOE9X+I8V9xCUdw3SdUuTtghXdQagdRGxfNu6v46pOAeXs80V9wjZM8qoddQ6/045f4zyPwSZtcX + P9UlO+AsQecPPNMVV+M3f/0eZeYAPMcLSNQXUN4jWOsjWekcWOMeXOUiYOsVVd4dZOYib+sSYd4TY+Ea + buwYcO0befMKb+UFceENeuIHf+QIhecLgeUDdt4LeeUage4NdOkFeOQJmfcAlOsBmu8Hm/AUnfYTku4E + eNgKfd0UhuMKhN4DgdsMjugQmvUChuUAfNwIk+4Lle8tCWKE/z1l2FaM6XGp/WCK7FV14F6E5XKg9YKx + /4Wy/YCs93Ge6Ye0/JS//4Ww84y2+I+9/Xap+T932iFf0iNk5hlZ5g5I2xtP4i9c7zdi9ChU5jJj9Sda + 8BdO5hFP4hda5yVl7xxY4RFH0hxN2xhU3RVl4yOH+w+G7gB42Q2I6gyG5w+T7g+X8AKE4Q2G6SKN+BRu + 6QhU2CFf6ylg7SRa5idb6SJW6iBR7BdF4xI72SpN5UNh8EZl7Uhp7URh5UNX4EZd5jti5yhy3yys7FPr + +VXN/Ct54RlHyyFD0S5+40zd+1P0+y7C9Syi7x1j2RhA0iA62SpD5BY72BpN5jx9/SZs6gA4yRA2zxYz + 0R041xw92xVD2x5R5iZY7RhL3x1V4ilm7R1d4xlc5Bdg5wlY3RNq6gZl3whx5RSG8RGH7RWL8BOI7Qh5 + 4gx45xh/8wtl3QJm1g2a+QGT6gKd8AGY6g+b9BCQ7QFw1A984CSZ+BqX8QiL5BGX8Ref/AOF6QJ93g2X + 8Q+b8i0JX4j1PWrTSn7cZ5z1a5P4Y4DuW37mYozpcJrve6fyhbL6eqrzfK30f6zvd6Dje6Xme6fvaJjv + OnHVIl/QJGXkIGHoGVfkGFXmFE7jE0jfFELcJFHsI1HuIFLuH1jsIF/sJmbtG1rfEk7WGlTfEljeFG3o + GYX2An/lAH3bDpLvDI3rAIfiDZnyFZz4D47vEYTvC3DlBV3ZFWHiH2XnGmLgIGboHmXsIGbyGlvrEU3e + IljhM2XlMWPfMmPeN2LgP2HjTnTzN3DnK3/hRMT5Wej9OqfrJGzZIlLRJE/XQ5bvYev9Rtn1DorRHoLm + HF7hEz7WGTjYI0DiEDrTF0/hPH79JGjoAzrNH0HgHjTbIDPeHjXeFTbaETnYHEHeIEfhLmPzLm/2GWDi + El3eFmXkFGrkHXjwFHPoEXTnEHXlAWrXBW/cFoHtGorzE4XtDH/oBHTbBn3eEpr2CJrxBKDyAJrrB531 + D537B4frDobsDYfpA3rZBX3cC4fqCoPpCYHqEIzyD5DwEpfxLQlZi+xGeNlPgt9llPJskfNjguZXedtY + ftdvkdqNruWcv/OWvPiPuPWKseyEqeSIreiMtPKFtPhomu5QheY/d+MmYNQaUsocVtMYVNkXUd4VSN0d + TeYWR+EUR94UTd0UUtodXOAdXd8aWd4WVuAFT9YMZeQeh/kWj/QIiusMje0CguMIj+0RmvgJju4HhukU + ifMagvYUceoXaeYcaOUYZt4baeEVZOIYY+cSWN8MTNMeWdguZNouaNs4eOs9ee4+cOg5c+Qmc9U3nO5g + 4vpZ4P4hhNIZWsUkWM80bOJgvf1j6/woqOUAWLcuevQfWewNOtoUMtkeO98NN9AWT987ff0jaOgANcgZ + N9oeMN4iLuQmM+kfNuQVMdoXMNccOdokUechX+sYXeMaY+cfce8edvEbePAPbuEFZ9gKbN0EZ9QGbdkU + f+gUhuwHf+IDgOEMkPARm/ULmO4HnvABou4AnOoAme8FlvIChekAe+MAfuIAedoEfd8GguUAddsBeOAG + g+oAft4Agt4tCVyS7GKW8Guc+HGe92+Y7GqP3myU332k7KLE+b/d/q/Q+5W++Ye19Yaz9YGt8X2p74Gv + 93Kn9FqS6VuS8Gae+V6U80Z64i1k0iBczydm4SVj6Shk8CFb6SNg6yNk6B1g3iBk3iRo4iBi4xxe5RVd + 5A5i4xd17h6J9hyO9hqM9ByP8xyS9xmQ9xqP9R2O9huB8hNu5hBj3xpj4x9m4x1m3x1o4Bhj4Bxl5Rxf + 4x5b3zlw606B80iD8kOJ9kCF80SC8Td+4zCM21XF+m3t/U/N9jOO3zx74Dp44EuX6HLc/Fvh+B6V1QVR + vEaD/SNW8Aw12hIt2B423w0y0BhJ3z56/CVl5wAyxhk42SI14iIv5CEx5SA65xo44ho03CE84Ro/2hJE + 1RZP3h1b6SJo8yNz+iF49x579Bh87hV+6RJ/5A+A4RCF4w2H5AiF4gaG5gqQ8A6a8wec7QKd6ACh6QGj + 7ASd7QaX7gqT8g+U9QmU8AWW7wuc9Qya9wiT8wqS8wmV9AiX8Aia8C0JX5XuYpXubJjxa5Xpcpvnh7Ht + jbnyiLXtj7fol7rpibHmd6bocaPqd6jwdqbvdaPsf6z2a5vsPW/EKVepQGy4cpvkm8H+kbv2WorgLGTE + H2PWHWflGWfnFWPiGmrjFWfdGGjdHWngGmPhHmfsHWnvD2TmBGHbBGrbBW/bBG/bCHXeCHLaBnHYDHjg + E3njDWnbCVzXFmLhImjnH2ThGmPbGmXdFmXgF2blF2LiF1/dLW/lRoTwRYnxPIbuP4fwSIvzN4beMpzW + XNb5bev9Sb7pN5DbQIXfQ5HkXL7wd+3+WNv3Go/MA1S9Q3/9J1jxFDngFi3bHjHgEC/VHEjmP3b9JF/m + ADDFFzvaHzjfHjPgGjTgGDviGD3jGjvhHj3iH0LhHEbfGEbfEkLbEEXdFVPnGF3rGWvvG3XwF33sF4bu + E4npB4XiA4XgA4jjA4nnBIvpBpPrBp7sAqHlAJ/gAJzfAJnjAJbmBJjrDaD1BaHxAKDqAJ7oAJvpBaDw + DaH3CZ7xA5rnAJznLQlhle1unfVnj+RylueNtPeOufOEsOqDsOl+q+SBq+eQvPiKufh6qex4o+KHruyU + tfCOreOYteqlvu6tw+q7zO3N3Pbg7/rj9vzH4PuLtO41dtMPYdEVbuMUcegZd+waeeskfvEkee0UZuAO + YeELY+ILa+QNd+cPgOYMguQKguQCft4Vj+cQjeIDftYMgNsTfeMQb98TauAgcOgpeO4neeoedeQSbt8K + ZtsOaNwaceIqfuU6iug9i+k7huZDietEhuo9j99KuuZv7vl28PtQv+k6k9c6iNRQrelx5Ptx7PpNyu8r + nNQed9NBivsWT9sMNtIZNNsjOOMPLtUXQuM7cvskY+gKPtInUOclSOUjROQbQN8NPNcNPNcVPt0eQeEa + QN0dQt4hReEdQtwcQdweRt8cSN0bUN8fYOkXZuUVc+ggifkmmvoemvcZm/UcovYXnvIGk+UDmeQXtfoa + vfkXuPUauPYctvkTqvIJnuUHoOEOqucPqOUJn9wKnN8OnOQKneIJpeQJreotCV+Q6m+e8nKY55e4+Zq/ + /HOb43ij64Sx92WU3VqJ1Xaj6pG8+pS4846s4anC8M7i/tTh/OTq/fv9//v4+fr09fz4+PP0+vL2/fD6 + /b7a+XCn9Sp33xt55xV97glw4wdt4RR36xl16hJs5Q5s6ARr4wZ86BKT9hah+Q6g8Qug8wqk9iTJ/xrH + +QOt7Aur7xin+RKR8Qx+5w915BJz4xV34hl95hR65Qlw3Qtw3B+C6TWW8T2a7ECV6EaT7EmR7kyR8FGm + 8F3S9HDy/G3k/lO/7D2d2UCe4GPR9Xn2/lvV6zyr10Ov6jym8kSl/yp78g5O2BI/2BU72wIqxQ0/2Dd4 + /ihx8AVH1hlJ3R1H4CJK5SJL5hpN4hhK3xpE3Bo/2B1A2yBD3SdF3jRO5ERc70pf7zpQ4S5J2ixQ4SNS + 4Q1K1w9Y4Btz7BqA7x+Q9S2l/iWk+AuT5QCO3waY5Aym6Ru49S7C/Sy49iip6i6o5z637lnQ+FTG8Tys + 4jqr5Sul4xum4CHB8hO86i0Ja5jwZ5HijbDypMT8gqbsZo3capXjaZbmXo7jVYrjXo/hhKjul7Xwl7Lm + s8v30+j8zdz04ej5+fr88vHz7e7x6vD40N/vxtjvzuP4qcn4ga30XZz2LoTmD3fgB3XjCnXoDG3jDmXd + EGfiDmrkBm/gCITqEJz0CaHvAZvjAaDrD7n5END8BMzvAsLsEcf5HML+EqL3B4XpCnnjEHTjDW/aHH7p + HoLwD3TiCGvWG3vhOpryTqr3W7H4YbD7VJ3zVp72XLT3Ydfybe/7Ztn5OqLQJo3CQavlbOL7dPH6V8Tr + S6LhSanwK6HjMar1NaP/GXnqIWzrImLpCEXMCU3UJHX3GWnnAETKDkTWHEffIknkIknjGkjaGkbVJUbX + K0bZPlXpRVzxRVrrUWLuYnH4aHP3WGLmTVfeTVvlR1zqMlDeGUHOCz7JCk3PEWDaFW/gFHXfE37jFInq + FY3mGpjnK6bwPa72QqjsTanqab71ecr4jt36h9L0esTzi9v/ddL7Tb7yQc34Jr7mLQlijeVymeajxvyj + xfSBqOVvmuRWhNBRgdNej+dXh+BtkuKVrOeiteWhs+G0yPPB1v2rv+HL2e7p8vzy+/3u+//A1vJ7nMdh + hbR8n9CUtuuQtvKCtfsoeMwNctQei/UahfcWcuoYZuMXY+EXaOUQceQSiu4WoPgLpfEAnOQAmeQAougL + yfYHxuUAtNYIu+oXt/cNle0BdNwNbuIedu8YcOUieu8fe/EQbuUJadsYd+Iwj+09m+tLpPBXq/ZHluY9 + iN9NqOls5v13+vxn2/hQuepBreRWxvR17f1s5fVPrOFSlelUqPonpuQksfEdp/cIgOAPduIZdOYYc+gq + iPMyk/wTbuUAQsQEPdEVP90hQuUmReYlR94sTN9AVuZWY/FVYe9UXe1TXelRW+FZYuJhbOdkbedob+lx + efVmb+5fa+5WZ+5EXegsT9wVQs8KP8wLR9MPUNQdZdxAj/lNnv1Hl+5PmehfpO1pqetpqOJztuWJzfWE + xet8uOKGxfN5ve9gseRdwvFSwu4tCWSQ4nWd5rTV+63L84Kl5H+p74q5+pHA95zB7aW857rI7dri9Ov1 + /Nro/77S+LbR/LLT/JW13H+gxI6y3LTd98Ly/J3V+nWw83Ou7IS68Iaz44vB+DGG1xeC4BiK8gl25BJx + 5CR27yBs6BRo4RFu4BF84xeO7Byb8Red8hGb9QSY7xTB+g/J9Qq37Rit8hma7xGA5RB04xZy5hdv4yB3 + 6xxz6Bhv6BNq5BFq4B556DSR8kWh9kSb7ECQ4UOS5DuO3la473ny/XLw+VLD6lW/9V3T/2Xk/HHu/WTY + 9Eqn3lOZ51Oo+ieg5Ciy9BSf8AOB3Ah43Q934Q133CWU7jOh+hyE8BFs5Rhj4xlY4xZK3hlD2StL3UBX + 5E5b5VRZ4lpb5V5d6Vtc5Flc3l5k4Whw6G126G966HR+63qC8WVw4V9s5WFz9E1j7DNO4CpK5ilO7CVK + 3zBT2Exy7FmC8l6K726Z93yr/nqu+Gig4G+w5YrQ+ozR+YHB7Hy55nKu4HCu33/D737G7y0JaZjocZvi + vdn6scr0fZ7mZYzjYI3ffqrhv9jy7vP/+Pr97fX35PH9uMvqi6jWiK3qfKr1YpzqOnzMJWvCQ43gXqju + TZbgRpHdWaPeWZzZUYfPa6n3M4/mFYbnDYXsCH3oFHztIn3yGXLoDGfeD2zgEW/dFHPdGnfeGnrhEnnm + AnTfAZXrAKbwBZjtEobrEnXjEGjeE2zgFnjmHYDsH3/tEm3fE2jfGWznFWnhGm/hL4XrNYvoN4fkQ4vp + OYjfO5rjadT/ee/9bOPyS7frRbHzXNz6aPb8YeX4UMLsTbHpV7HzPZ7pEoLRLqX7FovqC3vjF3zsI4X0 + B3PSF4vgIpHzCnDgEHTlJonyKoT1IXPuIWLhOWHkTmToUmDhTlfYWFrhV1niUVLcWlziaW/vdHr3c3zz + bnnsbHbncXzrWGfXTV7UWG7qXHX5SGfyL1PmJUjiK0veP1ngVGvsYXn0Y37xY4LsaYzua5bvYpblZaHn + c7X0brTuZq7mbbTpa6/icrLlj8z8lM/9LQllk+ZvmOOoyPqpxvl9pO9fj+tNft1FddRXf9V/neSzzvzL + 5/+ow/ttiNFTcshXfeRmlvpcm/4veu4TZN0YbOAaaNcmasphneSn2fvE7P7I5f+dw/84e9IOaMwMb9wG + adsOZ9wba+MaauQXauYWa+YXa+YXbOMWat0SadkPatwHbdsLiekSmvUSiu0Obd4QY9wcaeYZaeUQaOAV + b+USa+MRaOEYbeocbu4QZeAOZdsheOczifA5iu49ies3jOQym99f0/1x7P1Fv90fkso5q+xf4Pxo7/1M + xu8tltUsidU3juMvjucaiuYqnPwXgusLbdwPa+EQbOEGbtImlOwulfoRbeUOZ94Sat0XaeEdaOUxcPBT + ff5cfPxVcO1Sa+VPYuNKWuBGV95IV99OXORSX+hUX+dVXeRUXuNZYeRWX+RRXOJPXuVNYu1AWugtS9wj + QtYwTd1JYedRZuZSZ+VPY9xLYdVMZtRaeeBulfVlle5eledcmeVfoehxtfhvs/RoqutwsvFur+8tCWqV + 72mQ4pS19ajK/Xmm7FSJ41SH8Ux77kp141V94liC4mKN6lN+5E9751SA9kh28kd59FCL/DZ57B1m3Bxq + 2yBu2SRt0ihryz560nan7cvt/I6y9DRwzBVlzRxy5Bht5Blm3iFm3SBm3hxo4xZn5BRo5hJr4w1q3Ahq + 2Ahz3A1/5BqT8hCJ6ARx1wtq2BNp3hJl3hNk4RZp5Rhq5xlp5hhm5Blo5hlp5hNk3hZn3Cd35zmG8jyI + 8DiG6DWR4zmq5Gbj/G/w/DS02SCd0lHL9Gno/FvZ/Tqo6S6L2z+R7UCO8S+I6x2J6iqa/CCG7wxs3A5q + 4Adl2Qh02Syh9CmU9Qpm4RNo4iBw5xtm3x1i4DRs7FV9+16A+Vl67Ft97Ft88FV1709u60dk5UNd4UVb + 40xd6FNf7Fdh7VZe62Bl81xk8lRf7lBf70RZ6zFL4ShE2zVR4Uxk609l6VFm6FNo6FVr505o3ktq3Vd8 + 6WKP9WSY91yX8ViY7F6h8GOp9Wev+Gy1+2Su8i0JaJXzcZvygKTrosb7jLv4YJXkUoHjUnrvUXnwTnvr + SHjoRnroRHnmTX7vTn3zR3TtUX34RHjzLmrjK3LpJHPpG2/kI3jpGG3bE2PPTJPyfLn+SIXXI2zSF2fY + HmviImniLWzhN3HhMm7eK2zfJm7hJ3bpKILwIYbtE4fmCo7oD5zzFaH5B5DpAYLfDojqFojvDXfkC2vd + EWjfGGfhIWjkJWnlKGvlKW3jKm3hL3LhPXvoSobwTYvyQYnnOpfdTcPqbfL9X+b+JKzTMrvjXeH6auj/ + TcL3MZXjOovjSI/xQontM4bnIYbiN5/7K4vtEGvSFG7bC2vWE4ThL6z8GY3sAWbaFHHnGXHjG23jHWji + MnDsUX73XYL0XX7oYILlXoXqXIbvXYXxWn7vVnjsVXTqVW/oTmPgSVnYVGDiU1/kU1/nU2LsS1/uPVXp + L0vkKEjjL03jQFjoTmHvS1/rS2DpUWntS2blRWbfUXnrYI76ZJj9Xpj3VpXtUpXnVpzpX6fxZa/4ZrD3 + LQlklPF1oflnjduApeqUwPt8rO1XgNRRdNtTfOpIeuxHfe1BeeNHfeVTgutRfehQdupUevNCbO4dT9YY + Vt4hau4WZuMSZdkhddw/kOZltP4sfdwTY8ckcd8rc+o0c+o+c+hNeutWf+xSfOhMe+dJfeVTj/FaovtM + pfcxnuwWmuYHnOkEnOgCn+sEoPAInvMQnPYTkfEKd94RaNklbOAva+E/cupLeu9Ofu9OfOlOeuRYgOhn + jfRnlfZRjuRIm9dh0ut29vtT2fomsNZH1PJn8PtTz/cznuUzi9tIjeRPi+dSjOhQle44j+FSqvtMmvMy + etg0fuInedwzmehBsvsbhd8GZtEWc+ISbtwXbuEWauIkbeZCee9YgfBeguhmh+Zhg+JghOJoiulsjOxv + ju92k/R6k/Z1jPBtgulleeRZbdpSaN1RauZBX+IqTdgeRtkbRt0eQdcwR9pIXuxMYOxIXudKZOZHZeJM + beJhhvRmkPdhkPFjk+9jme5hnOxem+lcm+ZgoutnqvItCWaX72+e9Hqi9nCX5XSh6Yq7+4Wx/GuV7lqE + 5U5630p630h95EuC6kuC7kh97kp38U519090/SpN3QszwR1N0zRs5EOE6mWq+WOs9Sl3yh5w0SZ04Dl9 + 60qB8liD9WCB8WB/715+7l9+71l56lh44XiW84uz/X+z+2at80mo8SOZ5Q+d6gOc6wCZ6QGZ7A+a9BuS + 8xZ24C5150p99VR5819891t38GF88WR+72B45muB7nyT/Hua+mqa7meu5oPn+nzx/UbE5T/E7Fzn+2Po + /jao4yuI3EmR61yT7GaT7nCb9muf9lSX5XS3/mie+FqI6liF7EZ65G+09W6+/T2I6i9y5C1y6iNt5B1r + 6Blp7SFr7jdw8Ex48l6E9GyK83eP9H2R83+R8n+R84CS84KU9IOV9YWW9YSY9oee/YKb/XKR+GCG9D5r + 4htPzRJN0hJR2xBI0hxI0CpR1zZc4EFn5Upw6FJ56l2D7mSL72iR8GmU7meV7GWX62GZ612a61ua61ib + 61Wa6i0Japnua5rucp3zcp7ybJ3tYpbkWo7ia5zyia/8ka33fJztXYjgSHrVQHrYQ37gSn/kT3vkU3Li + OFDEP1TIZn7scZT2Y5b1QILoGGbRIHHZMn3iPX/jTYHnWYLpX4HoX37nWXzpVHrsV3vzWXvzXXjofZHy + lqn8lq35jK73fa37Yaf6NpnwG5LuGJTyGY7yJo32Ooz8O3fwSG7tU2rsW2jsYmvwXmbrY2zuZW/uX2vk + aHfteYz7d4/za4/lfbbtovb9g+j6P7DSUMnzce38Sr7rJ4fYMXrdT4XqZ4/ub47uc5Dwa5DrVobadqb8 + ZIjtUG3bUGjaUGzfgan2d6bySXDcTGfkRGLoJ0zUI1HdF0/gF0vgIkrcNlTfTmboZXfycHntdXjod3rq + eHvreXzseHzsdXrpcnnlbnrkdIfudo/1aoz0Xoz0RoDsLHDfJXLjJXrvHnPoGmzfH27hKHXkOYLuS5D4 + V5n6Wpn2WZPuWpTsXJfsWpjsV5nuUJnvRZftPJPrM5HoLo7mLQlql+xtmu9rme5smvBunvVjlO9Pg99F + d9RXgdp0luaCovCMrvmQs/iTve+ZxO2XxPGRvPeJrPl4lfNkfeZJYtgoS8gdTcgmZOIlcfArdu5Cg+xN + heVWg+VagudcgeZbgehUgOxOf/FNfvVNevRSdexngut8kvCFme6HnfCFnvZ1nPlOkPExh+0nfesbaN8h + YN44Zes+W+RIVN9KTdlPT91TU+JOTt9RUuNTVuNNVNtVYuJme/BmgeVrkeGXzPun8vt30uxYv9x34/ly + 3P80ldwlcdU7cuVUfetphuxtg+htguplgOdUedt0m/1ZeOxEXNlAVtRPZOKCo/xrkOZDWcxSWuBSWec+ + SdowQ9odOtsbOdorP908SuBMVuNYXeRhYuRmZeZpZuhqaOxtau5sau5qa+xnaeljauVgbuVngPFhhfNa + ivRJifEwfOMje+Iff+cZgOgah+4Tg+gUguUYguMfhuQnieYujOcyjec4kOk6keg3kekzkOorj+oijuoZ + jeoRjOoOi+ktCWuV7nSg9W6c7G6c7HKb9GmR8GKK6F+I5mCM6GmZ8XWh9oWp84ip8oWn6YKm4X6m43yk + 7n2g8nSQ7Wh8819x709m2TFRzRxJyyhh4ER/9k6D7lWE6FeA6Vh+6lqB6VqC6laB6lJ/61N+8VR99VF2 + 7VFz41Rz3Vl22Fx32Vx021Nx3EFx2yxq1x1a0BFExxtBzDdN3kFL3k9R4VNR4VBS4lFU6ExO5VBQ6lNT + 6k5S4ldh6Wd79GOD43Of3qfi/Z7m+XPJ3YHi9Iru/VKt5y171Dlz4kx18GB+8HCG7G+B522A62Z/7FV3 + 4neY/Vpw8Elb40BT2lNp7IGm/V2I3DxXyVJa4Fpb6Fha6z5I4CY72yg83z9L6VBY71Vd6VJY4FFW31JW + 41RX5VZZ6Flb6lpc6lpd6Vld5ldf41Zm4mN7816D9FWI9UqK9TJ/6CF74R+A5hd/5Q574g+B5hGE6Q6D + 5wqC4wqC4g6E5RSI6RaI5xWF5RWG5hSG5hCG5g2I6AmK6gaL6wWM7C0JapLpdZ/yc6DrcZ/od53tdpbs + eJjwh6n7eaX3WI3nU4fnT3vkUHrkTnriRnPdRnTfTnvpS27pMknOMj3JTVHVcXXpi5b9Y3nkLE69SHHf + WoPvWIHtV33sWXvrXX/rX4DqX3/oWXvkWXroXn3wVnboUHPgVnjiYoXobo7wc470b4/zYJH1SorzOXjt + LGLjNFvkSl/sSFLfTlHaTlHZTVTdT1XjRk3gSE7jTlDkTU/dVV7jYnfrY4nde7Hgq+z9our5hdXmmfP8 + hN76N4bKL3LVQnXqT3XvY3/ucITobYLna4HsYX7rUXXfdJT9V2bpSlbfQFPUUm3nfqX9VYHaOVjIUF/e + UFrgT1niOkjXJj3SJDzUNkbeSFXpUF3mTlveTFnfTVnjTFjjS1fiTlfjUVnlUVrjUFriUF3fVWfmY333 + XoL1VIbzS4n0NX/oJHfhIXvmInzoInroHnvoGHzoFn7qE4HrEoHrEYPrE4TtEYTqEILnE4PoF4brG4vu + GovtFYjrEofqEIfqLQl8pe6CrfZ+rfRwnuSFqu6evvt/pvZTg+pPgehShupPgeZVgexkjvdtlfhii+pZ + heJhju9kj/pHbecjQc8oPdwqOtYqOMJseeyXp/5+lOlriO5jhe1ri/FpiOxxj/dohfJgfetgf+9aeupa + fOdjhOttj+uMrPqOrvuVsfqgtf2Ys/94sP9Qnv4zh/YgbeU+det1kP1pdOxhZdxYWNBnZuJobOxaautM + XuJgY+xybfNkaeVjed91oOKOzuey/P6g7Pii6vqx9P18uu82ddIycOE6cehId+thg+1whud0i/BtifVf + gehnjeiBpP5kfPFPY91Tb9d1lfGKqf5ifOZVZ95tevJibe1SWuJPW+JKX+BAVNs3RtlIVOpeafRUYOFT + YtxicehjdOxYaONWZN9icOtndfFea+tTYeNSYuhXbvBXd/BVfu9VifNOi/E9f+ouc+U4e+1Hifcwducg + bd40gvM9ivs6hvYrd+Qwe+c6iPIxhesid9wofN8sf+IZac8gcdoxhvE2jvktCX6q8Iay+HSg54u29aTJ + /n6i51WA2kR34FWI8WOT9U972muR72mM5mKD2mqL3mCH022W5m2W9zxj1yZL0EJj9Ehk9DlT2UZg1WF+ + 15Cq84yh8W+E13iN53uR9G2A8Flq5FVl411q6F5s5Gd453aJ7nyU7I6o8oqk65au8J+y842l61uM4zN4 + 4CFr4Rhe3jxr6W+B+2lt7WFj3F1d0nFz5HZ/715y4UJZzFxi4Xdy9mlu6mmA54uz86je9bH1+qXz+avz + /ank/XOm5T5u0jpq4z9y6Dxv21J63niV8n6Y+WyH8WyM7Xmf8X2d92t+8Vpp4WJ53ICe9X6W+Fps31tr + 42p38ltn6FZj51dn6VJq5lt29EVb5zlL2l1u8VBh2F9v3XSC63WE7XKD7mV44WZ55HiL+XSF+1tp50xZ + 4U5d6E5i6E9o6lV08E5z7jhe3x1FzCZQ1EBu6iVW0xtQzzNq6Dps6jBg3ShX0ER06UN56S1q1iZlzz17 + 4k6L8j155j5+7Dt/7iVs3C0JirTykLn3kbbzmr33k7b3a5LjUHzbWInwap7/a5v4YIvicpXdl7Lytcr0 + t8v0o7/plLPnhKP0RGLOID64PFzbRWbtME/dNljdSnPmXoTopsT/epLZc4jhfJH4X3HoRlXYTFfhTVbf + Q03NUl3RdYHnjpvynqz2j53ql6bzn674iqL2Qm7eH1rdHV/mElLZLFzhZoD/fIr/dID3YGvjbHbqeoT2 + ZHLpRlPQXl7jdnD1ZW/haYnim8z7t/b9pfL6ofz9n/f+iMv5X5LbRm7ZSGzqQnDnPHLcVYXleZ73gpz9 + dor1d47vhqb1k6/6g5P2bXnfcIbZlbH4fJbuWW/YaHvrfo/9ZHbtOU7SN1HVQ2bkSmzuPVvoSWPuYXr4 + XHHnYm/idn7ufITycHrmYXDYZXjec4fxboHyXW3oU1/kTlnkR1XeTVzjYHP2ZXz9TmjuKEXPKknVR2j0 + LlHcKU/ZQ2nyRWbvOFTcNE7SU3HwZYn+SHPkLFnIQW/dWIX0QG7gPXDiR4LzR4X1LQl/rOl/qOSkxPmT + s+5xl+VrmfJVh+dLgOJZjPBdi+5qj+N0kMm2yPHs8/3q8f3m9/7d9P6xxPiXqv1shN89WL49VtI5Udwl + QtIwVd44W9dngeWHmvtrfehgceVmdPJZZOtETd1JUORSWudRWttkbN6Ah+qgpf6Rk/aLjvh/hvdZZ+g5 + UugmSesZReQWRt8lT987VuBDVt1IV+JRWuZlavJycvloZfFVTt1fUuRlW+VUZMxmlduX3Pud9/mK8vqL + +vt44fdXpNxJgNZJcOZJbO4/beM9c91KettcgN50i++EkvuFlfeLpfOhuPyHkfJ1feF6i+Gmv/mCmelX + bNhYaeBYaOVMYOYyS9glRNE0WeQmStkkRNtEXvNHYeZJX91VX99vcPF8fvpxdu9tdup3gvN0gPRmcetg + aulkbPRZYOtFTtc9SdFIWt5OaOpAYOgqT9soTN4xU+cqSt4pRto+WelGWetGVedDUd5WZu1dc/JXc+tN + a99LbOBIaeAzVtA5YdtBceo8cOctCV+Y42ue5KfK+qLB+nSd6l+R6kyA2FSG2GiR6GKB2nuT16y84dvi + 9ezr/ejn/eDt++H3/K/A9Gp6zIqe4r7U+pir52t64XKF5m2G1jZLuDk+xWlr/DVC0yg7yTpN2D9P205S + 61RR9UtM60ZP4ztN1E1n3mN/9TxP1SIvxycs1iMl2hol1RIjzgkdzAkd0g8e1REW0RcZ1iEg3Csq3DE0 + 0zU60ENE1EZF1kxK3UZO1ztezGSl5Yjo/W/p+3Dy/Hjy/VW95jB8xjVv1ERy70Bq7T1u5D1x2kJv0lF2 + 12N+42+D63KJ6Hmb6Ymk/Fph2Fpc22Ru45Ch/Gl55kxa3kpU5jQ+3yo33SQ53h883xw+4Ro94Rw64CE5 + 2ixA0z5N1ExV2lJX3Fda3V1g4l1g4l1g4mJk52Nl7Vxf6lJV5FNX50pR4DhF1CxC0yFB1RE81Qw93As/ + 3gs+2BhG2xY7zyI/0zJF20lX60xY6lNh7Exe4E5k4Exk30li3lJr60pl6kdn6j5l5zVg4S0JaJnZirPs + zOL70N35qL7upsT1udb5zeT50+f80+P54+/66/X28Pbz7u376uv83/H73PT+gZXNVWSzkqLh2+3/3+v6 + q7DiqbDY3+z/qr7yO1m8U3/zN3foMHzrKXToElPLGUXHKkbSIkLJJVbTPYPsNpLtLIrtG2ndJGLnJUjo + CyjNADO+FGPbJW3iMGXjO17wIzfeEiHOFijXCinNCkHOJmriJWzgL3PiL23lCkS9D1K1V7Hnd+38W+r6 + a/P8guv4SJvPNXTJRnjlQXHrNmXdSHbjZ5PtgaX1kK/8hKP2ZIXhZIveg7b5Yo/ZX3nTeIrni6TqpsT8 + c4/fQFi+TF7bU2HyPU7mLUfeHz/bIELkI0XoIDreLUHgSlfpS1XaY3DhfIvrf4zpgYvoho7tgIjxZ2/k + U1vSVV7UdH7meobsf43vgpb4WnbmJUzJDUHHIF7mNXr1LnjoNXjmRH3iV4XibY30aoTzUWnYSmTOborn + g6HxfJnpeZTpgJv2fZj7YoHsTHLZUXnfLQmBsO6QuO7M4/na5/2owOuXt+Wuze3A2vHU6vnp+f/q9/vr + 9+7w+fLu8/zp7vzd7Pi80+utvOqttvO2v+vS2+/p7v7l5fzg4vji7P3G3f1ah89kovo4gOkeauErcPYu + Z/QlTuEgP9QjTdkpaeMhct0cgOAfg+8ldPMuZ/QeRuUaPNomWuckaOcqa+IuaOAiWuIqYPQnVusELNAc + R+csZPUpY+gnXeUwaOcobe8QW9sNbM9Dv+5k9f1P6/tw9f2I4PlSkNBBcc9KdOFCcuBRguprlPOIpvWQ + p+6OoueTq/CIqveCrfCNw/xmmeFqjOVrheGWs/eiwvp1lN9ogd9kdepQXepMXe5CXOksS94eQNohQ94x + TOVBVOVXZOhveeyAi/GAjOl+iOOGjOmJjfB7f/Jnbe5ZYOJXYNx0f+WJlfOeqf6LmPFrfuo/WdQgRs8q + XOczdOslcd0sdNthmPOErv9/nvpnf+hXb9hmf+J0juN8luCFm+WEmOl/ku12iu9ofOpbc91ZddwtCZrF + /ISq3ajD6r7W+ZCx52OO0F2K0GaS13md3I2m3p2z4sHW99nq/9Ld/8bS8tDe89vp+Ovy/c7P6Le20ODf + 6PHw/N7d9+bs/sjW9qS/6pnE+mGV7hdJyQQwyhU41yI+3yA53iE+4ztt/DR78gA+ugJRxBZq6BhV7AAv + 0gAiwStR7lB4/xg71AAUvQEhzgAhywgz2RQ54Qok0Ehp/z1u/gY0xwAywAA5vwBSzhmI7R2l7DTM7Ff3 + /Vj0+3Tw/H7M+liM2kZy10Nu2j9v1HGg8pGz/X2T5niF13+I2XqI1I6l5KfK/pfC/IKu+mmL5kJevneX + 5n6f6HeV5Juz/XaF6kFL1FFf6Etj5jtZ4R4/0x8/0ztV5URa31dm4pik/ouX8l1pzVRcwl1h0V1g21BT + 2lNX4lZe60xV3ENLx29365qd/WVm1FJZ009e4jZP4B1E3AU7zBFU0kSC82SP+ll25lNl2FJf01Zm3I2g + /niO6FNoxlVmxVpozl9q2Vhi2lxp4niF+ZSk/i0Jh6zgj7Dgss73xuL+qc38e6jxXI3lVIXlVYHoUnfi + V3ngYYPibo3khaDspLv3us72ztr04OX25+Xy5+Hr8+309fL75+n54uv7w9P3p8HusND/U3vZG0jBHVHX + IFLcIU7ZFTzSDjXTEUfeDFvlHn/zP6X/RJ//MXX+BDrTBCzIIEvoOm38IFHnEDLUHDbhFi/dECnVGCzZ + EB7JGDPXHlfvJXX2K4z1GIPoBIHaFanpO9v5UfP7VfL6Y+/6gO7/ecH9VojoRHLlSHfrPG7RU4HZgaT1 + nbX5nK32qbX+rbj1kZ/ilK3wjbP6T3fMb5HrgZ/0udr9mbrug6DloLX7eobpTFHUV2HlTmThPVnfIkDV + Iz/aP1nrRlvlSFbWYGvfeonshZjumKb0oaz9hpD2YGjiUlneU17nVF/kT1nSeYL0n6P9aW7YTVfRRlzd + K1DaE0fXHFfmOHX5PnDsVHLpU2TZUlvVWWDcVmTeW3DidY7wj6j0nLP2mKn6fIv1Y3DpWmjiYXHla33p + LQlunNuGsu2YvfGfw/Kfxfl+p/JOetpIduFUhPJQgu5Uh/ZThfVJeeRKeddVfcx2l9bC2Pbm8v3s8v3t + 6/fp4/Ps6Pnl6Pvd4/jq9v+3y/hMZ8osWtQlduohfOYad+EwjfczdPMXP9cHM8wEQNAVYuAihegrh+of + YugBJ8QeL9ohK9URNModWt0wb+cuZdwhZOEoffY3ffkZRNcIKsgEKc8GLtQGL8wORdEVb+AfoO850fVT + 9Pls/P115vlYruY8edE9bN46aeg/bOo9a9NznvCEqPdykOZog9pthNl9kd6esuu30/x5ofY4YMZBXc5s + gfSDmPxnfNh5iuWKlfZub+pZU+lYWe9OXOo9UugnPuQhOuI3T+5PZPhWZO5HU9FQYNJxgut/jvJrd+BU + XdJRV9pRV+FQWeVXYOhQW9RxfeySnvx+jetTbdg8ZdYgXtUteuo7hvgNSdcfStQ+V9lYZOVqcO5nbe1P + XdxKX9ZZc910ke19mPJlfd9PZNNSZeFXa+dVbOFWb+ItCXms6aTS/6fN/Y2u4Ja26aXI/I2x9GqN4lZ/ + 3k174Ut55k577FmE6m6Y65K07rrT89/u+PD0+/Du+e3s9Ojr8eXy9uL4/NHp/aK+7VB9ySNpyQxn0gVv + 2gRs1gVt1CeP9CeB8wRLygpPzyx99S+K9xF43w1w3B5y7BZb5Ak50Qo00RVN1w9W0gVUzwJMyAFVzCGK + 8ESX/g1D3AAlxhI51SlZ6RFK0BBg1TSe+hSV1SW512T6/YX7/JPm9mCf1liP2F6Q5lmI7VqG71R/32uR + 4n+f74Cc7oGb54Ob5IKa4J6267XO/HCJ8Etl0FNwzpCq94ed+neH8HF9619m3VJX2ldc6lVh80Za7zJK + 5yU+5CM+4S1F4DxU41Jo6F9z5I6d9pum+X+K5nB83W9542x17Fxl5k9Z21Ba1lJczHuH8p6s/ZWp/2WC + 7jZd0xtOzy9r6jt99B9h2y9p3Ud05GaG9nqP/HSC8Wd04Wdx2pqm9KS0/36Q6XGD23OF4XCF6mV65F5z + 32F24i0JhLPzirbwj7X0krf0lLrwj7bphKzvha37fqj6ZpHqXIbmXYPmYYPbdpTWtc3s5vb+5Ov17u36 + +PP/8fL/6PL/1Oj/o8L5Xn/XMFPCJlfOM3vuHW/oHnDpJXTwI23vKW7yGlvkCEbUF1bhKG3sJnDqGWjm + H3HtJ3X0K3P5GFbmFE3jLmbsNnDwMHLxKHT0HWvtIGnmI1rnCyjXFSfcKUPnOmTuF1vZEnLfDYjbC5rW + OdfuYf39b+n6cbvtXJXeZp7uaqDxZJfyYJD0UHzfRW3NWXrdfJjzj6f4kKf1h6HpiqbnmrL+bHzoTV/M + aYjfoML9gpvzX3DeVGDZU13eUl/kTV/mQljmNE/lJkTjHz7iIj7iJUHdL0ncSmPob4b4hpXxhIzleoLl + e4XrgIrydoD0YmzwVV/jU1zcVFzXaHLqbnzyWGzkP1nYLEzUHkPWEj3WFkzaKmvlM3DlSHvqVHzwVHDo + UWTaYm7gfYTsiJHtgYzqeYnqfpLugZfydI3xYXroVW7gUmvfLQlqleVrlupvnPNxoPZwnutllN1WiN5S + hOVgkOpyn+53ofCHq/iOrfGWsOG5zvLg7/7n8PrX3PK9weuTmt1nc81HWcsuR88eO88ZONYcPt4cQNwQ + NdAXPNgeP94dO9wcNtwWKtYcL9siOOISMdUONdIRQtYiWucgXOUoZOwnXOojVOMfT94hUeAaTt4US90Z + TtwVQtIQKs0bHNkoIeUiJNgNIsYAKr4xhvQQheAOnOE42/pU9fta1/Y4heAwa9Qvatkxad4zauI7cec9 + cd9KeuNJcOBPb+Rad+hdeuFig9t6n+ePr/taduNKZtOAo/RylPFGYMtBVMpSYuJTYehJWuNEWeU0T94f + QNMgQdwfQuQjQ+ojQOQkPtsrRdc5UdpJWNtRW9hQWtlMWd5LV+JMWOdOWelRWetRWetTW+xTXe5LV+k7 + TN8uRdsoRd4jROAZP98TQdoTRtYOQc8TPc4gQtI1UN5JXOhSYupTYeZQYeFMYdxKY9tJZt5JaeNLbOtK + be1FZ+1AY+otCWyX7XCe+GKX+FyS9W2h92+g7lSI4EZ63VSE32uU43mf8YKm/I6v95m29J2266u/6Mrb + +cLO8aSv4YKN2FppzjRIxB02xx472SJA5R474ydB6SQ84yc+6CA44iM54ys85yw66Cs55yg45R433xg8 + 3CJU6jFr+h1g5Rti4h9i4xxg4Rth3h5k4Rlf5BNX5R1b6yRX6xo64R4l5Rsb3yMp3xYt0x9T6ymB/gVj + yCGf3VPw/lnw/Ea58i9z4Tlt6jty7jxz7z117j947T135UF55kV160Vw7Ulz7FF87VaH5mOa6W+l+U1/ + 5WSQ93ae+1Bx4kJc3E5j7VBi9EJU6zxT5y9K3SFB1idM4htC3hY+4Bg/4yBC5yRD5SdF4SlE2zNJ3j5R + 5ERX6kdZ7EhY60lY7EtZ8UpY80hW9ENQ7ztK6zNE6Cs/5SI74CA+4SJD5R5B5Rk/4RlE4h5H5SJG5SVE + 4ShD4C9K4jlR5j5W6T9a6EFf6kFk7Dxk6jVg5zBc5itZ5ylX6CZV5i0JZpPpaJnxZZ75ZJ33Z5nkbZfc + cZzocqH4e6X8faL2Z47uVYPlTnvjUHvlVHrfYX3WaoDMlKfbytn54PD/1Ob/tsr8iZ7tTWLOKD++KkTQ + KEXgIT/hI0TqGTrgHT7gHTzdHz3cIDzaGjjWGDvYDzzVGVLiLG/3HGjmG2jlGmbjGGPfIGTeHFvWIFvh + HljoGlHlIFLpEjbcEyTfHCrlHDDeASbEKWr4D2jmAFzBJ63kXPH8UdrzM5jbMGnTQm3lQm/jPm7gPG/d + O3HbO3XYPXfaQHfkPHHlOG/gOnTdO33WTZffWqXwN3zZWJT/MF3ZLU7WP1rrMUjjK0DiLELmLEXmJ0bh + HkLbGkTbGEXeGEXgGEXhG0PhHULgIELcIEDXIUHZIUHbI0HaK0bdMUnfMUjeMEXcL0bfMUjjLUTjIjvd + IDzeI0HkHz/gHUDeIkXjIkXiH0PhIUfnHEDgHD/fI0XjKEjmJ0nkJEffI0fcIknbIUrbIEzbIlDcIVLd + HlHdHVLfIlflKFzrLQlqnPBqnvBpn/BlmuZ9qOubv/eLs/ZpluxXhORRf+VQhOxCfeZMifVHgPNMe+5d + f+RpgNCisuTc5/rm7/bd5/Hi7Pno8//U3/6XpORDVb4iPcQlReAoS+wbP+IZQd4ZQNwYPdkcPtkfQN4c + PuESO9sWR+MnX/QrafQnaO8iYOolYOsmXekmWugnWe8kU/MlUvQgS+4RMd8UJuEdK+IaLdQTNNBAfPsP + R74AT7BEt+p96f1evek/h8xKetxXgOtchvBfivFei/Fai+tXjOVXkedVj+xPh+1Hg+ZEhN9HjtlToNxa + pelMk+g9eeQUQsAdQNArSeImQuImP+clPucfPOMfQeQhSOUcR+IcSuQaSuUcSeUdSOQgSOMiR+AgRt0f + SN8cR+AdRd0iRdwmRd4pRd4pRN0oRd4pR+EjRd8fQ90gRt8hSOIeRt8dQ9wgRN4iRt4hRd4hRuEfReEf + RuIhSeIhSeIgSeEhS+EjTeEnU+QjUeIgT90eT9wfUd0jWOIjWOEgVt8qYektCWib8Gud7HOk64Gu8JW7 + /I6w92SM4kx73kuB50iE60OE7T+D7UaI8zx35VqK85Cv/cDS/N/o/ers+Onp6+/t7e7s+ODg+ebp/Ovy + /7fF+EVeyyZEzyA/1yZI5CBF4xk/3B1B3SBA3iA84iM96hs45RU44BQ73BZC2RZD1BU/0hU90gs0zg03 + 1Q802A8w2RU23REw1RIn0R0m2B0jzxokvlxz8WKR/yNlzTeR3ILh+5zu/H6962ac4mqc9VqK7liH7FuH + 7FiG6FmK6WGW62qh8FyT6FeM51iP5lON3Wmn6I/R/JTR+361/0x64zpk4DBW3yNH2CBA2iJB3yRE5CRH + 5yBG5R5G4x1I4xtH4hlG4RpG4R1G4iBI4yJI4SFH4BxJ3hpK3h1J4CFH4SNF4SZF4CZF4iVE4SJE3iBI + 3x9J3xxK3BxJ2x5J3CBI3iNH3iRG3yRG3yNG4SJI4iBJ4SBK4R9M4h9N4yBO4iFM4iJP4yFP4CRQ4SRS + 4SJR3SdY4SRY3iBX2jBo6i0JZZbtaprrgavuncT7lrv9bpXsVYHjT4DrSYLrSIXrSInvR4buRoHoVIfp + YIreb4rNrrzm5Or76unz6uXx8uz77Of85OD85uj76PD42un9o7z/UXDlID7IIkHYI0XhGj7cJEbjJ0Tj + ITriIjnqGzXlGjriGkLeGkfWHk7WI1DaIEzYF0bYGEbcH0fgIkTdGznQEy7EIDTLOkTgSlHlY27pqcT+ + SoHVK3nKZcbvhe3+kOb8gcDqZqHiY6D4T4ntUIbtVIbvU4PrYpPyb6P1ZpnsV4nhW4zmYZPpWIvccqbl + qN79ncz6ZYrjPmHMR27lSnHxSXHyQ2rxNl3oJ1DeH0nZHUjZH0reIk3jI07lI0zmI0rmIkjkIkbkIkfk + I0jkHknjHErhHkjiIEbkIkTlJETlJEPlI0TlIUXiIEjhH0nfHkrcHkrdHkneIEffJEbhJkTiJUXjI0bi + IkfiIUnhIUriH0vjHk3jH03lIE3lI03mIkrjI0vjJU/iI1DfJVbfI1bcIVvbN3HvLQlllO9xnu2Pt/Oa + vvR7pe9gjupdjOlZiOVXh+NZh+BNftpViOlhlPV0oftuleR7mNXC1PXj7P3m6fjs6fnt5/nn4/jl5Prl + 6vfg6vTJ3PiLqO9mh/QzU9khQdcoS+UkSeUiRuEkRuAiQuEePOIWOt0lU+w0bfkvdPApcucqc+oncOkk + c+oebeQgZt0wbONBeOpMfe1NdPBLZOdVaOWMov+IrfktbLZSqd6L8vyN9veZ7vqRyvJgldxIgd1GfuVJ + f+ZIe+JMe+JnlPdxo/xWi99ViORekPNdkfBimPaFvf+i2vx+sPpYfuVFatw0WtUyWdg3Yd1DcOpRgPpV + g/pGdvAwX+AiUNUhTdciS9ojSt4kSOAlSOMlR+QlRuQlRuQiSOQhSeQiSOQiRuUiReYkROckROYhROUh + ReQgR+QgSOMgSeIhSeEhR+IhR+MlRuMmReQmRuMkR+MkSOMiSuIhTOIfTeIfTuQgTuYgTuciTuggSeUj + S+UlUeYjUeIiVuAeWdsiY948gPgtCWmZ7nSi7KbM+KfO+Hqp7GSX6Wya55e87rvZ+5668XGS1mSN2myc + 73ms/2ub7IGo75az58fY9+jx/ert9Ozs7+3u8eTo8ePp8+31/NDg+2N70F978D9a6SVB3SNC4Rs93B5A + 2SZI3SJF3RpA2xRD2CNf6yx29CB36Bh44hd56Q9v4Bdq0yxz1kqJ6Ged9nep/nGf+05z4D5a01py7IWk + +ytbsyBtumHG9G7q/G3t9X/i/G+x602D0kp72E584FWB5FyG5maQ8HSf+nWm+Wec8FeO7UyE7Dp13kGA + 5mms/Was9D192D925DJg20xy805x8Upx7E157lWE9luN91yQ+1yO/VOD9EBt6DRe4SZM2CRF1ydH3StK + 4SxK4ylI4ydI5CRI5CRI4yVH4yRG4yVG4iRG4iJH4SJH4iJH4yJH5CNH4yRH4yRH4iRH4SZG4SdH4CZH + 4CZI3yVK3iJM3iJN3iBP3x9P4CFP4yBO5CNP6CBK5CBL4yRT5iFV4x5a3hlc2B5p3j2N/C0JVojqX47l + rtL6r877cJjqRXHSVnnGpb7l4vT90+T+nbTxWHnHRm7PQm/fQW3iWX/wVXLZdorgxNL61uD7zdX45+79 + 7vT+5uv/6+7/s73xSl+4W3bvOFXnJkPlHkHnGkDkI0rkJk3gIUfcHETcE0bbGl7qIHTzGHnoE3ndHoDe + LIHbVpbreav5h7T9i7j+eKr7TYPrKVbDN1W1hZ/5fZz/G1CvTKndfO/8hfT8m/z9idf2XZflWIbjZ5Dv + dJv8eaD/c5z/ZpT0WIfpT3/kS33kS4HsOnfgLXTUSpjrXq75QYzpMnXfMGjlHErTIUjZJ0zcLVPeMFrd + MFzcMF7cM2LgNWPkPWrpS3fyT3z7THjyNmDgKFDWKE7aKErfK0zmJkrjIkngI0riJErjJUnkJErlI0rj + IknjIUjiJEnkI0njJEniJEnhJUnhJknhJkriJ0riKEriKErhJkvhJU3gJE/gI0/iIlDjIU/mIVDlIFHk + IVPlIlTlIVXmI1rmIFzfGlzVKHTgR5b7LQlDdOFKddegvfemvvhigd9DZdZzkOTB1fbn+P7D0/hzhtdG + YMVMa+UkRtUeQdkxUukqR9YnQcRQaNZSaclddMqYrPSbq+mAjs2st+y7yPRNYbpnf+w3UdcmRd0eRuQa + R+YdSeEgSdolStwlSNsbR9kbV+YkcPIofu8rgOFGkeJysfWIu/6Br/V7q+1upOdKheAqat4zatRfhc6j + yPxJduInb9Ja1vVp9fCE6uyj4vh6redUgtxhi+lnkOhmjupchOdMeeBEdNdGdtxJd+dGduo7dOA5fNtS + o+tqw/tRpfAyed4+efA1YukmTd8jSuQhSuQhSt4hTNshTNshS9shSdwiSN0hSdsgStcqVtlFc+pOfvRG + de8zX+AfR9QnTd8lT94hTtslT98lT+EkTeIiSuQjSuUjSuQjS+IlS+EkTN8kS90jS9skSt0mSt0nTN8o + TeMpTOQpS+IoTOAnTt8mUeAmUOMlUeUiUeUhU+QdUuAkXOUlW+ggV+UmX+kiXOAfXtU8f+RTmvYtCVSA + 60941oyt8K7M/mOH2ERv0WyQ55Ow7Juz8G2C4TlQxUBd3Ext9C1S5R9H3yBI4CJK3yVM3CFH0yRL0S5W + 1zNY2CxPySpNwVZ03py0/qW1/4+f/kBW0SdF0yRL4h9J5R1G3yZL3ytN3ydG2ChK2R9M1hVLzidj2kuK + 9l+Y/WSa80uC2UiC2WCd62Cf6lSO6FWI82KS9Yu4/3Go+ABLsB6N5zvd/D7q9XDq+I3W9W2p5liW516X + 62CW42mb6W6e726a7mWP6VqG40995UqA6C9z0EWU6HbQ/2C/8TaM3zuB5D517EBm8ChM3iNN4SBO4SJP + 4CVQ4CVR4SVS4idT5ClS5itU6CdS5BxH1iBM1S5b4ENx9FF//UVw8iZS1yJO1iZS3SVR3ydS4ydQ5SRN + 5SJJ5CNK5idP5yZN5CVN4SVN4CRM3iRM3yVN4CdO4ipO4ypP5ClP5ClQ4ShT4CdU4SVV5SRW5iNX5iJX + 5iBZ4iVg5iRf6SNc6Cdi6iNh4iZo3UOK61eg+S0JUIPoRnfUapjgnsn8cJ/oQXDSNF7KK07ILU3RLUvT + KEjSL1LfIEfVIUrYKVLiIUvaJE/fIkzgFUDWHEjhIEvmFj/ZIkjdKk7dHT3GOVTQlKr+bIPmK0vCHUPM + IU3eHUziGkbaIEnaKVDgJUvaHEHOJk7VNWDfUX/1YY/6RXLfH0y3OmbHeqfve7D7U4zuRXbiNV3UPmTT + gKj9T4vmMozUZdz7VOr6TuDsl/P5p9LteKDcWovdXpHndKj1cqbtfK3vf6zzdZ3wXYjlSHvdO3jYQ47j + Ybf0bsj8QpvjKHbMRYXqRnjuQGXtJ0rZJVHgIVPgI1TfJVPgJlTgJlXiKFbjK1blKlXnKVPpK1XqKVLl + I07cJVPZPG3qUYL3SnzsMGDaJFDVJU/ZJ1DeLFPkKlHlJUvjJUrjJ03lKE7kJ07hJ07gJk7fJk7eJ0/g + KE/hKVDiKVLjKFTiKFbhKVjgKFrgJVnjJFvlI1vkIlzlIFzhImDjIl/kIV7jI2LkIGHcKm/dSJLuVaL2 + LQlEfeVGf+FPhNtuoO2It/9lku8zW9YtT+AwVOokTeMkT+YlUOcYRdskUeUfTN8dSt0hTeAkUeYeTeIX + R9seTt8rWeQiT9MXQL4yWc5ghvZbf/I3XdcjUNMcTtoaTNwbStsdStkiTtweS9oSQdAjUtxJd/pPfPNN + d+VPeeBHcthWguOCr/yFs/lFfNgVVcgOS8YJRMUrY+RCdfMMU7M9rt50+Px09/uE8/rD/f2xy+J3lNds + mPNwnvtxm/Z2oPF9qu54p+9gjedHeNtAfN9PlfFdrfxpvv5ervVCieE7fNlHgedOffI9Z+snUN0pWOQl + V+MmWOIoWuMoWuMpWeMqWeQpV+QrV+ksV+wkTuMlUeIqV+MeTc4hVM1Fe+xhlv5Rg/U3ZOUpVNomUdks + VeIrU+UoT+MnTuMrUucoUeQnUeImUeEmUN8mUN8nUeAoUuIpU+QpVuMpWeMnWuEoXOAnXuEmXuMkXuUj + YOQjYOYhYeMjZOMiY+MjY+QkZuQiZNwxeOJSnfRaqfctCUZ951CG7kl84EZ313Og7Hmh71J14S9O2yJD + 2CVL2yNK3SlR5idO5ihO6iBG4yZM6iBH5BlB2yxU6S1V4hY/xRY+vi5Vyk902WiN8FuC8CJLzhdD0SFQ + 4yNS5SBM3CNK1ylN1ydM1CBJ0CVV2j5x70p770Bv11SA3Hem832w/X21/2uq9jqA1hxmzSBu4g9l2w1q + 2T2T/yRu6gFiwDTN7UDk8Tu/03zZ8ML6/ZGz21B2ykp64Up24VF23GmP54Gs9Hmo81yN6jZt0Tt93lun + /Uqa6E+d6FKZ60mE4Ut/5Ed54VB/8jpp6yhX3ydY4ilb5ihc4iRY2iNW2CRW2SVW3Spa5CtZ5idU4ShW + 4ChZ3Sxe3TNm3Ud98FeL/DVp20R15lWC+Dxp5ipW2CxY3i5Y4ylR4StT5S1V5ydT4ydS4CdT4CdT3iZT + 3idU3yhV3yhV4ChX4Cdb4idc4Cdf3yhi4Shj5CZj5SNj5CJi4yNk4iVo4iRm4iZn5CRm4CFk2Dd+5Fik + +Fqp9S0JUYHpUH/oU4LrU4LlU4DTYYvWbJLwZYj3V3bnSWTaOFTOKkfIK0jQLUvbK0vgJkbgJETdKEjd + JUTUK0jRQVzbWXLobYb3cor4VGzdKUXDKErVKU/iJ0/jJEzfKU3cL1HZMlHULEzKM1jSSnfsTn/rQ3jY + WpDkgLn/hsL/a7PyR5feKoTWH4HaJYPnJYDqGoHjJ57vN6b2CmvNG5fmN+v+Es/lD5fEcszspuT9TYDG + JFW0R3nlTXvnWoPlcpzyeKfwbZ7oXI/lR37cXaDzXaf2RpTfUJvmUZXpRX7fSH3iT4DnUYDyPWrpKlfe + KljkKFnkI1XYH1PPI1nRKF3WJVfWI1LYI1LXLF3gSnv2U4f3VYr5V475SH3rN2jeQ3LqPm3iUoHxV4T4 + N2PfK1bXKFHYKFHbL1nnJE3dJ1LgJ1PgKFXfKFffKVjgK1nhK1nhKFnhJ1ziKF7iJ1/fJmHeKGPfKGXk + J2TlJWTkImHgI2TfJmjgJ2niKGnkJWXeI2bXP4XoXaj7WKTvLQlPg+dNgehLgOtRh/JVius/c9EqWsg0 + X9lcg+t8n/NzlfRihOdMcdhBZ9VAZtpAaOA7Zd0/aOBNcuJkhfJ2lPpuiOxPZ9o4T8U0Tsg4U9IxUtUo + TdQpUNwiStomT9suWt4mUc0nUcZEb91Xhu1bj+xtp/h9wP9yv/pQp+kzk9sfhtQWgtkdiucghuYZfNoo + mOg3u/0VltgDcLE6zf4z6P0BpMIroMuO3fOX1f1BdsotXLlWgedbiupml+57rfxxo+x6q/RxpO+GvfyJ + x/9Fic9boudnr/lEid8+ftxEgOJIfeVQf/BGcO4xWeAsWOUpV+EwYeE6cOVCeOhIfuxGee01Z+AjVc8m + WNA+cOFVi/FjmvxakPZBdN4xYNQxXthQffFejPldivlZhfo+augoUtYtV+AyXOgpVOErV+QrWOMqWeEr + WuEqW+ErXeIsX+QsYeUsYuUqYuQrY+IqZeEpZeAnY+AlY+EnY+MnZuMnZ+AoZ98paOIqaOMqZ98vbt9J + jO9gqPtdqPEtCUR85E+J8UeB7UB550aA8UN77S5d2SZL0itN0jRV00dm3VBt4Exr3E5v3VR250916kBp + 4Ttm4UFr5kFo4zFX2CNGySRGyyxO1itP2yhN1ypP0ShO0C5V3ydQ3yFQ2yNX3CRZ1Dhs3VeK81uM81WL + 7F+d9lum9kCW6SmJ3SKG4yGJ6hyE5yGI6h6H5RWC3Sif8Cuu9gGJygebxkTt/DLS/ACAplS40bD6+aLf + /VeM3Et72GmY+WiY9Geb7nCl9mud8mSX52CW3IvD+Xu28mKd4Xq19WWj8Dx91z5/2keE5EqC6U5/7khw + 6y9V2SdQ2jto8FKD+0+C8jxy20F43ViO9GCU/FiJ9kR04y9fyz9x11OG6kp+4Ed53lSF8FeF8l2M9Et6 + 4URy3lyI+FmE+jxl5itV2StX3zNd5y5b5C5c5C5d4ixd4ipd4Cpf4Cpf4Spf4Ctg4S1j5C1l4y5n4y5p + 5C5o5Cxn5Spn5Spm4ypo4Spo4C1o4Sxm4Shi2zNv4U6O8WKl+GWr9C0JRnbwR3juRnjoS37tUIT6QnLu + MlPVOUzNSlvLWmzEa3vEdYG+c4CzcX2qa3qsXnOwTme1QWDANFXHJkfHI0PMLU7bNVbmLE/iJkzeKlHj + KlDdLVLgK03jKk3lIErcHk7YOWvpVoj7Wof7RG/mKlnPJV3SKGvdKnjoL3/xK3fvKHLsLHXtMn7yInjj + HHrhNpb9K4XuAGq+B77rNOP+LafwFXC1e87qsPn+g7vyOGTHMlvNR3HpRnHhXIfoZpT3SnjmPXHYXpzo + ZabmWJXXgbj1g7X/VobnQHPUQXrXSIHjUIjxSX7uP2/nK1jYK1bdRnL3WYn7VYbzToLnVIvoYZj1ZZr5 + XpHzVIXtU4LtXoz4ZZP5VobtSnzeUYTiY5XzbJ/8Y5T1S3riSHXjV4H0SnX0NFzhL1niKlXfJ1TdKFbe + KlvgK17iK2DhK2HhKmHgJ2DeKmHiMGXoKWHhJl7bJmDcKmXiLmjoLmnpLmnoKWbgKGXeMWzmMmvnLGPd + OHHkT4vwXJ3wZ6r1LQk4XuQ/Z+Q/atdGcdNYe95ddtVeaLpvbat+e5mBhIGOkX6SknmMinCNjHeYm5CZ + oqeSobV4jbBqg7ZdeLpJY7dCW8E9WM8uTM4fQMseQNErTuAnSN0cNtQlPdwgP9MgQs1FaetYffg9Xd4l + QskhQ8wjTtcfUdoVTdQRS9EQRs0YSc8bTNIjWdoPVMcWa9FAlfsncd8BZLot2fxB2/obccs2cM6R3vag + 8/tko+seScEYP8QrUdcxV9JYfeZmjvMwX9E/d95vq/49e8lLg81+sPRxnPRNctxNdthPftpHedhPgeRM + f+k+cOIxYdkvW9ktV9UoVckwX8hLfN1ilfJcj+1Gd9hDctdIdeFCbOBXf/hZgfc7Y9o5ZdVZhe1lkvJX + g+lZhfBLd+MvW8o1YdVBbOQ5Y+IxWN4hStIkTtkjUNklVNopW98uYeIuY+IsYt8qYd4tYuEuYeIlV9ki + U9QiVtYlWtwsYuQxZ+kyaOkhV9geVdMuZuIxZuIrYNc5cN1RiutTj+ZYl+UtCThk5E158FaD5mGH04CO + xYuGooN1bYd1TZSFTZuTVqCaYqCbb4qGa6Gfm+bq8/D6/7vL0oyjmoynlJWvnoykonuRsGB2vUBYwShE + yyhG2DRT4SxK2ilD3CxF4ShE1DdU21Nx9UFd5CU/yi1I1ylI1SlP1CxZ3SJU2h9X3ixq7yZk5yFc3iRl + 3hZw1C2h6y6n8wBrwBqZ2GTp/ky66SRismmd7Z7x/ZT0/U+d6BlSzB5Mzjxl4VyB8muP8Ul0zj12yXWt + /1KD6yFQtHKg7prH/2KL3Uhx022X9Him+16M4lWD2ViH4z9v1zVi0Ttl2jdh00Jv1lGB4l6O7Wua+2CN + 9EZw30Fr3kZu5jRY2CpM1TlZ6D5c7j5d7Elr8khr7Tha3iNExjJX01R88l6I+V+L+0x47ypU1CdQ1zNc + 6ShS4iJN3CpY4zJj6jFk5ixh4S9l4jRm5S1b3StU2jVf6Tpm8S9d5jNh6T1t8zlp8CFP2iZU3zlp7zZn + 5Cpf0D1z2Gih+mGY81WN5i0JQmzeQmTNZ3vQg4W8inh+i2tIiGYuk3MxoIdBm4tJpZZerpt2gG5YYVFJ + k4aEwLuztraloKeDnKZ4nqh4nqeCnqedkZq2cny/Ul/IQlTTOVTbKEnWJEPWKkncLlLXOV/cRmjqLk3V + IDzINlHfLE3UJE/FL2XVQX7vP4T2MXzwI3TmIW7eI3ngLqPyL7/2GKLUJpvOft76p+77gq/nWWy9gJTf + qub6o/D7ZZ/kP2PUV3LqdIz6e5H0c43hXH/Mapvkhrn/XYzkXYrjlsL7dqPhZpPgcJ7wbZ/vbKHvdKn0 + dKj1aJzvWYzoUYHmYI73Yo71aJf0ZZbuY5TrX4/oVYPkUn3mXYbzW4X0OWDYJ0vLOVriNlfiJUbQOFvd + THHvXH38Tm/vNFjUNVzSQmvcRXDfS3brQ23rL1fdKVPfI03bIU3aKljhMmPoMmXmLmPhLmTiNWjlNmPj + LFbaK1XfLVfhJVPaKVneMWLmK1zhKlrjNGPtOWnsMmXeLmTRSIDhaaP7XpfvVI3jLQlIatBqgdeSkMKD + bHl9VDWVZSWYcCSPcyaXgjicjUqklFyhjmFcSiQmGgBUTiiRk2qboXWXnnWco32gqYOdpoWUn4yLm5t+ + kKlkeK9HXrM7Vso6Wt04WN4oS84kT8VEcOFgiPddf/VEYuY5VtpGa+JRguRfm/FfpfhAjuQeds8ceNYm + gOQmguU4qPg1s+womstsxuS3+P6Zv/hjeclZZsGHnfG16v2o6P5kkOFAWM9Sa+NceudaetlzkuKApvJo + mfBNg9pCestuo/R/sv1pmehVh9lMgdZCec5HftNYjONfkOltnPhunP1HdOZLcvFIa+5JcehLdeRchvRX + ge5GcN9Fbt9Hb+FPd+lWffNJb+pNcvBEaeg2XNhIceRUfe1Jb+RDZeI8YNpDa91LdeU7Z9dKdelMdvQt + VtouV+IrVeErVuMwXuc2Zeo0ZugxZOUvY+MzZ+Q2Z+UsW9wqWN4pWOAnV9spWtwoXd4gVdYmWN4tYOYv + Y+MrYdYuZ9BLiORfnfJXlulWluYtCW2I14qZ0od+hHNVN4dVJ5phKY1jJYZtL4VzQH5wSoFzV2BSOiYc + Bi8sE3h8ZZumloaUj4KPnHiCnmx2k3B6lnJ/mGx/lmuBnW2GrW+HxXuP7XuP+3aP/WWF71qD41uI41J8 + 3Uhu2kpq3kpn2lV43Xik9IrB/3/B+mm19Eqe4zCM1SGI3CGO5TOd7jCU2Eeg1Jno/KHm+1OL5SJStTBg + vIC2963s/Xu87DNixiJDwThf2kd35FWB3oCm7pS//1WK6zZxzkiJ1W2s916U7W6f+2GV8EuB3El+21GD + 41J/4Vd/5HKW/WqN+i5PzixK2yxJ3TJS3jld31h9+Utv6y9T0jJX1DBW0D5l21uC+UZs50Jn40Zs6Uty + 7GOM+FmE8Edt40Vp4kdt4ViA71R/7D5o11qG91Z/+C9Z2zRe5TVf6DRg6DRi6DRk5jNl5TFk5C9j4jFk + 4TNn4TFj4TFi5TRl6TVp6Tdt6jVt6TFp5TNq6jJp6TNr5TNt3D583WKj92eq+GKk8Gaq9C0JiJzNkJi2 + cGBSbUsfj10rk1sthVgydFg8fGtflYqQioKOenGBbWd7gICafoSoWmSXSFWZT1ywV2G7Z2/GhozbnqTo + sLfpvsjvu8f0oqzmdHvFZm7Fa3nWc4zkgKP0eqbwXIjZVHzaaYzvYn/jU3HMdJjiga7udKjlebbxcrXz + U6LgKY7MMqLhRqToPITNZ63brfj9jNX5P4LfG12/P37Mm9r4re79XZvTH1S5I1HNO2rfRHbYZI/ekbX0 + fKPpSXbRT4TaXZzcZqThU4XXa5j1aZryWIzfWIvhV4biVX7cZIXneJb6aYXwQV7VOFfZMVPYM1nVOWDW + WoL0S3PlMFfNNVvSNVzQRW7eV4DyO2LZNVvVMlfTLlTOSHHkTXbmQGbYO2DTR23dXITvS3bgM17IW4b2 + VH32MlvbNV7iNV/mM2DlMWDiL2DfMGLfMWPiMGPiMWXhNmviNmrkM2jmM2fnMWnlMmrjMGviMWzlMmzo + L2nlM27jNXLcQ4ThZqr6YqjxX6TpaK7zLQmdqceRkKFlRz51RyaHWB+JXB1/XDVkTUOYjpHv8fzf5PTl + 5/nt7f/j4/+RksleY6qDjc2ntPO8yvzQ2/7a4P/Mz/DBvt7T0Oe9us1TUm8IBTwmJ29aYrVdcMR1l+WK + uPx3p/Flk+Zsle5hguFScsyBo/GKrvNjitNtmuJ1pu56s/Jxs+WT1vqDtuVliMqexOzO+v602P59lPNq + f9qSsebH7fvE6/16od9RedxQeOxZhO1mkuSNsu6vy/aMqN92m+V0oumY0PyHv+5tm95+pvZ/rfhypup0 + pu55qfZ4o/J3nu99ovh0mPNbf+RcgvBbhPZciPFfjPBnlPddiu5ah+1divFUgedYh+hdi+5XhetdifNf + ivZbhvRjj/dkkPZgifRdg/FjifViivJDbdU3Y81ahPRVfvU+ZuQ4YOI1YOM1YOMzY+EyY+EzZOEzZeQ0 + ZOU0aOI2a+I2auM1aec1aecza+UzbOQybOMybuIuaeE2cOk1ceIzcddPkOlnrPdkq+9kq+xmre8tCZ2j + u42HmGBBP2w+L3BFLGxLNWZTW09IbIB/p+Dh+ufq+uLj9eXk9+Tf+ru346el3d7f/uXr/9nj+eDo+dbY + 5rq5x8G7y+jh7OTh562rwFxdkFldqFVguGR42Iqs94Cu9mSW52OV6WiY8lR83EJmxXOV7oWn+0psxFN4 + 0H2m936z+mSz5WvK606mzkeSzI7V+qLm92yh4UhpzERow3y247Xx+anW/F18zEVey0Re2T1k0El90YOx + 7qnL9nKVzV2Iz3Sm7Ye/9WWb1VqI0XKd7Wua6VaJ1laJ2F+R4V2N3WGN3nWf9muV80Nq0kJn3T5k3Dlh + 1EVv212I80545Ddgzzdgzzlkzkl321+N709740hz31N87E9450hz3kNt1VV95GSK8muT+GSO8EJrzztl + zF+J9lV+8zhh2zdg3jdg4DVi3jVj3jNk3zJk3zNk4jRk5DRm4TZp4DVp4TVo5TRp5jVq5DRs4zRt4DNt + 4TFq4Tdw5TRv3TRy1lGT6Gat82Ws7WSs6meu6i0JlaLEhYeoRjRQTS1SYEN/XEaYRTyhMDOhe3vJ6eH+ + 4tnw2tLj+PD86+PzyMPVq6jBw8Xc0dfqy9Hf3uLs3t/pwMDLy8za6u774+z41eD+h5PUUV+6VmjQgpr5 + jbT/bZ7uR3vRRXjTWorrVX/kR3DSbJPug6v8THPOPWbAXYbgXZLkV63rOKPSH4O0WrDZovH+gMjvNHDE + JFbAJWS/Xr3pmvj7ksn/TmvPQlPOO0/TKVbIQ4jgeLb9grLxXI7RTonVbqv4ZaL0Q37QVYfcc6P6aJf1 + TX3fSnzcU4TkUX/eWIPicp3+ZI75MFfLM1jVMVbWLVPOPGTaW4L4SXDpMFXTQmfjT3XuTXXqV37zR23p + P2TjO17kM1bcNFfbN1vYMVfIR2/UapT1ZY/vPWjKPGbNZo/8VX7yMVnTOGDeOGLfNmPeN2XdNWXeNGTg + NGXjNGTmNWblOGnkOGjlOGfnN2npN2rmNmzlNm7kNW3jNGzjOG/lNG3cO3jbWZnvaa30ZavraK7rarDr + LQl8ltR/kthGR6I8MaI6MLowK8U2N8pbYde6u/faz+RmWGlfT13YzNnk3ObW0926vMm7wdK4v9OorMO5 + vdHIy926v8/Fzd7a5fjP3fTF1ft0h95GXslcduhpiPFOddROfNNKeNIzYMBCbNBSet9CbMlkkN6Lu/d9 + rvVrm+hdjNxajd50tvhPmM5SkcCn2e3A7/yCruVGbbk+Y8I9ccB7zvKe8fuKuvRUa8tDV8gzUMMxYMNY + mOZwqe9hj9Rbj85amdhnpu5Nht9EeNNZidpzn+1nkOtPeNxMeNpVgt5Vgdpbht5vmfdijPI2YM0vWMsz + W9A3YNBCbdpYgPBKceZAZ99af/pdg/pDa987Y9cvVM0zV9YyU9ovUNg5WuIzVdRJbtxnj+51nvptlvNO + eNhLddllj/lQeOs1XNU4Yds4Yts2Y9o2ZNs0Zds0Y900ZOE0ZOQ3ZOM6Z+I6Z+Q6Zuc5Zug3aeU3a+M3 + bOI2a+E3beM3beIzathAe95em/FqqvFmp+drrelssOktCWCG5Fl35Cw6yTc/2kpY43CE5Km489HZ+vLy + /M7FzVFCRlhJV9vO48G50cPA28jM573D4MbM6q2z0KWnv7m7y7/D0NLX5efs/tbd/7G++FFpy0Bf0zVV + yjhayjxiw1V/1WiQ6l6F5GiO6mqQ6Ux0x2+d3Yy+9X6y7Hyv7W6g5YGz8JLH/Huw3KbQ5eD9/svn8qvH + 6Zmv45Oi5Z2z68Dr/cX0/anH9Iie5Hqa6GmR4XWd45C275K16Yyt3YKq14a45Ii78HKc5nme7Xme24er + 4YOl6XOU5W+U4nKc4nGc4HSf33qm62yZ6E571lB941SA61iE7FmH61+M9VF950p230l03ERy1VqK52aW + 81SD5Eh13EZx3kVv3VF+51yJ7nOe/m2V9FiC4F6I52aQ8WeQ92aP+0Zt4TZe1zli2zdi3DZj2zZk3TZl + 3TVl3zVl4zZk5jhk5jtn5Dxn5Tpm6Dlm6jdp5jhr5Ths5Ddr4jlt5Tdr4zRq2UR+4WSh9Gqr72an5W2u + 63Cw7C0JXIPiXoDgXnjac4njo7jx1ej86vX/4OLz9O37zb/DTEBDe3Z7393qt7nO2t343+H929345en7 + xMfWsbS90NTc3+T13eT33+n+sb7xcojPTW3OT3XiVnvrWHjmV3ffaIjofJ72c5fne57mkbX1eJ7bg6rh + o8r+jbXvf6fjdZ3blcL7cbLkZ7LZpOPzw/L4uN/xocHleZrEep/LpNDyuOv9vfD/ocvxfqTcc5zZcZ7Y + k8HymMTth6/TpMfmpsbprM78pcf6nL71mLnzkbTmo8bypcb3lLTtjq7njq/niK3ki7Hqlrz5h7D0aZDg + U33dUHriS3fYVILcc6D1XYjlNF/DL1u7Q3LLaJrrb6D0WITjSXLbUnrqYYn3bJj5b575TnziL1zNPWrW + VoTpYo7zZ5H6VHrsPWDbPF/cPWLeQGTfPmXeOWLbOGHdOWTiO2jmOmflN2XiOmfhPmrlPWrnOWjlOGvl + Om3oOm/qN2znNmznM2nfM23TS4rcbK3vcbPqbazidbDucazuLQlYgONkiOhohuJpgdB2isGOn8KtudbT + 2e7/+v/SwtVcTFmIgIff3OS4u8ja4O3g4/Ld3e7q5/DW0NPEwcbc3Obd5Py6x/eWp+dtgtBge9Nmi+tP + ed1HbdhLbtlNbtZVdNZpi9+Cp+uLsut7otVpkcF5n9Kqz/6av/aJruZ+pNqZyPd1u+NswOGZ4/mv5/qn + 1/mKtuZbjb1oqs6d5/2f7PyO1u2AveZglctNgbtqnth9seRsocxunb6Ntc6myeqev+9+nNZtj8xsj8tw + lMqKruOJrOOEpd2AoNp5mdN8ntaApt2GrOeErOtultxnjeJxmPB+qvaLufybyP2DrvFlj+Fnkd9qmOB6 + quiXxf55pfFii95sk+5njehhjNh8q/Bgj99oluhrm+xGd8pTgtlhjO9AaNc9Y901W9s6Yd9AaONCbOQ+ + auI6Z+A6aOE8bOI6buE3bN83bd85cuM4cuY1ceQzcuM0deYydOosbeQ0dek2d+Q3etZSmd9yu/F7we54 + uul7tvB0restCVJ841d+5mB/6meB6WmA115yt1psp2t5q6Wp0aqjxGBVbZuRofHr9sPG0MHL1b/K1M/V + 36ijql5VXEhCUXd4lImXxWaBxVt70FV011R33VV+3kVv0UJp01J041h35VFx1V6B1Yau76fR/57H8nae + 0nKW0Zq9+Iuu7Xyh3nWb0ZLB7IjH6I3W7p7b+pPA6oau5HOb3VKEvWerz5Tg9Z/r+nS81HKu21WJxEJ1 + tXqv6YG473Gp3Ie64JPA2rTb/KLG+IKk4Xuf33eb3HOY1oSp5I+y8Iao53CR0W2QzX+i3YSr44Ku5nei + 3U11uV1/zm2P3YGo54m154Wv5X2l4Xyj4n2i5YOq6ZS+9ZrE95jB+Y218Xmf4F+Fx1+Hwnqk3JnE+KPN + +oGu42qX1n6r8HKd80Ns1URs4zli4Ddj4Dxq5j9u6Dps5DVm3TNm3Ddr3Dpx3Thv2zZt2Tpz3zp14TV0 + 3zR14TV45DN45y1y4TV55jl94kGG3F6m6HfB9X7F8nzA7Xq673ay6y0JW4jsV4DmUnbgW3vlb4vvb4nm + WW/OR1i0U1+rV1yWQUFuZGCEoKC/lJ26oK7LlqnGkKDAXF9/JyNEGRlCOkR4X3i5YIjYWYXgSXLVUXrg + W4bmWoTnWn/uX3/0XHzuUXDbVXfScJbfjbTxk7r2gaXpdpXhhqT1bYvbWXnDV3m6iLPnnNv5q/T6o973 + hK7riKvyjK74dp/jjsjsrOv3ruj7hbnYfKbXX4PCYIfLgq7te63qbqTge63ahbDSmb/ojK7mg6bmh6zu + faPkd57ahKvkiq3pf6PfgaTgkLTvj7Psgajfhq/oiLPwdJvjaIredJTng6jqjbbsibHoi7Lug6frbI3Y + Y4XOcZbYh63rgqjneJ/dia3xkrb3ia/vkrnxncL5i7HrirLplsD4fafrVX/UQmvRR2/kO2TgP27oRnbv + SHvzRHbvPnDqO23oOW3jN2zbOWvYPm/dQ3PhQnPhPXLfPnPgQXflQXjoPnXmPXfjO3baR4XaY6bpdrzz + fcX0fsXzerzxdbfvLQlYhOBVgdxTfdlZf91gg+NVc91EXNREVtVQXdVWYMhPVrFMUaJvc8BgbLVZZ7Fb + bbdyg8uHldt3hdBgcsJgedFae91QeeJUgOxHcd1Jc9xQedxIctZAZtBFadhSdOFQcdlGacdKb8NghdN3 + nOh0luVce9Fti+Fvi+Fph9hefciNuPCX4fiN7fNmuto+f8FVjdtgleNLhMR7v+Gv8Py17v2Pvd54m8x/ + mtarx/96mtZRdLhiis1zm9OPs+CKrd51ltRwlNV5nt98ot+GruOPuOeHrt6ApdaJrN+Iqt99oNSCptx3 + nNZegsNskNpxk+p4m/F3nulznd9pktZxmOJuk+Jnit5pjuFfhdRqkd13net2m+t4nPF5nfJpj95fhs9z + mtyHreyLsvF7pORpktlki+FZgeFche5Tf+o7a9Q6bdY+cNo8bdw6bd8+b+VBcuU+cuE9ct8/duQ/duQ7 + ct82a9k1atk6bt88b+E7buA6bdk5btJMh95op+9usO1rr+dtsehqredtsOstCWiO5nGX7Haf7nGa6nGX + 72WG60Nd0zdNz0JU10hY1FRk1Vtrz2FwzmJuxm13y4SQ456x/5y5/3qg72SP5lWC4kp03k5z5khu4kBq + 2UBq1VmE6FJ73VmB5GGJ61R83EZryUlvyE10yFd/z3ac6Yar9YOm73+h7ICi6W+R1GSGxpS976fm+Kbz + 9oHG5k+IzFWM2FyW3EWFu2qx0Jvg+aDe+Iq+35K65afG8aXA73aRyHOP0IGg5oqq5a7N+qXD9paz8Yqn + 6X2e3H+j25e965rC6aTJ8KDC65q65ZOy34qr2Zi66JG052+QzFFztmuS23qj7YWw8XKf3mSQ0nah536o + 8Xig63ih7HCZ42qT4Xqh836k93WZ8nWa8nOb6miT23Si5Yu5+Yi39Hil53Sf522X52KL4m2W8HWg+Hin + 93yu9m6h8ViL4UV41D5w0Uh72UyE30OC4j+H60KN8UeS9UaP9T2F7TR55DJ14Th540WG6UeH4VaX6HS3 + +Hq+9nS17nKx6HKv53248C0Jd5TuZYPbZojabZHhaYvkY4PkUXLYOVjDQVvJWnHcWXHTWXXMYHfFeILN + kZTbnKDmmqjtaY3PVozOZJ7rT4jhOmvQSG/dSXLeS3zhVYXrTnjiUXjhUnrfWIHhX4nlW4XfVX/YZIvl + YonhUXfLaZDegqrwhKzrfKTedJvReZ/VncPyv+v90f7/rtX1gaHrj7L6lL/3b6HRjcffvfn+pNz4ZJa6 + jLTetNX/oL/veZbLZYS/eJvbocT5stL6osDxj6zokaztkK/tjKzllLjnmb3mj67Ynbnjob3nlbHan7vl + ocDpmLjkr8//n8L1eKHYZpPMaZXOcJvXcZzZdJ7efqjng63sfqnnfafog6rydJnoXoLWUnXLaY3fjbT6 + g67ueKrpdq3vY5ndV4nRY5HgZI3lVnzYXIPfcZfvcZzqfazxdqXtbJ3mZJXjY5XmbaLwaqPtUJDfO4Lb + NIDZQ5LpPo/mJXbRMYLfTp/9TJ34Po7hQI/ZXqjreb/5dLfsa6jbc6nbgrXlmMj4LQl9kuxrgtpog9Zo + hdhefNZigN9wkOxukOpjgtxfedNgfM9igMxvhc+GjNaRj9uQjNqHjNpeecVVg9FrnvJdj+1Aa9NBZdFL + c9lOgt1Xiec+ZdBKbd1BZtE5YMRJcdJNd9ZGbs1fheZuk/NQddBPdMlmjNd7ouSBqON6odZ/pdmlzfa4 + 5fO/7fKcxOhtjtVzlNx+pNt/qtKy4vPK+/2n2PKGstefxvKfwPSOq+J4ls1ihr19p9uYwu2QtNqfv++L + qeSBnt+Jp+eOrumQseSHqNWAnsqTrtufuOSYs9ucttyXtdiPrtGpyPGoyvamy/6NtOpzmdKBpuKPs/F/ + o+B8oN2Ps/CNse93mtllh8taecZtjNpefctScruAo+Oexv5xod9dk9dgld5Of85MeNFSeN1Ze+VZeuRM + btFjh99uludZgtFWgM5ijNxXg9VVhtFrnuNzpu9vovFwpvVno+9RkN05fc04ftBBittGlOEygsU6icRt + uOuQ1vyR0PeQyPOUxu6TweibxestCXKH3oed8Y+p94ql9XuV9GeA51pz3l945mJ451ts3Fdn1lRl011p + 2Wlr4mxp42Vh3llc2k1d2U5q5lFw7ERj5TtY3EZg4U9v40122mKN7mSM8lqC6VV941d/41R+30p11URu + zkRtzVR83W6U9XSa9nWZ8Hec7IKm7m2Rz12CvIq136vn9aLq8Hu84mCX4GGX31WMwl+YuqXf7K/r9qLa + 8aTV+omy5naX13+b33GN0HGVzJO/6ZO+5oSo1JO06oem6IOi6YGh5Xea136i1Yap1pi65Zq65ajF76/M + 9Ju635e32p2945296pKx5YGh34em7H+e44Kh5Yuq7YCf43qY3YWk6ouo8Yek7oOg63qX4oil8IKh6HiX + 2oqs6YGm4nel4nan6W2d52WS5ViA4Ett21Nz5l5/8E5w3FV93Haf+GCK4FB3z12E3l6G312I22aR3m6V + 4XOW5WaJ12+X4Xml8W2d7mCU5FyR41ON2FmZ2Wqr4n297YXE7oO+6I3F75vQ9Z3R86fa+S0JcojXe5Xg + e5nae5vgcovlT2TVOErMNkXTPUfaQ0neO0HVOD7TNzzUNDrWLjfWLjrZMkHeL0LaK0DVKT3TKDzTJjrM + NUrTU2rmTmnTVnjUZI7hZJPiW4rbYI3hc6Hxb57vU4HURnXGUn/RYoziaZHoWH3VTXDFZIjVa4/SZInD + irDeuub4wfL7irbiX4XVb5jldaLacKPEpN7mqujsl9Xoc63SVYK9XoTNcI3dYHrGcpbNkr/jibXbgKTY + eJjXcZHaeZnjbpHVZYrFfqTVmcHpia/UhqnPlbfdm7ziosPpnr/njK3bk7LmhKLhYYDKYX3Of53phaTt + a4vRaorRepnjcY/dYoDQb4vcgZ/shqbtiavskrbylbr0kLXuh6zlirTrh7Tta5jXXYfRaJDlYIXlRGjR + SXDWYYrqWYXadaTzcaDxZZHkUXjRU3nUgKf4e6LtU3vKX4jZUnzLWoXRbJblb5nqZY7hZ5HkfKf2g7L1 + gbPrgrfpebDfbaTTcqrZerLefbjcj8zsLQmUt/KMsemBp9uDqN+Ep+l3l+Zrh+NngedphO5qhu9mgexm + gu1gfutUc+FKa9lQdeBnjvZdg+pfhOtfguxWeeZfgetfhOpTeddWftFvl+FljNBnjM1ljM5ulNh8oud8 + oeZukthihcxzlN2Gp/NvkN1gg89sj9Z+oOJyksxzkMOsxerT5u/k8/KtxONvj9B4mtqGqNekxNjb9/DV + +POp2vJxp9Nijshwk9VkgMdkfsOUtOmlzPKPuN6Rt+aNsOWDpN+Ip+KMrOOFpNaDo82Jqcygwt+tz+mh + w96UtdKWudqavuaRsuGTs+uWt/WFpehwkdVtjtFxktR0ldd3mNp2ltt3ld5xkNpkg812lNyNrfKVuPeI + q+l8oNuCp+Ggw/yau/SUtfCXuPaUt/WZuv2Rsvt6m+plh9Zcfsx6n+l/pe91mehwkuVnh95efdZriOF4 + l+1uk+RolN54pe93ou1xmudxl+ZukeBxlOCLrvSJr+uOuOmiz/mh0faay/CSxOuDttx+tNqRx+wtCX2o + 332o332n4IKq54as7nyg6nGR5HiY8H+j+Xef8Hmh9IGo/Yiv/4ev/n6n9Xij73im8HOj6X6u8n+w93ep + 8nuq9Xam8Gqd5G6i53Sl5Xei3oOs5YSv5oOu5oOu53+o4nid2nud3ICj5ICj5Xmf4GuX03Kf13ql2GyT + wHGSvKa/3dff4unq4rXI3ICk1nuh04alyrrO2/T67e/796vR8F6Pwl+GvmuKxWyJxYyr5KPE9ZCz34Oq + 04ix24eu24So1oiq2JCv3Iun0oejyZez1KvJ5KzM46vN46vO6KLH6J/E7ZS46Xqd1XOX04Op4oGn322S + zWSJxHCV0XCT0mGDw2OFx3mb34Wn632f4nue4Hqd3nSY13WY132h3Yeq5YSk4X2b24Ce3Yem5IWl44Sk + 4o6v7JCx8Iip6Yyt8Imq8HSV3WOCzmmH12iG2Vx5z2aE2nmc7HGZ5GaP2myS4W2R42aI3G+Q4nqc6XCT + 2W+V0Yeu4ZjC7ZfE6ZnG6ZzK7ZTC55G9553J9C0JcpzecpzfdJzieZ7rcZTqU3LTN1HBO1PJQVzNPFnE + QmHNRWHQQl7OQ1/OR2XVS2rZS2zXSGzURGnNRWvNTnXWVX/bWobdZ5XmdqfweKztbaLbdq7idrHkcazf + dbDie7Tme7Dmeq3kd6njcqXgbqTdZJ3SaqTVdq7bc6fPeabMosbi0uHn3+Xjt83kibPkg67eocPi0un2 + 6fXv3vDykbnaWIi9cJnPfJ/ViKngnb/0lLfmjLLck7zmiLLfibPik7vrmcDuk7bjkbPem7zip8jqnr7e + lrnVocbiq9Hwo8nukrnliLHhg6rgfKPcgq3ji7frhrHldqDWdqDXgKrjganleaLee6PhhKzrfKTjcJnX + b5fVeqPfe6XfdZ/Yd6HZgKfifqXgeJ/aeaDaeKDZcpvScJnQd6DYfqfed6HZgKriha7ohK3phK3rgqnq + dZzeY4nNYYbNZYvVV37KYITWaY3jZIjfYoXdZYvgY4zaYozQdqPeirntiLjmg7TeiLrij77mk8Drmsfy + LQl1oOBynt1xndx4ouR8pepslN5YfM5WedFcfthafdddf9tXeNdOcNFNbdFScddVct1QauBQZ+VFWuY3 + TOAsQdImQsU/YtBqle17re5yqd9rpNhzruBzsOFrqtpvrdtzr91wqNlrn9JtoNVupNlmn9JmodJyrtt8 + s9xypct2pMabvtfQ3+bb4uGrxdt4p9Nzocihw9rb9Pvo+PTU6vCDrc9tnc5pk8FzmMOStuCKr9qDp8+S + t9uUu+GOtuCKsd2YveejyO+jxOulxeioyeecvtuixd+kxeGewN2hxOOgxOeYvuWWu+eSuumFr91/rteN + wOWVx+6Pv+iNvuiVxfGXx/OQv+2ItueJt+mOvO6JuOmJt+mPvu+NvO2GtOWCsuKKuemOvO2Mu+uPveyS + we6Rv+yLuuaNveaVxeyQv+WRv+WVwumUwuiSv+eXxOyfy/OYxO+Ru+mVve+Ot+19puJ4oeKAqu57petw + neJ7rO14quR8sOOLwe2IwOaEut2IvN6MwOKLvOGIud4tCW+W4HKa4XCa3HCa2Xej3Xml33ei3nyn5YGs + 6H+s5Iey8Iuz+4qw/4ep/36c/XCL92J78VNq5UBW2TxS2URd3Uxs3V2D4W2Z43Ol3Hux33Go2XGo2muk + 1Wql1Haw3Xix3nKm1Xip2Xyr3nWl2Xiq3XWq23as2Xao0nWhx4Coypu608/c4uLp56rG13KhxXilwKnJ + 0tzz89zu67fO14uy1Iu75Ymy1oqvzafN65C314iuzJvB3pW52pS33Je53KDB4avL6LHQ6rTS6bDP46fG + 2afF2KrH3J680pWzzJ+92aTD46DA4p7A45W73ZXD45HD4pHD4o7A4Ie42YKy1IOy14a124i33Ym44Iq5 + 4oq544a034Ox3Ia034m24YCv2X+u14a24Ie34IOy2Ie124+/45HA5JDA4ZfF5Z7M65TC4JbE4JnH45C7 + 2I+716HM6KbS7pvI4Z7L4qjW8KHP7pnH6pjH75DA64S14oW444e844S734K624K72IW82Yi93IzA4I2+ + 4Yi63S0JdJvafKThfaXfdqDYdp7Ye6PffaTjeqDkfJ/repzwaIfmW3feUm3aRmDSO1XIPlrJSmfSWnrf + Y4XjbpLrdZvvcpzndKLkd6jid6vce7Dedqvcdq7fd7HhdK/dcqvYebHcgbbjf6/fd6bXdqbXdqnZc6rZ + dKjUd6nTeabNg6vOp8Xg097l4OXjrcfXd6TGfKW8q8XI2+/s2+7zrMPVep7Cc5zGfKLFlLfRqM7ok7vX + j7TQocTgosTipcbkq8rms9HptdTrttXouNfnudbltNHfnrvKob3OsMzfsc/krszkqMbfpsTepsbgm8Hd + l8TjkcLjiLnZhLXWjb3fj7/jibndirvfjbzig7LYg7LZi7rijLvkgrDagrDbjLnki7nkg7PciLrgjb7l + hrbeirnflsXqlsXqjrzfi7rblMDjksDhmMXkncnomcXlmMPhm8bkn8rmm8fflMHUmsfaoM3joc7oos7q + p9PypNLxk8DgjbzckMHejL3biLvZibzcjL7ijb7lkL/qlcTwLQl5oNN3ntJ3ndN6ntp6muFyjuBngNtf + ddlXa9pNYddIXNZNYdpZb+Jlf+dtjeh7oO2LtfOLt/CFtOh/ruB4ptp0otdzo9Z2p9h9sN2BtOF2p9l1 + pth5sd55sNxto851qtOIvOaCs952ptJ3qdZwpdFyq9V5r9mDt95/rtN+p8msy+bc5vDk5ue0yt5+qc6E + pr61x8je7O3X6PejudaAoMtzlsWDpsqkxeKbv959pMSBpsaYvNyhw+OcvducvtqmyOGrzuWpzOCqzN+q + y92hxNObvMycvc6jxNajxNmZvNKXudCgwtujxuCawN6Brc2Ft9eDttaBtNSNwOCTxeaHutp/stKFuNiI + u9uBs9WDttiIud6Gt9yFttqJueCRwOaFuNuCtteFuduAs9aCtNiLveCOweSNv+KLu96It9uRwOOSv+OO + vN6TweOWw+WSv+CWwuKdyemZxOOaw+Gex+ShyOWcw+Cix+Wqz+2nzOiiyeSky+eexuSRutqNudyTvueO + uuaLteWPu+wtCYKm3Xmc13iZ24Kg6X6X7GJ22kVTyDpGxDxMw0lfyl953HKO7Hub7oaq8JC68pTA7Iu8 + 4YW424K12n+y2Xqq13Wm1HOk03ao03qu1H+y2oCr2Xagznek0ICx2YCx2H6v1YW02Yi124e02oa23IG1 + 24C33YC33Ii93oS004KsyqnG39vk7Ojn6q/C2nOcxYemv8jU1ufx98jc84+o0H+e0HSYy5K03p2/44Sr + 0HSgx3umzI+22Ze+3o611I+205W92ZnB3pe/2pnA2pnA2Y+5zpC6zprE15vE2ZfA1pnC2p7H4ZzE4ZnA + 35rD5I2724W01Ya3146/3ZDB3o3A2ou+14K1zoS3z5PG3o/D2oi81Ii71Y/C3Y/B3Yu82Y/C3YvB2oK6 + 0oS704u/2Ym+2oW51oi72Yq+3Ia414e52Y2/3o7A3ou924u82Yy/2o/C3JLE3pjG5pvF7Ja+5ZrA5Z/F + 55/F5Z/D36PF4KjK46PI4KPJ4KXL5KLK5aDI6J7G6pbA5o244Iq33i0JeaLMeKHLeqLPgKfYgKPed5fb + bInXboffY3ncUGXQT2LTRlfNQFHIRljLVmvaaoTmdpXqgqfuha7qgq3hf63cfa7YfbDWfbLUfbPQf7LR + gavRfafNfKjMfKrMe6zKf7DLhbTQg7LPgK/MfbDNeK/MdLHNc6/KfbfQfbTKfK3Dn8XV2efm7vHqssnZ + bZm+hKW4y9fT3uztsc7le5/DgajTeaLOha/Vgq3Pb6DFb6XLdKjMe63MhrXRiLXOjrnRj7nUirPRh6/O + jrfWkbvXg67GfqzBj7zPnsvdn8vencjencfhmMHelr7fm8LllLnfiKzVjLDXmb/jnMHjmL/dmcDdk7vX + kbnUm8Xdm8Xdk73VkbrTl8HZl7/akLnUj7jTlsDbkLvXjbfSmMHdm8Thk7zckrvdlb7glL7fi7XWkLrb + lcHhlMDfkLzZj73Ykr/YjrzUjbnWlb7gkrzelb7fnMXin8nkm8bdmcLYoMncm8bXmMLUn8ncptDlqdHo + pdDmos7loMrknMfgLQmBsNGCstKEtNGEtdGCss+DstOFs9iGstyKteOMs+eHq+WAo+R7nONykOBmg9ZX + dctLaMBVcsxZdtJWdM5eftRtkd14oeJ9qd16q9F1qchtoMBtosBspcBvqsJ4tsqGxNWNy9yMytuIx9mD + xdl/yNp5yNl1xNN8ytd8w9BxtcGQxcvN5djy++m+3uJ0q8SLtb7U59be9Oiv1uOCssyBs9OIvNyAs892 + qsV4tNN2t9dztM6EwdWWy9uTv8+Tu86ZwdmexuCYvd2RttaLs8+BrMKEsMKTwM6iztyfytaOusmMt8qU + vdWUuNeOrNaareaMmNmFkdGKmNOLmtOJmc+LnM6Ro9KPos+KncmSpdGVqNSTptKTptKWqNWTptOKnMqT + p9aQpNSClseFmMuQpNeQpNiHnNGModaWreGLotaLpNaRq9uPqteHo86OrNSfvuWhwuSXvNyWwN6YxuGT + w9uSw9qYyd+Yyd+TxtmWyNuYyd2UxdmVw9mbx96bxdyaw9qkzOOu1Oqt0+otCYC104S51oS504a704m8 + 2YSz1oax3Yu054q05Y245ZO+65W+8Y2y7ZGy95Wz/I+q+4Sd+ml+7Vdp5Etd2ztPzDhRwkxrymWM1nGf + 1nGmzlqYtGClum61yHjA0n/J14TQ3IXQ237J1HnH0HzM1HvP13rT2XfQ13jP1nPHzmm7xIDDxrnezef4 + 3s/q3pzExanFvd3s1Nz146nY2X62woS6zZnQ6IG70nKwxni81nXA13S/zofO15vY4JzN1ZvH0aPQ3bHe + 66/Z66DK3JS+zo66x423w5W+yZ/G06HF1Je4y5Cuxpmy0Ziv1YCQwoOIzYaF03p6x3+AyY2P1oyN04SG + yYeLy4aKx36Dv3+EwImOypKX0oSKxYOIw5ab15OZ05KX05CW04mOzYiNzY2T1JCX14aOzn+Hx4mR0IiR + 0IyV05Cb1pOe2I+b042c0Zal2pOj14yjz5u73qXI6J7F5JK92pPB2pXH3JHF1o7E1JTJ2ZPF2ZPE2JjI + 25nF2ZXB05rG2aLN46XQ5i0Jf7XPhLrTgbXOhrjViLXcYom+U3S6WXTGTmzBS27CUHHIWHXSRV/BTWXK + VWzUV27YU2vZTWfXS2XXTmrdQmDQMlS6QWrBXIrSYJTOYJvEW6K5aLXCfMnXg87fe8jWe8rVgtLbfc3U + dsfMec7Pe8/Pec7PdsrNbsPIar7Gar7KcbrAq9bN3vHa5fTZ1eXL0trE5ujW1+3dm87DbqioirvJhrbM + ZqG6bK/Ia7XJa7jIdsLMh87Ukc/VkMfLmMzPm9DRn9TUpNjWotXTm8rLlsPGh7G3i7G7mrrLn7nSl6vL + iJe9kZnHoKbXkpXPg4XIiYrRgoXLfX/Fi43SlpjdjY/TfYDDgITFi4/OfYLBf4TCkpfTg4nEdnu3k5nT + mZ7YiI3Ih4vHlpvWmp/blJrXmqDcnqPgkJbSjZPOlJrVlpzXj5XPlpzWmZ/ajpTNjJPNl57XkJvPi5zK + obbiqMDtosLon8binMnclcfRkMTLjsHLj8HNlMTPl8jTmMvUlMjPj8PQk8fZms7jLQmOutKNudCHtsuQ + v9eSwN1olrpYhLRijMRlj8hplMpmkMhxmdVqks90ntp2pNx4qdl4rdh+ueJ5uN9ztN1trtpkpdNlptRk + pdNios1rr9FptMlntsNwv859ydp+zNl9ytZ+z9h90dd7ztJ6z9B70dFyyclpwMJpv8Ntwchov8ljrrWe + zcPc9Nzo+t7Z68/W38bi5NDR5NSby79+tbOazNd/scVhm7Ntrsdss8hnr8B6wMuMzdSQzM+RycqRx8eZ + zcuh1tKf1NCVysWPwr6XxsaSvMKRtsGbu82VrseHmbqSoMihqdqTmMuGh8OEhch4eL+Mi9KJiM98e8GH + h8yKis50dbl7fL+Zm9uSlNR/gcGDhcWMjsyFiMWLjsqWmdeFh8V7fbyIismNj86Ii8qNkM2ZnNmYm9iQ + k8+Tl9KandiXm9Wfotuhpd6Sls2LkMaUm9CVn9CNm8mNoMyYrtyivuWfw9+dyNqezdeczdGWxs6Uws2V + xM6ZyNGay9KWytCTx9KXytye0OYtCZG5z5W90Yq0x4izxZS/0o66zprD3KTN6JjH3JfJ2ZrL3Z/Q5o29 + 1pLF3JbN4ZbS3ZXW2YzU03/LyHrIxnnGzHnE0HS6zmamwGCbuXKxy222x2Gvu2OyvnG+y3LCznDAzHPE + zXfI0HbKznXLzXfNzm7Hx2e/wGrBxXPIzm/Gzme0uZfHvdXu2OL23dbozdTew9jbxMzcyaPNv5nMyZnJ + 04S3yWmguGWjvG+xx3G2xn/Ayo7K0JHJy5PIx5PIxJrQy6HX0J3Sy5LEvo/AvJrJx6LLzpy/ypa0xYSc + tHeJq5GeyKWt3Y2Rxn1/uoyN0Hp6wHNzuIWFyomJz4SEyIuL0H+Aw29wsoWHx5OW1oWHx4GDw4uNzIKE + w31/vYaIx4iLyYGDwoOFxY2PzomLyoKEwo2RzZOX04WJw4iNxpec05ec05yi1qKo3Jmf0pSbzJ6l1qOs + 2pmlz42dx5So0qC636HC26DH2aTQ2aTS16LP16DM15/K05/M06DO1J7N0ZvJ053L3aLR5C0Ji7vMjbzN + iLPEjrXGlLjHeZqmcZCZdJGXcoyMepONfZWSgpqecYuSd5SdgqSslL2/otLSmNHOhsjFesPEc8HHcsHN + bbrLWqK2VJqubbbHcb7LaLjBabnDcL7KbLzIaLrGbb7IccPLbcHGaL7CbcTGbMbGasTEasPEa8PIacHH + bbu+jL2zyeLN4vTa4fDU5+zR5eLK1d7Kqcq7qNTPl8nQeK69Z6C2a6nAebzQcrjGfL3Fks3QkMjFjsa/ + mtHIpNjRo9nQms/GkcW8k8S9nsvIn8jKlrvEjau7hJy1g5W3kp3JpKrbm57VgIG9gH/BfX3BcnG2gH/D + j47RhITHfn7Bfn7BeXm7gYHCi4vNgYLDeHi5eHq5fX69gIHAf4C/iIjIfX6/enu8lpfYoKHij5DPk5bS + oKPejpHLhIi/naHWmJ3Rj5XGlZzMmaDPmqHQoqjYoafUmaLKlaLLmKjRoLfbp8bepsvbo83TpNDTn8nO + m8TNn8jQpdDUqtXZp9PWnsvRmMTSl8LULQmFv82BuMeCsMKPuMqTs8ReeoRBV1pMXl1VZV5WYlpVXVhf + aGhNV1lOWl1NW2BPZWdbd3mMsraVxcyBvclxt8hmscVircRTm7NPlKtts8Votr9js7lmtb1otsFksr5k + s79rvMZvwchrvsNpvcFuw8VyyslxyslsxcZnv8Bku8BwvL+IuK/C2cjh8Nnj7dPs7NHq5MjW2MGuxLOw + 1s6Eubxrp7Roprlrq8Bts8Nps72BxcmNy8iCvbSMxLqYz8Kj2Muj2cyZzsGOw7aOwLeXxcGfxsebvsSN + rLqJoLmJmryGkLuPk8SXmM+EhL92drWBgMGMi8yEhMSKismXltaDg8NxcLB+fb6FhMWEg8OIh8eDgsJ6 + ermBgcCGhsV0dLN/fr56ebpwb7CNjMybm9mCg79/gLyRk8yEhr2EiLycn9KVmsuDibiIjruYnsmepNCe + o8+bosqao8eapsyVpcyXq82gvNGlyNWmzdGq09Oiyc2bwsedxcmkzM6p0NKn0NKhzNCcxtKdyNgtCXu2 + xYG5yYO2yoayxpm/0JO1wZKxtpu6upa6toy0sou0tZi8wIanrJSvtJ22uICYl0ZiXl1/fYewso/CyXy3 + xW2qwGynw2KYt2WVtXyzy2y0vWKxtmSyuWi3wGi2wWm3w269x2u7xGi5wG7AxG/CxG3Cwmi/vGi+vmvB + wmi/wW65uoW2rb7Wx+Lx3OXw1e3sz+7lx9XVuLfHsbPWyoK7umittV6ismuuwW64xmq4v3vExYvMxozI + vpPKvpbMv57VxaPZyp3SxJLFuJDBtZbDvKLMyaHFypGuu4OYr4OTs4uWv4mPvouNwpeXz4SFwICAvoaH + xJCRzYyNyZWX0o6Py29xrHV3so2OyoWGwouMyY+Qzn19u3d3t4aHxn19vIODw42Ny4KCv4aHxZeY1Y2O + yYOEv46QyISIvnJ2qYOIupeczI2TwYuRvZuizZuizIyUvJScwqCpzJWewpmnzKG21aK/0qfK1K/V16zU + 0qXLzJ3CxqHHyqnO0afNzabPzaTO0Z7H0afQ3S0JhLfFgbPDeqm7i7rMi7rKhLK/iLe9j8HBiby9g7i+ + jMHMhrbGgau9jq/BqsbVwNriaISGQmVkdKOff7q6ZamwbrXEbrHIUo+tXpKyc6zFcLW/ZLC1Yq60ZK+3 + Yq23ZK66bLbCbLjDZ7W9aLi8a7y9abq7ZLi2Y7e1Z7u6ar6/cLq6mMvFvdvN0eTP5fHW6uvM39q53dy8 + y9e+r9HCf7+5ZbG2XaWyY6m5X6y3Y7O3gMrGiMm/gbyxj8W5lMi7mc7Am9DCk8i6jcCyj8G0mcW8oszI + mr7BhKGseZCkhZWzl6HGlZvGhom5fn6xlZfMi4zCfoC2i43DhYe9h4i+lJXNf4C5dHWuj5DJiIjCfH23 + iInEg4S/eHi0iorGfn25eHizhIS/h4fCjIzGl5jQkZHKgoO6h4i/iozBd3qsiYy9mp7OiY68f4SvkZfC + m6HLjpW+k5rBnqfIjJe4jp29nLHMpcDRpMfOp87NrdXQp87MnMTDocjHqs/Pps/LpM/KoczLmsbKoszW + LQmEs7+HtsODsL+SvsyKt8OGs7uRv8KPwMGIvb+GwcSHwsmMw9GFtMaWu8+jwtOZtMFYcnttkJSIs7d5 + sLdsrLlvsMJwrsVdka9eh6h8qsR3t8FqsrVosbRpsbhmrbdnr7pttcJstb9ptL1wvMJ3xMZ3xcZvwL5q + urlqurlsvL1ut7eVzseoz8Oz0LzZ7NHk7MvY17Ti5MLX4serzLpxs6xoubtirLlmrLtuucNwvsF9xb6T + 0Mab0seWysGVyb6f1Mao3dCh1MaOwLKMu7Cey8Gp0syjxsaUsrqLorOMnbaSnb6XnMWWmcWRk8GSlcWO + kcJ5fK2Jjb6VmciNkcKIjL56fa9ydamHib6MjsR8frSEhb2Cg7t0da6Fhr+HiMB6e7N7fLWDhLyGiL+O + kMWTlcuMjsKGibyPk8SFibqHi7qPksOGi7iAhLGOk76XnMiRl8KWncOepsaVob+SocGYrcihwM6ny9Co + z82o0sykzcidxMKiyceq0s2n0cqk0cmgzcmYxcify9MtCX2yuoK1vJC/xJO7wZm6voSeoX+UlYKVlYCX + ln6amXKPkYGdn2qEhXiOj36OjWdzcWZ0cpatrZe7wH+wu3CqvmmlvWulwGGQrmGFoYGrwHy5wG20tWqw + tGuvuGestmesuG2wvmyxvWevuGy0u3fAw3nExXG9vGm2tGe0smi1tmu0s4fGwJPHuJ3FsMXixdvryNje + t+Lnwtfixa/RvXzDuWG4t2q0v3u+zXK5xGy2uIrLxJzTxo7BtYq9tpfJwZ3Rx5rPwpHDtYm7rYy7rpG9 + s6LLxJ3BwImmrX+XpYCSqIqWtJaew5OYwIeIs4+SvZidyJKWwZOXw5CVwJSYxZGVw4eKuX6BsXx/sIyO + wISGuIGDt4SFunx9s3t7somKwH+AtHJ0qIGCtoyOwYyOwJOVx5OVx4WIuYqNvoaJuYeKupiby5eayoiM + uomMuo6RwJGVw5acw5afvpmmwZanw5ivx6DAzqTKzaLMx6PPx6DLxJnBvp/Iw6jRy6bRyaTSyJ/OyJfF + yJ3M0i0Jgru9frS3kr/DjLCznbW3anl8S1JUXF1eX2BgWl1eVFhXXmRfUFdNVmBQXGZUXWlXZndnbYh+ + hayqf7K6YJ2uYqK4ZaS8U4yjXo6jdqe2c7G1aq2ta6ywba62aqu1aKm1bK24Z6uzXqWrY6uvcLm8dr++ + b7m4arWybbi0db+7fcS/h8nDi8S6k8Sysdi+yOXE0eW+2erDz+HBudvFdLKnZbCvWJ2mWZilYqixbrS2 + hcO+jcC4hraujL22jb62lMa8l8q9jb+zgrKmhbSomcW7mb+6jrCwiKathZ2rg5SohY+rj5a3lZjAj5G6 + hIixgISsjJC4lJjBh4q1jpG8jpG9dnmmen2qkJPBjY6+iYu6f4GxjI2+kZHDfX2vgIG0hoi4d3mofn+u + j5HAjI29j5HBmJnJh4m4hIW1h4q3ioy5lZjFkZPBgYSxh4m3lZjFlJfDjZS6jZe3jpu5j6G/mbHJoMHP + nsXImMO9ptLJoMzEkr64ncfBp9HLpdHKpdPKodDJmMfFn83QLQl/sbGQv8GOtruQs7qcvMSLq7KKrK+Z + v76QubmMtbiWvL+Ts7SSr7GZubabv7um0cyVxL6Ht7WAtLRvqKxhoKllpbNhobJTjaFZiJ5om6tpp6lm + qaZnqatoqK5qqbB0s7t6vMBtsrFgqKZsuLR/ysh9yMV3wL56wL15vbd3uq+IyL2Fv716r7OAs7SNvrea + y7eu4L2/68TA5sHC48ilxLp8oKNml51moahss7Zjrax0tbSMwcKFtrOFtK2Pv7SUxraUxbaMu7KIta6L + t6+UvbWVvLeWtriMprF+kaaDkqqUobiYn72OkLiGh7OJjrmEi7aEi7WMk72Ah7GCiLOKkLpxd6Jtcp2J + i7eBhLCGiraChbJ+fquEhLGIiLV+gKyGirWAha54f6aRmL+Yn8aHjraTmcGJkLh5f6d9hKuIjraLkbmX + ncWOlLx+haySmL+XncWLkbmaoMmSm8OJl7yWqsiXtsahyc6bx8Om1s2ax8OKtbWcx8aq1dKizsem0smn + 1c2bx8Sj0NAtCYa4so+9u4yyto2xt5e6wYSmrIGnqYu2tIq1tY63u4ywtX6ZnmV8gXuWmI2srZO5uJbA + vo63uIKtsHGhpmico22lsGqhslmJnlyEmnCarWymqGippmqprGypr2+rs3q2voPCxHq8umyyrW64snW+ + unC5tm+1snK0sGmqomqom4bCtn20tH+zu4C1uXuxrYrDsJLPrp3Xr7LjvKnQs6HAtI6trXelqHCrsF6j + o1ihnm6vrIC1tX6urHqqo4e2rI+/r4+/sIm2r4axq4mzq463r461r5Gxs5CptIear4eWrYyar4+Xs42P + toqNtoaMtn+GsIOKtI6Vv3uCrHl/qYiPuXl/qXF2oYiKtoWIs32ArH+CrX1+qXp7p4SFsHh6pXuAqYCG + rXh/poiPt5qgyIqRuY2Uu5OZwYCGroOJsYiPtn6FrIOKsYGIr3l/poiOtYyTu36DrIyOuo+Wv36LsZGl + xJm4x5nAxJvIw6DRyJXCv4izs5bAvqHLyJjEvZ3JwKTQyJrGxKfS0S0JjsG4hreyirKyk7a4l7a6ZYSI + XX59fqGdkrSym7q8i6Gmc4CFRlFUW2hpWmpqWW9ucYuKjKmpkbG0f6SqcJyjdKOucJ+xWYSYWXyUb5ep + cqqtcK2sd7G1eLC3d663fLS8f7q9c7KwYKKeXqKda6+sa6+ta6yrcrKucK2nc6+jjsi8gLi5eq+4fbO4 + dK6pebqmjtSxneG4nNmwlcmph7CjsdrXc6WnY56gb7OvYqiibq2nhLq2fa2oeqiihrSqjbytj72wirav + iLGsibSrjrevjLKsj7Cxkqy3iZyxg5GoiZaskZq1iIyxdnujf4WwhYy3fIKtf4WwgYeygoiyeX+qd3yn + foKtgYSwio25f4GtgoSwgIGtenunhIWxfn+rfoCrh4u2f4OtgYWvkpfBhou1fIGriY64d3ymeH2ni4+6 + hYmzhIiygYWwdHmjfIGrhou1fYGriIy2mJ/Hgo+1kaXEn77Ok7u/mcbCmsvCkb66iLOylb++oMvHlsK7 + mse9n8zDk8C8oMzKLQmNv7R/r6aLtLCXurmWtLVXcnJVb2yOqKOjv7qhvbuSp6dzfX9VXV2YoJ+otLGP + oJ1Wa2hrg4OLp6mCpahtl5xomKFrm6ldiZxhh517pLR4rK9zrKt0qq5wpKpsnqd0pq99s7h4sbBvqad2 + s69+vLl2s7JtqqlyrKpyq6Z4sKSUycCBtbdxprB8tLl1s69vtqOE1bCO4LSH06ma3LmKv6yEs62Fublv + qKdkpqBssad5tqyBtq1/rqZ/qqSHsaiLt6mLtqqIsaqGrqmHsamLsaqXu7WQsLCBnKaEmKuKma2GlaiI + kqqPlbWRlryGjLR7gqx6gKqGjLZ6f6pwd6F2eqRwc554e6aOkLyChbB3eKNxcp5+fqqJibWGhrKAgaxy + daB0d6N5fKd6famIi7eIi7d2eaV8fqpzdqJydKCLjbmEh7OChLCJjLiBhK9+ga2DhrJ9gKqFibGXnsaK + l7yKn72gv8+WvcKVwr2YycCPvbiEr66Tvb2gy8eXwruYxbuax72LubOVwr4tCY29r4Gvo464r4+zro+t + qVt0cGV7daC2raO9tZazro6loGx6d1NfWpikn6y6ta3CvHiRi1Nua3GRkIevsHemqnGmrXKptWCSpFqF + mm2YqXisr3atq3eqr3alrHCfqXinsYS1uX+zs3OqqHOsqHewrnKrq3aurnmvrm2kn3Gmm5HFvIa5vH+z + vnSus2Wln3G8p33Ur3/Yq4vhspbivXq2oneropHIw2+no2ysomipnG6om4W3rYSxqIGrpIawp4ezpIWw + o4KrpIKopISrpImuppO2r46trIOdpYGWpoSVpo2drZekuZKZt32DqHh+p4WLtoOJtH6ErnN3oXR3onZ5 + pGhrlnFzn4eItIOEsImKtXV2ond2ooKBrXRznoKCrXh5pW1wnHl8qXt+qn+CromMuXl8qHl8qX+Crmtu + momMuIKFsnx+qoOGsnt+qnh7p4WItYSHsoGFrJOawY6dwIKYs5y8ypnBxJG+uJnKwJC+uIGtq5G8uZ3H + wpTAuJjGuZvIvY67tZjEwi0Ji7moibWnlLyzjK+pl7OvbISAVWpjiJuQpL2xmLeslK+jcoJ5WGRbi5qR + oLCnnbWrYX1zY4F6i62qhK2tcqOkcaetZZ2nWIuZWYWYbpuph7q9dKmpcKKndqWsbpijcJmkgq+ze6mr + apqac6ikea6tdaqrfLGxeayrap6ZdqqfjcC1jMDBfrO7a6OnZ6WfdsKqgtuzgt2tgtyriNiweLihZ56T + hbu0isC9eLCpaaSVeK6fi7msibCojK+sjbOshq2hgamdhKqkg6ilgqifiq+kkrWtja2qdZGWcoeWiJmp + j6Cvkp6xiZGtfoSndXujeoCrfoKten2pb3KeeHumeHqmZ2iUbW6ag4SwgYGscnKde3umcXCcenqlfHmm + fHqmg4KubW6acHGdgIGseXqlhYeyhoi0eHqmfoCsbnCbfoCsjI25fH2odnejf4CriIm1hYaxeHukgISs + jpW7jZu+kafBnLzImsPDjLqzk8S4hrWsfKilj7u2l8G7k7+3ncu9lsO3jby0ksC6LQmMtqWSvKyTurGJ + q6WaubSFn5tnfXRhdmhmfnCAmYyLoZRve3BdaFuNmo19joFqgnVphnmIqJ6RtK18o6Bum5xsnaNtnqpt + mKdmiZx2m6p+r7Nwo6N3p6x0oqptl6F3nqh/p612oKJwnZ10paR7rayCtbd5rK1+r657rahwpJiTxryD + trV3q7FzqKpinJNyt56O4biN5LOF3aqS4rd1tpxon5J8samRxb+Lwbh1q557q56JsqiHrKWNrquRtK2N + saaFrKCFqaODpqKDqJ+NsqeKraSFpaB2kpZxhpR5jZp+kJyRn7GOmbJ5gKCBhqyDiLJ9gKx6fal+f6uF + h7Jyc59eYItrbJh7eqWDga15d6Nyb5x0cZ12c6CAfapyb5x5d6J0dJ1ycpuFhq+EhK6EhK2Pj7h1dZ97 + e6RwcJl5eqOMjbaBgap5eqN8faaEha2OjreChKt1eqCHkLSKmrqUqcSjxM+hysqWw72bzMGJuLB+qqeS + v7qbx7+YxbugzsCWxLeQv7eYxsAtCYuwoJe8ro6yqYmrpZq7tpOwq4ukm4CXimqAcmB2Zl1uXmJrXF9o + WG15aXWGdYqjkpGvoJW2qYGkmnidmHefn3CZnnigqnaXqGd+knSPn3uqrXerqoCxtnWiqnCZpIKos4Kp + r4Cpq3aiomSTknampXKjpG+io3uurHOmoGqdkoq/s4O2tHmrrnOkommeknm4nZHasI/erIvdp5bgtH+8 + onWrnXGknYK1sJHEvXyuon2nm5C0rIuqpoWjoYuqpoutooWonX6fmnudmX6imoeqn46vpoaln3SPkXeN + mIGVoH+SnJKjsJikuoWMq3uAp31/qoqMuIyPunBxnWprl3FynmlplGxsl3l4pHt6pX57p3Fum357p25r + mH57p3d0n4B/p4SEq3R1nH5+pYSEq319pJSUunh4n3l6oHh5n3V1nISFq35/pXt7on19pH9/po+Qto2P + tnh9ooSMsIOSsoOZs5q7xpnDwpjGvaDSxZbFvYi1r4+7tJO+t5TBtqHPwJfFuI+9tZTCvC0JjK6glLar + f6Obg6ijiq6pe52XjKqhnbaqmrGiobekm62ZoKqZmaORnq6asMawsdC7ocWzlbysgqidf6ahe6Sjc5qf + ep2oc42dcH+VhJuqfautfLKxe62zbp2la5OfdZyneqKnd6Cib5mZcZ+dfa2uapudc6and6uqYZaRaJ6S + e6+khrq1fK6tcqCbe6mai8GjlNOlkNWhjtejk9irh7+mdaiccqKbf66rkMG6h7ashayjja2miaajiaSl + iqijjK6kiayhgJ+bfp6chKWchqqeiKugiqmifpmcd46Yeo6Yf5Obmaq2l6S4fIShfICngIKteXqmcHGc + a2yYd3ikcnKeYWCLbWyXgH+qe3qmd3ShdHGdfnqndXKfgn6qfnulenmhf3+le3yhgYKnhYesenugh4mu + enyhdXabgoSpc3SZfH2idneceXqfgYOogYKniouxio2yeH6jgYqtgpKxfZStmbrDkry6kb+0k8W3kcK3 + jLq0lsK8nMjBmMW6nMu5j72ujLuynMvDLQmYt6ubu7F8oJiNsayWubSAoZySsKmct6yMpZWKoo98j3t+ + jnp/j3t/lH+OqZOTuKKlzrqTvayAqp5/q6J0oZ53oaWCprBsh5Zvf5GCmah3paiAt7Z3qa50oql3oKp3 + naeHrrSAqattmZl2pKJzo6J0pqZxpKRvo6BqnphonpKAtKh9sap6rql+q6J8ppaOvqCk3K+e3KiT1p+c + 26+WzLNypZZ0pZ14qKOBsaqLubCQtq6PrqeOqKWLpqWHpKCMrKKMraKCoZyBoJ2IqaGCpZmQs6eaubKC + np93jpiBlqCInKKSo66IlKh1fZp6faR3eKN3d6N6e6Z0dKB0dKBpaZVnZZBxcJx1cp59eqZyb5yBfap4 + dKB+eqWCfamEgKt9fKJ8fqCBg6SFh6mJi62GiKmDhaeFh6lydJaBg6R0dpiChKZ5e514epyChKaAgqSF + h6mKjbF/haiDjK6Dk7F4kKeZvMWSu7mSwbiay72Mu7GCrqiWwbuk0Mej0sSk0sKRv7CNu7KezMQtCZW3 + ppKzo4Ghk5W0poqnmYull4eekG+Fd2h8bmd4a2R0Z26AcWV3aGR3Z2N5aG+Fc4OdjIunmY6uo4Gmnm6X + k3mio3ujqGSGkGyGlGmGkn+nqn2pqXOdnISrrnWanX2fo4KmqXidn3Sbm2qVk3GdmnimoWualH2spHak + mWmWiIe0pIezpoOtpYCrpXiknIe4oZ7VrJ/ap5vWoqHcrZbMrIO6o2ykkW2klHesn4CwpZS9sJS3qIOh + loiknI+tooyrnH+dkIGcl4KemnqakICgk5OyppWxqYadnYWXoI6fp46cpIyXpYKHoGpsjWtrkoB7poF8 + qHh0n21olXVvnXVwnmZgjm5pln96pnJtmW9qlHhxnHZxmX55oYN+pXl2nICAon1/oHp8nn1/oHZ4mnt9 + noGDpHx+oG5wknh6nHl7nX1/oH+AonFzlH6AoouNr4mLrI2OsIOGp4GKqIGTrHmSo46wuI+4t4u2sJO/ + toizq4StpZC7spTBt5bFuaDPwZrHuJXBsqbSwy0Jl7yoiq2Yf5+Mmbejkqyado18bYFwdId3jqGTm7Km + kKibm7aokKudk62elKybip+QZXpsaYB0hKGWep6WcJqVe6emdaCja5GYZIaPZYiPhq2tfKaie6Oggail + eJ2bgaOig6WlfqOieJ+dbZaReaSefKiheaachrGldqCSeKGSkbmpkLeqh6+mfaaheKOeiryom9Srl9Gf + ls2cotmrntayjcapd7GZerWed62deKeclr+wmL6pgqOSjaqelbKjjq2cfpyNgJ2WhJ+beJaMgaCUjKqd + iqSbfJKTe4yUjJqjk6Goj5injJCqgIGjdXKadm+Ze3SfhX6qdGyZbWWTdm+db2eWcGiWfXajeXKee3Se + eHKbeXObgX2ihoKld3SXeHmZd3mafH+fh4mpgIKienycenyccnSVcXSUeHubgYSkgIKih4mqdXiYfYCg + jI6uhYioiYqriYqshoypiZuygZyrkbS7lL29j7i0lL23irOsiLGpkb20kb6zksK1nMy/mMW4k7+vqNPD + LQmUu6aTuKSLsJyXtqOVsp9mgW9ognCTq5qduKiQr6GFp5iRtaWBpZV7noqRr5yhvKx1kIBceWp1lol2 + nZN4op1/qqhym51xlptae4Npi5CDqql9pqCHrqt9oZ+GqaiJqqmKrKqMsK19op93n5p/qqN9q6GFsqZ8 + qJtpk4V7pJOLsqKKsaSEraR4oZt3opiRwqmj2bCXzJ6QxZei1qui17KZ0K+FvaF6s5txpZZynpWLsqSa + vqqOsJ2IppmLqpuLq5mBopOGpZ2Kp6OBoJaFppiWtaeGo5hpg39vgomElZ2OnqWXobGTmLN1dpdxb5R9 + eJ99d6CBeqR4cZxwaZVsZJFrY5F2b5x6dJ94cpx5c5x5c5t5dZt+ep2CfqGBfqCDhaR/gqB+gZ+HiqiG + iad/gZ99gJ5zdpR9gJ53epiDhqR9gJ6FiKZ3eph5fJqKjayLjquLjKuKi6yFjKiLnrOFoa6StryVv76U + vbiWv7iMta2IsKiOubCQvLOSwLaYx7uQvrGLtqmhy70tCZjBrJK6pYWrl5a6pZm6p22NemiEcZOwnqHA + r4qsm3+hkoOmlX2gjYCgjZCtm5+4pm6HdWuFdn+dj3qcknygm3qhnWyRkmeIjVZxeHGPlH2kooCqo4iw + q3yhnIqtqoqsqomrp4irp3qgm3uknX6poX6qoIe0p3eilG2Xh3qikYuyoYetoYSro3ulm3illJbIq6/k + u5/UqJbGnafWr53QqaneuZHKqHStkHSmlnmjmn6llpa8pZ7BrIeomoSmloOpk3+jkoGim4OjnnqckX2h + koOlloakmXiSjm2Bh3yPlo6fp5CcrIWLpXBylHNxlYB8oYB6ooJ8pHhxm3Nrlm9ok2tkkXVumoB4o3x2 + oHNtlW5pkHZylYF9oYeDpYaEo4WEpIWFpYSFpImKqYqMq4SFpISGpXN1lICBoHd5l4mLqnt9nIeIp36A + nnt9nI+RsI6Rr4iJqYuMq4KIpIqdr4Shq42ytpO8upa/uJfAuIy1rYewp4u2rY66sZK/tpXEuou4q4aw + pKDHuy0JnL+qlrijg6OPm7ikmrWhjaaTepN/gZiFmrKgmbKik6ycjqiWjKaTkqmVhJqHjJ6Leot5j6KS + jaOUgp2SgaGaf5+be5qbZX+EZHl/iqOniKyok720iLGqfqSehKiiiq2njK6oiKulgqehgqujgauhgqyh + hrKkd6KSfKaUdZ2Ki7Ohhamehamhgqqdd6SPkcKisOO5o9SplMCansukotGord+2oNauh7ycf6+efaeg + faOVjK+Ynb+qmLmqhKaWf6SQep2NepySgKKbfKCTgKOUkbKjiqqdepaSgpaciZuhg5WaiJWjjJOqcnWU + fHmbg3yge3OagXmhgHmheHCZamGLaWGLenKcgHmhgHigc22TbmeLeHOVgHubgHuag3+egYCeh4mlh4qm + hYmkhYikg4aijZCscnWRe3+bdXiUjI+rdnmVhomlhIejgIOfkpWwio2phYWjl5a0hoqljp+whaCsi6+z + lLq6m8O9m8O7kbevirGpjbaukby0lsS7m8i+j7muh7Cmpc3CLQmKnIiEl4NwgW17i3d9i3iBjnt9ind6 + h3SAjXyCkYF/kH9vgm9qfmlvgWttfmd9iXR9inaImYeKno+En5GFppyJqaSDoqB0j5Jyio6Io6WUubSX + wLaKsamJraaNsKmQsquUta+KrKaEqqKLsqiIsaaOuq1+q5qBrZt1oIxynIaQt6KCp5qBpZmBqJh5pIuX + xaK25bqn0qmTvZegyKOhzaOv3rOs37SZzamGtJ+CqaCJrZ6TtJ+ev6ugwrKRs6KFqZR7n414mpB6mpSB + pJeWuamYuqqQr6J9mJJ4jZCIm6CKnKKGk6B+hZ12eZh2cpWAeZyEfKKCe6B8c5t4b5h1bJRqYop0a5KK + gamCeaB3b5Nxao11b4+GgJ+JhKJ9eJWEg56NjqiKjKeKjKaKi6aIiqSIiqR+gJqAgZx7fZeCg56EhqCI + iaSIiaSAgpyPkKuSk62GhqGRj62Gi6SQobGKpK6TtbmVvLmZwbugx8CXvbWRt6+SurOSvLaZw7uZxLyN + uK+WvLWexLstCZ6smJimkYaTf5GfipShjpGdiZahjZ+rl5unlJGfjJCfi4KTfoWXgYuehpKji5mokY6f + iImbh42kk4Wlloasn42zq4OopHyennSSlX6enZW8tZa/s4yzp4iro4mro4iooIqro4Omn4CmnIOsoIKt + oJXAsIOwnYiznnOchnuii460n4mtnYqtn4asmYSrkqPNqrvnu6bQpJm8l6nMp53EmrHdr7bouaXZr5PB + pomvoIWmloSkj46tmpu7q5K0onyfim2Oe2+Ng3COhneXio6unZS0pIiomnWNiXeKj4ean4eWnIyWo4GJ + oHN0k3hzk4V/oImCpoV+oYJ6oH51nHlxl3Vsk3tzmYd+pHtzl3hxk3ZvkHRujYB6mI6JpY2JpYyKpIuM + pYqLpImKo4eIoYmKo4SGn3+Bmnd4kYaIoXt8lYSFnoGCm4mKo4iJoZOUrZSVroWFn5STromPppKjs42m + sJa2upO7t5K4spm/uJa7s5K3sJO6tJO9tpjBvJfAuoy0rZzAupe6sy0Jr8myscqzorqkqcKsp8Cporuk + pr6osMiys8izscSvssWwq8Gqqr+nobadm7GXp7qhpLeglqyWlK6ajbCfi7WmjLisgKmkdpyacpOTgKOh + kLaukbqtiK6igaaZhKeciquhiqyih6ifhqughq2gg62elsGwkLunhbCac5yFfaSLhauUjrKglLeni6+d + iK+Wo8ypuOC0psyfnb6WrcymkbWNqNCmu+q7suO2oM2shq6Yd5eGeJSDgp2NlK+hm7mohqWQcI58dpGG + e5ePgJ2Qkq+fk7GghqKTcomDdYiLiJecjJibkpumhougb2+Ld3GQf3iYhX6gg32efHSYeHCVfHSYe3OX + fnaah3+jgnuegnucdm+Oc26LeHOQiYSfioagiYigkpSrlpiwj5Gog4WdfoCXhYeef4GYe32UhoiffH6V + goScgoSbiYqihIadkJKplZeuioqhlZOsiI2jj6CuiaOrk7a2lLq2k7eymLy0lLixk7axlry2mMC7nsbC + ncXAkLaxnL+5mbq1LQmixKumyK6ZuaGgwaihwaifv6eixaypzLKsx7CkuqSWrJWLoYiLo4iDmn6BlnqN + oIWEln6Bln6MpY+PrpyUuqmVu6+Cp6JzlZFph4Z3lpOTt62Qt6mGq59+opaKq6GYuK2QsaaFp5yGqp2E + q5yFrp+RvauUwKqIs5x6ooqFrZOQt52St6GUt6OJrpqCqJKXv5+w2Kus0KClw5mtyaKTtI2myqK/67u1 + 5LSm0quDrI9ukHx9l4p9loh6lYWWsZ2RrZZ8mYZ3kYd7lYyEnpKVsZ6Trp2EnI50iIF9jI6Om56NmJ2Z + oKyQkadyb4xybYuIgJ+Mg6N/dpaBd5mEep56cJR+dJeMgqaEe55/dpeJgaCBeZeBeZd3cIuFf5iNiKGK + iZ+WlqucnbKYma6PkKWDhJmLjaGAgZZ+f5SJip98fZKBgpeFhpqNjqOHiJ2Rk6eZmq+OjqSYla6Ok6aV + prKPp6+YuLiVubaVuLObwLiUt7CRs62UubOWvbmdxb+bw76Ps6+Yu7eVtrItCaS9pqfAqZexmqG7pKO9 + pqK+p5+8o5CslIafiIKXgHmPd3+VfZCljI6ih5CghqGulJ2okIWTfH2PeXSKeXWQgYSgloSfmYCVk3qK + jICVk4iqn4qzoomuoHufkoCilo6to4amm4WnnImuooivoJO+rZbCr53KtZG8pnyki3mgh4Opj46ympa4 + oouum32gjouvkajOobPVpqvInaS/mJm3k5y+mLLcrqzbqbDetJO8nXaWgnaQg3eOg3yUhoagjoyokoOe + i3uSiYCYkI6nmZOsm4ymlYKZiniKhIaTlZKdoY2WmqCkr5iXrnVxjnBqiYV+nYiAn4N7moF5mXtylHpx + k350mIZ8n4d+n3lwkYV9nIB3loeAm3JrhYN9lpGNo46MopeXrJmarpycsZqbsIaGnIuLoX5/lIaHnImK + n3h5jnx9koCBlo2Oo4eHnJGRppqar42Oo5eUrZGVqZusuJOsspi3uJO4tJS4saDEvJa5so6xq5S4s5W6 + t5rCv5rBvo2wrpm8uJW2si0Jrcixr8iyorulpLymrsWvoLagj6OOhZiDiaCKl7Gak66Wnbigrciwobmi + obmhscews8Swq72poLSiip6Re5CHeY6Ig5WTkJ+ghpOWlaWlkayljq6jh6eceZiOg6GXlrSrk7Kom7mv + n7+yk7WmncKwmb+rmsCrlLmigaaNia2Tl7meoL+jpcOnl7WegZ+Kjq6NstKkudalqsSWn7mSmrSWm7id + qsimu9qy0+/FwtqxoLOSipuFg5eFiJ6PhpuMj6KPk6KRgo6ChJKHipmOjqGUkKaZiZ+RfpKIiJmRl6Wf + l6OgnqaqmZ6sfICTeXeOgn6Xj4yliYWggX2Zg36af3qYgXqak4yqjYekdW+Mh4GehH6ahoCadW+GfHaN + j4yhlpinnKCtmp6rl5uplJimio2clJWnioqcioqci4yehYWYhYeai42gjo+jgoWYjI2hlpqtkJiplaKw + k6SwnLO7k6+0lbe3kbSylbq2n8O/nL+6lrmzlrq0m765oMO+nsG8nL63mrq0nry2LQmmxrGjwq2fu6ai + vKezyLWZrJmJmoierpynvamfvKeWtaCWtJ+oxbGat6OfvKirx7Wpw7GjvKygt6qasaaTp6GCk5GBkZGR + nqJ5iIuImZyVqaaTqqWRqKOLopyXrqqkvbaXsqmUrqWXsqaPq52Xs6ScuaicuaWat6KHo42Pq5WQqpKn + vqK4zrCiuJ6EmoOSqIq4z6W806Otw5GkupGgtZ2it6efsZ64x67b5MDg5LnGy6CjqoeIlXqBlYWGmYuL + loWXno6JjX6BhXl8hHqKl46RpJqIn5J8k4ODmIaZqpufr6WbqKeYpKuFjpt4fYyChJWJipx/f5N9fpKA + gJZ5eJF/fZaSjqiGgpx2coyMiKGDgJiBe5KAeZB9d4yKh5mRlZ+Yoqifqa+cpKuQl5+HjJSQkp2RkZ+T + k6GQkKCMjJyDg5SLjZ6OkqOKj6CSl6mTm6uRoKuZsriVs7abuLyTsrSYt7iStLSZu7qbv72cwLyavLeX + ubOfvrigwLidu7OjwLeVsaigu7ItCajEsJ65pZqzoKe+q6m9qo6gjYyciam3prLFsqe/rJ+5pZ64pK3H + s524pKK7p67Hta7EtKG3qJ2ypZ+0qqK0ro6fmnuMiYiXmXuJjISVlZuvraK2s6S3tJmuqpquq5qwqoad + ln+Wjoykm5CpnI+om5WuoJOsnJOtnIKbiYKbiX+WgaG0mr7Nr6Kym36NfomZgbLAnMvZrcjUobvHm6y6 + nai4ppell5yol8PLruHkvt3ctLu5ko2TdX2Oe4qai4CKeZKZiJidjoSLfn+Kfo6dkpmrn5ClmH+Tg4eb + ip6wo6OyqaOysJ2qsJCYpJSZqJOVp5SVqJCSpYmKn4aHnImIn5GNppuXsZeSrYiDnZiUrY6Ko5GLooyG + nIR/lI+Mn5SXpJ6mrqewt6mwuKKnsZKVn5CSnZOToaSksqSjs56crJWVpZucrJ2fsZibrZ+jtqWrvJyq + tZeutZKtspeytpCtsZe1t5CwsJS0tJCysJi5uJm8t5m5tZ6+uZu7tZi2sJq3sJWwqaC7si0Jp8Ctorqn + m7Geq7+sp7qmjp6NkJ6Mq7imuMe1r8KworWim66bpbimlqmWnLCdrsGwsca1o7ioorWopLasobKqh5iT + cYF+hJSTiZiamqmrq7q7qbq5orOylqelmqupoLKvkKKeip2WlamhlKmfkaWal6ygkKWYkaaZgpiKf5WH + e49/pbOaxc2xnaeUdX52gIh5pKqNzNCn09WgyMmYtbuZucGsoayilJ2Wr7Sl1dW65+G6186ipqSBhI94 + jJiGgYl1jpSDo6iZjJKFgIx/j56SqbyuprmqiJyMjqGQpberpbSsp7Wynamtk5ykl5yplJimkJKjj5Cj + h4mcfX+SgoGXj4ylmZavlZCriIOelZGqiYWekYuhjoifgXyRhIGVk5Sko6i0pKq1oqiyoqWvmZumlJWg + jY2bmpqooqKwnJupkpKhl5enmJmqkJKklZiql5yskp6qma20layym7K4la+zm7e8lLG0lrS2krGxmbm4 + mbi3mrm2oL68nLq1nrq1nbiznbaxpsC6LQmovqyyxbSjtqWtwK6vv66isJ+appalsJ+1wrK0wrKksqGc + qpijsaCSoI+Zqpivv62zxbSouququ66er6OSo5mLnZWGmJOWp6SNnpyVpaWhrrCms7antbWeqqqhrayn + tbKbqKSYpZ+ir6ibqaCcqqKot66hsKegr6eQopiHmI6CkoaxvKXM07aYno5weHSBhX2en4jJyKLZ1J3R + zJe/v5jEybGps62RnZ+gqKLGyLXj27jg0qO8tYyTmX2Jk3uPlX+OlH+jqZiSmYqAinyToJOqu66mt6mH + mIqRo5SwwbSqubKrubaZpaaOmZ6NlJ2XmqiPkqCKjZ2Ji5x6fI55eI2OjaKbmbGSjaeKhZ+SjqeFgZqV + j6WSjKOAepB/e5CMjqCjp7eprbyfoq+anKmYmaaSkZ+Dg5GMipibmKeVlaONjJyVlaSWmKiNj6GRlKaR + lqiKlKORoKuTp66dsbiZsLaetryWsLSYtLmWtLafvb6auLiaubigvryeuremwb6fubWdtrKhurYtCa3A + r7nLuqq8q62/r7LCsam4p52qmpegkqOtna24qZqllZKejaKtnJqnlaOxn7TBsLXFs6e3pqCwopanmZKj + l5usoqKyq6Ozr46em4+enKe1tKu4uqy4uKWwsKKtrJ+pp4+Yk5SclqeuqKKqo6ewqbfCu6+7tau3sZmn + oo+emIWUjKu3ocXNsJGXiW5zdISIhJ6ejcrHpeDapN/bocTDmMzPtKu2sZCgpp2qq7S6r9XRsN3Pn8G4 + i6mqiZSYfZSYf4+UfqitmqKqmomUg5qnmKKyo5ammIKShZOkl7LDuKy7tKy5t52np4+Zm5CWnZygq5SY + oo2QnIyPnXx+j3R0h46MoaGetZKOp4yIoZaSq4iEnZONpJeRqIJ8k4aCmIyLoZ+gs66xw6ipupubq5OT + opOSoImGlJCOnJeUoZSRn5COnpiYqJybrZWXqZeYq5eZrJCXp4+ap5Cgq5yrt5mrtKG0vZmvtpu0upi0 + uJ+7v5q2uZy5uqTAwJ+6uqS/vp23taG5t562tC0JqbuqrL6tqLmprb+utMW1sMCwr7+vq7mppbCgoayc + jpiJgox9mKOUmaWTm6mXoK6cnKqYlqWUlKSTo7Olr8CzqLmtn7Cnl6efk6Kcnq2prLq5p7W1prKyprCv + qrSypKypjpWPk5qTpq2moamhpq2mtL23sry3rrm1nqyom6imi5mSnKeUwMmvlp6Sb3R2hYmHm5yQv7+g + 29il3tqiyceZ1Ni5sr+4lqmsnbGxnqyjuruf0caZvrOHsq6JoKGBiYtvi493rbOgr7injZmGipaFnKqY + laSUg5KEk6KXrLyxqbixrLm0prGukpybm6GloqivnaOqk5ehi46beHyLb3CBjIqeoqG1kY2kjoqinZqy + kY2lkoylmZOsfniQhoKXjoqikJCmoKC0qKe8mZmrjIqck5CgjIqYmJail5WhlJKelZOhmpmonZ2unJ2u + mJirlZerl52ulqCvlJ+tm6e0lqSworK+na+6n7S8m7K4m7S5mLK2n7q9qMPFo72+obq7nba2qsLCpLy7 + LQmsv7CxxLWrvK6uv7GxwrSsva+vwLKwwbOzwbS5xriotqigrp2vva2ksqCfr52isaCfrp2mtqSuvau2 + x7a2x7mnuKujs6ihsKeYqJ6cq6Wquberu7msurimsa2rta+wuLGhqaCorqOrsqaWnZGlrKK6wrq6xL61 + wbyhr6yaqKeKmZWRno3Fzrejqp5udHOGi4mZnJKxspnW1qnW06HR0KPR1bW9y72bsKubsq+dsKigpY+7 + so7Jv5fAuJGvqIaHh2l7f2WhqZSwuqaRnYmKloKfq5icp5aGk4SWpJmxv7avvre0wbqrtbCXoJ2epqap + r7Ojqa+aoKiOkpx1eYVwcYKRkaSop7uXlKqRjaSdmbKQjKWSjKWXkap7dY6AfJSSj6mVkq6bmLOopLyk + obaXlKeWk6ORjZujn6uhnamZlqKXlKKbmaign6+gn7GcnLCYma2Zna+co7WcpLWhqbqeqLeerbqdrrqh + tL+kucOetLuasbeiu8CqwsanwMKkvcCgubqlvL6jurwtCae6q67Asau9rq/Cs7PGt67Bs7HEtrPGuLTG + t7jJvK2+r6e4p7fIt6y+q6u9qrTGsrjKtrvMurfItrTGtK6/sKi4qrC/srTCt6a0qZ6tp6u8ua2+u629 + tqW0rKy5r7W/s6iypKy0pbG4qaKpm6+3q8DKvrbBuKi2sJemo5ytqqCvq5qll8fPu6yvpXFzcYSIhJOW + jKGjjc7NqdDMoszIoMnJqMfSvqq9sae9tKa3rZaciq2ojMvCnczAmNLJo6yqipSXfrW+qcTPvJ6qlY+b + hZumk5unlJKej6ezqbzKwrK/urG+t6q1sJukn5yko6ivsaSrr6GnrZKXoHR4hHZ3hpybrayrv5mWq42J + oJiUrY2KopKMpZeRqn13j4aAmpiTr5aRsJiUsKaju6ijup2Yq5mVpJOOnaairqWirZ6apZeTopuYp6Kg + sKOitKCfs5qZrpqbr6Kkt6Gmt6CnuKGpuZ2nt56ruaGxvKa5xJ2xu5yxuKO6wKa/xKe/w6W6wKK5vaG3 + u6O5vS0Jqb2vrsK0qr2vsMO1tcq7sce5s8m7sce4r8W3tMq8p76vormntMq4qsGtqr+tssmzuc23s8ey + rcGstsm1u868uMm5uci6tsW3rLmurb20tcjCsMW/rcG5q7yxtMO2tsKzo66dpK2cucGuuMGvtb+vusS3 + q7isobCpmKmjorSxqry4pa+jvsGxp6acfnt3jo6ImJqPoJ+Pysaq0Mypz8ejzcem0NW8uMa1rsCypLSn + lpyLp6CLv7KR18eb+e7E19Syp6uOtb+puMWyk5+KhZJ7maSPmqSRjpqLprKovcrEtsS+uMO9sbyzn6ih + n6ilrLSzp6+xqrC1m6GoeX6IfX+NoKCxqqm9l5Wpioeem5ewlpKrnpixn5myf3mSh4GbmpWympS1m5a1 + qKO+p6K7oJmuoJqrlJCepZ+sr6q1o5+pm5ehnZqnpKSyqai5paO4nZyxnp2xpqa6paa6n6O1pKu9n6e4 + prDBorC+pLbBnbC7obW+p73EpLzCp77EprvAprzBn7W6qL7ELQmvwravwraou6+swLGyxrevxLWwxbes + wbSrwbSzybqswrKpv625zryxxbKtwa6zx7S0yLWzx7SuwbCyxbW5zLu4ybq2xrmzwrSuvq+2x7i80MSx + xLetwLOxwLG4x7a2wrCfqpicppWnsqCfqpqbp5qntKmnta2quLKhsKycrKmHlpOYoZmws6acm5KGhX6T + ko2dn5ilppjEwqvQy63WzqnVzqrPz7O8w62uuqqYppmMkoWXk4Oon4XQxJ/8+M/i4bmtsY2mrY2pspWQ + l3+QmIOfp5ObpZSCj4COnI+yv7W2w7y9yMK3vrmgpqSkq6yttbiorrSrsbefpKx+gY1/gI+cnK2pqLuf + nrKOjKOZl6+TkaqXlKybl7B/epKKhZ+alrOblrabmLainruloLqhnLGfm6qWk56hm6ayq7ipoa+cl6Wc + mKelpLKqqbqmpbecnLCenLKmprqjpLidobSjqbydpbeksMGisr+gsr6arbmftb6ku8KiusCmvMKjuL6k + ur+ftLmqvsItCbHCt67As6y/rqzArq/BsLDEsrDDtK7AtLPEtrrLvLjJt7TDsrvHtbvGtbO+rbrFt7rI + vLbHu7XFvLXHvrbJv7rOwLzQwLvNurbHsLLErsTVwb3NvMXUwcfWwMDNt7K9qZunlJGcjJ2pnZ2rpJCf + mqKzr6u7uai1tJKgn4+cm4WPjJ2loK61rqClno2Ri4qQi5qhnK+zqLy9qc7KrtfOqObft9TRr8TGq7e/ + rpqlmoeOhIuMgp6djMvKrvb1z+rsvtTVo7CwfrGxhaGhgZ2dh6OomLfCtZSkloSWiLHBs7fDuL/Fwr/A + xaeqsqSptKivu6SotaaptaSks46NnYeHmKGhs6+vwp+htJaarZ6iuZeaspGTq5uasn16lImFoZuZtp6f + vZmaupuauqyqxKurvJucp5+epaWjrLGsvLCpvaSfsp6crKemtK2uuqantpybr6GftaqqwaSlvKWqvqGo + vJqlt56tvqe6yaK5xZu0vp24v6S/xanDyKnDxqjAwqe+v6q+wKu/wC0Jpbatrb2zscS0rsKvrsKvs8a0 + s8W4qrqwqLqssMGwpbekna2Yqbaisr2qtL6svsm5v82+ucm9t8i9t8q/uM3Cu9HCvdG/vNC6ucy1uMqz + wNK+ucq4vs25xdO+zdvFxdK9q7ilpbOlsL+1qLmypbezq727pba2obGwj56dl6SiqbSxtLu4oqmjmqGZ + k5mPh46GnKOer7Ssrq+fv76j0Mmj6eK43tu3vr+ioamYk5uUkZeOkJKFn6GOy86z6+zH7e/B4OGvu7mH + u7mNsK2Nn5+Jr7Skx9HEqLepmaqbtcW4tsO4ucG9u7zDqqy2nqSvoqu2oKazpai2qKi3l5emkpGipKS2 + rK/An6O1mZ2woaa7mp+0k5WsmpqyfnuVi4ajnpy6oKG/nJ29nZy9p6fAqaq6oKOso6WqrKu0r6u7rai9 + pqK2op+wqKi1rq64qKi2n5+yo6O4q6zEpajAoqm9nKW5mKa4n7HBprzKobvHpL/IqMTLqMXKqsbLrMfK + rcbIrsTGrsTFr8PFLQmdrqWqu7Czxbaww7Oww7G2ybi5y72wv7WnuKupuqiktaOdrJeksp2ns56ns5+3 + w7G/z728zL66zL+6z8G80sS+08W/1MG/07y+0bq90Lm3yreou6mmuKevv6y8y7a2xLGYp5WImYmVppuk + t7Crv7qgs7GLn52XqaiVpaSdrKqwvrq0vbqQl5KTmo+dpJWQloulrKezubOnqJ6ysZvIxZ7g3LDa2bK1 + uJqXnY6WnpidpJqXmoiipY/Mz7Pe4Lzm6L3l5LW9u4y+vJK1s5ShoIu2u6vN18q4x7qsv7C6zL66x7+1 + vrqxtrmnqbOfp7Kmr7mjqrSnrLarrbqenayYmKijpLaqrb+jp7qbobSmrMCfpLmXmbKenraAfZaLiaOe + nrygosCdnr6cm7yhoLqmp7ejpa+kqKyur7evrLuwq8Cpp7qmpLWqq7iur7qpqbekpLenqL2ssMaorcWg + qLyYpbiaq7yjtsenv8ymwMyoxs6qyM+px8yryMyryMutyMmvx8itx8atxcUtCa29tbHCuLHEtq3Ar6y+ + rbHEtLnLv7zMw73Pwb/Rv7fHtKe2oaW0naKumKCslrK/q7/Ou7zNvbvOvb3Tw77VxL/Vw8DVwcDVvcLW + vcHWv73RwKC1ppermpirmZ2unKS1o52tnoudj42hlaK2sKi9upmvrJCmpKm9vJaop4ydmay7t7K7uYmO + iZGWiKatl52jk6mwqrG1tK2uqqqpmsK/m9XTpt3dtMHDpZ6jlJWblpyilp+lkK60nMrOtNXYt9nbstzd + sry7kL+9lre0lqemkb7Csc7WysDPwrfJvL3OwsDNx7jAvrC1uKqutaKrtKy0vqmvuqqvuautup+frZub + qqSmtq2wwamuwZ2ktqevwaGovJygt6Klu4KCmomIoZ+gvaKlw6Ciwp2ev52dt6WnuKeps6Omq66wuK6r + u7Gtwq2rvqmouaytuq6xuqqruaipvKutwqywx6uxyKCqvpmnuqCzxKa+zafBzqjEzqTEzKPEyqjIzKzL + zqzKzKvJyqzHyKzHx63IyC0JtMS9tcW9tce5tce3tMe3tMe2tce7uMjAwNLGxdbFscKum6uVl6WPnKmR + o7CZuMewwdK8vM67u869vdLAvdXDv9XDvtO/vtK7wtW+xdjDzOHStsu9us6/s8a1nq+flqeYkqOVfZCE + eY6Dma+ossjFo7q3kaelqL26nK+tlKahs8O+tb67i5GLkpeGqa+ToqiUp6ylq66tsrOyqqqcw8Ogz9Cj + 19iuvL6djJB/dnp0g4l7pauTwMatyc+31Nm70tOw1dSuvbuUv7uZs6+UrayYx8m70NfLw9DEusvAvMzD + wtDKusbFtby/sbe+n6ixrLa+qrO8qK+5p6u4nZ+sm56rp6u6sLXFrLLDnqW2pay/oqm8nqS4p6q+hoad + h4aeoKG9pqnHpafHo6PEnqG7p6u6qq63pKitra+3q6q5sK7Cr63Aq6q7rq+7r7G7qau5qau/q6/Dqa7F + qbHIoKu+m6q8o7fIqcHQpsHOpcPNoMDIn8HHp8nNrs3Rr83QrMrLqcfIrMjIrsrKLQm3x7+6y8K2yLyz + xre5zL29z8G8zsPB0cnG1sy7y76svKytvKmntZ+wvaaxvqfE073J2sTC1cG/08G/1MPB18fD2MjC1sPB + 1cDE18HH2sa+0sa1yb++0ca0x7muwLKhsqSTpZiQoZaVqJ+pv7mxyMShubaUq6mMop+QpKKgs6+uvril + r6mMlIuXnYerr5CorZatsam1uLe1t7ixs6jQ0rLZ27DJyqG+v52io5GLjoWIjX2epIu9xKrK07nV2sHV + 2LnMyqrLxqXGwaK5s5rJxrLS1MbIz8PAzcLC08rE1M3B0MvAzcy8x8mwur+gq7KuucGvucKrs7ukqbOd + oKukqbSssr+ttMKwucimrb6gqrystMagprqprcKRk6eFhp2doLuorMqkp8emqMinqsSprb6rsLqus7iv + srqtrLuzscWyscSurr+ytcG0uMKtsb+rr8OvssaprsWosMelsMSiscSmuMmqwtGpxNGhv8mhwMmixMqk + xcmszNCy0dSxz9Csycqqxsarx8ctCbPCvbrKw7vMwrjKvbvNv7nLv7TEu7jIwbzLxKu6sZinmpyqmqez + obfDrbnEr8TSvMfXwsHTwMDTwcHWxr7UxsDVx8jbzMzdzcTVxLjKu7vMw77PyLvMwrLCtrbFubfEubrJ + vrnIva2/t7DEwKq+u5GnpoOYloOXlJCjn6W3saa1rpehmYyThpWbhKmtjrW5orm9tLrAvcLHyLS5r8TJ + q9jas9HSqsTEoq6vmZiajI2SfqCnjLzGrMPNtsnRudTWvMfGqd7avd3WvNjSutvYxtTVyMbMwb/LwsDQ + y8LSzsDQzcLPz73KzLK+wqOwtam2vK23wLC3wKWqtJyeqamtubG4xa22w7C6x6SuvZ6quqq0xaGou6mv + wpCVp4SGnJyeuqWqyKKlxaSmx6aqw6mtvquxu6+1urG2va+vv7OxxbOyxbGwwbO1wbS4wa+ywK6xxK2x + xqesw6uxx6axxaOyxKS2x6e9zajCz6TAy6LAyKLBx6XEya3N0LbU1rbS07DLzKvGxqvFxS0JprWxscG6 + uMm+ucu+vM7Bu8zAtsW9usrFucjErbq2rruzsr+ztcGyusazx9K/zdrHw9K/wNHAwtbGxNjKxtvPyN3Q + ydvPxdbKwtLEv87CucjBusnFxdPMsLy0mKOZnqieoa2kqLavqbeymKmmnbCtnrKwnLCumKuoiZqWmqqk + pbSsmqaaj5aFjpN7oaWIvcCqub+zp62psbi3pq6mo6aPxMal1NWwzcypvb6kqayWn6WMt7+j0dvB0NvF + 0drD2t3FxcWr4d3C5uHH6OHM4d7L19fKytDGw8/HxNPPxdbTw9TTxdbVxNPTusnLq7u+q7m/sbzDt8LJ + qbC6nKGsrbS/ucHNtb3Ktb7MpbG/n6y8rbjJp7DCsbfKlpqsg4ebnaG8qbDNpKnJp6rKqK3GrLLBsbfA + tbvAt73Et7fHuLbKtrfJtbfHtLjEtLjDsrfFsrfJr7PIrK/GsLTLrLbKp7THp7fJq77OrMTSqsbQqsfP + qcbNqMbLrszQt9PWutXWt8/RtMzMtMzMLQmsure2xb+5ysC7zb/B08bC08e+zsbE086/zsqlsrCUn5uT + n5auuK25w7TG0cDH08LE08LF1sfE1sjD18vG2tHH2tHA0cm6ycG+zMLG08vF0s66xcO9xsO6wr2rs6yr + s6qgqqGeqKGyvrmuvbqVp6OJmZiMnZugsa6GlZKOnZiksqigrJyNl4KLkXeho4a+v6rBx7mttq6yu7i1 + vra5u6jCw6fLzKrDwp+8wKG5vqLByKvY4cTe6NDV4cza4c3T1sK+vajDvafg2cLr48/v69jf39HM0sfG + 0crG1dLF1tTC1dTF19fG1tW9zM6xwsWywca1wce5xMqvt76gp7Crs725w8y6w863wc2msb+frLuvusqs + tMa2vM6YnbCBhpqepL2stdGmrcynq8yprsarssKxt8C1vMG4vsW7u8u2tsq1t8m3ucmxtsKvtb6yucWx + uMqvs8iwssmxs8ustMepssWqtsiuv8+vxNOqxdCtyNGsx8+nxMmrx8y0ztG50tO50NK5zs65zs8tCb3L + ycPRzsDQx7zOwsDRxcDSxr3Nxr7MysPRz7vIx6KvrZaim6Wwpqy2qcbQwczXx8rXx8vbzcrcz8TXzb7R + ybzOx7/QycLSysDOx77LxMjT0LzGxJKclq62r7rCuaOsoaatpbO7tbnFvsPPzbfFw6Kwr5Wkoqq6t4aU + j4qWj6axp6KtnI6ZgZidgqinjra1oczPwcvRyMTMx8fQx9PXxM3NtdTRssjFo7y8nLe7nMjNr9zkyNHb + xMvXxN7o1tncydLSvru1ouXdyujhzu7o1uTl1dLYzMrVzcvY1MnZ18bX18ja2sjY18DO0LjIy77M0brG + zLnEy7S8xKastaiwurnCy7/J07nD0Km0waGtu7G8zK+4ybnB0pqhs4GGnKKowrO61qqwz6qvzqqwyK21 + w7C5wrW9w7rAx7y/zrW2yba4yri6zLG2w6+1wLO6yLK5y7C1ybW4zbK0yqyyxqqxxa25yrTD1LXI1a7F + 0K3G0KvGzafDya3IzbnS1b7V2L3S1LrN0LjLzS0Jt8XExtXTuMfBqbmwo7SqucnBw9LOvcrIvMvJvs/L + w9PMw9LHvcm8xM+/y9XEvce2tL+uztvNzt7SxdXMw9XMvs/KwdPOxNbQvc/IwdHKw9HNp7Kvl6Gapa6k + jpWLjJOJsbitw8rCv8jBwMnFvcfFsLq3pK6rrrexiJCJgId+rbOooqqYi5J6mJmDpaGOtbGfx8W1vb6w + xcu9x86+0NG/x8Gu4tS/3MqyxrWdzMCny8muytO31eTL0+TQ1OLR2eHR2+DOzcy6w7+u6eXT8u/e6uvb + 193QztbL1ODX0+Dby9jWzdva0NzcxtDTvsbKwsrQucDHvsXMsbjApay0sLbAu8LNwMjUvcXTqrLAp7C/ + rbXGtbzOvcTXkJepiI6kqKzItrnYsrXSr7PMrLHGr7bEtb3It8DJtr/IuL/MtLvKsrjJsLfIsLbIsbjJ + sbjKrrTHsbbJt73Qs7nMrrXIq7TGrrvLtMPTtcbTr8DMsMXPscfQrcTLssnOus/UvNDWvM7Tu87TvM/S + LQnD0dC+zMqhsaqTpJqYqZ+1xbzD086/zMu9zMm9z8nC0snD0sbAzL7K1MTS2snK1MPJ1MTS3tDN28/I + 2c/D1cy3ysS5y8e+z8u8zcbG1c/C0My7xsOnr6mfp52do5qgpJyiqZ+yurHEzcbDzMjEzsvCzMmvubai + qqV8g3x3fnWxt6ymq5qLkHqamYSkoIyzrJq/u6mrqpm0uafCx7TExbPDvarj1MLkzbzMtqLLuqTHwafG + y6/U4sjX6NLX5dTh69jc4c/Cw7Glo5HNyrjv69vy8uLf4tXQ2MzU39TV39nP2tbS3dzT3d3J0tXHzNLK + 0NfCyM/DydCxuMCpsLm2vMa/xM/ByNS8xNGss8Gor8CqssPAyNrBydqEi56RmK2xtNC4uNi3uNSztcyv + s8ayt8W4vsq7wsu4wMq7ws64vs21usyzuMq0uMu1us21us2zucywtciutMezus2zus2vuMquusqywNC3 + x9W6yte3ytWyx8+xxcy1yc+8ztW+0da8z9S8ztO/0NUtCcXR0cTQzr3MxbnJvrnJvr/PxcTTzsfV08bT + 0cLRzMXUy8jUycrUx8zWxtDXx8/YyM/aytDbz8vZzsXWzb3Ox7rLxcfX08rZ1LzNxcDOyM/Z19be3cTK + x7G1sK6yrKeqpZyim7C3scvSzsTPzbnGxa+9u5mmpJShnoyYkn6IgKKroaGpmo+TgZ6ciKegjLStmc7H + srq3oq2xna60oLS3pLu6qNrOvt/Ovs67qMe2oMa7o8fEp9TZvuLu2eLu2+bu2s7QvbOyoJ+di8K/rvPw + 4P387ejq3dXc0dLc09Tg2NLe2dXg3tPe3czV2M3T2NHW3crQ1sPIz62zu62zvLvCzL/F0LzDzrO6x661 + wq20wq20xMXM3bK6y3yDlaOpv72/2ri417m51ra3z7K1yLW6yLvBy73EzbzCzL/F0b3D0Lq+z7i7zbm9 + zrm90Lm90Li8zrW5zLK4yrS6zbK5zK+3yrG8zbjE1bvK2LrL17nL1bXI0LPFzbfJ0L3P1sDS18DP1b7O + 1MHQ1i0JxNDOws3KyNTNxdPIxdPIw9HIxtPNyNPRvMjGtMC7ucW8w83C0drO1NzO0djK1dzNz9fKytXK + xNDIt8W/p7Wxqrm1w9LOxdPPr723q7ewq7Gwv8PE09bVxcfFrK6ql5mVnqGduL65xc3LuMPDoa6wm6mq + lqWmmaimipmWZXNtoa2jrbSpkZODnpiHqp+Ms6iRzMOqxsKpwsWuwMezrbSisrSlw72v0MOzzr2rzbmk + 0sCny7+h1dG25OrVvcSxrLCdoqSRxsSz39vL5eHT7Ovc9/fq7vDl2+LX1t3V1+Da1uHd1N/c0dzaz9jZ + 0Nba1NjczdPav8XMp6y0sLW9wcbQwcfSu8DMsLbCsbfErbTDtLrKwcjYn6a3jJOls7nNvsHbubrXu7zX + t7nQtLjJt7zJvcLNv8XOvcTNwMbQvcPQur/OuLzOubzPur7Qur7PuLzNub3PvcDTtrvOr7bJrrbIs77P + vMnYvcrYs8TQtsfSt8jRs8XNt8nQv9DWwdHXwM/VwM7UwtDWLQm3vr24wL3J0snF0MTF0MS/yr+7w72r + s7CWnpqUnJaXoJinr6TDyb7N08fP1cjZ4NTT29DDzMTGz8rI1NC6x8S7x8XO2tbEz8ugq6SXn5qWmpuy + trjW19jS0dHMzMrHxsPDxcG6v7yaoqGFkJCRnZ+ToaSRoKOera6WpKNVY2CAi4XEycCioZSRiXmsn4y7 + rZXJvaO+t526u6O6vqq0u6uvtKatrKC9tqnQwLHXw67hyq/ZxabGup60s52coIugoI2hoY/Rzr/n4tPf + 3M318uX8+/Dz8efm6N/e4tve5N7c5N/V3tzQ29nS29vW3N7Z3eLW2t/EyMyorbS2vMPM0trJztfFytS/ + xdC0usaorbu+w9LFy9udpbOyucm9wtW8vda/vdu/vtm7u9G4ucu7vsvBxc7DyNDBx8/Dx9HAw9C9wM67 + vs28vs+9v9G9v9G7vc+6vM67vdG8vtK6vdG1us22vc67xNW+yti7yda7yta5yNK2x8+7y9LC0NfE0tjD + 0NbD0NbG0tgtCb3DwMPJxNHY0L/Ivb7HvMXOw7e9t4ySj3h+en+GgHyDe5OYj8LGu9baz9PWzNHWy8bN + xLK5tKSsqqavrrG8usPNzM7X1MrSzcLIwpygnKeoqru6vc3NzsvJyMTDwLWzr56em62wr7C2toOMjH+L + jaGtsa27vczZ2dDd3ISRj3J7dr3Bt7Swo5uRgauei7ipkse5n7askqeki6qrl6+yoqaonZmYj6ihlbus + nNC7ptvCp9a9nr+ukaSchp+ch5uXhL25p9TPwdvWx9nWyO7q3/j27PTx6evr5OTn4eHk39zk39ni3dTe + 3dTc3Nrf4Nrd4djd4sXJzrO4vcPGzdDU3MzR2s/T3crO2bC0v620wcrQ3cPI17vAz77E0r/E1r+/2MG/ + 3MHA2r2+0ri8zLu/ysHHzsLJ0MHHzsPI0cDFz73Bzru/zby/0L2/0b2/z7y+zru8zru6zr290bu80La6 + zbe9zrzE1b7I1rvG07zI1LvH0bjFzr7L0sTQ2MXT2MTP1cPP1cXP1i0JwcXBuLy2zdLJzdTIzNPH0tjN + y8/Ir7KuhoqEZ2pkYmVedHdtqKigzc7F2tvS1tjQu8G7t726qbCwkpubjpiYq7OzxszKusG6vsC5zM3I + 09PU1dTX1dPUwr29qqajmZeSi4mFj46NlZiXl5ydusLE4ert4Ort0tvb3eXk5Ozox83Gy8zCvrmroZeG + pJeDtaaPwrKZxLaerqWPta+drq6erayeoZ2Qp5+Qs6WTvaiTvqSL1Lmc4s6ywrWfraSQrqaT2tPB4dvL + 29XH2tbK7ung+vfu+PXv8u/q7Ozm6Orl4+nk4Ofh2+Tg2eHf3eLi3+Pk3eDkyc3RvsHGys3S1Nfd09bf + 1drizdLctbrEur/M0dXhxcvYxcvZwcbTwsfYw8TbxMLdxsTcwsLVvsDQwMTNxcnRx8vRxMnPx8vUxcjS + wsPRwMHQwcHRwcHTwMLSwMHQwMDPwMDSwL/Tvr3RurvPvL/RwcjYwsvZvsjUv8rVvsnUvMfQwczUyNTb + ydXbx9HYxtDXyNHYLQmam5eUlpCytavDx7vN0cXO0cbKzMTOz8vHyMStrqmcnJWnqJ/LysLd3NTZ2dPM + zcm8wL6wtbWUmpx4gINsdHaFjI2vtLKcoJp1dW+IiYO0s7LKyMnZ1tTHw8CwrKi1sKu3s66Zl5N4eHV4 + enuOkZKprq7V2drl6ejX2tjNz8qys6rCwLPLxredlIKViHavoI23pZHOvam2p5W7sJ7BuajDu6yvqJmp + n465qpjHs5++pY7Rtpzt1bzLuKOxo5DKvqzs4tHs5NXj3c/g29Hq5Nz28uz39O/07+vy7ers7Ojm6uXg + 5+Lc5+Db5eHd4+Hi5ubb3eHKzNHGyM3P0dbV2N7V2eHY2uLO0dq7wMnIy9bQ097FytfFy9jDx9bDxtfF + xNrGw9zGw9rEw9bDxNLExtDGydDHy8/Hys/JzNTGyNLDxdDBw9DCwtDCwtHBwtDBwtDAv9DAvtHBwNPA + vtK7u8+9v9HCx9nDytm/x9TAydXAyNO9x9DBy9TI0trK1NrJ0djHz9bJ0NctCbWzr7Cwqrm6sLu9ss3Q + w8TGu6ipobe2srq4tKOgm767ttnWzuHe1t7b1NjX0cLCv6OnpYmOkHyChYiPkpOZnZCWl6aqqLm6tZaU + j42Mh9TS0dnW1dnW09zX09zVz+Lb0+nj3djUz8XCvszJx8nIyLGysqeoptLSz+Tj37y7s7Gupri1psvG + tKOch42Cb6qbibGfjcu2p8Ctnb6tnb+woce6qMO3pbeqmLank8y4o8uznMevltvBqs65o8Gvm+bYxe/k + 0+3n2O3n2+Tf1trVzvDp5fz18vfx7/Xx7vDv6+nq5+Pq5d/q4t7o4uLn5ujq69fY3MnKzs/R1dfb3tnc + 4djb4tfZ4szN18HCzNLX4c7T3cjL2cnM28nM2sbJ2cjG3cjE38bE28fH2cnK2MnL1MfK0cjM0MrO08vO + 1cjK1MXH0sPF0sTE08TE1MPF08PE0sPB0sS/08TB1cLA1L+90cHB08bJ28bM28LJ2MLK18HK1L/I0sTM + 1cvT3M3V3MvT2srR2MzS2S0J2tfUysfD0tLHzMzByMe8ra2ikY+ImpeTtrOuwL24x8S/29jR2NXO09HL + 1tbQyMjHtrq5nKCimp+kt73Cy9DUtLi6nZ+fp6elj4uGenZyjoyJo6GetrOvzsvE3djQ3dfO4dnR4NjS + 2tXR3NnV1tLQx8TDrKmnraiky8TAzMS9raacoZ2Mwb2oqKGOjIJvpJWEqpiKvKaaxrCju6aXuKWVt6aV + ybqnxriirp6Iwa6Zz7miv6iQz7eg2cKszLij8+PQ69/N7ufY7une39nQ1dLJ7Oji+fLu9vDu9vHu8O/q + 6Ovl4uni3unh3ufi4+nn6uzs0dHTwsTG0tbZ3uHl2t3i19nf09XdxMfQv8HL3N3pzM7ZyMrYy87czM7c + yMraysjeycbfxsTaycjazc3by83Wx8vQyMzRzNDUy8/VycvVxcfTw8XSxMXTxcbVxcbVxMTTxMLTxcDU + xcHWwsDUwL7SwsLVyMrbyc3dxcvYxMzWwcrUwMjRxszVzdPcz9XczdLazNHYzdLZLQnV08zZ1tDRzsbX + 1svV0ce+ubG9t6/Ty8a/ubWjnpnEv7rc2dXf3trU1dLLzczJzMzO0dTLztHFx8vExsrR0tbS0tW0tLWg + oZ+lp6SysK+emZqUjpKinJ3Mx8fa1NLEvbrGv7rj3dfc1tG3sa2wqqWwqaSnn5ylnJi8sq7Gu7axpqCX + kIW9t6ezq5mNgG+jkoG0no21nozKsKDFqZrGrZ2/p5fQu6rbxrTFsZ21n4rJs5zCrJO8pY3bw67aw7D1 + 49Hv4NDw5db37+Tm4NfV0Mnn4dz69fD48/Dy7urw7urq6+fi6OLi6uPi6eTs6uvl4OTLx8vHxcrY2d3g + 4+ff4ufZ3OLS09zMy9XFws3X1OHW1ODLy9nKy9nM0d/Fy9jGyNfJyNnIyNjKytjMzdjMzNjKy9bKy9bL + zNjKytfJydbIx9bGxtXFxdTExNTDw9PDw9PEwtPFwdLFwtPCwdLCwdLCxNTEx9XFytjFy9fEzNbEy9XE + y9TIztbO0tvS1d3T1d3R09vP0dktCbWzq83LwtDNxtjUzMzFvsO7tc/Gv+PY0d7U0NHJxdzW0tzY1dbW + 1M3Q0MnOzcnOz8zQ08vN0MbHy9HS1czKzq6sr6Slpqaoqaasq8HDxNXQ1dTM09fQ1uPd4dzV18nCw83H + xtvW0t/Z09XOx7qzrbSuprevqMe9udHHw72ysKOXlZCKgbm0p8e/rpiLe5eFdLKbiK6UgMmvm8uunMuv + n8qvoNe9rePKute/rbSdiL2mj8Cqkbafh9a+qebPvPfj0/np2e/j1e/m2+7n3uDa0trVzu/o4/fx7fHt + 6vPx7O/u6uXn4+Tr5OXo4+/n6uHX3crEydHN0uHf5d/g5tnb4tTV3cfFz8XBy9bQ2trT39XP28zK18vL + 2cnN2cHH1MXI08vL1szL1s3M187N2c7N2c7N2c7N2szL2crI2MrI2MnI2MjH1sbE1sXD1cXC1MXC08TD + 0cXC0MXD0cTE0sTE0sXG08TH1MbK1MbM1sfM1sfN1sjN1svP2NDR29TV3tXW39XU3dHR2i0J2NbOz8zE + 19TM39vTxsC5xLy1wrmxzMO75tzW4dnU2tXP19TQ1dfSztPRxsvKw8jJyM3Oy8/RwsTJzc7SysnNnZ2g + enx9b3FyeH18qausxMHG083T1M/T0s7Q2NPV3djX3NfU2tfT3dnT39zU19HKuLOsk42IlY6JvLOwycG9 + sailhoF5l5KGxb2vpZmKi3losZqIrZSBwKWRvqGPx6uczbGi0beo28Sz2cGuvaeStJyGuqKLuaGKxq+a + 38e06tfF/e/f+O3e6uHV9O3j6uXc0MrE39nU9O/r9O/t9fLu8O/r5ufj5Oni4+Pf6eLl3dPZysLH08/T + 5OLo4N/l2djg2tniy8jRura+zsjQ2tLd29Xf1tLdzczYyszXz9Ldzc/ZzMzWzs3Xz87Y0M/Zz83Yz83X + zsvXzcvWzMnXy8jWysfWycbWyMTUx8TTxsPTxsPTxsLSxcLRxcPRxMXSxcXTxsjSx8nTx8rVx8vVx8zV + x8zVx8vUys3W0NHa09Xc09Xd09Pb0dDYLQna2M7W08ng3dPf2tC7s6rNw7vUysLOxbzg18/e2NHb2dHZ + 2dTS1tHGy8m9w8G8xMPHzc7R1NfN0NTExsrNz9DR09OwsrKQk5OYnJqssbDOz9HU0dXRztDNy8vY1tXh + 3tzb2NTc2dTi39re29be2tXa1tHV0MzLx8LPycbc1dPm39u0rqePin+8s6e0p5mJeWmtl4W5no64m4q7 + nIzCpZbLrp/HrJ3Rt6fVvKnHrpi3n4e5oIi8oou6oY3DrJrGtKLq2srx5tjn39T17+Xs59/PycPf2dT4 + 8u758u/48/Dz8e3q6eTl5uHd3NjZ09TWztHNx8va1Nro5urj4OXY1drOy9HJxszFv8Wyq7LJwsrk3efa + 1d/Jx9HMy9XS093S0drQz9jS0drS0dvS0dvR0NrQz9nPztnPzdnNy9fNy9fMydfLyNfJxtXIxdTIxdTI + xdTHxNPJw9PIxdTIx9PJydXKy9fKzNfKzdbJzdbIzdbIzNbJzNXMz9fR09vU1t7W1t7W1dvU0tgtCdjT + y9rVzN7XztPKwpWMg6GWjrqup8O4sNfNxtnSzNzZ0tzZ1tDSzMbMx8PKx8TMy8fPzsrQ0cbKzMjKzMrK + zMrKzNPV1dfb2szT0cvQz87Q0czOz9DQ0c7OzdDRz9na19bX0dDQytjY0tjX0sbFwMnFweHd2uPg3djU + 09zW1uDb2szHxIyHgKihlsO4q4t7bZaCcLWdjKaLe8Gklbicjb+ilLedjsKol8armcmumMKoj7ifhryi + iryhjrukkcWxoOTUxe/m2Ork2PDr4fHu5cS/uc3Hwu/o5PTs6fnx7/fw7ezo5eLg2tDNydDKy9bP0dPN + 0trU2eTe4+Ld4tzY3dXQ1q6prnt1enlzeJKMkbqzu9LM09rW3NnW3MzJ0M/N09XT2dPR19PR2dTR2tLQ + 2dDO19DN1s7L1s7K1c3K1c3J1cvH1MrG0sjF0cjE0MjE0MbDz8bCzsnE0cnH08nJ1cvM1srM1snL1cnL + 1cjL1MjL08jL08vN1c/S2dLV2tXU29XT2dLQ1i0J3dbM4dnP2dDH3tPKn5WMh3tylYl/qZ2UzcK64tvT + 3tnR1tTN0dLNyM3IztXSzdPSytDPyM7Ox8rK0tPU1tTWy8vLzs/O0dXTys/L0NTS0dPT0dPT19fW1tfV + 1NXS2NnW2dnU0dHL2dnT4ODazs3I0M3J3drW3NnY19LT2tTW3NbXx8PAjIiCjoeAtqyimot/inZnr5aH + pIl6u52PuZyOuZ2PtJmKvaGRxqqYz7Sdyq+WuZ+Eu6CHv6WRu6KQ1MGw+uvb+fDi9u/j8+3k9vPq2NLM + 2tTP9/Ds9+3r9u7q/PTx6eLe0MrFxL6729XW5d/h2tTX3NbZ5N3h5+Dk3tfb1c7S0crOzsjMwrzAjIWJ + cmxvjIaJv7i82NDV19DU1M7T1NLX19bb19ba09LX0s/X09DY0tDX0c/W0MzW0MzWz8zVzcrVzcnUzMjU + zMjTy8jTy8fTzcnTzcrVz8vWzszXzM3Xzc7Yy83Xys3Wys3Wys3Wys3Uzc/W0dPZ1tXb2Nbc1tXa1dLX + LQne1cvk2tDd1Mrd0sjAtKqwo5myo5rGuK/d0cff1s3g2tHV0srS0MvFx8PN08/M0c7Kz83O0dDOzs7H + xcXGw8PMycnS0c7U1dHU1dDQ087R1NLS09LS0tDT09HT1NDU08/V1M/X19DX1tDZ2NPm497n5ODc2NbV + 0NDW0NPa1Nbd1tnY1NTIx8PGwbvJvraej4aBbWGqkIOpjn+ylYezloi1l4q4m427oI/BpZPIrZbKrpW+ + oYeylX2vk3+slIHJtqXz5NTv5tj07uLy7uTz8ejf29TY0s3t5uL37On27Or78/Ho29nSyMTTycft5+jr + 5ujb1dfe19ni2dzh2NvMw8W1ra+3rrHEvL7Fv7+YkZKIgIGFfX6TiImrnqDSycng2tvY1tnU09bU09bV + 1NfV09fT0dbT0dbT0dbRztbRztbQzdXPzNTOy9XPytXOytTNydTPytTRy9bQy9bPy9bOy9XMy9XKzNXK + zNTJzNPKzdTLzdXKzdLLz9PR0dbV1NnW1NnW09fV0dUtCeDWzN7TydbLwZ+SiIBzanlrYXNjWpODesi4 + r93Rx+Xa0eDZ0dLNxsLBu8fIw83Ny9DQztXS0tPOz83Ix8zHxtHMytjU0drY1NbUz9HSzNfW09bV1NXV + 0dTTz9TUztbUztjW0drY0tzZ09jV0NHNytrV0+Ld3d7X2tfO0c7Fyb21us3Jyt/e3Ovn4+fe2LKknIZy + aJuCd6mNgaOGeK+PgrOShbudj8Sol7yfjLaag8OnjcKlireZgLiahrGXhseyovDh0ffu4Pz57PXz6fPy + 6NbUzMfCveDZ1fvx7v3y8O3f3dbHxuDSzuzg3vHq6+Tf4drU1+Pa3efb3tHEx6KWmIl+gI6FhY+IiI6H + h4iAgLCnpcO4trCkoqCSkLGjodbPz97b3dbT1dnW2NzZ29zZ2tjV2djU2djU2dfS2NbS2NXR19XQ1tTQ + 19PO19PO19PO19LN19DK1dHM1tHM1s/M187N1c3N1cvN1MvN1czP1MzQ08vO0s7Q1NLT19bW2dnV29fU + 2dbS1y0J3dLG4NTI5djMu62hppiMnY2CiHdsmYl+zryy5tXN4NTK39XM2NDJ1tLN1dHN19PS1NDP0czK + 08vK1s3N187O1s/O1s/M2NDN2dXQ29jT1tLO1tPQ2NXQ2dbR2tfQ2tfP2dXO2dXO2NPNvLezmpOPuLGw + 4tna3NTV1cvO08fNsqeuysXJ3dzd1dHQ39XR1Ma/mYR8gWZerZGHqYuAro+ErY2BtZWIzK2dxaeUqo11 + rY92tph9uJmAu52JqY99taCP4dPD9uze/fvu9vPp9PLp5eLb1M/K5NvY/PDu8+bkyrm4sZ6d1MPA8OTi + 7+np3NfZ083Q3NLV7+LmxLa4aFpbSTw9al9ejISBsKmnraaitayowLWxw7ezuKekqZqXta2rysfH2tjZ + 4N7e19XW1NHT2NXX2dbY1dLU1tLX1tLX1dHW1NDV1NDW08/V08/V08/V0s7V0srU0szV0czV0MzVzszV + zczVy83Tys3Sy87Ty8/Sy83Rz8/T09LW19XX2dbY2NTW19LULQnd0cXk2c3h08fg0sbSw7fYxrvdy8Dn + 1cn04Nbp1c3k08vo29Ta0MjOx8G1sKu9trTRysnTy8vVy8zZzs/Zzc7az8/b0M3a0c7a087c19LZ1NHZ + 1NHZ1dDY1NDa18/a1s7a1M3a1c7c1tDJwr6upaPDurri19ne09bd0Nbl1t7c0NjRzNHPzs/h3NvZz83G + uLO5pZ6LcmmMb2WniX6khHmsjICvj4LHqZnNr5uvkHmmhmyrjXCvknnAoo6+pZLItKPj1cXt5Nb79+r0 + 9Ojy8ejr6eHc2NLb0s/o2djl1dTJt7a1oJ7cycb36ef07u/d2dve2NrRx8rWysy+r7J1ZmhAMzRMQUCQ + hoTUzMjRy8a+tbC1qqTEtrHHtK23pqCzqKXCvb3Y1dTf2tvW0tPTz9DY09TY1NXTz9DV0NPU0NLUztLT + zdPSzdLSzdLRzNHRy9HRy9LTytXSy9XRzNXQzNXOzdTNzdTLzdLKzdLLztPLz9LLzdHPz9PT0tbX1dfZ + 1tjZ1NbX0tQtCdnNwend0djLv8a5rZ2Pg7mqnuPTx+PSx+DOwuXSyOza0ejYztbIv8K3raedlbitp9LF + wd3RzdHFwNPGwuDTz+DTz+HU0OTZ1eba1tvRzNbQytbQy9rUz9vVz9rTzNrTzN7X0N3Wz9zUz93V0NfO + ytjPzN7U1OPX1+DV1t3Q0tfPz9LNzdXT0tzY1p2VkoB1cce3sKuXkH1mXamPhJuAdKKGeayOgMiqm8+w + n7mZhauLdKSEbJp7ZLGSft7CsubPv+LQwOXXy/fv5Pr17PTw6PDr5eXf3NPKyNjMy+fZ2dfGxcKwr9rG + xfbn5t3W19fS1O3l6N/V1szAwNPExcq7u5yOjoh6e7arquje3Ofd29PJx8e7t8KyrbmmobmnocC1s8bB + wtDLzdnU1drU19fS1NXQ09XQ09TP0tTP0tTP0tTO0tLM0tLM0dLM0dHL0dHK0dLL0dPK1NLM1NLM1NLN + 1dDO1NHO1M/O08/N08/P08/P0s/O0dHQ09XT1tnW2NrX2NnV1tfS0y0J29DE39TI1cm9s6ebfnJmpZmN + 4dXJ5NjM28zA5dTI797R3cy/0sG0rp6Rjn9zrJ2R2su/0MK4rZ+Wtqieva6ls6WcyLuz39PL5tnR3dLK + 0Ma/z8fA2dHK4djR3dTN3NPM4NjR3NPN1c7H2dHK3NTN39fQ4dnS4trT4dnT39jR3tbR19DM29XSz8rF + n5iUsaij9Oriw7SuempijHlwnol9lHtupIl70LKj1bSmwqGRsY19nntplXVjrYx92rys5s2+7dbK8+HW + 8uPb+ezm+/Lv8+vp7+fn4djZ39PV8eXm1cfIp5iXyrm44dHS593f1c3OzcLD18vK287L1sjEv7CurqCf + wra13dHS6Nrd6t3f8OPl3M7Pxre20sG9xLSxxLq5zMbJ0MrO19HV2NLW1dDU083T1M3S1c/U1M7T1M7T + 083R083R0szQ0szQ0cvP0cvP0cvQ0cnQ0svR0svR08zS08zT083U083T1M7T0s3Q0s3P0s3P1M/R2NPU + 29XW2tXW2NPU1dDRLQnh1cnbz8PZzcHSxrquopa/tKjo3NDn2s7czcHh0MPo18rs287q2czHtqmunY/J + uK3r28/j1cnXyr7Zy8HAsKmwopnTyL7n2tHcz8fn29Pi19Hd08zd0szh19Dg1s/e1c7f1c7e1M3f1c7j + 2dLk2dPk2tPl29Tk2tPi2NHf1c/e1M3a0s3a0s/MxcGupqG7sazv5N3bzcWRf3d7ZlyeiX2Ve2+agXLP + saLbu6vHppevjHydemekg3Gvj4Cvk4PNs6Ty2s7349jv3db15d/88+/06ufy6Ojx5+fo3t7t4uLKvb2N + f3+8rau3p6j26erk19nJu7u/sK64pqO7qaWrmpWklpSwpKKqn5/HvsDo3uHt4+amnJ+Sh4jdz87g0tDZ + z8/d1tjY0dTX0NPX0NPX0NPY0dTX0NPX0NPWz9LWz9LVztHVztHUzdDUzdDTzM/TzM/TzNHTy9LUzNPU + zNPUzNPUzdLUzdLUzdLUzdPUzdHUzdDVz9HX0dLa1NXc1tfb1dba1NXY0tMtCdTHu9nMwNLFudPGutLF + udjLv9zOw9/SxuTVyeTTxubUxuXWxuzcze3cz/Hg0/Tk2NvMv+PTyOfYzOHSyN3Px9vMw+LUy+XXztzO + xeHWzOfc1ePa0d7WzNrRyNnQx9jQx9jPx9vSyd3VzN7Vzd/XzuDXz+HYz+HYz+HYz9/WzuPZ0ci+usG4 + tbmvrIh/e4d8d8y/ud/PyK2bk3ZhWJmDeJN6bZJ3aMepm9OzpMKikqeFdJVyX6GBb6iKe6KFd7qfkePM + wPjn3O/e1+HTzO3h3Pbq5/Xq6O3i4fTp6e7h4sO1trWnp6aWlqKSk7KhocGvr8Syr8Kvq6uYk6KOiY98 + eKeXlNHEwrWsrMK7vN3X2s3HyqKcn62mp9jQ0OTb2+Tc3eLb3NrT1NXOz9TNztbP0NfQ0dfQ0dbP0NXO + z9XOz9TNztTNztPMzdPMzdLLzNLLzNLKzdLJ0NPK0NPK0NPK0NPLztPLztLKzdHJzdHKzdPMzdXOz9jR + 0trT09rT09nS09nS0tnS0i0Jtqmc3dDD5djL3c/C4NLF4dTH4tTH5NbK5dXH5tXF6NbG49LD3Mq7zbut + xLSl1MO27t3Q6trO4tPGxrarxret5tfM4NPI3M7E4dPK1cm/0MW94NbO5dvS3NLJ2c/G3dPL3tTL3dPK + 3dPL3tTM3tTL39XN4NbO4dfP4tjQ4dfP5NrT2c7J2c3K1cnGiX15b2FdqJiSlYN9mIV9e2ddk3txlnxv + kHZnwqWWy6qbwaCQqoh3m3lnoH9woIJzq5CCnoR2wqqf/+/k79/Wv7Cp49fQ+e7p8ubj6Nzb7uPj39PT + uqyux7m6sqOkoZGSmoeFt6GevqmkvqiisZqUvKegnoqEh3Vyw7a16d/g6OLl6Obr2NXb2tjd7eru7Onr + 7Ofo5N7f3tbW3dTU2dDQ2M/P2M/Q2dDR2dDR2dDQ2dDQ2dDQ2M/P2M/P187O187O1s3N1szN1szO1szQ + 18zR18zR1szQ1szO1cvO1cvN08nL1MvM1s3N2tHR3dTU3tXU3dTT3NTS3dTT3dXTLQnXyrve0cPe0cPe + 0cPg0sTYy7zbzr/j1cbi0sLn1cTn1cXRvq6yno+vnI2/rZ3Nu67fzsHTwrXPv7KtnZGqmo3czL/k1srd + zsPf0MfPwbfFuLDZzsbj2NDc0cnaz8fg1c3g1czb0cnaz8fc0cnc0snd0src0cnd0srg1c3h1s7f1M3i + 1dHq3Nrn2dehkY+GdXG4paCmkoy5pJ2Vf3WIcGWTeGyRdme8n5DBopLBoZG1lIOpiXepiHmhhHa2m46h + iHyQeW3Wwrfv3dK8raTe0cn47efw5uHl2tfg1NPe0tLPwsTNwMLi1dfEtLW+qqevmZTAqaPWvrmtlo6r + lo/ArKagkIyekpLVztDr5+vn5uvm5uzr6/Hl5uzl5uro5+jc1tbXzs7a0M/Zz8/Zzs7Yzs3Zzs3Zzs3Z + zs7Zzs7Zzs7Yzc3Yzc3XzMzXzMzWzMvWy8vWy83Xy87Xy87Xy87Wy8zWyszVysvVycvUycnTycjWy8va + 0c/e1NHd1NDc0s/b0s7d09Df1tEtCefYyODQwNzNveHSwuTVxeLTw97Pv9/QwODQwOfUw/LezeTRwL6q + mbilltnGt+fUxe7czMy7raqZjZ+Oga2ckM6+seXVyefXy+HRxeDSxuPXzt/Vy93Uyt3TydzTyNzSyNzS + yN7Uyt3TydzSyODWzODWzN3Uyt/Vy+Ta0Obc0uTZ0N/RzeDQz+rZ1829un1saEw5M2tWUKaPiL2lnIBn + XJF2apd7bbuej7ydjbycjMCfjrqZh7eYiZV5a3tgVruil5+IfKOOg9zJvrysoubYzv758fbt59vPytPH + xere3+ve4N7R0+rc4Oja3N/MyrainbCbltvHwd3Lw6+blMGwqdbHwsa7uufi4+nn6uDi5tzf5Ort8unr + 7tfa29fW1trU09zRz93Rz9zQztzQzdvPzNrOy9rOy9rOy9nNy9nNy9jMytjMytnNytnNytnNytnNy9nN + y9fLzNnMzdnMzdnNzNnNzNnNzdjMy9jMytfLydnNy97Sz9/U0N3SztrPy9rPy97UzuLY0S0J39DA3c29 + 3c6+4dLC5dXF5NTE4dLC4dHB386+zruqtKCPsp+O18Oz79vK7NjI69jJ6tjJ6tfI2Me3w7KkxLOn2ci8 + 6djM69rN5tbJ4tPH28/E3dHH3tPJ4dXL4dXL4dXL4NTK39PJ4NTK4dbM39PJ4NTK4tfN4tbN39PJ3dLH + 39LJ5dXR2sfFx7Syoo+MbllWXklEa1NOeGBZpYuDh2ximX5yn4J0vJ+RvqGRt5eHv56NuJmHqo1+pIh+ + pIqAwKicvKaal4J4vquhtaGZ6+Xd/fz09urj3dHL2czJ7N/f4tXW1MjK39TX4tXZ7N3e3s3KwbGtyrmz + 28rD0L643MzG4dPQzsTD4Nzc6ufp4uHl2trf5OXo6unq3NvbzcrK1c3L3dLO3NDM28/M28/M2s7L2s7L + 2s7K2s7K2c3K2c3K2MzJ2MzJ2MzJ2MzJ2MzJ2MzI2MzJ18rJ2MvJ2MvJ2MvK2MvJ2MvJ18vI18vH2M3J + 2s7L3dLN39PN3dHL28/K28/J3tPL4NbOLQng0L/g0MDh0cDh0sHk1MPj08Pg0MDby7rk0sDZxbOeiXeQ + e2nJs6Lv28rs2Mfo1cTUwbDgzb7r2Mjp2Mnr28zr283n1snj0sXl1Mfo2Mvj1cnh1cng1Mnf08je0sbe + 0sfe0sfe0sfg1Mne08fazsPc0MTh1crg1MnZzcLWyr/ZysHp19Pq1tSmkY9nUU9iTElnUUxtVE9kSkN7 + YViMcWaTeGuihni8oJHDppa5m4rAoY/AoY6ojH23nZPlzMLkzsLRvLCPfXDJtqrVwbfz6uL99Oz35+HZ + zMfWycjx4+br3uDh09jbz9bTx8ze1tfs4uLXysnDtrPKvbfYy8T16eTp3tzAuLXUzs7v6uvz8PLl4uXc + 2Nrd2Nnb1dPY0c7a0Mzd0Mzdz8rczsnczsnbzsnazcjazcjazcjazcjazcjZzMjZzMfZzMfZzMfZzMfZ + zMfZy8jYysjZy8nZy8jZy8jZysjZysjZysbYy8Xazcjd0Mre0cve0svc0crcz8jc0Mne0snf08otCeHR + wOPTwuLSweDQv9/PvuLSweDRwODPv9PBr7KejKCKeKyWhNK8qufTwurWxdrGtbGdjMazpN3LvOHPwOXU + xOTTxOPSxubVyOfWyeXVyeXXzOLWyuDVyd/Tx93Rxd3Rxd7Sxt/Tx9/Tx9/Tx+DUyOHWyeTYzOTYzOPX + yuDVyN/Sx+XSzuLNzIZvbkkzMXFZVolwbJN7doZtZZyBeKKHfIdsYK2QgsWomtK0pMutncipl8qrmLuf + j8GoneXMxOPOw93HvKqWicy5rM++suvbz/Tk2vPk3NvNx9fKx/Ll5fDj5fHk6uHV3MzDyN/Y2+vn59PM + y8e9u9XLx8zDvtfNye/l4dnRz8vExObg4fDr7ejj5NzV19nQ0NrQzNrOyt3Qy97Qyt7Qyd3Pyt3PyNzO + yNvNx9vNx9vNx9vNx9vNx9rMx9rMxtrMxtrMxtrMxtrMxtrLxtnJx9rKyNrKx9rKx9rLxtrLxtrKxdjK + xNzNx+DRy9/Qyd/Ryd7Qyd3Qx97RyN7Rx97Rxy0J3s694dHA4NC/3My728u64dG/49PC38++38y63ce1 + 2sSy7djF69bE48+97NjF5tLB18Ky38y76dfH6NbH5NDC4M6/4tLE59bJ5tbJ5NXH4NPF3tPF39PG4NTI + 4NTI4NTI39PH4NTI2M3B0cW63NDE4NPI4NHI4dPJ5NbN5dfN39DI5NDN4svKoImHg21pooyHq5WPtZ6X + noR91buxzbClhmpdpop8vqSV3MGy6My+17qqxqeXvJ6QvaCYzLGq1b2z2MK3u6WZzLerxrOmz7yw387F + 8+Pb4dTO2s7K7eHg6d/h8+rt5t3i0crP3tre8e7wzsrKxL2959/e2tDPwrm41cvKy8HCsqus0MnK49zc + 493a3tbS2dDJ39PL5dbP4NHK3s7H4M/I387H387H3s3G3czF3czF3czF3czF3czF3MvF3MvE3MvE3MvE + 3MvE3MvF3MnF2sjE28nF28nF28nE28nD28nD28nE2sjC383H4tDJ4M7I387I387H38/G4NDH387G3s7F + LQnh0L3l1MHl1cLi0b7gz7zk08Dn1sPk08Dk0r7q1cDt1sLs2MPr1sHq1sHr1sHs2Mbx3cvn1cPm1cLl + 1cPfz7/g0MDj1MLg0cHh0sLq28vp3czn28vl2Mjk18jj18ri2Mrg1Mfg1cnWyL7Ku7LczMTk1Mzk0svh + zsnj0Mvm083k0czq19PdysWgi4aUfXeZhH5+bWOUgHWFbmKsj4Xgv7SYd2qmin6ym4/Ktqvm0sbgxrzM + qqHHpJvBopnAo5rlzcPw2s/UvrLUv7Pcw7jHr6bbxLz96eLr29bg1dT17e318PH38vTo4ebZ0tfc2N3k + 4ObIwsjMwsrp3eTk1dvVxszZys/e0NPSx8jEu7vp4d3f18/l3NLd1Mjb0MPg0sXh0cXhz8Xh0Mbg0MXg + z8Xgz8Xgz8Xgz8Xgz8XfzsTfzsTezcTezcPezcPezcPezcPezcPezMPcysPdy8Tdy8Tdy8TezMXfzcbg + zsfhz8ji0Mni0Mni0Mnh0Mnhz8jhz8jiz8jhz8jhz8gtCeHQvdzMudrJt93MuuHRvuLSwOLRvuDQvuLQ + vePQu+PRu+XRvebTvubTvufUv+bSwOTQv+bVwuLRvuPTwevayenXx+PTwuDRwePTw+bYyOLWxOPXxePX + xuLXxeHVxODUxN/UxeLVyODQxtvMw+PTyuTTzOLQyeHNyOLOyeLOyd7KxerV0MGppXpiXHNZU4pya4l0 + aoZwZYNpXqKEebqYi5VyZbGVirehlce2q+XWy+vWzN6/tseon62RiLWbkefSx9zLwN7Mv8q3qt3Gu9K5 + sdzEvPTf2eXW0d/W1PDs7PLt7vfy9Ozl6uPb4N/Z3uDc38G7vq+lq8/CyOnZ4N/P1uLU2OTX2rCkp5mP + juDZ1d7VztXMwtjPw9jNwejazuTUyN7MwuDOw9/Ow9/Nwt/Nwt/Nwt/Nwt/Nwt7Mwd7Mwd3Lwd3LwN3L + wN3LwN3LwN3LwN3LwNzJwdzJwdzJwdzJwd3Kwt7LxODNxeHOxuHOxuHOxuDNxeDNxeDNxd/MxeDNxeDN + xd/MxC0J3cq41cOx0r+t2ce14tC949G+4c694c+849G949K85NO85dS+59bA6dfC6tjD69fE6dbD6tjF + 6tjG6tjG5dLB5NG/7NnI5tPD38u76djI4tPC4tXE5djG5tnH5NbF4tTE49XH59jL59jL5NTI59XL59XN + 6NfP6dbQ59TO5NHM4s3I69HN58rGwaKef19ab1FKn4V8qpCGq46EuZqPqod6lXJltZqOwKyf08a66uDT + 8eDU7NXKxa2inYd9wa+k49LGv7Gly72vu6ue3cm+v6qg1L639ODa5NbR5d3a8+7u7unq+PL18uvw7+bp + 3dbY6eLi59/fxLm7tqmr0cLF6dnd693g3tLVx72/0cnI9O3q3tfT29LL3NLJ49jO28zD3c3C4tHG4s/F + 4dDF4c/E4c/E4c/E4c/E4c/E4M7D4M7D383D383C383C383C383C383C383D3svE38zE38zE38zE4M3F + 4c7G4s/I49DJ4s/I4s/H4c7G4c7G4c7G4c7G4c7H4c7G4c7GLQno08DjzrzhzLnizLvlz73kz73izbvg + zLjfzbjh0rvj1Lzk1b7i07zi0bzj0r3o1cDs2cTo1MHn0sDp1sTcyLbSvKvmz7/z28rr08Ly3s3i08Hi + 1MLk1sPj1cPj1MTj1MTk1MXm1cjl1Mji0MXi0Mbl08zp2dDr2tPn1s7k0szm083m0Mzt0s/12NPFqKKR + dW60mpHmzMLozcLQsKXUsqWyj4Owl4u2pJnZzsHw6dv06Nvx3tPFs6ivn5TXyb22q5+upJiakYOekoPF + tKmql43Sv7f1493k1tLr4uDx6+vk3+Dv6Ovs4+jv5ejl3dzn39zv5OHn2dnEtbazo6XLu73f0tTh1tfr + 4eL17u7v6OXYz8zl29bTyMLbzcXj08vh0MbgzsPhz8Tgz8TgzsPgzsPgzsPgzsPgzsPfzcLfzcLezMLe + zMHezMHezMHezMHezMHezMHezMHfzMPfzMPfzMPgzcThzsXiz8bj0Mfiz8bgzcTgzcTgzcTgzcTfzMPg + zcTfzMPfzMMtCePNuOfRvOjRveXOuuPNuefRvOnTvubQvOLPuuLUu+TXvuPVv97OuNfHsNfGr93LtufT + v+3Yw93IsuHLuNzEs7OaibGYh9zDsu3Uw+nSwOnZxuTWw+LUweLTwOXUw+fWxefWxeXTxObTxebUx+PQ + xuXSyurXz+fVz+LSzOPUzerc1N/QydfDvtrFwMavqaWPh6aTibKdkp+IfJ+Cd8Wkl7WUh7CYjLOkl9fO + we3m2fbr3/Xl2s++s8i5rdDFuXFqXZyWiXBpWmxkVpuMf6COhNvKwfjo4efa1fHo5vHs7ODa2+ni5ebc + 4u3i5eXb2PLn4uLV0NvMydDBv7ioqcKztNLExtfLy+fd3ezk5Pfw7dbNyeTZ0+LVz9vKxN/NxeLQxuPQ + xOTRxOPQxOPQw+PQw+PQw+PQw+PQw+LPwuLPwuHOwuHOweHOweHOweHOweHOweHNweHOweLPweLPweLP + wePQw+TRxOTSxObTxuPRxOHPwuLPwuLPwuLPweLPweLPweLPweLPwS0J0bmk79fB4sq06tO90rul2sKs + 6dK859C65dG64tK45de95dW83c200sOp0sGn2siw5dC77djD0bqmvqaStp+Lln5rjHJiv6WV8dXE6dG/ + 6dfC6NnE59jF5tTC5dPC6dXF6dTF4s2+4cu97NXK6tfK383C69vP4tPK5tjP59rS3NLJ08vE0svE49rT + 9ejg9eng7uXa08W5o5CDi3NnpYZ5xqmbq5eKzL6w6OHT7+re+/Xo693RvKugy72x+vDksquedW5hf3hp + raWXvK6hoY+E3MrC7t3X6t/a/PTy8Onq6eTl5d3h5Nrg7OHk5dnX9+3mx7u2xLWy69za0MG/wbOy28/P + 3dPS6N/f7+fm3tTR4NbR3M7I4NDK6dXP5c/I487D5dDC5dDB5M/B5M/A5M/A5M/A5M/A5M/A4s2/4s2/ + 4c2/4cy+4cy+4cy+4cy+4cy+4My938q84cy+4s6/5M/A5dHC5tHD5dHC5dDB5M/B5M/B487A486/487A + 4s2/487A486/4s2/LQnQtqHv1sHhx7LXvaivloG/pZDlzLfr0r3o0rvn1Lvl1Lnl1Lro1bvp1r3q177p + 1r3o1Lzp073t1sLexrK8pJG2nYrQt6Toz7zw1sTw2MXm07/p2MPr2sXp1sLo08Hr1MPv18bv1sfq0cPq + 08bv2c3gzcLfz8Pl1s3l2tDVy8LX0cjx7+b29u7t6+Hw6eD+9uz48ubFua6cin2wmIy2mYu7nY+4oZXr + 3M/y693x69/57+LQv7SwnZLPv7Pn2c3v5djQx7qooJLbzsHIuKzQv7bey8PezMbx5N/37+zn4uLn4uPh + 2t7g193o3uHx5+Tr4NvRxsHGurXUx8PRxMHaz83r4ODr4+L17+zv5+Tg1tLg1M7fzsfn08vmzcXu1Mnq + 0sXjz8Dkz8Dkz8Dkz8DjzsDkz8DjzsDjzsDizb7izb7hzL7hzL3hzL3hzL3hzL3hzL3gzL3fy7vhzb3j + z7/k0MDl0cHm0sLl0cHk0MDjz7/jz7/jz7/iz7/izr7izr7jz7/izr7izr4tCeDFr/DUvt/ErtW5o7ic + hsarlerPue3SvOXOtebRt+bRtufSt+nUuevWvOvXvenVvOfTuubQuerTverTvuzVwe3WwejRvevUwOjQ + vOzVwOzaxOrZw+jWwefUv+vVwvDXxu3UxODGtuTKu+7Uxt7IuerYy+jYy9/Rx9fNwtLKwO3o3u/s4/Ds + 5fLs4+vh2OLWzcO4rI5+c2hTRodrYKmIe7qZjMSqnufVyPXs3/726ePYzLionbKflMOupObTyPbo3My9 + sca4q7Skl9jDuP7r4d7KwtPAuu/h3O7m5OPf3+bh4uHb3t7X3NfO0PDn5vPr57qxrI+DgqyhoNTJx+3i + 4ufd3sS7utPMyf718Oje1t7RyOHNxevSyO/QxO/Qw+nQweXPwOXPwOTPwOTPv+TOv+TPv+TOv+TOv+LN + veLNveHNveHMvOHMvOHMvOHMvOHMvOHMvOPOveTPvuXQv+bSwObSwObSwObRwOTPv+TPvuTPvuPPvePP + vePPveLOvOPPvePOvePOvS0J0bae58uz6My09NjA7NG558uz69C479S87dO66NG369S67Na86tO55tC1 + 5c+16NG57NW969W+5M6448+56NS/xrKcppJ+1cGs7trG5tS/5tS95tW+59O+7NXC8dnH79XE3sKzu5+Q + wKWW0LepspuO28a66tnN1cq+1My/7efc8+7j6+Xb7uPc69zW3MnDwKujoo6EmIJ3g2ZbknFmtI6Cv5uO + vKCU5NDE/ffq7OfarKKWo5SJ0Lyx0riu3MK4+eXa08C1m4l8u6mc28O4+eLZ7dbP5c7I9ejk+/Xz5N7e + xcHCzcjL7eXq29LV1MzN7+jn5d3c2M/PyL6/u7Ky49ra187Ot7Ct7ebi1MvFvLGp2Mi96NDE6czA8M7A + 9NHD68/A5c295M2+5M295M2948y85M2948y948294su84su84cu84cq74cq74cq74cq74cq74cy74868 + 5M+95c++5tC/5tC/5dC+5M+94827482848684s274s274s274sy74s274sy64sy6LQnav6fv07zlybHo + zLXx1b7v1Lzny7Tqz7fv07rr0Lbq0bfr0rjr0rjt07rr07rq0rrr07zkzrXp07rq1L3u2MPhzbfQvqjr + 2MLo1b/l0r3r2MLt2cPu2MPs08Ds07/v1cLv0sLnyrvkyLrZv7HFrJ/cxrjm1cfe0cXg1snz7N+7s6i9 + sajbycPcw77bv7nMr6iwk4qhg3qGZVqifnTFnJHDnJHKq6D27OD37+PNxbinnpKmlorNtqvXu7HBpJvj + ysD14NXcyLy3oZXNs6nz3tXr1s7Uvrjn19L++/nn4+OxrK3Ev8H59fna09bb1tfk39/58/T38PLVzc64 + sLHY0NDz7On17enUysRxaF+rnpTq2czjyrv118fxz77wzbzsz7/mzr/lzr7lzr7lzr7kzb3lzr7lzr7k + zb7izLzjzLzizLzjy7vjy7vjy7vjy7viy7vjzLzm0L7n0b/o0b/o0sDo0sDn0b/m0L7kzrzlzr3lzr3k + zrzkzrzkzrzjzbvkzrzjzbvjzbstCevQt+3SuenOtebLsunOtOrPtujNtOjOtOnOtufOtubOtujQuOXO + tuPMtOnRuezVveTNteLLs+fQuOjQuenTu+vWvurUvOnTu+bRuevUvOjSuuvVvezWvuzVv+vVv+vTvuvT + vurRvurSv+/Xw/DYx+vUw+bQwOfSwsu3p6uZiWBNPZJ/csGtosSroda5sNu/tcWonZ6Adph6ccWmnbyg + l66Uit/Ivvvx6dzNxL6so9K/tsGpoY51bJB4bbOclO7Xz/ji2/Xf2bahmrilnfPh2ebWzsG1q9nRxPr4 + 7e3t49fUzOvn4fbz79/a2uvk6uHc5Ojg6ePb4NTMztvT0vDo5OTb1tzTyuPYy8C0ptrLvOnZyOfTwenS + v+HItOvTv+jRv+DLuuDMu+DMu+DMu+HLuuHMu+HLuuHLuuTNu+PMuuLLueHJuOHKuOLKuOPLuuXMvOjN + vOnPu+rPvOrPvOrPvOrPvOrPvOnOu+jOuujNuubMuefMuefMuefMuefMuOjNuefNuefNuS0J7dK47NG3 + 7NG36tC26c606c6169C37NG37NG46M635s227NO779a+6dC56dC47NO76M+36dC469K769K76tK66dG5 + 6dC469K67tW979jA6dS769W869a97Ne+7Na/6tO+6NG85M6359C769TA6NG97tbD8NjF5c27vKSSnYRy + ZEw8hnFhzLiq2cK228K2zbGmiWthgGJY0LOq0betrZeMvKqe9efe5tXMtKCZuqWd2L+4wqiip4+HtZ+V + vaig1sG6+eTe++fi48/K2MW/6tvT6dzSvbClwbiq7ubY2dLEu7Wq5d/W+fTt19LR7ubu497o4drj49zh + 5N7f8eno+fDr187EzMK27+HT4dLB4dC+4s+96dXA6dO+4s236NK+5tG+4s274s684s684s6848274868 + 5M275c275s685s285cy75Mq55cu65su758286c6+68++7M677c+87c+87c+87c+87c+87M677M676826 + 6s2668266826682668267M677M677M67LQnpzrTpz7Xqz7Xpz7bqz7Xpz7XpzrTnzbPpz7foz7jjybHq + 0Ljv1b7pz7fly7Pozrbq0Lnr0rrr0brr0bnq0Lnq0Lnr0bnt07vu1L3v1r7p0rrq07vq1Lzr1Lzq073q + 073o0bzn0Lrn0Lvp0b3p0b3lzbnp0b3x2cbZwa7IsJ65oZGBbF3Mt6rv2M2kjIB7YFZxVEujhXzu08nE + qqCjjoPVwbb87OPj0snCr6eynZSxmpKvlY25n5fhysDcx7ysl5DXw77z4d3y4d7k1M7g0crg0Me9raK5 + qp3dz8Li1cjf08n37eXy6ePNxcXg2eDo5Ozy7fL38PP17+/z6+js5N3n3dPl2Mvi08Tj0sHk0L7kzbvn + 0Lzr0r/r0rzoz7rlzbnjzbrjzbrjzbrjzbrjzLnkzbrkzLnkzLnky7rly7rkyrnly7nmy7nny7rozLro + zLvpzbvqzbnrzrrrzrrrzrrrzrrrzrrqzbnqzbnpzLjoy7joy7joy7joy7joy7jpzLnpzLnpzLktCefM + sejNs+rPtOzRtuzRt+vQtejOs+XKsOnOte3Tu+bMtOnPt+vRuuPJseLIsOrQuO/Wvu7UvOvSuunQuOnP + uOrRuezTu+3UvO7Vve7UvOrTu+vTu+vTvOvTu+vTu+vUu+vTvOvTverSve3Wv/LaxOnPvO3UwPngzNa9 + qcWsms+2pbGajcWxptO+tI52bGtQRquQhvLXzeTJv7SakOPLwfro3fXg1fnk2fHd0rWflK2UitW6sMiu + pNC5rfTf1bWjms28tfjt5/bp5uTX0u/g2dHAuLqnn8GqoMewpdzGvPrm3fnp4eTW0OTa1vPs7/Dr8Ozm + 6+zn6Pbv7frz7fLp4ebb0N/Sw+HRwefTwufPvOjQvOvRvezQvfHTvuzPuufNuebOuebOueXOueXOueTN + uOXOueXNueXNueXMuObNuOjNuejNuejOuunOuerNuerMuerMuerPuevPuuvPuuvPuuvPuuvPuurOuerO + uenNuOnNuOnNuOnNuOnNuOnNuOrOuerOuerOuS0J7NC17NC17dG28NS58dS579K47NC168+16c+06M20 + 69C379S76c+14cas5cqw7tS67NK47NG369C36M6058yz6s+17dK47tO67dO569G469O66tO66tO66tO5 + 6tK66tK769S869S87da/7tbB7NW/7NS/7NS/8tnF6tG98djF38a1u6SXsZyTr5qSeWJZbFRM0bmy9dvT + sJeNzLOp997U6dHH4cm/8tjO7dTKyLCk1Luv7dPIzbOnzLOm9N7T0L+0zsK6/PPs9Ozo8ufj5tfSw6+q + rpSPtZqSx6ui3cC48tfR9t/Y5NLL2MrG3dTV39rc6OLk7+jm8unk9+3l9+vh6NnL3cy84tC/5NC+5My4 + 79PA8dS/68u38c+78dG96s265s255s655s655s655c245s255s2458y45cq16Mu36cy468667M667M66 + 7c2668y568y468y47M257M257M257M257M2568y468y46su36su36su36su36su36su368y468y468y4 + LQnt0LTlyKzRtJiukHSniW24nIDWuZ3qzLHrz7Xpz7bs0bfu1Lrt0rjqz7bs0rjv1Lvs0bjv1Lvu1Lrt + 0rnt07nr0Lfqz7Xr0bfv1bvx1r3t1bnr1Lnr07nq0rns07vt1bzt1Lzt07zt1Lznz7fjyrPt07733cjo + zrnnzbnw1sLz2snPuKyrlo6wm5S4opvUv7js1s+3n5e3oJjRuLDAqJ7DqZ/Rt6zNs6izmYyymYvgxrn7 + 49bbwbPLs6Ty3tDh0cbMv7f++PT69PHr4t7m2tfXxcGjioWafHfRsqvuz8bmysHw1s3lz8jZx8LZzczj + 29vy6uj58Ozy5uDl2M7o2szp2cnhz77mz73nz7vozrnu0Lzv0LvtzLjvzbnuzbnqzLfmzbbmzbbnzbbn + zbbnzbbpzbfpzbfqzbfpzbbrzLbrzLfrzbfrzbfrzbfszLfrzLbrzLbszLbszbfszbfszbfszbfszbfs + zLbszLfry7XpyrTqyrTqyrTqyrTqyrXry7Xry7Xry7UtCevNsOHEp9GzlqmMb6GDZ7qcgOHEp+7QtOrM + sO/SuO3St+7SuO/UufDUuvDUuu/UufHVu+zQtu7TufHWu+zQtunOtOzRtuvQte3Rt+/Vu+LKruHKruHK + r+TLsujPtu3Vuu/WvO7VvO3UvO7Vve/VvevRu/TZw+3SvfDVwOrPuvPZx9vDt6mTjL6oov7s5/bk3bij + nb6ro+XPx8ixqs61rOLIvde8sLickJl9b5J4abWbjOzTxdnAsLSdjOLPwLammsa5seri3ravrNXMy/Xr + 6f7w7sCrpqWMheDCu/HUy97DuefMwuDKwe7b1OfY0/Lm4vjs5/bn4uPTys6+s9fFt+TQv+POu+nRvOnQ + u+vQu+3Puu7Oue/Ouu7Mue3Mt+vNtujOtefOtenOtenOterOtevPtuvPtuzPtu3Ptu3PtuzOtu3Nte3N + te3Nte3Nte3Nte3NtezOte3Otu3Otu3Otu3Otu3OtuzNtezNtuvMtOnLs+rLs+rLs+rLs+rLtOvMtOvM + tOvMtC0J7tCzzrGUwKKFr5J1ooRno4Vox6mN7tCz8dW56s6z7NC17tG27tG27tK379K379K379K37tK3 + 79K47M+079K49tm+5MitxKeNzbCV89a87NK36dG16NC16NC16tO37NW57dS669O56tG36M6258216dC4 + 89nB7NK89drF7dK93cOxvKab0Lm09unk8OPew7GrtqWd1sS93svC69XL3MO56s7Dz7Olt5qMsJOEr5OE + s5mJx66fwKmXs56M28m5wbGmn5OLt66qysTA6uHh8OTl9+zq7t3YybSuw62m3sa+69HH4Me90byx5M/I + 3MnD1cS9yrew0L22zryxy7ep2cO05c+958+758+66s+668+568+67M657c257My468y26s206c2z6M6z + 6c6z6s6z6s6z68+068+07M+0686z686z7M2z7cyy7cyy7cyy7cyy7cyy7Myz7My068207M207M207M20 + 7M2068y068yz6suy6cqy6cqy6cqy6cqy6cqz6suz6suz6suzLQnx0rPdvp/XuJnGp4i5mnu6nH3WuJnp + yqzpy67u0Lbs0LXu0bbv0rfv0rjw07jw07nv07jt0bfu0rjt0LXsz7bw1LnjxqvJrZLOsZbt0LX02r3y + 2brw1bvw1brw1brw1bvv1Lvt0rnr0Lbpz7Tu07n328Ps0LjJrZXZvqbmyrLIrZrMs6jXwL3k1NHUwb3D + savl1c7ezcXfzcTZxbviyL3w1MrTs6a/npG4mIrDppfOsqPPt6bHsqDEsZ/n1sb66d3Xy8HVysfx6ej5 + 8fH27e/w5+X78+3XysOsnZW2o5uxnpK6pZnUvrTMtq3dxL7Pta+4n5bQua3ZwbTXva7fxbXq0b/v1cHp + z7vs0bvt0bnt0bnuz7ruz7rtzrnszbfszrXsz7Tsz7Tsz7Tsz7Tsz7Tu0LXu0LXu0LXtzrTuzbTuzbTt + zLPuzLPvzLPvzLPuzLPuzLPty7XuzLTuzLTuzLTuzLTuzLTty7Tty7Pty7Pty7Pty7Pty7Pty7Pty7Tu + zLTuzLTuzLQtCe3OsOPEpurMre/RsvjavPDTtOvNr+7Qsu3PserOsuzQs+zQs+zQsuzQs+3RtO3RtO3R + tOzQs+7Tte/Ut+rOsefLrunNsOzQs+3RtO3RtO/VuO3TtuvRtOrRs+vStu3SuOzSt+rPtejOs+7TuvHX + verOtt/DrMqvl9a7pN/DrOfNudvBuM64tseysc67t+bW0ezh2+TXz+LQx93IvtW8sPPVysemmbmXicam + mNe7q8yxocevnt7Jtt/Pu9/QvvLi1vXp4N3Rzd3Q0fHn6PTt7fTt6/n079TOx7y0quPbz/Tu4t3LvsGt + odW8ssqvqMSoorWakNW5rt3CtuTKuvDVw+rPu+fNuOnPuenQuOvPt+vPt+rNt+rNt+nMt+jLtenNs+rO + sunNsevNsevNsevNsezOsu3Osu3OsuzMsOvMsOzMsOzLr+zLr+zLr+3Kr+7Kr+zKsevJsuzKs+zKs+zK + s+zKs+zKs+vJs+vJsuvJsuvJsuvJsuvJsuvJsuvJs+zKs+zKs+zKsy0J7c2v7s6w89K078+x7s2v7cyu + 8M+y8dGz7c6x7tCz7tC0682x8NK28tS479G28tW58dO38NK279K379G279K28NK26s2x5Mer58mu8dS2 + 89i68de48de58ti78te78NO579K38dW68NW68NW48ta77NG38NS78tfB7NO+7dLA6M6/5s/J5tLR2sfG + 5NPR+e3q9+vo+Ork69fQ4czCxq2i38S5za+jt5iJvJ+Pw6eVw6eV5c68+ubW4cu7382/4tDE4tPI4dPL + 697Z8Onj8uzm9PHp+Pbv8u7l7OXY8ejb8uTY5dXIzryw18K3x7Cpz7auuqGW0bis7tPF+ubW+uPR7c+6 + 68y38NG679G58NG58NG479G479C47s+47tC47s617s6z7c6z7s6z7s6y786y8M6z8M6z8M6z782y782y + 782y78yx78yx7syx78yx78yx78yy7suy78yz78yz78yz78yz78yz7suz7suy7suy7suy7suy7suy7suy + 7suz78yz78yz78yzLQnz0bPsyq3ty63wzrDsy63vza/107bz0bPpyazszLH01Lrx0Lb01Lrx0LfszLL0 + 1Lry0rjvz7Xx0bjw0bftzbTy0bj21bzx0bfv0Lb01rvv07Xq0rHq0LPu07bw0rntz7bszrXx07j017vy + 1rjx1bjv1bns0rjw18Lt1MP95dfs1cvi0MzRxMPazcz47er98O746OT87+n55+DTv7bBrKHHsaXJsaO4 + n5DEq5vVu6jix7Lz28jv2cvqzcPt1MrZxbrXxbrbzcHZzcHp4NP7+Or///P//PHk3dDTyr3r4NPw4tbe + zcHMua7Lt6zJt6/Sv7W3o5fLtaf14NH96tvs0cDnyLXz073vzrfx0Ljx0bfx0bfx0bfx0bfw0Lfwz7jv + zrTvzbPvzbPuzbPuzLLuzLLuy7Luy7Luy7LvzLLvzLLty7Lty7Hty7Hty7Hty7Hty7Hty7HuyrDvy7Hv + y7Hvy7Hvy7Hvy7HuyrHuyrDuyrDuyrDuyrDuyrDuyrDuyrHvy7Hvy7Hvy7EtCfDPsfHPsfLRs/DOsO7M + rvPStPTStN+9n9OxleTEqfXUuvXUuvXUuvHQtu/OtPXUuuzMsubFrO/PtfTTuu7OtO7NtPXUuvbVu/PT + ufPVuffbve7WtejPsevQtPDUufLUu/HTuvPWuvPWufHWt/TZu/DWuerQt/DXwvPZyP3m1+nTysu+udPN + zPDq6fv08ffu7Pfu6frx7PHk3tzNxcy8srmom6uYirGci9rDsuzVwuHKt9jArdzBsuvPxfXa0fLc0erV + yuHQxePTx+jd0e/n293VyM/GucO6rdDFufPk2PDf09vGvMq1qsu2q93JwdvIvrypntS7rvnt3vXh0dq7 + quLEsPXWv+7OtvHPuPHQt/HQt/HQt/HQt/DPtvDOt/DNtfDOtPDOtO/OtO/Ns+/Ns+/Ns+/Ns+/Ns+/N + s+/Ns+7Ms+7Msu7Msu7Msu7Msu7Msu7Msu/LsfDMsvDMsvDMsvDMsvDMsu/Lsu/Lse/Lse/Lse/Lse/L + se/Lse/LsvDMsvDMsvDMsi0J8M6x8c+x8tGz8c+x7cuu89K099W45cOm27qd68qw89K578618dG39NO5 + 8dC27Muy1rac07KZ5cSr89O589O578+28dC38NC28tG49di8+Ny97dS15syu6c+y8NO489S88tO68dW5 + 8dS48NS28te58Na67NK48NbB7tTD+uDS483D1cvF5OTi9vf19/by8vDs9PDr9O7m8evi7+bdw7muraGV + uamd18q88OXV3827w6+d1L+u4cm62b207dDH+9/W+uHX8NzR7NnO4NLG3M/CsaSZmo2BpJWJz8G1/e3i + 8N3S2MO40Lmu1b+059LK3crBzLit5Mu+/fbp386+waKQ38Gu9tW/7cy18M638M+28M+28M+28M+27862 + 782378218M2z8M2z782z78yy78yy78yy78yy78yy78yy78yy7suy7sux7sux7sux7sux7sux7sux78qx + 8Muy8Muy8Muy8Muy8Muy78qy78qx78qx78qx78qx78qx78qx78qy8Muy8Muy8MuyLQnz0rTvza/uzK7r + yazkwqTnxafz0bT62Lvx0LTry7HvzrXpyK7w0Lbz07nwz7bz0rnpyK7nxq3vzrXx0Lbvz7Xy0rjz07nu + zrTuzrT117vw1Lboz6/ky6zpzrHv0rfv0bnsz7bsz7Tx1Lfy17nu07Xy17zy2b/w1sHgxrXs08ThzMLo + 39nx9O/1+PT09fDw8ev39u749e3y7OPs5Nq8s6fHvLDy4tb/9+v67+HVwrHArZzcxrbv1cfjxbvdv7Xs + 0Mby2M3x2c703tPo1cnfzsLQv7OxoJShkITQv7P97eLs2MzVvrLNtarQuK7kz8fbx77eyr7z3dH9++zN + uKmwkYDgwq/01L7sy7TvzbbvzrXvzrXvzrXvzrXuzbXuzLbvzbTwzbPwzbPvzbPvzLLvzLLvzLLvzLLv + zLLvzLLvzLLuy7Luy7Huy7Huy7Huy7Huy7Huy7HvyrDwy7Hwy7Hwy7Hwy7Hwy7HvyrHvyrDvyrDvyrDv + yrDvyrDvyrDvyrHwy7Hwy7Hwy7EtCfDPse7Mr+/Nr+3MrubEp+LAoujGqO/NsPHQs/LRtvHQt+3Ms/HQ + t/DPte7Ns/TTufXUuvjYvvjXvfHQtu3NtPTTuffXvfPSufDQtvLUuPTYuuzUtOzStfDVufHUuvDSuvDT + ufHTuO7Rte7TtPDUtu3St/HXve7VwOTKuezSxNG8sNHHvuzq4/f28PX07Pb17fb06/Tt5O/l3NzQxtPG + uurZzf3z5fzp3OPKu8u0pcasns+1pebLu/TXyebJvt7Dt+bKvvHXyvXd0O/ZzebSxNbDtb+rnaqWiMq2 + qPnp3PXh1OLLveTMv+DJvd3JvtbDuejTx/jt4P346r6klKiLeuTFsfDQuu3Mte/Otu/Pte/Pte/Pte/P + te7Ote7Ntu/NtPDNs/DNs+/Ns+/Msu/Msu/Msu/Msu/Msu/Msu/Msu7Lsu7Lse7Lse7Lse7Lse7Lse7L + sfDLsfDMsvDMsvDMsvDMsvDMsu/Lsu/Lse/Lse/Lse/Lse/Lse/Lse/LsvDMsvDMsvDMsi0J8M6x8dCy + 8tCy786w7cuu68qs6sms7syu7s2w68uw68ux7c2z7s2078618M+18M+17s608NC38M+2786178+18dC3 + 89K589O68dK47tC07tK07NS08tm689i77NC17tC39ti/9de879K28NS279O27NK269G48tjD/OLR7NPE + xK2hvK6j3tbN9+/l+/Pq+/Tq7+Ta3tDF1MS5wK2gxrGl18Gz8tvM8tnKzbKkyayezK2ezq+g4sS27dHD + 8tbI3MK04MW36dDC7tXH9+HS4s2+w66gvKeYqJSFrpmK59HC+eTV7NbG893O5tDE3Me81MG45M7D9/Dj + ++ncsZSFqo596Mq27c2368u07sy17s207s207s207s207cy07cu17cuz7suy7cqy7cqx7cqx7cqx7cqx + 7cqx7cqx7cqx7cqx7Mmx7Mmw7Mmw7Mmw7Mmw7Mmw7cmw78mw78qx78qx78qx78qx78qx7smx7smw7smw + 7smw7smw7smw7smw7smx78qx78qx78qxLQnz0bPz0bPy0LLwz7Hvza/uza/vza/xz7Hw0LPtzbLuzrTv + zrXwz7Xwz7Xw0Lbx0Lbwz7Xz07n007nx0Lfw0Lbw0Lbx0bfy0bjy0rfw0rfv07Xq0bHw1rj1277z1rvw + 0rr01bzy1brx1Ljw1Lbs0bL23MDx173s073jyrjLsaPYvrLZxLfOu67gzsHx39HizcDSvK/Ks6W/p5rG + rp/JrZ/MsKDw0sP42svUtaXQsKDkw7Tgvq7fwLHw1Mfs0sTp0MLs0sTiyLrcwrXgyLrErp/Erp/Hs6Sr + loelkYLOuqvr1sfs18jv2svn08bk0cbax73jzcH67uHx3M6vk4O3mojv0b3y0rvtzLTwzrbwz7Xwz7Xw + z7Xwz7XvzrXvzbbvzbTwzbPvzLPvzLLvzLLvzLLvzLLvzLLvzLLvzLLvzLLuy7Luy7Huy7Huy7Huy7Hu + y7Hvy7Hxy7HxzLLxzLLxzLLxzLLxzLLwy7Lwy7Hwy7Hwy7Hwy7Hwy7Hwy7Hwy7LxzLLxzLLxzLItCfHP + svDOse7Nr+3Mru7Mr+7MsO/NsPDOsu3Mr+jJruvKsOzLsu3Ms+/OtfDPtfHQt/HRt+/Pte/Pte/Pte/P + te/Pte/OtO/OtfDPtu/RtunNr9O6m9G4m+fMsPXZvvLTu+3Qtu/St+3QtO3StPTYuu3TuPHYvt7FsLmf + jruhk9O5rPXby9i+rr6klcuxoc2zo8qvoMeqnMSnmNi7qtu9rNKyoOvKuPDRv9a2pNOzoezMuuXGs9q9 + rOzTw+nSwuTNve3Vxu/YyeDJudnCs9nCsurVxO/bys+8q7CejbupmNvJuOXUxObVxeTUxeLRxtjGvN/K + v/vw4+LPwa+Tg8Onle7PvOzMtuzLtO7MtO7Ns+7Ns+7Ns+7Ns+3Ms+3LtO3Ls+7Lsu3Kse3Kse3Kse3K + se3Kse3Kse3Kse3KsO3KsOzJsOzJsOzJsOzJsOzJsOzJsO3JsO/JsO/KsO/KsO/KsO/KsO/KsO7JsO7J + sO7JsO7JsO7JsO7JsO7JsO7JsO/KsO/KsO/KsC0J89Gz782v7syu7cut782v8c+y8tCy8c+y8M6y7s6z + 78618M+18M+18M+18M+28M+28dC268qx6smw78+18tK489O58tK48tG38tK38NO38da33sWl28Gj6s+y + 89a78NG57tC27tC17tG09Ni689e56tC05syzyrGbrZOCtpyOw6ib6s6/9NfE0LKgxqmW2bqnz7CdwKKP + z7Gdz7Cc3b2pza2Z0rOf0LGezrCd07Wh5May6s245Mq37NbE69bF6NLB6tXE79rJ6tTD5M++48299eHP + /+7c7dvKxrOjuqqY2cm469zL59nH8OHR59XK28i/4Mu//vTn2ce4sJSF0LWj8NK+68u17s2278628M+1 + 8M+178+178+17s617s227s20782z7syz78yy78yy78yy78yy78yy78yy78yy78yy7suy7sux7sux7sux + 7sux7sux7sux8Mux8Myy8Myy8Myy8Myy8Myy78uy78ux78ux78ux78ux78ux78ux78uy8Myy8Myy8Myy + LQnrzLDrzLDnyKvnx6vqyq7rzK/szbDszbDuz7Px0bbw0Lbw0bbwz7XuzrPtzbLszLHry7Dnxqznx63t + zbPx0bby0rfy0rjx0bbx0bfx07bw1Lbv07Xx1rjx1rju0bbu0Lbz1Lvz1bvw07ju0bbw07n228LXvKW3 + nIepj36xloi9oZLKq5rpyrfiw6/NrprWtqPIqZbCo4/evqvTs6DWuKTQsZ3HqZbDp5Tdwa3gxLDavarl + yrbr08Hp0sTq1sjw3M/v2s3o1cjt2s3w3dDl08bl0sT15df35tjRv7K8rJ/Xx7nr2szq2cvt3dHo2c3Y + yb3cybz88+TOvKyvk4Pbvqvz077pyrLuzLTvzbXuzrTuzrTvzrTvzbXwzLXwzLXvzLPwzLLwy7Lvy7Hv + y7Hvy7Hvy7Hvy7Hvy7Hvy7Hvy7HuyrHuyrDuyrDuyrDuyrDuyrDvyrDvyrDwy7Hwy7Hwy7Hwy7Hwy7Hv + yrHvyrDvyrDvyrDvyrDvyrDvyrDvyrHwy7Hwy7Hwy7EtCejKsfHUuufKsOjKsfDTue3PtunNs+nLsuvM + svDQtO/Psu/Qs+/Psu/PsvDQs+/Qs/DRtO7Psu3Ose3Nse7Ose/PsvDQtPLTtvPUt/TUuPPUuPTUuPPU + uPLTuPLUufLTufHSufHSu+/Que7PufXWwe7Ou8ytmsCikK6RgMapmLyejb2djtOyod27q9m3ps+vnsmo + l82tnNOzosysm86xn8yuncGkk8munOrPveTJt9e8qufMu+/WyezTy+3W0PLd1/fh2/He1+jWz+PTzOzc + 1d7Ox+HSyvjn4NrIwLGdl8u2sO7X0fTe2O7a0+bc0cvCtt7Rw/3y5Mmzo7aaiOnKt/bUv+vJsfHNtvDN + tu/Ntu/NtvHNtvHMt/LMt/TMtvTNtfTNs/TOsvPNsvPNsfPNsfPNsfPNsfPNsfHLsPHLsPDMsPDKr/DK + r/DKr/DKr/DKr/HKr/HKr/LLsPLLsPLLsPLLsPLLsPHKsPHKr/HKr/HKr/HKr/HKr/HKr/HKsPLLsPLL + sPLLsC0J5siv7tC448at48at68216cuz6cy07M627tC38dK48M+17c2z7cyy7cyy7s208M+18tK48M+1 + 7cy07s2178+18M+28dC28tG389K489K49NS39NS39NO489K58tO58dK68dK68dK679C77s+779C84sSx + wqSRvJ+OtZeGzrCexKeWupqKyaiY07Kj0K+gy6qbwaCRwaCRzK6dy62dyq6dvqKSxqqa3MCw6M292sCw + 4ci38NbG7tXI8NfR7tfR8NvU8+DZ8+Ha8N7X69vU6tvU69vU28zF79/Y4M7HopCJvaqj8dvV7dXP8d7X + 6uDUxb6w6+DR/e7fwaqawKKQ7My59NO/8M628My18M22782178218cy38cy28sy28sy28s208s2z8s2z + 8c2z8cyy8cyy8cyy8cyy8cyy8cyy8cyy8Muy8Mux8Mux8Mux8Mux8Mux78ux78ux8Myy8Myy8Myy8Myy + 8Myy78uy78ux78ux78ux78ux78ux78ux78uy8Myy8Myy8MyyLQnZu6Ldv6fRs5rTtZzixKvnybHrzbTt + 0Lftz7Xu0Lbu0LXv0Lbv0Lbv0Lbv0Lbv0Lbv0LXu0LXuz7Xu0LXv0Lbv0Lbv0bbw0rfx07jx07jy1Lny + 1Lny1Lnx07jx0rnx0rnw0brv0Lrw0rzx1MDw0r7gwrC/oZC+opG9oZDXuqvKrp+5m4vBo5LJq5rLrZzN + rp7DpZS/oJDJrJvMr57MsJ/Krp7Kr57RtqbexLPUuqrZv67v18b03M/v2dHu2dPu2tTx3tf149z35N7z + 4tvs3db25t/h0cvTw7zJuLGwnpe+q6Tjzsj139nu29Tu5dnMw7b17+Dx39C8o5PLrpzszLntzLfvzrbu + zLTvzbXvzbXvzbXvzbbwzLbyy7byzLXyzbTyzbPyzbPxzbPxzLLxzLLxzLLxzLLxzLLxzLLxzLLwy7Lw + y7Hwy7Hwy7Hwy7Hwy7Hwy7Hwy7HxzLLxzLLxzLLxzLLxzLLwy7Lwy7Hwy7Hwy7Hwy7Hwy7Hwy7Hwy7Lx + zLLxzLLxzLItCeXHruLEq8yulsyuluHDquzOtu/RuOvNtenMsvDRt+/Rt/DSuPHTufHTufDSuPDSuO7Q + tu/Rt/DSt/DSt/DSuPDSuPDSuPHTufHTufHTufLVuvLVuvLUuvHTuvHTuvHRu/DRu+7Ru/DSvfPWwvXX + xeXIt8OmlcKllcGlldu+r8msnbqdjbyfj7udjcKlltK0pM6woMSnl8asm8WqmsmuntS6qtO7qtK6qufN + vd/Gtta/rerTwvPcz+7X0PDb1fDd1vDd1/Ti2/nn4Pfo4fDh2vjp4unb1Ma3sLelnrqnobypos25s/fh + 3O3a0uzg1drOwfz05tjHuL2ik9u9q+7Nue3KtfHOt+7Nte/Otu/Otu/Otu/Ot/DOt/DNt/LMtvLNtfLN + tPLNtPHNtPHMs/HMs/HMs/HMs/HMs/HNtPHNtPDMtPDMs/DMs/DMs/DMs/DMs/DMs/DMs/HNtPHNtPHN + tPHNtPHNtPDMtPDMs/DMs/DMs/DMs/DMs/DMs/DMtPHNtPHNtPHNtC0J7M619Na97M+2686179K56861 + 6sy07M+27c+38NG479C47M216syz6syz7c+279G48NG58NG68NK58NG579G479G48NG479G479G479G4 + 8NO48NO48NK579K579G679G67tG77dG87NC779G/9NfG5cq5wqaXwaWWv6OU1bmrwKSVvKCRv6KUuJuN + wqaX17us3L+xz7amyrGhxaucxq6ey7OkzLOk0bip3se41b+w1r+w5c+/59LG69bP7trU7tzW7tzV7t7X + 8+Pc9ejg8eTc8OPb6NvT2svEyrq0w7OsxrStzru07NbQ6tjQ4tXK4tbJ++3fxrKivaOU5MW0782678u2 + 8s647Mu07cy17M217M217My27My27My27cu17su078y078u07sy07suz7sqz7suz7sqz7sqz78u078u0 + 7sq07sqz7sqz7sqz7sqz7sqz7sqz7sqz78u078u078u078u078u07sq07sqz7sqz7sqz7sqz7sqz7sqz + 7sq078u078u078u0LQntz7bszrbtz7bsz7btz7bt0Lft0Lfv0bnsz7bqzLPw0rrtz7blx67myK/v0bjy + 1Lztz7bt0Lfv0rnv0bjv0bjv0bjx07rx1Lvy1Lvx07rv0bjw0rnx07rz1Lzy1r7y1r/y1cDz1cHv0r/t + 0sDy1sbkx7fDppjGrJ3Cp5nTuKrBppjCp5rEqZvGrJ7JrqDRtqnozcDiyLrSuKrNs6XKtKXPuKrKs6TX + wbLeybrXwrPl0MHs18nizsPr2NDu3NXs2tPz4dr05N3x4dr36uL26eH16ODm2dHSw7zDs6zHt7DcysPb + ycLq19Dx4Njh0sjt39Lp2cvAqZvKrp/rzLruzbnwzLj00LnszLTvzbXtzrXszrXszbbrzbbrzbbszLXv + zbbxzrbxzrbyzrbyzrbxzbXxzrbxzbXxzbXxzbXxzbXwzLXwzLTwzLTwzLTwzLTwzLTwzLTwzLTxzbXx + zbXxzbXxzbXxzbXwzLXwzLTwzLTwzLTwzLTwzLTwzLTwzLXxzbXxzbXxzbUtCe3Pt+zOtevNtOnMs+rM + tOrMtOzOte7QuOvOtufLs+rOtuvPt+vPuOzQuO3RuezQuOrPt+fMtefLtOjMtOnOtuvPuOvQuOvQue7S + uvDUvPDSufHTuvDTu/DUvPDUve/Tvu3RvuvQve3Sv+/Tw+nOvdrAsMCml8iuoL6klsiuor2jl8iuoc60 + ps2zpcqwotC3qeTNvt/IudG6q8avoMizpNO+r8+6q9C9rtC9rtPAsuzZyvnm1uXTyOHOx/He1+nZ0vDg + 2fjr4/Pm3vPn4Pjt5vLn39HHvsC0rc/But7QyN/PyN3LxOvZ0uzc09rKwOHRxdC9sMOrnd3AsezMu+/N + uvTQvPHNtuzLs+vNtOvNtOvNtOvMtevMterMterLtOzMte7Mte7Mte7Mte7Mte3LtO3Mte3LtO3LtO3L + tO3LtOzKtOzKs+zKs+zKs+zKs+zKs+zKs+zKs+3LtO3LtO3LtO3LtO3LtOzKtOzKs+zKs+zKs+zKs+zK + s+zKs+zKtO3LtO3LtO3LtC0J8NK579G47c+27M6168617M627dC37tG47tG57dK669C47NG579O88NS8 + 7tO77tK68NS88dW97tO77tO78dW98ta/79O769C479S89NjA8tW989a+8ta+8ta+8dbA79TA7tO/69G9 + 79TB8dbG58y928Gxw6mb0LWnwqebxKufw6qezLKm0Lirz7eqzbSn1b6x5M7B2cO1zLWowKmczbmr2sa4 + 2MW40b6wybeq1MK18eDS/eve69nP6NbO9uTe6dnS79/Y+u7m9ejg7+Tc+e7m5tvT0MW+2s7G7uHZ5tnR + zr631MO98N7X+ejg4tHH28q+vaiczbSl8dLC782878259tK+78u178627M+27c+268+27M637M636863 + 68227M6378638M638M638M637822786378227822782278227sy27sy17sy17sy17sy17sy17sy17sy1 + 782278227822782278227sy27sy17sy17sy17sy17sy17sy17sy2782278227822LQnt0Lft0Lft0Lft + z7btz7bszrbqzbTpzLPqzrXt0bru07vt0brr0Ljs0bnv07zw1b3v07vu07vs0bnqz7jv07vv1L3ozbXi + x6/myrPv07vu0rvv1Lzv1L3w1L3v1L/u07/t0r7s0b7u08Pu1sbs0sPiyLrGq57Uuq7Jr6PIrqLPtanT + uq/Rua7OtqvRua7hyr/l0MTQu6/NuKzLtqrKuKvUwbTYxrnVw7bSwrXj0sX47OD+9en05Nrp2dDy4Nnl + 1c/t3tf36uLx5d3q4Njr4tnSx8DYzsbx5t706ODm2NDXx8Dh0crv3df87eXt3NLXxbm4opbUu63w0sPt + y7rvy7jzzrruyrPuzrbsz7bsz7bq0Lbpz7fqz7fpz7frzbbszbbtzbbuzbbuzbbuzbbtzLXtzbbtzLXt + zLXtzLXtzLXsy7Xsy7Tsy7Tsy7Tsy7Tsy7Tsy7Tsy7TtzLXtzLXtzLXtzLXtzLXsy7Xsy7Tsy7Tsy7Ts + y7Tsy7Tsy7Tsy7XtzLXtzLXtzLUtCe3Ot+7QuO/RuvDSuvDSu+7QuOrNtejKsubIsefMtPHVvfLWvu3R + uu7Su/TYwPPXv+nNtu3Ruu3SuuvQuPHVvfPYwOzRueXKs+vPuPXZwe3RuezRuu7SvfDTv+/UwO/VwPDU + we/Uw+7Swu7UxfTay+zTxciuode9sNK4rNC3q9vBtdnAtM+4rMawpMy2quDKvt7IvMWwpM68r9jFuMe0 + p8q3q9C/stPDttbFuOTTxvPk1/fp3O7e0+XTy+fVzuTTzPLi2/ns5PTo3+zi2t7UzMq/t+PY0PHn39zQ + yM3AuMi6s86+t9fHwPrr4fXj2NfDtrymmNm/r+vLvO/Mu/PQu/PRu/PQue/Otu3Pt+3Pt+vQt+vPuOrP + uOrPuOzOt+3Ot+3Nt+3Nt+3Nt+3Nt+zMtuzNt+zMtuzMtuzMtuzMtuvLtuvLtevLtevLtevLtevLtevL + tevLtezMtuzMtuzMtuzMtuzMtuvLtuvLtevLtevLtevLtevLtevLtevLtuzMtuzMtuzMti0J8dG78NC7 + 8dC78dG78tK88dG87s646cm05Max5Miz6c657tO+8dbB8NXA79S/7tO+7NG87tO+7tO+7tO+79S/79S/ + 79S/7tO/8NXA8NXA8NXA58y369C889jE79bD69K+7dPC7tPE6dC/69PB9d7M8NrKyrSk07yszLWm0Lmp + 38i63ca5zLWqyLGl28S448zA0Lquz7mt2sS5zrisz7yvzruu1MG01MG018W428u+1cS31sW45dXI5tTK + 28jA3szE797W8+Ha8+Ha9eTe2srE2MjC9eji8+Xf28zF2MvD18vC1cnA6NzR9eXa+eTZ0rmuxKuc1buq + 6s669Ne/79G57c+389O978+58M+78M+879C879C77tC77NC57NC47c+578667s257s257s257cy47s25 + 7s257c257cy47cy47My47Mu37Mu37Mu37Mu37Mu37Mu37Mu37cy47cy47cy47cy47cy47Mu47Mu37Mu3 + 7Mu37Mu37Mu37Mu37Mu37cy47cy47cy4LQnuzrvtzbrtzbruzrvw0L3y0r/x0b/v0L3sz7zs0r7s07/t + 1MDs07/r0b3p0Lzp0Lzq0b3s07/s07/s07/s07/s07/s07/s08Dt1MDt1MDu077s0bzv1cHx2MTt1MDs + 07/v1sTt1MTp0cDt1sT2383u18jJs6PTvKzLtKTRuqvdx7fex7rPt6zLs6fdxbngyr7Pua3Ru6/cxbrS + vLDVwrXSv7LSwLPTwrXdzL/k08fdzL/cy77o18vq2M3ezMLgzcbw3dXy39jx3tj14t3dysXXxcDy5d/4 + 6ePo19Hl18/i1szf08nr39Pu3dH44tfJsKTAp5jawa7r0bvu07zs0Ljv0bnx0rzvzrnvz7vvz7zvz7zt + z7zt0Lvt0Lrs0Lntz7ruzrvuzrvtzrvtzbrtzbrtzbrtzbrtzbrtzbrtzbrszLrszLnszLnszLnszLns + zLnszLnszLntzbrtzbrtzbrtzbrtzbrszLrszLnszLnszLnszLnszLnszLnszLntzbrtzbrtzbotCe/Q + ve/Qve/Qve/Qve/QvvDRvvHTwPLTwfDUwO7Tv+3Vwe7Vwe7Vwu3Vwe3UwOvTv+rRvezUwO3Vwe3Vwe3V + we3Vwe3Vwe3Vwu7Wwu7Wwu7Uv/LXw/Laxe/Xw+zTwO3Twe7WxO7XxOzVw+/Yx/fgz+rTw8mzo9W/sMy2 + ptW/sN7Jud3GudC5rc23q9zFud3Hu9G7r9W/s+HMwOPPwvDd0OnWydvLvtjIu+TTxuvazejXyurazO/e + 0uvZzuHPxOLPx/De1vLg2fTh2vrn4unV0c69uOXW0Pfn4OjY0eLTzNvPxdnNw93SxtPEuPTf1MOsoMCm + mOLJt+3Tv+vPue7QuPHTu/LTvPDQu/DRvfDRvvDQv+7Rvu7Rve7RvO3Ru+7QvO/Qve7PvO7PvO7PvO3O + u+3PvO3Ou+3Ou+3Ou+3Ou+zNu+zNuuzNuuzNuuzNuuzNuuzNuuzNuu3Ou+3Ou+3Ou+3Ou+3Ou+zNu+zN + uuzNuuzNuuzNuuzNuuzNuuzNuu3Ou+3Ou+3Ouy0J79K/8dPB8dTC8NPA7tG/7M+97M687dC+69C96M+8 + 6dC969K/7tXC8NfE8djF7tXC69O/7NPA7NPA7NPA7NPA7NPA7NPA7NPB7dTB7dTB7dXC79fD7tbC7dTB + 7dTD6c+/5My769TC7tfG7NXG89zN4sy8x7Gh1cCxzLip2MS13sm93Ma60Luv0buw3Ma72cS40ryx2MO3 + 5NLF8uDT/Ozf9uPW3cu/08O228q9387B4NDD5tfK7NvQ6dfM4M7D4c7G79zU8d7X9OHa/Ork8N3Yz765 + 49PO+erk7t7X5dfP39TK5trP69/U18m96tfNx6+kyK+h4sm569G+6tG669G57tG58NK779C88NC978+/ + 78+/7dC+7dG969G869C769C77M686868686868686867686868676867686768676s276s266s266s26 + 6s266s266s266s26686768676867686768676s276s266s266s266s266s266s266s26686768676867 + LQnt0cDw1MPz18f02Mfx1cXu08Pt0cDs0cDt1MPv1sXs1MLq0sDr1MLv18Xx2cjx2cfv2Mbu1sXu1sTu + 1sTu1sTu1sTu1sTu1sXv18Xv18Xx18bv1MTp0cDt1sTy2snn0L3aw7Lo0cLy28vr1MXz3M3cx7jFsKHY + w7TQu6zey77hz8Lkz8PcxrvbxrvjzcLbxrvTv7XZxbrl0cb759z97+T76d7h0MXWx7vczMDby7/ezsPn + 18vu3tLv3dLk0sjl0svx39fx39j14dr+7Oby4NvZx8Hs4Nr/9e/15d7l1s7d0sjp3dPx5dnXyb3n0srS + u7HUu67iybjq0r7w18Lv1Lzr0Ljv0r3y0b7x0r/w0sHw0sHu0sHu0sDt0r/t0r7t0b7t0b/s0MDs0L/s + 0L/s0L/s0L/s0L/s0L/s0L/s0L/rz7/rz77rz77rz77rz77rz77rz77rz77s0L/s0L/s0L/s0L/s0L/r + z7/rz77rz77rz77rz77rz77rz77rz77s0L/s0L/s0L8tCezSwe3Twu3Twu3Twu3TwuzSwezSwezRwezT + wu7WxO3Vw+3Vw+3Vw+3WxO7WxO7WxO3WxO3Vw+3Vw+3Vw+3Vw+3Vw+3Vw+3VxO7WxO7WxPHYx+/XxuvT + wevUwvDZyO7YyOzVxfbi0vnm1uzXyO7Zy+HMvcmzp93Kvc+8rtbDtuDMwOHOwt3Kv9zIvd3JvtvHvNjE + udrHvOLQxfDe0/zz5/Pk193NwdrKvuTWyeXYy97QxN/QxOrZzvHf1OXUyt/MxPLf1/Dd1vnm3/ro4uvY + 0+HRy/Di3Pfo4vbl3/Hi2tnOxNXJv+TYzNPFutnDvM64sNjBtePLvOfOu+/WwO/Uv+nMuOvOuu7Qvu7Q + vu7QwO7QwOzQwOzQwOrQvunQvenPvunPv+nPv+nPv+nPvunPvurQv+rQv+rQv+rQv+rQv+nPv+nPvunP + vunPvunPvunPvunPvunPvurQv+rQv+rQv+rQv+rQv+nPvunPvunPvunPvunPvunPvunPvunPvurQv+rQ + v+rQvy0J7tXF7tXE7tXE7dPD7dTD7dTD7dTD7dPD7dXE7tbG7tfG79jH79jH79jH79jH79jH7tbG7tfG + 7tfG7tfG7tfG7tfG7tfG7tfH79jH79jH8tvK8NnI7tbG7tfG7NXF3se3072u4My979vM7djK7djL5dHF + zrqt3sq/0b6y1MK24c7D49DF4MzC3cnB3MnA3MnA2se+3crB5dTK8N/V/vDl8eHX3M3C2svB6drQ7+DW + 5dbM3tDF5NTK797S79zS5tPL9uPb9+Td+OXd8d7Y4s7K7NzW9OTe8uLb9ufg8+Xd39TK1Mi+1sq+1Ma8 + 3MjB07y038e96NHD6dLB7dbC7tXB7tO+8dTA8NK/8NLC79LD79LD7dLD7dPC7NPA69O/69LA69LB69LB + 69LB69LB69LB7NPC7NPC7NPC7NLC7NLC69HC69HB69HB69HB69HB69HB69HB69HB7NLC7NLC7NLC7NLC + 7NLC69HB69HB69HB69HB69HB69HB69HB69HB7NLC7NLC7NLCLQnt1cXt1cXt1cXs1MTs1MTs1MTs1MTr + 08Ts1cXt1sft1sbu18fu18fu18fu18fu18ft1sbt1sbt1sbt1sbt1sbt1sbt1sbt1sbu18fu18fr1MXv + 2Mjv2cnw2cru2MjfybrOuarLt6jcx7nr1srq1snp18rVwbXZxbvSv7TSwLbhz8Tl0snhzMXcyMHayMDa + yMHbyMHfzMTn1s7y4dj76uLx4NfczcXWyL/k1czu4Nfp3NPi08vi0sjq287z4Nbp1s7v3NT14tvt29Tn + 1M/iz8ru3df15d/77eb15t/f0cjh1cvp3dPYzMDRwrnWw7zNuLDdx73s1cfu1sbu1sPs07/v1MDz18Tv + 0cHv0sPu0sTu0sTs08Ps08Ps08Lr08Hq0sLq0sLq0sLq0sLq0sLq0sLr08Pr08Pr08Pq0sLq0sLp0cLp + 0cHp0cHp0cHp0cHp0cHp0cHp0cHq0sLq0sLq0sLq0sLq0sLp0cHp0cHp0cHp0cHp0cHp0cHp0cHp0cHq + 0sLq0sLq0sItCe3Wxu3Wxu3WxuzVxezVxezVxezVxevVxe3Wxu7XyO7XyO/Yye/Yye/Yye/Yye/Yye7X + yO7XyO7XyO7XyO7XyO7XyO7XyO7XyO/Yye/YyfHayvfg0PHby+rUxO7YyvTg0fLdzu3XyevXyerXyu7b + z/Xh1uHNwtXDuNTCt9PBtuPSxunXzuLPyNvJwdvHv9zKwt7Lw+PQyOzb0vbl3Pjp4PPl3OPUy9fHv9zP + xujd0+re1Ofa0OfYzuvazu/d0ufUzObTzO/c1ebTzOvY0+rW0fbn4ffo4vPi3O/f2efY0One1Ojc0t7R + xufY0NPBusexrNnDue3WyPLbyvHZxuzTv+3UwPLXxPDUw/HUxfHUxvHUxu/Vxe/Vxe7VxO3Vw+zUxOrU + xOvUxOvUxOvUxOvUxOzVxezVxezVxerTxOrTxOnSxOnSw+nSw+nSw+nSw+nSw+nSw+nSw+rTxOrTxOrT + xOrTxOrTxOnSw+nSw+nSw+nSw+nSw+nSw+nSw+nSw+rTxOrTxOrTxC0J69bH69bH69bH6tXG6tXG6tXG + 6tXG6dTG7NbH8NjK79jJ8NnK8NnK8NnK8NnK8NnK79jJ79jJ79jJ79jJ79jJ79jJ79jJ79jK8NnK8NnK + 8tvL9t/P8drM7NXH7tjJ7tnK6dTH69XJ79vP7drN8t/S/Ovg5tXJ08K218W60b+049HH69jQ49DJ3MnC + 2cfA3MnC38zG5dLM7tzV9+Xe8eHa9eXe7NzV3MzF283F5tnR6dzU5NfO6NnQ7d3R59bL6NbN5dLK6dbP + 4M3H8N3X5dLN9Obh++7o7NzV5tXP6trT5drQ28/F39PH8+Tb4tDI0Lq02sS66dTH79rJ8drH69PA7NPA + 89nH8NXE8dbH8tXI8tXH8NbG8NbG79bG7tbF7dXG69XG6dXG6tXG6tXG6tXG69bH69bH69bH6dTF6dTF + 6NPF6NPE6NPE6NPE6NPE6NPE6NPE6NPE6dTF6dTF6dTF6dTF6dTF6NPE6NPE6NPE6NPE6NPE6NPE6NPE + 6NPE6dTF6dTF6dTFLQns1srs1srs18rs1srs1sns18rt18rs1srt18ru2Mvu2Mvv2czv2czv2czv2czv + 2czu2Mvw2czw2c3u2Mvt1srs1snt1sru2Mvw2s3x283t2Mnu2crv2svu2s3u3M7u2s3r2Mzt3NDu3dHt + 3dH15tv87+T26N7Tx7zRxLnVyL3i1s3t39bo2dDdzcXZysHbzMPf0cjl187v4dj26uDu4djy5dzx5Nvh + 1Mvj187p3NPo3NLm2tDm2M/r3NLq3NLj1Mrl1s3q29Lh0cnn18/m2dDv4tn57ePv4tjazsTd0cfs4Nbq + 3tTr39Xi1szv3tfVw73Rvrbjz8Xt2Mzu18nt1sbv2Mfw2Mbu1sTv18Xv1sbt1sbt1sfs1sfr1cfq1cbq + 1Mfr1Mjr1Mjr1Mjr1Mjr1Mjs1cns1cns1cnr1Mfr1Mfq08fq08bq08bq08bq08bq08bq08bq08br1Mfr + 1Mfr1Mfr1Mfr1Mfq08bq08bq08bq08bq08bq08bq08bq08br1Mfr1Mfr1MctCe3YzO3YzO7Zze3Zze3Z + zO3Zzu7azu7aze7aze7Zze7Zze/azu/azu/azu/azu/azu7ZzfDcz/Hc0O7ZzezXy+zXy+zXy+7ZzfHc + 0PLd0fHczvHbzu7azu3azezazevZzOvbzuzc0ObXy+XXy/Ll2fvw5v7z6t3TytLJvtXLw9/UzfDl3O/j + 2eHVzN3RyN/TyeLWzejd0/Hl2/js4/Lm3fHl3fDk2+PYzuzg1vDk2+3g1+3h2Ojc0+ba0ere1eLWzere + 1fDk2+nc0+ba0e3g1+jc0+nd1Ovf1uTYz+jc0vTo3/Lm3fLm3d7SyfLj29zNxtLBueDNxezZz+zYy+7X + ye/Zye7Xxu/Xxu/Yx+7YyO7YyOzYyezYyerXyurWyuvWyu3Wyu7Wyu7Wyu7Wyu7Wyu/Xy+/Xy+/Xy+3V + ye3VyezUyezUyOzUyOzUyOzUyOzUyOzUyOzUyO3Vye3Vye3Vye3Vye3VyezUyOzUyOzUyOzUyOzUyOzU + yOzUyOzUyO3Vye3Vye3VyS0J7NnM7NnM7NnM69nM7NnM7NnM7NnM7drN7drN7drN7drN7tvO7tvO7tvO + 7tvO7tvO7drN7tzP7tzP7drN69jL69jL69jL7drN7tzP793Q7dfM7tjM7drN7tvO7NvP69rN6NnM6NjM + 5NXJ4dPI7eDU+O3j+u/l5t3T1cvB0ci/2c/H7uHa7uLa4tXO39LK4dTM5NfP59rS7uHZ9Off8OPb7uHZ + 697W4dTM7N/X8uXd7uHZ7+La6dzU4dTM4dTN5NfP7eDY8+be7+La6t3V6t3V39LL2czF59rS8OPb7eDY + 7eDY7N/X7eDY3dDI8ODZ6NnS2cnA3czC6djN6tjL6tbI7NbH7NXG7NbH7dfH7dfH7dfI69fI7NfI6tbJ + 6dbJ6tXJ7NXJ7NXJ7NXJ7NXJ7NXJ7dbK7dbK7dbK7NXJ7NXJ7NTJ7NTI7NTI7NTI7NTI7NTI7NTI7NTI + 7NXJ7NXJ7NXJ7NXJ7NXJ7NTI7NTI7NTI7NTI7NTI7NTI7NTI7NTI7NXJ7NXJ7NXJLQnv3M/v3M/v3M/u + 287v3M/v3M/v3M/w3dDw3dDw3dDw3dDx3tHx3tHx3tHx3tHx3tHw3dDx3tHw3dDw3dDw3dDw3dDw3dDw + 3dDx3tHy39Ls2czt2s3u287w3dDv3dLv3dPu3tPu3tPt3NPq3NPw4tn37OL37OTv5tzXzsbSyL/a0cjr + 4dns4Njj1s7h1Mzj187n2tLo3NPu4dnz5t7v4trs39fq3dbj1s7t4Njw49vr3tbw49vu4dnj1s7e0cnk + 18/s39fy5d3z5t7u4dnq3dXf0srUx7/e0cnl2NDh1Mzh1Mzh1Mzj1s7bzsbu4Nr26eLh0sraysHq28/u + 3dDr2Mru2crt2cru3Mnv2srv2svv2svt2szt2s3r2c3r2czs2czu2Mzu2Mzu2Mzu2Mzu2Mzv2c3v2c3v + 2c3u2Mzu2Mzt18zt18vt18vt18vt18vt18vt18vt18vu2Mzu2Mzu2Mzu2Mzu2Mzt18vt18vt18vt18vt + 18vt18vt18vt18vu2Mzu2Mzu2MwtCezaz+zaz+3b0Ozaz+3b0O3b0O3b0O3c0O7c0e7c0e7c0e/d0u/d + 0u/d0u/d0u/d0u7c0e3b0O3b0O3b0O7c0e7c0e7c0e7c0e7c0e7c0fDd0fDc0e7c0e3b0O3c0e3e0e3e + 0+3f1eze1ejb0uve1vLo3/Po4ffu5tzSytLKw9zTzOrf2Ojc1uDUzuDUzuXZ0+fb1end1+7i3PLm4O3h + 2+rf2Ovf2eTY0u3h2+re2OPX0e3h2/Tp4+ve2NjMxuHVz+fb1evf2fPn4e3h2+nd1+TY0tnNx9vPydvP + ytvPyOnd1+fc1uTY0ufb1ejc1fzw6uLVzdTGvuna0O/e0urZy+7cze7azOzZyu3ay+3ay+3azOvazeva + zerZzenYzerYzezYzezYzezYzezYzezYze3Zzu3Zzu3ZzuzYzezYzevXzOvXzOvXzOvXzOvXzOvXzOvX + zOvXzOzYzezYzezYzezYzezYzevXzOvXzOvXzOvXzOvXzOvXzOvXzOvXzOzYzezYzezYzS0J793S8N7T + 8N7T793S793S793S793S797T797T797T797T8N/U8N/U8N/U8N/U8N/U797T8N7T8N7T8N7T8N7T8d/U + 8d/U8N7T8d/U8d/U9OHW8+DV8uDV8N7T797T79/U7t/V7d7W7t/X6t7W6t/X9Ori+vDo/fTt5d3W0cnC + 2tLL5dzV6t7Y5trU4tbQ5trU7eHb8OTe8+fh9+vl8OTe8ubg9Oji7uLc7eLc7ODa69/Z7+Pd8OTe6t/Z + 59zW6NzW5trU69/Z9+vl9enj6t7Y6NzW69/Z6d3X4tbQ6+Db/PLs8+fh8eXf9enj69/b+e/p69/Y1MjA + 5dbO8eLX797S7dzP7dvN7t3N7t3O7t3P793Q7d3Q7dzR7NzQ69vR7NvQ7dvQ7dvQ7dvQ7dvQ7dvQ7tzR + 7tzR7tzR7tzQ7tzQ7dvP7dvP7dvP7dvP7dvP7dvP7NvP69rO7NvP7NvP7NvP7NvP7NvP69rO69rO69rO + 69rO69rO69rO69rO69rO7NvP7NvP7NvPLQnw3tTw3tTw3tTv3dPv3dPv3dPv3dPu3dPu3dPu3dPu3dPv + 3tTv3tTv3tTv3tTv3tTu3dLw3tTw39Tw39Tw39Tw39Tw39Tw39Tx4NXx4NXx39Xx39Xx4NXw3tbv39bv + 3tbu3tbr3dXt4Nns4tno3dbw5uD57+j58evq4tzQycPVzcbf1c/n29bn29bg1c/j2NLw5N/06OPy5+H0 + 6OPw5d/16uT36+by5uHq39no3dfn3Nbi1tHf1M7n29bv497q3tni1tHm29X06eP26+Xo3dfj2NPv497w + 5N/h1tDo3Nf06eTr4Nv16eT26+Xr4d3z6eTy5+HXzMTd0snt39bt3dPr287r2s7t3c/t3c/u3dDs3dDs + 3dHr3dHp3NLp29Pr3NLr3NHr3NHr3NHr3NHr3NHs3dLs3dLs3dLs3dLs3dLr3NHr3NHr3NHr3NHr3NHr + 3NHr3NHq2s/r29Dr29Dr29Dr29Dr29Dq2s/q2s/q2s/q2s/q2s/q2s/q2s/q2s/r29Dr29Dr29AtCfHg + 1/Hg1/Hg1/Df1vDf1vDf1vDf1vDf1vDf1vDf1vDf1vHg1/Hg1/Hg1/Hg1/Hg1/Df1vHg1/Hg1/Hg1/Hg + 1/Hg1/Hg1/Hg1/Lh2PLh2PLh2PLh2PLh2PHg1+/f2O/f2O7f2Ozg1+7h2u3i2+jc1uzj3PXr5fjv6+3k + 4NnTztTMx+DV0ufc2OXa1uTZ1ene2vTp5fjt6fTq5vDl4fTp5ffs6Pjt6fTp5e3j3+fd2eTa1uDV0uLY + 1Ozh3e/k4Ozh3eTa1ubb1/Dl4fLo5Ozh3uPZ1e3i3/ju6ufc2NvRzefc2Ozh3fnu6vvw7Ovi3vLp5fju + 6t/VztzRyejc0+ve0uzf0u7g0+7e0e7f0u3f0u3f0+vf0+vf1Ore1ere1Ovd1Ozd1Ozd1Ozd1Ozd1Ozd + 1O3e1e3e1e3e1e3e1e3e1ezd1Ozd1Ozd1Ozd1Ozd1Ozd1Ovd1Orb0uvc0+vc0+vc0+vc0+vc0+rb0urb + 0urb0urb0urb0urb0urb0urb0uvc0+vc0+vc0y0J8+LZ8+LZ8+LZ8uHY8uHY8uHY8uHY8uHY8uHY8uHY + 8uHY8+LZ8+LZ8+LZ8+LZ8+LZ8uHY8+LZ8+LZ8+LZ8+LZ8+LZ8+LZ8+LZ9OPa9OPa8+Pa8+Pa9OLb8+Ha + 8eDa8eHa8OHa7uDb7uLb7eLc6N/Y6eDc8ejk8uvn7efi5d/a1c/K3dbS59zZ59zY6uDc7eLe9Onl+u/r + +e7q8ebi+O3p9+zo9evn9Onl8ebi7+Tg8OTg9erm8+nl7+Tg9Onl8ufj6+Dc6d7a7uPf8ebi8ebh5dnV + 7OHd/fTw8efj3dLO49jU7eLe+e7q+/Ds7eXi8Orl/fTx5dzX29DK5drS6d7U7ODV7uLV7eDS7uHT7uDU + 7uDU7ODU7ODW6t/V6d7W6t7V69/V69/V69/V69/V69/V7ODW7ODW7ODW7ODW7ODW69/V69/V69/V69/V + 69/V69/V69/V6t7U69/V69/V69/V69/V69/V6t7U6t7U6t7U6t7U6t7U6t7U6t7U6t7U69/V69/V69/V + LQny4dry4dry4drx4Nnx4Nnx4Nnx4Nnx4Nnx4Nnx4Nnx4Nny4dry4dry4dry4dry4drx4Nny4dry4dry + 4dry4dry4dry4dry4drz4tvz4tv049r049rz4tvy4drx4trw4trv4dru4dvs4drt49zu5N7q4t7x6OTv + 6eTs5+Hv6OTb1NHf1tPl3Njo39vv5uLu5ODu5OD47ur78e306ub47+v16+fz6ub16+j16+fx6OTx5+P5 + 7+v37urv5eH37en27enx5+Ps4t7s4t7u5ODw5+Ps4t7s4t768+/07enf1dHi2NTr4d347+v89PDw6eXs + 5+T9+PPl3tjZ0Mjm3NTr4Nbr4NTu4tbt39Pt4NTt4NXt4NTr4Nbr4Nbp4Nbp3tbq39br39br39br39br + 39br39bs4Nfs4Nfs4Nfs4Nfs4Nfr39br39br39br39br39br39br39bq3tXr39br39br39br39br39bq + 3tXq3tXq3tXq3tXq3tXq3tXq3tXq3tXr39br39br39YtCfLl3fLl3fLl3fHk3PHk3PHk3PHk3PHk3PHk + 3PHk3PHk3PLl3fLl3fLl3fLl3fLl3fHk3PLk3PLk3PLk3PLk3PLk3PLk3PLk3PPl3fPl3fTm3fTm3fPl + 3fHl3PHk3fDk3e/k3e/k3e7k3ezj3O3k3vHo5Pbt6e7o4+7o4/Pt6d/Z1d7W0uXd2evj3+7n4uvj3+vj + 3/Pr5/jx7Pbu6vfw6/fv6/nx7fry7vjw7PHq5e/n4/Lr5vPs6PLq5/jw7fvz8Pbu6+7n4+7m4+/n5Ozk + 4ejh3e7m4/ny7/Hp5uDY1eLa1+vj4Pbu6/z28/ny7+3o5Pr18Ovm4dvUzuLa0uvi2uvh2Ozh2O3i2O7j + 2O7j2e7j2e3j2e3j2ezj2Ozh2ezh2ezg2e3g2e3g2e3g2e3g2e7h2u7h2u7h2u7h2u7h2u3g2e3g2e3g + 2e3g2e3g2e3g2e3g2ezf2O3g2e3g2e3g2e3g2e3g2ezf2Ozf2Ozf2Ozf2Ozf2Ozf2Ozf2Ozf2O3g2e3g + 2e3g2S0J8Obc8Obc8Obc7+Xb7+Xb7+Xb7+Xb7+Xb7+Xb7+Xb7+Xb8Obc8Obc8Obc8Obc8Obc7+Xb7+Xb + 7+Xb7+Xb7+Xb7+Xb7+Xb7+Xb8Obc8Obc8Obc8Obc8Obc7+Xb7+Tc7+Tc7uTc7uXc7eXd6OHa597Y8+rn + 9+7q7Obh8Orl8+3o5N7Z2NPO4NrV6ePe6uTf5+Hc6OLd6+bh7+nk8evm6uTf7+nk9O7p9O7p8Orl7ujj + 7ujj8evn8uvp8uvq9u7u/PT09/Dv7ubl7eXl8Ojo6eHg4trZ7ebl9e3t6eHh4trZ5t7e6uLi7ebl9e3s + /Pby7ujk9O7p8u3o4NjV3NPP5t3Y6eHa6eHa6+La7OLa7ePa7ePa7ePa7ePa7OPY7OLZ7OHa7ODa7ODa + 7ODa7ODa7ODa7eHb7eHb7eHb7ODa7ODa69/Z69/Z69/Z69/Z69/Z69/Z69/Z69/Z7ODa7ODa7ODa7ODa + 7ODa69/Z69/Z69/Z69/Z69/Z69/Z69/Z69/Z7ODa7ODa7ODaLQnz6ODz6ODz6ODy59/y59/y59/y59/y + 59/y59/y59/y59/z6ODz6ODz6ODz6ODz6ODy59/y59/y59/y59/y59/y59/y59/y59/z6ODz6ODz6d/z + 6d/z6N/y59/x6N/x6N/x59/x5+Dw6OHu59/v5uD37ur47+vw6uX17+r58+7w6uXc1tLb1dDo4t3v6eTs + 5uHn4d3q5N/w6uXx6+bw6uXz7ej28Oz38ezz7ejx6+bx6+b17+r17+zz7Ov48PD+9/f99fXy6urw6Oj1 + 7e3x6en07Oz07Ozv5+jr4+Pr4+Pt5eXr4+Tt5eX07Ov58+/z7ej48u338u3o4Nvf1tLl3Nfs5d3v5uDu + 5N3v5d7v5t3v5t3w5d3w5d3v5dzv5dzv5Nzv493v493v493v493v493w5N7w5N7w5N7v493v493u4tzu + 4tzu4tzu4tzu4tzu4tzu4tzu4tzv493v493v493v493v493u4tzu4tzu4tzu4tzu4tzu4tzu4tzu4tzv + 493v493v490tCfHo3/Ho3/Ho3/Dn3vDn3vDn3vDn3vDn3vDn3vDn3vDn3vHo3/Ho3/Ho3/Ho3/Ho3/Dn + 3vDn3vDn3vDn3vDn3vDn3vDn3vDn3vHo3/Ho3/Ln3/Ln3/Hn3/Dn3vDn3vDn3u/m3+3l3vDo4vXr6PXs + 6Pbv6/Pt6O7n5PHq5/Pt6u/q5+Da1dnTzuTe2fDq5e7o4+Xf2unj3u/p5O/p5PLs5/Xv6vfx7Pbw6/Ls + 5/Dq5fHq5vXv6vfw7fPr6vPr7Pvz8/z09PPr6/Hp6ffv7/bu7vr09PXt7eri4uvj4/Do6O/n5+zk5O3l + 5fDo6PPu6/Lt6vbv7Pny7+7n4+Da1OLa1u3k4O/n4uvk3e3l3u/m3e/m3e/m3e/m3e/l3e/k3O7k3e7k + 3e7k3e7k3e7k3e7k3e/l3u/l3u/l3u7k3e7k3e3j3O3j3O3j3O3j3O3j3O3j3O3j3O3j3O7k3e7k3e7k + 3e7k3e7k3e3j3O3j3O3j3O3j3O3j3O3j3O3j3O3j3O7k3e7k3e7k3S0J9Orj9Orj9Orj8+ni8+ni8+ni + 8+ni8+ni8+ni8+ni8+ni9Orj9Orj9Orj9Orj9Orj8+ni8+ni8+ni8+ni8+ni8+ni8+ni8+ni9Orj9Orj + 9Ovi9Ovi9Ori8+ni8uni8uni8eni8eji8enk9e7q+PHs9O7q7+jk6+bj7unm8uzq8u3r6+bh39rV4dzX + 8Ozn8u3o6uXg7unk9vHs8e3o7Ofi7+rl8u3o8u3o8Ovm7+rl8u7p+fTv+vXy8+3s7ujn9O7t+vTz9u/v + 9e/u+vPz+fPz+/b29e/u7ebm8Orp8uvr7+no8uvr8+3s7+no9fDu9/Lw8+3r9/Lv9/Dt5+Hd5N3Z7+jj + 8erl7+bg8Ojh8ejh8ejg8ujh8ujh8ejg8ejf8efg8efh8efh8efh8efh8efh8uji8uji8uji8ebh8ebh + 8OXg8OXg8OXg8OXg8OXg8OXg8OXg8OXg8ebh8ebh8ebh8ebh8ebh8OXg8OXg8OXg8OXg8OXg8OXg8OXg + 8OXg8ebh8ebh8ebhLQn06uP06uP06uPz6eLz6eLz6eLz6eLz6eLz6eLz6eLz6eL06uP06uP06uP06uP0 + 6uPz6eLz6eLz6eLz6eLz6eLz6eLz6eLz6eL06uP06uP06+P06+P06uPz6eLy6ePx6ePx6OTx6eTv5+Pu + 6eTy7Ojw6efr5eLp5eLt6Obw7Or07+7v6+jj39vh3djt6uXy7unu6uXy7+r38+7z7+rx7ejz7+v08Ovz + 7+rw7Ofu6+bw7ej28u749PHy7uzr5+bv6un18O/38vH38/H49PP18e/38vHz7u3u6ejv6+nv6unu6unz + 7+707+7u6un28fD18PDx7Or28u/58/Dr5eLk3trr5uHv6OTv5+Pw6OPw6OLw6OLy6eLy6eLx6OHx6ODx + 5uHw5uLw5uLw5uLw5uLw5uLx5+Px5+Px5+Pw5uPw5uPv5eLv5eLv5eLv5eLv5eLv5eLv5eLv5eLw5uPw + 5uPw5uPw5uPw5uPv5eLv5eLv5eLv5eLv5eLv5eLv5eLv5eLw5uPw5uPw5uMtCfTs5fTs5fTs5fPr5PPr + 5PPr5PPr5PPr5PPr5PPr5PPr5PTs5fTs5fTs5fTs5fTs5fPr5PPr5PPr5PPr5PPr5PPr5PPr5PPr5PTs + 5fTs5fTs5fTs5fTs5fPr5PPq5fPq5vHq5vHr5u/p5e3m4+7o5e3o5ezo5ezn5u3o5+/r6vLv7e/s6Orn + 4+rn4u7s5/bz7vj18Pbz7vXy7ff07/Lv6vLv6vHv6u/s5+3q5e3q5e/s6PTx7PXz7/Pw7vLu7fHt7PTw + 7/r29fv39vj08/Pv7vXx8PXx8O/r6uzo5+/r6vXx8Pby8vTw7/Tw7/by8fHt7PPu7fn08/jz8e3p5uXf + 3ejh3u/p5fDr5fHq5vPq5vPq5vPr5PPr5PLr4/Lq5fHo5fDn5PHo5fHo5fHo5fHo5fLp5vLp5vLp5vLp + 5vLp5vHo5fHo5fHo5fHo5fHo5fHo5fHo5fHo5fLp5vLp5vLp5vLp5vLp5vHo5fHo5fHo5fHo5fHo5fHo + 5fHo5fHo5fLp5vLp5vLp5i0J9ezo9ezo9ezo9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9ezo9ezo9ezo + 9ezo9ezo9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9ezo9ezo9ezo9ezo9ezo9Ovn8+zn8uzn8uvn8+vo + 8ern7unl7+rn7urp7Ojn6eXk6ubl7Ofo7+rq8e3q7+vn7erl8e7q+PXw+vfy9/Tv9vPu9/Tv9/Tv9vPu + 9PDs7+zn7enl7enk7+zo9PHs9/Tw+PTy9fHw8+/u9fDv+fX0+/f2+/b1+fX0+PTz9fHw8e3s7+vq8u7t + 9fHw+fX0+fX0+PTz9vHy8+7v9O/u+PTz+PTz8Ozr6eTi6uXi7+rn8+rn8uvn8u3n8u3n9evn9evn9Ovm + 9Orn8urm8ejm8unl8unl8unl8unl8+rm8+rm8+rm8+rm8+rm8unl8unl8unl8unl8unl8unl8unl8unl + 8+rm8+rm8+rm8+rm8+rm8unl8unl8unl8unl8unl8unl8unl8unl8+rm8+rm8+rmLQn17un17un17un0 + 7en07en07en07en07en07en07en07en17un17un17un17un17un07en07en07en07en07en07en07en0 + 7en17un17un17un17un17un07en07en07enz7Onx6+nz7uz48/L28vH08O/x7ezq6Ojp5ubq5+fr6Ojv + 7Ont7Obr6uTv7un09O719O/y8uzx8Orx8ev29fD29e/z8uzw7+ns7Obs6+Xv7ujy8ez19PD29PL08vH0 + 8fD08fD28/L59vX59vX59/b49fT18vHy7+/x7u3y8O/18vH39fT49vX49vX08fHy7+/z8PD28/P49fP0 + 7+7u6unt6Ofu6ujw6+jx7Ojz7Ojz7Ojz7Ojz7Ojy6+fy6+fx6ufx6Ofx6ejx6ejx6ejx6ejy6uny6uny + 6uny6uny6unx6ejx6ejx6ejx6ejx6ejx6ejx6ejx6ejy6uny6uny6uny6uny6unx6ejx6ejx6ejx6ejx + 6ejx6ejx6ejx6ejy6uny6uny6uktCfbx6/bx6/bx6/Xw6vXw6vXw6vXw6vXw6/Xw6/Xw6/Xw6/bx7Pbx + 7Pbx7Pbx7Pbx7PXw6/Xw6/Xw6/Xw6/Xw6/Xw6/Xw6/Xw6/bx7Pbx7Pbx7Pbx6/bx7PXw6vXu6/Xu6/Tu + 6/Lt6vXx7vn29fj08/fy8vTv7+7s7O3r6+7s7PDu7vHx7u/v6uzt5vDw6vX17/X17/Hx6+/v6fDw6vP0 + 7vX17/X17/P07fHy6/Dw6vHx6/T07/X08PPy8PXz8fX08/b08/f19Pj29fj29fj29fj39vj39vXz8/Ty + 8fPx8PPx8PTz8vb19Pf29fPx8fTy8vTy8vX09Pn29fr09Pby8fHt7PDs6vLt6vPu6/Tu6/Tu6/Xv6vXv + 6vTu6fTu6fPs6vPr6/Pr6/Pr6/Pr6/Pr6/Ts7PTs7PTs7PTs7PTs7PPr6/Pr6/Pr6/Pr6/Pr6/Pr6/Pr + 6/Pr6/Ts7PTs7PTs7PTs7PTs7PPr6/Pr6/Pr6/Pr6/Pr6/Pr6/Pr6/Pr6/Ts7PTs7PTs7C0J9e/r9e/r + 9e/r9O7q9O7q9O7q9O7q9O7q9O/q9O/q9O/q9fDr9fDr9fDr9fDr9fDr9O/q9O/q9O/q9O/q9O/q9O/q + 9O/q9O/q9fDr9fDr9fDr9e/r9e/r9O7r8+7r8u7r8+7r8u3r8e3r8Ozr8u7t8uzu8Ovr7urq7+zs8+7v + 9PHx9fPx8vHt8O/r8vHt9vXx9fTw8fDs7+7q7+/r7+7q8O/r8vHt8/Lu8vHt8fDs8fDs8/Lu8vHt8O7t + 8vDw9PLx9vTz9/X09vTz9vTz9fPy9/X0+Pb19fPy8/Hw8e/u8e/u8e/u8vDw8/Hx8vDw9PDx9PDx9fHx + +PP0+vT2+PPz8+7t8Ovr8e3r8u3s8u3s8u3q9O3q9O3q8+zp8+zp8uzq8urq8urq8urq8urq8urq8+vr + 8+vr8+vr8+vr8+vr8urq8urq8urq8urq8urq8urq8urq8urq8+vr8+vr8+vr8+vr8+vr8urq8urq8urq + 8urq8urq8urq8urq8urq8+vr8+vr8+vrLQn38vD38vD38vD28e/28e/28e/28e/28e/28e728e328u33 + 8+738+738+738+738+728u328u328u328u328u328u328u328u338+738u738vD38vD38u/28fD28fD2 + 8fD28fD28fD28fD38vH59PP48/L28fD07+718fD49PP8+Pf59fX28/P29PT18/Lz8vL08fHy8PDz8fHz + 8PDz8PDz8fHz8PDy8PDz8fHz8fH08fH08vH08vL18/P39fX49vb59/f6+Pj7+fn6+Pj6+Pj49vb29PT3 + 9fX39fX39fX39fX29PT39fX39PT69fb69fb38fL27/D38fP8+Pn++fr69PT17/D07/D28PD28PD28PD1 + 8PD18PD07+/07+/18O/18O/18O/18O/18O/18O/28fD28fD28fD28fD28fD18O/18O/18O/18O/18O/1 + 8O/18O/18O/28fD28fD28fD28fD28fD18O/18O/18O/18O/18O/18O/18O/18O/28fD28fD28fAtCfbx + 8Pbx8Pbx8PXw7/Xw7/Xw7/Xw7/Xw7vXw7fXw7PXx7Pby7fby7fby7fby7fby7fXx7PXx7PXx7PXx7PXx + 7PXx7PXx7PXx7Pby7fbx7fbx7/bx8Pbx8PXw7/Xw7/Xw7/Xw7/Xw7/Xw7/bx8Pbx8Pbx8PXw7/Tv7vXw + 7/fy8fr19PXy8vLw8PPx8fPx8fPx8fPx8fPx8fPx8fPx8fLw8PPx8fPx8fLw8PPx8fPx8fPx8fTy8vTy + 8vTy8vXz8/b09Pf19fj29vn39/n39/n39/j29vj29vf19fb09Pb09PXz8/Ty8vTy8vPx8fjz9Pnz9Pfx + 8vXv8Pbw8fr19vv3+Pjz9PTu7/Tu7/Xv8PXv8PXv8PXv8PXv8PTu7/Tu7/Tu7vTv7vTv7vTv7vTv7vTv + 7vXw7/Xw7/Xw7/Xw7/Xw7/Tv7vTv7vTv7vTv7vTv7vTv7vTv7vTv7vXw7/Xw7/Xw7/Xw7/Xw7/Tv7vTv + 7vTv7vTv7vTv7vTv7vTv7vTv7vXw7/Xw7/Xw7y0J+PTz+PTz+PTz9/Py9/Py9/Py9/Py9/Py9/Px9/Tw + 9/Tw+PXx+PXx+PXx+PXx+PXx9/Tw9/Tw9/Tw9/Tw9/Tw9/Tw9/Tw9/Tw+PXx+PXx+PTz+PTz+PTz9/Py + 9/Py9/Py9/Py9/Py9/Py9/Py9/Lx9/Lx9/Lx+PPy+fX0+fX0+vX09fPz8/Ly9PLy9PLy9fPz9fPz9vT0 + 9/X19/X19vT09vT09vT09vT09/X19/X19/X1+Pb2+Pb2+Pb29/X1+Pb2+Pb2+ff3+vj4+/n5/Pr6/Pr6 + +/n5+vj4+ff39/X19vT09fPz9fPz9PLy+fT1+/b3+vX2+PP0+PLz+vb3/Pj5+vX29/Lz9/Hy+PLz+PLz + +PLz+PLz+PLz9/Hy9/Hy9/Hx9/Lx9/Lx9/Lx9/Lx9/Lx+PPy+PPy+PPy+PPy+PPy9/Lx9/Lx9/Lx9/Lx + 9/Lx9/Lx9/Lx9/Lx+PPy+PPy+PPy+PPy+PPy9/Lx9/Lx9/Lx9/Lx9/Lx9/Lx9/Lx9/Lx+PPy+PPy+PPy + LQn59fT59fT59fT49PP49PP49PP49PP49PP49PL49fH49fH59vL59vL59vL59vL59vL49fH49fH49fH4 + 9fH49fH49fH49fH49fH59vL59vL59fT59fT59fT49PP49PP49PP49PP49PP49PP38/L18vH18vH38/L5 + 9fT69vX59vX48/L28/P29PT18/P18/P18/P18/P08vL18/P18/P49vb49vb39fX49vb49vb49vb59/f5 + 9/f59/f59/f39fX49vb39fX39fX5+Pj8+fn8+/v7+fn59/f59/f49vb39fX39fX29PT29PT19PT38vP6 + 9fb79vf48/T28vP69fb8+Pn69vf48/T28vP38vT38vT38vT38vT38vT28vP28vP28vL28vL28/L28/L2 + 8/L28/L38/P38/P38/P38/P38/P28/L28/L28/L28/L28/L28/L28/L28/L38/P38/P38/P38/P38/P2 + 8/L28/L28/L28/L28/L28/L28/L28/L38/P38/P38/MtCf////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////y0J//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////LQn///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////8tCf////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////y0J//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////LQn///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////8tCf////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////y0J//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////LQn///////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////28u2gk4pLNSpDLCSllZb89vj///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////8tCf////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////r376CKfT4bDj0aDpaFhP/8/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////y0J//////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////+vfspYh6RhoLRRgMl4KD//z+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////LQn///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////89+uriXlPGwlPHA6fiYf/+fv/+/3+/Pz7+/r5/Pv7//76//77///9///7+/v7+/v8 + /Pz8/Pz8/Pz8/Pz8/Pz7+/v+/f38+vr6+fj+/f37+/v+/v7+/f38/Pz8/Pz8/Pz8/Pz7+/v7+/v7+/v7 + +/v7+/v7+/v7+/v7+/v8/Pz8/Pz8/Pz8/Pz8/Pz7+/v+///+/v/+/v/+/v/7+/v7+/v+/v7+/v7+/v7+ + /v79/f79/f79/f79/f7+/v7+/v7+/v7+/v77+/v7+/v+/v/9/v/9/v/+///8/Pz7+/v+/v/+/v/+/v/+ + /v/7+/v///////////////////////////////////////////////////////////////////8tCf// + //////////////////////////////////////////////////////7//P79+v///P//+//79e7i29nM + wcq6rbqpmrKhkriil8avptLAu+PT0frz8f/8+//+/f3//ff//vL9/Pn9+/z48K2Jek4dBVEgCKKJe/Lr + 4tTGv7ylnbKekrSklsa6ruDWzfn07////v/+/v3+/v39/f39/f///v///O3m4tDGwbyqo7egl7qhmMay + qdPJwe7q4//++v/+//z9//79/+3q6c7Evs7Ev+HZ1v78/f38//39//7+///9//76+9bNytHFvdPIwvXz + 8Pj6/9vh98bJ9czP+ubr/fn9//z++/r9+/38/f/9//z9/vX5/9HW8Nbc9vT5//v9/f/9//78/vv9/f39 + /fj7/9nj+MTO+cPM897j9vn6//X5/9ri+MfO98nM9uHf9vv6//////////////////////////////// + /////////////////////////////////////y0J//////////////////////////////////////// + /////////////////v71/v30//z05tfOrpWJelNCZTolVS0SRSMHQx8FSB0GVSERZS4ic0Q7j3BozLqw + /ffs/v/19//48f/++P7++/b1qYZ4SiEETCIDimhNkHBeVi8hRh8NRB4GSSIHTyYPbkc2pYl+8+fj+vr4 + 9fn3+/37+/n3//v2z8C4el5SVjQmRh0OShsJSxoJUycUVjYkfmlWyryy+vDx/Pr//fn9vq6rUS0fVjIj + lHhw+/P1/fv//P3//fz//vv/9+3vc1VNWS4fZT4w3c/G7/T/mabjUFbWV1vfqbbu8Pf//P74+P77/Pv9 + +/f79/v/0Nn8aHLMe4Tb2+T/9Pn8//3//f3++v7+/Pz86/D/iZziRFfcTFvQpa/j7/T/5O3/jZ7kSVjU + T1TTnZfb9fL///////////////////////////////////////////////////////////////////// + LQn////////////////////////////////////////////////////3++///fD7+eu+pJdnRDlFHxFD + HAs/GglGJQ5YOR9dPyddPSlTLR1GGAxNGQ9GFw1YMyecfnHp2879/vX2//z5/Pz69fWnhnpHIARJIgFP + Jg5BHg1SNCRwVUR0WEJVMxpHHQZNHgZFGQ6ghHv6+PD5/vb39u/7+fDFsaJfNydJHAdKHwpaMx55UkCA + V0VuQzFMHwtFGgdcNyW2nJP++fv/9/bCp51JGQVEEgKMZlz69vX//f/8/P/7+f/9+/716+hoRTZHFQBV + KRPax7n1+/+ntOg9Q9ApK8x+ieDk7f/8/v36/f38/P329fns8f+TmesyNsw2Os+iqfbr8f/7+v3+//78 + ///7/v/U2/5aZ9waKM8+S9C4w/D0+P/k7P98ieEiLMomJsWMhdX28f////////////////////////// + //////////////////////////////////////////8tCf////////////////////////////////// + //////////////3/+f7+8vfx46iLd0UbDkQaDkwlGXdZTLmll+HQv/zv3v/77P/26ere1Mu2rZp1blgt + J0caD0MXCmxLPeHazv399/z6+/v09quGfUofCUccAUUhEZd/ce/i1/7/9f397//z4qCEbk0jDU0cCEok + FL+wov3/9f378cm1qFw0I0kYA2MzH7mZgvTs2v/67f798v/67sWqmV86JkYhFotuYfLo4//9+LefkEka + A08fB5BtXfr38/v//vj+//z+//7+/vTt5WpHMkwaAVgtEtrLt/n9/crU+1NV2ign1VVa3M3U/Pn+/v3+ + //r9/PX4/re69UtN1iMk3CMk3FFT27/D+vT4//v+/fr9//L4/rW99DxB2yEn3lhi4NTd//X4/+fr/3uC + 5CUn2Soj1Yh91vbw//////////////////////////////////////////////////////////////// + /////y0J///////////////////////////////////////////////////5+/ftuJ6MWzAZRBYHVCof + p4qB7+Xd///2//71///2//73//75+/36/fz3+O3o0sG5bEc6RRgJQRgHdl5O6OPZ//z6/PP0roaATR4M + SBoEeFpP6d/Y+fv2+P36+/36/fv16uLSa0g0Tx8IRhoIm4l3/P3y+PToeV1ORB0MSBkFr4t4//jn/fzv + +/72+fz0/v/2+vfrybmnwrGf6uDT///6//33uaiYQxoESx8Ih2pY+fbt+P/89v/9+f79+f358u/laEcw + TR0BVS0Q2su2+/375u7/cXLjLCjcNjbYr7Py9fn/+Pv99fv+1t3+Z2bgJyfLNDftMjXtKynOdHHn4Of+ + 9/3/+f7/6vX/lJvtKynYJijbe4Pq6PD/+vv/6uv/fYHkJiTcKR/ahHjX9e////////////////////// + ////////////////////////////////////////////////LQn///////////////////////////// + /////////////////////vni1MpwTjpCFwROJBWxmo738uv//Pj///3///3//v3//v3+/v34/v76/v3/ + +vj//ffWx7ttSTlCGQRLKxiunZD79vH89PGsh4BLHQtLHQiliYP++Pf9/Pz6/P749/79+vz18emUdWJR + IAhUHwqEZ1f18efz5tFJKAxEGwVSJxHowq7449Hx39Dt38/x3s/24NH449L54s733cz14Nj79vX//vu5 + p5w9EQFGGAaMa1369vD5//74//79//z8/vvz8ehnRy9LGwBSKhHZzb38/vvx9vyenfYyLtgsKNyDg+nq + 7v72/P7r9v+RmOkzLdYvLtZzevRrc/MsKtI4Mdqco/Do8//0/P/X5P1mbOMoJNk0NtSstfzx+P76+fvs + 6/+EieMrKtkuJduGfNr28P////////////////////////////////////////////////////////// + //////////8tCf////////////////////////////////////////////////769bmck0IcCUEYAX5h + TvTq3v/8+Pv8/Pr7/P/9///7/v/7/Pz8/vr+//v+//78//n4+P/89MOsmlQpFUQZBHdaSvDn3fv276WH + fUQbBkwfCLCWjv/6+P/8/P/8///7///7//by7JV6aUsaBE4XBJBuYv337dzHrkwoB0kgBEIVAVEpFEQh + D0IhDUUhDU0kDkwgCk0hCU4jDE4kEUYlGrqurv/9+7WflVAeC0oXBolkWvr28/v+/vv///7//vz9+vLu + 5WdGLE8fAVIqE9jFvf78+/n8/c/S/0BA0yUj3VhZ2tvh++rz/7K990JI0ikh3lhX48jS+b7H80tK1iki + 30RJ0bfC+efy/8DO+kBE1ism2VFX09/q//j8/v79/+3r/4GH3iYozC0m1YV81/Xv//////////////// + /////////////////////////////////////////////////////y0J//////////////////////// + ////////////////////////+/fylnZuQRkIQRgDmYRz///0/v/8+Pv9/Pz///3///7//Pz8/v///v// + //z//vf++Pb7//75382+aDsoTxwGZ0Ew3dLG+/jvo4p8QBwESB4Fjm9i+fDo//35//39/vr9//v87Ojh + clhFSh0GSRcHlXpv/vv138y4SSUJSh4GSBgEWiwaUiwZVDIdUS0ZVi4YXC8XYTMYTR8DTB8FRyMS0cG8 + //z2vqSYThsGSxkHfllP+fT0/Pz8/P7+//z9/vz67ubaaEQmUSACTiYW2MXD//39+/775e3/Z2/nHiLX + NTnQuMH5ytX6ZGzeKCrWODXel5jz6u//6O7/lJXyMjDaKCzWanLiyNP7kZ74Ky3RLinUfYTn7Pf/+/79 + //3+7ev/gojeKizNLSrRhX7U9fH///////////////////////////////////////////////////// + ////////////////LQn////////////////////////////////////////////////69/KIaWFBFwZK + Hwijj3/+/vT9/vn7/f76+fv//v/7+/v8//77//7+//7//P/+9f/8+v77+vXj1MZwPyxTGgVkOCfYyr76 + 9+6liXpIIAhOHwRfNyPOv6////D/+/T//vn//vfEtqdIKhRMHwhSJRSwnI/+/fby7OFZNyhIGwxJFgWo + gG/b0cDb08Ha0sTb0sLd07/Gp4xhOx0+GAFcPyz47+n/+fPEq55DFgJHGQVfOy716OP+/Pj+/Pf//fb/ + //bNvq1WLRZRIAJRKx/bzMz//P78/vzt9/+KmfMgKtIjK9KEjPqTm+wxNNQnKNteZdrS1v749/36+v/Q + 1P5bYtgeH9IwMtGMle1rdPkjI9I0LtKqsPXx+v/+/vv//f3q6/+AhuEpKtItKdOFf9L18v////////// + //////////////////////////////////////////////////////////8tCf////////////////// + //////////////////////////////v69JuAdkMZCEQUAZB1Yvv36vv79fz8+v///v///v3//vv//vv/ + /v7//v/9//76/v77/f368866q1sqHE0XA3lPP+nZ0Pv276SEeUcZBlEdA0ocBVYzH6+XhdfOw9jLvqeO + f0gmEkIYBEQUB4RcTfHj2f/++fz69rWdmFcuI0QRAVcnE6aDcNnLvOHbzdrUyL6qmWZELjsTAlAvFbqp + mf/+/P/++rulmkUaA0whCD4ZCWxSScO0qt/Yy+PbzMa4pXNWQEwhBkkcA2xMQuff3v38/Pr8+/D6/rzL + +DlH2B8p2UdN+URG6yck1kRE3LvI/PP4//78//z3+/L3/7K+9UJB3Cgl1kpM7UBF9ykn2VVP39XZ/Pj8 + ///9/P79/ufq/32D5Sgn2C0o1YSA0/Xy//////////////////////////////////////////////// + /////////////////////y0J/////////////////////////////////////////////////v33xbCm + Vy8dTh0FYj0p18S1//3y+vfw//76///8///8/v/9/f/+/P///f3+/Pr7/fv39e3hnXtpUSAMTB0JkHVm + +vLp+/fypYZ+QhcHSxsGeE45aUQ0SCUZSCQZTCUaRx0MQxgDSh0Jd0s828K4//z3//z4//369e3mtJiN + aj8uTR4JQRcFTCsaXkEyVTYoQRoLRxkGbEEssJaC9/Lp//z+//r8t6CaQRkGQxkFbEc4b01EQyIaWjks + YEAuSSoZNhUCQhwBWzcktJyU+fTw+vr3+/v69fv91eD8WGPhICbVJSftJCTiLy7RiInu6fP99Pr9+/z9 + /f3/9fv+5vD+gYLsKynNJSXjJCboLCzVenfm4OT/+vv+/fn9/P7+5Oz/e4LmJibaLSbYhH7V9fH///// + ////////////////////////////////////////////////////////////////LQn///////////// + //////////////////////////////////////nu5NqGYk5RIgVEGQaCY0/k1MX//fP//vf///n///v/ + //3+/v/8/v/8/v7///r+9u2tk4RVKBhGFwJTMRrBtqj9//n69vXEsayHaFuHaFXCsaHi0simjIZ0UkxZ + NitdOih4WESwloXh08j9+vf9/vz6/v34/Pv+/fr69fDg0cerkIV2WU1dPjNVMShdOTJ0U0yjioDdzsP4 + 8+n5+/P4+v7/+/7UxcOGalqDZlW6oJXl2NSwlZJ4X1dMNypQOCxfQjOOb1vRu6307ur8/fT6/vT+/Pv8 + /f7m7P+CiOcsK9UcGOcgH+NRU9zN0fr19/33+/r4/vr4//n2+/n19/3EyPhMTtcgIOMcHOM1NtSipe/p + 8P/9/f3/+f/6/f/h7v95hOQlJ9gtJtmEfNj17/////////////////////////////////////////// + //////////////////////////8tCf/////////////////////////////////////////////////9 + +v/++NXGtW1JMEceB0IaB2lINtO9rO/n2fz36v/+8v//9v//+P379PTv5t/QwZ2CckkiEUQXCFAoFKCM + e/399Pz//Pz9/f38+/z79Pz78fz79Pz8+P37+vz39fr07fr57/v67/799P7/+/n///b+/vT8/Pf///j+ + /vn9/f7//f759fz69/r39vr08/r39Pv28P389vj9+vn9+Pz/+/f6/P79//76+vz79Pz78/38+f/3+P37 + /Pnz8Pn48vr38Pv48f379f/++fz8+fr+9fz/+f/9///+/vX3/7Gy7kRC2ygk5Dk83aOp9e3z//v8/fr9 + +fj++Pf++Pv/+vr6/evw/5Sa7zEz1icm4k1Q2snQ+/X9/vv9+vz5//f9/eHv/3uH4yUo1Csn2YB72PPw + /////////////////////////////////////////////////////////////////////y0J//////// + ///////////////////////////////////////////+///9//721sa4aUc5RRoMRhYGVygVfFVBpYZt + taeOuK2WtqyWqpeBimtXZzsmSBsGQhgIWDMkp4t++/jw///7///9/Pz8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////vz9+Pr/0df/V1nYLSvNdXne2OD/8vr//P/4/v/5/f7++/r8/P/3+v/38/v/09r/am/ZLi/ScXXj + 4+r/+v78+/78+fr/9/385O3/fobiJCXQJyjYenzX7/D///////////////////////////////////// + ////////////////////////////////LQn///////////////////////////////////////////// + ///9/f3///78/Pj++/PbzsSObmNWKx5HFwhGGwpEHQdGIw1FJQ9HJA5FHwtEGghCFQVAGAZxT0PEraP3 + 7eb/+PX//v7//v/8/Pz///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////Pz5+/zl7P97f+BCRcK9wvnt9P/4/v7+ + //f///r8/fz//f/7/vb7/vX4/v/q8f+vtfVER8eUluzy9v/9/v78/P76+f/4+P/p6/+Gh98wMMgwLs2C + gtbx8f////////////////////////////////////////////////////////////////////8tCf// + //////////////////////////////////////////////////7///z+/vr8+f78+Pr38ebTy6aKgHpb + T108L1AvIVEwIlEtH1kzJnBMQpR4b8uyrPfw6/379////P/+/f/+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////Pn8++74/6+59JOb5uzx//f7/vz++///9/3/+fv9+/3//vz++P7+9/3//Pj8/uft/4iP + 2sLF+fn5//79/v38/v37//z5/vLu/6qq529x0HBy1aqr4/X1//////////////////////////////// + /////////////////////////////////////y0J//////////////////////////////////////// + ////////////////+/7+9Pn6+Pr7/v79/vz5//34//n08eTb08W8yLmxzr205tTO/vHu//n6//3+//7+ + /fz+/Pv+/f7///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////f/88/z/2+b/3Of/+fz+/v38 + ///7/v74/f75+//7+//9/v/7///6//76/fz6+v3+3OX86/L//Pv9//76/v/6/f/7/v36/Pv98fX/6fT/ + 5/P/6/H/+fv///////////////////////////////////////////////////////////////////// + LQn////////////////////////////////////////////////////////////6+/36+/36/P77/f37 + /v37/Pv///z//vr///v//vr//fr+/v3//f///f/5+f36/f/5/f70+Pr///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////8tCf////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////+//+//3//vv//vv///z7//77/vv89fb75u324eTt6OHm5+Di4+Lh4eLj4ebl4uzq + 5PHv6vX07/f48/j7+Pn9+/r+/vr///z//////v////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////y0J//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////vz6+/j/+fz/9/7/7/T93Nr1 + 4N365un44+rh0tfGzcvMycXKxsTGx8PEyMTCy8bBzsjC1M3H3NXQ5ODb6ujm8fHw9/j4+fz8/f7/+/v7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////LQn///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////++/z7+P/6/P33/f/o6/2Xltl4dNOlp/DEyOi9vby9sKm+rKS7qaG4pZ25pZu9 + qJ3EsKTHtavKu7LPxL/Wz83g293p5+rx8PT9+vz//v/+/v7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////8tCf////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/v75/P/8//39+vf6++7v + /4uI4zYxxkFC0nd42IB5nXBZUnNSPHFLMHNMMHdQNH9YPIlkSpVyW6WIdrafkL6spcW4ttTLzOPa2+/o + 6Pv2+P79/v///v///P////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////y0J//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////Pz8//7///3///z+/Pz2/fz97On8kIvoMy3VJCHhMS3MMyiCOyI0Vy4WaTQFbTYD + cDkFczwJdT8PckESc0Ybflgzk3NUrJB4xK2az76y3dLN7+jq9fX3+vz9/v/+///8//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////LQn///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////8/Pz///7///3++/v9+/3//v3h + 3eK0r8SpqOVNTdkhIeIpIuM8K7xNMXRaMCl0PAR7QQCARAKERwKISgKHSwWJTgmFUA6AUBOLXSaqgE65 + nHvEtarY0dHj4+ju8fT6/fz9//v+//7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////8tCf////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////z8/P///v/9+/79/Pn5+s/Q1YaEibWxueTn94eN6ics0iId5C8h3Us0s1gyWW85 + FX5CAolJAJBNAJNQAJZSAZpXAp1cA5pbA5ZaBZZfDphuMayRcMO0o9PNyOLl5Pb4+Pv9/fz8/Pz//P// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////y0J//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////7+//3//vv9/v3+7vLxrbWx + anBxo6aq7vHz9Pv/0dv8X2jfKSraIx3rLSLcUTWmZjVOfT8MmlMBn1UAl1EDnVgEoVwAqGAAqGIBpGME + oGUDmmQImmsfsI9WyLmW1NHA6+rm+Pb5//z//v79/v/9//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////LQn///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////7/f3//v/+/P3+/P78+PuzsrBrbWeKionw8fL7+/r0+ffo8P+rsPVCPtImG+EqGupB + K8dbPIB3RS+PUAmhWwGfXAedXAOgYQCqaQCoaAKlaQaibgikcw2cbA2ScSGrmmLFv57g3dDz8O7+/P3/ + /v7///7///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////8tCf////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////r///r+//v8/f78/v36/M3HynRt + bX15ddza2P36+f39+Pv89vb7/+Di/4+J7zgq1DIh6Dkuz05DmmZJS3hLGpBXDZZbE5RfD5pnDahwDKVt + B6JuCZ1yC6J7EaJ7FZZ5HI9+NaigbtHOsOnn3fv59//+/v///v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////y0J//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////+/3/+/7++/7++Pr7/f3+29rbfHp6cXBuvb668/Xz+/7/+Pz+9vz79fz/7fP/3d//dnXm + LSzDOD65SlOVWlZcaFQ8d1c0fVc9flg6gl0vnW8oo3EYqXkUon0QpoYaqYoiqI4plYMrmo1IurOF4N3J + 8vDr/fz8///+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////LQn///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////+/f/+/v/+/f79/P3+/fz9/f308vKuqaht + a2iTk4zk5t39/vf5/fr6/v38/v78/f/5+/3y9v7Gzvt9iN6DjtSJlLqOl5qYmIyhmIqjk5GHdW5uWD2W + cTSneCS2hiWphyCqkCunjyupkSyrljeikkKpn2jTzbPq5t/8+fr//f7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////8tCf// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+///+///+///+///6+//9/v/+/f/9++fe246EgHBmX8e/tvv47/757P3+8f7+9f779v/9+P778v39 + 9/L3+ePu/+jw/+3z++r29ez38fH39PL09KyrpWlfRJd5O6uCK7yQMKeLLaaTOKyaOrGdOLWhPa2cRKaa + W8K7muTe1Pr39//9//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////y0J//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/f38/fr5///9//36+/f08ezn5t7Z3MzGpJGL + aVROclROmHRum3dujnBchW9Ph3FPj3JYlXFcoHlipINoqpV+4NjP//79/f7/+P/9+P/8+//9+/77urio + bGM9m4M6spM0tZcyqZs/pJxCrKJCtKc/uKk/tKRFq6BWq6Z619TA8u7r//z+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + LQn///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+//v7+vb69/T38+7e08+4qKScioSCb2l7ZmBdSEFROTJsSkJ4UEptREFmQjRaPiJUORZSMBJMJAxJ + HgZJIghGKRS2qJn///j//vv8/fv+/v3//f/++vu5saloXT+VfkCvkz+5oEOxpUynokisqEi0rUaxpj+1 + qUirpVWko27Pz7Hv7OL+/P3///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////8tCf////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////v89f//+eHb1aqfmYd5c4l5c5iIgbKfmsGt + qINwam9cVMiwpeDLxt3JzN3Ny9nFt9O7pcerl7qciZh2Z4BjUmpSRr+xqf/8+f/9/f/8/f/8///6///4 + /7Gmp0g5J1xEFnNXF45yKKuXS7KnV6qnT7KuUq+pTLOtVLCsXqSmbMXHouvq2f78+/////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////y0J//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////529nSjIV+l4yHy8G9+Ozp/PXx/vv48e7rjIF+f3Zx6+nf+Pfx7+vu8Ovy8e3x8e7u8ezp + 8O7r7u7q9/fz+PTx+vf3/vz///n///r///r//vr/+/b+raekPTAdPyUDRiMASyIBYzcRfWAxmo9Soppb + oZpcoZ1doZ9hqKlzv8Ca6erV/f35//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////LQn///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////vi0r6mgmJPv6ub/+vb///v//v3/ + /vzt6up1dHOGhoTt7enb3tm6vsDGxs3Lx8/Kw8rQyczKxsa7vbvo7On6/fz+/v39/P7++////P/8+v/1 + 9//0+P+8uLNaSi9IKQVHHwBLHwBPHQBEHgNvWzmOgWKXjm+dlnKAfFKgn3LAwZzs7dj+/fn///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////8tCf////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////9+LGrp7Cppf/++//8+P///P/+/f/+/uvt7W1xco2Rke/w7tHT0MbKye7v8fPw9PLt + 8fb09evq57vAuubr5/z//P39+f7/+/z/+/r8++nv+dXf+c3X+7i5xpGFbZN2Rm9NHFUvBU4jAEcmDq+h + keng2+vm4ubg04yHbKOjfsLCoe/w3P7++/////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////y0J//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////z66ePdo5mR0crA+Pbu//74 + ///8///+7Ozsc3R0kpOT8PDw19fXzMzP+/n8//3///3+//3+9vXwysvG4+bj8PDwvby+u7u4uby2sLW4 + maC7YGuwMT68UF60gIqSpJxgtqdcrZtZkHw7cV81yL6x//r8//z+9vPtiotyp6uHxsqq8fLh//38//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////LQn///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////Pv//vrd1866sqfHwbfx7uf8/Pj///3t7euDgH6LiYbs7enP0c/Ly8z7+vz+ + /f/9/P79/fz09PHCwb3p6efk4+OmpajKycjLzcrJz9G9xd6Fj9otO9I5TMFuf5+gommwq1izq164r2S1 + r3nj4sn//vT//Pb4+Oman36gp3/L0LD09ef//f7///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////8tCf////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////8/f/++v389u3p4dHL + w8PBu9ra1/X39fLy8JGMh4d/eOzr5NXX0MnMyfP29vr9/vj8/fr7/PDx7sfGwuzs6t3c3L++v/v6+/r8 + +/n9/fD3/8LK/EZV2zNFvGBzppyidqysWrGuXLSuZLa2eNDWqN/jwOPmyOHmw7C5jq23itTbuvn57P/9 + /v////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////y0J//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////vz8/P/8+Pv1/v/5/Pv49PLx3t7d4OTg9PTvtKmgemle0sa4vrWpy8fA + /fz6+/7++/7+/v7/8fDvycbD7evo4uHfv8C/9vj49vr5+P769vv95ev/coHqO0/DU2azj5uDp61ht7dg + tLZpr7dyrLh4rbl9rLiAq7iCqraBt8GT4+nK/P3x//3///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////LQn///////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////8 + //3//f3+/P38+/z2+fb9/Pa+sqZEKxxCJRVBKBiZiH759vL7+Pj8+fv/+/738vPMxsXr6efl4+C7vrv1 + +vn7///7//z8/f32+P+mtPZNYc5BV7eBkpKirGuvtVystmeruXGrvHOuvniyw3+ywoOvvYPAyp7x9tv9 + /vL//v7///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////8tCf////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////9/v77/fz9/vn9/P7/+Ma8r0sqG0QaCEQe + DIdpX82+u8rAwse/w8i/w8e9vrmur8O8uru4tLa6t/T6+Pn//fn9+P78+/z6/sva+WV62TtSvHWKnp6s + eq22YKq5aKe5cK3Ad63Ad62/ebTEg7PBi9Lbtfn85/z98/79+v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////y0J//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////+/z99fr5/v74xryxRycZSB0LRRwLkXFo38zI3tLU08vP08nN2M7QvLGx0MfG0tDM + 3+Pf9/z5+v/9/f79//7+/vz+4u7+iqHsQVzEZn+mlaWHqLNmq7xqp7xwrsF5sMR8scKBsMCGvcmb6vHV + /v/z/v/5///8//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////LQn///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////5+/35/v3+/vrazsWQdWlx + UD9aPi29q6D89vP89/j8+Pv++/728PHPxsbt5+T9/Pj6/fn5/vr4/fn9/Pz9+vz49Pbt9v2ovfFXc85f + eq2Mn5Kmsm+svmyswXGsvnewwYCzw4mzv5HU3bz8/+7///j///z///7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////8tCf// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////r+/vf9/fn7+f358/rw6OHRw5CEdsS+t/r49ff5+fn7/P39/vHv7r+8uMjE + wNHPzcrMycXKxcXJxMzJydHJzs3FyfT4+sna+3KO1ll1roWZm6axeqy9bq3Cca3AerDAhK+7i8PMqfD0 + 3///9////f/+///+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////y0J//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////+P39+v//+v39/v77 + //z3/fvzw8O6kJGN4eTk+f39+f3+/P3++vr44uHd3NrY3tzb3+Dg39/f3t/d4t3d3dfawbq/+vj92uf9 + i6fZV3OrfZKdpLCArLlwrb5vrL95qbmCucOe5OrT/P3z/P36/////v7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + LQn///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////5/v75/v/3/Pz6/v3+/v77/Pr7/PvP0NC2trry8fP9/v7+/fz+/vr/ + //z///3//v7+/f///f///////vr28/LCu8L78/3l7v2mwN9cea11i5qfq4OstnKtunCsvXu2xZTh5839 + /vT7+/r///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////8tCf////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////n9/vj9 + //r///r9/vv9/f38/vr4+urn6ufi5v77/P78/P79+f//+//+/f38/P/9/v/9///9/v789/n288G5v/70 + //L2/73U6GWCsnCHmJmngqyzdqy3dbfGjeDrxfn87f7++/79/vz7/P////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////y0J//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////P///P7+/f///f7//f7//////Pv7/v79/v76 + /v35/v35/v76/v77//79/v7/+/z//f369vDr0cLA9ubn9vj60eHxcYu5aoaYi6GBoq17yM2k6O7V+v3w + ///7/v7+/v3//f3+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////LQn///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////9//78//78//79//79//7///3///z+/vv+/vv6+fbw7er08/H7+fn//Pvl4NuVhX1z + V02NbmTMwL3o8P+Cks5vhamhtq3a4Mj6+ur6+vf+/v7////9/f3+/v7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////8tCf////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////7//v3//v3//v7//v7//v// + /v7//f39/P38/PTy89XT1MfFxczExM7DwbmpolU4Lz8WCkchEaqYlO/y/4+a44mX0dLe6/z7+f/9+v// + //7+/v39/f7+/v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////y0J//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////+///+///+/////////fz++fn7+vn98vP27eru6uLl6dnbzba0 + XDcxQhQIQxwMqZiP7/T+mKTslqXi3en6/f7+//36/////f39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////LQn///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////8+/3+/v/9/f/7+/75+P38+v/++f3//P7s5eWfh4KKbWKRe2fLxb3h7v+Mnd+fsujh8f75/v/+ + //z+/f39/f3///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////8tCf////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////78//z7//P0/Orr9fLz/Pr5+/z9 + /Pn7+v77+f/7+f/89/T6/cvf/oWc2LHG7+j4//T5/P3+/f7+/v7+/v////7+/v////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////y0J//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////fz/+vr+7O3329vm5ufy8/n/7/v+8vv/8fb/8vf+4+//rMDtk6nfzN/87vn/ + +Pz9/v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////LQn///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////8/f/4+P7r7PbR + 0ePDyOHI2vHT5vjU5vjH1fasu+yYqN7D1PPv+/76//r///n///v///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////8tCf////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////39//39//38//Lw/N3g9bzO6azB5Ke65Ka14K6658bQ9ez1/vn+ + 9/7+7f//8v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////y0J//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////3//v3/ + //7/+vn99Pr+5Pf92/D52uv53+z55ez87vL/+f3+/v71/v7y//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////LQn///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////8tCf// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////y0J//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + LQn///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////8tCf////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////y0J//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////LQn///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////8tCf////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////y0J//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////LQn///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////8tCQ== + + + + OATC OpenMI Editor 2.0 + +Copyright (c) 2009 OpenMI Association +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +Neither the name of the "OpenMI Association" nor the +names of its contributors may be used to endorse or promote products +derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AdaptedArguments.Designer.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AdaptedArguments.Designer.cs new file mode 100644 index 00000000..6f7c8f84 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AdaptedArguments.Designer.cs @@ -0,0 +1,70 @@ +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + partial class AdaptedArguments + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AdaptedArguments)); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.SuspendLayout(); + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.AllowUserToDeleteRows = false; + this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView1.Location = new System.Drawing.Point(0, 0); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.RowHeadersVisible = false; + this.dataGridView1.RowHeadersWidth = 21; + this.dataGridView1.Size = new System.Drawing.Size(566, 121); + this.dataGridView1.TabIndex = 0; + // + // AdaptedArguments + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(566, 121); + this.Controls.Add(this.dataGridView1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "AdaptedArguments"; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; + this.Text = "Arguments for adapted source"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.OnClosing); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DataGridView dataGridView1; + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AdaptedArguments.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AdaptedArguments.cs new file mode 100644 index 00000000..8316c1a7 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AdaptedArguments.cs @@ -0,0 +1,176 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.Diagnostics; + +using OpenMI.Standard2; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + public partial class AdaptedArguments : Form + { + DataTable _table; + IList _arguments; + DataGridViewCell _cellInEdit = null; + + public AdaptedArguments() + { + InitializeComponent(); + } + + public void Initialise(IList args) + { + _arguments = args; + + _table = new DataTable(); + + DataColumn column = new DataColumn(); + + column.DataType = typeof(String); + column.ColumnName = "ID"; + column.ReadOnly = true; + column.Unique = true; + + _table.Columns.Add(column); + + column = new DataColumn(); + + column.DataType = typeof(String); + column.ColumnName = "Caption"; + column.ReadOnly = true; + column.Unique = false; + + _table.Columns.Add(column); + + column = new DataColumn(); + + column.DataType = typeof(String); + column.ColumnName = "Value"; + column.ReadOnly = false; + column.Unique = false; + + _table.Columns.Add(column); + + column = new DataColumn(); + + column.DataType = typeof(String); + column.ColumnName = "Type"; + column.ReadOnly = true; + column.Unique = false; + + _table.Columns.Add(column); + + column = new DataColumn(); + + column.DataType = typeof(String); + column.ColumnName = "Default"; + column.ReadOnly = true; + column.Unique = false; + + _table.Columns.Add(column); + + column = new DataColumn(); + + column.DataType = typeof(String); + column.ColumnName = "Description"; + column.ReadOnly = true; + column.Unique = false; + + _table.Columns.Add(column); + DataRow row; + + foreach (IArgument arg in args) + { + row = _table.NewRow(); + row["ID"] = arg.Id; + row["Caption"] = arg.Caption; + row["Value"] = arg.Value; + row["Type"] = arg.ValueType.ToString(); + row["Default"] = arg.DefaultValue.ToString(); + row["Description"] = arg.Description; + _table.Rows.Add(row); + } + + dataGridView1.DataSource = _table; + + dataGridView1.CellBeginEdit += new DataGridViewCellCancelEventHandler(CellBeginEdit); + dataGridView1.CellEndEdit += new DataGridViewCellEventHandler(CellEndEdit); + + dataGridView1.Columns[0].Visible = false; // hide Id's + + for (int nR = 0; nR < dataGridView1.Rows.Count; ++nR) + for (int nC = 0; nC < dataGridView1.Rows[nR].Cells.Count; ++nC) + { + if (dataGridView1.Rows[nR].Cells[nC].ReadOnly) + dataGridView1.Rows[nR].Cells[nC].Style.BackColor = Color.LightGray; + } + } + + public void UpdateArgumentsFromForm() + { + for (int n = 0; n < _arguments.Count; ++n) + _arguments[n].ValueAsString = (string)_table.Rows[n][1]; + } + + void CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) + { + Debug.Assert(_cellInEdit == null); + _cellInEdit = ((DataGridView)sender).CurrentCell; + } + + void CellEndEdit(object sender, DataGridViewCellEventArgs e) + { + EditValue(); + } + + void EditValue() + { + Debug.Assert(_cellInEdit != null); + + if (!_cellInEdit.ReadOnly) + UpdateArgFromCell(); + + _cellInEdit = null; + } + + void UpdateArgFromCell() + { + string value = (string)_cellInEdit.Value; + string oldValue = _arguments[_cellInEdit.RowIndex].ValueAsString; + + try + { + _arguments[_cellInEdit.RowIndex].ValueAsString = value; + } + catch (Exception e) + { + _arguments[_cellInEdit.RowIndex].Value = oldValue; + _cellInEdit.Value = oldValue; + + string s = string.Format( + "Invalid Value \"{0}\"\r\n" + + "Value should be of type {1}", + value, + _arguments[_cellInEdit.RowIndex].ValueType.ToString()); + + MessageBox.Show(s, e.Message, + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void OnClosing(object sender, FormClosingEventArgs e) + { + if (_cellInEdit != null) + { + dataGridView1.NotifyCurrentCellDirty(true); + + EditValue(); + } + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AdaptedArguments.resx b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AdaptedArguments.resx new file mode 100644 index 00000000..750db409 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AdaptedArguments.resx @@ -0,0 +1,536 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/App.config b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/App.config new file mode 100644 index 00000000..1be07d0a --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/App.config @@ -0,0 +1,27 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AssemblyInfo.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AssemblyInfo.cs new file mode 100644 index 00000000..ccb9a0c8 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/AssemblyInfo.cs @@ -0,0 +1,38 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +using DotSpatial.Controls; + +[assembly: AssemblyTitle("AOTC Configuration Editor")] +[assembly: AssemblyVersion("2.0.*")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("Configuration Editor 2")] +[assembly: AssemblyCopyright("BSD License")] +[assembly: PluginAssembly] \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/ConnectionDialog.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/ConnectionDialog.cs new file mode 100644 index 00000000..9f295a53 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/ConnectionDialog.cs @@ -0,0 +1,799 @@ +#region Copyright + +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#endregion + +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Text; +using System.Drawing; +using System.Windows.Forms; +using Oatc.OpenMI.Gui.Controls; +using Oatc.OpenMI.Gui.Core; +using OpenMI.Standard2; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + /// + /// Summary description for ConnectionDialog. + /// + public class ConnectionDialog : Form + { + #region Form controls + + private ListBox listLinks; + private ExchangeItemSelector _treeSource; + private ExchangeItemSelector _treeTarget; + private CheckBox DimensionFilterCheckBox; + private CheckBox ElementTypeFilterCheckBox; + private PropertyGrid propertyGrid; + private Button btnLinkAdd; + private Button btnLinkRemove; + private Label labelWarning; + private Button buttonClose; + + private Button btnViewer; + private GroupBox groupBoxOutputExchnageItems; + private GroupBox groupBoxLinks; + private GroupBox groupBoxProperties; + private GroupBox groupBoxInputExchangeItems; + private Panel panelBottom; + private Splitter splitterHorizontal; + private Splitter splitterVertical2; + private Splitter splitterVertical1; + + #endregion + + #region Member variables + + /// + /// This Hashtable is used to store already constructed PropertyManagers of + /// selected object. Its key is selected object, value is corresponding PropertyManager + /// or null if it not exists at the time. + /// + private Hashtable _propertyManagerCache; + + private UIConnection _uilink; + private bool _shouldBeSaved; + + private readonly ElementSetViewer _elementSetViewer; + + ExchangeItemSelector.TreeOptions _treeOptionsSources; + ExchangeItemSelector.TreeOptions _treeOptionsTargets; + + private Label label1; + private Button btnAddSources; + private Button btnArgEdit; + ToolTip _tooltips; + List _models; + + #endregion + + /// + /// Creates a new instance of ConnectionDialog dialog. + /// + public ConnectionDialog(List models) + { + _models = models; + + InitializeComponent(); + + _uilink = null; + _propertyManagerCache = new Hashtable(); + + _shouldBeSaved = false; + + _elementSetViewer = new ElementSetViewer(); + + _treeOptionsSources.IsSource = true; + _treeOptionsSources.ShowCheckboxs = true; + + _treeOptionsTargets.IsTarget = true; + _treeOptionsTargets.ShowCheckboxs = true; + + _tooltips = new ToolTip(); + _tooltips.AutoPopDelay = 5000; + _tooltips.InitialDelay = 1000; + _tooltips.ReshowDelay = 500; + _tooltips.ShowAlways = true; + _tooltips.IsBalloon = true; + _tooltips.ToolTipIcon = ToolTipIcon.Info; + + string active = "\r\nOnly active when both source and target items are ticked"; + + _tooltips.SetToolTip(btnLinkAdd, "Create a new link from ticked source and target" + active); + _tooltips.SetToolTip(btnLinkRemove, "Remove a link\r\nOnly active when a link is selected"); + + _tooltips.SetToolTip(btnViewer, "View spatial representation of source and target" + active); + + _tooltips.SetToolTip(btnAddSources, "Add additional sources from 'Source Model' or '3rd party dll'" + active); + _tooltips.SetToolTip(btnArgEdit, "Edit adapted source arguments\r\nOnly active when an adapted source is ticked"); + } + + #region Methods + + /// + /// Populates this ConnectionDialog with specific connection. + /// + /// + public void PopulateDialog(UIConnection uilink) + { + _uilink = uilink; + _propertyManagerCache = new Hashtable(); + + _shouldBeSaved = false; + + _treeSource.TreePopulate( + uilink, _treeOptionsSources); + _treeTarget.TreePopulate( + uilink, _treeOptionsTargets); + + ElementTypeFilterCheckBox.Checked = false; + DimensionFilterCheckBox.Checked = false; + + UpdateListLinks(); + + Text = "Connection: " + uilink.SourceModel.InstanceCaption + " => " + uilink.TargetModel.InstanceCaption; + } + + + private void UpdateListLinks() + { + UIConnection.Link selected = (UIConnection.Link)listLinks.SelectedItem; + + listLinks.Items.Clear(); + listLinks.Items.AddRange(_uilink.Links.ToArray()); + + foreach (object item in listLinks.Items) + if (item == selected) + { + listLinks.SelectedItem = item; + break; + } + } + + /// + // show properties of selected object (if any) + /// + /// + private void PropertyGridSelectObject(object obj) + { + // first look into cache if propertyManager wasn't already constructed for this object, + // if not, construct new one + if (obj == null) + propertyGrid.SelectedObject = null; + else if (_propertyManagerCache.Contains(obj)) + propertyGrid.SelectedObject = _propertyManagerCache[obj]; + else + { + propertyGrid.SelectedObject = Oatc.OpenMI.Gui.Controls.PropertyPane.Selection(obj); + + // store propertyManager of actually showing properties into cache, + // so next time user selects same object the properties won't be newly constructed. + // It's most useful for making changes of DataOperation arguments persistent + // between selection of other items + if (propertyGrid.SelectedObject != null) + _propertyManagerCache.Add(obj, propertyGrid.SelectedObject); + } + } + + UIOutputItem SelectedSource + { + get + { + List sources = _treeSource.GetCheckedExchangeItems(); + + return sources.Count > 0 ? (UIOutputItem)sources[sources.Count - 1] : null; + } + } + + UIInputItem SelectedTarget + { + get + { + List targets = _treeTarget.GetCheckedExchangeItems(); + + return targets.Count > 0 ? (UIInputItem)targets[targets.Count - 1] : null; + } + } + + + private void UpdateButtonsEnabledStatus() + { + UIOutputItem source = SelectedSource; + UIInputItem target = SelectedTarget; + + List sources = _treeSource.GetCheckedExchangeItems(); + + bool checkedSourceAndTarget = source != null && target != null; + + // Make it look as if inactive rather than do it as + // tooltips will not work on inactive buttons + + btnLinkAdd.ForeColor = checkedSourceAndTarget + ? SystemColors.ActiveCaptionText : SystemColors.InactiveCaptionText; + btnLinkRemove.ForeColor = listLinks.SelectedItem != null + ? SystemColors.ActiveCaptionText : SystemColors.InactiveCaptionText; + + btnViewer.ForeColor = checkedSourceAndTarget + ? SystemColors.ActiveCaptionText : SystemColors.InactiveCaptionText; + + btnAddSources.ForeColor = checkedSourceAndTarget + ? SystemColors.ActiveCaptionText : SystemColors.InactiveCaptionText; + btnArgEdit.ForeColor = source != null && source.IExchangeItem is IAdaptedOutput + ? SystemColors.ActiveCaptionText : SystemColors.InactiveCaptionText; + } + + #endregion + + #region Event handlers + + private void OnSelectionChanged(object sender, System.EventArgs e) + { + if (listLinks.SelectedIndex < 0) + return; + + PropertyGridSelectObject(_uilink.Links[listLinks.SelectedIndex]); + _treeSource.CheckLink(_uilink.Links[listLinks.SelectedIndex]); + _treeTarget.CheckLink(_uilink.Links[listLinks.SelectedIndex]); + + UpdateButtonsEnabledStatus(); + } + + private void OnClose(object sender, System.EventArgs e) + { + Close(); + } + + + private void OnClosing(object sender, System.ComponentModel.CancelEventArgs e) + { + // if DialogResult is DialogResult.OK, dialog changed something, so + // composition should be saved + DialogResult = _shouldBeSaved ? DialogResult.OK : DialogResult.No; + + // clean-up + _propertyManagerCache.Clear(); + } + + + private void OnLinkAdd(object sender, System.EventArgs e) + { + if (_treeSource.GetCheckedExchangeItems().Count < 1 + || _treeTarget.GetCheckedExchangeItems().Count < 1) + return; + + List providers = _treeSource.GetCheckedExchangeItems(); + List acceptors = _treeTarget.GetCheckedExchangeItems(); + + if (providers.Count == 0) + { + // ADH: should realy disable apply button and provide tooltip as to why + MessageBox.Show("No Output Exchange Item selected.", "Error", MessageBoxButtons.OK, + MessageBoxIcon.Exclamation); + return; + } + + if (acceptors.Count == 0) + { + // ADH: should realy disable apply button and provide tooltip as to why + MessageBox.Show("No Input Exchange Item selected.", "Error", MessageBoxButtons.OK, + MessageBoxIcon.Exclamation); + return; + } + + // Are the connection dialogs check boxes screwed up? + Debug.Assert(acceptors.Count == 1); + + _uilink.Links.Add(new UIConnection.Link( + (UIOutputItem)providers[providers.Count - 1], (UIInputItem)acceptors[0])); + + UpdateListLinks(); + UpdateButtonsEnabledStatus(); + + _shouldBeSaved = true; + } + + + private void OnLinkRemove(object sender, System.EventArgs e) + { + if (listLinks.SelectedItem == null) + return; + + _uilink.Links.Remove((UIConnection.Link)listLinks.SelectedItem); + + UpdateListLinks(); + UpdateButtonsEnabledStatus(); + + _shouldBeSaved = true; + } + + + private void DimensionFilterCheckBox_CheckedChanged(object sender, System.EventArgs e) + { + _treeOptionsTargets.FilterTargetByDimension = ((CheckBox)sender).Checked; + + _treeTarget.TreePopulate( + _uilink.SourceModel.LinkableComponent, + _uilink.TargetModel.LinkableComponent, + _treeOptionsTargets); + + UpdateButtonsEnabledStatus(); + } + + private void ElementTypeFilterCheckBox_CheckedChanged(object sender, System.EventArgs e) + { + _treeOptionsTargets.FilterTargetByElementType = ((CheckBox)sender).Checked; + + _treeTarget.TreePopulate( + _uilink.SourceModel.LinkableComponent, + _uilink.TargetModel.LinkableComponent, + _treeOptionsTargets); + + UpdateButtonsEnabledStatus(); + } + + + private void providerExchangeItemSelector_SelectionChanged(object sender, System.EventArgs e) + { + UpdateButtonsEnabledStatus(); + PropertyGridSelectObject(_treeSource.GetSelectedObject()); + } + + + private void acceptorExchangeItemSelector_SelectionChanged(object sender, System.EventArgs e) + { + UpdateButtonsEnabledStatus(); + PropertyGridSelectObject(_treeTarget.GetSelectedObject()); + } + + + private void providerExchangeItemSelector_CheckboxesChanged(object sender, System.EventArgs e) + { + UpdateButtonsEnabledStatus(); + } + + + private void acceptorExchangeItemSelector_CheckboxesChanged(object sender, System.EventArgs e) + { + UpdateButtonsEnabledStatus(); + } + + + private void OnViewElementSet(object sender, System.EventArgs e) + { + UIOutputItem source = SelectedSource; + UIInputItem target = SelectedTarget; + + ArrayList elementSets = new ArrayList(); + + if (source != null) + elementSets.Add(source.ElementSet); + if (target != null) + elementSets.Add(target.ElementSet); + + if (elementSets.Count > 0) + { + _elementSetViewer.PopulateDialog(elementSets); + _elementSetViewer.ShowDialog(); + } + } + + #endregion + + #region .NET generated members + + private readonly System.ComponentModel.Container components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConnectionDialog)); + this.listLinks = new System.Windows.Forms.ListBox(); + this.buttonClose = new System.Windows.Forms.Button(); + this.DimensionFilterCheckBox = new System.Windows.Forms.CheckBox(); + this.ElementTypeFilterCheckBox = new System.Windows.Forms.CheckBox(); + this.propertyGrid = new System.Windows.Forms.PropertyGrid(); + this.groupBoxOutputExchnageItems = new System.Windows.Forms.GroupBox(); + this.btnArgEdit = new System.Windows.Forms.Button(); + this.btnAddSources = new System.Windows.Forms.Button(); + this._treeSource = new Oatc.OpenMI.Gui.Controls.ExchangeItemSelector(); + this.labelWarning = new System.Windows.Forms.Label(); + this.groupBoxLinks = new System.Windows.Forms.GroupBox(); + this.btnLinkAdd = new System.Windows.Forms.Button(); + this.btnLinkRemove = new System.Windows.Forms.Button(); + this.groupBoxProperties = new System.Windows.Forms.GroupBox(); + this.btnViewer = new System.Windows.Forms.Button(); + this.groupBoxInputExchangeItems = new System.Windows.Forms.GroupBox(); + this.label1 = new System.Windows.Forms.Label(); + this._treeTarget = new Oatc.OpenMI.Gui.Controls.ExchangeItemSelector(); + this.panelBottom = new System.Windows.Forms.Panel(); + this.splitterHorizontal = new System.Windows.Forms.Splitter(); + this.splitterVertical2 = new System.Windows.Forms.Splitter(); + this.splitterVertical1 = new System.Windows.Forms.Splitter(); + this.groupBoxOutputExchnageItems.SuspendLayout(); + this.groupBoxLinks.SuspendLayout(); + this.groupBoxProperties.SuspendLayout(); + this.groupBoxInputExchangeItems.SuspendLayout(); + this.panelBottom.SuspendLayout(); + this.SuspendLayout(); + // + // listLinks + // + this.listLinks.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.listLinks.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.listLinks.HorizontalExtent = 3000; + this.listLinks.HorizontalScrollbar = true; + this.listLinks.Location = new System.Drawing.Point(8, 18); + this.listLinks.Name = "listLinks"; + this.listLinks.Size = new System.Drawing.Size(552, 80); + this.listLinks.TabIndex = 5; + this.listLinks.SelectedIndexChanged += new System.EventHandler(this.OnSelectionChanged); + // + // buttonClose + // + this.buttonClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.Location = new System.Drawing.Point(564, 119); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(64, 24); + this.buttonClose.TabIndex = 8; + this.buttonClose.Text = "&Close"; + this.buttonClose.Click += new System.EventHandler(this.OnClose); + // + // DimensionFilterCheckBox + // + this.DimensionFilterCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.DimensionFilterCheckBox.Checked = true; + this.DimensionFilterCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; + this.DimensionFilterCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.DimensionFilterCheckBox.Location = new System.Drawing.Point(53, 277); + this.DimensionFilterCheckBox.Name = "DimensionFilterCheckBox"; + this.DimensionFilterCheckBox.Size = new System.Drawing.Size(143, 16); + this.DimensionFilterCheckBox.TabIndex = 2; + this.DimensionFilterCheckBox.Text = "&Dimension"; + this.DimensionFilterCheckBox.CheckedChanged += new System.EventHandler(this.DimensionFilterCheckBox_CheckedChanged); + // + // ElementTypeFilterCheckBox + // + this.ElementTypeFilterCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.ElementTypeFilterCheckBox.Checked = true; + this.ElementTypeFilterCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; + this.ElementTypeFilterCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.ElementTypeFilterCheckBox.Location = new System.Drawing.Point(53, 261); + this.ElementTypeFilterCheckBox.Name = "ElementTypeFilterCheckBox"; + this.ElementTypeFilterCheckBox.Size = new System.Drawing.Size(143, 16); + this.ElementTypeFilterCheckBox.TabIndex = 3; + this.ElementTypeFilterCheckBox.Text = "&Element Type"; + this.ElementTypeFilterCheckBox.CheckedChanged += new System.EventHandler(this.ElementTypeFilterCheckBox_CheckedChanged); + // + // propertyGrid + // + this.propertyGrid.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.propertyGrid.Cursor = System.Windows.Forms.Cursors.HSplit; + this.propertyGrid.LineColor = System.Drawing.SystemColors.ScrollBar; + this.propertyGrid.Location = new System.Drawing.Point(8, 16); + this.propertyGrid.Name = "propertyGrid"; + this.propertyGrid.Size = new System.Drawing.Size(209, 272); + this.propertyGrid.TabIndex = 4; + // + // groupBoxOutputExchnageItems + // + this.groupBoxOutputExchnageItems.Controls.Add(this.btnArgEdit); + this.groupBoxOutputExchnageItems.Controls.Add(this.btnAddSources); + this.groupBoxOutputExchnageItems.Controls.Add(this._treeSource); + this.groupBoxOutputExchnageItems.Dock = System.Windows.Forms.DockStyle.Left; + this.groupBoxOutputExchnageItems.Location = new System.Drawing.Point(8, 0); + this.groupBoxOutputExchnageItems.Name = "groupBoxOutputExchnageItems"; + this.groupBoxOutputExchnageItems.Size = new System.Drawing.Size(204, 294); + this.groupBoxOutputExchnageItems.TabIndex = 23; + this.groupBoxOutputExchnageItems.TabStop = false; + this.groupBoxOutputExchnageItems.Text = "Sources"; + // + // btnArgEdit + // + this.btnArgEdit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnArgEdit.Location = new System.Drawing.Point(116, 265); + this.btnArgEdit.Name = "btnArgEdit"; + this.btnArgEdit.Size = new System.Drawing.Size(80, 23); + this.btnArgEdit.TabIndex = 4; + this.btnArgEdit.Text = "Edit Args ..."; + this.btnArgEdit.UseVisualStyleBackColor = true; + this.btnArgEdit.Click += new System.EventHandler(this.OnEditArgs); + // + // btnAddSources + // + this.btnAddSources.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnAddSources.Location = new System.Drawing.Point(8, 265); + this.btnAddSources.Name = "btnAddSources"; + this.btnAddSources.Size = new System.Drawing.Size(101, 23); + this.btnAddSources.TabIndex = 3; + this.btnAddSources.Text = "Add Sources ..."; + this.btnAddSources.UseVisualStyleBackColor = true; + this.btnAddSources.Click += new System.EventHandler(this.OnAddSources); + // + // _treeSource + // + this._treeSource.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this._treeSource.Location = new System.Drawing.Point(8, 16); + this._treeSource.Name = "_treeSource"; + this._treeSource.Size = new System.Drawing.Size(188, 239); + this._treeSource.TabIndex = 0; + this._treeSource.SelectionChanged += new System.EventHandler(this.providerExchangeItemSelector_SelectionChanged); + this._treeSource.ExchangeItemChanged += new System.EventHandler(this.providerExchangeItemSelector_CheckboxesChanged); + // + // labelWarning + // + this.labelWarning.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.labelWarning.ForeColor = System.Drawing.Color.Red; + this.labelWarning.Location = new System.Drawing.Point(210, 115); + this.labelWarning.Name = "labelWarning"; + this.labelWarning.Size = new System.Drawing.Size(348, 28); + this.labelWarning.TabIndex = 2; + this.labelWarning.Text = "Warning: Selected combination is invalid !"; + this.labelWarning.Visible = false; + // + // groupBoxLinks + // + this.groupBoxLinks.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBoxLinks.Controls.Add(this.btnLinkAdd); + this.groupBoxLinks.Controls.Add(this.btnLinkRemove); + this.groupBoxLinks.Controls.Add(this.listLinks); + this.groupBoxLinks.Location = new System.Drawing.Point(8, 302); + this.groupBoxLinks.Name = "groupBoxLinks"; + this.groupBoxLinks.Size = new System.Drawing.Size(636, 109); + this.groupBoxLinks.TabIndex = 25; + this.groupBoxLinks.TabStop = false; + this.groupBoxLinks.Text = " Links"; + // + // btnLinkAdd + // + this.btnLinkAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnLinkAdd.Location = new System.Drawing.Point(564, 22); + this.btnLinkAdd.Name = "btnLinkAdd"; + this.btnLinkAdd.Size = new System.Drawing.Size(64, 24); + this.btnLinkAdd.TabIndex = 6; + this.btnLinkAdd.Text = "&Add"; + this.btnLinkAdd.Click += new System.EventHandler(this.OnLinkAdd); + // + // btnLinkRemove + // + this.btnLinkRemove.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnLinkRemove.Location = new System.Drawing.Point(564, 57); + this.btnLinkRemove.Name = "btnLinkRemove"; + this.btnLinkRemove.Size = new System.Drawing.Size(64, 24); + this.btnLinkRemove.TabIndex = 7; + this.btnLinkRemove.Text = "&Remove"; + this.btnLinkRemove.Click += new System.EventHandler(this.OnLinkRemove); + // + // groupBoxProperties + // + this.groupBoxProperties.Controls.Add(this.propertyGrid); + this.groupBoxProperties.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBoxProperties.Location = new System.Drawing.Point(422, 0); + this.groupBoxProperties.Name = "groupBoxProperties"; + this.groupBoxProperties.Size = new System.Drawing.Size(222, 294); + this.groupBoxProperties.TabIndex = 26; + this.groupBoxProperties.TabStop = false; + this.groupBoxProperties.Text = "Properties"; + // + // btnViewer + // + this.btnViewer.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnViewer.Location = new System.Drawing.Point(8, 119); + this.btnViewer.Name = "btnViewer"; + this.btnViewer.Size = new System.Drawing.Size(196, 24); + this.btnViewer.TabIndex = 8; + this.btnViewer.Text = "&Viewer (checked items only)"; + this.btnViewer.Click += new System.EventHandler(this.OnViewElementSet); + // + // groupBoxInputExchangeItems + // + this.groupBoxInputExchangeItems.Controls.Add(this.label1); + this.groupBoxInputExchangeItems.Controls.Add(this._treeTarget); + this.groupBoxInputExchangeItems.Controls.Add(this.DimensionFilterCheckBox); + this.groupBoxInputExchangeItems.Controls.Add(this.ElementTypeFilterCheckBox); + this.groupBoxInputExchangeItems.Dock = System.Windows.Forms.DockStyle.Left; + this.groupBoxInputExchangeItems.Location = new System.Drawing.Point(215, 0); + this.groupBoxInputExchangeItems.Name = "groupBoxInputExchangeItems"; + this.groupBoxInputExchangeItems.Size = new System.Drawing.Size(204, 294); + this.groupBoxInputExchangeItems.TabIndex = 0; + this.groupBoxInputExchangeItems.TabStop = false; + this.groupBoxInputExchangeItems.Text = "Targets"; + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 263); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(43, 13); + this.label1.TabIndex = 4; + this.label1.Text = "Filter by"; + // + // _treeTarget + // + this._treeTarget.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this._treeTarget.Location = new System.Drawing.Point(8, 16); + this._treeTarget.Name = "_treeTarget"; + this._treeTarget.Size = new System.Drawing.Size(188, 239); + this._treeTarget.TabIndex = 1; + this._treeTarget.SelectionChanged += new System.EventHandler(this.acceptorExchangeItemSelector_SelectionChanged); + this._treeTarget.ExchangeItemChanged += new System.EventHandler(this.acceptorExchangeItemSelector_CheckboxesChanged); + // + // panelBottom + // + this.panelBottom.Controls.Add(this.btnViewer); + this.panelBottom.Controls.Add(this.labelWarning); + this.panelBottom.Controls.Add(this.buttonClose); + this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panelBottom.Location = new System.Drawing.Point(8, 298); + this.panelBottom.Name = "panelBottom"; + this.panelBottom.Size = new System.Drawing.Size(636, 143); + this.panelBottom.TabIndex = 28; + // + // splitterHorizontal + // + this.splitterHorizontal.Dock = System.Windows.Forms.DockStyle.Bottom; + this.splitterHorizontal.Location = new System.Drawing.Point(8, 294); + this.splitterHorizontal.MinExtra = 150; + this.splitterHorizontal.MinSize = 150; + this.splitterHorizontal.Name = "splitterHorizontal"; + this.splitterHorizontal.Size = new System.Drawing.Size(636, 4); + this.splitterHorizontal.TabIndex = 30; + this.splitterHorizontal.TabStop = false; + // + // splitterVertical2 + // + this.splitterVertical2.Location = new System.Drawing.Point(419, 0); + this.splitterVertical2.MinExtra = 150; + this.splitterVertical2.MinSize = 150; + this.splitterVertical2.Name = "splitterVertical2"; + this.splitterVertical2.Size = new System.Drawing.Size(3, 294); + this.splitterVertical2.TabIndex = 24; + this.splitterVertical2.TabStop = false; + // + // splitterVertical1 + // + this.splitterVertical1.Location = new System.Drawing.Point(212, 0); + this.splitterVertical1.MinExtra = 150; + this.splitterVertical1.MinSize = 150; + this.splitterVertical1.Name = "splitterVertical1"; + this.splitterVertical1.Size = new System.Drawing.Size(3, 294); + this.splitterVertical1.TabIndex = 27; + this.splitterVertical1.TabStop = false; + // + // ConnectionDialog + // + this.AcceptButton = this.buttonClose; + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.CancelButton = this.buttonClose; + this.ClientSize = new System.Drawing.Size(652, 449); + this.Controls.Add(this.groupBoxProperties); + this.Controls.Add(this.splitterVertical2); + this.Controls.Add(this.groupBoxLinks); + this.Controls.Add(this.groupBoxInputExchangeItems); + this.Controls.Add(this.splitterVertical1); + this.Controls.Add(this.groupBoxOutputExchnageItems); + this.Controls.Add(this.splitterHorizontal); + this.Controls.Add(this.panelBottom); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(660, 400); + this.Name = "ConnectionDialog"; + this.Padding = new System.Windows.Forms.Padding(8, 0, 8, 8); + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Connection properties"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.OnClosing); + this.groupBoxOutputExchnageItems.ResumeLayout(false); + this.groupBoxLinks.ResumeLayout(false); + this.groupBoxProperties.ResumeLayout(false); + this.groupBoxInputExchangeItems.ResumeLayout(false); + this.groupBoxInputExchangeItems.PerformLayout(); + this.panelBottom.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + #endregion + + private void OnAddSources(object sender, System.EventArgs e) + { + UIOutputItem source = SelectedSource; + UIInputItem target = SelectedTarget; + + if (source == null || target == null) + return; + + FactoriesDialog dlg = new FactoriesDialog(_models, source, target); + + if (dlg.ShowDialog(this) == DialogResult.Cancel) + return; + + _treeSource.TreeAdd(dlg.Adapters); + + UpdateButtonsEnabledStatus(); + } + + private void OnEditArgs(object sender, System.EventArgs e) + { + UIOutputItem source = SelectedSource; + + if (source == null) + return; + + IAdaptedOutput adapted = source.IExchangeItem as IAdaptedOutput; + + if (adapted == null) + return; + + AdaptedArguments dlg = new AdaptedArguments(); + dlg.Initialise(adapted.Arguments); + + dlg.ShowDialog(this); + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/ConnectionDialog.resx b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/ConnectionDialog.resx new file mode 100644 index 00000000..750db409 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/ConnectionDialog.resx @@ -0,0 +1,536 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Experimental.Plugins.HydroModeler2.0.csproj b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Experimental.Plugins.HydroModeler2.0.csproj new file mode 100644 index 00000000..5c91f259 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Experimental.Plugins.HydroModeler2.0.csproj @@ -0,0 +1,284 @@ + + + + Local + 9.0.30729 + 2.0 + {5990D533-2648-49CB-A3F2-A31EC8F03D59} + Debug + AnyCPU + OmiEd.ico + + + HydroModeler2.0 + + + JScript + Grid + IE50 + false + Library + HydroModeler_v_2 + OnBuildSuccess + + + + + + + 3.5 + v4.0 + + + + ..\..\..\..\Binaries\Plugins\HydroModeler2.0\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ..\..\..\..\Binaries\Plugins\HydroModeler2.0\ + false + 285212672 + false + + + TRACE + bin/Release/Oatc.OpenMI.Gui.xml + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + true + bin\x64\Debug\ + DEBUG;TRACE + 285212672 + 4096 + full + x64 + prompt + + + bin\x64\Release\ + TRACE + 285212672 + bin/Release/Oatc.OpenMI.Gui.xml + true + 4096 + x64 + prompt + + + true + ..\bin\ + DEBUG;TRACE + 285212672 + 4096 + full + x86 + prompt + + + ..\bin\ + TRACE + 285212672 + + + true + 4096 + x86 + prompt + + + + ..\..\..\..\Binaries\DotSpatial.Controls.dll + False + + + ..\..\..\..\Binaries\DotSpatial.Data.dll + False + + + False + ..\..\..\..\Binaries\HydroDesktop.Data.dll + + + False + ..\..\..\..\..\OpenMI 2.0\src\csharp\Oatc.OpenMI\Externals\log4net.dll + + + False + ..\..\..\..\..\OpenMI 2.0\src\csharp\Oatc.OpenMI\Sdk\bin\Debug\Oatc.OpenMI.Sdk.dll + + + False + ..\..\..\..\..\OpenMI 2.0\src\csharp\Oatc.OpenMI\Gui\bin\Oatc_OpenMI_Gui_Controls.dll + + + False + ..\..\..\..\..\OpenMI 2.0\src\csharp\Oatc.OpenMI\Gui\bin\Oatc_OpenMI_Gui_Core.dll + + + False + ..\..\..\..\..\OpenMI 2.0\src\csharp\Oatc.OpenMI\Sdk\bin\Debug\OpenMI.Standard2.dll + + + System + + + 3.5 + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + Form + + + Form + + + AdaptedArguments.cs + + + Code + + + Form + + + Form + + + FactoriesDialog.cs + + + + Form + + + UserControl + + + MainTab.cs + + + Form + + + Form + + + Run.cs + + + Form + + + Form + + + RunLog.cs + + + Form + + + AboutBox.cs + Designer + + + AdaptedArguments.cs + + + ConnectionDialog.cs + Designer + + + FactoriesDialog.cs + + + MainForm.cs + Designer + + + MainTab.cs + + + ModelDialog.cs + Designer + + + Run.cs + + + RunBox.cs + Designer + + + RunLog.cs + + + RunProperties.cs + Designer + + + org.OpenMI.Tools.GUI.ConfigurationEditor + + + org.OpenMI.Tools.GUI.ConfigurationEditor + + + + Always + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/FactoriesDialog.Designer.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/FactoriesDialog.Designer.cs new file mode 100644 index 00000000..64ac5fa7 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/FactoriesDialog.Designer.cs @@ -0,0 +1,167 @@ +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + partial class FactoriesDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FactoriesDialog)); + this.cbFactories = new System.Windows.Forms.ComboBox(); + this.btnAddFactory = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.btnFactoryDetails = new System.Windows.Forms.Button(); + this.clbAdapters = new System.Windows.Forms.CheckedListBox(); + this.btnCancel = new System.Windows.Forms.Button(); + this.btnAdd = new System.Windows.Forms.Button(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // cbFactories + // + this.cbFactories.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cbFactories.FormattingEnabled = true; + this.cbFactories.Location = new System.Drawing.Point(6, 19); + this.cbFactories.Name = "cbFactories"; + this.cbFactories.Size = new System.Drawing.Size(385, 21); + this.cbFactories.TabIndex = 0; + // + // btnAddFactory + // + this.btnAddFactory.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnAddFactory.Location = new System.Drawing.Point(395, 18); + this.btnAddFactory.Name = "btnAddFactory"; + this.btnAddFactory.Size = new System.Drawing.Size(29, 23); + this.btnAddFactory.TabIndex = 2; + this.btnAddFactory.Text = "..."; + this.btnAddFactory.UseVisualStyleBackColor = true; + this.btnAddFactory.Click += new System.EventHandler(this.OnAddFactory); + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.btnFactoryDetails); + this.groupBox1.Controls.Add(this.cbFactories); + this.groupBox1.Controls.Add(this.btnAddFactory); + this.groupBox1.Location = new System.Drawing.Point(13, 12); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(514, 51); + this.groupBox1.TabIndex = 3; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Factory"; + // + // btnFactoryDetails + // + this.btnFactoryDetails.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnFactoryDetails.Location = new System.Drawing.Point(430, 18); + this.btnFactoryDetails.Name = "btnFactoryDetails"; + this.btnFactoryDetails.Size = new System.Drawing.Size(75, 23); + this.btnFactoryDetails.TabIndex = 5; + this.btnFactoryDetails.Text = "Details ..."; + this.btnFactoryDetails.UseVisualStyleBackColor = true; + this.btnFactoryDetails.Click += new System.EventHandler(this.OnFactoryDetails); + // + // clbAdapters + // + this.clbAdapters.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.clbAdapters.FormattingEnabled = true; + this.clbAdapters.Location = new System.Drawing.Point(6, 15); + this.clbAdapters.Name = "clbAdapters"; + this.clbAdapters.Size = new System.Drawing.Size(502, 169); + this.clbAdapters.TabIndex = 4; + this.clbAdapters.SelectedIndexChanged += new System.EventHandler(this.OnSelectionChanged); + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(452, 264); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 5; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // btnAdd + // + this.btnAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnAdd.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnAdd.Location = new System.Drawing.Point(371, 264); + this.btnAdd.Name = "btnAdd"; + this.btnAdd.Size = new System.Drawing.Size(75, 23); + this.btnAdd.TabIndex = 6; + this.btnAdd.Text = "Add"; + this.btnAdd.UseVisualStyleBackColor = true; + // + // groupBox2 + // + this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox2.Controls.Add(this.clbAdapters); + this.groupBox2.Location = new System.Drawing.Point(13, 69); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(514, 189); + this.groupBox2.TabIndex = 7; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Source adapters"; + // + // FactoriesDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(539, 299); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.btnAdd); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.groupBox1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "FactoriesDialog"; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; + this.Text = "Add additional sources"; + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ComboBox cbFactories; + private System.Windows.Forms.Button btnAddFactory; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.CheckedListBox clbAdapters; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Button btnAdd; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Button btnFactoryDetails; + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/FactoriesDialog.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/FactoriesDialog.cs new file mode 100644 index 00000000..ee1fbfc4 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/FactoriesDialog.cs @@ -0,0 +1,205 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.IO; +using System.Windows.Forms; +using System.Reflection; + +using OpenMI.Standard2; +using Oatc.OpenMI.Gui.Controls; +using Oatc.OpenMI.Gui.Core; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + public partial class FactoriesDialog : Form + { + UIOutputItem _itemOut; + UIInputItem _itemIn; + List _adapters = new List(); + List _factories + = new List(); + + bool AddFactory(UIAdaptedFactory iFactory) + { + foreach (UIAdaptedFactory factory in _factories) + if (factory.Factory.GetType() == iFactory.GetType()) + return false; + + _factories.Add(iFactory); + + return true; + } + + public FactoriesDialog(List models, UIOutputItem itemOut, UIInputItem itemIn) + { + _itemOut = itemOut; + _itemIn = itemIn; + + UIAdaptedFactory factory; + string firstSourceFactory = null; + + foreach (UIModel model in models) + { + foreach (IAdaptedOutputFactory iFactory in model.LinkableComponent.AdaptedOutputFactories) + { + factory = new UIAdaptedFactory(); + + if (_itemOut.Component == model.LinkableComponent) + { + factory.InitialiseAsNative(iFactory.Id, model.LinkableComponent); + + if (firstSourceFactory == null) + firstSourceFactory = factory.ToString(); + } + else + factory.InitialiseAs3rdParty(iFactory.GetType(), model.LinkableComponent); + + AddFactory(factory); + } + } + + InitializeComponent(); + + groupBox2.Text = string.Format( + "Factory sources that adapt \"{0}\" -> \"{1}\"", + itemOut.Caption, itemIn.Caption); + + UpdateUIFactories(); + + if (firstSourceFactory != null) + cbFactories.SelectedIndex = cbFactories.FindStringExact(firstSourceFactory); + + UpdateControlEnabling(); + } + + public List Adapters + { + get + { + List adapters = new List(clbAdapters.CheckedItems.Count); + foreach (object o in new ArrayList(clbAdapters.CheckedItems)) + adapters.Add((UIOutputItem)o); + return adapters; + } + } + + void UpdateUIFactories() + { + cbFactories.Items.Clear(); + + foreach (IAdaptedOutputFactory factory in _factories) + cbFactories.Items.Add(factory); + + cbFactories.SelectedIndex = cbFactories.Items.Count - 1; + + UpdateUIAdapters(); + } + + void UpdateUIAdapters() + { + clbAdapters.Items.Clear(); + + if (cbFactories.SelectedItem == null) + return; + + UIAdaptedFactory factory = (UIAdaptedFactory)cbFactories.SelectedItem; + + foreach (IIdentifiable id in factory.GetAvailableAdaptedOutputIds(_itemOut, _itemIn)) + clbAdapters.Items.Add( + factory.NewAdaptedUIOutputItem(id.Id, _itemOut, _itemIn)); + + clbAdapters.Invalidate(); + } + + private void OnAddFactory(object sender, EventArgs e) + { + OpenFileDialog dlg = new OpenFileDialog(); + dlg.Filter = "Assemblies (*.dll)|*.dll|Executables (*.exe)|*.exe|All files (*.*)|*.*"; + + if (dlg.ShowDialog() != DialogResult.OK) + return; + + try + { + AddFactories(new FileInfo(dlg.FileName)); + } + catch (Exception ex) + { + MessageBox.Show("Add Factories ...", ex.Message, + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void AddFactories(FileInfo assemblyFileInfo) + { + if (!assemblyFileInfo.Exists) + throw new Exception( + "File not found: " + assemblyFileInfo.FullName); + + Assembly assembly = Assembly.LoadFile(assemblyFileInfo.FullName); + + List factoryTypes = new List(); + + foreach (Type type in assembly.GetExportedTypes()) + { + // need a parameterless constructor + if (type.GetConstructor(Type.EmptyTypes) == null) + continue; + + foreach (Type inter in type.GetInterfaces()) + { + if (inter == typeof(IAdaptedOutputFactory)) + { + factoryTypes.Add(type); + break; + } + } + } + + if (factoryTypes.Count == 0) + { + MessageBox.Show("No types derived from IAdaptedOutputFactory with parameterless constructors found", + "Add Factories", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + UIAdaptedFactory factory; + + foreach (Type type in factoryTypes) + { + factory = new UIAdaptedFactory(); + factory.InitialiseAs3rdParty(assemblyFileInfo, type.ToString()); + AddFactory(factory); + } + + UpdateUIFactories(); + } + + private void OnFactoryDetails(object sender, EventArgs e) + { + UIAdaptedFactory factory = _factories[cbFactories.SelectedIndex]; + + string s = string.Format("Type: {0}\r\nAssembly: {1}", + factory.Type.ToString(), + factory.Assembly.FullName + ); + + MessageBox.Show(s, "Selected factory details", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + + private void OnSelectionChanged(object sender, EventArgs e) + { + UpdateControlEnabling(); + } + + void UpdateControlEnabling() + { + btnAdd.Enabled = clbAdapters.CheckedIndices.Count > 0; + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/FactoriesDialog.resx b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/FactoriesDialog.resx new file mode 100644 index 00000000..750db409 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/FactoriesDialog.resx @@ -0,0 +1,536 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/HelpPage.htm b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/HelpPage.htm new file mode 100644 index 00000000..b438c0b6 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/HelpPage.htm @@ -0,0 +1,15 @@ + + + + OmiEd help + + + + You will be automatically redirected to OmiEd help page in 5 seconds.
+ If not, please go to ../Help/Help.html. + + diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/HydroDesktopPlugin.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/HydroDesktopPlugin.cs new file mode 100644 index 00000000..dd4ab544 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/HydroDesktopPlugin.cs @@ -0,0 +1,142 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using DotSpatial.Controls; +using System.Windows.Forms; +using Oatc.OpenMI.Gui.ConfigurationEditor; +using System.Drawing; + + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + [Plugin("HydroModeler 2.0", Author = "CUAHSI at USC", UniqueName = "mw_HydroModeler_2", Version = "2.0")] + class HydroDesktopPlugin: Extension, IMapPlugin + { + #region Variables + + //reference to the main application and it's UI items + private IMapPluginArgs _mapArgs; + + //the main tab control where map view, graph view and table view are displayed + private TabControl _mainTabControl = null; + + //the tab page which will be added to the tab control by the plugin + private TabPage _tabPage = null; + + //a sample toolbar button added by the plugin + private ToolStripButton btnHydroModelerPlugin = null; + + //a sample menu item added by the plugin + private ToolStripMenuItem mnuHydroModelerPlugin = null; + + + + #endregion + + #region IExtension Members + + protected override void OnDeactivate() + { + if (_mapArgs.MainToolStrip != null && btnHydroModelerPlugin != null) + { + _mapArgs.MainToolStrip.Items.Remove(btnHydroModelerPlugin); + } + if (_mapArgs.MainMenu != null && _mapArgs.MainMenu.Items.Find("hydroModeler2MenuItem", true) != null) + { + int pluginIndex = 0; + for (int i = 0; i < _mapArgs.MainMenu.Items.Count; i++) + { + if (_mapArgs.MainMenu.Items[i].Text == "HydroModeler 2.0") + pluginIndex = i; + } + _mapArgs.MainMenu.Items.RemoveAt(pluginIndex);//.RemoveByKey("hydroModeler2MenuItem"); + } + + if (_mainTabControl != null && _tabPage != null) + { + _mainTabControl.TabPages.Remove(_tabPage); + } + } + #endregion + + #region IMapPlugin Members + + public void Initialize(IMapPluginArgs args) + { + _mapArgs = args; + + btnHydroModelerPlugin = new ToolStripButton(); + + // Add UI features + btnHydroModelerPlugin.DisplayStyle = ToolStripItemDisplayStyle.Text; + //btnSamplePlugin.Image = Resources.MySampleIcon1.ToBitmap(); + btnHydroModelerPlugin.Name = "HydroModeler 2.0"; + btnHydroModelerPlugin.ToolTipText = "Launch HydroModeler 2.0"; + btnHydroModelerPlugin.Click += new EventHandler(btnSamplePlugin_Click); + + if (_mapArgs.ToolStripContainer != null) + { + // Add the 'Sample Plugin' button + _mapArgs.MainToolStrip.Items.Add(btnHydroModelerPlugin); + + // Add the 'Added by plugin' tab control + foreach (Control control in _mapArgs.ToolStripContainer.ContentPanel.Controls) + { + if (control is TabControl) + { + _mainTabControl = control as TabControl; + _tabPage = new TabPage("HydroModeler 2.0"); + _mainTabControl.TabPages.Add(_tabPage); + break; + } + } + } + + //add some items to the newly created tab control + if (_tabPage != null) + { + //TreeView treeView = new TreeView(); + //treeView.Location = new System.Drawing.Point(0, 0); + //treeView.Size = new System.Drawing.Size(_tabPage.Width / 3, _tabPage.Height); + //treeView.Nodes.Add("Model Components"); + //_tabPage.Controls.Add(treeView); + + MainTab mainTab = new MainTab(_mapArgs); + mainTab.Dock = DockStyle.Fill; + mainTab.HorizontalScroll.Visible = false; + mainTab.VerticalScroll.Visible = false; + mainTab.Location = new System.Drawing.Point(_tabPage.Width / 3, 0); + mainTab.Size = new System.Drawing.Size(_tabPage.Width * 2 / 3, _tabPage.Height); + //lbl.Text = "This tab was added by the HydroModeler Plugin."; + //lbl.Location = new System.Drawing.Point(_tabPage.Width / 2, _tabPage.Height / 2); + _tabPage.Controls.Add(mainTab); + + } + } + + #endregion + + #region UI Events + + void btnSamplePlugin_Click(object sender, EventArgs e) + { + //create a new configuration editor instance + //Oatc.OpenMI.Gui.ConfigurationEditor.MainForm mainOmiEd = new MainForm(); + + //Launch the OpenMI OmiED + System.Diagnostics.Process p = new System.Diagnostics.Process(); + p.StartInfo.UseShellExecute = false; + p.StartInfo.RedirectStandardOutput = true; + + p.StartInfo.FileName = "./Plugins/HydroModeler_new/Oatc_OpenMI_ConfigurationEditor.exe"; + + p.Start(); + + + // MessageBox.Show("This plugin doesn't do anything...yet"); + } + + #endregion + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/MainForm.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/MainForm.cs new file mode 100644 index 00000000..e47b45a7 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/MainForm.cs @@ -0,0 +1,1877 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Text; +using System.Threading; +using System.Windows.Forms; +using System.Reflection; +using Oatc.OpenMI.Gui.Core; +using OpenMI.Standard2; +using Microsoft.Win32; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + /// + /// Summary description for MainForm. + /// + public class MainForm : Form + { + #region Window controls + + private HScrollBar compositionHScrollBar; + private PictureBox compositionBox; + private VScrollBar compositionVScrollBar; + + private MainMenu mainMenu1; + private MenuItem menuItem15; + private MenuItem menuItem17; + private MenuItem menuItem18; + private ContextMenu contextMenu; + private MenuItem menuFileNew; + private MenuItem menuFileOpen; + private MenuItem menuFileSave; + private MenuItem menuFileSaveAs; + private MenuItem menuFileExit; + private MenuItem menuEditModelAdd; + private MenuItem menuModelAttachTrigger; + private MenuItem menuHelpAbout; + private MenuItem contextConnectionAdd; + private MenuItem contextModelProperties; + private MenuItem contextConnectionEditLinks; + private MenuItem contextModelRemove; + private MenuItem contextConnectionRemove; + private MenuItem contextModelAdd; + private MenuItem menuFileReload; + private MenuItem menuViewModelProperties; + private MenuItem menuEditConnectionLinks; + private MenuItem menuFile; + private MenuItem menuEditRunProperties; + private MenuItem menuHelp; + private ImageList imageList; + private MenuItem menuCompositionSpacer; + private MenuItem contextRun; + private MenuItem menuComposition; + + #endregion + + #region Member variables + + readonly Cursor _sourceCursor; + readonly Cursor _targetCursor; + + bool _isAddingConnection = false; + UIModel _sourceModel = null; + + bool _isMovingModel = false; + Point _prevMouse; + + object _contextSelectedObject; + + readonly CompositionManager _composition; + + Point _compositionBoxPositionInArea; + Rectangle _compositionArea; + + const string ApplicationTitle = "OATC OpenMI Editor 2.0"; + private MenuItem contextModelAttachTrigger; + private MenuItem menuHelpContents; + private MenuItem menuItem3; + private MenuItem menuOptions; + private MenuItem menuRegisterExtensions; + + private MenuItem menuItem2; + private MenuItem menuEditConnectionAdd; + private MenuItem menuItem1; + private MenuItem menuItem4; + private MenuItem menuExamples; + private MenuItem menuExample1; + private MenuItem menuExample2; + private MenuItem menuExample3; + private MenuItem menuExample4; + private MenuItem menuItem5; + + // record the culture that the application starts in + readonly System.Globalization.CultureInfo _cultureInfo = Application.CurrentCulture; + + #endregion + + /// + /// Creates a new instance of MainForm window. + /// + public MainForm() + { + // + // Required for Windows Form Designer support + // + + _compositionBoxPositionInArea = new Point(0,0); + + InitializeComponent(); + + _composition = new CompositionManager(); + + _prevMouse = new Point(0,0); + + _sourceCursor = new Cursor(GetType(), "Source.cur"); + _targetCursor = new Cursor(GetType(), "Target.cur"); + + menuRegisterExtensions.Checked = Utils.AreFileExtensionsRegistered( Application.ExecutablePath ); + } + + + #region Methods and properties + + /// + /// Method is used to start application. + /// + /// Command-line arguments. + /// Method proceeds all command-line args ("/opr %", "/reg", ...) + /// and perform requested actions. + private static void ProcessCommandLineArgs( string[] args ) + { + // read commad-line args + string oprFilename = null; + string omiFilename = null; + bool mta = false; + + for( int i=0; i + /// Opens composition from OPR file. + ///
+ /// Full path to OPR file. + public void OpenComposition(FileInfo oprFile) + { + try + { + _composition.Open(oprFile); + + UpdateTitle(); + + CompositionUpdateArea(); + CompositionCenterView(); + } + catch( Exception ex ) + { + FinalCatchAndDisplay("Open Composition", ex); + } + } + + + + /// + /// Adds one model to composition. + /// + /// Full path to OMI file. + public void AddModel(FileInfo omiFile) + { + try + { + UIModel model = new UIModel(); + model.OmiDeserializeAndInitialize(omiFile); + + _composition.ModelAdd(model); + + if (_composition.Models.Count == 1) + _composition.Models[0].IsTrigger = true; + + } + catch( Exception ex ) + { + FinalCatchAndDisplay("Cannot add " + omiFile.FullName, ex); + } + + // Reset the culture every time a new model is added. + // The new model may be of a different culture, we want to retain the original culture of the application, + // which will be that of the User's computer. + Application.CurrentCulture = _cultureInfo; + + CompositionUpdateArea(); + UpdateTitle(); + Invalidate(); + } + + + /// + /// Method calculates size of composition area and it's scroll-bars according to + /// position of models' rectangles and size of the window. + /// + /// + /// This method is called if some model has moved, main window has resized or if new file was opened. + /// + private void CompositionUpdateArea() + { + Point topLeft = new Point( 0, 0 ), + bottomRight = new Point( 0, 0 ); + + foreach( UIModel model in _composition.Models ) + { + topLeft.X = Math.Min( topLeft.X, model.Rect.X ); + topLeft.Y = Math.Min( topLeft.Y, model.Rect.Y ); + + bottomRight.X = Math.Max( bottomRight.X, model.Rect.X + model.Rect.Width ); + bottomRight.Y = Math.Max( bottomRight.Y, model.Rect.Y + model.Rect.Height ); + } + + // increase size of area + topLeft.X -= compositionBox.Width / 2; + topLeft.Y -= compositionBox.Height / 2; + bottomRight.X += compositionBox.Width - compositionBox.Width / 2; + bottomRight.Y += compositionBox.Height - compositionBox.Height / 2; + + _compositionArea = new Rectangle( topLeft.X, topLeft.Y, bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y ); + + // update scrollbars + + compositionHScrollBar.Minimum = _compositionArea.X; + compositionHScrollBar.Maximum = _compositionArea.X + _compositionArea.Width; + compositionHScrollBar.LargeChange = compositionBox.Width; + //compositionHScrollBar.Value = compositionHScrollBar.Value; // don't change Value, but call ValueChange event + + + compositionVScrollBar.Minimum = _compositionArea.Y; + compositionVScrollBar.Maximum = _compositionArea.Y + _compositionArea.Height; + compositionVScrollBar.LargeChange = compositionBox.Height; + //compositionVScrollBar.Value = compositionVScrollBar.Value; // todo + + compositionScrollBar_ValueChanged(null, null); + + compositionBox.Invalidate(); + } + + + /// + /// Sets composition box to center. + /// + private void CompositionCenterView() + { + // todo... + } + + private Point CompositionWindowPointToAreaPoint( Point point ) + { + return( new Point(_compositionBoxPositionInArea.X+point.X, _compositionBoxPositionInArea.Y+point.Y) ); + } + + private Point CompositionAreaPointToWindowPoint( Point point ) + { + return( new Point(point.X - _compositionBoxPositionInArea.X, point.Y - _compositionBoxPositionInArea.Y) ); + } + + + private void UpdateTitle() + { + string path = "?.opr"; + string readOnly = string.Empty; + + if (_composition != null && _composition.FileOpr != null) + { + if (_composition.FileOpr.FullName.Length < 40) + path = _composition.FileOpr.FullName; + else + path = _composition.FileOpr.FullName.Substring( + _composition.FileOpr.FullName.LastIndexOf(Path.DirectorySeparatorChar) + 1); + + if (_composition.FileOpr.IsReadOnly) + readOnly = ", READ ONLY"; + } + + Text = string.Format("{0}: {1}{2}{3}", + ApplicationTitle, path, + _composition.ShouldBeSaved ? " *" : "", + readOnly); + } + + /// + /// If composition should be saved, this method shows message box, where the user can do it, can + /// ignore it or can cancel current operation. + /// + /// Returns true if current operation can continue, or false + /// if user pressed cancel button. + private bool CheckIfSaved() + { + if( _composition.ShouldBeSaved ) + { + switch( MessageBox.Show("The composition has been changed.\n\nDo you want to save the changes?", "Warning", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) ) + { + case DialogResult.Yes: + OnSave(null, null); + return( !_composition.ShouldBeSaved ); + case DialogResult.No: + return( true ); + default: + return( false ); + } + } + return( true ); + } + + + private void ShowLinkDialog( UIConnection link ) + { + ConnectionDialog dlg = new ConnectionDialog(_composition.Models); + dlg.PopulateDialog(link); + if (dlg.ShowDialog(this) == DialogResult.OK) + _composition.ShouldBeSaved = true; + + UpdateTitle(); + } + + + private UIModel GetModel( int x, int y ) + { + Point areaPoint = CompositionWindowPointToAreaPoint( new Point(x,y) ); + + // search from last model to first for case some models are overlapping + for( int i=_composition.Models.Count-1; i>=0; i-- ) + { + UIModel model = (UIModel)_composition.Models[i]; + + if( model.IsPointInside(areaPoint) ) + return( model ); + } + + return( null ); + } + + + private UIConnection GetConnection( int x, int y ) + { + Point areaPoint = CompositionWindowPointToAreaPoint( new Point(x,y) ); + + for( int i=_composition.Connections.Count-1; i>=0; i-- ) + { + UIConnection connection = (UIConnection)_composition.Connections[i]; + + if( connection.IsOnConnectionLine(areaPoint) ) + return( connection ); + } + + return( null ); + } + + + private void StopAddingConnection() + { + _isAddingConnection = false; + compositionBox.Cursor = Cursors.Default; + _sourceModel = null; + } + + private void StopMovingModel() + { + _isMovingModel = false; + foreach( UIModel model in _composition.Models ) + model.IsMoving = false; + compositionBox.Invalidate(); + } + + + private void StopAllActions() + { + StopAddingConnection(); + StopMovingModel(); + } + + + #endregion + + #region MainForm event handlers + + private void MainForm_Load(object sender, EventArgs e) + { + MainForm_SizeChanged(sender, e); + UpdateTitle(); + CompositionUpdateArea(); + } + + + private void MainForm_DragDrop(object sender, DragEventArgs e) + { + MessageBox.Show("form1, dragDrop"); + + } + + + private void MainForm_SizeChanged(object sender, EventArgs e) + { + /*// resize all elements so they fit to window + const int border = 5; + const int scrollBarWidth = 16; + + // listBoxOutput + listBoxOutput.Height = (ClientRectangle.Height * 3) / 10; // 30% + listBoxOutput.Width = ClientRectangle.Width - 2*border; + listBoxOutput.Top = ClientRectangle.Height - (listBoxOutput.Height+border); + listBoxOutput.Left = border; + + //compositionBox.BackColor = Color.Brown; // todo + + // compositionBox + compositionBox.Top = border; + compositionBox.Left = border; + compositionBox.Width = listBoxOutput.Width - scrollBarWidth; + compositionBox.Height = ClientRectangle.Height - listBoxOutput.Height - scrollBarWidth - 3*border; + + // compositionVScrollBar + compositionVScrollBar.Width = scrollBarWidth; + compositionVScrollBar.Height = compositionBox.Height; + compositionVScrollBar.Top = compositionBox.Top; + compositionVScrollBar.Left = border + compositionBox.Width; + + // compositionHScrollBar + compositionHScrollBar.Width = compositionBox.Width; + compositionHScrollBar.Height = scrollBarWidth; + compositionHScrollBar.Top = border + compositionBox.Height; + compositionHScrollBar.Left = border;*/ + + CompositionUpdateArea(); + } + + + private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // if composition isn't saved, show message box, and maybe stop the closing + e.Cancel = !CheckIfSaved(); + } + + + private void MainForm_KeyPress(object sender, KeyPressEventArgs e) + { + // ESC cancels adding connection + if( _isAddingConnection && e.KeyChar == 27 ) + { + StopAddingConnection(); + e.Handled = true; + Invalidate(); + } + } + + + #endregion + + #region Main menu event handlers + + private void OnAddModels(object sender, EventArgs e) + { + try + { + StopAllActions(); + + OpenFileDialog dlg = new OpenFileDialog(); + dlg.CheckFileExists = true; + dlg.CheckPathExists = true; + dlg.Title = "Add model(s)..."; + dlg.Filter = "OpenMI models (*.omi)|*.omi|All files|*.*"; + dlg.Multiselect = true; + + if (dlg.ShowDialog(this) != DialogResult.OK) + return; + + string[] files = new string[dlg.FileNames.Length]; + dlg.FileNames.CopyTo(files, 0); + + dlg.Dispose(); + + try + { + Cursor.Current = Cursors.WaitCursor; + + Refresh(); + + foreach (string filename in files) + AddModel(new FileInfo(filename)); + } + finally + { + Cursor.Current = Cursors.Default; + } + } + catch( Exception ex ) + { + FinalCatchAndDisplay("AddModels", ex); + } + } + + + private void OnAttachTrigger(object sender, EventArgs e) + { + try + { + StopAllActions(); + + if (_contextSelectedObject != null + && _contextSelectedObject is UIModel) + { + foreach (UIModel model in _composition.Models) + model.IsTrigger = false; + + ((UIModel)_contextSelectedObject).IsTrigger = true; + } + + CompositionUpdateArea(); + } + catch (Exception ex) + { + FinalCatchAndDisplay("Attach Trigger", ex); + } + } + + private void OnRun(object sender, EventArgs e) + { + try + { + StopAllActions(); + + if (_composition.ShouldBeSaved) + _composition.Save(); + + Run run = new Run(); + run.Initialise(_composition.FileOpr.FullName); + run.ShowDialog(); + } + catch( Exception ex ) + { + FinalCatchAndDisplay("Run", ex); + } + } + + private void OnNew(object sender, EventArgs e) + { + try + { + StopAllActions(); + + if( !CheckIfSaved() ) + return; + + _composition.Initialize(); + + UpdateTitle(); + CompositionUpdateArea(); + } + catch (Exception ex) + { + FinalCatchAndDisplay("New", ex); + } + } + + private void OnOpen(object sender, EventArgs e) + { + try + { + StopAllActions(); + + if( !CheckIfSaved() ) + return; + + OpenFileDialog dlg = new OpenFileDialog(); + dlg.Filter = "OmiEd projects (*.opr)|*.opr|All files|*.*"; + dlg.Multiselect = false; + dlg.CheckFileExists = true; + dlg.CheckPathExists = true; + dlg.Title = "Open project..."; + + if (dlg.ShowDialog(this) != DialogResult.OK) + return; + + FileInfo oprFile = new FileInfo(dlg.FileName); + + dlg.Dispose(); + + try + { + Cursor.Current = Cursors.WaitCursor; + + Refresh(); + + OpenComposition(oprFile); + + UpdateTitle(); + CompositionUpdateArea(); + } + finally + { + Cursor.Current = Cursors.Default; + } + } + catch (Exception ex) + { + FinalCatchAndDisplay("Open", ex); + } + } + + private void OnSave(object sender, EventArgs e) + { + if (_composition.FileOpr == null + || _composition.FileOpr.IsReadOnly) + { + OnSaveAs(sender, e); + return; + } + + try + { + StopAllActions(); + + _composition.Save(); + + UpdateTitle(); + } + catch (Exception ex) + { + FinalCatchAndDisplay("Save", ex); + } + } + + private void OnSaveAs(object sender, EventArgs e) + { + try + { + SaveFileDialog dlg = new SaveFileDialog(); + dlg.Filter = "Compositions (*.opr)|*.opr|All files|*.*"; + dlg.ValidateNames = true; + dlg.Title = "Save As ..."; + dlg.AddExtension = true; + dlg.OverwritePrompt = true; + dlg.FileName = _composition.FileOpr != null + ? _composition.FileOpr.FullName : ""; + + if( dlg.ShowDialog( this ) != DialogResult.OK ) + return; + + FileInfo fi = new FileInfo(dlg.FileName); + + dlg.Dispose(); + + StopAllActions(); + + _composition.SaveAs(fi); + + UpdateTitle(); + } + catch (Exception ex) + { + FinalCatchAndDisplay("SaveAs", ex); + } + } + + private void OnReOpen(object sender, EventArgs e) + { + try + { + StopAllActions(); + + if (!CheckIfSaved()) + return; + + _composition.ReOpen(); + + UpdateTitle(); + } + catch (Exception ex) + { + FinalCatchAndDisplay("ReOpen", ex); + } + } + + void FinalCatchAndDisplay(string task, Exception e) + { + string s = string.Format("Task:\n\n{0}\n\nReason:\n\n{1}", + task, Utils.ToString(e)); + + Trace.TraceError(s); + + MessageBox.Show(s, "Operation Failed", + MessageBoxButtons.OK, MessageBoxIcon.Error); + + if (_composition != null) + _composition.Initialize(); + } + + private void menuFileExit_Click(object sender, EventArgs e) + { + StopAllActions(); + + Close(); + } + + + private void OnMenuConnectionAdd(object sender, EventArgs e) + { + try + { + StopAllActions(); + + _isAddingConnection = true; + compositionBox.Cursor = _sourceCursor; + } + catch (Exception ex) + { + FinalCatchAndDisplay("View Model Properties", ex); + } + } + + + private void OnViewModelProperties(object sender, EventArgs e) + { + try + { + StopAllActions(); + + ModelDialog modelDialog = new ModelDialog(); + modelDialog.PopulateDialog( _composition.Models ); + modelDialog.ShowDialog( this ); + } + catch (Exception ex) + { + FinalCatchAndDisplay("View Model Properties", ex); + } + } + + + private void menuRegisterExtensions_Click(object sender, EventArgs e) + { + if( menuRegisterExtensions.Checked ) + { + Utils.UnregisterFileExtensions(); + menuRegisterExtensions.Checked = false; + } + else + { + Utils.RegisterFileExtensions( Application.ExecutablePath ); + menuRegisterExtensions.Checked = true; + } + } + + + private void OnHelpAbout(object sender, EventArgs e) + { + try + { + StopAllActions(); + + AboutBox aboutBox = new AboutBox(); + aboutBox.ShowDialog(this); + } + catch (Exception ex) + { + FinalCatchAndDisplay("Help About", ex); + } + } + + private void OnHelp(object sender, EventArgs e) + { + try + { + ShopHelp(HelpFormat.pdf); + } + catch (Exception ex) + { + FinalCatchAndDisplay("Help", ex); + } + } + + enum HelpFormat { chm = 0, pdf, }; + + void ShopHelp(HelpFormat fmt) + { + FileInfo file = new FileInfo(Path.Combine(Application.StartupPath, + @"OpenMIEditorHelp_2_0." + fmt.ToString())); + + if (file.Exists) + Help.ShowHelp(this, file.FullName, HelpNavigator.TableOfContents); + } + + void ShopUri(Uri uri) + { + StopAllActions(); + + Help.ShowHelp(this, uri.AbsoluteUri, HelpNavigator.TableOfContents); + } + + #endregion + + #region Context menu event handlers + + private void OnMenuCompositionOpen(object sender, EventArgs e) + { + menuEditModelAdd.Enabled = true; + + if (_composition != null) + { + if (_contextSelectedObject != null + && _contextSelectedObject is UIModel) + { + menuModelAttachTrigger.Enabled = true; + menuViewModelProperties.Enabled = true; + } + else + { + menuModelAttachTrigger.Enabled = false; + menuViewModelProperties.Enabled = false; + } + + menuEditConnectionAdd.Enabled + = _composition.Models.Count > 1; + menuEditConnectionLinks.Enabled + = _contextSelectedObject != null + && _contextSelectedObject is UIConnection; + + menuEditRunProperties.Enabled + = !_composition.ShouldBeSaved + && _composition.Models.Count > 0; + } + else + { + menuCompositionSpacer.Enabled = false; + menuViewModelProperties.Enabled = false; + menuEditConnectionAdd.Enabled = false; + menuEditConnectionLinks.Enabled = false; + menuEditRunProperties.Enabled = false; + } + } + + private void OnContextMenu(object sender, EventArgs e) + { + try + { + StopAllActions(); + + contextModelAdd.Visible = false; + contextModelRemove.Visible = false; + contextModelProperties.Visible = false; + contextModelAttachTrigger.Visible = false; + contextConnectionAdd.Visible = false; + contextConnectionRemove.Visible = false; + contextConnectionEditLinks.Visible = false; + contextRun.Visible = false; + + if( _contextSelectedObject == null ) + { + contextModelAdd.Visible = true; + contextRun.Visible = true; + contextConnectionAdd.Visible = true; + + contextModelAdd.Enabled = true; + + if (_composition != null) + { + contextRun.Enabled + = !_composition.ShouldBeSaved + && _composition.Models.Count > 0; + contextConnectionAdd.Enabled + = _composition.Models.Count > 1; + } + } + else if( _contextSelectedObject is UIConnection ) + { + contextConnectionRemove.Visible = true; + contextConnectionEditLinks.Visible = true; + + contextConnectionRemove.Enabled = true; + contextConnectionEditLinks.Enabled = true; + } + else if( _contextSelectedObject is UIModel ) + { + contextModelRemove.Visible = true; + contextModelProperties.Visible = true; + contextModelAttachTrigger.Visible = true; + + contextModelRemove.Enabled = true; + contextModelProperties.Enabled = true; + contextModelAttachTrigger.Enabled + = !((UIModel)_contextSelectedObject).IsTrigger; + } + else + Debug.Assert( false ); + } + catch (Exception ex) + { + FinalCatchAndDisplay("Context Menu", ex); + } + } + + + private void contextConnectionAdd_Click(object sender, EventArgs e) + { + OnMenuConnectionAdd(sender, e); + CompositionUpdateArea(); + UpdateTitle(); + } + + private void contextConnectionRemove_Click(object sender, EventArgs e) + { + _composition.RemoveConnection( (UIConnection)_contextSelectedObject ); + CompositionUpdateArea(); + UpdateTitle(); + } + + private void contextConnectionProperties_Click(object sender, EventArgs e) + { + ShowSelectedObjectProperties(); + } + + private void contextModelAdd_Click(object sender, EventArgs e) + { + OnAddModels( sender, e ); + } + + private void contextModelRemove_Click(object sender, EventArgs e) + { + _composition.ModelRemove( (UIModel)_contextSelectedObject ); + CompositionUpdateArea(); + UpdateTitle(); + } + + private void contextModelProperties_Click(object sender, EventArgs e) + { + ShowSelectedObjectProperties(); + } + + private void contextRun_Click(object sender, EventArgs e) + { + OnRun(sender, e); + } + + + private void contextIsTrigger_Click(object sender, EventArgs e) + { + OnAttachTrigger( sender, e ); + } + + + #endregion + + + + #region Composition box event handlers + + private void compositionScrollBar_ValueChanged(object sender, EventArgs e) + { + _compositionBoxPositionInArea.X = compositionHScrollBar.Value; + _compositionBoxPositionInArea.Y = compositionVScrollBar.Value; + compositionBox.Invalidate(); + } + + private void OnCanvasPaint(object sender, PaintEventArgs e) + { + try + { + // draw OpenMI logo + e.Graphics.DrawImage(imageList.Images[0], 0, 0); + + foreach (UIConnection connection in _composition.Connections) + connection.Draw(_contextSelectedObject == connection, + _compositionBoxPositionInArea, e.Graphics); + + foreach (UIModel model in _composition.Models) + model.Draw(_contextSelectedObject == model, + _compositionBoxPositionInArea, e.Graphics); + } + catch (Exception ex) + { + FinalCatchAndDisplay("Canvas Paint", ex); + } + } + + private void compositionBox_MouseDown(object sender, MouseEventArgs e) + { + StopMovingModel(); + compositionBox.Invalidate(); + + bool actionFoundOut = false; + + // Left mouse button + if( e.Button == MouseButtons.Left ) + { + // if adding a connection + if( _isAddingConnection ) + { + UIModel model = GetModel( e.X, e.Y ); + + // if some model selected + if( model!=null ) + { + // if source model selected + if( _sourceModel == null ) + { + _sourceModel = model; + compositionBox.Cursor = _targetCursor; + } + else + { + // target model selected => add connection to composition + if( _sourceModel != model ) + _composition.AddConnection( + new UIConnection(_sourceModel, model)); + StopAddingConnection(); + } + } + else + { + // no model selected + StopAddingConnection(); + } + + actionFoundOut = true; + } + + // move model ? + if( !actionFoundOut ) + { + UIModel model = GetModel( e.X, e.Y ); + + if( model != null ) + { + _prevMouse.X = e.X; + _prevMouse.Y = e.Y; + + _isMovingModel = true; + model.IsMoving = true; + + actionFoundOut = true; + } + } + } + else if( e.Button == MouseButtons.Right ) + { + // right button => show context menu + + // stop other actions + StopAddingConnection(); + StopMovingModel(); + + // get model under cursor + _contextSelectedObject = GetModel(e.X,e.Y); + if( _contextSelectedObject == null ) + _contextSelectedObject = GetConnection(e.X,e.Y); + + contextMenu.Show( compositionBox, new Point(e.X,e.Y) ); + } + } + + private void compositionBox_MouseMove(object sender, MouseEventArgs e) + { + // moving model ? + if( _isMovingModel ) + { + foreach( UIModel model in _composition.Models ) + if( model.IsMoving ) + { + model.Rect.X += e.X -_prevMouse.X; + model.Rect.Y += e.Y -_prevMouse.Y; + + _prevMouse.X = e.X; + _prevMouse.Y = e.Y; + + _composition.ShouldBeSaved = true; + CompositionUpdateArea(); + UpdateTitle(); + compositionBox.Invalidate(); + } + } + + } + + private void compositionBox_MouseUp(object sender, MouseEventArgs e) + { + StopMovingModel(); + } + + + #endregion + + #region .NET generated members + + private System.ComponentModel.IContainer components; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + + /// + /// The main entry point for the application. + /// + static void Main( string[] args ) + { + try + { + ProcessCommandLineArgs( args ); + } + catch( Exception e ) + { + MessageBox.Show( e.ToString(), "Error occured while starting the application", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + + + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + this.mainMenu1 = new System.Windows.Forms.MainMenu(this.components); + this.menuFile = new System.Windows.Forms.MenuItem(); + this.menuFileNew = new System.Windows.Forms.MenuItem(); + this.menuItem17 = new System.Windows.Forms.MenuItem(); + this.menuFileReload = new System.Windows.Forms.MenuItem(); + this.menuItem18 = new System.Windows.Forms.MenuItem(); + this.menuFileOpen = new System.Windows.Forms.MenuItem(); + this.menuFileSave = new System.Windows.Forms.MenuItem(); + this.menuFileSaveAs = new System.Windows.Forms.MenuItem(); + this.menuItem15 = new System.Windows.Forms.MenuItem(); + this.menuFileExit = new System.Windows.Forms.MenuItem(); + this.menuComposition = new System.Windows.Forms.MenuItem(); + this.menuEditModelAdd = new System.Windows.Forms.MenuItem(); + this.menuItem4 = new System.Windows.Forms.MenuItem(); + this.menuViewModelProperties = new System.Windows.Forms.MenuItem(); + this.menuModelAttachTrigger = new System.Windows.Forms.MenuItem(); + this.menuCompositionSpacer = new System.Windows.Forms.MenuItem(); + this.menuEditConnectionAdd = new System.Windows.Forms.MenuItem(); + this.menuEditConnectionLinks = new System.Windows.Forms.MenuItem(); + this.menuItem1 = new System.Windows.Forms.MenuItem(); + this.menuEditRunProperties = new System.Windows.Forms.MenuItem(); + this.menuOptions = new System.Windows.Forms.MenuItem(); + this.menuItem5 = new System.Windows.Forms.MenuItem(); + this.menuRegisterExtensions = new System.Windows.Forms.MenuItem(); + this.menuHelp = new System.Windows.Forms.MenuItem(); + this.menuHelpContents = new System.Windows.Forms.MenuItem(); + this.menuItem2 = new System.Windows.Forms.MenuItem(); + this.menuExamples = new System.Windows.Forms.MenuItem(); + this.menuExample1 = new System.Windows.Forms.MenuItem(); + this.menuExample2 = new System.Windows.Forms.MenuItem(); + this.menuExample3 = new System.Windows.Forms.MenuItem(); + this.menuExample4 = new System.Windows.Forms.MenuItem(); + this.menuItem3 = new System.Windows.Forms.MenuItem(); + this.menuHelpAbout = new System.Windows.Forms.MenuItem(); + this.compositionHScrollBar = new System.Windows.Forms.HScrollBar(); + this.compositionBox = new System.Windows.Forms.PictureBox(); + this.compositionVScrollBar = new System.Windows.Forms.VScrollBar(); + this.contextMenu = new System.Windows.Forms.ContextMenu(); + this.contextModelAdd = new System.Windows.Forms.MenuItem(); + this.contextModelRemove = new System.Windows.Forms.MenuItem(); + this.contextModelProperties = new System.Windows.Forms.MenuItem(); + this.contextModelAttachTrigger = new System.Windows.Forms.MenuItem(); + this.contextConnectionAdd = new System.Windows.Forms.MenuItem(); + this.contextConnectionRemove = new System.Windows.Forms.MenuItem(); + this.contextConnectionEditLinks = new System.Windows.Forms.MenuItem(); + this.contextRun = new System.Windows.Forms.MenuItem(); + this.imageList = new System.Windows.Forms.ImageList(this.components); + ((System.ComponentModel.ISupportInitialize)(this.compositionBox)).BeginInit(); + this.SuspendLayout(); + // + // mainMenu1 + // + this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuFile, + this.menuComposition, + this.menuOptions, + this.menuHelp}); + // + // menuFile + // + this.menuFile.Index = 0; + this.menuFile.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuFileNew, + this.menuItem17, + this.menuFileReload, + this.menuItem18, + this.menuFileOpen, + this.menuFileSave, + this.menuFileSaveAs, + this.menuItem15, + this.menuFileExit}); + this.menuFile.Text = "&File"; + // + // menuFileNew + // + this.menuFileNew.Index = 0; + this.menuFileNew.Shortcut = System.Windows.Forms.Shortcut.CtrlN; + this.menuFileNew.Text = "&New"; + this.menuFileNew.Click += new System.EventHandler(this.OnNew); + // + // menuItem17 + // + this.menuItem17.Index = 1; + this.menuItem17.Text = "-"; + // + // menuFileReload + // + this.menuFileReload.Index = 2; + this.menuFileReload.Shortcut = System.Windows.Forms.Shortcut.CtrlR; + this.menuFileReload.Text = "&Reload"; + this.menuFileReload.Click += new System.EventHandler(this.OnReOpen); + // + // menuItem18 + // + this.menuItem18.Index = 3; + this.menuItem18.Text = "-"; + // + // menuFileOpen + // + this.menuFileOpen.Index = 4; + this.menuFileOpen.Shortcut = System.Windows.Forms.Shortcut.CtrlO; + this.menuFileOpen.Text = "&Open..."; + this.menuFileOpen.Click += new System.EventHandler(this.OnOpen); + // + // menuFileSave + // + this.menuFileSave.Index = 5; + this.menuFileSave.Shortcut = System.Windows.Forms.Shortcut.CtrlS; + this.menuFileSave.Text = "&Save"; + this.menuFileSave.Click += new System.EventHandler(this.OnSave); + // + // menuFileSaveAs + // + this.menuFileSaveAs.Index = 6; + this.menuFileSaveAs.Text = "Save &As..."; + this.menuFileSaveAs.Click += new System.EventHandler(this.OnSaveAs); + // + // menuItem15 + // + this.menuItem15.Index = 7; + this.menuItem15.Text = "-"; + // + // menuFileExit + // + this.menuFileExit.Index = 8; + this.menuFileExit.Text = "E&xit"; + this.menuFileExit.Click += new System.EventHandler(this.menuFileExit_Click); + // + // menuComposition + // + this.menuComposition.Index = 1; + this.menuComposition.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuEditModelAdd, + this.menuItem4, + this.menuViewModelProperties, + this.menuModelAttachTrigger, + this.menuCompositionSpacer, + this.menuEditConnectionAdd, + this.menuEditConnectionLinks, + this.menuItem1, + this.menuEditRunProperties}); + this.menuComposition.Text = "&Composition"; + this.menuComposition.Popup += new System.EventHandler(this.OnMenuCompositionOpen); + // + // menuEditModelAdd + // + this.menuEditModelAdd.Index = 0; + this.menuEditModelAdd.Text = "Add &Model(s) ..."; + this.menuEditModelAdd.Click += new System.EventHandler(this.OnAddModels); + // + // menuItem4 + // + this.menuItem4.Index = 1; + this.menuItem4.Text = "-"; + // + // menuViewModelProperties + // + this.menuViewModelProperties.Index = 2; + this.menuViewModelProperties.Text = "Model &Properties..."; + this.menuViewModelProperties.Click += new System.EventHandler(this.OnViewModelProperties); + // + // menuModelAttachTrigger + // + this.menuModelAttachTrigger.Index = 3; + this.menuModelAttachTrigger.Text = "Model Attach &Trigger"; + this.menuModelAttachTrigger.Click += new System.EventHandler(this.OnAttachTrigger); + // + // menuCompositionSpacer + // + this.menuCompositionSpacer.Index = 4; + this.menuCompositionSpacer.Text = "-"; + // + // menuEditConnectionAdd + // + this.menuEditConnectionAdd.Enabled = false; + this.menuEditConnectionAdd.Index = 5; + this.menuEditConnectionAdd.Text = "Add &Connection"; + this.menuEditConnectionAdd.Click += new System.EventHandler(this.OnMenuConnectionAdd); + // + // menuEditConnectionLinks + // + this.menuEditConnectionLinks.Enabled = false; + this.menuEditConnectionLinks.Index = 6; + this.menuEditConnectionLinks.Text = "Edit Connection &Links..."; + // + // menuItem1 + // + this.menuItem1.Index = 7; + this.menuItem1.Text = "-"; + // + // menuEditRunProperties + // + this.menuEditRunProperties.Index = 8; + this.menuEditRunProperties.Shortcut = System.Windows.Forms.Shortcut.F5; + this.menuEditRunProperties.Text = "&Run..."; + this.menuEditRunProperties.Click += new System.EventHandler(this.OnRun); + // + // menuOptions + // + this.menuOptions.Index = 2; + this.menuOptions.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuItem5, + this.menuRegisterExtensions}); + this.menuOptions.Text = "&Options"; + // + // menuItem5 + // + this.menuItem5.Index = 0; + this.menuItem5.Text = "View Exception details"; + this.menuItem5.Click += new System.EventHandler(this.OnViewExceptionDetails); + // + // menuRegisterExtensions + // + this.menuRegisterExtensions.Checked = true; + this.menuRegisterExtensions.Index = 1; + this.menuRegisterExtensions.Text = "&Register file extensions"; + this.menuRegisterExtensions.Click += new System.EventHandler(this.menuRegisterExtensions_Click); + // + // menuHelp + // + this.menuHelp.Index = 3; + this.menuHelp.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuHelpContents, + this.menuItem2, + this.menuExamples, + this.menuItem3, + this.menuHelpAbout}); + this.menuHelp.Text = "&Help"; + this.menuHelp.Popup += new System.EventHandler(this.OnMenuHelpOpen); + // + // menuHelpContents + // + this.menuHelpContents.Index = 0; + this.menuHelpContents.Shortcut = System.Windows.Forms.Shortcut.F1; + this.menuHelpContents.Text = "&Help ..."; + this.menuHelpContents.Click += new System.EventHandler(this.OnHelp); + // + // menuItem2 + // + this.menuItem2.Index = 1; + this.menuItem2.Text = "&Wiki ..."; + this.menuItem2.Click += new System.EventHandler(this.OnMenuHelpWiki); + // + // menuExamples + // + this.menuExamples.Index = 2; + this.menuExamples.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuExample1, + this.menuExample2, + this.menuExample3, + this.menuExample4}); + this.menuExamples.Text = "Examples"; + // + // menuExample1 + // + this.menuExample1.Index = 0; + this.menuExample1.Text = "1. One river reach"; + this.menuExample1.Click += new System.EventHandler(this.OnExample1); + // + // menuExample2 + // + this.menuExample2.Index = 1; + this.menuExample2.Text = "2. Two river reaches"; + this.menuExample2.Click += new System.EventHandler(this.OnExample2); + // + // menuExample3 + // + this.menuExample3.Index = 2; + this.menuExample3.Text = "3. Two reaches + 1 adapter"; + this.menuExample3.Click += new System.EventHandler(this.OnExample3); + // + // menuExample4 + // + this.menuExample4.Index = 3; + this.menuExample4.Text = "4. Two reaches + 2 adapters"; + this.menuExample4.Click += new System.EventHandler(this.OnExample4); + // + // menuItem3 + // + this.menuItem3.Index = 3; + this.menuItem3.Text = "-"; + // + // menuHelpAbout + // + this.menuHelpAbout.Index = 4; + this.menuHelpAbout.Text = "&About ..."; + this.menuHelpAbout.Click += new System.EventHandler(this.OnHelpAbout); + // + // compositionHScrollBar + // + this.compositionHScrollBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.compositionHScrollBar.Location = new System.Drawing.Point(0, 236); + this.compositionHScrollBar.Maximum = 20; + this.compositionHScrollBar.Minimum = -10; + this.compositionHScrollBar.Name = "compositionHScrollBar"; + this.compositionHScrollBar.Size = new System.Drawing.Size(376, 16); + this.compositionHScrollBar.TabIndex = 2; + this.compositionHScrollBar.ValueChanged += new System.EventHandler(this.compositionScrollBar_ValueChanged); + // + // compositionBox + // + this.compositionBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.compositionBox.BackColor = System.Drawing.Color.White; + this.compositionBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.compositionBox.Location = new System.Drawing.Point(0, 0); + this.compositionBox.Name = "compositionBox"; + this.compositionBox.Size = new System.Drawing.Size(376, 236); + this.compositionBox.TabIndex = 3; + this.compositionBox.TabStop = false; + this.compositionBox.DoubleClick += new System.EventHandler(this.OnCanvasDoubleClick); + this.compositionBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseMove); + this.compositionBox.Click += new System.EventHandler(this.OnCanvasClick); + this.compositionBox.MouseDown += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseDown); + this.compositionBox.Paint += new System.Windows.Forms.PaintEventHandler(this.OnCanvasPaint); + this.compositionBox.MouseUp += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseUp); + // + // compositionVScrollBar + // + this.compositionVScrollBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.compositionVScrollBar.Location = new System.Drawing.Point(376, 0); + this.compositionVScrollBar.Name = "compositionVScrollBar"; + this.compositionVScrollBar.Size = new System.Drawing.Size(16, 236); + this.compositionVScrollBar.TabIndex = 4; + this.compositionVScrollBar.ValueChanged += new System.EventHandler(this.compositionScrollBar_ValueChanged); + // + // contextMenu + // + this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.contextModelAdd, + this.contextModelRemove, + this.contextModelProperties, + this.contextModelAttachTrigger, + this.contextConnectionAdd, + this.contextConnectionRemove, + this.contextConnectionEditLinks, + this.contextRun}); + this.contextMenu.Popup += new System.EventHandler(this.OnContextMenu); + // + // contextModelAdd + // + this.contextModelAdd.Index = 0; + this.contextModelAdd.Text = "Add Model(s)..."; + this.contextModelAdd.Click += new System.EventHandler(this.contextModelAdd_Click); + // + // contextModelRemove + // + this.contextModelRemove.Index = 1; + this.contextModelRemove.Text = "Model Remove"; + this.contextModelRemove.Click += new System.EventHandler(this.contextModelRemove_Click); + // + // contextModelProperties + // + this.contextModelProperties.Index = 2; + this.contextModelProperties.Text = "Model Properties..."; + this.contextModelProperties.Click += new System.EventHandler(this.contextModelProperties_Click); + // + // contextModelAttachTrigger + // + this.contextModelAttachTrigger.Index = 3; + this.contextModelAttachTrigger.Text = "Attach Trigger"; + this.contextModelAttachTrigger.Click += new System.EventHandler(this.contextIsTrigger_Click); + // + // contextConnectionAdd + // + this.contextConnectionAdd.Index = 4; + this.contextConnectionAdd.Text = "Add Connection"; + this.contextConnectionAdd.Click += new System.EventHandler(this.contextConnectionAdd_Click); + // + // contextConnectionRemove + // + this.contextConnectionRemove.Index = 5; + this.contextConnectionRemove.Text = "Connection Delete"; + this.contextConnectionRemove.Click += new System.EventHandler(this.contextConnectionRemove_Click); + // + // contextConnectionEditLinks + // + this.contextConnectionEditLinks.Index = 6; + this.contextConnectionEditLinks.Text = "Edit Links..."; + this.contextConnectionEditLinks.Click += new System.EventHandler(this.contextConnectionProperties_Click); + // + // contextRun + // + this.contextRun.Index = 7; + this.contextRun.Text = "Run..."; + this.contextRun.Click += new System.EventHandler(this.contextRun_Click); + // + // imageList + // + this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream"))); + this.imageList.TransparentColor = System.Drawing.Color.Transparent; + this.imageList.Images.SetKeyName(0, ""); + // + // MainForm + // + this.ClientSize = new System.Drawing.Size(392, 253); + this.Controls.Add(this.compositionVScrollBar); + this.Controls.Add(this.compositionBox); + this.Controls.Add(this.compositionHScrollBar); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Menu = this.mainMenu1; + this.MinimumSize = new System.Drawing.Size(300, 200); + this.Name = "MainForm"; + this.Text = "OpenMI Editor 2"; + this.Load += new System.EventHandler(this.MainForm_Load); + this.SizeChanged += new System.EventHandler(this.MainForm_SizeChanged); + this.DragDrop += new System.Windows.Forms.DragEventHandler(this.MainForm_DragDrop); + this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing); + this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.MainForm_KeyPress); + ((System.ComponentModel.ISupportInitialize)(this.compositionBox)).EndInit(); + this.ResumeLayout(false); + + } + #endregion + + #endregion + + private void OnCanvasClick(object sender, EventArgs e) + { + try + { + MouseEventArgs args = e as MouseEventArgs; + + _contextSelectedObject = null; + + if (args != null) + { + _contextSelectedObject = GetModel(args.X, args.Y); + + if (_contextSelectedObject == null) + _contextSelectedObject = GetConnection(args.X, args.Y); + } + } + catch (Exception ex) + { + FinalCatchAndDisplay("Canvas Click", ex); + } + } + + private void OnCanvasDoubleClick(object sender, EventArgs e) + { + try + { + OnCanvasClick(sender, e); + ShowSelectedObjectProperties(); + } + catch (Exception ex) + { + FinalCatchAndDisplay("Canvas Double Click", ex); + } + } + + void ShowSelectedObjectProperties() + { + if (_contextSelectedObject is UIConnection) + { + ShowLinkDialog((UIConnection)_contextSelectedObject); + UpdateTitle(); + } + else if (_contextSelectedObject is UIModel) + { + ModelDialog modelDialog = new ModelDialog(); + modelDialog.PopulateDialog(_composition.Models, ((UIModel)_contextSelectedObject).InstanceCaption); + modelDialog.ShowDialog(this); + } + } + + private void OnMenuHelpWiki(object sender, EventArgs e) + { + ShopUri(new Uri(@"http://public.wldelft.nl/display/OPENMI/OpenMI+AssociationTechnical+Committee")); + } + + string[] _exampleOprs = new string[] { + "SimpleCSharpRiver2_RiverReach1.opr", + "SimpleCSharpRiver2_RiverReachs1and2.opr", + "SimpleCSharpRiver2_Decorators01.opr", + "SimpleCSharpRiver2_Decorators02.opr", + }; + + DirectoryInfo ExamplesLocation() + { + object location = Registry.GetValue( + @"HKEY_CURRENT_USER\Software\OpenMI\OATC_Editor", + "Examples_Location", null); + + DirectoryInfo examples = null; + + if (location != null) + examples = new DirectoryInfo((string)location); + + if (examples == null || !examples.Exists) + { + // try develepment location + + FileInfo ass = new FileInfo(Assembly.GetExecutingAssembly().Location); + + examples = new DirectoryInfo( + Path.Combine(ass.DirectoryName, @"..\help\examples")); + } + + return examples; + } + + private void OnMenuHelpOpen(object sender, EventArgs e) + { + DirectoryInfo examples = ExamplesLocation(); + + menuExamples.Enabled = examples != null && examples.Exists; + + if (menuExamples.Enabled) + { + menuExample1.Enabled = File.Exists(Path.Combine(examples.FullName, + _exampleOprs[0])); + menuExample2.Enabled = File.Exists(Path.Combine(examples.FullName, + _exampleOprs[1])); + menuExample3.Enabled = File.Exists(Path.Combine(examples.FullName, + _exampleOprs[2])); + menuExample4.Enabled = File.Exists(Path.Combine(examples.FullName, + _exampleOprs[3])); + } + } + + void OpenExample(int index) + { + try + { + Cursor.Current = Cursors.WaitCursor; + Refresh(); + + if (index < 0 || index >= _exampleOprs.Length) + throw new IndexOutOfRangeException(); + + DirectoryInfo examples = ExamplesLocation(); + + if (examples == null || !examples.Exists) + return; + + OpenComposition(new FileInfo( + Path.Combine(examples.FullName, _exampleOprs[index]))); + + Cursor.Current = Cursors.WaitCursor; + } + finally + { + Cursor.Current = Cursors.Default; + Refresh(); + } + } + + private void OnExample1(object sender, EventArgs e) + { + OpenExample(0); + } + + private void OnExample2(object sender, EventArgs e) + { + OpenExample(1); + } + + private void OnExample3(object sender, EventArgs e) + { + OpenExample(2); + } + + private void OnExample4(object sender, EventArgs e) + { + OpenExample(3); + } + + private void OnViewExceptionDetails(object sender, EventArgs e) + { + + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/MainForm.resx b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/MainForm.resx new file mode 100644 index 00000000..4cc5aae3 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/MainForm.resx @@ -0,0 +1,1185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 17, 17 + + + 126, 17 + + + 241, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABA + lAAAAk1TRnQBSQFMAwEBAAEEAQABBAEAAa0BAAFuAQAE/wEZAQAI/wFCAU0BNgcAATYDAAEoAwABtAEC + AgABbgMAAQEBAAEYBQABCAF8AQMRAP////8J//8A/wD/AP8A/wD/ABsA/////wn//wD/AP8A/wD/AP8A + GwBk/wH+Av8B/gL/Af4C/wH+GP8B/gX/Af4G/wH+Av8B/gL/Af4C/wH+Av8B/v//aP//AP8A/wD/AP8A + /wAbAGH/Af4C/wH+Av8B/QL/Af4C/wH+Av8B/gH/Af4C/wH+B/8B/gL/Af4C/wH+Av8B/QL/Af4C/wH9 + Av8B/gL/Af4B/QL/Af0C/wH9Av8B/QL/Af0C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/ + Af4C/wH+Av8B/v//R///AP8A/wD/AP8A/wAbAGH/Af4C/wH9Av8B/QL/Af4C/wH+Av8B/gH/Af4C/wH+ + B/8B/gL/Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af4B/QL/AfwC/wH9Av8B/QL/Af0C/wH9Av8B/gL/ + Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/v//R///AP8A/wD/AP8A/wAbAGH/Af4C/wH+ + Av8B/gL/Af4C/wH+Av8B/gL/Af4J/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gH9Av8B/QL/ + Af0C/wH9Av8B/QL/Af0C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+//9H//8A + /wD/AP8A/wD/ABsAZP8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Cf8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+ + Av8B/gL/Av4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+ + Av8B/gL/Af7//0f//wD/AP8A/wD/AP8AGwBq/wH+GP8B/gL/Af4C/wH+Av8B/gL/Af4C/wL+Av8B/gL/ + Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/v//Tf//AP8A/wD/AP8A + /wAbAGP/Af4C/wH+Af8B/hr/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gn/Af4C/wH+Av8B/gL/Af4C/wH+ + Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+//9N//8A/wD/AP8A/wD/ABsAY/8B/gH/Av4B/wH9Av8B/gL/ + Af4E/wH+D/8B/gL/Af4C/wH9Av8B/QL/Af0C/wH+Ev8B/gL/Af4C/wH9Av8B/QL/Af4C/wH+Av8B/gL/ + Af7//03//wD/AP8A/wD/AP8AGwBg/wH+Af8B/gH9Af8C/QH/Af0B/gH/Af0C/wH9Af8B/gL/Af4N/wH+ + Af8B/gL/Af4C/wH9Av8B/QL/Af0C/wH9Av8B/gH/Af4C/wH+Cv8B/gL/Af4C/wH9Av8B/QL/Af4C/wH+ + Av8B/gL/Af7//03//wD/AP8A/wD/AP8AGwBg/wH+Af8B/gH9Af8C/QH/Af0B/gH/Af0C/wH9Af8B/gL/ + Af4C/wH+Av8B/gT/AfwC/QL/Af4B/AH7AfoC/wH9Af8B/gH8Av8B/AH/Af0B/AH/Av4B/wL8Af0C/AH/ + Af4H/wT9Av8B/QL/Af0C/wH9Av8B/QL/Af4C/wH+Nf8D/mD/MP6E//8A/wD/AP8A/wD/ABsAS/8G/Qz+ + BP0B/gL9Af8C/QH/Af0C/wH9Av8B/gH/Af4C/wH+Av8B/gL/Af4B/wH9Av4D/AL/Af4C/wH9Av8C/AH5 + AfYC/wH8Av8B/AH+AvoB/wH+Av8B/gL/Av0B/wL9A/8D/QH8Af0B/AH9Av8B/QL/Af0C/wH9Av8B/gL/ + Af4g/wz9A/5p/zD+hP//AP8A/wD/AP8A/wAbAGL/Av4B/wH9Af4B/wH9Av8B/gT/Af4C/wH+Av8B/gL/ + Af4B/wH+Av8B/QH/Af4C/wL9AfwB+gHrAecB5AG+AbgBtAG4Aa8BqwG1AawBqQHRAcsBygH8AfcB+AH/ + Af4C/wH+Av8B/gH/BP4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af4C/wH+IP8D/gz/A/5m/zD+hP//AP8A + /wD/AP8A/wAbAFT/Bv4J/wH+Af8B/gL/Af4E/wH+Av8B/gL/Af4C/wH+Af8C/gH/Af0B/gH/Af0B/wH+ + Av8B/QL/AfwB8QHsAegBvgG1AbABvAGwAawBugGvAawBywHEAcMB/wL9Af8B/gL/Av0B/wH+BP8B/gL/ + AfwB/QH8Af0C/wH9Av8B/QL/Af0C/wH+I/8D/gn/Cf5j/zD+hP//AP8A/wD/AP8A/wAbAEv/GP4K/wH+ + Av8B/gL/Af4B/wL+Af8B/QH+Af8B/QL/Af0B/wH+AvwB+wH/Af4B+wHxAekB5QG8AbABqwHAAa8BqwG+ + Aa8BqwHPAsYB/wH9Av8D/QH6AfsB/wH+BP8B/gL/Af0C/wH9Av8B/QL/Af0C/wH9Av8B/iP/DP0G/mb/ + MP6E//8A/wD/AP8A/wD/ABsAS/8D/hL/A/4H/wH+Av8B/gL/Af4C/wH+Af8C/gH/Af0C/wH7Av0B/AH9 + AfwB/gH9AfsC/wH7AfUB7AHnAcABsgGtAcMBsQGrAb8BrgGpAcwCwQH/Af0C/wH+Av8B/gL/Af4C/wL+ + A/wB/QL/Af0C/wH9Av8B/QL/Af0C/wH+OP8D/WD/MP6E//8A/wD/AP8A/wD/ABsAUf8D/gb9A/4H/wH+ + Av8B/gL/Af4C/wH+Av8B/gL/Af0B/wH9Af4B/wH9Av8B/AL/Af0B/wH+Av8B/AH/Af0B+gH1AesB5gHB + AbEBrAHGAbEBqwHCAa8BqwHSAcgBxwH/Af0C/wH7AfwB/wH9Af4B/wH+BP8B/QL+Af0C/wH9Av8B/AL/ + Af0C/wH9Av8B/ib/A/4G/Qn/A/1g/zD+hP//AP8A/wD/AP8A/wAbAAP/Af4C/wH+Av8B/gL/Af4U/wH+ + Av8B/QL/Af0C/wH9Af8C/gH/Av4B/wH9Av8B/gL/Af4C/wH+Av8B/QL/Af0C/wH9Av8B/QL/AfwC/wH8 + Af8B/AH5AfwB9wH1AfgB9QHyAfgB9QHyAfwB9wH2Af8B/AH6Af8B/gH9Af8B/gH9Af8C/gH/Av4B/wH+ + Av8B/gL/Af4B/wH9Av8B/AL/AfsC/wH5AvwC/wH9Av8B/AH2AewB5wHBAbIBqwHEAbEBqAHEAbEBqgHR + AcYBwgH/Af4B/AH/Af4B/AH/Af4B/QH8AfcB9gH6AfYB8wH2AfMB8AH6AfcB9AL/AfwC/wH8Av8B/QL/ + Af0X/wH+Av8B/gL/Af0C/wH9Av8B/QH6AfYB9AH5AfQB8gH5AfQB8gH8AfcB9gH/AfwB+gL/Af0C/wH9 + Af8B/gH9Av8B/gH/Af4B/wL+Af8C/gL/Af4D/wH+Av8B/QL/Af0C/wH9Av8B/gH/Af4C/wH+Av8B/gL/ + Af4C/wH+Av8B/gL/Af4C/wH+A/8B/QL/Af0C/wH9Av8B/QL/A/4B/wH8Af0B/wH7AfwB/wL7Af8C+wH/ + AvwB/wL9Af8B/gT/Af4B/QH/Af4B/QL+Af8B/gL/Af4B/wP+Af0B/gH/AvwB/wH7AfwB/wH7AfwB/wL8 + Af8B/QH+Af8D/gH/Af4C/wH+Af8B/QL+Af0C/gP/Av4B/wH8Af0B/wH6AfwB/wH5AfwB/wH5AfwB/wH7 + AfwB/wL9Af8C/gH/Af0B/gH/AfwB/QH/AfsB/AH/AfoB/AH/AfsB/AH/AvwB/wL9Af8C/lL//wD/AP8A + /wD/AP8AGwAB/gL/Af0C/wH9Av8B/QH/Af4B/QH/Af4C/wH+Av8B/gH/Av4B/wH+Av8B/gL/Af4B/wH7 + A/wC/wH7Af8B/gH8Af8B/QH8Af8B/AH9Af8B/AL/AfwB/gH9AfoC/wH8Av8B/AL/AfwB/wH6AfYB8QHk + AeAB4QHUAc4B0AHDAbsByAG8AbMBwQG3Aa0BwAG1Aa0BwQG0Aa0BwgG0Aa0ByQG4AbMB0AG/AboB2gHK + AcgB6wHfAd4B/wH8AfkB/wH8AfoC/wH8Av8B/AH+Af8C/AH/Af0B+gL/AfoC/wH+BP8B/QHzAeoB5QHC + AbQBrAHCAbMBqAHBAbIBqAHVAcgBvwL/AfkB5wHbAdYB0AHCAb4BxAG4AbIBvgGxAasBwgG2Aa4BwQG2 + Aa0BxQG5AbEB1wHLAcUB8AHnAeMB/wH8AfkB/wL+Af8C/QH+Av8B/AL9AfwC/QX/Af4C/wH9Av8B/AH0 + Ae4B6wHZAdABzQHIAb4BuQHCAbYBsAHEAbYBsAHCAbIBrgHEAbYBsAHKAb8BuQHRAckBxAHlAeEB2wH/ + Af0B+QH/Af4B/QH/Af4B/wL9Af8C/AL/Af4B/wHpAuQBzgHFAcEB0QHIAcIBzQHDAcEB6gHjAeEB/wH+ + Af8B/gH8Af4C/AH9Av4B/wL+Af8B/gH9Av8B/QH/Af0C+QHPAcYBwwHRAcYBwQHTAccBwgHVAcsByAL/ + A/0B/wHwAfQB/wHRAdUB7wHPAdAB9wHSAdMB+gHjAeYB/AH3AfwB/wH9Af4B/wH8Af0C+wH8AfsB/QL/ + AfwB+wH8Af8B/gH/Af4B/wH+AfsB/QH/AfcB+QH/AdAB0wHrAdcB2gHzAfYB+gH/AfsB/QH/AfwB/QH8 + Af8B/gH/Af4B/AH+Af0C/wH8A/0C/AL9Af8B9gH7Af8B0wHaAfMBzwHVAfsBzAHRAfYB0QHVAesB9AH2 + Af8B/AH9Af8B+gH8Af8B8QH2Af8B0AHXAfEB0AHVAfkB0QHUAfgB1QHUAe8B+wH6Af8C/VL//wD/AP8A + /wD/AP8AGwAB/gL/Af0C/wH9Av8B/QH/Af4B/QH/Af4C/wH9Av8B/QH/Av4B/wL+Af8B/QH/Av4B/wH6 + Av0B+wL/AfoB/wH9AfsB/wH8AfoB/wH6Af4B/wH7Af8B/gH6Av8B/AL/AfwB/wH4AfQB4AHXAdIByQG9 + AbgBvQGuAagBwAGvAagBwgGzAakBwQGzAagBvwGxAagBvwGxAagBvwGxAagBwQGwAagBxAGwAaoBxgGx + AawBxQGxAa4BwAGvAasBwgG0AbEB2QHQAcsB/AH2AfEC/wH7Av8B+wH8Af8C+wH/Af4B+QH+Af0C/gL/ + Av4B9AHqAeYBwQGzAasBwgG0AagBwQGzAagBzwHBAbYB1wHIAcABugGtAagBugGtAagBvwGwAaoBvgGv + AagBwQGyAagBwgGzAagBwQGvAagBvwGvAagBwwG0Aa4B1QHKAcYB/AH1AfMC/wH9AfcB+QH3Af0B/wH9 + Av8B/gH8AfoB+QL/AfwB/wH6AfcB2wHRAc4BvwGzAa4BvgGxAawBvgGvAakBvgGuAagBwQGvAagBwQGv + AagBwgGwAakBwgGyAasBvAGuAagBvAGyAakBxwG/AbgB8gHrAekB/QL5Af8B/QH/Af4B/AL/AfwB/QHe + AdcB1AG7Aa0BqAHBAbEBqwG9Aa8BqwHgAdcB1AH/AvwB/wH+Af8C/gH/Af0B/gH/Af4B/QH/Af0B/AL/ + Af0B/wH5AvMBwQG1AbABvwGuAagBwAGvAagByAG6AbYB/wH6AfYC/QH/Ae0B8gH/AcIByAHoAbgBuQHx + ArgB8AHLAdAB8QHyAfcB/wH8Af4D/wH8Af0B/wL9A/8B/gH/AfwB+gL8Af0B/wH5AfwB/wHaAd4B/AG8 + AcAB5wHBAcMB7AHlAegB/wH5AfwB/wH8Af0B/gH/Af4C/wH+Af8B/QL/Af0F/wL8Af8B6wHxAf8BvAHE + AesBsgG5AfABtAG6Ae0ByAHNAeoB8QH0Af8B+wH8Af8B+AH7Af8B5wHsAf8BvAHCAekBtAG5Ae0BtwG4 + Ae0BwwHBAecB9gH0Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAH+Av8B/QL/Af0C/wH9Af8B/gH9Af8C/gH/ + Af0C/wH9Av8B/gH/Av4B/wH8Af0B/wH+Af8B/AL+AfsB/wH+AfwB/wH9AfwB/wH8AfoB/AH4Av8B+wH/ + Af0B+AL/AfoB8gHoAeQBxwG7AbgBwQG0Aa8BugGtAagBwQGyAa0BvAGvAagBuAGrAagBvgGzAakBwwG5 + Aa8BxQG6AbIBxgG6AbMBxQG5AbMBwAGzAa4BugGsAagBvwGsAagBxAGyAa8BwAGvAasBvgGwAawBygG9 + AbgB6gHhAdwB/wH8AfcC/wL8Af8B/QH7Af8B/gP9Af8C/gHzAeoB5wHAAbEBqwHBAbQBqAHBAbMBqAHE + AbUBqwG6Aa0BqAG7Aa8BqQHEAboBtAHMAcMBvQHTAcoBwwHMAcEBuQG8AbABqAG+Aa8BqAHCAbIBqQHE + AbMBrAG4AakBqAHcAdEBzgH/Af4B+wL/AvwB/wL7AfoB9wL/AfwB/wH9AfkB1wHLAcUBvQGuAagBwwGy + AaoBvwGvAagBwQGzAasBxgG4AbAB0AHEAb0B1wHIAcIB0QHCAb0ByQG5AbMBwAGvAagBvgGuAagBwwG0 + AasBxAG3AbAB6QHfAdwB/wL+Af8C/QH/AfsB+QHmAdsB1wHDAbIBqwHAAa0BqAG+Aa4BqAHjAdcB1AH/ + Af4B/QH/Af4C/wH+Af8C/QH/Af0B/AH/Af0B/AH+Af8B/gH/AfkB9AHxAcIBtgGvAcEBrwGoAcEBrwGo + AcgBuwG0Af8B+gH2Af0B/gH/AfcB+wH/AcsB0AHvArgB7wKyAe0BwAHCAesB7QHxAf8B+gH8Af8B/gH/ + Av0C/wL8Af0C/wH+AfsB+gL8Af0B/wHyAfQB/wHEAcYB8QG0AbUB7AGxAbIB6wHMAc8B+QHyAfQB/wH7 + Af0B/wL8Af0C/wL+Av8B/QL/Af4C/wH6AfwB/wHeAeEB/wG2AboB6wGvAbMB8AGzAbgB7QHWAdkB9QH4 + AfwB/wH8Af0B/wH6AfwB/wHqAe4B/wG5Ab4B6gGwAbMB7gKxAesBwAG9AeYB+gH3Af8B/QH8Uv//AP8A + /wD/AP8A/wAbAAP/Af4C/wH9Av8B/QH/Af4B/QH/Av4B/wH9Av8B/QL/Af4C/wH+Af8B/gL/Af4B/wH9 + Av8B+wL9AfwB/wH9Af4B/wH8Av0B+gL/AfsC/wH6AecB3AHVAcEBswGvAcMBtQGwAbwBrgGpAb4BsAGs + Ab0BsQGtAdMByQHEAeoB4QHbAfQB7AHlAf8B9wHxAf8B/QH3Af8B/QH4Af8B+AH0AfMB7QHqAesB4gHe + AdkBywHIAcYBtgGzAbkBqQGoAcEBsQGuAb0BrQGoAcQBtgGxAd0B1AHPAv8B/AL/AfwB/QH/Af4B/QH8 + Af0B/wL+AfUB6gHoAcABsQGsAcIBtAGpAcEBsgGoAbsBrQGoAcEBtQGvAeQB3AHXAf0B9wHzAv8B+wL/ + AfoB/wH9AfcB/wH3AfAB1wHLAcMBvgGvAagBxgG0Aa0BwAGuAagBvgGxAasB5AHeAdgC/wH8Af0B/wH8 + Av8B/AH/AfsB9gHaAc8ByQHAAbABqQHDAbEBqQHBAa8BqAHMAb0BtQHuAeMB2wL/AfkB/wH8AfYB/wH8 + AfkC/wH6Af8B/AH2AeUB1wHRAcYBtwGvAbwBrQGoAbcCqAHPAcQBvwH2Ae8B7QH/Af4B/QL/AfwB3gHT + Ac4BwAGvAagByAG2Aa0BwgGxAaoB5QHaAdYB/wH+Af0D/wH8Av4B/AH+Af8C/gL/Af4D/wH+AfoB9QHx + AcQBtwGvAcIBsQGoAcQBswGpAckBvQG0Af8B/AH2Af4C/wH4AfwB/wHbAd4B+gG4AbkB7wG2AbQB8QG4 + AboB6wHfAeIB/wH5AfwB/wH9Af8D/gH/Af4C/wH8Af0B/AL9Af8B9wH5Af8B1wHYAfcCuQHvAbIBswHz + AbIBswHzArgB7QHdAd4B/QH3AfkB/wL8Af8C/gL9Av4B/QH+Af8B+gH8Af4B+AH7Af8BzQHPAfYBtgG4 + AfEBswG1AfUBuAG6AfAB4wHmAf8B+QH8Af8C/AH/AfsB/AH/AeoB7AH/AbkBvAHsArQB9AG1AbMB8gG/ + AbsB6AH6AfYB/wH9AfxS//8A/wD/AP8A/wD/ABsACf8B/QH/Af4B/QH/Av4B/wH9Av8B/QL/Af4C/wH+ + Af8B/gL/Af4B/wH9Av8B/AL+Af0B/wH9Av8B/AL/AfwC/wH6Ae4B4wHcAcABsAGpAb0BrQGoAboBqwGo + AcMBtAGwAdEBxQHBAfMB6wHnAf8B/gH7Av8B+gL/AfsC/wH7Af8B/QH6Af8B/gH7Av8B/AL/Af0B/wH+ + AfwB/wH+AfwB9wHrAeoB1QHIAcUBwgG0Aa8BvgGtAagBvAGsAagBuwGvAakB3wHXAdMB/AH6AfYC/wH9 + Af8B/AH9Af8B/QH+AfYB6gHpAcEBsQGtAcQBtAGrAcABsAGoAb0BsAGrAd8B1wHUAfwB+AH1Av8B/AH+ + Af8D/AH6Av8B/AL/AfsB/wH8AfUBywHBAbgBwAGvAagByQG4Aa8BugGtAagBzgHGAb8B/gH/AfsB/QH/ + AfwB/gH8AfgB6wHjAd8BvgGyAa0BvwGvAakBwAGuAagBzAG9AbYB/wH2Ae8B/wH+AfgC/AH3Av8B/AH9 + Af8C/QH/AfwC/wH8Af8B/QH5AeMB3QHXAcABtwGvAd0B0gHMAfIB6wHlAv8B/AL/Af0B/wH8AfkB4gHa + AdQBwQGyAagBwQGvAagBvgGvAagB4AHXAdEB/wH9AfoB/QH/Af0B/AH/Af4B/AL/Af0C/wH+Af8B/gH9 + Af4B/AH3AfQB8AHBAbQBrAHBAa8BqAHBAbABqAHHAboBsAH/AfsB9QH9Af4B/AH6AfwB/wHrAe4B/wG6 + AbkB7gG2AbQB8wK0Ae4BywHNAfYB+QH6Af8B/QH+Af8B/gL/Af0B/gH/AfwC/gH6AfwB/wHiAeMB/wG9 + AbwB6wKzAe8BtAG1AfgBtwG4AfoCsAHsAcMBwgHxAeUB5gH/AfoB/AH/AfwC/wH9Av4B/AH+Af8B+gH9 + Af8B8wH3Af8BvgG/Ae8CtAHzAbMBtAH0AbwBvwHxAe4B8QH/AfgB+wH/Av0B/wL8Af8B6AHqAf8BtwG4 + AesBsgGxAfUBtAGwAfQBuwG3AeYB9wH0Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAn/Af4B/wH+Af0B/wL+ + Af8B/QL/Af0C/wH+Av8B/gH/Af4B/wL9Af4B/QP+BP8B/QL/AfwC/wH8AfcB7wHqAcEBtAGsAcYBtgGu + AcEBsQGrAcMBtAGvAdIBxgHCAf8B+QH2Av8B/AL/AfwC/wH8Af8B/gH8Av8B/AL/Af0C/wH9Af8B/gL8 + Af0B/AH9Af4C/QH5AfgB/wH+AfwB/wH+AfwB3gHUAdABwQGxAa0BxQG1Aa8BwAGxAaoBuQGvAagB6gHl + AeAC/wH8Af8C/QH/AfwB/QH2AesB6QHBAbEBrQHEAbMBqwHAAa8BqAHKAb4BugH/AfsB+QL/Af0B/AH9 + AfwB+wP9Av8B/gL/Af0B/AH6Av8B+wHhAdkB0gG9Aa4BqAHEAbIBqQHBAa8BqAHIAb4BtwL8AfcB/gH/ + AfwC/wH6AcwBwwK+AbABqgHEAbUBrgHBAbEBqgHoAdkB0wL/AfoB/wH+AfkC/wH8Af0B/wH8AfsB/AH5 + Af0B/gH8Av8B/AL/AfsB/wH8AfYB/wH5AfMC/wH5Av8B+wL/Af0B/wH+Af0C/wH8Ad8B2AHTAbsBrQGo + AcgBuAGvAcABsQGqAeEB2AHTAf8B/QH6Af0B/wH9AfsB/wH9AfwB/wH9AfwB/gH9AfwB/QH8Af0B/wH9 + AfkB9gHxAcQBtwGuAcQBswGoAcQBtAGpAcgBvQGzAf8B/AH2Av8B/QH8Af0B/wH3AfkB/wHGAcUB9AG4 + AbcB9AG1AbQB9AK+AfAB8gHzAf8B+wH9Af8B+wH8Af0B+wH8Af0B+gH9Af8B6wHtAf8ByAHHAfMBtQG0 + AewBswG0Ae8BwgHEAf8BwAHBAfwCtgHxAbQBsQHrAc0BywH3AfEB8wH/AfoB/QH/Af0B/gH/AfwB/gH/ + AfcB/AH/AecB6wH/AbgBtwHtAbUBswH1AbUBtgHxAcoBzQH4AfcB+gH/AfwB/gH/Av4B/wL8Af8B7AHu + Af8BugG7Ae0BtQGzAfYBtgGzAfYBvAG4AekB+QH2Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAv/Av4B/wH+ + Af0B/wH9Af4B/wH9Av8B/gL/Af4B/wH+Af8B/gH9Av4B/QH+BP8B/gH9Av8B/AH/AfwB+QHYAc8ByQHB + AbMBqwG8Aa0BqAG7Aa0BqAHYAc0ByAL/AfwC/wH8Af8B/QH8Av8B/gL/Af4C/wH+Af8C/gH/Av4B/wH+ + Af8D/gH8Av8B/Ab/AvwC/wH8Af8B/QH5AeAB1gHQAb0BrwGoAb8BrwGoAcABswGtAc4BxgHBAfsB9gHz + Af8B/gH9Af8B/QH8AfYB6wHqAcABsAGsAcQBswGrAcEBrwGoAdcByQHHAf8C/AH+AvwB/wH+Af8C/gH/ + AvwB/gH8AfsB/gH/Af4D/wH8AfAB6AHkAcEBswGrAccBtAGrAccBswGsAcEBsgGsAfUB8QHtAv8B/AH/ + AfkB8QG/AbQBqQHBAbQBqgG9Aa4BqAHIAbgBsAH7Ae0B5QH/AfYB8AH+AfYB8AH6AfQB7gH6AfQB7gH8 + AfQB7wH8AfQB7wH+AfUB7wH/AfYB8AH/AfYB8AH/AfYB8AH9AfIB7QH9AfUB8gH9AvsB/wL9Av8B/QHh + AdkB1QG8Aa0BqAG+Aa0BqAHBAbEBqwHjAdgB1QH/Af0B+wH9Af8B/gH8Af8B/gH9Af8B/gL/Af0C/wL9 + Af8B/QH5AfcB8wHBAbUBrAHBAbABqAHBAbEBqAHGAboBsgH/Af0B+QL/Af0B+wL8AfkB+wH/AdYB1QH8 + AbgBtwHwAbcBtAH2AbgBtgHuAeEB4gH8AfkB+wH/AfwB/gH/AfsB/QH/AfYB+wH/AdEB1AH1AbgBtgHw + AbcBtAH0AbsBvQHwAdkB3QH/AdcB2gH/AbwBvQHwAbMBrwHxAbsBuAHyAdYB1wH4AfMB9wH/AfsB/QH/ + AfsB/QH/AfMB+AH/AdMB1wH4AbYBtQHvAbYBtAH0AbgBugHuAd0B4AH/AfkB/AH/AfwB/QH+Af0D/AH7 + Af8B7QHuAf8BvAG+AesBtQG0AfQBtwG0AfUBvQG5AeoB+QH2Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAT/ + Af4G/wL+Af8B/gH9Af8B/QH+Af8B/QL/Af4C/wH+Af8B/gL/Af4C/wH+Av8B/gL/Af0B/AH/Af0B/AH9 + AfQB8gG+AbIBrQHAAbEBqQG/AbABqAHFAbkBsgH1Ae0B5wL/AfwB/wH9AfwD/wP8Af8B/gL/Af4C/wH9 + Af4B/wL9Af4E/QH+AfwB/gH/Af0C/wL9Av8B/gH/AfwC+wL/AfwB/wH6AfUBzQHBAboBvwGvAagBwAGw + AakBuQGvAagB9gHuAeoB/wH+AfwB/wH9AfwB9QHrAekBvQGwAasBwgGyAaoBwQGwAakB3QHQAc0B/wH+ + Af0B/wL8Af8B/gL/Af0C/wH9Av8B/QL/Af0C/wH+Af0B8QHrAecBwgG0AawBwgGvAagBwgGuAagBxgG2 + AbAB/AH3AfUC/wH7AfQB7AHjAcQBuAGsAcABsQGoAcIBtAGpAb0BrgGoAcYBuAGvAcIBtwGvAb8BswGt + AcABtQGuAcEBtQGuAcQBtgGvAcQBtgGvAcIBtAGsAcEBswGrAcMBtAGtAcQBtgGvAcMBtQGvAb0BsgGv + Ad4B2AHZAf8B/gL/Af4B/QHeAdYB0QHDAbIBrAHGAbQBrQG+Aa4BqAHiAdcB1AH/Af4B/AH+Av8B/QL/ + Af0E/wH+Av8B/gH8Af0B/AH3AfYB8QHCAbUBqwHDAbIBqAHDAbMBqQHGAboBswH/AfsB+AH+Af0B/AH+ + Af8B/QH7AfwB/wLmAf8CuAHrAbYBtAH2AbUBtAHxAtUB9gH4AfoB/wH5AfwB/wH4AfwB/wHjAeYB/wG8 + Ab4B7AGzAa8B8gG5AbYB9gHJAcsC8wH2Af8B8QH1Af8BvwHBAegBuQG2AfYBtQGyAfQBugG8AeoB5AHo + Af8B+AH8Af8B9wH7Af8B8wH4Af8BxgHIAfEBtgG1AfEBtwG1AfIBvwHBAewB7wHzAf8B+wH8Af8B/QL+ + Af8B/gH/AfwB+wH/AesB7gH/AbkBvAHnArMB8AG2AbQB8wG9AbkB6AH3AfUB/wH9AfxS//8A/wD/AP8A + /wD/ABsABP8B/gL/Af4D/wL+Af8B/gH9Af8B/QH+Af8B/QL/Af4C/wH+AvwB/QH/Af4B/wP8Af8B/gL/ + Av0B/wH+AfwB7AHjAeABvgGxAa0BvwGvAagBvAGuAagB0AHHAcEC/wH6Af8B/QH8Av8B/gH7AvwB/QH+ + Av8B/gL/Af4C/wH+Av8B/gf/Af4D/wH+Av8B/AL/Af0B/wP9Av8B/QH/AfsB9gHlAdsB1AG/Aa4BqAHE + AbIBqwG+Aa8BqQHjAdoB1QH/Af0B+gH/Af4B/AH0Ae0B6gG4Aa4BqAHBAbMBqQHAAbEBqAHQAcUBwQH/ + Af4B/AH/AfwB+gH/Af4B/QH/Af4C/wH9Av8B/AL/Af4D/wH9AeQB3gHZAb8BsQGqAcIBsQGpAcIBsAGp + AcUBtgGxAf0B+QH3Av8B/AHzAesB4wHBAbQBqAHCAbMBqQHDAbQBqgG+Aa4BqAHFAbYBrgG6Aa0BqAHA + AbIBqwG9Aa8BqAG7Aa4BqAHBAbEBqAG/Aa4BqAHBAbABqAHFAbQBqwHBAa8BqAHFAbYBrAHBAbABqQG/ + AbIBrQHfAdkB1wH/AvwC/wH8Ad8B1QHQAcQBsgGrAcIBrwGoAbwBrAGoAeAB1QHSAf8F/AH9Av8B/QP/ + Af4B/wH9AvwB/gH9AfwB+wH3AfMBwgG1AasBxAGyAagBxAG0AawBxAG4AbMB/gL4Af8B/gH/Av4C/AH9 + Af8B8gH0Af8BygHMAfYBsQGyAfEBtQG2AfQBwgHDAewB8gH1Af8B9gH6Af8B8QH1Af8BwQHEAe8BtQG2 + AfABuAG3AfcBvAG6AfEB5QHnAf8B+AH8Af8B9wH6Af8B5QHnAf8BugG5AfABtQGzAfQBtwG4AfEBxAHI + AfIB8QH2Af8B9gH6Af8B4wHnAf8BuAG7AewBuQG4AfYBuAG2Ae8BzwHSAfUB9gH6Af8B+wH8A/8B/QH/ + Af0B/wH9AfwB/wHsAe4B/wG6Ab0B5wK1AfEBtwG2AfEBvAG5AecB+QH2Af8B/QH8Uv//AP8A/wD/AP8A + /wAbAAT/Af4C/wH+A/8C/gH/Af4B/QH/Af0B/gH/Af0C/wH+Av8B/gH/Af4C/wH+Af8C/gL/Af4C/wH+ + Af0B/wH9AfwB5AHaAdcBvAGvAasBwQGxAakBwAGxAakB0wHKAcQC/wH7Av8B/AH9Af8B/gH9Af4B/wL9 + Av8B/gL/Af4C/wH+B/8B/gb/Af4C/wH9Af8B/QH6Af4C+wH8Av8B/QL/AfwB6wHgAdkBwQGvAagBxgGy + AasBvgGuAagB2wHQAcoC/wH7Av8B/AHzAesB6AG+AbQBrQHBAbIBqAHBAbIBqQHEAbcBsAH3Ae4B6gL/ + AfwC/wH8Av8B/QH+AvwB/wH+Av8B/QH8Av8B/AHTAc0BxwG+AbEBqQHEAbQBqwG9AawBqAHKAb4BuQH/ + Af4B/AL/AfwB+AHxAeoBxAG4Aa8BvAGuAagBxAG0Aa0BwQGvAakBygG5AbMBzQG/AbgByQG+AbcBzQHC + AbsBygHAAbgBzAHBAbgBygG+AbUB0AHBAbgB0AHBAbgBxAG0AakBwwGzAagBwQGyAaoBvAGvAakB8QHq + AegB/wH+Af0B/wH8AfoB5gHbAdYBwQGwAakBxgG0AawBwgGyAa0B1wHMAcgB/wH+Af0B/wH+Af8D/QT/ + Av0C/wH9Av8B/AHwAesB5AHDAbUBqQHHAbUBqAG/Aa4BqAHGAbkBtgH/AvwB/wH+A/8C/AH+Af8B9gH5 + Af8B0wHXAfkBsgG1Ae8BsQGzAfIBugG9Ae0B5AHnAf8B8wH2Af8B0AHTAfUBuAG5AfABtAG1AfMCtQHv + AtAB+gH2AfcB/wH8Af0B/wH8Af0B/wH1AfYB/wLQAfoCtAHuAbEBsgHxAbgBuQHxAdEB1QH2AfAB8wH/ + AdcB2wH/AbQBtgHtAbgBtgH0AbgBtgHsAdwB3wH8AfcB/AH/Af0E/wH9Af8B/QH/AvwB/wHsAe4B/wG6 + Ab0B6AK1AfEBtwG2AfEBvAG5AeUB+AH2Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAT/Af4E/wH+Af8B/gH9 + Af8B/gH9Af8B/QH+Af8B/QL/Af4C/wH+Af8B/gH/Af0B/AH9Af8B/gL/Av4C/wH9Af8B/gH8AeEB1wHV + Ab0BrwGrAcABrwGoAcMBtAGsAdcBzwHIAv8B+wL9AfoB/gH/Af0B/gL/AfwB+wH8Af8B/gL/Af4E/wH9 + Af8B/gH9Af8B/gH9Af8B/gL/Af4B/wH+Av8B/AL/AfwB/wL+Af8C/AH7Av8B/AHrAeAB2gHDAa8BqAHG + AbEBqQHBAa8BqQHZAcsBxwH/Af4B+wL/AfwB8QHpAeQBwQG2Aa8BwQGxAagBxAGzAakBwAGwAagB0wHI + AcEC/wH6Av8B+QH/Af0B+gL/AfwC/wH8Av8B/AHvAeoB5AG+AbYBrgG+Aa8BqAHFAbQBrAHDAbMBrQHa + AdABywL9AfoC/wH8Av8B/AHNAcIBvwG9Aa4BqgHFAbQBrwHAAa4BqAHiAdEBywL/AfkC/wH5Av8B+QL/ + AfoC/wH6Av8B+gL/AvkB7wHmAdMByAG8Ab4BsAGoAboBrwGoAckBwAG5Af8B/AH5Av8B/QH/AfoB9wHl + AdwB1wG9Aa4BqAHDAbMBqQG6AawBqAHKAcABuwH9AfcB9gL/Af0B/gH8AfoB/wH+AfwB/wH+AfwC/wH8 + Av8B+wHeAdUBzQG+Aa4BqAHIAbYBqQG8Aa0BqAHMAcEBvgH/AvwB/wH9A/8B/QH8Af4B/wH3AfwB/wHh + AeYB/wG2AboB7wGvAbMB8QG1AbgB8AHSAdUB/wHnAeoB/wG5AbsB6wK0AfMCtQHzAcABwgHtAeoB7AH/ + AvwB/wH9AfwB/gH/Af4B/wL8Af8B6QHrAf8BvwHBAe0CsQHwArIB8QG5AbsB6wHjAeUB/wHKAc4B/wGz + AbQB7wG2AbMB8QG+AbwB7wHsAe8B/wH5AfwB/wH+A/8B/gH8Af8B/gH/AvwB/wHrAe0B/wG5AbwB6wG1 + AbQB8gG3AbYB8gG8AbkB5QH4AfcB/wH9AfxS//8A/wD/AP8A/wD/ABsACf8B/gH/Af4B/QH/Af4B/QH/ + Af0B/gH/Af0C/wH+Av8B/gH/Af4B/wH9AvwB/gH9Af4B/wL+Av8B/QL/AfwB6AHfAd0BvAGvAasBwQGv + AagBvwGuAagB0QHHAcEB/wH9AfgC/wP8AfsC/wH+BP8B/gT/Af4B/wH+Af0B/wH+Af0B/wH+Af0B/wH+ + Av8B/gH/Af4C/wH9Av8B/QL/Af4B/wH+AfwB+wL/AfsB4AHUAc4BvwGrAagBxAGvAagBwgGxAasB5gHZ + AdUB/wH9AfsB/wH+AfwB8QHoAeUBwQGzAa4BwQGvAagBxQGyAakBwgGyAakBvQGvAagB0gHJAcIB9wHx + AesC/wH7Af8B/QH5Af8B/AH4AeQB2wHWAcEBtwGvAboBrwGoAcQBtAGsAboBqQGoAcsBvQG3AfUB7AHn + Av8B/AL/Af0C/wH9AesB4wHhAccBugG4Ab4BrQGpAcABrgGoAcEBrwGoAdsBzgHHAf0B9AHuAv8B+gL/ + AfoC/wH8Av8B+wHxAesB5AHOAcMBugG4AaoBqAHBAbQBqgG9AbIBqQHoAeEB2wL/Af0B/wH+Af0C/wH8 + AeIB2QHUAcABsAGoAcQBtAGrAcEBswGrAbkBrQGoAc0BxgHCAfMB7QHrAv8B/AL/AfoC/wH6Av8B+QHn + Ad8B2QHKAcABtwHBAbEBqAHEAbQBqAG6AawBqAHWAcsByQH/Af4C/wH+A/8B/QL8Af0B+QH9Af8B7gH0 + Af8BwAHFAfEBsgG2AfEBswG3AfMBxQHHAf8ByQHKAf8CuAHwAbQBsgHzAroB8QHcAd8B/QH3AfsB/wL9 + Av8B/gH/Af0E/AH/AfcB+wH/AdcB2wH5AroB8QG0AbMB8wK4AfABzQHOAf8BwQHCAf4CtwH1AbUBswHu + AcwBygH3AfYB+AH/AfsB/QX/Af4B/AL+Af8B+wH8Af8B6wHtAf8BuQG6AewBtQGzAfQBtwG1AfMBuwG6 + AeUB+AH3Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAn/Af4B/wH+Af0B/wH+Af0B/wH9Af4B/wH9Av8B/gL/ + Af4B/wH+Av8B/gH/Av4F/wH+Af0C/wH8AfMB7AHqAcEBtQGvAcUBtAGsAcEBrwGoAcUBuAGwAfUB7AHn + Av8B+wL/AfwB+gH5AfcC/wH9Av8B/QL/Af0C/wH9Af4B/wH9Af4B/wL+Af8C/gP/Af4C/wH+Af8B/AH7 + AfwB/QL8Av8B/AH/AfgB8wHQAcIBuwHAAa4BqAHEAbIBqwG7Aa4BqAH2AesB5wH/AfwB+gH/Af4B/AH0 + AesB6AG8Aa8BqgHCAbABqQHEAbEBqQHFAbMBrAHBAbEBqgG6Aa0BqAHEAbgBswHHAboBtgHKAb4BuQHG + AbgBswHAAbEBqwG/Aa8BqAHAAa8BqAHBAa8BqAHIAbcBsQHsAd4B2gH/Af0B/AL/AfwB/wH9AfwB/wH9 + AfwC/wH8AegB3gHaAcEBsgGtAcABrgGoAcUBswGrAcABrwGoAcIBtQGuAc8BxQG/AdcBzgHIAdMBygHG + AcIBuAGyAb0BrwGoAcABrwGoAcEBrwGoAcMBswGqAd8B1wHQAf8B/QH6Af8B/gL/AfwB/QH/Af4B/QHe + AdQB0QG+Aa8BqAHBAbABqAHCAbQBrQHGAbgBswG6Aa4BqwG5Aa8BqwHMAcEBvQHXAcsBxgHZAc8ByAHR + AccBwAG8AbEBqwG7Aa8BqAHBAbIBqAG+Aa8BqAHGAboBtQHtAeUB5AL/Af0B/AH7AfoC/wH9A/wB+wH+ + Af8B9gH6Af8BywHQAfYBtAG4Ae4BsgG0AfMBuQG6AfwCtQH1ArgB9AG2AbQB7QLOAfcB8wH3Af8B+gH9 + Af8C/AL/Af4C/wH9Af8B/AH9Af8B+gH9Af8B8QH1Af8CzgH3AbYBtAHtArYB8wK4AfgCuAH5ArgB9gG1 + AbMB6gHdAdwB/wH4AfoB/wH8Af4B/wH9AfwB/QH/Af4B/wH9Av4B+gH8Af8B6gHtAf8BuAG6Ae0BtAGz + AfUBtwG0AfQBuwG5AeYB+AH3Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAb/Af4C/wH9Af8B/gH9Af8B/gH9 + Af8B/QH+Af8B/QL/Af4C/wL+Af0B/gH/Af4B/wH8Av0F/wH9Av8B/AH/AfsB+AHVAcsBxgHAAa8BqAHH + AbUBqwG9Aa8BqAHWAcoBwwH/AfkB9AL/AfwB/wH9AfsB/wH+AfwC/wH8Av8B/QL/Af0C/wH9Av8C/gL/ + Af0C/wH9Av8D/QL/Af0C/wH8Af8B/AH4AeIB1wHRAcEBsQGpAcQBswGrAcABsAGoAckBwAG5Af8B/gH6 + Av8B/QH/Af4B/QHzAesB6gG9AbEBrgHAAa8BqgG+Aa8BqAHXAcoBwwH1AeoB5AHHAboBtgG+AbIBrwG7 + Aa4BqwG3AakBqAHCAbMBrgG/Aa8BqQHAAbEBqQG/Aa8BqAHKAbwBtwHoAd0B1wH/AfsB+QH/Af4B/AH9 + AfwB+gL/Af0C/wH9Af8B/AH6Af8B/gH8AfQB6gHlAdEBxAG+AcIBswGtAb4BrwGpAbkBrAGoAbkBrgGo + AboBrwGqAb4BsQGuAcABsgGuAb4BrwGqAcABsAGqAdEBwwG8AekB3gHXAf8B/AH3Av8B/AH/Af4C/wH9 + Av8B/AH9AeEB2AHXAb8BsgGtAb8BsQGpAboBrQGoAeMB1wHSAesB3wHdAcIBtwK0AqgBvgGyAa0BuAGu + AagBtwGsAagBuQGuAagBuQGuAagBvwGxAagBxwG7AbMB4QHXAdUB/wH6AfkC/wH8Af4B/wH8Av8B/QT8 + Af4B/wH4AfwB/wHbAd4B/gG3AbkB6wGxAbIB8gKxAfcCswH4AbMBsgHwAsAB7gHnAegB/wH5AfwB/wH5 + AvwB/QL/AfwC/QH+Av8B/QL/AfoC/AH5AfwB/wHkAeUB/wK8AeoBsgGxAfACsgH2ArEB9QK2AfMBuwG6 + AesB6gHrAf8B9gH4Af8B/QH+Af8B/QH7Af0B/wH9Af8B/QH/Af4B+QH8Af8B6gHtAf8BuAG6Ae0CswH1 + AbcBtAH1AbsBuQHnAfgB9gH/Af0B/FL//wD/AP8A/wD/AP8AGwAD/wH+Av8B/gL/Af0B/wH+Af0B/wH+ + Af0B/wH9Av8B/QL/Af4C/wL+Av0B/wH+Af8C/QH+A/0C/wH9Av8B/AL/AfwB9AHrAeYBxAG2AawBxAGz + AagBvgGuAagBwAGyAaoB3AHSAc0B/AH2AfEC/wH8Av8B/AL/AfwC/wH8Av8B/QL/Af0B/wH+Av8B/gH/ + Af0B/gH/Af0B/gP/Af0C/wH8Af4B+QH2AeQB2gHWAcMBtAGuAb4BrAGoAcEBsAGoAcABtAGrAeIB3gHX + Av8B/AH9Af8C/QL8AfgB9AHzAd4B1wHUAeAB1gHQAd4B1gHPAecB4wHeAv8B/AH+AfcB9gHoAeAB3gHb + AdACzwHDAcEBxwG7AbYBzQHCAbwB1QHLAcQB6AHhAdsB/AH2AfEC/wH8Av8C/gL/Af0C/wH8Av8B+wH9 + AfwB/QH/Af4C/wH9Av8B/QH/AfwB+QH0Ae0B6wHfAdcB0wHRAcgBxAHMAcEBvwHIAbwBuQHJAbwBugHQ + AcQBwQHbAdEB0AHrAeUB4wH8AfkB9gL/AfwC/wP8AfoB+wH8Af0B/gH9Av8B/QH/AfEC6wHeAdcB0QHe + AdUB0AHeAdcB0QH0Ae0B6wH/Af4B/QH8AfQB8wHnAd4B3QHTAcwByQHDAb4BuQHHAcEBvQHJAcEBvAHS + AcgBwwHkAdsB1AH6AfEB7AH/Af4B/QL/Af0B/AH+AfoB/AH+AfoC/wH9Af8C/QH+Av8B+gH8Af8B6wHt + Af8BvgG/AewBtgG0AfMBsQGvAfYBswGxAfkCtAHvAdUB1wH5AfgB+gH/AvwB/wP8Af0B/wH9AfwB/wL8 + Af8C/AH/Af0B+wT8Af8B9gH3Af8B0gHUAfYCtQHxArMB+QKxAfYCswHvAcoBywL0AfYB/wH5AfwB/wH+ + Af8B/QH/AfwC/wH9Af8B/AH+Af8B+AH8Af8B6QHtAf8BuAG7AesBswG0AfQBtwG0AfQBuwG4AegB+AH2 + Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAP/Af4C/wH+Av8B/QH/Af4B/QH/Av4B/wH+Av8B/gL/Af4B/wH+ + Bf8B/gH/Af4C/wH8Av0C/wH+Af8B/QH8Av8B/AL/AfsB3gHTAcsBwAGyAagBwQGzAasBwQGzAasBugGu + AagB1wHNAccB/AH1AfAC/wH6Av8B+wL/AfsC/wH8Av8B/AL/AfwC/wH9Av8B/QL/Af0C/wH8AfoB9QHw + Ad4B1gHQAcEBtQGvAbwBrAGoAcYBtgGvAb4BrwGoAdABxwHAAv8B+gL/AfwB/QH/Af4B/QL+Af8C/gH/ + Af4B/QL/AfwC/wH7Av8D/AH6Av8B/QH/Af0B/gH/Af4B/QH/AfsB+QL/AfwC/wH6Av8B+gL/AfoC/wH8 + Af4B/wH9AfwC/wH8Av8B+gL9AfsC/gH8Av8B/AL/AfsB/AH9Af4E/wH9Af8B/AH7Av8B/QH/Af4B/QH/ + Af4B/QH/AvwB/wH+AfwB/wH+AfwB/wH8AfoC/wL9Af8B/gH6Af0B+wH9Af8B/AH9Af8B/QH6AfwC/QH+ + Av8B/gL/Av0C/wH8Av8B/AL/AfwC/wH9Af8C+wH/Af4C/wL+Af0B+gH4Av8B/AH/Af4B+wH/Af0B+wH/ + Af4B/AL/AfwC/wH8Av8C/QL8Af0B/wH8Af0B/wH8BP8B/gP/Af4C/AH/AfcB+AH/AsYB7QG8AbkB9gG1 + AbMB9wKzAfMBxAHFAfYB7gHxAf8B+wH8Af8B/QH8A/8B/gH7Af0B+wH8Af8C/AH/AvwB/wH8Av8B/gL8 + Af8B+wH8Af8B6QHrAf8BvQG+Ae8CsgHyArYB+AGzAbQB7QHYAdsB+wH4AfsB/wH8Av8B/QH+AfwB/wH9 + Af8B/QH8Af8B/AH/Af4B+AH9Af8B6gHuAf8BuAG8AesBswG0AfMBtwG1AfQBugG4AegB9wH2Af8C/FL/ + /wD/AP8A/wD/AP8AGwAJ/wH+Av8B/h//Af4C/wH+Av8B/AH/Af4B+QHeAdUBzwG8Aa8BqQG7Aa0BqAHC + AbIBrQG/Aa4BqAHGAbcBrwHZAcwBxQH0AeoB4wH9AfYB7QL/AfYC/wH4Av8B+QL/AfkB/AH3AfEB9AHt + AeUB3wHTAcsByQG6AbIBvQGuAagBwgGzAawBvgGvAakBuwGuAagB2QHQAcoB/wH9AfoC/wH8Av8B/QL/ + Af4E/wH+Av8B/gP/Af0C/wH9Av8B/QL/Af4C/wH+Af8B/gP/Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/ + Af4C/wL+Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH8Av8B/AL/AfwB/wH9Af4B/wH9Av8B/QH/Af4C/wH8 + Av8B/AL/Af0B/gL/AfwC/wH7Av8B+wH+Af8B/QL/Af4C/wH9Av8B/QT/Af4F/wH+A/8B/gL/Af0C/wH+ + Bv8C/gH/Bv4B/QH/Av4B/wH+Av8B/QL/Af0B/wH+Av8B/gH/Af4B/wL9Af8C/AH/AfwB/QH/AfwB/wH+ + Af8B/gH8Af4C/wH+Av0B/wH2AfcB/wHfAeEB/wKzAesBuAG3AfQCuAHoAeQB5gH/AfYB+AH/AfoB/AH/ + Af0B/wL9Af8B/AH+Af8B/QH+Av8D/AL/Av0B/gH7Af0B/wH9AfsB/QH/AfYB+QH/Ad8B4gH/AbYBuAHo + AbUBtAHyAbgBuQHuAekB6wH/AfkB/AH/Af0B/wL9Af8B/AL9Af8C/AH/AfsB/gH8AfgB/AH/AeoB7gH/ + AbwBvgHtArEB8gK1AfYBuAG5AekC9gH/AvxS//8A/wD/AP8A/wD/ABsAMv8B/QL/AfwB/wH7AfcB5wHe + AdsBxgG5AbUBuwGsAagBwgGxAasBxAGyAasBvgGtAagBvAGuAagBwgG3Aa0ByAG/AbUBygHBAbgByQHC + AbgByAHAAbYBwQG4Aa8BuwGvAagBvgGtAagBxQGzAasBwQGxAakBuQGrAagBwwG4AbIB4gHYAdUB/QH2 + AfMC/wH8Af8B/gH9Af8C/gH/Af4C/wH+Av8B/gL/Af4C/wH+Nf8B/gH/Af4C/wH9Av8B/AL/AfwB/wH+ + Af0B/wH9BP8B/gL/AfwC/wH9Bv8B/QL/AfwC/wH8Av8B/QH/Af4C/wL9Af8C/QH+Av0B/wP+Af0B/gL9 + Af4C/QH+AfwD/QH+Af8B/QH+Af8B/QH+Af8B/QL/Af0C/wH9Av8B/QL/Af4C/wH+Af8B/gP/Af4B/QH/ + Af0B/gH/AfwB/wH9AfwB/wL8Af8B/AH9Af8B/QH/Af4B/wH9AfwB/QL/A/0B/wH6AfwB/wHqAesB/wK5 + AesCswHoAtAB9AHxAfMB/wH5AfwB/wH8Av8B/gH/AfwB/gH/AfsC/wP+Af8B/gH9A/8B/gH8Af4B+QH9 + Af8C/AL/AfkB/AH/AesB7gH/AcsBzAHwArgB7QHDAcQC8wH1Af8B/AL/Af4B/wL9Af8B/gL9Af8B/AH9 + Af8B/QL/AfsB/QH/AeoB6wH/AboBvAHoAbMBsgHwArYB8wK4AeYB9AH1Af8C/FL//wD/AP8A/wD/AP8A + GwAy/wH+AvwB+gL/AfwC/wH8AfAB5wHkAdYByQHGAcIBtAGvAb4BrwGpAcIBswGuAcEBsgGsAb8BsQGp + AbwBrwGoAbsBrwGoAbwBrwGoAb0BrwGoAcABsAGqAcEBsgGsAcEBsQGrAbsBrQGoAb0BsAGrAdABxQHB + Ae4B5QHiAf8B/AH5Av8B/AH/AfsB+gH/Av4B/wH+Av8B/kH/Af4C/wH+Af8B/gL/Af4J/wH+Av8B/gL/ + Af4B/wL+Af8B/QL/Af0B/wH9Af4B/wH9Av8B/gH/Af0C/wH9Av8B/QH/Af4B/QH/Af4B/QH/Af4B/QH/ + Av4B/wL+Af8C/gH/Av4B/wL+Af8C/gz/Af4C/wH+Av8B/gL/Af0B/gL/Av4B/wH9Af4B/wH9Af8B/QH8 + Af8B/AH9Af8B/AH9Af8B/QH/Af4C/wH8Af4B/wH+Af0B/AL9AfsB/QH/AfIB9QH/AccByAHwAboBvAHm + AekB6wH/AfkB+wH/AfsB/QH/Af0E/wH8Av8B/AL/Af0B/AL9Af8B/gP/Af0B/AH9AfkB/QH/AfwB/QL/ + AfsB/QH/AfcB+gH/AeMB5QH+AboBvAHnAs8B9gH4AfkB/wH9Af4B/wL+Af8B/gH9Af8B/QH8Af8B/QH8 + Af8C/AH/AvwB/wLsAf8CwQHpArgB7QK4Ae4CvgHnAvcB/wL8Uv//AP8A/wD/AP8A/wAbADD/Af4C/wH+ + Af8B/gL9AfwB/wH+AfwC/wH8Av8B/AH2AewB6QHeAdMC0AHDAb8BwQG0Aa8BvQGwAawBvAGvAasBvwGy + Aa4BvwGyAa0BvQGvAaoBvgGvAasBwQGzAa8BzgHBAb4B3AHRAc8B8wHqAecB/wH8AfoB/wH+AfwC/wH9 + Av8B/QL/Af4B/wH+D/8B/gL/Af4C/wH+Mf8B/gL/Af4G/wH+Av8B/gL/Af4B/wH+Av8B/gH/Af4C/wH9 + Av8B/AL/AfwC/wH9Af8C/gH9Af4B/wH9Av8B/AL/Af4B/wL+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+ + Av8B/gL/Af4J/wH+Av8B/gL/Af4C/wH9Af4B/wH9Af4B/wP+Af8C/gH/Af0B/wL9Af8C/QH/Af0B/gH/ + Af4B/wH+Av8B/gP/Af0B/AL9AfsB/gH/AfYB+QH/AdgB3AH5AdMB1gH0AfYB+QH/AfsB/QH/AfwB/QH/ + Af0B/wH9Av8B/AL/AfwB/gH/Av0B/gH9Af4C/wH+Af8D/QH6Av8B/AH+Af8C/QH+Af8B+wH9Af8B9AH2 + Af8BzQHQAe0B3gHfAfwB+wH8Af8C/QL/Af0C/gH9Af8B/gH9Af8B/gH9Af8B/QH8Af8B/QH8Af8C7gH/ + AswB6wLFAewCxwHuAs0B6wL3Af8B/QH8Uv//AP8A/wD/AP8A/wAbADD/Af4C/wH8Af0B/gH8Bf0B/wL+ + Af8B/QH8Af8B/QH8Af8B/QH8Af8B/gH8Af8B9wH1AfIB6wHnAeQB3QHZAd8B1wHTAd8B1wHTAeQB3AHY + AfIB6QHmAf4B9gH0Af8B+gH5Af8C/QH/Av4B/wL+Af8B/QH+Af8B/gL/Af4C/wH+Af8B/gL/Af4D/wH+ + Cf8B/gL/Af4C/wH+Mf8B/gb/Af0C/wH8Av8B/AL/Af0C/wH+A/8B/gL/Af0C/wH9Av8B/QL/Af0G/wL+ + Af8C/gH/Af0C/gH9Af8B/gH9Av4B/QL+Af0B/gH/Af4C/wH+E/8G/gH9Af8C/gH/Af0B/gH/Av4D/wH+ + Af8B/gH/Av4B/wH9Af4B/wH+BP8B/gL/Af4D/wH9Av8B/QH7Af0B/wH4AfwB/wHqAe4B/wHtAfEB/wH7 + AfwB/wH9Af4B/wH+Av0C/wH9Af8B/gH8Af0B/gH7Af4B/wL9Af8C/QH/Av4B/wH9Av8B/AL/AfwC/wH9 + Af4C/QH+Av8B/AH9Af8B6wHuAfwB8QH1Af8C/QL/Av4C/wH9Av8C/QH+Af0D/wH+AfwB/QH+Af0B/wL8 + Af8B9gH4Af8B9gH6Af8B9gH6Af8B8gH0Af8B+wH8Af8C/VL//wD/AP8A/wD/AP8AGwAw/wH+Av8B/QH+ + Af8B+gL8AfoB+wH8Af4F/wH+Av0B/wH+Af0C/wH9Av8B/QH/Af4B/AH/Af0B/AL/AfwC/wH8Af8B/QH7 + Af8C/AH/Af4B/QH/Af4C/wH+Av8B/gL/Af4C/wH+Af8C/AH9AvwC/QH+Af8B/QH+Af8B/QL/Af4H/wH+ + Av8B/gL/Af0C/wH+Nf8B/gL/Af0C/wH8Av8B/AL/AfwC/wH9BP8B/gH/Af4C/wH+Av8B/gH/Af0B/gH/ + Af0B/gH/Af0B/gH/Af0B/gH/Af0E/wL+Af8D/gL9Af8C/gL/Af4C/wH+Av8B/gL/Af4C/wL+Af8B/gH9 + Av4B/QL+Af0B/wH+Af0B/wH+AfwC/gH9Af8B/gH9Af8B/gj/Af4C/wH+B/8B/QH+Af8B/QH+Av8B/QL/ + Av0B/wH+AfsB/gH/AfYB+QH/AfkB/AH/Af0B/gP/Af0C/wH9Av8B/QL/Af0B/gH9AfwB/gH/Av0B/wL9 + Af8B/QH+Af8B/QL/Af0C/wH9Af8B/gH9Af4C/AH/Af4B/AH9Av8B+gH9Af8B+gH9Af8C/AH/Af4C/AL/ + AfwC/wH8Af0B/wH8Af4B/wH8Av8B/QH/Av0B/AH9Af8B+gH9Af8B+QH+Af8B+QH+Af8B+wH+Af8C/AL+ + U///AP8A/wD/AP8A/wAbADH/Af4B/wH+Af0C/wH+Af8C/gH/Af0B/gH/AvwC/QL/Af0C/wP8Av8B/gL/ + Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QH+Af8C/gH9Af4B/wH+Av8B/gH/AvwB/QH8Af0B/wH9Af4B/wH9 + Av8B+QH6AfwB/QL/Af0C/wH+B/8B/gL/Af4B/wL+Av8B/i//Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/ + Af0C/wH9Av8B/gH/Af4C/wH+A/8B/AL/AfsB/gH/AfoB/QH/AfoB+wH/AfwB+wH+Af0B+wj8AfsB/AH7 + BvwB/gH9AfwB/wH+A/0B/AL9AfwC/QH8Af0B/gH9AfwB/gL9Af8B/gH9Av8B/QL/Af0C/wH9Af8B/gX/ + Af4C/wH+Av8B/gH/Af4C/wH+Av8C/gH/Av0B/gL9Av8B/QH8Af4B/QH8Av8B+gH+Af8B/AH+Bf8B/gH9 + Av8B/gH/Af4C/wH+Af8B/gH/Av4B/wH+Af0B/wL9Af8B/QH+Af8B/QT/Af4C/wH+Av8C/QH/Af4B/QL/ + Af4B+wH9Af8B/AL/AvwB/QH+AfwB/QL/Af4B/QH/AfwB/QH/AfwB/gH/Af0B/wH+Af0B/wH+Af0B/wH+ + Av0B/wH9AfkB/QH8AfkB/gH8Af0B/wH9Af4B/wH9Av8B/lH//wD/AP8A/wD/AP8AGwAx/wH+Av8B/gH/ + Af4B/AH9Af8B/gH/Av4B/wH8Af4B/wH6A/wB/QH+Af0C/wH9Af4H/wH9Af4C/QH+Av0B/wH+Af0B/wH+ + AfwB/wH+Af0C/wH8Af0B/gH7AfwC/QH+Af8B/QL/AfoB/AH9AfsB/AL9Av8B/QL/Af0C/wH+B/8B/gL/ + Af4C/wH+Av8B/i//Af4C/wH8Av8B/AT/Af4B/wH+Af8B/gH9Af8B/gH9Av8B/QH+Av8B/QL/Af0C/wH+ + A/0B+QH8Af0B9gH5AfwB9QH2AfoB9wH2AvgB9QL2AfUF9gH1AfYB9QL2AfUB9wL2AvgB9gH6AfkB9wL8 + AfoC/AH6BPwB/gL8Af4C/QH/Af4B/QL/Af0C/wH9Av8B/gT/Af4C/wH+Av8B/gL/Af4C/wH+Af8B/gL/ + Av4D/wP9Af4C/wH7A/wB/wH9AfwB/gL8Af4B/AL/Af0B/gH9AfwB/gL8Af8B/QH+Af8B/gT/Af4B/wH+ + AfwB/wH9Af4B/wL+Af8E/gH/Af4C/wH+Av8B/gP/Af4C/wH+AfwD/QP/Af4C/wH+Af8B/gL/Af0B/wH+ + Af0B/wH9Af4B/wH9Af8C/QH/Af4B/wH+AvwC/wL9Af8C/AH/AfwB/gH/Af0C/wH9Av8B/lH//wD/AP8A + /wD/AP8AGwA0/wH+Av8B/gL/Af4C/wH+Af8B/QH+Af8B/QH+Af8B/QH+Af8B/gP/Af4C/wH+Av8B/gL/ + Af4C/wH+Av8B/gP/Av4B/wH+A/8B/gL/Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9Af8C/gH/ + Af4C/wH+BP8B/gL/Af4C/wH+MP8B/QH+Af8B/AL/Af0B/wH+Af8B/gH9Af8B/AH9Af8B/AL/AfwB/gH/ + AfwB/QH/AfsB+gH/Af0B/AH/AfoB+wH+AfcB+AH2AfgB+wLzAfYB7gHwAvEC7gHwAu0B7wLtAu4B7QHv + A+4B7wLuAfEB8AHuAfEB8AHuAfEB8AHuAfQB8gHxAfYB9QHzAfkB+AH2AfoB+QH4AvoB+QL7AfoB/AP9 + Av8B/QL+Af0B/gb/Af4B/wL+Af8B/gH9Af8C/gL/Af4C/wH+BP8B/gH/Av4B/wH+BP8B/gL/AfwC/wH8 + Av8B/gz/Af4F/wH+Af8B/gP/Af4U/wH9Av8B/QP/Af4C/wH+Af8B/QL/Af0C/wH8Av8B/QP/Af0C/wH9 + Av8B/QL/Af4B/wL+Af8C/gL/Af4C/wH+Av8B/lL//wD/AP8A/wD/AP8AGwAx/wH+Av8B/gL/Af4C/wH+ + Av8B/gH/Af4C/wH9Af4B/wL+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gP/Af4C/wH+Av8B/gL/ + Af4C/wL+Af8B/QH+Af8B/QH+Af8B/QH+Af8B/QH+Af8B/QH+Af8B/QH+Af8B/gL/Af4C/wH+O/8B/gL/ + AfwB/gH9AvwB+gH+AfwB+gH/Af0B/gH/AfwB/gH/AfkB/AH/AfAB8QH7AeEB3wH0AeUB5AH6AvAB/wH2 + AfgB/wHwAfIB8QHpAesB5QHrAeoB6QHtAekB6gHrAukB6wLoAeoC5gHpAeUB5AHpAeUB5AHqAeUB5AHr + AecB5AHrAecB5AHvAesB6QHvAesB6QHwAe0B6wHzAfEB8AH3AvYB+wL6AfwB+wH8AfoB+wH8Av4C/wH+ + Bv8B/gL/Af4B/wL+Af8B/gH9Av8B/QL/Af4D/wL+Af8C/gL/Af4D/wH+Av8B/AL/AfwC/wH9Af4C/wH+ + Af8B/gH9Af8C/gH/Av4J/wH+BP8B/gL/Af4B/wH+Af0B/wH+Af0B/wL+Av8B/gL/Af0B/gH/Av4C/wH+ + Af8B/gL/Af0C/wH8Av8B/AL/Af0D/wH+Av8B/QL/Af0C/wH9Av8B/QH/Af4B/QL/Af0C/wH9Av8B/lL/ + /wD/AP8A/wD/AP8AGwA0/wH+Av8C/gH/Af4E/wH9Av8B/QL/Af0C/wH+A/8B/gL/Af4C/wH+Av8B/gL/ + Af4C/wH+A/8B/gL/Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9Av8B/gL/ + Af4E/wH+Av8B/gL/Af4w/wH+Av8B/QH/Af0B/gH/Af0C/wH9Af8E/QL/AfsB/AH/AfUB9gH/AckByAHq + AcEBwAHoAs0B8QHhAeMB/QHpAesB9gLoAekB5wHiAd8B5wHgAdsB5wHfAdsB5gHeAdoB5gHeAdkB5QHd + AdgB5wHeAdkB6QHgAdsB6wHjAd4B7AHkAeAB6wHkAeEB7AHnAeQB7gHpAecB7gLrAfAB7QHuAfIB8AHx + AfUB9AH2AfcB9gH5AfwB+wH8Af8C/QH/Af4J/wH+Av8B/QH/Af4B/AL/Af0C/wP+Af8C/gL/Af4C/wH+ + A/8B/QL/AfwB/gH/Av0B/wL9Af8C/QH/Av0B/wH9Af4B/wH+Af8B/gL/Af4C/wH+Av8B/gH/Af4B/wH+ + Af0B/wL9Af8C/QH/Av0B/wL9Af8B/gH9Af4B/wH9Af4B/wH+Af8B/QH+Af8C/QH/Av0B/wH9AfwB/wL9 + Af8B/QL/Af0C/wH+Af8B/gL/Af4B/wH+Af0B/wH+Af0C/wH+Av8B/lX//wD/AP8A/wD/AP8AGwA1/wH+ + Av8B/gL/Af4C/wH+Af0C/wH9Av8B/QL/Af4D/wH+Av8B/gL/Af4C/wH+BP8B/gL/Af0B/wH+Af0B/wH+ + Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH8Av8B/AL/AfwC/wH9Av8B/QL/Af0C/wH+BP8B/gL/Af4C/wH+ + Av8B/i//Af4B/wH+AfwB/QH/Af0C/wH+Af8C/gH9AfwB/QH8AfsB/AH/AvYB/wHLAcoB8wG4AbcB6wK2 + AesBxQHGAfIC1wHxAdUB0wHfAcsCxAHQAcYBvwHKAb4BtgHLAb4BtAHMAb4BtAHNAcABtgHPAcEBuAHR + AcQBugHUAcgBvwHWAckBwQHeAdQBzAHjAdkB0wHnAd8B2gHpAeMB4AHqAuQB7ALoAfAB7QHuAfQB8QHy + AfcB9AH1AfoB+AH5Af4B/AH9Af8B/gL/Af4D/wH+Av8B/QL/Af0C/wH9Av8C/gL/Af0B/gH/Av4C/wH+ + A/8B/gL/Af0B/gH/Av0B/wH9AfwB/wH9AfwB/wL9Af8B/QH+Af8B/gH/Af4C/wH+Av8B/gL/Af4B/wH+ + Af8B/gH9Af8B/QH8Af8B/QH8Af8C/QH/Av0B/wH+Af0B/gH/Af0B/gH/Af4B/wL+Af8C/QH/Av0B/wL9 + Af8C/QH/Af0B/gH/AfwC/wH9BP8B/gH/Av4B/wL+Bv8B/lT//wD/AP8A/wD/AP8AGwA1/wH+Av8B/QL/ + Av4B/wH+Af0C/wH9Av8B/QL/Af0B/gH/Av4B/wL+Af8C/gH/Af0C/wH9Av8B/AL/AfsB/wH+AfwB/wL+ + Af8B/gL/Af4C/wH+Av8B/QL/Af0C/wH9Av8B/AL/AfwC/wH9Av8B/QL/Af0C/wH+BP8B/gH/Av4B/wH+ + A/8B/i//Af4C/wH9Av8B/gL/Av0B/AH9AfoC/wL9AfwB/wH5AfgB/wHMAcoB9AG5AbgB8QGzAbIB9AG4 + AbYB8wG9AbsB5wG5AbYB0AG2Aa8BtwHCAbcBsQHIAbgBrQHLAbkBqQHLAbkBqQHMAboBqQHNAbsBqwHP + AbwBrQHPAb4BrwHPAb8BrwHOAb8BsQHQAcIBtgHUAcgBvgHbAdEByAHjAdoB0wHpAeIB3QHtAecB5AHv + AeoB5wHyAe4B7AH3AfQB8wH8AvoD/AL9Av4E/wH+Av8B/QL/Av4B/wH+Af0C/wH9Av8B/QH/Af4C/wH+ + Af8B/gP/Af4C/wL9Af8C/QH/Af0B/AH/Av0B/wH+Af0D/wH+Av8B/gL/Af4C/wH+Af8B/QL/Af0B/wH+ + AfwB/wL9Af8C/QH/Av0B/wH+Av0B/wL9Af8C/gH/Af4C/wH+Av8B/gL/Af4C/wH+Af8B/gL/Af0C/wH9 + Af4C/wH+Av8C/gH/Af4C/wH+Af8B/QH+Af8B/QL/Af5R//8A/wD/AP8A/wD/ABsAMv8B/gL/Av4B/wH9 + Af4B/wL+Av8B/gL/Af0B/gH/Af0B/gH/Av4B/wL+Af8C/gH/Av4B/wH9Af4B/wH9Av8B/AL/AfwC/wH8 + Av8B/gP/Af4G/wH+Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af0G/wH+Av8B/jP/Af4C/wH+ + Av8B/gL/Av4C/wH9Av8B/gH6AfgB/AHrAeoB+gHTAdEB9gG5AbgB7QKxAfUBtgG0AfkBtgGzAe0BugG1 + Ad4BwAG4AcsBwgG3AbgBywG6Aa4B0AG8AagB0AG9AagB0gG+AagB0gG+AagB0wG/AakB0wG/AakB0gG/ + AakB0AG+AakB0AG/AasB0AHAAa4B0QHDAbMB1gHIAbsB3gHRAcYB5wHdAdEB6wHjAdoB7gHoAeQB8gHv + Ae0B9wL2AfkB+AL6AfsC/AP+Af8C/gH/Af0C/wL+Af8B/gH9Af8C/QH/Av0B/wH9Af4B/wH9BP8B/gP/ + Af0B/gH/Av0B/wH+Af0C/wH9Av8B/Qb/Af4C/wH+BP8B/QL/Af0C/wH9Av8B/QH/Av4B/wH9Av8D/gH/ + Af4B/QH/Av4C/wH+Av8B/gL/Af4C/wH+Bv8B/gL/Av4C/wH+Av8B/gL/Af4B/wL+Af8B/QH+Af8B/QL/ + Af5R//8A/wD/AP8A/wD/ABsAMv8C/gH/Av4B/wH9Af4B/wH+BP8B/gL/Af4C/wH+Av8B/QL/Af0C/wH9 + Av8B/QL/Af4C/wH+Af8B/gL/Af4C/wH9Av8C/gH/Av4C/wH+Av8B/gb/Af4C/wH9Av8B/QL/Af0C/wH9 + Av8B/QL/Af0H/wH+Av8B/jD/Af4C/wH9Af8B/QL8AfsB/AH/Af4C/wH+Af8B8wHxAfMB4QHfAeEC1wHe + Ae4B7wH/AcsBzAH0AbMBtAHwArQB+QG4AbQB+AG+AbgB8QHGAb0B4gHCAbYBxQHKAboBsAHRAb4BqAHT + Ab8BqAHVAcEBqAHXAcEBqAHXAcIBqAHZAcMBqAHZAcQBqAHcAcYBqwHcAccBrAHaAccBrAHXAcMBqgHU + AcEBqQHXAcUBrgHfAc8BuQHkAdYBxQHlAd4B1QHpAeUB4wHvAu0B8gHxAfMB9QH2AfcB+gL8Af0B/wH+ + Af0B/wH9Av8C/gH/Af4B/QH/Av0B/wH8Af0B/wH8Af0B/wH8BP8B/gL/Af4C/wH+Af8C/gH/Af0B/gH/ + Af0B/gH/Av4D/wH+Av8B/QL/Af0C/wP+Af8B/QH+Af8B/QH+Af8C/gL/Af4D/wH+Av8B/QH+Af8B/QL/ + Af4C/wH+Af8B/gL/Af4C/wH+Av8B/gf/Af4C/wH9Af8C/gH/Af0B/gH/Af0B/gH/Af0B/gH/Af0C/wH+ + Uf//AP8A/wD/AP8A/wAbADP/Af4B/wL+Af8B/gf/Af4C/wH+Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9 + Av8B/gL/Af4C/wH+Av8B/gH/Av4B/wL+Af8C/gH/Av4C/wH+Bv8B/gL/Af0C/wH9Av8B/QL/Af0C/wH+ + B/8B/gb/Af4C/wH+Av8B/gL/Af4C/wL+Af8C/gH/Av4C/wH+Fv8B/gH/Af0B/AL/Af0B/wH+Af8B/QH+ + Af8C6gHtAc8BzgHQAdcB1gHXAfcB9gH6AfkB+wH/AdwB3gH7AbgBugHtAbABsQHxAbQBsQH3AbcBsQH0 + AcEBuQHuAccBvQHcAccBuAG5AdABvAGtAdMBvwGpAdYBwQGoAdgBwQGoAdoBwwGoAdsBwwGoAdsBxAGo + AdwBxAGoAd4BxwGoAd8ByAGoAd4ByAGoAd4ByAGpAdwBxwGpAdsByAGqAdgBxwGuAeAB1QHFAeQB3QHU + AesB5gHhAe4B6wHqAfEB8gHxAfcC+QH8Bf0G/wH9Af8C/QH/AfwB/QH/AfwB/QH/AfwE/wH+Av8B/gL/ + Af4B/wH+Af0B/wH9Af4B/wL+Af8C/gP/Af4C/wH9Av8B/QL/A/4B/wH9Af4B/wH+Af0B/wH+Af0C/wH+ + A/8B/gL/Af0C/wH8Av8B/QL/Af4C/wH+Av8B/gH/Af4C/wH+Av8B/gT/Af4C/wH+Af8C/gH/Af0B/gH/ + Af0B/gH/Af0B/gH/Af0C/wH+Uf//AP8A/wD/AP8A/wAbAEP/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/ + Af4C/wH+C/8B/gL/Af4C/wH+Av8B/gz/Af4C/wH+Av8B/gL/Af4O/wH+Av8B/QL/Af0B/gH/Af0B/gH/ + Af0B/gH/Av0B/wL9Af8C/QH/Af4B/AH+Af0B/AH9AfwH/wL+Af8B/gL/Af4B/wH+AfwB/QP/Af4C/wH7 + Af0B/AHdAeAB3wHIAcsBzAHOAdAB0QLyAfQC/QH/AfoB/AH/AfQB9wH/AcwB0AH2AbQBtwHtAbgBtwH5 + AbQBsQH5AbUBsgH1AcABuQHrAcoBvAHUAcsBuQG6AdABugGpAdoBwgGoAd8BxwGoAd4BxAGoAdoBwgGo + Ad0BxgGqAd8BxwGoAd8ByAGoAeEByAGoAeIByQGoAeEByQGpAd8BygGpAd4BygGoAdwByQGpAdoByAGu + Ad4B0AG6AegB3gHOAe4B6AHeAe8B7QHmAfMB9AHxA/oC/AH9Af8B/QH/Af4B/QL+Af8C/gH/Af0B/gH/ + Af0B/gH/Af0B/wH+Av8B/gL/Af4C/wH+Av8B/gH/Af4D/wH+Av8B/gb/Af4C/wH+BP8B/gH/Af4D/wH+ + Av8B/gL/Af4G/wH+Av8B/gL/Af4d/wH+Av8B/gL/Af4C/wH+VP//AP8A/wD/AP8A/wAbAJL/Af4C/wH9 + Av8B/QL/Af0B/gH/Av0B/wL9Af8C/QH/Av0B/wH+Af0B/wH+Af0B/wH+A/0D/gT/Af4C/wH9Af4B/wH+ + Av8B/QH/AfkC+gHaAdwB2gHLAc4BywHKAswC8QHzAf4C/wH9Af4B/wH7Af4B/wH3AfsB/wHmAeoB/wHC + AcQB8AGwAa8B7AG0AbIB+AGyAa8B+QG6AbUB9AHGAbsB4gHLAbwBywHRAb8BtgHZAcMBqwHgAccBqAHh + AcgBqAHeAccBqgHeAccBqwHeAcgBqAHfAcgBqAHiAcoBqAHjAcsBqAHiAcoBqQHhAcsBqQHhAc0BqQHg + Ac4BqgHhAc4BrQHcAcsBrgHeAdMBuQHnAeABzQHsAeoB3gLxAesB+AH3AfYB+wL6Af8B/QL/Af4B/wP+ + Av8C/gH/Af4E/wH+Av8B/rX//wD/AP8A/wD/AP8AGwCV/wH+Av8B/QL/Av4B/wH+Af0B/wH+Af0B/wH+ + Af0B/wH+Af0C/wH8Av4B/QL/AfwC/gL9Af4B/wH+Av8B/QH+Af0B/AH9Af8B/gL/AfwB/gHlAeMB5ALI + AcYByQHIAccB6QLnAf8C/gL/Af0B+wH6AfkB+wH8AfoB+QH8Af8B9wH5Af8C2wH9AboBtgHrAbYBsAHz + AbcBrwH6AbgBsQH1AcABuQHqAcYBvgHXAc4BwAHBAdIBwQGwAdkBxAGoAeAByAGoAd8ByAGqAd0BxwGo + Ad4ByQGoAd8BywGoAeMBzgGoAeIBzQGoAeABzAGpAeABzQGrAd8BzwGrAd8B0QGuAeIB0QGuAdoBywGq + AdYBywGvAdsB1QG+AeQB4AHQAewB6wHhAfUB9AHvAfgB9wH2Af4C/QH/Av4C/wH+Av8B/gL/Af4E/wH+ + Av8B/rX//wD/AP8A/wD/AP8AGwCa/wH+Av8B/gH/Af4C/wH9Av8B/QL/Af0C/wH8A/0C/wH9Av8B/QH+ + Af8C/QP+Av8B/QH+Af8C/QHqAecB6AHOAssBygHIAccC3gHcAv8B/gH9AvwC/wP9AfwC/wH8Af0B/gH/ + AfoB/AH/AvEB/wHSAdAB+QG5AbQB7QG6AbQB+AG5AbQB9QG9AbsB6wHDAcEB3QHJAcIByAHNAcEBtgHT + AcIBrQHaAccBrQHcAcgBrwHZAccBrQHdAcsBrwHdAcwBrQHiAdABrQHhAc8BqwHfAc0BqgHfAc8BqwHd + Ac8BqwHfAdMBrgHgAdMBrgHgAdQBsQHcAdIBsgHXAdABtQHZAdYBwQHmAeQB1QLxAecC9QHwAvwB+gH+ + Av0F/wL+Af8B/gL/Af4E/wH+tf//AP8A/wD/AP8A/wAbAJT/Af4C/wH+Av8B/gL/Af4B/wL+Af8B/QL/ + Af0B/gH/Af0B/gH/Af0B/gH/Af0B/gH/Af0C/wH9Av8D/AH+A/8B/gH/AfEB8AHxA88ByQLIAtMB0gH1 + AfYB9AH7AvwB/gL/AvwB/gH9Av8B+gP8Af4B/wH3AfkB/wH5AfoB/wLtAf8ByQHIAfMBtwG1Ae0BtAGz + AeoBwQHCAeoBxAHHAd4CyAHNAcsBxgHBAdEBxgG5AdYByAG5AdcByAG8AdcByAG8AdYByAG5AdcByQG2 + Ad8BzwG2Ad8BzwGwAeABzwGuAeIB0QGuAd4B0QGsAeAB1QGvAeAB1QGvAeQB2QG2AeIB2QG3AdoB1AG0 + AdgB0wG5AeAB3gHJAewB6wHeAfQB8wHsAfoB+QH2A/wG/wL+Af0C/wL+Av8B/rb//wD/AP8A/wD/AP8A + GwCR/wH+Av8B/gL/Af0C/wH+Av8B/gL/Af4B/wL+Af8C/gH/Av4B/wL+Af8B/AL9Af4C/wb9A/8B+gL5 + A94ByQHKAckBzgHPAc0B5QHmAeQB/AH9AfsB/QH/Av0C/wH9Av8B/AH+Af8B/QL/AfwB/gH/AfwB/gH/ + AfsB/AH/AfgB+gH/AeEB4wH/Ab0BwAHoAbwBvwHnAbwBwQHdAb4BwQHSAcABwgHHAsMBwAHIAcIBvAHK + AcIBvAHLAcEBvwHLAcEBwAHOAcUBwAHQAccBugHcAc8BugHfAc8BtAHjAdEBsQHlAdcBswHgAdUBrwHj + AdkBtAHhAdgBtAHhAdgBtgHiAdkBtgHhAdkBuAHeAdkBuwHeAdkBwQHlAeMB0gHxAfAB5gL2AfEB/AL6 + Af8B/gL/Af4B/wH+Av0C/wH+Af0C/wH9Av8B/rP//wD/AP8A/wD/AP8AGwCR/wH+Av8B/gL/Af4C/wH+ + Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8C/QH/Av4B/wL9Av8B/gH/Av4B8ALtAdABzwHOAcwBywHJ + AdYB1wHTAvYB8wL9AfoC/wL8Af0B+wH9Af8B/QH8Af4B/QH/Af4C/wH+A/8B/gT8Af0B/wH4AfwB/wHn + AesB/wHpAe4B/wHuAfEB/wHuAfEB+gHuAfIB9AHwAfMC8QHzAfAC8wHxAfMB8QHyAfMC8QHKAccBwwHN + AccBvAHbAdABvAHfAdEBtwHlAdUBtQHqAdkBuAHiAdcBtQHjAdoBuQHjAdsBuQHhAdoBuAHiAdoBuAHl + Ad4BuwHkAd4BvwHeAdkBwAHhAd4BzAHrAeoB3gH0AfEB7QH6AvgB/wH+Av8B/gH/Af4C/QP/Af0B/wH+ + Af0B/wL+s///AP8A/wD/AP8A/wAbAJH/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/ + AvwB/wL+Af8C/gH/Af4B/QH/Af4B/QH+AfoB+QHoAeQB4wHMAcgBxwHNAckBxwHqAeYB5AH/AfwB+QL/ + AfwB/gH8AfYC/wH6Av8B+gL/AfwB/wH8AfsC/wH8Af8B/AH5Av8B+wL/BPwB+gH9Af8B+QH8Af8B/AH9 + Af8B/AH9Af8B+wL/AfoB/wL8Af8B/QH8Af8B/gH9Af4B/wP8AcoByQHGAc0ByQG+Ad0B0wG+AeEB1AG4 + AeYB1wG3AeoB3AG6AeAB1wG4AeAB2gG7AeIB3AG9AeQB3gG+AeUB3wG8AeYB4AG9AeYB4AG/AeIB3QHB + AeEB3gHIAeYB5AHXAfIB8AHrAfkB9wH2Af8B/QH+Af8B/gH/Af4B/QH+A/8B/QL/AfwB/gH9Af6z//8A + /wD/AP8A/wD/ABsAlP8B/gH/A/0H/wH+Af0C/wH+Af8C/gL/Af0B/wH+Af0C/wH9Af8B/gH9Af8B/QH7 + Af8B+QH3AfEB6wHqAdcB0AHPAcsBxAHBAdMByQHHAeAB1QHSAecB2wHZAeMB1wHTAd8B1wHPAd4B1wHL + Ad4B1wHLAd8B1wHNAeIB1wHQAeMB1wHRAegB2wHTAeoB3gHWAekB4AHXAesB5AHdAfQB8QHuAv8B/gH/ + Af4B/wL+Af8B/AH/Af4B/AH/Af0B/AH/Av0B/wH9AfwC/gL/AfwCzQHEAcwByAG5Ad0B1QG8AeQB2QG6 + AecB2wG4AeUB2wG4AeIB3QG9Ad8B3QG+AeEB3gG/AeQB3wG+AeUB4QG9AegB4wG+AeYB4AG+AeUB3wHB + AeIB3gHHAd8B3gHOAe0B6wHkAvYB8wH8AfoB+wH/Af4C/wH+Af8C/AL9Av4B/QL/Af6z//8A/wD/AP8A + /wD/ABsAk/8C/QH8Av8B/gL/Af4B/AH6AfkB+wH5AfgC/wH9Af8B/gH9Af8B/AH6AfsB9gH1AfEB6wHq + AeQB3gHcAdgB0QHQAdUBzgHLAc0BxgHEAcEBuQG4AcIBuQG3AccBugG4AcsBvQG6AcgBugG5AcMBtQGy + AcEBtgGuAcABtQGqAb4BtQGoAcABtQGoAcEBtQGqAcABsQGpAcABrwGoAcQBtAGrAcMBtgGrAcIBuAGu + AdwB1gHPAv8B+wL/Af0C/wH+Af0B/wL9Af8B/QH+Af8B/gP/Af4C/QH+Af0B+wHQAc4BxgHPAcsBvAHe + AdcBwAHkAdsBvQHnAd4BvAHmAd4BvQHkAeABwQHgAd8BwQHjAeEBwQHkAeMBwQHnAeQBwAHlAeEBvQHo + AeMBwAHlAeEBwQHiAeABxwLeAcoC6wHfAfYB9QHwAfwB+gH5Af8B/gL/Af4B/wH9AfwB/gH9Af4B/wH+ + tv//AP8A/wD/AP8A/wAbAJL/A/4D/QH8Av8B/AL/Af0C/wH9Af8B/AH6AfMB8AHuAeMB3gHdAdMBzgHM + AdABygHIAcwBxgHEAc0BxwHEAdIBygHIAcoBwwHBAcIBuwG4AckBwQG+AdcBzAHIAdkBzQHKAdYCyAHV + AcgBxwHVAcgBxgHQAccBwAHMAcMBuQHLAcIBtgHHAboBsQHGAbgBsAHBAbIBqwHBAbMBrAG9AbEBqQG3 + Aa0BqAHVAc0ByAL/AfwB/wH+AfwB/wH9AfwB/gH9AfwB/wL9Af8B/QL/Af0C/wH8Av8C/AHLAccBxAHI + AcMBuQHXAdABvgHfAdcBvgHnAd4BwQHoAeEBwwHmAeIBxQHiAd8BwQHhAeABwQHjAeIBwQHlAeQBwQHi + Ad8BvAHnAeQBwQHkAeIBwgHjAeEBxwLdAcgC6AHaAvQB6wH7AfoB9gH/Af0B/gH/Af4B/wH+AfwB/gH/ + Af4C/wH+tf//AP8A/wD/AP8A/wAbAJL/Af4C/wH9AvwB+gL/AfwC/wH8AfYB9AHyAeAB3QHaAdIBzgHM + Ac8BygHIAdgB0wHQAd4B2AHWAecB4QHfAfEB6wHqAfYB8AHuAeEB2gHYAc8ByAHHAdMBzQHKAfwB9QHx + Af8B+gH3Af8B+AH5Af8B/AH9Af8C/AH/AfoB9wH+AfYB8QH8AfUB7gH3Ae8B6gH3Ae4B6AHqAd8B2wHh + AdcB0gHZAdABywHQAcgBxAHhAdsB2AH/AfwB+wH/Av4B/wH+Av8C/gH/Af4C/wH9Av8B/QL/AfwC/wH8 + Af8BxgHBAcABuwG1Aa4BwQG5AasBxgG8AagBzQHCAawB1wHNAbQB4wHaAcIB6AHjAckB5AHhAcUB4wHi + AcQB5gHkAccB4wHhAcIB5wHlAccB5AHjAcYB5QHkAcsC4AHLAuQB1QHxAfIB6AL6AfUB/wL9Af8B/gH/ + Af4B/QL/Af4C/wH+tf//AP8A/wD/AP8A/wAbAJL/Af4C/wH9Av8B/AL/AfwB8wHxAe8B2QHXAdUB0AHM + AckB2wHXAdYB8ALrAf0B+QH3Af8B+wH5Af8B/QH8Af8B/gH9Af8B/gH9AeAB3AHbAc4BygHIAdcB1AHR + Av8B+wL/AfwB/QH7AfwB/wH9Av8B/AL/Af0C/wL+Af8B/gH9Af8B/QH8Av8B/QL/Af0C/wH9Av8B/QH+ + AfwB+wH8AvsB/wH+Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9Af8B/QH8Af8B/QH8Af0BxgHCAcABuQG0 + Aa0BvgG2AakBwAG0AagBwAGzAagBwQGzAagBywG8Aa4B0QHGAbYB5AHeAckB4wHhAckB5QHjAcsB4wHh + AcoB4wHhAcoB4QHgAckC4wHNAeMB5AHQAeIB4wHTAvEB5wL6AfUC/gH8Af8B/gL/Af0C/wH+Av8C/rT/ + /wD/AP8A/wD/AP8AGwCS/wL+Af0B/AL/AfwC/wH8AeIB3wHeAdUB0gHQAe0B6gHoAf4B+gH5Av8B/QL/ + Af0B/wH+Af0B/wH+Af0B/wH+Av0C+wHWAtQBygLIAd0B3AHbAv8B/AH7AfwB+QHnAukB6AHpAesC5wHq + AekB5wHrAekB5gHqAekB5gHoAeoB6AHpAeoB6AHpA+QC7wHuA/wD/QH+A/8B/gH/Af0B/AL/AfwC/wH8 + Av8B/AH/Af4B/AH/AvwB/wL8Af8D/QHIAcYBwQG5AbQBqgG8AbMBqAHAAbMBqAHEAbUBqAHDAbMBqAHE + AbEBqAHAAbABqAG9AbUBqAHMAcgBuAHNAcoBuwHQAc4BwAHTAdEBwgHXAdUBxAHTAdEBwQHeAd0BzALi + AdMC8gHoAfoB+wH2Av4B/AH/Af4C/wH9Av8B/gL/Av60//8A/wD/AP8A/wD/ABsAkv8B/gL/Af0C/wH8 + Af8B/QH8AdsB2AHXAdwB2QHXAv8B/QL/Af0B/wH8AfsC/wH9Af8C/gH/Av4C/wT+AdIC0wHIAsoB4QHi + AeEC/wH9AvYB9QHhAuMB7QHuAe8B8QHyAvMB8gH0AfEB8AHxAfMB8QHyAfYB9AH1AfQC8wHkAeYB5AHs + Ae4B7AH9Af8C/QH/Av0B/gH8Av8B/QH+Af8B/QH+Af8B/gL/A/4B/wL8Af8B+QH8Af8B+QH8Af8B/AH9 + Af4B3gHaAdQBzQHGAbkBxwG7AawBwAGyAagBwAGwAagBwQGxAagBxAGzAagBwAGwAagBwQG2Aa4B6AHi + AdsB5gHhAdwB6AHkAd4B6gHnAeEB5wHkAdwB0AHOAcIB3wHeAdAC4gHVAvMB6QL8AfYC/gH9Af8B/gL/ + Af0C/wH+Av8C/rT//wD/AP8A/wD/AP8AGwCS/wH+Av8B/QH/Af0B/AL/Af0B3gHbAdkB3AHZAdcB/wH+ + Af0B/wH+AfwB/wH+AfwC/wH9Av8C/gL9A/8C/QH+AdAC0QHIAsoB5AHmAeUC/wH+A/QD5AH2AvgB/wH+ + Av8B/gH/Af0B/AH9Af8B/gL/Af4D/wH9AegB6QHnAekB6wHpAf0B/wH9Af4B/wP9AfwC/wH9Af4B/wH8 + Af0B/wH8Af0B/wH9AfkB+wH8AfEB9AH8AesB7wH8AegB7AH9AesB7QH7Ad0B3AHdAd4B2QHQAeYB3QHL + AdsB0AG7Ac0BwQGvAcQBuAGoAcMBtQGoAb0BsAGoAckBwQG5Af8B/gH8Af8C/AH/Af4D/wH9AfoB9wHz + AdABzwHFAt8B0wLjAdcB8wH0AeoC/AH3Av8B/QH/Af4C/wH+A/8B/QL/Af0C/wH+sf//AP8A/wD/AP8A + /wAbAJT/Af4C/wL8Av8B/QH1AfEB8AHaAdcB1AHkAeEB3gH/Af0B+gL/AfwC/wH8Av8B/QL/Af4C/wH+ + A/0B0gLTAcgCyQHnAugD/gP5A+EC+QH6Af8B/QL/Af4C/wH+Av8B/gL/Af4B/QH/Af0B/ALwAe4B7AHt + AesB+gH7AfoD/AbqAeYB5wHkAecB6AHmAeQC5QHgAeIB5gHVAdcB5QHBAcUB3wG1AbkB5QG4Ab0B5QHO + AdIB4wHXAdkB1gHfAd0ByAHnAeMByAHpAeQBzAHjAd0BxgHZAdEBuwHJAcIBsAHPAckBwQH+AfsB+QH/ + Af0C/wH9Av8B/gH/AfkB9wH1As0BwwHiAeMB1wHkAeUB2QH0AfYB7AL8AfgB/wH+Af0B/wH+Av8C/gL/ + AfwC/wH8Av8B/bH//wD/AP8A/wD/AP8AGwCT/wH+AfwB/QH/Af0B/gL/Af0C/wH8AfEB7gHrAd8B3QHY + AeUB4wHfAfYB9AHxAf8B/QH7Av8B/QL/Af0C/wH+AfwB/QH8AdkC2AHKAskB4QLgAf4B/wH+A/YB3wHe + Ad8B/AH6AfwB/wH+Av8B/gH/Af4B/AH9Af8B/gP/Af4C/wH9AuoB6AHqAekB6AL/Af4D+gLaAdsB4QHg + AeEB4wHiAeEB4gHjAeEB4gHkAeMB4gHkAeoB3AHfAe4ByAHMAesBtQG5Ae8BtgG8AfABxAHMAeYB1AHZ + AdsB3gHfAcsB5QHjAcYB5wHkAcoB5wHkAcoB6AHkAcoB5AHhAcsB5AHjAdcC/wH8Af8B/gH9Af8C/AL/ + Af0B+AH3AfIBzwHQAcYB3QHfAdEB5AHnAdsB9QH2Ae0B/QH8AfkB/wH+Av8B/QL/Af0B/gL/AfwC/wH8 + Av8B/bH//wD/AP8A/wD/AP8AGwCU/wH+Av8C/gH/AvwC/wH9Av8B/AH2AfQB8QHnAeQB4QHkAeMB3wH0 + AfMB8AL7AfkC/wH9Av8B/gP8Ad0B3AHbAcsByQHIAeEB4AHeAv0B/AH1AfYB9APeA/oC/gH/Av4B/wH9 + Af4B/wH+Av8D/AL/Af0C6wHqAesB6gHpAv8B/gH2AvUD3gH5AfgB+QP/Af0B/gH9AfwB/gH9AfoB/AH/ + AfQB9wH/Ad0B4AH7AbwBwQHxAbYBuwHtAb4BxQHjAdEB1wLeAd8BzwHjAeIBxQHjAeEBxgHkAeIBxwHn + AeQBywHnAeUB0AHsAe0B3gL/AfYC/wH4Av8B+gL/AfoB/QH+AfQB2wHeAdAB3QHgAdEB5wHqAd0B9gH4 + AfAB/gH9AfsB/wH+Av8B/QH/Af4B/AP/Af4C/wH9Av8B/rH//wD/AP8A/wD/AP8AGwCU/wL9Af8C/gL/ + Af4B/wH+AfwC/wH8Av8B/AH9AfsB+QHxAfAB7QLkAeIC6QHnAfMB9AHzAf0B/gH9Av8B/QHlAeQB4gHK + AccBxQHdAdoB1wL/AfwC+gH2AuEB3wH3AfkB+AH6A/wC/gH8Af0B/gH7AvwB/QL+A/wC6wHqAe4B7QHs + Av8B/gH1AvQD4AP8Af8B/gH/AfwD/QH/Af0B/AH+Af8B+gH8Af8B6wHuAf8BxwHLAfYBuAG/Ae0BugHB + AeQBzgHUAeIB3gHgAdMB4gHjAcgB5QHkAcgB5gHkAcgB5QHkAcoC5AHNAeYB6AHVAe4B8QHgAe4B8QHj + AfEB8wHlAe8B8QHkAfEB8wHlAeIB5QHVAeQB5wHXAesB7gHgAfkB+gHxAf8B/gH8Af8B/gL/Af0B/wH+ + AfwC/wH+Av8C/rT//wD/AP8A/wD/AP8AGwCU/wH+Af8B/gH8Af0C/wL+Af8B/QH7AfwB+gH+Af8B/AL/ + Af0C/wH9Af8B/gH9AfYB9QH0AfAB8QHwAfQB9gH0Av0B+wHyAfAB7QHQAcoByAHYAdIBzwH/AfsC9gHz + Ae4B4QHfAd0B/wH+AfwC/wH+Af0C/wH9Av8B/gX/Af0C/AHtAusB7QHsAesC/wH9AfcC9gLgAd8B+gL7 + AvwB/QH7A/wB/wH9AfwC/QH8Af0B/wH1AfcB/wHUAdgB+wG+AcQB7QG6AcEB5wHJAdAB5AHZAd0B1wHf + AeIBygHkAeUByALoAcoB5gHnAc0B5QHnAdAB4wHlAdAB4gHmAdAB4gHlAdEB4wHmAdMB3gHiAc8B5AHo + AdYB4QHlAdMB5AHoAdcB8AHyAeYC/AH0Av8B/AH/Af4C/wH9Af8B/gH8Av8B/gL/Af61//8A/wD/AP8A + /wD/ABsAlP8B/gH/Af4B/QH+BPwB/gL9Af8C/QH/Af0C/wH+Af8B/gH9Af8B/gL/Av4B+wL8AfoB/AH6 + Av8B/AH6AfcB9AHGAb8BugG7AbIBrQHCAboBtAG/AbgBsgG+AbgBtAH0AfEB7gL/Av0F/AH/Af4C/wH9 + Af4B/wH+Af8B7gLsAesB6QHoAv8B/QL3AfYD3gH7AvwB/QH+Af8B/QL/Af0B/wH9AfwB/gL9Af4B/wH6 + AfwB/wHjAecB/wHHAc0B8QG5AcEB6QHCAcoB5QHVAtoB3gHhAc4B4gHkAccB5AHmAccB4wHlAcsB4wHm + Ac4B4wHoAdAB4gHoAc8B5AHpAdIB5gHrAdUB5AHqAdUB5QHqAdUB4wHnAdQB4wHnAdcB9QH3AesB/QH/ + AfcB/gH/AfwB/wH+Av8B/gH/Af4B/AL/Af4C/wH+tf//AP8A/wD/AP8A/wAbAJP/AfoB+AH5Af8B/gH/ + Af0C/wH7Af4B/QH7Af8C/QH/BP4B/wL9Af4B/AH9Af8B/gH/Af0C/wH9Af8B/QL/AfwB/wH9AfkByAHA + AroBrwGpAbwBrwGoAb0BsAGqAcEBuAGyAfkB8gHwAf8B/gH9Af8C/AH9AfsB/AH/Af0C/wH8Af0B/gL8 + AfEC7gHvAusC/wH9AfkB+AH2Ad4B3wHeAfYC9wH9Av8B/QL/Af0B/wH9Af4B/wH9Af4C/QL8Af8B7wH0 + Af8B0QHXAfUBugHBAesBvgHFAeUB0QHYAd4B3wHkAdYB4wHlAcoB5QHoAcgB5AHoAc0B4wHoAdAB5AHq + AdAB4wHqAdAB4wHqAdAB4wHpAdEB5wHtAdYB5QHrAdYB5QHrAdcB6gHtAd4B+QH8AfEC/wH6Af0B/gH7 + Af8B/gH9Af8B/gH/Af4B/QH+A/8D/rT//wD/AP8A/wD/AP8AGwCU/wH+Av8B/gH/AfwC/wH7Av8B+gH+ + Af0B/AP/Af4C/wH+Av8B/gH/Av0B/gH8Af4B/wH8Av0C/wH8Av8B/AHJAcEBuwG+AbEBqwHCAbIBrAHC + AbMBrQG8Aa8BqwHkAdoB1wHlAd8B3gHjAd4B3wHiAd8C4AHeAd8B4gHeAd8B4wHeAd8B5ALfAeEC3gHj + AeAC3wLeAdsB3AHaAfsD/AH+Av0B/wH+AfwB/QH8Av8B/QH/AfwB/QH+Af0B/wH3AfwB/wHbAeIB+AG/ + AccB7gG7AcQB5wHNAdUB4AHbAeEB2QHfAeQBywHkAecByAHiAecBzAHgAecBzQHiAegB0AHkAesB0gHk + AeoB0QHiAegB0AHnAe0B1wHkAekB1QHmAeoB2QHuAfEB5AH8Af0B9QL/AfsC/QH7Af4B/QH8Av8C/gH/ + Af4C/wP+Af20//8A/wD/AP8A/wD/ABsAlP8B/gL/Af4B/wH8Av8B+wL/AfsC/wH8Av8B/gP/Af4C/wH+ + Af8E/QL/AfoB/AH7Av8B/AL/AfwByAHAAboBuQGtAagBwgGzAa0BwAGwAakBwQG0Aa8B8AHmAeQB9wHx + AfAB9gHyAfMB8QHuAvAB7QHvAfEB7QHuAfYB8gHzAegC5AHpAuUB8wHxAvAB7wHuAfIB9AHyAfoB/AH6 + Af0B/wH+Af0B/wH+Af0B/wH+Av8B/gH/Af4C/wH+Af8B+gH9Af8B6AHuAf4ByAHQAfQBugHEAecByAHR + AeIB2AHfAd0B3wHjAc4B5AHnAcoB4wHpAc0B4QHoAc4B4wHpAdAB5QHrAdMB5AHrAdMB5AHrAdQB5QHr + AdYB5AHpAdcB6gHtAd8B9gH5Ae4C/wH6Av8B/AL/Af0C/wH9Av8B/QL/Af4C/wH+Av8B/rT//wD/AP8A + /wD/AP8AGwCR/wH+Av8B/gL/Af4B/wH8Av8B+wL/AfsC/wH8Av8B/gP/Af4B/wH9AfwB/QL8Av0C/wH9 + Af8B/gL/Av0B+wH3Ac4BxgHBAcIBuAGyAcEBswGtAbwBrwGpAccBvAG4AfwB9QHyAf8B/gL9AvsB/gL8 + Af8B/gL/Af0B/gH/Av0B7wLrAfEC7QH+AvwB/gH9AvwB/QH8Af0B/wL9Af8B/QH8Af8B/QT/Af4C/wH+ + Af8B/QL8AfsB/QH/AeoB8AH7AdAB2AH2Ab8ByAHqAccB0AHkAdYB3QHfAd4B4gHQAeMB5wHLAeMB6gHN + AeMB6gHOAeQB6gHRAeMB6AHRAeQB6wHUAeYB7AHXAeQB6QHXAeUB6QHZAfAB8wHoAfwB/wH2Av8B/AL/ + AfwC/wH9Av8B/gL/Af4C/wH+uv//AP8A/wD/AP8A/wAbAJH/Af4C/wH+Av8B/gH/Af0C/wH8Av8B/AL/ + Af0B/wH+B/8B/gH/Av0B/gH8Af4B/wH8Av0C/wH9Av8B/AH5AfIB8AH8AfQB8AHmAd4B2AHPAcgBwQHm + AeEB3QL/AvwB+wH6A/8B/QH8Af0B/AH7AfwB/wH+Av8C/QHtAusB7QHrAeoB/AH7AfoC/wH9Af4B/wH+ + AfwB/QL8Af0C/AH9BPwB/QL8Af0B+gH7AfkB9wH4Af0C/wH4AfwB/wHaAeMB+gHFAc8B6wHFAc8B5AHS + AdsB4QHeAeIB1QHjAeYBzgHkAekBzgHjAesBzwHkAesB0QHiAegB0QHlAesB1gHlAesB1wHjAecB1wHr + Ae4B4gH5AfsB8wL/AfsC/wH8Av8B/gT/Af4B/wH+Av8B/gL/Av4B/wH+A/8B/rL//wD/AP8A/wD/AP8A + GwCR/wH+Av8B/gL/Af4B/wH9Av8B/QL/Af0B/wH+Af0B/wH+Av8B/gb/Af4C/wH8Av4B/AL+AfsC/AL/ + Af0B/wH9AfwC/wH8Af4B+wH2AeIB3wHbAdABzgHLAfgB9wH2Av8B/gH5AvsB/QL/AfwC/QP/A/wB6wHq + AegB4wHhAeAB5gHlAeQB5QLkA+MB4AHhAuAB4gLgAeIB4AHiAuEB5QHjAeQB5wHkAuUB4wHkA/sB+QH8 + Af8B4wHrAf0BywHVAe0BxAHNAeMB0AHXAeIB3QHiAdgB4wHmAdAB4wHoAc4B5AHqAc4B4wHqAdAB5AHr + AdQB5AHqAdcB4wHmAdcB5QHpAd0B9AH2Ae4C/wH6Av8B/AL/Af0E/wH+Av8B/gH/Av4B/wL+Af8C/gH/ + Av4C/wH+sv//AP8A/wD/AP8A/wAbAJH/Af4C/wH+Av8B/gH/Af4C/wH+BP8B/QL/Af0C/wH9Av8B/gP9 + AfwD/QL/Af0C/wH9Av8B/gH/Af4B/wH9AfwB/wH9AfwC/wH8AvgB9QLQAc4B2wHcAdsB/AH9Af4B/QL/ + AfwD/QL/Af0C/gL/Af4C+QH3AvQB8wH2AfUB9AH2AvUD9wP4A/YC9wH2AfcC9gH4AvYB8wHxAfMB6AHm + AegB/gH8Af4B/AH9Af8B6gHxAf0B0QHcAe4BxAHOAeMBzAHVAeEB3QHiAdoB4wHlAdEB4wHnAc8B5AHp + Ac4B4wHpAdAB5AHqAdMB4QHmAdQB5AHnAdkB8QHzAeoB/AH9AfgB/gH/AfwC/QH8BP8B/gH/Av4B/wL+ + Af8C/gH/Av4B/wL+Af8C/gL/Af6y//8A/wD/AP8A/wD/ABsAkf8B/gL/Af4C/wH+Av8B/gP/Af4C/wH9 + Av8B/QL/Af0C/wH9Av8B/gH9Af8B/gH8Af0B/gH9Av8B+wH8Af0B/AL9BP8C/gL9AfwB/gH/Af0B+gH8 + AfsB2QLaAuUB5wL+Af8B/QH+Af8B/gT/Af4C/wH9Av8B/QL/Af0C/wH+Af8E/gH/Af4B/QL/Af4G/wH9 + Av8B/QH5AfcB+AHmAeQB5gH9AfoB/QL8Af8B7gH1Af0B2AHjAfABxQHQAeMBygHTAd8B2wHgAdoB4QHk + AdMB4wHmAc8B5AHnAc4B4wHpAdAB4gHoAdIB4wHnAdcB7QHwAeUB/AH9AfcC/wL8Af0B/Af/Af4B/wH+ + Av8B/gL/Av4B/wL+Af8B/gL/Af62//8A/wD/AP8A/wD/ABsAkf8B/gL/Af4C/wH+Av8B/gP/Af4C/wH9 + Av8B/AL/AfwC/wH9Av8B/gH9Av8B/QL/Af0C/wH9Av8B/QL/Af0B/gH/Af4C/wH8Av0D/gH/Af4B/wH4 + AfYB+AHsAesB7AHvAe0B7gH/Af4B/wH+AfwC/QL8Av0B/AL/Af0C/wH9Av8B/gT/Af4C/wH+Av8B/QL/ + Af4C/wH9AfwC/wH8AfkB9wH4AeQB4gHlAf4B+gH/Af0B/AH/AfMB+QH+Ad8B6gHyAcgB0wHkAcgB0QHf + AdgB3gHZAeEB5AHSAeQB5gHQAeQB5wHPAeMB6AHQAeUB6wHXAe8B8wHkAfkB/AHzAv8B/AP/Av0B/gH/ + Af4H/wH+Av8B/gL/Af0C/wH9Av8B/QH/Av4B/wH+tP//AP8A/wD/AP8A/wAbAJH/Af4C/wH+Av8B/gL/ + Af4D/wH+Av8B/QL/Af0C/wH9Av8B/QL/Af4B/QL+Af0C/wH8Af0B/gH8Af0B/wH9Av8B/QH+Af8B/AL9 + Af4C/wH+Af0D/gL/Af0B/gH/Af4B/wH5AfcB+QH9AvwB/wH+A/8B/gH/Af4B/QL/AfwC/wH9Af8B/gT9 + Af8B/QH+Af8B/gL/Af0C/wH+Af8B/gH9AfwC/wL8AvoB5QHiAeQB/wH7Av8B/AH/AfgB/AH/AeYB7gH2 + AcsB1QHmAcgB0AHeAdcB3gHZAd4B4wHTAeQB5QHRAeQB5gHQAeIB5gHTAe0B8QHjAfwB/wH0Av8B+wL9 + AfwB/wH+Av8B/gH/A/wF/wL+Af8C/gH/Av4C/wH9Av8B/gH/Av4B/wH+tP//AP8A/wD/AP8A/wAbAJT/ + Af4C/wH+Cf8B/gL/Af4C/wH+Av8B/gb/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/ + Af4K/wH+Av8C/gH9AfwC/gH8Av4B/AH+Af0B/AH/Af4B/QL/Af0C/wH9A/8C/gH/Av0B/wH+Af8B/QL/ + AfwB+wH3AfYB7wHpAegB/AL0Af8C/gH6AfwB/QHsAfIB+QHQAdcB6QHHAdEB3gHUAd4B2QHXAd8B0QHe + AeEB0AHoAeoB2gH5AfsB8gH7AfwB9wL/AfwC/wH9Av8G/hP/Af68//8A/wD/AP8A/wD/ABsAw/8B/gH/ + Af4B/QH/Af4B/QH/Af4B/QH/Av4B/wL+Af8B/gL/Af0C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Av0B/AH7 + Af8B/gH9Av8B/gH/Af4C/wH+Af8C/QH8AeoB6AHlAd0B1gHTAdcBzgHKAeEB1wHTAegB4QHfAf4C/wHz + AfcB/wHVAdsB7gHHAc8B4AHTAt0B3gHmAd4B7gHxAeYC/AH0AvwB+QP8Cf8G/s///wD/AP8A/wD/AP8A + GwDD/wH+Af8C/gH/Av4B/wL+Af8C/gH/Av4B/wH+Av8B/gL/Av4B/wH+A/0B/gL9A/wC9gH1Ae8C7gHw + Au8B9gL0Af0C+wH/AfwB+wH9AfoB9wHXAdEBzwG9AbEBrgG5AasBqAG8Aa8BqQHGAbwBuQH/Af4B/wH2 + AfkB/wHXAdwB9AHLAdAB6AHeAeQB7QHxAfUB9gH+Af0B+wL/AfwC/wH9A/8S/sz//wD/AP8A/wD/AP8A + GwDF/wL+Af8B/gL/Av4B/wH+Av8B/gL/Af4C/wH+Av8C/gH/BP4E/wH+Af8D/APxAegB5wHoAeUC5AHg + AtwB3wHbAdoB5QHgAd4BygHBAb8BvAGuAaoBwgGzAa4BwQGxAasByQHAAboB/wH9Af8B9wH5Af8B2wHe + AfkB0QHWAfAB6AHsAfoB+wH9Av8B/gL/Af0B/Ab/Cf4G/wP+zP//AP8A/wD/AP8A/wAbAMX/Af4C/wH9 + Av8B/gL/Af4C/wH+Av8B/gn/Av4B/wX8A/0B/gL9Af8C/QH/Af4B/AH+Af8B+wH8Af8B+QH6Af4C9wHX + Ac4BzQG8Aa0BqwG/Aa4BqQG7Aa0BqAHHAb4BtwH/Av0B9wH7Af8B3QHhAfoB0wHYAfEB6AHtAfoB+QH8 + Bf8B/gH8Av8B/gP/Bv4J/wP+zP//AP8A/wD/AP8A/wAbAML/Af4C/wH+Av8B/QL/Af4C/wH+Av8B/gL/ + Af4E/wH+Af8B/QH8Af0B/wH+Af8C/gH/Av4B/wL+Af8B/gH9Af8B/gH9Av8B/QL/Af0C/wH+Av8C/gHi + AdoB2QHIAbsBuQHLAb4BuQHLAcEBuAHUAc4ByAL+Af8B8wH4Af8B2AHeAfUB1AHaAfEB6wHxAf0B+QH9 + Af8B/QT/Af0B/wj+DP8D/sz//wD/AP8A/wD/AP8AGwDC/wH+Av8B/gL/Af0C/wH9Av8B/QL/Af4C/wH+ + BP8B/gL/Af4C/wH+Af8C/gH/Af0B/AH/AfkB+gH8AfgB+QH8AfsB/AH/Av4B/wH8AfoB+wL/Af0C/wH9 + Af8B/gH8Af8B/AH6Av8B/AL/AfoB/wH+AfwB+wH9Af8B6wHzAf8B0wHaAfAB1wHeAfQB8gH5Af8B+QH9 + Af8B/AH9Af8B/QH+Af0J/gz/A/7M//8A/wD/AP8A/wD/ABsAwv8B/gL/Af4C/wH9Av8B/QL/Af0C/wH+ + Av8B/gH/Af4C/wH+Av8B/gH/Af4B/QH/Av0B/wH+Af0B/wL6Af0C9gH5AvcB+wL8Af8C/gH/Af0C/wH6 + AvwB/QP/Af4C/wH8Av4B/AP9Af8B9QH6Af8B5wHvAf0B1AHdAfEB3QHlAfcB9QH7Af8B+QH9Af8B+QH7 + AfwB/gj/D/7P//8A/wD/AP8A/wD/ABsAwv8B/gL/Af4C/wH9Av8B/QL/Af0C/wH+Av8B/gH/Af4C/wH+ + Av8B/gL/Af4B/wH+Af0B/wH+Af0B/wL9Af8C+gH9AvMB9gLtAfEC+QH+AfoB/AH/AfkB/QH/AfgB/QH/ + AfkB/AH/AfgB+wH/AfkB/AH/AfgB/AH/Ae8B9QH/AdoB4QHzAdgB3wHyAesB8QH/AfcB/AH/AfoB/QH/ + Af3p//8A/wD/AP8A/wD/ABsAwv8B/gL/Af4C/wH9Av8B/QL/Af0C/wH+Av8B/gT/Af4B/wL9Af8B/QH8 + Af8C/QH/Af4B/QH/Af0B/gH/AvwB/wH4AfkB/AL1AfoB5wHoAe8B6gHrAfQB7QHzAfoB8wH6Af8B9gH8 + Af8B9gH7Af8B8QH2Af8B7AHxAf8B3AHiAfUB2QHfAfEB5QHrAfkB9wH8Af8B+wL/Af0B/wH9Av8B/QL/ + Af0C/wH+4f//AP8A/wD/AP8A/wAbAML/Af4C/wH+Av8B/QL/Af4C/wH+Av8B/gL/Af4E/wH+Af8C/QH+ + Av0B/gL9Af8C/QH/Av4B/wH+Af0B/wH+Af0B/wL8Af8B9AHzAfwB7QHuAfgB5AHqAfMB3wHnAfEB3wHl + AfQB3gHkAfQB3QHiAfEB2gHfAfAB3gHjAfYB5gHqAfoB9gH6Af8B+wL/Af4B/wH8Av8B+QL/AfoC/wH7 + Av8B/eH//wD/AP8A/wD/AP8AGwDF/wH+Av8B/QL/Af4C/wH+Av8B/gL/Af4K/wH+Av8B/gH/Av4C/wH+ + Af8C/gL/Af4B/wH+Af0B/wH9AfwB/wH6AfwB/wHxAfYB/QHqAfEB+gHlAewB+AHkAesB9wHnAewB+AHo + AewB+gHxAfQB/wH3AfkB/wH7Af0B/wH+Af8B/QL8AfYC/wH4Av8B+gL/AfsC/wH94f//AP8A/wD/AP8A + /wAbAMX/Av4B/wH+Av8C/gH/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gf/Af4C/wH+Af8C/gL/Af4C/wH+ + Af8C/AH9AfwB/gH/AfkC/wH3Av8B9wH+Af8B+AH9Af8B+QH9Af8B+gH9Af8B+gH8Af8B+wH8Af8B/QH+ + A/8B/AH/Af4B+wL/AfwC/wH8Af8B/gH8Av8B/uH//wD/AP8A/wD/AP8AGwDD/wH+Af8C/gH/Av4B/wL+ + Af8C/gH/Av4B/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gH/Av4B/wL+Av8B/gP9AfwB/gH9 + AfoB/wH9AfgB/gH9AfkB/AH+AfkC/QH8Af4B/QH8Af4B/wH6AfsB/wL8Af8B/QH+A/8B/QL/Af0B/wL+ + Af8B/uj//wD/AP8A/wD/AP8AGwDD/wH+Af8B/gH9Af8B/gH9Af8B/gH9Af8C/gH/Av4B/wH+Av8B/QL/ + Af0C/wH9Af4B/wH9Af8B/gH9Af8B/gH9Av8B/QL/Af0C/wH9Af8C/gH/Af4B/wH9Af4B/wH8Av8B/AL/ + Af0C/wH+Af8B/gL/AfwC/wH9AvwB/wL8Af8B/gT/Af4B/wH9Av8B/AH/Av0B/wH9Af4B/wH+4///AP8A + /wD/AP8A/wAbAMP/Af4B/wH+Af0B/wL+Af8C/gH/Av4B/wL+Af8B/gL/Af4C/wH9Av8B/gL/Af0B/wH+ + Af0C/gH8Av8B/QL/Af0C/wH9Af8B/gH9Af4B/QH+Av0B/wH8Af0B/wH9Af4G/wH9Av8B/AL/AfwC/QH/ + Av0B/wH+Bv8B/QL/Af0B/wH9Af4B/wH9Af4B/wH+4///AP8A/wD/AP8A/wAbAMb/Af4T/wH+Bf8B/gX/ + Af4C/wH+Av8B/gL/Af4H/wH+Af8B/gL/Af4H/wH+Av8B/QL/Af0B/wH+Af8C/gj/Af4C/wH+Af8B/gL/ + Af7m//8A/wD/AP8A/wD/ABsA/////wn//wD/AP8A/wD/AP8AGwD/////Cf//AP8A/wD/AP8A/wAbAP// + //8J//8A/wD/AP8A/wD/ABsA/////wn//wD/AP8A/wD/AP8AGwD/////Cf//AP8A/wD/AP8A/wAbAP// + //8J//8A/wD/AP8A/wD/ABsA/////wn//wD/AP8A/wD/AP8AGwD/////Cf//AP8A/wD/AP8A/wAbAP// + //8J//8A/wD/AP8A/wD/ABsA/////wn//wD/AP8A/wD/AP8AGwABQgFNAT4HAAE+AwABKAMAAbQBAgIA + AW4DAAEBAQABAQUAAdABJRYAA///AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A + /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/APYACw== + + + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/MainTab.Designer.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/MainTab.Designer.cs new file mode 100644 index 00000000..f3009e16 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/MainTab.Designer.cs @@ -0,0 +1,26 @@ +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + partial class MainTab + { + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + //private void InitializeComponent() + //{ + // components = new System.ComponentModel.Container(); + // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + //} + + #endregion + + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabPage tabPage2; + + private System.Windows.Forms.VScrollBar compositionVScrollBar; + private System.Windows.Forms.MenuItem contextConfigurationAdd; + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/MainTab.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/MainTab.cs new file mode 100644 index 00000000..ab436d3f --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/MainTab.cs @@ -0,0 +1,2368 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using DotSpatial.Controls; +using Oatc.OpenMI.Gui.Core; +using System.Threading; +using System.IO; +using System.Diagnostics; +using Microsoft.Win32; +using System.Reflection; +using System.Collections; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + public partial class MainTab : UserControl + { + #region Window controls + + private HScrollBar compositionHScrollBar; + private PictureBox compositionBox; + //private VScrollBar compositionVScrollBar; + + private MainMenu mainMenu1; + private ToolStripMenuItem menuItem15; + private ToolStripMenuItem menuItem17; + private ToolStripMenuItem menuItem18; + + private ToolStripMenuItem menuFileNew; + private ToolStripMenuItem menuFileOpen; + private ToolStripMenuItem menuFileSave; + private ToolStripMenuItem menuFileSaveAs; + private ToolStripMenuItem menuFileExit; + private ToolStripMenuItem menuEditModelAdd; + private ToolStripMenuItem menuModelAttachTrigger; + private ToolStripMenuItem menuHelpAbout; + + private ToolStripMenuItem menuFileReload; + private ToolStripMenuItem menuViewModelProperties; + private ToolStripMenuItem menuEditConnectionLinks; + private ToolStripMenuItem menuFile; + private ToolStripMenuItem menuEditRunProperties; + private ToolStripMenuItem menuHelp; + private ImageList imageList; + private ToolStripMenuItem menuCompositionSpacer; + private ToolStripMenuItem menuComposition; + + private System.Windows.Forms.ContextMenu contextMenu; + private System.Windows.Forms.MenuItem contextConnectionEditLinks; + private System.Windows.Forms.MenuItem contextModelAttachTrigger; + private System.Windows.Forms.MenuItem contextRun; + private System.Windows.Forms.MenuItem contextConnectionAdd; + private System.Windows.Forms.MenuItem contextModelProperties; + private System.Windows.Forms.MenuItem contextConnectionProperties; + private System.Windows.Forms.MenuItem contextModelRemove; + private System.Windows.Forms.MenuItem contextConnectionRemove; + private System.Windows.Forms.MenuItem contextModelAdd; + #endregion + + #region Member variables + + readonly Cursor _sourceCursor; + readonly Cursor _targetCursor; + + bool _isAddingConnection = false; + UIModel _sourceModel = null; + + bool _isMovingModel = false; + Point _prevMouse; + + object _contextSelectedObject; + + readonly CompositionManager _composition; + + Point _compositionBoxPositionInArea; + Rectangle _compositionArea; + + const string ApplicationTitle = "OATC OpenMI Editor 2.0"; + + private ToolStripMenuItem menuHelpContents; + private ToolStripMenuItem menuItem3; + private ToolStripMenuItem menuOptions; + private ToolStripMenuItem menuRegisterExtensions; + + private ToolStripMenuItem menuItem2; + private ToolStripMenuItem menuEditConnectionAdd; + private ToolStripMenuItem menuItem1; + private ToolStripMenuItem menuItem4; + private ToolStripMenuItem menuExamples; + private ToolStripMenuItem menuExample1; + private ToolStripMenuItem menuExample2; + private ToolStripMenuItem menuExample3; + private ToolStripMenuItem menuExample4; + private ToolStripMenuItem menuItem5; + private ToolStripMenuItem popup; + + // pre-created dialogs + ModelDialog _modelDialog; + ConnectionDialog _connectionDialog; + AboutBox _aboutBox; + RunProperties _runProperties; + RunBox _runBox; + + //a toolbar button added by the plugin + private ToolStripButton btnHydroModelerPlugin = null; + //a menu item added by the plugin + private ToolStripMenuItem mnuHydroModelerPlugin = null; + //reference to the main application and it's UI items + private IMapPluginArgs _mapArgs; + + // record the culture that the application starts in + readonly System.Globalization.CultureInfo _cultureInfo = Application.CurrentCulture; + + #endregion + + /// + /// Creates a new instance of MainForm window. + /// + public MainTab(IMapPluginArgs args) + { + // + // Required for Windows Form Designer support + // + + _mapArgs = args; + + _prevMouse = new Point(0, 0); + + // create dialogs + _modelDialog = new ModelDialog(); + //_connectionDialog = new ConnectionDialog(); + _aboutBox = new AboutBox(); + _runProperties = new RunProperties(); + _runBox = new RunBox(); + + + _compositionBoxPositionInArea = new Point(0, 0); + + InitializeComponent(); + + _composition = new CompositionManager(); + + _prevMouse = new Point(0, 0); + + //_sourceCursor = new Cursor(GetType(), "Source.cur"); + //_targetCursor = new Cursor(GetType(), "Target.cur"); + + menuRegisterExtensions.Checked = Utils.AreFileExtensionsRegistered(Application.ExecutablePath); + + + } + + + + + #region Methods and properties + + /// + /// Method is used to start application. + /// + /// Command-line arguments. + /// Method proceeds all command-line args ("/opr %", "/reg", ...) + /// and perform requested actions. + private static void ProcessCommandLineArgs( string[] args ) + { + // read commad-line args + string oprFilename = null; + string omiFilename = null; + bool mta = false; + + for( int i=0; i + /// Opens composition from OPR file. + ///
+ /// Full path to OPR file. + private void OpenComposition(FileInfo oprFile) + { + try + { + _composition.Open(oprFile); + + UpdateTitle(); + + CompositionUpdateArea(); + CompositionCenterView(); + } + catch( Exception ex ) + { + FinalCatchAndDisplay("Open Composition", ex); + } + } + + + /// + /// Adds one model to composition. + /// + /// Full path to OMI file. + private void AddModel(FileInfo omiFile) + { + try + { + UIModel model = new UIModel(); + model.OmiDeserializeAndInitialize(omiFile); + + _composition.ModelAdd(model); + + if (_composition.Models.Count == 1) + _composition.Models[0].IsTrigger = true; + + } + catch( Exception ex ) + { + FinalCatchAndDisplay("Cannot add " + omiFile.FullName, ex); + } + + // Reset the culture every time a new model is added. + // The new model may be of a different culture, we want to retain the original culture of the application, + // which will be that of the User's computer. + Application.CurrentCulture = _cultureInfo; + + CompositionUpdateArea(); + UpdateTitle(); + Invalidate(); + } + + + /// + /// Method calculates size of composition area and it's scroll-bars according to + /// position of models' rectangles and size of the window. + /// + /// + /// This method is called if some model has moved, main window has resized or if new file was opened. + /// + private void CompositionUpdateArea() + { + Point topLeft = new Point( 0, 0 ), + bottomRight = new Point( 0, 0 ); + + foreach( UIModel model in _composition.Models ) + { + topLeft.X = Math.Min( topLeft.X, model.Rect.X ); + topLeft.Y = Math.Min( topLeft.Y, model.Rect.Y ); + + bottomRight.X = Math.Max( bottomRight.X, model.Rect.X + model.Rect.Width ); + bottomRight.Y = Math.Max( bottomRight.Y, model.Rect.Y + model.Rect.Height ); + } + + // increase size of area + topLeft.X -= compositionBox.Width / 2; + topLeft.Y -= compositionBox.Height / 2; + bottomRight.X += compositionBox.Width - compositionBox.Width / 2; + bottomRight.Y += compositionBox.Height - compositionBox.Height / 2; + + _compositionArea = new Rectangle( topLeft.X, topLeft.Y, bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y ); + + // update scrollbars + + compositionHScrollBar.Minimum = _compositionArea.X; + compositionHScrollBar.Maximum = _compositionArea.X + _compositionArea.Width; + compositionHScrollBar.LargeChange = compositionBox.Width; + //compositionHScrollBar.Value = compositionHScrollBar.Value; // don't change Value, but call ValueChange event + + + compositionVScrollBar.Minimum = _compositionArea.Y; + compositionVScrollBar.Maximum = _compositionArea.Y + _compositionArea.Height; + compositionVScrollBar.LargeChange = compositionBox.Height; + //compositionVScrollBar.Value = compositionVScrollBar.Value; // todo + + compositionScrollBar_ValueChanged(null, null); + + compositionBox.Invalidate(); + } + + + /// + /// Sets composition box to center. + /// + private void CompositionCenterView() + { + // todo... + } + + private Point CompositionWindowPointToAreaPoint( Point point ) + { + return( new Point(_compositionBoxPositionInArea.X+point.X, _compositionBoxPositionInArea.Y+point.Y) ); + } + + private Point CompositionAreaPointToWindowPoint( Point point ) + { + return( new Point(point.X - _compositionBoxPositionInArea.X, point.Y - _compositionBoxPositionInArea.Y) ); + } + + + private void UpdateTitle() + { + string path = "?.opr"; + string readOnly = string.Empty; + + if (_composition != null && _composition.FileOpr != null) + { + if (_composition.FileOpr.FullName.Length < 40) + path = _composition.FileOpr.FullName; + else + path = _composition.FileOpr.FullName.Substring( + _composition.FileOpr.FullName.LastIndexOf(Path.DirectorySeparatorChar) + 1); + + if (_composition.FileOpr.IsReadOnly) + readOnly = ", READ ONLY"; + } + + Text = string.Format("{0}: {1}{2}{3}", + ApplicationTitle, path, + _composition.ShouldBeSaved ? " *" : "", + readOnly); + } + + /// + /// If composition should be saved, this method shows message box, where the user can do it, can + /// ignore it or can cancel current operation. + /// + /// Returns true if current operation can continue, or false + /// if user pressed cancel button. + private bool CheckIfSaved() + { + if( _composition.ShouldBeSaved ) + { + switch( MessageBox.Show("The composition has been changed.\n\nDo you want to save the changes?", "Warning", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) ) + { + case DialogResult.Yes: + OnSave(null, null); + return( !_composition.ShouldBeSaved ); + case DialogResult.No: + return( true ); + default: + return( false ); + } + } + return( true ); + } + + + private void ShowLinkDialog( UIConnection link ) + { + ConnectionDialog dlg = new ConnectionDialog(_composition.Models); + dlg.PopulateDialog(link); + if (dlg.ShowDialog(this) == DialogResult.OK) + _composition.ShouldBeSaved = true; + + UpdateTitle(); + } + + + private UIModel GetModel( int x, int y ) + { + Point areaPoint = CompositionWindowPointToAreaPoint( new Point(x,y) ); + + // search from last model to first for case some models are overlapping + for( int i=_composition.Models.Count-1; i>=0; i-- ) + { + UIModel model = (UIModel)_composition.Models[i]; + + if( model.IsPointInside(areaPoint) ) + return( model ); + } + + return( null ); + } + + + private UIConnection GetConnection( int x, int y ) + { + Point areaPoint = CompositionWindowPointToAreaPoint( new Point(x,y) ); + + for( int i=_composition.Connections.Count-1; i>=0; i-- ) + { + UIConnection connection = (UIConnection)_composition.Connections[i]; + + if( connection.IsOnConnectionLine(areaPoint) ) + return( connection ); + } + + return( null ); + } + + + private void StopAddingConnection() + { + _isAddingConnection = false; + compositionBox.Cursor = Cursors.Default; + _sourceModel = null; + } + + private void StopMovingModel() + { + _isMovingModel = false; + foreach( UIModel model in _composition.Models ) + model.IsMoving = false; + compositionBox.Invalidate(); + } + + + private void StopAllActions() + { + StopAddingConnection(); + StopMovingModel(); + } + + + #endregion + + #region MainForm event handlers + + private void MainForm_Load(object sender, EventArgs e) + { + MainForm_SizeChanged(sender, e); + UpdateTitle(); + CompositionUpdateArea(); + } + + + private void MainForm_DragDrop(object sender, DragEventArgs e) + { + MessageBox.Show("form1, dragDrop"); + + } + + + private void MainForm_SizeChanged(object sender, EventArgs e) + { + /*// resize all elements so they fit to window + const int border = 5; + const int scrollBarWidth = 16; + + // listBoxOutput + listBoxOutput.Height = (ClientRectangle.Height * 3) / 10; // 30% + listBoxOutput.Width = ClientRectangle.Width - 2*border; + listBoxOutput.Top = ClientRectangle.Height - (listBoxOutput.Height+border); + listBoxOutput.Left = border; + + //compositionBox.BackColor = Color.Brown; // todo + + // compositionBox + compositionBox.Top = border; + compositionBox.Left = border; + compositionBox.Width = listBoxOutput.Width - scrollBarWidth; + compositionBox.Height = ClientRectangle.Height - listBoxOutput.Height - scrollBarWidth - 3*border; + + // compositionVScrollBar + compositionVScrollBar.Width = scrollBarWidth; + compositionVScrollBar.Height = compositionBox.Height; + compositionVScrollBar.Top = compositionBox.Top; + compositionVScrollBar.Left = border + compositionBox.Width; + + // compositionHScrollBar + compositionHScrollBar.Width = compositionBox.Width; + compositionHScrollBar.Height = scrollBarWidth; + compositionHScrollBar.Top = border + compositionBox.Height; + compositionHScrollBar.Left = border;*/ + + CompositionUpdateArea(); + } + + + private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // if composition isn't saved, show message box, and maybe stop the closing + e.Cancel = !CheckIfSaved(); + } + + + private void MainForm_KeyPress(object sender, KeyPressEventArgs e) + { + // ESC cancels adding connection + if( _isAddingConnection && e.KeyChar == 27 ) + { + StopAddingConnection(); + e.Handled = true; + Invalidate(); + } + } + + + #endregion + + #region Main menu event handlers + + private void OnAddModels(object sender, EventArgs e) + { + try + { + StopAllActions(); + + OpenFileDialog dlg = new OpenFileDialog(); + dlg.CheckFileExists = true; + dlg.CheckPathExists = true; + dlg.Title = "Add model(s)..."; + dlg.Filter = "OpenMI models (*.omi)|*.omi|All files|*.*"; + dlg.Multiselect = true; + + if (dlg.ShowDialog(this) != DialogResult.OK) + return; + + string[] files = new string[dlg.FileNames.Length]; + dlg.FileNames.CopyTo(files, 0); + + dlg.Dispose(); + + try + { + Cursor.Current = Cursors.WaitCursor; + + Refresh(); + + foreach (string filename in files) + AddModel(new FileInfo(filename)); + } + finally + { + Cursor.Current = Cursors.Default; + } + } + catch( Exception ex ) + { + FinalCatchAndDisplay("AddModels", ex); + } + } + + + private void OnAttachTrigger(object sender, EventArgs e) + { + try + { + StopAllActions(); + + if (_contextSelectedObject != null + && _contextSelectedObject is UIModel) + { + foreach (UIModel model in _composition.Models) + model.IsTrigger = false; + + ((UIModel)_contextSelectedObject).IsTrigger = true; + } + + CompositionUpdateArea(); + } + catch (Exception ex) + { + FinalCatchAndDisplay("Attach Trigger", ex); + } + } + + private void OnRun(object sender, EventArgs e) + { + try + { + StopAllActions(); + + if (_composition.ShouldBeSaved) + _composition.Save(); + + Run run = new Run(); + run.Initialise(_composition.FileOpr.FullName); + run.ShowDialog(); + } + catch( Exception ex ) + { + FinalCatchAndDisplay("Run", ex); + } + } + + private void OnNew(object sender, EventArgs e) + { + try + { + StopAllActions(); + + if( !CheckIfSaved() ) + return; + + _composition.Initialize(); + + UpdateTitle(); + CompositionUpdateArea(); + } + catch (Exception ex) + { + FinalCatchAndDisplay("New", ex); + } + } + + private void OnOpen(object sender, EventArgs e) + { + try + { + StopAllActions(); + + if( !CheckIfSaved() ) + return; + + OpenFileDialog dlg = new OpenFileDialog(); + dlg.Filter = "OmiEd projects (*.opr)|*.opr|All files|*.*"; + dlg.Multiselect = false; + dlg.CheckFileExists = true; + dlg.CheckPathExists = true; + dlg.Title = "Open project..."; + + if (dlg.ShowDialog(this) != DialogResult.OK) + return; + + FileInfo oprFile = new FileInfo(dlg.FileName); + + dlg.Dispose(); + + try + { + Cursor.Current = Cursors.WaitCursor; + + Refresh(); + + OpenComposition(oprFile); + + UpdateTitle(); + CompositionUpdateArea(); + } + finally + { + Cursor.Current = Cursors.Default; + } + } + catch (Exception ex) + { + FinalCatchAndDisplay("Open", ex); + } + } + + private void OnSave(object sender, EventArgs e) + { + if (_composition.FileOpr == null + || _composition.FileOpr.IsReadOnly) + { + OnSaveAs(sender, e); + return; + } + + try + { + StopAllActions(); + + _composition.Save(); + + UpdateTitle(); + } + catch (Exception ex) + { + FinalCatchAndDisplay("Save", ex); + } + } + + private void OnSaveAs(object sender, EventArgs e) + { + try + { + SaveFileDialog dlg = new SaveFileDialog(); + dlg.Filter = "Compositions (*.opr)|*.opr|All files|*.*"; + dlg.ValidateNames = true; + dlg.Title = "Save As ..."; + dlg.AddExtension = true; + dlg.OverwritePrompt = true; + dlg.FileName = _composition.FileOpr != null + ? _composition.FileOpr.FullName : ""; + + if( dlg.ShowDialog( this ) != DialogResult.OK ) + return; + + FileInfo fi = new FileInfo(dlg.FileName); + + dlg.Dispose(); + + StopAllActions(); + + _composition.SaveAs(fi); + + UpdateTitle(); + } + catch (Exception ex) + { + FinalCatchAndDisplay("SaveAs", ex); + } + } + + private void OnReOpen(object sender, EventArgs e) + { + try + { + StopAllActions(); + + if (!CheckIfSaved()) + return; + + _composition.ReOpen(); + + UpdateTitle(); + } + catch (Exception ex) + { + FinalCatchAndDisplay("ReOpen", ex); + } + } + + void FinalCatchAndDisplay(string task, Exception e) + { + string s = string.Format("Task:\n\n{0}\n\nReason:\n\n{1}", + task, Utils.ToString(e)); + + Trace.TraceError(s); + + MessageBox.Show(s, "Operation Failed", + MessageBoxButtons.OK, MessageBoxIcon.Error); + + if (_composition != null) + _composition.Initialize(); + } + + private void menuFileExit_Click(object sender, EventArgs e) + { + StopAllActions(); + + //Close(); + } + + + private void OnMenuConnectionAdd(object sender, EventArgs e) + { + try + { + StopAllActions(); + + _isAddingConnection = true; + compositionBox.Cursor = _sourceCursor; + } + catch (Exception ex) + { + FinalCatchAndDisplay("View Model Properties", ex); + } + } + + + private void OnViewModelProperties(object sender, EventArgs e) + { + try + { + StopAllActions(); + + ModelDialog modelDialog = new ModelDialog(); + modelDialog.PopulateDialog( _composition.Models ); + modelDialog.ShowDialog( this ); + } + catch (Exception ex) + { + FinalCatchAndDisplay("View Model Properties", ex); + } + } + + + private void menuRegisterExtensions_Click(object sender, EventArgs e) + { + if( menuRegisterExtensions.Checked ) + { + Utils.UnregisterFileExtensions(); + menuRegisterExtensions.Checked = false; + } + else + { + Utils.RegisterFileExtensions( Application.ExecutablePath ); + menuRegisterExtensions.Checked = true; + } + } + + + private void OnHelpAbout(object sender, EventArgs e) + { + try + { + StopAllActions(); + + AboutBox aboutBox = new AboutBox(); + aboutBox.ShowDialog(this); + } + catch (Exception ex) + { + FinalCatchAndDisplay("Help About", ex); + } + } + + private void OnHelp(object sender, EventArgs e) + { + try + { + ShopHelp(HelpFormat.pdf); + } + catch (Exception ex) + { + FinalCatchAndDisplay("Help", ex); + } + } + + enum HelpFormat { chm = 0, pdf, }; + + void ShopHelp(HelpFormat fmt) + { + FileInfo file = new FileInfo(Path.Combine(Application.StartupPath, + @"OpenMIEditorHelp_2_0." + fmt.ToString())); + + if (file.Exists) + Help.ShowHelp(this, file.FullName, HelpNavigator.TableOfContents); + } + + void ShopUri(Uri uri) + { + StopAllActions(); + + Help.ShowHelp(this, uri.AbsoluteUri, HelpNavigator.TableOfContents); + } + + #endregion + + #region Context menu event handlers + + private void OnMenuCompositionOpen(object sender, EventArgs e) + { + menuEditModelAdd.Enabled = true; + + if (_composition != null) + { + if (_contextSelectedObject != null + && _contextSelectedObject is UIModel) + { + menuModelAttachTrigger.Enabled = true; + menuViewModelProperties.Enabled = true; + } + else + { + menuModelAttachTrigger.Enabled = false; + menuViewModelProperties.Enabled = false; + } + + menuEditConnectionAdd.Enabled + = _composition.Models.Count > 1; + menuEditConnectionLinks.Enabled + = _contextSelectedObject != null + && _contextSelectedObject is UIConnection; + + menuEditRunProperties.Enabled + = !_composition.ShouldBeSaved + && _composition.Models.Count > 0; + } + else + { + menuCompositionSpacer.Enabled = false; + menuViewModelProperties.Enabled = false; + menuEditConnectionAdd.Enabled = false; + menuEditConnectionLinks.Enabled = false; + menuEditRunProperties.Enabled = false; + } + } + + private void OnContextMenu(object sender, EventArgs e) + { + try + { + StopAllActions(); + + contextModelAdd.Visible = false; + contextModelRemove.Visible = false; + contextModelProperties.Visible = false; + contextModelAttachTrigger.Visible = false; + contextConnectionAdd.Visible = false; + contextConnectionRemove.Visible = false; + contextConnectionEditLinks.Visible = false; + contextRun.Visible = false; + + if( _contextSelectedObject == null ) + { + contextModelAdd.Visible = true; + contextRun.Visible = true; + contextConnectionAdd.Visible = true; + + contextModelAdd.Enabled = true; + + if (_composition != null) + { + contextRun.Enabled + = !_composition.ShouldBeSaved + && _composition.Models.Count > 0; + contextConnectionAdd.Enabled + = _composition.Models.Count > 1; + } + } + else if( _contextSelectedObject is UIConnection ) + { + contextConnectionRemove.Visible = true; + contextConnectionEditLinks.Visible = true; + + contextConnectionRemove.Enabled = true; + contextConnectionEditLinks.Enabled = true; + } + else if( _contextSelectedObject is UIModel ) + { + contextModelRemove.Visible = true; + contextModelProperties.Visible = true; + contextModelAttachTrigger.Visible = true; + + contextModelRemove.Enabled = true; + contextModelProperties.Enabled = true; + contextModelAttachTrigger.Enabled + = !((UIModel)_contextSelectedObject).IsTrigger; + } + else + Debug.Assert( false ); + } + catch (Exception ex) + { + FinalCatchAndDisplay("Context Menu", ex); + } + } + + + private void contextConnectionAdd_Click(object sender, EventArgs e) + { + OnMenuConnectionAdd(sender, e); + CompositionUpdateArea(); + UpdateTitle(); + } + + private void contextConnectionRemove_Click(object sender, EventArgs e) + { + _composition.RemoveConnection( (UIConnection)_contextSelectedObject ); + CompositionUpdateArea(); + UpdateTitle(); + } + + private void contextConnectionProperties_Click(object sender, EventArgs e) + { + ShowSelectedObjectProperties(); + } + + private void contextModelAdd_Click(object sender, EventArgs e) + { + OnAddModels( sender, e ); + } + + private void contextModelRemove_Click(object sender, EventArgs e) + { + _composition.ModelRemove( (UIModel)_contextSelectedObject ); + CompositionUpdateArea(); + UpdateTitle(); + } + + private void contextModelProperties_Click(object sender, EventArgs e) + { + ShowSelectedObjectProperties(); + } + + private void contextRun_Click(object sender, EventArgs e) + { + OnRun(sender, e); + } + + + private void contextIsTrigger_Click(object sender, EventArgs e) + { + OnAttachTrigger( sender, e ); + } + + + #endregion + + + + #region Composition box event handlers + + private void compositionScrollBar_ValueChanged(object sender, EventArgs e) + { + _compositionBoxPositionInArea.X = compositionHScrollBar.Value; + _compositionBoxPositionInArea.Y = compositionVScrollBar.Value; + compositionBox.Invalidate(); + } + + private void OnCanvasPaint(object sender, PaintEventArgs e) + { + try + { + // draw OpenMI logo + e.Graphics.DrawImage(imageList.Images[0], 0, 0); + + //foreach (UIConnection link in _composition.Connections) + // link.Draw(true,_compositionBoxPositionInArea, e.Graphics); + + //foreach (UIModel model in _composition.Models) + // model.Draw(true,_compositionBoxPositionInArea, e.Graphics); + + foreach (UIConnection connection in _composition.Connections) + connection.Draw(_contextSelectedObject == connection, + _compositionBoxPositionInArea, e.Graphics); + + foreach (UIModel model in _composition.Models) + model.Draw(_contextSelectedObject == model, + _compositionBoxPositionInArea, e.Graphics); + } + catch (Exception ex) + { + FinalCatchAndDisplay("Canvas Paint", ex); + } + } + + private void compositionBox_MouseDown(object sender, MouseEventArgs e) + { + StopMovingModel(); + compositionBox.Invalidate(); + + bool actionFoundOut = false; + + // Left mouse button + if( e.Button == MouseButtons.Left ) + { + // if adding a connection + if( _isAddingConnection ) + { + UIModel model = GetModel( e.X, e.Y ); + + // if some model selected + if( model!=null ) + { + // if source model selected + if( _sourceModel == null ) + { + _sourceModel = model; + compositionBox.Cursor = _targetCursor; + } + else + { + // target model selected => add connection to composition + if( _sourceModel != model ) + _composition.AddConnection( + new UIConnection(_sourceModel, model)); + StopAddingConnection(); + } + } + else + { + // no model selected + StopAddingConnection(); + } + + actionFoundOut = true; + } + + // move model ? + if( !actionFoundOut ) + { + UIModel model = GetModel( e.X, e.Y ); + + if( model != null ) + { + _prevMouse.X = e.X; + _prevMouse.Y = e.Y; + + _isMovingModel = true; + model.IsMoving = true; + + actionFoundOut = true; + } + } + } + else if( e.Button == MouseButtons.Right ) + { + // right button => show context menu + + // stop other actions + StopAddingConnection(); + StopMovingModel(); + + // get model under cursor + _contextSelectedObject = GetModel(e.X,e.Y); + if( _contextSelectedObject == null ) + _contextSelectedObject = GetConnection(e.X,e.Y); + + //contextMenu.Show(popup, new Point(e.X, e.Y)); + contextMenu.Show( compositionBox, new Point(e.X,e.Y) ); + } + } + + private void compositionBox_MouseMove(object sender, MouseEventArgs e) + { + // moving model ? + if( _isMovingModel ) + { + foreach( UIModel model in _composition.Models ) + if( model.IsMoving ) + { + model.Rect.X += e.X -_prevMouse.X; + model.Rect.Y += e.Y -_prevMouse.Y; + + _prevMouse.X = e.X; + _prevMouse.Y = e.Y; + + _composition.ShouldBeSaved = true; + CompositionUpdateArea(); + UpdateTitle(); + compositionBox.Invalidate(); + } + } + + } + + private void compositionBox_MouseUp(object sender, MouseEventArgs e) + { + StopMovingModel(); + } + + + #endregion + + #region .NET generated members + + private System.ComponentModel.IContainer components; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + + /// + /// The main entry point for the application. + /// + static void Main(string[] args) + { + try + { + ProcessCommandLineArgs(args); + } + catch (Exception e) + { + MessageBox.Show(e.ToString(), "Error occured while starting the application", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + + ////InitializeMyMenu(); + //InitializeOldMenu(); + //InitializeContext(); + //InitializeComposition(); + // + // mainTab + // + + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + this.mainMenu1 = new System.Windows.Forms.MainMenu(this.components); + this.menuFile = new System.Windows.Forms.ToolStripMenuItem(); + this.menuFileNew = new System.Windows.Forms.ToolStripMenuItem(); + this.menuItem17 = new System.Windows.Forms.ToolStripMenuItem(); + this.menuFileReload = new System.Windows.Forms.ToolStripMenuItem(); + this.menuItem18 = new System.Windows.Forms.ToolStripMenuItem(); + this.menuFileOpen = new System.Windows.Forms.ToolStripMenuItem(); + this.menuFileSave = new System.Windows.Forms.ToolStripMenuItem(); + this.menuFileSaveAs = new System.Windows.Forms.ToolStripMenuItem(); + this.menuItem15 = new System.Windows.Forms.ToolStripMenuItem(); + this.menuFileExit = new System.Windows.Forms.ToolStripMenuItem(); + this.menuComposition = new System.Windows.Forms.ToolStripMenuItem(); + this.menuEditModelAdd = new System.Windows.Forms.ToolStripMenuItem(); + this.menuItem4 = new System.Windows.Forms.ToolStripMenuItem(); + this.menuViewModelProperties = new System.Windows.Forms.ToolStripMenuItem(); + this.menuModelAttachTrigger = new System.Windows.Forms.ToolStripMenuItem(); + this.menuCompositionSpacer = new System.Windows.Forms.ToolStripMenuItem(); + this.menuEditConnectionAdd = new System.Windows.Forms.ToolStripMenuItem(); + this.menuEditConnectionLinks = new System.Windows.Forms.ToolStripMenuItem(); + this.menuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.menuEditRunProperties = new System.Windows.Forms.ToolStripMenuItem(); + this.menuOptions = new System.Windows.Forms.ToolStripMenuItem(); + this.menuItem5 = new System.Windows.Forms.ToolStripMenuItem(); + this.menuRegisterExtensions = new System.Windows.Forms.ToolStripMenuItem(); + this.menuHelp = new System.Windows.Forms.ToolStripMenuItem(); + this.menuHelpContents = new System.Windows.Forms.ToolStripMenuItem(); + this.menuItem2 = new System.Windows.Forms.ToolStripMenuItem(); + this.menuExamples = new System.Windows.Forms.ToolStripMenuItem(); + this.menuExample1 = new System.Windows.Forms.ToolStripMenuItem(); + this.menuExample2 = new System.Windows.Forms.ToolStripMenuItem(); + this.menuExample3 = new System.Windows.Forms.ToolStripMenuItem(); + this.menuExample4 = new System.Windows.Forms.ToolStripMenuItem(); + this.menuItem3 = new System.Windows.Forms.ToolStripMenuItem(); + this.menuHelpAbout = new System.Windows.Forms.ToolStripMenuItem(); + this.compositionHScrollBar = new System.Windows.Forms.HScrollBar(); + this.compositionBox = new System.Windows.Forms.PictureBox(); + this.compositionVScrollBar = new System.Windows.Forms.VScrollBar(); + + this.contextMenu = new System.Windows.Forms.ContextMenu(); + this.contextModelAdd = new System.Windows.Forms.MenuItem(); + this.contextModelRemove = new System.Windows.Forms.MenuItem(); + this.contextModelProperties = new System.Windows.Forms.MenuItem(); + this.contextModelAttachTrigger = new System.Windows.Forms.MenuItem(); + this.contextConnectionAdd = new System.Windows.Forms.MenuItem(); + this.contextConnectionRemove = new System.Windows.Forms.MenuItem(); + this.contextConnectionEditLinks = new System.Windows.Forms.MenuItem(); + this.contextRun = new System.Windows.Forms.MenuItem(); + + this.imageList = new System.Windows.Forms.ImageList(this.components); + ((System.ComponentModel.ISupportInitialize)(this.compositionBox)).BeginInit(); + this.SuspendLayout(); + //// + //// mainMenu1 + //// + //this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + //this.menuFile, + //this.menuComposition, + //this.menuOptions, + //this.menuHelp}); + // + this.menuFile = new ToolStripMenuItem(); + this.menuFile.Text = "HydroModeler 2.0"; + this.menuFile.Name = "hydroModelerMenuItem"; + _mapArgs.MainMenu.Items.Add(this.menuFile); + + + // menuFile + // + //this.menuFile.Index = 0; + + //this.menuFile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItemCollection { + //this.menuFileNew, + //this.menuItem17, + //this.menuFileReload, + //this.menuItem18, + //this.menuFileOpen, + //this.menuFileSave, + //this.menuFileSaveAs, + //this.menuItem15, + //this.menuFileExit}); + // + // menuFileNew + // + this.menuFileNew.Text = "&New"; + this.menuFileNew.Click += new System.EventHandler(this.OnNew); + this.menuFile.DropDownItems.Add(this.menuFileNew); + // + // menuItem17 + // + //this.menuItem17.Text = "-"; + //this.menuFile.DropDownItems.Add(this.menuItem17); + // + // menuFileReload + // + this.menuFileReload.Text = "&Reload"; + this.menuFileReload.Click += new System.EventHandler(this.OnReOpen); + this.menuFile.DropDownItems.Add(this.menuFileReload); + // + // menuItem18 + // + //this.menuItem18.Text = "-"; + //this.menuFile.DropDownItems.Add(this.menuItem18); + // + // menuFileOpen + // + this.menuFileOpen.Text = "&Open..."; + this.menuFileOpen.Click += new System.EventHandler(this.OnOpen); + this.menuFile.DropDownItems.Add(this.menuFileOpen); + // + // menuFileSave + // + this.menuFileSave.Text = "&Save"; + this.menuFileSave.Click += new System.EventHandler(this.OnSave); + this.menuFile.DropDownItems.Add(this.menuFileSave); + // + // menuFileSaveAs + // + this.menuFileSaveAs.Text = "Save &As..."; + this.menuFileSaveAs.Click += new System.EventHandler(this.OnSaveAs); + this.menuFile.DropDownItems.Add(this.menuFileSaveAs); + // + // menuItem15 + // + //this.menuItem15.Text = "-"; + //this.menuFile.DropDownItems.Add(this.menuItem15); + // + // menuFileExit + // + this.menuFileExit.Text = "E&xit"; + this.menuFileExit.Click += new System.EventHandler(this.menuFileExit_Click); + this.menuFile.DropDownItems.Add(this.menuFileExit); + + this.menuFile.DropDownItems.Add(new ToolStripSeparator()); + // + // menuComposition + // + + //this.menuComposition.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + //this.menuEditModelAdd, + //this.menuItem4, + //this.menuViewModelProperties, + //this.menuModelAttachTrigger, + //this.menuCompositionSpacer, + //this.menuEditConnectionAdd, + //this.menuEditConnectionLinks, + //this.menuItem1, + //this.menuEditRunProperties}); + + //this.menuComposition.Text = "&Composition"; + //this.menuComposition.Popup += new System.EventHandler(this.OnMenuCompositionOpen); + // + // menuEditModelAdd + // + this.menuEditModelAdd.Text = "Add &Model(s) ..."; + this.menuEditModelAdd.Click += new System.EventHandler(this.OnAddModels); + this.menuFile.DropDownItems.Add(this.menuEditModelAdd); + // + // menuItem4 + // + //this.menuItem4.Index = 1; + //this.menuItem4.Text = "-"; + // + // menuViewModelProperties + // + //this.menuViewModelProperties.Index = 2; + this.menuViewModelProperties.Text = "Model &Properties..."; + this.menuViewModelProperties.Click += new System.EventHandler(this.OnViewModelProperties); + this.menuFile.DropDownItems.Add(this.menuViewModelProperties); + // + // menuModelAttachTrigger + // + //this.menuModelAttachTrigger.Index = 3; + this.menuModelAttachTrigger.Text = "Model Attach &Trigger"; + this.menuModelAttachTrigger.Click += new System.EventHandler(this.OnAttachTrigger); + this.menuFile.DropDownItems.Add(this.menuModelAttachTrigger); + // + // menuCompositionSpacer + // + //this.menuCompositionSpacer.Index = 4; + //this.menuCompositionSpacer.Text = "-"; + //this.menuFile.DropDownItems.Add(this. + // + // menuEditConnectionAdd + // + this.menuEditConnectionAdd.Enabled = false; + //this.menuEditConnectionAdd.Index = 5; + this.menuEditConnectionAdd.Text = "Add &Connection"; + this.menuEditConnectionAdd.Click += new System.EventHandler(this.OnMenuConnectionAdd); + this.menuFile.DropDownItems.Add(this.menuEditConnectionAdd); + // + // menuEditConnectionLinks + // + this.menuEditConnectionLinks.Enabled = false; + //this.menuEditConnectionLinks.Index = 6; + this.menuEditConnectionLinks.Text = "Edit Connection &Links..."; + this.menuFile.DropDownItems.Add(this.menuEditConnectionLinks); + // + // menuItem1 + // + //this.menuItem1.Index = 7; + //this.menuItem1.Text = "-"; + // + // menuEditRunProperties + // + //this.menuEditRunProperties.Index = 8; + //this.menuEditRunProperties.Shortcut = System.Windows.Forms.Shortcut.F5; + this.menuEditRunProperties.Text = "&Run..."; + this.menuEditRunProperties.Click += new System.EventHandler(this.OnRun); + this.menuFile.DropDownItems.Add(this.menuEditRunProperties); + // + // menuOptions + // + //this.menuOptions.Index = 2; + //this.menuOptions.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + //this.menuItem5, + //this.menuRegisterExtensions}); + //this.menuOptions.Text = "&Options"; + + this.menuFile.DropDownItems.Add(new ToolStripSeparator()); + + // + // menuItem5 + // + //this.menuItem5.Index = 0; + this.menuItem5.Text = "View Exception details"; + this.menuItem5.Click += new System.EventHandler(this.OnViewExceptionDetails); + this.menuFile.DropDownItems.Add(this.menuItem5); + // + // menuRegisterExtensions + // + this.menuRegisterExtensions.Checked = true; + //this.menuRegisterExtensions.Index = 1; + this.menuRegisterExtensions.Text = "&Register file extensions"; + this.menuRegisterExtensions.Click += new System.EventHandler(this.menuRegisterExtensions_Click); + this.menuFile.DropDownItems.Add(this.menuRegisterExtensions); + // + // menuHelp + // + //this.menuHelp.Index = 3; + //this.menuHelp.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + //this.menuHelpContents, + //this.menuItem2, + //this.menuExamples, + //this.menuItem3, + //this.menuHelpAbout}); + //this.menuHelp.Text = "&Help"; + //this.menuHelp.Popup += new System.EventHandler(this.OnMenuHelpOpen); + // + // menuHelpContents + // + //this.menuHelpContents.Index = 0; + //this.menuHelpContents.Shortcut = System.Windows.Forms.Shortcut.F1; + this.menuHelpContents.Text = "&Help ..."; + this.menuHelpContents.Click += new System.EventHandler(this.OnHelp); + this.menuFile.DropDownItems.Add(this.menuHelpContents); + // + // menuItem2 + // + //this.menuItem2.Index = 1; + this.menuItem2.Text = "&Wiki ..."; + this.menuItem2.Click += new System.EventHandler(this.OnMenuHelpWiki); + this.menuFile.DropDownItems.Add(this.menuItem2); + // + // menuExamples + // + //this.menuExamples.Index = 2; + //this.menuExamples.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + //this.menuExample1, + //this.menuExample2, + //this.menuExample3, + //this.menuExample4}); + //this.menuExamples.Text = "Examples"; + // + // menuExample1 + // + //this.menuExample1.Index = 0; + //this.menuExample1.Text = "1. One river reach"; + //this.menuExample1.Click += new System.EventHandler(this.OnExample1); + //// + //// menuExample2 + //// + //this.menuExample2.Index = 1; + //this.menuExample2.Text = "2. Two river reaches"; + //this.menuExample2.Click += new System.EventHandler(this.OnExample2); + //// + //// menuExample3 + //// + //this.menuExample3.Index = 2; + //this.menuExample3.Text = "3. Two reaches + 1 adapter"; + //this.menuExample3.Click += new System.EventHandler(this.OnExample3); + //// + //// menuExample4 + //// + //this.menuExample4.Index = 3; + //this.menuExample4.Text = "4. Two reaches + 2 adapters"; + //this.menuExample4.Click += new System.EventHandler(this.OnExample4); + //// + //// menuItem3 + //// + //this.menuItem3.Index = 3; + //this.menuItem3.Text = "-"; + // + // menuHelpAbout + // + this.menuHelpAbout.Text = "&About ..."; + this.menuHelpAbout.Click += new System.EventHandler(this.OnHelpAbout); + this.menuFile.DropDownItems.Add(this.menuHelpAbout); + // + // compositionHScrollBar + // + this.compositionHScrollBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.compositionHScrollBar.Location = new System.Drawing.Point(0, 236); + this.compositionHScrollBar.Maximum = 20; + this.compositionHScrollBar.Minimum = -10; + this.compositionHScrollBar.Name = "compositionHScrollBar"; + this.compositionHScrollBar.Size = new System.Drawing.Size(376, 16); + this.compositionHScrollBar.TabIndex = 2; + this.compositionHScrollBar.ValueChanged += new System.EventHandler(this.compositionScrollBar_ValueChanged); + // + // compositionBox + // + this.compositionBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.compositionBox.BackColor = System.Drawing.Color.White; + this.compositionBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.compositionBox.Location = new System.Drawing.Point(0, 0); + this.compositionBox.Name = "compositionBox"; + this.compositionBox.Size = new System.Drawing.Size(376, 236); + this.compositionBox.TabIndex = 3; + this.compositionBox.TabStop = false; + this.compositionBox.DoubleClick += new System.EventHandler(this.OnCanvasDoubleClick); + this.compositionBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseMove); + this.compositionBox.Click += new System.EventHandler(this.OnCanvasClick); + this.compositionBox.MouseDown += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseDown); + this.compositionBox.Paint += new System.Windows.Forms.PaintEventHandler(this.OnCanvasPaint); + this.compositionBox.MouseUp += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseUp); + // + // compositionVScrollBar + // + this.compositionVScrollBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.compositionVScrollBar.Location = new System.Drawing.Point(376, 0); + this.compositionVScrollBar.Name = "compositionVScrollBar"; + this.compositionVScrollBar.Size = new System.Drawing.Size(16, 236); + this.compositionVScrollBar.TabIndex = 4; + this.compositionVScrollBar.ValueChanged += new System.EventHandler(this.compositionScrollBar_ValueChanged); + // + // contextMenu + // + //this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + //this.contextModelAdd, + //this.contextModelRemove, + //this.contextModelProperties, + //this.contextModelAttachTrigger, + //this.contextConnectionAdd, + //this.contextConnectionRemove, + //this.contextConnectionEditLinks, + //this.contextRun}); + this.contextMenu.Popup += new System.EventHandler(this.OnContextMenu); + // + // contextModelAdd + // + //this.contextModelAdd.Index = 0; + this.contextModelAdd.Text = "Add Model(s)..."; + this.contextModelAdd.Click += new System.EventHandler(this.contextModelAdd_Click); + this.contextMenu.MenuItems.Add(this.contextModelAdd); + // + // contextModelRemove + // + //this.contextModelRemove.Index = 1; + this.contextModelRemove.Text = "Model Remove"; + this.contextModelRemove.Click += new System.EventHandler(this.contextModelRemove_Click); + this.contextMenu.MenuItems.Add(this.contextModelRemove); + // + // contextModelProperties + // + //this.contextModelProperties.Index = 2; + this.contextModelProperties.Text = "Model Properties..."; + this.contextModelProperties.Click += new System.EventHandler(this.contextModelProperties_Click); + this.contextMenu.MenuItems.Add(this.contextModelProperties); + // + // contextModelAttachTrigger + // + //this.contextModelAttachTrigger.Index = 3; + this.contextModelAttachTrigger.Text = "Attach Trigger"; + this.contextModelAttachTrigger.Click += new System.EventHandler(this.contextIsTrigger_Click); + this.contextMenu.MenuItems.Add(this.contextModelAttachTrigger); + // + // contextConnectionAdd + // + //this.contextConnectionAdd.Index = 4; + this.contextConnectionAdd.Text = "Add Connection"; + this.contextConnectionAdd.Click += new System.EventHandler(this.contextConnectionAdd_Click); + this.contextMenu.MenuItems.Add(this.contextConnectionAdd); + // + // contextConnectionRemove + // + //this.contextConnectionRemove.Index = 5; + this.contextConnectionRemove.Text = "Connection Delete"; + this.contextConnectionRemove.Click += new System.EventHandler(this.contextConnectionRemove_Click); + this.contextMenu.MenuItems.Add(this.contextConnectionRemove); + // + // contextConnectionEditLinks + // + //this.contextConnectionEditLinks.Index = 6; + this.contextConnectionEditLinks.Text = "Edit Links..."; + this.contextConnectionEditLinks.Click += new System.EventHandler(this.contextConnectionProperties_Click); + this.contextMenu.MenuItems.Add(this.contextConnectionEditLinks); + // + // contextRun + // + //this.contextRun.Index = 7; + this.contextRun.Text = "Run..."; + this.contextRun.Click += new System.EventHandler(this.contextRun_Click); + this.contextMenu.MenuItems.Add(this.contextRun); + // + //// imageList + //// + this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream"))); + this.imageList.TransparentColor = System.Drawing.Color.Transparent; + this.imageList.Images.SetKeyName(0, ""); + + // + // MainForm + // + this.ClientSize = new System.Drawing.Size(392, 253); + this.Controls.Add(this.compositionVScrollBar); + this.Controls.Add(this.compositionBox); + this.Controls.Add(this.compositionHScrollBar); + //this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + //this.Menu = this.mainMenu1; + this.MinimumSize = new System.Drawing.Size(300, 200); + this.Name = "MainForm"; + this.Text = "OpenMI Editor 2"; + this.Load += new System.EventHandler(this.MainForm_Load); + this.SizeChanged += new System.EventHandler(this.MainForm_SizeChanged); + this.DragDrop += new System.Windows.Forms.DragEventHandler(this.MainForm_DragDrop); + //this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing); + this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.MainForm_KeyPress); + ((System.ComponentModel.ISupportInitialize)(this.compositionBox)).EndInit(); + this.ResumeLayout(false); + + } + + private void InitializeOldMenu() + { + // this.menuFile = new ToolStripMenuItem(); + // this.menuFile.Text = "HydroModeler"; + // this.menuFile.Name = "hydroModelerMenuItem"; + // _mapArgs.MainMenu.Items.Add(this.menuFile); + + // this.menuFileNew = new ToolStripMenuItem(); + // this.menuFileNew.Text = "&New composition"; + // this.menuFileNew.Click += new System.EventHandler(this.menuFileNew_Click); + // this.menuFile.DropDownItems.Add(this.menuFileNew); + + // this.menuFileReload = new ToolStripMenuItem(); + // this.menuFileReload.Text = "&Reload composition"; + // this.menuFileReload.Click += new System.EventHandler(this.menuFileReload_Click); + // this.menuFile.DropDownItems.Add(this.menuFileReload); + + // this.menuFileOpen = new ToolStripMenuItem(); + // this.menuFileOpen.Text = "&Open composition..."; + // this.menuFileOpen.Click += new System.EventHandler(this.menuFileOpen_Click); + // this.menuFile.DropDownItems.Add(this.menuFileOpen); + + // this.menuFileSave = new ToolStripMenuItem(); + // this.menuFileSave.Text = "&Save composition"; + // this.menuFileSave.Click += new System.EventHandler(this.menuFileSave_Click); + // this.menuFile.DropDownItems.Add(this.menuFileSave); + + // this.menuFileSaveAs = new ToolStripMenuItem(); + // this.menuFileSaveAs.Text = "Save composition &As..."; + // this.menuFileSaveAs.Click += new System.EventHandler(this.menuFileSaveAs_Click); + // this.menuFile.DropDownItems.Add(this.menuFileSaveAs); + + // this.menuFileExit = new ToolStripMenuItem(); + // this.menuFileExit.Text = "E&xit"; + // this.menuFileExit.Click += new System.EventHandler(this.menuFileExit_Click); + // //this.menuFile.DropDownItems.Add(this.menuFileExit); + + // this.menuFile.DropDownItems.Add(new ToolStripSeparator()); + + // this.menuEditModelAdd = new ToolStripMenuItem(); + // this.menuEditModelAdd.Text = "Add &Model"; + // this.menuEditModelAdd.Click += new System.EventHandler(this.menuEditModelAdd_Click); + // this.menuFile.DropDownItems.Add(this.menuEditModelAdd); + + // this.menuEditConnectionAdd = new ToolStripMenuItem(); + // this.menuEditConnectionAdd.Enabled = false; + // this.menuEditConnectionAdd.Text = "Add &Connection"; + // this.menuEditConnectionAdd.Click += new System.EventHandler(this.menuEditConnectionAdd_Click); + // this.menuFile.DropDownItems.Add(this.menuEditConnectionAdd); + + // //this.menuEditTriggerAdd = new ToolStripMenuItem(); + // //this.menuEditTriggerAdd.Text = "Add &Trigger"; + // //this.menuEditTriggerAdd.Click += new System.EventHandler(this.menuEditTriggerAdd_Click); + // //this.menuFile.DropDownItems.Add(this.menuEditTriggerAdd); + + // //this.menuEditConnectionProperties = new ToolStripMenuItem(); + // //this.menuEditConnectionProperties.Enabled = false; + // //this.menuEditConnectionProperties.Text = "Co&nnection properties..."; + // //this.menuFile.DropDownItems.Add(this.menuEditConnectionProperties); + + // this.menuViewModelProperties = new ToolStripMenuItem(); + // this.menuViewModelProperties.Text = "Model &properties..."; + // this.menuViewModelProperties.Click += new System.EventHandler(this.menuViewModelProperties_Click); + // this.menuFile.DropDownItems.Add(this.menuViewModelProperties); + + // this.menuEditRunProperties = new ToolStripMenuItem(); + // this.menuEditRunProperties.Text = "&Run..."; + // this.menuEditRunProperties.Click += new System.EventHandler(this.menuDeployRun_Click); + // this.menuFile.DropDownItems.Add(this.menuEditRunProperties); + + // this.menuRegisterExtensions = new ToolStripMenuItem(); + // this.menuRegisterExtensions.Checked = true; + // this.menuRegisterExtensions.Text = "&Register file extensions"; + // this.menuRegisterExtensions.Click += new System.EventHandler(this.menuRegisterExtensions_Click); + + // this.menuOptions = new ToolStripMenuItem(); + // this.menuOptions.Text = "&Options"; + // this.menuOptions.DropDownItems.Add(this.menuRegisterExtensions); + // this.menuFile.DropDownItems.Add(this.menuOptions); + + // this.menuFile.DropDownItems.Add(new ToolStripSeparator()); + + // this.menuHelp = new ToolStripMenuItem(); + // this.menuHelp.Text = "&Help"; + // //_ mapArgs.MainMenu.Items.Add(this.menuHelp); don't include for now. + + // this.menuHelpAbout = new ToolStripMenuItem(); + // this.menuHelpAbout.Text = "&About Configuration Editor ..."; + // this.menuHelpAbout.Click += new System.EventHandler(this.menuHelpAbout_Click); + // this.menuFile.DropDownItems.Add(this.menuHelpAbout); + + // this.menuHelpContents = new ToolStripMenuItem(); + // this.menuHelpContents.Text = "Help contents"; + // this.menuHelpContents.Click += new System.EventHandler(this.menuHelpContents_Click); + // this.menuFile.DropDownItems.Add(this.menuHelpContents); + } + private void InitializeContext() + { + //this.contextMenu = new System.Windows.Forms.ContextMenu(); + //this.contextConfigurationAdd = new System.Windows.Forms.MenuItem(); + //this.contextModelAdd = new System.Windows.Forms.ToolStripMenuItem(); + //this.contextConnectionAdd = new System.Windows.Forms.ToolStripMenuItem(); + ////this.contextAddTrigger = new System.Windows.Forms.MenuItem(); + //this.contextRun = new System.Windows.Forms.ToolStripMenuItem(); + ////this.contextDivider = new System.Windows.Forms.MenuItem(); + //this.contextConnectionRemove = new System.Windows.Forms.ToolStripMenuItem(); + //this.contextConnectionProperties = new System.Windows.Forms.ToolStripMenuItem(); + //this.contextModelRemove = new System.Windows.Forms.ToolStripMenuItem(); + //this.contextModelProperties = new System.Windows.Forms.ToolStripMenuItem(); + + //// + //// contextMenu + //// + //this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + //this.contextConfigurationAdd, + //this.contextModelAdd, + //this.contextConnectionAdd, + ////this.contextAddTrigger, + //this.contextRun, + ////this.contextDivider, + //this.contextConnectionRemove, + //this.contextConnectionProperties, + //this.contextModelRemove, + //this.contextModelProperties}); + //this.contextMenu.Popup += new System.EventHandler(this.contextMenu_Popup); + //// + //// contextConfigurationAdd + //// + //this.contextConfigurationAdd.Index = 0; + //this.contextConfigurationAdd.Text = "Add Configuration"; + //this.contextConfigurationAdd.Click += new System.EventHandler(this.contextConfigurationAdd_Click); + //// + //// contextModelAdd + //// + //this.contextModelAdd.Index = 1; + //this.contextModelAdd.Text = "Add Model"; + //this.contextModelAdd.Click += new System.EventHandler(this.contextModelAdd_Click); + //// + //// contextConnectionAdd + //// + //this.contextConnectionAdd.Index = 2; + //this.contextConnectionAdd.Text = "Add Connection"; + //this.contextConnectionAdd.Click += new System.EventHandler(this.contextConnectionAdd_Click); + //// + //// contextAddTrigger + //// + ////this.contextAddTrigger.Index = 3; + ////this.contextAddTrigger.Text = "Add Trigger"; + ////this.contextAddTrigger.Click += new System.EventHandler(this.contextAddTrigger_Click); + //// + //// contextRun + //// + ////this.contextRun.Index = 4; + //this.contextRun.Text = "Run"; + //this.contextRun.Click += new System.EventHandler(this.contextRun_Click); + //// + //// contextDivider + //// + ////this.contextDivider.Index = 5; + ////this.contextDivider.Text = "-"; + //// + //// contextConnectionRemove + //// + //this.contextConnectionRemove.Index = 6; + //this.contextConnectionRemove.Text = "Remove connection"; + //this.contextConnectionRemove.Click += new System.EventHandler(this.contextConnectionRemove_Click); + //// + //// contextConnectionProperties + //// + //this.contextConnectionProperties.Index = 7; + //this.contextConnectionProperties.Text = "Connection properties"; + //this.contextConnectionProperties.Click += new System.EventHandler(this.contextConnectionProperties_Click); + //// + //// contextModelRemove + //// + //this.contextModelRemove.Index = 8; + //this.contextModelRemove.Text = "Remove model"; + //this.contextModelRemove.Click += new System.EventHandler(this.contextModelRemove_Click); + //// + //// contextModelProperties + //// + //this.contextModelProperties.Index = 9; + //this.contextModelProperties.Text = "Model properties"; + //this.contextModelProperties.Click += new System.EventHandler(this.contextModelProperties_Click); + } + private void InitializeComposition() + { + //System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainTab)); + + //this.compositionHScrollBar = new System.Windows.Forms.HScrollBar(); + //this.compositionBox = new System.Windows.Forms.PictureBox(); + + //this.imageList = new System.Windows.Forms.ImageList(this.components); + //this.compositionVScrollBar = new System.Windows.Forms.VScrollBar(); + //((System.ComponentModel.ISupportInitialize)(this.compositionBox)).BeginInit(); + //this.SuspendLayout(); + + //// + //// compositionHScrollBar + //// + //this.compositionHScrollBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + // | System.Windows.Forms.AnchorStyles.Right))); + //this.compositionHScrollBar.Location = new System.Drawing.Point(0, -525); + //this.compositionHScrollBar.Maximum = 20; + //this.compositionHScrollBar.Minimum = -10; + //this.compositionHScrollBar.Name = "compositionHScrollBar"; + //this.compositionHScrollBar.Size = new System.Drawing.Size(586, 16); + //this.compositionHScrollBar.TabIndex = 2; + //this.compositionHScrollBar.ValueChanged += new System.EventHandler(this.compositionScrollBar_ValueChanged); + //// + //// compositionBox + //// + //this.compositionBox.BackColor = System.Drawing.Color.White; + //this.compositionBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + //this.compositionBox.Dock = System.Windows.Forms.DockStyle.Fill; + //this.compositionBox.Location = new System.Drawing.Point(0, 0); + //this.compositionBox.Name = "compositionBox"; + //this.compositionBox.Size = new System.Drawing.Size(602, 288); + //this.compositionBox.TabIndex = 3; + //this.compositionBox.TabStop = false; + //this.compositionBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseMove); + //this.compositionBox.MouseDown += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseDown); + //this.compositionBox.Paint += new System.Windows.Forms.PaintEventHandler(this.compositionBox_Paint); + //this.compositionBox.MouseUp += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseUp); + + //// + //// imageList + //// + //this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream"))); + //this.imageList.TransparentColor = System.Drawing.Color.Transparent; + //this.imageList.Images.SetKeyName(0, ""); + //// + //// compositionVScrollBar + //// + //this.compositionVScrollBar.Anchor = System.Windows.Forms.AnchorStyles.Right; + //this.compositionVScrollBar.Location = new System.Drawing.Point(586, -41); + //this.compositionVScrollBar.Name = "compositionVScrollBar"; + //this.compositionVScrollBar.Size = new System.Drawing.Size(19, 340); + //this.compositionVScrollBar.TabIndex = 4; + //this.compositionVScrollBar.Visible = false; + //this.compositionVScrollBar.ValueChanged += new System.EventHandler(this.compositionScrollBar_ValueChanged); + } + #endregion + + #endregion + + private void OnCanvasClick(object sender, EventArgs e) + { + try + { + MouseEventArgs args = e as MouseEventArgs; + + _contextSelectedObject = null; + + if (args != null) + { + _contextSelectedObject = GetModel(args.X, args.Y); + + if (_contextSelectedObject == null) + _contextSelectedObject = GetConnection(args.X, args.Y); + } + } + catch (Exception ex) + { + FinalCatchAndDisplay("Canvas Click", ex); + } + } + + private void OnCanvasDoubleClick(object sender, EventArgs e) + { + try + { + OnCanvasClick(sender, e); + ShowSelectedObjectProperties(); + } + catch (Exception ex) + { + FinalCatchAndDisplay("Canvas Double Click", ex); + } + } + + void ShowSelectedObjectProperties() + { + if (_contextSelectedObject is UIConnection) + { + ShowLinkDialog((UIConnection)_contextSelectedObject); + UpdateTitle(); + } + else if (_contextSelectedObject is UIModel) + { + ModelDialog modelDialog = new ModelDialog(); + modelDialog.PopulateDialog(_composition.Models, ((UIModel)_contextSelectedObject).InstanceCaption); + modelDialog.ShowDialog(this); + } + } + + private void OnMenuHelpWiki(object sender, EventArgs e) + { + ShopUri(new Uri(@"http://public.wldelft.nl/display/OPENMI/OpenMI+AssociationTechnical+Committee")); + } + + string[] _exampleOprs = new string[] { + "SimpleCSharpRiver2_RiverReach1.opr", + "SimpleCSharpRiver2_RiverReachs1and2.opr", + "SimpleCSharpRiver2_Decorators01.opr", + "SimpleCSharpRiver2_Decorators02.opr", + }; + + DirectoryInfo ExamplesLocation() + { + object location = Registry.GetValue( + @"HKEY_CURRENT_USER\Software\OpenMI\OATC_Editor", + "Examples_Location", null); + + DirectoryInfo examples = null; + + if (location != null) + examples = new DirectoryInfo((string)location); + + if (examples == null || !examples.Exists) + { + // try develepment location + + FileInfo ass = new FileInfo(Assembly.GetExecutingAssembly().Location); + + examples = new DirectoryInfo( + Path.Combine(ass.DirectoryName, @"..\help\examples")); + } + + return examples; + } + + private void OnMenuHelpOpen(object sender, EventArgs e) + { + DirectoryInfo examples = ExamplesLocation(); + + menuExamples.Enabled = examples != null && examples.Exists; + + if (menuExamples.Enabled) + { + menuExample1.Enabled = File.Exists(Path.Combine(examples.FullName, + _exampleOprs[0])); + menuExample2.Enabled = File.Exists(Path.Combine(examples.FullName, + _exampleOprs[1])); + menuExample3.Enabled = File.Exists(Path.Combine(examples.FullName, + _exampleOprs[2])); + menuExample4.Enabled = File.Exists(Path.Combine(examples.FullName, + _exampleOprs[3])); + } + } + + void OpenExample(int index) + { + try + { + Cursor.Current = Cursors.WaitCursor; + Refresh(); + + if (index < 0 || index >= _exampleOprs.Length) + throw new IndexOutOfRangeException(); + + DirectoryInfo examples = ExamplesLocation(); + + if (examples == null || !examples.Exists) + return; + + OpenComposition(new FileInfo( + Path.Combine(examples.FullName, _exampleOprs[index]))); + + Cursor.Current = Cursors.WaitCursor; + } + finally + { + Cursor.Current = Cursors.Default; + Refresh(); + } + } + + private void OnExample1(object sender, EventArgs e) + { + OpenExample(0); + } + + private void OnExample2(object sender, EventArgs e) + { + OpenExample(1); + } + + private void OnExample3(object sender, EventArgs e) + { + OpenExample(2); + } + + private void OnExample4(object sender, EventArgs e) + { + OpenExample(3); + } + + private void OnViewExceptionDetails(object sender, EventArgs e) + { + + } + + #region mainTab event handlers + + private void mainTab_Load(object sender, System.EventArgs e) + { + mainTab_SizeChanged(sender, e); + UpdateTitle(); + UpdateControls(); + CompositionUpdateArea(); + } + + private void UpdateControls() + { + contextConnectionAdd.Enabled = menuEditConnectionAdd.Enabled = _composition.Models.Count > 1; + + //bool hasTrigger = _composition.HasTrigger(); + + //contextAddTrigger.Enabled = menuEditTriggerAdd.Enabled = !hasTrigger; + + //contextRun.Enabled = menuEditRunProperties.Enabled = hasTrigger && _composition.Models.Count > 1; + } + + private void mainTab_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) + { + MessageBox.Show("form1, dragDrop"); + + } + + + private void mainTab_SizeChanged(object sender, System.EventArgs e) + { + /*// resize all elements so they fit to window + const int border = 5; + const int scrollBarWidth = 16; + + // listBoxOutput + listBoxOutput.Height = (ClientRectangle.Height * 3) / 10; // 30% + listBoxOutput.Width = ClientRectangle.Width - 2*border; + listBoxOutput.Top = ClientRectangle.Height - (listBoxOutput.Height+border); + listBoxOutput.Left = border; + + //compositionBox.BackColor = Color.Brown; // todo + + // compositionBox + compositionBox.Top = border; + compositionBox.Left = border; + compositionBox.Width = listBoxOutput.Width - scrollBarWidth; + compositionBox.Height = ClientRectangle.Height - listBoxOutput.Height - scrollBarWidth - 3*border; + + // compositionVScrollBar + compositionVScrollBar.Width = scrollBarWidth; + compositionVScrollBar.Height = compositionBox.Height; + compositionVScrollBar.Top = compositionBox.Top; + compositionVScrollBar.Left = border + compositionBox.Width; + + // compositionHScrollBar + compositionHScrollBar.Width = compositionBox.Width; + compositionHScrollBar.Height = scrollBarWidth; + compositionHScrollBar.Top = border + compositionBox.Height; + compositionHScrollBar.Left = border;*/ + + CompositionUpdateArea(); + } + + + private void mainTab_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // if composition isn't saved, show message box, and maybe stop the closing + e.Cancel = !CheckIfSaved(); + + if (!e.Cancel) + { + //_composition.Release(); + } + } + + + private void mainTab_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) + { + // ESC cancels adding connection + if (_isAddingConnection && e.KeyChar == 27) + { + StopAddingConnection(); + e.Handled = true; + Invalidate(); + } + } + + + #endregion + + private void contextConfigurationAdd_Click(object sender, EventArgs e) + { + menuFileOpen_Click(sender, e); + } + private void menuFileOpen_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + if (!CheckIfSaved()) + return; + + OpenFileDialog dlgFile = new OpenFileDialog(); + dlgFile.Filter = "OmiEd projects (*.opr)|*.opr|All files|*.*"; + dlgFile.Multiselect = false; + dlgFile.CheckFileExists = true; + dlgFile.CheckPathExists = true; + dlgFile.Title = "Open project..."; + + if (dlgFile.ShowDialog(this) == DialogResult.OK) + //OpenOprFile(dlgFile.FileName); + + dlgFile.Dispose(); + + } + /// + /// Opens composition from OPR file. + /// + /// Full path to OPR file. + private void OpenOprFile(string fullPath) + { + //try + //{ + // _compositionFilename = null; + // _composition.Release(); + // _composition.LoadFromFile(fullPath); + // _compositionFilename = fullPath; + //} + //catch (Exception ex) + //{ + // MessageBox.Show(ex.ToString(), "Error occured while loading the file...", MessageBoxButtons.OK, MessageBoxIcon.Error); + // //_composition.Release(); + //} + + //UpdateControls(); + //UpdateTitle(); + + //CompositionUpdateArea(); + //CompositionCenterView(); + } + + private void contextMenu_Popup(object sender, System.EventArgs e) + { + StopAllActions(); + + contextConnectionRemove.Visible = true; + contextConnectionProperties.Visible = true; + contextModelProperties.Visible = true; + contextModelRemove.Visible = true; + //contextAddTrigger.Visible = true; + contextRun.Visible = true; + contextConnectionAdd.Visible = true; + + + if (_contextSelectedObject == null) + { + //contextDivider.Visible = false; + contextConnectionRemove.Visible = false; + contextConnectionProperties.Visible = false; + contextModelProperties.Visible = false; + contextModelRemove.Visible = false; + } + else if (_contextSelectedObject is UIConnection) + { + //contextDivider.Visible = true; + contextConnectionRemove.Visible = true; + contextConnectionProperties.Visible = true; + contextModelProperties.Visible = false; + contextModelRemove.Visible = false; + } + else if (_contextSelectedObject is UIModel) + { + //contextDivider.Visible = true; + contextConnectionRemove.Visible = false; + contextConnectionProperties.Visible = false; + contextModelProperties.Visible = true; + contextModelRemove.Visible = true; + } + else + Debug.Assert(false); + + // Make disabled items invisible + if (!contextConnectionRemove.Enabled) + contextConnectionRemove.Visible = false; + if (!contextConnectionProperties.Enabled) + contextConnectionProperties.Visible = false; + if (!contextModelProperties.Enabled) + contextModelProperties.Visible = false; + if (!contextModelRemove.Enabled) + contextModelRemove.Visible = false; + //if (!contextAddTrigger.Enabled) + // contextAddTrigger.Visible = false; + if (!contextRun.Enabled) + contextRun.Visible = false; + if (!contextConnectionAdd.Enabled) + contextConnectionAdd.Visible = false; + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/MainTab.resx b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/MainTab.resx new file mode 100644 index 00000000..ff31a6db --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/MainTab.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/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/ModelDialog.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/ModelDialog.cs new file mode 100644 index 00000000..eab6d99b --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/ModelDialog.cs @@ -0,0 +1,495 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using Oatc.OpenMI.Gui.Controls; +using Oatc.OpenMI.Gui.Core; +using OpenMI.Standard2; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + /// + /// Summary description for ModelDialog. + /// + public class ModelDialog : System.Windows.Forms.Form + { + private System.Windows.Forms.ComboBox comboBoxModel; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.PropertyGrid propertyGrid; + private System.Windows.Forms.Button buttonClose; + private ExchangeItemSelector outputExchangeItemSelector; + private ExchangeItemSelector inputExchangeItemSelector; + private System.Windows.Forms.GroupBox groupBoxProperties; + private System.Windows.Forms.Button btnViewer; + private System.Windows.Forms.GroupBox groupBoxOutputExchnageItems; + private System.Windows.Forms.Panel panelTop; + private System.Windows.Forms.Panel panelBottom; + private System.Windows.Forms.GroupBox groupBoxInputExchangeItems; + private System.Windows.Forms.Splitter splitterVertical; + private System.Windows.Forms.Splitter splitterHorizontal; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + ExchangeItemSelector.TreeOptions _treeOptionsSources; + ExchangeItemSelector.TreeOptions _treeOptionsTargets; + + /// + /// Creates a new instance of ModelDialog dialog. + /// + public ModelDialog() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // + // TODO: Add any constructor code after InitializeComponent call + // + + _elementSetViewer = new ElementSetViewer(); + + _treeOptionsSources.IsSource = true; + _treeOptionsTargets.IsTarget = true; + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ModelDialog)); + this.comboBoxModel = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.propertyGrid = new System.Windows.Forms.PropertyGrid(); + this.outputExchangeItemSelector = new Oatc.OpenMI.Gui.Controls.ExchangeItemSelector(); + this.groupBoxOutputExchnageItems = new System.Windows.Forms.GroupBox(); + this.inputExchangeItemSelector = new Oatc.OpenMI.Gui.Controls.ExchangeItemSelector(); + this.groupBoxProperties = new System.Windows.Forms.GroupBox(); + this.btnViewer = new System.Windows.Forms.Button(); + this.buttonClose = new System.Windows.Forms.Button(); + this.panelTop = new System.Windows.Forms.Panel(); + this.panelBottom = new System.Windows.Forms.Panel(); + this.groupBoxInputExchangeItems = new System.Windows.Forms.GroupBox(); + this.splitterVertical = new System.Windows.Forms.Splitter(); + this.splitterHorizontal = new System.Windows.Forms.Splitter(); + this.groupBoxOutputExchnageItems.SuspendLayout(); + this.groupBoxProperties.SuspendLayout(); + this.panelTop.SuspendLayout(); + this.panelBottom.SuspendLayout(); + this.groupBoxInputExchangeItems.SuspendLayout(); + this.SuspendLayout(); + // + // comboBoxModel + // + this.comboBoxModel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.comboBoxModel.Location = new System.Drawing.Point(60, 4); + this.comboBoxModel.Name = "comboBoxModel"; + this.comboBoxModel.Size = new System.Drawing.Size(485, 21); + this.comboBoxModel.TabIndex = 0; + this.comboBoxModel.SelectedIndexChanged += new System.EventHandler(this.comboBoxModel_SelectedIndexChanged); + this.comboBoxModel.Enter += new System.EventHandler(this.comboBoxModel_Enter); + // + // label1 + // + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(8, 8); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(48, 12); + this.label1.TabIndex = 3; + this.label1.Text = "Model:"; + // + // propertyGrid + // + this.propertyGrid.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.propertyGrid.Cursor = System.Windows.Forms.Cursors.HSplit; + this.propertyGrid.LineColor = System.Drawing.SystemColors.ScrollBar; + this.propertyGrid.Location = new System.Drawing.Point(8, 16); + this.propertyGrid.Name = "propertyGrid"; + this.propertyGrid.Size = new System.Drawing.Size(258, 311); + this.propertyGrid.TabIndex = 28; + // + // outputExchangeItemSelector + // + this.outputExchangeItemSelector.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.outputExchangeItemSelector.Location = new System.Drawing.Point(8, 16); + this.outputExchangeItemSelector.Name = "outputExchangeItemSelector"; + this.outputExchangeItemSelector.Size = new System.Drawing.Size(257, 142); + this.outputExchangeItemSelector.TabIndex = 27; + this.outputExchangeItemSelector.SelectionChanged += new System.EventHandler(this.outputExchangeItemSelector_SelectionChanged); + // + // groupBoxOutputExchnageItems + // + this.groupBoxOutputExchnageItems.Controls.Add(this.outputExchangeItemSelector); + this.groupBoxOutputExchnageItems.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBoxOutputExchnageItems.Location = new System.Drawing.Point(8, 28); + this.groupBoxOutputExchnageItems.Name = "groupBoxOutputExchnageItems"; + this.groupBoxOutputExchnageItems.Size = new System.Drawing.Size(273, 163); + this.groupBoxOutputExchnageItems.TabIndex = 29; + this.groupBoxOutputExchnageItems.TabStop = false; + this.groupBoxOutputExchnageItems.Text = "Sources"; + // + // inputExchangeItemSelector + // + this.inputExchangeItemSelector.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.inputExchangeItemSelector.Location = new System.Drawing.Point(8, 16); + this.inputExchangeItemSelector.Name = "inputExchangeItemSelector"; + this.inputExchangeItemSelector.Size = new System.Drawing.Size(257, 144); + this.inputExchangeItemSelector.TabIndex = 1; + this.inputExchangeItemSelector.SelectionChanged += new System.EventHandler(this.inputExchangeItemSelector_SelectionChanged); + // + // groupBoxProperties + // + this.groupBoxProperties.Controls.Add(this.propertyGrid); + this.groupBoxProperties.Dock = System.Windows.Forms.DockStyle.Right; + this.groupBoxProperties.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.groupBoxProperties.Location = new System.Drawing.Point(285, 28); + this.groupBoxProperties.Name = "groupBoxProperties"; + this.groupBoxProperties.Size = new System.Drawing.Size(272, 331); + this.groupBoxProperties.TabIndex = 30; + this.groupBoxProperties.TabStop = false; + this.groupBoxProperties.Text = "Properties"; + // + // btnViewer + // + this.btnViewer.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnViewer.Enabled = false; + this.btnViewer.Location = new System.Drawing.Point(0, 6); + this.btnViewer.Name = "btnViewer"; + this.btnViewer.Size = new System.Drawing.Size(108, 24); + this.btnViewer.TabIndex = 33; + this.btnViewer.Text = "&Viewer"; + this.btnViewer.Click += new System.EventHandler(this.buttonViewElementSet_Click); + // + // buttonClose + // + this.buttonClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.Location = new System.Drawing.Point(441, 6); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(108, 24); + this.buttonClose.TabIndex = 31; + this.buttonClose.Text = "Close"; + this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); + // + // panelTop + // + this.panelTop.Controls.Add(this.label1); + this.panelTop.Controls.Add(this.comboBoxModel); + this.panelTop.Dock = System.Windows.Forms.DockStyle.Top; + this.panelTop.Location = new System.Drawing.Point(8, 0); + this.panelTop.Name = "panelTop"; + this.panelTop.Size = new System.Drawing.Size(549, 28); + this.panelTop.TabIndex = 32; + // + // panelBottom + // + this.panelBottom.Controls.Add(this.buttonClose); + this.panelBottom.Controls.Add(this.btnViewer); + this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panelBottom.Location = new System.Drawing.Point(8, 359); + this.panelBottom.Name = "panelBottom"; + this.panelBottom.Size = new System.Drawing.Size(549, 30); + this.panelBottom.TabIndex = 33; + // + // groupBoxInputExchangeItems + // + this.groupBoxInputExchangeItems.Controls.Add(this.inputExchangeItemSelector); + this.groupBoxInputExchangeItems.Dock = System.Windows.Forms.DockStyle.Bottom; + this.groupBoxInputExchangeItems.Location = new System.Drawing.Point(8, 195); + this.groupBoxInputExchangeItems.Name = "groupBoxInputExchangeItems"; + this.groupBoxInputExchangeItems.Size = new System.Drawing.Size(273, 164); + this.groupBoxInputExchangeItems.TabIndex = 0; + this.groupBoxInputExchangeItems.TabStop = false; + this.groupBoxInputExchangeItems.Text = "Targets"; + // + // splitterVertical + // + this.splitterVertical.Dock = System.Windows.Forms.DockStyle.Right; + this.splitterVertical.Location = new System.Drawing.Point(281, 28); + this.splitterVertical.MinExtra = 150; + this.splitterVertical.MinSize = 150; + this.splitterVertical.Name = "splitterVertical"; + this.splitterVertical.Size = new System.Drawing.Size(4, 331); + this.splitterVertical.TabIndex = 34; + this.splitterVertical.TabStop = false; + // + // splitterHorizontal + // + this.splitterHorizontal.Dock = System.Windows.Forms.DockStyle.Bottom; + this.splitterHorizontal.Location = new System.Drawing.Point(8, 191); + this.splitterHorizontal.MinExtra = 150; + this.splitterHorizontal.MinSize = 150; + this.splitterHorizontal.Name = "splitterHorizontal"; + this.splitterHorizontal.Size = new System.Drawing.Size(273, 4); + this.splitterHorizontal.TabIndex = 35; + this.splitterHorizontal.TabStop = false; + // + // ModelDialog + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(565, 397); + this.Controls.Add(this.groupBoxOutputExchnageItems); + this.Controls.Add(this.splitterHorizontal); + this.Controls.Add(this.groupBoxInputExchangeItems); + this.Controls.Add(this.splitterVertical); + this.Controls.Add(this.groupBoxProperties); + this.Controls.Add(this.panelTop); + this.Controls.Add(this.panelBottom); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(500, 400); + this.Name = "ModelDialog"; + this.Padding = new System.Windows.Forms.Padding(8, 0, 8, 8); + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; + this.Text = "Model properties"; + this.Resize += new System.EventHandler(this.ModelDialog_Resize); + this.groupBoxOutputExchnageItems.ResumeLayout(false); + this.groupBoxProperties.ResumeLayout(false); + this.panelTop.ResumeLayout(false); + this.panelBottom.ResumeLayout(false); + this.groupBoxInputExchangeItems.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + + private List _uiModels; + private string _loadedModelID; + + private ElementSetViewer _elementSetViewer; + + /// + /// Populates this dialog with models. + /// + /// List of models, ie. UIModel objects. + /// ID of the model to be selected. + public void PopulateDialog( List uiModels, string modelID ) + { + _uiModels = uiModels; + _loadedModelID = null; + + string modelIdToSelect = null; + + comboBoxModel.Items.Clear(); + + for( int i=0; i + /// Populates this dialog with models. + ///
+ /// List of models, ie. UIModel objects. + public void PopulateDialog(List uiModels) + { + PopulateDialog( uiModels, null ); + } + + + /// + /// Selects one model to be shown in dialog. + /// + /// ID of model to be selected. + public void SelectModel( string modelID ) + { + if( modelID == null ) + { + outputExchangeItemSelector.TreePopulate(_treeOptionsSources); + inputExchangeItemSelector.TreePopulate(_treeOptionsTargets); + _loadedModelID = null; + } + else + { + // find model by ID + int modelIndex = -1; + for( int i=0; i=_uiModels.Count ) + { + // model with modelID wasn't found + Debug.Assert( false ); + SelectModel( null ); + return; + } + + UIModel selectedModel = (UIModel)_uiModels[ modelIndex ]; + + Debug.Assert( selectedModel.InstanceCaption == modelID ); + + // load exchange items (if they aren't already loaded) + if( modelID != _loadedModelID ) + { + outputExchangeItemSelector.TreePopulate(selectedModel.LinkableComponent, _treeOptionsSources); + inputExchangeItemSelector.TreePopulate(selectedModel.LinkableComponent, _treeOptionsTargets); + + _loadedModelID = selectedModel.InstanceCaption; + } + + // select model also in comboBox + // this can cause this method is reentered + comboBoxModel.SelectedIndex = modelIndex; + + //labelInfo.Text = "Model " + selectedModel.ModelID; + + // show properties of this model + PropertyGridSelectObject( selectedModel.LinkableComponent ); + } + } + + private void PropertyGridSelectObject( object obj ) + { + propertyGrid.SelectedObject = Oatc.OpenMI.Gui.Controls.PropertyPane.Selection(obj); +/* + string text = ""; + propertyGrid.SelectedObject = Oatc.OpenMI.Gui.Controls.PropertyManager.ConstructPropertyManager( obj, true, ref text ); + groupBoxProperties.Text = text; + * */ + } + + + private void comboBoxModel_SelectedIndexChanged(object sender, System.EventArgs e) + { + if( comboBoxModel.SelectedIndex < 0 ) + SelectModel( null ); + else + SelectModel( (string)comboBoxModel.Items[comboBoxModel.SelectedIndex] ); + } + + private void comboBoxModel_Enter(object sender, System.EventArgs e) + { + comboBoxModel_SelectedIndexChanged( sender, e ); + } + + + private void outputExchangeItemSelector_SelectionChanged(object sender, System.EventArgs e) + { + UIExchangeItem item = outputExchangeItemSelector.GetSelectedObject(); + + PropertyGridSelectObject(item); + + btnViewer.Enabled = item != null && item is IOutput; + } + + private void inputExchangeItemSelector_SelectionChanged(object sender, System.EventArgs e) + { + object item = inputExchangeItemSelector.GetSelectedObject(); + + PropertyGridSelectObject(item); + + btnViewer.Enabled = item != null && item is IInput; + } + + private void buttonClose_Click(object sender, System.EventArgs e) + { + Close(); + } + + private void buttonViewElementSet_Click(object sender, System.EventArgs e) + { + Debug.Assert(btnViewer.Enabled); + + ArrayList elementSets = new ArrayList(); + + UIExchangeItem item = inputExchangeItemSelector.GetSelectedObject(); + + if (item != null && item.ElementSet != null) + elementSets.Add(item.ElementSet); + + item = outputExchangeItemSelector.GetSelectedObject(); + + if (item != null && item.ElementSet != null) + elementSets.Add(item.ElementSet); + + if (elementSets.Count > 0) + { + _elementSetViewer.PopulateDialog(elementSets); + _elementSetViewer.ShowDialog(); + } + } + + private void ModelDialog_Resize(object sender, System.EventArgs e) + { + if( groupBoxInputExchangeItems.Width < 100 ) + groupBoxInputExchangeItems.Width = 100; + if( groupBoxInputExchangeItems.Height < 100 ) + groupBoxInputExchangeItems.Height = 100; + + if( groupBoxOutputExchnageItems.Width < 100 ) + groupBoxOutputExchnageItems.Width = 100; + if( groupBoxOutputExchnageItems.Height < 100 ) + groupBoxOutputExchnageItems.Height = 100; + + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/ModelDialog.resx b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/ModelDialog.resx new file mode 100644 index 00000000..750db409 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/ModelDialog.resx @@ -0,0 +1,536 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/OmiEd.ico b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/OmiEd.ico new file mode 100644 index 00000000..5ef2c3dc Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/OmiEd.ico differ diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Run.Designer.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Run.Designer.cs new file mode 100644 index 00000000..4d3998ca --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Run.Designer.cs @@ -0,0 +1,184 @@ +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + partial class Run + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Run)); + this.btnCancel = new System.Windows.Forms.Button(); + this.btnOk = new System.Windows.Forms.Button(); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.labelMessage = new System.Windows.Forms.Label(); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.logToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.menuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(436, 214); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 0; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // btnOk + // + this.btnOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOk.Location = new System.Drawing.Point(355, 214); + this.btnOk.Name = "btnOk"; + this.btnOk.Size = new System.Drawing.Size(75, 23); + this.btnOk.TabIndex = 1; + this.btnOk.Text = "Run"; + this.btnOk.UseVisualStyleBackColor = true; + this.btnOk.Click += new System.EventHandler(this.btnOk_Click); + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.AllowUserToDeleteRows = false; + this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; + this.dataGridView1.Location = new System.Drawing.Point(15, 27); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.ReadOnly = true; + this.dataGridView1.RowHeadersWidth = 4; + this.dataGridView1.Size = new System.Drawing.Size(496, 181); + this.dataGridView1.TabIndex = 10; + // + // labelMessage + // + this.labelMessage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labelMessage.AutoSize = true; + this.labelMessage.Location = new System.Drawing.Point(12, 215); + this.labelMessage.Name = "labelMessage"; + this.labelMessage.Size = new System.Drawing.Size(55, 13); + this.labelMessage.TabIndex = 11; + this.labelMessage.Text = "Messages"; + // + // menuStrip1 + // + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem, + this.viewToolStripMenuItem}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(523, 24); + this.menuStrip1.TabIndex = 12; + this.menuStrip1.Text = "menuStrip1"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.openToolStripMenuItem}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(35, 20); + this.fileToolStripMenuItem.Text = "File"; + // + // openToolStripMenuItem + // + this.openToolStripMenuItem.Name = "openToolStripMenuItem"; + this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); + this.openToolStripMenuItem.Size = new System.Drawing.Size(155, 22); + this.openToolStripMenuItem.Text = "Open ..."; + this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); + // + // viewToolStripMenuItem + // + this.viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.logToolStripMenuItem}); + this.viewToolStripMenuItem.Name = "viewToolStripMenuItem"; + this.viewToolStripMenuItem.Size = new System.Drawing.Size(41, 20); + this.viewToolStripMenuItem.Text = "View"; + // + // logToolStripMenuItem + // + this.logToolStripMenuItem.Name = "logToolStripMenuItem"; + this.logToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.L))); + this.logToolStripMenuItem.Size = new System.Drawing.Size(143, 22); + this.logToolStripMenuItem.Text = "Log ..."; + this.logToolStripMenuItem.Click += new System.EventHandler(this.logToolStripMenuItem_Click); + // + // progressBar1 + // + this.progressBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.progressBar1.Location = new System.Drawing.Point(164, 214); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(185, 23); + this.progressBar1.TabIndex = 13; + // + // Run + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(523, 249); + this.Controls.Add(this.progressBar1); + this.Controls.Add(this.labelMessage); + this.Controls.Add(this.dataGridView1); + this.Controls.Add(this.btnOk); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.menuStrip1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MainMenuStrip = this.menuStrip1; + this.Name = "Run"; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; + this.Text = "Run"; + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Button btnOk; + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.Label labelMessage; + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem viewToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem logToolStripMenuItem; + private System.Windows.Forms.ProgressBar progressBar1; + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Run.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Run.cs new file mode 100644 index 00000000..224060f7 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Run.cs @@ -0,0 +1,449 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Threading; // TODO remove with Sleep? +using System.IO; + +using OpenMI.Standard2; +using Oatc.OpenMI.Gui.Core; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + public partial class Run : Form + { + enum RunStatus { Runable, Running, Done, Aborted, Failed, } + + RunStatus _runStatus = RunStatus.Runable; + FileInfo _oprFile; + Table _table; + CompositionRun _runManager; + List _logCache; + int _nOprIndexTrigger = -1; + DateTime _startTime; + TimeSpan _timeSpan; + + public Run() + { + InitializeComponent(); + } + + public class Table : DataTable + { + public enum EColumns { Component = 0, Status, Progress, Changed, Events, } + + Type[] _columnTypes = new Type[] { + typeof(String), + typeof(String), + typeof(Int32), + typeof(String), + typeof(Int32), + }; + + String[] _columnNames = new String[] { + EColumns.Component.ToString(), + EColumns.Status.ToString(), + EColumns.Progress.ToString(), + "Last event updated", + EColumns.Events.ToString(), + }; + + public void Initialise(List captions) + { + for (int n = 0; n < Enum.GetNames(typeof(EColumns)).Length; ++n) + base.Columns.Add(new DataColumn(_columnNames[n], _columnTypes[n])); + + DataRow row; + + foreach (string caption in captions) + { + row = NewRow(); + row[(int)EColumns.Component] = caption; + row[(int)EColumns.Status] = ""; + row[(int)EColumns.Progress] = 0; + row[(int)EColumns.Changed] = ""; + row[(int)EColumns.Events] = 0; + + Rows.Add(row); + } + } + + public DataGridViewCell Cell(EColumns column, int oprIndex, DataGridView grid) + { + return grid.Rows[oprIndex].Cells[(int)column]; + } + } + + public class Log : DataTable + { + public enum EColumns { DateTime = 0, Component, Details} + + Type[] _columnTypes = new Type[] { + typeof(DateTime), + typeof(String), + typeof(String), + }; + + String[] _columnNames = new String[] { + EColumns.DateTime.ToString(), + EColumns.Component.ToString(), + EColumns.Details.ToString(), + }; + + List _rows = new List(); + + public void Initialise(List states) + { + for (int n = 0; n < Enum.GetNames(typeof(EColumns)).Length; ++n) + base.Columns.Add(new DataColumn(_columnNames[n], _columnTypes[n])); + + DataRow row; + LinkableComponentStatusChangeEventArgs status; + ExchangeItemChangeEventArgs exchange; + StringBuilder sb; + int? progress; + + foreach (CompositionRun.State state in states) + { + row = NewRow(); + row[(int)EColumns.DateTime] = state.LastEventUpdate; + + if (state.StatusArgs != null) + { + status = state.StatusArgs; + + progress = state.Progress; + + row[(int)EColumns.Component] = string.Format("{0}: {1}", + state.OprIndex.ToString(), + status.LinkableComponent.Caption); + row[(int)EColumns.Details] = progress != null + ? string.Format( + "[{0}%], Component Status: {1} => {2}", + progress.ToString(), + status.OldStatus.ToString(), + status.NewStatus.ToString()) + : string.Format( + "Component Status: {0} => {1}", + status.OldStatus.ToString(), + status.NewStatus.ToString()); + } + else + { + exchange = state.ExchangeArgs; + + row[(int)EColumns.Component] = string.Format("{0}: {1}", + state.OprIndex.ToString(), + exchange.ExchangeItem.Component.Caption); + + sb = new StringBuilder(string.Format( + "{0}: {1}, ", + exchange.ExchangeItem is IInput ? "Target" : "Source", + exchange.ExchangeItem.Caption)); + + if (exchange.Message != string.Empty) + sb.Append(exchange.Message); + + row[(int)EColumns.Details] = sb.ToString(); + } + + Rows.Add(row); + } + } + + public DataGridViewCell Cell(EColumns column, int oprIndex, DataGridView grid) + { + return grid.Rows[oprIndex].Cells[(int)column]; + } + } + + void UpdateTitleText(int? progress) + { + string text = progress == null + ? string.Format("Run: {0}", _oprFile.Name) + : string.Format("Run [{0}%]: {1}", progress.Value.ToString(), _oprFile.Name); + + if (text != Text) + Text = text; + } + + public void Initialise(string oprFile) + { + if (oprFile == "") + Open(); + + Status = RunStatus.Runable; + _oprFile = new FileInfo(oprFile); + _table = new Table(); + _runManager = new CompositionRun(); + _logCache = new List(); + + List captions = new List(); + + List models; + List connections; + + Opr.Load(_oprFile, out models, out connections); + + if (models.Count == 0) + throw new InvalidDataException("No models found in " + _oprFile.FullName); + + // LinkableComponents + + int nOprIndex = -1; + + foreach (UIModel model in models) + { + ++nOprIndex; + + captions.Add(model.LinkableComponent.Caption); + + if (model.IsTrigger) + _nOprIndexTrigger = nOprIndex; + } + + _table.Initialise(captions); + + dataGridView1.DataSource = _table; + + btnOk.Text = "Run"; + + UpdateTitleText(null); + Refresh(); + } + + private void btnLog_Click(object sender, EventArgs e) + { + } + + private void btnOk_Click(object sender, EventArgs e) + { + if (Status == RunStatus.Runable) + RunComposition(); + else if (Status == RunStatus.Running) + Abort(); + else + Reload(); + } + + private void Abort() + { + _runManager.Cancel(); + } + + private void Reload() + { + FileInfo oprFile = _oprFile; + + AssemblySupport.ReleaseAll(); + + progressBar1.Value = 0; + progressBar1.Invalidate(); + UpdateTitleText(null); + + Initialise(oprFile.FullName); + } + + private void RunComposition() + { + Status = RunStatus.Running; + + progressBar1.Minimum = 0; + progressBar1.Maximum = 100; + progressBar1.Value = 0; + UpdateTitleText(0); + + _startTime = DateTime.Now; + + _runManager.AllowCancel = true; // as in UI + _runManager.RunAsync(_oprFile, RunProgress, RunCompleted); + } + + RunStatus Status + { + get { return _runStatus; } + set + { + _runStatus = value; + + string elapsed = string.Format("{0},{1},{2}.{3}", + _timeSpan.Hours, _timeSpan.Minutes, + _timeSpan.Seconds, _timeSpan.Milliseconds); + + switch (_runStatus) + { + case RunStatus.Aborted: + btnOk.Text = "Reload"; + labelMessage.Text = string.Format("Aborted [{0}%]\r\nElapsed {1}", + progressBar1.Value, elapsed); + break; + case RunStatus.Failed: + btnOk.Text = "Reload"; + labelMessage.Text = string.Format("Failed [{0}%]\r\nElapsed {1}", + progressBar1.Value, elapsed); + break; + case RunStatus.Done: + btnOk.Text = "Reload"; + labelMessage.Text = string.Format("Run completed\r\nElapsed {0}", + elapsed); + break; + case RunStatus.Runable: + btnOk.Text = "Run"; + labelMessage.Text = "Loaded"; + break; + case RunStatus.Running: + btnOk.Text = "Abort"; + // labelMessage.Text updated elsewhere + break; + default: + btnOk.Text = "Reload"; + labelMessage.Text = "Requires reload"; + break; + } + + Refresh(); + } + } + + + void RunCompleted(object sender, RunWorkerCompletedEventArgs e) + { + if (_runManager.Canceled || e.Cancelled) + { + // Note that due to a race condition in + // the DoWork event handler, the Cancelled + // flag may not have been set, even though + // CancelAsync was called. + Status = RunStatus.Aborted; + } + else if (e.Error != null) + { + Status = RunStatus.Failed; + MessageBox.Show(Utils.ToString(e.Error), + "Run failed ...", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + else + Status = RunStatus.Done; + } + + void RunProgress(object sender, ProgressChangedEventArgs e) + { + lock (this) + { + if (e.UserState != null + && (e.UserState is CompositionRun.State)) + { + CompositionRun.State state + = (CompositionRun.State)e.UserState; + + DataGridViewCell cellComponent = _table.Cell(Table.EColumns.Component, state.OprIndex, dataGridView1); + + // Status + + DataGridViewCell cellStatus = _table.Cell(Table.EColumns.Status, state.OprIndex, dataGridView1); + + ILinkableComponent iLC = state.StatusArgs != null + ? state.StatusArgs.LinkableComponent + : state.ExchangeArgs.ExchangeItem.Component; + + cellStatus.Value = iLC != null ? iLC.Status.ToString() : ""; + dataGridView1.InvalidateCell(cellStatus); + + // Changes Count + + DataGridViewCell cellChanges = _table.Cell(Table.EColumns.Events, state.OprIndex, dataGridView1); + + cellChanges.Value = (int)cellChanges.Value + 1; + dataGridView1.InvalidateCell(cellChanges); + + // Changed Time + + DataGridViewCell cellChanged = _table.Cell(Table.EColumns.Changed, state.OprIndex, dataGridView1); + cellChanged.Value = state.LastEventUpdate; + dataGridView1.InvalidateCell(cellChanged); + + // Changed Progress + + int? progress = state.Progress; + + if (progress != null) + { + DataGridViewCell cellProgress = _table.Cell(Table.EColumns.Progress, state.OprIndex, dataGridView1); + cellProgress.Value = progress.Value; + dataGridView1.InvalidateCell(cellProgress); + + if (state.OprIndex == _nOprIndexTrigger + && progressBar1.Value != progress.Value) + { + progressBar1.Value = progress.Value; + progressBar1.Invalidate(); + + UpdateTitleText(progress); + + _timeSpan = DateTime.Now - _startTime; + + string elapsed = string.Format("{0},{1},{2}.{3}", + _timeSpan.Hours, _timeSpan.Minutes, + _timeSpan.Seconds, _timeSpan.Milliseconds); + + labelMessage.Text = string.Format("Running [{0}%]\r\nElapsed {1}", + progress.Value, elapsed); + } + } + + dataGridView1.Refresh(); + + _logCache.Add(state); + } + } + } + + public static void RunComposition(string oprFile) + { + try + { + Run run = new Run(); + run.Initialise(oprFile); + run.ShowDialog(); + } + catch (Exception e) + { + MessageBox.Show(Utils.ToString(e), + "Run UI failed ...", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void openToolStripMenuItem_Click(object sender, EventArgs e) + { + Open(); + } + + private void Open() + { + using (OpenFileDialog dlg = new OpenFileDialog()) + { + dlg.Filter = "Projects (*.opr)|*.opr|All files|*.*"; + dlg.Multiselect = false; + dlg.CheckFileExists = true; + dlg.CheckPathExists = true; + dlg.Title = "Open project..."; + + if (dlg.ShowDialog(this) != DialogResult.OK) + return; + + _oprFile = new FileInfo(dlg.FileName); + + Reload(); + } + } + + private void logToolStripMenuItem_Click(object sender, EventArgs e) + { + RunLog logView = new RunLog(_logCache); + logView.ShowDialog(this); + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Run.resx b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Run.resx new file mode 100644 index 00000000..94f11b34 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Run.resx @@ -0,0 +1,539 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 17, 17 + + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunBox.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunBox.cs new file mode 100644 index 00000000..610a5e77 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunBox.cs @@ -0,0 +1,416 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using Oatc.OpenMI.Gui.Core; +using OpenMI.Standard2; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + /// + /// Summary description for RunBox. + /// + public class RunBox : System.Windows.Forms.Form + { + CompositionManager _composition; + + + private System.Windows.Forms.Button buttonStop; + private System.Windows.Forms.ProgressBar progressBarRun; + private System.Windows.Forms.Button buttonClose; + private System.Windows.Forms.Label labelInfo; + private System.ComponentModel.IContainer components; + + private bool _finished; + private bool _started; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Timer timerProgress; + private System.Windows.Forms.ColumnHeader _colType; + private System.Windows.Forms.ColumnHeader _colDescription; + private System.Windows.Forms.ColumnHeader _colSender; + private System.Windows.Forms.ColumnHeader _colSimulationTime; + private System.Windows.Forms.ListView listViewEvents; + private System.Windows.Forms.ColumnHeader _colOrder; + + /// + /// Creates a new instance of RunBox dialog. + /// + public RunBox() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // + // TODO: Add any constructor code after InitializeComponent call + // + } + + + /// + /// Progress bar showing simulation progress. + /// + /// This property is used to initialize ProgressBarListener. + public ProgressBar ProgressBarRun + { + get { return(progressBarRun); } + } + + + /// + /// Listview showing events during simulation. + /// + /// This property is used to initialize ListViewListener. + public ListView ListViewEvents + { + get { return(listViewEvents); } + } + + + /// + /// Timer used to initiate sending of events to UI listeners. + /// + public Timer Timer + { + get { return(timerProgress); } + } + + public ListView ListView + { + get { return listViewEvents; } + } + + /// + /// Populates this dialog with specified composition and proxy listener. + /// + /// Composition which simulation is to be run. + /// Listener which is used for monitoring simulation. + /// + /// Simulation is fired after this dialog is showed. That's because if + /// simulation runs in same thread we won't be able to show it another way. + /// We determine whether simulation runs in same thread using + /// CompositionManager.RunInSameThread property. + /// + public void PopuplateDialog( CompositionManager composition) + { + _composition = composition; + _finished = false; + _started = false; + buttonClose.Enabled = !composition.RunInSameThread; + buttonStop.Enabled = !composition.RunInSameThread; + + progressBarRun.Value = 0; + progressBarRun.Enabled = true; + + labelInfo.Text = "Running..."; + + listViewEvents.Items.Clear(); + } + + + private void RunBox_Paint(object sender, System.Windows.Forms.PaintEventArgs e) + { + // this event is fired when this dialog is shown + StartSimulation(); + } + + + /// + /// Method fires simulation if not already running. + /// + private void StartSimulation() + { + // this method is called from repaint handler + + // we start simulation here because now we are sure, + // dialog is already visible on the screen. + // Thats because if running in same thread, we won't be able to show it another way. + if( !_started ) + { + _started = true; + Invalidate(); // next call may block this repaint handler, so another repaint event should be generated + _composition.Run(_composition.RunInSameThread ); + } + } + + + private void buttonStop_Click(object sender, System.EventArgs e) + { + if( buttonStop.Enabled ) + { + _composition.Stop(); + buttonStop.Enabled = false; + } + } + + + private void progressBarRun_EnabledChanged(object sender, System.EventArgs e) + { + // This event is fired by ProgressBarListener ( called from Proxy(MultiThread)Listener ) + // when simulation finishes + if( !progressBarRun.Enabled ) + { + progressBarRun.Value = progressBarRun.Maximum; + buttonStop.Enabled = false; + buttonClose.Enabled = true; + labelInfo.Text = "Done..."; + _finished = true; + } + } + + + private void buttonClose_Click(object sender, System.EventArgs e) + { + Close(); + } + + + private void RunBox_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // if running in same thread and simulation hasn't finished yet, + // we cannot close dialog + if( !_finished ) + { + if( _composition.RunInSameThread ) + { + e.Cancel = true; + return; + } + + switch( MessageBox.Show("Simulation hasn't finished yet, do you want to stop it?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) ) + { + case DialogResult.Yes: + buttonStop_Click( null, null ); + break; + + default: + e.Cancel = true; + return; + } + } + + switch( MessageBox.Show("All models have been finished (i.e. Finish() method was called on them). Do you want to reload project?\n\nHint: Some models aren't able to run simulation again unless they are reloaded and maybe they can have\nmalformed properties (like exchange items, model ID, etc...). However, some models can delete result\nfiles of their simulation if you reload them.", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) ) + { + case DialogResult.Yes: + _composition.ReOpen(); + break; + + default: + break; + } + + // clean-up + listViewEvents.Items.Clear(); + } + + + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem(""); + System.Windows.Forms.ListViewItem listViewItem2 = new System.Windows.Forms.ListViewItem(""); + System.Windows.Forms.ListViewItem listViewItem3 = new System.Windows.Forms.ListViewItem(""); + System.Windows.Forms.ListViewItem listViewItem4 = new System.Windows.Forms.ListViewItem(""); + System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(RunBox)); + this.labelInfo = new System.Windows.Forms.Label(); + this.buttonStop = new System.Windows.Forms.Button(); + this.progressBarRun = new System.Windows.Forms.ProgressBar(); + this.buttonClose = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.timerProgress = new System.Windows.Forms.Timer(this.components); + this.listViewEvents = new System.Windows.Forms.ListView(); + this._colType = new System.Windows.Forms.ColumnHeader(); + this._colDescription = new System.Windows.Forms.ColumnHeader(); + this._colSender = new System.Windows.Forms.ColumnHeader(); + this._colSimulationTime = new System.Windows.Forms.ColumnHeader(); + this._colOrder = new System.Windows.Forms.ColumnHeader(); + this.SuspendLayout(); + // + // labelInfo + // + this.labelInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.labelInfo.Location = new System.Drawing.Point(4, 4); + this.labelInfo.Name = "labelInfo"; + this.labelInfo.Size = new System.Drawing.Size(460, 16); + this.labelInfo.TabIndex = 0; + this.labelInfo.Text = "Running..."; + // + // buttonStop + // + this.buttonStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonStop.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonStop.Location = new System.Drawing.Point(280, 202); + this.buttonStop.Name = "buttonStop"; + this.buttonStop.Size = new System.Drawing.Size(84, 24); + this.buttonStop.TabIndex = 1; + this.buttonStop.Text = "Stop !!!"; + this.buttonStop.Click += new System.EventHandler(this.buttonStop_Click); + // + // progressBarRun + // + this.progressBarRun.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.progressBarRun.Location = new System.Drawing.Point(4, 24); + this.progressBarRun.Maximum = 256; + this.progressBarRun.Name = "progressBarRun"; + this.progressBarRun.Size = new System.Drawing.Size(464, 24); + this.progressBarRun.TabIndex = 2; + this.progressBarRun.EnabledChanged += new System.EventHandler(this.progressBarRun_EnabledChanged); + // + // buttonClose + // + this.buttonClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.Enabled = false; + this.buttonClose.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClose.Location = new System.Drawing.Point(372, 202); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(84, 24); + this.buttonClose.TabIndex = 3; + this.buttonClose.Text = "Close"; + this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label1.Location = new System.Drawing.Point(4, 56); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(464, 16); + this.label1.TabIndex = 5; + this.label1.Text = "Events:"; + // + // listViewEvents + // + this.listViewEvents.AllowColumnReorder = true; + this.listViewEvents.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.listViewEvents.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.listViewEvents.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this._colOrder, + this._colType, + this._colDescription, + this._colSender, + this._colSimulationTime}); + this.listViewEvents.FullRowSelect = true; + this.listViewEvents.GridLines = true; + this.listViewEvents.Items.AddRange(new System.Windows.Forms.ListViewItem[] { + listViewItem1, + listViewItem2, + listViewItem3, + listViewItem4}); + this.listViewEvents.Location = new System.Drawing.Point(4, 76); + this.listViewEvents.Name = "listViewEvents"; + this.listViewEvents.Size = new System.Drawing.Size(464, 116); + this.listViewEvents.TabIndex = 6; + this.listViewEvents.View = System.Windows.Forms.View.Details; + // + // _colType + // + this._colType.Text = "Type"; + this._colType.Width = 82; + // + // _colDescription + // + this._colDescription.Text = "Description"; + this._colDescription.Width = 147; + // + // _colSender + // + this._colSender.Text = "Sender"; + this._colSender.Width = 82; + // + // _colSimulationTime + // + this._colSimulationTime.Text = "Simulation Time"; + this._colSimulationTime.Width = 102; + // + // _colOrder + // + this._colOrder.Text = "Order"; + this._colOrder.Width = 48; + // + // RunBox + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.CancelButton = this.buttonClose; + this.ClientSize = new System.Drawing.Size(472, 233); + this.Controls.Add(this.listViewEvents); + this.Controls.Add(this.label1); + this.Controls.Add(this.buttonClose); + this.Controls.Add(this.progressBarRun); + this.Controls.Add(this.buttonStop); + this.Controls.Add(this.labelInfo); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(440, 200); + this.Name = "RunBox"; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; + this.Text = "Simulation progress"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.RunBox_Closing); + this.Paint += new System.Windows.Forms.PaintEventHandler(this.RunBox_Paint); + this.ResumeLayout(false); + + } + #endregion + + + + + + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunBox.resx b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunBox.resx new file mode 100644 index 00000000..24da9bd9 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunBox.resx @@ -0,0 +1,638 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 17, 17 + + + Private + + + False + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + False + + + (Default) + + + False + + + False + + + 4, 4 + + + True + + + RunBox + + + 80 + + + True + + + Private + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunLog.Designer.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunLog.Designer.cs new file mode 100644 index 00000000..75d731c8 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunLog.Designer.cs @@ -0,0 +1,67 @@ +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + partial class RunLog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RunLog)); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.SuspendLayout(); + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.AllowUserToDeleteRows = false; + this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView1.Location = new System.Drawing.Point(0, 0); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.ReadOnly = true; + this.dataGridView1.Size = new System.Drawing.Size(292, 266); + this.dataGridView1.TabIndex = 0; + // + // RunLog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(292, 266); + this.Controls.Add(this.dataGridView1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "RunLog"; + this.Text = "Run Log"; + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DataGridView dataGridView1; + } +} \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunLog.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunLog.cs new file mode 100644 index 00000000..26f7a27d --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunLog.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +using Oatc.OpenMI.Gui.Core; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + public partial class RunLog : Form + { + Run.Log _table = new Run.Log(); + + public RunLog(List cache) + { + InitializeComponent(); + + _table.Initialise(cache); + + dataGridView1.DataSource = _table; + } + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunLog.resx b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunLog.resx new file mode 100644 index 00000000..750db409 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunLog.resx @@ -0,0 +1,536 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunProperties.cs b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunProperties.cs new file mode 100644 index 00000000..78ca0dbd --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunProperties.cs @@ -0,0 +1,654 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Diagnostics; +using System.Windows.Forms; +using Oatc.OpenMI.Gui.Core; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard2; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + /// + /// Summary description for RunProperties. + /// + public class RunProperties : System.Windows.Forms.Form + { + #region Window controls + + private System.Windows.Forms.CheckBox cbEventTypeWarning; + private System.Windows.Forms.CheckBox cbEventTypeValOutOfRange; + private System.Windows.Forms.CheckBox cbEventTypeTimeStepProgress; + private System.Windows.Forms.CheckBox cbEventTypeTargetBefore; + private System.Windows.Forms.CheckBox cbEventTypeTargetAfter; + private System.Windows.Forms.CheckBox cbEventTypeSourceBefore; + private System.Windows.Forms.CheckBox cbEventTypeSourceAfter; + private System.Windows.Forms.CheckBox cbEventTypeOther; + private System.Windows.Forms.CheckBox cbEventTypeInformative; + private System.Windows.Forms.CheckBox cbEventTypeGlobalProgress; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.CheckBox cbEventTypeDataChanged; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button buttonTimeLatestOverlapping; + private System.Windows.Forms.Button buttonRun; + private System.Windows.Forms.TextBox textTriggerInvokeTime; + private System.Windows.Forms.Button buttonClose; + private System.Windows.Forms.TextBox textLogToFile; + private System.Windows.Forms.CheckBox checkBoxLogToFile; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + #endregion + + CompositionManager _composition; + private System.Windows.Forms.Button buttonSetAll; + private System.Windows.Forms.Button buttonClearAll; + private System.Windows.Forms.Button buttonBrowseLogFile; + private System.Windows.Forms.CheckBox checkBoxNoMultithreading; + private System.Windows.Forms.CheckBox checkBoxEventsToListbox; + bool runIt; + + /// + /// Creates a new instance of RunProperties dialog. + /// + public RunProperties() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + +/* + checkboxesEventTypes = new CheckBox[ (int)EventType.NUM_OF_EVENT_TYPES ]; + checkboxesEventTypes[0] = cbEventTypeWarning; + checkboxesEventTypes[1] = cbEventTypeInformative; + checkboxesEventTypes[2] = cbEventTypeValOutOfRange; + checkboxesEventTypes[3] = cbEventTypeGlobalProgress; + checkboxesEventTypes[4] = cbEventTypeTimeStepProgress; + checkboxesEventTypes[5] = cbEventTypeDataChanged; + checkboxesEventTypes[6] = cbEventTypeTargetBefore; + checkboxesEventTypes[7] = cbEventTypeSourceAfter; + checkboxesEventTypes[8] = cbEventTypeSourceBefore; + checkboxesEventTypes[9] = cbEventTypeTargetAfter; + checkboxesEventTypes[10] = cbEventTypeOther; +*/ + + this.DialogResult = DialogResult.OK; + } + + + /// + /// Populates this dialog with specific composition. + /// + /// Composition to be used for dialog. + /// + /// If true, the CompositionManager.TriggerInvokeTime + /// is set to latest overlapping time of time horizons of all models. Typically this is used + /// when this dialog is showed for the first time. + public void PopulateDialog( CompositionManager composition, bool initialTriggerInvokeTime ) + { + _composition = composition; + + if( initialTriggerInvokeTime ) + { + buttonTimeLatestOverlapping_Click(null, null); + } + else + { + textTriggerInvokeTime.Text = _composition.TriggerInvokeTime.ToString( ); + } + + checkBoxEventsToListbox.Checked = _composition.ShowEventsInListbox; + + checkBoxNoMultithreading.Checked = _composition.RunInSameThread; + + runIt = false; + } + + + private void SaveStateToComposition() + { + _composition.TriggerInvokeTime = DateTime.Parse( textTriggerInvokeTime.Text ); + + _composition.RunInSameThread = checkBoxNoMultithreading.Checked; + + _composition.ShowEventsInListbox = checkBoxEventsToListbox.Checked; + } + + + private bool CheckControlsFormat() + { + // check format of date and time + try + { + DateTime.Parse(textTriggerInvokeTime.Text); + } + catch( FormatException ) + { + switch (MessageBox.Show("Text you have entered is not valid date and time, please use format specific for " + Application.CurrentCulture.Name + " culture, i.e. " + Application.CurrentCulture.DateTimeFormat.ShortDatePattern + " " + Application.CurrentCulture.DateTimeFormat.LongTimePattern + ", for example " + System.DateTime.Now.ToShortDateString() + " " + System.DateTime.Now.ToLongTimeString(), "Invalid format", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1)) + { + case DialogResult.Cancel: + textTriggerInvokeTime.Text = _composition.TriggerInvokeTime.ToString(); + break; + default: + break; + } + textTriggerInvokeTime.Focus(); + return( false ); + } + + // check log filename + if( checkBoxLogToFile.Checked ) + if( textLogToFile.Text==null || textLogToFile.Text=="" ) + { + switch( MessageBox.Show("Text you have entered is not file name.", "Invalid format", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1) ) + { + case DialogResult.Cancel: + checkBoxLogToFile.Checked = false; + break; + default: + break; + } + textLogToFile.Focus(); + return( false ); + } + + + return( true ); + } + + + private void checkBoxLogToFile_CheckedChanged(object sender, System.EventArgs e) + { + textLogToFile.Enabled = checkBoxLogToFile.Checked; + buttonBrowseLogFile.Enabled = checkBoxLogToFile.Checked; + } + + + private void RunProperties_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + if( CheckControlsFormat() ) + { + SaveStateToComposition(); + DialogResult = runIt ? DialogResult.OK : DialogResult.No; + } + else + { + e.Cancel = true; + } + } + + + private void textTriggerInvokeTime_Leave(object sender, System.EventArgs e) + { + CheckControlsFormat(); + } + + + private void buttonClose_Click(object sender, System.EventArgs e) + { + Close(); + } + + + private void buttonRun_Click(object sender, System.EventArgs e) + { + runIt = true; + Close(); + } + + + private void buttonTimeLatestOverlapping_Click(object sender, System.EventArgs e) + { + double start = double.MinValue, + end = double.MaxValue; + + bool isTemporal; + + foreach( UIModel model in _composition.Models ) + { + foreach (IOutput item in model.LinkableComponent.OutputItems) + { + isTemporal = item.TimeSet != null; + + if (isTemporal) + { + start = Math.Max(item.TimeSet.TimeHorizon.StampAsModifiedJulianDay, start); + end = Math.Min(item.TimeSet.TimeHorizon.StampAsModifiedJulianDay + item.TimeSet.TimeHorizon.DurationInDays, end); + } + } + } + + if( start > end ) + { + MessageBox.Show("Model timehorizons don't overlap.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning ); + } + else if (end == double.MaxValue) + { + MessageBox.Show("No models are temperal. Cannot calculate latest overlapping", + "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + else + { + textTriggerInvokeTime.Text = Time.ToDateTime(end).ToString(); + } + } + + + private void buttonSetAll_Click(object sender, System.EventArgs e) + { + } + + + private void buttonClearAll_Click(object sender, System.EventArgs e) + { + } + + + private void buttonBrowseLogFile_Click(object sender, System.EventArgs e) + { + SaveFileDialog dlgFile = new SaveFileDialog(); + dlgFile.Filter = "Run log (*.log)|*.log|All files|*.*"; + dlgFile.ValidateNames = true; + dlgFile.Title = "Select log file..."; + dlgFile.AddExtension = true; + dlgFile.OverwritePrompt = true; + + if( textLogToFile.Text.Length>0 ) + dlgFile.FileName = textLogToFile.Text; + + if( dlgFile.ShowDialog() == DialogResult.OK ) + textLogToFile.Text = dlgFile.FileName; + + dlgFile.Dispose(); + } + + #region .NET generated + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(RunProperties)); + this.cbEventTypeWarning = new System.Windows.Forms.CheckBox(); + this.cbEventTypeValOutOfRange = new System.Windows.Forms.CheckBox(); + this.cbEventTypeTimeStepProgress = new System.Windows.Forms.CheckBox(); + this.cbEventTypeTargetBefore = new System.Windows.Forms.CheckBox(); + this.cbEventTypeTargetAfter = new System.Windows.Forms.CheckBox(); + this.cbEventTypeSourceBefore = new System.Windows.Forms.CheckBox(); + this.cbEventTypeSourceAfter = new System.Windows.Forms.CheckBox(); + this.cbEventTypeOther = new System.Windows.Forms.CheckBox(); + this.cbEventTypeInformative = new System.Windows.Forms.CheckBox(); + this.cbEventTypeGlobalProgress = new System.Windows.Forms.CheckBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.buttonClearAll = new System.Windows.Forms.Button(); + this.cbEventTypeDataChanged = new System.Windows.Forms.CheckBox(); + this.buttonSetAll = new System.Windows.Forms.Button(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.checkBoxEventsToListbox = new System.Windows.Forms.CheckBox(); + this.checkBoxNoMultithreading = new System.Windows.Forms.CheckBox(); + this.textTriggerInvokeTime = new System.Windows.Forms.TextBox(); + this.buttonTimeLatestOverlapping = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.buttonBrowseLogFile = new System.Windows.Forms.Button(); + this.textLogToFile = new System.Windows.Forms.TextBox(); + this.checkBoxLogToFile = new System.Windows.Forms.CheckBox(); + this.buttonRun = new System.Windows.Forms.Button(); + this.buttonClose = new System.Windows.Forms.Button(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // cbEventTypeWarning + // + this.cbEventTypeWarning.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeWarning.Location = new System.Drawing.Point(16, 36); + this.cbEventTypeWarning.Name = "cbEventTypeWarning"; + this.cbEventTypeWarning.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeWarning.TabIndex = 23; + this.cbEventTypeWarning.Text = "Warning"; + // + // cbEventTypeValOutOfRange + // + this.cbEventTypeValOutOfRange.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeValOutOfRange.Location = new System.Drawing.Point(16, 84); + this.cbEventTypeValOutOfRange.Name = "cbEventTypeValOutOfRange"; + this.cbEventTypeValOutOfRange.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeValOutOfRange.TabIndex = 22; + this.cbEventTypeValOutOfRange.Text = "Value out of range"; + // + // cbEventTypeTimeStepProgress + // + this.cbEventTypeTimeStepProgress.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeTimeStepProgress.Location = new System.Drawing.Point(16, 52); + this.cbEventTypeTimeStepProgress.Name = "cbEventTypeTimeStepProgress"; + this.cbEventTypeTimeStepProgress.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeTimeStepProgress.TabIndex = 21; + this.cbEventTypeTimeStepProgress.Text = "Time step progress"; + // + // cbEventTypeTargetBefore + // + this.cbEventTypeTargetBefore.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeTargetBefore.Location = new System.Drawing.Point(144, 68); + this.cbEventTypeTargetBefore.Name = "cbEventTypeTargetBefore"; + this.cbEventTypeTargetBefore.Size = new System.Drawing.Size(192, 20); + this.cbEventTypeTargetBefore.TabIndex = 20; + this.cbEventTypeTargetBefore.Text = "Target before GetValues() call"; + // + // cbEventTypeTargetAfter + // + this.cbEventTypeTargetAfter.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeTargetAfter.Location = new System.Drawing.Point(144, 52); + this.cbEventTypeTargetAfter.Name = "cbEventTypeTargetAfter"; + this.cbEventTypeTargetAfter.Size = new System.Drawing.Size(192, 20); + this.cbEventTypeTargetAfter.TabIndex = 19; + this.cbEventTypeTargetAfter.Text = "Target after GetValues() return"; + // + // cbEventTypeSourceBefore + // + this.cbEventTypeSourceBefore.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeSourceBefore.Location = new System.Drawing.Point(144, 36); + this.cbEventTypeSourceBefore.Name = "cbEventTypeSourceBefore"; + this.cbEventTypeSourceBefore.Size = new System.Drawing.Size(192, 20); + this.cbEventTypeSourceBefore.TabIndex = 18; + this.cbEventTypeSourceBefore.Text = "Source before GetValues() return"; + // + // cbEventTypeSourceAfter + // + this.cbEventTypeSourceAfter.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeSourceAfter.Location = new System.Drawing.Point(144, 20); + this.cbEventTypeSourceAfter.Name = "cbEventTypeSourceAfter"; + this.cbEventTypeSourceAfter.Size = new System.Drawing.Size(192, 20); + this.cbEventTypeSourceAfter.TabIndex = 17; + this.cbEventTypeSourceAfter.Text = "Source after GetValues() call"; + // + // cbEventTypeOther + // + this.cbEventTypeOther.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeOther.Location = new System.Drawing.Point(144, 84); + this.cbEventTypeOther.Name = "cbEventTypeOther"; + this.cbEventTypeOther.Size = new System.Drawing.Size(60, 20); + this.cbEventTypeOther.TabIndex = 16; + this.cbEventTypeOther.Text = "Other"; + // + // cbEventTypeInformative + // + this.cbEventTypeInformative.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeInformative.Location = new System.Drawing.Point(16, 20); + this.cbEventTypeInformative.Name = "cbEventTypeInformative"; + this.cbEventTypeInformative.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeInformative.TabIndex = 15; + this.cbEventTypeInformative.Text = "Informative"; + // + // cbEventTypeGlobalProgress + // + this.cbEventTypeGlobalProgress.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeGlobalProgress.Location = new System.Drawing.Point(16, 68); + this.cbEventTypeGlobalProgress.Name = "cbEventTypeGlobalProgress"; + this.cbEventTypeGlobalProgress.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeGlobalProgress.TabIndex = 14; + this.cbEventTypeGlobalProgress.Text = "Global progress"; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.buttonClearAll); + this.groupBox1.Controls.Add(this.cbEventTypeDataChanged); + this.groupBox1.Controls.Add(this.buttonSetAll); + this.groupBox1.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.groupBox1.Location = new System.Drawing.Point(4, 4); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(348, 124); + this.groupBox1.TabIndex = 24; + this.groupBox1.TabStop = false; + this.groupBox1.Text = " Events listened during calculation"; + // + // buttonClearAll + // + this.buttonClearAll.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClearAll.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.buttonClearAll.Location = new System.Drawing.Point(276, 96); + this.buttonClearAll.Name = "buttonClearAll"; + this.buttonClearAll.Size = new System.Drawing.Size(64, 20); + this.buttonClearAll.TabIndex = 29; + this.buttonClearAll.Text = "Clear all"; + this.buttonClearAll.Click += new System.EventHandler(this.buttonClearAll_Click); + // + // cbEventTypeDataChanged + // + this.cbEventTypeDataChanged.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeDataChanged.Location = new System.Drawing.Point(12, 96); + this.cbEventTypeDataChanged.Name = "cbEventTypeDataChanged"; + this.cbEventTypeDataChanged.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeDataChanged.TabIndex = 0; + this.cbEventTypeDataChanged.Text = "Data changed"; + // + // buttonSetAll + // + this.buttonSetAll.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonSetAll.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.buttonSetAll.Location = new System.Drawing.Point(212, 96); + this.buttonSetAll.Name = "buttonSetAll"; + this.buttonSetAll.Size = new System.Drawing.Size(60, 20); + this.buttonSetAll.TabIndex = 28; + this.buttonSetAll.Text = "Set all"; + this.buttonSetAll.Click += new System.EventHandler(this.buttonSetAll_Click); + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.checkBoxEventsToListbox); + this.groupBox2.Controls.Add(this.checkBoxNoMultithreading); + this.groupBox2.Controls.Add(this.textTriggerInvokeTime); + this.groupBox2.Controls.Add(this.buttonTimeLatestOverlapping); + this.groupBox2.Controls.Add(this.label1); + this.groupBox2.Controls.Add(this.buttonBrowseLogFile); + this.groupBox2.Controls.Add(this.textLogToFile); + this.groupBox2.Controls.Add(this.checkBoxLogToFile); + this.groupBox2.Location = new System.Drawing.Point(4, 132); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(348, 108); + this.groupBox2.TabIndex = 25; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Run properties"; + // + // checkBoxEventsToListbox + // + this.checkBoxEventsToListbox.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.checkBoxEventsToListbox.Location = new System.Drawing.Point(12, 64); + this.checkBoxEventsToListbox.Name = "checkBoxEventsToListbox"; + this.checkBoxEventsToListbox.Size = new System.Drawing.Size(328, 16); + this.checkBoxEventsToListbox.TabIndex = 29; + this.checkBoxEventsToListbox.Text = "Show events in list-box"; + // + // checkBoxNoMultithreading + // + this.checkBoxNoMultithreading.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.checkBoxNoMultithreading.Location = new System.Drawing.Point(12, 84); + this.checkBoxNoMultithreading.Name = "checkBoxNoMultithreading"; + this.checkBoxNoMultithreading.Size = new System.Drawing.Size(328, 16); + this.checkBoxNoMultithreading.TabIndex = 28; + this.checkBoxNoMultithreading.Text = "Don\'t use separate thread"; + // + // textTriggerInvokeTime + // + this.textTriggerInvokeTime.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.textTriggerInvokeTime.Location = new System.Drawing.Point(96, 16); + this.textTriggerInvokeTime.MaxLength = 30; + this.textTriggerInvokeTime.Name = "textTriggerInvokeTime"; + this.textTriggerInvokeTime.Size = new System.Drawing.Size(132, 20); + this.textTriggerInvokeTime.TabIndex = 3; + this.textTriggerInvokeTime.Text = "12/31/1999 11:59:59 PM"; + this.textTriggerInvokeTime.Leave += new System.EventHandler(this.textTriggerInvokeTime_Leave); + // + // buttonTimeLatestOverlapping + // + this.buttonTimeLatestOverlapping.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonTimeLatestOverlapping.Location = new System.Drawing.Point(232, 16); + this.buttonTimeLatestOverlapping.Name = "buttonTimeLatestOverlapping"; + this.buttonTimeLatestOverlapping.Size = new System.Drawing.Size(108, 20); + this.buttonTimeLatestOverlapping.TabIndex = 1; + this.buttonTimeLatestOverlapping.Text = "Latest overlapping"; + this.buttonTimeLatestOverlapping.Click += new System.EventHandler(this.buttonTimeLatestOverlapping_Click); + // + // label1 + // + this.label1.Location = new System.Drawing.Point(8, 20); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(88, 16); + this.label1.TabIndex = 0; + this.label1.Text = "Invoke trigger at:"; + // + // buttonBrowseLogFile + // + this.buttonBrowseLogFile.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonBrowseLogFile.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.buttonBrowseLogFile.Location = new System.Drawing.Point(312, 40); + this.buttonBrowseLogFile.Name = "buttonBrowseLogFile"; + this.buttonBrowseLogFile.Size = new System.Drawing.Size(28, 20); + this.buttonBrowseLogFile.TabIndex = 4; + this.buttonBrowseLogFile.Text = "..."; + this.buttonBrowseLogFile.Click += new System.EventHandler(this.buttonBrowseLogFile_Click); + // + // textLogToFile + // + this.textLogToFile.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.textLogToFile.Enabled = false; + this.textLogToFile.Location = new System.Drawing.Point(96, 40); + this.textLogToFile.Name = "textLogToFile"; + this.textLogToFile.Size = new System.Drawing.Size(212, 20); + this.textLogToFile.TabIndex = 27; + this.textLogToFile.Text = "CompositionRun.log"; + // + // checkBoxLogToFile + // + this.checkBoxLogToFile.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.checkBoxLogToFile.Location = new System.Drawing.Point(12, 40); + this.checkBoxLogToFile.Name = "checkBoxLogToFile"; + this.checkBoxLogToFile.Size = new System.Drawing.Size(80, 20); + this.checkBoxLogToFile.TabIndex = 1; + this.checkBoxLogToFile.Text = "Log to file:"; + this.checkBoxLogToFile.CheckedChanged += new System.EventHandler(this.checkBoxLogToFile_CheckedChanged); + // + // buttonRun + // + this.buttonRun.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonRun.Location = new System.Drawing.Point(168, 248); + this.buttonRun.Name = "buttonRun"; + this.buttonRun.Size = new System.Drawing.Size(84, 24); + this.buttonRun.TabIndex = 4; + this.buttonRun.Text = "RUN !!!"; + this.buttonRun.Click += new System.EventHandler(this.buttonRun_Click); + // + // buttonClose + // + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClose.Location = new System.Drawing.Point(260, 248); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(84, 24); + this.buttonClose.TabIndex = 28; + this.buttonClose.Text = "Close"; + this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); + // + // RunProperties + // + this.AcceptButton = this.buttonRun; + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.CancelButton = this.buttonClose; + this.ClientSize = new System.Drawing.Size(358, 279); + this.Controls.Add(this.buttonClose); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.cbEventTypeWarning); + this.Controls.Add(this.cbEventTypeValOutOfRange); + this.Controls.Add(this.cbEventTypeTimeStepProgress); + this.Controls.Add(this.cbEventTypeTargetBefore); + this.Controls.Add(this.cbEventTypeTargetAfter); + this.Controls.Add(this.cbEventTypeSourceBefore); + this.Controls.Add(this.cbEventTypeSourceAfter); + this.Controls.Add(this.cbEventTypeOther); + this.Controls.Add(this.cbEventTypeInformative); + this.Controls.Add(this.cbEventTypeGlobalProgress); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.buttonRun); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "RunProperties"; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.Text = "Run properties"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.RunProperties_Closing); + this.Load += new System.EventHandler(this.RunProperties_Load); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + private void RunProperties_Load(object sender, System.EventArgs e) + { + + } + + + + + + + + + + #endregion + + + } +} diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunProperties.resx b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunProperties.resx new file mode 100644 index 00000000..d49e8289 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/RunProperties.resx @@ -0,0 +1,788 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + RunProperties + + + (Default) + + + False + + + False + + + 4, 4 + + + True + + + 80 + + + True + + + Private + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Source.cur b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Source.cur new file mode 100644 index 00000000..fb76976b Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Source.cur differ diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Target.cur b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Target.cur new file mode 100644 index 00000000..b121229d Binary files /dev/null and b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/ConfigurationEditor/Target.cur differ diff --git a/Source/Plugins/Experimental.Plugins.HydroModeler2.0/HydroModeler 2.0.sln b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/HydroModeler 2.0.sln new file mode 100644 index 00000000..a893a822 --- /dev/null +++ b/Source/Plugins/Experimental.Plugins.HydroModeler2.0/HydroModeler 2.0.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GUI", "GUI", "{6FF6DEE5-ED09-4A53-816A-F0C52FA54664}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroModeler2.0", "ConfigurationEditor\Experimental.Plugins.HydroModeler2.0.csproj", "{5990D533-2648-49CB-A3F2-A31EC8F03D59}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Debug|x64.ActiveCfg = Debug|x64 + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Debug|x64.Build.0 = Debug|x64 + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Debug|x86.ActiveCfg = Debug|x86 + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Debug|x86.Build.0 = Debug|x86 + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Release|Any CPU.Build.0 = Release|Any CPU + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Release|x64.ActiveCfg = Release|x64 + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Release|x64.Build.0 = Release|x64 + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Release|x86.ActiveCfg = Release|x86 + {5990D533-2648-49CB-A3F2-A31EC8F03D59}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {5990D533-2648-49CB-A3F2-A31EC8F03D59} = {6FF6DEE5-ED09-4A53-816A-F0C52FA54664} + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.Data.v11.2.dll b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.Data.v11.2.dll new file mode 100644 index 00000000..36cf6d2c Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.Data.v11.2.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.Printing.v11.2.Core.dll b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.Printing.v11.2.Core.dll new file mode 100644 index 00000000..29e39d34 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.Printing.v11.2.Core.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.Utils.v11.2.dll b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.Utils.v11.2.dll new file mode 100644 index 00000000..405e5169 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.Utils.v11.2.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.XtraBars.v11.2.dll b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.XtraBars.v11.2.dll new file mode 100644 index 00000000..1a49cbcd Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.XtraBars.v11.2.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.XtraEditors.v11.2.dll b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.XtraEditors.v11.2.dll new file mode 100644 index 00000000..3b5aea8c Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.XtraEditors.v11.2.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.XtraGrid.v11.2.dll b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.XtraGrid.v11.2.dll new file mode 100644 index 00000000..5e6d06ce Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.XtraGrid.v11.2.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.XtraLayout.v11.2.dll b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.XtraLayout.v11.2.dll new file mode 100644 index 00000000..d9ada6db Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/DotSpatial.Plugins.AttributeDataExplorerReferences/DevExpress.XtraLayout.v11.2.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/HydroDesktop.Plugins.AttributeDataExplorer.csproj b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/HydroDesktop.Plugins.AttributeDataExplorer.csproj new file mode 100644 index 00000000..2f558636 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/HydroDesktop.Plugins.AttributeDataExplorer.csproj @@ -0,0 +1,157 @@ + + + + {FCAD6257-6532-44F3-87B6-FB4981A6CF42} + 2 + Debug + AnyCPU + HydroDesktop.Plugins.AttributeDataExplorer + Library + HydroDesktop.Plugins.AttributeDataExplorer + v4.0 + Client + ..\..\ + true + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.AttributeDataExplorer\ + true + DEBUG;TRACE + false + 4 + full + prompt + AnyCPU + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.AttributeDataExplorer\ + false + TRACE + true + 4 + pdbonly + prompt + AnyCPU + + + + DotSpatial.Plugins.AttributeDataExplorerReferences\DevExpress.Printing.v11.2.Core.dll + + + .\DotSpatial.Plugins.AttributeDataExplorerReferences\DevExpress.Utils.v11.2.dll + + + DotSpatial.Plugins.AttributeDataExplorerReferences\DevExpress.XtraBars.v11.2.dll + + + .\DotSpatial.Plugins.AttributeDataExplorerReferences\DevExpress.XtraGrid.v11.2.dll + + + DotSpatial.Plugins.AttributeDataExplorerReferences\DevExpress.XtraLayout.v11.2.dll + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + + + + .\DotSpatial.Plugins.AttributeDataExplorerReferences\DevExpress.Data.v11.2.dll + + + + + + + .\DotSpatial.Plugins.AttributeDataExplorerReferences\DevExpress.XtraEditors.v11.2.dll + + + + + + false + false + + + false + false + + + false + false + + + false + false + + + True + MainForm.resx + true + True + + + false + false + + + false + false + + + false + false + + + false + false + + + false + false + + + false + false + + + ResXFileCodeGenerator + MainForm.Designer.cs + + + + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/HydroDesktop.Plugins.AttributeDataExplorer.nuspec b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/HydroDesktop.Plugins.AttributeDataExplorer.nuspec new file mode 100644 index 00000000..d8f7e8ba --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/HydroDesktop.Plugins.AttributeDataExplorer.nuspec @@ -0,0 +1,28 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/AttributeDataExplorerPlugin.cs b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/AttributeDataExplorerPlugin.cs new file mode 100644 index 00000000..596fcc93 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/AttributeDataExplorerPlugin.cs @@ -0,0 +1,61 @@ +using DevExpress.XtraEditors; +using DotSpatial.Controls; +using DotSpatial.Controls.Docking; +using System; +using System.ComponentModel; +using System.Runtime.CompilerServices; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.AttributeDataExplorer +{ + public class AttributeDataExplorerPlugin : Extension + { + private const string STR_KDataExplorer = "kDataExplorer"; + + private bool isTerminating; + + private MainForm _MainForm; + + private DockablePanel _Panel; + + public AttributeDataExplorerPlugin() + { + } + + public override void Activate() + { + this._MainForm = new MainForm(this.App); + this._Panel = new DockablePanel(STR_KDataExplorer, _MainForm.Text, _MainForm.hostpanel, DockStyle.Right); + App.DockManager.Add(_Panel); + + // capture the event when the user closes the pane and unload the plugin. + App.DockManager.PanelClosed += (sender, e) => + { + if (e.ActivePanelKey == STR_KDataExplorer && !isTerminating) + { + Deactivate(); + } + }; + _MainForm.UILoaded(); + _MainForm.TextChanged += delegate(object sender, EventArgs e) + { + _Panel.Caption = _MainForm.Text; + }; + base.Activate(); + } + + public override void Deactivate() + { + if (this._MainForm != null && !this._MainForm.IsDisposed) + { + isTerminating = true; + + this.App.DockManager.Remove(STR_KDataExplorer); + this._MainForm.Dispose(); + + isTerminating = false; + } + base.Deactivate(); + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/FeatureLayerDisplayFilter.cs b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/FeatureLayerDisplayFilter.cs new file mode 100644 index 00000000..268451bb --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/FeatureLayerDisplayFilter.cs @@ -0,0 +1,75 @@ +using DevExpress.XtraGrid; +using DevExpress.XtraGrid.Views.Base; +using DevExpress.XtraGrid.Views.Grid; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Symbology; +using System; + +namespace HydroDesktop.Plugins.AttributeDataExplorer +{ + public sealed class FeatureLayerDisplayFilter : GridViewMapBase + { + private object _CurrentDataSource; + + public FeatureLayerDisplayFilter(IMap map, GridView gridView) : base(map, gridView) + { + this._GridView.ColumnFilterChanged += new EventHandler(this.GridView_ColumnFilterChanged); + this._GridView.GridControl.DataSourceChanged += new EventHandler(this.GridControl_DataSourceChanged); + } + + private void GridControl_DataSourceChanged(object sender, EventArgs e) + { + this._CurrentDataSource = this._GridView.GridControl.DataSource; + } + + private void GridView_ColumnFilterChanged(object sender, EventArgs e) + { + if (this._CurrentDataSource != this._GridView.GridControl.DataSource) + { + this._GridView.ClearColumnsFilter(); + return; + } + if (MainForm.IsLayoutRestoring) + { + return; + } + this.ToggleFeatureVisibility(); + } + + internal void ShowAllFeatures() + { + IMapFeatureLayer[] featureLayers = this._Map.GetFeatureLayers(); + for (int i = 0; i < (int)featureLayers.Length; i++) + { + IMapFeatureLayer mapFeatureLayer = featureLayers[i]; + if (mapFeatureLayer.DataSet.AttributesPopulated) + { + for (int j = 0; j < (int)mapFeatureLayer.DrawnStates.Length; j++) + { + mapFeatureLayer.DrawnStates[j].Visible = true; + } + } + } + this._Map.MapFrame.ResetBuffer(); + } + + private void ToggleFeatureVisibility() + { + IFeatureLayer activeFeatureLayer = this._LayerManager.ActiveFeatureLayer; + if (activeFeatureLayer == null) + { + return; + } + if (activeFeatureLayer.DataSet.AttributesPopulated) + { + for (int i = 0; i < (int)activeFeatureLayer.DrawnStates.Length; i++) + { + int rowHandle = this._GridView.GetRowHandle(i); + activeFeatureLayer.DrawnStates[i].Visible = rowHandle != -2147483648; + } + } + this._Map.MapFrame.ResetBuffer(); + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/GridViewMapBase.cs b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/GridViewMapBase.cs new file mode 100644 index 00000000..f8b6c7d2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/GridViewMapBase.cs @@ -0,0 +1,22 @@ +using DevExpress.XtraGrid.Views.Grid; +using DotSpatial.Controls; +using System; + +namespace HydroDesktop.Plugins.AttributeDataExplorer +{ + public class GridViewMapBase + { + protected readonly LayerManager _LayerManager; + + protected readonly GridView _GridView; + + protected readonly IMap _Map; + + public GridViewMapBase(IMap map, GridView gridView) + { + this._GridView = gridView; + this._Map = map; + this._LayerManager = this._Map.GetLayerManager(); + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/LayerManager.cs b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/LayerManager.cs new file mode 100644 index 00000000..416c5a8d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/LayerManager.cs @@ -0,0 +1,110 @@ +using DotSpatial.Controls; +using DotSpatial.Symbology; +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Threading; + +namespace HydroDesktop.Plugins.AttributeDataExplorer +{ + public sealed class LayerManager + { + private ILayer _ActiveLayer; + + private ILayer _RemovedLayer; + + private readonly IMap _Map; + + public IFeatureLayer ActiveFeatureLayer + { + get + { + return this.ActiveLayer as IFeatureLayer; + } + } + + public ILayer ActiveLayer + { + get + { + return this._ActiveLayer; + } + } + + public EventHandler Layer_LayerSelected + { + get; + set; + } + + public LayerManager(IMap map) + { + this._Map = map; + this.WireUpMapEvents(); + this.LayerSelected(); + } + + private void Layers_LayerRemoved(object sender, LayerEventArgs e) + { + if (e.Layer == this._ActiveLayer) + { + this._RemovedLayer = this._ActiveLayer; + this._ActiveLayer = null; + this.OnActiveLayerChanged(EventArgs.Empty); + } + } + + private void Layers_LayerSelected(object sender, LayerSelectedEventArgs e) + { + this.LayerSelected(); + } + + private void LayerSelected() + { + if (this._Map.Layers.SelectedLayer != this._ActiveLayer) + { + this._ActiveLayer = this._Map.Layers.SelectedLayer; + this.OnActiveLayerChanged(EventArgs.Empty); + } + } + + private void MapFrame_LayerAdded(object sender, LayerEventArgs e) + { + if (this._Map.Layers.SelectedLayer == null && this._Map.Layers.Count == 1) + { + this._ActiveLayer = this._Map.Layers[0]; + this.OnActiveLayerChanged(EventArgs.Empty); + return; + } + if (this._Map.Layers.SelectedLayer == null && this._RemovedLayer != null) + { + this._ActiveLayer = this._RemovedLayer; + this._RemovedLayer = null; + this.OnActiveLayerChanged(EventArgs.Empty); + } + } + + private void MapFrame_LayerSelected(object sender, LayerSelectedEventArgs e) + { + this.LayerSelected(); + } + + public void OnActiveLayerChanged(EventArgs ea) + { + if (this.ActiveLayerChanged != null) + { + this.ActiveLayerChanged(null, ea); + } + } + + public void WireUpMapEvents() + { + _Map.MapFrame.LayerSelected += MapFrame_LayerSelected; + _Map.MapFrame.LayerAdded += MapFrame_LayerAdded; + _Map.MapFrame.Layers.LayerSelected += Layers_LayerSelected; + _Map.MapFrame.Layers.LayerRemoved += Layers_LayerRemoved; + } + + public event EventHandler ActiveLayerChanged; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/LayerManagerExt.cs b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/LayerManagerExt.cs new file mode 100644 index 00000000..925ae173 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/LayerManagerExt.cs @@ -0,0 +1,44 @@ +using DotSpatial.Controls; +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; + +namespace HydroDesktop.Plugins.AttributeDataExplorer +{ + public static class LayerManagerExt + { + private static Dictionary _LayerManagers; + + private static object syncLock; + + static LayerManagerExt() + { + LayerManagerExt._LayerManagers = new Dictionary(); + LayerManagerExt.syncLock = new object(); + } + + public static void ClearCache() + { + LayerManagerExt._LayerManagers.Clear(); + } + + public static LayerManager GetLayerManager(this IMap map) + { + LayerManager item; + lock (LayerManagerExt.syncLock) + { + if (!LayerManagerExt._LayerManagers.ContainsKey(map)) + { + LayerManager layerManager = new LayerManager(map); + LayerManagerExt._LayerManagers.Add(map, layerManager); + item = layerManager; + } + else + { + item = LayerManagerExt._LayerManagers[map]; + } + } + return item; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/MainForm.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/MainForm.Designer.cs new file mode 100644 index 00000000..a6549c9b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/MainForm.Designer.cs @@ -0,0 +1,202 @@ +using DevExpress.XtraEditors; +using DevExpress.XtraEditors.Container; +using DevExpress.XtraGrid; +using DevExpress.XtraGrid.Repository; +using DevExpress.XtraGrid.Views.Base; +using DevExpress.XtraGrid.Views.Grid; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Symbology; +using System; +using System.Collections; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.AttributeDataExplorer +{ + public class MainForm : XtraForm + { + private readonly AppManager _App; + + private readonly LayerManager _layerManager; + + private SelectionSynchronization _SelectionSynchronization; + + private FeatureLayerDisplayFilter _Filter; + + private PersistLayoutInMemory _PersistLayout; + + private PreventFirstRowSelection _PreventFirstRowSelection; + + private ShowMessageWhenDataSourceIsNull _ShowNoDataMessage; + + public static bool IsDataBinding; + + public static bool IsLayoutRestoring; + + private IContainer components; + + private GridControl gridControl1; + + private GridView gridView1; + + public Panel hostpanel; + + static MainForm() + { + } + + public MainForm() + { + this.InitializeComponent(); + } + + public MainForm(AppManager app) : this() + { + this._App = app; + this._layerManager = app.Map.GetLayerManager(); + this._layerManager.ActiveLayerChanged += new EventHandler(this.LayerManager_ActiveLayerChanged); + this._Filter = new FeatureLayerDisplayFilter(this._App.Map, this.gridView1); + this._PersistLayout = new PersistLayoutInMemory(this._App.Map, this.gridView1); + this._SelectionSynchronization = new SelectionSynchronization(this._App.Map, this.gridView1); + this._PreventFirstRowSelection = new PreventFirstRowSelection(this.gridView1); + this._ShowNoDataMessage = new ShowMessageWhenDataSourceIsNull(this.gridView1); + app.SerializationManager.Deserializing += OnDeserializingProject; + this.RefreshData(this._layerManager.ActiveLayer); + } + + private bool AreThereOnlyAFewColumns(DataTable table) + { + if (table == null) + { + return true; + } + return table.Columns.Count <= 8; + } + + private void BindData(DataTable table) + { + MainForm.IsDataBinding = true; + if (table != null) + { + this.gridControl1.Text = table.GetHashCode().ToString(); + } + this.gridControl1.DataSource = table; + this.gridView1.PopulateColumns(); + MainForm.IsDataBinding = false; + if (table != null && this.gridView1.Columns.Count >= 8) + { + this.gridView1.BestFitMaxRowCount = 16; + this.gridView1.BestFitColumns(); + } + this.gridView1.OptionsView.ColumnAutoWidth = this.AreThereOnlyAFewColumns(table); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + if (this.components != null) + { + this.components.Dispose(); + } + this._layerManager.ActiveLayerChanged -= new EventHandler(this.LayerManager_ActiveLayerChanged); + _App.SerializationManager.Deserializing -= OnDeserializingProject; + this._SelectionSynchronization = null; + this._Filter.ShowAllFeatures(); + this._Filter = null; + this._PersistLayout = null; + this._PreventFirstRowSelection = null; + LayerManagerExt.ClearCache(); + } + base.Dispose(disposing); + } + + private DataTable GetDataFromCurrentLayer(ILayer iLayer) + { + IMapFeatureLayer mapFeatureLayer = iLayer as IMapFeatureLayer; + if (mapFeatureLayer == null || mapFeatureLayer.DataSet == null || mapFeatureLayer.DataSet.Filename == null) + { + return null; + } + return mapFeatureLayer.DataSet.DataTable; + } + + private void gridControl1_DoubleClick(object sender, EventArgs e) + { + this.gridView1.OptionsBehavior.Editable = !this.gridView1.OptionsBehavior.Editable; + } + + private void InitializeComponent() + { + this.hostpanel = new Panel(); + this.gridControl1 = new GridControl(); + this.gridView1 = new GridView(); + this.hostpanel.SuspendLayout(); + ((ISupportInitialize)this.gridControl1).BeginInit(); + ((ISupportInitialize)this.gridView1).BeginInit(); + base.SuspendLayout(); + this.hostpanel.Controls.Add(this.gridControl1); + this.hostpanel.Dock = DockStyle.Fill; + this.hostpanel.Location = new Point(0, 0); + this.hostpanel.Name = "hostpanel"; + this.hostpanel.Size = new System.Drawing.Size(0x1b2, 0x19c); + this.hostpanel.TabIndex = 0; + this.gridControl1.Dock = DockStyle.Fill; + this.gridControl1.Location = new Point(0, 0); + this.gridControl1.MainView = this.gridView1; + this.gridControl1.Name = "gridControl1"; + this.gridControl1.Size = new System.Drawing.Size(0x1b2, 0x19c); + this.gridControl1.TabIndex = 0; + this.gridControl1.ViewCollection.AddRange(new BaseView[] { this.gridView1 }); + this.gridControl1.DoubleClick += new EventHandler(this.gridControl1_DoubleClick); + this.gridView1.GridControl = this.gridControl1; + this.gridView1.Name = "gridView1"; + this.gridView1.OptionsBehavior.Editable = false; + this.gridView1.OptionsFind.AllowFindPanel = false; + this.gridView1.OptionsSelection.MultiSelect = true; + this.gridView1.OptionsView.ShowAutoFilterRow = true; + this.gridView1.OptionsView.ShowFooter = true; + this.gridView1.OptionsView.ShowGroupPanel = false; + base.AutoScaleDimensions = new SizeF(6f, 13f); + base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + base.ClientSize = new System.Drawing.Size(0x1b2, 0x19c); + base.Controls.Add(this.hostpanel); + base.Name = "MainForm"; + this.Text = "Attribute Data Explorer"; + this.hostpanel.ResumeLayout(false); + ((ISupportInitialize)this.gridControl1).EndInit(); + ((ISupportInitialize)this.gridView1).EndInit(); + base.ResumeLayout(false); + } + + private void LayerManager_ActiveLayerChanged(object sender, EventArgs e) + { + this.RefreshData(this._layerManager.ActiveLayer); + } + + private void OnDeserializingProject(object sender, SerializingEventArgs e) + { + this._layerManager.WireUpMapEvents(); + this._SelectionSynchronization.WireUpMapEvents(); + } + + private void RefreshData(ILayer iLayer) + { + this.BindData(this.GetDataFromCurrentLayer(iLayer)); + if (iLayer == null) + { + this.Text = "ADE"; + return; + } + this.Text = string.Format("ADE - {0}", iLayer.LegendText); + } + + public void UILoaded() + { + this._SelectionSynchronization.ShowSelectionFromCurrentLayer(this._App.Map); + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/MainForm.resx b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/MainForm.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/MainForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/PersistLayoutInMemory.cs b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/PersistLayoutInMemory.cs new file mode 100644 index 00000000..38ef253c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/PersistLayoutInMemory.cs @@ -0,0 +1,59 @@ +using DevExpress.XtraGrid.Views.Base; +using DevExpress.XtraGrid.Views.Grid; +using DotSpatial.Controls; +using DotSpatial.Symbology; +using System; +using System.Collections.Generic; +using System.IO; + +namespace HydroDesktop.Plugins.AttributeDataExplorer +{ + public class PersistLayoutInMemory : GridViewMapBase + { + private IFeatureLayer _LastFeatureLayer; + + private Dictionary _PersistedSettings = new Dictionary(); + + public PersistLayoutInMemory(IMap map, GridView gridView) : base(map, gridView) + { + this._LayerManager.ActiveLayerChanged += new EventHandler(this.LayerManager_ActiveLayerChanged); + this._GridView.GridControl.TextChanged += new EventHandler(this.GridControl_TextChanged); + } + + private void GridControl_TextChanged(object sender, EventArgs e) + { + this.PersistLayout(); + } + + private void LayerManager_ActiveLayerChanged(object sender, EventArgs e) + { + IFeatureLayer activeFeatureLayer = this._LayerManager.ActiveFeatureLayer; + this._LastFeatureLayer = activeFeatureLayer; + if (activeFeatureLayer == null) + { + return; + } + MainForm.IsLayoutRestoring = true; + if (this._PersistedSettings.ContainsKey(activeFeatureLayer)) + { + MemoryStream item = this._PersistedSettings[activeFeatureLayer]; + this._GridView.RestoreLayoutFromStream(item); + item.Position = (long)0; + } + MainForm.IsLayoutRestoring = false; + } + + private void PersistLayout() + { + IFeatureLayer featureLayer = this._LastFeatureLayer; + if (featureLayer == null) + { + return; + } + MemoryStream memoryStream = new MemoryStream(); + this._GridView.SaveLayoutToStream(memoryStream); + memoryStream.Position = (long)0; + this._PersistedSettings[featureLayer] = memoryStream; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/PreventFirstRowSelection.cs b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/PreventFirstRowSelection.cs new file mode 100644 index 00000000..cc62483a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/PreventFirstRowSelection.cs @@ -0,0 +1,43 @@ +using DevExpress.Data; +using DevExpress.XtraGrid.Views.Base; +using DevExpress.XtraGrid.Views.Grid; +using System; + +namespace HydroDesktop.Plugins.AttributeDataExplorer +{ + public class PreventFirstRowSelection + { + protected readonly GridView _GridView; + + private int _FilteredSelectedRowsCount = -1; + + public PreventFirstRowSelection(GridView gridView) + { + this._GridView = gridView; + this._GridView.ColumnFilterChanged += new EventHandler(this.GridView_ColumnFilterChanged); + this._GridView.SelectionChanged += new SelectionChangedEventHandler(this.GridView_SelectionChanged); + } + + private void GridView_ColumnFilterChanged(object sender, EventArgs e) + { + if (MainForm.IsDataBinding) + { + return; + } + if (MainForm.IsLayoutRestoring) + { + return; + } + this._FilteredSelectedRowsCount = this._GridView.SelectedRowsCount; + } + + private void GridView_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + if (this._FilteredSelectedRowsCount == 0) + { + this._FilteredSelectedRowsCount = -1; + this._GridView.ClearSelection(); + } + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/SelectionSynchronization.cs b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/SelectionSynchronization.cs new file mode 100644 index 00000000..c0639e8c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/SelectionSynchronization.cs @@ -0,0 +1,125 @@ +using DevExpress.Data; +using DevExpress.XtraGrid.Views.Base; +using DevExpress.XtraGrid.Views.Grid; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Symbology; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Runtime.CompilerServices; + +namespace HydroDesktop.Plugins.AttributeDataExplorer +{ + public class SelectionSynchronization : GridViewMapBase + { + public bool IsUserMakingSelection + { + get; + set; + } + + public SelectionSynchronization(IMap map, GridView gridView) : base(map, gridView) + { + this._GridView.SelectionChanged += new SelectionChangedEventHandler(this.GridView_SelectionChanged); + this.WireUpMapEvents(); + this._LayerManager.ActiveLayerChanged += new EventHandler(this.LayerManager_ActiveLayerChanged); + } + + private int FindRowHandleByRowObject(GridView view, object row) + { + if (row != null) + { + for (int i = 0; i < view.DataRowCount; i++) + { + if (row.Equals(view.GetRow(i))) + { + return i; + } + } + } + return -2147483648; + } + + private void GridView_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + if (e.Action == CollectionChangeAction.Add && e.ControllerRow == 0) + { + return; + } + if (MainForm.IsLayoutRestoring) + { + return; + } + this.IsUserMakingSelection = true; + IFeatureLayer activeFeatureLayer = this._LayerManager.ActiveFeatureLayer; + if (activeFeatureLayer == null) + { + return; + } + activeFeatureLayer.Selection.SuspendChanges(); + activeFeatureLayer.UnSelectAll(); + if (this._GridView.SelectedRowsCount > 0 && activeFeatureLayer.DataSet.AttributesPopulated) + { + int[] selectedRows = this._GridView.GetSelectedRows(); + for (int i = 0; i < (int)selectedRows.Length; i++) + { + int num = selectedRows[i]; + activeFeatureLayer.Select(this._GridView.GetDataSourceRowIndex(num)); + } + } + activeFeatureLayer.Selection.ResumeChanges(); + this.IsUserMakingSelection = false; + } + + private void LayerManager_ActiveLayerChanged(object sender, EventArgs e) + { + this.ShowSelectionFromCurrentLayer(this._Map); + } + + private void MapFrame_SelectionChanged(object sender, EventArgs e) + { + this.ShowSelectionFromCurrentLayer(this._Map); + } + + public void ShowSelectionFromCurrentLayer(IMap map) + { + if (this.IsUserMakingSelection) + { + return; + } + if (this._GridView.RowCount == 0) + { + return; + } + IFeatureLayer activeFeatureLayer = this._LayerManager.ActiveFeatureLayer; + if (activeFeatureLayer == null) + { + return; + } + List featureList = activeFeatureLayer.Selection.ToFeatureList(); + this._GridView.BeginSelection(); + this._GridView.ClearSelection(); + try + { + foreach (IFeature feature in featureList) + { + int num = feature.DataRow.Table.Rows.IndexOf(feature.DataRow); + this._GridView.SelectRow(this._GridView.GetRowHandle(num)); + } + } + finally + { + this._GridView.SelectionChanged -= new SelectionChangedEventHandler(this.GridView_SelectionChanged); + this._GridView.EndSelection(); + this._GridView.SelectionChanged += new SelectionChangedEventHandler(this.GridView_SelectionChanged); + } + } + + public void WireUpMapEvents() + { + _Map.MapFrame.SelectionChanged += MapFrame_SelectionChanged; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/ShowMessageWhenDataSourceIsNull.cs b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/ShowMessageWhenDataSourceIsNull.cs new file mode 100644 index 00000000..fbd732f8 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Plugins.AttributeDataExplorer/ShowMessageWhenDataSourceIsNull.cs @@ -0,0 +1,103 @@ +using DevExpress.Utils; +using DevExpress.XtraGrid; +using DevExpress.XtraGrid.Views.Base; +using DevExpress.XtraGrid.Views.Grid; +using DevExpress.XtraGrid.Views.Grid.ViewInfo; +using System; +using System.Drawing; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.AttributeDataExplorer +{ + public class ShowMessageWhenDataSourceIsNull + { + private const string NoData = "Select a feature layer to examine attribute data."; + + private GridView _ActiveView; + + private Font _Font; + + public GridControl ActiveGridControl + { + get + { + return this.ActiveView.GridControl; + } + } + + public GridView ActiveView + { + get + { + return this._ActiveView; + } + set + { + this._ActiveView = value; + } + } + + public Font PaintFont + { + get + { + if (this._Font == null) + { + return AppearanceObject.DefaultFont; + } + return this._Font; + } + set + { + this._Font = value; + } + } + + public ShowMessageWhenDataSourceIsNull(GridView view) + { + this.ActiveView = view; + this.SubscribeEvents(); + } + + private void ActiveView_CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e) + { + this.DrawNothingToSee(e); + } + + private void DrawNothingToSee(CustomDrawEventArgs e) + { + if (this.ActiveGridControl.DataSource == null) + { + Graphics graphics = e.Graphics; + Font paintFont = this.PaintFont; + Brush gray = Brushes.Gray; + Rectangle seeBounds = this.NothingToSeeBounds(e.Bounds); + graphics.DrawString("Select a feature layer to examine attribute data.", paintFont, gray, seeBounds.Location); + } + } + + private Rectangle GetForegroundBounds() + { + return (this.ActiveView.GetViewInfo() as GridViewInfo).ViewRects.Rows; + } + + private Size GetStringSize(string s, Font font) + { + Graphics graphic = Graphics.FromHwnd(this.ActiveGridControl.Handle); + return graphic.MeasureString(s, font).ToSize(); + } + + private Rectangle NothingToSeeBounds(Rectangle bounds) + { + Size stringSize = this.GetStringSize("Select a feature layer to examine attribute data.", this.PaintFont); + int width = (bounds.Width - stringSize.Width) / 2; + int y = bounds.Y + 50; + return new Rectangle(new Point(width, y), stringSize); + } + + private void SubscribeEvents() + { + this.ActiveView.CustomDrawEmptyForeground += new CustomDrawEventHandler(this.ActiveView_CustomDrawEmptyForeground); + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..f366d448 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Diagnostics; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Runtime.Versioning; + +[assembly: AssemblyTitle("HydroDesktop.Plugins.AttributeDataExplorer")] +[assembly: AssemblyDescription("Explore Feature (Attribute) Data")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("DotSpatial Team")] +[assembly: AssemblyProduct("Advanced Data Explorer")] +[assembly: AssemblyCopyright("Copyright © Matthew K 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("1815e0bd-ba4e-4022-9b09-6c8bbe031e90")] + +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyVersion("1.0.0.0")] diff --git a/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/packages.config b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/packages.config new file mode 100644 index 00000000..c8eccc09 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.AttributeDataExplorer/packages.config @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/AggregationMode.cs b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/AggregationMode.cs new file mode 100644 index 00000000..07d86e60 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/AggregationMode.cs @@ -0,0 +1,19 @@ +using System.ComponentModel; + +namespace HydroDesktop.Plugins.DataAggregation +{ + /// + /// Aggregation mode for calculating data values. + /// + internal enum AggregationMode + { + [Description("MIN")] + Min, + [Description("MAX")] + Max, + [Description("AVG")] + Avg, + [Description("SUM")] + Sum, + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/AggregationSettings.cs b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/AggregationSettings.cs new file mode 100644 index 00000000..8aedff4a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/AggregationSettings.cs @@ -0,0 +1,97 @@ +using System; +using HydroDesktop.Common; + +namespace HydroDesktop.Plugins.DataAggregation +{ + /// + /// Contains settings for aggregation + /// + internal class AggregationSettings : ObservableObject + { + #region Fields + + private AggregationMode _aggregationMode; + private DateTime _startTime; + private DateTime _endTime; + private string _variableCode; + private bool _createNewLayer; + private bool _createCategories; + private byte _decimalPlaces; + + #endregion + + #region Properties + + public AggregationMode AggregationMode + { + get { return _aggregationMode; } + set + { + _aggregationMode = value; + NotifyPropertyChanged(() => AggregationMode); + } + } + + public DateTime StartTime + { + get { return _startTime; } + set + { + _startTime = value; + NotifyPropertyChanged(() => StartTime); + } + } + + public DateTime EndTime + { + get { return _endTime; } + set + { + _endTime = value; + NotifyPropertyChanged(() => EndTime); + } + } + + public string VariableCode + { + get { return _variableCode; } + set + { + _variableCode = value; + NotifyPropertyChanged(() => VariableCode); + } + } + + public bool CreateNewLayer + { + get { return _createNewLayer; } + set + { + _createNewLayer = value; + NotifyPropertyChanged(() => CreateNewLayer); + } + } + + public bool CreateCategories + { + get { return _createCategories; } + set + { + _createCategories = value; + NotifyPropertyChanged(() => CreateCategories); + } + } + + public byte DecimalPlaces + { + get { return _decimalPlaces; } + set + { + _decimalPlaces = value; + NotifyPropertyChanged(() => DecimalPlaces); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Aggregator.cs b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Aggregator.cs new file mode 100644 index 00000000..b293fabe --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Aggregator.cs @@ -0,0 +1,308 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Diagnostics.Contracts; +using System.Globalization; +using System.IO; +using System.Linq; +using HydroDesktop.Plugins.DataAggregation.UI; +using DotSpatial.Data; +using DotSpatial.Symbology; +using HydroDesktop.Common.Tools; +using HydroDesktop.Configuration; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using IProgressHandler = HydroDesktop.Common.IProgressHandler; + +namespace HydroDesktop.Plugins.DataAggregation +{ + /// + /// Used for aggregating data values. + /// + internal class Aggregator + { + private const string MENU_ITEM_NAME = "Show Data Values in Map"; + + /// + /// Tests that layer can be aggregated. + /// + /// Layer to test + /// True - if layer can be aggregated, otherwise - false. + public static bool CanAggregateLayer(IFeatureLayer layer) + { + if (layer == null) return false; + return new[] { "SeriesID", "StartDate", "EndDate" }.All(fieldName => layer.DataSet.DataTable.Columns.Contains(fieldName)); + } + + public static void UpdateContextMenu(IFeatureLayer layer) + { + if (layer == null) throw new ArgumentNullException("layer"); + var dataGroupMenu = layer.ContextMenuItems.FirstOrDefault(item => item.Name == "Data"); + if (dataGroupMenu == null) + return; + + dataGroupMenu.AddMenuItem(MENU_ITEM_NAME, delegate { ShowAggregationSettingsDialog(layer); }); + } + + public static void RemoveContextMenu(ILayer layer) + { + var dataGroupMenu = layer.ContextMenuItems.FirstOrDefault(item => item.Name == "Data"); + if (dataGroupMenu == null) + return; + + foreach (var menuItem in dataGroupMenu.MenuItems.Where(m => m.Name == MENU_ITEM_NAME).ToList()) + { + dataGroupMenu.MenuItems.Remove(menuItem); + } + } + + public static void ShowAggregationSettingsDialog(IFeatureLayer layer) + { + if (layer == null) throw new ArgumentNullException("layer"); + new AggregationSettingsDialog(layer).ShowDialog(); + } + + #region Fields + + private readonly AggregationSettings _settings; + private readonly IFeatureLayer _layer; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + /// Settings + /// Layer to update + /// Raises if or is null. + public Aggregator(AggregationSettings settings, IFeatureLayer layer) + { + if (settings == null) throw new ArgumentNullException("settings"); + if (layer == null) throw new ArgumentNullException("layer"); + Contract.EndContractBlock(); + + _settings = settings; + _layer = layer; + } + + #endregion + + #region Properties + + /// + /// Progress Handler + /// + public IProgressHandler ProgressHandler { get; set; } + + public int MaxPercentage { get; set; } + + #endregion + + #region Public methods + + private static DataColumn FindOrCreateColumn(DataTable dataTable, string columnName, Type columnType) + { + var dataColumn = dataTable.Columns.Cast() + .FirstOrDefault(column => column.ColumnName == columnName && + column.DataType == columnType); + if (dataColumn == null) + { + dataColumn = new DataColumn(columnName, columnType); + dataTable.Columns.Add(dataColumn); + } + return dataColumn; + } + + /// + /// Perform aggregation using given settings + /// + /// Aggregation result + public AggregationResult Calculate() + { + int percentage = 0; + ReportProgress(++percentage, "Starting calculation"); + + var seriesRepo = RepositoryFactory.Instance.Get(); + + IFeatureSet featureSet; + if (_settings.CreateNewLayer) + { + ReportProgress(++percentage, "Creating new layer"); + + featureSet = new FeatureSet { Projection = _layer.DataSet.Projection }; + var seriesIDCol = featureSet.DataTable.Columns.Add("SeriesID", typeof(long)); + var siteNameCol = featureSet.DataTable.Columns.Add("SiteName", typeof(string)); + var siteCodeCol = featureSet.DataTable.Columns.Add("SiteCode", typeof(string)); + + // Find features to add to new feature set + foreach (var feature in _layer.DataSet.Features) + { + var seriesIDValue = feature.DataRow["SeriesID"]; + if (seriesIDValue == null || seriesIDValue == DBNull.Value) + continue; + var seriesID = Convert.ToInt64(seriesIDValue); + var series = seriesRepo.GetByKey(seriesID); + if (series == null) continue; + + // Filter by variable code + if (series.Variable.Code != _settings.VariableCode) + { + continue; + } + // Filter by overlapping date / time + var startDateValue = feature.DataRow["StartDate"]; + var endDateValue = feature.DataRow["EndDate"]; + if (startDateValue == null || startDateValue == DBNull.Value) + continue; + if (endDateValue == null || endDateValue == DBNull.Value) + continue; + DateTime startTimeInSeries = Convert.ToDateTime(startDateValue, CultureInfo.InvariantCulture); + DateTime endTimeInSeries = Convert.ToDateTime(endDateValue, CultureInfo.InvariantCulture); + if (!TimeIntervalsOverlap(_settings.StartTime, _settings.EndTime, startTimeInSeries, endTimeInSeries)) + continue; + + var newFeature = featureSet.AddFeature(feature.BasicGeometry); + newFeature.DataRow[seriesIDCol] = seriesID; + newFeature.DataRow[siteNameCol] = series.Site.Name; + newFeature.DataRow[siteCodeCol] = series.Site.Code; + } + + var fileName = Path.Combine(Settings.Instance.CurrentProjectDirectory, + string.Format("{0}-{1}-{2}.shp", + _settings.AggregationMode, + _settings.StartTime.ToString("yyyyMMdd", CultureInfo.InvariantCulture), + _settings.EndTime.ToString("yyyyMMdd", CultureInfo.InvariantCulture))); + featureSet.Filename = fileName; + } + else + { + featureSet = _layer.DataSet; + } + + // Add column to store data, if it not exists + ReportProgress(++percentage, "Finding column to store data"); + var columnName = GetColumnName(_settings.AggregationMode); + var columnType = typeof (double); + var dataColumn = FindOrCreateColumn(featureSet.DataTable, columnName, columnType); + var percAvailableColumn = FindOrCreateColumn(featureSet.DataTable, "PercAvailable", columnType); + + // Find series to aggregate + ReportProgress(++percentage, "Finding series to process"); + + var idsToProcess = new List>(); + foreach (var feature in featureSet.Features) + { + var seriesIDValue = feature.DataRow["SeriesID"]; + if (seriesIDValue == null || seriesIDValue == DBNull.Value) + continue; + + var seriesID = Convert.ToInt64(seriesIDValue); + var series = seriesRepo.GetByKey(seriesID); + if (series == null) continue; + + // Filter by variable code + if (series.Variable.Code != _settings.VariableCode) + { + continue; + } + + idsToProcess.Add(new Tuple(feature, seriesID)); + } + + // Calculating... + var repo = RepositoryFactory.Instance.Get(); + var aggregationFunction = GetSQLAggregationFunction(_settings.AggregationMode); + var minDate = _settings.StartTime; + var maxDate = _settings.EndTime; + for (int i = 0; i < idsToProcess.Count; i++) + { + var tuple = idsToProcess[i]; + var feature = tuple.Item1; + var seriesID = tuple.Item2; + var value = repo.AggregateValues(seriesID, aggregationFunction, minDate, maxDate); + + // todo: if the value is null (no value found) then the feature shouldn't be added to the new layer. + if (value != null) + feature.DataRow[dataColumn] = Math.Round(value.Value, _settings.DecimalPlaces); + else + feature.DataRow[dataColumn] = 0; + + // Calculating PercAvailable + var percAvailabe = repo.CalculatePercAvailable(seriesID, minDate, maxDate); + feature.DataRow[percAvailableColumn] = percAvailabe; + + // reporting progress + ReportProgress(percentage + (i + 1) * (MaxPercentage - percentage) / idsToProcess.Count, + string.Format("Processed {0}/{1} series", i + 1, idsToProcess.Count)); + } + + var result = new AggregationResult + { + FeatureSet = featureSet, + ResultColumnName = dataColumn.ColumnName, + }; + return result; + } + + #endregion + + #region Private methods + + private static bool TimeIntervalsOverlap(DateTime startDate1, DateTime endDate1, DateTime startDate2, DateTime endDate2) + { + if (startDate2 <= endDate1 && endDate2 >= startDate1) + return true; + return false; + } + + private void ReportProgress(int percentage, object state) + { + var progressHandler = ProgressHandler; + if (progressHandler == null) return; + + progressHandler.ReportProgress(percentage, state); + } + + private static string GetColumnName(AggregationMode mode) + { + return mode.Description(); + } + + private static string GetSQLAggregationFunction(AggregationMode mode) + { + switch (mode) + { + case AggregationMode.Max: + return "Max"; + case AggregationMode.Min: + return "Min"; + case AggregationMode.Sum: + return "Sum"; + case AggregationMode.Avg: + return "Avg"; + default: + throw new ArgumentOutOfRangeException("Unknown AggregationMode"); + } + } + + #endregion + } + + /// + /// Contains results of aggregation + /// + public class AggregationResult + { + /// + /// Resulted FeatureSet + /// + public IFeatureSet FeatureSet { get; set; } + + /// + /// Name of column, which contains aggregation values + /// + public string ResultColumnName { get; set; } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/DataAggregationPlugin.cs b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/DataAggregationPlugin.cs new file mode 100644 index 00000000..d3e9546d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/DataAggregationPlugin.cs @@ -0,0 +1,150 @@ +using System; +using System.Linq; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using DotSpatial.Symbology; +using HydroDesktop.Common; +using HydroDesktop.Common.UserMessage; +using HydroDesktop.Interfaces.PluginContracts; + +namespace HydroDesktop.Plugins.DataAggregation +{ + /// + /// Allow to aggregate data in features layers + /// + public class DataAggregationPlugin : Extension, IDataAggregationPlugin + { + private const string Interpolation_Root_Key = "kInterpolation_Methods"; + + #region Extension methods + + /// + /// Activates this provider + /// + public override void Activate() + { + base.Activate(); + + App.Map.LayerAdded += Map_LayerAdded; + App.Map.Layers.LayerRemoved += Layers_LayerRemoved; + App.SerializationManager.Deserializing += SerializationManager_Deserializing; + App.ExtensionsActivated += AppOnExtensionsActivated; + } + + + /// + /// Deactivates this provider + /// + public override void Deactivate() + { + App.Map.LayerAdded -= Map_LayerAdded; + App.Map.Layers.LayerRemoved -= Layers_LayerRemoved; + App.SerializationManager.Deserializing -= SerializationManager_Deserializing; + App.ExtensionsActivated -= AppOnExtensionsActivated; + foreach (var layer in App.Map.MapFrame.Layers) + DettachLayerFromPlugin(layer); + + base.Deactivate(); + } + + #endregion + + #region Private methods + + private void AppOnExtensionsActivated(object sender, EventArgs eventArgs) + { + if (App.GetExtension("GeostatisticalTool") != null) + { + App.HeaderControl.Add(new SimpleActionItem(MessageStrings.Show_Values_in_Map, ClickShowValueInMapEventHandler) + { + RootKey = Interpolation_Root_Key, + LargeImage = Properties.Resources.show_values_in_map_32, + SmallImage = Properties.Resources.show_values_in_map_16, + }); + App.HeaderControl.Add(new SimpleActionItem(MessageStrings.Merge_Layers, ClickMergeLayersEventHandler) + { + RootKey = Interpolation_Root_Key, + LargeImage = null, + SmallImage = null, + }); + } + } + + private void ClickMergeLayersEventHandler(object sender, EventArgs eventArgs) + { + //throw new NotImplementedException(); + } + + private void ClickShowValueInMapEventHandler(object sender, EventArgs eventArgs) + { + var layer = App.Map.MapFrame.GetAllLayers().FirstOrDefault(f => f.IsSelected) as IFeatureLayer; + if (Aggregator.CanAggregateLayer(layer)) + { + Aggregator.ShowAggregationSettingsDialog(layer); + } + else + { + AppContext.Instance.Get().Info(MessageStrings.Msg_Select_Layer); + } + } + + private void SerializationManager_Deserializing(object sender, SerializingEventArgs e) + { + foreach (var layer in App.Map.MapFrame.Layers) + AttachLayerToPlugin(layer); + } + + private void Map_LayerAdded(object sender, LayerEventArgs e) + { + if (e.Layer == null) return; //occurs when moving layer + + AttachLayerToPlugin(e.Layer); + } + + void Layers_LayerRemoved(object sender, LayerEventArgs e) + { + DettachLayerFromPlugin(e.Layer); + } + + private void DettachLayerFromPlugin(ILayer layer) + { + Aggregator.RemoveContextMenu(layer); + + var group = layer as IGroup; + if (group != null) + { + group.LayerAdded -= Map_LayerAdded; + group.LayerRemoved -= Layers_LayerRemoved; + + foreach (var child in group.GetLayers()) + DettachLayerFromPlugin(child); + } + } + + #endregion + + /// + /// Attach layer to data aggregation plug-in + /// + /// Layer to attach + public void AttachLayerToPlugin(ILayer layer) + { + // Check for DataAggregation + var fl = layer as IFeatureLayer; + if (Aggregator.CanAggregateLayer(fl)) + { + Aggregator.UpdateContextMenu(fl); + } + + var group = layer as IGroup; + if (group != null) + { + group.LayerAdded += Map_LayerAdded; + group.LayerRemoved += Layers_LayerRemoved; + + foreach (var child in group.GetLayers()) + AttachLayerToPlugin(child); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/HydroDesktop.Plugins.DataAggregation.csproj b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/HydroDesktop.Plugins.DataAggregation.csproj new file mode 100644 index 00000000..512b4629 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/HydroDesktop.Plugins.DataAggregation.csproj @@ -0,0 +1,208 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {68883359-0DB6-4938-A35F-A8514810F04A} + Library + Properties + HydroDesktop.Plugins.DataAggregation + HydroDesktop.Plugins.DataAggregation + v4.0 + 512 + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataAggregation\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataAggregation\HydroDesktop.Plugins.DataAggregation.XML + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataAggregation\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataAggregation\ + DEBUG;TRACE + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataAggregation\HydroDesktop.Plugins.DataAggregation.XML + full + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataAggregation\HydroDesktop.Plugins.DataAggregation.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataAggregation\ + TRACE + true + pdbonly + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataAggregation\HydroDesktop.Plugins.DataAggregation.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + + + + + + + + + + + + + True + True + MessageStrings.resx + + + + True + True + Resources.resx + + + Form + + + AggregationSettingsDialog.cs + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB} + HydroDesktop.Configuration + False + + + {CEB869C6-ED48-4846-9040-4E82AB58B86B} + HydroDesktop.Data + False + + + {0B9BA90B-2016-4754-915A-0AD74FD0067A} + HydroDesktop.Interfaces + False + + + + + ResXFileCodeGenerator + MessageStrings.Designer.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + AggregationSettingsDialog.cs + + + + + + + + + + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/HydroDesktop.Plugins.DataAggregation.csproj.DotSettings b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/HydroDesktop.Plugins.DataAggregation.csproj.DotSettings new file mode 100644 index 00000000..4eaa591e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/HydroDesktop.Plugins.DataAggregation.csproj.DotSettings @@ -0,0 +1,3 @@ + + + Pessimistic \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/HydroDesktop.Plugins.DataAggregation.nuspec b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/HydroDesktop.Plugins.DataAggregation.nuspec new file mode 100644 index 00000000..be030522 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/HydroDesktop.Plugins.DataAggregation.nuspec @@ -0,0 +1,17 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + HydroDesktop + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/MessageStrings.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/MessageStrings.Designer.cs new file mode 100644 index 00000000..c525cf76 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/MessageStrings.Designer.cs @@ -0,0 +1,90 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.DataAggregation { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class MessageStrings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal MessageStrings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.DataAggregation.MessageStrings", typeof(MessageStrings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Merge Layers. + /// + internal static string Merge_Layers { + get { + return ResourceManager.GetString("Merge_Layers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please select a Data Sites layer in the map legend.. + /// + internal static string Msg_Select_Layer { + get { + return ResourceManager.GetString("Msg_Select_Layer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show Values in Map. + /// + internal static string Show_Values_in_Map { + get { + return ResourceManager.GetString("Show_Values_in_Map", resourceCulture); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/MessageStrings.resx b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/MessageStrings.resx new file mode 100644 index 00000000..5d852c00 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/MessageStrings.resx @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Show Values in Map + + + Merge Layers + + + Please select a Data Sites layer in the map legend. + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..c006aca0 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Properties/AssemblyInfo.cs @@ -0,0 +1,28 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("DataAggregation")] +[assembly: AssemblyDescription( + "Show average, minimum, maximum or sum of observation values in the map for multiple sites;" + + " so that the values can be used by the interpolation tool. " + + "This extension adds a new context menu Data - Show values in map... when user right-clicks on a Data Sites layer in the legend.")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CUAHSI")] +[assembly: AssemblyProduct("DataAggregation")] +[assembly: AssemblyCopyright("Copyright © CUAHSI 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("77677007-e979-4b29-a336-e9843bf37a2c")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Properties/Resources.Designer.cs new file mode 100644 index 00000000..9f6d7d2d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Properties/Resources.Designer.cs @@ -0,0 +1,93 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.DataAggregation.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.DataAggregation.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon show_values_in_map { + get { + object obj = ResourceManager.GetObject("show_values_in_map", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap show_values_in_map_16 { + get { + object obj = ResourceManager.GetObject("show_values_in_map_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap show_values_in_map_32 { + get { + object obj = ResourceManager.GetObject("show_values_in_map_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Properties/Resources.resx new file mode 100644 index 00000000..5caec000 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Properties/Resources.resx @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\show_values_in_map.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\show_values_in_map_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\show_values_in_map_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Resources/show_values_in_map.ico b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Resources/show_values_in_map.ico new file mode 100644 index 00000000..321fb2b5 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Resources/show_values_in_map.ico differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Resources/show_values_in_map_16.png b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Resources/show_values_in_map_16.png new file mode 100644 index 00000000..b440e725 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Resources/show_values_in_map_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Resources/show_values_in_map_32.png b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Resources/show_values_in_map_32.png new file mode 100644 index 00000000..21c29316 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/Resources/show_values_in_map_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/UI/AggregationSettingsDialog.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/UI/AggregationSettingsDialog.Designer.cs new file mode 100644 index 00000000..b334ee07 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/UI/AggregationSettingsDialog.Designer.cs @@ -0,0 +1,274 @@ +namespace HydroDesktop.Plugins.DataAggregation.UI +{ + partial class AggregationSettingsDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AggregationSettingsDialog)); + this.btnOK = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.lblType = new System.Windows.Forms.Label(); + this.cmbMode = new System.Windows.Forms.ComboBox(); + this.lblStartTime = new System.Windows.Forms.Label(); + this.dtpStartTime = new System.Windows.Forms.DateTimePicker(); + this.lblEndTime = new System.Windows.Forms.Label(); + this.dtpEndTime = new System.Windows.Forms.DateTimePicker(); + this.pbProgress = new System.Windows.Forms.ProgressBar(); + this.paSettings = new System.Windows.Forms.Panel(); + this.lblDecimalPlaces = new System.Windows.Forms.Label(); + this.nudDecimalPlaces = new System.Windows.Forms.NumericUpDown(); + this.chbCreateCategories = new System.Windows.Forms.CheckBox(); + this.chbCreateNewLayer = new System.Windows.Forms.CheckBox(); + this.lblVariable = new System.Windows.Forms.Label(); + this.cmbVariable = new System.Windows.Forms.ComboBox(); + this.lblProgress = new System.Windows.Forms.Label(); + this.paSettings.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudDecimalPlaces)).BeginInit(); + this.SuspendLayout(); + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.Location = new System.Drawing.Point(153, 315); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 0; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + this.btnOK.Click += new System.EventHandler(this.btnOK_Click); + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(234, 315); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 1; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // lblType + // + this.lblType.AutoSize = true; + this.lblType.Location = new System.Drawing.Point(14, 24); + this.lblType.Name = "lblType"; + this.lblType.Size = new System.Drawing.Size(103, 13); + this.lblType.TabIndex = 2; + this.lblType.Text = "Type of Aggregation"; + // + // cmbMode + // + this.cmbMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbMode.FormattingEnabled = true; + this.cmbMode.Location = new System.Drawing.Point(119, 21); + this.cmbMode.Name = "cmbMode"; + this.cmbMode.Size = new System.Drawing.Size(168, 21); + this.cmbMode.TabIndex = 3; + // + // lblStartTime + // + this.lblStartTime.AutoSize = true; + this.lblStartTime.Location = new System.Drawing.Point(14, 95); + this.lblStartTime.Name = "lblStartTime"; + this.lblStartTime.Size = new System.Drawing.Size(55, 13); + this.lblStartTime.TabIndex = 4; + this.lblStartTime.Text = "Start Time"; + // + // dtpStartTime + // + this.dtpStartTime.Format = System.Windows.Forms.DateTimePickerFormat.Short; + this.dtpStartTime.Location = new System.Drawing.Point(119, 89); + this.dtpStartTime.Name = "dtpStartTime"; + this.dtpStartTime.Size = new System.Drawing.Size(168, 20); + this.dtpStartTime.TabIndex = 5; + // + // lblEndTime + // + this.lblEndTime.AutoSize = true; + this.lblEndTime.Location = new System.Drawing.Point(14, 128); + this.lblEndTime.Name = "lblEndTime"; + this.lblEndTime.Size = new System.Drawing.Size(52, 13); + this.lblEndTime.TabIndex = 6; + this.lblEndTime.Text = "End Time"; + // + // dtpEndTime + // + this.dtpEndTime.Format = System.Windows.Forms.DateTimePickerFormat.Short; + this.dtpEndTime.Location = new System.Drawing.Point(119, 122); + this.dtpEndTime.Name = "dtpEndTime"; + this.dtpEndTime.Size = new System.Drawing.Size(168, 20); + this.dtpEndTime.TabIndex = 7; + // + // pbProgress + // + this.pbProgress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pbProgress.Location = new System.Drawing.Point(12, 258); + this.pbProgress.Name = "pbProgress"; + this.pbProgress.Size = new System.Drawing.Size(297, 23); + this.pbProgress.TabIndex = 8; + this.pbProgress.Visible = false; + // + // paSettings + // + this.paSettings.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.paSettings.Controls.Add(this.lblDecimalPlaces); + this.paSettings.Controls.Add(this.nudDecimalPlaces); + this.paSettings.Controls.Add(this.chbCreateCategories); + this.paSettings.Controls.Add(this.chbCreateNewLayer); + this.paSettings.Controls.Add(this.lblVariable); + this.paSettings.Controls.Add(this.cmbVariable); + this.paSettings.Controls.Add(this.lblType); + this.paSettings.Controls.Add(this.cmbMode); + this.paSettings.Controls.Add(this.dtpEndTime); + this.paSettings.Controls.Add(this.lblStartTime); + this.paSettings.Controls.Add(this.lblEndTime); + this.paSettings.Controls.Add(this.dtpStartTime); + this.paSettings.Location = new System.Drawing.Point(12, 12); + this.paSettings.Name = "paSettings"; + this.paSettings.Size = new System.Drawing.Size(297, 235); + this.paSettings.TabIndex = 9; + // + // lblDecimalPlaces + // + this.lblDecimalPlaces.AutoSize = true; + this.lblDecimalPlaces.Location = new System.Drawing.Point(14, 157); + this.lblDecimalPlaces.Name = "lblDecimalPlaces"; + this.lblDecimalPlaces.Size = new System.Drawing.Size(80, 13); + this.lblDecimalPlaces.TabIndex = 13; + this.lblDecimalPlaces.Text = "Decimal Places"; + // + // nudDecimalPlaces + // + this.nudDecimalPlaces.Location = new System.Drawing.Point(119, 155); + this.nudDecimalPlaces.Maximum = new decimal(new int[] { + 10, + 0, + 0, + 0}); + this.nudDecimalPlaces.Name = "nudDecimalPlaces"; + this.nudDecimalPlaces.Size = new System.Drawing.Size(168, 20); + this.nudDecimalPlaces.TabIndex = 12; + // + // chbCreateCategories + // + this.chbCreateCategories.AutoSize = true; + this.chbCreateCategories.Location = new System.Drawing.Point(17, 208); + this.chbCreateCategories.Name = "chbCreateCategories"; + this.chbCreateCategories.Size = new System.Drawing.Size(109, 17); + this.chbCreateCategories.TabIndex = 11; + this.chbCreateCategories.Text = "Create categories"; + this.chbCreateCategories.UseVisualStyleBackColor = true; + // + // chbCreateNewLayer + // + this.chbCreateNewLayer.AutoSize = true; + this.chbCreateNewLayer.Location = new System.Drawing.Point(17, 185); + this.chbCreateNewLayer.Name = "chbCreateNewLayer"; + this.chbCreateNewLayer.Size = new System.Drawing.Size(105, 17); + this.chbCreateNewLayer.TabIndex = 10; + this.chbCreateNewLayer.Text = "Create new layer"; + this.chbCreateNewLayer.UseVisualStyleBackColor = true; + // + // lblVariable + // + this.lblVariable.AutoSize = true; + this.lblVariable.Location = new System.Drawing.Point(14, 58); + this.lblVariable.Name = "lblVariable"; + this.lblVariable.Size = new System.Drawing.Size(45, 13); + this.lblVariable.TabIndex = 8; + this.lblVariable.Text = "Variable"; + // + // cmbVariable + // + this.cmbVariable.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbVariable.FormattingEnabled = true; + this.cmbVariable.Location = new System.Drawing.Point(119, 55); + this.cmbVariable.Name = "cmbVariable"; + this.cmbVariable.Size = new System.Drawing.Size(168, 21); + this.cmbVariable.TabIndex = 9; + // + // lblProgress + // + this.lblProgress.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.lblProgress.AutoSize = true; + this.lblProgress.Location = new System.Drawing.Point(9, 291); + this.lblProgress.Name = "lblProgress"; + this.lblProgress.Size = new System.Drawing.Size(93, 13); + this.lblProgress.TabIndex = 10; + this.lblProgress.Text = "Current Operation:"; + this.lblProgress.Visible = false; + // + // AggregationSettingsDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(321, 360); + this.Controls.Add(this.lblProgress); + this.Controls.Add(this.paSettings); + this.Controls.Add(this.pbProgress); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AggregationSettingsDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Aggregation Settings"; + this.paSettings.ResumeLayout(false); + this.paSettings.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudDecimalPlaces)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Label lblType; + private System.Windows.Forms.ComboBox cmbMode; + private System.Windows.Forms.Label lblStartTime; + private System.Windows.Forms.DateTimePicker dtpStartTime; + private System.Windows.Forms.Label lblEndTime; + private System.Windows.Forms.DateTimePicker dtpEndTime; + private System.Windows.Forms.ProgressBar pbProgress; + private System.Windows.Forms.Panel paSettings; + private System.Windows.Forms.Label lblVariable; + private System.Windows.Forms.ComboBox cmbVariable; + private System.Windows.Forms.CheckBox chbCreateNewLayer; + private System.Windows.Forms.Label lblProgress; + private System.Windows.Forms.CheckBox chbCreateCategories; + private System.Windows.Forms.Label lblDecimalPlaces; + private System.Windows.Forms.NumericUpDown nudDecimalPlaces; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/UI/AggregationSettingsDialog.cs b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/UI/AggregationSettingsDialog.cs new file mode 100644 index 00000000..a02e0d70 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/UI/AggregationSettingsDialog.cs @@ -0,0 +1,368 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics.Contracts; +using System.Drawing; +using System.Globalization; +using System.IO; +using System.Threading; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Symbology; +using HydroDesktop.Common.Tools; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using IProgressHandler = HydroDesktop.Common.IProgressHandler; +using PointShape = DotSpatial.Symbology.PointShape; + +namespace HydroDesktop.Plugins.DataAggregation.UI +{ + /// + /// Settings form for aggregation + /// + public partial class AggregationSettingsDialog : Form, IProgressHandler + { + #region Fields + + private readonly IFeatureLayer _layer; + private readonly AggregationSettings _settings; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + /// Layer to aggregate + public AggregationSettingsDialog(IFeatureLayer layer) + { + if (layer == null) throw new ArgumentNullException("layer"); + Contract.EndContractBlock(); + + InitializeComponent(); + + dtpStartTime.Format = dtpEndTime.Format = DateTimePickerFormat.Custom; + dtpStartTime.CustomFormat = dtpEndTime.CustomFormat = CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern + " HH:mm:ss"; + + _layer = layer; + _settings = new AggregationSettings + { + CreateNewLayer = true, + CreateCategories = true, + DecimalPlaces = 1, + }; + + Load += OnLoad; + } + + private void OnLoad(object sender, EventArgs eventArgs) + { + // Set bindings + cmbMode.DataSource = Enum.GetValues(typeof(AggregationMode)); + cmbMode.Format += delegate(object s, ListControlConvertEventArgs args) + { + args.Value = ((AggregationMode)args.ListItem).Description(); + }; + + cmbMode.AddBinding(x => x.SelectedItem, _settings, x => x.AggregationMode); + dtpStartTime.AddBinding(x => x.Value, _settings, x => x.StartTime); + dtpEndTime.AddBinding(x => x.Value, _settings, x => x.EndTime); + cmbVariable.AddBinding(x => x.SelectedItem, _settings, x => x.VariableCode); + chbCreateNewLayer.AddBinding(x => x.Checked, _settings, x => x.CreateNewLayer); + chbCreateCategories.AddBinding(x => x.Checked, _settings, x => x.CreateCategories); + nudDecimalPlaces.AddBinding(x => x.Value, _settings, x => x.DecimalPlaces); + + // Set initial StartTime, EndTime + var minStartTime = DateTime.MaxValue; + var maxEndTime = DateTime.MinValue; + + foreach (var feature in _layer.DataSet.Features) + { + var startDateRow = feature.DataRow["StartDate"]; + var endDateRow = feature.DataRow["EndDate"]; + + if (startDateRow == DBNull.Value || endDateRow == DBNull.Value) continue; + + var startDate = Convert.ToDateTime(startDateRow, CultureInfo.InvariantCulture); + var endDate = Convert.ToDateTime(endDateRow, CultureInfo.InvariantCulture); + + if (minStartTime > startDate) + { + minStartTime = startDate; + } + if (maxEndTime < endDate) + { + maxEndTime = endDate; + } + } + if (minStartTime == DateTime.MaxValue) + { + minStartTime = DateTime.Now; + } + if (maxEndTime == DateTime.MinValue) + { + maxEndTime = DateTime.Now; + } + _settings.StartTime = minStartTime; + _settings.EndTime = maxEndTime; + + // Get all variables associated with current layer + var seriesRepo = RepositoryFactory.Instance.Get(); + var uniqueVariables = new List(); + foreach (var feature in _layer.DataSet.Features) + { + var seriesIDValue = feature.DataRow["SeriesID"]; + if (seriesIDValue == null || seriesIDValue == DBNull.Value) + continue; + var seriesID = Convert.ToInt64(seriesIDValue); + var series = seriesRepo.GetByKey(seriesID); + if (series == null) continue; + + var curVar = series.Variable.Code; + if (!uniqueVariables.Contains(curVar)) + { + uniqueVariables.Add(curVar); + } + } + if (uniqueVariables.Count > 0) + { + _settings.VariableCode = uniqueVariables[0]; + } + cmbVariable.DataSource = uniqueVariables; + + // + btnOK.Enabled = _layer.DataSet.Features.Count > 0 && + uniqueVariables.Count > 0; + } + + #endregion + + #region Private methods + + private BackgroundWorker _backgroundWorker; + + private void btnOK_Click(object sender, EventArgs e) + { + SetControlsToCalculation(); + + _backgroundWorker = new BackgroundWorker { WorkerReportsProgress = true }; + _backgroundWorker.DoWork += delegate(object o, DoWorkEventArgs args) + { + var aggregator = new Aggregator(_settings, _layer) + { + ProgressHandler = this, + MaxPercentage = 97, + }; + args.Result = aggregator.Calculate(); + }; + _backgroundWorker.RunWorkerCompleted += delegate(object o, RunWorkerCompletedEventArgs args) + { + if (args.Error != null) + { + MessageBox.Show("Error occured:" + Environment.NewLine + + args.Error.Message, "Aggregation", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + else + { + // This actions must be executed only in UI thread + var result = (AggregationResult) args.Result; + var featureSet = result.FeatureSet; + var columnName = result.ResultColumnName; + + // Save updated data + ReportProgress(98, "Saving data"); + Application.DoEvents(); + var resultFileName = featureSet.Filename; + if (!string.IsNullOrEmpty(featureSet.Filename)) + { + featureSet.Save(); + } + + if (_settings.CreateNewLayer) + { + ReportProgress(99, "Adding layer to map"); + Application.DoEvents(); + + if (File.Exists(resultFileName)) + { + featureSet = FeatureSet.Open(resultFileName); //re-open the featureSet from the file + var mapLayer = new MapPointLayer(featureSet) { LegendText = Path.GetFileNameWithoutExtension(featureSet.Filename) }; + _layer.MapFrame.Add(mapLayer); + + UpdateLabeling(mapLayer, columnName); + if (_settings.CreateCategories) + { + UpdateSymbology(mapLayer, columnName); + } + } + } + + ReportProgress(100, "Finished"); + Application.DoEvents(); + + DialogResult = DialogResult.OK; + Close(); + } + }; + _backgroundWorker.RunWorkerAsync(); + } + + private void UpdateLabeling(IFeatureLayer mapLayer, string columnName) + { + var symbolizer = new LabelSymbolizer + { + FontColor = Color.Black, + FontSize = 8, + FontFamily = "Arial Unicode MS", + PreventCollisions = true, + HaloEnabled = true, + HaloColor = Color.White, + Orientation = ContentAlignment.MiddleRight, + }; + ((Map)((IMapFrame)_layer.MapFrame).Parent).AddLabels(mapLayer, string.Format("[{0}]", columnName), string.Empty, symbolizer, "Category Default"); + } + + private void UpdateSymbology(IFeatureLayer mapLayer, string columnName) + { + var scheme = new PointScheme(); + scheme.ClearCategories(); + + var settings = scheme.EditorSettings; + settings.ClassificationType = ClassificationType.Custom; + + var colors = new[] + { + Color.Aqua, Color.Blue, Color.Brown, Color.Cyan, Color.Fuchsia, Color.LightSalmon, + Color.Olive, Color.Wheat, Color.DodgerBlue + }; + + // Find min/max value in valueField + var minValue = double.MaxValue; + var maxValue = double.MinValue; + foreach (DataRow row in mapLayer.DataSet.DataTable.Rows) + { + double value; + try + { + value = Convert.ToDouble(row[columnName]); + } + catch + { + value = 0; + } + if (value < minValue) + minValue = value; + if (value > maxValue) + maxValue = value; + } + const double EPSILON = 0.00001; + if (Math.Abs(minValue - double.MaxValue) < EPSILON) minValue = 0.0; + if (Math.Abs(maxValue - double.MinValue) < EPSILON) maxValue = 0.0; + + var fracLength = maxValue - minValue > 10? 0 : 1; + + // Set number of categories + const int categoriesCount = 3; + var categorieStep = (maxValue - minValue) / categoriesCount; // value step in filter + + const int imageStep = 5; + var imageSize = 10; // start image size + + var imageColor = colors[new Random().Next(0, colors.Length - 1)]; + for (int i = 0; i < categoriesCount; i++) + { + var min = minValue + categorieStep*i; + var max = min + categorieStep; + if (max >= maxValue) + max = maxValue + 1; + + min = Math.Round(min, fracLength); + max = Math.Round(max, fracLength); + + // Fix possible round problems on interval borders + if (i == 0 && min > minValue) + { + min--; + } + if (i == categoriesCount-1 && max < maxValue) + { + max++; + } + + imageSize += imageStep; + var baseFilter = string.Format("[{0}] >= {1} and [{0}] < {2}", columnName, + fracLength == 0 ? (int)min : min, + fracLength == 0 ? (int)max : max); + var legendText = string.Format("[{0}, {1})", + fracLength == 0 ? (int)min : min, + fracLength == 0 ? (int)max : max); + var mySymbolizer = new PointSymbolizer(imageColor, PointShape.Ellipse, imageSize); + var myCategory = new PointCategory(mySymbolizer) + { + FilterExpression = baseFilter.Replace(",","."), + LegendText = legendText, + }; + scheme.AddCategory(myCategory); + } + + mapLayer.Symbology = scheme; + } + + private void SetControlsToCalculation() + { + paSettings.Enabled = false; + pbProgress.Visible = lblProgress.Visible = true; + btnOK.Enabled = btnCancel.Enabled = false; + } + + #endregion + + #region IProgressHandler implementation + + /// + /// Report progress + /// + /// Percentage of progress + /// State of progress + public void ReportProgress(int percentage, object state) + { + pbProgress.UIThread(() => pbProgress.Value = percentage); + lblProgress.UIThread(() => lblProgress.Text = state != null ? state.ToString() : string.Empty); + } + + /// + /// Check for cancel + /// + public void CheckForCancel() + { + var bw = _backgroundWorker; + if (bw != null && bw.WorkerSupportsCancellation) + { + bw.CancelAsync(); + } + } + + /// + /// Report any custom message + /// + /// Message to report + public void ReportMessage(string message) + { + lblProgress.UIThread(() => lblProgress.Text = message); + } + + /// + /// CancellationToken + /// + public CancellationToken CancellationToken + { + get { throw new NotImplementedException(); } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/UI/AggregationSettingsDialog.resx b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/UI/AggregationSettingsDialog.resx new file mode 100644 index 00000000..789a1ea2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/UI/AggregationSettingsDialog.resx @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAUAAAAQAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAA + ABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAA + ABUAAAANAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAxAAAAQgAAAEMAAABDAAAAQwAAAEMAAABDAAAAQwAA + AEMAAABDAAAAQwAAAEMAAABDAAAAQwAAAEMAAABDAAAAQwAAAEMAAABDAAAAQwAAAEMAAABDAAAAQwAA + AEMAAABDAAAAQwAAAD8AAAArAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa2ghnztn4O/7R7Cf+0egf/tHoH/7R6 + B/+0egf/tHoH/7R6B/+0egf/tHoH/7R6B/+0egf/tHsI/7V7CP+1fAn/tXsI/7R7CP+0egf/tHoH/7R6 + B/+0egf/tHoH/7R6B/+0egf/tHsJ/7Z+Dv+mdxbEAAAAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa2fg7///////// + //////////////////////////////////////////////////////////////7//////////v////// + //////////////////////////////////////////////////+2fg7/AAAAFgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ABa0ewn///////////////////////////////////////////////////////////////////////no + 7v/z5er/9Oru//////////////////////////////////////////////////////+0ewn/AAAAFgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAABa0egf///////////92ppr/PLOV/wDDi/8Aq3r/AMiV/wDKl/8EzZz/CtKg/wm3 + jf8T2Kj/Gd2u/xW+lf8UuJH/JqOF/6etrP8v6L3/Ue3P/87v//+y0d//0vX//9b1///b9//////9//// + //+0egf/AAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa0egf///////////8At4j/sa2u/323qf8GsIT/Cc6d/xPP + n/8Y0qT/Hteo/x28lf8m3LD/KuG1/yTHof8yoob/k4CF/5DFuP838MT/Xe/T/9bx//+31OD/1/b//9r3 + ///e+P////35//////+0egf/AAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa0egf///////////8Au4X/AMWT/5y1 + r/+XnJr/Hs2i/xHTov8a1af/Idir/yC+l/8o37L/KuW4/zrDpP+DbnL/S6iS/znzx/898MX/YPHU/9jy + //+51eH/2Pj//9z4///f+v////z2//////+0egf/AAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa0egf///////// + /v8AonL/AKp+/wCxhP9opJX/rpid/zKwkP8Ou5D/Gb2U/x6/mP8ew5r/Ob+e/5qIjf8wZVn/KL+c/zXS + rP800Kv/dtDI/7rT5P+51uL/vNfh/7/Y4P/B2eD///rz//////+0egf/AAAAFgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ABa0egj////////9+v8Au4f/AcST/wfKmf8CtIb/UcSn/8SutP97v63/H9ir/xTBl/8x3LL/wq6y/2TW + uv9ekYX/NLeZ/zz1yf868sX/rvD3/9Pz//+41eH/2Pj//9z4///f+v///vjv//////+0egj/AAAAFgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAABa0egj////////79v8Au4b/AsOS/wvJmf8Ksof/C9Cf/yHOo/+Tt67/w66z/2qq + mP+otbL/f8Kz/yfnuf894Ln/cGNl/zqmjP8/+s3/1vP//9Hz//+31OD/1/f//9r3///e+f///Pbr//// + //+0egj/AAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa0egj////////58/8Au4f/ArqL/wrAkv8MqIL/Ec+g/xPR + of8S1qX/NtSr/3qpl/+Yv7D/JOOz/y7jt/8067//T7mf/3FUWv9RZ2v/y+7//9T6//+51+P/2Pf//9r3 + ///e+v//+/To//////+0egj/AAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa0egj////////47/8AvYj/ArCD/wmz + h/8Mn3n/E9Gi/xjSo/8a1qb/Ht+p/wBAu/8QjMj/LOS0/zLjuP826b7/LtSs/2axnP9pW1v/OTk//7TU + 5P/B4e3/3f3//9/8///s58T//fbr//////+2ewj/AAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa0egj////////2 + 7P8ApXb/AJFt/wiNbP8MmHT/EbaN/xW3jv8ZvY//H8SS/yHHlf8lxpj/KMSd/yzFoP8uyaT/LNCm/3LY + 0f+Khoj/Z2Ff/yAbH/+Ckpz/0Oj2/9Tl9v/ut17///31///////Gfgn/AAAAIAAAAAUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ABa0egj////////05/8Avor/Aa2B/wiUb/8MnHf/E9Kj/xnWof8c0qf/BUTY/x+5mP8q4LH/LuC1/zLi + t/8z5rr/N8yq/8Pw///B5fz/fnp3/25kZP8fDhX/OoJu/wCDUf8AeET/AHZD/wCDVv9kgC//AAAAOAAA + ABUAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAABa0egj////////y4/8Avor/Aa6C/waBYv8LnXf/E9Kh/xrYn/8EQtX/ClXS/yLF + lP8q3rH/Lt6z/y7htP8r5bX/lcva/8Ts///I8v//scjX/3pxbv8LgFP/AJFc/wCuef8As4D/ALN//wCu + e/8AkGD/AH1P7AAAACwAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa0ewj////////w3/8AvYn/ALOF/wNwVP8JpHv/E9Wg/xrZ + n/8Slrn/IdOs/yHBlf8p3bH/K96y/yjhsf+K5er/qcvl/8Dr///F7v//1/r//1Gdif8Aj1r/ALSA/wCy + f/8Asn//ALN//wCyf/8AtIH/AJBf/wBqQ6EAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa0ewj////////v3P8AvYr/AMqW/1mI + fP8XpH3/CrWw/wyJwP8d3aT/Ityq/yC+l/8n3bH/Jt+w/13i0f/A5v//pMzi/7/s///G7///2vr//wCA + Tf8ArXj/ALWB/wC6hf8Avon/AL+J/wC8hv8AtoL/AK57/wCBUf8AAAAWAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa0ewj////////t + 2P8ApHX/AK2B/xavh/90a2f/EhuT/wRwsf8Yw5L/Hb6V/x+/l/8dwJX/TcK0/6PF5/+hyOP/os3j/6TN + 5f+p0e3/xMWt/wB3RP8AtoL/AL6H/wDFjv8AzJT/AM2T/wDIkf8AwIr/AbqG/wCAT/8AAAAWAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ABa0ewj////////r1f8AvYn/AcaT/wbPmv81q4f/fWBg/yVlUv8X16X/H+Cv/xrAlf8337v/rOD//7Pj + //+15///n8zm/7rv///q2qL//8xj/wB3SP8WxJT/AMSO/wDQlv8A2Z7/ANqf/wDTmP8AyJD/GsiX/wB/ + Tv8AAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAABa0ewj////////o0f8AvIj/AseR/wjEm/8Gs4z/WqeN/3lgZP8mNzb/Gb2T/y7I + qP+r4///r+P//7Hm//+16v//oc3l//PTf//+zGX//9Fs/wB7Tf9FzKn/C86Y/wDVmf8A46X/AOWn/wDY + nP8M0Zz/TtCr/wB/Tv8AAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa0ewj////////mzf8AvYj/A8uP/wJRzf8ARLb/Ct2i/3mJ + gf92Y2f/Ih8h/1qGk/+39P//uPX//775///T+Ov/5MZo///YY//+0Wv//9Fu/3alXP8RmXD/funQ/0Dj + t/8Y5q//GOix/0Dluf+C7dH/I55z/wB4So0AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa0ewj////////lyv8Avon/A86P/wAA + 8/8Mp43/ENeh/xrNoP+EfHr/dmtl/yQdDf8tOZz/AACt/wAApf8AAKn/AACq/3pkjf//4Wf//9Zt///V + cP8Lgk7/HJx2/5Xo1P+y+ur/svrp/5fp0/8moXj/AH5N5wAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa0ewj////////j + xv8ApnX/AbJ8/wmthf8NuYX/D7aL/w28jv88poz/gndx/w0Jpv8AAL3/AADT/wAA1v8AANf/AADV/wAA + v/8RDqb/78Za/+W6YP/ctWD/ZJdW/wB4SP8AckL/AHE+/wB/UP9efiv/AAAAFgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ABa0ewn////////iwv8Aw4j/AI2t/wrEm/8NtYb/EtCg/xDUnv995/L/RVW8/wAAu/8AANr/BgnY/w0R + 2f8NEtn/CAva/wAA2v8AAL//emWP///cbP/gt2H//9Jw///Rbv//0Gj//+fN///////Ffgn/AAAAFgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAABa0ewn////////gvf8AxoX/ABrk/warpP8JtIX/Ds6e/wzTmv+u6v//AACu/wAA + 0/8QFdv/HSbf/yYx4v8nMuL/ISvh/xQa3v8AANf/AACw///gaP/btV//+s5u//nNbP/6y2X/7d/D//// + //+3ewn/AAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa0ewn///////reuP8Aw4L/AADs/wDPj/8AsIH/AMya/wDS + mP+Z2f//AACm/w4R3f8iLeL/M0Pm/z1Q6v8/Uer/Nkfn/ycy4/8RF+H/AACw///gYf/as1b/+Mtm//fK + ZP/3yF7/6Nu8//////+0ewn/AAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABW1ewn//////+7Ysv/53bP//+Kz///f + tf//3Lf//tq2///dtP/23bH/AACo/y835v8uPOf/Q1ju/1Nt8/9VcPP/SF/v/zNE6P80Pun/AACr///w + uv/s3rv/59q7/+fauv/n2Lj/59ez//////+1ewn/AAAAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA22fg7///////// + ////////////////////////////////////////AAC1/1tj6v9DUuz/SWLy/2SE+v9pi/z/UGvz/0ha + 7v9fZ+v/AAC2//////////////////////////////////////+2fg7/AAAADQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAS1gRi0tn4O/7V7Cf+0ewn/tHsJ/7R7Cf+0ewn/tHsJ/7Z9CP/DhwT/XD5b/x4iyP+hrPv/fZD3/3WQ + +v94lP3/gZX4/6Sw/P8fIsj/Wz5b/8OHBP+2fQj/tHsJ/7R7Cf+0ewn/tXsJ/7Z+Dv+1gRi0AAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAA + seUxMsP/s7r2/9Pd///V3f//tLz3/zAzxf8AALPmAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAKeHAACq/wAAqf8AAKn/AACq/wAAqIgAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////+FMv///////4Uy//////// + hTL///////+FMv///////4Uy////////hTL///////+FMv///////4Uy/wAAAAP/hTL/AAAAA/+FMv8A + AAAD/4Uy/wAAAAP/hTL/AAAAA/+FMv8AAAAD/4Uy/wAAAAP/hTL/AAAAA/+FMv8AAAAD/4Uy/wAAAAP/ + hTL/AAAAA/+FMv8AAAAD/4Uy/wAAAAP/hTL/AAAAAf+FMv8AAAAA/4Uy/wAAAAD/hTL/AAAAAP+FMv8A + AAAA/4Uy/wAAAAD/hTL/AAAAAP+FMv8AAAAA/4Uy/wAAAAD/hTL/AAAAAf+FMv8AAAAD/4Uy/wAAAAP/ + hTL/AAAAA/+FMv8AAAAD/4Uy/wAAAAP/hTL/AAAAA/+FMv8AAAAD/4Uy///gB///hTL///AP//+FMv// + /////4Uy////////hTL///////+FMv///////4Uy////////hTL///////+FMv///////4Uy//////// + hTI= + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataAggregation/packages.config b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataAggregation/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/ClassConvertor.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/ClassConvertor.cs new file mode 100644 index 00000000..f45b4df1 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/ClassConvertor.cs @@ -0,0 +1,137 @@ +using System; +using DotSpatial.Data; +using DotSpatial.Symbology; +using HydroDesktop.Plugins.DataDownload.Downloading; +using HydroDesktop.Plugins.DataDownload.LayerInformation; + +namespace HydroDesktop.Plugins.DataDownload +{ + /// + /// Converts classes from one type to another + /// + static class ClassConvertor + { + /// + /// Converts instance of ServiceInfo into OneSeriesDownloadInfo + /// + /// Instance of ServiceInfo + /// Instance of OneSeriesDownloadInfo + /// serviceInfo must be not null. + public static OneSeriesDownloadInfo ServiceInfoToOneSeriesDownloadInfo(ServiceInfo serviceInfo) + { + if (serviceInfo == null) throw new ArgumentNullException("serviceInfo"); + + var oneSeries = new OneSeriesDownloadInfo + { + SiteName = serviceInfo.SiteName, + FullSiteCode = serviceInfo.SiteCode, + FullVariableCode = serviceInfo.VarCode, + Wsdl = serviceInfo.ServiceUrl, + StartDate = !serviceInfo.IsDownloaded? serviceInfo.StartDate : serviceInfo.EndDate, + EndDate = !serviceInfo.IsDownloaded? serviceInfo.EndDate : DateTime.Now, + VariableName = serviceInfo.VarName, + Latitude = serviceInfo.Latitude, + Longitude = serviceInfo.Longitude, + SourceFeature = serviceInfo.SourceFeature, + }; + if (serviceInfo.IsDownloaded) + oneSeries.OverwriteOption = Interfaces.OverwriteOptions.Overwrite; + if (serviceInfo.ValueCount.HasValue) + oneSeries.EstimatedValuesCount = serviceInfo.ValueCount.Value; + + return oneSeries; + } + + /// + /// Converts instance of IFeature into ServiceInfo + /// + /// Instance of IFeature + /// Layer + /// Instance of ServiceInfo + /// feature must be not null. + public static ServiceInfo IFeatureToServiceInfo(IFeature feature, IFeatureLayer layer) + { + if (feature == null) throw new ArgumentNullException("feature"); + + var getColumnValue = (Func)(column => (feature.DataRow[column].ToString())); + var pInfo = new ServiceInfo{SourceFeature = feature, Layer = layer}; + + foreach (var fld in feature.ParentFeatureSet.GetColumns()) + { + var strValue = getColumnValue(fld.ColumnName); + + switch (fld.ColumnName) + { + case "ServiceCode": + pInfo.DataSource = strValue; + break; + case "SiteName": + pInfo.SiteName = strValue; + break; + case "SiteCode": + pInfo.SiteCode = strValue; + break; + case "VarCode": + pInfo.VarCode = strValue; + break; + case "DataType": + pInfo.DataType = strValue; + break; + case "ValueCount": + { + int val; + pInfo.ValueCount = !Int32.TryParse(strValue, out val) ? (int?)null : val; + } + break; + case "ServiceURL": + pInfo.ServiceUrl = strValue; + break; + case "StartDate": + { + DateTime val; + pInfo.StartDate = !DateTime.TryParse(strValue, out val) ? DateTime.MinValue : val; + } + break; + case "EndDate": + { + DateTime val; + pInfo.EndDate = !DateTime.TryParse(strValue, out val) ? DateTime.MinValue : val; + } + break; + case "VarName": + pInfo.VarName = strValue; + break; + case "Latitude": + { + double val; + pInfo.Latitude = !Double.TryParse(strValue, out val) ? 0 : val; + } + break; + case "Longitude": + { + double val; + pInfo.Longitude = !Double.TryParse(strValue, out val) ? 0 : val; + } + break; + + } + } + + return pInfo; + } + + /// + /// Converts instance of IFeature into OneSeriesDownloadInfo + /// + /// Instance of IFeature + /// Layer + /// Instance of OneSeriesDownloadInfo + /// feature must be not null. + public static OneSeriesDownloadInfo IFeatureToOneSeriesDownloadInfo(IFeature feature, IFeatureLayer layer) + { + if (feature == null) throw new ArgumentNullException("feature"); + + return ServiceInfoToOneSeriesDownloadInfo(IFeatureToServiceInfo(feature, layer)); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/DataDownloadPlugin.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/DataDownloadPlugin.cs new file mode 100644 index 00000000..a7c67548 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/DataDownloadPlugin.cs @@ -0,0 +1,699 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.Composition; +using System.Diagnostics; +using System.Globalization; +using System.Linq; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using DotSpatial.Data; +using DotSpatial.Symbology; +using DotSpatial.Topology; +using Hydrodesktop.Common; +using HydroDesktop.Common; +using HydroDesktop.Common.Controls; +using HydroDesktop.Common.Tools; +using HydroDesktop.Plugins.DataDownload.Downloading; +using HydroDesktop.Plugins.DataDownload.LayerInformation; +using HydroDesktop.Plugins.DataDownload.Properties; +using HydroDesktop.Plugins.DataDownload.SearchLayersProcessing; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.PluginContracts; +using Msg = HydroDesktop.Plugins.DataDownload.MessageStrings; +using HydroDesktop.Plugins.DataDownload.Options; + +namespace HydroDesktop.Plugins.DataDownload +{ + /// + /// Plug-in that allows to download Features data. + /// + public class DataDownloadPlugin : Extension + { + #region Fields + + private SimpleActionItem _btnDownloadInSearch; + private SimpleActionItem _btnShowPopups; + private SimpleActionItem _btnSearchOptions; + private SimpleActionItem _btnSearchResults; + private ToolStripItem _seriesControlUpdateValuesMenuItem; + private SearchLayerInformer _searchLayerInformer; + private DownloadOptions _downloadOptions = new DownloadOptions {NumberOfValuesPerRequest = 10000}; + + #endregion + + #region Properties + + /// + /// Series View + /// + [Import("SeriesControl", typeof(ISeriesSelector))] + internal ISeriesSelector SeriesControl { get; private set; } + + /// + /// Download manager + /// + private DownloadManager _downloadManager; + private DownloadManager DownloadManager + { + get { return _downloadManager?? (_downloadManager = new DownloadManager()); } + } + + private bool _showPopups; + /// + /// Gets or sets a boolean indicating whether pop-ups should be shown in the map + /// + public bool ShowPopups + { + get { return _showPopups; } + set + { + if (_showPopups == value || DotSpatial.Mono.Mono.IsRunningOnMono()) return; + _showPopups = value; + + var handler = ShowPopupsChanged; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + } + + #endregion + + #region Events + + /// + /// Raised when changed + /// + public event EventHandler ShowPopupsChanged; + + /// + /// Raised when "show search results" changed + /// + public event EventHandler ShowSearchResultsChanged; + + #endregion + + #region Public methods + + /// + /// Starts downloading + /// + /// Start arguments + /// Layer, which contains points to download + public void StartDownloading(StartDownloadArg startArgs, IFeatureLayer layer) + { + if (startArgs == null) throw new ArgumentNullException("startArgs"); + if (ShowIfBusy()) return; + + startArgs.FeatureLayer = layer; + startArgs.DownloadOptions = _downloadOptions; + DownloadManager.Start(startArgs); + } + + /// + /// Starts downloading + /// + /// Layer with features to download + /// Features to download. If this null, then all features from layer will be processed. + public void StartDownloading(IFeatureLayer featureLayer, IEnumerable featuresToDownload = null) + { + if (featuresToDownload == null) + { + featuresToDownload = featureLayer.DataSet.Features; + } + var dataThemeName = featureLayer.LegendText; + var oneSeriesList = featuresToDownload.Select(f => ClassConvertor.IFeatureToOneSeriesDownloadInfo(f, featureLayer)).ToList(); + var startArgs = new StartDownloadArg(oneSeriesList, dataThemeName); + StartDownloading(startArgs, featureLayer); + } + + #endregion + + #region Plugin operations + + /// + public override void Activate() + { + if (App == null) throw new Exception("App"); + + // Subscribe to events + App.Map.LayerAdded += Map_LayerAdded; + App.Map.Layers.LayerRemoved += Layers_LayerRemoved; + App.SerializationManager.Deserializing += SerializationManager_Deserializing; + DownloadManager.Completed += DownloadManager_Completed; + + App.ExtensionsActivated += AppOnExtensionsActivated; + App.DockManager.PanelHidden += DockManager_PanelHidden; + App.DockManager.ActivePanelChanged += DockManager_ActivePanelChanged; + + // Update SeriesControl ContextMenu + _seriesControlUpdateValuesMenuItem = SeriesControl.ContextMenuStrip.Items.Add("Update Values from Server", null, DoSeriesControlUpdateValues); + + base.Activate(); + } + + void DockManager_ActivePanelChanged(object sender, DotSpatial.Controls.Docking.DockablePanelEventArgs e) + { + if (e.ActivePanelKey.Equals("kDataExplorer")) + { + + if (!_showSearchResultsPanel) + { + _btnSearchResults.Toggle(); + } + _showSearchResultsPanel = true; + } + } + + void DockManager_PanelHidden(object sender, DotSpatial.Controls.Docking.DockablePanelEventArgs e) + { + if (e.ActivePanelKey == "kDataExplorer") + { + + if (_showSearchResultsPanel) + { + _btnSearchResults.Toggle(); + + } + _showSearchResultsPanel = false; + } + } + + /// + /// Fires when the plug-in should become inactive + /// + public override void Deactivate() + { + App.HeaderControl.RemoveAll(); + + // Unsubscribe from events + App.Map.LayerAdded -= Map_LayerAdded; + App.Map.Layers.LayerRemoved -= Layers_LayerRemoved; + App.SerializationManager.Deserializing -= SerializationManager_Deserializing; + DownloadManager.Completed -= DownloadManager_Completed; + App.ExtensionsActivated -= AppOnExtensionsActivated; + App.DockManager.PanelHidden -= DockManager_PanelHidden; + + foreach (var layer in App.Map.MapFrame.Layers) + UnattachLayerFromPlugin(layer); + if (_searchLayerInformer != null) + { + _searchLayerInformer.Deactivate(); + _searchLayerInformer = null; + } + + // Remove added menu items from SeriesControl ContextMenu + SeriesControl.ContextMenuStrip.Items.Remove(_seriesControlUpdateValuesMenuItem); + + // This line ensures that "Enabled" is set to false. + base.Deactivate(); + } + + #endregion + + #region Private methods + + private void AppOnExtensionsActivated(object sender, EventArgs eventArgs) + { + // Add download button into search tab + if (App.GetExtension("HydroDesktop.Plugins.Search") != null) + { + App.HeaderControl.Add(_btnSearchResults = new SimpleActionItem("Show Attribute Table", ShowSearchResults_Click) { RootKey = SharedConstants.SearchRootkey, GroupCaption = Msg.Results, SmallImage = Resources.table_16x16, Enabled = false, ToggleGroupKey = MessageStrings.Search_Results_Tools_Group }); + _btnSearchResults.PropertyChanged += btnSearchResults_enabled; + + // App.HeaderControl.Add(_btnOptions = new SimpleActionItem("Options", SearchOptions_Click) { RootKey = SharedConstants.SearchRootkey, GroupCaption = Msg.Results, SmallImage = Resources.popup_16x16, ToggleGroupKey = Msg.Download_Tools_Group, Enabled = true }); + + if (!DotSpatial.Mono.Mono.IsRunningOnMono()) + { + App.HeaderControl.Add(_btnShowPopups = new SimpleActionItem("Show Map Popups", ShowPopups_Click) { RootKey = SharedConstants.SearchRootkey, GroupCaption = Msg.Results, SmallImage = Resources.popup_16x16, ToggleGroupKey = Msg.Download_Tools_Group, Enabled = false }); + _btnShowPopups.Toggling += ShowPopups_Click; + _btnShowPopups.Enabled = false; + } + _showPopups = false; + + App.HeaderControl.Add(_btnSearchOptions = new SimpleActionItem("Download Settings", Options_Click) { RootKey = SharedConstants.SearchRootkey, GroupCaption = Msg.Results, SmallImage = Resources.settings_16, ToolTipText = Msg.DownloadSettings, Enabled = false }); + + App.HeaderControl.Add(_btnDownloadInSearch = new SimpleActionItem(Msg.Download_Selected, DoDownload) { RootKey = SharedConstants.SearchRootkey, GroupCaption = Msg.Results, LargeImage = Resources.download_32, SmallImage = Resources.download_16, ToolTipText = Msg.DownloadTooTip, Enabled = false }); + + //App.HeaderControl.Add(_btnUpdate = new SimpleActionItem(Msg.Update, Update_Click) { RootKey = SharedConstants.SearchRootkey, GroupCaption = Msg.Download, LargeImage = Resources.refresh_32x32, SmallImage = Resources.refresh_16x16, Enabled = false }); + } + + if (!_showSearchResultsPanel) + { + App.DockManager.HidePanel("kDataExplorer"); + } + + _btnSearchResults.Enabled = false; + + } + + private void btnSearchResults_enabled(object sender, PropertyChangedEventArgs e) + { + if (e.PropertyName.Equals("Enabled") && _showSearchResultsPanel) + { + _btnSearchResults.Toggle(); + } + } + + private void Options_Click(object sender, EventArgs e) + { + var copyOptions = new DownloadOptions(_downloadOptions); + using (var optionsDialog = new DownloadOptionsDialog(copyOptions)) + { + if (optionsDialog.ShowDialog() == DialogResult.OK) + { + _downloadOptions = copyOptions; + } + } + } + + private void ShowPopups_Click(object sender, EventArgs e) + { + ShowPopups = !ShowPopups; + } + + private readonly IList _layersToUpdate = new List(); + private void Update_Click(object sender, EventArgs e) + { + if (ShowIfBusy()) return; + + var dataSitesGroup = App.Map.GetDataSitesLayer(); + if (dataSitesGroup == null) return; + + _layersToUpdate.Clear(); + foreach (var layer in dataSitesGroup.Layers) + { + var featureLayer = layer as IFeatureLayer; + if (!layer.Checked || !SearchLayerModifier.IsSearchLayer(layer)) continue; + _layersToUpdate.Add(featureLayer); + } + + DownloadManager.Completed += OnDownloadManagerOnCompleted; + ProcessUpdate(); + } + + private void OnDownloadManagerOnCompleted(object o, RunWorkerCompletedEventArgs args) + { + if (args.Cancelled) + { + _layersToUpdate.Clear(); + } + ProcessUpdate(); + } + + private void ProcessUpdate() + { + if (_layersToUpdate.Count == 0) + { + DownloadManager.Completed -= OnDownloadManagerOnCompleted; + return; + } + + var layerPos = _layersToUpdate.Count - 1; + var layer = _layersToUpdate[layerPos]; + _layersToUpdate.RemoveAt(layerPos); + StartDownloading(layer); + } + + //private void ZoomToSelection_Click(object sender, EventArgs e) + //{ + // const double distanceX = 2; + // const double distanceY = 2; + // const double EPS = 1e-7; + + // IEnvelope envelope = null; + // foreach (var layer in ((Map)App.Map).GetAllLayers()) + // { + // var featureLayer = layer as IFeatureLayer; + // if (featureLayer == null || !featureLayer.Checked || featureLayer.Selection.Count == 0) continue; + + // var env = featureLayer.Selection.Envelope; + // envelope = envelope == null ? env : envelope.Union(env); + // } + // if (envelope == null) return; + + // if (Math.Abs(envelope.Width - 0) < EPS || Math.Abs(envelope.Height - 0) < EPS) + // { + // envelope.ExpandBy(distanceX, distanceY); + // } + + // if (envelope.Width > EPS && envelope.Height > EPS) + // { + // envelope.ExpandBy(envelope.Width / 10, envelope.Height / 10); // work item #84 + // } + // else + // { + // const double zoomInFactor = 0.05; //fixed zoom-in by 10% - 5% on each side + // var newExtentWidth = App.Map.ViewExtents.Width*zoomInFactor; + // var newExtentHeight = App.Map.ViewExtents.Height*zoomInFactor; + // envelope.ExpandBy(newExtentWidth, newExtentHeight); + // } + + // App.Map.ViewExtents = envelope.ToExtent(); + //} + + + + + private bool _showSearchResultsPanel; + /// + /// Gets or sets a boolean indicating whether the search results panel should be shown + /// + public bool ShowSearchResultsPanel + { + get { return _showSearchResultsPanel; } + set + { + if (_showSearchResultsPanel == value) return; + _showSearchResultsPanel = value; + + var handler = ShowSearchResultsChanged; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + } + + private bool ShowAttributes(IFeatureLayer layer) + { + bool isActive = false; + + if (layer != null) + { + layer.IsSelected = true; + App.DockManager.SelectPanel("kDataExplorer"); + isActive = true; + } + + return isActive; + } + + private void ShowSearchResults_Click(object sender, EventArgs e) + { + _showSearchResultsPanel = !_showSearchResultsPanel; + + if (ShowSearchResultsPanel) + { + //todo: Copy and paste from AttributeTableManager.AttributeTable_Click + var featureLayers = App.Map.MapFrame.GetAllLayers() + .OfType() + .Reverse().ToList(); + + var isActive = false; + foreach (var fl in featureLayers.Where(l => l.IsSelected)) + { + isActive = ShowAttributes(fl); + if (isActive) + break; + } + + // No selected layers in feature layers + if (!isActive) + { + IFeatureLayer toSelect = null; + if (featureLayers.Count == 1) + { + toSelect = featureLayers[0]; + } + else + { + var sf = new SelectFeatureLayer(featureLayers); + if (sf.ShowDialog(App.Map.MapFrame.Parent) == DialogResult.OK) + { + toSelect = sf.SelectedLayer; + } + } + if (toSelect != null) + { + App.Legend.ForEachRecursively(d => d.IsSelected = false); + toSelect.IsSelected = true; + App.Legend.RefreshNodes(); + isActive = ShowAttributes(toSelect); + } + } + + if (isActive == false) + { + _showSearchResultsPanel = !_showSearchResultsPanel; + _btnSearchResults.Toggle(); + } + } + else + { + App.DockManager.HidePanel("kDataExplorer"); + } + + } + + private void DoShowSearchResults(object sender, EventArgs e) + { + + + //var ext = App.GetExtension("HydroDesktop.Plugins.AttributeDataExplorer"); + //if (ext == null) return; + + //if (e.SelectedRootKey == SharedConstants.MetadataRootKey) + //{ + //if (!ext.IsActive) + // ext.Activate(); + + //App.SerializationManager.SetCustomSetting("MetadataRootClicked", true); + //App.DockManager.SelectPanel("kMap"); + //} + //else + //{ + //if (ext.IsActive) + // ext.Deactivate(); + //} + } + + private void DoSeriesControlUpdateValues(object sender, EventArgs e) + { + var selectedSeriesID = SeriesControl.SelectedSeriesID; + if (selectedSeriesID == 0) return; + + // Find by selectedSeriesID layer and feature to update. + // We can do it, because value of SeriesID column is unique for all features in the map. + foreach (var layer in App.Map.MapFrame.GetAllLayers()) + { + if (!SearchLayerModifier.IsSearchLayer(layer)) continue; + + var featureLayer = (IFeatureLayer)layer; + if (featureLayer.DataSet.GetColumn("SeriesID") == null) continue; + + var featureToDownload = featureLayer.DataSet.Features + .FirstOrDefault(feature => feature.DataRow["SeriesID"] != DBNull.Value && + feature.DataRow["SeriesID"].ToString() == selectedSeriesID.ToString(CultureInfo.InvariantCulture)); + if (featureToDownload != null) + { + StartDownloading(featureLayer, new[] { featureToDownload }); + } + } + } + + private void SerializationManager_Deserializing(object sender, SerializingEventArgs e) + { + foreach (var layer in App.Map.MapFrame.Layers) + AttachLayerToPlugin(layer, true); + } + + private void Map_LayerAdded(object sender, LayerEventArgs e) + { + if (e.Layer == null) return; //occurs when moving layer + + AttachLayerToPlugin(e.Layer); + } + void Layers_LayerRemoved(object sender, LayerEventArgs e) + { + UnattachLayerFromPlugin(e.Layer); + //Hack to make it so the Selection Status display would update when a layer was removed. + App.Map.Layers.SelectedLayer = null; + App.DockManager.HidePanel("kDataExplorer"); + + FunctionMode f = App.Map.FunctionMode; + App.Map.FunctionMode = f; + + + } + + private void AttachLayerToPlugin(ILayer layer, bool isDeserializing = false) + { + if (SearchLayerModifier.IsSearchLayer(layer)) + { + if (_searchLayerInformer == null) + { + // Create popup-informer + var extractor = new HISCentralInfoExtractor(new Lazy>(() => new HisCentralServices(App).Services)); + _searchLayerInformer = new SearchLayerInformer(this, extractor, (Map) App.Map); + } + + var lm = SearchLayerModifier.Create(layer, (Map) App.Map, this); + Debug.Assert(lm != null); + + if (!isDeserializing) + { + lm.UpdateLabeling(); + lm.UpdateSymbolizing(); + } + lm.UpdateContextMenu(); + + if (_btnDownloadInSearch != null) + { + _btnDownloadInSearch.Enabled = true; + } + if (_btnSearchOptions != null) + { + _btnSearchOptions.Enabled = true; + } + //if (_btnSearchOptions != null) + //{ + // _btnSearchOptions.Enabled = true; + //} + if (_btnSearchResults != null) + { + _btnSearchResults.Enabled = true; + } + if (_btnShowPopups != null) + { + if (!_btnShowPopups.Enabled) + { + _btnShowPopups.Enabled = true; + } + if (!ShowPopups) + { + _btnShowPopups.Toggle(); + } + } + + + //_btnDownload.Enabled = true; + //_btnUpdate.Enabled = true; + //_btnShowPopups.Enabled = true; + } + + var group = layer as IGroup; + if (group != null) + { + group.LayerAdded += Map_LayerAdded; + group.LayerRemoved += Layers_LayerRemoved; + + foreach (var child in group.GetLayers()) + AttachLayerToPlugin(child, isDeserializing); + } + } + + private void UnattachLayerFromPlugin(ILayer layer) + { + var group = layer as IGroup; + if (group != null) + { + group.LayerAdded -= Map_LayerAdded; + group.LayerRemoved -= Layers_LayerRemoved; + + foreach (var child in group.GetLayers()) + UnattachLayerFromPlugin(child); + } + } + + private bool ShowIfBusy() + { + var downloadManager = DownloadManager; + if (downloadManager.IsBusy) + { + downloadManager.ShowUI(); + return true; + } + return false; + } + + private void DoDownload(object sender, EventArgs args) + { + if (ShowIfBusy()) return; + + var hasPointsToDownload = false; + foreach (var layer in App.Map.MapFrame.GetAllLayers()) + { + if (!layer.Checked || !SearchLayerModifier.IsSearchLayer(layer)) continue; + + var featureLayer = (IFeatureLayer) layer; + if (featureLayer.Selection.Count == 0) continue; + hasPointsToDownload = true; + + StartDownloading(featureLayer, featureLayer.Selection.ToFeatureList()); + break; + } + + if (!hasPointsToDownload) + { + MessageBox.Show("No results are selected for download. Please select sites in the map, or select series from the selected layer table.", + "No selected sites", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + private void DownloadManager_Completed(object sender, RunWorkerCompletedEventArgs e) + { + if (e.Cancelled) return; + + var dManager = DownloadManager; + var themeName = dManager.Information.StartArgs.DataTheme.Name; + + var _themeManager = new ThemeManager(); + IFeatureSet featureSet; + try + { + featureSet = _themeManager.GetFeatureSet(themeName); + } + catch (ArgumentException) + { + // No such theme in the database + featureSet = null; + } + if (featureSet == null) + { + // in theory this condition always will be false + if (dManager.Information.WithError != dManager.Information.TotalSeries) + { + MessageBox.Show("Theme not found, but some series was saved!", "Error", MessageBoxButtons.OK, + MessageBoxIcon.Error); + } + return; + } + + featureSet.FillAttributes(); + + var sourceLayer = dManager.Information.StartArgs.FeatureLayer; + var lm = SearchLayerModifier.Create(sourceLayer, (Map) App.Map, this); + Debug.Assert(lm != null); + + lm.UpdateDataTable(featureSet, DownloadManager); + lm.UpdateSymbolizing(); + lm.UpdateContextMenu(); + + // Check for DataAggregation + var aggPlugin = App.GetExtension(); + if (aggPlugin != null) + { + aggPlugin.AttachLayerToPlugin(sourceLayer); + } + + //check for update button + //if (_btnUpdate != null) + //{ + // if (SearchLayerModifier.LayerHaveDownlodedData(sourceLayer)) + // { + // _btnUpdate.Enabled = true; + // } + //} + + // Refresh list of the time series in the table and graph in the main form + SeriesControl.RefreshSelection(); + } + + #endregion + } +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/DownloadInfoStatus.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/DownloadInfoStatus.cs new file mode 100644 index 00000000..b2a418b9 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/DownloadInfoStatus.cs @@ -0,0 +1,33 @@ +namespace HydroDesktop.Plugins.DataDownload.Downloading +{ + /// + /// Statuses of DownloadInfo + /// + public enum DownloadInfoStatus + { + /// + /// Pending (awaitng to downloading) + /// + Pending, + /// + /// Downloading + /// + Downloading, + /// + /// Downloaded + /// + Downloaded, + /// + /// Some error occured during downloading or saving + /// + Error, + /// + /// Downloaded and saved without errors/warnings. + /// + Ok, + /// + /// Downloaded and saved with warnings. + /// + OkWithWarning + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/DownloadManager.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/DownloadManager.cs new file mode 100644 index 00000000..beacf1d1 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/DownloadManager.cs @@ -0,0 +1,637 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading; +using HydroDesktop.Plugins.DataDownload.Downloading.Exceptions; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.WebServices.WaterOneFlow; + +namespace HydroDesktop.Plugins.DataDownload.Downloading +{ + /// + /// Download manager. It downloads and saves data series. + /// + public class DownloadManager + { + #region Fields + + private readonly BackgroundWorker _worker = new BackgroundWorker(); + private DownloadManagerUI _downloadManagerUI; + private static readonly object _syncObjForDownload = new object(); + private readonly List _savedData = new List(); + + #endregion + + #region Constructors + + /// + /// Creates new instance of + /// + public DownloadManager() + { + _worker.DoWork += _worker_DoWork; + _worker.ProgressChanged += _worker_ProgressChanged; + _worker.RunWorkerCompleted += _worker_RunWorkerCompleted; + _worker.WorkerReportsProgress = true; + _worker.WorkerSupportsCancellation = true; + } + + #endregion + + #region Events + + /// + /// Raised when download progress is changed + /// + public event ProgressChangedEventHandler ProgressChanged; + /// + /// Raised when downloading is completed + /// + public event EventHandler Completed; + /// + /// Raised when downloading is cancelled + /// + public event EventHandler Canceled; + /// + /// Raised when download manager log message + /// + public event EventHandler OnMessage; + + #endregion + + #region Properties + + internal bool IsBusy + { + get { return _worker.IsBusy; } + } + + /// + /// Is GUI of download manager is visible? + /// + internal bool IsUIVisible + { + get { return _downloadManagerUI != null && _downloadManagerUI.Visible; } + } + + /// + /// Information about manager. + /// + internal ManagerInformation Information { get; private set; } + + /// + /// Get collection of saved data + /// + /// Saved series + public IEnumerable GetSavedData() + { + return _savedData.AsReadOnly(); + } + + #endregion + + #region Public & Internal methods + + /// + /// Start downloading with custom indeces of items to be downloaded + /// + /// Indeces of items to download + /// If downloading in progress, you must waiting while it completed. + /// Also it throws, when no previous downloads found. + /// + internal void SubStart(ICollection indeces = null) + { + if (IsBusy) + throw new InvalidOperationException("Re-downloading can not be started when downloading in progress."); + if (Information == null) + throw new InvalidOperationException("No previous downloads found."); + + Information.SetSeriesToDownload(indeces); + + var indecesCount = indeces == null + ? Information.StartArgs.ItemsToDownload.Count + : indeces.Count; + + DoLogInfo(string.Format("Re-download series ({0} of {1}) started...", indecesCount, Information.StartArgs.ItemsToDownload.Count)); + _worker.RunWorkerAsync(); + } + + /// + /// Start downloading + /// + /// Download args + /// args must be not null. + /// Throws if previous download commnad is stiil active. + internal void Start(StartDownloadArg startDownloadArg) + { + if (startDownloadArg == null) + throw new ArgumentNullException("startDownloadArg"); + if (IsBusy) + throw new InvalidOperationException("The previous download command is still active."); + + Information = new ManagerInformation(startDownloadArg, this); + _downloadManagerUI = new DownloadManagerUI(this); + ShowUI(); + + DoLogInfo("Starting downloading..."); + _worker.RunWorkerAsync(); + + } + + /// + /// Cancel downloading. + /// + internal void Cancel() + { + DoLogInfo("Cancelling..."); + _worker.CancelAsync(); + + var handler = Canceled; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + + /// + /// Show UI of download manager. + /// + internal void ShowUI() + { + if (_downloadManagerUI == null) return; + _downloadManagerUI.Show(); + } + + /// + /// Hide UI of download manager. + /// + internal void HideUI() + { + if (_downloadManagerUI == null) return; + _downloadManagerUI.Hide(); + } + + #endregion + + #region Private methods + + private void DoLogInfo(string message, Exception exception = null) + { + DoLog(LogKind.Info, message, exception); + } + + private void DoLogError(string message, Exception exception, OneSeriesDownloadInfo di) + { + if (di != null) + message = string.Format("Error in {0}:" + Environment.NewLine + message, di.SeriesDescription); + else + message = "Error: " + message; + + DoLog(LogKind.Error, message, exception); + } + + private void DoLogWarn(string message) + { + message = "Warning: " + message; + DoLog(LogKind.Warn, message); + } + + private void DoLog(LogKind logKind, string message, Exception exception = null) + { + var handler = OnMessage; + if (handler != null) + { + handler(this, new LogMessageEventArgs(message, logKind, exception)); + } + } + + void _worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) + { + RaiseCompletedEvent(e); + } + + private void RaiseCompletedEvent(RunWorkerCompletedEventArgs e) + { + var handler = Completed; + if (handler != null) + { + handler(this, e); + } + } + + void _worker_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + if (e.UserState != null) + { + var mes = e.UserState.ToString(); + if (!string.IsNullOrEmpty(mes)) + DoLogInfo(mes); + } + + var handler = ProgressChanged; + if (handler != null) + { + handler(this, e); + } + } + + void _worker_DoWork(object sender, DoWorkEventArgs e) + { + _worker.ReportProgress(0, "Connecting to server..."); + + _savedData.Clear(); + _savedData.Capacity = Information.StartArgs.ItemsToDownload.Count; + + var downloadList = Information.StartArgs.ItemsToDownload; + var indeces = Information.IndecesToDownload; + + // max count of downloading threads + int maxThreadsToDownloadCount = 16; + if (Information.StartArgs.DownloadOptions.UseSingleThread) + { + maxThreadsToDownloadCount = 1; + } + + var commonInfo = new CommnonDoDownloadInfo(new Downloader(Information.StartArgs.DownloadOptions)); // common info, shared through downloading threads + + // Starting (if possible) maxThreadsToDownloadCount downloading threads + for (int i = 0, startedThreadsCount = 0; startedThreadsCount < maxThreadsToDownloadCount && + i < indeces.Count; i++) + { + var thread = new Thread(DoDownload); + var dda = new DoDownloadArg(downloadList[indeces[i]], commonInfo, thread); + commonInfo.AddDonwloadingThread(thread); + commonInfo.LastDownloadingIndex++; + thread.Start(dda); + startedThreadsCount++; + } + + // Starting save thread + var saveThread = new Thread(DoSave); + saveThread.Start(commonInfo); + + // Blocking current thread until all the series will not saved, or downloading cancelled + commonInfo.SavingWaitingEvent = new ManualResetEvent(false); + commonInfo.SavingWaitingEvent.WaitOne(); + + if (_worker.CancellationPending) + { + e.Cancel = true; + } + + // waiting all downloading threads + while (commonInfo.DownloadingThreadsCount > 0) { } + + #region Final logging + + var sb = new StringBuilder(Environment.NewLine); + sb.AppendLine("===============" ); + sb.AppendLine("Total:"); + sb.AppendLine("ServiceURL SiteCode VariableCode StartDate EndDate DownloadTime Status ErrorMessage"); + foreach (var ind in indeces) + { + var di = downloadList[ind]; + sb.AppendFormat("{0} {1} {2} {3} {4} {5} {6} {7}" + Environment.NewLine, di.Wsdl, di.FullSiteCode, di.FullVariableCode, di.StartDate, + di.EndDate, di.DownloadTimeTaken, di.Status, di.ErrorMessage); + } + sb.AppendLine("==============="); + DoLogInfo(sb.ToString()); + + #endregion + + _worker.ReportProgress(100, e.Cancel? "Download cancelled." : "Download Complete."); + } + + private void DoDownload(object state) + { + + var dda = state as DoDownloadArg; + if (dda == null) throw new InvalidOperationException(); + + var di = dda.DownloadInfo; + var objDownloader = dda.CommnonInfo.Downloader; + + var hasException = true; + try + { + if (_worker.CancellationPending) return; + + di.Status = DownloadInfoStatus.Downloading; + var progressHandler = new GetValueProgressHandler(this, di); + di.FilesWithData = objDownloader.DownloadXmlDataValues(di, progressHandler); + if (_worker.CancellationPending) return; + di.Status = DownloadInfoStatus.Downloaded; + lock (_syncObjForDownload) + { + dda.CommnonInfo.Downloaded.Enqueue(di); + Information.Downloaded++; + } + + hasException = false; + + var message = string.Format("Downloaded {0} ({1} of {2}).", di.SeriesDescription, + Information.Downloaded, + Information.TotalSeries); + DoLogInfo(message); + } + catch (DownloadXmlException ex) + { + di.Status = DownloadInfoStatus.Error; + di.ErrorMessage = ex.Message; + DoLogError(ex.Message, ex, di); + Information.WithError++; + } + finally + { + //Update estimated times + Information.AddTimeTaken(di.DownloadTimeTaken); + Information.RefreshEstimatedTimeForDownload(); + + // common progress + if (hasException) + { + ProgressSeries(); + } + + // resume saving thread + dda.CommnonInfo.SaveManualResetEvent.Set(); + + // start new thread if need + if (!_worker.CancellationPending && + dda.CommnonInfo.LastDownloadingIndex < Information.TotalSeries) + { + var thread = new Thread(DoDownload); + dda.CommnonInfo.AddDonwloadingThread(thread); + var ld = dda.CommnonInfo.LastDownloadingIndex; + dda.CommnonInfo.LastDownloadingIndex++; + thread.Start(new DoDownloadArg(Information.StartArgs.ItemsToDownload[Information.IndecesToDownload[ld]], + dda.CommnonInfo, thread)); + + } + + dda.CommnonInfo.RemoveDonwloadingThread(dda.DownloadThread); + if (dda.CommnonInfo.DownloadingThreadsCount == 0) + { + Information.RefreshEstimatedTimeForDownload(); + } + } + } + + private void ProgressSeries() + { + _worker.ReportProgress((int)Information.GetTotalProgress(), "Downloading..."); + } + + private void DoSave(object state) + { + var commonInfo = state as CommnonDoDownloadInfo; + if (commonInfo == null) throw new InvalidOperationException(); + + var objDownloader = commonInfo.Downloader; + + while (Information.RemainingSeries > 0) + { + if (_worker.CancellationPending) break; + + if (commonInfo.Downloaded.Count == 0) + { + commonInfo.SaveManualResetEvent.WaitOne(); + continue; + } + + // Common progress + ProgressSeries(); + + OneSeriesDownloadInfo dInfo; + lock (_syncObjForDownload) + { + dInfo = commonInfo.Downloaded.Dequeue(); + } + Debug.Assert(dInfo != null); + + IList series; + var startTime = DateTime.Now; + + // Parsing series from xml + try + { + series = objDownloader.DataSeriesFromXml(dInfo).ToList(); + } + catch (DataSeriesFromXmlException ex) + { + dInfo.Status = DownloadInfoStatus.Error; + Information.WithError++; + DoLogError(ex.Message, ex, dInfo); + dInfo.ErrorMessage = ex.Message; + continue; + } + catch (NoSeriesFromXmlException ex) + { + dInfo.Status = DownloadInfoStatus.Error; + Information.WithError++; + DoLogError(ex.Message, null, dInfo); // No stack trace + dInfo.ErrorMessage = ex.Message; + continue; + } + + // Save series to database + int numSavedValues; + try + { + numSavedValues = objDownloader.SaveDataSeries(series, Information.StartArgs.DataTheme, dInfo.OverwriteOption); + Information.DownloadedAndSaved++; + + dInfo.ResultSeries = series; + _savedData.Add(dInfo); + + if (numSavedValues == 0) + { + DoLogWarn(string.Format("Saved 0 values for {0}", dInfo.SeriesDescription)); + dInfo.Status = DownloadInfoStatus.OkWithWarning; + } + else + dInfo.Status = DownloadInfoStatus.Ok; + } + catch (SaveDataSeriesException ex) + { + dInfo.Status = DownloadInfoStatus.Error; + DoLogError(ex.Message, ex, dInfo); + Information.WithError++; + dInfo.ErrorMessage = ex.Message; + continue; + } + finally + { + // Calculate estimated time + var endTime = DateTime.Now; + var diff = endTime.Subtract(startTime).TotalSeconds; + var interval = diff * Information.RemainingSeries + 1; + Information.EstimatedTimeForSave = interval < Int32.MaxValue + ? new TimeSpan(0, 0, (int)(interval)) + : TimeSpan.MaxValue; + } + + var message = string.Format("Saved {0}. Values: {1}.", dInfo.SeriesDescription, numSavedValues); + DoLogInfo(message); + } + + ProgressSeries(); + + Information.EstimatedTimeForSave = new TimeSpan(); + commonInfo.SavingWaitingEvent.Set(); + } + + #endregion + + #region Nested types + + class DoDownloadArg + { + public OneSeriesDownloadInfo DownloadInfo { get; private set; } + public CommnonDoDownloadInfo CommnonInfo { get; private set; } + public Thread DownloadThread { get; private set; } + + public DoDownloadArg(OneSeriesDownloadInfo di, CommnonDoDownloadInfo commonInfo, Thread downloadThread) + { + DownloadInfo = di; + CommnonInfo = commonInfo; + DownloadThread = downloadThread; + } + } + class CommnonDoDownloadInfo + { + private readonly ManualResetEvent _manualResetEvent; + + public CommnonDoDownloadInfo(Downloader downloader) + { + _manualResetEvent = new ManualResetEvent(false); + Downloader = downloader; + } + + public Downloader Downloader { get; private set; } + + private readonly Queue _downloaded = new Queue(); + + public ManualResetEvent SaveManualResetEvent + { + get { return _manualResetEvent; } + } + + public Queue Downloaded + { + get { return _downloaded; } + } + + private volatile int _lastDownloadingIndex; + public int LastDownloadingIndex + { + get { return _lastDownloadingIndex; } + set + { + _lastDownloadingIndex = value; + } + } + + private static readonly object _downloadingThreadsSyncObject = new object(); + private readonly List _downloadingThreads = new List(); + public void AddDonwloadingThread(Thread thread) + { + lock (_downloadingThreadsSyncObject) + { + _downloadingThreads.Add(thread); + } + } + public void RemoveDonwloadingThread(Thread thread) + { + lock (_downloadingThreadsSyncObject) + { + _downloadingThreads.Remove(thread); + } + } + public int DownloadingThreadsCount {get { return _downloadingThreads.Count; }} + + + public ManualResetEvent SavingWaitingEvent { get; set; } + } + + private class GetValueProgressHandler : IGetValuesProgressHandler + { + private readonly DownloadManager _manager; + private readonly OneSeriesDownloadInfo _di; + private double _totalTime; + + public GetValueProgressHandler(DownloadManager manager, OneSeriesDownloadInfo di) + { + _manager = manager; + _di = di; + } + + public void Progress(int intervalNumber, int totalIntervalsCount, double timeTaken) + { + _totalTime += timeTaken; + _di.EstimatedTimeToDownload = timeTaken*(totalIntervalsCount - (intervalNumber + 1)) + 1; + _di.DownloadedChunksPercent = (intervalNumber + 1)*1.0/totalIntervalsCount*100.0; + _manager.Information.RefreshEstimatedTimeForDownload(); + + if (intervalNumber == totalIntervalsCount - 1) + { + _di.DownloadTimeTaken = new TimeSpan(0, 0, (int) _totalTime); + } + + _manager.ProgressSeries(); + } + + public bool CancellationPending + { + get { return _manager._worker.CancellationPending; } + } + } + + #endregion + } + + /// + /// Event arguments for event + /// + public class LogMessageEventArgs : EventArgs + { + /// + /// Message + /// + public string Message {get;private set;} + + /// + /// Exception + /// + public Exception Exception { get; private set; } + + /// + /// Log Kind + /// + public LogKind LogKind { get; set; } + + /// + /// Creates new instance of + /// + /// Message + /// Exception + /// + public LogMessageEventArgs(string message, LogKind logKind, Exception exception = null) + { + Message = message; + Exception = exception; + LogKind = logKind; + } + } + + + public enum LogKind + { + Info, + Error, + Warn + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/DownloadManagerUI.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/DownloadManagerUI.Designer.cs new file mode 100644 index 00000000..f45745e8 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/DownloadManagerUI.Designer.cs @@ -0,0 +1,458 @@ +namespace HydroDesktop.Plugins.DataDownload.Downloading +{ + partial class DownloadManagerUI + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DownloadManagerUI)); + this.pbTotal = new System.Windows.Forms.ProgressBar(); + this.lbOutput = new System.Windows.Forms.ListBox(); + this.lblTotalInfo = new System.Windows.Forms.Label(); + this.btnCancelClose = new System.Windows.Forms.Button(); + this.btnDetails = new System.Windows.Forms.Button(); + this.dgvDownloadData = new System.Windows.Forms.DataGridView(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.paProgress = new System.Windows.Forms.Panel(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.paProgressInformation = new System.Windows.Forms.Panel(); + this.lcValuesPerRequestInfo = new System.Windows.Forms.Label(); + this.lcValuesPerRequest = new System.Windows.Forms.Label(); + this.lcEstimatedTimeInfo = new System.Windows.Forms.Label(); + this.lcEstimatedTime = new System.Windows.Forms.Label(); + this.lcTotalSeriesInfo = new System.Windows.Forms.Label(); + this.lcWithErrorInfo = new System.Windows.Forms.Label(); + this.lcDownloadedAndSavedInfo = new System.Windows.Forms.Label(); + this.lcRemainingSeriesInfo = new System.Windows.Forms.Label(); + this.lcRemaingSeries = new System.Windows.Forms.Label(); + this.lcTotalSeriesCount = new System.Windows.Forms.Label(); + this.lcSeriesWithError = new System.Windows.Forms.Label(); + this.lcDownloadedAndSaved = new System.Windows.Forms.Label(); + this.paCommonButtons = new System.Windows.Forms.Panel(); + this.tlpMain = new System.Windows.Forms.TableLayoutPanel(); + this.paWorkButtons = new System.Windows.Forms.Panel(); + this.chbAutoScroll = new System.Windows.Forms.CheckBox(); + this.btnCopyLog = new System.Windows.Forms.Button(); + this.btnSendError = new System.Windows.Forms.Button(); + this.redownloadControl1 = new HydroDesktop.Plugins.DataDownload.Downloading.RedownloadControl(); + ((System.ComponentModel.ISupportInitialize)(this.dgvDownloadData)).BeginInit(); + this.tableLayoutPanel1.SuspendLayout(); + this.paProgress.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.paProgressInformation.SuspendLayout(); + this.paCommonButtons.SuspendLayout(); + this.tlpMain.SuspendLayout(); + this.paWorkButtons.SuspendLayout(); + this.SuspendLayout(); + // + // pbTotal + // + this.pbTotal.Dock = System.Windows.Forms.DockStyle.Fill; + this.pbTotal.Location = new System.Drawing.Point(3, 3); + this.pbTotal.Name = "pbTotal"; + this.pbTotal.Size = new System.Drawing.Size(542, 24); + this.pbTotal.TabIndex = 2; + // + // lbOutput + // + this.lbOutput.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbOutput.FormattingEnabled = true; + this.lbOutput.Location = new System.Drawing.Point(3, 312); + this.lbOutput.Name = "lbOutput"; + this.lbOutput.Size = new System.Drawing.Size(643, 140); + this.lbOutput.TabIndex = 4; + // + // lblTotalInfo + // + this.lblTotalInfo.AutoSize = true; + this.lblTotalInfo.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblTotalInfo.Location = new System.Drawing.Point(3, 30); + this.lblTotalInfo.Name = "lblTotalInfo"; + this.lblTotalInfo.Size = new System.Drawing.Size(542, 19); + this.lblTotalInfo.TabIndex = 7; + this.lblTotalInfo.Text = "lblTotalInfo"; + // + // btnCancelClose + // + this.btnCancelClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancelClose.Location = new System.Drawing.Point(5, 3); + this.btnCancelClose.Name = "btnCancelClose"; + this.btnCancelClose.Size = new System.Drawing.Size(75, 24); + this.btnCancelClose.TabIndex = 9; + this.btnCancelClose.Text = "Cancel"; + this.btnCancelClose.UseVisualStyleBackColor = true; + this.btnCancelClose.Click += new System.EventHandler(this.btnCancel_Click); + // + // btnDetails + // + this.btnDetails.Location = new System.Drawing.Point(9, 7); + this.btnDetails.Name = "btnDetails"; + this.btnDetails.Size = new System.Drawing.Size(75, 23); + this.btnDetails.TabIndex = 10; + this.btnDetails.Text = "Details..."; + this.btnDetails.UseVisualStyleBackColor = true; + this.btnDetails.Click += new System.EventHandler(this.btnDetails_Click); + // + // dgvDownloadData + // + this.dgvDownloadData.AllowUserToAddRows = false; + this.dgvDownloadData.AllowUserToDeleteRows = false; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvDownloadData.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.dgvDownloadData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvDownloadData.DefaultCellStyle = dataGridViewCellStyle2; + this.dgvDownloadData.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvDownloadData.Location = new System.Drawing.Point(3, 145); + this.dgvDownloadData.Name = "dgvDownloadData"; + this.dgvDownloadData.ReadOnly = true; + this.dgvDownloadData.Size = new System.Drawing.Size(643, 115); + this.dgvDownloadData.TabIndex = 11; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 89F)); + this.tableLayoutPanel1.Controls.Add(this.paProgress, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.paCommonButtons, 1, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(643, 136); + this.tableLayoutPanel1.TabIndex = 12; + // + // paProgress + // + this.paProgress.Controls.Add(this.tableLayoutPanel2); + this.paProgress.Dock = System.Windows.Forms.DockStyle.Fill; + this.paProgress.Location = new System.Drawing.Point(3, 3); + this.paProgress.Name = "paProgress"; + this.paProgress.Size = new System.Drawing.Size(548, 130); + this.paProgress.TabIndex = 13; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 1; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.Controls.Add(this.pbTotal, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.lblTotalInfo, 0, 1); + this.tableLayoutPanel2.Controls.Add(this.paProgressInformation, 0, 2); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 3; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 19F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(548, 130); + this.tableLayoutPanel2.TabIndex = 8; + // + // paProgressInformation + // + this.paProgressInformation.Controls.Add(this.lcValuesPerRequestInfo); + this.paProgressInformation.Controls.Add(this.lcValuesPerRequest); + this.paProgressInformation.Controls.Add(this.lcEstimatedTimeInfo); + this.paProgressInformation.Controls.Add(this.lcEstimatedTime); + this.paProgressInformation.Controls.Add(this.lcTotalSeriesInfo); + this.paProgressInformation.Controls.Add(this.lcWithErrorInfo); + this.paProgressInformation.Controls.Add(this.lcDownloadedAndSavedInfo); + this.paProgressInformation.Controls.Add(this.lcRemainingSeriesInfo); + this.paProgressInformation.Controls.Add(this.lcRemaingSeries); + this.paProgressInformation.Controls.Add(this.lcTotalSeriesCount); + this.paProgressInformation.Controls.Add(this.lcSeriesWithError); + this.paProgressInformation.Controls.Add(this.lcDownloadedAndSaved); + this.paProgressInformation.Dock = System.Windows.Forms.DockStyle.Fill; + this.paProgressInformation.Location = new System.Drawing.Point(3, 52); + this.paProgressInformation.Name = "paProgressInformation"; + this.paProgressInformation.Size = new System.Drawing.Size(542, 75); + this.paProgressInformation.TabIndex = 8; + // + // lcValuesPerRequestInfo + // + this.lcValuesPerRequestInfo.AutoSize = true; + this.lcValuesPerRequestInfo.Location = new System.Drawing.Point(283, 52); + this.lcValuesPerRequestInfo.Name = "lcValuesPerRequestInfo"; + this.lcValuesPerRequestInfo.Size = new System.Drawing.Size(13, 13); + this.lcValuesPerRequestInfo.TabIndex = 14; + this.lcValuesPerRequestInfo.Text = "0"; + // + // lcValuesPerRequest + // + this.lcValuesPerRequest.AutoSize = true; + this.lcValuesPerRequest.Location = new System.Drawing.Point(154, 52); + this.lcValuesPerRequest.Name = "lcValuesPerRequest"; + this.lcValuesPerRequest.Size = new System.Drawing.Size(98, 13); + this.lcValuesPerRequest.TabIndex = 13; + this.lcValuesPerRequest.Text = "Values per request:"; + // + // lcEstimatedTimeInfo + // + this.lcEstimatedTimeInfo.AutoSize = true; + this.lcEstimatedTimeInfo.Location = new System.Drawing.Point(104, 52); + this.lcEstimatedTimeInfo.Name = "lcEstimatedTimeInfo"; + this.lcEstimatedTimeInfo.Size = new System.Drawing.Size(35, 13); + this.lcEstimatedTimeInfo.TabIndex = 12; + this.lcEstimatedTimeInfo.Text = "label4"; + // + // lcEstimatedTime + // + this.lcEstimatedTime.AutoSize = true; + this.lcEstimatedTime.Location = new System.Drawing.Point(6, 52); + this.lcEstimatedTime.Name = "lcEstimatedTime"; + this.lcEstimatedTime.Size = new System.Drawing.Size(78, 13); + this.lcEstimatedTime.TabIndex = 11; + this.lcEstimatedTime.Text = "Estimated time:"; + // + // lcTotalSeriesInfo + // + this.lcTotalSeriesInfo.AutoSize = true; + this.lcTotalSeriesInfo.Location = new System.Drawing.Point(104, 6); + this.lcTotalSeriesInfo.Name = "lcTotalSeriesInfo"; + this.lcTotalSeriesInfo.Size = new System.Drawing.Size(35, 13); + this.lcTotalSeriesInfo.TabIndex = 10; + this.lcTotalSeriesInfo.Text = "label3"; + // + // lcWithErrorInfo + // + this.lcWithErrorInfo.AutoSize = true; + this.lcWithErrorInfo.Location = new System.Drawing.Point(283, 28); + this.lcWithErrorInfo.Name = "lcWithErrorInfo"; + this.lcWithErrorInfo.Size = new System.Drawing.Size(35, 13); + this.lcWithErrorInfo.TabIndex = 9; + this.lcWithErrorInfo.Text = "label2"; + // + // lcDownloadedAndSavedInfo + // + this.lcDownloadedAndSavedInfo.AutoSize = true; + this.lcDownloadedAndSavedInfo.Location = new System.Drawing.Point(283, 6); + this.lcDownloadedAndSavedInfo.Name = "lcDownloadedAndSavedInfo"; + this.lcDownloadedAndSavedInfo.Size = new System.Drawing.Size(35, 13); + this.lcDownloadedAndSavedInfo.TabIndex = 8; + this.lcDownloadedAndSavedInfo.Text = "label1"; + // + // lcRemainingSeriesInfo + // + this.lcRemainingSeriesInfo.AutoSize = true; + this.lcRemainingSeriesInfo.Location = new System.Drawing.Point(104, 29); + this.lcRemainingSeriesInfo.Name = "lcRemainingSeriesInfo"; + this.lcRemainingSeriesInfo.Size = new System.Drawing.Size(35, 13); + this.lcRemainingSeriesInfo.TabIndex = 7; + this.lcRemainingSeriesInfo.Text = "label7"; + // + // lcRemaingSeries + // + this.lcRemaingSeries.AutoSize = true; + this.lcRemaingSeries.Location = new System.Drawing.Point(6, 29); + this.lcRemaingSeries.Name = "lcRemaingSeries"; + this.lcRemaingSeries.Size = new System.Drawing.Size(90, 13); + this.lcRemaingSeries.TabIndex = 6; + this.lcRemaingSeries.Text = "Remaining series:"; + // + // lcTotalSeriesCount + // + this.lcTotalSeriesCount.AutoSize = true; + this.lcTotalSeriesCount.Location = new System.Drawing.Point(6, 6); + this.lcTotalSeriesCount.Name = "lcTotalSeriesCount"; + this.lcTotalSeriesCount.Size = new System.Drawing.Size(64, 13); + this.lcTotalSeriesCount.TabIndex = 4; + this.lcTotalSeriesCount.Text = "Total series:"; + // + // lcSeriesWithError + // + this.lcSeriesWithError.AutoSize = true; + this.lcSeriesWithError.Location = new System.Drawing.Point(154, 28); + this.lcSeriesWithError.Name = "lcSeriesWithError"; + this.lcSeriesWithError.Size = new System.Drawing.Size(56, 13); + this.lcSeriesWithError.TabIndex = 2; + this.lcSeriesWithError.Text = "With error:"; + // + // lcDownloadedAndSaved + // + this.lcDownloadedAndSaved.AutoSize = true; + this.lcDownloadedAndSaved.Location = new System.Drawing.Point(154, 6); + this.lcDownloadedAndSaved.Name = "lcDownloadedAndSaved"; + this.lcDownloadedAndSaved.Size = new System.Drawing.Size(123, 13); + this.lcDownloadedAndSaved.TabIndex = 0; + this.lcDownloadedAndSaved.Text = "Downloaded and saved:"; + // + // paCommonButtons + // + this.paCommonButtons.Controls.Add(this.btnCancelClose); + this.paCommonButtons.Dock = System.Windows.Forms.DockStyle.Fill; + this.paCommonButtons.Location = new System.Drawing.Point(557, 3); + this.paCommonButtons.Name = "paCommonButtons"; + this.paCommonButtons.Size = new System.Drawing.Size(83, 130); + this.paCommonButtons.TabIndex = 13; + // + // tlpMain + // + this.tlpMain.ColumnCount = 1; + this.tlpMain.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tlpMain.Controls.Add(this.tableLayoutPanel1, 0, 0); + this.tlpMain.Controls.Add(this.lbOutput, 0, 3); + this.tlpMain.Controls.Add(this.dgvDownloadData, 0, 1); + this.tlpMain.Controls.Add(this.paWorkButtons, 0, 2); + this.tlpMain.Dock = System.Windows.Forms.DockStyle.Fill; + this.tlpMain.Location = new System.Drawing.Point(0, 0); + this.tlpMain.Name = "tlpMain"; + this.tlpMain.RowCount = 4; + this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 142F)); + this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 45.45454F)); + this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 46F)); + this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 54.54546F)); + this.tlpMain.Size = new System.Drawing.Size(649, 455); + this.tlpMain.TabIndex = 13; + // + // paWorkButtons + // + this.paWorkButtons.Controls.Add(this.redownloadControl1); + this.paWorkButtons.Controls.Add(this.chbAutoScroll); + this.paWorkButtons.Controls.Add(this.btnCopyLog); + this.paWorkButtons.Controls.Add(this.btnSendError); + this.paWorkButtons.Controls.Add(this.btnDetails); + this.paWorkButtons.Dock = System.Windows.Forms.DockStyle.Fill; + this.paWorkButtons.Location = new System.Drawing.Point(3, 266); + this.paWorkButtons.Name = "paWorkButtons"; + this.paWorkButtons.Size = new System.Drawing.Size(643, 40); + this.paWorkButtons.TabIndex = 13; + // + // chbAutoScroll + // + this.chbAutoScroll.AutoSize = true; + this.chbAutoScroll.Checked = true; + this.chbAutoScroll.CheckState = System.Windows.Forms.CheckState.Checked; + this.chbAutoScroll.Location = new System.Drawing.Point(494, 7); + this.chbAutoScroll.Name = "chbAutoScroll"; + this.chbAutoScroll.Size = new System.Drawing.Size(75, 17); + this.chbAutoScroll.TabIndex = 15; + this.chbAutoScroll.Text = "Auto scroll"; + this.chbAutoScroll.UseVisualStyleBackColor = true; + // + // btnCopyLog + // + this.btnCopyLog.Location = new System.Drawing.Point(170, 7); + this.btnCopyLog.Name = "btnCopyLog"; + this.btnCopyLog.Size = new System.Drawing.Size(78, 23); + this.btnCopyLog.TabIndex = 13; + this.btnCopyLog.Text = "Copy log"; + this.btnCopyLog.UseVisualStyleBackColor = true; + this.btnCopyLog.Click += new System.EventHandler(this.btnCopyLog_Click); + // + // btnSendError + // + this.btnSendError.Location = new System.Drawing.Point(90, 7); + this.btnSendError.Name = "btnSendError"; + this.btnSendError.Size = new System.Drawing.Size(74, 23); + this.btnSendError.TabIndex = 12; + this.btnSendError.Text = "Send error"; + this.btnSendError.UseVisualStyleBackColor = true; + // + // redownloadControl1 + // + this.redownloadControl1.Location = new System.Drawing.Point(254, 4); + this.redownloadControl1.Name = "redownloadControl1"; + this.redownloadControl1.Size = new System.Drawing.Size(234, 30); + this.redownloadControl1.TabIndex = 16; + this.redownloadControl1.DoRedownload += new System.EventHandler(this.redownloadControl1_DoRedownload); + // + // DownloadManagerUI + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(649, 455); + this.Controls.Add(this.tlpMain); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(530, 270); + this.Name = "DownloadManagerUI"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Download Manager"; + ((System.ComponentModel.ISupportInitialize)(this.dgvDownloadData)).EndInit(); + this.tableLayoutPanel1.ResumeLayout(false); + this.paProgress.ResumeLayout(false); + this.tableLayoutPanel2.ResumeLayout(false); + this.tableLayoutPanel2.PerformLayout(); + this.paProgressInformation.ResumeLayout(false); + this.paProgressInformation.PerformLayout(); + this.paCommonButtons.ResumeLayout(false); + this.tlpMain.ResumeLayout(false); + this.paWorkButtons.ResumeLayout(false); + this.paWorkButtons.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ProgressBar pbTotal; + private System.Windows.Forms.ListBox lbOutput; + private System.Windows.Forms.Label lblTotalInfo; + private System.Windows.Forms.Button btnCancelClose; + private System.Windows.Forms.Button btnDetails; + private System.Windows.Forms.DataGridView dgvDownloadData; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Panel paProgress; + private System.Windows.Forms.Panel paCommonButtons; + private System.Windows.Forms.TableLayoutPanel tlpMain; + private System.Windows.Forms.Panel paWorkButtons; + private System.Windows.Forms.Button btnSendError; + private System.Windows.Forms.Button btnCopyLog; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.Panel paProgressInformation; + private System.Windows.Forms.Label lcRemainingSeriesInfo; + private System.Windows.Forms.Label lcRemaingSeries; + private System.Windows.Forms.Label lcTotalSeriesCount; + private System.Windows.Forms.Label lcSeriesWithError; + private System.Windows.Forms.Label lcDownloadedAndSaved; + private System.Windows.Forms.Label lcTotalSeriesInfo; + private System.Windows.Forms.Label lcWithErrorInfo; + private System.Windows.Forms.Label lcDownloadedAndSavedInfo; + private System.Windows.Forms.Label lcEstimatedTimeInfo; + private System.Windows.Forms.Label lcEstimatedTime; + private System.Windows.Forms.CheckBox chbAutoScroll; + private RedownloadControl redownloadControl1; + private System.Windows.Forms.Label lcValuesPerRequest; + //public allows the text to be set outside of the DownloadManager, which is needed in this case. + public System.Windows.Forms.Label lcValuesPerRequestInfo; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/DownloadManagerUI.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/DownloadManagerUI.cs new file mode 100644 index 00000000..8e582f62 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/DownloadManagerUI.cs @@ -0,0 +1,528 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using HydroDesktop.WebServices.WaterOneFlow; +using HydroDesktop.Common.Tools; + +namespace HydroDesktop.Plugins.DataDownload.Downloading +{ + /// + /// DownloadManager UI implementation + /// + internal partial class DownloadManagerUI : Form + { + #region Fields + + private readonly DownloadManager _manager; + private bool _closeAfterCompleted; + private bool _cancelled; + + #endregion + + #region Constructors + + /// + /// Constructor of DownloadManagerUI + /// + /// Instance of DownloadManager + /// manager must be not null + public DownloadManagerUI(DownloadManager manager) + { + InitializeComponent(); + + if (!DesignMode) + { + if (manager == null) throw new ArgumentNullException("manager"); + } + + lblTotalInfo.Text = string.Empty; + + InitDownloadProgressInfo(); + InitDownloadInfoTable(); + + _manager = manager; + + + ShowHideDetails(); // by default details is not shown + dgvDownloadData.CellFormatting += dgvDownloadData_CellFormatting; + dgvDownloadData.MouseClick += dgvDownloadData_MouseClick; + FormClosing += DownloadManagerUI_FormClosing; + + BindToDownloadManager(); + // + btnSendError.Enabled = false; // TODO: implement send error logic + redownloadControl1.Enabled = false; + } + + #endregion + + #region Properties + + private bool IsAutoScrollDetailsLog + { + get { return chbAutoScroll.Checked; } + } + + + #endregion + + #region Private methods + + void dgvDownloadData_MouseClick(object sender, MouseEventArgs e) + { + if (e.Button != MouseButtons.Right) return; + if (_manager.IsBusy) return; + + var menu = new ContextMenuStrip(); + + var seriesWithErrors = GetAllSelectedRows(DownloadInfoStatus.Error); + if (seriesWithErrors != null && + seriesWithErrors.Count > 0) + { + var item = menu.Items.Add("Redownload selected series (status = Error)"); + item.Tag = seriesWithErrors; + item.Click += item_RedownloadRows; + } + var allSelected = GetAllSelectedRows(); + if (allSelected != null && + allSelected.Count > 0) + { + var item = menu.Items.Add("Redownload selected series (any status)"); + item.Tag = allSelected; + item.Click += item_RedownloadRows; + } + + // show menu only if it has at least one item + if (menu.Items.Count > 0) + { + menu.Show(dgvDownloadData, e.Location); + } + } + + private ICollection GetAllSelectedRows(DownloadInfoStatus status) + { + return GetAllSelectedRows().Where(ind => _manager.Information.StartArgs.ItemsToDownload[ind].Status == status).ToList(); + } + + private ICollection GetAllRows(DownloadInfoStatus status) + { + var result = new List(); + for(int i = 0; i< _manager.Information.StartArgs.ItemsToDownload.Count; i++) + { + if (_manager.Information.StartArgs.ItemsToDownload[i].Status == status) + result.Add(i); + } + return result; + } + + private ICollection GetAllSelectedRows() + { + ICollection indeces; + + if (dgvDownloadData.SelectedRows.Count > 0) + { + // get rows from SelectedRows + var rows = new List(dgvDownloadData.SelectedRows.Count); + rows.AddRange(from DataGridViewRow row in dgvDownloadData.SelectedRows select row.Index); + indeces = rows; + } + else + { + // get rows from selected cells + var rows = new HashSet(); + foreach (DataGridViewCell cell in dgvDownloadData.SelectedCells) + { + var dInfo = cell.RowIndex; + if (!rows.Contains(dInfo)) + { + rows.Add(dInfo); + } + } + indeces = rows; + } + + return indeces; + } + + void item_RedownloadRows(object sender, EventArgs e) + { + var menuItem = sender as ToolStripItem; + if (menuItem == null) return; + + var indeces = menuItem.Tag as ICollection; + if (indeces == null) return; + Debug.Assert(indeces != null); + + DoRedownload(indeces); + } + + private void DoRedownload(ICollection indeces = null) + { + toggleToCancelButton(); + redownloadControl1.Enabled = false; + + SubcribeToManagerEvents(); + _manager.SubStart(indeces); + } + + private void BindToDownloadManager() + { + SubcribeToManagerEvents(); + BindDownloadInfoTable(); + BindDownloadProgressInfo(); + } + + private void SubcribeToManagerEvents() + { + _manager.ProgressChanged += _manager_ProgressChanged; + _manager.Completed += _manager_Completed; + _manager.Canceled += _manager_Canceled; + _manager.OnMessage += _manager_OnMessage; + _manager.Information.PropertyChanged += dpInfo_PropertyChanged; + } + private void UnSubcribeFromManagerEvents() + { + _manager.ProgressChanged -= _manager_ProgressChanged; + _manager.Completed -= _manager_Completed; + _manager.Canceled -= _manager_Canceled; + _manager.OnMessage -= _manager_OnMessage; + _manager.Information.PropertyChanged -= dpInfo_PropertyChanged; + } + + void dgvDownloadData_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) + { + if (e.ColumnIndex < 0 || e.RowIndex < 0 || + dgvDownloadData.Columns[e.ColumnIndex].DataPropertyName != "StatusAsString") return; + + var blist = (BindingList)dgvDownloadData.DataSource; + var dInfo = blist[e.RowIndex]; + + if (dInfo.Status == DownloadInfoStatus.Error) + { + e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + e.CellStyle.Font = new Font("Arial", 9, FontStyle.Bold); + e.CellStyle.ForeColor = Color.White; + e.CellStyle.BackColor = Color.FromArgb(214, 73, 55); + } + else if (dInfo.Status == DownloadInfoStatus.Ok) + { + e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + e.CellStyle.Font = new Font("Arial", 9, FontStyle.Bold); + e.CellStyle.ForeColor = Color.White; + e.CellStyle.BackColor = Color.ForestGreen; + } + else if (dInfo.Status == DownloadInfoStatus.OkWithWarning) + { + e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + e.CellStyle.Font = new Font("Arial", 9, FontStyle.Bold); + e.CellStyle.ForeColor = Color.White; + e.CellStyle.BackColor = Color.Orange; + } + } + + private void InitDownloadProgressInfo() + { + lcDownloadedAndSavedInfo.Text = null; + lcWithErrorInfo.Text = null; + lcTotalSeriesInfo.Text = null; + lcRemainingSeriesInfo.Text = null; + lcEstimatedTimeInfo.Text = null; + } + private void BindDownloadProgressInfo() + { + dpInfo_PropertyChanged(this, new PropertyChangedEventArgs("DownloadedAndSaved")); + dpInfo_PropertyChanged(this, new PropertyChangedEventArgs("WithError")); + dpInfo_PropertyChanged(this, new PropertyChangedEventArgs("TotalSeries")); + dpInfo_PropertyChanged(this, new PropertyChangedEventArgs("RemainingSeries")); + dpInfo_PropertyChanged(this, new PropertyChangedEventArgs("EstimatedTime")); + } + + void dpInfo_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + var dpInfo = _manager.Information; // to avoid long names + if (e.PropertyName == NameHelper.Name(x => x.DownloadedAndSaved)) + { + ThreadSafeSetText(lcDownloadedAndSavedInfo, dpInfo.DownloadedAndSaved.ToString(CultureInfo.InvariantCulture)); + } + else if (e.PropertyName == NameHelper.Name(x => x.WithError)) + { + ThreadSafeSetText(lcWithErrorInfo, dpInfo.WithError.ToString(CultureInfo.InvariantCulture)); + } + else if (e.PropertyName == NameHelper.Name(x => x.TotalSeries)) + { + ThreadSafeSetText(lcTotalSeriesInfo, dpInfo.TotalSeries.ToString(CultureInfo.InvariantCulture)); + } + else if (e.PropertyName == NameHelper.Name(x => x.RemainingSeries)) + { + ThreadSafeSetText(lcRemainingSeriesInfo, dpInfo.RemainingSeries.ToString(CultureInfo.InvariantCulture)); + } + else if (e.PropertyName == NameHelper.Name(x => x.EstimatedTime)) + { + ThreadSafeSetText(lcEstimatedTimeInfo, dpInfo.EstimatedTime.ToString()); + } + } + + private static void ThreadSafeSetText(Control label, string value) + { + label.UIThread(() => label.Text = value); + } + + private void InitDownloadInfoTable() + { + dgvDownloadData.DataSource = null; + dgvDownloadData.AutoGenerateColumns = false; + + var serviceUrlColumn = new DataGridViewTextBoxColumn { DataPropertyName = NameHelper.Name(x => x.Wsdl), HeaderText = "ServiceUrl" }; + var fullSiteCodeColumn = new DataGridViewTextBoxColumn { DataPropertyName = NameHelper.Name(x => x.FullSiteCode), HeaderText = "SiteCode" }; + var fullVariableCodeColumn = new DataGridViewTextBoxColumn { DataPropertyName = NameHelper.Name(x => x.FullVariableCode), HeaderText = "VariableCode" }; + var siteNameColumn = new DataGridViewTextBoxColumn { DataPropertyName = NameHelper.Name(x => x.SiteName), HeaderText = "SiteName" }; + var variableNameColumn = new DataGridViewTextBoxColumn { DataPropertyName = NameHelper.Name(x => x.VariableName), HeaderText = "VariableName" }; + var statusColumn = new DataGridViewTextBoxColumn { DataPropertyName = NameHelper.Name(x => x.StatusAsString), HeaderText = "Status" }; + + dgvDownloadData.Columns.Clear(); + dgvDownloadData.Columns.Add(serviceUrlColumn); + dgvDownloadData.Columns.Add(fullSiteCodeColumn); + dgvDownloadData.Columns.Add(fullVariableCodeColumn); + dgvDownloadData.Columns.Add(siteNameColumn); + dgvDownloadData.Columns.Add(variableNameColumn); + dgvDownloadData.Columns.Add(statusColumn); + } + private void BindDownloadInfoTable() + { + dgvDownloadData.DataSource = new BindingList(_manager.Information.StartArgs.ItemsToDownload); + } + + void _manager_OnMessage(object sender, LogMessageEventArgs e) + { + var split = e.Message.Split(new[] {Environment.NewLine}, StringSplitOptions.None); + split[0] = DateTime.Now.ToLongTimeString() + " " + split[0]; + foreach (var mes in split) + ThreadSafeAddItemToLog(lbOutput, mes); + + if (e.Exception != null) + { + var message = string.Format("Exception details:" + Environment.NewLine + + "Message: {0}" + Environment.NewLine + + "Stack trace: {1}", e.Exception.Message, + e.Exception.StackTrace); + split = message.Split(new[] { Environment.NewLine }, StringSplitOptions.None); + foreach (var mes in split) + ThreadSafeAddItemToLog(lbOutput, mes); + + if (e.Exception.InnerException != null) + ThreadSafeAddItemToLog(lbOutput, "Inner exception: " + e.Exception.InnerException.Message); + } + } + + private void ThreadSafeAddItemToLog(ListBox listBox, object value) + { + if (!DotSpatial.Mono.Mono.IsRunningOnMono()) + { + listBox.UIThread + (delegate + { + try + { + listBox.Items.Add(value); + + // scroll to last item if need + if (IsAutoScrollDetailsLog) + { + listBox.SelectedIndex = listBox.Items.Count - 1; + } + } + catch (Exception e) + { + Debug.WriteLine("Exception: " + e.Message); + Debug.WriteLine(e.StackTrace); + } + } + ); + } + } + + void _manager_Canceled(object sender, EventArgs e) + { + _cancelled = true; + btnCancelClose.Enabled = false; + _closeAfterCompleted = true; + } + + void _manager_Completed(object sender, RunWorkerCompletedEventArgs e) //^^ + { + UnSubcribeFromManagerEvents(); + toggleToCloseButton(); + + Show(); + redownloadControl1.Enabled = true; + + if (e.Error != null) + { + MessageBox.Show("Error occurred during data download." + Environment.NewLine + e.Error, "Error", + MessageBoxButtons.OK, MessageBoxIcon.Error); + + } + /*else + { + if (e.Cancelled) + { + MessageBox.Show(string.Format("Data download has been cancelled." + Environment.NewLine + + "{0} out of {1} series were saved to database.", + _manager.Information.DownloadedAndSaved, + _manager.Information.TotalSeries), + "Cancelled", MessageBoxButtons.OK, + MessageBoxIcon.Information); + } + else + { + MessageBox.Show(string.Format("Data download complete." + Environment.NewLine + + "Downloaded and saved: {0}" + Environment.NewLine + + "Failed series: {1}", + _manager.Information.DownloadedAndSaved, + _manager.Information.WithError), + "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + }*/ + + if (_closeAfterCompleted) + Close(); + } + + void _manager_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + pbTotal.Value = e.ProgressPercentage; + if(_cancelled==false) + { + lblTotalInfo.Text = e.UserState != null? e.UserState.ToString() : string.Empty; + //This section needed to update the values per request. It has this condition to prevent showing incorrect value. + if (lblTotalInfo.Text != "Connecting to server...") + { + lcValuesPerRequestInfo.Text = _manager.Information.StartArgs.DownloadOptions.NumberOfValuesPerRequest.ToString(CultureInfo.InvariantCulture); + } + } + else + { + lblTotalInfo.Text = "Cancelling. Window will close when complete."; + } + } + + private void btnCancel_Click(object sender, EventArgs e) + { + DoCancel(); + } + + private void btnHide_Click(object sender, EventArgs e) + { + Hide(); + } + + private bool DoCancel() + { + if (!_cancelled && MessageBox.Show("Downloading in progress. Do you want to cancel it?", + "Cancel downloading", + MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) + { + _manager.Cancel(); + return true; + } + + return false; + } + + void DownloadManagerUI_FormClosing(object sender, FormClosingEventArgs e) + { + if (e.CloseReason == CloseReason.UserClosing) + { + if (_manager.IsBusy) + { + // Ask user to apply for closing + if (DoCancel()) + { + _closeAfterCompleted = true; + } + + e.Cancel = true; + } + } + } + + private bool _showHideDetails; + private void btnDetails_Click(object sender, EventArgs e) + { + ShowHideDetails(); + } + + private void ShowHideDetails() + { + if (_showHideDetails) + { + tlpMain.RowStyles[3].SizeType = SizeType.Percent; + tlpMain.RowStyles[3].Height = 100F - tlpMain.RowStyles[1].Height; + + chbAutoScroll.Enabled = true; + }else + { + tlpMain.RowStyles[3].SizeType = SizeType.Absolute; + tlpMain.RowStyles[3].Height = 0; + + chbAutoScroll.Enabled = false; + } + + _showHideDetails = !_showHideDetails; + } + + private void btnCopyLog_Click(object sender, EventArgs e) + { + var sb = new StringBuilder(); + + foreach(var item in lbOutput.Items) + { + sb.Append(lbOutput.GetItemText(item) + Environment.NewLine); + } + + Clipboard.SetText(sb.ToString()); + } + + private void redownloadControl1_DoRedownload(object sender, RedownloadArgs e) + { + switch (e.RedownloadOption) + { + case RedownloadOption.All: + DoRedownload(); + break; + case RedownloadOption.AllSelected: + DoRedownload(GetAllSelectedRows()); + break; + case RedownloadOption.SelectedWithErrors: + DoRedownload(GetAllSelectedRows(DownloadInfoStatus.Error)); + break; + case RedownloadOption.AllWithErrors: + DoRedownload(GetAllRows(DownloadInfoStatus.Error)); + break; + } + } + + + private void toggleToCloseButton() + { + btnCancelClose.Text = "Close"; + btnCancelClose.Click -= btnCancel_Click; + btnCancelClose.Click += btnHide_Click; + } + + private void toggleToCancelButton() + { + btnCancelClose.Text = "Cancel"; + btnCancelClose.Click -= btnHide_Click; + btnCancelClose.Click += btnCancel_Click; + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/DownloadManagerUI.resx b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/DownloadManagerUI.resx new file mode 100644 index 00000000..11c04d46 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/DownloadManagerUI.resx @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA + AAD///8BAAAAIwAAADMAAAAzAAAAMwAAADMAAAAzAAAAMwAAADMAAAAzAAAAMwAAADMAAAAzAAAAMwAA + ACP///8B////AR1Vi8EeWpX/HViU/x1Yk/8cWJP/HFiU/x1Ylf8dWJX/HFiU/xxYk/8dWJT/HViU/x5a + lf8dVYvB////Af///wEeXJf/YrLp/1ep4/9WqOP/U6bj/1Wm5v9bp+v/W6fr/1Wm5v9TpuP/Vqjk/1ep + 4/9isun/HlyX/////wH///8BHFuY/2qy5v9TpN//QoKv/77j+//E4f//AIY0/wCGNP/E4f//vuP8/0J9 + pv9TpOD/arLm/xxbmP////8B////ARtcmv9zuOj/UqPg/0KAsv85gtL/AIM0/wDSjP8A0oz/AIM0/zmC + 0v9Aeaf/UqTh/3O46P8bXJr/////Af///wEaXZr/f73q/1Oi4v9De7j/BZFD/wvRkv8A25z/ANuc/wvR + kv8GkUT/QHSs/1Oi4v9/ver/Gl2a/////wH///8BGl+d/4W/6v9QneH/AIs0/07UpP9Q6sH/ANWa/wDV + m/9S6sL/TtSk/wCLNf9RnuH/hb/q/xpfnf////8B////ARlgn/+Nwen/S5nd/wyCZP8AiDr/ALZ5/yvZ + r/8Azpz/ALZ6/wCJOv8KgGD/S5nd/43C6f8ZYJ//////Af///wEZYqH/lMTp/0SV1f8zcKn/XKDu/wCF + OP9a3sb/AMeh/wCGOf9coO//Lmme/0SV1f+Uxen/GWKh/////wH///8BGGSi/53I6P8+kM//LG2h/16o + 7v8Aijf/jOfd/2bdz/8Aizn/Xqjv/yZllv8+kdD/ncjp/xhkov////8B////ARhlpf+lzej/N4rJ/yRp + nP8nZ6H/BX5f/wCKN/8Aijf/BX5g/ydoov8fYJL/N4vK/6XN6P8YZaX/////Af///wEXZ6f/rtDq/yuA + w/8wg8X/MoTH/zSDy/81gsz/NYLN/zSDy/8yhMj/MITF/yuBw/+u0Or/F2en/////wH///8BGWqpq7fW + 7P+52/P/udry/7vb8v+82/P/vNvz/7zb8/+82/P/u9vy/7na8v+52/P/t9bs/xlqqav///8B////Af// + /wEZcbH/aaTQ/3ax3f82i8z/OIzM/ziMzP84jMz/OIzM/zaLzP92sd3/aaTQ/xlxsf////8B////Af// + /wH///8B////ASJ4tf9qos//dKvY/3Ss1/90rNf/dKzX/3Ss1/90q9j/aaLO/yF4tf////8B////Af// + /wH///8B////Af///wH///8BKn65/ziKwf83icD/NonA/zaJwP82icD/N4rA/zeLwf////8B////Af// + /wH///8BAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//w== + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/Downloader.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/Downloader.cs new file mode 100644 index 00000000..40e07eb8 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/Downloader.cs @@ -0,0 +1,190 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using HydroDesktop.Database; +using HydroDesktop.Plugins.DataDownload.Downloading.Exceptions; +using HydroDesktop.Plugins.DataDownload.Options; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.WebServices.WaterML; +using HydroDesktop.WebServices.WaterOneFlow; + +namespace HydroDesktop.Plugins.DataDownload.Downloading +{ + /// + /// Methods to download observation data from WaterML web services and save them to + /// the ActualData database. + /// + public class Downloader + { + #region Variables + + //to store the proxy class for each WaterOneFlow web service for re-use + private readonly Dictionary _services = new Dictionary(); + private static readonly object _syncObject = new object(); + private readonly IRepositoryManager _repositoryManager; + private readonly DownloadOptions _options; + + #endregion + + #region Constructors + + /// + /// Default constructor with default connection string (from settings). + /// + public Downloader(DownloadOptions options) + { + _options = options; + _repositoryManager = RepositoryFactory.Instance.Get(); + } + + #endregion + + #region Web Service Methods + + /// + /// Gets an instance of a WaterOneFlow client to be used with + /// the URL specified in the Download info. This instance is retrieved + /// from the dictionary cache or created if necessary. + /// + /// The URL of the web service main page + /// the appropriate WaterOneFlow client + private WaterOneFlowClient GetWsClientInstance(string wsdl) + { + WaterOneFlowClient wsClient; + lock (_syncObject) + { + //To Access the dynamic WSDLs + if (_services.ContainsKey(wsdl)) + { + wsClient = _services[wsdl]; + } + else + { + wsClient = new WaterOneFlowClient(wsdl, + valuesPerReq: _options.NumberOfValuesPerRequest, + allInOneRequest: _options.GetAllValuesInOneRequest); + _services.Add(wsdl, wsClient); + } + } + return wsClient; + } + + /// + /// This function is used to get the Values in XML Format based on the selected sites in the layer + /// + /// DownloadInfo + /// Progress handler + /// Collection of of the xml files with values + /// Some exception during get values from web service + public IEnumerable DownloadXmlDataValues(OneSeriesDownloadInfo info, IGetValuesProgressHandler getValueProgressHandler) + { + try + { + return GetWsClientInstance(info.Wsdl).GetValuesXML(info.FullSiteCode, info.FullVariableCode, + info.StartDate, info.EndDate, + info.EstimatedValuesCount, + getValueProgressHandler); + } + catch (Exception ex) + { + Exception exToWrap; + if (ex is TargetInvocationException && + ex.InnerException != null) + exToWrap = ex.InnerException; + else + exToWrap = ex; + + throw new DownloadXmlException(exToWrap.Message, exToWrap); + } + } + + #endregion + + #region Database Methods + + /// + /// Converts the xml file to a data series object. + /// + /// Download info + /// Collection of the data series objects + /// Exception during parsing + /// Throws when no series in xml file + public IEnumerable DataSeriesFromXml(OneSeriesDownloadInfo dInfo) + { + var client = GetWsClientInstance(dInfo.Wsdl); + var parser = ParserFactory.GetParser(client.ServiceInfo); + var result = new List(); + foreach (var xmlFile in dInfo.FilesWithData) + { + try + { + using (var fileStream = new FileStream(xmlFile, FileMode.Open)) + { + var seriesList = parser.ParseGetValues(fileStream); + result.AddRange(seriesList); + } + } + catch (Exception ex) + { + throw new DataSeriesFromXmlException(ex.Message, ex); + } + } + + if (result.Count == 0) + { + throw new NoSeriesFromXmlException(); + } + + return result; + } + + + /// + /// Creates a new DataSeries from a xml file and saves it to database. + /// This function uses the underlying NHibernate framework to + /// communicate with the database + /// + /// The data series to be saved + /// The theme associated with this data series + /// Option to how save series + /// The number of saved data values + /// Something wrong during SaveDataSeries + private int SaveDataSeries(Series series, Theme theme, OverwriteOptions overwriteOption) + { + if (series.GetValueCount() == 0) return 0; + + try + { + return _repositoryManager.SaveSeries(series, theme, overwriteOption); + } + catch(Exception ex) + { + throw new SaveDataSeriesException(ex.Message, ex); + } + } + + /// + /// Saves collection of series into database + /// + /// Collection of series + /// The theme associated with data series + /// Option to how save series + /// The number of saved data values + public int SaveDataSeries(IEnumerable series, Theme theme, OverwriteOptions overwriteOption) + { + var result = 0; + var enumerator = series.GetEnumerator(); + while (enumerator.MoveNext()) + { + result += SaveDataSeries(enumerator.Current, theme, overwriteOption); + } + return result; + } + + + #endregion + } +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/Exceptions/DataSeriesFromXmlException.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/Exceptions/DataSeriesFromXmlException.cs new file mode 100644 index 00000000..17c0d055 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/Exceptions/DataSeriesFromXmlException.cs @@ -0,0 +1,37 @@ +using System; +using System.Runtime.Serialization; + +namespace HydroDesktop.Plugins.DataDownload.Downloading.Exceptions +{ + /// + /// The exception that is thrown when converting data series from xml. + /// + class DataSeriesFromXmlException : Exception + { + private const string DEFAULT_MESSAGE = "Data Series From Xml Exception."; + + public DataSeriesFromXmlException() + : this(DEFAULT_MESSAGE) + { + + } + public DataSeriesFromXmlException(Exception inner) + : this(DEFAULT_MESSAGE, inner) + { + + } + + public DataSeriesFromXmlException(string message, Exception inner = null) + : base(message, inner) + { + + } + + protected DataSeriesFromXmlException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + + } + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/Exceptions/DownloadXmlException.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/Exceptions/DownloadXmlException.cs new file mode 100644 index 00000000..488fd134 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/Exceptions/DownloadXmlException.cs @@ -0,0 +1,36 @@ +using System; +using System.Runtime.Serialization; + +namespace HydroDesktop.Plugins.DataDownload.Downloading.Exceptions +{ + /// + /// The exception that is thrown when downloading series from web services. + /// + class DownloadXmlException : Exception + { + private const string DEFAULT_MESSAGE = "Download Xml Exception."; + + public DownloadXmlException() + : this(DEFAULT_MESSAGE) + { + + } + public DownloadXmlException(Exception inner) + : this(DEFAULT_MESSAGE, inner) + { + + } + + public DownloadXmlException(string message, Exception inner = null) + : base(message, inner) + { + + } + + protected DownloadXmlException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/Exceptions/NoSeriesFromXmlException.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/Exceptions/NoSeriesFromXmlException.cs new file mode 100644 index 00000000..7108172a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/Exceptions/NoSeriesFromXmlException.cs @@ -0,0 +1,36 @@ +using System; +using System.Runtime.Serialization; + +namespace HydroDesktop.Plugins.DataDownload.Downloading.Exceptions +{ + /// + /// The exception that is thrown when no series found in downloaded xml file. + /// + class NoSeriesFromXmlException : Exception + { + private const string DEFAULT_MESSAGE = "No series found in xml file."; + + public NoSeriesFromXmlException() + : this(DEFAULT_MESSAGE) + { + + } + public NoSeriesFromXmlException(Exception inner) + : this(DEFAULT_MESSAGE, inner) + { + + } + + public NoSeriesFromXmlException(string message, Exception inner = null) + : base(message, inner) + { + + } + + protected NoSeriesFromXmlException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/Exceptions/SaveDataSeriesException.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/Exceptions/SaveDataSeriesException.cs new file mode 100644 index 00000000..dfb3fe89 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/Exceptions/SaveDataSeriesException.cs @@ -0,0 +1,36 @@ +using System; +using System.Runtime.Serialization; + +namespace HydroDesktop.Plugins.DataDownload.Downloading.Exceptions +{ + /// + /// The exception that is thrown when saving data series into database. + /// + class SaveDataSeriesException : Exception + { + private const string DEFAULT_MESSAGE = "Save Data Series Exception."; + + public SaveDataSeriesException() + : this(DEFAULT_MESSAGE) + { + + } + public SaveDataSeriesException(Exception inner) + : this(DEFAULT_MESSAGE, inner) + { + + } + + public SaveDataSeriesException(string message, Exception inner = null) + : base(message, inner) + { + + } + + protected SaveDataSeriesException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/ManagerInformation.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/ManagerInformation.cs new file mode 100644 index 00000000..dbd1819c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/ManagerInformation.cs @@ -0,0 +1,237 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using HydroDesktop.Common; + +namespace HydroDesktop.Plugins.DataDownload.Downloading +{ + /// + /// Information about download progress + /// + class ManagerInformation : ObservableObject + { + private readonly DownloadManager _parent; + + #region Fields + + private ICollection _indecesToDownload; + + private const int INITIAL_TIME_TO_SAVE = 1; + + #endregion + + #region Constructors + + /// + /// Constructor of DownloadManagerProgress + /// + /// Information about start downloading call + /// Source download manager + /// startDownloadArg, parent must be not null. + public ManagerInformation(StartDownloadArg startDownloadArg, DownloadManager parent) + { + if (startDownloadArg == null) throw new ArgumentNullException("startDownloadArg"); + if (parent == null) throw new ArgumentNullException("parent"); + + _parent = parent; + + StartArgs = startDownloadArg; + SetSeriesToDownload(); // by default all series from initial list should be downloaded + } + + #endregion + + #region Public methods + + /// + /// Set series to download + /// + /// Series to download + /// Changing of series to download can not be done when downloading in progress. + public void SetSeriesToDownload(ICollection indecesToDownload = null) + { + if (_parent.IsBusy) + { + throw new InvalidOperationException( + "Changing of series to download can not done when downloading in progress."); + } + + if (indecesToDownload == null) + { + var allIndeces = new List(StartArgs.ItemsToDownload.Count); + for (int i = 0; i < allIndeces.Capacity; i++) + allIndeces.Add(i); + indecesToDownload = allIndeces; + } + + _indecesToDownload = indecesToDownload; + + // change status + foreach (var ind in _indecesToDownload) + StartArgs.ItemsToDownload[ind].Status = DownloadInfoStatus.Pending; + + IndecesToDownload = new ReadOnlyCollection(new List(_indecesToDownload)); + TotalSeries = _indecesToDownload.Count; + } + + #endregion + + #region Properties + + internal ReadOnlyCollection IndecesToDownload { get; private set; } + public StartDownloadArg StartArgs { get; private set; } + + private volatile int _downloadedAndSaved; + /// + /// Number of downloaded and saved series + /// + public int DownloadedAndSaved + { + get { return _downloadedAndSaved; } + set + { + _downloadedAndSaved = value; + NotifyPropertyChanged(() => DownloadedAndSaved); + + // update depended properties + RemainingSeries = TotalSeries - (DownloadedAndSaved + WithError); + } + } + + private int _downloaded; + /// + /// Number of downloaded series + /// + public int Downloaded + { + get { return _downloaded; } + set + { + _downloaded = value; + NotifyPropertyChanged(() => Downloaded); + } + } + + private volatile int _withError; + /// + /// Number of series with errors + /// + public int WithError + { + get { return _withError; } + set + { + _withError = value; + NotifyPropertyChanged(() => WithError); + + // update depended properties + RemainingSeries = TotalSeries - (DownloadedAndSaved + WithError); + } + } + + + private int _totalSeries; + public int TotalSeries + { + get { return _totalSeries; } + private set + { + _totalSeries = value; + NotifyPropertyChanged(() => TotalSeries); + + // update depended properties + RemainingSeries = TotalSeries; + WithError = 0; + DownloadedAndSaved = 0; + Downloaded = 0; + TimeTakenForDownloading = new TimeSpan(); + } + } + + + private volatile int _remainingSeries; + public int RemainingSeries + { + get { return _remainingSeries; } + private set + { + _remainingSeries = value; + NotifyPropertyChanged(() => RemainingSeries); + + // update depended properties + RefreshEstimatedTimeForDownload(); + EstimatedTimeForSave = new TimeSpan(0, 0, RemainingSeries * INITIAL_TIME_TO_SAVE); + } + } + + private TimeSpan _estimatedTime; + public TimeSpan EstimatedTime + { + get { return _estimatedTime; } + private set + { + _estimatedTime = value; + NotifyPropertyChanged(() => EstimatedTime); + } + } + + private TimeSpan _estimatedTimeForDownload; + public TimeSpan EstimatedTimeForDownload + { + get { return _estimatedTimeForDownload; } + private set + { + _estimatedTimeForDownload = value; + NotifyPropertyChanged(() => EstimatedTimeForDownload); + + EstimatedTime = EstimatedTimeForDownload.Add(EstimatedTimeForSave); + } + } + + private TimeSpan _estimatedTimeForSave; + public TimeSpan EstimatedTimeForSave + { + get { return _estimatedTimeForSave; } + set + { + _estimatedTimeForSave = value; + NotifyPropertyChanged(() => EstimatedTimeForSave); + + EstimatedTime = EstimatedTimeForDownload.Add(EstimatedTimeForSave); + } + } + + private TimeSpan TimeTakenForDownloading { get; set; } + public void AddTimeTaken(TimeSpan timeSpan) + { + TimeTakenForDownloading = TimeTakenForDownloading.Add(timeSpan); + } + + public void RefreshEstimatedTimeForDownload() + { + double avgTimeToSeries = 0; + if (TotalSeries != RemainingSeries) + avgTimeToSeries = TimeTakenForDownloading.TotalSeconds / (TotalSeries - RemainingSeries); + + double remaingTime = 0; + foreach (var item in StartArgs.ItemsToDownload) + { + if (item.Status == DownloadInfoStatus.Pending && avgTimeToSeries > 0) + item.EstimatedTimeToDownload = avgTimeToSeries; + + if (item.Status == DownloadInfoStatus.Downloading || item.Status == DownloadInfoStatus.Pending) + remaingTime += item.EstimatedTimeToDownload; + } + + EstimatedTimeForDownload = new TimeSpan(0, 0, (int)remaingTime); + } + + public double GetTotalProgress() + { + return StartArgs.ItemsToDownload.Sum(item => item.Progress)/StartArgs.ItemsToDownload.Count; + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/OneSeriesDownloadInfo.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/OneSeriesDownloadInfo.cs new file mode 100644 index 00000000..ea00ff93 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/OneSeriesDownloadInfo.cs @@ -0,0 +1,307 @@ +using System; +using System.Collections.Generic; +using DotSpatial.Data; +using HydroDesktop.Common; +using HydroDesktop.Configuration; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.DataDownload.Downloading +{ + /// + /// This class is used to pass information required to download + /// data values using the WaterML GetValues() call + /// + public class OneSeriesDownloadInfo : ObservableObject + { + #region Consts + + private const int INITIAL_TIME_TO_DOWNLOAD = 15; + + #endregion + + #region Constructors + + /// + /// Creates new instance of + /// + public OneSeriesDownloadInfo() + { + Status = DownloadInfoStatus.Pending; + EstimatedValuesCount = -1; + } + + #endregion + + #region Properties + + public IFeature SourceFeature { get; set; } + public IEnumerable ResultSeries { get; set; } + + private string _wsdl; + /// + /// Service url + /// + public string Wsdl + { + get { return _wsdl; } + set + { + _wsdl = value; + NotifyPropertyChanged(() => Wsdl); + } + } + + private string _fullSiteCode; + /// + /// Site code + /// + public string FullSiteCode + { + get { return _fullSiteCode; } + set + { + _fullSiteCode = value; + NotifyPropertyChanged(() => FullSiteCode); + } + } + + private string _fullVariableCode; + /// + /// Variable code + /// + public string FullVariableCode + { + get { return _fullVariableCode; } + set + { + _fullVariableCode = value; + NotifyPropertyChanged(() => FullVariableCode); + } + } + + private string _siteName; + /// + /// Site name + /// + public string SiteName + { + get { return _siteName; } + set + { + _siteName = value; + NotifyPropertyChanged(() => SiteName); + } + } + + private string _variableName; + /// + /// Variable name + /// + public string VariableName + { + get { return _variableName; } + set + { + _variableName = value; + NotifyPropertyChanged(() => VariableName); + } + } + + private DateTime _startDate; + /// + /// Start date + /// + public DateTime StartDate + { + get { return _startDate; } + set + { + _startDate = value; + NotifyPropertyChanged(() => StartDate); + } + } + + private DateTime _endDate; + /// + /// End date + /// + public DateTime EndDate + { + get { return _endDate; } + set + { + _endDate = value; + NotifyPropertyChanged(() => EndDate); + } + } + + private double _latitude; + /// + /// Latitude + /// + public double Latitude + { + get { return _latitude; } + set + { + _latitude = value; + NotifyPropertyChanged(() => Latitude); + } + } + + private double _longitude; + /// + /// Longitude + /// + public double Longitude + { + get { return _longitude; } + set + { + _longitude = value; + NotifyPropertyChanged(() => Longitude); + } + } + + private DownloadInfoStatus _status; + /// + /// Status of current item + /// + public DownloadInfoStatus Status + { + get { return _status; } + set + { + _status = value; + NotifyPropertyChanged(() => Status); + NotifyPropertyChanged(() => StatusAsString); + + if (_status == DownloadInfoStatus.Pending) + { + DownloadTimeTaken = new TimeSpan(); + ErrorMessage = null; + FilesWithData = null; + EstimatedTimeToDownload = INITIAL_TIME_TO_DOWNLOAD; + DownloadedChunksPercent = 0; + } + } + } + + /// + /// Status as string + /// + public string StatusAsString + { + get + { + return Status != DownloadInfoStatus.Downloading + ? Status.ToString() + : string.Format("{0} ({1}%)", Status, (int)DownloadedChunksPercent); + } + } + + private TimeSpan _downloadTimeTaken; + /// + /// Time interval, taken to downloading + /// + public TimeSpan DownloadTimeTaken + { + get { return _downloadTimeTaken; } + set + { + _downloadTimeTaken = value; + NotifyPropertyChanged(() => DownloadTimeTaken); + } + } + + + private string _errorMessage; + /// + /// Error message. May be not null, if Status == DownloadInfoStatus.Error + /// + public string ErrorMessage + { + get { return _errorMessage; } + set + { + _errorMessage = value; + NotifyPropertyChanged(() => ErrorMessage); + } + } + + /// + /// Collection of files with downloaded data series. + /// + public IEnumerable FilesWithData { get; set; } + + /// + /// Estimated count of values + /// + public int EstimatedValuesCount { get; set; } + + + /// + /// Description of downloaded series + /// + public string SeriesDescription + { + get + { + return SiteName + "|" + VariableName; + } + } + + private OverwriteOptions _overwriteOption = (OverwriteOptions)Enum.Parse(typeof(OverwriteOptions), Settings.Instance.DownloadOption); + + public OverwriteOptions OverwriteOption + { + get { return _overwriteOption; } + set + { + _overwriteOption = value; + NotifyPropertyChanged(() => OverwriteOption); + } + } + + public double EstimatedTimeToDownload { get; set; } + public double Progress + { + get + { + const int savePart = 5; + + switch (Status) + { + case DownloadInfoStatus.Pending: + return 0; + case DownloadInfoStatus.Error: + case DownloadInfoStatus.OkWithWarning: + case DownloadInfoStatus.Ok: + return 100; + case DownloadInfoStatus.Downloaded: + return 100 - savePart; + case DownloadInfoStatus.Downloading: + return DownloadedChunksPercent *((100.0 - savePart)/100.0); + default: + return 0; + } + } + } + + private double _downloadedChunksPercent; + public double DownloadedChunksPercent + { + get { return _downloadedChunksPercent; } + set + { + _downloadedChunksPercent = value; + + NotifyPropertyChanged(() => DownloadedChunksPercent); + } + } + + #endregion + } +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/RedownloadControl.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/RedownloadControl.Designer.cs new file mode 100644 index 00000000..031d0240 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/RedownloadControl.Designer.cs @@ -0,0 +1,90 @@ +namespace HydroDesktop.Plugins.DataDownload.Downloading +{ + partial class RedownloadControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.cmbOptions = new System.Windows.Forms.ComboBox(); + this.btnRedownload = new System.Windows.Forms.Button(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // cmbOptions + // + this.cmbOptions.Dock = System.Windows.Forms.DockStyle.Fill; + this.cmbOptions.FormattingEnabled = true; + this.cmbOptions.Location = new System.Drawing.Point(90, 3); + this.cmbOptions.Name = "cmbOptions"; + this.cmbOptions.Size = new System.Drawing.Size(114, 21); + this.cmbOptions.TabIndex = 0; + // + // btnRedownload + // + this.btnRedownload.Dock = System.Windows.Forms.DockStyle.Fill; + this.btnRedownload.Location = new System.Drawing.Point(3, 3); + this.btnRedownload.Name = "btnRedownload"; + this.btnRedownload.Size = new System.Drawing.Size(81, 24); + this.btnRedownload.TabIndex = 1; + this.btnRedownload.Text = "Re-download:"; + this.btnRedownload.UseVisualStyleBackColor = true; + this.btnRedownload.Click += new System.EventHandler(this.btnRedownload_Click); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 87F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.btnRedownload, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.cmbOptions, 1, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(207, 30); + this.tableLayoutPanel1.TabIndex = 2; + // + // RedownloadControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tableLayoutPanel1); + this.Name = "RedownloadControl"; + this.Size = new System.Drawing.Size(207, 30); + this.tableLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ComboBox cmbOptions; + private System.Windows.Forms.Button btnRedownload; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/RedownloadControl.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/RedownloadControl.cs new file mode 100644 index 00000000..cd9a31bb --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/RedownloadControl.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.DataDownload.Downloading +{ + public partial class RedownloadControl : UserControl + { + public event EventHandler DoRedownload; + + public RedownloadControl() + { + InitializeComponent(); + InitCombo(); + } + + private RedownloadOption CurrentOption + { + get + { + return ((KeyValuePair)cmbOptions.SelectedItem).Key; + } + } + + private void InitCombo() + { + cmbOptions.DropDownStyle = ComboBoxStyle.DropDownList; + + var enumValues = new List> + { + new KeyValuePair(RedownloadOption.AllWithErrors, + GetDescription(RedownloadOption.AllWithErrors)), + new KeyValuePair(RedownloadOption.SelectedWithErrors, + GetDescription(RedownloadOption.SelectedWithErrors)), + new KeyValuePair(RedownloadOption.AllSelected, + GetDescription(RedownloadOption.AllSelected)), + new KeyValuePair(RedownloadOption.All, + GetDescription(RedownloadOption.All)), + }; + + cmbOptions.DataSource = enumValues; + cmbOptions.DisplayMember = "Value"; + cmbOptions.ValueMember = "Key"; + } + + private static string GetDescription(Enum value) + { + if (value == null) + { + throw new ArgumentNullException("value"); + } + + string description = value.ToString(); + var fieldInfo = value.GetType().GetField(description); + var attributes = + (DescriptionAttribute[]) + fieldInfo.GetCustomAttributes(typeof (DescriptionAttribute), false); + + if (attributes.Length > 0) + { + description = attributes[0].Description; + } + return description; + } + + private void btnRedownload_Click(object sender, EventArgs e) + { + var handler = DoRedownload; + if (handler != null) + handler(this, new RedownloadArgs(CurrentOption)); + } + } + + public enum RedownloadOption + { + [Description("All series with errors")] + AllWithErrors, + [Description("Selected with status = error")] + SelectedWithErrors, + [Description("All selected (any status)")] + AllSelected, + [Description("All")] + All + } + + public class RedownloadArgs : EventArgs + { + public RedownloadOption RedownloadOption { get; private set; } + + public RedownloadArgs(RedownloadOption redownloadOption) + { + RedownloadOption = redownloadOption; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/RedownloadControl.resx b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/RedownloadControl.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/RedownloadControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/StartDownloadArg.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/StartDownloadArg.cs new file mode 100644 index 00000000..4286c717 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Downloading/StartDownloadArg.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using DotSpatial.Symbology; +using HydroDesktop.Plugins.DataDownload.Options; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.DataDownload.Downloading +{ + /// + /// Class with information needed to call DownloadManager.Start() + /// + public class StartDownloadArg + { + /// + /// Constructor of DownloadArg + /// + /// Collection of DownloadInfo + /// Data theme + /// downloadList, dataTheme must be not null. + public StartDownloadArg(IList downloadList, Theme dataTheme) + { + if (downloadList == null) throw new ArgumentNullException("downloadList"); + if (dataTheme == null) throw new ArgumentNullException("dataTheme"); + + ItemsToDownload = new ReadOnlyCollection(downloadList); + DataTheme = dataTheme; + } + + /// + /// Constructor of DownloadArg + /// + /// Collection of DownloadInfo + /// Data theme name + /// downloadList, dataThemeName must be not null. + public StartDownloadArg(IList downloadList, string dataThemeName): + this(downloadList, new Theme(dataThemeName)) + { + } + + /// + /// Collection of all items to be downloaded. + /// + public ReadOnlyCollection ItemsToDownload { get; private set; } + + /// + /// Data theme. + /// + public Theme DataTheme { get; private set; } + + /// + /// Gets or sets source feature layer + /// + public IFeatureLayer FeatureLayer { get; set; } + + public DownloadOptions DownloadOptions { get; set; } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/HydroDesktop.Plugins.DataDownload.csproj b/Source/Plugins/HydroDesktop.Plugins.DataDownload/HydroDesktop.Plugins.DataDownload.csproj new file mode 100644 index 00000000..feae99fb --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/HydroDesktop.Plugins.DataDownload.csproj @@ -0,0 +1,332 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {CBC247A5-F50E-41ED-807C-94DE7E970DB9} + Library + Properties + HydroDesktop.Plugins.DataDownload + HydroDesktop.Plugins.DataDownload + v4.0 + 512 + ..\..\ + true + Client + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataDownload\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataDownload\HydroDesktop.Plugins.DataDownload.XML + 1591 + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataDownload\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataDownload\ + DEBUG;TRACE + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataDownload\HydroDesktop.Plugins.DataDownload.XML + full + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataDownload\HydroDesktop.Plugins.DataDownload.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataDownload\ + TRACE + true + pdbonly + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataDownload\HydroDesktop.Plugins.DataDownload.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + ..\..\..\Binaries\HydroDesktop.Configuration.dll + False + + + ..\..\..\Binaries\HydroDesktop.Interfaces.dll + False + + + ..\..\..\Binaries\HydroDesktop.WebServices.dll + False + + + + + + + + + + + + + + + + + Form + + + DownloadManagerUI.cs + + + + + + + + + UserControl + + + RedownloadControl.cs + + + + UserControl + + + CustomToolTipControl.cs + + + + + + + Component + + + Popup.cs + + + + + + + True + True + MessageStrings.resx + + + Form + + + DownloadOptionsDialog.cs + + + Form + + + PopupOptionsDialog.cs + + + + True + True + Resources.resx + + + True + True + Settings.settings + + + + + + + DownloadManagerUI.cs + + + RedownloadControl.cs + + + CustomToolTipControl.cs + + + ResXFileCodeGenerator + MessageStrings.Designer.cs + Designer + + + DownloadOptionsDialog.cs + + + PopupOptionsDialog.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + {ceb869c6-ed48-4846-9040-4e82ab58b86b} + HydroDesktop.Data + False + + + {58B443B0-D995-434B-B403-D5D62959D32E} + HydroDesktop.ObjectModel.Controls + False + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/HydroDesktop.Plugins.DataDownload.nuspec b/Source/Plugins/HydroDesktop.Plugins.DataDownload/HydroDesktop.Plugins.DataDownload.nuspec new file mode 100644 index 00000000..1497f595 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/HydroDesktop.Plugins.DataDownload.nuspec @@ -0,0 +1,22 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/CustomToolTipControl.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/CustomToolTipControl.Designer.cs new file mode 100644 index 00000000..bc3713d7 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/CustomToolTipControl.Designer.cs @@ -0,0 +1,51 @@ +namespace HydroDesktop.Plugins.DataDownload.LayerInformation +{ + partial class CustomToolTipControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.SuspendLayout(); + // + // CustomToolTipControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Name = "CustomToolTipControl"; + this.Size = new System.Drawing.Size(250, 149); + this.ResumeLayout(false); + + } + + #endregion + + + + + + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/CustomToolTipControl.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/CustomToolTipControl.cs new file mode 100644 index 00000000..d8f5076b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/CustomToolTipControl.cs @@ -0,0 +1,349 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Windows.Forms; +using HydroDesktop.Plugins.DataDownload.Downloading; +using HydroDesktop.Plugins.DataDownload.LayerInformation.PopupControl; + +namespace HydroDesktop.Plugins.DataDownload.LayerInformation +{ + /// + /// Custom tooltip to show info about services. + /// + public partial class CustomToolTipControl : UserControl + { + #region Fields + + private readonly DataDownloadPlugin _parentPlugin; + private GraphicsPath graphicsPath; + private readonly List _serviceInfo = new List(); + + const int CONTROLS_START_X = 13; + const int CONSTROLS_START_Y = 11; + const int VERTICAL_PADDING = 3; + const int HORISONTAL_PADDING = 13; + + #endregion + + #region Constructors + + /// + /// Creates new instance of class. + /// + /// DataDownloadPlugin + public CustomToolTipControl(DataDownloadPlugin parentPlugin) + { + _parentPlugin = parentPlugin; + InitializeComponent(); + + SizeChanged += CustomToolTipControl_SizeChanged; + Load += CustomToolTipControl_Load; + } + + #endregion + + #region Properties + + public Popup Popup { get; set; } + + #endregion + + #region Public methods + + /// + /// Is info already set on current tooltip + /// + /// Info to check + /// True - info set, false - otherwise + public bool IsInfoAlreadySetted(List info) + { + if (info == null) throw new ArgumentNullException("info"); + + if (_serviceInfo.Count != info.Count) return false; + return _serviceInfo.All(item => info.Exists(infoItem => infoItem.Equals(item))); + } + + /// + /// Set info to current tooltip + /// + /// Info to set + /// must be not null + public void SetInfo(IEnumerable infos) + { + if (infos == null) throw new ArgumentNullException("infos"); + _serviceInfo.Clear(); + _serviceInfo.AddRange(infos.Where(item => !item.IsEmpty)); + + SuspendLayout(); + + Controls.Clear(); + + var controls = new List(); + foreach(var info in _serviceInfo) + { + var userControl = new UserControl {Tag = info}; + AddInfoIntoContainer(info, userControl); + controls.Add(userControl); + } + + Control controlToAdd; + if (controls.Count == 1) + { + controlToAdd = controls[0]; + }else + { + var tabControl = new TabControl {Width = 0, Height = 0}; + tabControl.Padding = new Point(); + tabControl.DrawMode = TabDrawMode.OwnerDrawFixed; + tabControl.DrawItem += tabControl_DrawItem; + foreach (var userControl in controls) + { + var itemForCommonParts = ((ServiceInfoGroup)(userControl.Tag)).GetItems().First(); + + var tabPage = new TabPage(itemForCommonParts.DataSource) + { + Padding = new Padding(0,0,0,0), + Width = userControl.Width, + Height = userControl.Height, + BackColor = GetBackColor(), + }; + + tabPage.Controls.Add(userControl); + tabPage.Controls[0].Dock = DockStyle.Fill; + + var needWidth = tabPage.Width + 8; + if (tabControl.Width < needWidth) + { + tabControl.Width = needWidth; + } + var needHeight = tabPage.Height + 8 + tabControl.ItemSize.Height + + tabControl.Padding.Y + 8; + if (tabControl.Height < needHeight) + { + tabControl.Height = needHeight; + } + + tabControl.TabPages.Add(tabPage); + } + controlToAdd = tabControl; + } + + controlToAdd.Paint += userControl_Paint; + Controls.Add(controlToAdd); + Popup.Width = controlToAdd.Width; + Popup.Height = controlToAdd.Height; + controlToAdd.Dock = DockStyle.Fill; + + ResumeLayout(true); + CustomToolTipControl_SizeChanged(this, EventArgs.Empty); + } + + private void AddInfoIntoContainer(ServiceInfoGroup info, Control container) + { + var thisWidth = 0; + var startX = CONTROLS_START_X; + var startY = CONSTROLS_START_Y; + + var itemForCommonParts = info.GetItems().First(); + + // Data Source label + var lbDataSource = new LinkLabel { AutoSize = true, Location = new Point(startX, startY) }; + lbDataSource.LinkClicked += lblServiceDesciptionUrl_LinkClicked; + AddControl(container, lbDataSource); + lbDataSource.Text = itemForCommonParts.DataSource; + lbDataSource.Links[0].LinkData = itemForCommonParts.ServiceDesciptionUrl; + lbDataSource.Links[0].Enabled = IsValidServiceDesciptionUrl(itemForCommonParts.ServiceDesciptionUrl); + CalculateContainerSize(lbDataSource, ref thisWidth, ref startY); + + // Site Name label + startY += 2; + var lbSiteName = new Label { AutoSize = true, Location = new Point(startX, startY) }; + AddControl(container, lbSiteName); + lbSiteName.Text = itemForCommonParts.SiteName; + CalculateContainerSize(lbSiteName, ref thisWidth, ref startY); + + // Variable labels... + var sameVarName = info.GetItems().All(item => itemForCommonParts.VarName == item.VarName); + var sameType = info.GetItems().All(item => itemForCommonParts.DataType == item.DataType); + var showDataType = info.ItemsCount > 1 && + (!sameType || sameVarName); + const int max_variables_count = 10; // If variables list is too long, limit display to max_variables_count + var variablesList = info.GetItems().ToList(); + for (int i = 0; i < variablesList.Count && i < max_variables_count; i++) + { + var item = variablesList[i]; + var lbVariable = new Label { AutoSize = true, Location = new Point(startX, startY) }; + AddControl(container, lbVariable); + lbVariable.Text = string.Format("{0}{1}, ~{2}", + item.VarName, + !showDataType ? string.Empty : ", " + item.DataType, + item.ValueCountAsString); + //item.IsDownloaded ? string.Empty : " (estimated)"); + CalculateContainerSize(lbVariable, ref thisWidth, ref startY); + } + if (variablesList.Count > max_variables_count) + { + var lbVariable = new Label { AutoSize = true, Location = new Point(startX, startY) }; + AddControl(container, lbVariable); + lbVariable.Text = string.Format("{0} more available but not shown", variablesList.Count - max_variables_count); + CalculateContainerSize(lbVariable, ref thisWidth, ref startY); + } + + // Download data label + startY += 2; + var lbDowloadData = new LinkLabel + { + AutoSize = true, + Location = new Point(startX, startY), + Tag = info, + }; + lbDowloadData.LinkClicked += lblDownloadData_LinkClicked; + AddControl(container, lbDowloadData); + lbDowloadData.Text = info.GetItems().Any(item => item.IsDownloaded) ? "Download updated data" : "Download data"; + CalculateContainerSize(lbDowloadData, ref thisWidth, ref startY); + lbDowloadData.Location = new Point(thisWidth - lbDowloadData.Width, lbDowloadData.Location.Y); + + container.Width = thisWidth + CONTROLS_START_X; + container.Height = startY + CONSTROLS_START_Y; + } + + private void CalculateContainerSize(Control child, ref int width, ref int height) + { + var needWidth = child.Location.X + child.Size.Width + HORISONTAL_PADDING; + if (width < needWidth) + { + width = needWidth; + } + + var needHeight = child.Location.Y + child.Size.Height + VERTICAL_PADDING; + if (height < needHeight) + { + height = needHeight; + } + } + + private void AddControl(Control container, Control cntrl) + { + container.Controls.Add(cntrl); + } + + #endregion + + #region Private methods + + void lblDownloadData_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + var lbl = sender as LinkLabel; + if (lbl == null) return; + var infoGroup = lbl.Tag as ServiceInfoGroup; + if (infoGroup == null) return; + + if (Popup != null) + { + Popup.Close(); + } + + var seriesList = new List(infoGroup.ItemsCount); + seriesList.AddRange(infoGroup.GetItems().Select(ClassConvertor.ServiceInfoToOneSeriesDownloadInfo)); + var layer = infoGroup.GetItems().First().Layer; // we have at least one element + + var dataThemeName = layer.LegendText; + var startArgs = new StartDownloadArg(seriesList, dataThemeName); + _parentPlugin.StartDownloading(startArgs, layer); + } + + + void lblServiceDesciptionUrl_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + var target = e.Link.LinkData as string; + + // If the value looks like a URL, navigate to it. + if (IsValidServiceDesciptionUrl(target)) + { + Process.Start(target); + } + } + } + + private bool IsValidServiceDesciptionUrl(string target) + { + return null != target && (target.StartsWith("http") || target.StartsWith("www")); + } + + void CustomToolTipControl_SizeChanged(object sender, EventArgs e) + { + Region = new Region(graphicsPath = CreateRoundRectangle(Width - 1, Height - 1, 6)); + } + + void CustomToolTipControl_Load(object sender, EventArgs e) + { + BackColor = GetBackColor(); + } + + private static Color GetBackColor() + { + return SystemColors.Info; + } + + private static GraphicsPath CreateRoundRectangle(int w, int h, int r) + { + int d = r << 1; + var path = new GraphicsPath(); + path.StartFigure(); + path.AddArc(new Rectangle(0, 0, d, d), 180, 90); + path.AddLine(r, 0, w - r, 0); + path.AddArc(new Rectangle(w - d, 0, d, d), 270, 90); + path.AddLine(w + 1, r, w + 1, h - r); + path.AddArc(new Rectangle(w - d, h - d, d, d), 0, 90); + path.AddLine(w - r, h + 1, r, h + 1); + path.AddArc(new Rectangle(0, h - d, d, d), 90, 90); + path.AddLine(0, h - r, 0, r); + path.CloseFigure(); + return path; + } + + void tabControl_DrawItem(object sender, DrawItemEventArgs e) + { + var tabControl = sender as TabControl; + if (tabControl == null) return; + + var tabPage = tabControl.TabPages[e.Index]; + var servInfo = (ServiceInfoGroup)tabPage.Controls[0].Tag; + var isDowloaded = !servInfo.IsEmpty && servInfo.GetItems().Any(item => item.IsDownloaded); + + var font = isDowloaded? new Font(e.Font, FontStyle.Bold) : e.Font; + var brush = isDowloaded ? Brushes.Green : Brushes.Black; + e.Graphics.DrawString(tabControl.TabPages[e.Index].Text, font, brush, e.Bounds.Left + 2, e.Bounds.Top + 2); + } + + void userControl_Paint(object sender, PaintEventArgs e) + { + e.Graphics.TranslateTransform(-1, -1); + using (var p = GetBorderPen(((UserControl)sender).Tag as ServiceInfoGroup)) + { + e.Graphics.DrawPath(p, graphicsPath); + } + e.Graphics.ResetTransform(); + } + + private Pen GetBorderPen(ServiceInfoGroup servInfo) + { + if (servInfo != null) + { + var isDowloaded = !servInfo.IsEmpty && servInfo.GetItems().Any(item => item.IsDownloaded); + return isDowloaded + ? new Pen(Color.Green, 5) + : new Pen(SystemColors.WindowFrame, 2); + } + + return new Pen(SystemColors.WindowFrame, 2); + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/CustomToolTipControl.resx b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/CustomToolTipControl.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/CustomToolTipControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/HISCentralInfoExtractor.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/HISCentralInfoExtractor.cs new file mode 100644 index 00000000..88e67adf --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/HISCentralInfoExtractor.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; +using DotSpatial.Controls; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.PluginContracts; + +namespace HydroDesktop.Plugins.DataDownload.LayerInformation +{ + /// + /// Provides methods to extract some service info + /// + interface IServiceInfoExtractor + { + /// + /// Get service description URL by serviceUrl + /// + /// ServiceUrl + /// ServiceDesciptionUrl + string GetServiceDesciptionUrl(string serviceUrl); + } + + + class HISCentralInfoExtractor : IServiceInfoExtractor + { + private readonly Lazy> _services; + public HISCentralInfoExtractor(Lazy> services) + { + if (services == null) throw new ArgumentNullException("services"); + + _services = services; + } + + public string GetServiceDesciptionUrl(string serviceUrl) + { + if (serviceUrl == null) return null; + string res; + return _services.Value.TryGetValue(serviceUrl, out res) ? res : serviceUrl; + } + } + + internal class HisCentralServices + { + private readonly AppManager _appManager; + + public HisCentralServices(AppManager appManager) + { + _appManager = appManager; + } + + private Dictionary _services; + public Dictionary Services + { + get + { + if (_services == null || _services.Count == 0) + { + _services = new Dictionary(); + + var wss = _appManager.GetExtension(); + if (wss != null) + { + var infos = wss.GetWebServices(); + if (infos != null) + { + foreach (var info in infos) + { + try + { + _services.Add(info.EndpointURL, info.DescriptionURL); + } + catch (Exception e) + { } + } + } + } + } + return _services; + } + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/PopupControl/GripBounds.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/PopupControl/GripBounds.cs new file mode 100644 index 00000000..f1296bc7 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/PopupControl/GripBounds.cs @@ -0,0 +1,130 @@ +#region License LGPL 3 +// Copyright © Łukasz Świątkowski 2007–2010. +// http://www.lukesw.net/ +// +// This library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library. If not, see . +#endregion + +using System.Drawing; + +namespace HydroDesktop.Plugins.DataDownload.LayerInformation.PopupControl +{ + internal struct GripBounds + { + private const int GripSize = 6; + private const int CornerGripSize = GripSize << 1; + + public GripBounds(Rectangle clientRectangle) + { + this.clientRectangle = clientRectangle; + } + + private Rectangle clientRectangle; + public Rectangle ClientRectangle + { + get { return clientRectangle; } + //set { clientRectangle = value; } + } + + public Rectangle Bottom + { + get + { + Rectangle rect = ClientRectangle; + rect.Y = rect.Bottom - GripSize + 1; + rect.Height = GripSize; + return rect; + } + } + + public Rectangle BottomRight + { + get + { + Rectangle rect = ClientRectangle; + rect.Y = rect.Bottom - CornerGripSize + 1; + rect.Height = CornerGripSize; + rect.X = rect.Width - CornerGripSize + 1; + rect.Width = CornerGripSize; + return rect; + } + } + + public Rectangle Top + { + get + { + Rectangle rect = ClientRectangle; + rect.Height = GripSize; + return rect; + } + } + + public Rectangle TopRight + { + get + { + Rectangle rect = ClientRectangle; + rect.Height = CornerGripSize; + rect.X = rect.Width - CornerGripSize + 1; + rect.Width = CornerGripSize; + return rect; + } + } + + public Rectangle Left + { + get + { + Rectangle rect = ClientRectangle; + rect.Width = GripSize; + return rect; + } + } + + public Rectangle BottomLeft + { + get + { + Rectangle rect = ClientRectangle; + rect.Width = CornerGripSize; + rect.Y = rect.Height - CornerGripSize + 1; + rect.Height = CornerGripSize; + return rect; + } + } + + public Rectangle Right + { + get + { + Rectangle rect = ClientRectangle; + rect.X = rect.Right - GripSize + 1; + rect.Width = GripSize; + return rect; + } + } + + public Rectangle TopLeft + { + get + { + Rectangle rect = ClientRectangle; + rect.Width = CornerGripSize; + rect.Height = CornerGripSize; + return rect; + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/PopupControl/NativeMethods.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/PopupControl/NativeMethods.cs new file mode 100644 index 00000000..55271699 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/PopupControl/NativeMethods.cs @@ -0,0 +1,147 @@ +#region License LGPL 3 +// Copyright ukasz witkowski 20072010. +// http://www.lukesw.net/ +// +// This library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library. If not, see . +#endregion + +using System; +using System.Drawing; +using System.Runtime.InteropServices; +using System.Security; +using System.Security.Permissions; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.DataDownload.LayerInformation.PopupControl +{ + internal static class NativeMethods + { + internal const int WM_NCHITTEST = 0x0084, + WM_NCACTIVATE = 0x0086, + WS_EX_TRANSPARENT = 0x00000020, + WS_EX_TOOLWINDOW = 0x00000080, + WS_EX_LAYERED = 0x00080000, + WS_EX_NOACTIVATE = 0x08000000, + HTTRANSPARENT = -1, + HTLEFT = 10, + HTRIGHT = 11, + HTTOP = 12, + HTTOPLEFT = 13, + HTTOPRIGHT = 14, + HTBOTTOM = 15, + HTBOTTOMLEFT = 16, + HTBOTTOMRIGHT = 17, + WM_PRINT = 0x0317, + WM_USER = 0x0400, + WM_REFLECT = WM_USER + 0x1C00, + WM_COMMAND = 0x0111, + CBN_DROPDOWN = 7, + WM_GETMINMAXINFO = 0x0024; + + private static HandleRef HWND_TOPMOST = new HandleRef(null, new IntPtr(-1)); + + [Flags] + internal enum AnimationFlags + { + Roll = 0x0000, // Uses a roll animation. + HorizontalPositive = 0x00001, // Animates the window from left to right. This flag can be used with roll or slide animation. + HorizontalNegative = 0x00002, // Animates the window from right to left. This flag can be used with roll or slide animation. + VerticalPositive = 0x00004, // Animates the window from top to bottom. This flag can be used with roll or slide animation. + VerticalNegative = 0x00008, // Animates the window from bottom to top. This flag can be used with roll or slide animation. + Center = 0x00010, // Makes the window appear to collapse inward if Hide is used or expand outward if the Hide is not used. + Hide = 0x10000, // Hides the window. By default, the window is shown. + Activate = 0x20000, // Activates the window. + Slide = 0x40000, // Uses a slide animation. By default, roll animation is used. + Blend = 0x80000, // Uses a fade effect. This flag can be used only with a top-level window. + Mask = 0xfffff, + } + + [SuppressUnmanagedCodeSecurity] + [DllImport("user32.dll", CharSet = CharSet.Auto)] + private static extern int AnimateWindow(HandleRef windowHandle, int time, AnimationFlags flags); + + internal static void AnimateWindow(Control control, int time, AnimationFlags flags) + { + try + { + SecurityPermission sp = new SecurityPermission(SecurityPermissionFlag.UnmanagedCode); + sp.Demand(); + AnimateWindow(new HandleRef(control, control.Handle), time, flags); + } + catch (SecurityException) { } + } + + [SuppressUnmanagedCodeSecurity] + [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] + private static extern bool SetWindowPos(HandleRef hWnd, HandleRef hWndInsertAfter, int x, int y, int cx, int cy, int flags); + + internal static void SetTopMost(Control control) + { + try + { + SecurityPermission sp = new SecurityPermission(SecurityPermissionFlag.UnmanagedCode); + sp.Demand(); + SetWindowPos(new HandleRef(control, control.Handle), HWND_TOPMOST, 0, 0, 0, 0, 0x13); + } + catch (SecurityException) { } + } + + internal static int HIWORD(int n) + { + return (short)((n >> 16) & 0xffff); + } + + internal static int HIWORD(IntPtr n) + { + return HIWORD(unchecked((int)(long)n)); + } + + internal static int LOWORD(int n) + { + return (short)(n & 0xffff); + } + + internal static int LOWORD(IntPtr n) + { + return LOWORD(unchecked((int)(long)n)); + } + + [StructLayout(LayoutKind.Sequential)] + internal struct MINMAXINFO + { + public Point reserved; + public Size maxSize; + public Point maxPosition; + public Size minTrackSize; + public Size maxTrackSize; + } + + private static bool? _isRunningOnMono; + public static bool IsRunningOnMono + { + get + { + if (DotSpatial.Mono.Mono.IsRunningOnMono()) + { + _isRunningOnMono = true; + } + else + { + _isRunningOnMono = false; + } + return _isRunningOnMono.Value; + } + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/PopupControl/Popup.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/PopupControl/Popup.Designer.cs new file mode 100644 index 00000000..5e1ccca2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/PopupControl/Popup.Designer.cs @@ -0,0 +1,45 @@ +namespace HydroDesktop.Plugins.DataDownload.LayerInformation.PopupControl +{ + partial class Popup + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing) + { + if (components != null) + { + components.Dispose(); + } + if (Content != null) + { + System.Windows.Forms.Control _content = Content; + Content = null; + _content.Dispose(); + } + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/PopupControl/Popup.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/PopupControl/Popup.cs new file mode 100644 index 00000000..bcb21746 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/PopupControl/Popup.cs @@ -0,0 +1,673 @@ +#region License LGPL 3 +// Copyright © Łukasz Świątkowski 2007–2010. +// http://www.lukesw.net/ +// +// This library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library. If not, see . +#endregion + +using System; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Runtime.InteropServices; +using System.Security.Permissions; +using System.Windows.Forms; +using System.Windows.Forms.VisualStyles; + +/* +
  • Base class for custom tooltips.
  • +
  • Office-2007-like tooltip class.
  • +*/ +namespace HydroDesktop.Plugins.DataDownload.LayerInformation.PopupControl +{ + /// + /// Represents a pop-up window. + /// + [CLSCompliant(true), ToolboxItem(false)] + public partial class Popup : ToolStripDropDown + { + #region " Fields & Properties " + + /// + /// Gets the content of the pop-up. + /// + public Control Content { get; private set; } + + /// + /// Determines which animation to use while showing the pop-up window. + /// + public PopupAnimations ShowingAnimation { get; set; } + + /// + /// Determines which animation to use while hiding the pop-up window. + /// + public PopupAnimations HidingAnimation { get; set; } + + /// + /// Determines the duration of the animation. + /// + public int AnimationDuration { get; set; } + + /// + /// Gets or sets a value indicating whether the content should receive the focus after the pop-up has been opened. + /// + /// true if the content should be focused after the pop-up has been opened; otherwise, false. + /// If the FocusOnOpen property is set to false, then pop-up cannot use the fade effect. + public bool FocusOnOpen { get; set; } + + /// + /// Gets or sets a value indicating whether pressing the alt key should close the pop-up. + /// + /// true if pressing the alt key does not close the pop-up; otherwise, false. + public bool AcceptAlt { get; set; } + + private ToolStripControlHost _host; + private Control _opener; + private Popup _ownerPopup; + private Popup _childPopup; + private bool _resizableTop; + private bool _resizableLeft; + + private bool _isChildPopupOpened; + private bool _resizable; + /// + /// Gets or sets a value indicating whether the is resizable. + /// + /// true if resizable; otherwise, false. + public bool Resizable + { + get { return _resizable && !_isChildPopupOpened; } + set { _resizable = value; } + } + + private bool _nonInteractive; + /// + /// Gets or sets a value indicating whether the acts like a transparent windows (so it cannot be clicked). + /// + /// + /// true if the popup is noninteractive; otherwise, false. + public bool NonInteractive + { + get { return _nonInteractive; } + set + { + if (value != _nonInteractive) + { + _nonInteractive = value; + if (IsHandleCreated) RecreateHandle(); + } + } + } + + /// + /// Gets or sets a minimum size of the pop-up. + /// + /// An ordered pair of type representing the width and height of a rectangle. + public new Size MinimumSize { get; set; } + + /// + /// Gets or sets a maximum size of the pop-up. + /// + /// An ordered pair of type representing the width and height of a rectangle. + public new Size MaximumSize { get; set; } + + /// + /// Gets parameters of a new window. + /// + /// An object of type used when creating a new window. + protected override CreateParams CreateParams + { + [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] + get + { + CreateParams cp = base.CreateParams; + cp.ExStyle |= NativeMethods.WS_EX_NOACTIVATE; + if (NonInteractive) cp.ExStyle |= NativeMethods.WS_EX_TRANSPARENT | NativeMethods.WS_EX_LAYERED | NativeMethods.WS_EX_TOOLWINDOW; + return cp; + } + } + + #endregion + + #region " Constructors " + + /// + /// Initializes a new instance of the class. + /// + /// The content of the pop-up. + /// + /// Pop-up will be disposed immediately after disposion of the content control. + /// + /// is null. + public Popup(Control content) + { + if (content == null) + { + throw new ArgumentNullException("content"); + } + Content = content; + FocusOnOpen = true; + AcceptAlt = true; + ShowingAnimation = PopupAnimations.SystemDefault; + HidingAnimation = PopupAnimations.None; + AnimationDuration = 100; + InitializeComponent(); + AutoSize = false; + DoubleBuffered = true; + ResizeRedraw = true; + _host = new ToolStripControlHost(content); + Padding = Margin = _host.Padding = _host.Margin = Padding.Empty; + if (NativeMethods.IsRunningOnMono) content.Margin = Padding.Empty; + MinimumSize = content.MinimumSize; + content.MinimumSize = content.Size; + MaximumSize = content.MaximumSize; + content.MaximumSize = content.Size; + Size = content.Size; + if (NativeMethods.IsRunningOnMono) _host.Size = content.Size; + TabStop = content.TabStop = true; + content.Location = Point.Empty; + Items.Add(_host); + content.Disposed += (sender, e) => + { + content = null; + Dispose(true); + }; + content.RegionChanged += (sender, e) => UpdateRegion(); + content.Paint += (sender, e) => PaintSizeGrip(e); + UpdateRegion(); + } + + #endregion + + #region " Methods " + + /// + /// Raises the event. + /// + /// An that contains the event data. + protected override void OnVisibleChanged(EventArgs e) + { + base.OnVisibleChanged(e); + if (NativeMethods.IsRunningOnMono) return; // in case of non-Windows + if ((Visible && ShowingAnimation == PopupAnimations.None) || (!Visible && HidingAnimation == PopupAnimations.None)) + { + return; + } + NativeMethods.AnimationFlags flags = Visible ? NativeMethods.AnimationFlags.Roll : NativeMethods.AnimationFlags.Hide; + PopupAnimations _flags = Visible ? ShowingAnimation : HidingAnimation; + if (_flags == PopupAnimations.SystemDefault) + { + if (SystemInformation.IsMenuAnimationEnabled) + { + if (SystemInformation.IsMenuFadeEnabled) + { + _flags = PopupAnimations.Blend; + } + else + { + _flags = PopupAnimations.Slide | (Visible ? PopupAnimations.TopToBottom : PopupAnimations.BottomToTop); + } + } + else + { + _flags = PopupAnimations.None; + } + } + if ((_flags & (PopupAnimations.Blend | PopupAnimations.Center | PopupAnimations.Roll | PopupAnimations.Slide)) == PopupAnimations.None) + { + return; + } + if (_resizableTop) // popup is “inverted”, so the animation must be + { + if ((_flags & PopupAnimations.BottomToTop) != PopupAnimations.None) + { + _flags = (_flags & ~PopupAnimations.BottomToTop) | PopupAnimations.TopToBottom; + } + else if ((_flags & PopupAnimations.TopToBottom) != PopupAnimations.None) + { + _flags = (_flags & ~PopupAnimations.TopToBottom) | PopupAnimations.BottomToTop; + } + } + if (_resizableLeft) // popup is “inverted”, so the animation must be + { + if ((_flags & PopupAnimations.RightToLeft) != PopupAnimations.None) + { + _flags = (_flags & ~PopupAnimations.RightToLeft) | PopupAnimations.LeftToRight; + } + else if ((_flags & PopupAnimations.LeftToRight) != PopupAnimations.None) + { + _flags = (_flags & ~PopupAnimations.LeftToRight) | PopupAnimations.RightToLeft; + } + } + flags = flags | (NativeMethods.AnimationFlags.Mask & (NativeMethods.AnimationFlags)(int)_flags); + NativeMethods.SetTopMost(this); + NativeMethods.AnimateWindow(this, AnimationDuration, flags); + } + + /// + /// Processes a dialog box key. + /// + /// One of the values that represents the key to process. + /// + /// true if the key was processed by the control; otherwise, false. + /// + [UIPermission(SecurityAction.LinkDemand, Window = UIPermissionWindow.AllWindows)] + protected override bool ProcessDialogKey(Keys keyData) + { + if (AcceptAlt && ((keyData & Keys.Alt) == Keys.Alt)) + { + if ((keyData & Keys.F4) != Keys.F4) + { + return false; + } + Close(); + } + bool processed = base.ProcessDialogKey(keyData); + if (!processed && (keyData == Keys.Tab || keyData == (Keys.Tab | Keys.Shift))) + { + bool backward = (keyData & Keys.Shift) == Keys.Shift; + Content.SelectNextControl(null, !backward, true, true, true); + } + return processed; + } + + /// + /// Updates the pop-up region. + /// + protected void UpdateRegion() + { + if (Region != null) + { + Region.Dispose(); + Region = null; + } + if (Content.Region != null) + { + Region = Content.Region.Clone(); + } + } + + /// + /// Shows the pop-up window below the specified control. + /// + /// The control below which the pop-up will be shown. + /// + /// When there is no space below the specified control, the pop-up control is shown above it. + /// + /// is null. + public void Show(Control control) + { + if (control == null) + { + throw new ArgumentNullException("control"); + } + Show(control, control.ClientRectangle); + } + + /// + /// Shows the pop-up window below the specified area. + /// + /// The area of desktop below which the pop-up will be shown. + /// + /// When there is no space below specified area, the pop-up control is shown above it. + /// + public void Show(Rectangle area) + { + _resizableTop = _resizableLeft = false; + Point location = new Point(area.Left, area.Top + area.Height); + Rectangle screen = Screen.FromControl(this).WorkingArea; + if (location.X + Size.Width > (screen.Left + screen.Width)) + { + _resizableLeft = true; + location.X = (screen.Left + screen.Width) - Size.Width; + } + if (location.Y + Size.Height > (screen.Top + screen.Height)) + { + _resizableTop = true; + location.Y -= Size.Height + area.Height; + } + //location = control.PointToClient(location); + Show(location, ToolStripDropDownDirection.BelowRight); + } + + /// + /// Shows the pop-up window below the specified area of the specified control. + /// + /// The control used to compute screen location of specified area. + /// The area of control below which the pop-up will be shown. + /// + /// When there is no space below specified area, the pop-up control is shown above it. + /// + /// is null. + public void Show(Control control, Rectangle area) + { + if (control == null) + { + throw new ArgumentNullException("control"); + } + SetOwnerItem(control); + + _resizableTop = _resizableLeft = false; + Point location = control.PointToScreen(new Point(area.Left, area.Top + area.Height)); + Rectangle screen = Screen.FromControl(control).WorkingArea; + if (location.X + Size.Width > (screen.Left + screen.Width)) + { + _resizableLeft = true; + location.X = (screen.Left + screen.Width) - Size.Width; + } + if (location.Y + Size.Height > (screen.Top + screen.Height)) + { + _resizableTop = true; + location.Y -= Size.Height + area.Height; + } + location = control.PointToClient(location); + Show(control, location, ToolStripDropDownDirection.BelowRight); + } + + private void SetOwnerItem(Control control) + { + if (control == null) + { + return; + } + if (control is Popup) + { + Popup popupControl = control as Popup; + _ownerPopup = popupControl; + _ownerPopup._childPopup = this; + OwnerItem = popupControl.Items[0]; + return; + } + if (_opener == null) + { + _opener = control; + } + if (control.Parent != null) + { + SetOwnerItem(control.Parent); + } + } + + /// + /// Raises the event. + /// + /// An that contains the event data. + protected override void OnSizeChanged(EventArgs e) + { + if (Content != null) + { + Content.MinimumSize = Size; + Content.MaximumSize = Size; + Content.Size = Size; + Content.Location = Point.Empty; + } + base.OnSizeChanged(e); + } + + /// + /// Raises the event. + /// + /// A that contains the event data. + protected override void OnLayout(LayoutEventArgs e) + { + if (!NativeMethods.IsRunningOnMono) + { + base.OnLayout(e); + return; + } + Size suggestedSize = GetPreferredSize(Size.Empty); + if (AutoSize && suggestedSize != Size) + { + Size = suggestedSize; + } + SetDisplayedItems(); + OnLayoutCompleted(EventArgs.Empty); + Invalidate(); + } + + /// + /// Raises the event. + /// + /// A that contains the event data. + protected override void OnOpening(CancelEventArgs e) + { + if (Content.IsDisposed || Content.Disposing) + { + e.Cancel = true; + return; + } + UpdateRegion(); + base.OnOpening(e); + } + + /// + /// Raises the event. + /// + /// An that contains the event data. + protected override void OnOpened(EventArgs e) + { + if (_ownerPopup != null) + { + _ownerPopup._isChildPopupOpened = true; + } + if (FocusOnOpen) + { + Content.Focus(); + } + base.OnOpened(e); + } + + /// + /// Raises the event. + /// + /// A that contains the event data. + protected override void OnClosed(ToolStripDropDownClosedEventArgs e) + { + _opener = null; + if (_ownerPopup != null) + { + _ownerPopup._isChildPopupOpened = false; + } + base.OnClosed(e); + } + + #endregion + + #region " Resizing Support " + + /// + /// Processes Windows messages. + /// + /// The Windows to process. + [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] + protected override void WndProc(ref Message m) + { + //if (m.Msg == NativeMethods.WM_PRINT && !Visible) + //{ + // Visible = true; + //} + if (InternalProcessResizing(ref m, false)) + { + return; + } + base.WndProc(ref m); + } + + /// + /// Processes the resizing messages. + /// + /// The message. + /// true, if the WndProc method from the base class shouldn't be invoked. + [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] + public bool ProcessResizing(ref Message m) + { + return InternalProcessResizing(ref m, true); + } + + [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] + private bool InternalProcessResizing(ref Message m, bool contentControl) + { + if (m.Msg == NativeMethods.WM_NCACTIVATE && m.WParam != IntPtr.Zero && _childPopup != null && _childPopup.Visible) + { + _childPopup.Hide(); + } + if (!Resizable && !NonInteractive) + { + return false; + } + if (m.Msg == NativeMethods.WM_NCHITTEST) + { + return OnNcHitTest(ref m, contentControl); + } + if (m.Msg == NativeMethods.WM_GETMINMAXINFO) + { + return OnGetMinMaxInfo(ref m); + } + return false; + } + + [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] + private bool OnGetMinMaxInfo(ref Message m) + { + NativeMethods.MINMAXINFO minmax = (NativeMethods.MINMAXINFO)Marshal.PtrToStructure(m.LParam, typeof(NativeMethods.MINMAXINFO)); + if (!MaximumSize.IsEmpty) + { + minmax.maxTrackSize = MaximumSize; + } + minmax.minTrackSize = MinimumSize; + Marshal.StructureToPtr(minmax, m.LParam, false); + return true; + } + + private bool OnNcHitTest(ref Message m, bool contentControl) + { + if (NonInteractive) + { + m.Result = (IntPtr)NativeMethods.HTTRANSPARENT; + return true; + } + + int x = Cursor.Position.X; // NativeMethods.LOWORD(m.LParam); + int y = Cursor.Position.Y; // NativeMethods.HIWORD(m.LParam); + Point clientLocation = PointToClient(new Point(x, y)); + + GripBounds gripBouns = new GripBounds(contentControl ? Content.ClientRectangle : ClientRectangle); + IntPtr transparent = new IntPtr(NativeMethods.HTTRANSPARENT); + + if (_resizableTop) + { + if (_resizableLeft && gripBouns.TopLeft.Contains(clientLocation)) + { + m.Result = contentControl ? transparent : (IntPtr)NativeMethods.HTTOPLEFT; + return true; + } + if (!_resizableLeft && gripBouns.TopRight.Contains(clientLocation)) + { + m.Result = contentControl ? transparent : (IntPtr)NativeMethods.HTTOPRIGHT; + return true; + } + if (gripBouns.Top.Contains(clientLocation)) + { + m.Result = contentControl ? transparent : (IntPtr)NativeMethods.HTTOP; + return true; + } + } + else + { + if (_resizableLeft && gripBouns.BottomLeft.Contains(clientLocation)) + { + m.Result = contentControl ? transparent : (IntPtr)NativeMethods.HTBOTTOMLEFT; + return true; + } + if (!_resizableLeft && gripBouns.BottomRight.Contains(clientLocation)) + { + m.Result = contentControl ? transparent : (IntPtr)NativeMethods.HTBOTTOMRIGHT; + return true; + } + if (gripBouns.Bottom.Contains(clientLocation)) + { + m.Result = contentControl ? transparent : (IntPtr)NativeMethods.HTBOTTOM; + return true; + } + } + if (_resizableLeft && gripBouns.Left.Contains(clientLocation)) + { + m.Result = contentControl ? transparent : (IntPtr)NativeMethods.HTLEFT; + return true; + } + if (!_resizableLeft && gripBouns.Right.Contains(clientLocation)) + { + m.Result = contentControl ? transparent : (IntPtr)NativeMethods.HTRIGHT; + return true; + } + return false; + } + + private VisualStyleRenderer _sizeGripRenderer; + /// + /// Paints the sizing grip. + /// + /// The instance containing the event data. + public void PaintSizeGrip(PaintEventArgs e) + { + if (e == null || !_resizable) + { + return; + } + Size clientSize = Content.ClientSize; + using (Bitmap gripImage = new Bitmap(0x10, 0x10)) + { + using (Graphics g = Graphics.FromImage(gripImage)) + { + if (Application.RenderWithVisualStyles) + { + if (_sizeGripRenderer == null) + { + _sizeGripRenderer = new VisualStyleRenderer(VisualStyleElement.Status.Gripper.Normal); + } + _sizeGripRenderer.DrawBackground(g, new Rectangle(0, 0, 0x10, 0x10)); + } + else + { + ControlPaint.DrawSizeGrip(g, Content.BackColor, 0, 0, 0x10, 0x10); + } + } + GraphicsState gs = e.Graphics.Save(); + e.Graphics.ResetTransform(); + if (_resizableTop) + { + if (_resizableLeft) + { + e.Graphics.RotateTransform(180); + e.Graphics.TranslateTransform(-clientSize.Width, -clientSize.Height); + } + else + { + e.Graphics.ScaleTransform(1, -1); + e.Graphics.TranslateTransform(0, -clientSize.Height); + } + } + else if (_resizableLeft) + { + e.Graphics.ScaleTransform(-1, 1); + e.Graphics.TranslateTransform(-clientSize.Width, 0); + } + e.Graphics.DrawImage(gripImage, clientSize.Width - 0x10, clientSize.Height - 0x10 + 1, 0x10, 0x10); + e.Graphics.Restore(gs); + } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/PopupControl/PopupAnimations.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/PopupControl/PopupAnimations.cs new file mode 100644 index 00000000..da85214f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/PopupControl/PopupAnimations.cs @@ -0,0 +1,70 @@ +#region License LGPL 3 +// Copyright © Łukasz Świątkowski 2007–2010. +// http://www.lukesw.net/ +// +// This library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library. If not, see . +#endregion + +using System; + +namespace HydroDesktop.Plugins.DataDownload.LayerInformation.PopupControl +{ + /// + /// Types of animation of the pop-up window. + /// + [Flags] + public enum PopupAnimations + { + /// + /// Uses no animation. + /// + None = 0, + /// + /// Animates the window from left to right. This flag can be used with roll or slide animation. + /// + LeftToRight = 0x00001, + /// + /// Animates the window from right to left. This flag can be used with roll or slide animation. + /// + RightToLeft = 0x00002, + /// + /// Animates the window from top to bottom. This flag can be used with roll or slide animation. + /// + TopToBottom = 0x00004, + /// + /// Animates the window from bottom to top. This flag can be used with roll or slide animation. + /// + BottomToTop = 0x00008, + /// + /// Makes the window appear to collapse inward if it is hiding or expand outward if the window is showing. + /// + Center = 0x00010, + /// + /// Uses a slide animation. + /// + Slide = 0x40000, + /// + /// Uses a fade effect. + /// + Blend = 0x80000, + /// + /// Uses a roll animation. + /// + Roll = 0x100000, + /// + /// Uses a default animation. + /// + SystemDefault = 0x200000, + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/SearchLayerInformer.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/SearchLayerInformer.cs new file mode 100644 index 00000000..c3f9a260 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/SearchLayerInformer.cs @@ -0,0 +1,204 @@ +using System; +using System.Diagnostics; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Symbology; +using HydroDesktop.Plugins.DataDownload.LayerInformation.PopupControl; +using HydroDesktop.Plugins.DataDownload.SearchLayersProcessing; + +namespace HydroDesktop.Plugins.DataDownload.LayerInformation +{ + /// + /// Provides access to services in search layer + /// + class SearchLayerInformer + { + #region Fields + + private readonly IServiceInfoExtractor _serviceInfoExtractor; + private readonly Map _map; + private readonly Popup toolTip; + private readonly CustomToolTipControl customToolTip; + private readonly DataDownloadPlugin _parentPlugin; + + #endregion + + #region Constructors + + /// + /// Create instance of + /// + /// DataDownload plugin + /// Instance of IServiceInfoExtractor + /// Map + /// serviceInfoExtractor must be not null. + public SearchLayerInformer(DataDownloadPlugin parentPlugin, IServiceInfoExtractor serviceInfoExtractor, Map map) + { + if (parentPlugin == null) throw new ArgumentNullException("parentPlugin"); + if (serviceInfoExtractor == null) throw new ArgumentNullException("serviceInfoExtractor"); + if (map == null) throw new ArgumentNullException("map"); + + _parentPlugin = parentPlugin; + _serviceInfoExtractor = serviceInfoExtractor; + _map = map; + + toolTip = new Popup(customToolTip = new CustomToolTipControl(_parentPlugin)); + customToolTip.Popup = toolTip; + toolTip.AutoClose = false; + toolTip.FocusOnOpen = false; + toolTip.ShowingAnimation = toolTip.HidingAnimation = PopupAnimations.Blend; + toolTip.TopLevel = false; + + _parentPlugin.ShowPopupsChanged += OnParentPluginOnShowPopupsChanged; + _map.MouseMove += _map_MouseMove; + _map.VisibleChanged += MapOnVisibleChanged; + var parent = _map.Parent; + while (parent != null) + { + parent.VisibleChanged += MapOnVisibleChanged; + var form = parent as Form; + if (form != null) + { + toolTip.Parent = form; + } + parent = parent.Parent; + } + Debug.Assert(toolTip.Parent != null); + } + + #endregion + + #region Public methods + + /// + /// Deactivate SearchLayerInformer + /// + public void Deactivate() + { + _map.MouseMove -= _map_MouseMove; + _map.VisibleChanged -= MapOnVisibleChanged; + var parent = _map.Parent; + while (parent != null) + { + parent.VisibleChanged -= MapOnVisibleChanged; + parent = parent.Parent; + } + _parentPlugin.ShowPopupsChanged -= OnParentPluginOnShowPopupsChanged; + } + + #endregion + + #region Private methods + + private void OnParentPluginOnShowPopupsChanged(object sender, EventArgs e) + { + if (!_parentPlugin.ShowPopups) + { + HideToolTip(); + } + } + + private void MapOnVisibleChanged(object sender, EventArgs eventArgs) + { + var control = sender as Control; + if (control != null && (!control.Visible)) + { + HideToolTip(); + } + } + + void _map_MouseMove(object sender, MouseEventArgs e) + { + if (!_parentPlugin.ShowPopups) + { + return; + } + + var visibleLayers = _map.GetAllLayers().OfType() + .Where(layer => layer.IsVisible && SearchLayerModifier.IsSearchLayer(layer)) + .ToList(); + if (visibleLayers.Count == 0) + { + HideToolTip(); + return; + } + + var rtol = new Rectangle(e.X - 8, e.Y -8, 0x10, 0x10); + var tolerant = _map.PixelToProj(rtol); + + var pInfos = visibleLayers.Select(layer => Identify(layer, tolerant)) + .Where(pInfo => !pInfo.IsEmpty).ToList(); + + if (pInfos.Count == 0) + { + HideToolTip(); + return; + } + + // If already visible same tooltip, not show again + var control = (CustomToolTipControl) toolTip.Content; + if (toolTip.Visible && control.IsInfoAlreadySetted(pInfos)) + return; + + HideToolTip(); + control.SetInfo(pInfos); + + Point adjustedLocation = adjustPopupLocation(e.Location); + toolTip.Show(_map, toolTip.Parent.PointToClient(adjustedLocation)); + } + + //Method used to adjust the location of the tooltip popup in case it goes outside of the map window. + private Point adjustPopupLocation(Point start) + { + int tempX = start.X; + int tempY = start.Y; + + //If popup goes over right edge of map pull it to the left. + if (toolTip.Width + start.X > _map.Right) + { + tempX = tempX - ((toolTip.Width + start.X) - _map.Right); + } + //If popup goes below the edge of the map, make it appear above the cursor. + if (toolTip.Height + start.Y > _map.Bottom) + { + tempY = tempY - toolTip.Height; + } + + Point adjustedPoint = new Point(tempX, tempY); + return adjustedPoint; + } + + private void HideToolTip() + { + toolTip.Close(); + } + + private ServiceInfoGroup Identify(IFeatureLayer layer, Extent tolerant) + { + Debug.Assert(layer != null); + + var group = new ServiceInfoGroup(); + foreach (var feature in layer.DataSet.Select(tolerant)) + { + if (feature.DataRow == null) + { + feature.ParentFeatureSet.FillAttributes(); + } + var pInfo = ClassConvertor.IFeatureToServiceInfo(feature, layer); + var serviceDescription = _serviceInfoExtractor.GetServiceDesciptionUrl(pInfo.ServiceUrl); + if (serviceDescription != null) + { + pInfo.ServiceDesciptionUrl = serviceDescription; + } + group.AddOverlappedServiceInfo(pInfo); + } + + return group; + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/ServiceInfo.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/ServiceInfo.cs new file mode 100644 index 00000000..798dff63 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/ServiceInfo.cs @@ -0,0 +1,261 @@ +using System; +using DotSpatial.Data; +using DotSpatial.Symbology; +using HydroDesktop.Common; + +namespace HydroDesktop.Plugins.DataDownload.LayerInformation +{ + /// + /// Class with information about service on the map + /// + public class ServiceInfo : ObservableObject + { + #region Fields + + private const string unknown = "Unknown"; + private static readonly ServiceInfo Unknown = new ServiceInfo(); + + #endregion + + #region Constructors + + /// + /// Default constructor of + /// + public ServiceInfo() + { + DataSource = unknown; + SiteName = unknown; + ValueCount = null; + ServiceDesciptionUrl = unknown; + VarCode = unknown; + } + + #endregion + + #region Properties + + private string _dataSource; + + /// + /// DataSource, not null. + /// + public string DataSource + { + get { return _dataSource; } + set + { + if (value == null) throw new ArgumentNullException("value"); + + _dataSource = value; + NotifyPropertyChanged(() => DataSource); + } + } + + private string _siteName; + + /// + /// SiteName, not null. + /// + public string SiteName + { + get { return _siteName; } + set + { + if (value == null) throw new ArgumentNullException("value"); + + _siteName = value; + NotifyPropertyChanged(() => SiteName); + } + } + + private int? _valueCount; + + /// + /// ValueCount + /// + public int? ValueCount + { + get { return _valueCount; } + set + { + _valueCount = value; + NotifyPropertyChanged(() => ValueCount); + NotifyPropertyChanged(() => ValueCountAsString); + } + } + + private string _serviceDesciptionUrl; + + /// + /// ServiceDesciptionUrl, not null. + /// + public string ServiceDesciptionUrl + { + get { return _serviceDesciptionUrl; } + set + { + if (value == null) throw new ArgumentNullException("value"); + + _serviceDesciptionUrl = value; + NotifyPropertyChanged(() => ServiceDesciptionUrl); + } + } + + /// + /// ValueCount as string + /// + public string ValueCountAsString + { + get { return ValueCount.HasValue ? string.Format("{0} Values", ValueCount) : unknown; } + } + + /// + /// Shows that at least one property has not default value + /// + public bool IsEmpty + { + get { return Equals(Unknown); } + } + + /// + /// Site code. + /// + public string SiteCode { get; set; } + + private string _varCode; + /// + /// Variable code, not null. + /// + public string VarCode + { + get { return _varCode; } + set + { + if (value == null) throw new ArgumentNullException("value"); + _varCode = value; + } + } + + public string ServiceUrl { get; set; } + + public DateTime StartDate { get; set; } + + public DateTime EndDate { get; set; } + + public string VarName { get; set; } + public string DataType { get; set; } + + public double Latitude { get; set; } + + public double Longitude { get; set; } + + private IFeatureLayer _layer; + public IFeatureLayer Layer + { + get { return _layer; } + set + { + _layer = value; + UodateIsDownloaded(); + } + } + + private IFeature _sourceFeature; + public IFeature SourceFeature + { + get { return _sourceFeature; } + set + { + _sourceFeature = value; + UodateIsDownloaded(); + } + } + + private bool _isDownloaded; + public bool IsDownloaded + { + get { return _isDownloaded; } + set + { + _isDownloaded = value; + NotifyPropertyChanged(() => IsDownloaded); + } + } + + private void UodateIsDownloaded() + { + if (Layer == null || SourceFeature == null) + { + IsDownloaded = false; + return; + } + + IsDownloaded = Layer.DataSet.DataTable.Columns.Contains("SeriesID") && + SourceFeature.DataRow["SeriesID"] != DBNull.Value; + } + + #endregion + + #region Public methods + + /// + /// Create deep copy into current instance from source + /// + /// Source to copy + public void Copy(ServiceInfo source) + { + Layer = source.Layer; + SourceFeature = source.SourceFeature; + + DataSource = source.DataSource; + SiteName = source.SiteName; + EndDate = source.EndDate; + Latitude = source.Latitude; + Longitude = source.Longitude; + ServiceUrl = source.ServiceUrl; + SiteCode = source.SiteCode; + StartDate = source.StartDate; + VarCode = source.VarCode; + VarName = source.VarName; + DataType = source.DataType; + ValueCount = source.ValueCount; + ServiceDesciptionUrl = source.ServiceDesciptionUrl; + } + + /// + /// Determines whether the specified is equal to the current . + /// + /// + /// true if the specified is equal to the current ; otherwise, false. + /// + /// The to compare with the current . 2 + public override bool Equals(object obj) + { + var pi = obj as ServiceInfo; + if (pi == null) return false; + + return pi.DataSource == DataSource && + pi.SiteName == SiteName && + pi.ValueCount == ValueCount && + pi.ServiceDesciptionUrl == ServiceDesciptionUrl && + pi.VarCode == VarCode; + } + + /// + /// Serves as a hash function for a particular type. + /// + /// + /// A hash code for the current . + /// + /// 2 + public override int GetHashCode() + { + return DataSource.GetHashCode() ^ SiteName.GetHashCode() ^ + (ValueCount != null ? ValueCount.GetHashCode() : 0) ^ ServiceDesciptionUrl.GetHashCode() ^ + VarCode.GetHashCode(); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/ServiceInfoGroup.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/ServiceInfoGroup.cs new file mode 100644 index 00000000..c4379f3c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/LayerInformation/ServiceInfoGroup.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace HydroDesktop.Plugins.DataDownload.LayerInformation +{ + public class ServiceInfoGroup + { + private readonly HashSet _data = new HashSet(); + + public void AddOverlappedServiceInfo(ServiceInfo serviceInfo) + { + if (serviceInfo == null) throw new ArgumentNullException("serviceInfo"); + + if (_data.Contains(serviceInfo)) return; + + if (_data.Count == 0) + { + _data.Add(serviceInfo); + return; + } + + var first = _data.First(); + if (IsOverlapped(first, serviceInfo)) + _data.Add(serviceInfo); + } + + public static bool IsOverlapped(ServiceInfo first, ServiceInfo second) + { + if (first == null) throw new ArgumentNullException("first"); + if (second == null) throw new ArgumentNullException("second"); + + return first.SiteCode == second.SiteCode && + first.VarCode != second.VarCode; + } + + public IEnumerable GetItems() + { + return _data.AsEnumerable(); + } + + public int ItemsCount + { + get { return _data.Count; } + } + + public bool IsEmpty + { + get + { + return _data.Count == 0 || + _data.All(el => el.IsEmpty); + } + } + + /// + /// Determines whether the specified is equal to the current . + /// + /// + /// true if the specified is equal to the current ; otherwise, false. + /// + /// The to compare with the current . 2 + public override bool Equals(object obj) + { + var pi = obj as ServiceInfoGroup; + if (pi == null) return false; + + if (pi._data.Count != _data.Count) return false; + + return pi._data.Select(el => _data.FirstOrDefault(item => item.Equals(el))).All(find => find != null); + } + + /// + /// Serves as a hash function for a particular type. + /// + /// + /// A hash code for the current . + /// + /// 2 + public override int GetHashCode() + { + return (_data != null ? _data.GetHashCode() : 0); + } + + public static ServiceInfoGroup Create(IEnumerable potentialOverlappedPoints) + { + if (potentialOverlappedPoints == null) throw new ArgumentNullException("potentialOverlappedPoints"); + + var result = new ServiceInfoGroup(); + foreach (var point in potentialOverlappedPoints) + result.AddOverlappedServiceInfo(point); + + return result; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/MessageStrings.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/MessageStrings.Designer.cs new file mode 100644 index 00000000..1b9afcf8 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/MessageStrings.Designer.cs @@ -0,0 +1,333 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.DataDownload { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class MessageStrings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal MessageStrings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.DataDownload.MessageStrings", typeof(MessageStrings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Deselect All. + /// + internal static string Deselect { + get { + return ResourceManager.GetString("Deselect", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Download. + /// + internal static string Download { + get { + return ResourceManager.GetString("Download", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Download Selected. + /// + internal static string Download_Selected { + get { + return ResourceManager.GetString("Download_Selected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Download tool. + /// + internal static string Download_Tools_Group { + get { + return ResourceManager.GetString("Download_Tools_Group", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Download Settings. + /// + internal static string DownloadSettings { + get { + return ResourceManager.GetString("DownloadSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Click to download all selected series. + /// + internal static string DownloadTooTip { + get { + return ResourceManager.GetString("DownloadTooTip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Identify. + /// + internal static string Identify { + get { + return ResourceManager.GetString("Identify", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Map Tool. + /// + internal static string Map_Tools_Group { + get { + return ResourceManager.GetString("Map_Tools_Group", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Metadata. + /// + internal static string Metadata { + get { + return ResourceManager.GetString("Metadata", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Pan. + /// + internal static string Pan { + get { + return ResourceManager.GetString("Pan", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search Results. + /// + internal static string Results { + get { + return ResourceManager.GetString("Results", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search. + /// + internal static string Search { + get { + return ResourceManager.GetString("Search", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search Results tool. + /// + internal static string Search_Results_Tools_Group { + get { + return ResourceManager.GetString("Search_Results_Tools_Group", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select. + /// + internal static string Select { + get { + return ResourceManager.GetString("Select", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show Popups. + /// + internal static string ShowPopups { + get { + return ResourceManager.GetString("ShowPopups", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Update. + /// + internal static string Update { + get { + return ResourceManager.GetString("Update", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to View. + /// + internal static string View_Group { + get { + return ResourceManager.GetString("View_Group", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom. + /// + internal static string Zoom_Group { + get { + return ResourceManager.GetString("Zoom_Group", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to In. + /// + internal static string Zoom_In { + get { + return ResourceManager.GetString("Zoom_In", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom In. + /// + internal static string Zoom_In_Tooltip { + get { + return ResourceManager.GetString("Zoom_In_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Next. + /// + internal static string Zoom_Next { + get { + return ResourceManager.GetString("Zoom_Next", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom Next. + /// + internal static string Zoom_Next_Tooltip { + get { + return ResourceManager.GetString("Zoom_Next_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Out. + /// + internal static string Zoom_Out { + get { + return ResourceManager.GetString("Zoom_Out", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom Out. + /// + internal static string Zoom_Out_Tooltip { + get { + return ResourceManager.GetString("Zoom_Out_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Previous. + /// + internal static string Zoom_Previous { + get { + return ResourceManager.GetString("Zoom_Previous", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom Previous. + /// + internal static string Zoom_Previous_Tooltip { + get { + return ResourceManager.GetString("Zoom_Previous_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to To Extents. + /// + internal static string Zoom_To_Extents { + get { + return ResourceManager.GetString("Zoom_To_Extents", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom to Extents. + /// + internal static string Zoom_To_Extents_Tooltip { + get { + return ResourceManager.GetString("Zoom_To_Extents_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom To Layer. + /// + internal static string Zoom_To_Layer { + get { + return ResourceManager.GetString("Zoom_To_Layer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom To Selection. + /// + internal static string Zoom_To_Selection { + get { + return ResourceManager.GetString("Zoom_To_Selection", resourceCulture); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/MessageStrings.resx b/Source/Plugins/HydroDesktop.Plugins.DataDownload/MessageStrings.resx new file mode 100644 index 00000000..9ee225de --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/MessageStrings.resx @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Deselect All + + + Download + + + Download Settings + + + Click to download all selected series + + + Download Selected + + + Download tool + + + Identify + + + Map Tool + + + Metadata + + + Pan + + + Search Results + + + Search + + + Search Results tool + + + Select + + + Show Popups + + + Update + + + View + + + Zoom + + + In + + + Zoom In + + + Next + + + Zoom Next + + + Out + + + Zoom Out + + + Previous + + + Zoom Previous + + + To Extents + + + Zoom to Extents + + + Zoom To Layer + + + Zoom To Selection + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/DownloadOptionsDialog.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/DownloadOptionsDialog.Designer.cs new file mode 100644 index 00000000..b78f07c8 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/DownloadOptionsDialog.Designer.cs @@ -0,0 +1,138 @@ +using HydroDesktop.Plugins.DataDownload.Properties; +namespace HydroDesktop.Plugins.DataDownload.Options +{ + partial class DownloadOptionsDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DownloadOptionsDialog)); + this.btnOk = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.btnCancel = new System.Windows.Forms.Button(); + this.chbGetAllValuesInOneRequest = new System.Windows.Forms.CheckBox(); + this.chbUseSingleThread = new System.Windows.Forms.CheckBox(); + this.nudNumberOfValues = new System.Windows.Forms.NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)(this.nudNumberOfValues)).BeginInit(); + this.SuspendLayout(); + // + // btnOk + // + this.btnOk.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOk.Location = new System.Drawing.Point(179, 60); + this.btnOk.Name = "btnOk"; + this.btnOk.Size = new System.Drawing.Size(75, 23); + this.btnOk.TabIndex = 99; + this.btnOk.Text = "OK"; + this.btnOk.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 13); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(149, 13); + this.label1.TabIndex = 4; + this.label1.Text = "Number of values per request:"; + // + // btnCancel + // + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(263, 60); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 100; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // chbGetAllValuesInOneRequest + // + this.chbGetAllValuesInOneRequest.AutoSize = true; + this.chbGetAllValuesInOneRequest.Location = new System.Drawing.Point(12, 66); + this.chbGetAllValuesInOneRequest.Name = "chbGetAllValuesInOneRequest"; + this.chbGetAllValuesInOneRequest.Size = new System.Drawing.Size(160, 17); + this.chbGetAllValuesInOneRequest.TabIndex = 2; + this.chbGetAllValuesInOneRequest.Text = "Get all values in one request"; + this.chbGetAllValuesInOneRequest.UseVisualStyleBackColor = true; + this.chbGetAllValuesInOneRequest.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // chbUseSingleThread + // + this.chbUseSingleThread.AutoSize = true; + this.chbUseSingleThread.Location = new System.Drawing.Point(12, 43); + this.chbUseSingleThread.Name = "chbUseSingleThread"; + this.chbUseSingleThread.Size = new System.Drawing.Size(130, 17); + this.chbUseSingleThread.TabIndex = 1; + this.chbUseSingleThread.Text = "Only use single thread"; + this.chbUseSingleThread.UseVisualStyleBackColor = true; + // + // nudNumberOfValues + // + this.nudNumberOfValues.Location = new System.Drawing.Point(179, 10); + this.nudNumberOfValues.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.nudNumberOfValues.Name = "nudNumberOfValues"; + this.nudNumberOfValues.Size = new System.Drawing.Size(159, 20); + this.nudNumberOfValues.TabIndex = 0; + // + // DownloadOptionsDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.InactiveBorder; + this.ClientSize = new System.Drawing.Size(350, 94); + this.Controls.Add(this.nudNumberOfValues); + this.Controls.Add(this.chbUseSingleThread); + this.Controls.Add(this.chbGetAllValuesInOneRequest); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.label1); + this.Controls.Add(this.btnOk); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "DownloadOptionsDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Download Settings"; + ((System.ComponentModel.ISupportInitialize)(this.nudNumberOfValues)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnOk; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.CheckBox chbGetAllValuesInOneRequest; + private System.Windows.Forms.CheckBox chbUseSingleThread; + private System.Windows.Forms.NumericUpDown nudNumberOfValues; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/DownloadOptionsDialog.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/DownloadOptionsDialog.cs new file mode 100644 index 00000000..71301548 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/DownloadOptionsDialog.cs @@ -0,0 +1,48 @@ +using System; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; + +namespace HydroDesktop.Plugins.DataDownload.Options +{ + public partial class DownloadOptionsDialog : Form + { + private readonly DownloadOptions _options; + + public DownloadOptionsDialog(DownloadOptions options) + { + _options = options; + InitializeComponent(); + + nudNumberOfValues.AddBinding(d => d.Value, options, d => d.NumberOfValuesPerRequest); + chbUseSingleThread.AddBinding(d => d.Checked, options, d => d.UseSingleThread); + chbGetAllValuesInOneRequest.AddBinding(d => d.Checked, options, d => d.GetAllValuesInOneRequest); + checkBox1_CheckedChanged(this, EventArgs.Empty); + } + + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + nudNumberOfValues.Enabled = !chbGetAllValuesInOneRequest.Checked; + } + } + + public class DownloadOptions + { + public DownloadOptions() + { + + } + + public DownloadOptions(DownloadOptions source) + { + NumberOfValuesPerRequest = source.NumberOfValuesPerRequest; + UseSingleThread = source.UseSingleThread; + GetAllValuesInOneRequest = source.GetAllValuesInOneRequest; + } + +// ReSharper disable MemberCanBePrivate.Global + public int NumberOfValuesPerRequest { get; set; } + public bool UseSingleThread { get; set; } + public bool GetAllValuesInOneRequest { get; set; } +// ReSharper restore MemberCanBePrivate.Global + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/DownloadOptionsDialog.resx b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/DownloadOptionsDialog.resx new file mode 100644 index 00000000..ef0e0402 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/DownloadOptionsDialog.resx @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA + AAD///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8D////Af///wH///8B////Af///wH///8Bf39//39/f/9/f3//f39//////wH///8B////Af// + /wH///8B////Af///wH///8B////AX9/f/9/f3//////AX9/f//Dw8P/w8PD/39/f/////8Bf39//39/ + f/////8D////Af///wH///8B////AX9/f//Dw8P/w8PD/39/f//Dw8P/w8PD/8PDw//Dw8P/f39//8PD + w//Dw8P/f39//////wH///8B////Af///wF/f3//w8PD/8PDw//Dw8P/5OTk/+Tk5P/k5OT/5OTk/8PD + w//Dw8P/w8PD/39/f/////8B////Af///wH///8B////AX9/f//Dw8P/5OTk/+Tk5P9TU1P/U1NT/+Tk + 5P/k5OT/w8PD/39/f/////8B////Af///wH///8Bf39//39/f//Dw8P/5OTk/+Tk5P9TU1P///////// + //9TU1P/5OTk/+Tk5P/Dw8P/f39//39/f/////8B////AX9/f//Dw8P/w8PD/+Tk5P9TU1P///////// + /////////////1NTU//k5OT/w8PD/8PDw/9/f3//////Af///wF/f3//w8PD/8PDw//k5OT/U1NT//// + //////////////////9TU1P/5OTk/8PDw//Dw8P/f39//////wH///8Bf39//39/f//Dw8P/5OTk/+Tk + 5P9TU1P///////////9TU1P/5OTk/+Tk5P/Dw8P/f39//39/f/////8F////Af///wH///8Bf39//8PD + w//k5OT/5OTk/1NTU/9TU1P/5OTk/+Tk5P/Dw8P/f39//////wH///8B////Af///wH///8Bf39//8PD + w//Dw8P/w8PD/+Tk5P/k5OT/5OTk/+Tk5P/Dw8P/w8PD/8PDw/9/f3//////Af///wH///8B////AX9/ + f//Dw8P/w8PD/39/f//Dw8P/w8PD/8PDw//Dw8P/f39//8PDw//Dw8P/f39//////wH///8B////Af// + /wH///8Bf39//39/f/////8Bf39//8PDw//Dw8P/f39//////wN/f3//f39//////wf///8B////Af// + /wH///8B////Af///wH///8B////AX9/f/9/f3//f39//39/f/////8B////Af///wH///8B////Af// + /wH///8D////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8BAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//w== + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/PopupOptionsDialog.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/PopupOptionsDialog.Designer.cs new file mode 100644 index 00000000..9549fb1b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/PopupOptionsDialog.Designer.cs @@ -0,0 +1,104 @@ +namespace HydroDesktop.Plugins.DataDownload.Options +{ + partial class PopupOptionsDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PopupOptionsDialog)); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.checkBox2 = new System.Windows.Forms.CheckBox(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // checkBox1 + // + this.checkBox1.AutoSize = true; + this.checkBox1.Location = new System.Drawing.Point(35, 18); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(92, 17); + this.checkBox1.TabIndex = 0; + this.checkBox1.Text = "Show Popups"; + this.checkBox1.UseVisualStyleBackColor = true; + // + // checkBox2 + // + this.checkBox2.AutoSize = true; + this.checkBox2.Location = new System.Drawing.Point(127, 18); + this.checkBox2.Name = "checkBox2"; + this.checkBox2.Size = new System.Drawing.Size(87, 17); + this.checkBox2.TabIndex = 1; + this.checkBox2.Text = "Show Labels"; + this.checkBox2.UseVisualStyleBackColor = true; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(35, 55); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(75, 23); + this.button1.TabIndex = 2; + this.button1.Text = "Ok"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(127, 55); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(75, 23); + this.button2.TabIndex = 3; + this.button2.Text = "Cancel"; + this.button2.UseVisualStyleBackColor = true; + // + // PopupOptionsDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.InactiveBorder; + this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.ClientSize = new System.Drawing.Size(236, 90); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Controls.Add(this.checkBox2); + this.Controls.Add(this.checkBox1); + this.Cursor = System.Windows.Forms.Cursors.Default; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "PopupOptionsDialog"; + this.Text = "Popup Settings"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.CheckBox checkBox2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/PopupOptionsDialog.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/PopupOptionsDialog.cs new file mode 100644 index 00000000..c7c0054b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/PopupOptionsDialog.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.DataDownload.Options +{ + public partial class PopupOptionsDialog : Form + { + private bool showPopups; + private bool showLabels; + + public PopupOptionsDialog() + { + InitializeComponent(); + } + + private void button1_Click(object sender, EventArgs e) + { + + if (checkBox1.Checked == true) + { + showPopups = true; + } + if (checkBox2.Checked == true) + { + showLabels = true; + } + + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/PopupOptionsDialog.resx b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/PopupOptionsDialog.resx new file mode 100644 index 00000000..53c01701 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Options/PopupOptionsDialog.resx @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA + AAD///8Bf39/KYCAgNeAgID/gICA339/f1H///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////AYCAgK+AgID/gICA/4CAgP+AgIDP////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wGAgID/gICA/39/fyGAgID/gICA/////wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8BgICA6YCAgP+Z////mf///4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA + gPeAgIC/f39/Yf///wH///8B////AYCAgJOAgID/mf///5n///+Z////gICA/4CAgP+AgID/gICA/4CA + gPmAgID/gICA/4CAgP+BgYG5f39/Ef///wGQkI6fgICA/5n///+Z////mf///5n///+dgmV5taGMobmm + kqu/rZq5u6mYuZaKgMGCgYH3gICA/4CAgKd/f385gICA/4CAgP+T39//mf///5n///+Z////mf///5n/ + //+Z////mf///5n///+Z////k8a9/4B/f/uAgID/gICAj4CAgP+KtLT/mf///5n///+Z////mf///5n/ + //+Z////mf///5n///+Z////mf///5n///+DdGipgICA/4CAgMeAgID/ktvb/5n///+Z////mf///5n/ + //+Z////mf///5n///+Z////mf///5n///+Z////iGVGdYCAgP+AgIDngICA/5Xr6/+Z////mf///5n/ + //+Z////mf///5n///+Z////mf///5n///+Z////mf///4tiPmeAgID3gICAt4CAgP+Q09P/mf///5n/ + //+Z////mf///5n///+Z////mf///5n///+Z////mf///5n///+HbVR/gICA/4CAgIeAgID/hqCg/5n/ + //+Z////mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////gnlywYCAgP9/f38ZgYOC+4CA + gP+MvLz/mf///5n///+Z////mf///5n///+Z////mf///5n///+Z////j8/P/4CAgP+AgID3////AZOR + g9GAgID/gICA/4acnP+Py8v/lOfn/5n///+Z////mf///5Xr6/+Q09P/h6Sk/4CAgP+AgID/f39/ef// + /wG0l4ATkoR1qYCAf/WAgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgH/7f39/af// + /wH///8B////Af///wF/f38Rf39/gYCAgK+AgIDfgICA/4CAgP+AgID/gICA54CAgLd/f3+Bf39/Kf// + /wH///8BAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//w== + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..2980d074 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Properties/AssemblyInfo.cs @@ -0,0 +1,28 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.DataDownload")] +[assembly: AssemblyDescription("HydroDesktop DataDownload Plugin")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CUAHSI")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.DataDownload")] +[assembly: AssemblyCopyright("Copyright © 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("ba758765-ed1a-49ec-b380-a236bcb271c0")] + +[assembly: InternalsVisibleTo("DataDownloadTests")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Properties/Resources.Designer.cs new file mode 100644 index 00000000..804032b9 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Properties/Resources.Designer.cs @@ -0,0 +1,432 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.DataDownload.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.DataDownload.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap deselect_32x32 { + get { + object obj = ResourceManager.GetObject("deselect_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap download_16 { + get { + object obj = ResourceManager.GetObject("download_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap download_32 { + get { + object obj = ResourceManager.GetObject("download_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap download32 { + get { + object obj = ResourceManager.GetObject("download32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap hand_16x16 { + get { + object obj = ResourceManager.GetObject("hand_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap hand_32x32 { + get { + object obj = ResourceManager.GetObject("hand_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap info_rhombus_16x16 { + get { + object obj = ResourceManager.GetObject("info_rhombus_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap info_rhombus_32x32 { + get { + object obj = ResourceManager.GetObject("info_rhombus_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap option_16 { + get { + object obj = ResourceManager.GetObject("option_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap option_32 { + get { + object obj = ResourceManager.GetObject("option_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap popup_16x16 { + get { + object obj = ResourceManager.GetObject("popup_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap popup_32x32 { + get { + object obj = ResourceManager.GetObject("popup_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap refresh_16x16 { + get { + object obj = ResourceManager.GetObject("refresh_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap refresh_32x32 { + get { + object obj = ResourceManager.GetObject("refresh_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap select_16x16 { + get { + object obj = ResourceManager.GetObject("select_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap select_32x32 { + get { + object obj = ResourceManager.GetObject("select_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap settings_16 { + get { + object obj = ResourceManager.GetObject("settings_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon settings_16i { + get { + object obj = ResourceManager.GetObject("settings_16i", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap table_16x16 { + get { + object obj = ResourceManager.GetObject("table_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap table_32x32 { + get { + object obj = ResourceManager.GetObject("table_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223562997]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]]. + /// + internal static string Wgs84ProjectionString { + get { + return ResourceManager.GetString("Wgs84ProjectionString", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_16x16 { + get { + object obj = ResourceManager.GetObject("zoom_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_32x32 { + get { + object obj = ResourceManager.GetObject("zoom_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_extend_16x16 { + get { + object obj = ResourceManager.GetObject("zoom_extend_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_extend_32x32 { + get { + object obj = ResourceManager.GetObject("zoom_extend_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_in_16x16 { + get { + object obj = ResourceManager.GetObject("zoom_in_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_in_32x32 { + get { + object obj = ResourceManager.GetObject("zoom_in_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_layer_16x16 { + get { + object obj = ResourceManager.GetObject("zoom_layer_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_layer_32x32 { + get { + object obj = ResourceManager.GetObject("zoom_layer_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_out_16x16 { + get { + object obj = ResourceManager.GetObject("zoom_out_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_out_32x32 { + get { + object obj = ResourceManager.GetObject("zoom_out_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_selection_16x16 { + get { + object obj = ResourceManager.GetObject("zoom_selection_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_selection_32x32 { + get { + object obj = ResourceManager.GetObject("zoom_selection_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_to_next { + get { + object obj = ResourceManager.GetObject("zoom_to_next", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_to_next_16 { + get { + object obj = ResourceManager.GetObject("zoom_to_next_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_to_previous { + get { + object obj = ResourceManager.GetObject("zoom_to_previous", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_to_previous_16 { + get { + object obj = ResourceManager.GetObject("zoom_to_previous_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Properties/Resources.resx new file mode 100644 index 00000000..40e1be1f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Properties/Resources.resx @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\download32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\download_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\download_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\hand_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\hand_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_extend_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_extend_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_in_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_in_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_layer_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_layer_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_out_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_out_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_selection_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_selection_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_to_next.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_to_next_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_to_previous.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_to_previous_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\deselect_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\info_rhombus_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\info_rhombus_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\select_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\select_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\popup_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\popup_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\refresh_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\refresh_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\option_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\option_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\table_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\table_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223562997]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]] + + + ..\Resources\settings_16i.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\settings_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Properties/Settings.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Properties/Settings.Designer.cs new file mode 100644 index 00000000..abb33763 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Properties/Settings.Designer.cs @@ -0,0 +1,50 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.DataDownload.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.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; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("WebServices.xml")] + public string WebServicesFileName { + get { + return ((string)(this["WebServicesFileName"])); + } + set { + this["WebServicesFileName"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("120")] + public int WebServiceListUpdateInMinutes { + get { + return ((int)(this["WebServiceListUpdateInMinutes"])); + } + set { + this["WebServiceListUpdateInMinutes"] = value; + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Properties/Settings.settings b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Properties/Settings.settings new file mode 100644 index 00000000..149ef42b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Properties/Settings.settings @@ -0,0 +1,12 @@ + + + + + + WebServices.xml + + + 120 + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/deselect_32x32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/deselect_32x32.png new file mode 100644 index 00000000..85cfb7be Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/deselect_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/download_16.ico b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/download_16.ico new file mode 100644 index 00000000..a0e1a81d Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/download_16.ico differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/download_16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/download_16.png new file mode 100644 index 00000000..13241695 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/download_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/download_32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/download_32.png new file mode 100644 index 00000000..9170c1d9 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/download_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/hand_16x16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/hand_16x16.png new file mode 100644 index 00000000..dc79299d Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/hand_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/hand_32x32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/hand_32x32.png new file mode 100644 index 00000000..d431afaa Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/hand_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/info_rhombus_16x16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/info_rhombus_16x16.png new file mode 100644 index 00000000..54f80751 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/info_rhombus_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/info_rhombus_32x32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/info_rhombus_32x32.png new file mode 100644 index 00000000..036733e7 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/info_rhombus_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/option_16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/option_16.png new file mode 100644 index 00000000..24900609 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/option_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/option_32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/option_32.png new file mode 100644 index 00000000..7013d5a4 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/option_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/popup_16x16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/popup_16x16.png new file mode 100644 index 00000000..f54dcc25 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/popup_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/popup_32x32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/popup_32x32.png new file mode 100644 index 00000000..2bf73dc9 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/popup_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/refresh_16x16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/refresh_16x16.png new file mode 100644 index 00000000..8b33030d Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/refresh_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/refresh_32x32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/refresh_32x32.png new file mode 100644 index 00000000..c2bdec8c Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/refresh_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/select_16x16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/select_16x16.png new file mode 100644 index 00000000..14207269 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/select_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/select_32x32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/select_32x32.png new file mode 100644 index 00000000..a8c5583a Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/select_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/settings_16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/settings_16.png new file mode 100644 index 00000000..afc166c9 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/settings_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/settings_16i.ico b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/settings_16i.ico new file mode 100644 index 00000000..bed6c0e1 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/settings_16i.ico differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/table_16x16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/table_16x16.png new file mode 100644 index 00000000..8a7c0436 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/table_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/table_32x32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/table_32x32.png new file mode 100644 index 00000000..0d1e11a8 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/table_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_16x16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_16x16.png new file mode 100644 index 00000000..3280a45d Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_32x32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_32x32.png new file mode 100644 index 00000000..47d2c7e4 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_extend_16x16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_extend_16x16.png new file mode 100644 index 00000000..f3d17536 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_extend_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_extend_32x32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_extend_32x32.png new file mode 100644 index 00000000..1c684094 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_extend_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_in_16x16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_in_16x16.png new file mode 100644 index 00000000..73924a77 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_in_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_in_32x32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_in_32x32.png new file mode 100644 index 00000000..922c8ef9 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_in_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_layer_16x16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_layer_16x16.png new file mode 100644 index 00000000..7ed636d3 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_layer_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_layer_32x32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_layer_32x32.png new file mode 100644 index 00000000..95bce65f Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_layer_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_out_16x16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_out_16x16.png new file mode 100644 index 00000000..ab862b79 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_out_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_out_32x32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_out_32x32.png new file mode 100644 index 00000000..afca3029 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_out_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_selection_16x16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_selection_16x16.png new file mode 100644 index 00000000..7097ccfd Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_selection_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_selection_32x32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_selection_32x32.png new file mode 100644 index 00000000..0d4f1919 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_selection_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_to_next.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_to_next.png new file mode 100644 index 00000000..485fb339 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_to_next.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_to_next_16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_to_next_16.png new file mode 100644 index 00000000..1bb9a35d Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_to_next_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_to_previous.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_to_previous.png new file mode 100644 index 00000000..c20c4868 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_to_previous.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_to_previous_16.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_to_previous_16.png new file mode 100644 index 00000000..0f527924 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/Resources/zoom_to_previous_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/SearchLayersProcessing/SearchLayerModifier.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/SearchLayersProcessing/SearchLayerModifier.cs new file mode 100644 index 00000000..fb7a3ca4 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/SearchLayersProcessing/SearchLayerModifier.cs @@ -0,0 +1,371 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Diagnostics; +using System.Diagnostics.Contracts; +using System.Drawing; +using System.Linq; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Symbology; +using HydroDesktop.Common.Tools; +using HydroDesktop.Plugins.DataDownload.Downloading; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.Interfaces.PluginContracts; +using HydroDesktop.WebServices; + +namespace HydroDesktop.Plugins.DataDownload.SearchLayersProcessing +{ + /// + /// Class contains methods for modifying "search layer" + /// + class SearchLayerModifier + { + #region Fields + + private readonly FeatureLayer _layer; + private readonly Map _map; + private readonly DataDownloadPlugin _downloadPlugin; + + private static readonly string[] _searchColumns = new[] + { + "SiteCode", "VarCode", "ServiceCode", "ServiceURL", "StartDate", + "EndDate", "ValueCount" + }; + + #endregion + + #region Constructors + + private SearchLayerModifier(FeatureLayer layer, Map map, DataDownloadPlugin downloadPlugin) + { + if (layer == null) throw new ArgumentNullException("layer"); + if (map == null) throw new ArgumentNullException("map"); + if (downloadPlugin == null) throw new ArgumentNullException("downloadPlugin"); + Contract.EndContractBlock(); + + _layer = layer; + _map = map; + _downloadPlugin = downloadPlugin; + } + + #endregion + + #region Public methods + + public static SearchLayerModifier Create(ILayer layer, Map map, DataDownloadPlugin downloadPlugin) + { + if (!IsSearchLayer(layer)) return null; + return new SearchLayerModifier((FeatureLayer)layer, map, downloadPlugin); + } + + /// + /// Check layer for search attributes + /// + /// Layer to check + /// True - layer is search layer, otherwise - false. + /// layer must be not null. + /// If layer is search layer, it can be casted at least to IFeatureLayer + public static bool IsSearchLayer(ILayer layer) + { + if (layer == null) throw new ArgumentNullException("layer"); + + var featureLayer = layer as PointLayer; + if (featureLayer == null) return false; + + var layerColumns = featureLayer.DataSet.GetColumns(); + + return + _searchColumns.Select(sColumn => layerColumns.Any(dataColumn => dataColumn.ColumnName == sColumn)).All( + hasColumn => hasColumn); + } + + public static bool LayerHaveDownlodedData(IFeatureLayer layer) + { + if (layer == null) throw new ArgumentNullException("layer"); + Contract.EndContractBlock(); + + if (!IsSearchLayer(layer)) return false; + + return layer.DataSet.DataTable.Columns.Contains("SeriesID") && + layer.DataSet.Features.Any(f => f.DataRow["SeriesID"] != DBNull.Value); + } + + public void UpdateContextMenu() + { + var searchLayer = _layer; + var dataGroupMenu = searchLayer.ContextMenuItems.FirstOrDefault(item => item.Name == "Data"); + if (dataGroupMenu == null) + return; + + if (LayerHaveDownlodedData(searchLayer)) + { + var exportPlugin = _downloadPlugin.App.Extensions.OfType().FirstOrDefault(); + if (exportPlugin != null) + { + dataGroupMenu.AddMenuItem("Export Time Series Data", delegate { exportPlugin.Export(searchLayer); }); + } + dataGroupMenu.AddMenuItem("Update Values from Server", + delegate { _downloadPlugin.StartDownloading(searchLayer); }); + } + } + + public void UpdateDataTable(IFeatureSet downloadedFeatureSet, DownloadManager downloadManager) + { + var searchLayer = _layer; + + // Add all columns from downloadedFeatureSet, which not exists in searchLayer + foreach (DataColumn column in downloadedFeatureSet.DataTable.Columns) + { + if (!searchLayer.DataSet.DataTable.Columns.Contains(column.ColumnName)) + { + var copy = new DataColumn(column.ColumnName, column.DataType); + searchLayer.DataSet.DataTable.Columns.Add(copy); + } + } + + // Update values in search layer to corresponding from downloaded features + foreach (var dInfo in downloadManager.GetSavedData()) + { + var seriesToProcess = new List(); + // Find all series with different Method/QualityControlLevel + foreach (var series in dInfo.ResultSeries) + { + if (!seriesToProcess.Exists(s => s.Site.Code == series.Site.Code && + s.Variable.Code == series.Variable.Code && + s.Method.Description == series.Method.Description && + s.QualityControlLevel.Definition == series.QualityControlLevel.Definition)) + { + seriesToProcess.Add(series); + } + } + + var searchFeature = dInfo.SourceFeature; + Series firstSeries; + if (searchFeature.DataRow["Method"] != DBNull.Value && + searchFeature.DataRow["QCLevel"] != DBNull.Value) + { + firstSeries = seriesToProcess.First(s => + (string)searchFeature.DataRow["SiteCode"] == s.Site.Code && + ((string)searchFeature.DataRow["VarCode"]).StartsWith(s.Variable.Code) && + (string)searchFeature.DataRow["DataType"] == s.Variable.DataType); + } + else + firstSeries = seriesToProcess.First(); + seriesToProcess.Remove(firstSeries); + + UpdateFeatureFromFeature(searchFeature, downloadedFeatureSet, firstSeries); + + // Additional series... + foreach (var series in seriesToProcess) + { + var sFeature = searchLayer.DataSet.Features.FirstOrDefault( + feature => + (string)feature.DataRow["SiteCode"] == series.Site.Code && + (string)feature.DataRow["VarCode"] == series.Variable.Code && + (string)feature.DataRow["VarName"] == series.Variable.Name && + (string)feature.DataRow["DataType"] == series.Variable.DataType && + feature.DataRow["Method"] != DBNull.Value && (string)feature.DataRow["Method"] == series.Method.Description && + feature.DataRow["QCLevel"] != DBNull.Value && (string)feature.DataRow["QCLevel"] == series.QualityControlLevel.Definition + ); + // If no such feature in Search shapeFile, then add it... + if (sFeature == null) + { + sFeature = searchFeature.Copy(); + searchLayer.DataSet.Features.Add(sFeature); + } + + UpdateFeatureFromFeature(sFeature, downloadedFeatureSet, series); + } + } + + // Save update data into file + if (!string.IsNullOrEmpty(searchLayer.DataSet.Filename)) + { + searchLayer.DataSet.Save(); + } + } + + public void UpdateSymbolizing() + { + var layer = _layer; + if (layer.DataSet.NumRows() > 0 && + layer.DataSet.GetColumn("ServiceCode") != null) + { + // assume that layer has same data source in all rows + var servCode = layer.DataSet.GetFeature(0).DataRow["ServiceCode"].ToString(); + var symb = CreateSymbology(servCode, layer.DataSet); + + if (layer.DataSet.FeatureLookup.Count > 0 && + layer.DataSet.FeatureLookup.Count != layer.DataSet.Features.Count) + { + // todo: Sometimes it's true. I don't know why, need additional investigation (Maxim). + layer.DataSet.FeatureLookup.Clear(); + // If not clear FeatureLookup, then exception raised in next line + } + + layer.Symbology = symb; + } + } + + public void UpdateLabeling() + { + const string attributeName = "SiteName"; + + var symb = new LabelSymbolizer + { + FontColor = Color.Black, + FontSize = 8, + FontFamily = "Arial Unicode MS", + PreventCollisions = true, + HaloEnabled = true, + HaloColor = Color.White, + Orientation = ContentAlignment.MiddleRight, + OffsetX = 0.0f, + OffsetY = 0.0f, + }; + + _map.AddLabels(_layer, string.Format("[{0}]", attributeName), + string.Format("[ValueCount] > {0}", 10), + symb, "Category Default"); + _layer.ShowLabels = false; + + } + + #endregion + + #region Private methods + + private void UpdateFeatureFromFeature(IFeature searchFeature, IFeatureSet featureSet, Series series) + { + // Find downloaded feature + var downloadedFeature = featureSet.Features.FirstOrDefault(feature => + (string)feature.DataRow["SiteCode"] == series.Site.Code && + (string)feature.DataRow["VarCode"] == series.Variable.Code && + (string)feature.DataRow["VarName"] == series.Variable.Name && + (string)feature.DataRow["DataType"] == series.Variable.DataType && + feature.DataRow["Method"] == DBNull.Value? string.IsNullOrEmpty(series.Method.Description) : + (feature.DataRow["Method"].ToString() == series.Method.Description) && + (string)feature.DataRow["QCLevel"] == series.QualityControlLevel.Definition); + if (downloadedFeature == null) return; + + // updating... + foreach (DataColumn column in featureSet.DataTable.Columns) + { + // Do not update ServiceURL + if (column.ColumnName == "ServiceURL") continue; + + searchFeature.DataRow[column.ColumnName] = downloadedFeature.DataRow[column.ColumnName]; + } + } + + private IPointScheme CreateSymbology(string servCode, IFeatureSet featureSet) + { + Debug.Assert(featureSet != null); + + var scheme = new PointScheme(); + scheme.ClearCategories(); + + var settings = scheme.EditorSettings; + settings.ClassificationType = ClassificationType.Custom; + settings.IntervalMethod = IntervalMethod.Manual; + + const string valueField = "ValueCount"; + // Find min/max value in valueField + var minValue = int.MaxValue; + var maxValue = int.MinValue; + foreach (DataRow row in featureSet.DataTable.Rows) + { + int value; + try + { + value = Convert.ToInt32(row[valueField]); + } + catch + { + value = 0; + } + if (value < minValue) + minValue = value; + if (value > maxValue) + maxValue = value; + } + if (minValue == int.MaxValue || minValue <= 0) minValue = 1; + if (maxValue < minValue) maxValue = minValue + 1; + + // Calculate number of categories + int categoriesCount; + var length = maxValue - minValue; + if (length < 50) + categoriesCount = 1; + else if (length < 100) + categoriesCount = 2; + else + categoriesCount = 3; + + var categorieStep = (maxValue - minValue) / categoriesCount + 1; // value step in filter + const int imageStep = 5; + var imageSize = 5; + + var image = ServiceIconHelper.Instance.GetImageForService(servCode); + + const string seriesID = "SeriesID"; + var needDownloadedCategories = featureSet.DataTable.Columns.Contains(seriesID); + + for (int i = 0; i < categoriesCount; i++) + { + var min = minValue - 1; + var max = minValue + categorieStep; + if (max > maxValue) + max = maxValue; + minValue = max + 1; + + imageSize += imageStep; + + var baseFilter = string.Format("[{0}] > {1} and [{0}] <= {2}", valueField, min, max); + + var filterEx = needDownloadedCategories + ? baseFilter + string.Format(" AND ([{0}] is null)", seriesID) + : baseFilter; + + var legendText = string.Format("({0} - {1}]", min, max); + var mySymbolizer = new PointSymbolizer(image, imageSize); + var myCategory = new PointCategory(mySymbolizer) + { + FilterExpression = filterEx, + LegendText = legendText, + SelectionSymbolizer = new PointSymbolizer(image, imageSize + 2) + }; + + myCategory.SelectionSymbolizer.SetFillColor(Color.FromArgb(180, 255, 20)); + myCategory.SelectionSymbolizer.SetOutline(Color.Yellow, 3); + scheme.AddCategory(myCategory); + + // add category for downloaded + if (needDownloadedCategories) + { + mySymbolizer = new PointSymbolizer(image, imageSize); + mySymbolizer.SetOutline(Color.Green, 3); + + filterEx = string.Format("{0} AND not([{1}] is null)", baseFilter, seriesID); + legendText = myCategory.LegendText + " (downloaded)"; + var categoryForDownload = new PointCategory(mySymbolizer) + { + FilterExpression = filterEx, + LegendText = legendText, + SelectionSymbolizer = new PointSymbolizer(image, imageSize + 2) + }; + categoryForDownload.SelectionSymbolizer.SetFillColor(Color.FromArgb(180, 255, 20)); + categoryForDownload.SelectionSymbolizer.SetOutline(Color.Yellow, 3); + scheme.AddCategory(categoryForDownload); + } + } + scheme.AppearsInLegend = true; + scheme.LegendText = "Number of Observations"; + + return scheme; + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/SearchLayersProcessing/ThemeManager.cs b/Source/Plugins/HydroDesktop.Plugins.DataDownload/SearchLayersProcessing/ThemeManager.cs new file mode 100644 index 00000000..cb7ea382 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/SearchLayersProcessing/ThemeManager.cs @@ -0,0 +1,191 @@ +using System; +using System.Data; +using System.Globalization; +using System.IO; +using DotSpatial.Data; +using DotSpatial.Projections; +using DotSpatial.Topology; +using HydroDesktop.Configuration; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Plugins.DataDownload.SearchLayersProcessing +{ + /// + /// The ThemeManager is responsible for reading themes + /// from the database and converting them to feature sets which + /// can be displayed in the map. It also keeps track of added or + /// deleted themes and notifies other HydroDesktop plug-ins to refresh + /// their view when a theme is created, modified or deleted + /// + public class ThemeManager + { + #region Variables + + private readonly ProjectionInfo _wgs84Projection; + + #endregion + + #region Constructors + + /// + /// Creates a new ThemeManager + /// + public ThemeManager() + { + _wgs84Projection = ProjectionInfo.FromEsriString(Properties.Resources.Wgs84ProjectionString); + } + + #endregion + + /// + /// Given a theme, create a feature set. + /// The theme already needs to have been saved in + /// the database and the themeID needs to be a + /// valid ID + /// + /// + /// + private IFeatureSet GetFeatureSet(int themeID) + { + DataTable themeTable = LoadThemeAsTable(themeID); + return TableToFeatureSet(themeTable); + } + + /// + /// Given a theme name, create a feature set. + /// The theme already needs to be present in the + /// database. + /// + /// + /// The theme in the 'WGS84' projection + /// Throws when such theme not found in the database + public IFeatureSet GetFeatureSet(string themeName) + { + var themeId = RepositoryFactory.Instance.Get().GetID(themeName); + if (themeId == null) + { + throw new ArgumentException("Theme not found in the database."); + } + + return GetFeatureSet(themeId.Value); + } + + + private DataTable LoadThemeAsTable(int themeID) + { + var table = RepositoryFactory.Instance.Get().GetThemesTableForThemeManager(themeID); + + //to get the 'ServiceCode' + foreach (DataRow row in table.Rows) + { + string sCode = Convert.ToString(row["SiteCode"]); + if (sCode.StartsWith("NWIS")) + { + sCode = Convert.ToString(row["VarCode"]); + row["DataSource"] = "USGS"; + } + else if (sCode.StartsWith("EPA")) + { + row["DataSource"] = "EPA"; + } + else if (sCode.StartsWith("NCDC")) + { + row["DataSource"] = "National Climatic Data Center"; + } + + row["ServiceCode"] = sCode.Contains(":") + ? sCode.Substring(0, sCode.IndexOf(":", StringComparison.Ordinal)) + : sCode; + } + + return table; + } + + private string ConvertTime(DateTime time) + { + return time.ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture); + } + + /// + /// given a data table, create an in-memory point feature set. + /// The feature set must have the 'Latitude' and 'Longitude' numeric + /// columns + /// + /// The table of distinct series + /// The projection of the theme feature set + /// A point FeatureSet in the WGS-84 coordinate system + /// All columns of the data table will be converted to attribute fields + private IFeatureSet TableToFeatureSet(DataTable themeTable, ProjectionInfo projection = null) + { + //index of the Latitude column + int latColIndex = -1; + + //index of the Longitude column + int lonColIndex = -1; + + //get the latitude and longitude column indices + for (int col = 0; col < themeTable.Columns.Count; col++) + { + string colName = themeTable.Columns[col].ColumnName.ToLower(); + + if (colName == "latitude") latColIndex = col; + + if (colName == "longitude") lonColIndex = col; + } + + //check if the latitude column exists + if (latColIndex == -1) throw new ArgumentException("The table doesn't have a column 'Latitude'"); + //check if the longitude column exists + if (lonColIndex == -1) throw new ArgumentException("The table doesn't have a column 'Longitude'"); + + //generate attribute table schema + var fs = new FeatureSet(FeatureType.Point); + var attributeTable = fs.DataTable; + foreach (DataColumn column in themeTable.Columns) + { + attributeTable.Columns.Add(column.DataType == typeof (DateTime) + ? new Field(column.ColumnName, 'C', 16, 0) + : new DataColumn(column.ColumnName, column.DataType)); + } + + //generate features + foreach (DataRow row in themeTable.Rows) + { + var lat = Convert.ToDouble(row[latColIndex]); + var lon = Convert.ToDouble(row[lonColIndex]); + var coord = new Coordinate(lon, lat); + var newFeature = new Feature(FeatureType.Point, new[] { coord }); + fs.Features.Add(newFeature); + + var featureRow = newFeature.DataRow; + for (int c = 0; c < attributeTable.Columns.Count; c++) + { + featureRow[c] = themeTable.Columns[c].DataType == typeof (DateTime) + ? ConvertTime((DateTime) row[c]) + : row[c]; + } + } + + //to save the feature set to a file with unique name + var uniqueID = DateTime.Now.ToString("yyyyMMdd_hhmmss", CultureInfo.InvariantCulture); + var rnd = new Random(); + uniqueID += rnd.Next(100).ToString("000"); + var filename = Path.Combine(Settings.Instance.CurrentProjectDirectory, "theme_" + uniqueID + ".shp"); + fs.Filename = filename; + fs.Projection = _wgs84Projection; + fs.Save(); + fs.Dispose(); + + var fs2 = FeatureSet.OpenFile(filename); + + //to re-project the feature set + if (projection != null) + { + fs2.Reproject(projection); + } + + return fs2; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/app.config b/Source/Plugins/HydroDesktop.Plugins.DataDownload/app.config new file mode 100644 index 00000000..e230f1de --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/app.config @@ -0,0 +1,18 @@ + + + + +
    + + + + + + WebServices.xml + + + 120 + + + + diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/default_web_services.xml b/Source/Plugins/HydroDesktop.Plugins.DataDownload/default_web_services.xml new file mode 100644 index 00000000..6cfd910f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/default_web_services.xml @@ -0,0 +1,1545 @@ + + + + http://river.sdsc.edu/wateroneflow/NWIS/DailyValues.asmx?WSDL + NWIS Daily Values + http://hiscentral.cuahsi.org/pub_network.aspx?n=1 + valentin@sdsc.edu + + USGS + http://www.usgs.gov + USGS National Water Information System + The USGS National Water Information System (NWIS) provides access to millions of sites measuring streamflow, groundwater levels, and water quality. This web service provides methods for retrieving daily values data, such as discharge and water levels, from NWIS. For more information about NWIS, see the NWIS home page at http://waterdata.usgs.gov/nwis + 274762525 + 246 + 29894 + 1 + NWISDV + -176.6633 + -77.52639 + 179.2467 + 71.29403 + + + + http://river.sdsc.edu/wateroneflow/NWIS/Data.asmx?WSDL + NWIS Instantaneous Irregular Data + http://hiscentral.cuahsi.org/pub_network.aspx?n=2 + + + USGS + http://www.usgs.gov + USGS National Water Information System + Developmental service. This service is internal CUAHSI use, and evaluation. +NWIS Instantaneous Irregular Data + 86485762 + 6956 + 375831 + 2 + NWISIID + -176.6525 + -14.26267 + 179.9098 + 71.38737 + + + + http://river.sdsc.edu/wateroneflow/NWIS/UnitValues.asmx?WSDL + NWIS Unit Values + http://hiscentral.cuahsi.org/pub_network.aspx?n=3 + + + USGS + http://waterdata.usgs.gov/nwis + USGS National Water Information System. + The USGS National Water Information System (NWIS) provides access to millions of sites measuring streamflow, groundwater levels, and water quality. This web service provides methods for retrieving Real Time data from NWIS. For more information about NWIS, see the NWIS home page at http://waterdata.usgs.gov/nwis + 80093088 + 128 + 11185 + 3 + NWISUV + -164.1684 + 13.35936 + 144.7057 + 70.48843 + + + + http://river.sdsc.edu/wateroneflow/EPA/cuahsi_1_0.asmx?WSDL + EPA STORET + http://hiscentral.cuahsi.org/pub_network.aspx?n=4 + + + EPA + http://www.epa.gov + Environmental Protection Agency, STORET + + 94349967 + 3032 + 362645 + 4 + EPA + -170.8303 + -14.35924 + 145.8232 + 89.34441 + + + + http://cbe.cae.drexel.edu/CIMS/cuahsi_1_1.asmx?WSDL + Chesapeake Bay Information Management System + http://hiscentral.cuahsi.org/pub_network.aspx?n=5 + michael.piasecki@drexel.edu + 215-895-1721 + Chesapeake Bay Information Management System + http://www.chesapeakebay.net/cims/ + + The Chesapeake Information Management System (CIMS) is an organized, distributed library of information and software tools designed to increase basin-wide public access to Chesapeake Bay information. The Internet sites in CIMS are maintained by CIMS Partners who have enacted Memoranda of Agreement (MOA) to follow certain guidelines for assembling and publishing Chesapeake Bay related information + 5418382 + 80 + 894 + 5 + CIMS + -79.89764 + 36.73611 + -75.451 + 41.76535 + + + + http://river.sdsc.edu/wateroneflow/NWIS/Groundwater.asmx?WSDL + NWIS Ground Water Level + http://hiscentral.cuahsi.org/pub_network.aspx?n=8 + + + USGS + http://waterdata.usgs.gov/nwis + USGS, NWIS + The USGS National Water Information System (NWIS) provides access to millions of sites measuring streamflow, groundwater levels, and water quality. This web service provides methods for retrieving Ground Water data from NWIS. For more information about NWIS, see the NWIS home page at http://waterdata.usgs.gov/nwis + 8325633 + 1 + 827200 + 8 + NWISGW + -171.7361 + -14.33639 + 174.0936 + 68.87263 + + + + http://icewater.usu.edu/MudLake/cuahsi_1_0.asmx?WSDL + Mud Lake, Idaho, USA + http://hiscentral.cuahsi.org/pub_network.aspx?n=12 + jeff.horsburgh@usu.edu + 435-797-2946 + Utah Water Research Laboratory, Utah State University + http://uwrl.usu.edu + Horsburgh, J. S., D. K. Stevens, N. O. Mesner, and C. Allen (2009), Data collected in Mud Lake at the Bear Lake National Wildlife Refuge, Idaho, USA, Utah State University. + Utah State University is working together with the U.S. Fish and Wildlife Service and the State of Idaho Department of Environmental Quality to collect continuous water quality monitoring data to investigate the sediment and nutrient budget of Mud Lake within the Bear Lake National Wildlife Refuge, Idaho. + 1593271 + 34 + 12 + 12 + MudLake + -111.3417 + 42.12035 + -111.2884 + 42.25035 + + + + http://river.sdsc.edu/sdrfp2_ws/cuahsi_1_0.asmx?WSDL + San Diego River Park Foundation + http://hiscentral.cuahsi.org/pub_network.aspx?n=13 + twhitenack@sdsc.edu + 909-794-2758 + San Diego River Park Foundation + http://www.sandiegoriver.org/ + San Diego River Park Foundation, 2008 + For thousands of years, the San Diego River has provided life to our community. While it is known as "California's First River," in recent years the River has been neglected and largely ignored. The River Park Foundation is endeavoring to bring people together to work for a healthy river, to protect significant natural and cultural resources, and to celebrate the River with a river-long park system. + +Through volunteer programs, outreach activities and specific projects, thousands of people are coming together to make a difference. + 2424 + 8 + 18 + 13 + SDRPF + -117.2037 + 32.76131 + -116.9734 + 32.84707 + + + + http://his03.geol.umt.edu/COTCsnow/cuahsi_1_0.asmx?WSDL + Crown of the Continent Observatory Snow + http://hiscentral.cuahsi.org/pub_network.aspx?n=14 + + + Crown of the Continent Observatory (Montana State University) + + + + 56601 + 10 + 2 + 14 + COTCsnow + -113.753 + 48.62614 + -113.753 + 48.62614 + + + + http://ees-his06.ad.ufl.edu/santafe-flstoret/cuahsi_1_0.asmx?WSDL + Santa Fe, STORET + http://hiscentral.cuahsi.org/pub_network.aspx?n=20 + katmckee@ufl.edu + (352) 392-5893 + Florida Dept of Environmental Protection + http://www.dep.state.fl.us/water/storet/index.htm + + Only Nitrite_Nitrate, Nitrate and TP are in this network, received from FDEP in custom data request. + +Data is said to be more up to date and complete from FDEP storet than from USEPA storet. + + + 4572 + 8 + 47 + 20 + SFe_Storet + -82.86028 + 29.84611 + -82.21972 + 29.99806 + + + + http://ees-his06.ad.ufl.edu/SantaFe-MICROWAVECITRA/cuahsi_1_0.asmx?WSDL + Santa Fe MICROWAVECITRA + http://hiscentral.cuahsi.org/pub_network.aspx?n=21 + katmckee@ufl.edu + 352-392-5893 + UF Agric and Biol Engineering; Dr. Jasmeet Judge + http://www.agen.ufl.edu/contact/directory/detail_person.php?id=23 + + The datasets have been collected as part of two projects, NASA-NIP-00050655 and NSF-EAR-0337277 (co-PI Wendy Graham, Jennifer Jacobs, and Jim Jones). Both the CRWR and UF NSF hydrology projects benefit from such data exchanges. + +We have conducted 6 experiments - MicroWEX-1 through MicroWEX-6, three for corn and three for cotton seasons. The datasets provide detailed water and energy balance measurements along with concurrent remote sensing (microwave) signatures of the growing vegetation. The soil and vegetation sampling protocols that were followed ensure that the datasets can be used for interdisciplinary studies, by hydrologists, agronomists and agricultural engineers, and remote sensing scientists. +The detailed experimental reports are available online at http://edis.ifas.ufl.edu/AE360. This link is for the MicroWEX-2 and contains embedded links to take you to other reports. The two most recent reports are yet to be linked, but are available at +http://edis.ifas.ufl.edu/AE407 and http://edis.ifas.ufl.edu/AE409. + +Based upon what you had said in your email and my meeting with Wendy, you need a sample data to help you showcase the conceptual model for the HIS project in time for your meeting on Sept 12. It does not matter for the HIS project which season/crop we provide you with. If that is true, I would suggest that we provide you with datasets for corn seasons. Is one season of corn enough or would you like more than one season? + +My reason for choosing corn even though Fei was involved in the cotton experiment (MicroWEX-6) is because the datasets from corn have been processed thoroughly (we are still analyzing the microwave brightness observations and will not be able to provide those) during our model development. The cotton datasets haven't been looked at as closely as I would have hoped and I am uncomfortable showcasing something that has not gone through rigorous quality check. Quality checking will take significant time and we will not be able to meet the Sept 12 deadline. +ALL data storage are completely standardized and Fei knows the structure well, so I don't forsee any problems with using corn for your HIS project. + +I would also like to inform Fei that all the MicroWEX data are intellectual property of the Center for Remote Sensing/University of Florida and are not be used without permission of the project PIs. + +Jasmeet Judge, +October 10, 2007 + 109558 + 4 + 1 + 21 + SFe_MICROWAVECITRA + -82.17762 + 29.40967 + -82.17762 + 29.40967 + + + + http://cbe.cae.drexel.edu/NADP/cuahsi_1_1.asmx?WSDL + National Atmospheric Deposition Program + http://hiscentral.cuahsi.org/pub_network.aspx?n=24 + michael.ppiasecki@drexel.edu + 215-895-1721 + National Atmospheric Deposition Program + http://nadp.sws.uiuc.edu/ + + The National Atmospheric Deposition Program/National Trends Network (NADP/NTN) is a nationwide network of precipitation monitoring sites. The network is a cooperative effort between many different groups, including the State Agricultural Experiment Stations, U.S. Geological Survey, U.S. Department of Agriculture, and numerous other governmental and private entities. The NADP/NTN has grown from 22 stations at the end of 1978, our first year, to over 250 sites spanning the continental United States, Alaska, and Puerto Rico, and the Virgin Islands. The purpose of the network is to collect data on the chemistry of precipitation for monitoring of geographical and temporal long-term trends. The precipitation at each station is collected weekly according to strict clean-handling procedures. It is then sent to the Central Analytical Laboratory where it is analyzed for hydrogen (acidity as pH), sulfate, nitrate, ammonium, chloride, and base cations (such as calcium, magnesium, potassium and sodium). + + 1713885 + 13 + 19 + 24 + NADP + -80.5579 + 37.1652 + -75.1529 + 42.228 + + + + http://ees-his06.ad.ufl.edu/SantaFe-SRGWL/cuahsi_1_0.asmx?WSDL + Santa Fe Ground Water Level SRWMD + http://hiscentral.cuahsi.org/pub_network.aspx?n=25 + katmckee@ufl.edu + (352) 392-5893 + Suwannee River Water Management District + http://www.srwmd.state.fl.us/index.asp?NID=108 + 2007. Suwannee River Water Management District Groundwater Levels. + Groundwater level (GWL) records are available for 1,089 wells. The majority of +these wells are only measured during record high or record low periods and 396 +wells are inactive. One hundred and eighty-one (181) wells are measured monthly in +the GWL network; of these, 77 have continuous recorders (Figure 8). + +Groundwater levels are stored in the District’s GWL database. + +In feet above NGVD29 + 499359 + 2 + 1089 + 25 + SFe-SRGWL + -84.05655 + 29.02692 + -82.04565 + 30.65575 + + + + http://ees-his06.ad.ufl.edu/SantaFe-GWLUSGS/cuahsi_1_0.asmx?WSDL + Santa Fe - USGS Groundwater Data Florida + http://hiscentral.cuahsi.org/pub_network.aspx?n=26 + katmckee@ufl.edu + (352) 392-5893 + USGS Groundwater Data Florida + http://waterdata.usgs.gov/fl/nwis/gw + + I downloaded groundwater levels - above NGVD29 - for these counties from the USGS groundwater website: +1. Alachua +2. Baker +3. Bradford +4. Citrus +5. Clay +6. Colombia +7. Dixie +8. Duval +9. Gilchrist +10. Hamilton +11. Hernando +12. Jefferson +13. Lafayette +14. Lake +15. Levy +16. Madison +17. Marion +18. Putnam +19. Sumter +20. Suwannee +21. Taylor +22. Union + + 480054 + 1 + 190 + 26 + SFe_GWL_USGS + -83.96877 + 28.37917 + -81.49703 + 30.65131 + + + + http://cbe.cae.drexel.edu/SRBHOS/cuahsi_1_1.asmx?WSDL + Susquehanna River Basin Hydrologic Observatory + http://hiscentral.cuahsi.org/pub_network.aspx?n=30 + michael.piasecki@drexel.edu + 215-895-1721 + Susquehanna River Basin Hydrologic Observatory Sys + http://www.srbhos.org + + Following the guidelines laid out in the Neuse River Prototype, the proposed structure of the proposed observatory has two basic elements: + +1) The SRB hydrologic Observing System is formed as a network of testbeds covering the major physiographic regions of the SRB and designed to make nested observations of water, energy and mass. +2) Cross-cutting science themes will link and synthesize observations across the watershed network and allow a more holistic hydrologic understanding and predictive capability at all scales relevant to the river basin. + + + 2182460 + 33 + 5 + 30 + SRBHOS + -77.90734 + 40.06486 + -77.51886 + 40.66582 + + + + http://his.crwr.utexas.edu/SabineBio/cuahsi_1_0.asmx?WSDL + Texas Instream Flow, Lower Sabine + http://hiscentral.cuahsi.org/pub_network.aspx?n=50 + ehersh@mail.utexas.edu + 512-228-1321 + Texas Instream Flow Program + http://www.twdb.state.tx.us/instreamflows/ + Sabine River Authority of Texas, TCEQ, TPWD, and TWDB. (2007). Baseline Fish Collections: Lower Sabine River Priority Instream Flow Study. TWDB Contract No. 0604830567. + Priority instream flow studies under the Texas Instream Flow Program (TIFP) were selected +based on potential or planned water development projects, water rights permitting issues, and +other factors. A study on the lower Sabine River was prioritized1 based on the potential for +water transfers within the Sabine Basin, proposed inter-basin water transfer projects, and +Federal Energy Regulatory Commission hydropower relicensing of the Toledo Bend Dam. +The Lower Sabine River Priority Instream Flow Study was initiated in September 2004 with the +Reconnaissance and Information Evaluation2 phase – the first step of a study under the TIFP. +The purpose of the Reconnaissance and Information Evaluation phase, according to the TIFP +Technical Overview, is to compile, review, and geo-reference available studies and data, +identify historic and current conditions, identify significant issues and concerns, and conduct +preliminary field surveys and analysis. During reconnaissance, the Sabine River Authority of +Texas (SRA-TX) compiled a bibliography of information related to the Sabine River from the +Toledo Bend Dam to the mouth of the Sabine River at the north end of Sabine Lake. +Biological data compiled during reconnaissance included benthic macro-invertebrate and fish +data sets from rapid bio-assessments of many of the main tributary streams of the Sabine River +in Texas through a basin-wide effort that began in 1993 to characterize the biological community +of the priority subwatersheds of the Sabine River Basin. Biological data has also been collected +from the main stem of the river for specific studies but not as a basin-wide effort. Most main +stem biological data is from a benthic macro-invertebrate monitoring contract with a local +industry from 1989-1992 and from some Texas Commission on Environmental Quality (TCEQ) +fish collection work near Anacoco Bayou in 2003. +An analysis of the bibliography compiled during reconnaissance revealed a lack of recent +biological data for the main stem of the lower Sabine River. In order to have a more complete +biological set, a study under Texas Water Development Board (TWDB) Contract No. +0604830567 between the TWDB and the SRA-TX was funded by a TWDB Research and +Planning Fund Research Grant. +Collections and habitat assessments were made at eight sites beginning May 2006 through +September 2006 by staff from Texas Parks and Wildlife Department, TCEQ, TWDB, and SRATX. +The magnitude of the effect of Hurricane Rita and the drought of early spring 2006 on the +diversity and population of species collected has not yet been assessed. Additional sampling is +proposed to mitigate any seasonal or equipment bias as well as to further assess the effects of +the hurricane and the drought. + 3670 + 192 + 171 + 50 + TIFP_LowerSabine + -93.79528 + 30.14717 + -93.51886 + 31.06658 + + + + http://his.crwr.utexas.edu/SanAntonioBio/cuahsi_1_0.asmx?WSDL + Texas Instream Flow, Lower San Antonio + http://hiscentral.cuahsi.org/pub_network.aspx?n=51 + ehersh@mail.utexas.edu + 512-228-1321 + Texas Instream Flow Program + http://www.twdb.state.tx.us/instreamflows/ + San Antonio River Authority. (2006). Lower San Antonio River Watershed Instream Flows Study: Biological Collection Summary Report. TWDB Contract No. 2005-483-562. + Because of greater demands for fresh water by growing communities like San Antonio, the Texas Legislature has directed Texas Parks and Wildlife Department (TPWD), Texas Commission on Environmental Quality (TCEQ), and Texas Water Development Board (TWDB), in cooperation with other appropriate governmental agencies such as the San Antonio River Authority (SARA), to conduct an instream flow data collection effort. This instream flow collection effort will help determine appropriate flow and habitat conditions necessary to support a sound ecological environment for resident fish species and will help to gain a better understanding of the fish assemblage dynamics within the Lower San Antonio River (SAR) watershed. The Lower SAR watershed was selected as a priority study reach based on the potential for significant reuse of water and the uncertainty of future water development strategies. Methodologies for determining appropriate flow conditions necessary to support a sound ecological environment will also be studied. +SARA field personnel have assisted the State of Texas Agency Staff with reconnaissance, sample site selection, biological and habitat sampling as well as data collection efforts throughout the Lower SAR and Lower Cibolo Creek watersheds. Evaluation of the fish community, flow measurements and habitat assessments were conducted at five sites on the Lower SAR (Loop 1604 in Bexar County, Floresville City Park in Wilson County, Conquista Crossing in Karnes County, SH 72 in Karnes County, and Riverdale Rd. in Goliad County) and three sites on the Lower Cibolo Creek (FM 539 in Wilson County, FM 537 in Wilson County and FM 389 in Karnes County). Data collected from these sampling efforts will provide much needed habitat and baseline data of the fish community composition within the lower SAR watershed. Collection methods included boat and backpack electrofishing as well as seining efforts in as many habitat types as possible. Individual biological collection efforts were segregated by habitat types from which the samples were collected. Photographs and global positioning system coordinates were recorded from the mid-point of each habitat type. Measurements were made of the average habitat depth, dominant substrate, and current velocity within each habitat type. +Data collected from this effort will help to characterize current instream flow conditions within the Lower SAR watershed and will help to make future flow management recommendations needed to sustain the resident biological community and ensure an adequate water supply for the future needs of all communities within the Lower SAR watershed. The instream flow methodologies that result from this effort will influence the approach that SARA will undertake in the future concerning water related endeavors. + 3131 + 112 + 162 + 51 + TIFP_LowerSanAntonio + -98.35342 + 28.67102 + -97.5397 + 29.32763 + + + + http://icewater.usu.edu/littlebearriver/cuahsi_1_0.asmx?WSDL + Little Bear River Experimental Watershed, Northern Utah, USA + http://hiscentral.cuahsi.org/pub_network.aspx?n=52 + jeff.horsburgh@usu.edu + 435-797-2946 + Utah Water Research Laboratory, Utah State University + http://littlebearriver.usu.edu + Horsburgh, J. S., D. K. Stevens, D. G. Tarboton, N. O. Mesner, A. Spackman Jones, and S. Gurrero (2009) Monitoring data collected within the Little Bear River Experimental Watershed, Utah, USA, Utah State University. + Utah State University is conducting continuous monitoring within the Little Bear River watershed of northern Utah, USA to investiage the use of surrogate measures such as turbidity in creating high frequency load estimates for constituents that cannot be measured continuously. + 15032258 + 122 + 14 + 52 + LittleBearRiver + -111.9464 + 41.49541 + -111.7993 + 41.71847 + + + + http://his08.iihr.uiowa.edu/tippingbucket/cuahsi_1_0.asmx?WSDL + IIHR Tipping Bucket + http://hiscentral.cuahsi.org/pub_network.aspx?n=63 + nicholasjarnold@gmail.com + + IIHR - The University of Iowa + http://www.iihr.uiowa.edu + + + 2028953 + 1 + 20 + 63 + IIHRTippingB + -91.93102 + 41.53532 + -91.4167 + 41.82426 + + + + http://his08.iihr.uiowa.edu/water_quality/cuahsi_1_0.asmx?WSDL + IIHR Water Quality + http://hiscentral.cuahsi.org/pub_network.aspx?n=65 + nicholas-arnold@uiowa.edu + + IIHR - The University of Iowa + http://www.iihr.uiowa.edu + + + 1389717 + 14 + 8 + 65 + IIHRWQ + -91.931 + 41.65823 + -91.54103 + 41.736 + + + + http://his09.umbc.edu/BaltGW/cuahsi_1_0.asmx?WSDL + Baltimore Waters Test Bed Ground Water Level Data + http://hiscentral.cuahsi.org/pub_network.aspx?n=68 + mcguire1@umbc.edu + 410-455-1765 + Baltimore Waters Test Bed + http://www.umbc.edu/cuere/BaltimoreWTB + + + 561677 + 2 + 7 + 68 + BaltimoreGW + -76.79023 + 39.23548 + -76.6815 + 39.46188 + + + + http://his09.umbc.edu/BESOD/cuahsi_1_0.asmx?WSDL + Baltimore Ecosystem Study Stream Chemistry Data + http://hiscentral.cuahsi.org/pub_network.aspx?n=70 + mcguire1@umbc.edu + 410-455-1765 + Baltimore Ecosystem Study + http://beslter.org + + + 21486 + 6 + 11 + 70 + BESOD + -76.81722 + 39.27083 + -76.61639 + 39.48028 + + + + http://his09.umbc.edu/BESSoil/cuahsi_1_0.asmx?WSDL + Baltimore Ecosystem Study Soils Data + http://hiscentral.cuahsi.org/pub_network.aspx?n=71 + mcguire1@umbc.edu + 410-455-1765 + Baltimore Ecosystem Study + http://beslter.org + + + 140490 + 3 + 19 + 71 + BESSoil + -76.82363 + 39.23514 + -76.68404 + 39.48686 + + + + http://ees-his06.ad.ufl.edu/SFe_CTDSondes/cuahsi_1_0.asmx?WSDL + Santa Fe Basin, Florida CTD Sondes + http://hiscentral.cuahsi.org/pub_network.aspx?n=75 + katmckee@ufl.edu + (352) 392-5893 + Univ of Florida Water Institute + http://waterinstitute.ufl.edu/research/projects/project64889.html + Graham, W.G., Martin, J.B., Cohen, M.J., Slatton, K.C., Delfino, J.. 2008. CTD Sonde Dataset from Design and demonstration of a distributed sensor array for predicting water flow and nitrate flux in the Santa Fe basin. NSF-Funded project, University of Florida Water Institute, Gainesville, FL. + + Data is collected monthly from CTD Sondes in surface Streams throughout the Santa Fe basin (HUC= 03110206). CTD indicates the instrument is measuring Conductivity (all instruments are measuring Specific Conductivity: units are microSiemens/cm ),Temperature (degrees C). Depth is not reported. The CTDs are in sealed housings. The units are Van Essen CTD-Divers - the web page for the product is: http://www.vanessen.com/en/products/ctd-diver/default.php. + 1866415 + 16 + 18 + 75 + SFe_CTDSondes + -82.92778 + 0 + 0 + 29.99806 + + + + http://ees-his06.ad.ufl.edu/SantaFe-RainDlySRWMD/cuahsi_1_0.asmx?WSDL + Santa Fe Basin, Florida Daily Rain Tipping Bucket + http://hiscentral.cuahsi.org/pub_network.aspx?n=76 + katmckee@ufl.edu + 352-392-5893 + Suwannee River Water Management District + http://www.srwmd.state.fl.us/index.asp?NID=99 + + Daily data - the instruments are tipping bucket raingages, model TB3, manufactured by Hydrological Services PTY LTD. The bucket tips with every 0.01” of precipitation. + 46974 + 1 + 19 + 76 + SantaFe-RainDlySRWMD + -82.8679 + 29.74135 + -82.04983 + 30.21551 + + + + http://ees-his06.ad.ufl.edu/SFe_SWFGWL/cuahsi_1_0.asmx?WSDL + Santa Fe, Southwest Florida Water Management District + http://hiscentral.cuahsi.org/pub_network.aspx?n=77 + katmckee@ufl.edu + 352-392-5893 + Southwest Florida Water Management District + http://www.swfwmd.state.fl.us/data/ + + + 328854 + 1 + 118 + 77 + SFe_SWFGWL + -82.72314 + 28.32872 + -81.82363 + 29.43791 + + + + http://cbe.cae.drexel.edu/MPE/cuahsi_1_1.asmx?WSDL + Multi-sensor Precipitation Estimates + http://hiscentral.cuahsi.org/pub_network.aspx?n=84 + michael.piasecki@drexel.edu + + NOAA National Weather Service Advanced Hydrologic Prediction Service + http://water.weather.gov/download.php + + The precipitation data are quality-controlled, multi-sensor (radar and rain gauge) precipitation estimates obtained from National Weather Service (NWS) River Forecast Centers (RFCs). The original data are in XMRG format and projected in the Hydrologic Rainfall Analysis Project (HRAP) grid coordinate system, a polar stereographic projection true at 60°N / 105°W. Our software reads each participating RFC's XMRG file and grabs the 24-hour precipitation estimate for each HRAP grid cell. + 5010626 + 1 + 9308 + 84 + MPE + -80.479 + 37.0917 + -74.61 + 42.9789 + + + + http://cbe.cae.drexel.edu/MAST/cuahsi_1_1.asmx?WSDL + MAST + http://hiscentral.cuahsi.org/pub_network.aspx?n=95 + benjamin.cuker@hampton.edu + + Multicultural students At Sea Together (MAST) + http://www.hamptonu.edu/academics/schools/science/marine/mast/ + + Students will explore the Chesapeake Bay while living aboard a 53-foot sailboat. They will study marine science, marine policy, the heritage of African Americans and Native Americans on the water, and learn how to sail the vessel. + 50960 + 8 + 44 + 95 + MAST + -76.42 + 37.05 + -76.03 + 39.14 + + + + http://ees-his06.ad.ufl.edu/Santafe-flstoret/cuahsi_1_0.asmx?WSDL + Storet Phosph and Nitr in Surf water + http://hiscentral.cuahsi.org/pub_network.aspx?n=113 + katmckee@ufl.edu + (352)392-5893 + Florida Dept of Enviro Protection, STORET database + http://storet.dep.state.fl.us/WrmSpa/ + 2007. Florida Dept of Enviro Protection, STORET database. + + 2038 + 6 + 17 + 113 + SFe-FLStoret + -82.86028 + 29.84611 + -82.21972 + 29.99806 + + + + http://his.crwr.utexas.edu/TWDB_Sondes/cuahsi_1_0.asmx?WSDL + TWDB_Sondes + http://hiscentral.cuahsi.org/pub_network.aspx?n=116 + Benslein@gmail.com + + Texas Water Development Board + http://www.twdb.state.tx.us/home/index.asp + + The Datasonde Program is funded by the TWDBs Research and Planning Funds and by the general revenue budget of the Bays and Estuaries Program. Data collection activities are conducted by the Texas Parks and Wildlife Department (TPWD) as part of a partnership with the TWDB to maintain a data collection and analytical study program focused on determining the effects of and needs for freshwater inflows to the state's bays and estuaries. + 548091 + 18 + 220 + 116 + TWDB_Sondes + -97.63944 + 26.05028 + -93.76 + 30.00417 + + + + http://his.crwr.utexas.edu/TWDB_Wind/cuahsi_1_0.asmx?WSDL + TWDB Wind + http://hiscentral.cuahsi.org/pub_network.aspx?n=118 + Benslein@gmail.com + + TWDB + http://www.twdb.state.tx.us/home/index.asp + + Texas Water Development Board wind data from the Texas Coast + 129612 + 6 + 127 + 118 + TWDB_Wind + -97.5 + 26.07333 + -93.71667 + 30.095 + + + + http://Cuahsi.lbl.gov/HIS/cuahsi_1_0.asmx?WSDL + Grasslands Ecological Area of the San Joaquin Basin, California + http://hiscentral.cuahsi.org/pub_network.aspx?n=119 + cpedersen@lbl.gov + (510) 486-4207 + Lawrence Berkeley National Laboratory + http://Cuahsi.lbl.gov/HIS + + + 12878946 + 12 + 48 + 119 + LBL + -120.9422 + 36.95723 + -120.727 + 37.17585 + + + + http://cbe.cae.drexel.edu/HydroNEXRAD/cuahsi_1_1.asmx?WSDL + HydroNEXRAD + http://hiscentral.cuahsi.org/pub_network.aspx?n=120 + mp29@drexel.edu + 215-895-1721 + Hydro_NEXRAD Data Services at the University of Iowa + http://hydro-nexrad.net/hydronexrad_v0.7/index.html + + Hydro-NEXRAD is a prototype system that allows hydrologists to obtain user-specified rainfall data for their research. These data are based on observations collected by the national network of WSR-88D radars, known as NEXRAD. Currently, raingauge observations are not available through this website. Hydro-NEXRAD is developped by researchers from The University of Iowa, Princeton University, UCAR's Unidata Program Center, and the National Climatic Data Center + 2147483647 + 1 + 215359 + 120 + HydroNEXRAD + -80.80833 + 36.425 + -71.59148 + 44.64183 + + + + http://his09.umbc.edu/BaltPrecip/cuahsi_1_1.asmx?WSDL + Baltimore Precipitation + http://hiscentral.cuahsi.org/pub_network.aspx?n=121 + + + + + + + 86706 + 2 + 10 + 121 + BaltPrecip + -76.8115 + 39.25436 + -76.64867 + 39.49658 + + + + http://icewater.boisestate.edu/dcew2dataservices/cuahsi_1_0.asmx?WSDL + Dry Creek Experimental Watershed, SW Idaho + http://hiscentral.cuahsi.org/pub_network.aspx?n=122 + pamaishlin@boisestate.edu + 208-426-2220 + Boise State University, Hydrologic Sciences Department + http://earth.boisestate.edu/jmcnamara/ + Hydrologic Sciences, Dept of Geosciences, Boise State University, Dr. Jim McNamara + Dry Creek Experimental Watershed was established by Dr. Jim McNamara in 1998 as an outdoor laboratory for student and faculty research toward improving understanding of hydrologic processes in semi-arid mountainous terrain to facilitate testing and improving data integration and hydrologic modeling. Continuous and discrete data collection includes climate, surface water, groundwater and soil parameters, both chemical and physical, over a range of spatial and temporal scales. + 4738590 + 24 + 68 + 122 + ODMDCEW2 + -116.1786 + 43.68834 + -116.099 + 43.74071 + + + + http://water.sdsc.edu/wateroneflow/NCDC/ISH_1_0.asmx?WSDL + NCDC Hourly Data + http://hiscentral.cuahsi.org/pub_network.aspx?n=123 + + + National Climatic Data Center + http://www.ncdc.noaa.gov/oa/ncdc.html + National Climatic Data Center, US Dept of Commerce + NCDC is the world's largest active archive of weather data. NCDC produces numerous climate publications and responds to data requests from all over the world. NCDC operates the World Data Center for Meteorology which is co-located at NCDC in Asheville, North Carolina, and the World Data Center for Paleoclimatology which is located in Boulder, Colorado. + +NCDC supports a three tier national climate services support program - the partners include: NCDC, Regional Climate Centers, and State Climatologists. + 0 + 35 + 24770 + 123 + NCDCISH + -179.983 + -90 + 179.75 + 83.65 + + + + http://river.sdsc.edu/wateroneflow/corps/cuahsi_1_0.asmx?WSDL + USACE River Gages + http://hiscentral.cuahsi.org/pub_network.aspx?n=126 + CEMVRRiverGages@usace.army.mil + + U.S. Army Corps of Engineers + http://www.rivergages.com/ + U.S. Army Corps of Engineers, rivergages.com + + 263101295 + 48 + 2206 + 126 + RiverGages + -124.0581 + -91.62195 + 122.583 + 49.32806 + + + + http://icewater.civil.uidaho.edu/ParadiseCreek/cuahsi_1_0.asmx?WSDL + Paradise Creek Watershed, Idaho + http://hiscentral.cuahsi.org/pub_network.aspx?n=127 + hage0608@vandals.uidaho.edu + 208-621-3551 + University of Idaho - Bio/Ag Engineering/Waters of the West + http://pcw.ag.uidaho.edu/index.htm + The Paradise Creek datasets use the standard topic code of "inlandWaters" (012) which describes inland water features, drainage systems and characteristics in particular water quality and stream flow. It is published in conjunction with the ICEWATER (INRA Water Resources Consortium Constellation of Experimental Watersheds Network) + To study the effectiveness of conservation practices at the watershed scale using data from an extensively researched watershed. The second is to examine how watershed restoration in a mixed-land use watershed can be optimized by considering its biophysical and socioeconomic characteristics. To show why (or why not) conservation practices are effective at the watershed scale with emphasis on statistical analysis of existing monitoring data, geo-spatial modeling, and integrated physical and socio-economic analyses. Our research includes an outreach plan for information transfer and data storage and retrieval. + 567547 + 24 + 19 + 127 + ParadiseCreek + -117.0346 + 46.72261 + -116.9524 + 46.80556 + + + + http://icewater.usu.edu/loganriver/cuahsi_1_0.asmx?WSDL + Logan River Observations, Northern Utah, USA + http://hiscentral.cuahsi.org/pub_network.aspx?n=128 + milada_majerova@yahoo.com + + Watershed Sciences Department, Utah State University + http://www.usu.edu + Majerova, M., and J. Schmidt (2009), Logan River Observations Data, Utah State University, Logan, UT, USA. + This dataset contains observations of stage, discharge, and water temperature in the Logan River, which is located in northern Utah, USA. + 1755970 + 5 + 8 + 128 + LoganRiver + -111.6579 + 41.77034 + -111.5647 + 41.93315 + + + + http://www.his.npca.ca/waterdataservices_quantity/cuahsi_1_0.asmx?WSDL + Niagara Peninsula Conservation Authority Water Quantity Data Service + http://hiscentral.cuahsi.org/pub_network.aspx?n=129 + gverkade@npca.ca + (905)788-3135 + Niagara Peninsula Conservation Authority + http://www.his.npca.ca/hydroserver + Niagara Peninsula Conservation Authority, 2010. + This database contains historic and near real time water quantity observation data for the Niagara Peninsula Conservation Authority watershed. Variables collected include water level, stream flow, precipitation and air temperature and water temperature. + 3605961 + 11 + 30 + 129 + NPCA + -79.82583 + 42.869 + -79.042 + 43.23337 + + + + http://cbe.cae.drexel.edu/RIMP/cuahsi_1_0.asmx?WSDL + RIM Program + http://hiscentral.cuahsi.org/pub_network.aspx?n=131 + kenhyer@usgs.gov + 804-698-4000 + USGS, Virginia DEQ and Maryland Department of Natural Resources + http://va.water.usgs.gov/chesbay/RIMP/ + + The USGS Chesapeake Bay River Input Monitoring (RIM) Program was established to quantify loads and long-term trends in concentrations of nutrients and suspended material entering the tidal part of the Chesapeake Bay Basin from its nine major tributaries. These nine rivers account for approximately 93% of the streamflow entering Chesapeake Bay from the non-tidal part of its watershed. Results of the RIM program are being used by resource managers, policy makers, and concerned citizens to help evaluate the effectiveness of strategies aimed at reducing nutrients and sediment entering Chesapeake Bay from its tributaries. + 153070 + 13 + 9 + 131 + RIMP + -78.08611 + 37.22445 + -75.78611 + 39.65861 + + + + http://24.187.226.76/reon/cuahsi_1_0.asmx?WSDL + Beacon Institute for River and Esturay + http://hiscentral.cuahsi.org/pub_network.aspx?n=132 + ghuai@us.ibm.com + 571-215-3477 + Beacon Institute of River and Estuary + http://24.187.226.76/reon + + + 1910825 + 57 + 6 + 132 + BEACON_IBM + -98 + 27.45 + -74 + 45 + + + + http://ees-his06.ad.ufl.edu/SFe_SRWMD_SurfWater/cuahsi_1_0.asmx?WSDL + Santa Fe Basin, Florida SRWMD select river gages + http://hiscentral.cuahsi.org/pub_network.aspx?n=139 + katmckee@ufl.edu + 352-392-5893 + Suwannee River Water Management District + http://www.srwmd.org/DocumentCenterii.aspx?FID=49 + + This river flow or stage data is downloaded from the SRWMD website every 2-3 months for selected stations on the rivers in the basin. The data is compared to specific conductivity data. See our webpage for research information: http://waterinstitute.ufl.edu/research/projects_detail.asp?Contract=63158 + 75858 + 2 + 4 + 139 + SFe_SRWMD_SurfWater + -82.79916 + 29.84611 + -82.21972 + 29.9325 + + + + http://icewater.geology.isu.edu/PortneufWatershed/cuahsi_1_0.asmx?WSDL + Portneuf Watershed Observations, Idaho + http://hiscentral.cuahsi.org/pub_network.aspx?n=140 + whittifa@isu.edu + 208-360-7793 + Idaho State University + http://gsl.geology.isu.edu/ + + + 660770 + 6 + 4 + 140 + PWP + -112.545 + 42.62439 + -112.1171 + 42.93505 + + + + http://watershed.uta.edu/nws_wgrfc_daily_mpe/cuahsi_1_1.asmx?WSDL + NWS-WGRFC Daily Multi-sensor Precipitation Estimates + http://hiscentral.cuahsi.org/pub_network.aspx?n=142 + mcenery@uta.edu + (817) 272-0234 + NOAA's National Weather Service West Gulf River Forecast Center + http://www.srh.noaa.gov/wgrfc/ + MPE data from NWS-WGRFC + The precipitation data are quality-controlled, multi-sensor (radar, satellite, and rain gauge) precipitation estimates from National Weather Service (NWS) West Gulf River Forecast Center. The original data are in XMRG format and projected in the Hydrologic Rainfall Analysis Project (HRAP) grid coordinate system, a polar stereographic projection true at 60°N / 105°W. The data represent the 24-hour precipitation estimates for each HRAP grid cell. + 778473920 + 1 + 138986 + 142 + NWS-WGRFC MPE + -108.7541 + 24.8692 + -93.1711 + 38.4404 + + + + http://his.crwr.utexas.edu/TRACS/cuahsi_1_0.asmx?WSDL + TCEQ Surface Water Quality Monitoring (SWQM) + http://hiscentral.cuahsi.org/pub_network.aspx?n=146 + + + Texas Commission on Environmental Quality + http://www.tceq.state.tx.us/ + + Texas Commission on Environmental Quality (TCEQ) - Texas Regulatory and Compliance System (TRACS) Surface Water Quality Monitoring (SWQM) Data, 1968-2006 + 3810596 + 4352 + 5566 + 146 + TCEQ SWQM + -106.6311 + 25.87639 + -93.51 + 36.47 + + + + http://his.crwr.utexas.edu/GW_Edwards/cuahsi_1_0.asmx?WSDL + Edwards Aquifer Groundwater Database + http://hiscentral.cuahsi.org/pub_network.aspx?n=150 + + + UT-CRWR + + + + 444659 + 22 + 14489 + 150 + GW_Edwards + -100.4497 + 29.00028 + -97.40028 + 31.19972 + + + + http://his.crwr.utexas.edu/FluxTowers/cuahsi_1_0.asmx?WSDL + Freeman Ranch Mesquite Juniper Flux Tower + http://hiscentral.cuahsi.org/pub_network.aspx?n=151 + dsiegel@mail.utexas.edu + (847) 607-0342 + AmeriFlux Network + http://public.ornl.gov/ameriflux/index.html + + Flux tower data (2004-2008) from an AmeriFlux site at Freeman Ranch, TX + 2310165 + 33 + 1 + 151 + AmeriFlux + -97.9962 + 29.9495 + -97.9962 + 29.9495 + + + + http://nmhis.unm.edu/RGET/cuahsi_1_0.asmx?WSDL + Rio-ET: Evapotranspiration Studies in the Middle Rio Grande + http://hiscentral.cuahsi.org/pub_network.aspx?n=152 + stephenb@unm.edu + 505-221-4377 + University of New Mexico + http://bosque.unm.edu/ + J. Cleverly, C. Dahm, J. Coonrod, K. Vanderbilt, (1999-2008), " Rio-ET: Evapotranspiration studies in the Middle Rio Grande" + Restoration efforts that remove non-native understory vegetation or dense monotypic stands of non-native vegetation from riparian zones (the bosque) are designed to reduce consumption of water. Quantification of the response of evapotranspiration (ET) and water table depths to non-native understory removal or to eradication of dense stands of non-native species like salt cedar or Russian olive is needed to provide defensible estimates of potential water-savings from restoration activities. In addition to restoration assessment, it is also important to monitor the effects the increasing roles of fire and post-burn management have on ET and water tables. We monitored the ET and water table responses of a site with understory removed (Albuquerque South Valley). + + 96498 + 10 + 6 + 152 + RioGrandeET + -107.0394 + 33.79113 + -106.6828 + 34.95877 + + + + http://his.crwr.utexas.edu/HermineFlood/cuahsi_1_0.asmx?WSDL + Hermine Flood + http://hiscentral.cuahsi.org/pub_network.aspx?n=156 + harish.sangireddy@mail.utexas.edu + + Hermine Flood Database by CRWR + http://www.crwr.utexas.edu/ + Hermine Flood Database by CRWR at The University of Texas, Austin + The Hermine Flood Database has been built up to capture the stream flow from NWIS Unit Values web service for 15 minute interval. This Database has stream flow data for Texas over a period of two months which covers the Hermine Storm Event. + 5777961 + 1 + 448 + 156 + HermineFlood + -103.8316 + 27.26449 + -93.56601 + 36.23865 + + + + http://water.sdsc.edu/czo_arizona/cuahsi_1_0.asmx?WSDL + Jemez River Basin & SCM CZO + http://hiscentral.cuahsi.org/pub_network.aspx?n=158 + chorover@cals.arizona.edu + 520-626-5635 + University Of Arizona + http://www.czo.arizona.edu/ + Logistical support and/or data were provided by the NSF-supported Jemez River Basin and Santa Catalina Mountains Critical Zone Observatory under the NSF EAR-0724958 + This data service provides data collected from Jemez River Basin sites. +We are developing an interdisciplinary observatory in the southwestern US that will improve our fundamental understanding of the function, structure and co-evolution of biota, soils, and landforms that comprise the Critical Zone (CZ). The observatory is designed as a natural laboratory for the earth science community to test hypotheses related to CZ function in relation to climatic and water cycle variation. We posit that CZ systems organize and evolve in response to open system fluxes of energy and mass that can be quantified at point to watershed scales. These fluxes include meteoric CZ inputs of radiation, water, and carbon that are modulated by surficial biota to produce fluids and biogeochemical components that undergo biotic and abiotic transformation during gradient-driven transport. We hypothesize that the coupling of physical, chemical and biological processes is related specifically and predictably to the timing and magnitude of these fluxes. Therefore, our CZ Observatory (CZO) is designed to examine the impacts of space-time variability in energy and water flux on coupled CZ processes along two well-constrained climate gradients. The first is on rhyolitic parent material in the Jemez River Basin of northern New Mexico (JRB) and the second is on granite and schist bedrock within the Santa Catalina Mountains in southern Arizona (SCM). Measurement, modeling, and experimentation at sites that vary in parent rock, elevation, aspect, slope, soil development, and vegetation will enable quantification of the feedbacks between energy and mass fluxes (driven by chemical and physical gradients) and measured components of CZ structure. Our team has developed an iterative modeling and measurement strategy, and a management structure that fosters integration among disciplines. The JRB-SCM CZO is organized around broad questions that require an integrated, multi-disciplinary approach including the following two: How does variability in energy input and related mass flux influence CZ structure and function? How do feedbacks between landscape evolution and the cycling of water and carbon alter short- and long-term CZ development? To identify the couplings among physical, chemical, and biological processes, our research integrates four crosscutting science themes that are both multi-disciplinary and multi-scale: Ecohydrology and Hydrologic Partitioning, Subsurface Biogeochemistry, Landscape Evolution and Surface Water Dynamics. We are employing an integrated process-based modeling approach to (i) identify optimal sites for measuring structure and process, (ii) refine hypotheses developed through field-based observation and measurements, (iii) explore feedbacks and emergent system behaviors, and (iv) develop transfer functions that can be used to relate system behavior across scales and modes of observation. Discoveries made at the JRB-SCM CZO will improve our ability to predict CZ response to changes in climate and land cover, which is immediately useful to regional resource managers and will ultimately inform broader-scale decision making. We coordinate closely with other CZOs to support data collection, storage, and dissemination. Our education and outreach activities are built upon other highly effective educational efforts developed and led at UA. We are developing a range of products and activities for K-16 students, the general public, and stakeholders, including summer Observatory field experiences for local high school and undergraduate students, graduate courses, and field camps in earth science, as well as coordination of related efforts by other science centers active in the region. We invite new investigators throughout the global earth sciences community to conduct novel and collaborative research at the JRB-SCM CZO + 164771 + 10 + 14 + 158 + czo_ariz + -106.5978 + 35.8546 + -106.4958 + 35.9092 + + + + http://192.31.21.100/czo_boulder/cuahsi_1_0.asmx?WSDL + Boulder Creek Critical Zone Observatory + http://hiscentral.cuahsi.org/pub_network.aspx?n=159 + markw@snobear.Colorado.edu + + University of Colorado at Boulder + http://czo.colorado.edu + Logistical support and/or data were provided by the NSF-supported Boulder Creek Critical Zone Observatory + The Boulder Creek Critical Zone Observatory (CZO), located in the Front Range of Colorado, is designed to examine the effect of erosion on the development and function of the Critical Zone. The Critical Zone is the near-surface region that supports terrestrial life, extending vertically from the base of groundwater to the upper reaches of the vegetation canopy. The Boulder Creek Watershed is about 1160km2 and drains the Front Range from the Continental Divide (4120m) to the eastern plains (1480) (Murphy, 2000). In the upper reaches of Boulder Creek, it has 3 tributaries – North Boulder Creek, Middle Boulder Creek and South Boulder Creek. The confluence of North Boulder Creek and Middle Boulder Creek is at ?m. South Boulder Creek joins Boulder Creek near the City of Boulder. The large elevation range within the watershed encompasses five climatic zones – alpine, subalpine, montane, foothills and plains. Total annual precipitation generally decreases with elevation, from >100cm at the Continental Divide to about 46cm near the City of Boulder. The project will focus on the upper basin of the Boulder Creek Watershed (above the City of Boulder). + 11834 + 31 + 1 + 159 + czo_boulder + -105.6165 + 40.05479 + -105.6165 + 40.05479 + + + + http://192.31.21.100/czo_luquillo/cuahsi_1_0.asmx?WSDL + Luquillo Critical Zone Observatory + http://hiscentral.cuahsi.org/pub_network.aspx?n=160 + leonmi@sas.upenn.edu + + University of Pennsylvania + http://www.sas.upenn.edu/lczo/ + + The Luquillo Critical Zone Observatory (LCZO) is located in Luquillo Mountains of northeastern Puerto Rico. The multi-disciplinary team of geoscientists working at the site are addressing a set of specific hypotheses that are related to the following overarching questions: How do critical zone processes and the flow and transformations of material differ in landscapes with contrasting bedrock but similar climates, land use, and geologic histories? What are the implications of these differences for the long term sustainability of water and soil resources? Research Overview Specifically, the observatory is quantifying and comparing critical zone (CZ) processes in landforms and watersheds underlain by three different rock types, granodiorites, volcaniclastics, and their associated contact metamorphic rocks. Previous research has demonstrated that these are some of the most rapidly eroding watersheds in the world. There are also dramatic, but poorly quantified, contrasts in CZ processes between areas underlain by these bedrocks. Individual research project include studies of deep weathering, soil formation and soil carbon accumulation, riparian zone dynamics, fluvial geomorphology, and meteorology. Infrastructure includes weather stations, instrumented soil pits and riparian zones, and stream flow gages. The principal researchers and students involve in the Luquillo Critical Zone Observatory are from the UPENN, the Pennsylvania State University, the University of California at Berkeley, the University of New Hampshire, the University of Puerto Rico, the US Geological Survey, and the US Forest Service International Institute of Tropical Forestry. The Observatory will also provide facilities for collaborators from a host of US and International Universities and Research Centers + 2757448 + 46 + 9 + 160 + czo_luquillo + -65.76384 + 18.27971 + -65.73111 + 18.33111 + + + + http://192.31.21.100/czo_merced/cuahsi_1_0.asmx?WSDL + Southern Sierra Critical Zone Observatory + http://hiscentral.cuahsi.org/pub_network.aspx?n=161 + + + University of California, Merced + https://snri.ucmerced.edu/CZO + Logistical support and/or data were provided by the NSF-supported Southern Sierra Critical Zone Observatory + The Southern Sierra CZO is a community platform for research on critical-zone processes across the rain-snow transition in the mixed-conifer forest of the Southern Sierra Nevada. While this elevation range has characteristically rapid seasonal changes, going from snow cover to wet soil to dry soil over a 1-2 month period, climate warming will shift this transition period earlier or eliminate it entirely at the current transitional elevation. The characteristic spatial differences along gradients offer the opportunity to substitute space for time, making the CZO an excellent natural laboratory for studying how critical zone processes respond to perturbations, and particularly how the water cycle drives critical zone processes. A team of scientists from multiple institutions is carrying out research at the CZO, which is located in the Kings River Experimental Watershed (KREW), a U.S. Forest Service watershed-level, integrated ecosystem project for long-term research in headwater catchments in the Sierra National Forest. + 3162232 + 4 + 14 + 161 + czo_merced + -119.1836 + 37.06077 + -119.1824 + 37.06104 + + + + http://192.31.21.100/czo_psu/cuahsi_1_0.asmx?WSDL + Shale Hills Susquehanna CZO + http://hiscentral.cuahsi.org/pub_network.aspx?n=162 + bbills@eesi.psu.edu + + Pennsylvania State University + http://www.czo.psu.edu + Logistical support and/or data were provided by the NSF-supported Shale Hills Susquehanna Critical Zone Observatory. + The Shale Hills Critical Zone Observatory (CZO) is a forested, small, temperate-climate catchment in central Pennsylvania in which the regolith is developing upon homogeneous shale. The purpose of the observatory and associated interdisciplinary research is to quantitatively predict the creation, evolution, and structure of regolith as a function of the geochemical, hydrologic, biologic, and geomorphologic processes operating in a temperate, forested landscape. By creating an interdisciplinary team working collaboratively in one observatory we aim to advance methods for characterizing regolith, to provide a theoretical basis for predicting the distribution and properties of regolith, and to theoretically and experimentally study the impacts of regolith on fluid pathways, flow rates, and residence times. The research site, the focus of National Science Foundation-supported research since the 1970s, has comprehensive datasets on distributed water budgets (1970-75), has served as a model test bed for hydrological response (1998-present), and will be augmented here by new geochemical, geomorphological, ecological, lidar, and soils datasets, all available to the research community. Shale Hills CZO represents an opportunity to investigate the rates and mechanisms of saprolite and soil formation on a relatively simple but ubiquitous bedrock lithology that has been documented to be important in determining global fluxes of C, P, and platinum–group elements worldwide. Furthermore, the regolith at Shale Hills has experienced at least two potentially significant perturbations in the geologically recent past: a climatic perturbation from periglacial to modern conditions, and a biologic perturbation from anthropogenic clearing of forests during and repeatedly since colonial occupation. The magnitude of these perturbations and their influence on regolith generation afford an opportunity to assess the time scales of response of soil production to both long-term climate change and human activity. + 848624 + 18 + 1 + 162 + czo_psu + -77.90401 + 40.66582 + -77.90401 + 40.66582 + + + + http://192.31.21.100/czo_udel/cuahsi_1_0.asmx?WSDL + Christina River Basin Critical Zone Observatory + http://hiscentral.cuahsi.org/pub_network.aspx?n=163 + + + Stroud Research Center / University of Deleware + http://www.udel.edu/czo/ + An NSF supported environmental observatory established to study chemical, physical and biological interactions that shape the Earth's surface + Spatial and temporal integration of carbon and mineral fluxes: a whole watershed approach to quantifying anthropogenic modification of critical zone carbon sequestration. Earth moving by humans associated with agriculture, urbanization, and excavation re-contours entire landscapes and constitutes a major geological force within the Critical Zone of planet Earth. The Critical Zone, defined as the terrestrial layer extending from tree tops through the groundwater and into stream networks, sustains most terrestrial life on the planet. At a greater rate than ever in Earth’s history, erosion and excavation expose sub-soil materials and unweathered minerals, which mix into and within soils and are transported as sediment loads through river networks, from headwaters to estuaries. To quantify the impacts on the global carbon cycle of humans as geological agents, a multidisciplinary team of scientists from the University of Delaware (UD) and Stroud Water Research Center (SWRC) will establish a Critical Zone Observatory (CZO) within the 1440 km2 Christina River drainage basin (CRB/CZO). Scientific investigations within the CRB/CZO, located in Southeastern Pennsylvania and Northern Delaware and straddling unglaciated Piedmont and Coastal Plain physiographic provinces, will test the following overarching hypothesis: Humans, by accelerating the introduction of minerals into biologically and chemically active zones, significantly enhance the interactions between minerals and organic matter and create globally significant impacts on the exchange of carbon between the land and the atmosphere. The human footprint within the CRB/CZO spans centuries, and current land uses include second-growth forests, agriculture, and suburban and urban development This provides an ideal natural laboratory in which we will investigate fundamental biological, chemical, and geological processes within the Critical Zone along a gradient of human impacts. We will particularly focus on the sources, transport and fates of water, sediments and carbon from uplands to inland waters and from inland waters to the coastal zone. The CRB/CZO will utilize cutting edge technologies for real-time gathering of hydrological, physical and chemical data and advances in cyber-infrastructure that seamlessly merge real-time data with state-of-the-art graphics tools to provide timely open access to quality controlled data and supporting materials. Field installations and data management advances will enhance an extensive existing network of stations used for monitoring water flow and water chemistry within the CRB basin, including Delaware Coastal Waters, and will build upon a solid foundation of decades of research conducted by UD, SWRC, and numerous state, federal, and non-governmental agencies. The CRB/CZO will serve as a resource to the greater scientific community through open access to data and opportunities for research projects that take advantage of the enhanced monitoring network. The new Delaware Environmental Institute (DENIN), located at UD, and Delaware's National Science Foundation Experimental Program to Stimulate Competitive Research (EPSCoR) will partner with the CRB/CZO on outreach activities. Public outreach to stakeholders within the Christina Basin is a critical step in making CRB/CZO data available to policy makers. Strong ties between UD and Delaware state agencies will enhance the sharing of environmental data and will provide outreach to the public and to policy makers. Some of our outreach will be coordinated through the Water Resources Agency, part of the UD Institute for Public Administration. The Christina Basin Water Quality Management Committee, which includes representatives from 15 federal, state, and local environmental resource agencies, hosts an annual series of public workshops to identify the science needs of policy makers. We will incorporate science results from the CRB/CZO into these workshops with the goal of providing a direct interface between science and public policy. The SWRC maintains 4 full-time staff members to translate our research into educational programs for middle- and high school-aged students, teachers, and citizen/conservation groups. Graduate students who are involved with the CRB/CZO will be advised by multidisciplinary team of scientists associated with the DENIN and with scientists at SWRC. Collaborations with other academic and federal agency personnel will further enhance interdisciplinary research, student education, and public outreach. + 7207366 + 24 + 31 + 163 + czo_udel + -75.79139 + 39.8549 + -75.65321 + 39.94947 + + + + http://www.his.npca.ca/waterdataservices_quality/cuahsi_1_1.asmx?WSDL + Niagara Peninsula Conservation Authority Water Quality Data Service + http://hiscentral.cuahsi.org/pub_network.aspx?n=171 + gverkade@npca.ca + 905-788-3135 + Niagara Peninsula Conservation Authority + http://www.his.npca.ca/hydroserver + Niagara Peninsula Conservation Authority, 2010 + This database contains historic water quality observation data for the Niagara Peninsula Conservation Authority watershed. + 148720 + 67 + 71 + 171 + NPCA + -79.95966 + 42.84816 + -78.93753 + 43.25733 + + + + http://icewater.boisestate.edu/rcew2dataservices/cuahsi_1_1.asmx?WSDL + Reynolds Creek Experimental Watershed, SW Idaho + http://hiscentral.cuahsi.org/pub_network.aspx?n=173 + mark.seyfried@ars.usda.gov + 208-422-0715 + Northwest Watershed Research Center, Agricultural Research Service, U.S. Dept of Agriculture + http://www.ars.usda.gov/Main/site_main.htm?modecode=53-62-00-00 + Seyfried, M. S., M. D. Murdock, C. L. Hanson, G. N. Flerchinger, and S. Van Vactor, Long-term soil water content database, Reynolds Creek Experimental Watershed, Idaho, USA, Water Resources Research, 37, 2847-2851, 2001. + + The Reynolds Creek Experimental Watershed, Southwest Idaho, USA, funded by the Unites States Department of Agriculture has continuously monitored a large variety of hydrologic parameters since the early 1960's. + + 11424501 + 4 + 136 + 173 + ODMRCEW2 + -116.8562 + 43.06301 + -116.7025 + 43.29692 + + + + http://icewater.boisestate.edu/pmrw2dataservices/cuahsi_1_1.asmx?WSDL + Panola Mountain Research Watershed, Georgia + http://hiscentral.cuahsi.org/pub_network.aspx?n=174 + nepeters@usgs.gov + 770-903-9145 + U.S. Geological Survey, Georgia Water Science Center + http://ga.water.usgs.gov/projects/panola/ + USGS Georgia Water Science Center, Environmental Investigations and Research Section, Panola Mountain Watershed Research Group + + Research Data Collection for Panola Mountain Research Watershed, since 1985. U.S. Geological Survey, Georgia Dept of Natural Resources and WEBB Program Cooperators, project number 2503-0021S + + + 25027 + 1 + 7 + 174 + ODMPMRW2 + -84.17546 + 33.62761 + -84.17204 + 33.63176 + + + + http://cbe.cae.drexel.edu/Benthic/cuahsi_1_1.asmx?WSDL + Benthic Data in Chesapeake Bay + http://hiscentral.cuahsi.org/pub_network.aspx?n=176 + mpiasecki@ccny.cuny.edu + + Chesapeake Bay Environmental Observatory + http://cbeo.communitymodeling.org/ + + + 299004 + 1285 + 4367 + 176 + Benthic + -77.3197 + 36.4554 + -75.6157 + 39.589 + + + + http://water.sdsc.edu/czo_catalina/cuahsi_1_0.asmx?WSDL + JRB & Santa Catalina Mountains CZO + http://hiscentral.cuahsi.org/pub_network.aspx?n=177 + patroch@hwr.arizona.edu + 520-626-1277 + University of Arizona + http://www.czo.arizona.edu/ + Logistical support and/or data were provided by the NSF-supported Jemez River Basin and Santa Catalina Mountains Critical Zone Observatory under the NSF EAR-0724958 + This data service provides data collected from Santa Catalina Mountains sites. +We are developing an interdisciplinary observatory in the southwestern US that will improve our fundamental understanding of the function, structure and co-evolution of biota, soils, and landforms that comprise the Critical Zone (CZ). The observatory is designed as a natural laboratory for the earth science community to test hypotheses related to CZ function in relation to climatic and water cycle variation. We posit that CZ systems organize and evolve in response to open system fluxes of energy and mass that can be quantified at point to watershed scales. These fluxes include meteoric CZ inputs of radiation, water, and carbon that are modulated by surficial biota to produce fluids and biogeochemical components that undergo biotic and abiotic transformation during gradient-driven transport. We hypothesize that the coupling of physical, chemical and biological processes is related specifically and predictably to the timing and magnitude of these fluxes. Therefore, our CZ Observatory (CZO) is designed to examine the impacts of space-time variability in energy and water flux on coupled CZ processes along two well-constrained climate gradients. The first is on rhyolitic parent material in the Jemez River Basin of northern New Mexico (JRB) and the second is on granite and schist bedrock within the Santa Catalina Mountains in southern Arizona (SCM). Measurement, modeling, and experimentation at sites that vary in parent rock, elevation, aspect, slope, soil development, and vegetation will enable quantification of the feedbacks between energy and mass fluxes (driven by chemical and physical gradients) and measured components of CZ structure. Our team has developed an iterative modeling and measurement strategy, and a management structure that fosters integration among disciplines. The JRB-SCM CZO is organized around broad questions that require an integrated, multi-disciplinary approach including the following two: How does variability in energy input and related mass flux influence CZ structure and function? How do feedbacks between landscape evolution and the cycling of water and carbon alter short- and long-term CZ development? To identify the couplings among physical, chemical, and biological processes, our research integrates four crosscutting science themes that are both multi-disciplinary and multi-scale: Ecohydrology and Hydrologic Partitioning, Subsurface Biogeochemistry, Landscape Evolution and Surface Water Dynamics. We are employing an integrated process-based modeling approach to (i) identify optimal sites for measuring structure and process, (ii) refine hypotheses developed through field-based observation and measurements, (iii) explore feedbacks and emergent system behaviors, and (iv) develop transfer functions that can be used to relate system behavior across scales and modes of observation. Discoveries made at the JRB-SCM CZO will improve our ability to predict CZ response to changes in climate and land cover, which is immediately useful to regional resource managers and will ultimately inform broader-scale decision making. We coordinate closely with other CZOs to support data collection, storage, and dissemination. Our education and outreach activities are built upon other highly effective educational efforts developed and led at UA. We are developing a range of products and activities for K-16 students, the general public, and stakeholders, including summer Observatory field experiences for local high school and undergraduate students, graduate courses, and field camps in earth science, as well as coordination of related efforts by other science centers active in the region. We invite new investigators throughout the global earth sciences community to conduct novel and collaborative research at the JRB-SCM CZO. + 531123 + 6 + 6 + 177 + czo_catalina + -110.8395 + 32.43347 + -110.7404 + 32.55995 + + + + http://watershed.uta.edu/nws_wgrfc_daily_mpe_recent_values/cuahsi_1_1.asmx?WSDL + NWS-WGRFC Daily Multi-sensor Precipitation Estimates Recent Values + http://hiscentral.cuahsi.org/pub_network.aspx?n=179 + mcenery@uta.edu + (817) 272-0234 + NOAA's National Weather Service West Gulf River Forecast Center + http://www.srh.noaa.gov/wgrfc/ + NWS-WGRFC MPE values + The precipitation data are quality-controlled, multi-sensor (radar, satellite, and rain gauge) precipitation estimates from National Weather Service (NWS) West Gulf River Forecast Center (WGRFC). The original data are in XMRG format and projected in the Hydrologic Rainfall Analysis Project (HRAP) grid coordinate system, a polar stereographic projection true at 60°N / 105°W. The data represent the 24-hour precipitation estimates for each HRAP grid cell located within the WGRFC boundaries. + 10823495 + 1 + 69830 + 179 + NWS-WGRFC_Daily_MPE_Recent_Values + -108.7541 + 24.8692 + -93.1711 + 38.4404 + + + + http://river.sdsc.edu/WaterOneFlow/NLDAS_MOS0125_H/v1_0/cuahsi_1_0.asmx?wsdl + NLDAS Hourly Mosaic Land Surface Model Output + http://hiscentral.cuahsi.org/pub_network.aspx?n=180 + help-disc@listserv.gsfc.nasa.gov + 301-614-5224 + NASA Goddard Earth Sciences (GES) Data and Information Services Center + http://mirador.gsfc.nasa.gov/cgi-bin/mirador/presentNavigation.pl?tree=project&project=NLDAS&dataGroup=NLDAS-2%20Mosaic%20Model&dataset=NLDAS_MOS0125_H.002&version=002 + Mitchell, K.E., D. Lohmann, P.R. Houser, E.F. Wood, J.C. Schaake, A. Robock, B.A. Cosgrove, J. Sheffield, Q. Duan, L. Luo, R.W. Higgins, R.T. Pinker, J.D. Tarpley, D.P. Lettenmaier, C.H. Marshall, J.K. Entin, M. Pan, W. Shi, V. Koren, J. Meng, B. H. Ramsay, and A.A. Bailey (2004), The multi-institution North American Land Data Assimilation System (NLDAS): Utilizing multiple GCIP products and partners in a continental distributed hydrological modeling system, J. Geophys. Res., 109, D07S90, doi:10.1029/2003JD003823. + The goal of NLDAS is to construct quality-controlled, and spatially and temporally consistent, land-surface model (LSM) datasets from the best available observations and model output to support modeling activities. Specifically, this system is intended to reduce the errors in the stores of soil moisture and energy which are often present in numerical weather prediction models, and which degrade the accuracy of forecasts. NLDAS is currently running in near real-time on a 1/8th-degree grid over central North America; retrospective NLDAS datasets and simulations also extend back to January 1979. NLDAS constructs a forcing dataset from gauge-based observed precipitation data (temporally disaggregated using Stage II radar data), bias-correcting shortwave radiation, and surface meteorology reanalyses to drive several different LSMs to produce model outputs of surface fluxes, soil moisture, and snow cover. + +NLDAS is a collaboration project among several groups: NOAA/NCEP's Environmental Modeling Center (EMC), NASA's Goddard Space Flight Center (GSFC), Princeton University, the University of Washington, the NOAA/NWS Office of Hydrological Development (OHD), and the NOAA/NCEP Climate Prediction Center (CPC). NLDAS is a core project with support from NOAA's Climate Prediction Program for the Americas (CPPA). Data from the project can be accessed from the NASA Goddard Earth Science Data and Information Services Center (GES DISC) as well as from the NCEP/EMC NLDAS website. + +This service provides access to NASA's North American Land Data Assimilation System (NLDAS) hourly mosaic model data. + 606285336 + 2 + 1081 + 180 + NLDAS_MOS0125_H + -124.938 + 25.063 + -67.438 + 52.563 + + + + http://hydroportal.cuahsi.org/muddyriver/cuahsi_1_0.asmx?WSDL + Muddy River Water Quality Monitoring Project + http://hiscentral.cuahsi.org/pub_network.aspx?n=181 + fhellweger@gmail.com + (617) 373-3992 + Northeastern University + http://www.muddyrivermmoc.org/index.html + Hellweger, F. L., Wei, I., Mathew, M., Jain, K., 2007. Muddy River water quality monitoring sampling and analysis plan. Civil & Environmental Engineering Department, Northeastern University, Boston. + The Muddy River is located in Brookline and Boston, Massachusetts and is tributary to the lower Charles River. The watershed has drainage area of 6.32 mi2, an average slope of 7.2 percent and mixed land use (46% single family, 14% multi-family, 10% +commercial, 16% urban open, 7% forest, 7% other, USGS). The river has been altered +significantly from its natural form. It is part of the Emerald Necklace park system +designed by Frederick Law Olmsted in the late 1800’s. The Muddy River is designated +by the MA DEP as Class B (fishable, swimmable)The Muddy River, like many other urban rivers, has been subject to significant pollution, +including combined sewer discharges, urban runoff discharges, shoreline encroachment, +culverting, etc. Several recent floods have caused significant property damage and recent studies have identified water quality concerns, which lead to the Muddy River Restoration Project. +Northeastern University carried out a 3-year water quality monitoring project. Samples were collected three times per quarter, from 14 stations and analyzed for 36 parameters. Details of the procedures were presented previously in the Sampling and Analysis Plan (SAP) (dated April 13, 2007). The historical data were summarized in a Historical Data Report (dated March 7, 2007). Data, including data quality results and discussion were +submitted on a quarterly basis in 13 Data Reports. The purpose of this final report is to summarize and discuss the data, and to provide recommendations for future studies. + 9290 + 31 + 14 + 181 + MuddyRiver + -71.1179 + 42.32238 + -71.09175 + 42.34918 + + + + http://hydrodata.cz/cz_snow/cuahsi_1_1.asmx?WSDL + Czech Snow Cover + http://hiscentral.cuahsi.org/pub_network.aspx?n=182 + kadljiri@isu.edu + 208-313-8076 + Czech Hydrometeorological Institute + http://www.chmi.cz + Daily snow depth observations from Czech Hydrometeorological Institute and the Ohře watershed authority + Snow depth is measured at 6:00z at the climatological stations of the Czech Hydrometeorological Institute and the Ohře watershed authority. The daily data are available online starting November 2005. + 24145 + 1 + 48 + 182 + CZSNW + 12.59722 + 48.73667 + 18.52472 + 50.85222 + + + + http://watershed.uta.edu/wfo_fwd_hourly_mpe_recent_values/cuahsi_1_1.asmx?WSDL + NWS-WGRFC Weather Forecast Office_FWD Hourly MPE Recent Values + http://hiscentral.cuahsi.org/pub_network.aspx?n=183 + mcenery@uta.edu + (817) 272-0234 + NOAA's National Weather Service West Gulf River Forecast Center + http://www.srh.noaa.gov/wgrfc/ + MPE data from NWS-WGRFC + The precipitation data are quality-controlled, multi-sensor (radar, satellite, and rain gauge) precipitation estimates from National Weather Service (NWS) West Gulf River Forecast Center (WGRFC). The original data are in XMRG format and projected in the Hydrologic Rainfall Analysis Project (HRAP) grid coordinate system, a polar stereographic projection true at 60°N / 105°W. The data represent the 24-hour precipitation estimates for each HRAP grid cell located within the “FWD” Weather Forecast Office (WFO) area that is also within the boundaries of the WGRFC. + 26020726 + 1 + 5911 + 183 + WFO_FWD_Hourly_MPE_Recent_Values + -99.1181 + 30.4938 + -95.2776 + 33.718 + + + + http://hydroportal.cuahsi.org/glacialridge/cuahsi_1_1.asmx?WSDL + Glacial Ridge Project + http://hiscentral.cuahsi.org/pub_network.aspx?n=185 + philgerla@mail.und.nodak.edu + 701-777-3305 + University of North Dakota + http://www.geology.und.nodak.edu/gerla + Gerla, P., R. Whitaker, and S. Trobec. 2011. Water quality data from Judicial Ditch 66 and vicinity, Glacial Ridge Project, Mentor, Minnesota. The Nature Conservancy - Minnesota, North Dakota, and South Dakota Chapter and the University of North Dakota. + In 2000, The Nature Conservancy Minnesota Chapter purchased the 10,000 ha Tilden Farms property near Crookston, northwestern Minnesota. During the following decade, the cultivated and grazed lands that comprised the property were restored to perennial prairie and wetland. These lands are now being turned over to the U.S. Fish and Wildlife Service for inclusion and management within the Glacial Ridge National Wildlife Refuge. As reconstructed tracts mature, on-going monitoring reveals the changes in water quality, runoff, and groundwater recharge at selected locations. + + 1663 + 16 + 22 + 185 + GlacialRidge + -96.32533 + 47.72691 + -96.26686 + 47.75981 + + + + http://hydrodb.uta.edu/nws_wgrfc_hourly_mpe/cuahsi_1_1.asmx?WSDL + NWS-WGRFC Hourly Multi-sensor Precipitation Estimates + http://hiscentral.cuahsi.org/pub_network.aspx?n=187 + mcenery@uta.edu + (817) 272-0234 + NOAA's National Weather Service West Gulf River Forecast Center + http://www.srh.noaa.gov/wgrfc/ + MPE data from NWS-WGRFC + The precipitation data are quality-controlled, multi-sensor (radar, satellite, and rain gauge) precipitation estimates from National Weather Service (NWS) West Gulf River Forecast Center (WGRFC). The original data are in XMRG format and projected in the Hydrologic Rainfall Analysis Project (HRAP) grid coordinate system, a polar stereographic projection true at 60°N / 105°W. The data represent the 24-hour precipitation estimates for each HRAP grid cell located within the WGRFC boundaries. + 2147483647 + 1 + 69830 + 187 + NWS-WGRFC_Hourly_MPE + -108.7541 + 24.8692 + -93.1711 + 38.4404 + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/download32.png b/Source/Plugins/HydroDesktop.Plugins.DataDownload/download32.png new file mode 100644 index 00000000..431079fa Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataDownload/download32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataDownload/packages.config b/Source/Plugins/HydroDesktop.Plugins.DataDownload/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataDownload/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/ExportDialog.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataExport/ExportDialog.Designer.cs new file mode 100644 index 00000000..a9f3acaa --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataExport/ExportDialog.Designer.cs @@ -0,0 +1,434 @@ +namespace HydroDesktop.Plugins.DataExport +{ + partial class ExportDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ExportDialog)); + this.btnExport = new System.Windows.Forms.Button(); + this.btncancel = new System.Windows.Forms.Button(); + this.gbxProgress = new System.Windows.Forms.GroupBox(); + this.pgsBar = new System.Windows.Forms.ProgressBar(); + this.bgwMain = new System.ComponentModel.BackgroundWorker(); + this.tcMain = new System.Windows.Forms.TabControl(); + this.tpMainOptions = new System.Windows.Forms.TabPage(); + this.delimiterSelector1 = new HydroDesktop.Common.Controls.DelimiterSelector(); + this.gbxThemes = new System.Windows.Forms.GroupBox(); + this.btnSelectNoneThemes = new System.Windows.Forms.Button(); + this.btnSelectAllThemes = new System.Windows.Forms.Button(); + this.clbThemes = new System.Windows.Forms.CheckedListBox(); + this.chkNodata = new System.Windows.Forms.CheckBox(); + this.gbxFields = new System.Windows.Forms.GroupBox(); + this.btnSelectNoneFields = new System.Windows.Forms.Button(); + this.btnSelectAllFields = new System.Windows.Forms.Button(); + this.clbExportItems = new System.Windows.Forms.CheckedListBox(); + this.gbxExport = new System.Windows.Forms.GroupBox(); + this.btnBrowse = new System.Windows.Forms.Button(); + this.tbOutPutFileName = new System.Windows.Forms.TextBox(); + this.tpAdvancedOptions = new System.Windows.Forms.TabPage(); + this.gbxDatesRange = new System.Windows.Forms.GroupBox(); + this.dtpEndDateRange = new System.Windows.Forms.DateTimePicker(); + this.lblAndRange = new System.Windows.Forms.Label(); + this.chbUseDateRange = new System.Windows.Forms.CheckBox(); + this.cmbDateTimeColumns = new System.Windows.Forms.ComboBox(); + this.dtpStartDateRange = new System.Windows.Forms.DateTimePicker(); + this.gbxProgress.SuspendLayout(); + this.tcMain.SuspendLayout(); + this.tpMainOptions.SuspendLayout(); + this.gbxThemes.SuspendLayout(); + this.gbxFields.SuspendLayout(); + this.gbxExport.SuspendLayout(); + this.tpAdvancedOptions.SuspendLayout(); + this.gbxDatesRange.SuspendLayout(); + this.SuspendLayout(); + // + // btnExport + // + this.btnExport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnExport.Location = new System.Drawing.Point(255, 524); + this.btnExport.Name = "btnExport"; + this.btnExport.Size = new System.Drawing.Size(75, 28); + this.btnExport.TabIndex = 21; + this.btnExport.Text = "Export Data"; + this.btnExport.UseVisualStyleBackColor = true; + this.btnExport.Click += new System.EventHandler(this.btnExport_Click); + // + // btncancel + // + this.btncancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btncancel.Location = new System.Drawing.Point(336, 524); + this.btncancel.Name = "btncancel"; + this.btncancel.Size = new System.Drawing.Size(75, 28); + this.btncancel.TabIndex = 22; + this.btncancel.Text = "Cancel"; + this.btncancel.UseVisualStyleBackColor = true; + this.btncancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // gbxProgress + // + this.gbxProgress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbxProgress.Controls.Add(this.pgsBar); + this.gbxProgress.Location = new System.Drawing.Point(12, 508); + this.gbxProgress.Name = "gbxProgress"; + this.gbxProgress.Size = new System.Drawing.Size(237, 46); + this.gbxProgress.TabIndex = 21; + this.gbxProgress.TabStop = false; + this.gbxProgress.Text = "Processing..."; + this.gbxProgress.Visible = false; + // + // pgsBar + // + this.pgsBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pgsBar.Location = new System.Drawing.Point(9, 18); + this.pgsBar.Name = "pgsBar"; + this.pgsBar.Size = new System.Drawing.Size(222, 21); + this.pgsBar.Style = System.Windows.Forms.ProgressBarStyle.Continuous; + this.pgsBar.TabIndex = 1; + // + // bgwMain + // + this.bgwMain.WorkerReportsProgress = true; + this.bgwMain.WorkerSupportsCancellation = true; + this.bgwMain.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bgwMain_DoWork); + this.bgwMain.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bgwMain_ProgressChanged); + this.bgwMain.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.bgwMain_RunWorkerCompleted); + // + // tcMain + // + this.tcMain.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tcMain.Controls.Add(this.tpMainOptions); + this.tcMain.Controls.Add(this.tpAdvancedOptions); + this.tcMain.Location = new System.Drawing.Point(12, 12); + this.tcMain.Name = "tcMain"; + this.tcMain.SelectedIndex = 0; + this.tcMain.Size = new System.Drawing.Size(399, 488); + this.tcMain.TabIndex = 11; + // + // tpMainOptions + // + this.tpMainOptions.Controls.Add(this.delimiterSelector1); + this.tpMainOptions.Controls.Add(this.gbxThemes); + this.tpMainOptions.Controls.Add(this.gbxFields); + this.tpMainOptions.Controls.Add(this.gbxExport); + this.tpMainOptions.Location = new System.Drawing.Point(4, 22); + this.tpMainOptions.Name = "tpMainOptions"; + this.tpMainOptions.Padding = new System.Windows.Forms.Padding(3); + this.tpMainOptions.Size = new System.Drawing.Size(391, 462); + this.tpMainOptions.TabIndex = 0; + this.tpMainOptions.Text = "Main"; + this.tpMainOptions.UseVisualStyleBackColor = true; + // + // delimiterSelector1 + // + this.delimiterSelector1.CurrentDelimiter = ","; + this.delimiterSelector1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.delimiterSelector1.Location = new System.Drawing.Point(3, 329); + this.delimiterSelector1.Name = "delimiterSelector1"; + this.delimiterSelector1.Size = new System.Drawing.Size(385, 78); + this.delimiterSelector1.TabIndex = 18; + // + // gbxThemes + // + this.gbxThemes.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbxThemes.Controls.Add(this.btnSelectNoneThemes); + this.gbxThemes.Controls.Add(this.btnSelectAllThemes); + this.gbxThemes.Controls.Add(this.clbThemes); + this.gbxThemes.Controls.Add(this.chkNodata); + this.gbxThemes.Location = new System.Drawing.Point(3, 6); + this.gbxThemes.Name = "gbxThemes"; + this.gbxThemes.Size = new System.Drawing.Size(379, 143); + this.gbxThemes.TabIndex = 1; + this.gbxThemes.TabStop = false; + this.gbxThemes.Text = "Select Data Sites Layers"; + // + // btnSelectNoneThemes + // + this.btnSelectNoneThemes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnSelectNoneThemes.Location = new System.Drawing.Point(87, 104); + this.btnSelectNoneThemes.Name = "btnSelectNoneThemes"; + this.btnSelectNoneThemes.Size = new System.Drawing.Size(75, 23); + this.btnSelectNoneThemes.TabIndex = 10; + this.btnSelectNoneThemes.Text = "Select &None"; + this.btnSelectNoneThemes.UseVisualStyleBackColor = true; + this.btnSelectNoneThemes.Click += new System.EventHandler(this.btnSelectNoneThemes_Click); + // + // btnSelectAllThemes + // + this.btnSelectAllThemes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnSelectAllThemes.Location = new System.Drawing.Point(6, 104); + this.btnSelectAllThemes.Name = "btnSelectAllThemes"; + this.btnSelectAllThemes.Size = new System.Drawing.Size(75, 23); + this.btnSelectAllThemes.TabIndex = 9; + this.btnSelectAllThemes.Text = "Select &All"; + this.btnSelectAllThemes.UseVisualStyleBackColor = true; + this.btnSelectAllThemes.Click += new System.EventHandler(this.btnSelectAllThemes_Click); + // + // clbThemes + // + this.clbThemes.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.clbThemes.FormattingEnabled = true; + this.clbThemes.Location = new System.Drawing.Point(6, 19); + this.clbThemes.Name = "clbThemes"; + this.clbThemes.Size = new System.Drawing.Size(367, 79); + this.clbThemes.TabIndex = 5; + // + // chkNodata + // + this.chkNodata.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.chkNodata.AutoSize = true; + this.chkNodata.Location = new System.Drawing.Point(230, 110); + this.chkNodata.Name = "chkNodata"; + this.chkNodata.Size = new System.Drawing.Size(143, 17); + this.chkNodata.TabIndex = 4; + this.chkNodata.Text = "&Include \'No Data\' Values"; + this.chkNodata.UseVisualStyleBackColor = true; + // + // gbxFields + // + this.gbxFields.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbxFields.Controls.Add(this.btnSelectNoneFields); + this.gbxFields.Controls.Add(this.btnSelectAllFields); + this.gbxFields.Controls.Add(this.clbExportItems); + this.gbxFields.Location = new System.Drawing.Point(3, 152); + this.gbxFields.Name = "gbxFields"; + this.gbxFields.Size = new System.Drawing.Size(379, 171); + this.gbxFields.TabIndex = 5; + this.gbxFields.TabStop = false; + this.gbxFields.Text = "Select Fields to Export"; + // + // btnSelectNoneFields + // + this.btnSelectNoneFields.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnSelectNoneFields.Location = new System.Drawing.Point(87, 131); + this.btnSelectNoneFields.Name = "btnSelectNoneFields"; + this.btnSelectNoneFields.Size = new System.Drawing.Size(75, 23); + this.btnSelectNoneFields.TabIndex = 8; + this.btnSelectNoneFields.Text = "Select &None"; + this.btnSelectNoneFields.UseVisualStyleBackColor = true; + this.btnSelectNoneFields.Click += new System.EventHandler(this.SelectNone_Click); + // + // btnSelectAllFields + // + this.btnSelectAllFields.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnSelectAllFields.Location = new System.Drawing.Point(6, 131); + this.btnSelectAllFields.Name = "btnSelectAllFields"; + this.btnSelectAllFields.Size = new System.Drawing.Size(75, 23); + this.btnSelectAllFields.TabIndex = 7; + this.btnSelectAllFields.Text = "Select &All"; + this.btnSelectAllFields.UseVisualStyleBackColor = true; + this.btnSelectAllFields.Click += new System.EventHandler(this.SelectAll_Click); + // + // clbExportItems + // + this.clbExportItems.CheckOnClick = true; + this.clbExportItems.FormattingEnabled = true; + this.clbExportItems.Location = new System.Drawing.Point(3, 16); + this.clbExportItems.Name = "clbExportItems"; + this.clbExportItems.Size = new System.Drawing.Size(373, 109); + this.clbExportItems.TabIndex = 6; + this.clbExportItems.ThreeDCheckBoxes = true; + // + // gbxExport + // + this.gbxExport.Controls.Add(this.btnBrowse); + this.gbxExport.Controls.Add(this.tbOutPutFileName); + this.gbxExport.Dock = System.Windows.Forms.DockStyle.Bottom; + this.gbxExport.Location = new System.Drawing.Point(3, 407); + this.gbxExport.Name = "gbxExport"; + this.gbxExport.Size = new System.Drawing.Size(385, 52); + this.gbxExport.TabIndex = 17; + this.gbxExport.TabStop = false; + this.gbxExport.Text = "Specify Output File"; + // + // btnBrowse + // + this.btnBrowse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnBrowse.Location = new System.Drawing.Point(316, 17); + this.btnBrowse.Name = "btnBrowse"; + this.btnBrowse.Size = new System.Drawing.Size(63, 23); + this.btnBrowse.TabIndex = 19; + this.btnBrowse.Text = "&Browse..."; + this.btnBrowse.UseVisualStyleBackColor = true; + this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click); + // + // tbOutPutFileName + // + this.tbOutPutFileName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbOutPutFileName.Location = new System.Drawing.Point(6, 19); + this.tbOutPutFileName.Name = "tbOutPutFileName"; + this.tbOutPutFileName.Size = new System.Drawing.Size(300, 20); + this.tbOutPutFileName.TabIndex = 18; + // + // tpAdvancedOptions + // + this.tpAdvancedOptions.Controls.Add(this.gbxDatesRange); + this.tpAdvancedOptions.Location = new System.Drawing.Point(4, 22); + this.tpAdvancedOptions.Name = "tpAdvancedOptions"; + this.tpAdvancedOptions.Padding = new System.Windows.Forms.Padding(3); + this.tpAdvancedOptions.Size = new System.Drawing.Size(391, 417); + this.tpAdvancedOptions.TabIndex = 1; + this.tpAdvancedOptions.Text = "Advanced options"; + this.tpAdvancedOptions.UseVisualStyleBackColor = true; + // + // gbxDatesRange + // + this.gbxDatesRange.Controls.Add(this.dtpEndDateRange); + this.gbxDatesRange.Controls.Add(this.lblAndRange); + this.gbxDatesRange.Controls.Add(this.chbUseDateRange); + this.gbxDatesRange.Controls.Add(this.cmbDateTimeColumns); + this.gbxDatesRange.Controls.Add(this.dtpStartDateRange); + this.gbxDatesRange.Location = new System.Drawing.Point(6, 6); + this.gbxDatesRange.Name = "gbxDatesRange"; + this.gbxDatesRange.Size = new System.Drawing.Size(388, 102); + this.gbxDatesRange.TabIndex = 6; + this.gbxDatesRange.TabStop = false; + this.gbxDatesRange.Text = "Dates range"; + // + // dtpEndDateRange + // + this.dtpEndDateRange.Format = System.Windows.Forms.DateTimePickerFormat.Short; + this.dtpEndDateRange.Location = new System.Drawing.Point(226, 58); + this.dtpEndDateRange.Name = "dtpEndDateRange"; + this.dtpEndDateRange.Size = new System.Drawing.Size(147, 20); + this.dtpEndDateRange.TabIndex = 4; + // + // lblAndRange + // + this.lblAndRange.AutoSize = true; + this.lblAndRange.Location = new System.Drawing.Point(160, 62); + this.lblAndRange.Name = "lblAndRange"; + this.lblAndRange.Size = new System.Drawing.Size(60, 13); + this.lblAndRange.TabIndex = 5; + this.lblAndRange.Text = "<= AND <="; + // + // chbUseDateRange + // + this.chbUseDateRange.AutoSize = true; + this.chbUseDateRange.Location = new System.Drawing.Point(7, 26); + this.chbUseDateRange.Name = "chbUseDateRange"; + this.chbUseDateRange.Size = new System.Drawing.Size(124, 17); + this.chbUseDateRange.TabIndex = 0; + this.chbUseDateRange.Text = "Export data in range:"; + this.chbUseDateRange.UseVisualStyleBackColor = true; + this.chbUseDateRange.CheckedChanged += new System.EventHandler(this.chbUseDateRange_CheckedChanged); + // + // cmbDateTimeColumns + // + this.cmbDateTimeColumns.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbDateTimeColumns.FormattingEnabled = true; + this.cmbDateTimeColumns.Location = new System.Drawing.Point(137, 26); + this.cmbDateTimeColumns.Name = "cmbDateTimeColumns"; + this.cmbDateTimeColumns.Size = new System.Drawing.Size(153, 21); + this.cmbDateTimeColumns.TabIndex = 2; + // + // dtpStartDateRange + // + this.dtpStartDateRange.Format = System.Windows.Forms.DateTimePickerFormat.Short; + this.dtpStartDateRange.Location = new System.Drawing.Point(7, 58); + this.dtpStartDateRange.Name = "dtpStartDateRange"; + this.dtpStartDateRange.Size = new System.Drawing.Size(147, 20); + this.dtpStartDateRange.TabIndex = 3; + // + // ExportDialog + // + this.AcceptButton = this.btnExport; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(418, 566); + this.Controls.Add(this.btnExport); + this.Controls.Add(this.tcMain); + this.Controls.Add(this.btncancel); + this.Controls.Add(this.gbxProgress); + this.HelpButton = true; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(350, 479); + this.Name = "ExportDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Export To Text File"; + this.HelpButtonClicked += new System.ComponentModel.CancelEventHandler(this.ThemeExportDialog_HelpButtonClicked); + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ExportDialog_FormClosing); + this.Load += new System.EventHandler(this.ExportDialog_load); + this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.ThemeExportDialog_HelpRequested); + this.gbxProgress.ResumeLayout(false); + this.tcMain.ResumeLayout(false); + this.tpMainOptions.ResumeLayout(false); + this.gbxThemes.ResumeLayout(false); + this.gbxThemes.PerformLayout(); + this.gbxFields.ResumeLayout(false); + this.gbxExport.ResumeLayout(false); + this.gbxExport.PerformLayout(); + this.tpAdvancedOptions.ResumeLayout(false); + this.gbxDatesRange.ResumeLayout(false); + this.gbxDatesRange.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button btnExport; + private System.Windows.Forms.Button btncancel; + private System.Windows.Forms.GroupBox gbxProgress; + private System.Windows.Forms.ProgressBar pgsBar; + private System.ComponentModel.BackgroundWorker bgwMain; + private System.Windows.Forms.TabControl tcMain; + private System.Windows.Forms.TabPage tpAdvancedOptions; + private System.Windows.Forms.TabPage tpMainOptions; + private System.Windows.Forms.GroupBox gbxThemes; + private System.Windows.Forms.Button btnSelectNoneThemes; + private System.Windows.Forms.Button btnSelectAllThemes; + private System.Windows.Forms.CheckedListBox clbThemes; + private System.Windows.Forms.CheckBox chkNodata; + private System.Windows.Forms.GroupBox gbxFields; + private System.Windows.Forms.Button btnSelectNoneFields; + private System.Windows.Forms.Button btnSelectAllFields; + private System.Windows.Forms.CheckedListBox clbExportItems; + private System.Windows.Forms.GroupBox gbxExport; + private System.Windows.Forms.Button btnBrowse; + private System.Windows.Forms.TextBox tbOutPutFileName; + private System.Windows.Forms.DateTimePicker dtpEndDateRange; + private System.Windows.Forms.DateTimePicker dtpStartDateRange; + private System.Windows.Forms.ComboBox cmbDateTimeColumns; + private System.Windows.Forms.CheckBox chbUseDateRange; + private System.Windows.Forms.Label lblAndRange; + private System.Windows.Forms.GroupBox gbxDatesRange; + private Common.Controls.DelimiterSelector delimiterSelector1; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/ExportDialog.cs b/Source/Plugins/HydroDesktop.Plugins.DataExport/ExportDialog.cs new file mode 100644 index 00000000..9f63b3c0 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataExport/ExportDialog.cs @@ -0,0 +1,701 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics.Contracts; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Windows.Forms; +using HydroDesktop.Database; +using HydroDesktop.Help; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Plugins.DataExport +{ + /// + /// Export Data Form with BackgroundWorker and allow users to select themes to export. + /// + public partial class ExportDialog : Form + { + #region Fields + + private readonly DataTable _dataToExport; + private readonly IEnumerable _selectedThemes; + private bool _formIsClosing; + private readonly string _localHelpUri = Properties.Settings.Default.localHelpUri; + + #endregion + + #region Constructors + + /// + /// Initialize the ExportData form with themes to export + /// + public ExportDialog(IEnumerable selectedThemes = null) + { + _selectedThemes = selectedThemes; + InitializeComponent(); + } + + /// + /// Initialize the ExportData form with data table to export + /// + public ExportDialog(DataTable dataToExport) + { + if (dataToExport == null) throw new ArgumentNullException("dataToExport"); + if (dataToExport.Columns.Count == 0) + { + throw new ArgumentException("Data table for export must have at least one column."); + } + if (dataToExport.Rows.Count == 0) + { + throw new ArgumentException("Data table for export must have at least one row."); + } + Contract.EndContractBlock(); + + _dataToExport = dataToExport; + + InitializeComponent(); + } + + #endregion + + #region Initialization + + /// + /// Initialize the export form. + /// + private void ExportDialog_load(object sender, EventArgs e) + { + Cursor = Cursors.WaitCursor; + + if (ExportThemes) + { + //populate list box with list of themes + var repository = RepositoryFactory.Instance.Get(); + var dtThemes = repository.GetThemesForAllSeries(); + + clbThemes.Items.Clear(); + foreach (DataRow row in dtThemes.Rows) + { + var themeName = row["ThemeName"].ToString(); + var check = _selectedThemes == null || _selectedThemes.Contains(themeName); + var themeID = row["ThemeID"] == DBNull.Value ? (int?) null : Convert.ToInt32(row["ThemeID"]); + clbThemes.Items.Add(new ThemeDescription(themeID, themeName), check); + } + } + else + { + gbxThemes.Visible = false; + var themesHeight = gbxThemes.Height; + gbxThemes.Height = 0; + Height -= themesHeight; + gbxFields.Location = gbxThemes.Location; + gbxFields.Height = delimiterSelector1.Location.Y - 10 - gbxFields.Location.Y; + tcMain.TabPages.Remove(tpAdvancedOptions); + } + + // Populate checked list box with list of fields to export + LoadFieldList(); + + Cursor = Cursors.Default; + } + + /// + /// Initialize the ChecklistBox to show all the fields necessary. + /// + private void LoadFieldList() + { + //Set fields in CheckListBox + DataTable dtList; + + if (ExportThemes) + { + var repo = RepositoryFactory.Instance.Get(); + dtList = repo.GetTableForExport(-1); + }else + { + dtList = _dataToExport; + } + + //Headers shown in CheckListBox + for (int i = 0; i < dtList.Columns.Count; i++) + { + var header = dtList.Columns[i].ToString(); + var ind = clbExportItems.Items.Add(header); + clbExportItems.SetItemChecked(ind, true); + } + + // Fill DateTime columns + cmbDateTimeColumns.Items.Clear(); + foreach (DataColumn column in dtList.Columns) + { + if (column.DataType == typeof (DateTime)) + { + cmbDateTimeColumns.Items.Add(column.ColumnName); + } + } + if (cmbDateTimeColumns.Items.Count > 0) + { + cmbDateTimeColumns.SelectedIndex = 0; + } + chbUseDateRange_CheckedChanged(this, EventArgs.Empty); // To update "use date range" controls + } + + #endregion + + #region Private Methods + + private bool ExportThemes + { + get { return _dataToExport == null; } + } + + /// + /// BackgroundWorker method used to create a datatable including data queried from Databasein in all the fields selected. + /// + /// BackgroundWorker parameters passed from Export Button Click Event + /// BackgroundWorker (may be null), in order to show progress + /// Arguments from a BackgroundWorker (may be null), in order to support canceling + /// Return the BackgroundWorker result. + private string Exportdlg(BwParameters parameters, BackgroundWorker exportdlgWorker, DoWorkEventArgs e) + { + if (ExportThemes) + { + return ExportDataSeriesTable(parameters, exportdlgWorker, e); + } + return ExportAnyDataTable(parameters, exportdlgWorker, e); + } + + private string ExportDataSeriesTable(BwParameters parameters, BackgroundWorker backgroundWorker, DoWorkEventArgs e) + { + //get parameters + var fileName = parameters.OutputFileName; + var dtSeries = parameters.Series; + var checkNodata = parameters.CheckNoData; + var delimiter = parameters.Delimiter; + var checkedItems = parameters.Columns; + var datesRange = parameters.DatesRange; + + var repo = RepositoryFactory.Instance.Get(); + + //export data row by row + for (int r = 0; r < dtSeries.Rows.Count; r++) + { + var row = dtSeries.Rows[r]; + + //Check for cancel + if (backgroundWorker.CancellationPending) + { + e.Cancel = true; + return "Data Export Cancelled."; + } + + var noDataValue = !checkNodata? Convert.ToDouble(row["NoDataValue"]) : (double?) null; + + // Date range filter + string dateColumn = null; + DateTime? firstDate = null; + DateTime? lastDate = null; + if (datesRange != null) + { + dateColumn = datesRange.ColumnName; + firstDate = datesRange.StartDate; + lastDate = datesRange.EndDate; + } + var tbl = repo.GetTableForExport(Convert.ToInt64(row["SeriesID"]), noDataValue, dateColumn, firstDate, + lastDate); + + //Check for cancel + if (backgroundWorker.CancellationPending) + { + e.Cancel = true; + return "Data Export Cancelled."; + } + + //Construct columns that were selected + for (int i = 0; i < tbl.Columns.Count; i++) + { + var column = tbl.Columns[i]; + if (!checkedItems.Contains(column.ColumnName)) + { + tbl.Columns.Remove(column); + i--; + } + + //Check for cancel + if (backgroundWorker.CancellationPending) + { + e.Cancel = true; + return "Data Export Cancelled."; + } + } + + //Check for cancel + if (backgroundWorker.CancellationPending) + { + e.Cancel = true; + return "Data Export Cancelled."; + } + + var includeHeaders = r == 0; + ImportExport.DelimitedTextWriter.DataTableToDelimitedFile(tbl, fileName, delimiter, + includeHeaders, true, + backgroundWorker, e, + ImportExport.BackgroundWorkerReportingOptions.UserStateAndProgress); + + //progress report + var percent = (int)(((float)r / dtSeries.Rows.Count) * 100); + var userState = "Writing series " + r + " of " + dtSeries.Rows.Count + "..."; + backgroundWorker.ReportProgress(percent, userState); + } + + //Check for cancel + if (backgroundWorker.CancellationPending) + { + e.Cancel = true; + return "Data Export Cancelled."; + } + + return dtSeries.Rows.Count.ToString(CultureInfo.InvariantCulture) + " data series downloaded to: " + fileName ; + } + + private string ExportAnyDataTable(BwParameters parameters, BackgroundWorker backgroundWorker, DoWorkEventArgs e) + { + var filename = parameters.OutputFileName; + var checkedItems = parameters.Columns; + var delimiter = parameters.Delimiter; + var originalDataTable = parameters.Series; + + //Report status + backgroundWorker.ReportProgress(0, "Preparing output..."); + + DataTable exportDataTable; + if (checkedItems.Count == originalDataTable.Rows.Count) + { + exportDataTable = originalDataTable; + } + else + { + //Build a new datatable to accept selected columns in the original datatable and used to export. + exportDataTable = originalDataTable.Copy(); // copy + + //Check for cancel + if (backgroundWorker.CancellationPending) + { + e.Cancel = true; + return "Data Export Cancelled."; + } + + //Report status + backgroundWorker.ReportProgress(0, "Checking columns..."); + + //Remove unwanted columns + foreach (DataColumn column in originalDataTable.Columns) + { + //Check for cancel + if (backgroundWorker.CancellationPending) + { + e.Cancel = true; + return "Data Export Cancelled."; + } + + var columnName = column.ColumnName; + if (!checkedItems.Contains(columnName)) + { + exportDataTable.Columns.Remove(columnName); + } + + exportDataTable.AcceptChanges(); + } + } + + // Check for cancel + if (backgroundWorker.CancellationPending) + { + e.Cancel = true; + return "Data Export Cancelled."; + } + + ImportExport.DelimitedTextWriter.DataTableToDelimitedFile(exportDataTable, filename, delimiter, + true, false, backgroundWorker, e, + ImportExport.BackgroundWorkerReportingOptions.UserStateAndProgress); + + if (backgroundWorker.CancellationPending) + { + e.Cancel = true; + return "Data Export Cancelled."; + } + return "Export complete. Rows exported: " + exportDataTable.Rows.Count.ToString(CultureInfo.InvariantCulture); + } + + #endregion + + #region BackgroundWorker + + /// + /// BackgroundWorker Do event, used to call for the BackgroundWorker method. + /// + private void bgwMain_DoWork(object sender, DoWorkEventArgs e) + { + var parameters = e.Argument as BwParameters; + var worker = sender as BackgroundWorker; + e.Result = Exportdlg(parameters, worker, e); + } + + /// + /// BackgroundWorker Progress event, used to report the progress when doing BackgroundWorker. + /// + private void bgwMain_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + pgsBar.Value = e.ProgressPercentage; + + gbxProgress.Text = e.UserState.ToString(); + } + + /// + /// Enable all the buttons again when BackgroundWorker complete working. + /// + private void bgwMain_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) + { + Cursor = Cursors.Default; + + // Restore controls to their regular state + UpdateControlsState(false); + + if (e.Error != null) + { + MessageBox.Show(e.Error.Message); + } + + else if (e.Cancelled || e.Result.ToString() == "Data Export Cancelled.") + { + btncancel.Enabled = true; + // Close the form if the user clicked the X to close it. + if (_formIsClosing) + { + DialogResult = DialogResult.Cancel; + } + } + else + { + this.Close(); + MessageBox.Show(e.Result.ToString()); + } + } + + #endregion + + #region Button Click Event + + /// + ///Specify the location and file name to export, meanwhile check the delimiter. + /// + private void btnBrowse_Click(object sender, EventArgs e) + { + using (var saveFileDlg = new SaveFileDialog()) + { + saveFileDlg.Title = "Select file"; + saveFileDlg.OverwritePrompt = false; + saveFileDlg.Filter = delimiterSelector1.CurrentDelimiter == "," + ? "CSV (Comma delimited) (*.csv)|*.csv|Text (*.txt)|*.txt" + : "Text (*.txt)|*.txt"; + + if (saveFileDlg.ShowDialog() == DialogResult.OK) + { + tbOutPutFileName.Text = saveFileDlg.FileName; + } + } + } + + /// + /// Export data using BackgroundWorker. Build series table and pass parameters from here to BackgroundWorker. + /// + private void btnExport_Click(object sender, EventArgs e) + { + // Make sure we aren't still working on a previous task + if (bgwMain.IsBusy) + { + MessageBox.Show("The background worker is busy now. Please try later.", "Export To Text File", + MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + //Check the themes for export. There should be at least one item selected. + if (ExportThemes && clbThemes.CheckedItems.Count == 0) + { + MessageBox.Show("Please choose at least one theme to export", "Export To Text File", + MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + //Check the desired fields for export. There should be at least one item selected. + if (clbExportItems.CheckedItems.Count == 0) + { + MessageBox.Show("Please choose at least one field to export", "Export To Text File", + MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + //Check whether a delimiter is checked + var delimiter = delimiterSelector1.CurrentDelimiter; + if (String.IsNullOrEmpty(delimiter)) + { + MessageBox.Show("Please input delimiter.", "Export To Text File"); + return; + } + + //Check the output file path + string outputFilename = tbOutPutFileName.Text.Trim(); + + if (outputFilename == String.Empty) + { + MessageBox.Show("Please specify output filename", "Export To Text File"); + return; + } + if (Directory.Exists(Path.GetDirectoryName(outputFilename)) == false) + { + MessageBox.Show("The directory for the output filename does not exist", "Export To Text File"); + return; + } + + // Construct DataTable of all the series in the selected theme + DataTable dtSeries; + if (ExportThemes) + { + var themeIds = + (from ThemeDescription themeDescr in clbThemes.CheckedItems select themeDescr.ThemeId).ToList(); + var repository = RepositoryFactory.Instance.Get(); + dtSeries = repository.GetSeriesIDsWithNoDataValueTable(themeIds); + } + else + { + dtSeries = _dataToExport; + } + + var checkedItems = new List(); + foreach (var item in clbExportItems.CheckedItems.Cast().Where(item => !checkedItems.Contains(item))) + { + checkedItems.Add(item); + } + + DatesRange datesRange = null; + if (chbUseDateRange.Checked && cmbDateTimeColumns.SelectedIndex >= 0) + { + datesRange = new DatesRange + { + ColumnName = cmbDateTimeColumns.SelectedItem.ToString(), + StartDate = dtpStartDateRange.Value, + EndDate = dtpEndDateRange.Value, + }; + } + + + //Disable all the buttons after "Export" button is clicked. + UpdateControlsState(true); + + // Show hourglass + Cursor = Cursors.WaitCursor; + + //pass parameters to BackgroundWorker + var parameters = new BwParameters + { + CheckNoData = chkNodata.Checked, + Columns = checkedItems, + DatesRange = datesRange, + Delimiter = delimiter, + OutputFileName = outputFilename, + Series = dtSeries, + }; + + // Check for overwrite + if (File.Exists(outputFilename)) + { + var message = "File " + outputFilename + " already exists.\nWould you like to replace it?"; + var replace = MessageBox.Show(message, "Export To Text File", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (replace == DialogResult.No) + { + Cursor = Cursors.Default; + + // Restore controls to their regular state + UpdateControlsState(false); + return; + } + + File.Delete(outputFilename); + + bgwMain.RunWorkerAsync(parameters); + } + + else + { + bgwMain.RunWorkerAsync(parameters); + } + } + + private void UpdateControlsState(bool isExporting) + { + gbxDatesRange.Enabled = !isExporting; + btnExport.Enabled = !isExporting; + gbxThemes.Enabled = !isExporting; + gbxExport.Enabled = !isExporting; + btnSelectAllFields.Enabled = !isExporting; + btnSelectNoneFields.Enabled = !isExporting; + delimiterSelector1.Enabled = !isExporting; + gbxFields.Enabled = !isExporting; + gbxProgress.Enabled = isExporting; + gbxProgress.Visible = isExporting; + if (!isExporting) + { + pgsBar.Value = 0; + gbxProgress.Text = "Processing..."; + } + } + + /// + /// Opens a help topic for the item in context when the Help button is clicked. + /// + private void ThemeExportDialog_HelpButtonClicked(object sender, CancelEventArgs e) + { + LocalHelp.OpenHelpFile(_localHelpUri); + e.Cancel = true; // Prevents mouse cursor from changing to question mark. + } + + /// + /// Opens a help topic for the item in context when the user presses F1. + /// + private void ThemeExportDialog_HelpRequested(object sender, HelpEventArgs hlpevent) + { + LocalHelp.OpenHelpFile(_localHelpUri); + hlpevent.Handled = true; // Signal that we've handled the help request. + } + + #region CheckListBox Selection Events + + /// + /// If users want all the items, "Select All" button add all of them to the hashtable _checkedItems as Key. + /// + private void SelectAll_Click(object sender, EventArgs e) + { + SetCheckedItems(clbExportItems, true); + } + + /// + /// Users can use "Select None" button to remove all the items from the hashtable, and then select what they want again. + /// + private void SelectNone_Click(object sender, EventArgs e) + { + SetCheckedItems(clbExportItems, false); + } + + private void btnSelectAllThemes_Click(object sender, EventArgs e) + { + SetCheckedItems(clbThemes, true); + } + + private void btnSelectNoneThemes_Click(object sender, EventArgs e) + { + SetCheckedItems(clbThemes, false); + } + + private void SetCheckedItems(CheckedListBox clb, bool isChecked) + { + for (int c = 0; c < clb.Items.Count; c++) + { + clb.SetItemChecked(c, isChecked); + } + } + + private void chbUseDateRange_CheckedChanged(object sender, EventArgs e) + { + var useDateRange = chbUseDateRange.Checked; + cmbDateTimeColumns.Enabled = useDateRange; + dtpStartDateRange.Enabled = useDateRange; + lblAndRange.Enabled = useDateRange; + dtpEndDateRange.Enabled = useDateRange; + } + + #endregion + + #region Cancel Events + + /// + /// When "Cancel" button is clicked during the exporting process, BackgroundWorker stops. + /// + private void Cancel_worker() + { + bgwMain.CancelAsync(); + gbxProgress.Text = "Cancelling..."; + btncancel.Enabled = false; + } + + /// + /// When Export Form is closed, BackgroundWorker has to stop. + /// + private void ExportDialog_FormClosing(object sender, FormClosingEventArgs e) + { + if (!bgwMain.IsBusy) return; + Cancel_worker(); + _formIsClosing = true; + e.Cancel = true; + } + + /// + /// Close the form if Cancel button is clicked before or after an export event. + /// + private void btnCancel_Click(object sender, EventArgs e) + { + if (bgwMain.IsBusy) + { + Cancel_worker(); + } + else + { + DialogResult = DialogResult.Cancel; + } + } + + #endregion + + #endregion + + #region Helpers + + private class ThemeDescription + { + public int? ThemeId { get; private set; } + private string ThemeName { get; set; } + + public ThemeDescription(int? themeId, string themeName) + { + ThemeId = themeId; + ThemeName = themeName; + } + + public override string ToString() + { + return ThemeName; + } + } + + private class DatesRange + { + public string ColumnName { get; set; } + public DateTime StartDate { get; set; } + public DateTime EndDate { get; set; } + } + + private class BwParameters + { + public string OutputFileName { get; set; } + public DataTable Series { get; set; } + public bool CheckNoData { get; set; } + public string Delimiter { get; set; } + public List Columns { get; set; } + public DatesRange DatesRange { get; set; } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/ExportDialog.resx b/Source/Plugins/HydroDesktop.Plugins.DataExport/ExportDialog.resx new file mode 100644 index 00000000..853bbeac --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataExport/ExportDialog.resx @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLiosAHR0gA62trgh9fIAAAAAAAAAAAAD///88urm5km1r + boxRUFKOUVFUjXZ1eI/BwcKE////HQAAAAAAAAAALy82AMPDxAhBQEYCqKeoANjX2AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPjpEAb25yAHt7ewMTExYAvr6/AObm5iWTkpWPXl5h2TU0 + OPcgHyP/Fxcb/xYVGf8WFRn/Fxcb/yAgJP81NDjyXFxeyZWVl3m9vb8lysnKADs6PwCenp4CAAAAAHJy + dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7e3tANPS1ACPjpIBfHx9AJWVlx9ycnSPOzo+7RYU + GP8REBT/LSwv/05MTv1nZGb9cm9w/XFvb/1kYmP9TUtN/S8tMf8YFxv/ISAk/0pJS+2TkpOPsbCyEZ2c + ngD///8CioqLADk4PAAAAAAAAAAAAAAAAAAAAAAAAAAAANPT1AAAAAAAtra4Arq6uwB9fX5LVFNX6xoZ + Hf8hISb/WFpe/JKUlv2xs7T+vr/B/sLDxf7CxMT/w8XG/sLExf+1trf+lpeY/lNSVf0sLC78GRkg/xsb + Iv9nZWbclpaWPJycnQCZmZoCfXx/AAAAAAAAAAAAAAAAAAAAAAAAAAAAnp2fAH18fwKLi44AmJiaejc2 + Ov8PDRH/JiUq+1ZZXv5xdnz/c3l//nR7gv53foX/d3+F/3mAhv9yeH3/anB2/2Fobv9UWFv+YGhw/lti + bv9CPTT+KSIW+hARG/8+PUDwZmVmV3NydQB/foEDAAAAADc2OAAAAAAAaWhrAAAAAACKiYwCf36AAIeH + iXoqKS3/FhUZ/FBaY/1wgYz/anqG/mh3gv5re4b/b3+L/3GBjv9tfor/ZHSA/2Bve/9daXP/S1FW/1lq + fP9WXmT/YEoQ/n5bAP6GYgL/Tj0T/AsNGv8+PUH8mJiYYnV1dgB+fn8CNTU2AKuqqwB2dXkAYF9hAm5t + bwCOjpBJNTQ4/xQRE/xDT1r9YnmK/1twf/5Zbnv/WW99/1FjcP9EUFv/Qk1W/0ZSXP9NXWj/SlZg/zY/ + R/9BWHD/WlY+/5RpAP+5hgD/soIA/61+AP62hAD/clYP/BASHP47Oj3venp7PE5NTwBKSUsCnZyeAIGA + gwR2dXYAiYmKHEdGSu4VFBf9LjxG/DRDT/8zRFD+OU9d/0JecP9GY3j/R2R6/0Ridv9BXHD/PlRp/ztP + ZP86S2H/OUle/2xaJf/DigD/ypQD/6Z7CP+ygwb/xJAC/8OQAv7NlQH/Zk8U+woMHf9mZWXgUlJSBFxc + XAGrqqsBLy4wBEhHSAB/gIKwGxcb/yUsOfw3VXD+NVFr/zRQav81UWv/MERY/yw/TP8tP0z/Lj5O/zBC + Tf8vSUn/ME9J/yVQTv9bXiP/vY4C/8qeCP/SpQX/w5oH/8OYB//bqgP/3q0C/9OkA/7hrgP+STwX+xUW + I/+PjYt/QEBBAEhHSwbDw8QA0NHRQDs6Pv0YGhz8KUg//ilOQ/8pT0L+KU9E/ylPRP8tdlD/NJBc/zWT + X/8vkV7/J49e/yeZY/8plF//MJFZ/02JRv+eiRX//8EA//7BAP//yAD/+sUA//K9AP/1vwD/9L4A/v7G + AP/Fmgf9FBMb/UpJTPOcnJokoqKkASEgIgBkZ2iUHxcg/ihWPPs3qWL/NqVi/jeraP84qmr/OK1u/zq0 + dP8ztHf/KqNu/0SZZf96n1r/p6hL/76lN//cqyH/46kL/8OdC/+Jhh//b4Er/3pyG//gqQD/+8YA/+y5 + Af/vugD/7rkA/vvDAP5dSxP7HB4t/52bl3mNjY8ATU9OFT8/QtcaGBz+M4xX/TiraP43pWn/OKht/ziq + cP85rHP/M6x1/1eXZ//Armr/68Jp//vKXP/mvEn/07g+/5yZN/9QjE3/L5Ri/ymcZ/8soGX/J5Fc/0Vp + Nf+2hgT//8cA//G9AP/tuQD//cUA/7KMCvwQEh/+WFZWyRYVGAHKz82RLikv9x8yKf83pWX+NqZo/zip + bf84q3H/N651/zmxef81s33/Sp5v/6esbv/lxnD/wqZa/1SLXP8unnH/IKh6/y+veP86rW7/O6ln/zqj + Yv89pl7/L5td/zBrQv+NfBb/67UA//bAAP/2wAD+47EC/igjGP47O0Lz///7G1xgYOUgGCH+JlE6/ziv + a/83p2v/OKtw/ziudv84sXv/OLR//zm3gf8zvIf/J66A/zyleP9opG7/lKdh/5SiVv9tn1r/QaNr/zeq + cP84qGv/N6Zm/zegYf87pFz/K4BQ/2FsJv/Ingb/5rMC/+a0Af/5wQD+T0EU/SQmMv3e29OFREhJ/x0V + Hf4sZkb/ObBt/jenbf84rXT/OLF6/zm0f/85t4P/OLqH/zm7iv86v47/NcCP/y27jP8zr4H/Wp1p/5CO + Rv9zlU//L6l0/zqrbv83p2n/NqRk/zegXv82mlj/NpVW/ziUVP81ekf/iHYV//3GAP9vWhL8GBsq/5eT + iZAwNDX+HRUd/ix2Tf86u3X/Oa5z/ziudv84sXz/OLWB/zi5h/85vIz/N7+Q/zi/kv84w5X/M7iM/2Gc + bf9slWL/S49i/06LW/8+pW7/Nq1y/zina/83pWX/OKFg/zefW/86pl3/Ko1Y/3NwHf/1vQD//sgA/oBn + EP0UFib+ZmJXjS4wMv4cGR7+L0w+/zF+Vv8umGX/N7Z7/zm/hv86wov/OsOQ/znBkv84wJP/N8WZ/zm/ + lP9BqIH/R6N6/0KXb/9biVz/YZVc/z6mcP82rHP/OKdr/zalZv83oWH/N51a/zagXP8xZj7/p38J/+u1 + Af/+xwH+gWgQ/RQWJv5jXlSNRENG/xgYHP5TTE//cGZp/kZKSf8wWkn/LnJX/yyFZP8unnf/NLmO/zbT + pP87xJv/X4Nn/1WXc/9Hv4//QruK/zjCjP8wxIz/OL2C/zu3ef87s3P/OK5s/zirZv84pl//OKVd/zal + Xf8iiVb/S1wi//G4AP91Xg/8Fhkr/46KgJBjYmX2Ghke/01MTv+WlJH/hX9+/3Rqa/9nWl7/VExP/0dD + Rf8xS0T/Lnhl/z9cUP9WhWr/MoNr/yqLbv8uj2//MXxg/zd+X/8vfFv/JHpW/yV5Uv8qflL/KX1O/yt4 + Sv8td0n/NHpM/0OIV/9NeVT/y69O/l1PKf0eICz9zMrFhbKytJAlJSn1NzY5/6GenP6Uko//jo2K/4aF + gv9/fXr/dnNy/2ZfYP9cT1H/dWdb/1ZVUP9OSUv/TUJE/1dOTf9PREn/Mikz/y4kKP9MQTn/pZBt/8Ou + gf/Aqn//x6+D/8uzhv/YvYz/7c2Y//fbov7t16f+Liwt/jY1OfT///8crq6uJEFBROIbGh7+npub/ayp + p/6dmpn/l5SS/46Lif+Egn//fXt5/3h2cv96dm3/Y2Be/15dWv9fX13/OjxB/0A/Of+UhmD/18KF//rd + lv//45r+/d+Y///jm/7/4Zn+/+GY//zelv7ly4r//+WZ/76oc/0PDxb+Wllb2hgXGwYSEhMCcXByrhQT + F/5zcXP70s/O/7m1sv+ppqP/oZ6c/5yZl/+QjYv/hoOB/3x5eP9/e3f/ZGNm/zo5Ov+Wg1T+6Mt8///k + jf3/3oj699WE+/bUg/3/3oj78M58/fnWgf3004P8+daF/nlqSv7kx3v+cWNG+xcYIv+Fg4N5c3F0AJ6e + nwC7urtELi0x+ykoK/2PjpD+q6uz/srHxP++u7j/pKGg/6Sgnv+jn5v/lpOS/2VmbP9MRjz+wKRc/v/c + e//61Hb827pm/9a3av/sx2n/6cZq/21dPP9rZFT/qZNg//HLav//2nP/SkIy/1RLN/0rKCP+Nzc9646O + jSaampsDLS0tBUZFRgBzcnO3EhIa/z42I/tzZT3/dXeA/qKhov+dm5v/o6Cg/3R0e/9KRkD/dmY7/+bB + Wf//1Wb//9Zg/cmmS/9mYVvdQ0NGcqyhhrp8clnzR0lUvpCTnkSanaVcuqqB36CNXvkrKCX+EhMd+yAf + JP16eXujKCcpADk4PAB3d3kGZWVmAHx7ezBBQET4GRgd/MCgQP2piSr/Z2lw/vr7/f+Mjpf/dWQ1/+G6 + QP/+0U3/+c1M/vTIR/2tkkT9qJ+Hsnh+lBtSUlcAAAAAAP///x0AAAAAp6WhAE5NTwBiZXEKcXOAcSQk + KfsaGBv6FxYa/z49Qf+IiIrHzs3OTnFxcwBMTE0CSEhJAJSTk3QhISn/GRgc+tewMv7AnjP/bG9+/pZ/ + Ov/3xy3/+co3/+/CMv/2yDT95Lcs/kpHROymq7t2jIuFoY+QlWRgYGMAYGBkAPTz7gCZmpwECwoMABYV + FwBdXF2iGRgc/y0sMP9ZWVvYX19ikZSUll/T0tMbgoKDAAAAAAB6eXsDbm1wAHV0dIMhIin/GRgc+7iU + H/3Lnwz/9MIa/vLBH//vvh3/8sEe//LAHf/zwh3/w50e/sqhHP/arA3/lH85/Wh0oF1xe55io6OjG7Gy + swDc3dwUvb29OmFgY+poZ2qwx8fIT////wefnp4AfX1+AMC9vwAAAAAAAAAAAL29vQBzc3UCbW1uA3Bv + b4MmJiz/Cw0Z/4dtG/votgr+/8gF/vjCB/7wvAj/7rsI/u67CP75wwj/9sEG/PnECvvksgX/zKMY/5uG + PP+cpMRDdnZ0SFpZXNegn6G68/P0awAAAADk5OUAiYiLAE9OTwNcXF4D4ODhAAAAAAAAAAAAx8bHAFJX + VwBgYGAAenl7AJWVlXZBQUT2CQsd/y4nF/6NcQ782KkE/vfAAP7/yAD+/8cA/v7FAP/+xgD+/8cA///J + AP7/yQD9lXgT+1BUZ9srKSn/ERAU/2dmaeSGhYYvuLe4AaysrQTKyswABAMFAGtrbQAAAAAAAAAAAAAA + AAD5+fgAioqLAAAAAACZmZoCqamqAMPDwzNvbm2zMDA5/g8RI/8dGxr/TD8W/3piEf+YeQ3/p4MM/6WC + DP+Udg7/c10S/0I3GP8aGBj/ERAU/zs6Pv6Fg4asjIyNIF9fYACurK4AtLS1AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH18fgD///8CwcHCAAAAAAB4eHdFZmRiq0VESOMkJjL6ExYm/BIU + JP4TFSP/ExUj/xIUJP4VFyf9Jygz9U1NUuKJiIqVeHh4QNXU1QDZ2doA////Ar++vwC8u70AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWRmAAAAAAC+vr8G////BElJSwB8fHsA////Mrm2 + sLhvbGTQVlJN+0A9Ov9DPzz/W1hT+n97c9XBv7eQ////KAAAAAAmJicA////BMrKywQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//gf///AA///AAD//gAAf/gAAB/wAAAP8AAAD+AAAAfAAAADwAAAA4AA + AAGAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAcAAAAPAAAID4AB/geAA + H4HwAAef+AAGP/wAAH//AAD//8AD///wD/8= + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/HydroDesktop.Plugins.DataExport.csproj b/Source/Plugins/HydroDesktop.Plugins.DataExport/HydroDesktop.Plugins.DataExport.csproj new file mode 100644 index 00000000..a9f6e807 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataExport/HydroDesktop.Plugins.DataExport.csproj @@ -0,0 +1,204 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {9F73BC93-7B63-4D69-993A-03A0B2D0E2B2} + Library + Properties + HydroDesktop.Plugins.DataExport + HydroDesktop.Plugins.DataExport + v4.0 + 512 + + + + + 3.5 + + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataExport\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataExport\HydroDesktop.Plugins.DataExport.XML + 1591 + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataExport\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataExport\ + DEBUG;TRACE + full + x86 + prompt + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataExport\HydroDesktop.Plugins.DataExport.XML + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataExport\ + TRACE + true + pdbonly + x86 + prompt + false + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + 3.5 + + + + + + + + + True + True + Resources.resx + + + True + True + Settings.settings + + + Form + + + ExportDialog.cs + + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + ExportDialog.cs + + + + + + Designer + + + + + + + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + {ceb869c6-ed48-4846-9040-4e82ab58b86b} + HydroDesktop.Data + False + + + {F09E70CC-9D65-45C2-A451-D22CFB400C26} + HydroDesktop.Help + False + + + {0B9BA90B-2016-4754-915A-0AD74FD0067A} + HydroDesktop.Interfaces + False + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/HydroDesktop.Plugins.DataExport.nuspec b/Source/Plugins/HydroDesktop.Plugins.DataExport/HydroDesktop.Plugins.DataExport.nuspec new file mode 100644 index 00000000..1ee6f684 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataExport/HydroDesktop.Plugins.DataExport.nuspec @@ -0,0 +1,19 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/Main.cs b/Source/Plugins/HydroDesktop.Plugins.DataExport/Main.cs new file mode 100644 index 00000000..d568c500 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataExport/Main.cs @@ -0,0 +1,93 @@ +using System; +using System.Data; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using DotSpatial.Symbology; +using HydroDesktop.Common; +using HydroDesktop.Interfaces.PluginContracts; + +namespace HydroDesktop.Plugins.DataExport +{ + /// + /// The main data export plugin class + /// + public class Main : Extension, IDataExportPlugin + { + #region Variables + + //reference to the main application and it's UI items + /// + /// The key of the "Table" ribbon tab + /// + private readonly string TableTabKey = SharedConstants.TableRootKey; + + /// + /// The name of the "Data Export" panel on the table ribbon + /// + private const string _panelName = "Data Export"; + + #endregion + + #region IExtension Members + + /// + /// Fires when the plugin should become inactive + /// + public override void Deactivate() + { + App.HeaderControl.RemoveAll(); + + base.Deactivate(); + } + + #endregion + + #region IPlugin Members + + /// + /// activate the data export plugin + /// + public override void Activate() + { + //Add "DataExport" button to the new "Data Export" Panel in "Data" ribbon tab + var dataExportBtn = new SimpleActionItem("Export", dataExportBtn_Click) + { + RootKey = TableTabKey, + LargeImage = Properties.Resources.archive, + SmallImage = Properties.Resources.archive_16, + ToolTipText = "Export Time Series Data", + GroupCaption = _panelName + }; + App.HeaderControl.Add(dataExportBtn); + + base.Activate(); + } + + #endregion + + #region Event Handlers + + void dataExportBtn_Click(object sender, EventArgs e) + { + Export((IFeatureLayer)null); + } + + #endregion + + #region IDataExportPlugin implementation + + public void Export(IFeatureLayer layer) + { + var dialog = new ExportDialog(layer == null? null : new []{layer.LegendText}); + dialog.ShowDialog(); + } + + public void Export(DataTable dataTable) + { + var dialog = new ExportDialog(dataTable); + dialog.ShowDialog(); + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.DataExport/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..e83fce94 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataExport/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.DataExport")] +[assembly: AssemblyDescription("Export Data from HydroDesktop")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Jingqi Dong")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.DataExport")] +[assembly: AssemblyCopyright("Copyright © CUAHSI 2010-2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("167fb1c6-546d-445b-be9d-cb03e59223f7")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataExport/Properties/Resources.Designer.cs new file mode 100644 index 00000000..bff3c45b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataExport/Properties/Resources.Designer.cs @@ -0,0 +1,83 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.DataExport.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.DataExport.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap archive { + get { + object obj = ResourceManager.GetObject("archive", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap archive_16 { + get { + object obj = ResourceManager.GetObject("archive_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.DataExport/Properties/Resources.resx new file mode 100644 index 00000000..df1fdac0 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataExport/Properties/Resources.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + ..\Resources\archive.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\archive_16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/Properties/Settings.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataExport/Properties/Settings.Designer.cs new file mode 100644 index 00000000..213de721 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataExport/Properties/Settings.Designer.cs @@ -0,0 +1,38 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.DataExport.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.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; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("data-export.html")] + public string localHelpUri { + get { + return ((string)(this["localHelpUri"])); + } + set { + this["localHelpUri"] = value; + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/Properties/Settings.settings b/Source/Plugins/HydroDesktop.Plugins.DataExport/Properties/Settings.settings new file mode 100644 index 00000000..86d7bc33 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataExport/Properties/Settings.settings @@ -0,0 +1,9 @@ + + + + + + data-export.html + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/Resources/DataExport.gif b/Source/Plugins/HydroDesktop.Plugins.DataExport/Resources/DataExport.gif new file mode 100644 index 00000000..a4f6d40c Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataExport/Resources/DataExport.gif differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/Resources/archive.png b/Source/Plugins/HydroDesktop.Plugins.DataExport/Resources/archive.png new file mode 100644 index 00000000..097a7623 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataExport/Resources/archive.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/Resources/archive_16.png b/Source/Plugins/HydroDesktop.Plugins.DataExport/Resources/archive_16.png new file mode 100644 index 00000000..60f1e3c5 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataExport/Resources/archive_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/app.config b/Source/Plugins/HydroDesktop.Plugins.DataExport/app.config new file mode 100644 index 00000000..3e39340a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataExport/app.config @@ -0,0 +1,15 @@ + + + + +
    + + + + + + data-export.html + + + + diff --git a/Source/Plugins/HydroDesktop.Plugins.DataExport/packages.config b/Source/Plugins/HydroDesktop.Plugins.DataExport/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataExport/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/ColumnInfo.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/ColumnInfo.cs new file mode 100644 index 00000000..5c146a18 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/ColumnInfo.cs @@ -0,0 +1,152 @@ +using System; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.DataImport +{ + /// + /// Contains info about column to import + /// + public class ColumnInfo : ICloneable, IEquatable + { + /// + /// Gets or sets value indicating that this column should be imported into database. + /// + public bool ImportColumn { get; set; } + + /// + /// Gets or sets index of this column in the source data table. + /// + public int ColumnIndex { get; set; } + + /// + /// Gets or sets name of this column in the source data table. + /// + public string ColumnName { get; set; } + + /// + /// Gets or sets value indicating that Site from this column should be applied to all other columns. + /// + public bool ApplySiteToAllColumns { get; set; } + + /// + /// Gets or sets value indicating that Variable from this column should be applied to all other columns. + /// + public bool ApplyVariableToAllColumns { get; set; } + + /// + /// Gets or sets value indicating that Source from this column should be applied to all other columns. + /// + public bool ApplySourceToAllColumns { get; set; } + + /// + /// Gets or sets value indicating that Method from this column should be applied to all other columns. + /// + public bool ApplyMethodToAllColumns { get; set; } + + /// + /// Gets or sets value indicating that QualityControl from this column should be applied to all other columns. + /// + public bool ApplyQualityControlToAllColumns { get; set; } + + /// + /// Gets or sets value indicating that OffsetType and OffsetValue from this column should be applied to all other columns. + /// + public bool ApplyOffsetToAllColumns { get; set; } + + /// + /// Gets or sets Site for this column. + /// + public Site Site { get; set; } + + /// + /// Gets or sets Variable for this column. + /// + public Variable Variable { get; set; } + + /// + /// Gets or sets QualityControlLevel for this column. + /// + public QualityControlLevel QualityControlLevel { get; set; } + + /// + /// Gets or sets Method for this column. + /// + public Method Method { get; set; } + + /// + /// Gets or sets Source for this column. + /// + public Source Source { get; set; } + + /// + /// Gets or sets OffsetType for this column. + /// + public OffsetType OffsetType { get; set; } + + /// + /// Gets or sets OffsetValue for this column. + /// + public double OffsetValue { get; set; } + + /// + /// Creates a new object that is a copy of the current instance. + /// + /// + /// A new object that is a copy of this instance. + /// + /// 2 + public object Clone() + { + var copy = (ColumnInfo) MemberwiseClone(); + + if (copy.Site != null) copy.Site = (Site) copy.Site.Clone(); + if (copy.Variable != null) copy.Variable = (Variable) copy.Variable.Clone(); + if (copy.QualityControlLevel != null) + copy.QualityControlLevel = (QualityControlLevel) copy.QualityControlLevel.Clone(); + if (copy.Method != null) copy.Method = (Method) copy.Method.Clone(); + if (copy.Source != null) copy.Source = (Source) copy.Source.Clone(); + if (copy.OffsetType != null) copy.OffsetType = (OffsetType) copy.OffsetType.Clone(); + + return copy; + } + + /// + /// Indicates whether the current object is equal to another object of the same type. + /// + /// + /// true if the current object is equal to the parameter; otherwise, false. + /// + /// An object to compare with this object. + public virtual bool Equals(ColumnInfo other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.ColumnIndex == ColumnIndex && other.ColumnName == ColumnName; + } + + /// + /// Determines whether the specified is equal to the current . + /// + /// + /// true if the specified is equal to the current ; otherwise, false. + /// + /// The to compare with the current . 2 + public override bool Equals(object obj) + { + return Equals(obj as ColumnInfo); + } + + /// + /// Serves as a hash function for a particular type. + /// + /// + /// A hash code for the current . + /// + /// 2 + public override int GetHashCode() + { + return (ColumnName + ColumnIndex).GetHashCode(); + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Complete/CompletePage.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Complete/CompletePage.Designer.cs new file mode 100644 index 00000000..e75cc774 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Complete/CompletePage.Designer.cs @@ -0,0 +1,67 @@ +namespace HydroDesktop.Plugins.DataImport.CommonPages.Complete +{ + partial class CompletePage + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.lblInfo = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // Sidebar + // + this.Sidebar.Size = new System.Drawing.Size(165, 304); + // + // lblInfo + // + this.lblInfo.AutoSize = true; + this.lblInfo.Location = new System.Drawing.Point(183, 134); + this.lblInfo.Name = "lblInfo"; + this.lblInfo.Size = new System.Drawing.Size(84, 13); + this.lblInfo.TabIndex = 1; + this.lblInfo.Text = "Import finished..."; + // + // CompletePage + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Caption = ""; + this.Controls.Add(this.lblInfo); + this.Name = "CompletePage"; + this.Size = new System.Drawing.Size(424, 304); + this.SetActive += new System.ComponentModel.CancelEventHandler(this.CompletePage_SetActive); + this.Controls.SetChildIndex(this.lblInfo, 0); + this.Controls.SetChildIndex(this.Sidebar, 0); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblInfo; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Complete/CompletePage.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Complete/CompletePage.cs new file mode 100644 index 00000000..bfea5eac --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Complete/CompletePage.cs @@ -0,0 +1,24 @@ +using System.ComponentModel; +using Wizard.UI; + +namespace HydroDesktop.Plugins.DataImport.CommonPages.Complete +{ + /// + /// Wizard Complete page + /// + public partial class CompletePage : ExternalWizardPage + { + /// + /// Creates new instance of + /// + public CompletePage() + { + InitializeComponent(); + } + + private void CompletePage_SetActive(object sender, CancelEventArgs e) + { + SetWizardButtons(WizardButtons.Finish); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Complete/CompletePage.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Complete/CompletePage.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Complete/CompletePage.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/ColumnsToImportControl.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/ColumnsToImportControl.Designer.cs new file mode 100644 index 00000000..bf4b73dc --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/ColumnsToImportControl.Designer.cs @@ -0,0 +1,107 @@ +namespace HydroDesktop.Plugins.DataImport.CommonPages.FieldProperties +{ + partial class ColumnsToImportControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.btnAdd = new System.Windows.Forms.Button(); + this.btnEdit = new System.Windows.Forms.Button(); + this.btnRemove = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.SuspendLayout(); + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.AllowUserToDeleteRows = false; + this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Location = new System.Drawing.Point(3, 3); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.ReadOnly = true; + this.dataGridView1.Size = new System.Drawing.Size(351, 108); + this.dataGridView1.TabIndex = 0; + // + // btnAdd + // + this.btnAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnAdd.Location = new System.Drawing.Point(360, 3); + this.btnAdd.Name = "btnAdd"; + this.btnAdd.Size = new System.Drawing.Size(75, 23); + this.btnAdd.TabIndex = 1; + this.btnAdd.Text = "Add..."; + this.btnAdd.UseVisualStyleBackColor = true; + this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); + // + // btnEdit + // + this.btnEdit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnEdit.Location = new System.Drawing.Point(360, 33); + this.btnEdit.Name = "btnEdit"; + this.btnEdit.Size = new System.Drawing.Size(75, 23); + this.btnEdit.TabIndex = 2; + this.btnEdit.Text = "Edit..."; + this.btnEdit.UseVisualStyleBackColor = true; + this.btnEdit.Click += new System.EventHandler(this.btnEdit_Click); + // + // btnRemove + // + this.btnRemove.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnRemove.Location = new System.Drawing.Point(360, 63); + this.btnRemove.Name = "btnRemove"; + this.btnRemove.Size = new System.Drawing.Size(75, 23); + this.btnRemove.TabIndex = 3; + this.btnRemove.Text = "Remove"; + this.btnRemove.UseVisualStyleBackColor = true; + this.btnRemove.Click += new System.EventHandler(this.btnRemove_Click); + // + // ColumnsToImportControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.btnRemove); + this.Controls.Add(this.btnEdit); + this.Controls.Add(this.btnAdd); + this.Controls.Add(this.dataGridView1); + this.Name = "ColumnsToImportControl"; + this.Size = new System.Drawing.Size(438, 117); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.Button btnAdd; + private System.Windows.Forms.Button btnEdit; + private System.Windows.Forms.Button btnRemove; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/ColumnsToImportControl.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/ColumnsToImportControl.cs new file mode 100644 index 00000000..80443311 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/ColumnsToImportControl.cs @@ -0,0 +1,186 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; + +namespace HydroDesktop.Plugins.DataImport.CommonPages.FieldProperties +{ + /// + /// Shows grid with columns to import + /// + public partial class ColumnsToImportControl : UserControl + { + #region Fields + + private IList _columnInfos; + + #endregion + + #region Events + + /// + /// Raised when "Remove" button was clicked. + /// + public event EventHandler RemoveClick; + + /// + /// Raised when "Edit..." button was clicked. + /// + public event EventHandler EditClick; + + /// + /// Raised when "Add..." button was clicked. + /// + public event EventHandler AddClick; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public ColumnsToImportControl() + { + InitializeComponent(); + + dataGridView1.AutoGenerateColumns = false; + dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridView1.Columns.Clear(); + dataGridView1.Columns.Add(new DataGridViewTextBoxColumn + { + DataPropertyName = NameHelper.Name(x => x.ColumnName), + HeaderText = "ValueColumn", + }); + dataGridView1.Columns.Add(new DataGridViewTextBoxColumn + { + DataPropertyName = NameHelper.Name(x => x.SiteName), + HeaderText = "Site" + }); + dataGridView1.Columns.Add(new DataGridViewTextBoxColumn + { + DataPropertyName = NameHelper.Name(x => x.VariableName), + HeaderText = "Variable" + }); + } + + #endregion + + #region Public methods + + /// + /// Set data source (columns to import) to current control. + /// + /// List of columnInfo. + public void SetDataSource(IList columnInfos) + { + _columnInfos = columnInfos; + RefreshData(); + } + + /// + /// Refresh data + /// + public void RefreshData() + { + dataGridView1.DataSource = + _columnInfos.Where(c => c.ImportColumn).Select(c => new ColumnInfoWrapper(c)).ToList(); + } + + #endregion + + #region Private methods + + private void btnRemove_Click(object sender, EventArgs e) + { + var selected = GetSelectedColumnInfos(); + var handler = RemoveClick; + if (handler != null) + { + handler(this, new ColumnsToProcessEventArgs(selected)); + } + } + + private void btnEdit_Click(object sender, EventArgs e) + { + var selected = GetSelectedColumnInfos(); + var handler = EditClick; + if (handler != null) + { + handler(this, new ColumnsToProcessEventArgs(selected)); + } + } + + private void btnAdd_Click(object sender, EventArgs e) + { + var handler = AddClick; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + + private IList GetSelectedColumnInfos() + { + var selected = dataGridView1.SelectedRows.OfType() + .Select(r => ((ColumnInfoWrapper)r.DataBoundItem).Source) + .ToList(); + return selected; + } + + #endregion + + #region Nested class: ColumnInfoWrapper + + /// + /// This class need only for showing second-level properties in data grid view. + /// + private class ColumnInfoWrapper + { + public ColumnInfoWrapper(ColumnInfo source) + { + Source = source; + } + + public ColumnInfo Source { get; private set; } + + public string ColumnName + { + get { return Source.ColumnName; } + } + + public string SiteName + { + get { return Source.Site != null ? Source.Site.Name : null; } + } + + public string VariableName + { + get { return Source.Variable != null ? Source.Variable.Name : null; } + } + } + + #endregion + } + + /// + /// Contains info about columns to process + /// + public class ColumnsToProcessEventArgs : EventArgs + { + /// + /// Create new instance of + /// + /// List of columns to process + public ColumnsToProcessEventArgs(IList columnInfos) + { + Columns = columnInfos; + } + + /// + /// Columns to process + /// + public IList Columns { get; private set; } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/ColumnsToImportControl.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/ColumnsToImportControl.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/ColumnsToImportControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/CreateUnitForm.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/CreateUnitForm.Designer.cs new file mode 100644 index 00000000..37ed3d63 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/CreateUnitForm.Designer.cs @@ -0,0 +1,90 @@ +namespace HydroDesktop.Plugins.DataImport.CommonPages.FieldProperties +{ + partial class CreateUnitForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnCancel = new System.Windows.Forms.Button(); + this.btnOK = new System.Windows.Forms.Button(); + this.unitView1 = new DataImport.CommonPages.FieldProperties.UnitView(); + this.SuspendLayout(); + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(205, 122); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 8; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.Location = new System.Drawing.Point(114, 122); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 7; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + this.btnOK.Click += new System.EventHandler(this.btnOK_Click); + // + // unitView1 + // + this.unitView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.unitView1.Location = new System.Drawing.Point(12, 12); + this.unitView1.Name = "unitView1"; + this.unitView1.Size = new System.Drawing.Size(268, 100); + this.unitView1.TabIndex = 9; + // + // CreateUnitForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(292, 157); + this.Controls.Add(this.unitView1); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "CreateUnitForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Create new Unit"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Button btnOK; + private UnitView unitView1; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/CreateUnitForm.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/CreateUnitForm.cs new file mode 100644 index 00000000..88ef7d64 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/CreateUnitForm.cs @@ -0,0 +1,54 @@ +using System; +using System.Windows.Forms; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.DataImport.CommonPages.FieldProperties +{ + /// + /// Allow to create new Unit + /// + public partial class CreateUnitForm : Form + { + #region Constructors + + /// + /// Create new instance of + /// + public CreateUnitForm() + { + InitializeComponent(); + } + + #endregion + + #region Properties + + /// + /// Gets or sets current Entity + /// + public Unit Entity + { + get { return unitView1.Entity; } + set { unitView1.Entity = value; } + } + + #endregion + + #region Private methods + + private void btnOK_Click(object sender, EventArgs e) + { + var error = unitView1.EntityValidate(); + if (!string.IsNullOrEmpty(error)) + { + MessageBox.Show(error, "Validation", MessageBoxButtons.OK, MessageBoxIcon.Error); + DialogResult = DialogResult.None; + return; + } + + DialogResult = DialogResult.OK; + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/CreateUnitForm.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/CreateUnitForm.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/CreateUnitForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesForm.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesForm.Designer.cs new file mode 100644 index 00000000..e64ae5aa --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesForm.Designer.cs @@ -0,0 +1,465 @@ +namespace HydroDesktop.Plugins.DataImport.CommonPages +{ + partial class FieldPropertiesForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tbProperties = new System.Windows.Forms.TabControl(); + this.tbSite = new System.Windows.Forms.TabPage(); + this.chApplySiteToAllCoumns = new System.Windows.Forms.CheckBox(); + this.btnCreateNewSite = new System.Windows.Forms.Button(); + this.siteView1 = new DataImport.CommonPages.SiteView(); + this.cmbSites = new System.Windows.Forms.ComboBox(); + this.lblSelectSite = new System.Windows.Forms.Label(); + this.tbVariable = new System.Windows.Forms.TabPage(); + this.chApplyVariableToAllColumns = new System.Windows.Forms.CheckBox(); + this.btnCreateNewVariable = new System.Windows.Forms.Button(); + this.cmbVariables = new System.Windows.Forms.ComboBox(); + this.lblSelectVariable = new System.Windows.Forms.Label(); + this.variableView1 = new DataImport.CommonPages.VariableView(); + this.tpSource = new System.Windows.Forms.TabPage(); + this.chApplySourceToAllColumns = new System.Windows.Forms.CheckBox(); + this.sourceView1 = new DataImport.CommonPages.SourceView(); + this.tpMethod = new System.Windows.Forms.TabPage(); + this.chApplyMethodToAllColumns = new System.Windows.Forms.CheckBox(); + this.methodView1 = new DataImport.CommonPages.MethodView(); + this.tpQualityControl = new System.Windows.Forms.TabPage(); + this.chApplyQualityControlToAllColumns = new System.Windows.Forms.CheckBox(); + this.qualityControlLevelView1 = new DataImport.CommonPages.QualityControlLevelView(); + this.tpOffset = new System.Windows.Forms.TabPage(); + this.offsetTypeView1 = new DataImport.CommonPages.FieldProperties.OffsetTypeView(); + this.lblValue = new System.Windows.Forms.Label(); + this.nudOffsetValue = new DataImport.CommonPages.NumericUpDownEx(); + this.btnOK = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.sitesBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.variablesBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.chApplyOffsetToAllColumns = new System.Windows.Forms.CheckBox(); + this.tbProperties.SuspendLayout(); + this.tbSite.SuspendLayout(); + this.tbVariable.SuspendLayout(); + this.tpSource.SuspendLayout(); + this.tpMethod.SuspendLayout(); + this.tpQualityControl.SuspendLayout(); + this.tpOffset.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudOffsetValue)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.sitesBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.variablesBindingSource)).BeginInit(); + this.SuspendLayout(); + // + // tbProperties + // + this.tbProperties.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbProperties.Controls.Add(this.tbSite); + this.tbProperties.Controls.Add(this.tbVariable); + this.tbProperties.Controls.Add(this.tpSource); + this.tbProperties.Controls.Add(this.tpMethod); + this.tbProperties.Controls.Add(this.tpQualityControl); + this.tbProperties.Controls.Add(this.tpOffset); + this.tbProperties.Location = new System.Drawing.Point(12, 12); + this.tbProperties.Name = "tbProperties"; + this.tbProperties.SelectedIndex = 0; + this.tbProperties.Size = new System.Drawing.Size(449, 415); + this.tbProperties.TabIndex = 0; + // + // tbSite + // + this.tbSite.Controls.Add(this.chApplySiteToAllCoumns); + this.tbSite.Controls.Add(this.btnCreateNewSite); + this.tbSite.Controls.Add(this.siteView1); + this.tbSite.Controls.Add(this.cmbSites); + this.tbSite.Controls.Add(this.lblSelectSite); + this.tbSite.Location = new System.Drawing.Point(4, 22); + this.tbSite.Name = "tbSite"; + this.tbSite.Padding = new System.Windows.Forms.Padding(3); + this.tbSite.Size = new System.Drawing.Size(441, 389); + this.tbSite.TabIndex = 0; + this.tbSite.Text = "Site"; + this.tbSite.UseVisualStyleBackColor = true; + // + // chApplySiteToAllCoumns + // + this.chApplySiteToAllCoumns.AutoSize = true; + this.chApplySiteToAllCoumns.Location = new System.Drawing.Point(10, 231); + this.chApplySiteToAllCoumns.Name = "chApplySiteToAllCoumns"; + this.chApplySiteToAllCoumns.Size = new System.Drawing.Size(157, 17); + this.chApplySiteToAllCoumns.TabIndex = 4; + this.chApplySiteToAllCoumns.Text = "Apply this site to all columns"; + this.chApplySiteToAllCoumns.UseVisualStyleBackColor = true; + // + // btnCreateNewSite + // + this.btnCreateNewSite.Location = new System.Drawing.Point(223, 10); + this.btnCreateNewSite.Name = "btnCreateNewSite"; + this.btnCreateNewSite.Size = new System.Drawing.Size(90, 23); + this.btnCreateNewSite.TabIndex = 3; + this.btnCreateNewSite.Text = "Create new..."; + this.btnCreateNewSite.UseVisualStyleBackColor = true; + this.btnCreateNewSite.Click += new System.EventHandler(this.btnCreateNewSite_Click); + // + // siteView1 + // + this.siteView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.siteView1.Location = new System.Drawing.Point(10, 37); + this.siteView1.Name = "siteView1"; + this.siteView1.ReadOnly = false; + this.siteView1.Size = new System.Drawing.Size(414, 176); + this.siteView1.TabIndex = 2; + // + // cmbSites + // + this.cmbSites.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbSites.FormattingEnabled = true; + this.cmbSites.Location = new System.Drawing.Point(80, 12); + this.cmbSites.Name = "cmbSites"; + this.cmbSites.Size = new System.Drawing.Size(121, 21); + this.cmbSites.TabIndex = 1; + // + // lblSelectSite + // + this.lblSelectSite.AutoSize = true; + this.lblSelectSite.Location = new System.Drawing.Point(7, 15); + this.lblSelectSite.Name = "lblSelectSite"; + this.lblSelectSite.Size = new System.Drawing.Size(56, 13); + this.lblSelectSite.TabIndex = 0; + this.lblSelectSite.Text = "Select site"; + // + // tbVariable + // + this.tbVariable.Controls.Add(this.chApplyVariableToAllColumns); + this.tbVariable.Controls.Add(this.btnCreateNewVariable); + this.tbVariable.Controls.Add(this.cmbVariables); + this.tbVariable.Controls.Add(this.lblSelectVariable); + this.tbVariable.Controls.Add(this.variableView1); + this.tbVariable.Location = new System.Drawing.Point(4, 22); + this.tbVariable.Name = "tbVariable"; + this.tbVariable.Padding = new System.Windows.Forms.Padding(3); + this.tbVariable.Size = new System.Drawing.Size(441, 389); + this.tbVariable.TabIndex = 1; + this.tbVariable.Text = "Variable"; + this.tbVariable.UseVisualStyleBackColor = true; + // + // chApplyVariableToAllColumns + // + this.chApplyVariableToAllColumns.AutoSize = true; + this.chApplyVariableToAllColumns.Location = new System.Drawing.Point(10, 321); + this.chApplyVariableToAllColumns.Name = "chApplyVariableToAllColumns"; + this.chApplyVariableToAllColumns.Size = new System.Drawing.Size(178, 17); + this.chApplyVariableToAllColumns.TabIndex = 6; + this.chApplyVariableToAllColumns.Text = "Apply this variable to all columns"; + this.chApplyVariableToAllColumns.UseVisualStyleBackColor = true; + // + // btnCreateNewVariable + // + this.btnCreateNewVariable.Location = new System.Drawing.Point(242, 10); + this.btnCreateNewVariable.Name = "btnCreateNewVariable"; + this.btnCreateNewVariable.Size = new System.Drawing.Size(90, 23); + this.btnCreateNewVariable.TabIndex = 5; + this.btnCreateNewVariable.Text = "Create new..."; + this.btnCreateNewVariable.UseVisualStyleBackColor = true; + this.btnCreateNewVariable.Click += new System.EventHandler(this.btnCreateNewVariable_Click); + // + // cmbVariables + // + this.cmbVariables.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbVariables.FormattingEnabled = true; + this.cmbVariables.Location = new System.Drawing.Point(95, 12); + this.cmbVariables.Name = "cmbVariables"; + this.cmbVariables.Size = new System.Drawing.Size(121, 21); + this.cmbVariables.TabIndex = 3; + // + // lblSelectVariable + // + this.lblSelectVariable.AutoSize = true; + this.lblSelectVariable.Location = new System.Drawing.Point(7, 15); + this.lblSelectVariable.Name = "lblSelectVariable"; + this.lblSelectVariable.Size = new System.Drawing.Size(77, 13); + this.lblSelectVariable.TabIndex = 2; + this.lblSelectVariable.Text = "Select variable"; + // + // variableView1 + // + this.variableView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.variableView1.Location = new System.Drawing.Point(10, 39); + this.variableView1.Name = "variableView1"; + this.variableView1.ReadOnly = false; + this.variableView1.Size = new System.Drawing.Size(415, 276); + this.variableView1.TabIndex = 4; + // + // tpSource + // + this.tpSource.Controls.Add(this.chApplySourceToAllColumns); + this.tpSource.Controls.Add(this.sourceView1); + this.tpSource.Location = new System.Drawing.Point(4, 22); + this.tpSource.Name = "tpSource"; + this.tpSource.Padding = new System.Windows.Forms.Padding(3); + this.tpSource.Size = new System.Drawing.Size(441, 389); + this.tpSource.TabIndex = 2; + this.tpSource.Text = "Source"; + this.tpSource.UseVisualStyleBackColor = true; + // + // chApplySourceToAllColumns + // + this.chApplySourceToAllColumns.AutoSize = true; + this.chApplySourceToAllColumns.Location = new System.Drawing.Point(10, 366); + this.chApplySourceToAllColumns.Name = "chApplySourceToAllColumns"; + this.chApplySourceToAllColumns.Size = new System.Drawing.Size(173, 17); + this.chApplySourceToAllColumns.TabIndex = 7; + this.chApplySourceToAllColumns.Text = "Apply this source to all columns"; + this.chApplySourceToAllColumns.UseVisualStyleBackColor = true; + // + // sourceView1 + // + this.sourceView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.sourceView1.Location = new System.Drawing.Point(6, 6); + this.sourceView1.MinimumSize = new System.Drawing.Size(200, 355); + this.sourceView1.Name = "sourceView1"; + this.sourceView1.Size = new System.Drawing.Size(429, 355); + this.sourceView1.TabIndex = 0; + // + // tpMethod + // + this.tpMethod.Controls.Add(this.chApplyMethodToAllColumns); + this.tpMethod.Controls.Add(this.methodView1); + this.tpMethod.Location = new System.Drawing.Point(4, 22); + this.tpMethod.Name = "tpMethod"; + this.tpMethod.Padding = new System.Windows.Forms.Padding(3); + this.tpMethod.Size = new System.Drawing.Size(441, 389); + this.tpMethod.TabIndex = 3; + this.tpMethod.Text = "Method"; + this.tpMethod.UseVisualStyleBackColor = true; + // + // chApplyMethodToAllColumns + // + this.chApplyMethodToAllColumns.AutoSize = true; + this.chApplyMethodToAllColumns.Location = new System.Drawing.Point(10, 281); + this.chApplyMethodToAllColumns.Name = "chApplyMethodToAllColumns"; + this.chApplyMethodToAllColumns.Size = new System.Drawing.Size(176, 17); + this.chApplyMethodToAllColumns.TabIndex = 8; + this.chApplyMethodToAllColumns.Text = "Apply this method to all columns"; + this.chApplyMethodToAllColumns.UseVisualStyleBackColor = true; + // + // methodView1 + // + this.methodView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.methodView1.Location = new System.Drawing.Point(6, 6); + this.methodView1.Name = "methodView1"; + this.methodView1.Size = new System.Drawing.Size(429, 260); + this.methodView1.TabIndex = 0; + // + // tpQualityControl + // + this.tpQualityControl.Controls.Add(this.chApplyQualityControlToAllColumns); + this.tpQualityControl.Controls.Add(this.qualityControlLevelView1); + this.tpQualityControl.Location = new System.Drawing.Point(4, 22); + this.tpQualityControl.Name = "tpQualityControl"; + this.tpQualityControl.Padding = new System.Windows.Forms.Padding(3); + this.tpQualityControl.Size = new System.Drawing.Size(441, 389); + this.tpQualityControl.TabIndex = 4; + this.tpQualityControl.Text = "Quality Control"; + this.tpQualityControl.UseVisualStyleBackColor = true; + // + // chApplyQualityControlToAllColumns + // + this.chApplyQualityControlToAllColumns.AutoSize = true; + this.chApplyQualityControlToAllColumns.Location = new System.Drawing.Point(10, 120); + this.chApplyQualityControlToAllColumns.Name = "chApplyQualityControlToAllColumns"; + this.chApplyQualityControlToAllColumns.Size = new System.Drawing.Size(206, 17); + this.chApplyQualityControlToAllColumns.TabIndex = 9; + this.chApplyQualityControlToAllColumns.Text = "Apply this quality control to all columns"; + this.chApplyQualityControlToAllColumns.UseVisualStyleBackColor = true; + // + // qualityControlLevelView1 + // + this.qualityControlLevelView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.qualityControlLevelView1.Location = new System.Drawing.Point(6, 6); + this.qualityControlLevelView1.Name = "qualityControlLevelView1"; + this.qualityControlLevelView1.Size = new System.Drawing.Size(429, 108); + this.qualityControlLevelView1.TabIndex = 0; + // + // tpOffset + // + this.tpOffset.Controls.Add(this.chApplyOffsetToAllColumns); + this.tpOffset.Controls.Add(this.offsetTypeView1); + this.tpOffset.Controls.Add(this.lblValue); + this.tpOffset.Controls.Add(this.nudOffsetValue); + this.tpOffset.Location = new System.Drawing.Point(4, 22); + this.tpOffset.Name = "tpOffset"; + this.tpOffset.Padding = new System.Windows.Forms.Padding(3); + this.tpOffset.Size = new System.Drawing.Size(441, 389); + this.tpOffset.TabIndex = 5; + this.tpOffset.Text = "Offset"; + this.tpOffset.UseVisualStyleBackColor = true; + // + // offsetTypeView1 + // + this.offsetTypeView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.offsetTypeView1.Location = new System.Drawing.Point(6, 6); + this.offsetTypeView1.Name = "offsetTypeView1"; + this.offsetTypeView1.Size = new System.Drawing.Size(429, 65); + this.offsetTypeView1.TabIndex = 8; + // + // lblValue + // + this.lblValue.AutoSize = true; + this.lblValue.Location = new System.Drawing.Point(19, 79); + this.lblValue.Name = "lblValue"; + this.lblValue.Size = new System.Drawing.Size(65, 13); + this.lblValue.TabIndex = 7; + this.lblValue.Text = "Offset Value"; + // + // nudOffsetValue + // + this.nudOffsetValue.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nudOffsetValue.DecimalPlaces = 3; + this.nudOffsetValue.FullReadOnly = false; + this.nudOffsetValue.Location = new System.Drawing.Point(100, 77); + this.nudOffsetValue.Maximum = new decimal(new int[] { + -1, + -1, + -1, + 0}); + this.nudOffsetValue.Minimum = new decimal(new int[] { + -1, + -1, + -1, + -2147483648}); + this.nudOffsetValue.Name = "nudOffsetValue"; + this.nudOffsetValue.Size = new System.Drawing.Size(326, 20); + this.nudOffsetValue.TabIndex = 6; + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(305, 437); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 1; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + this.btnOK.Click += new System.EventHandler(this.btnOK_Click); + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(386, 437); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 2; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // chApplyOffsetToAllColumns + // + this.chApplyOffsetToAllColumns.AutoSize = true; + this.chApplyOffsetToAllColumns.Location = new System.Drawing.Point(10, 109); + this.chApplyOffsetToAllColumns.Name = "chApplyOffsetToAllColumns"; + this.chApplyOffsetToAllColumns.Size = new System.Drawing.Size(167, 17); + this.chApplyOffsetToAllColumns.TabIndex = 10; + this.chApplyOffsetToAllColumns.Text = "Apply this offset to all columns"; + this.chApplyOffsetToAllColumns.UseVisualStyleBackColor = true; + // + // FieldPropertiesForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(473, 477); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.Controls.Add(this.tbProperties); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FieldPropertiesForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Field properties"; + this.tbProperties.ResumeLayout(false); + this.tbSite.ResumeLayout(false); + this.tbSite.PerformLayout(); + this.tbVariable.ResumeLayout(false); + this.tbVariable.PerformLayout(); + this.tpSource.ResumeLayout(false); + this.tpSource.PerformLayout(); + this.tpMethod.ResumeLayout(false); + this.tpMethod.PerformLayout(); + this.tpQualityControl.ResumeLayout(false); + this.tpQualityControl.PerformLayout(); + this.tpOffset.ResumeLayout(false); + this.tpOffset.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudOffsetValue)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.sitesBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.variablesBindingSource)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TabControl tbProperties; + private System.Windows.Forms.TabPage tbSite; + private System.Windows.Forms.TabPage tbVariable; + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.ComboBox cmbSites; + private System.Windows.Forms.Label lblSelectSite; + private System.Windows.Forms.ComboBox cmbVariables; + private System.Windows.Forms.Label lblSelectVariable; + private SiteView siteView1; + private VariableView variableView1; + private System.Windows.Forms.Button btnCreateNewSite; + private System.Windows.Forms.Button btnCreateNewVariable; + private System.Windows.Forms.BindingSource sitesBindingSource; + private System.Windows.Forms.BindingSource variablesBindingSource; + private System.Windows.Forms.CheckBox chApplySiteToAllCoumns; + private System.Windows.Forms.CheckBox chApplyVariableToAllColumns; + private System.Windows.Forms.TabPage tpSource; + private System.Windows.Forms.TabPage tpMethod; + private System.Windows.Forms.TabPage tpQualityControl; + private SourceView sourceView1; + private MethodView methodView1; + private QualityControlLevelView qualityControlLevelView1; + private System.Windows.Forms.CheckBox chApplySourceToAllColumns; + private System.Windows.Forms.CheckBox chApplyMethodToAllColumns; + private System.Windows.Forms.CheckBox chApplyQualityControlToAllColumns; + private System.Windows.Forms.TabPage tpOffset; + private System.Windows.Forms.Label lblValue; + private NumericUpDownEx nudOffsetValue; + private FieldProperties.OffsetTypeView offsetTypeView1; + private System.Windows.Forms.CheckBox chApplyOffsetToAllColumns; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesForm.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesForm.cs new file mode 100644 index 00000000..ee94c55b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesForm.cs @@ -0,0 +1,215 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics.Contracts; +using System.Linq; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.DataImport.CommonPages +{ + /// + /// Allow to modify properties of field to import + /// + public partial class FieldPropertiesForm : Form + { + #region Fields + + private readonly ColumnInfo _columnData; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + /// Column data + /// Data sources for comboboxes, etc... + public FieldPropertiesForm(ColumnInfo columnData, DataSources dataSources) + { + if (columnData == null) throw new ArgumentNullException("columnData"); + if (dataSources == null) throw new ArgumentNullException("dataSources"); + Contract.EndContractBlock(); + + _columnData = columnData; + InitializeComponent(); + + if (this.IsDesignMode()) return; + + base.Text = string.Format("Column properties - {0}", _columnData.ColumnName); + + // Set bindings....... + chApplySiteToAllCoumns.AddBinding(c => c.Checked, _columnData, c => c.ApplySiteToAllColumns); + chApplyVariableToAllColumns.AddBinding(c => c.Checked, _columnData, c => c.ApplyVariableToAllColumns); + chApplySourceToAllColumns.AddBinding(c => c.Checked, _columnData, c => c.ApplySourceToAllColumns); + chApplyMethodToAllColumns.AddBinding(c => c.Checked, _columnData, c => c.ApplyMethodToAllColumns); + chApplyQualityControlToAllColumns.AddBinding(c => c.Checked, _columnData, c => c.ApplyQualityControlToAllColumns); + chApplyOffsetToAllColumns.AddBinding(c => c.Checked, _columnData, c => c.ApplyOffsetToAllColumns); + + // Site + siteView1.ReadOnly = true; + cmbSites.SelectedIndexChanged += CmbSitesOnSelectedIndexChanged; + var sitesRepo = RepositoryFactory.Instance.Get(); + var sites = sitesRepo.GetAll(); + if (_columnData.Site != null && + !sites.Contains(_columnData.Site)) + { + sites.Add(_columnData.Site); + } + sitesBindingSource.DataSource = sites; + cmbSites.DataSource = sitesBindingSource; + cmbSites.DisplayMember = NameHelper.Name(s => s.Name); + if (_columnData.Site != null) + cmbSites.SelectedItem = _columnData.Site; + + // Variable + variableView1.ReadOnly = true; + cmbVariables.SelectedIndexChanged += CmbVariablesOnSelectedIndexChanged; + variablesBindingSource.DataSource = dataSources.Variables; + cmbVariables.DataSource = variablesBindingSource; + cmbVariables.DisplayMember = NameHelper.Name(s => s.Name); + if (_columnData.Variable != null) + cmbVariables.SelectedItem = _columnData.Variable; + + // Source + sourceView1.Entity = _columnData.Source; + + // Method + methodView1.Entity = _columnData.Method; + + // Quality Control + qualityControlLevelView1.Entity = _columnData.QualityControlLevel; + + // Offset + offsetTypeView1.Entity = _columnData.OffsetType; + nudOffsetValue.AddBinding(x => x.Value, _columnData, c => c.OffsetValue); + } + + #endregion + + #region Properties + + /// + /// Current column data + /// + public ColumnInfo ColumnData + { + get { return _columnData; } + } + + #endregion + + #region Private methods + + private void CmbVariablesOnSelectedIndexChanged(object sender, EventArgs e) + { + var variablesRepo = RepositoryFactory.Instance.Get(); + + var currentVar = (Variable)cmbVariables.SelectedItem; + variableView1.Entity = currentVar; + variableView1.ReadOnly = currentVar == null || variablesRepo.Exists(currentVar); + } + + private void CmbSitesOnSelectedIndexChanged(object sender, EventArgs eventArgs) + { + var sitesRepo = RepositoryFactory.Instance.Get(); + + var currentSite = (Site)cmbSites.SelectedItem; + siteView1.Entity = currentSite; + siteView1.ReadOnly = currentSite == null || sitesRepo.Exists(currentSite); + } + + private void btnOK_Click(object sender, EventArgs e) + { + var error = siteView1.EntityValidate(); + if (string.IsNullOrEmpty(error)) + error = variableView1.EntityValidate(); + if (string.IsNullOrEmpty(error)) + error = offsetTypeView1.EntityValidate(); + + if (!string.IsNullOrEmpty(error)) + { + MessageBox.Show(error, "Validation", MessageBoxButtons.OK, MessageBoxIcon.Error); + DialogResult = DialogResult.None; + return; + } + + _columnData.Site = siteView1.Entity; + _columnData.Variable = variableView1.Entity; + + DialogResult = DialogResult.OK; + } + + private void btnCreateNewSite_Click(object sender, EventArgs e) + { + var site = new Site + { + Name = "NewSite", + Code = GetUniqueName(sitesBindingSource.List.Cast(), "Site", v => v.Code), + }; + AddNewItemInBindingSource(sitesBindingSource, site); + cmbSites.SelectedIndex = sitesBindingSource.Count - 1; + if (sitesBindingSource.Count == 1) + { + // In this case need manually to fire SelectedIndexChanged event + CmbSitesOnSelectedIndexChanged(cmbSites, EventArgs.Empty); + } + } + + private void btnCreateNewVariable_Click(object sender, EventArgs e) + { + var variable = new Variable + { + Name = "NewVariable", + Code = GetUniqueName(variablesBindingSource.List.Cast(), "Variable", v => v.Code), + Speciation = "Not Applicable", + SampleMedium = "Unknown", + ValueType = "Unknown", + DataType = "Unknown", + GeneralCategory = "Unknown", + TimeUnit = Unit.UnknownTimeUnit, + VariableUnit = Unit.Unknown, + NoDataValue = -9999, + }; + AddNewItemInBindingSource(variablesBindingSource, variable); + cmbVariables.SelectedIndex = variablesBindingSource.Count - 1; + if (variablesBindingSource.Count == 1) + { + // In this case need manually to fire SelectedIndexChanged event + CmbVariablesOnSelectedIndexChanged(cmbVariables, EventArgs.Empty); + } + } + + private static void AddNewItemInBindingSource(BindingSource bindingSource, object newItem) + { + var newDataSource = new object[bindingSource.Count + 1]; + bindingSource.CopyTo(newDataSource, 0); + newDataSource[newDataSource.Length - 1] = newItem; + bindingSource.DataSource = newDataSource; + } + + private static string GetUniqueName(IEnumerable enumerable, string initial, Func nameGetter) + { + var list = enumerable.ToList(); + var uniqueNumber = 1; + string uniqueName; + do + { + uniqueName = initial + uniqueNumber; + uniqueNumber++; + } while (list.Any(item => nameGetter(item) == uniqueName)); + + return uniqueName; + } + + #endregion + } + + public class DataSources + { + public IList Variables { get; set; } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesForm.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesForm.resx new file mode 100644 index 00000000..10e3526b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 162, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesPage.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesPage.Designer.cs new file mode 100644 index 00000000..844833a3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesPage.Designer.cs @@ -0,0 +1,130 @@ +namespace HydroDesktop.Plugins.DataImport.CommonPages +{ + partial class FieldPropertiesPage + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dgvPreview = new System.Windows.Forms.DataGridView(); + this.cmbDateTimeColumn = new System.Windows.Forms.ComboBox(); + this.lblDateTmeColumn = new System.Windows.Forms.Label(); + this.lblSpecifyColumns = new System.Windows.Forms.Label(); + this.columnsToImportControl1 = new DataImport.CommonPages.FieldProperties.ColumnsToImportControl(); + ((System.ComponentModel.ISupportInitialize)(this.dgvPreview)).BeginInit(); + this.SuspendLayout(); + // + // Banner + // + this.Banner.Size = new System.Drawing.Size(537, 64); + this.Banner.Subtitle = "Right-click on a column to specify properties."; + this.Banner.Title = "Properties of imported fields"; + // + // dgvPreview + // + this.dgvPreview.AllowUserToAddRows = false; + this.dgvPreview.AllowUserToDeleteRows = false; + this.dgvPreview.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvPreview.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvPreview.Location = new System.Drawing.Point(19, 109); + this.dgvPreview.MultiSelect = false; + this.dgvPreview.Name = "dgvPreview"; + this.dgvPreview.ReadOnly = true; + this.dgvPreview.Size = new System.Drawing.Size(498, 158); + this.dgvPreview.TabIndex = 1; + // + // cmbDateTimeColumn + // + this.cmbDateTimeColumn.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbDateTimeColumn.FormattingEnabled = true; + this.cmbDateTimeColumn.Location = new System.Drawing.Point(158, 75); + this.cmbDateTimeColumn.Name = "cmbDateTimeColumn"; + this.cmbDateTimeColumn.Size = new System.Drawing.Size(146, 21); + this.cmbDateTimeColumn.TabIndex = 2; + // + // lblDateTmeColumn + // + this.lblDateTmeColumn.AutoSize = true; + this.lblDateTmeColumn.Location = new System.Drawing.Point(19, 78); + this.lblDateTmeColumn.Name = "lblDateTmeColumn"; + this.lblDateTmeColumn.Size = new System.Drawing.Size(133, 13); + this.lblDateTmeColumn.TabIndex = 3; + this.lblDateTmeColumn.Text = "Specify Date/Time column"; + // + // lblSpecifyColumns + // + this.lblSpecifyColumns.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.lblSpecifyColumns.AutoSize = true; + this.lblSpecifyColumns.Location = new System.Drawing.Point(22, 282); + this.lblSpecifyColumns.Name = "lblSpecifyColumns"; + this.lblSpecifyColumns.Size = new System.Drawing.Size(149, 13); + this.lblSpecifyColumns.TabIndex = 4; + this.lblSpecifyColumns.Text = "Specify Data Values Columns:"; + // + // columnsToImportControl1 + // + this.columnsToImportControl1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.columnsToImportControl1.Location = new System.Drawing.Point(19, 299); + this.columnsToImportControl1.Name = "columnsToImportControl1"; + this.columnsToImportControl1.Size = new System.Drawing.Size(498, 93); + this.columnsToImportControl1.TabIndex = 5; + // + // FieldPropertiesPage + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.columnsToImportControl1); + this.Controls.Add(this.lblDateTmeColumn); + this.Controls.Add(this.lblSpecifyColumns); + this.Controls.Add(this.dgvPreview); + this.Controls.Add(this.cmbDateTimeColumn); + this.Name = "FieldPropertiesPage"; + this.Size = new System.Drawing.Size(537, 395); + this.SetActive += new System.ComponentModel.CancelEventHandler(this.FieldPropertiesPage_SetActive); + this.WizardNext += new Wizard.UI.WizardPageEventHandler(this.FieldPropertiesPage_WizardNext); + this.Controls.SetChildIndex(this.cmbDateTimeColumn, 0); + this.Controls.SetChildIndex(this.dgvPreview, 0); + this.Controls.SetChildIndex(this.lblSpecifyColumns, 0); + this.Controls.SetChildIndex(this.lblDateTmeColumn, 0); + this.Controls.SetChildIndex(this.columnsToImportControl1, 0); + this.Controls.SetChildIndex(this.Banner, 0); + ((System.ComponentModel.ISupportInitialize)(this.dgvPreview)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgvPreview; + private System.Windows.Forms.ComboBox cmbDateTimeColumn; + private System.Windows.Forms.Label lblDateTmeColumn; + private System.Windows.Forms.Label lblSpecifyColumns; + private FieldProperties.ColumnsToImportControl columnsToImportControl1; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesPage.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesPage.cs new file mode 100644 index 00000000..cab57e49 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesPage.cs @@ -0,0 +1,293 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; +using HydroDesktop.Plugins.DataImport.CommonPages.FieldProperties; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; +using Wizard.UI; + +namespace HydroDesktop.Plugins.DataImport.CommonPages +{ + /// + /// Properties page + /// + public partial class FieldPropertiesPage : InternalWizardPage + { + #region Fields + + private readonly IWizardImporterSettings _settings; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + /// Context + public FieldPropertiesPage(WizardContext context) + { + _settings = context.Settings; + InitializeComponent(); + + dgvPreview.MouseDown += DgvPreviewOnMouseDown; + dgvPreview.CellPainting += DgvPreviewOnCellPainting; + + columnsToImportControl1.RemoveClick += ColumnsToImportControlOnRemoveClick; + columnsToImportControl1.EditClick += ColumnsToImportControlOnEditClick; + columnsToImportControl1.AddClick += ColumnsToImportControlOnAddClick; + } + + #endregion + + #region Private methods + + private void ColumnsToImportControlOnEditClick(object sender, ColumnsToProcessEventArgs args) + { + if (args.Columns.Count == 0) + return; + + DoDetailsItemOnClick(args.Columns[0]); + } + + private void ColumnsToImportControlOnRemoveClick(object sender, ColumnsToProcessEventArgs args) + { + foreach (var info in args.Columns) + { + info.ImportColumn = false; + dgvPreview.InvalidateCell(info.ColumnIndex, -1); + } + columnsToImportControl1.RefreshData(); + } + + private void ColumnsToImportControlOnAddClick(object sender, EventArgs eventArgs) + { + var dateTimeColumn = (string)cmbDateTimeColumn.SelectedItem; + var availableColumns = _settings.ColumnDatas.Where(c => !c.ImportColumn && + c.ColumnName != dateTimeColumn).ToList(); + using (var selectForm = new SelectColumnForm(availableColumns)) + { + if (selectForm.ShowDialog(this) == DialogResult.OK) + { + var item = selectForm.SelectedItem; + if (item != null) + { + item.ImportColumn = true; + var res = DoDetailsItemOnClick(item); + if (res != DialogResult.OK) + { + item.ImportColumn = false; + } + dgvPreview.InvalidateCell(item.ColumnIndex, -1); + } + } + } + } + + private void DgvPreviewOnMouseDown(object sender, MouseEventArgs e) + { + if (e.Button != MouseButtons.Right) return; + + var hitTest = dgvPreview.HitTest(e.X, e.Y); + if (hitTest.Type == DataGridViewHitTestType.ColumnHeader) + { + var index = hitTest.ColumnIndex; + var cData = _settings.ColumnDatas[index]; + + + var detailsItem = new ToolStripButton("Details..."); + detailsItem.Click += delegate { DoDetailsItemOnClick(cData); }; + + var importItem = new ToolStripMenuItem("Import"); + importItem.CheckOnClick = true; + importItem.Checked = cData.ImportColumn; + importItem.CheckedChanged += delegate + { + cData.ImportColumn = importItem.Checked; + detailsItem.Enabled = importItem.Checked; + dgvPreview.InvalidateCell(cData.ColumnIndex, -1); + + columnsToImportControl1.RefreshData(); + }; + detailsItem.Enabled = importItem.Checked; + + var popup = new ContextMenuStrip(); + popup.Items.Add(importItem); + popup.Items.Add(detailsItem); + + popup.Show(dgvPreview.PointToScreen(e.Location)); + } + } + + private DialogResult DoDetailsItemOnClick(ColumnInfo cData) + { + // Prepare parameters to pass into FieldPropertiesForm + var cDataClone = (ColumnInfo) cData.Clone(); + var dataSources = new DataSources(); + var variablesRepo = RepositoryFactory.Instance.Get(); + var variables = variablesRepo.GetAll().ToList(); + foreach (var data in _settings.ColumnDatas) + { + if (data.Variable != null && !variables.Contains(data.Variable)) + { + variables.Add(data.Variable); + } + } + dataSources.Variables = variables; + + // Show form + using (var form = new FieldPropertiesForm(cDataClone, dataSources)) + { + var res = form.ShowDialog(); + if (res != DialogResult.OK) return res; + + var cDatas = _settings.ColumnDatas; + var index = cData.ColumnIndex; + var cd = form.ColumnData; + + cDatas[index] = cd; + + // Apply site/variable/source/method/qualityControl to all columns if need + for (int k = 0; k < cDatas.Count; k++) + { + if (k == index) continue; + + var option = cDatas[k]; + + if (cd.ApplySiteToAllColumns) + { + option.Site = (Site) cd.Site.Clone(); + } + if (cd.ApplyVariableToAllColumns) + { + option.Variable = (Variable) cd.Variable.Clone(); + } + if (cd.ApplySourceToAllColumns) + { + option.Source = (Source) cd.Source.Clone(); + } + if (cd.ApplyMethodToAllColumns) + { + option.Method = (Method) cd.Method.Clone(); + } + if (cd.ApplyQualityControlToAllColumns) + { + option.QualityControlLevel = (QualityControlLevel) cd.QualityControlLevel.Clone(); + } + if (cd.ApplyOffsetToAllColumns) + { + option.OffsetType = (OffsetType)cd.OffsetType.Clone(); + option.OffsetValue = cd.OffsetValue; + } + } + + columnsToImportControl1.RefreshData(); + return res; + } + } + + private void DgvPreviewOnCellPainting(object sender, DataGridViewCellPaintingEventArgs e) + { + if (e.RowIndex == -1) + { + if (e.ColumnIndex >= 0 && + _settings.ColumnDatas[e.ColumnIndex].ImportColumn) + { + e.Graphics.FillRectangle(Brushes.LightGreen, e.CellBounds); + e.Paint(e.ClipBounds, (DataGridViewPaintParts.All & ~DataGridViewPaintParts.Background)); + e.Handled = true; + } + } + } + + private void FieldPropertiesPage_SetActive(object sender, CancelEventArgs e) + { + SetWizardButtons(WizardButtons.Next | WizardButtons.Back); + + dgvPreview.DataSource = _settings.Preview; + _settings.ColumnDatas = new List(dgvPreview.Columns.Count); + columnsToImportControl1.SetDataSource(_settings.ColumnDatas); + + var columnNames = _settings.Preview.Columns.Cast() + .Select(c => c.ColumnName) + .ToArray(); + cmbDateTimeColumn.DataSource = columnNames; + cmbDateTimeColumn.SelectedItem = FindColumnWithDateTime(_settings.Preview); + + for (int i = 0; i < dgvPreview.Columns.Count; i++) + { + var column = dgvPreview.Columns[i]; + var columnName = column.Name; + column.SortMode = DataGridViewColumnSortMode.NotSortable; + + var columnData = new ColumnInfo + { + ColumnIndex = i, + ColumnName = columnName, + ImportColumn = false, + Method = Method.Unknown, + Source = Source.Unknown, + QualityControlLevel = QualityControlLevel.Unknown, + OffsetType = OffsetType.Unknown, + }; + _settings.ColumnDatas.Add(columnData); + } + } + + private static string FindColumnWithDateTime(DataTable table) + { + if (table.Columns.Count == 0) + return string.Empty; + + foreach (DataRow row in table.Rows) + { + foreach (DataColumn column in table.Columns) + { + DateTime dateTime; + if (DateTime.TryParse(row[column].ToString(), out dateTime)) + { + return column.ColumnName; + } + } + } + + return table.Columns[0].ColumnName; + } + + private void FieldPropertiesPage_WizardNext(object sender, WizardPageEventArgs e) + { + _settings.DateTimeColumn = (string) cmbDateTimeColumn.SelectedItem; + + string error = null; + if (String.IsNullOrEmpty(_settings.DateTimeColumn)) + { + error = "Specify Date/Time column"; + } + else if (!_settings.ColumnDatas.Any(c => c.ImportColumn && + c.ColumnName != _settings.DateTimeColumn)) + { + error = "Select at least one column to import"; + } + else if (_settings.ColumnDatas.Where(c => c.ImportColumn && c.ColumnName != _settings.DateTimeColumn) + .Any(c => c.Site == null || c.Variable == null)) + { + error = "Specify Site and Variable for all columns to import"; + } + + if (!string.IsNullOrEmpty(error)) + { + e.Cancel = true; + MessageBox.Show(this, error, "Validation", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + #endregion + + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesPage.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesPage.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/FieldPropertiesPage.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/MethodView.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/MethodView.Designer.cs new file mode 100644 index 00000000..6ed8553a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/MethodView.Designer.cs @@ -0,0 +1,103 @@ +namespace HydroDesktop.Plugins.DataImport.CommonPages +{ + partial class MethodView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lblDescription = new System.Windows.Forms.Label(); + this.tbDescription = new System.Windows.Forms.TextBox(); + this.lblLink = new System.Windows.Forms.Label(); + this.tbLink = new System.Windows.Forms.TextBox(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + this.SuspendLayout(); + // + // lblDescription + // + this.lblDescription.AutoSize = true; + this.lblDescription.Location = new System.Drawing.Point(14, 23); + this.lblDescription.Name = "lblDescription"; + this.lblDescription.Size = new System.Drawing.Size(60, 13); + this.lblDescription.TabIndex = 0; + this.lblDescription.Text = "Description"; + // + // tbDescription + // + this.tbDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbDescription.Location = new System.Drawing.Point(81, 20); + this.tbDescription.Multiline = true; + this.tbDescription.Name = "tbDescription"; + this.tbDescription.Size = new System.Drawing.Size(192, 109); + this.tbDescription.TabIndex = 0; + // + // lblLink + // + this.lblLink.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.lblLink.AutoSize = true; + this.lblLink.Location = new System.Drawing.Point(17, 142); + this.lblLink.Name = "lblLink"; + this.lblLink.Size = new System.Drawing.Size(27, 13); + this.lblLink.TabIndex = 2; + this.lblLink.Text = "Link"; + // + // tbLink + // + this.tbLink.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbLink.Location = new System.Drawing.Point(81, 135); + this.tbLink.Name = "tbLink"; + this.tbLink.Size = new System.Drawing.Size(192, 20); + this.tbLink.TabIndex = 1; + // + // MethodView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tbLink); + this.Controls.Add(this.lblLink); + this.Controls.Add(this.tbDescription); + this.Controls.Add(this.lblDescription); + this.Name = "MethodView"; + this.Size = new System.Drawing.Size(291, 170); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblDescription; + private System.Windows.Forms.TextBox tbDescription; + private System.Windows.Forms.Label lblLink; + private System.Windows.Forms.TextBox tbLink; + private System.Windows.Forms.BindingSource bindingSource1; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/MethodView.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/MethodView.cs new file mode 100644 index 00000000..8cfcc1a5 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/MethodView.cs @@ -0,0 +1,58 @@ +using System.ComponentModel; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.DataImport.CommonPages +{ + /// + /// View of + /// + public partial class MethodView : UserControl + { + #region Fields + + private Method _entity; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public MethodView() + { + InitializeComponent(); + + if (this.IsDesignMode()) return; + + bindingSource1.DataSource = typeof (Method); + + // Set bindings + tbDescription.AddBinding(x => x.Text, bindingSource1, x => x.Description); + tbLink.AddBinding(x => x.Text, bindingSource1, x => x.Link); + } + + #endregion + + #region Properties + + /// + /// Current Entity + /// + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public Method Entity + { + get { return _entity; } + set + { + _entity = value; + bindingSource1.DataSource = value ?? (object)typeof(Method); + } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/MethodView.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/MethodView.resx new file mode 100644 index 00000000..4d6bea97 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/MethodView.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/NumericUpDownEx.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/NumericUpDownEx.cs new file mode 100644 index 00000000..b5e0c6b5 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/NumericUpDownEx.cs @@ -0,0 +1,55 @@ +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.DataImport.CommonPages +{ + /// + /// NumericUpDown with fixed ReadOnly behavior + /// + public class NumericUpDownEx : NumericUpDown + { + /// + /// Create new instance of + /// + public NumericUpDownEx() + { + Maximum = decimal.MaxValue; + Minimum = decimal.MinValue; + } + + /// + /// Decrements the value of the spin box (also known as an up-down control). + /// + /// 1 + public override void DownButton() + { + if (FullReadOnly) + return; + base.DownButton(); + } + + /// + /// Increments the value of the spin box (also known as an up-down control). + /// + /// 1 + public override void UpButton() + { + if (FullReadOnly) + return; + base.UpButton(); + } + + private bool _fullReadOnly; + /// + /// Gets or sets value indicating whether Value can be changed by the User + /// + public bool FullReadOnly + { + get { return _fullReadOnly; } + set + { + _fullReadOnly = value; + ReadOnly = value; + } + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/OffsetTypeView.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/OffsetTypeView.Designer.cs new file mode 100644 index 00000000..4aa23d16 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/OffsetTypeView.Designer.cs @@ -0,0 +1,116 @@ +namespace HydroDesktop.Plugins.DataImport.CommonPages.FieldProperties +{ + partial class OffsetTypeView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lblDescription = new System.Windows.Forms.Label(); + this.tbDescription = new System.Windows.Forms.TextBox(); + this.lblUnits = new System.Windows.Forms.Label(); + this.cmbUnits = new System.Windows.Forms.ComboBox(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + this.btnCreateNewTimeUnit = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + this.SuspendLayout(); + // + // lblDescription + // + this.lblDescription.AutoSize = true; + this.lblDescription.Location = new System.Drawing.Point(16, 14); + this.lblDescription.Name = "lblDescription"; + this.lblDescription.Size = new System.Drawing.Size(60, 13); + this.lblDescription.TabIndex = 0; + this.lblDescription.Text = "Description"; + // + // tbDescription + // + this.tbDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbDescription.Location = new System.Drawing.Point(94, 11); + this.tbDescription.Name = "tbDescription"; + this.tbDescription.Size = new System.Drawing.Size(211, 20); + this.tbDescription.TabIndex = 1; + // + // lblUnits + // + this.lblUnits.AutoSize = true; + this.lblUnits.Location = new System.Drawing.Point(16, 41); + this.lblUnits.Name = "lblUnits"; + this.lblUnits.Size = new System.Drawing.Size(31, 13); + this.lblUnits.TabIndex = 2; + this.lblUnits.Text = "Units"; + // + // cmbUnits + // + this.cmbUnits.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbUnits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbUnits.FormattingEnabled = true; + this.cmbUnits.Location = new System.Drawing.Point(94, 38); + this.cmbUnits.Name = "cmbUnits"; + this.cmbUnits.Size = new System.Drawing.Size(121, 21); + this.cmbUnits.TabIndex = 3; + // + // btnCreateNewTimeUnit + // + this.btnCreateNewTimeUnit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnCreateNewTimeUnit.Location = new System.Drawing.Point(224, 38); + this.btnCreateNewTimeUnit.Name = "btnCreateNewTimeUnit"; + this.btnCreateNewTimeUnit.Size = new System.Drawing.Size(81, 23); + this.btnCreateNewTimeUnit.TabIndex = 21; + this.btnCreateNewTimeUnit.Text = "Create New..."; + this.btnCreateNewTimeUnit.UseVisualStyleBackColor = true; + this.btnCreateNewTimeUnit.Click += new System.EventHandler(this.btnCreateNewTimeUnit_Click); + // + // OffsetTypeView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.btnCreateNewTimeUnit); + this.Controls.Add(this.cmbUnits); + this.Controls.Add(this.lblUnits); + this.Controls.Add(this.tbDescription); + this.Controls.Add(this.lblDescription); + this.Name = "OffsetTypeView"; + this.Size = new System.Drawing.Size(315, 75); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.BindingSource bindingSource1; + private System.Windows.Forms.Label lblDescription; + private System.Windows.Forms.TextBox tbDescription; + private System.Windows.Forms.Label lblUnits; + private System.Windows.Forms.ComboBox cmbUnits; + private System.Windows.Forms.Button btnCreateNewTimeUnit; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/OffsetTypeView.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/OffsetTypeView.cs new file mode 100644 index 00000000..ab4270e8 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/OffsetTypeView.cs @@ -0,0 +1,128 @@ +using System; +using System.ComponentModel; +using System.Linq; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.DataImport.CommonPages.FieldProperties +{ + /// + /// View of + /// + public partial class OffsetTypeView : UserControl + { + #region Fields + + private OffsetType _entity; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public OffsetTypeView() + { + InitializeComponent(); + + if (this.IsDesignMode()) return; + + bindingSource1.DataSource = typeof(OffsetType); + + // Set bindings + tbDescription.AddBinding(x => x.Text, bindingSource1, x => x.Description); + + var unitRepo = RepositoryFactory.Instance.Get(); + var units = unitRepo.GetAll().OrderBy(u => u.Name).ToArray(); + cmbUnits.DataSource = units; + cmbUnits.DisplayMember = NameHelper.Name(x => x.Name); + } + + #endregion + + + #region Properties + + /// + /// Current Entity + /// + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public OffsetType Entity + { + get { return _entity; } + set + { + _entity = value; + + // Update Unit Combos + if (value != null) + { + UpdateUnitCombo(cmbUnits, Entity.Unit); + } + bindingSource1.DataSource = value ?? (object)typeof(OffsetType); + } + } + + #endregion + + #region Public methods + + /// + /// Validate Current Entity + /// + /// Error or string.Empty + public string EntityValidate() + { + var offsetType = Entity; + + string error; + if (offsetType == null) + error = "You should specify OffsetType"; + else if (String.IsNullOrEmpty(offsetType.Description)) + error = "OffsetType should have a Description"; + else + error = string.Empty; + + return error; + } + + #endregion + + #region Private methods + + private static void UpdateUnitCombo(ComboBox comboBox, Unit unit) + { + var units = (Unit[])comboBox.DataSource; + if (units != null && unit != null && + !units.Contains(unit)) + { + Array.Resize(ref units, units.Length + 1); + units[units.Length - 1] = unit; + comboBox.DataSource = units; + comboBox.SelectedIndex = units.Length - 1; + } + } + + #endregion + + private void btnCreateNewTimeUnit_Click(object sender, EventArgs e) + { + using (var form = new CreateUnitForm()) + { + form.Entity = Unit.Unknown; + + if (form.ShowDialog(this) == DialogResult.OK) + { + Entity.Unit = form.Entity; + // Update Unit Combos + UpdateUnitCombo(cmbUnits, Entity.Unit); + } + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/OffsetTypeView.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/OffsetTypeView.resx new file mode 100644 index 00000000..4d6bea97 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/OffsetTypeView.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/QualityControlLevelView.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/QualityControlLevelView.Designer.cs new file mode 100644 index 00000000..ec811555 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/QualityControlLevelView.Designer.cs @@ -0,0 +1,124 @@ +namespace HydroDesktop.Plugins.DataImport.CommonPages +{ + partial class QualityControlLevelView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lblCode = new System.Windows.Forms.Label(); + this.tbCode = new System.Windows.Forms.TextBox(); + this.tbDefinition = new System.Windows.Forms.TextBox(); + this.lblDefinition = new System.Windows.Forms.Label(); + this.tbExplanation = new System.Windows.Forms.TextBox(); + this.lblExplanation = new System.Windows.Forms.Label(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + this.SuspendLayout(); + // + // lblCode + // + this.lblCode.AutoSize = true; + this.lblCode.Location = new System.Drawing.Point(14, 20); + this.lblCode.Name = "lblCode"; + this.lblCode.Size = new System.Drawing.Size(32, 13); + this.lblCode.TabIndex = 0; + this.lblCode.Text = "Code"; + // + // tbCode + // + this.tbCode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbCode.Location = new System.Drawing.Point(86, 17); + this.tbCode.Name = "tbCode"; + this.tbCode.Size = new System.Drawing.Size(118, 20); + this.tbCode.TabIndex = 0; + // + // tbDefinition + // + this.tbDefinition.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbDefinition.Location = new System.Drawing.Point(86, 43); + this.tbDefinition.Name = "tbDefinition"; + this.tbDefinition.Size = new System.Drawing.Size(118, 20); + this.tbDefinition.TabIndex = 1; + // + // lblDefinition + // + this.lblDefinition.AutoSize = true; + this.lblDefinition.Location = new System.Drawing.Point(14, 46); + this.lblDefinition.Name = "lblDefinition"; + this.lblDefinition.Size = new System.Drawing.Size(51, 13); + this.lblDefinition.TabIndex = 2; + this.lblDefinition.Text = "Definition"; + // + // tbExplanation + // + this.tbExplanation.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbExplanation.Location = new System.Drawing.Point(86, 69); + this.tbExplanation.Name = "tbExplanation"; + this.tbExplanation.Size = new System.Drawing.Size(118, 20); + this.tbExplanation.TabIndex = 2; + // + // lblExplanation + // + this.lblExplanation.AutoSize = true; + this.lblExplanation.Location = new System.Drawing.Point(14, 72); + this.lblExplanation.Name = "lblExplanation"; + this.lblExplanation.Size = new System.Drawing.Size(62, 13); + this.lblExplanation.TabIndex = 4; + this.lblExplanation.Text = "Explanation"; + // + // QualityControlLevelView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tbExplanation); + this.Controls.Add(this.lblExplanation); + this.Controls.Add(this.tbDefinition); + this.Controls.Add(this.lblDefinition); + this.Controls.Add(this.tbCode); + this.Controls.Add(this.lblCode); + this.Name = "QualityControlLevelView"; + this.Size = new System.Drawing.Size(217, 112); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblCode; + private System.Windows.Forms.TextBox tbCode; + private System.Windows.Forms.TextBox tbDefinition; + private System.Windows.Forms.Label lblDefinition; + private System.Windows.Forms.TextBox tbExplanation; + private System.Windows.Forms.Label lblExplanation; + private System.Windows.Forms.BindingSource bindingSource1; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/QualityControlLevelView.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/QualityControlLevelView.cs new file mode 100644 index 00000000..3a5f06e3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/QualityControlLevelView.cs @@ -0,0 +1,59 @@ +using System.ComponentModel; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.DataImport.CommonPages +{ + /// + /// View of + /// + public partial class QualityControlLevelView : UserControl + { + #region Fields + + private QualityControlLevel _entity; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public QualityControlLevelView() + { + InitializeComponent(); + + if (this.IsDesignMode()) return; + + bindingSource1.DataSource = typeof(QualityControlLevel); + + // Set bindings + tbCode.AddBinding(x => x.Text, bindingSource1, x => x.Code); + tbDefinition.AddBinding(x => x.Text, bindingSource1, x => x.Definition); + tbExplanation.AddBinding(x => x.Text, bindingSource1, x => x.Explanation); + } + + #endregion + + #region Properties + + /// + /// Current Entity + /// + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public QualityControlLevel Entity + { + get { return _entity; } + set + { + _entity = value; + bindingSource1.DataSource = value ?? (object)typeof(QualityControlLevel); + } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/QualityControlLevelView.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/QualityControlLevelView.resx new file mode 100644 index 00000000..4d6bea97 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/QualityControlLevelView.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SelectColumnForm.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SelectColumnForm.Designer.cs new file mode 100644 index 00000000..36c28601 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SelectColumnForm.Designer.cs @@ -0,0 +1,105 @@ +namespace HydroDesktop.Plugins.DataImport.CommonPages.FieldProperties +{ + partial class SelectColumnForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnCancel = new System.Windows.Forms.Button(); + this.btnOK = new System.Windows.Forms.Button(); + this.lblColumns = new System.Windows.Forms.Label(); + this.cmbColumns = new System.Windows.Forms.ComboBox(); + this.SuspendLayout(); + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(223, 105); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 4; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(142, 105); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 3; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + // + // lblColumns + // + this.lblColumns.AutoSize = true; + this.lblColumns.Location = new System.Drawing.Point(12, 24); + this.lblColumns.Name = "lblColumns"; + this.lblColumns.Size = new System.Drawing.Size(95, 13); + this.lblColumns.TabIndex = 5; + this.lblColumns.Text = "Available columns:"; + // + // cmbColumns + // + this.cmbColumns.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbColumns.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbColumns.FormattingEnabled = true; + this.cmbColumns.Location = new System.Drawing.Point(15, 48); + this.cmbColumns.Name = "cmbColumns"; + this.cmbColumns.Size = new System.Drawing.Size(283, 21); + this.cmbColumns.TabIndex = 6; + // + // SelectColumnForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(310, 140); + this.Controls.Add(this.cmbColumns); + this.Controls.Add(this.lblColumns); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "SelectColumnForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Select column to import"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Label lblColumns; + private System.Windows.Forms.ComboBox cmbColumns; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SelectColumnForm.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SelectColumnForm.cs new file mode 100644 index 00000000..646f959b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SelectColumnForm.cs @@ -0,0 +1,32 @@ +using System.Collections.Generic; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; + +namespace HydroDesktop.Plugins.DataImport.CommonPages.FieldProperties +{ + /// + /// Form that allow to specify column to import + /// + public partial class SelectColumnForm : Form + { + /// + /// Create new instance of + /// + /// List of available columns + public SelectColumnForm(IList columns) + { + InitializeComponent(); + + cmbColumns.DisplayMember = NameHelper.Name(x => x.ColumnName); + cmbColumns.DataSource = columns; + } + + /// + /// Selected column + /// + public ColumnInfo SelectedItem + { + get { return (ColumnInfo)cmbColumns.SelectedItem; } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SelectColumnForm.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SelectColumnForm.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SelectColumnForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SiteView.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SiteView.Designer.cs new file mode 100644 index 00000000..86815697 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SiteView.Designer.cs @@ -0,0 +1,204 @@ +namespace HydroDesktop.Plugins.DataImport.CommonPages +{ + partial class SiteView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.nudElevation = new DataImport.CommonPages.NumericUpDownEx(); + this.lblElevation = new System.Windows.Forms.Label(); + this.tbSiteCode = new System.Windows.Forms.TextBox(); + this.lblSiteCode = new System.Windows.Forms.Label(); + this.nudLng = new DataImport.CommonPages.NumericUpDownEx(); + this.nudLat = new DataImport.CommonPages.NumericUpDownEx(); + this.lblLongitude = new System.Windows.Forms.Label(); + this.lblLatitude = new System.Windows.Forms.Label(); + this.tbSiteName = new System.Windows.Forms.TextBox(); + this.lblSiteName = new System.Windows.Forms.Label(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + ((System.ComponentModel.ISupportInitialize)(this.nudElevation)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudLng)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudLat)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + this.SuspendLayout(); + // + // nudElevation + // + this.nudElevation.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nudElevation.DecimalPlaces = 4; + this.nudElevation.FullReadOnly = false; + this.nudElevation.Location = new System.Drawing.Point(74, 151); + this.nudElevation.Name = "nudElevation"; + this.nudElevation.Size = new System.Drawing.Size(145, 20); + this.nudElevation.TabIndex = 4; + // + // lblElevation + // + this.lblElevation.AutoSize = true; + this.lblElevation.Location = new System.Drawing.Point(14, 153); + this.lblElevation.Name = "lblElevation"; + this.lblElevation.Size = new System.Drawing.Size(51, 13); + this.lblElevation.TabIndex = 20; + this.lblElevation.Text = "Elevation"; + // + // tbSiteCode + // + this.tbSiteCode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbSiteCode.Location = new System.Drawing.Point(74, 48); + this.tbSiteCode.Name = "tbSiteCode"; + this.tbSiteCode.Size = new System.Drawing.Size(144, 20); + this.tbSiteCode.TabIndex = 1; + // + // lblSiteCode + // + this.lblSiteCode.AutoSize = true; + this.lblSiteCode.Location = new System.Drawing.Point(14, 51); + this.lblSiteCode.Name = "lblSiteCode"; + this.lblSiteCode.Size = new System.Drawing.Size(52, 13); + this.lblSiteCode.TabIndex = 19; + this.lblSiteCode.Text = "Site code"; + // + // nudLng + // + this.nudLng.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nudLng.DecimalPlaces = 4; + this.nudLng.FullReadOnly = false; + this.nudLng.Location = new System.Drawing.Point(74, 116); + this.nudLng.Maximum = new decimal(new int[] { + 180, + 0, + 0, + 0}); + this.nudLng.Minimum = new decimal(new int[] { + 180, + 0, + 0, + -2147483648}); + this.nudLng.Name = "nudLng"; + this.nudLng.Size = new System.Drawing.Size(144, 20); + this.nudLng.TabIndex = 3; + // + // nudLat + // + this.nudLat.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nudLat.DecimalPlaces = 4; + this.nudLat.FullReadOnly = false; + this.nudLat.Location = new System.Drawing.Point(74, 84); + this.nudLat.Maximum = new decimal(new int[] { + 90, + 0, + 0, + 0}); + this.nudLat.Minimum = new decimal(new int[] { + 90, + 0, + 0, + -2147483648}); + this.nudLat.Name = "nudLat"; + this.nudLat.Size = new System.Drawing.Size(144, 20); + this.nudLat.TabIndex = 2; + // + // lblLongitude + // + this.lblLongitude.AutoSize = true; + this.lblLongitude.Location = new System.Drawing.Point(14, 118); + this.lblLongitude.Name = "lblLongitude"; + this.lblLongitude.Size = new System.Drawing.Size(54, 13); + this.lblLongitude.TabIndex = 18; + this.lblLongitude.Text = "Longitude"; + // + // lblLatitude + // + this.lblLatitude.AutoSize = true; + this.lblLatitude.Location = new System.Drawing.Point(14, 86); + this.lblLatitude.Name = "lblLatitude"; + this.lblLatitude.Size = new System.Drawing.Size(45, 13); + this.lblLatitude.TabIndex = 17; + this.lblLatitude.Text = "Latitude"; + // + // tbSiteName + // + this.tbSiteName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbSiteName.Location = new System.Drawing.Point(74, 16); + this.tbSiteName.Name = "tbSiteName"; + this.tbSiteName.Size = new System.Drawing.Size(144, 20); + this.tbSiteName.TabIndex = 0; + // + // lblSiteName + // + this.lblSiteName.AutoSize = true; + this.lblSiteName.Location = new System.Drawing.Point(14, 19); + this.lblSiteName.Name = "lblSiteName"; + this.lblSiteName.Size = new System.Drawing.Size(54, 13); + this.lblSiteName.TabIndex = 14; + this.lblSiteName.Text = "Site name"; + // + // SiteView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.nudElevation); + this.Controls.Add(this.lblElevation); + this.Controls.Add(this.tbSiteCode); + this.Controls.Add(this.lblSiteCode); + this.Controls.Add(this.nudLng); + this.Controls.Add(this.nudLat); + this.Controls.Add(this.lblLongitude); + this.Controls.Add(this.lblLatitude); + this.Controls.Add(this.tbSiteName); + this.Controls.Add(this.lblSiteName); + this.Name = "SiteView"; + this.Size = new System.Drawing.Size(231, 190); + ((System.ComponentModel.ISupportInitialize)(this.nudElevation)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudLng)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudLat)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private NumericUpDownEx nudElevation; + private System.Windows.Forms.Label lblElevation; + private System.Windows.Forms.TextBox tbSiteCode; + private System.Windows.Forms.Label lblSiteCode; + private NumericUpDownEx nudLng; + private NumericUpDownEx nudLat; + private System.Windows.Forms.Label lblLongitude; + private System.Windows.Forms.Label lblLatitude; + private System.Windows.Forms.TextBox tbSiteName; + private System.Windows.Forms.Label lblSiteName; + private System.Windows.Forms.BindingSource bindingSource1; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SiteView.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SiteView.cs new file mode 100644 index 00000000..b995f2ed --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SiteView.cs @@ -0,0 +1,109 @@ +using System; +using System.ComponentModel; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.DataImport.CommonPages +{ + /// + /// View of + /// + public partial class SiteView : UserControl + { + #region Fields + + private Site _entity; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public SiteView() + { + InitializeComponent(); + + if (this.IsDesignMode()) return; + + bindingSource1.DataSource = typeof(Site); + + // Set Bindings + tbSiteName.AddBinding(x => x.Text, bindingSource1, x => x.Name); + tbSiteCode.AddBinding(x => x.Text, bindingSource1, x => x.Code); + nudLat.AddBinding(x => x.Value, bindingSource1, x => x.Latitude); + nudLng.AddBinding(x => x.Value, bindingSource1, x => x.Longitude); + nudElevation.AddBinding(x => x.Value, bindingSource1, x => x.Elevation_m); + } + + #endregion + + #region Properties + + /// + /// Current Entity + /// + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public Site Entity + { + get { return _entity; } + set + { + _entity = value; + bindingSource1.DataSource = value ?? (object)typeof(Site); + } + } + + private bool _readOnly; + [Browsable(false)] + public bool ReadOnly + { + get { return _readOnly; } + set + { + _readOnly = value; + + tbSiteName.ReadOnly = value; + tbSiteCode.ReadOnly = value; + nudLat.FullReadOnly = value; + nudLng.FullReadOnly = value; + nudElevation.FullReadOnly = value; + } + } + + #endregion + + #region Public methods + + /// + /// Validate Current Entity + /// + /// Error or string.Empty + public string EntityValidate() + { + var site = Entity; + const double EPSILON = 0.00001; + + string error; + if (site == null) + error = "You should specify Site"; + else if (String.IsNullOrEmpty(site.Name)) + error = "Site should have a Name"; + else if (String.IsNullOrEmpty(site.Code)) + error = "Site should have a Code"; + else if (Math.Abs(site.Latitude - 0.0) < EPSILON) + error = "Site should have a non-zero Latitude"; + else if (Math.Abs(site.Longitude - 0.0) < EPSILON) + error = "Site should have a non-zero Longitude"; + else + error = string.Empty; + + return error; + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SiteView.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SiteView.resx new file mode 100644 index 00000000..4d6bea97 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SiteView.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SourceView.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SourceView.Designer.cs new file mode 100644 index 00000000..5cd0f5fc --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SourceView.Designer.cs @@ -0,0 +1,342 @@ +namespace HydroDesktop.Plugins.DataImport.CommonPages +{ + partial class SourceView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lblOrganization = new System.Windows.Forms.Label(); + this.tbOrganization = new System.Windows.Forms.TextBox(); + this.tbDescription = new System.Windows.Forms.TextBox(); + this.lblSourceDescription = new System.Windows.Forms.Label(); + this.tbLink = new System.Windows.Forms.TextBox(); + this.lblLink = new System.Windows.Forms.Label(); + this.tbContactName = new System.Windows.Forms.TextBox(); + this.lblContactName = new System.Windows.Forms.Label(); + this.tbPhone = new System.Windows.Forms.TextBox(); + this.lblPhone = new System.Windows.Forms.Label(); + this.tbEmail = new System.Windows.Forms.TextBox(); + this.lblEmail = new System.Windows.Forms.Label(); + this.tbAddress = new System.Windows.Forms.TextBox(); + this.lblAddress = new System.Windows.Forms.Label(); + this.tbCity = new System.Windows.Forms.TextBox(); + this.lblCity = new System.Windows.Forms.Label(); + this.tbState = new System.Windows.Forms.TextBox(); + this.lblState = new System.Windows.Forms.Label(); + this.tbZipCode = new System.Windows.Forms.TextBox(); + this.lblZipCode = new System.Windows.Forms.Label(); + this.tbCitation = new System.Windows.Forms.TextBox(); + this.lblCitation = new System.Windows.Forms.Label(); + this.lblMetadata = new System.Windows.Forms.Label(); + this.cmbMetadata = new System.Windows.Forms.ComboBox(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + this.SuspendLayout(); + // + // lblOrganization + // + this.lblOrganization.AutoSize = true; + this.lblOrganization.Location = new System.Drawing.Point(13, 13); + this.lblOrganization.Name = "lblOrganization"; + this.lblOrganization.Size = new System.Drawing.Size(66, 13); + this.lblOrganization.TabIndex = 0; + this.lblOrganization.Text = "Organization"; + // + // tbOrganization + // + this.tbOrganization.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbOrganization.Location = new System.Drawing.Point(101, 10); + this.tbOrganization.Name = "tbOrganization"; + this.tbOrganization.Size = new System.Drawing.Size(182, 20); + this.tbOrganization.TabIndex = 1; + // + // tbDescription + // + this.tbDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbDescription.Location = new System.Drawing.Point(101, 38); + this.tbDescription.Name = "tbDescription"; + this.tbDescription.Size = new System.Drawing.Size(182, 20); + this.tbDescription.TabIndex = 3; + // + // lblSourceDescription + // + this.lblSourceDescription.AutoSize = true; + this.lblSourceDescription.Location = new System.Drawing.Point(13, 41); + this.lblSourceDescription.Name = "lblSourceDescription"; + this.lblSourceDescription.Size = new System.Drawing.Size(60, 13); + this.lblSourceDescription.TabIndex = 2; + this.lblSourceDescription.Text = "Description"; + // + // tbLink + // + this.tbLink.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbLink.Location = new System.Drawing.Point(101, 66); + this.tbLink.Name = "tbLink"; + this.tbLink.Size = new System.Drawing.Size(182, 20); + this.tbLink.TabIndex = 5; + // + // lblLink + // + this.lblLink.AutoSize = true; + this.lblLink.Location = new System.Drawing.Point(13, 69); + this.lblLink.Name = "lblLink"; + this.lblLink.Size = new System.Drawing.Size(27, 13); + this.lblLink.TabIndex = 4; + this.lblLink.Text = "Link"; + // + // tbContactName + // + this.tbContactName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbContactName.Location = new System.Drawing.Point(101, 94); + this.tbContactName.Name = "tbContactName"; + this.tbContactName.Size = new System.Drawing.Size(182, 20); + this.tbContactName.TabIndex = 7; + // + // lblContactName + // + this.lblContactName.AutoSize = true; + this.lblContactName.Location = new System.Drawing.Point(13, 97); + this.lblContactName.Name = "lblContactName"; + this.lblContactName.Size = new System.Drawing.Size(73, 13); + this.lblContactName.TabIndex = 6; + this.lblContactName.Text = "Contact name"; + // + // tbPhone + // + this.tbPhone.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbPhone.Location = new System.Drawing.Point(101, 122); + this.tbPhone.Name = "tbPhone"; + this.tbPhone.Size = new System.Drawing.Size(182, 20); + this.tbPhone.TabIndex = 9; + // + // lblPhone + // + this.lblPhone.AutoSize = true; + this.lblPhone.Location = new System.Drawing.Point(13, 125); + this.lblPhone.Name = "lblPhone"; + this.lblPhone.Size = new System.Drawing.Size(38, 13); + this.lblPhone.TabIndex = 8; + this.lblPhone.Text = "Phone"; + // + // tbEmail + // + this.tbEmail.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbEmail.Location = new System.Drawing.Point(101, 150); + this.tbEmail.Name = "tbEmail"; + this.tbEmail.Size = new System.Drawing.Size(182, 20); + this.tbEmail.TabIndex = 11; + // + // lblEmail + // + this.lblEmail.AutoSize = true; + this.lblEmail.Location = new System.Drawing.Point(13, 153); + this.lblEmail.Name = "lblEmail"; + this.lblEmail.Size = new System.Drawing.Size(32, 13); + this.lblEmail.TabIndex = 10; + this.lblEmail.Text = "Email"; + // + // tbAddress + // + this.tbAddress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbAddress.Location = new System.Drawing.Point(101, 178); + this.tbAddress.Name = "tbAddress"; + this.tbAddress.Size = new System.Drawing.Size(182, 20); + this.tbAddress.TabIndex = 13; + // + // lblAddress + // + this.lblAddress.AutoSize = true; + this.lblAddress.Location = new System.Drawing.Point(13, 181); + this.lblAddress.Name = "lblAddress"; + this.lblAddress.Size = new System.Drawing.Size(45, 13); + this.lblAddress.TabIndex = 12; + this.lblAddress.Text = "Address"; + // + // tbCity + // + this.tbCity.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbCity.Location = new System.Drawing.Point(101, 206); + this.tbCity.Name = "tbCity"; + this.tbCity.Size = new System.Drawing.Size(182, 20); + this.tbCity.TabIndex = 15; + // + // lblCity + // + this.lblCity.AutoSize = true; + this.lblCity.Location = new System.Drawing.Point(13, 209); + this.lblCity.Name = "lblCity"; + this.lblCity.Size = new System.Drawing.Size(24, 13); + this.lblCity.TabIndex = 14; + this.lblCity.Text = "City"; + // + // tbState + // + this.tbState.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbState.Location = new System.Drawing.Point(101, 234); + this.tbState.Name = "tbState"; + this.tbState.Size = new System.Drawing.Size(182, 20); + this.tbState.TabIndex = 17; + // + // lblState + // + this.lblState.AutoSize = true; + this.lblState.Location = new System.Drawing.Point(13, 237); + this.lblState.Name = "lblState"; + this.lblState.Size = new System.Drawing.Size(32, 13); + this.lblState.TabIndex = 16; + this.lblState.Text = "State"; + // + // tbZipCode + // + this.tbZipCode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbZipCode.Location = new System.Drawing.Point(101, 262); + this.tbZipCode.Name = "tbZipCode"; + this.tbZipCode.Size = new System.Drawing.Size(182, 20); + this.tbZipCode.TabIndex = 19; + // + // lblZipCode + // + this.lblZipCode.AutoSize = true; + this.lblZipCode.Location = new System.Drawing.Point(13, 265); + this.lblZipCode.Name = "lblZipCode"; + this.lblZipCode.Size = new System.Drawing.Size(47, 13); + this.lblZipCode.TabIndex = 18; + this.lblZipCode.Text = "ZipCode"; + // + // tbCitation + // + this.tbCitation.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbCitation.Location = new System.Drawing.Point(101, 290); + this.tbCitation.Name = "tbCitation"; + this.tbCitation.Size = new System.Drawing.Size(182, 20); + this.tbCitation.TabIndex = 21; + // + // lblCitation + // + this.lblCitation.AutoSize = true; + this.lblCitation.Location = new System.Drawing.Point(13, 293); + this.lblCitation.Name = "lblCitation"; + this.lblCitation.Size = new System.Drawing.Size(42, 13); + this.lblCitation.TabIndex = 20; + this.lblCitation.Text = "Citation"; + // + // lblMetadata + // + this.lblMetadata.AutoSize = true; + this.lblMetadata.Location = new System.Drawing.Point(13, 321); + this.lblMetadata.Name = "lblMetadata"; + this.lblMetadata.Size = new System.Drawing.Size(52, 13); + this.lblMetadata.TabIndex = 22; + this.lblMetadata.Text = "Metatada"; + // + // cmbMetadata + // + this.cmbMetadata.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbMetadata.FormattingEnabled = true; + this.cmbMetadata.Location = new System.Drawing.Point(101, 318); + this.cmbMetadata.Name = "cmbMetadata"; + this.cmbMetadata.Size = new System.Drawing.Size(182, 21); + this.cmbMetadata.TabIndex = 23; + // + // SourceView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.cmbMetadata); + this.Controls.Add(this.lblMetadata); + this.Controls.Add(this.tbCitation); + this.Controls.Add(this.lblCitation); + this.Controls.Add(this.tbZipCode); + this.Controls.Add(this.lblZipCode); + this.Controls.Add(this.tbState); + this.Controls.Add(this.lblState); + this.Controls.Add(this.tbCity); + this.Controls.Add(this.lblCity); + this.Controls.Add(this.tbAddress); + this.Controls.Add(this.lblAddress); + this.Controls.Add(this.tbEmail); + this.Controls.Add(this.lblEmail); + this.Controls.Add(this.tbPhone); + this.Controls.Add(this.lblPhone); + this.Controls.Add(this.tbContactName); + this.Controls.Add(this.lblContactName); + this.Controls.Add(this.tbLink); + this.Controls.Add(this.lblLink); + this.Controls.Add(this.tbDescription); + this.Controls.Add(this.lblSourceDescription); + this.Controls.Add(this.tbOrganization); + this.Controls.Add(this.lblOrganization); + this.MinimumSize = new System.Drawing.Size(200, 355); + this.Name = "SourceView"; + this.Size = new System.Drawing.Size(296, 355); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblOrganization; + private System.Windows.Forms.TextBox tbOrganization; + private System.Windows.Forms.TextBox tbDescription; + private System.Windows.Forms.Label lblSourceDescription; + private System.Windows.Forms.TextBox tbLink; + private System.Windows.Forms.Label lblLink; + private System.Windows.Forms.TextBox tbContactName; + private System.Windows.Forms.Label lblContactName; + private System.Windows.Forms.TextBox tbPhone; + private System.Windows.Forms.Label lblPhone; + private System.Windows.Forms.TextBox tbEmail; + private System.Windows.Forms.Label lblEmail; + private System.Windows.Forms.TextBox tbAddress; + private System.Windows.Forms.Label lblAddress; + private System.Windows.Forms.TextBox tbCity; + private System.Windows.Forms.Label lblCity; + private System.Windows.Forms.TextBox tbState; + private System.Windows.Forms.Label lblState; + private System.Windows.Forms.TextBox tbZipCode; + private System.Windows.Forms.Label lblZipCode; + private System.Windows.Forms.TextBox tbCitation; + private System.Windows.Forms.Label lblCitation; + private System.Windows.Forms.Label lblMetadata; + private System.Windows.Forms.ComboBox cmbMetadata; + private System.Windows.Forms.BindingSource bindingSource1; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SourceView.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SourceView.cs new file mode 100644 index 00000000..fcfed54f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SourceView.cs @@ -0,0 +1,68 @@ +using System.ComponentModel; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.DataImport.CommonPages +{ + /// + /// View of + /// + public partial class SourceView : UserControl + { + #region Fields + + private Source _entity; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public SourceView() + { + InitializeComponent(); + + if (this.IsDesignMode()) return; + + bindingSource1.DataSource = typeof(Source); + + // Set bindings + tbOrganization.AddBinding(x => x.Text, bindingSource1, x => x.Organization); + tbDescription.AddBinding(x => x.Text, bindingSource1, x => x.Description); + tbLink.AddBinding(x => x.Text, bindingSource1, x => x.Link); + tbContactName.AddBinding(x => x.Text, bindingSource1, x => x.ContactName); + tbPhone.AddBinding(x => x.Text, bindingSource1, x => x.Phone); + tbEmail.AddBinding(x => x.Text, bindingSource1, x => x.Email); + tbAddress.AddBinding(x => x.Text, bindingSource1, x => x.Address); + tbCity.AddBinding(x => x.Text, bindingSource1, x => x.City); + tbState.AddBinding(x => x.Text, bindingSource1, x => x.State); + tbZipCode.AddBinding(x => x.Text, bindingSource1, x => x.ZipCode); + tbCitation.AddBinding(x => x.Text, bindingSource1, x => x.Citation); + // todo: cmbMetadata + } + + #endregion + + #region Properties + + /// + /// Current Entity + /// + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public Source Entity + { + get { return _entity; } + set + { + _entity = value; + bindingSource1.DataSource = value ?? (object)typeof(Source); + } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SourceView.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SourceView.resx new file mode 100644 index 00000000..4d6bea97 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/SourceView.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/UnitView.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/UnitView.Designer.cs new file mode 100644 index 00000000..feb42c00 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/UnitView.Designer.cs @@ -0,0 +1,124 @@ +namespace HydroDesktop.Plugins.DataImport.CommonPages.FieldProperties +{ + partial class UnitView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lblName = new System.Windows.Forms.Label(); + this.tbName = new System.Windows.Forms.TextBox(); + this.tbType = new System.Windows.Forms.TextBox(); + this.lblType = new System.Windows.Forms.Label(); + this.tbAbbreviation = new System.Windows.Forms.TextBox(); + this.lblAbbreviation = new System.Windows.Forms.Label(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + this.SuspendLayout(); + // + // lblName + // + this.lblName.AutoSize = true; + this.lblName.Location = new System.Drawing.Point(15, 18); + this.lblName.Name = "lblName"; + this.lblName.Size = new System.Drawing.Size(35, 13); + this.lblName.TabIndex = 0; + this.lblName.Text = "Name"; + // + // tbName + // + this.tbName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbName.Location = new System.Drawing.Point(86, 15); + this.tbName.Name = "tbName"; + this.tbName.Size = new System.Drawing.Size(123, 20); + this.tbName.TabIndex = 0; + // + // tbType + // + this.tbType.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbType.Location = new System.Drawing.Point(86, 41); + this.tbType.Name = "tbType"; + this.tbType.Size = new System.Drawing.Size(123, 20); + this.tbType.TabIndex = 1; + // + // lblType + // + this.lblType.AutoSize = true; + this.lblType.Location = new System.Drawing.Point(15, 44); + this.lblType.Name = "lblType"; + this.lblType.Size = new System.Drawing.Size(31, 13); + this.lblType.TabIndex = 2; + this.lblType.Text = "Type"; + // + // tbAbbreviation + // + this.tbAbbreviation.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbAbbreviation.Location = new System.Drawing.Point(86, 67); + this.tbAbbreviation.Name = "tbAbbreviation"; + this.tbAbbreviation.Size = new System.Drawing.Size(123, 20); + this.tbAbbreviation.TabIndex = 3; + // + // lblAbbreviation + // + this.lblAbbreviation.AutoSize = true; + this.lblAbbreviation.Location = new System.Drawing.Point(15, 70); + this.lblAbbreviation.Name = "lblAbbreviation"; + this.lblAbbreviation.Size = new System.Drawing.Size(66, 13); + this.lblAbbreviation.TabIndex = 4; + this.lblAbbreviation.Text = "Abbreviation"; + // + // UnitView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tbAbbreviation); + this.Controls.Add(this.lblAbbreviation); + this.Controls.Add(this.tbType); + this.Controls.Add(this.lblType); + this.Controls.Add(this.tbName); + this.Controls.Add(this.lblName); + this.Name = "UnitView"; + this.Size = new System.Drawing.Size(219, 100); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblName; + private System.Windows.Forms.TextBox tbName; + private System.Windows.Forms.TextBox tbType; + private System.Windows.Forms.Label lblType; + private System.Windows.Forms.TextBox tbAbbreviation; + private System.Windows.Forms.Label lblAbbreviation; + private System.Windows.Forms.BindingSource bindingSource1; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/UnitView.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/UnitView.cs new file mode 100644 index 00000000..513be0ab --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/UnitView.cs @@ -0,0 +1,85 @@ +using System; +using System.ComponentModel; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.DataImport.CommonPages.FieldProperties +{ + /// + /// View of + /// + public partial class UnitView : UserControl + { + #region Fields + + private Unit _entity; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public UnitView() + { + InitializeComponent(); + + if (this.IsDesignMode()) return; + + bindingSource1.DataSource = typeof (Unit); + + // Set bindings + tbName.AddBinding(x => x.Text, bindingSource1, x => x.Name); + tbType.AddBinding(x => x.Text, bindingSource1, x => x.UnitsType); + tbAbbreviation.AddBinding(x => x.Text, bindingSource1, x => x.Abbreviation); + } + + #endregion + + #region Properties + + /// + /// Current Entity + /// + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public Unit Entity + { + get { return _entity; } + set + { + _entity = value; + bindingSource1.DataSource = value ?? (object) typeof (Unit); + } + } + + #endregion + + #region Public methods + + /// + /// Validate Current Entity + /// + /// Error or string.Empty + public string EntityValidate() + { + var unit = Entity; + + string error; + if (String.IsNullOrEmpty(unit.Name)) + error = "Unit should have a Name"; + else if (String.IsNullOrEmpty(unit.UnitsType)) + error = "Unit should have a Type"; + else if (String.IsNullOrEmpty(unit.Abbreviation)) + error = "Unit should have a Abbreviation"; + else + error = string.Empty; + + return error; + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/UnitView.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/UnitView.resx new file mode 100644 index 00000000..4d6bea97 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/UnitView.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/VariableView.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/VariableView.Designer.cs new file mode 100644 index 00000000..41510206 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/VariableView.Designer.cs @@ -0,0 +1,333 @@ +namespace HydroDesktop.Plugins.DataImport.CommonPages +{ + partial class VariableView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lblName = new System.Windows.Forms.Label(); + this.tbCode = new System.Windows.Forms.TextBox(); + this.lblCode = new System.Windows.Forms.Label(); + this.lblVariableUnits = new System.Windows.Forms.Label(); + this.cmbVariableUnits = new System.Windows.Forms.ComboBox(); + this.cmbTimeUnits = new System.Windows.Forms.ComboBox(); + this.lblTimeUnits = new System.Windows.Forms.Label(); + this.lblDataType = new System.Windows.Forms.Label(); + this.lblValueType = new System.Windows.Forms.Label(); + this.lblTimeSupport = new System.Windows.Forms.Label(); + this.lblNoDataValue = new System.Windows.Forms.Label(); + this.cmbName = new System.Windows.Forms.ComboBox(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + this.cmbValueType = new System.Windows.Forms.ComboBox(); + this.nudNoDataValue = new DataImport.CommonPages.NumericUpDownEx(); + this.nudTimeSupport = new DataImport.CommonPages.NumericUpDownEx(); + this.cmbDataType = new System.Windows.Forms.ComboBox(); + this.cmbSampleMedium = new System.Windows.Forms.ComboBox(); + this.lblSampleMedium = new System.Windows.Forms.Label(); + this.btnCreateNewVariableUnit = new System.Windows.Forms.Button(); + this.btnCreateNewTimeUnit = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudNoDataValue)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTimeSupport)).BeginInit(); + this.SuspendLayout(); + // + // lblName + // + this.lblName.AutoSize = true; + this.lblName.Location = new System.Drawing.Point(13, 15); + this.lblName.Name = "lblName"; + this.lblName.Size = new System.Drawing.Size(35, 13); + this.lblName.TabIndex = 0; + this.lblName.Text = "Name"; + // + // tbCode + // + this.tbCode.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbCode.Location = new System.Drawing.Point(103, 41); + this.tbCode.Name = "tbCode"; + this.tbCode.Size = new System.Drawing.Size(186, 20); + this.tbCode.TabIndex = 1; + // + // lblCode + // + this.lblCode.AutoSize = true; + this.lblCode.Location = new System.Drawing.Point(13, 44); + this.lblCode.Name = "lblCode"; + this.lblCode.Size = new System.Drawing.Size(32, 13); + this.lblCode.TabIndex = 2; + this.lblCode.Text = "Code"; + // + // lblVariableUnits + // + this.lblVariableUnits.AutoSize = true; + this.lblVariableUnits.Location = new System.Drawing.Point(13, 73); + this.lblVariableUnits.Name = "lblVariableUnits"; + this.lblVariableUnits.Size = new System.Drawing.Size(70, 13); + this.lblVariableUnits.TabIndex = 4; + this.lblVariableUnits.Text = "Variable units"; + // + // cmbVariableUnits + // + this.cmbVariableUnits.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbVariableUnits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbVariableUnits.FormattingEnabled = true; + this.cmbVariableUnits.Location = new System.Drawing.Point(103, 70); + this.cmbVariableUnits.Name = "cmbVariableUnits"; + this.cmbVariableUnits.Size = new System.Drawing.Size(97, 21); + this.cmbVariableUnits.TabIndex = 2; + // + // cmbTimeUnits + // + this.cmbTimeUnits.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbTimeUnits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbTimeUnits.FormattingEnabled = true; + this.cmbTimeUnits.Location = new System.Drawing.Point(103, 210); + this.cmbTimeUnits.Name = "cmbTimeUnits"; + this.cmbTimeUnits.Size = new System.Drawing.Size(97, 21); + this.cmbTimeUnits.TabIndex = 6; + // + // lblTimeUnits + // + this.lblTimeUnits.AutoSize = true; + this.lblTimeUnits.Location = new System.Drawing.Point(13, 213); + this.lblTimeUnits.Name = "lblTimeUnits"; + this.lblTimeUnits.Size = new System.Drawing.Size(55, 13); + this.lblTimeUnits.TabIndex = 6; + this.lblTimeUnits.Text = "Time units"; + // + // lblDataType + // + this.lblDataType.AutoSize = true; + this.lblDataType.Location = new System.Drawing.Point(13, 102); + this.lblDataType.Name = "lblDataType"; + this.lblDataType.Size = new System.Drawing.Size(53, 13); + this.lblDataType.TabIndex = 8; + this.lblDataType.Text = "Data type"; + // + // lblValueType + // + this.lblValueType.AutoSize = true; + this.lblValueType.Location = new System.Drawing.Point(13, 131); + this.lblValueType.Name = "lblValueType"; + this.lblValueType.Size = new System.Drawing.Size(57, 13); + this.lblValueType.TabIndex = 10; + this.lblValueType.Text = "Value type"; + // + // lblTimeSupport + // + this.lblTimeSupport.AutoSize = true; + this.lblTimeSupport.Location = new System.Drawing.Point(13, 184); + this.lblTimeSupport.Name = "lblTimeSupport"; + this.lblTimeSupport.Size = new System.Drawing.Size(68, 13); + this.lblTimeSupport.TabIndex = 12; + this.lblTimeSupport.Text = "Time support"; + // + // lblNoDataValue + // + this.lblNoDataValue.AutoSize = true; + this.lblNoDataValue.Location = new System.Drawing.Point(13, 242); + this.lblNoDataValue.Name = "lblNoDataValue"; + this.lblNoDataValue.Size = new System.Drawing.Size(74, 13); + this.lblNoDataValue.TabIndex = 14; + this.lblNoDataValue.Text = "No data value"; + // + // cmbName + // + this.cmbName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbName.FormattingEnabled = true; + this.cmbName.Location = new System.Drawing.Point(103, 12); + this.cmbName.Name = "cmbName"; + this.cmbName.Size = new System.Drawing.Size(186, 21); + this.cmbName.TabIndex = 0; + // + // cmbValueType + // + this.cmbValueType.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbValueType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbValueType.FormattingEnabled = true; + this.cmbValueType.Location = new System.Drawing.Point(103, 125); + this.cmbValueType.Name = "cmbValueType"; + this.cmbValueType.Size = new System.Drawing.Size(186, 21); + this.cmbValueType.TabIndex = 15; + // + // nudNoDataValue + // + this.nudNoDataValue.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nudNoDataValue.FullReadOnly = false; + this.nudNoDataValue.Location = new System.Drawing.Point(103, 240); + this.nudNoDataValue.Maximum = new decimal(new int[] { + -1, + -1, + -1, + 0}); + this.nudNoDataValue.Minimum = new decimal(new int[] { + -1, + -1, + -1, + -2147483648}); + this.nudNoDataValue.Name = "nudNoDataValue"; + this.nudNoDataValue.Size = new System.Drawing.Size(186, 20); + this.nudNoDataValue.TabIndex = 7; + // + // nudTimeSupport + // + this.nudTimeSupport.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nudTimeSupport.FullReadOnly = false; + this.nudTimeSupport.Location = new System.Drawing.Point(103, 182); + this.nudTimeSupport.Maximum = new decimal(new int[] { + -1, + -1, + -1, + 0}); + this.nudTimeSupport.Minimum = new decimal(new int[] { + -1, + -1, + -1, + -2147483648}); + this.nudTimeSupport.Name = "nudTimeSupport"; + this.nudTimeSupport.Size = new System.Drawing.Size(186, 20); + this.nudTimeSupport.TabIndex = 5; + // + // cmbDataType + // + this.cmbDataType.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbDataType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbDataType.FormattingEnabled = true; + this.cmbDataType.Location = new System.Drawing.Point(103, 98); + this.cmbDataType.Name = "cmbDataType"; + this.cmbDataType.Size = new System.Drawing.Size(186, 21); + this.cmbDataType.TabIndex = 16; + // + // cmbSampleMedium + // + this.cmbSampleMedium.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbSampleMedium.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbSampleMedium.FormattingEnabled = true; + this.cmbSampleMedium.Location = new System.Drawing.Point(103, 153); + this.cmbSampleMedium.Name = "cmbSampleMedium"; + this.cmbSampleMedium.Size = new System.Drawing.Size(186, 21); + this.cmbSampleMedium.TabIndex = 18; + // + // lblSampleMedium + // + this.lblSampleMedium.AutoSize = true; + this.lblSampleMedium.Location = new System.Drawing.Point(14, 159); + this.lblSampleMedium.Name = "lblSampleMedium"; + this.lblSampleMedium.Size = new System.Drawing.Size(82, 13); + this.lblSampleMedium.TabIndex = 17; + this.lblSampleMedium.Text = "Sample Medium"; + // + // btnCreateNewVariableUnit + // + this.btnCreateNewVariableUnit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnCreateNewVariableUnit.Location = new System.Drawing.Point(208, 70); + this.btnCreateNewVariableUnit.Name = "btnCreateNewVariableUnit"; + this.btnCreateNewVariableUnit.Size = new System.Drawing.Size(81, 23); + this.btnCreateNewVariableUnit.TabIndex = 19; + this.btnCreateNewVariableUnit.Text = "Create New..."; + this.btnCreateNewVariableUnit.UseVisualStyleBackColor = true; + this.btnCreateNewVariableUnit.Click += new System.EventHandler(this.btnCreateNewVariableUnit_Click); + // + // btnCreateNewTimeUnit + // + this.btnCreateNewTimeUnit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnCreateNewTimeUnit.Location = new System.Drawing.Point(208, 208); + this.btnCreateNewTimeUnit.Name = "btnCreateNewTimeUnit"; + this.btnCreateNewTimeUnit.Size = new System.Drawing.Size(81, 23); + this.btnCreateNewTimeUnit.TabIndex = 20; + this.btnCreateNewTimeUnit.Text = "Create New..."; + this.btnCreateNewTimeUnit.UseVisualStyleBackColor = true; + this.btnCreateNewTimeUnit.Click += new System.EventHandler(this.btnCreateNewTimeUnit_Click); + // + // VariableView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.btnCreateNewTimeUnit); + this.Controls.Add(this.btnCreateNewVariableUnit); + this.Controls.Add(this.cmbSampleMedium); + this.Controls.Add(this.lblSampleMedium); + this.Controls.Add(this.cmbDataType); + this.Controls.Add(this.cmbValueType); + this.Controls.Add(this.cmbName); + this.Controls.Add(this.nudNoDataValue); + this.Controls.Add(this.lblNoDataValue); + this.Controls.Add(this.nudTimeSupport); + this.Controls.Add(this.lblTimeSupport); + this.Controls.Add(this.lblValueType); + this.Controls.Add(this.lblDataType); + this.Controls.Add(this.cmbTimeUnits); + this.Controls.Add(this.lblTimeUnits); + this.Controls.Add(this.cmbVariableUnits); + this.Controls.Add(this.lblVariableUnits); + this.Controls.Add(this.tbCode); + this.Controls.Add(this.lblCode); + this.Controls.Add(this.lblName); + this.Name = "VariableView"; + this.Size = new System.Drawing.Size(303, 277); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudNoDataValue)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudTimeSupport)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.BindingSource bindingSource1; + private System.Windows.Forms.Label lblName; + private System.Windows.Forms.TextBox tbCode; + private System.Windows.Forms.Label lblCode; + private System.Windows.Forms.Label lblVariableUnits; + private System.Windows.Forms.ComboBox cmbVariableUnits; + private System.Windows.Forms.ComboBox cmbTimeUnits; + private System.Windows.Forms.Label lblTimeUnits; + private System.Windows.Forms.Label lblDataType; + private System.Windows.Forms.Label lblValueType; + private System.Windows.Forms.Label lblTimeSupport; + private NumericUpDownEx nudTimeSupport; + private NumericUpDownEx nudNoDataValue; + private System.Windows.Forms.Label lblNoDataValue; + private System.Windows.Forms.ComboBox cmbName; + private System.Windows.Forms.ComboBox cmbValueType; + private System.Windows.Forms.ComboBox cmbDataType; + private System.Windows.Forms.ComboBox cmbSampleMedium; + private System.Windows.Forms.Label lblSampleMedium; + private System.Windows.Forms.Button btnCreateNewVariableUnit; + private System.Windows.Forms.Button btnCreateNewTimeUnit; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/VariableView.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/VariableView.cs new file mode 100644 index 00000000..c74047d9 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/VariableView.cs @@ -0,0 +1,242 @@ +using System; +using System.ComponentModel; +using System.Linq; +using System.Windows.Forms; +using HydroDesktop.Plugins.DataImport.CommonPages.FieldProperties; +using HydroDesktop.Common.Tools; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.DataImport.CommonPages +{ + /// + /// View of + /// + public partial class VariableView : UserControl + { + #region Fields + + private Variable _entity; + private bool _readOnly; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public VariableView() + { + InitializeComponent(); + + if (this.IsDesignMode()) return; + + bindingSource1.DataSource = typeof (Variable); + + // Set Bindings + var unitRepo = RepositoryFactory.Instance.Get(); + var units = unitRepo.GetAll().OrderBy(u => u.Name).ToArray(); + cmbVariableUnits.DataSource = units; + cmbVariableUnits.DisplayMember = NameHelper.Name(x => x.Name); + + units = unitRepo.GetAll().Where(u => u.UnitsType == "Time").OrderBy(u => u.Name).ToArray(); + cmbTimeUnits.DataSource = units; + cmbTimeUnits.DisplayMember = NameHelper.Name(x => x.Name); + + var variablesRepo = RepositoryFactory.Instance.Get(); + var variables = variablesRepo.GetAll(); + + cmbName.DataSource = variables; + cmbName.DisplayMember = NameHelper.Name(x => x.Name); + cmbName.SelectedIndexChanged += delegate + { + var variable = cmbName.SelectedItem as Variable; + if (variable != null) + { + var ent = Entity; + if (ent == null) return; + ent.Code = variable.Code; + ent.DataType = variable.DataType; + ent.GeneralCategory = variable.GeneralCategory; + ent.IsCategorical = variable.IsCategorical; + ent.IsRegular = variable.IsRegular; + ent.Name = variable.Name; + ent.NoDataValue = variable.NoDataValue; + ent.SampleMedium = variable.SampleMedium; + ent.Speciation = variable.Speciation; + ent.TimeSupport = variable.TimeSupport; + ent.TimeUnit = variable.TimeUnit; + ent.ValueType = variable.ValueType; + ent.VariableUnit = variable.VariableUnit; + ent.VocabularyPrefix = variable.VocabularyPrefix; + bindingSource1.ResetBindings(false); + } + }; + + cmbValueType.DataSource = Enum.GetValues(typeof (ValueTypeCV)); + cmbValueType.Format += delegate(object s, ListControlConvertEventArgs args) + { + args.Value = ((ValueTypeCV) args.ListItem).Description(); + }; + + cmbDataType.DataSource = Enum.GetValues(typeof (DataTypeCV)); + cmbDataType.Format += delegate(object s, ListControlConvertEventArgs args) + { + args.Value = ((DataTypeCV) args.ListItem).Description(); + }; + + cmbSampleMedium.DataSource = Enum.GetValues(typeof(SampleMediumCV)); + cmbSampleMedium.Format += delegate(object s, ListControlConvertEventArgs args) + { + args.Value = ((SampleMediumCV) args.ListItem).Description(); + }; + + cmbName.AddBinding(x => x.Text, bindingSource1, x => x.Name); + tbCode.AddBinding(x => x.Text, bindingSource1, x => x.Code); + cmbVariableUnits.AddBinding(x => x.SelectedItem, bindingSource1, x => x.VariableUnit); + cmbDataType.AddBinding(x => x.Text, bindingSource1, x => x.DataType); + cmbValueType.AddBinding(x => x.Text, bindingSource1, x => x.ValueType); + cmbSampleMedium.AddBinding(x => x.Text, bindingSource1, x => x.SampleMedium); + nudTimeSupport.AddBinding(x => x.Value, bindingSource1, x => x.TimeSupport); + cmbTimeUnits.AddBinding(x => x.SelectedItem, bindingSource1, x => x.TimeUnit); + nudNoDataValue.AddBinding(x => x.Value, bindingSource1, x => x.NoDataValue); + } + + #endregion + + #region Properties + + /// + /// Current Entity + /// + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public Variable Entity + { + get { return _entity; } + set + { + _entity = value; + + // Update Unit Combos + if (value != null) + { + UpdateUnitCombo(cmbVariableUnits, Entity.VariableUnit); + UpdateUnitCombo(cmbTimeUnits, Entity.TimeUnit); + } + bindingSource1.DataSource = value ?? (object)typeof(Variable); + } + } + + private static void UpdateUnitCombo(ComboBox comboBox, Unit unit) + { + var units = (Unit[])comboBox.DataSource; + if (units != null && unit != null && + !units.Contains(unit)) + { + Array.Resize(ref units, units.Length + 1); + units[units.Length - 1] = unit; + comboBox.DataSource = units; + comboBox.SelectedIndex = units.Length - 1; + } + } + + /// + /// Gets or sets value indicating whether all editors is read-only. + /// + [Browsable(false)] + public bool ReadOnly + { + get { return _readOnly; } + set + { + _readOnly = value; + + cmbName.Enabled = !value; + tbCode.ReadOnly = value; + cmbVariableUnits.Enabled = !value; + cmbDataType.Enabled = !value; + cmbValueType.Enabled = !value; + cmbSampleMedium.Enabled = !value; + nudTimeSupport.FullReadOnly = value; + cmbTimeUnits.Enabled = !value; + nudNoDataValue.FullReadOnly = value; + + btnCreateNewTimeUnit.Enabled = !value; + btnCreateNewVariableUnit.Enabled = !value; + } + } + + + #endregion + + #region Public methods + + /// + /// Validate Current Entity + /// + /// Error or string.Empty + public string EntityValidate() + { + var variable = Entity; + + string error; + if (variable == null) + error = "Your should specify Variable"; + else if (String.IsNullOrEmpty(variable.Name)) + error = "Variable should have a Name"; + else if (String.IsNullOrEmpty(variable.Code)) + error = "Variable should have a Code"; + else if (String.IsNullOrEmpty(variable.DataType)) + error = "Variable should have a DataType"; + else if (String.IsNullOrEmpty(variable.ValueType)) + error = "Variable should have a ValueType"; + else if (String.IsNullOrEmpty(variable.SampleMedium)) + error = "Variable should have a SampleMedium"; + else + error = string.Empty; + + return error; + } + + #endregion + + #region Private methods + + private void btnCreateNewVariableUnit_Click(object sender, EventArgs e) + { + using (var form = new CreateUnitForm()) + { + form.Entity = Unit.Unknown; + + if (form.ShowDialog(this) == DialogResult.OK) + { + Entity.VariableUnit = form.Entity; + // Update Unit Combos + UpdateUnitCombo(cmbVariableUnits, Entity.VariableUnit); + UpdateUnitCombo(cmbTimeUnits, Entity.TimeUnit); + } + } + } + + private void btnCreateNewTimeUnit_Click(object sender, EventArgs e) + { + using (var form = new CreateUnitForm()) + { + form.Entity = Unit.UnknownTimeUnit; + + if (form.ShowDialog(this) == DialogResult.OK) + { + Entity.TimeUnit = form.Entity; + // Update Unit Combos + UpdateUnitCombo(cmbVariableUnits, Entity.VariableUnit); + UpdateUnitCombo(cmbTimeUnits, Entity.TimeUnit); + } + } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/VariableView.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/VariableView.resx new file mode 100644 index 00000000..4d6bea97 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/FieldProperties/VariableView.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Progress/AfterDataImportsHelper.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Progress/AfterDataImportsHelper.cs new file mode 100644 index 00000000..91c7de5b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Progress/AfterDataImportsHelper.cs @@ -0,0 +1,129 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Projections; +using DotSpatial.Topology; +using Hydrodesktop.Common; +using HydroDesktop.Configuration; +using HydroDesktop.Interfaces.ObjectModel; +using IProgressHandler = HydroDesktop.Common.IProgressHandler; + +namespace HydroDesktop.Plugins.DataImport.CommonPages.Progress +{ + static class AfterDataImportsHelper + { + public static void CreateLayer(IList series, IProgressHandler ph, IWizardImporterSettings settings) + { + if (series.Count == 0) + { + ph.ReportProgress(100, "Finished."); + return; + } + + var progress = settings.MaxProgressPercentWhenImport + 1; + + var layerName = settings.LayerName; + var layer = settings.Map.GetAllLayers() + .OfType() + .FirstOrDefault(l => l.LegendText == layerName); + + if (layer != null) + { + ph.ReportProgress(progress++, "Adding series to existing layer..."); + foreach (var s in series) + { + AddSeriesToFeatureSet(s, layer.DataSet); + } + } + else + { + ph.ReportProgress(progress++, "Creating map layer..."); + var featureSet = InitializeFeatureSet(); + featureSet.Projection = KnownCoordinateSystems.Geographic.World.WGS1984; + foreach (var s in series) + { + AddSeriesToFeatureSet(s, featureSet); + } + featureSet.Reproject(settings.Map.Projection); + + var fileName = Path.Combine(Settings.Instance.CurrentProjectDirectory, + string.Format("{0}.shp", layerName)); + featureSet.Filename = fileName; + featureSet.Save(); + featureSet = FeatureSet.Open(fileName); //re-open the featureSet from the file + + var myLayer = new MapPointLayer(featureSet) + { + LegendText = layerName + }; + var dataSitesGroup = settings.Map.GetDataSitesLayer(true); + dataSitesGroup.Add(myLayer); + } + + ph.ReportProgress(progress, "Refreshing series selector..."); + settings.SeriesSelector.RefreshSelection(); + + ph.ReportProgress(100, "Finished."); + } + + private static IFeatureSet InitializeFeatureSet() + { + IFeatureSet fs = new FeatureSet(FeatureType.Point); + var table = fs.DataTable; + table.Columns.Add("DataSource", typeof(string)); + table.Columns.Add("SeriesID", typeof(int)); + table.Columns.Add("SiteName", typeof(string)); + table.Columns.Add("Latitude", typeof(double)); + table.Columns.Add("Longitude", typeof(double)); + table.Columns.Add("SiteCode", typeof(string)); + table.Columns.Add("VarName", typeof(string)); + table.Columns.Add("DataType", typeof(string)); + table.Columns.Add("SampleMed", typeof(string)); + table.Columns.Add("VarCode", typeof(string)); + table.Columns.Add("Units", typeof(string)); + table.Columns.Add("Method", typeof(string)); + table.Columns.Add("QCLevel", typeof(string)); + table.Columns.Add("ServiceCode", typeof(string)); + table.Columns.Add("StartDate", typeof(string)); + table.Columns.Add("EndDate", typeof(string)); + table.Columns.Add("ValueCount", typeof(int)); + return fs; + } + + private static void AddSeriesToFeatureSet(Series series, IFeatureSet fs) + { + double lat = series.Site.Latitude; + double lon = series.Site.Longitude; + var pt = new Point(lon, lat); + var newFeature = fs.AddFeature(pt); + + var featureRow = newFeature.DataRow; + featureRow["DataSource"] = series.Source.Organization; + featureRow["SeriesID"] = series.Id; + featureRow["SiteName"] = series.Site.Name; + featureRow["Latitude"] = series.Site.Latitude; + featureRow["Longitude"] = series.Site.Longitude; + featureRow["SiteCode"] = series.Site.Code; + featureRow["VarName"] = series.Variable.Name; + featureRow["DataType"] = series.Variable.DataType; + featureRow["SampleMed"] = series.Variable.SampleMedium; + featureRow["VarCode"] = series.Variable.Code; + featureRow["Units"] = series.Variable.VariableUnit.Name; + featureRow["Method"] = series.Method.Description; + featureRow["QCLevel"] = series.QualityControlLevel.Definition; + featureRow["StartDate"] = ConvertTime(series.BeginDateTime); + featureRow["EndDate"] = ConvertTime(series.EndDateTime); + featureRow["ValueCount"] = series.ValueCount; + featureRow["ServiceCode"] = series.Variable.Code; + } + + private static string ConvertTime(DateTime time) + { + return time.ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture); + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Progress/ProgressPage.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Progress/ProgressPage.Designer.cs new file mode 100644 index 00000000..91e72f0e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Progress/ProgressPage.Designer.cs @@ -0,0 +1,81 @@ +namespace HydroDesktop.Plugins.DataImport.CommonPages.Progress +{ + partial class ProgressPage + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.progressBar = new System.Windows.Forms.ProgressBar(); + this.lblInfo = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // Banner + // + this.Banner.Size = new System.Drawing.Size(516, 64); + this.Banner.Subtitle = "Importing data..."; + this.Banner.Title = "Progress Page"; + // + // progressBar + // + this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.progressBar.Location = new System.Drawing.Point(30, 120); + this.progressBar.Name = "progressBar"; + this.progressBar.Size = new System.Drawing.Size(457, 23); + this.progressBar.TabIndex = 2; + // + // lblInfo + // + this.lblInfo.AutoSize = true; + this.lblInfo.Location = new System.Drawing.Point(30, 101); + this.lblInfo.Name = "lblInfo"; + this.lblInfo.Size = new System.Drawing.Size(88, 13); + this.lblInfo.TabIndex = 3; + this.lblInfo.Text = "Current operation"; + // + // ProgressPage + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.lblInfo); + this.Controls.Add(this.progressBar); + this.Name = "ProgressPage"; + this.Size = new System.Drawing.Size(516, 213); + this.SetActive += new System.ComponentModel.CancelEventHandler(this.ProgressPage_SetActive); + this.Controls.SetChildIndex(this.Banner, 0); + this.Controls.SetChildIndex(this.progressBar, 0); + this.Controls.SetChildIndex(this.lblInfo, 0); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ProgressBar progressBar; + private System.Windows.Forms.Label lblInfo; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Progress/ProgressPage.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Progress/ProgressPage.cs new file mode 100644 index 00000000..1f7232c8 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Progress/ProgressPage.cs @@ -0,0 +1,107 @@ +using System.Collections.Generic; +using System.ComponentModel; +using System.Threading; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.ObjectModel; +using Wizard.UI; +using IProgressHandler = HydroDesktop.Common.IProgressHandler; + +namespace HydroDesktop.Plugins.DataImport.CommonPages.Progress +{ + /// + /// Progress page + /// + public partial class ProgressPage : InternalWizardPage, IProgressHandler + { + #region Fields + + private readonly WizardContext _context; + private BackgroundWorker _backgroundWorker; + + #endregion + + /// + /// Create new instance of + /// + /// + public ProgressPage(WizardContext context) + { + _context = context; + InitializeComponent(); + lblInfo.Text = string.Empty; + } + + private void ProgressPage_SetActive(object sender, CancelEventArgs e) + { + SetWizardButtons(WizardButtons.None); + + _backgroundWorker = new BackgroundWorker {WorkerSupportsCancellation = true, WorkerReportsProgress = true}; + _backgroundWorker.RunWorkerCompleted += delegate(object s, RunWorkerCompletedEventArgs args) + { + AfterDataImportsHelper.CreateLayer((IList)args.Result, this, _context.Settings); + + SetWizardButtons(WizardButtons.Next); + PressButton(WizardButtons.Next); + }; + _backgroundWorker.DoWork += delegate(object s, DoWorkEventArgs args) + { + var ph = (IProgressHandler) this; + ph.ReportMessage("Reading all data into DataTable..."); + _context.Importer.UpdateData(_context.Settings); + _context.Settings.MaxProgressPercentWhenImport = 97; + var importer = _context.Importer.GetImporter(); + importer.ProgressHandler = ph; + var result = importer.Import(_context.Settings); + + // Some work need in the UI thread + args.Result = result; + }; + + _backgroundWorker.RunWorkerAsync(); + } + + #region IProgressHandler implementation + + /// + /// Report progress + /// + /// Percentage of progress + /// State of progress + public void ReportProgress(int percentage, object state) + { + progressBar.UIThread(() => progressBar.Value = percentage); + lblInfo.UIThread(() => lblInfo.Text = state != null ? state.ToString() : string.Empty); + } + + /// + /// Check for cancel + /// + public void CheckForCancel() + { + var bw = _backgroundWorker; + if (bw != null && bw.WorkerSupportsCancellation) + { + bw.CancelAsync(); + } + } + + /// + /// Report any custom message + /// + /// Message to report + public void ReportMessage(string message) + { + lblInfo.UIThread(() => lblInfo.Text = message); + } + + /// + /// CancellationToken + /// + public CancellationToken CancellationToken + { + get { throw new System.NotImplementedException(); } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Progress/ProgressPage.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Progress/ProgressPage.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/Progress/ProgressPage.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/SelectLayer/DataLayerPage.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/SelectLayer/DataLayerPage.Designer.cs new file mode 100644 index 00000000..8d695467 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/SelectLayer/DataLayerPage.Designer.cs @@ -0,0 +1,107 @@ +namespace HydroDesktop.Plugins.DataImport.CommonPages.SelectLayer +{ + partial class DataLayerPage + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.lblExistingLayer = new System.Windows.Forms.Label(); + this.cmbLayers = new System.Windows.Forms.ComboBox(); + this.chbCreateNewLayer = new System.Windows.Forms.CheckBox(); + this.tbNewLayer = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // Banner + // + this.Banner.Subtitle = "Select Data Layer to import"; + this.Banner.Title = "Select Layer"; + // + // lblExistingLayer + // + this.lblExistingLayer.AutoSize = true; + this.lblExistingLayer.Location = new System.Drawing.Point(15, 149); + this.lblExistingLayer.Name = "lblExistingLayer"; + this.lblExistingLayer.Size = new System.Drawing.Size(100, 13); + this.lblExistingLayer.TabIndex = 1; + this.lblExistingLayer.Text = "Select existing layer"; + // + // cmbLayers + // + this.cmbLayers.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbLayers.FormattingEnabled = true; + this.cmbLayers.Location = new System.Drawing.Point(18, 167); + this.cmbLayers.Name = "cmbLayers"; + this.cmbLayers.Size = new System.Drawing.Size(181, 21); + this.cmbLayers.TabIndex = 2; + // + // chbCreateNewLayer + // + this.chbCreateNewLayer.AutoSize = true; + this.chbCreateNewLayer.Location = new System.Drawing.Point(18, 88); + this.chbCreateNewLayer.Name = "chbCreateNewLayer"; + this.chbCreateNewLayer.Size = new System.Drawing.Size(105, 17); + this.chbCreateNewLayer.TabIndex = 3; + this.chbCreateNewLayer.Text = "Create new layer"; + this.chbCreateNewLayer.UseVisualStyleBackColor = true; + this.chbCreateNewLayer.CheckedChanged += new System.EventHandler(this.chbCreateNewLayer_CheckedChanged); + // + // tbNewLayer + // + this.tbNewLayer.Location = new System.Drawing.Point(18, 111); + this.tbNewLayer.Name = "tbNewLayer"; + this.tbNewLayer.Size = new System.Drawing.Size(181, 20); + this.tbNewLayer.TabIndex = 4; + // + // DataLayerPage + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tbNewLayer); + this.Controls.Add(this.chbCreateNewLayer); + this.Controls.Add(this.lblExistingLayer); + this.Controls.Add(this.cmbLayers); + this.Name = "DataLayerPage"; + this.Size = new System.Drawing.Size(432, 254); + this.SetActive += new System.ComponentModel.CancelEventHandler(this.DataLayerPage_SetActive); + this.WizardNext += new Wizard.UI.WizardPageEventHandler(this.DataLayerPage_WizardNext); + this.Controls.SetChildIndex(this.cmbLayers, 0); + this.Controls.SetChildIndex(this.lblExistingLayer, 0); + this.Controls.SetChildIndex(this.chbCreateNewLayer, 0); + this.Controls.SetChildIndex(this.tbNewLayer, 0); + this.Controls.SetChildIndex(this.Banner, 0); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblExistingLayer; + private System.Windows.Forms.ComboBox cmbLayers; + private System.Windows.Forms.CheckBox chbCreateNewLayer; + private System.Windows.Forms.TextBox tbNewLayer; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/SelectLayer/DataLayerPage.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/SelectLayer/DataLayerPage.cs new file mode 100644 index 00000000..f83472f9 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/SelectLayer/DataLayerPage.cs @@ -0,0 +1,70 @@ +using System; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Windows.Forms; +using DotSpatial.Controls; +using Wizard.UI; + +namespace HydroDesktop.Plugins.DataImport.CommonPages.SelectLayer +{ + public partial class DataLayerPage : InternalWizardPage + { + #region Fields + + private readonly WizardContext _context; + + #endregion + + #region Constructors + + public DataLayerPage(WizardContext context) + { + _context = context; + InitializeComponent(); + + chbCreateNewLayer.Checked = true; + } + + #endregion + + #region Private methods + + private void DataLayerPage_SetActive(object sender, CancelEventArgs e) + { + SetWizardButtons(WizardButtons.Next | WizardButtons.Back); + + cmbLayers.Items.Clear(); + foreach (var layer in _context.Settings.Map.GetAllLayers().OfType()) + { + cmbLayers.Items.Add(layer.LegendText); + } + + var legendText = string.Format("Imported Data ({0})", Path.GetFileNameWithoutExtension(_context.Settings.PathToFile)); + tbNewLayer.Text = legendText; + } + + private void DataLayerPage_WizardNext(object sender, WizardPageEventArgs e) + { + var layerName = chbCreateNewLayer.Checked ? tbNewLayer.Text : cmbLayers.Text; + if (String.IsNullOrWhiteSpace(layerName)) + { + MessageBox.Show(this, "Please enter name of layer to import.", "Error", MessageBoxButtons.OK, + MessageBoxIcon.Error); + e.Cancel = true; + return; + } + + _context.Settings.LayerName = layerName; + } + + private void chbCreateNewLayer_CheckedChanged(object sender, EventArgs e) + { + var newLayer = chbCreateNewLayer.Checked; + tbNewLayer.Enabled = newLayer; + cmbLayers.Enabled = !newLayer; + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/SelectLayer/DataLayerPage.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/SelectLayer/DataLayerPage.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/CommonPages/SelectLayer/DataLayerPage.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Csv/CsvImportSettings.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Csv/CsvImportSettings.cs new file mode 100644 index 00000000..db768349 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Csv/CsvImportSettings.cs @@ -0,0 +1,67 @@ +using System.Collections.Generic; +using System.Data; +using DotSpatial.Controls; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Plugins.DataImport.Csv +{ + /// + /// Setting for csv + /// + public class CsvImportSettings : IWizardImporterSettings + { + #region Implementation of IWizardImporterSettings + + /// + /// Path to File + /// + public string PathToFile{get;set;} + + /// + /// Data table with preview data + /// + public DataTable Preview { get; set; } + + /// + /// Data table with data to import + /// + public DataTable Data { get; set; } + + /// + /// Gets or sets the string to use as a decimal separator when parsing values + /// + public string ValuesNumberDecimalSeparator { get; set; } + + /// + /// List of columns data + /// + public IList ColumnDatas { get; set; } + + /// + /// Column with date time + /// + public string DateTimeColumn { get; set; } + + /// + /// Gets or sets max progress percent when importing + /// + public int MaxProgressPercentWhenImport { get; set; } + + /// + /// Gets or sets SeriesSelector + /// + public ISeriesSelector SeriesSelector { get; set; } + + /// + /// Gets or sets Map + /// + public Map Map { get; set; } + + /// + /// Gets or sets name of layer to import data + /// + public string LayerName { get; set; } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Csv/CsvImporter.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Csv/CsvImporter.cs new file mode 100644 index 00000000..f471a1f3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Csv/CsvImporter.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.IO; +using HydroDesktop.Plugins.DataImport.CommonPages; +using HydroDesktop.Plugins.DataImport.CommonPages.Complete; +using HydroDesktop.Plugins.DataImport.CommonPages.Progress; +using HydroDesktop.Plugins.DataImport.CommonPages.SelectLayer; +using HydroDesktop.Plugins.DataImport.DataTableImport; +using HydroDesktop.ImportExport; +using Wizard.UI; + +namespace HydroDesktop.Plugins.DataImport.Csv +{ + class CsvImporter : IWizardImporter + { + public string Filter + { + get { return "CSV File (*.csv)|*.csv"; } + } + + public bool CanImportFromFile(string pathToFile) + { + return string.Equals(Path.GetExtension(pathToFile), ".csv", StringComparison.InvariantCultureIgnoreCase); + } + + public IWizardImporterSettings GetDefaultSettings() + { + return new CsvImportSettings(); + } + + public IImporter GetImporter() + { + return new DataTableImporterImpl(); + } + + public void UpdatePreview(IWizardImporterSettings settings) + { + var preview = CsvFileParser.ParseFileToDataTable(settings.PathToFile, true, null, null, 10); + settings.Preview = preview; + } + + public void UpdateData(IWizardImporterSettings settings) + { + var data = CsvFileParser.ParseFileToDataTable(settings.PathToFile, true); + settings.Data = data; + } + + public ICollection GetWizardPages(WizardContext context) + { + return new Collection + { + new FormatOptionsPage(context), + new FieldPropertiesPage(context), + new DataLayerPage(context), + new ProgressPage(context), + new CompletePage(), + }; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Csv/FormatOptionsPage.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Csv/FormatOptionsPage.Designer.cs new file mode 100644 index 00000000..5173fddb --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Csv/FormatOptionsPage.Designer.cs @@ -0,0 +1,101 @@ +namespace HydroDesktop.Plugins.DataImport.Csv +{ + partial class FormatOptionsPage + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dgvPreview = new System.Windows.Forms.DataGridView(); + this.lblDecimalSeparator = new System.Windows.Forms.Label(); + this.tbSeparator = new System.Windows.Forms.TextBox(); + ((System.ComponentModel.ISupportInitialize)(this.dgvPreview)).BeginInit(); + this.SuspendLayout(); + // + // Banner + // + this.Banner.Size = new System.Drawing.Size(540, 64); + this.Banner.Subtitle = "Specify file format options."; + this.Banner.Title = "Format options"; + // + // dgvPreview + // + this.dgvPreview.AllowUserToAddRows = false; + this.dgvPreview.AllowUserToDeleteRows = false; + this.dgvPreview.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvPreview.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvPreview.Location = new System.Drawing.Point(19, 107); + this.dgvPreview.Name = "dgvPreview"; + this.dgvPreview.ReadOnly = true; + this.dgvPreview.Size = new System.Drawing.Size(505, 218); + this.dgvPreview.TabIndex = 11; + // + // lblDecimalSeparator + // + this.lblDecimalSeparator.AutoSize = true; + this.lblDecimalSeparator.Location = new System.Drawing.Point(16, 78); + this.lblDecimalSeparator.Name = "lblDecimalSeparator"; + this.lblDecimalSeparator.Size = new System.Drawing.Size(94, 13); + this.lblDecimalSeparator.TabIndex = 12; + this.lblDecimalSeparator.Text = "Decimal Separator"; + // + // tbSeparator + // + this.tbSeparator.Location = new System.Drawing.Point(119, 75); + this.tbSeparator.Name = "tbSeparator"; + this.tbSeparator.Size = new System.Drawing.Size(33, 20); + this.tbSeparator.TabIndex = 13; + this.tbSeparator.Text = "."; + // + // FormatOptionsPage + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tbSeparator); + this.Controls.Add(this.lblDecimalSeparator); + this.Controls.Add(this.dgvPreview); + this.Name = "FormatOptionsPage"; + this.Size = new System.Drawing.Size(540, 342); + this.SetActive += new System.ComponentModel.CancelEventHandler(this.FormatOptionsPage_SetActive); + this.WizardNext += new Wizard.UI.WizardPageEventHandler(this.FormatOptionsPage_WizardNext); + this.Controls.SetChildIndex(this.Banner, 0); + this.Controls.SetChildIndex(this.dgvPreview, 0); + this.Controls.SetChildIndex(this.lblDecimalSeparator, 0); + this.Controls.SetChildIndex(this.tbSeparator, 0); + ((System.ComponentModel.ISupportInitialize)(this.dgvPreview)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgvPreview; + private System.Windows.Forms.Label lblDecimalSeparator; + private System.Windows.Forms.TextBox tbSeparator; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Csv/FormatOptionsPage.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Csv/FormatOptionsPage.cs new file mode 100644 index 00000000..26bda881 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Csv/FormatOptionsPage.cs @@ -0,0 +1,64 @@ +using System.ComponentModel; +using System.Windows.Forms; +using Wizard.UI; + +namespace HydroDesktop.Plugins.DataImport.Csv +{ + /// + /// Format options page for Csv + /// + public partial class FormatOptionsPage : InternalWizardPage + { + #region Fields + + private readonly CsvImportSettings _settings; + private readonly IWizardImporter _importer; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + /// Context + public FormatOptionsPage(WizardContext context) + { + _settings = (CsvImportSettings)context.Settings; + _importer = context.Importer; + + InitializeComponent(); + } + + #endregion + + #region Private methods + + private void ShowPreview() + { + _importer.UpdatePreview(_settings); + dgvPreview.DataSource = _settings.Preview; + } + + private void FormatOptionsPage_SetActive(object sender, CancelEventArgs e) + { + SetWizardButtons(WizardButtons.Next); + + ShowPreview(); + } + + private void FormatOptionsPage_WizardNext(object sender, WizardPageEventArgs e) + { + if (string.IsNullOrEmpty(tbSeparator.Text)) + { + MessageBox.Show(this, "Decimal separator should be non-empty.", "Error", MessageBoxButtons.OK, + MessageBoxIcon.Error); + e.Cancel = true; + return; + } + _settings.ValuesNumberDecimalSeparator = tbSeparator.Text; + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Csv/FormatOptionsPage.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/Csv/FormatOptionsPage.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Csv/FormatOptionsPage.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/DataImport.sln b/Source/Plugins/HydroDesktop.Plugins.DataImport/DataImport.sln new file mode 100644 index 00000000..ba7de1e0 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/DataImport.sln @@ -0,0 +1,34 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataImport", "DataImport.csproj", "{9181CDE5-AD24-473D-A524-C3775563C902}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hydrodesktop.Common", "..\HydroDesktop.Common\Hydrodesktop.Common.csproj", "{882C41F5-6A96-419F-9153-8D277ED91464}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9181CDE5-AD24-473D-A524-C3775563C902}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9181CDE5-AD24-473D-A524-C3775563C902}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9181CDE5-AD24-473D-A524-C3775563C902}.Debug|x86.ActiveCfg = Debug|x86 + {9181CDE5-AD24-473D-A524-C3775563C902}.Debug|x86.Build.0 = Debug|x86 + {9181CDE5-AD24-473D-A524-C3775563C902}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9181CDE5-AD24-473D-A524-C3775563C902}.Release|Any CPU.Build.0 = Release|Any CPU + {9181CDE5-AD24-473D-A524-C3775563C902}.Release|x86.ActiveCfg = Release|x86 + {9181CDE5-AD24-473D-A524-C3775563C902}.Release|x86.Build.0 = Release|x86 + {882C41F5-6A96-419F-9153-8D277ED91464}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {882C41F5-6A96-419F-9153-8D277ED91464}.Debug|Any CPU.Build.0 = Debug|Any CPU + {882C41F5-6A96-419F-9153-8D277ED91464}.Debug|x86.ActiveCfg = Debug|Any CPU + {882C41F5-6A96-419F-9153-8D277ED91464}.Release|Any CPU.ActiveCfg = Release|Any CPU + {882C41F5-6A96-419F-9153-8D277ED91464}.Release|Any CPU.Build.0 = Release|Any CPU + {882C41F5-6A96-419F-9153-8D277ED91464}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/DataTableImport/DataTableImporterImpl.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/DataTableImport/DataTableImporterImpl.cs new file mode 100644 index 00000000..022000dc --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/DataTableImport/DataTableImporterImpl.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Globalization; +using System.IO; +using System.Linq; +using HydroDesktop.Common; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.DataImport.DataTableImport +{ + class DataTableImporterImpl : IImporter + { + public IList Import(IImporterSettings settings) + { + int progress = 0; + ReportProgress(progress, "Starting importing..."); + + var seriesRepo = RepositoryFactory.Instance.Get(); + var repoManager = RepositoryFactory.Instance.Get(); + + var toImport = new List> (); + foreach (var cData in settings.ColumnDatas.Where(c => c.ImportColumn && c.ColumnName != settings.DateTimeColumn)) + { + var site = cData.Site; + var variable = cData.Variable; + var method = cData.Method; + var source = cData.Source; + var qualityControl = cData.QualityControlLevel; + + // + OverwriteOptions options; + if (seriesRepo.ExistsSeries(site, variable)) + { + using (var dialog = new ExistsSeriesQuestionDialog(site.Name, variable.Name)) + { + dialog.ShowDialog(); + options = dialog.CurrentOption; + } + } + else + { + options = OverwriteOptions.Overwrite; + } + + var series = new Series(site, variable, method, qualityControl, source); + toImport.Add(new Tuple(cData, series, options)); + } + + var cultureToParseValues = (CultureInfo)CultureInfo.InvariantCulture.Clone(); + cultureToParseValues.NumberFormat.NumberDecimalSeparator = settings.ValuesNumberDecimalSeparator; + + progress = 10; + ReportProgress(progress, "Parsing values..."); + foreach (DataRow row in settings.Data.Rows) + { + DateTime dateTime; + if (!DateTime.TryParse(row[settings.DateTimeColumn].ToString(), out dateTime)) + continue; + + foreach (var tuple in toImport) + { + var columnInfo = tuple.Item1; + var columnIndex = columnInfo.ColumnIndex; + + Double value; + if (!Double.TryParse(Convert.ToString(row[columnIndex], cultureToParseValues), + NumberStyles.Float, + cultureToParseValues, out value)) + continue; + + var series = tuple.Item2; + series.DataValueList.Add(new DataValue(value, dateTime, 0) + { + OffsetValue = columnInfo.OffsetValue, + OffsetType = columnInfo.OffsetType, + }); + } + } + + progress = 15; + ReportProgress(progress, "Saving values into local database..."); + + var pStep = (settings.MaxProgressPercentWhenImport - progress) / toImport.Count; + var theme = new Theme(Path.GetFileNameWithoutExtension(settings.PathToFile)); + foreach (var tuple in toImport) + { + var series = tuple.Item2; + series.UpdateSeriesInfoFromDataValues(); + + repoManager.SaveSeries(series, theme, tuple.Item3); + + progress += pStep; + ReportProgress(progress, "Saving values into local database..."); + } + + return toImport.Select(item => item.Item2).ToList(); + } + + public IProgressHandler ProgressHandler { get; set; } + + private void ReportProgress(int percentage, object state) + { + var ph = ProgressHandler; + if (ph != null) + { + ph.ReportProgress(percentage, state); + } + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/DataTableImport/ExistsSeriesQuestionDialog.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/DataTableImport/ExistsSeriesQuestionDialog.Designer.cs new file mode 100644 index 00000000..7c4e92ad --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/DataTableImport/ExistsSeriesQuestionDialog.Designer.cs @@ -0,0 +1,148 @@ +namespace HydroDesktop.Plugins.DataImport.DataTableImport +{ + partial class ExistsSeriesQuestionDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.btnOK = new System.Windows.Forms.Button(); + this.rbMerge = new System.Windows.Forms.RadioButton(); + this.rbOverwrite = new System.Windows.Forms.RadioButton(); + this.rbCreateNew = new System.Windows.Forms.RadioButton(); + this.lblInfo = new System.Windows.Forms.Label(); + this.lblInfo2 = new System.Windows.Forms.Label(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.rbCreateNew); + this.groupBox1.Controls.Add(this.rbOverwrite); + this.groupBox1.Controls.Add(this.rbMerge); + this.groupBox1.Location = new System.Drawing.Point(18, 47); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(392, 98); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(335, 157); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 1; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + // + // rbMerge + // + this.rbMerge.AutoSize = true; + this.rbMerge.Checked = true; + this.rbMerge.Location = new System.Drawing.Point(10, 18); + this.rbMerge.Name = "rbMerge"; + this.rbMerge.Size = new System.Drawing.Size(167, 17); + this.rbMerge.TabIndex = 0; + this.rbMerge.TabStop = true; + this.rbMerge.Text = "Merge with existing time series"; + this.rbMerge.UseVisualStyleBackColor = true; + // + // rbOverwrite + // + this.rbOverwrite.AutoSize = true; + this.rbOverwrite.Location = new System.Drawing.Point(10, 42); + this.rbOverwrite.Name = "rbOverwrite"; + this.rbOverwrite.Size = new System.Drawing.Size(160, 17); + this.rbOverwrite.TabIndex = 1; + this.rbOverwrite.TabStop = true; + this.rbOverwrite.Text = "Overwrite existing time series"; + this.rbOverwrite.UseVisualStyleBackColor = true; + // + // rbCreateNew + // + this.rbCreateNew.AutoSize = true; + this.rbCreateNew.Location = new System.Drawing.Point(10, 66); + this.rbCreateNew.Name = "rbCreateNew"; + this.rbCreateNew.Size = new System.Drawing.Size(140, 17); + this.rbCreateNew.TabIndex = 2; + this.rbCreateNew.TabStop = true; + this.rbCreateNew.Text = "Create a new time series"; + this.rbCreateNew.UseVisualStyleBackColor = true; + // + // lblInfo + // + this.lblInfo.AutoSize = true; + this.lblInfo.Location = new System.Drawing.Point(12, 9); + this.lblInfo.Name = "lblInfo"; + this.lblInfo.Size = new System.Drawing.Size(300, 13); + this.lblInfo.TabIndex = 2; + this.lblInfo.Text = "There is already a time series with site: [{0}] and variable: [{1}]."; + // + // lblInfo2 + // + this.lblInfo2.AutoSize = true; + this.lblInfo2.Location = new System.Drawing.Point(15, 26); + this.lblInfo2.Name = "lblInfo2"; + this.lblInfo2.Size = new System.Drawing.Size(150, 13); + this.lblInfo2.TabIndex = 3; + this.lblInfo2.Text = "How do you want to proceed?"; + // + // ExistsSeriesQuestionDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(421, 192); + this.Controls.Add(this.lblInfo2); + this.Controls.Add(this.lblInfo); + this.Controls.Add(this.btnOK); + this.Controls.Add(this.groupBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ExistsSeriesQuestionDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Series Exists"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.RadioButton rbCreateNew; + private System.Windows.Forms.RadioButton rbOverwrite; + private System.Windows.Forms.RadioButton rbMerge; + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Label lblInfo; + private System.Windows.Forms.Label lblInfo2; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/DataTableImport/ExistsSeriesQuestionDialog.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/DataTableImport/ExistsSeriesQuestionDialog.cs new file mode 100644 index 00000000..ff69c5bc --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/DataTableImport/ExistsSeriesQuestionDialog.cs @@ -0,0 +1,41 @@ +using System.Windows.Forms; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Plugins.DataImport.DataTableImport +{ + /// + /// Question dialog in case when series exists + /// + public partial class ExistsSeriesQuestionDialog : Form + { + /// + /// Create new instance of + /// + /// Site name + /// Variable name + public ExistsSeriesQuestionDialog(string siteName, string varName) + { + InitializeComponent(); + + lblInfo.Text = string.Format("There is already a time series with site: [{0}] and variable: [{1}].", + siteName, varName); + } + + /// + /// Current Overwrite option + /// + public OverwriteOptions CurrentOption + { + get + { + if (rbCreateNew.Checked) + return OverwriteOptions.Copy; + if (rbOverwrite.Checked) + return OverwriteOptions.Overwrite; + if (rbMerge.Checked) + return OverwriteOptions.Fill; + return OverwriteOptions.Copy; + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/DataTableImport/ExistsSeriesQuestionDialog.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/DataTableImport/ExistsSeriesQuestionDialog.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/DataTableImport/ExistsSeriesQuestionDialog.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Excel/ExcelImportSettings.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Excel/ExcelImportSettings.cs new file mode 100644 index 00000000..692e6f57 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Excel/ExcelImportSettings.cs @@ -0,0 +1,77 @@ +using System.Collections.Generic; +using System.Data; +using DotSpatial.Controls; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Plugins.DataImport.Excel +{ + /// + /// Settings for Excel + /// + public class ExcelImportSettings : IWizardImporterSettings + { + /// + /// Selected sheet name + /// + public string SheetName { get; set; } + + /// + /// DataSet that contains all data from excel file + /// + public DataSet DataSet { get; set; } + + #region Implementation of IWizardImporterSettings + + /// + /// Path to File + /// + public string PathToFile {get;set;} + + /// + /// List of columns data + /// + public IList ColumnDatas { get; set; } + + /// + /// Column with date time + /// + public string DateTimeColumn { get; set; } + + /// + /// Data table with preview data + /// + public DataTable Preview { get; set; } + + /// + /// Data table with data to import + /// + public DataTable Data { get; set; } + + /// + /// Gets or sets the string to use as a decimal separator when parsing values + /// + public string ValuesNumberDecimalSeparator { get; set; } + + /// + /// Gets or sets max progress percent when importing + /// + public int MaxProgressPercentWhenImport { get; set; } + + /// + /// Gets or sets SeriesSelector + /// + public ISeriesSelector SeriesSelector { get; set; } + + /// + /// Gets or sets Map + /// + public Map Map { get; set; } + + /// + /// Gets or sets name of layer to import data + /// + public string LayerName { get; set; } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Excel/ExcelImporter.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Excel/ExcelImporter.cs new file mode 100644 index 00000000..c90a916e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Excel/ExcelImporter.cs @@ -0,0 +1,120 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Data; +using System.IO; +using HydroDesktop.Plugins.DataImport.CommonPages; +using HydroDesktop.Plugins.DataImport.CommonPages.Complete; +using HydroDesktop.Plugins.DataImport.CommonPages.Progress; +using HydroDesktop.Plugins.DataImport.CommonPages.SelectLayer; +using HydroDesktop.Plugins.DataImport.DataTableImport; +using Excel; +using Wizard.UI; + +namespace HydroDesktop.Plugins.DataImport.Excel +{ + class ExcelImporter : IWizardImporter + { + public string Filter + { + get { return "Excel File (*.xls;*.xlsx)|*.xls;*.xlsx"; } + } + + public bool CanImportFromFile(string pathToFile) + { + var extension = Path.GetExtension(pathToFile); + return string.Equals(extension, ".xlsx", StringComparison.InvariantCultureIgnoreCase) || + string.Equals(extension, ".xls", StringComparison.InvariantCultureIgnoreCase); + } + + public IWizardImporterSettings GetDefaultSettings() + { + return new ExcelImportSettings(); + } + + public IImporter GetImporter() + { + return new DataTableImporterImpl(); + } + + public ICollection GetWizardPages(WizardContext context) + { + return new Collection + { + new FormatOptionsPage(context), + new FieldPropertiesPage(context), + new DataLayerPage(context), + new ProgressPage(context), + new CompletePage(), + }; + } + + public void UpdatePreview(IWizardImporterSettings settings) + { + var excelSettings = (ExcelImportSettings)settings; + if (excelSettings.DataSet == null) + { + var ds = AsDataSet(settings); + excelSettings.DataSet = ds; + if (ds.Tables.Count > 0) + { + excelSettings.SheetName = ds.Tables[0].TableName; + } + } + + var result = excelSettings.DataSet.Tables.Contains(excelSettings.SheetName) + ? excelSettings.DataSet.Tables[excelSettings.SheetName] + : new DataTable(); + settings.Preview = result; + } + + public void UpdateData(IWizardImporterSettings settings) + { + settings.Data = settings.Preview; + } + + #region Private methods + + private DataSet AsDataSet(IImporterSettings settings) + { + var fileName = settings.PathToFile; + + if (!File.Exists(fileName)) + { + return new DataSet(); + } + + var extension = Path.GetExtension(fileName); + IExcelDataReader reader = null; + var stream = File.Open(fileName, FileMode.Open); + try + { + switch (extension) + { + case ".xls": + reader = ExcelReaderFactory.CreateBinaryReader(stream); + break; + case ".xlsx": + reader = ExcelReaderFactory.CreateOpenXmlReader(stream); + break; + default: + goto case ".xls"; + } + + reader.IsFirstRowAsColumnNames = true; + var ds = reader.AsDataSet(); + return ds; + } + finally + { + if (reader != null) + { + reader.Close(); + } + stream.Close(); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Excel/FormatOptionsPage.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Excel/FormatOptionsPage.Designer.cs new file mode 100644 index 00000000..83c4fe48 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Excel/FormatOptionsPage.Designer.cs @@ -0,0 +1,127 @@ +namespace HydroDesktop.Plugins.DataImport.Excel +{ + partial class FormatOptionsPage + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.lblExcelSheet = new System.Windows.Forms.Label(); + this.cmbExcelSheet = new System.Windows.Forms.ComboBox(); + this.dgvPreview = new System.Windows.Forms.DataGridView(); + this.tbSeparator = new System.Windows.Forms.TextBox(); + this.lblDecimalSeparator = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.dgvPreview)).BeginInit(); + this.SuspendLayout(); + // + // Banner + // + this.Banner.Size = new System.Drawing.Size(540, 64); + this.Banner.Subtitle = "Specify file format options."; + this.Banner.Title = "Format options"; + // + // lblExcelSheet + // + this.lblExcelSheet.AutoSize = true; + this.lblExcelSheet.Location = new System.Drawing.Point(19, 78); + this.lblExcelSheet.Name = "lblExcelSheet"; + this.lblExcelSheet.Size = new System.Drawing.Size(62, 13); + this.lblExcelSheet.TabIndex = 1; + this.lblExcelSheet.Text = "Excel sheet"; + // + // cmbExcelSheet + // + this.cmbExcelSheet.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbExcelSheet.FormattingEnabled = true; + this.cmbExcelSheet.Location = new System.Drawing.Point(87, 75); + this.cmbExcelSheet.Name = "cmbExcelSheet"; + this.cmbExcelSheet.Size = new System.Drawing.Size(121, 21); + this.cmbExcelSheet.TabIndex = 2; + // + // dgvPreview + // + this.dgvPreview.AllowUserToAddRows = false; + this.dgvPreview.AllowUserToDeleteRows = false; + this.dgvPreview.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvPreview.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvPreview.Location = new System.Drawing.Point(19, 109); + this.dgvPreview.Name = "dgvPreview"; + this.dgvPreview.ReadOnly = true; + this.dgvPreview.Size = new System.Drawing.Size(505, 216); + this.dgvPreview.TabIndex = 11; + // + // tbSeparator + // + this.tbSeparator.Location = new System.Drawing.Point(335, 75); + this.tbSeparator.Name = "tbSeparator"; + this.tbSeparator.Size = new System.Drawing.Size(33, 20); + this.tbSeparator.TabIndex = 15; + this.tbSeparator.Text = "."; + // + // lblDecimalSeparator + // + this.lblDecimalSeparator.AutoSize = true; + this.lblDecimalSeparator.Location = new System.Drawing.Point(232, 78); + this.lblDecimalSeparator.Name = "lblDecimalSeparator"; + this.lblDecimalSeparator.Size = new System.Drawing.Size(94, 13); + this.lblDecimalSeparator.TabIndex = 14; + this.lblDecimalSeparator.Text = "Decimal Separator"; + // + // FormatOptionsPage + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tbSeparator); + this.Controls.Add(this.lblDecimalSeparator); + this.Controls.Add(this.dgvPreview); + this.Controls.Add(this.lblExcelSheet); + this.Controls.Add(this.cmbExcelSheet); + this.Name = "FormatOptionsPage"; + this.Size = new System.Drawing.Size(540, 342); + this.SetActive += new System.ComponentModel.CancelEventHandler(this.FormatOptionsPage_SetActive); + this.WizardNext += new Wizard.UI.WizardPageEventHandler(this.FormatOptionsPage_WizardNext); + this.Controls.SetChildIndex(this.cmbExcelSheet, 0); + this.Controls.SetChildIndex(this.lblExcelSheet, 0); + this.Controls.SetChildIndex(this.Banner, 0); + this.Controls.SetChildIndex(this.dgvPreview, 0); + this.Controls.SetChildIndex(this.lblDecimalSeparator, 0); + this.Controls.SetChildIndex(this.tbSeparator, 0); + ((System.ComponentModel.ISupportInitialize)(this.dgvPreview)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblExcelSheet; + private System.Windows.Forms.ComboBox cmbExcelSheet; + private System.Windows.Forms.DataGridView dgvPreview; + private System.Windows.Forms.TextBox tbSeparator; + private System.Windows.Forms.Label lblDecimalSeparator; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Excel/FormatOptionsPage.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Excel/FormatOptionsPage.cs new file mode 100644 index 00000000..cf6baf7d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Excel/FormatOptionsPage.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Linq; +using System.Windows.Forms; +using Wizard.UI; + +namespace HydroDesktop.Plugins.DataImport.Excel +{ + /// + /// Format options page for Excel + /// + public partial class FormatOptionsPage : InternalWizardPage + { + #region Fields + + private readonly ExcelImportSettings _settings; + private readonly IWizardImporter _importer; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + /// Context + public FormatOptionsPage(WizardContext context) + { + _settings = (ExcelImportSettings)context.Settings; + _importer = context.Importer; + + InitializeComponent(); + + cmbExcelSheet.SelectedValueChanged += CmbFileTypeOnSelectedValueChanged; + } + + #endregion + + #region Private methods + + private void ShowPreview() + { + _importer.UpdatePreview(_settings); + dgvPreview.DataSource = _settings.Preview; + + // Excel sheet combo box + if (cmbExcelSheet.DataSource == null) + { + var ds = _settings.DataSet; + var excelSheets = new List(ds.Tables.Count); + excelSheets.AddRange(from DataTable dt in ds.Tables select dt.TableName); + cmbExcelSheet.DataSource = excelSheets; + } + } + + private void CmbFileTypeOnSelectedValueChanged(object sender, EventArgs eventArgs) + { + _settings.SheetName = (string)cmbExcelSheet.SelectedItem; + ShowPreview(); + } + + private void FormatOptionsPage_SetActive(object sender, CancelEventArgs e) + { + SetWizardButtons(WizardButtons.Next); + + ShowPreview(); + } + + private void FormatOptionsPage_WizardNext(object sender, WizardPageEventArgs e) + { + if (string.IsNullOrEmpty(tbSeparator.Text)) + { + MessageBox.Show(this, "Decimal separator should be non-empty.", "Error", MessageBoxButtons.OK, + MessageBoxIcon.Error); + e.Cancel = true; + return; + } + _settings.ValuesNumberDecimalSeparator = tbSeparator.Text; + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Excel/FormatOptionsPage.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/Excel/FormatOptionsPage.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Excel/FormatOptionsPage.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/HydroDesktop.Plugins.DataImport.csproj b/Source/Plugins/HydroDesktop.Plugins.DataImport/HydroDesktop.Plugins.DataImport.csproj new file mode 100644 index 00000000..9f117c28 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/HydroDesktop.Plugins.DataImport.csproj @@ -0,0 +1,405 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {9181CDE5-AD24-473D-A524-C3775563C902} + Library + Properties + HydroDesktop.Plugins.DataImport + HydroDesktop.Plugins.DataImport + v4.0 + 512 + + + 3.5 + + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataImport\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataImport\HydroDesktop.Plugins.DataImport.XML + 1591 + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataImport\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataImport\ + DEBUG;TRACE + full + x86 + prompt + true + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataImport\HydroDesktop.Plugins.DataImport.XML + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DataImport\ + TRACE + true + pdbonly + x86 + prompt + true + true + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + Lib\ExcelDataReader\Excel.dll + False + + + + + 3.5 + + + + + + + Lib\WinFormsWizard\Wizard.UI.dll + + + + + UserControl + + + ColumnsToImportControl.cs + + + Form + + + CreateUnitForm.cs + + + UserControl + + + OffsetTypeView.cs + + + Form + + + SelectColumnForm.cs + + + UserControl + + + UnitView.cs + + + + UserControl + + + DataLayerPage.cs + + + + UserControl + + + FormatOptionsPage.cs + + + + + Form + + + FieldPropertiesForm.cs + + + UserControl + + + MethodView.cs + + + Component + + + UserControl + + + SiteView.cs + + + UserControl + + + SourceView.cs + + + UserControl + + + QualityControlLevelView.cs + + + UserControl + + + FieldPropertiesPage.cs + + + UserControl + + + VariableView.cs + + + + + + + UserControl + + + FormatOptionsPage.cs + + + Form + + + ExistsSeriesQuestionDialog.cs + + + + + + + Form + + + True + True + Resources.resx + + + UserControl + + + FormatOptionsPage.cs + + + + + + UserControl + + + CompletePage.cs + + + UserControl + + + OptionsPage.cs + + + UserControl + + + ProgressPage.cs + + + + + + + + + + ColumnsToImportControl.cs + + + CreateUnitForm.cs + + + FieldPropertiesForm.cs + + + MethodView.cs + + + OffsetTypeView.cs + + + QualityControlLevelView.cs + + + SelectColumnForm.cs + + + SiteView.cs + + + SourceView.cs + + + FieldPropertiesPage.cs + + + UnitView.cs + + + VariableView.cs + + + DataLayerPage.cs + + + FormatOptionsPage.cs + + + FormatOptionsPage.cs + + + ExistsSeriesQuestionDialog.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + FormatOptionsPage.cs + + + CompletePage.cs + Designer + + + OptionsPage.cs + + + ProgressPage.cs + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + {0ccd3f11-0f48-427f-bc98-9dd6d875f4bb} + HydroDesktop.Configuration + False + + + {ceb869c6-ed48-4846-9040-4e82ab58b86b} + HydroDesktop.Data + False + + + {0B9BA90B-2016-4754-915A-0AD74FD0067A} + HydroDesktop.Interfaces + False + + + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA} + HydroDesktop.WebServices + False + + + + + + + + + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/HydroDesktop.Plugins.DataImport.nuspec b/Source/Plugins/HydroDesktop.Plugins.DataImport/HydroDesktop.Plugins.DataImport.nuspec new file mode 100644 index 00000000..82521b46 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/HydroDesktop.Plugins.DataImport.nuspec @@ -0,0 +1,23 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/IImporter.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/IImporter.cs new file mode 100644 index 00000000..af800e56 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/IImporter.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; +using HydroDesktop.Common; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.DataImport +{ + /// + /// Interface for importer + /// + public interface IImporter + { + /// + /// Import data using settings + /// + /// Setting for import + /// Imported series. + IList Import(IImporterSettings settings); + + /// + /// Progress handler + /// + IProgressHandler ProgressHandler { get; set; } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/IImporterSettings.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/IImporterSettings.cs new file mode 100644 index 00000000..ae6cabad --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/IImporterSettings.cs @@ -0,0 +1,58 @@ +using System.Collections.Generic; +using System.Data; +using DotSpatial.Controls; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Plugins.DataImport +{ + /// + /// Settings for data importer + /// + public interface IImporterSettings + { + /// + /// Path to File + /// + string PathToFile { get; set; } + + /// + /// List of columns data + /// + IList ColumnDatas { get; set; } + + /// + /// Column with date time + /// + string DateTimeColumn { get; set; } + + /// + /// Data table with data to import + /// + DataTable Data { get; set; } + + /// + /// Gets or sets the string to use as a decimal separator when parsing values + /// + string ValuesNumberDecimalSeparator { get; set; } + + /// + /// Gets or sets max progress percent when importing + /// + int MaxProgressPercentWhenImport { get; set; } + + /// + /// Gets or sets SeriesSelector + /// + ISeriesSelector SeriesSelector { get; set; } + + /// + /// Gets or sets Map + /// + Map Map { get; set; } + + /// + /// Gets or sets name of layer to import data + /// + string LayerName { get; set; } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/IWizardImporter.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/IWizardImporter.cs new file mode 100644 index 00000000..81f3c192 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/IWizardImporter.cs @@ -0,0 +1,55 @@ +using System.Collections.Generic; +using Wizard.UI; + +namespace HydroDesktop.Plugins.DataImport +{ + /// + /// Common interface for wizard importer + /// + public interface IWizardImporter + { + /// + /// Filter in open file dialog + /// + string Filter { get; } + + /// + /// Get that file can be imported by current data importer. + /// + /// Path to file with data. + /// + bool CanImportFromFile(string pathToFile); + + /// + /// Get default settings for current importer + /// + /// Default settings + IWizardImporterSettings GetDefaultSettings(); + + /// + /// Get importer to import + /// + /// Importer + IImporter GetImporter(); + + /// + /// Set preview + /// + /// Settings with preview + void UpdatePreview(IWizardImporterSettings settings); + + /// + /// Set data + /// + /// Settings with data + void UpdateData(IWizardImporterSettings settings); + + + /// + /// Get wizard pages + /// + /// Wizards data context + /// Collection of wizard pages + ICollection GetWizardPages(WizardContext context); + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/IWizardImporterSettings.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/IWizardImporterSettings.cs new file mode 100644 index 00000000..850f36ed --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/IWizardImporterSettings.cs @@ -0,0 +1,15 @@ +using System.Data; + +namespace HydroDesktop.Plugins.DataImport +{ + /// + /// Wizard settings for data importer + /// + public interface IWizardImporterSettings : IImporterSettings + { + /// + /// Data table with preview data + /// + DataTable Preview { get; set; } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/ImportSeriesWizard.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/ImportSeriesWizard.cs new file mode 100644 index 00000000..aa1c8ec8 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/ImportSeriesWizard.cs @@ -0,0 +1,42 @@ +using System.Windows.Forms; +using Wizard.UI; + +namespace HydroDesktop.Plugins.DataImport +{ + /// + /// Data Series Import Wizard + /// + public partial class ImportSeriesWizard : WizardSheet + { + #region Fields + + private readonly WizardContext _context; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + /// DataImporter + public ImportSeriesWizard(WizardContext context) + { + _context = context; + + // Add pages + foreach (var page in _context.Importer.GetWizardPages(context)) + { + Pages.Add(page); + } + + // Wizard display options + StartPosition = FormStartPosition.CenterParent; + MaximizeBox = false; + MinimizeBox = false; + base.Text = "Time Series Data Import Wizard"; + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/ExcelDataReader/Excel.dll b/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/ExcelDataReader/Excel.dll new file mode 100644 index 00000000..2f2ca79a Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/ExcelDataReader/Excel.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/ExcelDataReader/ICSharpCode.SharpZipLib.dll b/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/ExcelDataReader/ICSharpCode.SharpZipLib.dll new file mode 100644 index 00000000..e829ebf4 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/ExcelDataReader/ICSharpCode.SharpZipLib.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/ExcelDataReader/readme.txt b/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/ExcelDataReader/readme.txt new file mode 100644 index 00000000..886206e1 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/ExcelDataReader/readme.txt @@ -0,0 +1,8 @@ +For reading Excel files used Excel Data Reader with additional patches: +http://exceldatareader.codeplex.com/ + +List of applied patches (http://exceldatareader.codeplex.com/SourceControl/list/patches): +- ID 10871 + + + diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/WinFormsWizard/Wizard.Controls.dll b/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/WinFormsWizard/Wizard.Controls.dll new file mode 100644 index 00000000..6b66fdd3 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/WinFormsWizard/Wizard.Controls.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/WinFormsWizard/Wizard.UI.dll b/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/WinFormsWizard/Wizard.UI.dll new file mode 100644 index 00000000..5a577a75 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/WinFormsWizard/Wizard.UI.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/WinFormsWizard/readme.txt b/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/WinFormsWizard/readme.txt new file mode 100644 index 00000000..c25c6893 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Lib/WinFormsWizard/readme.txt @@ -0,0 +1 @@ +http://winformswizard.codeplex.com/ \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Main.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Main.cs new file mode 100644 index 00000000..7211ef47 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Main.cs @@ -0,0 +1,123 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.Composition; +using System.Diagnostics; +using System.Linq; +using System.Windows.Forms; +using HydroDesktop.Plugins.DataImport; +using HydroDesktop.Plugins.DataImport.Csv; +using HydroDesktop.Plugins.DataImport.Excel; +using HydroDesktop.Plugins.DataImport.Properties; +using HydroDesktop.Plugins.DataImport.Txt; +using HydroDesktop.Plugins.DataImport.WaterML; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using HydroDesktop.Common; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Plugins.DataImport +{ + public class Main : Extension + { + #region Variables + + private readonly string TableTabKey = SharedConstants.TableRootKey; + + #endregion + + #region Properties + + /// + /// Series View + /// + [Import("SeriesControl", typeof(ISeriesSelector))] + internal ISeriesSelector SeriesControl { get; private set; } + + #endregion + + #region Extension Members + + /// + /// Activates this provider + /// + public override void Activate() + { + var importButtonTabKey = new SimpleActionItem("Import", menu_Click) + { + RootKey = TableTabKey, + SmallImage = Resources.import_16, + LargeImage = Resources.import, + GroupCaption = "Data Import", + ToolTipText = "Import data series into database.", + }; + App.HeaderControl.Add(importButtonTabKey); + + var importButton = new SimpleActionItem(HeaderControl.ApplicationMenuKey, "Import...", menu_Click) + { + GroupCaption = HeaderControl.ApplicationMenuKey, + SmallImage = Resources.import_16, + LargeImage = Resources.import, + ToolTipText = "Import data series into database." + }; + App.HeaderControl.Add(importButton); + + base.Activate(); + } + + /// + /// Deactivates this provider + /// + public override void Deactivate() + { + App.HeaderControl.RemoveAll(); + + base.Deactivate(); + } + + #endregion + + #region Private methods + + void menu_Click(object sender, EventArgs e) + { + var importers = new List + { + new CsvImporter(), + new ExcelImporter(), + new TxtImporter(), + new WaterMLImporter(), + }; + + using (var dialog = new OpenFileDialog()) + { + var filter = string.Join("|", importers.Select(item => item.Filter)) + + "|All files (*.*)|*.*"; + + dialog.Filter = filter; + dialog.Title = "Select file to import"; + dialog.CheckFileExists = true; + dialog.CheckPathExists = true; + dialog.AutoUpgradeEnabled = true; + + if (dialog.ShowDialog() != DialogResult.OK) return; + + var fileName = dialog.FileName; + var importer = importers.FirstOrDefault(imp => imp.CanImportFromFile(fileName)) ?? + importers.OfType().First(); + Debug.Assert(importer != null); + + var context = new WizardContext(); + context.Importer = importer; + context.Settings = importer.GetDefaultSettings(); + context.Settings.PathToFile = fileName; + context.Settings.SeriesSelector = SeriesControl; + context.Settings.Map = (Map) App.Map; + + var wizard = new ImportSeriesWizard(context); + wizard.ShowDialog(); + } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..04270768 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.DataImport")] +[assembly: AssemblyDescription("Import Data into HydroDesktop")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("HydroDesktop Team")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.DataImport")] +[assembly: AssemblyCopyright("Copyright © 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("730080f8-2b1d-4104-bc8b-63b07b23cac8")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Properties/Resources.Designer.cs new file mode 100644 index 00000000..b904a35a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Properties/Resources.Designer.cs @@ -0,0 +1,83 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.DataImport.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.DataImport.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap import { + get { + object obj = ResourceManager.GetObject("import", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap import_16 { + get { + object obj = ResourceManager.GetObject("import_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/Properties/Resources.resx new file mode 100644 index 00000000..4e6a239f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Properties/Resources.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\import.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\import_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Resources/import.png b/Source/Plugins/HydroDesktop.Plugins.DataImport/Resources/import.png new file mode 100644 index 00000000..67dd168e Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataImport/Resources/import.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Resources/import_16.png b/Source/Plugins/HydroDesktop.Plugins.DataImport/Resources/import_16.png new file mode 100644 index 00000000..fda9946c Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataImport/Resources/import_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/FormatOptionsPage.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/FormatOptionsPage.Designer.cs new file mode 100644 index 00000000..29772e9f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/FormatOptionsPage.Designer.cs @@ -0,0 +1,139 @@ +namespace HydroDesktop.Plugins.DataImport.Txt +{ + partial class FormatOptionsPage + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.lblFileType = new System.Windows.Forms.Label(); + this.cmbFileType = new System.Windows.Forms.ComboBox(); + this.dgvPreview = new System.Windows.Forms.DataGridView(); + this.delimiterSelector = new HydroDesktop.Common.Controls.DelimiterSelector(); + this.tbSeparator = new System.Windows.Forms.TextBox(); + this.lblDecimalSeparator = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.dgvPreview)).BeginInit(); + this.SuspendLayout(); + // + // Banner + // + this.Banner.Size = new System.Drawing.Size(540, 64); + this.Banner.Subtitle = "Specify file format options."; + this.Banner.Title = "Format options"; + // + // lblFileType + // + this.lblFileType.AutoSize = true; + this.lblFileType.Location = new System.Drawing.Point(16, 88); + this.lblFileType.Name = "lblFileType"; + this.lblFileType.Size = new System.Drawing.Size(46, 13); + this.lblFileType.TabIndex = 1; + this.lblFileType.Text = "File type"; + // + // cmbFileType + // + this.cmbFileType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbFileType.FormattingEnabled = true; + this.cmbFileType.Location = new System.Drawing.Point(86, 85); + this.cmbFileType.Name = "cmbFileType"; + this.cmbFileType.Size = new System.Drawing.Size(121, 21); + this.cmbFileType.TabIndex = 2; + // + // dgvPreview + // + this.dgvPreview.AllowUserToAddRows = false; + this.dgvPreview.AllowUserToDeleteRows = false; + this.dgvPreview.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvPreview.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvPreview.Location = new System.Drawing.Point(19, 198); + this.dgvPreview.Name = "dgvPreview"; + this.dgvPreview.ReadOnly = true; + this.dgvPreview.Size = new System.Drawing.Size(505, 130); + this.dgvPreview.TabIndex = 11; + // + // delimiterSelector + // + this.delimiterSelector.CurrentDelimiter = ","; + this.delimiterSelector.Location = new System.Drawing.Point(19, 114); + this.delimiterSelector.Name = "delimiterSelector"; + this.delimiterSelector.Size = new System.Drawing.Size(313, 78); + this.delimiterSelector.TabIndex = 12; + // + // tbSeparator + // + this.tbSeparator.Location = new System.Drawing.Point(445, 172); + this.tbSeparator.Name = "tbSeparator"; + this.tbSeparator.Size = new System.Drawing.Size(33, 20); + this.tbSeparator.TabIndex = 17; + this.tbSeparator.Text = "."; + // + // lblDecimalSeparator + // + this.lblDecimalSeparator.AutoSize = true; + this.lblDecimalSeparator.Location = new System.Drawing.Point(342, 175); + this.lblDecimalSeparator.Name = "lblDecimalSeparator"; + this.lblDecimalSeparator.Size = new System.Drawing.Size(94, 13); + this.lblDecimalSeparator.TabIndex = 16; + this.lblDecimalSeparator.Text = "Decimal Separator"; + // + // FormatOptionsPage + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tbSeparator); + this.Controls.Add(this.lblDecimalSeparator); + this.Controls.Add(this.delimiterSelector); + this.Controls.Add(this.dgvPreview); + this.Controls.Add(this.lblFileType); + this.Controls.Add(this.cmbFileType); + this.Name = "FormatOptionsPage"; + this.Size = new System.Drawing.Size(540, 342); + this.SetActive += new System.ComponentModel.CancelEventHandler(this.FormatOptionsPage_SetActive); + this.WizardNext += new Wizard.UI.WizardPageEventHandler(this.FormatOptionsPage_WizardNext); + this.Controls.SetChildIndex(this.cmbFileType, 0); + this.Controls.SetChildIndex(this.lblFileType, 0); + this.Controls.SetChildIndex(this.Banner, 0); + this.Controls.SetChildIndex(this.dgvPreview, 0); + this.Controls.SetChildIndex(this.delimiterSelector, 0); + this.Controls.SetChildIndex(this.lblDecimalSeparator, 0); + this.Controls.SetChildIndex(this.tbSeparator, 0); + ((System.ComponentModel.ISupportInitialize)(this.dgvPreview)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblFileType; + private System.Windows.Forms.ComboBox cmbFileType; + private System.Windows.Forms.DataGridView dgvPreview; + private HydroDesktop.Common.Controls.DelimiterSelector delimiterSelector; + private System.Windows.Forms.TextBox tbSeparator; + private System.Windows.Forms.Label lblDecimalSeparator; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/FormatOptionsPage.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/FormatOptionsPage.cs new file mode 100644 index 00000000..8862a073 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/FormatOptionsPage.cs @@ -0,0 +1,97 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; +using Wizard.UI; + +namespace HydroDesktop.Plugins.DataImport.Txt +{ + public partial class FormatOptionsPage : InternalWizardPage + { + private readonly TxtImportSettings _settings; + private readonly IWizardImporter _importer; + + public FormatOptionsPage(WizardContext context) + { + _settings = (TxtImportSettings) context.Settings; + _importer = context.Importer; + + InitializeComponent(); + + // FileType combo box + cmbFileType.DataSource = Enum.GetValues(typeof(TxtFileType)); + cmbFileType.Format += delegate(object s, ListControlConvertEventArgs args) + { + args.Value = ((TxtFileType)args.ListItem).Description(); + }; + cmbFileType.SelectedValueChanged += CmbFileTypeOnSelectedValueChanged; + cmbFileType.DataBindings.Clear(); + cmbFileType.DataBindings.Add("SelectedItem", _settings, "FileType", true, DataSourceUpdateMode.OnPropertyChanged); + + // Delimiter + _settings.Delimiter = delimiterSelector.CurrentDelimiter; + delimiterSelector.CurrentDelimiterChanged += DelimiterSelectorOnCurrentDelimiterChanged; + + // + CmbFileTypeOnSelectedValueChanged(cmbFileType, EventArgs.Empty); + } + + private void DelimiterSelectorOnCurrentDelimiterChanged(object sender, EventArgs eventArgs) + { + _settings.Delimiter = delimiterSelector.CurrentDelimiter; + ShowPreview(); + } + + private void ShowPreview() + { + _importer.UpdatePreview(_settings); + dgvPreview.DataSource = _settings.Preview; + } + + private void CmbFileTypeOnSelectedValueChanged(object sender, EventArgs eventArgs) + { + var txtFileType = (TxtFileType) cmbFileType.SelectedItem; + _settings.FileType = txtFileType; + + switch (txtFileType) + { + case TxtFileType.FixedWidth: + delimiterSelector.Visible = false; + dgvPreview.Location = new Point(delimiterSelector.Location.X, + delimiterSelector.Location.Y); + dgvPreview.Height = Height - dgvPreview.Location.Y - 20; + break; + case TxtFileType.Delimited: + delimiterSelector.Visible = true; + dgvPreview.Location = new Point(delimiterSelector.Location.X, + delimiterSelector.Location.Y + delimiterSelector.Height + 5); + dgvPreview.Height = Height - dgvPreview.Location.Y - 20; + break; + } + lblDecimalSeparator.Location = new Point(lblDecimalSeparator.Location.X, dgvPreview.Location.Y - 23); + tbSeparator.Location = new Point(tbSeparator.Location.X, dgvPreview.Location.Y - 26); + + ShowPreview(); + } + + private void FormatOptionsPage_SetActive(object sender, CancelEventArgs e) + { + SetWizardButtons(WizardButtons.Next); + + ShowPreview(); + } + + private void FormatOptionsPage_WizardNext(object sender, WizardPageEventArgs e) + { + if (string.IsNullOrEmpty(tbSeparator.Text)) + { + MessageBox.Show(this, "Decimal separator should be non-empty.", "Error", MessageBoxButtons.OK, + MessageBoxIcon.Error); + e.Cancel = true; + return; + } + _settings.ValuesNumberDecimalSeparator = tbSeparator.Text; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/FormatOptionsPage.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/FormatOptionsPage.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/FormatOptionsPage.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/TxtFileType.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/TxtFileType.cs new file mode 100644 index 00000000..9e019c4f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/TxtFileType.cs @@ -0,0 +1,22 @@ +using System.ComponentModel; + +namespace HydroDesktop.Plugins.DataImport.Txt +{ + /// + /// Txt file type + /// + public enum TxtFileType + { + /// + /// Fixed width + /// + [Description("Fixed width")] + FixedWidth, + + /// + /// Delimited + /// + [Description("Delimited")] + Delimited, + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/TxtImportSettings.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/TxtImportSettings.cs new file mode 100644 index 00000000..c1cd514a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/TxtImportSettings.cs @@ -0,0 +1,77 @@ +using System.Collections.Generic; +using System.Data; +using DotSpatial.Controls; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Plugins.DataImport.Txt +{ + /// + /// Settings for txt + /// + public class TxtImportSettings : IWizardImporterSettings + { + /// + /// File type + /// + public TxtFileType FileType { get; set; } + + /// + /// Delimiter + /// + public string Delimiter { get; set; } + + #region Implementation of IWizardImporterSettings + + /// + /// Path to File + /// + public string PathToFile{get; set;} + + /// + /// Data table with preview data + /// + public DataTable Preview { get; set; } + + /// + /// List of columns data + /// + public IList ColumnDatas { get; set; } + + /// + /// Column with date time + /// + public string DateTimeColumn { get; set; } + + /// + /// Data table with data to import + /// + public DataTable Data { get; set; } + + /// + /// Gets or sets the string to use as a decimal separator when parsing values + /// + public string ValuesNumberDecimalSeparator { get; set; } + + /// + /// Gets or sets max progress percent when importing + /// + public int MaxProgressPercentWhenImport { get; set; } + + /// + /// Gets or sets SeriesSelector + /// + public ISeriesSelector SeriesSelector { get; set; } + + /// + /// Gets or sets Map + /// + public Map Map { get; set; } + + /// + /// Gets or sets name of layer to import data + /// + public string LayerName { get; set; } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/TxtImporter.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/TxtImporter.cs new file mode 100644 index 00000000..0433326b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/Txt/TxtImporter.cs @@ -0,0 +1,190 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Data; +using System.IO; +using HydroDesktop.Plugins.DataImport.CommonPages; +using HydroDesktop.Plugins.DataImport.CommonPages.Complete; +using HydroDesktop.Plugins.DataImport.CommonPages.Progress; +using HydroDesktop.Plugins.DataImport.CommonPages.SelectLayer; +using HydroDesktop.Plugins.DataImport.DataTableImport; +using Wizard.UI; + +namespace HydroDesktop.Plugins.DataImport.Txt +{ + class TxtImporter : IWizardImporter + { + public string Filter + { + get { return "Text File (*.txt)|*.txt"; } + } + + public bool CanImportFromFile(string pathToFile) + { + return string.Equals(Path.GetExtension(pathToFile), ".txt", StringComparison.InvariantCultureIgnoreCase); + } + + public IWizardImporterSettings GetDefaultSettings() + { + return new TxtImportSettings(); + } + + public IImporter GetImporter() + { + return new DataTableImporterImpl(); + } + + public ICollection GetWizardPages(WizardContext context) + { + return new Collection + { + new FormatOptionsPage(context), + new FieldPropertiesPage(context), + new DataLayerPage(context), + new ProgressPage(context), + new CompletePage(), + }; + } + + public void UpdatePreview(IWizardImporterSettings settings) + { + var txtSettings = (TxtImportSettings)settings; + var table = ReadData(txtSettings, 10); + txtSettings.Preview = table; + } + + public void UpdateData(IWizardImporterSettings settings) + { + var txtSettings = (TxtImportSettings) settings; + var table = ReadData(txtSettings, -1); + txtSettings.Data = table; + } + + #region Private methods + + private DataTable ReadData(TxtImportSettings settings, int maxRowsCount) + { + var fileName = settings.PathToFile; + + DataTable result; + if (!File.Exists(fileName)) + { + result = new DataTable(); + } + else + { + switch (settings.FileType) + { + case TxtFileType.Delimited: + result = GetPreviewForDelimitedFile(settings, maxRowsCount); + break; + case TxtFileType.FixedWidth: + result = GetPreviewForFixedWidthFile(settings, maxRowsCount); + break; + default: + result = new DataTable(); + break; + } + } + + return result; + } + + private static DataTable GetPreviewForDelimitedFile(TxtImportSettings settings, int maxRowsCount) + { + var fileName = settings.PathToFile; + + var result = new DataTable(); + using (var streamReader = new StreamReader(fileName)) + { + while (streamReader.Peek() != -1 && + (maxRowsCount < 0 || + result.Rows.Count < maxRowsCount)) + { + var line = streamReader.ReadLine(); + if (String.IsNullOrEmpty(line)) continue; + + var splitValues = line.Split(new[] { settings.Delimiter }, StringSplitOptions.RemoveEmptyEntries); + if (splitValues.Length == 0) continue; + + if (result.Columns.Count == 0) + { + foreach (var splitValue in splitValues) + { + result.Columns.Add(splitValue); + } + } + else + { + var row = result.NewRow(); + var minColumn = Math.Min(splitValues.Length, result.Columns.Count); + for (int i = 0; i < minColumn; i++) + { + row[i] = splitValues[i]; + } + result.Rows.Add(row); + } + } + } + + return result; + } + + private static DataTable GetPreviewForFixedWidthFile(TxtImportSettings settings, int maxRowsCount) + { + var fileName = settings.PathToFile; + + var result = new DataTable(); + int[] columnLengths = null; + using (var streamReader = new StreamReader(fileName)) + { + while (streamReader.Peek() != -1 && + (maxRowsCount < 0 || + result.Rows.Count < maxRowsCount)) + { + var line = streamReader.ReadLine(); + if (String.IsNullOrEmpty(line)) continue; + + if (columnLengths == null) + { + var columns = line.Split(new[] {" "}, StringSplitOptions.RemoveEmptyEntries); + if (columns.Length == 0) continue; + + columnLengths = new int[columns.Length]; + foreach (var column in columns) + { + result.Columns.Add(column); + } + for(int i = columns.Length -1; i>=0; i--) + { + var lastIndex = line.LastIndexOf(columns[i], StringComparison.Ordinal); + var columnLength = line.Length - lastIndex; + columnLengths[i] = columnLength; + line = line.Remove(lastIndex); + } + } + else + { + var row = result.NewRow(); + for(int i = 0; i + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.lblVariable = new System.Windows.Forms.Label(); + this.cbTheme = new System.Windows.Forms.ComboBox(); + this.SuspendLayout(); + // + // Banner + // + this.Banner.Size = new System.Drawing.Size(458, 64); + // + // lblVariable + // + this.lblVariable.AutoSize = true; + this.lblVariable.Location = new System.Drawing.Point(14, 77); + this.lblVariable.Name = "lblVariable"; + this.lblVariable.Size = new System.Drawing.Size(97, 13); + this.lblVariable.TabIndex = 3; + this.lblVariable.Text = "Add data to theme:"; + // + // cbTheme + // + this.cbTheme.FormattingEnabled = true; + this.cbTheme.Location = new System.Drawing.Point(17, 93); + this.cbTheme.Name = "cbTheme"; + this.cbTheme.Size = new System.Drawing.Size(271, 21); + this.cbTheme.TabIndex = 2; + // + // OptionsPage + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.lblVariable); + this.Controls.Add(this.cbTheme); + this.Name = "OptionsPage"; + this.Size = new System.Drawing.Size(458, 262); + this.SetActive += new System.ComponentModel.CancelEventHandler(this.OptionsPage_SetActive); + this.WizardNext += new Wizard.UI.WizardPageEventHandler(this.OptionsPage_WizardNext); + this.Controls.SetChildIndex(this.Banner, 0); + this.Controls.SetChildIndex(this.cbTheme, 0); + this.Controls.SetChildIndex(this.lblVariable, 0); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblVariable; + private System.Windows.Forms.ComboBox cbTheme; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterML/OptionsPage.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterML/OptionsPage.cs new file mode 100644 index 00000000..0ab317ea --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterML/OptionsPage.cs @@ -0,0 +1,49 @@ +using System; +using System.ComponentModel; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using Wizard.UI; + +namespace HydroDesktop.Plugins.DataImport.WaterML +{ + public partial class OptionsPage : InternalWizardPage + { + private readonly WaterMLImportSettings _settings; + + /// + /// Creates new instance of class. + /// + /// Context + public OptionsPage(WizardContext context) + { + _settings = (WaterMLImportSettings) context.Settings; + + InitializeComponent(); + + cbTheme.TextChanged += cbTheme_TextChanged; + } + + void cbTheme_TextChanged(object sender, EventArgs e) + { + var themeName = cbTheme.Text; + SetWizardButtons(String.IsNullOrEmpty(themeName) ? WizardButtons.None : WizardButtons.Next); + } + + private void OptionsPage_SetActive(object sender, CancelEventArgs e) + { + SetWizardButtons(WizardButtons.None); + + //populate combo box + var themeTable = RepositoryFactory.Instance.Get().AsDataTable(); + + cbTheme.DataSource = themeTable; + cbTheme.DisplayMember = "ThemeName"; + cbTheme.ValueMember = "ThemeId"; + } + + private void OptionsPage_WizardNext(object sender, WizardPageEventArgs e) + { + _settings.ThemeName = cbTheme.Text; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterML/OptionsPage.resx b/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterML/OptionsPage.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterML/OptionsPage.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterML/WaterMLImportSettings.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterML/WaterMLImportSettings.cs new file mode 100644 index 00000000..4a1c9c6d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterML/WaterMLImportSettings.cs @@ -0,0 +1,85 @@ +using System.Collections.Generic; +using System.Data; +using DotSpatial.Controls; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Plugins.DataImport.WaterML +{ + /// + /// WaterML Import Settings + /// + public class WaterMLImportSettings : IWizardImporterSettings + { + public string PathToFile { get; set; } + + /// + /// Theme name + /// + public string ThemeName { get; set; } + + /// + /// Gets or sets max progress percent when importing + /// + public int MaxProgressPercentWhenImport { get; set; } + + /// + /// Gets or sets SeriesSelector + /// + public ISeriesSelector SeriesSelector { get; set; } + + /// + /// Gets or sets Map + /// + public Map Map { get; set; } + + /// + /// Gets or sets name of layer to import data + /// + public string LayerName { get; set; } + + /// + /// List of columns data + /// + public IList ColumnDatas + { + get { throw new System.NotImplementedException(); } + set { throw new System.NotImplementedException(); } + } + + /// + /// Column with date time + /// + public string DateTimeColumn + { + get { throw new System.NotImplementedException(); } + set { throw new System.NotImplementedException(); } + } + + /// + /// Data table with data to import + /// + public DataTable Data + { + get { throw new System.NotImplementedException(); } + set { throw new System.NotImplementedException(); } + } + + /// + /// Data table with preview data + /// + public DataTable Preview + { + get { throw new System.NotImplementedException(); } + set { throw new System.NotImplementedException(); } + } + + /// + /// Gets or sets the string to use as a decimal separator when parsing values + /// + public string ValuesNumberDecimalSeparator + { + get { throw new System.NotImplementedException(); } + set { throw new System.NotImplementedException(); } + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterML/WaterMLImporter.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterML/WaterMLImporter.cs new file mode 100644 index 00000000..da4bf1fb --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterML/WaterMLImporter.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.IO; +using HydroDesktop.Plugins.DataImport.CommonPages.Complete; +using HydroDesktop.Plugins.DataImport.CommonPages.Progress; +using Wizard.UI; + +namespace HydroDesktop.Plugins.DataImport.WaterML +{ + class WaterMLImporter : IWizardImporter + { + public string Filter + { + get { return "WaterML File (*.xml)|*.xml"; } + } + + public bool CanImportFromFile(string pathToFile) + { + return string.Equals(Path.GetExtension(pathToFile), ".xml", StringComparison.InvariantCultureIgnoreCase); + } + + public IWizardImporterSettings GetDefaultSettings() + { + return new WaterMLImportSettings(); + } + + public IImporter GetImporter() + { + return new WaterMLImporterImpl(); + } + + public void UpdatePreview(IWizardImporterSettings settings) + { + // do nothing for WaterML + } + + public void UpdateData(IWizardImporterSettings settings) + { + // do nothing for WaterML + } + + public ICollection GetWizardPages(WizardContext context) + { + return new Collection + { + new OptionsPage(context), + new ProgressPage(context), + new CompletePage(), + }; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterML/WaterMLImporterImpl.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterML/WaterMLImporterImpl.cs new file mode 100644 index 00000000..9b346ffd --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterML/WaterMLImporterImpl.cs @@ -0,0 +1,102 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Windows.Forms; +using HydroDesktop.Common; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.WebServices.WaterML; + +namespace HydroDesktop.Plugins.DataImport.WaterML +{ + class WaterMLImporterImpl : IImporter + { + public IList Import(IImporterSettings settings) + { + var wmlSettings = (WaterMLImportSettings) settings; + + string fileName = wmlSettings.PathToFile; + var themeName = wmlSettings.ThemeName; + + string shortFileName = Path.GetFileNameWithoutExtension(fileName); + string siteName = shortFileName; + string variableName = shortFileName; + + int separatorIndex = shortFileName.IndexOf("_", StringComparison.Ordinal); + if (separatorIndex > 0 && separatorIndex < shortFileName.Length - 1) + { + siteName = shortFileName.Substring(0, shortFileName.IndexOf("_")); + variableName = shortFileName.Substring(shortFileName.IndexOf("_")); + } + + + IList seriesList = null; + var parser = ParserFactory.GetParser(fileName); + using (var fileStrem = File.OpenRead(fileName)) + { + try + { + seriesList = parser.ParseGetValues(fileStrem); + + } + catch (Exception ex) + { + MessageBox.Show("Error parsing xml file: " + ex.Message); + } + + } + + if (seriesList != null) + { + if (ValidateSeriesList(seriesList)) + { + var db = RepositoryFactory.Instance.Get(); + var theme = new Theme(themeName); + foreach (var series in seriesList) + { + //check if the series has values + if (series.ValueCount == 0) continue; + + if (String.IsNullOrEmpty(series.Site.Name)) + { + series.Site.Name = siteName; + } + if (String.IsNullOrEmpty(series.Variable.Name)) + { + series.Variable.Name = variableName; + } + db.SaveSeries(series, theme, OverwriteOptions.Copy); + } + } + } + + return seriesList ?? (new List(0)); + } + + public IProgressHandler ProgressHandler + { + get;set; + } + + private static bool ValidateSeriesList(ICollection seriesList) + { + if (seriesList.Count == 0) + { + MessageBox.Show("There was an error parsing the WaterML document. " + + "Please check if the document is in correct WaterML 1.0 format."); + return false; + } + + int numValues = seriesList.Sum(curSeries => curSeries.ValueCount); + if (numValues == 0) + { + MessageBox.Show("The series read from the xml file doesn't contain any data values." + + " The series will not be saved to the database."); + return false; + } + return true; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterMLIcon.jpg b/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterMLIcon.jpg new file mode 100644 index 00000000..74414479 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.DataImport/WaterMLIcon.jpg differ diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/WizardContext.cs b/Source/Plugins/HydroDesktop.Plugins.DataImport/WizardContext.cs new file mode 100644 index 00000000..80897a93 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/WizardContext.cs @@ -0,0 +1,18 @@ +namespace HydroDesktop.Plugins.DataImport +{ + /// + /// Context for wizards + /// + public class WizardContext + { + /// + /// Wizard importer + /// + public IWizardImporter Importer { get; set; } + + /// + /// Wizard settings + /// + public IWizardImporterSettings Settings { get; set; } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DataImport/packages.config b/Source/Plugins/HydroDesktop.Plugins.DataImport/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DataImport/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Docking/DockPanelInfo.cs b/Source/Plugins/HydroDesktop.Plugins.Docking/DockPanelInfo.cs new file mode 100644 index 00000000..d88d711b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Docking/DockPanelInfo.cs @@ -0,0 +1,65 @@ +using System.Drawing; +using DotSpatial.Controls.Docking; +using WeifenLuo.WinFormsUI.Docking; + +namespace HydroDesktop.Plugins.Docking +{ + class DockPanelInfo + { + private static int _dockPanelNumber; + + /// + /// The Weifen Luo dockable panel (Dock Content) + /// + public DockContent WeifenLuoDockPanel { get; private set; } + + /// + /// The DotSpatial dockable panel (used by DS plugin interface) + /// + public DockablePanel DotSpatialDockPanel { get; private set; } + + /// + /// The sort order of the dockable panel + /// + public int SortOrder { get; private set; } + + /// + /// Unique number of dockpanel (each created DockPanel has new number). + /// + public int Number { get; private set; } + + /// + /// Creates a new instance of DockPanelInfo + /// + /// the DotSpatial DockPanel virtual object + /// The physical instance of the dock panel (a weifen luo dock contents) + /// the sort order + public DockPanelInfo(DockablePanel dotSpatialDockPanel, DockContent weifenLuoDockPanel, int sortOrder) + { + DotSpatialDockPanel = dotSpatialDockPanel; + WeifenLuoDockPanel = weifenLuoDockPanel; + SortOrder = sortOrder; + Number = _dockPanelNumber++; + } + + public void SaveSnapshot() + { + var panel = WeifenLuoDockPanel; + Snapshot = new DockPanelSnapshot + { + DockState = panel.DockState, + Size = DotSpatialDockPanel.InnerControl.Size, + DSPanel = DotSpatialDockPanel, + }; + } + + public DockPanelSnapshot Snapshot { get; internal set; } + } + + class DockPanelSnapshot + { + public DockState DockState { get; set; } + public Size Size { get; set; } + public DockablePanel DSPanel { get; set; } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Docking/HydroDesktop.Plugins.Docking.csproj b/Source/Plugins/HydroDesktop.Plugins.Docking/HydroDesktop.Plugins.Docking.csproj new file mode 100644 index 00000000..4ca006a6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Docking/HydroDesktop.Plugins.Docking.csproj @@ -0,0 +1,159 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {28B872F6-39C6-405B-B52B-AC95289B052B} + Library + Properties + HydroDesktop.Plugins.Docking + HydroDesktop.Plugins.Docking + v4.0 + Client + 512 + ..\..\ + true + + + x86 + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.Docking\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.Docking\HydroDesktop.Plugins.Docking.xml + + + x86 + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.Docking\ + TRACE + prompt + 4 + + + + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.Docking\ + DEBUG;TRACE + full + AnyCPU + prompt + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.Docking\HydroDesktop.Plugins.Docking.xml + 1591 + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.Docking\ + TRACE + true + pdbonly + AnyCPU + prompt + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + + + + + False + ..\..\packages\DockPanelSuite.2.7.0.0\lib\net40\WeifenLuo.WinFormsUI.Docking.dll + + + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Docking/HydroDesktop.Plugins.Docking.nuspec b/Source/Plugins/HydroDesktop.Plugins.Docking/HydroDesktop.Plugins.Docking.nuspec new file mode 100644 index 00000000..1ee6f684 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Docking/HydroDesktop.Plugins.Docking.nuspec @@ -0,0 +1,19 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Docking/HydroDockManager.cs b/Source/Plugins/HydroDesktop.Plugins.Docking/HydroDockManager.cs new file mode 100644 index 00000000..42137424 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Docking/HydroDockManager.cs @@ -0,0 +1,454 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.Composition; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; +using DotSpatial.Controls.Docking; +using WeifenLuo.WinFormsUI.Docking; + +namespace HydroDesktop.Plugins.Docking +{ + /// + /// The DockManager implementation for HydroDesktop + /// + public class HydroDockManager : IDockManager, IPartImportsSatisfiedNotification + { + #region Fields + + /// + /// The main dock container panel + /// + private DockPanel MainDockPanel { get; set; } + + [Import("Shell")] + private ContainerControl Shell { get; set; } + + // The lookup list of dock panels (for keeping track of existing panels) + private readonly Dictionary dockPanelLookup = new Dictionary(); + private bool _suppressEvents; + + #endregion + + #region IDockManager Members + + /// + /// Occurs when the active panel is changed, meaning a difference panel is activated. + /// + public event EventHandler ActivePanelChanged; + + /// + /// Occurs after a panel is added. + /// + public event EventHandler PanelAdded; + + /// + /// Occurs after a panel is removed. + /// + public event EventHandler PanelRemoved; + + /// + /// Occurs when a panel is closed, which means the panel can still be activated or removed. + /// + public event EventHandler PanelClosed; + + /// + /// Occurs when a panel is Hidden. + /// + public event EventHandler PanelHidden; + + public void ResetLayout() + { + _suppressEvents = true; + + var snapshots = new SortedList(); + // Remove all panels + foreach (var key in dockPanelLookup.Keys.ToList()) + { + var info = dockPanelLookup[key]; + var snapshot = info.Snapshot; + if (snapshot != null) + { + snapshots.Add(info.Number, snapshot); + } + info.WeifenLuoDockPanel.Controls.Clear(); + Remove(key); + } + // Add all panels + foreach (var sn in snapshots) + { + sn.Value.DSPanel.InnerControl.Size = sn.Value.Size; + Add(sn.Value.DSPanel); + } + // Restore panel's state + foreach (var sn in snapshots) + { + var info = dockPanelLookup[sn.Value.DSPanel.Key]; + var panel = info.WeifenLuoDockPanel; + panel.DockState = panel.ShowHint = sn.Value.DockState; + // Update snapshot + info.Snapshot = sn.Value; + } + + _suppressEvents = false; + + // Activate first panel + if (snapshots.Count > 0) + { + var key = snapshots.First().Value.DSPanel.Key; + SelectPanel(key); + OnActivePanelChanged(key); + } + } + + /// + /// Add a dockable panel + /// + /// The dockable panel + public void Add(DockablePanel panel) + { + var key = panel.Key; + if (dockPanelLookup.ContainsKey(key)) + { + throw new ArgumentOutOfRangeException("panel", string.Format("Unable to add panel with Key: {0}, because it already added.", key)); + } + if (key == "save_snapshot") + { + // Special case, save current layout to restore it in ResetLayout() method. + SaveSnapshot(); + return; + } + + var caption = panel.Caption; + var innerControl = panel.InnerControl; + var dockStyle = panel.Dock; + var zOrder = panel.DefaultSortOrder; + + Image img = null; + if (panel.SmallImage != null) img = panel.SmallImage; + + //set dock style of the inner control to Fill + innerControl.Dock = DockStyle.Fill; + + /*If adding Tools Manager, do not resize pane; see Issue 8602 (http://hydrodesktop.codeplex.com/workitem/8602) + This solves this issue but does not solve the root of the problem.*/ + if (key != "kTools") + { + // make an attempt to start the pane off at the right width. + UpdateMainDockPanel(dockStyle, innerControl.Size); + } + + var content = new DockContent { ShowHint = ConvertToDockState(dockStyle) }; + content.Controls.Add(innerControl); + + content.Text = caption; + content.TabText = caption; + content.Tag = key; + innerControl.Tag = key; + + content.HideOnClose = true; + + if (img != null) + { + content.Icon = ImageToIcon(img); + } + + content.Show(MainDockPanel); + + //event handler for closing + content.FormClosed += content_FormClosed; + content.VisibleChanged += content_VisibleChanged; + + //the tag is used by the ActivePanelChanged event + content.Pane.Tag = key; + + //add panel to contents dictionary + dockPanelLookup.Add(key, new DockPanelInfo(panel, content, zOrder)); + + //trigger the panel added event + OnPanelAdded(key); + + //set the correct sort order + if (content.Pane.Contents.Count > 1) + { + var sortingIndex = ConvertSortOrderToIndex(content, zOrder); + content.Pane.SetContentIndex(content, sortingIndex); + } + + //caption - changed + panel.PropertyChanged += panel_PropertyChanged; + } + + /// + /// Completely removes a dockable panel + /// + /// Unique key of the panel + public void Remove(string key) + { + DockPanelInfo dockInfo; + if (!dockPanelLookup.TryGetValue(key, out dockInfo)) return; + + var content = dockInfo.WeifenLuoDockPanel; + content.Close(); + + //remove event handlers + content.FormClosed -= content_FormClosed; + content.VisibleChanged -= content_VisibleChanged; + dockInfo.DotSpatialDockPanel.PropertyChanged -= panel_PropertyChanged; + + content.Dispose(); + dockPanelLookup.Remove(key); + OnPanelRemoved(key); + } + + /// + /// Selects a dockable panel (the panel gains focus) + /// if the panel is hidden, make it visible at its original + /// location + /// + /// The unique key of the dockable panel to select + public void SelectPanel(string key) + { + DockPanelInfo info; + if (dockPanelLookup.TryGetValue(key, out info)) + { + info.WeifenLuoDockPanel.Activate(); + + OnActivePanelChanged(key); + } + } + + /// + /// Hides the Dockable panel (panel is identified by key) + /// + /// the unique key of the dockable panel + public void HidePanel(string key) + { + DockPanelInfo info; + if (dockPanelLookup.TryGetValue(key, out info)) + { + info.WeifenLuoDockPanel.IsHidden = true; + } + } + + public void ShowPanel(string key) + { + DockPanelInfo info; + if (dockPanelLookup.TryGetValue(key, out info)) + { + info.WeifenLuoDockPanel.IsHidden = false; + } + } + + #endregion + + #region IPartImportsSatisfiedNotification Members + + /// + /// setup the parent form. This + /// occurs when the main form becomes available + /// + public void OnImportsSatisfied() + { + MainDockPanel = new DockPanel {Parent = Shell, Dock = DockStyle.Fill}; + MainDockPanel.BringToFront(); + MainDockPanel.DocumentStyle = DocumentStyle.DockingSdi; + + //setup the events + MainDockPanel.ActiveDocumentChanged += MainDockPanel_ActiveDocumentChanged; + } + + #endregion + + #region Private methods + + private void SaveSnapshot() + { + foreach (var info in dockPanelLookup) + { + info.Value.SaveSnapshot(); + } + } + + private void UpdateMainDockPanel(DockStyle dockStyle, Size size) + { + // make an attempt to start the pane off at the right width. + if (dockStyle == DockStyle.Right) + MainDockPanel.DockRightPortion = (double)size.Width / MainDockPanel.Width; + + if (dockStyle == DockStyle.Left) + MainDockPanel.DockLeftPortion = ((double)size.Width+40) / MainDockPanel.Width; // 40 added to make all the buttons in the graph panel viewable from the start -Eric Hullinger + + if (dockStyle == DockStyle.Top) + MainDockPanel.DockTopPortion = (double)size.Height / MainDockPanel.Height; + + if (dockStyle == DockStyle.Bottom) + MainDockPanel.DockBottomPortion = (double)size.Height / MainDockPanel.Height; + + //setting document tab strip location to 'bottom' + if (dockStyle == DockStyle.Fill) + { + MainDockPanel.DocumentTabStripLocation = DocumentTabStripLocation.Bottom; + MainDockPanel.DocumentStyle = DocumentStyle.DockingWindow; + } + } + + //when the dockable panel property is changed + void panel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + if (e.PropertyName == "Caption") + { + var dp = sender as DockablePanel; + if (dp != null) + { + var dc = dockPanelLookup[dp.Key].WeifenLuoDockPanel; + dc.Text = dp.Caption; + dc.TabText = dp.Caption; + } + } + } + + void content_FormClosed(object sender, FormClosedEventArgs e) + { + var c = sender as DockContent; + if (c != null) + { + OnPanelClosed(c.Tag.ToString()); + } + } + + void content_VisibleChanged(object sender, EventArgs e) + { + var c = sender as DockContent; + if (c != null) + { + if (c.IsHidden) + OnPanelHidden(c.Tag.ToString()); + } + } + + private static Icon ImageToIcon(Image img) + { + var bm = img as Bitmap; + if (bm != null) + { + return Icon.FromHandle(bm.GetHicon()); + } + return null; + } + + private static DockState ConvertToDockState(DockStyle dockStyle) + { + switch (dockStyle) + { + case DockStyle.Bottom: + return DockState.DockBottom; + case DockStyle.Fill: + return DockState.Document; + case DockStyle.Left: + return DockState.DockLeft; + case DockStyle.None: + return DockState.Float; + case DockStyle.Right: + return DockState.DockRight; + case DockStyle.Top: + return DockState.DockTop; + + default: + throw new NotSupportedException(dockStyle + " not suppored"); + } + } + + /// + /// Raises the ActivePanelChanged event + /// + void MainDockPanel_ActiveDocumentChanged(object sender, EventArgs e) + { + if (MainDockPanel.ActiveContent == null || + MainDockPanel.ActiveContent.DockHandler == null) return; + + var activeContent = MainDockPanel.ActiveContent.DockHandler.Content as DockContent; + if (activeContent == null) return; + if (activeContent.Tag == null) return; + + var activePanelKey = activeContent.Tag.ToString(); + OnActivePanelChanged(activePanelKey); + } + + private void OnPanelClosed(string panelKey) + { + if (_suppressEvents) return; + + var handler = PanelClosed; + if (handler != null) + { + handler(this, new DockablePanelEventArgs(panelKey)); + } + } + + private void OnPanelHidden(string panelKey) + { + if (_suppressEvents) return; + + var handler = PanelHidden; + if (handler != null) + { + handler(this, new DockablePanelEventArgs(panelKey)); + } + } + + private void OnPanelAdded(string panelKey) + { + if (_suppressEvents) return; + + var handler = PanelAdded; + if (handler != null) + { + handler(this, new DockablePanelEventArgs(panelKey)); + } + } + + private void OnPanelRemoved(string panelKey) + { + if (_suppressEvents) return; + + var handler = PanelRemoved; + if (handler != null) + { + handler(this, new DockablePanelEventArgs(panelKey)); + } + } + + private void OnActivePanelChanged(string newActivePanelKey) + { + if (_suppressEvents) return; + + var handler = ActivePanelChanged; + if (handler != null) + { + handler(this, new DockablePanelEventArgs(newActivePanelKey)); + } + } + + int ConvertSortOrderToIndex(DockContent content, int sortOrder) + { + var pane = content.Pane; + var sortOrderList = new List(); + + foreach (DockContent existingContent in pane.Contents) + { + var key = existingContent.Tag.ToString(); + DockPanelInfo info; + if (dockPanelLookup.TryGetValue(key, out info)) + { + sortOrderList.Add(info.SortOrder); + } + } + sortOrderList.Sort(); + var index = sortOrderList.IndexOf(sortOrder); + return index; + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Docking/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.Docking/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..5dba6e1f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Docking/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.Docking")] +[assembly: AssemblyDescription("HydroDesktop Docking Manager")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CUAHSI")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.Docking")] +[assembly: AssemblyCopyright("Copyright © CUAHSI 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("607c70c8-7f83-44f9-b401-78d446cd2935")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Docking/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.Docking/Properties/Resources.Designer.cs new file mode 100644 index 00000000..9313b567 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Docking/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.Docking.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.Docking.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [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/Source/Plugins/HydroDesktop.Plugins.Docking/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.Docking/Properties/Resources.resx new file mode 100644 index 00000000..ffecec85 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Docking/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/Source/Plugins/HydroDesktop.Plugins.Docking/packages.config b/Source/Plugins/HydroDesktop.Plugins.Docking/packages.config new file mode 100644 index 00000000..ccc92100 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Docking/packages.config @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/ExtensionDownloader.cs b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/ExtensionDownloader.cs new file mode 100644 index 00000000..61596b41 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/ExtensionDownloader.cs @@ -0,0 +1,116 @@ +using System.ComponentModel.Composition; +using System.Linq; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using DotSpatial.Extensions; +using DotSpatial.Plugins.ExtensionManager; +using System; +using System.Diagnostics; +using System.Threading; + +namespace HydroDesktop.Plugins.DownloadExtensions +{ + /// + /// The purpose of this extension is to download the Ribbon, MenuBar and + /// WebMap extensions when the user starts + /// HydroDesktop for the first time. + /// + public class ExtensionDownloader : ISatisfyImportsExtension + { + private readonly Packages packages = new Packages(); + + /// + /// Gets the AppManager that is responsible for activating and deactivating plugins as well as coordinating + /// all of the other properties. + /// + [Import] + private AppManager App { get; set; } + + private string message = null; + + #region ISatisfyImportsExtension Members + + public void Activate() + { + //bool isHeaderControlNeeded = !App.CompositionContainer.GetExportedValues().Any(); + //bool isStatusControlNeeded = !App.CompositionContainer.GetExportedValues().Any(); + + ////installs the extensions from the online repository on-demand + ////note: some of these packages will be shipped with the installer but they are installed from online + ////when running from Visual Studio solution (direct reference in Visual Studio is not allowed by the license of Ribbon) + + ////install the ribbon (must be downloaded first) + //if (isHeaderControlNeeded && isStatusControlNeeded) + //{ + // App.UpdateProgress("Downloading a Ribbon extension..."); + // packages.Install("DotSpatial.Plugins.Ribbon"); + //} + + //foreach (string package in Properties.Settings.Default.ExternalExtensions) + //{ + // if (App.GetExtension(package) == null) + // { + // App.UpdateProgress("Downloading " + package + " extension..."); + // packages.Install(package); + // } + //} + + ////special case: download the WebMap plugin with BruTile + //if (App.GetExtension("DotSpatial.Plugins.WebMap") == null) + //{ + // App.UpdateProgress("Downloading DotSpatial.Plugins.WebMap extension..."); + // packages.Install("BruTile"); + // packages.Install("DotSpatial.Plugins.WebMap"); + //} + ////special case: download EPADelineation with Newtonsoft.Json + //if (App.GetExtension("EPADelineation") == null) + //{ + // App.UpdateProgress("Downloading EPADelineation extension..."); + // packages.Install("Newtonsoft.Json"); + // packages.Install("EPADelineation"); + //} + /* Thread updateThread = new Thread(() => InstallSampleProjects()); + updateThread.Start(); + + //Update splash screen's progress bar while thread is active. + while (updateThread.IsAlive) + { + if(message != null) + App.UpdateProgress(message); + } + updateThread.Join(100); + */ + //App.RefreshExtensions(); + } + + private void InstallSampleProjects() + { + foreach (string sampleProject in Properties.Settings.Default.ExternalSampleProjects) + { + if (!SampleProjectFinder.IsSampleProjectInstalled(sampleProject)) + { + try + { + message = "Downloading " + sampleProject + " sample project..."; + packages.Install(sampleProject); + } + catch (Exception ex) + { + Debug.Print(ex.StackTrace); ; + } + } + } + } + + public int Priority + { + get + { + return 1; + } + } + + #endregion + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/HydroDesktop.Plugins.DownloadExtensions.csproj b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/HydroDesktop.Plugins.DownloadExtensions.csproj new file mode 100644 index 00000000..741ac2f0 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/HydroDesktop.Plugins.DownloadExtensions.csproj @@ -0,0 +1,187 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {F6A64307-6AA8-4753-A507-03E746BB49E4} + Library + Properties + HydroDesktop.Plugins.DownloadExtensions + HydroDesktop.Plugins.DownloadExtensions + v4.0 + 512 + ..\..\ + true + Client + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DownloadExtensions\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DownloadExtensions\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.DownloadExtensions\ + DEBUG;TRACE + full + x86 + ..\..\..\Binaries\Application Extensions\HydroDesktop.Plugins.DownloadExtensions.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + ..\..\..\Binaries\Application Extensions\HydroDesktop.Plugins.DownloadExtensions.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Plugins.ExtensionManager.1.1.1\lib\net40-Client\DotSpatial.Plugins.ExtensionManager.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + False + ..\..\packages\DotSpatial.Plugins.ExtensionManager.1.1.1\lib\net40-Client\NuGet.Core.dll + + + + + + + + + + + ..\..\packages\DotSpatial.Plugins.ExtensionManager.1.1.1\lib\net40-Client\Updater.exe + + + + + True + True + Settings.settings + + + + + + + + + + Designer + + + SettingsSingleFileGenerator + Settings.Designer.cs + Designer + + + + + + + + + + + + + + + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/HydroDesktop.Plugins.DownloadExtensions.nuspec b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/HydroDesktop.Plugins.DownloadExtensions.nuspec new file mode 100644 index 00000000..ba1ef8ce --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/HydroDesktop.Plugins.DownloadExtensions.nuspec @@ -0,0 +1,22 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..d17fb7c5 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.DownloadExtensions")] +[assembly: AssemblyDescription("Downloads Essential Extensions")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Hewlett-Packard Company")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.DownloadExtensions")] +[assembly: AssemblyCopyright("Copyright © Hewlett-Packard Company 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("32ce0ad0-8ab6-41df-af3a-5043fb8613e3")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/Properties/Settings.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/Properties/Settings.Designer.cs new file mode 100644 index 00000000..b78ea356 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/Properties/Settings.Designer.cs @@ -0,0 +1,62 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.DownloadExtensions.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.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; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute(@" + + DotSpatial.Plugins.MenuBar + GeostatisticalTool + DotSpatial.SampleProjects.SampleProjectManager +")] + public global::System.Collections.Specialized.StringCollection ExternalExtensions { + get { + return ((global::System.Collections.Specialized.StringCollection)(this["ExternalExtensions"])); + } + set { + this["ExternalExtensions"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute(@" + + DotSpatial.SampleProjects.NorthAmerica + DotSpatial.SampleProjects.World + Dotspatial.SampleProjects.Europe + SampleProjects.jacobs_well_spring + SampleProjects.elbe +")] + public global::System.Collections.Specialized.StringCollection ExternalSampleProjects { + get { + return ((global::System.Collections.Specialized.StringCollection)(this["ExternalSampleProjects"])); + } + set { + this["ExternalSampleProjects"] = value; + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/Properties/Settings.settings b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/Properties/Settings.settings new file mode 100644 index 00000000..181b38a8 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/Properties/Settings.settings @@ -0,0 +1,24 @@ + + + + + + <?xml version="1.0" encoding="utf-16"?> +<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <string>DotSpatial.Plugins.MenuBar</string> + <string>GeostatisticalTool</string> + <string>DotSpatial.SampleProjects.SampleProjectManager</string> +</ArrayOfString> + + + <?xml version="1.0" encoding="utf-16"?> +<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <string>DotSpatial.SampleProjects.NorthAmerica</string> + <string>DotSpatial.SampleProjects.World</string> + <string>Dotspatial.SampleProjects.Europe</string> + <string>SampleProjects.jacobs_well_spring</string> + <string>SampleProjects.elbe</string> +</ArrayOfString> + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/SampleProjectFinder.cs b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/SampleProjectFinder.cs new file mode 100644 index 00000000..96e2692c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/SampleProjectFinder.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using DotSpatial.Controls; +using System.IO; +using System.Diagnostics; + +namespace HydroDesktop.Plugins.DownloadExtensions +{ + public class SampleProjectFinder + { + /// + /// Checks if the sample project package is already installed. + /// + /// Returns true, if the sample project is installed in the "Packages" folder + /// Returns false otherwise. + /// This code assumes that the sample project's .dspx file name is the same as the package name. + public static bool IsSampleProjectInstalled(string packageName) + { + string dspxFileName = packageName + ".dspx"; + + try + { + foreach (string absolutePath in Directory.EnumerateFiles(AppManager.AbsolutePathToExtensions, "*.dspx", SearchOption.AllDirectories)) + { + if (absolutePath.ToLower().Contains(packageName.ToLower())) + { + return true; + } + } + } + catch (Exception e) + { + Debug.Print(e.StackTrace); + } + return false; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/app.config b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/app.config new file mode 100644 index 00000000..ed36105b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/app.config @@ -0,0 +1,32 @@ + + + + +
    + + + + + + + + DotSpatial.Plugins.MenuBar + GeostatisticalTool + DotSpatial.SampleProjects.SampleProjectManager + + + + + + + DotSpatial.SampleProjects.NorthAmerica + DotSpatial.SampleProjects.World + Dotspatial.SampleProjects.Europe + SampleProjects.jacobs_well_spring + SampleProjects.elbe + + + + + + diff --git a/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/packages.config b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/packages.config new file mode 100644 index 00000000..8ba97979 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.DownloadExtensions/packages.config @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/CallWebService.cs b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/CallWebService.cs new file mode 100644 index 00000000..7690a2b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/CallWebService.cs @@ -0,0 +1,587 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Net; +using System.Windows.Forms; +using System.Xml; +using DotSpatial.Data; +using DotSpatial.Projections; +using DotSpatial.Topology; +using Newtonsoft.Json.Linq; + +namespace HydroDesktop.Plugins.EPADelineation +{ + class CallWebService + { + # region Variables + + private Coordinate _stPoint; + + private string _PointIndexingUrl = "http://ofmpub.epa.gov/waters10/waters_services.PointIndexingService"; + + private string _DelineationUrl = "http://ofmpub.epa.gov/waters10/waters_services.navigationDelineationService"; + + private string _StreamlineUrl = "http://ofmpub.epa.gov/waters10/waters_services.upstreamDownStreamService"; + + private ProjectionInfo _defaultProjection; + + #endregion + + # region Constructor + + public CallWebService(Coordinate stPoint) + { + //This is a three dimensional coordinate with z=0 + _stPoint = stPoint; + } + #endregion + + #region Public Methods + + /// + /// Get the Start Point for Delineation/Upstream + /// + /// Returns an object[] of the start point + public object[] GetStartPoint() + { + string[] startpt = new string[2]; + + startpt = GetPointInputREST(); + + return startpt; + } + + /// + /// Public Methods to get delineated watershed + /// + /// Returns an object[] including the delineated watershed polygon + public object[] GetWsheds(object[] startPoint) + { + if (startPoint == null) return null; + if (startPoint.Length < 2) return null; + + string Comid = startPoint[0] as string; + string Measure = startPoint[1] as string; + + //Get Delineated Watersheds + string wshedUri = GetWshedQueryUri(Comid, Measure); + object[] wshedObj = GetDelineation(wshedUri); + + if (wshedObj != null) + { + IFeatureSet DelineatePoly = wshedObj[0] as IFeatureSet; + string area = wshedObj[1] as string; + + return wshedObj; + } + + else + { + return null; + } + } + + /// + /// Public Methods to Get Upstream Flowlines + /// + /// Get startPoint + /// Returns an object[] including the streamlines information + public object[] GetLines(object[] startPoint) + { + if (startPoint == null) return null; + if (startPoint.Length < 2) return null; + + string Comid = startPoint[0] as string; + string Measure = startPoint[1] as string; + + //Get upstream flowlines + string streamUri = GetStreamQueryUri(Comid, Measure); + object[] streamObj = GetStreamline(streamUri); + + if (streamObj != null) + { + IFeatureSet Upstream = streamObj[0] as IFeatureSet; + List comid = streamObj[1] as List; + List reachcode = streamObj[2] as List; + List totdist = streamObj[3] as List; + + return streamObj; + } + else + { + return null; + } + + } + + #endregion + + #region Private Methods + + /// + /// Gets inputs for point indexing service and call the service methods. + /// This uses the HTTP GET version of the request + /// + /// Returns Start Comid and Measure + private string[] GetPointInputREST() + { + int comid = 0; + double measure = 0; + + //create the input parameters + string pointUri = GetPointQueryUri(_stPoint); + + //Declare a WebClient instance to get the Watershed Delineation response string + WebClient delineate = new WebClient(); + + try + { + string response = delineate.DownloadString(pointUri); + JObject mainObj = JObject.Parse(response); + JToken outputObj = mainObj["output"]; + + //check for error message in outputObj + if (outputObj.Type == Newtonsoft.Json.Linq.JTokenType.Null) + { + JToken statusObj = mainObj["status"]; + string statusMessage = statusObj["status_message"].ToString(); + throw new ArgumentException(statusMessage); + } + + // Get flowline array (should just be one) + JArray flowlinesObj = outputObj["ary_flowlines"] as JArray; + + // TODO: catch when array is empty + + JToken flowline = flowlinesObj[0]; + string comidStr = flowline["comid"].ToString(); + comid = Convert.ToInt32(comidStr, CultureInfo.InvariantCulture); + string measureStr = flowline["fmeasure"].ToString(); + measure = Convert.ToDouble(measureStr, CultureInfo.InvariantCulture); + + } + catch (WebException ex) + { + MessageBox.Show("Error calling Delineation web service. " + ex.Message); + return null; + } + + if (comid > 0 && measure > 0) + { + string[] startpt = new string[2]; + startpt[0] = comid.ToString(CultureInfo.InvariantCulture); + startpt[1] = measure.ToString(CultureInfo.InvariantCulture); + + return startpt; + } + else + { + MessageBox.Show("No point returned. Please select a different point."); + return null; + } + } + + /// + /// Gets the point query Uri + /// + /// the point (longitude, latitude coordinates) + /// the uri + private string GetPointQueryUri(Coordinate stPoint) + { + // The Max Distance is set as 100km. Non-limited distance could cause timeout. + string uri = String.Format("{0}?pGeometry=POINT({1} {2})" + + "&pGeometryMod=WKT,SRID=8265&pResolution=3&pPointIndexingMethod=DISTANCE&pPointIndexingMaxDist=100", + _PointIndexingUrl, stPoint.X.ToString(CultureInfo.InvariantCulture), stPoint.Y.ToString(CultureInfo.InvariantCulture)); + return uri; + } + + /// + /// Get the query string for EPA Delineation HTTP requirement + /// + /// COMID from the PointIndexing Service + /// Measure from the PointIndexing Service + /// Returns the query url + private string GetWshedQueryUri(string qcomid, string qmeasure) + { + // The Max Distance is set as 100km. Non-limited distance could cause timeout. + string uri = _DelineationUrl + "?pNavigationType=UT&pStartComid=" + qcomid + "&pStartMeasure=" + qmeasure + + "&pMaxDistance=100&pMaxTime=&pAggregationFlag=true&pOutputFlag=FEATURE&pFeatureType=CATCHMENT_TOPO" + + "&optCache=1269303461090&optOutGeomFormat=GEOJSON&optJSONPCallback=success"; + return uri; + } + + /// + /// Get the query string for EPA Upstrem/Downstream HTTP requirement + /// + /// COMID from the PointIndexing Service + /// Measure from the PointIndexing Service + /// Returns the query url + private string GetStreamQueryUri(string qcomid, string qmeasure) + { + // The Max Distance is set as 100km. Non-limited distance could cause timeout. + string uri = _StreamlineUrl + "?pNavigationType=UT&pStartComid=" + qcomid + "&pStartMeasure=" + qmeasure + + "&pStopDistancekm=100&pStopTimeOfTravel=&pFlowlinelist=true&pTraversalSummary=true" + + "&optCache=1269303461090&optOutGeomFormat=GEOJSON&optJSONPCallback=success"; + + return uri; + } + + /// + /// Get delineated watershed polygon from EPA WebServices + /// + /// Query string + /// Returns an IFeatureSet including the delineated polygon + private object[] GetDelineation(string uri) + { + //Declare a WebClient instance to get the Watershed Delineation response string + WebClient delineate = new WebClient(); + + try + { + string response = delineate.DownloadString(uri); + + int start = response.IndexOf("("); + int end = response.LastIndexOf(")"); + + response = response.Substring(start + 1, end - 1 - start); + + //Declare Json Elements + JObject mainObj = new JObject(); + JToken outputObj = new JObject(); + JToken shapeObj = new JObject(); + JToken statusObj = new JObject(); + + mainObj = JObject.Parse(response); + + outputObj = mainObj["output"]; + + //check for error message in outputObj + if (outputObj.Type == Newtonsoft.Json.Linq.JTokenType.Null) + { + statusObj = mainObj["status"]; + string statusMessage = statusObj["status_message"].ToString(); + throw new ArgumentException(statusMessage); + } + + shapeObj = outputObj["shape"]; + + string stype = shapeObj["type"].ToString(); + string area = outputObj["total_areasqkm"].ToString(); + + JArray coordArray = shapeObj["coordinates"] as JArray; + + //For coordinate information + string lat; + string lon; + + //Setup projection information + _defaultProjection = KnownCoordinateSystems.Projected.World.WebMercator; + ProjectionInfo wgs84 = KnownCoordinateSystems.Geographic.World.WGS1984; + + //Initialize feature parameters + Feature polyf = new Feature(); + Feature multipolyf = new Feature(); + IFeatureSet polyfs = new FeatureSet(FeatureType.Polygon); + + //For the case GeoJSON returns a MultiPolygon + if (stype.Trim().ToLower() == "multipolygon") + { + foreach (JArray Polycoord in coordArray) //The third level branket + { + Polygon[] polys = new Polygon[Polycoord.Count]; + + if (Polycoord != null) + { + for (int i = 0; i < Polycoord.Count; i++)//The second level branket + { + JArray multiRingcoord = (JArray)Polycoord[i]; + + IList multicoords = new List(); + + if (multiRingcoord != null) + { + foreach (JArray latlongcoord in multiRingcoord) //The first level branket + { + Coordinate coord = new Coordinate(); + + lon = latlongcoord[0].ToString(); + lat = latlongcoord[1].ToString(); + + coord.X = Convert.ToDouble(lon); + coord.Y = Convert.ToDouble(lat); + + double[] xy = new double[2]; + xy[0] = coord.X; + xy[1] = coord.Y; + + double[] z = new double[1]; + + coord.X = xy[0]; + coord.Y = xy[1]; + + multicoords.Add(coord); + } + + polys[i] = new Polygon(multicoords); + } + } + + //Save polygon[] into a multipolygon + if (polys.Length > 1) + { + IMultiPolygon multipolys = new MultiPolygon(polys); + + multipolyf = new Feature(multipolys); + } + else + { + // special case: A multipolygon with one part + multipolyf = new Feature(polys[0]); + } + + //Save features into a featureset + if (polyfs.Features.Count == 0) + { + polyfs.Projection = _defaultProjection; + polyfs = new FeatureSet(multipolyf.FeatureType); + polyfs.AddFeature(multipolyf); + } + + else + { + polyfs.AddFeature(multipolyf); + } + } + } + } + + //For the case GeoJSON returns a Polygon + if (stype.Trim().ToLower() == "polygon") + { + foreach (JArray Ringcoord in coordArray) //The second level branket + { + IList coords = new List(); + + if (Ringcoord != null) + { + + foreach (JArray latlongcoord in Ringcoord) //The first level branket + { + Coordinate coord = new Coordinate(); + + lon = latlongcoord[0].ToString(); + lat = latlongcoord[1].ToString(); + + coord.X = Convert.ToDouble(lon); + coord.Y = Convert.ToDouble(lat); + + double[] xy = new double[2]; + xy[0] = coord.X; + xy[1] = coord.Y; + + double[] z = new double[1]; + + coord.X = xy[0]; + coord.Y = xy[1]; + + coords.Add(coord); + } + + polyfs.Projection = _defaultProjection; + polyf = new Feature(FeatureType.Polygon, coords); + } + + polyfs = new FeatureSet(polyf.FeatureType); + + if (polyfs.Features.Count == 0) + { + polyfs = new FeatureSet(polyf.FeatureType); + polyfs.AddFeature(polyf); + } + + else + { + polyfs.AddFeature(polyf); + } + } + } + + object[] watersheds = new object[2]; + + watersheds[0] = polyfs; + watersheds[1] = area; + + return watersheds; + } + catch (NullReferenceException) + { + MessageBox.Show("Watershed not found. Please try a different point."); + return null; + } + + catch (Exception ex2) + { + MessageBox.Show("Error searching for watershed. " + ex2.Message); + return null; + } + } + + /// + /// Get Upstream flowslines from EPA WebServices + /// + /// Query string + /// Returns an IFeatureSet including the + private object[] GetStreamline(string uri) + { + //Declare a WebClient instance to get the Watershed Delineation response string + WebClient streamline = new WebClient(); + + try + { + string response = streamline.DownloadString(uri); + + int start = response.IndexOf("("); + int end = response.IndexOf(")"); + + response = response.Substring(start + 1, end - 1 - start); + + //Declare Json Elements + JObject mainObj = new JObject(); + JToken outputObj; + JArray lineObj = new JArray(); + JToken shapeObj = new JObject(); + + mainObj = JObject.Parse(response); + + outputObj = mainObj["output"]; + lineObj = outputObj["flowlines_traversed"] as JArray; + + List comid = new List(); + List reachcode = new List(); + List totdist = new List(); + + //Setup projection information + _defaultProjection = KnownCoordinateSystems.Projected.World.WebMercator; + ProjectionInfo wgs84 = KnownCoordinateSystems.Geographic.World.WGS1984; + + //Initialize feature parameters + Feature linef = new Feature(); + IFeatureSet linefs = new FeatureSet(FeatureType.Line); + + //for (int i = 0; i < lineObj.Count; i++) + foreach (JObject flowObj in lineObj) + { + shapeObj = flowObj["shape"] as JObject; + + string id = flowObj["comid"].ToString(); + string code = flowObj["reachcode"].ToString(); + string dist = flowObj["totaldist"].ToString(); + + string stype = shapeObj["type"].ToString(); + + JArray coordArray = shapeObj["coordinates"] as JArray; + + //For coordinate information + string lat; + string lon; + + //For the case GeoJSON returns a MultiLineString + if (stype.Trim().ToLower() == "multilinestring") + { + if (coordArray != null) + { + LineString[] lines = new LineString[coordArray.Count]; + + for (int j = 0; j < coordArray.Count; j++)//The second level branket + { + JArray linecoord = (JArray)coordArray[j]; + + IList multicoords = new List(); + + if (linecoord != null) + { + foreach (JArray latlongcoord in linecoord) //The first level branket + { + Coordinate coord = new Coordinate(); + + lon = latlongcoord[0].ToString(); + lat = latlongcoord[1].ToString(); + + coord.X = Convert.ToDouble(lon); + coord.Y = Convert.ToDouble(lat); + + multicoords.Add(coord); + } + + lines[j] = new LineString(multicoords); + } + } + + //Save lines[] into a multiline + IMultiLineString multilines = new MultiLineString(lines); + + linef = new Feature(multilines); + } + } + + //For the case GeoJSON returns a LineString + if (stype.Trim().ToLower() == "linestring") + { + IList coords = new List(); + foreach (JArray latlongcoord in coordArray) //The second level branket + { + Coordinate coord = new Coordinate(); + + lon = latlongcoord[0].ToString(); + lat = latlongcoord[1].ToString(); + + coord.X = Convert.ToDouble(lon, CultureInfo.InvariantCulture); + coord.Y = Convert.ToDouble(lat, CultureInfo.InvariantCulture); + + coords.Add(coord); + } + + linef = new Feature(FeatureType.Line, coords); + } + + linefs.Projection = _defaultProjection; + + //Save features into a featureset + if (linefs.Features.Count == 0) + { + linefs = new FeatureSet(linef.FeatureType); + linefs.AddFeature(linef); + } + + else + { + linefs.AddFeature(linef); + } + + //Save streamlines' information + comid.Add(id); + reachcode.Add(code); + totdist.Add(dist); + } + + object[] streamlines = new object[4]; + + streamlines[0] = linefs as object; + streamlines[1] = comid as object; + streamlines[2] = reachcode as object; + streamlines[3] = totdist as object; + + return streamlines; + } + + catch (Exception ex) + { + MessageBox.Show(ex.Message); + return null; + } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/EPADelineation.sln b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/EPADelineation.sln new file mode 100644 index 00000000..0fd9a258 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/EPADelineation.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EPADelineation", "EPADelineation.csproj", "{11DA0AB7-F2EB-4D82-B72C-F255BA92426E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {11DA0AB7-F2EB-4D82-B72C-F255BA92426E}.Debug|Any CPU.ActiveCfg = Release|x86 + {11DA0AB7-F2EB-4D82-B72C-F255BA92426E}.Debug|Any CPU.Build.0 = Release|x86 + {11DA0AB7-F2EB-4D82-B72C-F255BA92426E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {11DA0AB7-F2EB-4D82-B72C-F255BA92426E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/HydroDesktop.Plugins.EPADelineation.csproj b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/HydroDesktop.Plugins.EPADelineation.csproj new file mode 100644 index 00000000..ec533800 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/HydroDesktop.Plugins.EPADelineation.csproj @@ -0,0 +1,210 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {11DA0AB7-F2EB-4D82-B72C-F255BA92426E} + Library + Properties + HydroDesktop.Plugins.EPADelineation + HydroDesktop.Plugins.EPADelineation + v4.0 + 512 + + + + + 3.5 + + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.EPADelineation\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.EPADelineation\HydroDesktop.Plugins.EPADelineation.XML + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.EPADelineation\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.EPADelineation\ + DEBUG;TRACE + full + x86 + prompt + false + false + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.EPADelineation\HydroDesktop.Plugins.EPADelineation.XML + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.EPADelineation\ + TRACE + true + pdbonly + x86 + prompt + false + false + false + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + ..\..\packages\Newtonsoft.Json.4.5.3\lib\net40\Newtonsoft.Json.dll + + + + 3.5 + + + + + + + + + + Form + + + Progress.cs + + + + + Progress.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + SaveWatershed.cs + + + True + Resources.resx + True + + + + + Designer + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + Form + + + SaveWatershed.cs + + + + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + {F09E70CC-9D65-45C2-A451-D22CFB400C26} + HydroDesktop.Help + False + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/HydroDesktop.Plugins.EPADelineation.nuspec b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/HydroDesktop.Plugins.EPADelineation.nuspec new file mode 100644 index 00000000..3193f953 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/HydroDesktop.Plugins.EPADelineation.nuspec @@ -0,0 +1,22 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Main.cs b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Main.cs new file mode 100644 index 00000000..899555f0 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Main.cs @@ -0,0 +1,77 @@ +using System; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; + +namespace HydroDesktop.Plugins.EPADelineation +{ + /// + /// EPA Delineation extension for HydroDesktop + /// + public class Main : Extension + { + #region Variables + private SimpleActionItem action; + + #endregion Variables + + #region IExtension Members + + /// + /// Fires when the plug-in should become inactive + /// + public override void Deactivate() + { + App.HeaderControl.RemoveAll(); + base.Deactivate(); + } + + + /// + /// Initialize the DotSpatial plug-in + /// + public override void Activate() + { + action = new SimpleActionItem("Delineate Watershed", _startDelineate_Click); + action.GroupCaption = ""; + action.ToolTipText = "Delineate catchments using EPA web services"; + action.SmallImage = Properties.Resources.Delineation_icon_32.GetThumbnailImage(16, 16, null, IntPtr.Zero); + action.LargeImage = Properties.Resources.Delineation_icon_32; + action.RootKey = HeaderControl.HomeRootItemKey; + action.ToggleGroupKey = "tDelineateEpaTool"; + action.SortOrder = 100; //give it a high sort order to move the button to the right + App.HeaderControl.Add(action); + + base.Activate(); + } + + # endregion + + #region Click Events + + private void _startDelineate_Click(object sender, EventArgs e) + { + App.Map.FunctionMode = FunctionMode.None; + + var saveWS = new SaveWatershed(App); + var res = saveWS.ShowDialog(); + if (res == System.Windows.Forms.DialogResult.OK) + { + saveWS.Completed += saveWS_Completed; + } + else + { + App.Map.FunctionMode = FunctionMode.Select; + } + } + + void saveWS_Completed(object sender, EventArgs e) + { + var saveWS = (SaveWatershed) sender; + action.Toggle(); //un-toggles the Delineate button + saveWS.Completed -= saveWS_Completed; + App.Map.FunctionMode = FunctionMode.Select; + } + + #endregion Click Events + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Progress.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Progress.Designer.cs new file mode 100644 index 00000000..e04507dc --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Progress.Designer.cs @@ -0,0 +1,97 @@ +namespace HydroDesktop.Plugins.EPADelineation +{ + /// + /// Creates a new instance of the progress dialog form + /// + partial class FmProgress + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.lblmessage1 = new System.Windows.Forms.Label(); + this.lblmessage2 = new System.Windows.Forms.Label(); + this.lblmessage3 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // lblmessage1 + // + this.lblmessage1.AutoSize = true; + this.lblmessage1.Location = new System.Drawing.Point(12, 34); + this.lblmessage1.Name = "lblmessage1"; + this.lblmessage1.Size = new System.Drawing.Size(141, 13); + this.lblmessage1.TabIndex = 2; + this.lblmessage1.Text = "Calling EPA Web Services..."; + // + // lblmessage2 + // + this.lblmessage2.AutoSize = true; + this.lblmessage2.Location = new System.Drawing.Point(12, 20); + this.lblmessage2.Name = "lblmessage2"; + this.lblmessage2.Size = new System.Drawing.Size(98, 13); + this.lblmessage2.TabIndex = 3; + this.lblmessage2.Text = "Sending Request..."; + this.lblmessage2.Visible = false; + // + // lblmessage3 + // + this.lblmessage3.AutoSize = true; + this.lblmessage3.Location = new System.Drawing.Point(12, 34); + this.lblmessage3.Name = "lblmessage3"; + this.lblmessage3.Size = new System.Drawing.Size(156, 13); + this.lblmessage3.TabIndex = 4; + this.lblmessage3.Text = "Drawing Features on the Map..."; + this.lblmessage3.Visible = false; + // + // FmProgress + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.Control; + this.ClientSize = new System.Drawing.Size(279, 82); + this.Controls.Add(this.lblmessage3); + this.Controls.Add(this.lblmessage2); + this.Controls.Add(this.lblmessage1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FmProgress"; + this.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.ShowIcon = false; + this.Text = "Progressing..."; + this.TransparencyKey = System.Drawing.Color.Transparent; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblmessage1; + private System.Windows.Forms.Label lblmessage2; + private System.Windows.Forms.Label lblmessage3; + + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Progress.cs b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Progress.cs new file mode 100644 index 00000000..c4e2f1db --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Progress.cs @@ -0,0 +1,100 @@ +using System; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.EPADelineation +{ + public partial class FmProgress : Form + { + /// + /// True if the process is still working + /// + public bool _isworking = false; + + /// + /// Creates a new instance of the progress dialog form + /// + public FmProgress() + { + InitializeComponent(); + } + /// + /// Updates text in the progress bar dialog + /// + /// the comid of the outlet point + public void updateText(object[] startpt) + { + _isworking = true; + + try + { + string comid = startpt[0] as string; + string measure = startpt[1] as string; + + this.lblmessage2.Text = "Sending Request to EPA Delineation Web Services \n for COMID = " + comid + " \n and MEASURE = " + measure + "..."; + this.lblmessage1.Visible = false; + this.lblmessage2.Visible = true; + this.lblmessage3.Visible = false; + + //Update the Label Text + Application.DoEvents(); + + _isworking = false; + } + + catch (Exception ex) + { + MessageBox.Show(ex.Message); + this.closeForm(); + + _isworking = false; + } + } + /// + /// updates progress status text in the progress form + /// + public void updateText() + { + _isworking = true; + + try + { + this.lblmessage3.Visible = true; + this.lblmessage1.Visible = false; + this.lblmessage2.Visible = false; + + Application.DoEvents(); + + _isworking = false; + } + + catch (Exception ex) + { + MessageBox.Show(ex.Message); + this.closeForm(); + _isworking = false; + } + } + + /// + /// Closes the progress dialog form + /// + public void closeForm() + { + _isworking = true; + try + { + this.Close(); + _isworking = false; + } + + catch (Exception ex) + { + MessageBox.Show(ex.Message); + this.closeForm(); + + _isworking = false; + } + } + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Progress.resx b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Progress.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Progress.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..881aaabc --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.EPADelineation")] +[assembly: AssemblyDescription("EPA Watershed Delineation - Delineate any watershed in the U.S")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Jingqi Dong")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.EPADelineation")] +[assembly: AssemblyCopyright("Copyright © CUAHSI 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("fd00bf1e-26cc-4e5b-be27-c84a36dc5c3a")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Properties/Resources.Designer.cs new file mode 100644 index 00000000..b1af44e4 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Properties/Resources.Designer.cs @@ -0,0 +1,83 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.EPADelineation.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.EPADelineation.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Delineation_icon_32 { + get { + object obj = ResourceManager.GetObject("Delineation_icon_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Delineation_icon_32_new { + get { + object obj = ResourceManager.GetObject("Delineation_icon_32_new", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Properties/Resources.resx new file mode 100644 index 00000000..119fd8b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Properties/Resources.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + ..\Resources\Delineation_icon_32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Delineation_icon_32_new.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Properties/Settings.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Properties/Settings.Designer.cs new file mode 100644 index 00000000..abfb5d01 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Properties/Settings.Designer.cs @@ -0,0 +1,38 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.EPADelineation.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.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; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("EPA-Delineation.html")] + public string localHelpUri { + get { + return ((string)(this["localHelpUri"])); + } + set { + this["localHelpUri"] = value; + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Properties/Settings.settings b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Properties/Settings.settings new file mode 100644 index 00000000..6fe5077f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Properties/Settings.settings @@ -0,0 +1,9 @@ + + + + + + EPA-Delineation.html + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/References/Jayrock.Json.dll b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/References/Jayrock.Json.dll new file mode 100644 index 00000000..eb1a3fa9 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/References/Jayrock.Json.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/References/Newtonsoft.Json.dll b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/References/Newtonsoft.Json.dll new file mode 100644 index 00000000..67b9d351 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/References/Newtonsoft.Json.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/References/Newtonsoft.Json.xml b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/References/Newtonsoft.Json.xml new file mode 100644 index 00000000..fb8d4601 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/References/Newtonsoft.Json.xml @@ -0,0 +1,7141 @@ + + + + Newtonsoft.Json + + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. + + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. + + + + + Initializes a new instance of the class with the specified . + + + + + Reads the next JSON token from the stream. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the stream as a . + + A or a null reference if the next JSON token is null. + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + A . + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the state based on current token type. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the to Closed. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the underlying stream or + should be closed when the reader is closed. + + + true to close the underlying stream or when + the reader is closed; otherwise false. The default is true. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets the type of the current Json token. + + + + + Gets the text value of the current Json token. + + + + + Gets The Common Language Runtime (CLR) type for the current Json token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Specifies the state of the reader. + + + + + The Read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The Close method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Initializes a new instance of the class. + + The stream. + + + + Initializes a new instance of the class. + + The stream. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the stream as a . + + + A or a null reference if the next JSON token is null. + + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + + A . + + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the to Closed. + + + + + Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. + + + + + Creates an instance of the JsonWriter class. + + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + Writes the beginning of a Json object. + + + + + Writes the end of a Json object. + + + + + Writes the beginning of a Json array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair on a Json object. + + The name of the property. + + + + Writes the end of the current Json object or array. + + + + + Writes the current token. + + The to read the token from. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes out the given white space. + + The string of white space characters. + + + + Gets or sets a value indicating whether the underlying stream or + should be closed when the writer is closed. + + + true to close the underlying stream or when + the writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Indicates how the output is formatted. + + + + + Initializes a new instance of the class. + + The stream. + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a Json array. + + + + + Writes the beginning of a Json object. + + + + + Writes the property name of a name/value pair on a Json object. + + The name of the property. + + + + Closes this stream and the underlying stream. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value that represents a BSON object id. + + + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Represents a BSON Oid (object id). + + + + + Initializes a new instance of the class. + + The Oid value. + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Converts a binary value to and from a base 64 string value. + + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets the of the JSON produced by the JsonConverter. + + The of the JSON produced by the JsonConverter. + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Create a custom object + + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework EntityKey to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an ExpandoObject to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + Converts an to and from its name string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + A cached representation of the Enum string representation to respect per Enum field name. + + The type of the Enum. + A map of enum field name to either the field name, or the configured enum member name (). + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + + true if the written enum text will be camel case; otherwise, false. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor then fall back to single paramatized constructor. + + + + + Allow Json.NET to use a non-public default constructor. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Represents a raw JSON string. + + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Represents an abstract JSON token. + + + + + Represents a collection of objects. + + The type of token + + + + Gets the with the specified key. + + + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if LineNumber and LinePosition can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, HasLineInfo returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, HasLineInfo returns false). + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output is formatted. + A collection of which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Creates an for this token. + + An that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object + + + + Creates the specified .NET type from the . + + The new object created from the JSON value. + + + + Creates the specified .NET type from the using the specified . + + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + An positioned at the token to read into this . + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Creates a from a . + + An positioned at the token to read into this . + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects the token that matches the object path. + + + The object path from the current to the + to be returned. This must be a string of property names or array indexes separated + by periods, such as Tables[0].DefaultView[0].Price in C# or + Tables(0).DefaultView(0).Price in Visual Basic. + + The that matches the object path or a null reference if no matching token is found. + + + + Selects the token that matches the object path. + + + The object path from the current to the + to be returned. This must be a string of property names or array indexes separated + by periods, such as Tables[0].DefaultView[0].Price in C# or + Tables(0).DefaultView(0).Price in Visual Basic. + + A flag to indicate whether an error should be thrown if no token is found. + The that matches the object path. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has childen tokens. + + + true if this token has child values; otherwise, false. + + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + The parameter is null. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not the same type as this instance. + + + + + Gets a value indicating whether this token has childen tokens. + + + true if this token has child values; otherwise, false. + + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + Contract details for a used by the . + + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets the method called immediately after deserialization of the object. + + The method called immediately after deserialization of the object. + + + + Gets or sets the method called during deserialization of the object. + + The method called during deserialization of the object. + + + + Gets or sets the method called after serialization of the object graph. + + The method called after serialization of the object graph. + + + + Gets or sets the method called before serialization of the object. + + The method called before serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether [default creator non public]. + + true if the default object creator is non-public; otherwise, false. + + + + Gets or sets the method called when an error is thrown during the serialization of the object. + + The method called when an error is thrown during the serialization of the object. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Gets or sets the ISerializable object constructor. + + The ISerializable object constructor. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Get and set values for a using dynamic methods. + + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides data for the Error event. + + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + Type of the property. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that + + + + Gets the reference for the sepecified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Specifies reference handling options for the . + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Instructs the how to serialize the collection. + + + + + Instructs the how to serialize the object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets a value that indicates whether to preserve object reference data. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Specifies default value handling options for the . + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that is is not written to JSON, and ignores setting members when the JSON value equals the member's default value. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and sets members to their default value when deserializing. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Initializes a new instance of the class. + + Type of the converter. + + + + Gets the type of the converter. + + The type of the converter. + + + + Instructs the how to serialize the object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Gets or sets the member serialization. + + The member serialization. + + + + Specifies the settings on a object. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + + Null value handling. + + + + Gets or sets how null default are handled during serialization and deserialization. + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + The type name handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Represents a reader that provides validation. + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Reads the next JSON token from the stream as a . + + + A or a null reference if the next JSON token is null. + + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current Json token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current Json token. + + + + + + Gets The Common Language Runtime (CLR) type for the current Json token. + + + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Specifies the member serialization options for the . + + + + + All members are serialized by default. Members can be excluded using the . + + + + + Only members must be marked with the are serialized. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Specifies whether a DateTime object represents a local time, a Coordinated Universal Time (UTC), or is not specified as either local time or UTC. + + + + + The time represented is local time. + + + + + The time represented is UTC. + + + + + The time represented is not specified as either local time or Coordinated Universal Time (UTC). + + + + + Preserves the DateTimeKind field of a date when a DateTime object is converted to a string and the string is then converted back to a DateTime object. + + + + + Converts XML to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the attributeName is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + True if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. + + The name of the deserialize root element. + + + + Gets or sets a flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attibute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. + + + + + Initializes a new instance of the class with the specified . + + The TextReader containing the XML data to read. + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the stream as a . + + + A or a null reference if the next JSON token is null. + + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + A . + + + + Changes the state to closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if LineNumber and LinePosition can be provided; otherwise, false. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, HasLineInfo returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, HasLineInfo returns false). + + + + + Instructs the to always serialize the member with the specified name. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization and deserialization of a member. + + The numeric order of serialization or deserialization. + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. + + + + + Creates an instance of the JsonWriter class using the specified . + + The TextWriter to write to. + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + Writes the beginning of a Json object. + + + + + Writes the beginning of a Json array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a Json object. + + The name of the property. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes out the given white space. + + The string of white space characters. + + + + Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to Formatting.Indented. + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + The exception thrown when an error occurs while reading Json text. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + The exception thrown when an error occurs while reading Json text. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Represents a collection of . + + + + + Provides methods for converting between common language runtime types and JSON types. + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string. + + The object to serialize. + Indicates how the output is formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + Indicates how the output is formatted. + A collection converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + Indicates how the output is formatted. + The used to serialize the object. + If this is null, default serialization settings will be is used. + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the Json string. + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be is used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the Json string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the Json string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be infered from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be is used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be is used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be is used. + + + + + Serializes the XML node to a JSON string. + + The node to serialize. + A JSON string of the XmlNode. + + + + Serializes the XML node to a JSON string. + + The node to serialize. + Indicates how the output is formatted. + A JSON string of the XmlNode. + + + + Serializes the XML node to a JSON string. + + The node to serialize. + Indicates how the output is formatted. + Omits writing the root object. + A JSON string of the XmlNode. + + + + Deserializes the XmlNode from a JSON string. + + The JSON string. + The deserialized XmlNode + + + + Deserializes the XmlNode from a JSON string nested in a root elment. + + The JSON string. + The name of the root element to append when deserializing. + The deserialized XmlNode + + + + Deserializes the XmlNode from a JSON string nested in a root elment. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized XmlNode + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the XNode. + + + + Serializes the to a JSON string. + + The node to convert to JSON. + Indicates how the output is formatted. + A JSON string of the XNode. + + + + Serializes the to a JSON string. + + The node to serialize. + Indicates how the output is formatted. + Omits writing the root object. + A JSON string of the XNode. + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized XNode + + + + Deserializes the from a JSON string nested in a root elment. + + The JSON string. + The name of the root element to append when deserializing. + The deserialized XNode + + + + Deserializes the from a JSON string nested in a root elment. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized XNode + + + + The exception thrown when an error occurs during Json serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance using the specified . + + The settings to be applied to the . + A new instance using the specified . + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Deserializes the Json structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the Json structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the Json structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the Json structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the Json structure + to a Stream using the specified . + + The used to write the Json structure. + The to serialize. + + + + Serializes the specified and writes the Json structure + to a Stream using the specified . + + The used to write the Json structure. + The to serialize. + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + + + + + Get or set how reference loops (e.g. a class referencing itself) is handled. + + + + + Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + + + + Get or set how null values are handled during serialization and deserialization. + + + + + Get or set how null default are handled during serialization and deserialization. + + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every node in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every node in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every node in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every node in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every node in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every node in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every node in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every node in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a JSON constructor. + + + + + Represents a token that can contain other tokens. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An containing the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates an that can be used to add tokens to the . + + An that is ready to have content written to it. + + + + Replaces the children nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets a value indicating whether this token has childen tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Gets the with the specified key. + + The with the specified key. + + + + Represents a collection of objects. + + The type of token + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the with the specified key. + + + + + + Represents a JSON object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets an of this object's properties. + + An of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets an of this object's property values. + + An of this object's property values. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries the get value. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the properties for this instance of a component. + + + A that represents the properties for this component instance. + + + + + Returns the properties for this instance of a component using the attribute array as a filter. + + An array of type that is used as a filter. + + A that represents the filtered properties for this component instance. + + + + + Returns a collection of custom attributes for this instance of a component. + + + An containing the attributes for this object. + + + + + Returns the class name of this instance of a component. + + + The class name of the object, or null if the class does not have a name. + + + + + Returns the name of this instance of a component. + + + The name of the object, or null if the object does not have a name. + + + + + Returns a type converter for this instance of a component. + + + A that is the converter for this object, or null if there is no for this object. + + + + + Returns the default event for this instance of a component. + + + An that represents the default event for this object, or null if this object does not have events. + + + + + Returns the default property for this instance of a component. + + + A that represents the default property for this object, or null if this object does not have properties. + + + + + Returns an editor of the specified type for this instance of a component. + + A that represents the editor for this object. + + An of the specified type that is the editor for this object, or null if the editor cannot be found. + + + + + Returns the events for this instance of a component using the specified attribute array as a filter. + + An array of type that is used as a filter. + + An that represents the filtered events for this component instance. + + + + + Returns the events for this instance of a component. + + + An that represents the events for this component instance. + + + + + Returns an object that contains the property described by the specified property descriptor. + + A that represents the property whose owner is to be found. + + An that represents the owner of the specified property. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Gets the node type for this . + + The type. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Represents a JSON array. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + The is read-only. + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + The is read-only. + + + + Adds an item to the . + + The object to add to the . + The is read-only. + + + + Removes all items from the . + + The is read-only. + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + The is read-only. + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the stream as a . + + + A or a null reference if the next JSON token is null. + + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. + + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + Writes the beginning of a Json object. + + + + + Writes the beginning of a Json array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a Json object. + + The name of the property. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Gets the token being writen. + + The token being writen. + + + + Represents a JSON property. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Gets the node type for this . + + The type. + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Contains the JSON schema extension methods. + + + + + Determines whether the is valid. + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + Validates the specified . + + The source to test. + The schema to test with. + + + + Validates the specified . + + The source to test. + The schema to test with. + The validation event handler. + + + + Returns detailed information about the schema exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Resolves from an id. + + + + + Initializes a new instance of the class. + + + + + Gets a for the specified id. + + The id. + A for the specified id. + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Specifies undefined schema Id handling options for the . + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + Returns detailed information related to the . + + + + + Gets the associated with the validation event. + + The JsonSchemaException associated with the validation event. + + + + Gets the text description corresponding to the validation event. + + The text description. + + + + Represents the callback method that will handle JSON schema validation events and the . + + + + + Resolves member mappings for a type, camel casing property names. + + + + + Used by to resolves a for a given . + + + + + Used by to resolves a for a given . + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + If set to true the will use a cached shared with other resolvers of the same type. + Sharing the cache will significantly performance because expensive reflection will only happen once but could cause unexpected + behavior if different instances of the resolver are suppose to produce different results. When set to false it is highly + recommended to reuse instances with the . + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Name of the property. + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Resolves the name of the property. + + Name of the property. + The property name camel cased. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Provides information surrounding an error. + + + + + Gets or sets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the order of serialization and deserialization of a member. + + The numeric order of serialization or deserialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes presidence over the contract converter for the property type. + + The converter. + + + + Gets the member converter. + + The member converter. + + + + Gets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets the property null value handling. + + The null value handling. + + + + Gets the property default value handling. + + The default value handling. + + + + Gets the property reference loop handling. + + The reference loop handling. + + + + Gets the property object creation handling. + + The object creation handling. + + + + Gets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialize. + + A predicate used to determine whether the property should be serialize. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of propertyName and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + An in-memory representation of a JSON Schema. + + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains schema JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Parses the specified json. + + The json. + The resolver. + A populated from the string that contains JSON. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisble by. + + A number that the value should be divisble by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. + + A flag indicating whether the value can not equal the number defined by the "minimum" attribute. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. + + A flag indicating whether the value can not equal the number defined by the "maximum" attribute. + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the identity. + + The identity. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets a collection of options. + + A collection of options. + + + + Gets or sets disallowed types. + + The disallow types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the extend . + + The extended . + + + + Gets or sets the format. + + The format. + + + + Generates a from a specified . + + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + The value types allowed by the . + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets the constructor parameters required for any non-default constructor + + + + + Gets or sets the override constructor used to create the object. + This is set when a constructor is marked up using the + JsonConstructor attribute. + + The override constructor. + + + + Gets or sets the parametrized constructor used to create the object. + + The parametrized constructor. + + + + Serializes the dynamic. + + The writer. + The value. + The contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Represents a method that constructs an object. + + + + + Specifies type name handling options for the . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + + + + + Always include the .NET type name when serializing. + + + + + Converts the value to the specified type. + + The type to convert the value to. + The value to convert. + The converted type. + + + + Converts the value to the specified type. + + The type to convert the value to. + The value to convert. + The culture to use when converting. + The converted type. + + + + Converts the value to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert the value to. + The converted type. + + + + Converts the value to the specified type. + + The type to convert the value to. + The value to convert. + The converted value if the conversion was successful or the default value of T if it failed. + + true if initialValue was converted successfully; otherwise, false. + + + + + Converts the value to the specified type. + + The type to convert the value to. + The value to convert. + The culture to use when converting. + The converted value if the conversion was successful or the default value of T if it failed. + + true if initialValue was converted successfully; otherwise, false. + + + + + Converts the value to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert the value to. + The converted value if the conversion was successful or the default value of T if it failed. + + true if initialValue was converted successfully; otherwise, false. + + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The type to convert or cast the value to. + The value to convert. + The converted type. If conversion was unsuccessful, the initial value is returned if assignable to the target type + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The type to convert or cast the value to. + The value to convert. + The culture to use when converting. + The converted type. If conversion was unsuccessful, the initial value is returned if assignable to the target type + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The type to convert the value to. + The value to convert. + The converted value if the conversion was successful or the default value of T if it failed. + + true if initialValue was converted successfully or is assignable; otherwise, false. + + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The type to convert the value to. + The value to convert. + The culture to use when converting. + The converted value if the conversion was successful or the default value of T if it failed. + + true if initialValue was converted successfully or is assignable; otherwise, false. + + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert the value to. + The converted value if the conversion was successful or the default value of T if it failed. + + true if initialValue was converted successfully or is assignable; otherwise, false. + + + + + Parses the specified enum member name, returning it's value. + + Name of the enum member. + + + + + Parses the specified enum member name, returning it's value. + + Name of the enum member. + If set to true ignore case. + + + + + Gets a dictionary of the names and values of an Enum type. + + + + + + Gets a dictionary of the names and values of an Enum type. + + + + + + Gets a dictionary of the names and values of an Enum type. + + The enum type to get names and values for. + + + + + Gets the maximum valid value of an Enum type. Flags enums are ORed. + + The type of the returned value. Must be assignable from the enum's underlying value type. + The enum type to get the maximum value for. + + + + + Specifies the type of Json token. + + + + + This is returned by the if a method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An interger. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls results in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + A array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Determines whether the collection is null, empty or its contents are uninitialized values. + + The list. + + true if the collection is null or empty or its contents are uninitialized values; otherwise, false. + + + + + Makes a slice of the specified list in between the start and end indexes. + + The list. + The start index. + The end index. + A slice of the list. + + + + Makes a slice of the specified list in between the start and end indexes, + getting every so many items based upon the step. + + The list. + The start index. + The end index. + The step. + A slice of the list. + + + + Group the collection using a function which returns the key. + + The source collection to group. + The key selector. + A Dictionary with each key relating to a list of objects in a list grouped under it. + + + + Adds the elements of the specified collection to the specified generic IList. + + The list to add to. + The collection of elements to add. + + + + Returns the index of the first occurrence in a sequence by using the default equality comparer. + + The type of the elements of source. + A sequence in which to locate a value. + The object to locate in the sequence + The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. + + + + Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer. + + The type of the elements of source. + A sequence in which to locate a value. + The object to locate in the sequence + An equality comparer to compare values. + The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Tests whether the list's items are their unitialized value. + + The list. + Whether the list's items are their unitialized value + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Determines whether the string contains white space. + + The string to test for white space. + + true if the string contains white space; otherwise, false. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Ensures the target string ends with the specified string. + + The target. + The value. + The target string with the value string at the end. + + + + Perform an action if the string is not null or empty. + + The value. + The action to perform. + + + + Indents the specified string. + + The string to indent. + The number of characters to indent by. + + + + + Indents the specified string. + + The string to indent. + The number of characters to indent by. + The indent character. + + + + + Numbers the lines. + + The string to number. + + + + + Nulls an empty string. + + The string. + Null if the string was null, otherwise the string unchanged. + + + diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Resources/Delineation_icon_32.png b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Resources/Delineation_icon_32.png new file mode 100644 index 00000000..a73853ae Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Resources/Delineation_icon_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Resources/Delineation_icon_32_new.png b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Resources/Delineation_icon_32_new.png new file mode 100644 index 00000000..6498574a Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/Resources/Delineation_icon_32_new.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/SaveWatershed.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/SaveWatershed.Designer.cs new file mode 100644 index 00000000..53b65f21 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/SaveWatershed.Designer.cs @@ -0,0 +1,180 @@ +namespace HydroDesktop.Plugins.EPADelineation +{ + partial class SaveWatershed + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.OK = new System.Windows.Forms.Button(); + this.Cancel = new System.Windows.Forms.Button(); + this.gbxSave = new System.Windows.Forms.GroupBox(); + this.cbxOverwrite = new System.Windows.Forms.CheckBox(); + this.tbstreamline = new System.Windows.Forms.TextBox(); + this.tbwshedpoint = new System.Windows.Forms.TextBox(); + this.lblStreamline = new System.Windows.Forms.Label(); + this.lblWshed = new System.Windows.Forms.Label(); + this.lblWshPoint = new System.Windows.Forms.Label(); + this.tbwshed = new System.Windows.Forms.TextBox(); + this.gbxSave.SuspendLayout(); + this.SuspendLayout(); + // + // OK + // + this.OK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.OK.Location = new System.Drawing.Point(37, 171); + this.OK.Name = "OK"; + this.OK.Size = new System.Drawing.Size(83, 24); + this.OK.TabIndex = 0; + this.OK.Text = "&OK"; + this.OK.UseVisualStyleBackColor = true; + this.OK.Click += new System.EventHandler(this.OK_Click); + // + // Cancel + // + this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.Cancel.Location = new System.Drawing.Point(144, 171); + this.Cancel.Name = "Cancel"; + this.Cancel.Size = new System.Drawing.Size(83, 24); + this.Cancel.TabIndex = 1; + this.Cancel.Text = "&Cancel"; + this.Cancel.UseVisualStyleBackColor = true; + // + // gbxSave + // + this.gbxSave.Controls.Add(this.cbxOverwrite); + this.gbxSave.Controls.Add(this.tbstreamline); + this.gbxSave.Controls.Add(this.tbwshedpoint); + this.gbxSave.Controls.Add(this.lblStreamline); + this.gbxSave.Controls.Add(this.lblWshed); + this.gbxSave.Controls.Add(this.lblWshPoint); + this.gbxSave.Controls.Add(this.tbwshed); + this.gbxSave.Location = new System.Drawing.Point(12, 12); + this.gbxSave.Name = "gbxSave"; + this.gbxSave.Size = new System.Drawing.Size(238, 146); + this.gbxSave.TabIndex = 2; + this.gbxSave.TabStop = false; + this.gbxSave.Text = "Save Shapefiles"; + // + // cbxOverwrite + // + this.cbxOverwrite.AutoSize = true; + this.cbxOverwrite.Checked = true; + this.cbxOverwrite.CheckState = System.Windows.Forms.CheckState.Checked; + this.cbxOverwrite.Location = new System.Drawing.Point(9, 123); + this.cbxOverwrite.Name = "cbxOverwrite"; + this.cbxOverwrite.Size = new System.Drawing.Size(134, 17); + this.cbxOverwrite.TabIndex = 6; + this.cbxOverwrite.Text = "Over&write Existing Files"; + this.cbxOverwrite.UseVisualStyleBackColor = true; + // + // tbstreamline + // + this.tbstreamline.Location = new System.Drawing.Point(98, 94); + this.tbstreamline.Name = "tbstreamline"; + this.tbstreamline.Size = new System.Drawing.Size(117, 20); + this.tbstreamline.TabIndex = 5; + this.tbstreamline.Text = "Reaches"; + // + // tbwshedpoint + // + this.tbwshedpoint.Location = new System.Drawing.Point(98, 28); + this.tbwshedpoint.Name = "tbwshedpoint"; + this.tbwshedpoint.Size = new System.Drawing.Size(117, 20); + this.tbwshedpoint.TabIndex = 1; + this.tbwshedpoint.Text = "Watershed Point"; + // + // lblStreamline + // + this.lblStreamline.AutoSize = true; + this.lblStreamline.Location = new System.Drawing.Point(6, 97); + this.lblStreamline.Name = "lblStreamline"; + this.lblStreamline.Size = new System.Drawing.Size(56, 13); + this.lblStreamline.TabIndex = 4; + this.lblStreamline.Text = "&Streamline"; + // + // lblWshed + // + this.lblWshed.AutoSize = true; + this.lblWshed.Location = new System.Drawing.Point(6, 64); + this.lblWshed.Name = "lblWshed"; + this.lblWshed.Size = new System.Drawing.Size(59, 13); + this.lblWshed.TabIndex = 2; + this.lblWshed.Text = "&Watershed"; + // + // lblWshPoint + // + this.lblWshPoint.AutoSize = true; + this.lblWshPoint.Location = new System.Drawing.Point(6, 31); + this.lblWshPoint.Name = "lblWshPoint"; + this.lblWshPoint.Size = new System.Drawing.Size(86, 13); + this.lblWshPoint.TabIndex = 0; + this.lblWshPoint.Text = "Watershed &Point"; + // + // tbwshed + // + this.tbwshed.Location = new System.Drawing.Point(98, 61); + this.tbwshed.Name = "tbwshed"; + this.tbwshed.Size = new System.Drawing.Size(117, 20); + this.tbwshed.TabIndex = 3; + this.tbwshed.Text = "Watershed"; + // + // SaveWatershed + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(262, 207); + this.Controls.Add(this.Cancel); + this.Controls.Add(this.OK); + this.Controls.Add(this.gbxSave); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.HelpButton = true; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "SaveWatershed"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Save Watershed"; + this.HelpButtonClicked += new System.ComponentModel.CancelEventHandler(this.SaveDialog_HelpButtonClicked); + this.HelpRequested += new System.Windows.Forms.HelpEventHandler(this.SaveDialog_HelpRequested); + this.gbxSave.ResumeLayout(false); + this.gbxSave.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button OK; + private System.Windows.Forms.Button Cancel; + private System.Windows.Forms.GroupBox gbxSave; + private System.Windows.Forms.TextBox tbstreamline; + private System.Windows.Forms.Label lblStreamline; + private System.Windows.Forms.TextBox tbwshed; + private System.Windows.Forms.Label lblWshed; + private System.Windows.Forms.TextBox tbwshedpoint; + private System.Windows.Forms.Label lblWshPoint; + private System.Windows.Forms.CheckBox cbxOverwrite; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/SaveWatershed.cs b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/SaveWatershed.cs new file mode 100644 index 00000000..0d7c8e0d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/SaveWatershed.cs @@ -0,0 +1,600 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Projections; +using DotSpatial.Symbology; +using DotSpatial.Topology; +using Hydrodesktop.Common; +using HydroDesktop.Help; + +namespace HydroDesktop.Plugins.EPADelineation +{ + /// + /// This class is responsible for saving the watershed. + /// It calls the EPA WATERS web services and saves the watershed + /// to a shapefile layer + /// + public partial class SaveWatershed : Form + { + #region Variables + + /// + /// watershed outlet point + /// + private string _wshedpoint = ""; + + /// + /// watershed boundary (in JSON format) + /// + private string _wshed = ""; + + /// + /// stream identifier + /// + private string _stream = ""; + + private readonly AppManager _mapArgs; + private readonly BackgroundWorker _bgw; + private ProjectionInfo _defaultProjection; + private readonly ProjectionInfo wgs84 = KnownCoordinateSystems.Geographic.World.WGS1984; + private readonly string _localHelpUri = Properties.Settings.Default.localHelpUri; + + #endregion Variables + + /// + /// Occurs when saving the watershed is completed + /// + public event EventHandler Completed; + + #region Constructor + /// + /// Creates a new Save Watershed dialog + /// + /// the DotSpatial AppManager + public SaveWatershed(AppManager mapArgs) + { + InitializeComponent(); + _mapArgs = mapArgs; + + //Setup background worker + _bgw = new BackgroundWorker + { + WorkerSupportsCancellation = false, + WorkerReportsProgress = false + }; + _bgw.DoWork += _bgw_DoWork; + _bgw.RunWorkerCompleted += _bgw_RunWorkerCompleted; + + InitializeShapeFileNames(); + } + + #endregion Constructor + + private void InitializeShapeFileNames() + { + var allLayers = ((Map) _mapArgs.Map).GetAllLayers(); + + tbwshedpoint.Text = GetOrderedText(allLayers, "Watershed Point"); + tbwshed.Text = GetOrderedText(allLayers, "Watershed"); + tbstreamline.Text = GetOrderedText(allLayers, "Reaches"); + } + + private static string GetOrderedText(IEnumerable allLayers, string defaultText) where T : ILegendItem + { + if (!allLayers.Any()) + return defaultText; + var layers = allLayers.OfType() + .Where(layer => (!String.IsNullOrEmpty(layer.LegendText)) && layer.LegendText.StartsWith(defaultText)); + + if (!layers.Any()) + return defaultText; + + int number = 0; + foreach(var layer in layers) + { + // Try extract number + var name = layer.LegendText.Replace(defaultText, String.Empty).Trim(); + if (string.IsNullOrEmpty(name) && number == 0) + { + number = 1; + } + + int n; + if (Int32.TryParse(name, out n)) + number = n + 1; + } + + return string.Format("{0} {1}", defaultText, number); + } + + + #region BackgroundWorker Methods + + private void _bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) + { + try + { + ((Map)_mapArgs.Map).MouseClick -= Mouse_Click; + if (e.Error != null) + { + MessageBox.Show(e.Error.Message); + } + + var result = e.Result as IList; + if (result != null && result.Count == 3 && + result[0] != null && result[1] != null && result[2] != null) + { + _defaultProjection = _mapArgs.Map.Projection; + + var world = new DotSpatial.Projections.GeographicCategories.World(); + var projWorld = new DotSpatial.Projections.ProjectedCategories.World(); + + //This reprojection procedure is critical and important to finally get the correct projection. + foreach (var fs in result) + { + fs.Projection = world.WGS1984; + fs.Reproject(_mapArgs.Map.Projection); + //fs.Reproject(projWorld.WebMercator); + } + + AddEPAShapes(result); + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + finally + { + _mapArgs.Map.Cursor = Cursors.Default; + + // Raise completed event + var handler = Completed; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + } + + private void _bgw_DoWork(object sender, DoWorkEventArgs e) + { + var param = e.Argument as object[]; + e.Result = GetShapes(param); + } + + # endregion + + #region Click_Events + /// + /// When the user clicks OK + /// + private void OK_Click(object sender, EventArgs e) + { + _wshedpoint = tbwshedpoint.Text; + _wshed = tbwshed.Text; + _stream = tbstreamline.Text; + + Application.DoEvents(); + + string folderpath = _mapArgs.SerializationManager.CurrentProjectDirectory; + + if (string.IsNullOrEmpty(folderpath)) + { + folderpath = Path.Combine(Path.GetTempPath(), "HydroDesktop"); + if (!Directory.Exists(folderpath)) + Directory.CreateDirectory(folderpath); + } + + string delineationpath = Path.Combine(folderpath, "Delineation"); + var filename = new string[3]; + filename[0] = _wshedpoint + ".shp"; + filename[1] = _stream + ".shp"; + filename[2] = _wshed + ".shp"; + + if (!Directory.Exists(delineationpath)) + { + Directory.CreateDirectory(delineationpath); + } + + //Specify file names + for (int i = 0; i < filename.Length; i++) + { + string pathi = Path.Combine(delineationpath, filename[i]); + + if (File.Exists(pathi) && (cbxOverwrite.Checked == false)) + { + string message = "File " + pathi + " already exists.\nPlease specify a different name."; + MessageBox.Show(message, "Save Watersheds", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); + return; + } + + switch (i) + { + case 0: + _wshedpoint = pathi; + break; + case 1: + _stream = pathi; + break; + case 2: + _wshed = pathi; + break; + } + } + + _mapArgs.Map.Cursor = Cursors.Cross; + ((Map) _mapArgs.Map).MouseClick += Mouse_Click; + Close(); + } + + /// + /// Opens a help topic for the item in context when the Help button is clicked. + /// + private void SaveDialog_HelpButtonClicked(object sender, CancelEventArgs e) + { + LocalHelp.OpenHelpFile(_localHelpUri); + e.Cancel = true; // Prevents mouse cursor from changing to question mark. + } + + /// + /// Opens a help topic for the item in context when the user presses F1. + /// + private void SaveDialog_HelpRequested(object sender, HelpEventArgs hlpevent) + { + LocalHelp.OpenHelpFile(_localHelpUri); + hlpevent.Handled = true; // Signal that we've handled the help request. + } + + /// + /// Called when Mouse Click occurred on the map + /// + /// + /// + private void Mouse_Click(object sender, MouseEventArgs e) + { + // Make sure we aren't still working on a previous task + if (_bgw.IsBusy) + { + MessageBox.Show("The background worker is busy now. Please try later."); + return; + } + + var _mainMap = _mapArgs.Map as Map; + _defaultProjection = KnownCoordinateSystems.Projected.World.WebMercator; + + //Must satisfy these three prerequisites to trig the delineation + if ((e.Button == MouseButtons.Left) && (_mapArgs.Map.Cursor == Cursors.Cross)) + { + try + { + _mapArgs.Map.Cursor = Cursors.WaitCursor; + + var _mouseLocation = new System.Drawing.Point {X = e.X, Y = e.Y}; + var projCor = _mapArgs.Map.PixelToProj(_mouseLocation); + + var xy = new double[2]; + xy[0] = projCor.X; + xy[1] = projCor.Y; + + var z = new double[1]; + //Try to project here + Reproject.ReprojectPoints(xy, z, _defaultProjection, wgs84, 0, 1); + + projCor.X = xy[0]; + projCor.Y = xy[1]; + + var parameters = new object[2]; + + parameters[0] = projCor; + parameters[1] = _mainMap; + + if (_bgw.IsBusy != true) + { + _bgw.RunWorkerAsync(parameters); + } + } + + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + } + } + + #endregion Click_Events + + #region Methods + + /// + /// Call CallWebService Method to get delineated watershed, and also return the start point. + /// + /// Arguments for backgroundworkers + /// Return a list of featureset including both point and polygon + private IList GetShapes(object[] param) + { + var projCor = (Coordinate)param[0]; + + //For Progress report + var progress = new FmProgress(); + progress.Show(); + Application.DoEvents(); + + //Declare a new CallWebService Client + var trigger = new CallWebService(projCor); + + //Get Start Point Information + object[] startpt = trigger.GetStartPoint(); + + //check if start point successful + if (startpt == null) + { + progress.closeForm(); + return null; + } + + if (progress._isworking == false) + { + progress.updateText(startpt); + } + + //Get delineated watershed + + object[] WshedObj = trigger.GetWsheds(startpt); + + if (WshedObj == null) + { + + try + { + progress.closeForm(); + } + catch (Exception ex) + { + System.Diagnostics.Trace.WriteLine(ex.Message); + } + + return null; + } + + IFeatureSet fsWshed = new FeatureSet(); + + //Delete small marginal polygons if any + try + { + var fsCatchment = (IFeatureSet)WshedObj[0]; + int count = fsCatchment.Features.Count; + if (count > 1) + { + //The last one is the main watershed + for (int i = 0; i < count - 1; i++) + { + fsCatchment.Features.RemoveAt(0); + } + + //Object process could be dangerous to lose Projection info + WshedObj[0] = fsCatchment; + } + + fsWshed = SetAttribute(WshedObj); + } + + catch (Exception ex) + { + // As a bare minimum we should probably log these errors + System.Diagnostics.Trace.WriteLine(ex.Message); + } + + //Get Upstream flowlines + + var StreamObj = trigger.GetLines(startpt); + var fsStream = SetAttribute(StreamObj); + + if (progress._isworking == false) + { + progress.updateText(); + } + + //Create the start point shapefile + var point = new Feature(projCor); + IFeatureSet fsPoint = new FeatureSet(point.FeatureType); + fsPoint.AddFeature(point); + + IList EPAShapes = new List(); + EPAShapes.Add(fsWshed); + EPAShapes.Add(fsStream); + EPAShapes.Add(fsPoint); + + if (progress._isworking == false) + { + try + { + progress.closeForm(); + } + catch (Exception ex) + { + System.Diagnostics.Trace.WriteLine(ex.Message); + } + } + + return EPAShapes; + } + + /// + /// Created for setting attribute table for shapefiles. + /// + /// object[] Attributes including necessary information + /// Returns the IFeatureSet with attribute table filled + private IFeatureSet SetAttribute(object[] attri) + { + if (attri == null) return null; + + var Ifs = attri[0] as IFeatureSet; + var fs = Ifs as FeatureSet; + + //Fill Streamlines' attribute table + if (Ifs.FeatureType == FeatureType.Line) + { + var comid = attri[1] as List; + var reachcode = attri[2] as List; + var totdist = attri[3] as List; + + var Id = new DataColumn("Id"); + var Comid = new DataColumn("Comid"); + var Reachcode = new DataColumn("ReachCode"); + var Totdist = new DataColumn("Length(km)"); + + fs.DataTable.Columns.Add(Id); + fs.DataTable.Columns.Add(Comid); + fs.DataTable.Columns.Add(Reachcode); + fs.DataTable.Columns.Add(Totdist); + + for (int i = 0; i < fs.Features.Count; i++) + { + fs.Features[i].DataRow["Id"] = (i + 1); + fs.Features[i].DataRow["Comid"] = comid[i]; + fs.Features[i].DataRow["ReachCode"] = reachcode[i]; + fs.Features[i].DataRow["Length(km)"] = totdist[i]; + } + } + + else + { + var wshedarea = attri[1] as string; + + var Area = new DataColumn("Area(sq_km)"); + var Id = new DataColumn("Id"); + + fs.DataTable.Columns.Add(Id); + fs.DataTable.Columns.Add(Area); + + if (fs.Features.Count == 1) + { + fs.Features[0].DataRow["Id"] = 1; + fs.Features[0].DataRow["Area(sq_km)"] = wshedarea; + } + else + { + int count = fs.Features.Count; + try + { + for (int i = 0; i < count - 1; i++) + { + fs.Features[i].DataRow.Delete(); + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + + fs.Features[0].DataRow["Id"] = 1; + fs.Features[0].DataRow["Area(sq_km)"] = wshedarea; + } + } + + return fs; + } + + /// + /// Add the start point and the delineated polygon into Map and also save them as shapefiles + /// + /// IList of IFeatureset saving both start point and delineated polygon + private void AddEPAShapes(IEnumerable pointpolygon) + { + if (pointpolygon == null) return; + foreach (IFeatureSet fsset in pointpolygon) + { + //Assign projection here <--Necessary + fsset.Projection = _mapArgs.Map.Projection; + + var indexToInsert = GetPositionToInsertWatershedLayer(); + if (fsset.FeatureType == FeatureType.Point) + { + try + { + //Save featureset as a MapPointLayer + fsset.SaveAs(_wshedpoint, true); + IMapPointLayer point = new MapPointLayer(FeatureSet.Open(_wshedpoint)); + point.LegendText = Path.GetFileNameWithoutExtension(_wshedpoint); + _mapArgs.Map.Layers.Insert(indexToInsert, point); + } + catch (Exception ex) + { + var message = "Failed to add the point." + Environment.NewLine + ex.Message; + MessageBox.Show(message); + } + } + + if (fsset.FeatureType == FeatureType.Line) + { + try + { + //Save featureset as a MapLineLayer + fsset.SaveAs(_stream, true); + IMapLineLayer line = new MapLineLayer(FeatureSet.Open(_stream)); + + line.LegendText = Path.GetFileNameWithoutExtension(_stream); + + var linesymbol = new LineSymbolizer(Color.Blue, 1); + line.Symbolizer = linesymbol; + + _mapArgs.Map.Layers.Insert(indexToInsert, line); + + //fsset.Filename = _stream; + //fsset.Save(); + } + catch (Exception ex) + { + var message = "Failed to add the streamline." + Environment.NewLine + ex.Message; + MessageBox.Show(message); + } + } + + if (fsset.FeatureType == FeatureType.Polygon) + { + try + { + //Effective in solving projection problem to display polygon + string file = _wshed; + + fsset.SaveAs(file, true); + + IFeatureSet polyfs = FeatureSet.Open(file); + + var polysymbol = new PolygonSymbolizer(Color.LightBlue.ToTransparent((float)0.7), Color.DarkBlue); + + IMapPolygonLayer poly = new MapPolygonLayer(polyfs); + poly.Symbolizer = polysymbol; + + _mapArgs.Map.Layers.Insert(indexToInsert, poly); + } + catch (Exception ex) + { + var message = "Failed to add the watershed." + Environment.NewLine + ex.Message; + MessageBox.Show(message); + } + } + } + } + + private int GetPositionToInsertWatershedLayer() + { + // Watershed layers must be inserted below the "Data Sites" group + var dsg = _mapArgs.Map.GetDataSitesLayer(); + if (dsg != null) + return _mapArgs.Map.Layers.IndexOf(dsg); + + return _mapArgs.Map.Layers.Count; + } + + # endregion + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/SaveWatershed.resx b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/SaveWatershed.resx new file mode 100644 index 00000000..c7e0d4bd --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/SaveWatershed.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/app.config b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/app.config new file mode 100644 index 00000000..eb53efbb --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/app.config @@ -0,0 +1,15 @@ + + + + +
    + + + + + + EPA-Delineation.html + + + + diff --git a/Source/Plugins/HydroDesktop.Plugins.EPADelineation/packages.config b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/packages.config new file mode 100644 index 00000000..ddd0faf1 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EPADelineation/packages.config @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/AddNewPoint.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/AddNewPoint.Designer.vb new file mode 100644 index 00000000..cffa30cd --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/AddNewPoint.Designer.vb @@ -0,0 +1,217 @@ +Imports HydroDesktop.Plugins.EditView + +Namespace HydroDesktop.Plugins.Controls + + _ + Partial Class AddNewPoint + Inherits System.Windows.Forms.Form + Public _cEditView As Controls.EditView + Public _FirstDate As DateTime + Public _SecondDate As DateTime + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim DataGridViewCellStyle9 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle10 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle11 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle12 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle13 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle14 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle15 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle16 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Me.ConfigBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.btnAdd = New System.Windows.Forms.Button() + Me.dgvNewPoints = New System.Windows.Forms.DataGridView() + Me.ValueID = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.SeriesID = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.DataValue = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.ValueAccuracy = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.LocalDateTime = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.UTCOffset = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.DateTimeUTC = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.OffsetValue = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.CensorCode = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.lblHelp = New System.Windows.Forms.Label() + Me.lblError = New System.Windows.Forms.Label() + Me.btnCancel = New System.Windows.Forms.Button() + CType(Me.ConfigBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.dgvNewPoints, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'ConfigBindingSource + ' + Me.ConfigBindingSource.DataSource = GetType(HydroDesktop.Configuration.Settings) + ' + 'btnAdd + ' + Me.btnAdd.Location = New System.Drawing.Point(224, 198) + Me.btnAdd.Name = "btnAdd" + Me.btnAdd.Size = New System.Drawing.Size(274, 23) + Me.btnAdd.TabIndex = 4 + Me.btnAdd.Text = "Add" + Me.btnAdd.UseVisualStyleBackColor = True + ' + 'dgvNewPoints + ' + Me.dgvNewPoints.AllowUserToAddRows = False + Me.dgvNewPoints.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvNewPoints.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.ValueID, Me.SeriesID, Me.DataValue, Me.ValueAccuracy, Me.LocalDateTime, Me.UTCOffset, Me.DateTimeUTC, Me.OffsetValue, Me.CensorCode}) + Me.dgvNewPoints.Dock = System.Windows.Forms.DockStyle.Top + Me.dgvNewPoints.Location = New System.Drawing.Point(0, 0) + Me.dgvNewPoints.Name = "dgvNewPoints" + Me.dgvNewPoints.Size = New System.Drawing.Size(823, 167) + Me.dgvNewPoints.TabIndex = 5 + ' + 'ValueID + ' + DataGridViewCellStyle9.Format = "N0" + DataGridViewCellStyle9.NullValue = Nothing + Me.ValueID.DefaultCellStyle = DataGridViewCellStyle9 + Me.ValueID.HeaderText = "ValueID" + Me.ValueID.Name = "ValueID" + Me.ValueID.Visible = False + ' + 'SeriesID + ' + DataGridViewCellStyle10.Format = "N0" + DataGridViewCellStyle10.NullValue = Nothing + Me.SeriesID.DefaultCellStyle = DataGridViewCellStyle10 + Me.SeriesID.HeaderText = "SeriesID" + Me.SeriesID.Name = "SeriesID" + Me.SeriesID.Visible = False + ' + 'DataValue + ' + DataGridViewCellStyle11.Format = "N6" + DataGridViewCellStyle11.NullValue = Nothing + Me.DataValue.DefaultCellStyle = DataGridViewCellStyle11 + Me.DataValue.HeaderText = "DataValue" + Me.DataValue.Name = "DataValue" + ' + 'ValueAccuracy + ' + DataGridViewCellStyle12.Format = "N6" + Me.ValueAccuracy.DefaultCellStyle = DataGridViewCellStyle12 + Me.ValueAccuracy.HeaderText = "ValueAccuracy" + Me.ValueAccuracy.Name = "ValueAccuracy" + ' + 'LocalDateTime + ' + DataGridViewCellStyle13.Format = "G" + DataGridViewCellStyle13.NullValue = Nothing + Me.LocalDateTime.DefaultCellStyle = DataGridViewCellStyle13 + Me.LocalDateTime.HeaderText = "LocalDateTime" + Me.LocalDateTime.Name = "LocalDateTime" + ' + 'UTCOffset + ' + DataGridViewCellStyle14.Format = "N6" + DataGridViewCellStyle14.NullValue = Nothing + Me.UTCOffset.DefaultCellStyle = DataGridViewCellStyle14 + Me.UTCOffset.HeaderText = "UTCOffset" + Me.UTCOffset.Name = "UTCOffset" + ' + 'DateTimeUTC + ' + DataGridViewCellStyle15.Format = "G" + DataGridViewCellStyle15.NullValue = Nothing + Me.DateTimeUTC.DefaultCellStyle = DataGridViewCellStyle15 + Me.DateTimeUTC.HeaderText = "DateTimeUTC" + Me.DateTimeUTC.Name = "DateTimeUTC" + ' + 'OffsetValue + ' + DataGridViewCellStyle16.Format = "N6" + Me.OffsetValue.DefaultCellStyle = DataGridViewCellStyle16 + Me.OffsetValue.HeaderText = "OffsetValue" + Me.OffsetValue.Name = "OffsetValue" + ' + 'CensorCode + ' + Me.CensorCode.HeaderText = "CensorCode" + Me.CensorCode.Name = "CensorCode" + ' + 'lblHelp + ' + Me.lblHelp.Location = New System.Drawing.Point(12, 171) + Me.lblHelp.Name = "lblHelp" + Me.lblHelp.Size = New System.Drawing.Size(206, 71) + Me.lblHelp.TabIndex = 6 + Me.lblHelp.Text = "Please enter all cells in correct format. You can see the formats in the first ro" & _ + "w. The second row shows you a sample. The yellow cells should have data." + ' + 'lblError + ' + Me.lblError.AutoSize = True + Me.lblError.Location = New System.Drawing.Point(318, 174) + Me.lblError.Name = "lblError" + Me.lblError.Size = New System.Drawing.Size(0, 13) + Me.lblError.TabIndex = 7 + ' + 'btnCancel + ' + Me.btnCancel.Location = New System.Drawing.Point(504, 198) + Me.btnCancel.Name = "btnCancel" + Me.btnCancel.Size = New System.Drawing.Size(274, 23) + Me.btnCancel.TabIndex = 8 + Me.btnCancel.Text = "Cancel" + Me.btnCancel.UseVisualStyleBackColor = True + ' + 'AddNewPoint + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(823, 229) + Me.Controls.Add(Me.btnCancel) + Me.Controls.Add(Me.lblError) + Me.Controls.Add(Me.lblHelp) + Me.Controls.Add(Me.dgvNewPoints) + Me.Controls.Add(Me.btnAdd) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "AddNewPoint" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Add New Point" + CType(Me.ConfigBindingSource, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.dgvNewPoints, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ConfigBindingSource As System.Windows.Forms.BindingSource + Friend WithEvents btnAdd As System.Windows.Forms.Button + Friend WithEvents dgvNewPoints As System.Windows.Forms.DataGridView + Friend WithEvents lblHelp As System.Windows.Forms.Label + Friend WithEvents lblError As System.Windows.Forms.Label + Friend WithEvents ValueID As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents SeriesID As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents DataValue As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents ValueAccuracy As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents LocalDateTime As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents UTCOffset As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents DateTimeUTC As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents OffsetValue As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents CensorCode As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents btnCancel As System.Windows.Forms.Button + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/AddNewPoint.resx b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/AddNewPoint.resx new file mode 100644 index 00000000..bd69fd33 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/AddNewPoint.resx @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/AddNewPoint.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/AddNewPoint.vb new file mode 100644 index 00000000..838716a9 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/AddNewPoint.vb @@ -0,0 +1,295 @@ +Imports HydroDesktop.Database +Imports HydroDesktop.Interfaces + +Namespace HydroDesktop.Plugins.Controls + Public Class AddNewPoint + Public Sub New() + + InitializeComponent() + initialize() + + End Sub + + Private Sub initialize() + + 'OffsetType Column + Dim dtOffsetTypes = RepositoryFactory.Instance.Get(Of IOffsetTypesRepository)().AsDataTable() + dtOffsetTypes.Rows.Add() + dtOffsetTypes.Rows(dtOffsetTypes.Rows.Count - 1)("OffsetDescription") = "No Offset Type" + dtOffsetTypes.Rows(dtOffsetTypes.Rows.Count - 1)("OffsetTypeID") = 0 + Dim OffsetType As New Windows.Forms.DataGridViewComboBoxColumn + OffsetType.Name = "OffsetType" + OffsetType.HeaderText = "OffsetType" + OffsetType.DataPropertyName = "OffsetType" + OffsetType.DataSource = dtOffsetTypes + OffsetType.DisplayMember = "OffsetDescription" + OffsetType.ValueMember = "OffsetTypeID" + dgvNewPoints.Columns.Add(OffsetType) + + 'Qualifier Column + Dim dtQualifiers = RepositoryFactory.Instance.Get(Of IQualifiersRepository).AsDataTable() + dtQualifiers.Rows.Add() + dtQualifiers.Rows(dtQualifiers.Rows.Count - 1)("QualifierCode") = "No Qualifier" + dtQualifiers.Rows(dtQualifiers.Rows.Count - 1)("QualifierID") = 0 + Dim Qualifier As New Windows.Forms.DataGridViewComboBoxColumn + Qualifier.Name = "Qualifier" + Qualifier.HeaderText = "Qualifier" + Qualifier.DataPropertyName = "Qualifier" + Qualifier.DataSource = dtQualifiers + Qualifier.DisplayMember = "QualifierCode" + Qualifier.ValueMember = "QualifierID" + dgvNewPoints.Columns.Add(Qualifier) + + 'Sample Column + Dim dtSamples = RepositoryFactory.Instance.Get(Of ISamplesRepository).AsDataTable() + dtSamples.Rows.Add() + dtSamples.Rows(dtSamples.Rows.Count - 1)("SampleType") = "No Sample" + dtSamples.Rows(dtSamples.Rows.Count - 1)("SampleID") = 0 + Dim Sample As New Windows.Forms.DataGridViewComboBoxColumn + Sample.Name = "Sample" + Sample.HeaderText = "Sample" + Sample.DataPropertyName = "Sample" + Sample.DataSource = dtSamples + Sample.DisplayMember = "SampleType" + Sample.ValueMember = "SampleID" + dgvNewPoints.Columns.Add(Sample) + + 'File Column + Dim dtFiles = RepositoryFactory.Instance.Get(Of IDataFilesRepository).AsDataTable() + dtFiles.Rows.Add() + dtFiles.Rows(dtFiles.Rows.Count - 1)("FileName") = "No File" + dtFiles.Rows(dtFiles.Rows.Count - 1)("FileID") = 0 + Dim File As New Windows.Forms.DataGridViewComboBoxColumn + File.Name = "File" + File.HeaderText = "File" + File.DataPropertyName = "File" + File.DataSource = dtFiles + File.DisplayMember = "FileName" + File.ValueMember = "FileID" + dgvNewPoints.Columns.Add(File) + + + + 'First row to show user the format of each cell + dgvNewPoints.Rows.Add() + dgvNewPoints.Rows(0).Cells("DataValue").Value = "Decimal" + dgvNewPoints.Rows(0).Cells("ValueAccuracy").Value = "Decimal" + dgvNewPoints.Rows(0).Cells("LocalDateTime").Value = "M/d/yyyy h:mm:ss tt" + dgvNewPoints.Rows(0).Cells("UTCOffset").Value = "Decimal" + dgvNewPoints.Rows(0).Cells("DateTimeUTC").Value = "M/d/yyyy h:mm:ss tt" + dgvNewPoints.Rows(0).Cells("OffsetValue").Value = "Decimal" + dgvNewPoints.Rows(0).Cells("CensorCode").Value = "String" + + + 'Second row to show user a sample of format + dgvNewPoints.Rows.Add() + dgvNewPoints.Rows(1).Cells("DataValue").Value = "68.55" + dgvNewPoints.Rows(1).Cells("ValueAccuracy").Value = "0" + dgvNewPoints.Rows(1).Cells("LocalDateTime").Value = "7/30/1988 5:30:30 PM" + dgvNewPoints.Rows(1).Cells("UTCOffset").Value = "5" + dgvNewPoints.Rows(1).Cells("DateTimeUTC").Value = "7/30/1988 10:30:30 PM" + dgvNewPoints.Rows(1).Cells("OffsetValue").Value = "5" + dgvNewPoints.Rows(1).Cells("CensorCode").Value = "nc" + + + 'Setting the format of first two rows + dgvNewPoints.Rows(0).ReadOnly = True + dgvNewPoints.Rows(1).ReadOnly = True + dgvNewPoints.Rows(0).DefaultCellStyle.BackColor = Drawing.Color.Wheat + dgvNewPoints.Rows(1).DefaultCellStyle.BackColor = Drawing.Color.Wheat + + 'Setting the format of "not null" columns + dgvNewPoints.Columns("DataValue").DefaultCellStyle.BackColor = Drawing.Color.Yellow + dgvNewPoints.Columns("LocalDateTime").DefaultCellStyle.BackColor = Drawing.Color.Yellow + dgvNewPoints.Columns("UTCOffset").DefaultCellStyle.BackColor = Drawing.Color.Yellow + dgvNewPoints.Columns("DateTimeUTC").DefaultCellStyle.BackColor = Drawing.Color.Yellow + + 'Make the Grid View to add new row for user to add new points + dgvNewPoints.AllowUserToAddRows = True + + End Sub + + Public Sub AutoDateTime() + 'set default datetime if two points are selected + If Not _FirstDate = Nothing And Not _SecondDate = Nothing Then + Dim ldt As DateTime + + ldt = DateTime.FromBinary(Math.Abs(_SecondDate.ToBinary - _FirstDate.ToBinary) / 2 + _FirstDate.ToBinary) + dgvNewPoints.Rows.Add() + dgvNewPoints.Rows(2).Cells("LocalDateTime").Value = ldt + + End If + End Sub + + Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnAdd.Click + Dim BeginningRow As Integer = 0 + Dim validate As Boolean = True + Dim dt As DataTable + Dim AddingRowsCount As Integer = 0 + 'Dim p As PointPair + 'Dim tempp As PointPair + 'Dim k As Integer + + + 'Count if the first two description rows exist. User can delete these two rows. + For i As Integer = 0 To 1 + If dgvNewPoints.Rows(i).DefaultCellStyle.BackColor = Drawing.Color.Wheat Then + BeginningRow += 1 + End If + Next + + 'Set all boxes' style to default + For i As Integer = BeginningRow To dgvNewPoints.Rows.Count - 2 + For j As Integer = 0 To dgvNewPoints.Columns.Count - 1 + dgvNewPoints.Rows(i).Cells(j).Style.ApplyStyle(dgvNewPoints.Columns(j).DefaultCellStyle) + Next + Next + + + 'Main function + If dgvNewPoints.Rows.Count - BeginningRow > 1 Then + 'Validation + For i As Integer = BeginningRow To dgvNewPoints.Rows.Count - 2 + If Not IsNumeric(dgvNewPoints.Rows(i).Cells("DataValue").Value) Then + dgvNewPoints.Rows(i).Cells("DataValue").Style.BackColor = Drawing.Color.Red + validate = False + End If + If Not IsNumeric(dgvNewPoints.Rows(i).Cells("ValueAccuracy").Value) And Not dgvNewPoints.Rows(i).Cells("ValueAccuracy").Value = Nothing Then + dgvNewPoints.Rows(i).Cells("ValueAccuracy").Style.BackColor = Drawing.Color.Red + validate = False + End If + If Not IsDateTime(dgvNewPoints.Rows(i).Cells("LocalDateTime").Value) Then + dgvNewPoints.Rows(i).Cells("LocalDateTime").Style.BackColor = Drawing.Color.Red + validate = False + End If + If Not IsNumeric(dgvNewPoints.Rows(i).Cells("UTCOffset").Value) Then + dgvNewPoints.Rows(i).Cells("UTCOffset").Style.BackColor = Drawing.Color.Red + validate = False + End If + If Not IsDateTime(dgvNewPoints.Rows(i).Cells("DateTimeUTC").Value) Then + dgvNewPoints.Rows(i).Cells("DateTimeUTC").Style.BackColor = Drawing.Color.Red + validate = False + End If + If Not IsNumeric(dgvNewPoints.Rows(i).Cells("OffsetValue").Value) And Not dgvNewPoints.Rows(i).Cells("OffsetValue").Value = Nothing Then + dgvNewPoints.Rows(i).Cells("OffsetValue").Style.BackColor = Drawing.Color.Red + validate = False + End If + Next + + If validate Then + + dt = _cEditView.Editdt + 'Count the Adding rows which already exist before this time of adding + For i As Integer = 0 To dt.Rows.Count - 1 + If Not dt.Rows(i).RowState = DataRowState.Deleted Then + If dt.Rows(i)("Other") = 1 Then + AddingRowsCount += 1 + End If + End If + + Next + + Dim dataValuesRepo = RepositoryFactory.Instance.Get(Of IDataValuesRepository)() + Dim qualifiersRepo = RepositoryFactory.Instance.Get(Of IQualifiersRepository)() + For i As Integer = BeginningRow To dgvNewPoints.Rows.Count - 2 + + dt.Rows.Add() + dt.Rows(dt.Rows.Count - 1)("ValueID") = dataValuesRepo.GetNextID() + AddingRowsCount + dt.Rows(dt.Rows.Count - 1)("SeriesID") = _cEditView.newseriesID + dt.Rows(dt.Rows.Count - 1)("DataValue") = dgvNewPoints.Rows(i).Cells("DataValue").Value + If Not (dgvNewPoints.Rows(i).Cells("ValueAccuracy").Value = Nothing) Then + dt.Rows(dt.Rows.Count - 1)("ValueAccuracy") = dgvNewPoints.Rows(i).Cells("ValueAccuracy").Value + Else + dt.Rows(dt.Rows.Count - 1)("ValueAccuracy") = 0 + End If + dt.Rows(dt.Rows.Count - 1)("LocalDateTime") = Convert.ToDateTime(dgvNewPoints.Rows(i).Cells("LocalDateTime").Value) 'DateTime.ParseExact(dgvNewPoints.Rows(i).Cells("LocalDateTime").Value.ToString, "M/d/yyyy h:mm:ss tt", Nothing) + dt.Rows(dt.Rows.Count - 1)("UTCOffset") = dgvNewPoints.Rows(i).Cells("UTCOffset").Value + dt.Rows(dt.Rows.Count - 1)("DateTimeUTC") = Convert.ToDateTime(dgvNewPoints.Rows(i).Cells("DateTimeUTC").Value) 'DateTime.ParseExact(dgvNewPoints.Rows(i).Cells("DateTimeUTC").Value.ToString, "M/d/yyyy h:mm:ss tt", Nothing) + If Not dgvNewPoints.Rows(i).Cells("OffsetValue").Value = Nothing Then + dt.Rows(dt.Rows.Count - 1)("OffsetValue") = dgvNewPoints.Rows(i).Cells("OffsetValue").Value + End If + If Not dgvNewPoints.Rows(i).Cells("CensorCode").Value = Nothing Then + dt.Rows(dt.Rows.Count - 1)("CensorCode") = dgvNewPoints.Rows(i).Cells("CensorCode").Value + End If + If Not dgvNewPoints.Rows(i).Cells("OffsetType").Value = Nothing And Not dgvNewPoints.Rows(i).Cells("OffsetType").Value = 0 Then + dt.Rows(dt.Rows.Count - 1)("OffsetType") = dgvNewPoints.Rows(i).Cells("OffsetType").Value + End If + If Not dgvNewPoints.Rows(i).Cells("Qualifier").Value = Nothing And Not dgvNewPoints.Rows(i).Cells("Qualifier").Value = 0 Then + dt.Rows(dt.Rows.Count - 1)("QualifierCode") = qualifiersRepo.GetByKey(dgvNewPoints.Rows(i).Cells("Qualifier").Value).Code + Else + dt.Rows(dt.Rows.Count - 1)("QualifierCode") = "Added point" + End If + If Not dgvNewPoints.Rows(i).Cells("Sample").Value = Nothing And Not dgvNewPoints.Rows(i).Cells("Sample").Value = 0 Then + dt.Rows(dt.Rows.Count - 1)("SampleID") = dgvNewPoints.Rows(i).Cells("Sample").Value + End If + If Not dgvNewPoints.Rows(i).Cells("File").Value = Nothing And Not dgvNewPoints.Rows(i).Cells("File").Value = 0 Then + dt.Rows(dt.Rows.Count - 1)("FileID") = dgvNewPoints.Rows(i).Cells("File").Value + End If + dt.Rows(dt.Rows.Count - 1)("Other") = 1 + AddingRowsCount += 1 + Next + + _cEditView.RefreshDataGridView() + _cEditView.pTimeSeriesPlot.ReplotEditingCurve(_cEditView) + + Close() + Else + lblError.Text = "The red boxes have problems. Please fix them and then try again." + lblError.BackColor = Drawing.Color.Red + End If + + End If + + + End Sub + + 'setting default value of some columns + Private Sub dgvNewPoints_RowsAdded(ByVal sender As System.Object, ByVal e As Windows.Forms.DataGridViewRowsAddedEventArgs) Handles dgvNewPoints.RowsAdded + With dgvNewPoints.Rows(e.RowIndex) + '.Cells("UTCOffset").Value = 0 + .Cells("CensorCode").Value = "nc" + End With + End Sub + + Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnCancel.Click + Close() + End Sub + + Private Function IsDateTime(ByVal value As String) As Boolean + Try + DateTime.ParseExact(value, "M/d/yyyy h:mm:ss tt", Nothing) + Return True + Catch ex As Exception + Return False + End Try + End Function + + Private Sub dgvNewPoints_CellValueChanged(ByVal sender As System.Object, ByVal e As Windows.Forms.DataGridViewCellEventArgs) Handles dgvNewPoints.CellValueChanged + If e.ColumnIndex <= 6 And e.ColumnIndex >= 4 And e.RowIndex >= 0 Then + Dim LocalDateTime As DateTime + Dim UTCOffset As Double + Dim DateTimeUTC As DateTime + + If IsDateTime(dgvNewPoints.Rows(e.RowIndex).Cells("LocalDateTime").Value) Then + LocalDateTime = dgvNewPoints.Rows(e.RowIndex).Cells("LocalDateTime").Value + End If + If IsNumeric(dgvNewPoints.Rows(e.RowIndex).Cells("UTCOffset").Value) Then + UTCOffset = dgvNewPoints.Rows(e.RowIndex).Cells("UTCOffset").Value + End If + If IsDateTime(dgvNewPoints.Rows(e.RowIndex).Cells("DateTimeUTC").Value) Then + DateTimeUTC = dgvNewPoints.Rows(e.RowIndex).Cells("DateTimeUTC").Value + End If + + + If Not LocalDateTime = Nothing And (Not UTCOffset = Nothing Or UTCOffset = 0) Then + dgvNewPoints.Rows(e.RowIndex).Cells("DateTimeUTC").Value = LocalDateTime.AddHours(-UTCOffset) + ElseIf (Not UTCOffset = Nothing Or UTCOffset = 0) And Not DateTimeUTC = Nothing Then + dgvNewPoints.Rows(e.RowIndex).Cells("LocalDateTime").Value = DateTimeUTC.AddHours(UTCOffset) + ElseIf Not LocalDateTime = Nothing And Not DateTimeUTC = Nothing Then + dgvNewPoints.Rows(e.RowIndex).Cells("UTCOffset").Value = -((DateTimeUTC - LocalDateTime).TotalHours) + End If + End If + End Sub + + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/ChangeYValue.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/ChangeYValue.Designer.vb new file mode 100644 index 00000000..951b8f3d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/ChangeYValue.Designer.vb @@ -0,0 +1,104 @@ +Imports HydroDesktop.Plugins.EditView + +Namespace HydroDesktop.Plugins.Controls + + _ + Partial Class ChangeYValue + Inherits System.Windows.Forms.Form + Public _cEditView As EditView + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container + Me.ConfigBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.txtValue = New System.Windows.Forms.TextBox + Me.btnApplyChange = New System.Windows.Forms.Button + Me.ddlMethod = New System.Windows.Forms.ComboBox + Me.btnCancel = New System.Windows.Forms.Button + CType(Me.ConfigBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'ConfigBindingSource + ' + Me.ConfigBindingSource.DataSource = GetType(HydroDesktop.Configuration.Settings) + ' + 'txtValue + ' + Me.txtValue.Location = New System.Drawing.Point(122, 12) + Me.txtValue.Name = "txtValue" + Me.txtValue.Size = New System.Drawing.Size(100, 20) + Me.txtValue.TabIndex = 2 + ' + 'btnApplyChange + ' + Me.btnApplyChange.Location = New System.Drawing.Point(13, 46) + Me.btnApplyChange.Name = "btnApplyChange" + Me.btnApplyChange.Size = New System.Drawing.Size(103, 23) + Me.btnApplyChange.TabIndex = 4 + Me.btnApplyChange.Text = "Apply" + Me.btnApplyChange.UseVisualStyleBackColor = True + ' + 'ddlMethod + ' + Me.ddlMethod.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.ddlMethod.FormattingEnabled = True + Me.ddlMethod.Items.AddRange(New Object() {"Add", "Subtract", "Multiply", "Set value to"}) + Me.ddlMethod.Location = New System.Drawing.Point(13, 11) + Me.ddlMethod.Name = "ddlMethod" + Me.ddlMethod.Size = New System.Drawing.Size(103, 21) + Me.ddlMethod.TabIndex = 9 + ' + 'btnCancel + ' + Me.btnCancel.Location = New System.Drawing.Point(122, 46) + Me.btnCancel.Name = "btnCancel" + Me.btnCancel.Size = New System.Drawing.Size(100, 23) + Me.btnCancel.TabIndex = 10 + Me.btnCancel.Text = "Cancel" + Me.btnCancel.UseVisualStyleBackColor = True + ' + 'fChangeYValue + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(234, 83) + Me.Controls.Add(Me.btnCancel) + Me.Controls.Add(Me.ddlMethod) + Me.Controls.Add(Me.btnApplyChange) + Me.Controls.Add(Me.txtValue) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "fChangeYValue" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Change Y Value" + CType(Me.ConfigBindingSource, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ConfigBindingSource As System.Windows.Forms.BindingSource + Friend WithEvents txtValue As System.Windows.Forms.TextBox + Friend WithEvents btnApplyChange As System.Windows.Forms.Button + Friend WithEvents ddlMethod As System.Windows.Forms.ComboBox + Friend WithEvents btnCancel As System.Windows.Forms.Button + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/ChangeYValue.resx b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/ChangeYValue.resx new file mode 100644 index 00000000..61f0dab2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/ChangeYValue.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/ChangeYValue.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/ChangeYValue.vb new file mode 100644 index 00000000..dccaf8b0 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/ChangeYValue.vb @@ -0,0 +1,72 @@ + +Namespace HydroDesktop.Plugins.Controls + + Public Class ChangeYValue + Public Sub New() + + InitializeComponent() + ddlMethod.SelectedItem = ddlMethod.Items(0) + End Sub + + Private Sub btnApplyChange_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnApplyChange.Click + Dim changed As Boolean = False + + 'Validation + If Not IsNumeric(txtValue.Text) Then + MsgBox("Please enter numbers") + Exit Sub + End If + + 'Call Function + 'If _cEditView.pTimeSeriesPlot.HasEditingCurve Then + ' Select Case ddlMethod.SelectedIndex + ' Case 0 + ' _cEditView.pTimeSeriesPlot.ChangeValueByAddOrMinus(True, txtValue.Text) + ' changed = True + ' Case 1 + ' _cEditView.pTimeSeriesPlot.ChangeValueByAddOrMinus(False, txtValue.Text) + ' changed = True + ' Case 2 + ' _cEditView.pTimeSeriesPlot.ChangeValueByMultiply(txtValue.Text) + ' changed = True + ' Case 3 + ' _cEditView.pTimeSeriesPlot.ChangeValueBySettingValue(txtValue.Text) + ' changed = True + ' End Select + 'End If + Select Case ddlMethod.SelectedIndex + Case 0 + _cEditView.ChangeValueByAddOrMinus(True, txtValue.Text) + changed = True + Case 1 + _cEditView.ChangeValueByAddOrMinus(False, txtValue.Text) + changed = True + Case 2 + _cEditView.ChangeValueByMultiply(txtValue.Text) + changed = True + Case 3 + _cEditView.ChangeValueBySettingValue(txtValue.Text) + changed = True + End Select + + + 'update Edit View + If changed Then + 'If _cEditView.pTimeSeriesPlot.HasEditingCurve Then + ' _cEditView.ReflectChanges() + 'End If + _cEditView.RefreshDataGridView() + _cEditView.pTimeSeriesPlot.ReplotEditingCurve(_cEditView) + Close() + End If + End Sub + + Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnCancel.Click + Close() + End Sub + + Private Sub Leaving() Handles Me.Deactivate + 'Me.Close() + End Sub + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/DeriveNewDataSeries.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/DeriveNewDataSeries.Designer.vb new file mode 100644 index 00000000..461525b9 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/DeriveNewDataSeries.Designer.vb @@ -0,0 +1,604 @@ +Imports HydroDesktop.Plugins.EditView + +Namespace HydroDesktop.Plugins.Controls + + _ + Partial Class DeriveNewDataSeries + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.btnNewSeries = New System.Windows.Forms.Button() + Me.ConfigBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.lblMethods = New System.Windows.Forms.Label() + Me.ddlMethods = New System.Windows.Forms.ComboBox() + Me.btnMethods = New System.Windows.Forms.Button() + Me.lblComment = New System.Windows.Forms.Label() + Me.txtComment = New System.Windows.Forms.TextBox() + Me.gboxgeneral = New System.Windows.Forms.GroupBox() + Me.lblQualityControlLevel = New System.Windows.Forms.Label() + Me.ddlQualityControlLevel = New System.Windows.Forms.ComboBox() + Me.btnQualityControlLevel = New System.Windows.Forms.Button() + Me.lblVariable = New System.Windows.Forms.Label() + Me.btnVariable = New System.Windows.Forms.Button() + Me.ddlVariable = New System.Windows.Forms.ComboBox() + Me.btnBackToOriginal = New System.Windows.Forms.Button() + Me.gboxDeriveOption = New System.Windows.Forms.GroupBox() + Me.rbtnAlgebraic = New System.Windows.Forms.RadioButton() + Me.gboxAlgebraic = New System.Windows.Forms.GroupBox() + Me.lblE = New System.Windows.Forms.Label() + Me.txtF = New System.Windows.Forms.TextBox() + Me.lblD = New System.Windows.Forms.Label() + Me.txtE = New System.Windows.Forms.TextBox() + Me.lblC = New System.Windows.Forms.Label() + Me.txtD = New System.Windows.Forms.TextBox() + Me.lblB = New System.Windows.Forms.Label() + Me.txtC = New System.Windows.Forms.TextBox() + Me.lblA = New System.Windows.Forms.Label() + Me.txtB = New System.Windows.Forms.TextBox() + Me.lbl1 = New System.Windows.Forms.Label() + Me.txtA = New System.Windows.Forms.TextBox() + Me.lblY = New System.Windows.Forms.Label() + Me.rbtnAggregate = New System.Windows.Forms.RadioButton() + Me.gboxAggregate = New System.Windows.Forms.GroupBox() + Me.Panel2 = New System.Windows.Forms.Panel() + Me.rbtnDaily = New System.Windows.Forms.RadioButton() + Me.rbtnQuarterly = New System.Windows.Forms.RadioButton() + Me.rbtnMonthly = New System.Windows.Forms.RadioButton() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.rbtnSum = New System.Windows.Forms.RadioButton() + Me.rbtnMaximum = New System.Windows.Forms.RadioButton() + Me.rbtnAverage = New System.Windows.Forms.RadioButton() + Me.rbtnMinimum = New System.Windows.Forms.RadioButton() + Me.rbtnCopy = New System.Windows.Forms.RadioButton() + Me.btnCancel = New System.Windows.Forms.Button() + CType(Me.ConfigBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() + Me.gboxgeneral.SuspendLayout() + Me.gboxDeriveOption.SuspendLayout() + Me.gboxAlgebraic.SuspendLayout() + Me.gboxAggregate.SuspendLayout() + Me.Panel2.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.SuspendLayout() + ' + 'btnNewSeries + ' + Me.btnNewSeries.Location = New System.Drawing.Point(12, 350) + Me.btnNewSeries.Name = "btnNewSeries" + Me.btnNewSeries.Size = New System.Drawing.Size(340, 37) + Me.btnNewSeries.TabIndex = 0 + Me.btnNewSeries.Text = "New Data Series" + Me.btnNewSeries.UseVisualStyleBackColor = True + ' + 'ConfigBindingSource + ' + Me.ConfigBindingSource.DataSource = GetType(HydroDesktop.Configuration.Settings) + ' + 'lblMethods + ' + Me.lblMethods.AutoSize = True + Me.lblMethods.Location = New System.Drawing.Point(6, 16) + Me.lblMethods.Name = "lblMethods" + Me.lblMethods.Size = New System.Drawing.Size(76, 13) + Me.lblMethods.TabIndex = 3 + Me.lblMethods.Text = "Using Method:" + ' + 'ddlMethods + ' + Me.ddlMethods.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.ddlMethods.FormattingEnabled = True + Me.ddlMethods.Location = New System.Drawing.Point(9, 33) + Me.ddlMethods.Name = "ddlMethods" + Me.ddlMethods.Size = New System.Drawing.Size(133, 21) + Me.ddlMethods.TabIndex = 4 + ' + 'btnMethods + ' + Me.btnMethods.Location = New System.Drawing.Point(9, 59) + Me.btnMethods.Name = "btnMethods" + Me.btnMethods.Size = New System.Drawing.Size(133, 23) + Me.btnMethods.TabIndex = 6 + Me.btnMethods.Text = "Edit Method" + Me.btnMethods.UseVisualStyleBackColor = True + ' + 'lblComment + ' + Me.lblComment.AutoSize = True + Me.lblComment.Location = New System.Drawing.Point(456, 16) + Me.lblComment.Name = "lblComment" + Me.lblComment.Size = New System.Drawing.Size(54, 13) + Me.lblComment.TabIndex = 7 + Me.lblComment.Text = "Comment:" + ' + 'txtComment + ' + Me.txtComment.Location = New System.Drawing.Point(459, 32) + Me.txtComment.Multiline = True + Me.txtComment.Name = "txtComment" + Me.txtComment.Size = New System.Drawing.Size(218, 50) + Me.txtComment.TabIndex = 8 + ' + 'gboxgeneral + ' + Me.gboxgeneral.Controls.Add(Me.lblQualityControlLevel) + Me.gboxgeneral.Controls.Add(Me.ddlQualityControlLevel) + Me.gboxgeneral.Controls.Add(Me.btnQualityControlLevel) + Me.gboxgeneral.Controls.Add(Me.lblVariable) + Me.gboxgeneral.Controls.Add(Me.btnVariable) + Me.gboxgeneral.Controls.Add(Me.ddlVariable) + Me.gboxgeneral.Controls.Add(Me.btnBackToOriginal) + Me.gboxgeneral.Controls.Add(Me.txtComment) + Me.gboxgeneral.Controls.Add(Me.lblComment) + Me.gboxgeneral.Controls.Add(Me.lblMethods) + Me.gboxgeneral.Controls.Add(Me.btnMethods) + Me.gboxgeneral.Controls.Add(Me.ddlMethods) + Me.gboxgeneral.Location = New System.Drawing.Point(12, 214) + Me.gboxgeneral.Name = "gboxgeneral" + Me.gboxgeneral.Size = New System.Drawing.Size(683, 130) + Me.gboxgeneral.TabIndex = 9 + Me.gboxgeneral.TabStop = False + Me.gboxgeneral.Text = "General" + ' + 'lblQualityControlLevel + ' + Me.lblQualityControlLevel.AutoSize = True + Me.lblQualityControlLevel.Location = New System.Drawing.Point(285, 16) + Me.lblQualityControlLevel.Name = "lblQualityControlLevel" + Me.lblQualityControlLevel.Size = New System.Drawing.Size(103, 13) + Me.lblQualityControlLevel.TabIndex = 14 + Me.lblQualityControlLevel.Text = "Quality Control level:" + ' + 'ddlQualityControlLevel + ' + Me.ddlQualityControlLevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.ddlQualityControlLevel.FormattingEnabled = True + Me.ddlQualityControlLevel.Location = New System.Drawing.Point(288, 32) + Me.ddlQualityControlLevel.Name = "ddlQualityControlLevel" + Me.ddlQualityControlLevel.Size = New System.Drawing.Size(136, 21) + Me.ddlQualityControlLevel.TabIndex = 13 + ' + 'btnQualityControlLevel + ' + Me.btnQualityControlLevel.Location = New System.Drawing.Point(288, 59) + Me.btnQualityControlLevel.Name = "btnQualityControlLevel" + Me.btnQualityControlLevel.Size = New System.Drawing.Size(140, 23) + Me.btnQualityControlLevel.TabIndex = 15 + Me.btnQualityControlLevel.Text = "Edit Quality Control Level" + Me.btnQualityControlLevel.UseVisualStyleBackColor = True + ' + 'lblVariable + ' + Me.lblVariable.AutoSize = True + Me.lblVariable.Location = New System.Drawing.Point(144, 16) + Me.lblVariable.Name = "lblVariable" + Me.lblVariable.Size = New System.Drawing.Size(48, 13) + Me.lblVariable.TabIndex = 10 + Me.lblVariable.Text = "Variable:" + ' + 'btnVariable + ' + Me.btnVariable.Location = New System.Drawing.Point(147, 59) + Me.btnVariable.Name = "btnVariable" + Me.btnVariable.Size = New System.Drawing.Size(133, 23) + Me.btnVariable.TabIndex = 12 + Me.btnVariable.Text = "Edit Variable" + Me.btnVariable.UseVisualStyleBackColor = True + ' + 'ddlVariable + ' + Me.ddlVariable.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.ddlVariable.FormattingEnabled = True + Me.ddlVariable.Location = New System.Drawing.Point(147, 33) + Me.ddlVariable.Name = "ddlVariable" + Me.ddlVariable.Size = New System.Drawing.Size(133, 21) + Me.ddlVariable.TabIndex = 11 + ' + 'btnBackToOriginal + ' + Me.btnBackToOriginal.Location = New System.Drawing.Point(7, 101) + Me.btnBackToOriginal.Name = "btnBackToOriginal" + Me.btnBackToOriginal.Size = New System.Drawing.Size(138, 23) + Me.btnBackToOriginal.TabIndex = 9 + Me.btnBackToOriginal.Text = "Change back to original" + Me.btnBackToOriginal.UseVisualStyleBackColor = True + ' + 'gboxDeriveOption + ' + Me.gboxDeriveOption.Controls.Add(Me.rbtnAlgebraic) + Me.gboxDeriveOption.Controls.Add(Me.gboxAlgebraic) + Me.gboxDeriveOption.Controls.Add(Me.rbtnAggregate) + Me.gboxDeriveOption.Controls.Add(Me.gboxAggregate) + Me.gboxDeriveOption.Controls.Add(Me.rbtnCopy) + Me.gboxDeriveOption.Location = New System.Drawing.Point(12, 12) + Me.gboxDeriveOption.Name = "gboxDeriveOption" + Me.gboxDeriveOption.Size = New System.Drawing.Size(683, 196) + Me.gboxDeriveOption.TabIndex = 10 + Me.gboxDeriveOption.TabStop = False + Me.gboxDeriveOption.Text = "Derive Options" + ' + 'rbtnAlgebraic + ' + Me.rbtnAlgebraic.AutoSize = True + Me.rbtnAlgebraic.Location = New System.Drawing.Point(15, 132) + Me.rbtnAlgebraic.Name = "rbtnAlgebraic" + Me.rbtnAlgebraic.Size = New System.Drawing.Size(194, 17) + Me.rbtnAlgebraic.TabIndex = 4 + Me.rbtnAlgebraic.TabStop = True + Me.rbtnAlgebraic.Text = "Derive Using An Algebraic Equation" + Me.rbtnAlgebraic.UseVisualStyleBackColor = True + ' + 'gboxAlgebraic + ' + Me.gboxAlgebraic.Controls.Add(Me.lblE) + Me.gboxAlgebraic.Controls.Add(Me.txtF) + Me.gboxAlgebraic.Controls.Add(Me.lblD) + Me.gboxAlgebraic.Controls.Add(Me.txtE) + Me.gboxAlgebraic.Controls.Add(Me.lblC) + Me.gboxAlgebraic.Controls.Add(Me.txtD) + Me.gboxAlgebraic.Controls.Add(Me.lblB) + Me.gboxAlgebraic.Controls.Add(Me.txtC) + Me.gboxAlgebraic.Controls.Add(Me.lblA) + Me.gboxAlgebraic.Controls.Add(Me.txtB) + Me.gboxAlgebraic.Controls.Add(Me.lbl1) + Me.gboxAlgebraic.Controls.Add(Me.txtA) + Me.gboxAlgebraic.Controls.Add(Me.lblY) + Me.gboxAlgebraic.Location = New System.Drawing.Point(9, 132) + Me.gboxAlgebraic.Name = "gboxAlgebraic" + Me.gboxAlgebraic.Size = New System.Drawing.Size(655, 55) + Me.gboxAlgebraic.TabIndex = 3 + Me.gboxAlgebraic.TabStop = False + Me.gboxAlgebraic.Text = " " + ' + 'lblE + ' + Me.lblE.AutoSize = True + Me.lblE.Location = New System.Drawing.Point(572, 24) + Me.lblE.Name = "lblE" + Me.lblE.Size = New System.Drawing.Size(24, 13) + Me.lblE.TabIndex = 12 + Me.lblE.Text = "x^5" + ' + 'txtF + ' + Me.txtF.Location = New System.Drawing.Point(512, 21) + Me.txtF.Name = "txtF" + Me.txtF.Size = New System.Drawing.Size(54, 20) + Me.txtF.TabIndex = 11 + Me.txtF.Text = "0" + Me.txtF.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'lblD + ' + Me.lblD.AutoSize = True + Me.lblD.Location = New System.Drawing.Point(470, 24) + Me.lblD.Name = "lblD" + Me.lblD.Size = New System.Drawing.Size(36, 13) + Me.lblD.TabIndex = 10 + Me.lblD.Text = "x^4 + " + ' + 'txtE + ' + Me.txtE.Location = New System.Drawing.Point(410, 21) + Me.txtE.Name = "txtE" + Me.txtE.Size = New System.Drawing.Size(54, 20) + Me.txtE.TabIndex = 9 + Me.txtE.Text = "0" + Me.txtE.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'lblC + ' + Me.lblC.AutoSize = True + Me.lblC.Location = New System.Drawing.Point(368, 24) + Me.lblC.Name = "lblC" + Me.lblC.Size = New System.Drawing.Size(36, 13) + Me.lblC.TabIndex = 8 + Me.lblC.Text = "x^3 + " + ' + 'txtD + ' + Me.txtD.Location = New System.Drawing.Point(308, 21) + Me.txtD.Name = "txtD" + Me.txtD.Size = New System.Drawing.Size(54, 20) + Me.txtD.TabIndex = 7 + Me.txtD.Text = "0" + Me.txtD.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'lblB + ' + Me.lblB.AutoSize = True + Me.lblB.Location = New System.Drawing.Point(266, 24) + Me.lblB.Name = "lblB" + Me.lblB.Size = New System.Drawing.Size(36, 13) + Me.lblB.TabIndex = 6 + Me.lblB.Text = "x^2 + " + ' + 'txtC + ' + Me.txtC.Location = New System.Drawing.Point(206, 21) + Me.txtC.Name = "txtC" + Me.txtC.Size = New System.Drawing.Size(54, 20) + Me.txtC.TabIndex = 5 + Me.txtC.Text = "0" + Me.txtC.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'lblA + ' + Me.lblA.AutoSize = True + Me.lblA.Location = New System.Drawing.Point(176, 24) + Me.lblA.Name = "lblA" + Me.lblA.Size = New System.Drawing.Size(24, 13) + Me.lblA.TabIndex = 4 + Me.lblA.Text = "x + " + ' + 'txtB + ' + Me.txtB.Location = New System.Drawing.Point(116, 21) + Me.txtB.Name = "txtB" + Me.txtB.Size = New System.Drawing.Size(54, 20) + Me.txtB.TabIndex = 3 + Me.txtB.Text = "0" + Me.txtB.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'lbl1 + ' + Me.lbl1.AutoSize = True + Me.lbl1.Location = New System.Drawing.Point(97, 24) + Me.lbl1.Name = "lbl1" + Me.lbl1.Size = New System.Drawing.Size(13, 13) + Me.lbl1.TabIndex = 2 + Me.lbl1.Text = "+" + ' + 'txtA + ' + Me.txtA.Location = New System.Drawing.Point(36, 21) + Me.txtA.Name = "txtA" + Me.txtA.Size = New System.Drawing.Size(54, 20) + Me.txtA.TabIndex = 1 + Me.txtA.Text = "0" + Me.txtA.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'lblY + ' + Me.lblY.AutoSize = True + Me.lblY.Location = New System.Drawing.Point(7, 24) + Me.lblY.Name = "lblY" + Me.lblY.Size = New System.Drawing.Size(26, 13) + Me.lblY.TabIndex = 0 + Me.lblY.Text = "Y = " + ' + 'rbtnAggregate + ' + Me.rbtnAggregate.AutoSize = True + Me.rbtnAggregate.Location = New System.Drawing.Point(15, 43) + Me.rbtnAggregate.Name = "rbtnAggregate" + Me.rbtnAggregate.Size = New System.Drawing.Size(197, 17) + Me.rbtnAggregate.TabIndex = 1 + Me.rbtnAggregate.TabStop = True + Me.rbtnAggregate.Text = "Derive Using an Aggregate Function" + Me.rbtnAggregate.UseVisualStyleBackColor = True + ' + 'gboxAggregate + ' + Me.gboxAggregate.Controls.Add(Me.Panel2) + Me.gboxAggregate.Controls.Add(Me.Panel1) + Me.gboxAggregate.Location = New System.Drawing.Point(9, 43) + Me.gboxAggregate.Name = "gboxAggregate" + Me.gboxAggregate.Size = New System.Drawing.Size(655, 83) + Me.gboxAggregate.TabIndex = 2 + Me.gboxAggregate.TabStop = False + Me.gboxAggregate.Text = " " + ' + 'Panel2 + ' + Me.Panel2.Controls.Add(Me.rbtnDaily) + Me.Panel2.Controls.Add(Me.rbtnQuarterly) + Me.Panel2.Controls.Add(Me.rbtnMonthly) + Me.Panel2.Location = New System.Drawing.Point(7, 23) + Me.Panel2.Name = "Panel2" + Me.Panel2.Size = New System.Drawing.Size(457, 23) + Me.Panel2.TabIndex = 4 + ' + 'rbtnDaily + ' + Me.rbtnDaily.AutoSize = True + Me.rbtnDaily.Location = New System.Drawing.Point(7, 3) + Me.rbtnDaily.Name = "rbtnDaily" + Me.rbtnDaily.Size = New System.Drawing.Size(48, 17) + Me.rbtnDaily.TabIndex = 0 + Me.rbtnDaily.TabStop = True + Me.rbtnDaily.Text = "Daily" + Me.rbtnDaily.UseVisualStyleBackColor = True + ' + 'rbtnQuarterly + ' + Me.rbtnQuarterly.AutoSize = True + Me.rbtnQuarterly.Location = New System.Drawing.Point(234, 3) + Me.rbtnQuarterly.Name = "rbtnQuarterly" + Me.rbtnQuarterly.Size = New System.Drawing.Size(67, 17) + Me.rbtnQuarterly.TabIndex = 2 + Me.rbtnQuarterly.TabStop = True + Me.rbtnQuarterly.Text = "Quarterly" + Me.rbtnQuarterly.UseVisualStyleBackColor = True + ' + 'rbtnMonthly + ' + Me.rbtnMonthly.AutoSize = True + Me.rbtnMonthly.Location = New System.Drawing.Point(120, 3) + Me.rbtnMonthly.Name = "rbtnMonthly" + Me.rbtnMonthly.Size = New System.Drawing.Size(62, 17) + Me.rbtnMonthly.TabIndex = 1 + Me.rbtnMonthly.TabStop = True + Me.rbtnMonthly.Text = "Monthly" + Me.rbtnMonthly.UseVisualStyleBackColor = True + ' + 'Panel1 + ' + Me.Panel1.Controls.Add(Me.rbtnSum) + Me.Panel1.Controls.Add(Me.rbtnMaximum) + Me.Panel1.Controls.Add(Me.rbtnAverage) + Me.Panel1.Controls.Add(Me.rbtnMinimum) + Me.Panel1.Location = New System.Drawing.Point(7, 52) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(457, 23) + Me.Panel1.TabIndex = 3 + ' + 'rbtnSum + ' + Me.rbtnSum.AutoSize = True + Me.rbtnSum.Location = New System.Drawing.Point(347, 3) + Me.rbtnSum.Name = "rbtnSum" + Me.rbtnSum.Size = New System.Drawing.Size(46, 17) + Me.rbtnSum.TabIndex = 3 + Me.rbtnSum.TabStop = True + Me.rbtnSum.Text = "Sum" + Me.rbtnSum.UseVisualStyleBackColor = True + ' + 'rbtnMaximum + ' + Me.rbtnMaximum.AutoSize = True + Me.rbtnMaximum.Location = New System.Drawing.Point(7, 3) + Me.rbtnMaximum.Name = "rbtnMaximum" + Me.rbtnMaximum.Size = New System.Drawing.Size(69, 17) + Me.rbtnMaximum.TabIndex = 0 + Me.rbtnMaximum.TabStop = True + Me.rbtnMaximum.Text = "Maximum" + Me.rbtnMaximum.UseVisualStyleBackColor = True + ' + 'rbtnAverage + ' + Me.rbtnAverage.AutoSize = True + Me.rbtnAverage.Location = New System.Drawing.Point(234, 3) + Me.rbtnAverage.Name = "rbtnAverage" + Me.rbtnAverage.Size = New System.Drawing.Size(65, 17) + Me.rbtnAverage.TabIndex = 2 + Me.rbtnAverage.TabStop = True + Me.rbtnAverage.Text = "Average" + Me.rbtnAverage.UseVisualStyleBackColor = True + ' + 'rbtnMinimum + ' + Me.rbtnMinimum.AutoSize = True + Me.rbtnMinimum.Location = New System.Drawing.Point(120, 3) + Me.rbtnMinimum.Name = "rbtnMinimum" + Me.rbtnMinimum.Size = New System.Drawing.Size(66, 17) + Me.rbtnMinimum.TabIndex = 1 + Me.rbtnMinimum.TabStop = True + Me.rbtnMinimum.Text = "Minimum" + Me.rbtnMinimum.UseVisualStyleBackColor = True + ' + 'rbtnCopy + ' + Me.rbtnCopy.AutoSize = True + Me.rbtnCopy.Location = New System.Drawing.Point(15, 20) + Me.rbtnCopy.Name = "rbtnCopy" + Me.rbtnCopy.Size = New System.Drawing.Size(186, 17) + Me.rbtnCopy.TabIndex = 0 + Me.rbtnCopy.TabStop = True + Me.rbtnCopy.Text = "Derive A Copy Of Data For Editing" + Me.rbtnCopy.UseVisualStyleBackColor = True + ' + 'btnCancel + ' + Me.btnCancel.Location = New System.Drawing.Point(358, 350) + Me.btnCancel.Name = "btnCancel" + Me.btnCancel.Size = New System.Drawing.Size(337, 37) + Me.btnCancel.TabIndex = 11 + Me.btnCancel.Text = "Cancel" + Me.btnCancel.UseVisualStyleBackColor = True + ' + 'fDeriveNewDataSeries + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(707, 394) + Me.Controls.Add(Me.btnCancel) + Me.Controls.Add(Me.gboxDeriveOption) + Me.Controls.Add(Me.gboxgeneral) + Me.Controls.Add(Me.btnNewSeries) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "fDeriveNewDataSeries" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Derive New Series" + CType(Me.ConfigBindingSource, System.ComponentModel.ISupportInitialize).EndInit() + Me.gboxgeneral.ResumeLayout(False) + Me.gboxgeneral.PerformLayout() + Me.gboxDeriveOption.ResumeLayout(False) + Me.gboxDeriveOption.PerformLayout() + Me.gboxAlgebraic.ResumeLayout(False) + Me.gboxAlgebraic.PerformLayout() + Me.gboxAggregate.ResumeLayout(False) + Me.Panel2.ResumeLayout(False) + Me.Panel2.PerformLayout() + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents btnNewSeries As System.Windows.Forms.Button + Friend WithEvents ConfigBindingSource As System.Windows.Forms.BindingSource + Friend WithEvents lblMethods As System.Windows.Forms.Label + Friend WithEvents ddlMethods As System.Windows.Forms.ComboBox + Friend WithEvents btnMethods As System.Windows.Forms.Button + Friend WithEvents lblComment As System.Windows.Forms.Label + Friend WithEvents txtComment As System.Windows.Forms.TextBox + Friend WithEvents gboxgeneral As System.Windows.Forms.GroupBox + Friend WithEvents btnBackToOriginal As System.Windows.Forms.Button + Friend WithEvents gboxDeriveOption As System.Windows.Forms.GroupBox + Friend WithEvents rbtnCopy As System.Windows.Forms.RadioButton + Friend WithEvents rbtnAlgebraic As System.Windows.Forms.RadioButton + Friend WithEvents gboxAlgebraic As System.Windows.Forms.GroupBox + Friend WithEvents rbtnAggregate As System.Windows.Forms.RadioButton + Friend WithEvents gboxAggregate As System.Windows.Forms.GroupBox + Friend WithEvents rbtnAverage As System.Windows.Forms.RadioButton + Friend WithEvents rbtnMinimum As System.Windows.Forms.RadioButton + Friend WithEvents rbtnMaximum As System.Windows.Forms.RadioButton + Friend WithEvents lblA As System.Windows.Forms.Label + Friend WithEvents txtB As System.Windows.Forms.TextBox + Friend WithEvents lbl1 As System.Windows.Forms.Label + Friend WithEvents txtA As System.Windows.Forms.TextBox + Friend WithEvents lblY As System.Windows.Forms.Label + Friend WithEvents lblE As System.Windows.Forms.Label + Friend WithEvents txtF As System.Windows.Forms.TextBox + Friend WithEvents lblD As System.Windows.Forms.Label + Friend WithEvents txtE As System.Windows.Forms.TextBox + Friend WithEvents lblC As System.Windows.Forms.Label + Friend WithEvents txtD As System.Windows.Forms.TextBox + Friend WithEvents lblB As System.Windows.Forms.Label + Friend WithEvents txtC As System.Windows.Forms.TextBox + Friend WithEvents btnCancel As System.Windows.Forms.Button + Friend WithEvents Panel2 As System.Windows.Forms.Panel + Friend WithEvents rbtnDaily As System.Windows.Forms.RadioButton + Friend WithEvents rbtnQuarterly As System.Windows.Forms.RadioButton + Friend WithEvents rbtnMonthly As System.Windows.Forms.RadioButton + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents lblQualityControlLevel As System.Windows.Forms.Label + Friend WithEvents ddlQualityControlLevel As System.Windows.Forms.ComboBox + Friend WithEvents btnQualityControlLevel As System.Windows.Forms.Button + Friend WithEvents lblVariable As System.Windows.Forms.Label + Friend WithEvents btnVariable As System.Windows.Forms.Button + Friend WithEvents ddlVariable As System.Windows.Forms.ComboBox + Friend WithEvents rbtnSum As System.Windows.Forms.RadioButton + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/DeriveNewDataSeries.resx b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/DeriveNewDataSeries.resx new file mode 100644 index 00000000..d6fe09ff --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/DeriveNewDataSeries.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/DeriveNewDataSeries.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/DeriveNewDataSeries.vb new file mode 100644 index 00000000..47510f6a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/DeriveNewDataSeries.vb @@ -0,0 +1,450 @@ +Imports HydroDesktop.Common +Imports HydroDesktop.Database +Imports System.Windows.Forms +Imports HydroDesktop.Interfaces +Imports HydroDesktop.Interfaces.ObjectModel +Imports System.Threading + +Namespace HydroDesktop.Plugins.Controls + Public Class DeriveNewDataSeries + Implements IProgressHandler + + Private newSeriesID As Integer + + Private Const DERIVED_METHOD_DESCRIPTION = "Derived using HydroDesktop Edit View" + Private ReadOnly _SelectedSeriesID As Integer + Private ReadOnly _cEditView As EditView + Private ReadOnly _seriesSelector As ISeriesSelector + Private _derivedVariable As Variable + Private _selectedSeriesVariable As Variable + + ReadOnly variablesRepository As IVariablesRepository = RepositoryFactory.Instance.Get(Of IVariablesRepository)() + ReadOnly dataSeriesRepository As IDataSeriesRepository = RepositoryFactory.Instance.Get(Of IDataSeriesRepository)() + ReadOnly dataThemesRepository As IDataThemesRepository = RepositoryFactory.Instance.Get(Of IDataThemesRepository)() + ReadOnly qualityControlLevelsRepository As IQualityControlLevelsRepository = RepositoryFactory.Instance.Get(Of IQualityControlLevelsRepository)() + ReadOnly dataValuesRepository As IDataValuesRepository = RepositoryFactory.Instance.Get(Of IDataValuesRepository)() + + Public Sub New(ByVal seriesId As Int32, ByRef cEditView As EditView, ByRef seriesSelector As ISeriesSelector) + + _SelectedSeriesID = seriesId + _cEditView = cEditView + _seriesSelector = seriesSelector + + InitializeComponent() + initialize() + + SetDefault() + End Sub + + Private Sub initialize() + 'fill all lists of this form + FillQualityControlLevel() + FillMethods() + + 'Create derived variable + Dim currentVariableID = dataSeriesRepository.GetVariableID(_SelectedSeriesID) + _selectedSeriesVariable = variablesRepository.GetByKey(currentVariableID) + _derivedVariable = DirectCast(_selectedSeriesVariable.Clone(), Variable) + variablesRepository.AddVariable(_derivedVariable) + _derivedVariable.ValueType = "Derived Value" + FillVariable() + + rbtnCopy.Checked = True + End Sub + + Private Sub FillQualityControlLevel() + Dim dt As DataTable + + 'Fill up Quality Control Level drop down list + dt = qualityControlLevelsRepository.AsDataTable() + dt.Rows.Add() + dt.Rows(dt.Rows.Count - 1).Item(0) = DBNull.Value + dt.Rows(dt.Rows.Count - 1).Item(1) = "New Qulity Control Level..." + ddlQualityControlLevel.DataSource = dt + ddlQualityControlLevel.DisplayMember = "QualityControlLevelCode" + ddlQualityControlLevel.ValueMember = "QualityControlLevelID" + End Sub + + Private Sub FillMethods() + Dim repo = RepositoryFactory.Instance.Get(Of IMethodsRepository)() + + ' Check for Derived method + Dim derivedMethod = repo.GetMethodID(DERIVED_METHOD_DESCRIPTION) + If Not derivedMethod.HasValue Then + ' Insert Derived method + repo.InsertMethod(DERIVED_METHOD_DESCRIPTION, "unknown") + End If + + 'Fill up Method drop down list + Dim dt = repo.AsDataTable() + dt.Rows.Add() + dt.Rows(dt.Rows.Count - 1).Item(0) = DBNull.Value + dt.Rows(dt.Rows.Count - 1).Item(1) = "New Method..." + ddlMethods.DataSource = dt + ddlMethods.DisplayMember = "MethodDescription" + ddlMethods.ValueMember = "MethodID" + End Sub + + Private Sub FillVariable() + 'Fill up Variable drop down list + Dim dt = variablesRepository.AsDataTable() + dt.Rows.Add() + dt.Rows(dt.Rows.Count - 1).Item(0) = DBNull.Value + dt.Rows(dt.Rows.Count - 1).Item(1) = "New Variable..." + ddlVariable.DataSource = dt + ddlVariable.DisplayMember = "VariableCode" + ddlVariable.ValueMember = "VariableID" + End Sub + + Private Sub SetDefault() + 'setting text boxes to blank + txtA.Text = "0" + txtB.Text = "0" + txtC.Text = "0" + txtD.Text = "0" + txtE.Text = "0" + txtF.Text = "0" + txtComment.Text = "" + + SetDefaultMethods() + SetDefaultQualityControlLevel() + SetDefaultVariable() + End Sub + + Private Sub InsertNewSeries() + newSeriesID = dataSeriesRepository.InsertNewSeries(_SelectedSeriesID, ddlVariable.SelectedValue, ddlMethods.SelectedValue, ddlQualityControlLevel.SelectedValue) + End Sub + + Private Sub InsertSeriesProvenance() + Dim entity = New SeriesProvenance() + entity.ProvenanceDateTime = DateTime.Today + entity.InputSeries = New Series() + entity.InputSeries.Id = _SelectedSeriesID + entity.OutputSeries = New Series() + entity.OutputSeries.Id = newSeriesID + entity.Method = New Method() + entity.Method.Id = ddlMethods.SelectedValue + entity.Comment = txtComment.Text + + RepositoryFactory.Instance.Get(Of ISeriesProvenanceRepository).AddNew(entity) + End Sub + + Private Sub InsertNewDataThemes() + dataThemesRepository.InsertNewTheme(_SelectedSeriesID, newSeriesID) + End Sub + + Private Sub InsertNewDataValues() + Dim A As Double = txtA.Text + Dim B As Double = txtB.Text + Dim C As Double = txtC.Text + Dim D As Double = txtD.Text + Dim E As Double = txtE.Text + Dim F As Double = txtF.Text + + Dim dt = dataValuesRepository.GetAll(_SelectedSeriesID) + + Dim frmloading As ProgressBar = _cEditView.pbProgressBar + frmloading.Visible = True + frmloading.Maximum = dt.Rows.Count - 1 + frmloading.Minimum = 0 + frmloading.Value = 0 + _cEditView.lblstatus.Text = "Creating New Data Values" + + dataSeriesRepository.DeriveInsertDataValues(A, B, C, D, E, F, dt, newSeriesID, _SelectedSeriesID, rbtnAlgebraic.Checked, Me) + + _cEditView.lblstatus.Text = "Ready" + End Sub + + Private Sub InsertAggregateDataValues() + + 'Setting values to variables + Dim series = dataSeriesRepository.GetByKey(newSeriesID) + + Dim nodatavalue = series.Variable.NoDataValue + Dim firstDate = series.BeginDateTime + Dim lastdate = series.EndDateTime + + Dim dt = dataValuesRepository.GetAll(_SelectedSeriesID) + + 'Setting current date (first date) to the first day of the month/quarter + Dim currentdate As DateTime + If rbtnDaily.Checked Then + currentdate = New DateTime(firstDate.Year, firstDate.Month, firstDate.Day) + ElseIf rbtnMonthly.Checked Then + currentdate = New DateTime(firstDate.Year, firstDate.Month, 1) + ElseIf rbtnQuarterly.Checked Then + Select Case firstDate.Month + Case 1 To 3 + currentdate = New DateTime(firstDate.Year, 1, 1) + Case 4 To 6 + currentdate = New DateTime(firstDate.Year, 4, 1) + Case 7 To 9 + currentdate = New DateTime(firstDate.Year, 7, 1) + Case 10 To 12 + currentdate = New DateTime(firstDate.Year, 10, 1) + End Select + End If + + + 'Setting progress bar + Dim frmloading As ProgressBar = _cEditView.pbProgressBar + frmloading.Visible = True + If rbtnDaily.Checked Then + frmloading.Maximum = (lastdate - firstDate).TotalDays + ElseIf rbtnMonthly.Checked Then + frmloading.Maximum = Math.Round((lastdate - firstDate).TotalDays / 30) + ElseIf rbtnQuarterly.Checked Then + frmloading.Maximum = Math.Round((lastdate - firstDate).TotalDays / 90) + End If + frmloading.Minimum = 0 + frmloading.Value = 0 + + _cEditView.lblstatus.Text = "Creating New Data Values" + + Dim dMode As DeriveAggregateMode + If rbtnDaily.Checked Then + dMode = DeriveAggregateMode.Daily + ElseIf rbtnMonthly.Checked Then + dMode = DeriveAggregateMode.Monthly + ElseIf rbtnQuarterly.Checked Then + dMode = DeriveAggregateMode.Quarterly + End If + + Dim computeMode As DeriveComputeMode + If rbtnMaximum.Checked Then + computeMode = DeriveComputeMode.Maximum + ElseIf rbtnMinimum.Checked Then + computeMode = DeriveComputeMode.Minimum + ElseIf rbtnAverage.Checked Then + computeMode = DeriveComputeMode.Average + ElseIf rbtnSum.Checked Then + computeMode = DeriveComputeMode.Sum + End If + + dataSeriesRepository.DeriveInsertAggregateDataValues(dt, newSeriesID, currentdate, lastdate, dMode, computeMode, nodatavalue, Me) + _cEditView.lblstatus.Text = "Ready" + End Sub + +#Region "Events" + +#Region "QualityControlLevel data accesses" + + Private Sub btnQualityControlLevel_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnQualityControlLevel.Click + ShowQualityControlLevelTableManagement() + End Sub + + Private Sub ddlQualityControlLevel_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As EventArgs) Handles ddlQualityControlLevel.SelectedIndexChanged + If ddlQualityControlLevel.SelectedIndex = ddlQualityControlLevel.Items.Count - 1 Then + ShowQualityControlLevelTableManagement() + End If + End Sub + + Private Sub SetDefaultQualityControlLevel() + Dim currentQualityControlLevelID = dataSeriesRepository.GetQualityControlLevelID(_SelectedSeriesID.ToString) + ddlQualityControlLevel.SelectedValue = currentQualityControlLevelID + End Sub + + Private Sub ShowQualityControlLevelTableManagement() + Dim frm = New QualityControlLevelTableManagement() + frm.initialize(If(IsDBNull(ddlQualityControlLevel.SelectedValue), CType(Nothing, Long?), Convert.ToInt64(ddlQualityControlLevel.SelectedValue))) + If frm.ShowDialog() = DialogResult.OK Then + FillQualityControlLevel() + ddlQualityControlLevel.SelectedValue = frm.QualityControlLevelID + End If + End Sub + +#End Region + +#Region "Methods data accesses" + + Private Sub btnMethods_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnMethods.Click + ShowMethodTableManagement() + End Sub + + Private Sub ddlMethods_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As EventArgs) Handles ddlMethods.SelectedIndexChanged + If ddlMethods.SelectedIndex = ddlMethods.Items.Count - 1 Then + ShowMethodTableManagement() + End If + End Sub + + Private Sub ShowMethodTableManagement() + Dim frm = New MethodTableManagement() + frm.initialize(If(IsDBNull(ddlMethods.SelectedValue), CType(Nothing, Long?), Convert.ToInt64(ddlMethods.SelectedValue))) + If frm.ShowDialog() = DialogResult.OK Then + FillMethods() + ddlMethods.SelectedValue = frm.MethodID + End If + End Sub + + Private Sub SetDefaultMethods() + Dim repo = RepositoryFactory.Instance.Get(Of IMethodsRepository)() + Dim derivedMethod = repo.GetMethodID(DERIVED_METHOD_DESCRIPTION) + ddlMethods.SelectedValue = derivedMethod + End Sub + +#End Region + +#Region "Variables data accesses" + + Private Sub ddlVariable_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As EventArgs) Handles ddlVariable.SelectedIndexChanged + If ddlVariable.SelectedIndex = ddlVariable.Items.Count - 1 Then + ShowVariablesTableManagment() + End If + End Sub + + Private Sub btnVariable_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnVariable.Click + ShowVariablesTableManagment() + End Sub + + Private Sub ShowVariablesTableManagment() + Dim frm = New VariablesTableManagement() + frm.initialize(If(IsDBNull(ddlVariable.SelectedValue), CType(Nothing, Long?), Convert.ToInt64(ddlVariable.SelectedValue))) + If frm.ShowDialog() = DialogResult.OK Then + FillVariable() + ddlVariable.SelectedValue = frm.VariableID + End If + End Sub + + Private Sub SetDefaultVariable() + Dim currentVariableID = _derivedVariable.Id + ddlVariable.SelectedValue = currentVariableID + End Sub + +#End Region + + Private Sub AlgebraicTextChanged(ByVal sender As System.Object, ByVal e As EventArgs) Handles txtA.TextChanged, txtB.TextChanged, txtC.TextChanged, txtD.TextChanged, txtE.TextChanged, txtF.TextChanged + If txtA.Text = Nothing Then + txtA.Text = "0" + txtA.Select(0, 1) + End If + + If txtB.Text = Nothing Then + txtB.Text = "0" + txtB.Select(0, 1) + End If + + If txtC.Text = Nothing Then + txtC.Text = "0" + txtC.Select(0, 1) + End If + + If txtD.Text = Nothing Then + txtD.Text = "0" + txtD.Select(0, 1) + End If + + If txtE.Text = Nothing Then + txtE.Text = "0" + txtE.Select(0, 1) + End If + + If txtF.Text = Nothing Then + txtF.Text = "0" + txtF.Select(0, 1) + End If + + End Sub + + Private Sub btnBackToOriginal_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnBackToOriginal.Click + SetDefault() + End Sub + + Private Sub rbtnCheckedChanged(ByVal sender As System.Object, ByVal e As EventArgs) Handles rbtnCopy.CheckedChanged, rbtnAlgebraic.CheckedChanged, rbtnAggregate.CheckedChanged + If rbtnAlgebraic.Checked Then + gboxAggregate.Enabled = False + gboxAlgebraic.Enabled = True + ElseIf rbtnAggregate.Checked Then + rbtnDaily.Checked = True + rbtnMaximum.Checked = True + gboxAggregate.Enabled = True + gboxAlgebraic.Enabled = False + Else + gboxAggregate.Enabled = False + gboxAlgebraic.Enabled = False + End If + + UpdateDerivedVarible() + End Sub + + Private Sub UpdateDerivedVarible() + If Not rbtnAggregate.Checked Then + _derivedVariable.DataType = _selectedSeriesVariable.DataType + _derivedVariable.TimeSupport = _selectedSeriesVariable.TimeSupport + Else + 'Update TimeSupport + If rbtnDaily.Checked Then + _derivedVariable.TimeSupport = 1.0 + ElseIf rbtnMonthly.Checked Then + _derivedVariable.TimeSupport = 30.0 + ElseIf rbtnQuarterly.Checked Then + _derivedVariable.TimeSupport = 120.0 + End If + + 'Update DataType + If rbtnMaximum.Checked Then + _derivedVariable.DataType = "Maximum" + ElseIf rbtnMinimum.Checked Then + _derivedVariable.DataType = "Minimum" + ElseIf rbtnAverage.Checked Then + _derivedVariable.DataType = "Average" + ElseIf rbtnSum.Checked Then + _derivedVariable.DataType = "Sum" + End If + End If + + 'Save changes + Dim repo = RepositoryFactory.Instance.Get(Of IVariablesRepository)() + repo.Update(_derivedVariable) + End Sub + + Private Sub rbtnDaily_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles rbtnSum.CheckedChanged, rbtnQuarterly.CheckedChanged, rbtnMonthly.CheckedChanged, rbtnMinimum.CheckedChanged, rbtnMaximum.CheckedChanged, rbtnDaily.CheckedChanged, rbtnAverage.CheckedChanged + UpdateDerivedVarible() + End Sub + + Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click + Me.Close() + End Sub + + Private Sub btnNewSeries_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNewSeries.Click + gboxDeriveOption.Enabled = False + gboxgeneral.Enabled = False + btnNewSeries.Enabled = False + + InsertNewSeries() + InsertSeriesProvenance() + InsertNewDataThemes() + + If rbtnAggregate.Checked Then + InsertAggregateDataValues() + Else + InsertNewDataValues() + End If + + _seriesSelector.RefreshSelection() + + MsgBox("Derive Complete", MsgBoxStyle.OkOnly Or MsgBoxStyle.Information, "Edit View") + btnCancel.Text = "Close" + _cEditView.pbProgressBar.Value = 0 + End Sub + +#End Region + + Public Sub ReportProgress(ByVal percentage As Integer, ByVal state As Object) Implements IProgressHandler.ReportProgress + _cEditView.pbProgressBar.Value = percentage + End Sub + + Public Sub CheckForCancel() Implements IProgressHandler.CheckForCancel + Throw New NotImplementedException() + End Sub + + Public Sub ReportMessage(ByVal message As String) Implements IProgressHandler.ReportMessage + Throw New NotImplementedException() + End Sub + + Public ReadOnly Property CancellationToken() As CancellationToken Implements IProgressHandler.CancellationToken + Get + Throw New NotImplementedException() + End Get + End Property + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/EditView.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/EditView.vb new file mode 100644 index 00000000..66066337 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/EditView.vb @@ -0,0 +1,895 @@ +Imports System.Collections.Generic +Imports System.Drawing +Imports System.Data +Imports System.Linq +Imports System.Windows.Forms +Imports HydroDesktop.Database +Imports ZedGraph +Imports HydroDesktop.Interfaces + +Namespace HydroDesktop.Plugins.Controls + + Public Class EditView + +#Region "privateDeclaration" + + Private ReadOnly CurveEditingColor As Color = Color.Black + Private _seriesSelector As ISeriesSelector + Private OriginalDt As DataTable + Public Editdt As DataTable + Public newseriesID As Integer = 0 + Public Editing As Boolean = False + Private ReadOnly selectedSeriesIdList As New List(Of Int32) + Private ReadOnly ccList0 As New List(Of Color) + Private nodataseriescount As Integer = 0 + Private colorcount As Integer = 0 + Public ShowLegend As Boolean + + Dim _dataValuesRepo As IDataValuesRepository + Dim _dataSeriesRepo As IDataSeriesRepository + + Private Const ErrMsgForNotEditing As String = "Please select a series to edit first." + Private Const ErrMsgForNotPointSelected As String = "Please select a point for editing." + + Private _needToRefresh As Boolean +#End Region + +#Region "Constructor" + + Private Sub SettingColor() + ccList0.Clear() + ccList0.Add(Color.FromArgb(106, 61, 154)) + ccList0.Add(Color.FromArgb(202, 178, 214)) + ccList0.Add(Color.FromArgb(255, 127, 0)) + ccList0.Add(Color.FromArgb(253, 191, 111)) + ccList0.Add(Color.FromArgb(227, 26, 28)) + ccList0.Add(Color.FromArgb(251, 154, 153)) + ccList0.Add(Color.FromArgb(51, 160, 44)) + ccList0.Add(Color.FromArgb(178, 223, 138)) + ccList0.Add(Color.FromArgb(31, 120, 180)) + ccList0.Add(Color.FromArgb(166, 206, 227)) + End Sub + + Public Sub New(ByVal seriesSelector As ISeriesSelector) + 'InitializeComponent() + + ' This call is required by the Windows Form Designer. + InitializeComponent() + + 'set the 'seriesMenu' private variable + _seriesSelector = seriesSelector + + 'assign the events + AddHandler Disposed, AddressOf OnDisposing + AddHandler _seriesSelector.SeriesCheck, AddressOf SeriesSelector_SeriesCheck + AddHandler _seriesSelector.Refreshed, AddressOf SeriesSelector_Refreshed + AddHandler VisibleChanged, AddressOf OnMeVisibleChanged + + initialize() + SettingColor() + pTimeSeriesPlot.Clear() + End Sub + + Private Sub OnDisposing(ByVal sender As Object, ByVal e As EventArgs) + ' Unsubscribe from events + RemoveHandler Disposed, AddressOf OnDisposing + RemoveHandler _seriesSelector.SeriesCheck, AddressOf SeriesSelector_SeriesCheck + RemoveHandler _seriesSelector.Refreshed, AddressOf SeriesSelector_Refreshed + _seriesSelector = Nothing + End Sub + + + Private Sub initialize() + gboxDataFilter.Enabled = False + ddlTimePeriod.SelectedItem = ddlTimePeriod.Items(0) + lblstatus.Text = "Ready" + End Sub + +#End Region + +#Region "Views" + +#Region "Method" + + Private Sub PlotGraph(ByVal SeriesID As Integer) + Dim options As PlotOptions = New PlotOptions(PlotOptions.TimeSeriesType.Line, ccList0(colorcount Mod 10), CurveEditingColor, False, True) + Dim data As DataTable + + Dim series = _dataSeriesRepo.GetByKey(SeriesID) + + Dim variableName = series.Variable.Name + Dim unitsName = series.Variable.VariableUnit.Name + Dim siteName = If(_seriesSelector.SiteDisplayColumn = "SiteName", series.Site.Name, series.Site.Code) + + data = _dataValuesRepo.GetAllOrderByLocalDateTime(SeriesID) + If data.Rows.Count = 1 Then + options.TimeSeriesMethod = PlotOptions.TimeSeriesType.Point + End If + + If data.Rows.Count <= 0 Then + MsgBox("The Selected Series has no curve") + Else + pTimeSeriesPlot.Plot(data, siteName, variableName, unitsName, options, SeriesID) + End If + + pTimeSeriesPlot.Refreshing() + + colorcount += 1 + End Sub + +#End Region + +#Region "Event" + + Private Sub SeriesSelector_Refreshed(ByVal sender As Object, ByVal e As EventArgs) + RefreshDbTools() + End Sub + + Private Sub RefreshDbTools() + _dataValuesRepo = RepositoryFactory.Instance.Get(Of IDataValuesRepository)() + _dataSeriesRepo = RepositoryFactory.Instance.Get(Of IDataSeriesRepository)() + End Sub + + Private Sub DoSeriesRefresh() + Dim idsToRemove = New List(Of Integer) + Dim idsToAdd = New List(Of Integer)() + + For Each Id As Integer In selectedSeriesIdList + If Not _seriesSelector.CheckedIDList.Contains(Id) Then + idsToRemove.Add(Id) + End If + Next + + For Each Id As Integer In _seriesSelector.CheckedIDList + If Not selectedSeriesIdList.Contains(Id) Then + idsToAdd.Add(Id) + End If + Next + + If idsToRemove.Count > 0 And pTimeSeriesPlot.HasEditingCurve Then + pTimeSeriesPlot.EditCurvePointList = pTimeSeriesPlot.CopyCurvePointList(pTimeSeriesPlot.EditingCurve) + pTimeSeriesPlot.EditCurveLable = pTimeSeriesPlot.EditingCurve.Label.Text + pTimeSeriesPlot.EditCurveTitle = pTimeSeriesPlot.EditingCurve.Link.Title + End If + + For Each Id As Integer In idsToRemove + removeSeries(Id) + Next + + For Each Id As Integer In idsToAdd + addSeries(Id) + Next + + pTimeSeriesPlot.Refreshing() + + End Sub + + Private Sub DoSeriesCheck() + If (Not Visible) Then + _needToRefresh = True + Return + End If + + If Not _seriesSelector.CheckedIDList.Length > selectedSeriesIdList.Count Then + + If pTimeSeriesPlot.HasEditingCurve Then + pTimeSeriesPlot.EditCurvePointList = pTimeSeriesPlot.CopyCurvePointList(pTimeSeriesPlot.EditingCurve) + pTimeSeriesPlot.EditCurveLable = pTimeSeriesPlot.EditingCurve.Label.Text + pTimeSeriesPlot.EditCurveTitle = pTimeSeriesPlot.EditingCurve.Link.Title + End If + removeSeries(_seriesSelector.SelectedSeriesID) + + Else + addSeries(_seriesSelector.SelectedSeriesID) + End If + + pTimeSeriesPlot.Refreshing() + End Sub + + Private Sub addSeries(seriesId As Integer) + If Not selectedSeriesIdList.Contains(seriesId) Then + selectedSeriesIdList.Add(seriesId) + Else + Return 'added by jiri to correct error when SeriesCheck event occurs multiple times + End If + + If SeriesRowsCount(seriesId) = 0 Then + nodataseriescount += 1 + ElseIf Not seriesId = newseriesID Then + PlotGraph(seriesId) + Else : seriesId = newseriesID + Dim curve As LineItem = pTimeSeriesPlot.zgTimeSeries.GraphPane.AddCurve(pTimeSeriesPlot.EditCurveLable, pTimeSeriesPlot.EditCurvePointList, Color.Black, SymbolType.Circle) + pTimeSeriesPlot.SettingCurveStyle(curve) + curve.Link.Title = pTimeSeriesPlot.EditCurveTitle + pTimeSeriesPlot.SettingTitle() + pTimeSeriesPlot.AddYAxis(curve) + pTimeSeriesPlot.zgTimeSeries.GraphPane.XAxis.IsVisible = True + pTimeSeriesPlot.zgTimeSeries.GraphPane.XAxis.Title.Text = "Date and Time" + End If + End Sub + + Private Sub removeSeries(Id As Integer) + Dim curveIndex = selectedSeriesIdList.IndexOf(Id) + selectedSeriesIdList.Remove(Id) + + If SeriesRowsCount(Id) = 0 Then + nodataseriescount -= 1 + End If + + If (selectedSeriesIdList.Count = 0) Then + pTimeSeriesPlot.Clear() + ElseIf (selectedSeriesIdList.Count = 1) Then + Try + pTimeSeriesPlot.Remove(curveIndex - nodataseriescount) + curveIndex = pTimeSeriesPlot.CurveID(0) + pTimeSeriesPlot.Remove(0) + + If SeriesRowsCount(Id) = 0 Then + nodataseriescount += 1 + ElseIf Not curveIndex = newseriesID Then + PlotGraph(curveIndex) + Else : curveIndex = newseriesID + Dim curve As LineItem = pTimeSeriesPlot.zgTimeSeries.GraphPane.AddCurve(pTimeSeriesPlot.EditCurveLable, pTimeSeriesPlot.EditCurvePointList, Color.Black, SymbolType.Circle) + pTimeSeriesPlot.SettingCurveStyle(curve) + curve.Link.Title = pTimeSeriesPlot.EditCurveTitle + pTimeSeriesPlot.SettingTitle() + pTimeSeriesPlot.AddYAxis(curve) + pTimeSeriesPlot.zgTimeSeries.GraphPane.XAxis.IsVisible = True + pTimeSeriesPlot.zgTimeSeries.GraphPane.XAxis.Title.Text = "Date and Time" + End If + Catch + If Not nodataseriescount = 0 Then + nodataseriescount -= 1 + End If + + End Try + Else + Try + pTimeSeriesPlot.Remove(curveIndex - nodataseriescount) + Catch + If Not nodataseriescount = 0 Then + nodataseriescount -= 1 + End If + End Try + End If + End Sub + + Private Sub OnMeVisibleChanged(ByVal sender As Object, ByVal e As EventArgs) + If (Not Visible) Then Return + + If (_needToRefresh) Then + _needToRefresh = False + DoSeriesRefresh() + End If + End Sub + + Private Sub SeriesSelector_SeriesCheck(ByVal sender As Object, ByVal e As SeriesEventArgs) + DoSeriesCheck() + End Sub + + Public Sub btnSelectSeries_Click() + If Not _seriesSelector.SelectedSeriesID = 0 Then + initialize() + + newseriesID = _seriesSelector.SelectedSeriesID + Editdt = _dataValuesRepo.GetTableForEditView(newseriesID) + dgvDataValues.DataSource = Editdt + + OriginalDt = Editdt.Copy() + + 'get the begin and end datetime of the series + Dim series = _dataSeriesRepo.GetByKey(newseriesID) + Dim beginDateTime As Date = series.BeginDateTime + Dim endDateTime As Date = series.EndDateTime + + 'setting the datetime constrint to larger range + + dtpBefore.MinDate = Today.AddYears(-150) + dtpBefore.MaxDate = Today.AddDays(1) + dtpAfter.MinDate = Today.AddYears(-150) + dtpAfter.MaxDate = Today + + If beginDateTime <> Nothing Then + 'setting the default datetime values + dtpAfter.Value = beginDateTime + 'setting the datetime constrint by the begin and end datetime + dtpBefore.MinDate = beginDateTime + dtpAfter.MinDate = beginDateTime + End If + If endDateTime <> Nothing Then + 'setting the default datetime values + dtpBefore.Value = endDateTime + 'setting the datetime constrint by the begin and end datetime + dtpBefore.MaxDate = endDateTime + dtpAfter.MaxDate = endDateTime + End If + + If _dataSeriesRepo.GetQualityControlLevelCode(newseriesID) = "Raw Data" Then + gboxDataFilter.Enabled = False + Else + gboxDataFilter.Enabled = True + rbtnValueThreshold.Select() + End If + ResetGridViewStyle() + + Try + Dim curveIndex As Integer = selectedSeriesIdList.IndexOf(_seriesSelector.SelectedSeriesID) + + If _seriesSelector.CheckedIDList.Contains(_seriesSelector.SelectedSeriesID) Then + pTimeSeriesPlot.EnterEditMode(curveIndex - nodataseriescount) + pTimeSeriesPlot.RemoveSelectedPoints() + Else + PlotGraph(_seriesSelector.SelectedSeriesID) + pTimeSeriesPlot.EnterEditMode(pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList.Count - 1) + pTimeSeriesPlot.Remove(pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList.Count - 1) + pTimeSeriesPlot.Refreshing() + End If + + Catch + MsgBox("The Selected Series has no curve") + End Try + + gboxDataFilter.Enabled = SeriesRowsCount(newseriesID) >= 1 + Editing = True + Else + MsgBox("Please select a series for editing.") + End If + End Sub + + Public Sub ckbShowLegend_Click() + ShowLegend = Not ShowLegend + pTimeSeriesPlot.zgTimeSeries.GraphPane.Legend.IsVisible = ShowLegend + pTimeSeriesPlot.Refreshing() + End Sub + +#End Region + +#End Region + +#Region "Editing" + + 'Reset style of data grid view + Private Sub ResetGridViewStyle() Handles dgvDataValues.Sorted + For i As Integer = 0 To dgvDataValues.Columns.Count - 1 + dgvDataValues.Columns(i).ReadOnly = True + Next + dgvDataValues.Columns("Other").Visible = False + + For i As Integer = 0 To dgvDataValues.Rows.Count - 1 + If dgvDataValues.Rows(i).Cells("Other").Value = -1 Then + dgvDataValues.Rows(i).DefaultCellStyle.BackColor = Color.Red + Else + dgvDataValues.Rows(i).DefaultCellStyle.BackColor = Nothing + End If + Next + End Sub + + 'Derive New Series + Public Sub btnDeriveNewDataSeries_Click(ByVal sender As System.Object, ByVal e As EventArgs) + 'check if the user selected any series, then open the Derive New Series form + If Not _seriesSelector.SelectedSeriesID = 0 Then + Dim frmDeriveNewDataSeries As DeriveNewDataSeries + frmDeriveNewDataSeries = New DeriveNewDataSeries(_seriesSelector.SelectedSeriesID, Me, _seriesSelector) + frmDeriveNewDataSeries.ShowDialog() + Else + MsgBox("Please select a series to derive.") + End If + End Sub + + 'Apply Changes to Database + Public Sub btnApplyToDatabase_Click(ByVal sender As System.Object, ByVal e As EventArgs) + If MsgBox("Are You Sure You Want to Apply the Changes to the Database", MsgBoxStyle.YesNo Or vbDefaultButton2 Or MsgBoxStyle.Question, "Question") = MsgBoxResult.Yes Then + SaveGraphChangesToDatabase() + gboxDataFilter.Enabled = SeriesRowsCount(newseriesID) >= 1 + MsgBox("Save finished!") + End If + End Sub + + 'Restore Data + Public Sub btnRestoreData_Click(ByVal sender As System.Object, ByVal e As EventArgs) + If MsgBox("Are You Sure You Want to Restore the Data to the Original?", MsgBoxStyle.YesNo Or vbDefaultButton2 Or MsgBoxStyle.Question, "Question") = MsgBoxResult.Yes Then + Editdt = OriginalDt + RefreshDataGridView() + pTimeSeriesPlot.ReplotEditingCurve(Me) + gboxDataFilter.Enabled = SeriesRowsCount(newseriesID) >= 1 + MsgBox("Restore Complete!") + End If + + End Sub + + 'Clear Filter + Private Sub btnClearFilter_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnClearFilter.Click + 'Make all text boxes blank + ddlTimePeriod.SelectedItem = ddlTimePeriod.Items(0) + txtDataGapValue.Text = "" + txtEditDFVTChange.Text = "" + txtValueLarger.Text = "" + txtValueLess.Text = "" + rbtnValueThreshold.Select() + dgvDataValues.ClearSelection() + End Sub + + 'radio buttons change events + Private Sub gboxradiobuttons_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) + 'Enable different group box when different radio button is checked + + If rbtnValueThreshold.Checked Then + gboxValueThreshold.Enabled = True + gboxDataGap.Enabled = False + gboxDate.Enabled = False + txtEditDFVTChange.Enabled = False + End If + + If rbtnDataGap.Checked Then + gboxValueThreshold.Enabled = False + gboxDataGap.Enabled = True + gboxDate.Enabled = False + txtEditDFVTChange.Enabled = False + End If + + If rbtnDate.Checked Then + gboxValueThreshold.Enabled = False + gboxDataGap.Enabled = False + gboxDate.Enabled = True + txtEditDFVTChange.Enabled = False + End If + + If rbtnEditDFVTChange.Checked Then + gboxValueThreshold.Enabled = False + gboxDataGap.Enabled = False + gboxDate.Enabled = False + txtEditDFVTChange.Enabled = True + End If + + End Sub + + 'Filter + Private Sub btnApplyFilter_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnApplyFilter.Click + 'check which method the user wanted to choose the range of data + 'Value Threshold Filter + If rbtnValueThreshold.Checked Then + + 'Validation + If Not IsNumeric(txtValueLarger.Text) And (Not txtValueLarger.Text = Nothing) Then + MsgBox("Please enter numbers") + Exit Sub + End If + If Not IsNumeric(txtValueLess.Text) And Not (txtValueLess.Text = Nothing) Then + MsgBox("Please enter numbers") + Exit Sub + End If + + 'Filter + If Not (txtValueLarger.Text = Nothing) And Not (txtValueLess.Text = Nothing) Then + If pTimeSeriesPlot.HasEditingCurve() Then + pTimeSeriesPlot.ChangeZvalueWithValueThreshold(Val(txtValueLarger.Text), Val(txtValueLess.Text)) + Else + ValueThresholdFilter(Val(txtValueLarger.Text), Val(txtValueLess.Text)) + End If + ElseIf txtValueLarger.Text = Nothing And Not (txtValueLess.Text = Nothing) Then + Dim largest As Decimal = Convert.ToDecimal(_dataValuesRepo.GetMaxValue(newseriesID)) + If pTimeSeriesPlot.HasEditingCurve() Then + pTimeSeriesPlot.ChangeZvalueWithValueThreshold(largest, Val(txtValueLess.Text)) + Else + ValueThresholdFilter(largest, Val(txtValueLess.Text)) + End If + ElseIf txtValueLess.Text = Nothing And Not (txtValueLarger.Text = Nothing) Then + Dim smallest As Decimal = Convert.ToDecimal(_dataValuesRepo.GetMinValue(newseriesID)) + If pTimeSeriesPlot.HasEditingCurve() Then + pTimeSeriesPlot.ChangeZvalueWithValueThreshold(Val(txtValueLarger.Text), smallest) + Else + ValueThresholdFilter(Val(txtValueLarger.Text), smallest) + End If + End If + End If + + 'Value Change Threshold Filter + If rbtnEditDFVTChange.Checked Then + 'Validation + If Not IsNumeric(txtEditDFVTChange.Text) And Not (txtEditDFVTChange.Text) = Nothing Then + MsgBox("Please enter numbers") + Exit Sub + End If + + 'Filter + If pTimeSeriesPlot.HasEditingCurve() Then + pTimeSeriesPlot.ChangeZvalueWithValueChangeThreshold(Val(txtEditDFVTChange.Text)) + Else + ValueChangeThreshold(Val(txtEditDFVTChange.Text)) + End If + End If + + 'Date Filter + If rbtnDate.Checked Then + If pTimeSeriesPlot.HasEditingCurve() Then + pTimeSeriesPlot.ChangeZvalueWithDate(dtpBefore.Value, dtpAfter.Value) + Else + DateFilter(dtpBefore.Value, dtpAfter.Value) + End If + End If + + 'Data Gap Filter + If rbtnDataGap.Checked Then + 'Validation + If Not IsNumeric(txtDataGapValue.Text) And Not (txtDataGapValue.Text) = Nothing Then + MsgBox("Please enter numbers") + Exit Sub + End If + + 'Filter + Dim datagap As Double + Select Case ddlTimePeriod.SelectedIndex + Case 0 + datagap = Val(txtDataGapValue.Text) + Case 1 + datagap = Val(txtDataGapValue.Text) * 60 + Case 2 + datagap = Val(txtDataGapValue.Text) * 60 * 60 + Case 3 + datagap = Val(txtDataGapValue.Text) * 60 * 60 * 24 + Case Else + datagap = Val(txtDataGapValue.Text) + End Select + + If pTimeSeriesPlot.HasEditingCurve() Then + pTimeSeriesPlot.ChangeZvalueWithDataGap(datagap) + Else + DataGapFilter(datagap) + End If + + End If + + If pTimeSeriesPlot.HasEditingCurve() Then + ReflectZvalue() + End If + + pTimeSeriesPlot.Refreshing() + + End Sub + + 'Change Y value by add, minus or setting it directing + Public Sub btnChangeYValue_Click() + If Editing Then + If dgvDataValues.SelectedRows.Count >= 1 Then + Dim frmChangeYValue As ChangeYValue + frmChangeYValue = New ChangeYValue() + frmChangeYValue._cEditView = Me + 'frmChangeYValue.Show() + + frmChangeYValue.ShowDialog() + frmChangeYValue = Nothing + Else + MsgBox(ErrMsgForNotPointSelected) + End If + Else + MsgBox(ErrMsgForNotEditing) + End If + End Sub + + 'Change Y value by Interpolating + Public Sub btnInterpolate_Click() + If Editing Then + If MsgBox(" The Selected Value Range will be Interpolated." + Environment.NewLine + + " This creates new intermediary data points." + Environment.NewLine + Environment.NewLine + + "Are You Sure You Want to Interpolate the Selected Values?", MsgBoxStyle.YesNo Or vbDefaultButton2, "Question") = MsgBoxResult.Yes Then + If dgvDataValues.SelectedRows.Count >= 1 Then + Dim returned As Boolean = False + If pTimeSeriesPlot.HasEditingCurve Then + 'pTimeSeriesPlot.ChangeValueByInterpolating(returned) + ChangeValueByInterpolating(returned) + pTimeSeriesPlot.ReplotEditingCurve(Me) + Else + ChangeValueByInterpolating(returned) + End If + RefreshDataGridView() + Else + MsgBox(ErrMsgForNotPointSelected) + End If + End If + Else + MsgBox(ErrMsgForNotEditing) + End If + + End Sub + + Public Sub btnFlag_Click() + If Editing Then + If dgvDataValues.SelectedRows.Count >= 1 Then + Dim QualifiersTableManagement As New QualifiersTableManagement() + QualifiersTableManagement._cEditView = Me + QualifiersTableManagement.ShowDialog() + QualifiersTableManagement = Nothing + Else + MsgBox(ErrMsgForNotPointSelected) + End If + Else + MsgBox(ErrMsgForNotEditing) + End If + End Sub + + 'Adding a point + Public Sub btnAddNewPoint_Click() + If Editing Then + Dim frmAddNewPoint As AddNewPoint = New AddNewPoint() + If dgvDataValues.SelectedRows.Count = 2 Then + With dgvDataValues + If .SelectedRows(0).Cells("LocalDateTime").Value < .SelectedRows(1).Cells("LocalDateTime").Value Then + frmAddNewPoint._FirstDate = Convert.ToDateTime(.SelectedRows(0).Cells("LocalDateTime").Value) + frmAddNewPoint._SecondDate = Convert.ToDateTime(.SelectedRows(1).Cells("LocalDateTime").Value) + Else + frmAddNewPoint._FirstDate = Convert.ToDateTime(.SelectedRows(1).Cells("LocalDateTime").Value) + frmAddNewPoint._SecondDate = Convert.ToDateTime(.SelectedRows(0).Cells("LocalDateTime").Value) + End If + End With + frmAddNewPoint.AutoDateTime() + End If + frmAddNewPoint._cEditView = Me + frmAddNewPoint.ShowDialog() + Else + MsgBox(ErrMsgForNotEditing) + End If + End Sub + + Public Function GetSelectedRows() As DataGridViewSelectedRowCollection + Return dgvDataValues.SelectedRows + End Function + + 'Delete the selected point + Public Sub btnDeletePoint_Click() + If Editing Then + Dim selectedRows = GetSelectedRows() + If selectedRows.Count >= 1 Then + If MsgBox("Do you want to delete the point/points?", MsgBoxStyle.OkCancel, "Delete point") = MsgBoxResult.Ok Then + For Each row As DataGridViewRow In selectedRows + row.Cells("Other").Value = -1 + Next + End If + pTimeSeriesPlot.ReplotEditingCurve(Me) + RefreshDataGridView() + Else + MsgBox(ErrMsgForNotPointSelected) + End If + Else + MsgBox(ErrMsgForNotEditing) + End If + End Sub + + 'Associate Table selection with Zvalue(selected points) in the graph Method + Private Sub ReflectZvalue() + Dim IDlist As New List(Of Integer) + Dim eCurve As CurveItem = pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList(0) + For i As Integer = 0 To pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList.Count - 1 + If pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList(i).Color = CurveEditingColor Then + eCurve = pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList(i) + End If + Next + + For i As Integer = 0 To eCurve.Points.Count - 1 + If eCurve.Points(i).Z = 1 Then + IDlist.Add(Val(pTimeSeriesPlot.PointValueID(i))) + End If + Next + + 'Unsubscribe from SelectionChanged event to avoid multiple raising of event + RemoveHandler dgvDataValues.SelectionChanged, AddressOf dgvDataValues_SelectionChanged + + For i As Integer = 0 To dgvDataValues.Rows.Count - 1 + If IDlist.Contains(Val(dgvDataValues.Rows(i).Cells("ValueID").Value)) Then + dgvDataValues.Rows(i).Selected = True + Else + dgvDataValues.Rows(i).Selected = False + End If + Next + + 'Subscribe to SelectionChanged event and fire it + AddHandler dgvDataValues.SelectionChanged, AddressOf dgvDataValues_SelectionChanged + dgvDataValues_SelectionChanged(Me, EventArgs.Empty) + End Sub + + 'Saving changes Method + Public Sub SaveGraphChangesToDatabase() + + Dim ValueIDList As New List(Of Integer) + 'Deleting added points after restore data + For i As Integer = 0 To dgvDataValues.Rows.Count - 1 + ValueIDList.Add(dgvDataValues.Rows(i).Cells("ValueID").Value) + Next + + Dim dv = _dataSeriesRepo.GetDataValuesIDs(newseriesID) + For i As Integer = 0 To dv.Count - 1 + If Not ValueIDList.Contains(dv(i)) Then + _dataValuesRepo.DeleteById(dv(i)) + End If + Next + + 'Setting progress bar + Dim frmloading As ProgressBar = pbProgressBar + frmloading.Visible = True + frmloading.Maximum = dgvDataValues.Rows.Count - 1 + frmloading.Minimum = 0 + frmloading.Value = 0 + + lblstatus.Text = "Saving..." + _dataValuesRepo.UpdateValuesForEditView(Editdt) + + 'Update Data Series + _dataSeriesRepo.UpdateDataSeriesFromDataValues(newseriesID) + + RefreshDataGridView() + pTimeSeriesPlot.ReplotEditingCurve(Me) + + frmloading.Value = 0 + lblstatus.Text = "Ready" + + End Sub + + 'Count the rows of a series + Private Function SeriesRowsCount(ByVal seriesID As Integer) As Integer + Dim series = _dataSeriesRepo.GetByKey(seriesID) + Return If(series Is Nothing, 0, series.ValueCount) + End Function + + 'Reload the Data Grid View + Public Sub RefreshDataGridView() + Editdt.DefaultView.Sort = "[LocalDateTime] Asc" + + dgvDataValues.DataSource = Editdt.DefaultView + ResetGridViewStyle() + End Sub + +#Region "Filters" + 'Value Threshold Filter + Private Sub ValueThresholdFilter(ByVal LargerThanValue As Double, ByVal LessThanValue As Double) + For i As Integer = 0 To dgvDataValues.Rows.Count - 1 + Dim dv = Convert.ToDouble(dgvDataValues.Rows(i).Cells("DataValue").Value) + If LargerThanValue < LessThanValue Then + dgvDataValues.Rows(i).Selected = dv > LargerThanValue And dv < LessThanValue + Else + dgvDataValues.Rows(i).Selected = dv > LargerThanValue Or dv < LessThanValue + End If + Next + End Sub + + 'Value Change Threshold Filter + Public Sub ValueChangeThreshold(ByVal ValueChange As Double) + dgvDataValues.ClearSelection() + + For i As Integer = 1 To dgvDataValues.Rows.Count - 1 + If (Math.Abs(dgvDataValues.Rows(i).Cells("DataValue").Value - dgvDataValues.Rows(i - 1).Cells("DataValue").Value) > ValueChange) Then + dgvDataValues.Rows(i).Selected = True + dgvDataValues.Rows(i - 1).Selected = True + End If + Next + End Sub + + 'Date Filter + Private Sub DateFilter(ByVal DateBefore As DateTime, ByVal DateAfter As DateTime) + For i As Integer = 0 To dgvDataValues.Rows.Count - 1 + If DateAfter > DateBefore Then + dgvDataValues.Rows(i).Selected = dgvDataValues.Rows(i).Cells("LocalDateTime").Value >= DateAfter Or dgvDataValues.Rows(i).Cells("LocalDateTime").Value <= DateBefore + Else + dgvDataValues.Rows(i).Selected = dgvDataValues.Rows(i).Cells("LocalDateTime").Value >= DateAfter And dgvDataValues.Rows(i).Cells("LocalDateTime").Value <= DateBefore + End If + Next + End Sub + + 'Data Gap Filter + Public Sub DataGapFilter(ByVal GapInSecond As Integer) + Dim different As Long + Dim date1 As DateTime + Dim date2 As DateTime + + dgvDataValues.Rows(0).Selected = False + + For i As Integer = 1 To dgvDataValues.Rows.Count - 1 + date1 = dgvDataValues.Rows(i).Cells("LocalDateTime").Value + date2 = dgvDataValues.Rows(i - 1).Cells("LocalDateTime").Value + different = DateDiff(DateInterval.Second, date1, date2, FirstDayOfWeek.Monday, FirstWeekOfYear.Jan1) + + If Math.Abs(different) > GapInSecond Then + dgvDataValues.Rows(i).Selected = True + dgvDataValues.Rows(i - 1).Selected = True + Else + dgvDataValues.Rows(i).Selected = False + End If + + Next + End Sub + +#End Region + +#Region "Change Value Function" + + Public Sub ChangeValueByAddOrMinus(ByVal Adding As Boolean, ByVal values As Double) + For Each row As DataGridViewRow In GetSelectedRows() + If Adding Then + row.Cells("DataValue").Value += values + Else + row.Cells("DataValue").Value -= values + End If + + If Not row.Cells("Other").Value = -1 And Not row.Cells("Other").Value = 1 Then + row.Cells("Other").Value = 2 + End If + Next + End Sub + + Public Sub ChangeValueByMultiply(ByVal Multiplier As Double) + For Each row As DataGridViewRow In GetSelectedRows() + row.Cells("DataValue").Value *= Multiplier + If Not row.Cells("Other").Value = -1 And Not row.Cells("Other").Value = 1 Then + row.Cells("Other").Value = 2 + End If + Next + End Sub + + Public Sub ChangeValueBySettingValue(ByVal value As Double) + For Each row As DataGridViewRow In GetSelectedRows() + row.Cells("DataValue").Value = value + If Not row.Cells("Other").Value = -1 And Not row.Cells("Other").Value = 1 Then + row.Cells("Other").Value = 2 + End If + Next + End Sub + + Private Sub ChangeValueByInterpolating(ByRef returned As Boolean) + Dim i As Integer = 1 + Dim count As Integer = 1 + Dim difference As Double + + 'Check if the first point and last point is selected + If dgvDataValues.Rows(0).Selected Or dgvDataValues.Rows(dgvDataValues.Rows.Count - 1).Selected Then + MsgBox("You cannot interpolate with the first point or last point selected.") + returned = True + Return + End If + + i = 1 + Do Until (i >= dgvDataValues.Rows.Count - 2) + If dgvDataValues.Rows(i).Selected Then + If Not dgvDataValues.Rows(i + 1).Selected = 1 Then + difference = Editdt.Rows(i - 1)("DataValue") + Editdt.Rows(i + 1)("DataValue") + Editdt.Rows(i)("DataValue") = difference / 2 + If Not Editdt.Rows(i)("Other") = -1 And Not Editdt.Rows(i)("Other") = 1 Then + Editdt.Rows(i)("Other") = 2 + End If + i += 1 + Else + count = 1 + Do Until Not (dgvDataValues.Rows(i + 1).Selected = 1) + count += 1 + i += 1 + Loop + difference = (Editdt.Rows(i + 1)("DataValue") - Editdt.Rows(i - count)("DataValue")) + For j As Integer = 1 To count + Editdt.Rows(i + 1 - j)("DataValue") = Editdt.Rows(i + 1)("DataValue") - difference / (count + 1) * j + If Not Editdt.Rows(i + 1 - j)("Other") = -1 And Not Editdt.Rows(i + 1 - j)("Other") = 1 Then + Editdt.Rows(i + 1 - j)("Other") = 2 + End If + Next + End If + Else + i += 1 + End If + Loop + + End Sub + +#End Region + +#End Region + + Private Sub dgvDataValues_SelectionChanged(sender As System.Object, e As EventArgs) Handles dgvDataValues.SelectionChanged + Dim selectedRows = GetSelectedRows() + Dim IDlist As New List(Of Int32)(selectedRows.Count) + IDlist.AddRange(From row As DataGridViewRow In selectedRows Select CType(row.Cells("ValueID").Value, Integer)) + + pTimeSeriesPlot.SelectingPoints(IDlist) + pTimeSeriesPlot.Refreshing() + + ' Show info about selection + lblstatus.Text = String.Format("{0} out of {1} values selected", selectedRows.Count, Editdt.Rows.Count) + End Sub + + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/MethodTableManagement.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/MethodTableManagement.Designer.vb new file mode 100644 index 00000000..67248cef --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/MethodTableManagement.Designer.vb @@ -0,0 +1,127 @@ +Imports HydroDesktop.Plugins.EditView + +Namespace HydroDesktop.Plugins.Controls + + _ + Partial Class MethodTableManagement + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.ConfigBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.btnSubmit = New System.Windows.Forms.Button() + Me.txtDescription = New System.Windows.Forms.TextBox() + Me.txtLink = New System.Windows.Forms.TextBox() + Me.lblDescription = New System.Windows.Forms.Label() + Me.lblLink = New System.Windows.Forms.Label() + Me.btnCancel = New System.Windows.Forms.Button() + CType(Me.ConfigBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'ConfigBindingSource + ' + Me.ConfigBindingSource.DataSource = GetType(HydroDesktop.Configuration.Settings) + ' + 'btnSubmit + ' + Me.btnSubmit.DialogResult = System.Windows.Forms.DialogResult.OK + Me.btnSubmit.Location = New System.Drawing.Point(12, 129) + Me.btnSubmit.Name = "btnSubmit" + Me.btnSubmit.Size = New System.Drawing.Size(202, 31) + Me.btnSubmit.TabIndex = 17 + Me.btnSubmit.UseVisualStyleBackColor = True + ' + 'txtDescription + ' + Me.txtDescription.Location = New System.Drawing.Point(82, 17) + Me.txtDescription.Multiline = True + Me.txtDescription.Name = "txtDescription" + Me.txtDescription.Size = New System.Drawing.Size(343, 59) + Me.txtDescription.TabIndex = 16 + ' + 'txtLink + ' + Me.txtLink.Location = New System.Drawing.Point(82, 92) + Me.txtLink.Name = "txtLink" + Me.txtLink.Size = New System.Drawing.Size(343, 20) + Me.txtLink.TabIndex = 14 + ' + 'lblDescription + ' + Me.lblDescription.AutoSize = True + Me.lblDescription.Location = New System.Drawing.Point(13, 20) + Me.lblDescription.Name = "lblDescription" + Me.lblDescription.Size = New System.Drawing.Size(63, 13) + Me.lblDescription.TabIndex = 13 + Me.lblDescription.Text = "Description:" + ' + 'lblLink + ' + Me.lblLink.AutoSize = True + Me.lblLink.Location = New System.Drawing.Point(13, 95) + Me.lblLink.Name = "lblLink" + Me.lblLink.Size = New System.Drawing.Size(30, 13) + Me.lblLink.TabIndex = 18 + Me.lblLink.Text = "Link:" + ' + 'btnCancel + ' + Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.btnCancel.Location = New System.Drawing.Point(220, 129) + Me.btnCancel.Name = "btnCancel" + Me.btnCancel.Size = New System.Drawing.Size(205, 31) + Me.btnCancel.TabIndex = 19 + Me.btnCancel.Text = "Cancel" + Me.btnCancel.UseVisualStyleBackColor = True + ' + 'fMethodTableManagement + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(437, 170) + Me.Controls.Add(Me.btnCancel) + Me.Controls.Add(Me.lblLink) + Me.Controls.Add(Me.btnSubmit) + Me.Controls.Add(Me.txtDescription) + Me.Controls.Add(Me.txtLink) + Me.Controls.Add(Me.lblDescription) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "fMethodTableManagement" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "Method Table Management" + CType(Me.ConfigBindingSource, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ConfigBindingSource As System.Windows.Forms.BindingSource + Friend WithEvents btnSubmit As System.Windows.Forms.Button + Friend WithEvents txtDescription As System.Windows.Forms.TextBox + Friend WithEvents txtLink As System.Windows.Forms.TextBox + Friend WithEvents lblDescription As System.Windows.Forms.Label + Friend WithEvents lblLink As System.Windows.Forms.Label + Friend WithEvents btnCancel As System.Windows.Forms.Button + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/MethodTableManagement.resx b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/MethodTableManagement.resx new file mode 100644 index 00000000..d6fe09ff --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/MethodTableManagement.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/MethodTableManagement.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/MethodTableManagement.vb new file mode 100644 index 00000000..62778dbc --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/MethodTableManagement.vb @@ -0,0 +1,63 @@ +Imports HydroDesktop.Database +Imports HydroDesktop.Interfaces + +Namespace HydroDesktop.Plugins.Controls + + Public Class MethodTableManagement + + ReadOnly repo As IMethodsRepository = RepositoryFactory.Instance.Get(Of IMethodsRepository)() + Private _MethodID As Long? + + Public Sub New() + InitializeComponent() + End Sub + + Private Sub CloseMe() Handles Me.Leave, btnCancel.Click + Close() + End Sub + + Public Sub initialize(ByVal mId As Int64?) + _MethodID = mId + If Not _MethodID.HasValue Then + btnSubmit.Text = "Add" + Else + Dim method = repo.GetByKey(_MethodID.Value) + txtDescription.Text = method.Description + txtLink.Text = method.Link + btnSubmit.Text = "Edit" + End If + End Sub + + Public ReadOnly Property MethodID() As Long? + Get + Return _MethodID + End Get + End Property + + Private Sub InsertNewMethod() + _MethodID = repo.InsertMethod(txtDescription.Text.ToString, txtLink.Text.ToString) + End Sub + + Private Sub UpdateMethod() + repo.UpdateMethod(_MethodID, txtDescription.Text.ToString, txtLink.Text.ToString) + End Sub + + Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnSubmit.Click + 'If the user did not enter things in text boxes, some action will be acted before making any changes in the database + If txtDescription.Text = Nothing Then + txtDescription.Text = "unknown" + End If + If txtLink.Text = Nothing Then + txtLink.Text = "unknown" + End If + + If Not _MethodID.HasValue Then + InsertNewMethod() + Else + UpdateMethod() + End If + + Close() + End Sub + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualifiersTableManagement.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualifiersTableManagement.Designer.vb new file mode 100644 index 00000000..26064a0e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualifiersTableManagement.Designer.vb @@ -0,0 +1,151 @@ +Imports HydroDesktop.Plugins.EditView + +Namespace HydroDesktop.Plugins.Controls + + _ + Partial Class QualifiersTableManagement + Inherits System.Windows.Forms.Form + Public _cEditView As EditView + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.ConfigBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.btnSubmit = New System.Windows.Forms.Button() + Me.txtDescription = New System.Windows.Forms.TextBox() + Me.txtQualifierCode = New System.Windows.Forms.TextBox() + Me.lblDescription = New System.Windows.Forms.Label() + Me.lblLink = New System.Windows.Forms.Label() + Me.lblSetTo = New System.Windows.Forms.Label() + Me.ddlQualifiers = New System.Windows.Forms.ComboBox() + Me.btnCancel = New System.Windows.Forms.Button() + CType(Me.ConfigBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'ConfigBindingSource + ' + Me.ConfigBindingSource.DataSource = GetType(HydroDesktop.Configuration.Settings) + ' + 'btnSubmit + ' + Me.btnSubmit.Location = New System.Drawing.Point(15, 152) + Me.btnSubmit.Name = "btnSubmit" + Me.btnSubmit.Size = New System.Drawing.Size(201, 31) + Me.btnSubmit.TabIndex = 17 + Me.btnSubmit.Text = "Set" + Me.btnSubmit.UseVisualStyleBackColor = True + ' + 'txtDescription + ' + Me.txtDescription.Location = New System.Drawing.Point(94, 87) + Me.txtDescription.Multiline = True + Me.txtDescription.Name = "txtDescription" + Me.txtDescription.Size = New System.Drawing.Size(331, 59) + Me.txtDescription.TabIndex = 16 + ' + 'txtQualifierCode + ' + Me.txtQualifierCode.Location = New System.Drawing.Point(94, 51) + Me.txtQualifierCode.Name = "txtQualifierCode" + Me.txtQualifierCode.Size = New System.Drawing.Size(331, 20) + Me.txtQualifierCode.TabIndex = 14 + ' + 'lblDescription + ' + Me.lblDescription.AutoSize = True + Me.lblDescription.Location = New System.Drawing.Point(12, 87) + Me.lblDescription.Name = "lblDescription" + Me.lblDescription.Size = New System.Drawing.Size(63, 13) + Me.lblDescription.TabIndex = 13 + Me.lblDescription.Text = "Description:" + ' + 'lblLink + ' + Me.lblLink.AutoSize = True + Me.lblLink.Location = New System.Drawing.Point(12, 54) + Me.lblLink.Name = "lblLink" + Me.lblLink.Size = New System.Drawing.Size(76, 13) + Me.lblLink.TabIndex = 18 + Me.lblLink.Text = "Qualifier Code:" + ' + 'lblSetTo + ' + Me.lblSetTo.AutoSize = True + Me.lblSetTo.Location = New System.Drawing.Point(15, 13) + Me.lblSetTo.Name = "lblSetTo" + Me.lblSetTo.Size = New System.Drawing.Size(97, 13) + Me.lblSetTo.TabIndex = 19 + Me.lblSetTo.Text = "Set the Qualifier to:" + ' + 'ddlQualifiers + ' + Me.ddlQualifiers.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.ddlQualifiers.FormattingEnabled = True + Me.ddlQualifiers.Location = New System.Drawing.Point(119, 13) + Me.ddlQualifiers.Name = "ddlQualifiers" + Me.ddlQualifiers.Size = New System.Drawing.Size(306, 21) + Me.ddlQualifiers.TabIndex = 20 + ' + 'btnCancel + ' + Me.btnCancel.Location = New System.Drawing.Point(222, 152) + Me.btnCancel.Name = "btnCancel" + Me.btnCancel.Size = New System.Drawing.Size(203, 31) + Me.btnCancel.TabIndex = 21 + Me.btnCancel.Text = "Cancel" + Me.btnCancel.UseVisualStyleBackColor = True + ' + 'QualifiersTableManagement + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(437, 188) + Me.Controls.Add(Me.btnCancel) + Me.Controls.Add(Me.ddlQualifiers) + Me.Controls.Add(Me.lblSetTo) + Me.Controls.Add(Me.lblLink) + Me.Controls.Add(Me.btnSubmit) + Me.Controls.Add(Me.txtDescription) + Me.Controls.Add(Me.txtQualifierCode) + Me.Controls.Add(Me.lblDescription) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "QualifiersTableManagement" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "Flag Values with Qualifiers" + CType(Me.ConfigBindingSource, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ConfigBindingSource As System.Windows.Forms.BindingSource + Friend WithEvents btnSubmit As System.Windows.Forms.Button + Friend WithEvents txtDescription As System.Windows.Forms.TextBox + Friend WithEvents txtQualifierCode As System.Windows.Forms.TextBox + Friend WithEvents lblDescription As System.Windows.Forms.Label + Friend WithEvents lblLink As System.Windows.Forms.Label + Friend WithEvents lblSetTo As System.Windows.Forms.Label + Friend WithEvents ddlQualifiers As System.Windows.Forms.ComboBox + Friend WithEvents btnCancel As System.Windows.Forms.Button + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualifiersTableManagement.resx b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualifiersTableManagement.resx new file mode 100644 index 00000000..d6fe09ff --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualifiersTableManagement.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualifiersTableManagement.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualifiersTableManagement.vb new file mode 100644 index 00000000..3a5d660d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualifiersTableManagement.vb @@ -0,0 +1,70 @@ +Imports System.Windows.Forms +Imports HydroDesktop.Database +Imports HydroDesktop.Interfaces +Imports HydroDesktop.Interfaces.ObjectModel + +Namespace HydroDesktop.Plugins.Controls + + + Public Class QualifiersTableManagement + Private ReadOnly _qualifierRepo As IQualifiersRepository = RepositoryFactory.Instance.Get(Of IQualifiersRepository)() + + Public Sub New() + InitializeComponent() + initialize() + End Sub + + Private Sub initialize() + Dim dt = _qualifierRepo.AsDataTable() + dt.Rows.Add() + dt.Rows(dt.Rows.Count - 1).Item("QualifierID") = 0 + dt.Rows(dt.Rows.Count - 1).Item("QualifierCode") = "New Qualifier..." + + ddlQualifiers.DataSource = dt + ddlQualifiers.DisplayMember = "QualifierCode" + ddlQualifiers.ValueMember = "QualifierID" + + ddlQualifiers.SelectedItem = ddlQualifiers.Items(ddlQualifiers.Items.Count - 1) + + End Sub + + Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit.Click + Dim entity = New Qualifier() + entity.Id = ddlQualifiers.SelectedValue + entity.Code = txtQualifierCode.Text + entity.Description = txtDescription.Text + + If ddlQualifiers.SelectedIndex = ddlQualifiers.Items.Count - 1 Then + _qualifierRepo.AddQualifier(entity) + Else + _qualifierRepo.Update(entity) + End If + + For Each row As DataGridViewRow In _cEditView.GetSelectedRows() + row.Cells("QualifierCode").Value = txtQualifierCode.Text + If Not row.Cells("Other").Value = -1 And Not row.Cells("Other").Value = 1 Then + row.Cells("Other").Value = 2 + End If + Next + + _cEditView.RefreshDataGridView() + _cEditView.pTimeSeriesPlot.ReplotEditingCurve(_cEditView) + + Me.Close() + End Sub + + Private Sub ddlQualifiers_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlQualifiers.SelectedIndexChanged + If ddlQualifiers.SelectedIndex = ddlQualifiers.Items.Count - 1 Then + Else + txtDescription.Text = DirectCast(ddlQualifiers.DataSource, DataTable).Rows(ddlQualifiers.SelectedIndex)("QualifierDescription") + txtQualifierCode.Text = DirectCast(ddlQualifiers.DataSource, DataTable).Rows(ddlQualifiers.SelectedIndex)("QualifierCode") + End If + End Sub + + Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click + Me.Close() + End Sub + + + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualityControlLevelTableManagement.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualityControlLevelTableManagement.Designer.vb new file mode 100644 index 00000000..f020db9e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualityControlLevelTableManagement.Designer.vb @@ -0,0 +1,149 @@ +Imports HydroDesktop.Plugins.EditView + +Namespace HydroDesktop.Plugins.Controls + + _ + Partial Class QualityControlLevelTableManagement + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.ConfigBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.lblCode = New System.Windows.Forms.Label() + Me.txtCode = New System.Windows.Forms.TextBox() + Me.lblDefinition = New System.Windows.Forms.Label() + Me.txtDefinition = New System.Windows.Forms.TextBox() + Me.lblExplanation = New System.Windows.Forms.Label() + Me.txtExplanation = New System.Windows.Forms.TextBox() + Me.btnSubmit = New System.Windows.Forms.Button() + Me.btnCancel = New System.Windows.Forms.Button() + CType(Me.ConfigBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'ConfigBindingSource + ' + Me.ConfigBindingSource.DataSource = GetType(HydroDesktop.Configuration.Settings) + ' + 'lblCode + ' + Me.lblCode.AutoSize = True + Me.lblCode.Location = New System.Drawing.Point(13, 17) + Me.lblCode.Name = "lblCode" + Me.lblCode.Size = New System.Drawing.Size(107, 13) + Me.lblCode.TabIndex = 2 + Me.lblCode.Text = "Quality Control Level:" + ' + 'txtCode + ' + Me.txtCode.Location = New System.Drawing.Point(126, 10) + Me.txtCode.Name = "txtCode" + Me.txtCode.Size = New System.Drawing.Size(362, 20) + Me.txtCode.TabIndex = 3 + ' + 'lblDefinition + ' + Me.lblDefinition.AutoSize = True + Me.lblDefinition.Location = New System.Drawing.Point(13, 49) + Me.lblDefinition.Name = "lblDefinition" + Me.lblDefinition.Size = New System.Drawing.Size(54, 13) + Me.lblDefinition.TabIndex = 4 + Me.lblDefinition.Text = "Definition:" + ' + 'txtDefinition + ' + Me.txtDefinition.Location = New System.Drawing.Point(73, 46) + Me.txtDefinition.Name = "txtDefinition" + Me.txtDefinition.Size = New System.Drawing.Size(415, 20) + Me.txtDefinition.TabIndex = 5 + ' + 'lblExplanation + ' + Me.lblExplanation.AutoSize = True + Me.lblExplanation.Location = New System.Drawing.Point(13, 82) + Me.lblExplanation.Name = "lblExplanation" + Me.lblExplanation.Size = New System.Drawing.Size(65, 13) + Me.lblExplanation.TabIndex = 6 + Me.lblExplanation.Text = "Explanation:" + ' + 'txtExplanation + ' + Me.txtExplanation.Location = New System.Drawing.Point(84, 79) + Me.txtExplanation.Multiline = True + Me.txtExplanation.Name = "txtExplanation" + Me.txtExplanation.Size = New System.Drawing.Size(404, 94) + Me.txtExplanation.TabIndex = 7 + ' + 'btnSubmit + ' + Me.btnSubmit.DialogResult = System.Windows.Forms.DialogResult.OK + Me.btnSubmit.Location = New System.Drawing.Point(16, 179) + Me.btnSubmit.Name = "btnSubmit" + Me.btnSubmit.Size = New System.Drawing.Size(234, 31) + Me.btnSubmit.TabIndex = 8 + Me.btnSubmit.UseVisualStyleBackColor = True + ' + 'btnCancel + ' + Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.btnCancel.Location = New System.Drawing.Point(256, 179) + Me.btnCancel.Name = "btnCancel" + Me.btnCancel.Size = New System.Drawing.Size(232, 31) + Me.btnCancel.TabIndex = 9 + Me.btnCancel.Text = "Cancel" + Me.btnCancel.UseVisualStyleBackColor = True + ' + 'fQualityControlLevelTableManagement + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(500, 210) + Me.Controls.Add(Me.btnCancel) + Me.Controls.Add(Me.btnSubmit) + Me.Controls.Add(Me.txtExplanation) + Me.Controls.Add(Me.lblExplanation) + Me.Controls.Add(Me.txtDefinition) + Me.Controls.Add(Me.lblDefinition) + Me.Controls.Add(Me.txtCode) + Me.Controls.Add(Me.lblCode) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "fQualityControlLevelTableManagement" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "Quality Control Level Table Management" + CType(Me.ConfigBindingSource, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ConfigBindingSource As System.Windows.Forms.BindingSource + Friend WithEvents lblCode As System.Windows.Forms.Label + Friend WithEvents txtCode As System.Windows.Forms.TextBox + Friend WithEvents lblDefinition As System.Windows.Forms.Label + Friend WithEvents txtDefinition As System.Windows.Forms.TextBox + Friend WithEvents lblExplanation As System.Windows.Forms.Label + Friend WithEvents txtExplanation As System.Windows.Forms.TextBox + Friend WithEvents btnSubmit As System.Windows.Forms.Button + Friend WithEvents btnCancel As System.Windows.Forms.Button + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualityControlLevelTableManagement.resx b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualityControlLevelTableManagement.resx new file mode 100644 index 00000000..d6fe09ff --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualityControlLevelTableManagement.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualityControlLevelTableManagement.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualityControlLevelTableManagement.vb new file mode 100644 index 00000000..9be0630f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/QualityControlLevelTableManagement.vb @@ -0,0 +1,75 @@ +Imports HydroDesktop.Database +Imports HydroDesktop.Interfaces +Imports HydroDesktop.Interfaces.ObjectModel + +Namespace HydroDesktop.Plugins.Controls + + + Public Class QualityControlLevelTableManagement + + Private ReadOnly _repo As IQualityControlLevelsRepository = RepositoryFactory.Instance.Get(Of IQualityControlLevelsRepository)() + Private _QualityControlLevelID As Int64? + + Public Sub New() + + InitializeComponent() + + End Sub + + Private Sub CloseMe() Handles Me.Leave, btnCancel.Click + Close() + End Sub + + Public ReadOnly Property QualityControlLevelID() As Int64? + Get + Return _QualityControlLevelID + End Get + End Property + + Public Sub initialize(ByVal qId As Int64?) + _QualityControlLevelID = qId + + If Not _QualityControlLevelID.HasValue Then + btnSubmit.Text = "Add" + Else 'else means the user clicked "Edit Quality Control Level" button + Dim entity = _repo.GetByKey(_QualityControlLevelID.Value) + + txtCode.Text = entity.Code + txtDefinition.Text = entity.Definition + txtExplanation.Text = entity.Explanation + + btnSubmit.Text = "Edit" + End If + End Sub + + Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnSubmit.Click + If txtCode.Text = Nothing Then + MsgBox("Please at least enter the Quality Control Level") + Return + End If + If txtDefinition.Text = Nothing Then + txtDefinition.Text = "unknown" + End If + If txtExplanation.Text = Nothing Then + txtExplanation.Text = "unknown" + End If + + Dim entity = New QualityControlLevel() + entity.Code = txtCode.Text + entity.Explanation = txtExplanation.Text + entity.Definition = txtDefinition.Text + + If Not _QualityControlLevelID.HasValue Then + _repo.AddNew(entity) + _QualityControlLevelID = entity.Id + Else + entity.Id = _QualityControlLevelID.Value + _repo.Update(entity) + End If + + Close() + End Sub + + + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/TimeSeriesPlot.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/TimeSeriesPlot.Designer.vb new file mode 100644 index 00000000..1f91d2c0 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/TimeSeriesPlot.Designer.vb @@ -0,0 +1,61 @@ +Imports HydroDesktop.ZedGraphEx + +Namespace HydroDesktop.Plugins.Controls + _ + Partial Class TimeSeriesPlot + Inherits System.Windows.Forms.UserControl + + 'UserControl overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container + Me.zgTimeSeries = New ZedGraphControlEx + Me.SuspendLayout() + ' + 'zgTimeSeries + ' + Me.zgTimeSeries.AutoScroll = True + Me.zgTimeSeries.Dock = System.Windows.Forms.DockStyle.Fill + Me.zgTimeSeries.Location = New System.Drawing.Point(0, 0) + Me.zgTimeSeries.Name = "zgTimeSeries" + Me.zgTimeSeries.ScrollGrace = 0 + Me.zgTimeSeries.ScrollMaxX = 0 + Me.zgTimeSeries.ScrollMaxY = 0 + Me.zgTimeSeries.ScrollMaxY2 = 0 + Me.zgTimeSeries.ScrollMinX = 0 + Me.zgTimeSeries.ScrollMinY = 0 + Me.zgTimeSeries.ScrollMinY2 = 0 + Me.zgTimeSeries.Size = New System.Drawing.Size(200, 200) + Me.zgTimeSeries.TabIndex = 0 + ' + 'cTimeSeriesPlot + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.Controls.Add(Me.zgTimeSeries) + Me.Name = "cTimeSeriesPlot" + Me.Size = New System.Drawing.Size(200, 200) + Me.ResumeLayout(False) + + End Sub + Friend WithEvents zgTimeSeries As ZedGraphControlEx + + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/TimeSeriesPlot.resx b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/TimeSeriesPlot.resx new file mode 100644 index 00000000..c7e0d4bd --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/TimeSeriesPlot.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/TimeSeriesPlot.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/TimeSeriesPlot.vb new file mode 100644 index 00000000..721538ed --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/TimeSeriesPlot.vb @@ -0,0 +1,919 @@ +Imports System.Windows.Forms +Imports HydroDesktop.Common.Tools +Imports ZedGraph +Imports System.Drawing + +Namespace HydroDesktop.Plugins.Controls + + Public Class TimeSeriesPlot + + Public Sub New() + ' This call is required by the Windows Form Designer. + InitializeComponent() + + ' Add any initialization after the InitializeComponent() call. + Dim gPane As GraphPane = zgTimeSeries.GraphPane + gPane.XAxis.Type = AxisType.Date + gPane.YAxis.Type = AxisType.Linear + gPane.Border.IsVisible = False + gPane.Legend.IsVisible = False + SettingColor() + End Sub + + + Private Const XColumn As String = "LocalDateTime" + Private Const YColumn As String = "DataValue" + + Private Shared m_Data As DataTable + Private Shared m_Site As String + Private Shared m_VariableWithUnits As String + Private Shared m_Variable As String + Private Shared m_Options As PlotOptions + Private Shared m_SeriesID As Integer + + Public EditCurvePointList As PointPairList + Public EditCurveLable As String + Public EditCurveTitle As String + + Private ReadOnly ccList0 As New ArrayList() + + Private Sub SettingColor() + ccList0.Clear() + ccList0.Add(Color.FromArgb(106, 61, 154)) + ccList0.Add(Color.FromArgb(202, 178, 214)) + ccList0.Add(Color.FromArgb(255, 127, 0)) + ccList0.Add(Color.FromArgb(253, 191, 111)) + ccList0.Add(Color.FromArgb(227, 26, 28)) + ccList0.Add(Color.FromArgb(251, 154, 153)) + ccList0.Add(Color.FromArgb(51, 160, 44)) + ccList0.Add(Color.FromArgb(178, 223, 138)) + ccList0.Add(Color.FromArgb(31, 120, 180)) + ccList0.Add(Color.FromArgb(166, 206, 227)) + End Sub + + + Public Sub Plot(ByVal objDataTable As Data.DataTable, ByVal strSiteName As String, ByVal strVariableName As String, ByVal strVariableUnits As String, ByRef objOptions As PlotOptions, ByRef intSeriesID As Integer) + Try + m_Data = objDataTable + m_Site = strSiteName + m_Variable = strVariableName + m_VariableWithUnits = strVariableName & " - " & strVariableUnits + m_Options = objOptions + m_SeriesID = intSeriesID + + Graph() + + Catch ex As Exception + Throw New Exception("Error Occured in ZGTimeSeries.Plot" & vbCrLf & ex.Message) + End Try + End Sub + + Public Sub Replot(ByVal options As PlotOptions) + Try + m_Options = options + Graph() + Catch ex As Exception + Throw New Exception("Error Occured in ZGTimeSeries.Replot" & vbCrLf & ex.Message) + End Try + End Sub + + Public Sub Clear() + Try + Dim gPane As GraphPane = zgTimeSeries.GraphPane + If gPane Is Nothing Then Return + If gPane.CurveList Is Nothing Then Return + 'm_Data.Clear() + gPane.CurveList.Clear() + gPane.XAxis.IsVisible = False + gPane.YAxis.IsVisible = False + zgTimeSeries.IsShowVScrollBar = False + zgTimeSeries.IsShowHScrollBar = False + gPane.Title.Text = "No Data To Plot" + 'Graph() + + Catch ex As Exception + Throw New Exception("Error Occured in ZGTimeSeries.Clear" & vbCrLf & ex.Message) + End Try + End Sub + + Protected Sub Graph() + Try + Dim gPane As GraphPane = zgTimeSeries.GraphPane + Dim i As Integer = 0 + Dim IsInYAxis As Boolean = False + 'gPane.CurveList.Clear() + + + If (m_Data Is Nothing) Or (m_Data.Rows.Count <= 0) Then + gPane.XAxis.IsVisible = False + gPane.YAxis.IsVisible = False + zgTimeSeries.IsShowVScrollBar = False + zgTimeSeries.IsShowHScrollBar = False + gPane.Title.Text = "No Data To Plot" + Else + 'Setting Legend + gPane.Legend.IsVisible = True + gPane.Legend.Position = 12 + + + 'Setting Scroll and scale + zgTimeSeries.ZoomOutAll(gPane) + zgTimeSeries.IsShowVScrollBar = True + zgTimeSeries.IsShowHScrollBar = True + zgTimeSeries.IsAutoScrollRange = True + 'gPane.YAxis.Scale.MagAuto = False + 'Setting Axises + gPane.XAxis.IsVisible = True + gPane.XAxis.Title.Text = "Date and Time" + 'gPane.YAxis.IsVisible = True + 'gPane.YAxis.Title.Text = m_Var + 'Setting Title + 'If Not (gPane.Title.Text = "Alarm! It is not good comparison (Different variables)") Then + ' If (gPane.Title.Text Like (m_Var + "*")) Then + ' gPane.Title.Text = m_Var + ' ElseIf (gPane.Title.Text = "Title") Or _ + ' (gPane.Title.Text = "No Data To Plot") Then + gPane.Title.Text = m_VariableWithUnits & vbCrLf & " at " & m_Site + ' gPane.Legend.IsVisible = False + ' Else + ' gPane.Title.Text = "Alarm! It is not good comparison (Different variables)" + ' End If + 'End If + + 'Dim pointList As New ZedGraph.DataSourcePointList + 'pointList.XDataMember = XColumn + 'pointList.YDataMember = YColumn + 'pointList.DataSource = m_Data + 'pointList.TagDataMember = "CensorCode" + + Dim pointList As New PointPairList + + + For Each row As DataRow In m_Data.Rows + Dim p As New PointPair(New XDate(CDate(row.Item(XColumn))), row.Item(YColumn)) + p.Tag = row.Item("CensorCode").ToString + If m_Options.IsPlotCensored Then + If (p.Tag.ToString.ToLower = Statistics.NotCensored) Or (p.Tag.ToString.ToLower = Statistics.Unknown) Then + p.ColorValue = 0 + Else + p.ColorValue = 1 + End If + p.Tag = row.Item("ValueID").ToString + ", " + row.Item("LocalDateTime").ToString + ": " + row.Item("DataValue").ToString + pointList.Add(p) + Else + If Not ((p.Tag.ToString.ToLower = Statistics.NotCensored) Or (p.Tag.ToString.ToLower = Statistics.Unknown)) Then + pointList.Add(p) + p.Tag = row.Item("ValueID").ToString + ", " + row.Item("LocalDateTime").ToString + ": " + row.Item("DataValue").ToString + End If + End If + Next row + + + + Dim curve As LineItem = gPane.AddCurve(m_Site, pointList, m_Options.GetLineColor, SymbolType.Circle) + SettingCurveStyle(curve) + Select Case m_Options.TimeSeriesMethod + Case PlotOptions.TimeSeriesType.Line + curve.Line.IsVisible = True + curve.Symbol.IsVisible = False + Case PlotOptions.TimeSeriesType.Point + curve.Line.IsVisible = False + curve.Symbol.IsVisible = True + Case PlotOptions.TimeSeriesType.None + curve.Line.IsVisible = False + curve.Symbol.IsVisible = False + Case Else + curve.Line.IsVisible = True + curve.Symbol.IsVisible = True + End Select + + curve.Label.Text += ", " + m_Variable + ", ID: " + m_SeriesID.ToString + + 'Setting Y Axis + curve.Link.Title = m_VariableWithUnits + If gPane.CurveList.Count = 1 Then + With gPane.YAxis + .Scale.MagAuto = False + .IsVisible = True + .Title.Text = m_VariableWithUnits + '.Scale.FontSpec.FontColor = curve.Color + '.Title.FontSpec.FontColor = curve.Color + '.Color = curve.Color + curve.IsY2Axis = False + curve.YAxisIndex = 0 + End With + End If + While Not i >= gPane.YAxisList.Count + If gPane.YAxisList(i).Title.Text = curve.Link.Title Then + curve.IsY2Axis = False + curve.YAxisIndex = i + IsInYAxis = True + End If + i += 1 + End While + i = 0 + While Not i >= gPane.Y2AxisList.Count + If gPane.Y2AxisList(i).Title.Text = curve.Link.Title Then + curve.IsY2Axis = True + curve.YAxisIndex = i + IsInYAxis = True + End If + i += 1 + End While + If IsInYAxis = False Then + If gPane.Y2AxisList(0).Title.Text = "" Then + + With gPane.Y2AxisList(0) + + + '.Scale.FontSpec.FontColor = curve.Color + '.Title.FontSpec.FontColor = curve.Color + '.Color = curve.Color + .IsVisible = True + .Scale.MagAuto = False + + .MajorTic.IsInside = False + .MinorTic.IsInside = False + .MajorTic.IsOpposite = False + .MinorTic.IsOpposite = False + + .Scale.Align = AlignP.Inside + + .Title.Text = curve.Link.Title + + curve.IsY2Axis = True + curve.YAxisIndex = 0 + End With + ElseIf gPane.YAxisList.Count > gPane.Y2AxisList.Count Then + Dim newYAxis As New Y2Axis(curve.Link.Title) + gPane.Y2AxisList.Add(newYAxis) + 'newYAxis.Scale.FontSpec.FontColor = curve.Color + 'newYAxis.Title.FontSpec.FontColor = curve.Color + 'newYAxis.Color = curve.Color + newYAxis.IsVisible = True + newYAxis.Scale.MagAuto = False + + newYAxis.MajorTic.IsInside = False + newYAxis.MinorTic.IsInside = False + newYAxis.MajorTic.IsOpposite = False + newYAxis.MinorTic.IsOpposite = False + + newYAxis.Scale.Align = AlignP.Inside + + newYAxis.Title.Text = curve.Link.Title + + curve.IsY2Axis = True + curve.YAxisIndex = gPane.Y2AxisList.Count - 1 + Else + Dim newYAxis As New YAxis(curve.Link.Title) + gPane.YAxisList.Add(newYAxis) + 'newYAxis.Scale.FontSpec.FontColor = curve.Color + 'newYAxis.Title.FontSpec.FontColor = curve.Color + 'newYAxis.Color = curve.Color + newYAxis.IsVisible = True + newYAxis.Scale.MagAuto = False + + newYAxis.MajorTic.IsInside = False + newYAxis.MinorTic.IsInside = False + newYAxis.MajorTic.IsOpposite = False + newYAxis.MinorTic.IsOpposite = False + + newYAxis.Scale.Align = AlignP.Inside + + newYAxis.Title.Text = curve.Link.Title + + curve.IsY2Axis = False + curve.YAxisIndex = gPane.YAxisList.Count - 1 + End If + + End If + 'gPane.Legend.Fill = New Fill(m_Options.GetLineColor, Brushes.AliceBlue, FillType.None) + 'gPane.Legend.FontSpec. + End If + SettingTitle() + Catch ex As Exception + Throw New Exception("Error Occured in ZGTimeSeries.Graph" & vbCrLf & ex.Message) + End Try + + + End Sub + + Private Sub zgTimeSeries_ContextMenuBuilder(ByVal sender As ZedGraph.ZedGraphControl, ByVal menuStrip As System.Windows.Forms.ContextMenuStrip, ByVal mousePt As System.Drawing.Point, ByVal objState As ZedGraph.ZedGraphControl.ContextMenuObjectState) Handles zgTimeSeries.ContextMenuBuilder + ' from http://zedgraph.org/wiki/index.php?title=Edit_the_Context_Menu + + ' Add item to export to change line color + Dim item = New System.Windows.Forms.ToolStripMenuItem() + item.Name = "set_line_color" + item.Tag = "set_line_color" + item.Text = "Set Line Color" + AddHandler item.Click, AddressOf SetLineColor + menuStrip.Items.Add(item) + End Sub + + Protected Sub SetLineColor() + If zgTimeSeries.GraphPane.CurveList.Count > 0 Then + Dim newColor = DrawingHelper.PromptForColor(zgTimeSeries.GraphPane.CurveList.Item(0).Color) + If newColor.HasValue Then + zgTimeSeries.GraphPane.CurveList.Item(0).Color = newColor.Value + zgTimeSeries.Refresh() + End If + End If + End Sub + + Public Sub Refreshing() + zgTimeSeries.AxisChange() + zgTimeSeries.Refresh() + End Sub + + Public Sub Remove(ByVal curveIndex As Integer) + 'added by jiri to prevent unhandled exception + If zgTimeSeries.GraphPane.CurveList.Count = 0 Then + Return + End If + + Dim IsExist As Boolean = False + Dim CurveListCopy As New CurveList + For i = 0 To zgTimeSeries.GraphPane.CurveList.Count - 1 + CurveListCopy.Add(zgTimeSeries.GraphPane.CurveList(i)) + Next + Try + zgTimeSeries.GraphPane.CurveList(curveIndex).Clear() + zgTimeSeries.GraphPane.CurveList.Clear() + Catch + End Try + For i = 0 To CurveListCopy.Count - 1 + If Not (i = curveIndex) Then + zgTimeSeries.GraphPane.CurveList.Add(CurveListCopy(i)) + End If + Next + + 'Remove Y Axis + With zgTimeSeries.GraphPane + For i = 0 To .YAxisList.Count - 1 + IsExist = False + For j = 0 To .CurveList.Count - 1 + If .CurveList(j).Link.Title = .YAxisList(i).Title.Text Then + IsExist = True + End If + Next + If Not IsExist Then + If .YAxisList.Count = 1 Then + .YAxisList.Remove(.YAxisList(i)) + .YAxisList.Add("") + Else + .YAxisList.Remove(.YAxisList(i)) + End If + + Exit For + End If + Next + For i = 0 To .Y2AxisList.Count - 1 + IsExist = False + For j = 0 To .CurveList.Count - 1 + If .CurveList(j).Link.Title = .Y2AxisList(i).Title.Text Then + IsExist = True + End If + Next + If Not IsExist Then + If .Y2AxisList.Count = 1 Then + .Y2AxisList.Remove(.Y2AxisList(i)) + .Y2AxisList.Add("") + Else + .Y2AxisList.Remove(.Y2AxisList(i)) + End If + End If + Next + End With + + SettingTitle() + + End Sub + + Public Sub SettingTitle() + Dim IsSame As Boolean = True + + With zgTimeSeries.GraphPane + .Title.IsVisible = True + If .CurveList.Count > 1 Then + For i As Integer = 1 To .CurveList.Count - 1 + If Not .CurveList(i).Link.Title = .CurveList(i - 1).Link.Title Then + IsSame = False + End If + Next + If IsSame Then + .Title.Text = .CurveList(0).Link.Title + Else + .Title.IsVisible = False + End If + ElseIf .CurveList.Count = 1 Then + .Title.Text = .CurveList(0).Link.Title + .Legend.IsVisible = False + ElseIf .CurveList.Count = 0 Then + .Title.Text = "No Data To Plot" + End If + + End With + End Sub + + Public Sub AddYAxis(ByRef curve As LineItem) + Dim gPane As GraphPane = zgTimeSeries.GraphPane + Dim i As Integer = 0 + Dim IsInYAxis As Boolean = False + + + If gPane.CurveList.Count = 1 Then + With gPane.YAxis + .Scale.MagAuto = False + .IsVisible = True + .Title.Text = m_VariableWithUnits + '.Scale.FontSpec.FontColor = curve.Color + '.Title.FontSpec.FontColor = curve.Color + '.Color = curve.Color + curve.IsY2Axis = False + curve.YAxisIndex = 0 + End With + End If + While Not i >= gPane.YAxisList.Count + If gPane.YAxisList(i).Title.Text = curve.Link.Title Then + curve.IsY2Axis = False + curve.YAxisIndex = i + IsInYAxis = True + End If + i += 1 + End While + i = 0 + While Not i >= gPane.Y2AxisList.Count + If gPane.Y2AxisList(i).Title.Text = curve.Link.Title Then + curve.IsY2Axis = True + curve.YAxisIndex = i + IsInYAxis = True + End If + i += 1 + End While + If IsInYAxis = False Then + If gPane.Y2AxisList(0).Title.Text = "" Then + + With gPane.Y2AxisList(0) + + + '.Scale.FontSpec.FontColor = curve.Color + '.Title.FontSpec.FontColor = curve.Color + '.Color = curve.Color + .IsVisible = True + .Scale.MagAuto = False + + .MajorTic.IsInside = False + .MinorTic.IsInside = False + .MajorTic.IsOpposite = False + .MinorTic.IsOpposite = False + + .Scale.Align = AlignP.Inside + + .Title.Text = curve.Link.Title + + curve.IsY2Axis = True + curve.YAxisIndex = 0 + End With + ElseIf gPane.YAxisList.Count > gPane.Y2AxisList.Count Then + Dim newYAxis As New Y2Axis(curve.Link.Title) + gPane.Y2AxisList.Add(newYAxis) + 'newYAxis.Scale.FontSpec.FontColor = curve.Color + 'newYAxis.Title.FontSpec.FontColor = curve.Color + 'newYAxis.Color = curve.Color + newYAxis.IsVisible = True + newYAxis.Scale.MagAuto = False + + newYAxis.MajorTic.IsInside = False + newYAxis.MinorTic.IsInside = False + newYAxis.MajorTic.IsOpposite = False + newYAxis.MinorTic.IsOpposite = False + + newYAxis.Scale.Align = AlignP.Inside + + newYAxis.Title.Text = curve.Link.Title + + curve.IsY2Axis = True + curve.YAxisIndex = gPane.Y2AxisList.Count - 1 + Else + Dim newYAxis As New YAxis(curve.Link.Title) + gPane.YAxisList.Add(newYAxis) + 'newYAxis.Scale.FontSpec.FontColor = curve.Color + 'newYAxis.Title.FontSpec.FontColor = curve.Color + 'newYAxis.Color = curve.Color + newYAxis.IsVisible = True + newYAxis.Scale.MagAuto = False + + newYAxis.MajorTic.IsInside = False + newYAxis.MinorTic.IsInside = False + newYAxis.MajorTic.IsOpposite = False + newYAxis.MinorTic.IsOpposite = False + + newYAxis.Scale.Align = AlignP.Inside + + newYAxis.Title.Text = curve.Link.Title + + curve.IsY2Axis = False + curve.YAxisIndex = gPane.YAxisList.Count - 1 + End If + + End If + End Sub + + Public Sub SettingCurveStyle(ByRef curve As LineItem) + curve.Symbol.Fill = New Fill(m_Options.GetPointColor, Color.Red) + curve.Symbol.Fill.RangeMin = 0 + curve.Symbol.Fill.RangeMax = 1 + curve.Symbol.Size = 4 + curve.Symbol.Fill.SecondaryValueGradientColor = Color.Empty + curve.Symbol.Fill.Type = FillType.GradientByColorValue + curve.Symbol.Border.IsVisible = False + End Sub + + 'Developing + + 'Public Sub YAxisesReordering() + ' Dim newYAxis As New Y2Axis() + ' Dim IsBalance As Boolean = False + + ' With zgTimeSeries.GraphPane + ' If .YAxisList.Count = 1 And .Y2AxisList.Count = 1 Then + ' If .YAxisList(0).Title.Text = "" And Not .Y2AxisList(0).Title.Text = "" Then + ' .YAxisList(0).Title.Text = .Y2AxisList(0).Title.Text + ' .YAxisList(0).Scale.MagAuto = False + + ' End If + ' End If + ' If .YAxisList.Count = .Y2AxisList.Count Or .YAxisList.Count - .Y2AxisList.Count = 1 Then + + ' End If + ' End With + + + 'End Sub + +#Region "Filters" + + Public Sub SelectingPoint(ByVal ID As Integer) + If HasEditingCurve() Then + For i As Integer = 0 To EditingCurve.Points.Count - 1 + If PointValueID(i) = ID Then + EditingCurve.Points(i).Z = 1 + End If + Next + Refreshing() + End If + End Sub + + Public Sub SelectingPoints(ByVal IDlist As List(Of Int32)) + If HasEditingCurve() Then + For i As Integer = 0 To EditingCurve.Points.Count - 1 + If IDlist.Contains(PointValueID(i)) Then + EditingCurve.Points(i).Z = 1 + Else + EditingCurve.Points(i).Z = 0 + End If + Next + End If + End Sub + + Public Sub RemoveSelectedPoints() + If HasEditingCurve() Then + For i As Integer = 0 To EditingCurve.Points.Count - 1 + EditingCurve.Points(i).Z = 0 + Next + Refreshing() + End If + End Sub + + Public Sub ChangeZvalueWithValueThreshold(ByVal LargerThanValue As Double, ByVal LessThanValue As Double) + + Dim curve As CurveItem = EditingCurve() + + + For i As Integer = 0 To curve.Points.Count - 1 + If LargerThanValue < LessThanValue Then + If curve.Points(i).Y > LargerThanValue And curve.Points(i).Y < LessThanValue Then + curve.Points(i).Z = 1 + Else + curve.Points(i).Z = 0 + End If + Else + If curve.Points(i).Y > LargerThanValue Or curve.Points(i).Y < LessThanValue Then + curve.Points(i).Z = 1 + Else + curve.Points(i).Z = 0 + End If + End If + Next + Refreshing() + End Sub + + Public Sub ChangeZvalueWithValueChangeThreshold(ByVal ValueChange As Double) + Dim curve As CurveItem = EditingCurve() + + RemoveSelectedPoints() + + If (Math.Abs(curve.Points(0).Y - curve.Points(1).Y) > ValueChange) Then + curve.Points(0).Z = 1 + curve.Points(1).Z = 1 + End If + + For i As Integer = 1 To curve.Points.Count - 1 + If (Math.Abs(curve.Points(i).Y - curve.Points(i - 1).Y) > ValueChange) Then + curve.Points(i).Z = 1 + curve.Points(i - 1).Z = 1 + End If + Next + Refreshing() + End Sub + + Public Sub ChangeZvalueWithDate(ByVal DateBefore As DateTime, ByVal DateAfter As DateTime) + Dim curve As CurveItem = EditingCurve() + For i As Integer = 0 To curve.Points.Count - 1 + If DateAfter > DateBefore Then + If curve.Points(i).X >= DateAfter.ToOADate Or curve.Points(i).X <= DateBefore.ToOADate Then + curve.Points(i).Z = 1 + Else + curve.Points(i).Z = 0 + End If + Else + If curve.Points(i).X >= DateAfter.ToOADate And curve.Points(i).X <= DateBefore.ToOADate Then + curve.Points(i).Z = 1 + Else + curve.Points(i).Z = 0 + End If + End If + Next + Refreshing() + End Sub + + Public Sub ChangeZvalueWithDataGap(ByVal GapInSecond As Integer) + Dim curve As CurveItem = EditingCurve() + Dim different As Long + Dim date1 As DateTime + Dim date2 As DateTime + + curve.Points(0).Z = 0 + + For i As Integer = 1 To curve.Points.Count - 1 + date1 = DateTime.FromOADate(curve.Points(i).X) + date2 = DateTime.FromOADate(curve.Points(i - 1).X) + different = DateDiff(DateInterval.Second, date1, date2, FirstDayOfWeek.Monday, FirstWeekOfYear.Jan1) + + If Math.Abs(different) > GapInSecond Then + curve.Points(i).Z = 1 + curve.Points(i - 1).Z = 1 + Else + curve.Points(i).Z = 0 + End If + Next + Refreshing() + End Sub + +#End Region + +#Region "Edit Functions" + + Public Sub ClearEditMode() + Dim curve As LineItem + For i As Integer = 0 To zgTimeSeries.GraphPane.CurveList.Count - 1 + curve = zgTimeSeries.GraphPane.CurveList(i) + curve.Color = ccList0(i Mod 10) + curve.Symbol.IsVisible = False + Next + Refreshing() + End Sub + + Public Function CopyCurvePointList(ByVal curve As CurveItem) As PointPairList + Dim pointList As New PointPairList() + For i As Integer = 0 To curve.Points.Count - 1 + pointList.Add(curve.Points(i)) + Next + Return pointList + End Function + + Public Sub EnterEditMode(ByVal curveindex As Integer) + Dim curve As LineItem = zgTimeSeries.GraphPane.CurveList(curveindex) + curve.Color = Color.Black + curve.Symbol.IsVisible = True + Refreshing() + + EditCurvePointList = New PointPairList + EditCurvePointList = CopyCurvePointList(zgTimeSeries.GraphPane.CurveList(curveindex)) + EditCurveLable = zgTimeSeries.GraphPane.CurveList(curveindex).Label.Text + EditCurveTitle = zgTimeSeries.GraphPane.CurveList(curveindex).Link.Title + End Sub + + Public Sub ChangeValueByAddOrMinus(ByVal Adding As Boolean, ByVal values As Double) + Dim curve As CurveItem = EditingCurve() + For i As Integer = 0 To curve.Points.Count - 1 + + If curve.Points(i).Z = 1 Then + If Adding Then + curve.Points(i).Y += values + Else + curve.Points(i).Y -= values + End If + + End If + Next + Refreshing() + End Sub + + Public Sub ChangeValueByMultiply(ByVal Multiplier As Double) + Dim curve As CurveItem = EditingCurve() + For i As Integer = 0 To curve.Points.Count - 1 + + If curve.Points(i).Z = 1 Then + curve.Points(i).Y *= Multiplier + + End If + Next + Refreshing() + End Sub + + Public Sub ChangeValueByInterpolating(ByRef returned As Boolean) + Dim curve As CurveItem = EditingCurve() + Dim i As Integer = 1 + Dim count As Integer = 1 + Dim difference As Double + + 'Check if the first point and last point is selected + If curve.Points(0).Z = 1 Or curve.Points(curve.Points.Count - 1).Z = 1 Then + MsgBox("You cannot flat with the first point or last point selected") + returned = True + Return + End If + + 'Interpolating + Do Until (i >= curve.Points.Count - 2) + If curve.Points(i).Z = 1 Then + If curve.Points(i + 1).Z = 0 Then + curve.Points(i).Y = (curve.Points(i - 1).Y + curve.Points(i + 1).Y) / 2 + i += 1 + Else + count = 1 + Do Until (curve.Points(i + 1).Z = 0) + count += 1 + i += 1 + Loop + difference = curve.Points(i + 1).Y - curve.Points(i - count).Y + For j As Integer = 1 To count + curve.Points(i + 1 - j).Y = curve.Points(i + 1).Y - difference / (count + 1) * j + Next + End If + Else + i += 1 + End If + Loop + Refreshing() + + End Sub + + Public Function HasEditingCurve() As Boolean + Dim Has As Boolean = False + + If zgTimeSeries.GraphPane.CurveList.Count < 1 Then + Return Has + Else + For i As Integer = 0 To zgTimeSeries.GraphPane.CurveList.Count - 1 + If zgTimeSeries.GraphPane.CurveList(i).Color = Color.Black Then + Has = True + End If + Next + Return Has + End If + End Function + + Public Function EditingCurve() As CurveItem + For i As Integer = 0 To zgTimeSeries.GraphPane.CurveList.Count - 1 + If zgTimeSeries.GraphPane.CurveList(i).Color = Color.Black Then + Return zgTimeSeries.GraphPane.CurveList(i) + End If + Next + Return zgTimeSeries.GraphPane.CurveList(0) + End Function + + Public Function PointValueID(ByVal pointindex As Integer) As Integer + Dim ID As Integer + ID = (EditingCurve.Points(pointindex).Tag.ToString.Substring(0, EditingCurve.Points(pointindex).Tag.ToString.IndexOf(","))) + Return ID + End Function + + Public Function CurveID(ByVal curveindex As Integer) As Integer + Dim ID As Integer + Dim StartIndex As Integer + Dim IDLength As Integer + StartIndex = zgTimeSeries.GraphPane.CurveList(0).Label.Text.ToString.IndexOf("ID:") + 4 + IDLength = zgTimeSeries.GraphPane.CurveList(0).Label.Text.ToString.Length - StartIndex + ID = (zgTimeSeries.GraphPane.CurveList(0).Label.Text.ToString.Substring(StartIndex, IDLength)) + Return ID + End Function + + Public Sub ReplotEditingCurve(ByRef cEditView As EditView) + Dim Editdt = cEditView.Editdt + Dim CurveListCopy As New CurveList + Dim curveIndex As Integer + Dim EditCurveIsY2Axis As Boolean + Dim EditCurveYAxisIndex As Integer + Dim label As String = "" + Dim pointList As New PointPairList + + If HasEditingCurve() Then + For i As Integer = 0 To zgTimeSeries.GraphPane.CurveList.Count - 1 + If zgTimeSeries.GraphPane.CurveList(i).Label.Text = EditingCurve.Label.Text Then + curveIndex = i + label = EditingCurve.Label.Text + EditCurveIsY2Axis = EditingCurve.IsY2Axis + EditCurveYAxisIndex = EditingCurve.YAxisIndex + End If + CurveListCopy.Add(zgTimeSeries.GraphPane.CurveList(i)) + Next + + Try + zgTimeSeries.GraphPane.CurveList(curveIndex).Clear() + zgTimeSeries.GraphPane.CurveList.Clear() + Catch + End Try + For i = 0 To CurveListCopy.Count - 1 + If Not (i = curveIndex) Then + zgTimeSeries.GraphPane.CurveList.Add(CurveListCopy(i)) + End If + Next + End If + + For Each row As DataRow In Editdt.Rows + If Not row.Item("Other").ToString = "-1" Then + + Dim p As New PointPair(New XDate(CDate(row.Item(XColumn))), row.Item(YColumn)) + p.Tag = row.Item("CensorCode").ToString + If m_Options.IsPlotCensored Then + If (p.Tag.ToString.ToLower = Statistics.NotCensored) Or (p.Tag.ToString.ToLower = Statistics.Unknown) Then + p.ColorValue = 0 + Else + p.ColorValue = 1 + End If + p.Tag = row.Item("ValueID").ToString + ", " + row.Item("LocalDateTime").ToString + ": " + row.Item("DataValue").ToString + pointList.Add(p) + Else + If Not ((p.Tag.ToString.ToLower = Statistics.NotCensored) Or (p.Tag.ToString.ToLower = Statistics.Unknown)) Then + pointList.Add(p) + p.Tag = row.Item("ValueID").ToString + ", " + row.Item("LocalDateTime").ToString + ": " + row.Item("DataValue").ToString + End If + End If + + End If + Next row + + + 'Re-arrange the other of the point by date + Dim pointlistcopy As New PointPairList + Dim point As PointPair + Dim pointindex As Integer + For i As Integer = 0 To pointList.Count - 1 + pointlistcopy.Add(pointList(i)) + Next + pointList.Clear() + pointList = New PointPairList + For i As Integer = 0 To pointlistcopy.Count - 1 + point = pointlistcopy(0) + pointindex = 0 + For j As Integer = 0 To pointlistcopy.Count - 1 + If point.X > pointlistcopy(j).X Then + point = pointlistcopy(j) + pointindex = j + End If + Next + pointlistcopy.Remove(pointlistcopy(pointindex)) + pointList.Add(point) + Next + + + Dim curve As LineItem = zgTimeSeries.GraphPane.AddCurve(label, pointList, Color.Black, SymbolType.Circle) + SettingCurveStyle(curve) + If Not EditCurveYAxisIndex = Nothing Then + curve.IsY2Axis = EditCurveIsY2Axis + curve.YAxisIndex = EditCurveYAxisIndex + End If + + Dim selectedRows = cEditView.GetSelectedRows() + Dim IDlist As New List(Of Long)(selectedRows.Count) + IDlist.AddRange((From row As DataGridViewRow In cEditView.GetSelectedRows() Select row.Cells("ValueID").Value).Cast(Of Long)()) + + For j As Integer = 0 To curve.Points.Count - 1 + If IDlist.Contains(PointValueID(j)) Then + curve.Points(j).Z = 1 + Else + curve.Points(j).Z = 0 + End If + Next + + Refreshing() + + End Sub + + +#End Region + + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/VariablesTableManagement.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/VariablesTableManagement.Designer.vb new file mode 100644 index 00000000..72e2bd51 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/VariablesTableManagement.Designer.vb @@ -0,0 +1,436 @@ +Imports HydroDesktop.Plugins.EditView + +Namespace HydroDesktop.Plugins.Controls + + _ + Partial Class VariablesTableManagement + Inherits System.Windows.Forms.Form + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.btnSubmit = New System.Windows.Forms.Button() + Me.btnCancel = New System.Windows.Forms.Button() + Me.lblVariableCode = New System.Windows.Forms.Label() + Me.txtVariableCode = New System.Windows.Forms.TextBox() + Me.txtVariableName = New System.Windows.Forms.TextBox() + Me.lblVariableName = New System.Windows.Forms.Label() + Me.txtSpeciation = New System.Windows.Forms.TextBox() + Me.lblSpeciation = New System.Windows.Forms.Label() + Me.txtSampleMedium = New System.Windows.Forms.TextBox() + Me.lblSampleMedium = New System.Windows.Forms.Label() + Me.gboxVariableUnits = New System.Windows.Forms.GroupBox() + Me.ddlUnitsName = New System.Windows.Forms.ComboBox() + Me.lblVUnitsAbbreviation = New System.Windows.Forms.Label() + Me.lblVUnitsType = New System.Windows.Forms.Label() + Me.lblValueType = New System.Windows.Forms.Label() + Me.ddlValueType = New System.Windows.Forms.ComboBox() + Me.lblRegular = New System.Windows.Forms.Label() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.rbtnRegularNo = New System.Windows.Forms.RadioButton() + Me.rbtnRegularYes = New System.Windows.Forms.RadioButton() + Me.gboxTimeSupport = New System.Windows.Forms.GroupBox() + Me.txtTValue = New System.Windows.Forms.TextBox() + Me.lblTValue = New System.Windows.Forms.Label() + Me.ddlTUnitsName = New System.Windows.Forms.ComboBox() + Me.lblTUnitsAbbreviation = New System.Windows.Forms.Label() + Me.lblTUnitsType = New System.Windows.Forms.Label() + Me.ConfigBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.ddlDataType = New System.Windows.Forms.ComboBox() + Me.lblDataType = New System.Windows.Forms.Label() + Me.txtNoDataValue = New System.Windows.Forms.TextBox() + Me.lblNoDataValue = New System.Windows.Forms.Label() + Me.txtGeneralCategory = New System.Windows.Forms.TextBox() + Me.lblGeneralCategory = New System.Windows.Forms.Label() + Me.gboxVariableUnits.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.gboxTimeSupport.SuspendLayout() + CType(Me.ConfigBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'btnSubmit + ' + Me.btnSubmit.Location = New System.Drawing.Point(12, 227) + Me.btnSubmit.Name = "btnSubmit" + Me.btnSubmit.Size = New System.Drawing.Size(202, 31) + Me.btnSubmit.TabIndex = 17 + Me.btnSubmit.UseVisualStyleBackColor = True + ' + 'btnCancel + ' + Me.btnCancel.Location = New System.Drawing.Point(220, 227) + Me.btnCancel.Name = "btnCancel" + Me.btnCancel.Size = New System.Drawing.Size(205, 31) + Me.btnCancel.TabIndex = 19 + Me.btnCancel.Text = "Cancel" + Me.btnCancel.UseVisualStyleBackColor = True + ' + 'lblVariableCode + ' + Me.lblVariableCode.AutoSize = True + Me.lblVariableCode.Location = New System.Drawing.Point(13, 13) + Me.lblVariableCode.Name = "lblVariableCode" + Me.lblVariableCode.Size = New System.Drawing.Size(76, 13) + Me.lblVariableCode.TabIndex = 20 + Me.lblVariableCode.Text = "Variable Code:" + ' + 'txtVariableCode + ' + Me.txtVariableCode.Location = New System.Drawing.Point(95, 10) + Me.txtVariableCode.Name = "txtVariableCode" + Me.txtVariableCode.Size = New System.Drawing.Size(80, 20) + Me.txtVariableCode.TabIndex = 21 + ' + 'txtVariableName + ' + Me.txtVariableName.Location = New System.Drawing.Point(272, 10) + Me.txtVariableName.Name = "txtVariableName" + Me.txtVariableName.Size = New System.Drawing.Size(153, 20) + Me.txtVariableName.TabIndex = 23 + ' + 'lblVariableName + ' + Me.lblVariableName.AutoSize = True + Me.lblVariableName.Location = New System.Drawing.Point(194, 13) + Me.lblVariableName.Name = "lblVariableName" + Me.lblVariableName.Size = New System.Drawing.Size(79, 13) + Me.lblVariableName.TabIndex = 22 + Me.lblVariableName.Text = "Variable Name:" + ' + 'txtSpeciation + ' + Me.txtSpeciation.Location = New System.Drawing.Point(272, 36) + Me.txtSpeciation.Name = "txtSpeciation" + Me.txtSpeciation.Size = New System.Drawing.Size(153, 20) + Me.txtSpeciation.TabIndex = 25 + ' + 'lblSpeciation + ' + Me.lblSpeciation.AutoSize = True + Me.lblSpeciation.Location = New System.Drawing.Point(213, 39) + Me.lblSpeciation.Name = "lblSpeciation" + Me.lblSpeciation.Size = New System.Drawing.Size(60, 13) + Me.lblSpeciation.TabIndex = 24 + Me.lblSpeciation.Text = "Speciation:" + ' + 'txtSampleMedium + ' + Me.txtSampleMedium.Location = New System.Drawing.Point(272, 62) + Me.txtSampleMedium.Name = "txtSampleMedium" + Me.txtSampleMedium.Size = New System.Drawing.Size(153, 20) + Me.txtSampleMedium.TabIndex = 27 + ' + 'lblSampleMedium + ' + Me.lblSampleMedium.AutoSize = True + Me.lblSampleMedium.Location = New System.Drawing.Point(188, 65) + Me.lblSampleMedium.Name = "lblSampleMedium" + Me.lblSampleMedium.Size = New System.Drawing.Size(85, 13) + Me.lblSampleMedium.TabIndex = 26 + Me.lblSampleMedium.Text = "Sample Medium:" + ' + 'gboxVariableUnits + ' + Me.gboxVariableUnits.Controls.Add(Me.ddlUnitsName) + Me.gboxVariableUnits.Controls.Add(Me.lblVUnitsAbbreviation) + Me.gboxVariableUnits.Controls.Add(Me.lblVUnitsType) + Me.gboxVariableUnits.Location = New System.Drawing.Point(12, 36) + Me.gboxVariableUnits.Name = "gboxVariableUnits" + Me.gboxVariableUnits.Size = New System.Drawing.Size(163, 71) + Me.gboxVariableUnits.TabIndex = 28 + Me.gboxVariableUnits.TabStop = False + Me.gboxVariableUnits.Text = "Variable Units:" + ' + 'ddlUnitsName + ' + Me.ddlUnitsName.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.ddlUnitsName.FormattingEnabled = True + Me.ddlUnitsName.Location = New System.Drawing.Point(7, 20) + Me.ddlUnitsName.Name = "ddlUnitsName" + Me.ddlUnitsName.Size = New System.Drawing.Size(150, 21) + Me.ddlUnitsName.TabIndex = 2 + ' + 'lblVUnitsAbbreviation + ' + Me.lblVUnitsAbbreviation.AutoSize = True + Me.lblVUnitsAbbreviation.Location = New System.Drawing.Point(6, 57) + Me.lblVUnitsAbbreviation.Name = "lblVUnitsAbbreviation" + Me.lblVUnitsAbbreviation.Size = New System.Drawing.Size(99, 13) + Me.lblVUnitsAbbreviation.TabIndex = 1 + Me.lblVUnitsAbbreviation.Text = "Units Abbreviation: " + ' + 'lblVUnitsType + ' + Me.lblVUnitsType.AutoSize = True + Me.lblVUnitsType.Location = New System.Drawing.Point(6, 44) + Me.lblVUnitsType.Name = "lblVUnitsType" + Me.lblVUnitsType.Size = New System.Drawing.Size(64, 13) + Me.lblVUnitsType.TabIndex = 0 + Me.lblVUnitsType.Text = "Units Type: " + ' + 'lblValueType + ' + Me.lblValueType.AutoSize = True + Me.lblValueType.Location = New System.Drawing.Point(209, 89) + Me.lblValueType.Name = "lblValueType" + Me.lblValueType.Size = New System.Drawing.Size(64, 13) + Me.lblValueType.TabIndex = 29 + Me.lblValueType.Text = "Value Type:" + ' + 'ddlValueType + ' + Me.ddlValueType.FormattingEnabled = True + Me.ddlValueType.Items.AddRange(New Object() {"Field Observation", "Derived Value", "Unknown", "Others..."}) + Me.ddlValueType.Location = New System.Drawing.Point(272, 86) + Me.ddlValueType.Name = "ddlValueType" + Me.ddlValueType.Size = New System.Drawing.Size(153, 21) + Me.ddlValueType.TabIndex = 31 + ' + 'lblRegular + ' + Me.lblRegular.AutoSize = True + Me.lblRegular.Location = New System.Drawing.Point(226, 119) + Me.lblRegular.Name = "lblRegular" + Me.lblRegular.Size = New System.Drawing.Size(47, 13) + Me.lblRegular.TabIndex = 32 + Me.lblRegular.Text = "Regular:" + ' + 'Panel1 + ' + Me.Panel1.Controls.Add(Me.rbtnRegularNo) + Me.Panel1.Controls.Add(Me.rbtnRegularYes) + Me.Panel1.Location = New System.Drawing.Point(272, 113) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(153, 23) + Me.Panel1.TabIndex = 33 + ' + 'rbtnRegularNo + ' + Me.rbtnRegularNo.AutoSize = True + Me.rbtnRegularNo.Location = New System.Drawing.Point(63, 4) + Me.rbtnRegularNo.Name = "rbtnRegularNo" + Me.rbtnRegularNo.Size = New System.Drawing.Size(39, 17) + Me.rbtnRegularNo.TabIndex = 1 + Me.rbtnRegularNo.TabStop = True + Me.rbtnRegularNo.Text = "No" + Me.rbtnRegularNo.UseVisualStyleBackColor = True + ' + 'rbtnRegularYes + ' + Me.rbtnRegularYes.AutoSize = True + Me.rbtnRegularYes.Location = New System.Drawing.Point(4, 4) + Me.rbtnRegularYes.Name = "rbtnRegularYes" + Me.rbtnRegularYes.Size = New System.Drawing.Size(43, 17) + Me.rbtnRegularYes.TabIndex = 0 + Me.rbtnRegularYes.TabStop = True + Me.rbtnRegularYes.Text = "Yes" + Me.rbtnRegularYes.UseVisualStyleBackColor = True + ' + 'gboxTimeSupport + ' + Me.gboxTimeSupport.Controls.Add(Me.txtTValue) + Me.gboxTimeSupport.Controls.Add(Me.lblTValue) + Me.gboxTimeSupport.Controls.Add(Me.ddlTUnitsName) + Me.gboxTimeSupport.Controls.Add(Me.lblTUnitsAbbreviation) + Me.gboxTimeSupport.Controls.Add(Me.lblTUnitsType) + Me.gboxTimeSupport.Location = New System.Drawing.Point(12, 113) + Me.gboxTimeSupport.Name = "gboxTimeSupport" + Me.gboxTimeSupport.Size = New System.Drawing.Size(163, 96) + Me.gboxTimeSupport.TabIndex = 29 + Me.gboxTimeSupport.TabStop = False + Me.gboxTimeSupport.Text = "Time Support:" + ' + 'txtTValue + ' + Me.txtTValue.Location = New System.Drawing.Point(50, 17) + Me.txtTValue.Name = "txtTValue" + Me.txtTValue.Size = New System.Drawing.Size(107, 20) + Me.txtTValue.TabIndex = 4 + ' + 'lblTValue + ' + Me.lblTValue.AutoSize = True + Me.lblTValue.Location = New System.Drawing.Point(7, 20) + Me.lblTValue.Name = "lblTValue" + Me.lblTValue.Size = New System.Drawing.Size(37, 13) + Me.lblTValue.TabIndex = 3 + Me.lblTValue.Text = "Value:" + ' + 'ddlTUnitsName + ' + Me.ddlTUnitsName.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.ddlTUnitsName.FormattingEnabled = True + Me.ddlTUnitsName.Location = New System.Drawing.Point(7, 43) + Me.ddlTUnitsName.Name = "ddlTUnitsName" + Me.ddlTUnitsName.Size = New System.Drawing.Size(150, 21) + Me.ddlTUnitsName.TabIndex = 2 + ' + 'lblTUnitsAbbreviation + ' + Me.lblTUnitsAbbreviation.AutoSize = True + Me.lblTUnitsAbbreviation.Location = New System.Drawing.Point(6, 80) + Me.lblTUnitsAbbreviation.Name = "lblTUnitsAbbreviation" + Me.lblTUnitsAbbreviation.Size = New System.Drawing.Size(99, 13) + Me.lblTUnitsAbbreviation.TabIndex = 1 + Me.lblTUnitsAbbreviation.Text = "Units Abbreviation: " + ' + 'lblTUnitsType + ' + Me.lblTUnitsType.AutoSize = True + Me.lblTUnitsType.Location = New System.Drawing.Point(6, 67) + Me.lblTUnitsType.Name = "lblTUnitsType" + Me.lblTUnitsType.Size = New System.Drawing.Size(64, 13) + Me.lblTUnitsType.TabIndex = 0 + Me.lblTUnitsType.Text = "Units Type: " + ' + 'ConfigBindingSource + ' + Me.ConfigBindingSource.DataSource = GetType(HydroDesktop.Configuration.Settings) + ' + 'ddlDataType + ' + Me.ddlDataType.FormattingEnabled = True + Me.ddlDataType.Items.AddRange(New Object() {"Average", "Maximum", "Minimum", "Sum", "Continuous", "Unknown", "Others..."}) + Me.ddlDataType.Location = New System.Drawing.Point(272, 142) + Me.ddlDataType.Name = "ddlDataType" + Me.ddlDataType.Size = New System.Drawing.Size(153, 21) + Me.ddlDataType.TabIndex = 35 + ' + 'lblDataType + ' + Me.lblDataType.AutoSize = True + Me.lblDataType.Location = New System.Drawing.Point(213, 145) + Me.lblDataType.Name = "lblDataType" + Me.lblDataType.Size = New System.Drawing.Size(60, 13) + Me.lblDataType.TabIndex = 34 + Me.lblDataType.Text = "Data Type:" + ' + 'txtNoDataValue + ' + Me.txtNoDataValue.Location = New System.Drawing.Point(272, 169) + Me.txtNoDataValue.Name = "txtNoDataValue" + Me.txtNoDataValue.Size = New System.Drawing.Size(153, 20) + Me.txtNoDataValue.TabIndex = 37 + ' + 'lblNoDataValue + ' + Me.lblNoDataValue.AutoSize = True + Me.lblNoDataValue.Location = New System.Drawing.Point(190, 172) + Me.lblNoDataValue.Name = "lblNoDataValue" + Me.lblNoDataValue.Size = New System.Drawing.Size(83, 13) + Me.lblNoDataValue.TabIndex = 36 + Me.lblNoDataValue.Text = "No Data Value: " + ' + 'txtGeneralCategory + ' + Me.txtGeneralCategory.Location = New System.Drawing.Point(272, 195) + Me.txtGeneralCategory.Name = "txtGeneralCategory" + Me.txtGeneralCategory.Size = New System.Drawing.Size(153, 20) + Me.txtGeneralCategory.TabIndex = 39 + ' + 'lblGeneralCategory + ' + Me.lblGeneralCategory.AutoSize = True + Me.lblGeneralCategory.Location = New System.Drawing.Point(181, 198) + Me.lblGeneralCategory.Name = "lblGeneralCategory" + Me.lblGeneralCategory.Size = New System.Drawing.Size(92, 13) + Me.lblGeneralCategory.TabIndex = 38 + Me.lblGeneralCategory.Text = "GeneralCategory: " + ' + 'fVariablesTableManagement + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(437, 268) + Me.Controls.Add(Me.txtGeneralCategory) + Me.Controls.Add(Me.lblGeneralCategory) + Me.Controls.Add(Me.txtNoDataValue) + Me.Controls.Add(Me.lblNoDataValue) + Me.Controls.Add(Me.ddlDataType) + Me.Controls.Add(Me.lblDataType) + Me.Controls.Add(Me.gboxTimeSupport) + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.lblRegular) + Me.Controls.Add(Me.ddlValueType) + Me.Controls.Add(Me.lblValueType) + Me.Controls.Add(Me.gboxVariableUnits) + Me.Controls.Add(Me.txtSampleMedium) + Me.Controls.Add(Me.lblSampleMedium) + Me.Controls.Add(Me.txtSpeciation) + Me.Controls.Add(Me.lblSpeciation) + Me.Controls.Add(Me.txtVariableName) + Me.Controls.Add(Me.lblVariableName) + Me.Controls.Add(Me.txtVariableCode) + Me.Controls.Add(Me.lblVariableCode) + Me.Controls.Add(Me.btnCancel) + Me.Controls.Add(Me.btnSubmit) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "fVariablesTableManagement" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "Variables Table Management" + Me.gboxVariableUnits.ResumeLayout(False) + Me.gboxVariableUnits.PerformLayout() + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.gboxTimeSupport.ResumeLayout(False) + Me.gboxTimeSupport.PerformLayout() + CType(Me.ConfigBindingSource, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ConfigBindingSource As System.Windows.Forms.BindingSource + Friend WithEvents btnSubmit As System.Windows.Forms.Button + Friend WithEvents btnCancel As System.Windows.Forms.Button + Friend WithEvents lblVariableCode As System.Windows.Forms.Label + Friend WithEvents txtVariableCode As System.Windows.Forms.TextBox + Friend WithEvents txtVariableName As System.Windows.Forms.TextBox + Friend WithEvents lblVariableName As System.Windows.Forms.Label + Friend WithEvents txtSpeciation As System.Windows.Forms.TextBox + Friend WithEvents lblSpeciation As System.Windows.Forms.Label + Friend WithEvents txtSampleMedium As System.Windows.Forms.TextBox + Friend WithEvents lblSampleMedium As System.Windows.Forms.Label + Friend WithEvents gboxVariableUnits As System.Windows.Forms.GroupBox + Friend WithEvents ddlUnitsName As System.Windows.Forms.ComboBox + Friend WithEvents lblVUnitsAbbreviation As System.Windows.Forms.Label + Friend WithEvents lblVUnitsType As System.Windows.Forms.Label + Friend WithEvents lblValueType As System.Windows.Forms.Label + Friend WithEvents ddlValueType As System.Windows.Forms.ComboBox + Friend WithEvents lblRegular As System.Windows.Forms.Label + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents rbtnRegularNo As System.Windows.Forms.RadioButton + Friend WithEvents rbtnRegularYes As System.Windows.Forms.RadioButton + Friend WithEvents gboxTimeSupport As System.Windows.Forms.GroupBox + Friend WithEvents ddlTUnitsName As System.Windows.Forms.ComboBox + Friend WithEvents lblTUnitsAbbreviation As System.Windows.Forms.Label + Friend WithEvents lblTUnitsType As System.Windows.Forms.Label + Friend WithEvents txtTValue As System.Windows.Forms.TextBox + Friend WithEvents lblTValue As System.Windows.Forms.Label + Friend WithEvents ddlDataType As System.Windows.Forms.ComboBox + Friend WithEvents lblDataType As System.Windows.Forms.Label + Friend WithEvents txtNoDataValue As System.Windows.Forms.TextBox + Friend WithEvents lblNoDataValue As System.Windows.Forms.Label + Friend WithEvents txtGeneralCategory As System.Windows.Forms.TextBox + Friend WithEvents lblGeneralCategory As System.Windows.Forms.Label + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/VariablesTableManagement.resx b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/VariablesTableManagement.resx new file mode 100644 index 00000000..d6fe09ff --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/VariablesTableManagement.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/VariablesTableManagement.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/VariablesTableManagement.vb new file mode 100644 index 00000000..8ebac195 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/VariablesTableManagement.vb @@ -0,0 +1,197 @@ +Imports System.Windows.Forms +Imports HydroDesktop.Database +Imports HydroDesktop.Interfaces +Imports HydroDesktop.Interfaces.ObjectModel + +Namespace HydroDesktop.Plugins.Controls + + + Public Class VariablesTableManagement + + Private _VariableID As Int64? + Private ReadOnly _unitsRepo As IUnitsRepository = RepositoryFactory.Instance.Get(Of IUnitsRepository)() + Private ReadOnly _variablesRepo As IVariablesRepository = RepositoryFactory.Instance.Get(Of IVariablesRepository)() + + Public Sub New() + InitializeComponent() + End Sub + + Private Sub CloseMe() Handles Me.Leave, btnCancel.Click + DialogResult = DialogResult.Cancel + Close() + End Sub + + Public ReadOnly Property VariableID() As Int64? + Get + Return _VariableID + End Get + End Property + + Public Sub initialize(ByVal variableID As Int64?) + _VariableID = variableID + + Dim dt = _unitsRepo.AsDataTable() + ddlUnitsName.DataSource = dt + ddlUnitsName.DisplayMember = "UnitsName" + ddlUnitsName.ValueMember = "UnitsID" + lblVUnitsType.Text = "Units Type: " + dt.Rows(0)("UnitsType") + lblVUnitsAbbreviation.Text = "Units Abbreviation: " + dt.Rows(0)("UnitsAbbreviation") + + Dim dt2 = _unitsRepo.AsDataTable() + ddlTUnitsName.DataSource = dt2 + ddlTUnitsName.DisplayMember = "UnitsName" + ddlTUnitsName.ValueMember = "UnitsID" + lblTUnitsType.Text = "Units Type: " + dt.Rows(0)("UnitsType") + lblTUnitsAbbreviation.Text = "Units Abbreviation: " + dt.Rows(0)("UnitsAbbreviation") + + ddlValueType.SelectedItem = ddlValueType.Items(0) + ddlDataType.SelectedItem = ddlDataType.Items(1) + + If Not _VariableID.HasValue Then + btnSubmit.Text = "Add" + rbtnRegularYes.Checked = True + Else + Dim variable = _variablesRepo.GetByKey(_VariableID.Value) + + txtVariableCode.Text = variable.Code + txtVariableName.Text = variable.Name + txtSpeciation.Text = variable.Speciation + txtSampleMedium.Text = variable.SampleMedium + txtNoDataValue.Text = variable.NoDataValue + txtTValue.Text = variable.TimeSupport + txtGeneralCategory.Text = variable.GeneralCategory + + ddlUnitsName.SelectedItem = ddlUnitsName.Items(variable.VariableUnit.Id - 1) + ddlTUnitsName.SelectedItem = ddlTUnitsName.Items(variable.TimeUnit.Id - 1) + + Dim dataType = variable.DataType + If Not ddlDataType.Items.Contains(dataType) Then + ddlDataType.Items.Add(dataType) + End If + ddlDataType.Text = dataType + ddlValueType.Text = variable.ValueType + If variable.IsRegular Then + rbtnRegularYes.Checked = True + Else + rbtnRegularNo.Checked = True + End If + + btnSubmit.Text = "Edit" + End If + End Sub + + Private Sub InsertOrUpdateVariable() + Dim variable = GetCurrentVariable() + If Not _VariableID.HasValue Then + _variablesRepo.AddVariable(variable) + _VariableID = variable.Id + Else + _variablesRepo.Update(variable) + End If + End Sub + + Private Function GetCurrentVariable() As Variable + Dim variable = New Variable() + If _VariableID.HasValue Then + variable.Id = _VariableID + End If + variable.Code = txtVariableCode.Text + variable.Name = txtVariableName.Text + variable.Speciation = txtSpeciation.Text + variable.VariableUnit = New Unit() + variable.VariableUnit.Id = ddlUnitsName.SelectedValue + variable.SampleMedium = txtSampleMedium.Text + variable.ValueType = ddlValueType.Text + variable.IsRegular = Val(rbtnRegularYes.Checked) + variable.TimeSupport = txtTValue.Text + variable.TimeUnit = New Unit() + variable.TimeUnit.Id = ddlTUnitsName.SelectedValue + variable.DataType = ddlDataType.Text + variable.GeneralCategory = txtGeneralCategory.Text + variable.NoDataValue = txtNoDataValue.Text + Return variable + End Function + + Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnSubmit.Click + Dim Validated As Boolean = True + + 'Validation + If txtVariableCode.Text = Nothing Then + Validated = False + End If + If txtVariableName.Text = Nothing Then + Validated = False + End If + If txtSampleMedium.Text = Nothing Then + Validated = False + End If + If txtSpeciation.Text = Nothing Then + Validated = False + End If + If txtTValue.Text = Nothing Then + Validated = False + End If + If txtNoDataValue.Text = Nothing Then + Validated = False + End If + If txtGeneralCategory.Text = Nothing Then + Validated = False + End If + + If Not Validated Then + MsgBox("Please fill in all fields.") + Exit Sub + End If + + If Not IsNumeric(txtNoDataValue.Text) Then + MsgBox("Please enter numbers in No Data Value field") + Exit Sub + End If + + If Not IsNumeric(txtTValue.Text) Then + MsgBox("Please enter numbers in Time Support Value field") + Exit Sub + End If + + InsertOrUpdateVariable() + DialogResult = DialogResult.OK + Close() + End Sub + + Private Sub ddlUnitsName_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As EventArgs) Handles ddlUnitsName.SelectionChangeCommitted + Dim ID As Integer = ddlUnitsName.SelectedValue.ToString + Dim unit = _unitsRepo.GetByKey(ID) + + lblVUnitsType.Text = unit.UnitsType + lblVUnitsType.Text = "Units Type: " + lblVUnitsType.Text + lblVUnitsAbbreviation.Text = unit.Abbreviation + lblVUnitsAbbreviation.Text = "Units Abbreviation: " + lblVUnitsAbbreviation.Text + + End Sub + + Private Sub ddlTUnitsName_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As EventArgs) Handles ddlTUnitsName.SelectionChangeCommitted + Dim ID As Integer = ddlTUnitsName.SelectedValue.ToString + Dim unit = _unitsRepo.GetByKey(ID) + + lblTUnitsType.Text = unit.UnitsType + lblTUnitsType.Text = "Units Type: " + lblTUnitsType.Text + lblTUnitsAbbreviation.Text = unit.Abbreviation + lblTUnitsAbbreviation.Text = "Units Abbreviation: " + lblTUnitsAbbreviation.Text + + End Sub + + Private Sub ddlValueType_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As EventArgs) Handles ddlValueType.SelectionChangeCommitted + If ddlValueType.SelectedIndex = ddlValueType.Items.Count - 1 Then + ddlValueType.Text = "" + End If + End Sub + + Private Sub ddlDataType_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As EventArgs) Handles ddlDataType.SelectionChangeCommitted + If ddlDataType.SelectedIndex = ddlDataType.Items.Count - 1 Then + ddlDataType.Text = "" + End If + End Sub + + + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/cEditView.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/cEditView.Designer.vb new file mode 100644 index 00000000..81ab29e0 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/cEditView.Designer.vb @@ -0,0 +1,544 @@ +'Namespace HydroDesktop.Plugins.EditView +Namespace HydroDesktop.Plugins.Controls + _ + Partial Class EditView + Inherits System.Windows.Forms.UserControl + + 'UserControl overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Me.TableLayoutPanel4 = New System.Windows.Forms.TableLayoutPanel() + Me.TableLayoutPanel5 = New System.Windows.Forms.TableLayoutPanel() + Me.pbProgressBar = New System.Windows.Forms.ProgressBar() + Me.lblstatus = New System.Windows.Forms.Label() + Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() + Me.SplitContainer2 = New System.Windows.Forms.SplitContainer() + Me.Panel2 = New System.Windows.Forms.Panel() + Me.pTimeSeriesPlot = New TimeSeriesPlot() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.gboxDataFilter = New System.Windows.Forms.GroupBox() + Me.Panel4 = New System.Windows.Forms.Panel() + Me.btnClearFilter = New System.Windows.Forms.Button() + Me.btnApplyFilter = New System.Windows.Forms.Button() + Me.txtEditDFVTChange = New System.Windows.Forms.TextBox() + Me.rbtnEditDFVTChange = New System.Windows.Forms.RadioButton() + Me.rbtnDate = New System.Windows.Forms.RadioButton() + Me.rbtnValueThreshold = New System.Windows.Forms.RadioButton() + Me.rbtnDataGap = New System.Windows.Forms.RadioButton() + Me.gboxDate = New System.Windows.Forms.GroupBox() + Me.lblAfter = New System.Windows.Forms.Label() + Me.lblDateBefore = New System.Windows.Forms.Label() + Me.dtpAfter = New System.Windows.Forms.DateTimePicker() + Me.dtpBefore = New System.Windows.Forms.DateTimePicker() + Me.gboxDataGap = New System.Windows.Forms.GroupBox() + Me.ddlTimePeriod = New System.Windows.Forms.ComboBox() + Me.lblDataGapTime = New System.Windows.Forms.Label() + Me.txtDataGapValue = New System.Windows.Forms.TextBox() + Me.lblDataGapValue = New System.Windows.Forms.Label() + Me.gboxValueThreshold = New System.Windows.Forms.GroupBox() + Me.txtValueLess = New System.Windows.Forms.TextBox() + Me.txtValueLarger = New System.Windows.Forms.TextBox() + Me.lblValueLess = New System.Windows.Forms.Label() + Me.lblValueLarger = New System.Windows.Forms.Label() + Me.dgvDataValues = New System.Windows.Forms.DataGridView() + Me.TableLayoutPanel4.SuspendLayout() + Me.TableLayoutPanel5.SuspendLayout() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer1.Panel1.SuspendLayout() + Me.SplitContainer1.Panel2.SuspendLayout() + Me.SplitContainer1.SuspendLayout() + CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer2.Panel1.SuspendLayout() + Me.SplitContainer2.Panel2.SuspendLayout() + Me.SplitContainer2.SuspendLayout() + Me.Panel2.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.gboxDataFilter.SuspendLayout() + Me.Panel4.SuspendLayout() + Me.gboxDate.SuspendLayout() + Me.gboxDataGap.SuspendLayout() + Me.gboxValueThreshold.SuspendLayout() + CType(Me.dgvDataValues, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'TableLayoutPanel4 + ' + Me.TableLayoutPanel4.ColumnCount = 1 + Me.TableLayoutPanel4.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.TableLayoutPanel4.Controls.Add(Me.TableLayoutPanel5, 0, 1) + Me.TableLayoutPanel4.Controls.Add(Me.SplitContainer1, 0, 0) + Me.TableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill + Me.TableLayoutPanel4.Location = New System.Drawing.Point(0, 0) + Me.TableLayoutPanel4.Name = "TableLayoutPanel4" + Me.TableLayoutPanel4.RowCount = 2 + Me.TableLayoutPanel4.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.TableLayoutPanel4.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26.0!)) + Me.TableLayoutPanel4.Size = New System.Drawing.Size(849, 617) + Me.TableLayoutPanel4.TabIndex = 4 + ' + 'TableLayoutPanel5 + ' + Me.TableLayoutPanel5.ColumnCount = 2 + Me.TableLayoutPanel5.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel5.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel5.Controls.Add(Me.pbProgressBar, 1, 0) + Me.TableLayoutPanel5.Controls.Add(Me.lblstatus, 0, 0) + Me.TableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill + Me.TableLayoutPanel5.Location = New System.Drawing.Point(3, 594) + Me.TableLayoutPanel5.Name = "TableLayoutPanel5" + Me.TableLayoutPanel5.RowCount = 1 + Me.TableLayoutPanel5.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.TableLayoutPanel5.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + Me.TableLayoutPanel5.Size = New System.Drawing.Size(843, 20) + Me.TableLayoutPanel5.TabIndex = 4 + ' + 'pbProgressBar + ' + Me.pbProgressBar.Dock = System.Windows.Forms.DockStyle.Fill + Me.pbProgressBar.Location = New System.Drawing.Point(424, 3) + Me.pbProgressBar.Name = "pbProgressBar" + Me.pbProgressBar.Size = New System.Drawing.Size(416, 14) + Me.pbProgressBar.TabIndex = 5 + ' + 'lblstatus + ' + Me.lblstatus.AutoSize = True + Me.lblstatus.Dock = System.Windows.Forms.DockStyle.Fill + Me.lblstatus.Location = New System.Drawing.Point(3, 0) + Me.lblstatus.Name = "lblstatus" + Me.lblstatus.Size = New System.Drawing.Size(415, 20) + Me.lblstatus.TabIndex = 0 + ' + 'SplitContainer1 + ' + Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer1.Location = New System.Drawing.Point(3, 3) + Me.SplitContainer1.Name = "SplitContainer1" + Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal + ' + 'SplitContainer1.Panel1 + ' + Me.SplitContainer1.Panel1.AutoScroll = True + Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2) + Me.SplitContainer1.Panel1MinSize = 335 + ' + 'SplitContainer1.Panel2 + ' + Me.SplitContainer1.Panel2.Controls.Add(Me.dgvDataValues) + Me.SplitContainer1.Size = New System.Drawing.Size(843, 585) + Me.SplitContainer1.SplitterDistance = 337 + Me.SplitContainer1.TabIndex = 5 + ' + 'SplitContainer2 + ' + Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel2 + Me.SplitContainer2.IsSplitterFixed = True + Me.SplitContainer2.Location = New System.Drawing.Point(0, 0) + Me.SplitContainer2.Name = "SplitContainer2" + ' + 'SplitContainer2.Panel1 + ' + Me.SplitContainer2.Panel1.Controls.Add(Me.Panel2) + ' + 'SplitContainer2.Panel2 + ' + Me.SplitContainer2.Panel2.AutoScroll = True + Me.SplitContainer2.Panel2.Controls.Add(Me.Panel1) + Me.SplitContainer2.Panel2MinSize = 235 + Me.SplitContainer2.Size = New System.Drawing.Size(843, 337) + Me.SplitContainer2.SplitterDistance = 602 + Me.SplitContainer2.TabIndex = 0 + ' + 'Panel2 + ' + Me.Panel2.Controls.Add(Me.pTimeSeriesPlot) + Me.Panel2.Dock = System.Windows.Forms.DockStyle.Fill + Me.Panel2.Location = New System.Drawing.Point(0, 0) + Me.Panel2.Name = "Panel2" + Me.Panel2.Size = New System.Drawing.Size(602, 337) + Me.Panel2.TabIndex = 0 + ' + 'pTimeSeriesPlot + ' + Me.pTimeSeriesPlot.Dock = System.Windows.Forms.DockStyle.Fill + Me.pTimeSeriesPlot.Location = New System.Drawing.Point(0, 0) + Me.pTimeSeriesPlot.Name = "pTimeSeriesPlot" + Me.pTimeSeriesPlot.Size = New System.Drawing.Size(602, 337) + Me.pTimeSeriesPlot.TabIndex = 0 + ' + 'Panel1 + ' + Me.Panel1.AutoScroll = True + Me.Panel1.Controls.Add(Me.gboxDataFilter) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Right + Me.Panel1.Location = New System.Drawing.Point(2, 0) + Me.Panel1.MaximumSize = New System.Drawing.Size(235, 345) + Me.Panel1.MinimumSize = New System.Drawing.Size(225, 335) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(235, 337) + Me.Panel1.TabIndex = 0 + ' + 'gboxDataFilter + ' + Me.gboxDataFilter.Controls.Add(Me.Panel4) + Me.gboxDataFilter.Controls.Add(Me.txtEditDFVTChange) + Me.gboxDataFilter.Controls.Add(Me.rbtnEditDFVTChange) + Me.gboxDataFilter.Controls.Add(Me.rbtnDate) + Me.gboxDataFilter.Controls.Add(Me.rbtnValueThreshold) + Me.gboxDataFilter.Controls.Add(Me.rbtnDataGap) + Me.gboxDataFilter.Controls.Add(Me.gboxDate) + Me.gboxDataFilter.Controls.Add(Me.gboxDataGap) + Me.gboxDataFilter.Controls.Add(Me.gboxValueThreshold) + Me.gboxDataFilter.Cursor = System.Windows.Forms.Cursors.Default + Me.gboxDataFilter.Dock = System.Windows.Forms.DockStyle.Fill + Me.gboxDataFilter.Location = New System.Drawing.Point(0, 0) + Me.gboxDataFilter.MinimumSize = New System.Drawing.Size(225, 335) + Me.gboxDataFilter.Name = "gboxDataFilter" + Me.gboxDataFilter.Size = New System.Drawing.Size(235, 337) + Me.gboxDataFilter.TabIndex = 3 + Me.gboxDataFilter.TabStop = False + Me.gboxDataFilter.Text = "Data Filters" + ' + 'Panel4 + ' + Me.Panel4.Controls.Add(Me.btnClearFilter) + Me.Panel4.Controls.Add(Me.btnApplyFilter) + Me.Panel4.Dock = System.Windows.Forms.DockStyle.Bottom + Me.Panel4.Location = New System.Drawing.Point(3, 304) + Me.Panel4.Name = "Panel4" + Me.Panel4.Size = New System.Drawing.Size(229, 30) + Me.Panel4.TabIndex = 7 + ' + 'btnClearFilter + ' + Me.btnClearFilter.Location = New System.Drawing.Point(3, 4) + Me.btnClearFilter.Name = "btnClearFilter" + Me.btnClearFilter.Size = New System.Drawing.Size(99, 23) + Me.btnClearFilter.TabIndex = 6 + Me.btnClearFilter.Text = "Clear Filter" + Me.btnClearFilter.UseVisualStyleBackColor = True + ' + 'btnApplyFilter + ' + Me.btnApplyFilter.Location = New System.Drawing.Point(108, 4) + Me.btnApplyFilter.Name = "btnApplyFilter" + Me.btnApplyFilter.Size = New System.Drawing.Size(99, 23) + Me.btnApplyFilter.TabIndex = 5 + Me.btnApplyFilter.Text = "Apply Filter" + Me.btnApplyFilter.UseVisualStyleBackColor = True + ' + 'txtEditDFVTChange + ' + Me.txtEditDFVTChange.Location = New System.Drawing.Point(163, 274) + Me.txtEditDFVTChange.Name = "txtEditDFVTChange" + Me.txtEditDFVTChange.Size = New System.Drawing.Size(40, 20) + Me.txtEditDFVTChange.TabIndex = 4 + ' + 'rbtnEditDFVTChange + ' + Me.rbtnEditDFVTChange.ForeColor = System.Drawing.SystemColors.ControlText + Me.rbtnEditDFVTChange.Location = New System.Drawing.Point(9, 274) + Me.rbtnEditDFVTChange.Name = "rbtnEditDFVTChange" + Me.rbtnEditDFVTChange.Size = New System.Drawing.Size(168, 20) + Me.rbtnEditDFVTChange.TabIndex = 3 + Me.rbtnEditDFVTChange.TabStop = True + Me.rbtnEditDFVTChange.Text = "Value Change Threshold >= " + Me.rbtnEditDFVTChange.UseVisualStyleBackColor = True + ' + 'rbtnDate + ' + Me.rbtnDate.AutoSize = True + Me.rbtnDate.Location = New System.Drawing.Point(9, 168) + Me.rbtnDate.Name = "rbtnDate" + Me.rbtnDate.Size = New System.Drawing.Size(14, 13) + Me.rbtnDate.TabIndex = 3 + Me.rbtnDate.TabStop = True + Me.rbtnDate.UseVisualStyleBackColor = True + ' + 'rbtnValueThreshold + ' + Me.rbtnValueThreshold.AutoSize = True + Me.rbtnValueThreshold.Location = New System.Drawing.Point(9, 16) + Me.rbtnValueThreshold.Name = "rbtnValueThreshold" + Me.rbtnValueThreshold.Size = New System.Drawing.Size(14, 13) + Me.rbtnValueThreshold.TabIndex = 1 + Me.rbtnValueThreshold.TabStop = True + Me.rbtnValueThreshold.UseVisualStyleBackColor = True + ' + 'rbtnDataGap + ' + Me.rbtnDataGap.AutoSize = True + Me.rbtnDataGap.Location = New System.Drawing.Point(9, 90) + Me.rbtnDataGap.Name = "rbtnDataGap" + Me.rbtnDataGap.Size = New System.Drawing.Size(14, 13) + Me.rbtnDataGap.TabIndex = 2 + Me.rbtnDataGap.TabStop = True + Me.rbtnDataGap.UseVisualStyleBackColor = True + ' + 'gboxDate + ' + Me.gboxDate.Controls.Add(Me.lblAfter) + Me.gboxDate.Controls.Add(Me.lblDateBefore) + Me.gboxDate.Controls.Add(Me.dtpAfter) + Me.gboxDate.Controls.Add(Me.dtpBefore) + Me.gboxDate.Dock = System.Windows.Forms.DockStyle.Top + Me.gboxDate.Location = New System.Drawing.Point(3, 168) + Me.gboxDate.Name = "gboxDate" + Me.gboxDate.Size = New System.Drawing.Size(229, 100) + Me.gboxDate.TabIndex = 2 + Me.gboxDate.TabStop = False + Me.gboxDate.Text = " Date" + ' + 'lblAfter + ' + Me.lblAfter.AutoSize = True + Me.lblAfter.Location = New System.Drawing.Point(4, 58) + Me.lblAfter.Name = "lblAfter" + Me.lblAfter.Size = New System.Drawing.Size(32, 13) + Me.lblAfter.TabIndex = 7 + Me.lblAfter.Text = "After:" + ' + 'lblDateBefore + ' + Me.lblDateBefore.AutoSize = True + Me.lblDateBefore.Location = New System.Drawing.Point(4, 20) + Me.lblDateBefore.Name = "lblDateBefore" + Me.lblDateBefore.Size = New System.Drawing.Size(41, 13) + Me.lblDateBefore.TabIndex = 6 + Me.lblDateBefore.Text = "Before:" + ' + 'dtpAfter + ' + Me.dtpAfter.CustomFormat = "MM/dd/yyyy hh:mm:ss" + Me.dtpAfter.Format = System.Windows.Forms.DateTimePickerFormat.Custom + Me.dtpAfter.Location = New System.Drawing.Point(3, 74) + Me.dtpAfter.Name = "dtpAfter" + Me.dtpAfter.Size = New System.Drawing.Size(197, 20) + Me.dtpAfter.TabIndex = 5 + ' + 'dtpBefore + ' + Me.dtpBefore.CustomFormat = "MM/dd/yyyy hh:mm:ss" + Me.dtpBefore.Format = System.Windows.Forms.DateTimePickerFormat.Custom + Me.dtpBefore.Location = New System.Drawing.Point(3, 34) + Me.dtpBefore.Name = "dtpBefore" + Me.dtpBefore.Size = New System.Drawing.Size(197, 20) + Me.dtpBefore.TabIndex = 4 + ' + 'gboxDataGap + ' + Me.gboxDataGap.Controls.Add(Me.ddlTimePeriod) + Me.gboxDataGap.Controls.Add(Me.lblDataGapTime) + Me.gboxDataGap.Controls.Add(Me.txtDataGapValue) + Me.gboxDataGap.Controls.Add(Me.lblDataGapValue) + Me.gboxDataGap.Dock = System.Windows.Forms.DockStyle.Top + Me.gboxDataGap.Location = New System.Drawing.Point(3, 90) + Me.gboxDataGap.Name = "gboxDataGap" + Me.gboxDataGap.Size = New System.Drawing.Size(229, 78) + Me.gboxDataGap.TabIndex = 1 + Me.gboxDataGap.TabStop = False + Me.gboxDataGap.Text = " Data Gaps" + ' + 'ddlTimePeriod + ' + Me.ddlTimePeriod.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.ddlTimePeriod.FormattingEnabled = True + Me.ddlTimePeriod.Items.AddRange(New Object() {"Second", "Minute", "Hour", "Day"}) + Me.ddlTimePeriod.Location = New System.Drawing.Point(76, 47) + Me.ddlTimePeriod.Name = "ddlTimePeriod" + Me.ddlTimePeriod.Size = New System.Drawing.Size(106, 21) + Me.ddlTimePeriod.TabIndex = 6 + ' + 'lblDataGapTime + ' + Me.lblDataGapTime.AutoSize = True + Me.lblDataGapTime.Location = New System.Drawing.Point(6, 50) + Me.lblDataGapTime.Name = "lblDataGapTime" + Me.lblDataGapTime.Size = New System.Drawing.Size(69, 13) + Me.lblDataGapTime.TabIndex = 5 + Me.lblDataGapTime.Text = "Time Period: " + ' + 'txtDataGapValue + ' + Me.txtDataGapValue.Location = New System.Drawing.Point(56, 17) + Me.txtDataGapValue.Name = "txtDataGapValue" + Me.txtDataGapValue.Size = New System.Drawing.Size(126, 20) + Me.txtDataGapValue.TabIndex = 4 + ' + 'lblDataGapValue + ' + Me.lblDataGapValue.AutoSize = True + Me.lblDataGapValue.Location = New System.Drawing.Point(6, 20) + Me.lblDataGapValue.Name = "lblDataGapValue" + Me.lblDataGapValue.Size = New System.Drawing.Size(37, 13) + Me.lblDataGapValue.TabIndex = 3 + Me.lblDataGapValue.Text = "Value:" + ' + 'gboxValueThreshold + ' + Me.gboxValueThreshold.Controls.Add(Me.txtValueLess) + Me.gboxValueThreshold.Controls.Add(Me.txtValueLarger) + Me.gboxValueThreshold.Controls.Add(Me.lblValueLess) + Me.gboxValueThreshold.Controls.Add(Me.lblValueLarger) + Me.gboxValueThreshold.Dock = System.Windows.Forms.DockStyle.Top + Me.gboxValueThreshold.Location = New System.Drawing.Point(3, 16) + Me.gboxValueThreshold.Name = "gboxValueThreshold" + Me.gboxValueThreshold.Size = New System.Drawing.Size(229, 74) + Me.gboxValueThreshold.TabIndex = 0 + Me.gboxValueThreshold.TabStop = False + Me.gboxValueThreshold.Text = " Value Threshold" + ' + 'txtValueLess + ' + Me.txtValueLess.Location = New System.Drawing.Point(56, 46) + Me.txtValueLess.Name = "txtValueLess" + Me.txtValueLess.Size = New System.Drawing.Size(126, 20) + Me.txtValueLess.TabIndex = 5 + ' + 'txtValueLarger + ' + Me.txtValueLarger.Location = New System.Drawing.Point(56, 21) + Me.txtValueLarger.Name = "txtValueLarger" + Me.txtValueLarger.Size = New System.Drawing.Size(126, 20) + Me.txtValueLarger.TabIndex = 4 + ' + 'lblValueLess + ' + Me.lblValueLess.AutoSize = True + Me.lblValueLess.Location = New System.Drawing.Point(6, 49) + Me.lblValueLess.Name = "lblValueLess" + Me.lblValueLess.Size = New System.Drawing.Size(43, 13) + Me.lblValueLess.TabIndex = 3 + Me.lblValueLess.Text = "Value <" + ' + 'lblValueLarger + ' + Me.lblValueLarger.AutoSize = True + Me.lblValueLarger.Location = New System.Drawing.Point(6, 24) + Me.lblValueLarger.Name = "lblValueLarger" + Me.lblValueLarger.Size = New System.Drawing.Size(43, 13) + Me.lblValueLarger.TabIndex = 2 + Me.lblValueLarger.Text = "Value >" + ' + 'dgvDataValues + ' + Me.dgvDataValues.AllowDrop = True + Me.dgvDataValues.AllowUserToAddRows = False + Me.dgvDataValues.AllowUserToDeleteRows = False + Me.dgvDataValues.AllowUserToResizeRows = False + DataGridViewCellStyle1.BackColor = System.Drawing.Color.MistyRose + Me.dgvDataValues.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1 + Me.dgvDataValues.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCells + Me.dgvDataValues.BackgroundColor = System.Drawing.SystemColors.Window + Me.dgvDataValues.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None + Me.dgvDataValues.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + DataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window + DataGridViewCellStyle2.Font = New System.Drawing.Font("Arial", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + DataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText + DataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.[False] + Me.dgvDataValues.DefaultCellStyle = DataGridViewCellStyle2 + Me.dgvDataValues.Dock = System.Windows.Forms.DockStyle.Fill + Me.dgvDataValues.EnableHeadersVisualStyles = False + Me.dgvDataValues.Location = New System.Drawing.Point(0, 0) + Me.dgvDataValues.Name = "dgvDataValues" + Me.dgvDataValues.RowHeadersVisible = False + Me.dgvDataValues.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect + Me.dgvDataValues.Size = New System.Drawing.Size(843, 244) + Me.dgvDataValues.TabIndex = 5 + ' + 'cEditView + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.BackColor = System.Drawing.Color.FromArgb(CType(CType(191, Byte), Integer), CType(CType(219, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.Controls.Add(Me.TableLayoutPanel4) + Me.Name = "cEditView" + Me.Size = New System.Drawing.Size(849, 617) + Me.TableLayoutPanel4.ResumeLayout(False) + Me.TableLayoutPanel5.ResumeLayout(False) + Me.TableLayoutPanel5.PerformLayout() + Me.SplitContainer1.Panel1.ResumeLayout(False) + Me.SplitContainer1.Panel2.ResumeLayout(False) + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer1.ResumeLayout(False) + Me.SplitContainer2.Panel1.ResumeLayout(False) + Me.SplitContainer2.Panel2.ResumeLayout(False) + CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer2.ResumeLayout(False) + Me.Panel2.ResumeLayout(False) + Me.Panel1.ResumeLayout(False) + Me.gboxDataFilter.ResumeLayout(False) + Me.gboxDataFilter.PerformLayout() + Me.Panel4.ResumeLayout(False) + Me.gboxDate.ResumeLayout(False) + Me.gboxDate.PerformLayout() + Me.gboxDataGap.ResumeLayout(False) + Me.gboxDataGap.PerformLayout() + Me.gboxValueThreshold.ResumeLayout(False) + Me.gboxValueThreshold.PerformLayout() + CType(Me.dgvDataValues, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents TableLayoutPanel4 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents TableLayoutPanel5 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents pbProgressBar As System.Windows.Forms.ProgressBar + Friend WithEvents lblstatus As System.Windows.Forms.Label + Friend WithEvents SplitContainer1 As System.Windows.Forms.SplitContainer + Friend WithEvents SplitContainer2 As System.Windows.Forms.SplitContainer + Friend WithEvents pTimeSeriesPlot As TimeSeriesPlot + Friend WithEvents dgvDataValues As System.Windows.Forms.DataGridView + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents gboxDataFilter As System.Windows.Forms.GroupBox + Friend WithEvents Panel4 As System.Windows.Forms.Panel + Friend WithEvents btnClearFilter As System.Windows.Forms.Button + Friend WithEvents btnApplyFilter As System.Windows.Forms.Button + Friend WithEvents txtEditDFVTChange As System.Windows.Forms.TextBox + Friend WithEvents rbtnEditDFVTChange As System.Windows.Forms.RadioButton + Friend WithEvents rbtnDate As System.Windows.Forms.RadioButton + Friend WithEvents rbtnValueThreshold As System.Windows.Forms.RadioButton + Friend WithEvents rbtnDataGap As System.Windows.Forms.RadioButton + Friend WithEvents gboxDate As System.Windows.Forms.GroupBox + Friend WithEvents lblAfter As System.Windows.Forms.Label + Friend WithEvents lblDateBefore As System.Windows.Forms.Label + Friend WithEvents dtpAfter As System.Windows.Forms.DateTimePicker + Friend WithEvents dtpBefore As System.Windows.Forms.DateTimePicker + Friend WithEvents gboxDataGap As System.Windows.Forms.GroupBox + Friend WithEvents ddlTimePeriod As System.Windows.Forms.ComboBox + Friend WithEvents lblDataGapTime As System.Windows.Forms.Label + Friend WithEvents txtDataGapValue As System.Windows.Forms.TextBox + Friend WithEvents lblDataGapValue As System.Windows.Forms.Label + Friend WithEvents gboxValueThreshold As System.Windows.Forms.GroupBox + Friend WithEvents txtValueLess As System.Windows.Forms.TextBox + Friend WithEvents txtValueLarger As System.Windows.Forms.TextBox + Friend WithEvents lblValueLess As System.Windows.Forms.Label + Friend WithEvents lblValueLarger As System.Windows.Forms.Label + Friend WithEvents Panel2 As System.Windows.Forms.Panel + + + End Class + 'End Namespace +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/cEditView.resx b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/cEditView.resx new file mode 100644 index 00000000..c7e0d4bd --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/cEditView.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/cEditViewOriginal.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/cEditViewOriginal.Designer.vb new file mode 100644 index 00000000..8df3edd6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/cEditViewOriginal.Designer.vb @@ -0,0 +1,548 @@ +'Namespace EditView + _ +Partial Class cEditView + Inherits System.Windows.Forms.UserControl + + 'UserControl overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Me.TableLayoutPanel3 = New System.Windows.Forms.TableLayoutPanel() + Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() + Me.pTimeSeriesPlot = New cTimeSeriesPlot() + Me.panel1 = New System.Windows.Forms.Panel() + Me.dgvDataValues = New System.Windows.Forms.DataGridView() + Me.Panel2 = New System.Windows.Forms.Panel() + Me.TableLayoutPanel2 = New System.Windows.Forms.TableLayoutPanel() + Me.pnlFilter = New System.Windows.Forms.Panel() + Me.gboxDataFilter = New System.Windows.Forms.GroupBox() + Me.Panel4 = New System.Windows.Forms.Panel() + Me.btnClearFilter = New System.Windows.Forms.Button() + Me.btnApplyFilter = New System.Windows.Forms.Button() + Me.txtEditDFVTChange = New System.Windows.Forms.TextBox() + Me.rbtnEditDFVTChange = New System.Windows.Forms.RadioButton() + Me.rbtnDate = New System.Windows.Forms.RadioButton() + Me.rbtnValueThreshold = New System.Windows.Forms.RadioButton() + Me.rbtnDataGap = New System.Windows.Forms.RadioButton() + Me.gboxDate = New System.Windows.Forms.GroupBox() + Me.lblAfter = New System.Windows.Forms.Label() + Me.lblDateBefore = New System.Windows.Forms.Label() + Me.dtpAfter = New System.Windows.Forms.DateTimePicker() + Me.dtpBefore = New System.Windows.Forms.DateTimePicker() + Me.gboxDataGap = New System.Windows.Forms.GroupBox() + Me.ddlTimePeriod = New System.Windows.Forms.ComboBox() + Me.lblDataGapTime = New System.Windows.Forms.Label() + Me.txtDataGapValue = New System.Windows.Forms.TextBox() + Me.lblDataGapValue = New System.Windows.Forms.Label() + Me.gboxValueThreshold = New System.Windows.Forms.GroupBox() + Me.txtValueLess = New System.Windows.Forms.TextBox() + Me.txtValueLarger = New System.Windows.Forms.TextBox() + Me.lblValueLess = New System.Windows.Forms.Label() + Me.lblValueLarger = New System.Windows.Forms.Label() + Me.TableLayoutPanel5 = New System.Windows.Forms.TableLayoutPanel() + Me.pbProgressBar = New System.Windows.Forms.ProgressBar() + Me.lblstatus = New System.Windows.Forms.Label() + Me.TableLayoutPanel4 = New System.Windows.Forms.TableLayoutPanel() + Me.TableLayoutPanel3.SuspendLayout() + Me.TableLayoutPanel1.SuspendLayout() + Me.panel1.SuspendLayout() + CType(Me.dgvDataValues, System.ComponentModel.ISupportInitialize).BeginInit() + Me.Panel2.SuspendLayout() + Me.TableLayoutPanel2.SuspendLayout() + Me.pnlFilter.SuspendLayout() + Me.gboxDataFilter.SuspendLayout() + Me.Panel4.SuspendLayout() + Me.gboxDate.SuspendLayout() + Me.gboxDataGap.SuspendLayout() + Me.gboxValueThreshold.SuspendLayout() + Me.TableLayoutPanel5.SuspendLayout() + Me.TableLayoutPanel4.SuspendLayout() + Me.SuspendLayout() + ' + 'TableLayoutPanel3 + ' + Me.TableLayoutPanel3.ColumnCount = 2 + Me.TableLayoutPanel3.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.TableLayoutPanel3.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 237.0!)) + Me.TableLayoutPanel3.Controls.Add(Me.TableLayoutPanel1, 0, 0) + Me.TableLayoutPanel3.Controls.Add(Me.Panel2, 1, 0) + Me.TableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill + Me.TableLayoutPanel3.Location = New System.Drawing.Point(3, 3) + Me.TableLayoutPanel3.Name = "TableLayoutPanel3" + Me.TableLayoutPanel3.RowCount = 1 + Me.TableLayoutPanel3.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.TableLayoutPanel3.Size = New System.Drawing.Size(898, 443) + Me.TableLayoutPanel3.TabIndex = 3 + ' + 'TableLayoutPanel1 + ' + Me.TableLayoutPanel1.ColumnCount = 1 + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + Me.TableLayoutPanel1.Controls.Add(Me.pTimeSeriesPlot, 0, 0) + Me.TableLayoutPanel1.Controls.Add(Me.panel1, 0, 1) + Me.TableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill + Me.TableLayoutPanel1.Location = New System.Drawing.Point(3, 3) + Me.TableLayoutPanel1.Name = "TableLayoutPanel1" + Me.TableLayoutPanel1.RowCount = 2 + Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 64.2!)) + Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 35.8!)) + Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + Me.TableLayoutPanel1.Size = New System.Drawing.Size(655, 437) + Me.TableLayoutPanel1.TabIndex = 0 + ' + 'pTimeSeriesPlot + ' + Me.pTimeSeriesPlot.AutoSize = True + Me.pTimeSeriesPlot.Dock = System.Windows.Forms.DockStyle.Fill + Me.pTimeSeriesPlot.Location = New System.Drawing.Point(3, 3) + Me.pTimeSeriesPlot.Name = "pTimeSeriesPlot" + Me.pTimeSeriesPlot.Size = New System.Drawing.Size(649, 274) + Me.pTimeSeriesPlot.TabIndex = 0 + ' + 'panel1 + ' + Me.panel1.Controls.Add(Me.dgvDataValues) + Me.panel1.Dock = System.Windows.Forms.DockStyle.Fill + Me.panel1.Location = New System.Drawing.Point(3, 283) + Me.panel1.Name = "panel1" + Me.panel1.Size = New System.Drawing.Size(649, 151) + Me.panel1.TabIndex = 5 + ' + 'dgvDataValues + ' + Me.dgvDataValues.AllowDrop = True + Me.dgvDataValues.AllowUserToAddRows = False + Me.dgvDataValues.AllowUserToDeleteRows = False + Me.dgvDataValues.AllowUserToResizeRows = False + DataGridViewCellStyle1.BackColor = System.Drawing.Color.MistyRose + Me.dgvDataValues.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1 + Me.dgvDataValues.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCells + Me.dgvDataValues.BackgroundColor = System.Drawing.SystemColors.Window + Me.dgvDataValues.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None + Me.dgvDataValues.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + DataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window + DataGridViewCellStyle2.Font = New System.Drawing.Font("Arial", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + DataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText + DataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.[False] + Me.dgvDataValues.DefaultCellStyle = DataGridViewCellStyle2 + Me.dgvDataValues.EnableHeadersVisualStyles = False + Me.dgvDataValues.Location = New System.Drawing.Point(-3, 6) + Me.dgvDataValues.Name = "dgvDataValues" + Me.dgvDataValues.RowHeadersVisible = False + Me.dgvDataValues.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect + Me.dgvDataValues.Size = New System.Drawing.Size(649, 151) + Me.dgvDataValues.TabIndex = 4 + ' + 'Panel2 + ' + Me.Panel2.Controls.Add(Me.TableLayoutPanel2) + Me.Panel2.Dock = System.Windows.Forms.DockStyle.Fill + Me.Panel2.Location = New System.Drawing.Point(664, 3) + Me.Panel2.Name = "Panel2" + Me.Panel2.Size = New System.Drawing.Size(231, 437) + Me.Panel2.TabIndex = 0 + ' + 'TableLayoutPanel2 + ' + Me.TableLayoutPanel2.AutoScroll = True + Me.TableLayoutPanel2.ColumnCount = 1 + Me.TableLayoutPanel2.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.TableLayoutPanel2.Controls.Add(Me.pnlFilter, 0, 0) + Me.TableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill + Me.TableLayoutPanel2.Location = New System.Drawing.Point(0, 0) + Me.TableLayoutPanel2.Name = "TableLayoutPanel2" + Me.TableLayoutPanel2.RowCount = 1 + Me.TableLayoutPanel2.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.TableLayoutPanel2.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 437.0!)) + Me.TableLayoutPanel2.Size = New System.Drawing.Size(231, 437) + Me.TableLayoutPanel2.TabIndex = 1 + ' + 'pnlFilter + ' + Me.pnlFilter.AutoScroll = True + Me.pnlFilter.Controls.Add(Me.gboxDataFilter) + Me.pnlFilter.Location = New System.Drawing.Point(3, 3) + Me.pnlFilter.Name = "pnlFilter" + Me.pnlFilter.Size = New System.Drawing.Size(225, 338) + Me.pnlFilter.TabIndex = 6 + ' + 'gboxDataFilter + ' + Me.gboxDataFilter.Controls.Add(Me.Panel4) + Me.gboxDataFilter.Controls.Add(Me.txtEditDFVTChange) + Me.gboxDataFilter.Controls.Add(Me.rbtnEditDFVTChange) + Me.gboxDataFilter.Controls.Add(Me.rbtnDate) + Me.gboxDataFilter.Controls.Add(Me.rbtnValueThreshold) + Me.gboxDataFilter.Controls.Add(Me.rbtnDataGap) + Me.gboxDataFilter.Controls.Add(Me.gboxDate) + Me.gboxDataFilter.Controls.Add(Me.gboxDataGap) + Me.gboxDataFilter.Controls.Add(Me.gboxValueThreshold) + Me.gboxDataFilter.Cursor = System.Windows.Forms.Cursors.Default + Me.gboxDataFilter.Location = New System.Drawing.Point(0, 0) + Me.gboxDataFilter.Name = "gboxDataFilter" + Me.gboxDataFilter.Size = New System.Drawing.Size(209, 333) + Me.gboxDataFilter.TabIndex = 1 + Me.gboxDataFilter.TabStop = False + Me.gboxDataFilter.Text = "Data Filters" + ' + 'Panel4 + ' + Me.Panel4.Controls.Add(Me.btnClearFilter) + Me.Panel4.Controls.Add(Me.btnApplyFilter) + Me.Panel4.Dock = System.Windows.Forms.DockStyle.Bottom + Me.Panel4.Location = New System.Drawing.Point(3, 300) + Me.Panel4.Name = "Panel4" + Me.Panel4.Size = New System.Drawing.Size(203, 30) + Me.Panel4.TabIndex = 7 + ' + 'btnClearFilter + ' + Me.btnClearFilter.Location = New System.Drawing.Point(3, 4) + Me.btnClearFilter.Name = "btnClearFilter" + Me.btnClearFilter.Size = New System.Drawing.Size(99, 23) + Me.btnClearFilter.TabIndex = 6 + Me.btnClearFilter.Text = "Clear Filter" + Me.btnClearFilter.UseVisualStyleBackColor = True + ' + 'btnApplyFilter + ' + Me.btnApplyFilter.Location = New System.Drawing.Point(101, 4) + Me.btnApplyFilter.Name = "btnApplyFilter" + Me.btnApplyFilter.Size = New System.Drawing.Size(99, 23) + Me.btnApplyFilter.TabIndex = 5 + Me.btnApplyFilter.Text = "Apply Filter" + Me.btnApplyFilter.UseVisualStyleBackColor = True + ' + 'txtEditDFVTChange + ' + Me.txtEditDFVTChange.Location = New System.Drawing.Point(163, 274) + Me.txtEditDFVTChange.Name = "txtEditDFVTChange" + Me.txtEditDFVTChange.Size = New System.Drawing.Size(40, 20) + Me.txtEditDFVTChange.TabIndex = 4 + ' + 'rbtnEditDFVTChange + ' + Me.rbtnEditDFVTChange.ForeColor = System.Drawing.SystemColors.ControlText + Me.rbtnEditDFVTChange.Location = New System.Drawing.Point(9, 274) + Me.rbtnEditDFVTChange.Name = "rbtnEditDFVTChange" + Me.rbtnEditDFVTChange.Size = New System.Drawing.Size(168, 20) + Me.rbtnEditDFVTChange.TabIndex = 3 + Me.rbtnEditDFVTChange.TabStop = True + Me.rbtnEditDFVTChange.Text = "Value Change Threshold >= " + Me.rbtnEditDFVTChange.UseVisualStyleBackColor = True + ' + 'rbtnDate + ' + Me.rbtnDate.AutoSize = True + Me.rbtnDate.Location = New System.Drawing.Point(9, 168) + Me.rbtnDate.Name = "rbtnDate" + Me.rbtnDate.Size = New System.Drawing.Size(14, 13) + Me.rbtnDate.TabIndex = 3 + Me.rbtnDate.TabStop = True + Me.rbtnDate.UseVisualStyleBackColor = True + ' + 'rbtnValueThreshold + ' + Me.rbtnValueThreshold.AutoSize = True + Me.rbtnValueThreshold.Location = New System.Drawing.Point(9, 16) + Me.rbtnValueThreshold.Name = "rbtnValueThreshold" + Me.rbtnValueThreshold.Size = New System.Drawing.Size(14, 13) + Me.rbtnValueThreshold.TabIndex = 1 + Me.rbtnValueThreshold.TabStop = True + Me.rbtnValueThreshold.UseVisualStyleBackColor = True + ' + 'rbtnDataGap + ' + Me.rbtnDataGap.AutoSize = True + Me.rbtnDataGap.Location = New System.Drawing.Point(9, 90) + Me.rbtnDataGap.Name = "rbtnDataGap" + Me.rbtnDataGap.Size = New System.Drawing.Size(14, 13) + Me.rbtnDataGap.TabIndex = 2 + Me.rbtnDataGap.TabStop = True + Me.rbtnDataGap.UseVisualStyleBackColor = True + ' + 'gboxDate + ' + Me.gboxDate.Controls.Add(Me.lblAfter) + Me.gboxDate.Controls.Add(Me.lblDateBefore) + Me.gboxDate.Controls.Add(Me.dtpAfter) + Me.gboxDate.Controls.Add(Me.dtpBefore) + Me.gboxDate.Dock = System.Windows.Forms.DockStyle.Top + Me.gboxDate.Location = New System.Drawing.Point(3, 168) + Me.gboxDate.Name = "gboxDate" + Me.gboxDate.Size = New System.Drawing.Size(203, 100) + Me.gboxDate.TabIndex = 2 + Me.gboxDate.TabStop = False + Me.gboxDate.Text = " Date" + ' + 'lblAfter + ' + Me.lblAfter.AutoSize = True + Me.lblAfter.Location = New System.Drawing.Point(4, 58) + Me.lblAfter.Name = "lblAfter" + Me.lblAfter.Size = New System.Drawing.Size(32, 13) + Me.lblAfter.TabIndex = 7 + Me.lblAfter.Text = "After:" + ' + 'lblDateBefore + ' + Me.lblDateBefore.AutoSize = True + Me.lblDateBefore.Location = New System.Drawing.Point(4, 20) + Me.lblDateBefore.Name = "lblDateBefore" + Me.lblDateBefore.Size = New System.Drawing.Size(41, 13) + Me.lblDateBefore.TabIndex = 6 + Me.lblDateBefore.Text = "Before:" + ' + 'dtpAfter + ' + Me.dtpAfter.CustomFormat = "MM/dd/yyyy hh:mm:ss" + Me.dtpAfter.Format = System.Windows.Forms.DateTimePickerFormat.Custom + Me.dtpAfter.Location = New System.Drawing.Point(3, 74) + Me.dtpAfter.Name = "dtpAfter" + Me.dtpAfter.Size = New System.Drawing.Size(197, 20) + Me.dtpAfter.TabIndex = 5 + ' + 'dtpBefore + ' + Me.dtpBefore.CustomFormat = "MM/dd/yyyy hh:mm:ss" + Me.dtpBefore.Format = System.Windows.Forms.DateTimePickerFormat.Custom + Me.dtpBefore.Location = New System.Drawing.Point(3, 34) + Me.dtpBefore.Name = "dtpBefore" + Me.dtpBefore.Size = New System.Drawing.Size(197, 20) + Me.dtpBefore.TabIndex = 4 + ' + 'gboxDataGap + ' + Me.gboxDataGap.Controls.Add(Me.ddlTimePeriod) + Me.gboxDataGap.Controls.Add(Me.lblDataGapTime) + Me.gboxDataGap.Controls.Add(Me.txtDataGapValue) + Me.gboxDataGap.Controls.Add(Me.lblDataGapValue) + Me.gboxDataGap.Dock = System.Windows.Forms.DockStyle.Top + Me.gboxDataGap.Location = New System.Drawing.Point(3, 90) + Me.gboxDataGap.Name = "gboxDataGap" + Me.gboxDataGap.Size = New System.Drawing.Size(203, 78) + Me.gboxDataGap.TabIndex = 1 + Me.gboxDataGap.TabStop = False + Me.gboxDataGap.Text = " Data Gaps" + ' + 'ddlTimePeriod + ' + Me.ddlTimePeriod.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.ddlTimePeriod.FormattingEnabled = True + Me.ddlTimePeriod.Items.AddRange(New Object() {"Second", "Minute", "Hour", "Day"}) + Me.ddlTimePeriod.Location = New System.Drawing.Point(76, 47) + Me.ddlTimePeriod.Name = "ddlTimePeriod" + Me.ddlTimePeriod.Size = New System.Drawing.Size(106, 21) + Me.ddlTimePeriod.TabIndex = 6 + ' + 'lblDataGapTime + ' + Me.lblDataGapTime.AutoSize = True + Me.lblDataGapTime.Location = New System.Drawing.Point(6, 50) + Me.lblDataGapTime.Name = "lblDataGapTime" + Me.lblDataGapTime.Size = New System.Drawing.Size(69, 13) + Me.lblDataGapTime.TabIndex = 5 + Me.lblDataGapTime.Text = "Time Period: " + ' + 'txtDataGapValue + ' + Me.txtDataGapValue.Location = New System.Drawing.Point(56, 17) + Me.txtDataGapValue.Name = "txtDataGapValue" + Me.txtDataGapValue.Size = New System.Drawing.Size(126, 20) + Me.txtDataGapValue.TabIndex = 4 + ' + 'lblDataGapValue + ' + Me.lblDataGapValue.AutoSize = True + Me.lblDataGapValue.Location = New System.Drawing.Point(6, 20) + Me.lblDataGapValue.Name = "lblDataGapValue" + Me.lblDataGapValue.Size = New System.Drawing.Size(37, 13) + Me.lblDataGapValue.TabIndex = 3 + Me.lblDataGapValue.Text = "Value:" + ' + 'gboxValueThreshold + ' + Me.gboxValueThreshold.Controls.Add(Me.txtValueLess) + Me.gboxValueThreshold.Controls.Add(Me.txtValueLarger) + Me.gboxValueThreshold.Controls.Add(Me.lblValueLess) + Me.gboxValueThreshold.Controls.Add(Me.lblValueLarger) + Me.gboxValueThreshold.Dock = System.Windows.Forms.DockStyle.Top + Me.gboxValueThreshold.Location = New System.Drawing.Point(3, 16) + Me.gboxValueThreshold.Name = "gboxValueThreshold" + Me.gboxValueThreshold.Size = New System.Drawing.Size(203, 74) + Me.gboxValueThreshold.TabIndex = 0 + Me.gboxValueThreshold.TabStop = False + Me.gboxValueThreshold.Text = " Value Threshold" + ' + 'txtValueLess + ' + Me.txtValueLess.Location = New System.Drawing.Point(56, 46) + Me.txtValueLess.Name = "txtValueLess" + Me.txtValueLess.Size = New System.Drawing.Size(126, 20) + Me.txtValueLess.TabIndex = 5 + ' + 'txtValueLarger + ' + Me.txtValueLarger.Location = New System.Drawing.Point(56, 21) + Me.txtValueLarger.Name = "txtValueLarger" + Me.txtValueLarger.Size = New System.Drawing.Size(126, 20) + Me.txtValueLarger.TabIndex = 4 + ' + 'lblValueLess + ' + Me.lblValueLess.AutoSize = True + Me.lblValueLess.Location = New System.Drawing.Point(6, 49) + Me.lblValueLess.Name = "lblValueLess" + Me.lblValueLess.Size = New System.Drawing.Size(43, 13) + Me.lblValueLess.TabIndex = 3 + Me.lblValueLess.Text = "Value <" + ' + 'lblValueLarger + ' + Me.lblValueLarger.AutoSize = True + Me.lblValueLarger.Location = New System.Drawing.Point(6, 24) + Me.lblValueLarger.Name = "lblValueLarger" + Me.lblValueLarger.Size = New System.Drawing.Size(43, 13) + Me.lblValueLarger.TabIndex = 2 + Me.lblValueLarger.Text = "Value >" + ' + 'TableLayoutPanel5 + ' + Me.TableLayoutPanel5.ColumnCount = 2 + Me.TableLayoutPanel5.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel5.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel5.Controls.Add(Me.pbProgressBar, 1, 0) + Me.TableLayoutPanel5.Controls.Add(Me.lblstatus, 0, 0) + Me.TableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill + Me.TableLayoutPanel5.Location = New System.Drawing.Point(3, 452) + Me.TableLayoutPanel5.Name = "TableLayoutPanel5" + Me.TableLayoutPanel5.RowCount = 1 + Me.TableLayoutPanel5.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.TableLayoutPanel5.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + Me.TableLayoutPanel5.Size = New System.Drawing.Size(898, 20) + Me.TableLayoutPanel5.TabIndex = 4 + ' + 'pbProgressBar + ' + Me.pbProgressBar.Dock = System.Windows.Forms.DockStyle.Fill + Me.pbProgressBar.Location = New System.Drawing.Point(452, 3) + Me.pbProgressBar.Name = "pbProgressBar" + Me.pbProgressBar.Size = New System.Drawing.Size(443, 14) + Me.pbProgressBar.TabIndex = 5 + ' + 'lblstatus + ' + Me.lblstatus.AutoSize = True + Me.lblstatus.Dock = System.Windows.Forms.DockStyle.Fill + Me.lblstatus.Location = New System.Drawing.Point(3, 0) + Me.lblstatus.Name = "lblstatus" + Me.lblstatus.Size = New System.Drawing.Size(443, 20) + Me.lblstatus.TabIndex = 0 + ' + 'TableLayoutPanel4 + ' + Me.TableLayoutPanel4.ColumnCount = 1 + Me.TableLayoutPanel4.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.TableLayoutPanel4.Controls.Add(Me.TableLayoutPanel5, 0, 1) + Me.TableLayoutPanel4.Controls.Add(Me.TableLayoutPanel3, 0, 0) + Me.TableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill + Me.TableLayoutPanel4.Location = New System.Drawing.Point(0, 0) + Me.TableLayoutPanel4.Name = "TableLayoutPanel4" + Me.TableLayoutPanel4.RowCount = 2 + Me.TableLayoutPanel4.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.TableLayoutPanel4.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26.0!)) + Me.TableLayoutPanel4.Size = New System.Drawing.Size(904, 475) + Me.TableLayoutPanel4.TabIndex = 2 + ' + 'cEditView + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.BackColor = System.Drawing.Color.FromArgb(CType(CType(191, Byte), Integer), CType(CType(219, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.Controls.Add(Me.TableLayoutPanel4) + Me.Name = "cEditView" + Me.Size = New System.Drawing.Size(904, 475) + Me.TableLayoutPanel3.ResumeLayout(False) + Me.TableLayoutPanel1.ResumeLayout(False) + Me.TableLayoutPanel1.PerformLayout() + Me.panel1.ResumeLayout(False) + CType(Me.dgvDataValues, System.ComponentModel.ISupportInitialize).EndInit() + Me.Panel2.ResumeLayout(False) + Me.TableLayoutPanel2.ResumeLayout(False) + Me.pnlFilter.ResumeLayout(False) + Me.gboxDataFilter.ResumeLayout(False) + Me.gboxDataFilter.PerformLayout() + Me.Panel4.ResumeLayout(False) + Me.gboxDate.ResumeLayout(False) + Me.gboxDate.PerformLayout() + Me.gboxDataGap.ResumeLayout(False) + Me.gboxDataGap.PerformLayout() + Me.gboxValueThreshold.ResumeLayout(False) + Me.gboxValueThreshold.PerformLayout() + Me.TableLayoutPanel5.ResumeLayout(False) + Me.TableLayoutPanel5.PerformLayout() + Me.TableLayoutPanel4.ResumeLayout(False) + Me.ResumeLayout(False) + + End Sub + Friend WithEvents TableLayoutPanel3 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents pTimeSeriesPlot As cTimeSeriesPlot + Friend WithEvents panel1 As System.Windows.Forms.Panel + Friend WithEvents dgvDataValues As System.Windows.Forms.DataGridView + Friend WithEvents Panel2 As System.Windows.Forms.Panel + Friend WithEvents TableLayoutPanel2 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents pnlFilter As System.Windows.Forms.Panel + Friend WithEvents gboxDataFilter As System.Windows.Forms.GroupBox + Friend WithEvents Panel4 As System.Windows.Forms.Panel + Friend WithEvents btnClearFilter As System.Windows.Forms.Button + Friend WithEvents btnApplyFilter As System.Windows.Forms.Button + Friend WithEvents txtEditDFVTChange As System.Windows.Forms.TextBox + Friend WithEvents rbtnEditDFVTChange As System.Windows.Forms.RadioButton + Friend WithEvents rbtnDate As System.Windows.Forms.RadioButton + Friend WithEvents rbtnValueThreshold As System.Windows.Forms.RadioButton + Friend WithEvents rbtnDataGap As System.Windows.Forms.RadioButton + Friend WithEvents gboxDate As System.Windows.Forms.GroupBox + Friend WithEvents lblAfter As System.Windows.Forms.Label + Friend WithEvents lblDateBefore As System.Windows.Forms.Label + Friend WithEvents dtpAfter As System.Windows.Forms.DateTimePicker + Friend WithEvents dtpBefore As System.Windows.Forms.DateTimePicker + Friend WithEvents gboxDataGap As System.Windows.Forms.GroupBox + Friend WithEvents ddlTimePeriod As System.Windows.Forms.ComboBox + Friend WithEvents lblDataGapTime As System.Windows.Forms.Label + Friend WithEvents txtDataGapValue As System.Windows.Forms.TextBox + Friend WithEvents lblDataGapValue As System.Windows.Forms.Label + Friend WithEvents gboxValueThreshold As System.Windows.Forms.GroupBox + Friend WithEvents txtValueLess As System.Windows.Forms.TextBox + Friend WithEvents txtValueLarger As System.Windows.Forms.TextBox + Friend WithEvents lblValueLess As System.Windows.Forms.Label + Friend WithEvents lblValueLarger As System.Windows.Forms.Label + Friend WithEvents TableLayoutPanel5 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents pbProgressBar As System.Windows.Forms.ProgressBar + Friend WithEvents lblstatus As System.Windows.Forms.Label + Friend WithEvents TableLayoutPanel4 As System.Windows.Forms.TableLayoutPanel + +End Class +'End Namespace diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/cEditViewOriginal.resx b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/cEditViewOriginal.resx new file mode 100644 index 00000000..c7e0d4bd --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/cEditViewOriginal.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/cEditViewOriginal.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/cEditViewOriginal.vb new file mode 100644 index 00000000..0ded3a39 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Controls/cEditViewOriginal.vb @@ -0,0 +1,1471 @@ +Imports System.Collections.Generic +Imports System.ComponentModel +Imports System.Drawing +Imports System.Data +Imports System.Linq +Imports System.Text +Imports System.Windows.Forms +Imports HydroDesktop.Database +Imports System.Collections +Imports System.Data.Common +Imports System.Threading +Imports System.Globalization +Imports QualifierHandling +Imports ZedGraph +Imports HydroDesktop.Interfaces + + +'Namespace EditView +Public Class cEditView + 'Inherits UserControl + +#Region "privateDeclaration" + 'Private sriesList As New ArrayList() + 'private int rbSequenceTime = new Int32(); + + Private connString = HydroDesktop.Configuration.Settings.Instance.DataRepositoryConnectionString + Private dbTools As New DbOperations(connString, DatabaseTypes.SQLite) + Private CurveEditingColor As Drawing.Color = Color.Black + + 'private SeriesSelector control for checking / unchecking the series + Public _seriesSelector As ISeriesSelector + + Public Originaldt As Data.DataTable + Public Editdt As DataTable + Public newseriesID As Integer = 0 + Public Editing As Boolean = False + Public selectedSeriesIdList As New ArrayList() + Private ccList0 As New ArrayList() + Public nodataseriescount As Integer = 0 + Public colorcount As Integer = 0 + Public ShowLegend As Boolean + Public Canceled As Boolean = False + + Private Const ErrMsgForNotEditing As String = "Please select a series to edit first." + Private Const ErrMsgForNotPointSelected As String = "Please select a point for editing." +#End Region + +#Region "Constructor" + + Public Sub RefreshSelection() + pTimeSeriesPlot.Clear() + 'SeriesSelector.RefreshSelection() + End Sub + + Private Sub SettingColor() + ccList0.Clear() + ccList0.Add(System.Drawing.Color.FromArgb(106, 61, 154)) + ccList0.Add(System.Drawing.Color.FromArgb(202, 178, 214)) + ccList0.Add(System.Drawing.Color.FromArgb(255, 127, 0)) + ccList0.Add(System.Drawing.Color.FromArgb(253, 191, 111)) + ccList0.Add(System.Drawing.Color.FromArgb(227, 26, 28)) + ccList0.Add(System.Drawing.Color.FromArgb(251, 154, 153)) + ccList0.Add(System.Drawing.Color.FromArgb(51, 160, 44)) + ccList0.Add(System.Drawing.Color.FromArgb(178, 223, 138)) + ccList0.Add(System.Drawing.Color.FromArgb(31, 120, 180)) + ccList0.Add(System.Drawing.Color.FromArgb(166, 206, 227)) + End Sub + + Public Sub New(ByVal seriesSelector As ISeriesSelector) + 'InitializeComponent() + + ' This call is required by the Windows Form Designer. + InitializeComponent() + + 'set the 'seriesMenu' private variable + _seriesSelector = seriesSelector + + 'assign the events + AddHandler _seriesSelector.SeriesCheck, AddressOf SeriesSelector_SeriesCheck + 'AddHandler _args.SeriesView.SeriesSelector.SeriesSelected, AddressOf SeriesSelector_SeriesSelected + + 'SeriesSelector.MultipleCheck = True + gboxDataFilter.Enabled = False + ddlTimePeriod.SelectedItem = ddlTimePeriod.Items(0) + lblstatus.Text = "Ready" + SettingColor() + pTimeSeriesPlot.Clear() + + 'Add Event + 'SeriesSelector.MultipleCheck = false; + + End Sub + + Public Sub initialize() + gboxDataFilter.Enabled = False + 'SeriesSelector.MultipleCheck = True + ddlTimePeriod.SelectedItem = ddlTimePeriod.Items(0) + lblstatus.Text = "Ready" + End Sub + +#End Region + +#Region "Views" + +#Region "Method" + 'To refresh the themes shown in the series selector + Public Sub RefreshView() + _seriesSelector.RefreshSelection() + End Sub + + Private Sub ShowAllFieldsinSequence() + Dim connString = HydroDesktop.Configuration.Settings.Instance.DataRepositoryConnectionString + Dim dbTools As New DbOperations(connString, DatabaseTypes.SQLite) + Originaldt = New DataTable + Dim dt As New DataTable + Dim SQLString As New StringBuilder + + SQLString.Append("SELECT ValueID, SeriesID, DataValue, ValueAccuracy, LocalDateTime, UTCOffset, ") + SQLString.Append("DateTimeUTC, QualifierCode, OffsetValue, OffsetTypeID, CensorCode, SampleID, ") + SQLString.Append("FileID FROM DataValues AS d LEFT JOIN Qualifiers AS q ON (d.QualifierID = q.QualifierID) ") + SQLString.Append("WHERE SeriesID = ") + For Each seriesID As Integer In selectedSeriesIdList + SQLString.Append(seriesID) + SQLString.Append(",") + Next + SQLString.Remove(SQLString.Length - 1, 1) + SQLString.Append(")") + + + dt = dbTools.LoadTable("DataValues", SQLString.ToString) + dt.Columns.Add("Other") + For i As Integer = 0 To dt.Rows.Count - 1 + dt.Rows(i)("Other") = 0 + + Next + dgvDataValues.DataSource = dt + ResetGridViewStyle() + End Sub + + Public Sub PlotGraph(ByVal SeriesID As Integer) + Dim options As PlotOptions = New PlotOptions(PlotOptions.TimeSeriesType.Line, ccList0(colorcount Mod 10), CurveEditingColor, False, True) + Dim connString = HydroDesktop.Configuration.Settings.Instance.DataRepositoryConnectionString + Dim dbTools As New DbOperations(connString, DatabaseTypes.SQLite) + Dim nodatavalue As Double + Dim data As DataTable = New DataTable() + Dim variableName As String = "" + Dim unitsName As String = "" + Dim siteName As String = "" + + nodatavalue = dbTools.ExecuteSingleOutput("SELECT NoDataValue FROM DataSeries LEFT JOIN Variables ON DataSeries.VariableID = Variables.VariableID WHERE (SeriesID = '" & SeriesID & "')") + 'data = dbTools.LoadTable("DataValues", "SELECT ValueID, DataValue, LocalDateTime, CensorCode FROM DataValues WHERE (SeriesID = '" & SeriesID & "') AND (DataValue <> '" & nodatavalue & "') ORDER BY LocalDateTime") + 'data = dbTools.LoadTable("DataValues", "SELECT * FROM DataValues WHERE (SeriesID = '" & SeriesID & "') AND (DataValue <> '" & nodatavalue & "') ORDER BY LocalDateTime") + data = dbTools.LoadTable("DataValues", "SELECT * FROM DataValues WHERE (SeriesID = '" & SeriesID & "') ORDER BY LocalDateTime") + variableName = dbTools.ExecuteSingleOutput("SELECT VariableName FROM DataSeries LEFT JOIN Variables ON Variables.VariableID = DataSeries.VariableID WHERE SeriesID = '" & SeriesID & "'") + unitsName = dbTools.ExecuteSingleOutput("SELECT UnitsName FROM DataSeries LEFT JOIN Variables ON Variables.VariableID = DataSeries.VariableID LEFT JOIN Units ON Variables.VariableUnitsID = Units.UnitsID WHERE SeriesID = '" & SeriesID & "'") + siteName = dbTools.ExecuteSingleOutput("SELECT SiteName FROM DataSeries LEFT JOIN Sites ON Sites.SiteID = DataSeries.SiteID WHERE SeriesID = '" & SeriesID & "'") + + If data.Rows.Count = 1 Then + options.TimeSeriesMethod = PlotOptions.TimeSeriesType.Point + End If + + If data.Rows.Count <= 0 Then + MsgBox("The Selected Series has no curve") + Else + pTimeSeriesPlot.Plot(data, siteName, variableName, unitsName, options, SeriesID) + End If + + pTimeSeriesPlot.Refreshing() + + data.Dispose() + + ckbShowLegend_CheckedChanged() + + colorcount += 1 + End Sub + + Private Sub RemoveSeriesFromDataGridView(ByVal SeriesID As Integer) + Dim removedRows As Integer = 0 + pbProgressBar.Minimum = 0 + pbProgressBar.Maximum = dgvDataValues.Rows.Count - 1 + pbProgressBar.Visible = True + pbProgressBar.Value = 0 + lblstatus.Text = "Removing Series" + + For i As Integer = 0 To dgvDataValues.Rows.Count - 1 + If dgvDataValues.Rows(i - removedRows).Cells("SeriesID").Value = SeriesID Then + dgvDataValues.Rows.Remove(dgvDataValues.Rows(i - removedRows)) + removedRows += 1 + End If + pbProgressBar.Value = i + Next + + lblstatus.Text = "Ready" + End Sub + + Public Sub AddSeriesToDataGridView(ByVal SeriesID As Integer) + Dim connString = HydroDesktop.Configuration.Settings.Instance.DataRepositoryConnectionString + Dim dbTools As New DbOperations(connString, DatabaseTypes.SQLite) + Originaldt = New DataTable + Dim dt As New DataTable + Dim dtdgvDataSource As DataTable + Dim SQLString As New StringBuilder + + SQLString.Append("SELECT ValueID, SeriesID, DataValue, ValueAccuracy, LocalDateTime, UTCOffset, ") + SQLString.Append("DateTimeUTC, QualifierCode, OffsetValue, OffsetTypeID, CensorCode, SampleID, ") + SQLString.Append("FileID FROM DataValues AS d LEFT JOIN Qualifiers AS q ON (d.QualifierID = q.QualifierID) ") + SQLString.Append("WHERE SeriesID = " + SeriesID.ToString) + + + + dt = dbTools.LoadTable("DataValues", SQLString.ToString) + + + dt.Columns.Add("Other") + If dgvDataValues.Rows.Count = 0 Then + For i As Integer = 0 To dt.Rows.Count - 1 + dt.Rows(i)("Other") = 0 + Next + dgvDataValues.DataSource = dt + dgvDataValues.AllowUserToAddRows = False + Else + dtdgvDataSource = dgvDataValues.DataSource + For i As Integer = 0 To dt.Rows.Count - 1 + dt.Rows(i)("Other") = 0 + Next + dtdgvDataSource.Merge(dt) + End If + + Originaldt = dt.Copy + + ResetGridViewStyle() + End Sub + +#End Region + +#Region "Event" + + Private Sub cEditView_Load(ByVal sender As Object, ByVal e As EventArgs) + 'populate the series selector control + 'seriesSelector1.PopulateTreeView2(); + dgvDataValues.ColumnHeadersVisible = True + 'dataViewSeries.Columns.ToString + ' Set the column header style. + 'DataGridViewCellStyle columnHeaderStyle =new DataGridViewCellStyle(); + 'dataViewSeries.ColumnHeadersDefaultCellStyle.BackColor = Color.Aqua; + 'dataViewSeries.ColumnHeadersDefaultCellStyle.Font = new Font("Verdana", 10, FontStyle.Regular); + 'dataViewSeries.ColumnHeadersDefaultCellStyle =columnHeaderStyle; + dgvDataValues.ColumnHeadersBorderStyle = ProperColumnHeadersBorderStyle + 'rbSequenceTime = 0; + End Sub + + Private Shared ReadOnly Property ProperColumnHeadersBorderStyle() As DataGridViewHeaderBorderStyle + Get + Return If((SystemFonts.MessageBoxFont.Name = "Segoe UI"), DataGridViewHeaderBorderStyle.None, DataGridViewHeaderBorderStyle.Raised) + End Get + End Property + + Private Sub SeriesSelector_SeriesCheck() + 'Declaring all variables + Dim connString = HydroDesktop.Configuration.Settings.Instance.DataRepositoryConnectionString + Dim dbTools As New DbOperations(connString, DatabaseTypes.SQLite) + Dim data As DataTable = New DataTable() + Dim variableName As String = "" + Dim unitsName As String = "" + Dim siteName As String = "" + Dim count As Integer = 0 + Dim curveIndex As Integer + Dim SeriesSelector = _seriesSelector + + + + If Not SeriesSelector.CheckedIDList.Length > selectedSeriesIdList.Count Then + + If pTimeSeriesPlot.HasEditingCurve Then + pTimeSeriesPlot.EditCurvePointList = pTimeSeriesPlot.CopyCurvePointList(pTimeSeriesPlot.EditingCurve) + pTimeSeriesPlot.EditCurveLable = pTimeSeriesPlot.EditingCurve.Label.Text + pTimeSeriesPlot.EditCurveTitle = pTimeSeriesPlot.EditingCurve.Link.Title + End If + curveIndex = selectedSeriesIdList.IndexOf(SeriesSelector.SelectedSeriesID) + selectedSeriesIdList.Remove(SeriesSelector.SelectedSeriesID) + If SeriesRowsCount(SeriesSelector.SelectedSeriesID) = 0 Then + nodataseriescount -= 1 + End If + If (selectedSeriesIdList.Count = 0) Then + pTimeSeriesPlot.Clear() + ElseIf (selectedSeriesIdList.Count = 1) Then + Try + pTimeSeriesPlot.Remove(curveIndex - nodataseriescount) + curveIndex = pTimeSeriesPlot.CurveID(0) + pTimeSeriesPlot.Remove(0) + If SeriesRowsCount(SeriesSelector.SelectedSeriesID) = 0 Then + nodataseriescount += 1 + ElseIf Not curveIndex = newseriesID Then + PlotGraph(curveIndex) + Else : curveIndex = newseriesID + Dim curve As LineItem = pTimeSeriesPlot.zgTimeSeries.GraphPane.AddCurve(pTimeSeriesPlot.EditCurveLable, pTimeSeriesPlot.EditCurvePointList, Color.Black, SymbolType.Circle) + pTimeSeriesPlot.SettingCurveStyle(curve) + curve.Link.Title = pTimeSeriesPlot.EditCurveTitle + pTimeSeriesPlot.SettingTitle() + pTimeSeriesPlot.AddYAxis(curve) + pTimeSeriesPlot.zgTimeSeries.GraphPane.XAxis.IsVisible = True + pTimeSeriesPlot.zgTimeSeries.GraphPane.XAxis.Title.Text = "Date and Time" + End If + Catch + nodataseriescount -= 1 + End Try + Else + Try + pTimeSeriesPlot.Remove(curveIndex - nodataseriescount) + Catch + nodataseriescount -= 1 + End Try + + End If + + Else + If Not selectedSeriesIdList.Contains(SeriesSelector.SelectedSeriesID) Then + selectedSeriesIdList.Add(SeriesSelector.SelectedSeriesID) + Else + Return 'added by jiri to correct error when SeriesCheck event occurs multiple times + End If + + curveIndex = selectedSeriesIdList.IndexOf(SeriesSelector.SelectedSeriesID) + + If SeriesRowsCount(SeriesSelector.SelectedSeriesID) = 0 Then + nodataseriescount += 1 + ElseIf Not SeriesSelector.SelectedSeriesID = newseriesID Then + PlotGraph(SeriesSelector.SelectedSeriesID) + Else : SeriesSelector.SelectedSeriesID = newseriesID + Dim curve As LineItem = pTimeSeriesPlot.zgTimeSeries.GraphPane.AddCurve(pTimeSeriesPlot.EditCurveLable, pTimeSeriesPlot.EditCurvePointList, Color.Black, SymbolType.Circle) + pTimeSeriesPlot.SettingCurveStyle(curve) + curve.Link.Title = pTimeSeriesPlot.EditCurveTitle + pTimeSeriesPlot.SettingTitle() + pTimeSeriesPlot.AddYAxis(curve) + pTimeSeriesPlot.zgTimeSeries.GraphPane.XAxis.IsVisible = True + pTimeSeriesPlot.zgTimeSeries.GraphPane.XAxis.Title.Text = "Date and Time" + End If + + End If + + pTimeSeriesPlot.Refreshing() + End Sub + + Public Sub btnSelectSeries_Click() + Dim SQLString As StringBuilder = New StringBuilder + Dim SeriesSelector = _seriesSelector + + + If Not SeriesSelector.SelectedSeriesID = 0 Then + + dgvDataValues.DataSource = Nothing + + initialize() + + newseriesID = SeriesSelector.SelectedSeriesID + + Editdt = Nothing + + SQLString.Append("SELECT ValueID, SeriesID, DataValue, ValueAccuracy, LocalDateTime, UTCOffset, ") + SQLString.Append("DateTimeUTC, QualifierCode, OffsetValue, OffsetTypeID, CensorCode, SampleID, ") + SQLString.Append("FileID FROM DataValues AS d LEFT JOIN Qualifiers AS q ON (d.QualifierID = q.QualifierID) ") + SQLString.Append("WHERE SeriesID = " + newseriesID.ToString) + + Editdt = dbTools.LoadTable(SQLString.ToString) + Editdt.Columns.Add("Other") + Editdt.Columns.Add("Selected") + For i As Integer = 0 To Editdt.Rows.Count - 1 + Editdt.Rows(i)("Other") = 0 + Editdt.Rows(i)("Selected") = 0 + Next + + Originaldt = Editdt.Copy + + dgvDataValues.DataSource = Editdt + + 'get the begin and end datetime of the series + Dim BeginDateTime As Date = dbTools.ExecuteSingleOutput("SELECT BeginDateTime FROM DataSeries WHERE (SeriesID = '" & newseriesID.ToString & "')") + Dim EndDateTime As Date = dbTools.ExecuteSingleOutput("SELECT EndDateTime FROM DataSeries WHERE (SeriesID = '" & newseriesID.ToString & "')") + 'setting the datetime constrint to larger range + dtpBefore.MinDate = Today.AddYears(-150) + dtpBefore.MaxDate = Today.AddDays(1) + dtpAfter.MinDate = Today.AddYears(-150) + dtpAfter.MaxDate = Today + 'setting the default datetime values + dtpBefore.Value = EndDateTime + dtpAfter.Value = BeginDateTime + 'setting the datetime constrint by the begin and end datetime + dtpBefore.MinDate = BeginDateTime + dtpAfter.MinDate = BeginDateTime + dtpBefore.MaxDate = EndDateTime + dtpAfter.MaxDate = EndDateTime + + + If dbTools.ExecuteSingleOutput("SELECT QualityControlLevelCode FROM DataSeries AS d LEFT JOIN QualityControlLevels AS q ON (d.QualityControlLevelID = q.QualityControlLevelID) WHERE SeriesID = " + newseriesID.ToString).ToString = "Raw Data" Then + gboxDataFilter.Enabled = False + Else + gboxDataFilter.Enabled = True + rbtnValueThreshold.Select() + End If + ResetGridViewStyle() + + Try + Dim curveIndex As Integer = selectedSeriesIdList.IndexOf(SeriesSelector.SelectedSeriesID) + + If SeriesSelector.CheckedIDList.Contains(SeriesSelector.SelectedSeriesID) Then + pTimeSeriesPlot.EnterEditMode(curveIndex - nodataseriescount) + pTimeSeriesPlot.RemoveSelectedPoints() + Else + PlotGraph(SeriesSelector.SelectedSeriesID) + pTimeSeriesPlot.EnterEditMode(pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList.Count - 1) + pTimeSeriesPlot.Remove(pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList.Count - 1) + pTimeSeriesPlot.Refreshing() + End If + + Catch + MsgBox("The Selected Series has no curve") + End Try + + If SeriesRowsCount(newseriesID) < 1 Then + gboxDataFilter.Enabled = False + Else + gboxDataFilter.Enabled = True + End If + + Editing = True + Else + MsgBox("Please select a series for editing.") + End If + End Sub + + 'Private Sub SeriesSelector_CriterionChanged(ByVal sender As Object, ByVal e As EventArgs) Handles SeriesSelector.CriterionChanged + ' 'dgvDataValues.DataSource = Nothing + ' 'dgvDataValues.Columns.Clear() + ' 'SeriesSelector.CheckedIDList.Clear() + ' 'selectedSeriesIdList.Clear() + 'End Sub + + Public Sub ckbShowLegend_CheckedChanged() + If ShowLegend Then + pTimeSeriesPlot.zgTimeSeries.GraphPane.Legend.IsVisible = True + Else + pTimeSeriesPlot.zgTimeSeries.GraphPane.Legend.IsVisible = False + End If + If pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList.Count <= 1 Then + pTimeSeriesPlot.zgTimeSeries.GraphPane.Legend.IsVisible = False + End If + pTimeSeriesPlot.Refreshing() + End Sub + + Private Sub EditingReminder(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles Me.Validating + If Editing And Not Canceled Then + Dim result As Integer + + result = MsgBox("You are editing a series. Do you want to save before leaving?", MsgBoxStyle.YesNo, "Save?") + If result = 7 Then + + Else + SaveGraphChangesToDatabase() + End If + End If + End Sub + +#End Region + +#End Region + +#Region "Editing" + + 'Reset style of data grid view + Public Sub ResetGridViewStyle() Handles dgvDataValues.Sorted + 'dgvDataValues.ReadOnly = True + For i As Integer = 0 To dgvDataValues.Columns.Count - 1 + dgvDataValues.Columns(i).ReadOnly = True + Next + 'dgvDataValues.Columns("DataValue").ReadOnly = False + 'dgvDataValues.Columns("Other").Visible = False + 'dgvDataValues.Columns("Selected").Visible = False + dgvDataValues.ClearSelection() + For i As Integer = 0 To dgvDataValues.Rows.Count - 1 + If dgvDataValues.Rows(i).Cells("Other").Value = -1 Then + dgvDataValues.Rows(i).DefaultCellStyle.BackColor = Color.Red + Else + dgvDataValues.Rows(i).DefaultCellStyle.BackColor = Nothing + End If + + If dgvDataValues.Rows(i).Cells("Selected").Value = 1 Then + dgvDataValues.Rows(i).Selected = True + Else + dgvDataValues.Rows(i).Selected = False + End If + Next + End Sub + + 'Derive New Series + Public Sub btnDeriveNewDataSeries_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) + Dim SeriesSelector = _seriesSelector + 'check if the user selected any series, then open the Derive New Series form + If Not SeriesSelector.SelectedSeriesID = 0 Then + Dim frmDeriveNewDataSeries As fDeriveNewDataSeries + frmDeriveNewDataSeries = New fDeriveNewDataSeries() + frmDeriveNewDataSeries._cEditView = Me + frmDeriveNewDataSeries._SelectedSeriesID = SeriesSelector.SelectedSeriesID + frmDeriveNewDataSeries.SetDefault() + frmDeriveNewDataSeries.ShowDialog() + Else + MsgBox("Please select a series to derive.") + End If + End Sub + + 'Selection of point + Private Sub dataViewSeries_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dgvDataValues.MouseClick, dgvDataValues.KeyDown, dgvDataValues.KeyUp, dgvDataValues.MouseDoubleClick ', dgvDataValues.SelectionChanged + Dim IDlist As New ArrayList + + 'Clear all selected points (Z value) + pTimeSeriesPlot.RemoveSelectedPoints() + + 'Select points (Add Z value) + For i As Integer = 0 To dgvDataValues.SelectedRows.Count - 1 + IDlist.Add(CType(dgvDataValues.SelectedRows(i).Cells("ValueID").Value, Integer)) + Next + + pTimeSeriesPlot.SelectingPoints(IDlist) + + pTimeSeriesPlot.Refreshing() + + + For i As Integer = 0 To Editdt.Rows.Count - 1 + If IDlist.Contains(CType(Editdt.Rows(i)("ValueID"), Integer)) Then + Editdt.Rows(i)("Selected") = 1 + Else + Editdt.Rows(i)("Selected") = 0 + End If + Next + + End Sub + + 'Apply Changes to Database + Public Sub btnApplyToDatabase_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) + + If MsgBox("Are You Sure You Want to Apply the Changes to the Database", MsgBoxStyle.YesNo Or vbDefaultButton2, "Question") = MsgBoxResult.Yes Then + SaveGraphChangesToDatabase() + MsgBox("Save finished!") + If SeriesRowsCount(newseriesID) < 1 Then + gboxDataFilter.Enabled = False + Else + gboxDataFilter.Enabled = True + End If + End If + + End Sub + + 'Restore Data + Public Sub btnRestoreData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) + 'Dim dt As New DataTable + + ''Setting the Data Grid View back to original data + 'dt = Originaldt.Copy + ''pTimeSeriesPlot.RestoreOriginalData() + 'dgvDataValues.DataSource = dt + 'ResetGridViewStyle() + 'SaveGraphChangesToDatabase() + + ''Setting the Graph + 'selectedSeriesIdList.Remove(newseriesID) + 'selectedSeriesIdList.Add(newseriesID) + 'With pTimeSeriesPlot.zgTimeSeries.GraphPane + ' For j As Integer = 0 To .CurveList.Count - 1 + ' If .CurveList(j).Color = CurveEditingColor Then + ' .CurveList.Remove(.CurveList(j)) + ' End If + ' Next + 'End With + 'PlotGraph(newseriesID) + 'Dim curveIndex As Integer = selectedSeriesIdList.IndexOf(newseriesID) + 'pTimeSeriesPlot.EnterEditMode(curveIndex - nodataseriescount) + + 'initialize() + If MsgBox("Are You Sure You Want to Restore the Data to the Original?", MsgBoxStyle.YesNo Or vbDefaultButton2, "Question") = MsgBoxResult.Yes Then + + Editdt = Originaldt.Copy + RefreshDataGridView() + pTimeSeriesPlot.ReplotEditingCurve(Editdt) + + If SeriesRowsCount(newseriesID) < 1 Then + gboxDataFilter.Enabled = False + Else + gboxDataFilter.Enabled = True + End If + + MsgBox("Restore Complete!") + End If + + End Sub + + 'Clear Filter + Private Sub btnClearFilter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClearFilter.Click + 'Make all text boxes blank + ddlTimePeriod.SelectedItem = ddlTimePeriod.Items(0) + txtDataGapValue.Text = "" + txtEditDFVTChange.Text = "" + txtValueLarger.Text = "" + txtValueLess.Text = "" + rbtnValueThreshold.Select() + dgvDataValues.ClearSelection() + pTimeSeriesPlot.RemoveSelectedPoints() + End Sub + + 'radio buttons change events + Private Sub gboxradiobuttons_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) + 'Enable different group box when different radio button is checked + + If rbtnValueThreshold.Checked Then + gboxValueThreshold.Enabled = True + gboxDataGap.Enabled = False + gboxDate.Enabled = False + txtEditDFVTChange.Enabled = False + End If + + If rbtnDataGap.Checked Then + gboxValueThreshold.Enabled = False + gboxDataGap.Enabled = True + gboxDate.Enabled = False + txtEditDFVTChange.Enabled = False + End If + + If rbtnDate.Checked Then + gboxValueThreshold.Enabled = False + gboxDataGap.Enabled = False + gboxDate.Enabled = True + txtEditDFVTChange.Enabled = False + End If + + If rbtnEditDFVTChange.Checked Then + gboxValueThreshold.Enabled = False + gboxDataGap.Enabled = False + gboxDate.Enabled = False + txtEditDFVTChange.Enabled = True + End If + + End Sub + + 'Filter + Private Sub btnApplyFilter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnApplyFilter.Click + 'check which method the user wanted to choose the range of data + 'Value Threshold Filter + If rbtnValueThreshold.Checked Then + + 'Validation + If Not IsNumeric(txtValueLarger.Text) And (Not txtValueLarger.Text = Nothing) Then + MsgBox("Please enter numbers") + Exit Sub + End If + If Not IsNumeric(txtValueLess.Text) And Not (txtValueLess.Text = Nothing) Then + MsgBox("Please enter numbers") + Exit Sub + End If + + 'Filter + If Not (txtValueLarger.Text = Nothing) And Not (txtValueLess.Text = Nothing) Then + If pTimeSeriesPlot.HasEditingCurve() Then + pTimeSeriesPlot.ChangeZvalueWithValueThreshold(Val(txtValueLarger.Text), Val(txtValueLess.Text)) + Else + ValueThresholdFilter(Val(txtValueLarger.Text), Val(txtValueLess.Text)) + End If + ElseIf txtValueLarger.Text = Nothing And Not (txtValueLess.Text = Nothing) Then + Dim largest As Decimal = Convert.ToDecimal(dbTools.ExecuteSingleOutput("SELECT MAX(DataValue) FROM DataValues WHERE SeriesID = " + newseriesID.ToString)) + If pTimeSeriesPlot.HasEditingCurve() Then + pTimeSeriesPlot.ChangeZvalueWithValueThreshold(largest, Val(txtValueLess.Text)) + Else + ValueThresholdFilter(largest, Val(txtValueLess.Text)) + End If + ElseIf txtValueLess.Text = Nothing And Not (txtValueLarger.Text = Nothing) Then + Dim smallest As Decimal = Convert.ToDecimal(dbTools.ExecuteSingleOutput("SELECT MIN(DataValue) FROM DataValues WHERE SeriesID = " + newseriesID.ToString)) + If pTimeSeriesPlot.HasEditingCurve() Then + pTimeSeriesPlot.ChangeZvalueWithValueThreshold(Val(txtValueLarger.Text), smallest) + Else + ValueThresholdFilter(Val(txtValueLarger.Text), smallest) + End If + End If + End If + + 'Value Change Threshold Filter + If rbtnEditDFVTChange.Checked Then + 'Validation + If Not IsNumeric(txtEditDFVTChange.Text) And Not (txtEditDFVTChange.Text) = Nothing Then + MsgBox("Please enter numbers") + Exit Sub + End If + + 'Filter + If pTimeSeriesPlot.HasEditingCurve() Then + pTimeSeriesPlot.ChangeZvalueWithValueChangeThreshold(Val(txtEditDFVTChange.Text)) + Else + ValueChangeThreshold(Val(txtEditDFVTChange.Text)) + End If + End If + + 'Date Filter + If rbtnDate.Checked Then + If pTimeSeriesPlot.HasEditingCurve() Then + pTimeSeriesPlot.ChangeZvalueWithDate(dtpBefore.Value, dtpAfter.Value) + Else + DateFilter(dtpBefore.Value, dtpAfter.Value) + End If + End If + + 'Data Gap Filter + If rbtnDataGap.Checked Then + 'Validation + If Not IsNumeric(txtDataGapValue.Text) And Not (txtDataGapValue.Text) = Nothing Then + MsgBox("Please enter numbers") + Exit Sub + End If + + 'Filter + Dim datagap As Double + Select Case ddlTimePeriod.SelectedIndex + Case 0 + datagap = Val(txtDataGapValue.Text) + Case 1 + datagap = Val(txtDataGapValue.Text) * 60 + Case 2 + datagap = Val(txtDataGapValue.Text) * 60 * 60 + Case 3 + datagap = Val(txtDataGapValue.Text) * 60 * 60 * 24 + Case Else + datagap = Val(txtDataGapValue.Text) + End Select + + If pTimeSeriesPlot.HasEditingCurve() Then + pTimeSeriesPlot.ChangeZvalueWithDataGap(datagap) + Else + DataGapFilter(datagap) + End If + + End If + + If pTimeSeriesPlot.HasEditingCurve() Then + ReflectZvalue() + End If + + End Sub + + 'Change Y value by add, minus or setting it directing + Public Sub btnChangeYValue_Click() + If Editing Then + If dgvDataValues.SelectedRows.Count >= 1 Then + Dim frmChangeYValue As fChangeYValue + frmChangeYValue = New fChangeYValue() + frmChangeYValue._cEditView = Me + frmChangeYValue.Show() + Else + MsgBox(ErrMsgForNotPointSelected) + End If + Else + MsgBox(ErrMsgForNotEditing) + End If + End Sub + + 'Change Y value by Interpolating + Public Sub btnInterpolate_Click() + If Editing Then + If dgvDataValues.SelectedRows.Count >= 1 Then + Dim returned As Boolean = False + If pTimeSeriesPlot.HasEditingCurve Then + 'pTimeSeriesPlot.ChangeValueByInterpolating(returned) + ChangeValueByInterpolating(returned) + pTimeSeriesPlot.ReplotEditingCurve(Editdt) + Else + ChangeValueByInterpolating(returned) + End If + + 'If Not returned Then + + ' If pTimeSeriesPlot.HasEditingCurve Then + ' ReflectChanges() + ' End If + 'End If + + RefreshDataGridView() + Else + MsgBox(ErrMsgForNotPointSelected) + End If + Else + MsgBox(ErrMsgForNotEditing) + End If + End Sub + + + 'Public Sub btnAddNewPoint_Click() + ' If Editing Then + ' Dim frmAddNewPoint As fAddNewPoint = New fAddNewPoint() + + ' frmAddNewPoint._cEditView = Me + ' frmAddNewPoint.ShowDialog() + ' Else + ' MsgBox(ErrMsgForNotEditing) + ' End If + 'End Sub + + + Public Sub btnFlag_Click() + If Editing Then + If dgvDataValues.SelectedRows.Count >= 1 Then + Dim QualifiersTableManagement AS New fQualifiersTableManagement() + 'QualifiersTableManagement.initialize() + + 'QualifiersTableManagement.Show() + QualifiersTableManagement.Visible = False + QualifiersTableManagement._cEditView = Me + Dim answer As DialogResult = QualifiersTableManagement.ShowDialog() + 'If answer = System.Windows.Forms.DialogResult.OK Then + ' Console.WriteLine("having issues") + 'End If + + QualifiersTableManagement.ShowDialog() + QualifiersTableManagement = Nothing + Else + MsgBox(ErrMsgForNotPointSelected) + End If + Else + MsgBox(ErrMsgForNotEditing) + End If + End Sub + + + + + 'Associate changes to table from graph + 'Public Sub ReflectChanges() + ' Dim j As Integer + ' Dim eCurve As CurveItem = pTimeSeriesPlot.EditingCurve + + ' For i As Integer = 0 To eCurve.Points.Count - 1 + + ' j = 0 + ' Do Until dgvDataValues.Rows(j).Cells("ValueID").Value = Val(pTimeSeriesPlot.PointValueID(i)) + ' j += 1 + ' Loop + ' dgvDataValues.Rows(j).Cells("DataValue").Value = Val(eCurve.Points(i).Y) + + ' Next + 'End Sub + + 'Associate changes to graph from table when "DataValue" changed + 'Private Sub dgvDataValues_CellValueChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvDataValues.CellValueChanged + ' If e.ColumnIndex = 2 Then + ' If pTimeSeriesPlot.HasEditingCurve Then + ' Dim j As Integer = 0 + ' Dim eCurve As CurveItem = pTimeSeriesPlot.EditingCurve + ' For i As Integer = 0 To pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList.Count - 1 + ' If pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList(i).Color = CurveEditingColor Then + ' eCurve = pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList(i) + ' End If + ' Next + ' 'if not adding a new point + ' If Not dgvDataValues.AllowUserToAddRows = True Then + + ' 'If data value is changing + ' If e.ColumnIndex = dgvDataValues.Columns("DataValue").Index Then + ' Do Until pTimeSeriesPlot.PointValueID(j) = dgvDataValues.Rows(e.RowIndex).Cells("ValueID").Value + ' j += 1 + ' Loop + ' eCurve.Points(j).Y = dgvDataValues.Rows(e.RowIndex).Cells("DataValue").Value + ' End If + ' End If + + ' 'Allow user to save the changes + ' btnApplyToDatabase.Enabled = True + ' btnRestoreData.Enabled = True + + ' pTimeSeriesPlot.Refreshing() + ' End If + ' End If + 'End Sub + + 'Adding a point + Public Sub btnAddNewPoint_Click() + If Editing Then + Dim frmAddNewPoint As fAddNewPoint = New fAddNewPoint() + If dgvDataValues.SelectedRows.Count = 2 Then + With dgvDataValues + If .SelectedRows(0).Cells("LocalDateTime").Value < .SelectedRows(1).Cells("LocalDateTime").Value Then + frmAddNewPoint._FirstDate = Convert.ToDateTime(.SelectedRows(0).Cells("LocalDateTime").Value) + frmAddNewPoint._SecondDate = Convert.ToDateTime(.SelectedRows(1).Cells("LocalDateTime").Value) + Else + frmAddNewPoint._FirstDate = Convert.ToDateTime(.SelectedRows(1).Cells("LocalDateTime").Value) + frmAddNewPoint._SecondDate = Convert.ToDateTime(.SelectedRows(0).Cells("LocalDateTime").Value) + End If + End With + frmAddNewPoint.AutoDateTime() + End If + frmAddNewPoint._cEditView = Me + frmAddNewPoint.ShowDialog() + Else + MsgBox(ErrMsgForNotEditing) + End If + End Sub + + 'Delete the selected point + Public Sub btnDeletePoint_Click() + If Editing Then + If dgvDataValues.SelectedRows.Count >= 1 Then + If MsgBox("Do you want to delete the point/points?", MsgBoxStyle.OkCancel, "Delete point") = MsgBoxResult.Ok Then + For i As Integer = 0 To Editdt.Rows.Count - 1 + If Editdt.Rows(i)("Selected") = 1 Then + Editdt.Rows(i)("Other") = -1 + End If + Next + 'If pTimeSeriesPlot.HasEditingCurve Then + ' pTimeSeriesPlot.DeletingPoints() + 'End If + End If + pTimeSeriesPlot.ReplotEditingCurve(Editdt) + RefreshDataGridView() + + Else + MsgBox(ErrMsgForNotPointSelected) + End If + Else + MsgBox(ErrMsgForNotEditing) + End If + End Sub + + 'Associate Table selection with Zvalue(selected points) in the graph Method + Public Sub ReflectZvalue() + Dim IDlist As New List(Of Integer) + Dim eCurve As CurveItem = pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList(0) + For i As Integer = 0 To pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList.Count - 1 + If pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList(i).Color = CurveEditingColor Then + eCurve = pTimeSeriesPlot.zgTimeSeries.GraphPane.CurveList(i) + End If + Next + + For i As Integer = 0 To eCurve.Points.Count - 1 + If eCurve.Points(i).Z = 1 Then + IDlist.Add(Val(pTimeSeriesPlot.PointValueID(i))) + End If + Next + + For i As Integer = 0 To dgvDataValues.Rows.Count - 1 + If IDlist.Contains(Val(dgvDataValues.Rows(i).Cells("ValueID").Value)) Then + dgvDataValues.Rows(i).Selected = True + Else + dgvDataValues.Rows(i).Selected = False + End If + Next + End Sub + + 'Saving changes Method + Public Sub SaveGraphChangesToDatabase() + Dim SQLstring As String + Dim SQLstring2 As String + Dim datavalue As Double + 'Dim QualifierCode As String + Dim ValueID As Integer + Dim RowIndexList As New List(Of Integer) + Dim RestoreDeletedPoint As Boolean = False + Dim dt As New DataTable + Dim ValueIDList As New List(Of Integer) + + + 'Deleting added points after restore data + For i As Integer = 0 To dgvDataValues.Rows.Count - 1 + ValueIDList.Add(dgvDataValues.Rows(i).Cells("ValueID").Value) + Next + dt = dbTools.LoadTable("SELECT ValueID FROM DataValues WHERE SeriesID = " + newseriesID.ToString) + For i As Integer = 0 To dt.Rows.Count - 1 + If Not ValueIDList.Contains(dt.Rows(i)("ValueID")) Then + SQLstring = "DELETE FROM DataValues WHERE ValueID = " + dt.Rows(i)("ValueID").ToString + dbTools.ExecuteNonQuery(SQLstring) + End If + Next + + + 'Setting progress bar + Dim frmloading As ProgressBar = pbProgressBar + frmloading.Visible = True + frmloading.Maximum = dgvDataValues.Rows.Count - 1 + frmloading.Minimum = 0 + frmloading.Value = 0 + + lblstatus.Text = "Saving..." + SQLstring2 = "BEGIN TRANSACTION; " + 'saving by table + For i As Integer = 0 To Editdt.Rows.Count - 1 + + ValueID = Editdt.Rows(i)("ValueID") + + 'deleting point + + If Not Editdt.Rows(i)("Other") = 0 Then + 'Deleteing point + If Editdt.Rows(i)("Other") = -1 Then + SQLstring = "DELETE FROM DataValues WHERE ValueID = " + ValueID.ToString + "; " + SQLstring2 += SQLstring + + + 'Adding point + ElseIf Editdt.Rows(i)("Other") = 1 Then + If dbTools.ExecuteSingleOutput("Select ValueID FROM DataValues WHERE ValueID = " + ValueID.ToString) = Nothing Then + SQLstring = "INSERT INTO DataValues (ValueID,SeriesID,DataValue,ValueAccuracy,LocalDateTime,UTCOffset,DateTimeUTC, " + SQLstring += "OffsetValue, OffsetTypeID, CensorCode, QualifierID, SampleID, FileID) VALUES (" + 'ValueID,SeriesID,DataValue + For j As Integer = 0 To 2 + SQLstring += Editdt.Rows(i)(j).ToString + "," + Next + 'ValueAccuracy + If Editdt.Rows(i)(3) Is DBNull.Value Then + SQLstring += "NULL," + Else + SQLstring += Editdt.Rows(i)(3).ToString + "," + End If + 'LocalDateTime + SQLstring += "'" + Convert.ToDateTime(Editdt.Rows(i)(4)).ToString("yyyy-MM-dd HH:mm:ss") + "'," + 'UTCOffset + SQLstring += Editdt.Rows(i)(5).ToString + 'DateTimeUTC + SQLstring += ",'" + Convert.ToDateTime(Editdt.Rows(i)(6)).ToString("yyyy-MM-dd HH:mm:ss") + "'," + 'OffsetValue + If Editdt.Rows(i)(8) Is DBNull.Value Then + SQLstring += "NULL," + Else + SQLstring += Editdt.Rows(i)(8).ToString + "," + End If + 'OffsetTypeID + If Editdt.Rows(i)(9) Is DBNull.Value Then + SQLstring += "NULL," + Else + SQLstring += Editdt.Rows(i)(9).ToString + "," + End If + 'CensorCode + If Editdt.Rows(i)(10) Is DBNull.Value Then + SQLstring += "NULL," + Else + SQLstring += "'" + Editdt.Rows(i)(10).ToString + "'," + End If + 'QualifierID + If Editdt.Rows(i)(7) Is DBNull.Value Then + SQLstring += "NULL," + Else + SQLstring += GetQualifierID(Editdt.Rows(i)(7).ToString).ToString + "," + End If + 'SampleID + If Editdt.Rows(i)(11) Is DBNull.Value Then + SQLstring += "NULL," + Else + SQLstring += Editdt.Rows(i)(11).ToString() + "," + End If + 'FileID + If Editdt.Rows(i)(12) Is DBNull.Value Then + SQLstring += "NULL)" + Else + SQLstring += Editdt.Rows(i)(12).ToString() + "); " + End If + + SQLstring2 += SQLstring + End If + + + 'updating point + ElseIf Editdt.Rows(i)("Other") = 2 Then + 'Update + If Not datavalue = dgvDataValues.Rows(i).Cells("DataValue").Value Then + SQLstring = "UPDATE DataValues SET DataValue = " + SQLstring += Editdt.Rows(i)("DataValue").ToString + ", QualifierID = " + SQLstring += GetQualifierID(Editdt.Rows(i)("QualifierCode")).ToString + SQLstring += " WHERE ValueID = " + SQLstring += ValueID.ToString + "; " + + SQLstring2 += SQLstring + + End If + End If + End If + + frmloading.Value = i + Next + + SQLstring2 += "COMMIT;" + + dbTools.ExecuteNonQuery(SQLstring2) + + 'Update DataSeries + 'UpdateDataSeries(newseriesID) + + ''Remove rows from dgvDataValues where is deleted + 'For i As Integer = 0 To dgvDataValues.Rows.Count - 1 + ' If dgvDataValues.Rows(i).Cells("Other").Value = -1 Then + ' RowIndexList.Add(i) + ' End If + 'Next + + 'If RowIndexList.Count > 0 Then + ' For i As Integer = RowIndexList.Count - 1 To 0 + ' dgvDataValues.Rows.Remove(dgvDataValues.Rows(RowIndexList(i))) + ' Next + 'End If + + + + 'Update Data Series + DataSeriesHandling.UpdateDataSeriesFromDataValues(newseriesID) + + + RefreshDataGridView() + pTimeSeriesPlot.ReplotEditingCurve(Editdt) + + frmloading.Value = 0 + lblstatus.Text = "Ready" + + End Sub + + 'Count the rows of a series + Public Function SeriesRowsCount(ByVal SeriesID As Integer) As Integer + 'Dim dt As New DataTable + 'dt = dbTools.LoadTable("DataValues", "SELECT * FROM DataValues WHERE SeriesID = " + SeriesID.ToString) + 'Return dt.Rows.Count + Dim rowCount As Object = dbTools.ExecuteSingleOutput("SELECT ValueCount FROM DataSeries WHERE SeriesID = '" + SeriesID.ToString() + "'") + Return CInt(rowCount) + End Function + + 'Update DataSeries Table in the database + Private Sub UpdateDataSeries(ByVal SeriesID As Integer) + Dim SQLstring As String + Dim BeginDateTime As DateTime + Dim EndDateTime As DateTime + Dim BeginDateTimeUTC As DateTime + Dim EndDateTimeUTC As DateTime + + SQLstring = "SELECT LocalDateTime FROM DataValues WHERE SeriesID = " + SeriesID.ToString + " ORDER BY LocalDateTime" + BeginDateTime = dbTools.ExecuteSingleOutput(SQLstring) + SQLstring = "SELECT LocalDateTime FROM DataValues WHERE SeriesID = " + SeriesID.ToString + " ORDER BY LocalDateTime DESC" + EndDateTime = dbTools.ExecuteSingleOutput(SQLstring) + SQLstring = "SELECT DateTimeUTC FROM DataValues WHERE SeriesID = " + SeriesID.ToString + " ORDER BY DateTimeUTC" + BeginDateTimeUTC = dbTools.ExecuteSingleOutput(SQLstring) + SQLstring = "SELECT DateTimeUTC FROM DataValues WHERE SeriesID = " + SeriesID.ToString + " ORDER BY DateTimeUTC DESC" + EndDateTimeUTC = dbTools.ExecuteSingleOutput(SQLstring) + + SQLstring = "UPDATE DataSeries SET ValueCount = " + SeriesRowsCount(SeriesID).ToString + ", " + SQLstring += "BeginDateTime = '" + BeginDateTime.ToString("yyyy-MM-dd HH:mm:ss") + "', " + SQLstring += "EndDateTime = '" + EndDateTime.ToString("yyyy-MM-dd HH:mm:ss") + "', " + SQLstring += "BeginDateTimeUTC = '" + BeginDateTimeUTC.ToString("yyyy-MM-dd HH:mm:ss") + "', " + SQLstring += "EndDateTimeUTC = '" + EndDateTimeUTC.ToString("yyyy-MM-dd HH:mm:ss") + "', " + SQLstring += "UpdateDateTime = '" + Now.ToString("yyyy-MM-dd HH:mm:ss") + "' " + SQLstring += "WHERE SeriesID = " + SeriesID.ToString + + dbTools.ExecuteNonQuery(SQLstring) + End Sub + + 'Reload the Data Grid View + Public Sub RefreshDataGridView() + Editdt.DefaultView.Sort = "[LocalDateTime] Asc" + + dgvDataValues.DataSource = Editdt.DefaultView + ResetGridViewStyle() + End Sub + +#Region "Filters" + 'Value Threshold Filter + Public Sub ValueThresholdFilter(ByVal LargerThanValue As Double, ByVal LessThanValue As Double) + For i As Integer = 0 To dgvDataValues.Rows.Count - 1 + If LargerThanValue < LessThanValue Then + If dgvDataValues.Rows(i).Cells("DataValue").Value > LargerThanValue And dgvDataValues.Rows(i).Cells("DataValue").Value < LessThanValue Then + dgvDataValues.Rows(i).Selected = True + Else + dgvDataValues.Rows(i).Selected = False + End If + Else + If dgvDataValues.Rows(i).Cells("DataValue").Value > LargerThanValue Or dgvDataValues.Rows(i).Cells("DataValue").Value < LessThanValue Then + dgvDataValues.Rows(i).Selected = True + Else + dgvDataValues.Rows(i).Selected = False + End If + End If + Next + + 'Selecting the background data table + For i As Integer = 0 To Editdt.Rows.Count - 1 + If LargerThanValue < LessThanValue Then + If Editdt.Rows(i)("DataValue") > LargerThanValue And Editdt.Rows(i)("DataValue") < LessThanValue Then + Editdt.Rows(i)("Selected") = 1 + Else + Editdt.Rows(i)("Selected") = 0 + End If + Else + If Editdt.Rows(i)("DataValue") > LargerThanValue Or Editdt.Rows(i)("DataValue") < LessThanValue Then + Editdt.Rows(i)("Selected") = 1 + Else + Editdt.Rows(i)("Selected") = 0 + End If + End If + Next + End Sub + + 'Value Change Threshold Filter + Public Sub ValueChangeThreshold(ByVal ValueChange As Double) + dgvDataValues.ClearSelection() + + For i As Integer = 1 To dgvDataValues.Rows.Count - 1 + If (Math.Abs(dgvDataValues.Rows(i).Cells("DataValue").Value - dgvDataValues.Rows(i - 1).Cells("DataValue").Value) > ValueChange) Then + dgvDataValues.Rows(i).Selected = True + dgvDataValues.Rows(i - 1).Selected = True + End If + Next + + + + 'Selecting the background data table + Editdt.Rows(0)("Selected") = 0 + For i As Integer = 1 To Editdt.Rows.Count - 1 + If (Math.Abs(Editdt.Rows(i)("DataValue") - Editdt.Rows(i - 1)("DataValue")) > ValueChange) Then + Editdt.Rows(i)("Selected") = 1 + Editdt.Rows(i - 1)("Selected") = 1 + Else + Editdt.Rows(i)("Selected") = 0 + End If + Next + End Sub + + 'Date Filter + Public Sub DateFilter(ByVal DateBefore As DateTime, ByVal DateAfter As DateTime) + For i As Integer = 0 To dgvDataValues.Rows.Count - 1 + If DateAfter > DateBefore Then + If dgvDataValues.Rows(i).Cells("LocalDateTime").Value >= DateAfter.ToOADate Or dgvDataValues.Rows(i).Cells("LocalDateTime").Value <= DateBefore.ToOADate Then + dgvDataValues.Rows(i).Selected = True + Else + dgvDataValues.Rows(i).Selected = False + End If + Else + If dgvDataValues.Rows(i).Cells("LocalDateTime").Value >= DateAfter.ToOADate And dgvDataValues.Rows(i).Cells("LocalDateTime").Value <= DateBefore.ToOADate Then + dgvDataValues.Rows(i).Selected = True + Else + dgvDataValues.Rows(i).Selected = False + End If + End If + Next + + + 'Selecting the background data table + For i As Integer = 0 To Editdt.Rows.Count - 1 + If DateAfter > DateBefore Then + If Editdt.Rows(i)("LocalDateTime") >= DateAfter.ToOADate Or Editdt.Rows(i)("LocalDateTime") <= DateBefore.ToOADate Then + Editdt.Rows(i)("Selected") = 1 + Else + Editdt.Rows(i)("Selected") = 0 + End If + Else + If Editdt.Rows(i)("LocalDateTime") >= DateAfter.ToOADate And Editdt.Rows(i)("LocalDateTime") <= DateBefore.ToOADate Then + Editdt.Rows(i)("Selected") = 1 + Else + Editdt.Rows(i)("Selected") = 0 + End If + End If + Next + End Sub + + 'Data Gap Filter + Public Sub DataGapFilter(ByVal GapInSecond As Integer) + Dim different As Long + Dim date1 As DateTime + Dim date2 As DateTime + + dgvDataValues.Rows(0).Selected = False + + For i As Integer = 1 To dgvDataValues.Rows.Count - 1 + date1 = dgvDataValues.Rows(i).Cells("LocalDateTime").Value + date2 = dgvDataValues.Rows(i - 1).Cells("LocalDateTime").Value + different = DateDiff(DateInterval.Second, date1, date2, FirstDayOfWeek.Monday, FirstWeekOfYear.Jan1) + + If Math.Abs(different) > GapInSecond Then + dgvDataValues.Rows(i).Selected = True + dgvDataValues.Rows(i - 1).Selected = True + Else + dgvDataValues.Rows(i).Selected = False + End If + + Next + + + + 'Selecting the background data table + Editdt.Rows(0)("Selected") = 0 + For i As Integer = 1 To Editdt.Rows.Count - 1 + date1 = Editdt.Rows(i)("LocalDateTime") + date2 = Editdt.Rows(i - 1)("LocalDateTime") + different = DateDiff(DateInterval.Second, date1, date2, FirstDayOfWeek.Monday, FirstWeekOfYear.Jan1) + + If Math.Abs(different) > GapInSecond Then + Editdt.Rows(i)("Selected") = 1 + Editdt.Rows(i - 1)("Selected") = 1 + Else + Editdt.Rows(i)("Selected") = 0 + End If + Next + End Sub + +#End Region + +#Region "Change Value Function" + + Public Sub ChangeValueByAddOrMinus(ByVal Adding As Boolean, ByVal values As Double) + 'For i As Integer = 0 To dgvDataValues.SelectedRows.Count - 1 + ' 'changing value for the data grid view + ' If Adding Then + ' dgvDataValues.SelectedRows(i).Cells("DataValue").Value += values + ' Else + ' dgvDataValues.SelectedRows(i).Cells("DataValue").Value -= values + ' End If + + ' 'changing value for background curve + ' For j As Integer = 0 To pTimeSeriesPlot.EditCurvePointList.Count - 1 + ' If pTimeSeriesPlot.EditCurvePointList(j).Tag.ToString.Substring(0, pTimeSeriesPlot.EditCurvePointList(j).Tag.ToString.IndexOf(",")) = dgvDataValues.SelectedRows(i).Cells("ValueID").Value Then + ' pTimeSeriesPlot.EditCurvePointList(j).Y = dgvDataValues.SelectedRows(i).Cells("DataValue").Value + + ' End If + ' Next + 'Next + + 'changing value for background data table + For i As Integer = 0 To Editdt.Rows.Count - 1 + If Editdt.Rows(i)("Selected") = 1 Then + If Adding Then + Editdt.Rows(i)("DataValue") += values + Else + Editdt.Rows(i)("DataValue") -= values + End If + + If Not Editdt.Rows(i)("Other") = -1 And Not Editdt.Rows(i)("Other") = 1 Then + Editdt.Rows(i)("Other") = 2 + End If + + End If + Next + + + + End Sub + + Public Sub ChangeValueByMultiply(ByVal Multiplier As Double) + 'For i As Integer = 0 To dgvDataValues.SelectedRows.Count - 1 + ' dgvDataValues.SelectedRows(i).Cells("DataValue").Value *= Multiplier + + ' For j As Integer = 0 To pTimeSeriesPlot.EditCurvePointList.Count - 1 + ' If pTimeSeriesPlot.EditCurvePointList(j).Tag.ToString.Substring(0, pTimeSeriesPlot.EditCurvePointList(j).Tag.ToString.IndexOf(",")) = dgvDataValues.SelectedRows(i).Cells("ValueID").Value Then + ' pTimeSeriesPlot.EditCurvePointList(j).Y = dgvDataValues.SelectedRows(i).Cells("DataValue").Value + + ' End If + ' Next + 'Next + + 'changing value for background data table + For i As Integer = 0 To Editdt.Rows.Count - 1 + If Editdt.Rows(i)("Selected") = 1 Then + Editdt.Rows(i)("DataValue") *= Multiplier + If Not Editdt.Rows(i)("Other") = -1 And Not Editdt.Rows(i)("Other") = 1 Then + Editdt.Rows(i)("Other") = 2 + End If + End If + Next + End Sub + + Public Sub ChangeValueBySettingValue(ByVal value As Double) + 'For i As Integer = 0 To dgvDataValues.SelectedRows.Count - 1 + ' dgvDataValues.SelectedRows(i).Cells("DataValue").Value = value + + ' For j As Integer = 0 To pTimeSeriesPlot.EditCurvePointList.Count - 1 + ' If pTimeSeriesPlot.EditCurvePointList(j).Tag.ToString.Substring(0, pTimeSeriesPlot.EditCurvePointList(j).Tag.ToString.IndexOf(",")) = dgvDataValues.SelectedRows(i).Cells("ValueID").Value Then + ' pTimeSeriesPlot.EditCurvePointList(j).Y = dgvDataValues.SelectedRows(i).Cells("DataValue").Value + + ' End If + ' Next + 'Next + + + 'changing value for background data table + For i As Integer = 0 To Editdt.Rows.Count - 1 + If Editdt.Rows(i)("Selected") = 1 Then + Editdt.Rows(i)("DataValue") = value + If Not Editdt.Rows(i)("Other") = -1 And Not Editdt.Rows(i)("Other") = 1 Then + Editdt.Rows(i)("Other") = 2 + End If + End If + Next + End Sub + + Public Sub ChangeValueByInterpolating(ByRef returned As Boolean) + Dim i As Integer = 1 + Dim count As Integer = 1 + Dim difference As Double + + 'Check if the first point and last point is selected + If dgvDataValues.Rows(0).Selected Or dgvDataValues.Rows(dgvDataValues.Rows.Count - 1).Selected Then + MsgBox("You cannot interpolate with the first point or last point selected.") + returned = True + Return + End If + + 'Interpolating + 'Do Until (i >= dgvDataValues.Rows.Count - 2) + ' If dgvDataValues.Rows(i).Selected Then + ' If dgvDataValues.Rows(i + 1).Selected = False Then + ' difference = (dgvDataValues.Rows(i - 1).Cells("DataValue").Value + dgvDataValues.Rows(i + 1).Cells("DataValue").Value) + ' dgvDataValues.Rows(i).Cells("DataValue").Value = difference / 2 + ' i += 1 + ' Else + ' count = 1 + ' Do Until (dgvDataValues.Rows(i + 1).Selected = False) + ' count += 1 + ' i += 1 + ' Loop + ' difference = (dgvDataValues.Rows(i + 1).Cells("DataValue").Value + dgvDataValues.Rows(i - count).Cells("DataValue").Value) + ' For j As Integer = 1 To count + ' dgvDataValues.Rows(i + 1 - j).Cells("DataValue").Value = dgvDataValues.Rows(i + 1).Cells("DataValue").Value - difference / (count + 1) * j + ' Next + ' End If + ' Else + ' i += 1 + ' End If + 'Loop + + 'For k As Integer = 0 To dgvDataValues.SelectedRows.Count - 1 + ' For j As Integer = 0 To pTimeSeriesPlot.EditCurvePointList.Count - 1 + ' If pTimeSeriesPlot.EditCurvePointList(j).Tag.ToString.Substring(0, pTimeSeriesPlot.EditCurvePointList(j).Tag.ToString.IndexOf(",")) = dgvDataValues.SelectedRows(k).Cells("ValueID").Value Then + ' pTimeSeriesPlot.EditCurvePointList(j).Y = dgvDataValues.SelectedRows(k).Cells("DataValue").Value + + ' End If + ' Next + 'Next + + + + 'changing value for background data table + i = 1 + Do Until (i >= Editdt.Rows.Count - 2) + If Editdt.Rows(i)("Selected") = 1 Then + If Not Editdt.Rows(i + 1)("Selected") = 1 Then + difference = Editdt.Rows(i - 1)("DataValue") + Editdt.Rows(i + 1)("DataValue") + Editdt.Rows(i)("DataValue") = difference / 2 + If Not Editdt.Rows(i)("Other") = -1 And Not Editdt.Rows(i)("Other") = 1 Then + Editdt.Rows(i)("Other") = 2 + End If + i += 1 + Else + count = 1 + Do Until Not (Editdt.Rows(i + 1)("Selected") = 1) + count += 1 + i += 1 + Loop + difference = (Editdt.Rows(i + 1)("DataValue") + Editdt.Rows(i - count)("DataValue")) + For j As Integer = 1 To count + Editdt.Rows(i + 1 - j)("DataValue") = Editdt.Rows(i + 1)("DataValue") - difference / (count + 1) * j + If Not Editdt.Rows(i + 1 - j)("Other") = -1 And Not Editdt.Rows(i + 1 - j)("Other") = 1 Then + Editdt.Rows(i + 1 - j)("Other") = 2 + End If + Next + End If + Else + i += 1 + End If + Loop + + End Sub + +#End Region + +#End Region + + +End Class +'End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/EditView.sln b/Source/Plugins/HydroDesktop.Plugins.EditView/EditView.sln new file mode 100644 index 00000000..d5772399 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/EditView.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EditView", "EditView.vbproj", "{1119D6E1-5337-42C6-BBDA-3658808F319C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1119D6E1-5337-42C6-BBDA-3658808F319C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1119D6E1-5337-42C6-BBDA-3658808F319C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1119D6E1-5337-42C6-BBDA-3658808F319C}.Release|Any CPU.ActiveCfg = Release|x86 + {1119D6E1-5337-42C6-BBDA-3658808F319C}.Release|Any CPU.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/EditViewPlugin.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/EditViewPlugin.vb new file mode 100644 index 00000000..efc8af4a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/EditViewPlugin.vb @@ -0,0 +1,288 @@ +Imports System.Windows.Forms +Imports HydroDesktop.Common +Imports DotSpatial.Controls +Imports HydroDesktop.Interfaces +Imports DotSpatial.Controls.Header +Imports System.ComponentModel.Composition +Imports DotSpatial.Controls.Docking + + +Namespace HydroDesktop.Plugins.EditView + + Public Class EditViewPlugin + Inherits Extension + +#Region "Variables" + + + Private _seriesSelector As ISeriesSelector + + Private ignoreRootSelected As Boolean = False + + Private _mainControl As Controls.EditView + + Private Const _pluginName As String = "Edit" + 'Private Const kEditView As String = "kHydroEditView" + Private Const kEditView As String = "kHydroEditView" + + Private _EditView As RootItem + + Private btnSelectSeries As SimpleActionItem + + Private btnDeriveNewDataSeries As SimpleActionItem + + Private btnRestoreData As SimpleActionItem + + Private btnApplyToDatabase As SimpleActionItem + + Private ckbShowLegend As SimpleActionItem + + Private btnChangeYValue As SimpleActionItem + + Private btnInterpolate As SimpleActionItem + + Private btnFlag As SimpleActionItem + Private btnAddNewPoint As SimpleActionItem + + Private btnDeletePoint As SimpleActionItem + +#End Region + +#Region "IExtension Members" + + ''' + ''' Initialize the plugin + ''' + Public Overrides Sub Activate() + + '************************************************************************************** + 'Adding the ribbon tab + _EditView = New RootItem(kEditView, _pluginName) + _EditView.SortOrder = 40 + App.HeaderControl.Add(_EditView) + + '************************************************************************************** + + 'To add a new edit view dockable panel to the main application window + 'watch for dock panel added event + 'If firstTimeLoading Then + ' AddHandler App.DockManager.PanelAdded, AddressOf DockPanelAdded + 'Else + + 'End If + + + _mainControl = New Controls.EditView(_seriesSelector) + + _mainControl.Dock = DockStyle.Fill + + Dim dp As New DockablePanel(kEditView, _pluginName, _mainControl, DockStyle.Fill) + dp.DefaultSortOrder = 30 + App.DockManager.Add(dp) + + 'adding the Edit Tab + AddHandler App.HeaderControl.RootItemSelected, AddressOf HeaderControl_RootItemSelected + + 'when the edit view panel is activated, select the Edit ribbon tab + AddHandler App.DockManager.ActivePanelChanged, AddressOf DockManager_ActivePanelChanged + + InitializeRibbonButtons() + End Sub + + Sub HeaderControl_RootItemSelected(ByVal sender As Object, ByVal e As RootItemEventArgs) + + If ignoreRootSelected Then Return + If e.SelectedRootKey = kEditView Then + App.DockManager.SelectPanel(kEditView) + End If + + End Sub + + + 'Sub DockPanelAdded(ByVal sender As Object, ByVal args As Docking.DockablePanelEventArgs) + ' If Not firstTimeLoading Then Exit Sub + + ' If args.ActivePanelKey = "kMap" Then + ' App.DockManager.Add(New DockablePanel(kEditView, _pluginName, _mainControl, DockStyle.Fill)) + ' End If + ' App.DockManager.SelectPanel("kMap") + 'End Sub + + + Private Sub InitializeRibbonButtons() + + 'Main Function Panel + Const mainFunctionGroup As String = "Main Functions" + + btnSelectSeries = New SimpleActionItem("Edit Series", New EventHandler(AddressOf btnSelectSeries_Click)) + btnSelectSeries.RootKey = kEditView + btnSelectSeries.LargeImage = My.Resources.Edit + btnSelectSeries.GroupCaption = mainFunctionGroup + App.HeaderControl.Add(btnSelectSeries) + + btnDeriveNewDataSeries = New SimpleActionItem("Derive Series", New EventHandler(AddressOf _mainControl.btnDeriveNewDataSeries_Click)) + btnDeriveNewDataSeries.RootKey = kEditView + btnDeriveNewDataSeries.LargeImage = My.Resources.DeriveNewSeries + btnDeriveNewDataSeries.GroupCaption = mainFunctionGroup + App.HeaderControl.Add(btnDeriveNewDataSeries) + + btnRestoreData = New SimpleActionItem("Restore Data", New EventHandler(AddressOf _mainControl.btnRestoreData_Click)) + btnRestoreData.RootKey = kEditView + btnRestoreData.LargeImage = My.Resources.Restore + btnRestoreData.GroupCaption = mainFunctionGroup + App.HeaderControl.Add(btnRestoreData) + + btnApplyToDatabase = New SimpleActionItem("Save To Database", New EventHandler(AddressOf _mainControl.btnApplyToDatabase_Click)) + btnApplyToDatabase.RootKey = kEditView + btnApplyToDatabase.LargeImage = My.Resources.Save + btnApplyToDatabase.GroupCaption = mainFunctionGroup + App.HeaderControl.Add(btnApplyToDatabase) + + 'Plot Function Panel + Const editFunctionGroup As String = "Edit Functions" + + btnChangeYValue = New SimpleActionItem("Change Value", New EventHandler(AddressOf _mainControl.btnChangeYValue_Click)) + btnChangeYValue.RootKey = kEditView + btnChangeYValue.LargeImage = My.Resources.ChangeValue + btnChangeYValue.GroupCaption = editFunctionGroup + App.HeaderControl.Add(btnChangeYValue) + + btnInterpolate = New SimpleActionItem("Interpolate", New EventHandler(AddressOf _mainControl.btnInterpolate_Click)) + btnInterpolate.RootKey = kEditView + btnInterpolate.LargeImage = My.Resources.Interpolate + btnInterpolate.GroupCaption = editFunctionGroup + App.HeaderControl.Add(btnInterpolate) + + btnFlag = New SimpleActionItem("Flag", New EventHandler(AddressOf _mainControl.btnFlag_Click)) + btnFlag.RootKey = kEditView + btnFlag.LargeImage = My.Resources.Flag + btnFlag.GroupCaption = editFunctionGroup + App.HeaderControl.Add(btnFlag) + + btnAddNewPoint = New SimpleActionItem("Add Point", New EventHandler(AddressOf _mainControl.btnAddNewPoint_Click)) + btnAddNewPoint.RootKey = kEditView + btnAddNewPoint.LargeImage = My.Resources.Add + btnAddNewPoint.GroupCaption = editFunctionGroup + App.HeaderControl.Add(btnAddNewPoint) + + btnDeletePoint = New SimpleActionItem("Delete Point", New EventHandler(AddressOf _mainControl.btnDeletePoint_Click)) + btnDeletePoint.RootKey = kEditView + btnDeletePoint.LargeImage = My.Resources.Delete + btnDeletePoint.GroupCaption = editFunctionGroup + App.HeaderControl.Add(btnDeletePoint) + + 'Main Function Panel + Const plotFunctionGroup As String = "Plot Function" + + ckbShowLegend = New SimpleActionItem("Show Legend", New EventHandler(AddressOf _mainControl.ckbShowLegend_Click)) + ckbShowLegend.RootKey = kEditView + ckbShowLegend.LargeImage = My.Resources.Legend + ckbShowLegend.GroupCaption = plotFunctionGroup + ckbShowLegend.ToggleGroupKey = "kEditLegend" + App.HeaderControl.Add(ckbShowLegend) + + _mainControl.ShowLegend = False + + 'disable buttons by default + btnAddNewPoint.Enabled = False + btnApplyToDatabase.Enabled = False + btnChangeYValue.Enabled = False + btnDeletePoint.Enabled = False + btnFlag.Enabled = False + btnInterpolate.Enabled = False + btnRestoreData.Enabled = False + + MyBase.Activate() + + End Sub + + Public Overrides Sub Deactivate() + + App.HeaderControl.RemoveAll() + App.DockManager.Remove(kEditView) + _mainControl = Nothing + + 'Remove event handlers + RemoveHandler App.HeaderControl.RootItemSelected, AddressOf HeaderControl_RootItemSelected + RemoveHandler App.DockManager.ActivePanelChanged, AddressOf DockManager_ActivePanelChanged + + MyBase.Deactivate() + + End Sub + +#End Region + +#Region "Event Handlers" + + Private Sub DockManager_ActivePanelChanged(ByVal sender As Object, ByVal e As DockablePanelEventArgs) + + 'activate the Edit ribbon tab and the series view panel + If e.ActivePanelKey = kEditView Then + ignoreRootSelected = True + App.HeaderControl.SelectRoot(kEditView) + ignoreRootSelected = False + App.DockManager.SelectPanel(SharedConstants.SeriesViewKey) + End If + End Sub + + Private Sub btnSelectSeries_Click() + If Not _mainControl.Editing Then + If Not _seriesSelector.SelectedSeriesID = 0 Then + _mainControl.btnSelectSeries_Click() + + 'TODO : allow to change button caption + btnSelectSeries.Caption = "Stop Editing" + _mainControl.gboxDataFilter.Enabled = True + + btnAddNewPoint.Enabled = True + btnApplyToDatabase.Enabled = True + btnChangeYValue.Enabled = True + btnDeletePoint.Enabled = True + btnFlag.Enabled = True + btnInterpolate.Enabled = True + btnRestoreData.Enabled = True + End If + Else + If _mainControl.Editing Then + Dim result As Integer + + result = MsgBox("You are editing a series. Do you want to save your edits?", MsgBoxStyle.YesNoCancel, "Save?") + If result = MsgBoxResult.Yes Then + _mainControl.SaveGraphChangesToDatabase() + End If + End If + + btnAddNewPoint.Enabled = False + btnApplyToDatabase.Enabled = False + btnChangeYValue.Enabled = False + btnDeletePoint.Enabled = False + btnFlag.Enabled = False + btnInterpolate.Enabled = False + btnRestoreData.Enabled = False + _mainControl.gboxDataFilter.Enabled = False + + 'Change caption back to Edit Series (TODO support changing of caption) + btnSelectSeries.Caption = "Edit Series" + + _mainControl.Editing = False + _mainControl.newseriesID = 0 + _mainControl.pTimeSeriesPlot.ClearEditMode() + _mainControl.dgvDataValues.DataSource = Nothing + _mainControl.lblstatus.Text = String.Empty + End If + End Sub + + 'Sub ckbShowLegend_CheckBoxCheckChanged() + ' 'TODO support check box + ' 'If ckbShowLegend.Checked Then + ' ' _mainControl.ShowLegend = True + ' 'Else + ' ' _mainControl.ShowLegend = False + ' 'End If + ' _mainControl.ckbShowLegend_CheckedChanged() + 'End Sub + +#End Region + + End Class +End Namespace diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/HydroDesktop.Plugins.EditView.nuspec b/Source/Plugins/HydroDesktop.Plugins.EditView/HydroDesktop.Plugins.EditView.nuspec new file mode 100644 index 00000000..1ee6f684 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/HydroDesktop.Plugins.EditView.nuspec @@ -0,0 +1,19 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/HydroDesktop.Plugins.EditView.vbproj b/Source/Plugins/HydroDesktop.Plugins.EditView/HydroDesktop.Plugins.EditView.vbproj new file mode 100644 index 00000000..bc80cd73 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/HydroDesktop.Plugins.EditView.vbproj @@ -0,0 +1,366 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {1119D6E1-5337-42C6-BBDA-3658808F319C} + Library + + + HydroDesktop.Plugins.EditView + 512 + Windows + v4.0 + On + Text + Off + On + + + + + 3.5 + + Client + ..\..\ + true + + + true + full + true + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.EditView\ + HydroDesktop.Plugins.EditView.xml + 41999,42016 + + + 1 + + + pdbonly + false + true + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.EditView\ + 41999,42016 + + + 1 + + + true + true + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.EditView\ + HydroDesktop.Plugins.EditView.xml + 1 + 41999,42016 + full + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.EditView\HydroDesktop.Plugins.EditView.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.vb + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + true + bin\x86\Release\ + true + 1 + 41999,42016 + pdbonly + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.EditView\HydroDesktop.Plugins.EditView.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.vb + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + + + + + + 3.5 + + + 3.5 + + + ..\..\packages\ZedGraph.5.1.6\lib\net35-Client\ZedGraph.dll + False + + + + + + + + + + + + + + + EditView.vb + + + UserControl + + + VariablesTableManagement.vb + + + Form + + + QualifiersTableManagement.vb + + + Form + + + AddNewPoint.vb + + + Form + + + ChangeYValue.vb + + + Form + + + QualityControlLevelTableManagement.vb + + + Form + + + MethodTableManagement.vb + + + Form + + + TimeSeriesPlot.vb + + + UserControl + + + DeriveNewDataSeries.vb + + + Form + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + OrderChange.vb + + + Form + + + + + + + EditView.vb + Designer + + + VariablesTableManagement.vb + Designer + + + QualifiersTableManagement.vb + Designer + + + AddNewPoint.vb + Designer + + + ChangeYValue.vb + Designer + + + QualityControlLevelTableManagement.vb + Designer + + + MethodTableManagement.vb + Designer + + + TimeSeriesPlot.vb + Designer + + + DeriveNewDataSeries.vb + Designer + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + OrderChange.vb + Designer + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + + + + + + + + + + + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + {0ccd3f11-0f48-427f-bc98-9dd6d875f4bb} + HydroDesktop.Configuration + False + + + {ceb869c6-ed48-4846-9040-4e82ab58b86b} + HydroDesktop.Data + False + + + {0b9ba90b-2016-4754-915a-0ad74fd0067a} + HydroDesktop.Interfaces + False + + + {9B0A0FAC-318F-4A27-A416-3977820B3B95} + HydroDesktop.ZedGraphEx + False + + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Application.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Application.Designer.vb new file mode 100644 index 00000000..abd46e99 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.18444 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Application.myapp b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Application.myapp new file mode 100644 index 00000000..0167050e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/AssemblyInfo.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..618ffb3e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/AssemblyInfo.vb @@ -0,0 +1,24 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/DataSources/HydroDesktop.Database.Config.datasource b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/DataSources/HydroDesktop.Database.Config.datasource new file mode 100644 index 00000000..6277be2d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/DataSources/HydroDesktop.Database.Config.datasource @@ -0,0 +1,10 @@ + + + + HydroDesktop.Database.Config, HydroDesktop.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Resources.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Resources.Designer.vb new file mode 100644 index 00000000..d1ac5e26 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Resources.Designer.vb @@ -0,0 +1,173 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.18444 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Add() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Add", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property ChangeValue() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("ChangeValue", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Delete() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Delete", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property DeriveNewSeries() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("DeriveNewSeries", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Edit() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Edit", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property EditView_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("EditView_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Flag() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Flag", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Interpolate() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Interpolate", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Legend() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Legend", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Restore() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Restore", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Save() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Save", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + End Module +End Namespace diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Resources.resx new file mode 100644 index 00000000..0f6062b5 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Resources.resx @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ChangeValue.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Delete.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\DeriveNewSeries.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Edit.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\EditView_icon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Flag.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Interpolate.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Legend.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Restore.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Save.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Settings.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Settings.Designer.vb new file mode 100644 index 00000000..55287528 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.18444 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.My.MySettings + Get + Return Global.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Settings.settings b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Settings.settings new file mode 100644 index 00000000..377f56d6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/OrderChange.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/OrderChange.Designer.vb new file mode 100644 index 00000000..34c13da7 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/OrderChange.Designer.vb @@ -0,0 +1,108 @@ + _ +Partial Class OrderChange + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.pnlList = New System.Windows.Forms.Panel + Me.Button1 = New System.Windows.Forms.Button + Me.Button2 = New System.Windows.Forms.Button + Me.Panel1 = New System.Windows.Forms.Panel + Me.FlowLayoutPanel1 = New System.Windows.Forms.FlowLayoutPanel + Me.Panel1.SuspendLayout() + Me.FlowLayoutPanel1.SuspendLayout() + Me.SuspendLayout() + ' + 'pnlList + ' + Me.pnlList.AutoSize = True + Me.pnlList.Dock = System.Windows.Forms.DockStyle.Fill + Me.pnlList.Location = New System.Drawing.Point(0, 0) + Me.pnlList.Name = "pnlList" + Me.pnlList.Size = New System.Drawing.Size(142, 37) + Me.pnlList.TabIndex = 0 + ' + 'Button1 + ' + Me.Button1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button1.Location = New System.Drawing.Point(74, 3) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(65, 23) + Me.Button1.TabIndex = 1 + Me.Button1.Text = "OK" + Me.Button1.UseVisualStyleBackColor = True + ' + 'Button2 + ' + Me.Button2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button2.Location = New System.Drawing.Point(3, 3) + Me.Button2.Name = "Button2" + Me.Button2.Size = New System.Drawing.Size(65, 23) + Me.Button2.TabIndex = 2 + Me.Button2.Text = "Cancel" + Me.Button2.UseVisualStyleBackColor = True + ' + 'Panel1 + ' + Me.Panel1.AutoSize = True + Me.Panel1.Controls.Add(Me.pnlList) + Me.Panel1.Controls.Add(Me.FlowLayoutPanel1) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(142, 66) + Me.Panel1.TabIndex = 3 + ' + 'FlowLayoutPanel1 + ' + Me.FlowLayoutPanel1.AutoSize = True + Me.FlowLayoutPanel1.Controls.Add(Me.Button1) + Me.FlowLayoutPanel1.Controls.Add(Me.Button2) + Me.FlowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Bottom + Me.FlowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft + Me.FlowLayoutPanel1.Location = New System.Drawing.Point(0, 37) + Me.FlowLayoutPanel1.Name = "FlowLayoutPanel1" + Me.FlowLayoutPanel1.Size = New System.Drawing.Size(142, 29) + Me.FlowLayoutPanel1.TabIndex = 3 + ' + 'OrderChange + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.AutoSize = True + Me.ClientSize = New System.Drawing.Size(142, 66) + Me.Controls.Add(Me.Panel1) + Me.MinimumSize = New System.Drawing.Size(150, 100) + Me.Name = "OrderChange" + Me.Text = "OrderChange" + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.FlowLayoutPanel1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents pnlList As System.Windows.Forms.Panel + Friend WithEvents Button1 As System.Windows.Forms.Button + Friend WithEvents Button2 As System.Windows.Forms.Button + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents FlowLayoutPanel1 As System.Windows.Forms.FlowLayoutPanel +End Class diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/OrderChange.resx b/Source/Plugins/HydroDesktop.Plugins.EditView/OrderChange.resx new file mode 100644 index 00000000..ff31a6db --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/OrderChange.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/Source/Plugins/HydroDesktop.Plugins.EditView/OrderChange.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/OrderChange.vb new file mode 100644 index 00000000..cfe90a77 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/OrderChange.vb @@ -0,0 +1,91 @@ +Imports System.Windows.Forms +Public Class OrderChange + Const DDL_WIDTH As Integer = 200 + ReadOnly dropDowns() As ComboBox + ReadOnly m_order() As String + Public Sub New(ByVal order() As String) + + ' This call is required by the Windows Form Designer. + InitializeComponent() + + ' Add any initialization after the InitializeComponent() call. + m_order = order + + ReDim dropDowns(order.Length - 1) + For i As Integer = 0 To (order.Length - 1) + Dim ddl As New ComboBox + AddHandler ddl.SelectedIndexChanged, AddressOf dropDowns_SelectedIndexChanged + 'DO WORK HERE + If (i = 0) Then + ddl.Enabled = True + ddl.Items.Clear() + ddl.Items.AddRange(order) + Else + ddl.Enabled = False + End If + ddl.DropDownStyle = ComboBoxStyle.DropDownList + ddl.Width = DDL_WIDTH + ddl.Top = (i * 30) + 5 + ddl.Left = 5 + dropDowns(i) = ddl + pnlList.Controls.Add(ddl) + Next i + End Sub + + Private Sub dropDowns_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) + Dim ddl As ComboBox = sender + Dim index As Integer = Array.IndexOf(dropDowns, ddl) + + If ddl.SelectedItem Is Nothing Then + If ((index + 1) < dropDowns.Length) Then + dropDowns(index + 1).Enabled = False + dropDowns(index + 1).Items.Clear() + End If + Else + Dim available As New List(Of String)(m_order) + For x As Integer = 0 To index + available.Remove(dropDowns(x).SelectedItem) + Next x + If ((index + 1) < dropDowns.Length) Then + dropDowns(index + 1).Enabled = True + dropDowns(index + 1).Items.Clear() + dropDowns(index + 1).Items.AddRange(available.ToArray) + For y As Integer = (index + 2) To (dropDowns.Length - 1) + dropDowns(y).Enabled = False + dropDowns(y).Items.Clear() + Next y + End If + End If + End Sub + + Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click + Dim valid As Boolean = True + For Each ddl As ComboBox In dropDowns + If ddl.SelectedItem Is Nothing Then + valid = False + Exit For + End If + Next ddl + If valid Then + DialogResult = Windows.Forms.DialogResult.OK + Else + MsgBox("All values must be selected", , "Error") + End If + End Sub + + Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click + DialogResult = Windows.Forms.DialogResult.Cancel + End Sub + + Public ReadOnly Property Order() As String() + Get + Dim temp(dropDowns.Length - 1) As String + + For i As Integer = 0 To (dropDowns.Length - 1) + temp(i) = dropDowns(i).SelectedItem + Next i + + Return temp + End Get + End Property +End Class \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/PlotOptions.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/PlotOptions.vb new file mode 100644 index 00000000..b60a3733 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/PlotOptions.vb @@ -0,0 +1,68 @@ +Public Class PlotOptions + Public Enum TimeSeriesType + Both + Line + Point + None + End Enum +#Region " Member Variables " + Private _TimeSeriesMethod As TimeSeriesType + Private ReadOnly _IsPlotCensored As Boolean + Private _GetLineColor As Drawing.Color + Private _GetPointColor As Drawing.Color + Private ReadOnly _ShowLegend As Boolean + Private ReadOnly _UseCensoredData As Boolean +#End Region + + Public Sub New(ByVal TimeSeriesMethod As TimeSeriesType, ByVal GetLineColor As Drawing.Color, _ + ByVal GetPointColor As Drawing.Color, ByVal ShowLegend As Boolean, _ + ByVal UseCensoredData As Boolean, Optional ByVal IsPlotCensored As Boolean = True) + _TimeSeriesMethod = TimeSeriesMethod + _IsPlotCensored = IsPlotCensored + _GetLineColor = GetLineColor + _GetPointColor = GetPointColor + _ShowLegend = ShowLegend + _UseCensoredData = UseCensoredData + + End Sub + + Public Property TimeSeriesMethod() As TimeSeriesType + Get + Return _TimeSeriesMethod + End Get + Set(ByVal value As TimeSeriesType) + _TimeSeriesMethod = value + End Set + End Property + Public ReadOnly Property IsPlotCensored() As Boolean + Get + Return _IsPlotCensored + End Get + End Property + Public Property GetLineColor() As Drawing.Color + Get + Return _GetLineColor + End Get + Set(ByVal value As Drawing.Color) + _GetLineColor = value + End Set + End Property + Public Property GetPointColor() As Drawing.Color + Get + Return _GetPointColor + End Get + Set(ByVal value As Drawing.Color) + _GetPointColor = value + End Set + End Property + Public ReadOnly Property ShowLegend() As Boolean + Get + Return _ShowLegend + End Get + End Property + Public ReadOnly Property UseCensoredData() As Boolean + Get + Return _UseCensoredData + End Get + End Property +End Class diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Add.png b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Add.png new file mode 100644 index 00000000..765832e4 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Add.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/ChangeValue.png b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/ChangeValue.png new file mode 100644 index 00000000..a9a3854f Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/ChangeValue.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Delete.png b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Delete.png new file mode 100644 index 00000000..f8426f35 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Delete.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/DeriveNewSeries.png b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/DeriveNewSeries.png new file mode 100644 index 00000000..788096e8 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/DeriveNewSeries.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Edit.png b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Edit.png new file mode 100644 index 00000000..61b10024 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Edit.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/EditView_icon.png b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/EditView_icon.png new file mode 100644 index 00000000..19f5e8b6 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/EditView_icon.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Flag.png b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Flag.png new file mode 100644 index 00000000..3b7581c3 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Flag.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Interpolate.png b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Interpolate.png new file mode 100644 index 00000000..e196c010 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Interpolate.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Legend.png b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Legend.png new file mode 100644 index 00000000..4ad58a4f Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Legend.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Restore.png b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Restore.png new file mode 100644 index 00000000..669f43bf Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Restore.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Save.png b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Save.png new file mode 100644 index 00000000..3873c234 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Save.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Tag.png b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Tag.png new file mode 100644 index 00000000..6ad109c7 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Tag.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Thumbs.db b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Thumbs.db new file mode 100644 index 00000000..ab8df9ff Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.EditView/Resources/Thumbs.db differ diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/Statistics.vb b/Source/Plugins/HydroDesktop.Plugins.EditView/Statistics.vb new file mode 100644 index 00000000..13a9079d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/Statistics.vb @@ -0,0 +1,205 @@ +Option Strict On +Public Class Statistics + Public Const NotCensored As String = "nc" + Public Const Unknown As String = "unknown" + + Shared Function ArithmeticMean(ByRef objDataTable As Data.DataTable) As Double + Try + Return Convert.ToDouble(objDataTable.Compute("Avg(DataValue)", "")) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.ArithmeticMean" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function GeometricMean(ByRef objDataTable As Data.DataTable) As Double + Try + Dim dblTotal As Double = 0 + Dim objDataRow As DataRow + For Each objDataRow In objDataTable.Rows + If Convert.ToInt32(objDataRow.Item("DataValue")) > 0 Then + dblTotal += Math.Log10(Convert.ToDouble(objDataRow.Item("DataValue"))) + End If + Next + Return 10 ^ (dblTotal / Count(objDataTable)) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.GeometricMean" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function Mean(ByRef objDataTable As Data.DataTable) As Double + Try + Return ArithmeticMean(objDataTable) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.Mean" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function Median(ByRef objDataTable As Data.DataTable) As Double + Try + If (Count(objDataTable) Mod 2 = 0) Then + Dim intRow As Integer = Convert.ToInt32(Math.Floor(Count(objDataTable) * 0.5)) + Return (Convert.ToDouble(objDataTable.Rows(intRow).Item("DataValue")) + Convert.ToDouble(objDataTable.Rows(intRow - 1).Item("DataValue"))) / 2 + Else + Return Percentile(objDataTable, 50) + End If + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.Median" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function Minimum(ByRef objDataTable As Data.DataTable) As Double + Try + Return Convert.ToDouble(objDataTable.Compute("MIN(DataValue)", "")) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.Minimum" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function Maximum(ByRef objDataTable As Data.DataTable) As Double + Try + Return Convert.ToDouble(objDataTable.Compute("MAX(DataValue)", "")) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.Maximum" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function Range(ByRef objDataTable As Data.DataTable) As Double + Try + Return Maximum(objDataTable) - Minimum(objDataTable) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.Range" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function UpperQuartile(ByRef objDataTable As Data.DataTable) As Double + Try + Return Percentile(objDataTable, 75) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.UpperQuartile" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function LowerQuartile(ByRef objDataTable As Data.DataTable) As Double + Try + Return Percentile(objDataTable, 25) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.LowerQuartile" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function InterquartileRange(ByRef objDataTable As Data.DataTable) As Double + Try + Return UpperQuartile(objDataTable) - LowerQuartile(objDataTable) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.InterquartileRange" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function UpperAdjacent(ByRef objDataTable As Data.DataTable) As Double + Try + If (UpperQuartile(objDataTable) + InterquartileRange(objDataTable) * 1.5 > Maximum(objDataTable)) Then + Return Maximum(objDataTable) + Else + Return UpperQuartile(objDataTable) + InterquartileRange(objDataTable) * 1.5 + End If + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.UpperAdjacent" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function LowerAdjacent(ByRef objDataTable As Data.DataTable) As Double + Try + If (LowerQuartile(objDataTable) - InterquartileRange(objDataTable) * 1.5 < Minimum(objDataTable)) Then + Return Minimum(objDataTable) + Else + Return LowerQuartile(objDataTable) - InterquartileRange(objDataTable) * 1.5 + End If + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.LowerAdjacent" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function UpperConfidenceLimit(ByRef objDataTable As Data.DataTable) As Double + Try + Return Median(objDataTable) + StandardDeviation(objDataTable) / Math.Sqrt(Count(objDataTable)) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.UpperConfidenceLimit" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function LowerConfidenceLimit(ByRef objDataTable As Data.DataTable) As Double + Try + Return Median(objDataTable) - StandardDeviation(objDataTable) / Math.Sqrt(Count(objDataTable)) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.LowerConfidenceLimit" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function UpperConfidenceInterval(ByRef objDataTable As Data.DataTable) As Double + Try + Return Mean(objDataTable) + StandardDeviation(objDataTable) / Math.Sqrt(Count(objDataTable)) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.UpperConfidenceInterval" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function LowerConfidenceInterval(ByRef objDataTable As Data.DataTable) As Double + Try + Return Mean(objDataTable) - StandardDeviation(objDataTable) / Math.Sqrt(Count(objDataTable)) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.LowerConfidenceInterval" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function Percentile(ByRef objDataTable As Data.DataTable, ByVal intPercentile As Integer) As Double + Try + Dim intRow As Integer = Convert.ToInt32(Math.Floor(Count(objDataTable) * (intPercentile / 100))) + Dim rows() As DataRow = objDataTable.Select("", "DataValue ASC") + Return Convert.ToDouble(rows(intRow).Item("DataValue")) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.Percentile" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function StandardDeviation(ByRef objDataTable As DataTable) As Double + Try + If objDataTable.Rows.Count > 1 Then + Return Convert.ToDouble(objDataTable.Compute("STDEV(DataValue)", "")) + Else + Return 0 + End If + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.StandardDeviation" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function CoefficientOfVariation(ByRef objDataTable As Data.DataTable) As Double + Try + If ArithmeticMean(objDataTable) <> 0 Then + Return StandardDeviation(objDataTable) / ArithmeticMean(objDataTable) + Else + Return 0 + End If + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.CoefficientofVariation" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function Count(ByRef objDataTable As Data.DataTable) As Integer + Try + Return objDataTable.Rows.Count + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.Count" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function CountCensored(ByRef objDataTable As Data.DataTable) As Integer + Try + objDataTable.CaseSensitive = False + Dim rows() As DataRow = objDataTable.Select("(CensorCode <> '" & Statistics.NotCensored & "') AND (CensorCode <> '" & Statistics.Unknown & "')") + Return rows.Count + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.Count" & vbCrLf & ex.Message) + End Try + End Function +End Class \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.EditView/packages.config b/Source/Plugins/HydroDesktop.Plugins.EditView/packages.config new file mode 100644 index 00000000..33bebbe4 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.EditView/packages.config @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/ExcelVectorProvider.cs b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/ExcelVectorProvider.cs new file mode 100644 index 00000000..356a0337 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/ExcelVectorProvider.cs @@ -0,0 +1,201 @@ +using System; +using System.Data; +using System.Diagnostics; +using System.IO; +using DotSpatial.Data; +using DotSpatial.Projections; +using DotSpatial.Topology; +using Excel; +using HydroDesktop.Plugins.ExcelExtension.Properties; + +namespace HydroDesktop.Plugins.ExcelExtension +{ + /// + /// Excel Vector Provider. It let converts data from MS Excel files into FeatureSet. + /// Points coordinates must be in Latitude/Longitude columns. + /// + public class ExcelVectorProvider : IVectorProvider + { + /// + /// Opens the specified file + /// + /// Path to file. + /// Feature set from file data. + /// Throws if no sheets in the file, or + /// Latitude or Longitude column not found. + public IDataSet Open(string fileName) + { + var fs = new FeatureSet + { + Name = Path.GetFileNameWithoutExtension(fileName), + Filename = fileName + }; + var extension = Path.GetExtension(fileName); + IExcelDataReader reader = null; + var stream = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); + try + { + switch (extension) + { + case ".xls": + reader = ExcelReaderFactory.CreateBinaryReader(stream); + break; + case ".xlsx": + reader = ExcelReaderFactory.CreateOpenXmlReader(stream); + break; + default: + goto case ".xls"; + } + + reader.IsFirstRowAsColumnNames = true; + var ds = reader.AsDataSet(); + if (ds.Tables.Count == 0) + { + throw new Exception("There is no sheets in the file"); + } + + // Find first table (sheet) with Latitude/Longitude columns. + DataTable table = null; + int latColumnIndex = -1; + int lngColumnIndex = -1; + for (int i = 0; i < ds.Tables.Count; i++) + { + table = ds.Tables[i]; + latColumnIndex = table.Columns.IndexOf("Latitude"); + lngColumnIndex = table.Columns.IndexOf("Longitude"); + if (latColumnIndex >= 0 && lngColumnIndex >=0) + { + break; + } + } + if (latColumnIndex == -1 || lngColumnIndex == -1) + { + throw new Exception("Latitude or Longitude column not found"); + } + Debug.Assert(table != null); + + for (int i = 0; i < table.Columns.Count; i++) + { + string sFieldName = table.Columns[i].ColumnName; + Type type = table.Columns[i].DataType; + + int uniqueNumber = 1; + string uniqueName = sFieldName; + while (fs.DataTable.Columns.Contains(uniqueName)) + { + uniqueName = sFieldName + uniqueNumber; + uniqueNumber++; + } + fs.DataTable.Columns.Add(new DataColumn(uniqueName, type)); + } + reader.Read(); + + while (reader.Read()) + { + var lat = reader.GetDouble(latColumnIndex); + var lng = reader.GetDouble(lngColumnIndex); + IGeometry geometry = new Point(lng, lat); + + IFeature feature = new Feature(geometry); + feature.DataRow = fs.DataTable.NewRow(); + for (int j = 0; j < reader.FieldCount; j++) + { + object value = reader.GetValue(j) ?? DBNull.Value; + feature.DataRow[j] = value; + } + fs.Features.Add(feature); + + } + }finally + { + if (reader != null) + { + reader.Close(); + } + stream.Close(); + } + + fs.Projection = ProjectionInfo.FromEsriString(Resources.wgs_84_esri_string); + + return fs; + } + + /// + /// Gets a dialog read filter that lists each of the file type descriptions and file extensions, delimited + /// by the | symbol. Each will appear in DotSpatial's open file dialog filter, preceded by the name provided + /// on this object. + /// + public string DialogReadFilter + { + get + { + return "Excel files (*.xlsx,*.xls)|*.xlsx;*.xls"; + } + } + + /// + /// Gets a dialog filter that lists each of the file type descriptions and extensions for a Save File Dialog. + /// Each will appear in DotSpatial's open file dialog filter, preceded by the name provided on this object. + /// In addition, the same extension mapping will be used in order to pair a string driver code to the + /// extension. + /// + public string DialogWriteFilter + { + get { return string.Empty; } + } + + /// + /// Gets a preferably short name that identifies this data provider. Example might be GDAL. + /// This will be prepended to each of the DialogReadFilter members from this plugin. + /// + public string Name + { + get { return "Excel data provider"; } + } + + /// + /// Gets or sets the progress handler to use. + /// + public IProgressHandler ProgressHandler + { + get;set; + } + + /// + /// This provides a basic description of what your provider does. + /// + public string Description + { + get { return "MS Excel data"; } + } + + /// + /// This create new method implies that this provider has the priority for creating a new file. + /// An instance of the dataset should be created and then returned. By this time, the fileName + /// will already be checked to see if it exists, and deleted if the user wants to overwrite it. + /// + /// The string fileName for the new instancePoint, Line, Polygon etc. Sometimes this will be specified, sometimes it will be "Unspecified"Boolean, true if the dataset should attempt to store data entirely in ramAn IProgressHandler for status messages. + /// + /// An IRaster + /// + public IFeatureSet CreateNew(string fileName, FeatureType featureType, bool inRam, IProgressHandler progressHandler) + { + throw new NotSupportedException(); + } + + /// + /// This tests the specified file in order to determine what type of vector the file contains. + /// This returns unspecified if the file format is not supported by this provider. + /// + /// The string fileName to test + /// + /// A FeatureType clarifying what sort of features are stored on the data type. + /// + FeatureType IVectorProvider.GetFeatureType(string fileName) + { + return FeatureType.MultiPoint; + } + } + +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/HydroDesktop.Plugins.ExcelExtension.csproj b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/HydroDesktop.Plugins.ExcelExtension.csproj new file mode 100644 index 00000000..4be92771 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/HydroDesktop.Plugins.ExcelExtension.csproj @@ -0,0 +1,165 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {32A0B21A-24AB-4E07-90E7-82F9C04C2A9D} + Library + Properties + HydroDesktop.Plugins.ExcelExtension + HydroDesktop.Plugins.ExcelExtension + v4.0 + 512 + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.ExcelExtension\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.ExcelExtension\HydroDesktop.Plugins.ExcelExtension.XML + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.ExcelExtension\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.ExcelExtension\ + DEBUG;TRACE + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.ExcelExtension\HydroDesktop.Plugins.ExcelExtension.XML + full + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.ExcelExtension\HydroDesktop.Plugins.ExcelExtension.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.ExcelExtension\ + TRACE + true + pdbonly + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.ExcelExtension\HydroDesktop.Plugins.ExcelExtension.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + Lib\ExcelDataReader_2.0.1.0\Excel.dll + True + + + False + Lib\ExcelDataReader_2.0.1.0\ICSharpCode.SharpZipLib.dll + + + + + + + + + + + True + True + Resources.resx + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/HydroDesktop.Plugins.ExcelExtension.nuspec b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/HydroDesktop.Plugins.ExcelExtension.nuspec new file mode 100644 index 00000000..bb340336 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/HydroDesktop.Plugins.ExcelExtension.nuspec @@ -0,0 +1,23 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Lib/ExcelDataReader_2.0.1.0/Excel.dll b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Lib/ExcelDataReader_2.0.1.0/Excel.dll new file mode 100644 index 00000000..2f2ca79a Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Lib/ExcelDataReader_2.0.1.0/Excel.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Lib/ExcelDataReader_2.0.1.0/ICSharpCode.SharpZipLib.dll b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Lib/ExcelDataReader_2.0.1.0/ICSharpCode.SharpZipLib.dll new file mode 100644 index 00000000..e829ebf4 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Lib/ExcelDataReader_2.0.1.0/ICSharpCode.SharpZipLib.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Lib/ExcelDataReader_2.0.1.0/readme.txt b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Lib/ExcelDataReader_2.0.1.0/readme.txt new file mode 100644 index 00000000..886206e1 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Lib/ExcelDataReader_2.0.1.0/readme.txt @@ -0,0 +1,8 @@ +For reading Excel files used Excel Data Reader with additional patches: +http://exceldatareader.codeplex.com/ + +List of applied patches (http://exceldatareader.codeplex.com/SourceControl/list/patches): +- ID 10871 + + + diff --git a/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..a9e2a743 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.ExcelExtension")] +[assembly: AssemblyDescription("HydroDesktop ExcelExtension")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("HydroDesktop Team")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.ExcelExtension")] +[assembly: AssemblyCopyright("Copyright © 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6bc37729-570a-404c-92f9-377ed7aab498")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Properties/Resources.Designer.cs new file mode 100644 index 00000000..5947a131 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Properties/Resources.Designer.cs @@ -0,0 +1,72 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.ExcelExtension.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.ExcelExtension.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223562997]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]]. + /// + internal static string wgs_84_esri_string { + get { + return ResourceManager.GetString("wgs_84_esri_string", resourceCulture); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Properties/Resources.resx new file mode 100644 index 00000000..7638f42e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/Properties/Resources.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223562997]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]] + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/packages.config b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.ExcelExtension/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/BoxPlot.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/BoxPlot.vb new file mode 100644 index 00000000..ab00d310 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/BoxPlot.vb @@ -0,0 +1,363 @@ +Option Strict On + + +''' +''' Used to calculate statistics used in box plots +''' +''' +Public Class BoxPlot + +#Region " Member Variables " + + 'point location variables + Private m_xVal As Double 'xvalue location of the boxplot + Private m_yVal_Med As Double 'yvalue of the boxplot -> median value + + 'box stats variables + Private m_mean As Double 'mean value for the boxplot + Private m_median As Double 'median value for the boxplot + Private m_quantile_25 As Double '25th quantile value + Private m_quantile_75 As Double '75th quantile value + Private m_adjLevel_Lower As Double 'lower whisker + Private m_adjLevel_Upper As Double 'upper whisker + Private m_confIntvl95_Lower As Double 'the lower 95% confidence interval on the mean + Private m_confIntvl95_Upper As Double 'the upper 95% confidence interval on the mean + Private m_confLimit95_Lower As Double 'the lower 95% confidence limit on the median + Private m_confLimit95_Upper As Double 'the upper 95% confidence limit on the median + + 'other variables + Private m_outliers_Lower As Double() 'holds the y-value only -> NOTE: use m_xVal for the x-value when plotting + Private m_outliers_Upper As Double() 'holds the y-value only -> NOTE: use m_xVal for the x-value when plotting + Private m_numOutliers_Lower As Integer 'number of lower outliers + Private m_numOutliers_Upper As Integer 'number of upper outliers + +#End Region + +#Region " Functions " + + ''' + ''' 'creates a new instance of the class, initializes member variables + ''' + ''' + Public Sub New() + m_xVal = 0 + m_yVal_Med = 0 + m_numOutliers_Lower = 0 + m_numOutliers_Upper = 0 + End Sub + + ''' + ''' adds a lower outlier value to m_outliers_Lower, updates m_numOutliers_Lower + ''' + ''' the lower outlier value to add + ''' + Public Sub AddOutlier_Lower(ByVal value As Double) + Try + 'resize the array + ReDim Preserve m_outliers_Lower(m_numOutliers_Lower) + 'add the new outlier + m_outliers_Lower(m_numOutliers_Lower) = value + 'update the count + m_numOutliers_Lower += 1 + Catch ex As Exception + Throw New Exception("Error Occured in BoxPlot.AddOutlier_Lower" & vbCrLf & ex.Message) + End Try + End Sub + + ''' + ''' add an upper outlier value to m_outliers_Upper, update m_numOutliers_Upper + ''' + ''' the upper outlier value to add + ''' + Public Sub AddOutlier_Upper(ByVal value As Double) + Try + 'resize the array + ReDim Preserve m_outliers_Upper(m_numOutliers_Upper) + 'add the new outlier + m_outliers_Upper(m_numOutliers_Upper) = value + 'update the count + m_numOutliers_Upper += 1 + Catch ex As Exception + Throw New Exception("Error Occured in BoxPlot.AddOutlier_Lower" & vbCrLf & ex.Message) + End Try + End Sub + +#End Region + +#Region " Properties " + + ''' + ''' gets or sets the xValue for the boxplot + ''' + ''' + ''' + ''' + Public Property xValue() As Double + Get + Return m_xVal + End Get + Set(ByVal value As Double) + m_xVal = value + End Set + End Property + + ''' + ''' gets or sets the yValue for the boxplot + ''' + ''' + ''' + ''' + Public Property yValue() As Double + Get + Return m_yVal_Med + End Get + Set(ByVal value As Double) + m_yVal_Med = value + End Set + End Property + + ''' + ''' gets or sets the mean value for the boxplot + ''' + ''' + ''' + ''' + Public Property mean() As Double + Get + Return m_mean + End Get + Set(ByVal value As Double) + m_mean = value + End Set + End Property + + ''' + ''' gets or sets the median value for the boxplot + ''' + ''' + ''' + ''' + Public Property median() As Double + Get + Return m_median + End Get + Set(ByVal value As Double) + m_median = value + End Set + End Property + + ''' + ''' gets or sets the 25th quantile value for the boxplot + ''' + ''' + ''' + ''' + Public Property quantile_25th() As Double + Get + Return m_quantile_25 + End Get + Set(ByVal value As Double) + m_quantile_25 = value + End Set + End Property + + ''' + ''' gets or sets the 75th quantile value for the boxplot + ''' + ''' + ''' + ''' + Public Property quantile_75th() As Double + Get + Return m_quantile_75 + End Get + Set(ByVal value As Double) + m_quantile_75 = value + End Set + End Property + + ''' + ''' gets or sets the lower whisker (Lower adjacent level) value for the boxplot + ''' + ''' + ''' + ''' + Public Property adjacentLevel_Lower() As Double + Get + Return m_adjLevel_Lower + End Get + Set(ByVal value As Double) + m_adjLevel_Lower = value + End Set + End Property + + ''' + ''' gets or sets the upper whisker (Upper adjacent level) value for the boxplot + ''' + ''' + ''' + ''' + Public Property adjacentLevel_Upper() As Double + Get + Return m_adjLevel_Upper + End Get + Set(ByVal value As Double) + m_adjLevel_Upper = value + End Set + End Property + + ''' + ''' gets or sets the Lower 95% Confidence Interval value for the boxplot + ''' + ''' + ''' + ''' + Public Property confidenceInterval95_Lower() As Double + Get + Return m_confIntvl95_Lower + End Get + Set(ByVal value As Double) + m_confIntvl95_Lower = value + End Set + End Property + + ''' + ''' gets or sets the Upper 95% Confidence Interval value for the boxplot + ''' + ''' + ''' + ''' + Public Property confidenceInterval95_Upper() As Double + Get + Return m_confIntvl95_Upper + End Get + Set(ByVal value As Double) + m_confIntvl95_Upper = value + End Set + End Property + + ''' + ''' gets or sets the Lower 95% Confidence Limit value for the boxplot + ''' + ''' + ''' + ''' + Public Property confidenceLimit95_Lower() As Double + Get + Return m_confLimit95_Lower + End Get + Set(ByVal value As Double) + m_confLimit95_Lower = value + End Set + End Property + + ''' + ''' gets or sets the Upper 95% Confidnece Limit value for the boxplot + ''' + ''' + ''' + ''' + Public Property confidenceLimit95_Upper() As Double + Get + Return m_confLimit95_Upper + End Get + Set(ByVal value As Double) + m_confLimit95_Upper = value + End Set + End Property + + ''' + ''' gets the number of lower outliers in m_outliers_Lower + ''' + ''' + ''' + ''' + Public ReadOnly Property numOutliers_Lower() As Integer + Get + Return m_numOutliers_Lower + End Get + End Property + + ''' + ''' gets the number of upper outliers in m_outliers_Upper + ''' + ''' + ''' + ''' + Public ReadOnly Property numOutliers_Upper() As Integer + Get + Return m_numOutliers_Upper + End Get + End Property + + ''' + ''' gets the collection of lower outliers + ''' + ''' + ''' + ''' + Public ReadOnly Property collectionOfOutliers_Lower() As Double() + Get + Return m_outliers_Lower + End Get + End Property + + ''' + ''' gets the collection of upper outliers + ''' + ''' + ''' + ''' + Public ReadOnly Property collectionOfOutliers_Upper() As Double() + Get + Return m_outliers_Upper + End Get + End Property + + ''' + ''' gets or sets the lower outlier value at the given index + ''' + ''' the index into m_outliers_Lower to get or set the value for + ''' + ''' + ''' + Public Property outlierValue_Lower(ByVal index As Integer) As Double + Get + If index >= 0 And index < m_numOutliers_Lower Then + Return m_outliers_Lower(index) + Else + Return -1 + End If + End Get + Set(ByVal value As Double) + If index > 0 And index < m_numOutliers_Lower Then + m_outliers_Lower(index) = value + End If + End Set + End Property + + ''' + ''' gets or sets the upper outlier value at the given index + ''' + ''' the index into m_outliers_Upper to get or set the value for + ''' + ''' + ''' + Public Property outlierValue_Upper(ByVal index As Integer) As Double + Get + If index >= 0 And index < m_numOutliers_Upper Then + Return m_outliers_Upper(index) + Else + Return -1 + End If + End Get + Set(ByVal value As Double) + If index > 0 And index < m_numOutliers_Upper Then + m_outliers_Upper(index) = value + End If + End Set + End Property + +#End Region + +End Class diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/BoxWhiskerPlot.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/BoxWhiskerPlot.Designer.vb new file mode 100644 index 00000000..172fb3d8 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/BoxWhiskerPlot.Designer.vb @@ -0,0 +1,60 @@ +Imports HydroDesktop.ZedGraphEx + +Namespace Controls + _ + Partial Class BoxWhiskerPlot + Inherits System.Windows.Forms.UserControl + + 'UserControl overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container + Me.zgBoxWhiskerPlot = New ZedGraphControlEx + Me.SuspendLayout() + ' + 'zgBoxWhiskerPlot + ' + Me.zgBoxWhiskerPlot.AutoScroll = True + Me.zgBoxWhiskerPlot.Dock = System.Windows.Forms.DockStyle.Fill + Me.zgBoxWhiskerPlot.Location = New System.Drawing.Point(0, 0) + Me.zgBoxWhiskerPlot.Name = "zgBoxWhiskerPlot" + Me.zgBoxWhiskerPlot.ScrollMaxX = 0 + Me.zgBoxWhiskerPlot.ScrollMaxY = 0 + Me.zgBoxWhiskerPlot.ScrollMaxY2 = 0 + Me.zgBoxWhiskerPlot.ScrollMinX = 0 + Me.zgBoxWhiskerPlot.ScrollMinY = 0 + Me.zgBoxWhiskerPlot.ScrollMinY2 = 0 + Me.zgBoxWhiskerPlot.Size = New System.Drawing.Size(200, 200) + Me.zgBoxWhiskerPlot.TabIndex = 0 + ' + 'cBoxWhiskerPlot + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.Controls.Add(Me.zgBoxWhiskerPlot) + Me.Name = "cBoxWhiskerPlot" + Me.Size = New System.Drawing.Size(200, 200) + Me.ResumeLayout(False) + + End Sub + Friend WithEvents zgBoxWhiskerPlot As ZedGraphControlEx + + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/BoxWhiskerPlot.resx b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/BoxWhiskerPlot.resx new file mode 100644 index 00000000..ff31a6db --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/BoxWhiskerPlot.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/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/BoxWhiskerPlot.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/BoxWhiskerPlot.vb new file mode 100644 index 00000000..a1ed1af7 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/BoxWhiskerPlot.vb @@ -0,0 +1,1108 @@ +Imports System.Drawing +Imports HydroDesktop.Plugins.GraphView.My.Resources +Imports ZedGraph + +Namespace Controls + + Public Class BoxWhiskerPlot + Implements IChart + + Private m_StdDev As Double = 0 + + Private Const db_outFld_ValDTMonth As String = "DateMonth" + Private Const db_outFld_ValDTYear As String = "DateYear" + + Public Sub New() + + ' This call is required by the Windows Form Designer. + InitializeComponent() + + ' Add any initialization after the InitializeComponent() call. + Dim gPane As GraphPane = zgBoxWhiskerPlot.MasterPane.PaneList(0) + gPane.Border.IsVisible = False + gPane.Legend.IsVisible = False + zgBoxWhiskerPlot.MasterPane.Border.IsVisible = False + End Sub + + Public Sub Plot(ByVal seriesPlotInfo As SeriesPlotInfo) Implements IPlot.Plot + Clear() + For Each oneSeriesInfo In seriesPlotInfo.GetSeriesInfo() + If oneSeriesInfo.Statistics.NumberOfObservations > oneSeriesInfo.Statistics.NumberOfCensoredObservations Then + Plot(oneSeriesInfo, oneSeriesInfo.Statistics.StandardDeviation) + ElseIf oneSeriesInfo.Statistics.NumberOfObservations = oneSeriesInfo.Statistics.NumberOfCensoredObservations Then + If CurveCount() = 0 Then SetGraphPaneTitle(MessageStrings.All_Data_Censored) + End If + Next + Refreshing() + End Sub + + Private Sub Plot(ByRef options As OneSeriesPlotInfo, ByVal e_StdDev As Double) + + Dim i As Integer + If zgBoxWhiskerPlot.MasterPane.PaneList.Count <> 0 Then + Dim cOptions = DirectCast(zgBoxWhiskerPlot.MasterPane.PaneList(0).Tag, OneSeriesPlotInfo) + If cOptions Is Nothing Then + zgBoxWhiskerPlot.MasterPane.PaneList.Clear() + End If + End If + + m_StdDev = e_StdDev + zgBoxWhiskerPlot.MasterPane.Title.IsVisible = False + + Dim gPane As GraphPane = New GraphPane + zgBoxWhiskerPlot.MasterPane.PaneList.Add(gPane) + i = zgBoxWhiskerPlot.MasterPane.PaneList.Count - 1 + Graph(zgBoxWhiskerPlot.MasterPane.PaneList(i), options) + + If zgBoxWhiskerPlot.MasterPane.PaneList.Count > 1 Then + zgBoxWhiskerPlot.IsShowHScrollBar = False + zgBoxWhiskerPlot.IsShowVScrollBar = False + End If + End Sub + + Private Function CurveCount() As Int32 + Return zgBoxWhiskerPlot.GraphPane.CurveList.Count + End Function + + Private Sub SetGraphPaneTitle(ByVal title As String) + zgBoxWhiskerPlot.GraphPane.Title.Text = title + End Sub + + Private Sub Clear() + zgBoxWhiskerPlot.MasterPane.PaneList.Clear() + zgBoxWhiskerPlot.MasterPane.PaneList.Add(New GraphPane) + zgBoxWhiskerPlot.MasterPane.PaneList(0).Title.IsVisible = True + zgBoxWhiskerPlot.MasterPane.PaneList(0).Title.Text = MessageStrings.No_Data_Plot + zgBoxWhiskerPlot.MasterPane.PaneList(0).Title.FontSpec.Size = 14 + zgBoxWhiskerPlot.MasterPane.PaneList(0).XAxis.IsVisible = False + zgBoxWhiskerPlot.MasterPane.PaneList(0).YAxis.IsVisible = False + zgBoxWhiskerPlot.MasterPane.PaneList(0).Border.IsVisible = False + zgBoxWhiskerPlot.MasterPane.PaneList(0).AxisChange() + zgBoxWhiskerPlot.MasterPane.Border.IsVisible = False + zgBoxWhiskerPlot.IsShowHScrollBar = False + zgBoxWhiskerPlot.IsShowVScrollBar = False + zgBoxWhiskerPlot.Refresh() + zgBoxWhiskerPlot.AxisChange() + End Sub + + Private Sub Graph(ByVal gPane As GraphPane, ByVal options As OneSeriesPlotInfo) + Dim m_Options = options.PlotOptions + Dim m_data = options.DataTable + + Try + If ((m_data Is Nothing) OrElse (m_data.Rows.Count < 1)) Then 'OrElse ((m_DataSet Is Nothing) OrElse (m_DataSet.Tables.Count < 1)) Then + gPane.CurveList.Clear() + gPane.GraphObjList.Clear() + gPane.Title.Text = MessageStrings.No_Data_Plot + gPane.Title.FontSpec.Size = 14 + gPane.XAxis.IsVisible = False + gPane.YAxis.IsVisible = False + zgBoxWhiskerPlot.IsShowVScrollBar = False + zgBoxWhiskerPlot.IsShowHScrollBar = False + zgBoxWhiskerPlot.Refresh() + Else + Dim i As Integer + Dim numPts As Integer 'number of points in ptList + Dim xTitle As String 'the title of the XAxis + Dim medianList As PointPairList 'collection of Median points for the Box/Whisker plot + Dim meanList As PointPairList 'collection of Mean points for the Box/Whisker plot + Dim outlierList As PointPairList = Nothing 'collection of Outlier points for the Box/Whisker plot + Dim boxes As BoxPlot() = Nothing 'collection of boxes to draw + Dim xAxisLabels As String() = Nothing 'collection of labels for the x-Axis + Dim medianLine As LineItem 'zedgraph curve item -> line that contains all of the Medain points + Dim meanLine As LineItem 'zedgraph curve item -> line that contains all of the Mean points + Dim outlierLine As LineItem 'zedgraph curve item -> line that contains all of the outliers + Dim min, max As Double 'the max,Min value + Dim showXTics As Boolean = True 'tracks if showing major tic marks along the x-axis + + '1. set the Graph Pane, graphics object + gPane.CurveList.Clear() + gPane.GraphObjList.Clear() + ''ture on scroll bar + zgBoxWhiskerPlot.IsShowVScrollBar = True + zgBoxWhiskerPlot.IsShowHScrollBar = True + zgBoxWhiskerPlot.IsAutoScrollRange = False ' IsAutoScrollRange does not work in Box Wihisker + 'Set scroll bar range manually + zgBoxWhiskerPlot.ScrollMinX = 0.5 + + '4. Calculate Data for the correct type of BoxPlot + 'get all the rows from the table with positive data, order by Date + medianList = New PointPairList() + meanList = New PointPairList() + min = 100 + max = 0 + Select Case m_Options.BoxWhiskerMethod + Case BoxWhiskerType.Monthly + 'Calculate Boxplot for Monthly data + numPts = CalcBoxPlot_Monthly(medianList, meanList, boxes, xAxisLabels, min, max, m_data) + xTitle = "Month" + showXTics = True + zgBoxWhiskerPlot.ScrollMaxX = 12.5 + Case BoxWhiskerType.Seasonal + 'Calculate Boxplot for seasonal data + numPts = CalcBoxPlot_Seasonal(medianList, meanList, boxes, xAxisLabels, min, max, m_data) + xTitle = "Season" + showXTics = True + zgBoxWhiskerPlot.ScrollMaxX = 4.5 + Case BoxWhiskerType.Yearly + 'Calculate Boxplot for Yearly data + numPts = CalcBoxPlot_Yearly(medianList, meanList, boxes, xAxisLabels, min, max, m_data) + xTitle = "Year" + showXTics = True + 'zgBoxWhiskerPlot.ScrollMaxX = + Case BoxWhiskerType.Overall + 'Calculate Boxplot for All data + numPts = CalcBoxPlot_Overall(medianList, meanList, boxes, xAxisLabels, min, max, m_data) + xTitle = "Overall" + showXTics = False + zgBoxWhiskerPlot.IsShowHScrollBar = False + Case Else + 'Calculate Boxplot for Monthly data + numPts = CalcBoxPlot_Monthly(medianList, meanList, boxes, xAxisLabels, min, max, m_data) + xTitle = "Month" + showXTics = True + zgBoxWhiskerPlot.ScrollMaxX = 12.5 + End Select + + '5. Set Graph Properties + 'Set scroll bar range manually + zgBoxWhiskerPlot.ScrollMaxY = max + (0.2 * m_StdDev) + If (min - (0.2 * m_StdDev) < 0) And (min > 0) Then + zgBoxWhiskerPlot.ScrollMinY = 0 + Else + zgBoxWhiskerPlot.ScrollMinY = min - (0.2 * m_StdDev) + End If + 'x-axis + gPane.XAxis.IsVisible = True + gPane.XAxis.Type = AxisType.Text + gPane.XAxis.Scale.TextLabels = xAxisLabels + gPane.XAxis.Title.Text = xTitle + gPane.XAxis.Title.FontSpec.Size = 12 + gPane.XAxis.MajorTic.IsAllTics = showXTics + 'y-axis + gPane.YAxis.IsVisible = True + gPane.YAxis.MajorGrid.IsVisible = True + gPane.YAxis.MajorGrid.Color = Color.Gray + 'gPane.YAxis.Type = ZedGraph.AxisType.Linear + gPane.YAxis.Title.Text = options.GetVariableWithUnitsString() + gPane.YAxis.Title.FontSpec.Size = 12 + If gPane.YAxis.Title.Text.Length > 40 Then + gPane.YAxis.Title.Text = gPane.YAxis.Title.Text.Substring(0, 40) + "..." + End If + If min > 0 And (min - (0.2 * m_StdDev)) < 0 Then + gPane.YAxis.Scale.Min = 0 + Else + gPane.YAxis.Scale.Min = min - (0.2 * m_StdDev) + End If + + gPane.YAxis.Scale.Max = max + (0.2 * m_StdDev) + gPane.YAxis.Scale.MaxGrace = 0 '0.025 '2.5% + gPane.YAxis.Scale.MinGrace = 0 '0.025 '2.5% + gPane.YAxis.Scale.MagAuto = False + + gPane.Tag = options + Dim needShowDataType = False + For Each c In zgBoxWhiskerPlot.MasterPane.PaneList + Dim cOptions = DirectCast(c.Tag, OneSeriesPlotInfo) + + For Each cc In zgBoxWhiskerPlot.MasterPane.PaneList + If Not ReferenceEquals(c, cc) Then + Dim ccOptions = DirectCast(cc.Tag, OneSeriesPlotInfo) + If ccOptions.SiteName = cOptions.SiteName And + ccOptions.VariableName = cOptions.VariableName Then + needShowDataType = True + Exit For + End If + End If + Next + Next + If Not needShowDataType Then + ' Set legend only for current curve + gPane.Title.Text = options.GetVariableWithUnitsString() + vbCrLf + "at " + options.SiteName + ", " + " ID: " + options.SeriesID.ToString + gPane.Title.FontSpec.Size = 14 + Else + ' Update legend for all curves + For Each c In zgBoxWhiskerPlot.MasterPane.PaneList() + Dim cOptions = DirectCast(c.Tag, OneSeriesPlotInfo) + c.Title.Text = cOptions.SiteName + ", " + cOptions.VariableName + ", " + cOptions.DataType + ", ID: " + cOptions.SeriesID.ToString + Next + End If + + '6. Plot the Data + If numPts > 0 Then + 'Add Median line to plot + medianLine = gPane.AddCurve("MedianPts", medianList, Color.Black, SymbolType.Circle) + medianLine.Line.IsVisible = False + medianLine.Symbol.Fill = New Fill(Color.Black) + medianLine.Symbol.Size = 5 + 'Add Mean line to plot + meanLine = gPane.AddCurve("MeanPts", meanList, Color.Red, SymbolType.Triangle) + meanLine.Line.IsVisible = False + meanLine.Symbol.Fill = New Fill(Color.Red) + meanLine.Symbol.Size = 5 + 'Draw BoxPlot,Outliers around each point + If Not (outlierList Is Nothing) Then + outlierList.Clear() + Else + outlierList = New PointPairList + End If + For i = 0 To numPts - 1 + If Not (boxes(i) Is Nothing) Then + 'Draw Box/Whisker + DrawBoxPlot(gPane, boxes(i)) + 'set Outliers Points + DrawOutliers(outlierList, boxes(i)) + End If + Next i + 'draw the Outliers on plot + outlierLine = gPane.AddCurve("Outliers", outlierList, Color.DarkGreen, SymbolType.Circle) + outlierLine.Line.IsVisible = False + outlierLine.Symbol.Fill = New Fill(Color.DarkGreen) + outlierLine.Symbol.Size = 4 + outlierLine.IsOverrideOrdinal = True + + Else + gPane.XAxis.Scale.Min = 0 + gPane.XAxis.Scale.Max = 10 + gPane.YAxis.Scale.Min = 0 + gPane.YAxis.Scale.Max = 10 + End If + + + + 'draw the plot + gPane.XAxis.IsVisible = True + gPane.YAxis.IsVisible = True + 'gPane.AxisChange() + gPane.Border.IsVisible = False + gPane.Legend.IsVisible = False + 'zgBoxWhiskerPlot.RestoreScale(zgBoxWhiskerPlot.GraphPane) + gPane.YAxis.Scale.MagAuto = False + 'zgBoxWhiskerPlot.AxisChange() + 'zgBoxWhiskerPlot.Refresh() + End If + Catch ex As Exception + Throw New Exception("Error Occured in ZGBoxWhisker.RenderGraph" & vbCrLf & ex.Message) + End Try + + End Sub + + Private Function CalcBoxPlot_Monthly(ByRef medianPtList As PointPairList, ByRef meanPtList As PointPairList, ByRef boxes As BoxPlot(), ByRef xAxisLabels As String(), ByRef min As Double, ByRef max As Double, m_data As DataTable) As Integer + 'This function calculates the Mean and Median point lists, boxes, and x-axis lables for the Monthly Box Plot, it returns the number of points created + 'Inputs: medianPtList (ByRef) -> the zedgraph PointPairList to Plot the Median values -> values are calculated in this function : input values are junk + ' meanPtList (ByRef) -> the zedgraph PointPairList to Plot the Median values -> values are calculated in this function : input values are junk + ' boxes (ByRef) -> the collection of data for drawing each box -> values are calculated in this function : input values are junk + ' xAxisLabels (ByRef) -> the collection of labels for the x-Axis -> values are calcaulted in this funciton : input values are junk + ' min (byRef) -> the minimum value -> value is calculated in this function : input value is initialized + ' max (byRef) -> the maximum value -> value is calculated in this function : input value is initialized + 'Outputs: Integer -> the number of points (boxes) in the point list being returned + ' medianPtList (ByRef) -> the Median Point values for each month + ' meanPtList (ByRef) -> the Mean Point values for each month + ' boxes (ByRef) -> the calculated values for drawing a box around each point + ' xAxisLabels (ByRef) -> the set of labels for the x-Axis -> 1 for each month + ' min (byRef) -> the minimum value of the whisker/outliers + ' max (byRef) -> the maximum value of the whisker/outliers + Const numMonths As Integer = 12 'number of months in the year -> Monthly will always have this many points + Dim i, j As Integer 'counter + Dim monthData As DataTable 'clone of m_VisPlotData -> used to pull the data for each individual month + Dim validRows As DataRow() = Nothing 'collection of valid data for the current month + Dim numValid As Integer 'number of valid rows retrieved + Try + '1. Create the Mean, Median point list + If Not (medianPtList) Is Nothing Then + If medianPtList.Count > 0 Then + medianPtList.Clear() + End If + Else + medianPtList = New PointPairList() + End If + If Not (meanPtList) Is Nothing Then + If meanPtList.Count > 0 Then + meanPtList.Clear() + End If + Else + meanPtList = New PointPairList() + End If + + '2. Create Axis labels + xAxisLabels = CreateMonthLabels() + + '3. Get data for each month, calculate stats + ReDim boxes(numMonths - 1) + monthData = m_Data.Clone + For i = 0 To numMonths - 1 + '4. get the data for the current month + 'validRows = m_VisPlotData.Select(db_fld_ValDTMonth & " = " & (i + 1) & " AND " & db_fld_ValCensorCode & " <> " & db_val_valCensorCode_lt, db_fld_ValValue & " ASC") + 'NOTE: INCLUDE the censored data + validRows = m_Data.Select(db_outFld_ValDTMonth & " = " & (i + 1), "DataValue ASC") + numValid = validRows.Length() + 'see if have any points for this month + If numValid > 0 Then + 'add the data for this month to monthData + If monthData.Rows.Count > 0 Then + monthData.Clear() + End If + For j = 0 To numValid - 1 + monthData.ImportRow(validRows(j)) + Next j + '5. calculate stats on data + If (boxes(i) Is Nothing) Then + boxes(i) = New BoxPlot + End If + CalcBoxPlotStats(numValid, monthData, boxes(i)) + + '6. calculate,add the point to ptList + 'set x,y values for this box + boxes(i).xValue = i + 1 + boxes(i).yValue = boxes(i).median + 'add the point + medianPtList.Add(i, boxes(i).yValue, xAxisLabels(i) & ", " & "Median = " & boxes(i).yValue) + meanPtList.Add(i, boxes(i).mean, xAxisLabels(i) & ", " & "Mean = " & boxes(i).mean) + + '7. Calc Outliers + 'set the min,max to Lower,Upper Adjacent Values + 'min + If boxes(i).adjacentLevel_Lower < min Then + min = boxes(i).adjacentLevel_Lower + End If + 'max + If boxes(i).adjacentLevel_Upper > max Then + max = boxes(i).adjacentLevel_Upper + End If + 'Calculate the Outliers for this set of data, set min,max values to min,Max Outlier values + CalcBoxPlotOutliers(numValid, monthData, boxes(i), min, max) + Else + medianPtList.Add(i, PointPair.Missing) + meanPtList.Add(i, PointPair.Missing) + End If + Next i + + '8. Release resources + If Not (monthData Is Nothing) Then + monthData.Dispose() + 'monthData = Nothing + End If + If Not (validRows Is Nothing) Then + ReDim validRows(0) + 'validRows = Nothing + End If + + '9. return the number of points created + Return numMonths + Catch ex As Exception + Return -1 + 'ShowError("An Error occurred while calculating the Monthly Box Plot values. " & vbCrLf & "Message = " & ex.Message) + End Try + 'return that none were created + End Function + + Private Function CalcBoxPlot_Seasonal(ByRef medianPtList As PointPairList, ByRef meanPtList As PointPairList, ByRef boxes As BoxPlot(), ByRef xAxisLabels As String(), ByRef min As Double, ByRef max As Double, m_data As DataTable) As Integer + 'This function calculates the point list, boxes, and x-axis lables for the Seasonal Box Plot, it returns the number of points created + 'Inputs: medianPtList (ByRef) -> the zedgraph PointPairList to Plot the Median values -> values are calculated in this function : input values are junk + ' meanPtList (ByRef) -> the zedgraph PointPairList to Plot the Median values -> values are calculated in this function : input values are junk + ' boxes (ByRef) -> the collection of data for drawing each box -> values are calculated in this function : input values are junk + ' xAxisLabels (ByRef) -> the collection of labels for the x-Axis -> values are calcaulted in this funciton : input values are junk + ' min (byRef) -> the minimum value -> value is calculated in this function : input value is initialized + ' max (byRef) -> the maximum value -> value is calculated in this function : input value is initialized + 'Outputs: Integer -> the number of points (boxes) in the point list being returned + ' medianPtList (ByRef) -> the Median Point values for each Season + ' meanPtList (ByRef) -> the Mean Point values for each Season + ' boxes (ByRef) -> the calculated values for drawing a box around each point + ' xAxisLabels (ByRef) -> the set of labels for the x-Axis -> 1 for each month + ' min (byRef) -> the minimum value of the whisker/outliers + ' max (byRef) -> the maximum value of the whisker/outliers + Const numSeasons As Integer = 4 'number of Seasons in the year -> Seasonal will always have this many points + Dim i, j As Integer 'counter + Dim seasonData As DataTable 'clone of m_VisPlotData -> used to pull the data for each individual month + Dim validRows As DataRow() = Nothing 'collection of valid data for the current month + Dim numValid As Integer 'number of valid rows retrieved + Try + '1. Create the Mean, Median point list + If Not (medianPtList) Is Nothing Then + If medianPtList.Count > 0 Then + medianPtList.Clear() + End If + Else + medianPtList = New PointPairList() + End If + If Not (meanPtList) Is Nothing Then + If meanPtList.Count > 0 Then + meanPtList.Clear() + End If + Else + meanPtList = New PointPairList() + End If + + '2. Create Axis labels + xAxisLabels = CreateSeasonLabels() + + '3. Get data for each month, calculate stats + ReDim boxes(numSeasons - 1) + seasonData = m_Data.Clone() + For i = 0 To numSeasons - 1 + '4. get the data for the current season + 'validRows = m_VisPlotData.Select("(" & db_fld_ValDTMonth & " = " & ((3 * i) + 1) & " OR " & db_fld_ValDTMonth & " = " & ((3 * i) + 2) & " OR " & db_fld_ValDTMonth & " = " & ((3 * i) + 3) & ") AND (" & db_fld_ValCensorCode & " <> " & db_val_valCensorCode_lt & ")", db_fld_ValValue & " ASC") + 'NOTE: INCLUDE the censored data + validRows = m_Data.Select("(" & db_outFld_ValDTMonth & " = " & ((3 * i) + 1) & " OR " & db_outFld_ValDTMonth & " = " & ((3 * i) + 2) & " OR " & db_outFld_ValDTMonth & " = " & ((3 * i) + 3) & ")", "DataValue ASC") + numValid = validRows.Length() + 'see if have any points for this month + If numValid > 0 Then + 'add the data for this month to monthData + If seasonData.Rows.Count > 0 Then + seasonData.Clear() + End If + For j = 0 To numValid - 1 + seasonData.ImportRow(validRows(j)) + Next j + '5. calculate stats on data + If (boxes(i) Is Nothing) Then + boxes(i) = New BoxPlot + End If + CalcBoxPlotStats(numValid, seasonData, boxes(i)) + + '6. calculate,add the point to ptList + 'set x,y values for this box + boxes(i).xValue = i + 1 + boxes(i).yValue = boxes(i).median + 'add the point + medianPtList.Add(i, boxes(i).yValue, xAxisLabels(i) & ", " & "Median = " & boxes(i).yValue) + meanPtList.Add(i, boxes(i).mean, xAxisLabels(i) & ", " & "Mean = " & boxes(i).mean) + + '7. Calc Outliers + 'set the min,max to Lower,Upper Adjacent Values + 'min + If boxes(i).adjacentLevel_Lower < min Then + min = boxes(i).adjacentLevel_Lower + End If + 'max + If boxes(i).adjacentLevel_Upper > max Then + max = boxes(i).adjacentLevel_Upper + End If + 'Calculate the Outliers for this set of data, set min,max values to min,Max Outlier values + CalcBoxPlotOutliers(numValid, seasonData, boxes(i), min, max) + Else + medianPtList.Add(i, PointPair.Missing) + meanPtList.Add(i, PointPair.Missing) + End If + Next i + + '8. Release resources + If Not (seasonData Is Nothing) Then + seasonData.Dispose() + 'seasonData = Nothing + End If + If Not (validRows Is Nothing) Then + ReDim validRows(0) + 'validRows = Nothing + End If + + '9. return the number of points created + Return numSeasons + Catch ex As Exception + Return -1 + 'ShowError("An Error occurred while calculating the Seasonal Box Plot values. " & vbCrLf & "Message = " & ex.Message) + End Try + 'return that none were created + End Function + + Private Function CalcBoxPlot_Yearly(ByRef medianPtList As PointPairList, ByRef meanPtList As PointPairList, ByRef boxes As BoxPlot(), ByRef xAxisLabels As String(), ByRef min As Double, ByRef max As Double, m_data As DataTable) As Integer + 'This function calculates the point list, boxes, and x-axis lables for the Yearly Box Plot, it returns the number of points created + 'Inputs: medianPtList (ByRef) -> the zedgraph PointPairList to Plot the Median values -> values are calculated in this function : input values are junk + ' meanPtList (ByRef) -> the zedgraph PointPairList to Plot the Median values -> values are calculated in this function : input values are junk + ' boxes (ByRef) -> the collection of data for drawing each box -> values are calculated in this function : input values are junk + ' xAxisLabels (ByRef) -> the collection of labels for the x-Axis -> values are calcaulted in this funciton : input values are junk + ' min (byRef) -> the minimum value -> value is calculated in this function : input value is initialized + ' max (byRef) -> the maximum value -> value is calculated in this function : input value is initialized + 'Outputs: Integer -> the number of points (boxes) in the point list being returned + ' medianPtList (ByRef) -> the Median Point values for each year + ' meanPtList (ByRef) -> the Mean Point values for each year + ' boxes (ByRef) -> the calculated values for drawing a box around each point + ' xAxisLabels (ByRef) -> the set of labels for the x-Axis -> 1 for each Year + ' min (byRef) -> the minimum value of the whisker/outliers + ' max (byRef) -> the maximum value of the whisker/outliers + Dim numYears As Integer = 0 'number of years in selected data + Dim i, j As Integer 'counter + Dim yearData As DataTable 'clone of m_VisPlotData -> used to pull the data for each individual month + Dim validRows As DataRow() = Nothing 'collection of valid data for the current month + Dim numValid As Integer = Nothing 'number of valid rows retrieved + Dim startYear As Integer 'the beginning year of the data + Dim endYear As Integer 'the ending year of the data + Dim curYear As Integer 'the current year evaluating data for + Try + '1. Create Axis labels + numYears = CreateYearLabels(xAxisLabels, startYear, endYear, m_data) + 'make sure there is at least 1 year + If numYears <= 0 Then + 'return 0 + Exit Try + End If + + '2. Create the Mean, Median point list + If Not (medianPtList) Is Nothing Then + If medianPtList.Count > 0 Then + medianPtList.Clear() + End If + Else + medianPtList = New PointPairList() + End If + If Not (meanPtList) Is Nothing Then + If meanPtList.Count > 0 Then + meanPtList.Clear() + End If + Else + meanPtList = New PointPairList() + End If + + '3. Get data for each month, calculate stats + ReDim boxes(numYears - 1) + yearData = m_Data.Clone() + For i = 0 To numYears - 1 + '4. get the data for the current year + 'TODO: Michelle: adjust this for Year Data + curYear = CInt(xAxisLabels(i)) + 'validRows = m_VisPlotData.Select(db_fld_ValDTYear & " = " & (curYear) & " AND " & db_fld_ValCensorCode & " <> " & db_val_valCensorCode_lt, db_fld_ValValue & " ASC") + 'NOTE: INCLUDE censored data + 'Dim startday As String = curYear.ToString + "-01-01" + 'Dim endday As String = curYear.ToString + "-12-31" + validRows = m_Data.Select(db_outFld_ValDTYear & "=" & (curYear), "DataValue ASC") + numValid = validRows.Length() + 'see if have any points for this month + If numValid > 0 Then + 'add the data for this month to monthData + If yearData.Rows.Count > 0 Then + yearData.Clear() + End If + For j = 0 To numValid - 1 + yearData.ImportRow(validRows(j)) + Next j + '5. calculate stats on data + If (boxes(i) Is Nothing) Then + boxes(i) = New BoxPlot + End If + CalcBoxPlotStats(numValid, yearData, boxes(i)) + + '6. calculate,add the point to ptList + 'set x,y values for this box + boxes(i).xValue = i + 1 + boxes(i).yValue = boxes(i).median + 'add the point + medianPtList.Add(i, boxes(i).yValue, xAxisLabels(i) & ", " & "Median = " & boxes(i).yValue) + meanPtList.Add(i, boxes(i).mean, xAxisLabels(i) & ", " & "Mean = " & boxes(i).mean) + + '7. Calc Outliers + 'set the min,max to Lower,Upper Adjacent Values + 'min + If boxes(i).adjacentLevel_Lower < min Then + min = boxes(i).adjacentLevel_Lower + End If + 'max + If boxes(i).adjacentLevel_Upper > max Then + max = boxes(i).adjacentLevel_Upper + End If + 'Calculate the Outliers for this set of data, set min,max values to min,Max Outlier values + CalcBoxPlotOutliers(numValid, yearData, boxes(i), min, max) + Else + medianPtList.Add(i, PointPair.Missing) + meanPtList.Add(i, PointPair.Missing) + End If + Next i + + '8. Release resources + If Not (yearData Is Nothing) Then + yearData.Dispose() + yearData = Nothing + End If + If Not (validRows Is Nothing) Then + ReDim validRows(0) + validRows = Nothing + End If + + '9. return the number of points created + Return numYears + Catch ex As Exception + Return -1 + 'ShowError("An Error occurred while calculating the Yearly Box Plot values. " & vbCrLf & "Message = " & ex.Message) + End Try + 'return that none were created + Return 0 + End Function + + Private Function CalcBoxPlot_Overall(ByRef medianPtList As PointPairList, ByRef meanPtList As PointPairList, ByRef boxes As BoxPlot(), ByRef xAxisLabels As String(), ByRef min As Double, ByRef max As Double, m_data As DataTable) As Integer + 'This function calculates the point list, boxes, and x-axis labels for the Overall Box Plot, it returns the number of points created + 'Inputs: medianPtList (ByRef) -> the zedgraph PointPairList to Plot the Median value -> value is calculated in this function : input values are junk + ' meanPtList (ByRef) -> the zedgraph PointPairList to Plot the Median value -> value is calculated in this function : input values are junk + ' boxes (ByRef) -> the collection of data for drawing each box -> values are calculated in this function : input values are junk + ' xAxisLabels (ByRef) -> the collection of labels for the x-Axis -> values are calcaulted in this funciton : input values are junk + ' min (byRef) -> the minimum value -> value is calculated in this function : input value is initialized + ' max (byRef) -> the maximum value -> value is calculated in this function : input value is initialized + 'Outputs: Integer -> the number of points (boxes) in the point list being returned + ' medianPtList (ByRef) -> the overall Median Point value + ' meanPtList (ByRef) -> the overall Mean Point value + ' boxes (ByRef) -> the calculated values for drawing a box around each point + ' xAxisLabels (ByRef) -> the set of labels for the x-Axis -> 1 total + ' min (byRef) -> the minimum value of the whisker/outliers + ' max (byRef) -> the maximum value of the whisker/outliers + Const numPts As Integer = 5 'number of months in the year -> Overall will always have this many points + Dim validRows() As DataRow + Dim numValid As Integer 'number of valid rows retrieved + Dim overallData As DataTable + Dim i As Integer + Try + '1. Create the Mean, Median point list + If Not (medianPtList) Is Nothing Then + If medianPtList.Count > 0 Then + medianPtList.Clear() + End If + Else + medianPtList = New PointPairList() + End If + If Not (meanPtList) Is Nothing Then + If meanPtList.Count > 0 Then + meanPtList.Clear() + End If + Else + meanPtList = New PointPairList() + End If + + '2. Create Axis labels + ReDim xAxisLabels(4) + 'xAxisLabels(2) = "Overall" + + '3. Get data for each month, calculate stats + ReDim boxes(numPts - 1) + overallData = m_Data.Clone() + '4. get the valid data + 'TODO: Michelle: !!Find out if ONLY retrieving Valid values -> censorCode <> "lt", or all values!! + validRows = m_Data.Select("", "DataValue ASC") + numValid = validRows.Length() + 'see if have any points + If numValid > 0 Then + 'add the data to overallData + For i = 0 To numValid - 1 + overallData.ImportRow(validRows(i)) + Next i + '5. calculate stats on data + If (boxes(2) Is Nothing) Then + boxes(2) = New BoxPlot + End If + CalcBoxPlotStats(numValid, overallData, boxes(2)) + + '6. calculate,add the point to ptList + 'set x,y values for this box + boxes(2).xValue = 3 + boxes(2).yValue = boxes(2).median + 'add the points + medianPtList.Add(1, PointPair.Missing) + meanPtList.Add(1, PointPair.Missing) + medianPtList.Add(2, PointPair.Missing) + meanPtList.Add(2, PointPair.Missing) + medianPtList.Add(3, boxes(2).yValue, xAxisLabels(2) & ", " & "Median = " & boxes(2).yValue) + meanPtList.Add(3, boxes(2).mean, xAxisLabels(2) & ", " & "Mean = " & boxes(2).mean) + medianPtList.Add(4, PointPair.Missing) + meanPtList.Add(4, PointPair.Missing) + medianPtList.Add(5, PointPair.Missing) + meanPtList.Add(5, PointPair.Missing) + + '7. Calc Outliers + 'set the min,max to Lower,Upper Adjacent Values + 'min + If boxes(2).adjacentLevel_Lower < min Then + min = boxes(2).adjacentLevel_Lower + End If + 'max + If boxes(2).adjacentLevel_Upper > max Then + max = boxes(2).adjacentLevel_Upper + End If + 'Calculate the Outliers for this set of data, set min,max values to min,Max Outlier values + CalcBoxPlotOutliers(numValid, m_Data, boxes(2), min, max) + End If + + '8. return the number of points created + Return numPts + Catch ex As Exception + Return -1 + 'ShowError("An Error occurred while calculating the Overall Box Plot values. " & vbCrLf & "Message = " & ex.Message) + End Try + 'return that none were created + End Function + + Private Sub CalcBoxPlotOutliers(ByVal numRows As Integer, ByRef monthData As DataTable, ByRef boxData As BoxPlot, ByRef min As Double, ByRef max As Double) + ' + 'Inputs: + 'Outputs: + Dim i As Integer 'counter + Dim curValue As Double 'current value checking + Try + '1. move through values + For i = 0 To numRows - 1 + 'get the value + curValue = monthData.Rows(i).Item("DataValue") + '2. find those that are below the Lower Adjacent Level -> add them to boxData.Outliers_Lower + If (curValue < boxData.adjacentLevel_Lower) Then + boxData.AddOutlier_Lower(curValue) + End If + '3. find those that are above the Upper Adjacent Level -> add them to boxData.Outliers_Upper + If (curValue > boxData.adjacentLevel_Upper) Then + boxData.AddOutlier_Upper(curValue) + End If + '4. compare to min,max + 'min + If curValue < min Then + min = curValue + End If + 'max + If curValue > max Then + max = curValue + End If + Next i + Catch ex As Exception + Clear() + 'ShowError("An Error occurred while calculating the the Outliers for the Box Plot on the Visualize Tab." & vbCrLf & "Message = " & ex.Message) + End Try + End Sub + + Private Sub DrawBoxPlot(ByRef gPane As GraphPane, ByVal boxData As BoxPlot) + 'Dim x1, y1, x2, y2 As Double 'x,y values for bounds of rectangles + Dim upperBoxShaded As BoxObj 'shaded box between 75% quantile and Upper 95% Confidence Limit on the Median + Dim lowerBoxShaded As BoxObj 'shaded box between 25% quantile and Lower 95% Confidence Limit on the Median + Dim hourglassPts As PointD() 'points for the Hourglass outline to make up the box outline + Dim hourglassOutline As PolyObj 'Outline for the Hourglass + Dim confIntervalLine As LineObj 'Line in center -> 95% Confidence Interval on the Mean + Dim whisker_Upper As LineObj 'Upper Whisker -> Upper Adjacent Level + Dim lineToWhisker_Upper As LineObj 'Line from Upper Whisker to 75% quantile (top of box) + Dim whisker_Lower As LineObj 'Lower Whisker -> Lower Adjacent Level + Dim lineToWhisker_Lower As LineObj 'Line from Lower Whisker to 25% quantil (bottom of box) + Try + '1. Draw Confidence Interval -> red line + confIntervalLine = New LineObj(Color.Red, boxData.xValue, boxData.confidenceInterval95_Upper, boxData.xValue, boxData.confidenceInterval95_Lower) + confIntervalLine.IsClippedToChartRect = True + confIntervalLine.ZOrder = ZOrder.E_BehindCurves + gPane.GraphObjList.Add(confIntervalLine) + + '2. Draw Upper Whisker, line + 'whisker + whisker_Upper = New LineObj(Color.Black, boxData.xValue - 0.15, boxData.adjacentLevel_Upper, boxData.xValue + 0.15, boxData.adjacentLevel_Upper) + whisker_Upper.IsClippedToChartRect = True + whisker_Upper.ZOrder = ZOrder.E_BehindCurves + whisker_Upper.Line.Width = 2 + gPane.GraphObjList.Add(whisker_Upper) + 'line between whisker, top of hourglass + lineToWhisker_Upper = New LineObj(Color.Black, boxData.xValue, boxData.adjacentLevel_Upper, boxData.xValue, boxData.quantile_75th) + lineToWhisker_Upper.IsClippedToChartRect = True + lineToWhisker_Upper.ZOrder = ZOrder.E_BehindCurves + lineToWhisker_Upper.Line.Width = 2 + gPane.GraphObjList.Add(lineToWhisker_Upper) + + '3. Draw Lower Whisker, line + 'whisker + whisker_Lower = New LineObj(Color.Black, boxData.xValue - 0.15, boxData.adjacentLevel_Lower, boxData.xValue + 0.15, boxData.adjacentLevel_Lower) + whisker_Lower.IsClippedToChartRect = True + whisker_Lower.ZOrder = ZOrder.E_BehindCurves + whisker_Lower.Line.Width = 2 + gPane.GraphObjList.Add(whisker_Lower) + 'line between whisker, top of hourglass + lineToWhisker_Lower = New LineObj(Color.Black, boxData.xValue, boxData.quantile_25th, boxData.xValue, boxData.adjacentLevel_Lower) + lineToWhisker_Lower.IsClippedToChartRect = True + lineToWhisker_Lower.ZOrder = ZOrder.E_BehindCurves + lineToWhisker_Lower.Line.Width = 2 + gPane.GraphObjList.Add(lineToWhisker_Lower) + + '4. Draw Hourglass outline + 'create points + ReDim hourglassPts(10) + 'top + hourglassPts(0) = New PointD(boxData.xValue - 0.3, boxData.quantile_75th) + hourglassPts(1) = New PointD(boxData.xValue + 0.3, boxData.quantile_75th) + 'right side + hourglassPts(2) = New PointD(boxData.xValue + 0.3, boxData.confidenceLimit95_Upper) + hourglassPts(3) = New PointD(boxData.xValue + 0.15, boxData.median) + hourglassPts(4) = New PointD(boxData.xValue + 0.3, boxData.confidenceLimit95_Lower) + 'bottom + hourglassPts(5) = New PointD(boxData.xValue + 0.3, boxData.quantile_25th) + hourglassPts(6) = New PointD(boxData.xValue - 0.3, boxData.quantile_25th) + 'left side + hourglassPts(7) = New PointD(boxData.xValue - 0.3, boxData.confidenceLimit95_Lower) + hourglassPts(8) = New PointD(boxData.xValue - 0.15, boxData.median) + hourglassPts(9) = New PointD(boxData.xValue - 0.3, boxData.confidenceLimit95_Upper) + 'repeat 1st point -> end of poly + hourglassPts(10) = New PointD(boxData.xValue - 0.3, boxData.quantile_75th) + 'create outline + hourglassOutline = New PolyObj(hourglassPts) + hourglassOutline.Border.Color = Color.SlateGray + hourglassOutline.Border.IsVisible = True + hourglassOutline.Fill.IsVisible = False + hourglassOutline.IsClippedToChartRect = True + hourglassOutline.ZOrder = ZOrder.E_BehindCurves + gPane.GraphObjList.Add(hourglassOutline) + + '5. Draw Upper shaded box ->Upper 95% Confidence Limit to 75% quantile value + If boxData.quantile_75th > boxData.confidenceLimit95_Upper Then + upperBoxShaded = New BoxObj(1, 1, 1, 1) + 'If upperBoxShaded.Location Is Nothing Then + ' upperBoxShaded.Location = New ZedGraph.Location() + 'End If + upperBoxShaded.Location.X = boxData.xValue - 0.3 + upperBoxShaded.Location.Width = 0.6 + upperBoxShaded.Location.Y = boxData.quantile_75th + upperBoxShaded.Location.Height = -Math.Round(boxData.quantile_75th - boxData.confidenceLimit95_Upper, 3) + 'Else + 'upperBoxShaded.Location.Y = boxData.confidenceLimit95_Upper + 'upperBoxShaded.Location.Height = Math.Round(boxData.quantile_75th - boxData.confidenceLimit95_Upper, 3) + + upperBoxShaded.Border.IsVisible = False + upperBoxShaded.Fill = New Fill(Color.LightGray) + upperBoxShaded.IsClippedToChartRect = True + upperBoxShaded.ZOrder = ZOrder.E_BehindCurves + gPane.GraphObjList.Add(upperBoxShaded) + End If + '6. Draw Lower shaded box ->Lower 95% Confidence Limit to 25% quantile value + If boxData.confidenceLimit95_Lower > boxData.quantile_25th Then + lowerBoxShaded = New BoxObj(1, 1, 1, 1) + 'If upperBoxShaded.Location Is Nothing Then + ' upperBoxShaded.Location = New ZedGraph.Location() + 'End If + lowerBoxShaded.Location.X = boxData.xValue - 0.3 + lowerBoxShaded.Location.Width = 0.6 + + lowerBoxShaded.Location.Y = boxData.confidenceLimit95_Lower + lowerBoxShaded.Location.Height = -Math.Round(boxData.confidenceLimit95_Lower - boxData.quantile_25th, 3) + 'Else + 'lowerBoxShaded.Location.Y = boxData.quantile_25th + 'lowerBoxShaded.Location.Height = Math.Round(boxData.confidenceLimit95_Lower - boxData.quantile_25th, 3) + lowerBoxShaded.Border.IsVisible = False + lowerBoxShaded.Fill = New Fill(Color.LightGray) + lowerBoxShaded.IsClippedToChartRect = True + lowerBoxShaded.ZOrder = ZOrder.E_BehindCurves + gPane.GraphObjList.Add(lowerBoxShaded) + End If + + '7. Release resources + If Not (hourglassPts Is Nothing) Then + ReDim hourglassPts(0) + 'hourglassPts = Nothing + End If + Catch ex As Exception + Clear() + 'ShowError("An Error occurred while drawing a Box/Whisker for the Box Plot. " & vbCrLf & "Message = " & ex.Message) + End Try + End Sub + + Private Sub DrawOutliers(ByRef outlierPtList As PointPairList, ByVal curBoxData As BoxPlot) 'ByRef gPane As ZedGraph.GraphPane, ByVal boxData As clsBoxPlot) + Dim i As Integer 'counter + Dim curValue As Double + + Try + '1. validate data + If curBoxData Is Nothing Then + Exit Try + End If + If outlierPtList Is Nothing Then + outlierPtList = New PointPairList + End If + + '2. Add Lower Outliers + If curBoxData.numOutliers_Lower > 0 Then + For i = 0 To curBoxData.numOutliers_Lower - 1 + curValue = curBoxData.outlierValue_Lower(i) + If curValue <> -1 Then + outlierPtList.Add(curBoxData.xValue, curValue) + End If + Next i + End If + + '3. Draw Upper Outliers + If curBoxData.numOutliers_Upper > 0 Then + For i = 0 To curBoxData.numOutliers_Upper - 1 + curValue = curBoxData.outlierValue_Upper(i) + If curValue <> -1 Then + 'add the point + outlierPtList.Add(curBoxData.xValue, curValue) + End If + Next i + End If + Catch ex As Exception + Clear() + 'ShowError("An Error occurred while drawing the Outliers for the Box Plot." & vbCrLf & "Message = " & ex.Message) + End Try + End Sub + + Private Function CreateMonthLabels() As String() + Dim labels(11) As String + 'set the labels for each month + labels(0) = "Jan" + labels(1) = "Feb" + labels(2) = "Mar" + labels(3) = "Apr" + labels(4) = "May" + labels(5) = "Jun" + labels(6) = "Jul" + labels(7) = "Aug" + labels(8) = "Sep" + labels(9) = "Oct" + labels(10) = "Nov" + labels(11) = "Dec" + + Return labels + End Function + + Private Function CreateSeasonLabels() As String() + Dim labels(3) As String + 'set the labels for each month + labels(0) = "Winter" + labels(1) = "Spring" + labels(2) = "Summer" + labels(3) = "Fall" + + Return labels + End Function + + Private Function CreateYearLabels(ByRef labels As String(), ByRef startYear As Integer, ByRef endYear As Integer, m_data As DataTable) As Integer + Dim i As Integer 'counter + Dim numYears As Integer 'count of years in selected data + Dim curYear As Integer 'current year creating a label for + Try + '1. calculate the start,end year + startYear = Convert.ToDateTime(m_data.Compute("Min(LocalDateTime)", "")).Year + endYear = Convert.ToDateTime(m_data.Compute("Max(LocalDateTime)", "")).Year + + '2. calculate the number of years + numYears = (endYear - startYear) + 1 + + '3. create the labels -> one for each year + ReDim labels(numYears - 1) + For i = 0 To numYears - 1 + curYear = startYear + i + If (curYear >= startYear) AndAlso (curYear <= endYear) Then + labels(i) = curYear + End If + Next i + + Return numYears + Catch ex As Exception + Return -1 + 'ShowError("An Error occurred while creating the Year labels for the Box/Whisker Plot." & vbCrLf & "Message = " & ex.Message) + End Try + 'return 0 + End Function + + Private Sub CalcBoxPlotStats(ByVal numRows As Integer, ByRef data As DataTable, ByRef boxData As BoxPlot) + 'Calculates and stores the stats for the given set of data for a BoxPlot + 'Inputs: data (ByRef) -> the set of data to calculate the stats on + ' boxData (ByRef) -> the clsBoxPlot object to store the calculated data into -> NOTE: the xValue should have already been set + 'Outputs: data (ByRef) -> + ' boxData (ByRef) -> the calculated stats so can draw the boxPlot at this point + Dim variance As Double 'the variance of the values in data + Dim stdDev As Double 'the standard deviation of the values in data + Dim max As Double 'the maximum value in data + Dim min As Double 'the minimum value in data + Dim v As Double 'used to calculate the lower,upper whiskers (adjacent levels) + Try + 'make sure have data + If numRows = 0 OrElse data.Rows.Count <= 0 Then + Exit Try + End If + + '1. Calculate the 25% and 75% quantile values + boxData.quantile_25th = data.Rows(Math.Floor(numRows / 4)).Item("DataValue") + boxData.quantile_75th = data.Rows(Math.Floor(numRows / 4) * 3).Item("DataValue") + + '2. calculate the Mean, Median + 'Mean + boxData.mean = Math.Round(Convert.ToDouble(data.Compute("Avg(DataValue)", "")), 3) + 'Median + If (numRows Mod 2 = 0 And numRows > 1) Then + 'even number of values -> take the middle two and average them + Dim val1 As Double 'first of the middle values -> (numRows/2) - 1 + Dim val2 As Double 'second of the middle value -> (numrows/2) + val1 = data.Rows((numRows / 2) - 1).Item("DataValue") + val2 = data.Rows(numRows / 2).Item("DataValue") + boxData.median = (val1 + val2) / 2 + Else + boxData.median = data.Rows(Math.Ceiling((numRows / 2) - 1)).Item("DataValue") + End If + + '3. Calculate the upper and lower whiskers + max = data.Compute("Max(DataValue)", "") + min = data.Compute("Min(DataValue)", "") + v = (boxData.quantile_75th - boxData.quantile_25th) * 1.5 + 'lower whisker -> Lower Adjacent Level + If (boxData.quantile_25th - v) < min Then + boxData.adjacentLevel_Lower = min + Else + boxData.adjacentLevel_Lower = boxData.quantile_25th - v + End If + 'upper whisker -> Upper Adjacent Level + If (boxData.quantile_75th + v) > max Then + boxData.adjacentLevel_Upper = max + Else + boxData.adjacentLevel_Upper = boxData.quantile_75th + v + End If + + '4. Calculate the 95% Confidence Interval on the Mean,Calculate the 95% Confidence Limit on the Median + If Not (data.Compute("Var(DataValue)", "") Is DBNull.Value) Then + variance = data.Compute("Var(DataValue)", "") + stdDev = Math.Sqrt(variance) + Else + stdDev = 0 + End If + 'Confidence Interval on Mean + boxData.confidenceInterval95_Lower = boxData.mean - 1.96 * (stdDev / (Math.Sqrt(numRows))) + boxData.confidenceInterval95_Upper = boxData.mean + 1.96 * (stdDev / (Math.Sqrt(numRows))) + 'Confidence Limit on Median + boxData.confidenceLimit95_Lower = boxData.median - 1.96 * (stdDev / (Math.Sqrt(numRows))) + boxData.confidenceLimit95_Upper = boxData.median + 1.96 * (stdDev / (Math.Sqrt(numRows))) + Catch ex As Exception + Clear() + 'ShowError("An Error occurred while calculating the Box Plot Statistics for the Visualize Tab. " & vbCrLf & "Message = " & ex.Message) + End Try + End Sub + + Private Sub Refreshing() + zgBoxWhiskerPlot.AxisChange() + zgBoxWhiskerPlot.Refresh() + End Sub + + Private Sub Remove(ByVal ID As Integer) + Dim PaneListCopy As New PaneList + For i = 0 To zgBoxWhiskerPlot.MasterPane.PaneList.Count - 1 + PaneListCopy.Add(zgBoxWhiskerPlot.MasterPane.PaneList(i)) + Next + + zgBoxWhiskerPlot.MasterPane.PaneList.Clear() + + For i = 0 To PaneListCopy.Count - 1 + If Not (PaneID(PaneListCopy(i)) = ID) Then + zgBoxWhiskerPlot.MasterPane.PaneList.Add(PaneListCopy(i)) + End If + + Next + End Sub + + Private Function PaneID(ByVal pane As GraphPane) As Integer + Dim cOptions = DirectCast(pane.Tag, OneSeriesPlotInfo) + If cOptions Is Nothing Then Return Nothing + Return cOptions.SeriesID + End Function + + Public Property ShowPointValues() As Boolean Implements IChart.ShowPointValues + Get + Return zgBoxWhiskerPlot.IsShowPointValues + End Get + Set(ByVal value As Boolean) + zgBoxWhiskerPlot.IsShowPointValues = value + End Set + End Property + + Public Sub ZoomOutAll() Implements IChart.ZoomOutAll + zgBoxWhiskerPlot.ZoomOutAll(zgBoxWhiskerPlot.GraphPane) + End Sub + + Public Sub ZoomIn() Implements IChart.ZoomIn + zgBoxWhiskerPlot.ZoomIn() + End Sub + + Public Sub ZoomOut() Implements IChart.ZoomOut + zgBoxWhiskerPlot.ZoomOut(zgBoxWhiskerPlot.GraphPane) + End Sub + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorPalette.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorPalette.Designer.vb new file mode 100644 index 00000000..36005930 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorPalette.Designer.vb @@ -0,0 +1,196 @@ + _ +Partial Class ColorPalette + Inherits System.Windows.Forms.UserControl + + 'UserControl overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.btnbothc1 = New System.Windows.Forms.Button() + Me.btnlinec1 = New System.Windows.Forms.Button() + Me.btnpointc1 = New System.Windows.Forms.Button() + Me.lblc19 = New System.Windows.Forms.Label() + Me.lblc18 = New System.Windows.Forms.Label() + Me.lblc17 = New System.Windows.Forms.Label() + Me.lblc16 = New System.Windows.Forms.Label() + Me.lblc15 = New System.Windows.Forms.Label() + Me.lblc14 = New System.Windows.Forms.Label() + Me.lblc13 = New System.Windows.Forms.Label() + Me.lblc12 = New System.Windows.Forms.Label() + Me.lblc11 = New System.Windows.Forms.Label() + Me.lblc10 = New System.Windows.Forms.Label() + Me.SuspendLayout() + ' + 'btnbothc1 + ' + Me.btnbothc1.Dock = System.Windows.Forms.DockStyle.Bottom + Me.btnbothc1.Location = New System.Drawing.Point(0, 142) + Me.btnbothc1.Name = "btnbothc1" + Me.btnbothc1.Size = New System.Drawing.Size(75, 23) + Me.btnbothc1.TabIndex = 25 + Me.btnbothc1.Text = "Use for both" + Me.btnbothc1.UseVisualStyleBackColor = True + ' + 'btnlinec1 + ' + Me.btnlinec1.Dock = System.Windows.Forms.DockStyle.Bottom + Me.btnlinec1.Location = New System.Drawing.Point(0, 165) + Me.btnlinec1.Name = "btnlinec1" + Me.btnlinec1.Size = New System.Drawing.Size(75, 23) + Me.btnlinec1.TabIndex = 24 + Me.btnlinec1.Text = "Use for line" + Me.btnlinec1.UseVisualStyleBackColor = True + ' + 'btnpointc1 + ' + Me.btnpointc1.Dock = System.Windows.Forms.DockStyle.Bottom + Me.btnpointc1.Location = New System.Drawing.Point(0, 188) + Me.btnpointc1.Name = "btnpointc1" + Me.btnpointc1.Size = New System.Drawing.Size(75, 23) + Me.btnpointc1.TabIndex = 23 + Me.btnpointc1.Text = "Use for point" + Me.btnpointc1.UseVisualStyleBackColor = True + ' + 'lblc19 + ' + Me.lblc19.BackColor = System.Drawing.SystemColors.ButtonHighlight + Me.lblc19.Dock = System.Windows.Forms.DockStyle.Top + Me.lblc19.Location = New System.Drawing.Point(0, 117) + Me.lblc19.Name = "lblc19" + Me.lblc19.Size = New System.Drawing.Size(75, 13) + Me.lblc19.TabIndex = 22 + ' + 'lblc18 + ' + Me.lblc18.BackColor = System.Drawing.SystemColors.ButtonHighlight + Me.lblc18.Dock = System.Windows.Forms.DockStyle.Top + Me.lblc18.Location = New System.Drawing.Point(0, 104) + Me.lblc18.Name = "lblc18" + Me.lblc18.Size = New System.Drawing.Size(75, 13) + Me.lblc18.TabIndex = 21 + ' + 'lblc17 + ' + Me.lblc17.BackColor = System.Drawing.SystemColors.ButtonHighlight + Me.lblc17.Dock = System.Windows.Forms.DockStyle.Top + Me.lblc17.Location = New System.Drawing.Point(0, 91) + Me.lblc17.Name = "lblc17" + Me.lblc17.Size = New System.Drawing.Size(75, 13) + Me.lblc17.TabIndex = 20 + ' + 'lblc16 + ' + Me.lblc16.BackColor = System.Drawing.SystemColors.ButtonHighlight + Me.lblc16.Dock = System.Windows.Forms.DockStyle.Top + Me.lblc16.Location = New System.Drawing.Point(0, 78) + Me.lblc16.Name = "lblc16" + Me.lblc16.Size = New System.Drawing.Size(75, 13) + Me.lblc16.TabIndex = 19 + ' + 'lblc15 + ' + Me.lblc15.BackColor = System.Drawing.SystemColors.ButtonHighlight + Me.lblc15.Dock = System.Windows.Forms.DockStyle.Top + Me.lblc15.Location = New System.Drawing.Point(0, 65) + Me.lblc15.Name = "lblc15" + Me.lblc15.Size = New System.Drawing.Size(75, 13) + Me.lblc15.TabIndex = 18 + ' + 'lblc14 + ' + Me.lblc14.BackColor = System.Drawing.SystemColors.ButtonHighlight + Me.lblc14.Dock = System.Windows.Forms.DockStyle.Top + Me.lblc14.Location = New System.Drawing.Point(0, 52) + Me.lblc14.Name = "lblc14" + Me.lblc14.Size = New System.Drawing.Size(75, 13) + Me.lblc14.TabIndex = 17 + ' + 'lblc13 + ' + Me.lblc13.BackColor = System.Drawing.SystemColors.ButtonHighlight + Me.lblc13.Dock = System.Windows.Forms.DockStyle.Top + Me.lblc13.Location = New System.Drawing.Point(0, 39) + Me.lblc13.Name = "lblc13" + Me.lblc13.Size = New System.Drawing.Size(75, 13) + Me.lblc13.TabIndex = 16 + ' + 'lblc12 + ' + Me.lblc12.BackColor = System.Drawing.SystemColors.ButtonHighlight + Me.lblc12.Dock = System.Windows.Forms.DockStyle.Top + Me.lblc12.Location = New System.Drawing.Point(0, 26) + Me.lblc12.Name = "lblc12" + Me.lblc12.Size = New System.Drawing.Size(75, 13) + Me.lblc12.TabIndex = 15 + ' + 'lblc11 + ' + Me.lblc11.BackColor = System.Drawing.SystemColors.ButtonHighlight + Me.lblc11.Dock = System.Windows.Forms.DockStyle.Top + Me.lblc11.Location = New System.Drawing.Point(0, 13) + Me.lblc11.Name = "lblc11" + Me.lblc11.Size = New System.Drawing.Size(75, 13) + Me.lblc11.TabIndex = 14 + ' + 'lblc10 + ' + Me.lblc10.BackColor = System.Drawing.SystemColors.ButtonHighlight + Me.lblc10.Dock = System.Windows.Forms.DockStyle.Top + Me.lblc10.Location = New System.Drawing.Point(0, 0) + Me.lblc10.Name = "lblc10" + Me.lblc10.Size = New System.Drawing.Size(75, 13) + Me.lblc10.TabIndex = 13 + ' + 'ColorPalette + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.Controls.Add(Me.btnbothc1) + Me.Controls.Add(Me.btnlinec1) + Me.Controls.Add(Me.btnpointc1) + Me.Controls.Add(Me.lblc19) + Me.Controls.Add(Me.lblc18) + Me.Controls.Add(Me.lblc17) + Me.Controls.Add(Me.lblc16) + Me.Controls.Add(Me.lblc15) + Me.Controls.Add(Me.lblc14) + Me.Controls.Add(Me.lblc13) + Me.Controls.Add(Me.lblc12) + Me.Controls.Add(Me.lblc11) + Me.Controls.Add(Me.lblc10) + Me.Name = "ColorPalette" + Me.Size = New System.Drawing.Size(75, 211) + Me.ResumeLayout(False) + + End Sub + Private WithEvents btnbothc1 As System.Windows.Forms.Button + Private WithEvents btnlinec1 As System.Windows.Forms.Button + Private WithEvents btnpointc1 As System.Windows.Forms.Button + Private WithEvents lblc19 As System.Windows.Forms.Label + Private WithEvents lblc18 As System.Windows.Forms.Label + Private WithEvents lblc17 As System.Windows.Forms.Label + Private WithEvents lblc16 As System.Windows.Forms.Label + Private WithEvents lblc15 As System.Windows.Forms.Label + Private WithEvents lblc14 As System.Windows.Forms.Label + Private WithEvents lblc13 As System.Windows.Forms.Label + Private WithEvents lblc12 As System.Windows.Forms.Label + Private WithEvents lblc11 As System.Windows.Forms.Label + Private WithEvents lblc10 As System.Windows.Forms.Label + +End Class diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorPalette.resx b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorPalette.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorPalette.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorPalette.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorPalette.vb new file mode 100644 index 00000000..1db56204 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorPalette.vb @@ -0,0 +1,131 @@ +Imports System.Drawing +Imports System.Windows.Forms +Imports System.ComponentModel +Imports HydroDesktop.Common.Tools + +Public Class ColorPalette + + Const COLOR_CNT As Int32 = 10 + Private ReadOnly _colors As IList(Of Color) + Private ReadOnly _colorControls As IList(Of Label) + Private _showButtons As Boolean + + Public Event OnLineClicked As EventHandler(Of ColorPaletteButtonEventArgs) + Public Event OnPointClicked As EventHandler(Of ColorPaletteButtonEventArgs) + + Public Sub New() + + ' This call is required by the designer. + InitializeComponent() + + ' Add any initialization after the InitializeComponent() call. + + _colorControls = New List(Of Label)(COLOR_CNT) + _colors = Enumerable.Repeat(Color.White, COLOR_CNT).ToList() + InitColorControl(lblc10) + InitColorControl(lblc11) + InitColorControl(lblc12) + InitColorControl(lblc13) + InitColorControl(lblc14) + InitColorControl(lblc15) + InitColorControl(lblc16) + InitColorControl(lblc17) + InitColorControl(lblc18) + InitColorControl(lblc19) + + ShowButtons = True + End Sub + +#Region "Properties" + + + Public Property DefaultColorFunc() As Func(Of Color) + + Public Property CanChangeColors() As Boolean + + Public Property ShowButtons() As Boolean + Get + Return _showButtons + End Get + Set(value As Boolean) + _showButtons = value + + btnbothc1.Visible = value + btnlinec1.Visible = value + btnpointc1.Visible = value + End Set + End Property + + + Public Property Colors() As IList(Of Color) + Get + Return _colors + End Get + Set(ByVal value As IList(Of Color)) + If value Is Nothing Then Return + If value.Count <> COLOR_CNT Then Return + + For i As Integer = 0 To COLOR_CNT - 1 + _colors(i) = value(i) + _colorControls(i).BackColor = value(i) + Next + End Set + End Property + +#End Region + +#Region "Private methods" + + Private Sub InitColorControl(ByVal label As Label) + _colorControls.Add(label) + label.BackColor = _colors(_colorControls.IndexOf(label)) + AddHandler label.Click, AddressOf ColorButtonClick + End Sub + + Private Sub ColorButtonClick(ByVal sender As Object, ByVal e As EventArgs) + If Not CanChangeColors Then Return + + Dim label = TryCast(sender, Label) + If label Is Nothing Then Return + + Dim defaltColor = If(DefaultColorFunc Is Nothing, Nothing, DefaultColorFunc.Invoke()) + Dim newColor = DrawingHelper.PromptForColor(defaltColor) + + If newColor.HasValue Then + label.BackColor = newColor.Value + _colors(_colorControls.IndexOf(label)) = newColor.Value + End If + End Sub + + Private Sub btnbothc1_Click(sender As Object, e As EventArgs) Handles btnbothc1.Click + btnlinec1_Click(sender, e) + btnpointc1_Click(sender, e) + End Sub + + Private Sub btnlinec1_Click(sender As Object, e As EventArgs) Handles btnlinec1.Click + RaiseEvent OnLineClicked(Me, New ColorPaletteButtonEventArgs(_colors)) + End Sub + + Private Sub btnpointc1_Click(sender As Object, e As EventArgs) Handles btnpointc1.Click + RaiseEvent OnPointClicked(Me, New ColorPaletteButtonEventArgs(_colors)) + End Sub + +#End Region + +End Class + +Public Class ColorPaletteButtonEventArgs + Inherits EventArgs + + Private ReadOnly _colors As IList(Of Color) + Public ReadOnly Property Colors() As IList(Of Color) + Get + Return _colors + End Get + End Property + + Sub New(ByVal colors As IList(Of Color)) + _colors = colors + End Sub + +End Class \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorSettingsDialog.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorSettingsDialog.Designer.vb new file mode 100644 index 00000000..11af1f91 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorSettingsDialog.Designer.vb @@ -0,0 +1,344 @@ +Namespace Controls + + _ + Partial Class ColorSettingsDialog + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ColorSettingsDialog)) + Me.lblCurrentLineColor = New System.Windows.Forms.Label() + Me.lblCurrentPointColor = New System.Windows.Forms.Label() + Me.btnApply = New System.Windows.Forms.Button() + Me.btnCancel = New System.Windows.Forms.Button() + Me.btnSetPointColor = New System.Windows.Forms.Button() + Me.btnSetLineColor = New System.Windows.Forms.Button() + Me.lblAutoColor = New System.Windows.Forms.Label() + Me.lblLine = New System.Windows.Forms.Label() + Me.lblPoint = New System.Windows.Forms.Label() + Me.lblCustom = New System.Windows.Forms.Label() + Me.ColorPalettePoint = New HydroDesktop.Plugins.GraphView.ColorPalette() + Me.ColorPaletteLine = New HydroDesktop.Plugins.GraphView.ColorPalette() + Me.ColorPaletteCustom = New HydroDesktop.Plugins.GraphView.ColorPalette() + Me.ColorPalette10 = New HydroDesktop.Plugins.GraphView.ColorPalette() + Me.ColorPalette9 = New HydroDesktop.Plugins.GraphView.ColorPalette() + Me.ColorPalette8 = New HydroDesktop.Plugins.GraphView.ColorPalette() + Me.ColorPalette7 = New HydroDesktop.Plugins.GraphView.ColorPalette() + Me.ColorPalette6 = New HydroDesktop.Plugins.GraphView.ColorPalette() + Me.ColorPalette5 = New HydroDesktop.Plugins.GraphView.ColorPalette() + Me.ColorPalette4 = New HydroDesktop.Plugins.GraphView.ColorPalette() + Me.ColorPalette3 = New HydroDesktop.Plugins.GraphView.ColorPalette() + Me.ColorPalette2 = New HydroDesktop.Plugins.GraphView.ColorPalette() + Me.ColorPalette1 = New HydroDesktop.Plugins.GraphView.ColorPalette() + Me.SuspendLayout() + ' + 'lblCurrentLineColor + ' + Me.lblCurrentLineColor.Location = New System.Drawing.Point(523, 254) + Me.lblCurrentLineColor.Name = "lblCurrentLineColor" + Me.lblCurrentLineColor.Size = New System.Drawing.Size(75, 27) + Me.lblCurrentLineColor.TabIndex = 24 + Me.lblCurrentLineColor.Text = "Current Line Color Set:" + ' + 'lblCurrentPointColor + ' + Me.lblCurrentPointColor.Location = New System.Drawing.Point(624, 254) + Me.lblCurrentPointColor.Name = "lblCurrentPointColor" + Me.lblCurrentPointColor.Size = New System.Drawing.Size(75, 27) + Me.lblCurrentPointColor.TabIndex = 25 + Me.lblCurrentPointColor.Text = "Current Point Color Set:" + ' + 'btnApply + ' + Me.btnApply.Location = New System.Drawing.Point(523, 443) + Me.btnApply.Name = "btnApply" + Me.btnApply.Size = New System.Drawing.Size(176, 23) + Me.btnApply.TabIndex = 26 + Me.btnApply.Text = "Apply Changes" + Me.btnApply.UseVisualStyleBackColor = True + ' + 'btnCancel + ' + Me.btnCancel.Location = New System.Drawing.Point(523, 472) + Me.btnCancel.Name = "btnCancel" + Me.btnCancel.Size = New System.Drawing.Size(176, 23) + Me.btnCancel.TabIndex = 27 + Me.btnCancel.Text = "Close" + Me.btnCancel.UseVisualStyleBackColor = True + ' + 'btnSetPointColor + ' + Me.btnSetPointColor.BackColor = System.Drawing.Color.Black + Me.btnSetPointColor.Location = New System.Drawing.Point(374, 375) + Me.btnSetPointColor.Name = "btnSetPointColor" + Me.btnSetPointColor.Size = New System.Drawing.Size(18, 18) + Me.btnSetPointColor.TabIndex = 28 + Me.btnSetPointColor.UseVisualStyleBackColor = False + ' + 'btnSetLineColor + ' + Me.btnSetLineColor.BackColor = System.Drawing.Color.Black + Me.btnSetLineColor.Location = New System.Drawing.Point(374, 318) + Me.btnSetLineColor.Name = "btnSetLineColor" + Me.btnSetLineColor.Size = New System.Drawing.Size(18, 18) + Me.btnSetLineColor.TabIndex = 29 + Me.btnSetLineColor.UseVisualStyleBackColor = False + ' + 'lblAutoColor + ' + Me.lblAutoColor.Location = New System.Drawing.Point(314, 254) + Me.lblAutoColor.Name = "lblAutoColor" + Me.lblAutoColor.Size = New System.Drawing.Size(78, 27) + Me.lblAutoColor.TabIndex = 30 + Me.lblAutoColor.Text = "Auto Color Generator:" + ' + 'lblLine + ' + Me.lblLine.AutoSize = True + Me.lblLine.Location = New System.Drawing.Point(317, 321) + Me.lblLine.Name = "lblLine" + Me.lblLine.Size = New System.Drawing.Size(30, 13) + Me.lblLine.TabIndex = 31 + Me.lblLine.Text = "Line:" + ' + 'lblPoint + ' + Me.lblPoint.AutoSize = True + Me.lblPoint.Location = New System.Drawing.Point(317, 378) + Me.lblPoint.Name = "lblPoint" + Me.lblPoint.Size = New System.Drawing.Size(34, 13) + Me.lblPoint.TabIndex = 32 + Me.lblPoint.Text = "Point:" + ' + 'lblCustom + ' + Me.lblCustom.Location = New System.Drawing.Point(417, 254) + Me.lblCustom.Name = "lblCustom" + Me.lblCustom.Size = New System.Drawing.Size(66, 27) + Me.lblCustom.TabIndex = 35 + Me.lblCustom.Text = "Custom Color Set:" + ' + 'ColorPalettePoint + ' + Me.ColorPalettePoint.CanChangeColors = False + Me.ColorPalettePoint.Colors = CType(resources.GetObject("ColorPalettePoint.Colors"), System.Collections.Generic.IList(Of System.Drawing.Color)) + Me.ColorPalettePoint.DefaultColorFunc = Nothing + Me.ColorPalettePoint.Location = New System.Drawing.Point(627, 284) + Me.ColorPalettePoint.Name = "ColorPalettePoint" + Me.ColorPalettePoint.ShowButtons = False + Me.ColorPalettePoint.Size = New System.Drawing.Size(75, 153) + Me.ColorPalettePoint.TabIndex = 48 + ' + 'ColorPaletteLine + ' + Me.ColorPaletteLine.CanChangeColors = False + Me.ColorPaletteLine.Colors = CType(resources.GetObject("ColorPaletteLine.Colors"), System.Collections.Generic.IList(Of System.Drawing.Color)) + Me.ColorPaletteLine.DefaultColorFunc = Nothing + Me.ColorPaletteLine.Location = New System.Drawing.Point(526, 284) + Me.ColorPaletteLine.Name = "ColorPaletteLine" + Me.ColorPaletteLine.ShowButtons = False + Me.ColorPaletteLine.Size = New System.Drawing.Size(75, 153) + Me.ColorPaletteLine.TabIndex = 47 + ' + 'ColorPaletteCustom + ' + Me.ColorPaletteCustom.CanChangeColors = True + Me.ColorPaletteCustom.Colors = CType(resources.GetObject("ColorPaletteCustom.Colors"), System.Collections.Generic.IList(Of System.Drawing.Color)) + Me.ColorPaletteCustom.DefaultColorFunc = Nothing + Me.ColorPaletteCustom.Location = New System.Drawing.Point(420, 284) + Me.ColorPaletteCustom.Name = "ColorPaletteCustom" + Me.ColorPaletteCustom.ShowButtons = True + Me.ColorPaletteCustom.Size = New System.Drawing.Size(75, 211) + Me.ColorPaletteCustom.TabIndex = 46 + ' + 'ColorPalette10 + ' + Me.ColorPalette10.CanChangeColors = False + Me.ColorPalette10.Colors = CType(resources.GetObject("ColorPalette10.Colors"), System.Collections.Generic.IList(Of System.Drawing.Color)) + Me.ColorPalette10.DefaultColorFunc = Nothing + Me.ColorPalette10.Location = New System.Drawing.Point(215, 284) + Me.ColorPalette10.Name = "ColorPalette10" + Me.ColorPalette10.ShowButtons = True + Me.ColorPalette10.Size = New System.Drawing.Size(75, 211) + Me.ColorPalette10.TabIndex = 45 + ' + 'ColorPalette9 + ' + Me.ColorPalette9.CanChangeColors = False + Me.ColorPalette9.Colors = CType(resources.GetObject("ColorPalette9.Colors"), System.Collections.Generic.IList(Of System.Drawing.Color)) + Me.ColorPalette9.DefaultColorFunc = Nothing + Me.ColorPalette9.Location = New System.Drawing.Point(114, 284) + Me.ColorPalette9.Name = "ColorPalette9" + Me.ColorPalette9.ShowButtons = True + Me.ColorPalette9.Size = New System.Drawing.Size(75, 211) + Me.ColorPalette9.TabIndex = 44 + ' + 'ColorPalette8 + ' + Me.ColorPalette8.CanChangeColors = False + Me.ColorPalette8.Colors = CType(resources.GetObject("ColorPalette8.Colors"), System.Collections.Generic.IList(Of System.Drawing.Color)) + Me.ColorPalette8.DefaultColorFunc = Nothing + Me.ColorPalette8.Location = New System.Drawing.Point(14, 284) + Me.ColorPalette8.Name = "ColorPalette8" + Me.ColorPalette8.ShowButtons = True + Me.ColorPalette8.Size = New System.Drawing.Size(75, 211) + Me.ColorPalette8.TabIndex = 43 + ' + 'ColorPalette7 + ' + Me.ColorPalette7.CanChangeColors = False + Me.ColorPalette7.Colors = CType(resources.GetObject("ColorPalette7.Colors"), System.Collections.Generic.IList(Of System.Drawing.Color)) + Me.ColorPalette7.DefaultColorFunc = Nothing + Me.ColorPalette7.Location = New System.Drawing.Point(624, 21) + Me.ColorPalette7.Name = "ColorPalette7" + Me.ColorPalette7.ShowButtons = True + Me.ColorPalette7.Size = New System.Drawing.Size(75, 211) + Me.ColorPalette7.TabIndex = 42 + ' + 'ColorPalette6 + ' + Me.ColorPalette6.CanChangeColors = False + Me.ColorPalette6.Colors = CType(resources.GetObject("ColorPalette6.Colors"), System.Collections.Generic.IList(Of System.Drawing.Color)) + Me.ColorPalette6.DefaultColorFunc = Nothing + Me.ColorPalette6.Location = New System.Drawing.Point(523, 21) + Me.ColorPalette6.Name = "ColorPalette6" + Me.ColorPalette6.ShowButtons = True + Me.ColorPalette6.Size = New System.Drawing.Size(75, 211) + Me.ColorPalette6.TabIndex = 41 + ' + 'ColorPalette5 + ' + Me.ColorPalette5.CanChangeColors = False + Me.ColorPalette5.Colors = CType(resources.GetObject("ColorPalette5.Colors"), System.Collections.Generic.IList(Of System.Drawing.Color)) + Me.ColorPalette5.DefaultColorFunc = Nothing + Me.ColorPalette5.Location = New System.Drawing.Point(420, 21) + Me.ColorPalette5.Name = "ColorPalette5" + Me.ColorPalette5.ShowButtons = True + Me.ColorPalette5.Size = New System.Drawing.Size(75, 211) + Me.ColorPalette5.TabIndex = 40 + ' + 'ColorPalette4 + ' + Me.ColorPalette4.CanChangeColors = False + Me.ColorPalette4.Colors = CType(resources.GetObject("ColorPalette4.Colors"), System.Collections.Generic.IList(Of System.Drawing.Color)) + Me.ColorPalette4.DefaultColorFunc = Nothing + Me.ColorPalette4.Location = New System.Drawing.Point(317, 21) + Me.ColorPalette4.Name = "ColorPalette4" + Me.ColorPalette4.ShowButtons = True + Me.ColorPalette4.Size = New System.Drawing.Size(75, 211) + Me.ColorPalette4.TabIndex = 39 + ' + 'ColorPalette3 + ' + Me.ColorPalette3.CanChangeColors = False + Me.ColorPalette3.Colors = CType(resources.GetObject("ColorPalette3.Colors"), System.Collections.Generic.IList(Of System.Drawing.Color)) + Me.ColorPalette3.DefaultColorFunc = Nothing + Me.ColorPalette3.Location = New System.Drawing.Point(215, 21) + Me.ColorPalette3.Name = "ColorPalette3" + Me.ColorPalette3.ShowButtons = True + Me.ColorPalette3.Size = New System.Drawing.Size(75, 211) + Me.ColorPalette3.TabIndex = 38 + ' + 'ColorPalette2 + ' + Me.ColorPalette2.CanChangeColors = False + Me.ColorPalette2.Colors = CType(resources.GetObject("ColorPalette2.Colors"), System.Collections.Generic.IList(Of System.Drawing.Color)) + Me.ColorPalette2.DefaultColorFunc = Nothing + Me.ColorPalette2.Location = New System.Drawing.Point(114, 21) + Me.ColorPalette2.Name = "ColorPalette2" + Me.ColorPalette2.ShowButtons = True + Me.ColorPalette2.Size = New System.Drawing.Size(75, 211) + Me.ColorPalette2.TabIndex = 37 + ' + 'ColorPalette1 + ' + Me.ColorPalette1.CanChangeColors = False + Me.ColorPalette1.Colors = CType(resources.GetObject("ColorPalette1.Colors"), System.Collections.Generic.IList(Of System.Drawing.Color)) + Me.ColorPalette1.DefaultColorFunc = Nothing + Me.ColorPalette1.Location = New System.Drawing.Point(14, 21) + Me.ColorPalette1.Name = "ColorPalette1" + Me.ColorPalette1.ShowButtons = True + Me.ColorPalette1.Size = New System.Drawing.Size(75, 211) + Me.ColorPalette1.TabIndex = 36 + ' + 'ColorSettingsDialog + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(727, 525) + Me.Controls.Add(Me.ColorPalettePoint) + Me.Controls.Add(Me.ColorPaletteLine) + Me.Controls.Add(Me.ColorPaletteCustom) + Me.Controls.Add(Me.ColorPalette10) + Me.Controls.Add(Me.ColorPalette9) + Me.Controls.Add(Me.ColorPalette8) + Me.Controls.Add(Me.ColorPalette7) + Me.Controls.Add(Me.ColorPalette6) + Me.Controls.Add(Me.ColorPalette5) + Me.Controls.Add(Me.ColorPalette4) + Me.Controls.Add(Me.ColorPalette3) + Me.Controls.Add(Me.ColorPalette2) + Me.Controls.Add(Me.ColorPalette1) + Me.Controls.Add(Me.lblCustom) + Me.Controls.Add(Me.lblPoint) + Me.Controls.Add(Me.lblLine) + Me.Controls.Add(Me.lblAutoColor) + Me.Controls.Add(Me.btnSetLineColor) + Me.Controls.Add(Me.btnSetPointColor) + Me.Controls.Add(Me.btnCancel) + Me.Controls.Add(Me.btnApply) + Me.Controls.Add(Me.lblCurrentPointColor) + Me.Controls.Add(Me.lblCurrentLineColor) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "ColorSettingsDialog" + Me.Text = "Color Setting" + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents lblCurrentLineColor As System.Windows.Forms.Label + Friend WithEvents lblCurrentPointColor As System.Windows.Forms.Label + Friend WithEvents btnApply As System.Windows.Forms.Button + Friend WithEvents btnCancel As System.Windows.Forms.Button + Friend WithEvents btnSetPointColor As System.Windows.Forms.Button + Friend WithEvents btnSetLineColor As System.Windows.Forms.Button + Friend WithEvents lblAutoColor As System.Windows.Forms.Label + Friend WithEvents lblLine As System.Windows.Forms.Label + Friend WithEvents lblPoint As System.Windows.Forms.Label + Friend WithEvents lblCustom As System.Windows.Forms.Label + Friend WithEvents ColorPalette1 As HydroDesktop.Plugins.GraphView.ColorPalette + Friend WithEvents ColorPalette2 As HydroDesktop.Plugins.GraphView.ColorPalette + Friend WithEvents ColorPalette3 As HydroDesktop.Plugins.GraphView.ColorPalette + Friend WithEvents ColorPalette4 As HydroDesktop.Plugins.GraphView.ColorPalette + Friend WithEvents ColorPalette5 As HydroDesktop.Plugins.GraphView.ColorPalette + Friend WithEvents ColorPalette6 As HydroDesktop.Plugins.GraphView.ColorPalette + Friend WithEvents ColorPalette7 As HydroDesktop.Plugins.GraphView.ColorPalette + Friend WithEvents ColorPalette8 As HydroDesktop.Plugins.GraphView.ColorPalette + Friend WithEvents ColorPalette9 As HydroDesktop.Plugins.GraphView.ColorPalette + Friend WithEvents ColorPalette10 As HydroDesktop.Plugins.GraphView.ColorPalette + Friend WithEvents ColorPaletteCustom As HydroDesktop.Plugins.GraphView.ColorPalette + Friend WithEvents ColorPaletteLine As HydroDesktop.Plugins.GraphView.ColorPalette + Friend WithEvents ColorPalettePoint As HydroDesktop.Plugins.GraphView.ColorPalette + 'Friend WithEvents CTSA1 As cTSA + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorSettingsDialog.resx b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorSettingsDialog.resx new file mode 100644 index 00000000..9f9009fc --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorSettingsDialog.resx @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAKABU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs + dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhXV0sIG1zY29ybGliLCBW + ZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0 + ZTA4OQwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwg + UHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAAN1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5l + cmljLkxpc3RgMVtbU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQA + ABZTeXN0ZW0uRHJhd2luZy5Db2xvcltdAwAAAAgIAgAAAAkEAAAACgAAABQAAAAHBAAAAAABAAAAEAAA + AAQUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABfv///8UU3lzdGVtLkRyYXdpbmcuQ29sb3IEAAAABG5h + bWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAACgAAAAAAAAAApAABAAH6////+////woA + AAAAAAAAAKQAAQAB+f////v///8KAAAAAAAAAACkAAEAAfj////7////CgAAAAAAAAAApAABAAH3//// + +////woAAAAAAAAAAKQAAQAB9v////v///8KAAAAAAAAAACkAAEAAfX////7////CgAAAAAAAAAApAAB + AAH0////+////woAAAAAAAAAAKQAAQAB8/////v///8KAAAAAAAAAACkAAEAAfL////7////CgAAAAAA + AAAApAABAAHx////+////woAAAAAAAAAAAAAAAAB8P////v///8KAAAAAAAAAAAAAAAAAe/////7//// + CgAAAAAAAAAAAAAAAAHu////+////woAAAAAAAAAAAAAAAAB7f////v///8KAAAAAAAAAAAAAAAAAez/ + ///7////CgAAAAAAAAAAAAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAKABU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs + dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhXV0sIG1zY29ybGliLCBW + ZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0 + ZTA4OQwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwg + UHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAAN1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5l + cmljLkxpc3RgMVtbU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQA + ABZTeXN0ZW0uRHJhd2luZy5Db2xvcltdAwAAAAgIAgAAAAkEAAAACgAAABQAAAAHBAAAAAABAAAAEAAA + AAQUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABfv///8UU3lzdGVtLkRyYXdpbmcuQ29sb3IEAAAABG5h + bWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAACgAAAAAAAAAApAABAAH6////+////woA + AAAAAAAAAKQAAQAB+f////v///8KAAAAAAAAAACkAAEAAfj////7////CgAAAAAAAAAApAABAAH3//// + +////woAAAAAAAAAAKQAAQAB9v////v///8KAAAAAAAAAACkAAEAAfX////7////CgAAAAAAAAAApAAB + AAH0////+////woAAAAAAAAAAKQAAQAB8/////v///8KAAAAAAAAAACkAAEAAfL////7////CgAAAAAA + AAAApAABAAHx////+////woAAAAAAAAAAAAAAAAB8P////v///8KAAAAAAAAAAAAAAAAAe/////7//// + CgAAAAAAAAAAAAAAAAHu////+////woAAAAAAAAAAAAAAAAB7f////v///8KAAAAAAAAAAAAAAAAAez/ + ///7////CgAAAAAAAAAAAAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAKABU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs + dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhXV0sIG1zY29ybGliLCBW + ZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0 + ZTA4OQwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwg + UHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAAN1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5l + cmljLkxpc3RgMVtbU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQA + ABZTeXN0ZW0uRHJhd2luZy5Db2xvcltdAwAAAAgIAgAAAAkEAAAACgAAABQAAAAHBAAAAAABAAAAEAAA + AAQUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABfv///8UU3lzdGVtLkRyYXdpbmcuQ29sb3IEAAAABG5h + bWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAACgAAAAAAAAAApAABAAH6////+////woA + AAAAAAAAAKQAAQAB+f////v///8KAAAAAAAAAACkAAEAAfj////7////CgAAAAAAAAAApAABAAH3//// + +////woAAAAAAAAAAKQAAQAB9v////v///8KAAAAAAAAAACkAAEAAfX////7////CgAAAAAAAAAApAAB + AAH0////+////woAAAAAAAAAAKQAAQAB8/////v///8KAAAAAAAAAACkAAEAAfL////7////CgAAAAAA + AAAApAABAAHx////+////woAAAAAAAAAAAAAAAAB8P////v///8KAAAAAAAAAAAAAAAAAe/////7//// + CgAAAAAAAAAAAAAAAAHu////+////woAAAAAAAAAAAAAAAAB7f////v///8KAAAAAAAAAAAAAAAAAez/ + ///7////CgAAAAAAAAAAAAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAKABU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs + dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhXV0sIG1zY29ybGliLCBW + ZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0 + ZTA4OQwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwg + UHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAAN1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5l + cmljLkxpc3RgMVtbU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQA + ABZTeXN0ZW0uRHJhd2luZy5Db2xvcltdAwAAAAgIAgAAAAkEAAAACgAAABQAAAAHBAAAAAABAAAAEAAA + AAQUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABfv///8UU3lzdGVtLkRyYXdpbmcuQ29sb3IEAAAABG5h + bWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAACgAAAAAAAAAApAABAAH6////+////woA + AAAAAAAAAKQAAQAB+f////v///8KAAAAAAAAAACkAAEAAfj////7////CgAAAAAAAAAApAABAAH3//// + +////woAAAAAAAAAAKQAAQAB9v////v///8KAAAAAAAAAACkAAEAAfX////7////CgAAAAAAAAAApAAB + AAH0////+////woAAAAAAAAAAKQAAQAB8/////v///8KAAAAAAAAAACkAAEAAfL////7////CgAAAAAA + AAAApAABAAHx////+////woAAAAAAAAAAAAAAAAB8P////v///8KAAAAAAAAAAAAAAAAAe/////7//// + CgAAAAAAAAAAAAAAAAHu////+////woAAAAAAAAAAAAAAAAB7f////v///8KAAAAAAAAAAAAAAAAAez/ + ///7////CgAAAAAAAAAAAAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAKABU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs + dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhXV0sIG1zY29ybGliLCBW + ZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0 + ZTA4OQwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwg + UHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAAN1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5l + cmljLkxpc3RgMVtbU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQA + ABZTeXN0ZW0uRHJhd2luZy5Db2xvcltdAwAAAAgIAgAAAAkEAAAACgAAABQAAAAHBAAAAAABAAAAEAAA + AAQUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABfv///8UU3lzdGVtLkRyYXdpbmcuQ29sb3IEAAAABG5h + bWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAACgAAAAAAAAAApAABAAH6////+////woA + AAAAAAAAAKQAAQAB+f////v///8KAAAAAAAAAACkAAEAAfj////7////CgAAAAAAAAAApAABAAH3//// + +////woAAAAAAAAAAKQAAQAB9v////v///8KAAAAAAAAAACkAAEAAfX////7////CgAAAAAAAAAApAAB + AAH0////+////woAAAAAAAAAAKQAAQAB8/////v///8KAAAAAAAAAACkAAEAAfL////7////CgAAAAAA + AAAApAABAAHx////+////woAAAAAAAAAAAAAAAAB8P////v///8KAAAAAAAAAAAAAAAAAe/////7//// + CgAAAAAAAAAAAAAAAAHu////+////woAAAAAAAAAAAAAAAAB7f////v///8KAAAAAAAAAAAAAAAAAez/ + ///7////CgAAAAAAAAAAAAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAKABU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs + dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhXV0sIG1zY29ybGliLCBW + ZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0 + ZTA4OQwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwg + UHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAAN1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5l + cmljLkxpc3RgMVtbU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQA + ABZTeXN0ZW0uRHJhd2luZy5Db2xvcltdAwAAAAgIAgAAAAkEAAAACgAAABQAAAAHBAAAAAABAAAAEAAA + AAQUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABfv///8UU3lzdGVtLkRyYXdpbmcuQ29sb3IEAAAABG5h + bWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAACgAAAAAAAAAApAABAAH6////+////woA + AAAAAAAAAKQAAQAB+f////v///8KAAAAAAAAAACkAAEAAfj////7////CgAAAAAAAAAApAABAAH3//// + +////woAAAAAAAAAAKQAAQAB9v////v///8KAAAAAAAAAACkAAEAAfX////7////CgAAAAAAAAAApAAB + AAH0////+////woAAAAAAAAAAKQAAQAB8/////v///8KAAAAAAAAAACkAAEAAfL////7////CgAAAAAA + AAAApAABAAHx////+////woAAAAAAAAAAAAAAAAB8P////v///8KAAAAAAAAAAAAAAAAAe/////7//// + CgAAAAAAAAAAAAAAAAHu////+////woAAAAAAAAAAAAAAAAB7f////v///8KAAAAAAAAAAAAAAAAAez/ + ///7////CgAAAAAAAAAAAAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAKABU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs + dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhXV0sIG1zY29ybGliLCBW + ZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0 + ZTA4OQwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwg + UHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAAN1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5l + cmljLkxpc3RgMVtbU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQA + ABZTeXN0ZW0uRHJhd2luZy5Db2xvcltdAwAAAAgIAgAAAAkEAAAACgAAABQAAAAHBAAAAAABAAAAEAAA + AAQUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABfv///8UU3lzdGVtLkRyYXdpbmcuQ29sb3IEAAAABG5h + bWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAACgAAAAAAAAAApAABAAH6////+////woA + AAAAAAAAAKQAAQAB+f////v///8KAAAAAAAAAACkAAEAAfj////7////CgAAAAAAAAAApAABAAH3//// + +////woAAAAAAAAAAKQAAQAB9v////v///8KAAAAAAAAAACkAAEAAfX////7////CgAAAAAAAAAApAAB + AAH0////+////woAAAAAAAAAAKQAAQAB8/////v///8KAAAAAAAAAACkAAEAAfL////7////CgAAAAAA + AAAApAABAAHx////+////woAAAAAAAAAAAAAAAAB8P////v///8KAAAAAAAAAAAAAAAAAe/////7//// + CgAAAAAAAAAAAAAAAAHu////+////woAAAAAAAAAAAAAAAAB7f////v///8KAAAAAAAAAAAAAAAAAez/ + ///7////CgAAAAAAAAAAAAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAKABU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs + dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhXV0sIG1zY29ybGliLCBW + ZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0 + ZTA4OQwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwg + UHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAAN1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5l + cmljLkxpc3RgMVtbU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQA + ABZTeXN0ZW0uRHJhd2luZy5Db2xvcltdAwAAAAgIAgAAAAkEAAAACgAAABQAAAAHBAAAAAABAAAAEAAA + AAQUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABfv///8UU3lzdGVtLkRyYXdpbmcuQ29sb3IEAAAABG5h + bWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAACgAAAAAAAAAApAABAAH6////+////woA + AAAAAAAAAKQAAQAB+f////v///8KAAAAAAAAAACkAAEAAfj////7////CgAAAAAAAAAApAABAAH3//// + +////woAAAAAAAAAAKQAAQAB9v////v///8KAAAAAAAAAACkAAEAAfX////7////CgAAAAAAAAAApAAB + AAH0////+////woAAAAAAAAAAKQAAQAB8/////v///8KAAAAAAAAAACkAAEAAfL////7////CgAAAAAA + AAAApAABAAHx////+////woAAAAAAAAAAAAAAAAB8P////v///8KAAAAAAAAAAAAAAAAAe/////7//// + CgAAAAAAAAAAAAAAAAHu////+////woAAAAAAAAAAAAAAAAB7f////v///8KAAAAAAAAAAAAAAAAAez/ + ///7////CgAAAAAAAAAAAAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAKABU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs + dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhXV0sIG1zY29ybGliLCBW + ZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0 + ZTA4OQwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwg + UHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAAN1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5l + cmljLkxpc3RgMVtbU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQA + ABZTeXN0ZW0uRHJhd2luZy5Db2xvcltdAwAAAAgIAgAAAAkEAAAACgAAABQAAAAHBAAAAAABAAAAEAAA + AAQUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABfv///8UU3lzdGVtLkRyYXdpbmcuQ29sb3IEAAAABG5h + bWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAACgAAAAAAAAAApAABAAH6////+////woA + AAAAAAAAAKQAAQAB+f////v///8KAAAAAAAAAACkAAEAAfj////7////CgAAAAAAAAAApAABAAH3//// + +////woAAAAAAAAAAKQAAQAB9v////v///8KAAAAAAAAAACkAAEAAfX////7////CgAAAAAAAAAApAAB + AAH0////+////woAAAAAAAAAAKQAAQAB8/////v///8KAAAAAAAAAACkAAEAAfL////7////CgAAAAAA + AAAApAABAAHx////+////woAAAAAAAAAAAAAAAAB8P////v///8KAAAAAAAAAAAAAAAAAe/////7//// + CgAAAAAAAAAAAAAAAAHu////+////woAAAAAAAAAAAAAAAAB7f////v///8KAAAAAAAAAAAAAAAAAez/ + ///7////CgAAAAAAAAAAAAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAKABU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs + dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhXV0sIG1zY29ybGliLCBW + ZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0 + ZTA4OQwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwg + UHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAAN1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5l + cmljLkxpc3RgMVtbU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQA + ABZTeXN0ZW0uRHJhd2luZy5Db2xvcltdAwAAAAgIAgAAAAkEAAAACgAAABQAAAAHBAAAAAABAAAAEAAA + AAQUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABfv///8UU3lzdGVtLkRyYXdpbmcuQ29sb3IEAAAABG5h + bWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAACgAAAAAAAAAApAABAAH6////+////woA + AAAAAAAAAKQAAQAB+f////v///8KAAAAAAAAAACkAAEAAfj////7////CgAAAAAAAAAApAABAAH3//// + +////woAAAAAAAAAAKQAAQAB9v////v///8KAAAAAAAAAACkAAEAAfX////7////CgAAAAAAAAAApAAB + AAH0////+////woAAAAAAAAAAKQAAQAB8/////v///8KAAAAAAAAAACkAAEAAfL////7////CgAAAAAA + AAAApAABAAHx////+////woAAAAAAAAAAAAAAAAB8P////v///8KAAAAAAAAAAAAAAAAAe/////7//// + CgAAAAAAAAAAAAAAAAHu////+////woAAAAAAAAAAAAAAAAB7f////v///8KAAAAAAAAAAAAAAAAAez/ + ///7////CgAAAAAAAAAAAAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAKABU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs + dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhXV0sIG1zY29ybGliLCBW + ZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0 + ZTA4OQwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwg + UHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAAN1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5l + cmljLkxpc3RgMVtbU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQA + ABZTeXN0ZW0uRHJhd2luZy5Db2xvcltdAwAAAAgIAgAAAAkEAAAACgAAABQAAAAHBAAAAAABAAAAEAAA + AAQUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABfv///8UU3lzdGVtLkRyYXdpbmcuQ29sb3IEAAAABG5h + bWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAACgAAAAAAAAAApAABAAH6////+////woA + AAAAAAAAAKQAAQAB+f////v///8KAAAAAAAAAACkAAEAAfj////7////CgAAAAAAAAAApAABAAH3//// + +////woAAAAAAAAAAKQAAQAB9v////v///8KAAAAAAAAAACkAAEAAfX////7////CgAAAAAAAAAApAAB + AAH0////+////woAAAAAAAAAAKQAAQAB8/////v///8KAAAAAAAAAACkAAEAAfL////7////CgAAAAAA + AAAApAABAAHx////+////woAAAAAAAAAAAAAAAAB8P////v///8KAAAAAAAAAAAAAAAAAe/////7//// + CgAAAAAAAAAAAAAAAAHu////+////woAAAAAAAAAAAAAAAAB7f////v///8KAAAAAAAAAAAAAAAAAez/ + ///7////CgAAAAAAAAAAAAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAKABU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs + dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhXV0sIG1zY29ybGliLCBW + ZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0 + ZTA4OQwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwg + UHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAAN1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5l + cmljLkxpc3RgMVtbU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQA + ABZTeXN0ZW0uRHJhd2luZy5Db2xvcltdAwAAAAgIAgAAAAkEAAAACgAAABQAAAAHBAAAAAABAAAAEAAA + AAQUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABfv///8UU3lzdGVtLkRyYXdpbmcuQ29sb3IEAAAABG5h + bWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAACgAAAAAAAAAApAABAAH6////+////woA + AAAAAAAAAKQAAQAB+f////v///8KAAAAAAAAAACkAAEAAfj////7////CgAAAAAAAAAApAABAAH3//// + +////woAAAAAAAAAAKQAAQAB9v////v///8KAAAAAAAAAACkAAEAAfX////7////CgAAAAAAAAAApAAB + AAH0////+////woAAAAAAAAAAKQAAQAB8/////v///8KAAAAAAAAAACkAAEAAfL////7////CgAAAAAA + AAAApAABAAHx////+////woAAAAAAAAAAAAAAAAB8P////v///8KAAAAAAAAAAAAAAAAAe/////7//// + CgAAAAAAAAAAAAAAAAHu////+////woAAAAAAAAAAAAAAAAB7f////v///8KAAAAAAAAAAAAAAAAAez/ + ///7////CgAAAAAAAAAAAAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAKABU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs + dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhXV0sIG1zY29ybGliLCBW + ZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0 + ZTA4OQwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwg + UHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQUBAAAAN1N5c3RlbS5Db2xsZWN0aW9ucy5HZW5l + cmljLkxpc3RgMVtbU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABl9pdGVtcwVfc2l6ZQhfdmVyc2lvbgQA + ABZTeXN0ZW0uRHJhd2luZy5Db2xvcltdAwAAAAgIAgAAAAkEAAAACgAAABQAAAAHBAAAAAABAAAAEAAA + AAQUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAABfv///8UU3lzdGVtLkRyYXdpbmcuQ29sb3IEAAAABG5h + bWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAACgAAAAAAAAAApAABAAH6////+////woA + AAAAAAAAAKQAAQAB+f////v///8KAAAAAAAAAACkAAEAAfj////7////CgAAAAAAAAAApAABAAH3//// + +////woAAAAAAAAAAKQAAQAB9v////v///8KAAAAAAAAAACkAAEAAfX////7////CgAAAAAAAAAApAAB + AAH0////+////woAAAAAAAAAAKQAAQAB8/////v///8KAAAAAAAAAACkAAEAAfL////7////CgAAAAAA + AAAApAABAAHx////+////woAAAAAAAAAAAAAAAAB8P////v///8KAAAAAAAAAAAAAAAAAe/////7//// + CgAAAAAAAAAAAAAAAAHu////+////woAAAAAAAAAAAAAAAAB7f////v///8KAAAAAAAAAAAAAAAAAez/ + ///7////CgAAAAAAAAAAAAAAAAs= + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorSettingsDialog.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorSettingsDialog.vb new file mode 100644 index 00000000..a41fae13 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ColorSettingsDialog.vb @@ -0,0 +1,233 @@ +Imports System.Drawing +Imports HydroDesktop.Common.Tools + +Namespace Controls + + Public Class ColorSettingsDialog + + Public Sub New(ByVal _lcolorlist As List(Of Color), ByVal _pcolorlist As List(Of Color)) + InitializeComponent() + + linecolorlist = _lcolorlist + pointcolorlist = _pcolorlist + + Dim ccList1 As New List(Of Color) + ccList1.Add(Color.FromArgb(165, 0, 38)) + ccList1.Add(Color.FromArgb(215, 48, 39)) + ccList1.Add(Color.FromArgb(244, 109, 67)) + ccList1.Add(Color.FromArgb(253, 174, 97)) + ccList1.Add(Color.FromArgb(254, 224, 139)) + ccList1.Add(Color.FromArgb(217, 239, 139)) + ccList1.Add(Color.FromArgb(166, 217, 106)) + ccList1.Add(Color.FromArgb(102, 189, 99)) + ccList1.Add(Color.FromArgb(26, 152, 80)) + ccList1.Add(Color.FromArgb(0, 104, 55)) + + Dim ccList2 As New List(Of Color) + ccList2.Add(Color.FromArgb(158, 1, 66)) + ccList2.Add(Color.FromArgb(213, 62, 79)) + ccList2.Add(Color.FromArgb(244, 109, 67)) + ccList2.Add(Color.FromArgb(253, 174, 97)) + ccList2.Add(Color.FromArgb(254, 224, 139)) + ccList2.Add(Color.FromArgb(230, 245, 152)) + ccList2.Add(Color.FromArgb(171, 221, 164)) + ccList2.Add(Color.FromArgb(102, 194, 165)) + ccList2.Add(Color.FromArgb(50, 136, 189)) + ccList2.Add(Color.FromArgb(94, 79, 162)) + + Dim ccList3 As New List(Of Color) + ccList3.Add(Color.FromArgb(165, 0, 38)) + ccList3.Add(Color.FromArgb(215, 48, 39)) + ccList3.Add(Color.FromArgb(244, 109, 67)) + ccList3.Add(Color.FromArgb(253, 174, 97)) + ccList3.Add(Color.FromArgb(254, 224, 144)) + ccList3.Add(Color.FromArgb(224, 243, 248)) + ccList3.Add(Color.FromArgb(171, 217, 233)) + ccList3.Add(Color.FromArgb(116, 173, 209)) + ccList3.Add(Color.FromArgb(69, 117, 180)) + ccList3.Add(Color.FromArgb(49, 54, 149)) + + Dim ccList4 As New List(Of Color) + ccList4.Add(Color.FromArgb(103, 0, 31)) + ccList4.Add(Color.FromArgb(178, 24, 43)) + ccList4.Add(Color.FromArgb(214, 96, 77)) + ccList4.Add(Color.FromArgb(244, 165, 130)) + ccList4.Add(Color.FromArgb(253, 219, 199)) + ccList4.Add(Color.FromArgb(224, 224, 224)) + ccList4.Add(Color.FromArgb(186, 186, 186)) + ccList4.Add(Color.FromArgb(135, 135, 135)) + ccList4.Add(Color.FromArgb(77, 77, 77)) + ccList4.Add(Color.FromArgb(26, 26, 26)) + + Dim ccList5 As New List(Of Color) + ccList5.Add(Color.FromArgb(103, 0, 31)) + ccList5.Add(Color.FromArgb(178, 24, 43)) + ccList5.Add(Color.FromArgb(214, 96, 77)) + ccList5.Add(Color.FromArgb(244, 165, 130)) + ccList5.Add(Color.FromArgb(253, 219, 199)) + ccList5.Add(Color.FromArgb(209, 229, 240)) + ccList5.Add(Color.FromArgb(146, 197, 222)) + ccList5.Add(Color.FromArgb(67, 147, 195)) + ccList5.Add(Color.FromArgb(33, 102, 172)) + ccList5.Add(Color.FromArgb(5, 48, 97)) + + Dim ccList6 As New List(Of Color) + ccList6.Add(Color.FromArgb(142, 1, 82)) + ccList6.Add(Color.FromArgb(197, 27, 125)) + ccList6.Add(Color.FromArgb(222, 119, 174)) + ccList6.Add(Color.FromArgb(241, 182, 218)) + ccList6.Add(Color.FromArgb(253, 224, 239)) + ccList6.Add(Color.FromArgb(230, 245, 208)) + ccList6.Add(Color.FromArgb(184, 225, 134)) + ccList6.Add(Color.FromArgb(127, 188, 65)) + ccList6.Add(Color.FromArgb(77, 146, 33)) + ccList6.Add(Color.FromArgb(39, 100, 25)) + + Dim ccList7 As New List(Of Color) + ccList7.Add(Color.FromArgb(64, 0, 75)) + ccList7.Add(Color.FromArgb(118, 42, 131)) + ccList7.Add(Color.FromArgb(153, 112, 171)) + ccList7.Add(Color.FromArgb(194, 165, 207)) + ccList7.Add(Color.FromArgb(231, 212, 232)) + ccList7.Add(Color.FromArgb(217, 240, 211)) + ccList7.Add(Color.FromArgb(168, 216, 183)) + ccList7.Add(Color.FromArgb(90, 174, 97)) + ccList7.Add(Color.FromArgb(27, 120, 55)) + ccList7.Add(Color.FromArgb(0, 68, 27)) + + Dim ccList8 As New List(Of Color) + ccList8.Add(Color.FromArgb(84, 48, 5)) + ccList8.Add(Color.FromArgb(140, 81, 10)) + ccList8.Add(Color.FromArgb(191, 129, 45)) + ccList8.Add(Color.FromArgb(223, 194, 125)) + ccList8.Add(Color.FromArgb(246, 232, 195)) + ccList8.Add(Color.FromArgb(199, 234, 229)) + ccList8.Add(Color.FromArgb(128, 205, 193)) + ccList8.Add(Color.FromArgb(53, 151, 143)) + ccList8.Add(Color.FromArgb(1, 102, 94)) + ccList8.Add(Color.FromArgb(0, 60, 48)) + + Dim ccList9 As New List(Of Color) + ccList9.Add(Color.FromArgb(127, 59, 8)) + ccList9.Add(Color.FromArgb(179, 88, 6)) + ccList9.Add(Color.FromArgb(224, 130, 20)) + ccList9.Add(Color.FromArgb(253, 184, 99)) + ccList9.Add(Color.FromArgb(254, 224, 182)) + ccList9.Add(Color.FromArgb(216, 218, 235)) + ccList9.Add(Color.FromArgb(178, 171, 210)) + ccList9.Add(Color.FromArgb(128, 115, 172)) + ccList9.Add(Color.FromArgb(84, 39, 136)) + ccList9.Add(Color.FromArgb(45, 0, 75)) + + Dim ccList10 As New List(Of Color) + ccList10.Add(Color.FromArgb(106, 61, 154)) + ccList10.Add(Color.FromArgb(202, 178, 214)) + ccList10.Add(Color.FromArgb(255, 127, 0)) + ccList10.Add(Color.FromArgb(253, 191, 111)) + ccList10.Add(Color.FromArgb(227, 26, 28)) + ccList10.Add(Color.FromArgb(251, 154, 153)) + ccList10.Add(Color.FromArgb(51, 160, 44)) + ccList10.Add(Color.FromArgb(178, 223, 138)) + ccList10.Add(Color.FromArgb(31, 120, 180)) + ccList10.Add(Color.FromArgb(166, 206, 227)) + + InitPalette(ColorPalette1, ccList1) + InitPalette(ColorPalette2, ccList2) + InitPalette(ColorPalette3, ccList3) + InitPalette(ColorPalette4, ccList4) + InitPalette(ColorPalette5, ccList5) + InitPalette(ColorPalette6, ccList6) + InitPalette(ColorPalette7, ccList7) + InitPalette(ColorPalette8, ccList8) + InitPalette(ColorPalette9, ccList9) + InitPalette(ColorPalette10, ccList10) + + ColorPaletteCustom.DefaultColorFunc = Function() + Return btnSetPointColor.BackColor + End Function + InitPalette(ColorPaletteCustom, Nothing) + End Sub + + Private Sub InitPalette(ByVal palette As ColorPalette, ByVal colors As IList(Of Color)) + palette.Colors = colors + AddHandler palette.OnLineClicked, AddressOf line_Click + AddHandler palette.OnPointClicked, AddressOf point_Click + End Sub + + Public Property linecolorlist() As IList(Of Color) + Get + Return ColorPaletteLine.Colors + End Get + Private Set(ByVal value As IList(Of Color)) + ColorPaletteLine.Colors = value + End Set + End Property + + Public Property pointcolorlist() As IList(Of Color) + Get + Return ColorPalettePoint.Colors + End Get + Private Set(ByVal value As IList(Of Color)) + ColorPalettePoint.Colors = value + End Set + End Property + + Private Sub line_Click(ByVal sender As System.Object, ByVal e As ColorPaletteButtonEventArgs) + linecolorlist = e.Colors + End Sub + Private Sub point_Click(ByVal sender As System.Object, ByVal e As ColorPaletteButtonEventArgs) + pointcolorlist = e.Colors + End Sub + + Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnCancel.Click + Close() + End Sub + + Public Event ColorsApplied As EventHandler + + Private Sub btnApply_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnApply.Click + RaiseEvent ColorsApplied(Me, EventArgs.Empty) + End Sub + + Private Sub btnSetLineColor_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnSetLineColor.Click + Dim newColor = DrawingHelper.PromptForColor(btnSetLineColor.BackColor) + If newColor Is Nothing Then Return + + btnSetLineColor.BackColor = newColor.Value + Dim colorlist As New List(Of Color) + Dim x As Integer + + x = btnSetLineColor.BackColor.ToArgb() + For i = 0 To 9 + If x > -18001 Then + x = -16777216 + End If + colorlist.Add(Color.FromArgb(x)) + x += 18000 + Next i + + linecolorlist = colorlist + + End Sub + + Private Sub btnSetPointColor_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnSetPointColor.Click + Dim newColor = DrawingHelper.PromptForColor(btnSetPointColor.BackColor) + If newColor Is Nothing Then Return + + btnSetPointColor.BackColor = newColor.Value + Dim colorlist As New List(Of Color)() + Dim x As Integer + + x = btnSetPointColor.BackColor.ToArgb() + For i = 0 To 9 + If x > -18001 Then + x = -16777216 + End If + colorlist.Add(Color.FromArgb(x)) + x += 18000 + Next i + + pointcolorlist = colorlist + End Sub + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/DataSummary.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/DataSummary.Designer.vb new file mode 100644 index 00000000..9d85b6df --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/DataSummary.Designer.vb @@ -0,0 +1,74 @@ +Namespace Controls + _ + Partial Class DataSummary + Inherits System.Windows.Forms.UserControl + + 'UserControl overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.dgvStatSummary = New System.Windows.Forms.DataGridView + Me.stat1 = New System.Windows.Forms.DataGridViewTextBoxColumn + Me.stat2 = New System.Windows.Forms.DataGridViewTextBoxColumn + CType(Me.dgvStatSummary, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'dgvStatSummary + ' + Me.dgvStatSummary.AllowUserToAddRows = False + Me.dgvStatSummary.AllowUserToDeleteRows = False + Me.dgvStatSummary.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvStatSummary.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.stat1, Me.stat2}) + Me.dgvStatSummary.Dock = System.Windows.Forms.DockStyle.Fill + Me.dgvStatSummary.Location = New System.Drawing.Point(0, 0) + Me.dgvStatSummary.Name = "dgvStatSummary" + Me.dgvStatSummary.ReadOnly = True + Me.dgvStatSummary.Size = New System.Drawing.Size(770, 324) + Me.dgvStatSummary.TabIndex = 0 + ' + 'stat1 + ' + Me.stat1.HeaderText = "" + Me.stat1.Name = "stat1" + Me.stat1.ReadOnly = True + ' + 'stat2 + ' + Me.stat2.HeaderText = "" + Me.stat2.Name = "stat2" + Me.stat2.ReadOnly = True + Me.stat2.Width = 105 + ' + 'cDataSummary + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.Controls.Add(Me.dgvStatSummary) + Me.Name = "cDataSummary" + Me.Size = New System.Drawing.Size(770, 324) + CType(Me.dgvStatSummary, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents dgvStatSummary As System.Windows.Forms.DataGridView + Friend WithEvents stat1 As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents stat2 As System.Windows.Forms.DataGridViewTextBoxColumn + + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/DataSummary.resx b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/DataSummary.resx new file mode 100644 index 00000000..4d9ffa55 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/DataSummary.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + True + + + True + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/DataSummary.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/DataSummary.vb new file mode 100644 index 00000000..88545a02 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/DataSummary.vb @@ -0,0 +1,74 @@ +Option Strict On + +Namespace Controls + + Public Class DataSummary + Implements IPlot + + Public Sub New() + + ' This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + Public Sub Plot(ByVal seriesPlotInfo As SeriesPlotInfo) Implements IPlot.Plot + ClearStatTables() + For Each seriesInfo In seriesPlotInfo.GetSeriesInfo() + Plot(seriesInfo) + Next + StatTableStyling() + End Sub + +#Region "Private methods" + + Private Sub Plot(ByRef options As OneSeriesPlotInfo) + Dim siteName = options.SiteName + Dim variableName = options.VariableName + Dim siteAndVariable = siteName + ", " + variableName + Dim statistics = options.Statistics + + dgvStatSummary.Rows.Add(siteAndVariable, "ID " + options.SeriesID.ToString()) + dgvStatSummary.Rows.Add("# Of Observations", statistics.NumberOfObservations) + dgvStatSummary.Rows.Add("# Of Censored Obs.", statistics.NumberOfCensoredObservations) + dgvStatSummary.Rows.Add("Arithmetic Mean", statistics.ArithmeticMean) + dgvStatSummary.Rows.Add("Geometric Mean", statistics.GeometricMean) + dgvStatSummary.Rows.Add("Maximum", statistics.Maximum) + dgvStatSummary.Rows.Add("Minimum", statistics.Minimum) + dgvStatSummary.Rows.Add("Standard Deviation", statistics.StandardDeviation) + dgvStatSummary.Rows.Add("Coefficient of Variation", statistics.CoefficientOfVariation) + dgvStatSummary.Rows.Add("Percentiles 10%", statistics.Percentile10) + dgvStatSummary.Rows.Add("Percentiles 25%", statistics.Percentile25) + dgvStatSummary.Rows.Add("Percentiles 50%(median)", statistics.Percentile50) + dgvStatSummary.Rows.Add("Percentiles 75%", statistics.Percentile75) + dgvStatSummary.Rows.Add("Percentiles 90%", statistics.Percentile90) + dgvStatSummary.Rows.Add() + dgvStatSummary.Columns(0).Width = siteAndVariable.Length * 7 + dgvStatSummary.AutoResizeColumns() + End Sub + + Private Sub ClearStatTables() + dgvStatSummary.Rows.Clear() + End Sub + + Private Sub StatTableStyling() + Dim count As Integer = 0 + Dim sizecount As Integer = dgvStatSummary.Rows.Count + For Each i In DirectCast(dgvStatSummary.Rows, IEnumerable) + dgvStatSummary.Rows(count).Cells(0).Style.BackColor = Drawing.Color.Yellow + If (count Mod 15 = 0) And Not (count = sizecount) Then + dgvStatSummary.Rows(count).Cells(0).Style.BackColor = Drawing.Color.Aqua + dgvStatSummary.Rows(count).Cells(1).Style.BackColor = Drawing.Color.Aqua + End If + If count Mod 15 = 14 Then + dgvStatSummary.Rows(count).Cells(0).Style.BackColor = Drawing.Color.White + End If + count += 1 + Next + + End Sub + +#End Region + + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/HistogramPlot.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/HistogramPlot.Designer.vb new file mode 100644 index 00000000..89156713 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/HistogramPlot.Designer.vb @@ -0,0 +1,61 @@ +Imports HydroDesktop.ZedGraphEx + +Namespace Controls + _ + Partial Class HistogramPlot + Inherits System.Windows.Forms.UserControl + + 'UserControl overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container + Me.zgHistogramPlot = New ZedGraphControlEx + Me.SuspendLayout() + ' + 'zgHistogramPlot + ' + Me.zgHistogramPlot.AutoScroll = True + Me.zgHistogramPlot.Dock = System.Windows.Forms.DockStyle.Fill + Me.zgHistogramPlot.Location = New System.Drawing.Point(0, 0) + Me.zgHistogramPlot.Name = "zgHistogramPlot" + Me.zgHistogramPlot.ScrollGrace = 0 + Me.zgHistogramPlot.ScrollMaxX = 0 + Me.zgHistogramPlot.ScrollMaxY = 0 + Me.zgHistogramPlot.ScrollMaxY2 = 0 + Me.zgHistogramPlot.ScrollMinX = 0 + Me.zgHistogramPlot.ScrollMinY = 0 + Me.zgHistogramPlot.ScrollMinY2 = 0 + Me.zgHistogramPlot.Size = New System.Drawing.Size(200, 200) + Me.zgHistogramPlot.TabIndex = 0 + ' + 'cHistogramPlot + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.Controls.Add(Me.zgHistogramPlot) + Me.Name = "cHistogramPlot" + Me.Size = New System.Drawing.Size(200, 200) + Me.ResumeLayout(False) + + End Sub + Friend WithEvents zgHistogramPlot As ZedGraphControlEx + + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/HistogramPlot.resx b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/HistogramPlot.resx new file mode 100644 index 00000000..ff31a6db --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/HistogramPlot.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/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/HistogramPlot.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/HistogramPlot.vb new file mode 100644 index 00000000..465aa28c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/HistogramPlot.vb @@ -0,0 +1,444 @@ +Imports System.Globalization +Imports HydroDesktop.Plugins.GraphView.My.Resources +Imports ZedGraph + +Namespace Controls + + Public Class HistogramPlot + Implements IChart + + Private m_StdDev As Double = 0 + Private yValue() As Double + Private xCenterList() As Double + Private lbin() As Double + Private rbin() As Double + + + Public Sub Plot(ByVal seriesPlotInfo As SeriesPlotInfo) Implements IPlot.Plot + Clear() + For Each oneSeriesInfo In seriesPlotInfo.GetSeriesInfo() + If oneSeriesInfo.Statistics.NumberOfObservations > oneSeriesInfo.Statistics.NumberOfCensoredObservations Then + Plot(oneSeriesInfo, oneSeriesInfo.Statistics.StandardDeviation) + ElseIf oneSeriesInfo.Statistics.NumberOfObservations = oneSeriesInfo.Statistics.NumberOfCensoredObservations Then + If CurveCount() = 0 Then SetGraphPaneTitle(MessageStrings.All_Data_Censored) + End If + Next + Refreshing() + End Sub + + Private Function CurveCount() As Int32 + Return zgHistogramPlot.GraphPane.CurveList.Count + End Function + + Private Sub SetGraphPaneTitle(ByVal title As String) + zgHistogramPlot.GraphPane.Title.Text = title + End Sub + + Private Sub Plot(ByVal options As OneSeriesPlotInfo, ByVal e_StdDev As Double) + If zgHistogramPlot.MasterPane.PaneList.Count <> 0 Then + Dim cOptions = DirectCast(zgHistogramPlot.MasterPane.PaneList(0).Tag, OneSeriesPlotInfo) + If cOptions Is Nothing Then + zgHistogramPlot.MasterPane.PaneList.Clear() + End If + End If + + m_StdDev = e_StdDev + zgHistogramPlot.MasterPane.Title.IsVisible = False + + Dim gPane As GraphPane = New GraphPane + zgHistogramPlot.MasterPane.PaneList.Add(gPane) + Graph(gPane, options) + + If zgHistogramPlot.MasterPane.PaneList.Count > 1 Then + zgHistogramPlot.IsShowHScrollBar = False + zgHistogramPlot.IsShowVScrollBar = False + End If + End Sub + + Private Sub Clear() + zgHistogramPlot.MasterPane.PaneList.Clear() + zgHistogramPlot.MasterPane.PaneList.Add(New GraphPane) + zgHistogramPlot.MasterPane.PaneList(0).Title.IsVisible = True + zgHistogramPlot.MasterPane.PaneList(0).Title.Text = MessageStrings.No_Data_Plot + zgHistogramPlot.MasterPane.PaneList(0).Title.FontSpec.Size = 14 + zgHistogramPlot.MasterPane.PaneList(0).XAxis.IsVisible = False + zgHistogramPlot.MasterPane.PaneList(0).YAxis.IsVisible = False + zgHistogramPlot.MasterPane.PaneList(0).Border.IsVisible = False + zgHistogramPlot.MasterPane.PaneList(0).AxisChange() + zgHistogramPlot.MasterPane.Border.IsVisible = False + zgHistogramPlot.IsShowHScrollBar = False + zgHistogramPlot.IsShowVScrollBar = False + zgHistogramPlot.Refresh() + zgHistogramPlot.AxisChange() + End Sub + + Private Sub Graph(ByVal gPane As GraphPane, ByVal options As OneSeriesPlotInfo) + Try + Dim m_Options = options.PlotOptions + '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + 'New code + '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + Histogram_Calc(options.DataTable, m_Options) + + + 'Dim i As Integer + 'Dim gPane As ZedGraph.GraphPane = zgHistogramPlot.GraphPane 'GraphPane of the zg5Histogram plot object -> used to set data and characteristics + Dim ptList As New PointPairList 'collection of points for the Histogram chart + Dim histBars As BarItem 'Bar Item curve -> Histogram bars on the plot + + zgHistogramPlot.IsShowVScrollBar = True + zgHistogramPlot.IsShowHScrollBar = True + gPane.XAxis.IsVisible = True + gPane.YAxis.IsVisible = True + gPane.Legend.IsVisible = False + With m_Options + + gPane.YAxis.Title.FontSpec.Size = 12 + If (.HistTypeMethod = HistogramType.Probability) Then + gPane.YAxis.Title.Text = "Probability Density" + ElseIf (.HistTypeMethod = HistogramType.Count) Then + gPane.YAxis.Title.Text = MessageStrings.Number_Observations + ElseIf (.HistTypeMethod = HistogramType.Relative) Then + gPane.YAxis.Title.Text = "Relative Number of Observations" + End If + + 'set bar settings + + gPane.BarSettings.Type = BarType.Cluster + gPane.BarSettings.MinBarGap = 0 + gPane.BarSettings.MinClusterGap = 0 + gPane.XAxis.Scale.IsLabelsInside = False + gPane.Border.IsVisible = False + + '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + ' Scaling the X axis better + '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + + gPane.XAxis.Title.Text = options.GetVariableWithUnitsString() + gPane.XAxis.Title.FontSpec.Size = 12 + If gPane.XAxis.Title.Text.Length > 40 Then + gPane.XAxis.Title.Text = gPane.XAxis.Title.Text.Substring(0, 40) + "..." + End If + gPane.XAxis.MinorTic.IsAllTics = False + gPane.XAxis.Title.Gap = 0.2 + gPane.XAxis.Scale.Mag = 0 + gPane.XAxis.MinorGrid.IsVisible = False + gPane.XAxis.MinorTic.Color = Drawing.Color.Transparent + gPane.XAxis.MajorGrid.IsVisible = True + gPane.XAxis.Scale.Min = 0 + gPane.XAxis.IsVisible = True + gPane.XAxis.Scale.IsVisible = True + + gPane.XAxis.MajorTic.IsBetweenLabels = True + + gPane.XAxis.Scale.Min = .xMin + gPane.XAxis.Scale.Max = .xMax + gPane.XAxis.Scale.MajorStep = .xMajor + gPane.XAxis.Scale.MagAuto = False + + '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + ' Scaling the Y axis better + '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + + + gPane.YAxis.MajorGrid.IsVisible = True + gPane.YAxis.MinorGrid.IsVisible = False + gPane.YAxis.Scale.MagAuto = False + gPane.Tag = options + + Dim needShowDataType = False + For Each c In zgHistogramPlot.MasterPane.PaneList + Dim cOptions = DirectCast(c.Tag, OneSeriesPlotInfo) + + For Each cc In zgHistogramPlot.MasterPane.PaneList + If Not ReferenceEquals(c, cc) Then + Dim ccOptions = DirectCast(cc.Tag, OneSeriesPlotInfo) + + If ccOptions.SiteName = cOptions.SiteName And + ccOptions.VariableName = cOptions.VariableName Then + needShowDataType = True + Exit For + End If + End If + Next + Next + If Not needShowDataType Then + ' Set legend only for current curve + gPane.Title.Text = options.GetVariableWithUnitsString() + vbCrLf + "at " + options.SiteName + ", " + " ID: " + options.SeriesID.ToString + gPane.Title.FontSpec.Size = 14 + Else + ' Update legend for all curves + For Each c In zgHistogramPlot.MasterPane.PaneList() + Dim cOptions = DirectCast(c.Tag, OneSeriesPlotInfo) + c.Title.Text = cOptions.SiteName + ", " + cOptions.VariableName + ", " + cOptions.DataType + ", ID: " + cOptions.SeriesID.ToString + Next + End If + + + gPane.XAxis.Scale.FormatAuto = False + + Dim min As Double = Double.MinValue + Dim list1 As List(Of Double) + Dim k As Double + For Each k In yValue + If (k < min) Then + min = k + End If + Next + Dim max As Double = Double.MinValue + For Each k In yValue + If (k > max) Then + max = k + End If + Next + list1 = Pretty.PrettyP(0, max) + + gPane.YAxis.Scale.Min = 0 + gPane.YAxis.Scale.MajorStep = list1.Item(2) + gPane.YAxis.Scale.MinorStep = gPane.YAxis.Scale.MajorStep / 5 + gPane.XAxis.MajorTic.IsAllTics = True + + + 'gPane.XAxis.Cross = gPane.YAxis.Scale.Min + gPane.YAxis.Scale.IsLabelsInside = False + gPane.YAxis.MajorTic.IsAllTics = False + gPane.YAxis.MajorTic.IsInside = True + gPane.YAxis.MinorTic.IsAllTics = False + gPane.YAxis.MinorTic.IsInside = True + + gPane.XAxis.Scale.Min = .xMin + gPane.XAxis.Scale.Max = .xMax + 'gPane.YAxis.Scale.Min = .yMin + gPane.YAxis.Scale.Max = list1.Item(1) + + + '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + 'Adding the values to the pointlist + '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + ptList.Add(xCenterList, yValue) + + histBars = gPane.AddBar("Histogram", ptList, Drawing.Color.Black) + + End With + + Catch ex As Exception + Throw New Exception("Error Occured in ZGHistogram.RenderGraph" & vbCrLf & ex.Message) + End Try + End Sub + +#Region "Calculation for Main Histogram Algorithm" + + Private Sub Histogram_Calc(ByRef HistTable As DataTable, ByRef pOptions As PlotOptions) ', ByVal SS As Statistics) + + Dim m_Data = HistTable + Dim i, j As Integer + Dim dX As Double + Dim bMax As Integer + Dim jMode As Integer + Static yMode As Double + Dim xLimits As List(Of Double) = New List(Of Double) + Dim yLimits As List(Of Double) + + 'do the binning according to the pci_plotoptions HistAlg item + If pOptions.HistAlgorothmsMethod = HistorgramAlgorithms.Sturges Then + 'Sturges gives us the number of bins + pOptions.numBins = Math.Ceiling(Math.Log(Convert.ToDouble(Statistics.Count(m_Data)), 2) + 1) + xLimits = Pretty.PrettyP(Statistics.Minimum(m_Data), Statistics.Maximum(m_Data), pOptions.numBins) + + dX = xLimits(2) + pOptions.numBins = (xLimits(1) - xLimits(0)) / xLimits(2) + pOptions.binWidth = dX + + ElseIf pOptions.HistAlgorothmsMethod = HistorgramAlgorithms.Scott Then + ' Scotts gives the binwidth + + + pOptions.binWidth = (3.5 * m_StdDev) / (Statistics.Count(m_Data) ^ (1 / 3)) + + pOptions.numBins = Math.Round((Statistics.Maximum(m_Data) - Statistics.Minimum(m_Data)) / pOptions.binWidth) + xLimits = Pretty.PrettyP(Statistics.Minimum(m_Data), Statistics.Maximum(m_Data), pOptions.numBins) + + dX = xLimits(2) + pOptions.numBins = (xLimits(1) - xLimits(0)) / xLimits(2) + pOptions.binWidth = dX + + + ElseIf pOptions.HistAlgorothmsMethod = HistorgramAlgorithms.Freedman Then + 'FD gives us the bin width, dX + + pOptions.binWidth = 2 * (Statistics.UpperQuartile(m_Data) - Statistics.LowerQuartile(m_Data)) / (Statistics.Count(m_Data) ^ (1 / 3)) + + pOptions.numBins = Math.Round((Statistics.Maximum(m_Data) - Statistics.Minimum(m_Data)) / pOptions.binWidth) + xLimits = Pretty.PrettyP(Statistics.Minimum(m_Data), Statistics.Maximum(m_Data), pOptions.numBins) + + dX = xLimits(2) + pOptions.numBins = (xLimits(1) - xLimits(0)) / xLimits(2) + pOptions.binWidth = dX + End If + + With pOptions + .xMax = xLimits(1) + .xMin = xLimits(0) + .xMajor = dX + + 'make it so we don't have too many tick marks on the plot + Do Until (.xMax - .xMin) / .xMajor < 16 + .xMajor = .xMajor * 2 + Loop + + ReDim yValue(.numBins) + ReDim xCenterList(.numBins) + ReDim lbin(.numBins) + ReDim rbin(.numBins) + + 'This loop finds the xCenter list with the left and right bound values + For j = 0 To .numBins + yValue(j) = 0 + xCenterList(j) = (.xMin + (j + 1) * dX + .xMin + j * dX) / 2.0# + lbin(j) = .xMin + j * dX + rbin(j) = .xMin + (j + 1) * dX + + Next j + + + 'Now that we know the xCenterList (e.g., we know the bins) + ' we need to put each datapoint into its respective bin + For i = 0 To .numBins + 'query the data tables for each bin + Dim str As String = "DataValue >= " & lbin(i).ToString(CultureInfo.InvariantCulture) & " and DataValue < " & rbin(i).ToString(CultureInfo.InvariantCulture) + yValue(i) = HistTable.Compute("count(DataValue)", str) + Next + + 'loop through bins and find the max bin count and the mode + jMode = 0 + bMax = 0 + For j = 0 To .numBins + If (yValue(j) > bMax) Then + jMode = j + bMax = yValue(j) + End If + '.normalizer = .normalizer + .yValue(j) * dX + Next j + yMode = xCenterList(jMode) + + yLimits = Pretty.PrettyP(0, bMax) + .yMax = yLimits(1) + .yMin = yLimits(0) + + + 'transform the bin counts (if needed) + If .HistTypeMethod = HistogramType.Count Then + '.yValue is good + 'do nothing + ElseIf .HistTypeMethod = HistogramType.Probability Then + 'use normalizing constant to make the histogram integrate to 1 + Dim pdf As Double = 0 + Dim k As Integer + + For k = 0 To .numBins + pdf += yValue(k) * dX + Next + + For j = 0 To .numBins + yValue(j) = yValue(j) / pdf + Next + + ElseIf .HistTypeMethod = HistogramType.Relative Then + 'use normalizing constant to make the histogram relative + For j = 0 To .numBins + yValue(j) = yValue(j) / Statistics.Count(m_Data) + Next + End If + + End With + + End Sub +#End Region + + + Private Function CalculateHistogramNumBins(ByVal numValues As Double) As Integer + 'this function calculates the number of Bins -> Bars for the Histogram Chart on the Visualize Tab + 'Inputs: numValues -> the total number of valid values + 'Outputs: Integer -> the number of bins needed + Try + Dim numBins As Integer = 0 + Dim top As Double 'top half of the equation + Dim bottom As Double 'bottom half of the equation + '#bins = ((2.303*squareRoot(n))/(natural log(n)))*(2) + + top = 2.303 * Math.Sqrt(numValues) + bottom = Math.Log(numValues) + numBins = Math.Floor((top / bottom) * 2) + + If numBins < 5 Then + numBins = 5 + End If + + Return numBins + Catch ex As Exception + Throw New Exception("Error Occured in ZGHistogram.CalculateHistogramNumBins" & vbCrLf & ex.Message) + End Try + End Function + + + Public Sub New() + + ' This call is required by the Windows Form Designer. + InitializeComponent() + + ' Add any initialization after the InitializeComponent() call. + Dim gPane As GraphPane = zgHistogramPlot.MasterPane.PaneList(0) + gPane.Border.IsVisible = False + gPane.Legend.IsVisible = False + gPane.BarSettings.Type = BarType.Stack + zgHistogramPlot.MasterPane.Border.IsVisible = False + End Sub + + Private Sub Refreshing() + zgHistogramPlot.AxisChange() + zgHistogramPlot.Refresh() + End Sub + + Private Sub Remove(ByVal ID As Integer) + Dim PaneListCopy As New PaneList + For i = 0 To zgHistogramPlot.MasterPane.PaneList.Count - 1 + PaneListCopy.Add(zgHistogramPlot.MasterPane.PaneList(i)) + Next + + zgHistogramPlot.MasterPane.PaneList.Clear() + + For i = 0 To PaneListCopy.Count - 1 + If Not (PaneID(PaneListCopy(i)) = ID) Then + zgHistogramPlot.MasterPane.PaneList.Add(PaneListCopy(i)) + End If + Next + End Sub + + Public Function PaneID(ByVal pane As GraphPane) As Integer + Dim cOptions = DirectCast(pane.Tag, OneSeriesPlotInfo) + If cOptions Is Nothing Then Return Nothing + Return cOptions.SeriesID + End Function + + Public Property ShowPointValues() As Boolean Implements IChart.ShowPointValues + Get + Return zgHistogramPlot.IsShowPointValues + End Get + Set(ByVal value As Boolean) + zgHistogramPlot.IsShowPointValues = value + End Set + End Property + + Public Sub ZoomIn() Implements IChart.ZoomIn + zgHistogramPlot.ZoomIn() + End Sub + + Public Sub ZoomOut() Implements IChart.ZoomOut + zgHistogramPlot.ZoomOut(zgHistogramPlot.GraphPane) + End Sub + + Public Sub ZoomOutAll() Implements IChart.ZoomOutAll + zgHistogramPlot.ZoomOutAll(zgHistogramPlot.GraphPane) + End Sub + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/IChart.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/IChart.vb new file mode 100644 index 00000000..b7082953 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/IChart.vb @@ -0,0 +1,13 @@ +Namespace Controls + Public Interface IChart + Inherits IPlot + Property ShowPointValues() As Boolean + Sub ZoomIn() + Sub ZoomOut() + Sub ZoomOutAll() + End Interface + + Public Interface IPlot + Sub Plot(ByVal seriesPlotInfo As SeriesPlotInfo) + End Interface +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/MainControl.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/MainControl.Designer.vb new file mode 100644 index 00000000..0de02e70 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/MainControl.Designer.vb @@ -0,0 +1,192 @@ +Namespace Controls + _ + Partial Class MainControl + Inherits System.Windows.Forms.UserControl + + Public frmCC As ColorSettingsDialog + + 'UserControl overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.tpDataSummary = New System.Windows.Forms.TabPage() + Me.dataSummary = New HydroDesktop.Plugins.GraphView.Controls.DataSummary() + Me.tpBoxWhisker = New System.Windows.Forms.TabPage() + Me.boxWhisker = New HydroDesktop.Plugins.GraphView.Controls.BoxWhiskerPlot() + Me.tpHistogram = New System.Windows.Forms.TabPage() + Me.histogramPlot = New HydroDesktop.Plugins.GraphView.Controls.HistogramPlot() + Me.tpProbability = New System.Windows.Forms.TabPage() + Me.probabilityPlot = New HydroDesktop.Plugins.GraphView.Controls.ProbabilityPlot() + Me.tpTimeSeries = New System.Windows.Forms.TabPage() + Me.timeSeriesPlot = New HydroDesktop.Plugins.GraphView.Controls.TimeSeriesPlot() + Me.tcPlots = New System.Windows.Forms.TabControl() + Me.tpDataSummary.SuspendLayout() + Me.tpBoxWhisker.SuspendLayout() + Me.tpHistogram.SuspendLayout() + Me.tpProbability.SuspendLayout() + Me.tpTimeSeries.SuspendLayout() + Me.tcPlots.SuspendLayout() + Me.SuspendLayout() + ' + 'tpDataSummary + ' + Me.tpDataSummary.Controls.Add(Me.dataSummary) + Me.tpDataSummary.Location = New System.Drawing.Point(4, 5) + Me.tpDataSummary.Name = "tpDataSummary" + Me.tpDataSummary.Padding = New System.Windows.Forms.Padding(3) + Me.tpDataSummary.Size = New System.Drawing.Size(987, 491) + Me.tpDataSummary.TabIndex = 5 + Me.tpDataSummary.Text = "Summary Statistics" + Me.tpDataSummary.UseVisualStyleBackColor = True + ' + 'dataSummary + ' + Me.dataSummary.Dock = System.Windows.Forms.DockStyle.Fill + Me.dataSummary.Location = New System.Drawing.Point(3, 3) + Me.dataSummary.Name = "dataSummary" + Me.dataSummary.Size = New System.Drawing.Size(981, 485) + Me.dataSummary.TabIndex = 0 + ' + 'tpBoxWhisker + ' + Me.tpBoxWhisker.Controls.Add(Me.boxWhisker) + Me.tpBoxWhisker.Location = New System.Drawing.Point(4, 5) + Me.tpBoxWhisker.Name = "tpBoxWhisker" + Me.tpBoxWhisker.Size = New System.Drawing.Size(987, 491) + Me.tpBoxWhisker.TabIndex = 4 + Me.tpBoxWhisker.Text = "Box/Whisker" + Me.tpBoxWhisker.UseVisualStyleBackColor = True + ' + 'boxWhisker + ' + Me.boxWhisker.Dock = System.Windows.Forms.DockStyle.Fill + Me.boxWhisker.Location = New System.Drawing.Point(0, 0) + Me.boxWhisker.Name = "boxWhisker" + Me.boxWhisker.ShowPointValues = False + Me.boxWhisker.Size = New System.Drawing.Size(987, 491) + Me.boxWhisker.TabIndex = 0 + ' + 'tpHistogram + ' + Me.tpHistogram.Controls.Add(Me.histogramPlot) + Me.tpHistogram.Location = New System.Drawing.Point(4, 5) + Me.tpHistogram.Name = "tpHistogram" + Me.tpHistogram.Size = New System.Drawing.Size(987, 491) + Me.tpHistogram.TabIndex = 3 + Me.tpHistogram.Text = "Histogram" + Me.tpHistogram.UseVisualStyleBackColor = True + ' + 'histogramPlot + ' + Me.histogramPlot.Dock = System.Windows.Forms.DockStyle.Fill + Me.histogramPlot.Location = New System.Drawing.Point(0, 0) + Me.histogramPlot.Name = "histogramPlot" + Me.histogramPlot.ShowPointValues = False + Me.histogramPlot.Size = New System.Drawing.Size(987, 491) + Me.histogramPlot.TabIndex = 0 + ' + 'tpProbability + ' + Me.tpProbability.Controls.Add(Me.probabilityPlot) + Me.tpProbability.Location = New System.Drawing.Point(4, 5) + Me.tpProbability.Name = "tpProbability" + Me.tpProbability.Size = New System.Drawing.Size(987, 491) + Me.tpProbability.TabIndex = 2 + Me.tpProbability.Text = "Probability" + Me.tpProbability.UseVisualStyleBackColor = True + ' + 'probabilityPlot + ' + Me.probabilityPlot.AppManager = Nothing + Me.probabilityPlot.Dock = System.Windows.Forms.DockStyle.Fill + Me.probabilityPlot.Location = New System.Drawing.Point(0, 0) + Me.probabilityPlot.Name = "probabilityPlot" + Me.probabilityPlot.SeriesSelector = Nothing + Me.probabilityPlot.ShowPointValues = False + Me.probabilityPlot.Size = New System.Drawing.Size(987, 491) + Me.probabilityPlot.TabIndex = 0 + ' + 'tpTimeSeries + ' + Me.tpTimeSeries.Controls.Add(Me.timeSeriesPlot) + Me.tpTimeSeries.Location = New System.Drawing.Point(4, 5) + Me.tpTimeSeries.Name = "tpTimeSeries" + Me.tpTimeSeries.Size = New System.Drawing.Size(987, 491) + Me.tpTimeSeries.TabIndex = 1 + Me.tpTimeSeries.Text = "Time Series" + Me.tpTimeSeries.UseVisualStyleBackColor = True + ' + 'timeSeriesPlot + ' + Me.timeSeriesPlot.AppManager = Nothing + Me.timeSeriesPlot.Dock = System.Windows.Forms.DockStyle.Fill + Me.timeSeriesPlot.Location = New System.Drawing.Point(0, 0) + Me.timeSeriesPlot.Name = "timeSeriesPlot" + Me.timeSeriesPlot.SeriesSelector = Nothing + Me.timeSeriesPlot.ShowPointValues = False + Me.timeSeriesPlot.Size = New System.Drawing.Size(987, 491) + Me.timeSeriesPlot.TabIndex = 0 + ' + 'tcPlots + ' + Me.tcPlots.Appearance = System.Windows.Forms.TabAppearance.Buttons + Me.tcPlots.Controls.Add(Me.tpTimeSeries) + Me.tcPlots.Controls.Add(Me.tpProbability) + Me.tcPlots.Controls.Add(Me.tpHistogram) + Me.tcPlots.Controls.Add(Me.tpBoxWhisker) + Me.tcPlots.Controls.Add(Me.tpDataSummary) + Me.tcPlots.Dock = System.Windows.Forms.DockStyle.Fill + Me.tcPlots.ItemSize = New System.Drawing.Size(0, 1) + Me.tcPlots.Location = New System.Drawing.Point(0, 0) + Me.tcPlots.Name = "tcPlots" + Me.tcPlots.SelectedIndex = 0 + Me.tcPlots.Size = New System.Drawing.Size(995, 500) + Me.tcPlots.SizeMode = System.Windows.Forms.TabSizeMode.Fixed + Me.tcPlots.TabIndex = 1 + ' + 'MainControl + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.BackColor = System.Drawing.Color.FromArgb(CType(CType(191, Byte), Integer), CType(CType(219, Byte), Integer), CType(CType(255, Byte), Integer)) + Me.Controls.Add(Me.tcPlots) + Me.Name = "MainControl" + Me.Size = New System.Drawing.Size(995, 500) + Me.tpDataSummary.ResumeLayout(False) + Me.tpBoxWhisker.ResumeLayout(False) + Me.tpHistogram.ResumeLayout(False) + Me.tpProbability.ResumeLayout(False) + Me.tpTimeSeries.ResumeLayout(False) + Me.tcPlots.ResumeLayout(False) + Me.ResumeLayout(False) + + End Sub + Friend WithEvents dataSummary As DataSummary + Friend WithEvents boxWhisker As BoxWhiskerPlot + Friend WithEvents histogramPlot As HistogramPlot + Friend WithEvents probabilityPlot As ProbabilityPlot + Friend WithEvents timeSeriesPlot As TimeSeriesPlot + Private WithEvents tcPlots As System.Windows.Forms.TabControl + Private WithEvents tpDataSummary As System.Windows.Forms.TabPage + Private WithEvents tpBoxWhisker As System.Windows.Forms.TabPage + Private WithEvents tpHistogram As System.Windows.Forms.TabPage + Private WithEvents tpProbability As System.Windows.Forms.TabPage + Private WithEvents tpTimeSeries As System.Windows.Forms.TabPage + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/MainControl.resx b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/MainControl.resx new file mode 100644 index 00000000..c7e0d4bd --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/MainControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/MainControl.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/MainControl.vb new file mode 100644 index 00000000..240e2540 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/MainControl.vb @@ -0,0 +1,178 @@ +Imports HydroDesktop.Database +Imports HydroDesktop.Interfaces + +Namespace Controls + + Public Class MainControl + +#Region "Fields" + + Private ReadOnly _parent As GraphViewPlugin + Private ReadOnly _charts As ICollection(Of IChart) + Private ReadOnly _seriesPlotInfo As SeriesPlotInfo + +#End Region + +#Region "Constructors" + + Public Sub New(ByVal parent As GraphViewPlugin) + ' This call is required by the Windows Form Designer. + InitializeComponent() + + _parent = parent + _charts = {timeSeriesPlot, probabilityPlot, histogramPlot, boxWhisker} + + 'assign the events + AddHandler tcPlots.Selected, AddressOf PlotSelected + AddHandler _parent.SeriesSelector.SeriesCheck, AddressOf SeriesSelector_SeriesCheck + AddHandler _parent.IsPanelActiveChanged, AddressOf OnIsPanelActiveChanged + AddHandler Disposed, AddressOf OnDisposing + + probabilityPlot.SeriesSelector = parent.SeriesSelector + probabilityPlot.AppManager = parent.App + timeSeriesPlot.SeriesSelector = parent.SeriesSelector + timeSeriesPlot.AppManager = parent.App + + _parent.PlotOptions.StartDateLimit = Today.AddYears(-150) + _parent.PlotOptions.EndDateLimit = Today + + _seriesPlotInfo = New SeriesPlotInfo(_parent.SeriesSelector.SiteDisplayColumn, _parent.PlotOptions) + End Sub + + + Private Sub OnDisposing(ByVal sender As Object, ByVal e As EventArgs) + ' Unsubscribe from events + RemoveHandler _parent.SeriesSelector.SeriesCheck, AddressOf SeriesSelector_SeriesCheck + RemoveHandler _parent.IsPanelActiveChanged, AddressOf OnIsPanelActiveChanged + End Sub + + Private ReadOnly Property IsVisible() As Boolean + Get + Return _parent.IsPanelActive + End Get + End Property + + Private _needToRefresh As Boolean + Private Sub OnIsPanelActiveChanged() + If (Not IsVisible) Then Return + + If (_needToRefresh) Then + _needToRefresh = False + ApplyOptions() + End If + End Sub + +#End Region + + Public ReadOnly Property SeriesPlotInfo() As SeriesPlotInfo + Get + Return _seriesPlotInfo + End Get + End Property + +#Region "Public Methods" + + Public Sub ShowTimeSeriesPlot() + tcPlots.SelectTab(tpTimeSeries) + End Sub + + Public Sub ShowProbabilityPlot() + tcPlots.SelectTab(tpProbability) + End Sub + + Public Sub ShowHistogramPlot() + tcPlots.SelectTab(tpHistogram) + End Sub + + Public Sub ShowBoxWhiskerPlot() + tcPlots.SelectTab(tpBoxWhisker) + End Sub + + Public Sub ShowSummaryPlot() + tcPlots.SelectTab(tpDataSummary) + End Sub + + Public Sub ApplyOptions(Optional ByVal refreshData As Boolean = False) + If refreshData Then + _seriesPlotInfo.Update() + End If + + For Each id In _seriesPlotInfo.GetSeriesIDs() + DateRangeSelection(id) + Next + PlotSelected() + End Sub + + Private Sub PlotSelected() + Dim plot = DirectCast(tcPlots.SelectedTab.Controls(0), IPlot) + If IsNothing(plot) Then Return + plot.Plot(_seriesPlotInfo) + End Sub + + Public Sub ShowPointValues(ByVal showPointValues As Boolean) + For Each chart As IChart In _charts + chart.ShowPointValues = showPointValues + Next + End Sub + + Public Sub UndoZoom() + For Each chart As IChart In _charts + chart.ZoomOutAll() + Next + End Sub + + Public Sub ZoomIn() + For Each chart As IChart In _charts + chart.ZoomIn() + Next + End Sub + + Public Sub ZoomOut() + For Each chart As IChart In _charts + chart.ZoomOut() + Next + End Sub + +#End Region + +#Region "Private methods" + + Private Sub SeriesSelector_SeriesCheck(ByVal sender As Object, ByVal e As SeriesEventArgs) + _seriesPlotInfo.Update(e) + + If (Not IsVisible) Then + _needToRefresh = True + Return + End If + + ApplyOptions() + End Sub + + Private Sub DateRangeSelection(ByVal serieID As Integer) + Dim repository = RepositoryFactory.Instance.Get(Of IDataSeriesRepository)() + Dim range = repository.GetDatesRange(serieID) + If range Is Nothing Then Return + + Dim bDateTime = range.Item1 + Dim eDateTime = range.Item2 + Dim plotOptions = _parent.PlotOptions + + If plotOptions.StartDateLimit > bDateTime Or plotOptions.StartDateLimit = Today.AddYears(-150) Then + plotOptions.StartDateLimit = bDateTime + End If + If plotOptions.EndDateLimit < eDateTime Or plotOptions.EndDateLimit = Today Then + plotOptions.EndDateLimit = eDateTime + End If + + If _parent.PlotOptions.DisplayFullDate Then + plotOptions.StartDateTime = plotOptions.StartDateLimit + plotOptions.EndDateTime = plotOptions.EndDateLimit + End If + + End Sub + +#End Region + + End Class + +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/OneSeriesPlotInfo.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/OneSeriesPlotInfo.vb new file mode 100644 index 00000000..9aae4f09 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/OneSeriesPlotInfo.vb @@ -0,0 +1,37 @@ +Option Strict On + +Imports System.Drawing + +Namespace Controls + Public Class OneSeriesPlotInfo + Private ReadOnly _parent As SeriesPlotInfo + + Public Sub New(ByVal parent As SeriesPlotInfo) + _parent = parent + End Sub + + Public Property DataTable As DataTable + Public Property SiteName As String + Public Property VariableName As String + Public Property DataType As String + Public Property VariableUnits As String + Public ReadOnly Property PlotOptions As PlotOptions + Get + Return _parent.PlotOptions + End Get + End Property + Public Property SeriesID As Integer + Public Property LineColor As Color = Color.Black + Public Property PointColor As Color = Color.Black + Public Property Statistics() As SummaryStatistics + + ''' + ''' Returns string which contains Variable with Units. If Units is "unknown"" then only Variable returned. + ''' + ''' Variable with Units. + Public Function GetVariableWithUnitsString() As String + Return If(String.IsNullOrEmpty(VariableUnits) OrElse String.Equals(VariableUnits, "unknown", StringComparison.OrdinalIgnoreCase), + VariableName, VariableName & " - " & VariableUnits) + End Function + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ProbabilityPlot.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ProbabilityPlot.Designer.vb new file mode 100644 index 00000000..c881a616 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ProbabilityPlot.Designer.vb @@ -0,0 +1,59 @@ +Imports HydroDesktop.ZedGraphEx + +Namespace Controls + _ + Partial Class ProbabilityPlot + Inherits System.Windows.Forms.UserControl + + 'UserControl overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container + Me.zgProbabilityPlot = New ZedGraphControlEx + Me.SuspendLayout() + ' + 'zgProbabilityPlot + ' + Me.zgProbabilityPlot.Dock = System.Windows.Forms.DockStyle.Fill + Me.zgProbabilityPlot.Location = New System.Drawing.Point(0, 0) + Me.zgProbabilityPlot.Name = "zgProbabilityPlot" + Me.zgProbabilityPlot.ScrollMaxX = 0 + Me.zgProbabilityPlot.ScrollMaxY = 0 + Me.zgProbabilityPlot.ScrollMaxY2 = 0 + Me.zgProbabilityPlot.ScrollMinX = 0 + Me.zgProbabilityPlot.ScrollMinY = 0 + Me.zgProbabilityPlot.ScrollMinY2 = 0 + Me.zgProbabilityPlot.Size = New System.Drawing.Size(200, 200) + Me.zgProbabilityPlot.TabIndex = 0 + ' + 'ProbabilityPlot + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.Controls.Add(Me.zgProbabilityPlot) + Me.Name = "ProbabilityPlot" + Me.Size = New System.Drawing.Size(200, 200) + Me.ResumeLayout(False) + + End Sub + Friend WithEvents zgProbabilityPlot As ZedGraphControlEx + + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ProbabilityPlot.resx b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ProbabilityPlot.resx new file mode 100644 index 00000000..ff31a6db --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ProbabilityPlot.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/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ProbabilityPlot.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ProbabilityPlot.vb new file mode 100644 index 00000000..0d18bd60 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/ProbabilityPlot.vb @@ -0,0 +1,691 @@ +Imports System.Windows.Forms +Imports System.Drawing +Imports DotSpatial.Controls +Imports HydroDesktop.Database +Imports HydroDesktop.Interfaces +Imports HydroDesktop.Plugins.GraphView.My.Resources +Imports HydroDesktop.Interfaces.ObjectModel +Imports HydroDesktop.Interfaces.PluginContracts +Imports ZedGraph + +Namespace Controls + + Public Class ProbabilityPlot + Implements IChart + + Private Shared ReadOnly m_VarList As New List(Of String) + Public Property SeriesSelector() As ISeriesSelector + Public Property AppManager() As AppManager + + Private Function CurveCount() As Int32 + Return zgProbabilityPlot.GraphPane.CurveList.Count + End Function + + Private Sub SetGraphPaneTitle(ByVal title As String) + zgProbabilityPlot.GraphPane.Title.Text = title + zgProbabilityPlot.GraphPane.Title.FontSpec.Size = 14 + End Sub + + Private Sub Plot(ByVal options As OneSeriesPlotInfo) + Dim m_VariableWithUnits = options.GetVariableWithUnitsString() + m_VarList.Add(m_VariableWithUnits) + PlotProbability(options) + End Sub + + Private Sub Clear() + Dim gPane As GraphPane = zgProbabilityPlot.GraphPane + gPane.CurveList.Clear() + gPane.Title.Text = MessageStrings.No_Data_Plot + gPane.Title.FontSpec.Size = 14 + gPane.XAxis.IsVisible = False + gPane.YAxis.IsVisible = False + gPane.Y2Axis.IsVisible = False + gPane.GraphObjList.Clear() + zgProbabilityPlot.IsShowVScrollBar = False + zgProbabilityPlot.IsShowHScrollBar = False + zgProbabilityPlot.Refresh() + End Sub + + Public Sub Plot(ByVal seriesPlotInfo As SeriesPlotInfo) Implements IPlot.Plot + Clear() + For Each oneSeriesInfo In seriesPlotInfo.GetSeriesInfo() + If oneSeriesInfo.Statistics.NumberOfObservations > oneSeriesInfo.Statistics.NumberOfCensoredObservations Then + Plot(oneSeriesInfo) + ElseIf oneSeriesInfo.Statistics.NumberOfObservations = oneSeriesInfo.Statistics.NumberOfCensoredObservations Then + If CurveCount() = 0 Then SetGraphPaneTitle(MessageStrings.All_Data_Censored) + End If + Next + + Refreshing() + End Sub + +#Region " Probability " + + Private Sub PlotProbability(ByVal options As OneSeriesPlotInfo) + + Dim m_Data = options.DataTable + Dim m_Site = options.SiteName + Dim m_VariableWithUnits = options.GetVariableWithUnitsString() + Dim m_Options = options.PlotOptions + + Dim i As Integer 'counter + Dim gPane As GraphPane 'GraphPane of the zgProbability plot object -> used to set data and characteristics + 'Dim g As Drawing.Graphics 'graphics object of the zgProbability plot object -> used to redraw/update the plot + Dim ptList As PointPairList 'collection of points for the Probability plot + Dim probLine As LineItem + Dim validRows() As DataRow + Dim numRows As Integer + Dim curValue As Double + Dim curX As Double + Dim curFreq As Double + Try + + '1. Set the Graph Pane, graphics object + gPane = zgProbabilityPlot.GraphPane + + 'get all data(even censored ones), order by Value + validRows = m_Data.Select("", "DataValue ASC") + numRows = validRows.GetLength(0) + + ' '5. Set Graph Properties + 'Else + ''turn on the legend + If m_Options.ShowLegend Then + gPane.Legend.IsVisible = True + gPane.Legend.Position = 12 + Else + gPane.Legend.IsVisible = False + End If + ''turn on scroll bar + zgProbabilityPlot.IsShowVScrollBar = True + zgProbabilityPlot.IsShowHScrollBar = True + zgProbabilityPlot.IsAutoScrollRange = True + If gPane.IsZoomed() = True Then + zgProbabilityPlot.ZoomOutAll(gPane) + End If + 'x-axis + gPane.XAxis.IsVisible = True + gPane.XAxis.MajorTic.Size = 0 + gPane.XAxis.MinorTic.Size = 0 + gPane.XAxis.Title.Text = vbCrLf & vbCrLf & "Cumulative Frequency < Stated Value %" + gPane.XAxis.Title.FontSpec.Size = 12 + gPane.XAxis.Title.Gap = 0.2 + gPane.XAxis.Type = AxisType.Linear + gPane.XAxis.Scale.IsVisible = False + gPane.XAxis.Scale.Min = -4.0 + gPane.XAxis.Scale.Max = 4.0 + gPane.XAxis.MajorTic.IsAllTics = False + gPane.XAxis.Scale.MinGrace = 0 + gPane.XAxis.Scale.MaxGrace = 0 + + 'Title + While (GetStringLen(m_Site, gPane.Title.FontSpec.GetFont(gPane.CalcScaleFactor)) > zgProbabilityPlot.Width) + m_Site = GraphTitleBreaks(m_Site) + End While + + 'Setting title + gPane.Title.Text = m_VariableWithUnits & vbCrLf & " at " & m_Site + gPane.Title.FontSpec.Size = 14 + + '6. Create the Pts for the Line + ptList = New PointPairList + + 'Dim ptListF As New ZedGraph.PointPairList + For i = 0 To numRows - 1 + 'get the y component + curValue = validRows(i).Item("DataValue") + 'curX = CalculateProbabilityXPosition(i / numRows) + curFreq = CalculateProbabilityFreq(i + 1, numRows) + curX = CalculateProbabilityXPosition(curFreq) + 'NOTE: use i+1 so rank = 1 -> N + + 'plot the point + If curValue >= 0 Then + Dim p As New PointPair(curX, curValue, "(" & curFreq * 100 & ", " & curValue & ")") + p.Tag = validRows(i).Item("CensorCode").ToString + If m_Options.IsPlotCensored Then + If Not DataValue.IsCensored(p.Tag.ToString) Then + p.ColorValue = 0 + Else + p.ColorValue = 1 + End If + ptList.Add(p) + Else + If DataValue.IsCensored(p.Tag.ToString) Then + ptList.Add(p) + End If + End If + End If + Next i + + '7. Plot the Data + 'create the points + 'probLine = New ZedGraph.LineItem("ProbCurve") + probLine = gPane.AddCurve(m_Site, ptList, options.LineColor, SymbolType.Circle) + probLine.Tag = options + probLine.Symbol.Fill = New Fill(options.PointColor) + probLine.Symbol.Size = 4 + probLine.Symbol.Fill.Type = FillType.Solid + probLine.Symbol.Border.IsVisible = False + probLine.Line.IsVisible = False + + Select Case m_Options.TimeSeriesMethod + Case TimeSeriesType.Line + probLine.Line.IsVisible = True + probLine.Symbol.IsVisible = False + Case TimeSeriesType.Point + probLine.Line.IsVisible = False + probLine.Symbol.IsVisible = True + Case TimeSeriesType.None + probLine.Line.IsVisible = False + probLine.Symbol.IsVisible = False + Case Else + probLine.Line.IsVisible = True + probLine.Symbol.IsVisible = True + End Select + + 'Setting Legend Title + Dim needShowDataType = False + For Each c In zgProbabilityPlot.GraphPane.CurveList + Dim cOptions = DirectCast(c.Tag, OneSeriesPlotInfo) + + For Each cc In zgProbabilityPlot.GraphPane.CurveList + If Not ReferenceEquals(c, cc) Then + Dim ccOptions = DirectCast(cc.Tag, OneSeriesPlotInfo) + If ccOptions.SiteName = cOptions.SiteName And + ccOptions.VariableName = cOptions.VariableName Then + needShowDataType = True + Exit For + End If + End If + Next + Next + If Not needShowDataType Then + ' Set legend only for current curve + probLine.Label.Text = options.SiteName + ", " + options.VariableName + ", ID: " + options.SeriesID.ToString + If probLine.Label.Text.Length > 70 Then + probLine.Label.Text = probLine.Label.Text.Substring(0, 70) + "..." + End If + Else + ' Update legend for all curves + For Each c In zgProbabilityPlot.GraphPane.CurveList + Dim cOptions = DirectCast(c.Tag, OneSeriesPlotInfo) + c.Label.Text = cOptions.SiteName + ", " + cOptions.VariableName + ", " + cOptions.DataType + ", ID: " + cOptions.SeriesID.ToString + If probLine.Label.Text.Length > 70 Then + probLine.Label.Text = probLine.Label.Text.Substring(0, 70) + "..." + End If + Next + End If + + 'Setting Y Axis + probLine.Link.Title = m_VariableWithUnits + + '8. set up Tic Marks + + For i = 0 To 20 + AddLabelToPlot(gPane, GetProbabilityLabel(i), GetProbabilityValue(i)) + Next i + + 'set up scrolling + zgProbabilityPlot.IsAutoScrollRange = False + zgProbabilityPlot.ScrollMinX = -4.0 + zgProbabilityPlot.ScrollMaxX = 4.0 + zgProbabilityPlot.ScrollMinY = 0 + zgProbabilityPlot.ScrollMaxY = 1.025 * m_Data.Compute("MAX(DataValue)", "") + 'draw the plot + 'zgProbabilityPlot.AxisChange() + 'zgProbabilityPlot.Refresh() + SettingYAsixs() + SettingTitle() + + 'End If + Catch ex As Exception + 'show an error message + Throw New Exception("An Error occurred while graphing the Probability Plot on the Visualize Tab." & vbCrLf & "Message = " & ex.Message, ex) + End Try + End Sub + + Private Function CalculateProbabilityXPosition(ByVal freq As Double) As Double + 'Calculates the position along the x-axis to place the dot -> only used on the Probability Plot + 'Based on a normal curve distribution, Code is from Dr. Stevens + 'Inputs: freq -> used to calculate the position so has a normal distribution look -> (i/numrows) + 'Outputs: Double -> the x-position to plot the point at + Try + Return Math.Round(4.91 * (freq ^ 0.14 - (1.0# - freq) ^ 0.14), 3) + Catch ex As Exception + Throw New Exception("An Error occurred while calculating the X-Position for a point in the Probability Plot." & vbCrLf & "Message= " & ex.Message, ex) + End Try + End Function + + Private Function CalculateProbabilityFreq(ByVal rank As Integer, ByVal numRows As Integer) As Double + Try + Return Math.Round((rank - 0.375) / (numRows + 1 - 2 * (0.375)), 3) + Catch ex As Exception + + End Try + End Function + + Private Function GetProbabilityLabel(ByVal index As Integer) As String + Select Case index + Case 0 + Return "0.01" + Case 1 + Return "0.02" + Case 2 + Return "0.1" + Case 3 + Return "1" + Case 4 + Return "2" + Case 5 + Return "5" + Case 6 + Return "10" + Case 7 + Return "20" + Case 8 + Return "30" + Case 9 + Return "40" + Case 10 + Return "50" + Case 11 + Return "60" + Case 12 + Return "70" + Case 13 + Return "80" + Case 14 + Return "90" + Case 15 + Return "95" + Case 16 + Return "98" + Case 17 + Return "99" + Case 18 + Return "99.9" + Case 19 + Return "99.98" + Case 20 + Return "99.99" + Case Else + Return "" + End Select + End Function + + Private Function GetProbabilityValue(ByVal index As Integer) As Double + Select Case index + Case 0 + Return -3.892 + Case 1 + Return -3.5 + Case 2 + Return -3.095 + Case 3 + Return -2.323 + Case 4 + Return -2.055 + Case 5 + Return -1.645 + Case 6 + Return -1.282 + Case 7 + Return -0.842 + Case 8 + Return -0.542 + Case 9 + Return -0.254 + Case 10 + Return 0 + Case 11 + Return 0.254 + Case 12 + Return 0.524 + Case 13 + Return 0.842 + Case 14 + Return 1.282 + Case 15 + Return 1.645 + Case 16 + Return 2.055 + Case 17 + Return 2.323 + Case 18 + Return 3.095 + Case 19 + Return 3.5 + Case 20 + Return 3.892 + Case Else + Return "" + End Select + End Function + +#End Region + + Private Sub zgProbabilityPlot_ContextMenuBuilder(ByVal sender As ZedGraphControl, ByVal menuStrip As ContextMenuStrip, ByVal mousePt As Point, ByVal objState As ZedGraphControl.ContextMenuObjectState) Handles zgProbabilityPlot.ContextMenuBuilder + ' from http://zedgraph.org/wiki/index.php?title=Edit_the_Context_Menu + ' Create a new menu item + Dim item As ToolStripMenuItem = New ToolStripMenuItem() + ' This is the user-defined Tag so you can find this menu item later if necessary + item.Name = "export_to_text_file" + item.Tag = "export_to_text_file" + ' This is the text that will show up in the menu + item.Text = "Export Frequency Data" + ' Add a handler that will respond when that menu item is selected + AddHandler item.Click, AddressOf ExportToTextFile + ' Add the menu item to the menu + menuStrip.Items.Add(item) + End Sub + Protected Sub ExportToTextFile() + 'Check selected series + Dim checkedSeries As Integer = SeriesSelector.CheckedIDList.Count() + + 'Check if there is any series to export + If (checkedSeries <= 0) Then + MessageBox.Show("No Data To Export") + + Else + + 'Build a datatable to export + Dim exportTable As DataTable = New DataTable + + 'Build datatable for each series and then add all series' datatable to the exportTable + + Dim repo = RepositoryFactory.Instance.Get(Of IDataValuesRepository)() + For count As Integer = 1 To checkedSeries + + 'Build a datatable as "totalData" for each series + + Dim totalData As DataTable = New DataTable + + 'Add columns in the table + Dim column1 As DataColumn = New DataColumn("Number") + Dim column2 As DataColumn = New DataColumn("Value") + Dim column3 As DataColumn = New DataColumn("Frequency") + + totalData.Columns.Add(column1) + totalData.Columns.Add(column2) + totalData.Columns.Add(column3) + + 'Add sites information for the series + Dim row As DataRow + row = totalData.NewRow() + 'TODO: use the series name + row(0) = SeriesSelector.CheckedIDList(count - 1) + totalData.Rows.Add(row) + + row = totalData.NewRow() + row(0) = m_VarList(count - 1) + totalData.Rows.Add(row) + + Dim head(2) As Object + head(0) = "Number" + head(1) = "Value" + head(2) = "Frequency (%)" + row = totalData.NewRow() + row.ItemArray = head + totalData.Rows.Add(row) + + 'Select datavalue from database + + Dim values = repo.GetValues(SeriesSelector.CheckedIDList(count - 1)).OrderBy(Function(x) x) + Dim numRow = values.Count() + + 'Add non-repeated frequency data into "totalData" datatable + For r As Integer = 0 To numRow - 1 + Dim row_count As Integer = totalData.Rows.Count() + row = totalData.NewRow() + row(0) = row_count - 2 + row(1) = values(r) + row(2) = CalculateProbabilityFreq(r + 1, numRow) * 100 + + If r = 0 Then + totalData.Rows.Add(row) + ElseIf row(2) = totalData.Rows(row_count - 1).Item(2) Or row(1) = totalData.Rows(row_count - 1).Item(1) Then + + Else + totalData.Rows.Add(row) + End If + Next r + + 'Add or append totalData into exportTable + If count = 1 Then + exportTable = totalData.Copy() + Else + exportTable.Merge(totalData, True) + End If + + Next count + + 'Export Data + If (AppManager IsNot Nothing) Then + Dim exportPlugin = AppManager.Extensions.OfType(Of IDataExportPlugin).FirstOrDefault() + If exportPlugin IsNot Nothing Then + exportPlugin.Export(exportTable) + End If + End If + + End If + End Sub + + Private Sub AddLabelToPlot(ByRef gpane As GraphPane, ByVal label As String, ByVal xLoc As Double) + Dim myText As TextObj + Dim myTic As TextObj + Try + myText = New TextObj(label, xLoc, 1.05, CoordType.XScaleYChartFraction) + myText.FontSpec.Size = 13 + myText.FontSpec.Border.IsVisible = False + myText.FontSpec.Fill = New Fill(Color.FromArgb(25, Color.White)) + gpane.GraphObjList.Add(myText) + myTic = New TextObj("|", xLoc, 0.997, CoordType.XScaleYChartFraction) + myTic.FontSpec.Size = 12.0 + myTic.FontSpec.Border.IsVisible = False + myTic.FontSpec.Fill = New Fill(Color.FromArgb(25, Color.White)) + gpane.GraphObjList.Add(myTic) + Catch ex As Exception + Throw New Exception("An Error occurred while creating an X-Axis Label for a plot on the Visualize Tab." & vbCrLf & "Message = " & ex.Message, ex) + End Try + End Sub + + Public Function GraphTitleBreaks(ByVal s As String) As String + Dim offset As Integer + For offset = 0 To ((s.Length - 1) \ 2) + If (((s.Length - 1) \ 2) - offset) > 0 AndAlso (s(((s.Length - 1) \ 2) - offset) = " ") Then + Return s.Substring(0, (((s.Length - 1) \ 2) - offset)) & vbCrLf & s.Substring(((s.Length - 1) \ 2) - offset) + ElseIf (((s.Length) \ 2) + offset) > 0 AndAlso (s(((s.Length) \ 2) + offset) = " ") Then + Return s.Substring(0, ((s.Length \ 2) + offset)) & vbCrLf & s.Substring((s.Length \ 2) + offset) + End If + Next offset + Return (s.Substring(0, (((s.Length - 1) \ 2))) & vbCrLf & s.Substring(((s.Length - 1) \ 2))) + End Function + + Public Function GetStringLen(ByVal s As String) As Integer + 'calculates the the length of the string s in pixels + 'Inputs: s -> the string to find the length of + 'Outputs: Integer -> the length of the string s in pixels + Dim l As New Windows.Forms.Label 'used to find the length of the string in pixels + l.Text = s + l.AutoSize = True + Return l.Width + End Function + + Public Function GetStringLen(ByVal s As String, ByVal stringFormat As Font) As Integer + 'calculates the the length of the string s in pixels + 'Inputs: s -> the string to find the length of + 'Outputs: Integer -> the length of the string s in pixels + Dim l As New Windows.Forms.Label 'used to find the length of the string in pixels + 'l.Height = 13 + 'l.Width = 100 + l.Text = s + l.Font = stringFormat + l.AutoSize = True + Return l.PreferredWidth + End Function + + Public Sub New() + + ' This call is required by the Windows Form Designer. + InitializeComponent() + + ' Add any initialization after the InitializeComponent() call. + zgProbabilityPlot.GraphPane.Legend.IsVisible = False + zgProbabilityPlot.GraphPane.Border.IsVisible = False + End Sub + + Private Sub Refreshing() + zgProbabilityPlot.AxisChange() + zgProbabilityPlot.Refresh() + End Sub + + Private Sub Remove(ByVal curveIndex As Integer) + 'added by jiri to prevent unhandled exception + If zgProbabilityPlot.GraphPane.CurveList.Count = 0 Then + Return + End If + + Dim CurveListCopy As New CurveList + For i = 0 To zgProbabilityPlot.GraphPane.CurveList.Count - 1 + CurveListCopy.Add(zgProbabilityPlot.GraphPane.CurveList(i)) + Next + 'zgProbabilityPlot.GraphPane.CurveList(curveIndex).Clear() + zgProbabilityPlot.GraphPane.CurveList.Clear() + + For i = 0 To CurveListCopy.Count - 1 + If Not (i = curveIndex) Then + zgProbabilityPlot.GraphPane.CurveList.Add(CurveListCopy(i)) + End If + Next + SettingYAsixs() + SettingTitle() + + End Sub + + Private Sub SettingTitle() + Dim IsSame As Boolean = True + + With zgProbabilityPlot.GraphPane + .Title.IsVisible = True + If .CurveList.Count > 1 Then + For i As Integer = 1 To .CurveList.Count - 1 + If Not .CurveList(i).Link.Title = .CurveList(i - 1).Link.Title Then + IsSame = False + End If + Next + If IsSame Then + .Title.Text = .CurveList(0).Link.Title + Else + .Title.Text = "Multiple Probability" + End If + ElseIf .CurveList.Count = 1 Then + '.Title.Text = .CurveList(0).Link.Title + .Legend.IsVisible = False + ElseIf .CurveList.Count = 0 Then + .Title.Text = MessageStrings.No_Data_Plot + End If + + End With + + 'ZedGraph apparently doesn't play nice on Mac OS when a Title and Legend are visible. + 'As a temporary measure, we will remove these two things. + If DotSpatial.Mono.Mono.IsRunningOnMono() Then + zgProbabilityPlot.GraphPane.Title.IsVisible = False + zgProbabilityPlot.GraphPane.Legend.IsVisible = False + End If + End Sub + + Private Sub SettingYAsixs() + Dim AsixsList As New ArrayList() + + With zgProbabilityPlot.GraphPane + + For i As Integer = 0 To .CurveList.Count - 1 + If Not AsixsList.Contains(.CurveList(i).Link.Title) Then + AsixsList.Add(.CurveList(i).Link.Title) + End If + Next + + .YAxisList.Clear() + .Y2AxisList.Clear() + For i As Integer = 0 To AsixsList.Count - 1 + If i Mod 2 = 0 Then + Dim NewAsix As New YAxis() + NewAsix.Title.Text = AsixsList(i) + NewAsix.Title.FontSpec.Size = 12 + If NewAsix.Title.Text.Length > 40 Then + NewAsix.Title.Text = NewAsix.Title.Text.Substring(0, 40) + "..." + End If + NewAsix.MajorTic.IsInside = False + NewAsix.MinorTic.IsInside = False + NewAsix.MajorTic.IsOpposite = False + NewAsix.MinorTic.IsOpposite = False + .YAxisList.Add(NewAsix) + Else + Dim NewAsix As New Y2Axis() + NewAsix.Title.Text = AsixsList(i) + NewAsix.Title.FontSpec.Size = 12 + If NewAsix.Title.Text.Length > 40 Then + NewAsix.Title.Text = NewAsix.Title.Text.Substring(0, 40) + "..." + End If + NewAsix.MajorTic.IsInside = False + NewAsix.MinorTic.IsInside = False + NewAsix.MajorTic.IsOpposite = False + NewAsix.MinorTic.IsOpposite = False + .Y2AxisList.Add(NewAsix) + End If + Next + + If .YAxisList.Count = 0 Then + .YAxisList.Add("") + End If + If .Y2AxisList.Count = 0 Then + .Y2AxisList.Add("") + End If + + For i As Integer = 0 To .CurveList.Count - 1 + + For j As Integer = 0 To .YAxisList.Count - 1 + If .CurveList(i).Link.Title = .YAxisList(j).Title.Text Then + .CurveList(i).IsY2Axis = False + .CurveList(i).YAxisIndex = j + End If + Next + + For j As Integer = 0 To .Y2AxisList.Count - 1 + If .CurveList(i).Link.Title = .Y2AxisList(j).Title.Text Then + .CurveList(i).IsY2Axis = True + .CurveList(i).YAxisIndex = j + End If + Next + + Next + .Y2Axis.IsVisible = True + End With + + End Sub + + Public Property ShowPointValues() As Boolean Implements IChart.ShowPointValues + Get + Return zgProbabilityPlot.IsShowPointValues + End Get + Set(ByVal value As Boolean) + zgProbabilityPlot.IsShowPointValues = value + End Set + End Property + + Public Sub ZoomIn() Implements IChart.ZoomIn + zgProbabilityPlot.ZoomIn() + End Sub + + Public Sub ZoomOut() Implements IChart.ZoomOut + zgProbabilityPlot.ZoomOut(zgProbabilityPlot.GraphPane) + End Sub + + Public Sub ZoomOutAll() Implements IChart.ZoomOutAll + zgProbabilityPlot.ZoomOutAll(zgProbabilityPlot.GraphPane) + End Sub + + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/SeriesPlotInfo.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/SeriesPlotInfo.vb new file mode 100644 index 00000000..ce0ddabe --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/SeriesPlotInfo.vb @@ -0,0 +1,93 @@ +Option Strict On + +Imports HydroDesktop.Database +Imports HydroDesktop.Interfaces + +Namespace Controls + Public Class SeriesPlotInfo + +#Region "Fields" + + Private ReadOnly _siteDisplayColumn As String + Private ReadOnly _plotOptions As PlotOptions + Private ReadOnly _seriesInfos As IDictionary(Of Integer, OneSeriesPlotInfo) + +#End Region + + Sub New(ByVal siteDisplayColumn As String, ByVal plotOptions As PlotOptions) + _seriesInfos = New Dictionary(Of Integer, OneSeriesPlotInfo)() + _siteDisplayColumn = siteDisplayColumn + _plotOptions = plotOptions + End Sub + + Public Sub Update(ByVal e As SeriesEventArgs) + If Not e.IsChecked Then + _seriesInfos.Remove(e.SeriesID) + Else + _seriesInfos(e.SeriesID) = Nothing + End If + End Sub + + Public Sub Update() + For Each key As Integer In _seriesInfos.Keys.ToList() + _seriesInfos(key) = Nothing + Next + End Sub + + Public ReadOnly Property PlotOptions() As PlotOptions + Get + Return _plotOptions + End Get + End Property + + Public Property IsColorsChanged() As Boolean + + Public Function GetSeriesIDs() As ICollection(Of Integer) + Return _seriesInfos.Keys + End Function + + Public Function GetSeriesInfo() As ICollection(Of OneSeriesPlotInfo) + + Dim list = New List(Of OneSeriesPlotInfo)(_seriesInfos.Count) + + Dim dataSeriesRepo = RepositoryFactory.Instance.Get(Of IDataSeriesRepository)() + Dim dataValuesRepo = RepositoryFactory.Instance.Get(Of IDataValuesRepository)() + For Each key As Integer In _seriesInfos.Keys.ToList() + + Dim seriesInfo = _seriesInfos(key) + If seriesInfo Is Nothing Then + seriesInfo = New OneSeriesPlotInfo(Me) + _seriesInfos(key) = seriesInfo + + Dim seriesId = key + Dim series = dataSeriesRepo.GetByKey(seriesId) + + Dim strStartDate = PlotOptions.StartDateTime + Dim strEndDate = PlotOptions.EndDateTime.AddDays(1).AddMilliseconds(-1) + + Dim nodatavalue = series.Variable.NoDataValue + Dim data = dataValuesRepo.GetTableForGraphView(seriesId, nodatavalue, strStartDate, strEndDate) + Dim variableName = series.Variable.Name + Dim unitsName = series.Variable.VariableUnit.Name + Dim siteName = If(_siteDisplayColumn = "SiteName", series.Site.Name, series.Site.Code) + Dim dataType = series.Variable.DataType + + seriesInfo.DataTable = data + seriesInfo.DataType = dataType + seriesInfo.SeriesID = seriesId + seriesInfo.SiteName = siteName + seriesInfo.VariableName = variableName + seriesInfo.VariableUnits = unitsName + seriesInfo.Statistics = SummaryStatistics.Create(data, PlotOptions.UseCensoredData) + End If + + Dim i = list.Count + seriesInfo.LineColor = _plotOptions.LineColorList(i Mod _plotOptions.LineColorList.Count) + seriesInfo.PointColor = _plotOptions.PointColorList(i Mod _plotOptions.PointColorList.Count) + list.Add(seriesInfo) + Next + Return list + End Function + + End Class +End NameSpace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/SummaryStatistics.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/SummaryStatistics.vb new file mode 100644 index 00000000..a356c28b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/SummaryStatistics.vb @@ -0,0 +1,53 @@ +Imports HydroDesktop.Interfaces.ObjectModel + +Namespace Controls + Public Class SummaryStatistics + Public Property NumberOfObservations() As Integer + Public Property NumberOfCensoredObservations() As Integer + Public Property ArithmeticMean() As Double + Public Property GeometricMean() As Double + Public Property Maximum() As Double + Public Property Minimum() As Double + Public Property StandardDeviation() As Double + Public Property CoefficientOfVariation() As Double + Public Property Percentile10() As Double + Public Property Percentile25() As Double + Public Property Percentile50() As Double + Public Property Percentile75() As Double + Public Property Percentile90() As Double + + Public Shared Function Create(ByVal table As DataTable, ByVal useCensoredData As Boolean) As SummaryStatistics + Dim result = New SummaryStatistics() + + result.NumberOfObservations = Statistics.Count(table) + result.NumberOfCensoredObservations = Statistics.CountCensored(table) + + Dim data = table + If (Not useCensoredData) Then + Dim temp As DataTable = table.Copy + Dim censoredRows() As DataRow = temp.Rows.Cast(Of DataRow).Where(Function(row) DataValue.IsCensored(row("CensorCode"))).ToArray() + + For Each censoredRow As DataRow In censoredRows + temp.Rows.Remove(censoredRow) + Next censoredRow + + data = temp + End If + + result.ArithmeticMean = Statistics.ArithmeticMean(data) + result.GeometricMean = Statistics.GeometricMean(data) + result.Maximum = Statistics.Maximum(data) + result.Minimum = Statistics.Minimum(data) + result.StandardDeviation = Statistics.StandardDeviation(data) + result.CoefficientOfVariation = Statistics.CoefficientOfVariation(data) + + result.Percentile10 = Statistics.Percentile(data, 10) + result.Percentile25 = Statistics.Percentile(data, 25) + result.Percentile50 = Statistics.Percentile(data, 50) + result.Percentile75 = Statistics.Percentile(data, 75) + result.Percentile90 = Statistics.Percentile(data, 90) + + Return result + End Function + End Class +End NameSpace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/TimeSeriesPlot.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/TimeSeriesPlot.Designer.vb new file mode 100644 index 00000000..034be987 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/TimeSeriesPlot.Designer.vb @@ -0,0 +1,61 @@ +Imports HydroDesktop.ZedGraphEx + +Namespace Controls + _ + Partial Class TimeSeriesPlot + Inherits System.Windows.Forms.UserControl + + 'UserControl overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container + Me.zgTimeSeries = New ZedGraphControlEx + Me.SuspendLayout() + ' + 'zgTimeSeries + ' + Me.zgTimeSeries.AutoScroll = True + Me.zgTimeSeries.Dock = System.Windows.Forms.DockStyle.Fill + Me.zgTimeSeries.Location = New System.Drawing.Point(0, 0) + Me.zgTimeSeries.Name = "zgTimeSeries" + Me.zgTimeSeries.ScrollGrace = 0 + Me.zgTimeSeries.ScrollMaxX = 0 + Me.zgTimeSeries.ScrollMaxY = 0 + Me.zgTimeSeries.ScrollMaxY2 = 0 + Me.zgTimeSeries.ScrollMinX = 0 + Me.zgTimeSeries.ScrollMinY = 0 + Me.zgTimeSeries.ScrollMinY2 = 0 + Me.zgTimeSeries.Size = New System.Drawing.Size(200, 200) + Me.zgTimeSeries.TabIndex = 0 + ' + 'cTimeSeriesPlot + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.Controls.Add(Me.zgTimeSeries) + Me.Name = "cTimeSeriesPlot" + Me.Size = New System.Drawing.Size(200, 200) + Me.ResumeLayout(False) + + End Sub + Friend WithEvents zgTimeSeries As ZedGraphControlEx + + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/TimeSeriesPlot.resx b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/TimeSeriesPlot.resx new file mode 100644 index 00000000..ff31a6db --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/TimeSeriesPlot.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/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/TimeSeriesPlot.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/TimeSeriesPlot.vb new file mode 100644 index 00000000..667878f9 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Controls/TimeSeriesPlot.vb @@ -0,0 +1,419 @@ +Imports System.Windows.Forms +Imports System.Drawing +Imports DotSpatial.Controls +Imports HydroDesktop.Database +Imports HydroDesktop.Interfaces +Imports HydroDesktop.Plugins.GraphView.My.Resources +Imports HydroDesktop.Interfaces.ObjectModel +Imports HydroDesktop.Interfaces.PluginContracts +Imports HydroDesktop.Common.Tools +Imports ZedGraph + +Namespace Controls + + Public Class TimeSeriesPlot + Implements IChart + + Public Sub New() + ' This call is required by the Windows Form Designer. + InitializeComponent() + + ' Add any initialization after the InitializeComponent() call. + Dim gPane As GraphPane = zgTimeSeries.GraphPane + gPane.XAxis.Type = AxisType.Date + gPane.YAxis.Type = AxisType.Linear + gPane.Border.IsVisible = False + gPane.Legend.IsVisible = False + gPane.XAxis.IsVisible = False + gPane.YAxis.IsVisible = False + gPane.Y2Axis.IsVisible = False + SetGraphPaneTitle(MessageStrings.No_Data_Plot) + End Sub + + Private Const XColumn As String = "LocalDateTime" + Private Const YColumn As String = "DataValue" + + + Public Property SeriesSelector() As ISeriesSelector + Public Property AppManager() As AppManager + + Private Function CurveCount() As Int32 + Return zgTimeSeries.GraphPane.CurveList.Count + End Function + + Private Sub SetGraphPaneTitle(ByVal title As String) + zgTimeSeries.GraphPane.Title.Text = title + zgTimeSeries.GraphPane.Title.FontSpec.Size = 14 + End Sub + + Public Sub Plot(ByVal seriesPlotInfo As SeriesPlotInfo) Implements IPlot.Plot + ' Save curves before clear + Dim curves = zgTimeSeries.GraphPane.CurveList.Select(Function(xItem) xItem).ToList() + Clear() + For Each oneSeriesInfo In seriesPlotInfo.GetSeriesInfo() + If oneSeriesInfo.Statistics.NumberOfObservations > oneSeriesInfo.Statistics.NumberOfCensoredObservations Then + Graph(oneSeriesInfo) + + ' Try to found previous curve with same SeriesID + Dim prevCurve = curves.FirstOrDefault(Function(xItem) DirectCast(xItem.Tag, OneSeriesPlotInfo).SeriesID = oneSeriesInfo.SeriesID) + If prevCurve IsNot Nothing Then + ' If found, restore color setting + Dim lastCurve = zgTimeSeries.GraphPane.CurveList(zgTimeSeries.GraphPane.CurveList.Count - 1) + If Not seriesPlotInfo.IsColorsChanged Then + lastCurve.Color = prevCurve.Color + End If + End If + + ElseIf oneSeriesInfo.Statistics.NumberOfObservations = oneSeriesInfo.Statistics.NumberOfCensoredObservations Then + If CurveCount() = 0 Then SetGraphPaneTitle(MessageStrings.All_Data_Censored) + End If + Next + Refreshing() + End Sub + + Private Sub Clear() + Dim gPane As GraphPane = zgTimeSeries.GraphPane + gPane.CurveList.Clear() + SetGraphPaneTitle(MessageStrings.No_Data_Plot) + gPane.Title.FontSpec.Size = 14 + gPane.XAxis.IsVisible = False + gPane.YAxis.IsVisible = False + gPane.Y2Axis.IsVisible = False + gPane.GraphObjList.Clear() + zgTimeSeries.IsShowVScrollBar = False + zgTimeSeries.IsShowHScrollBar = False + zgTimeSeries.Refresh() + End Sub + + Private Sub Graph(ByVal options As OneSeriesPlotInfo) + Try + Dim gPane As GraphPane = zgTimeSeries.GraphPane + + Dim m_Data = options.DataTable + Dim m_Site = options.SiteName + Dim m_VariableWithUnits = options.GetVariableWithUnitsString() + Dim m_Options = options.PlotOptions + + If (m_Data Is Nothing) Or (m_Data.Rows.Count <= 0) Then + gPane.XAxis.IsVisible = False + gPane.YAxis.IsVisible = False + zgTimeSeries.IsShowVScrollBar = False + zgTimeSeries.IsShowHScrollBar = False + SetGraphPaneTitle(MessageStrings.No_Data_Plot) + gPane.Title.FontSpec.Size = 14 + Else + 'Setting Legend + If m_Options.ShowLegend Then + gPane.Legend.IsVisible = True + gPane.Legend.Position = 12 + Else + gPane.Legend.IsVisible = False + End If + + 'Setting Scroll and scale + zgTimeSeries.IsShowVScrollBar = True + zgTimeSeries.IsShowHScrollBar = True + zgTimeSeries.IsAutoScrollRange = True + 'Setting X Axis + gPane.XAxis.IsVisible = True + gPane.XAxis.Title.Text = "Date and Time" + gPane.XAxis.Title.FontSpec.Size = 12 + SetGraphPaneTitle(m_VariableWithUnits & vbCrLf & " at " & m_Site) + + Dim pointList As New PointPairList + For Each row As DataRow In m_Data.Rows + Dim p As New PointPair(New XDate(CDate(row.Item(XColumn))), row.Item(YColumn)) + p.Tag = row.Item("CensorCode").ToString + If m_Options.IsPlotCensored Then + If Not DataValue.IsCensored(p.Tag.ToString) Then + p.ColorValue = 0 + Else + p.ColorValue = 1 + End If + p.Tag = row.Item("LocalDateTime").ToString + ": " + row.Item("DataValue").ToString + pointList.Add(p) + Else + If DataValue.IsCensored(p.Tag.ToString) Then + pointList.Add(p) + p.Tag = row.Item("LocalDateTime").ToString + ": " + row.Item("DataValue").ToString + End If + End If + Next row + + Dim curve As LineItem = gPane.AddCurve(m_Site, pointList, options.LineColor, SymbolType.Circle) + + curve.Tag = options + curve.Symbol.Fill = New Fill(options.PointColor) + curve.Symbol.Size = 4 + curve.Symbol.Fill.Type = FillType.Solid + curve.Symbol.Border.IsVisible = False + Select Case m_Options.TimeSeriesMethod + Case TimeSeriesType.Line + curve.Line.IsVisible = True + curve.Symbol.IsVisible = False + Case TimeSeriesType.Point + curve.Line.IsVisible = False + curve.Symbol.IsVisible = True + Case TimeSeriesType.None + curve.Line.IsVisible = False + curve.Symbol.IsVisible = False + Case Else + curve.Line.IsVisible = True + curve.Symbol.IsVisible = True + End Select + + 'Setting Legend Title + Dim needShowDataType = False + For Each c In zgTimeSeries.GraphPane.CurveList + Dim cOptions = DirectCast(c.Tag, OneSeriesPlotInfo) + + For Each cc In zgTimeSeries.GraphPane.CurveList + If Not ReferenceEquals(c, cc) Then + Dim ccOptions = DirectCast(cc.Tag, OneSeriesPlotInfo) + + If ccOptions.SiteName = cOptions.SiteName And + ccOptions.VariableName = cOptions.VariableName Then + needShowDataType = True + Exit For + End If + End If + Next + Next + If Not needShowDataType Then + ' Set legend only for current curve + curve.Label.Text = options.SiteName + ", " + options.VariableName + ", ID: " + options.SeriesID.ToString + If curve.Label.Text.Length > 70 Then + curve.Label.Text = curve.Label.Text.Substring(0, 70) + "..." + End If + Else + ' Update legend for all curves + For Each c In zgTimeSeries.GraphPane.CurveList + Dim cOptions = DirectCast(c.Tag, OneSeriesPlotInfo) + c.Label.Text = cOptions.SiteName + ", " + cOptions.VariableName + ", " + cOptions.DataType + ", ID: " + cOptions.SeriesID.ToString + If curve.Label.Text.Length > 70 Then + c.Label.Text = curve.Label.Text.Substring(0, 70) + "..." + End If + Next + End If + + + 'Setting Y Axis + curve.Link.Title = m_VariableWithUnits + End If + + SettingYAsixs() + SettingTitle() + + 'ZedGraph apparently doesn't play nice on Mac OS when a Title and Legend are visible. + 'As a temporary measure, we will remove these two things. + If DotSpatial.Mono.Mono.IsRunningOnMono() Then + gPane.Title.IsVisible = False + gPane.Legend.IsVisible = False + End If + + Catch ex As Exception + Throw New Exception("Error Occured in ZGTimeSeries.Graph" & vbCrLf & ex.Message) + End Try + + + End Sub + + Private Sub zgTimeSeries_ContextMenuBuilder(ByVal sender As ZedGraphControl, ByVal menuStrip As ContextMenuStrip, + ByVal mousePt As Point, ByVal objState As ZedGraphControl.ContextMenuObjectState) Handles zgTimeSeries.ContextMenuBuilder + ' from http://zedgraph.org/wiki/index.php?title=Edit_the_Context_Menu + + ' Add item to export to text file + Dim item As ToolStripMenuItem = New ToolStripMenuItem() + item.Text = MessageStrings.Export_Time_Series + item.Enabled = SeriesSelector IsNot Nothing AndAlso SeriesSelector.CheckedIDList.Any() + AddHandler item.Click, AddressOf ExportToTextFile + menuStrip.Items.Add(item) + + ' Add item to export to change line color + item = New ToolStripMenuItem() + item.Enabled = sender.GraphPane.CurveList.Count > 0 + If item.Enabled Then + Dim curve As CurveItem = Nothing + Dim iNearest As Integer + Dim founded = sender.GraphPane.FindNearestPoint(mousePt, curve, iNearest) + founded = founded OrElse Not IsNothing(curve) + item.Text = If(founded, + MessageStrings.Set_Line_Color + ": " + curve.Label.Text, + MessageStrings.Set_Line_Color_No_Point) + item.Enabled = founded + item.Tag = curve + Else + item.Text = MessageStrings.Set_Line_Color_No_Point + End If + + AddHandler item.Click, AddressOf SetLineColor + menuStrip.Items.Add(item) + + End Sub + + + Private Sub ExportToTextFile() + Debug.Assert(SeriesSelector IsNot Nothing) + Debug.Assert(SeriesSelector.CheckedIDList.Any()) + + Dim sSelector = SeriesSelector + + 'Build a datatable to export + Dim exportTable As DataTable = New DataTable + Dim repo = RepositoryFactory.Instance.Get(Of IDataValuesRepository)() + 'Build datatable for each series and then add all series' datatable to the exportTable + For count As Integer = 1 To sSelector.CheckedIDList.Count() + 'Error checking + Dim checkedSeriesID As Integer = sSelector.CheckedIDList(count - 1) + Dim totalData = repo.GetTableForExportFromTimeSeriesPlot(checkedSeriesID) + + If count = 1 Then + exportTable = totalData.Copy() + Else + exportTable.Merge(totalData, True) + End If + + Next count + + If (AppManager IsNot Nothing) Then + Dim exportPlugin = AppManager.Extensions.OfType(Of IDataExportPlugin).FirstOrDefault() + If exportPlugin IsNot Nothing Then + exportPlugin.Export(exportTable) + End If + End If + End Sub + + Private Sub SetLineColor(ByVal sender As ToolStripMenuItem, ByVal eventArgs As EventArgs) + Dim curve = TryCast(sender.Tag, CurveItem) + If curve Is Nothing Then Return + Dim newColor = DrawingHelper.PromptForColor(curve.Color) + If newColor.HasValue Then + curve.Color = newColor.Value + zgTimeSeries.Refresh() + End If + End Sub + + Private Sub Refreshing() + zgTimeSeries.AxisChange() + zgTimeSeries.Refresh() + End Sub + + Private Sub SettingTitle() + Dim IsSame As Boolean = True + + With zgTimeSeries.GraphPane + .Title.IsVisible = True + If .CurveList.Count > 1 Then + For i As Integer = 1 To .CurveList.Count - 1 + If Not .CurveList(i).Link.Title = .CurveList(i - 1).Link.Title Then + IsSame = False + End If + Next + If IsSame Then + .Title.Text = .CurveList(0).Link.Title + Else + .Title.Text = "Multiple TimeSeries" + End If + ElseIf .CurveList.Count = 1 Then + '.Title.Text = .CurveList(0).Link.Title + .Legend.IsVisible = False + ElseIf .CurveList.Count = 0 Then + .Title.Text = MessageStrings.No_Data_Plot + End If + + End With + End Sub + + Private Sub SettingYAsixs() + Dim AsixsList As New ArrayList() + + With zgTimeSeries.GraphPane + + For i As Integer = 0 To .CurveList.Count - 1 + If Not AsixsList.Contains(.CurveList(i).Link.Title) Then + AsixsList.Add(.CurveList(i).Link.Title) + End If + Next + + .YAxisList.Clear() + .Y2AxisList.Clear() + For i As Integer = 0 To AsixsList.Count - 1 + If i Mod 2 = 0 Then + Dim NewAsix As New YAxis() + NewAsix.Title.Text = AsixsList(i) + NewAsix.Title.FontSpec.Size = 12 + If NewAsix.Title.Text.Length > 40 Then + NewAsix.Title.Text = NewAsix.Title.Text.Substring(0, 40) + "..." + End If + NewAsix.MajorTic.IsInside = False + NewAsix.MinorTic.IsInside = False + NewAsix.MajorTic.IsOpposite = False + NewAsix.MinorTic.IsOpposite = False + .YAxisList.Add(NewAsix) + Else + Dim NewAsix As New Y2Axis() + NewAsix.Title.Text = AsixsList(i) + NewAsix.Title.FontSpec.Size = 12 + If NewAsix.Title.Text.Length > 40 Then + NewAsix.Title.Text = NewAsix.Title.Text.Substring(0, 40) + "..." + End If + NewAsix.MajorTic.IsInside = False + NewAsix.MinorTic.IsInside = False + NewAsix.MajorTic.IsOpposite = False + NewAsix.MinorTic.IsOpposite = False + .Y2AxisList.Add(NewAsix) + End If + Next + + If .YAxisList.Count = 0 Then + .YAxisList.Add("") + End If + If .Y2AxisList.Count = 0 Then + .Y2AxisList.Add("") + End If + + For i As Integer = 0 To .CurveList.Count - 1 + + For j As Integer = 0 To .YAxisList.Count - 1 + If .CurveList(i).Link.Title = .YAxisList(j).Title.Text Then + .CurveList(i).IsY2Axis = False + .CurveList(i).YAxisIndex = j + End If + Next + + For j As Integer = 0 To .Y2AxisList.Count - 1 + If .CurveList(i).Link.Title = .Y2AxisList(j).Title.Text Then + .CurveList(i).IsY2Axis = True + .CurveList(i).YAxisIndex = j + End If + Next + + Next + + .Y2Axis.IsVisible = True + End With + End Sub + + Public Property ShowPointValues() As Boolean Implements IChart.ShowPointValues + Get + Return zgTimeSeries.IsShowPointValues + End Get + Set(ByVal value As Boolean) + zgTimeSeries.IsShowPointValues = value + End Set + End Property + + Public Sub ZoomIn() Implements IChart.ZoomIn + zgTimeSeries.ZoomIn() + End Sub + + Public Sub ZoomOut() Implements IChart.ZoomOut + zgTimeSeries.ZoomOut(zgTimeSeries.GraphPane) + End Sub + + Public Sub ZoomOutAll() Implements IChart.ZoomOutAll + zgTimeSeries.ZoomOutAll(zgTimeSeries.GraphPane) + End Sub + + End Class +End Namespace \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/GraphView.sln b/Source/Plugins/HydroDesktop.Plugins.GraphView/GraphView.sln new file mode 100644 index 00000000..d41b5adc --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/GraphView.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "GraphView", "GraphView.vbproj", "{3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Debug|x86.ActiveCfg = Debug|x86 + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Debug|x86.Build.0 = Debug|x86 + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Release|Any CPU.Build.0 = Release|Any CPU + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Release|x86.ActiveCfg = Release|x86 + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/GraphViewPlugin.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/GraphViewPlugin.vb new file mode 100644 index 00000000..e09169ba --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/GraphViewPlugin.vb @@ -0,0 +1,667 @@ +Option Strict On + +Imports System.Windows.Forms +Imports System.ComponentModel +Imports HydroDesktop.Plugins.GraphView.Controls +Imports HydroDesktop.Common +Imports DotSpatial.Controls +Imports System.Globalization +Imports HydroDesktop.Interfaces +Imports DotSpatial.Controls.Header +Imports System.ComponentModel.Composition +Imports DotSpatial.Controls.Docking + +Public Class GraphViewPlugin + Inherits Extension + +#Region "Fields" + + Private Const kGraph As String = "kHydroGraph_01" + + + Private appSeriesView As ISeriesSelector + + Private _mainControl As MainControl + + Private firstTimeLoaded As Boolean = True + + 'reference to the main application and it's UI items + Private Const _pluginName As String = "Graph" + Private tabGraph As RootItem + + Private Const rpPlots As String = "Plots" + Private Const kTogglePlots As String = "kHydroPlotsGroup" + + Private rbTSA As SimpleActionItem 'Time Series + Private rbProbability As SimpleActionItem 'Probability + Private rbHistogram As SimpleActionItem 'Histogram + Private rbBoxWhisker As SimpleActionItem 'Box/Whisker + Private rbSummary As SimpleActionItem 'Summary + + Private Const rpPlotOption As String = "TSA & Probability Plot Options" + Const PlotOptionsMenuKey = "kHydroPlotOptions" + Private rbPlotType As MenuContainerItem 'Plot Type + Private rbLine As SimpleActionItem 'Line + Private rbPoint As SimpleActionItem 'Point + Private rbBoth As SimpleActionItem 'Both + Private rbColorSetting As SimpleActionItem 'Color Setting + Private rbShowLegend As SimpleActionItem 'Close Legend + + Private Const rpHistogramOption As String = "Histogram Plot Options" + Const kHistogramType = "kHistogramType" + Private rbHistogramType As MenuContainerItem 'Histogram Type + Private rbhtCount As SimpleActionItem 'Count + Private rbhtProbability As SimpleActionItem 'Probability Density + Private rbhtRelative As SimpleActionItem 'Relative Frequencies + Const kHistogramAlgorithm = "kHistogramAlgorithm" + Private rbAlgorithms As MenuContainerItem 'Binning Algorithms + Private rbhaScott As SimpleActionItem 'Scott's + Private rbhaSturges As SimpleActionItem 'Sturges' + Private rbhaFreedman As SimpleActionItem 'Freedman-Diaconis’ + + Private Const rpBoxWhiskerOption As String = "Plot Option" + Const kBoxWhiskerType = "kBoxWhiskerType" + Private rbBoxWhiskerType As MenuContainerItem 'Box Whisker Type + Private rbbtMonthly As SimpleActionItem 'Monthly + Private rbbtSeasonal As SimpleActionItem 'Seasonal + Private rbbtYearly As SimpleActionItem 'Yearly + Private rbbtOverall As SimpleActionItem 'Overall + + Private rbBoxWhiskerShowKey As SimpleActionItem 'Box Whisker show key + Private rbBoxWhiskerKey As Form + Private rbBoxWhiskerDiagram As PictureBox + + Private ReadOnly _datesFormat As String = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern + Private Const rpOtherOptions As String = "Date & Time" + Private rbStartDate As TextEntryActionItem 'Date Setting + Private rbEndDate As TextEntryActionItem 'Date Setting + Private rbApplyDateSettings As SimpleActionItem + Private rbDisplayFullDateRange As SimpleActionItem 'Display Full Date Range Toggle button + + Private Const rpChart As String = "Chart" + Private rbShowPointValues As SimpleActionItem 'Show Point Values Toggle button + Private _showPointValues As Boolean + Private rbZoomIn As SimpleActionItem 'Zoom In Toggle button + Private rbZoomOut As SimpleActionItem 'Zoom Out Toggle button + Private rbUndoZoom As SimpleActionItem + + Private ReadOnly _plotOptions As PlotOptions = New PlotOptions() + + Public ReadOnly Property PlotOptions() As PlotOptions + Get + Return _plotOptions + End Get + End Property + + Public ReadOnly Property SeriesSelector() As ISeriesSelector + Get + Return appSeriesView + End Get + End Property + + 'Undo zoom Toggle button + +#End Region + +#Region "IExtension Members" + + 'When the plugin is initialized + Public Overrides Sub Activate() + _mainControl = New MainControl(Me) + _mainControl.Dock = DockStyle.Fill + + InitializeRibbonButtons() + + Dim dp As New DockablePanel(kGraph, _pluginName, _mainControl, DockStyle.Fill) + dp.DefaultSortOrder = 20 + App.DockManager.Add(dp) + + AddHandler App.HeaderControl.RootItemSelected, AddressOf HeaderControl_RootItemSelected + AddHandler App.DockManager.ActivePanelChanged, AddressOf DockManager_ActivePanelChanged + + MyBase.Activate() + End Sub + + 'when the plug-in is deactivated + Public Overrides Sub Deactivate() + + 'auto-remove all ribbon items + App.HeaderControl.RemoveAll() + + 'remove the dock panel + App.DockManager.Remove(kGraph) + + _mainControl = Nothing + + RemoveHandler App.DockManager.ActivePanelChanged, AddressOf DockManager_ActivePanelChanged + RemoveHandler App.HeaderControl.RootItemSelected, AddressOf HeaderControl_RootItemSelected + + 'important line to deactivate the plugin + MyBase.Deactivate() + + End Sub + + Sub HeaderControl_RootItemSelected(ByVal sender As Object, ByVal e As RootItemEventArgs) + If e.SelectedRootKey = kGraph Then + App.DockManager.SelectPanel(kGraph) + IsPanelActive = True + Else + IsPanelActive = False + End If + End Sub + + Sub DockPanelAdded(ByVal sender As Object, ByVal args As DockablePanelEventArgs) + + If Not firstTimeLoaded Then Return + + If args.ActivePanelKey = "kMap" Then + App.DockManager.Add(New DockablePanel(kGraph, _pluginName, _mainControl, DockStyle.Fill)) + firstTimeLoaded = False + End If + End Sub + + Private Sub InitializeRibbonButtons() + + Dim header = App.HeaderControl + + 'To Add Items to the ribbon menu + tabGraph = New RootItem(kGraph, _pluginName) + tabGraph.SortOrder = 30 + header.Add(tabGraph) + + 'Plot choosing Panel + 'Time Series Plot + rbTSA = New SimpleActionItem("TimeSeries", AddressOf rbTSA_Click) + rbTSA.RootKey = kGraph + rbTSA.LargeImage = My.Resources.TSA + rbTSA.GroupCaption = rpPlots + rbTSA.ToggleGroupKey = kTogglePlots + header.Add(rbTSA) + + 'Probability Plot + rbProbability = New SimpleActionItem("Probability", AddressOf rbProbability_Click) + rbProbability.RootKey = kGraph + rbProbability.LargeImage = My.Resources.Probability + rbProbability.GroupCaption = rpPlots + rbProbability.ToggleGroupKey = kTogglePlots + header.Add(rbProbability) + + 'Histogram Plot + rbHistogram = New SimpleActionItem("Histogram", AddressOf rbHistogram_Click) + rbHistogram.RootKey = kGraph + rbHistogram.LargeImage = My.Resources.Histogram + rbHistogram.GroupCaption = rpPlots + rbHistogram.ToggleGroupKey = kTogglePlots + header.Add(rbHistogram) + + 'Box/Whisker Plot + rbBoxWhisker = New SimpleActionItem("Box/Whisker", AddressOf rbBoxWhisker_Click) + rbBoxWhisker.RootKey = kGraph + rbBoxWhisker.LargeImage = My.Resources.BoxWisker + rbBoxWhisker.GroupCaption = rpPlots + rbBoxWhisker.ToggleGroupKey = kTogglePlots + header.Add(rbBoxWhisker) + + 'Summary Plot + rbSummary = New SimpleActionItem("Summary", AddressOf rbSummary_Click) + rbSummary.RootKey = kGraph + rbSummary.LargeImage = My.Resources.Summary + rbSummary.GroupCaption = rpPlots + rbSummary.ToggleGroupKey = kTogglePlots + header.Add(rbSummary) + + 'Option Panel for TSA and Probability + rbPlotType = New MenuContainerItem(kGraph, PlotOptionsMenuKey, "Plot Type") + rbPlotType.LargeImage = My.Resources.PlotType + rbPlotType.GroupCaption = rpPlotOption + header.Add(rbPlotType) + + 'Line + rbLine = New SimpleActionItem(kGraph, PlotOptionsMenuKey, "Line", Sub() + _plotOptions.TimeSeriesMethod = TimeSeriesType.Line + _mainControl.ApplyOptions() + End Sub) + rbLine.GroupCaption = rpPlotOption + header.Add(rbLine) + 'Point + rbPoint = New SimpleActionItem(kGraph, PlotOptionsMenuKey, "Point", Sub() + _plotOptions.TimeSeriesMethod = TimeSeriesType.Point + _mainControl.ApplyOptions() + End Sub) + rbPoint.GroupCaption = rpPlotOption + header.Add(rbPoint) + 'Both + rbBoth = New SimpleActionItem(kGraph, PlotOptionsMenuKey, "Both", Sub() + _plotOptions.TimeSeriesMethod = TimeSeriesType.Both + _mainControl.ApplyOptions() + End Sub) + rbBoth.GroupCaption = rpPlotOption + header.Add(rbBoth) + + 'Color Setting + rbColorSetting = New SimpleActionItem("Color Setting", AddressOf rbColorSetting_Click) + rbColorSetting.RootKey = kGraph + rbColorSetting.LargeImage = My.Resources.ColorSetting + rbColorSetting.GroupCaption = rpPlotOption + App.HeaderControl.Add(rbColorSetting) + + 'Show Legend + rbShowLegend = New SimpleActionItem("Show Legend", AddressOf rbShowLegend_Click) + rbShowLegend.RootKey = kGraph + rbShowLegend.LargeImage = My.Resources.Legend + rbShowLegend.GroupCaption = rpPlotOption + header.Add(rbShowLegend) + + 'Histogram Plot Option Panel + 'Histogram Type Menu + rbHistogramType = New MenuContainerItem(kGraph, kHistogramType, "Histogram Type") + rbHistogramType.LargeImage = My.Resources.HisType + rbHistogramType.GroupCaption = rpHistogramOption + header.Add(rbHistogramType) + + 'Count + rbhtCount = New SimpleActionItem(kGraph, kHistogramType, "Count", AddressOf rbhtCount_Click) + rbhtCount.GroupCaption = rpHistogramOption + header.Add(rbhtCount) + 'Probability Density + rbhtProbability = New SimpleActionItem(kGraph, kHistogramType, "Probability Density", AddressOf rbhtProbability_Click) + rbhtProbability.GroupCaption = rpHistogramOption + header.Add(rbhtProbability) + 'Relative Frequencies + rbhtRelative = New SimpleActionItem(kGraph, kHistogramType, "Relative Frequencies", AddressOf rbhtRelative_Click) + rbhtRelative.GroupCaption = rpHistogramOption + header.Add(rbhtRelative) + rbHistogramType.Visible = False + + 'Histogram Algorithm Menu + rbAlgorithms = New MenuContainerItem(kGraph, kHistogramAlgorithm, "Binning Algorithms") + rbAlgorithms.LargeImage = My.Resources.Binning + rbAlgorithms.GroupCaption = rpHistogramOption + header.Add(rbAlgorithms) + + 'Scott's + rbhaScott = New SimpleActionItem(kGraph, kHistogramAlgorithm, "Scott's", AddressOf rbhaScott_Click) + rbhaScott.GroupCaption = rpHistogramOption + header.Add(rbhaScott) + 'Sturges + rbhaSturges = New SimpleActionItem(kGraph, kHistogramAlgorithm, "Sturges", AddressOf rbhaSturges_Click) + rbhaSturges.GroupCaption = rpHistogramOption + header.Add(rbhaSturges) + 'Freedman-Diaconis + rbhaFreedman = New SimpleActionItem(kGraph, kHistogramAlgorithm, "Freedman-Diaconis", AddressOf rbhaFreedman_Click) + rbhaFreedman.GroupCaption = rpHistogramOption + header.Add(rbhaFreedman) + rbAlgorithms.Visible = False + + 'Box Whisker Plot Option Panel + rbBoxWhiskerType = New MenuContainerItem(kGraph, kBoxWhiskerType, "Box Whisker Type") + rbBoxWhiskerType.LargeImage = My.Resources.BoxWhiskerType + rbBoxWhiskerType.GroupCaption = rpBoxWhiskerOption + header.Add(rbBoxWhiskerType) + rbBoxWhiskerType.Visible = False + 'Monthly + rbbtMonthly = New SimpleActionItem(kGraph, kBoxWhiskerType, "Monthly", AddressOf rbbtMonthly_Click) + rbbtMonthly.GroupCaption = rpBoxWhiskerOption + header.Add(rbbtMonthly) + 'Seasonal + rbbtSeasonal = New SimpleActionItem(kGraph, kBoxWhiskerType, "Seasonal", AddressOf rbbtSeasonal_Click) + rbbtSeasonal.GroupCaption = rpBoxWhiskerOption + header.Add(rbbtSeasonal) + 'Yearly + rbbtYearly = New SimpleActionItem(kGraph, kBoxWhiskerType, "Yearly", AddressOf rbbtYearly_Click) + rbbtYearly.GroupCaption = rpBoxWhiskerOption + header.Add(rbbtYearly) + 'Overall + rbbtOverall = New SimpleActionItem(kGraph, kBoxWhiskerType, "Overall", AddressOf rbbtOverall_Click) + rbbtOverall.GroupCaption = rpBoxWhiskerOption + header.Add(rbbtOverall) + 'rbbtOverall.Visible = False + + 'Box Whisker show key + rbBoxWhiskerShowKey = New SimpleActionItem(kGraph, "Box Whisker Key", AddressOf rbBoxWhiskerShowKey_Click) + rbBoxWhiskerShowKey.LargeImage = My.Resources.BoxWhiskerKey + rbBoxWhiskerShowKey.GroupCaption = "Show Key" + header.Add(rbBoxWhiskerShowKey) + rbBoxWhiskerShowKey.Visible = False + + 'Box Whisker key + InitializeBoxWhiskerKey() + + 'Others + 'Date Setting + rbStartDate = New TextEntryActionItem() + rbStartDate.Caption = "Start" + rbStartDate.GroupCaption = rpOtherOptions + rbStartDate.RootKey = kGraph + rbStartDate.Width = 60 + AddHandler rbStartDate.PropertyChanged, AddressOf dateSettings_PropertyChanged + header.Add(rbStartDate) + + rbEndDate = New TextEntryActionItem() + rbEndDate.Caption = " End" + rbEndDate.GroupCaption = rpOtherOptions + rbEndDate.RootKey = kGraph + rbEndDate.Width = 60 + AddHandler rbEndDate.PropertyChanged, AddressOf dateSettings_PropertyChanged + header.Add(rbEndDate) + + AddHandler _plotOptions.DatesChanged, AddressOf mainControlDatesChanged + + rbApplyDateSettings = New SimpleActionItem("Refresh", AddressOf rbDateTimeRefresh_Click) + rbApplyDateSettings.RootKey = kGraph + rbApplyDateSettings.LargeImage = My.Resources.DateSetting + rbApplyDateSettings.GroupCaption = rpOtherOptions + header.Add(rbApplyDateSettings) + + rbDisplayFullDateRange = New SimpleActionItem("Full Date Range", AddressOf rbDisplayFullDateRange_Click) + rbDisplayFullDateRange.RootKey = kGraph + rbDisplayFullDateRange.LargeImage = My.Resources.FullDateRange + rbDisplayFullDateRange.SmallImage = My.Resources.FullDateRange_16 + rbDisplayFullDateRange.GroupCaption = rpOtherOptions + rbDisplayFullDateRange.Enabled = False + header.Add(rbDisplayFullDateRange) + + 'Chart + 'Show Point Values + rbShowPointValues = New SimpleActionItem("Show Point Values", AddressOf rbShowPointValues_Click) + rbShowPointValues.RootKey = kGraph + rbShowPointValues.GroupCaption = rpChart + header.Add(rbShowPointValues) + rbShowPointValues.Visible = False + rbShowPointValues_Click(Me, EventArgs.Empty) + + 'Zoom In + rbZoomIn = New SimpleActionItem("Zoom In", AddressOf rbZoomIn_Click) + rbZoomIn.RootKey = kGraph + rbZoomIn.GroupCaption = rpChart + rbZoomIn.Visible = False + header.Add(rbZoomIn) + + ' Zoom Out + rbZoomOut = New SimpleActionItem("Zoom Out", AddressOf rbZoomOut_Click) + rbZoomOut.RootKey = kGraph + rbZoomOut.GroupCaption = rpChart + rbZoomOut.Visible = False + header.Add(rbZoomOut) + + ' Undo Zoom + rbUndoZoom = New SimpleActionItem("Undo Zoom", AddressOf rbUndoZoom_Click) + rbUndoZoom.RootKey = kGraph + rbUndoZoom.GroupCaption = rpChart + rbUndoZoom.Visible = False + header.Add(rbUndoZoom) + + 'The button should initially be checked + rbTSA_Click(Me, EventArgs.Empty) + rbTSA.Toggle() + + End Sub + + Private Sub dateSettings_PropertyChanged(ByVal sender As Object, ByVal e As PropertyChangedEventArgs) + If "Text".Equals(e.PropertyName) Then + + Dim startDate = ValidateDateEdit(rbStartDate, "Start Date", _datesFormat, False) + If (startDate Is Nothing) Then Return + Dim endDate = ValidateDateEdit(rbEndDate, "End Date", _datesFormat, False) + If (endDate Is Nothing) Then Return + + If _plotOptions.StartDateLimit.Date >= startDate And + _plotOptions.EndDateLimit.Date <= endDate Then + rbDisplayFullDateRange.Enabled = False + Else + rbDisplayFullDateRange.Enabled = True + End If + + End If + End Sub + + Private Sub rbDateTimeRefresh_Click(ByVal sender As Object, ByVal e As EventArgs) + ' Validation of Start/End date + Dim startDate = ValidateDateEdit(rbStartDate, "Start Date", _datesFormat, True) + If (Not startDate.HasValue) Then Return + Dim endDate = ValidateDateEdit(rbEndDate, "End Date", _datesFormat, True) + If (Not endDate.HasValue) Then Return + ' end of validation + + _plotOptions.StartDateTime = startDate.Value + _plotOptions.EndDateTime = endDate.Value + _plotOptions.DisplayFullDate = False + _mainControl.ApplyOptions(True) + End Sub + + Private Function ValidateDate(str As String, dateFormat As String) As DateTime? + Try + Return DateTime.ParseExact(str, dateFormat, CultureInfo.CurrentCulture) + Catch ex As Exception + Return Nothing + End Try + End Function + + Private Function ValidateDateEdit(item As TextEntryActionItem, itemName As String, dateFormat As String, showMessage As Boolean) As DateTime? + Dim result As DateTime? + result = ValidateDate(item.Text, dateFormat) + If (result Is Nothing And showMessage) Then + MessageBox.Show(String.Format("{0} is in incorrect format. Please enter {1} in the format {2}", itemName, itemName.ToLower(), dateFormat), + String.Format("{0} validation", itemName), MessageBoxButtons.OK, MessageBoxIcon.Information) + End If + Return result + End Function + + + Private Sub mainControlDatesChanged(ByVal sender As Object, ByVal e As EventArgs) + rbStartDate.Text = _plotOptions.StartDateTime.ToString(_datesFormat) + rbEndDate.Text = _plotOptions.EndDateTime.ToString(_datesFormat) + End Sub + +#End Region + +#Region "Event Handlers" + 'Click Time Series + Sub rbTSA_Click(ByVal sender As Object, ByVal e As EventArgs) + _mainControl.ShowTimeSeriesPlot() + rbPlotType.Visible = True + rbColorSetting.Visible = True + rbShowLegend.Visible = True + + rbHistogramType.Visible = False + rbAlgorithms.Visible = False + rbBoxWhiskerType.Visible = False + rbBoxWhiskerShowKey.Visible = False + + End Sub + + Sub rbProbability_Click(ByVal sender As Object, ByVal e As EventArgs) + _mainControl.ShowProbabilityPlot() + rbPlotType.Visible = True + rbColorSetting.Visible = True + rbShowLegend.Visible = True + + rbHistogramType.Visible = False + rbAlgorithms.Visible = False + rbBoxWhiskerType.Visible = False + rbBoxWhiskerShowKey.Visible = False + End Sub + + Sub rbHistogram_Click(ByVal sender As Object, ByVal e As EventArgs) + _mainControl.ShowHistogramPlot() + rbPlotType.Visible = False + rbColorSetting.Visible = False + rbShowLegend.Visible = False + + rbHistogramType.Visible = True + rbAlgorithms.Visible = True + rbBoxWhiskerType.Visible = False + rbBoxWhiskerShowKey.Visible = False + End Sub + + Sub rbBoxWhisker_Click(ByVal sender As Object, ByVal e As EventArgs) + _mainControl.ShowBoxWhiskerPlot() + rbPlotType.Visible = False + rbColorSetting.Visible = False + rbShowLegend.Visible = False + + rbHistogramType.Visible = False + rbAlgorithms.Visible = False + rbBoxWhiskerType.Visible = True + rbBoxWhiskerShowKey.Visible = True + End Sub + + Sub rbSummary_Click(ByVal sender As Object, ByVal e As EventArgs) + _mainControl.ShowSummaryPlot() + rbPlotType.Visible = False + rbColorSetting.Visible = False + rbShowLegend.Visible = False + + rbHistogramType.Visible = False + rbAlgorithms.Visible = False + rbBoxWhiskerType.Visible = False + rbBoxWhiskerShowKey.Visible = False + End Sub + + Sub rbShowLegend_Click(ByVal sender As Object, ByVal e As EventArgs) + Dim text = If(_plotOptions.ShowLegend, "Show Legend", "Close Legend") + + _plotOptions.ShowLegend = Not _plotOptions.ShowLegend + _mainControl.ApplyOptions() + rbShowLegend.Caption = text + End Sub + + Sub rbColorSetting_Click(ByVal sender As Object, ByVal e As EventArgs) + Dim frmCC = New ColorSettingsDialog(_plotOptions.LineColorList, _plotOptions.PointColorList) + AddHandler frmCC.ColorsApplied, AddressOf OnColorsApplied + frmCC.ShowDialog() + End Sub + + Private Sub OnColorsApplied(ByVal sender As Object, ByVal e As EventArgs) + Dim form = DirectCast(sender, ColorSettingsDialog) + + _plotOptions.PointColorList.Clear() + For i As Integer = 0 To form.pointcolorlist.Count - 1 + _plotOptions.PointColorList.Add(form.pointcolorlist(i)) + Next + _plotOptions.LineColorList.Clear() + For i As Integer = 0 To form.linecolorlist.Count - 1 + _plotOptions.LineColorList.Add(form.linecolorlist(i)) + Next + + _mainControl.SeriesPlotInfo.IsColorsChanged = True + _mainControl.ApplyOptions() + _mainControl.SeriesPlotInfo.IsColorsChanged = False + End Sub + + Private Sub InitializeBoxWhiskerKey() + rbBoxWhiskerDiagram = New PictureBox() + rbBoxWhiskerDiagram.Size = New Drawing.Size(528, 408) + rbBoxWhiskerDiagram.SizeMode = PictureBoxSizeMode.StretchImage + rbBoxWhiskerDiagram.Anchor = AnchorStyles.Right Or AnchorStyles.Left Or AnchorStyles.Bottom Or AnchorStyles.Top + rbBoxWhiskerDiagram.Image = My.Resources.BoxWhiskerDiagram + + rbBoxWhiskerKey = New Form() + rbBoxWhiskerKey.ClientSize = New Drawing.Size(528, 408) + rbBoxWhiskerKey.Controls.Add(rbBoxWhiskerDiagram) + rbBoxWhiskerKey.ShowIcon = False + End Sub + + Sub rbhtCount_Click(ByVal sender As Object, ByVal e As EventArgs) + _plotOptions.HistTypeMethod = HistogramType.Count + _mainControl.ApplyOptions() + End Sub + Sub rbhtProbability_Click(ByVal sender As Object, ByVal e As EventArgs) + _plotOptions.HistTypeMethod = HistogramType.Probability + _mainControl.ApplyOptions() + End Sub + Sub rbhtRelative_Click(ByVal sender As Object, ByVal e As EventArgs) + _plotOptions.HistTypeMethod = HistogramType.Relative + _mainControl.ApplyOptions() + End Sub + + Sub rbhaSturges_Click(ByVal sender As Object, ByVal e As EventArgs) + _plotOptions.HistAlgorothmsMethod = HistorgramAlgorithms.Sturges + _mainControl.ApplyOptions() + End Sub + Sub rbhaScott_Click(ByVal sender As Object, ByVal e As EventArgs) + _plotOptions.HistAlgorothmsMethod = HistorgramAlgorithms.Scott + _mainControl.ApplyOptions() + End Sub + Sub rbhaFreedman_Click(ByVal sender As Object, ByVal e As EventArgs) + _plotOptions.HistAlgorothmsMethod = HistorgramAlgorithms.Freedman + _mainControl.ApplyOptions() + End Sub + + Sub rbbtMonthly_Click(ByVal sender As Object, ByVal e As EventArgs) + _plotOptions.BoxWhiskerMethod = BoxWhiskerType.Monthly + _mainControl.ApplyOptions() + End Sub + Sub rbbtSeasonal_Click(ByVal sender As Object, ByVal e As EventArgs) + _plotOptions.BoxWhiskerMethod = BoxWhiskerType.Seasonal + _mainControl.ApplyOptions() + End Sub + Sub rbbtYearly_Click(ByVal sender As Object, ByVal e As EventArgs) + _plotOptions.BoxWhiskerMethod = BoxWhiskerType.Yearly + _mainControl.ApplyOptions() + End Sub + Sub rbbtOverall_Click(ByVal sender As Object, ByVal e As EventArgs) + _plotOptions.BoxWhiskerMethod = BoxWhiskerType.Overall + _mainControl.ApplyOptions() + End Sub + Sub rbBoxWhiskerShowKey_Click(ByVal sender As Object, ByVal e As EventArgs) + If rbBoxWhiskerKey.IsDisposed() Then + InitializeBoxWhiskerKey() + End If + rbBoxWhiskerKey.Show() + rbBoxWhiskerKey.Location = Cursor.Position + End Sub + + 'Display full date range toggle button is clicked + Private Sub rbDisplayFullDateRange_Click(ByVal sender As Object, ByVal e As EventArgs) + _plotOptions.DisplayFullDate = Not _plotOptions.DisplayFullDate + _mainControl.ApplyOptions(True) + End Sub + + 'Show Point Values + Private Sub rbShowPointValues_Click(ByVal sender As Object, ByVal e As EventArgs) + _mainControl.ShowPointValues(_showPointValues) + If _showPointValues Then + rbShowPointValues.Caption = "Show Point Values - On" + Else + rbShowPointValues.Caption = "Show Point Values - Off" + End If + _showPointValues = Not _showPointValues + End Sub + + Private Sub rbUndoZoom_Click(ByVal sender As Object, ByVal e As EventArgs) + _mainControl.UndoZoom() + End Sub + + Private Sub rbZoomIn_Click(ByVal sender As Object, ByVal e As EventArgs) + _mainControl.ZoomIn() + End Sub + + Private Sub rbZoomOut_Click(ByVal sender As Object, ByVal e As EventArgs) + _mainControl.ZoomOut() + End Sub + + Sub DockManager_ActivePanelChanged(ByVal sender As Object, ByVal e As DockablePanelEventArgs) + If (e.ActivePanelKey = kGraph) Then + App.HeaderControl.SelectRoot(kGraph) + End If + End Sub + + Private _isPanelActive As Boolean + Public Property IsPanelActive As Boolean + Get + Return _isPanelActive + End Get + Set(ByVal value As Boolean) + If (value = _isPanelActive) Then Return + _isPanelActive = value + + RaiseEvent IsPanelActiveChanged() + End Set + End Property + + Public Event IsPanelActiveChanged() + +#End Region + +End Class diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/HydroDesktop.Plugins.GraphView.nuspec b/Source/Plugins/HydroDesktop.Plugins.GraphView/HydroDesktop.Plugins.GraphView.nuspec new file mode 100644 index 00000000..1ee6f684 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/HydroDesktop.Plugins.GraphView.nuspec @@ -0,0 +1,19 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/HydroDesktop.Plugins.GraphView.vbproj b/Source/Plugins/HydroDesktop.Plugins.GraphView/HydroDesktop.Plugins.GraphView.vbproj new file mode 100644 index 00000000..949da0ad --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/HydroDesktop.Plugins.GraphView.vbproj @@ -0,0 +1,409 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34} + Library + HydroDesktop.Plugins.GraphView + HydroDesktop.Plugins.GraphView + 512 + Windows + v4.0 + On + Binary + Off + On + + + + + 3.5 + + Client + ..\..\ + true + + + true + full + true + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.GraphView\ + HydroDesktop.Plugins.GraphView.xml + 41999,42016 + + + + + pdbonly + false + true + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.GraphView\ + 41999,42016 + false + + + + + true + true + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.GraphView\ + HydroDesktop.Plugins.GraphView.xml + 41999,42016 + full + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.GraphView\HydroDesktop.Plugins.GraphView.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.vb + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + true + bin\x86\Release\ + true + 41999,42016 + pdbonly + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.GraphView\HydroDesktop.Plugins.GraphView.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.vb + false + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + + + + + + 3.5 + + + 3.5 + + + ..\..\packages\ZedGraph.5.1.6\lib\net35-Client\ZedGraph.dll + False + + + + + + + + + + + + + + + ColorPalette.vb + + + UserControl + + + DataSummary.vb + + + UserControl + + + ColorSettingsDialog.vb + + + Form + + + + + + + True + True + MessageStrings.resx + + + + + BoxWhiskerPlot.vb + + + UserControl + + + HistogramPlot.vb + + + UserControl + + + ProbabilityPlot.vb + + + UserControl + + + TimeSeriesPlot.vb + + + UserControl + + + MainControl.vb + + + UserControl + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + OrderChange.vb + + + Form + + + + + + + BoxWhiskerPlot.vb + Designer + + + ColorPalette.vb + + + DataSummary.vb + Designer + + + HistogramPlot.vb + Designer + + + ColorSettingsDialog.vb + Designer + + + ProbabilityPlot.vb + Designer + + + TimeSeriesPlot.vb + Designer + + + MainControl.vb + Designer + + + My.Resources + ResXFileCodeGenerator + MessageStrings.Designer.vb + Designer + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + OrderChange.vb + Designer + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + {0ccd3f11-0f48-427f-bc98-9dd6d875f4bb} + HydroDesktop.Configuration + False + + + {ceb869c6-ed48-4846-9040-4e82ab58b86b} + HydroDesktop.Data + False + + + {0b9ba90b-2016-4754-915a-0ad74fd0067a} + HydroDesktop.Interfaces + False + + + {9B0A0FAC-318F-4A27-A416-3977820B3B95} + HydroDesktop.ZedGraphEx + False + + + + + + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/Histogram graph.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/Histogram graph.png new file mode 100644 index 00000000..1ffb1ace Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/Histogram graph.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/TSA_icon.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/TSA_icon.png new file mode 100644 index 00000000..b29f0654 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/TSA_icon.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/box.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/box.png new file mode 100644 index 00000000..3438b121 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/box.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/prob.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/prob.png new file mode 100644 index 00000000..5c78578e Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/prob.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/table.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/table.png new file mode 100644 index 00000000..02d89923 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/table.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/ts.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/ts.png new file mode 100644 index 00000000..97bf7649 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Icons/ts.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/MessageStrings.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/MessageStrings.Designer.vb new file mode 100644 index 00000000..63298c93 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/MessageStrings.Designer.vb @@ -0,0 +1,121 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.18444 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Class MessageStrings + + Private Shared resourceMan As Global.System.Resources.ResourceManager + + Private Shared resourceCulture As Global.System.Globalization.CultureInfo + + _ + Friend Sub New() + MyBase.New + End Sub + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend Shared ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("HydroDesktop.Plugins.GraphView.MessageStrings", GetType(MessageStrings).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Shared Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' Looks up a localized string similar to All data is censored, so there is no data to display. + ''' + Friend Shared ReadOnly Property All_Data_Censored() As String + Get + Return ResourceManager.GetString("All_Data_Censored", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Export Time Series.... + ''' + Friend Shared ReadOnly Property Export_Time_Series() As String + Get + Return ResourceManager.GetString("Export_Time_Series", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Choose one or more series to plot.. + ''' + Friend Shared ReadOnly Property No_Data_Plot() As String + Get + Return ResourceManager.GetString("No_Data_Plot", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Number of Observations. + ''' + Friend Shared ReadOnly Property Number_Observations() As String + Get + Return ResourceManager.GetString("Number_Observations", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Set Line Color. + ''' + Friend Shared ReadOnly Property Set_Line_Color() As String + Get + Return ResourceManager.GetString("Set_Line_Color", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to Click on point to Set Line Color.... + ''' + Friend Shared ReadOnly Property Set_Line_Color_No_Point() As String + Get + Return ResourceManager.GetString("Set_Line_Color_No_Point", resourceCulture) + End Get + End Property + End Class +End Namespace diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/MessageStrings.resx b/Source/Plugins/HydroDesktop.Plugins.GraphView/MessageStrings.resx new file mode 100644 index 00000000..6f452e90 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/MessageStrings.resx @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + All data is censored, so there is no data to display + + + Export Time Series... + + + Choose one or more series to plot. + + + Number of Observations + + + Set Line Color + + + Click on point to Set Line Color... + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Application.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Application.Designer.vb new file mode 100644 index 00000000..abd46e99 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.18444 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Application.myapp b/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Application.myapp new file mode 100644 index 00000000..0167050e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/AssemblyInfo.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..c41cbc96 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/AssemblyInfo.vb @@ -0,0 +1,24 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Resources.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Resources.Designer.vb new file mode 100644 index 00000000..36d1c43d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Resources.Designer.vb @@ -0,0 +1,223 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.18444 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("HydroDesktop.Plugins.GraphView.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Binning() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Binning", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property BoxWhiskerDiagram() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("BoxWhiskerDiagram", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property BoxWhiskerKey() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("BoxWhiskerKey", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property BoxWhiskerType() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("BoxWhiskerType", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property BoxWisker() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("BoxWisker", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property ColorSetting() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("ColorSetting", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property DateSetting() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("DateSetting", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property FullDateRange() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("FullDateRange", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property FullDateRange_16() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("FullDateRange_16", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Histogram() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Histogram", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property HisType() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("HisType", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Legend() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Legend", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property PlotType() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("PlotType", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Probability() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Probability", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Summary() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Summary", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property TSA() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("TSA", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + End Module +End Namespace diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Resources.resx new file mode 100644 index 00000000..9ade70a5 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Resources.resx @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Binning.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\BoxWhiskerKey.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\BoxWhiskerType.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\BoxWhiskerDiagram.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\BoxWisker.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ColorSetting.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\DateSetting.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Histogram.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\HisType.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Legend.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\PlotType.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Probability.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Summary.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\FullDateRange.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\FullDateRange_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\TSA.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Settings.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Settings.Designer.vb new file mode 100644 index 00000000..78b6f279 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.18444 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.HydroDesktop.Plugins.GraphView.My.MySettings + Get + Return Global.HydroDesktop.Plugins.GraphView.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Settings.settings b/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Settings.settings new file mode 100644 index 00000000..377f56d6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/OrderChange.Designer.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/OrderChange.Designer.vb new file mode 100644 index 00000000..34c13da7 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/OrderChange.Designer.vb @@ -0,0 +1,108 @@ + _ +Partial Class OrderChange + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.pnlList = New System.Windows.Forms.Panel + Me.Button1 = New System.Windows.Forms.Button + Me.Button2 = New System.Windows.Forms.Button + Me.Panel1 = New System.Windows.Forms.Panel + Me.FlowLayoutPanel1 = New System.Windows.Forms.FlowLayoutPanel + Me.Panel1.SuspendLayout() + Me.FlowLayoutPanel1.SuspendLayout() + Me.SuspendLayout() + ' + 'pnlList + ' + Me.pnlList.AutoSize = True + Me.pnlList.Dock = System.Windows.Forms.DockStyle.Fill + Me.pnlList.Location = New System.Drawing.Point(0, 0) + Me.pnlList.Name = "pnlList" + Me.pnlList.Size = New System.Drawing.Size(142, 37) + Me.pnlList.TabIndex = 0 + ' + 'Button1 + ' + Me.Button1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button1.Location = New System.Drawing.Point(74, 3) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(65, 23) + Me.Button1.TabIndex = 1 + Me.Button1.Text = "OK" + Me.Button1.UseVisualStyleBackColor = True + ' + 'Button2 + ' + Me.Button2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button2.Location = New System.Drawing.Point(3, 3) + Me.Button2.Name = "Button2" + Me.Button2.Size = New System.Drawing.Size(65, 23) + Me.Button2.TabIndex = 2 + Me.Button2.Text = "Cancel" + Me.Button2.UseVisualStyleBackColor = True + ' + 'Panel1 + ' + Me.Panel1.AutoSize = True + Me.Panel1.Controls.Add(Me.pnlList) + Me.Panel1.Controls.Add(Me.FlowLayoutPanel1) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(142, 66) + Me.Panel1.TabIndex = 3 + ' + 'FlowLayoutPanel1 + ' + Me.FlowLayoutPanel1.AutoSize = True + Me.FlowLayoutPanel1.Controls.Add(Me.Button1) + Me.FlowLayoutPanel1.Controls.Add(Me.Button2) + Me.FlowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Bottom + Me.FlowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft + Me.FlowLayoutPanel1.Location = New System.Drawing.Point(0, 37) + Me.FlowLayoutPanel1.Name = "FlowLayoutPanel1" + Me.FlowLayoutPanel1.Size = New System.Drawing.Size(142, 29) + Me.FlowLayoutPanel1.TabIndex = 3 + ' + 'OrderChange + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.AutoSize = True + Me.ClientSize = New System.Drawing.Size(142, 66) + Me.Controls.Add(Me.Panel1) + Me.MinimumSize = New System.Drawing.Size(150, 100) + Me.Name = "OrderChange" + Me.Text = "OrderChange" + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.FlowLayoutPanel1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents pnlList As System.Windows.Forms.Panel + Friend WithEvents Button1 As System.Windows.Forms.Button + Friend WithEvents Button2 As System.Windows.Forms.Button + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents FlowLayoutPanel1 As System.Windows.Forms.FlowLayoutPanel +End Class diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/OrderChange.resx b/Source/Plugins/HydroDesktop.Plugins.GraphView/OrderChange.resx new file mode 100644 index 00000000..ff31a6db --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/OrderChange.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/Source/Plugins/HydroDesktop.Plugins.GraphView/OrderChange.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/OrderChange.vb new file mode 100644 index 00000000..d8e9e9b2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/OrderChange.vb @@ -0,0 +1,95 @@ +Imports System.Windows.Forms +Public Class OrderChange + Const DDL_WIDTH As Integer = 200 + ReadOnly dropDowns() As ComboBox + ReadOnly m_order() As String + Public Sub New(ByVal order() As String) + + ' This call is required by the Windows Form Designer. + InitializeComponent() + + ' Add any initialization after the InitializeComponent() call. + m_order = order + + ReDim dropDowns(order.Length - 1) + For i As Integer = 0 To (order.Length - 1) + Dim ddl As New ComboBox + AddHandler ddl.SelectedIndexChanged, AddressOf dropDowns_SelectedIndexChanged + 'DO WORK HERE + If (i = 0) Then + ddl.Enabled = True + ddl.Items.Clear() + ddl.Items.AddRange(order) + Else + ddl.Enabled = False + End If + ddl.DropDownStyle = ComboBoxStyle.DropDownList + ddl.Width = DDL_WIDTH + ddl.Top = (i * 30) + 5 + ddl.Left = 5 + dropDowns(i) = ddl + pnlList.Controls.Add(ddl) + Next i + End Sub + + Private Sub OrderChange_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + + End Sub + + Private Sub dropDowns_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) + Dim ddl As ComboBox = sender + Dim index As Integer = Array.IndexOf(dropDowns, ddl) + + If ddl.SelectedItem Is Nothing Then + If ((index + 1) < dropDowns.Length) Then + dropDowns(index + 1).Enabled = False + dropDowns(index + 1).Items.Clear() + End If + Else + Dim available As New List(Of String)(m_order) + For x As Integer = 0 To index + available.Remove(dropDowns(x).SelectedItem) + Next x + If ((index + 1) < dropDowns.Length) Then + dropDowns(index + 1).Enabled = True + dropDowns(index + 1).Items.Clear() + dropDowns(index + 1).Items.AddRange(available.ToArray) + For y As Integer = (index + 2) To (dropDowns.Length - 1) + dropDowns(y).Enabled = False + dropDowns(y).Items.Clear() + Next y + End If + End If + End Sub + + Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click + Dim valid As Boolean = True + For Each ddl As ComboBox In dropDowns + If ddl.SelectedItem Is Nothing Then + valid = False + Exit For + End If + Next ddl + If valid Then + Me.DialogResult = Windows.Forms.DialogResult.OK + Else + MsgBox("All values must be selected", , "Error") + End If + End Sub + + Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click + Me.DialogResult = Windows.Forms.DialogResult.Cancel + End Sub + + Public ReadOnly Property Order() As String() + Get + Dim temp(dropDowns.Length - 1) As String + + For i As Integer = 0 To (dropDowns.Length - 1) + temp(i) = dropDowns(i).SelectedItem + Next i + + Return temp + End Get + End Property +End Class \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/PlotOptions.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/PlotOptions.vb new file mode 100644 index 00000000..fc6c6906 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/PlotOptions.vb @@ -0,0 +1,126 @@ +Imports System.Drawing + +Public Class PlotOptions + Public Event DatesChanged As EventHandler + + Public Sub New() + SetColorCollections() + End Sub + + Public Property TimeSeriesMethod() As TimeSeriesType = TimeSeriesType.Both + Public Property HistTypeMethod() As HistogramType = HistogramType.Count + Public Property HistAlgorothmsMethod() As HistorgramAlgorithms = HistorgramAlgorithms.Sturges + Public Property numBins() As Integer + Public Property binWidth() As Double + Public Property xMax() As Double + Public Property xMin() As Double + Public Property yMax() As Double + Public Property yMin() As Double + Public Property xMajor() As Double + Public Property BoxWhiskerMethod() As BoxWhiskerType = BoxWhiskerType.Monthly + Public Property IsPlotCensored() As Boolean = True + Public Property LineColorList() As New List(Of Color) + Public Property PointColorList() As New List(Of Color) + Public Property ShowLegend() As Boolean = True + Public Property UseCensoredData() As Boolean = False + Public Property DisplayFullDate As Boolean = True + + + Private _startDateTime As DateTime + Public Property StartDateTime() As DateTime + Get + Return _startDateTime + End Get + Set(ByVal value As DateTime) + _startDateTime = value + + RaiseDatesChanged() + End Set + End Property + + Private _endDateTime As DateTime + Public Property EndDateTime() As Date + Get + Return _endDateTime + End Get + Set(value As Date) + _endDateTime = value + + RaiseDatesChanged() + End Set + End Property + + Private _startDateLimit As DateTime + Public Property StartDateLimit() As Date + Get + Return _startDateLimit + End Get + Set(value As Date) + _startDateLimit = value + + RaiseDatesChanged() + End Set + End Property + + Private _endDateLimit As DateTime + Public Property EndDateLimit() As Date + Get + Return _endDateLimit + End Get + Set(value As Date) + _endDateLimit = value + + RaiseDatesChanged() + End Set + End Property + + + Private Sub SetColorCollections() + Dim colors() As Color = {Color.FromArgb(106, 61, 154), + Color.FromArgb(202, 178, 214), + Color.FromArgb(255, 127, 0), + Color.FromArgb(253, 191, 111), + Color.FromArgb(227, 26, 28), + Color.FromArgb(251, 154, 153), + Color.FromArgb(51, 160, 44), + Color.FromArgb(178, 223, 138), + Color.FromArgb(31, 120, 180), + Color.FromArgb(166, 206, 227)} + + For Each color In colors + LineColorList.Add(color) + PointColorList.Add(color) + Next + End Sub + + Private Sub RaiseDatesChanged() + RaiseEvent DatesChanged(Me, EventArgs.Empty) + End Sub + +End Class + +Public Enum TimeSeriesType + Both + Line + Point + None +End Enum + +Public Enum BoxWhiskerType + Monthly + Seasonal + Yearly + Overall +End Enum + +Public Enum HistogramType + Count + Probability + Relative +End Enum + +Public Enum HistorgramAlgorithms + Sturges + Scott + Freedman +End Enum diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Pretty.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Pretty.vb new file mode 100644 index 00000000..6392cdcb --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Pretty.vb @@ -0,0 +1,192 @@ +Public Class Pretty + Shared Function PrettyP(ByVal min As Double, ByVal max As Double, Optional ByVal interval As Integer = 6, Optional ByVal buffer As Double = 0.01) + + Dim range As Double = max - min + max = max + range * buffer + If (min >= 0) And (min - range * buffer < 0) Then + min = 0 + Else + min = min - range * buffer + End If + + Const shrink_sml As Double = 0.25 + Dim high_u_fact() As Double = {0.8, 1.7} + Const eps_correction As Integer = 2 + Const return_bounds As Integer = 0 + Dim dx, cell, unit, base, U, ns, nu As Double + Dim k As Integer, min_n As Integer = 1 + Dim i_small As Boolean + Dim list1 As List(Of Double) = New List(Of Double) + + + Const rounding_eps As Double = 0.0000001 + Const dbl_epsilon As Double = Double.Epsilon + Const dbl_max As Double = Double.MaxValue + Const dbl_min As Double = Double.MinValue + + 'calculating the range + dx = max - min + + 'cell is the scale + If (dx = 0 And max = 0) Then + + cell = 1 + i_small = True + + Else + cell = fmax(Math.Abs(min), Math.Abs(max)) + + ' U is upper bound + If (high_u_fact(1) >= (1.5 * high_u_fact(0) + 0.5)) Then + + U = 1 + (1 / (1 + high_u_fact(0))) + Else + U = 1 + (1.5 / (1 + high_u_fact(1))) + End If + + i_small = dx < cell * U * imax(1, interval) * dbl_epsilon * 3 + + End If + + If (i_small) Then + If (cell > 10) Then + cell = 9 + cell / 10 + cell *= shrink_sml + End If + + If (min_n > 1) Then + cell /= min_n + End If + Else + cell = dx + + If (interval > 1) Then + cell /= interval + End If + + End If + + If (cell < 20 * dbl_min) Then + cell = 20 * dbl_min + + ElseIf (cell * 10 > dbl_max) Then + cell = 0.1 * dbl_max + End If + + base = Math.Pow(10.0, Math.Floor(Math.Log10(cell))) + + unit = base + U = 2 * base + If (U - cell < high_u_fact(0) * (cell - unit)) Then + unit = U + U = 4 * base + If (U - cell < high_u_fact(0) * (cell - unit)) Then + unit = U + U = 5 * base + If (U - cell < high_u_fact(0) * (cell - unit)) Then + unit = U + U = 6 * base + If (U - cell < high_u_fact(0) * (cell - unit)) Then + unit = U + U = 8 * base + If (U - cell < high_u_fact(0) * (cell - unit)) Then + unit = U + U = 10 * base + If (U - cell < high_u_fact(0) * (cell - unit)) Then + unit = U + End If + End If + End If + End If + End If + End If + + If unit = 0 Then + unit = 1 + End If + + ns = Math.Floor(min / unit + rounding_eps) + nu = Math.Ceiling(max / unit - rounding_eps) + + If (eps_correction And (eps_correction > 1 Or Not (i_small))) Then + + If (min) Then + min *= (1 - dbl_epsilon) + Else + min = -dbl_min + End If + + If (max) Then + max *= (1 + dbl_epsilon) + Else + max = +dbl_min + End If + + End If + + While (ns * unit > min + rounding_eps * unit) + ns -= 1 + End While + + While (nu * unit < max - rounding_eps * unit) + nu += 1 + End While + + k = 0.5 + nu - ns + + If (k < min_n) Then + + k = min_n - k + + If (ns >= 0) Then + nu += k / 2 + ns -= k / 2 + k Mod 2 + Else + ns -= k / 2 + nu += k / 2 + k Mod 2 + End If + interval = min_n + Else + interval = k + End If + + If (return_bounds) Then + If (ns * unit < min) Then + min = ns * unit + End If + + If (nu * unit < max) Then + max = nu * unit + End If + Else + min = ns + max = nu + End If + + min = ns * unit + max = nu * unit + + If (nu >= ns + 1) Then + If (ns * unit < min - rounding_eps * unit) Then + ns += 1 + End If + If (nu > ns + 1 And nu * unit > max + rounding_eps * unit) Then + nu -= 1 + End If + interval = nu - ns + End If + + list1.Add(min) + list1.Add(max) + list1.Add(unit) + Return list1 + End Function + + Shared Function fmax(ByVal lo As Double, ByVal hi As Double) As Double + Return Math.Max(lo, hi) + End Function + + Shared Function imax(ByVal lo As Integer, ByVal hi As Integer) As Double + Return Math.Min(lo, hi) + End Function +End Class diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/Binning.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/Binning.png new file mode 100644 index 00000000..8e4cb2fa Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/Binning.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/BoxWhiskerDiagram.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/BoxWhiskerDiagram.png new file mode 100644 index 00000000..08c7ebe5 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/BoxWhiskerDiagram.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/BoxWhiskerKey.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/BoxWhiskerKey.png new file mode 100644 index 00000000..c1bd5dd8 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/BoxWhiskerKey.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/BoxWhiskerType.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/BoxWhiskerType.png new file mode 100644 index 00000000..c6571c6b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/BoxWhiskerType.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/BoxWisker.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/BoxWisker.png new file mode 100644 index 00000000..ded7d562 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/BoxWisker.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/ColorSetting.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/ColorSetting.png new file mode 100644 index 00000000..100d055f Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/ColorSetting.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/DateSetting.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/DateSetting.png new file mode 100644 index 00000000..457a737b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/DateSetting.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/FullDateRange.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/FullDateRange.png new file mode 100644 index 00000000..2efc6998 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/FullDateRange.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/FullDateRange_16.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/FullDateRange_16.png new file mode 100644 index 00000000..7f402943 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/FullDateRange_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/HisType.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/HisType.png new file mode 100644 index 00000000..e31cef38 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/HisType.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/Histogram.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/Histogram.png new file mode 100644 index 00000000..c8ac06a2 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/Histogram.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/Legend.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/Legend.png new file mode 100644 index 00000000..4ad58a4f Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/Legend.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/PlotType.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/PlotType.png new file mode 100644 index 00000000..8da8ef36 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/PlotType.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/Probability.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/Probability.png new file mode 100644 index 00000000..e2441399 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/Probability.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/Summary.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/Summary.png new file mode 100644 index 00000000..81402ecf Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/Summary.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/TSA.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/TSA.png new file mode 100644 index 00000000..a4c45881 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/TSA.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/TSAType.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/TSAType.png new file mode 100644 index 00000000..b4ccadb2 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/TSAType.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/TSA_icon.png b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/TSA_icon.png new file mode 100644 index 00000000..3ed9aa51 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.GraphView/Resources/TSA_icon.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/Statistics.vb b/Source/Plugins/HydroDesktop.Plugins.GraphView/Statistics.vb new file mode 100644 index 00000000..3cffc35c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/Statistics.vb @@ -0,0 +1,203 @@ +Option Strict On + +Imports HydroDesktop.Interfaces.ObjectModel + +Public Class Statistics + Shared Function ArithmeticMean(ByRef objDataTable As DataTable) As Double + Try + If objDataTable.Rows.Count = 0 Then Return 0 + Return Convert.ToDouble(objDataTable.Compute("Avg(DataValue)", "")) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.ArithmeticMean" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function GeometricMean(ByRef objDataTable As DataTable) As Double + Try + Dim dblTotal As Double = 0 + Dim objDataRow As DataRow + For Each objDataRow In objDataTable.Rows + If Convert.ToInt32(objDataRow.Item("DataValue")) > 0 Then + dblTotal += Math.Log10(Convert.ToDouble(objDataRow.Item("DataValue"))) + End If + Next + Return 10 ^ (dblTotal / Count(objDataTable)) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.GeometricMean" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function Mean(ByRef objDataTable As DataTable) As Double + Try + Return ArithmeticMean(objDataTable) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.Mean" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function Median(ByRef objDataTable As DataTable) As Double + Try + If (Count(objDataTable) Mod 2 = 0) Then + Dim intRow As Integer = Convert.ToInt32(Math.Floor(Count(objDataTable) * 0.5)) + Return (Convert.ToDouble(objDataTable.Rows(intRow).Item("DataValue")) + Convert.ToDouble(objDataTable.Rows(intRow - 1).Item("DataValue"))) / 2 + Else + Return Percentile(objDataTable, 50) + End If + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.Median" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function Minimum(ByRef objDataTable As DataTable) As Double + Try + If objDataTable.Rows.Count = 0 Then Return 0 + Return Convert.ToDouble(objDataTable.Compute("MIN(DataValue)", "")) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.Minimum" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function Maximum(ByRef objDataTable As DataTable) As Double + Try + If objDataTable.Rows.Count = 0 Then Return 0 + Return Convert.ToDouble(objDataTable.Compute("MAX(DataValue)", "")) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.Maximum" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function Range(ByRef objDataTable As DataTable) As Double + Try + Return Maximum(objDataTable) - Minimum(objDataTable) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.Range" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function UpperQuartile(ByRef objDataTable As DataTable) As Double + Try + Return Percentile(objDataTable, 75) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.UpperQuartile" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function LowerQuartile(ByRef objDataTable As DataTable) As Double + Try + Return Percentile(objDataTable, 25) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.LowerQuartile" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function InterquartileRange(ByRef objDataTable As DataTable) As Double + Try + Return UpperQuartile(objDataTable) - LowerQuartile(objDataTable) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.InterquartileRange" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function UpperAdjacent(ByRef objDataTable As DataTable) As Double + Try + If (UpperQuartile(objDataTable) + InterquartileRange(objDataTable) * 1.5 > Maximum(objDataTable)) Then + Return Maximum(objDataTable) + Else + Return UpperQuartile(objDataTable) + InterquartileRange(objDataTable) * 1.5 + End If + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.UpperAdjacent" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function LowerAdjacent(ByRef objDataTable As DataTable) As Double + Try + If (LowerQuartile(objDataTable) - InterquartileRange(objDataTable) * 1.5 < Minimum(objDataTable)) Then + Return Minimum(objDataTable) + Else + Return LowerQuartile(objDataTable) - InterquartileRange(objDataTable) * 1.5 + End If + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.LowerAdjacent" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function UpperConfidenceLimit(ByRef objDataTable As DataTable) As Double + Try + Return Median(objDataTable) + StandardDeviation(objDataTable) / Math.Sqrt(Count(objDataTable)) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.UpperConfidenceLimit" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function LowerConfidenceLimit(ByRef objDataTable As DataTable) As Double + Try + Return Median(objDataTable) - StandardDeviation(objDataTable) / Math.Sqrt(Count(objDataTable)) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.LowerConfidenceLimit" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function UpperConfidenceInterval(ByRef objDataTable As DataTable) As Double + Try + Return Mean(objDataTable) + StandardDeviation(objDataTable) / Math.Sqrt(Count(objDataTable)) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.UpperConfidenceInterval" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function LowerConfidenceInterval(ByRef objDataTable As DataTable) As Double + Try + Return Mean(objDataTable) - StandardDeviation(objDataTable) / Math.Sqrt(Count(objDataTable)) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.LowerConfidenceInterval" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function Percentile(ByRef objDataTable As DataTable, ByVal intPercentile As Integer) As Double + Try + If objDataTable.Rows.Count = 0 Then Return 0 + Dim intRow As Integer = Convert.ToInt32(Math.Floor(Count(objDataTable) * (intPercentile / 100))) + Dim rows() As DataRow = objDataTable.Select("", "DataValue ASC") + Return Convert.ToDouble(rows(intRow).Item("DataValue")) + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.Percentile" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function StandardDeviation(ByRef objDataTable As DataTable) As Double + Try + If objDataTable.Rows.Count > 1 Then + Return Convert.ToDouble(objDataTable.Compute("STDEV(DataValue)", "")) + Else + Return 0 + End If + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.StandardDeviation" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function CoefficientOfVariation(ByRef objDataTable As DataTable) As Double + Try + If ArithmeticMean(objDataTable) <> 0 Then + Return StandardDeviation(objDataTable) / ArithmeticMean(objDataTable) + Else + Return 0 + End If + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.CoefficientofVariation" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function Count(ByRef objDataTable As DataTable) As Integer + Try + Return objDataTable.Rows.Count + Catch ex As Exception + Throw New Exception("Error Occured in Statistics.Count" & vbCrLf & ex.Message) + End Try + End Function + + Shared Function CountCensored(ByRef objDataTable As DataTable) As Integer + Return objDataTable.Rows.Cast(Of DataRow).Count(Function(row) DataValue.IsCensored(CType(row("CensorCode"), String))) + End Function +End Class \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.GraphView/packages.config b/Source/Plugins/HydroDesktop.Plugins.GraphView/packages.config new file mode 100644 index 00000000..33bebbe4 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.GraphView/packages.config @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HeaderControl/HydroDesktop.Plugins.HeaderControl.csproj b/Source/Plugins/HydroDesktop.Plugins.HeaderControl/HydroDesktop.Plugins.HeaderControl.csproj new file mode 100644 index 00000000..c60c928e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HeaderControl/HydroDesktop.Plugins.HeaderControl.csproj @@ -0,0 +1,136 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {4CEB19CE-54D1-420C-A817-FB544DCF1DDE} + Library + Properties + HydroDesktop.Plugins.HeaderControl + HydroDesktop.Plugins.HeaderControl + v4.0 + 512 + ..\..\ + true + Client + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HeaderControl\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HeaderControl\ + TRACE + prompt + 4 + + + + True + ..\..\packages\DotSpatial.Plugins.Ribbon.1.4.38\lib\net40-client\DevExpress.Data.v12.2.dll + + + ..\..\packages\DotSpatial.Plugins.Ribbon.1.4.38\lib\net40-client\DevExpress.Printing.v12.2.Core.dll + + + True + ..\..\packages\DotSpatial.Plugins.Ribbon.1.4.38\lib\net40-client\DevExpress.Utils.v12.2.dll + + + True + ..\..\packages\DotSpatial.Plugins.Ribbon.1.4.38\lib\net40-client\DevExpress.XtraBars.v12.2.dll + + + True + ..\..\packages\DotSpatial.Plugins.Ribbon.1.4.38\lib\net40-client\DevExpress.XtraEditors.v12.2.dll + + + ..\..\packages\DotSpatial.Plugins.Ribbon.1.4.38\lib\net40-client\DevExpress.XtraGrid.v12.2.dll + + + ..\..\packages\DotSpatial.Plugins.Ribbon.1.4.38\lib\net40-client\DevExpress.XtraLayout.v12.2.dll + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Plugins.Ribbon.1.4.38\lib\net40-client\DotSpatial.Plugins.Ribbon.dll + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + + + + + + + + + + + + + Designer + + + + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + +if $(ConfigurationName) == Release goto :release + +md "$(TargetDir)..\DotSpatial.Plugins.Ribbon" +move /y "$(TargetDir)DotSpatial.Plugins.Ribbon.*" "$(TargetDir)..\DotSpatial.Plugins.Ribbon\" +move /y "$(TargetDir)DevExpress.*.v12.2.*" "$(TargetDir)..\DotSpatial.Plugins.Ribbon\" +goto :exit + +:release +del "$(TargetDir)DotSpatial.Plugins.Ribbon.*" +del "$(TargetDir)DevExpress.*.v12.2.*" + +:exit + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HeaderControl/HydroDesktop.Plugins.HeaderControl.nuspec b/Source/Plugins/HydroDesktop.Plugins.HeaderControl/HydroDesktop.Plugins.HeaderControl.nuspec new file mode 100644 index 00000000..1ee6f684 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HeaderControl/HydroDesktop.Plugins.HeaderControl.nuspec @@ -0,0 +1,19 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HeaderControl/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.HeaderControl/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..a72daa23 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HeaderControl/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.HeaderControl")] +[assembly: AssemblyDescription("HydroDesktop Docking HeaderControl")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Hewlett-Packard Company")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.HeaderControl")] +[assembly: AssemblyCopyright("Copyright © Hewlett-Packard Company 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("fec7a94c-a4bb-498f-ab2a-b7c75dff38bf")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/HydroDesktop.Plugins.HeaderControl/packages.config b/Source/Plugins/HydroDesktop.Plugins.HeaderControl/packages.config new file mode 100644 index 00000000..568b0434 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HeaderControl/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/AboutBox.cs b/Source/Plugins/HydroDesktop.Plugins.HelpTab/AboutBox.cs new file mode 100644 index 00000000..0b8c0f01 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HelpTab/AboutBox.cs @@ -0,0 +1,32 @@ +using System; +using System.Diagnostics; +using System.Windows.Forms; +using HydroDesktop.Common; + +namespace HydroDesktop.Plugins.HelpTab +{ + internal partial class AboutBox : Form + { + public AboutBox() + { + InitializeComponent(); + } + + private void AboutBox_Load(object sender, EventArgs e) + { + lblVersionInfo.Text += AppContext.Instance.ProductVersion; + DateTime copyDateTime = DateTime.Now; + string year = copyDateTime.Year.ToString(); + lblCopyright.Text += year; + linkLabel1.Links.Remove(linkLabel1.Links[0]); + linkLabel1.Links.Add(0, linkLabel1.Text.Length, "http://www.hydrodesktop.org"); + + } + + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + var sInfo = new ProcessStartInfo(e.Link.LinkData.ToString()); + Process.Start(sInfo); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/AboutBox.designer.cs b/Source/Plugins/HydroDesktop.Plugins.HelpTab/AboutBox.designer.cs new file mode 100644 index 00000000..ab28e041 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HelpTab/AboutBox.designer.cs @@ -0,0 +1,118 @@ +namespace HydroDesktop.Plugins.HelpTab +{ + partial class AboutBox + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox)); + this.lblPicture = new System.Windows.Forms.Label(); + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.lblVersionInfo = new System.Windows.Forms.Label(); + this.lblCopyright = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // lblPicture + // + this.lblPicture.Image = global::HydroDesktop.Plugins.HelpTab.Resources.Logo_Medium; + this.lblPicture.Location = new System.Drawing.Point(12, 9); + this.lblPicture.Name = "lblPicture"; + this.lblPicture.Size = new System.Drawing.Size(362, 68); + this.lblPicture.TabIndex = 0; + // + // linkLabel1 + // + this.linkLabel1.AutoSize = true; + this.linkLabel1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.linkLabel1.Location = new System.Drawing.Point(87, 151); + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.Size = new System.Drawing.Size(176, 16); + this.linkLabel1.TabIndex = 1; + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "http://www.hydrodesktop.org"; + this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // lblVersionInfo + // + this.lblVersionInfo.AutoSize = true; + this.lblVersionInfo.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblVersionInfo.Location = new System.Drawing.Point(20, 92); + this.lblVersionInfo.Name = "lblVersionInfo"; + this.lblVersionInfo.Size = new System.Drawing.Size(60, 16); + this.lblVersionInfo.TabIndex = 2; + this.lblVersionInfo.Text = "Version: "; + // + // lblCopyright + // + this.lblCopyright.AutoSize = true; + this.lblCopyright.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblCopyright.Location = new System.Drawing.Point(20, 120); + this.lblCopyright.Name = "lblCopyright"; + this.lblCopyright.Size = new System.Drawing.Size(190, 16); + this.lblCopyright.TabIndex = 3; + this.lblCopyright.Text = "Copyright: CUAHSI, 2010-"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(20, 151); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(61, 16); + this.label1.TabIndex = 4; + this.label1.Text = "Website:\r\n"; + // + // AboutBox + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(384, 189); + this.BackColor = System.Drawing.Color.White; + this.Controls.Add(this.label1); + this.Controls.Add(this.lblCopyright); + this.Controls.Add(this.lblVersionInfo); + this.Controls.Add(this.linkLabel1); + this.Controls.Add(this.lblPicture); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "AboutBox"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "About HydroDesktop"; + this.Load += new System.EventHandler(this.AboutBox_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label lblPicture; + private System.Windows.Forms.LinkLabel linkLabel1; + private System.Windows.Forms.Label lblVersionInfo; + private System.Windows.Forms.Label lblCopyright; + private System.Windows.Forms.Label label1; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/AboutBox.resx b/Source/Plugins/HydroDesktop.Plugins.HelpTab/AboutBox.resx new file mode 100644 index 00000000..2da7a6ed --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HelpTab/AboutBox.resx @@ -0,0 +1,1253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAgBAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+Pj4APn5+QDw8PAA3NzcAMrKygCzsrMAnJudAIeGiQB2dXgAbWxvAF5d + YABRUFMAT05RAAAAAAEAAAADAAAAAwAAAAFOTVEAWFhbAGVlaABxcXQAfn2AAZGRkgCoqKkAwMDBANTU + 1QDl5eYA6unqAOno6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4+PgA+Pj4APn5+QDo6OgAxcXHAJ6dnwD7+/sA/f38APT0 + 9ADg4OAAAAAAEAAAADAAAABXAAAAgAAAAKgAAADLAAAA5wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA5wAAAMsAAACoAAAAgAAAAFcAAAAwAAAAEOnp6gDt7O0A7OvsAI6OkAC3t7gA29vcAOjo + 6QDl5eYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb3APb29wD4+PkA5+foAPv7 + +wD+//4A////APPz8wDPz9EAAAAACgAAADcAAAB8AAAAxQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAMUAAAB8AAAANwAAAArm5ucA8vLzAOzs7QCmpqcA1tbXAOXl5gDh4eIAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA3d3dAOLi4gD4+PkA+/v8AP///wDy8vMA6urqANra2gAAAAAlAAAAdgAAANYAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + ANYAAAB2AAAAJa+vrwDh4eEA7u7vAObm5wC/v78A7+/vAPr6+gD29vYAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNzc4Azc3OAM/P0ADf398A5+fmAPPz9ADs7O0A6OjpAAAA + ACUAAACGAAAA9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA9wAAAIYAAAAl19fYAMTE + xAD19fUA/v7+APf39wDr6+sA6urqAOrq6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAN3d3QDi4uIAAAAACgAAAGEAAADiAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADiAAAAYQAAAAr6+voA9vb2AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P0ADV1dYAzs7PANLS0wDX19gAAAAAGwAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQb/CwsN/hAQ + Ev4UExb9FhUZ/xcWGv8YFxv/GRgc/xgXG/8YFxz/GBcc/xgXG/8ZGBz/GBcb/xgXG/8YFxr/FhUY/xIR + FP8NDA7/BgYH/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAJEAAAAb8/PzAO7u7gDq6uoA9vX1APDv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4eHiAObm5wDe3t8A0tLTAN7e + 3wDJycoAAAAAIAAAAKgAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8EBAT/DQ0P/xQTFv8XFxr/GBgc/xkYHP8aGR3/Gxse/x4dIf8gHyP/IiEl/yQjJ/8nJin/JyYq/ykn + LP8oJyv/JyYp/yYlKP8jIiX/IB8k/x8eIv8cHCD/Gxoe/xkYHP8ZGBz/GRgc/xgXG/8UExb/Dg0P/wQE + BP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACoAAAAIOno + 6AD+/f0A8vHyAPr6+gAAAAAA/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA+fn5AP7+/gDh4eIA6urrAOXl5gDGxscAAAAAGAAAAKIAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJCv8UFBb/Gxoe/xwbH/8cGx//Hh0g/x8fI/8kIyf/Kykt/zIw + M/86OTz/Q0JE/0tKTP9SUFP/WFdZ/11cXf9gXmD/Y2Bj/2JgYv9fXV7/W1lc/1RTVf9OTVD/R0ZJ/z48 + QP82NTj/LSwv/ycmKf8iIST/Hx0h/x0cIP8cGx//HBsg/xsaHv8UFBb/CQkK/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAAABjq6eoA////AP///wD9/f0A1dTVAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+fkA/v7+AODg4QDi4uMAAAAABgAA + AIAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CAgJ/xUUF/8cGx//GRgc/xgX + G/8bGR3/IyEm/zMwNP9FREb/W1pb/3Bub/+DgIH/k5CQ/5+cnP+opaX/r6ys/7Sxsf+2tbT/ura1/7q3 + tv+7uLf/u7i3/7q3tf+4trX/trOz/7OvsP+sqan/pKGh/5iWl/+LiIn/end4/2VjZP9PTU//Ojg8/yoo + LP8eHSH/FxYb/xgXG/8cGx//Hh0h/xYWGP8ICAn/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAIAAAAAG/Pz8APr6+gDV1NUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADW1tYA1tbWAPr6+gD///8A4eHhAAAAAEkAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/EA8R/xkYHP8WFRn/FhUZ/x8eIf8wLzP/SUhK/2ViZP99en3/ko+Q/6Kgn/+uq6r/trKy/7u3 + t/+/u7r/wb28/8O/vv/DwL//xMHA/8TBwP/EwcD/w8G//8TBwP/EwcD/xMLA/8TCwP/EwL//xMC//8PA + vv/Bvr7/v7y7/726uP+5trT/sa+u/6elpP+al5f/iIWF/29tb/9UU1X/OTg7/yUkKP8bGh7/HBsf/x8e + Iv8eHSH/ERAS/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAABJ6OjoANXU + 1QD9/f0A/f39AP39/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoaCjANnZ2QDa2toA7u7tADc3OBYAAACtAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/ExMV/xgXG/8ZFxv/IR8j/y8vMv9GRUj/YV9h/3t6 + e/+TkpL/p6Wl/7Szs/++vLz/w8HA/8XDwv/EwsH/w8DB/8K/v//Avr3/v728/768vP+9u7v/vLu6/7y7 + uv+8u7r/vLq6/7y7uv+8u7r/vLu6/7y7uv+9vLv/vr28/7++vf/Av77/w8DA/8TCwf/EwsL/w8LB/8C/ + vv+6uLf/r62t/6Cfn/+Mi4z/cnJ0/1JSVf8yMTT/HRsf/xgXG/8bGh7/Hx4i/xUUFv8CAgP/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAAEP///wD///8A/v7+AOHh4QAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD19fUA9fX1APj4 + +ACfnqEAy8vMAMjIyAAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/FBMW/xwb + H/8eHCH/JCMn/zIyNv9MTFD/bG1v/42OkP+oqKn/uLi4/76+v/++vr//uru8/7i4uf+1trf/tbW2/7S1 + tf+1tLb/tbW2/7W1tv+1tbb/tbW2/7W1tv+1tbb/tbW2/7W1tv+1trb/tbW2/7W1tv+1tbb/tbW2/7W1 + tv+1tbb/tbW2/7W1tv+0tLX/s7S1/7W1tv+2t7j/ubq7/729vv+/wMD/vr+//7Sztf+bnJ3/cnJ0/0FB + Q/8nJir/JyYq/ygnK/8hICT/HBsf/x0cIP8UFBb/AgIC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAASfX19QD5+fkA4uLiAL29vgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX19QD19fUA+Pj4AKKipAAAAAADAAAAkQAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/EhEU/x4cIP8cGx//IB8j/zMxNv9WV1r/fICC/5ygov+usrT/srW3/7Cz + tf+tsLL/rK+x/6yvsv+rr7L/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yv + sf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rLCy/6yvsf+ssLL/rbCz/66y + tP+usrT/q6+x/6Cjpf+LjY//bm9y/1JSVv8+PUH/ODg8/0dITP9YWl7/TE1R/ycmKv8cGh7/HBoe/x4c + IP8gHiL/EhIU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAkQAAAAPe3t4Avb2+AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADl5eYA9fX1APX1 + 9QD5+fkAAAAAGAAAANYAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DAwN/xwbHv8ZGBz/Hh0h/zY3 + O/9aXmH/gISJ/5ieof+iqaz/pqyw/6essP+nrLD/pqqu/6Sqrv+iqq3/o6ms/6OprP+jqKz/oqmt/6Op + rf+jqa3/o6mt/6Oprf+jqa3/o6mt/6Kprf+jqa3/pKmt/6Sprf+kqa3/pKmt/6Sprf+jqa3/o6mt/6Kp + rf+iqKz/o6mt/6Sqrf+mrLD/qa+0/6mwtP+jqa7/k5mb/3p+gf9dX2L/RUVI/zc3O/87O0D/TlFV/2Vo + bf9xdXn/aGtv/1BRVf80NDj/Jycr/zk5Pf87PED/Li0x/x8dIf8fHiL/Hh0g/wwMDf8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAAABi9vb4AoqGjAKKhowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA1tbXAOXl5gDy8vID7e3tAAAAADcAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AgIC/xgXGv8eHSH/JCUp/zc5Pv9YXGH/eX+F/5OboP+hqrD/pq+1/6Wts/+iqrD/n6et/5+n + rf+gp63/oKiu/6Corv+hqa//oamv/6Gpr/+hqrD/oaqw/6GqsP+hqrD/oKmv/6Corv+fqK7/nqet/56l + q/+dpKr/nKSq/5yjqf+co6n/nKSq/52lq/+epqz/n6et/6Cprv+iqrD/oKmu/5igpv+IjpT/c3d8/1xf + Y/9KTVD/QkNH/0JFSf9OUFb/XWJo/2hsc/9nbHH/XWBl/05PVP9BQkb/QEFF/0xPVP9kaW7/fIKH/3R5 + f/9QUlf/KSkt/x0cIf8cHCL/HR0j/xgXGv8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + ADejoqQAnZyeAAAAAAD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJAMjIyQDW1tcA5eXmAN7e + 3wAAAABXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w0MDv8dHCD/HBse/x4dIf8tLjL/TlFW/250 + ev+Ah43/g4qQ/32Dif94foT/dnyC/3V6gP9zeX//c3l//3V6gP92fIL/eX+F/3uCiP99hIr/gIeO/4KK + kf+EjJP/h4+V/4mQl/+Kkpn/jJSb/46Xnv+RmqH/k5yj/5Wepv+Xoaj/lqGo/5egqP+WoKj/lqCn/5Se + pf+Tm6L/j5ee/4eOlf94foT/ZGhu/09SV/9AQkb/ODs//z5BRv9PVFn/ZGtw/3R7gv94f4X/bXJ4/1hd + Yf9ERkv/OjxB/0NGTP9dY2n/eYGH/4iQlv+CiZH/anB5/0dKU/8nKDD/Gxsh/x0dIf8dHSP/HR0j/x0d + I/8NDA7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAFe7urwA////AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAMjIyQDHx8gAyMjJANXV1gDW1tYAAAAAcQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8VFBf/Hhwg/x0cIP8cGh7/ISEl/zAxNf9DRUr/Q0VK/z4/RP85O0D/Nzk9/zc3PP82Njr/NTU6/zQ1 + Of80NTr/Nzg9/zo9Qf8+QUb/Q0ZL/0hKUP9MUFX/UFVa/1VaYP9ZXmX/XWJo/2Fmbf9lbHL/anF3/3B4 + fv92foT/fIWN/4KLkv+DjZT/goyT/4CIkf97hIz/dX2E/21zev9hZmz/T1JY/zg6P/8pKi7/Ly80/0NH + Tf9haW//fYeO/4yYn/+Hkpj/bXV8/0lMUv8xMzj/MzY6/0tPVP9rc3r/hpGZ/5Gdpf+Ejpb/Ymhv/zs9 + RP8kJSn/IB4g/yUhIP8qJR7/Misc/y8pHv8kIiH/HR0i/x4dI/8WFRj/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAHHv7+8A7e3tAPz8/AAAAAAA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJAMjIyQDHx8gAzs7PAAAA + AIAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8EBAT/Gxod/xwbH/8gHyP/Kisv/y4uM/8vMDX/MTI3/zI0 + Of8yNDn/NDY7/zU4Pf83O0D/Oz5E/z5CSP9DSE7/SU5U/01UWv9SWWD/Vl1k/1hgZ/9bYmn/W2Nr/1xk + a/9cZGv/XGRr/1phaf9YXmX/U1lg/01SWf9HTFL/QkVL/z5BRv89QEX/PkJH/z9CR/88PUP/Njg8/zEx + Nv8rLC//Jycq/yYmKv8uLjP/P0NI/1lfZ/9we4P/go+Y/4qYof+AjZX/Ympx/z5BRv8rKy//OjxC/1lh + aP9zfof/hJCZ/4uZov+Fk5v/ZGx0/zs/R/8hIin/JiEd/zovF/9PPBH/XUYN/2dMC/9yVAf/a08L/0w8 + FP8oJCD/Gxwj/xwdIv8cGx7/BAQE/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAICQkJIA/Pz8AAAA + AAD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAANXV1gDGxscAy8vMAMrKywAAAACGAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CgkL/xwb + H/8cGh7/LC0x/0pQV/9ganP/ZW94/2Vud/9lb3f/ZG93/2VveP9ncXr/aHN8/2p2fv9sd4H/bnqD/3F9 + hv90gIn/dYKM/3eEjf93ho//eYaQ/3mGkP95hpD/eYWQ/3mFkP94hZD/d4SO/3aDjP9zgIr/cHyG/2t3 + gf9ncXr/YGpz/1lia/9TXGP/TVRb/0dMU/9CR03/QERL/0FGTP9HTVP/UVhg/15ncP9teYL/e4mT/4aV + oP+CkJr/a3R8/0ZLUP8sLTH/Li80/0hOVf9ncnv/eoeR/4WUn/+HlqD/eISN/05WYf8tMTn/KSQf/z4w + Ev9ZQwr/blAH/3lXBP99WgL/gFwB/4NeAf+CXQH/dVUG/1lED/80Kxz/Hh4j/xobI/8fHiL/CgkL/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIb///8A////AP39/QD9/fwAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OEA09PUANPT1ADKyssAAAAAgAAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ND/8cGx//Hx4h/zE0Of9PWGD/bn2H/3yLl/9+jpr/fY2Z/36O + mf9+j5r/fo+b/36Pm/9/j5z/gJGc/4CRnP+AkZz/gJGc/4GRnf+AkZz/gJCc/3+QnP9/kJv/f5Cb/3+Q + mv9/j5v/gI+c/4CQnP+AkJz/gJGc/4CRnP+AkJz/f4+b/36Omf96i5b/doaQ/3GAi/9seoT/aHWA/2Zz + ff9nc33/aXaA/298h/92hJD/fIyY/4KTn/+Ckp7/c4GM/1dfZ/82OD3/IyMn/y4xNv9NVV7/bnyH/4CQ + nP+DlKD/fIyY/2d0f/9FTFb/Kyot/zMpFv9QPAz/b1IH/4BdA/+GYQD/h2AA/4VgAP+EYAD/g18A/4Rf + AP+FYAD/fVsD/2JJDf8+Mhn/JSIg/xsbI/8dHCP/Dg4Q/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AID7+/oA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADy8vIA8vLyAN7e3wDZ2doA19fYAAAAAHEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8REBL/HRwf/yAg + JP8yNjz/VWBq/3CBjf94i5n/dYeU/3SGk/90hZL/dIaR/3SGkv90hpL/c4WS/3SEkv90hZL/dIWR/3SF + kf9zhZD/c4WR/3OFkf90hZL/dIWS/3OGkv9zhpL/coaS/3OGkv90hZL/dIWS/3SFkv90hZL/dIWR/3OE + kf90hZH/c4WR/3SHkv91iJT/d4mX/3eKl/94i5j/eYyZ/3mLmf94i5j/eIqX/3eJl/92iJX/c4WS/2h2 + gv9JUVn/KSov/xwcH/8zNz3/WGRu/3KEkP95jZr/dYiV/3GCj/9danf/PURN/yclI/8/MRT/aE0K/4Vi + A/+MZgD/iGMB/4ZiAv+FYQL/hmIC/4ZiAv+GYgH/hWEC/4diAv+JZAH/imQB/3FUCv9JOhb/JiIh/x0c + I/8dHSP/Dw8R8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAHHq6uoA5ubmAKWlpgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8gDy8vIA4ODhAOTk5QAAAABXAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/EhIU/xwaHv8hICT/NTlB/1lodP9sf43/cIOR/21/jv9tgI7/bYCO/22B + jv9tgY7/bYGO/22Bjv9tgY7/bYGO/22Bjv9tgI7/bYCO/21/jf9sgI7/bYCO/22Bjv9tgY//boKQ/26C + kP9ugpD/boKQ/26Bj/9ugY//bYGP/26Bj/9tgI7/bIGP/22Ajv9tgI7/bX+N/22Ajv9tgI7/bYCO/22A + jv9tgI7/bICN/22Ajv9ugo//cIOS/2x/jf9baXX/OT9H/yAfJP8fHyP/OkFH/15uev9tgY7/cYWT/26C + kP9kdYL/SVRg/yowO/8oJCD/Uj8S/4NgB/+TbAL/k20C/5FrAv+QagP/kGsD/5FrA/+RawP/kWsD/5Fr + A/+RawP/kGoD/5BrAv+SawL/lW0B/4NhB/9XRBT/JiQh/xscI/8dHSL/EBAS5AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAFeUlJYApaWmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA9fb1APX29QDx8fIAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xISFP8bGR3/ISEm/zc/ + Rv9YaHT/ZXqK/2h+jf9nfIv/ZnuK/2Z8iv9mfIv/ZnyK/2Z8iv9mfIr/ZnyK/2Z7iv9mfIr/Z32L/2d9 + jP9ofo3/aH6N/2h+jf9nfYz/ZnyK/2R5h/9jd4b/ZHeG/2V5h/9le4n/ZnuK/2Z9jP9ofo3/aX+O/2mA + j/9qgZD/aoGQ/2qBkP9qgJD/aYCP/2h/jv9ofo7/Z32M/2h9jP9pf47/aYCR/2h+jf9cbnz/RlFc/y4x + N/8dGh//IyUq/z5HUP9cbnv/Z3yL/2uDkv9me4n/UWBu/y83Rv8fIi3/NSwb/2NLDf+QagT/nnMB/55z + Af+ccgH/m3IC/5tyAv+ccwL/nHIC/5xyAv+ccgL/nHIC/5xyAv+ccgL/nHIC/5xyAv+edAH/nnQB/49q + Bf9jTBD/LSge/xkaJP8cHCL/EhIV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADejo6QAxMTFAMTE + xQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ2cngCvrq8Ar6+wAAAAABgAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8RERL/Hhwg/yIiJ/83P0j/UWNw/2J5if9ieYn/YXeH/2B2hv9gd4f/YHeH/2F4 + hv9gd4f/YXiI/2J6if9jeor/YnqJ/2F5iP9fd4b/XXOC/1tvfv9ZbXr/VWd0/1Bhbf9LWWT/RFFb/z9J + U/89RU7/PUVO/z5HUP9ASVP/Qk1X/0VRW/9IVF//S1hj/05daf9RYW3/VGVy/1Zpd/9ZbXv/W3B+/15z + gv9fdoX/X3aF/11ygP9VZ3b/SVZh/zg/R/8lJyz/Gxgc/yUmK/8+SlP/WGx5/2V8jP9lfY3/W3F//0RT + Yv8sMj3/LSgg/0s5Ef92Vwj/m3IE/6x9AP+pegD/pnkA/6Z5Af+meQH/pnkB/6Z6Af+meQH/pnkB/6Z5 + Af+meQH/pnkB/6Z5Af+meQH/pnkB/6Z4Af+pfAD/qnwA/5txBP9nTxD/NC0d/xkaI/8cHCP/ERET/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2NiLCwsMAwMDCAOfn5wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADLy8wAmZeaAHx7fQAAAAADAAAA1gAAAP8AAAD/AAAA/wAAAP8AAAD/Dg4Q/x4eIf8hISX/MzxF/09i + cP9feIr/XXeI/1x0hP9cdIX/XHSF/1x1hf9cdYX/XXaF/1x1hf9bdIT/WnKB/1hvfv9XbXv/VGp4/1Jn + df9RZHL/T2Fv/0xea/9JWWX/Q1Jd/z5KVf83Qkv/MDhA/youNv8mJy3/IyQp/yMkKf8lJiv/Jigt/ygp + MP8qLTP/LTA3/zA1PP8zOUH/Nj5G/zpDTP8+SVL/Qk9Z/0VUX/9FU17/QEtV/zQ7Q/8mKC3/HBod/xsY + Gv8lJyv/P0tV/1Vsef9geor/XXWG/1Rqef89S1r/Ky81/zYrGP9nTQ7/l24G/7GAAP+2hAD/soEA/7CA + Af+wgAH/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/r4AA/7CA + Af+yggD/t4UA/6R4BP9sUxD/MSse/xsbI/8cHSP/CAgJxwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAA + AAPQ0NEA5eXlAPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvLzACioaMAo6KkAAAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/woJC/8eHCD/Hh4h/ycqL/9CUl7/U2p5/1ZvgP9Vb4D/Vm+A/1dwgv9WcIH/VnCB/1Zv + gP9Wbn//VGx8/09mdf9JXWv/RVZi/0NSXf9CUl7/Q1Vi/0haaP9KYG7/TWNy/09mdv9QaHf/UWh4/1Bo + eP9NY3P/R1ln/z1LVv82QEr/MTpB/y82Pf8rMTj/KSwz/yYoL/8kJSv/IiMo/yEhJP8gICP/HyAj/yAh + Jf8iIif/JCUq/yQkKf8hHyX/HRsg/x4cIP8fHiL/KCsx/z1LVf9Tanv/WXSF/1Zwgf9NZHT/NUJP/yUm + Lf9DNRb/hGML/7eGAv/AiwD/vYkA/7qIAP+6iAD/uogB/7qIAf+6iAH/uogB/7qIAf+6iAH/uogB/7qI + Af+6iAH/uogB/7qIAf+6iAH/uogB/7qIAf+6iAH/uYgB/7qHAP+7iAD/wowA/6t+BP9yVxD/KiYg/xwd + I/8dHSPuAAAAswAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAke3t7QDp6ekA/Pz8AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPf3 + 9wD39/cAysrLAMzMzQAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8EBAT/Hx4h/x0bH/8dGx7/IB8j/yot + M/8xOED/N0JL/zxKVv9BUl7/RFdk/0ZYZv9EVmT/P05b/zhFT/80PUb/MTlC/zQ+SP87SlX/Q1dl/0lg + cf9NZnj/T2l6/1BqfP9Qanz/UGp8/1Brff9Pa3z/UGx9/1Bsff9Qa33/T2l6/05neP9MZXX/SmNz/0lh + cP9HXWz/RVpp/0NXZf9BVGL/P1Fe/z1NWv87S1b/OUhU/zhGUf82RE//NkNO/zdDT/82Qk7/OEVR/ztL + Vv9DVmT/TWZ4/1Nugf9Ra3z/QVVk/ykzQv8jJCf/WUUV/5pyCP/EjwH/x5IA/8aSAP/EkAD/xJAB/8SR + Af/FkQH/xJAB/8OPAf/DjwH/w5AB/8OQAf/EkQH/xZAB/8WQAf/FkAH/xJEB/8ORAf/EkQH/xJEB/8WR + Af/EkAH/xJAB/8SQAP/GkQD/yZQA/7OEBf9vVhL/KCUg/xgZJP8dHSDVAAAA6QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAASfv7+wD8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP39/QDs7OwAAAAAEAAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/xsaHf8fHiL/Jiow/yw1Pf8nKzL/ISMn/yAgJP8iISX/JSUp/yYpLv8pLDP/KzA3/ysy + Of8sMzv/LTdA/zI+Sf83SFX/PlNi/0Rcbf9IYnT/SmZ5/0xoe/9LaHr/TGh7/0xoe/9LZ3r/S2d6/0tn + ev9LZ3r/TGh7/01pfP9Nan3/TWp9/01qff9NaXz/TWp8/0xpe/9LaHr/S2d5/0tmef9KZXj/SmR2/0lj + df9IYnT/R2Fz/0Zgcf9GX3H/R2By/0dgcv9IYXP/SWR1/0xoe/9ObH//SGBx/zJDVv8hKjn/Lyoh/2pR + Ef+ofAf/zZYB/9ObAP/PmAD/zZcB/86XAP/RmQD/05sA/9edAP/ZnwD/2p8A/9ygAP/coQD/2J8A/9Sc + AP/RmQD/0poA/9KaAP/SmgD/0psA/9KbAP/TmwD/05oA/9OaAP/TmwD/0poA/9GZAP/UmwD/05oA/7iI + Bf9iTRX/KCQh/xYYI/8cGx7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEMfHyQDf398A39/fAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANLS + 0wDPzs8Az8/QANjY2QAAAACtAAAA/wAAAP8AAAD/AAAA/wAAAP8VFBf/Hhwf/yUoMP8zQ07/PVVk/zZJ + V/8vPEf/KjQ8/ycuNf8nLDP/Jisz/yctNv8pMTr/LDdB/zA/Sv82SVf/PVRl/0Nfcf9HZXn/SGZ7/0dl + eP9GY3f/RmN2/0Vidf9GYnb/RmN2/0Zjdv9GY3b/RmN2/0Zjdv9GYnb/RmJ2/0Zidv9GYnX/RWJ2/0Zi + dv9GY3f/R2N3/0Zkd/9HZHj/R2R4/0dlef9IZnn/SGZ7/0hne/9IZ3z/SWd8/0hne/9JZ3z/SWh8/0lp + ff9JaX3/R2R4/z1Waf8rO03/Jikv/0E0Gf9/Xwz/xpIF/+SnAP/nqQD/4KQA/+CjAP/eogD/3aIA/9uf + AP/WnAH/z5cC/8aRBP+/jQX/u4oG/7yLBv/IkwT/1JwB/9uhAP/aoAD/2J4A/9adAf/WmwH/1JsB/9Sb + AP/TmgH/1JsB/9WcAf/WnQD/2p8A/9ygAP/gowD/4qUA/7GDB/9aRxf/Hx4i/xsbI/8WFRj/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAACtvr6/AOfn5wDn5+cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4Az8/QAJiXmQCXlpgAAAAASQAAAP8AAAD/AAAA/wAA + AP8AAAD/DQwN/x4dIP8gICX/Lz1K/z1Za/9EZXr/QmJ2/0Fecv89Wmz/PFZn/zxUZv87U2X/PFVo/z1Y + a/9AXHD/QWF1/0Njd/9DYnf/QWB1/0FgdP9AX3P/QV5y/0Ffc/9BX3P/QV9z/0Ffc/9BX3P/QV9z/0Ff + c/9BX3P/QV9z/0Ffc/9BX3P/QV9z/0Ffc/9BX3P/QF9z/0Ffc/9BX3T/QV90/0FgdP9BYHT/QV9z/0Ff + dP9BYHT/QWB0/0FgdP9BYHT/QGBz/0FfdP9AX3P/QV90/z9cb/83TV7/KTRB/yUkJf9UQRX/nnQL/9+i + Af/sqwH/5qgC/+CkAv/fogL/3qIC/9ugAv/WnAL/ypQE/7mIB/+jeQv/jGkN/3ldEf9sUxT/aFEV/4Nj + EP+qfQn/xJAF/8SQBv/DjwX/wo4G/8GNBf/CjwX/wo8E/8GQBP/AjgX/vYwF/7yKBf/DkAX/ypUE/9CY + A//VnAL/2Z8C/5NvDf9ANRz/GBkj/x4cI/8NDA7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABJzMzNAMzM + zAC6ursAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gDS0tMA0dHSAAAAAAYAAAD8AAAA/wAAAP8AAAD/AAAA/wICAv8eHCD/Hx4i/ykzPf82UWL/PF5y/zxb + cP88W3D/PFxx/zxccf89XHH/PVxx/z1ccv89XHH/PFxx/zxccP88XHH/O1tw/zxab/88W3D/PFtw/zxb + cP88Wm//PFtw/zxbcP88XHH/PFxx/zxdcf88XXH/PF1x/zxdcf88XXH/PFxy/zxccf88W3H/PFxw/zxb + cP87XHH/PFxx/zxdcv89XXP/PV5z/z1dcv89XHH/PFtw/ztab/88Wm7/PFlu/zxab/88Wm//O1lu/zpW + af81TFz/KzpH/yInMP8uKR//d1oR/7uMCP/XnwT/xpEF/66ACv+ddQz/lW8O/5RuDv+Zcg3/mnMM/5Rw + Df+HaA//emAS/3JaFP9tWBT/ZlMV/1ZHGP8/Nh3/PDMd/09BGf9qUxX/d1wT/4RnEP+RcQ//nHkM/6aA + Cv+rhAn/rYUI/6aBCv+VdQ3/fGIQ/3leEf9/YhH/h2cQ/49tD/+eeAv/mXQL/2tUFP8qJyD/Gxwi/x0d + Iv8BAQH+AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAAGeHd6ALq6uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8wDj5OMAAAAAgAAAAP8AAAD/AAAA/wAA + AP8AAAD/GBYZ/x8dIf8jKTD/MElY/zZXbP84WW//N1Zr/zdXbP83WG3/OFht/zhZbv84WW7/OFlu/zhZ + bv84WG3/N1ht/zdYbf83V2z/N1ds/zZXbP83V2z/N1hu/zhZb/84WnD/N1lv/zdYbf82WGz/N1ds/zdW + a/83V2z/N1dr/zdWbP83V2z/N1ds/zZXbP83WG3/OFlu/zdZbv83WGv/NVNm/zNNX/8xR1f/L0BP/yw6 + Sf8rNkP/KTNA/ykzP/8oMT//KTNA/ykzQP8oMD7/Jyo4/yIhLv8gGyT/MScb/2BLFP+NaQ7/lXEO/4hp + EP95XxL/dl0T/39kEf+RcQ7/poEL/7aNCf/Blgf/x5sG/8mdBf/Knwb/zaEG/9CiBv/Oogb/x5wH/7eR + Cf+siQv/rokK/7iRCP/CmAf/zaEF/9SmBf/bqwT/3q0D/+CwA//gsAL/368D/9ipBP/KnwX/xJoG/8OZ + B//Fmgf/yJ0G/82gBP/aqgP/wpcH/3dfE/8kISH/GRkj/xcXGv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AICkpKUAtra3APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+vr6AAAA + AADc3N0A5OTkAAAAABgAAAD/AAAA/wAAAP8AAAD/AAAA/wwMDf8eGx//IiQq/ys8Sf80VWn/NVhu/zRW + bP81Vmz/NVdt/zVYbf81WG3/NVht/zVXbf81V2z/NVds/zVXbP81Vmz/NVds/zRXbP81V23/NVdt/zVZ + b/80Vmz/Mk9i/y5FV/8rPk7/KztK/yo5SP8rN0f/KzdG/ys4R/8rOEb/KzdH/yo4SP8rOUn/KjpJ/ys7 + TP8sPU3/Kz1N/ys5R/8oMT//JSo2/yMlMP8iIyz/ISMq/yEkKP8gJSf/ICQn/yAkJ/8gJCf/ICQn/yAl + J/8hKif/HzQs/yU2Kv9MRRz/mnMK/7mOB/+0jQn/p4QM/6aEDP+siAz/uZIJ/8qeBv/aqgT/47ED/+m3 + Af/vugD/870A//fBAP/7xAD//cQA//3FAP/8xAD/+cEA//O+AP/xuwD/8bwA//S+AP/2wAD/+MEA//jC + AP/4wgD/+MMA//jDAP/4wgD/+cMA//fBAP/0vgD/8r0A//G8AP/xvQD/8bwA//fCAP/zvQH/w5gH/09B + Gv8gHiH/GRki/wwMDf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAABja2tsA/Pz8AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0AAAAAAMfHyAC/v8AAAAAAogAAAP8AAAD/AAAA/wAA + AP8AAAD/HRwf/x8gJP8nMjz/MlBj/zVZbv80WG3/M1Zs/zRXbP80V2z/NFds/zRXbP80V2v/NFds/zRX + bP80V2z/NFds/zRWbP80V2z/M1ds/zRWbP80VWv/MlJm/y5GV/8pNkP/JCky/yEjKv8hIyj/ICIn/yEi + Jv8hJCb/ISQn/yEjJv8hIib/ICIn/yEjKP8hIyj/ISMp/yEjKf8hIyn/ISIm/yAjI/8fJyT/IS0n/yI3 + LP8kQTH/Jkc2/ydMN/8nTTj/J045/ydNOP8mTTj/J1A6/ypeQP8sdU3/MXVL/1JwM/+dgxL/y58F/+Kw + AP/vuQD/+8MA///HAP//xwD//cUA//rDAP/4wQD/9b8A//O9AP/yvQD/8bwA//G8AP/wvAD/8LwA//G8 + AP/zvQD/9b8A//W/AP/0vgD/870A//G8AP/xvAD/8LwA//G8AP/xvAD/8bwA//C8AP/xvAD/8bwA//K9 + AP/zvQD/870A//O9AP/zvQD/8r0A//nCAP/uuQH/lXYP/zoxHf8WFyP/HRwg/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAovHw8QDn5+cAAAAAAPv7+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX1 + 9QAAAAAA9/f3AAAAACAAAAD/AAAA/wAAAP8AAAD/AAAA/xISFP8fHB//JCkw/y1AT/80VWr/M1Nn/zJR + ZP8xUGP/MU9i/zFOYf8xTmD/MExe/zBLXf8xTF7/ME1f/zFOYP8xT2L/MlBk/zFQZP8xT2P/MU1e/y5E + VP8oN0P/IiQs/yAfI/8hKCX/JDYu/yU/M/8lRDX/Jkc2/ydKOP8nSjn/J0k4/yZHN/8lRTb/JUM2/yVA + NP8lPTL/JDov/yQ6MP8mRTb/KllB/y1uS/8wgFX/Mo1b/zSXYP81nGP/Np5k/zafZP82oGT/Np9j/zWf + Y/82oGT/N6Rk/zipZv81pmb/N5Ra/0t2PP97chv/nHsM/7mQCP/YqQP/7LgB//K9AP/zvgD/8bwA//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8 + AP/xvQD/8b0A//G9AP/xvQD/8bwA//G9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/9L8A//S+ + AP/aqgP/alYV/yEgIf8ZGSP/EhIV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAILq6uwAAAAAA+/v6AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sAxMPFAPv7+wDOzc8AAAAAqAAAAP8AAAD/AAAA/wAA + AP8CAgL/Hh4i/x4aH/8hICj/JSo0/yYuOv8mKzj/JSk1/yMoM/8jJTH/IyQv/yMjLv8iIS3/IiAs/yIh + Lf8iIi3/IiMu/yMlMP8kKDP/Iyg0/yMmMf8iISz/IBwm/x8eJP8jNi//KlxC/zB+VP80j13/NJNg/zWW + Yv81mGP/Nplk/zaZZP82mGT/NZdj/zSWYv80lWP/NJRi/zSSYP8zkF//NJBf/zSXYv82nmf/N6Vq/zep + a/83q2z/OKpr/zeqav83qWn/OKlp/zipaf83qGj/OKlo/zmpaf85q2n/OKxo/ziuaf83q2j/NaBi/zaH + U/82bkT/O1o1/01RI/94YhT/xZkG//G8AP/0vgD/8bwA//G8AP/xvAD/8b0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8bwA//G8AP/xvAD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/xvQD/8bwA//G8AP/xvAD/8b0A//G8AP/xvAD/9L4A//bAAP+phgv/Sz8a/xMVI/8fHiP/AgIC/wAA + AP8AAAD/AAAA/wAAAP8AAACo7+7vAAAAAAD8/PsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gDe3t8D/v7+AAAAABsAAAD/AAAA/wAAAP8AAAD/AAAA/xUUF/8fHSH/Hx8j/yAkJv8hJij/ISYn/yEn + J/8hJyf/ISso/yItKf8iLSj/Ii8p/yIwKv8iMSr/IjAq/yIvKf8iLin/Iiwo/yErKf8iKyn/Iiwp/yIw + K/8kPjH/KVc//y97U/81mGP/N6ls/zmub/85r2//Oq9w/zqvcf86r3H/Oq9x/zqwcf86sHH/Oa9w/zmv + cf85r3H/Oa9w/zmucP85rXD/Oa9w/zmvcf85r3D/Oa5u/zmubv86rW3/Oa1t/zmubf85r23/ObBu/ziw + bf83rm3/Natr/zKlaf8unWb/K5Vj/yiOX/8lhlv/IXJT/yNdRv8vTjb/SEwk/3pkFP/HnAb/8b0A//O9 + AP/xvAD/8LsA//G8AP/xvAD/8bwA//G8AP/xvAD/8bwA//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7 + AP/yvQD/+cIA/92uA/+CaBH/IiAh/xwcI/8UFBf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAb/v7+ANPT + 0wD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7OzsAPLy8gLs7OwAAAAAkQAAAP8AAAD/AAAA/wAA + AP8CAgL/Hh0h/yEkJf8mRTT/KFQ7/ylVO/8pVTv/KVk9/ypcP/8rYUH/LGVE/yxoRf8sbEj/LW5J/y1v + Sv8tbkr/LW1J/yxrSP8rZ0f/K2RF/yxkRf8sZkj/LXBN/zGCWP81mmX/OK1v/zmxcf85rnD/Oatv/ziq + bv84q2//OKpv/ziqb/84q2//OKtv/zisb/85rG//OKxv/zisb/84q2//Oaxv/zmscP85rW//Oa1w/zet + b/83rG//Natv/zWqbv8zp23/MqRr/zCgaf8vm2b/LZVi/y2OXv8vh1n/MYBT/zV5Tf87ckf/Q24+/09t + Nf9fbiz/cXEi/4h5Gf+jhhH/w5oI/+KxAv/yvQD/870A//W/AP/3wAD/+MIA//fCAP/3wAD/9sAA//bA + AP/2wAD/9sAA//K9AP/yvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//G8AP/zvgD/+cIA/7eQCf9NPxv/Gxoj/xsb + I/8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAJH///8Ay8vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTk + 5AC7u7wAwMDCAAAAAAoAAAD/AAAA/wAAAP8AAAD/AAAA/xUSFf8fHyL/JTsw/zKEUf82n17/N59g/zef + YP83o2L/OKVk/zimZf84p2b/OKhn/ziqaP84q2n/OKxq/zisav84rGr/OKxs/zesbP84q23/OKxt/zis + bv85rnD/Oa9w/ziucP84q27/OKpt/zmqbv85q2//OKtv/zmscP85q3H/Oaxw/zmscf84rXH/OKxx/zmt + cv85rXH/Oa1x/zitcP84rXH/OKxx/zascf82rHH/Napv/zSmbf8zoGn/MJlm/y+PYP8uhFr/LXdT/y9s + S/8yYUL/OVk5/0ZVMf9WVyn/a18i/4VrHP+ffBT/uo4O/9KfB//krQL/8rkA//vCAP/8xAD/9sAA//S9 + AP/0vQD/9b4A//S+AP/zvQD/874A//W+AP/2vwD/9b8A//a/AP/1wAD/874A//K9AP/xvAD/8bwA//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/xvAD/8bwA//K9AP/8xQD/3q0E/4ttEP8jICL/Ghoj/xUUFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AAr5+fkA+fn5AAAAAAAAAAAAAAAAAAAAAAAAAAAA5OTkAHx8fgB/f4EAAAAAYQAAAP8AAAD/AAAA/wAA + AP8AAAD/Hxgg/yEoJ/8rYkH/Nptd/zinY/83o2L/OKNi/zilY/84pmT/OKZl/zimZv84p2f/OKho/zin + Z/84qGj/OKpq/zeqav84qmz/OKtt/zmrbv85q27/Oatu/zmqbf85q27/Oatv/zmrbv84q3D/Oaxx/zms + cf85rXH/Oa1y/zmtcv84rXL/Oa1y/zmtcv84rXL/OK1y/zmvc/85snX/ObR1/zavdP8vom7/KpBl/yqD + XP8weVX/PXRN/0lvRf9PaT7/WGU4/2VnNP94bS7/i3cs/5+EKf+ykSb/xZ0j/9WoHf/ishr/6rgV//C8 + Ev/0vg3/9L8J//O/Bf/0vgL/98AA//zFAP/9xAD/978A/+iyAP/PngP/s4gH/6V9CP+sggf/wJIG/8qa + Bf/HmQb/xJgG/86hBv/ptgD/8b0A//K9AP/xvAD/8b0A//G9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/8bwA//bAAP/yvQD/wJcH/0M4 + HP8eHSL/Gxsj/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAYdvb3ADV1tcAAAAAAAAAAAAAAAAAAAAAAAAA + AADn5+cAwsLDAK+vsAAAAADiAAAA/wAAAP8AAAD/AAAA/xAPEf8fGyH/JTow/zKEUv83omH/OKVj/zaj + Yf84pGP/OKRi/zelZP83pWX/N6Vm/zelZv84pmf/N6do/zeoaf83qGv/OKlr/zipbP85qW3/Oalt/zmp + bf85qW7/OKpu/zirb/85rHD/Oaxw/zmtcv85rXL/Oa1x/zmucv85rXL/OK1y/zitcv85rnP/OrJ2/zq1 + d/83tHj/Mqpy/yqZaf8nhV7/K3NS/zpqS/9VcEb/dH5F/5CMRf+ol0L/t54//76gO//Eojf/zaY0/9ar + L//fsi7/6Lgr/++8KP/zwCT/98Mf//jEG//4xBf/+sUU//zHEP//yQz//8oH//vDA//ttgD/1qIB/7iK + Bv+Xcwz/eGAT/11THP9JTCP/Qk0o/0hWKf9VXSb/WFMf/1RGGv9MPBj/W0UV/6iECv/ntwL/+sQA//C7 + AP/wvAD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//G8AP/yvQD/8rwA//nCAP/gsAP/eGAT/yolIf8XGCT/ERAS/wAAAP8AAAD/AAAA/wAA + AP8AAADinp6gAJiYmgDz8/MAAAAAAAAAAAAAAAAAAAAAAM3NzQDb29sAAAAAJQAAAP8AAAD/AAAA/wAA + AP8AAAD/HBce/yEmJv8pVj3/Npxe/zijYv83o2L/N6Ni/zikY/84pGP/OKVl/zimZv84pmf/OKZn/zen + aP83qGr/OKlr/zipbP85qmz/Oals/zmpbf85qW7/Oapu/zmrcP85rHH/Oaxx/zmtcv85rXL/Oa5y/zmt + c/84rXP/Oa1z/zmudP85sHX/OLJ3/zWwdf8wp3H/LZtq/y2NY/8zfln/QHVS/1VxS/9wdEb/j39F/7CT + Rv/Npkf/47ZI//LBR//5yEX//MtD//3NP//+zzv//s84//3PNP/9zDH/+sks//fGKP/1xST/98Yf//nH + G//5xBb/87wR/+axDf/SoQv/uI8M/5p8Ef96bhr/W2Im/0JaMf8vWDv/JVtD/yFiSf8hak3/JHBO/yVu + TP8jXUL/IE48/xY1NP8bIif/XEgW/8SYBv/4wgD/+cQA//jCAP/0vwD/8r0A//G8AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/wuwD/+MEA//C7 + Af+wign/QDYc/xgYI/8cGyD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAls7O0APb29gAAAAAAAAAAAAAA + AADh4eIAl5aZAKCfoQAAAACGAAAA/wAAAP8AAAD/AAAA/wgICf8eFx//JDgv/y90TP84pmP/OKVj/zaj + Yv84pGP/OKVk/zimZf84pmf/OKdo/zenaP84qGn/N6lq/ziqbP85qm3/Oalt/zmpbf85qW3/Oapu/zmr + cP85rHD/Oa1y/zmucv85rXL/Oa1z/zmtc/85rnP/OK10/ziudf85r3b/N7B3/zaudv8zqHP/Mp1r/zKK + YP84dVP/SWdJ/2VmRf+MeUn/t5VQ/92yWf/1yV3//dNc//7UWf/70VT/+c5P//fLS//2yUf/9MlC//TI + Pv/0xzr/88c1//TFMv/0xS7/9cUq//XFJ//zwyH/67sd/92uGf/DnBj/oIMZ/3VoH/9OVSn/MlA2/yRe + Rv8jclT/KIZc/y+XYf81omP/N6dk/zipZP84qGP/N6di/zWgXf80mVr/Ln9P/yVQPP8sMib/gmcR/8ue + Bf/rugL/874B//S+AP/zvgD/8bwA//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7AP/0vgD/9b8A/92sAv9jUBb/IiAi/xobI/8ICAn/AAAA/wAA + AP8AAAD/AAAA/wAAAIb29vYA6urqAAAAAAAAAAAAAAAAAOHh4gBsa24Abm1wAAAAAPcAAAD/AAAA/wAA + AP8AAAD/FhQY/x8bIf8oTjn/M49Y/zimY/84pWP/N6Ri/zilY/84pWX/OKZm/zimZ/83p2j/N6dp/zio + av83qWv/OKls/zmqbf85qm3/Oalt/zmqbv85q3D/Oaxx/zmscf85rXL/Oa5y/zmtc/85rnT/Oa50/zmu + df84rnb/OK93/zizev8zrXb/LJNo/y5zVf9CY0j/aGtI/5eEUv/CpF7/4b5o//DNbf/30mz/+dJo//jP + Y//2zF7/9cta//TLVf/1ylH/9cpN//TJSf/1ykX/9slB//XIPf/1yDn/98g1//nKMv/4yi3/7b0n/8Wb + If+UdB7/Zlwl/0ZfNv8zaEX/K3RR/yuEW/8wl2P/NKRo/zaoaf83qGj/N6dm/zemZP83pWP/OKNi/zii + Yf83omD/NqFe/zeiXf83olz/NJRX/ypnRf8vQSz/V0gZ/5BvDv+7kwn/26wD/++6AP/0vgD/8r0A//G8 + AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//K9 + AP/1vwD/874A/5BxEP84MR7/FBcj/xYVGf8AAAD/AAAA/wAAAP8AAAD/AAAA98rKywDAwMEAAAAAAAAA + AAAAAAAA4uLjAMfHyQAAAAAlAAAA/wAAAP8AAAD/AAAA/wAAAP8fGiD/ISkn/y1nRP83oWH/OKVj/zil + Yv83pWT/OKZl/zilZv84pmf/OKZo/zenaf83qWv/N6lr/zipbP85qWz/Oalt/zmrb/85q2//Oaxx/zmt + cv85rXL/Oa1y/zmtc/85rnT/Oa91/zmvdv85r3f/Oa94/zixef84sXj/Nady/0GKYf9jfVj/kYtc/7ij + Z//Ut27/58Vx//PNc//50nP/+dRx//nTb//40Gv/9s1m//XMYf/0y1z/9MtY//fOVf/80VL//dNP///T + Sv//z0T//ck9//jEOP/xvDP/3awt/7aPKP99ZCT/T0wp/zhUOf8xc07/MZFh/zGdaP8yomv/NKZs/zWq + a/83qmr/N6pp/zioaP84p2f/OKZk/zekY/84o2L/OKJh/zihYP83ol//OKFe/zeiXP83oVz/NJdY/y5/ + T/8tXD3/Mjwo/z4yG/9xWRT/xpwH//zEAP/zvQD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/8bwA//S/AP/4wgD/u5IJ/1ZHGf8VFyT/Hh0j/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAJYqKiwD29vYAAAAAAAAAAADKycsA2NfZAAAAAHYAAAD/AAAA/wAA + AP8AAAD/CQkL/x4ZH/8lPzH/MX1Q/zipZf84pGL/N6Vj/zilZv84pmf/N6Zn/zimaP84p2r/N6lr/ziq + bf84qm3/Oals/zmpbf85qm7/Oaxx/zmtcv85rXL/Oa1z/zmtc/85rXP/Oa51/zmvdv85sHf/ObB4/zmw + eP85sXn/OLN6/zWsdv8xe1j/dYFa/7ula//ix3v/9tF///3Zf//92n3/+9d6//fSdf/10HH/9M9u//XO + a//1zWj/9s5l//vRYv/80V7/98tW/+q9Tf/YrkX/yaNA/7udPv+xmz3/pZo//5WTPv99hD3/W3I+/zZi + Qv8naE//J4Be/y6da/81rXH/OLBx/zqwcf86rm7/OKtr/zioaf83p2f/N6Zn/zilZ/84pWX/OKVk/zik + Y/84o2L/OKJh/zihYP84oF7/N6Bc/zegXP85pV3/NqRe/y2IVf8fUkD/EhYl/ygfHv+GaRD/4bAD//zF + AP/3wQD/8r0A//G8AP/xvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/wuwD/8r4A//fBAP/drAP/d2AU/yAeIv8cHCL/CQkL/wAAAP8AAAD/AAAA/wAAAP8AAAB2vLy9APj4 + +AAAAAAA+Pj4AJqZmwCjoqUAAAAA1gAAAP8AAAD/AAAA/wAAAP8WFBf/Hhwh/ylWPf8zkFn/OKpm/zil + Y/82pGX/OKZn/zinaP82p2j/OKdp/zepa/85qmz/Oalt/zmpbv85qW3/Oapu/zmscP85rXL/Oa5y/zmt + cv85rXP/Oa51/zmudf85r3f/ObB4/zmxef85sXn/ObB5/ziyev84tXz/NKp2/y9kTP+Ee1b/1LZ0//Xf + if/+3Ib/+teA//fTfP/30nn/9tB2//XQc//0z3D/9c9t//bPa//3zmf/78hh/925WP/Bo07/oY1F/4R9 + Qf9tdkL/XHhI/1GAT/9Ghlf/OYVa/y6CXf8ohmL/LJhq/zWqcv86tHX/OrJz/zmsb/84qW7/OKht/zip + bf85qWz/N6lr/zioaP82p2f/OKVm/zilZ/84pmX/OKVj/zikYv84o2L/OKJh/ziiYP84oV7/N59c/zef + W/83pF7/OKNd/zOGUP8kQTP/Fxsm/0U1Gv+WdQ3/3a0D//C8AP/2wQD/9sAA//S+AP/yvQD/8bwA//G8 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8AP/xvAD/9L4A//K8AP+ZeQ7/NS4e/xka + I/8UFBn/AAAA/wAAAP8AAAD/AAAA/wAAANb6+vsA7e3uAAAAAAD4+PgAf36AAAAAAAoAAAD/AAAA/wAA + AP8AAAD/AAAA/x4bH/8gJCX/LWxJ/zadYP84qGb/OKVl/zelZv84pmf/N6do/zeoaf84qGr/OKls/zmp + bP85qW3/Oapu/zmrb/85rHH/Oa1y/zmtc/85rnL/Oa10/zmudf85sHb/ObB3/zmweP85sXn/ObJ5/zmy + ev85sXv/OLJ8/zi1fv83sXz/L41n/z9pT/95dVL/w6ds/+3Of//42IL/+tZ///jTe//30nj/9tF1//XQ + cv/20XD/9s9t/+nEZf+1nFP/eXZG/0liQ/8yZkz/KnhZ/yuMZv8unnH/MKp3/zKvef80snn/NrJ5/zmz + eP84snf/OK90/ziuc/85rXL/Oaxx/zirb/85qm7/Oalt/zmqbf84qWz/OKlq/zeoaf83pmf/OKZn/zim + Zv84pWT/OKRj/zijYv84o2L/OKJh/zihX/83n13/OJ9c/zefW/83olz/Np5a/zGBTv8lSDf/HiQn/zgu + Hf98YRD/wJcG/+e2Av/2wAD/9r8A//K9AP/yvQD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8bwA//G8AP/yvQD/+8MA/7aQCf9TRRj/Fxgj/xsaIf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AArQ0NEAAAAAAPj4+ADi4uIAAAAANwAAAP8AAAD/AAAA/wAAAP8EAwT/Hxsh/yQyLP8xf1H/N6Zk/zin + Zv84pmb/N6Vm/zilZv83pmf/N6hq/zepa/84qmz/Oals/zmpbf85qm//Oatx/zmtcv85rnP/Oa1z/zmt + c/85rnX/Oa92/zmxeP85sXj/ObB4/zmxef85snr/ObN8/zmzff84tH7/OLV//zi1f/83s37/M6By/zaC + X/9ObE//hHtV/8KjaP/sxXf//dd///3cf//92Hv/+dR2//rVdP/wymz/o4lO/0ZZQf8fZ1H/JJVu/yup + ev8ws3//NLeA/za3fv82s3z/N7J6/zeyef84snn/ObF3/zmwd/85rnT/OK1y/zitcf85rHH/Oaxx/zmq + b/85qW3/Oapt/ziobP84qWv/N6hq/zenaP84pmf/OKVn/zimZv84pGT/OKNi/zijYv84omH/OKFg/zif + Xv84n1v/N55a/zefW/83oVv/N6Bb/zSOVP8sbkf/Jks4/yozJ/9ENxr/dFcQ/6yECf/crAP/9L4A//W/ + AP/yvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8LsA//G8AP/8xAD/0KIF/3Nd + FP8aGST/HBsj/wQEBP8AAAD/AAAA/wAAAP8AAAD/AAAAN62srgAAAAAA39/gAOfm5wAAAAB8AAAA/wAA + AP8AAAD/AAAA/w4MD/8eHiL/JkQ0/zOOWP84qmb/N6Zl/zilZ/84pWb/N6do/zeoaf83qWz/OKls/zmp + bP85qW3/Oatv/zmrcP85rHL/Oa1y/zmtc/85rnX/Oa51/zmvd/85sHj/ObF5/zmyef85snr/ObN7/zm0 + ff85tH7/ObV//zm1f/84tH7/OLZ//zm5gv81uIH/L6h4/y6Sa/8+gl//Xn1Z/4KBWP+mkV7/yKlm/+i+ + b//6znT//9p3//jVcv/Ao1v/dnZL/1J1UP9Nj2H/Q5dp/zOXbf8rm3L/K6V3/zCwff82tn7/OLZ8/zqz + ev85sHf/Oa94/ziudf85rnT/Oa1z/zmtcv85rXL/Oaxx/zmrb/85qW3/Oalt/zmpbf84qWz/N6hq/zin + aP83pmj/OKVn/zilZv84pGT/OKNi/zijYf84omH/OKBf/zigXf84n1v/N55a/zifW/84o13/N6Rd/zab + Wv8xiFP/J25K/yFVP/8mQDH/Ojsi/2BOF/+ZeQ7/16gE//K9AP/yvQD/8r0A//G8AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/xvAD/8r0A//rCAP/isAP/knQP/yQhIv8bGyP/Dg0Q/wAAAP8AAAD/AAAA/wAA + AP8AAAB8goKEAPr6+gCysbMAtrW2AAAAAMUAAAD/AAAA/wAAAP8AAAD/FhMX/x8iJP8pWT//NZhd/zis + Z/82pWb/OKZn/zemZ/83qGn/OKlr/ziobf85qm3/Oalt/zmqbv85rHD/Oaxx/zmtcv85rXP/Oa50/zmv + dv85r3f/ObB4/zmxef85sXr/ObJ7/zmzff85tH7/ObV//zm1f/85tYD/ObWA/zm1f/84toD/OLaA/zm5 + g/85vYb/Nr2G/yyqe/8pjmn/Mnlc/0t1Vv9vgFj/lJBd/7ejY//Qs2f/4MBq/+e/Z//TsmD/vadb/6yh + WP+WmVf/doxX/1qHWv9Fi2D/OJRq/zGecf8wqHf/MrB6/za0e/84s3r/OLF4/zmvdv84rnT/Oa1z/zmt + cv85rXL/Oaxx/zmqbv85qm7/Oalu/zmpbf84qWv/OKhp/zanaP84pmj/OKZn/zilZf84pGP/OKRi/zij + Yv84oWD/OKFf/zigXP84nlv/N55a/zifW/83o1z/Oahf/zmqYP84ol3/NpBT/y5oQ/8sQC7/QDUc/3lg + Ev/LnwX/8b0A//O+AP/xvAD/8LsA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7AP/yvQD/9r8A/+66 + Af+siAv/NC0f/xwcI/8VFRr/AAAA/wAAAP8AAAD/AAAA/wAAAMWjo6UA+/v7AIKBgwCFhIYAAAAA/wAA + AP8AAAD/AAAA/wAAAP8cGB3/ISgn/y1tSf82n2H/OKto/zelZv84pmf/N6dp/zeoa/84qmz/OKlt/zmp + bf85q2//Oaxw/zmtcf85rXL/Oa1z/zmudf85r3b/ObB4/zmweP85sXn/ObJ6/zmze/85s33/ObV//zm1 + f/85tX//ObaA/zm1gP85toH/ObeC/zi3g/85uIP/ObiE/zi4hP84uYX/OL6H/ze/if8yt4X/K6V6/ymP + a/8ve13/R3RV/2p7VP+Vjlj/wahh/97AaP/rzmr/8tBn//bJYf/mu1n/xKZS/5mRTf9wgU3/Tn9V/zuM + Yv8znnD/M6x3/zWxev82snn/OLB3/zmwdv85rnT/OK1z/zitcv85rXH/Oaxw/zmrb/85qW3/Oals/zip + bP84qGv/N6hp/zemZ/84pWb/OKVl/zilZP84pGL/OKNh/ziiYf84omD/OKBd/zefXP83n1v/OKBc/zee + Wv81l1j/MotT/zODTf9TkUP/fJwz/5mVHv+siAv/xZsG/+SzAf/yvQD/8r0A//K9AP/xvAD/8bwA//G8 + AP/xvAD/8bwA//G8AP/xvAD/8bwA//K9AP/yvAD/9r8A/8KYB/9KPhv/Hh0i/xgYIf8AAAD/AAAA/wAA + AP8AAAD/AAAA//v7+wD39/cAY2JlAAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/x8aIP8iLyr/MH1R/zaj + ZP83qmj/N6Zn/zinaP83p2n/OKlr/zmpbf85qW3/Oapu/zmrcP85rHH/Oa1y/zmtcv85rXT/Oa92/zmw + d/85sHj/ObF5/zmxev85snv/ObN9/zm0fv85tX//ObV//zm2f/85toD/ObaB/zm3gv85uIP/ObiE/zm5 + hf85uYX/OLmE/zm6hf85uob/OLqG/zi6h/83u4f/N7uG/zW3hf8yrX//Mp91/zaOaP9GgF3/YX1U/4SF + Uf+sllP/0qxX/+/BXP/1zV3/8M9c/+fGVv/Lr0//oJVI/22ASv9DflX/LpFo/y6odv81s3v/ObR6/ziv + dv84rXT/Oa1z/zitcv85rHH/Oatw/zmqbv85qW3/OKls/zipa/83qGn/N6do/zimZ/84pWb/OKVk/zik + Y/84o2L/OKJh/ziiYf84oF//N59c/zegW/84oFz/MoVP/ypZPf8gMy7/Iion/2FRGf/AmQv/78ME//LF + Af/1xgD/+MQA//jBAP/2vwD/874A//K9AP/yvQD/8bwA//K9AP/yvQD/8r0A//K9AP/xvAD/8r0A//G8 + AP/6wwD/0aUF/2NQFv8gHiL/GBkk/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEOnp6QC3trgAAAAAMAAA + AP8AAAD/AAAA/wAAAP8GBQb/Hhwh/yQ5L/8zi1j/N6Zm/zipaP82pmf/OKdp/zeoa/84qWz/Oalt/zmp + bf85qm//Oaxx/zmtcv85rXL/Oa1z/zmudf85sHf/ObF5/zmxef85sXn/ObJ7/zm0ff85tX7/ObV//zm1 + f/85tYD/ObaB/zm3gv85uIP/ObmE/zm4hf85uYX/ObmF/zm6hv85uYf/ObqI/zm6h/84uof/ObuI/zm8 + if85vor/N76L/zW8iv8zt4b/MLGC/zGofP82oHX/Ppds/02OY/9iiVv/folT/5uRT/+4nk3/1axM/+e1 + TP/ouEn/2LJG/7ikRv+Ikkn/U4VT/zOLYv8qn3L/NLN7/zizef85r3T/OK1x/zmtcv85rHH/Oatv/zmp + bf85qW3/N6ls/zepav82qGj/OKZn/zilZ/84pWb/OKRk/zijYv84o2L/OKNi/zihYP82oF7/OKBc/zig + XP80jFP/LWtE/yVJNv8jNi7/Ojsj/29cF/+WeA7/rIgJ/8GUBP/TnwL/4aoA/+yyAP/0uQD/+b4A//zC + AP/9xAD//cYA//3FAP/6xAD/9cAA//K9AP/yvQD/8LsA//vEAP/drQP/fGMS/yQiIf8XGCT/BgYG/wAA + AP8AAAD/AAAA/wAAAP8AAAAw2NjZAODg4QAAAABXAAAA/wAAAP8AAAD/AAAA/wwLDf8fICP/JkQ1/zSV + Xf84p2f/N6ho/zenaP84qGr/OKls/zmpbf85qW3/Oapu/zmrcP85rXL/Oa5z/zmtc/85rnT/Oa92/zmx + eP85sXr/ObF6/zmxe/85s33/ObV+/zm1f/85tn//ObWA/zm2gf85t4P/ObiD/zm5hP85uoX/ObmG/zm6 + h/85uof/ObuH/zm6iP85uon/ObuJ/zm7if85u4r/OLuK/zi7iv84u4r/ObyK/zq+i/85wIz/OMGM/zO8 + iv8ttIT/K6h8/y6bc/83jmn/R4hg/12GWP93i1P/lZlR/7ClT//Dq0n/yqdC/7+bPP+gkD7/doZG/0yE + VP8zj2T/NKdz/zevdv84rnP/Oa5y/zitcv85rHD/Oapu/zmobf84qm3/OKpr/zepaf83pmj/OKZn/zim + Z/84pWX/OKRj/ziiYf84omH/OKJh/zehX/83n13/OJ9c/zeaWf80kFT/MYJP/y91Sv8raET/MmI9/0Bi + NP9RZiz/Y2ol/3VyH/+Gehn/loEU/6aKEf+zkA7/vJQL/8OXB//MnAT/2acD/+WzA//tugH/8b0A//G8 + AP/xvAD/+sMA/+WyAv+TdQ7/KiYg/xYXJP8NDA3/AAAA/wAAAP8AAAD/AAAA/wAAAFfFxcYAz87PAAAA + AIAAAAD/AAAA/wAAAP8AAAD/Eg8T/yAjJf8oTjr/Npxh/zipaf82p2n/OKhp/zepa/85qmz/Oahs/zmp + bf85q2//Oaxy/zmtc/85rXP/Oa10/zmudf85sHj/ObF5/zmxev85snv/ObN9/zm1f/85tYD/ObWA/zm2 + gP85t4L/ObiD/zm5hf85uYX/ObmF/zm6hv85u4f/ObuJ/zm8if85vIn/ObyK/zm7i/85vIv/ObyL/zm9 + jP85vYz/Ob2M/zm9jP85vIv/OLuK/zm7iv85vIn/OLyJ/zm9iv85wIv/N8GL/zO8iP8tsYP/KqN6/yuV + b/8zjmf/QIhg/1WEVv9yhkv/nYxA/8+nPP/Qpjj/oIw3/19yQP86hVv/NKFv/zewdv84rnP/OK1y/zms + cf85q2//Oalt/zmqbf85qW3/OKlr/zanaf84p2j/OKdo/zimZf84pWT/OKNi/zijYv84oWD/OKBf/zef + Xf84oFv/OKFb/zikXf85p1//OaZe/zaiXf8wmFv/KoxY/yZ/VP8ldU7/J2xJ/y1mQ/81ZT3/QGc3/0xp + Mf9XaSv/YGck/2xlHP98ZhT/lXYP/72VCP/ltAH/8r0A//K9AP/5wgD/67cB/6aDC/8yKx7/Fxgj/xIR + FP8AAAD/AAAA/wAAAP8AAAD/AAAAgLKxswDDw8QAAAAAqAAAAP8AAAD/AAAA/wAAAP8WEhf/ICcm/ylY + P/82oWT/OKlp/zeoaf84qGn/OKlr/zmpbP85qW3/Oapu/zmscP85rHL/Oa1z/zmtc/85rnX/Oa92/zmw + eP85sXn/ObF7/zmzfP85tH7/ObV//zm1gP85toH/ObaB/zm3g/85uIT/ObmF/zm5hv85uYb/ObqI/zm7 + if85u4r/ObyK/zm8iv85vYv/Ob2M/zm9jP85vYz/Ob2N/zm9jf85vY3/Ob2N/zm9jP85vYz/ObyL/zm8 + i/84vIr/ObuK/zi7if84u4n/OLuI/zi8iP83von/Nb+K/zG7iP8rsIH/K550/zOBX/9LXkD/oog7/+G9 + QP/tyz7/xpox/1phN/8zg1z/NK93/ziudP84rXL/Oa1x/zmrcP85qm7/Oapt/zmpbf84qWz/N6hq/zin + aP83p2j/OKZm/zilZP84o2L/OKNi/ziiYf84oV//N6Be/zigXP84n1v/OKBc/zifW/84oFz/N6Bc/zeh + W/83olz/N6Nd/zajXf81ol3/NZ9d/zOdXP8xmVv/LpZa/y6RWP8rhVX/I2dI/xguMP8jISL/bVUT/82g + Bf/0vwD/9L4A//jBAP/uugH/t48J/zoyHv8ZGSP/FhYZ/wAAAP8AAAD/AAAA/wAAAP8AAACooJ+hALS0 + tgAAAADLAAAA/wAAAP8AAAD/AAAA/xoUGv8hKyn/K2JF/zalZ/84qmn/N6ho/zipav84qWz/Oalt/zmp + bf85q2//Oa1x/zmtcv85rXL/Oa10/zmvdv85sHj/ObF4/zmxev85snz/ObR+/zm1f/85tX//ObWA/zm3 + gv85t4P/ObiE/zm5hP85uYX/ObqH/zm6iP85u4n/ObyK/zm8i/85vYv/Ob2L/zm+jP85vY3/Ob2N/zm9 + jv85vo//Ob6P/zm+j/85vo//Ob6O/zm9jf85vYz/Ob2M/zm8i/85vYv/OL6M/zjBjv80wI3/LbmJ/yut + gP8zonX/S5xt/2qbYv+Km1f/oJZM/6aLQP+vjTv/rJM8/56SPf+Bgj7/SHZL/zSVZ/82sXj/N691/zmu + c/85rXL/Oaxx/zmrb/85qW3/Oaht/ziqbf83qWv/OKdo/zenaP84pmf/OKVl/zikY/84o2P/OKJh/zih + YP84oF//OJ9c/zieW/84n1v/N59b/zefW/84n1v/OKBc/zihXP84olz/OKJd/ziiXf82oVz/NqFd/zaj + X/82p2D/L5lc/yd9Uf8tXz//VVUi/4ptEf/AlAf/57UB//K9AP/xvQD/9sAA//K8AP/Fmgf/Qzkd/xsb + I/8YGB7/AAAA/wAAAP8AAAD/AAAA/wAAAMuOjY8AqqqrAAAAAOcAAAD/AAAA/wAAAP8AAAD/GxUd/yIv + K/8takn/N6do/zirav84p2n/Oapr/zmqbf85qG3/Oapu/zmscP85rXL/Oa5z/zmtdP85rnX/ObB3/zmx + ef85snr/ObN8/zm0fv85tX//ObV//zm1gP85toH/ObiD/zm4hP85uYX/ObqF/zm7h/85u4n/ObuK/zm8 + i/85vYz/ObyM/zm+jP85vY3/Ob6O/zm+j/85vo//Ob6Q/znAkf85wJH/Ob+R/zm/kf85vpD/Ob6P/zi+ + jv85vY3/OcCP/zfDkP8zvIz/LquB/zehd/9OnnD/ap1p/4CaYP+Pllj/lpJR/5SOTP+LjUz/fpBQ/2qP + VP9Yjln/TJBf/0OVZP86n2z/N6t1/zixd/84rnX/Oa50/zmsc/85rXL/Oaxx/zmqbv85qW3/Oalt/zip + bP84qGr/N6Zn/zelZ/84pmb/OKVk/zikY/84o2L/OKJh/zihYP84oF3/OJ9c/zifWv84oFz/OKBc/zig + XP84n1z/N59b/zefW/84n1v/OJ9b/zefW/84oVz/OKBc/zCEUP8oYEH/Q1ku/4R6G/+9mgv/4rAD//G8 + AP/zvgD/8bwA//C8AP/1vwD/874A/86hBf9LQBv/HR0i/xkZIP8AAAD/AAAA/wAAAP8AAAD/AAAA54B/ + gQCenp8AAAAA/AAAAP8AAAD/AAAA/wAAAP8dFR7/IzMs/y5xTP82qGf/OKtr/zioav85qmz/Oapt/zmp + bf85q2//Oaxx/zmsc/85rnL/Oa51/zmvdv85sXj/ObF5/zmxe/85tH3/ObV//zm1f/85tX//ObaB/zm3 + gv85uYT/ObmF/zm5hv85uof/ObyJ/zm8iv85vIv/Ob2M/zm+jf85vY3/Ob6N/zm+j/85v5D/OcCR/znA + kf85wJH/OcGS/znBkv85wJL/OcCS/zm/kf84wJH/OL+Q/zm/kP82uYv/N62C/z+fdv9Wlmv/dJNi/5CO + WP+ijFL/ppBR/5mTU/9/j1X/XolZ/0GHXv8wjGj/KJdw/yeieP8prn//LrSB/zW5gf84t37/ObN5/zmv + dv84rXX/Oaxz/zmuc/85rXL/Oatv/zmqbv85qG7/Oapt/zipa/84p2j/NqZn/zimZ/84pWX/OKVi/zik + Yf84o2L/OKBf/zihXv84oFv/OJ5a/zigXP84oFz/OKBc/zigXP84oFz/OKBc/zigXP83nlr/OKJc/zee + W/8yhlD/H0c4/zIzI/98XA//26YA//rDAP/8xQD/9sEA//K9AP/yvQD/8bsA//S+AP/0vwD/1KYE/1NG + Gf8fHiH/GRki/wAAAP8AAAD/AAAA/wAAAP8AAAD8eXh7AJGRkgAAAAD/AAAA/wAAAP8AAAD/AAAA/x4X + H/8jNi7/L3ZP/zepaP84q2v/OKhq/zmpbP85qm3/Oapu/zmscP85rXL/Oa1z/zmuc/85rnX/Oa93/zmx + ef85sXr/ObJ8/zm0fv85tX//ObV//zm1gP85t4L/ObiE/zm5hf85uYb/ObqI/zm7if85vIr/ObyL/zm8 + jP85vY3/Ob6O/zm/kP85v5D/OcCR/znBkv85wZL/OcGT/znBk/85wZT/OcKU/znBlP85wZT/OcCT/zjA + kv84wZP/OcKU/zClf/83fGH/X25P/6iXXP/Oq2L/upVV/454SP9rc0v/UX5X/0OHYP89j2j/O5ht/zqe + cf85onP/OKV1/zapd/81q3n/NK56/zeye/84snn/OK93/ziudv85rXT/Oa1z/zmtcv85rHD/Oapu/zmp + bf85qW3/OKlr/zioaf83pmf/OKZn/zilZf84pWP/OKRi/zijYv84oWD/OKFe/zigXP84n1v/OKBb/zig + XP84oFz/OKBc/zigXP83n1v/OKBc/zefW/84pF3/NJBU/yZROf8WGiT/YkoT/8WaB//6xQD/874A//G8 + AP/yvQD/8r0A//K9AP/xvAD/874A//S/AP/ZqgT/WksY/yIgIv8ZGiP/AAAA/wAAAP8AAAD/AAAA/wAA + AP90c3YAAAAAAQAAAP8AAAD/AAAA/wAAAP8AAAD/Hhcf/yQ3L/8veVD/N6lp/zera/83qWv/Oalt/zmq + bv85qm7/Oaxw/zmtcv85rXL/Oa5z/zmudf85sHf/ObJ5/zmyev85snz/ObR+/zm2gP85toD/ObaA/zm3 + gv85uIT/ObmF/zm6hv85uoj/ObuJ/zm8i/85vYz/Ob2M/zm9jv85vo//Ob+Q/zm/kf85wJL/OcGT/znC + k/85wpP/OcGT/znClP85wpT/OcKU/znClP85wZP/N8CS/znBk/85w5X/MaV//zaDZf9Pelr/dpRk/3yS + Yf9uglf/Z3pT/3CGWP91jFr/dYxZ/3KLWP9uiVb/ZoFR/195TP9Wc0r/TnBK/0ZxTP8+eVP/N4Ze/zSa + a/84rnf/N692/zmudP85rXL/Oa1y/zmscP85qm3/Oalt/zmpbf84qWv/OKhp/zenaP84pmf/OKRm/zik + Y/84pGL/OKNi/zihYP84oV//OKBc/zifW/84oFv/OKBc/zigXP84oFz/OKBc/zefW/84n1v/N6Nd/zif + W/8tdUv/GCYq/zApHv+beA3/7rkB//XAAP/yvQD/8LsA//G8AP/yvQD/8r0A//G8AP/zvQD/9L8A/9yt + A/9eTRj/IiAi/xkZI/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAEAAAADAAAA/wAAAP8AAAD/AAAA/wAA + AP8dFx7/JDow/zCAVP84r2z/Oa5s/zipa/84qG3/OKlt/ziqb/85rHH/Oa5z/zmuc/85rXX/Oa93/zmw + eP85snr/ObJ6/zmzff85tH7/ObaA/zm2gP85t4L/ObiE/zm5hf85uob/ObqH/zm6if85u4r/ObyM/zm9 + jf85vY7/Ob6P/zm/kP85wJL/OcGS/znAkv85wZP/OcKU/znClf85wpX/OcOW/znDlv85w5b/OcOW/znC + lf84wpT/OMGT/znBk/82uY3/N6+G/zurgf9CroH/QKh9/z2kef9ApHj/Sql6/0+ref9Sr3r/Ua95/0um + c/9Elmj/Q4he/0V3Uv9UaUT/eWw4/6WNPf99ez7/RHdP/zKhcP84sHj/ObB2/zitc/85rHL/Oa1x/zmr + b/85qm3/Oaht/zeoa/83qGr/NqZo/zilZ/84pWb/OKVk/zijYv84omH/OKFg/zigXv84n1z/OJ5c/zig + Wv84oFz/OKBc/zigXP83n1v/N6Bb/zikXf85p17/LoNR/yBHOf8oIyD/gGQR/9SlBP/5wgD/8r0A//G8 + AP/xvAD/8r0A//K9AP/yvQD/8bwA//K+AP/1vwD/3a4D/19OF/8jISL/GBoj/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAAwAAAAMAAAD/AAAA/wAAAP8AAAD/AAAA/x4XH/8jNi7/LnRN/zamZ/85rm3/Oa9v/zmu + cf85rnD/Oa1x/zmtcv84rXL/OK10/zmudf85r3j/ObF5/zmyef85s3v/ObR+/zm1f/85tn//ObeB/zm3 + g/85uYX/ObqF/zm7h/85u4j/ObuK/zm8i/85vYz/Ob6O/zm+j/85v5D/OcCS/znBk/85wpP/OcGT/znC + lP85w5b/OcOX/znEmP85xJj/OcSY/znEl/85xJf/OMSX/znDl/85w5b/OcOV/znImP84y5r/NMua/y/F + lv8uw5T/L8ST/zDEk/8ww5H/Lr6P/yqxhP8tpHr/O5xx/02Zav9clGH/aIhU/3l9Rv+bgTz/u5xA/4aG + Q/9Gf1T/MqNy/zexeP85sHf/OK50/zmtcf85rXL/Oaxw/zmqbv85qWz/OKls/zipa/83p2n/N6Zm/zim + Z/84pmX/OKRj/zijYv84omH/OKFf/zigXf84n1z/OJ9b/zigXP84oFz/OJ9b/zefW/83oFv/NpxZ/zCC + T/8qVDr/Pz0h/4BjEP/TqAX/9cIA//fAAP/xvAD/8LsA//G8AP/xvAD/8r0A//K9AP/xvAD/874A//W+ + AP/drgL/X08X/yMhIv8YGiP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAADAAAAAQAAAP8AAAD/AAAA/wAA + AP8AAAD/Hhog/yEqKP8oTzv/L3pR/zGQXv80nmb/OKZs/zirb/85r3L/Oa9z/zivdP85r3b/ObB2/zmw + eP84sHn/ObF6/zmzfP85tX//ObV//zm1gP85uIL/ObiE/zm5hf85uob/ObqI/zm8if85vIv/Ob2M/zm9 + jf85vo//Ob+Q/znBkv85wpT/OcKU/znClP85w5X/OcSW/znFmP85xZn/OcWZ/znGmf85xpr/OcaZ/znH + mv83xpn/N8aa/zfFmP82w5f/NsKV/zbBlP82wZP/NsCS/ze/kP83vI7/N7yN/ze6iv80q4D/NYdl/0Vv + Uf9mcUv/hn5K/5iHSf+cjEn/lZJM/4aYU/9nlVn/SJxo/zipdf84snr/OLF4/zmvdv85rnT/Oa1y/zmt + cv85q3D/Oalv/zmpbf85qm3/Oapr/zioaf82p2f/OKVn/zimZf84pGT/OKNj/zijYv84ol//OKFd/zig + W/84nlv/OKBc/zigXP83n1r/OKFc/zaeWv8zhlD/I0s4/y4uIv9rTxH/y50F/+q9Af/zwQD/9b8A//S/ + AP/zvQD/870A//K9AP/xvAD/8bwA//C7AP/yvQD/9b8A/9ytA/9eThj/IyEi/xkaI/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAAGRkJIAAAAA/wAAAP8AAAD/AAAA/wAAAP8eHSH/IyIl/ykpLP8nLi3/Ijgw/yNN + Ov8qakr/MoZb/zWdaf84rHL/ObN3/zm0eP84s3r/ObF5/zixef85snr/ObN9/zi1f/85tYD/ObaA/zm4 + g/85uIT/ObmF/zm6h/85u4n/ObyJ/zm8i/85vYz/Ob6N/zm/j/85v5H/OcGS/znClP85wpT/OcKV/znD + l/85xJj/OcWZ/znFmf85xpr/OMea/zjHm/84x5z/OMqd/zfLnv80xpv/ML2T/y+wiv8wp4L/MqB8/zab + d/87mXX/Qpdy/0eSbf9GjGj/QYBg/0NpT/9qZkP/jnNE/5WBTP97f07/YYNU/02OYP8/nW3/N6h3/zSv + ff81s37/OLN8/ziyef84sXj/Oa92/zmudP85rXL/Oa1y/zmscf85qm//Oalt/zmqbf85qmv/OKhp/zen + Z/84pmf/OKZm/zilZP84pGP/OKNi/ziiYP84oV7/OKBc/zifW/84oFz/OKBc/zefW/83oVv/N5pZ/zB5 + S/8nUzr/Lz4r/0c/Hf9mThT/k3IN/8udBf/xvAD/+sQA//nCAP/2wAD/870A//G8AP/yvQD/8bwA//O+ + AP/0vwD/26wD/1xNGP8iICL/GRoj/wAAAP8AAAD/AAAA/wAAAP8AAAD/amlsAJaWmAAAAAD8AAAA/wAA + AP8AAAD/AAAA/xoaHv8qKCz/RkJF/1VQUv9FQUT/MTQ1/yUwLf8gNS7/Ikc3/yhfRf8ueVb/M5Rm/zeo + c/85tHv/Obl+/zm3fv85tX7/OLR+/zi1gP84toH/OLeD/zi4hP84uIb/ObmH/zm7iv85u4r/Ob2L/zm+ + jf85vo//Ob+R/znAkv85wJL/OcGT/znDlv85xJf/OcWY/znFmf85xpr/Ocab/znHm/84y5//NMyh/y3E + m/8wuZL/O6mF/0iXdv9Vh2j/Yn9g/2p9Xf9ve1r/c31a/3eCW/97iF7/f41h/3eLX/9ifVj/VnZV/12A + Wf9djGH/TpVo/0Gecf86qHj/Nq9+/zSzgP8ztYH/NLWB/za1f/84s3z/OLF5/zmxef85r3b/Oa91/zms + c/85rXP/Oaxx/zmqb/85qW3/Oapt/zmqbP84p2n/N6Zn/zimZ/84pmb/OKVk/zikY/84o2L/OKJg/zih + Xv84oFz/OJ9b/zigXP84oFz/N6Bb/zefW/83nlv/NZZX/zSPVP8zgk7/MGlC/yxHMv80NyX/WEcY/4dm + Df+0hwb/1KIC/+y2AP/5wgD/+cMA//O+AP/xvAD/874A//S/AP/XqAP/WEgY/yEfIf8ZGCL/AAAA/wAA + AP8AAAD/AAAA/wAAAPx3dnkAoqKkAAAAAOcAAAD/AAAA/wAAAP8AAAD/GBcb/y0rL/9UUlP/dXJx/2tl + Z/9ZUlX/SEFF/zkzOP8tKy7/JC0r/yE3L/8jSjr/KWJJ/y99Wf80mWv/N7B6/zm7gv85vYT/Or6F/zq+ + hv86wIn/OsGJ/zm/iv85vYr/ObyK/zi8iv84vIz/Ob2O/zi+kP84v5H/OMCS/znBk/85wpT/OcSX/znF + mP85xZn/OcWa/znHnP84yJ3/OMmf/zfDm/8/uZL/UqyH/1iWdv9Uf2T/WHhd/2aAYf9sgWH/bYRi/2yH + ZP9pjGf/Z5Rr/2Wdcf9mpXb/Yad3/1Ohdf9Ionf/Qql8/zitgP8vr4L/LraG/zK7iP81vYf/OLuE/zm4 + gv85tX//OLR+/zmyfP85snr/ObF4/zmwd/85r3b/Oax0/zmsc/85rXL/Oatu/zmobP85qm3/Oapt/zio + av83p2j/OKdn/zimZ/84pmP/OKVi/zijYv84omH/OKFf/zigXf84n1v/OKBc/zigXP84oFz/N59b/zig + XP84o13/OaZe/zaiXf8wk1j/KXhP/yFeRf8nUDr/OlEv/1ZcJf9zZxr/iW8R/6OBDP/GnAf/7LgB//O+ + AP/1vwD/874A/9KkBP9RQxr/Hh0i/xgYIP8AAAD/AAAA/wAAAP8AAAD/AAAA53x7fgCvr7EAAAAAywAA + AP8AAAD/AAAA/wAAAP8XFhn/Kiks/1FPUP99e3n/gH18/3t4d/9zcHD/ZWJi/1JNT/8+ODz/LiYs/yQd + JP8gISP/ITIt/ydWQv8ugV3/M55w/zSldf80pnb/NKV2/zWpev82rn3/OLaE/zi9iv85v4z/OcGO/znB + j/85wZH/OcKT/znDlP85w5T/OcKU/zjDlf85xJj/OcSZ/znFmv85xpz/Ocie/zfKn/82zKL/NbKP/02X + eP+Dk3L/i35h/25qU/9Ycln/VpNx/0ygfP9FqoT/QK+I/zqziv81t4z/MruQ/zG/kv8ywZP/M8GS/zPB + kf80wZD/NsGO/zrAjP85vIj/ObqF/zi4hP85t4L/ObaA/zm1gP85tX//ObR+/zmye/85sXn/ObB4/zmu + dv85rXT/Oa1z/zmtcv85q2//Oalt/zmqbf85qm3/OKlr/zeoaf84pmf/OKZn/zimZP84pWP/OKNi/zii + Yf84oV//OKBd/zifW/84oFz/OKBc/zigXP84oFz/OKBc/zifW/83n1v/OKBc/zikXf85pl//OKFc/zKR + V/8ofVH/IWRI/x9DN/8nLCX/T0AZ/5l5Dv/mtAH/874A//fAAP/yvQD/yp8G/0g9HP8bGyP/Fxce/wAA + AP8AAAD/AAAA/wAAAP8AAADLg4KFALe4ugAAAACoAAAA/wAAAP8AAAD/AAAA/xQTFv8nJin/TUpL/398 + ev+Cf3z/fXp4/3x5dv96d3X/d3Rz/3BtbP9hXl//TEpM/zUyNf8iHSL/HBke/x8qKP8kRzv/JlRC/yZU + Qv8mUkH/JlVF/yljTv8vgmP/NKJ5/ze2hv84wI7/OMCO/ze/j/84wJH/OcWW/znFlv84xJb/OMSX/znF + mf85xZn/OMab/zjInf85yp//OMug/zbNov8zqIb/S4Vr/4GPcP+GiGj/a3Vb/09yW/9CiW3/N6SB/zW7 + k/82x5v/OMiZ/zfFl/84w5X/OMGT/zjAkv84vo//OL6O/zi9jP84vIv/ObuJ/zm7h/85uob/OLmE/zm4 + gv85toH/ObWA/zm1f/85tH7/ObJ7/zmxef85sHj/Oa92/zmtdP85rXP/Oa1y/zmrb/85qW3/Oapt/zmq + bf84qWv/N6hp/zimZ/84pmf/OKZk/zilY/84o2L/OKJh/zihX/84oF3/OJ9b/zigXP84oFz/OKBc/zig + XP84oFz/OKBc/zefW/84oFz/N59b/zigXP83oVv/OKVd/zeiXP8yi1P/JFQ+/zY6Jf90WhL/w5kG/+66 + AP/zvQD/+MEA//C7AP+/lgj/PzYd/xkaI/8VFRr/AAAA/wAAAP8AAAD/AAAA/wAAAKiVlZcAycnJAAAA + AIAAAAD/AAAA/wAAAP8AAAD/EA8S/yQjJ/9HRkf/gH18/4aDgP+Cf3v/gH16/316eP98eXj/end2/3Z0 + c/9xb27/ZWRj/1BMTv86NTj/Kycs/yooLP8qKy3/Kist/ygoK/8jIyf/HSAj/x0pKP8hPTb/JllI/ypx + Wf8qcFn/KWpU/ytyWv8xknL/NbCH/zjElv85y53/Ocea/zjFmf84x5v/OMqf/znOo/840qb/OM2j/zq5 + k/8/n3//Rotv/013Yf9QZlP/XGJN/3BuVf99iGf/U5Z1/zeviv83yJv/N8OV/znClP85wZP/OcCR/zm9 + jv85vY3/ObyL/zm7iv84uoj/OLqH/zi5hf84uIT/OLeC/zi2gP84tX//OLR+/zmzff84sXr/OLB5/ziw + d/85r3X/Oa1z/zmtcv85rHH/Oapv/zmpbf85qWz/Oals/zioav83p2j/OKVn/zilZ/84pWX/OKRk/zii + Yv84oWD/OKBf/zifXP84nlr/OJ9b/zifW/84n1v/OJ9b/zifW/84n1v/N59c/zefW/83n1v/N59b/zef + W/84pF3/NpdX/y1tR/8fNC//VEMZ/6uBCP/wuwD/+8QA//S/AP/4wQD/7bgA/7GLCf83MB3/GBkj/xER + Ff8AAAD/AAAA/wAAAP8AAAD/AAAAgKOjpQDW1tYAAAAAVwAAAP8AAAD/AAAA/wAAAP8LCw3/IiEl/0FA + Qv+AfXz/ioeF/4eEgf+EgX7/gX58/398e/9+e3n/fXp4/3x5eP95d3X/cG1t/2NgX/9XVFX/VU5Q/1NM + Tv9SS07/T0dL/0Y/Q/84MTb/LSYr/yUhJv8jJyn/JjQy/yYzMv8jLSz/Hy0r/yI9Nv8mV0n/LHpi/zOl + gv85yp3/OtCi/znSo/850aT/OMyh/zW9lv8woIH/WqOB/4Cog/9sjXD/QXhi/z57ZP9Phmr/XpFw/2ul + ff9PrYb/Or6T/zjNnv84x5j/OcOV/zjBk/84wJL/OcCQ/znDkf85xJH/OcOQ/znDjv85wo3/OsKL/zrB + iv85v4j/Ob6G/zm9hP85u4L/ObqB/zm3fv85tnz/ObR6/zmyd/84r3X/Oa5z/zmtcv85rHH/Oaxv/zmr + bf85q23/N6lr/zaoaf83pmb/N6Zm/zemZP83pWP/N6Nh/zijYf84omD/OKFd/zigW/84oVz/OKFc/zih + XP83olz/OKJc/ziiXP84oVz/OKJc/zijXf84o13/OKNd/zimXv84n1v/M41U/y1xSP9Dazj/a3Il/52F + Ef/RowL/7bcA//zCAP/oswD/n30J/y4qH/8XGCP/DQwO/wAAAP8AAAD/AAAA/wAAAP8AAABXuLi5AOPj + 5AAAAAAwAAAA/wAAAP8AAAD/AAAA/wYFBv8fHyL/OTg7/357ev+Oi4n/jImH/4iFg/+FgoD/hIF//4J/ + fP9/fHr/fXp4/315eP98eXj/e3h2/3h2dP92c3H/c3Fv/3Jvbv9vbWv/aGZl/11bW/9PTU7/Qz9C/zs1 + Of89NDn/PTM4/zYtM/8sIyn/JRsh/yAaIP8hLi3/KGFS/zKkg/80to//M7ON/zGlhP8ukXb/KXRg/yNY + TP9UcFv/kJFy/5SMb/9XjHD/PKiF/zq/l/87wZf/PbuS/zirh/81rIf/NruQ/zjElv85xZb/OMaW/zjF + lf84wZH/N7yM/ze3if82tIb/NrSE/zaygv83soD/N7B//zavff83r33/N698/zeve/82r3r/OK95/zix + ef85snn/OLJ4/ziydv85snX/ObB0/ziucf85rG//Oa1u/zmub/85rW3/OKxr/zmraf85q2n/Oatn/zmq + Zv85p2T/OKdj/zilYv84pF//OKJc/ziiXf84ol3/OKJd/zejXf84ol3/OKJd/zigW/83oFv/N59b/zWd + Wv80m1n/MZpX/zGZV/8wmlf/L5ZW/yWAT/8gXUD/N0ko/35lEf/RpBP//Mka/+K2HP+LcRr/JyUh/xYX + Iv8GBgb/AAAA/wAAAP8AAAD/AAAA/wAAADDOzs8A3NvcAAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/xwc + IP8yMDT/d3V1/5KPjP+Sj43/jYqI/4qHhf+IhYP/hoOB/4SBf/+Cf33/gX57/357ef98eXj/end2/3h1 + dP91c3H/c3Fv/3Jvbv9wbWz/b21r/2xqaf9pZmX/ZGJh/2NhYf9hXl7/WllZ/1BPT/9DQkP/Mi0x/yMa + If8eJyj/JlNI/ylsWf8oYlP/J0xE/yY1NP8hHyP/HB0i/yE6Nv9GY1P/gYNq/26dff9EwZj/L9Om/zPB + mP8tlHf/J2JS/yhcTf8tfWT/Mp57/zWshf82tYv/NrWK/zSmf/8wkG//LoFl/y16X/8teF3/LXZb/yx1 + Wf8sc1f/LHNX/y12Wf8telr/LXxb/y5/XP8whV//MYxj/zOTZ/80m2n/NaBs/zWjbP81oGv/NJhl/zOT + Yf8zmWP/NJtk/zScZP80nGP/NJ1i/zWeYf81nmD/NJxf/zSZXf8zl1z/M5Ra/zKSV/8zkFT/Mo1T/zKM + U/8xjFL/MotT/zKJUv8xiFL/MYZQ/zCET/8vgU7/Ln1L/y15Sv8sd0n/LHRH/yxwRf8ubkb/L3RJ/zFs + Sv81VkX/Tkk8/7qeT//412P/3MBe/3NlPP8jISL/Fxgf/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEODg + 4ACIh4oAe3p9AAAAAP8AAAD/AAAA/wAAAP8AAAD/Ghgd/yspLf9ta2z/k5CO/5iVk/+Sj43/kI2L/46L + if+MiYf/iYaE/4eEgv+FgoD/g4B+/4F+e/9/fHn/fXp4/3t4dv94dXT/dnNy/3Nwb/9xb23/b21r/25r + av9saWj/aWdm/2ZkY/9kYmH/YV9f/15cW/9TUlL/Ojc5/yUjJ/8jIib/KSot/zIyNP8/PD7/RkJF/zs4 + O/8lIyn/ICAk/z89N/95cFr/c3xk/0KHbf8khmz/LWxa/y0/PP8kJCf/Hh0h/x0lJ/8gNjL/I0U9/yVU + Rv8lVUf/JEQ7/yMyL/8iKSr/Iycp/yMmJ/8iJij/IiYo/yElJv8gJSb/ICUn/yAmJ/8fJyb/Hygn/yAr + Kf8hMS3/Izgx/yVANf8nSDr/J08+/yhMPP8kQDX/Hjkw/xs9Mf8bPzL/HEE0/x1ENP8dRjX/Hkc1/x5H + Nf8dRjT/HEMy/xxBMf8bPi//Gzwt/xs5LP8aNir/GjUq/xkzKf8ZMyn/GjIo/xovKP8eMSr/IjMs/yc2 + Lv8wPDP/Pkc7/05TRf9eYU7/bWxX/3dzXf+CfWT/mZJz/7aqhv/LuZL/69Si//3nrv/SvpL/W1NI/x8f + Iv8XFxz/AAAA/wAAAP8AAAD/AAAA/wAAAP/y8vIA7u7uAJubnQCgoKIAAAAAxQAAAP8AAAD/AAAA/wAA + AP8TExb/JSQo/2BeX/+TkI7/n5ya/5aTkf+UkY//ko+N/5CNi/+Oi4n/jImH/4qHhf+IhYP/hYKA/4OA + fv+Bfnz/f3x6/357eP97eHb/eHV0/3Zzcv90cXD/cm9u/3BtbP9ta2r/a2hn/2lnZv9nZWT/ZmNj/2Jg + X/9VU1P/SUZH/0U/Qv9IQUT/T0hK/1RPUP9XU1P/VlNS/1xWT/9oXlL/c2dX/3BnV/9GQjv/LDk2/y9D + QP9CS0n/S0ZH/0M9P/85Mjb/MCsv/ysoK/8oKCr/LC8x/zM3OP87Ojv/Pjk7/z85O/9AOTv/QDk8/z85 + Pf9AOj3/Pjk8/z04PP8+ODz/Pzo8/z44Ov85Mzf/My0x/ygkKP8hHyP/IB8i/yEhJP8eIST/GBsg/xkZ + H/8rKCn/SEM7/0dEPP9EQTv/QUA4/z8+N/9APzf/QkE5/0VDOv9HRTz/S0g9/09KQP9TTUH/Vk5D/1hR + Rf9ZU0b/XVVI/2FZSv9nX07/cGdV/3xxW/+Ie2L/loZq/6aTdP+0oX7/wa6H/8u3jv/Sv5P/18KW/9vG + mf/lz5//8tum//ngq//947D/++Ox/8Cui/9CPjv/Hh0h/xQTF/8AAAD/AAAA/wAAAP8AAAD/AAAAxZST + lQDy8vIAzs7PANXV1gAAAAB8AAAA/wAAAP8AAAD/AAAA/wwMDv8hHyT/TkxO/5COjP+koZ//m5iW/5mW + lP+XlJL/lZKQ/5OQjv+Rjoz/j4yK/42KiP+Kh4X/iIWD/4aDgf+EgX7/g4B8/4B9e/99enn/e3h3/3l2 + df92c3L/dHFw/3Jwbv9wbWz/bmtq/2tpaP9pZmb/Z2Vk/2VjYv9iYGD/YF5d/15dXP9eXFv/W1pZ/2Ff + Wv95cWX/e3Rl/3pzZf9ybWH/XVlT/zo2OP84LzT/Rz1B/1ZOUP9cWVj/WVhX/1NSUf9NSkv/R0NE/0M9 + QP9GP0L/TUZI/1RPT/9WU1P/V1VU/1hWVP9XVlT/WFZV/1hXVv9ZV1f/WFdW/1VTU/9QTk3/SEZG/z89 + P/82Mzb/JiQp/xsZH/8WExr/FBAZ/xMPGf8bFh7/RT03/4BzXP+pmXb/qpl2/6eUc/+kkXD/oo5v/6KO + b/+kkHD/p5Ry/6qXdf+tmnf/sZ15/7ShfP+4pH3/uqeA/7upgf++rIT/wrCG/8i1if/QvY//2MWU/+LM + mf/s057/9tyk//ziqP//56z//+mu///qrv//6a7//+qu///nrP/95ar//eKo//7lqv/x2KH/p5Z0/y4r + K/8dGyD/DQ0P/wAAAP8AAAD/AAAA/wAAAP8AAAB8bm1wAPHx8QDs7OwA1dXWAAAAADcAAAD/AAAA/wAA + AP8AAAD/AwME/x4cIf87Oj3/iIaF/6ekov+hnpz/npuZ/52amP+bmJb/mJWT/5aTkf+UkY//kY6M/5CN + i/+Oi4n/i4iH/4mGhP+HhIL/hYKA/4OAfv+Bfnv/f3x5/3x5d/96d3X/d3Rz/3Vycf9zcG//cW5t/25s + a/9samn/amhn/2lnZv9nZWP/Y2Fg/15cXP9aWFj/ZmJa/4yBbP98dWb/ZmJc/1hXVv9TUlL/U1JR/1lW + Vv9dWlr/XFpZ/1pZV/9bWlj/XVtZ/11bWv9dW1r/XVta/11bWv9eXFr/XVtZ/1xaWf9bWVj/XFpZ/1xa + Wf9dW1r/XVta/1xaWf9WVFP/SUhI/zw6PP8vLjH/JiYq/yEgJv8dHSL/HR0h/yEgI/8nJSf/Mi4u/1VO + Qv+hkW//59Ob//7rq///6qr//+ip///nqP//56n//+ep///nqP//6Kn//+mq///pqv//6an//+mq///q + qv//6qr//+qq///qq///6qr//+qq//7pqv/+6Kn//uap//7kp//94qX/++Gk//rfo//53qL/+N6i//jd + of/43qL/+N2h//fcof/43aL//uao/97Klf+Ie2D/Hx4i/xsbIf8EBAT/AAAA/wAAAP8AAAD/AAAA/wAA + ADeXl5gAAAAAAOzs7ABwb3EAAAAACgAAAP8AAAD/AAAA/wAAAP8AAAD/HRwf/ywrLv97eXj/pqKg/6il + o/+joJ7/oZ6c/5+cmv+cmZf/mpeV/5iVk/+VkpD/lJGP/5KPjf+QjYv/jYqI/4uIhv+JhoT/h4SC/4WC + f/+DgH3/gH17/357ef99enf/end2/3h1dP91cnH/c3Bv/3Fubf9vbGv/bWpp/2toZ/9oZWT/ZmNi/2Be + XP9hXVr/d3Bj/4d+bP+QhnL/h35s/2lkXP9bWVf/WVdX/1tZWP9bWVj/WlhX/1tZWP9bWVj/W1lY/1tZ + WP9bWVj/W1lY/1tZWP9bWVj/W1lY/1pYV/9bWVj/XFpZ/1xaWv9bWVj/Tk1N/zg3Of8iICX/GRge/xUU + G/8UFBv/GRkf/ywqKv9MRjz/bWNO/41/Yf+unHT/1r+K//HZm//74qH/+t6f//nenv/53Z//+t6f//rf + n//63p//+d6f//rdn//63p//+d6f//nen//43p7/+d2e//nenv/53p//+d6e//nenv/53p7/+d6e//nd + nv/53Z7/+d2e//ndnv/53Z3/+d2e//ndnv/43Z7/+N2e//jdn//43J7/+Nye//ndn//+5qT/x7WE/2de + TP8XGB7/Gxof/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAACry8vQAAAAAA7OzsAIeGiACPjpEAAAAA1gAA + AP8AAAD/AAAA/wAAAP8UFBb/Hx8i/2hmZv+gnJv/sK2r/6ilo/+loqD/o6Ce/6GenP+fnJr/nZqY/5qX + lf+ZlpT/l5SS/5WSkP+TkI7/kI2L/46Lif+LiIb/ioeF/4iFg/+FgoD/g4B+/4J/fP9/fHr/fnt4/3t4 + dv95dnT/dnNy/3RxcP9yb27/cG1s/25rav9nZGL/bGdh/3x0Z/+Hf3D/k4l1/56Sef+UiXP/b2hf/1tY + V/9YVlb/WlhX/1pYV/9aWFf/WlhX/1pYV/9aWFf/WlhX/1pYV/9aWFf/WlhX/1pYV/9cWlj/XVxa/1xa + Wf9WVFT/S0pL/z48Pv8rKy//Ghsh/xUVHP8nJSb/Qz42/2BXRf99cVX/p5Zt/8i0gf/bx4z/5dCT/+7X + l//53Zv/+96c//ndm//425r/+Nua//jbmv/425r/+Nua//jbmv/425r/+Nua//jbmv/425r/+Nua//fb + mv/425r/+Nua//jbmv/425r/+NuZ//jbmv/425r/+Nua//jbmv/32pn/+Nua//rdmv/53Jr/99qZ//jb + mv/425r/+Nua//famf/325r/+dyb//7hnv+tm3H/RkA4/xgYHv8UFBb/AAAA/wAAAP8AAAD/AAAA/wAA + ANbp6eoA3t7fAAAAAAAAAAAAtbS2AL+9wAAAAAB2AAAA/wAAAP8AAAD/AAAA/wkJCv8aGR3/UE5R/5OQ + kP+3tLL/raqo/6qnpf+opaP/paKg/6Ognv+in53/oJ2b/56bmf+cmZf/mZaU/5iVk/+VkpD/k5CO/5CN + i/+Oi4r/jImI/4qHhf+IhYP/h4SB/4SBfv+DgHz/gH17/357eP98eXb/eXZ1/3d0c/91cXH/c3Bv/2to + Z/94cmn/jYNx/4J7b/9+d23/fnds/3lzaP9mY17/XVta/1pYWP9bWVj/WlhX/1pYV/9aWFj/W1lY/1tZ + WP9bWVj/WlhX/1pYV/9bWVj/XFpZ/1hWVf9PTk3/RURE/zo4Ov8sKy//Ghsi/xkYH/8zLyz/ZlxI/5CA + X/+vnXH/xbJ+/9jCh//v1ZP//eCa///knf/+45z//eGb//vdmP/42pb/99mW//falv/32pb/99qW//fa + lv/32pb/99qW//falv/32pb/99qW//falv/32pb/+NqW//falv/32pb/99qW//falv/32pb/99qW//fa + lv/42pb/99qW//bZlv/32Zb/9tmW//jblv/425f/99qW//fZlv/42pb/9tmV//jal//73Jj/8NOS/41+ + Xf8rKCn/Gxog/wkJCv8AAAD/AAAA/wAAAP8AAAD/AAAAdv7+/wD19fYAAAAAAAAAAADc29wA6OfoAAAA + ACUAAAD/AAAA/wAAAP8AAAD/AAAA/xoZHf84Njr/gX5//7m2tP+0sa//sK2r/62qqP+qp6X/qKWj/6ek + ov+loqD/o6Ce/6GenP+em5n/nJmX/5qXlf+YlZP/lZKQ/5OQjv+Rjoz/j4yK/42KiP+LiIb/iYaD/4eE + gf+EgX//gn98/4F+ev9+e3n/fHl4/3p2df93dHT/c3Bv/3x3cf+IgHT/dG9q/2hlZP9iYGL/YWBg/2Fg + YP9iYF//YF1d/11bWv9bWVn/WlhX/1tZV/9aWFf/WlhX/1pYV/9aWFf/W1lY/1lXVv9SUE//Q0FD/zEw + M/8iIif/Ghog/xoZHv8hHyL/RD42/4V4WP/OuYD/8tWS//7hmv//5Zv//+Sa//3fl//62pT/99iT//fY + kv/32JP/99mT//fZk//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//jZ + k//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//fZk//42ZP/99mT//TWkv/awIT/58uL//ja + lP/42pT/99iT//fZk//22JL/+duU//vel//SuoH/amBK/xoZH/8dHCL/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAAl5eXlAP7+/gAAAAAAAAAAAPT09ADz8/QAvb2+AAAAAPcAAAD/AAAA/wAAAP8AAAD/EhET0SMi + Jv9pZmj/sK2t/7q3tf+2s7H/s7Cu/7Ctq/+uq6n/rKmn/6mmpP+npKL/paKg/6Shn/+hnpz/n5ya/52a + mP+al5X/mZaU/5eUkv+UkY//ko+N/5CNi/+Nioj/i4iG/4mGhP+HhIL/hYKA/4OAfv+Cf3z/f3x5/316 + eP97eHb/eHV0/3Zzcf90cXD/cW9t/29sa/9tamn/amhn/2hmZf9mY2P/Y2Bg/19dXf9eXFv/XFpY/1tZ + V/9aWFf/W1lY/1xaWf9aWFf/TUtM/zQzNf8hICX/GBge/xcXHf8gICP/PDcx/25iSv+wnG3/6M+L//rg + lf/73JP/+NmQ//fYkP/42ZD/+NmQ//jYkP/42JD/99iQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jY + kP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jY + kP/42JD/99eQ//jYkP/62pD/8dSM/6GOZP+6o3H/7dCL//rbkf/32ZD/99eP//fYj//625H/+d2S/6mX + av9JQjj/ExQc/xYVGP8AAAD/AAAA/wAAAP8AAAD/AAAA97CvsQCqqasA/v7+AAAAAAAAAAAA9/f3AJua + nACWlZcAAAAAhgAAAP8AAAD/AAAA/wAAAP8AAADCGRgc/k5NT/+amJn/wL69/7u5uP+3tLP/tLGx/7Kv + rv+xrqz/r6yq/6ypp/+ppqT/qKWj/6WioP+joJ7/oZ6c/5+cmv+dmpj/m5iW/5iVk/+Wk5H/lJGP/5GO + jP+QjYv/jouJ/4uIh/+JhoX/h4SC/4aDgP+DgH3/gX58/398ev99enj/end1/3h1dP92c3H/dHFw/3Fv + bf9ubGv/bWpp/2toZ/9oZmT/ZWNi/2NhYP9gXl3/Xlxb/11bWv9dW1r/WFZW/0ZERf8sKy//Fhcf/xcX + Hf8zMSv/XlVB/419WP/AqHD/38aC//HVi//62o3/+NmN//jXjP/414z/99eM//fXjP/314z/99eM//jX + jP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jX + jP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/31oz/+NeM//zbjv/y04n/eWxO/3xu + UP/ErXT/++CQ//fZjP/21ov/+NeM//vbjf/v0Yj/fG5R/y0qKv8WFx7/CAgJ/wAAAP8AAAD/AAAA/wAA + AP8AAACG39/gANPT1AD+/v4AAAAAAAAAAAD29vYAq6qsALa2twAAAAAlAAAA/wAAAP8AAAD/AAAA/wAA + AP8UExfENTQ3/3l4ef/Bv77/wb69/7u5uP+5t7b/t7W0/7azsv+0sLD/sq+t/6+sqv+uq6j/q6im/6il + o/+mo6H/o6Ce/6Kfnf+gnZv/npuZ/5yZl/+al5X/l5SS/5WSkP+TkI7/kY6M/4+Miv+Nioj/i4iF/4iF + g/+Gg4H/hIF//4J/fP+AfXr/fnt4/3t4dv95dnX/d3Rz/3RxcP9yb27/cG1s/25rav9raWj/aWdm/2Zk + Y/9mZGT/ZmRk/11bWv8/P0D/ISEp/xoaIf85NC3/cmVI/6aTYf/Js3T/4Md///bWh//93Yv/+9yK//nY + iP/21of/9taH//fXiP/314j/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fX + iP/314j/99eI//fXiP/314j/99aI//fWiP/31oj/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fX + iP/314j/99eI//bWh//314j//NqK//HQhf84MST/RD40/4h5VP/y1Yf/+NmJ//fWiP/62or/99iJ/8+0 + df9TSjv/Gxsh/xoZH/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAACWamZwA4+PkAAAAAAAAAAAAAAAAAAAA + AADg4OAA6urpAM7OzgAAAADiAAAA/wAAAP8AAAD/AAAA/wcHCbEhICX/VlVW/7Oxsf/Fw8L/w8C//767 + uv+8urn/uri3/7i1tP+2s7L/tLGw/7Kvrf+wrav/raqo/6uopv+opaP/p6Si/6WioP+joJ7/oZ6c/5+c + mv+cmZf/mpeV/5iVk/+VkpD/k5CO/5GOjP+QjYv/jYqI/4uIhv+JhoT/h4SB/4WCf/+DgH3/gH17/357 + ef98eXf/eXZ1/3d0c/91cnH/c3Bv/3Fubf9wbGv/bmtq/2dlZP9bWVr/SEZI/yEiKP8dHCD/SEA0/5WD + V//UunT/99iF///hi//+34n/+9qG//jWhP/21IP/9tWE//fVhP/31YT/9tWE//bVhP/21YT/9tWE//bV + hP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YP/9tWE//fWhP/41oT/+NeE//fW + hP/31oT/9tWD//bVhP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YT/9dSD//fWhP/72IX/2bx1/xQR + Df8iISP/T0c4/8mvcP/214T/+tiF//3bh//sz4H/moda/zQwK/8VFh3/EBAS/wAAAP8AAAD/AAAA/wAA + AP8AAADif36AAHp5fADf3+AAAAAAAAAAAAAAAAAAAAAAAPr6+gDx8fEA39/fAAAAAGEAAAD/AAAA/wAA + AP8AAAD/AAAA/xgXHP84Nzr/kpGR/8bEw//Mycj/w8C//8G+vf++vLv/vLq4/7q3t/+4tbX/trOz/7Sx + r/+yr63/sK2r/62qqP+rqKb/qaak/6ekov+loqD/o6Ce/6Cdm/+em5n/nJmX/5mWlP+XlJL/lZKQ/5SR + j/+Sj4z/j4yK/42KiP+LiIb/iYaE/4eEgv+EgX//g4B9/4F+e/9+e3n/fHl3/3p3df94dXT/dnNy/3Vy + cf9vbGv/VVRU/zU1Of8lJSn/JCMk/1hPOv+rlWD/89KA//zchP/62IL/99OA//bTf//303//99OA//fT + gP/304D/99OA//fTgP/204D/9tOA//fTgP/304D/99OA//fTgP/304D/99OA//fTgP/304D/9tOA//bT + gP/204D/99SA//fUgP/41YH/+NWA//nVgf/51oH/+NWA//nWgP/41YD/9tOA//bTgP/204D/9tOA//fT + gP/304D/99OA//fTgP/20n//+NWA//rWgf+ullz/LCcc/xkZH/8oJib/hHRO/+jKev/82oL//NmC/9e6 + dP9eUz7/IiEk/xgYH/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAGG/v8AAubm6AAAAAAAAAAAAAAAAAAAA + AAAAAAAA/Pz8AK6urwCwsLEAAAAACgAAAP8AAAD/AAAA/wAAAP8AAAD/EA8T/yYlKf9hYWP/vbu6/9LP + zv/Jx8b/xsPC/8TBwP/Cvr3/v728/727uv+8ubj/uba1/7e0s/+2srH/s7Cu/7GurP+vrKr/rKmn/6qn + pf+opaP/paKg/6Shn/+in53/n5ya/52amP+bmJb/mZaU/5eUkv+VkpD/k5CO/5GOjP+PjIr/jImH/4mG + hP+IhYP/hoOA/4OAff+Bfnv/gHx6/398e/9/fHr/d3Rz/1lXV/8wLzP/ExMc/x8eIv94aUf/yrBq//TV + ff/51n7/+NN9//bSe//303z/9tJ8//bTfP/203z/9tN8//bTfP/203z/9tN8//fTfP/303z/9tN8//bT + fP/203z/9tN8//fTfP/303z/99N8//bTfP/20nv/99N8//fTfP/6137//Nl///vZf//20nz/8M15/+7L + eP/xz3r/+dZ9//zYf//51n7/99N8//fTfP/20nv/9tN8//fTfP/303z/99N8//bSe//51X3/+dZ9/3po + P/88NSf/Gxsg/xcXH/9EPTH/wKVm//bYf//w03v/rJRd/zAtKf8bGiD/ExIV/gAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAACuzs7QHo6OkAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sA09PUANzc3QDX19gAAAAAkQAA + AP8AAAD/AAAA/wAAAP8BAQH/HRwg/zc3Ov+dnJv/09HQ/93c2v/U0tH/zszL/8nGxf/EwsH/wb++/8C9 + vP++u7r/vLm4/7q3tv+3tbP/trOy/7Sxr/+xrqz/r6yq/62qqP+qp6T/qKWj/6ajof+koZ//op+d/6Cd + m/+em5n/m5iW/5mWlP+XlJL/lZKQ/5OQjv+Rjoz/jouJ/4yJh/+Kh4T/iIWD/4eEgv+JhoP/gn99/2xq + aP9MSkz/LCwx/yIgJP82MSr/bV9B/8qvZ//31Xn/+9h7//fTef/20Xf/9tF4//fSeP/30nj/99J4//fS + eP/20nj/9dF3//bReP/20nj/99J5//fSeP/20nj/9tF3//XReP/20Xj/99J4//fSeP/30nj/9tF3//XR + eP/403n//dh7/+zJdP/Iq2f/oIxX/4h2Tf95akj/cWJC/3RkQP+MeEr/v6Ri/+zKdf//2Xz/99J4//XR + eP/20Xf/99J4//fSeP/30nj/9tF3//rWef/403j/QDYg/0M7Lv8bGyH/FBYe/yUjJP99bEj/4MZz/9W8 + bf9vYEL/HBwh/xoaIP8BAQH4AAAA/wAAAP8AAAD/AAAA/wAAAJHz8/QArKytAPPz9AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADw8PEAwsLEAPDw8QAAAAAbAAAA/wAAAP8AAAD/AAAA/wAAAP8TEhX/ISAk/15d + Xv+VlJT/tbS1/8HAv//My8r/0dDP/9LQz//Pzcz/yMbF/8PAv//Avbz/vry7/7u5uP+6uLf/uLa1/7az + sv+0sa//sq+t/7Guq/+yr6z/sa6r/6qnpf+npKL/pKGf/6Kfnf+fnJr/npuZ/5uYlv+ZlpT/l5SS/5WS + kP+UkY//lJGP/5OQjv+Rjoz/jYqI/3p3dv9cWlv/PDs//xwdJv8hICL/V002/56JU//IrGT/89B1//zX + d//10XT/9dB0//XQdP/20XT/9tF0//bRdP/20XT/9tF0//jTdf/61Xb//Nh3//7Yd///2Hf//th3//7Z + eP/+2Xj/+9d3//nTdf/20XT/9tB0//XQdP/10HP/+NJ1//nUdv/XuGn/mINR/2BUPP9BOzD/MCwo/yEf + IP8jISP/Ly0s/zw2MP9VSjT/loFO/9y7av/813f/+NJ1//XQc//10HT/9tF0//bQdP/10HP/+9V2//TQ + c/8LCgb/QDou/xkZIP8ZGR//HBwh/0E6L/+jkFf/mIdS/zs2Lf8aGiD/ExMW/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAG+/v8ACxsbMA7+/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzs7QCbmpwA7OztAKSj + pQAAAACoAAAA/wAAAP8AAAD/AAAA/wICAv8dHCD/JCMn/z08QP9dXGD/enp9/5mZmv+vr6//v769/8fG + xf/Lysn/y8jH/8fEw//DwcD/wL69/7+9vP+9u7r/u7i3/7m2tf+2tLP/tbKx/6+sqv+qqKX/raqp/6uo + p/+ppqT/p6Si/6Shn/+koZ//op+d/5+cmv+em5n/nZqY/5qXlf+XlJL/lZKQ/5OQjv+Bf33/UE9R/yQk + Kv8VFh3/Hx4f/1hNNv+zmln/+9d0//3Ydf/40nL/9c9x//XPcP/2z3H/9tBx//XQcf/10HD/9c9w//bQ + cf/40nH/+dNx//XQcP/pyWz/3Lpk/9KxYP/QsWD/2Llk/+PEav/wzW7/+NFx//nTcf/503L/99Fx//fT + cf/51XL/6cds/4p3Sv81MSr/DhAb/xARG/8QERj/Fxgg/z4/Rf9mZmv/Xl9m/y0vOf87Ni7/iXVG/+LB + af/403H/+NNy//bRcP/30XH/99Bx//bRcP/813P/6cdr/woJBf83Miv/FhYe/x0cIf8eHSH/ISAj/1NK + Nv9ORTP/ICAj/x0dIv8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAKjX19gAAAAAAObm5wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/e3wAAAAAA4+LjAAAAACAAAAD/AAAA/wAAAP8AAAD/AAAA/xIR + FP8cGx//GBcc/xcWHP8aGiH/Kiow/0VESP9iYmP/hoWF/7KxsP/Ny8r/0M7N/8rHxv/GxMP/xsLB/8PB + wP+/vr3/vbu6/727uv+tq6r/h4WF/3p4d/+npKP/sa6s/7Ctq/+tqqj/qqel/6qnpf+opaP/p6Si/6aj + of+mo6D/m5iV/4aDgf95dnX/fHp4/1VUVv8kJCz/ERIZ/zMuKP95aUH/yKpd//PObP/6027/99Bu//bP + bf/1z23/9c9t//bPbf/2z23/9c9t//XPbP/2z23/99Bt//bQbv/ow2j/xahc/5eBSv9rXTv/Ukgx/01D + L/9cUTL/gW9A/7GWU//buWL/885r//fVbv/61W//+9px/+3PbP+3nFf/Pjct/xgYH/8ZGR//Ghgc/xcW + Gv9PTlL/qamr+e7u7QDk5OQAoKGj8klLUvg2Mir/i3dE/+bGaP/613D/+tNu//nSbf/40m7/+dJt//3a + cf/HrFv/LygY/y4qKP8WFx//Hx4i/x4dIv8eHiL/HR0i/x4dIv8eHiL/EhEU/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAIJGRkwAAAAAA5OTlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6ejpAAAA + AACgoKIAlZSWAAAAAKIAAAD/AAAA/wAAAP8AAAD/AAAA/xwcH/8dHSD/Lyol/0E5Kf8lISL/FhUf/xUW + Iv8mJy7/T09S/5ybnP/Kycj/1NPS/83Lyf/Fw8H/xsTD/8nHxv/Jx8X/wb69/4B/gP9SUVP/W1lb/5WT + kv+0sbD/uba1/7azsv+zsK7/pqOh/52amP+XlZT/k5GP/4WEgv9iYWL/Pz1B/y4tMf8yMTX/IiIp/zQv + Kf9qWzf/r5RQ/929Yf/0zmj/+dBp//bOaP/2zWj/9c5o//XOaP/2zmj/9s5o//bOaP/1zWf/9s5o//jP + af/0y2j/tppU/3BfO/9COi3/Qz86/3h2d/+Ih4n/d3d6/1taXP9PTUr/Tkg+/15SOP+AbDv/p45H/8io + U//PsVr/qZNQ/1lPNv8gHiH/EREY/xIRFf8gHyP/X19i/7m4uv/u7u6p+/v8Ovn59zq+v8E6rK2wpXx8 + f/9MRj3/hXE+/8eoUf/sxmD/8cli//DJZP/txmT/9dFp/5J+Qf9HPSX/JyUl/xYXH/8gHyP/Hx4i/x4d + Iv8cHCL/HRwi/x4dIP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKLb29sAzc3OAAAAAADk5OUAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADl5OUAAAAAAL29vgDLy8wAAAAAGAAAAP8AAAD/AAAA/wAA + AP8AAAD/DAwN/xsbIv89Nyz/e2o9/4d1P/9hUjL/NC0j/xoZG/8YGSH/RkZM/3l4ef+sq6r/1NPR/7Gv + r/+PjY7/nJqa/8XCwf+3tLT/h4aH/4qKjP+fnqD/jo2O/7e0tP+/vLz/oJ2d/3Nxcf9wbm7/enh4/25t + bf9QT1D/QD9C/ycnL/8YGCH/DxAa/xARHP8yLSX/hnM//82wV//xymH//NRm//rQZP/1zWL/9Mxi//XM + Yv/1zGL/9cxi//XMY//1zGL/9cxi//TLYv/3zWP/+M5j/+e/Xv95aD7/JCAe/yMjLf9ub3b2o6Sqka2u + snaQkpt2q6yzdpyepXaTlJvViYiK/3x3b/95cFv/dmlJ/2dZOf9FPCn/Gxka/xUVGv8kJCj/SEhL/3p6 + e/KkpKWGzs7Odv///z36+vsA8PDvAMTFxwDe3uA7y8vPoJGRlv9uaF3/fW9L/5aBTv+Wf0n/h3I//3pl + N/+AbDr/Ni4a/zw1Jv8iISP/Ghoh/yAfI/8gHyP/Hx4j/x8eI/8fHiP/DAwN/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAGL+/wADo6OgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA8PDwAOHh4QDFxMUAAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/EhMZ/zAsJ/95aDz/z7FU/8ar + Uf+chkX/bl43/zw1Jv8ZGBv/ISEp/2JhZf+2tbT/lJOT/2RjZf9sa23/mZeX/4mIiP+enp//2NjZ/+fn + 6P+Xl5n/oqCh/5mWl/93dXb/W1pc/3JxdP9sa27/Q0JH/xQVHP8SEhn/Ih8e/0A4Kf9ORS7/SEAs/4Fu + PP/WtVX//9pi//vSX//1zF3/9Mpc//TLXP/1y1z/9Mtc//TLXP/0y1z/9Mtd//TLXP/1y1z/9cxd//rP + Xv/60F7/4btW/1xOLv8TEhj/RkZO/8XFxvLW1dUuzMvMAIuNlADp6ewA6urtAO3t8HHY2N6zwsPJs56g + qLaBgYjvYGFo/0hJUf9EREr/VlVY/25ucNOcnJ2zxMTEmMXFxQy9vb0AAAAAAPr6+wAAAAAAw8TGAOfn + 6QDx8fIv3t7hr3t9hrOKio7miIWE/397dv9kYV7/R0VG/zczNf8JCAj/IiIi/x8dIv8eHSL/IB8j/yAf + I/8gHyP/IB8j/xkYG/8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2Nr+4t7gEtbS2AAAAAADg4OAA4uLiAODg + 4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs7OwAsbCyALa1twAAAAAGAAAA/AAA + AP8AAAD/AAAA/wAAAP8CAgL/GBgg/zEsJv+jiUT/5shX//vXW//mvlT/qY5E/0tCK/8XFhn/KSgv/2Zm + aP9ubm//c3J1/3Rzdv9oZ2n/T05Q/6ampv/s7O3/7u7u/7Gxsv93dXb/VFJU/2dmaP+mpab/wMDC/3Z1 + ef8vLjP/HRwd/zcxJ/9uXjT/rJJE/8ytTf/Epkv/37pS//LKV//2zVj/9MtX//TLVv/1y1f/9MpX//XL + V//1y1f/9ctX//TKV//0y1b/9ctX//bMV//3zVj/+dBY//jPV//lvlH/ZFUs/zMxMv93d3346ejq1/n5 + +S719fUAAAAAAOTk5wDk5OcA5ubpA9LS1wT19fYE9PT1DPT09arg4OHkxMTF5Li4ueTMzM3k0tLTX9PT + 1AS+vr4EwsLCAL+/vwAAAAAAAAAAAAAAAAAAAAAA5uboAO7u7wHY2NsEe3yDBPX2+Ejx8vUA4uPoAMfI + zACpqq1yfX2CAAAAAP8eHiP/HBsg/x4dIf8gHyP/IB8j/yAfI/8gHyP/AgIC/wAAAP8AAAD/AAAA/wAA + AP8BAQH/qaqqAODg4ADv7+9w9vb2GuDg4Bbi4uIC4ODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOzs7ADs7OwA8vLyAOjo6AAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8LCw3/HB0h/0lA + LP+1mUT/981T//zSVP/vx1H/vp9E/35rNP9EOyn/Hx8m/yIiKP9vbnH/uLe4/7y8vf9xcXL/vb29//f3 + 9//5+fn/2dna/29vcf93d3n/srGy/8DAwP94eXz/MDA3/zgxIv+Cbjb/vJ5E/+C6Tf/yyVH/985T//bN + U//2zFP/9ctS//TKUv/zylH/9MpS//XLUv/1ylL/9cpS//XKUv/1ylL/9MpS//XLUv/70FL/+c5S/+vE + UP/gvUr/2bdG/8amSf94bVD/h4aJ/8bFyczX1tku2tnbB/r6+gAAAAAA5OTnAOTk5wDm5ukA0tLXAPv7 + +wD9/f4A////HO3t7ibR0dEmxMTFJtnZ2Sbd3d4O2dnaAL6+vgDCwsIAv7+/AAAAAAAAAAAAAAAAAAAA + AADm5ugA7u7vANjY2wB7fIMA////F/z+/ybt7vQm0tPYJsfHySatra+XGxob/yQjKP8bGh7/Hh0h/yAf + I/8gHyP/IB8j/w0NDv8AAAD/AAAA/wAAAP8AAAD/AAAA/x0cH/9AP0L/ZmVn/5SUlejExMUA4ODgt+Li + 4hbg4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADk5OUA4ODhAL6+ + wAAAAACtAAAA/wAAAP8AAAD/AAAA/wAAAP8TExf/HR0i/2ZWMf/DoUL//9NO//zQT//yyUz/27hH/5+E + Of84MCH/CQoT/1ZWXv+/vr//8vLy/8/Pz//o6Oj//Pz8//7+/v/29vb/y8vM/7a2t/+SkpT/UVFY/ygq + M/9KQCn/ln81/927SP/zyU3/+89O//vOTf/5zU7/+c5O//fMTf/1ykz/9MlM//TKTP/1yk3/9cpN//XK + Tf/1yk3/9cpN//TJTP/4zE3/9stN/964SP+ghjz/bl0r/21eNP+ZjWD/yb2b/766r47Ix8dd3dzfRdHP + 0wDPztEA9/f3AAAAAAAAAAAAAAAAAAAAAAAAAAAA9/f4APf3+AD4+PkA5OTlAMjIyQC8vL0A0NDRANbW + 1wDV1dYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+vwA9fb5AObn + 7ADLzNAAsbGxAHBwcZc+PT7/Hh0g/xoZHf8fHiL/IB8j/yAfI/8WFhn/AAAA/wAAAP8AAAD/AAAA/wAA + AP8LCgz/Hh0h/xwbH/8mJSn/ODc7/1RTV/94d3n2lJSVALa3uKHPz9AA6OjpAOfn6AgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+vr6ANDP0QDR0NIAvr2/AAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8UFh3/KSYl/3hkMv/XsUH/+s5H//3RSP//1En/5r1E/5N8NP8+NR//Pj0//4+Plf/x8fD///////// + ///+/v7////////////y8vL/pKSm/0FCSv8MDBT/Misd/5d/Nf/mwEX//9VJ//rNSP/1ykf/9MhG//TI + R//0yEf/9MlH//XJR//1yUf/9clH//XJR//1yUf/9clH//TJRv/1yUf/9clG//jMR//atEP/i3Y1/zs0 + Iv8mJCf/WFdc/6qrrfTg4eSi7+/vJuHg3gDW1dgA09LVANPS1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7u7vAO7u7wCCgoQAMzMzs0dHSf8YFxv/Gxoe/yAf + I/8gHyP/HRwf/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x4dIP8eHSH/Gxoe/xUUGP8ODRH/Dw4T/x8e + Iv8/PkL/Xl5h/0pKS/85OTq0wsLDDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09LUANPS + 1AClpaYArq2vAAAAAEkAAAD/AAAA/wAAAP8AAAD/AAAA/wQEBP8TFSH/My4l/4ZwMf/lvT//98xB//nM + Qf/6zUL/7MRA/6KHM/9HPib/TU5V/7Cxs//q6ur//Pz8///////+/v7/8vLy/7Cxsv9MTFH/GxgY/0U8 + JP+RejL/37k///3RQ//1yED/88dB//PHQf/0yEH/9MhB//TIQf/0yEH/9MhB//TIQf/0yEH/9MhB//TI + Qf/0yEH/88dA//TIQf/6zEH/68E//6KHNf8uKiP/ERIe/1NTXf+1trnv9vf5sfX2+RL19vkA4N/fALy8 + vgCfnqEAm5udAMHBwgDe3t4A3NzcANzc3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADw8PEA8PDxAX19gB4WFhfeQEBD/xgXG/8cGx//IB8j/yAfI/8EBAT/AAAA/wAAAP8AAAD/AAAA/wAA + AP8WFRj/HBsf/xwbH/8cGx//Hh0h/yIhJf8nJyr/JiUo/w8PEP8PDw//VFRV86OipFKPjpAKAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO/v7wD19fUAy8vMAAAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/wkJCv8ZGCH/Ni8l/5Z9Mf/lvjr/+848//XIO//2yjz/8MU7/4xzK/81LyT/OjxG/6Oj + pv/o6Oj//Pz8//Ly8//ExMX/S01V/yooJP9pWCX/y6g2/+rAOv/0yDz/9cg7//PGOv/0xzv/9Mc7//TH + O//0xzv/9Mc7//THO//0xzv/9Mc7//THO//0xzv/9Mc7//THO//zxjr/9Mc7//7PPP/MqDb/a1oo/xcW + H/9CQkj/sbGy+vP09KL4+PgT9fb4AvX2+ATi4uQGvLy+Bp+eoQabm50GwcHCBt7e3gTc3NwA3NzcAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzs7QDs7O0F5eXmAAgICP8uLjH/Ghkd/x0c + IP8gHyP/CgoL/wAAAP8AAAD/AAAA/wAAAP8AAAD/DQ0P/xoZHv8ZGB3/HRwh/yoqLf8/PkL/NDQ1/QAA + AP8AAACaAAAAJuHh4gDu7u8A8fHyAJCPkQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOzs7ADo6OkAAAAAAwAAANYAAAD/AAAA/wAAAP8AAAD/AAAA/wwMEP8dHCL/PDUl/52C + Lv/kuzT//c82//XIN//8zTf/1K0y/3plJf8kISH/OTpD/5ydof/My8r/qaiq/1NUW/8kJCf/aFYk/8ij + Mf/3yjb/+Mo3//XHNv/zxTb/88U2//TGNv/0xjb/88Y2//PGNv/zxjb/88Y2//PGNv/zxjb/88Y2//PG + Nv/zxjb/88Y2//LFNf/zxjb//9A3/7ybMf9SRSL/Fxci/3Z1ev+xsbCIurq6I/n5+QD7+/sA/v7+gOno + 6rfCwsS3pKOmt6CgorfHx8i34+Piet3d3ADc3NwAxMTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA0NDRANDQ0QbPz9AACAgI/x4dIf8dHCD/Hh0h/w8OEP8AAAD/AAAA/wAAAP8AAAD/AAAA/wQE + Bf8bGh7/MC8z/wAAAP8AAAD/AAAAtxUVFf9nZ2i8w8PDT8fHyEfn5+dH////R////yQAAAAAkI+RAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+fkA4eHhANnZ2QDR0NEAAAAAGAAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/w8PE/8YGSH/SD4l/52CK//luzD/+8wx//nJMv/2xzL/y6Ut/3Je + Iv8lIRz/R0hP/19gZ/9GSFH/Hh0k/1lLIf+5lyz/98gy//nKMv/0xjH/88Ux//PEMv/0xTL/9MUy//TF + Mv/0xTL/9MUy//TFMv/0xTL/9MUy//TFMv/0xTL/9MUy//TFMv/0xTL/88Qx//TFMv/+zjL/w58u/1pL + Iv8TFSL/YWJn/5WVmKafoKdzyMrTebe5wnykpq/eiIqT/2lrc/9VVl//UFFc/2lrdf+foKba09PUa9LS + 0wi/v8EA8fHzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPr6+gCgoKEAoaGiAIiIiQAfHx//FRQY/x4d + If8RERP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABuBwcH/QAAAKiXl5ic/Pz8hf// + /y7+/v4AvLy9ANvb2wD09PQA/f3+APz8/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADj4+MAwsLCAMPDwwDBwcEAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xAQ + FP8UFiL/SD4j/56CKf/mvCv/9sct//zLLf/5yS3/1Kwr/29cI/8oIx7/Dg8a/x4cGv9QQyD/tpQp/+/C + Lf/7yi3/88Mt//PDLP/0xC3/9MQt//TELf/0xC3/9MQt//TELf/0xC3/9MQt//TELf/0xC3/9MQt//TE + Lf/0xC3/9MQt//TELf/zwyz/9MQt//zLLf/asCv/g2wl/yEfIf8pKjT/YWFo/4qIiP+JhX//c29i/1tU + RP9HPyr/OjEb/zMrFf8sJBP/JiEY/1NQTv+np6ntzc3PWNPT1BX4+PkAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/Pz8AKSkpAqhoaI8U1NTACgoKf8UExf/EhEU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAACoBwcH/QAAAG7b29tk+vr6AM/P0ADx8fEA+vr6APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQAxMTEAKuq + qwCtrK0AAAAAVwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xAQFP8XGCL/PTUk/5d8Jv/luif/+Mgm//rI + Jv/4xyb/2K4l/2hXIf85MiD/aFgj/8miJv/zwif/+Mcm//PDJv/zwyb/88Mn//PDJ//zwyf/88Mn//PD + J//zwyf/88Mn//PDJ//zwyf/88Mn//PDJ//zwyf/88Mn//PDJ//zwyf/88Mn//PCJ//zwyf/9sUn//XE + J//Dnib/X1Aj/yYiH/8tKB3/V0gd/4NqHf+Zexv/qoke/7eUIv++mST/vJkk/7OSJf+PdRz/YlMi/1xb + Wf3R0dP08fH0VOnp6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD39/cA9/f3KOzs7AA2Njf+IyMm/w4N + EP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7+KSkp4BsbG0TCwsML7OztC/v7+wX4+PgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExADExMQAqKeoAJ6dnwCamZsAAAAAcQAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/w8OE/8cHCP/NjAi/4duIv/XrCH//ssf//vIIP/2xCD/yaEg/7qXIP/SqSD/9MMg//bF + IP/zwh//8sEg//PCIP/zwiD/88Mg//PCIP/zwiD/88Ig//PCIP/zwiD/88Mg//PCIP/zwiD/88Ig//PD + IP/zwiD/88Ig//PCIP/zwyD/88Ig//LCIP/ywR//9cQg/+2+If/QpiD/qIgg/7GOHf/OpRv/5Lcb/+q7 + HP/vvx7/8sEg//PCIf/zwiH/8cQg/+q/H/+nhhr/Qz0s/4mKjv+cn6hWlZifAPr6+wD6+vsA/f7/AOvr + 7QDNzM0Avr6+AOnp6QD4+PcA9PT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5+joAOfo + 6ADn6OgA5+joANna2gDj5OMq1dbWABEREv8NDA//AAAA/wAAAP8AAAD/AAAA/wAAAPYAAAD/Dw8Ppaem + p0P49/gc8O/wAMLCwwDs7O0A+/v7APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACqqaoAl5aYAI2MjgCHhogAAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wwMEP8ZGSL/NC4i/3hi + IP/DnBz/9cMb///KGv/1wxv/8sAc//XEG//3xBv/88Eb//LAG//zwBv/8sEb//LBG//ywRv/8sEb//LB + G//ywRv/8sEb//LBG//ywRv/8sEb//LBG//ywRv/8sEb//LBG//ywRv/8sEb//LBG//zwRv/8sEb//LA + G//zwRv/9cMb//bEHP/tvRz/8sAc//jGHP/7yRz/+sgc//rGHP/5xhz/+cYc//nGHP/5xxv//84c/9Kn + GP9kUxv/PT1E/mxwf7epqrGS////Of///wH///8n9fX3WNjX13THx8eH7e3tkvv7+jv39/cAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA8fDxAPn4+ADo6ekA7e7uBuzt7Xrs7e05wcHCAKenqSKen6AADw4P/wAA + AP8AAAD/AAAA/wAAAPcAAADYAAAAW0NDQ3L///8G+fn5AO/u7wDr6usAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZmJoAraytALGwsQCvrq8AAAAAhgAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJC/8UFSL/KSUh/2ZUHv+1kRr/57cX//vHFf/8yBb/9cIW//G/ + Fv/xvxf/88AX//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PA + Fv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AX//K/Fv/yvxb/9cIW//rGFv/4xBb/9MIW//G/ + Fv/xvxb/8b4W//K/Fv/ywBb/8sAW//G/Fv/6xRb/6bkW/6mHFv9COBr/UVBS/5OTmv/DxMrkzs/TYMvM + 0KqwsbibkJCWYoqKjCnPz8+A5ubmauDg4AAAAAAAAAAAAAAAAAAAAAAAycrLAMnKywDz8vMA////KuHi + 4lTGx8dmysvMAMnJymLR0dIdmZmadCQkJAAAAAD/AAAA/wAAANIAAACXAAAAYQAAAAAAAAAA9vb2APj4 + +AD39/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD7+/oA/f39APn5+ACsq60AAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wQE + BP8VFh7/HRwi/0c9H/+ggBj/3bAT//XCEf/1wRH/88AR//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/ + Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/ + Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//PA + Ev/2wxH/6bkS/6KBE/9XRxX/RD4s/2NfUv5/eWn8c2xc/klFPv8eHSD/IB8l/5mZmv/BwcJnt7e4AAAA + AAAAAAAA5ubmAO3t7QDIycoAy8zNAOzs7Rjr6uqLuLi6fm9vcX6PjpD+kI+SVLW1tW0YGBj/AAAA/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A/v79AJmY + mgCUlJYAAQEBcwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8TEhn/HBwh/zArH/9zXxn/wJgR//K+ + C//7xQv/9MEL//G/DP/xvgz/8b8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/ + DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/ + DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvgz/8b4M//K/DP/zwAv/7rwM/9SoDP+5kg3/rIkP/7KN + EP+1kA7/knUR/09BFP8kIyb/lpWY/728v2ezsrUAAAAAAAAAAADm5uYA7e3tAMnKywHIycoKz9DRQ5WV + lwtCQkWcKSgs/46Nj/9GRUaKAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAC/vsAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/f38AAAAAAD7+/oAk5OVAKOjpQCcnJ4AAAAAVwAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8LCw7/GRki/ykmIP9VRhv/knUT/9KmC//3wgX//ccE//fCBf/xvgb/8L0G//G9 + B//xvgf/8r4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+ + B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//K+ + B//xvQf/8b4H//K+B//3wgb/9cAG/++6BP/otQL/6LQA/+q4Af/hsgP/poIK/0pCJ/+io6T/w8XNZ7q8 + wgD19vUA8fLxAOjo6ADz8/M409PTLpmZmxtlZWeqODg7/xgXG/8mJSn/QEBB/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAAAAAAAAAAAAA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACVlZcApKSlALa2twCxsbIAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/EBIa/xsb + Iv85Mh7/clwW/66KDP/aqwX/9L8C//vEAf/4wQH/874C//G9Av/xvAL/8b0C//G9Av/yvQL/8r0C//K9 + Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9 + Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8bwC//G9Av/0vgL/+MEB//nD + Av/6wwL/+sUC//7IAP/GmwT/V0sl/6eoqP/DxtFixcjOAPz9/Aj9/v1D2traEbu7vDCKiovMSkpN/yAg + I/8UExf/ERAU/wICAv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAANwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKUAwsLDAMLCwwDNzc0AAAAAGAAA + ANYAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CgoN/xUVIf8aGiP/Qjgc/4FnEv+/lQn/5LID//K8 + Af/2vwD/9b8A//S+AP/zvQD/8rwA//G8AP/xvAD/8bwA//K8AP/yvQD/8rwA//K8AP/yvAD/8rwA//K8 + AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8 + AP/yvAD/8rwA//K8AP/yvQD/8rwA//G8AP/xvAD/8LsA//G8AP/2vwD/8LsA/6yHBf9AOCP/k5OW/8HD + yoTT1NYd5OTkA9LS0lyenp/fWVhb/yIiJf8SERb/GBcb/wwLDf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA1qamplD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADCwsMAwsLDAN/f3wDj4+MAAAAAAwAAAJEAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/xERFf8YGSP/IB4i/0A2Hf96YRT/upIK/+SyAv/3wQD/+cIA//W/AP/zvQD/8bwA//K9 + AP/yvQD/8r0A//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//K9 + AP/xvAD/8r0A//rDAP/ksgP/jnAL/yEfH/9jY2j/vb7AedLS03aWlpjeVVRX/CkoLP8aGB3/Gxoe/xIR + FP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAJEAAAADs7K0AP7+/gAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMLCwwDCwsMA4+PjAPX1 + 9QDw8PAAyMjJAAAAAEkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wICAv8SEhj/HRwj/ygl + IP9DOBz/bVkV/59+Df/NoQb/7bkA//vEAP/9xgD/+cMA//S/AP/xvAD/8LsA//G8AP/xvAD/8bwA//G8 + AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//G8AP/xvAD/8bwA//G8AP/wuwD/8bwA//S9AP/4wQD//8kA//K/Af+ohAr/MCod/zEx + N/9WVlv/WFha/zMyNf8gHyP/Ghkd/xISFP8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAABJwcHCAMfGxwCnpqgA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADi4uIA9/f3AP///wD29vcAubm5AAAAABAAAACtAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgP/Dw8X/xcYI/8lIyH/QTcc/2VTF/+NcBD/sYwL/8+j + Bv/ntAL/9L4A//vDAP/7xAD/+8QA//jCAP/2vwD/874A//K9AP/xvAD/8bwA//C8AP/wuwD/8LwA//C8 + AP/wvAD/8bwA//C8AP/wvAD/8LwA//C8AP/wuwD/8LwA//G8AP/xvAD/874A//W/AP/3wQD/+sMA//zE + AP/7xAD/+MAA/+y4Af/YqwT/upMJ/39mEv8wKx7/HR0i/x8eJP8dHCD/FRQY/xEQE/8CAgL/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAAEObm5gDR0dEAz8/PAK2srgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD39/cA/v7+AOzs7QDIyMkA3NzdAL29vgAAAABJAAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wwNEv8SFCH/Fxkj/ysmIP9KPxv/cl0U/5h5Dv+3kAn/z6IG/9+vBP/ptwL/8LsB//S+ + AP/2vwD/98AA//bAAP/3wAD/9sAA//bAAP/1wAD/9r8A//bAAP/3wAD/9sAA//XAAP/2wAD/9sAA//bA + AP/3wAD/+MEA//fBAP/2wAD/9b4A//K8Af/ruAL/47ED/9WmBf/Blwj/pIIM/4BmEv9aSRj/OTId/yQi + If8cHCH/GBcb/w4OEP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8BwcHTc3N + zQD8/PwA8/PzAM7OzgDOzs4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMfHyAD19fUA+vr6AOPj + 4wAXFxcHAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ICAn/EhMY/xUX + JP8YGST/JCIh/zszHP9aShj/fWQT/519Df+6kgn/z6IG/96tA//otQL/7rsB//K+Af/0vwH/9cAB//bA + Af/3wAD/98AA//e/AP/3wAD/98AA//bAAf/1wAH/9MAB//O+Af/xvAH/67gC/+KwAv/VpgX/wpgI/6aE + C/+HaxH/ZlIW/0Y6G/8sJyD/HBsj/xYXJP8YGSP/FRUY/wgICf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAgAAAAAbLy8wAxcXGAPj4+ADy8vIAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAx8fIAPj4+AD///8A5OTlANfX2ADMzM0AAAAAGAAAAKIAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJC/8TFBn/Gxsh/x4dIv8jISH/LCgf/zkx + Hv9KPRz/XUsY/29ZFP+BZxL/kXQQ/6B/Df+qhwz/s40K/7qRCP++lQj/wJUI/7+WCP+8kgj/tI4J/62I + DP+jgQ3/lngO/4hsEv91XxT/YlAX/09DG/8+Nh3/MCsf/yUjIf8fHiL/HBsi/xoaIf8TFBn/CQkL/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAAABjm5uYA8PDwAPHx + 8QDExMUA+Pj4APLy8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9/f3AP7+ + /gDh4eIA5ubnAPDw8QDPz9AAsbKyAAAAACAAAACoAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AwME/woLEP8RERr/Fxch/xwbI/8hICL/JyQh/y4pH/82MB7/PDQd/0I5 + HP9HPBv/TEAb/09BGv9RQhv/UEIa/01AG/9JPhv/RDoc/z82Hf84MR7/MSsf/yomIf8jISH/HRwi/xkZ + I/8VFiL/EBEa/wsLEP8DAwT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/KSkp/gAAACDU1dUA7u7uAP///wD8/PwA/Pz8AMXFxgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLi4wDi4uMA5ubnANzc2wDk5OQA3d3dALGx + swAAAAAbAAAAkQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wUFB/8JCg//DA0V/w4QG/8PER//EBMh/xETJP8SFST/ExUl/xMVJf8TFSX/EhUl/xMV + JP8RFCT/EBMi/xARH/8OEBv/DQ4V/woKDv8FBQf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAkSMjIyPX1tYp9vf2C/r7+wDz9PQA/Pz8APn5 + +QD5+fkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39/gAOPj5ADPz9AAAAAACgAAAGEAAADiAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADiAAAAYQAA + AArn5+gA/Pv8APn4+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADa2toA3t7eANTU + 1ADh4eIA6OjpAO/v7wDq6eoA4ODgAL69vwAAAAAlAAAAhgAAAPcAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPcAAACGAAAAJcnJygDMzM0A09PUAO3t7gD///8A+/r7AO3u7gD19vYA8vPzAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/f4ADj4+QA9fX1APv7+wD8/PwA2trbANfX + 2ADJyMkAuLi5AAAAACUBAQF4AAAA1gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAAAHYAAAAlycnJANvb2wDr6+sA5OTkAN3d + 3gDZ2doA5+foAPz7/AD5+PkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADz8/MA9fX1APLy8gDQ0NEA8vLyAPf39wD29vUA09LUAM3NzgC2trcAAAAACgAA + ADcAAAB8AAAAxQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAMUAAAB8AAAANwAA + AAq+vr8AxcXFAO3t7QD///8A////AP39/QDa2tsA19fYANfX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADt7e0A7+/vAOvr6wDJyMoA/Pz8AP7+/gD8+/wA6+rrAM/P0ACvr7AAkZCRAAAAABAAAAAwAAAAVwAA + AIAAAACoAAAAywAAAOcAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAOcAAADLAAAAqAAA + AIAAAABXAAAAMAAAABCioaMAxMPEAOHh4QDx8fEA8PDwAO/v7wC7u7wA4uLiAPj4+AD7+/sA+vr6AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6+voA+/v7APj3 + +ADn5ucAy8vMAKysrQCOjY8AcnJ0AOTk5ADi4uIA3t7eANTU1QDOzc8AxMTGALu7vAC4uLkAAAAAAQAA + AAMAAAADAAAAAbq5ugDDw8QAy8rMANLS0wDc3N0A5eTlAOjo6QDr6+sAhoWHAJ+eoADAv8AA3d3dAO3t + 7QDt7e0A7e3tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////////gAAAA///////////////4AAAAAAf/////////////gAAAAAA + Af////////////gAAAAAAAAf///////////AAAAAAAAAA///////////+AAAAAAAAB///////////wAA + AAAAAAAA//////////gAAAAAAAAAAF/////////gAAAAAAAAAAAP////////4AAAAAAAAAAAD/////// + /4AAAAAAAAAAAAH///////8AAAAAAAAAAAAA///////4AAAAAAAAAAAAAH//////+AAAAAAAAAAAAAB/ + //////AAAAAAAAAAAAAAH//////gAAAAAAAAAAAAABf/////gAAAAAAAAAAAAAAP/////wAAAAAAAAAA + AAAAAv////8AAAAAAAAAAAAAAAL////+AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAP////AAAAAA + AAAAAAAAAAA////wAAAAAAAAAAAAAAAAP///8AAAAAAAAAAAAAAAAC///+AAAAAAAAAAAAAAAAAH///A + AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//wAAAAAAAAAAAAAAAAAD//8AAAAAAAAAAAAAAAAA + AP/+AAAAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAA + AAAAAAA/9AAAAAAAAAAAAAAAAAAAP/QAAAAAAAAAAAAAAAAAAD/0AAAAAAAAAAAAAAAAAAA/4AAAAAAA + AAAAAAAAAAAAL+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAAAAAAAAAAAB8AA + AAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAHwAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAA + AAOAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAA + AAfAAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAC/0AAAAAAAAAAAA + AAAAAAAv9AAAAAAAAAAAAAAcAAAAL/QAAAAAAAAAAAAAPgAAAD/8AAAAAAAAAAHwAP8AAABP/AAAAAAA + AAAB/wP/wAAAf/wAAAAAAAAAA/////4AAB//AAAAAAAAAAf////+AAAB/gAAAAAAAAAf/////gAAAf8A + AAAAAAAAP/////4AAAH/wAAAAAAAAH/////8AAAB/+AAAAAAAADgP////AAAP//AAAAAAAAAAB////wA + AP//4AAAAAAAAAAP///8AAf///AAAAAAAAAAB///+AA////wAAAAAAAAAAf///gA/////AAAAAAAAAAA + B/+4A/////4AAAAAAAAAAAP+EB//////AAAAAAAAAAAD/AP//////4AAAAAAAAAAA/AB//////9AAAAA + AAAAAAPAAf//////4AAAAAAAAAADAAB///////AAAAAAAAAAAAAA///////4AAAAAAAAAAAAAP////// + +AAAAAAAAAAAAAB///////4AAAAAAAAAAAAA////////AAAAAAAAAAAAAf///////+AAAAAAAAAAAAf/ + ///////gAAAAAAAAAAAH////////8AAAAAAAAAAAH/////////wAAAAAAAAAAD//////////8AAAAAAA + AA///////////4AAAAAAAAAB///////////wAAAAAAAAD////////////AAAAAAAAH/////////////A + AAAAAAP//////////////AAAAAB///////8= + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/HydroDesktop.Plugins.HelpTab.csproj b/Source/Plugins/HydroDesktop.Plugins.HelpTab/HydroDesktop.Plugins.HelpTab.csproj new file mode 100644 index 00000000..7fd7a963 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HelpTab/HydroDesktop.Plugins.HelpTab.csproj @@ -0,0 +1,239 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {D61FCB88-FF61-4EF4-BC5D-6C037B4B6DB0} + Library + Properties + HydroDesktop.Plugins.HelpTab + HydroDesktop.Plugins.HelpTab + v4.0 + 512 + + + 3.5 + + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HelpTab\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HelpTab\HydroDesktop.Plugins.HelpTab.xml + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HelpTab\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HelpTab\ + DEBUG;TRACE + full + x86 + prompt + false + false + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HelpTab\HydroDesktop.Plugins.HelpTab.xml + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HelpTab\ + TRACE + true + pdbonly + x86 + prompt + false + false + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + ..\..\..\Binaries\HydroDesktop.Help.dll + False + + + + 3.5 + + + + + 3.5 + + + 3.5 + + + + + + + Form + + + AboutBox.cs + + + + + True + True + Settings.settings + + + True + True + Resources.resx + + + + + AboutBox.cs + + + PublicResXFileCodeGenerator + Resources.Designer.cs + Designer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Designer + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + + + + + + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + + + + + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/HydroDesktop.Plugins.HelpTab.nuspec b/Source/Plugins/HydroDesktop.Plugins.HelpTab/HydroDesktop.Plugins.HelpTab.nuspec new file mode 100644 index 00000000..1ee6f684 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HelpTab/HydroDesktop.Plugins.HelpTab.nuspec @@ -0,0 +1,19 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Main.cs b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Main.cs new file mode 100644 index 00000000..21ecae79 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Main.cs @@ -0,0 +1,274 @@ +using System; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using HydroDesktop.Help; + +namespace HydroDesktop.Plugins.HelpTab +{ + /// + /// Main class of the HelpTab plugin + /// + public class Main : Extension + { + #region Private Member Variables + + // These are resources, that may be changed by Language (in the future) + private readonly string _helpPanelName = Resources.helpPanelName; + private readonly string _helpTabName = Resources.helpTabName; + + // These are configurable + private readonly string _localHelpUri = Properties.Settings.Default.localHelpUri; + private readonly string _remoteHelpUri = Properties.Settings.Default.remoteHelpUri; + private readonly string _quickStartUri = Properties.Settings.Default.quickStartUri; + private readonly string _discussionForumUri = Properties.Settings.Default.discussionForumUri; + private readonly string _issueTrackerUri = Properties.Settings.Default.issueTrackerUri; + private readonly string _commentMailtoLink = Properties.Settings.Default.commentMailtoLink; + private readonly string _hisCommentUri = Properties.Settings.Default.hisCommentUri; + + #endregion + + #region Private Methods + + private void OpenUri(string uriString) + { + if (WebUtilities.IsInternetAvailable() == false) + { + MessageBox.Show("Internet connection not available.", "Could not open URI", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + try + { + WebUtilities.OpenUri(uriString); + } + catch (NullReferenceException) + { + MessageBox.Show("No URI provided.", "Could not open URI", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (UriFormatException ex) + { + MessageBox.Show("Invalid URI format for '" + uriString + "'.\n(" + ex.Message + ")", "Could not open URI", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (Exception ex) + { + if (ex.Message == "The system cannot find the path specified") + { + MessageBox.Show("Could not find the target at '" + uriString + "'.", "Could not open URI", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + else + { + MessageBox.Show("Could not open target at '" + uriString + "'.\n(" + ex.Message + ")", "Could not open URI", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + #endregion + + #region IExtension Members + + /// + /// Fires when the plugin should become inactive + /// + public override void Deactivate() + { + // Remove ribbon tab + App.HeaderControl.RemoveAll(); + + base.Deactivate(); + } + /// + /// Activates the HelpTab plugin + /// + public override void Activate() + { + // Initialize the Ribbon controls in the "Help" ribbon tab + const string HelpTabKey = "kHelp"; + App.HeaderControl.Add(new RootItem(HelpTabKey, _helpTabName) { SortOrder = 200 }); + + // Help quick access image + var quickHelpButton = new SimpleActionItem("Help", onlineHelpButton_Click); + quickHelpButton.ToolTipText = "View Help"; + quickHelpButton.GroupCaption = HeaderControl.HeaderHelpItemKey; + quickHelpButton.LargeImage = Resources.help_32x32; + quickHelpButton.SmallImage = Resources.help_16x16; + App.HeaderControl.Add(quickHelpButton); + //helpPanel.Image = Resources.help_32x32; + + // Add a button to open help documentation + var userGuideButton = new SimpleActionItem("User Guide", onlineHelpButton_Click); + userGuideButton.RootKey = HelpTabKey; + userGuideButton.LargeImage = Resources.help_32x32; + userGuideButton.SmallImage = Resources.help_16x16; + userGuideButton.ToolTipText = "Open the help documentation."; + userGuideButton.GroupCaption = _helpPanelName; + App.HeaderControl.Add(userGuideButton); + + // Add a button to open quick start guide + var quickStartButton = new SimpleActionItem("Quick Start", quickStartButton_Click); + quickStartButton.RootKey = HelpTabKey; + quickStartButton.LargeImage = Resources.quickstart_32x32; + quickStartButton.SmallImage = Resources.quickstart_16x16; + quickStartButton.ToolTipText = "Open the quick start guide."; + quickStartButton.GroupCaption = _helpPanelName; + App.HeaderControl.Add(quickStartButton); + + //Separator + App.HeaderControl.Add(new SeparatorItem(HelpTabKey, _helpPanelName)); + + // Add a button to open the discussion forums + var discussionButton = new SimpleActionItem("Forum", discussionButton_Click); + discussionButton.RootKey = HelpTabKey; + discussionButton.LargeImage = Resources.discuss_32x32; + discussionButton.SmallImage = Resources.discuss_16x16; + discussionButton.ToolTipText = "Open the HydroDesktop online discussion forum."; + discussionButton.GroupCaption = _helpPanelName; + App.HeaderControl.Add(discussionButton); + + // Add a button to open the issue tracker + var issueTrackerButton = new SimpleActionItem("Issues", issueTrackerButton_Click); + issueTrackerButton.RootKey = HelpTabKey; + issueTrackerButton.LargeImage = Resources.onebit_bug_32x32; + issueTrackerButton.SmallImage = Resources.onebit_bug_16x16; + issueTrackerButton.ToolTipText = "Report a bug or feature request on the online HydroDesktop issue tracker."; + issueTrackerButton.GroupCaption = _helpPanelName; + App.HeaderControl.Add(issueTrackerButton); + + //Separator + App.HeaderControl.Add(new SeparatorItem(HelpTabKey, _helpPanelName)); + + // Add a button to send email to the user support specialist + //var submitEmailButton = new SimpleActionItem("Contact Support\n", submitEmailButton_Click); // !!! \n gets around a bug where the "t" in "Support" is wrapped to a new line + //submitEmailButton.RootKey = HelpTabKey; + //submitEmailButton.LargeImage = Resources.email_32x32; + //submitEmailButton.SmallImage = Resources.email_16x16; + //submitEmailButton.ToolTipText = "Send an e-mail to HydroDesktop User Support using your default e-mail program."; + //submitEmailButton.GroupCaption = _helpPanelName; + //App.HeaderControl.Add(submitEmailButton); + + // Add a button to leave a comment + var submitCommentButton = new SimpleActionItem("Contact Support\n", submitCommentButton_Click); + submitCommentButton.RootKey = HelpTabKey; + submitCommentButton.LargeImage = Resources.comment_32x32; + submitCommentButton.SmallImage = Resources.comment_16x16; + submitCommentButton.ToolTipText = "Contact support using the online HIS contact form."; + submitCommentButton.GroupCaption = _helpPanelName; + App.HeaderControl.Add(submitCommentButton); + + //Separator + App.HeaderControl.Add(new SeparatorItem(HelpTabKey, _helpPanelName)); + + // Add a button to show the About dialog + var aboutButton = new SimpleActionItem("About", aboutButton_Click); + aboutButton.RootKey = HelpTabKey; + aboutButton.LargeImage = Resources.info_32x32; + aboutButton.SmallImage = Resources.info_16x16; + aboutButton.ToolTipText = "Open the HydroDesktop About dialog."; + aboutButton.GroupCaption = _helpPanelName; + App.HeaderControl.Add(aboutButton); + + //add the about button to application menu + var aboutButton2 = new SimpleActionItem(HeaderControl.ApplicationMenuKey, "About", aboutButton_Click); + aboutButton2.GroupCaption = HeaderControl.ApplicationMenuKey; + aboutButton2.LargeImage = Resources.info_32x32; + aboutButton2.SmallImage = Resources.info_16x16; + aboutButton2.ToolTipText = "Open the HydroDesktop About dialog."; + //aboutButton2.GroupCaption = HeaderControl.ApplicationMenuKey; + App.HeaderControl.Add(aboutButton2); + + // This line ensures that "Enabled" is set to true + base.Activate(); + } + + + #endregion + + #region Event Handlers + + + + void onlineHelpButton_Click(object sender, EventArgs e) + { + try + { + + if (WebUtilities.IsInternetAvailable() == false) + { + LocalHelp.OpenHelpFile(_localHelpUri); + } + else + { + OpenUri(_remoteHelpUri); + } + + } + catch (Exception ex) + { + MessageBox.Show("Could not open help file at " + _localHelpUri + "\n" + ex.Message, "Could not open help", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + void quickStartButton_Click(object sender, EventArgs e) + { + try + { + + if (WebUtilities.IsInternetAvailable() == false) + { + string quickStartGuideFile = Properties.Settings.Default.QuickStartGuideName; + LocalHelp.OpenHelpFile(quickStartGuideFile); + } + else + { + OpenUri(_quickStartUri); + } + + } + catch (Exception ex) + { + MessageBox.Show("Could not open help file at " + _localHelpUri + "\n" + ex.Message, "Could not open help", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + + void discussionButton_Click(object sender, EventArgs e) + { + OpenUri(_discussionForumUri); + } + + void issueTrackerButton_Click(object sender, EventArgs e) + { + OpenUri(_issueTrackerUri); + } + + void submitEmailButton_Click(object sender, EventArgs e) + { + try + { + WebUtilities.OpenMailtoLink(_commentMailtoLink); + } + catch (NullReferenceException) + { + MessageBox.Show("No mailto link provided.", "Could not e-mail support", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (Exception ex) + { + MessageBox.Show("Could not open mailto link '" + _commentMailtoLink + "'.\n(" + ex.Message + ")", "Could not e-mail support", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + void submitCommentButton_Click(object sender, EventArgs e) + { + OpenUri(_hisCommentUri); + } + + void aboutButton_Click(object sender, EventArgs e) + { + AboutBox frm = new AboutBox(); + + frm.StartPosition = FormStartPosition.CenterScreen; + frm.Show(); + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..5cce3dd0 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.HelpTab")] +[assembly: AssemblyDescription("Provides Help to the User")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Tim Whiteaker")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.HelpTab")] +[assembly: AssemblyCopyright("Copyright © 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("8ea2ff54-8e6c-4af8-9851-fa59c3e9ce9c")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Properties/Settings.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Properties/Settings.Designer.cs new file mode 100644 index 00000000..5462940f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Properties/Settings.Designer.cs @@ -0,0 +1,117 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.HelpTab.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.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; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://userguide.hydrodesktop.org")] + public string remoteHelpUri { + get { + return ((string)(this["remoteHelpUri"])); + } + set { + this["remoteHelpUri"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://hydrodesktop.codeplex.com/discussions")] + public string discussionForumUri { + get { + return ((string)(this["discussionForumUri"])); + } + set { + this["discussionForumUri"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://hydrodesktop.codeplex.com/workitem/list/basic")] + public string issueTrackerUri { + get { + return ((string)(this["issueTrackerUri"])); + } + set { + this["issueTrackerUri"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://contact.hydrodesktop.org")] + public string hisCommentUri { + get { + return ((string)(this["hisCommentUri"])); + } + set { + this["hisCommentUri"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("mailto:questions@cuahsi.org?subject=HydroDesktop&body=Dear CUAHSI User Support Sp" + + "ecialist,%0A%0A")] + public string commentMailtoLink { + get { + return ((string)(this["commentMailtoLink"])); + } + set { + this["commentMailtoLink"] = value; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("HydroDesktop User Guide.pdf")] + public string localHelpUri { + get { + return ((string)(this["localHelpUri"])); + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://quickstart.hydrodesktop.org")] + public string quickStartUri { + get { + return ((string)(this["quickStartUri"])); + } + set { + this["quickStartUri"] = value; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("HydroDesktop_Quick_Start_Guide_1.5.pdf")] + public string QuickStartGuideName { + get { + return ((string)(this["QuickStartGuideName"])); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Properties/Settings.settings b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Properties/Settings.settings new file mode 100644 index 00000000..1b8f9b05 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Properties/Settings.settings @@ -0,0 +1,30 @@ + + + + + + http://userguide.hydrodesktop.org + + + http://hydrodesktop.codeplex.com/discussions + + + http://hydrodesktop.codeplex.com/workitem/list/basic + + + http://contact.hydrodesktop.org + + + mailto:questions@cuahsi.org?subject=HydroDesktop&body=Dear CUAHSI User Support Specialist,%0A%0A + + + HydroDesktop User Guide.pdf + + + http://quickstart.hydrodesktop.org + + + HydroDesktop_Quick_Start_Guide_1.5.pdf + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources.Designer.cs new file mode 100644 index 00000000..d0e935c1 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources.Designer.cs @@ -0,0 +1,241 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.HelpTab { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public 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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HydroDesktop.Plugins.HelpTab.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap comment_16x16 { + get { + object obj = ResourceManager.GetObject("comment_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap comment_32x32 { + get { + object obj = ResourceManager.GetObject("comment_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap cuahsi_logo_sm { + get { + object obj = ResourceManager.GetObject("cuahsi_logo_sm", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap discuss_16x16 { + get { + object obj = ResourceManager.GetObject("discuss_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap discuss_32x32 { + get { + object obj = ResourceManager.GetObject("discuss_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap email_16x16 { + get { + object obj = ResourceManager.GetObject("email_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap email_32x32 { + get { + object obj = ResourceManager.GetObject("email_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap help_16x16 { + get { + object obj = ResourceManager.GetObject("help_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap help_32x32 { + get { + object obj = ResourceManager.GetObject("help_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to Help. + /// + public static string helpPanelName { + get { + return ResourceManager.GetString("helpPanelName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Help. + /// + public static string helpTabName { + get { + return ResourceManager.GetString("helpTabName", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap info_16x16 { + get { + object obj = ResourceManager.GetObject("info_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap info_32x32 { + get { + object obj = ResourceManager.GetObject("info_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Logo_Medium { + get { + object obj = ResourceManager.GetObject("Logo_Medium", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap onebit_bug_16x16 { + get { + object obj = ResourceManager.GetObject("onebit_bug_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap onebit_bug_32x32 { + get { + object obj = ResourceManager.GetObject("onebit_bug_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap quickstart_16x16 { + get { + object obj = ResourceManager.GetObject("quickstart_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap quickstart_32x32 { + get { + object obj = ResourceManager.GetObject("quickstart_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources.resx new file mode 100644 index 00000000..a76b9f82 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources.resx @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Resources\comment_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\comment_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\cuahsi_logo_sm.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\discuss_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\discuss_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\email_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\email_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Help + + + Help + + + Resources\help_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\help_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\info_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\info_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Logo_Medium.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\onebit_bug_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\onebit_bug_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\quickstart_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\quickstart_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/Logo_Medium.png b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/Logo_Medium.png new file mode 100644 index 00000000..6a9a4c51 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/Logo_Medium.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/comment_16x16.png b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/comment_16x16.png new file mode 100644 index 00000000..c5050fbe Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/comment_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/comment_32x32.png b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/comment_32x32.png new file mode 100644 index 00000000..955bc312 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/comment_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/cuahsi_logo_sm.gif b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/cuahsi_logo_sm.gif new file mode 100644 index 00000000..5836e7cd Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/cuahsi_logo_sm.gif differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/discuss_16x16.png b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/discuss_16x16.png new file mode 100644 index 00000000..adafb7b0 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/discuss_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/discuss_32x32.png b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/discuss_32x32.png new file mode 100644 index 00000000..4534a26a Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/discuss_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/email_16x16.png b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/email_16x16.png new file mode 100644 index 00000000..eba9e168 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/email_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/email_32x32.png b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/email_32x32.png new file mode 100644 index 00000000..07bd519e Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/email_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/help_16x16.png b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/help_16x16.png new file mode 100644 index 00000000..f25fc3fb Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/help_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/help_32x32.png b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/help_32x32.png new file mode 100644 index 00000000..d60425f7 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/help_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/icon sources.xlsx b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/icon sources.xlsx new file mode 100644 index 00000000..6d15f148 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/icon sources.xlsx differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/info_16x16.png b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/info_16x16.png new file mode 100644 index 00000000..e0715d00 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/info_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/info_32x32.png b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/info_32x32.png new file mode 100644 index 00000000..3f261420 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/info_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/onebit_bug_16x16.png b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/onebit_bug_16x16.png new file mode 100644 index 00000000..75889339 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/onebit_bug_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/onebit_bug_32x32.png b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/onebit_bug_32x32.png new file mode 100644 index 00000000..2a82ab8d Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/onebit_bug_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/quickstart_16x16.png b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/quickstart_16x16.png new file mode 100644 index 00000000..ecd620b7 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/quickstart_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/quickstart_32x32.png b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/quickstart_32x32.png new file mode 100644 index 00000000..83c1b96d Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HelpTab/Resources/quickstart_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/app.config b/Source/Plugins/HydroDesktop.Plugins.HelpTab/app.config new file mode 100644 index 00000000..10ba21b0 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HelpTab/app.config @@ -0,0 +1,43 @@ + + + + +
    + + +
    + + + + + + http://userguide.hydrodesktop.org + + + http://hydrodesktop.codeplex.com/discussions + + + http://hydrodesktop.codeplex.com/workitem/list/basic + + + http://contact.hydrodesktop.org + + + mailto:questions@cuahsi.org?subject=HydroDesktop&body=Dear CUAHSI User Support Specialist,%0A%0A + + + http://quickstart.hydrodesktop.org + + + + + + + HydroDesktop User Guide.pdf + + + HydroDesktop_Quick_Start_Guide_1.5.pdf + + + + diff --git a/Source/Plugins/HydroDesktop.Plugins.HelpTab/packages.config b/Source/Plugins/HydroDesktop.Plugins.HelpTab/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HelpTab/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Classes/Main.cs b/Source/Plugins/HydroDesktop.Plugins.HydroR/Classes/Main.cs new file mode 100644 index 00000000..5f8b4997 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Classes/Main.cs @@ -0,0 +1,106 @@ +using System.Windows.Forms; +using MapWindow.Components; +using MapWindow.Map; +using MapWindow.Plugins; +using System; + +namespace HydroR +{ + [MapWindowPlugin("HydroR", Author = "USU", UniqueName = "HydroR_1", Version = "1")] + public class Main : Extension, IMapPlugin + { + #region Variables + + //reference to the main application and it's UI items + private IMapPluginArgs _mapArgs; + + //the main tab control where map view, graph view and table view are displayed + private TabControl _mainTabControl = null; + + //the tab page which will be added to the tab control by the plugin + private TabPage _hydroRTabPage = null; + + private cRCommandView _hydroRControl = null; + + + + #endregion + + #region IExtension Members + + + + #endregion + + #region IPlugin Members + + /// + /// Initialize the mapWindow 6 plugin + /// + /// The plugin arguments to access the main application + public void Initialize(IMapPluginArgs args) + { + //set the reference to the MapWindow application + _mapArgs = args; + + string tabPageName = "HydroR"; + _mainTabControl = FindMainTabControl(); + + + + //add some items to the newly created tab control + if (_mainTabControl != null) + { + _hydroRTabPage = new TabPage(tabPageName); + _mainTabControl.TabPages.Add(_hydroRTabPage); + + //add the cRCommandView control to the main tab page + _hydroRControl = new cRCommandView(); + _hydroRTabPage.Controls.Add(_hydroRControl); + _hydroRControl.Dock = DockStyle.Fill; + _mainTabControl.SelectedIndexChanged += new EventHandler(mainTabControl_SelectedIndexChanged); + + } + } + + private TabControl FindMainTabControl() + { + ToolStripContentPanel mainContentPanel = _mapArgs.ToolStripContainer.ContentPanel; + + foreach (Control control in mainContentPanel.Controls) + { + if (control is TabControl) + { + return control as TabControl; + } + } + return null; + } + #endregion + + #region Event Handlers + void mainTabControl_SelectedIndexChanged(object sender, EventArgs e) + { + if (_mainTabControl.SelectedTab == _hydroRTabPage) + { + _hydroRControl.RefreshView(); + } + } + /// + /// Fires when the plugin should become inactive + /// + protected override void OnDeactivate() + { + + if (_mainTabControl != null && _hydroRTabPage != null) + { + _mainTabControl.TabPages.Remove(_hydroRTabPage); + _mainTabControl.SelectedIndexChanged -= mainTabControl_SelectedIndexChanged; + } + + } + + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Classes/clsRSyntax.cs b/Source/Plugins/HydroDesktop.Plugins.HydroR/Classes/clsRSyntax.cs new file mode 100644 index 00000000..f3612d2c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Classes/clsRSyntax.cs @@ -0,0 +1,113 @@ +using System.Drawing; +using System.Text.RegularExpressions; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.HydroR +{ + class SyntaxColoring + { + RichTextBox formattedText; + syntax[] highlighters = new syntax[6]; + public RichTextBox getFormattedText() + { + return formattedText; + } + + public SyntaxColoring() + { + highlighters[0] = new syntax(@"(\n|.)*", Color.Black); + highlighters[1] = new syntax(@"(?<=\b)\d+(?=\b)", Color.DarkOrange); + highlighters[2] = new syntax("(?<=\\b)(as\\.data\\.frame\\.model\\.matrix|getCConverterDescriptions|as\\.data\\.frame\\.numeric|as\\.data\\.frame\\.ordered|as\\.data\\.frame\\.POSIXct|as\\.data\\.frame\\.POSIXlt|model\\.matrix\\.glm\\.null|print\\.summary\\.aovlist|summary\\.packageStatus|USPersonalExpenditure|as\\.character\\.octmode|as\\.data\\.frame\\.logLik|as\\.data\\.frame\\.matrix|as\\.data\\.frame\\.vector|getTaskCallbackNames|makepredictcall\\.poly|package\\.dependencies|print\\.summary\\.manova|update\\.packageStatus|\\.PostScript\\.Options|as\\.character\\.POSIXt|as\\.data\\.frame\\.table|closeAllConnections|getCConverterStatus|getNativeSymbolInfo|package\\.description|print\\.packageStatus|print\\.summary\\.table|setCConverterStatus|taskCallbackManager|\\.NotYetImplemented|expand\\.model\\.frame|influence\\.measures|installed\\.packages|make\\.packages\\.html|print\\.recordedplot|removeTaskCallback|Summary\\.data\\.frame|summary\\.connection|summary\\.data\\.frame|weighted\\.residuals|xpdrows\\.data\\.frame|\\.BaseNamespaceEnv|all\\.equal\\.POSIXct|as\\.matrix\\.noquote|as\\.matrix\\.POSIXlt|download\\.packages|fitted\\.values\\.glm|format\\.data\\.frame|getAllConnections|getNumCConverters|NotYetImplemented|print\\.packageInfo|print\\.simple\\.list|print\\.summary\\.aov|print\\.summary\\.glm|as\\.data\\.frame\\.ts|coefficients\\.glm|fitted\\.values\\.lm|install\\.packages|interaction\\.plot|inverse\\.gaussian|LifeCycleSavings|make\\.search\\.html|package\\.contents|package\\.skeleton|print\\.connection|print\\.data\\.frame|print\\.dummy\\.coef|print\\.libraryIQR|print\\.packageIQR|print\\.SavedPlots|print\\.summary\\.lm|print\\.tables\\.aov|removeCConverter|socketConnection|zip\\.file\\.extract|addTaskCallback|as\\.table\\.ftable|boxplot\\.formula|coefficients\\.lm|contr\\.treatment|DateTimeClasses|delete\\.response|dev\\.interactive|edit\\.data\\.frame|lines\\.histogram|makepredictcall|model\\.matrix\\.lm|plot\\.data\\.frame|print\\.integrate|remove\\.packages|Summary\\.POSIXct|Summary\\.POSIXlt|showConnections|summary\\.aovlist|summary\\.default|summary\\.POSIXct|summary\\.POSIXlt|update\\.packages|winDialogString|\\.\\.path\\.package|as\\.environment|attr\\.all\\.equal|compareVersion|complete\\.cases|cooks\\.distance|filled\\.contour|format\\.default|format\\.octmode|format\\.POSIXct|format\\.POSIXlt|ftable\\.formula|Hypergeometric|is\\.empty\\.model|is\\.environment|link\\.html\\.help|memory\\.profile|model\\.response|nclass\\.Sturges|plot\\.histogram|points\\.formula|print\\.difftime|print\\.TukeyHSD|pushBackLength|round\\.difftime|SafePrediction|Summary\\.factor|Sys\\.localeconv|summary\\.factor|summary\\.manova|summary\\.matrix|sys\\.load\\.image|sys\\.save\\.image|terrain\\.colors|textConnection|USJudgeRatings|update\\.formula|variable\\.names|winMenuAddItem|winMenuDelItem|\\.find\\.package|\\.leap\\.seconds|\\.\\.primUntrace|anova\\.glmlist|as\\.data\\.frame|as\\.expression|boxplot\\.stats|CRAN\\.packages|check\\.options|contr\\.helmert|download\\.file|flush\\.console|format\\.factor|formula\\.terms|getConnection|geterrmessage|is\\.data\\.frame|is\\.expression|is\\.na\\.POSIXlt|library\\.dynam|limitedLabels|lines\\.formula|model\\.extract|model\\.weights|newestVersion|OrchardSprays|packageStatus|pairs\\.formula|plot\\.function|plot\\.TukeyHSD|print\\.aovlist|print\\.coefmat|print\\.default|print\\.density|print\\.formula|print\\.hsearch|print\\.noquote|print\\.octmode|print\\.ordered|print\\.POSIXct|print\\.POSIXlt|quasibinomial|Renviron\\.site|reg\\.finalizer|residuals\\.glm|Sys\\.getlocale|Sys\\.setlocale|summary\\.table|sunflowerplot|terms\\.formula|UCBAdmissions|weighted\\.mean|\\.\\.Autoloaded|\\.AutoloadEnv|\\.Random\\.seed|anova\\.lmlist|anovalist\\.lm|as\\.character|axis\\.POSIXct|capabilities|close\\.screen|close\\.socket|co\\.intervals|coefficients|contributors|count\\.fields|dev\\.copy2eps|edit\\.default|erase\\.screen|Formaldehyde|factor\\.scope|findInterval|forwardsolve|fourfoldplot|graphics\\.off|HairEyeColor|InsectSprays|index\\.search|is\\.character|is\\.recursive|isIncomplete|lm\\.influence|Math\\.POSIXlt|margin\\.table|mean\\.POSIXct|mean\\.POSIXlt|memory\\.limit|model\\.matrix|model\\.offset|model\\.tables|nclass\\.scott|old\\-piechart|old\\.packages|panel\\.smooth|parent\\.frame|plot\\.default|plot\\.density|plot\\.formula|plot\\.POSIXct|plot\\.POSIXlt|predict\\.poly|print\\.atomic|print\\.factor|print\\.family|print\\.ftable|print\\.listof|print\\.logLik|print\\.matrix|print\\.mtable|print\\.socket|quasipoisson|read\\.00Index|replications|residuals\\.lm|round\\.POSIXt|Sys\\.timezone|split\\.screen|storage\\.mode|summary\\.infl|sys\\.function|terms\\.object|trunc\\.POSIXt|type\\.convert|win\\.metafile|write\\.ftable|write\\.socket|\\[\\.data\\.frame|\\[\\.SavedPlots|\\.Deprecated|\\.Last\\.value|\\.NotYetUsed|\\.\\.Traceback|as\\.function|as\\.pairlist|char\\.expand|commandArgs|connections|contrib\\.url|DLL\\.version|data\\.matrix|dev\\.control|df\\.residual|discoveries|dump\\.frames|Exponential|edit\\.matrix|eff\\.aovlist|environment|expand\\.grid|file\\.access|file\\.append|file\\.choose|file\\.create|file\\.exists|file\\.remove|file\\.rename|format\\.char|format\\.info|format\\.pval|glm\\.control|heat\\.colors|help\\.search|hist\\.POSIXt|ISOdatetime|interaction|interactive|inverse\\.rle|is\\.function|is\\.infinite|is\\.language|is\\.pairlist|is\\.unsorted|loadhistory|Math\\.POSIXt|mahalanobis|make\\.socket|memory\\.size|model\\.frame|NegBinomial|Ops\\.POSIXct|Ops\\.POSIXlt|object\\.size|PlantGrowth|path\\.expand|plot\\.factor|plot\\.window|predict\\.glm|predict\\.mlm|print\\.anova|print\\.htest|print\\.table|print\\.terms|print\\.xtabs|Random\\.user|read\\.delim2|read\\.ftable|read\\.socket|reformulate|savehistory|se\\.contrast|searchpaths|select\\.list|summary\\.aov|summary\\.glm|summary\\.mlm|sys\\.on\\.exit|sys\\.parents|system\\.file|system\\.time|ToothGrowth|terms\\.terms|topo\\.colors|weights\\.glm|win\\.version|write\\.table|\\.First\\.lib|\\.GlobalEnv|\\.\\.libPaths|\\.Primitive|\\.primTrace|\\.ps\\.prolog|AIC\\.logLik|Arithmetic|abbreviate|airquality|as\\.complex|as\\.formula|as\\.integer|as\\.logical|as\\.numeric|as\\.ordered|as\\.POSIXct|as\\.POSIXlt|attributes|autoloader|bringToTop|bug\\.report|Comparison|case\\.names|connection|contr\\.poly|copyrights|cut\\.POSIXt|Deprecated|data\\.class|data\\.entry|data\\.frame|dev2bitmap|dir\\.create|drop\\.scope|drop\\.terms|dummy\\.coef|duplicated|dyn\\.unload|expression|extractAIC|family\\.glm|formula\\.lm|help\\.start|is\\.complex|is\\.element|is\\.integer|is\\.logical|is\\.numeric|is\\.ordered|isSeekable|list\\.files|localeconv|logLik\\.glm|make\\.names|mat\\.or\\.vec|match\\.call|mem\\.limits|month\\.name|mosaicplot|NextMethod|NotYetUsed|na\\.exclude|na\\.omit\\.ts|native\\.enc|Ops\\.POSIXt|parent\\.env|pentagamma|plot\\.table|pos\\.to\\.env|postscript|predict\\.lm|presidents|print\\.AsIs|print\\.infl|prop\\.table|ps\\.options|read\\.delim|read\\.table|recordPlot|replayPlot|Sys\\.getenv|Sys\\.putenv|seq\\.POSIXt|shell\\.exec|stack\\.loss|stat\\.anova|str\\.logLik|str\\.POSIXt|stripchart|substitute|summary\\.lm|symbol\\.For|sys\\.frames|sys\\.nframe|sys\\.parent|sys\\.source|sys\\.status|tetragamma|warpbreaks|weights\\.lm|winMenuAdd|winMenuDel|writeLines|xyz\\.coords|zip\\.unpack|\\[\\[\\.POSIXct|\\-\\.POSIXct|\\-\\.POSIXlt|\\.Dyn\\.libs|\\.External|\\.\\.Fortran|\\.Internal|\\.Last\\.lib|\\.\\.Options|\\.packages|\\.Platform|\\.Renviron|\\.Rprofile|add\\.scope|aggregate|all\\.equal|all\\.names|anova\\.glm|anova\\.mlm|approxfun|as\\.double|as\\.factor|as\\.matrix|as\\.single|as\\.symbol|as\\.vector|assocplot|backsolve|Chisquare|c\\.POSIXct|c\\.POSIXlt|character|charmatch|cm\\.colors|conflicts|contr\\.sum|contrasts|copyright|crossprod|dataentry|dev\\.print|dsignrank|family\\.lm|file\\.copy|file\\.info|file\\.path|file\\.show|frequency|GammaDist|Geometric|gammaCody|gctorture|getOption|globalenv|ISOLatin1|identical|integrate|intersect|invisible|is\\.atomic|is\\.double|is\\.factor|is\\.finite|is\\.loaded|is\\.matrix|is\\.object|is\\.single|is\\.symbol|is\\.vector|kronecker|Lognormal|logLik\\.lm|lower\\.tri|make\\.link|match\\.arg|match\\.fun|matpoints|month\\.abb|na\\.action|napredict|nclass\\.FD|pbirthday|prettyNum|print\\.aov|print\\.glm|print\\.rle|proc\\.time|psignrank|qbirthday|qsignrank|R\\.Version|R\\.version|read\\.csv2|readLines|residuals|row\\.names|rsignrank|rstandard|Subscript|Sys\\.sleep|sort\\.list|splinefun|stackloss|stopifnot|strheight|structure|substring|sys\\.calls|sys\\.frame|traceback|transform|USArrests|UseMethod|unix\\.time|upper\\.tri|which\\.max|which\\.min|win\\.graph|win\\.print|winDialog|write\\.dcf|writeChar|xy\\.coords|\\[\\.formula|\\[\\.noquote|\\[\\.POSIXct|\\[\\.POSIXlt|\\+\\.POSIXt|\\-\\.POSIXt|\\.\\.Device|\\.Devices|\\.Generic|\\.lib\\.loc|\\.Library|\\.Machine|airmiles|all\\.vars|anova\\.lm|anscombe|as\\.array|as\\.table|attitude|autoload|Binomial|basename|binomial|builtins|casefold|cbind\\.ts|chickwts|chol2inv|colMeans|colnames|convolve|covratio|debugger|dev\\.copy|dev\\.list|dev\\.next|dev\\.prev|deviance|difftime|dimnames|dotchart|dweibull|dyn\\.load|eurodist|faithful|formatDL|function|gaussian|identify|inherits|is\\.array|is\\.table|Japanese|La\\.eigen|Logistic|lines\\.ts|ls\\.print|MacRoman|matlines|optimise|optimize|Platform|p\\.adjust|pairlist|piechart|plot\\.gam|plot\\.mlm|plot\\.mts|plot\\.new|plotmath|polyroot|pressure|print\\.by|print\\.lm|print\\.ts|prmatrix|pushBack|pweibull|qr\\.resid|qr\\.solve|quantile|quarters|qweibull|Rconsole|Rprofile|read\\.csv|read\\.dcf|read\\.fwf|readChar|readline|rowMeans|rownames|rstudent|rweibull|SignRank|Sys\\.info|Sys\\.time|savePlot|segments|sequence|set\\.seed|setequal|strftime|strptime|strsplit|strwidth|sunspots|symbol\\.C|sys\\.call|TukeyHSD|tabulate|tempfile|termplot|toString|trigamma|truncate|url\\.show|VADeaths|Wilcoxon|warnings|weekdays|writeBin|zapsmall|\\[\\.factor|\\.\\.Group|\\.Method|\\.Script|apropos|as\\.call|as\\.list|as\\.name|as\\.null|as\\.real|barplot|besselI|besselJ|besselK|besselY|boxplot|browser|bw\\.nrd0|Control|ceiling|col2rgb|colours|colSums|comment|complex|contour|cumprod|Devices|dcauchy|density|deparse|dev\\.cur|dev\\.off|dev\\.set|dfbetas|diff\\.ts|digamma|dirname|dnbinom|do\\.call|dwilcox|Extract|effects|example|Foreign|fivenum|formals|formatC|formula|gc\\.time|glm\\.fit|Hershey|history|INSTALL|ISOdate|integer|is\\.call|is\\.list|is\\.name|is\\.null|is\\.real|islands|LETTERS|lchoose|letters|library|licence|license|lm\\.wfit|locales|locator|logical|longley|ls\\.diag|lsf\\.str|Machine|Methods|machine|matmult|matplot|max\\.col|methods|missing|n2mfrow|na\\.fail|na\\.omit|na\\.pass|naprint|naresid|new\\.env|nlevels|noquote|numeric|objects|on\\.exit|options|ordered|Poisson|POSIXct|POSIXlt|palette|pcauchy|plot\\.lm|plot\\.ts|plot\\.xy|pnbinom|poisson|polygon|ppoints|predict|preplot|profile|pwilcox|qcauchy|qnbinom|qwilcox|Rdindex|RNGkind|rainbow|rcauchy|readBin|recover|regexpr|relevel|replace|require|reshape|restart|rnbinom|rowSums|rwilcox|Special|Startup|Summary|setdiff|sprintf|stack\\.x|strwrap|summary|symbols|Titanic|tolower|toupper|Uniform|unclass|undebug|uniroot|unsplit|unstack|untrace|upgrade|version|volcano|Weibull|WinAnsi|warning|weights|windows|\\.Class|\\.First|abline|append|approx|arrows|assign|attach|attenu|Bessel|bessel|bitmap|bw\\.bcv|bw\\.nrd|bw\\.ucv|bzfile|Cauchy|chartr|choose|colors|coplot|cov\\.wt|cummax|cummin|cumsum|dbinom|dchisq|deltat|deriv3|detach|device|dffits|dgamma|dhyper|dlnorm|dlogis|double|exists|factor|family|fitted|format|freeny|ftable|gcinfo|gzfile|hasTsp|ifelse|infert|is\\.mts|is\\.nan|isOpen|jitter|julian|La\\.svd|labels|lapply|layout|legend|length|levels|lgamma|lm\\.fit|logLik|loglin|lowess|ls\\.str|Memory|manova|matrix|median|months|morley|mtcars|Normal|nhtemp|Ops\\.ts|offset|pbinom|pchisq|pgamma|phones|phyper|pictex|plnorm|plogis|pmatch|points|precip|pretty|prompt|ptukey|qbinom|qchisq|qgamma|qhyper|qlnorm|qlogis|qqline|qqnorm|qqplot|qr\\.qty|qtukey|quakes|R\\.home|Rd2dvi|Rd2txt|Rdconv|Rdevga|Recall|REMOVE|R_LIBS|rbinom|rchisq|remove|repeat|return|rgamma|rhyper|rivers|rlnorm|rlogis|rowsum|Syntax|sample|sapply|screen|search|signif|single|source|spline|stderr|stdout|subset|substr|switch|symnum|system|tapply|typeof|unique|unlink|unlist|unname|update|vector|window|xemacs|xyinch|\\[\\.AsIs|\\.Call|\\.Last|\\.Pars|acosh|alias|alist|anova|aperm|apply|array|as\\.qr|as\\.ts|asinh|atan2|atanh|BATCH|break|build|bw\\.SJ|cbind|check|chull|class|close|codes|curve|cycle|dbeta|debug|delay|deriv|dgeom|dnorm|dpois|drop1|dunif|eigen|emacs|esoph|evalq|expm1|FALSE|FDist|files|floor|frame|Gamma|gamma|getwd|image|iris3|is\\.na|is\\.qr|is\\.ts|kappa|Logic|lbeta|lines|local|log10|log1p|lsfit|match|merge|mtext|mvfft|names|nargs|nchar|nextn|optim|order|outer|Paren|pairs|parse|paste|pbeta|persp|pgeom|pnorm|polym|power|ppois|print|punif|qbeta|qgeom|qnorm|qpois|qr\\.qy|quasi|qunif|quote|Rprof|randu|range|rbeta|rbind|resid|rgeom|rnorm|round|rpois|runif|Sd2Rd|SHLIB|scale|setwd|shell|sleep|solve|split|stack|stars|start|state|stdin|sweep|swiss|TDist|Tukey|table|terms|title|trace|trees|trunc|union|uspop|which|while|women|write|xedit|xinch|xtabs|yinch|acos|add1|args|asin|atan|attr|axis|Beta|beta|body|Conj|call|cars|chol|coef|cosh|data|date|demo|dexp|dget|diag|diff|dput|drop|dump|edit|else|euro|eval|fifo|file|find|gray|grep|grey|grid|gsub|help|hist|iris|is\\.R|jpeg|list|load|log2|logb|Math|mean|menu|mode|NCOL|NROW|NULL|name|ncol|next|nrow|open|page|pexp|pico|pipe|plot|pmax|pmin|poly|prod|proj|qexp|qr\\.Q|qr\\.R|qr\\.X|quit|rank|real|rect|rexp|save|scan|seek|sign|sinh|sink|sort|sqrt|stem|step|stop|Trig|TRUE|tanh|text|time|unix|with|xfig|\\[\\.ts|AIC|Arg|abs|all|any|aov|ave|bmp|box|bxp|cat|co2|col|cor|cos|cov|cut|det|dim|dir|end|exp|fft|fix|for|get|glm|hat|hsv|Inf|IQR|lcm|log|Mod|mad|max|min|NaN|nlm|Ops|par|pdf|pie|png|RNG|rep|rev|rgb|rle|row|rug|seq|sin|str|sub|sum|svd|tan|try|tsp|unz|url|var|X11|x11|xor|\\.C|by|cm|de|df|dt|gc|gl|Im|if|lm|ls|NA|pf|pi|pt|qf|qr|qt|Re|rf|rm|rt|sd|ts|vi|C|c|D|F|I|q|T|t)(?=\\b)" + + "", Color.DarkCyan); + highlighters[3] = new syntax(@"(?<=\b)(while|if|for|else|do|ifelse)(?=\b)", Color.Blue); + highlighters[4] = new syntax("\"([^(\\\")\n]|\\\\.)*\"", Color.DarkRed); + highlighters[5] = new syntax("#+.*", Color.Green); + + + } + + public void TextChange(RichTextBox rtb, int line) + { + if (rtb.Text != "") + { + if (line > rtb.Text.Length) + line = rtb.Text.Length; + int begin = 0; + // add the length of the lines + for (int i = 0; i <= line - 1; i++) + { + begin += rtb.Lines[i].Length; + // don't forget to add one more for the Environment.NewLine + begin += 1; + } + highlighting(rtb, rtb.Lines[line], begin); + } + } + + public void TextChange(RichTextBox rtb) + { + if (rtb.Text != "") + { + highlighting(rtb, rtb.Text, 0); + } + } + + public void TextChanged(RichTextBox rtb, int startline, int endline) + { + if (rtb.Text != "") + { + + if (startline > rtb.Text.Length) + startline = rtb.Text.Length; + if (endline > rtb.Text.Length) + endline = rtb.Text.Length; + int begin = 0; + // add the length of the lines + for (int i = 0; i <= startline - 1; i++) + { + begin += rtb.Lines[i].Length; + // don't forget to add one more for the Environment.NewLine + begin += 1; + } + string text = ""; + for (int i = startline; i < endline; i++) + { + text += rtb.Lines[i]; + text += "\r"; + } + highlighting(rtb, text, begin); + } + } + + void highlighting(RichTextBox rtb, string text, int startchar) + { + foreach (syntax syn in highlighters) + { + Match m = syn.regex.Match(text); + //Match m = syn.regex.Match(rtb.Text); + while (m.Value != "") + { + rtb.SelectionStart = startchar + m.Index; + //rtb.SelectionStart = m.Index; + rtb.SelectionLength = m.Length; + rtb.SelectionColor = syn.color; + rtb.SelectionLength = 0; + m = m.NextMatch(); + } + } + formattedText = rtb; + } + } + + public class syntax + { + public Regex regex; + public Color color; + public syntax(string r, Color c) + { + regex = new Regex(r); + + color = c; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/REditor.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/REditor.Designer.cs new file mode 100644 index 00000000..43f37ece --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/REditor.Designer.cs @@ -0,0 +1,58 @@ +namespace HydroDesktop.Plugins.HydroR.Controls +{ + partial class REditor + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + + this.transp = new HydroR.cHighlight(); + + this.Controls.Add(this.transp); + this.VScroll += new System.EventHandler(this.Scroll); + this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.rMouseUp); + this.HScroll += new System.EventHandler(this.Scroll); + this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.rKeyUp); + this.TextChanged += new System.EventHandler(this.rTextChanged); + + // + // transp + // + this.transp.BackColor = System.Drawing.Color.Yellow; + this.transp.Location = new System.Drawing.Point(0, 0); + this.transp.Name = "transp"; + this.transp.Opacity = 20; + this.transp.Size = new System.Drawing.Size(300, 17); + this.transp.TabIndex = 0; + + } + + #endregion + + //public System.Windows.Forms.RichTextBox textBox; + private cHighlight transp; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/REditor.cs b/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/REditor.cs new file mode 100644 index 00000000..8aff6cd0 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/REditor.cs @@ -0,0 +1,123 @@ +using System; +using System.Drawing; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.HydroR.Controls +{ + public partial class REditor : RichTextBox + { + private int line = 0; + + public int Line + { + get { return line; } + set { line = value; } + } + private int highlightlength; + + public int Highlightlength + { + get { return highlightlength; } + set { highlightlength = value; } + } + private bool generateCode; + + public bool GenerateCode + { + get { return generateCode; } + set { generateCode = value; } + } + private SyntaxColoring syn = new SyntaxColoring(); + public REditor() + { + InitializeComponent(); + transp.Changed += new cHighlight.EventHandler(highlighterClick); + } + public void SelectLine(int lineNumber) + { + //if (isNewLine(lineNumber)) + if(lineNumber>=0) + { + Controls.Remove(transp); + + if (lineNumber < Lines.Length && lineNumber>=0) + { + highlightlength = Math.Max(Math.Max(Width, Lines[lineNumber].Length * Font.Height), highlightlength); + } + else { highlightlength = Math.Max(Width, highlightlength); } + currLine = lineNumber; + transp.Location = GetPositionFromCharIndex(GetFirstCharIndexFromLine(lineNumber)); + transp.Size = new Size(highlightlength, Font.Height + 5); + + Controls.Add(transp); + } + } + int currLine; + private bool isNewLine(int l) + { + + if (currLine != l) + return true; + else return false; + + } + + + private void highlighterClick(Point Location) + { + Select(this.GetCharIndexFromPosition(new Point(Location.X, GetPositionFromCharIndex(this.SelectionStart).Y)), 0); + } + private void rTextChanged(object sender, EventArgs e) + { + if (!generateCode) + { + int p = SelectionStart; + syn.TextChange(this, GetLineFromCharIndex(p)); + SelectionStart = p; + SelectLine(line); + } + } + private void rMouseUp(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + linechanged(new Point(e.X, e.Y)); + } + private void rKeyUp(object sender, KeyEventArgs e) + { + int p = SelectionStart; + if (line != GetLineFromCharIndex(p)) + { + Point po = GetPositionFromCharIndex(p); + linechanged(new Point(po.X, po.Y)); + } + } + private void linechanged(Point p) + { + if (SelectionLength == 0) + { + //set current line by the selected line + int position = GetCharIndexFromPosition(p); + line = GetLineFromCharIndex(position); + SelectLine(line); + Select(position, 0); + } + } + private void Scroll(object sender, EventArgs e) + { + SelectLine(line); + } + public void TextChange() + { + syn.TextChange(this); + } + public void TextChange(int editline) + { + syn.TextChange(this, editline); + } + public void TextChange(int start, int end) + { + syn.TextChanged(this, start, end); + } + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/REditor.resx b/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/REditor.resx new file mode 100644 index 00000000..ff31a6db --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/REditor.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/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/cHighlight.cs b/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/cHighlight.cs new file mode 100644 index 00000000..0fbff06a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/cHighlight.cs @@ -0,0 +1,79 @@ +using System.Drawing; +using System.Windows.Forms; + + +namespace HydroDesktop.Plugins.HydroR +{ + public class cHighlight : Control + { + + private int opacity = 100; + private int alpha; + + public cHighlight() + { + SetStyle(ControlStyles.SupportsTransparentBackColor, true); + SetStyle(ControlStyles.Opaque, true); + BackColor = Color.Transparent; + this.MouseUp += new MouseEventHandler(this.h_MouseUp); + } + public event EventHandler Changed; + public delegate void EventHandler(Point Location); + + + private void h_MouseUp(object sender, MouseEventArgs e) + { + if (Changed != null) + { + Changed(e.Location); + } + } + public int Opacity + { + get + { + if (opacity > 100) { opacity = 100; } + else if (opacity < 1) { opacity = 1; } + return opacity; + } + set + { + opacity = value; + } + } + + protected override CreateParams CreateParams + { + get + { + CreateParams cp = base.CreateParams; + cp.ExStyle |= 0x20; + return cp; + } + } + + protected override void OnPaint(PaintEventArgs e) + { + Graphics g = e.Graphics; + Rectangle bounds = new Rectangle(0, 0, this.Width - 1, this.Height - 1); + + Color frmColor = this.Parent.BackColor; + + Brush bckColor; + + alpha = (opacity * 255) / 100; + bckColor = new SolidBrush(Color.FromArgb(alpha, BackColor)); + + if (BackColor != Color.Transparent ) + { + g.FillRectangle(bckColor, bounds); + } + + bckColor.Dispose(); + g.Dispose(); + } + + } + + +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/cRCommandView.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/cRCommandView.Designer.cs new file mode 100644 index 00000000..4be17f91 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/cRCommandView.Designer.cs @@ -0,0 +1,120 @@ +using System.Windows.Forms; +namespace HydroDesktop.Plugins.HydroR +{ + partial class cRCommandView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + + if (disposing && (components != null)) + { + components.Dispose(); + } + + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.sfdSave = new System.Windows.Forms.SaveFileDialog(); + this.ofdOpen = new System.Windows.Forms.OpenFileDialog(); + this.tTipExecute = new System.Windows.Forms.ToolTip(this.components); + this.spcEditor = new System.Windows.Forms.SplitContainer(); + this.rtCommands = new HydroR.Controls.REditor(); + this.spcEditor.Panel1.SuspendLayout(); + this.spcEditor.SuspendLayout(); + this.SuspendLayout(); + // + // sfdSave + // + this.sfdSave.DefaultExt = "r"; + this.sfdSave.Filter = "R files (*.r)|*.r| RichText (*.rtf)|*.rtf|Text File (*.txt)|*.txt|All Files (*.*)" + + "|*.*"; + // + // ofdOpen + // + this.ofdOpen.DefaultExt = "r"; + this.ofdOpen.Filter = "R files (*.r)|*.r|RichText (*.rtf)|*.rtf|Text File (*.txt)|*.txt|All Files (*.*)|" + + "*.*"; + // + // spcEditor + // + this.spcEditor.Dock = System.Windows.Forms.DockStyle.Fill; + this.spcEditor.Location = new System.Drawing.Point(0, 0); + this.spcEditor.Name = "spcEditor"; + this.spcEditor.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // spcEditor.Panel1 + // + this.spcEditor.Panel1.Controls.Add(this.rtCommands); + this.spcEditor.Panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel2_Paint); + // + // spcEditor.Panel2 + // + this.spcEditor.Panel2.Paint += new System.Windows.Forms.PaintEventHandler(this.panel2_Paint); + this.spcEditor.Panel2Collapsed = true; + this.spcEditor.Size = new System.Drawing.Size(811, 631); + this.spcEditor.SplitterDistance = 25; + this.spcEditor.TabIndex = 1; + this.spcEditor.MouseMove += new System.Windows.Forms.MouseEventHandler(this.cRCommandView_MouseMove); + this.spcEditor.SplitterMoved += new System.Windows.Forms.SplitterEventHandler(this.spcEditor_SplitterMoved); + // + // rtCommands + // + this.rtCommands.AcceptsTab = true; + this.rtCommands.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.rtCommands.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rtCommands.GenerateCode = false; + this.rtCommands.Highlightlength = 528; + this.rtCommands.Line = 0; + this.rtCommands.Location = new System.Drawing.Point(3, 0); + this.rtCommands.Name = "rtCommands"; + this.rtCommands.Size = new System.Drawing.Size(808, 625); + this.rtCommands.TabIndex = 2; + this.rtCommands.Text = global::HydroDesktop.Plugins.HydroR.Properties.Resources.PathToR; + this.rtCommands.WordWrap = false; + // + // cRCommandView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoScroll = true; + this.Controls.Add(this.spcEditor); + this.Name = "cRCommandView"; + this.Size = new System.Drawing.Size(811, 631); + this.Load += new System.EventHandler(this.cRCommandView_Load); + this.spcEditor.Panel1.ResumeLayout(false); + this.spcEditor.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private SaveFileDialog sfdSave; + private OpenFileDialog ofdOpen; + private ToolTip tTipExecute; + private SplitContainer spcEditor; + public HydroR.Controls.REditor rtCommands; + + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/cRCommandView.cs b/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/cRCommandView.cs new file mode 100644 index 00000000..9af821c6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/cRCommandView.cs @@ -0,0 +1,692 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Runtime.InteropServices; +using System.Threading; +using System.Windows.Forms; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Plugins.HydroR +{ + public partial class cRCommandView : UserControl + { + + #region privateDelaration + + [DllImport("User32")] + private static extern int SetForegroundWindow(int hwnd); + [DllImport("User32")] + private static extern int ShowWindow(int hwnd, int nCmdShow); + [DllImport("user32.dll", SetLastError = true)] + private static extern long SetParent(IntPtr hWndChild, IntPtr hWndNewParent); + [DllImport("user32.dll", SetLastError = true)] + private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); + [DllImport("User32.Dll")] + static extern bool PostMessage(IntPtr hWnd, uint msg, int wParam, uint lParam); + + private const uint WM_CHAR = 0x102; + private const int WM_SYSCOMMAND = 274; + private const int SC_MAXIMIZE = 61488; + public bool RIsRunning; + public event REventHandler RChanged; + public delegate void REventHandler(EventArgs e); + + + #region Variables + + private Process p; + private int pID; + private int count = 0; + private string pathToR; + private ISeriesSelector _seriesSelector; + + #endregion + + #endregion + + #region Constructor + + + public cRCommandView(ISeriesSelector args) + { + + InitializeComponent(); + _seriesSelector = args; + } + + #endregion + + #region Property + /// + /// The current path to R + /// + public string PathToR + { + get { return pathToR; } + } + #endregion + + #region Method + + //To refresh the themes shown in the series selector + public void RefreshView() + { + _seriesSelector.RefreshSelection(); + } + + public void closeR() + { + checkProcess(); + if (p != null) + { + try + { + closeWindow(); + } + catch + { + } + } + } + + //this function sends input from Hydrodesktop to R + void sendString(string input) + { + char[] inputchar = input.ToCharArray(); + for (int i = 0; i < inputchar.Length; i++) + { + PostMessage(p.MainWindowHandle, WM_CHAR, (int)inputchar[i], 0); + } + } + + //void sendString(string input) + //{ + // char[] inputchar = input.ToCharArray(); + // int i; + + // for (i = 0; i < inputchar.Length; i++) + // { + // PostMessage(p.MainWindowHandle, WM_CHAR, (int)inputchar[i], 0); + // if (i % 400 == 0) Thread.Sleep(200); + // } + + //} + + private void sendLineToR(string input) + { + checkProcess(); + try + { + sendString(input); + Thread.Sleep(50); + PostMessage(p.MainWindowHandle, WM_CHAR, (int)Keys.Enter, 0); + + } + catch (Exception e) + { + if (e.Message.Contains("Object reference not set to an instance of an object.")) + { + MessageBox.Show("You must start R before you can Send Commands"); + } + else + MessageBox.Show("Input Error: " + e.Message); + rtCommands.Line--; + throw; + + } + } + + /* + * Hydrodesktop's connection string contains forward slashes but R translates those into + *escape sequences. change slash replaces the \ with a /. + */ + private string changeSlash(string input) + { + input = input.Replace(@"\", @"/"); + return input; + } + + /* + * starts an R process + */ + private void startR() + { + // resize panel2 and text box to be smaller + int newheight = rtCommands.Size.Height / 3; + + + //resize pnlR (larger)change location + + spcEditor.Panel2Collapsed = false; + spcEditor.SplitterDistance = (spcEditor.SplitterDistance - newheight) > 0 ? spcEditor.SplitterDistance - newheight : newheight * 2; + //check to see if R was started + if (SetupRPanel()) + { + //check to see if this is the first time R has run + if (isFirstTime()) + { + //load the required R packages + if (loadPackages()) + { + sendLineToR("library(HydroR)"); + p.Disposed += new System.EventHandler(this.p_Exited); + } + } + else + { + sendLineToR("library(HydroR)"); + p.Disposed += new System.EventHandler(this.p_Exited); + } + } + } + + //Put R into a panel in hydroDesktop so that it is built in + private bool SetupRPanel() + { + bool foundPath = false; + while (!foundPath) + { + //test to see if the process starts with the current path + try + { + // MessageBox.Show(pathToR); + if (pathToR == "") + { + p = Process.Start("Rgui", "--sdi"); + } + else + { + p = Process.Start(@pathToR + @"\Rgui.exe", "--sdi");//--no-save"); + } + + p.WaitForInputIdle(); + pID = p.Id; + setRParent(); + RIsRunning = true; + return true; + + } + catch (Exception e) + { //if R does not start with the current path, open an openfiledialog and have the + //user find the path to the R executables + if (e.Message.Contains("cannot find the file specified")) + { + frmInstallR frmR = new frmInstallR(); + frmR.ShowDialog(this); + if (frmR.getRPathResult == HydroR.frmInstallR.buttonType.OK) + pathToR = frmR.getPathToR; + else + { //resize to original panel size + spcEditor.Panel2Collapsed = true; + spcEditor.SplitterDistance = (spcEditor.Height - 20); + //stop ciculating to make sure the path is correct + foundPath = true; + //stop the rest of the code from trying to start R; + RIsRunning = false; + return false; + } + } + } + } + return false; + } + + // to start R and get info back you must redirect standard input/output + string standardinput(string send) + { + try + { + Process tempP = new Process(); + StreamWriter sw; + StreamReader sr; + ProcessStartInfo psI = new ProcessStartInfo(); + if (pathToR == "") + { + psI.FileName = @"Rterm.exe"; + } + else + { + //MessageBox.Show(pathToR); + psI.FileName = @pathToR + @"\Rterm.exe"; + } + psI.Arguments = "--no-save"; + psI.UseShellExecute = false; + psI.RedirectStandardInput = true; + psI.RedirectStandardOutput = true; + psI.CreateNoWindow = true; + tempP.StartInfo = psI; + tempP.Start(); + sw = tempP.StandardInput; + sr = tempP.StandardOutput; + sw.AutoFlush = true; + sw.WriteLine(send); + sw.Close(); + string data = sr.ReadToEnd(); + tempP.Dispose(); + return data; + } + catch (Exception e) + { + MessageBox.Show(@pathToR + @"\Rterm.exe: " + e.Message); + } + return " "; + } + + /* + * if R is running checks to see if they want to close window + * same question as R asks when it is closing, then calls a + * function to close R. this way we have feedback from our + * process to know what the user has selected + */ + bool closeWindow() + { + if (p != null) + { + DialogResult result = MessageBox.Show("Save R Workspace Image?", "Question", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + + if (result == DialogResult.Yes) + { + closing(true); + return true; + } + else if (result == DialogResult.No) + { + closing(false); + return true; + } + return false; + } + return true; + + } + + /* + * closes R and simulates a button click on the R Save workspace popup. + * after R closes resize the panels so that the Text editor takes up the entire window + * input: wether the user has chosen to save their R workspace + */ + void closing(bool saveWorkspace) + { + p.CloseMainWindow(); + Thread.Sleep(50); + if (!saveWorkspace) + { + pushButton("{TAB}"); + //PostMessage(ps.MainWindowHandle, WM_CHAR, (int)Keys.Tab, 0); + } + + pushButton("{ENTER}"); + //PostMessage(ps.MainWindowHandle, WM_CHAR, (int)Keys.Enter, 0); + + //int enter = 0x0D; + //PostMessage(p.MainWindowHandle, WM_CHAR, enter, 0); + Thread.Sleep(50); + p.Dispose(); + pID = -10000000; + p = null; + } + + /* + * check to see if p is still assigned to a process, if it is, + * is R still running or did R close itself + */ + void checkProcess() + { + if (p != null) + { + try + { + Process processRgui = Process.GetProcessById(pID); + } + catch (Exception e) + { + if (e.Message.Contains("is not running")) + { + p.Dispose(); + + } + } + } + } + + //Checks to see if the HydroR package is installed + private bool isFirstTime() + { + string output = standardinput("is.element(\"HydroR\", installed.packages()[,1])"); + bool firsttime = output.Contains("FALSE"); + return firsttime; + } + + /* + * load RSQLite and HydroR packages. RSQlite send using sendLine, + * HydroR using standardInput + * output: did the packages install + */ + private void pushButton(string s) + { + + Process[] processes = Process.GetProcessesByName("Rgui"); + Process ps = new Process(); + for (int i = 0; i < processes.Length; i++) + { + if (processes[i].MainWindowTitle == "Question") + { + ps = processes[i]; + break; + } + ps = null; + + } + + if (ps != null) + { + SetForegroundWindow((int)ps.MainWindowHandle); + ShowWindow((int)ps.MainWindowHandle, 1); + + SendKeys.Send(s); + } + } + + private bool loadPackages() + { + string output; + bool installed; + int count = 0; + + output = standardinput("is.element(\"RSQLite\", installed.packages()[,1])"); + if (!output.Contains("TRUE")) + { + //install RSQLite- need to allow popups + sendLineToR("install.packages(\"RSQLite\",dependencies = TRUE) "); + System.Threading.Thread.Sleep(200); + pushButton("{ENTER}"); + do + { + output = standardinput("is.element(\"RSQLite\", installed.packages()[,1])"); + installed = output.Contains("TRUE"); + Thread.Sleep(200); + + } while (!installed); + } + //install Hydro R package-standardinput-need feedback + do + { + count++; + //output = standardinput("install.packages(\"" + changeSlash(Path.GetDirectoryName(this.GetType().Assembly.Location)) + "/HydroR_1.1.tar.gz\",repos=NULL, type = \"source\")\n is.element(\"HydroR\", installed.packages()[,1])"); + sendLineToR("install.packages(\"" + changeSlash(Path.GetDirectoryName(this.GetType().Assembly.Location)) + "/HydroR_1.3.tar.gz\",repos=NULL, type = \"source\")"); + pushButton("{ENTER}"); + output = standardinput("is.element(\"HydroR\", installed.packages()[,1])"); + installed = output.Contains("TRUE"); + Thread.Sleep(200); + } while (!installed && count < 15); + + //only allow the process to attempt installation 15 times so it is not stuck in an infinite loop + if (count == 15) + { + MessageBox.Show("One or more of the required packages were unable to install, \nThe HydroR Plugin will not work properly until they are installed."); + //closing(false); + //startR(); + return false; + } + return true; + } + + #endregion + + #region Event + + protected override void OnCreateControl() + { + base.OnCreateControl(); + //add controls to form + this.ParentForm.FormClosing += new FormClosingEventHandler(ParentForm_FormClosing); + this.ParentForm.ResizeEnd += new EventHandler(pnlR_Resized); + + } + + /* + *Checks to make sure the user actually wants to exit, if they do + *save the pathToR so the user does not have to find it again + */ + void ParentForm_FormClosing(object sender, FormClosingEventArgs e) + { + try + { + e.Cancel = (!closeWindow()); + } + catch + { + //if there is an error p is already closed or was never opened, so ignore request + } + } + + private void cRCommandView_Load(object sender, EventArgs e) + { + pathToR = Properties.Settings.Default.PathToR; + rtCommands.Highlightlength = rtCommands.Width; + rtCommands.Line = 0; + } + /* + * if R is Running will attempt to close it, + * if there is no instance of R it starts one + */ + public void btnR_Click(object sender, EventArgs e) + { + checkProcess(); + if (p == null) + { + startR(); + } + else + { + try + { + closeWindow(); + } + catch + { + } + } + if (RChanged != null) + { + RChanged(e); + } + } + + //this will launch the R settings + public void btnSettings_Click(object sender, EventArgs e) + { + frmInstallR frmR = new frmInstallR(true); + frmR.getPathToR = pathToR; + frmR.ShowDialog(this); + if (frmR.getRPathResult == HydroR.frmInstallR.buttonType.OK) + { + string newPathToR = frmR.getPathToR; + if (newPathToR != pathToR) + { + pathToR = newPathToR; + //startR(); + } + } + } + + //if the process has exited resize the panels so the text box takes up the entire screen + private void p_Exited(object sender, EventArgs e) + { + p = null; + pID = -1000000; + spcEditor.Panel2Collapsed = true; + spcEditor.SplitterDistance = (spcEditor.Height - 5); + RIsRunning = false; + if (RChanged != null) + { + RChanged(e); + } + + } + + //send the current line to r + public void btnSend_Click(object sender, EventArgs e) + { + try + { + sendLineToR(rtCommands.Lines[rtCommands.Line]); + rtCommands.Line++; + rtCommands.SelectLine(rtCommands.Line); + rtCommands.SelectionStart += rtCommands.Lines[rtCommands.Line].Length; + rtCommands.ScrollToCaret(); + + } + catch { } + } + + //Send the lines that are currently selected to R + public void btnSendSel_Click(object sender, EventArgs e) + { + try + { + //sendLineToR(rtCommands.SelectedText) + foreach (string line in rtCommands.SelectedText.Split('\n')) + { + sendLineToR(line); + } + + } + catch { } + } + + //Send all the data in the TextBox to R + public void btnSendAll_Click(object sender, EventArgs e) + { + try + { + //sendLineToR(rtCommands.Text); + foreach (string line in rtCommands.Lines) + { + sendLineToR(line); + } + } + catch { } + } + + //creat the command to send to R + public void txtGenR_Click(object sender, EventArgs e) + { + rtCommands.GenerateCode = true; + //for each series that is selected + if (_seriesSelector.CheckedIDList.Length < 1) + { MessageBox.Show("A Series Must Be Selected to Generate R Code"); } + else + { + //nrs = nrs.Distinct().ToArray(); + //int[] ids = GetDistinctValues(Convert.seriesSelector31.CheckedIDList.ToArray()); + var repo = RepositoryFactory.Instance.Get(); + for (int i = 0; i < _seriesSelector.CheckedIDList.Length; i++) + { + //get the DB connection from HydroDesktop + string fileLoc = (HydroDesktop.Configuration.Settings.Instance.DataRepositoryConnectionString.Split(';'))[0].Substring(12); + + //get the begin and end dates from the database for the current series + var dates = repo.GetDateTimes(_seriesSelector.CheckedIDList[i]); + var begin = dates.Item1; + var end = dates.Item2; + + if (fileLoc.Contains(" ")) + rtCommands.AppendText("data" + count + " <- getDataSeries(connectionString=" + changeSlash(fileLoc).Trim() + "," + "\n"); + + else + { + rtCommands.AppendText("data" + count + " <- getDataSeries(connectionString=\"" + changeSlash(fileLoc).Trim() + "\"," + "\n"); + } + rtCommands.AppendText("\tseriesID=" + _seriesSelector.CheckedIDList[i] + "," + "\n" + + "\tSQLite=TRUE," + "\n" + + "\tstartDate= \"" + begin.ToString("yyyy-MM-dd") + "\"," + "\n" + + "\tendDate=\"" + end.ToString("yyyy-MM-dd") + "\")" + "\n"); + //set the current line to the start of the DB request + rtCommands.Line = rtCommands.Lines.Length - 6; + rtCommands.TextChange(rtCommands.Line, rtCommands.Line + 6); + count++; + + } + rtCommands.SelectLine(rtCommands.Line); + } + rtCommands.GenerateCode = false; + } + + //open a saved file to fill the textbox + public void btnOpen_Click(object sender, EventArgs e) + { + rtCommands.GenerateCode = true; + ofdOpen.ShowDialog(); + if (ofdOpen.FileName != "") + rtCommands.LoadFile(ofdOpen.FileName, RichTextBoxStreamType.PlainText); + rtCommands.TextChange(); + rtCommands.Line = 0; + rtCommands.SelectLine(rtCommands.Line); + rtCommands.GenerateCode = false; + + } + + public void btnSetRPath_Click(object sender, EventArgs e) + { + frmInstallR frmR = new frmInstallR(); + frmR.ShowDialog(this); + if (frmR.getRPathResult == HydroR.frmInstallR.buttonType.OK) + pathToR = frmR.getPathToR; + } + + //save textbox to file + public void btnSave_Click(object sender, EventArgs e) + { + sfdSave.ShowDialog(); + if (sfdSave.FileName != "") + rtCommands.SaveFile(sfdSave.FileName, RichTextBoxStreamType.PlainText); + } + + private void cRCommandView_MouseMove(object sender, MouseEventArgs e) + { + checkProcess(); + } + + /* + * Resizes R to fit into the panel. only resizes when the parent + * form is done resizing + */ + private void setRParent() + { + if (p != null) + { + SetParent(p.MainWindowHandle, spcEditor.Panel2.Handle); + SendMessage(p.MainWindowHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0); + } + } + + private void pnlR_Resized(object sender, EventArgs e) + { + setRParent(); + } + + private void spcEditor_SplitterMoved(object sender, SplitterEventArgs e) + { + setRParent(); + } + + private void panel2_Paint(object sender, PaintEventArgs e) + { + rtCommands.SelectLine(rtCommands.Line); + } + + #endregion + + + + + + + + + } +} + + diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/cRCommandView.resx b/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/cRCommandView.resx new file mode 100644 index 00000000..0373c01f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Controls/cRCommandView.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 117, 17 + + + 17, 17 + + + 210, 17 + + + 34 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Forms/frmInstallR.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroR/Forms/frmInstallR.Designer.cs new file mode 100644 index 00000000..2f2857f2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Forms/frmInstallR.Designer.cs @@ -0,0 +1,127 @@ +namespace HydroDesktop.Plugins.HydroR +{ + partial class frmInstallR + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmInstallR)); + this.btnOK = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.btnBrowse = new System.Windows.Forms.Button(); + this.txtPathToR = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnOK.Location = new System.Drawing.Point(317, 245); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 24); + this.btnOK.TabIndex = 0; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + this.btnOK.Click += new System.EventHandler(this.btnOK_Click); + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnCancel.Location = new System.Drawing.Point(398, 245); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 24); + this.btnCancel.TabIndex = 1; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // btnBrowse + // + this.btnBrowse.Location = new System.Drawing.Point(398, 207); + this.btnBrowse.Name = "btnBrowse"; + this.btnBrowse.Size = new System.Drawing.Size(75, 23); + this.btnBrowse.TabIndex = 2; + this.btnBrowse.Text = "Browse..."; + this.btnBrowse.UseVisualStyleBackColor = true; + this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click); + // + // txtPathToR + // + this.txtPathToR.Location = new System.Drawing.Point(12, 207); + this.txtPathToR.Name = "txtPathToR"; + this.txtPathToR.Size = new System.Drawing.Size(380, 20); + this.txtPathToR.TabIndex = 3; + this.txtPathToR.TextChanged += new System.EventHandler(this.txtPathToR_TextChanged); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(16, 13); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(422, 64); + this.label2.TabIndex = 5; + this.label2.Text = resources.GetString("label2.Text"); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.Location = new System.Drawing.Point(12, 93); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(411, 96); + this.label3.TabIndex = 6; + this.label3.Text = resources.GetString("label3.Text"); + // + // frmInstallR + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(480, 281); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.txtPathToR); + this.Controls.Add(this.btnBrowse); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.Name = "frmInstallR"; + this.Text = "R Must be Installed"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Button btnBrowse; + private System.Windows.Forms.TextBox txtPathToR; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Forms/frmInstallR.cs b/Source/Plugins/HydroDesktop.Plugins.HydroR/Forms/frmInstallR.cs new file mode 100644 index 00000000..b2530a09 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Forms/frmInstallR.cs @@ -0,0 +1,83 @@ +using System; +using System.IO; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.HydroR +{ + public partial class frmInstallR : Form + { + private string PathToR; + public string getPathToR + { + get { return PathToR; } + set + { + PathToR = value; + txtPathToR.Text = Path.Combine(PathToR, "R.exe"); + } + } + public enum buttonType { OK, Cancel }; + private buttonType RPathResult; + public buttonType getRPathResult + { + get { return RPathResult; } + } + + public frmInstallR() + { + InitializeComponent(); + } + + /// + /// Launches the R dialog to change an existing path to R + /// + public frmInstallR(bool changeRPath) + { + InitializeComponent(); + Text = "Set Path to R"; + } + + private void btnOK_Click(object sender, EventArgs e) + { + if (txtPathToR.Text != "") + { + RPathResult = buttonType.OK; + this.Close(); + } + else + MessageBox.Show("You must select a path before you can continue"); + } + + private void btnCancel_Click(object sender, EventArgs e) + { + RPathResult = buttonType.Cancel; + this.Close(); + } + + private void btnBrowse_Click(object sender, EventArgs e) + { + OpenFileDialog ofdGetPath = new OpenFileDialog(); + ofdGetPath.DefaultExt = "exe"; + ofdGetPath.FileName = "R.exe"; + ofdGetPath.Title = @"Find The Path to R.exe. Default Location: C:\Program Files\R\R-*version number*\bin"; + ofdGetPath.Filter = "R Executable(*.exe)|*.exe"; + ofdGetPath.ShowDialog(); + txtPathToR.Text = ofdGetPath.FileName; + PathToR = Path.GetDirectoryName(ofdGetPath.FileName); + } + + private void txtPathToR_TextChanged(object sender, EventArgs e) + { + if (File.Exists(txtPathToR.Text)) + PathToR = Path.GetDirectoryName(txtPathToR.Text); + } + + + + + + + + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Forms/frmInstallR.resx b/Source/Plugins/HydroDesktop.Plugins.HydroR/Forms/frmInstallR.resx new file mode 100644 index 00000000..a81b7569 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Forms/frmInstallR.resx @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + To Launch the R console HydroR needs to know +where the R executuble is located on your machine. +If you have not installed R go to the R website, http://www.r-project.org/. +You must Download and Install R before you can begin. + + + If you have R installed please enter the path to R.exe.The most likely + path to your R.exe is C:\Program Files\R\R-2.14.0\bin\i386\R.exe. +However, if you have installed R in a different location + you will need to find R.exe in the bin folder uner your R installation. +If you are running the most recent version of R the default path is +C:\Program Files\R\R-2.14.0\bin\i386\R.exe. + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroDesktop.Plugins.HydroR.csproj b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroDesktop.Plugins.HydroR.csproj new file mode 100644 index 00000000..085034bf --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroDesktop.Plugins.HydroR.csproj @@ -0,0 +1,252 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {C872275F-6717-43F1-BD8E-AF4AC077DB43} + Library + Properties + HydroDesktop.Plugins.HydroR + HydroDesktop.Plugins.HydroR + v4.0 + 512 + + + 3.5 + + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HydroR\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HydroR\HydroDesktop.Plugins.HydroR.XML + 1591 + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HydroR\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HydroR\ + DEBUG;TRACE + full + x86 + prompt + true + true + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HydroR\HydroDesktop.Plugins.HydroR.XML + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HydroR\ + TRACE + true + pdbonly + x86 + prompt + true + true + true + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + ..\..\..\Binaries\HydroDesktop.Configuration.dll + False + + + ..\..\..\Binaries\HydroDesktop.Interfaces.dll + False + + + + + 3.5 + + + 3.5 + + + + + 3.5 + + + + + + + + + Component + + + Component + + + REditor.cs + + + Form + + + frmInstallR.cs + + + + UserControl + + + cRCommandView.cs + + + + True + True + Resources.resx + + + True + True + Settings.settings + + + + + cRCommandView.cs + + + REditor.cs + + + frmInstallR.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + Always + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + + + + + + + + + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + {ceb869c6-ed48-4846-9040-4e82ab58b86b} + HydroDesktop.Data + False + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroDesktop.Plugins.HydroR.nuspec b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroDesktop.Plugins.HydroR.nuspec new file mode 100644 index 00000000..8fe5ae50 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroDesktop.Plugins.HydroR.nuspec @@ -0,0 +1,23 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroR.sln b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroR.sln new file mode 100644 index 00000000..d231492b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroR.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroR", "HydroR.csproj", "{C872275F-6717-43F1-BD8E-AF4AC077DB43}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C872275F-6717-43F1-BD8E-AF4AC077DB43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C872275F-6717-43F1-BD8E-AF4AC077DB43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C872275F-6717-43F1-BD8E-AF4AC077DB43}.Release|Any CPU.ActiveCfg = Release|x86 + {C872275F-6717-43F1-BD8E-AF4AC077DB43}.Release|Any CPU.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroRPlugin.cs b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroRPlugin.cs new file mode 100644 index 00000000..bd4bcde2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroRPlugin.cs @@ -0,0 +1,439 @@ +using System; +using System.ComponentModel.Composition; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Controls.Docking; +using DotSpatial.Controls.Header; +using HydroDesktop.Common; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Plugins.HydroR +{ + public class HydroRPlugin : Extension + { + #region Variables + + [Import("Shell")] + private ContainerControl Shell { get; set; } + + [Import("SeriesControl", typeof(ISeriesSelector))] + private ISeriesSelector _seriesSelector { get; set; } + + private const string _panelName = "HydroR"; + private const string kHydroR = "kHydroR"; + private readonly string _seriesViewKey = SharedConstants.SeriesViewKey; + + private RootItem _hydroRTab; + + private SimpleActionItem _btnR; + private SimpleActionItem _btnSettings; + + private cRCommandView _hydroRControl; + + #endregion + + #region IExtension Members + + /// + /// Fires when the plugin should become inactive + /// + public override void Deactivate() + { + App.HeaderControl.RemoveAll(); + + //App.DockManager.Remove(kHydroR); + + if (Shell is Form) + { + ((Form)Shell).FormClosing -= MainForm_FormClosing; + } + + base.Deactivate(); + } + + public override void Activate() + { + // todo: export Shell in MapWindow as Form to avoid type casting + if (Shell is Form) + { + ((Form)Shell).FormClosing += MainForm_FormClosing; + } + + // Add panel to the docking manager + if (_seriesSelector != null) + { + _hydroRControl = new cRCommandView(_seriesSelector); + + AddHydroRPanel(); + + AddHydroRRibbon(); + + + + //when the HydroR panel is selected - activate SeriesView and HydroR ribbon tab + App.DockManager.ActivePanelChanged += new EventHandler(DockManager_ActivePanelChanged); + + App.DockManager.SelectPanel(_seriesViewKey); + App.HeaderControl.SelectRoot(kHydroR); + + _hydroRControl.RChanged += new cRCommandView.REventHandler(_hydroRControl_RChanged); + + //when the HydroR root item is selected + App.HeaderControl.RootItemSelected += new EventHandler(HeaderControl_RootItemSelected); + } + + base.Activate(); + } + + void MainForm_FormClosing(object sender, FormClosingEventArgs e) + { + Properties.Settings.Default.PathToR = _hydroRControl.PathToR; + Properties.Settings.Default.Save(); + + _hydroRControl.closeR(); + } + + void HeaderControl_RootItemSelected(object sender, RootItemEventArgs e) + { + if (e.SelectedRootKey == kHydroR) + { + App.DockManager.SelectPanel(kHydroR); + } + } + + //Add a HydroR root item + void AddHydroRRibbon() + { + _hydroRTab = new RootItem(kHydroR, _panelName); + _hydroRTab.SortOrder = 60; + App.HeaderControl.Add(_hydroRTab); + + string rGroupCaption = _panelName + " Tools"; + string rScriptCaption = "Script"; + + _btnR = new SimpleActionItem(kHydroR, "Start R", _hydroRControl.btnR_Click); + _btnR.Key = "kBtnR"; + _btnR.LargeImage = Properties.Resources.Ricon; + _btnR.GroupCaption = rGroupCaption; + App.HeaderControl.Add(_btnR); + + var btnGenR = new SimpleActionItem(kHydroR, "Generate R Code", _hydroRControl.txtGenR_Click); + btnGenR.LargeImage = Properties.Resources.GenerateR; + btnGenR.GroupCaption = rGroupCaption; + App.HeaderControl.Add(btnGenR); + + var btnSendLine = new SimpleActionItem(kHydroR, "Send Line", _hydroRControl.btnSend_Click); + btnSendLine.LargeImage = Properties.Resources.SendLine; + btnSendLine.GroupCaption = rGroupCaption; + App.HeaderControl.Add(btnSendLine); + + var btnSendSel = new SimpleActionItem(kHydroR, "Send Selection", _hydroRControl.btnSendSel_Click); + btnSendSel.LargeImage = Properties.Resources.SendSelection; + btnSendSel.GroupCaption = rGroupCaption; + App.HeaderControl.Add(btnSendSel); + + var btnSendAll = new SimpleActionItem(kHydroR, "Send All", _hydroRControl.btnSendAll_Click); + btnSendAll.LargeImage = Properties.Resources.SendScript; + btnSendAll.GroupCaption = rGroupCaption; + App.HeaderControl.Add(btnSendAll); + + var btnOpen = new SimpleActionItem(kHydroR, "Open Script", _hydroRControl.btnOpen_Click); + btnOpen.LargeImage = Properties.Resources.OpenFile; + btnOpen.GroupCaption = rScriptCaption; + App.HeaderControl.Add(btnOpen); + + var btnSave = new SimpleActionItem(kHydroR, "Save Script", _hydroRControl.btnSave_Click); + btnSave.LargeImage = Properties.Resources.SaveFile; + btnSave.GroupCaption = rScriptCaption; + App.HeaderControl.Add(btnSave); + + _btnSettings = new SimpleActionItem(kHydroR, "Path to R", _hydroRControl.btnSettings_Click); + _btnSettings.LargeImage = Properties.Resources.RSettings_32; + _btnSettings.SmallImage = Properties.Resources.RSettings_16; + _btnSettings.GroupCaption = "Settings"; + App.HeaderControl.Add(_btnSettings); + } + + void AddHydroRPanel() + { + //HydroR dock panel should be preferentially added after "graph" + var dp = new DockablePanel(kHydroR, _panelName, _hydroRControl, DockStyle.Fill); + dp.DefaultSortOrder = 40; + App.DockManager.Add(dp); + } + + void _hydroRControl_RChanged(EventArgs e) + { + if (_hydroRControl.RIsRunning) + { + _btnR.Caption = "Close R"; + _btnSettings.Enabled = false; + } + else + { + _btnR.Caption = "Start R"; + _btnSettings.Enabled = true; + } + } + + //void DockManager_PanelAdded(object sender, DockablePanelEventArgs e) + //{ + // if (e.ActivePanelKey == "kMap") + // { + // //HydroR dock panel should be preferentially added after "map" + // AddHydroRPanel(); + // App.DockManager.SelectPanel("kMap"); + // } + //} + + void DockManager_ActivePanelChanged(object sender, DotSpatial.Controls.Docking.DockablePanelEventArgs e) + { + if (e.ActivePanelKey == kHydroR) + { + App.DockManager.SelectPanel(_seriesViewKey); + App.HeaderControl.SelectRoot(kHydroR); + } + } + + #endregion + } +} + + + + + + + + + + + + +/*using System.Windows.Forms; +using DotSpatial.Components; +using DotSpatial.Map; +using DotSpatial.Plugins; +using System; +using HydroDesktop.Data.Plugins; + +namespace HydroR +{ + [Plugin("HydroR", Author = "Utah State University", UniqueName = "HydroR_1", Version = "1.0")] + public class Main : Extension, IHydroPlugin + { + #region Variables + + //reference to the main application and it's UI items + private IHydroPluginArgs _mapArgs; + + string PageName = "HydroR"; + //the main tab control where map view, graph view and table view are displayed + private TabControl _mainTabControl = null; + + //the tab page which will be added to the tab control by the plugin + private TabPage _hydroRTabPage = null; + + private cRCommandView _hydroRControl = null; + + #endregion + + #region Ribbon Variables + private RibbonTab _ribbonTab; + private RibbonPanel _ribbonPanel; + + private string _panelName = "HydroR"; + + private ITabManager _t; + + private RibbonButton ribbonBnt; + + #endregion + + #region IPlugin Members + + /// + /// Initialize the mapWindow 6 plugin + /// + /// The plugin arguments to access the main application + + public void Initialize(IHydroPluginArgs args) + { + //set the reference to the MapWindow application + _mapArgs = args; + if (args.MainToolStrip != null) + { + _mainTabControl = FindMainTabControl(); + + //add some items to the newly created tab control + if (_mainTabControl != null) + { + _hydroRTabPage = new TabPage(PageName); + _mainTabControl.TabPages.Add(_hydroRTabPage); + + //add the cRCommandView control to the main tab page + _hydroRControl = new cRCommandView(_mapArgs); + _hydroRTabPage.Controls.Add(_hydroRControl); + _hydroRControl.Dock = DockStyle.Fill; + _mainTabControl.SelectedIndexChanged += new EventHandler(mainTabControl_SelectedIndexChanged); + } + } + + else//ribbon + { + _ribbonTab = new RibbonTab(args.Ribbon, _panelName); + args.Ribbon.Tabs.Add(_ribbonTab); + //args.Ribbon.Tabs[0].Panels[0].Items.Add(ribbonBnt); + _ribbonTab.ActiveChanged += new EventHandler(ribbonBnt_Click); + //this.Shown += new EventHandler(mainRibbonForm_Shown); + + _hydroRControl = new cRCommandView(_mapArgs); + + _ribbonPanel = new RibbonPanel(_panelName+" Tools"); + + _mapArgs.SeriesView.AddPanel(_panelName + " Tools", _hydroRControl); + _ribbonTab.Panels.Add(_ribbonPanel); + + ribbonBnt = new RibbonButton("Start R"); + ribbonBnt.Image =Properties.Resources.Ricon ; + //ribbonBnt.Click += new EventHandler(ribbonBnt_Click); + ribbonBnt.Click += new EventHandler(_hydroRControl.btnR_Click); + _ribbonPanel.Items.Add(ribbonBnt); + + + RibbonButton btnGenR = new RibbonButton("Generate R Code"); + btnGenR.Image = Properties.Resources.GenerateR; + btnGenR.Click += new EventHandler(_hydroRControl.txtGenR_Click); + _ribbonPanel.Items.Add(btnGenR); + + RibbonButton btnSendLine = new RibbonButton("Send Line"); + btnSendLine.Image = Properties.Resources.SendLine; + btnSendLine.Click += new EventHandler(_hydroRControl.btnSend_Click); + _ribbonPanel.Items.Add(btnSendLine); + + RibbonButton btnSendSel = new RibbonButton("Send Selection"); + btnSendSel.Image = Properties.Resources.SendSelection; + btnSendSel.Click += new EventHandler(_hydroRControl.btnSendSel_Click); + _ribbonPanel.Items.Add(btnSendSel); + + RibbonButton btnSendAll = new RibbonButton("Send All"); + btnSendAll.Image = Properties.Resources.SendScript; + btnSendAll.Click += new EventHandler(_hydroRControl.btnSendAll_Click); + _ribbonPanel.Items.Add(btnSendAll); + + RibbonPanel pnlScript = new RibbonPanel("Script"); + _ribbonTab.Panels.Add(pnlScript); + + RibbonButton btnOpen = new RibbonButton("Open Script"); + btnOpen.Image = Properties.Resources.OpenFile; + btnOpen.Click += new EventHandler(_hydroRControl.btnOpen_Click); + pnlScript.Items.Add(btnOpen); + + RibbonButton btnSave = new RibbonButton("Save Script"); + btnSave.Image = Properties.Resources.SaveFile; + btnSave.Click += new EventHandler(_hydroRControl.btnSave_Click); + pnlScript.Items.Add(btnSave); + + _t = _mapArgs.PanelManager; + + //// Clear all tabpages + //for (int i = 0; i < t.TabCount; i++) + //{ + // t.RemoveTabAt(0); + //} + // Add the 'Added by plugin' tab control + + _t.AddTab(_panelName, _hydroRControl); + _t.SelectedIndexChanged += new EventHandler(t_SelectedIndexChanged); + } + + } + + private TabControl FindMainTabControl() + { + ToolStripContentPanel mainContentPanel = _mapArgs.ToolStripContainer.ContentPanel; + + foreach (Control control in mainContentPanel.Controls) + { + if (control is TabControl) + { + return control as TabControl; + } + } + return null; + } + #endregion + + #region Event Handlers + //when the shown tab page is changed (Ribbon version) + void t_SelectedIndexChanged(object sender, EventArgs e) + { + if (_t.SelectedTabName == _panelName) + { + _hydroRControl.RefreshView(); + } + } + void mainTabControl_SelectedIndexChanged(object sender, EventArgs e) + { + if (_mainTabControl.SelectedTab == _hydroRTabPage) + { + _hydroRControl.RefreshView(); + } + } + + + protected override void OnActivate() + { + base.OnActivate(); + _hydroRControl.RChanged += new cRCommandView.REventHandler(helloWorld); + //this.ParentForm.FormClosing += new FormClosingEventHandler(ParentForm_FormClosing); + //this.ParentForm.ResizeEnd += new EventHandler(pnlR_Resized); + } + private void helloWorld(EventArgs e) + { + if (_hydroRControl.RIsRunning) + ribbonBnt.Text = "Close R"; + else + ribbonBnt.Text = "Start R"; + + } + + /// + /// Fires when the plugin should become inactive + /// + protected override void OnDeactivate() + { + if (_mapArgs.MainToolStrip != null) + { + + if (_mainTabControl != null && _hydroRTabPage != null) + { + _mainTabControl.TabPages.Remove(_hydroRTabPage); + _mainTabControl.SelectedIndexChanged -= mainTabControl_SelectedIndexChanged; + } + } + else + { + _mapArgs.Ribbon.Tabs.Remove(_ribbonTab); + _mapArgs.Ribbon.Tabs[0].Panels[0].Items.Remove(ribbonBnt); + if (_t.Contains(_panelName)) + _t.RemoveTab(_panelName); + } + // This line ensures that "Enabled" is set to false. + base.OnDeactivate(); + } + void ribbonBnt_Click(object sender, EventArgs e) + { + //if (_t.TabCount > 0) + // { + if(_ribbonTab.Active){ + _t.SelectedTabName = _panelName; + _hydroRControl.RefreshView(); + } + + } + } + #endregion + +} +*/ \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroR_1.0.tar.gz b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroR_1.0.tar.gz new file mode 100644 index 00000000..848e3f7b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroR_1.0.tar.gz differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroR_1.1.tar.gz b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroR_1.1.tar.gz new file mode 100644 index 00000000..1b850078 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroR_1.1.tar.gz differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroR_1.2.tar.gz b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroR_1.2.tar.gz new file mode 100644 index 00000000..ce6adbcd Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroR_1.2.tar.gz differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroR_1.3.tar.gz b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroR_1.3.tar.gz new file mode 100644 index 00000000..6dd579d7 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/HydroR_1.3.tar.gz differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/GenerateR.png b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/GenerateR.png new file mode 100644 index 00000000..0eec436f Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/GenerateR.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/OpenFile.png b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/OpenFile.png new file mode 100644 index 00000000..421c59a3 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/OpenFile.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/RSettings_16.png b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/RSettings_16.png new file mode 100644 index 00000000..771533ed Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/RSettings_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/RSettings_32.png b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/RSettings_32.png new file mode 100644 index 00000000..4bca92d3 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/RSettings_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/RSymbol.PNG b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/RSymbol.PNG new file mode 100644 index 00000000..12e1c558 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/RSymbol.PNG differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/Ricon.png b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/Ricon.png new file mode 100644 index 00000000..3979f996 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/Ricon.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/SaveFile.png b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/SaveFile.png new file mode 100644 index 00000000..b0e593d3 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/SaveFile.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/SendLine.png b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/SendLine.png new file mode 100644 index 00000000..487c8444 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/SendLine.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/SendScript.png b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/SendScript.png new file mode 100644 index 00000000..24eadfd7 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/SendScript.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/SendSelection.png b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/SendSelection.png new file mode 100644 index 00000000..5e0887bc Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/SendSelection.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/selectLineSmall.png b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/selectLineSmall.png new file mode 100644 index 00000000..162a9b16 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/selectLineSmall.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/sendAllSmall.png b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/sendAllSmall.png new file mode 100644 index 00000000..4d20a2d4 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/sendAllSmall.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/sendSelectedSmall.png b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/sendSelectedSmall.png new file mode 100644 index 00000000..6bc251e2 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/Icons/sendSelectedSmall.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..85462f9f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HHydroDesktop.Plugins.HydroR")] +[assembly: AssemblyDescription("HydroDesktop HydroR Plugin")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Utah State University")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.HydroR")] +[assembly: AssemblyCopyright("Copyright © CUAHSI 2009-2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7629cbfe-be16-448a-a224-6f538cb026d3")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/Resources.Designer.cs new file mode 100644 index 00000000..77f9ac7a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/Resources.Designer.cs @@ -0,0 +1,162 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.HydroR.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.HydroR.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap GenerateR { + get { + object obj = ResourceManager.GetObject("GenerateR", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap OpenFile { + get { + object obj = ResourceManager.GetObject("OpenFile", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to . + /// + internal static string PathToR { + get { + return ResourceManager.GetString("PathToR", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Ricon { + get { + object obj = ResourceManager.GetObject("Ricon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap RSettings_16 { + get { + object obj = ResourceManager.GetObject("RSettings_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap RSettings_32 { + get { + object obj = ResourceManager.GetObject("RSettings_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap SaveFile { + get { + object obj = ResourceManager.GetObject("SaveFile", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap SendLine { + get { + object obj = ResourceManager.GetObject("SendLine", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap SendScript { + get { + object obj = ResourceManager.GetObject("SendScript", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap SendSelection { + get { + object obj = ResourceManager.GetObject("SendSelection", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/Resources.resx new file mode 100644 index 00000000..f2374d50 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/Resources.resx @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + + + ..\Icons\Ricon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Icons\GenerateR.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Icons\OpenFile.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Icons\SaveFile.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Icons\SendLine.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Icons\SendScript.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Icons\SendSelection.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Icons\RSettings_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Icons\RSettings_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/Settings.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/Settings.Designer.cs new file mode 100644 index 00000000..2aded6e6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/Settings.Designer.cs @@ -0,0 +1,50 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.HydroR.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.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; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string PathToR { + get { + return ((string)(this["PathToR"])); + } + set { + this["PathToR"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool findPathToR { + get { + return ((bool)(this["findPathToR"])); + } + set { + this["findPathToR"] = value; + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/Settings.settings b/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/Settings.settings new file mode 100644 index 00000000..7662164d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/Settings.settings @@ -0,0 +1,12 @@ + + + + + + + + + False + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/app.config b/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/app.config new file mode 100644 index 00000000..8629e766 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/Properties/app.config @@ -0,0 +1,18 @@ + + + + +
    + + + + + + + + + False + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroDesktopPlugin.r b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroDesktopPlugin.r new file mode 100644 index 00000000..ec3675c2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroDesktopPlugin.r @@ -0,0 +1,395 @@ +getDataSeries<-function(connectionString, seriesID, SQLite= TRUE, startDate="1900-01-01", endDate="2050-12-31") +{ + if(SQLite==TRUE) + { + driver<-dbDriver("SQLite") + con<- dbConnect(driver, dbname=connectionString) + dbBeginTransaction(con) + dValues<-getDataValues(con, seriesID, SQLite ,startDate, endDate) + dSeries<- dbGetQuery(con, paste("SELECT * FROM DataSeries WHERE SeriesID = " ,seriesID, sep="" )) + #format(dSeries$LocalDateTime, format= "%Y-%m-%d %H:%M:%S", usetz= FALSE) + #dSeries$BeginDateTime<-as.Date(dSeries$BeginDateTime, "%Y-%m-%d %H:%M:%S") + dSeries$BeginDateTime<-strptime(dSeries$BeginDateTime, format= "%Y-%m-%d %H:%M:%S") + dSeries$BeginDateTimeUTC<-strptime(dSeries$BeginDateTimeUTC, format= "%Y-%m-%d %H:%M:%S") + dSeries$EndDateTime<-strptime(dSeries$EndDateTime, format= "%Y-%m-%d %H:%M:%S") + dSeries$EndDateTimeUTC<-strptime(dSeries$EndDateTimeUTC, format= "%Y-%m-%d %H:%M:%S") + dSeries$CreationDateTime<-strptime(dSeries$CreationDateTime, format= "%Y-%m-%d %H:%M:%S") + dSeries$UpdateDateTime<-strptime(dSeries$UpdateDateTime, format= "%Y-%m-%d %H:%M:%S") + dSeries$LastcheckedDateTime<-strptime(dSeries$LastcheckedDateTime, format= "%Y-%m-%d %H:%M:%S") + variableData<-dbGetQuery(con, paste("SELECT * FROM Variables WHERE VariableID=", dSeries$VariableID)) + siteData<-dbGetQuery(con, paste("SELECT * FROM Sites WHERE SiteID=", dSeries$SiteID)) + variableUnits<-dbGetQuery(con, paste("SELECT * FROM Units WHERE UnitsID=", variableData$VariableUnitsID)) + timeUnits<-dbGetQuery(con, paste("SELECT * FROM Units WHERE UnitsID=", variableData$TimeUnitsID )) + methodData<-dbGetQuery(con, paste("SELECT * FROM Methods WHERE MethodID=", dSeries$MethodID)) + sourceData<-dbGetQuery(con, paste("SELECT * FROM Sources WHERE SourceID=", dSeries$SourceID)) + qualityControl<-dbGetQuery(con, paste("SELECT * FROM QualityControlLevels WHERE QualityControlLevelID=", dSeries$QualityControlLevelID)) + dbCommit(con) + dbDisconnect(con) + } + list(DataValues=dValues, DataSeries=dSeries, Site=siteData, Variable=variableData, Method=methodData, Source=sourceData, VariableUnits=variableUnits, TimeUnits=timeUnits, QualityControlLevel=qualityControl) +} +getDataValues<-function(con, seriesID, SQLite ,startDate, endDate) +{ + dataFrame<-dbGetQuery(con, paste("SELECT * FROM DataValues WHERE SeriesID = " ,seriesID, " AND LocalDateTime BETWEEN '", startDate,"' AND '", endDate,"'", sep="" )) + #dataFrame$LocalDateTime<-as.Date(dataFrame$LocalDateTime, "%Y-%m-%d %H:%M:%S") + #format(dSeries$LocalDateTime, format= "%Y-%m-%d %H:%M:%S", usetz= FALSE) + dataFrame$LocalDateTime<-strptime(dataFrame$LocalDateTime, format= "%Y-%m-%d %H:%M:%S") + dataFrame$DateTimeUTC<-strptime(dataFrame$DateTimeUTC, format= "%Y-%m-%d %H:%M:%S") + dataFrame +} + +createDataSeries<-function(connectionString, SQLite= TRUE) +{ + if(SQLite==TRUE) + { + driver<-dbDriver("SQLite") + con<- dbConnect(driver, dbname=connectionString) + dbBeginTransaction(con) + dValues<-createDataValues(con, SQLite) + dSeries<- dbGetQuery(con, "SELECT * FROM DataSeries WHERE SeriesID = -99999999") + #dSeries$BeginDateTime<-strptime(dSeries$BeginDateTime, format= "%Y-%m-%d %H:%M:%S") + #dSeries$BeginDateTimeUTC<-strptime(dSeries$BeginDateTimeUTC, format= "%Y-%m-%d %H:%M:%S") + #dSeries$EndDateTime<-strptime(dSeries$EndDateTime, format= "%Y-%m-%d %H:%M:%S") + #dSeries$EndDateTimeUTC<-strptime(dSeries$EndDateTimeUTC, format= "%Y-%m-%d %H:%M:%S") + #dSeries$CreationDateTime<-strptime(dSeries$CreationDateTime, format= "%Y-%m-%d %H:%M:%S") + #dSeries$UpdateDateTime<-strptime(dSeries$UpdateDateTime, format= "%Y-%m-%d %H:%M:%S") + #dSeries$LastcheckedDateTime<-strptime(dSeries$LastCheckedDateTime, format= "%Y-%m-%d %H:%M:%S") + + variableData<-dbGetQuery(con, "SELECT * FROM Variables WHERE VariableID=-99999999") + siteData<-dbGetQuery(con, "SELECT * FROM Sites WHERE SiteID=-99999999") + variableUnits<-dbGetQuery(con, "SELECT * FROM Units WHERE UnitsID=-99999999") + timeUnits<-dbGetQuery(con, "SELECT * FROM Units WHERE UnitsID=-99999999") + methodData<-dbGetQuery(con, "SELECT * FROM Methods WHERE MethodID=-99999999") + sourceData<-dbGetQuery(con, "SELECT * FROM Sources WHERE SourceID=-99999999") + qualityControl<-dbGetQuery(con, "SELECT * FROM QualityControlLevels WHERE QualityControlLevelID=-99999999") + dbCommit(con) + dbDisconnect(con) + } + list(DataValues=dValues, DataSeries=dSeries, Site=siteData, Variable=variableData, Method=methodData, Sources=sourceData, VariableUnits=variableUnits, TimeUnits=timeUnits, QualityControlLevel=qualityControl) +} + +createDataValues<-function(con, SQLite) +{ + if(SQLite==TRUE) + { + dataFrame<-dbGetQuery(con, paste("SELECT * FROM DataValues WHERE SeriesID = -99999999 AND LocalDateTime BETWEEN '1800-01-01' AND '1800-01-01'", sep="" )) + dataFrame$LocalDateTime<-strptime(dataFrame$LocalDateTime, format= "%Y-%m-%d %H:%M:%S") + dataFrame$DateTimeUTC<-strptime(dataFrame$DateTimeUTC, format= "%Y-%m-%d %H:%M:%S") + } + dataFrame +} + +getDataWithSQL<-function(connectionString, SQLString, SQLite = TRUE) +{ + if(SQLite==TRUE) + { + driver<-dbDriver("SQLite") + con <- dbConnect(driver, dbname=connectionString) + return(dbGetQuery(con, SQLString)) + } +} + +plotDataSeries<-function(datavals, ylabel, ...) +{ + plot(datavals$DataValues$LocalDateTime, datavals$DataValues$DataValue, xlab="Date", ylab=ylabel, ...) +} + +saveDataSeries<-function(connectionString, newSeries, SQLite = TRUE, overwrite= TRUE) +{ + if(SQLite==TRUE) + { + driver<-dbDriver("SQLite") + con<- dbConnect(driver, dbname=connectionString) + dbBeginTransaction(con) + + siteID<-getSiteID(con, newSeries$Site, overwrite) + vunitsID<-getUnitsID(con, newSeries$VariableUnits,overwrite) + tunitsID<-getUnitsID(con, newSeries$TimeUnits,overwrite) + variableID<-getVariableID(con, newSeries$Variable, overwrite) + methodID<-getMethodID(con, newSeries$Method, overwrite) + sourceID<-getSourceID(con, newSeries$Source, overwrite) + qclID<-getQualityControlLevelID(con, newSeries$QualityControlLevel, overwrite) + + SeriesID<-getSeriesID(con, list(site=siteID, variable=variableID, method=methodID, qcl=qclID, sources=sourceID), newSeries$DataSeries, newSeries$DataValues , overwrite) + + + ser<-newSeries$DataValues + for(i in 1:length(newSeries$DataValues$DataValue)) + { + if(is.null(ser$DataValue[i])|| is.null(ser$LocalDateTime[i])|| is.null(ser$UTCOffset[i])|| is.null(ser$CensorCode[i])||is.null(ser$DateTimeUTC[i])|| !nchar(ser$DataValue[i])|| !nchar(ser$LocalDateTime[i])|| !nchar(ser$UTCOffset[i])|| !nchar(ser$CensorCode[i])|| !nchar(ser$DateTimeUTC[i])) + { + dbDisconnect(con) + stop(paste("All of the Mandatory Values information was not filled out for row #", i, sep= "")) + } + else + { + if(overwrite==FALSE) + { + #print( paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",dbFormat(ser$ValueAccuracy[i]),", '", format(ser$LocalDateTime[i],"%Y-%m-%d %H:%M:%S"),"', ",dbFormat(ser$UTCOffset[i]),", '",format(ser$DateTimeUTC[i],"%Y-%m-%d %H:%M:%S"),"', ", dbFormat(ser$OffsetValue[i]),", ", dbFormat(ser$OffsetTypeID[i]),", ", dbFormat(ser$CensorCode[i]),", ", dbFormat(ser$QualifierID[i]),", ", dbFormat(ser$SampleID[i]),", ", dbFormat(ser$FileID[i]), ")", sep="")) + dbGetQuery(con,paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",dbFormat(ser$ValueAccuracy[i]),", '",ser$LocalDateTime[i],"', ",dbFormat(ser$UTCOffset[i]),", '",ser$DateTimeUTC[i],"', ", dbFormat(ser$OffsetValue[i]),", ", dbFormat(ser$OffsetTypeID[i]),", ", dbFormat(ser$CensorCode[i]),", ", dbFormat(ser$QualifierID[i]),", ", dbFormat(ser$SampleID[i]),", ", dbFormat(ser$FileID[i]), ")", sep="")) + } + else + { + count<-dbGetQuery(con, paste("SELECT COUNT(DataValue) FROM DataValues WHERE SeriesID=",SeriesID, " AND LocalDateTime = '", newSeries$DataValues$LocalDateTime[i],"'", sep="")) + if (count==0) + { + #print(paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",dbFormat(SeriesID),", ", dbFormat(ser$DataValue[i]),", ", dbFormat(ser$ValueAccuracy[i]),", '", format(ser$LocalDateTime[i],"%Y-%m-%d %H:%M:%S"),"', ",dbFormat(ser$UTCOffset[i]),", '",format(ser$DateTimeUTC[i],"%Y-%m-%d %H:%M:%S"),"', ", dbFormat(ser$OffsetValue[i]),", '", dbFormat(ser$OffsetTypeID[i]),"', '", dbFormat(ser$CensorCode[i]),"', '", dbFormat(ser$QualifierID[i]),"', '", dbFormat(ser$SampleID[i]),"', '", dbFormat(ser$FileID[i]), "')", sep="")) + dbGetQuery(con,paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",dbFormat(SeriesID),", ", dbFormat(ser$DataValue[i]),", ", dbFormat(ser$ValueAccuracy[i]),", '", ser$LocalDateTime[i],"', ",dbFormat(ser$UTCOffset[i]),", '",ser$DateTimeUTC[i],"', ", dbFormat(ser$OffsetValue[i]),", '", dbFormat(ser$OffsetTypeID[i]),"', '", dbFormat(ser$CensorCode[i]),"', '", dbFormat(ser$QualifierID[i]),"', '", dbFormat(ser$SampleID[i]),"', '", dbFormat(ser$FileID[i]), "')", sep="")) + } + else + { + #print(paste("UPDATE DataValues SET DataValue=", newSeries$DataValues$DataValue[i], " WHERE SeriesID=",SeriesID, " AND LocalDateTime ='", format(newSeries$DataValues$LocalDateTime[i],"%Y-%m-%d %H:%M:%S"),"'", sep="")) + dbGetQuery(con, paste("UPDATE DataValues SET DataValue=", newSeries$DataValues$DataValue[i], " WHERE SeriesID=",SeriesID, " AND LocalDateTime ='", newSeries$DataValues$LocalDateTime[i],"'", sep="")) + } + } + } + } + dbCommit(con) + dbDisconnect(con) + } + + getDataSeries(connectionString, SeriesID, SQLite, startDate=min(as.character(newSeries$DataValues$LocalDateTime)), endDate=max(as.character(newSeries$DataValues$LocalDateTime))) +} + +dbFormat<-function(val){ + if(is.null(val)|| val== ''|| is.na(val)) + { + "NULL" + } + else + { + if(is.character(val)) + { + paste("'", val,"'", sep="") + } + else + { + val + } + } +} + + + +getNextValueID<-function(con){ + dbGetQuery(con, paste("SELECT MAX(ValueID) FROM DataValues"))+1 +} + +getNextSeriesID<-function(con){ + dbGetQuery(con, paste("SELECT MAX(SeriesID) FROM DataSeries"))+1 +} + +getSeriesID<-function(con, S, Series, Values, overwrite){ + if(overwrite==TRUE ) + { + seriesID<-dbGetQuery(con, paste("SELECT SeriesID FROM DataSeries WHERE SiteID=",Series$SiteID, " AND VariableID=", Series$VariableID, " AND MethodID=",Series$MethodID," AND QualityControlLevelID=",Series$QualityControlLevelID ," AND SourceID=",Series$SourceID, sep="" )) + dbGetQuery(con, paste("UPDATE DataSeries SET UpdateDateTime= '", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"), "', ValueCount=", nrow(Values),", BeginDateTime='",min(Values$LocalDateTime),"', EndDateTime='",max(Values$LocalDateTime),"', BeginDateTimeUTC='",min(Values$DateTimeUTC),"',EndDateTimeUTC='",max(Values$DateTimeUTC),"' WHERE SeriesID=", seriesID, sep="" )) + } + else{ + #print(paste("SELECT SeriesID FROM DataSeries WHERE SiteID=",S$site, " AND VariableID=", S$variable, " AND MethodID=",S$method," AND QualityControlLevelID=",S$qcl," AND SourceID=",S$sources, sep="" )) + seriesID<-dbGetQuery(con, paste("SELECT SeriesID FROM DataSeries WHERE SiteID=",S$site, " AND VariableID=", S$variable, " AND MethodID=",S$method," AND QualityControlLevelID=",S$qcl," AND SourceID=",S$sources, sep="" )) + if(is.null(S$site)|| is.null(S$variable)|| is.null(S$method)|| is.null(S$qcl)|| is.null(S$sources)|| !nchar(S$site)|| !nchar(S$variable)|| !nchar(S$method)|| !nchar(S$qcl) || !nchar(S$sources)) + { + dbDisconnect(con) + #tkmessageBox(message="All of the Mandatory Series information was not filled out, the Series data will not be written to the database",icon="error",type="ok") + stop("All of the Mandatory Series information was not filled out") + + #print(paste(S$site, S$variable, S$method, S$qcl, S$source,nchar(S$site), nchar(S$variable),nchar(S$method),nchar(S$qcl) ,nchar(S$sources), sep=", ")) + } + else + { + #if(S$site==Series$SiteID && S$variable==Series$VariableID && S$method==Series$MethodID && S$sources==Series$SourceID && S$qcl==Series$QualityControlLevelID ) + #{ + # tkmessageBox(message="You have Not edited your Metadata but have set overwrite==FALSE. You may end up with duplicate entries in your database.",icon="error",type="ok") + #} + #else + #{ + + Values$LocalDateTime<-as.character(Values$LocalDateTime) + Values$DateTimeUTC<-as.character(Values$DateTimeUTC) + if(nrow(seriesID)==0) + { + # print(paste("INSERT INTO DataSeries VALUES(",getNextSeriesID(con),", ",dbFormat(S$site),", ", dbFormat(S$variable),", ", dbFormat(Series$IsCategorical),", ", dbFormat(S$method),", ", dbFormat(S$sources),", ", dbFormat(S$qcl),", '", format(min(Values$LocalDateTime),"%Y-%m-%d %H:%M:%S"),"', '", format(max(Values$LocalDateTime),"%Y-%m-%d %H:%M:%S"),"', '", format(min(Values$DateTimeUTC),"%Y-%m-%d %H:%M:%S"),"', '", format(max(Values$DateTimeUTC),"%Y-%m-%d %H:%M:%S"),"', ", dbFormat(nrow(Values)),", '", format(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', ", dbFormat(Series$Subscribed),", '", format(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', '", format(Sys.time(),"%Y-%m-%d %H:%M:%S"),"')",sep="")) + dbGetQuery(con,paste("INSERT INTO DataSeries VALUES(",getNextSeriesID(con),", ",dbFormat(S$site),", ", dbFormat(S$variable),", ",dbFormat(Series$IsCategorical),", ", dbFormat(S$method),", ", dbFormat(S$sources),", ", dbFormat(S$qcl),", '", min(Values$LocalDateTime),"', '", max(Values$LocalDateTime),"', '", min(Values$DateTimeUTC),"', '", max(Values$DateTimeUTC),"', ", dbFormat(nrow(Values)),", '", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', ", dbFormat(Series$Subscribed),", '", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', '", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"),"')",sep="")) + } + else + { + query= paste("UPDATE DataSeries SET BeginDateTime='", min(Values$LocalDateTime),"', EndDateTime='", max(Values$LocalDateTime),"', BeginDateTimeUTC='", min(Values$DateTimeUTC),"', EndDateTimeUTC='", max(Values$DateTimeUTC),"', ValueCount=", dbFormat(nrow(Values)),", UpdateDateTime='", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', LastCheckedDateTime= '", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"),"' where SeriesID = " ,seriesID ,sep="") + dbGetQuery(con,paste("UPDATE DataSeries SET BeginDateTime='", min(Values$LocalDateTime),"', EndDateTime='", max(Values$LocalDateTime),"', BeginDateTimeUTC='", min(Values$DateTimeUTC),"', EndDateTimeUTC='", max(Values$DateTimeUTC),"', ValueCount=", dbFormat(nrow(Values)),", UpdateDateTime='", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', LastCheckedDateTime= '", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"),"' where SeriesID = " ,seriesID ,sep="")) + + } + #} + #print(paste("SELECT SeriesID FROM DataSeries WHERE SiteID=",S$site, " AND VariableID=", S$variable, " AND MethodID=",S$method," AND QualityControlLevelID=",S$qcl," AND SourceID=",S$sources, sep="" )) + seriesID<-dbGetQuery(con, paste("SELECT SeriesID FROM DataSeries WHERE SiteID=",S$site, " AND VariableID=", S$variable, " AND MethodID=",S$method," AND QualityControlLevelID=",S$qcl," AND SourceID=",S$sources, sep="" )) + } + } + seriesID +} + +getSiteID<-function(con, Site, overwrite){ +#Mandatory: siteID, siteCode, siteName, Latitude, longitude, LatLongDatumID + #print(paste("SELECT SiteID FROM Sites WHERE SiteCode='",Site$SiteCode, "' AND SiteName='", Site$SiteName, "'", sep="" )) + siteID<-dbGetQuery(con, paste("SELECT SiteID FROM Sites WHERE SiteCode='",Site$SiteCode, "'AND SiteName='", Site$SiteName, "'", sep="" )) + if(nrow(siteID)==0) + { + if(overwrite==TRUE){ + #print("You have edited your site information but have set overwrite==TRUE so the data is not being written to the database. Overwrite=TRUE means you want to change the datavalues but keep the rest of the data the same") + tkmessageBox(message="You have edited your site information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if(is.null(Site$SiteCode)|| is.null(Site$SiteName)|| is.null(Site$Latitude)|| is.null(Site$Longitude)|| is.null(Site$LatLongDatumID)|| !nchar(Site$SiteCode)|| !nchar(Site$SiteName)|| !nchar(Site$Latitude)|| !nchar(Site$Longitude) || !nchar(Site$LatLongDatumID)) + { + #print(paste(Site$SiteCode, Site$SiteName, Site$Latitude, Site$Longitude, Site$LatLongDatumID,nchar(Site$SiteCode), nchar(Site$SiteName),nchar(Site$Latitude),nchar(Site$Longitude) ,nchar(Site$LatLongDatumID), sep=", ")) + #tkmessageBox(message="All of the Mandatory site information was not filled out, the Site data will not be written to the database",icon="error",type="ok") + dbDisconnect(con) + stop("All of the Mandatory Site information was not filled out") + } + else + { + #print(paste("INSERT INValueO Sites VALUES(",dbGetQuery(con, paste("SELECT MAX(SiteID) FROM Sites"))+1,", ", dbFormat(Site$SiteCode),", ", dbFormat(Site$SiteName),", ", dbFormat(Site$Latitude),", ", dbFormat(Site$Longitude),", ",dbFormat(Site$LatLongDatumID),", ", dbFormat(Site$Elevation_m),", ", dbFormat(Site$VerticalDatum),", ", dbFormat(Site$LocalX),", ", dbFormat(Site$LocalY),", ",dbFormat(Site$LocalProjectionID),", ", dbFormat(Site$PosAccuracy_m),", ", dbFormat(Site$State),", ", dbFormat(Site$County),", ", dbFormat(Site$Comments) , ")", sep = "")) + dbGetQuery(con, paste("INSERT INTO Sites VALUES(",dbGetQuery(con, paste("SELECT MAX(SiteID) FROM Sites"))+1,", ", dbFormat(Site$SiteCode),", ", dbFormat(Site$SiteName),", ", dbFormat(Site$Latitude),", ", dbFormat(Site$Longitude),", ",dbFormat(Site$LatLongDatumID),", ", dbFormat(Site$Elevation_m),", ", dbFormat(Site$VerticalDatum),", ", dbFormat(Site$LocalX),", ", dbFormat(Site$LocalY),", ",dbFormat(Site$LocalProjectionID),", ", dbFormat(Site$PosAccuracy_m),", ", dbFormat(Site$State),", ", dbFormat(Site$County),", ", dbFormat(Site$Comments) , ")", sep = "")) + siteID<-dbGetQuery(con, paste("SELECT SiteID FROM Sites WHERE SiteCode='",Site$SiteCode, "'AND SiteName='", Site$SiteName, "'", sep="" )) + + } + } + } + siteID +} + +getVariableID<-function(con, Variable, overwrite){ +#Mandatory: VariableID, VariableCode, VariableName, Speciation, VariableUnitsID, SampleMedium, ValueType, IsRegular, TimeSupport, TimeUnitsID, DataType, GeneralCategory, NoDataValue + #print(paste("SELECT VariableID FROM Variables WHERE VariableCode='", Variable$VariableCode, "' AND VariableName='",Variable$VariableName,"' AND VariableUnitsID=",Variable$VariableUnitsID, sep="")) + variableID<-dbGetQuery(con, paste("SELECT VariableID FROM Variables WHERE VariableCode='", Variable$VariableCode, "' AND VariableName='",Variable$VariableName,"' AND VariableUnitsID=",Variable$VariableUnitsID, sep="")) + if(nrow(variableID)==0){ + if(overwrite==TRUE){ + tkmessageBox(message="You have edited your variable information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if( is.null(Variable$VariableCode)|| !nchar(Variable$VariableCode)|| is.null(Variable$VariableName)|| !nchar(Variable$VariableName)|| is.null(Variable$Speciation)|| !nchar(Variable$Speciation)|| is.null(Variable$VariableUnitsID)|| !nchar(Variable$VariableUnitsID)|| is.null(Variable$SampleMedium)|| !nchar(Variable$SampleMedium)|| is.null(Variable$ValueType)|| !nchar(Variable$ValueType)|| is.null(Variable$IsRegular)|| !nchar(Variable$IsRegular)|| is.null(Variable$TimeSupport)|| !nchar(Variable$TimeSupport)|| is.null(Variable$TimeUnitsID)|| !nchar(Variable$TimeUnitsID)|| is.null(Variable$DataType)|| !nchar(Variable$DataType)|| is.null(Variable$GeneralCategory)|| !nchar(Variable$GeneralCategory)|| is.null(Variable$NoDataValue)|| !nchar(Variable$NoDataValue)) + { + #tkmessageBox(message="All of the Mandatory Variable information was not filled out, the Variable data will not be written to the database",icon="error",type="ok") + dbDisconnect(con) + stop("All of the Mandatory Variable information was not filled out") + } + else + { + #print(paste("INSERT INTO Variables VALUES(",dbGetQuery(con, paste("SELECT MAX(VariableID) FROM Variables"))+1,", ", dbFormat(Variable$VariableCode),", ", dbFormat(Variable$VariableName),", ", dbFormat(Variable$Speciation),", ", dbFormat(Variable$VariableUnitsID),", ",dbFormat(Variable$SampleMedium),", ", dbFormat(Variable$ValueType),", ", dbFormat(Variable$IsRegular),", ", dbFormat(Variable$IsCategorical),", ", dbFormat(Variable$TimeSupport),", ", dbFormat(Variable$TimeUnitsID),", ", dbFormat(Variable$DataType),", ", dbFormat(Variable$GeneralCategory),", ", dbFormat(Variable$NoDataValue),", ", dbFormat(Variable$ConceptID) , ")", sep = "")) + dbGetQuery(con, paste("INSERT INTO Variables VALUES(",dbGetQuery(con, paste("SELECT MAX(VariableID) FROM Variables"))+1,", ", dbFormat(Variable$VariableCode),", ", + dbFormat(Variable$VariableName),", ", dbFormat(Variable$Speciation),", ", dbFormat(Variable$VariableUnitsID),", ",dbFormat(Variable$SampleMedium),", ", dbFormat(Variable$ValueType),", ", + dbFormat(Variable$IsRegular),", ", dbFormat(Variable$IsCategorical),", ", dbFormat(Variable$TimeSupport),", ", dbFormat(Variable$TimeUnitsID),", ", dbFormat(Variable$DataType),", ", + dbFormat(Variable$GeneralCategory),", ", dbFormat(Variable$NoDataValue),", ", dbFormat(Variable$ConceptID) , ")", sep = "")) + variableID<-dbGetQuery(con, paste("SELECT VariableID FROM Variables WHERE VariableCode='", Variable$VariableCode, "' AND VariableName='",Variable$VariableName,"' AND VariableUnitsID=",Variable$VariableUnitsID, sep="")) + + } + } + } + variableID +} + +getMethodID<-function(con, Method, overwrite){ +#Mandatory: MethodID, MethodDescription + #print(paste("SELECT MethodID FROM Methods WHERE MethodLink='", Method$MethodLink, "' AND MethodDescription='",Method$MethodDescription, "'", sep="")) + methodID<-dbGetQuery(con, paste("SELECT MethodID FROM Methods WHERE MethodLink='", Method$MethodLink, "' AND MethodDescription='",Method$MethodDescription, "'", sep="")) + if(nrow(methodID)==0){ + if(overwrite==TRUE){ + tkmessageBox(message="You have edited your method information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if(is.null(Method$MethodDescription)|| !nchar(Method$MethodDescription)||is.null(Method$MethodLink)|| !nchar(Method$MethodLink)){ + #tkmessageBox(message="All of the Mandatory Method information was not filled out, the Method data will not be written to the database",icon="error",type="ok") + dbDisconnect(con) + stop("All of the Mandatory Method information was not filled out") + }else{ + #print(paste("INSERT INTO Methods VALUES(",dbGetQuery(con, paste("SELECT MAX(MethodID) FROM Methods"))+1,", '", Method$MethodDescription,"', '", Method$MethodLink,"')", sep = "")) + query<- paste("INSERT INTO Methods VALUES(",dbGetQuery(con, paste("SELECT MAX(MethodID) FROM Methods"))+1,", ", dbFormat(Method$MethodDescription),", ", dbFormat(Method$MethodLink),")", sep = "") + dbGetQuery(con, paste("INSERT INTO Methods VALUES(",dbGetQuery(con, paste("SELECT MAX(MethodID) FROM Methods"))+1,", ", dbFormat(Method$MethodDescription),", ", dbFormat(Method$MethodLink),")", sep = "")) + methodID<-dbGetQuery(con, paste("SELECT MethodID FROM Methods WHERE MethodLink=", dbFormat(Method$MethodLink), " AND MethodDescription=",dbFormat(Method$MethodDescription), "", sep="")) + + } + } + } + methodID +} + +getSourceID<-function(con, Sources, overwrite){ +#Mandatory: SourceID, Organization, sourceDescription, ContactName, Phone, Email, Address, City, state, ZipCode, Citation, MetadataID + #print(paste("SELECT SourceID FROM Sources WHERE Organization='", Sources$Organization, "' AND SourceLink='",Sources$SourceLink, "' AND ContactName='",Sources$ContactName,"' AND City='",Sources$City,"'", sep="")) + sourceID<-dbGetQuery(con, paste("SELECT SourceID FROM Sources WHERE Organization='", Sources$Organization, "' AND SourceLink='",Sources$SourceLink, "' AND ContactName='",Sources$ContactName,"' AND City='",Sources$City,"'", sep="")) + if(nrow(sourceID)==0){ + if(overwrite==TRUE){ + tkmessageBox(message="You have edited your Source information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else + { + if(is.null(Sources$Organization)|| !nchar(Sources$Organization)|| is.null(Sources$SourceDescription) || !nchar(Sources$SourceDescription)|| is.null(Sources$ContactName)|| !nchar(Sources$ContactName)|| is.null(Sources$Phone)|| !nchar(Sources$Phone)|| is.null(Sources$Email)|| !nchar(Sources$Email)|| is.null(Sources$Address)|| !nchar(Sources$Address)|| is.null(Sources$City)|| !nchar(Sources$City)|| is.null(Sources$State)|| !nchar(Sources$State)|| is.null(Sources$ZipCode)|| !nchar(Sources$ZipCode)|| is.null(Sources$Citation)|| !nchar(Sources$Citation)|| is.null(Sources$MetadataID)|| !nchar(Sources$MetadataID)) + { + #tkmessageBox(message="All of the Mandatory Source information was not filled out, the Source data will not be written to the database",icon="error",type="ok") + dbDisconnect(con) + stop("All of the Mandatory Source information was not filled out") + } + else + { + #print(paste("INSERT INTO Sources VALUES(",dbGetQuery(con, paste("SELECT MAX(SourceID) FROM Sources"))+1,", ",dbFormat(Sources$Organization),", ",dbFormat(Sources$SourceDescription),", ",dbFormat(Sources$SourceLink),", ",dbFormat(Sources$ContactName),", ",dbFormat(Sources$Phone),", ",dbFormat(Sources$Email),", ",dbFormat(Sources$Address),", ",dbFormat(Sources$City),", ",dbFormat(Sources$State),", ",dbFormat(Sources$ZipCode),", ",dbFormat(Sources$Citation),", ",dbFormat(Sources$MetadataID) ,")", sep = "")) + dbGetQuery(con, paste("INSERT INTO Sources VALUES(",dbGetQuery(con, paste("SELECT MAX(SourceID) FROM Sources"))+1,", ",dbFormat(Sources$Organization),", ",dbFormat(Sources$SourceDescription),", ",dbFormat(Sources$SourceLink),", ",dbFormat(Sources$ContactName),", ",dbFormat(Sources$Phone),", ",dbFormat(Sources$Email),", ",dbFormat(Sources$Address),", ",dbFormat(Sources$City),", ",dbFormat(Sources$State),", ",dbFormat(Sources$ZipCode),", ",dbFormat(Sources$Citation),", ",dbFormat(Sources$MetadataID) ,")", sep = "")) + sourceID<-dbGetQuery(con, paste("SELECT SourceID FROM Sources WHERE Organization='", Sources$Organization, "' AND SourceLink='",Sources$SourceLink, "' AND ContactName='",Sources$ContactName,"' AND City='",Sources$City,"'", sep="")) + + } + } + } + sourceID +} + +getQualityControlLevelID<-function(con, QCL, overwrite){ +#Mandatory: QualityControlLevelID, QualityControlLevelCode, Definition, Explanation + #print(paste("SELECT QualityControlLevelID FROM QualityControlLevels WHERE QualityControlLevelCode='", QCL$QualityControlLevelCode, "' AND Definition='",QCL$Definition, "'", sep="")) + qclID<-dbGetQuery(con, paste("SELECT QualityControlLevelID FROM QualityControlLevels WHERE QualityControlLevelCode='", QCL$QualityControlLevelCode, "' AND Definition='",QCL$Definition, "'", sep="")) + if(nrow(qclID)==0){ + if(overwrite==TRUE){ + tkmessageBox(message="You have edited your Quality Control information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if(is.null(QCL$QualityControlLevelCode)|| !nchar(QCL$QualityControlLevelCode)||is.null(QCL$Definition)|| !nchar(QCL$Definition)|| is.null(QCL$Explanation)|| !nchar(QCL$Explanation)) + { + #tkmessageBox(message="All of the Mandatory Quality Control information was not filled out, the Qualty Control data will not be written to the database",icon="error",type="ok") + dbDisconnect(con) + stop("All of the Mandatory Quality Control information was not filled out") + } + else + { + #print(paste("INSERT INTO QualityControlLevels VALUES(",dbGetQuery(con, paste("SELECT MAX(QualityControlLevelID) FROM QualityControlLevels"))+1,", ", dbFormat(QCL$QualityControlLevelCode),", ", dbFormat(QCL$Definition),", ", dbFormat(QCL$Explanation),")", sep = "")) + dbGetQuery(con, paste("INSERT INTO QualityControlLevels VALUES(",dbGetQuery(con, paste("SELECT MAX(QualityControlLevelID) FROM QualityControlLevels"))+1,", ", dbFormat(QCL$QualityControlLevelCode),", ", dbFormat(QCL$Definition),", ", dbFormat(QCL$Explanation),")", sep = "")) + qclID<-dbGetQuery(con, paste("SELECT QualityControlLevelID FROM QualityControlLevels WHERE QualityControlLevelCode='", QCL$QualityControlLevelCode, "' AND Definition='",QCL$Definition, "'", sep="")) + + } + } + } + qclID +} + +getUnitsID<-function(con, Units, overwrite){ +#Mandatory: UnitsID, UnitsName, UnitsType, UnitsAbbreviation + #print(paste("SELECT UnitsID FROM Units WHERE UnitsName='", Units$UnitsName, "' AND UnitsType='",Units$UnitsType, "' AND UnitsAbbreviation='",Units$UnitsAbbreviation,"'", sep="")) + unitID<-dbGetQuery(con, paste("SELECT UnitsID FROM Units WHERE UnitsName='", Units$UnitsName, "' AND UnitsType='",Units$UnitsType, "' AND UnitsAbbreviation='",Units$UnitsAbbreviation,"'", sep="")) + if(nrow(unitID)==0){ + if(overwrite==TRUE){ + tkmessageBox(message="You have edited your Units information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if(is.null(Units$UnitsName)|| !nchar(Units$UnitsName)|| is.null(Units$UnitsType)|| !nchar(Units$UnitsType)||is.null(Units$UnitsAbbreviation)|| !nchar(Units$UnitsAbbreviation)){ + #tkmessageBox(message="All of the Units information was not filled out, the Qualty Control data will not be written to the database",icon="error",type="ok") + dbDisconnect(con) + stop("All of the Mandatory Units information was not filled out") + } + else + { + #print(paste("INSERT INTO Units VALUES(",dbGetQuery(con, paste("SELECT MAX(UnitsID) FROM Units"))+1,", ",dbFormat(Units$UnitsName),", ",dbFormat(Units$UnitsType),", ",dbFormat(Units$UnitsAbbreviation),")", sep = "")) + dbGetQuery(con,paste("INSERT INTO Units VALUES(",dbGetQuery(con, paste("SELECT MAX(UnitsID) FROM Units"))+1,", ",dbFormat(Units$UnitsName),", ",dbFormat(Units$UnitsType),", ",dbFormat(Units$UnitsAbbreviation),")", sep = "")) + unitID<-dbGetQuery(con, paste("SELECT UnitsID FROM Units WHERE UnitsName='", Units$UnitsName, "' AND UnitsType='",Units$UnitsType, "' AND UnitsAbbreviation='",Units$UnitsAbbreviation,"'", sep="")) + + } + } + } + unitID +} + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/DESCRIPTION b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/DESCRIPTION new file mode 100644 index 00000000..b0d5db8a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/DESCRIPTION @@ -0,0 +1,11 @@ +Package: HydroR +Type: Package +Title: HydroDesktop Plugin +Version: 1.0 +Date: 2010-04-08 +Author: Stephanie Reeder +Depends: DBI, RSQLite +Maintainer: Who to complain to +Description: HydroDesktop Data Interface +License: GPL-2 | GPL-3 +LazyLoad: yes diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/LICENCE b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/LICENCE new file mode 100644 index 00000000..ffe3816d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/LICENCE @@ -0,0 +1,13 @@ +This package is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 or 3 of the License +(at your option). + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +A copy of the GNU General Public License is available at +http://www.r-project.org/Licenses/ . A copy of version 2 is +included in the sources as file COPYING. diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/R/getDataSeries.R b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/R/getDataSeries.R new file mode 100644 index 00000000..819bdc23 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/R/getDataSeries.R @@ -0,0 +1,10 @@ +getDataSeries <- +function(connectionString, seriesID, SQLite= TRUE ,startDate="1900-01-01", endDate="2050-12-31") +{ + if(SQLite==TRUE) { + driver<-dbDriver("SQLite") + con <- dbConnect(driver, dbname=connectionString) + return(dbGetQuery(con, paste("SELECT * FROM DataValues WHERE SeriesID = " ,seriesID, " AND LocalDateTime BETWEEN \'", startDate,"\' AND \'", endDate,"\'", sep="" )) ) + } +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/R/getDataWithSQL.R b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/R/getDataWithSQL.R new file mode 100644 index 00000000..478bde9d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/R/getDataWithSQL.R @@ -0,0 +1,9 @@ +getDataWithSQL <- +function(connectionString, SQLString, SQLite= TRUE) { + if(SQLite==TRUE) { + driver<-dbDriver("SQLite") + con <- dbConnect(driver, dbname=connectionString) + return(dbGetQuery(con, SQLString) ) + } +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/R/plotDataSeries.R b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/R/plotDataSeries.R new file mode 100644 index 00000000..e4192b80 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/R/plotDataSeries.R @@ -0,0 +1,5 @@ +plotDataSeries <- +function(datavals){ + plot(datavals$DataValue) +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/R/plotDataSeriesSetX.R b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/R/plotDataSeriesSetX.R new file mode 100644 index 00000000..0518261e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/R/plotDataSeriesSetX.R @@ -0,0 +1,5 @@ +plotDataSeriesSetX <- +function( datavals, Xheader){ + plot (datavals$Xheader, datavals$DataValue ) +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/man/HydroR-package.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/man/HydroR-package.Rd new file mode 100644 index 00000000..0cd59da9 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/man/HydroR-package.Rd @@ -0,0 +1,2 @@ +\name{HydroR-package} +\title{creates a interface with HydroDesktop a CUAHSI.org product} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/man/getDataSeries.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/man/getDataSeries.Rd new file mode 100644 index 00000000..331807f6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/man/getDataSeries.Rd @@ -0,0 +1,72 @@ +\name{getDataSeries} +\alias{getDataSeries} +%- Also NEED an '\alias' for EACH other topic documented here. +\title{get data from database and stores it in a dataframe} +\description{ +%% ~~ A concise (1-5 lines) description of what the function does. ~~ +} +\usage{ +getDataSeries(connectionString, seriesID, SQLite, startDate = "1900-01-01", endDate = "2050-12-31") +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{connectionString}{ +%% ~~Describe \code{connectionString} if the Database is SQL lite this is the full file path to the Database File. Otherwise it should containt he connection string to connect to the Database.~~ +} + \item{seriesID}{ +%% ~~Describe \code{seriesID} The Series ID of the Data to collect from the HydroDesktop Database ~~ +} + \item{SQLite}{ +%% ~~Describe \code{SQLite} Indicates wether the database being accessed is an SQLite Database or not. ~~ +} + \item{startDate}{ +%% ~~Describe \code{startDate} The Date you want to begin collecting data from the series. Format: "yyyy-MM-dd hh:mm:ss" ~~ +} + \item{endDate}{ +%% ~~Describe \code{endDate} the Date you want to end collecting data from the series. Format: "yyyy-MM-dd hh:mm:ss" ~~ +} +} +\details{ +%% ~~ If necessary, more details than the description above ~~ +} +\value{ +%% ~Describe the value returned +%% If it is a LIST, use +%% \item{comp1 }{Description of 'comp1'} +%% \item{comp2 }{Description of 'comp2'} +%% ... +} +\references{ +%% ~put references to the literature/web site here ~ +} +\author{ +%% ~~who you are~~ +} +\note{ +%% ~~further notes~~ +} + +%% ~Make other sections like Warning with \section{Warning }{....} ~ + +\seealso{ +%% ~~objects to See Also as \code{\link{help}}, ~~~ +} +\examples{ +##---- Should be DIRECTLY executable !! ---- +##-- ==> Define data, use random, +##-- or do help(data=index) for the standard data sets. + +## The function is currently defined as +function(connectionString, seriesID, SQLite ,startDate="2009-09-01", endDate="2009-09-02") +{ + if(SQLite==TRUE) { + driver<-dbDriver("SQLite") + con <- dbConnect(driver, dbname=connectionString) + return(dbGetQuery(con, paste("SELECT * FROM DataValues WHERE SeriesID = " ,seriesID, " AND LocalDateTime BETWEEN \'", startDate,"\' AND \'", endDate,"\'", sep="" )) ) + } + } +} +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ ~kwd1 } +\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/man/getDataWithSQL.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/man/getDataWithSQL.Rd new file mode 100644 index 00000000..532e2d10 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/man/getDataWithSQL.Rd @@ -0,0 +1,65 @@ +\name{getDataWithSQL} +\alias{getDataWithSQL} +%- Also NEED an '\alias' for EACH other topic documented here. +\title{ get data from database using your own SQL command and store it in a dataframe} +\description{ +%% ~~ A concise (1-5 lines) description of what the function does. ~~ +} +\usage{ +getDataWithSQL(connectionString, SQLString, SQLite = TRUE) +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{connectionString}{ +%% ~~Describe \code{connectionString} here~~ +} + \item{SQLString}{ +%% ~~Describe \code{SQLString} here~~ +} + \item{SQLite}{ +%% ~~Describe \code{SQLite} here~~ +} +} +\details{ +%% ~~ If necessary, more details than the description above ~~ +} +\value{ +%% ~Describe the value returned +%% If it is a LIST, use +%% \item{comp1 }{Description of 'comp1'} +%% \item{comp2 }{Description of 'comp2'} +%% ... +} +\references{ +%% ~put references to the literature/web site here ~ +} +\author{ +%% ~~who you are~~ +} +\note{ +%% ~~further notes~~ +} + +%% ~Make other sections like Warning with \section{Warning }{....} ~ + +\seealso{ +%% ~~objects to See Also as \code{\link{help}}, ~~~ +} +\examples{ +##---- Should be DIRECTLY executable !! ---- +##-- ==> Define data, use random, +##-- or do help(data=index) for the standard data sets. + +## The function is currently defined as +function(connectionString, SQLString, SQLite= TRUE) { + if(SQLite==TRUE) { + driver<-dbDriver("SQLite") + con <- dbConnect(driver, dbname=connectionString) + return(dbGetQuery(con, SQLString) ) + } + } +} +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ ~kwd1 } +\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/man/plotDataSeries.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/man/plotDataSeries.Rd new file mode 100644 index 00000000..75daf69e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/man/plotDataSeries.Rd @@ -0,0 +1,56 @@ +\name{plotDataSeries} +\alias{plotDataSeries} +%- Also NEED an '\alias' for EACH other topic documented here. +\title{Plots a hydrodesktop dataframe} + +\description{ +%% ~~ A concise (1-5 lines) description of what the function does. ~~ +} +\usage{ +plotDataSeries(datavals) +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{datavals}{ +%% ~~Describe \code{datavals} here~~ +} +} +\details{ +%% ~~ If necessary, more details than the description above ~~ +} +\value{ +%% ~Describe the value returned +%% If it is a LIST, use +%% \item{comp1 }{Description of 'comp1'} +%% \item{comp2 }{Description of 'comp2'} +%% ... +} +\references{ +%% ~put references to the literature/web site here ~ +} +\author{ +%% ~~who you are~~ +} +\note{ +%% ~~further notes~~ +} + +%% ~Make other sections like Warning with \section{Warning }{....} ~ + +\seealso{ +%% ~~objects to See Also as \code{\link{help}}, ~~~ +} +\examples{ +##---- Should be DIRECTLY executable !! ---- +##-- ==> Define data, use random, +##-- or do help(data=index) for the standard data sets. + +## The function is currently defined as +function( datavals){ + plot (datavals$DataValue ) + } +} +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ ~kwd1 } +\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/man/plotDataSeriesSetX.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/man/plotDataSeriesSetX.Rd new file mode 100644 index 00000000..fd89d51e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR/man/plotDataSeriesSetX.Rd @@ -0,0 +1,60 @@ +\name{plotDataSeriesSetX} +\alias{plotDataSeriesSetX} +%- Also NEED an '\alias' for EACH other topic documented here. +\title{ +Plot data and be able to set the value of X +} +\description{ +%% ~~ A concise (1-5 lines) description of what the function does. ~~ +} +\usage{ +plotDataSeriesSetX(datavals, Xheader) +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{datavals}{ +%% ~~Describe \code{datavals} here~~ +} + \item{Xheader}{ +%% ~~Describe \code{Xheader} here~~ +} +} +\details{ +%% ~~ If necessary, more details than the description above ~~ +} +\value{ +%% ~Describe the value returned +%% If it is a LIST, use +%% \item{comp1 }{Description of 'comp1'} +%% \item{comp2 }{Description of 'comp2'} +%% ... +} +\references{ +%% ~put references to the literature/web site here ~ +} +\author{ +%% ~~who you are~~ +} +\note{ +%% ~~further notes~~ +} + +%% ~Make other sections like Warning with \section{Warning }{....} ~ + +\seealso{ +%% ~~objects to See Also as \code{\link{help}}, ~~~ +} +\examples{ +##---- Should be DIRECTLY executable !! ---- +##-- ==> Define data, use random, +##-- or do help(data=index) for the standard data sets. + +## The function is currently defined as +function( datavals, Xheader){ + plot (datavals$Xheader, datavals$DataValue ) + } +} +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ ~kwd1 } +\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR_1.0.tar.gz b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR_1.0.tar.gz new file mode 100644 index 00000000..acc5f7fa Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroR_1.0.tar.gz differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/DESCRIPTION b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/DESCRIPTION new file mode 100644 index 00000000..ad855cf5 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/DESCRIPTION @@ -0,0 +1,12 @@ +Package: HydroR +Type: Package +Title: HydroDesktop Plugin +Version: 1.0 +Date: 2010-04-08 +Author: Stephanie Reeder +Depends: DBI, RSQLite +Maintainer: Who to complain to +Description: HydroDesktop Data Interface +License: GPL-2 | GPL-3 +LazyLoad: yes +Built: R 2.10.1; ; 2010-04-15 23:07:10 UTC; windows diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/INDEX b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/INDEX new file mode 100644 index 00000000..bd8b2f59 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/INDEX @@ -0,0 +1,8 @@ + creates a interface with HydroDesktop a + CUAHSI.org product +getDataSeries get data from database and stores it in a + dataframe +getDataWithSQL get data from database using your own SQL + command and store it in a dataframe +plotDataSeries Plots a hydrodesktop dataframe +plotDataSeriesSetX Plot data and be able to set the value of X diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/LICENCE b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/LICENCE new file mode 100644 index 00000000..ffe3816d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/LICENCE @@ -0,0 +1,13 @@ +This package is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 or 3 of the License +(at your option). + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +A copy of the GNU General Public License is available at +http://www.r-project.org/Licenses/ . A copy of version 2 is +included in the sources as file COPYING. diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/MD5 b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/MD5 new file mode 100644 index 00000000..9174be60 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/MD5 @@ -0,0 +1,16 @@ +15f89b8c1e5cc03bd08bb8568bb07630 *DESCRIPTION +ec697c4f6802bc150e78c19a70acd76c *INDEX +f7e56e7a79119dd1952a7d6484f5c8ad *LICENCE +1a1ba47d842dde9dc747f810bd5b6319 *Meta/Rd.rds +e8fb5e685abad9de881fd530dd9ffbde *Meta/hsearch.rds +c9a470c33ad755619e4bf82c7d40739c *Meta/links.rds +15e3609fbefe63098b1b06e9c9552d7b *Meta/package.rds +6e60a4480e0345d65902fc23b54bffd6 *R/HydroR +29618ab481d05635f2893ff817d448fa *R/HydroR.rdb +cb1e0a6b1435c1e6f5b560616260a1f3 *R/HydroR.rdx +ff1dda8396489dba8ef2ed2cca1225e8 *help/AnIndex +88801d75be29d8580caacc5e4daf09db *help/HydroR.rdb +b208bd9ad927a3504b51294001a375ed *help/HydroR.rdx +f65ce9784736ee83d42fd6a4f37e6a9f *help/aliases.rds +2342b82a98b2e9029470ec2e72565dfb *help/paths.rds +6803e375e7cb5bea7d8b724654238670 *html/00Index.html diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/Meta/Rd.rds b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/Meta/Rd.rds new file mode 100644 index 00000000..bbb781a3 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/Meta/Rd.rds differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/Meta/hsearch.rds b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/Meta/hsearch.rds new file mode 100644 index 00000000..a7ae69b6 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/Meta/hsearch.rds differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/Meta/links.rds b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/Meta/links.rds new file mode 100644 index 00000000..43fbbad0 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/Meta/links.rds differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/Meta/package.rds b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/Meta/package.rds new file mode 100644 index 00000000..1a95906b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/Meta/package.rds differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/R/HydroR b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/R/HydroR new file mode 100644 index 00000000..be99e295 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/R/HydroR @@ -0,0 +1,18 @@ +.First.lib <- function(libname, pkgname) +{ + fullName <- paste("package", pkgname, sep=":") + myEnv <- as.environment(match(fullName, search())) + barepackage <- sub("([^-]+)_.*", "\\1", pkgname) + dbbase <- file.path(libname, pkgname, "R", barepackage) + rm(.First.lib, envir = myEnv) + lazyLoad(dbbase, myEnv) + if(exists(".First.lib", envir = myEnv, inherits = FALSE)) { + f <- get(".First.lib", envir = myEnv, inherits = FALSE) + if(is.function(f)) + f(libname, pkgname) + else + stop(gettextf("package '%s' has a non-function '.First.lib'", + pkgname), + domain = NA) + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/R/HydroR.rdb b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/R/HydroR.rdb new file mode 100644 index 00000000..49118e2a Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/R/HydroR.rdb differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/R/HydroR.rdx b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/R/HydroR.rdx new file mode 100644 index 00000000..223336da Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/R/HydroR.rdx differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/help/AnIndex b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/help/AnIndex new file mode 100644 index 00000000..8dc6d9c0 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/help/AnIndex @@ -0,0 +1,4 @@ +getDataSeries getDataSeries +getDataWithSQL getDataWithSQL +plotDataSeries plotDataSeries +plotDataSeriesSetX plotDataSeriesSetX diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/help/HydroR.rdb b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/help/HydroR.rdb new file mode 100644 index 00000000..c8b6a5e0 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/help/HydroR.rdb differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/help/HydroR.rdx b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/help/HydroR.rdx new file mode 100644 index 00000000..f7f9d1c2 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/help/HydroR.rdx differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/help/aliases.rds b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/help/aliases.rds new file mode 100644 index 00000000..d291d09e Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/help/aliases.rds differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/help/paths.rds b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/help/paths.rds new file mode 100644 index 00000000..7d0cf84b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/help/paths.rds differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/html/00Index.html b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/html/00Index.html new file mode 100644 index 00000000..621d433f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_0/HydroRbasics/html/00Index.html @@ -0,0 +1,31 @@ + +R: HydroDesktop Plugin + + +

    HydroDesktop Plugin

    + +
    + +
    + + +
    + +

    Documentation for package ‘HydroR’ version 1.0

    + +

    Help Pages

    + + + + + + + + + + + +
    getDataSeriesget data from database and stores it in a dataframe
    getDataWithSQLget data from database using your own SQL command and store it in a dataframe
    plotDataSeriesPlots a hydrodesktop dataframe
    plotDataSeriesSetXPlot data and be able to set the value of X
    + diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/DESCRIPTION b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/DESCRIPTION new file mode 100644 index 00000000..21f8e7ee --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/DESCRIPTION @@ -0,0 +1,11 @@ +Package: HydroR +Type: Package +Title: CUAHSI HIS HydroDesktop Plugin +Version: 1.0 +Date: 2010-08-18 +Author: Utah State University +Depends: DBI, RSQLite, tcltk +Maintainer: Utah State University +Description: HydroDesktop Data Interface +License: GPL-2 | GPL-3 +LazyLoad: yes diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/LICENCE b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/LICENCE new file mode 100644 index 00000000..ffe3816d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/LICENCE @@ -0,0 +1,13 @@ +This package is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 or 3 of the License +(at your option). + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +A copy of the GNU General Public License is available at +http://www.r-project.org/Licenses/ . A copy of version 2 is +included in the sources as file COPYING. diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/R/getDataSeries.R b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/R/getDataSeries.R new file mode 100644 index 00000000..b1acdd2e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/R/getDataSeries.R @@ -0,0 +1,28 @@ +getDataSeries <- +function(connectionString, seriesID, SQLite= TRUE, startDate="1900-01-01", endDate="2050-12-31"){ + if(SQLite==TRUE) { + driver<-dbDriver("SQLite") + con<- dbConnect(driver, dbname=connectionString) +dbBeginTransaction(con) +dValues<-getDataValues(con, seriesID, SQLite ,startDate, endDate) + dSeries<- dbGetQuery(con, paste("SELECT * FROM DataSeries WHERE SeriesID = " ,seriesID, sep="" )) + dSeries$BeginDateTime<-as.Date(dSeries$BeginDateTime, "%Y-%m-%d %H:%M:%S") + dSeries$BeginDateTimeUTC<-as.Date(dSeries$BeginDateTimeUTC, "%Y-%m-%d %H:%M:%S") + dSeries$EndDateTime<-as.Date(dSeries$EndDateTime, "%Y-%m-%d %H:%M:%S") + dSeries$EndDateTimeUTC<-as.Date(dSeries$EndDateTimeUTC, "%Y-%m-%d %H:%M:%S") + dSeries$CreationDateTime<-as.Date(dSeries$CreationDateTime, "%Y-%m-%d %H:%M:%S") +dSeries$UpdateDateTime<-as.Date(dSeries$UpdateDateTime, "%Y-%m-%d %H:%M:%S") +dSeries$LastcheckedDateTime<-as.Date(dSeries$LastcheckedDateTime, "%Y-%m-%d %H:%M:%S") + variableData<-dbGetQuery(con, paste("SELECT * FROM Variables WHERE VariableID=", dSeries$VariableID)) + siteData<-dbGetQuery(con, paste("SELECT * FROM Sites WHERE SiteID=", dSeries$SiteID)) + variableUnits<-dbGetQuery(con, paste("SELECT * FROM Units WHERE UnitsID=", variableData$VariableUnitsID)) + timeUnits<-dbGetQuery(con, paste("SELECT * FROM Units WHERE UnitsID=", variableData$TimeUnitsID )) + methodData<-dbGetQuery(con, paste("SELECT * FROM Methods WHERE MethodID=", dSeries$MethodID)) + sourceData<-dbGetQuery(con, paste("SELECT * FROM Sources WHERE SourceID=", dSeries$SourceID)) + qualityControl<-dbGetQuery(con, paste("SELECT * FROM QualityControlLevels WHERE QualityControlLevelID=", dSeries$QualityControlLevelID)) + dbCommit(con) + dbDisconnect(con) +} + list(DataValues=dValues, DataSeries=dSeries, Site=siteData, Variable=variableData, VariableUnits=variableUnits, TimeUnits=timeUnits, Method=methodData, Source=sourceData, QualityControlLevel=qualityControl) +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/R/getDataWithSQL.R b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/R/getDataWithSQL.R new file mode 100644 index 00000000..4af9264f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/R/getDataWithSQL.R @@ -0,0 +1,9 @@ +getDataWithSQL <- +function(connectionString, SQLString, SQLite = TRUE){ + if(SQLite==TRUE) { + driver<-dbDriver("SQLite") + con <- dbConnect(driver, dbname=connectionString) + return(dbGetQuery(con, SQLString)) + } +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/R/plotDataSeries.R b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/R/plotDataSeries.R new file mode 100644 index 00000000..f887eb90 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/R/plotDataSeries.R @@ -0,0 +1,5 @@ +plotDataSeries <- +function(datavals, ylabel, ...){ + plot(datavals$DataValues$LocalDateTime, datavals$DataValues$DataValue, xlab="Date", ylab=ylabel, ...) +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/R/saveDataSeries.R b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/R/saveDataSeries.R new file mode 100644 index 00000000..d45ede15 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/R/saveDataSeries.R @@ -0,0 +1,227 @@ +saveDataSeries <- +function(connectionString, newSeries, SQLite = TRUE, overwrite= TRUE){ +if(SQLite==TRUE){ +driver<-dbDriver("SQLite") + con<- dbConnect(driver, dbname=connectionString) + dbBeginTransaction(con) + +siteID<-getSiteID(con, newSeries$Site, overwrite) +variableID<-getVariableID(con, newSeries$Variable, overwrite) +methodID<-getMethodID(con, newSeries$Method, overwrite) +qclID<-getQualityControlLevelID(con, newSeries$QualityControlLevel, overwrite) +vunitsID<-getUnitsID(con, newSeries$VariableUnits,overwrite) +tunitsID<-getUnitsID(con, newSeries$TimeUnits,overwrite) +sourceID<-getSourceID(con, newSeries$Source, overwrite) +SeriesID<-getSeriesID(con, list(site=siteID, variable=variableID, method=methodID, qcl=qclID, source=sourceID), newSeries$DataSeries, newSeries$DataValues , overwrite) + +#dataValues Mandatory:ValueID, DataValue, LocalDateTime, UTCOffcet, DateTimeUTC, SiteID, VariableID, CensorCode, MethodID, SourceID, QualityControlLevelID +for(i in 1:length(newSeries$DataValues$DataValue)){ +ser<-newSeries$DataValues +if(overwrite==FALSE){ +#print( paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",ser$ValueAccuracy[i],", '", format(ser$LocalDateTime[i],"%Y-%m-%d %H:%M:%S"),"', ",ser$UTCOffset[i],", '",format(ser$DateTimeUTC[i],"%Y-%m-%d %H:%M:%S"),"', ", ser$OffsetValue[i],", '", ser$OffsetTypeID[i],"', '", ser$CensorCode[i],"', '", ser$QualifierID[i],"', '", ser$SampleID[i],"', '", ser$FileID[i], "')", sep="")) +dbGetQuery(con,paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",ser$ValueAccuracy[i],", '", format(ser$LocalDateTime[i],"%Y-%m-%d %H:%M:%S"),"', ",ser$UTCOffset[i],", '",format(ser$DateTimeUTC[i],"%Y-%m-%d %H:%M:%S"),"', ", ser$OffsetValue[i],", '", ser$OffsetTypeID[i],"', '", ser$CensorCode[i],"', '", ser$QualifierID[i],"', '", ser$SampleID[i],"', '", ser$FileID[i], "')", sep="")) +} +else{ +count<-dbGetQuery(con, paste("SELECT COUNT(DataValue) FROM DataValues WHERE SeriesID=",SeriesID, " AND LocalDateTime = '", format(newSeries$DataValues$LocalDateTime[i],"%Y-%m-%d %H:%M:%S"),"'", sep="")) +if (count==0){ +#print(paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",ser$ValueAccuracy[i],", '", format(ser$LocalDateTime[i],"%Y-%m-%d %H:%M:%S"),"', ",ser$UTCOffset[i],", '",format(ser$DateTimeUTC[i],"%Y-%m-%d %H:%M:%S"),"', ", ser$OffsetValue[i],", '", ser$OffsetTypeID[i],"', '", ser$CensorCode[i],"', '", ser$QualifierID[i],"', '", ser$SampleID[i],"', '", ser$FileID[i], "')", sep="")) +dbGetQuery(con,paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",ser$ValueAccuracy[i],", '", format(ser$LocalDateTime[i],"%Y-%m-%d %H:%M:%S"),"', ",ser$UTCOffset[i],", '",format(ser$DateTimeUTC[i],"%Y-%m-%d %H:%M:%S"),"', ", ser$OffsetValue[i],", '", ser$OffsetTypeID[i],"', '", ser$CensorCode[i],"', '", ser$QualifierID[i],"', '", ser$SampleID[i],"', '", ser$FileID[i], "')", sep="")) +} +else{ +#print(paste("UPDATE DataValues SET DataValue=", newSeries$DataValues$DataValue[i], " WHERE SeriesID=",SeriesID, " AND LocalDateTime ='", format(newSeries$DataValues$LocalDateTime[i],"%Y-%m-%d %H:%M:%S"),"'", sep="")) +dbGetQuery(con, paste("UPDATE DataValues SET DataValue=", newSeries$DataValues$DataValue[i], " WHERE SeriesID=",SeriesID, " AND LocalDateTime ='", format(newSeries$DataValues$LocalDateTime[i],"%Y-%m-%d %H:%M:%S"),"'", sep="")) +} +} +} +dbCommit(con) + dbDisconnect(con) +} +} + + getDataValues<-function(con, seriesID, SQLite ,startDate, endDate){ + #sep = separator between each comma + dataFrame<-dbGetQuery(con, paste("SELECT * FROM DataValues WHERE SeriesID = " ,seriesID, " AND LocalDateTime BETWEEN '", startDate,"' AND '", endDate,"'", sep="" )) + dataFrame$LocalDateTime<-as.Date(dataFrame$LocalDateTime, "%Y-%m-%d %H:%M:%S") + dataFrame$DateTimeUTC<-as.Date(dataFrame$DateTimeUTC, "%Y-%m-%d %H:%M:%S") + dataFrame +} + +getNextValueID<-function(con){ + dbGetQuery(con, paste("SELECT MAX(ValueID) FROM DataValues"))+1 +} + +getNextSeriesID<-function(con){ + dbGetQuery(con, paste("SELECT MAX(SeriesID) FROM DataSeries"))+1 +} + +getSeriesID<-function(con, S, Series, Values, overwrite){ + #print(paste("SELECT SeriesID FROM DataSeries WHERE SiteID=",S$site, " AND VariableID=", S$variable, " AND MethodID=",S$method," AND QualityControlLevelID= ",S$qcl," AND SourceID=",S$source, sep="" )) + seriesID<-dbGetQuery(con, paste("SELECT SeriesID FROM DataSeries WHERE SiteID=",S$site, " AND VariableID=", S$variable, " AND MethodID=",S$method," AND QualityControlLevelID= ",S$qcl," AND SourceID=",S$source, sep="" )) + #print(seriesID) + if(overwrite==TRUE ){ + #print(paste("UPDATE DataSeries SET UpdateDateTime= '", format(Sys.time(),"%Y-%m-%d %H:%M:%S"), "', ValueCount=", nrow(Values),", BeginDateTime='",format(min(Values$LocalDateTime),"%Y-%m-%d %H:%M:%S"),"',EndDateTime='",format(max(Values$LocalDateTime),"%Y-%m-%d %H:%M:%S"),"',BeginDateTimeUTC='",format(min(Values$DateTimeUTC),"%Y-%m-%d %H:%M:%S"),"',EndDateTimeUTC='",format(max(Values$DateTimeUTC),"%Y-%m-%d %H:%M:%S"),"' WHERE SeriesID=", seriesID, sep="" )) + dbGetQuery(con, paste("UPDATE DataSeries SET UpdateDateTime= '", format(Sys.time(),"%Y-%m-%d %H:%M:%S"), "', ValueCount=", nrow(Values),", BeginDateTime='",format(min(Values$LocalDateTime),"%Y-%m-%d %H:%M:%S"),"', EndDateTime='",format(max(Values$LocalDateTime),"%Y-%m-%d %H:%M:%S"),"', BeginDateTimeUTC='",format(min(Values$DateTimeUTC),"%Y-%m-%d %H:%M:%S"),"',EndDateTimeUTC='",format(max(Values$DateTimeUTC),"%Y-%m-%d %H:%M:%S"),"' WHERE SeriesID=", seriesID, sep="" )) + } + else{ + #list(site=siteID, variable=variableID, method=methodID, qcl=qclID, source=sourceID) + if(is.null(S$site)|| is.null(S$variable)|| is.null(S$method)|| is.null(S$qcl)|| is.null(S$source)||!nchar(S$site)|| !nchar(S$variable)|| !nchar(S$method)|| !nchar(S$qcl) || !nchar(S$source)){ + #tkmessageBox(message="All of the Mandatory Series information was not filled out, the Series data will not be written to the database",icon="error",type="ok") + stop("All of the Mandatory Series information was not filled out") + #print(paste(S$site, S$variable, S$method, S$qcl, S$source,nchar(S$site), nchar(S$variable),nchar(S$method),nchar(S$qcl) ,nchar(S$source), sep=", ")) + } + else{ + if(S$site==Series$SiteID && S$variable==Series$VariableID && S$method==Series$MethodID && S$source==Series$SourceID && S$qcl==Series$QualityControlLevelID ){ + tkmessageBox(message="You have Not edited your Metadata but have set overwrite==FALSE. You may end up with duplicate entries in your database.",icon="error",type="ok") + }else{ + #print(paste("INSERT INTO DataSeries VALUES(",getNextSeriesID(con),", ",S$site,", ", S$variable,", ", Series$IsCategorical,", ", S$method,", ", Series$SourceID,", ", Series$QualityControlLevelID,", '", format(min(Values$LocalDateTime),"%Y-%m-%d %H:%M:%S"),"', '", format(max(Values$LocalDateTime),"%Y-%m-%d %H:%M:%S"),"', '", format(min(Values$DateTimeUTC),"%Y-%m-%d %H:%M:%S"),"', '", format(max(Values$DateTimeUTC),"%Y-%m-%d %H:%M:%S"),"', ", nrow(Values),", '", format(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', ", Series$Subscribed,", '", format(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', '", format(Sys.time(),"%Y-%m-%d %H:%M:%S"),"')",sep="")) + dbGetQuery(con,paste("INSERT INTO DataSeries VALUES(",getNextSeriesID(con),", ",S$site,", ", S$variable,", ", Series$IsCategorical,", ", S$method,", ", Series$SourceID,", ", Series$QualityControlLevelID,", '", format(min(Values$LocalDateTime),"%Y-%m-%d %H:%M:%S"),"', '", format(max(Values$LocalDateTime),"%Y-%m-%d %H:%M:%S"),"', '", format(min(Values$DateTimeUTC),"%Y-%m-%d %H:%M:%S"),"', '", format(max(Values$DateTimeUTC),"%Y-%m-%d %H:%M:%S"),"', ", nrow(Values),", '", format(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', ", Series$Subscribed,", '", format(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', '", format(Sys.time(),"%Y-%m-%d %H:%M:%S"),"')",sep="")) + } + #print(paste("SELECT SeriesID FROM DataSeries WHERE SiteID=",S$site, " AND VariableID=", S$variable, " AND MethodID=",S$method," AND QualityControlLevelID= ",S$qcl," AND SourceID=",S$source, sep="" )) + seriesID<-dbGetQuery(con, paste("SELECT SeriesID FROM DataSeries WHERE SiteID=",S$site, " AND VariableID=", S$variable, " AND MethodID=",S$method," AND QualityControlLevelID= ",S$qcl," AND SourceID=",S$source, sep="" )) + #print(seriesID) + } + } + seriesID +} + +getSiteID<-function(con, Site, overwrite){ +#Mandatory: siteID, siteCode, siteName, Latitude, longitude, LatLongDatumID + #print(paste("SELECT SiteID FROM Sites WHERE SiteCode='",Site$SiteCode, "' AND SiteName='", Site$SiteName, "'", sep="" )) + siteID<-dbGetQuery(con, paste("SELECT SiteID FROM Sites WHERE SiteCode='",Site$SiteCode, "'AND SiteName='", Site$SiteName, "'", sep="" )) + #print(siteID) + if(nrow(siteID)==0){ + if(overwrite==TRUE){ + #print("You have edited your site information but have set overwrite==TRUE so the data is not being written to the database. Overwrite=TRUE means you want to change the datavalues but keep the rest of the data the same") + tkmessageBox(message="You have edited your site information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if(is.null(Site$SiteCode)|| is.null(Site$SiteName)|| is.null(Site$Latitude)|| is.null(Site$Longitude)|| is.null(Site$LatLongDatumID)||!nchar(Site$SiteCode)|| !nchar(Site$SiteName)|| !nchar(Site$Latitude)|| !nchar(Site$Longitude) || !nchar(Site$LatLongDatumID)){ + #if(TRUE){ + #print(paste(Site$SiteCode, Site$SiteName, Site$Latitude, Site$Longitude, Site$LatLongDatumID,nchar(Site$SiteCode), nchar(Site$SiteName),nchar(Site$Latitude),nchar(Site$Longitude) ,nchar(Site$LatLongDatumID), sep=", ")) + #tkmessageBox(message="All of the Mandatory site information was not filled out, the Site data will not be written to the database",icon="error",type="ok") + stop("All of the Mandatory Site information was not filled out") + }else{ + #print(paste("INSERT INTO Sites VALUES(",dbGetQuery(con, paste("SELECT MAX(SiteID) FROM Sites"))+1,", '", Site$SiteCode,"', '", Site$SiteName,"', ", Site$Latitude,", ", Site$Longitude,", ",Site$LatLongDatumID,", ", Site$Elevation_m,", '", Site$VerticalDatum,"', ", Site$LocalX,", ", Site$LocalY,", '",Site$LocalProjectionID,"', ", Site$PosAccuracy_m,", '", Site$State,"', '", Site$County,"', '", Site$Comments , "')", sep = "")) + dbGetQuery(con, paste("INSERT INTO Sites VALUES(",dbGetQuery(con, paste("SELECT MAX(SiteID) FROM Sites"))+1,", '", Site$SiteCode,"', '", Site$SiteName,"', ", Site$Latitude,", ", Site$Longitude,", ",Site$LatLongDatumID,", ", Site$Elevation_m,", '", Site$VerticalDatum,"', ", Site$LocalX,", ", Site$LocalY,", '",Site$LocalProjectionID,"', ", Site$PosAccuracy_m,", '", Site$State,"', '", Site$County,"', '", Site$Comments , "')", sep = "")) + siteID<-dbGetQuery(con, paste("SELECT SiteID FROM Sites WHERE SiteCode='",Site$SiteCode, "'AND SiteName='", Site$SiteName, "'", sep="" )) + #print(siteID) + } + } + } + siteID +} + +getVariableID<-function(con, Variable, overwrite){ +#Mandatory: VariableID, VariableCode, VariableName, Speciation, VariableUnitsID, SampleMedium, ValueType, IsRegular, TimeSupport, TimeUnitsID, DataType, GeneralCategory, NoDataValue + #print(paste("SELECT VariableID FROM Variables WHERE VariableCode='", Variable$VariableCode, "' AND VariableName='",Variable$VariableName,"' AND VariableUnitsID=",Variable$VariableUnitsID, sep="")) + variableID<-dbGetQuery(con, paste("SELECT VariableID FROM Variables WHERE VariableCode='", Variable$VariableCode, "' AND VariableName='",Variable$VariableName,"' AND VariableUnitsID=",Variable$VariableUnitsID, sep="")) + if(nrow(variableID)==0){ + if(overwrite==TRUE){ + tkmessageBox(message="You have edited your variable information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if( is.null(Variable$VariableCode)|| !nchar(Variable$VariableCode)|| is.null(Variable$VariableName)|| !nchar(Variable$VariableName)|| is.null(Variable$Speciation)|| !nchar(Variable$Speciation)|| is.null(Variable$VariableUnitsID)|| !nchar(Variable$VariableUnitsID)|| is.null(Variable$SampleMedium)|| !nchar(Variable$SampleMedium)|| is.null(Variable$ValueType)|| !nchar(Variable$ValueType)|| is.null(Variable$IsRegular)|| !nchar(Variable$IsRegular)|| is.null(Variable$TimeSupport)|| !nchar(Variable$TimeSupport)|| is.null(Variable$TimeUnitsID)|| !nchar(Variable$TimeUnitsID)|| is.null(Variable$DataType)|| !nchar(Variable$DataType)|| is.null(Variable$GeneralCategory)|| !nchar(Variable$GeneralCategory)|| is.null(Variable$NoDataValue)|| !nchar(Variable$NoDataValue)){ + #tkmessageBox(message="All of the Mandatory Variable information was not filled out, the Variable data will not be written to the database",icon="error",type="ok") + stop("All of the Mandatory Variable information was not filled out") + }else{ + #print(paste("INSERT INTO Variables VALUES(",dbGetQuery(con, paste("SELECT MAX(VariableID) FROM Variables"))+1,", '", Variable$VariableCode,"', '", Variable$VariableName,"', '", Variable$Speciation,"', ", Variable$VariableUnitsID,", '",Variable$SampleMedium,"', '", Variable$ValueType,"', ", Variable$IsRegular,", ", Variable$IsCategorical,", ", Variable$TimeSupport,", ", Variable$TimeUnitsID,", '", Variable$DataType,"', '", Variable$GeneralCategory,"', ", Variable$NoDataValue,", '", Variable$ConceptID , "')", sep = "")) + dbGetQuery(con, paste("INSERT INTO Variables VALUES(",dbGetQuery(con, paste("SELECT MAX(VariableID) FROM Variables"))+1,", '", Variable$VariableCode,"', '", Variable$VariableName,"', '", Variable$Speciation,"', ", Variable$VariableUnitsID,", '",Variable$SampleMedium,"', '", Variable$ValueType,"', ", Variable$IsRegular,", ", Variable$IsCategorical,", ", Variable$TimeSupport,", ", Variable$TimeUnitsID,", '", Variable$DataType,"', '", Variable$GeneralCategory,"', ", Variable$NoDataValue,", '", Variable$ConceptID , "')", sep = "")) + variableID<-dbGetQuery(con, paste("SELECT VariableID FROM Variables WHERE VariableCode='", Variable$VariableCode, "' AND VariableName='",Variable$VariableName,"' AND VariableUnitsID=",Variable$VariableUnitsID, sep="")) + #print(variableID) + } + } + } + variableID +} + +getMethodID<-function(con, Method, overwrite){ +#Mandatory: MethodID, MethodDescription + #print(paste("SELECT MethodID FROM Methods WHERE MethodLink='", Method$MethodLink, "' AND MethodDescription='",Method$MethodDescription, "'", sep="")) + methodID<-dbGetQuery(con, paste("SELECT MethodID FROM Methods WHERE MethodLink='", Method$MethodLink, "' AND MethodDescription='",Method$MethodDescription, "'", sep="")) + if(nrow(methodID)==0){ + if(overwrite==TRUE){ + tkmessageBox(message="You have edited your method information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if(is.null(Method$MethodDescription)|| !nchar(Method$MethodDescription)){ + #tkmessageBox(message="All of the Mandatory Method information was not filled out, the Method data will not be written to the database",icon="error",type="ok") + stop("All of the Mandatory Method information was not filled out") + }else{ + #print(paste("INSERT INTO Methods VALUES(",dbGetQuery(con, paste("SELECT MAX(MethodID) FROM Methods"))+1,", '", Method$MethodDescription,"', '", Method$MethodLink,"')", sep = "")) + dbGetQuery(con, paste("INSERT INTO Methods VALUES(",dbGetQuery(con, paste("SELECT MAX(MethodID) FROM Methods"))+1,", '", Method$MethodDescription,"', '", Method$MethodLink,"')", sep = "")) + methodID<-dbGetQuery(con, paste("SELECT MethodID FROM Methods WHERE MethodLink='", Method$MethodLink, "' AND MethodDescription='",Method$MethodDescription, "'", sep="")) + #print(methodID) + } + } + } + methodID +} + +getSourceID<-function(con, Sources, overwrite){ +#Mandatory: SourceID, Organization, sourceDescription, ContactName, Phone, Email, Address, City, state, ZipCode, Citation, MetadataID + #print(paste("SELECT SourceID FROM Sources WHERE Organization='", Sources$Organization, "' AND SourceLink='",Sources$SourceLink, "' AND ContactName='",Sources$ContactName,"' AND City='",Sources$City,"'", sep="")) + sourceID<-dbGetQuery(con, paste("SELECT SourceID FROM Sources WHERE Organization='", Sources$Organization, "' AND SourceLink='",Sources$SourceLink, "' AND ContactName='",Sources$ContactName,"' AND City='",Sources$City,"'", sep="")) + if(nrow(sourceID)==0){ + if(overwrite==TRUE){ + tkmessageBox(message="You have edited your Source information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if(is.null(Sources$Organization)|| !nchar(Sources$Organization)|| is.null(Sources$SourceDescription) || !nchar(Sources$SourceDescription)|| is.null(Sources$ContactName)|| !nchar(Sources$ContactName)|| is.null(Sources$Phone)|| !nchar(Sources$Phone)|| is.null(Sources$Email)|| !nchar(Sources$Email)|| is.null(Sources$Address)|| !nchar(Sources$Address)|| is.null(Sources$City)|| !nchar(Sources$City)|| is.null(Sources$State)|| !nchar(Sources$State)|| is.null(Sources$ZipCode)|| !nchar(Sources$ZipCode)|| is.null(Sources$Citation)|| !nchar(Sources$Citation)|| is.null(Sources$MetadataID)|| !nchar(Sources$MetadatID)){ + #tkmessageBox(message="All of the Mandatory Source information was not filled out, the Source data will not be written to the database",icon="error",type="ok") + stop("All of the Mandatory Source information was not filled out") + }else{ + #print(paste("INSERT INTO Sources VALUES(",dbGetQuery(con, paste("SELECT MAX(SourceID) FROM Sources"))+1,", '",Sources$Organization,"', '",Sources$SourceDescription,"', '",Sources$SourceLink,"', '",Sources$ContactName,"', '",Sources$Phone,"', '",Sources$Email,"', '",Sources$Address,"', '",Sources$City,"', '",Sources$State,"', '",Sources$ZipCode,"', '",Sources$Citation,"', '",Sources$MetadataID ,"')", sep = "")) + dbGetQuery(con, paste("INSERT INTO Sources VALUES(",dbGetQuery(con, paste("SELECT MAX(SourceID) FROM Sources"))+1,", '",Sources$Organization,"', '",Sources$SourceDescription,"', '",Sources$SourceLink,"', '",Sources$ContactName,"', '",Sources$Phone,"', '",Sources$Email,"', '",Sources$Address,"', '",Sources$City,"', '",Sources$State,"', '",Sources$ZipCode,"', '",Sources$Citation,"', '",Sources$MetadataID ,"')", sep = "")) + sourceID<-dbGetQuery(con, paste("SELECT SourceID FROM Sources WHERE Organization='", Sources$Organization, "' AND SourceLink='",Sources$SourceLink, "' AND ContactName='",Sources$ContactName,"' AND City='",Sources$City,"'", sep="")) + #print(sourceID) + } + } + } + sourceID +} + +getQualityControlLevelID<-function(con, QCL, overwrite){ +#Mandatory: QualityControlLevelID, QualityControlLevelCode, Definition, Explanation + #print(paste("SELECT QualityControlLevelID FROM QualityControlLevels WHERE QualityControlLevelCode='", QCL$QualityControlLevelCode, "' AND Definition='",QCL$Definition, "'", sep="")) + qclID<-dbGetQuery(con, paste("SELECT QualityControlLevelID FROM QualityControlLevels WHERE QualityControlLevelCode='", QCL$QualityControlLevelCode, "' AND Definition='",QCL$Definition, "'" , sep="")) + if(nrow(qclID)==0){ + if(overwrite==TRUE){ + tkmessageBox(message="You have edited your Quality Control information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if(is.null(QCL$QualityControlLevelCode)|| !nchar(QCL$QualityControlLevelCode)||is.null(QCL$Definition)|| !nchar(QCL$Definition)|| is.null(QCL$Explanation)|| !nchar(QCL$Explanation)){ + #tkmessageBox(message="All of the Mandatory Quality Control information was not filled out, the Qualty Control data will not be written to the database",icon="error",type="ok") + stop("All of the Mandatory Quality Control information was not filled out") + }else{ + #print(paste("INSERT INTO QualityControlLevels VALUES(",dbGetQuery(con, paste("SELECT MAX(QualityControlLevelID) FROM QualityControlLevels"))+1,", '", QCL$QualityControlLevelCode,"', '", QCL$Definition,"', '", QCL$Explanation,"')", sep = "")) + dbGetQuery(con, paste("INSERT INTO QualityControlLevels VALUES(",dbGetQuery(con, paste("SELECT MAX(QualityControlLevelID) FROM QualityControlLevels"))+1,", '", QCL$QualityControlLevelCode,"', '", QCL$Definition,"', '", QCL$Explanation,"')", sep = "")) + qclID<-dbGetQuery(con, paste("SELECT QualityControlLevelID FROM QualityControlLevels QualityControlLevelCode='", QCL$QualityControlLevelCode, "' AND Definition='",QCL$Definition, "'", sep="")) + #print(qclID) + } + } + } + qclID +} + +getUnitsID<-function(con, Units, overwrite){ +#Mandatory: UnitsID, UnitsName, UnitsType, UnitsAbbreviation + #print(paste("SELECT UnitsID FROM Units WHERE UnitsName='", Units$UnitsName, "' AND UnitsType='",Units$UnitsType, "' AND UnitsAbbreviation='",Units$UnitsAbbreviation,"'", sep="")) + unitID<-dbGetQuery(con, paste("SELECT UnitsID FROM Units WHERE UnitsName='", Units$UnitsName, "' AND UnitsType='",Units$UnitsType, "' AND UnitsAbbreviation='",Units$UnitsAbbreviation,"'", sep="")) + if(nrow(unitID)==0){ + if(overwrite==TRUE){ + tkmessageBox(message="You have edited your Units information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if(is.null(Units$UnitsName)|| !nchar(Units$UnitsName)|| is.null(Units$UnitsType)|| !nchar(Units$UnitsType)||is.null(Units$UnitsAbbreviation)|| !nchar(Units$UnitsAbbreviation)){ + #tkmessageBox(message="All of the Units information was not filled out, the Qualty Control data will not be written to the database",icon="error",type="ok") + stop("All of the Mandatory Units information was not filled out") + }else{ + #print(paste("INSERT INTO Units VALUES(",dbGetQuery(con, paste("SELECT MAX(UnitsID) FROM Units"))+1,", '",Units$UnitsName,"', '",Units$UnitsType,"', '",Units$UnitsAbbreviation,"')", sep = "")) + dbGetQuery(con,paste("INSERT INTO Units VALUES(",dbGetQuery(con, paste("SELECT MAX(UnitsID) FROM Units"))+1,", '",Units$UnitsName,"', '",Units$UnitsType,"', '",Units$UnitsAbbreviation,"')", sep = "")) + unitID<-dbGetQuery(con, paste("SELECT UnitsID FROM Units WHERE UnitsName='", Units$UnitsName, "' AND UnitsType='",Units$UnitsType, "' AND UnitsAbbreviation='",Units$UnitsAbbreviation,"'", sep="")) + #print(unitID) + } + } + } + unitID +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/man/HydroR-package.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/man/HydroR-package.Rd new file mode 100644 index 00000000..54f12f80 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/man/HydroR-package.Rd @@ -0,0 +1,42 @@ +\name{HydroR-package} +\alias{HydroR-package} +\alias{HydroR} +\docType{package} +\title{{creates a interface with HydroDesktop a CUAHSI.org product} +} +\description{ +More about what it does (maybe more than one line) +~~ A concise (1-5 lines) description of the package ~~ +} +\details{ +\tabular{ll}{ +Package: \tab HydroR\cr +Type: \tab Package\cr +Version: \tab 1.0\cr +Date: \tab 2010-08-18\cr +License: \tab What license is it under?\cr +LazyLoad: \tab yes\cr +} +~~ An overview of how to use the package, including the most important ~~ +~~ functions ~~ +} +\author{ +Who wrote it + +Maintainer: Who to complain to +~~ The author and/or maintainer of the package ~~ +} +\references{ +~~ Literature or other references for background information ~~ +~~ Optionally other standard keywords, one per line, from file KEYWORDS ~~ +~~ in the R documentation directory ~~ +} + +\keyword{ package } +\seealso{ +~~ Optional links to other man pages, e.g. ~~ +~~ \code{\link[:-package]{}} ~~ +} +\examples{ +~~ simple examples of the most important functions ~~ +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/man/getDataSeries.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/man/getDataSeries.Rd new file mode 100644 index 00000000..81db4e40 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/man/getDataSeries.Rd @@ -0,0 +1,90 @@ +\name{getDataSeries} +\alias{getDataSeries} +%- Also NEED an '\alias' for EACH other topic documented here. +\title{get data and Metadata from database and stores it in a List} +\description{ +%% ~~ A concise (1-5 lines) description of what the function does. ~~ +} +\usage{ +getDataSeries(connectionString, seriesID, SQLite = TRUE, startDate = "1900-01-01", endDate = "2050-12-31") +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{connectionString}{ +%% ~~Describe \code{connectionString} here~~ +} + \item{seriesID}{ +%% ~~Describe \code{seriesID} here~~ +} + \item{SQLite}{ +%% ~~Describe \code{SQLite} here~~ +} + \item{startDate}{ +%% ~~Describe \code{startDate} here~~ +} + \item{endDate}{ +%% ~~Describe \code{endDate} here~~ +} +} +\details{ +%% ~~ If necessary, more details than the description above ~~ +} +\value{ +%% ~Describe the value returned +%% If it is a LIST, use +%% \item{comp1 }{Description of 'comp1'} +%% \item{comp2 }{Description of 'comp2'} +%% ... +} +\references{ +%% ~put references to the literature/web site here ~ +} +\author{ +%% ~~who you are~~ +} +\note{ +%% ~~further notes~~ +} + +%% ~Make other sections like Warning with \section{Warning }{....} ~ + +\seealso{ +%% ~~objects to See Also as \code{\link{help}}, ~~~ +} +\examples{ +##---- Should be DIRECTLY executable !! ---- +##-- ==> Define data, use random, +##-- or do help(data=index) for the standard data sets. + +## The function is currently defined as +function(connectionString, seriesID, SQLite= TRUE, startDate="1900-01-01", endDate="2050-12-31"){ + if(SQLite==TRUE) { + driver<-dbDriver("SQLite") + con<- dbConnect(driver, dbname=connectionString) +dbBeginTransaction(con) +dValues<-getDataValues(con, seriesID, SQLite ,startDate, endDate) + dSeries<- dbGetQuery(con, paste("SELECT * FROM DataSeries WHERE SeriesID = " ,seriesID, sep="" )) + dSeries$BeginDateTime<-as.Date(dSeries$BeginDateTime, "\%Y-\%m-\%d \%H:\%M:\%S") + dSeries$BeginDateTimeUTC<-as.Date(dSeries$BeginDateTimeUTC, "\%Y-\%m-\%d \%H:\%M:\%S") + dSeries$EndDateTime<-as.Date(dSeries$EndDateTime, "\%Y-\%m-\%d \%H:\%M:\%S") + dSeries$EndDateTimeUTC<-as.Date(dSeries$EndDateTimeUTC, "\%Y-\%m-\%d \%H:\%M:\%S") + dSeries$CreationDateTime<-as.Date(dSeries$CreationDateTime, "\%Y-\%m-\%d \%H:\%M:\%S") +dSeries$UpdateDateTime<-as.Date(dSeries$UpdateDateTime, "\%Y-\%m-\%d \%H:\%M:\%S") +dSeries$LastcheckedDateTime<-as.Date(dSeries$LastcheckedDateTime, "\%Y-\%m-\%d \%H:\%M:\%S") + variableData<-dbGetQuery(con, paste("SELECT * FROM Variables WHERE VariableID=", dSeries$VariableID)) + siteData<-dbGetQuery(con, paste("SELECT * FROM Sites WHERE SiteID=", dSeries$SiteID)) + variableUnits<-dbGetQuery(con, paste("SELECT * FROM Units WHERE UnitsID=", variableData$VariableUnitsID)) + timeUnits<-dbGetQuery(con, paste("SELECT * FROM Units WHERE UnitsID=", variableData$TimeUnitsID )) + methodData<-dbGetQuery(con, paste("SELECT * FROM Methods WHERE MethodID=", dSeries$MethodID)) + sourceData<-dbGetQuery(con, paste("SELECT * FROM Sources WHERE SourceID=", dSeries$SourceID)) + qualityControl<-dbGetQuery(con, paste("SELECT * FROM QualityControlLevels WHERE QualityControlLevelID=", dSeries$QualityControlLevelID)) + dbCommit(con) + dbDisconnect(con) + } + list(DataValues=dValues, DataSeries=dSeries, Site=siteData, Variable=variableData, VariableUnits=variableUnits, TimeUnits=timeUnits, Method=methodData, Source=sourceData, QualityControlLevel=qualityControl) + } +} +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ ~kwd1 } +\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/man/getDataWithSQL.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/man/getDataWithSQL.Rd new file mode 100644 index 00000000..b041e309 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/man/getDataWithSQL.Rd @@ -0,0 +1,65 @@ +\name{getDataWithSQL} +\alias{getDataWithSQL} +%- Also NEED an '\alias' for EACH other topic documented here. +\title{ get data from database using your own SQL command and store it in a dataframe} +\description{ +%% ~~ A concise (1-5 lines) description of what the function does. ~~ +} +\usage{ +getDataWithSQL(connectionString, SQLString, SQLite = TRUE) +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{connectionString}{ +%% ~~Describe \code{connectionString} here~~ +} + \item{SQLString}{ +%% ~~Describe \code{SQLString} here~~ +} + \item{SQLite}{ +%% ~~Describe \code{SQLite} here~~ +} +} +\details{ +%% ~~ If necessary, more details than the description above ~~ +} +\value{ +%% ~Describe the value returned +%% If it is a LIST, use +%% \item{comp1 }{Description of 'comp1'} +%% \item{comp2 }{Description of 'comp2'} +%% ... +} +\references{ +%% ~put references to the literature/web site here ~ +} +\author{ +%% ~~who you are~~ +} +\note{ +%% ~~further notes~~ +} + +%% ~Make other sections like Warning with \section{Warning }{....} ~ + +\seealso{ +%% ~~objects to See Also as \code{\link{help}}, ~~~ +} +\examples{ +##---- Should be DIRECTLY executable !! ---- +##-- ==> Define data, use random, +##-- or do help(data=index) for the standard data sets. + +## The function is currently defined as +function(connectionString, SQLString, SQLite = TRUE){ + if(SQLite==TRUE) { + driver<-dbDriver("SQLite") + con <- dbConnect(driver, dbname=connectionString) + return(dbGetQuery(con, SQLString)) + } + } +} +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ ~kwd1 } +\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/man/plotDataSeries.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/man/plotDataSeries.Rd new file mode 100644 index 00000000..3b918761 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/man/plotDataSeries.Rd @@ -0,0 +1,61 @@ +\name{plotDataSeries} +\alias{plotDataSeries} +%- Also NEED an '\alias' for EACH other topic documented here. +\title{Plots a Series that has been read into a list from getDataSeries} +\description{ +%% ~~ A concise (1-5 lines) description of what the function does. ~~ +} +\usage{ +plotDataSeries(datavals, ylabel, ...) +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{datavals}{ +%% ~~Describe \code{datavals} here~~ +} + \item{ylabel}{ +%% ~~Describe \code{ylabel} here~~ +} + \item{\dots}{ +%% ~~Describe \code{\dots} here~~ +} +} +\details{ +%% ~~ If necessary, more details than the description above ~~ +} +\value{ +%% ~Describe the value returned +%% If it is a LIST, use +%% \item{comp1 }{Description of 'comp1'} +%% \item{comp2 }{Description of 'comp2'} +%% ... +} +\references{ +%% ~put references to the literature/web site here ~ +} +\author{ +%% ~~who you are~~ +} +\note{ +%% ~~further notes~~ +} + +%% ~Make other sections like Warning with \section{Warning }{....} ~ + +\seealso{ +%% ~~objects to See Also as \code{\link{help}}, ~~~ +} +\examples{ +##---- Should be DIRECTLY executable !! ---- +##-- ==> Define data, use random, +##-- or do help(data=index) for the standard data sets. + +## The function is currently defined as +function(datavals, ylabel, ...){ + plot(datavals$DataValues$LocalDateTime, datavals$DataValues$DataValue, xlab="Date", ylab=ylabel, ...) + } +} +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ ~kwd1 } +\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/man/saveDataSeries.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/man/saveDataSeries.Rd new file mode 100644 index 00000000..96f19f17 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_1/man/saveDataSeries.Rd @@ -0,0 +1,99 @@ +\name{saveDataSeries} +\alias{saveDataSeries} +%- Also NEED an '\alias' for EACH other topic documented here. +\title{Takes a Data Series List and saves it to the database} +\description{ +%% ~~ A concise (1-5 lines) description of what the function does. ~~ +} +\usage{ +saveDataSeries(connectionString, newSeries, SQLite = TRUE, overwrite = TRUE) +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{connectionString}{ +%% ~~Describe \code{connectionString} here~~ +} + \item{newSeries}{ +%% ~~Describe \code{newSeries} here~~ +} + \item{SQLite}{ +%% ~~Describe \code{SQLite} here~~ +} + \item{overwrite}{ +%% ~~Describe \code{overwrite} here~~ +} +} +\details{ +%% ~~ If necessary, more details than the description above ~~ +} +\value{ +%% ~Describe the value returned +%% If it is a LIST, use +%% \item{comp1 }{Description of 'comp1'} +%% \item{comp2 }{Description of 'comp2'} +%% ... +} +\references{ +%% ~put references to the literature/web site here ~ +} +\author{ +%% ~~who you are~~ +} +\note{ +%% ~~further notes~~ +} + +%% ~Make other sections like Warning with \section{Warning }{....} ~ + +\seealso{ +%% ~~objects to See Also as \code{\link{help}}, ~~~ +} +\examples{ +##---- Should be DIRECTLY executable !! ---- +##-- ==> Define data, use random, +##-- or do help(data=index) for the standard data sets. + +## The function is currently defined as +function(connectionString, newSeries, SQLite = TRUE, overwrite= TRUE){ +if(SQLite==TRUE){ +driver<-dbDriver("SQLite") + con<- dbConnect(driver, dbname=connectionString) + dbBeginTransaction(con) + +siteID<-getSiteID(con, newSeries$Site, overwrite) +variableID<-getVariableID(con, newSeries$Variable, overwrite) +methodID<-getMethodID(con, newSeries$Method, overwrite) +qclID<-getQualityControlLevelID(con, newSeries$QualityControlLevel, overwrite) +vunitsID<-getUnitsID(con, newSeries$VariableUnits,overwrite) +tunitsID<-getUnitsID(con, newSeries$TimeUnits,overwrite) +sourceID<-getSourceID(con, newSeries$Source, overwrite) +SeriesID<-getSeriesID(con, list(site=siteID, variable=variableID, method=methodID, qcl=qclID, source=sourceID), newSeries$DataSeries, newSeries$DataValues , overwrite) + +#dataValues Mandatory:ValueID, DataValue, LocalDateTime, UTCOffcet, DateTimeUTC, SiteID, VariableID, CensorCode, MethodID, SourceID, QualityControlLevelID +for(i in 1:length(newSeries$DataValues$DataValue)){ +ser<-newSeries$DataValues +if(overwrite==FALSE){ +#print( paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",ser$ValueAccuracy[i],", '", format(ser$LocalDateTime[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ",ser$UTCOffset[i],", '",format(ser$DateTimeUTC[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ", ser$OffsetValue[i],", '", ser$OffsetTypeID[i],"', '", ser$CensorCode[i],"', '", ser$QualifierID[i],"', '", ser$SampleID[i],"', '", ser$FileID[i], "')", sep="")) +dbGetQuery(con,paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",ser$ValueAccuracy[i],", '", format(ser$LocalDateTime[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ",ser$UTCOffset[i],", '",format(ser$DateTimeUTC[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ", ser$OffsetValue[i],", '", ser$OffsetTypeID[i],"', '", ser$CensorCode[i],"', '", ser$QualifierID[i],"', '", ser$SampleID[i],"', '", ser$FileID[i], "')", sep="")) + } +else{ +count<-dbGetQuery(con, paste("SELECT COUNT(DataValue) FROM DataValues WHERE SeriesID=",SeriesID, " AND LocalDateTime = '", format(newSeries$DataValues$LocalDateTime[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"'", sep="")) +if (count==0){ +#print(paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",ser$ValueAccuracy[i],", '", format(ser$LocalDateTime[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ",ser$UTCOffset[i],", '",format(ser$DateTimeUTC[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ", ser$OffsetValue[i],", '", ser$OffsetTypeID[i],"', '", ser$CensorCode[i],"', '", ser$QualifierID[i],"', '", ser$SampleID[i],"', '", ser$FileID[i], "')", sep="")) +dbGetQuery(con,paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",ser$ValueAccuracy[i],", '", format(ser$LocalDateTime[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ",ser$UTCOffset[i],", '",format(ser$DateTimeUTC[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ", ser$OffsetValue[i],", '", ser$OffsetTypeID[i],"', '", ser$CensorCode[i],"', '", ser$QualifierID[i],"', '", ser$SampleID[i],"', '", ser$FileID[i], "')", sep="")) + } +else{ +#print(paste("UPDATE DataValues SET DataValue=", newSeries$DataValues$DataValue[i], " WHERE SeriesID=",SeriesID, " AND LocalDateTime ='", format(newSeries$DataValues$LocalDateTime[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"'", sep="")) +dbGetQuery(con, paste("UPDATE DataValues SET DataValue=", newSeries$DataValues$DataValue[i], " WHERE SeriesID=",SeriesID, " AND LocalDateTime ='", format(newSeries$DataValues$LocalDateTime[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"'", sep="")) + } + } + } +dbCommit(con) + dbDisconnect(con) + } + } +} +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ ~kwd1 } +\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/DESCRIPTION b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/DESCRIPTION new file mode 100644 index 00000000..21f8e7ee --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/DESCRIPTION @@ -0,0 +1,11 @@ +Package: HydroR +Type: Package +Title: CUAHSI HIS HydroDesktop Plugin +Version: 1.0 +Date: 2010-08-18 +Author: Utah State University +Depends: DBI, RSQLite, tcltk +Maintainer: Utah State University +Description: HydroDesktop Data Interface +License: GPL-2 | GPL-3 +LazyLoad: yes diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/LICENCE b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/LICENCE new file mode 100644 index 00000000..ffe3816d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/LICENCE @@ -0,0 +1,13 @@ +This package is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 or 3 of the License +(at your option). + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +A copy of the GNU General Public License is available at +http://www.r-project.org/Licenses/ . A copy of version 2 is +included in the sources as file COPYING. diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/NAMESPACE b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/NAMESPACE new file mode 100644 index 00000000..7ce7a597 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/NAMESPACE @@ -0,0 +1,12 @@ +# Default NAMESPACE created by R +# Remove the previous line if you edit this file + +# Export all names +exportPattern(".") + +# Import all packages listed as Imports or Depends +import( + DBI, + RSQLite, + tcltk +) diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/R/createDataSeries.R b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/R/createDataSeries.R new file mode 100644 index 00000000..ec60daf1 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/R/createDataSeries.R @@ -0,0 +1,41 @@ +createDataSeries <- +function(connectionString, SQLite= TRUE) +{ + if(SQLite==TRUE) + { + driver<-dbDriver("SQLite") + con<- dbConnect(driver, dbname=connectionString) + dbBeginTransaction(con) + dValues<-createDataValues(con, SQLite) + dSeries<- dbGetQuery(con, "SELECT * FROM DataSeries WHERE SeriesID = -99999999") + #dSeries$BeginDateTime<-strptime(dSeries$BeginDateTime, format= "%Y-%m-%d %H:%M:%S") + #dSeries$BeginDateTimeUTC<-strptime(dSeries$BeginDateTimeUTC, format= "%Y-%m-%d %H:%M:%S") + #dSeries$EndDateTime<-strptime(dSeries$EndDateTime, format= "%Y-%m-%d %H:%M:%S") + #dSeries$EndDateTimeUTC<-strptime(dSeries$EndDateTimeUTC, format= "%Y-%m-%d %H:%M:%S") + #dSeries$CreationDateTime<-strptime(dSeries$CreationDateTime, format= "%Y-%m-%d %H:%M:%S") + #dSeries$UpdateDateTime<-strptime(dSeries$UpdateDateTime, format= "%Y-%m-%d %H:%M:%S") + #dSeries$LastcheckedDateTime<-strptime(dSeries$LastCheckedDateTime, format= "%Y-%m-%d %H:%M:%S") + + variableData<-dbGetQuery(con, "SELECT * FROM Variables WHERE VariableID=-99999999") + siteData<-dbGetQuery(con, "SELECT * FROM Sites WHERE SiteID=-99999999") + variableUnits<-dbGetQuery(con, "SELECT * FROM Units WHERE UnitsID=-99999999") + timeUnits<-dbGetQuery(con, "SELECT * FROM Units WHERE UnitsID=-99999999") + methodData<-dbGetQuery(con, "SELECT * FROM Methods WHERE MethodID=-99999999") + sourceData<-dbGetQuery(con, "SELECT * FROM Sources WHERE SourceID=-99999999") + qualityControl<-dbGetQuery(con, "SELECT * FROM QualityControlLevels WHERE QualityControlLevelID=-99999999") + dbCommit(con) + dbDisconnect(con) + } + list(DataValues=dValues, DataSeries=dSeries, Site=siteData, Variable=variableData, Method=methodData, Sources=sourceData, VariableUnits=variableUnits, TimeUnits=timeUnits, QualityControlLevel=qualityControl) +} + + createDataValues<-function(con, SQLite) +{ + if(SQLite==TRUE) + { + dataFrame<-dbGetQuery(con, paste("SELECT * FROM DataValues WHERE SeriesID = -99999999 AND LocalDateTime BETWEEN '1800-01-01' AND '1800-01-01'", sep="" )) + dataFrame$LocalDateTime<-strptime(dataFrame$LocalDateTime, format= "%Y-%m-%d %H:%M:%S") + dataFrame$DateTimeUTC<-strptime(dataFrame$DateTimeUTC, format= "%Y-%m-%d %H:%M:%S") + } + dataFrame +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/R/getDataSeries.R b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/R/getDataSeries.R new file mode 100644 index 00000000..b86abaee --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/R/getDataSeries.R @@ -0,0 +1,41 @@ +getDataSeries <- +function(connectionString, seriesID, SQLite= TRUE, startDate="1900-01-01", endDate="2050-12-31") +{ + if(SQLite==TRUE) + { + driver<-dbDriver("SQLite") + con<- dbConnect(driver, dbname=connectionString) + dbBeginTransaction(con) + dValues<-getDataValues(con, seriesID, SQLite ,startDate, endDate) + dSeries<- dbGetQuery(con, paste("SELECT * FROM DataSeries WHERE SeriesID = " ,seriesID, sep="" )) + #format(dSeries$LocalDateTime, format= "%Y-%m-%d %H:%M:%S", usetz= FALSE) + #dSeries$BeginDateTime<-as.Date(dSeries$BeginDateTime, "%Y-%m-%d %H:%M:%S") + dSeries$BeginDateTime<-strptime(dSeries$BeginDateTime, format= "%Y-%m-%d %H:%M:%S") + dSeries$BeginDateTimeUTC<-strptime(dSeries$BeginDateTimeUTC, format= "%Y-%m-%d %H:%M:%S") + dSeries$EndDateTime<-strptime(dSeries$EndDateTime, format= "%Y-%m-%d %H:%M:%S") + dSeries$EndDateTimeUTC<-strptime(dSeries$EndDateTimeUTC, format= "%Y-%m-%d %H:%M:%S") + dSeries$CreationDateTime<-strptime(dSeries$CreationDateTime, format= "%Y-%m-%d %H:%M:%S") + dSeries$UpdateDateTime<-strptime(dSeries$UpdateDateTime, format= "%Y-%m-%d %H:%M:%S") + dSeries$LastcheckedDateTime<-strptime(dSeries$LastcheckedDateTime, format= "%Y-%m-%d %H:%M:%S") + variableData<-dbGetQuery(con, paste("SELECT * FROM Variables WHERE VariableID=", dSeries$VariableID)) + siteData<-dbGetQuery(con, paste("SELECT * FROM Sites WHERE SiteID=", dSeries$SiteID)) + variableUnits<-dbGetQuery(con, paste("SELECT * FROM Units WHERE UnitsID=", variableData$VariableUnitsID)) + timeUnits<-dbGetQuery(con, paste("SELECT * FROM Units WHERE UnitsID=", variableData$TimeUnitsID )) + methodData<-dbGetQuery(con, paste("SELECT * FROM Methods WHERE MethodID=", dSeries$MethodID)) + sourceData<-dbGetQuery(con, paste("SELECT * FROM Sources WHERE SourceID=", dSeries$SourceID)) + qualityControl<-dbGetQuery(con, paste("SELECT * FROM QualityControlLevels WHERE QualityControlLevelID=", dSeries$QualityControlLevelID)) + dbCommit(con) + dbDisconnect(con) + } + list(DataValues=dValues, DataSeries=dSeries, Site=siteData, Variable=variableData, Method=methodData, Source=sourceData, VariableUnits=variableUnits, TimeUnits=timeUnits, QualityControlLevel=qualityControl) +} + + getDataValues<-function(con, seriesID, SQLite ,startDate, endDate) +{ + dataFrame<-dbGetQuery(con, paste("SELECT * FROM DataValues WHERE SeriesID = " ,seriesID, " AND LocalDateTime BETWEEN '", startDate,"' AND '", endDate,"'", sep="" )) + #dataFrame$LocalDateTime<-as.Date(dataFrame$LocalDateTime, "%Y-%m-%d %H:%M:%S") + #format(dSeries$LocalDateTime, format= "%Y-%m-%d %H:%M:%S", usetz= FALSE) + dataFrame$LocalDateTime<-strptime(dataFrame$LocalDateTime, format= "%Y-%m-%d %H:%M:%S") + dataFrame$DateTimeUTC<-strptime(dataFrame$DateTimeUTC, format= "%Y-%m-%d %H:%M:%S") + dataFrame +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/R/getDataWithSQL.R b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/R/getDataWithSQL.R new file mode 100644 index 00000000..2be7ff2e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/R/getDataWithSQL.R @@ -0,0 +1,11 @@ +getDataWithSQL <- +function(connectionString, SQLString, SQLite = TRUE) +{ + if(SQLite==TRUE) + { + driver<-dbDriver("SQLite") + con <- dbConnect(driver, dbname=connectionString) + return(dbGetQuery(con, SQLString)) + } +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/R/plotDataSeries.R b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/R/plotDataSeries.R new file mode 100644 index 00000000..31a6385c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/R/plotDataSeries.R @@ -0,0 +1,6 @@ +plotDataSeries <- +function(datavals, ylabel, ...) +{ + plot(datavals$DataValues$LocalDateTime, datavals$DataValues$DataValue, xlab="Date", ylab=ylabel, ...) +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/R/saveDataSeries.R b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/R/saveDataSeries.R new file mode 100644 index 00000000..27de5a4e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/R/saveDataSeries.R @@ -0,0 +1,299 @@ +saveDataSeries <- +function(connectionString, newSeries, SQLite = TRUE, overwrite= TRUE) +{ + if(SQLite==TRUE) + { + driver<-dbDriver("SQLite") + con<- dbConnect(driver, dbname=connectionString) + dbBeginTransaction(con) + + siteID<-getSiteID(con, newSeries$Site, overwrite) + vunitsID<-getUnitsID(con, newSeries$VariableUnits,overwrite) + tunitsID<-getUnitsID(con, newSeries$TimeUnits,overwrite) + variableID<-getVariableID(con, newSeries$Variable, overwrite) + methodID<-getMethodID(con, newSeries$Method, overwrite) + sourceID<-getSourceID(con, newSeries$Source, overwrite) + qclID<-getQualityControlLevelID(con, newSeries$QualityControlLevel, overwrite) + + SeriesID<-getSeriesID(con, list(site=siteID, variable=variableID, method=methodID, qcl=qclID, sources=sourceID), newSeries$DataSeries, newSeries$DataValues , overwrite) + + + ser<-newSeries$DataValues + for(i in 1:length(newSeries$DataValues$DataValue)) + { + if(is.null(ser$DataValue[i])|| is.null(ser$LocalDateTime[i])|| is.null(ser$UTCOffset[i])|| is.null(ser$CensorCode[i])||is.null(ser$DateTimeUTC[i])|| !nchar(ser$DataValue[i])|| !nchar(ser$LocalDateTime[i])|| !nchar(ser$UTCOffset[i])|| !nchar(ser$CensorCode[i])|| !nchar(ser$DateTimeUTC[i])) + { + dbDisconnect(con) + stop(paste("All of the Mandatory Values information was not filled out for row #", i, sep= "")) + } + else + { + if(overwrite==FALSE) + { + #print( paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",dbFormat(ser$ValueAccuracy[i]),", '", format(ser$LocalDateTime[i],"%Y-%m-%d %H:%M:%S"),"', ",dbFormat(ser$UTCOffset[i]),", '",format(ser$DateTimeUTC[i],"%Y-%m-%d %H:%M:%S"),"', ", dbFormat(ser$OffsetValue[i]),", ", dbFormat(ser$OffsetTypeID[i]),", ", dbFormat(ser$CensorCode[i]),", ", dbFormat(ser$QualifierID[i]),", ", dbFormat(ser$SampleID[i]),", ", dbFormat(ser$FileID[i]), ")", sep="")) + dbGetQuery(con,paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",dbFormat(ser$ValueAccuracy[i]),", '",ser$LocalDateTime[i],"', ",dbFormat(ser$UTCOffset[i]),", '",ser$DateTimeUTC[i],"', ", dbFormat(ser$OffsetValue[i]),", ", dbFormat(ser$OffsetTypeID[i]),", ", dbFormat(ser$CensorCode[i]),", ", dbFormat(ser$QualifierID[i]),", ", dbFormat(ser$SampleID[i]),", ", dbFormat(ser$FileID[i]), ")", sep="")) + } + else + { + count<-dbGetQuery(con, paste("SELECT COUNT(DataValue) FROM DataValues WHERE SeriesID=",SeriesID, " AND LocalDateTime = '", newSeries$DataValues$LocalDateTime[i],"'", sep="")) + if (count==0) + { + #print(paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",dbFormat(SeriesID),", ", dbFormat(ser$DataValue[i]),", ", dbFormat(ser$ValueAccuracy[i]),", '", format(ser$LocalDateTime[i],"%Y-%m-%d %H:%M:%S"),"', ",dbFormat(ser$UTCOffset[i]),", '",format(ser$DateTimeUTC[i],"%Y-%m-%d %H:%M:%S"),"', ", dbFormat(ser$OffsetValue[i]),", '", dbFormat(ser$OffsetTypeID[i]),"', '", dbFormat(ser$CensorCode[i]),"', '", dbFormat(ser$QualifierID[i]),"', '", dbFormat(ser$SampleID[i]),"', '", dbFormat(ser$FileID[i]), "')", sep="")) + dbGetQuery(con,paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",dbFormat(SeriesID),", ", dbFormat(ser$DataValue[i]),", ", dbFormat(ser$ValueAccuracy[i]),", '", ser$LocalDateTime[i],"', ",dbFormat(ser$UTCOffset[i]),", '",ser$DateTimeUTC[i],"', ", dbFormat(ser$OffsetValue[i]),", '", dbFormat(ser$OffsetTypeID[i]),"', '", dbFormat(ser$CensorCode[i]),"', '", dbFormat(ser$QualifierID[i]),"', '", dbFormat(ser$SampleID[i]),"', '", dbFormat(ser$FileID[i]), "')", sep="")) + } + else + { + #print(paste("UPDATE DataValues SET DataValue=", newSeries$DataValues$DataValue[i], " WHERE SeriesID=",SeriesID, " AND LocalDateTime ='", format(newSeries$DataValues$LocalDateTime[i],"%Y-%m-%d %H:%M:%S"),"'", sep="")) + dbGetQuery(con, paste("UPDATE DataValues SET DataValue=", newSeries$DataValues$DataValue[i], " WHERE SeriesID=",SeriesID, " AND LocalDateTime ='", newSeries$DataValues$LocalDateTime[i],"'", sep="")) + } + } + } + } + dbCommit(con) + dbDisconnect(con) + } + + getDataSeries(connectionString, SeriesID, SQLite, startDate=min(as.character(newSeries$DataValues$LocalDateTime)), endDate=max(as.character(newSeries$DataValues$LocalDateTime))) +} + + dbFormat<-function(val){ + if(is.null(val)|| val== ''|| is.na(val)) + { + "NULL" + } + else + { + if(is.character(val)) + { + paste("'", val,"'", sep="") + } + else + { + val + } + } +} + + + +getNextValueID<-function(con){ + dbGetQuery(con, paste("SELECT MAX(ValueID) FROM DataValues"))+1 +} + +getNextSeriesID<-function(con){ + dbGetQuery(con, paste("SELECT MAX(SeriesID) FROM DataSeries"))+1 +} + +getSeriesID<-function(con, S, Series, Values, overwrite){ + if(overwrite==TRUE ) + { + seriesID<-dbGetQuery(con, paste("SELECT SeriesID FROM DataSeries WHERE SiteID=",Series$SiteID, " AND VariableID=", Series$VariableID, " AND MethodID=",Series$MethodID," AND QualityControlLevelID=",Series$QualityControlLevelID ," AND SourceID=",Series$SourceID, sep="" )) + dbGetQuery(con, paste("UPDATE DataSeries SET UpdateDateTime= '", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"), "', ValueCount=", nrow(Values),", BeginDateTime='",min(Values$LocalDateTime),"', EndDateTime='",max(Values$LocalDateTime),"', BeginDateTimeUTC='",min(Values$DateTimeUTC),"',EndDateTimeUTC='",max(Values$DateTimeUTC),"' WHERE SeriesID=", seriesID, sep="" )) + } + else{ + #print(paste("SELECT SeriesID FROM DataSeries WHERE SiteID=",S$site, " AND VariableID=", S$variable, " AND MethodID=",S$method," AND QualityControlLevelID=",S$qcl," AND SourceID=",S$sources, sep="" )) + seriesID<-dbGetQuery(con, paste("SELECT SeriesID FROM DataSeries WHERE SiteID=",S$site, " AND VariableID=", S$variable, " AND MethodID=",S$method," AND QualityControlLevelID=",S$qcl," AND SourceID=",S$sources, sep="" )) + if(is.null(S$site)|| is.null(S$variable)|| is.null(S$method)|| is.null(S$qcl)|| is.null(S$sources)|| !nchar(S$site)|| !nchar(S$variable)|| !nchar(S$method)|| !nchar(S$qcl) || !nchar(S$sources)) + { + dbDisconnect(con) + #tkmessageBox(message="All of the Mandatory Series information was not filled out, the Series data will not be written to the database",icon="error",type="ok") + stop("All of the Mandatory Series information was not filled out") + + #print(paste(S$site, S$variable, S$method, S$qcl, S$source,nchar(S$site), nchar(S$variable),nchar(S$method),nchar(S$qcl) ,nchar(S$sources), sep=", ")) + } + else + { + #if(S$site==Series$SiteID && S$variable==Series$VariableID && S$method==Series$MethodID && S$sources==Series$SourceID && S$qcl==Series$QualityControlLevelID ) + #{ + # tkmessageBox(message="You have Not edited your Metadata but have set overwrite==FALSE. You may end up with duplicate entries in your database.",icon="error",type="ok") + #} + #else + #{ + + Values$LocalDateTime<-as.character(Values$LocalDateTime) + Values$DateTimeUTC<-as.character(Values$DateTimeUTC) + if(nrow(seriesID)==0) + { + # print(paste("INSERT INTO DataSeries VALUES(",getNextSeriesID(con),", ",dbFormat(S$site),", ", dbFormat(S$variable),", ", dbFormat(Series$IsCategorical),", ", dbFormat(S$method),", ", dbFormat(S$sources),", ", dbFormat(S$qcl),", '", format(min(Values$LocalDateTime),"%Y-%m-%d %H:%M:%S"),"', '", format(max(Values$LocalDateTime),"%Y-%m-%d %H:%M:%S"),"', '", format(min(Values$DateTimeUTC),"%Y-%m-%d %H:%M:%S"),"', '", format(max(Values$DateTimeUTC),"%Y-%m-%d %H:%M:%S"),"', ", dbFormat(nrow(Values)),", '", format(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', ", dbFormat(Series$Subscribed),", '", format(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', '", format(Sys.time(),"%Y-%m-%d %H:%M:%S"),"')",sep="")) + dbGetQuery(con,paste("INSERT INTO DataSeries VALUES(",getNextSeriesID(con),", ",dbFormat(S$site),", ", dbFormat(S$variable),", ",dbFormat(Series$IsCategorical),", ", dbFormat(S$method),", ", dbFormat(S$sources),", ", dbFormat(S$qcl),", '", min(Values$LocalDateTime),"', '", max(Values$LocalDateTime),"', '", min(Values$DateTimeUTC),"', '", max(Values$DateTimeUTC),"', ", dbFormat(nrow(Values)),", '", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', ", dbFormat(Series$Subscribed),", '", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', '", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"),"')",sep="")) + } + else + { + query= paste("UPDATE DataSeries SET BeginDateTime='", min(Values$LocalDateTime),"', EndDateTime='", max(Values$LocalDateTime),"', BeginDateTimeUTC='", min(Values$DateTimeUTC),"', EndDateTimeUTC='", max(Values$DateTimeUTC),"', ValueCount=", dbFormat(nrow(Values)),", UpdateDateTime='", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', LastCheckedDateTime= '", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"),"' where SeriesID = " ,seriesID ,sep="") + dbGetQuery(con,paste("UPDATE DataSeries SET BeginDateTime='", min(Values$LocalDateTime),"', EndDateTime='", max(Values$LocalDateTime),"', BeginDateTimeUTC='", min(Values$DateTimeUTC),"', EndDateTimeUTC='", max(Values$DateTimeUTC),"', ValueCount=", dbFormat(nrow(Values)),", UpdateDateTime='", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"),"', LastCheckedDateTime= '", strptime(Sys.time(),"%Y-%m-%d %H:%M:%S"),"' where SeriesID = " ,seriesID ,sep="")) + + } + #} + #print(paste("SELECT SeriesID FROM DataSeries WHERE SiteID=",S$site, " AND VariableID=", S$variable, " AND MethodID=",S$method," AND QualityControlLevelID=",S$qcl," AND SourceID=",S$sources, sep="" )) + seriesID<-dbGetQuery(con, paste("SELECT SeriesID FROM DataSeries WHERE SiteID=",S$site, " AND VariableID=", S$variable, " AND MethodID=",S$method," AND QualityControlLevelID=",S$qcl," AND SourceID=",S$sources, sep="" )) + } + } + seriesID +} + +getSiteID<-function(con, Site, overwrite){ +#Mandatory: siteID, siteCode, siteName, Latitude, longitude, LatLongDatumID + #print(paste("SELECT SiteID FROM Sites WHERE SiteCode='",Site$SiteCode, "' AND SiteName='", Site$SiteName, "'", sep="" )) + siteID<-dbGetQuery(con, paste("SELECT SiteID FROM Sites WHERE SiteCode='",Site$SiteCode, "'AND SiteName='", Site$SiteName, "'", sep="" )) + if(nrow(siteID)==0) + { + if(overwrite==TRUE){ + #print("You have edited your site information but have set overwrite==TRUE so the data is not being written to the database. Overwrite=TRUE means you want to change the datavalues but keep the rest of the data the same") + tkmessageBox(message="You have edited your site information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if(is.null(Site$SiteCode)|| is.null(Site$SiteName)|| is.null(Site$Latitude)|| is.null(Site$Longitude)|| is.null(Site$LatLongDatumID)|| !nchar(Site$SiteCode)|| !nchar(Site$SiteName)|| !nchar(Site$Latitude)|| !nchar(Site$Longitude) || !nchar(Site$LatLongDatumID)) + { + #print(paste(Site$SiteCode, Site$SiteName, Site$Latitude, Site$Longitude, Site$LatLongDatumID,nchar(Site$SiteCode), nchar(Site$SiteName),nchar(Site$Latitude),nchar(Site$Longitude) ,nchar(Site$LatLongDatumID), sep=", ")) + #tkmessageBox(message="All of the Mandatory site information was not filled out, the Site data will not be written to the database",icon="error",type="ok") + dbDisconnect(con) + stop("All of the Mandatory Site information was not filled out") + } + else + { + #print(paste("INSERT INValueO Sites VALUES(",dbGetQuery(con, paste("SELECT MAX(SiteID) FROM Sites"))+1,", ", dbFormat(Site$SiteCode),", ", dbFormat(Site$SiteName),", ", dbFormat(Site$Latitude),", ", dbFormat(Site$Longitude),", ",dbFormat(Site$LatLongDatumID),", ", dbFormat(Site$Elevation_m),", ", dbFormat(Site$VerticalDatum),", ", dbFormat(Site$LocalX),", ", dbFormat(Site$LocalY),", ",dbFormat(Site$LocalProjectionID),", ", dbFormat(Site$PosAccuracy_m),", ", dbFormat(Site$State),", ", dbFormat(Site$County),", ", dbFormat(Site$Comments) , ")", sep = "")) + dbGetQuery(con, paste("INSERT INTO Sites VALUES(",dbGetQuery(con, paste("SELECT MAX(SiteID) FROM Sites"))+1,", ", dbFormat(Site$SiteCode),", ", dbFormat(Site$SiteName),", ", dbFormat(Site$Latitude),", ", dbFormat(Site$Longitude),", ",dbFormat(Site$LatLongDatumID),", ", dbFormat(Site$Elevation_m),", ", dbFormat(Site$VerticalDatum),", ", dbFormat(Site$LocalX),", ", dbFormat(Site$LocalY),", ",dbFormat(Site$LocalProjectionID),", ", dbFormat(Site$PosAccuracy_m),", ", dbFormat(Site$State),", ", dbFormat(Site$County),", ", dbFormat(Site$Comments) , ")", sep = "")) + siteID<-dbGetQuery(con, paste("SELECT SiteID FROM Sites WHERE SiteCode='",Site$SiteCode, "'AND SiteName='", Site$SiteName, "'", sep="" )) + + } + } + } + siteID +} + +getVariableID<-function(con, Variable, overwrite){ +#Mandatory: VariableID, VariableCode, VariableName, Speciation, VariableUnitsID, SampleMedium, ValueType, IsRegular, TimeSupport, TimeUnitsID, DataType, GeneralCategory, NoDataValue + #print(paste("SELECT VariableID FROM Variables WHERE VariableCode='", Variable$VariableCode, "' AND VariableName='",Variable$VariableName,"' AND VariableUnitsID=",Variable$VariableUnitsID, sep="")) + variableID<-dbGetQuery(con, paste("SELECT VariableID FROM Variables WHERE VariableCode='", Variable$VariableCode, "' AND VariableName='",Variable$VariableName,"' AND VariableUnitsID=",Variable$VariableUnitsID, sep="")) + if(nrow(variableID)==0){ + if(overwrite==TRUE){ + tkmessageBox(message="You have edited your variable information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if( is.null(Variable$VariableCode)|| !nchar(Variable$VariableCode)|| is.null(Variable$VariableName)|| !nchar(Variable$VariableName)|| is.null(Variable$Speciation)|| !nchar(Variable$Speciation)|| is.null(Variable$VariableUnitsID)|| !nchar(Variable$VariableUnitsID)|| is.null(Variable$SampleMedium)|| !nchar(Variable$SampleMedium)|| is.null(Variable$ValueType)|| !nchar(Variable$ValueType)|| is.null(Variable$IsRegular)|| !nchar(Variable$IsRegular)|| is.null(Variable$TimeSupport)|| !nchar(Variable$TimeSupport)|| is.null(Variable$TimeUnitsID)|| !nchar(Variable$TimeUnitsID)|| is.null(Variable$DataType)|| !nchar(Variable$DataType)|| is.null(Variable$GeneralCategory)|| !nchar(Variable$GeneralCategory)|| is.null(Variable$NoDataValue)|| !nchar(Variable$NoDataValue)) + { + #tkmessageBox(message="All of the Mandatory Variable information was not filled out, the Variable data will not be written to the database",icon="error",type="ok") + dbDisconnect(con) + stop("All of the Mandatory Variable information was not filled out") + } + else + { + #print(paste("INSERT INTO Variables VALUES(",dbGetQuery(con, paste("SELECT MAX(VariableID) FROM Variables"))+1,", ", dbFormat(Variable$VariableCode),", ", dbFormat(Variable$VariableName),", ", dbFormat(Variable$Speciation),", ", dbFormat(Variable$VariableUnitsID),", ",dbFormat(Variable$SampleMedium),", ", dbFormat(Variable$ValueType),", ", dbFormat(Variable$IsRegular),", ", dbFormat(Variable$IsCategorical),", ", dbFormat(Variable$TimeSupport),", ", dbFormat(Variable$TimeUnitsID),", ", dbFormat(Variable$DataType),", ", dbFormat(Variable$GeneralCategory),", ", dbFormat(Variable$NoDataValue),", ", dbFormat(Variable$ConceptID) , ")", sep = "")) + dbGetQuery(con, paste("INSERT INTO Variables VALUES(",dbGetQuery(con, paste("SELECT MAX(VariableID) FROM Variables"))+1,", ", dbFormat(Variable$VariableCode),", ", + dbFormat(Variable$VariableName),", ", dbFormat(Variable$Speciation),", ", dbFormat(Variable$VariableUnitsID),", ",dbFormat(Variable$SampleMedium),", ", dbFormat(Variable$ValueType),", ", + dbFormat(Variable$IsRegular),", ", dbFormat(Variable$IsCategorical),", ", dbFormat(Variable$TimeSupport),", ", dbFormat(Variable$TimeUnitsID),", ", dbFormat(Variable$DataType),", ", + dbFormat(Variable$GeneralCategory),", ", dbFormat(Variable$NoDataValue),", ", dbFormat(Variable$ConceptID) , ")", sep = "")) + variableID<-dbGetQuery(con, paste("SELECT VariableID FROM Variables WHERE VariableCode='", Variable$VariableCode, "' AND VariableName='",Variable$VariableName,"' AND VariableUnitsID=",Variable$VariableUnitsID, sep="")) + + } + } + } + variableID +} + +getMethodID<-function(con, Method, overwrite){ +#Mandatory: MethodID, MethodDescription + #print(paste("SELECT MethodID FROM Methods WHERE MethodLink='", Method$MethodLink, "' AND MethodDescription='",Method$MethodDescription, "'", sep="")) + methodID<-dbGetQuery(con, paste("SELECT MethodID FROM Methods WHERE MethodLink='", Method$MethodLink, "' AND MethodDescription='",Method$MethodDescription, "'", sep="")) + if(nrow(methodID)==0){ + if(overwrite==TRUE){ + tkmessageBox(message="You have edited your method information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if(is.null(Method$MethodDescription)|| !nchar(Method$MethodDescription)||is.null(Method$MethodLink)|| !nchar(Method$MethodLink)){ + #tkmessageBox(message="All of the Mandatory Method information was not filled out, the Method data will not be written to the database",icon="error",type="ok") + dbDisconnect(con) + stop("All of the Mandatory Method information was not filled out") + }else{ + #print(paste("INSERT INTO Methods VALUES(",dbGetQuery(con, paste("SELECT MAX(MethodID) FROM Methods"))+1,", '", Method$MethodDescription,"', '", Method$MethodLink,"')", sep = "")) + query<- paste("INSERT INTO Methods VALUES(",dbGetQuery(con, paste("SELECT MAX(MethodID) FROM Methods"))+1,", ", dbFormat(Method$MethodDescription),", ", dbFormat(Method$MethodLink),")", sep = "") + dbGetQuery(con, paste("INSERT INTO Methods VALUES(",dbGetQuery(con, paste("SELECT MAX(MethodID) FROM Methods"))+1,", ", dbFormat(Method$MethodDescription),", ", dbFormat(Method$MethodLink),")", sep = "")) + methodID<-dbGetQuery(con, paste("SELECT MethodID FROM Methods WHERE MethodLink=", dbFormat(Method$MethodLink), " AND MethodDescription=",dbFormat(Method$MethodDescription), "", sep="")) + + } + } + } + methodID +} + +getSourceID<-function(con, Sources, overwrite){ +#Mandatory: SourceID, Organization, sourceDescription, ContactName, Phone, Email, Address, City, state, ZipCode, Citation, MetadataID + #print(paste("SELECT SourceID FROM Sources WHERE Organization='", Sources$Organization, "' AND SourceLink='",Sources$SourceLink, "' AND ContactName='",Sources$ContactName,"' AND City='",Sources$City,"'", sep="")) + sourceID<-dbGetQuery(con, paste("SELECT SourceID FROM Sources WHERE Organization='", Sources$Organization, "' AND SourceLink='",Sources$SourceLink, "' AND ContactName='",Sources$ContactName,"' AND City='",Sources$City,"'", sep="")) + if(nrow(sourceID)==0){ + if(overwrite==TRUE){ + tkmessageBox(message="You have edited your Source information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else + { + if(is.null(Sources$Organization)|| !nchar(Sources$Organization)|| is.null(Sources$SourceDescription) || !nchar(Sources$SourceDescription)|| is.null(Sources$ContactName)|| !nchar(Sources$ContactName)|| is.null(Sources$Phone)|| !nchar(Sources$Phone)|| is.null(Sources$Email)|| !nchar(Sources$Email)|| is.null(Sources$Address)|| !nchar(Sources$Address)|| is.null(Sources$City)|| !nchar(Sources$City)|| is.null(Sources$State)|| !nchar(Sources$State)|| is.null(Sources$ZipCode)|| !nchar(Sources$ZipCode)|| is.null(Sources$Citation)|| !nchar(Sources$Citation)|| is.null(Sources$MetadataID)|| !nchar(Sources$MetadataID)) + { + #tkmessageBox(message="All of the Mandatory Source information was not filled out, the Source data will not be written to the database",icon="error",type="ok") + dbDisconnect(con) + stop("All of the Mandatory Source information was not filled out") + } + else + { + #print(paste("INSERT INTO Sources VALUES(",dbGetQuery(con, paste("SELECT MAX(SourceID) FROM Sources"))+1,", ",dbFormat(Sources$Organization),", ",dbFormat(Sources$SourceDescription),", ",dbFormat(Sources$SourceLink),", ",dbFormat(Sources$ContactName),", ",dbFormat(Sources$Phone),", ",dbFormat(Sources$Email),", ",dbFormat(Sources$Address),", ",dbFormat(Sources$City),", ",dbFormat(Sources$State),", ",dbFormat(Sources$ZipCode),", ",dbFormat(Sources$Citation),", ",dbFormat(Sources$MetadataID) ,")", sep = "")) + dbGetQuery(con, paste("INSERT INTO Sources VALUES(",dbGetQuery(con, paste("SELECT MAX(SourceID) FROM Sources"))+1,", ",dbFormat(Sources$Organization),", ",dbFormat(Sources$SourceDescription),", ",dbFormat(Sources$SourceLink),", ",dbFormat(Sources$ContactName),", ",dbFormat(Sources$Phone),", ",dbFormat(Sources$Email),", ",dbFormat(Sources$Address),", ",dbFormat(Sources$City),", ",dbFormat(Sources$State),", ",dbFormat(Sources$ZipCode),", ",dbFormat(Sources$Citation),", ",dbFormat(Sources$MetadataID) ,")", sep = "")) + sourceID<-dbGetQuery(con, paste("SELECT SourceID FROM Sources WHERE Organization='", Sources$Organization, "' AND SourceLink='",Sources$SourceLink, "' AND ContactName='",Sources$ContactName,"' AND City='",Sources$City,"'", sep="")) + + } + } + } + sourceID +} + +getQualityControlLevelID<-function(con, QCL, overwrite){ +#Mandatory: QualityControlLevelID, QualityControlLevelCode, Definition, Explanation + #print(paste("SELECT QualityControlLevelID FROM QualityControlLevels WHERE QualityControlLevelCode='", QCL$QualityControlLevelCode, "' AND Definition='",QCL$Definition, "'", sep="")) + qclID<-dbGetQuery(con, paste("SELECT QualityControlLevelID FROM QualityControlLevels WHERE QualityControlLevelCode='", QCL$QualityControlLevelCode, "' AND Definition='",QCL$Definition, "'", sep="")) + if(nrow(qclID)==0){ + if(overwrite==TRUE){ + tkmessageBox(message="You have edited your Quality Control information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if(is.null(QCL$QualityControlLevelCode)|| !nchar(QCL$QualityControlLevelCode)||is.null(QCL$Definition)|| !nchar(QCL$Definition)|| is.null(QCL$Explanation)|| !nchar(QCL$Explanation)) + { + #tkmessageBox(message="All of the Mandatory Quality Control information was not filled out, the Qualty Control data will not be written to the database",icon="error",type="ok") + dbDisconnect(con) + stop("All of the Mandatory Quality Control information was not filled out") + } + else + { + #print(paste("INSERT INTO QualityControlLevels VALUES(",dbGetQuery(con, paste("SELECT MAX(QualityControlLevelID) FROM QualityControlLevels"))+1,", ", dbFormat(QCL$QualityControlLevelCode),", ", dbFormat(QCL$Definition),", ", dbFormat(QCL$Explanation),")", sep = "")) + dbGetQuery(con, paste("INSERT INTO QualityControlLevels VALUES(",dbGetQuery(con, paste("SELECT MAX(QualityControlLevelID) FROM QualityControlLevels"))+1,", ", dbFormat(QCL$QualityControlLevelCode),", ", dbFormat(QCL$Definition),", ", dbFormat(QCL$Explanation),")", sep = "")) + qclID<-dbGetQuery(con, paste("SELECT QualityControlLevelID FROM QualityControlLevels WHERE QualityControlLevelCode='", QCL$QualityControlLevelCode, "' AND Definition='",QCL$Definition, "'", sep="")) + + } + } + } + qclID +} + +getUnitsID<-function(con, Units, overwrite){ +#Mandatory: UnitsID, UnitsName, UnitsType, UnitsAbbreviation + #print(paste("SELECT UnitsID FROM Units WHERE UnitsName='", Units$UnitsName, "' AND UnitsType='",Units$UnitsType, "' AND UnitsAbbreviation='",Units$UnitsAbbreviation,"'", sep="")) + unitID<-dbGetQuery(con, paste("SELECT UnitsID FROM Units WHERE UnitsName='", Units$UnitsName, "' AND UnitsType='",Units$UnitsType, "' AND UnitsAbbreviation='",Units$UnitsAbbreviation,"'", sep="")) + if(nrow(unitID)==0){ + if(overwrite==TRUE){ + tkmessageBox(message="You have edited your Units information but have set overwrite==TRUE so the data is not being written to the database.",icon="error",type="ok") + } + else{ + if(is.null(Units$UnitsName)|| !nchar(Units$UnitsName)|| is.null(Units$UnitsType)|| !nchar(Units$UnitsType)||is.null(Units$UnitsAbbreviation)|| !nchar(Units$UnitsAbbreviation)){ + #tkmessageBox(message="All of the Units information was not filled out, the Qualty Control data will not be written to the database",icon="error",type="ok") + dbDisconnect(con) + stop("All of the Mandatory Units information was not filled out") + } + else + { + #print(paste("INSERT INTO Units VALUES(",dbGetQuery(con, paste("SELECT MAX(UnitsID) FROM Units"))+1,", ",dbFormat(Units$UnitsName),", ",dbFormat(Units$UnitsType),", ",dbFormat(Units$UnitsAbbreviation),")", sep = "")) + dbGetQuery(con,paste("INSERT INTO Units VALUES(",dbGetQuery(con, paste("SELECT MAX(UnitsID) FROM Units"))+1,", ",dbFormat(Units$UnitsName),", ",dbFormat(Units$UnitsType),", ",dbFormat(Units$UnitsAbbreviation),")", sep = "")) + unitID<-dbGetQuery(con, paste("SELECT UnitsID FROM Units WHERE UnitsName='", Units$UnitsName, "' AND UnitsType='",Units$UnitsType, "' AND UnitsAbbreviation='",Units$UnitsAbbreviation,"'", sep="")) + + } + } + } + unitID +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/HydroR-package.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/HydroR-package.Rd new file mode 100644 index 00000000..54f12f80 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/HydroR-package.Rd @@ -0,0 +1,42 @@ +\name{HydroR-package} +\alias{HydroR-package} +\alias{HydroR} +\docType{package} +\title{{creates a interface with HydroDesktop a CUAHSI.org product} +} +\description{ +More about what it does (maybe more than one line) +~~ A concise (1-5 lines) description of the package ~~ +} +\details{ +\tabular{ll}{ +Package: \tab HydroR\cr +Type: \tab Package\cr +Version: \tab 1.0\cr +Date: \tab 2010-08-18\cr +License: \tab What license is it under?\cr +LazyLoad: \tab yes\cr +} +~~ An overview of how to use the package, including the most important ~~ +~~ functions ~~ +} +\author{ +Who wrote it + +Maintainer: Who to complain to +~~ The author and/or maintainer of the package ~~ +} +\references{ +~~ Literature or other references for background information ~~ +~~ Optionally other standard keywords, one per line, from file KEYWORDS ~~ +~~ in the R documentation directory ~~ +} + +\keyword{ package } +\seealso{ +~~ Optional links to other man pages, e.g. ~~ +~~ \code{\link[:-package]{}} ~~ +} +\examples{ +~~ simple examples of the most important functions ~~ +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/createDataSeries.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/createDataSeries.Rd new file mode 100644 index 00000000..9d7aae04 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/createDataSeries.Rd @@ -0,0 +1,76 @@ +\name{createDataSeries} +\alias{createDataSeries} +%- Also NEED an '\alias' for EACH other topic documented here. +\title{create a blank Data Series List} +\description{ +%% ~~ A concise (1-5 lines) description of what the function does. ~~ +} +\usage{ +createDataSeries(connectionString, SQLite = TRUE) +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{connectionString}{ +%% ~~Describe \code{connectionString} here~~ +} + \item{SQLite}{ +%% ~~Describe \code{SQLite} here~~ +} +} +\details{ +%% ~~ If necessary, more details than the description above ~~ +} +\value{ +%% ~Describe the value returned +%% If it is a LIST, use +%% \item{comp1 }{Description of 'comp1'} +%% \item{comp2 }{Description of 'comp2'} +%% ... +} +\references{ +%% ~put references to the literature/web site here ~ +} +\author{ +%% ~~who you are~~ +} +\note{ +%% ~~further notes~~ +} + +%% ~Make other sections like Warning with \section{Warning }{....} ~ + +\seealso{ +%% ~~objects to See Also as \code{\link{help}}, ~~~ +} +\examples{ +##---- Should be DIRECTLY executable !! ---- +##-- ==> Define data, use random, +##-- or do help(data=index) for the standard data sets. + +## The function is currently defined as +function(connectionString, SQLite= TRUE) +{ + if(SQLite==TRUE) + { + driver<-dbDriver("SQLite") + con<- dbConnect(driver, dbname=connectionString) + dbBeginTransaction(con) + dValues<-createDataValues(con, SQLite) + dSeries<- dbGetQuery(con, "SELECT * FROM DataSeries WHERE SeriesID = -99999999") + variableData<-dbGetQuery(con, "SELECT * FROM Variables WHERE VariableID=-99999999") + siteData<-dbGetQuery(con, "SELECT * FROM Sites WHERE SiteID=-99999999") + variableUnits<-dbGetQuery(con, "SELECT * FROM Units WHERE UnitsID=-99999999") + timeUnits<-dbGetQuery(con, "SELECT * FROM Units WHERE UnitsID=-99999999") + methodData<-dbGetQuery(con, "SELECT * FROM Methods WHERE MethodID=-99999999") + sourceData<-dbGetQuery(con, "SELECT * FROM Sources WHERE SourceID=-99999999") + qualityControl<-dbGetQuery(con, "SELECT * FROM QualityControlLevels WHERE QualityControlLevelID=-99999999") + dbCommit(con) + dbDisconnect(con) + } + list(DataValues=dValues, DataSeries=dSeries, Site=siteData, Variable=variableData, Method=methodData, Sources=sourceData, VariableUnits=variableUnits, TimeUnits=timeUnits, QualityControlLevel=qualityControl) + } +} +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ ~kwd1 } +\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/getDataSeries.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/getDataSeries.Rd new file mode 100644 index 00000000..81db4e40 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/getDataSeries.Rd @@ -0,0 +1,90 @@ +\name{getDataSeries} +\alias{getDataSeries} +%- Also NEED an '\alias' for EACH other topic documented here. +\title{get data and Metadata from database and stores it in a List} +\description{ +%% ~~ A concise (1-5 lines) description of what the function does. ~~ +} +\usage{ +getDataSeries(connectionString, seriesID, SQLite = TRUE, startDate = "1900-01-01", endDate = "2050-12-31") +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{connectionString}{ +%% ~~Describe \code{connectionString} here~~ +} + \item{seriesID}{ +%% ~~Describe \code{seriesID} here~~ +} + \item{SQLite}{ +%% ~~Describe \code{SQLite} here~~ +} + \item{startDate}{ +%% ~~Describe \code{startDate} here~~ +} + \item{endDate}{ +%% ~~Describe \code{endDate} here~~ +} +} +\details{ +%% ~~ If necessary, more details than the description above ~~ +} +\value{ +%% ~Describe the value returned +%% If it is a LIST, use +%% \item{comp1 }{Description of 'comp1'} +%% \item{comp2 }{Description of 'comp2'} +%% ... +} +\references{ +%% ~put references to the literature/web site here ~ +} +\author{ +%% ~~who you are~~ +} +\note{ +%% ~~further notes~~ +} + +%% ~Make other sections like Warning with \section{Warning }{....} ~ + +\seealso{ +%% ~~objects to See Also as \code{\link{help}}, ~~~ +} +\examples{ +##---- Should be DIRECTLY executable !! ---- +##-- ==> Define data, use random, +##-- or do help(data=index) for the standard data sets. + +## The function is currently defined as +function(connectionString, seriesID, SQLite= TRUE, startDate="1900-01-01", endDate="2050-12-31"){ + if(SQLite==TRUE) { + driver<-dbDriver("SQLite") + con<- dbConnect(driver, dbname=connectionString) +dbBeginTransaction(con) +dValues<-getDataValues(con, seriesID, SQLite ,startDate, endDate) + dSeries<- dbGetQuery(con, paste("SELECT * FROM DataSeries WHERE SeriesID = " ,seriesID, sep="" )) + dSeries$BeginDateTime<-as.Date(dSeries$BeginDateTime, "\%Y-\%m-\%d \%H:\%M:\%S") + dSeries$BeginDateTimeUTC<-as.Date(dSeries$BeginDateTimeUTC, "\%Y-\%m-\%d \%H:\%M:\%S") + dSeries$EndDateTime<-as.Date(dSeries$EndDateTime, "\%Y-\%m-\%d \%H:\%M:\%S") + dSeries$EndDateTimeUTC<-as.Date(dSeries$EndDateTimeUTC, "\%Y-\%m-\%d \%H:\%M:\%S") + dSeries$CreationDateTime<-as.Date(dSeries$CreationDateTime, "\%Y-\%m-\%d \%H:\%M:\%S") +dSeries$UpdateDateTime<-as.Date(dSeries$UpdateDateTime, "\%Y-\%m-\%d \%H:\%M:\%S") +dSeries$LastcheckedDateTime<-as.Date(dSeries$LastcheckedDateTime, "\%Y-\%m-\%d \%H:\%M:\%S") + variableData<-dbGetQuery(con, paste("SELECT * FROM Variables WHERE VariableID=", dSeries$VariableID)) + siteData<-dbGetQuery(con, paste("SELECT * FROM Sites WHERE SiteID=", dSeries$SiteID)) + variableUnits<-dbGetQuery(con, paste("SELECT * FROM Units WHERE UnitsID=", variableData$VariableUnitsID)) + timeUnits<-dbGetQuery(con, paste("SELECT * FROM Units WHERE UnitsID=", variableData$TimeUnitsID )) + methodData<-dbGetQuery(con, paste("SELECT * FROM Methods WHERE MethodID=", dSeries$MethodID)) + sourceData<-dbGetQuery(con, paste("SELECT * FROM Sources WHERE SourceID=", dSeries$SourceID)) + qualityControl<-dbGetQuery(con, paste("SELECT * FROM QualityControlLevels WHERE QualityControlLevelID=", dSeries$QualityControlLevelID)) + dbCommit(con) + dbDisconnect(con) + } + list(DataValues=dValues, DataSeries=dSeries, Site=siteData, Variable=variableData, VariableUnits=variableUnits, TimeUnits=timeUnits, Method=methodData, Source=sourceData, QualityControlLevel=qualityControl) + } +} +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ ~kwd1 } +\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/getDataWithSQL.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/getDataWithSQL.Rd new file mode 100644 index 00000000..b041e309 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/getDataWithSQL.Rd @@ -0,0 +1,65 @@ +\name{getDataWithSQL} +\alias{getDataWithSQL} +%- Also NEED an '\alias' for EACH other topic documented here. +\title{ get data from database using your own SQL command and store it in a dataframe} +\description{ +%% ~~ A concise (1-5 lines) description of what the function does. ~~ +} +\usage{ +getDataWithSQL(connectionString, SQLString, SQLite = TRUE) +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{connectionString}{ +%% ~~Describe \code{connectionString} here~~ +} + \item{SQLString}{ +%% ~~Describe \code{SQLString} here~~ +} + \item{SQLite}{ +%% ~~Describe \code{SQLite} here~~ +} +} +\details{ +%% ~~ If necessary, more details than the description above ~~ +} +\value{ +%% ~Describe the value returned +%% If it is a LIST, use +%% \item{comp1 }{Description of 'comp1'} +%% \item{comp2 }{Description of 'comp2'} +%% ... +} +\references{ +%% ~put references to the literature/web site here ~ +} +\author{ +%% ~~who you are~~ +} +\note{ +%% ~~further notes~~ +} + +%% ~Make other sections like Warning with \section{Warning }{....} ~ + +\seealso{ +%% ~~objects to See Also as \code{\link{help}}, ~~~ +} +\examples{ +##---- Should be DIRECTLY executable !! ---- +##-- ==> Define data, use random, +##-- or do help(data=index) for the standard data sets. + +## The function is currently defined as +function(connectionString, SQLString, SQLite = TRUE){ + if(SQLite==TRUE) { + driver<-dbDriver("SQLite") + con <- dbConnect(driver, dbname=connectionString) + return(dbGetQuery(con, SQLString)) + } + } +} +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ ~kwd1 } +\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/plotDataSeries.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/plotDataSeries.Rd new file mode 100644 index 00000000..3b918761 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/plotDataSeries.Rd @@ -0,0 +1,61 @@ +\name{plotDataSeries} +\alias{plotDataSeries} +%- Also NEED an '\alias' for EACH other topic documented here. +\title{Plots a Series that has been read into a list from getDataSeries} +\description{ +%% ~~ A concise (1-5 lines) description of what the function does. ~~ +} +\usage{ +plotDataSeries(datavals, ylabel, ...) +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{datavals}{ +%% ~~Describe \code{datavals} here~~ +} + \item{ylabel}{ +%% ~~Describe \code{ylabel} here~~ +} + \item{\dots}{ +%% ~~Describe \code{\dots} here~~ +} +} +\details{ +%% ~~ If necessary, more details than the description above ~~ +} +\value{ +%% ~Describe the value returned +%% If it is a LIST, use +%% \item{comp1 }{Description of 'comp1'} +%% \item{comp2 }{Description of 'comp2'} +%% ... +} +\references{ +%% ~put references to the literature/web site here ~ +} +\author{ +%% ~~who you are~~ +} +\note{ +%% ~~further notes~~ +} + +%% ~Make other sections like Warning with \section{Warning }{....} ~ + +\seealso{ +%% ~~objects to See Also as \code{\link{help}}, ~~~ +} +\examples{ +##---- Should be DIRECTLY executable !! ---- +##-- ==> Define data, use random, +##-- or do help(data=index) for the standard data sets. + +## The function is currently defined as +function(datavals, ylabel, ...){ + plot(datavals$DataValues$LocalDateTime, datavals$DataValues$DataValue, xlab="Date", ylab=ylabel, ...) + } +} +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ ~kwd1 } +\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/saveDataSeries.Rd b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/saveDataSeries.Rd new file mode 100644 index 00000000..96f19f17 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroRPackage1_2/man/saveDataSeries.Rd @@ -0,0 +1,99 @@ +\name{saveDataSeries} +\alias{saveDataSeries} +%- Also NEED an '\alias' for EACH other topic documented here. +\title{Takes a Data Series List and saves it to the database} +\description{ +%% ~~ A concise (1-5 lines) description of what the function does. ~~ +} +\usage{ +saveDataSeries(connectionString, newSeries, SQLite = TRUE, overwrite = TRUE) +} +%- maybe also 'usage' for other objects documented here. +\arguments{ + \item{connectionString}{ +%% ~~Describe \code{connectionString} here~~ +} + \item{newSeries}{ +%% ~~Describe \code{newSeries} here~~ +} + \item{SQLite}{ +%% ~~Describe \code{SQLite} here~~ +} + \item{overwrite}{ +%% ~~Describe \code{overwrite} here~~ +} +} +\details{ +%% ~~ If necessary, more details than the description above ~~ +} +\value{ +%% ~Describe the value returned +%% If it is a LIST, use +%% \item{comp1 }{Description of 'comp1'} +%% \item{comp2 }{Description of 'comp2'} +%% ... +} +\references{ +%% ~put references to the literature/web site here ~ +} +\author{ +%% ~~who you are~~ +} +\note{ +%% ~~further notes~~ +} + +%% ~Make other sections like Warning with \section{Warning }{....} ~ + +\seealso{ +%% ~~objects to See Also as \code{\link{help}}, ~~~ +} +\examples{ +##---- Should be DIRECTLY executable !! ---- +##-- ==> Define data, use random, +##-- or do help(data=index) for the standard data sets. + +## The function is currently defined as +function(connectionString, newSeries, SQLite = TRUE, overwrite= TRUE){ +if(SQLite==TRUE){ +driver<-dbDriver("SQLite") + con<- dbConnect(driver, dbname=connectionString) + dbBeginTransaction(con) + +siteID<-getSiteID(con, newSeries$Site, overwrite) +variableID<-getVariableID(con, newSeries$Variable, overwrite) +methodID<-getMethodID(con, newSeries$Method, overwrite) +qclID<-getQualityControlLevelID(con, newSeries$QualityControlLevel, overwrite) +vunitsID<-getUnitsID(con, newSeries$VariableUnits,overwrite) +tunitsID<-getUnitsID(con, newSeries$TimeUnits,overwrite) +sourceID<-getSourceID(con, newSeries$Source, overwrite) +SeriesID<-getSeriesID(con, list(site=siteID, variable=variableID, method=methodID, qcl=qclID, source=sourceID), newSeries$DataSeries, newSeries$DataValues , overwrite) + +#dataValues Mandatory:ValueID, DataValue, LocalDateTime, UTCOffcet, DateTimeUTC, SiteID, VariableID, CensorCode, MethodID, SourceID, QualityControlLevelID +for(i in 1:length(newSeries$DataValues$DataValue)){ +ser<-newSeries$DataValues +if(overwrite==FALSE){ +#print( paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",ser$ValueAccuracy[i],", '", format(ser$LocalDateTime[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ",ser$UTCOffset[i],", '",format(ser$DateTimeUTC[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ", ser$OffsetValue[i],", '", ser$OffsetTypeID[i],"', '", ser$CensorCode[i],"', '", ser$QualifierID[i],"', '", ser$SampleID[i],"', '", ser$FileID[i], "')", sep="")) +dbGetQuery(con,paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",ser$ValueAccuracy[i],", '", format(ser$LocalDateTime[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ",ser$UTCOffset[i],", '",format(ser$DateTimeUTC[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ", ser$OffsetValue[i],", '", ser$OffsetTypeID[i],"', '", ser$CensorCode[i],"', '", ser$QualifierID[i],"', '", ser$SampleID[i],"', '", ser$FileID[i], "')", sep="")) + } +else{ +count<-dbGetQuery(con, paste("SELECT COUNT(DataValue) FROM DataValues WHERE SeriesID=",SeriesID, " AND LocalDateTime = '", format(newSeries$DataValues$LocalDateTime[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"'", sep="")) +if (count==0){ +#print(paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",ser$ValueAccuracy[i],", '", format(ser$LocalDateTime[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ",ser$UTCOffset[i],", '",format(ser$DateTimeUTC[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ", ser$OffsetValue[i],", '", ser$OffsetTypeID[i],"', '", ser$CensorCode[i],"', '", ser$QualifierID[i],"', '", ser$SampleID[i],"', '", ser$FileID[i], "')", sep="")) +dbGetQuery(con,paste("INSERT INTO DataValues VALUES(",getNextValueID(con),", ",SeriesID,", ", ser$DataValue[i],", ",ser$ValueAccuracy[i],", '", format(ser$LocalDateTime[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ",ser$UTCOffset[i],", '",format(ser$DateTimeUTC[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"', ", ser$OffsetValue[i],", '", ser$OffsetTypeID[i],"', '", ser$CensorCode[i],"', '", ser$QualifierID[i],"', '", ser$SampleID[i],"', '", ser$FileID[i], "')", sep="")) + } +else{ +#print(paste("UPDATE DataValues SET DataValue=", newSeries$DataValues$DataValue[i], " WHERE SeriesID=",SeriesID, " AND LocalDateTime ='", format(newSeries$DataValues$LocalDateTime[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"'", sep="")) +dbGetQuery(con, paste("UPDATE DataValues SET DataValue=", newSeries$DataValues$DataValue[i], " WHERE SeriesID=",SeriesID, " AND LocalDateTime ='", format(newSeries$DataValues$LocalDateTime[i],"\%Y-\%m-\%d \%H:\%M:\%S"),"'", sep="")) + } + } + } +dbCommit(con) + dbDisconnect(con) + } + } +} +% Add one or more standard keywords, see file 'KEYWORDS' in the +% R documentation directory. +\keyword{ ~kwd1 } +\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroR_1.0.tar.gz b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroR_1.0.tar.gz new file mode 100644 index 00000000..848e3f7b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroR_1.0.tar.gz differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroR_1.1.tar.gz b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroR_1.1.tar.gz new file mode 100644 index 00000000..1b850078 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroR_1.1.tar.gz differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroR_1.2.tar.gz b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroR_1.2.tar.gz new file mode 100644 index 00000000..ce6adbcd Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/RPackage/HydroR_1.2.tar.gz differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/Resources/RSymbol.png b/Source/Plugins/HydroDesktop.Plugins.HydroR/Resources/RSymbol.png new file mode 100644 index 00000000..3e9d6ed4 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroR/Resources/RSymbol.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/app.config b/Source/Plugins/HydroDesktop.Plugins.HydroR/app.config new file mode 100644 index 00000000..f76deb94 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/app.config @@ -0,0 +1,3 @@ + + + diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroR/packages.config b/Source/Plugins/HydroDesktop.Plugins.HydroR/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroR/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/addUserForm.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/addUserForm.Designer.cs new file mode 100644 index 00000000..97cf45bd --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/addUserForm.Designer.cs @@ -0,0 +1,46 @@ +namespace HydroDesktop.Plugins.HydroShare +{ + partial class addUserForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.SuspendLayout(); + // + // addUserForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(284, 262); + this.Name = "addUserForm"; + this.Text = "Add User"; + this.ResumeLayout(false); + + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/addUserForm.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/addUserForm.cs new file mode 100644 index 00000000..8a4f9ec2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/addUserForm.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.HydroShare +{ + public partial class addUserForm : Form + { + public addUserForm() + { + InitializeComponent(); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/addUserForm.resx b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/addUserForm.resx new file mode 100644 index 00000000..fb82166c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/addUserForm.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/chooseUploadType.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/chooseUploadType.Designer.cs new file mode 100644 index 00000000..8763c019 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/chooseUploadType.Designer.cs @@ -0,0 +1,146 @@ +namespace HydroDesktop.Plugins.HydroShare +{ + partial class chooseUploadType + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.geoRB = new System.Windows.Forms.RadioButton(); + this.timeRB = new System.Windows.Forms.RadioButton(); + this.otherRB = new System.Windows.Forms.RadioButton(); + this.label1 = new System.Windows.Forms.Label(); + this.nextButton = new System.Windows.Forms.Button(); + this.cancelButton = new System.Windows.Forms.Button(); + this.panel1 = new System.Windows.Forms.Panel(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // geoRB + // + this.geoRB.AutoSize = true; + this.geoRB.Location = new System.Drawing.Point(10, 12); + this.geoRB.Name = "geoRB"; + this.geoRB.Size = new System.Drawing.Size(483, 17); + this.geoRB.TabIndex = 0; + this.geoRB.TabStop = true; + this.geoRB.Text = "Geoananalytics (RENCI Geoanalytics content type. Connects HydroShare with GIS dat" + + "a sources)"; + this.geoRB.UseVisualStyleBackColor = true; + // + // timeRB + // + this.timeRB.AutoSize = true; + this.timeRB.Location = new System.Drawing.Point(10, 80); + this.timeRB.Name = "timeRB"; + this.timeRB.Size = new System.Drawing.Size(466, 17); + this.timeRB.TabIndex = 1; + this.timeRB.TabStop = true; + this.timeRB.Text = "Time Series (Support for Time Series CSV file format following the HydroDesktop s" + + "pecification)\r\n"; + this.timeRB.UseVisualStyleBackColor = true; + // + // otherRB + // + this.otherRB.AutoSize = true; + this.otherRB.Location = new System.Drawing.Point(10, 47); + this.otherRB.Name = "otherRB"; + this.otherRB.Size = new System.Drawing.Size(543, 17); + this.otherRB.TabIndex = 2; + this.otherRB.TabStop = true; + this.otherRB.Text = "Other (This is a catch all for other resources which do not correspond to existin" + + "g HydroShare Resource Types)\r\n"; + this.otherRB.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(12, 21); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(142, 16); + this.label1.TabIndex = 3; + this.label1.Text = "Select upload type:"; + // + // nextButton + // + this.nextButton.Location = new System.Drawing.Point(497, 185); + this.nextButton.Name = "nextButton"; + this.nextButton.Size = new System.Drawing.Size(77, 31); + this.nextButton.TabIndex = 4; + this.nextButton.Text = "Next"; + this.nextButton.UseVisualStyleBackColor = true; + this.nextButton.Click += new System.EventHandler(this.nextButton_Click); + // + // cancelButton + // + this.cancelButton.Location = new System.Drawing.Point(414, 185); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size(77, 31); + this.cancelButton.TabIndex = 5; + this.cancelButton.Text = "Cancel"; + this.cancelButton.UseVisualStyleBackColor = true; + this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); + // + // panel1 + // + this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel1.Controls.Add(this.otherRB); + this.panel1.Controls.Add(this.timeRB); + this.panel1.Controls.Add(this.geoRB); + this.panel1.Location = new System.Drawing.Point(13, 50); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(560, 114); + this.panel1.TabIndex = 6; + // + // chooseUploadType + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(586, 228); + this.Controls.Add(this.panel1); + this.Controls.Add(this.cancelButton); + this.Controls.Add(this.nextButton); + this.Controls.Add(this.label1); + this.Name = "chooseUploadType"; + this.Text = "Publish New Content"; + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.RadioButton geoRB; + private System.Windows.Forms.RadioButton timeRB; + private System.Windows.Forms.RadioButton otherRB; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button nextButton; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Panel panel1; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/chooseUploadType.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/chooseUploadType.cs new file mode 100644 index 00000000..2fa5b9c5 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/chooseUploadType.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.HydroShare +{ + public partial class chooseUploadType : Form + { + public chooseUploadType() + { + InitializeComponent(); + } + + private void nextButton_Click(object sender, EventArgs e) + { + if (geoRB.Checked) + { + this.Close(); + uploadForm1_geo form1 = new uploadForm1_geo(); + form1.StartPosition = FormStartPosition.CenterScreen; + form1.Visible = true; + } + if (otherRB.Checked) + { + this.Close(); + uploadForm1_other form1 = new uploadForm1_other(); + form1.StartPosition = FormStartPosition.CenterScreen; + form1.Visible = true; + } + if (timeRB.Checked) + { + this.Close(); + uploadForm1_time form1 = new uploadForm1_time(); + form1.StartPosition = FormStartPosition.CenterScreen; + form1.Visible = true; + } + + if ((!geoRB.Checked)&&(!otherRB.Checked)&&(!timeRB.Checked)) + { + MessageBox.Show("Please select an upload type.", "Error", MessageBoxButtons.OK); + } + } + + private void cancelButton_Click(object sender, EventArgs e) + { + this.Close(); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/chooseUploadType.resx b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/chooseUploadType.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/chooseUploadType.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/downloadForm.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/downloadForm.Designer.cs new file mode 100644 index 00000000..1e654008 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/downloadForm.Designer.cs @@ -0,0 +1,99 @@ +namespace HydroDesktop.Plugins.HydroShare +{ + partial class downloadForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.cmb_FilterSearch = new System.Windows.Forms.ComboBox(); + this.lst_AvailableItems = new System.Windows.Forms.ListBox(); + this.btn_Cancel = new System.Windows.Forms.Button(); + this.btn_Download = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // cmb_FilterSearch + // + this.cmb_FilterSearch.FormattingEnabled = true; + this.cmb_FilterSearch.Location = new System.Drawing.Point(12, 12); + this.cmb_FilterSearch.Name = "cmb_FilterSearch"; + this.cmb_FilterSearch.Size = new System.Drawing.Size(260, 21); + this.cmb_FilterSearch.TabIndex = 0; + this.cmb_FilterSearch.Text = "Filter Search..."; + this.cmb_FilterSearch.SelectedIndexChanged += new System.EventHandler(this.cmb_FilterSearch_SelectedIndexChanged); + // + // lst_AvailableItems + // + this.lst_AvailableItems.FormattingEnabled = true; + this.lst_AvailableItems.Location = new System.Drawing.Point(13, 40); + this.lst_AvailableItems.Name = "lst_AvailableItems"; + this.lst_AvailableItems.Size = new System.Drawing.Size(259, 199); + this.lst_AvailableItems.TabIndex = 1; + this.lst_AvailableItems.SelectedIndexChanged += new System.EventHandler(this.lst_AvailableItems_Click); + // + // btn_Cancel + // + this.btn_Cancel.Location = new System.Drawing.Point(12, 245); + this.btn_Cancel.Name = "btn_Cancel"; + this.btn_Cancel.Size = new System.Drawing.Size(126, 23); + this.btn_Cancel.TabIndex = 2; + this.btn_Cancel.Text = "Cancel"; + this.btn_Cancel.UseVisualStyleBackColor = true; + this.btn_Cancel.Click += new System.EventHandler(this.btn_Cancel_Click); + // + // btn_Download + // + this.btn_Download.Location = new System.Drawing.Point(146, 245); + this.btn_Download.Name = "btn_Download"; + this.btn_Download.Size = new System.Drawing.Size(126, 23); + this.btn_Download.TabIndex = 3; + this.btn_Download.Text = "Download"; + this.btn_Download.UseVisualStyleBackColor = true; + this.btn_Download.Click += new System.EventHandler(this.btn_Download_Click); + // + // downloadForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(285, 277); + this.Controls.Add(this.btn_Download); + this.Controls.Add(this.btn_Cancel); + this.Controls.Add(this.lst_AvailableItems); + this.Controls.Add(this.cmb_FilterSearch); + this.Name = "downloadForm"; + this.Text = "Find Resources on HydroShare"; + this.Load += new System.EventHandler(this.downloadForm_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ComboBox cmb_FilterSearch; + private System.Windows.Forms.ListBox lst_AvailableItems; + private System.Windows.Forms.Button btn_Cancel; + private System.Windows.Forms.Button btn_Download; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/downloadForm.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/downloadForm.cs new file mode 100644 index 00000000..540c56a4 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/downloadForm.cs @@ -0,0 +1,135 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.Net; +using System.Web.Script.Serialization; +using System.IO; +using Ionic.Zlib; + +namespace HydroDesktop.Plugins.HydroShare +{ + public partial class downloadForm : Form + { + string base_url = "http://dev.hydroshare.org/export.php?file=http://dev.hydroshare.org/sites/default/files/"; + List list_urls = new List { "http://dev.hydroshare.org/?q=my_services/node.json&api-key=581d46dd", "http://dev.hydroshare.org/?q=my_services/node.json&api-key=581d46dd&page=1", "http://dev.hydroshare.org/?q=my_services/node.json&api-key=581d46dd&page=2"}; + + public downloadForm() + { + InitializeComponent(); + } + + public List retrieveList(string filter = "") + { + List filtered_files = new List{}; + foreach (string list_url in list_urls) + { + var client = new RestClient(list_url); + var json = client.MakeRequest(); + + var serializer = new JavaScriptSerializer(); + var all_files = serializer.Deserialize>>(json); + + if (filter == "" || filter == "All") + { + foreach (Dictionary file in all_files) + { + filtered_files.Add(file["title"]); + } + } + else + { + foreach (Dictionary file in all_files) + { + if (filter == file["type"]) + { + filtered_files.Add(file["title"]); + } + } + } + } + filtered_files.Sort(); + return filtered_files; + } + + public List populateFilterSearch() + { + List filterOptions = new List { "All" }; + foreach (string list_url in list_urls) + { + //List usableResourceTypes = new List { "hydroshare_geoanalytics", "hydroshare_time_series", "Time Series", "Geonanalytics" }; + + var client = new RestClient(list_url); + var json = client.MakeRequest(); + + var serializer = new JavaScriptSerializer(); + var all_files = serializer.Deserialize>>(json); + + foreach (Dictionary file in all_files) + { + if (filterOptions.Contains(file["type"]) == false/* && usableResourceTypes.Contains(file["type"])*/) + { + filterOptions.Add(file["type"]); + } + } + } + filterOptions.Sort(); + return filterOptions; + } + + public void downloadFile(string resourceName) + { + resourceName = resourceName.Replace(" ", ""); + string save_loc = Application.StartupPath + resourceName + ".zip"; + string path = Path.GetTempFileName(); + + WebClient fileReader = new WebClient(); + fileReader.DownloadFile(base_url + resourceName + ".zip", save_loc); + + } + + private void downloadForm_Load(object sender, EventArgs e) + { + foreach (string s in retrieveList()) + { + lst_AvailableItems.Items.Add(s); + } + + foreach (string s in populateFilterSearch()) + { + cmb_FilterSearch.Items.Add(s); + } + } + + private void btn_Cancel_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void lst_AvailableItems_Click(object sender, EventArgs e) + { + + } + + private void cmb_FilterSearch_SelectedIndexChanged(object sender, EventArgs e) + { + lst_AvailableItems.Items.Clear(); + foreach (string s in retrieveList(cmb_FilterSearch.SelectedItem.ToString())) + { + lst_AvailableItems.Items.Add(s); + } + + } + + private void btn_Download_Click(object sender, EventArgs e) + { + downloadFile(lst_AvailableItems.SelectedItem.ToString()); + this.Close(); + + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/downloadForm.resx b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/downloadForm.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/downloadForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/editUserForm.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/editUserForm.Designer.cs new file mode 100644 index 00000000..d3cd10a5 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/editUserForm.Designer.cs @@ -0,0 +1,48 @@ +namespace HydroDesktop.Plugins.HydroShare +{ + partial class editUserForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.SuspendLayout(); + // + // editUserForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(284, 262); + this.Name = "editUserForm"; + this.Text = "Edit User Information"; + this.ResumeLayout(false); + + } + + #endregion + + + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/editUserForm.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/editUserForm.cs new file mode 100644 index 00000000..31f8f067 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/editUserForm.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.HydroShare +{ + public partial class editUserForm : Form + { + public editUserForm() + { + InitializeComponent(); + } + + private void pictureBox1_Click(object sender, EventArgs e) + { + + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/editUserForm.resx b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/editUserForm.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/editUserForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/gotoWeb.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/gotoWeb.Designer.cs new file mode 100644 index 00000000..e3458aea --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/gotoWeb.Designer.cs @@ -0,0 +1,61 @@ +namespace HydroDesktop.Plugins.HydroShare +{ + partial class gotoWeb + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.webBrowser1 = new System.Windows.Forms.WebBrowser(); + this.SuspendLayout(); + // + // webBrowser1 + // + this.webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill; + this.webBrowser1.Location = new System.Drawing.Point(0, 0); + this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20); + this.webBrowser1.Name = "webBrowser1"; + this.webBrowser1.Size = new System.Drawing.Size(943, 578); + this.webBrowser1.TabIndex = 0; + this.webBrowser1.Url = new System.Uri("http://dev.hydroshare.org/?q=node/add/hydroshare-geoanalytics", System.UriKind.Absolute); + this.webBrowser1.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.webBrowser1_DocumentCompleted_1); + // + // gotoWeb + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(943, 578); + this.Controls.Add(this.webBrowser1); + this.Name = "gotoWeb"; + this.Text = "gotoWeb"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.WebBrowser webBrowser1; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/gotoWeb.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/gotoWeb.cs new file mode 100644 index 00000000..d667201a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/gotoWeb.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.HydroShare +{ + public partial class gotoWeb : Form + { + public gotoWeb() + { + InitializeComponent(); + } + + void SetText(string attribute, string attName, string value) + { + HtmlElementCollection col = webBrowser1.Document.GetElementsByTagName("input"); + + foreach (HtmlElement element in col) + { + if (element.GetAttribute(attribute).Equals(attName)) + element.SetAttribute("value", value); + } + } + + void ClickButton(string attribute, string attName) + { + HtmlElementCollection col = webBrowser1.Document.GetElementsByTagName("input"); + + foreach (HtmlElement element in col) + { + if (element.GetAttribute(attribute).Equals(attName)) + element.InvokeMember("click"); + } + + } + + private void webBrowser1_DocumentCompleted_1(object sender, WebBrowserDocumentCompletedEventArgs e) + { + // "q" is the name of the Google search textbox + + //SetText("name", "username", "test"); + //SetText("name", "password", "test"); + //string pw = ""; + //pw = enterPassword(); + //SetText("name", "password", pw); + //ClickButton("type", "submit"); + + //SetText("name", "search", "dog"); + // "btnK" is the name of the Google search submit button + // "go" is the name of the Wiki search submit button + //ClickButton("name", "go"); + //this.Close(); + return; + } + + private string enterPassword() + { + string str; + passwordEntry psw = new passwordEntry(); + psw.StartPosition = FormStartPosition.CenterScreen; + psw.Visible = true; + str = psw.password; + return str; + } + + Dictionary dictionary = new Dictionary(); + + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/gotoWeb.resx b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/gotoWeb.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/gotoWeb.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/hydroshareLogIn.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/hydroshareLogIn.Designer.cs new file mode 100644 index 00000000..5b0fc3dc --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/hydroshareLogIn.Designer.cs @@ -0,0 +1,60 @@ +namespace HydroDesktop.Plugins.HydroShare.Forms +{ + partial class hydroshareLogIn + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.webBrowser1 = new System.Windows.Forms.WebBrowser(); + this.SuspendLayout(); + // + // webBrowser1 + // + this.webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill; + this.webBrowser1.Location = new System.Drawing.Point(0, 0); + this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20); + this.webBrowser1.Name = "webBrowser1"; + this.webBrowser1.Size = new System.Drawing.Size(284, 262); + this.webBrowser1.TabIndex = 0; + this.webBrowser1.Url = new System.Uri("http://google.com", System.UriKind.Absolute); + // + // hydroshareLogIn + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(284, 262); + this.Controls.Add(this.webBrowser1); + this.Name = "hydroshareLogIn"; + this.Text = "hydroshareLogIn"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.WebBrowser webBrowser1; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/hydroshareLogIn.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/hydroshareLogIn.cs new file mode 100644 index 00000000..7382ed4b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/hydroshareLogIn.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.HydroShare.Forms +{ + public partial class hydroshareLogIn : Form + { + private string username; + private string password; + public hydroshareLogIn(string u, string p) + { + InitializeComponent(); + username = u; + password = p; + + } + + void SetText(string attribute, string attName, string value) + { + HtmlElementCollection col = webBrowser1.Document.GetElementsByTagName("input"); + + foreach (HtmlElement element in col) + { + if (element.GetAttribute(attribute).Equals(attName)) + element.SetAttribute("value", value); + } + } + + void ClickButton(string attribute, string attName) + { + HtmlElementCollection col = webBrowser1.Document.GetElementsByTagName("input"); + + foreach (HtmlElement element in col) + { + if (element.GetAttribute(attribute).Equals(attName)) + element.InvokeMember("click"); + } + + } + + private void webBrowser1_DocumentCompleted_1(object sender, WebBrowserDocumentCompletedEventArgs e) + { + // "q" is the name of the Google search textbox + + //SetText("type", "text", this.username); + //SetText("type", "password", this.password); + + //ClickButton("type", "submit"); + + SetText("name", "q", "dog"); + // "btnK" is the name of the Google search submit button + // "go" is the name of the Wiki search submit button + ClickButton("name", "btnK"); + //this.Close(); + return; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/hydroshareLogIn.resx b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/hydroshareLogIn.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/hydroshareLogIn.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/logIn.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/logIn.Designer.cs new file mode 100644 index 00000000..735c73b8 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/logIn.Designer.cs @@ -0,0 +1,119 @@ +namespace HydroDesktop.Plugins.HydroShare.Forms +{ + partial class logIn + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.userNameTB = new System.Windows.Forms.TextBox(); + this.passwordTB = new System.Windows.Forms.TextBox(); + this.cancelButton = new System.Windows.Forms.Button(); + this.nextButton = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(28, 30); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(60, 13); + this.label1.TabIndex = 0; + this.label1.Text = "User Name"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(35, 56); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(53, 13); + this.label2.TabIndex = 1; + this.label2.Text = "Password"; + // + // userNameTB + // + this.userNameTB.Location = new System.Drawing.Point(90, 28); + this.userNameTB.Name = "userNameTB"; + this.userNameTB.Size = new System.Drawing.Size(178, 20); + this.userNameTB.TabIndex = 2; + // + // passwordTB + // + this.passwordTB.Location = new System.Drawing.Point(90, 54); + this.passwordTB.Name = "passwordTB"; + this.passwordTB.PasswordChar = '*'; + this.passwordTB.Size = new System.Drawing.Size(178, 20); + this.passwordTB.TabIndex = 3; + // + // cancelButton + // + this.cancelButton.Location = new System.Drawing.Point(99, 89); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size(66, 23); + this.cancelButton.TabIndex = 4; + this.cancelButton.Text = "Cancel"; + this.cancelButton.UseVisualStyleBackColor = true; + this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); + // + // nextButton + // + this.nextButton.Location = new System.Drawing.Point(173, 89); + this.nextButton.Name = "nextButton"; + this.nextButton.Size = new System.Drawing.Size(66, 23); + this.nextButton.TabIndex = 5; + this.nextButton.Text = "Next"; + this.nextButton.UseVisualStyleBackColor = true; + this.nextButton.Click += new System.EventHandler(this.nextButton_Click); + // + // logIn + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(319, 125); + this.Controls.Add(this.nextButton); + this.Controls.Add(this.cancelButton); + this.Controls.Add(this.passwordTB); + this.Controls.Add(this.userNameTB); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Name = "logIn"; + this.Text = "HydroShare Log In"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox userNameTB; + private System.Windows.Forms.TextBox passwordTB; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Button nextButton; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/logIn.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/logIn.cs new file mode 100644 index 00000000..a4af75f8 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/logIn.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.HydroShare.Forms +{ + public partial class logIn : Form + { + public logIn() + { + InitializeComponent(); + } + + private void cancelButton_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void nextButton_Click(object sender, EventArgs e) + { + string username = this.userNameTB.Text; + string password = this.passwordTB.Text; + + //compare user name and pw against database + this.Visible = false; + hydroshareLogIn log = new hydroshareLogIn(username, password); + log.StartPosition = FormStartPosition.CenterScreen; + log.Visible = false; + + chooseUploadType uploadType = new chooseUploadType(); + uploadType.StartPosition = FormStartPosition.CenterScreen; + uploadType.Visible = true; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/logIn.resx b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/logIn.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/logIn.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/passwordEntry.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/passwordEntry.Designer.cs new file mode 100644 index 00000000..62f54b6b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/passwordEntry.Designer.cs @@ -0,0 +1,86 @@ +namespace HydroDesktop.Plugins.HydroShare +{ + partial class passwordEntry + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(50, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(140, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Please enter your password:"; + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(53, 34); + this.textBox1.Name = "textBox1"; + this.textBox1.PasswordChar = '*'; + this.textBox1.Size = new System.Drawing.Size(142, 20); + this.textBox1.TabIndex = 1; + this.textBox1.UseSystemPasswordChar = true; + this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(201, 33); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(38, 20); + this.button1.TabIndex = 2; + this.button1.Text = "Ok"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // passwordEntry + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(246, 75); + this.Controls.Add(this.button1); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.label1); + this.Name = "passwordEntry"; + this.Text = "Password"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Button button1; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/passwordEntry.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/passwordEntry.cs new file mode 100644 index 00000000..5090c4d7 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/passwordEntry.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.HydroShare +{ + public partial class passwordEntry : Form + { + public string password; + + public passwordEntry() + { + InitializeComponent(); + } + + private void button1_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void textBox1_TextChanged(object sender, EventArgs e) + { + password = textBox1.Text; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/passwordEntry.resx b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/passwordEntry.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/passwordEntry.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/printForm.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/printForm.Designer.cs new file mode 100644 index 00000000..ff9e43c5 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/printForm.Designer.cs @@ -0,0 +1,327 @@ +namespace HydroDesktop.Plugins.HydroShare +{ + partial class printForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.printButton = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.label5 = new System.Windows.Forms.Label(); + this.timeStampTB = new System.Windows.Forms.TextBox(); + this.label21 = new System.Windows.Forms.Label(); + this.fileTB = new System.Windows.Forms.TextBox(); + this.label41 = new System.Windows.Forms.Label(); + this.coverageSpatialTB = new System.Windows.Forms.TextBox(); + this.label45 = new System.Windows.Forms.Label(); + this.rightsTB = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.nameTB = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.sourceSubjectTB = new System.Windows.Forms.TextBox(); + this.label31 = new System.Windows.Forms.Label(); + this.emailTB = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.titleTB = new System.Windows.Forms.TextBox(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.saveButton = new System.Windows.Forms.Button(); + this.groupBox1.SuspendLayout(); + this.panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // printButton + // + this.printButton.Location = new System.Drawing.Point(329, 12); + this.printButton.Name = "printButton"; + this.printButton.Size = new System.Drawing.Size(71, 25); + this.printButton.TabIndex = 0; + this.printButton.Text = "Print"; + this.printButton.UseVisualStyleBackColor = true; + this.printButton.Click += new System.EventHandler(this.printButton_Click); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.panel1); + this.groupBox1.Controls.Add(this.label21); + this.groupBox1.Controls.Add(this.fileTB); + this.groupBox1.Controls.Add(this.label41); + this.groupBox1.Controls.Add(this.coverageSpatialTB); + this.groupBox1.Controls.Add(this.label45); + this.groupBox1.Controls.Add(this.rightsTB); + this.groupBox1.Controls.Add(this.label3); + this.groupBox1.Controls.Add(this.nameTB); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Controls.Add(this.sourceSubjectTB); + this.groupBox1.Controls.Add(this.label31); + this.groupBox1.Controls.Add(this.emailTB); + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Controls.Add(this.titleTB); + this.groupBox1.Location = new System.Drawing.Point(13, 127); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(588, 207); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + // + // panel1 + // + this.panel1.BackColor = System.Drawing.SystemColors.GradientActiveCaption; + this.panel1.Controls.Add(this.label5); + this.panel1.Controls.Add(this.timeStampTB); + this.panel1.Location = new System.Drawing.Point(-1, 0); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(589, 26); + this.panel1.TabIndex = 124; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label5.Location = new System.Drawing.Point(6, 6); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(117, 15); + this.label5.TabIndex = 123; + this.label5.Text = "Time of submission:"; + // + // timeStampTB + // + this.timeStampTB.BackColor = System.Drawing.SystemColors.GradientActiveCaption; + this.timeStampTB.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.timeStampTB.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.timeStampTB.Location = new System.Drawing.Point(129, 7); + this.timeStampTB.Name = "timeStampTB"; + this.timeStampTB.Size = new System.Drawing.Size(407, 14); + this.timeStampTB.TabIndex = 122; + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label21.Location = new System.Drawing.Point(7, 186); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(30, 15); + this.label21.TabIndex = 121; + this.label21.Text = "File:"; + // + // fileTB + // + this.fileTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.fileTB.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.fileTB.Location = new System.Drawing.Point(112, 186); + this.fileTB.Name = "fileTB"; + this.fileTB.ReadOnly = true; + this.fileTB.Size = new System.Drawing.Size(476, 21); + this.fileTB.TabIndex = 120; + // + // label41 + // + this.label41.AutoSize = true; + this.label41.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label41.Location = new System.Drawing.Point(7, 160); + this.label41.Name = "label41"; + this.label41.Size = new System.Drawing.Size(103, 15); + this.label41.TabIndex = 119; + this.label41.Text = "Coverage Spatial:"; + // + // coverageSpatialTB + // + this.coverageSpatialTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.coverageSpatialTB.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.coverageSpatialTB.Location = new System.Drawing.Point(112, 160); + this.coverageSpatialTB.Name = "coverageSpatialTB"; + this.coverageSpatialTB.ReadOnly = true; + this.coverageSpatialTB.Size = new System.Drawing.Size(476, 21); + this.coverageSpatialTB.TabIndex = 118; + // + // label45 + // + this.label45.AutoSize = true; + this.label45.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label45.Location = new System.Drawing.Point(7, 134); + this.label45.Name = "label45"; + this.label45.Size = new System.Drawing.Size(45, 15); + this.label45.TabIndex = 117; + this.label45.Text = "Rights:"; + // + // rightsTB + // + this.rightsTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.rightsTB.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rightsTB.Location = new System.Drawing.Point(112, 134); + this.rightsTB.Name = "rightsTB"; + this.rightsTB.ReadOnly = true; + this.rightsTB.Size = new System.Drawing.Size(476, 21); + this.rightsTB.TabIndex = 116; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.Location = new System.Drawing.Point(7, 82); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(44, 15); + this.label3.TabIndex = 70; + this.label3.Text = "Name:"; + // + // nameTB + // + this.nameTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.nameTB.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.nameTB.Location = new System.Drawing.Point(112, 82); + this.nameTB.Name = "nameTB"; + this.nameTB.ReadOnly = true; + this.nameTB.Size = new System.Drawing.Size(476, 21); + this.nameTB.TabIndex = 69; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(7, 108); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(42, 15); + this.label2.TabIndex = 68; + this.label2.Text = "Email:"; + // + // sourceSubjectTB + // + this.sourceSubjectTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.sourceSubjectTB.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.sourceSubjectTB.Location = new System.Drawing.Point(112, 30); + this.sourceSubjectTB.Name = "sourceSubjectTB"; + this.sourceSubjectTB.ReadOnly = true; + this.sourceSubjectTB.Size = new System.Drawing.Size(476, 21); + this.sourceSubjectTB.TabIndex = 71; + // + // label31 + // + this.label31.AutoSize = true; + this.label31.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label31.Location = new System.Drawing.Point(7, 36); + this.label31.Name = "label31"; + this.label31.Size = new System.Drawing.Size(51, 15); + this.label31.TabIndex = 72; + this.label31.Text = "Subject:"; + // + // emailTB + // + this.emailTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.emailTB.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.emailTB.Location = new System.Drawing.Point(112, 108); + this.emailTB.Name = "emailTB"; + this.emailTB.ReadOnly = true; + this.emailTB.Size = new System.Drawing.Size(476, 21); + this.emailTB.TabIndex = 67; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label4.Location = new System.Drawing.Point(7, 58); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(33, 15); + this.label4.TabIndex = 66; + this.label4.Text = "Title:"; + // + // titleTB + // + this.titleTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.titleTB.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.titleTB.Location = new System.Drawing.Point(112, 56); + this.titleTB.Name = "titleTB"; + this.titleTB.ReadOnly = true; + this.titleTB.Size = new System.Drawing.Size(476, 21); + this.titleTB.TabIndex = 65; + // + // pictureBox1 + // + this.pictureBox1.Image = global::HydroDesktop.Plugins.HydroShare.Properties.Resources.hydroshare_logo1; + this.pictureBox1.Location = new System.Drawing.Point(125, 43); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(364, 74); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.pictureBox1.TabIndex = 124; + this.pictureBox1.TabStop = false; + this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); + // + // saveButton + // + this.saveButton.Location = new System.Drawing.Point(252, 12); + this.saveButton.Name = "saveButton"; + this.saveButton.Size = new System.Drawing.Size(71, 25); + this.saveButton.TabIndex = 125; + this.saveButton.Text = "Save"; + this.saveButton.UseVisualStyleBackColor = true; + this.saveButton.Click += new System.EventHandler(this.saveButton_Click); + // + // printForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.Window; + this.ClientSize = new System.Drawing.Size(613, 357); + this.Controls.Add(this.saveButton); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.printButton); + this.Name = "printForm"; + this.Text = "Print"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button printButton; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox nameTB; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox sourceSubjectTB; + private System.Windows.Forms.Label label31; + private System.Windows.Forms.TextBox emailTB; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox titleTB; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.TextBox fileTB; + private System.Windows.Forms.Label label41; + private System.Windows.Forms.TextBox coverageSpatialTB; + private System.Windows.Forms.Label label45; + private System.Windows.Forms.TextBox rightsTB; + private System.Windows.Forms.TextBox timeStampTB; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Button saveButton; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/printForm.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/printForm.cs new file mode 100644 index 00000000..a1274f9c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/printForm.cs @@ -0,0 +1,115 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.Drawing.Printing; + +namespace HydroDesktop.Plugins.HydroShare +{ + public partial class printForm : Form + { + uploadForm1_geo form_geo = new uploadForm1_geo(); + uploadForm1_other form_other = new uploadForm1_other(); + uploadForm1_time form_time = new uploadForm1_time(); + + public printForm(uploadForm1_geo f1) + { + InitializeComponent(); + form_geo = f1; + + this.timeStampTB.Text = Convert.ToString(DateTime.Now); + this.nameTB.Text = form_geo.name; + this.sourceSubjectTB.Text = form_geo.sSubject; + this.titleTB.Text = form_geo.title; + this.emailTB.Text = form_geo.email; + this.rightsTB.Text = form_geo.rights; + this.coverageSpatialTB.Text = form_geo.coverageSpatial; + this.fileTB.Text = form_geo.file; + + + } + + public printForm(uploadForm1_other f1) + { + InitializeComponent(); + form_other = f1; + + this.timeStampTB.Text = Convert.ToString(DateTime.Now); + this.nameTB.Text = form_geo.name; + this.sourceSubjectTB.Text = form_geo.sSubject; + this.titleTB.Text = form_geo.title; + this.emailTB.Text = form_geo.email; + this.rightsTB.Text = form_geo.rights; + this.coverageSpatialTB.Text = form_geo.coverageSpatial; + this.fileTB.Text = form_geo.file; + + + } + + public printForm(uploadForm1_time f1) + { + InitializeComponent(); + form_time = f1; + + this.timeStampTB.Text = Convert.ToString(DateTime.Now); + this.nameTB.Text = form_geo.name; + this.sourceSubjectTB.Text = form_geo.sSubject; + this.titleTB.Text = form_geo.title; + this.emailTB.Text = form_geo.email; + this.rightsTB.Text = form_geo.rights; + this.coverageSpatialTB.Text = form_geo.coverageSpatial; + this.fileTB.Text = form_geo.file; + + + } + + private void printButton_Click(object sender, EventArgs e) + { + //PrintDocument pd = new PrintDocument(); + //pd.PrintPage += new PrintPageEventHandler(PrintImage); + //pd.Print(); + } + + void PrintImage(object o, PrintPageEventArgs e) + { + int x = SystemInformation.WorkingArea.X; + int y = SystemInformation.WorkingArea.Y; + int width = this.Width; + int height = this.Height; + + Rectangle bounds = new Rectangle(x, y, width, height); + + Bitmap img = new Bitmap(width, height); + + this.DrawToBitmap(img, bounds); + Point p = new Point(100, 100); + e.Graphics.DrawImage(img, p); + } + + private void pictureBox1_Click(object sender, EventArgs e) + { + + } + + private void saveButton_Click(object sender, EventArgs e) + { + + SaveFileDialog saveFileDialog1 = new SaveFileDialog(); + + saveFileDialog1.Filter = "pdf files (*.pdf)|*.pdf"; + saveFileDialog1.FilterIndex = 2; + saveFileDialog1.RestoreDirectory = true; + + if (saveFileDialog1.ShowDialog() == DialogResult.OK) + { + + } + } + + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/printForm.resx b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/printForm.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/printForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1.Designer.cs new file mode 100644 index 00000000..eb330f9d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1.Designer.cs @@ -0,0 +1,1144 @@ +namespace HydroShare +{ + partial class uploadForm1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.titleTB = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.emailTB = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.nameTB = new System.Windows.Forms.TextBox(); + this.label8 = new System.Windows.Forms.Label(); + this.Cancel_button = new System.Windows.Forms.Button(); + this.label6 = new System.Windows.Forms.Label(); + this.organizationTB = new System.Windows.Forms.TextBox(); + this.label7 = new System.Windows.Forms.Label(); + this.addressTB = new System.Windows.Forms.TextBox(); + this.label11 = new System.Windows.Forms.Label(); + this.bodyTB = new System.Windows.Forms.TextBox(); + this.label12 = new System.Windows.Forms.Label(); + this.nicknameTB = new System.Windows.Forms.TextBox(); + this.label13 = new System.Windows.Forms.Label(); + this.zipcodeTB = new System.Windows.Forms.TextBox(); + this.label14 = new System.Windows.Forms.Label(); + this.phonenumberTB = new System.Windows.Forms.TextBox(); + this.label15 = new System.Windows.Forms.Label(); + this.contribNameTB = new System.Windows.Forms.TextBox(); + this.label16 = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.citystateTB = new System.Windows.Forms.TextBox(); + this.label18 = new System.Windows.Forms.Label(); + this.countryTB = new System.Windows.Forms.TextBox(); + this.label19 = new System.Windows.Forms.Label(); + this.contribContributionTB = new System.Windows.Forms.TextBox(); + this.label20 = new System.Windows.Forms.Label(); + this.label22 = new System.Windows.Forms.Label(); + this.label23 = new System.Windows.Forms.Label(); + this.contribNicknameTB = new System.Windows.Forms.TextBox(); + this.label24 = new System.Windows.Forms.Label(); + this.contribEmailTB = new System.Windows.Forms.TextBox(); + this.contribOrganizationTB = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.contribPhonenumberTB = new System.Windows.Forms.TextBox(); + this.label25 = new System.Windows.Forms.Label(); + this.contribCountryTB = new System.Windows.Forms.TextBox(); + this.label28 = new System.Windows.Forms.Label(); + this.sourceCommentsTB = new System.Windows.Forms.TextBox(); + this.label29 = new System.Windows.Forms.Label(); + this.label30 = new System.Windows.Forms.Label(); + this.sourceNameTB = new System.Windows.Forms.TextBox(); + this.label31 = new System.Windows.Forms.Label(); + this.sourceSubjectTB = new System.Windows.Forms.TextBox(); + this.label32 = new System.Windows.Forms.Label(); + this.sourceIDTB = new System.Windows.Forms.TextBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.label48 = new System.Windows.Forms.Label(); + this.referencesTB = new System.Windows.Forms.TextBox(); + this.label47 = new System.Windows.Forms.Label(); + this.tagsTB = new System.Windows.Forms.TextBox(); + this.label46 = new System.Windows.Forms.Label(); + this.rightsTB = new System.Windows.Forms.TextBox(); + this.label45 = new System.Windows.Forms.Label(); + this.label44 = new System.Windows.Forms.Label(); + this.driverTB = new System.Windows.Forms.TextBox(); + this.label43 = new System.Windows.Forms.Label(); + this.label42 = new System.Windows.Forms.Label(); + this.coverageSpatialTB = new System.Windows.Forms.TextBox(); + this.label41 = new System.Windows.Forms.Label(); + this.style_IDTB = new System.Windows.Forms.TextBox(); + this.label40 = new System.Windows.Forms.Label(); + this.styleTB = new System.Windows.Forms.TextBox(); + this.label39 = new System.Windows.Forms.Label(); + this.label38 = new System.Windows.Forms.Label(); + this.layer_IDTB = new System.Windows.Forms.TextBox(); + this.label37 = new System.Windows.Forms.Label(); + this.webserviceTB = new System.Windows.Forms.TextBox(); + this.label36 = new System.Windows.Forms.Label(); + this.label35 = new System.Windows.Forms.Label(); + this.driverConfigTB = new System.Windows.Forms.TextBox(); + this.label34 = new System.Windows.Forms.Label(); + this.textBox6 = new System.Windows.Forms.TextBox(); + this.revisionInfoTB = new System.Windows.Forms.Label(); + this.label27 = new System.Windows.Forms.Label(); + this.publishingOptionsTB = new System.Windows.Forms.TextBox(); + this.label26 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.textBox14 = new System.Windows.Forms.TextBox(); + this.authoringInfoTB = new System.Windows.Forms.Label(); + this.browseButton = new System.Windows.Forms.Button(); + this.fileTB = new System.Windows.Forms.TextBox(); + this.label21 = new System.Windows.Forms.Label(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.dataSourceDriverCB = new System.Windows.Forms.ComboBox(); + this.finishUploadButton = new System.Windows.Forms.Button(); + this.backButton = new System.Windows.Forms.Button(); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.pBar = new System.Windows.Forms.ProgressBar(); + this.button1 = new System.Windows.Forms.Button(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.groupBox4.SuspendLayout(); + this.SuspendLayout(); + // + // titleTB + // + this.titleTB.Location = new System.Drawing.Point(92, 27); + this.titleTB.Name = "titleTB"; + this.titleTB.Size = new System.Drawing.Size(149, 22); + this.titleTB.TabIndex = 0; + this.toolTip1.SetToolTip(this.titleTB, "Required"); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(55, 31); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(33, 13); + this.label1.TabIndex = 1; + this.label1.Text = "Title*"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(50, 214); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(39, 13); + this.label2.TabIndex = 3; + this.label2.Text = "Email*"; + // + // emailTB + // + this.emailTB.Location = new System.Drawing.Point(92, 211); + this.emailTB.Name = "emailTB"; + this.emailTB.Size = new System.Drawing.Size(149, 22); + this.emailTB.TabIndex = 4; + this.toolTip1.SetToolTip(this.emailTB, "Required"); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(47, 162); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(41, 13); + this.label3.TabIndex = 5; + this.label3.Text = "Name*"; + // + // nameTB + // + this.nameTB.Location = new System.Drawing.Point(92, 159); + this.nameTB.Name = "nameTB"; + this.nameTB.Size = new System.Drawing.Size(149, 22); + this.nameTB.TabIndex = 2; + this.toolTip1.SetToolTip(this.nameTB, "Required"); + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(48, 177); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(0, 13); + this.label8.TabIndex = 15; + // + // Cancel_button + // + this.Cancel_button.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Cancel_button.Location = new System.Drawing.Point(317, 722); + this.Cancel_button.Name = "Cancel_button"; + this.Cancel_button.Size = new System.Drawing.Size(80, 28); + this.Cancel_button.TabIndex = 151; + this.Cancel_button.Text = "&Cancel"; + this.Cancel_button.UseVisualStyleBackColor = true; + this.Cancel_button.Click += new System.EventHandler(this.button2_Click); + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(11, 240); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(75, 13); + this.label6.TabIndex = 24; + this.label6.Text = "Organization"; + // + // organizationTB + // + this.organizationTB.Location = new System.Drawing.Point(92, 237); + this.organizationTB.Name = "organizationTB"; + this.organizationTB.Size = new System.Drawing.Size(149, 22); + this.organizationTB.TabIndex = 5; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(5, 266); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(81, 13); + this.label7.TabIndex = 22; + this.label7.Text = "Street Address"; + // + // addressTB + // + this.addressTB.Location = new System.Drawing.Point(92, 263); + this.addressTB.Name = "addressTB"; + this.addressTB.Size = new System.Drawing.Size(149, 22); + this.addressTB.TabIndex = 6; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(5, 56); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(87, 13); + this.label11.TabIndex = 28; + this.label11.Text = "Body (summary)"; + // + // bodyTB + // + this.bodyTB.Location = new System.Drawing.Point(92, 53); + this.bodyTB.Multiline = true; + this.bodyTB.Name = "bodyTB"; + this.bodyTB.Size = new System.Drawing.Size(149, 100); + this.bodyTB.TabIndex = 1; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(31, 187); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(57, 13); + this.label12.TabIndex = 30; + this.label12.Text = "Nickname"; + // + // nicknameTB + // + this.nicknameTB.Location = new System.Drawing.Point(92, 185); + this.nicknameTB.Name = "nicknameTB"; + this.nicknameTB.Size = new System.Drawing.Size(149, 22); + this.nicknameTB.TabIndex = 3; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(40, 320); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(48, 13); + this.label13.TabIndex = 42; + this.label13.Text = "Zipcode"; + // + // zipcodeTB + // + this.zipcodeTB.Location = new System.Drawing.Point(92, 317); + this.zipcodeTB.Name = "zipcodeTB"; + this.zipcodeTB.Size = new System.Drawing.Size(149, 22); + this.zipcodeTB.TabIndex = 8; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point(2, 372); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(84, 13); + this.label14.TabIndex = 40; + this.label14.Text = "Phone Number"; + // + // phonenumberTB + // + this.phonenumberTB.Location = new System.Drawing.Point(92, 369); + this.phonenumberTB.Name = "phonenumberTB"; + this.phonenumberTB.Size = new System.Drawing.Size(149, 22); + this.phonenumberTB.TabIndex = 10; + this.toolTip1.SetToolTip(this.phonenumberTB, "123-456-7890"); + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point(45, 30); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(36, 13); + this.label15.TabIndex = 38; + this.label15.Text = "Name"; + // + // contribNameTB + // + this.contribNameTB.Location = new System.Drawing.Point(86, 27); + this.contribNameTB.Name = "contribNameTB"; + this.contribNameTB.Size = new System.Drawing.Size(149, 22); + this.contribNameTB.TabIndex = 11; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(48, 309); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(0, 13); + this.label16.TabIndex = 36; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(31, 294); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(58, 13); + this.label17.TabIndex = 35; + this.label17.Text = "City, State"; + // + // citystateTB + // + this.citystateTB.Location = new System.Drawing.Point(92, 291); + this.citystateTB.Name = "citystateTB"; + this.citystateTB.Size = new System.Drawing.Size(149, 22); + this.citystateTB.TabIndex = 7; + // + // label18 + // + this.label18.AutoSize = true; + this.label18.Location = new System.Drawing.Point(38, 345); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(48, 13); + this.label18.TabIndex = 33; + this.label18.Text = "Country"; + // + // countryTB + // + this.countryTB.Location = new System.Drawing.Point(92, 343); + this.countryTB.Name = "countryTB"; + this.countryTB.Size = new System.Drawing.Size(149, 22); + this.countryTB.TabIndex = 9; + // + // label19 + // + this.label19.AutoSize = true; + this.label19.Location = new System.Drawing.Point(9, 82); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(74, 13); + this.label19.TabIndex = 53; + this.label19.Text = "Contribution"; + // + // contribContributionTB + // + this.contribContributionTB.Location = new System.Drawing.Point(86, 79); + this.contribContributionTB.Name = "contribContributionTB"; + this.contribContributionTB.Size = new System.Drawing.Size(149, 22); + this.contribContributionTB.TabIndex = 13; + // + // label20 + // + this.label20.AutoSize = true; + this.label20.Location = new System.Drawing.Point(5, 134); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(75, 13); + this.label20.TabIndex = 51; + this.label20.Text = "Organization"; + // + // label22 + // + this.label22.AutoSize = true; + this.label22.Location = new System.Drawing.Point(19, 71); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(0, 13); + this.label22.TabIndex = 47; + // + // label23 + // + this.label23.AutoSize = true; + this.label23.Location = new System.Drawing.Point(23, 56); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(57, 13); + this.label23.TabIndex = 46; + this.label23.Text = "Nickname"; + // + // contribNicknameTB + // + this.contribNicknameTB.Location = new System.Drawing.Point(86, 53); + this.contribNicknameTB.Name = "contribNicknameTB"; + this.contribNicknameTB.Size = new System.Drawing.Size(149, 22); + this.contribNicknameTB.TabIndex = 12; + // + // label24 + // + this.label24.AutoSize = true; + this.label24.Location = new System.Drawing.Point(48, 108); + this.label24.Name = "label24"; + this.label24.Size = new System.Drawing.Size(34, 13); + this.label24.TabIndex = 44; + this.label24.Text = "Email"; + // + // contribEmailTB + // + this.contribEmailTB.Location = new System.Drawing.Point(86, 105); + this.contribEmailTB.Name = "contribEmailTB"; + this.contribEmailTB.Size = new System.Drawing.Size(149, 22); + this.contribEmailTB.TabIndex = 14; + // + // contribOrganizationTB + // + this.contribOrganizationTB.Location = new System.Drawing.Point(86, 131); + this.contribOrganizationTB.Name = "contribOrganizationTB"; + this.contribOrganizationTB.Size = new System.Drawing.Size(149, 22); + this.contribOrganizationTB.TabIndex = 15; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(1, 187); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(84, 13); + this.label4.TabIndex = 60; + this.label4.Text = "Phone Number"; + // + // contribPhonenumberTB + // + this.contribPhonenumberTB.Location = new System.Drawing.Point(86, 183); + this.contribPhonenumberTB.Name = "contribPhonenumberTB"; + this.contribPhonenumberTB.Size = new System.Drawing.Size(149, 22); + this.contribPhonenumberTB.TabIndex = 17; + this.toolTip1.SetToolTip(this.contribPhonenumberTB, "123-456-7890"); + // + // label25 + // + this.label25.AutoSize = true; + this.label25.Location = new System.Drawing.Point(32, 160); + this.label25.Name = "label25"; + this.label25.Size = new System.Drawing.Size(48, 13); + this.label25.TabIndex = 58; + this.label25.Text = "Country"; + // + // contribCountryTB + // + this.contribCountryTB.Location = new System.Drawing.Point(86, 157); + this.contribCountryTB.Name = "contribCountryTB"; + this.contribCountryTB.Size = new System.Drawing.Size(149, 22); + this.contribCountryTB.TabIndex = 16; + // + // label28 + // + this.label28.AutoSize = true; + this.label28.Location = new System.Drawing.Point(19, 82); + this.label28.Name = "label28"; + this.label28.Size = new System.Drawing.Size(61, 13); + this.label28.TabIndex = 69; + this.label28.Text = "Comments"; + // + // sourceCommentsTB + // + this.sourceCommentsTB.Location = new System.Drawing.Point(86, 77); + this.sourceCommentsTB.Name = "sourceCommentsTB"; + this.sourceCommentsTB.Size = new System.Drawing.Size(149, 22); + this.sourceCommentsTB.TabIndex = 20; + // + // label29 + // + this.label29.AutoSize = true; + this.label29.Location = new System.Drawing.Point(19, 69); + this.label29.Name = "label29"; + this.label29.Size = new System.Drawing.Size(0, 13); + this.label29.TabIndex = 67; + // + // label30 + // + this.label30.AutoSize = true; + this.label30.Location = new System.Drawing.Point(45, 54); + this.label30.Name = "label30"; + this.label30.Size = new System.Drawing.Size(36, 13); + this.label30.TabIndex = 66; + this.label30.Text = "Name"; + // + // sourceNameTB + // + this.sourceNameTB.Location = new System.Drawing.Point(86, 51); + this.sourceNameTB.Name = "sourceNameTB"; + this.sourceNameTB.Size = new System.Drawing.Size(149, 22); + this.sourceNameTB.TabIndex = 19; + // + // label31 + // + this.label31.AutoSize = true; + this.label31.Location = new System.Drawing.Point(33, 28); + this.label31.Name = "label31"; + this.label31.Size = new System.Drawing.Size(50, 13); + this.label31.TabIndex = 64; + this.label31.Text = "Subject*"; + // + // sourceSubjectTB + // + this.sourceSubjectTB.Location = new System.Drawing.Point(86, 25); + this.sourceSubjectTB.Name = "sourceSubjectTB"; + this.sourceSubjectTB.Size = new System.Drawing.Size(149, 22); + this.sourceSubjectTB.TabIndex = 18; + this.toolTip1.SetToolTip(this.sourceSubjectTB, "Required"); + // + // label32 + // + this.label32.AutoSize = true; + this.label32.Location = new System.Drawing.Point(62, 110); + this.label32.Name = "label32"; + this.label32.Size = new System.Drawing.Size(18, 13); + this.label32.TabIndex = 71; + this.label32.Text = "ID"; + // + // sourceIDTB + // + this.sourceIDTB.Location = new System.Drawing.Point(86, 107); + this.sourceIDTB.Name = "sourceIDTB"; + this.sourceIDTB.Size = new System.Drawing.Size(149, 22); + this.sourceIDTB.TabIndex = 21; + // + // groupBox1 + // + this.groupBox1.BackColor = System.Drawing.SystemColors.ButtonFace; + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Controls.Add(this.contribPhonenumberTB); + this.groupBox1.Controls.Add(this.label25); + this.groupBox1.Controls.Add(this.contribCountryTB); + this.groupBox1.Controls.Add(this.contribOrganizationTB); + this.groupBox1.Controls.Add(this.label19); + this.groupBox1.Controls.Add(this.contribContributionTB); + this.groupBox1.Controls.Add(this.label20); + this.groupBox1.Controls.Add(this.label22); + this.groupBox1.Controls.Add(this.label23); + this.groupBox1.Controls.Add(this.contribNicknameTB); + this.groupBox1.Controls.Add(this.label24); + this.groupBox1.Controls.Add(this.contribEmailTB); + this.groupBox1.Controls.Add(this.label15); + this.groupBox1.Controls.Add(this.contribNameTB); + this.groupBox1.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox1.Location = new System.Drawing.Point(304, 12); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(241, 213); + this.groupBox1.TabIndex = 72; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Contributor Information"; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.label13); + this.groupBox2.Controls.Add(this.zipcodeTB); + this.groupBox2.Controls.Add(this.label14); + this.groupBox2.Controls.Add(this.phonenumberTB); + this.groupBox2.Controls.Add(this.label16); + this.groupBox2.Controls.Add(this.label17); + this.groupBox2.Controls.Add(this.citystateTB); + this.groupBox2.Controls.Add(this.label18); + this.groupBox2.Controls.Add(this.countryTB); + this.groupBox2.Controls.Add(this.label12); + this.groupBox2.Controls.Add(this.nicknameTB); + this.groupBox2.Controls.Add(this.label11); + this.groupBox2.Controls.Add(this.bodyTB); + this.groupBox2.Controls.Add(this.label6); + this.groupBox2.Controls.Add(this.organizationTB); + this.groupBox2.Controls.Add(this.label7); + this.groupBox2.Controls.Add(this.addressTB); + this.groupBox2.Controls.Add(this.label8); + this.groupBox2.Controls.Add(this.label3); + this.groupBox2.Controls.Add(this.nameTB); + this.groupBox2.Controls.Add(this.label2); + this.groupBox2.Controls.Add(this.emailTB); + this.groupBox2.Controls.Add(this.label1); + this.groupBox2.Controls.Add(this.titleTB); + this.groupBox2.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox2.Location = new System.Drawing.Point(15, 10); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(246, 395); + this.groupBox2.TabIndex = 73; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Document Information"; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.label32); + this.groupBox3.Controls.Add(this.sourceIDTB); + this.groupBox3.Controls.Add(this.label28); + this.groupBox3.Controls.Add(this.sourceCommentsTB); + this.groupBox3.Controls.Add(this.label29); + this.groupBox3.Controls.Add(this.label30); + this.groupBox3.Controls.Add(this.sourceNameTB); + this.groupBox3.Controls.Add(this.label31); + this.groupBox3.Controls.Add(this.sourceSubjectTB); + this.groupBox3.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox3.Location = new System.Drawing.Point(304, 247); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(241, 139); + this.groupBox3.TabIndex = 74; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Source Information"; + // + // label48 + // + this.label48.AutoSize = true; + this.label48.Location = new System.Drawing.Point(385, 104); + this.label48.Name = "label48"; + this.label48.Size = new System.Drawing.Size(0, 13); + this.label48.TabIndex = 75; + // + // referencesTB + // + this.referencesTB.Location = new System.Drawing.Point(108, 24); + this.referencesTB.Name = "referencesTB"; + this.referencesTB.Size = new System.Drawing.Size(149, 22); + this.referencesTB.TabIndex = 22; + // + // label47 + // + this.label47.AutoSize = true; + this.label47.Location = new System.Drawing.Point(40, 29); + this.label47.Name = "label47"; + this.label47.Size = new System.Drawing.Size(63, 13); + this.label47.TabIndex = 78; + this.label47.Text = "References"; + // + // tagsTB + // + this.tagsTB.Location = new System.Drawing.Point(108, 102); + this.tagsTB.Multiline = true; + this.tagsTB.Name = "tagsTB"; + this.tagsTB.Size = new System.Drawing.Size(149, 71); + this.tagsTB.TabIndex = 25; + // + // label46 + // + this.label46.AutoSize = true; + this.label46.Location = new System.Drawing.Point(71, 104); + this.label46.Name = "label46"; + this.label46.Size = new System.Drawing.Size(30, 13); + this.label46.TabIndex = 80; + this.label46.Text = "Tags"; + this.label46.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // rightsTB + // + this.rightsTB.Location = new System.Drawing.Point(108, 50); + this.rightsTB.Name = "rightsTB"; + this.rightsTB.Size = new System.Drawing.Size(149, 22); + this.rightsTB.TabIndex = 23; + this.toolTip1.SetToolTip(this.rightsTB, "Required"); + // + // label45 + // + this.label45.AutoSize = true; + this.label45.Location = new System.Drawing.Point(61, 53); + this.label45.Name = "label45"; + this.label45.Size = new System.Drawing.Size(45, 13); + this.label45.TabIndex = 82; + this.label45.Text = "Rights*"; + // + // label44 + // + this.label44.AutoSize = true; + this.label44.Location = new System.Drawing.Point(35, 68); + this.label44.Name = "label44"; + this.label44.Size = new System.Drawing.Size(0, 13); + this.label44.TabIndex = 83; + // + // driverTB + // + this.driverTB.Location = new System.Drawing.Point(108, 212); + this.driverTB.Name = "driverTB"; + this.driverTB.Size = new System.Drawing.Size(149, 22); + this.driverTB.TabIndex = 27; + // + // label43 + // + this.label43.AutoSize = true; + this.label43.Location = new System.Drawing.Point(65, 215); + this.label43.Name = "label43"; + this.label43.Size = new System.Drawing.Size(37, 13); + this.label43.TabIndex = 85; + this.label43.Text = "Driver"; + // + // label42 + // + this.label42.AutoSize = true; + this.label42.Location = new System.Drawing.Point(1, 189); + this.label42.Name = "label42"; + this.label42.Size = new System.Drawing.Size(102, 13); + this.label42.TabIndex = 87; + this.label42.Text = "Data Source Driver"; + // + // coverageSpatialTB + // + this.coverageSpatialTB.Location = new System.Drawing.Point(108, 76); + this.coverageSpatialTB.Name = "coverageSpatialTB"; + this.coverageSpatialTB.Size = new System.Drawing.Size(149, 22); + this.coverageSpatialTB.TabIndex = 24; + this.toolTip1.SetToolTip(this.coverageSpatialTB, "Required"); + // + // label41 + // + this.label41.AutoSize = true; + this.label41.Location = new System.Drawing.Point(4, 81); + this.label41.Name = "label41"; + this.label41.Size = new System.Drawing.Size(98, 13); + this.label41.TabIndex = 91; + this.label41.Text = "Coverage Spatial*"; + // + // style_IDTB + // + this.style_IDTB.Location = new System.Drawing.Point(377, 78); + this.style_IDTB.Name = "style_IDTB"; + this.style_IDTB.Size = new System.Drawing.Size(149, 22); + this.style_IDTB.TabIndex = 30; + // + // label40 + // + this.label40.AutoSize = true; + this.label40.Location = new System.Drawing.Point(324, 81); + this.label40.Name = "label40"; + this.label40.Size = new System.Drawing.Size(47, 13); + this.label40.TabIndex = 93; + this.label40.Text = "Style_ID"; + // + // styleTB + // + this.styleTB.Location = new System.Drawing.Point(377, 26); + this.styleTB.Name = "styleTB"; + this.styleTB.PasswordChar = '*'; + this.styleTB.Size = new System.Drawing.Size(149, 22); + this.styleTB.TabIndex = 28; + // + // label39 + // + this.label39.AutoSize = true; + this.label39.Location = new System.Drawing.Point(341, 29); + this.label39.Name = "label39"; + this.label39.Size = new System.Drawing.Size(31, 13); + this.label39.TabIndex = 95; + this.label39.Text = "Style"; + // + // label38 + // + this.label38.AutoSize = true; + this.label38.Location = new System.Drawing.Point(304, 44); + this.label38.Name = "label38"; + this.label38.Size = new System.Drawing.Size(0, 13); + this.label38.TabIndex = 96; + // + // layer_IDTB + // + this.layer_IDTB.Location = new System.Drawing.Point(377, 104); + this.layer_IDTB.Name = "layer_IDTB"; + this.layer_IDTB.Size = new System.Drawing.Size(149, 22); + this.layer_IDTB.TabIndex = 31; + // + // label37 + // + this.label37.AutoSize = true; + this.label37.Location = new System.Drawing.Point(321, 107); + this.label37.Name = "label37"; + this.label37.Size = new System.Drawing.Size(49, 13); + this.label37.TabIndex = 98; + this.label37.Text = "Layer_ID"; + // + // webserviceTB + // + this.webserviceTB.Location = new System.Drawing.Point(377, 52); + this.webserviceTB.Name = "webserviceTB"; + this.webserviceTB.Size = new System.Drawing.Size(149, 22); + this.webserviceTB.TabIndex = 29; + // + // label36 + // + this.label36.AutoSize = true; + this.label36.Location = new System.Drawing.Point(307, 55); + this.label36.Name = "label36"; + this.label36.Size = new System.Drawing.Size(65, 13); + this.label36.TabIndex = 100; + this.label36.Text = "Webservice"; + // + // label35 + // + this.label35.AutoSize = true; + this.label35.Location = new System.Drawing.Point(385, 156); + this.label35.Name = "label35"; + this.label35.Size = new System.Drawing.Size(0, 13); + this.label35.TabIndex = 102; + // + // driverConfigTB + // + this.driverConfigTB.Location = new System.Drawing.Point(377, 130); + this.driverConfigTB.Name = "driverConfigTB"; + this.driverConfigTB.Size = new System.Drawing.Size(149, 22); + this.driverConfigTB.TabIndex = 32; + // + // label34 + // + this.label34.AutoSize = true; + this.label34.Location = new System.Drawing.Point(296, 133); + this.label34.Name = "label34"; + this.label34.Size = new System.Drawing.Size(75, 13); + this.label34.TabIndex = 104; + this.label34.Text = "Driver Config"; + // + // textBox6 + // + this.textBox6.Location = new System.Drawing.Point(377, 156); + this.textBox6.Name = "textBox6"; + this.textBox6.Size = new System.Drawing.Size(149, 22); + this.textBox6.TabIndex = 33; + // + // revisionInfoTB + // + this.revisionInfoTB.AutoSize = true; + this.revisionInfoTB.Location = new System.Drawing.Point(297, 159); + this.revisionInfoTB.Name = "revisionInfoTB"; + this.revisionInfoTB.Size = new System.Drawing.Size(74, 13); + this.revisionInfoTB.TabIndex = 106; + this.revisionInfoTB.Text = "Revision Info"; + // + // label27 + // + this.label27.AutoSize = true; + this.label27.Location = new System.Drawing.Point(324, 220); + this.label27.Name = "label27"; + this.label27.Size = new System.Drawing.Size(0, 13); + this.label27.TabIndex = 107; + // + // publishingOptionsTB + // + this.publishingOptionsTB.Location = new System.Drawing.Point(377, 213); + this.publishingOptionsTB.Name = "publishingOptionsTB"; + this.publishingOptionsTB.Size = new System.Drawing.Size(149, 22); + this.publishingOptionsTB.TabIndex = 35; + // + // label26 + // + this.label26.AutoSize = true; + this.label26.Location = new System.Drawing.Point(264, 216); + this.label26.Name = "label26"; + this.label26.Size = new System.Drawing.Size(107, 13); + this.label26.TabIndex = 109; + this.label26.Text = "Publishing Options"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(385, 186); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(0, 13); + this.label9.TabIndex = 110; + // + // textBox14 + // + this.textBox14.Location = new System.Drawing.Point(377, 186); + this.textBox14.Name = "textBox14"; + this.textBox14.Size = new System.Drawing.Size(149, 22); + this.textBox14.TabIndex = 34; + // + // authoringInfoTB + // + this.authoringInfoTB.AutoSize = true; + this.authoringInfoTB.Location = new System.Drawing.Point(287, 189); + this.authoringInfoTB.Name = "authoringInfoTB"; + this.authoringInfoTB.Size = new System.Drawing.Size(84, 13); + this.authoringInfoTB.TabIndex = 112; + this.authoringInfoTB.Text = "Authoring Info"; + // + // browseButton + // + this.browseButton.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.browseButton.Location = new System.Drawing.Point(446, 241); + this.browseButton.Name = "browseButton"; + this.browseButton.Size = new System.Drawing.Size(80, 28); + this.browseButton.TabIndex = 36; + this.browseButton.Text = "&Browse"; + this.browseButton.UseVisualStyleBackColor = true; + this.browseButton.Click += new System.EventHandler(this.browseButton_Click); + // + // fileTB + // + this.fileTB.Location = new System.Drawing.Point(108, 244); + this.fileTB.Name = "fileTB"; + this.fileTB.Size = new System.Drawing.Size(332, 22); + this.fileTB.TabIndex = 114; + this.toolTip1.SetToolTip(this.fileTB, "Required"); + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Location = new System.Drawing.Point(72, 247); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(30, 13); + this.label21.TabIndex = 115; + this.label21.Text = "File*"; + // + // groupBox4 + // + this.groupBox4.BackColor = System.Drawing.SystemColors.ButtonFace; + this.groupBox4.Controls.Add(this.dataSourceDriverCB); + this.groupBox4.Controls.Add(this.label21); + this.groupBox4.Controls.Add(this.fileTB); + this.groupBox4.Controls.Add(this.browseButton); + this.groupBox4.Controls.Add(this.authoringInfoTB); + this.groupBox4.Controls.Add(this.textBox14); + this.groupBox4.Controls.Add(this.label9); + this.groupBox4.Controls.Add(this.label26); + this.groupBox4.Controls.Add(this.publishingOptionsTB); + this.groupBox4.Controls.Add(this.label27); + this.groupBox4.Controls.Add(this.revisionInfoTB); + this.groupBox4.Controls.Add(this.textBox6); + this.groupBox4.Controls.Add(this.label34); + this.groupBox4.Controls.Add(this.driverConfigTB); + this.groupBox4.Controls.Add(this.label35); + this.groupBox4.Controls.Add(this.label36); + this.groupBox4.Controls.Add(this.webserviceTB); + this.groupBox4.Controls.Add(this.label37); + this.groupBox4.Controls.Add(this.layer_IDTB); + this.groupBox4.Controls.Add(this.label38); + this.groupBox4.Controls.Add(this.label39); + this.groupBox4.Controls.Add(this.styleTB); + this.groupBox4.Controls.Add(this.label40); + this.groupBox4.Controls.Add(this.style_IDTB); + this.groupBox4.Controls.Add(this.label41); + this.groupBox4.Controls.Add(this.coverageSpatialTB); + this.groupBox4.Controls.Add(this.label42); + this.groupBox4.Controls.Add(this.label43); + this.groupBox4.Controls.Add(this.driverTB); + this.groupBox4.Controls.Add(this.label44); + this.groupBox4.Controls.Add(this.label45); + this.groupBox4.Controls.Add(this.rightsTB); + this.groupBox4.Controls.Add(this.label46); + this.groupBox4.Controls.Add(this.tagsTB); + this.groupBox4.Controls.Add(this.label47); + this.groupBox4.Controls.Add(this.referencesTB); + this.groupBox4.Controls.Add(this.label48); + this.groupBox4.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox4.Location = new System.Drawing.Point(15, 421); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(530, 278); + this.groupBox4.TabIndex = 122; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Document Information (continued)"; + // + // dataSourceDriverCB + // + this.dataSourceDriverCB.FormattingEnabled = true; + this.dataSourceDriverCB.Location = new System.Drawing.Point(108, 185); + this.dataSourceDriverCB.Name = "dataSourceDriverCB"; + this.dataSourceDriverCB.Size = new System.Drawing.Size(148, 21); + this.dataSourceDriverCB.TabIndex = 26; + this.dataSourceDriverCB.SelectedIndexChanged += new System.EventHandler(this.dataSourceDriverCB_SelectedIndexChanged); + // + // finishUploadButton + // + this.finishUploadButton.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.finishUploadButton.Location = new System.Drawing.Point(403, 705); + this.finishUploadButton.Name = "finishUploadButton"; + this.finishUploadButton.Size = new System.Drawing.Size(142, 46); + this.finishUploadButton.TabIndex = 37; + this.finishUploadButton.Text = "&Finish and Upload"; + this.finishUploadButton.UseVisualStyleBackColor = true; + this.finishUploadButton.Click += new System.EventHandler(this.finishUploadButton_Click); + // + // backButton + // + this.backButton.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.backButton.Location = new System.Drawing.Point(231, 722); + this.backButton.Name = "backButton"; + this.backButton.Size = new System.Drawing.Size(80, 28); + this.backButton.TabIndex = 150; + this.backButton.Text = "Bac&k"; + this.backButton.UseVisualStyleBackColor = true; + this.backButton.Click += new System.EventHandler(this.backButton_Click); + // + // toolTip1 + // + this.toolTip1.AutoPopDelay = 5000; + this.toolTip1.InitialDelay = 100; + this.toolTip1.ReshowDelay = 100; + this.toolTip1.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info; + // + // pBar + // + this.pBar.Location = new System.Drawing.Point(15, 722); + this.pBar.Name = "pBar"; + this.pBar.Size = new System.Drawing.Size(210, 28); + this.pBar.TabIndex = 127; + // + // button1 + // + this.button1.BackColor = System.Drawing.Color.Red; + this.button1.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button1.Location = new System.Drawing.Point(14, 700); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(21, 19); + this.button1.TabIndex = 128; + this.button1.UseVisualStyleBackColor = false; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // uploadForm1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.ButtonFace; + this.ClientSize = new System.Drawing.Size(560, 763); + this.Controls.Add(this.button1); + this.Controls.Add(this.pBar); + this.Controls.Add(this.backButton); + this.Controls.Add(this.finishUploadButton); + this.Controls.Add(this.groupBox4); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.Cancel_button); + this.Name = "uploadForm1"; + this.Text = "Upload New Content"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.groupBox3.ResumeLayout(false); + this.groupBox3.PerformLayout(); + this.groupBox4.ResumeLayout(false); + this.groupBox4.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TextBox titleTB; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox emailTB; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox nameTB; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Button Cancel_button; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox organizationTB; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox addressTB; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.TextBox bodyTB; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.TextBox nicknameTB; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.TextBox zipcodeTB; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.TextBox phonenumberTB; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.TextBox contribNameTB; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.TextBox citystateTB; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.TextBox countryTB; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.TextBox contribContributionTB; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.Label label23; + private System.Windows.Forms.TextBox contribNicknameTB; + private System.Windows.Forms.Label label24; + private System.Windows.Forms.TextBox contribEmailTB; + private System.Windows.Forms.TextBox contribOrganizationTB; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox contribPhonenumberTB; + private System.Windows.Forms.Label label25; + private System.Windows.Forms.TextBox contribCountryTB; + private System.Windows.Forms.Label label28; + private System.Windows.Forms.TextBox sourceCommentsTB; + private System.Windows.Forms.Label label29; + private System.Windows.Forms.Label label30; + private System.Windows.Forms.TextBox sourceNameTB; + private System.Windows.Forms.Label label31; + private System.Windows.Forms.TextBox sourceSubjectTB; + private System.Windows.Forms.Label label32; + private System.Windows.Forms.TextBox sourceIDTB; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Label label48; + private System.Windows.Forms.TextBox referencesTB; + private System.Windows.Forms.Label label47; + private System.Windows.Forms.TextBox tagsTB; + private System.Windows.Forms.Label label46; + private System.Windows.Forms.TextBox rightsTB; + private System.Windows.Forms.Label label45; + private System.Windows.Forms.Label label44; + private System.Windows.Forms.TextBox driverTB; + private System.Windows.Forms.Label label43; + private System.Windows.Forms.Label label42; + private System.Windows.Forms.TextBox coverageSpatialTB; + private System.Windows.Forms.Label label41; + private System.Windows.Forms.TextBox style_IDTB; + private System.Windows.Forms.Label label40; + private System.Windows.Forms.TextBox styleTB; + private System.Windows.Forms.Label label39; + private System.Windows.Forms.Label label38; + private System.Windows.Forms.TextBox layer_IDTB; + private System.Windows.Forms.Label label37; + private System.Windows.Forms.TextBox webserviceTB; + private System.Windows.Forms.Label label36; + private System.Windows.Forms.Label label35; + private System.Windows.Forms.TextBox driverConfigTB; + private System.Windows.Forms.Label label34; + private System.Windows.Forms.TextBox textBox6; + private System.Windows.Forms.Label revisionInfoTB; + private System.Windows.Forms.Label label27; + private System.Windows.Forms.TextBox publishingOptionsTB; + private System.Windows.Forms.Label label26; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.TextBox textBox14; + private System.Windows.Forms.Label authoringInfoTB; + private System.Windows.Forms.Button browseButton; + private System.Windows.Forms.TextBox fileTB; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.Button finishUploadButton; + private System.Windows.Forms.ComboBox dataSourceDriverCB; + private System.Windows.Forms.Button backButton; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.ProgressBar pBar; + private System.Windows.Forms.Button button1; + + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1.cs new file mode 100644 index 00000000..aaa41fd2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1.cs @@ -0,0 +1,225 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.IO; + + +namespace HydroShare +{ + public partial class uploadForm1 : Form + { + public string title, bodyEditSummary, name, nickname, email, organization, address, cityState, zipCode, country, phoneNumber; + public string cName, cNickname, cContribution, cEmail, cOrganization, cCountry, cPhoneNumber; + public string sSubject, sName, sComments, sID; + public string references, rights, coverageSpatial, tags, dataSourceDriver, driver, style, webservice, style_ID, layer_ID, driverConfig, + revisionInfo, authoringInfo, publishingOptions, file; + + + public uploadForm1() + { + + InitializeComponent(); + string[] items = new string[]{"N/A","SHAPEFILE","KMZ","GEOTIFF","POSTGIS","OGR"}; + dataSourceDriverCB.DataSource = items; + dataSourceDriverCB.SelectedIndex = 0; + + pBar.Visible = true; + pBar.Minimum = 1; + pBar.Maximum = items.Length; + pBar.Value = 1; + pBar.Step = 1; + } + + + //click the CANCEL button + private void button2_Click(object sender, EventArgs e) + { + if (MessageBox.Show("This will delete all information in this form. Are you sure you want to proceed?", "Caution", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) + { + this.Close(); + } + else + { + //do nothing + } + } + + private void makeVisible() + { + this.Visible = true; + } + + private void pictureBox1_Click(object sender, EventArgs e) + { + + } + + private void browseButton_Click(object sender, EventArgs e) + { + /* + OpenFileDialog fDialog = new OpenFileDialog(); + fDialog.Title = "Open File"; + fDialog.Filter = "XML Files|*.xml|UML Files|*.uml"; + fDialog.InitialDirectory = @"C:\"; + if (fDialog.ShowDialog() == DialogResult.OK) + MessageBox.Show(fDialog.FileName.ToString()); + */ + + FolderBrowserDialog folder = new FolderBrowserDialog(); + if (folder.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + string folderPath = folder.SelectedPath; + file = fileTB.Text = folderPath; + } + + } + + private void finishUploadButton_Click(object sender, EventArgs e) + { + //System.IO.File.WriteAllLines(@"C:\Users\Temp\Desktop\WriteLines.txt", prevInputs); + /* + string url = "http://dev.hyrdroshare.org"; + string file = fileTB.Text; + WebClient client = new WebClient(); + client.UploadFile(url, "post", file); + */ + + + title = this.titleTB.Text; + pBar.PerformStep(); + name = this.nameTB.Text; + pBar.PerformStep(); + email = this.emailTB.Text; + pBar.PerformStep(); + sSubject = this.sourceSubjectTB.Text; + pBar.PerformStep(); + rights = this.rightsTB.Text; + pBar.PerformStep(); + coverageSpatial = this.coverageSpatialTB.Text; + pBar.PerformStep(); + file = this.fileTB.Text; + pBar.PerformStep(); + + + //if either title OR email OR name OR subject text boxes are blank + //then the user is informed that they must fix this error + if ((title.Length == 0) || (email.Length == 0) || (name.Length == 0) || (sSubject.Length == 0) || (rights.Length == 0) || (coverageSpatial.Length == 0) || (file.Length == 0)) + { + MessageBox.Show("Please fill in all required fields (marked with an * ).", "Error", MessageBoxButtons.OK); + } + + else + { + //store text boxes in local variables + //these variables will then be permanently stored in an array + bodyEditSummary = this.bodyTB.Text; + pBar.PerformStep(); + nickname = this.nicknameTB.Text; + pBar.PerformStep(); + organization = this.organizationTB.Text; + pBar.PerformStep(); + address = this.addressTB.Text; + pBar.PerformStep(); + cityState = this.citystateTB.Text; + pBar.PerformStep(); + zipCode = this.zipcodeTB.Text; + pBar.PerformStep(); + country = this.countryTB.Text; + pBar.PerformStep(); + phoneNumber = this.phonenumberTB.Text; + pBar.PerformStep(); + cName = this.contribNameTB.Text; + pBar.PerformStep(); + cNickname = this.contribNicknameTB.Text; + pBar.PerformStep(); + cContribution = this.contribContributionTB.Text; + pBar.PerformStep(); + cEmail = this.contribEmailTB.Text; + pBar.PerformStep(); + cOrganization = this.contribOrganizationTB.Text; + pBar.PerformStep(); + cCountry = this.contribCountryTB.Text; + pBar.PerformStep(); + cPhoneNumber = this.contribPhonenumberTB.Text; + pBar.PerformStep(); + sName = this.sourceNameTB.Text; + pBar.PerformStep(); + sComments = this.sourceCommentsTB.Text; + pBar.PerformStep(); + sID = this.sourceIDTB.Text; + pBar.PerformStep(); + references = this.referencesTB.Text; + pBar.PerformStep(); + tags = this.tagsTB.Text; + pBar.PerformStep(); + dataSourceDriver = this.dataSourceDriverCB.Text; + pBar.PerformStep(); + driver = this.driverTB.Text; + pBar.PerformStep(); + style = this.styleTB.Text; + pBar.PerformStep(); + webservice = this.webserviceTB.Text; + pBar.PerformStep(); + style_ID = this.style_IDTB.Text; + pBar.PerformStep(); + layer_ID = this.layer_IDTB.Text; + pBar.PerformStep(); + driverConfig = this.driverConfigTB.Text; + pBar.PerformStep(); + revisionInfo = this.revisionInfoTB.Text; + pBar.PerformStep(); + authoringInfo = this.authoringInfoTB.Text; + pBar.PerformStep(); + publishingOptions = this.publishingOptionsTB.Text; + pBar.PerformStep(); + + //store all of the variables in an array + //this array will be passed down to uploadForm2 + //this way we can close this form, but retain its contents + string[] inputs = {title, bodyEditSummary, name, nickname, email, organization, address, cityState, zipCode, country, + phoneNumber, cName, cNickname, cContribution, cEmail, cOrganization, cCountry, cPhoneNumber, + sSubject, sName, sComments, sID, references, tags, dataSourceDriver, driver, style, webservice, + style_ID, layer_ID, driverConfig, revisionInfo, authoringInfo, publishingOptions}; + + //close this form + this.Visible = false; + + printForm print = new printForm(this); + print.StartPosition = FormStartPosition.CenterScreen; + print.Visible = true; + } + } + + private void dataSourceDriverCB_SelectedIndexChanged(object sender, EventArgs e) + { + + } + + private void backButton_Click(object sender, EventArgs e) + { + if (MessageBox.Show("This will delete all information in this form. Are you sure you want to proceed?", "Caution", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) + { + this.Close(); + chooseUploadType uploadType = new chooseUploadType(); + uploadType.StartPosition = FormStartPosition.CenterScreen; + uploadType.Visible = true; + } + else + { + //do nothing + } + } + + private void button1_Click(object sender, EventArgs e) + { + gotoWeb browser = new gotoWeb(); + browser.StartPosition = FormStartPosition.CenterScreen; + browser.Visible = true; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1.resx b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1.resx new file mode 100644 index 00000000..e66815da --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 16, 3 + + + 16, 3 + + + 28 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_geo.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_geo.Designer.cs new file mode 100644 index 00000000..a50eff86 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_geo.Designer.cs @@ -0,0 +1,1145 @@ +namespace HydroDesktop.Plugins.HydroShare +{ + partial class uploadForm1_geo + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.titleTB = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.emailTB = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.nameTB = new System.Windows.Forms.TextBox(); + this.label8 = new System.Windows.Forms.Label(); + this.Cancel_button = new System.Windows.Forms.Button(); + this.label6 = new System.Windows.Forms.Label(); + this.organizationTB = new System.Windows.Forms.TextBox(); + this.label7 = new System.Windows.Forms.Label(); + this.addressTB = new System.Windows.Forms.TextBox(); + this.label11 = new System.Windows.Forms.Label(); + this.bodyTB = new System.Windows.Forms.TextBox(); + this.label12 = new System.Windows.Forms.Label(); + this.nicknameTB = new System.Windows.Forms.TextBox(); + this.label13 = new System.Windows.Forms.Label(); + this.zipcodeTB = new System.Windows.Forms.TextBox(); + this.label14 = new System.Windows.Forms.Label(); + this.phonenumberTB = new System.Windows.Forms.TextBox(); + this.label15 = new System.Windows.Forms.Label(); + this.contribNameTB = new System.Windows.Forms.TextBox(); + this.label16 = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.citystateTB = new System.Windows.Forms.TextBox(); + this.label18 = new System.Windows.Forms.Label(); + this.countryTB = new System.Windows.Forms.TextBox(); + this.label19 = new System.Windows.Forms.Label(); + this.contribContributionTB = new System.Windows.Forms.TextBox(); + this.label20 = new System.Windows.Forms.Label(); + this.label22 = new System.Windows.Forms.Label(); + this.label23 = new System.Windows.Forms.Label(); + this.contribNicknameTB = new System.Windows.Forms.TextBox(); + this.label24 = new System.Windows.Forms.Label(); + this.contribEmailTB = new System.Windows.Forms.TextBox(); + this.contribOrganizationTB = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.contribPhonenumberTB = new System.Windows.Forms.TextBox(); + this.label25 = new System.Windows.Forms.Label(); + this.contribCountryTB = new System.Windows.Forms.TextBox(); + this.label28 = new System.Windows.Forms.Label(); + this.sourceCommentsTB = new System.Windows.Forms.TextBox(); + this.label29 = new System.Windows.Forms.Label(); + this.label30 = new System.Windows.Forms.Label(); + this.sourceNameTB = new System.Windows.Forms.TextBox(); + this.label31 = new System.Windows.Forms.Label(); + this.sourceSubjectTB = new System.Windows.Forms.TextBox(); + this.label32 = new System.Windows.Forms.Label(); + this.sourceIDTB = new System.Windows.Forms.TextBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.label48 = new System.Windows.Forms.Label(); + this.referencesTB = new System.Windows.Forms.TextBox(); + this.label47 = new System.Windows.Forms.Label(); + this.tagsTB = new System.Windows.Forms.TextBox(); + this.label46 = new System.Windows.Forms.Label(); + this.rightsTB = new System.Windows.Forms.TextBox(); + this.label45 = new System.Windows.Forms.Label(); + this.label44 = new System.Windows.Forms.Label(); + this.driverTB = new System.Windows.Forms.TextBox(); + this.label43 = new System.Windows.Forms.Label(); + this.label42 = new System.Windows.Forms.Label(); + this.coverageSpatialTB = new System.Windows.Forms.TextBox(); + this.label41 = new System.Windows.Forms.Label(); + this.style_IDTB = new System.Windows.Forms.TextBox(); + this.label40 = new System.Windows.Forms.Label(); + this.styleTB = new System.Windows.Forms.TextBox(); + this.label39 = new System.Windows.Forms.Label(); + this.label38 = new System.Windows.Forms.Label(); + this.layer_IDTB = new System.Windows.Forms.TextBox(); + this.label37 = new System.Windows.Forms.Label(); + this.webserviceTB = new System.Windows.Forms.TextBox(); + this.label36 = new System.Windows.Forms.Label(); + this.label35 = new System.Windows.Forms.Label(); + this.driverConfigTB = new System.Windows.Forms.TextBox(); + this.label34 = new System.Windows.Forms.Label(); + this.textBox6 = new System.Windows.Forms.TextBox(); + this.revisionInfoTB = new System.Windows.Forms.Label(); + this.label27 = new System.Windows.Forms.Label(); + this.publishingOptionsTB = new System.Windows.Forms.TextBox(); + this.label26 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.textBox14 = new System.Windows.Forms.TextBox(); + this.authoringInfoTB = new System.Windows.Forms.Label(); + this.browseButton = new System.Windows.Forms.Button(); + this.fileTB = new System.Windows.Forms.TextBox(); + this.label21 = new System.Windows.Forms.Label(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.dataSourceDriverCB = new System.Windows.Forms.ComboBox(); + this.finishUploadButton = new System.Windows.Forms.Button(); + this.backButton = new System.Windows.Forms.Button(); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.pBar = new System.Windows.Forms.ProgressBar(); + this.button1 = new System.Windows.Forms.Button(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.groupBox4.SuspendLayout(); + this.SuspendLayout(); + // + // titleTB + // + this.titleTB.Location = new System.Drawing.Point(92, 27); + this.titleTB.Name = "titleTB"; + this.titleTB.Size = new System.Drawing.Size(149, 22); + this.titleTB.TabIndex = 0; + this.toolTip1.SetToolTip(this.titleTB, "Required"); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(55, 31); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(33, 13); + this.label1.TabIndex = 1; + this.label1.Text = "Title*"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(50, 214); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(39, 13); + this.label2.TabIndex = 3; + this.label2.Text = "Email*"; + // + // emailTB + // + this.emailTB.Location = new System.Drawing.Point(92, 211); + this.emailTB.Name = "emailTB"; + this.emailTB.Size = new System.Drawing.Size(149, 22); + this.emailTB.TabIndex = 4; + this.toolTip1.SetToolTip(this.emailTB, "Required"); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(47, 162); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(41, 13); + this.label3.TabIndex = 5; + this.label3.Text = "Name*"; + // + // nameTB + // + this.nameTB.Location = new System.Drawing.Point(92, 159); + this.nameTB.Name = "nameTB"; + this.nameTB.Size = new System.Drawing.Size(149, 22); + this.nameTB.TabIndex = 2; + this.toolTip1.SetToolTip(this.nameTB, "Required"); + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(48, 177); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(0, 13); + this.label8.TabIndex = 15; + // + // Cancel_button + // + this.Cancel_button.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Cancel_button.Location = new System.Drawing.Point(317, 722); + this.Cancel_button.Name = "Cancel_button"; + this.Cancel_button.Size = new System.Drawing.Size(80, 28); + this.Cancel_button.TabIndex = 151; + this.Cancel_button.Text = "&Cancel"; + this.Cancel_button.UseVisualStyleBackColor = true; + this.Cancel_button.Click += new System.EventHandler(this.button2_Click); + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(11, 240); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(75, 13); + this.label6.TabIndex = 24; + this.label6.Text = "Organization"; + // + // organizationTB + // + this.organizationTB.Location = new System.Drawing.Point(92, 237); + this.organizationTB.Name = "organizationTB"; + this.organizationTB.Size = new System.Drawing.Size(149, 22); + this.organizationTB.TabIndex = 5; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(5, 266); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(81, 13); + this.label7.TabIndex = 22; + this.label7.Text = "Street Address"; + // + // addressTB + // + this.addressTB.Location = new System.Drawing.Point(92, 263); + this.addressTB.Name = "addressTB"; + this.addressTB.Size = new System.Drawing.Size(149, 22); + this.addressTB.TabIndex = 6; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(5, 56); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(87, 13); + this.label11.TabIndex = 28; + this.label11.Text = "Body (summary)"; + // + // bodyTB + // + this.bodyTB.Location = new System.Drawing.Point(92, 53); + this.bodyTB.Multiline = true; + this.bodyTB.Name = "bodyTB"; + this.bodyTB.Size = new System.Drawing.Size(149, 100); + this.bodyTB.TabIndex = 1; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(31, 187); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(57, 13); + this.label12.TabIndex = 30; + this.label12.Text = "Nickname"; + // + // nicknameTB + // + this.nicknameTB.Location = new System.Drawing.Point(92, 185); + this.nicknameTB.Name = "nicknameTB"; + this.nicknameTB.Size = new System.Drawing.Size(149, 22); + this.nicknameTB.TabIndex = 3; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(40, 320); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(48, 13); + this.label13.TabIndex = 42; + this.label13.Text = "Zipcode"; + // + // zipcodeTB + // + this.zipcodeTB.Location = new System.Drawing.Point(92, 317); + this.zipcodeTB.Name = "zipcodeTB"; + this.zipcodeTB.Size = new System.Drawing.Size(149, 22); + this.zipcodeTB.TabIndex = 8; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point(2, 372); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(84, 13); + this.label14.TabIndex = 40; + this.label14.Text = "Phone Number"; + // + // phonenumberTB + // + this.phonenumberTB.Location = new System.Drawing.Point(92, 369); + this.phonenumberTB.Name = "phonenumberTB"; + this.phonenumberTB.Size = new System.Drawing.Size(149, 22); + this.phonenumberTB.TabIndex = 10; + this.toolTip1.SetToolTip(this.phonenumberTB, "123-456-7890"); + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point(45, 30); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(36, 13); + this.label15.TabIndex = 38; + this.label15.Text = "Name"; + // + // contribNameTB + // + this.contribNameTB.Location = new System.Drawing.Point(86, 27); + this.contribNameTB.Name = "contribNameTB"; + this.contribNameTB.Size = new System.Drawing.Size(149, 22); + this.contribNameTB.TabIndex = 11; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(48, 309); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(0, 13); + this.label16.TabIndex = 36; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(31, 294); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(58, 13); + this.label17.TabIndex = 35; + this.label17.Text = "City, State"; + // + // citystateTB + // + this.citystateTB.Location = new System.Drawing.Point(92, 291); + this.citystateTB.Name = "citystateTB"; + this.citystateTB.Size = new System.Drawing.Size(149, 22); + this.citystateTB.TabIndex = 7; + // + // label18 + // + this.label18.AutoSize = true; + this.label18.Location = new System.Drawing.Point(38, 345); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(48, 13); + this.label18.TabIndex = 33; + this.label18.Text = "Country"; + // + // countryTB + // + this.countryTB.Location = new System.Drawing.Point(92, 343); + this.countryTB.Name = "countryTB"; + this.countryTB.Size = new System.Drawing.Size(149, 22); + this.countryTB.TabIndex = 9; + // + // label19 + // + this.label19.AutoSize = true; + this.label19.Location = new System.Drawing.Point(9, 82); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(74, 13); + this.label19.TabIndex = 53; + this.label19.Text = "Contribution"; + // + // contribContributionTB + // + this.contribContributionTB.Location = new System.Drawing.Point(86, 79); + this.contribContributionTB.Name = "contribContributionTB"; + this.contribContributionTB.Size = new System.Drawing.Size(149, 22); + this.contribContributionTB.TabIndex = 13; + // + // label20 + // + this.label20.AutoSize = true; + this.label20.Location = new System.Drawing.Point(5, 134); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(75, 13); + this.label20.TabIndex = 51; + this.label20.Text = "Organization"; + // + // label22 + // + this.label22.AutoSize = true; + this.label22.Location = new System.Drawing.Point(19, 71); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(0, 13); + this.label22.TabIndex = 47; + // + // label23 + // + this.label23.AutoSize = true; + this.label23.Location = new System.Drawing.Point(23, 56); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(57, 13); + this.label23.TabIndex = 46; + this.label23.Text = "Nickname"; + // + // contribNicknameTB + // + this.contribNicknameTB.Location = new System.Drawing.Point(86, 53); + this.contribNicknameTB.Name = "contribNicknameTB"; + this.contribNicknameTB.Size = new System.Drawing.Size(149, 22); + this.contribNicknameTB.TabIndex = 12; + // + // label24 + // + this.label24.AutoSize = true; + this.label24.Location = new System.Drawing.Point(48, 108); + this.label24.Name = "label24"; + this.label24.Size = new System.Drawing.Size(34, 13); + this.label24.TabIndex = 44; + this.label24.Text = "Email"; + // + // contribEmailTB + // + this.contribEmailTB.Location = new System.Drawing.Point(86, 105); + this.contribEmailTB.Name = "contribEmailTB"; + this.contribEmailTB.Size = new System.Drawing.Size(149, 22); + this.contribEmailTB.TabIndex = 14; + // + // contribOrganizationTB + // + this.contribOrganizationTB.Location = new System.Drawing.Point(86, 131); + this.contribOrganizationTB.Name = "contribOrganizationTB"; + this.contribOrganizationTB.Size = new System.Drawing.Size(149, 22); + this.contribOrganizationTB.TabIndex = 15; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(1, 187); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(84, 13); + this.label4.TabIndex = 60; + this.label4.Text = "Phone Number"; + // + // contribPhonenumberTB + // + this.contribPhonenumberTB.Location = new System.Drawing.Point(86, 183); + this.contribPhonenumberTB.Name = "contribPhonenumberTB"; + this.contribPhonenumberTB.Size = new System.Drawing.Size(149, 22); + this.contribPhonenumberTB.TabIndex = 17; + this.toolTip1.SetToolTip(this.contribPhonenumberTB, "123-456-7890"); + // + // label25 + // + this.label25.AutoSize = true; + this.label25.Location = new System.Drawing.Point(32, 160); + this.label25.Name = "label25"; + this.label25.Size = new System.Drawing.Size(48, 13); + this.label25.TabIndex = 58; + this.label25.Text = "Country"; + // + // contribCountryTB + // + this.contribCountryTB.Location = new System.Drawing.Point(86, 157); + this.contribCountryTB.Name = "contribCountryTB"; + this.contribCountryTB.Size = new System.Drawing.Size(149, 22); + this.contribCountryTB.TabIndex = 16; + // + // label28 + // + this.label28.AutoSize = true; + this.label28.Location = new System.Drawing.Point(19, 82); + this.label28.Name = "label28"; + this.label28.Size = new System.Drawing.Size(61, 13); + this.label28.TabIndex = 69; + this.label28.Text = "Comments"; + // + // sourceCommentsTB + // + this.sourceCommentsTB.Location = new System.Drawing.Point(86, 77); + this.sourceCommentsTB.Name = "sourceCommentsTB"; + this.sourceCommentsTB.Size = new System.Drawing.Size(149, 22); + this.sourceCommentsTB.TabIndex = 20; + // + // label29 + // + this.label29.AutoSize = true; + this.label29.Location = new System.Drawing.Point(19, 69); + this.label29.Name = "label29"; + this.label29.Size = new System.Drawing.Size(0, 13); + this.label29.TabIndex = 67; + // + // label30 + // + this.label30.AutoSize = true; + this.label30.Location = new System.Drawing.Point(45, 54); + this.label30.Name = "label30"; + this.label30.Size = new System.Drawing.Size(36, 13); + this.label30.TabIndex = 66; + this.label30.Text = "Name"; + // + // sourceNameTB + // + this.sourceNameTB.Location = new System.Drawing.Point(86, 51); + this.sourceNameTB.Name = "sourceNameTB"; + this.sourceNameTB.Size = new System.Drawing.Size(149, 22); + this.sourceNameTB.TabIndex = 19; + // + // label31 + // + this.label31.AutoSize = true; + this.label31.Location = new System.Drawing.Point(33, 28); + this.label31.Name = "label31"; + this.label31.Size = new System.Drawing.Size(50, 13); + this.label31.TabIndex = 64; + this.label31.Text = "Subject*"; + // + // sourceSubjectTB + // + this.sourceSubjectTB.Location = new System.Drawing.Point(86, 25); + this.sourceSubjectTB.Name = "sourceSubjectTB"; + this.sourceSubjectTB.Size = new System.Drawing.Size(149, 22); + this.sourceSubjectTB.TabIndex = 18; + this.toolTip1.SetToolTip(this.sourceSubjectTB, "Required"); + // + // label32 + // + this.label32.AutoSize = true; + this.label32.Location = new System.Drawing.Point(62, 110); + this.label32.Name = "label32"; + this.label32.Size = new System.Drawing.Size(18, 13); + this.label32.TabIndex = 71; + this.label32.Text = "ID"; + // + // sourceIDTB + // + this.sourceIDTB.Location = new System.Drawing.Point(86, 107); + this.sourceIDTB.Name = "sourceIDTB"; + this.sourceIDTB.Size = new System.Drawing.Size(149, 22); + this.sourceIDTB.TabIndex = 21; + // + // groupBox1 + // + this.groupBox1.BackColor = System.Drawing.SystemColors.ButtonFace; + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Controls.Add(this.contribPhonenumberTB); + this.groupBox1.Controls.Add(this.label25); + this.groupBox1.Controls.Add(this.contribCountryTB); + this.groupBox1.Controls.Add(this.contribOrganizationTB); + this.groupBox1.Controls.Add(this.label19); + this.groupBox1.Controls.Add(this.contribContributionTB); + this.groupBox1.Controls.Add(this.label20); + this.groupBox1.Controls.Add(this.label22); + this.groupBox1.Controls.Add(this.label23); + this.groupBox1.Controls.Add(this.contribNicknameTB); + this.groupBox1.Controls.Add(this.label24); + this.groupBox1.Controls.Add(this.contribEmailTB); + this.groupBox1.Controls.Add(this.label15); + this.groupBox1.Controls.Add(this.contribNameTB); + this.groupBox1.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox1.Location = new System.Drawing.Point(304, 12); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(241, 213); + this.groupBox1.TabIndex = 72; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Contributor Information"; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.label13); + this.groupBox2.Controls.Add(this.zipcodeTB); + this.groupBox2.Controls.Add(this.label14); + this.groupBox2.Controls.Add(this.phonenumberTB); + this.groupBox2.Controls.Add(this.label16); + this.groupBox2.Controls.Add(this.label17); + this.groupBox2.Controls.Add(this.citystateTB); + this.groupBox2.Controls.Add(this.label18); + this.groupBox2.Controls.Add(this.countryTB); + this.groupBox2.Controls.Add(this.label12); + this.groupBox2.Controls.Add(this.nicknameTB); + this.groupBox2.Controls.Add(this.label11); + this.groupBox2.Controls.Add(this.bodyTB); + this.groupBox2.Controls.Add(this.label6); + this.groupBox2.Controls.Add(this.organizationTB); + this.groupBox2.Controls.Add(this.label7); + this.groupBox2.Controls.Add(this.addressTB); + this.groupBox2.Controls.Add(this.label8); + this.groupBox2.Controls.Add(this.label3); + this.groupBox2.Controls.Add(this.nameTB); + this.groupBox2.Controls.Add(this.label2); + this.groupBox2.Controls.Add(this.emailTB); + this.groupBox2.Controls.Add(this.label1); + this.groupBox2.Controls.Add(this.titleTB); + this.groupBox2.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox2.Location = new System.Drawing.Point(15, 10); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(246, 395); + this.groupBox2.TabIndex = 73; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Document Information"; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.label32); + this.groupBox3.Controls.Add(this.sourceIDTB); + this.groupBox3.Controls.Add(this.label28); + this.groupBox3.Controls.Add(this.sourceCommentsTB); + this.groupBox3.Controls.Add(this.label29); + this.groupBox3.Controls.Add(this.label30); + this.groupBox3.Controls.Add(this.sourceNameTB); + this.groupBox3.Controls.Add(this.label31); + this.groupBox3.Controls.Add(this.sourceSubjectTB); + this.groupBox3.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox3.Location = new System.Drawing.Point(304, 247); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(241, 139); + this.groupBox3.TabIndex = 74; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Source Information"; + // + // label48 + // + this.label48.AutoSize = true; + this.label48.Location = new System.Drawing.Point(385, 104); + this.label48.Name = "label48"; + this.label48.Size = new System.Drawing.Size(0, 13); + this.label48.TabIndex = 75; + // + // referencesTB + // + this.referencesTB.Location = new System.Drawing.Point(108, 24); + this.referencesTB.Name = "referencesTB"; + this.referencesTB.Size = new System.Drawing.Size(149, 22); + this.referencesTB.TabIndex = 22; + // + // label47 + // + this.label47.AutoSize = true; + this.label47.Location = new System.Drawing.Point(40, 29); + this.label47.Name = "label47"; + this.label47.Size = new System.Drawing.Size(63, 13); + this.label47.TabIndex = 78; + this.label47.Text = "References"; + // + // tagsTB + // + this.tagsTB.Location = new System.Drawing.Point(108, 102); + this.tagsTB.Multiline = true; + this.tagsTB.Name = "tagsTB"; + this.tagsTB.Size = new System.Drawing.Size(149, 71); + this.tagsTB.TabIndex = 25; + // + // label46 + // + this.label46.AutoSize = true; + this.label46.Location = new System.Drawing.Point(71, 104); + this.label46.Name = "label46"; + this.label46.Size = new System.Drawing.Size(30, 13); + this.label46.TabIndex = 80; + this.label46.Text = "Tags"; + this.label46.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // rightsTB + // + this.rightsTB.Location = new System.Drawing.Point(108, 50); + this.rightsTB.Name = "rightsTB"; + this.rightsTB.Size = new System.Drawing.Size(149, 22); + this.rightsTB.TabIndex = 23; + this.toolTip1.SetToolTip(this.rightsTB, "Required"); + // + // label45 + // + this.label45.AutoSize = true; + this.label45.Location = new System.Drawing.Point(61, 53); + this.label45.Name = "label45"; + this.label45.Size = new System.Drawing.Size(45, 13); + this.label45.TabIndex = 82; + this.label45.Text = "Rights*"; + // + // label44 + // + this.label44.AutoSize = true; + this.label44.Location = new System.Drawing.Point(35, 68); + this.label44.Name = "label44"; + this.label44.Size = new System.Drawing.Size(0, 13); + this.label44.TabIndex = 83; + // + // driverTB + // + this.driverTB.Location = new System.Drawing.Point(108, 212); + this.driverTB.Name = "driverTB"; + this.driverTB.Size = new System.Drawing.Size(149, 22); + this.driverTB.TabIndex = 27; + // + // label43 + // + this.label43.AutoSize = true; + this.label43.Location = new System.Drawing.Point(65, 215); + this.label43.Name = "label43"; + this.label43.Size = new System.Drawing.Size(37, 13); + this.label43.TabIndex = 85; + this.label43.Text = "Driver"; + // + // label42 + // + this.label42.AutoSize = true; + this.label42.Location = new System.Drawing.Point(1, 189); + this.label42.Name = "label42"; + this.label42.Size = new System.Drawing.Size(102, 13); + this.label42.TabIndex = 87; + this.label42.Text = "Data Source Driver"; + // + // coverageSpatialTB + // + this.coverageSpatialTB.Location = new System.Drawing.Point(108, 76); + this.coverageSpatialTB.Name = "coverageSpatialTB"; + this.coverageSpatialTB.Size = new System.Drawing.Size(149, 22); + this.coverageSpatialTB.TabIndex = 24; + this.toolTip1.SetToolTip(this.coverageSpatialTB, "Required"); + // + // label41 + // + this.label41.AutoSize = true; + this.label41.Location = new System.Drawing.Point(4, 81); + this.label41.Name = "label41"; + this.label41.Size = new System.Drawing.Size(98, 13); + this.label41.TabIndex = 91; + this.label41.Text = "Coverage Spatial*"; + // + // style_IDTB + // + this.style_IDTB.Location = new System.Drawing.Point(377, 78); + this.style_IDTB.Name = "style_IDTB"; + this.style_IDTB.Size = new System.Drawing.Size(149, 22); + this.style_IDTB.TabIndex = 30; + // + // label40 + // + this.label40.AutoSize = true; + this.label40.Location = new System.Drawing.Point(324, 81); + this.label40.Name = "label40"; + this.label40.Size = new System.Drawing.Size(47, 13); + this.label40.TabIndex = 93; + this.label40.Text = "Style_ID"; + // + // styleTB + // + this.styleTB.Location = new System.Drawing.Point(377, 26); + this.styleTB.Name = "styleTB"; + this.styleTB.PasswordChar = '*'; + this.styleTB.Size = new System.Drawing.Size(149, 22); + this.styleTB.TabIndex = 28; + // + // label39 + // + this.label39.AutoSize = true; + this.label39.Location = new System.Drawing.Point(341, 29); + this.label39.Name = "label39"; + this.label39.Size = new System.Drawing.Size(31, 13); + this.label39.TabIndex = 95; + this.label39.Text = "Style"; + // + // label38 + // + this.label38.AutoSize = true; + this.label38.Location = new System.Drawing.Point(304, 44); + this.label38.Name = "label38"; + this.label38.Size = new System.Drawing.Size(0, 13); + this.label38.TabIndex = 96; + // + // layer_IDTB + // + this.layer_IDTB.Location = new System.Drawing.Point(377, 104); + this.layer_IDTB.Name = "layer_IDTB"; + this.layer_IDTB.Size = new System.Drawing.Size(149, 22); + this.layer_IDTB.TabIndex = 31; + // + // label37 + // + this.label37.AutoSize = true; + this.label37.Location = new System.Drawing.Point(321, 107); + this.label37.Name = "label37"; + this.label37.Size = new System.Drawing.Size(49, 13); + this.label37.TabIndex = 98; + this.label37.Text = "Layer_ID"; + // + // webserviceTB + // + this.webserviceTB.Location = new System.Drawing.Point(377, 52); + this.webserviceTB.Name = "webserviceTB"; + this.webserviceTB.Size = new System.Drawing.Size(149, 22); + this.webserviceTB.TabIndex = 29; + // + // label36 + // + this.label36.AutoSize = true; + this.label36.Location = new System.Drawing.Point(307, 55); + this.label36.Name = "label36"; + this.label36.Size = new System.Drawing.Size(65, 13); + this.label36.TabIndex = 100; + this.label36.Text = "Webservice"; + // + // label35 + // + this.label35.AutoSize = true; + this.label35.Location = new System.Drawing.Point(385, 156); + this.label35.Name = "label35"; + this.label35.Size = new System.Drawing.Size(0, 13); + this.label35.TabIndex = 102; + // + // driverConfigTB + // + this.driverConfigTB.Location = new System.Drawing.Point(377, 130); + this.driverConfigTB.Name = "driverConfigTB"; + this.driverConfigTB.Size = new System.Drawing.Size(149, 22); + this.driverConfigTB.TabIndex = 32; + // + // label34 + // + this.label34.AutoSize = true; + this.label34.Location = new System.Drawing.Point(296, 133); + this.label34.Name = "label34"; + this.label34.Size = new System.Drawing.Size(75, 13); + this.label34.TabIndex = 104; + this.label34.Text = "Driver Config"; + // + // textBox6 + // + this.textBox6.Location = new System.Drawing.Point(377, 156); + this.textBox6.Name = "textBox6"; + this.textBox6.Size = new System.Drawing.Size(149, 22); + this.textBox6.TabIndex = 33; + // + // revisionInfoTB + // + this.revisionInfoTB.AutoSize = true; + this.revisionInfoTB.Location = new System.Drawing.Point(297, 159); + this.revisionInfoTB.Name = "revisionInfoTB"; + this.revisionInfoTB.Size = new System.Drawing.Size(74, 13); + this.revisionInfoTB.TabIndex = 106; + this.revisionInfoTB.Text = "Revision Info"; + // + // label27 + // + this.label27.AutoSize = true; + this.label27.Location = new System.Drawing.Point(324, 220); + this.label27.Name = "label27"; + this.label27.Size = new System.Drawing.Size(0, 13); + this.label27.TabIndex = 107; + // + // publishingOptionsTB + // + this.publishingOptionsTB.Location = new System.Drawing.Point(377, 213); + this.publishingOptionsTB.Name = "publishingOptionsTB"; + this.publishingOptionsTB.Size = new System.Drawing.Size(149, 22); + this.publishingOptionsTB.TabIndex = 35; + // + // label26 + // + this.label26.AutoSize = true; + this.label26.Location = new System.Drawing.Point(264, 216); + this.label26.Name = "label26"; + this.label26.Size = new System.Drawing.Size(107, 13); + this.label26.TabIndex = 109; + this.label26.Text = "Publishing Options"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(385, 186); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(0, 13); + this.label9.TabIndex = 110; + // + // textBox14 + // + this.textBox14.Location = new System.Drawing.Point(377, 186); + this.textBox14.Name = "textBox14"; + this.textBox14.Size = new System.Drawing.Size(149, 22); + this.textBox14.TabIndex = 34; + // + // authoringInfoTB + // + this.authoringInfoTB.AutoSize = true; + this.authoringInfoTB.Location = new System.Drawing.Point(287, 189); + this.authoringInfoTB.Name = "authoringInfoTB"; + this.authoringInfoTB.Size = new System.Drawing.Size(84, 13); + this.authoringInfoTB.TabIndex = 112; + this.authoringInfoTB.Text = "Authoring Info"; + // + // browseButton + // + this.browseButton.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.browseButton.Location = new System.Drawing.Point(446, 241); + this.browseButton.Name = "browseButton"; + this.browseButton.Size = new System.Drawing.Size(80, 28); + this.browseButton.TabIndex = 36; + this.browseButton.Text = "&Browse"; + this.browseButton.UseVisualStyleBackColor = true; + this.browseButton.Click += new System.EventHandler(this.browseButton_Click); + // + // fileTB + // + this.fileTB.Location = new System.Drawing.Point(108, 244); + this.fileTB.Name = "fileTB"; + this.fileTB.Size = new System.Drawing.Size(332, 22); + this.fileTB.TabIndex = 114; + this.toolTip1.SetToolTip(this.fileTB, "Required"); + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Location = new System.Drawing.Point(72, 247); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(30, 13); + this.label21.TabIndex = 115; + this.label21.Text = "File*"; + // + // groupBox4 + // + this.groupBox4.BackColor = System.Drawing.SystemColors.ButtonFace; + this.groupBox4.Controls.Add(this.dataSourceDriverCB); + this.groupBox4.Controls.Add(this.label21); + this.groupBox4.Controls.Add(this.fileTB); + this.groupBox4.Controls.Add(this.browseButton); + this.groupBox4.Controls.Add(this.authoringInfoTB); + this.groupBox4.Controls.Add(this.textBox14); + this.groupBox4.Controls.Add(this.label9); + this.groupBox4.Controls.Add(this.label26); + this.groupBox4.Controls.Add(this.publishingOptionsTB); + this.groupBox4.Controls.Add(this.label27); + this.groupBox4.Controls.Add(this.revisionInfoTB); + this.groupBox4.Controls.Add(this.textBox6); + this.groupBox4.Controls.Add(this.label34); + this.groupBox4.Controls.Add(this.driverConfigTB); + this.groupBox4.Controls.Add(this.label35); + this.groupBox4.Controls.Add(this.label36); + this.groupBox4.Controls.Add(this.webserviceTB); + this.groupBox4.Controls.Add(this.label37); + this.groupBox4.Controls.Add(this.layer_IDTB); + this.groupBox4.Controls.Add(this.label38); + this.groupBox4.Controls.Add(this.label39); + this.groupBox4.Controls.Add(this.styleTB); + this.groupBox4.Controls.Add(this.label40); + this.groupBox4.Controls.Add(this.style_IDTB); + this.groupBox4.Controls.Add(this.label41); + this.groupBox4.Controls.Add(this.coverageSpatialTB); + this.groupBox4.Controls.Add(this.label42); + this.groupBox4.Controls.Add(this.label43); + this.groupBox4.Controls.Add(this.driverTB); + this.groupBox4.Controls.Add(this.label44); + this.groupBox4.Controls.Add(this.label45); + this.groupBox4.Controls.Add(this.rightsTB); + this.groupBox4.Controls.Add(this.label46); + this.groupBox4.Controls.Add(this.tagsTB); + this.groupBox4.Controls.Add(this.label47); + this.groupBox4.Controls.Add(this.referencesTB); + this.groupBox4.Controls.Add(this.label48); + this.groupBox4.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox4.Location = new System.Drawing.Point(15, 421); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(530, 278); + this.groupBox4.TabIndex = 122; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Document Information (continued)"; + // + // dataSourceDriverCB + // + this.dataSourceDriverCB.FormattingEnabled = true; + this.dataSourceDriverCB.Location = new System.Drawing.Point(108, 185); + this.dataSourceDriverCB.Name = "dataSourceDriverCB"; + this.dataSourceDriverCB.Size = new System.Drawing.Size(148, 21); + this.dataSourceDriverCB.TabIndex = 26; + this.dataSourceDriverCB.SelectedIndexChanged += new System.EventHandler(this.dataSourceDriverCB_SelectedIndexChanged); + // + // finishUploadButton + // + this.finishUploadButton.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.finishUploadButton.Location = new System.Drawing.Point(403, 705); + this.finishUploadButton.Name = "finishUploadButton"; + this.finishUploadButton.Size = new System.Drawing.Size(142, 46); + this.finishUploadButton.TabIndex = 37; + this.finishUploadButton.Text = "&Finish and Upload"; + this.finishUploadButton.UseVisualStyleBackColor = true; + this.finishUploadButton.Click += new System.EventHandler(this.finishUploadButton_Click); + // + // backButton + // + this.backButton.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.backButton.Location = new System.Drawing.Point(231, 722); + this.backButton.Name = "backButton"; + this.backButton.Size = new System.Drawing.Size(80, 28); + this.backButton.TabIndex = 150; + this.backButton.Text = "Bac&k"; + this.backButton.UseVisualStyleBackColor = true; + this.backButton.Click += new System.EventHandler(this.backButton_Click); + // + // toolTip1 + // + this.toolTip1.AutoPopDelay = 5000; + this.toolTip1.InitialDelay = 100; + this.toolTip1.ReshowDelay = 100; + this.toolTip1.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info; + // + // pBar + // + this.pBar.Location = new System.Drawing.Point(15, 722); + this.pBar.Name = "pBar"; + this.pBar.Size = new System.Drawing.Size(210, 28); + this.pBar.TabIndex = 127; + // + // button1 + // + this.button1.BackColor = System.Drawing.Color.Red; + this.button1.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button1.Location = new System.Drawing.Point(14, 700); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(21, 19); + this.button1.TabIndex = 128; + this.button1.UseVisualStyleBackColor = false; + this.button1.Visible = false; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // uploadForm1_geo + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.ButtonFace; + this.ClientSize = new System.Drawing.Size(560, 763); + this.Controls.Add(this.button1); + this.Controls.Add(this.pBar); + this.Controls.Add(this.backButton); + this.Controls.Add(this.finishUploadButton); + this.Controls.Add(this.groupBox4); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.Cancel_button); + this.Name = "uploadForm1_geo"; + this.Text = "Upload New Content"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.groupBox3.ResumeLayout(false); + this.groupBox3.PerformLayout(); + this.groupBox4.ResumeLayout(false); + this.groupBox4.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TextBox titleTB; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox emailTB; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox nameTB; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Button Cancel_button; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox organizationTB; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox addressTB; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.TextBox bodyTB; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.TextBox nicknameTB; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.TextBox zipcodeTB; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.TextBox phonenumberTB; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.TextBox contribNameTB; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.TextBox citystateTB; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.TextBox countryTB; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.TextBox contribContributionTB; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.Label label23; + private System.Windows.Forms.TextBox contribNicknameTB; + private System.Windows.Forms.Label label24; + private System.Windows.Forms.TextBox contribEmailTB; + private System.Windows.Forms.TextBox contribOrganizationTB; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox contribPhonenumberTB; + private System.Windows.Forms.Label label25; + private System.Windows.Forms.TextBox contribCountryTB; + private System.Windows.Forms.Label label28; + private System.Windows.Forms.TextBox sourceCommentsTB; + private System.Windows.Forms.Label label29; + private System.Windows.Forms.Label label30; + private System.Windows.Forms.TextBox sourceNameTB; + private System.Windows.Forms.Label label31; + private System.Windows.Forms.TextBox sourceSubjectTB; + private System.Windows.Forms.Label label32; + private System.Windows.Forms.TextBox sourceIDTB; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Label label48; + private System.Windows.Forms.TextBox referencesTB; + private System.Windows.Forms.Label label47; + private System.Windows.Forms.TextBox tagsTB; + private System.Windows.Forms.Label label46; + private System.Windows.Forms.TextBox rightsTB; + private System.Windows.Forms.Label label45; + private System.Windows.Forms.Label label44; + private System.Windows.Forms.TextBox driverTB; + private System.Windows.Forms.Label label43; + private System.Windows.Forms.Label label42; + private System.Windows.Forms.TextBox coverageSpatialTB; + private System.Windows.Forms.Label label41; + private System.Windows.Forms.TextBox style_IDTB; + private System.Windows.Forms.Label label40; + private System.Windows.Forms.TextBox styleTB; + private System.Windows.Forms.Label label39; + private System.Windows.Forms.Label label38; + private System.Windows.Forms.TextBox layer_IDTB; + private System.Windows.Forms.Label label37; + private System.Windows.Forms.TextBox webserviceTB; + private System.Windows.Forms.Label label36; + private System.Windows.Forms.Label label35; + private System.Windows.Forms.TextBox driverConfigTB; + private System.Windows.Forms.Label label34; + private System.Windows.Forms.TextBox textBox6; + private System.Windows.Forms.Label revisionInfoTB; + private System.Windows.Forms.Label label27; + private System.Windows.Forms.TextBox publishingOptionsTB; + private System.Windows.Forms.Label label26; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.TextBox textBox14; + private System.Windows.Forms.Label authoringInfoTB; + private System.Windows.Forms.Button browseButton; + private System.Windows.Forms.TextBox fileTB; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.Button finishUploadButton; + private System.Windows.Forms.ComboBox dataSourceDriverCB; + private System.Windows.Forms.Button backButton; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.ProgressBar pBar; + private System.Windows.Forms.Button button1; + + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_geo.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_geo.cs new file mode 100644 index 00000000..9ab5bd45 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_geo.cs @@ -0,0 +1,225 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.IO; + + +namespace HydroDesktop.Plugins.HydroShare +{ + public partial class uploadForm1_geo : Form + { + public string title, bodyEditSummary, name, nickname, email, organization, address, cityState, zipCode, country, phoneNumber; + public string cName, cNickname, cContribution, cEmail, cOrganization, cCountry, cPhoneNumber; + public string sSubject, sName, sComments, sID; + public string references, rights, coverageSpatial, tags, dataSourceDriver, driver, style, webservice, style_ID, layer_ID, driverConfig, + revisionInfo, authoringInfo, publishingOptions, file; + + + public uploadForm1_geo() + { + + InitializeComponent(); + string[] items = new string[]{"N/A","SHAPEFILE","KMZ","GEOTIFF","POSTGIS","OGR"}; + dataSourceDriverCB.DataSource = items; + dataSourceDriverCB.SelectedIndex = 0; + + pBar.Visible = true; + pBar.Minimum = 1; + pBar.Maximum = items.Length; + pBar.Value = 1; + pBar.Step = 1; + } + + + //click the CANCEL button + private void button2_Click(object sender, EventArgs e) + { + if (MessageBox.Show("This will delete all information in this form. Are you sure you want to proceed?", "Caution", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) + { + this.Close(); + } + else + { + //do nothing + } + } + + private void makeVisible() + { + this.Visible = true; + } + + private void pictureBox1_Click(object sender, EventArgs e) + { + + } + + private void browseButton_Click(object sender, EventArgs e) + { + /* + OpenFileDialog fDialog = new OpenFileDialog(); + fDialog.Title = "Open File"; + fDialog.Filter = "XML Files|*.xml|UML Files|*.uml"; + fDialog.InitialDirectory = @"C:\"; + if (fDialog.ShowDialog() == DialogResult.OK) + MessageBox.Show(fDialog.FileName.ToString()); + */ + + FolderBrowserDialog folder = new FolderBrowserDialog(); + if (folder.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + string folderPath = folder.SelectedPath; + file = fileTB.Text = folderPath; + } + + } + + private void finishUploadButton_Click(object sender, EventArgs e) + { + //System.IO.File.WriteAllLines(@"C:\Users\Temp\Desktop\WriteLines.txt", prevInputs); + /* + string url = "http://dev.hyrdroshare.org"; + string file = fileTB.Text; + WebClient client = new WebClient(); + client.UploadFile(url, "post", file); + */ + + + title = this.titleTB.Text; + pBar.PerformStep(); + name = this.nameTB.Text; + pBar.PerformStep(); + email = this.emailTB.Text; + pBar.PerformStep(); + sSubject = this.sourceSubjectTB.Text; + pBar.PerformStep(); + rights = this.rightsTB.Text; + pBar.PerformStep(); + coverageSpatial = this.coverageSpatialTB.Text; + pBar.PerformStep(); + file = this.fileTB.Text; + pBar.PerformStep(); + + + //if either title OR email OR name OR subject text boxes are blank + //then the user is informed that they must fix this error + if ((title.Length == 0) || (email.Length == 0) || (name.Length == 0) || (sSubject.Length == 0) || (rights.Length == 0) || (coverageSpatial.Length == 0) || (file.Length == 0)) + { + MessageBox.Show("Please fill in all required fields (marked with an * ).", "Error", MessageBoxButtons.OK); + } + + else + { + //store text boxes in local variables + //these variables will then be permanently stored in an array + bodyEditSummary = this.bodyTB.Text; + pBar.PerformStep(); + nickname = this.nicknameTB.Text; + pBar.PerformStep(); + organization = this.organizationTB.Text; + pBar.PerformStep(); + address = this.addressTB.Text; + pBar.PerformStep(); + cityState = this.citystateTB.Text; + pBar.PerformStep(); + zipCode = this.zipcodeTB.Text; + pBar.PerformStep(); + country = this.countryTB.Text; + pBar.PerformStep(); + phoneNumber = this.phonenumberTB.Text; + pBar.PerformStep(); + cName = this.contribNameTB.Text; + pBar.PerformStep(); + cNickname = this.contribNicknameTB.Text; + pBar.PerformStep(); + cContribution = this.contribContributionTB.Text; + pBar.PerformStep(); + cEmail = this.contribEmailTB.Text; + pBar.PerformStep(); + cOrganization = this.contribOrganizationTB.Text; + pBar.PerformStep(); + cCountry = this.contribCountryTB.Text; + pBar.PerformStep(); + cPhoneNumber = this.contribPhonenumberTB.Text; + pBar.PerformStep(); + sName = this.sourceNameTB.Text; + pBar.PerformStep(); + sComments = this.sourceCommentsTB.Text; + pBar.PerformStep(); + sID = this.sourceIDTB.Text; + pBar.PerformStep(); + references = this.referencesTB.Text; + pBar.PerformStep(); + tags = this.tagsTB.Text; + pBar.PerformStep(); + dataSourceDriver = this.dataSourceDriverCB.Text; + pBar.PerformStep(); + driver = this.driverTB.Text; + pBar.PerformStep(); + style = this.styleTB.Text; + pBar.PerformStep(); + webservice = this.webserviceTB.Text; + pBar.PerformStep(); + style_ID = this.style_IDTB.Text; + pBar.PerformStep(); + layer_ID = this.layer_IDTB.Text; + pBar.PerformStep(); + driverConfig = this.driverConfigTB.Text; + pBar.PerformStep(); + revisionInfo = this.revisionInfoTB.Text; + pBar.PerformStep(); + authoringInfo = this.authoringInfoTB.Text; + pBar.PerformStep(); + publishingOptions = this.publishingOptionsTB.Text; + pBar.PerformStep(); + + //store all of the variables in an array + //this array will be passed down to uploadForm2 + //this way we can close this form, but retain its contents + string[] inputs = {title, bodyEditSummary, name, nickname, email, organization, address, cityState, zipCode, country, + phoneNumber, cName, cNickname, cContribution, cEmail, cOrganization, cCountry, cPhoneNumber, + sSubject, sName, sComments, sID, references, tags, dataSourceDriver, driver, style, webservice, + style_ID, layer_ID, driverConfig, revisionInfo, authoringInfo, publishingOptions}; + + //close this form + this.Visible = false; + + printForm print = new printForm(this); + print.StartPosition = FormStartPosition.CenterScreen; + print.Visible = true; + } + } + + private void dataSourceDriverCB_SelectedIndexChanged(object sender, EventArgs e) + { + + } + + private void backButton_Click(object sender, EventArgs e) + { + if (MessageBox.Show("This will delete all information in this form. Are you sure you want to proceed?", "Caution", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) + { + this.Close(); + chooseUploadType uploadType = new chooseUploadType(); + uploadType.StartPosition = FormStartPosition.CenterScreen; + uploadType.Visible = true; + } + else + { + //do nothing + } + } + + private void button1_Click(object sender, EventArgs e) + { + gotoWeb browser = new gotoWeb(); + browser.StartPosition = FormStartPosition.CenterScreen; + browser.Visible = true; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_geo.resx b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_geo.resx new file mode 100644 index 00000000..c013ea3d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_geo.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 16, 3 + + + 28 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_other.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_other.Designer.cs new file mode 100644 index 00000000..6e439768 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_other.Designer.cs @@ -0,0 +1,1143 @@ +namespace HydroDesktop.Plugins.HydroShare +{ + partial class uploadForm1_other + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.titleTB = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.emailTB = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.nameTB = new System.Windows.Forms.TextBox(); + this.label8 = new System.Windows.Forms.Label(); + this.Cancel_button = new System.Windows.Forms.Button(); + this.label6 = new System.Windows.Forms.Label(); + this.organizationTB = new System.Windows.Forms.TextBox(); + this.label7 = new System.Windows.Forms.Label(); + this.addressTB = new System.Windows.Forms.TextBox(); + this.label11 = new System.Windows.Forms.Label(); + this.bodyTB = new System.Windows.Forms.TextBox(); + this.label12 = new System.Windows.Forms.Label(); + this.nicknameTB = new System.Windows.Forms.TextBox(); + this.label13 = new System.Windows.Forms.Label(); + this.zipcodeTB = new System.Windows.Forms.TextBox(); + this.label14 = new System.Windows.Forms.Label(); + this.phonenumberTB = new System.Windows.Forms.TextBox(); + this.label15 = new System.Windows.Forms.Label(); + this.contribNameTB = new System.Windows.Forms.TextBox(); + this.label16 = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.citystateTB = new System.Windows.Forms.TextBox(); + this.label18 = new System.Windows.Forms.Label(); + this.countryTB = new System.Windows.Forms.TextBox(); + this.label19 = new System.Windows.Forms.Label(); + this.contribContributionTB = new System.Windows.Forms.TextBox(); + this.label20 = new System.Windows.Forms.Label(); + this.label22 = new System.Windows.Forms.Label(); + this.label23 = new System.Windows.Forms.Label(); + this.contribNicknameTB = new System.Windows.Forms.TextBox(); + this.label24 = new System.Windows.Forms.Label(); + this.contribEmailTB = new System.Windows.Forms.TextBox(); + this.contribOrganizationTB = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.contribPhonenumberTB = new System.Windows.Forms.TextBox(); + this.label25 = new System.Windows.Forms.Label(); + this.contribCountryTB = new System.Windows.Forms.TextBox(); + this.label28 = new System.Windows.Forms.Label(); + this.sourceCommentsTB = new System.Windows.Forms.TextBox(); + this.label29 = new System.Windows.Forms.Label(); + this.label30 = new System.Windows.Forms.Label(); + this.sourceNameTB = new System.Windows.Forms.TextBox(); + this.label31 = new System.Windows.Forms.Label(); + this.sourceSubjectTB = new System.Windows.Forms.TextBox(); + this.label32 = new System.Windows.Forms.Label(); + this.sourceIDTB = new System.Windows.Forms.TextBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.label48 = new System.Windows.Forms.Label(); + this.referencesTB = new System.Windows.Forms.TextBox(); + this.label47 = new System.Windows.Forms.Label(); + this.tagsTB = new System.Windows.Forms.TextBox(); + this.label46 = new System.Windows.Forms.Label(); + this.rightsTB = new System.Windows.Forms.TextBox(); + this.label45 = new System.Windows.Forms.Label(); + this.label44 = new System.Windows.Forms.Label(); + this.driverTB = new System.Windows.Forms.TextBox(); + this.label43 = new System.Windows.Forms.Label(); + this.label42 = new System.Windows.Forms.Label(); + this.coverageSpatialTB = new System.Windows.Forms.TextBox(); + this.label41 = new System.Windows.Forms.Label(); + this.style_IDTB = new System.Windows.Forms.TextBox(); + this.label40 = new System.Windows.Forms.Label(); + this.styleTB = new System.Windows.Forms.TextBox(); + this.label39 = new System.Windows.Forms.Label(); + this.label38 = new System.Windows.Forms.Label(); + this.layer_IDTB = new System.Windows.Forms.TextBox(); + this.label37 = new System.Windows.Forms.Label(); + this.webserviceTB = new System.Windows.Forms.TextBox(); + this.label36 = new System.Windows.Forms.Label(); + this.label35 = new System.Windows.Forms.Label(); + this.driverConfigTB = new System.Windows.Forms.TextBox(); + this.label34 = new System.Windows.Forms.Label(); + this.textBox6 = new System.Windows.Forms.TextBox(); + this.revisionInfoTB = new System.Windows.Forms.Label(); + this.label27 = new System.Windows.Forms.Label(); + this.publishingOptionsTB = new System.Windows.Forms.TextBox(); + this.label26 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.textBox14 = new System.Windows.Forms.TextBox(); + this.authoringInfoTB = new System.Windows.Forms.Label(); + this.browseButton = new System.Windows.Forms.Button(); + this.fileTB = new System.Windows.Forms.TextBox(); + this.label21 = new System.Windows.Forms.Label(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.dataSourceDriverCB = new System.Windows.Forms.ComboBox(); + this.finishUploadButton = new System.Windows.Forms.Button(); + this.backButton = new System.Windows.Forms.Button(); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.pBar = new System.Windows.Forms.ProgressBar(); + this.button1 = new System.Windows.Forms.Button(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.groupBox4.SuspendLayout(); + this.SuspendLayout(); + // + // titleTB + // + this.titleTB.Location = new System.Drawing.Point(92, 27); + this.titleTB.Name = "titleTB"; + this.titleTB.Size = new System.Drawing.Size(149, 22); + this.titleTB.TabIndex = 0; + this.toolTip1.SetToolTip(this.titleTB, "Required"); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(55, 31); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(33, 13); + this.label1.TabIndex = 1; + this.label1.Text = "Title*"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(50, 214); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(39, 13); + this.label2.TabIndex = 3; + this.label2.Text = "Email*"; + // + // emailTB + // + this.emailTB.Location = new System.Drawing.Point(92, 211); + this.emailTB.Name = "emailTB"; + this.emailTB.Size = new System.Drawing.Size(149, 22); + this.emailTB.TabIndex = 4; + this.toolTip1.SetToolTip(this.emailTB, "Required"); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(47, 162); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(41, 13); + this.label3.TabIndex = 5; + this.label3.Text = "Name*"; + // + // nameTB + // + this.nameTB.Location = new System.Drawing.Point(92, 159); + this.nameTB.Name = "nameTB"; + this.nameTB.Size = new System.Drawing.Size(149, 22); + this.nameTB.TabIndex = 2; + this.toolTip1.SetToolTip(this.nameTB, "Required"); + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(48, 177); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(0, 13); + this.label8.TabIndex = 15; + // + // Cancel_button + // + this.Cancel_button.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Cancel_button.Location = new System.Drawing.Point(317, 722); + this.Cancel_button.Name = "Cancel_button"; + this.Cancel_button.Size = new System.Drawing.Size(80, 28); + this.Cancel_button.TabIndex = 151; + this.Cancel_button.Text = "&Cancel"; + this.Cancel_button.UseVisualStyleBackColor = true; + this.Cancel_button.Click += new System.EventHandler(this.Cancel_button_Click); + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(11, 240); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(75, 13); + this.label6.TabIndex = 24; + this.label6.Text = "Organization"; + // + // organizationTB + // + this.organizationTB.Location = new System.Drawing.Point(92, 237); + this.organizationTB.Name = "organizationTB"; + this.organizationTB.Size = new System.Drawing.Size(149, 22); + this.organizationTB.TabIndex = 5; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(5, 266); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(81, 13); + this.label7.TabIndex = 22; + this.label7.Text = "Street Address"; + // + // addressTB + // + this.addressTB.Location = new System.Drawing.Point(92, 263); + this.addressTB.Name = "addressTB"; + this.addressTB.Size = new System.Drawing.Size(149, 22); + this.addressTB.TabIndex = 6; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(5, 56); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(87, 13); + this.label11.TabIndex = 28; + this.label11.Text = "Body (summary)"; + // + // bodyTB + // + this.bodyTB.Location = new System.Drawing.Point(92, 53); + this.bodyTB.Multiline = true; + this.bodyTB.Name = "bodyTB"; + this.bodyTB.Size = new System.Drawing.Size(149, 100); + this.bodyTB.TabIndex = 1; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(31, 187); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(57, 13); + this.label12.TabIndex = 30; + this.label12.Text = "Nickname"; + // + // nicknameTB + // + this.nicknameTB.Location = new System.Drawing.Point(92, 185); + this.nicknameTB.Name = "nicknameTB"; + this.nicknameTB.Size = new System.Drawing.Size(149, 22); + this.nicknameTB.TabIndex = 3; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(40, 320); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(48, 13); + this.label13.TabIndex = 42; + this.label13.Text = "Zipcode"; + // + // zipcodeTB + // + this.zipcodeTB.Location = new System.Drawing.Point(92, 317); + this.zipcodeTB.Name = "zipcodeTB"; + this.zipcodeTB.Size = new System.Drawing.Size(149, 22); + this.zipcodeTB.TabIndex = 8; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point(2, 372); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(84, 13); + this.label14.TabIndex = 40; + this.label14.Text = "Phone Number"; + // + // phonenumberTB + // + this.phonenumberTB.Location = new System.Drawing.Point(92, 369); + this.phonenumberTB.Name = "phonenumberTB"; + this.phonenumberTB.Size = new System.Drawing.Size(149, 22); + this.phonenumberTB.TabIndex = 10; + this.toolTip1.SetToolTip(this.phonenumberTB, "123-456-7890"); + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point(45, 30); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(36, 13); + this.label15.TabIndex = 38; + this.label15.Text = "Name"; + // + // contribNameTB + // + this.contribNameTB.Location = new System.Drawing.Point(86, 27); + this.contribNameTB.Name = "contribNameTB"; + this.contribNameTB.Size = new System.Drawing.Size(149, 22); + this.contribNameTB.TabIndex = 11; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(48, 309); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(0, 13); + this.label16.TabIndex = 36; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(31, 294); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(58, 13); + this.label17.TabIndex = 35; + this.label17.Text = "City, State"; + // + // citystateTB + // + this.citystateTB.Location = new System.Drawing.Point(92, 291); + this.citystateTB.Name = "citystateTB"; + this.citystateTB.Size = new System.Drawing.Size(149, 22); + this.citystateTB.TabIndex = 7; + // + // label18 + // + this.label18.AutoSize = true; + this.label18.Location = new System.Drawing.Point(38, 345); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(48, 13); + this.label18.TabIndex = 33; + this.label18.Text = "Country"; + // + // countryTB + // + this.countryTB.Location = new System.Drawing.Point(92, 343); + this.countryTB.Name = "countryTB"; + this.countryTB.Size = new System.Drawing.Size(149, 22); + this.countryTB.TabIndex = 9; + // + // label19 + // + this.label19.AutoSize = true; + this.label19.Location = new System.Drawing.Point(9, 82); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(74, 13); + this.label19.TabIndex = 53; + this.label19.Text = "Contribution"; + // + // contribContributionTB + // + this.contribContributionTB.Location = new System.Drawing.Point(86, 79); + this.contribContributionTB.Name = "contribContributionTB"; + this.contribContributionTB.Size = new System.Drawing.Size(149, 22); + this.contribContributionTB.TabIndex = 13; + // + // label20 + // + this.label20.AutoSize = true; + this.label20.Location = new System.Drawing.Point(5, 134); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(75, 13); + this.label20.TabIndex = 51; + this.label20.Text = "Organization"; + // + // label22 + // + this.label22.AutoSize = true; + this.label22.Location = new System.Drawing.Point(19, 71); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(0, 13); + this.label22.TabIndex = 47; + // + // label23 + // + this.label23.AutoSize = true; + this.label23.Location = new System.Drawing.Point(23, 56); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(57, 13); + this.label23.TabIndex = 46; + this.label23.Text = "Nickname"; + // + // contribNicknameTB + // + this.contribNicknameTB.Location = new System.Drawing.Point(86, 53); + this.contribNicknameTB.Name = "contribNicknameTB"; + this.contribNicknameTB.Size = new System.Drawing.Size(149, 22); + this.contribNicknameTB.TabIndex = 12; + // + // label24 + // + this.label24.AutoSize = true; + this.label24.Location = new System.Drawing.Point(48, 108); + this.label24.Name = "label24"; + this.label24.Size = new System.Drawing.Size(34, 13); + this.label24.TabIndex = 44; + this.label24.Text = "Email"; + // + // contribEmailTB + // + this.contribEmailTB.Location = new System.Drawing.Point(86, 105); + this.contribEmailTB.Name = "contribEmailTB"; + this.contribEmailTB.Size = new System.Drawing.Size(149, 22); + this.contribEmailTB.TabIndex = 14; + // + // contribOrganizationTB + // + this.contribOrganizationTB.Location = new System.Drawing.Point(86, 131); + this.contribOrganizationTB.Name = "contribOrganizationTB"; + this.contribOrganizationTB.Size = new System.Drawing.Size(149, 22); + this.contribOrganizationTB.TabIndex = 15; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(1, 187); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(84, 13); + this.label4.TabIndex = 60; + this.label4.Text = "Phone Number"; + // + // contribPhonenumberTB + // + this.contribPhonenumberTB.Location = new System.Drawing.Point(86, 183); + this.contribPhonenumberTB.Name = "contribPhonenumberTB"; + this.contribPhonenumberTB.Size = new System.Drawing.Size(149, 22); + this.contribPhonenumberTB.TabIndex = 17; + this.toolTip1.SetToolTip(this.contribPhonenumberTB, "123-456-7890"); + // + // label25 + // + this.label25.AutoSize = true; + this.label25.Location = new System.Drawing.Point(32, 160); + this.label25.Name = "label25"; + this.label25.Size = new System.Drawing.Size(48, 13); + this.label25.TabIndex = 58; + this.label25.Text = "Country"; + // + // contribCountryTB + // + this.contribCountryTB.Location = new System.Drawing.Point(86, 157); + this.contribCountryTB.Name = "contribCountryTB"; + this.contribCountryTB.Size = new System.Drawing.Size(149, 22); + this.contribCountryTB.TabIndex = 16; + // + // label28 + // + this.label28.AutoSize = true; + this.label28.Location = new System.Drawing.Point(19, 82); + this.label28.Name = "label28"; + this.label28.Size = new System.Drawing.Size(61, 13); + this.label28.TabIndex = 69; + this.label28.Text = "Comments"; + // + // sourceCommentsTB + // + this.sourceCommentsTB.Location = new System.Drawing.Point(86, 77); + this.sourceCommentsTB.Name = "sourceCommentsTB"; + this.sourceCommentsTB.Size = new System.Drawing.Size(149, 22); + this.sourceCommentsTB.TabIndex = 20; + // + // label29 + // + this.label29.AutoSize = true; + this.label29.Location = new System.Drawing.Point(19, 69); + this.label29.Name = "label29"; + this.label29.Size = new System.Drawing.Size(0, 13); + this.label29.TabIndex = 67; + // + // label30 + // + this.label30.AutoSize = true; + this.label30.Location = new System.Drawing.Point(45, 54); + this.label30.Name = "label30"; + this.label30.Size = new System.Drawing.Size(36, 13); + this.label30.TabIndex = 66; + this.label30.Text = "Name"; + // + // sourceNameTB + // + this.sourceNameTB.Location = new System.Drawing.Point(86, 51); + this.sourceNameTB.Name = "sourceNameTB"; + this.sourceNameTB.Size = new System.Drawing.Size(149, 22); + this.sourceNameTB.TabIndex = 19; + // + // label31 + // + this.label31.AutoSize = true; + this.label31.Location = new System.Drawing.Point(33, 28); + this.label31.Name = "label31"; + this.label31.Size = new System.Drawing.Size(50, 13); + this.label31.TabIndex = 64; + this.label31.Text = "Subject*"; + // + // sourceSubjectTB + // + this.sourceSubjectTB.Location = new System.Drawing.Point(86, 25); + this.sourceSubjectTB.Name = "sourceSubjectTB"; + this.sourceSubjectTB.Size = new System.Drawing.Size(149, 22); + this.sourceSubjectTB.TabIndex = 18; + this.toolTip1.SetToolTip(this.sourceSubjectTB, "Required"); + // + // label32 + // + this.label32.AutoSize = true; + this.label32.Location = new System.Drawing.Point(62, 110); + this.label32.Name = "label32"; + this.label32.Size = new System.Drawing.Size(18, 13); + this.label32.TabIndex = 71; + this.label32.Text = "ID"; + // + // sourceIDTB + // + this.sourceIDTB.Location = new System.Drawing.Point(86, 107); + this.sourceIDTB.Name = "sourceIDTB"; + this.sourceIDTB.Size = new System.Drawing.Size(149, 22); + this.sourceIDTB.TabIndex = 21; + // + // groupBox1 + // + this.groupBox1.BackColor = System.Drawing.SystemColors.ButtonFace; + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Controls.Add(this.contribPhonenumberTB); + this.groupBox1.Controls.Add(this.label25); + this.groupBox1.Controls.Add(this.contribCountryTB); + this.groupBox1.Controls.Add(this.contribOrganizationTB); + this.groupBox1.Controls.Add(this.label19); + this.groupBox1.Controls.Add(this.contribContributionTB); + this.groupBox1.Controls.Add(this.label20); + this.groupBox1.Controls.Add(this.label22); + this.groupBox1.Controls.Add(this.label23); + this.groupBox1.Controls.Add(this.contribNicknameTB); + this.groupBox1.Controls.Add(this.label24); + this.groupBox1.Controls.Add(this.contribEmailTB); + this.groupBox1.Controls.Add(this.label15); + this.groupBox1.Controls.Add(this.contribNameTB); + this.groupBox1.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox1.Location = new System.Drawing.Point(304, 12); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(241, 213); + this.groupBox1.TabIndex = 72; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Contributor Information"; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.label13); + this.groupBox2.Controls.Add(this.zipcodeTB); + this.groupBox2.Controls.Add(this.label14); + this.groupBox2.Controls.Add(this.phonenumberTB); + this.groupBox2.Controls.Add(this.label16); + this.groupBox2.Controls.Add(this.label17); + this.groupBox2.Controls.Add(this.citystateTB); + this.groupBox2.Controls.Add(this.label18); + this.groupBox2.Controls.Add(this.countryTB); + this.groupBox2.Controls.Add(this.label12); + this.groupBox2.Controls.Add(this.nicknameTB); + this.groupBox2.Controls.Add(this.label11); + this.groupBox2.Controls.Add(this.bodyTB); + this.groupBox2.Controls.Add(this.label6); + this.groupBox2.Controls.Add(this.organizationTB); + this.groupBox2.Controls.Add(this.label7); + this.groupBox2.Controls.Add(this.addressTB); + this.groupBox2.Controls.Add(this.label8); + this.groupBox2.Controls.Add(this.label3); + this.groupBox2.Controls.Add(this.nameTB); + this.groupBox2.Controls.Add(this.label2); + this.groupBox2.Controls.Add(this.emailTB); + this.groupBox2.Controls.Add(this.label1); + this.groupBox2.Controls.Add(this.titleTB); + this.groupBox2.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox2.Location = new System.Drawing.Point(15, 10); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(246, 395); + this.groupBox2.TabIndex = 73; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Document Information"; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.label32); + this.groupBox3.Controls.Add(this.sourceIDTB); + this.groupBox3.Controls.Add(this.label28); + this.groupBox3.Controls.Add(this.sourceCommentsTB); + this.groupBox3.Controls.Add(this.label29); + this.groupBox3.Controls.Add(this.label30); + this.groupBox3.Controls.Add(this.sourceNameTB); + this.groupBox3.Controls.Add(this.label31); + this.groupBox3.Controls.Add(this.sourceSubjectTB); + this.groupBox3.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox3.Location = new System.Drawing.Point(304, 247); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(241, 139); + this.groupBox3.TabIndex = 74; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Source Information"; + // + // label48 + // + this.label48.AutoSize = true; + this.label48.Location = new System.Drawing.Point(385, 104); + this.label48.Name = "label48"; + this.label48.Size = new System.Drawing.Size(0, 13); + this.label48.TabIndex = 75; + // + // referencesTB + // + this.referencesTB.Location = new System.Drawing.Point(108, 24); + this.referencesTB.Name = "referencesTB"; + this.referencesTB.Size = new System.Drawing.Size(149, 22); + this.referencesTB.TabIndex = 22; + // + // label47 + // + this.label47.AutoSize = true; + this.label47.Location = new System.Drawing.Point(40, 29); + this.label47.Name = "label47"; + this.label47.Size = new System.Drawing.Size(63, 13); + this.label47.TabIndex = 78; + this.label47.Text = "References"; + // + // tagsTB + // + this.tagsTB.Location = new System.Drawing.Point(108, 102); + this.tagsTB.Multiline = true; + this.tagsTB.Name = "tagsTB"; + this.tagsTB.Size = new System.Drawing.Size(149, 71); + this.tagsTB.TabIndex = 25; + // + // label46 + // + this.label46.AutoSize = true; + this.label46.Location = new System.Drawing.Point(71, 104); + this.label46.Name = "label46"; + this.label46.Size = new System.Drawing.Size(30, 13); + this.label46.TabIndex = 80; + this.label46.Text = "Tags"; + this.label46.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // rightsTB + // + this.rightsTB.Location = new System.Drawing.Point(108, 50); + this.rightsTB.Name = "rightsTB"; + this.rightsTB.Size = new System.Drawing.Size(149, 22); + this.rightsTB.TabIndex = 23; + this.toolTip1.SetToolTip(this.rightsTB, "Required"); + // + // label45 + // + this.label45.AutoSize = true; + this.label45.Location = new System.Drawing.Point(61, 53); + this.label45.Name = "label45"; + this.label45.Size = new System.Drawing.Size(45, 13); + this.label45.TabIndex = 82; + this.label45.Text = "Rights*"; + // + // label44 + // + this.label44.AutoSize = true; + this.label44.Location = new System.Drawing.Point(35, 68); + this.label44.Name = "label44"; + this.label44.Size = new System.Drawing.Size(0, 13); + this.label44.TabIndex = 83; + // + // driverTB + // + this.driverTB.Location = new System.Drawing.Point(108, 212); + this.driverTB.Name = "driverTB"; + this.driverTB.Size = new System.Drawing.Size(149, 22); + this.driverTB.TabIndex = 27; + // + // label43 + // + this.label43.AutoSize = true; + this.label43.Location = new System.Drawing.Point(65, 215); + this.label43.Name = "label43"; + this.label43.Size = new System.Drawing.Size(37, 13); + this.label43.TabIndex = 85; + this.label43.Text = "Driver"; + // + // label42 + // + this.label42.AutoSize = true; + this.label42.Location = new System.Drawing.Point(1, 189); + this.label42.Name = "label42"; + this.label42.Size = new System.Drawing.Size(102, 13); + this.label42.TabIndex = 87; + this.label42.Text = "Data Source Driver"; + // + // coverageSpatialTB + // + this.coverageSpatialTB.Location = new System.Drawing.Point(108, 76); + this.coverageSpatialTB.Name = "coverageSpatialTB"; + this.coverageSpatialTB.Size = new System.Drawing.Size(149, 22); + this.coverageSpatialTB.TabIndex = 24; + this.toolTip1.SetToolTip(this.coverageSpatialTB, "Required"); + // + // label41 + // + this.label41.AutoSize = true; + this.label41.Location = new System.Drawing.Point(4, 81); + this.label41.Name = "label41"; + this.label41.Size = new System.Drawing.Size(98, 13); + this.label41.TabIndex = 91; + this.label41.Text = "Coverage Spatial*"; + // + // style_IDTB + // + this.style_IDTB.Location = new System.Drawing.Point(377, 78); + this.style_IDTB.Name = "style_IDTB"; + this.style_IDTB.Size = new System.Drawing.Size(149, 22); + this.style_IDTB.TabIndex = 30; + // + // label40 + // + this.label40.AutoSize = true; + this.label40.Location = new System.Drawing.Point(324, 81); + this.label40.Name = "label40"; + this.label40.Size = new System.Drawing.Size(47, 13); + this.label40.TabIndex = 93; + this.label40.Text = "Style_ID"; + // + // styleTB + // + this.styleTB.Location = new System.Drawing.Point(377, 26); + this.styleTB.Name = "styleTB"; + this.styleTB.PasswordChar = '*'; + this.styleTB.Size = new System.Drawing.Size(149, 22); + this.styleTB.TabIndex = 28; + // + // label39 + // + this.label39.AutoSize = true; + this.label39.Location = new System.Drawing.Point(341, 29); + this.label39.Name = "label39"; + this.label39.Size = new System.Drawing.Size(31, 13); + this.label39.TabIndex = 95; + this.label39.Text = "Style"; + // + // label38 + // + this.label38.AutoSize = true; + this.label38.Location = new System.Drawing.Point(304, 44); + this.label38.Name = "label38"; + this.label38.Size = new System.Drawing.Size(0, 13); + this.label38.TabIndex = 96; + // + // layer_IDTB + // + this.layer_IDTB.Location = new System.Drawing.Point(377, 104); + this.layer_IDTB.Name = "layer_IDTB"; + this.layer_IDTB.Size = new System.Drawing.Size(149, 22); + this.layer_IDTB.TabIndex = 31; + // + // label37 + // + this.label37.AutoSize = true; + this.label37.Location = new System.Drawing.Point(321, 107); + this.label37.Name = "label37"; + this.label37.Size = new System.Drawing.Size(49, 13); + this.label37.TabIndex = 98; + this.label37.Text = "Layer_ID"; + // + // webserviceTB + // + this.webserviceTB.Location = new System.Drawing.Point(377, 52); + this.webserviceTB.Name = "webserviceTB"; + this.webserviceTB.Size = new System.Drawing.Size(149, 22); + this.webserviceTB.TabIndex = 29; + // + // label36 + // + this.label36.AutoSize = true; + this.label36.Location = new System.Drawing.Point(307, 55); + this.label36.Name = "label36"; + this.label36.Size = new System.Drawing.Size(65, 13); + this.label36.TabIndex = 100; + this.label36.Text = "Webservice"; + // + // label35 + // + this.label35.AutoSize = true; + this.label35.Location = new System.Drawing.Point(385, 156); + this.label35.Name = "label35"; + this.label35.Size = new System.Drawing.Size(0, 13); + this.label35.TabIndex = 102; + // + // driverConfigTB + // + this.driverConfigTB.Location = new System.Drawing.Point(377, 130); + this.driverConfigTB.Name = "driverConfigTB"; + this.driverConfigTB.Size = new System.Drawing.Size(149, 22); + this.driverConfigTB.TabIndex = 32; + // + // label34 + // + this.label34.AutoSize = true; + this.label34.Location = new System.Drawing.Point(296, 133); + this.label34.Name = "label34"; + this.label34.Size = new System.Drawing.Size(75, 13); + this.label34.TabIndex = 104; + this.label34.Text = "Driver Config"; + // + // textBox6 + // + this.textBox6.Location = new System.Drawing.Point(377, 156); + this.textBox6.Name = "textBox6"; + this.textBox6.Size = new System.Drawing.Size(149, 22); + this.textBox6.TabIndex = 33; + // + // revisionInfoTB + // + this.revisionInfoTB.AutoSize = true; + this.revisionInfoTB.Location = new System.Drawing.Point(297, 159); + this.revisionInfoTB.Name = "revisionInfoTB"; + this.revisionInfoTB.Size = new System.Drawing.Size(74, 13); + this.revisionInfoTB.TabIndex = 106; + this.revisionInfoTB.Text = "Revision Info"; + // + // label27 + // + this.label27.AutoSize = true; + this.label27.Location = new System.Drawing.Point(324, 220); + this.label27.Name = "label27"; + this.label27.Size = new System.Drawing.Size(0, 13); + this.label27.TabIndex = 107; + // + // publishingOptionsTB + // + this.publishingOptionsTB.Location = new System.Drawing.Point(377, 213); + this.publishingOptionsTB.Name = "publishingOptionsTB"; + this.publishingOptionsTB.Size = new System.Drawing.Size(149, 22); + this.publishingOptionsTB.TabIndex = 35; + // + // label26 + // + this.label26.AutoSize = true; + this.label26.Location = new System.Drawing.Point(264, 216); + this.label26.Name = "label26"; + this.label26.Size = new System.Drawing.Size(107, 13); + this.label26.TabIndex = 109; + this.label26.Text = "Publishing Options"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(385, 186); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(0, 13); + this.label9.TabIndex = 110; + // + // textBox14 + // + this.textBox14.Location = new System.Drawing.Point(377, 186); + this.textBox14.Name = "textBox14"; + this.textBox14.Size = new System.Drawing.Size(149, 22); + this.textBox14.TabIndex = 34; + // + // authoringInfoTB + // + this.authoringInfoTB.AutoSize = true; + this.authoringInfoTB.Location = new System.Drawing.Point(287, 189); + this.authoringInfoTB.Name = "authoringInfoTB"; + this.authoringInfoTB.Size = new System.Drawing.Size(84, 13); + this.authoringInfoTB.TabIndex = 112; + this.authoringInfoTB.Text = "Authoring Info"; + // + // browseButton + // + this.browseButton.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.browseButton.Location = new System.Drawing.Point(446, 241); + this.browseButton.Name = "browseButton"; + this.browseButton.Size = new System.Drawing.Size(80, 28); + this.browseButton.TabIndex = 36; + this.browseButton.Text = "&Browse"; + this.browseButton.UseVisualStyleBackColor = true; + this.browseButton.Click += new System.EventHandler(this.browseButton_Click_1); + // + // fileTB + // + this.fileTB.Location = new System.Drawing.Point(108, 244); + this.fileTB.Name = "fileTB"; + this.fileTB.Size = new System.Drawing.Size(332, 22); + this.fileTB.TabIndex = 114; + this.toolTip1.SetToolTip(this.fileTB, "Required"); + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Location = new System.Drawing.Point(72, 247); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(30, 13); + this.label21.TabIndex = 115; + this.label21.Text = "File*"; + // + // groupBox4 + // + this.groupBox4.BackColor = System.Drawing.SystemColors.ButtonFace; + this.groupBox4.Controls.Add(this.dataSourceDriverCB); + this.groupBox4.Controls.Add(this.label21); + this.groupBox4.Controls.Add(this.fileTB); + this.groupBox4.Controls.Add(this.browseButton); + this.groupBox4.Controls.Add(this.authoringInfoTB); + this.groupBox4.Controls.Add(this.textBox14); + this.groupBox4.Controls.Add(this.label9); + this.groupBox4.Controls.Add(this.label26); + this.groupBox4.Controls.Add(this.publishingOptionsTB); + this.groupBox4.Controls.Add(this.label27); + this.groupBox4.Controls.Add(this.revisionInfoTB); + this.groupBox4.Controls.Add(this.textBox6); + this.groupBox4.Controls.Add(this.label34); + this.groupBox4.Controls.Add(this.driverConfigTB); + this.groupBox4.Controls.Add(this.label35); + this.groupBox4.Controls.Add(this.label36); + this.groupBox4.Controls.Add(this.webserviceTB); + this.groupBox4.Controls.Add(this.label37); + this.groupBox4.Controls.Add(this.layer_IDTB); + this.groupBox4.Controls.Add(this.label38); + this.groupBox4.Controls.Add(this.label39); + this.groupBox4.Controls.Add(this.styleTB); + this.groupBox4.Controls.Add(this.label40); + this.groupBox4.Controls.Add(this.style_IDTB); + this.groupBox4.Controls.Add(this.label41); + this.groupBox4.Controls.Add(this.coverageSpatialTB); + this.groupBox4.Controls.Add(this.label42); + this.groupBox4.Controls.Add(this.label43); + this.groupBox4.Controls.Add(this.driverTB); + this.groupBox4.Controls.Add(this.label44); + this.groupBox4.Controls.Add(this.label45); + this.groupBox4.Controls.Add(this.rightsTB); + this.groupBox4.Controls.Add(this.label46); + this.groupBox4.Controls.Add(this.tagsTB); + this.groupBox4.Controls.Add(this.label47); + this.groupBox4.Controls.Add(this.referencesTB); + this.groupBox4.Controls.Add(this.label48); + this.groupBox4.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox4.Location = new System.Drawing.Point(15, 421); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(530, 278); + this.groupBox4.TabIndex = 122; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Document Information (continued)"; + // + // dataSourceDriverCB + // + this.dataSourceDriverCB.FormattingEnabled = true; + this.dataSourceDriverCB.Location = new System.Drawing.Point(108, 185); + this.dataSourceDriverCB.Name = "dataSourceDriverCB"; + this.dataSourceDriverCB.Size = new System.Drawing.Size(148, 21); + this.dataSourceDriverCB.TabIndex = 26; + // + // finishUploadButton + // + this.finishUploadButton.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.finishUploadButton.Location = new System.Drawing.Point(403, 705); + this.finishUploadButton.Name = "finishUploadButton"; + this.finishUploadButton.Size = new System.Drawing.Size(142, 46); + this.finishUploadButton.TabIndex = 37; + this.finishUploadButton.Text = "&Finish and Upload"; + this.finishUploadButton.UseVisualStyleBackColor = true; + this.finishUploadButton.Click += new System.EventHandler(this.finishUploadButton_Click_1); + // + // backButton + // + this.backButton.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.backButton.Location = new System.Drawing.Point(231, 722); + this.backButton.Name = "backButton"; + this.backButton.Size = new System.Drawing.Size(80, 28); + this.backButton.TabIndex = 150; + this.backButton.Text = "Bac&k"; + this.backButton.UseVisualStyleBackColor = true; + this.backButton.Click += new System.EventHandler(this.backButton_Click_1); + // + // toolTip1 + // + this.toolTip1.AutoPopDelay = 5000; + this.toolTip1.InitialDelay = 100; + this.toolTip1.ReshowDelay = 100; + this.toolTip1.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info; + // + // pBar + // + this.pBar.Location = new System.Drawing.Point(15, 722); + this.pBar.Name = "pBar"; + this.pBar.Size = new System.Drawing.Size(210, 28); + this.pBar.TabIndex = 127; + // + // button1 + // + this.button1.BackColor = System.Drawing.Color.Red; + this.button1.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button1.Location = new System.Drawing.Point(14, 700); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(21, 19); + this.button1.TabIndex = 128; + this.button1.UseVisualStyleBackColor = false; + this.button1.Visible = false; + // + // uploadForm1_other + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.ButtonFace; + this.ClientSize = new System.Drawing.Size(560, 763); + this.Controls.Add(this.button1); + this.Controls.Add(this.pBar); + this.Controls.Add(this.backButton); + this.Controls.Add(this.finishUploadButton); + this.Controls.Add(this.groupBox4); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.Cancel_button); + this.Name = "uploadForm1_other"; + this.Text = "Upload New Content"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.groupBox3.ResumeLayout(false); + this.groupBox3.PerformLayout(); + this.groupBox4.ResumeLayout(false); + this.groupBox4.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TextBox titleTB; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox emailTB; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox nameTB; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Button Cancel_button; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox organizationTB; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox addressTB; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.TextBox bodyTB; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.TextBox nicknameTB; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.TextBox zipcodeTB; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.TextBox phonenumberTB; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.TextBox contribNameTB; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.TextBox citystateTB; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.TextBox countryTB; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.TextBox contribContributionTB; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.Label label23; + private System.Windows.Forms.TextBox contribNicknameTB; + private System.Windows.Forms.Label label24; + private System.Windows.Forms.TextBox contribEmailTB; + private System.Windows.Forms.TextBox contribOrganizationTB; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox contribPhonenumberTB; + private System.Windows.Forms.Label label25; + private System.Windows.Forms.TextBox contribCountryTB; + private System.Windows.Forms.Label label28; + private System.Windows.Forms.TextBox sourceCommentsTB; + private System.Windows.Forms.Label label29; + private System.Windows.Forms.Label label30; + private System.Windows.Forms.TextBox sourceNameTB; + private System.Windows.Forms.Label label31; + private System.Windows.Forms.TextBox sourceSubjectTB; + private System.Windows.Forms.Label label32; + private System.Windows.Forms.TextBox sourceIDTB; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Label label48; + private System.Windows.Forms.TextBox referencesTB; + private System.Windows.Forms.Label label47; + private System.Windows.Forms.TextBox tagsTB; + private System.Windows.Forms.Label label46; + private System.Windows.Forms.TextBox rightsTB; + private System.Windows.Forms.Label label45; + private System.Windows.Forms.Label label44; + private System.Windows.Forms.TextBox driverTB; + private System.Windows.Forms.Label label43; + private System.Windows.Forms.Label label42; + private System.Windows.Forms.TextBox coverageSpatialTB; + private System.Windows.Forms.Label label41; + private System.Windows.Forms.TextBox style_IDTB; + private System.Windows.Forms.Label label40; + private System.Windows.Forms.TextBox styleTB; + private System.Windows.Forms.Label label39; + private System.Windows.Forms.Label label38; + private System.Windows.Forms.TextBox layer_IDTB; + private System.Windows.Forms.Label label37; + private System.Windows.Forms.TextBox webserviceTB; + private System.Windows.Forms.Label label36; + private System.Windows.Forms.Label label35; + private System.Windows.Forms.TextBox driverConfigTB; + private System.Windows.Forms.Label label34; + private System.Windows.Forms.TextBox textBox6; + private System.Windows.Forms.Label revisionInfoTB; + private System.Windows.Forms.Label label27; + private System.Windows.Forms.TextBox publishingOptionsTB; + private System.Windows.Forms.Label label26; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.TextBox textBox14; + private System.Windows.Forms.Label authoringInfoTB; + private System.Windows.Forms.Button browseButton; + private System.Windows.Forms.TextBox fileTB; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.Button finishUploadButton; + private System.Windows.Forms.ComboBox dataSourceDriverCB; + private System.Windows.Forms.Button backButton; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.ProgressBar pBar; + private System.Windows.Forms.Button button1; + + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_other.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_other.cs new file mode 100644 index 00000000..2470271a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_other.cs @@ -0,0 +1,216 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.IO; + + +namespace HydroDesktop.Plugins.HydroShare +{ + public partial class uploadForm1_other : Form + { + public string title, bodyEditSummary, name, nickname, email, organization, address, cityState, zipCode, country, phoneNumber; + public string cName, cNickname, cContribution, cEmail, cOrganization, cCountry, cPhoneNumber; + public string sSubject, sName, sComments, sID; + public string references, rights, coverageSpatial, tags, dataSourceDriver, driver, style, webservice, style_ID, layer_ID, driverConfig, + revisionInfo, authoringInfo, publishingOptions, file; + + + public uploadForm1_other() + { + + InitializeComponent(); + string[] items = new string[] { "N/A", "SHAPEFILE", "KMZ", "GEOTIFF", "POSTGIS", "OGR" }; + dataSourceDriverCB.DataSource = items; + dataSourceDriverCB.SelectedIndex = 0; + + pBar.Visible = true; + pBar.Minimum = 1; + pBar.Maximum = items.Length; + pBar.Value = 1; + pBar.Step = 1; + } + private void makeVisible() + { + this.Visible = true; + } + + + private void dataSourceDriverCB_SelectedIndexChanged(object sender, EventArgs e) + { + + } + private void button1_Click(object sender, EventArgs e) + { + gotoWeb browser = new gotoWeb(); + browser.StartPosition = FormStartPosition.CenterScreen; + browser.Visible = true; + } + + private void finishUploadButton_Click_1(object sender, EventArgs e) + { + //System.IO.File.WriteAllLines(@"C:\Users\Temp\Desktop\WriteLines.txt", prevInputs); + /* + string url = "http://dev.hyrdroshare.org"; + string file = fileTB.Text; + WebClient client = new WebClient(); + client.UploadFile(url, "post", file); + */ + + + title = this.titleTB.Text; + pBar.PerformStep(); + name = this.nameTB.Text; + pBar.PerformStep(); + email = this.emailTB.Text; + pBar.PerformStep(); + sSubject = this.sourceSubjectTB.Text; + pBar.PerformStep(); + rights = this.rightsTB.Text; + pBar.PerformStep(); + coverageSpatial = this.coverageSpatialTB.Text; + pBar.PerformStep(); + file = this.fileTB.Text; + pBar.PerformStep(); + + + //if either title OR email OR name OR subject text boxes are blank + //then the user is informed that they must fix this error + if ((title.Length == 0) || (email.Length == 0) || (name.Length == 0) || (sSubject.Length == 0) || (rights.Length == 0) || (coverageSpatial.Length == 0) || (file.Length == 0)) + { + MessageBox.Show("Please fill in all required fields (marked with an * ).", "Error", MessageBoxButtons.OK); + } + + else + { + //store text boxes in local variables + //these variables will then be permanently stored in an array + bodyEditSummary = this.bodyTB.Text; + pBar.PerformStep(); + nickname = this.nicknameTB.Text; + pBar.PerformStep(); + organization = this.organizationTB.Text; + pBar.PerformStep(); + address = this.addressTB.Text; + pBar.PerformStep(); + cityState = this.citystateTB.Text; + pBar.PerformStep(); + zipCode = this.zipcodeTB.Text; + pBar.PerformStep(); + country = this.countryTB.Text; + pBar.PerformStep(); + phoneNumber = this.phonenumberTB.Text; + pBar.PerformStep(); + cName = this.contribNameTB.Text; + pBar.PerformStep(); + cNickname = this.contribNicknameTB.Text; + pBar.PerformStep(); + cContribution = this.contribContributionTB.Text; + pBar.PerformStep(); + cEmail = this.contribEmailTB.Text; + pBar.PerformStep(); + cOrganization = this.contribOrganizationTB.Text; + pBar.PerformStep(); + cCountry = this.contribCountryTB.Text; + pBar.PerformStep(); + cPhoneNumber = this.contribPhonenumberTB.Text; + pBar.PerformStep(); + sName = this.sourceNameTB.Text; + pBar.PerformStep(); + sComments = this.sourceCommentsTB.Text; + pBar.PerformStep(); + sID = this.sourceIDTB.Text; + pBar.PerformStep(); + references = this.referencesTB.Text; + pBar.PerformStep(); + tags = this.tagsTB.Text; + pBar.PerformStep(); + dataSourceDriver = this.dataSourceDriverCB.Text; + pBar.PerformStep(); + driver = this.driverTB.Text; + pBar.PerformStep(); + style = this.styleTB.Text; + pBar.PerformStep(); + webservice = this.webserviceTB.Text; + pBar.PerformStep(); + style_ID = this.style_IDTB.Text; + pBar.PerformStep(); + layer_ID = this.layer_IDTB.Text; + pBar.PerformStep(); + driverConfig = this.driverConfigTB.Text; + pBar.PerformStep(); + revisionInfo = this.revisionInfoTB.Text; + pBar.PerformStep(); + authoringInfo = this.authoringInfoTB.Text; + pBar.PerformStep(); + publishingOptions = this.publishingOptionsTB.Text; + pBar.PerformStep(); + + //store all of the variables in an array + //this array will be passed down to uploadForm2 + //this way we can close this form, but retain its contents + string[] inputs = {title, bodyEditSummary, name, nickname, email, organization, address, cityState, zipCode, country, + phoneNumber, cName, cNickname, cContribution, cEmail, cOrganization, cCountry, cPhoneNumber, + sSubject, sName, sComments, sID, references, tags, dataSourceDriver, driver, style, webservice, + style_ID, layer_ID, driverConfig, revisionInfo, authoringInfo, publishingOptions}; + + //close this form + this.Visible = false; + + printForm print = new printForm(this); + print.StartPosition = FormStartPosition.CenterScreen; + print.Visible = true; + } + } + + private void browseButton_Click_1(object sender, EventArgs e) + { + /* + OpenFileDialog fDialog = new OpenFileDialog(); + fDialog.Title = "Open File"; + fDialog.Filter = "XML Files|*.xml|UML Files|*.uml"; + fDialog.InitialDirectory = @"C:\"; + if (fDialog.ShowDialog() == DialogResult.OK) + MessageBox.Show(fDialog.FileName.ToString()); + */ + + FolderBrowserDialog folder = new FolderBrowserDialog(); + if (folder.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + string folderPath = folder.SelectedPath; + file = fileTB.Text = folderPath; + } + } + + private void backButton_Click_1(object sender, EventArgs e) + { + if (MessageBox.Show("This will delete all information in this form. Are you sure you want to proceed?", "Caution", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) + { + this.Close(); + chooseUploadType uploadType = new chooseUploadType(); + uploadType.StartPosition = FormStartPosition.CenterScreen; + uploadType.Visible = true; + } + else + { + //do nothing + } + } + + private void Cancel_button_Click(object sender, EventArgs e) + { + if (MessageBox.Show("This will delete all information in this form. Are you sure you want to proceed?", "Caution", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) + { + this.Close(); + } + else + { + //do nothing + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_other.resx b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_other.resx new file mode 100644 index 00000000..e646a09a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_other.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 17, 17 + + + 25 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_time.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_time.Designer.cs new file mode 100644 index 00000000..d3e41b7d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_time.Designer.cs @@ -0,0 +1,1143 @@ +namespace HydroDesktop.Plugins.HydroShare +{ + partial class uploadForm1_time + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.titleTB = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.emailTB = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.nameTB = new System.Windows.Forms.TextBox(); + this.label8 = new System.Windows.Forms.Label(); + this.Cancel_button = new System.Windows.Forms.Button(); + this.label6 = new System.Windows.Forms.Label(); + this.organizationTB = new System.Windows.Forms.TextBox(); + this.label7 = new System.Windows.Forms.Label(); + this.addressTB = new System.Windows.Forms.TextBox(); + this.label11 = new System.Windows.Forms.Label(); + this.bodyTB = new System.Windows.Forms.TextBox(); + this.label12 = new System.Windows.Forms.Label(); + this.nicknameTB = new System.Windows.Forms.TextBox(); + this.label13 = new System.Windows.Forms.Label(); + this.zipcodeTB = new System.Windows.Forms.TextBox(); + this.label14 = new System.Windows.Forms.Label(); + this.phonenumberTB = new System.Windows.Forms.TextBox(); + this.label15 = new System.Windows.Forms.Label(); + this.contribNameTB = new System.Windows.Forms.TextBox(); + this.label16 = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.citystateTB = new System.Windows.Forms.TextBox(); + this.label18 = new System.Windows.Forms.Label(); + this.countryTB = new System.Windows.Forms.TextBox(); + this.label19 = new System.Windows.Forms.Label(); + this.contribContributionTB = new System.Windows.Forms.TextBox(); + this.label20 = new System.Windows.Forms.Label(); + this.label22 = new System.Windows.Forms.Label(); + this.label23 = new System.Windows.Forms.Label(); + this.contribNicknameTB = new System.Windows.Forms.TextBox(); + this.label24 = new System.Windows.Forms.Label(); + this.contribEmailTB = new System.Windows.Forms.TextBox(); + this.contribOrganizationTB = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.contribPhonenumberTB = new System.Windows.Forms.TextBox(); + this.label25 = new System.Windows.Forms.Label(); + this.contribCountryTB = new System.Windows.Forms.TextBox(); + this.label28 = new System.Windows.Forms.Label(); + this.sourceCommentsTB = new System.Windows.Forms.TextBox(); + this.label29 = new System.Windows.Forms.Label(); + this.label30 = new System.Windows.Forms.Label(); + this.sourceNameTB = new System.Windows.Forms.TextBox(); + this.label31 = new System.Windows.Forms.Label(); + this.sourceSubjectTB = new System.Windows.Forms.TextBox(); + this.label32 = new System.Windows.Forms.Label(); + this.sourceIDTB = new System.Windows.Forms.TextBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.label48 = new System.Windows.Forms.Label(); + this.referencesTB = new System.Windows.Forms.TextBox(); + this.label47 = new System.Windows.Forms.Label(); + this.tagsTB = new System.Windows.Forms.TextBox(); + this.label46 = new System.Windows.Forms.Label(); + this.rightsTB = new System.Windows.Forms.TextBox(); + this.label45 = new System.Windows.Forms.Label(); + this.label44 = new System.Windows.Forms.Label(); + this.driverTB = new System.Windows.Forms.TextBox(); + this.label43 = new System.Windows.Forms.Label(); + this.label42 = new System.Windows.Forms.Label(); + this.coverageSpatialTB = new System.Windows.Forms.TextBox(); + this.label41 = new System.Windows.Forms.Label(); + this.style_IDTB = new System.Windows.Forms.TextBox(); + this.label40 = new System.Windows.Forms.Label(); + this.styleTB = new System.Windows.Forms.TextBox(); + this.label39 = new System.Windows.Forms.Label(); + this.label38 = new System.Windows.Forms.Label(); + this.layer_IDTB = new System.Windows.Forms.TextBox(); + this.label37 = new System.Windows.Forms.Label(); + this.webserviceTB = new System.Windows.Forms.TextBox(); + this.label36 = new System.Windows.Forms.Label(); + this.label35 = new System.Windows.Forms.Label(); + this.driverConfigTB = new System.Windows.Forms.TextBox(); + this.label34 = new System.Windows.Forms.Label(); + this.textBox6 = new System.Windows.Forms.TextBox(); + this.revisionInfoTB = new System.Windows.Forms.Label(); + this.label27 = new System.Windows.Forms.Label(); + this.publishingOptionsTB = new System.Windows.Forms.TextBox(); + this.label26 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.textBox14 = new System.Windows.Forms.TextBox(); + this.authoringInfoTB = new System.Windows.Forms.Label(); + this.browseButton = new System.Windows.Forms.Button(); + this.fileTB = new System.Windows.Forms.TextBox(); + this.label21 = new System.Windows.Forms.Label(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.dataSourceDriverCB = new System.Windows.Forms.ComboBox(); + this.finishUploadButton = new System.Windows.Forms.Button(); + this.backButton = new System.Windows.Forms.Button(); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.pBar = new System.Windows.Forms.ProgressBar(); + this.button1 = new System.Windows.Forms.Button(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.groupBox4.SuspendLayout(); + this.SuspendLayout(); + // + // titleTB + // + this.titleTB.Location = new System.Drawing.Point(92, 27); + this.titleTB.Name = "titleTB"; + this.titleTB.Size = new System.Drawing.Size(149, 22); + this.titleTB.TabIndex = 0; + this.toolTip1.SetToolTip(this.titleTB, "Required"); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(55, 31); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(33, 13); + this.label1.TabIndex = 1; + this.label1.Text = "Title*"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(50, 214); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(39, 13); + this.label2.TabIndex = 3; + this.label2.Text = "Email*"; + // + // emailTB + // + this.emailTB.Location = new System.Drawing.Point(92, 211); + this.emailTB.Name = "emailTB"; + this.emailTB.Size = new System.Drawing.Size(149, 22); + this.emailTB.TabIndex = 4; + this.toolTip1.SetToolTip(this.emailTB, "Required"); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(47, 162); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(41, 13); + this.label3.TabIndex = 5; + this.label3.Text = "Name*"; + // + // nameTB + // + this.nameTB.Location = new System.Drawing.Point(92, 159); + this.nameTB.Name = "nameTB"; + this.nameTB.Size = new System.Drawing.Size(149, 22); + this.nameTB.TabIndex = 2; + this.toolTip1.SetToolTip(this.nameTB, "Required"); + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(48, 177); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(0, 13); + this.label8.TabIndex = 15; + // + // Cancel_button + // + this.Cancel_button.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Cancel_button.Location = new System.Drawing.Point(317, 722); + this.Cancel_button.Name = "Cancel_button"; + this.Cancel_button.Size = new System.Drawing.Size(80, 28); + this.Cancel_button.TabIndex = 151; + this.Cancel_button.Text = "&Cancel"; + this.Cancel_button.UseVisualStyleBackColor = true; + this.Cancel_button.Click += new System.EventHandler(this.Cancel_button_Click); + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(11, 240); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(75, 13); + this.label6.TabIndex = 24; + this.label6.Text = "Organization"; + // + // organizationTB + // + this.organizationTB.Location = new System.Drawing.Point(92, 237); + this.organizationTB.Name = "organizationTB"; + this.organizationTB.Size = new System.Drawing.Size(149, 22); + this.organizationTB.TabIndex = 5; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(5, 266); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(81, 13); + this.label7.TabIndex = 22; + this.label7.Text = "Street Address"; + // + // addressTB + // + this.addressTB.Location = new System.Drawing.Point(92, 263); + this.addressTB.Name = "addressTB"; + this.addressTB.Size = new System.Drawing.Size(149, 22); + this.addressTB.TabIndex = 6; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(5, 56); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(87, 13); + this.label11.TabIndex = 28; + this.label11.Text = "Body (summary)"; + // + // bodyTB + // + this.bodyTB.Location = new System.Drawing.Point(92, 53); + this.bodyTB.Multiline = true; + this.bodyTB.Name = "bodyTB"; + this.bodyTB.Size = new System.Drawing.Size(149, 100); + this.bodyTB.TabIndex = 1; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(31, 187); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(57, 13); + this.label12.TabIndex = 30; + this.label12.Text = "Nickname"; + // + // nicknameTB + // + this.nicknameTB.Location = new System.Drawing.Point(92, 185); + this.nicknameTB.Name = "nicknameTB"; + this.nicknameTB.Size = new System.Drawing.Size(149, 22); + this.nicknameTB.TabIndex = 3; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(40, 320); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(48, 13); + this.label13.TabIndex = 42; + this.label13.Text = "Zipcode"; + // + // zipcodeTB + // + this.zipcodeTB.Location = new System.Drawing.Point(92, 317); + this.zipcodeTB.Name = "zipcodeTB"; + this.zipcodeTB.Size = new System.Drawing.Size(149, 22); + this.zipcodeTB.TabIndex = 8; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point(2, 372); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(84, 13); + this.label14.TabIndex = 40; + this.label14.Text = "Phone Number"; + // + // phonenumberTB + // + this.phonenumberTB.Location = new System.Drawing.Point(92, 369); + this.phonenumberTB.Name = "phonenumberTB"; + this.phonenumberTB.Size = new System.Drawing.Size(149, 22); + this.phonenumberTB.TabIndex = 10; + this.toolTip1.SetToolTip(this.phonenumberTB, "123-456-7890"); + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point(45, 30); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(36, 13); + this.label15.TabIndex = 38; + this.label15.Text = "Name"; + // + // contribNameTB + // + this.contribNameTB.Location = new System.Drawing.Point(86, 27); + this.contribNameTB.Name = "contribNameTB"; + this.contribNameTB.Size = new System.Drawing.Size(149, 22); + this.contribNameTB.TabIndex = 11; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(48, 309); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(0, 13); + this.label16.TabIndex = 36; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(31, 294); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(58, 13); + this.label17.TabIndex = 35; + this.label17.Text = "City, State"; + // + // citystateTB + // + this.citystateTB.Location = new System.Drawing.Point(92, 291); + this.citystateTB.Name = "citystateTB"; + this.citystateTB.Size = new System.Drawing.Size(149, 22); + this.citystateTB.TabIndex = 7; + // + // label18 + // + this.label18.AutoSize = true; + this.label18.Location = new System.Drawing.Point(38, 345); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(48, 13); + this.label18.TabIndex = 33; + this.label18.Text = "Country"; + // + // countryTB + // + this.countryTB.Location = new System.Drawing.Point(92, 343); + this.countryTB.Name = "countryTB"; + this.countryTB.Size = new System.Drawing.Size(149, 22); + this.countryTB.TabIndex = 9; + // + // label19 + // + this.label19.AutoSize = true; + this.label19.Location = new System.Drawing.Point(9, 82); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(74, 13); + this.label19.TabIndex = 53; + this.label19.Text = "Contribution"; + // + // contribContributionTB + // + this.contribContributionTB.Location = new System.Drawing.Point(86, 79); + this.contribContributionTB.Name = "contribContributionTB"; + this.contribContributionTB.Size = new System.Drawing.Size(149, 22); + this.contribContributionTB.TabIndex = 13; + // + // label20 + // + this.label20.AutoSize = true; + this.label20.Location = new System.Drawing.Point(5, 134); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(75, 13); + this.label20.TabIndex = 51; + this.label20.Text = "Organization"; + // + // label22 + // + this.label22.AutoSize = true; + this.label22.Location = new System.Drawing.Point(19, 71); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(0, 13); + this.label22.TabIndex = 47; + // + // label23 + // + this.label23.AutoSize = true; + this.label23.Location = new System.Drawing.Point(23, 56); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(57, 13); + this.label23.TabIndex = 46; + this.label23.Text = "Nickname"; + // + // contribNicknameTB + // + this.contribNicknameTB.Location = new System.Drawing.Point(86, 53); + this.contribNicknameTB.Name = "contribNicknameTB"; + this.contribNicknameTB.Size = new System.Drawing.Size(149, 22); + this.contribNicknameTB.TabIndex = 12; + // + // label24 + // + this.label24.AutoSize = true; + this.label24.Location = new System.Drawing.Point(48, 108); + this.label24.Name = "label24"; + this.label24.Size = new System.Drawing.Size(34, 13); + this.label24.TabIndex = 44; + this.label24.Text = "Email"; + // + // contribEmailTB + // + this.contribEmailTB.Location = new System.Drawing.Point(86, 105); + this.contribEmailTB.Name = "contribEmailTB"; + this.contribEmailTB.Size = new System.Drawing.Size(149, 22); + this.contribEmailTB.TabIndex = 14; + // + // contribOrganizationTB + // + this.contribOrganizationTB.Location = new System.Drawing.Point(86, 131); + this.contribOrganizationTB.Name = "contribOrganizationTB"; + this.contribOrganizationTB.Size = new System.Drawing.Size(149, 22); + this.contribOrganizationTB.TabIndex = 15; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(1, 187); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(84, 13); + this.label4.TabIndex = 60; + this.label4.Text = "Phone Number"; + // + // contribPhonenumberTB + // + this.contribPhonenumberTB.Location = new System.Drawing.Point(86, 183); + this.contribPhonenumberTB.Name = "contribPhonenumberTB"; + this.contribPhonenumberTB.Size = new System.Drawing.Size(149, 22); + this.contribPhonenumberTB.TabIndex = 17; + this.toolTip1.SetToolTip(this.contribPhonenumberTB, "123-456-7890"); + // + // label25 + // + this.label25.AutoSize = true; + this.label25.Location = new System.Drawing.Point(32, 160); + this.label25.Name = "label25"; + this.label25.Size = new System.Drawing.Size(48, 13); + this.label25.TabIndex = 58; + this.label25.Text = "Country"; + // + // contribCountryTB + // + this.contribCountryTB.Location = new System.Drawing.Point(86, 157); + this.contribCountryTB.Name = "contribCountryTB"; + this.contribCountryTB.Size = new System.Drawing.Size(149, 22); + this.contribCountryTB.TabIndex = 16; + // + // label28 + // + this.label28.AutoSize = true; + this.label28.Location = new System.Drawing.Point(19, 82); + this.label28.Name = "label28"; + this.label28.Size = new System.Drawing.Size(61, 13); + this.label28.TabIndex = 69; + this.label28.Text = "Comments"; + // + // sourceCommentsTB + // + this.sourceCommentsTB.Location = new System.Drawing.Point(86, 77); + this.sourceCommentsTB.Name = "sourceCommentsTB"; + this.sourceCommentsTB.Size = new System.Drawing.Size(149, 22); + this.sourceCommentsTB.TabIndex = 20; + // + // label29 + // + this.label29.AutoSize = true; + this.label29.Location = new System.Drawing.Point(19, 69); + this.label29.Name = "label29"; + this.label29.Size = new System.Drawing.Size(0, 13); + this.label29.TabIndex = 67; + // + // label30 + // + this.label30.AutoSize = true; + this.label30.Location = new System.Drawing.Point(45, 54); + this.label30.Name = "label30"; + this.label30.Size = new System.Drawing.Size(36, 13); + this.label30.TabIndex = 66; + this.label30.Text = "Name"; + // + // sourceNameTB + // + this.sourceNameTB.Location = new System.Drawing.Point(86, 51); + this.sourceNameTB.Name = "sourceNameTB"; + this.sourceNameTB.Size = new System.Drawing.Size(149, 22); + this.sourceNameTB.TabIndex = 19; + // + // label31 + // + this.label31.AutoSize = true; + this.label31.Location = new System.Drawing.Point(33, 28); + this.label31.Name = "label31"; + this.label31.Size = new System.Drawing.Size(50, 13); + this.label31.TabIndex = 64; + this.label31.Text = "Subject*"; + // + // sourceSubjectTB + // + this.sourceSubjectTB.Location = new System.Drawing.Point(86, 25); + this.sourceSubjectTB.Name = "sourceSubjectTB"; + this.sourceSubjectTB.Size = new System.Drawing.Size(149, 22); + this.sourceSubjectTB.TabIndex = 18; + this.toolTip1.SetToolTip(this.sourceSubjectTB, "Required"); + // + // label32 + // + this.label32.AutoSize = true; + this.label32.Location = new System.Drawing.Point(62, 110); + this.label32.Name = "label32"; + this.label32.Size = new System.Drawing.Size(18, 13); + this.label32.TabIndex = 71; + this.label32.Text = "ID"; + // + // sourceIDTB + // + this.sourceIDTB.Location = new System.Drawing.Point(86, 107); + this.sourceIDTB.Name = "sourceIDTB"; + this.sourceIDTB.Size = new System.Drawing.Size(149, 22); + this.sourceIDTB.TabIndex = 21; + // + // groupBox1 + // + this.groupBox1.BackColor = System.Drawing.SystemColors.ButtonFace; + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Controls.Add(this.contribPhonenumberTB); + this.groupBox1.Controls.Add(this.label25); + this.groupBox1.Controls.Add(this.contribCountryTB); + this.groupBox1.Controls.Add(this.contribOrganizationTB); + this.groupBox1.Controls.Add(this.label19); + this.groupBox1.Controls.Add(this.contribContributionTB); + this.groupBox1.Controls.Add(this.label20); + this.groupBox1.Controls.Add(this.label22); + this.groupBox1.Controls.Add(this.label23); + this.groupBox1.Controls.Add(this.contribNicknameTB); + this.groupBox1.Controls.Add(this.label24); + this.groupBox1.Controls.Add(this.contribEmailTB); + this.groupBox1.Controls.Add(this.label15); + this.groupBox1.Controls.Add(this.contribNameTB); + this.groupBox1.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox1.Location = new System.Drawing.Point(304, 12); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(241, 213); + this.groupBox1.TabIndex = 72; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Contributor Information"; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.label13); + this.groupBox2.Controls.Add(this.zipcodeTB); + this.groupBox2.Controls.Add(this.label14); + this.groupBox2.Controls.Add(this.phonenumberTB); + this.groupBox2.Controls.Add(this.label16); + this.groupBox2.Controls.Add(this.label17); + this.groupBox2.Controls.Add(this.citystateTB); + this.groupBox2.Controls.Add(this.label18); + this.groupBox2.Controls.Add(this.countryTB); + this.groupBox2.Controls.Add(this.label12); + this.groupBox2.Controls.Add(this.nicknameTB); + this.groupBox2.Controls.Add(this.label11); + this.groupBox2.Controls.Add(this.bodyTB); + this.groupBox2.Controls.Add(this.label6); + this.groupBox2.Controls.Add(this.organizationTB); + this.groupBox2.Controls.Add(this.label7); + this.groupBox2.Controls.Add(this.addressTB); + this.groupBox2.Controls.Add(this.label8); + this.groupBox2.Controls.Add(this.label3); + this.groupBox2.Controls.Add(this.nameTB); + this.groupBox2.Controls.Add(this.label2); + this.groupBox2.Controls.Add(this.emailTB); + this.groupBox2.Controls.Add(this.label1); + this.groupBox2.Controls.Add(this.titleTB); + this.groupBox2.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox2.Location = new System.Drawing.Point(15, 10); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(246, 395); + this.groupBox2.TabIndex = 73; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Document Information"; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.label32); + this.groupBox3.Controls.Add(this.sourceIDTB); + this.groupBox3.Controls.Add(this.label28); + this.groupBox3.Controls.Add(this.sourceCommentsTB); + this.groupBox3.Controls.Add(this.label29); + this.groupBox3.Controls.Add(this.label30); + this.groupBox3.Controls.Add(this.sourceNameTB); + this.groupBox3.Controls.Add(this.label31); + this.groupBox3.Controls.Add(this.sourceSubjectTB); + this.groupBox3.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox3.Location = new System.Drawing.Point(304, 247); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(241, 139); + this.groupBox3.TabIndex = 74; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Source Information"; + // + // label48 + // + this.label48.AutoSize = true; + this.label48.Location = new System.Drawing.Point(385, 104); + this.label48.Name = "label48"; + this.label48.Size = new System.Drawing.Size(0, 13); + this.label48.TabIndex = 75; + // + // referencesTB + // + this.referencesTB.Location = new System.Drawing.Point(108, 24); + this.referencesTB.Name = "referencesTB"; + this.referencesTB.Size = new System.Drawing.Size(149, 22); + this.referencesTB.TabIndex = 22; + // + // label47 + // + this.label47.AutoSize = true; + this.label47.Location = new System.Drawing.Point(40, 29); + this.label47.Name = "label47"; + this.label47.Size = new System.Drawing.Size(63, 13); + this.label47.TabIndex = 78; + this.label47.Text = "References"; + // + // tagsTB + // + this.tagsTB.Location = new System.Drawing.Point(108, 102); + this.tagsTB.Multiline = true; + this.tagsTB.Name = "tagsTB"; + this.tagsTB.Size = new System.Drawing.Size(149, 71); + this.tagsTB.TabIndex = 25; + // + // label46 + // + this.label46.AutoSize = true; + this.label46.Location = new System.Drawing.Point(71, 104); + this.label46.Name = "label46"; + this.label46.Size = new System.Drawing.Size(30, 13); + this.label46.TabIndex = 80; + this.label46.Text = "Tags"; + this.label46.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // rightsTB + // + this.rightsTB.Location = new System.Drawing.Point(108, 50); + this.rightsTB.Name = "rightsTB"; + this.rightsTB.Size = new System.Drawing.Size(149, 22); + this.rightsTB.TabIndex = 23; + this.toolTip1.SetToolTip(this.rightsTB, "Required"); + // + // label45 + // + this.label45.AutoSize = true; + this.label45.Location = new System.Drawing.Point(61, 53); + this.label45.Name = "label45"; + this.label45.Size = new System.Drawing.Size(45, 13); + this.label45.TabIndex = 82; + this.label45.Text = "Rights*"; + // + // label44 + // + this.label44.AutoSize = true; + this.label44.Location = new System.Drawing.Point(35, 68); + this.label44.Name = "label44"; + this.label44.Size = new System.Drawing.Size(0, 13); + this.label44.TabIndex = 83; + // + // driverTB + // + this.driverTB.Location = new System.Drawing.Point(108, 212); + this.driverTB.Name = "driverTB"; + this.driverTB.Size = new System.Drawing.Size(149, 22); + this.driverTB.TabIndex = 27; + // + // label43 + // + this.label43.AutoSize = true; + this.label43.Location = new System.Drawing.Point(65, 215); + this.label43.Name = "label43"; + this.label43.Size = new System.Drawing.Size(37, 13); + this.label43.TabIndex = 85; + this.label43.Text = "Driver"; + // + // label42 + // + this.label42.AutoSize = true; + this.label42.Location = new System.Drawing.Point(1, 189); + this.label42.Name = "label42"; + this.label42.Size = new System.Drawing.Size(102, 13); + this.label42.TabIndex = 87; + this.label42.Text = "Data Source Driver"; + // + // coverageSpatialTB + // + this.coverageSpatialTB.Location = new System.Drawing.Point(108, 76); + this.coverageSpatialTB.Name = "coverageSpatialTB"; + this.coverageSpatialTB.Size = new System.Drawing.Size(149, 22); + this.coverageSpatialTB.TabIndex = 24; + this.toolTip1.SetToolTip(this.coverageSpatialTB, "Required"); + // + // label41 + // + this.label41.AutoSize = true; + this.label41.Location = new System.Drawing.Point(4, 81); + this.label41.Name = "label41"; + this.label41.Size = new System.Drawing.Size(98, 13); + this.label41.TabIndex = 91; + this.label41.Text = "Coverage Spatial*"; + // + // style_IDTB + // + this.style_IDTB.Location = new System.Drawing.Point(377, 78); + this.style_IDTB.Name = "style_IDTB"; + this.style_IDTB.Size = new System.Drawing.Size(149, 22); + this.style_IDTB.TabIndex = 30; + // + // label40 + // + this.label40.AutoSize = true; + this.label40.Location = new System.Drawing.Point(324, 81); + this.label40.Name = "label40"; + this.label40.Size = new System.Drawing.Size(47, 13); + this.label40.TabIndex = 93; + this.label40.Text = "Style_ID"; + // + // styleTB + // + this.styleTB.Location = new System.Drawing.Point(377, 26); + this.styleTB.Name = "styleTB"; + this.styleTB.PasswordChar = '*'; + this.styleTB.Size = new System.Drawing.Size(149, 22); + this.styleTB.TabIndex = 28; + // + // label39 + // + this.label39.AutoSize = true; + this.label39.Location = new System.Drawing.Point(341, 29); + this.label39.Name = "label39"; + this.label39.Size = new System.Drawing.Size(31, 13); + this.label39.TabIndex = 95; + this.label39.Text = "Style"; + // + // label38 + // + this.label38.AutoSize = true; + this.label38.Location = new System.Drawing.Point(304, 44); + this.label38.Name = "label38"; + this.label38.Size = new System.Drawing.Size(0, 13); + this.label38.TabIndex = 96; + // + // layer_IDTB + // + this.layer_IDTB.Location = new System.Drawing.Point(377, 104); + this.layer_IDTB.Name = "layer_IDTB"; + this.layer_IDTB.Size = new System.Drawing.Size(149, 22); + this.layer_IDTB.TabIndex = 31; + // + // label37 + // + this.label37.AutoSize = true; + this.label37.Location = new System.Drawing.Point(321, 107); + this.label37.Name = "label37"; + this.label37.Size = new System.Drawing.Size(49, 13); + this.label37.TabIndex = 98; + this.label37.Text = "Layer_ID"; + // + // webserviceTB + // + this.webserviceTB.Location = new System.Drawing.Point(377, 52); + this.webserviceTB.Name = "webserviceTB"; + this.webserviceTB.Size = new System.Drawing.Size(149, 22); + this.webserviceTB.TabIndex = 29; + // + // label36 + // + this.label36.AutoSize = true; + this.label36.Location = new System.Drawing.Point(307, 55); + this.label36.Name = "label36"; + this.label36.Size = new System.Drawing.Size(65, 13); + this.label36.TabIndex = 100; + this.label36.Text = "Webservice"; + // + // label35 + // + this.label35.AutoSize = true; + this.label35.Location = new System.Drawing.Point(385, 156); + this.label35.Name = "label35"; + this.label35.Size = new System.Drawing.Size(0, 13); + this.label35.TabIndex = 102; + // + // driverConfigTB + // + this.driverConfigTB.Location = new System.Drawing.Point(377, 130); + this.driverConfigTB.Name = "driverConfigTB"; + this.driverConfigTB.Size = new System.Drawing.Size(149, 22); + this.driverConfigTB.TabIndex = 32; + // + // label34 + // + this.label34.AutoSize = true; + this.label34.Location = new System.Drawing.Point(296, 133); + this.label34.Name = "label34"; + this.label34.Size = new System.Drawing.Size(75, 13); + this.label34.TabIndex = 104; + this.label34.Text = "Driver Config"; + // + // textBox6 + // + this.textBox6.Location = new System.Drawing.Point(377, 156); + this.textBox6.Name = "textBox6"; + this.textBox6.Size = new System.Drawing.Size(149, 22); + this.textBox6.TabIndex = 33; + // + // revisionInfoTB + // + this.revisionInfoTB.AutoSize = true; + this.revisionInfoTB.Location = new System.Drawing.Point(297, 159); + this.revisionInfoTB.Name = "revisionInfoTB"; + this.revisionInfoTB.Size = new System.Drawing.Size(74, 13); + this.revisionInfoTB.TabIndex = 106; + this.revisionInfoTB.Text = "Revision Info"; + // + // label27 + // + this.label27.AutoSize = true; + this.label27.Location = new System.Drawing.Point(324, 220); + this.label27.Name = "label27"; + this.label27.Size = new System.Drawing.Size(0, 13); + this.label27.TabIndex = 107; + // + // publishingOptionsTB + // + this.publishingOptionsTB.Location = new System.Drawing.Point(377, 213); + this.publishingOptionsTB.Name = "publishingOptionsTB"; + this.publishingOptionsTB.Size = new System.Drawing.Size(149, 22); + this.publishingOptionsTB.TabIndex = 35; + // + // label26 + // + this.label26.AutoSize = true; + this.label26.Location = new System.Drawing.Point(264, 216); + this.label26.Name = "label26"; + this.label26.Size = new System.Drawing.Size(107, 13); + this.label26.TabIndex = 109; + this.label26.Text = "Publishing Options"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(385, 186); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(0, 13); + this.label9.TabIndex = 110; + // + // textBox14 + // + this.textBox14.Location = new System.Drawing.Point(377, 186); + this.textBox14.Name = "textBox14"; + this.textBox14.Size = new System.Drawing.Size(149, 22); + this.textBox14.TabIndex = 34; + // + // authoringInfoTB + // + this.authoringInfoTB.AutoSize = true; + this.authoringInfoTB.Location = new System.Drawing.Point(287, 189); + this.authoringInfoTB.Name = "authoringInfoTB"; + this.authoringInfoTB.Size = new System.Drawing.Size(84, 13); + this.authoringInfoTB.TabIndex = 112; + this.authoringInfoTB.Text = "Authoring Info"; + // + // browseButton + // + this.browseButton.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.browseButton.Location = new System.Drawing.Point(446, 241); + this.browseButton.Name = "browseButton"; + this.browseButton.Size = new System.Drawing.Size(80, 28); + this.browseButton.TabIndex = 36; + this.browseButton.Text = "&Browse"; + this.browseButton.UseVisualStyleBackColor = true; + this.browseButton.Click += new System.EventHandler(this.browseButton_Click_1); + // + // fileTB + // + this.fileTB.Location = new System.Drawing.Point(108, 244); + this.fileTB.Name = "fileTB"; + this.fileTB.Size = new System.Drawing.Size(332, 22); + this.fileTB.TabIndex = 114; + this.toolTip1.SetToolTip(this.fileTB, "Required"); + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Location = new System.Drawing.Point(72, 247); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(30, 13); + this.label21.TabIndex = 115; + this.label21.Text = "File*"; + // + // groupBox4 + // + this.groupBox4.BackColor = System.Drawing.SystemColors.ButtonFace; + this.groupBox4.Controls.Add(this.dataSourceDriverCB); + this.groupBox4.Controls.Add(this.label21); + this.groupBox4.Controls.Add(this.fileTB); + this.groupBox4.Controls.Add(this.browseButton); + this.groupBox4.Controls.Add(this.authoringInfoTB); + this.groupBox4.Controls.Add(this.textBox14); + this.groupBox4.Controls.Add(this.label9); + this.groupBox4.Controls.Add(this.label26); + this.groupBox4.Controls.Add(this.publishingOptionsTB); + this.groupBox4.Controls.Add(this.label27); + this.groupBox4.Controls.Add(this.revisionInfoTB); + this.groupBox4.Controls.Add(this.textBox6); + this.groupBox4.Controls.Add(this.label34); + this.groupBox4.Controls.Add(this.driverConfigTB); + this.groupBox4.Controls.Add(this.label35); + this.groupBox4.Controls.Add(this.label36); + this.groupBox4.Controls.Add(this.webserviceTB); + this.groupBox4.Controls.Add(this.label37); + this.groupBox4.Controls.Add(this.layer_IDTB); + this.groupBox4.Controls.Add(this.label38); + this.groupBox4.Controls.Add(this.label39); + this.groupBox4.Controls.Add(this.styleTB); + this.groupBox4.Controls.Add(this.label40); + this.groupBox4.Controls.Add(this.style_IDTB); + this.groupBox4.Controls.Add(this.label41); + this.groupBox4.Controls.Add(this.coverageSpatialTB); + this.groupBox4.Controls.Add(this.label42); + this.groupBox4.Controls.Add(this.label43); + this.groupBox4.Controls.Add(this.driverTB); + this.groupBox4.Controls.Add(this.label44); + this.groupBox4.Controls.Add(this.label45); + this.groupBox4.Controls.Add(this.rightsTB); + this.groupBox4.Controls.Add(this.label46); + this.groupBox4.Controls.Add(this.tagsTB); + this.groupBox4.Controls.Add(this.label47); + this.groupBox4.Controls.Add(this.referencesTB); + this.groupBox4.Controls.Add(this.label48); + this.groupBox4.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.groupBox4.Location = new System.Drawing.Point(15, 421); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(530, 278); + this.groupBox4.TabIndex = 122; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Document Information (continued)"; + // + // dataSourceDriverCB + // + this.dataSourceDriverCB.FormattingEnabled = true; + this.dataSourceDriverCB.Location = new System.Drawing.Point(108, 185); + this.dataSourceDriverCB.Name = "dataSourceDriverCB"; + this.dataSourceDriverCB.Size = new System.Drawing.Size(148, 21); + this.dataSourceDriverCB.TabIndex = 26; + // + // finishUploadButton + // + this.finishUploadButton.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.finishUploadButton.Location = new System.Drawing.Point(403, 705); + this.finishUploadButton.Name = "finishUploadButton"; + this.finishUploadButton.Size = new System.Drawing.Size(142, 46); + this.finishUploadButton.TabIndex = 37; + this.finishUploadButton.Text = "&Finish and Upload"; + this.finishUploadButton.UseVisualStyleBackColor = true; + this.finishUploadButton.Click += new System.EventHandler(this.finishUploadButton_Click); + // + // backButton + // + this.backButton.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.backButton.Location = new System.Drawing.Point(231, 722); + this.backButton.Name = "backButton"; + this.backButton.Size = new System.Drawing.Size(80, 28); + this.backButton.TabIndex = 150; + this.backButton.Text = "Bac&k"; + this.backButton.UseVisualStyleBackColor = true; + this.backButton.Click += new System.EventHandler(this.backButton_Click_1); + // + // toolTip1 + // + this.toolTip1.AutoPopDelay = 5000; + this.toolTip1.InitialDelay = 100; + this.toolTip1.ReshowDelay = 100; + this.toolTip1.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info; + // + // pBar + // + this.pBar.Location = new System.Drawing.Point(15, 722); + this.pBar.Name = "pBar"; + this.pBar.Size = new System.Drawing.Size(210, 28); + this.pBar.TabIndex = 127; + // + // button1 + // + this.button1.BackColor = System.Drawing.Color.Red; + this.button1.Font = new System.Drawing.Font("Segoe UI Semibold", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button1.Location = new System.Drawing.Point(14, 700); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(21, 19); + this.button1.TabIndex = 128; + this.button1.UseVisualStyleBackColor = false; + this.button1.Visible = false; + // + // uploadForm1_time + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.ButtonFace; + this.ClientSize = new System.Drawing.Size(560, 763); + this.Controls.Add(this.button1); + this.Controls.Add(this.pBar); + this.Controls.Add(this.backButton); + this.Controls.Add(this.finishUploadButton); + this.Controls.Add(this.groupBox4); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.Cancel_button); + this.Name = "uploadForm1_time"; + this.Text = "Upload New Content"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.groupBox3.ResumeLayout(false); + this.groupBox3.PerformLayout(); + this.groupBox4.ResumeLayout(false); + this.groupBox4.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TextBox titleTB; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox emailTB; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox nameTB; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Button Cancel_button; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox organizationTB; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox addressTB; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.TextBox bodyTB; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.TextBox nicknameTB; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.TextBox zipcodeTB; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.TextBox phonenumberTB; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.TextBox contribNameTB; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.TextBox citystateTB; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.TextBox countryTB; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.TextBox contribContributionTB; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.Label label23; + private System.Windows.Forms.TextBox contribNicknameTB; + private System.Windows.Forms.Label label24; + private System.Windows.Forms.TextBox contribEmailTB; + private System.Windows.Forms.TextBox contribOrganizationTB; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox contribPhonenumberTB; + private System.Windows.Forms.Label label25; + private System.Windows.Forms.TextBox contribCountryTB; + private System.Windows.Forms.Label label28; + private System.Windows.Forms.TextBox sourceCommentsTB; + private System.Windows.Forms.Label label29; + private System.Windows.Forms.Label label30; + private System.Windows.Forms.TextBox sourceNameTB; + private System.Windows.Forms.Label label31; + private System.Windows.Forms.TextBox sourceSubjectTB; + private System.Windows.Forms.Label label32; + private System.Windows.Forms.TextBox sourceIDTB; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Label label48; + private System.Windows.Forms.TextBox referencesTB; + private System.Windows.Forms.Label label47; + private System.Windows.Forms.TextBox tagsTB; + private System.Windows.Forms.Label label46; + private System.Windows.Forms.TextBox rightsTB; + private System.Windows.Forms.Label label45; + private System.Windows.Forms.Label label44; + private System.Windows.Forms.TextBox driverTB; + private System.Windows.Forms.Label label43; + private System.Windows.Forms.Label label42; + private System.Windows.Forms.TextBox coverageSpatialTB; + private System.Windows.Forms.Label label41; + private System.Windows.Forms.TextBox style_IDTB; + private System.Windows.Forms.Label label40; + private System.Windows.Forms.TextBox styleTB; + private System.Windows.Forms.Label label39; + private System.Windows.Forms.Label label38; + private System.Windows.Forms.TextBox layer_IDTB; + private System.Windows.Forms.Label label37; + private System.Windows.Forms.TextBox webserviceTB; + private System.Windows.Forms.Label label36; + private System.Windows.Forms.Label label35; + private System.Windows.Forms.TextBox driverConfigTB; + private System.Windows.Forms.Label label34; + private System.Windows.Forms.TextBox textBox6; + private System.Windows.Forms.Label revisionInfoTB; + private System.Windows.Forms.Label label27; + private System.Windows.Forms.TextBox publishingOptionsTB; + private System.Windows.Forms.Label label26; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.TextBox textBox14; + private System.Windows.Forms.Label authoringInfoTB; + private System.Windows.Forms.Button browseButton; + private System.Windows.Forms.TextBox fileTB; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.Button finishUploadButton; + private System.Windows.Forms.ComboBox dataSourceDriverCB; + private System.Windows.Forms.Button backButton; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.ProgressBar pBar; + private System.Windows.Forms.Button button1; + + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_time.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_time.cs new file mode 100644 index 00000000..91566b45 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_time.cs @@ -0,0 +1,213 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.IO; + + +namespace HydroDesktop.Plugins.HydroShare +{ + public partial class uploadForm1_time : Form + { + public string title, bodyEditSummary, name, nickname, email, organization, address, cityState, zipCode, country, phoneNumber; + public string cName, cNickname, cContribution, cEmail, cOrganization, cCountry, cPhoneNumber; + public string sSubject, sName, sComments, sID; + public string references, rights, coverageSpatial, tags, dataSourceDriver, driver, style, webservice, style_ID, layer_ID, driverConfig, + revisionInfo, authoringInfo, publishingOptions, file; + + + public uploadForm1_time() + { + + InitializeComponent(); + string[] items = new string[] { "N/A", "SHAPEFILE", "KMZ", "GEOTIFF", "POSTGIS", "OGR" }; + dataSourceDriverCB.DataSource = items; + dataSourceDriverCB.SelectedIndex = 0; + + pBar.Visible = true; + pBar.Minimum = 1; + pBar.Maximum = items.Length; + pBar.Value = 1; + pBar.Step = 1; + } + + private void makeVisible() + { + this.Visible = true; + } + + private void pictureBox1_Click(object sender, EventArgs e) + { + + } + + private void dataSourceDriverCB_SelectedIndexChanged(object sender, EventArgs e) + { + + } + + private void button1_Click(object sender, EventArgs e) + { + gotoWeb browser = new gotoWeb(); + browser.StartPosition = FormStartPosition.CenterScreen; + browser.Visible = true; + } + + private void browseButton_Click_1(object sender, EventArgs e) + { + FolderBrowserDialog folder = new FolderBrowserDialog(); + if (folder.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + string folderPath = folder.SelectedPath; + file = fileTB.Text = folderPath; + } + } + + private void backButton_Click_1(object sender, EventArgs e) + { + if (MessageBox.Show("This will delete all information in this form. Are you sure you want to proceed?", "Caution", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) + { + this.Close(); + chooseUploadType uploadType = new chooseUploadType(); + uploadType.StartPosition = FormStartPosition.CenterScreen; + uploadType.Visible = true; + } + else + { + //do nothing + } + } + + private void Cancel_button_Click(object sender, EventArgs e) + { + if (MessageBox.Show("This will delete all information in this form. Are you sure you want to proceed?", "Caution", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) + { + this.Close(); + } + else + { + //do nothing + } + } + + private void finishUploadButton_Click(object sender, EventArgs e) + { + //System.IO.File.WriteAllLines(@"C:\Users\Temp\Desktop\WriteLines.txt", prevInputs); + /* + string url = "http://dev.hyrdroshare.org"; + string file = fileTB.Text; + WebClient client = new WebClient(); + client.UploadFile(url, "post", file); + */ + + + title = this.titleTB.Text; + pBar.PerformStep(); + name = this.nameTB.Text; + pBar.PerformStep(); + email = this.emailTB.Text; + pBar.PerformStep(); + sSubject = this.sourceSubjectTB.Text; + pBar.PerformStep(); + rights = this.rightsTB.Text; + pBar.PerformStep(); + coverageSpatial = this.coverageSpatialTB.Text; + pBar.PerformStep(); + file = this.fileTB.Text; + pBar.PerformStep(); + + + //if either title OR email OR name OR subject text boxes are blank + //then the user is informed that they must fix this error + if ((title.Length == 0) || (email.Length == 0) || (name.Length == 0) || (sSubject.Length == 0) || (rights.Length == 0) || (coverageSpatial.Length == 0) || (file.Length == 0)) + { + MessageBox.Show("Please fill in all required fields (marked with an * ).", "Error", MessageBoxButtons.OK); + } + + else + { + //store text boxes in local variables + //these variables will then be permanently stored in an array + bodyEditSummary = this.bodyTB.Text; + pBar.PerformStep(); + nickname = this.nicknameTB.Text; + pBar.PerformStep(); + organization = this.organizationTB.Text; + pBar.PerformStep(); + address = this.addressTB.Text; + pBar.PerformStep(); + cityState = this.citystateTB.Text; + pBar.PerformStep(); + zipCode = this.zipcodeTB.Text; + pBar.PerformStep(); + country = this.countryTB.Text; + pBar.PerformStep(); + phoneNumber = this.phonenumberTB.Text; + pBar.PerformStep(); + cName = this.contribNameTB.Text; + pBar.PerformStep(); + cNickname = this.contribNicknameTB.Text; + pBar.PerformStep(); + cContribution = this.contribContributionTB.Text; + pBar.PerformStep(); + cEmail = this.contribEmailTB.Text; + pBar.PerformStep(); + cOrganization = this.contribOrganizationTB.Text; + pBar.PerformStep(); + cCountry = this.contribCountryTB.Text; + pBar.PerformStep(); + cPhoneNumber = this.contribPhonenumberTB.Text; + pBar.PerformStep(); + sName = this.sourceNameTB.Text; + pBar.PerformStep(); + sComments = this.sourceCommentsTB.Text; + pBar.PerformStep(); + sID = this.sourceIDTB.Text; + pBar.PerformStep(); + references = this.referencesTB.Text; + pBar.PerformStep(); + tags = this.tagsTB.Text; + pBar.PerformStep(); + dataSourceDriver = this.dataSourceDriverCB.Text; + pBar.PerformStep(); + driver = this.driverTB.Text; + pBar.PerformStep(); + style = this.styleTB.Text; + pBar.PerformStep(); + webservice = this.webserviceTB.Text; + pBar.PerformStep(); + style_ID = this.style_IDTB.Text; + pBar.PerformStep(); + layer_ID = this.layer_IDTB.Text; + pBar.PerformStep(); + driverConfig = this.driverConfigTB.Text; + pBar.PerformStep(); + revisionInfo = this.revisionInfoTB.Text; + pBar.PerformStep(); + authoringInfo = this.authoringInfoTB.Text; + pBar.PerformStep(); + publishingOptions = this.publishingOptionsTB.Text; + pBar.PerformStep(); + + //store all of the variables in an array + //this array will be passed down to uploadForm2 + //this way we can close this form, but retain its contents + string[] inputs = {title, bodyEditSummary, name, nickname, email, organization, address, cityState, zipCode, country, + phoneNumber, cName, cNickname, cContribution, cEmail, cOrganization, cCountry, cPhoneNumber, + sSubject, sName, sComments, sID, references, tags, dataSourceDriver, driver, style, webservice, + style_ID, layer_ID, driverConfig, revisionInfo, authoringInfo, publishingOptions}; + + //close this form + this.Visible = false; + + printForm print = new printForm(this); + print.StartPosition = FormStartPosition.CenterScreen; + print.Visible = true; + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_time.resx b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_time.resx new file mode 100644 index 00000000..e646a09a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Forms/uploadForm1_time.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 17, 17 + + + 25 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/HydroDesktop.Plugins.HydroShare.csproj b/Source/Plugins/HydroDesktop.Plugins.HydroShare/HydroDesktop.Plugins.HydroShare.csproj new file mode 100644 index 00000000..95d0c82f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/HydroDesktop.Plugins.HydroShare.csproj @@ -0,0 +1,277 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {764FCBD2-3B42-4B77-818A-4D4115C66C1D} + Library + Properties + HydroDesktop.Plugins.HydroShare + HydroDesktop.Plugins.HydroShare + v4.0 + 512 + ..\..\ + true + + + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HydroShare\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.HydroShare\ + TRACE + prompt + 4 + + + + + + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + Lib\Ionic.Zlib.dll + + + + + + + + + + + + + + + + Form + + + chooseUploadType.cs + + + Form + + + addUserForm.cs + + + Form + + + downloadForm.cs + + + Form + + + editUserForm.cs + + + Form + + + gotoWeb.cs + + + Form + + + hydroshareLogIn.cs + + + Form + + + logIn.cs + + + Form + + + uploadForm1_other.cs + + + Form + + + uploadForm1_time.cs + + + + Form + + + passwordEntry.cs + + + Form + + + printForm.cs + + + + True + True + Resources.resx + + + Form + + + uploadForm1_geo.cs + + + + + + + + + + addUserForm.cs + + + chooseUploadType.cs + + + downloadForm.cs + + + editUserForm.cs + + + gotoWeb.cs + + + hydroshareLogIn.cs + + + passwordEntry.cs + + + printForm.cs + + + logIn.cs + + + uploadForm1_other.cs + + + uploadForm1_time.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + uploadForm1_geo.cs + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + + + + + + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/HydroDesktop.Plugins.HydroShare.nuspec b/Source/Plugins/HydroDesktop.Plugins.HydroShare/HydroDesktop.Plugins.HydroShare.nuspec new file mode 100644 index 00000000..f4009227 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/HydroDesktop.Plugins.HydroShare.nuspec @@ -0,0 +1,26 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/HydroSharePlugin.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/HydroSharePlugin.cs new file mode 100644 index 00000000..0d7c7152 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/HydroSharePlugin.cs @@ -0,0 +1,267 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using HydroDesktop.Common; +using HydroDesktop.Plugins.HydroShare.Properties; +using System.Diagnostics; +using System.IO; +using System.Windows.Forms; +using HydroDesktop.Plugins.HydroShare.Forms; + +namespace HydroDesktop.Plugins.HydroShare +{ + public class HydroSharePlugin : Extension + { + #region Fields + + //private SimpleActionItem test1; + //private SimpleActionItem test2; + private SimpleActionItem hydroShareDownload; + private SimpleActionItem hydroShareUpload; + private SimpleActionItem csHydroShareDownload; + private SimpleActionItem csHydroShareUpload; + private SimpleActionItem addUser; + private SimpleActionItem editUser; + + private readonly string _hydroShareKey = SharedConstants.HydroShareRootkey; + + #endregion + + #region Plugin operations + + public override void Activate() + { + AddHydroShareRibbon(); + base.Activate(); + + //App.HeaderControl.RootItemSelected += HeaderControl_RootItemSelected; + } + + public override void Deactivate() + { + + //App.HeaderControl.RootItemSelected -= HeaderControl_RootItemSelected; + + + App.HeaderControl.RemoveAll(); + base.Deactivate(); + } + + #endregion + + private void AddHydroShareRibbon() + { + var head = App.HeaderControl; + head.Add(new RootItem(_hydroShareKey, Resources.HydroShare) { SortOrder = 180 }); + + hydroShareDownload = new SimpleActionItem(_hydroShareKey, "Download", hydroShareDownload_Click) { LargeImage = Resources.Download_32x32, GroupCaption = "Python", Visible = true }; + hydroShareUpload = new SimpleActionItem(_hydroShareKey, "Upload", hydroShareUpload_Click) { LargeImage = Resources.Upload_32x32, GroupCaption = "Python", Visible = true }; + csHydroShareDownload = new SimpleActionItem(_hydroShareKey, "Download", csHydroShareDownload_Click) { LargeImage = Resources.Download_32x32, GroupCaption = "C#", Visible = true }; + csHydroShareUpload = new SimpleActionItem(_hydroShareKey, "Upload", csHydroShareUpload_Click) { LargeImage = Resources.Upload_32x32, GroupCaption = "C#", Visible = true }; + addUser = new SimpleActionItem(_hydroShareKey, "Add account", addUser_Click) { LargeImage = Resources.addUser_32x32, GroupCaption = "HydroShare account", Visible = true }; + editUser = new SimpleActionItem(_hydroShareKey, "Edit account", editUser_Click) { LargeImage = Resources.editUser_32x32, GroupCaption = "HydroShare account", Visible = true }; + + + head.Add(hydroShareDownload); + head.Add(hydroShareUpload); + head.Add(csHydroShareDownload); + head.Add(csHydroShareUpload); + head.Add(addUser); + head.Add(editUser); + } + + private void csHydroShareUpload_Click(object sender, EventArgs e) + { + logIn l = new logIn(); + l.StartPosition = FormStartPosition.CenterScreen; + l.Visible = true; + + //uploadForm1 form1 = new uploadForm1(); + //form1.StartPosition = FormStartPosition.CenterScreen; + //form1.Visible = true; + //throw new NotImplementedException(); + } + + private void csHydroShareDownload_Click(object sender, EventArgs e) + { + downloadForm hydroShareDownload = new downloadForm(); + hydroShareDownload.StartPosition = FormStartPosition.CenterScreen; + hydroShareDownload.Visible = true; + } + + private void hydroShareUpload_Click(object sender, EventArgs e) + { + MessageBox.Show("This button is only implemented in c#", "No Python", MessageBoxButtons.OK); + } + + private void addUser_Click(object sender, EventArgs e) + { + addUserForm addUser = new addUserForm(); + addUser.StartPosition = FormStartPosition.CenterScreen; + addUser.Visible = true; + + } + + private void editUser_Click(object sender, EventArgs e) + { + editUserForm editUser = new editUserForm(); + editUser.StartPosition = FormStartPosition.CenterScreen; + editUser.Visible = true; + } + + + /// + /// Should be called with all filepaths returned from the HydroShareDownload Python script. + /// As of now, all .shp files are found inside these filepaths and opened in HydroDesktop. + /// This will need to be expanded to support more data types. + /// + /// The FilePath to the downloaded data files. + private void openResult(String filePath) + { + //Open result is the method that gets called for each filepath returned from the Python script + + //We look for all files in all directories of the returned folder that are .shp. + //TODO: This will need to be expanded to look for TimeSeries and other filetypes. + String[] files = Directory.GetFiles(filePath, "*.shp", SearchOption.AllDirectories); + + //Iterate through the list of .shp files and try to open them in the map. + foreach (String f in files) + { + try + { + App.Map.AddLayer(f); + } + catch (Exception e) + { + Console.WriteLine("Error opening file: " + f); + Console.WriteLine(e.StackTrace); + } + } + } + + /// + /// Returns the location that the downloaded data files will be saved. + /// The CurrentProjectDirectory will be used if it is not null, + /// otherwise we will show a "Choose Folder" dialog and force the user + /// to decide where their data will be downloaded. + /// + /// The filepath to which the downloaded data will be returned. + private String retreiveSavePath() + { + //TODO: Need to make a more elegant way to decide save path. + //Also, if the user has a sample project open then the data will just get saved with the sample data files + //with the sample project files, this may or may not be desired. + + String save_path = null; + //Only ask user to choose a save location if the CurrentProjectDirectory is null + if (App.SerializationManager.CurrentProjectDirectory == null) + { + //shows choose folder dialog and sets it to save_path if the user did not cancel. + FolderBrowserDialog fbd = new FolderBrowserDialog(); + DialogResult result = fbd.ShowDialog(); + if (result.Equals(DialogResult.OK)) + { + save_path = fbd.SelectedPath; + } + } + else + { + save_path = App.SerializationManager.CurrentProjectDirectory; + } + return save_path; + } + + /// + /// This should probably be renamed. When clicked, open the HydroShareDownload dialog (python script) + /// and allow user to select which files to download. + /// + /// + /// + private void hydroShareDownload_Click(object sender, EventArgs e) + { + //Set the save_path to which we will save the downloaded files. + String save_path = retreiveSavePath(); + + //Only open the Python script if we know where we will be storing the files. + if (save_path != null) + { + //Setup the parameters for starting the cmd process. + ProcessStartInfo start = new ProcessStartInfo("python"); + //The python script is located in Plugins\HydroShare\Lib relative to the HydroDesktop executable. Pass this script to Python when we start the process. + String cmd = AppDomain.CurrentDomain.BaseDirectory + Path.Combine("Plugins", "HydroShare", "Lib", "HydroShareDownloadDialog.py"); + String args = save_path; + //Make sure we run the following command: python "path\to\HydroShareDownloadDialog.py" "path\to\savelocation" + start.Arguments = string.Format("\"{0}\" \"{1}\"", cmd, args); + start.UseShellExecute = false; + start.CreateNoWindow = true; + start.RedirectStandardOutput = true; + start.RedirectStandardError = true; + + //Start the python script as if from a command prompt. + Process process = new Process(); + process.StartInfo = start; + process.Start(); + + //Declare err and s. err holds Error output data from Python and s holds standard python output. + string err = null; + string s = null; + + //This while loop puts data from Python into s and err one line at a time. + //A single | is needed to make sure that BOTH statements below are evaluated before + //moving into the While loop. + while (((err = process.StandardError.ReadLine()) != null) + | ((s = process.StandardOutput.ReadLine()) != null)) + { + //If s is not null it means our Python script has returned some values. + if (s != null) + { + openResult(s); + } + + //If err is not null it means we have errors and should print those to the console for debugging. + if (err != null) + { + Console.WriteLine(err); + } + } + } + } + + /*ScriptRuntime ipy = Python.CreateRuntime(); + ScriptEngine engine = ipy.GetEngine("Python"); + var paths = engine.GetSearchPaths(); + paths.Add(@"C:\Program Files\IronPython 2.7"); + paths.Add(@"C:\Users\Student\Documents\HD-3\Binaries\Plugins\HydroShare\Lib"); + engine.SetSearchPaths(paths); + + + dynamic test = ipy.ExecuteFile(System.IO.Path.Combine("Plugins", "HydroShare", "Lib", "GetShapefilesFromHydroShareMyFrame1.py")); + + test.test(); + //dynamic test = ipy.UseFile(@"C:\Users\Cuyler Frisby\Documents\Python\bagit-1.2.1\bagit.py"); + + /*dynamic test = ipy.ExecuteFile(System.IO.Path.Combine("Plugins", "HydroShare", "Lib", "hydrosharedownload.py")); + IList originalResult = (IList)test.retrieveList(); + List typeSafeResult = new List(); + foreach (object element in originalResult) + { + typeSafeResult.Add((string)element); + } + String x = typeSafeResult[0];*/ + + + /*public class dynamic_demo + { + static void Main() + { + // var ipy = Python.CreateRuntime(); + // dynamic test = ipy.UseFile("Test.py"); + //test.Simple(); + } + }*/ + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Lib/GetShapefiles.py b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Lib/GetShapefiles.py new file mode 100644 index 00000000..4f5bc4be --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Lib/GetShapefiles.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- + +########################################################################### +## Python code generated with wxFormBuilder (version Aug 25 2009) +## http://www.wxformbuilder.org/ +## +## PLEASE DO "NOT" EDIT THIS FILE! +########################################################################### + +import wx + +########################################################################### +## Class MyFrame1 +########################################################################### + +class MyFrame1 ( wx.Frame ): + + def __init__( self, parent ): + wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = u"Find Shapefile on HydroShare", pos = wx.DefaultPosition, size = wx.Size( 289,381 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL ) + + self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize ) + + bSizer1 = wx.BoxSizer( wx.VERTICAL ) + + cmb_FilterSearchChoices = [] + self.cmb_FilterSearch = wx.ComboBox( self, wx.ID_ANY, u"Filter Search ...", wx.DefaultPosition, wx.DefaultSize, cmb_FilterSearchChoices, 0 ) + bSizer1.Add( self.cmb_FilterSearch, 0, wx.ALL|wx.EXPAND, 5 ) + + lst_AvailableItemsChoices = [] + self.lst_AvailableItems = wx.ListBox( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, lst_AvailableItemsChoices, wx.LB_MULTIPLE|wx.LB_NEEDED_SB ) + bSizer1.Add( self.lst_AvailableItems, 1, wx.ALL|wx.EXPAND, 5 ) + + self.gag_ProgressBar = wx.Gauge( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.GA_HORIZONTAL ) + bSizer1.Add( self.gag_ProgressBar, 0, wx.ALL|wx.EXPAND, 5 ) + + bSizer3 = wx.BoxSizer( wx.HORIZONTAL ) + + self.btn_cancel = wx.Button( self, wx.ID_ANY, u"Cancel", wx.DefaultPosition, wx.DefaultSize, 0 ) + bSizer3.Add( self.btn_cancel, 1, wx.ALL, 5 ) + + self.btn_GetData = wx.Button( self, wx.ID_ANY, u"Get Data", wx.DefaultPosition, wx.DefaultSize, 0 ) + bSizer3.Add( self.btn_GetData, 1, wx.ALL, 5 ) + + bSizer1.Add( bSizer3, 0, wx.EXPAND, 5 ) + + self.SetSizer( bSizer1 ) + self.Layout() + + # Connect Events + self.cmb_FilterSearch.Bind( wx.EVT_COMBOBOX, self.clk_FilterSearch ) + self.btn_cancel.Bind( wx.EVT_BUTTON, self.clk_Cancel ) + self.btn_GetData.Bind( wx.EVT_BUTTON, self.clk_GetData ) + + def __del__( self ): + pass + + + # Virtual event handlers, overide them in your derived class + + def clk_FilterSearch( self, event ): + event.Skip() + + def clk_Cancel( self, event ): + event.Skip() + + def clk_GetData( self, event ): + event.Skip() + + diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Lib/HydroShareDownloadDialog.py b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Lib/HydroShareDownloadDialog.py new file mode 100644 index 00000000..1bc9eed2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Lib/HydroShareDownloadDialog.py @@ -0,0 +1,91 @@ +"""Subclass of MyFrame1, which is generated by wxFormBuilder.""" + +import wx +import GetShapefiles +import hydrosharedownload +import sys +import urllib2 +import json +import time + +# Implementing MyFrame1 +class HydroShareDownloadDialog( GetShapefiles.MyFrame1 ): + hydrosharedownloader = None + + def __init__( self, parent ): + GetShapefiles.MyFrame1.__init__( self, parent ) + self.hydrosharedownloader = hydrosharedownload.HydroshareDownloader() + self.gag_ProgressBar.Show(False) + + def populateList(self): + filtered_files = self.hydrosharedownloader.retrieveList(self.cmb_FilterSearch.GetStringSelection()) + i=0 + for item in filtered_files: + self.lst_AvailableItems.Insert(item, i) + i+=1 + + def populateFilterSearch(self): + + self.cmb_FilterSearch.Insert("All", 0) + + #Load the data from the url into data + data = urllib2.urlopen("http://dev.hydroshare.org/?q=my_services/node.json&api-key=581d46dd") + + #Turn the data from a raw string into JSON + all_files = json.load(data) + + resource_types = [] + usableResourceTypes = ["hydroshare_geoanalytics", "hydroshare_time_series"] + + #Look through all nodes in the JSON data + for file in all_files: + + #Cycle through the files and extract unique resource types to add to resource_types + if (file["type"] not in resource_types and file["type"] in usableResourceTypes): + resource_types.append(file["type"]) + i=1 + for item in resource_types: + self.cmb_FilterSearch.Insert(item, i) + i+=1 + + # Handlers for MyFrame1 events. + def clk_FilterSearch( self, event ): + self.lst_AvailableItems.Clear() + self.populateList() + + def clk_Cancel( self, event ): + self.Close() + + def ProgressBar(self): + self.gag_ProgressBar.Show() + self.Update() + for n in range(100): + time.sleep(0.01) + self.gag_ProgressBar.Pulse() + self.Update() + + def clk_GetData( self, event ): + self.ProgressBar() + if self.lst_AvailableItems.GetSelections() >= 0: + selected_items = [] + selected_items = self.lst_AvailableItems.GetSelections() + for item in selected_items: + self.hydrosharedownloader.downloadFile(self.lst_AvailableItems.GetString(item)) + self.Close() + +def open(): + app = wx.App(0) + + frame = HydroShareDownloadDialog(None) + frame.Show() + frame.populateList() + frame.populateFilterSearch() + + #If there is an argument provided when running this, set it as our downloader's savepath. + if len(sys.argv) > 1: + frame.hydrosharedownloader.file_path = sys.argv[1] + app.MainLoop() + +if __name__ == '__main__': + open() + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Lib/Ionic.Zlib.dll b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Lib/Ionic.Zlib.dll new file mode 100644 index 00000000..0afce7f2 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Lib/Ionic.Zlib.dll differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Lib/hydrosharedownload.py b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Lib/hydrosharedownload.py new file mode 100644 index 00000000..51facd79 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Lib/hydrosharedownload.py @@ -0,0 +1,121 @@ +import urllib2 +import os +import json +import zipfile +import shutil + +class HydroshareDownloader(): + #base_url points to the Export.php script that packages data files for download. + base_url="http://dev.hydroshare.org/export.php?file=http://dev.hydroshare.org/sites/default/files/{0}.zip" + + #The url from which a list of available resources can be found + list_url="http://dev.hydroshare.org/?q=my_services/node.json&api-key=581d46dd" + + #Local filepath where the downloaded files will be saved + file_path="" + + def downloadFile(self, resource): + '''Downloads a file with given name from HydroShare and saves it to the specified location.''' + + #Remove spaces from Resource name + resource = resource.replace(" ", "") + print resource + + #Combine the Save folder with the resource name + save_loc = os.path.join(self.file_path, resource + ".zip") + + #Download and save the file + file = urllib2.urlopen(self.base_url.format(resource)) + with open(save_loc, "wb") as code: + code.write(file.read()) + + #Unzip the data in save_loc with the given name resource. + self.unzipData(save_loc, resource) + + def retrieveList(self, filter=""): + '''Download list of files as JSON string and filters it to return list of available files.''' + #Optional filter argument could later be used to know which list to return. + + #Load the data from the url into data + data = urllib2.urlopen(self.list_url) + + #Turn the data from a raw string into JSON + all_files = json.load(data) + + #Filtered_files is used as a hack to filter the list to see just the files we want + filtered_files = [] + usableResourceTypes = ["hydroshare_geoanalytics", "hydroshare_time_series"] + + #This block of code determines which resources will show in the list box based on the filter criteria + if filter == "" or filter == "All": + for file in all_files: + if file["type"] in usableResourceTypes: + filtered_files.append(file["title"]) + + else: + for file in all_files: + if filter == file["type"]: + filtered_files.append(file["title"]) + + return filtered_files + + def unzipData(self, saved_loc, resource): + '''Unzip the downloaded files and move them to a permanent home''' + #Create a ZipFile object from the saved file. + zipped = zipfile.ZipFile(saved_loc) + + #Create two folders, one temporary "result" folder and one folder with the same name as the resource. + #The final_save_path folder named after the resource will be used to store the data files that are extracted. + temp_path = os.path.join(self.file_path, "hydro_share_download_result_temp_folder") + final_save_path = os.path.join(self.file_path, resource) + + #If the temp folder exists does just delete it. + if os.path.exists(temp_path): + shutil.rmtree(temp_path) + os.makedirs(temp_path) + + #Make sure the final save path folder doesn't exist already before we create it + #TODO: If the folder does already exist (for example, if the user already downloaded this data), + #then we are simply going to overwrite any files that we download with the same name. + #This might not be ideal. + if not os.path.exists(final_save_path): + os.makedirs(final_save_path) + + #Extract all files to the temporary folder and then close the file. + zipped.extractall(temp_path) + zipped.close() + + #Check if there is another .zip file containing the data, if so, unzip it to the final folder. + for f in os.listdir(os.path.join(temp_path, "data")): + #Extract any and all files with .zip that we find in the results/data folder. + if f.endswith(".zip"): + data_zipped = zipfile.ZipFile(os.path.join(temp_path, "data", f)) + #Extract these files to the final save folder, then close the zip file. + data_zipped.extractall(final_save_path) + data_zipped.close() + #Print the filepath of the final save folder back to HydroDesktop so Hydrodesktop knows where to look for files + print final_save_path + #Copy metadata file to the final_save_path + shutil.copyfile(os.path.join(temp_path, "data", "sciencemetadata.xml"), os.path.join(final_save_path, "sciencemetadata.xml")) + #Remove the temporary folder when finished. + shutil.rmtree(temp_path) + + def test(self): + '''Test this script.''' + self.test_retrieveList() + self.test_downloadFile() + + def test_downloadFile(self): + '''Test method that saves a test file to same folder as script''' + self.downloadFile("EdgarRanchComparisonTest1") + + def test_retrieveList(self): + '''Test method that retrieves and prints the list of files from HydroShare''' + list = self.retrieveList() + for file in list: + print(file) + +#Run test when script is run from the command line +if __name__ == '__main__': + tester = HydroshareDownloader() + tester.test() \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..dfab5077 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.HydroShare")] +[assembly: AssemblyDescription("HydroDesktop HydroShare Plugin")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Hewlett-Packard Company")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.HydroShare")] +[assembly: AssemblyCopyright("Copyright © Hewlett-Packard Company 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("17fc6444-1a32-4755-a2f1-5aedabc57e53")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Properties/Resources.Designer.cs new file mode 100644 index 00000000..59428875 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Properties/Resources.Designer.cs @@ -0,0 +1,162 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.HydroShare.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.HydroShare.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap addUser_32x32 { + get { + object obj = ResourceManager.GetObject("addUser_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Download_32x32 { + get { + object obj = ResourceManager.GetObject("Download_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap editUser_32x32 { + get { + object obj = ResourceManager.GetObject("editUser_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap errorImage { + get { + object obj = ResourceManager.GetObject("errorImage", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap errorImage1 { + get { + object obj = ResourceManager.GetObject("errorImage1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap HydroDesktopSplashLogo { + get { + object obj = ResourceManager.GetObject("HydroDesktopSplashLogo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to HydroShare. + /// + internal static string HydroShare { + get { + return ResourceManager.GetString("HydroShare", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap hydroshare_logo { + get { + object obj = ResourceManager.GetObject("hydroshare_logo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap hydroshare_logo1 { + get { + object obj = ResourceManager.GetObject("hydroshare_logo1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Upload_32x32 { + get { + object obj = ResourceManager.GetObject("Upload_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Properties/Resources.resx new file mode 100644 index 00000000..a2274e02 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Properties/Resources.resx @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\hydroshare_logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\errorImage.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Upload_32x32.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Download_32x32.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\HydroDesktopSplashLogo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\addUser_32x32.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\errorImage1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\editUser_32x32.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + HydroShare + + + ..\Resources\hydroshare_logo1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/Download_32x32.jpg b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/Download_32x32.jpg new file mode 100644 index 00000000..d70c9a01 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/Download_32x32.jpg differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/HydroDesktopSplashLogo.png b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/HydroDesktopSplashLogo.png new file mode 100644 index 00000000..6a9a4c51 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/HydroDesktopSplashLogo.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/Slate-slate_icons-printer.ico-96x96.png b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/Slate-slate_icons-printer.ico-96x96.png new file mode 100644 index 00000000..e5e25727 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/Slate-slate_icons-printer.ico-96x96.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/Upload_32x32.jpg b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/Upload_32x32.jpg new file mode 100644 index 00000000..e335756b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/Upload_32x32.jpg differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/addUser_256x256.jpg b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/addUser_256x256.jpg new file mode 100644 index 00000000..2fd01efa Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/addUser_256x256.jpg differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/addUser_32x32.jpg b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/addUser_32x32.jpg new file mode 100644 index 00000000..39e2a81a Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/addUser_32x32.jpg differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/editUser_32x32.jpg b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/editUser_32x32.jpg new file mode 100644 index 00000000..039794de Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/editUser_32x32.jpg differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/errorImage.png b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/errorImage.png new file mode 100644 index 00000000..f169a92e Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/errorImage.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/errorImage1.png b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/errorImage1.png new file mode 100644 index 00000000..203fb23b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/errorImage1.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/hydroshare_logo.png b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/hydroshare_logo.png new file mode 100644 index 00000000..181686db Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/hydroshare_logo.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/hydroshare_logo1.png b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/hydroshare_logo1.png new file mode 100644 index 00000000..fa333b16 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/hydroshare_logo1.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/pencil.jpg b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/pencil.jpg new file mode 100644 index 00000000..51cc5698 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.HydroShare/Resources/pencil.jpg differ diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/RestClient.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/RestClient.cs new file mode 100644 index 00000000..7923b769 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/RestClient.cs @@ -0,0 +1,105 @@ +using System; +using System.IO; +using System.Net; +using System.Text; + +public enum HttpVerb +{ + GET, + POST, + PUT, + DELETE +} + +namespace HydroDesktop.Plugins.HydroShare +{ + public class RestClient + { + public string EndPoint { get; set; } + public HttpVerb Method { get; set; } + public string ContentType { get; set; } + public string PostData { get; set; } + + public RestClient() + { + EndPoint = ""; + Method = HttpVerb.GET; + ContentType = "text/xml"; + PostData = ""; + } + public RestClient(string endpoint) + { + EndPoint = endpoint; + Method = HttpVerb.GET; + ContentType = "text/xml"; + PostData = ""; + } + public RestClient(string endpoint, HttpVerb method) + { + EndPoint = endpoint; + Method = method; + ContentType = "text/xml"; + PostData = ""; + } + + public RestClient(string endpoint, HttpVerb method, string postData) + { + EndPoint = endpoint; + Method = method; + ContentType = "text/xml"; + PostData = postData; + } + + + public string MakeRequest() + { + return MakeRequest(""); + } + + public string MakeRequest(string parameters) + { + var request = (HttpWebRequest)WebRequest.Create(EndPoint + parameters); + + request.Method = Method.ToString(); + request.ContentLength = 0; + request.ContentType = ContentType; + + if (!string.IsNullOrEmpty(PostData) && Method == HttpVerb.POST) + { + var encoding = new UTF8Encoding(); + var bytes = Encoding.GetEncoding("iso-8859-1").GetBytes(PostData); + request.ContentLength = bytes.Length; + + using (var writeStream = request.GetRequestStream()) + { + writeStream.Write(bytes, 0, bytes.Length); + } + } + + using (var response = (HttpWebResponse)request.GetResponse()) + { + var responseValue = string.Empty; + + if (response.StatusCode != HttpStatusCode.OK) + { + var message = String.Format("Request failed. Received HTTP {0}", response.StatusCode); + throw new ApplicationException(message); + } + + // grab the response + using (var responseStream = response.GetResponseStream()) + { + if (responseStream != null) + using (var reader = new StreamReader(responseStream)) + { + responseValue = reader.ReadToEnd(); + } + } + + return responseValue; + } + } + + } // class + +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/inputBoxTest.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/inputBoxTest.Designer.cs new file mode 100644 index 00000000..283a95fc --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/inputBoxTest.Designer.cs @@ -0,0 +1,61 @@ +namespace HydroShare +{ + partial class inputBoxTest + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.webBrowser1 = new System.Windows.Forms.WebBrowser(); + this.SuspendLayout(); + // + // webBrowser1 + // + this.webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill; + this.webBrowser1.Location = new System.Drawing.Point(0, 0); + this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20); + this.webBrowser1.Name = "webBrowser1"; + this.webBrowser1.Size = new System.Drawing.Size(1074, 620); + this.webBrowser1.TabIndex = 0; + this.webBrowser1.Url = new System.Uri("http://www.google.com", System.UriKind.Absolute); + this.webBrowser1.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.webBrowser1_DocumentCompleted); + // + // inputBoxTest + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1074, 620); + this.Controls.Add(this.webBrowser1); + this.Name = "inputBoxTest"; + this.Text = "inputBoxTest"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.WebBrowser webBrowser1; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/inputBoxTest.cs b/Source/Plugins/HydroDesktop.Plugins.HydroShare/inputBoxTest.cs new file mode 100644 index 00000000..23b0aa97 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/inputBoxTest.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace HydroShare +{ + public partial class inputBoxTest : Form + { + public inputBoxTest() + { + InitializeComponent(); + } + + void SetText(string attribute, string attName, string value) + { + HtmlElementCollection col = webBrowser1.Document.GetElementsByTagName("input"); + + foreach (HtmlElement element in col) + { + if (element.GetAttribute(attribute).Equals(attName)) + element.SetAttribute("value", value); + } + } + + void ClickButton(string attribute, string attName) + { + HtmlElementCollection col = webBrowser1.Document.GetElementsByTagName("input"); + + foreach (HtmlElement element in col) + { + if (element.GetAttribute(attribute).Equals(attName)) + element.InvokeMember("click"); + } + + } + + private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) + { + // "q" is the name of the Google search textbox + + SetText("name", "q", "Dog"); + + // "btnG" is the name of the Google search submit button + + ClickButton("name", "btnK"); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/inputBoxTest.resx b/Source/Plugins/HydroDesktop.Plugins.HydroShare/inputBoxTest.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/inputBoxTest.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.HydroShare/packages.config b/Source/Plugins/HydroDesktop.Plugins.HydroShare/packages.config new file mode 100644 index 00000000..3f43a534 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.HydroShare/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/AttributeTableManager.cs b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/AttributeTableManager.cs new file mode 100644 index 00000000..e595333b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/AttributeTableManager.cs @@ -0,0 +1,234 @@ +using System; +using System.Linq; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Symbology; +using DotSpatial.Controls.Header; +using HydroDesktop.Common.Controls; +using HydroDesktop.Common.Tools; +using HydroDesktop.Plugins.MainPlugin.Properties; + +namespace HydroDesktop.Plugins.MainPlugin +{ + /// + /// This class is responsible for managing the buttons + /// and context menus for launching the attribute data explorer + /// + public class AttributeTableManager + { + AppManager App { get; set; } + private SimpleActionItem _btnAttributeTable; + private bool _showTableManagerPanel; + + public AttributeTableManager(AppManager app) + { + App = app; + Activate(); + } + + + //context menu item name + //TODO: make this localizable + const string contextMenuItemName = "View Attribute Table"; + + public void Activate() + { + App.HeaderControl.Add(_btnAttributeTable = new SimpleActionItem(HeaderControl.HomeRootItemKey, "View Attribute Table", AttributeTable_Click) { GroupCaption = "Map Tool", SmallImage = Resources.table_16x16, LargeImage = Resources.table_32x32, Enabled = true, ToggleGroupKey = "table" }); + App.Map.LayerAdded += Map_LayerAdded; + App.SerializationManager.Deserializing += SerializationManager_Deserializing; + App.DockManager.PanelHidden += DockManager_PanelHidden; + ; + App.DockManager.ActivePanelChanged += DockManager_ActivePanelChanged; + + _showTableManagerPanel = false; + + // TODO: if layers were loaded before this plugin, do something about adding them to the context menu. + //base.Activate(); + } + + void DockManager_ActivePanelChanged(object sender, DotSpatial.Controls.Docking.DockablePanelEventArgs e) + { + if (e.ActivePanelKey.Equals("kDataExplorer")) + { + + if (!_showTableManagerPanel) + { + _btnAttributeTable.Toggle(); + } + _showTableManagerPanel = true; + } + } + + void DockManager_PanelHidden(object sender, DotSpatial.Controls.Docking.DockablePanelEventArgs e) + { + if (e.ActivePanelKey == "kDataExplorer") + { + + if (_showTableManagerPanel) + { + _btnAttributeTable.Toggle(); + } + _showTableManagerPanel = false; + } + } + + private void SerializationManager_Deserializing(object sender, SerializingEventArgs e) + { + // context menu items are added to layers when opening a project + // this call is necessary because the LayerAdded event doesn't fire when a project is opened. + foreach (ILayer layer in App.Map.MapFrame.GetAllLayers()) + { + IFeatureLayer fl = layer as IFeatureLayer; + if (fl != null) + { + if (!fl.ContextMenuItems.Exists(item => item.Name == contextMenuItemName)) + { + // add context menu item. + var menuItem = new SymbologyMenuItem(contextMenuItemName, delegate { ShowAttributes(fl); }); + menuItem.Image = Resources.table_16x16; + fl.ContextMenuItems.Insert(2, menuItem); + } + } + } + //attach layer added events to existing groups + foreach (var grp in App.Map.MapFrame.GetAllGroups()) + { + grp.LayerAdded += Map_LayerAdded; + } + } + + private void Map_LayerAdded(object sender, LayerEventArgs e) + { + if (e.Layer == null) + return; + + AddContextMenuItems(e.Layer); + } + + private void AddContextMenuItems(ILayer addedLayer) + { + IMapGroup grp = addedLayer as IMapGroup; + if (grp != null) + { + // map.layerAdded event doesn't fire for groups. Therefore, it's necessary + // to handle this event separately for groups. + grp.LayerAdded += Map_LayerAdded; + } + + if (addedLayer == null || addedLayer.ContextMenuItems == null || addedLayer.ContextMenuItems.Exists(item => item.Name == contextMenuItemName)) + { + // assume menu item already exists. Do nothing. + return; + } + + // add context menu item. + var menuItem = new SymbologyMenuItem(contextMenuItemName, delegate { ShowAttributes(addedLayer as IFeatureLayer); }); + menuItem.Image = Resources.table_16x16; + addedLayer.ContextMenuItems.Insert(2, menuItem); + } + + public void Deactivate() + { + App.HeaderControl.RemoveAll(); + + // detach events + DetachLayerAddedEvents(); + App.SerializationManager.Deserializing -= SerializationManager_Deserializing; + // remove context menu items. + RemoveContextMenuItems(); + } + + private void DetachLayerAddedEvents() + { + App.Map.LayerAdded -= Map_LayerAdded; + foreach (var grp in App.Map.MapFrame.GetAllGroups()) + { + grp.LayerAdded -= Map_LayerAdded; + } + } + + private void RemoveContextMenuItems() + { + foreach (ILayer lay in App.Map.MapFrame.GetAllLayers()) + { + if (lay.ContextMenuItems.Exists(item => item.Name == contextMenuItemName)) + { + lay.ContextMenuItems.Remove(lay.ContextMenuItems.First(item => item.Name == contextMenuItemName)); + return; + } + } + } + + private bool ShowAttributes(IFeatureLayer layer) + { + bool isActive = false; + + if (layer != null) + { + layer.IsSelected = true; + App.DockManager.SelectPanel("kDataExplorer"); + isActive = true; + } + + return isActive; + } + + /// + /// Open attribute table + /// + private void AttributeTable_Click(object sender, EventArgs e) + { + _showTableManagerPanel = !_showTableManagerPanel; + + if (_showTableManagerPanel) + { + var featureLayers = App.Map.MapFrame.GetAllLayers() + .OfType() + .Reverse().ToList(); + + var isActive = false; + foreach (var fl in featureLayers.Where(l => l.IsSelected)) + { + isActive = ShowAttributes(fl); + if (isActive) + break; + } + + // No selected layers in feature layers + if (!isActive) + { + IFeatureLayer toSelect = null; + if (featureLayers.Count == 1) + { + toSelect = featureLayers[0]; + } + else + { + var sf = new SelectFeatureLayer(featureLayers); + if (sf.ShowDialog(App.Map.MapFrame.Parent) == DialogResult.OK) + { + toSelect = sf.SelectedLayer; + } + } + if (toSelect != null) + { + App.Legend.ForEachRecursively(d => d.IsSelected = false); + toSelect.IsSelected = true; + App.Legend.RefreshNodes(); + isActive = ShowAttributes(toSelect); + } + } + + if (isActive == false) + { + _showTableManagerPanel = !_showTableManagerPanel; + _btnAttributeTable.Toggle(); + } + } + else + { + App.DockManager.HidePanel("kDataExplorer"); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/CoordinateDisplay.cs b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/CoordinateDisplay.cs new file mode 100644 index 00000000..a4bdb433 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/CoordinateDisplay.cs @@ -0,0 +1,154 @@ +using System; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using DotSpatial.Projections; +using DotSpatial.Topology; + +namespace HydroDesktop.Plugins.MainPlugin +{ + /// + /// This class is responsible for + /// displaying the Lat, Lon coordinates + /// in the status bar + /// + public class CoordinateDisplay + { + private Map mainMap = null; + private AppManager mainApp = null; + + ProjectionInfo wgs84Projection = ProjectionInfo.FromEsriString(Properties.Resources.wgs_84_esri_string); + ProjectionInfo currentMapProjection = null; + StatusPanel latLonStatusPanel = null; + bool isWgs84 = true; + bool _showCoordinates = false; + + public CoordinateDisplay(AppManager app) + { + latLonStatusPanel = new StatusPanel(); + latLonStatusPanel.Width = 400; + app.ProgressHandler.Add(latLonStatusPanel); + + mainApp = app; + mainMap = app.Map as Map; + if (mainMap == null) return; + + string mapProjEsriString = mainMap.Projection.ToEsriString(); + isWgs84 = (mapProjEsriString == Properties.Resources.wgs_84_esri_string); + currentMapProjection = ProjectionInfo.FromEsriString(mapProjEsriString); + + mainMap.MouseMove +=mainMap_MouseMove; + mainMap.ProjectionChanged += mainMap_ProjectionChanged; + } + + void mainMap_ProjectionChanged(object sender, EventArgs e) + { + string mapProjEsriString = mainMap.Projection.ToEsriString(); + isWgs84 = (mapProjEsriString == Properties.Resources.wgs_84_esri_string); + currentMapProjection = ProjectionInfo.FromEsriString(mapProjEsriString); + } + + public bool ShowCoordinates + { + get + { + return _showCoordinates; + } + set + { + _showCoordinates = value; + + if (_showCoordinates == false) + { + //mainApp.ProgressHandler.Remove( + latLonStatusPanel.Caption = String.Empty; + } + else + { + //mainApp.ProgressHandler.Add(latLonStatusPanel); + } + //latLonStatusPanel.Caption = String.Empty; + } + } + + public string MapProjectionString + { + get { return currentMapProjection.ToEsriString(); } + set + { + currentMapProjection = ProjectionInfo.FromEsriString(value); + isWgs84 = (currentMapProjection.ToEsriString() == Properties.Resources.wgs_84_esri_string); + } + } + + #region Coordinate Display + + private void mainMap_MouseMove(object sender, MouseEventArgs e) + { + if (!ShowCoordinates) + { + return; + } + + var projCor = new Coordinate(); + var _mouseLocation = new System.Drawing.Point(); + _mouseLocation.X = e.X; + _mouseLocation.Y = e.Y; + projCor = mainMap.PixelToProj(_mouseLocation); + + var xy = new double[2]; + xy[0] = projCor.X; + xy[1] = projCor.Y; + + var z = new double[1]; + if (!isWgs84) + { + Reproject.ReprojectPoints(xy, z, currentMapProjection, wgs84Projection, 0, 1); + } + + //Convert to Degrees Minutes Seconds + double[] coord = new double[2]; + coord[0] = Math.Abs(xy[0]); + coord[1] = Math.Abs(xy[1]); + + double[] d = new double[2]; + double[] m = new double[2]; + double[] s = new double[2]; + + d[0] = Math.Floor(coord[0]); + coord[0] -= d[0]; + coord[0] *= 60; + + m[0] = Math.Floor(coord[0]); + coord[0] -= m[0]; + coord[0] *= 60; + + s[0] = Math.Floor(coord[0]); + + d[1] = Math.Floor(coord[1]); + coord[1] -= d[1]; + coord[1] *= 60; + + m[1] = Math.Floor(coord[1]); + coord[1] -= m[1]; + coord[1] *= 60; + + s[1] = Math.Floor(coord[1]); + + string Long; + string Lat; + + if (projCor.X > 0) Long = "E"; + else if (projCor.X < 0) Long = "W"; + else Long = " "; + + if (projCor.Y > 0) Lat = "N"; + else if (projCor.Y < 0) Lat = "S"; + else Lat = " "; + + latLonStatusPanel.Caption = "Longitude: " + d[0].ToString() + "°" + m[0].ToString("00") + "'" + s[0].ToString("00") + "\"" + Long + ", Latitude: " + d[1].ToString() + "°" + m[1].ToString("00") + "'" + s[1].ToString("00") + "\"" + Lat; + } + + #endregion Coordinate Display + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/CustomButton.cs b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/CustomButton.cs new file mode 100644 index 00000000..feaca79d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/CustomButton.cs @@ -0,0 +1,778 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace HydroDesktop.Plugins.MainPlugin +{ + using System; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Design; + using System.Windows.Forms; + using System.Windows.Forms.Design; + using System.Security.Permissions; + + [System.Flags] + public enum Corners + { + None = 0, + TopLeft = 1, + TopRight = 2, + BottomLeft = 4, + BottomRight = 8, + All = TopLeft | TopRight | BottomLeft | BottomRight + } + + + public enum CustomButtonState + { + Normal = 1, + Hot, + Pressed, + Disabled, + Focused + } + + + public class CustomButton : Control, IButtonControl + { + public CustomButton() + : base() + { + this.SetStyle(ControlStyles.Selectable | ControlStyles.StandardClick | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint | ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.SupportsTransparentBackColor, true); + } + + + #region Private Instance Variables + + private DialogResult m_DialogResult; + private bool m_IsDefault; + + private int m_CornerRadius = 8; + private Corners m_RoundCorners; + private CustomButtonState m_ButtonState = CustomButtonState.Normal; + + private ContentAlignment m_ImageAlign = ContentAlignment.MiddleCenter; + private ContentAlignment m_TextAlign = ContentAlignment.MiddleCenter; + private ImageList m_ImageList; + private int m_ImageIndex = -1; + + private bool keyPressed; + private Rectangle contentRect; + + #endregion + + #region IButtonControl Implementation + + [Category("Behavior"), DefaultValue(typeof(DialogResult), "None")] + [Description("The dialog result produced in a modal form by clicking the button.")] + public DialogResult DialogResult + { + get { return m_DialogResult; } + set + { + if (Enum.IsDefined(typeof(DialogResult), value)) + m_DialogResult = value; + } + } + + + public void NotifyDefault(bool value) + { + if (m_IsDefault != value) + m_IsDefault = value; + this.Invalidate(); + } + + + public void PerformClick() + { + if (this.CanSelect) + base.OnClick(EventArgs.Empty); + } + + + #endregion + + #region Properties + + //ButtonState + [Browsable(false)] + public CustomButtonState ButtonState + { + get { return m_ButtonState; } + } + + + //CornerRadius + [Category("Appearance")] + [DefaultValue(8)] + [Description("Defines the radius of the controls RoundedCorners.")] + public int CornerRadius + { + get { return m_CornerRadius; } + set + { + if (m_CornerRadius == value) + return; + m_CornerRadius = value; + this.Invalidate(); + } + } + + + //DefaultSize + protected override System.Drawing.Size DefaultSize + { + get { return new Size(75, 23); } + } + + + //IsDefault + [Browsable(false)] + public bool IsDefault + { + get { return m_IsDefault; } + } + + + //ImageList + [Category("Appearance"), DefaultValue(typeof(ImageList), null)] + [Description("The image list to get the image to display in the face of the control.")] + public ImageList ImageList + { + get { return m_ImageList; } + set + { + m_ImageList = value; + this.Invalidate(); + } + } + + + //ImageIndex + [Category("Appearance"), DefaultValue(-1)] + [Description("The index of the image in the image list to display in the face of the control.")] + [TypeConverter(typeof(ImageIndexConverter))] + [Editor("System.Windows.Forms.Design.ImageIndexEditor, System.Design", typeof(System.Drawing.Design.UITypeEditor))] + public int ImageIndex + { + get { return m_ImageIndex; } + set + { + m_ImageIndex = value; + this.Invalidate(); + } + } + + + //ImageAlign + [Category("Appearance"), DefaultValue(typeof(ContentAlignment), "MiddleCenter")] + [Description("The alignment of the image that will be displayed in the face of the control.")] + public ContentAlignment ImageAlign + { + get { return m_ImageAlign; } + set + { + if (!Enum.IsDefined(typeof(ContentAlignment), value)) + throw new InvalidEnumArgumentException("value", (int)value, typeof(ContentAlignment)); + if (m_ImageAlign == value) + return; + m_ImageAlign = value; + this.Invalidate(); + } + } + + + //RoundCorners + [Category("Appearance")] + [DefaultValue(typeof(Corners), "None")] + [Description("Gets/sets the corners of the control to round.")] + [Editor(typeof(RoundCornersEditor), typeof(UITypeEditor))] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] + public Corners RoundCorners + { + get { return m_RoundCorners; } + set + { + if (m_RoundCorners == value) + return; + m_RoundCorners = value; + this.Invalidate(); + } + } + + + //TextAlign + [Category("Appearance"), DefaultValue(typeof(ContentAlignment), "MiddleCenter")] + [Description("The alignment of the text that will be displayed in the face of the control.")] + public ContentAlignment TextAlign + { + get { return m_TextAlign; } + set + { + if (!Enum.IsDefined(typeof(ContentAlignment), value)) + throw new InvalidEnumArgumentException("value", (int)value, typeof(ContentAlignment)); + if (m_TextAlign == value) + return; + m_TextAlign = value; + this.Invalidate(); + } + } + + + #endregion + + #region Overriden Methods + + protected override void OnKeyDown(KeyEventArgs e) + { + base.OnKeyDown(e); + if (e.KeyCode == Keys.Space) + { + keyPressed = true; + m_ButtonState = CustomButtonState.Pressed; + } + OnStateChange(EventArgs.Empty); + } + + + protected override void OnKeyUp(KeyEventArgs e) + { + base.OnKeyUp(e); + if (e.KeyCode == Keys.Space) + { + if (this.ButtonState == CustomButtonState.Pressed) + this.PerformClick(); + keyPressed = false; + m_ButtonState = CustomButtonState.Focused; + } + OnStateChange(EventArgs.Empty); + } + + + protected override void OnMouseEnter(EventArgs e) + { + base.OnMouseEnter(e); + if (!keyPressed) + m_ButtonState = CustomButtonState.Hot; + OnStateChange(EventArgs.Empty); + } + + + protected override void OnMouseLeave(EventArgs e) + { + base.OnMouseLeave(e); + if (!keyPressed) + if (this.IsDefault) + m_ButtonState = CustomButtonState.Focused; + else + m_ButtonState = CustomButtonState.Normal; + OnStateChange(EventArgs.Empty); + } + + + protected override void OnMouseDown(MouseEventArgs e) + { + base.OnMouseDown(e); + if (e.Button == MouseButtons.Left) + { + this.Focus(); + m_ButtonState = CustomButtonState.Pressed; + } + OnStateChange(EventArgs.Empty); + } + + + protected override void OnMouseUp(MouseEventArgs e) + { + base.OnMouseUp(e); + m_ButtonState = CustomButtonState.Focused; + OnStateChange(EventArgs.Empty); + } + + + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + if (new Rectangle(Point.Empty, this.Size).Contains(e.X, e.Y) && e.Button == MouseButtons.Left) + m_ButtonState = CustomButtonState.Pressed; + else + { + if (keyPressed) + return; + m_ButtonState = CustomButtonState.Hot; + } + OnStateChange(EventArgs.Empty); + } + + + protected override void OnGotFocus(EventArgs e) + { + base.OnGotFocus(e); + m_ButtonState = CustomButtonState.Focused; + this.NotifyDefault(true); + } + + + protected override void OnLostFocus(EventArgs e) + { + base.OnLostFocus(e); + if (this.FindForm().Focused) + this.NotifyDefault(false); + m_ButtonState = CustomButtonState.Normal; + } + + + protected override void OnEnabledChanged(EventArgs e) + { + base.OnEnabledChanged(e); + if (this.Enabled) + m_ButtonState = CustomButtonState.Normal; + else + m_ButtonState = CustomButtonState.Disabled; + OnStateChange(EventArgs.Empty); + } + + + protected override void OnClick(EventArgs e) + { + //Click gets fired before MouseUp which is handy + if (this.ButtonState == CustomButtonState.Pressed) + { + this.Focus(); + this.PerformClick(); + } + } + + + protected override void OnDoubleClick(EventArgs e) + { + if (this.ButtonState == CustomButtonState.Pressed) + { + this.Focus(); + this.PerformClick(); + } + } + + + protected override bool ProcessMnemonic(char charCode) + { + if (IsMnemonic(charCode, this.Text)) + { + base.OnClick(EventArgs.Empty); + return true; + } + return base.ProcessMnemonic(charCode); + } + + + protected override void OnTextChanged(EventArgs e) + { + base.OnTextChanged(e); + this.Invalidate(); + } + + + protected override void OnPaintBackground(PaintEventArgs pevent) + { + //Simulate Transparency + System.Drawing.Drawing2D.GraphicsContainer g = pevent.Graphics.BeginContainer(); + Rectangle translateRect = this.Bounds; + pevent.Graphics.TranslateTransform(-this.Left, -this.Top); + PaintEventArgs pe = new PaintEventArgs(pevent.Graphics, translateRect); + this.InvokePaintBackground(this.Parent, pe); + this.InvokePaint(this.Parent, pe); + pevent.Graphics.ResetTransform(); + pevent.Graphics.EndContainer(g); + + pevent.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; + + Color shadeColor, fillColor; + Color darkColor = DarkenColor(this.BackColor, 20); + Color darkDarkColor = DarkenColor(this.BackColor, 25); + Color lightColor = LightenColor(this.BackColor, 25); + Color lightLightColor = LightenColor(this.BackColor, 60); + + if (this.ButtonState == CustomButtonState.Hot) + { + fillColor = lightColor; + shadeColor = this.BackColor; + } + else if (this.ButtonState == CustomButtonState.Pressed) + { + fillColor = this.BackColor; + shadeColor = this.BackColor; + } + else + { + fillColor = this.BackColor; + shadeColor = darkColor; + } + + Rectangle r = this.ClientRectangle; + System.Drawing.Drawing2D.GraphicsPath path = RoundRectangle(r, this.CornerRadius, this.RoundCorners); + + System.Drawing.Drawing2D.LinearGradientBrush paintBrush = new System.Drawing.Drawing2D.LinearGradientBrush(r, fillColor, shadeColor, System.Drawing.Drawing2D.LinearGradientMode.Vertical); + + //We want a sharp change in the colors so define a Blend for the brush + System.Drawing.Drawing2D.Blend b = new System.Drawing.Drawing2D.Blend(); + b.Positions = new float[] { 0, 0.45F, 0.55F, 1 }; + b.Factors = new float[] { 0, 0, 1, 1 }; + paintBrush.Blend = b; + + //Draw the Button Background + pevent.Graphics.FillPath(paintBrush, path); + paintBrush.Dispose(); + + //...and border + Pen drawingPen = new Pen(darkDarkColor); + pevent.Graphics.DrawPath(drawingPen, path); + drawingPen.Dispose(); + + //Get the Rectangle to be used for Content + bool inBounds = false; + //We could use some Math to get this from the radius but I'm + //not great at Math so for the example this hack will suffice. + while (!inBounds && r.Width >= 1 && r.Height >= 1) + { + inBounds = path.IsVisible(r.Left, r.Top) && + path.IsVisible(r.Right, r.Top) && + path.IsVisible(r.Left, r.Bottom) && + path.IsVisible(r.Right, r.Bottom); + r.Inflate(-1, -1); + + } + + contentRect = r; + + } + + + protected override void OnPaint(PaintEventArgs e) + { + DrawImage(e.Graphics); + DrawText(e.Graphics); + DrawFocus(e.Graphics); + base.OnPaint(e); + } + + + protected override void OnParentBackColorChanged(EventArgs e) + { + base.OnParentBackColorChanged(e); + this.Invalidate(); + } + + + protected override void OnParentBackgroundImageChanged(EventArgs e) + { + base.OnParentBackgroundImageChanged(e); + this.Invalidate(); + } + + + #endregion + + #region Internal Draw Methods + + private void DrawImage(Graphics g) + { + if (this.ImageList == null || this.ImageIndex == -1) + return; + if (this.ImageIndex < 0 || this.ImageIndex >= this.ImageList.Images.Count) + return; + + Image _Image = this.ImageList.Images[this.ImageIndex]; + + Point pt = Point.Empty; + + switch (this.ImageAlign) + { + case ContentAlignment.TopLeft: + pt.X = contentRect.Left; + pt.Y = contentRect.Top; + break; + + case ContentAlignment.TopCenter: + pt.X = (Width - _Image.Width) / 2; + pt.Y = contentRect.Top; + break; + + case ContentAlignment.TopRight: + pt.X = contentRect.Right - _Image.Width; + pt.Y = contentRect.Top; + break; + + case ContentAlignment.MiddleLeft: + pt.X = contentRect.Left; + pt.Y = (Height - _Image.Height) / 2; + break; + + case ContentAlignment.MiddleCenter: + pt.X = (Width - _Image.Width) / 2; + pt.Y = (Height - _Image.Height) / 2; + break; + + case ContentAlignment.MiddleRight: + pt.X = contentRect.Right - _Image.Width; + pt.Y = (Height - _Image.Height) / 2; + break; + + case ContentAlignment.BottomLeft: + pt.X = contentRect.Left; + pt.Y = contentRect.Bottom - _Image.Height; + break; + + case ContentAlignment.BottomCenter: + pt.X = (Width - _Image.Width) / 2; + pt.Y = contentRect.Bottom - _Image.Height; + break; + + case ContentAlignment.BottomRight: + pt.X = contentRect.Right - _Image.Width; + pt.Y = contentRect.Bottom - _Image.Height; + break; + } + + if (this.ButtonState == CustomButtonState.Pressed) + pt.Offset(1, 1); + + if (this.Enabled) + this.ImageList.Draw(g, pt, this.ImageIndex); + else + ControlPaint.DrawImageDisabled(g, _Image, pt.X, pt.Y, this.BackColor); + + } + + + private void DrawText(Graphics g) + { + SolidBrush TextBrush = new SolidBrush(this.ForeColor); + + RectangleF R = (RectangleF)contentRect; + + if (!this.Enabled) + TextBrush.Color = SystemColors.GrayText; + + StringFormat sf = new StringFormat(StringFormatFlags.NoWrap | StringFormatFlags.NoClip); + + if (ShowKeyboardCues) + sf.HotkeyPrefix = System.Drawing.Text.HotkeyPrefix.Show; + else + sf.HotkeyPrefix = System.Drawing.Text.HotkeyPrefix.Hide; + + switch (this.TextAlign) + { + case ContentAlignment.TopLeft: + sf.Alignment = StringAlignment.Near; + sf.LineAlignment = StringAlignment.Near; + break; + + case ContentAlignment.TopCenter: + sf.Alignment = StringAlignment.Center; + sf.LineAlignment = StringAlignment.Near; + break; + + case ContentAlignment.TopRight: + sf.Alignment = StringAlignment.Far; + sf.LineAlignment = StringAlignment.Near; + break; + + case ContentAlignment.MiddleLeft: + sf.Alignment = StringAlignment.Near; + sf.LineAlignment = StringAlignment.Center; + break; + + case ContentAlignment.MiddleCenter: + sf.Alignment = StringAlignment.Center; + sf.LineAlignment = StringAlignment.Center; + break; + + case ContentAlignment.MiddleRight: + sf.Alignment = StringAlignment.Far; + sf.LineAlignment = StringAlignment.Center; + break; + + case ContentAlignment.BottomLeft: + sf.Alignment = StringAlignment.Near; + sf.LineAlignment = StringAlignment.Far; + break; + + case ContentAlignment.BottomCenter: + sf.Alignment = StringAlignment.Center; + sf.LineAlignment = StringAlignment.Far; + break; + + case ContentAlignment.BottomRight: + sf.Alignment = StringAlignment.Far; + sf.LineAlignment = StringAlignment.Far; + break; + } + + if (this.ButtonState == CustomButtonState.Pressed) + R.Offset(1, 1); + + if (this.Enabled) + g.DrawString(this.Text, this.Font, TextBrush, R, sf); + else + ControlPaint.DrawStringDisabled(g, this.Text, this.Font, this.BackColor, R, sf); + + } + + + private void DrawFocus(Graphics g) + { + Rectangle r = contentRect; + r.Inflate(1, 1); + if (this.Focused && this.ShowFocusCues && this.TabStop) + ControlPaint.DrawFocusRectangle(g, r, this.ForeColor, this.BackColor); + } + + + #endregion + + #region Helper Methods + + private System.Drawing.Drawing2D.GraphicsPath RoundRectangle(Rectangle r, int radius, Corners corners) + { + //Make sure the Path fits inside the rectangle + r.Width -= 1; + r.Height -= 1; + + //Scale the radius if it's too large to fit. + if (radius > (r.Width)) + radius = r.Width; + if (radius > (r.Height)) + radius = r.Height; + + System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath(); + + if (radius <= 0) + path.AddRectangle(r); + else + if ((corners & Corners.TopLeft) == Corners.TopLeft) + path.AddArc(r.Left, r.Top, radius, radius, 180, 90); + else + path.AddLine(r.Left, r.Top, r.Left, r.Top); + + if ((corners & Corners.TopRight) == Corners.TopRight) + path.AddArc(r.Right - radius, r.Top, radius, radius, 270, 90); + else + path.AddLine(r.Right, r.Top, r.Right, r.Top); + + if ((corners & Corners.BottomRight) == Corners.BottomRight) + path.AddArc(r.Right - radius, r.Bottom - radius, radius, radius, 0, 90); + else + path.AddLine(r.Right, r.Bottom, r.Right, r.Bottom); + + if ((corners & Corners.BottomLeft) == Corners.BottomLeft) + path.AddArc(r.Left, r.Bottom - radius, radius, radius, 90, 90); + else + path.AddLine(r.Left, r.Bottom, r.Left, r.Bottom); + + path.CloseFigure(); + + return path; + } + + + //The ControlPaint Class has methods to Lighten and Darken Colors, but they return a Solid Color. + //The Following 2 methods return a modified color with original Alpha. + private Color DarkenColor(Color colorIn, int percent) + { + //This method returns Black if you Darken by 100% + + if (percent < 0 || percent > 100) + throw new ArgumentOutOfRangeException("percent"); + + int a, r, g, b; + + a = colorIn.A; + r = colorIn.R - (int)((colorIn.R / 100f) * percent); + g = colorIn.G - (int)((colorIn.G / 100f) * percent); + b = colorIn.B - (int)((colorIn.B / 100f) * percent); + + return Color.FromArgb(a, r, g, b); + } + + + private Color LightenColor(Color colorIn, int percent) + { + //This method returns White if you lighten by 100% + + if (percent < 0 || percent > 100) + throw new ArgumentOutOfRangeException("percent"); + + int a, r, g, b; + + a = colorIn.A; + r = colorIn.R + (int)(((255f - colorIn.R) / 100f) * percent); + g = colorIn.G + (int)(((255f - colorIn.G) / 100f) * percent); + b = colorIn.B + (int)(((255f - colorIn.B) / 100f) * percent); + + return Color.FromArgb(a, r, g, b); + } + + + #endregion + + private CustomButtonState currentState; + private void OnStateChange(EventArgs e) + { + //Repaint the button only if the state has actually changed + if (this.ButtonState == currentState) + return; + currentState = this.ButtonState; + this.Invalidate(); + } + + + } + + #region Custom TypeEditor for RoundCorners property + + [PermissionSetAttribute(SecurityAction.LinkDemand, Unrestricted = true)] + [PermissionSetAttribute(SecurityAction.InheritanceDemand, Unrestricted = true)] + public class RoundCornersEditor : UITypeEditor + { + public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) + { + return UITypeEditorEditStyle.DropDown; + } + + public override Object EditValue(ITypeDescriptorContext context, IServiceProvider provider, Object value) + { + if (value != typeof(Corners) || provider == null) + return value; + + IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); + if (edSvc != null) + { + CheckedListBox lb = new CheckedListBox(); + lb.BorderStyle = BorderStyle.None; + lb.CheckOnClick = true; + + lb.Items.Add("TopLeft", (((CustomButton)context.Instance).RoundCorners & Corners.TopLeft) == Corners.TopLeft); + lb.Items.Add("TopRight", (((CustomButton)context.Instance).RoundCorners & Corners.TopRight) == Corners.TopRight); + lb.Items.Add("BottomLeft", (((CustomButton)context.Instance).RoundCorners & Corners.BottomLeft) == Corners.BottomLeft); + lb.Items.Add("BottomRight", (((CustomButton)context.Instance).RoundCorners & Corners.BottomRight) == Corners.BottomRight); + + edSvc.DropDownControl(lb); + Corners cornerFlags = Corners.None; + foreach (object o in lb.CheckedItems) + { + cornerFlags = cornerFlags | (Corners)Enum.Parse(typeof(Corners), o.ToString()); + } + lb.Dispose(); + edSvc.CloseDropDown(); + return cornerFlags; + } + return value; + } + + } + + #endregion +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/DotSpatial.Plugins.WebMap.dll.config b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/DotSpatial.Plugins.WebMap.dll.config new file mode 100644 index 00000000..7fa2460a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/DotSpatial.Plugins.WebMap.dll.config @@ -0,0 +1,32 @@ + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/HydroDesktop.Plugins.MainPlugin.csproj b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/HydroDesktop.Plugins.MainPlugin.csproj new file mode 100644 index 00000000..6ca0a34b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/HydroDesktop.Plugins.MainPlugin.csproj @@ -0,0 +1,295 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {2FAAF21B-10DD-4430-87DC-54E981495485} + Library + Properties + HydroDesktop.Plugins.MainPlugin + HydroDesktop.Plugins.MainPlugin + v4.0 + 512 + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.MainPlugin\ + DEBUG;TRACE + prompt + 4 + AnyCPU + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.MainPlugin\HydroDesktop.Plugins.MainPlugin.xml + false + 1591 + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.MainPlugin\ + TRACE + prompt + 4 + false + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.MainPlugin\ + DEBUG;TRACE + full + x86 + prompt + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.MainPlugin\HydroDesktop.Plugins.MainPlugin.xml + false + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.MainPlugin\ + TRACE + true + pdbonly + x86 + prompt + false + false + false + + + + False + ..\..\packages\DotSpatial.Plugins.WebMap.1.1.0.0\lib\net40-client\BruTile.dll + + + False + ..\..\packages\DotSpatial.Plugins.WebMap.1.1.0.0\lib\net40-client\BruTile.Desktop.dll + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Plugins.ExtensionManager.1.1.1\lib\net40-Client\DotSpatial.Plugins.ExtensionManager.dll + + + False + ..\..\packages\DotSpatial.Plugins.MenuBar.1.0.1200\lib\net40-Client\DotSpatial.Plugins.MenuBar.dll + + + False + ..\..\packages\DotSpatial.Plugins.WebMap.1.1.0.0\lib\net40-Client\DotSpatial.Plugins.WebMap.dll + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + False + ..\..\packages\DotSpatial.Plugins.ExtensionManager.1.1.1\lib\net40-Client\NuGet.Core.dll + + + + + + + + + + + + + ..\..\packages\DotSpatial.Plugins.ExtensionManager.1.1.1\lib\net40-Client\Updater.exe + + + + + + + Component + + + + + + True + True + Resources.resx + + + True + True + Settings.settings + + + + + + Form + + + WelcomeScreen.cs + + + + + ResXFileCodeGenerator + Designer + Resources.Designer.cs + + + WelcomeScreen.cs + + + + + + Always + + + + Designer + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + {0ccd3f11-0f48-427f-bc98-9dd6d875f4bb} + HydroDesktop.Configuration + False + + + {ceb869c6-ed48-4846-9040-4e82ab58b86b} + HydroDesktop.Data + False + + + {F09E70CC-9D65-45C2-A451-D22CFB400C26} + HydroDesktop.Help + False + + + {0b9ba90b-2016-4754-915a-0ad74fd0067a} + HydroDesktop.Interfaces + False + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + +if $(ConfigurationName) == Release goto :release + +md "$(TargetDir)..\DotSpatial.Plugins.ExtensionManager" +move /y "$(TargetDir)NuGet.Core.*" "$(TargetDir)..\DotSpatial.Plugins.ExtensionManager\" +move /y "$(TargetDir)DotSpatial.Plugins.ExtensionManager.*" "$(TargetDir)..\DotSpatial.Plugins.ExtensionManager\" +md "$(TargetDir)..\DotSpatial.Plugins.MenuBar" +move /Y "$(TargetDir)DotSpatial.Plugins.MenuBar.*" "$(TargetDir)..\DotSpatial.Plugins.MenuBar\" +md "$(TargetDir)..\DotSpatial.Plugins.WebMap" +move /Y "$(TargetDir)DotSpatial.Plugins.WebMap.*" "$(TargetDir)..\DotSpatial.Plugins.WebMap\" +move /Y "$(TargetDir)BruTile.*" "$(TargetDir)..\DotSpatial.Plugins.WebMap\" +goto :exit + +:release +del "$(TargetDir)NuGet.Core.*" +del "$(TargetDir)DotSpatial.Plugins.*" +del "$(TargetDir)BruTile.*" + +:exit + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/HydroDesktop.Plugins.MainPlugin.nuspec b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/HydroDesktop.Plugins.MainPlugin.nuspec new file mode 100644 index 00000000..1ee6f684 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/HydroDesktop.Plugins.MainPlugin.nuspec @@ -0,0 +1,19 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/HydroDesktopMainPlugin.cs b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/HydroDesktopMainPlugin.cs new file mode 100644 index 00000000..1add6c70 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/HydroDesktopMainPlugin.cs @@ -0,0 +1,422 @@ +namespace HydroDesktop.Plugins.MainPlugin +{ + using System; + using System.ComponentModel.Composition; + using System.Diagnostics; + using System.IO; + using System.Windows.Forms; + using DotSpatial.Controls; + using DotSpatial.Controls.Header; + using HydroDesktop.Database; + using HydroDesktop.Interfaces; + using HydroDesktop.Common; + + public class HydroDesktopMainPlugin : Extension, IPartImportsSatisfiedNotification + { + private const string HYDRODESKTOP_NAME = "CUAHSI HydroDesktop"; + + //the seriesView component is the shared HydroDesktop component + //for database management + [Import("SeriesControl", typeof(ISeriesSelector))] + internal ISeriesSelector SeriesControl { get; set; } + + [Import("Shell")] + internal ContainerControl Shell { get; set; } + + private ProjectManager myProjectManager; + + private WelcomeScreen welcomeScreenForm; + + private CoordinateDisplay latLongDisplay; + + private SelectionStatusDisplay selectionDisplay; + + private AttributeTableManager attributeManager; + + public HydroDesktopMainPlugin() + { + DeactivationAllowed = false; + } + + public override void Activate() + { + if (SeriesControl == null) + { + throw new Exception("SeriesControl not found"); + } + + App.DockManager.ActivePanelChanged += DockManager_ActivePanelChanged; + myProjectManager = new ProjectManager(App); + + App.HeaderControl.RootItemSelected += HeaderControl_RootItemSelected; + App.SerializationManager.Serializing += SerializationManager_Serializing; + App.SerializationManager.Deserializing += SerializationManager_Deserializing; + App.SerializationManager.NewProjectCreated += SerializationManager_NewProjectCreated; + App.SerializationManager.IsDirtyChanged += SerializationManager_IsDirtyChanged; + + App.ExtensionsActivated += App_ExtensionsActivated; + + + // todo: export Shell in MapWindow as Form to avoid type casting + if (Shell is Form) + { + ((Form)Shell).FormClosing += HydroDesktopMainPlugin_FormClosing; + } + //show selection status display + selectionDisplay = new SelectionStatusDisplay(App); + //show latitude, longitude coordinate display + latLongDisplay = new CoordinateDisplay(App); + base.Activate(); + + //Used for adding the new Welcome form to the menu. The new Welcome form will replace the "Open sample project..." form. + SimpleActionItem simpleActionItem = new SimpleActionItem(HeaderControl.ApplicationMenuKey, "Projects...", OpenProjects_Click); + simpleActionItem.GroupCaption = "kApplicationMenu"; + simpleActionItem.LargeImage = HydroDesktop.Plugins.MainPlugin.Properties.Resources.logo_32x32; + simpleActionItem.SmallImage = HydroDesktop.Plugins.MainPlugin.Properties.Resources.logo_16x16; + base.App.HeaderControl.Add(simpleActionItem); + + } + + void App_ExtensionsActivated(object sender, EventArgs e) + { + if (App.GetExtension("HydroDesktop.Plugins.AttributeDataExplorer") != null) + { + attributeManager = new AttributeTableManager(App); + } + } + + //void ShowAttribute_Click(object sender, EventArgs e) + //{ + // //_attributesVisible = !_attributesVisible; + // //if (_attributesVisible) + // App.DockManager.SelectPanel("kDataExplorer"); + // //else + // // App.DockManager.HidePanel("kDataExplorer"); + //} + + void HydroDesktopMainPlugin_FormClosing(object sender, FormClosingEventArgs e) + { + var projectExists = (!String.IsNullOrEmpty(App.SerializationManager.CurrentProjectFile)); + if (!projectExists) + { + var res = MessageBox.Show(string.Format("Save changes to new project?"), + HYDRODESKTOP_NAME, + MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, + MessageBoxDefaultButton.Button3); + switch (res) + { + case DialogResult.Cancel: + e.Cancel = true; + return; + case DialogResult.No: + // Do nothing, exit without saving + e.Cancel = false; + return; + case DialogResult.Yes: + // Save and exit + e.Cancel = true; + ShowSaveProjectDialog(); + return; + } + } + + var hasProjectChanges = App.SerializationManager.IsDirty; + if (hasProjectChanges) + { + var res = MessageBox.Show(string.Format("Save changes to current project [{0}]?", GetProjectShortName()), + HYDRODESKTOP_NAME, + MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, + MessageBoxDefaultButton.Button3); + switch (res) + { + case DialogResult.Cancel: + e.Cancel = true; + return; + case DialogResult.No: + // Do nothing, exit without saving + return; + case DialogResult.Yes: + // Save and exit + App.SerializationManager.SaveProject(App.SerializationManager.CurrentProjectFile); + return; + } + } + else + { + var res = MessageBox.Show(string.Format("Exit HydroDesktop?"), + HYDRODESKTOP_NAME, + MessageBoxButtons.OKCancel, MessageBoxIcon.Question, + MessageBoxDefaultButton.Button2); + switch (res) + { + case DialogResult.Cancel: + // Not exit + e.Cancel = true; + return; + case DialogResult.OK: + // Exit + return; + } + } + } + + private void ShowSaveProjectDialog() + { + using (var dlg = new SaveFileDialog { Filter = App.SerializationManager.SaveDialogFilterText, SupportMultiDottedExtensions = true }) + { + if (dlg.ShowDialog() == DialogResult.OK) + { + App.SerializationManager.SaveProject(dlg.FileName); + } + } + } + + public override void Deactivate() + { + var shell = Shell as Form; + if (shell != null) + { + shell.FormClosing -= HydroDesktopMainPlugin_FormClosing; + } + App.ExtensionsActivated -= App_ExtensionsActivated; + + base.Deactivate(); + } + + #region IPartImportsSatisfiedNotification Members + + /// + /// setup the parent form. This + /// occurs when the main form becomes available + /// + public void OnImportsSatisfied() + { + var mainForm = Shell as Form; + if (mainForm != null) + { + mainForm.Shown += mainForm_Shown; + } + } + + void mainForm_Shown(object sender, EventArgs e) + { + //displays the initial welcome screen + if (string.IsNullOrEmpty(App.SerializationManager.CurrentProjectFile)) + { + ShowWelcomeScreen(); + } + else + { + //do not show the welcome screen if a project is being opened + SerializationManager_Deserializing(null, null); + myProjectManager.OpenProject(App.SerializationManager.CurrentProjectFile); //Open project using same method used when opening from within HD + } + } + + #endregion + + //Saving a project (save or save as..) + void SerializationManager_Serializing(object sender, SerializingEventArgs e) + { + myProjectManager.SavingProject(); + Shell.Text = string.Format("{0} - {1}", HYDRODESKTOP_NAME, GetProjectShortName()); + } + + private string GetProjectShortName() + { + return Path.GetFileName(App.SerializationManager.CurrentProjectFile); + } + + //show information about current project state + void SerializationManager_IsDirtyChanged(object sender, EventArgs e) + { + if (App.SerializationManager.IsDirty && !(Shell.Text.EndsWith(" *"))) + { + Shell.Text += " *"; + } + else if (!App.SerializationManager.IsDirty && Shell.Text.EndsWith(" *")) + { + Shell.Text = Shell.Text.Substring(0, Shell.Text.LastIndexOf("*")); + } + } + + void SerializationManager_NewProjectCreated(object sender, SerializingEventArgs e) + { + SetupDatabases(); + Shell.Text = HYDRODESKTOP_NAME; + + //setup projection information / same as in previous project + if (App.Map.Projection != null) + { + latLongDisplay.MapProjectionString = App.Map.Projection.ToEsriString(); + } + } + + void SerializationManager_Deserializing(object sender, SerializingEventArgs e) + { + //try reset projection! + if (App.Map.MapFrame.Projection != DotSpatial.Projections.KnownCoordinateSystems.Projected.World.WebMercator) + { + //App.Map.MapFrame.Reproject(DotSpatial.Projections.KnownCoordinateSystems.Projected.World.WebMercator); + MapFrameProjectionHelper.ReprojectMapFrame(App.Map.MapFrame, DotSpatial.Projections.KnownCoordinateSystems.Projected.World.WebMercator.ToEsriString()); + } + + myProjectManager.OpeningProject(); + Shell.Text = string.Format("{0} - {1}", HYDRODESKTOP_NAME, GetProjectShortName()); + //setup new db information + SeriesControl.SetupDatabase(); + if (App.Map.Projection != null) + { + latLongDisplay.MapProjectionString = App.Map.Projection.ToEsriString(); + } + } + + /// + /// In the welcome screen, user chooses to create a project from template, + /// create a new project, or open an existing project + /// + private void ShowWelcomeScreen() + { + //activate the map panel + App.DockManager.SelectPanel("kMap"); + App.DockManager.SelectPanel("kLegend"); + + welcomeScreenForm = new WelcomeScreen(myProjectManager) + { + StartPosition = FormStartPosition.CenterScreen, + TopMost = true + }; + welcomeScreenForm.FormClosing += welcomeScreen_FormClosing; + welcomeScreenForm.Shown += (sender, args) => welcomeScreenForm.TopMost = false; // No more need to be TopMost after showing the logo. + + int x = Shell.Location.X + Shell.Width / 2 - welcomeScreenForm.Width / 2; + int y = Shell.Location.Y + Shell.Height / 2 - welcomeScreenForm.Height / 2; + welcomeScreenForm.Location = new System.Drawing.Point(x, y); + + App.CompositionContainer.ComposeParts(welcomeScreenForm); + + welcomeScreenForm.Show(Shell); + welcomeScreenForm.Focus(); + } + + void welcomeScreen_FormClosing(object sender, FormClosingEventArgs e) + { + //if creating new project - setup the databases + if (welcomeScreenForm.NewProjectCreated) + { + SetupDatabases(); + } + + //setup the lat, long coordinate display + latLongDisplay.ShowCoordinates = true; + + // Focus to main application window + Shell.Focus(); + } + + /// + /// This method sets up the default databases. + /// By default these are created in the temporary directory. + /// + public void SetupDatabases() + { + // use the 'default' database path is a temporary db file + // and only should be used when not working with a project. + string dataRepositoryTempFile = string.Format("NewProject_{0}_{1}{2}.sqlite", + DateTime.Now.Date.ToString("yyyy-MM-dd"), DateTime.Now.Hour, DateTime.Now.Minute); + + string metadataCacheTempFile = string.Format("NewProject_{0}_{1}{2}_cache.sqlite", + DateTime.Now.Date.ToString("yyyy-MM-dd"), DateTime.Now.Hour, DateTime.Now.Minute); + + string tempDir = Configuration.Settings.Instance.TempDirectory; + string dataRepositoryPath = Path.Combine(tempDir, dataRepositoryTempFile); + + string metadataCachePath = Path.Combine(tempDir, metadataCacheTempFile); + + if (HasWriteAccessToFolder(tempDir)) + { + //create new dataRepositoryDb + SQLiteHelper.CreateSQLiteDatabase(dataRepositoryPath); + string conString1 = SQLiteHelper.GetSQLiteConnectionString(dataRepositoryPath); + Configuration.Settings.Instance.DataRepositoryConnectionString = conString1; + Configuration.Settings.Instance.CurrentProjectFile = Path.ChangeExtension(dataRepositoryPath, ".dspx"); + + //create new metadataCacheDb + SQLiteHelper.CreateMetadataCacheDb(metadataCachePath); + var conString2 = SQLiteHelper.GetSQLiteConnectionString(metadataCachePath); + Configuration.Settings.Instance.MetadataCacheConnectionString = conString2; + } + //TODO: find a smart solution when Write access to temp folder is denied + } + + private bool HasWriteAccessToFolder(string folderPath) + { + try + { + // Attempt to get a list of security permissions from the folder. + // This will raise an exception if the path is read only or do not have access to view the permissions. + if (!DotSpatial.Mono.Mono.IsRunningOnMono()) + { + System.Security.AccessControl.DirectorySecurity ds = Directory.GetAccessControl(folderPath); + } + return true; + } + catch (UnauthorizedAccessException) + { + return false; + } + } + + void DockManager_ActivePanelChanged(object sender, DotSpatial.Controls.Docking.DockablePanelEventArgs e) + { + if (e.ActivePanelKey == "kMap") + { + //if the clicked root item was 'search', then don't select the map root item + //(the user intended to show search tab and map panel) + if (!App.SerializationManager.GetCustomSetting("SearchRootClicked", false)) + { + App.HeaderControl.SelectRoot(HeaderControl.HomeRootItemKey); + } + } + } + + void HeaderControl_RootItemSelected(object sender, RootItemEventArgs e) + { + Boolean showCoordinates = false; + + if (e.SelectedRootKey == SharedConstants.SearchRootkey || e.SelectedRootKey == HeaderControl.HomeRootItemKey) + { + App.SerializationManager.SetCustomSetting("SearchRootClicked", true); + App.DockManager.SelectPanel("kMap"); + App.DockManager.SelectPanel("kLegend"); + App.DockManager.ShowPanel(SharedConstants.SeriesViewKey); + showCoordinates = true; + } + else if (e.SelectedRootKey == "RootRibbonHydroModeler") + { + //hide panels + App.DockManager.HidePanel("kLegend"); + App.DockManager.HidePanel(HydroDesktop.Common.SharedConstants.SeriesViewKey); + App.DockManager.SelectPanel("kHydroModelerDock"); + } + else if (e.SelectedRootKey == "kHydroGraph_01" || e.SelectedRootKey == SharedConstants.TableRootKey || e.SelectedRootKey == "kHydroEditView" || e.SelectedRootKey == "kHydroR") + { + App.DockManager.SelectPanel(HydroDesktop.Common.SharedConstants.SeriesViewKey); + App.DockManager.ShowPanel("kLegend"); + } + + if (e.SelectedRootKey == "kHydroSearchV3") + showCoordinates = true; + else + App.SerializationManager.SetCustomSetting("SearchRootClicked", false); + + if (latLongDisplay != null) + latLongDisplay.ShowCoordinates = showCoordinates; + } + + private void OpenProjects_Click(object sender, EventArgs e) + { + ShowWelcomeScreen(); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/ProjectManager.cs b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/ProjectManager.cs new file mode 100644 index 00000000..6fb16f1f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/ProjectManager.cs @@ -0,0 +1,351 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Projections; +using DotSpatial.Topology; +using HydroDesktop.Configuration; +using HydroDesktop.Database; +using System.Net; +using System.Xml; +using System.Globalization; +using System.Drawing; +using System.Timers; + +namespace HydroDesktop.Plugins.MainPlugin +{ + public class ProjectManager + { + /// + /// The main app manager + /// + public AppManager App { get; private set; } + + /// + /// Creates a new instance of the project manager + /// + /// + public ProjectManager(AppManager mainApp) { + App = mainApp; + } + + public static ProjectionInfo DefaultProjection { get { return KnownCoordinateSystems.Projected.World.WebMercator; } } + + //sets the map extent to continental U.S + private void SetDefaultMapExtents() { + App.Map.ViewExtents = DefaultMapExtents().ToExtent(); + } + + public static Envelope DefaultMapExtents() { + Envelope _defaultMapExtent = new Envelope(-130, -60, 10, 55); + + + double[] xy = new double[4]; + xy[0] = _defaultMapExtent.Minimum.X; + xy[1] = _defaultMapExtent.Minimum.Y; + xy[2] = _defaultMapExtent.Maximum.X; + xy[3] = _defaultMapExtent.Maximum.Y; + double[] z = new double[] { 0, 0 }; + ProjectionInfo wgs84 = KnownCoordinateSystems.Geographic.World.WGS1984; + Reproject.ReprojectPoints(xy, z, wgs84, DefaultProjection, 0, 2); + + return new Envelope(xy[0], xy[2], xy[1], xy[3]); + } + + private static void CopyStream(Stream input, Stream output) { + byte[] buffer = new byte[8192]; + + int bytesRead; + while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer, 0, bytesRead); + } + } + + /// + /// Check if the path is a valid SQLite database + /// This function returns false, if the SQLite db + /// file doesn't exist or if the file size is 0 Bytes + /// + public static bool DatabaseExists(string dbPath) { + return SQLiteHelper.DatabaseExists(dbPath); + } + + /// + /// To get the SQLite database path given the SQLite connection string + /// + public static string GetSQLiteFileName(string sqliteConnString) { + return SQLiteHelper.GetSQLiteFileName(sqliteConnString); + } + /// + /// To get the full SQLite connection string given the SQLite database path + /// + public static string GetSQLiteConnectionString(string dbFileName) { + return SQLiteHelper.GetSQLiteConnectionString(dbFileName); + } + + /// + /// Create the default .SQLITE database in the user-specified path + /// + /// true if database was created, false otherwise + public static Boolean CreateNewDatabase(string dbPath) { + //to create the default.sqlite database file using the SQLiteHelper method + return SQLiteHelper.CreateSQLiteDatabase(dbPath); + } + + /// + /// Checks if the two paths are on the same drive. + /// + /// the first path + /// the second path + /// true if the two paths are on same drive + private static Boolean IsSameDrive(string path1, string path2) { + if (Path.IsPathRooted(path1) && Path.IsPathRooted(path2) && !path1.StartsWith("\\\\") && !path2.StartsWith("\\\\")) + { + if (Path.GetPathRoot(path1) == Path.GetPathRoot(path2)) + { + return true; + } + } + return false; + } + + /// + /// Opens a project and updates the maps + /// + public void OpenProject(string projectFileName) { + App.ProgressHandler.Progress("Opening Project", 0, "Opening Project"); + App.SerializationManager.OpenProject(projectFileName); + App.ProgressHandler.Progress("Project opened", 0, ""); + } + + public void ProjectToGeoLocation() + { + try + { + string locationsRequest = "http://ip-api.com/xml"; + double[] xy = GetLocation(locationsRequest); + if (xy[0] == 0.0 || xy[1] == 0.0) + return; + xy = LatLonReproject(xy[1], xy[0]); + App.Map.MapFrame.ViewExtents = (new Envelope(xy[0] - 420000, xy[0] + 420000, xy[1] - 420000, xy[1] + 420000)).ToExtent(); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + + } + + + private static double[] GetLocation(string requestUrl) + { + double[] location = new double[2]; + try + { + HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest; + HttpWebResponse response = request.GetResponse() as HttpWebResponse; + + using (var reader = XmlReader.Create(response.GetResponseStream())) + { + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + { + if (reader.Name == "lat") + { + reader.Read(); + location[0] = Convert.ToDouble(reader.Value, CultureInfo.InvariantCulture); + } + else if (reader.Name == "lon") + { + reader.Read(); + location[1] = Convert.ToDouble(reader.Value, CultureInfo.InvariantCulture); + } + } + } + } + return location; + } + catch (Exception e) + { + Console.WriteLine(e.Message); + return null; + } + } + + private double[] LatLonReproject(double x, double y) + { + double[] xy = new double[2] { x, y }; + + //Change y coordinate to be less than 90 degrees to prevent a bug. + if (xy[1] >= 90) xy[1] = 89.9; + if (xy[1] <= -90) xy[1] = -89.9; + + //Need to convert points to proper projection. Currently describe WGS84 points which may or may not be accurate. + bool isWgs84; + + String wgs84String = "GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137,298.257223562997]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.0174532925199433]]"; + String mapProjEsriString = App.Map.Projection.ToEsriString(); + isWgs84 = (mapProjEsriString.Equals(wgs84String)); + + //If the projection is not WGS84, then convert points to properly describe desired location. + if (!isWgs84) + { + double[] z = new double[1]; + ProjectionInfo wgs84Projection = ProjectionInfo.FromEsriString(wgs84String); + ProjectionInfo currentMapProjection = ProjectionInfo.FromEsriString(mapProjEsriString); + Reproject.ReprojectPoints(xy, z, wgs84Projection, currentMapProjection, 0, 1); + } + + //Return array with 1 x and 1 y value. + return xy; + } + + + + + + private void DisableProgressReportingForLayers() { + foreach (IMapLayer layer in App.Map.MapFrame.GetAllLayers()) + { + layer.ProgressHandler = null; + + MapPolygonLayer polyLay = layer as MapPolygonLayer; + if (polyLay != null) + { + polyLay.ProgressReportingEnabled = false; + } + } + App.Map.ProgressHandler = null; + } + + public void OpeningProject() { + if (App.SerializationManager.CurrentProjectFile == null) return; + + //todo: change the configuration settings paths + string projectFile = App.SerializationManager.CurrentProjectFile; + Settings.Instance.CurrentProjectFile = App.SerializationManager.CurrentProjectFile; + + //also need to set-up the DB + string dbFileName = Path.ChangeExtension(projectFile, "sqlite"); + string cacheDbFileName = dbFileName.Replace(".sqlite", "_cache.sqlite"); + + if (!ValidateDatabase(dbFileName, DatabaseType.DefaulDatabase)) + { + SQLiteHelper.CreateSQLiteDatabase(dbFileName); + } + if (!ValidateDatabase(cacheDbFileName, DatabaseType.MetadataCacheDatabase)) + { + SQLiteHelper.CreateMetadataCacheDb(cacheDbFileName); + } + Settings.Instance.DataRepositoryConnectionString = SQLiteHelper.GetSQLiteConnectionString(dbFileName); + Settings.Instance.MetadataCacheConnectionString = SQLiteHelper.GetSQLiteConnectionString(cacheDbFileName); + } + + //checks if the db exists. Also checks the db schema + private bool ValidateDatabase(string dbFileName, DatabaseType dbType) { + //check if db exists + if (SQLiteHelper.DatabaseExists(dbFileName)) + { + return true; + } + return false; + } + + /// + /// Creates a new 'empty' project + /// + public void CreateEmptyProject() { + App.SerializationManager.New(); + } + + //saves the current HydroDesktop project file to the user specified location + public void SavingProject() { + string projectFileName = App.SerializationManager.CurrentProjectFile; + + Settings.Instance.AddFileToRecentFiles(projectFileName); + + string newProjectDirectory = Path.GetDirectoryName(projectFileName); + + App.ProgressHandler.Progress("Saving Project " + projectFileName, 0, ""); + Application.DoEvents(); + + //are we saving or are we doing 'save as' ? + if (projectFileName != Settings.Instance.CurrentProjectFile) + { + + //also create a copy of the .sqlite database + string newDbPath = Path.ChangeExtension(projectFileName, ".sqlite"); + + //current database path + string currentDbPath = SQLiteHelper.GetSQLiteFileName(Settings.Instance.DataRepositoryConnectionString); + //copy db to new path. If no db exists, create new db in the new location + if (SQLiteHelper.DatabaseExists(currentDbPath)) + { + File.Copy(currentDbPath, newDbPath, true); + } + else + { + CreateNewDatabase(newDbPath); + } + //create a copy of the metadata cache (_cache.sqlite) database + string newCachePath = projectFileName.Replace(".dspx", "_cache.sqlite"); + + //current database path + string currentCachePath = SQLiteHelper.GetSQLiteFileName(Settings.Instance.MetadataCacheConnectionString); + //copy db to new path. If no db exists, create new db in the new location + if (SQLiteHelper.DatabaseExists(currentCachePath)) + { + File.Copy(currentCachePath, newCachePath, true); + } + else + { + SQLiteHelper.CreateMetadataCacheDb(newCachePath); + } + + //TODO: need to trigger a DatabaseChanged event (Settings.Instance.DatabaseChanged..) + + //update application level database configuration settings + Settings.Instance.DataRepositoryConnectionString = SQLiteHelper.GetSQLiteConnectionString(newDbPath); + Settings.Instance.MetadataCacheConnectionString = SQLiteHelper.GetSQLiteConnectionString(newCachePath); + Settings.Instance.CurrentProjectFile = App.SerializationManager.CurrentProjectFile; + + //Also save the files of all map layers + + string projDir = App.SerializationManager.CurrentProjectDirectory; + + foreach (IMapLayer layer in App.Map.MapFrame.GetAllLayers()) + { + var fl = layer as IMapFeatureLayer; + if (fl != null) + { + if (!String.IsNullOrEmpty(fl.DataSet.Filename)) + { + var fileName = Path.GetFileName(fl.DataSet.Filename); + if (fileName != null) + { + fl.DataSet.SaveAs(Path.Combine(projDir, fileName), true); + } + } + } + + var rl = layer as IMapRasterLayer; + if (rl != null) + { + var fileName = Path.GetFileName(rl.DataSet.Filename); + if (fileName != null) + { + rl.DataSet.SaveAs(Path.Combine(projDir, fileName)); + rl.DataSet.Filename = fileName; // Save relative path + } + } + } + } + App.ProgressHandler.Progress(String.Empty, 0, String.Empty); + } + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..82924212 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.MainPluginPlugin")] +[assembly: AssemblyDescription("HydroDesktop Main Entry Point Extension")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CUAHSI")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.MainPluginPlugin")] +[assembly: AssemblyCopyright("Copyright © 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e008a526-3833-447f-9125-96cf8aa1f515")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Properties/Resources.Designer.cs new file mode 100644 index 00000000..eccf58a9 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Properties/Resources.Designer.cs @@ -0,0 +1,222 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.MainPlugin.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.MainPlugin.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap check_mark { + get { + object obj = ResourceManager.GetObject("check_mark", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap CuahsiLogo38 { + get { + object obj = ResourceManager.GetObject("CuahsiLogo38", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap download { + get { + object obj = ResourceManager.GetObject("download", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon download_icon { + get { + object obj = ResourceManager.GetObject("download_icon", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap legend { + get { + object obj = ResourceManager.GetObject("legend", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap logo_16x16 { + get { + object obj = ResourceManager.GetObject("logo_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap logo_32x32 { + get { + object obj = ResourceManager.GetObject("logo_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Logo_Medium { + get { + object obj = ResourceManager.GetObject("Logo_Medium", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Logo_Small1 { + get { + object obj = ResourceManager.GetObject("Logo_Small1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap recent_project { + get { + object obj = ResourceManager.GetObject("recent_project", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap table_16x16 { + get { + object obj = ResourceManager.GetObject("table_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap table_32x32 { + get { + object obj = ResourceManager.GetObject("table_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Template { + get { + object obj = ResourceManager.GetObject("Template", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap timeSeries { + get { + object obj = ResourceManager.GetObject("timeSeries", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap welcomeLogo5 { + get { + object obj = ResourceManager.GetObject("welcomeLogo5", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223562997]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]]. + /// + internal static string wgs_84_esri_string { + get { + return ResourceManager.GetString("wgs_84_esri_string", resourceCulture); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Properties/Resources.resx new file mode 100644 index 00000000..407bcaa6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Properties/Resources.resx @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\CuahsiLogo38.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Logo_Medium.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Logo_Small1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\table_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\timeSeries.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\table_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\legend.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223562997]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]] + + + ..\Resources\welcomeLogo5.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\recent_project.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Template.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\check_mark (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\down.1.002.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\logo_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\logo_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\down (1).ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Properties/Settings.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Properties/Settings.Designer.cs new file mode 100644 index 00000000..ad9e0d30 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Properties/Settings.Designer.cs @@ -0,0 +1,92 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.MainPlugin.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.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; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("HydroDesktop_Quick_Start_Guide_1.5.pdf")] + public string QuickStartGuideName { + get { + return ((string)(this["QuickStartGuideName"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("hydrodesktop_sample_projects")] + public string SampleProjectsDirectory { + get { + return ((string)(this["SampleProjectsDirectory"])); + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool IsWelcomeScreenDisplayed { + get { + return ((bool)(this["IsWelcomeScreenDisplayed"])); + } + set { + this["IsWelcomeScreenDisplayed"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://userguide.hydrodesktop.org")] + public string remoteHelpUri { + get { + return ((string)(this["remoteHelpUri"])); + } + set { + this["remoteHelpUri"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("HydroDesktop User Guide.pdf")] + public string localHelpUri { + get { + return ((string)(this["localHelpUri"])); + } + set { + this["localHelpUri"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://quickstart.hydrodesktop.org")] + public string quickStartUri { + get { + return ((string)(this["quickStartUri"])); + } + set { + this["quickStartUri"] = value; + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Properties/Settings.settings b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Properties/Settings.settings new file mode 100644 index 00000000..5c4892d3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Properties/Settings.settings @@ -0,0 +1,24 @@ + + + + + + HydroDesktop_Quick_Start_Guide_1.5.pdf + + + hydrodesktop_sample_projects + + + True + + + http://userguide.hydrodesktop.org + + + HydroDesktop User Guide.pdf + + + http://quickstart.hydrodesktop.org + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/CuahsiLogo38.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/CuahsiLogo38.png new file mode 100644 index 00000000..be469c9a Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/CuahsiLogo38.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Database.ico b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Database.ico new file mode 100644 index 00000000..39843e3b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Database.ico differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Database.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Database.png new file mode 100644 index 00000000..fdb28966 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Database.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Database32.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Database32.png new file mode 100644 index 00000000..87463a51 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Database32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Logo-Big.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Logo-Big.png new file mode 100644 index 00000000..98a64a8d Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Logo-Big.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Logo_Medium.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Logo_Medium.png new file mode 100644 index 00000000..6a9a4c51 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Logo_Medium.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Logo_Small1.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Logo_Small1.png new file mode 100644 index 00000000..cb11f3ba Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Logo_Small1.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/MetadataFetcher_16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/MetadataFetcher_16.png new file mode 100644 index 00000000..d4070e36 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/MetadataFetcher_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Metadata_Fetcher_16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Metadata_Fetcher_16.png new file mode 100644 index 00000000..f8a82f8f Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Metadata_Fetcher_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Metadata_Fetcher_161.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Metadata_Fetcher_161.png new file mode 100644 index 00000000..f8a82f8f Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Metadata_Fetcher_161.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Metadata_Fetcher_32.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Metadata_Fetcher_32.png new file mode 100644 index 00000000..02582c9f Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Metadata_Fetcher_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Template.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Template.png new file mode 100644 index 00000000..96ad3e6f Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/Template.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/add.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/add.png new file mode 100644 index 00000000..d1ae1776 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/add.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/add_16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/add_16.png new file mode 100644 index 00000000..6fab6c0b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/add_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/attribute_table.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/attribute_table.png new file mode 100644 index 00000000..783061e2 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/attribute_table.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/attribute_table_16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/attribute_table_16.png new file mode 100644 index 00000000..69d2ef7b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/attribute_table_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/check_mark (1).png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/check_mark (1).png new file mode 100644 index 00000000..3c97257d Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/check_mark (1).png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/check_mark.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/check_mark.png new file mode 100644 index 00000000..a9925a06 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/check_mark.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/cuahsi_logo1.GIF b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/cuahsi_logo1.GIF new file mode 100644 index 00000000..75a1b60d Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/cuahsi_logo1.GIF differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/cuahsi_logo_sm.gif b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/cuahsi_logo_sm.gif new file mode 100644 index 00000000..5836e7cd Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/cuahsi_logo_sm.gif differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/cursor_arrow_16x16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/cursor_arrow_16x16.png new file mode 100644 index 00000000..781788a3 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/cursor_arrow_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/cursor_arrow_32x32.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/cursor_arrow_32x32.png new file mode 100644 index 00000000..63e18fd2 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/cursor_arrow_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/defaultDatabase.sqlite b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/defaultDatabase.sqlite new file mode 100644 index 00000000..a002f50e Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/defaultDatabase.sqlite differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/defaultProject.xml b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/defaultProject.xml new file mode 100644 index 00000000..09ccd207 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/defaultProject.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/down (1).ico b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/down (1).ico new file mode 100644 index 00000000..baa18bb0 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/down (1).ico differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/down (1).png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/down (1).png new file mode 100644 index 00000000..84b5a9a4 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/down (1).png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/down.1.002.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/down.1.002.png new file mode 100644 index 00000000..f07fab4a Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/down.1.002.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/down.1.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/down.1.png new file mode 100644 index 00000000..71e6d947 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/down.1.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/exit.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/exit.png new file mode 100644 index 00000000..6d482a9e Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/exit.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/extensions.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/extensions.png new file mode 100644 index 00000000..c26b2758 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/extensions.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/extensions32.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/extensions32.png new file mode 100644 index 00000000..87531c1d Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/extensions32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/full_extent.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/full_extent.png new file mode 100644 index 00000000..0945a25c Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/full_extent.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/full_extent_16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/full_extent_16.png new file mode 100644 index 00000000..4373d2d9 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/full_extent_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/globe.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/globe.png new file mode 100644 index 00000000..f18761ad Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/globe.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/graph.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/graph.png new file mode 100644 index 00000000..bbaa8e86 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/graph.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/graphView.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/graphView.png new file mode 100644 index 00000000..5bbadef0 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/graphView.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/help.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/help.png new file mode 100644 index 00000000..248b5c20 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/help.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/help1.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/help1.png new file mode 100644 index 00000000..74a22f60 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/help1.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/help_16x16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/help_16x16.png new file mode 100644 index 00000000..f25fc3fb Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/help_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/help_32x32.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/help_32x32.png new file mode 100644 index 00000000..d60425f7 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/help_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/identifier.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/identifier.png new file mode 100644 index 00000000..01cd31b2 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/identifier.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/identifier_16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/identifier_16.png new file mode 100644 index 00000000..b50f535b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/identifier_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/info_16x16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/info_16x16.png new file mode 100644 index 00000000..e0715d00 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/info_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/info_32x32.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/info_32x32.png new file mode 100644 index 00000000..3f261420 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/info_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/legend.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/legend.png new file mode 100644 index 00000000..80149559 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/legend.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/logo_16x16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/logo_16x16.png new file mode 100644 index 00000000..0ded48af Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/logo_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/logo_32x32.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/logo_32x32.png new file mode 100644 index 00000000..a59aa803 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/logo_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/mapView.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/mapView.png new file mode 100644 index 00000000..485eb4b5 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/mapView.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/mapView32.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/mapView32.png new file mode 100644 index 00000000..03b251da Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/mapView32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/measure.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/measure.png new file mode 100644 index 00000000..a68ce816 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/measure.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/measure_16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/measure_16.png new file mode 100644 index 00000000..c925b451 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/measure_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/new_file.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/new_file.png new file mode 100644 index 00000000..5c147546 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/new_file.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/nodata.bmp b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/nodata.bmp new file mode 100644 index 00000000..a2f81cd5 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/nodata.bmp differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/online.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/online.png new file mode 100644 index 00000000..7fd8b2e1 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/online.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/open_file.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/open_file.png new file mode 100644 index 00000000..79d30549 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/open_file.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/orb32.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/orb32.png new file mode 100644 index 00000000..a5451a7e Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/orb32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/pan.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/pan.png new file mode 100644 index 00000000..cac42322 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/pan.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/pan_16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/pan_16.png new file mode 100644 index 00000000..687882a2 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/pan_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/print.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/print.png new file mode 100644 index 00000000..f3f24762 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/print.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/recent_project.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/recent_project.png new file mode 100644 index 00000000..ea0ca241 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/recent_project.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/save_as.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/save_as.png new file mode 100644 index 00000000..49a44f7d Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/save_as.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/save_file.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/save_file.png new file mode 100644 index 00000000..34327308 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/save_file.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/search_16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/search_16.png new file mode 100644 index 00000000..912a8484 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/search_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/select.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/select.png new file mode 100644 index 00000000..9cd9c816 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/select.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/select_16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/select_16.png new file mode 100644 index 00000000..31c4813b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/select_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/settings.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/settings.png new file mode 100644 index 00000000..fc80e91a Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/settings.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/table.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/table.png new file mode 100644 index 00000000..7d35c6b5 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/table.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/table2.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/table2.png new file mode 100644 index 00000000..ec579204 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/table2.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/tableView.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/tableView.png new file mode 100644 index 00000000..540fd511 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/tableView.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/table_16x16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/table_16x16.png new file mode 100644 index 00000000..8a7c0436 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/table_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/table_32x32.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/table_32x32.png new file mode 100644 index 00000000..0d1e11a8 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/table_32x32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/timeSeries.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/timeSeries.png new file mode 100644 index 00000000..9906fb26 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/timeSeries.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/welcomeLogo5.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/welcomeLogo5.png new file mode 100644 index 00000000..ed3b71db Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/welcomeLogo5.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_in.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_in.png new file mode 100644 index 00000000..a4543876 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_in.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_in_16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_in_16.png new file mode 100644 index 00000000..33b091d8 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_in_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_out.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_out.png new file mode 100644 index 00000000..a127a413 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_out.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_out_16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_out_16.png new file mode 100644 index 00000000..39dec8d3 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_out_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_to_next.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_to_next.png new file mode 100644 index 00000000..485fb339 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_to_next.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_to_next_16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_to_next_16.png new file mode 100644 index 00000000..1bb9a35d Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_to_next_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_to_previous.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_to_previous.png new file mode 100644 index 00000000..c20c4868 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_to_previous.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_to_previous_16.png b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_to_previous_16.png new file mode 100644 index 00000000..0f527924 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/Resources/zoom_to_previous_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/SampleProjectInfo.cs b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/SampleProjectInfo.cs new file mode 100644 index 00000000..285e413b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/SampleProjectInfo.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using DotSpatial.Extensions; + +namespace HydroDesktop.Plugins.MainPlugin +{ + public class SampleProjectInfo : ISampleProject + { + public string Name { get; set; } + + public string AbsolutePathToProjectFile { get; set; } + + public string Description { get; set; } + + public string Version { get; set; } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/SampleProjectInstaller.cs b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/SampleProjectInstaller.cs new file mode 100644 index 00000000..05c3f98a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/SampleProjectInstaller.cs @@ -0,0 +1,209 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using System.Diagnostics; +using HydroDesktop.Configuration; +using DotSpatial.Controls; +using DotSpatial.Extensions; + +namespace HydroDesktop.Plugins.MainPlugin +{ + /// + /// This class is responsible for installing sample projects that were shipped inside the installer. + /// It attempts to install the sample projects inside %appdata%\Roaming\HydroDesktop_xxx_exe\extensions + /// where xxx is the current HydroDesktop version. + /// If this fails then it tries to install the sample projects to the Documents folder. + /// + public class SampleProjectInstaller + { + /// + /// Gets the list of sample project files (project templates) available. + /// This will look in the %appdata%\Roaming\HydroDesktop and also in the %hydrodesktop_sample_projects% directory. + /// + public List FindSampleProjectFiles() + { + //create the AbsolutePathToExtensions directory in case this directory doesn't exist + if (!Directory.Exists(AppManager.AbsolutePathToExtensions)) + { + Directory.CreateDirectory(AppManager.AbsolutePathToExtensions); + } + + List sampleProjectList = new List(); + foreach (string absolutePath in Directory.EnumerateFiles(AppManager.AbsolutePathToExtensions, "*.dspx", SearchOption.AllDirectories)) + { + var sample = new SampleProjectInfo(); + sample.AbsolutePathToProjectFile = absolutePath; + sample.Name = Path.GetFileNameWithoutExtension(absolutePath); + sample.Description = "description"; + sample.Version = "1.0"; + sampleProjectList.Add(sample); + } + return sampleProjectList; + } + + private string CopyShippedSampleProject(string shippedProjectFile, string targetDirectory) + { + //the result path to return + string resultDspxPath = shippedProjectFile; + + //check if project file is in excluded names + string parentDir1 = Path.GetDirectoryName(shippedProjectFile); + string parentDir = parentDir1; + if (parentDir1.EndsWith("content") || parentDir1.EndsWith(@"content\")) + { + parentDir = Directory.GetParent(parentDir1).FullName; + } + + //copy directories + foreach (string dirPath in Directory.GetDirectories(parentDir, "*", SearchOption.AllDirectories)) + { + string newDir = dirPath.Replace(parentDir, targetDirectory); + if (!Directory.Exists(newDir)) + { + Directory.CreateDirectory(newDir); + } + } + + + //Copy all the files + foreach (string newPath in Directory.GetFiles(parentDir, "*.*", + SearchOption.AllDirectories)) + { + string newPath2 = newPath.Replace(parentDir, targetDirectory); + if (!File.Exists(newPath2)) + { + File.Copy(newPath, newPath2); + } + if (newPath2.EndsWith("*.dspx")) + { + resultDspxPath = newPath2; + } + } + + //return new project path + return resultDspxPath; + } + + private string TryToCreateTargetDirectory(string targetName) + { + string userProjDir = targetName; + + if (!Directory.Exists(userProjDir)) + { + try + { + Directory.CreateDirectory(userProjDir); + } + catch (Exception ex) + { + Trace.Write("error creating directory " + userProjDir + " " + ex.Message); + } + } + if (!Directory.Exists(userProjDir)) + { + try + { + userProjDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "HydroDesktop"); + Directory.CreateDirectory(userProjDir); + } + catch (Exception ex) + { + Trace.Write("error creating directory " + userProjDir + " " + ex.Message); + } + } + if (!Directory.Exists(userProjDir)) + { + try + { + userProjDir = Path.Combine(Path.GetTempPath(), "HydroDesktop"); + Directory.CreateDirectory(userProjDir); + } + catch { } + } + if (!Directory.Exists(userProjDir)) + throw new IOException("error creating directory for copying project: " + userProjDir); + + return userProjDir; + } + + public IEnumerable SetupInstalledSampleProjects(List downloadedSampleProjects) + { + List allSampleProjects = new List(); + List resultList = new List(); + + //this is usually C:\users\{username}\Documents\AppData\Roaming\{HydroDesktop version number}\extensions\packages. + //this is usually a hiddden folder that doesn't show up in windows explorer. + string absolutePathToExtensionsInAppdata = AppManager.AbsolutePathToExtensions; + + List sampleProjectFilesToInstall = new List(); + List installedSampleProjectNames = new List(); + foreach (SampleProjectInfo p in downloadedSampleProjects) + { + installedSampleProjectNames.Add(Path.GetFileNameWithoutExtension(p.AbsolutePathToProjectFile)); + allSampleProjects.Add(p); + } + + //step 1: check list of shipped sample projects in [Program Files]\HydroDesktop\hydrodesktop_sample_projects + //also add the project files from hd_sample_projects folder + string projDir = Properties.Settings.Default.SampleProjectsDirectory; + string shippedSampleProjectDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, projDir); + + //step 2: find names of shipped sample projects that should be copied to the %appdata% folder + //this excludes shpipped sample projects that have the same name as sample projects in %appdata% folder + if (Directory.Exists(shippedSampleProjectDir)) + { + string[] filesInShippedDir = Directory.GetFiles(shippedSampleProjectDir, "*.dspx", SearchOption.AllDirectories); + foreach (string shippedFile in filesInShippedDir) + { + string shippedProjectName = Path.GetFileNameWithoutExtension(shippedFile); + if (!installedSampleProjectNames.Contains(shippedProjectName)) + { + sampleProjectFilesToInstall.Add(shippedFile); + } + } + + //step 3: copy each sample project to target directory + string defaultTargetBaseDir = AppManager.AbsolutePathToExtensions; + string packagesDir = Path.Combine(AppManager.AbsolutePathToExtensions, "Packages"); + + foreach (string spf in sampleProjectFilesToInstall) + { + //attempt to create target directory + string targDirName = Path.Combine(packagesDir,Path.GetFileNameWithoutExtension(spf)); + + try + { + string targetDir = TryToCreateTargetDirectory(targDirName); + string newFullPath = CopyShippedSampleProject(spf, targetDir); + SampleProjectInfo spi = new SampleProjectInfo(); + spi.AbsolutePathToProjectFile = newFullPath; + spi.Description = Path.GetFileNameWithoutExtension(spi.AbsolutePathToProjectFile); + spi.Name = spi.Description; + resultList.Add(spi); + } + catch (Exception ex) + { + Trace.Write("Error copying project files: " + ex.Message); + } + } + } + + if(allSampleProjects.Count >= 3) + { + if (allSampleProjects.ElementAt(0).Name == "Europe Map" && + allSampleProjects.ElementAt(1).Name == "North America Map" && + allSampleProjects.ElementAt(2).Name == "World Map") + { + SampleProjectInfo europe = allSampleProjects.ElementAt(0) as SampleProjectInfo; + allSampleProjects.RemoveAt(0); + allSampleProjects.Insert(2, europe); + } + } + + resultList.AddRange(allSampleProjects); + return resultList; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/SelectionStatusDisplay.cs b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/SelectionStatusDisplay.cs new file mode 100644 index 00000000..fef3d80e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/SelectionStatusDisplay.cs @@ -0,0 +1,92 @@ +using System; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using DotSpatial.Symbology; + +namespace HydroDesktop.Plugins.MainPlugin +{ + /// + /// Displays info about active layer and about number of selected features + /// + public class SelectionStatusDisplay + { + public SelectionStatusDisplay(AppManager app) + { + App = app; + + SelectionStatusPanel = new StatusPanel(); + SelectionStatusPanel.Width = 250; + app.ProgressHandler.Add(SelectionStatusPanel); + + + App.Map.SelectionChanged += Map_SelectionChanged; + // Hack to make it so the Status Panel would update. + App.Map.FunctionModeChanged += Map_LayerRemoved; + App.Map.MapFrame.LayerSelected +=MapFrame_LayerSelected; + + App.SerializationManager.Deserializing += SerializationManager_Deserializing; + App.SerializationManager.NewProjectCreated += SerializationManager_NewProjectCreated; + } + + void SerializationManager_NewProjectCreated(object sender, SerializingEventArgs e) + { + App.Map.MapFrame.LayerSelected -= MapFrame_LayerSelected; + App.Map.MapFrame.LayerSelected += MapFrame_LayerSelected; + } + + void SerializationManager_Deserializing(object sender, SerializingEventArgs e) + { + App.Map.MapFrame.LayerSelected -= MapFrame_LayerSelected; + App.Map.MapFrame.LayerSelected += MapFrame_LayerSelected; + UpdateStatusPanel(); + } + + void MapFrame_LayerSelected(object sender, DotSpatial.Symbology.LayerSelectedEventArgs e) + { + UpdateStatusPanel(); + } + + void Map_SelectionChanged(object sender, EventArgs e) + { + UpdateStatusPanel(); + } + + void Map_LayerRemoved(object sender, EventArgs e) + { + UpdateStatusPanel(); + } + + void UpdateStatusPanel() + { + if (App.Map.MapFrame.IsSelected) + { + SelectionStatusPanel.Caption = "All Layers Selected"; + } + else + { + var selected = App.Map.Layers.SelectedLayer as IMapFeatureLayer; + if (selected != null && selected.Selection != null) + { + var layName = selected.LegendText; + SelectionStatusPanel.Caption = String.Format("Layer: {0}, Selected: {1}", layName, selected.Selection.Count); + } + else + { + SelectionStatusPanel.Caption = "No Layer Selected"; + } + } + } + + /// + /// Gets or sets the AppManager + /// + public AppManager App { get; set; } + + /// + /// Gets or sets the selection status panel + /// + public StatusPanel SelectionStatusPanel { get; set; } + + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/StatusShowSelectionCount.cs b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/StatusShowSelectionCount.cs new file mode 100644 index 00000000..e2ae4ae2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/StatusShowSelectionCount.cs @@ -0,0 +1,72 @@ +// ----------------------------------------------------------------------- +// +// TODO: Update copyright text. +// +// ----------------------------------------------------------------------- +using DotSpatial.Controls.Header; +using DotSpatial.Symbology; + +namespace DemoMap +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text; + using DotSpatial.Controls; + + /// + /// Displays latitude and longitude coordinates at the current cursor position. + /// + public class StatusShowSelectionCount : Extension + { + + private StatusPanel panel; + + public override void Activate() + { + App.Map.SelectionChanged += Map_SelectionChanged; + App.Map.MapFrame.LayerSelected += MapFrame_LayerSelected; + + panel = new StatusPanel(); + App.ProgressHandler.Add(panel); + + base.Activate(); + } + + void MapFrame_LayerSelected(object sender, LayerSelectedEventArgs e) + { + UpdateStatus(); + } + + private void UpdateStatus() + { + if (App.Map.Layers.SelectedLayer == null) + { + panel.Caption = "No selected layer"; + } + else + { + var layer = App.Map.Layers.SelectedLayer as IMapFeatureLayer; + if (layer != null) + { + panel.Caption = String.Format("{0}: {1} feature{2} selected", layer.LegendText, layer.Selection.Count, layer.Selection.Count == 1 ? null : "s"); + } + } + } + void Map_SelectionChanged(object sender, EventArgs e) + { + UpdateStatus(); + } + + public override void Deactivate() + { + App.Map.SelectionChanged -= Map_SelectionChanged; + App.Map.MapFrame.LayerSelected -= MapFrame_LayerSelected; + + App.ProgressHandler.Remove(panel); + + App.HeaderControl.RemoveAll(); + base.Deactivate(); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/WelcomeScreen.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/WelcomeScreen.Designer.cs new file mode 100644 index 00000000..8fab2cc1 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/WelcomeScreen.Designer.cs @@ -0,0 +1,212 @@ +namespace HydroDesktop.Plugins.MainPlugin +{ + partial class WelcomeScreen + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WelcomeScreen)); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.lblProductVersion = new System.Windows.Forms.Label(); + this.bsRecentFiles = new System.Windows.Forms.BindingSource(this.components); + this.btnBrowseProject = new System.Windows.Forms.Button(); + this.lstProjectTemplates = new HydroDesktop.Plugins.MainPlugin.CustomListBox(); + this.lblProgress = new System.Windows.Forms.ToolStripStatusLabel(); + this.toolStripProgressBar1 = new System.Windows.Forms.ToolStripProgressBar(); + this.panelStatus = new System.Windows.Forms.Panel(); + this.HelpButton = new System.Windows.Forms.Button(); + this.QuickStartButton = new System.Windows.Forms.Button(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.label2 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.bsRecentFiles)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // checkBox1 + // + this.checkBox1.AutoSize = true; + this.checkBox1.Checked = true; + this.checkBox1.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBox1.Location = new System.Drawing.Point(33, 200); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(150, 17); + this.checkBox1.TabIndex = 3; + this.checkBox1.Text = "Show this dialog at startup"; + this.checkBox1.UseVisualStyleBackColor = true; + this.checkBox1.Visible = false; + this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // lblProductVersion + // + this.lblProductVersion.AutoSize = true; + this.lblProductVersion.Location = new System.Drawing.Point(41, 54); + this.lblProductVersion.Name = "lblProductVersion"; + this.lblProductVersion.Size = new System.Drawing.Size(145, 13); + this.lblProductVersion.TabIndex = 8; + this.lblProductVersion.Text = "CUAHSI HydroDesktop 1.5.0"; + // + // btnBrowseProject + // + this.btnBrowseProject.Image = ((System.Drawing.Image)(resources.GetObject("btnBrowseProject.Image"))); + this.btnBrowseProject.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.btnBrowseProject.Location = new System.Drawing.Point(427, 13); + this.btnBrowseProject.Name = "btnBrowseProject"; + this.btnBrowseProject.Size = new System.Drawing.Size(78, 24); + this.btnBrowseProject.TabIndex = 5; + this.btnBrowseProject.Text = "Browse ..."; + this.btnBrowseProject.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btnBrowseProject.UseVisualStyleBackColor = true; + this.btnBrowseProject.Click += new System.EventHandler(this.btnBrowseProject_Click); + // + // lstProjectTemplates + // + this.lstProjectTemplates.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.lstProjectTemplates.Font = new System.Drawing.Font("Times New Roman", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lstProjectTemplates.FormattingEnabled = true; + this.lstProjectTemplates.ItemHeight = 14; + this.lstProjectTemplates.Location = new System.Drawing.Point(215, 37); + this.lstProjectTemplates.Name = "lstProjectTemplates"; + this.lstProjectTemplates.Size = new System.Drawing.Size(290, 181); + this.lstProjectTemplates.TabIndex = 3; + // + // lblProgress + // + this.lblProgress.Name = "lblProgress"; + this.lblProgress.Size = new System.Drawing.Size(226, 18); + this.lblProgress.Spring = true; + this.lblProgress.Text = "..."; + this.lblProgress.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // toolStripProgressBar1 + // + this.toolStripProgressBar1.Name = "toolStripProgressBar1"; + this.toolStripProgressBar1.Size = new System.Drawing.Size(150, 17); + // + // panelStatus + // + this.panelStatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panelStatus.Location = new System.Drawing.Point(3, 201); + this.panelStatus.Name = "panelStatus"; + this.panelStatus.Size = new System.Drawing.Size(513, 23); + this.panelStatus.TabIndex = 17; + // + // HelpButton + // + this.HelpButton.Image = ((System.Drawing.Image)(resources.GetObject("HelpButton.Image"))); + this.HelpButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.HelpButton.Location = new System.Drawing.Point(20, 142); + this.HelpButton.Name = "HelpButton"; + this.HelpButton.Size = new System.Drawing.Size(171, 30); + this.HelpButton.TabIndex = 18; + this.HelpButton.Text = "View HydroDesktop Help File"; + this.HelpButton.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.HelpButton.UseVisualStyleBackColor = true; + this.HelpButton.Click += new System.EventHandler(this.HelpButton_Click); + // + // QuickStartButton + // + this.QuickStartButton.Image = ((System.Drawing.Image)(resources.GetObject("QuickStartButton.Image"))); + this.QuickStartButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.QuickStartButton.Location = new System.Drawing.Point(20, 99); + this.QuickStartButton.Name = "QuickStartButton"; + this.QuickStartButton.Size = new System.Drawing.Size(171, 30); + this.QuickStartButton.TabIndex = 9; + this.QuickStartButton.Text = "View Quick Start Guide"; + this.QuickStartButton.UseVisualStyleBackColor = true; + this.QuickStartButton.Click += new System.EventHandler(this.QuickStartButton_Click); + // + // pictureBox1 + // + this.pictureBox1.Image = global::HydroDesktop.Plugins.MainPlugin.Properties.Resources.welcomeLogo5; + this.pictureBox1.Location = new System.Drawing.Point(8, 13); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(198, 41); + this.pictureBox1.TabIndex = 19; + this.pictureBox1.TabStop = false; + // + // label2 + // + this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.ForeColor = System.Drawing.SystemColors.InfoText; + this.label2.Location = new System.Drawing.Point(212, 24); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(119, 13); + this.label2.TabIndex = 6; + this.label2.Text = "Select a Project to Start"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // WelcomeScreen + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.Snow; + this.ClientSize = new System.Drawing.Size(517, 227); + this.Controls.Add(this.label2); + this.Controls.Add(this.lstProjectTemplates); + this.Controls.Add(this.btnBrowseProject); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.HelpButton); + this.Controls.Add(this.QuickStartButton); + this.Controls.Add(this.panelStatus); + this.Controls.Add(this.lblProductVersion); + this.Controls.Add(this.checkBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "WelcomeScreen"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = " Welcome to HydroDesktop"; + this.Load += new System.EventHandler(this.WelcomeScreen_Load); + ((System.ComponentModel.ISupportInitialize)(this.bsRecentFiles)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.Label lblProductVersion; + private System.Windows.Forms.BindingSource bsRecentFiles; + private System.Windows.Forms.Button btnBrowseProject; + private System.Windows.Forms.ToolStripStatusLabel lblProgress; + private System.Windows.Forms.ToolStripProgressBar toolStripProgressBar1; + private System.Windows.Forms.Panel panelStatus; + private System.Windows.Forms.Button QuickStartButton; + private System.Windows.Forms.Button HelpButton; + private System.Windows.Forms.PictureBox pictureBox1; + private CustomListBox lstProjectTemplates; + private System.Windows.Forms.Label label2; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/WelcomeScreen.cs b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/WelcomeScreen.cs new file mode 100644 index 00000000..493ee18f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/WelcomeScreen.cs @@ -0,0 +1,820 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.Composition; +using System.Diagnostics; +using System.IO; +using System.Reflection; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Extensions; +using DotSpatial.Projections; +using HydroDesktop.Common; +using HydroDesktop.Configuration; +using HydroDesktop.Help; +using System.Threading.Tasks; +using NuGet; +using System.Drawing; +using System.Linq; +using DotSpatial.Plugins.ExtensionManager; + +namespace HydroDesktop.Plugins.MainPlugin +{ + /// + /// The welcome screen form shown on program startup + /// + public partial class WelcomeScreen : Form + { + /// + /// Gets the list tools available. + /// + public List SampleProjects { get; set; } + + #region Private Variables + + private List onlineProjects = new List(); + private List _recentProjectFiles = new List(); + private AppManager _app; + private bool _newProjectCreated = false; + private readonly string _newProject = "New Project"; + private readonly string _localHelpUri = Properties.Settings.Default.localHelpUri; + private readonly string _remoteHelpUri = Properties.Settings.Default.remoteHelpUri; + private readonly string _quickStartUri = Properties.Settings.Default.quickStartUri; + + private readonly Packages packages = new Packages(); + private readonly DownloadForm downloadDialog = new DownloadForm(); + + private Extent _defaultMapExtent = new Extent(-170, -50, 170, 50); + + private ProjectManager myProjectManager; + + + + #endregion + + #region Constructor + + public WelcomeScreen(ProjectManager projManager) + { + InitializeComponent(); + myProjectManager = projManager; + lblProductVersion.Text = "CUAHSI HydroDesktop " + AppContext.Instance.ProductVersion; + + _app = projManager.App; + + lstProjectTemplates.Click += lstProjectTemplates_Click; + lstProjectTemplates.KeyDown += lstProjectTemplates_KeyDown; + FormClosing += WelcomeScreen_FormClosing; + + if (lstProjectTemplates.Items.Count > 0) + { + lstProjectTemplates.SelectedIndex = 0; + } + + packages.SetNewSource("https://www.myget.org/F/cuahsi/"); + UpdatePackageList(); + downloadDialog.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + downloadDialog.Icon = HydroDesktop.Plugins.MainPlugin.Properties.Resources.download_icon; + } + + private void lstProjectTemplates_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + lstProjectTemplates_Click(sender, e); + } + + #endregion + + #region Properties + /// + /// The list of recent project files + /// + public List RecentProjectFiles + { + get { return _recentProjectFiles; } + } + + /// + /// Returns true, if a new project was created + /// using template or using empty project + /// + public bool NewProjectCreated + { + get { return _newProjectCreated; } + } + #endregion + + #region Methods + + private void CreateProjectFromTemplate() + { + Map mainMap = _app.Map as Map; + if (mainMap != null) + { + if (lstProjectTemplates.SelectedIndex < 0) + { + MessageBox.Show("Please select a project."); + DialogResult = DialogResult.None; + return; + } + if (lstProjectTemplates.SelectedItem as string != null) + { + return; + } + + var selectedTemplate = lstProjectTemplates.SelectedItem as ISampleProject; + string projectFile = selectedTemplate.AbsolutePathToProjectFile; + + try + { + string newProjectFile = CopyToDocumentsFolder(projectFile); + _app.SerializationManager.OpenProject(newProjectFile); + if((newProjectFile.Contains("North America Map") + || newProjectFile.Contains("World Map")) + && WebUtilities.IsInternetAvailable() == true) + { + myProjectManager.ProjectToGeoLocation(); + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message + @" File: " + projectFile); + } + + + lblProgress.Text = "Creating new Project.. "; + this.Cursor = Cursors.WaitCursor; + + panelStatus.Visible = true; + + _newProjectCreated = true; + + this.DialogResult = DialogResult.OK; + + + this.Close(); + } + } + + private string CopyToDocumentsFolder(string projectFile) + { + string projDir = Path.GetDirectoryName(projectFile); + string docsDir = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); + + string dotSpatialDir = Path.Combine(docsDir, "DotSpatial"); + if (!Directory.Exists(dotSpatialDir)) + { + //todo check if the directory can be created + Directory.CreateDirectory(dotSpatialDir); + } + + string projName = Path.GetFileNameWithoutExtension(projectFile); + string newProjDir = Path.Combine(dotSpatialDir, projName); + if (!Directory.Exists(newProjDir)) + { + Directory.CreateDirectory(newProjDir); + } + + foreach (string file in Directory.GetFiles(projDir)) + { + File.Copy(file, Path.Combine(newProjDir, Path.GetFileName(file)), true); + } + string newProjFile = Path.Combine(newProjDir, Path.GetFileName(projectFile)); + return newProjFile; + } + + /// + /// Creates a new empty project + /// + private void CreateEmptyProject() + { + panelStatus.Visible = true; + myProjectManager.CreateEmptyProject(); + _newProjectCreated = true; + this.DialogResult = DialogResult.OK; + this.Close(); + } + + public void ReportProgress(int percent, string message) + { + //if (!progressBar1.Visible) progressBar1.Visible = true; + //progressBar1.Value = percent; + //lblProgress.Text = message; + } + + private void OpenUri(string uriString) + { + if (WebUtilities.IsInternetAvailable() == false) + { + MessageBox.Show("Internet connection not available.", "Could not open URI", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + try + { + WebUtilities.OpenUri(uriString); + } + catch (NullReferenceException) + { + MessageBox.Show("No URI provided.", "Could not open URI", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (UriFormatException ex) + { + MessageBox.Show("Invalid URI format for '" + uriString + "'.\n(" + ex.Message + ")", "Could not open URI", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (Exception ex) + { + if (ex.Message == "The system cannot find the path specified") + { + MessageBox.Show("Could not find the target at '" + uriString + "'.", "Could not open URI", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + else + { + MessageBox.Show("Could not open target at '" + uriString + "'.\n(" + ex.Message + ")", "Could not open URI", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + #endregion + + #region Event Handlers + + private void WelcomeScreen_Load(object sender, EventArgs e) + { + UpdateInstalledProjectsList(); + } + + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + FeatureSet fs = new FeatureSet(); + } + + private void btnBrowseProject_Click(object sender, EventArgs e) + { + OpenFileDialog fileDialog = new OpenFileDialog(); + fileDialog.Filter = "HydroDesktop Project File|*.dspx"; + fileDialog.Title = "Select the Project File to Open"; + if (fileDialog.ShowDialog() == DialogResult.OK) + { + this.Cursor = Cursors.WaitCursor; + OpenExistingProject(fileDialog.FileName); + this.Cursor = Cursors.Default; + } + } + + private void lstProjectTemplates_Click(object sender, EventArgs e) + { + var item = lstProjectTemplates.SelectedItem; + + if (!(item is string) || item as string == _newProject) + { + //if the map is empty or if the current project is already saved, start a new project + if (!_app.SerializationManager.IsDirty || _app.Map.Layers == null || _app.Map.Layers.Count == 0) + { + } + else if (String.IsNullOrEmpty(_app.SerializationManager.CurrentProjectFile)) + { + //if the current project is not specified - just ask to discard changes + if (MessageBox.Show("Start a new Project?", "Discard Changes?", MessageBoxButtons.YesNo) != DialogResult.Yes) + return; + } + else + { + //the current project is specified - ask the users if they want to save changes to current project + string saveProjectMessage = String.Format("Save changes to current project [{0}] ?", Path.GetFileName(_app.SerializationManager.CurrentProjectFile)); + DialogResult msgBoxResult = MessageBox.Show(saveProjectMessage, "Discard Changes?", MessageBoxButtons.YesNoCancel); + + if (msgBoxResult == DialogResult.Yes) + _app.SerializationManager.SaveProject(_app.SerializationManager.CurrentProjectFile); + + if (msgBoxResult == DialogResult.Cancel) + return; + } + + if (item as string == _newProject) + CreateEmptyProject(); + else if (item is ISampleProject && item is ProjectFileInfo) + OpenProject(); + else if (item is ISampleProject) + CreateProjectFromTemplate(); + else if (item is IPackage) + InstallSampleProject(); + } + } + + private void WelcomeScreen_FormClosing(object sender, FormClosingEventArgs e) + { + // Create an empty project if the x button is clicked + if (this.DialogResult != DialogResult.OK) + { + if (String.IsNullOrEmpty(_app.SerializationManager.CurrentProjectFile)) + { + e.Cancel = true; + CreateEmptyProject(); + } + } + } + + #endregion + + #region Methods + + private void OpenProject() + { + ProjectFileInfo selected = lstProjectTemplates.SelectedValue as ProjectFileInfo; + if (selected != null) + { + panelStatus.Visible = true; + this.Cursor = Cursors.WaitCursor; + OpenExistingProject(selected.FullPath); + this.Cursor = Cursors.Default; + } + } + + private void OpenExistingProject(string projectFileName) + { + lblProgress.Text = "Opening Project " + Path.GetFileNameWithoutExtension(projectFileName) + "..."; + this.Cursor = Cursors.WaitCursor; + + myProjectManager.OpenProject(projectFileName); + + this.Cursor = Cursors.Default; + + this.DialogResult = DialogResult.OK; + this.Close(); + } + + private void SetDefaultMapExtents() + { + double[] xy = new double[4]; + xy[0] = _defaultMapExtent.MinX; + xy[1] = _defaultMapExtent.MinY; + xy[2] = _defaultMapExtent.MaxX; + xy[3] = _defaultMapExtent.MaxY; + double[] z = new double[] { 0, 0 }; + ProjectionInfo wgs84 = KnownCoordinateSystems.Geographic.World.WGS1984; + Reproject.ReprojectPoints(xy, z, wgs84, _app.Map.Projection, 0, 2); + + _app.Map.ViewExtents = new Extent(xy); + } + + private void FindRecentProjectFiles() + { + this.RecentProjectFiles.Clear(); + + List existingRecentFiles = new List(); + + foreach (string recentFile in HydroDesktop.Configuration.Settings.Instance.RecentProjectFiles) + { + if (File.Exists(recentFile)) + { + if (!existingRecentFiles.Contains(recentFile)) //add to list only if not exists + { + existingRecentFiles.Add(recentFile); + } + } + } + + HydroDesktop.Configuration.Settings.Instance.RecentProjectFiles.Clear(); + foreach (string recentFile in existingRecentFiles) + { + HydroDesktop.Configuration.Settings.Instance.RecentProjectFiles.Add(recentFile); + RecentProjectFiles.Add(new ProjectFileInfo(recentFile)); + } + + bsRecentFiles.ResetBindings(false); + } + + private void UpdateInstalledProjectsList() + { + int index = lstProjectTemplates.SelectedIndex; + SampleProjectInstaller spi = new SampleProjectInstaller(); + SampleProjects = new List(); + + FindRecentProjectFiles(); + SampleProjects.Add("Recent Projects:"); + SampleProjects.Add(_newProject); + SampleProjects.AddRange(RecentProjectFiles); + + List templates = spi.SetupInstalledSampleProjects(spi.FindSampleProjectFiles()).ToList(); + if (templates.Count > 0) + { + SampleProjects.Add("Templates:"); + SampleProjects.AddRange(templates); + } + if (onlineProjects.Count > 0) + { + SampleProjects.Add("Online:"); + foreach (var item in onlineProjects) + { + if (item is IPackage && !HydroDesktop.Plugins.MainPlugin.WelcomeScreen.IsPackageInstalled(item as IPackage)) + SampleProjects.Add(item); + else if (item is string) + SampleProjects.Add(item); + } + } + if (SampleProjects.IsEmpty()) + SampleProjects.Add("Could not find any project files."); + + this.lstProjectTemplates.DataSource = this.SampleProjects; + this.lstProjectTemplates.DisplayMember = "Name"; + lstProjectTemplates.SelectedIndex = index; + } + + private IEnumerable FindSampleProjectFiles() + { + List list = new List(); + if (Directory.Exists(AppManager.AbsolutePathToExtensions)) + { + foreach (string current in Directory.EnumerateFiles(AppManager.AbsolutePathToExtensions, "*.dspx", SearchOption.AllDirectories)) + { + list.Add(new SampleProjectInfo + { + AbsolutePathToProjectFile = current, + Name = Path.GetFileNameWithoutExtension(current), + Description = "description", + Version = "1.0" + }); + } + } + return list; + } + + private void UpdatePackageList() + { + onlineProjects.Clear(); + onlineProjects.Add("Loading..."); + Task task = Task.Factory.StartNew(delegate + { + return ( + from p in this.packages.Repo.GetPackages() + where p.IsLatestVersion && (p.Tags.Contains("DotSpatialSampleProject") || p.Tags.Contains("SampleProject")) + select p).ToArray(); + }); + task.ContinueWith(delegate(Task t) + { + onlineProjects.Clear(); + if (t.Exception == null) + onlineProjects.AddRange(t.Result); + UpdateInstalledProjectsList(); + }, TaskScheduler.FromCurrentSynchronizationContext()); + } + + #endregion + + private SampleProjectInfo findTemplate(IPackage package) + { + string packagePath = GetPackagePath(package); + List projectTemplates = this.FindSampleProjectFiles() as List; + foreach (SampleProjectInfo p in projectTemplates) + { + if(p.AbsolutePathToProjectFile.Contains(packagePath)) + { + return p; + } + } + + return null; + } + + private void HelpButton_Click(object sender, EventArgs e) + { + try + { + if (WebUtilities.IsInternetAvailable() == false) + { + LocalHelp.OpenHelpFile(_localHelpUri); + } + else + { + OpenUri(_remoteHelpUri); + } + } + catch (Exception ex) + { + MessageBox.Show("Could not open help file at " + _localHelpUri + "\n" + ex.Message, "Could not open help", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + } + + private void QuickStartButton_Click(object sender, EventArgs e) + { + try + { + + if (WebUtilities.IsInternetAvailable() == false) + { + string quickStartGuideFile = Properties.Settings.Default.QuickStartGuideName; + LocalHelp.OpenHelpFile(quickStartGuideFile); + } + else + { + OpenUri(_quickStartUri); + } + + } + catch (Exception ex) + { + MessageBox.Show("Could not open help file at " + _localHelpUri + "\n" + ex.Message, "Could not open help", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void InstallSampleProject() + { + if (lstProjectTemplates.SelectedItem != null) + { + this.Cursor = Cursors.WaitCursor; + downloadDialog.Show(); + + IPackage pack = lstProjectTemplates.SelectedItem as IPackage; + + var inactiveExtensions = _app.Extensions.Where(a => a.IsActive == false).ToArray(); + + IEnumerable dependency = pack.Dependencies; + if (dependency.Count() > 0) + { + foreach (PackageDependency dependentPackage in dependency) + { + _app.ProgressHandler.Progress(null, 0, "Downloading Dependency " + dependentPackage.Id); + downloadDialog.ShowDownloadStatus(dependentPackage); + downloadDialog.SetProgressBarPercent(0); + downloadDialog.Refresh(); + + var dependentpack = packages.Install(dependentPackage.Id); + if (dependentpack == null) + { + string message = "We cannot download " + dependentPackage.Id + " Please make sure you are connected to the Internet."; + MessageBox.Show(message); + return; + } + } + } + + this._app.ProgressHandler.Progress(null, 0, "Downloading " + pack.Title); + downloadDialog.ShowDownloadStatus(pack); + downloadDialog.SetProgressBarPercent(0); + downloadDialog.Refresh(); + + this.packages.Install(pack.Id); + + _app.ProgressHandler.Progress(null, 0, "Installing " + pack.Title); + // Load the extension. + _app.RefreshExtensions(); + _app.ProgressHandler.Progress(null, 50, "Installing " + pack.Title); + + // Activate the extension(s) that was installed. + var extensions = _app.Extensions.Where(a => !inactiveExtensions.Contains(a) && a.IsActive == false); + + if (extensions.Count() > 0 && !_app.EnsureRequiredImportsAreAvailable()) + return; + + foreach (var item in extensions) + { + item.TryActivate(); + } + this._app.ProgressHandler.Progress(null, 0, "Ready."); + downloadDialog.Visible = false; + + UpdateInstalledProjectsList(); + selectDownloadedPackage(pack); + this.Cursor = Cursors.Default; + } + } + + private void selectDownloadedPackage(IPackage pack) + { + string packagePath = GetPackagePath(pack); + IEnumerable files = Directory.EnumerateFiles(packagePath, "*.dspx", SearchOption.AllDirectories); + if (NuGet.EnumerableExtensions.Any(files)) + { + foreach (var item in SampleProjects) + { + if (item is ISampleProject && Path.GetFileNameWithoutExtension(files.First()) == (item as ISampleProject).Name) + { + lstProjectTemplates.SelectedIndex = SampleProjects.IndexOf(item); + CreateProjectFromTemplate(); + break; + } + } + } + } + + public static bool IsPackageInstalled(IPackage pack) + { + string packagePath = GetPackagePath(pack); + + if (Directory.Exists(packagePath)) + { + return NuGet.EnumerableExtensions.Any(Directory.EnumerateFiles(packagePath, "*.dspx", SearchOption.AllDirectories)); + } + else + { + return false; + } + } + + private static string GetPackagePath(IPackage pack) + { + return Path.Combine(AppManager.AbsolutePathToExtensions, "Packages", GetPackageFolderName(pack)); + } + + private static string GetPackageFolderName(IPackage pack) + { + return string.Format("{0}.{1}", pack.Id, pack.Version); + } + } + + public class ProjectFileInfo : ISampleProject + { + public ProjectFileInfo(string fullPath) + { + FullPath = fullPath; + } + + public string FullPath { get; private set; } + public string Name + { + get + { + return Path.GetFileNameWithoutExtension(FullPath); + + } + } + public override string ToString() + { + return Name; + } + + public override bool Equals(object obj) + { + return Equals(obj as ProjectFileInfo); + } + + public bool Equals(ProjectFileInfo other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return string.Equals(Name, other.Name); + } + + public override int GetHashCode() + { + return (Name != null ? Name.GetHashCode() : 0); + } + + string ISampleProject.AbsolutePathToProjectFile + { + get { return FullPath; } + } + + string ISampleProject.Description + { + get { throw new NotImplementedException(); } + } + + string ISampleProject.Name + { + get { return Name; } + } + } + + public class CustomListBox : ListBox + { + int mouseIndex = -1; + + public CustomListBox() + { + DoubleBuffered = true; + this.SetStyle( + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, + true); + this.DrawMode = DrawMode.OwnerDrawFixed; // We're using custom drawing. + this.ItemHeight = 16; // Set the item height to 14. + this.MouseMove += ListBox_MouseMove; + } + + private void ListBox_MouseMove(object sender, MouseEventArgs e) + { + int index = IndexFromPoint(e.Location); + if(index != mouseIndex) + { + if(mouseIndex > -1) + { + int oldIndex = mouseIndex; + mouseIndex = -1; + if (oldIndex <= Items.Count - 1) + Invalidate(GetItemRectangle(oldIndex)); + } + mouseIndex = index; + if (mouseIndex > -1) + Invalidate(GetItemRectangle(mouseIndex)); + } + } + + protected override void OnDrawItem(DrawItemEventArgs e) + { + // Make sure we're not trying to draw something that isn't there. + if (e.Index >= this.Items.Count || e.Index <= -1) + return; + + object item = Items[e.Index]; + string text = ""; + SizeF stringSize = SizeF.Empty; + + if (item == null) + return; + + Color backgroundColor = Color.White; + Color fontColor = Color.Black; + + // Get the item object. + if (item is string && (item as string).Contains(':')) + { + text = item as string; + Font font = new Font(this.Font, FontStyle.Bold); + e.Graphics.FillRectangle(new SolidBrush(backgroundColor), e.Bounds); + stringSize = e.Graphics.MeasureString(text, font); + e.Graphics.DrawString(text, font, new SolidBrush(fontColor), + new PointF(0, e.Bounds.Y + (e.Bounds.Height - stringSize.Height)/2)); + base.OnDrawItem(e); + return; + } else if (item is string) + text = item as string; + else if (item is ISampleProject) + text = ((ISampleProject)item).Name; + else if (item is IPackage) + text = ((IPackage)item).ToString(); + + // Draw the background color depending on + // if the item is selected or not. + if ((e.State & DrawItemState.Selected) == DrawItemState.Selected) + { + backgroundColor = Color.FromArgb(51, 153, 255); + fontColor = Color.White; + } + else if (mouseIndex > -1 && mouseIndex == e.Index) + backgroundColor = Color.LightBlue; + + // The item is NOT selected. + // We want a white background color. + e.Graphics.FillRectangle(new SolidBrush(backgroundColor), e.Bounds); + + // Draw the item. + stringSize = e.Graphics.MeasureString(text, this.Font); + e.Graphics.DrawString(text, this.Font, new SolidBrush(fontColor), + new PointF(15, e.Bounds.Y + (e.Bounds.Height - stringSize.Height) / 2)); + if (item is ISampleProject && !(item is ProjectFileInfo)) + { + Image image = HydroDesktop.Plugins.MainPlugin.Properties.Resources.Template; + e.Graphics.DrawImage(image, 0, (e.Bounds.Y + (e.Bounds.Height - image.Height) / 2)); + } + else if (item is ISampleProject && item is ProjectFileInfo) + { + Image image = HydroDesktop.Plugins.MainPlugin.Properties.Resources.recent_project; + e.Graphics.DrawImage(image, 0, (e.Bounds.Y + (e.Bounds.Height - image.Height) / 2)); + } + else if (item is IPackage && !HydroDesktop.Plugins.MainPlugin.WelcomeScreen.IsPackageInstalled(item as IPackage)) + { + Image image = HydroDesktop.Plugins.MainPlugin.Properties.Resources.download; + e.Graphics.DrawImage(image, 0, (e.Bounds.Y + (e.Bounds.Height - image.Height) / 2)); + } + base.OnDrawItem(e); + } + + protected override void OnPaint(PaintEventArgs e) + { + Region iRegion = new Region(e.ClipRectangle); + e.Graphics.FillRegion(new SolidBrush(this.BackColor), iRegion); + if (this.Items.Count > 0) + { + for (int i = 0; i < this.Items.Count; ++i) + { + System.Drawing.Rectangle irect = this.GetItemRectangle(i); + if (e.ClipRectangle.IntersectsWith(irect)) + { + if ((this.SelectionMode == SelectionMode.One && this.SelectedIndex == i) + || (this.SelectionMode == SelectionMode.MultiSimple && this.SelectedIndices.Contains(i)) + || (this.SelectionMode == SelectionMode.MultiExtended && this.SelectedIndices.Contains(i))) + { + OnDrawItem(new DrawItemEventArgs(e.Graphics, this.Font, + irect, i, + DrawItemState.Selected, this.ForeColor, + this.BackColor)); + } + else + { + OnDrawItem(new DrawItemEventArgs(e.Graphics, this.Font, + irect, i, + DrawItemState.Default, this.ForeColor, + this.BackColor)); + } + iRegion.Complement(irect); + } + } + } + base.OnPaint(e); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/WelcomeScreen.resx b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/WelcomeScreen.resx new file mode 100644 index 00000000..88d2cb44 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/WelcomeScreen.resx @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAAA8AAAANCAYAAAB2HjRBAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA + Cv8BNGKaggAAAEtJREFUOE9j+P//Pxi3tLT8R8cwOVwYTIAUvn+/FwMTMgCnRhiGuQIdwzXDTCIWg/Qw + AB0N14zNVlx4VPOAaSYHgzWDbAUzSMYM/wEEFTwBC+ZCCwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7O + HOkAAAAEZ0FNQQAAsY8L/GEFAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAutJ + REFUOE9lU/tLk1EYlv6S0qwRmZQRkv0QRUWp2UVN08S8IN4ytWIzKVqpm1OnOTU12VbMqSna1Na0UVNn + 3irNUtAUIi9bZs7NbYp+ezrnm4arAw+c73vf53nf9znnuAFwwc5zeRyCHAI9gXkTdE//cf7N307cQcDb + H1xoLZDrGG3/JBaWVljQfcEzHUNiNpLDpbkuApvknogspe2HwYR6zTDi+Y3wiy5nQfcNHSOYMZoQeVdJ + RXq2RLYEeNfvNdjmF8wI59biTOJTdH2chslix9zPZShfDyMwTYY4fhMMixZcy66zUw4rQDYcr5Ai6yxJ + DOMqQL6RImgBwzgwNm3EktlG8gDtwDf4Rj9BsrAVc6SQVwg7DocK5BQruh20bUqm8L8hZSseipAgPKuO + FVjfYHA6VY6TSVKoeycgqe9lKJcK6N8NTbFzUvLeCyJ4hRbjcGQZjsZUQijvYgUMvyzwz1AgMLMWufJu + 9H7+Do8AoZ4KmBdNVhyJLIVnUL6TfK0MfrFVSBW1Y219Aw6HA/waHYKzGhGa3YSUQjWWiD+7/AXmvwK+ + URLsu1wEH9I2rXwiUcoaRpesfRhX77cg6qEK0TltuC3REoNX4b4pwI6QlNsM77ASYlQFjifU4OIdJfq+ + zGBgbBYxuW2IzXuFBJEGSUUdqFaNYGh8DrvP57MjUBOZpjej8ImU4FhcFU6lyHGJWw9xXR8kTUOIF6qR + LO7EzdK3yCzXoX98HrK2TwwZgTWRHqONHk1i3ku2+tm054h5pGLbpyvtsRYZhMit1qNGPYbFZTu8r4id + x0jiVIQb++CFzfjbggyxGgHE7fi8ViebrFsVTrJMM45l6xqSBSq7e4CAS0KuVzmO32g3EuM6+qcgUrxH + ekkneJU6SNVf8WGCXCpiXHphu31PkMj1Km8T4R0IEduqmwcdg8S85ZVVmEnFkUkDajWjzMGwEhs5+/8f + 03aQIPucPQKFetKmmcIzSKSnhtGYaz7c/gBCK56cIdijiwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACnElEQVQ4T12S7U+SYRTGWX9A + f0HzK2ytVVMzIB6cLDRBEwXB1OlWa3NWq4zaxBACBZV8mVJmioqCiFIx59bWZhsja6s1tWz1ufJlVIv8 + UHywq/vcIZZnOzvPuc7vup6HDdHemgiEvOMTwZ9j/iDG/AHWQdBOehrJFID0EysGq31jE3i7uort39vs + tlu0k0534tKW3YDR8clqfyCEZHILSytvYLlpR01tPapr6vi0tNiwtLyC5PcfII7xPCQTcO++D5ubXzD7 + aA6munOQCgUQiyVIJBKQiMWQyxUwVdViNvIQGxsJEE8+HsAWbyy+iPjiC9Q1XMJLyT5o8nJwRCogJ0+K + 43ky5GTnYn19DfVnzyP+7DmIJx8P8N4d+vXu/QdY7Q4Uny6HTpADh0SwKA7j2EkNlKpC5OerIJMpoNWW + wmq7BeLJxwP6vYN49XoZV5quQ6HMh1CkhU2VCxwU4Yn0AApKynCqWAu1uhCCoOQc8eTjAX39d7DwNAbz + jWasrX1GkaYUKp0RCyeyALEI6nIjStmXaTQl/E4c8eTjAT19A5ibf4xmixUV+kqU6djP0BugNRihMZj4 + s75CDx3Ti1mIxdLKefLxAE93XyryIAp35204nC64211o8vhg7hrO9DW2k87vnd0gnnw8oLnFOj3sG4d/ + cgrONjc629ogC29CmPoE5dRHPmknne7EEU8+HsAqi94eCkcwPDKKLpcLDfEtXIh9w8XYVz5pJ53uxBFP + vp0AkdF0ptHV4UFoegaBQBADvb3o6XCzdvFJO+l0J4548mUCWO2vNFY12h3tGBwaQXgmgmh0LtO0k053 + 4ogn078BVCRmX75qDlttjlSr3cn+NE78nY4U6XRPc7z2BuxUFuujrAneadpJ/68AiP4A+GEkbCJN8awA + AAAASUVORK5CYII= + + + + + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLiosAHR0gA62trgh9fIAAAAAAAAAAAAD///88urm5km1r + boxRUFKOUVFUjXZ1eI/BwcKE////HQAAAAAAAAAALy82AMPDxAhBQEYCqKeoANjX2AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPjpEAb25yAHt7ewMTExYAvr6/AObm5iWTkpWPXl5h2TU0 + OPcgHyP/Fxcb/xYVGf8WFRn/Fxcb/yAgJP81NDjyXFxeyZWVl3m9vb8lysnKADs6PwCenp4CAAAAAHJy + dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7e3tANPS1ACPjpIBfHx9AJWVlx9ycnSPOzo+7RYU + GP8REBT/LSwv/05MTv1nZGb9cm9w/XFvb/1kYmP9TUtN/S8tMf8YFxv/ISAk/0pJS+2TkpOPsbCyEZ2c + ngD///8CioqLADk4PAAAAAAAAAAAAAAAAAAAAAAAAAAAANPT1AAAAAAAtra4Arq6uwB9fX5LVFNX6xoZ + Hf8hISb/WFpe/JKUlv2xs7T+vr/B/sLDxf7CxMT/w8XG/sLExf+1trf+lpeY/lNSVf0sLC78GRkg/xsb + Iv9nZWbclpaWPJycnQCZmZoCfXx/AAAAAAAAAAAAAAAAAAAAAAAAAAAAnp2fAH18fwKLi44AmJiaejc2 + Ov8PDRH/JiUq+1ZZXv5xdnz/c3l//nR7gv53foX/d3+F/3mAhv9yeH3/anB2/2Fobv9UWFv+YGhw/lti + bv9CPTT+KSIW+hARG/8+PUDwZmVmV3NydQB/foEDAAAAADc2OAAAAAAAaWhrAAAAAACKiYwCf36AAIeH + iXoqKS3/FhUZ/FBaY/1wgYz/anqG/mh3gv5re4b/b3+L/3GBjv9tfor/ZHSA/2Bve/9daXP/S1FW/1lq + fP9WXmT/YEoQ/n5bAP6GYgL/Tj0T/AsNGv8+PUH8mJiYYnV1dgB+fn8CNTU2AKuqqwB2dXkAYF9hAm5t + bwCOjpBJNTQ4/xQRE/xDT1r9YnmK/1twf/5Zbnv/WW99/1FjcP9EUFv/Qk1W/0ZSXP9NXWj/SlZg/zY/ + R/9BWHD/WlY+/5RpAP+5hgD/soIA/61+AP62hAD/clYP/BASHP47Oj3venp7PE5NTwBKSUsCnZyeAIGA + gwR2dXYAiYmKHEdGSu4VFBf9LjxG/DRDT/8zRFD+OU9d/0JecP9GY3j/R2R6/0Ridv9BXHD/PlRp/ztP + ZP86S2H/OUle/2xaJf/DigD/ypQD/6Z7CP+ygwb/xJAC/8OQAv7NlQH/Zk8U+woMHf9mZWXgUlJSBFxc + XAGrqqsBLy4wBEhHSAB/gIKwGxcb/yUsOfw3VXD+NVFr/zRQav81UWv/MERY/yw/TP8tP0z/Lj5O/zBC + Tf8vSUn/ME9J/yVQTv9bXiP/vY4C/8qeCP/SpQX/w5oH/8OYB//bqgP/3q0C/9OkA/7hrgP+STwX+xUW + I/+PjYt/QEBBAEhHSwbDw8QA0NHRQDs6Pv0YGhz8KUg//ilOQ/8pT0L+KU9E/ylPRP8tdlD/NJBc/zWT + X/8vkV7/J49e/yeZY/8plF//MJFZ/02JRv+eiRX//8EA//7BAP//yAD/+sUA//K9AP/1vwD/9L4A/v7G + AP/Fmgf9FBMb/UpJTPOcnJokoqKkASEgIgBkZ2iUHxcg/ihWPPs3qWL/NqVi/jeraP84qmr/OK1u/zq0 + dP8ztHf/KqNu/0SZZf96n1r/p6hL/76lN//cqyH/46kL/8OdC/+Jhh//b4Er/3pyG//gqQD/+8YA/+y5 + Af/vugD/7rkA/vvDAP5dSxP7HB4t/52bl3mNjY8ATU9OFT8/QtcaGBz+M4xX/TiraP43pWn/OKht/ziq + cP85rHP/M6x1/1eXZ//Armr/68Jp//vKXP/mvEn/07g+/5yZN/9QjE3/L5Ri/ymcZ/8soGX/J5Fc/0Vp + Nf+2hgT//8cA//G9AP/tuQD//cUA/7KMCvwQEh/+WFZWyRYVGAHKz82RLikv9x8yKf83pWX+NqZo/zip + bf84q3H/N651/zmxef81s33/Sp5v/6esbv/lxnD/wqZa/1SLXP8unnH/IKh6/y+veP86rW7/O6ln/zqj + Yv89pl7/L5td/zBrQv+NfBb/67UA//bAAP/2wAD+47EC/igjGP47O0Lz///7G1xgYOUgGCH+JlE6/ziv + a/83p2v/OKtw/ziudv84sXv/OLR//zm3gf8zvIf/J66A/zyleP9opG7/lKdh/5SiVv9tn1r/QaNr/zeq + cP84qGv/N6Zm/zegYf87pFz/K4BQ/2FsJv/Ingb/5rMC/+a0Af/5wQD+T0EU/SQmMv3e29OFREhJ/x0V + Hf4sZkb/ObBt/jenbf84rXT/OLF6/zm0f/85t4P/OLqH/zm7iv86v47/NcCP/y27jP8zr4H/Wp1p/5CO + Rv9zlU//L6l0/zqrbv83p2n/NqRk/zegXv82mlj/NpVW/ziUVP81ekf/iHYV//3GAP9vWhL8GBsq/5eT + iZAwNDX+HRUd/ix2Tf86u3X/Oa5z/ziudv84sXz/OLWB/zi5h/85vIz/N7+Q/zi/kv84w5X/M7iM/2Gc + bf9slWL/S49i/06LW/8+pW7/Nq1y/zina/83pWX/OKFg/zefW/86pl3/Ko1Y/3NwHf/1vQD//sgA/oBn + EP0UFib+ZmJXjS4wMv4cGR7+L0w+/zF+Vv8umGX/N7Z7/zm/hv86wov/OsOQ/znBkv84wJP/N8WZ/zm/ + lP9BqIH/R6N6/0KXb/9biVz/YZVc/z6mcP82rHP/OKdr/zalZv83oWH/N51a/zagXP8xZj7/p38J/+u1 + Af/+xwH+gWgQ/RQWJv5jXlSNRENG/xgYHP5TTE//cGZp/kZKSf8wWkn/LnJX/yyFZP8unnf/NLmO/zbT + pP87xJv/X4Nn/1WXc/9Hv4//QruK/zjCjP8wxIz/OL2C/zu3ef87s3P/OK5s/zirZv84pl//OKVd/zal + Xf8iiVb/S1wi//G4AP91Xg/8Fhkr/46KgJBjYmX2Ghke/01MTv+WlJH/hX9+/3Rqa/9nWl7/VExP/0dD + Rf8xS0T/Lnhl/z9cUP9WhWr/MoNr/yqLbv8uj2//MXxg/zd+X/8vfFv/JHpW/yV5Uv8qflL/KX1O/yt4 + Sv8td0n/NHpM/0OIV/9NeVT/y69O/l1PKf0eICz9zMrFhbKytJAlJSn1NzY5/6GenP6Uko//jo2K/4aF + gv9/fXr/dnNy/2ZfYP9cT1H/dWdb/1ZVUP9OSUv/TUJE/1dOTf9PREn/Mikz/y4kKP9MQTn/pZBt/8Ou + gf/Aqn//x6+D/8uzhv/YvYz/7c2Y//fbov7t16f+Liwt/jY1OfT///8crq6uJEFBROIbGh7+npub/ayp + p/6dmpn/l5SS/46Lif+Egn//fXt5/3h2cv96dm3/Y2Be/15dWv9fX13/OjxB/0A/Of+UhmD/18KF//rd + lv//45r+/d+Y///jm/7/4Zn+/+GY//zelv7ly4r//+WZ/76oc/0PDxb+Wllb2hgXGwYSEhMCcXByrhQT + F/5zcXP70s/O/7m1sv+ppqP/oZ6c/5yZl/+QjYv/hoOB/3x5eP9/e3f/ZGNm/zo5Ov+Wg1T+6Mt8///k + jf3/3oj699WE+/bUg/3/3oj78M58/fnWgf3004P8+daF/nlqSv7kx3v+cWNG+xcYIv+Fg4N5c3F0AJ6e + nwC7urtELi0x+ykoK/2PjpD+q6uz/srHxP++u7j/pKGg/6Sgnv+jn5v/lpOS/2VmbP9MRjz+wKRc/v/c + e//61Hb827pm/9a3av/sx2n/6cZq/21dPP9rZFT/qZNg//HLav//2nP/SkIy/1RLN/0rKCP+Nzc9646O + jSaampsDLS0tBUZFRgBzcnO3EhIa/z42I/tzZT3/dXeA/qKhov+dm5v/o6Cg/3R0e/9KRkD/dmY7/+bB + Wf//1Wb//9Zg/cmmS/9mYVvdQ0NGcqyhhrp8clnzR0lUvpCTnkSanaVcuqqB36CNXvkrKCX+EhMd+yAf + JP16eXujKCcpADk4PAB3d3kGZWVmAHx7ezBBQET4GRgd/MCgQP2piSr/Z2lw/vr7/f+Mjpf/dWQ1/+G6 + QP/+0U3/+c1M/vTIR/2tkkT9qJ+Hsnh+lBtSUlcAAAAAAP///x0AAAAAp6WhAE5NTwBiZXEKcXOAcSQk + KfsaGBv6FxYa/z49Qf+IiIrHzs3OTnFxcwBMTE0CSEhJAJSTk3QhISn/GRgc+tewMv7AnjP/bG9+/pZ/ + Ov/3xy3/+co3/+/CMv/2yDT95Lcs/kpHROymq7t2jIuFoY+QlWRgYGMAYGBkAPTz7gCZmpwECwoMABYV + FwBdXF2iGRgc/y0sMP9ZWVvYX19ikZSUll/T0tMbgoKDAAAAAAB6eXsDbm1wAHV0dIMhIin/GRgc+7iU + H/3Lnwz/9MIa/vLBH//vvh3/8sEe//LAHf/zwh3/w50e/sqhHP/arA3/lH85/Wh0oF1xe55io6OjG7Gy + swDc3dwUvb29OmFgY+poZ2qwx8fIT////wefnp4AfX1+AMC9vwAAAAAAAAAAAL29vQBzc3UCbW1uA3Bv + b4MmJiz/Cw0Z/4dtG/votgr+/8gF/vjCB/7wvAj/7rsI/u67CP75wwj/9sEG/PnECvvksgX/zKMY/5uG + PP+cpMRDdnZ0SFpZXNegn6G68/P0awAAAADk5OUAiYiLAE9OTwNcXF4D4ODhAAAAAAAAAAAAx8bHAFJX + VwBgYGAAenl7AJWVlXZBQUT2CQsd/y4nF/6NcQ782KkE/vfAAP7/yAD+/8cA/v7FAP/+xgD+/8cA///J + AP7/yQD9lXgT+1BUZ9srKSn/ERAU/2dmaeSGhYYvuLe4AaysrQTKyswABAMFAGtrbQAAAAAAAAAAAAAA + AAD5+fgAioqLAAAAAACZmZoCqamqAMPDwzNvbm2zMDA5/g8RI/8dGxr/TD8W/3piEf+YeQ3/p4MM/6WC + DP+Udg7/c10S/0I3GP8aGBj/ERAU/zs6Pv6Fg4asjIyNIF9fYACurK4AtLS1AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH18fgD///8CwcHCAAAAAAB4eHdFZmRiq0VESOMkJjL6ExYm/BIU + JP4TFSP/ExUj/xIUJP4VFyf9Jygz9U1NUuKJiIqVeHh4QNXU1QDZ2doA////Ar++vwC8u70AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWRmAAAAAAC+vr8G////BElJSwB8fHsA////Mrm2 + sLhvbGTQVlJN+0A9Ov9DPzz/W1hT+n97c9XBv7eQ////KAAAAAAmJicA////BMrKywQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//gf///AA///AAD//gAAf/gAAB/wAAAP8AAAD+AAAAfAAAADwAAAA4AA + AAGAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAcAAAAPAAAID4AB/geAA + H4HwAAef+AAGP/wAAH//AAD//8AD///wD/8= + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/app.config b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/app.config new file mode 100644 index 00000000..10891db6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/app.config @@ -0,0 +1,70 @@ + + + + +
    + + +
    + + + + + + HydroDesktop_Quick_Start_Guide_1.5.pdf + + + hydrodesktop_sample_projects + + + + + + + True + + + http://userguide.hydrodesktop.org + + + HydroDesktop User Guide.pdf + + + http://quickstart.hydrodesktop.org + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Plugins/HydroDesktop.Plugins.MainPlugin/packages.config b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/packages.config new file mode 100644 index 00000000..1632629c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MainPlugin/packages.config @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Classes/DatabaseOperations.cs b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Classes/DatabaseOperations.cs new file mode 100644 index 00000000..cf8f65b2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Classes/DatabaseOperations.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections.Generic; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.MetadataFetcher +{ + class DatabaseOperations + { + #region Public Members + + /// + /// Builds a list of Service Endpoint URLs from the metadata cache database + /// + /// true if parameters (e.g., "?WSDL") should be trimmed from the URLs before adding to the output + /// List of Service Endpoint URLs from the metadata cache database + public static List GetCacheServiceUrls ( bool trimUrlParameters ) + { + List urls = new List (); + + MetadataCacheManagerSQL cacheManager = GetCacheManager(); + + List serviceList = cacheManager.GetAllServices () as List; + + foreach ( DataServiceInfo serviceInfo in serviceList ) + { + string url = serviceInfo.EndpointURL.Trim (); + + if ( trimUrlParameters == true ) + { + int index = url.IndexOf ( "?" ); + if ( index > -1 ) + { + url = url.Substring ( 0, index ); + } + } + + urls.Add ( url ); + } + + return urls; + } + + public static bool CacheHasServiceUrl ( string serviceUrl ) + { + // Trim the query off of the URL + serviceUrl = serviceUrl.Trim ().ToLower (); + int index = serviceUrl.IndexOf ( "?" ); + if ( index > -1 ) + { + serviceUrl = serviceUrl.Substring ( 0, index ); + } + + // Get the services from the metadata cache database + MetadataCacheManagerSQL cacheManager = GetCacheManager(); + List serviceList = cacheManager.GetAllServices () as List; + + // Compare service URLs + foreach ( DataServiceInfo serviceInfo in serviceList ) + { + string existingUrl = serviceInfo.EndpointURL.ToLower ().Trim (); + + index = existingUrl.IndexOf ( "?" ); + if ( index > -1 ) + { + // Trim the query off of the URL + existingUrl = existingUrl.Substring ( 0, index ); + } + + if ( serviceUrl == existingUrl ) + { + return true; + } + } + + return false; + } + + public static DataServiceInfo GetDataServiceFromCache ( string serviceUrl ) + { + // Trim the query off of the URL + string trimmedServiceUrl = serviceUrl.Trim ().ToLower (); + int index = trimmedServiceUrl.IndexOf ( "?" ); + if ( index > -1 ) + { + trimmedServiceUrl = trimmedServiceUrl.Substring ( 0, index ); + } + + // Get the services from the metadata cache database + MetadataCacheManagerSQL cacheManager = GetCacheManager(); + List serviceList = cacheManager.GetAllServices () as List; + + // Compare service URLs + foreach ( DataServiceInfo serviceInfo in serviceList ) + { + string existingUrl = serviceInfo.EndpointURL.ToLower ().Trim (); + + // Trim the query off of the URL + index = existingUrl.IndexOf ( "?" ); + if ( index > -1 ) + { + existingUrl = existingUrl.Substring ( 0, index ); + } + + if ( trimmedServiceUrl == existingUrl ) + { + return serviceInfo; + } + } + + // If we made it this far, a matching service wasn't found + throw new Exception ( "Matching data service record not found for given service URL: " + serviceUrl ); + } + + public static MetadataCacheManagerSQL GetCacheManager() + { + return new MetadataCacheManagerSQL(DatabaseTypes.SQLite, HydroDesktop.Configuration.Settings.Instance.MetadataCacheConnectionString); + } + + #endregion + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Classes/HydroPortalUtils.cs b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Classes/HydroPortalUtils.cs new file mode 100644 index 00000000..2a88b013 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Classes/HydroPortalUtils.cs @@ -0,0 +1,544 @@ +using System; +using System.Collections.Generic; +using System.Net; +using System.Xml; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.MetadataFetcher +{ + public class HydroPortalUtils + { + #region Variables + + private string _baseUrl; + private int _maxRecords; + + #endregion + + #region Constructor + + public HydroPortalUtils ( string portalUrl ) + { + _baseUrl = GetBasePortalUrl ( portalUrl ); + _maxRecords = 100; + } + + #endregion + + #region Private Members + + /// + /// Returns the base URL of the HydroPortal. This is required in order to properly construct REST queries on the portal. + /// + /// Original HydroPortal URL, e.g., https://hydroportal.crwr.utexas.edu/geoportal/catalog/main/home.page or https://hydroportal.crwr.utexas.edu/geoportal + /// Base HydroPortal URL, e.g., https://hydroportal.crwr.utexas.edu/geoportal + private string GetBasePortalUrl ( string portalUrl ) + { + // Create a URI object from the given portal URL. This accounts for possible redirect. + Uri uri = WebOperations.GetUri ( portalUrl, true ); + string baseUrl = uri.ToString (); + + // Trim the home page fluff + int index = baseUrl.ToLower ().IndexOf ( "geoportal/catalog" ); + if ( index > -1 ) + { + baseUrl = portalUrl.Substring ( 0, index + 9 ); + } + + // Trim current searches + index = baseUrl.IndexOf ( "geoportal/rest" ); + if ( index > -1 ) + { + baseUrl = portalUrl.Substring ( 0, index + 9 ); + } + + // Trim parameters + index = baseUrl.IndexOf ( "?" ); + if ( index > -1 ) + { + baseUrl = portalUrl.Substring ( 0, index ); + } + + // Make sure this is still a valid URL + if ( !WebOperations.IsUrlValid ( baseUrl, false ) ) + { + baseUrl = uri.ToString (); // Revert back to the URI that worked + } + + // Remove trailing backslash + index = baseUrl.LastIndexOf ( "/" ); + if ( index == (baseUrl.Length - 1) ) + { + baseUrl = baseUrl.Substring ( 0, baseUrl.Length - 1 ); + } + + return baseUrl; + } + + /// + /// Parses a HydroPortal page for a WaterOneFlow service registered using the FGDC metadata standard. + /// + /// The URL to the HydroPortal page describing the service + /// If the page describes a WaterOneFlow service, a DataServiceInfo object describing the service is returned + private DataServiceInfo ParseFgdcPage ( string pageUrl ) + { + DataServiceInfo serviceInfo = new DataServiceInfo (); + + try + { + using ( XmlTextReader reader = new XmlTextReader ( pageUrl ) ) + { + while ( reader.Read () ) + { + if ( reader.NodeType == XmlNodeType.Element ) + { + // Abstract + if ( reader.Name.ToLower () == "abstract" ) + { + reader.Read (); + serviceInfo.Abstract = reader.Value; + } + + // Citation + else if ( reader.Name.ToLower () == "citation" ) + { + string origin = "(unknown author)"; + string title = "(unknown title)"; + string pubplace = "(unknown organization)"; + string pubdate = "unknown date"; + string link = "(unknown link)"; + + while ( reader.Read () ) + { + if ( reader.NodeType == XmlNodeType.Element ) + { + if ( reader.Name.ToLower () == "origin" ) + { + reader.Read (); + if ( reader.Value.Trim () != String.Empty ) + { + origin = reader.Value; + } + } + else if ( reader.Name.ToLower () == "title" ) + { + reader.Read (); + if ( reader.Value.Trim () != String.Empty ) + { + title = reader.Value; + } + } + else if ( reader.Name.ToLower () == "pubplace" ) + { + reader.Read (); + if ( reader.Value.Trim () != String.Empty ) + { + pubplace = reader.Value; + } + } + else if ( reader.Name.ToLower () == "pubdate" ) + { + reader.Read (); + if ( reader.Value.Trim () != String.Empty ) + { + pubdate = reader.Value; + } + } + else if ( reader.Name.ToLower () == "onlink" ) + { + reader.Read (); + if ( reader.Value.Trim () != String.Empty ) + { + link = reader.Value; + } + } + } + else if ( reader.NodeType == XmlNodeType.EndElement && reader.Name == "citation" ) + { + break; + } + } + serviceInfo.Citation = origin + ". " + title + ". " + pubdate + ". " + pubplace + ". <" + link + ">."; + } + + // Contact Name and Email + else if ( reader.Name.ToLower () == "ptcontac" ) + { + string contactName = ""; + string contactEmail = ""; + + while ( reader.Read () ) + { + if ( reader.NodeType == XmlNodeType.Element ) + { + if ( reader.Name.ToLower () == "cntper" ) + { + reader.Read (); + contactName = reader.Value; + } + else if ( reader.Name.ToLower () == "cntemail" ) + { + reader.Read (); + contactEmail = reader.Value; + } + } + else if ( reader.NodeType == XmlNodeType.EndElement && reader.Name == "ptcontac" ) + { + break; + } + } + + serviceInfo.ContactEmail = contactEmail; + serviceInfo.ContactName = contactName; + } + + // Bounding Box + else if ( reader.Name == "bounding" ) + { + double west = 0; + double east = 0; + double north = 0; + double south = 0; + + while ( reader.Read () ) + { + if ( reader.NodeType == XmlNodeType.Element ) + { + if ( reader.Name.ToLower () == "westbc" ) + { + reader.Read (); + double.TryParse ( reader.Value, out west ); + } + else if ( reader.Name.ToLower () == "eastbc" ) + { + reader.Read (); + double.TryParse ( reader.Value, out east ); + } + else if ( reader.Name.ToLower () == "northbc" ) + { + reader.Read (); + double.TryParse ( reader.Value, out north ); + } + else if ( reader.Name.ToLower () == "southbc" ) + { + reader.Read (); + double.TryParse ( reader.Value, out south ); + } + } + else if ( reader.NodeType == XmlNodeType.EndElement && reader.Name == "bounding" ) + { + break; + } + } + + serviceInfo.EastLongitude = east; + serviceInfo.WestLongitude = west; + serviceInfo.NorthLatitude = north; + serviceInfo.SouthLatitude = south; + } + + // Service Code + else if ( reader.Name == "ServiceCode" ) + { + reader.Read (); + serviceInfo.ServiceCode = reader.Value; + } + + // Service Endpoint URL + else if ( reader.Name == "WaterOneFlowURL" ) + { + reader.Read (); + serviceInfo.EndpointURL = WebOperations.GetCanonicalUri ( reader.Value, true ); + } + + // Service Description URL + else if ( reader.Name == "MapServiceURL" ) + { + reader.Read (); + serviceInfo.DescriptionURL = reader.Value; + } + + // Service Title + else if ( reader.Name == "ServiceName" ) + { + reader.Read (); + serviceInfo.ServiceTitle = reader.Value; + } + } + } + } + + } + catch ( Exception ex ) + { + throw new WebException ( "Could not read XML response from " + pageUrl + ".\n" + ex.Message ); + } + + return serviceInfo; + } + + /// + /// Parses a HydroPortal page for a WaterOneFlow service registered using the Dublin Core metadata standard. + /// + /// The URL to the HydroPortal page describing the service + /// If the page describes a WaterOneFlow service, a DataServiceInfo object describing the service is returned + private DataServiceInfo ParseDublinCorePage ( string pageUrl ) + { + DataServiceInfo serviceInfo = new DataServiceInfo (); + + try + { + using ( XmlTextReader reader = new XmlTextReader ( pageUrl ) ) + { + while ( reader.Read () ) + { + if ( reader.NodeType == XmlNodeType.Element ) + { + // Abstract + if ( reader.Name.ToLower () == "dc:description" ) + { + reader.Read (); + serviceInfo.Abstract = reader.Value; + } + + // Bounding Box + else if ( reader.Name == "ows:WGS84BoundingBox" ) + { + double west = 0; + double east = 0; + double north = 0; + double south = 0; + + while ( reader.Read () ) + { + if ( reader.NodeType == XmlNodeType.Element ) + { + if ( reader.Name == "ows:LowerCorner" ) + { + reader.Read (); + string[] lowerCorner = reader.Value.Split ( ' ' ); + if ( lowerCorner.Length == 2 ) + { + double.TryParse ( lowerCorner[0], out west ); + double.TryParse ( lowerCorner[1], out south ); + } + } + else if ( reader.Name == "ows:UpperCorner" ) + { + reader.Read (); + string[] upperCorner = reader.Value.Split ( ' ' ); + if ( upperCorner.Length == 2 ) + { + double.TryParse ( upperCorner[0], out east ); + double.TryParse ( upperCorner[1], out north ); + } + } + } + else if ( reader.NodeType == XmlNodeType.EndElement && reader.Name == "ows:WGS84BoundingBox" ) + { + break; + } + } + + serviceInfo.EastLongitude = east; + serviceInfo.WestLongitude = west; + serviceInfo.NorthLatitude = north; + serviceInfo.SouthLatitude = south; + } + + // Service Code + else if ( reader.Name.ToLower () == "dc:title" ) + { + reader.Read (); + serviceInfo.ServiceCode = reader.Value; + } + + // Service Endpoint URL + else if ( reader.Name.ToLower () == "dc:creator" ) + { + reader.Read (); + serviceInfo.EndpointURL = WebOperations.GetCanonicalUri ( reader.Value, true ); + } + + // Service Description URL + else if ( reader.Name == "dct:references" ) + { + reader.Read (); + serviceInfo.DescriptionURL = reader.Value; + } + + // Service Title + else if ( reader.Name.ToLower () == "dct:alternative" ) + { + reader.Read (); + serviceInfo.ServiceTitle = reader.Value; + } + } + } + } + + } + catch ( Exception ex ) + { + throw new WebException ( "Could not read XML response from " + pageUrl + ".\n" + ex.Message ); + } + + return serviceInfo; + } + + #endregion + + #region Public Members + + #region Properties + + public int MaxRecordsToRetrieve + { + get + { + return _maxRecords; + } + set + { + if ( value <= 0 ) + { + throw new Exception ( "Value must be greater than zero" ); + } + else if ( value > 100 ) + { + throw new Exception ( "Value must be less than or equal to 100" ); + } + else + { + _maxRecords = value; + } + } + } + + public string HydroPortalUrl + { + get + { + return _baseUrl; + } + } + + #endregion + + #region Methods + + /// + /// Gets the unique IDs of items registered with the HydroPortal + /// + /// List of unique IDs of items registered with the HydroPortal + public List GetRegisteredItemIds () + { + List idList = new List (); + + // Add the arguments to search for all item registered with the portal + string url = _baseUrl + "/rest/find/document?f=atom&max=" + _maxRecords.ToString (); // atom search returns the least bytes of data among the portal search types + + // Retrieve the search results + try + { + using ( XmlTextReader reader = new XmlTextReader ( url ) ) + { + while ( reader.Read () ) + { + // Look for elements with child elements like urn:uuid:73CBDC5C-7559-4FD9-B510-AC6EFF37C751 + if ( reader.NodeType == XmlNodeType.Element ) + { + if ( reader.Name.ToLower () == "entry" ) + { + while ( reader.Read () ) + { + if ( reader.NodeType == XmlNodeType.Element ) + { + if ( reader.Name.ToLower () == "id" ) + { + reader.Read (); + + // Get the part of the ID past the last colon + string idText = reader.Value.Trim (); + + int index = idText.LastIndexOf ( ":" ); + if ( index > -1 ) + { + idText = idText.Substring ( index + 1 ); + } + + // Add to the list of IDs + if ( idText != String.Empty ) + { + idList.Add ( idText ); + break; + } + } + } + else if ( reader.NodeType == XmlNodeType.EndElement && reader.Name == "entry" ) + { + break; + } + } + } + } + } + } + } + catch ( Exception ex ) + { + throw new WebException ( "Could not read XML response from " + url + ".\n" + ex.Message ); + } + + return idList; + } + + public DataServiceInfo ReadWaterOneFlowServiceInfo ( string portalPageId ) + { + DataServiceInfo serviceInfo = null; + + // Create the URL to the descriptive info about the registered item on the HydroPortal + string url = _baseUrl + "/rest/document?id={" + portalPageId + "}"; + + // Determine if this is registered using the FGDC standard or Dublin Core standard, or neither + string response = WebOperations.DownloadASCII ( url ); + int index = response.IndexOf ( "CUAHSIService" ); + if ( index > -1 ) + { + // FGDC Standard + index = response.IndexOf ( "FGDC Content Standards for Digital Geospatial" ); + if ( index > -1 ) + { + index = response.IndexOf ( "" ); + if ( index > -1 ) + { + serviceInfo = ParseFgdcPage ( url ); + } + } + } + //else + //{ + // index = response.IndexOf ( "The Dublin Core Metadata Initiative" ); + // if ( index > -1 ) + // { + // // Dublin Core Standard + // string detailsUrl = _baseUrl + "/catalog/search/viewMetadataDetails.page?uuid={" + portalPageId + "}"; + + // response = WebOperations.DownloadASCII ( detailsUrl ); + // index = response.IndexOf ( "WaterOneFlow URL" ); + + // if ( index > -1 ) + // { + // serviceInfo = ParseDublinCorePage ( url ); + // } + // } + //} + + return serviceInfo; + } + + #endregion + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Classes/Main.cs b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Classes/Main.cs new file mode 100644 index 00000000..6c0ffdc4 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Classes/Main.cs @@ -0,0 +1,51 @@ +#region Namespaces + +using System.Windows.Forms; +using DotSpatial.Controls; +using HydroDesktop.Interfaces.PluginContracts; +using HydroDesktop.Plugins.MetadataFetcher.Forms; + +#endregion + +namespace HydroDesktop.Plugins.MetadataFetcher +{ + class Main : Extension, IMetadataFetcherPlugin + { + #region IExtension Members + + public override void Deactivate () + { + App.HeaderControl.RemoveAll(); + + //necessary in plugin deactivation + base.Deactivate (); + } + + #endregion + + #region Implementation of IMetadataFetcherPlugin + + public void AddServices() + { + using (var form = new AddServicesForm()) + { + var dialogResult = form.ShowDialog(); + if (dialogResult == DialogResult.OK) + { + DownloadMetadata(); + } + } + } + + public void DownloadMetadata() + { + using (var form = new MainForm()) + { + form.RefreshServiceList(); + form.ShowDialog(); + } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Classes/WebOperations.cs b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Classes/WebOperations.cs new file mode 100644 index 00000000..5ee7ca4d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Classes/WebOperations.cs @@ -0,0 +1,171 @@ +using System; +using System.Net; + +namespace HydroDesktop.Plugins.MetadataFetcher +{ + class WebOperations + { + #region Public Members + + /// + /// Given a string defining a URI, creates a URI object from the string. If the URI is redirected, returns a URI object created from the redirected location. + /// + /// String defining a URI + /// true if URL parameters (the part after the question mark) should be trimmed from the URL; false otherwise + /// URI object created from the URI string + public static Uri GetUri ( string uriString, bool trimParameters ) + { + if ( trimParameters == true ) + { + int index = uriString.IndexOf ( "?" ); + + if ( index > -1 ) + { + // Trim the query off of the URL + uriString = uriString.Substring ( 0, index ); + } + } + + // Connect to the URL + Uri urlCheck = null; + urlCheck = new Uri ( uriString ); + + WebRequest request = WebRequest.Create ( urlCheck ); + request.Timeout = 15000; // Wait 15 seconds + + string responseUrl; + // Get URL web response. + // "using" properly disposes of web response; otherwise, the same URL could be blocked from subsequent requests. + using ( WebResponse response = request.GetResponse () ) + { + responseUrl = response.ResponseUri.ToString (); + } + + return new Uri ( responseUrl ); + } + + /// + /// Check that the given URL string points to a valid URL. + /// + /// The URL to check + /// true if URL parameters (the part after the question mark) should be trimmed from the URL when validating; false otherwise + /// + public static bool IsUrlValid ( string url, bool trimParameters ) + { + // Check the formatting of the URL + if ( url == String.Empty || url == null) + { + return false; + } + + if ( trimParameters == true ) + { + int index = url.IndexOf ( "?" ); + + if ( index > -1 ) + { + // Trim the query off of the URL + url = url.Substring ( 0, index ); + } + } + + // See if we can connect to the URL + Uri urlCheck = null; + try + { + urlCheck = new Uri ( url ); + } + catch + { + return false; + } + + WebRequest request = WebRequest.Create ( urlCheck ); + request.Timeout = 15000; // Wait 15 seconds + + string responseUrl; + try + { + // Get URL web response. + // "using" properly disposes of web response; otherwise, the same URL could be blocked from subsequent requests. + using ( WebResponse response = request.GetResponse () ) + { + responseUrl = response.ResponseUri.ToString (); + } + } + catch ( Exception ) + { + return false; + } + + // Check for error on redirect + if ( string.Compare ( responseUrl, urlCheck.ToString (), true ) != 0 ) //it was redirected, check to see if redirected to error page + { + if ( (responseUrl.IndexOf ( "404.php" ) > -1 || + responseUrl.IndexOf ( "500.php" ) > -1 || + responseUrl.IndexOf ( "404.htm" ) > -1 || + responseUrl.IndexOf ( "500.htm" ) > -1) ) + { + return false; + } + } + + // If we made it this far, the URL is valid + return true; + } + + /// + /// Determines if the format of a URL string is valid + /// + /// The URL string to check + /// + public static bool IsUrlFormatValid(string url) + { + try + { + Uri urlCheck = new Uri(url); + return true; + } + catch + { + return false; + } + } + + /// + /// Returns the canonical form of the URL, i.e., "%20" becomes a space and so on. + /// + /// The URL to check + /// true if URL parameters (the part after the question mark) should be trimmed from the URL; false otherwise + /// The canonical form of the URL, i.e., "%20" becomes a space and so on. + public static string GetCanonicalUri ( string url, bool trimParameters ) + { + if ( trimParameters == true ) + { + int index = url.IndexOf ( "?" ); + + if ( index > -1 ) + { + // Trim the query off of the URL + url = url.Substring ( 0, index ); + } + } + + Uri urlCheck = new Uri ( url ); + return urlCheck.ToString (); + } + + /// + /// Returns the content at a URL as ASCII text + /// + /// The URL to the resource that is to be retrieved + /// The content at the URL as ASCII text + public static string DownloadASCII(string url) + { + WebClient webClient = new WebClient(); + return System.Text.Encoding.ASCII.GetString(webClient.DownloadData(url)); + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/AddServicesForm.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/AddServicesForm.Designer.cs new file mode 100644 index 00000000..346ef30d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/AddServicesForm.Designer.cs @@ -0,0 +1,629 @@ +namespace HydroDesktop.Plugins.MetadataFetcher.Forms +{ + partial class AddServicesForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose ( bool disposing ) + { + if ( disposing && (components != null) ) + { + components.Dispose (); + } + base.Dispose ( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent () + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddServicesForm)); + this.gbxProgress = new System.Windows.Forms.GroupBox(); + this.btnCancel = new System.Windows.Forms.Button(); + this.prgMain = new System.Windows.Forms.ProgressBar(); + this.gbxServices = new System.Windows.Forms.GroupBox(); + this.dgvAddServices = new System.Windows.Forms.DataGridView(); + this.dgcServiceTitle = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgcServiceUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgcServiceCode = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgcCitation = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgcAbstract = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgcDescriptionUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgcContactName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgcContactEmail = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.btnUpdate = new System.Windows.Forms.Button(); + this.bgwMain = new System.ComponentModel.BackgroundWorker(); + this.gbxUpdate = new System.Windows.Forms.GroupBox(); + this.btnCheckExisting = new System.Windows.Forms.Button(); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.importToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.fromFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuCheckForValidService = new System.Windows.Forms.ToolStripMenuItem(); + this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.flowLayoutPanel3 = new System.Windows.Forms.FlowLayoutPanel(); + this.lblWebsite = new System.Windows.Forms.Label(); + this.txtEmail = new System.Windows.Forms.TextBox(); + this.lblContact = new System.Windows.Forms.Label(); + this.txtContact = new System.Windows.Forms.TextBox(); + this.lblEmail = new System.Windows.Forms.Label(); + this.txtWebsite = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel(); + this.lblCode = new System.Windows.Forms.Label(); + this.txtCode = new System.Windows.Forms.TextBox(); + this.lblCitation = new System.Windows.Forms.Label(); + this.txtCitation = new System.Windows.Forms.TextBox(); + this.lblAbstract = new System.Windows.Forms.Label(); + this.txtAbstract = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.lblTitle = new System.Windows.Forms.Label(); + this.txtTitle = new System.Windows.Forms.TextBox(); + this.lblUrl = new System.Windows.Forms.Label(); + this.txtURL = new System.Windows.Forms.TextBox(); + this.tcAddService = new System.Windows.Forms.TabControl(); + this.tpAddSingleSvc = new System.Windows.Forms.TabPage(); + this.tpAddMultiSvcs = new System.Windows.Forms.TabPage(); + this.errorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); + this.gbxProgress.SuspendLayout(); + this.gbxServices.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvAddServices)).BeginInit(); + this.gbxUpdate.SuspendLayout(); + this.menuStrip1.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.flowLayoutPanel3.SuspendLayout(); + this.flowLayoutPanel2.SuspendLayout(); + this.flowLayoutPanel1.SuspendLayout(); + this.tcAddService.SuspendLayout(); + this.tpAddSingleSvc.SuspendLayout(); + this.tpAddMultiSvcs.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).BeginInit(); + this.SuspendLayout(); + // + // gbxProgress + // + this.gbxProgress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbxProgress.Controls.Add(this.btnCancel); + this.gbxProgress.Controls.Add(this.prgMain); + this.gbxProgress.Location = new System.Drawing.Point(12, 305); + this.gbxProgress.Name = "gbxProgress"; + this.gbxProgress.Size = new System.Drawing.Size(588, 46); + this.gbxProgress.TabIndex = 7; + this.gbxProgress.TabStop = false; + this.gbxProgress.Text = "Ready"; + this.gbxProgress.Visible = false; + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Enabled = false; + this.btnCancel.Location = new System.Drawing.Point(497, 15); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(85, 23); + this.btnCancel.TabIndex = 28; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // prgMain + // + this.prgMain.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.prgMain.Location = new System.Drawing.Point(9, 16); + this.prgMain.Name = "prgMain"; + this.prgMain.Size = new System.Drawing.Size(482, 22); + this.prgMain.TabIndex = 0; + // + // gbxServices + // + this.gbxServices.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbxServices.Controls.Add(this.dgvAddServices); + this.gbxServices.Location = new System.Drawing.Point(5, 6); + this.gbxServices.Name = "gbxServices"; + this.gbxServices.Size = new System.Drawing.Size(573, 234); + this.gbxServices.TabIndex = 2; + this.gbxServices.TabStop = false; + this.gbxServices.Text = "Enter or import service information to add to the metadata cache database"; + // + // dgvAddServices + // + this.dgvAddServices.AllowUserToResizeRows = false; + this.dgvAddServices.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvAddServices.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dgvAddServices.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvAddServices.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dgcServiceTitle, + this.dgcServiceUrl, + this.dgcServiceCode, + this.dgcCitation, + this.dgcAbstract, + this.dgcDescriptionUrl, + this.dgcContactName, + this.dgcContactEmail}); + this.dgvAddServices.Location = new System.Drawing.Point(6, 19); + this.dgvAddServices.Name = "dgvAddServices"; + this.dgvAddServices.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvAddServices.Size = new System.Drawing.Size(561, 209); + this.dgvAddServices.TabIndex = 5; + // + // dgcServiceTitle + // + this.dgcServiceTitle.HeaderText = "Title"; + this.dgcServiceTitle.Name = "dgcServiceTitle"; + this.dgcServiceTitle.ToolTipText = "(Required) A brief title for the web service"; + this.dgcServiceTitle.Width = 52; + // + // dgcServiceUrl + // + this.dgcServiceUrl.HeaderText = "URL"; + this.dgcServiceUrl.Name = "dgcServiceUrl"; + this.dgcServiceUrl.ToolTipText = "(Required) The base URL of the web service. The URL does not need the ?wsdl param" + + "eter."; + this.dgcServiceUrl.Width = 54; + // + // dgcServiceCode + // + this.dgcServiceCode.HeaderText = "Code"; + this.dgcServiceCode.Name = "dgcServiceCode"; + this.dgcServiceCode.ToolTipText = "(Optional) A unique text identifier for the service, typically used by services r" + + "egistered by HIS Central"; + this.dgcServiceCode.Width = 57; + // + // dgcCitation + // + this.dgcCitation.HeaderText = "Citation"; + this.dgcCitation.Name = "dgcCitation"; + this.dgcCitation.ToolTipText = "(Optional) The text that should be used when citing the web service as a referenc" + + "e"; + this.dgcCitation.Width = 67; + // + // dgcAbstract + // + this.dgcAbstract.HeaderText = "Abstract"; + this.dgcAbstract.Name = "dgcAbstract"; + this.dgcAbstract.ToolTipText = "(Optional) Describes the purpose, data, source, or other details about the web se" + + "rvice"; + this.dgcAbstract.Width = 71; + // + // dgcDescriptionUrl + // + this.dgcDescriptionUrl.HeaderText = "Website"; + this.dgcDescriptionUrl.Name = "dgcDescriptionUrl"; + this.dgcDescriptionUrl.ToolTipText = "(Optional) URL of the website where the web service is documented"; + this.dgcDescriptionUrl.Width = 71; + // + // dgcContactName + // + this.dgcContactName.HeaderText = "Contact"; + this.dgcContactName.Name = "dgcContactName"; + this.dgcContactName.ToolTipText = "(Optional) Name of the person to contact when making inquiries about the web serv" + + "ice"; + this.dgcContactName.Width = 69; + // + // dgcContactEmail + // + this.dgcContactEmail.HeaderText = "Email"; + this.dgcContactEmail.Name = "dgcContactEmail"; + this.dgcContactEmail.ToolTipText = "(Optional) Email address of the person to contact when making inquiries about the" + + " web service"; + this.dgcContactEmail.Width = 57; + // + // btnUpdate + // + this.btnUpdate.Enabled = false; + this.btnUpdate.Location = new System.Drawing.Point(469, 15); + this.btnUpdate.Name = "btnUpdate"; + this.btnUpdate.Size = new System.Drawing.Size(113, 23); + this.btnUpdate.TabIndex = 4; + this.btnUpdate.Text = "&Update Database"; + this.btnUpdate.UseVisualStyleBackColor = true; + this.btnUpdate.Click += new System.EventHandler(this.btnUpdate_Click); + // + // bgwMain + // + this.bgwMain.WorkerReportsProgress = true; + this.bgwMain.WorkerSupportsCancellation = true; + this.bgwMain.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bgwMain_DoWork); + this.bgwMain.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bgwMain_ProgressChanged); + this.bgwMain.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.bgwMain_RunWorkerCompleted); + // + // gbxUpdate + // + this.gbxUpdate.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbxUpdate.Controls.Add(this.btnCheckExisting); + this.gbxUpdate.Controls.Add(this.btnUpdate); + this.gbxUpdate.Location = new System.Drawing.Point(12, 305); + this.gbxUpdate.Name = "gbxUpdate"; + this.gbxUpdate.Size = new System.Drawing.Size(592, 46); + this.gbxUpdate.TabIndex = 1; + this.gbxUpdate.TabStop = false; + // + // btnCheckExisting + // + this.btnCheckExisting.Enabled = false; + this.btnCheckExisting.Location = new System.Drawing.Point(350, 15); + this.btnCheckExisting.Name = "btnCheckExisting"; + this.btnCheckExisting.Size = new System.Drawing.Size(113, 23); + this.btnCheckExisting.TabIndex = 3; + this.btnCheckExisting.Text = "&Check Existing"; + this.btnCheckExisting.UseVisualStyleBackColor = true; + this.btnCheckExisting.Click += new System.EventHandler(this.btnCheckExisting_Click); + // + // menuStrip1 + // + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.importToolStripMenuItem, + this.optionsToolStripMenuItem}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(613, 24); + this.menuStrip1.TabIndex = 30; + this.menuStrip1.Text = "menuStrip1"; + // + // importToolStripMenuItem + // + this.importToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fromFileToolStripMenuItem}); + this.importToolStripMenuItem.Name = "importToolStripMenuItem"; + this.importToolStripMenuItem.Size = new System.Drawing.Size(55, 20); + this.importToolStripMenuItem.Text = "&Import"; + // + // fromFileToolStripMenuItem + // + this.fromFileToolStripMenuItem.Name = "fromFileToolStripMenuItem"; + this.fromFileToolStripMenuItem.Size = new System.Drawing.Size(132, 22); + this.fromFileToolStripMenuItem.Text = "From &File..."; + this.fromFileToolStripMenuItem.Click += new System.EventHandler(this.fromFileToolStripMenuItem_Click); + // + // optionsToolStripMenuItem + // + this.optionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuCheckForValidService}); + this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; + this.optionsToolStripMenuItem.Size = new System.Drawing.Size(61, 20); + this.optionsToolStripMenuItem.Text = "&Options"; + // + // mnuCheckForValidService + // + this.mnuCheckForValidService.CheckOnClick = true; + this.mnuCheckForValidService.Name = "mnuCheckForValidService"; + this.mnuCheckForValidService.Size = new System.Drawing.Size(440, 22); + this.mnuCheckForValidService.Text = "&Check for valid WaterOneFlow service before committing to database"; + // + // openFileDialog1 + // + this.openFileDialog1.Filter = "CSV (Comma delimited) (*.csv)|*.csv"; + this.openFileDialog1.Title = "Open"; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.flowLayoutPanel3); + this.groupBox1.Controls.Add(this.flowLayoutPanel2); + this.groupBox1.Controls.Add(this.flowLayoutPanel1); + this.groupBox1.Location = new System.Drawing.Point(6, 6); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(572, 238); + this.groupBox1.TabIndex = 31; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Enter service information to add to the metadata cache database"; + // + // flowLayoutPanel3 + // + this.flowLayoutPanel3.Controls.Add(this.lblWebsite); + this.flowLayoutPanel3.Controls.Add(this.txtEmail); + this.flowLayoutPanel3.Controls.Add(this.lblContact); + this.flowLayoutPanel3.Controls.Add(this.txtContact); + this.flowLayoutPanel3.Controls.Add(this.lblEmail); + this.flowLayoutPanel3.Controls.Add(this.txtWebsite); + this.flowLayoutPanel3.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; + this.flowLayoutPanel3.Location = new System.Drawing.Point(285, 104); + this.flowLayoutPanel3.Name = "flowLayoutPanel3"; + this.flowLayoutPanel3.Size = new System.Drawing.Size(281, 126); + this.flowLayoutPanel3.TabIndex = 19; + // + // lblWebsite + // + this.lblWebsite.AutoSize = true; + this.lblWebsite.Location = new System.Drawing.Point(3, 0); + this.lblWebsite.Name = "lblWebsite"; + this.lblWebsite.Size = new System.Drawing.Size(46, 13); + this.lblWebsite.TabIndex = 14; + this.lblWebsite.Text = "Website"; + // + // txtEmail + // + this.txtEmail.Location = new System.Drawing.Point(3, 16); + this.txtEmail.Name = "txtEmail"; + this.txtEmail.Size = new System.Drawing.Size(216, 20); + this.txtEmail.TabIndex = 5; + // + // lblContact + // + this.lblContact.AutoSize = true; + this.lblContact.Location = new System.Drawing.Point(3, 39); + this.lblContact.Name = "lblContact"; + this.lblContact.Size = new System.Drawing.Size(75, 13); + this.lblContact.TabIndex = 15; + this.lblContact.Text = "Contact Name"; + // + // txtContact + // + this.txtContact.Location = new System.Drawing.Point(3, 55); + this.txtContact.Name = "txtContact"; + this.txtContact.Size = new System.Drawing.Size(216, 20); + this.txtContact.TabIndex = 6; + // + // lblEmail + // + this.lblEmail.AutoSize = true; + this.lblEmail.Location = new System.Drawing.Point(3, 78); + this.lblEmail.Name = "lblEmail"; + this.lblEmail.Size = new System.Drawing.Size(72, 13); + this.lblEmail.TabIndex = 16; + this.lblEmail.Text = "Contact Email"; + // + // txtWebsite + // + this.txtWebsite.Location = new System.Drawing.Point(3, 94); + this.txtWebsite.Name = "txtWebsite"; + this.txtWebsite.Size = new System.Drawing.Size(216, 20); + this.txtWebsite.TabIndex = 7; + // + // flowLayoutPanel2 + // + this.flowLayoutPanel2.Controls.Add(this.lblCode); + this.flowLayoutPanel2.Controls.Add(this.txtCode); + this.flowLayoutPanel2.Controls.Add(this.lblCitation); + this.flowLayoutPanel2.Controls.Add(this.txtCitation); + this.flowLayoutPanel2.Controls.Add(this.lblAbstract); + this.flowLayoutPanel2.Controls.Add(this.txtAbstract); + this.flowLayoutPanel2.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; + this.flowLayoutPanel2.Location = new System.Drawing.Point(19, 104); + this.flowLayoutPanel2.Name = "flowLayoutPanel2"; + this.flowLayoutPanel2.Size = new System.Drawing.Size(253, 126); + this.flowLayoutPanel2.TabIndex = 18; + // + // lblCode + // + this.lblCode.AutoSize = true; + this.lblCode.Location = new System.Drawing.Point(3, 0); + this.lblCode.Name = "lblCode"; + this.lblCode.Size = new System.Drawing.Size(32, 13); + this.lblCode.TabIndex = 10; + this.lblCode.Text = "Code"; + // + // txtCode + // + this.txtCode.Location = new System.Drawing.Point(3, 16); + this.txtCode.Name = "txtCode"; + this.txtCode.Size = new System.Drawing.Size(216, 20); + this.txtCode.TabIndex = 2; + // + // lblCitation + // + this.lblCitation.AutoSize = true; + this.lblCitation.Location = new System.Drawing.Point(3, 39); + this.lblCitation.Name = "lblCitation"; + this.lblCitation.Size = new System.Drawing.Size(42, 13); + this.lblCitation.TabIndex = 11; + this.lblCitation.Text = "Citation"; + // + // txtCitation + // + this.txtCitation.Location = new System.Drawing.Point(3, 55); + this.txtCitation.Name = "txtCitation"; + this.txtCitation.Size = new System.Drawing.Size(216, 20); + this.txtCitation.TabIndex = 3; + // + // lblAbstract + // + this.lblAbstract.AutoSize = true; + this.lblAbstract.Location = new System.Drawing.Point(3, 78); + this.lblAbstract.Name = "lblAbstract"; + this.lblAbstract.Size = new System.Drawing.Size(46, 13); + this.lblAbstract.TabIndex = 12; + this.lblAbstract.Text = "Abstract"; + // + // txtAbstract + // + this.txtAbstract.Location = new System.Drawing.Point(3, 94); + this.txtAbstract.Name = "txtAbstract"; + this.txtAbstract.Size = new System.Drawing.Size(216, 20); + this.txtAbstract.TabIndex = 4; + // + // flowLayoutPanel1 + // + this.flowLayoutPanel1.Controls.Add(this.lblTitle); + this.flowLayoutPanel1.Controls.Add(this.txtTitle); + this.flowLayoutPanel1.Controls.Add(this.lblUrl); + this.flowLayoutPanel1.Controls.Add(this.txtURL); + this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; + this.flowLayoutPanel1.Location = new System.Drawing.Point(19, 19); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.Size = new System.Drawing.Size(547, 79); + this.flowLayoutPanel1.TabIndex = 17; + // + // lblTitle + // + this.lblTitle.AutoSize = true; + this.lblTitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblTitle.Location = new System.Drawing.Point(3, 0); + this.lblTitle.Name = "lblTitle"; + this.lblTitle.Size = new System.Drawing.Size(95, 13); + this.lblTitle.TabIndex = 8; + this.lblTitle.Text = "Title (Required)"; + // + // txtTitle + // + this.txtTitle.Location = new System.Drawing.Point(3, 16); + this.txtTitle.Name = "txtTitle"; + this.txtTitle.Size = new System.Drawing.Size(482, 20); + this.txtTitle.TabIndex = 0; + this.txtTitle.Validating += new System.ComponentModel.CancelEventHandler(this.txtTitle_Validating); + // + // lblUrl + // + this.lblUrl.AutoSize = true; + this.lblUrl.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblUrl.Location = new System.Drawing.Point(3, 39); + this.lblUrl.Name = "lblUrl"; + this.lblUrl.Size = new System.Drawing.Size(95, 13); + this.lblUrl.TabIndex = 9; + this.lblUrl.Text = "URL (Required)"; + // + // txtURL + // + this.txtURL.Location = new System.Drawing.Point(3, 55); + this.txtURL.Name = "txtURL"; + this.txtURL.Size = new System.Drawing.Size(482, 20); + this.txtURL.TabIndex = 1; + this.txtURL.Validating += new System.ComponentModel.CancelEventHandler(this.txtURL_Validating); + // + // tcAddService + // + this.tcAddService.Controls.Add(this.tpAddSingleSvc); + this.tcAddService.Controls.Add(this.tpAddMultiSvcs); + this.tcAddService.Location = new System.Drawing.Point(12, 27); + this.tcAddService.Name = "tcAddService"; + this.tcAddService.SelectedIndex = 0; + this.tcAddService.Size = new System.Drawing.Size(592, 272); + this.tcAddService.TabIndex = 32; + this.tcAddService.SelectedIndexChanged += new System.EventHandler(this.tcAddService_SelectedIndexChanged); + // + // tpAddSingleSvc + // + this.tpAddSingleSvc.Controls.Add(this.groupBox1); + this.tpAddSingleSvc.Location = new System.Drawing.Point(4, 22); + this.tpAddSingleSvc.Name = "tpAddSingleSvc"; + this.tpAddSingleSvc.Padding = new System.Windows.Forms.Padding(3); + this.tpAddSingleSvc.Size = new System.Drawing.Size(584, 246); + this.tpAddSingleSvc.TabIndex = 0; + this.tpAddSingleSvc.Text = "Add Single Service"; + this.tpAddSingleSvc.UseVisualStyleBackColor = true; + // + // tpAddMultiSvcs + // + this.tpAddMultiSvcs.Controls.Add(this.gbxServices); + this.tpAddMultiSvcs.Location = new System.Drawing.Point(4, 22); + this.tpAddMultiSvcs.Name = "tpAddMultiSvcs"; + this.tpAddMultiSvcs.Padding = new System.Windows.Forms.Padding(3); + this.tpAddMultiSvcs.Size = new System.Drawing.Size(584, 246); + this.tpAddMultiSvcs.TabIndex = 1; + this.tpAddMultiSvcs.Text = "Add Multiple Services"; + this.tpAddMultiSvcs.UseVisualStyleBackColor = true; + // + // errorProvider1 + // + this.errorProvider1.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink; + this.errorProvider1.ContainerControl = this; + // + // AddServicesForm + // + this.AcceptButton = this.btnUpdate; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(613, 355); + this.Controls.Add(this.tcAddService); + this.Controls.Add(this.gbxUpdate); + this.Controls.Add(this.gbxProgress); + this.Controls.Add(this.menuStrip1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.Name = "AddServicesForm"; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.Text = "Add WaterOneFlow Service Info "; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.AddServicesForm_FormClosing); + this.Load += new System.EventHandler(this.AddServicesForm_Load); + this.gbxProgress.ResumeLayout(false); + this.gbxServices.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dgvAddServices)).EndInit(); + this.gbxUpdate.ResumeLayout(false); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.groupBox1.ResumeLayout(false); + this.flowLayoutPanel3.ResumeLayout(false); + this.flowLayoutPanel3.PerformLayout(); + this.flowLayoutPanel2.ResumeLayout(false); + this.flowLayoutPanel2.PerformLayout(); + this.flowLayoutPanel1.ResumeLayout(false); + this.flowLayoutPanel1.PerformLayout(); + this.tcAddService.ResumeLayout(false); + this.tpAddSingleSvc.ResumeLayout(false); + this.tpAddMultiSvcs.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.GroupBox gbxProgress; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.ProgressBar prgMain; + private System.Windows.Forms.GroupBox gbxServices; + private System.Windows.Forms.DataGridView dgvAddServices; + private System.Windows.Forms.Button btnUpdate; + private System.ComponentModel.BackgroundWorker bgwMain; + private System.Windows.Forms.DataGridViewTextBoxColumn dgcServiceTitle; + private System.Windows.Forms.DataGridViewTextBoxColumn dgcServiceUrl; + private System.Windows.Forms.DataGridViewTextBoxColumn dgcServiceCode; + private System.Windows.Forms.DataGridViewTextBoxColumn dgcCitation; + private System.Windows.Forms.DataGridViewTextBoxColumn dgcAbstract; + private System.Windows.Forms.DataGridViewTextBoxColumn dgcDescriptionUrl; + private System.Windows.Forms.DataGridViewTextBoxColumn dgcContactName; + private System.Windows.Forms.DataGridViewTextBoxColumn dgcContactEmail; + private System.Windows.Forms.GroupBox gbxUpdate; + private System.Windows.Forms.Button btnCheckExisting; + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.ToolStripMenuItem optionsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem mnuCheckForValidService; + private System.Windows.Forms.OpenFileDialog openFileDialog1; + private System.Windows.Forms.ToolStripMenuItem importToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem fromFileToolStripMenuItem; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.TextBox txtEmail; + private System.Windows.Forms.TextBox txtContact; + private System.Windows.Forms.TextBox txtWebsite; + private System.Windows.Forms.TextBox txtAbstract; + private System.Windows.Forms.TextBox txtCitation; + private System.Windows.Forms.Label lblCitation; + private System.Windows.Forms.Label lblEmail; + private System.Windows.Forms.Label lblContact; + private System.Windows.Forms.Label lblWebsite; + private System.Windows.Forms.Label lblAbstract; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.Label lblTitle; + private System.Windows.Forms.TextBox txtTitle; + private System.Windows.Forms.Label lblUrl; + private System.Windows.Forms.TextBox txtURL; + private System.Windows.Forms.Label lblCode; + private System.Windows.Forms.TextBox txtCode; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2; + private System.Windows.Forms.TabControl tcAddService; + private System.Windows.Forms.TabPage tpAddSingleSvc; + private System.Windows.Forms.TabPage tpAddMultiSvcs; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel3; + private System.Windows.Forms.ErrorProvider errorProvider1; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/AddServicesForm.cs b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/AddServicesForm.cs new file mode 100644 index 00000000..98ce7e25 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/AddServicesForm.cs @@ -0,0 +1,1025 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; +using HydroDesktop.Database; +using HydroDesktop.ImportExport; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.WebServices; + +namespace HydroDesktop.Plugins.MetadataFetcher.Forms +{ + public partial class AddServicesForm : Form + { + #region Variables + + private enum BackgroundWorkerTasks + { + AddServicesFromHydroServer, + AddServicesFromHydroPortal, + AddServicesFromFile, + CheckForExisingServices, + UpdateDatabase, + Unknown + } + + private bool _formIsClosing = false; + + #endregion + + #region Constructor + + public AddServicesForm () + { + InitializeComponent (); + } + + #endregion + + #region Private Methods + + #region Form Loading / Unloading + + private void AddServicesForm_Load ( object sender, EventArgs e ) + { + // Set column heading style + dgvAddServices.EnableHeadersVisualStyles = false; + + Font boldFont = new Font ( dgvAddServices.Font, FontStyle.Bold ); + + dgvAddServices.Columns[0].HeaderCell.Style.Font = boldFont; + dgvAddServices.Columns[1].HeaderCell.Style.Font = boldFont; + } + + void AddServicesForm_FormClosing ( object sender, FormClosingEventArgs e ) + { + if (bgwMain.IsBusy) + { + e.Cancel = true; + _formIsClosing = true; + CancelWorker(); + } + } + + #endregion + + #region Utilities + + private void SelectDataGridViewRow(DataGridView dataGridView, int rowIndex) + { + if (rowIndex < 0 || dataGridView==null || rowIndex >= dataGridView.RowCount) + return; + + //dataGridView.FirstDisplayedScrollingRowIndex = rowIndex; + //dataGridView.Refresh(); + //dataGridView.CurrentCell = dataGridView.Rows[rowIndex].Cells[0]; + dataGridView.Rows[rowIndex].Selected = true; + } + + /// + /// Creates a string array that can be used to add a row to a data grid view, based on properties of a DataServiceInfo object + /// + /// Details about the WaterOneFlow service + /// String array of properties from the DataServiceInfo object + private string[] CreateServiceRow ( DataServiceInfo serviceInfo ) + { + string[] row = { serviceInfo.ServiceTitle, + serviceInfo.EndpointURL, + serviceInfo.ServiceCode, + serviceInfo.Citation, + serviceInfo.Abstract, + serviceInfo.DescriptionURL, + serviceInfo.ContactName, + serviceInfo.ContactEmail }; + + return row; + } + + /// + /// Disables/Enables controls and sets mouse cursor in preparation for a BackgroundWorker to run + /// + private void SetupFormForWork ( bool showProgressBar ) + { + // Disable controls until the asynchronous operation is done + dgvAddServices.Enabled = false; + btnCheckExisting.Enabled = false; + btnUpdate.Enabled = false; + menuStrip1.Enabled = false; + + // Enable the Cancel button while the asynchronous operation runs + if ( showProgressBar == true ) + { + gbxUpdate.Visible = false; + gbxProgress.Enabled = true; + btnCancel.Enabled = true; + gbxProgress.Visible = true; + } + + this.Cursor = Cursors.WaitCursor; + } + + /// + /// Disables/Enables controls and sets mouse cursor once a BackgroundWorker has finished + /// + private void RestoreFormFromWork () + { + // Enable controls + dgvAddServices.Enabled = true; + btnCheckExisting.Enabled = true; + btnUpdate.Enabled = true; + gbxUpdate.Visible = true; + menuStrip1.Enabled = true; + + // Disable the Cancel button and progress bar + gbxProgress.Enabled = false; + btnCancel.Enabled = false; + gbxProgress.Visible = false; + + // Reset progress bar + prgMain.Value = 0; + gbxProgress.Text = "Ready"; + + this.Cursor = Cursors.Default; + } + + /// + /// Searches for WaterOneFlow service info in a DataTable, and adds info about those services to the data grid view + /// + /// Path to CSV file + /// Parameters from the BackgroundWorker + /// Parameters (task type, output message, rows to add to view) to be processed by a BackgroundWorker event handler + private object[] AddServicesFromDataTable ( string pathToFile, DoWorkEventArgs e ) + { + // Build parameters to pass to the background worker + object[] parameters = new object[3]; + parameters[0] = BackgroundWorkerTasks.AddServicesFromFile; + parameters[1] = "Operation cancelled"; + + // Read the CSV file into a DataTable + bgwMain.ReportProgress ( 0, "Opening file, please wait..." ); + + DataTable dataTable = null; + + try + { + dataTable = CsvFileParser.ParseFileToDataTable ( pathToFile, true ); + } + catch ( Exception ex ) + { + throw new Exception ( "Could not read file. " + ex.Message ); + } + + // Get the columns from the table + int colTitle = dataTable.Columns.IndexOf ( "Title" ); + int colUrl = dataTable.Columns.IndexOf ( "URL" ); + int colCode = dataTable.Columns.IndexOf ( "Code" ); + int colCitation = dataTable.Columns.IndexOf ( "Citation" ); + int colAbstract = dataTable.Columns.IndexOf ( "Abstract" ); + int colWebsite = dataTable.Columns.IndexOf ( "Website" ); + int colName = dataTable.Columns.IndexOf ( "Contact" ); + int colEmail = dataTable.Columns.IndexOf ( "Email" ); + + if ( colUrl == -1 ) + { + throw new Exception ( "URL column not found in CSV file" ); + } + + // Find items with an element providing the URL to a WaterOneFlow service + int totalSteps = dataTable.Rows.Count; + int currentStep = 0; + + List rowsToAdd = new List (); + + foreach ( DataRow dataRow in dataTable.Rows ) + { + // Update progress + if ( bgwMain.CancellationPending ) + { + e.Cancel = true; + return parameters; + } + + currentStep++; + bgwMain.ReportProgress ( 100 * currentStep / totalSteps, "Searching for WaterOneFlow service info: " + currentStep + " of " + totalSteps + "..." ); + + // Build service info from the row + string title = ""; + if ( colTitle != -1 ) + { + title = dataRow[colTitle].ToString (); + } + string url = ""; + if ( colUrl != -1 ) + { + url = dataRow[colUrl].ToString (); + try + { + url = WebOperations.GetCanonicalUri ( url, true ); + } + catch + { + url = ""; + } + } + string code = ""; + if ( colCode != -1 ) + { + code = dataRow[colCode].ToString (); + } + string citation = ""; + if ( colCitation != -1 ) + { + citation = dataRow[colCitation].ToString (); + } + string serviceAbstract = ""; + if ( colAbstract != -1 ) + { + serviceAbstract = dataRow[colAbstract].ToString (); + } + string website = ""; + if ( colWebsite != -1 ) + { + website = dataRow[colWebsite].ToString (); + } + string name = ""; + if ( colName != -1 ) + { + name = dataRow[colName].ToString (); + } + string email = ""; + if ( colEmail != -1 ) + { + email = dataRow[colEmail].ToString (); + } + + // Create an item to add to the data grid view + if ( url != String.Empty ) + { + string[] row = { title, url, code, citation, serviceAbstract, website, name, email }; + + rowsToAdd.Add ( row ); + } + } + + // Prepare a message to the user + string message = ""; + int servicesAdded = rowsToAdd.Count; + if ( servicesAdded == 0 ) + { + message = "No services found in file"; + } + else if ( servicesAdded == 1 ) + { + message = "1 service found in file"; + } + else + { + message = servicesAdded.ToString () + " services found in file"; + } + + parameters[1] = message; + parameters[2] = rowsToAdd; + + return parameters; + } + + /// + /// Finds rows for services in the view for which a record already exists in the metadata cache database with the same URL + /// + /// List of DataServiceInfo objects whose URLs we want to check (the service URL is assumed to have come from a row in an object such as a data grid view) + /// Parameters from the BackgroundWorker + /// Parameters (task type, output message, rows for which a record already exists in the metadata cache database with the same URL) to be processed by a BackgroundWorker event handler + private object[] CheckForServicesInCache(List rows, DoWorkEventArgs e) + { + // Build parameters to pass to the background worker + object[] parameters = new object[3]; + parameters[0] = BackgroundWorkerTasks.CheckForExisingServices; + parameters[1] = "Operation cancelled"; + + List rowsToSelect = new List (); + + // Get a list of existing URLs from the metadata cache databsae + if ( e != null ) + { + bgwMain.ReportProgress ( 0, "Getting list of existing WaterOneFlow services from database..." ); + } + + List existingUrls = DatabaseOperations.GetCacheServiceUrls ( true ); + + // Check all items in the view + int totalSteps = rows.Count; + int currentStep = 0; + + + IEqualityComparer comparer = new CaseInsensitiveEqualityComparer (); + + for (int i = 0, len=rows.Count; i < len; i++) + { + DataServiceInfo row = rows[i]; + + if ( e != null ) + { + if ( bgwMain.CancellationPending ) + { + e.Cancel = true; + return parameters; + } + + currentStep++; + bgwMain.ReportProgress ( 100 * currentStep / totalSteps, "Checking service " + currentStep + " of " + totalSteps + "..." ); + } + + string serviceUrl = row.EndpointURL; + + + if ( existingUrls.Contains ( serviceUrl, comparer ) == true ) + { + rowsToSelect.Add(i); + } + } + + // Prepare a message to the user + // TODO: This message should be created outside of this service, and instead should be done in the display logic + string message = ""; + int existingCount = rowsToSelect.Count; + + if ( existingCount == 0 ) + { + message = "No services with the same URL were found in the metadata cache database"; + } + else if (existingCount == 1) + { + message = "1 service has a URL that already exists in the metadata cache database. This service has been selected."; + } + else + { + message = existingCount.ToString() + " services have URLs that already exist in the metadata cache database. These services have been selected."; + } + + parameters[1] = message; + parameters[2] = rowsToSelect; + return parameters; + } + + /// + /// For each service described in the data grid view, adds records to the metadata cache database to describe the service + /// + /// List of services to add to the metadata cache database + /// Parameters from the BackgroundWorker + /// Parameters (task type, output message, rows that were successfully added) to be processed by a BackgroundWorker event handler + private object[] AddServicesToDatabase ( List servicesToAdd, DoWorkEventArgs e ) + { + // Build parameters to pass to the background worker + object[] parameters = new object[3]; + parameters[0] = BackgroundWorkerTasks.UpdateDatabase; + parameters[1] = "Operation cancelled"; + + List rowsToSelect = new List (); + + bgwMain.ReportProgress ( 0, "Getting list of existing WaterOneFlow services from database..." ); + + // Get a list of existing URLs from the metadata cache databsae + List existingUrls = DatabaseOperations.GetCacheServiceUrls ( true ); + + // Add service records to the database + int totalSteps = servicesToAdd.Count; + int currentStep = 0; + int countAlreadyExists = 0; + int countInvalidService = 0; + + IEqualityComparer comparer = new CaseInsensitiveEqualityComparer (); + + MetadataCacheManagerSQL cacheManager = DatabaseOperations.GetCacheManager(); + + for ( int i = 0; i < servicesToAdd.Count; i++ ) + { + if ( bgwMain.CancellationPending ) + { + e.Cancel = true; + return parameters; + } + + currentStep++; + bgwMain.ReportProgress ( 100 * currentStep / totalSteps, "Checking service " + currentStep + " of " + totalSteps + "..." ); + + DataServiceInfo serviceInfo = servicesToAdd[i]; + + // Check if the service already exists in the database + if ( existingUrls.Contains ( serviceInfo.EndpointURL, comparer ) == true ) + { + countAlreadyExists += 1; + continue; + } + + // Check that the URL is for a live service + if ( this.mnuCheckForValidService.Checked == true ) + { + // Attempt to create a WaterOneFlowServiceClient from the URL. If the URL is not for a WaterOneFlow service, an error is thrown in the constructor. + try + { + //WaterOneFlowClient waterOneFlowClient = new WaterOneFlowClient ( serviceInfo.EndpointURL ); + + DataServiceInfo clientServiceInfo = new DataServiceInfo(serviceInfo.EndpointURL, "WaterOneFlow"); + + serviceInfo.ServiceName = clientServiceInfo.ServiceName; + serviceInfo.Protocol = "SOAP"; + serviceInfo.ServiceType = "SOAP"; + serviceInfo.Version = WebServiceHelper.GetWaterOneFlowVersion(serviceInfo.EndpointURL); + } + catch + { + countInvalidService += 1; + continue; + } + + } + + // Save the service + cacheManager.SaveDataService ( serviceInfo ); + + existingUrls.Add ( serviceInfo.EndpointURL ); + + rowsToSelect.Add ( i ); + + } + + // Prepare a message to the user + string message = ""; + + int serviceCount = rowsToSelect.Count; + if ( serviceCount == 0 ) + { + message += "No new services added to metadata cache database.\n\n "; + } + else if ( serviceCount == 1 ) + { + message += "1 new service added to metadata cache database.\n\n"; + } + else + { + message += serviceCount.ToString () + " new services added to metadata cache database.\n\n"; + } + + if ( countAlreadyExists == 1 ) + { + message += "1 service was not added because it already exists in the database.\n\n"; + } + else if ( countAlreadyExists > 1 ) + { + message += countAlreadyExists.ToString () + " services were not added because they already exist in the database.\n\n"; + } + + if ( countInvalidService == 1 ) + { + message += "1 service was not added because it does not point to a valid WaterOneFlow service.\n\n"; + } + else if ( countInvalidService > 1 ) + { + message += countInvalidService.ToString () + " services were not added because they do not point to a valid WaterOneFlow service.\n\n"; + } + + if ( serviceCount == 1 ) + { + message += "Remember to download metadata for this service in the Metadata Fetcher window."; + } + else if ( serviceCount > 1 ) + { + message += "Remember to download metadata for these services in the Metadata Fetcher window."; + } + + parameters[1] = message; + parameters[2] = rowsToSelect; + return parameters; + } + + #endregion + + #region UI Events + + /// + /// Cancels or closes the form if the user presses the ESC key + /// + /// + /// + /// true if key press was handled, false otherwise + protected override bool ProcessCmdKey ( ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData ) + { + try + { + if ( msg.WParam.ToInt32 () == (int)Keys.Escape ) + { + if ( bgwMain.IsBusy ) + { + CancelWorker (); + } + else + { + this.DialogResult = DialogResult.Cancel; + this.Close (); + } + + return true; + } + else + { + return base.ProcessCmdKey ( ref msg, keyData ); + } + } + catch ( Exception Ex ) + { + MessageBox.Show ( "Key Overrided Events Error:" + Ex.Message ); + } + + return base.ProcessCmdKey ( ref msg, keyData ); + } + + + private void fromFileToolStripMenuItem_Click ( object sender, EventArgs e ) + { + if ( openFileDialog1.ShowDialog () == DialogResult.OK ) + { + if ( bgwMain.IsBusy ) + { + MessageBox.Show ( "The background worker is currently busy. Please try again in a few moments.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk ); + return; + } + + tcAddService.SelectedTab = tpAddMultiSvcs; //switch to the multi service tab + + string path = openFileDialog1.FileName; + + // Build parameters to pass to the background worker + object[] parameters = new object[2]; + parameters[0] = BackgroundWorkerTasks.AddServicesFromFile; + parameters[1] = path; + + // Set form controls for doing work + dgvAddServices.ClearSelection (); + SetupFormForWork ( true ); + + // Start the asynchronous operation + bgwMain.RunWorkerAsync ( parameters ); + } + } + + private void btnCancel_Click ( object sender, EventArgs e ) + { + CancelWorker (); + } + + /// + /// Updates the Metadata Cache when the Update button is clicked + /// + /// + /// + private void btnUpdate_Click ( object sender, EventArgs e ) + { + if ( bgwMain.IsBusy ) + { + MessageBox.Show ( "The background worker is currently busy. Please try again in a few moments.", + this.Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk ); + return; + } + + + // Build a list of services to add + List services = new List(); + + if (tcAddService.SelectedTab.Equals(tpAddSingleSvc)) + { + services = GetSingleServiceRow(); + } + else //Add Multiple + { + + if (!ValidateDgvAddServices()) + return; + + services = GetMultipleServiceRows(); + } + + + // Build parameters to pass to the background worker + object[] parameters = new object[2]; + parameters[0] = BackgroundWorkerTasks.UpdateDatabase; + parameters[1] = services; + + // Set form controls for doing work + dgvAddServices.ClearSelection (); + SetupFormForWork ( true ); + + // Start the asynchronous operation + bgwMain.RunWorkerAsync ( parameters ); + } + + private bool ValidateDgvAddServices() + { + if (dgvAddServices.Rows.Count == 1 && dgvAddServices.Rows[0].IsNewRow == true) + { + MessageBox.Show("Please add one or more services to the list.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + return false; + } + + foreach (DataGridViewRow serviceRow in dgvAddServices.Rows) + { + if (serviceRow.IsNewRow == false) + { + + // Service Title + object cellValue = serviceRow.Cells[0].Value; + if ((cellValue == null) || (cellValue.ToString().Trim() == String.Empty)) + { + MessageBox.Show("Please provide a service title for row " + serviceRow.Index.ToString(), + this.Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + return false; + } + + // Service URL + cellValue = serviceRow.Cells[1].Value; + if ((cellValue == null) || (cellValue.ToString().Trim() == String.Empty)) + { + MessageBox.Show("Please provide a service URL for row " + serviceRow.Index.ToString(), + this.Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + return false; + } + // Trim the query off of the URL + string serviceUrl = cellValue.ToString().Trim(); + try + { + serviceUrl = WebOperations.GetCanonicalUri(serviceUrl, true); + } + catch + { + MessageBox.Show("Please provide a service URL for row " + serviceRow.Index.ToString(), + this.Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + return false; + } + } + } + + return true; + } + + + private void btnCheckExisting_Click ( object sender, EventArgs e ) + { + + if ( bgwMain.IsBusy ) + { + MessageBox.Show ( "The background worker is currently busy. Please try again in a few moments.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk ); + return; + } + + List rows = null; + + if (tcAddService.SelectedTab.Equals(tpAddSingleSvc)) + { + rows = GetSingleServiceRow(); + } + else //tpAddMultiSvcs is selected + { + if (!ValidateDgvAddServices()) + return; + + rows = GetMultipleServiceRows(); + } + + if (rows == null) + return; + + // Build parameters to pass to the background worker + object[] parameters = new object[2]; + parameters[0] = BackgroundWorkerTasks.CheckForExisingServices; + parameters[1] = rows; + + // Set form controls for doing work + dgvAddServices.ClearSelection(); + SetupFormForWork(false); + + parameters = CheckForServicesInCache(rows, null); + + // Select rows that were already in the cache + string message = parameters[1] as string; + + if (tcAddService.SelectedTab.Equals(tpAddMultiSvcs)) //if on the Add Multiple Services tab + { + List rowsToSelect = parameters[2] as List; + foreach (int row in rowsToSelect) + { + dgvAddServices.Rows[row].Selected = true; + } + } + + + MessageBox.Show(message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); + + // Enable controls that were disabled until the asynchronous operation was finished + RestoreFormFromWork(); + + this.ActiveControl = btnCheckExisting; + } + + /// + /// Adds Multiple Services from the DataGrid input of this form + /// + private List GetMultipleServiceRows() + { + // Build a list of URLs to check + List rows = new List(); + + foreach (DataGridViewRow serviceRow in dgvAddServices.Rows) + { + if (serviceRow.IsNewRow == false) + { + object cellValue = serviceRow.Cells[1].Value; + if (cellValue != null) + { + string serviceUrl = cellValue.ToString().Trim(); + + // Trim the query off of the URL + int index = serviceUrl.IndexOf("?"); + if (index > -1) + { + serviceUrl = serviceUrl.Substring(0, index); + } + + DataServiceInfo dataServiceInfo = new DataServiceInfo(); + dataServiceInfo.EndpointURL = serviceUrl; + dataServiceInfo.ServiceTitle = serviceRow.Cells[0].Value.ToString().Trim(); + + if (serviceRow.Cells[2].Value != null) + dataServiceInfo.ServiceCode = serviceRow.Cells[2].Value.ToString().Trim(); + + if (serviceRow.Cells[3].Value != null) + dataServiceInfo.Citation = serviceRow.Cells[3].Value.ToString().Trim(); + + if (serviceRow.Cells[4].Value != null) + dataServiceInfo.Abstract = serviceRow.Cells[4].Value.ToString().Trim(); + + if (serviceRow.Cells[5].Value != null) + dataServiceInfo.DescriptionURL = serviceRow.Cells[5].Value.ToString().Trim(); + + if (serviceRow.Cells[6].Value != null) + dataServiceInfo.ContactName = serviceRow.Cells[6].Value.ToString().Trim(); + + if (serviceRow.Cells[7].Value != null) + dataServiceInfo.ContactEmail = serviceRow.Cells[7].Value.ToString().Trim(); + + rows.Add(dataServiceInfo); + } + } + } + + return rows; + } + + private void txtTitle_Validating(object sender, CancelEventArgs e) + { + errorProvider1.SetError(txtTitle, !String.IsNullOrEmpty(txtTitle.Text) ? "" : "Please enter a title"); + + CheckFields(); + } + + private void txtURL_Validating(object sender, CancelEventArgs e) + { + + if (String.IsNullOrEmpty(txtURL.Text)) + { + errorProvider1.SetError(txtURL, "Please enter a valid URL"); + return; + } + + if (!txtURL.Text.StartsWith("http://") && !txtURL.Text.StartsWith("https://")) + { + txtURL.Text = "http://" + txtURL.Text; //add http:// to the beginning + } + + //check that the URL is Valid -- this is quite slow. Perhaps a REGEX would be better. + errorProvider1.SetError(txtURL, !WebOperations.IsUrlFormatValid(txtURL.Text) ? "Please enter a valid URL" : ""); + + CheckFields(); + } + + private void tcAddService_SelectedIndexChanged(object sender, EventArgs e) + { + if (tcAddService.SelectedTab.Equals(tpAddSingleSvc)) //Single Service tab + { + txtURL.CausesValidation = true; + txtTitle.CausesValidation = true; + + CheckFields(); + } + else //on the Multiple Service tab + { + txtURL.CausesValidation = false; + txtTitle.CausesValidation = false; + + btnCheckExisting.Enabled = true; + btnUpdate.Enabled = true; + } + } + + private void CheckFields() + { + if (errorProvider1.GetError(txtTitle).Equals("") + && errorProvider1.GetError(txtURL).Equals("") + && !String.IsNullOrEmpty(txtTitle.Text) + && !String.IsNullOrEmpty(txtURL.Text)) + { + btnCheckExisting.Enabled = true; + btnUpdate.Enabled = true; + } + else + { + btnCheckExisting.Enabled = false; + btnUpdate.Enabled = false; + } + } + + + + /// + /// Adds single service from the form input + /// + private List GetSingleServiceRow() + { + + List rows = new List(); + + string serviceUrl = txtURL.Text; + + // Trim the query off of the URL + int index = serviceUrl.IndexOf("?"); + if (index > -1) + { + serviceUrl = serviceUrl.Substring(0, index); + } + + DataServiceInfo dataServiceInfo = new DataServiceInfo(); + dataServiceInfo.EndpointURL = serviceUrl; + dataServiceInfo.ServiceTitle = txtTitle.Text; + dataServiceInfo.ServiceCode = txtCode.Text; + dataServiceInfo.Citation = txtCitation.Text; + dataServiceInfo.Abstract = txtAbstract.Text; + dataServiceInfo.DescriptionURL = txtWebsite.Text; + dataServiceInfo.ContactName = txtContact.Text; + dataServiceInfo.ContactEmail = txtEmail.Text; + + + rows.Add(dataServiceInfo); + + return rows; + } + + #endregion + + #region Background Worker + + private void CancelWorker () + { + // Cancel the asynchronous operation + bgwMain.CancelAsync (); + + // Disable the Cancel button + btnCancel.Enabled = false; + + gbxProgress.Text = "Cancelling..."; + } + + private void bgwMain_DoWork ( object sender, DoWorkEventArgs e ) + { + object[] parameters = e.Argument as object[]; + BackgroundWorkerTasks task = (BackgroundWorkerTasks)parameters[0]; + + if ( task == BackgroundWorkerTasks.AddServicesFromFile ) + { + string path = parameters[1] as string; + e.Result = AddServicesFromDataTable ( path, e ); + } + else if ( task == BackgroundWorkerTasks.CheckForExisingServices ) + { + List rows = parameters[1] as List; + e.Result = CheckForServicesInCache(rows, e); + } + else if ( task == BackgroundWorkerTasks.UpdateDatabase ) + { + List services = parameters[1] as List; + e.Result = AddServicesToDatabase ( services, e ); + } + else + { + // Build parameters to pass to the background worker + object[] outParameters = new object[2]; + outParameters[0] = BackgroundWorkerTasks.Unknown; + outParameters[1] = "Unknown task provided to background worker"; + + e.Result = outParameters; + } + } + + private void bgwMain_ProgressChanged ( object sender, ProgressChangedEventArgs e ) + { + prgMain.Value = e.ProgressPercentage; + gbxProgress.Text = e.UserState.ToString (); + } + + private void bgwMain_RunWorkerCompleted ( object sender, RunWorkerCompletedEventArgs e ) + { + this.Cursor = Cursors.Default; + + BackgroundWorkerTasks task = BackgroundWorkerTasks.Unknown; + + // Report the result + if ( e.Error != null ) + { + MessageBox.Show ( e.Error.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + else if ( e.Cancelled ) + { + if ( this.Visible == true && _formIsClosing == false ) + { + MessageBox.Show ( "Operation cancelled", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information ); + } + } + else + { + string message = ""; + + object[] parameters = e.Result as object[]; + + if ( (parameters != null) && (parameters.Length > 1) ) + { + message = parameters[1] as string; + + task = (BackgroundWorkerTasks)parameters[0]; + if ( task == BackgroundWorkerTasks.AddServicesFromHydroPortal || + task == BackgroundWorkerTasks.AddServicesFromFile || + task == BackgroundWorkerTasks.AddServicesFromHydroServer ) + { + dgvAddServices.Enabled = true; + + List rowsToAdd = parameters[2] as List; + foreach ( string[] row in rowsToAdd ) + { + int rowIndex = dgvAddServices.Rows.Add(row); + SelectDataGridViewRow(dgvAddServices, rowIndex); + //dgvAddServices.Rows[dgvAddServices.Rows.Add ( row )].Cells["Selected"].Value = true; + } + + this.ActiveControl = btnUpdate; + } + else if ( task == BackgroundWorkerTasks.CheckForExisingServices ) + { + List rowsToSelect = parameters[2] as List; + foreach ( int row in rowsToSelect ) + { + dgvAddServices.Rows[row].Cells["Selected"].Value = true; + } + + this.ActiveControl = btnCheckExisting; + } + else if ( task == BackgroundWorkerTasks.UpdateDatabase ) + { + this.ActiveControl = btnUpdate; + } + + } + + MessageBox.Show ( message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information ); + } + + // Enable controls that were disabled until the asynchronous operation was finished + RestoreFormFromWork (); + + if ( _formIsClosing ) + { + _formIsClosing = false; + DialogResult = DialogResult.Cancel; + } + else if ( task == BackgroundWorkerTasks.UpdateDatabase ) + { + DialogResult = DialogResult.OK; + } + } + + #endregion + + #endregion + + #region Public Members + + public void ClearInputs() + { + if (bgwMain.IsBusy == false) + { + dgvAddServices.Rows.Clear(); + } + } + + #endregion + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/AddServicesForm.resx b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/AddServicesForm.resx new file mode 100644 index 00000000..420c8535 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/AddServicesForm.resx @@ -0,0 +1,546 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + 17, 17 + + + 113, 17 + + + 222, 17 + + + 352, 17 + + + 28 + + + + + AAABAAYAMDAAAAEACAAADwAAZgAAACAgAAABAAgAAAkAAGYPAAAQEAAAAQAIAIAFAABmGAAAMDAAAAEA + IAAAJgAA5h0AACAgAAABACAAABEAAOZDAAAQEAAAAQAgAIAEAADmVAAAKAAAADAAAABgAAAAAQAIAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A++vlAP/18QD76uIAxoJfAMaFYwDKiGYAxohpAM+Q + cADKkHIA0pp9ANSeggDaposA3KqQAOCulADbrZUA57qjAOzBqwDmvagA6cSxAOvItgDv0MAA/9/PAP/j + 1QD13tIA/+vhAP3v6AD/8+0Aw31YAMuObADHjGsAz5d4ANeihgDVpIoA4bKZAOW2nQDetJ4A4biiAPDH + sQDyzbgA9tG9APnWwwD928gA7My7AP7dywD52ccA/9/NAPLUxAD428sA/+LSAPndzgDz2MkA+t/QAPrh + 0wDz284A/+faAPji1gD/6t4A+eXaAPvo3gD/7+YA/O3lAJhIFQDNlXQA/9/LAP3fzQD/5tYA//LqAJtM + GQCfUh8AxYpkANCdeQDlw6wA/+LOAP/u4gD/9e4AmFAdAJdUIACZVSIAolomAKdfLACwazYAs3JAAMaK + XADIj2QAypNsANSlgQDRpYQA1qqJANuxkQD/6toA/O3iAJlZJQCYWygAqmYxAKBiLwDChlQAyY5cAL6H + XADOmWwA0J1yANOjfADXqYQA2a6LAN63lwD/4ckA/+bSAP/t3gD/8eYAmV4rAKBmNACjajkAxopVAMyU + ZADDl3AAxpp0AMqfeQDivZwA5MGjAOjIqwDpy7AA7M6zAP/hxwD+48oA89rDAP/lzgDz3MgA/unWAPfk + 0wD77N4AlF8rAJZhLQCYYzAAmWUxAJdlMgCZZTMAmmc1AKNwPADFh0sArnlHAMqPVADMlFsAsoJTAM+Z + ZQDClWoA1KN0ANepfADbr4QA3bOJAN+3jgDiu5QA5sKdAOjGpADszKsA+dm4APvcvQD/4cQA7tK3APzf + wgDx1rsA/+PHAPjdwgD84ccA/+XLAO/XwAD64soA+OPOAPXgzAD65tIA/+3bAPnn1gD66toA//XrAJln + MwCaaTYA0JlgANKeaADVo2wAu49hANincgDbq3YAyJxtANyuewDOpXoA5sCWAPHOpwD00qwA68qmAPfX + tAD01bIA79CuAPTXuAD/48UA9dq9APzhxQD848cA+eDGAPbfxwD75c4A3rF9AOC0gADhtoUA47mIAOW8 + jQDowJAA6sSWAOvGnADtyZ4A78yiAP/jwwD948UA/+nOAP/lwwD/58cAyaVwANCteQD/5cEAw55mANi4 + hQD/58EA/+jDAODAhQDtzJUA5ciTAOjMnQD95LcA/+e+AM+ucADStHkA9NmlAPnfrgD/6b0A5MiKAO7U + mQD/6bsA2L19AP/ruQD/67sA/+3DAPvmrwD/67cA/+6/AOfSjwD/7bYA9OKgAP/ywgD56aYA/++yAP/y + ugD/8q4A+vCmAP/1qgD/9rcA//qwAP///wAAAAAAAAAAAAAAAAAAAACDg4OEiK9wcHBwr6+viISDg4MA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg4ODg4NzuFp3mr67u7u6z87MlJJycY+Dg4ODhAAAAAAAAAAA + AAAAAAAAAAAAg2CDQFooLRgYGBjHx9Ocwr67u7rQzs6XzMvJtbFxj3BghwAAAAAAAAAAAAAAAF5gBQ0S + KS0Yxy0tx8fHx5+cwr67u7rQzpfMy8rItbW0tLGNU4iHAAAAAAAAAAAARVMLDxESKJ8YGBgYGBgYx8ef + nMK+u7u8z86XzMqUt7W0srGxkI1TiAAAAAAAAABeUyAMDyQSKC0YGBgYGBgYGMfTn8LCvru8mc+XzJaU + yLeSsmSQco6Oj4gAAAAAAIdvByAMEBESoC0YgoKCgoKAgBjHfZ/CvnqamXeYl5WWlLeSkrJkco5UjYqH + AAAAAIdvByAMEBEUMBmCgj4+goKCgoAYx33CKZ6ampmYdpeWlJRmkmVkVnJUVIqHAAAAAIdvByBXJREU + MBg+Pj4+Pj4+PoIYqDd9KZ56mkl3dpeVlZRnkpJkVnJUVIqHAAAAAIdvHiAiJREsNxg+Pj4+Pj4+bYKC + GKh9fSmeepp3mHaXlWhnZmZlQFZHVIqHAAAAAIdvHnUiJUksNzscHBwcHBwcAxxtPoIYqDd9KXqaSSZ2 + WmhZZmZlQFYeR4qHAAAAAIdvHnUiJUmgGT4DHD47N6BJaVi4dHSRkZF0dWaUlZWXl1poWVcLQEAeR4qH + AAAAAIdvHgsQERSgFCZYY4yMjIyMjI+PY2Njj4yMinBwcG9vUo9UZGZmC0AeHoqHAAAAAIdvCgwNC7OM + b4+zuHYoKp/Hx9PTnMK+u7vQzpfLyLSOj1JfUGBTcVYKHoqHAAAAAIdvCgVfboxAESoYGBgYx8fH05+c + wr67u7rPzpfMy8rJyLW0jo9fRVCPHoqHAAAAAIdvX0WMDBESKCrHx8fHx8fHx9OfwsK7u7zQz86Xy8rI + t7W0srKxjVJFX4qIAAAAAIhOUB4MDyQSKJ8YGBgYGBgYGMefn8K+u7u8z86XzJaUt7W0srGQco6LUIOI + AAAAAIhuHSALDSQSKJ8YGBgYGBiAgMfHn8LCvpq8mc+Xl5aUyLeSkmSQco6Oi4iIAAAAAIdvByALECQS + oC07goKCgoKCghjHfZ/CvnqamXeYl5WVlLeSkmRkco5UVIqHAAAAAIdvByAMEBEUoBmCPj4+PoKCgoAY + x33CKZ56mpmYdpeVlJRmkmVkVnJUVIqHAAAAAIdvByBXEBEUMBg+Pj4+Pj4+PoIYGDd9fZ56mkl3dpeV + lZRnZpJkVnJHVIqHAAAAAIdvByBXJREsNxg+Pj4+bW1tbT6CGBg3fX2eeppJmHaXlWhnZmZlQFZHVIqH + AAAAAIdvHnUiJUksNzscHAMDAxwcHIIYqH19KZ6eenqaSXcmWmhZV2YLQFYeR4qHAAAAAIdvHnUiJUkw + GDs7N0lYdLOzY4+MjIyMjIyMjIyMj2NWkmdZWVcLIAoeR4qHAAAAAIdvHnUQESRoc4yMjIyPkViXdpiY + mJeXlpS3kmRUj1JvYGBfU1RWZSAKHoqHAAAAAIdvCgsejG9Sj7gUny0YGBjHx9OfnL67u7rQz86XzMrI + tJCPUlBQUotWCoqHAAAAAIdvBV9QjCARKC0Yx8ctLS3Hx5+cwr67u7rPzpfMy8rItbW0tLGLUkVQYYqH + AAAAAIhuRVIgDyQRFCrHGBgYGBjHx9OfnMK+u7zQz86XzMrIt7W0srGxkHFfRYiIAAAAAIhOUyALDSQR + KCoYGBgYGBgYGMfTn8K+vru8z86XzJaUt7WSsmSQco6OUoOIAAAAAIdvBwoLDSQSKJ8YgoKCgoKAgBjH + fcIpvnqamXd2l5aUlLeSkmSQco5UjYqHAAAAAIdvBwoLECQSoC2CgoKCgoKCgoDHx5/CKZ6amXeYl5WV + lJRmkmVkVnJUVIqHAAAAAIdvByAMEBEUoBmCPj4+Pj4+goIYqH19KZ56mpl3dpeVlZRmZmVkVnJUVIqH + AAAAAIdvByAMEBEUMBg+Pj4+Pj4+PoKCGDd9fSmempp3mHZalWhnZgtlVlZHVIqHAAAAAIdvByBXJREU + MBg+HBwcHBwcHBxtgoIYN319nnpJd3aXWmhZZmZlQFZHR4qHAAAAAIdvByAiJUksNzscAxwcPhh9encm + aWhoaGhol3Z3d5h2l1pZV2YLQFYeR4qHAAAAAIdvHnUiJUmgoKAmdbNjjIpwioqMjI+PjIyKioqKjI+P + Y2SSkmYLIEAeR4qHAAAAAIdvHnUQEFdjioyMs1h2SXopn5/T0+/v7+Pj4r660ODls4+MioxUckAKHoqH + AAAAAIdvHiBjcI9zJiotGBgYGMfHx9PT09PT4+Pu7u7u7vb2/fT14NqPr1NhHoqHAAAAAISMs3Czd8cY + GMctLS0tLS3Hx9PT09PT4+Pj7u7u7u709PT0/f3889pgUoqIAAAAAIivjEkYGC0tLS0tLS0tLS3Hx9PT + 09PT4+Pj7u7u7u709PT9/f38/v7zioOIAAAAAISvKBgtLS0tLS0tLS0tLS3Hx9PT09PT4+Pj7u7u7u70 + 9PT9/f39/Pz+9YqDAAAAAIOMGC0tLS0tLS0tLS0tLS3Hx9PT09PT4+Pj7u7u7u709PT9/f39/Pz8/o+D + AAAAAACHaBgYLS0tLS0tLS0tLS3Hx9PT09PT4+Pj7u7u7u709PT9/f39/Pz+7IcAAAAAAAAAhHQpGBgt + LS0tLS0tLS3Hx9PT09PT4+Pj7u7u7u709PT9/f39/vXahAAAAAAAAAAAAIODc0ktGBgYxy0tLS0tx9PT + 09PT0+Pj7u7u7u7u9P39/f3z2oqDAAAAAAAAAAAAAAAAg4ODg1oUKS0YGBgYx8fU1NTv7+/v9vb29vb0 + 9brbg4OHgwAAAAAAAAAAAAAAAAAAAAAAAIODg4ODuFlol3Z3mZmZmc/glpblkoODg4iDAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg4ODg4SEh4eHh4SEg4ODgwAAAAAAAAAAAAAAAAAAAAD//gAAf/8AAP/A + AAAD/wAA/gAAAAB/AAD4AAAAAB8AAPAAAAAADwAA4AAAAAAHAADAAAAAAAMAAMAAAAAAAwAAwAAAAAAD + AADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAA + AAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAAD + AADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAA + AAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAAD + AADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADgAAAAAAcAAPAAAAAADwAA+AAAAAAfAAD+AAAAAH8AAP/g + AAAH/wAA//8AAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAIAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A++vlAP/18QD76uIAxoJfAMaFYwDKiGYAxohpAM+Q + cADKkHIA0pp9ANSeggDaposA3KqQAOCulADbrZUA57qjAOzBqwDmvagA6cSxAOvItgDv0MAA/9/PAP/j + 1QD13tIA/+vhAP3v6AD/8+0Aw31YAMuObADHjGsAz5d4ANeihgDVpIoA4bKZAOW2nQDetJ4A4biiAPDH + sQDyzbgA9tG9APnWwwD928gA7My7AP7dywD52ccA/9/NAPLUxAD428sA/+LSAPndzgDz2MkA+t/QAPrh + 0wDz284A/+faAPji1gD/6t4A+eXaAPvo3gD/7+YA/O3lAJhIFQDNlXQA/9/LAP3fzQD/5tYA//LqAJtM + GQCfUh8AxYpkANCdeQDlw6wA/+LOAP/u4gD/9e4AmFAdAJdUIACZVSIAolomAKdfLACwazYAs3JAAMaK + XADIj2QAypNsANSlgQDRpYQA1qqJANuxkQD/6toA/O3iAJlZJQCYWygAqmYxAKBiLwDChlQAyY5cAL6H + XADOmWwA0J1yANOjfADXqYQA2a6LAN63lwD/4ckA/+bSAP/t3gD/8eYAmV4rAKBmNACjajkAxopVAMyU + ZADDl3AAxpp0AMqfeQDivZwA5MGjAOjIqwDpy7AA7M6zAP/hxwD+48oA89rDAP/lzgDz3MgA/unWAPfk + 0wD77N4AlF8rAJZhLQCYYzAAmWUxAJdlMgCZZTMAmmc1AKNwPADFh0sArnlHAMqPVADMlFsAsoJTAM+Z + ZQDClWoA1KN0ANepfADbr4QA3bOJAN+3jgDiu5QA5sKdAOjGpADszKsA+dm4APvcvQD/4cQA7tK3APzf + wgDx1rsA/+PHAPjdwgD84ccA/+XLAO/XwAD64soA+OPOAPXgzAD65tIA/+3bAPnn1gD66toA//XrAJln + MwCaaTYA0JlgANKeaADVo2wAu49hANincgDbq3YAyJxtANyuewDOpXoA5sCWAPHOpwD00qwA68qmAPfX + tAD01bIA79CuAPTXuAD/48UA9dq9APzhxQD848cA+eDGAPbfxwD75c4A3rF9AOC0gADhtoUA47mIAOW8 + jQDowJAA6sSWAOvGnADtyZ4A78yiAP/jwwD948UA/+nOAP/lwwD/58cAyaVwANCteQD/5cEAw55mANi4 + hQD/58EA/+jDAODAhQDtzJUA5ciTAOjMnQD95LcA/+e+AM+ucADStHkA9NmlAPnfrgD/6b0A5MiKAO7U + mQD/6bsA2L19AP/ruQD/67sA/+3DAPvmrwD/67cA/+6/AOfSjwD/7bYA9OKgAP/ywgD56aYA/++yAP/y + ugD/8q4A+vCmAP/1qgD/9rcA//qwAP///wAAAAAAAAAAAACvr4qMj4+Pj4yMjK+IAAAAAAAAAAAAAAAA + AAAAYK+vrxIpn8fT05u9u9DNyrWvr6+viAAAAAAAAAAAbq9XEi07GBgYx8fCvru70M7My8m3tbFxr68A + AAAAAG4FDREULRgYGBgYx9PCvru8z5fMlLeSsZCOi68AAAAAUyAhJBQtgoKCgoKAx58pvpqZmJeVlGax + kHJijIgAAGBTICIRLBk+Pj4+PoIYqH0perx3l5WUZmZkcnKMiAAAYFMgEBEsGBwcHBwcHD6Cx30pehJ2 + WmhnZmVWB4yIAABgUwsQSTQ+Az47faB4JnZaWVlZWlpaWmhXdVZWjIgAAGBTDCURJVh1kZGRddfX12RV + YmGLjFOMi2JWZUCMiAAAYIwKHYxUWRQqLRgYx9OcvbvRzszJtZCLU19SVIyIAACIYGAFDyctGBgYGMfH + n767u9DOzMrIt7WyjlNfb4gAAIRgByEkEjAYGBgYgBjHwr67vM+XzJS3krGQjnFviAAAYFMgISQUN4KC + goKCgMefKb6amZiXlZRmsWRyYoyIAABgUyAiERQZPj4+Pj6CGKh9KXq8d5eVlGZmZHJyjIgAAGBTICIR + LIEcAwMDAxw+gsd9KaASd3ZaZ2ZlVgeMiAAAYFMLEEk0OzuleGlZWHV0kZGRkVZlZmdnZwtAVoyIAABg + UwwQDJGzkXRmWXZ2dpfMlJOxcmGMU1OMVFZAjIgAAGBTHVIdCxItGBgYGMfTm7u70c7Ny8m1jotSX1OM + iAAAiG5SICQSKhgYGBjHx5/Cu7vQzszKyLeSsrFxX26IAACEbwkhJBIwGDs7O4AYx8Ipu7zPl8yUt5Kx + kHJicIgAAGBTCiEkFDeCPj6CgoLHfSm+mpmYl5WUZrFkcmKMiAAAYFMgIREUGT4+Pj4+PoLHfSl6End2 + WmhmZmRyB4yIAABgUyAiESw7AwMDAxw+gqh9KaB6End2WmdmZVYHjIgAAGBTIBBJLKV5JVh1kZGRkbOz + s7Ozs7ZlZmYLQFaMiAAAhFMLDJGzkXVZdhK+KcKcnJu95+rg29ezj4tUVoyIAACIjI+zWinHGBgYGMfH + 09PT7+7u7vn5+f313rNTjIgAAGCKdhgYGC0tLS0tx9PT09Pj7u7u9PT09P3+/t6vhAAAhJE+LS0tLS0t + LS3H09PT0+Pu7u709PT0/Pz8/tqIAAAAr3o7GC0tLS0tLcfT09PT4+7u7vT09PT8/v7qigAAAAAAr696 + LRgYGBjHx9PT09Pj7u7u7vn5+fzqr68AAAAAAAAAAK+vr68SKZ/Hx9TU1O/v7uLn6q+vr4gAAAAAAAAA + AAAAAAAAAK+vr6+vr6+vr6+vr6+vAAAAAAAAAAAA/4AD//gAAB/gAAAHwAAAA8AAAAGAAAABgAAAAYAA + AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA + AAGAAAABgAAAAYAAAAGAAAABgAAAAcAAAAPgAAAH+AAAH/+AAf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAKAAAABAAAAAgAAAAAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A++vlAP/1 + 8QD76uIAxoJfAMaFYwDKiGYAxohpAM+QcADKkHIA0pp9ANSeggDaposA3KqQAOCulADbrZUA57qjAOzB + qwDmvagA6cSxAOvItgDv0MAA/9/PAP/j1QD13tIA/+vhAP3v6AD/8+0Aw31YAMuObADHjGsAz5d4ANei + hgDVpIoA4bKZAOW2nQDetJ4A4biiAPDHsQDyzbgA9tG9APnWwwD928gA7My7AP7dywD52ccA/9/NAPLU + xAD428sA/+LSAPndzgDz2MkA+t/QAPrh0wDz284A/+faAPji1gD/6t4A+eXaAPvo3gD/7+YA/O3lAJhI + FQDNlXQA/9/LAP3fzQD/5tYA//LqAJtMGQCfUh8AxYpkANCdeQDlw6wA/+LOAP/u4gD/9e4AmFAdAJdU + IACZVSIAolomAKdfLACwazYAs3JAAMaKXADIj2QAypNsANSlgQDRpYQA1qqJANuxkQD/6toA/O3iAJlZ + JQCYWygAqmYxAKBiLwDChlQAyY5cAL6HXADOmWwA0J1yANOjfADXqYQA2a6LAN63lwD/4ckA/+bSAP/t + 3gD/8eYAmV4rAKBmNACjajkAxopVAMyUZADDl3AAxpp0AMqfeQDivZwA5MGjAOjIqwDpy7AA7M6zAP/h + xwD+48oA89rDAP/lzgDz3MgA/unWAPfk0wD77N4AlF8rAJZhLQCYYzAAmWUxAJdlMgCZZTMAmmc1AKNw + PADFh0sArnlHAMqPVADMlFsAsoJTAM+ZZQDClWoA1KN0ANepfADbr4QA3bOJAN+3jgDiu5QA5sKdAOjG + pADszKsA+dm4APvcvQD/4cQA7tK3APzfwgDx1rsA/+PHAPjdwgD84ccA/+XLAO/XwAD64soA+OPOAPXg + zAD65tIA/+3bAPnn1gD66toA//XrAJlnMwCaaTYA0JlgANKeaADVo2wAu49hANincgDbq3YAyJxtANyu + ewDOpXoA5sCWAPHOpwD00qwA68qmAPfXtAD01bIA79CuAPTXuAD/48UA9dq9APzhxQD848cA+eDGAPbf + xwD75c4A3rF9AOC0gADhtoUA47mIAOW8jQDowJAA6sSWAOvGnADtyZ4A78yiAP/jwwD948UA/+nOAP/l + wwD/58cAyaVwANCteQD/5cEAw55mANi4hQD/58EA/+jDAODAhQDtzJUA5ciTAOjMnQD95LcA/+e+AM+u + cADStHkA9NmlAPnfrgD/6b0A5MiKAO7UmQD/6bsA2L19AP/ruQD/67sA/+3DAPvmrwD/67cA/+6/AOfS + jwD/7bYA9OKgAP/ywgD56aYA/++yAP/yugD/8q4A+vCmAP/1qgD/9rcA//qwAP///wAAAACzs7Ozs7Oz + s7OzAAAAAHCzKD4+HIDj587JsrNwAHBjJDBtbQOqp76YlWaxYXBwYyYZG6yoLEkmdlpZC2GKcB1AWFoN + t7SwjYuLj2EdiohTCyg+qm2AnLvfyrJxUohwHQ8wHBwDbdTCd5VmsWFwcGMmNzulLHZaWWdXV2ZjinCP + H1daI5iXyrWQYVOPjHCIU1cqHD5t0726zsu1jlKIcB0QMAMDA22ovndaZmRhinBjJSyleUl2WlhnuEBA + Y4pwj1glmZq+vr3n5urb2oxwilkYGBgYx9Pv7u75+f3ljACzsy0YGIDU7+/2+f2zswAAAACzs7Ozs7Oz + s7OzAAAA4AcAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACAAQAA4AcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJlm + MwKYZDEYlWEtL5RgK0uTXyp2k14pnpRfK72WYy/Lmmc0051rOdugbTzfoW4946FuPeShbjzkoGw6459r + ON+daDXbmmUy0pdhLsuVXyy9lF8snpVgLXaVYi9Ll2QxL5hmMxiZZzQCAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhm + MxKWYS1Qk14pgZVgK8adaznxrn9T/rqOZv/DmHP/zaSB/9q0kv/lwqP/7c2u//LRsf/z0rD/8tGt//HN + qP/vyqP/7Mac/+jClv/juoz/3bGB/9Smdf/KmGX/v4pW/7d/S/+weUX/p3A7/ptjL/KWXyzGlWIvgZdk + MlGYZjMSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACXZDA+lVwooppfK+WtdEf/yZd0/92zlv/zz7n//+DO///k0///5dT//+bT///n0f//5s7//+XL///i + xf/93r7/+tq3//jWsv/206z/88+m//HMov/uyZ3/7MaX/+vDk//pwZD/572K/+S5g//htH3/3Kx0/9Gd + Zf/EjFT/uIBI/6drNv+aYi7mlmMwoZdlMj8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAmGUyKZZYJbqiXi7/v4Jb/9umiP/uwKn/+dG+//7dy///49L//+HP///gzv//4M7//+HM///i + y///4sr//+PJ//3gxf/73b//+Nq4//bWs//0063/8c+o/+/Mo//syJ3/6sSX/+jAkv/lvY3/47mI/+C1 + gv/esX3/3K14/9urdf/aqXL/2KVs/9OcY//IjlT/tXhB/6BmMf+XYzC5mGYzKQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACYYi9EmlEe9LdwR//Xm33/4q6U/+i3n//swav/8824//rZyP//4tL//+LS///i + 0v//4tL//+PR///j0P//5M///+XO//3iyf/738P/+Nu9//bYuP/01LL/8dGs/+/Np//syqH/6sWb/+jB + l//lvpH/47mL/+C1hv/esoH/2657/9mpd//XpXL/1KFs/9KeaP/Rm2T/0Jhg/8qOVf+ydj7/mmUx9Jhl + M0MAAAAAAAAAAAAAAAAAAAAAAAAAAJhmMziYVyTcu3JK/9SXef/Yn4P/3quQ/+W2nv/sw63/88+7//rb + y///5Nb//+TW///l1///5df//+bV///m1P//5tP//+fS//3kzf/74cf/+N3B//bavP/01rb/8dKx/+/P + q//sy6b/6seg/+jDm//lv5X/47uQ/+C3iv/esoT/269//9mqev/XpnX/1KJw/9Kea//PmmX/zZVg/8uS + Xf/MkFn/uX5G/5lmM92XZTJeAAAAAAAAAAAAAAAAAAAAAJZkMIGiYjH/yoZk/9CSc//WnoL/3auS/+S3 + oP/rw6//8s+9//nczf//5tn//+fa///o2///6Nv//+jZ///o2P//6df//+rX//3n0v/75Mz/+ODG//bc + wf/02Lv/8dS1/+/QsP/szKr/6sik/+jFn//lwZr/47yU/+C4jv/etIj/27CD/9mrfv/Xp3n/1KJz/9Kf + b//Pmmn/zZVk/8qSYP/IjVv/yIxX/6RwOv6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMIGiYzL/yYZl/9CU + df/WoIT/3a2U/+S5ov/rxrH/8tLB//nf0f//6d3//+re///q3///6t///+rd///q3f//69z//+zb//3p + 1v/75tD/+OHK//bexP/02r//8da5/+/StP/szq7/6sqo/+jGo//lwp3/472Y/+C4kv/etYz/27CH/9ms + gv/Xp3z/1KN3/9Kfcv/Pm2z/zZZn/8qSYv/Ijl3/x4xZ/6VwPP6XZDGQAAAAAAAAAAAAAAAAAAAAAJZk + MICiYzL/yYdm/9CVd//Woob/3a+X/+S7pf/rx7T/8tTE//nh1P//6+H//+zi///s4v//7OL//+3h///t + 4f//7uD//+/g//3r2//76NX/+OPP//bfyf/028P/8de9/+/TuP/sz7L/6sus/+jGp//lw6H/476b/+C6 + lf/etZD/27GL/9mshf/XqID/1KR6/9Kgdf/Pm2//zZdq/8qSZv/IjmD/x4tc/6VwPP6XZDGQAAAAAAAA + AAAAAAAAAAAAAJZkMICiYjL/yYho/9CWef/Wo4j/3bCZ/+S9qP/rybj/8tbH//nk2P//7uX//+/m///v + 5v//7+b///Dl///w5f//8OT///Hk//3t3//76dn/+OXT//bhzv/03cf/8dnC/+/VvP/s0Lb/6syw/+jI + qv/lxKX/47+f/+C6mf/etpT/27KO/9mtif/XqYP/1KR+/9Kgef/PnHP/zZdu/8qTaf/IjmP/x4xf/6Vw + PP6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMICiYzL/yYlq/9CYfP/WpIv/3bGc/+S+q//ry7v/8tjL//nm + 3P//8en///Lr///z7P//9O7///bu///37///+fH///vy///37v//8+f//+/g//zr2//65tT/9+LO//Te + yf/x2cL/7tS8/+vOtf/oyK//5MOn/+G9of/euJr/27OT/9mujf/Xqoj/1KWB/9KhfP/PnHb/zZhx/8qT + bP/Ijmb/x41h/6VxPf6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMICiYzL/yYpr/9CZfv/Wpo3/3bOe/+TB + rv/rzsD/9N7T//3t5v//+fT///fx///v5v/75tn/9d3M/+vSvf/ixKr/17ia/86rif/Ion3/xZx1/8KY + cP/BlW3/wZRr/8OWbP/FmG//y592/9Gmfv/Xrob/3LOL/921j//etpP/37eV/920lP/Zro//1aiI/9Ki + gf/PnXr/zZh0/8qUb//Ij2n/x41k/6VxPf6XZDCQAAAAAAAAAAAAAAAAAAAAAJZkMICiYzP/yYtt/9Cb + gP/WqJH/4Lil/+nGtf/uzbz/6MWw/+C7of/Op4f/tIde/6p6Tf+re03/q3tN/6t7TP+rekv/rX5P/7KC + U/+1hVb/uIhZ/7mIWf+4hlf/toJR/7J8Sv+tdkP/qW88/6drN/+najX/p2k0/6ZmMv+lZDD/q2w5/7p/ + Tf/GkF7/zZps/9Ojev/Ton3/zpt6/8qVdP/Ij2z/x41n/6VxPf6XZDCQAAAAAAAAAAAAAAAAAAAAAJZk + MICiYzP/yY1w/9Kfhf/aqI//0p1//8GIYv+rcEL/oWc2/7B8UP+7jWX/y6B9/+C6nv/xzbf/+NjB//zd + xf//4cj//+TK///kx///4cP//t68//vat//517H/9tOr//TQpf/wy57/7MWW/+i/j//juYf/3rF9/9em + cf/JlV//un9J/69vOf+nZC7/nlch/6ZgKv+2dT7/xIlW/82Xbf/KknH/x41r/6VwPf6XZDCQAAAAAAAA + AAAAAAAAAAAAAJZkL4CiZDT/zI9x/8KBXf+qZDb/n1oo/7F0Sf/Ml3T/5rmf//vYxP//5NT//+bW///k + 1P//4tD//+HN///iy///4sn//+LH//3fwv/73Lz/+Nm2//bVsf/00qv/8c6m/+/LoP/sx5v/6sOV/+jA + kP/mvYz/5LmH/+K2gv/htH//37F7/92tdf/Yp23/zJVc/7x+Rv+rZi//nVIc/6ZeJv+9fEj/ypBp/6Vx + QP6XZDCQAAAAAAAAAAAAAAAAAAAAAJdlMYCiYzP/rF8y/51SH/+4dk3/15+B/+i3nv/wxK3/9M24//nX + xP//4M///+HQ///h0P//4dD//+LO///izf//48z//+TM//3hx//73sH/+Nq7//bXtv/006//8dCq/+/M + pf/syZ//6sSZ/+jBlP/lvo//47mJ/+C1hP/esX7/2615/9mpdf/XpnD/1qNs/9Whaf/SnWT/yI1U/7Jv + N/+dThj/rGMv/6RwPf6YZjOQAAAAAAAAAAAAAAAAAAAAAJlnNICXViL/pFUl/8uJZ//aoIT/36qP/+S0 + m//rwKn/8sy3//nZxv//4tL//+PU///k1f//5NX//+TT///k0v//5dH//+bQ//3jy//74MX/+Ny///bZ + uv/01bT/8dKu/+/Pqf/syqP/6sad/+jCmP/lv5T/47qN/+C2iP/esoP/2659/9mqeP/XpnP/1KJu/9Ke + af/PmWT/zpZh/86VXv/Eh07/o1Yh/5ddKv6ZZzWQAAAAAAAAAAAAAAAAAAAAAJdlMoWdXCr/xX9b/9GS + c//VnH7/3KmO/+O1nP/qwav/8c26//jayf/+5Nb//+bY///m2P//5tj//+fX///n1v//6NX//+jU//3l + z//74sn/+N7D//bavf/017j/8dOy/+/Prf/szKf/6seh/+jDnP/lv5f/47uR/+C3i//es4b/26+A/9mr + fP/Xpnf/1KJx/9KebP/Pmmf/zZVi/8qRXf/Kj1v/w4RO/55mMv+XZTKSAAAAAAAAAAAAAAAAAAAAAJZk + MImiYzP/yYRj/8+Rcv/VnYH/3KqR/+O2n//qw67/8c+9//jczf/+5tr//+jc///p3P//6dz//+nb///p + 2v//6tn//+vY//3o0//7483/+ODH//bcwv/z2Lz/8dS2/+/Qsf/szKv/6sil/+fEoP/lwJv/47yV/+C3 + j//ds4n/26+E/9mrf//Wp3r/1KN1/9Geb//Pmmr/zJZl/8qRYP/IjFv/yItY/6VxPP+XZDGUAAAAAAAA + AAAAAAAAAAAAAJZkMICiYjL/yIVk/8+TdP/Vn4P/3KyU/+O4ov/qxbH/8dHA//je0P/+6d3//+vf///r + 4P//6+D//+zf///s3v//7N3//+3d//3q1//75dH/+OLL//bexv/z2sD/8dW7/+/Stf/szq//6smp/+fG + pP/lwZ//472Z/+C4k//dtI3/27CI/9msgv/Wp33/1KN4/9Gfc//Pmm3/zJZo/8qSY//IjV7/x4ta/6Vw + PP6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMICiYjL/yIZl/8+Udv/VoYX/3K6W/+O6pP/qx7T/8dPD//jg + 1P/+6+H//+3j///t4///7eP//+7j///u4v//7+L//+/h//3r2//76Nb/+OTQ//bfyv/z28T/8di//+/T + uf/sz7P/6sut/+fHqP/lw6P/476c/+C6lv/dtZH/27GL/9mthv/WqIH/1KR7/9Ggdv/Pm3D/zJdr/8qS + Zv/IjWH/x4tc/6VwPP6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMICiYjL/yIdm/8+WeP/Voof/3LCY/+O8 + p//qybf/8dbH//jj1//+7uX///Dn///w6P//8Oj///Hn///x5///8uf///Ln//3v4v/8693/+efX//fj + 0f/038v/8tvG/+/WwP/s0rn/6s2y/+fIrf/lxKf/47+g/+C6m//dtpX/27GP/9mtiv/WqYT/1KR//9Gg + ef/Pm3T/zJdu/8qSaf/IjmT/x4tf/6VwPP6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMICiYjL/yIhp/8+X + e//VpIr/3LGb/+O+qv/qy7v/8djL//jm3f//8+3///fx///59P//+/b///r0///48P//9uz///To///u + 3//759T/9+HM//Tcxf/x2L//8NW7/+/TuP/u0bX/7c+y/+vMsP/pyq3/58aq/+TBpf/gvJ7/3bWX/9qw + kf/Wqon/1KWD/9Ghff/PnHf/zJdy/8qTbP/Ijmf/x4xi/6VwPf6XZDGQAAAAAAAAAAAAAAAAAAAAAJZk + MICiYjL/yIlq/8+Yff/VpYz/3LOe/+TCsP/u0cP/9t/U//vn3P/75tr/8trJ/+HDrP/Oqov/wZl1/7uQ + aP+3i2H/tIdb/7GBU/+tfEz/q3dH/6p0Q/+pc0H/qXNB/6t0Qf+tdUP/r3dE/7B4R/+yekn/tn9P/76I + W//KmGv/06R5/9epgP/YrIf/16qI/9OkhP/Qnn3/zJh2/8qTb//Ij2r/x4xl/6VwPf6XZDCQAAAAAAAA + AAAAAAAAAAAAAJZkMICiYjL/yIps/8+agP/YqpP/4bej/+G2nv/Yqo3/xZVx/616Tf+qeEr/q3tN/6p5 + S/+yg1f/wpZu/9Cphf/ct5X/4r+d/+XBn//mwZ7/5sCb/+S+l//ivJL/4LeM/92zhv/ZrX7/1KV1/82c + a//Dj1z/t31J/6psOP+lZC//pWMt/6RgK/+mYi7/t3lE/8WLWP/Nl2v/0Jx2/8yWdv/Ij27/x4xn/6Vw + Pf6XZDCQAAAAAAAAAAAAAAAAAAAAAJZkMICiYjL/yY1w/9Kbf//Jjmz/tXVL/6FgLv+oazz/toFX/8+h + f//syLD/+tnF///fzf//49L//+bT///m0v//5s///+bM///jxv/+38D/+9u5//nYs//21K7/9NGo//LN + o//vyp3/7caY/+vEk//pwY//572J/+O3gv/er3n/2Kdw/86ZYf+8f0j/rWo0/6NdJv+eVR//r2oz/8CC + Tv/Kkmn/yI9t/6VwPf6XZDCQAAAAAAAAAAAAAAAAAAAAAJZkMICjZDX/w4Bd/6phM/+dVSL/tXVL/9CZ + d//rvKP/9s65//7ayP//4tD//+HQ///gz///387//+DM///gy///4cr//+PJ//3gxP/73L7/+Ni4//bV + sv/z0qz/8c+n/+/Lov/sx5z/6sOW/+fAkf/lvIz/47iG/+C0gf/esXz/3K14/9urdP/aqXH/16Vs/9Gc + Yv/BhEv/rmky/5xPGv+nXib/woRW/6ZzQf6XZDGQAAAAAAAAAAAAAAAAAAAAAJhnM4CdXCr/nUwa/69m + Ov/Rk3L/4auQ/+a1nP/rvqb/8cm0//jVwv/+4M///+LR///i0v//4tL//+PQ///jz///5M7//+XN//3i + yP/738L/+Nu8//bXt//z07H/8dCs/+/Mpv/syKD/6sSa/+fBlf/lvZD/47mL/+C1hf/dsYD/2616/9mp + dv/WpXH/1KFr/9KdZ//Sm2T/0Jlg/8aKUf+sYyz/nk4Z/55mM/6ZZzWQAAAAAAAAAAAAAAAAAAAAAJhn + NICXViL/tmpB/9GScv/WnH7/3KaL/+Oxmf/pvqf/8Mq2//fWxf/+4tL//+TX///l1v//5db//+bU///m + 0///5tL//+fR//3kzP/74cb/+N3A//bZuv/z1bX/8dKw/+/Oqv/syqT/6sae/+fDmf/lvpT/47qO/+C2 + if/dsoP/265+/9mqef/WpnT/1KFv/9Gdav/PmWX/zJVg/8uSXf/LkVr/tW84/5ddKv6YZjOQAAAAAAAA + AAAAAAAAAAAAAJdkMYqgYTD/yIJg/86PcP/Vm37/3KiN/+OznP/pwKr/8M25//fZyP/+5db//+fZ///n + 2v//59r//+jY///o2P//6Nf//+nW//3m0P/74sv/+N/F//bbv//z17n/8dO0/+/Prv/sy6n/6sei/+fE + nv/lwJj/47uS/+C3jP/ds4f/26+C/9mrff/Wpnj/1KJy/9Gebf/PmWj/zJVj/8qRXv/IjVn/yItW/6Rv + Of+XZDGVAAAAAAAAAAAAAAAAAAAAAJZkMIOiYjL/x4Nh/86Qcf/VnYD/3KqQ/+O1nv/pwq7/8M+9//fc + zP/+6Nr//+rd///q3v//6t7//+rd///q3P//69v//+za//3p1f/75M//+OHJ//bdw//z2b7/8dW4/+/R + s//sza3/6sim/+fFov/lwZz/472W/+C3kP/dtIv/27CG/9msgf/Wp3z/1KN2/9Gfcf/Pmmv/zJZn/8qR + Yv/IjVz/x4tZ/6VxPP+XZDGRAAAAAAAAAAAAAAAAAAAAAJZkMIChYjL/x4Ri/86Sc//VnoL/3KuS/+O3 + of/pxLH/8NHA//fe0P/+6t7//+zh///s4v//7OL//+3h///t4P//7eD//+7f//3r2f/75tP/+OLO//bf + yP/z2sL/8de9/+/Tt//szrH/6sqr/+fGpv/lwqD/476a/+C5lP/dtY//27CJ/9mshf/Wp3//1KN5/9Gf + dP/Pm2//zJZq/8qSZP/IjV//x4tb/6VwPP6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMIChYjL/x4Vk/86T + df/VoIX/3K2V/+O5pP/pxrT/8NPD//fg1P/+7OL//+7l///v5v//7+b//+/l///v5P//8OT///Dj//3s + 3v/76dj/+OXS//bgzP/z3Mb/8djB/+/Uu//s0LX/6suv/+fHqv/lw6T/47+e/+C6mP/dtZP/27GN/9mt + iP/WqIL/1KR9/9GfeP/Pm3L/zJdt/8qSZ//IjWL/x4te/6VwPP6XZDGQAAAAAAAAAAAAAAAAAAAAAJZk + MIChYjH/x4Zl/86UeP/VoYf/3K6Y/+O7p//pyLb/8NXG//fi1//+7ub///Hq///y6///8uv///Ts///1 + 7f//9+////jv///26///8eT//e3e//vo2P/45NL/9eDM//Pbxv/w1sD/7NC4/+nLsf/lxav/47+j/+C6 + nf/dtpf/27KR/9mujP/WqYb/1KWA/9Gge//Pm3X/zJdw/8qTa//IjmX/x4xh/6VwPP6XZDGQAAAAAAAA + AAAAAAAAAAAAAJZkMIChYjL/x4dn/86Vef/Vo4n/3LCa/+O9qv/py7v/8dnM//no3///9/L///r1///2 + 7///8un//uzg//ji0//u18P/5862/9/Cpv/bvJ7/17eX/9Wzkf/UsY3/1LKN/9Wyjv/Ws47/2riU/9++ + mv/lxaH/58ai/+bBnv/iu5n/37eX/9uxkv/Wqov/1KWF/9Ghfv/PnHj/zJdz/8qTbf/Hjmj/x4tj/6Vw + Pf6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMIChYjL/x4dp/86Xe//UpIz/3LKe/+bBsP/vz7//8dHA/+7P + u//cu6D/xZ15/7qNZf+zhVr/rXxP/6VzQ/+hbj3/onA+/6V1Q/+qekn/rX5O/6+AUP+vgVD/rX9O/6p8 + Sv+md0T/pHM//6JyPv+md0P/rX9L/7GDT/+yg0//uIpX/8qfbv/UqHn/1aV5/9Wkfv/RnXz/zZh4/8qT + cf/Hjmr/x4xl/6VwPf6XZDCQAAAAAAAAAAAAAAAAAAAAAJZkMIChYjL/x4hq/86Yff/aqZD/26yS/9Ok + hf+3h17/p3VG/6p5S/+qeUv/uIph/8+mhP/gup7/6MSq/+/Msv/11Ln/+tvA//3gw///5MX//+bH///o + xv//6cX//+nD///ov//95bv/+uK1//Xcrf/v1qT/6c+c/+DFkf/QsHv/upNd/6yBS/+qfUf/pHI8/699 + R//Cjlj/ypNj/82Vb//IkHD/x4xp/6VwPf6XZDCQAAAAAAAAAAAAAAAAAAAAAJZkMIChYDD/y4tu/8+Y + ef+6hl7/om8+/61/Uv/Cl3H/4byg//jXw///387//+XU///l1v//49P//+PQ///jzv//48z//+PJ///j + x///5MX//+TE///kwv//5cH//+fA///ov///6b7//+u+///svf//7r3///C8///yvf//9L3///W7///v + tP/456r/4sqO/8SiaP+vhU3/nmo1/61zO//ChVP/yo9p/6VxP/6XZDCQAAAAAAAAAAAAAAAAAAAAAJZi + LoCocUT/volj/6BvPf+7kGj/5cCm//7gz///5tb//+PT///gz///383//97M///ezP//3sz//9/L///f + yv//4Mj//+HH///ixv//48T//+TD///kwv//5cH//+a////nvv//573//+m8///puv//6rn//+u4///r + t///7LX//+20///vtP//8bT///a2///5t///9LD/5tGQ/72bYP+bZC7/snA8/6ZxPv6YZTKQAAAAAAAA + AAAAAAAAAAAAAJllMoCaaDb/p3lL/+fDqP//5tb//+TT///fzf//3sz//97M///ezP//3sz//97M///e + zP//3sz//9/L///fyv//4Mj//+HH///ixv//48T//+TD///kwv//5cH//+a////nvv//573//+m8///p + uv//6rn//+u4///rt///7LX//+20///us///77H///Cw///wr///8q7///my///8s//n1pH/pnM8/5de + K/6ZZjOQAAAAAAAAAAAAAAAAAAAAAJZiLoSebDr/8c+6///m1v//3sz//97M///ezP//3sz//97M///e + zP//3sz//97M///ezP//3sz//97L///fyv//4Mj//+HH///ixv//4sT//+PD///kwv//5cH//+a////n + vv//573//+i8///puv//6rn//+u4///rt///7LX//+20///us///77H///Cw///wr///8a7///Ks///z + q////bL/8OOb/59vOv+UXy6SAAAAAAAAAAAAAAAAAAAAAJNfKoWrfE///+XU///fzf//3sz//97M///e + zP//3sz//97M///ezP//3sz//97M///ezP//3sz//97L///fyv//4Mj//+HH///ixv//4sT//+PD///k + wv//5cH//+a////nvv//573//+i8///puv//6rn//+u4///rt///7LX//+20///us///77H///Cw///w + r///8a7///Ks///zq///9av///6x/6+FTf+TXSySAAAAAAAAAAAAAAAAAAAAAJhkMSuXZDDQ2LGS///n + 1///4tH//97M///ezP//3sz//97M///ezP//3sz//97M///ezP//3sz//97L///fyv//4Mj//+HH///i + xv//4sT//+PD///kwv//5cH//+a////nvv//573//+i8///puv//6rn//+u4///rt///7LX//+20///u + s///77H///Cw///wr///8a7///Ks///3r////rP/1717/5djMdGWYjBRAAAAAAAAAAAAAAAAAAAAAAAA + AACYZTIzlmIv5cWadv/1077//+bX///j0///387//97M///ezP//3sz//97M///ezP//3sz//97L///f + yv//4Mj//+HH///ixv//4sT//+PD///kwv//5cH//+a////nvv//573//+i8///puv//6rn//+u4///r + t///7LX//+20///us///77H///Cx///ysf//97P///y1//Xnof/Eo2b/lmIv5JhkMjAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAmGUyG5NeKpmgbj37wpdy/+fCqP/+3cv//+TT///l1f//4tL//+HQ///f + zf//3sz//97L///fyv//4Mn//+HH///ixv//48X//+PD///kwv//5cH//+bA///mvv//573//+i8///p + uv//6rn//+u4///rt///7rf///C3///zuP//97n///a3//7vrv/n0ZL/wp9l/6BwO/uTXSyZmGUyHAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXZDAjk14phJhkMdand0n6u45m/9u1 + l//sybH/9dO+//7ey///5NT//+bV///m0///59H//+fP///ozf//6Mv//+jJ///pyP//6sf//+vG///s + xP//7cT//+/D///wwv//8sH///PA///yvv/+7LX/9eGo/+zWnP/bv4b/u5Rd/6d6RfmYZDHWk10rg5dj + MSMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJll + MgKWYi4rlGArd5RgLKWZZjPLn2w79Kp6Tf+8kGj/y6F+/9Osiv/Zs5H/3bmX/+G/nP/lw6D/6Mej/+nJ + pP/pyqL/6Mmg/+XGm//iw5b/3b2P/9m5iP/TsoH/y6h1/7yVYf+qfUn/n2069JlmM8yUXy2mlF4sdpZi + LyyZZTICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYZTICmGQxHpViLkSTYCtdk18qcJNfKoWUYCuhlGAstpVh + LcmWYi7Sl2Mw2JdkMdyYZDHcl2Mw2ZZiL9KVYS7IlF8stpRfLKGTXiuFk14rcJNfLF2WYS9El2QxH5hl + MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4AAAB/8AAP8A + AAAA/wAA/AAAAAA/AADwAAAAAA8AAOAAAAAABwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAAD + AADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAA + AAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAAD + AADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAA + AAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAAD + AADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAOAAAAAABwAA8AAAAAAPAAD8AAAAAD8AAP8A + AAAA/wAA//AAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJZjLwSTXysnk18rUphk + MX2dazqfpXREu6t9Ts2wglTZs4RW4bSEVuSzglLksH9O4ax5R9modEHNom06u5xnNJ+YYzB9lmEvUpVi + MCeXZTIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJVhLDGZYS6RqHJE08KS + bPrYsZL/6cSr//PRuv/72sP//+HH///ixv/+37//+9q2//fUrf/zz6T/7cea/+i/j//htoP/2ap1/86c + Zv/Bi1X/s3tF+qNsN9SZZDGQlmMxMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhkMRebXCqvtXVL/teh + gf/uwar//dzK///o2P//5db//+TT///kz///5Mz//uPI//rdvv/317b/89Kt//DOpv/syJ3/6cOW/+a9 + jv/juIb/4LSA/96uef/aqHH/0p1k/8WMU/+vdD3+m2Uyr5hlMhYAAAAAAAAAAAAAAACXYzAynlwrwsaB + Xv/dpYr/5ref/+7Gsf/52cf//+TV///l1f//5dX//+XT///n0v/+5s7/+uDF//favP/z1bT/8M+s/+zK + o//oxJv/5b6T/+G4iv/dsYL/2qt7/9alc//Tn2z/0Ztm/86VXv/AhEz/nWk1wJdlMkoAAAAAAAAAAJdi + L3+sbED/0pN0/9iihv/jtZ7/7cez//jby///6Nv//+nc///p3P//6dr//+rZ//7p1f/648v/997D//PX + uv/w0rP/7Myp/+jGof/lwJn/4bmQ/92zif/arYD/1qZ5/9Kgcf/PmWn/y5Nh/8uQXf+tdkH4mmczjwAA + AAAAAAAAmGMvgaxuQf/Qk3X/2KSJ/+O4ov/tyrj/+N7Q///r4f//7OH//+zh///s4P//7t///uzb//rm + 0v/34Mr/89rB//DUuf/szq//6Min/+XCn//hu5b/3bSO/9qthv/Wp37/0qF1/8+abv/Lk2b/yo9h/612 + Q/maZzOQAAAAAAAAAACYYy+ArG5C/9CVeP/Yp43/47um/+3NvP/44tb///Dn///x6f//8uv///Tr///3 + 7f//9er//u/h//vp2f/348//9NzH/+/VvP/rzrP/58ap/+K+n//et5X/2q+M/9apg//Sonv/z5tz/8uU + a//KkGX/rXZE+JpnM5AAAAAAAAAAAJhjL4CsbkP/0Jd8/9ipkf/kv6z/8NXH//zs5P//9/H//u/m//fk + 2P/v2sn/6NC6/+LIr//cvqH/2biZ/9azkv/VsI7/1a+M/9avjP/Zso//27OR/921k//cs5L/2q6O/9Sm + hP/PnXr/y5Vv/8qQav+tdkb4mmczkAAAAAAAAAAAmGIvgKxvRP/RnIL/3K+Z/+C3of/YsJb/zaSE/8Sb + eP+/k23/v5Ns/8OYcP/Innf/y6F4/82hd//MoHP/ypxu/8eXZ//DkF7/volW/7mBTP+0ekX/s3dD/7R4 + Rv+7gE//xI1g/8yYcP/Omnf/y5Ny/6x2R/iaZzOQAAAAAAAAAACYYy+ArnJI/8qOb/+4eVD/s3VJ/7+I + YP/Xqov/7Miw//nXwv//38z//+TP///nz///58z//+LC//zduf/417D/9dKp//DMn//sxZb/576M/+G1 + gf/ZqXP/zpli/8GGTv+zcjr/rGcv/7JuOv/EiF3/rnlL+JpoNJAAAAAAAAAAAJllMoChXy//q2Az/8OD + Xv/hrZL/8sex//zayP//5dX//+PT///i0f//48///+TN//7jyv/63cH/99i4//PTr//wzqj/7Mie/+jD + lv/lvY//4beG/96yf//crXn/2alz/9Wja//Nll3/unlB/6pfKP+iZjT4mmc1kAAAAAAAAAAAl2Iug6Jf + Lv/Nimn/26OH/+Ozmv/sxK7/99fF///l1v//5tf//+bX///m1f//6NT//ubQ//rhx//3277/89W2//DQ + rf/syqX/6MSc/+W/lP/huIz/3bKE/9qsfP/WpXX/0p9t/8+aZv/OlmH/x4lT/6JmMfmYZDGRAAAAAAAA + AACYYy+GrW1B/9CRcv/XoYX/4rSd/+zGsv/32sr//+jc///p3f//6d3//+rb///r2v/+6tb/+uPN//be + xP/z17v/8NK0/+zMqv/oxqL/5MCa/+C5kf/ds4n/2ayB/9amev/Sn3H/z5lq/8uSYv/Lj13/rXdD+ppn + NJMAAAAAAAAAAJhjL4CsbUH/z5J0/9ekif/it6H/7Mm3//fd0P//6+H//+3j///t4///7uL//+/h//7t + 3P/65tP/9uHL//Pawv/w1Lr/7M6x/+jIqP/kwaD/4LuX/920jv/Zrof/1qd//9Kgdv/Pmm//y5Nm/8qP + Yf+tdkP4mmczkAAAAAAAAAAAmGMvgKxtQf/PlHf/16aM/+K6pf/szLz/9+LW///y6///9u////fx///5 + 8f//+vH///fs///w4v/76dj/9+LP//Tdx//x1r7/7dC2/+jJrf/kwaP/37mZ/9qwj//WqYX/0qF7/8+a + dP/Lk2v/yo9m/612RfiaZzOQAAAAAAAAAACYYy+ArG5C/8+We//YqZH/5cGv//HVyP/45Nn/9+XZ/+vU + w//gxK7/1ric/8+ujv/Lp4P/x595/8Sacv/Clm3/wpRq/8KTaf/Dk2r/x5du/8qcdP/Qonv/1aiD/9eq + h//Vp4X/0Z99/8uVcv/KkGv/rXZG+JpnM5AAAAAAAAAAAJhiL4CsbkT/0pyD/9enjv/Qn4L/xJJu/72N + Zf++kmr/xZl0/86jgP/Xr43/37mX/+K+mv/jvZf/4ruT/9+3i//bsIP/1ah4/8+fbf/Hk1//voZR/7d7 + Rf+xcjz/sHA8/7Z4Rv/Bhln/y5Rt/8yUc/+td0j4mmczkAAAAAAAAAAAmGQwgK1vRf+8eVT/rmo9/7p9 + VP/Snn3/7cSs//7ezP//5NT//+bV///m0///59D//+XK//3fwP/52rf/9tSu//PPpv/vyp7/7MWW/+jA + j//luob/4LN9/9mpcv/PmWH/wIRM/7FuNf+qYiv/uXZH/613SPibaDWQAAAAAAAAAACZZDGAnVkm/7Jo + PP/RlHT/5rSb/+/Fr//41cP//+LS///j0///4tL//+PQ///lz//+5Mv/+t7B//bZuf/z07D/8M6p/+zI + oP/owpj/5L2P/+C2h//dsH//2qp4/9emcv/VoWz/0pxl/8aLU/+wZy//nV8r+JlmM5AAAAAAAAAAAJdi + LoanZTf/0I5v/9efg//hsZj/68Ot//bWxP/+5db//+fZ///n2f//59f//+nW//7n0v/64cj/9tvA//PW + t//w0K//7Mqm/+jEnv/kvpb/4LiN/92yhf/Zq33/1qV2/9Kfbv/PmWb/zJNg/8uOWf+nbjn6mGUykwAA + AAAAAAAAmGMvg6xtQP/Oj3D/1qCE/+G0nP/rxrL/9tnK//7p3P//69///+vf///r3f//7Nz//uvY//rk + z//23sb/89i9//DTtf/szKz/6Mek/+TAnP/guZP/3bOL/9mtg//Wp3v/0qBz/8+ZbP/Lk2P/yo5e/613 + Q/maZzSRAAAAAAAAAACYYy+ArGxA/86Rc//Wooj/4bah/+vItv/23c///uzi///u5f//7+X//+/k///w + 5P/+7uD/+ujX//bizv/z28X/8Na9/+zPs//oyKv/5MKi/+C6mf/dtJH/2a6J/9angP/SoXj/z5pw/8uT + aP/Kj2P/rXZE+JpnM5AAAAAAAAAAAJhjL4CsbEH/zpN2/9ali//huaX/68y8//jj2f//9vD///n1///5 + 9P//9/D///Xr//7w4//66Nf/9eHN//HaxP/w17//7dK4/+vNsv/ox6z/5cGk/+C6m//bsZH/16mI/9Ki + fv/Pm3X/y5Rs/8qPZ/+tdkX4mmczkAAAAAAAAAAAmGMvgKxtQv/OlXn/16iR/+bArv/tzr7/7dHA/+TJ + tP/Wtpr/y6aG/8Weev/Al3D/vpVs/7+Va/++lGn/vpRn/76VZv+8k2T/vZNk/76UZv/AlWf/xZls/8ue + c//Qonr/06J9/9Gee//MlXP/ypBs/612RviaZzOQAAAAAAAAAACYYi6ArG1C/9KZfv/QnoD/wpNv/7qM + Zf++kWn/yJx4/9WsjP/hup7/6sar//LQtP/217j/+Nq6//nduv/53rj/+N61//bdsf/z2qr/7NKf/+PH + kv/XuYL/yadv/72VXf+1hlD/t4JP/8GIXP/LkW3/rXdJ+JpnM5AAAAAAAAAAAJllMoCtc0f/t4Ja/7uP + Zv/btJb/89C6///gzv//5dT//+XV///j0v//487//+PL///kyP//5cb//+XE///mwv//6cH//+q////s + vf//7r3///G9///0vP//9rr///K0//Tjo//bw4T/uZBV/65zQP+pcED4m2g1kAAAAAAAAAAAl2MvgaFw + QP/fup3//+LR///l1f//4c///97M///ezP//3sz//97M///fyv//4Mj//+LG///jxP//5ML//+XA///n + v///6L3//+m7///quf//67f//+21///us///8LL///Oy///6tP//+bH/38iE/59qNfmWYS+QAAAAAAAA + AACVYS2EwJZw///u4P//383//97M///ezP//3sz//97M///ezP//3sz//9/K///gyP//4sb//+PE///k + wv//5cD//+a////ovf//6bv//+q5///rt///7bX//+6z///vsf//8K////Gu///zrP///7n/v55i+Zll + MpIAAAAAAAAAAJViLTOkc0PC7su0///n1///49L//9/N///ezP//3sz//97M///ezP//38r//+DI///i + xv//48T//+TC///lwP//5r///+i9///pu///6rn//+u3///ttf//7rP//++x///xsP//97L///21/+7d + l/+jdT/AlmEvSgAAAAAAAAAAAAAAAJZiLxecajivxZp1/u3Jsf/+3sz//+XV///l1f//49L//+HQ///h + zP//4cn//+LH///jxf//5MP//+XB///mv///6L7//+q8///su///7rr///K7///2u///97n//vGw/+3Z + mP/Fo2f+nGs3r5ZiMBYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTXyoxmWYzkat8TtPEmXP62LGS/+nE + q//00bv/+9rE///gyP//5Mn//+jK///pyf//6sf//+vE///qwP/+6Lv/+uWz//Tdqf/oz5n/2LuD/8Of + aPqrf0rUmWczkJNeLDIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlmIuBJNf + KieUXytSmGQxfZ5rOp+ldES7q31OzbCDVdm0h1rhtopc5LaKW+S0iFjhsYRT2at+TM2ldUK6nmw5oJdk + MX2TXyxSk14rJ5ZhLwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8AAA/8AAAD8AAAAOAAAABgAAAAYAA + AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA + AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAcAAAAPwAAAP/AAAPwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAoAAAAEAAAACAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACYYzA0qHdIfb6QZrHKoHrP0qqF3NWofejNo3bkyJNm3buLV8+ufEatpG45fZhlMTQAAAAAAAAAAJli + LzimaDmh0Jh4//XPvv//7+H//+/n///26f//6dH//uG+//beqv/twpT/4bV+/9WibP/DilP/pW46oJpn + NEGiaDiUv4Bb/+Kwmv/01sT///Dm///x4v//+fL///Pe//bpyf/w1rH/58Kf/9yxiP/VpHj/0Zlq/7yE + UPmlbzyXomk6lb+DYP/jt6T/9N7U//rv7v/27d7/6eDP/9XKvf/avbP/07ml/966nf/YsZf/1auN/9Kd + e/+8hFf7pXA9l6JqO5W7f1v/zJd3/8+mhP/XsJH/26WI/9+te//bp3D/1JZb/8WWUv/Bh0v/u4VK/7x+ + Tf/AgVP/uX9W/KVwQJWdYzGWsGxA/9Wbe//1zLb//+vi///13///9uP//+jQ//zcuv/30q7/8suW/+O1 + gf/YoWv/xopS/65sOPufZTOUomg4lr5/Wv/grpb/9NTH///06///9Ov///j2//7y5f/87c3/8Ni6/+XC + pf/etYz/1KR7/9Kab/++hFH7pW88laJpOpW/g2D/4LWj//DYyv/55N//5tXD/+TPuf/YuZ//0LOT/8+t + jf/Uqof/1aeH/9Skhf/Von//vYVZ/KVwP5ShaTqUt3pU/8aObP/SpIH/2bSV/+O2kf/nwZr/57yU/+O1 + gv/Zq3f/zZtj/8aHVv+7fkT/vHtN/7V7T/ujbz+VnWExlbFsQf/XoIL/+NTA///x6v//7uL///Lh//3k + xv/227b/7tCn/+nBlv/guIP/2ahx/82QWf+vbTj7n2YykaJpOZS+f1r/3qyX//LWx///+PL///j1///7 + 8v/+8eL/9uPJ//TTtv/nxaP/3rWV/9elf//OnG3/vIRT/aRwPZOiaTmVvoBe/9ywmv/pzLv/7NbG/+PJ + sv/Zw6j/3Lud/9ezk//NrIb/0KiB/82gfP/Nl3X/zpR1/7yDWfumcD+VoWk6lbd+V//PpIX/37ea/+jA + p//tya7/9NKy//bXtP/22rH/9Nyu//DXo//p0Zf/3L6C/8SdZP+zdkr6omw6l6R0RJXUq4z//+XW///k + 0///4tH//+LQ///kyf//5cX//+jB///qvv//77z///O6///3uf///bj/07Z1+qh6Q5ecajg5tYheoezJ + r//+3sz//+TU///m1v//6NH//+rL///tx///78T///TA///1vP/+8LD/7NmW/7aOU6CebTlBAAAAAAAA + AACYZTIzq3xOf76Sa7LMo4DQ1a6K4dm1jujat4zo1bOE4MypdNC+lmKyq35KgJhkMjQAAAAAAAAAAMAD + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAD + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/MainForm.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/MainForm.Designer.cs new file mode 100644 index 00000000..f27e6733 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/MainForm.Designer.cs @@ -0,0 +1,310 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.MetadataFetcher.Forms +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + var dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + var dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + var dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + var resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + this.gbxServices = new System.Windows.Forms.GroupBox(); + this.dgvServices = new System.Windows.Forms.DataGridView(); + this.chkAll = new System.Windows.Forms.CheckBox(); + this.btnUpdate = new System.Windows.Forms.Button(); + this.gbxProgress = new System.Windows.Forms.GroupBox(); + this.btnCancelDownload = new System.Windows.Forms.Button(); + this.prgMain = new System.Windows.Forms.ProgressBar(); + this.bgwMain = new System.ComponentModel.BackgroundWorker(); + this.lblServicesSelected = new System.Windows.Forms.Label(); + this.lblSelectionCount = new System.Windows.Forms.Label(); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.mnuServiceManagement = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuAddServices = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuRemoveSelectedServices = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuRefreshServiceList = new System.Windows.Forms.ToolStripMenuItem(); + this.gbxServices.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvServices)).BeginInit(); + this.gbxProgress.SuspendLayout(); + this.menuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // gbxServices + // + this.gbxServices.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbxServices.Controls.Add(this.dgvServices); + this.gbxServices.Controls.Add(this.chkAll); + this.gbxServices.Controls.Add(this.btnUpdate); + this.gbxServices.Location = new System.Drawing.Point(12, 27); + this.gbxServices.Name = "gbxServices"; + this.gbxServices.Size = new System.Drawing.Size(718, 302); + this.gbxServices.TabIndex = 1; + this.gbxServices.TabStop = false; + this.gbxServices.Text = "Select services and then download metadata to update the metadata cache"; + // + // dgvServices + // + this.dgvServices.AllowUserToAddRows = false; + this.dgvServices.AllowUserToDeleteRows = false; + this.dgvServices.AllowUserToOrderColumns = true; + this.dgvServices.AllowUserToResizeRows = false; + this.dgvServices.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvServices.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvServices.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.dgvServices.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvServices.DefaultCellStyle = dataGridViewCellStyle2; + this.dgvServices.Location = new System.Drawing.Point(6, 19); + this.dgvServices.MultiSelect = false; + this.dgvServices.Name = "dgvServices"; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvServices.RowHeadersDefaultCellStyle = dataGridViewCellStyle3; + this.dgvServices.RowHeadersVisible = false; + this.dgvServices.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvServices.Size = new System.Drawing.Size(706, 250); + this.dgvServices.TabIndex = 5; + this.dgvServices.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvServices_CellValueChanged); + this.dgvServices.CurrentCellDirtyStateChanged += new System.EventHandler(this.dgvServices_CurrentCellDirtyStateChanged); + // + // chkAll + // + this.chkAll.AutoSize = true; + this.chkAll.Location = new System.Drawing.Point(9, 275); + this.chkAll.Name = "chkAll"; + this.chkAll.Size = new System.Drawing.Size(70, 17); + this.chkAll.TabIndex = 1; + this.chkAll.Text = "Select &All"; + this.chkAll.UseVisualStyleBackColor = true; + this.chkAll.CheckedChanged += new System.EventHandler(this.chkAll_CheckedChanged); + // + // btnUpdate + // + this.btnUpdate.Location = new System.Drawing.Point(599, 273); + this.btnUpdate.Name = "btnUpdate"; + this.btnUpdate.Size = new System.Drawing.Size(113, 23); + this.btnUpdate.TabIndex = 4; + this.btnUpdate.Text = "&Download Metadata"; + this.btnUpdate.UseVisualStyleBackColor = true; + this.btnUpdate.Click += new System.EventHandler(this.btnUpdate_Click); + // + // gbxProgress + // + this.gbxProgress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbxProgress.Controls.Add(this.btnCancelDownload); + this.gbxProgress.Controls.Add(this.prgMain); + this.gbxProgress.Location = new System.Drawing.Point(12, 335); + this.gbxProgress.Name = "gbxProgress"; + this.gbxProgress.Size = new System.Drawing.Size(718, 46); + this.gbxProgress.TabIndex = 5; + this.gbxProgress.TabStop = false; + this.gbxProgress.Text = "Ready"; + this.gbxProgress.Visible = false; + // + // btnCancelDownload + // + this.btnCancelDownload.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancelDownload.Enabled = false; + this.btnCancelDownload.Location = new System.Drawing.Point(627, 16); + this.btnCancelDownload.Name = "btnCancelDownload"; + this.btnCancelDownload.Size = new System.Drawing.Size(85, 22); + this.btnCancelDownload.TabIndex = 28; + this.btnCancelDownload.Text = "Cancel"; + this.btnCancelDownload.UseVisualStyleBackColor = true; + this.btnCancelDownload.Click += new System.EventHandler(this.btnCancelDownload_Click); + // + // prgMain + // + this.prgMain.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.prgMain.Location = new System.Drawing.Point(9, 16); + this.prgMain.Name = "prgMain"; + this.prgMain.Size = new System.Drawing.Size(612, 22); + this.prgMain.TabIndex = 0; + // + // bgwMain + // + this.bgwMain.WorkerReportsProgress = true; + this.bgwMain.WorkerSupportsCancellation = true; + // + // lblServicesSelected + // + this.lblServicesSelected.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.lblServicesSelected.AutoSize = true; + this.lblServicesSelected.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblServicesSelected.Location = new System.Drawing.Point(26, 354); + this.lblServicesSelected.Name = "lblServicesSelected"; + this.lblServicesSelected.Size = new System.Drawing.Size(125, 15); + this.lblServicesSelected.TabIndex = 6; + this.lblServicesSelected.Text = "Services Selected:"; + // + // lblSelectionCount + // + this.lblSelectionCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.lblSelectionCount.AutoSize = true; + this.lblSelectionCount.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblSelectionCount.Location = new System.Drawing.Point(149, 354); + this.lblSelectionCount.Name = "lblSelectionCount"; + this.lblSelectionCount.Size = new System.Drawing.Size(15, 15); + this.lblSelectionCount.TabIndex = 7; + this.lblSelectionCount.Text = "0"; + // + // menuStrip1 + // + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuServiceManagement}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(742, 24); + this.menuStrip1.TabIndex = 8; + this.menuStrip1.Text = "menuStrip1"; + // + // mnuServiceManagement + // + this.mnuServiceManagement.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuAddServices, + this.toolStripSeparator1, + this.mnuRemoveSelectedServices, + this.toolStripSeparator2, + this.mnuRefreshServiceList}); + this.mnuServiceManagement.Name = "mnuServiceManagement"; + this.mnuServiceManagement.Size = new System.Drawing.Size(119, 20); + this.mnuServiceManagement.Text = "Service Management"; + // + // mnuAddServices + // + this.mnuAddServices.Name = "mnuAddServices"; + this.mnuAddServices.Size = new System.Drawing.Size(230, 22); + this.mnuAddServices.Text = "&Add WaterOneFlow Service(s)"; + this.mnuAddServices.Click += new System.EventHandler(this.mnuAddServices_Click); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(227, 6); + // + // mnuRemoveSelectedServices + // + this.mnuRemoveSelectedServices.Name = "mnuRemoveSelectedServices"; + this.mnuRemoveSelectedServices.Size = new System.Drawing.Size(230, 22); + this.mnuRemoveSelectedServices.Text = "&Remove Selected Services"; + this.mnuRemoveSelectedServices.Click += new System.EventHandler(this.mnuRemoveSelectedServices_Click); + // + // toolStripSeparator2 + // + this.toolStripSeparator2.Name = "toolStripSeparator2"; + this.toolStripSeparator2.Size = new System.Drawing.Size(227, 6); + // + // mnuRefreshServiceList + // + this.mnuRefreshServiceList.Name = "mnuRefreshServiceList"; + this.mnuRefreshServiceList.Size = new System.Drawing.Size(230, 22); + this.mnuRefreshServiceList.Text = "Refresh Service List"; + this.mnuRefreshServiceList.Click += new System.EventHandler(this.mnuRefreshServiceList_Click); + // + // MainForm + // + this.AcceptButton = this.btnUpdate; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(742, 391); + this.Controls.Add(this.lblSelectionCount); + this.Controls.Add(this.lblServicesSelected); + this.Controls.Add(this.gbxProgress); + this.Controls.Add(this.gbxServices); + this.Controls.Add(this.menuStrip1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MainMenuStrip = this.menuStrip1; + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(480, 247); + this.Name = "MainForm"; + this.Text = "Metadata Fetcher"; + this.Load += new System.EventHandler(this.MainForm_Load); + this.gbxServices.ResumeLayout(false); + this.gbxServices.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvServices)).EndInit(); + this.gbxProgress.ResumeLayout(false); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + } + + #endregion + + private System.Windows.Forms.GroupBox gbxServices; + private System.Windows.Forms.Button btnUpdate; + private CheckBox chkAll; + private GroupBox gbxProgress; + private ProgressBar prgMain; + private BackgroundWorker bgwMain; + private Button btnCancelDownload; + private DataGridView dgvServices; + private Label lblServicesSelected; + private Label lblSelectionCount; + private MenuStrip menuStrip1; + private ToolStripMenuItem mnuServiceManagement; + private ToolStripMenuItem mnuAddServices; + private ToolStripSeparator toolStripSeparator1; + private ToolStripMenuItem mnuRemoveSelectedServices; + private ToolStripSeparator toolStripSeparator2; + private ToolStripMenuItem mnuRefreshServiceList; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/MainForm.cs b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/MainForm.cs new file mode 100644 index 00000000..c19f60f7 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/MainForm.cs @@ -0,0 +1,944 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Globalization; +using System.IO; +using System.Net; +using System.Text; +using System.Windows.Forms; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.WebServices.WaterOneFlow; +using System.Threading; + +namespace HydroDesktop.Plugins.MetadataFetcher.Forms +{ + public partial class MainForm : Form + { + #region Variables + + private enum BackgroundWorkerTasks { FetchMetadata, RemoveServices, Unknown } + + private AddServicesForm _addServicesForm; + private bool _formIsClosing; + + #endregion + + #region Constructor + + public MainForm () + { + InitializeComponent (); + + FormClosing += MainForm_FormClosing; + + // Background worker for data download + bgwMain = new BackgroundWorker (); + bgwMain.DoWork += bgwMain_DoWork; + bgwMain.ProgressChanged += bgwMain_ProgressChanged; + bgwMain.RunWorkerCompleted += bgwMain_RunWorkerCompleted; + bgwMain.WorkerReportsProgress = true; + bgwMain.WorkerSupportsCancellation = true; + } + + #endregion + + #region Private Methods + + #region Form Loading / Unloading + + private void MainForm_Load ( object sender, EventArgs e ) + { + Cursor = Cursors.WaitCursor; + RefreshServiceList (); + Cursor = Cursors.Default; + + mnuRemoveSelectedServices.Enabled = false; + } + + void MainForm_FormClosing ( object sender, FormClosingEventArgs e ) + { + e.Cancel = true; + + if ( bgwMain.IsBusy ) + { + CancelWorker (); + + _formIsClosing = true; + } + else + { + Hide (); + } + } + + #endregion + + #region Utilities + + /// + /// Opens a form to allow a user to enter details for a new service to add to the metadata cache list + /// + private void AddServices () + { + // Initialize the form + if ( _addServicesForm == null ) + { + _addServicesForm = new AddServicesForm (); + } + _addServicesForm.ClearInputs (); + + // Show the form + _addServicesForm.ShowDialog(this); + SelectNewServices (); + } + + private void RemoveSelectedServicesPrep () + { + if ( dgvServices.Rows.Count == 0 ) + { + MessageBox.Show ( "There are no services to remove", Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk ); + return; + } + + // Build a list of services that the user marked for removal + var checkedServices = new List (); + + foreach ( DataGridViewRow serviceRow in dgvServices.Rows ) + { + var selected = (bool)serviceRow.Cells["Selected"].Value; + if ( selected ) + { + var serviceUrl = serviceRow.Cells["Service URL"].Value.ToString (); + checkedServices.Add ( serviceUrl ); + } + } + + if ( checkedServices.Count == 0 ) + { + MessageBox.Show ( "Please select services to remove and try again", Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk ); + return; + } + + if ( MessageBox.Show ( "Are you sure you want to DELETE the selected services from your local cache database?", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question ) == DialogResult.Yes ) + { + // Build parameters to pass to the background worker + var parameters = new object[2]; + parameters[0] = BackgroundWorkerTasks.RemoveServices; + parameters[1] = checkedServices; + + SetupFormForWork (); + + // Start the asynchronous operation + bgwMain.RunWorkerAsync ( parameters ); + } + } + + /// + /// Services selected in the DataGridView are removed from the view and also the Metadata Cache database + /// + private string RemoveSelectedServices ( List serviceUrls, DoWorkEventArgs e ) + { + var totalServices = serviceUrls.Count; + var currentService = 0; + + var cacheManager = DatabaseOperations.GetCacheManager(); + + foreach ( var serviceUrl in serviceUrls ) + { + // Update progress + currentService++; + bgwMain.ReportProgress ( 100 * currentService / totalServices, "Removing service " + currentService + " of " + totalServices + "..." ); + + if ( bgwMain.CancellationPending ) + { + e.Cancel = true; + return "Operation cancelled"; + } + + // Delete the service info for this item + var serviceInfo = DatabaseOperations.GetDataServiceFromCache ( serviceUrl ); + + try + { + cacheManager.DeleteRecordsForService ( serviceInfo, true ); + } + catch ( Exception ex ) + { + throw new Exception ( "Unable to remove service from local metadata database. \n" + serviceUrl + "\n" + ex.Message ); + } + } + + + return totalServices == 1 ? "Service successfully removed" : "Services successfully removed"; + } + + /// + /// Refreshes the list of services in the DataGridView, and selects new ones + /// + private void SelectNewServices () + { + // Keep track of existing services + var existingUris = new List (); + var checkedUris = new List (); + + foreach ( DataGridViewRow serviceRow in dgvServices.Rows ) + { + var serviceUrl = serviceRow.Cells["Service URL"].Value.ToString (); + existingUris.Add ( serviceUrl ); + + if ( Convert.ToBoolean(serviceRow.Cells["Selected"].Value) ) + { + checkedUris.Add ( serviceUrl ); + } + } + + var previousServiceCount = dgvServices.Rows.Count; + + // Refresh the service list + RefreshServiceList (); + + if ( dgvServices.Rows.Count > previousServiceCount ) + { + // New services added, so select any services that weren't previously in the list + foreach ( DataGridViewRow serviceRow in dgvServices.Rows ) + { + var serviceUri = serviceRow.Cells["Service URL"].Value.ToString(); + serviceRow.Cells["Selected"].Value = !existingUris.Contains(serviceUri); + } + } + else + { + // No new services added, so select any existing services that the user had previously selected + foreach ( DataGridViewRow serviceRow in dgvServices.Rows ) + { + var serviceUri = serviceRow.Cells["Service URL"].Value.ToString (); + serviceRow.Cells["Selected"].Value = checkedUris.Contains(serviceUri); + } + } + } + + /// + /// Updates the label that shows the number of selected services and colors selected rows. + /// + private void updateSelection () + { + var count = 0; + mnuRemoveSelectedServices.Enabled = false; + foreach (DataGridViewRow row in dgvServices.Rows) + { + if ((bool) row.Cells["Selected"].Value) + { + count++; + mnuRemoveSelectedServices.Enabled = true; + foreach (DataGridViewCell cell in row.Cells) + cell.Style.BackColor = Color.LightYellow; + } + else + { + foreach (DataGridViewCell cell in row.Cells) + cell.Style.BackColor = Color.Empty; + } + } + + lblSelectionCount.Text = count.ToString (CultureInfo.InvariantCulture); + } + + private string FetchMetadata (List serviceUrls, DoWorkEventArgs e ) + { + var totalServices = serviceUrls.Count; + var currentService = 0; + var seriesCount = 0; // Keeps track of how many series were successfully processed + + var cacheManager = DatabaseOperations.GetCacheManager(); + + var errors = new StringBuilder (); // Keep track of errors and report them at the end + foreach ( var serviceUrl in serviceUrls ) + { + // Check for cancel + if ( bgwMain.CancellationPending ) + { + e.Cancel = true; + return "Operation cancelled"; + } + + // Update progress + currentService++; + bgwMain.ReportProgress ( 100 * (currentService-1) / totalServices, "Reading database info for service " + currentService + " of " + totalServices + "..." ); + + // Get the service info for this item + var serviceInfo = DatabaseOperations.GetDataServiceFromCache ( serviceUrl ); + + // Check for cancel + if ( bgwMain.CancellationPending ) + { + e.Cancel = true; + return "Operation cancelled"; + } + + // Update progress + bgwMain.ReportProgress ( 100 * (currentService - 1) / totalServices, "Deleting old records for service " + currentService + " of " + totalServices + "..." ); + + // Delete existing records for this service + cacheManager.DeleteRecordsForService ( serviceInfo, false ); + + // Check for cancel + if ( bgwMain.CancellationPending ) + { + e.Cancel = true; + return "Operation cancelled"; + } + + // Update progress + bgwMain.ReportProgress ( 100 * (currentService - 1) / totalServices, "Connecting to service " + currentService + " of " + totalServices + "..." ); + + // Create a WaterOneFlow Service for this URL + WaterOneFlowClient waterOneFlowClient; + try + { + waterOneFlowClient = new WaterOneFlowClient ( serviceUrl ); + } + catch ( Exception ex ) + { + // Flag the error and continue to the next service + errors.AppendLine ( "Could not connect to service with URL: " + serviceUrl + ".\n" + ex.Message + "\n\n" ); + continue; + } + + // Check for cancel + if ( bgwMain.CancellationPending ) + { + e.Cancel = true; + return "Operation cancelled"; + } + + // Update progress + bgwMain.ReportProgress ( 100 * (currentService - 1) / totalServices, "Updating database description for service " + currentService + " of " + totalServices + "..." ); + + // Update service info in the metadata database + var waterOneFlowServiceInfo = waterOneFlowClient.ServiceInfo; + + serviceInfo.IsHarvested = false; + serviceInfo.ServiceName = waterOneFlowServiceInfo.ServiceName; + serviceInfo.Version = waterOneFlowServiceInfo.Version; + serviceInfo.ServiceType = waterOneFlowServiceInfo.ServiceType; + serviceInfo.Protocol = waterOneFlowServiceInfo.Protocol; + serviceInfo.VariableCount = (cacheManager.GetVariablesByService((int)serviceInfo.Id)).Count; + + cacheManager.UpdateDataRow ( serviceInfo ); + + // Check for cancel + if ( bgwMain.CancellationPending ) + { + e.Cancel = true; + return "Operation cancelled"; + } + + // Update progress + bgwMain.ReportProgress ( 100 * (currentService - 1) / totalServices, "Downloading site list for service " + currentService + " of " + totalServices + "..." ); + + // Get all sites for this service + IList siteList; + + try + { + siteList = waterOneFlowClient.GetSites (); + } + catch ( WebException ex ) + { + + var sr = new StreamReader(ex.Response.GetResponseStream()); + sr.ReadToEnd(); + + // Flag the error and continue to the next service + errors.AppendLine ( "Could not get site list from service with URL: " + serviceUrl + ".\n" + ex.Message + "\n\n" ); + continue; + } + + // Check for cancel + if ( bgwMain.CancellationPending ) + { + e.Cancel = true; + return "Operation cancelled"; + } + + var totalSteps = siteList.Count; + var currentStep = 0; + + // Error tracking + var siteErrorCount = 0; // Keeps track of how many errors we had while downloading site info for the current service + var saveErrorCount = 0; // Keeps track of how many errors we had while saving site info for the current service + var firstSiteError = ""; // Records the message from the first error we had while getting site info for the current service + var firstSaveError = ""; // Records the message from the first error we had while saving site info for the current service + + // Default extent for the service. These values are designed to be overwritten as we query sites in the service + double east = -180; + double west = 360; + double north = -90; + double south = 90; + int valueCount = 0; + + + IList siteList1 = (siteList as List).GetRange(0, (siteList.Count/2)-1); + IList siteList2 = (siteList as List).GetRange(siteList.Count/2, siteList.Count-1); + + var thread1 = new Thread(() => ProcessSites(siteList1)); + thread1.Start(); + var thread2 = new Thread(() => ProcessSites(siteList2)); + thread2.Start(); + + + foreach (var site in siteList) + { + // Check for cancel + if (bgwMain.CancellationPending ) + { + e.Cancel = true; + return "Operation cancelled"; + } + + // Update progress + currentStep++; + bgwMain.ReportProgress ( 100 * currentStep / totalSteps, + "Processing site " + currentStep + " of " + totalSteps + + " from service " + currentService + " of " + totalServices + "..." ); + + // Get series for this site + IList currentSeriesList; + + try + { + currentSeriesList = waterOneFlowClient.GetSiteInfo(site.Code); + } + catch (WebException ex) + { + // Flag the error and continue to the next site + siteErrorCount++; + + if (siteErrorCount == 1) + { + firstSiteError = ex.Message; + } + + if (ex.Response != null) + { + var rdr = new StreamReader(ex.Response.GetResponseStream()); + rdr.ReadToEnd(); + } + + continue; + } + catch (Exception ex) + { + // Flag the error and continue to the next site + siteErrorCount++; + + if (siteErrorCount == 1) + { + firstSiteError = ex.Message; + } + + continue; + } + + // Update service extent + if ( site.Latitude > north ) + { + north = site.Latitude; + } + if ( site.Latitude < south ) + { + south = site.Latitude; + } + if ( site.Longitude > east ) + { + east = site.Longitude; + } + if ( site.Longitude < west ) + { + west = site.Longitude; + } + + // Save series info to metadata cache database + foreach (var series in currentSeriesList ) + { + valueCount += series.ValueCount; + + // Check for cancel + if ( bgwMain.CancellationPending ) + { + e.Cancel = true; + return "Operation cancelled"; + } + + try + { + cacheManager.SaveSeries(series, serviceInfo); + } + catch ( Exception ex ) + { + // Flag the error and continue to the next series + saveErrorCount++; + + if ( saveErrorCount == 1 ) + { + firstSaveError = ex.Message; + } + + continue; + } + + // Keep track of how many series were successfully processed + seriesCount++; + } + } + + // Log errors + if ( siteErrorCount == 1 ) + { + errors.AppendLine ( "Could not get site info for 1 site in service with URL: " + serviceUrl + + "\n" + firstSiteError + "\n\n" ); + } + else if ( siteErrorCount > 1 ) + { + errors.AppendLine ( "Could not get site info for " + siteErrorCount + " sites in service with URL: " + serviceUrl + + "\n" + firstSiteError + "\n\n" ); + } + + if ( saveErrorCount == 1 ) + { + errors.AppendLine ( "Could not save site info for 1 site in service with URL: " + serviceUrl + + "\n" + firstSaveError + "\n\n" ); + } + else if ( saveErrorCount > 1 ) + { + errors.AppendLine ( "Could not save site info for " + siteErrorCount + " sites in service with URL: " + serviceUrl + + "\n" + firstSaveError + "\n\n" ); + } + + // Check for cancel + if ( bgwMain.CancellationPending ) + { + e.Cancel = true; + return "Operation cancelled"; + } + + // Update progress + bgwMain.ReportProgress ( 100 * currentService / totalServices, + "Updating harvested statistics for service " + currentService + " of " + totalServices + "..." ); + + // Update service info + serviceInfo.IsHarvested = true; + serviceInfo.HarveDateTime = DateTime.Now; + serviceInfo.EastLongitude = east; + serviceInfo.WestLongitude = west; + serviceInfo.NorthLatitude = north; + serviceInfo.SouthLatitude = south; + + serviceInfo.SiteCount = siteList.Count; + serviceInfo.ValueCount = valueCount; + serviceInfo.VariableCount = (cacheManager.GetVariablesByService((int)serviceInfo.Id)).Count; + + cacheManager.UpdateDataRow(serviceInfo); // Updates properties like harvest datetime and service extent + } + + // Check for cancel + if ( bgwMain.CancellationPending ) + { + e.Cancel = true; + return "Operation cancelled"; + } + + // Update progress + bgwMain.ReportProgress ( 100, "Operation complete" ); + + // Report result + var message = "Download complete. " + seriesCount + " series saved to metadata cache database."; + + if ( errors.Length > 0 ) + { + message += "\n\nSome errors occurred during the operation:\n\n" + errors; + } + + return message; + } + + private void ProcessSites(IList siteList) + { + /*foreach (var site in siteList) + { + // Check for cancel + if (bgwMain.CancellationPending) + { + e.Cancel = true; + return "Operation cancelled"; + } + + // Update progress + currentStep++; + bgwMain.ReportProgress(100 * currentStep / totalSteps, + "Processing site " + currentStep + " of " + totalSteps + + " from service " + currentService + " of " + totalServices + "..."); + + // Get series for this site + IList currentSeriesList; + + try + { + currentSeriesList = waterOneFlowClient.GetSiteInfo(site.Code); + } + catch (WebException ex) + { + // Flag the error and continue to the next site + siteErrorCount++; + + if (siteErrorCount == 1) + { + firstSiteError = ex.Message; + } + + if (ex.Response != null) + { + var rdr = new StreamReader(ex.Response.GetResponseStream()); + rdr.ReadToEnd(); + } + + continue; + } + catch (Exception ex) + { + // Flag the error and continue to the next site + siteErrorCount++; + + if (siteErrorCount == 1) + { + firstSiteError = ex.Message; + } + + continue; + } + + // Update service extent + if (site.Latitude > north) + { + north = site.Latitude; + } + if (site.Latitude < south) + { + south = site.Latitude; + } + if (site.Longitude > east) + { + east = site.Longitude; + } + if (site.Longitude < west) + { + west = site.Longitude; + } + + // Save series info to metadata cache database + foreach (var series in currentSeriesList) + { + valueCount += series.ValueCount; + + // Check for cancel + if (bgwMain.CancellationPending) + { + e.Cancel = true; + return "Operation cancelled"; + } + + try + { + cacheManager.SaveSeries(series, serviceInfo); + } + catch (Exception ex) + { + // Flag the error and continue to the next series + saveErrorCount++; + + if (saveErrorCount == 1) + { + firstSaveError = ex.Message; + } + + continue; + } + + // Keep track of how many series were successfully processed + seriesCount++; + } + }*/ + } + + /// + /// Disables/Enables controls and sets mouse cursor in preparation for a BackgroundWorker to run + /// + private void SetupFormForWork () + { + // Disable controls until the asynchronous operation is done + + mnuServiceManagement.Enabled = false; + chkAll.Enabled = false; + //btnRemove.Enabled = false; + //btnAddService.Enabled = false; + btnUpdate.Enabled = false; + dgvServices.Enabled = false; + lblSelectionCount.Visible = false; + lblServicesSelected.Visible = false; + + // Enable the Cancel button while the asynchronous operation runs + gbxProgress.Visible = true; + btnCancelDownload.Enabled = true; + + Cursor = Cursors.WaitCursor; + } + + /// + /// Disables/Enables controls and sets mouse cursor once a BackgroundWorker has finished + /// + private void RestoreFormFromWork () + { + mnuServiceManagement.Enabled = true; + chkAll.Enabled = true; + //btnRemove.Enabled = true; + //btnAddService.Enabled = true; + btnUpdate.Enabled = true; + dgvServices.Enabled = true; + lblServicesSelected.Visible = true; + lblSelectionCount.Visible = true; + + // Disable the Cancel button + btnCancelDownload.Enabled = false; + gbxProgress.Visible = false; + + // Reset progress bar + prgMain.Value = 0; + gbxProgress.Text = "Ready"; + } + + #endregion + + #region UI Events + + private void btnUpdate_Click ( object sender, EventArgs e ) + { + if ( dgvServices.Rows.Count == 0 ) + { + MessageBox.Show ( "Please add a WaterOneFlow web service to the list", Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk ); + return; + } + + if ( bgwMain.IsBusy ) + { + MessageBox.Show ( "The background worker is currently busy. Please try again in a few moments.", Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk ); + return; + } + + // Build a list of services that the user marked for download + var checkedServices = new List (); + + foreach ( DataGridViewRow serviceRow in dgvServices.Rows ) + { + var selected = (bool)serviceRow.Cells["Selected"].Value; + + if ( selected ) + { + var serviceUrl = serviceRow.Cells["Service URL"].Value.ToString (); + checkedServices.Add ( serviceUrl ); + } + } + + //Check that at least one service row was selected + if ( checkedServices.Count == 0 ) + { + MessageBox.Show ( "Please select the services for which you want to retrieve metadata", Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk ); + return; + } + + // Build parameters to pass to the background worker + var parameters = new object[2]; + parameters[0] = BackgroundWorkerTasks.FetchMetadata; + parameters[1] = checkedServices; + + SetupFormForWork (); + + // Start the asynchronous operation + bgwMain.RunWorkerAsync ( parameters ); + } + + private void chkAll_CheckedChanged ( object sender, EventArgs e ) + { + foreach ( DataGridViewRow serviceRow in dgvServices.Rows ) + { + serviceRow.Cells["Selected"].Value = chkAll.Checked; + } + } + + private void dgvServices_CurrentCellDirtyStateChanged ( object sender, EventArgs e ) + { + if ( dgvServices.IsCurrentCellDirty ) + { + dgvServices.CommitEdit ( DataGridViewDataErrorContexts.Commit ); + } + } + + private void dgvServices_CellValueChanged ( object sender, DataGridViewCellEventArgs e ) + { + updateSelection (); + } + + private void btnCancelDownload_Click ( object sender, EventArgs e ) + { + CancelWorker (); + } + + private void mnuAddServices_Click ( object sender, EventArgs e ) + { + AddServices (); + } + + private void mnuRemoveSelectedServices_Click ( object sender, EventArgs e ) + { + RemoveSelectedServicesPrep (); + } + + private void mnuRefreshServiceList_Click ( object sender, EventArgs e ) + { + Cursor = Cursors.WaitCursor; + RefreshServiceList (); + Cursor = Cursors.Default; + } + + #endregion + + #region Background Worker + + private void CancelWorker () + { + // Cancel the asynchronous operation + bgwMain.CancelAsync (); + + // Disable the Cancel button + btnCancelDownload.Enabled = false; + + gbxProgress.Text = "Cancelling..."; + } + + private void bgwMain_DoWork ( object sender, DoWorkEventArgs e ) + { + var parameters = e.Argument as object[]; + var task = (BackgroundWorkerTasks)parameters[0]; + if ( task == BackgroundWorkerTasks.FetchMetadata ) + { + var serviceUrls = parameters[1] as List; + e.Result = FetchMetadata ( serviceUrls, e ); + } + else if ( task == BackgroundWorkerTasks.RemoveServices ) + { + var serviceUrls = parameters[1] as List; + e.Result = RemoveSelectedServices ( serviceUrls, e ); + } + else + { + e.Result = "Unknown task provided to background worker"; + } + } + + private void bgwMain_ProgressChanged ( object sender, ProgressChangedEventArgs e ) + { + prgMain.Value = e.ProgressPercentage; + gbxProgress.Text = e.UserState.ToString (); + } + + private void bgwMain_RunWorkerCompleted ( object sender, RunWorkerCompletedEventArgs e ) + { + Cursor = Cursors.Default; + + // Report the result + if ( e.Error != null ) + { + MessageBox.Show ( e.Error.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + else if ( e.Cancelled ) + { + if ( Visible && _formIsClosing == false ) + { + MessageBox.Show ( "Operation cancelled", Text, MessageBoxButtons.OK, MessageBoxIcon.Information ); + } + } + else + { + MessageBox.Show ( e.Result.ToString (), Text, MessageBoxButtons.OK, MessageBoxIcon.Information ); + } + + // Enable controls that were disabled until the asynchronous operation was finished + RestoreFormFromWork (); + + SelectNewServices (); + + ActiveControl = btnUpdate; + + if ( _formIsClosing ) + { + _formIsClosing = false; + Hide (); + } + + } + + #endregion + + #endregion + + #region Public Members + + /// + /// Populates checked list box with web service URLs from the local cache. + /// + public void RefreshServiceList () + { + try + { + var cacheManager = DatabaseOperations.GetCacheManager(); + var serviceList = cacheManager.GetAllServices (); + + // Put the data in a DataTable so that column sorting works + var dataTable = new DataTable (); + + //First create the columns of the DataTable + var col = new DataColumn ( "Selected", typeof ( bool ) ); + dataTable.Columns.Add ( col ); + + col = new DataColumn ( "Title", typeof ( string ) ) {ReadOnly = true}; + dataTable.Columns.Add ( col ); + + col = new DataColumn ( "Harvested", typeof ( string ) ) {ReadOnly = true}; + dataTable.Columns.Add ( col ); + + col = new DataColumn ( "Service URL", typeof ( string ) ) {ReadOnly = true}; + dataTable.Columns.Add ( col ); + + //Then add all the rows + foreach ( var serviceInfo in serviceList ) + { + dataTable.Rows.Add ( new object[]{false, serviceInfo.ServiceTitle, + serviceInfo.HarveDateTime, serviceInfo.EndpointURL} ); + } + + //Set the DataGrid to use the DataTable just created + dgvServices.DataSource = dataTable; + updateSelection (); + } + catch ( Exception ex ) + { + MessageBox.Show ( ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + + chkAll.Checked = false; + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/MainForm.resx b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/MainForm.resx new file mode 100644 index 00000000..aae2668f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Forms/MainForm.resx @@ -0,0 +1,516 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 169, 17 + + + 265, 17 + + + 182 + + + + + AAABAAYAMDAAAAEACAAADwAAZgAAACAgAAABAAgAAAkAAGYPAAAQEAAAAQAIAIAFAABmGAAAMDAAAAEA + IAAAJgAA5h0AACAgAAABACAAABEAAOZDAAAQEAAAAQAgAIAEAADmVAAAKAAAADAAAABgAAAAAQAIAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A++vlAP/18QD76uIAxoJfAMaFYwDKiGYAxohpAM+Q + cADKkHIA0pp9ANSeggDaposA3KqQAOCulADbrZUA57qjAOzBqwDmvagA6cSxAOvItgDv0MAA/9/PAP/j + 1QD13tIA/+vhAP3v6AD/8+0Aw31YAMuObADHjGsAz5d4ANeihgDVpIoA4bKZAOW2nQDetJ4A4biiAPDH + sQDyzbgA9tG9APnWwwD928gA7My7AP7dywD52ccA/9/NAPLUxAD428sA/+LSAPndzgDz2MkA+t/QAPrh + 0wDz284A/+faAPji1gD/6t4A+eXaAPvo3gD/7+YA/O3lAJhIFQDNlXQA/9/LAP3fzQD/5tYA//LqAJtM + GQCfUh8AxYpkANCdeQDlw6wA/+LOAP/u4gD/9e4AmFAdAJdUIACZVSIAolomAKdfLACwazYAs3JAAMaK + XADIj2QAypNsANSlgQDRpYQA1qqJANuxkQD/6toA/O3iAJlZJQCYWygAqmYxAKBiLwDChlQAyY5cAL6H + XADOmWwA0J1yANOjfADXqYQA2a6LAN63lwD/4ckA/+bSAP/t3gD/8eYAmV4rAKBmNACjajkAxopVAMyU + ZADDl3AAxpp0AMqfeQDivZwA5MGjAOjIqwDpy7AA7M6zAP/hxwD+48oA89rDAP/lzgDz3MgA/unWAPfk + 0wD77N4AlF8rAJZhLQCYYzAAmWUxAJdlMgCZZTMAmmc1AKNwPADFh0sArnlHAMqPVADMlFsAsoJTAM+Z + ZQDClWoA1KN0ANepfADbr4QA3bOJAN+3jgDiu5QA5sKdAOjGpADszKsA+dm4APvcvQD/4cQA7tK3APzf + wgDx1rsA/+PHAPjdwgD84ccA/+XLAO/XwAD64soA+OPOAPXgzAD65tIA/+3bAPnn1gD66toA//XrAJln + MwCaaTYA0JlgANKeaADVo2wAu49hANincgDbq3YAyJxtANyuewDOpXoA5sCWAPHOpwD00qwA68qmAPfX + tAD01bIA79CuAPTXuAD/48UA9dq9APzhxQD848cA+eDGAPbfxwD75c4A3rF9AOC0gADhtoUA47mIAOW8 + jQDowJAA6sSWAOvGnADtyZ4A78yiAP/jwwD948UA/+nOAP/lwwD/58cAyaVwANCteQD/5cEAw55mANi4 + hQD/58EA/+jDAODAhQDtzJUA5ciTAOjMnQD95LcA/+e+AM+ucADStHkA9NmlAPnfrgD/6b0A5MiKAO7U + mQD/6bsA2L19AP/ruQD/67sA/+3DAPvmrwD/67cA/+6/AOfSjwD/7bYA9OKgAP/ywgD56aYA/++yAP/y + ugD/8q4A+vCmAP/1qgD/9rcA//qwAP///wAAAAAAAAAAAAAAAAAAAACDg4OEiK9wcHBwr6+viISDg4MA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg4ODg4NzuFp3mr67u7u6z87MlJJycY+Dg4ODhAAAAAAAAAAA + AAAAAAAAAAAAg2CDQFooLRgYGBjHx9Ocwr67u7rQzs6XzMvJtbFxj3BghwAAAAAAAAAAAAAAAF5gBQ0S + KS0Yxy0tx8fHx5+cwr67u7rQzpfMy8rItbW0tLGNU4iHAAAAAAAAAAAARVMLDxESKJ8YGBgYGBgYx8ef + nMK+u7u8z86XzMqUt7W0srGxkI1TiAAAAAAAAABeUyAMDyQSKC0YGBgYGBgYGMfTn8LCvru8mc+XzJaU + yLeSsmSQco6Oj4gAAAAAAIdvByAMEBESoC0YgoKCgoKAgBjHfZ/CvnqamXeYl5WWlLeSkrJkco5UjYqH + AAAAAIdvByAMEBEUMBmCgj4+goKCgoAYx33CKZ6ampmYdpeWlJRmkmVkVnJUVIqHAAAAAIdvByBXJREU + MBg+Pj4+Pj4+PoIYqDd9KZ56mkl3dpeVlZRnkpJkVnJUVIqHAAAAAIdvHiAiJREsNxg+Pj4+Pj4+bYKC + GKh9fSmeepp3mHaXlWhnZmZlQFZHVIqHAAAAAIdvHnUiJUksNzscHBwcHBwcAxxtPoIYqDd9KXqaSSZ2 + WmhZZmZlQFYeR4qHAAAAAIdvHnUiJUmgGT4DHD47N6BJaVi4dHSRkZF0dWaUlZWXl1poWVcLQEAeR4qH + AAAAAIdvHgsQERSgFCZYY4yMjIyMjI+PY2Njj4yMinBwcG9vUo9UZGZmC0AeHoqHAAAAAIdvCgwNC7OM + b4+zuHYoKp/Hx9PTnMK+u7vQzpfLyLSOj1JfUGBTcVYKHoqHAAAAAIdvCgVfboxAESoYGBgYx8fH05+c + wr67u7rPzpfMy8rJyLW0jo9fRVCPHoqHAAAAAIdvX0WMDBESKCrHx8fHx8fHx9OfwsK7u7zQz86Xy8rI + t7W0srKxjVJFX4qIAAAAAIhOUB4MDyQSKJ8YGBgYGBgYGMefn8K+u7u8z86XzJaUt7W0srGQco6LUIOI + AAAAAIhuHSALDSQSKJ8YGBgYGBiAgMfHn8LCvpq8mc+Xl5aUyLeSkmSQco6Oi4iIAAAAAIdvByALECQS + oC07goKCgoKCghjHfZ/CvnqamXeYl5WVlLeSkmRkco5UVIqHAAAAAIdvByAMEBEUoBmCPj4+PoKCgoAY + x33CKZ56mpmYdpeVlJRmkmVkVnJUVIqHAAAAAIdvByBXEBEUMBg+Pj4+Pj4+PoIYGDd9fZ56mkl3dpeV + lZRnZpJkVnJHVIqHAAAAAIdvByBXJREsNxg+Pj4+bW1tbT6CGBg3fX2eeppJmHaXlWhnZmZlQFZHVIqH + AAAAAIdvHnUiJUksNzscHAMDAxwcHIIYqH19KZ6eenqaSXcmWmhZV2YLQFYeR4qHAAAAAIdvHnUiJUkw + GDs7N0lYdLOzY4+MjIyMjIyMjIyMj2NWkmdZWVcLIAoeR4qHAAAAAIdvHnUQESRoc4yMjIyPkViXdpiY + mJeXlpS3kmRUj1JvYGBfU1RWZSAKHoqHAAAAAIdvCgsejG9Sj7gUny0YGBjHx9OfnL67u7rQz86XzMrI + tJCPUlBQUotWCoqHAAAAAIdvBV9QjCARKC0Yx8ctLS3Hx5+cwr67u7rPzpfMy8rItbW0tLGLUkVQYYqH + AAAAAIhuRVIgDyQRFCrHGBgYGBjHx9OfnMK+u7zQz86XzMrIt7W0srGxkHFfRYiIAAAAAIhOUyALDSQR + KCoYGBgYGBgYGMfTn8K+vru8z86XzJaUt7WSsmSQco6OUoOIAAAAAIdvBwoLDSQSKJ8YgoKCgoKAgBjH + fcIpvnqamXd2l5aUlLeSkmSQco5UjYqHAAAAAIdvBwoLECQSoC2CgoKCgoKCgoDHx5/CKZ6amXeYl5WV + lJRmkmVkVnJUVIqHAAAAAIdvByAMEBEUoBmCPj4+Pj4+goIYqH19KZ56mpl3dpeVlZRmZmVkVnJUVIqH + AAAAAIdvByAMEBEUMBg+Pj4+Pj4+PoKCGDd9fSmempp3mHZalWhnZgtlVlZHVIqHAAAAAIdvByBXJREU + MBg+HBwcHBwcHBxtgoIYN319nnpJd3aXWmhZZmZlQFZHR4qHAAAAAIdvByAiJUksNzscAxwcPhh9encm + aWhoaGhol3Z3d5h2l1pZV2YLQFYeR4qHAAAAAIdvHnUiJUmgoKAmdbNjjIpwioqMjI+PjIyKioqKjI+P + Y2SSkmYLIEAeR4qHAAAAAIdvHnUQEFdjioyMs1h2SXopn5/T0+/v7+Pj4r660ODls4+MioxUckAKHoqH + AAAAAIdvHiBjcI9zJiotGBgYGMfHx9PT09PT4+Pu7u7u7vb2/fT14NqPr1NhHoqHAAAAAISMs3Czd8cY + GMctLS0tLS3Hx9PT09PT4+Pj7u7u7u709PT0/f3889pgUoqIAAAAAIivjEkYGC0tLS0tLS0tLS3Hx9PT + 09PT4+Pj7u7u7u709PT9/f38/v7zioOIAAAAAISvKBgtLS0tLS0tLS0tLS3Hx9PT09PT4+Pj7u7u7u70 + 9PT9/f39/Pz+9YqDAAAAAIOMGC0tLS0tLS0tLS0tLS3Hx9PT09PT4+Pj7u7u7u709PT9/f39/Pz8/o+D + AAAAAACHaBgYLS0tLS0tLS0tLS3Hx9PT09PT4+Pj7u7u7u709PT9/f39/Pz+7IcAAAAAAAAAhHQpGBgt + LS0tLS0tLS3Hx9PT09PT4+Pj7u7u7u709PT9/f39/vXahAAAAAAAAAAAAIODc0ktGBgYxy0tLS0tx9PT + 09PT0+Pj7u7u7u7u9P39/f3z2oqDAAAAAAAAAAAAAAAAg4ODg1oUKS0YGBgYx8fU1NTv7+/v9vb29vb0 + 9brbg4OHgwAAAAAAAAAAAAAAAAAAAAAAAIODg4ODuFlol3Z3mZmZmc/glpblkoODg4iDAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg4ODg4SEh4eHh4SEg4ODgwAAAAAAAAAAAAAAAAAAAAD//gAAf/8AAP/A + AAAD/wAA/gAAAAB/AAD4AAAAAB8AAPAAAAAADwAA4AAAAAAHAADAAAAAAAMAAMAAAAAAAwAAwAAAAAAD + AADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAA + AAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAAD + AADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAA + AAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAAD + AADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADgAAAAAAcAAPAAAAAADwAA+AAAAAAfAAD+AAAAAH8AAP/g + AAAH/wAA//8AAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAIAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A++vlAP/18QD76uIAxoJfAMaFYwDKiGYAxohpAM+Q + cADKkHIA0pp9ANSeggDaposA3KqQAOCulADbrZUA57qjAOzBqwDmvagA6cSxAOvItgDv0MAA/9/PAP/j + 1QD13tIA/+vhAP3v6AD/8+0Aw31YAMuObADHjGsAz5d4ANeihgDVpIoA4bKZAOW2nQDetJ4A4biiAPDH + sQDyzbgA9tG9APnWwwD928gA7My7AP7dywD52ccA/9/NAPLUxAD428sA/+LSAPndzgDz2MkA+t/QAPrh + 0wDz284A/+faAPji1gD/6t4A+eXaAPvo3gD/7+YA/O3lAJhIFQDNlXQA/9/LAP3fzQD/5tYA//LqAJtM + GQCfUh8AxYpkANCdeQDlw6wA/+LOAP/u4gD/9e4AmFAdAJdUIACZVSIAolomAKdfLACwazYAs3JAAMaK + XADIj2QAypNsANSlgQDRpYQA1qqJANuxkQD/6toA/O3iAJlZJQCYWygAqmYxAKBiLwDChlQAyY5cAL6H + XADOmWwA0J1yANOjfADXqYQA2a6LAN63lwD/4ckA/+bSAP/t3gD/8eYAmV4rAKBmNACjajkAxopVAMyU + ZADDl3AAxpp0AMqfeQDivZwA5MGjAOjIqwDpy7AA7M6zAP/hxwD+48oA89rDAP/lzgDz3MgA/unWAPfk + 0wD77N4AlF8rAJZhLQCYYzAAmWUxAJdlMgCZZTMAmmc1AKNwPADFh0sArnlHAMqPVADMlFsAsoJTAM+Z + ZQDClWoA1KN0ANepfADbr4QA3bOJAN+3jgDiu5QA5sKdAOjGpADszKsA+dm4APvcvQD/4cQA7tK3APzf + wgDx1rsA/+PHAPjdwgD84ccA/+XLAO/XwAD64soA+OPOAPXgzAD65tIA/+3bAPnn1gD66toA//XrAJln + MwCaaTYA0JlgANKeaADVo2wAu49hANincgDbq3YAyJxtANyuewDOpXoA5sCWAPHOpwD00qwA68qmAPfX + tAD01bIA79CuAPTXuAD/48UA9dq9APzhxQD848cA+eDGAPbfxwD75c4A3rF9AOC0gADhtoUA47mIAOW8 + jQDowJAA6sSWAOvGnADtyZ4A78yiAP/jwwD948UA/+nOAP/lwwD/58cAyaVwANCteQD/5cEAw55mANi4 + hQD/58EA/+jDAODAhQDtzJUA5ciTAOjMnQD95LcA/+e+AM+ucADStHkA9NmlAPnfrgD/6b0A5MiKAO7U + mQD/6bsA2L19AP/ruQD/67sA/+3DAPvmrwD/67cA/+6/AOfSjwD/7bYA9OKgAP/ywgD56aYA/++yAP/y + ugD/8q4A+vCmAP/1qgD/9rcA//qwAP///wAAAAAAAAAAAACvr4qMj4+Pj4yMjK+IAAAAAAAAAAAAAAAA + AAAAYK+vrxIpn8fT05u9u9DNyrWvr6+viAAAAAAAAAAAbq9XEi07GBgYx8fCvru70M7My8m3tbFxr68A + AAAAAG4FDREULRgYGBgYx9PCvru8z5fMlLeSsZCOi68AAAAAUyAhJBQtgoKCgoKAx58pvpqZmJeVlGax + kHJijIgAAGBTICIRLBk+Pj4+PoIYqH0perx3l5WUZmZkcnKMiAAAYFMgEBEsGBwcHBwcHD6Cx30pehJ2 + WmhnZmVWB4yIAABgUwsQSTQ+Az47faB4JnZaWVlZWlpaWmhXdVZWjIgAAGBTDCURJVh1kZGRddfX12RV + YmGLjFOMi2JWZUCMiAAAYIwKHYxUWRQqLRgYx9OcvbvRzszJtZCLU19SVIyIAACIYGAFDyctGBgYGMfH + n767u9DOzMrIt7WyjlNfb4gAAIRgByEkEjAYGBgYgBjHwr67vM+XzJS3krGQjnFviAAAYFMgISQUN4KC + goKCgMefKb6amZiXlZRmsWRyYoyIAABgUyAiERQZPj4+Pj6CGKh9KXq8d5eVlGZmZHJyjIgAAGBTICIR + LIEcAwMDAxw+gsd9KaASd3ZaZ2ZlVgeMiAAAYFMLEEk0OzuleGlZWHV0kZGRkVZlZmdnZwtAVoyIAABg + UwwQDJGzkXRmWXZ2dpfMlJOxcmGMU1OMVFZAjIgAAGBTHVIdCxItGBgYGMfTm7u70c7Ny8m1jotSX1OM + iAAAiG5SICQSKhgYGBjHx5/Cu7vQzszKyLeSsrFxX26IAACEbwkhJBIwGDs7O4AYx8Ipu7zPl8yUt5Kx + kHJicIgAAGBTCiEkFDeCPj6CgoLHfSm+mpmYl5WUZrFkcmKMiAAAYFMgIREUGT4+Pj4+PoLHfSl6End2 + WmhmZmRyB4yIAABgUyAiESw7AwMDAxw+gqh9KaB6End2WmdmZVYHjIgAAGBTIBBJLKV5JVh1kZGRkbOz + s7Ozs7ZlZmYLQFaMiAAAhFMLDJGzkXVZdhK+KcKcnJu95+rg29ezj4tUVoyIAACIjI+zWinHGBgYGMfH + 09PT7+7u7vn5+f313rNTjIgAAGCKdhgYGC0tLS0tx9PT09Pj7u7u9PT09P3+/t6vhAAAhJE+LS0tLS0t + LS3H09PT0+Pu7u709PT0/Pz8/tqIAAAAr3o7GC0tLS0tLcfT09PT4+7u7vT09PT8/v7qigAAAAAAr696 + LRgYGBjHx9PT09Pj7u7u7vn5+fzqr68AAAAAAAAAAK+vr68SKZ/Hx9TU1O/v7uLn6q+vr4gAAAAAAAAA + AAAAAAAAAK+vr6+vr6+vr6+vr6+vAAAAAAAAAAAA/4AD//gAAB/gAAAHwAAAA8AAAAGAAAABgAAAAYAA + AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA + AAGAAAABgAAAAYAAAAGAAAABgAAAAcAAAAPgAAAH+AAAH/+AAf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAKAAAABAAAAAgAAAAAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A++vlAP/1 + 8QD76uIAxoJfAMaFYwDKiGYAxohpAM+QcADKkHIA0pp9ANSeggDaposA3KqQAOCulADbrZUA57qjAOzB + qwDmvagA6cSxAOvItgDv0MAA/9/PAP/j1QD13tIA/+vhAP3v6AD/8+0Aw31YAMuObADHjGsAz5d4ANei + hgDVpIoA4bKZAOW2nQDetJ4A4biiAPDHsQDyzbgA9tG9APnWwwD928gA7My7AP7dywD52ccA/9/NAPLU + xAD428sA/+LSAPndzgDz2MkA+t/QAPrh0wDz284A/+faAPji1gD/6t4A+eXaAPvo3gD/7+YA/O3lAJhI + FQDNlXQA/9/LAP3fzQD/5tYA//LqAJtMGQCfUh8AxYpkANCdeQDlw6wA/+LOAP/u4gD/9e4AmFAdAJdU + IACZVSIAolomAKdfLACwazYAs3JAAMaKXADIj2QAypNsANSlgQDRpYQA1qqJANuxkQD/6toA/O3iAJlZ + JQCYWygAqmYxAKBiLwDChlQAyY5cAL6HXADOmWwA0J1yANOjfADXqYQA2a6LAN63lwD/4ckA/+bSAP/t + 3gD/8eYAmV4rAKBmNACjajkAxopVAMyUZADDl3AAxpp0AMqfeQDivZwA5MGjAOjIqwDpy7AA7M6zAP/h + xwD+48oA89rDAP/lzgDz3MgA/unWAPfk0wD77N4AlF8rAJZhLQCYYzAAmWUxAJdlMgCZZTMAmmc1AKNw + PADFh0sArnlHAMqPVADMlFsAsoJTAM+ZZQDClWoA1KN0ANepfADbr4QA3bOJAN+3jgDiu5QA5sKdAOjG + pADszKsA+dm4APvcvQD/4cQA7tK3APzfwgDx1rsA/+PHAPjdwgD84ccA/+XLAO/XwAD64soA+OPOAPXg + zAD65tIA/+3bAPnn1gD66toA//XrAJlnMwCaaTYA0JlgANKeaADVo2wAu49hANincgDbq3YAyJxtANyu + ewDOpXoA5sCWAPHOpwD00qwA68qmAPfXtAD01bIA79CuAPTXuAD/48UA9dq9APzhxQD848cA+eDGAPbf + xwD75c4A3rF9AOC0gADhtoUA47mIAOW8jQDowJAA6sSWAOvGnADtyZ4A78yiAP/jwwD948UA/+nOAP/l + wwD/58cAyaVwANCteQD/5cEAw55mANi4hQD/58EA/+jDAODAhQDtzJUA5ciTAOjMnQD95LcA/+e+AM+u + cADStHkA9NmlAPnfrgD/6b0A5MiKAO7UmQD/6bsA2L19AP/ruQD/67sA/+3DAPvmrwD/67cA/+6/AOfS + jwD/7bYA9OKgAP/ywgD56aYA/++yAP/yugD/8q4A+vCmAP/1qgD/9rcA//qwAP///wAAAACzs7Ozs7Oz + s7OzAAAAAHCzKD4+HIDj587JsrNwAHBjJDBtbQOqp76YlWaxYXBwYyYZG6yoLEkmdlpZC2GKcB1AWFoN + t7SwjYuLj2EdiohTCyg+qm2AnLvfyrJxUohwHQ8wHBwDbdTCd5VmsWFwcGMmNzulLHZaWWdXV2ZjinCP + H1daI5iXyrWQYVOPjHCIU1cqHD5t0726zsu1jlKIcB0QMAMDA22ovndaZmRhinBjJSyleUl2WlhnuEBA + Y4pwj1glmZq+vr3n5urb2oxwilkYGBgYx9Pv7u75+f3ljACzsy0YGIDU7+/2+f2zswAAAACzs7Ozs7Oz + s7OzAAAA4AcAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACAAQAA4AcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJlm + MwKYZDEYlWEtL5RgK0uTXyp2k14pnpRfK72WYy/Lmmc0051rOdugbTzfoW4946FuPeShbjzkoGw6459r + ON+daDXbmmUy0pdhLsuVXyy9lF8snpVgLXaVYi9Ll2QxL5hmMxiZZzQCAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhm + MxKWYS1Qk14pgZVgK8adaznxrn9T/rqOZv/DmHP/zaSB/9q0kv/lwqP/7c2u//LRsf/z0rD/8tGt//HN + qP/vyqP/7Mac/+jClv/juoz/3bGB/9Smdf/KmGX/v4pW/7d/S/+weUX/p3A7/ptjL/KWXyzGlWIvgZdk + MlGYZjMSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACXZDA+lVwooppfK+WtdEf/yZd0/92zlv/zz7n//+DO///k0///5dT//+bT///n0f//5s7//+XL///i + xf/93r7/+tq3//jWsv/206z/88+m//HMov/uyZ3/7MaX/+vDk//pwZD/572K/+S5g//htH3/3Kx0/9Gd + Zf/EjFT/uIBI/6drNv+aYi7mlmMwoZdlMj8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAmGUyKZZYJbqiXi7/v4Jb/9umiP/uwKn/+dG+//7dy///49L//+HP///gzv//4M7//+HM///i + y///4sr//+PJ//3gxf/73b//+Nq4//bWs//0063/8c+o/+/Mo//syJ3/6sSX/+jAkv/lvY3/47mI/+C1 + gv/esX3/3K14/9urdf/aqXL/2KVs/9OcY//IjlT/tXhB/6BmMf+XYzC5mGYzKQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACYYi9EmlEe9LdwR//Xm33/4q6U/+i3n//swav/8824//rZyP//4tL//+LS///i + 0v//4tL//+PR///j0P//5M///+XO//3iyf/738P/+Nu9//bYuP/01LL/8dGs/+/Np//syqH/6sWb/+jB + l//lvpH/47mL/+C1hv/esoH/2657/9mpd//XpXL/1KFs/9KeaP/Rm2T/0Jhg/8qOVf+ydj7/mmUx9Jhl + M0MAAAAAAAAAAAAAAAAAAAAAAAAAAJhmMziYVyTcu3JK/9SXef/Yn4P/3quQ/+W2nv/sw63/88+7//rb + y///5Nb//+TW///l1///5df//+bV///m1P//5tP//+fS//3kzf/74cf/+N3B//bavP/01rb/8dKx/+/P + q//sy6b/6seg/+jDm//lv5X/47uQ/+C3iv/esoT/269//9mqev/XpnX/1KJw/9Kea//PmmX/zZVg/8uS + Xf/MkFn/uX5G/5lmM92XZTJeAAAAAAAAAAAAAAAAAAAAAJZkMIGiYjH/yoZk/9CSc//WnoL/3auS/+S3 + oP/rw6//8s+9//nczf//5tn//+fa///o2///6Nv//+jZ///o2P//6df//+rX//3n0v/75Mz/+ODG//bc + wf/02Lv/8dS1/+/QsP/szKr/6sik/+jFn//lwZr/47yU/+C4jv/etIj/27CD/9mrfv/Xp3n/1KJz/9Kf + b//Pmmn/zZVk/8qSYP/IjVv/yIxX/6RwOv6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMIGiYzL/yYZl/9CU + df/WoIT/3a2U/+S5ov/rxrH/8tLB//nf0f//6d3//+re///q3///6t///+rd///q3f//69z//+zb//3p + 1v/75tD/+OHK//bexP/02r//8da5/+/StP/szq7/6sqo/+jGo//lwp3/472Y/+C4kv/etYz/27CH/9ms + gv/Xp3z/1KN3/9Kfcv/Pm2z/zZZn/8qSYv/Ijl3/x4xZ/6VwPP6XZDGQAAAAAAAAAAAAAAAAAAAAAJZk + MICiYzL/yYdm/9CVd//Woob/3a+X/+S7pf/rx7T/8tTE//nh1P//6+H//+zi///s4v//7OL//+3h///t + 4f//7uD//+/g//3r2//76NX/+OPP//bfyf/028P/8de9/+/TuP/sz7L/6sus/+jGp//lw6H/476b/+C6 + lf/etZD/27GL/9mshf/XqID/1KR6/9Kgdf/Pm2//zZdq/8qSZv/IjmD/x4tc/6VwPP6XZDGQAAAAAAAA + AAAAAAAAAAAAAJZkMICiYjL/yYho/9CWef/Wo4j/3bCZ/+S9qP/rybj/8tbH//nk2P//7uX//+/m///v + 5v//7+b///Dl///w5f//8OT///Hk//3t3//76dn/+OXT//bhzv/03cf/8dnC/+/VvP/s0Lb/6syw/+jI + qv/lxKX/47+f/+C6mf/etpT/27KO/9mtif/XqYP/1KR+/9Kgef/PnHP/zZdu/8qTaf/IjmP/x4xf/6Vw + PP6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMICiYzL/yYlq/9CYfP/WpIv/3bGc/+S+q//ry7v/8tjL//nm + 3P//8en///Lr///z7P//9O7///bu///37///+fH///vy///37v//8+f//+/g//zr2//65tT/9+LO//Te + yf/x2cL/7tS8/+vOtf/oyK//5MOn/+G9of/euJr/27OT/9mujf/Xqoj/1KWB/9KhfP/PnHb/zZhx/8qT + bP/Ijmb/x41h/6VxPf6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMICiYzL/yYpr/9CZfv/Wpo3/3bOe/+TB + rv/rzsD/9N7T//3t5v//+fT///fx///v5v/75tn/9d3M/+vSvf/ixKr/17ia/86rif/Ion3/xZx1/8KY + cP/BlW3/wZRr/8OWbP/FmG//y592/9Gmfv/Xrob/3LOL/921j//etpP/37eV/920lP/Zro//1aiI/9Ki + gf/PnXr/zZh0/8qUb//Ij2n/x41k/6VxPf6XZDCQAAAAAAAAAAAAAAAAAAAAAJZkMICiYzP/yYtt/9Cb + gP/WqJH/4Lil/+nGtf/uzbz/6MWw/+C7of/Op4f/tIde/6p6Tf+re03/q3tN/6t7TP+rekv/rX5P/7KC + U/+1hVb/uIhZ/7mIWf+4hlf/toJR/7J8Sv+tdkP/qW88/6drN/+najX/p2k0/6ZmMv+lZDD/q2w5/7p/ + Tf/GkF7/zZps/9Ojev/Ton3/zpt6/8qVdP/Ij2z/x41n/6VxPf6XZDCQAAAAAAAAAAAAAAAAAAAAAJZk + MICiYzP/yY1w/9Kfhf/aqI//0p1//8GIYv+rcEL/oWc2/7B8UP+7jWX/y6B9/+C6nv/xzbf/+NjB//zd + xf//4cj//+TK///kx///4cP//t68//vat//517H/9tOr//TQpf/wy57/7MWW/+i/j//juYf/3rF9/9em + cf/JlV//un9J/69vOf+nZC7/nlch/6ZgKv+2dT7/xIlW/82Xbf/KknH/x41r/6VwPf6XZDCQAAAAAAAA + AAAAAAAAAAAAAJZkL4CiZDT/zI9x/8KBXf+qZDb/n1oo/7F0Sf/Ml3T/5rmf//vYxP//5NT//+bW///k + 1P//4tD//+HN///iy///4sn//+LH//3fwv/73Lz/+Nm2//bVsf/00qv/8c6m/+/LoP/sx5v/6sOV/+jA + kP/mvYz/5LmH/+K2gv/htH//37F7/92tdf/Yp23/zJVc/7x+Rv+rZi//nVIc/6ZeJv+9fEj/ypBp/6Vx + QP6XZDCQAAAAAAAAAAAAAAAAAAAAAJdlMYCiYzP/rF8y/51SH/+4dk3/15+B/+i3nv/wxK3/9M24//nX + xP//4M///+HQ///h0P//4dD//+LO///izf//48z//+TM//3hx//73sH/+Nq7//bXtv/006//8dCq/+/M + pf/syZ//6sSZ/+jBlP/lvo//47mJ/+C1hP/esX7/2615/9mpdf/XpnD/1qNs/9Whaf/SnWT/yI1U/7Jv + N/+dThj/rGMv/6RwPf6YZjOQAAAAAAAAAAAAAAAAAAAAAJlnNICXViL/pFUl/8uJZ//aoIT/36qP/+S0 + m//rwKn/8sy3//nZxv//4tL//+PU///k1f//5NX//+TT///k0v//5dH//+bQ//3jy//74MX/+Ny///bZ + uv/01bT/8dKu/+/Pqf/syqP/6sad/+jCmP/lv5T/47qN/+C2iP/esoP/2659/9mqeP/XpnP/1KJu/9Ke + af/PmWT/zpZh/86VXv/Eh07/o1Yh/5ddKv6ZZzWQAAAAAAAAAAAAAAAAAAAAAJdlMoWdXCr/xX9b/9GS + c//VnH7/3KmO/+O1nP/qwav/8c26//jayf/+5Nb//+bY///m2P//5tj//+fX///n1v//6NX//+jU//3l + z//74sn/+N7D//bavf/017j/8dOy/+/Prf/szKf/6seh/+jDnP/lv5f/47uR/+C3i//es4b/26+A/9mr + fP/Xpnf/1KJx/9KebP/Pmmf/zZVi/8qRXf/Kj1v/w4RO/55mMv+XZTKSAAAAAAAAAAAAAAAAAAAAAJZk + MImiYzP/yYRj/8+Rcv/VnYH/3KqR/+O2n//qw67/8c+9//jczf/+5tr//+jc///p3P//6dz//+nb///p + 2v//6tn//+vY//3o0//7483/+ODH//bcwv/z2Lz/8dS2/+/Qsf/szKv/6sil/+fEoP/lwJv/47yV/+C3 + j//ds4n/26+E/9mrf//Wp3r/1KN1/9Geb//Pmmr/zJZl/8qRYP/IjFv/yItY/6VxPP+XZDGUAAAAAAAA + AAAAAAAAAAAAAJZkMICiYjL/yIVk/8+TdP/Vn4P/3KyU/+O4ov/qxbH/8dHA//je0P/+6d3//+vf///r + 4P//6+D//+zf///s3v//7N3//+3d//3q1//75dH/+OLL//bexv/z2sD/8dW7/+/Stf/szq//6smp/+fG + pP/lwZ//472Z/+C4k//dtI3/27CI/9msgv/Wp33/1KN4/9Gfc//Pmm3/zJZo/8qSY//IjV7/x4ta/6Vw + PP6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMICiYjL/yIZl/8+Udv/VoYX/3K6W/+O6pP/qx7T/8dPD//jg + 1P/+6+H//+3j///t4///7eP//+7j///u4v//7+L//+/h//3r2//76Nb/+OTQ//bfyv/z28T/8di//+/T + uf/sz7P/6sut/+fHqP/lw6P/476c/+C6lv/dtZH/27GL/9mthv/WqIH/1KR7/9Ggdv/Pm3D/zJdr/8qS + Zv/IjWH/x4tc/6VwPP6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMICiYjL/yIdm/8+WeP/Voof/3LCY/+O8 + p//qybf/8dbH//jj1//+7uX///Dn///w6P//8Oj///Hn///x5///8uf///Ln//3v4v/8693/+efX//fj + 0f/038v/8tvG/+/WwP/s0rn/6s2y/+fIrf/lxKf/47+g/+C6m//dtpX/27GP/9mtiv/WqYT/1KR//9Gg + ef/Pm3T/zJdu/8qSaf/IjmT/x4tf/6VwPP6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMICiYjL/yIhp/8+X + e//VpIr/3LGb/+O+qv/qy7v/8djL//jm3f//8+3///fx///59P//+/b///r0///48P//9uz///To///u + 3//759T/9+HM//Tcxf/x2L//8NW7/+/TuP/u0bX/7c+y/+vMsP/pyq3/58aq/+TBpf/gvJ7/3bWX/9qw + kf/Wqon/1KWD/9Ghff/PnHf/zJdy/8qTbP/Ijmf/x4xi/6VwPf6XZDGQAAAAAAAAAAAAAAAAAAAAAJZk + MICiYjL/yIlq/8+Yff/VpYz/3LOe/+TCsP/u0cP/9t/U//vn3P/75tr/8trJ/+HDrP/Oqov/wZl1/7uQ + aP+3i2H/tIdb/7GBU/+tfEz/q3dH/6p0Q/+pc0H/qXNB/6t0Qf+tdUP/r3dE/7B4R/+yekn/tn9P/76I + W//KmGv/06R5/9epgP/YrIf/16qI/9OkhP/Qnn3/zJh2/8qTb//Ij2r/x4xl/6VwPf6XZDCQAAAAAAAA + AAAAAAAAAAAAAJZkMICiYjL/yIps/8+agP/YqpP/4bej/+G2nv/Yqo3/xZVx/616Tf+qeEr/q3tN/6p5 + S/+yg1f/wpZu/9Cphf/ct5X/4r+d/+XBn//mwZ7/5sCb/+S+l//ivJL/4LeM/92zhv/ZrX7/1KV1/82c + a//Dj1z/t31J/6psOP+lZC//pWMt/6RgK/+mYi7/t3lE/8WLWP/Nl2v/0Jx2/8yWdv/Ij27/x4xn/6Vw + Pf6XZDCQAAAAAAAAAAAAAAAAAAAAAJZkMICiYjL/yY1w/9Kbf//Jjmz/tXVL/6FgLv+oazz/toFX/8+h + f//syLD/+tnF///fzf//49L//+bT///m0v//5s///+bM///jxv/+38D/+9u5//nYs//21K7/9NGo//LN + o//vyp3/7caY/+vEk//pwY//572J/+O3gv/er3n/2Kdw/86ZYf+8f0j/rWo0/6NdJv+eVR//r2oz/8CC + Tv/Kkmn/yI9t/6VwPf6XZDCQAAAAAAAAAAAAAAAAAAAAAJZkMICjZDX/w4Bd/6phM/+dVSL/tXVL/9CZ + d//rvKP/9s65//7ayP//4tD//+HQ///gz///387//+DM///gy///4cr//+PJ//3gxP/73L7/+Ni4//bV + sv/z0qz/8c+n/+/Lov/sx5z/6sOW/+fAkf/lvIz/47iG/+C0gf/esXz/3K14/9urdP/aqXH/16Vs/9Gc + Yv/BhEv/rmky/5xPGv+nXib/woRW/6ZzQf6XZDGQAAAAAAAAAAAAAAAAAAAAAJhnM4CdXCr/nUwa/69m + Ov/Rk3L/4auQ/+a1nP/rvqb/8cm0//jVwv/+4M///+LR///i0v//4tL//+PQ///jz///5M7//+XN//3i + yP/738L/+Nu8//bXt//z07H/8dCs/+/Mpv/syKD/6sSa/+fBlf/lvZD/47mL/+C1hf/dsYD/2616/9mp + dv/WpXH/1KFr/9KdZ//Sm2T/0Jlg/8aKUf+sYyz/nk4Z/55mM/6ZZzWQAAAAAAAAAAAAAAAAAAAAAJhn + NICXViL/tmpB/9GScv/WnH7/3KaL/+Oxmf/pvqf/8Mq2//fWxf/+4tL//+TX///l1v//5db//+bU///m + 0///5tL//+fR//3kzP/74cb/+N3A//bZuv/z1bX/8dKw/+/Oqv/syqT/6sae/+fDmf/lvpT/47qO/+C2 + if/dsoP/265+/9mqef/WpnT/1KFv/9Gdav/PmWX/zJVg/8uSXf/LkVr/tW84/5ddKv6YZjOQAAAAAAAA + AAAAAAAAAAAAAJdkMYqgYTD/yIJg/86PcP/Vm37/3KiN/+OznP/pwKr/8M25//fZyP/+5db//+fZ///n + 2v//59r//+jY///o2P//6Nf//+nW//3m0P/74sv/+N/F//bbv//z17n/8dO0/+/Prv/sy6n/6sei/+fE + nv/lwJj/47uS/+C3jP/ds4f/26+C/9mrff/Wpnj/1KJy/9Gebf/PmWj/zJVj/8qRXv/IjVn/yItW/6Rv + Of+XZDGVAAAAAAAAAAAAAAAAAAAAAJZkMIOiYjL/x4Nh/86Qcf/VnYD/3KqQ/+O1nv/pwq7/8M+9//fc + zP/+6Nr//+rd///q3v//6t7//+rd///q3P//69v//+za//3p1f/75M//+OHJ//bdw//z2b7/8dW4/+/R + s//sza3/6sim/+fFov/lwZz/472W/+C3kP/dtIv/27CG/9msgf/Wp3z/1KN2/9Gfcf/Pmmv/zJZn/8qR + Yv/IjVz/x4tZ/6VxPP+XZDGRAAAAAAAAAAAAAAAAAAAAAJZkMIChYjL/x4Ri/86Sc//VnoL/3KuS/+O3 + of/pxLH/8NHA//fe0P/+6t7//+zh///s4v//7OL//+3h///t4P//7eD//+7f//3r2f/75tP/+OLO//bf + yP/z2sL/8de9/+/Tt//szrH/6sqr/+fGpv/lwqD/476a/+C5lP/dtY//27CJ/9mshf/Wp3//1KN5/9Gf + dP/Pm2//zJZq/8qSZP/IjV//x4tb/6VwPP6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMIChYjL/x4Vk/86T + df/VoIX/3K2V/+O5pP/pxrT/8NPD//fg1P/+7OL//+7l///v5v//7+b//+/l///v5P//8OT///Dj//3s + 3v/76dj/+OXS//bgzP/z3Mb/8djB/+/Uu//s0LX/6suv/+fHqv/lw6T/47+e/+C6mP/dtZP/27GN/9mt + iP/WqIL/1KR9/9GfeP/Pm3L/zJdt/8qSZ//IjWL/x4te/6VwPP6XZDGQAAAAAAAAAAAAAAAAAAAAAJZk + MIChYjH/x4Zl/86UeP/VoYf/3K6Y/+O7p//pyLb/8NXG//fi1//+7ub///Hq///y6///8uv///Ts///1 + 7f//9+////jv///26///8eT//e3e//vo2P/45NL/9eDM//Pbxv/w1sD/7NC4/+nLsf/lxav/47+j/+C6 + nf/dtpf/27KR/9mujP/WqYb/1KWA/9Gge//Pm3X/zJdw/8qTa//IjmX/x4xh/6VwPP6XZDGQAAAAAAAA + AAAAAAAAAAAAAJZkMIChYjL/x4dn/86Vef/Vo4n/3LCa/+O9qv/py7v/8dnM//no3///9/L///r1///2 + 7///8un//uzg//ji0//u18P/5862/9/Cpv/bvJ7/17eX/9Wzkf/UsY3/1LKN/9Wyjv/Ws47/2riU/9++ + mv/lxaH/58ai/+bBnv/iu5n/37eX/9uxkv/Wqov/1KWF/9Ghfv/PnHj/zJdz/8qTbf/Hjmj/x4tj/6Vw + Pf6XZDGQAAAAAAAAAAAAAAAAAAAAAJZkMIChYjL/x4dp/86Xe//UpIz/3LKe/+bBsP/vz7//8dHA/+7P + u//cu6D/xZ15/7qNZf+zhVr/rXxP/6VzQ/+hbj3/onA+/6V1Q/+qekn/rX5O/6+AUP+vgVD/rX9O/6p8 + Sv+md0T/pHM//6JyPv+md0P/rX9L/7GDT/+yg0//uIpX/8qfbv/UqHn/1aV5/9Wkfv/RnXz/zZh4/8qT + cf/Hjmr/x4xl/6VwPf6XZDCQAAAAAAAAAAAAAAAAAAAAAJZkMIChYjL/x4hq/86Yff/aqZD/26yS/9Ok + hf+3h17/p3VG/6p5S/+qeUv/uIph/8+mhP/gup7/6MSq/+/Msv/11Ln/+tvA//3gw///5MX//+bH///o + xv//6cX//+nD///ov//95bv/+uK1//Xcrf/v1qT/6c+c/+DFkf/QsHv/upNd/6yBS/+qfUf/pHI8/699 + R//Cjlj/ypNj/82Vb//IkHD/x4xp/6VwPf6XZDCQAAAAAAAAAAAAAAAAAAAAAJZkMIChYDD/y4tu/8+Y + ef+6hl7/om8+/61/Uv/Cl3H/4byg//jXw///387//+XU///l1v//49P//+PQ///jzv//48z//+PJ///j + x///5MX//+TE///kwv//5cH//+fA///ov///6b7//+u+///svf//7r3///C8///yvf//9L3///W7///v + tP/456r/4sqO/8SiaP+vhU3/nmo1/61zO//ChVP/yo9p/6VxP/6XZDCQAAAAAAAAAAAAAAAAAAAAAJZi + LoCocUT/volj/6BvPf+7kGj/5cCm//7gz///5tb//+PT///gz///383//97M///ezP//3sz//9/L///f + yv//4Mj//+HH///ixv//48T//+TD///kwv//5cH//+a////nvv//573//+m8///puv//6rn//+u4///r + t///7LX//+20///vtP//8bT///a2///5t///9LD/5tGQ/72bYP+bZC7/snA8/6ZxPv6YZTKQAAAAAAAA + AAAAAAAAAAAAAJllMoCaaDb/p3lL/+fDqP//5tb//+TT///fzf//3sz//97M///ezP//3sz//97M///e + zP//3sz//9/L///fyv//4Mj//+HH///ixv//48T//+TD///kwv//5cH//+a////nvv//573//+m8///p + uv//6rn//+u4///rt///7LX//+20///us///77H///Cw///wr///8q7///my///8s//n1pH/pnM8/5de + K/6ZZjOQAAAAAAAAAAAAAAAAAAAAAJZiLoSebDr/8c+6///m1v//3sz//97M///ezP//3sz//97M///e + zP//3sz//97M///ezP//3sz//97L///fyv//4Mj//+HH///ixv//4sT//+PD///kwv//5cH//+a////n + vv//573//+i8///puv//6rn//+u4///rt///7LX//+20///us///77H///Cw///wr///8a7///Ks///z + q////bL/8OOb/59vOv+UXy6SAAAAAAAAAAAAAAAAAAAAAJNfKoWrfE///+XU///fzf//3sz//97M///e + zP//3sz//97M///ezP//3sz//97M///ezP//3sz//97L///fyv//4Mj//+HH///ixv//4sT//+PD///k + wv//5cH//+a////nvv//573//+i8///puv//6rn//+u4///rt///7LX//+20///us///77H///Cw///w + r///8a7///Ks///zq///9av///6x/6+FTf+TXSySAAAAAAAAAAAAAAAAAAAAAJhkMSuXZDDQ2LGS///n + 1///4tH//97M///ezP//3sz//97M///ezP//3sz//97M///ezP//3sz//97L///fyv//4Mj//+HH///i + xv//4sT//+PD///kwv//5cH//+a////nvv//573//+i8///puv//6rn//+u4///rt///7LX//+20///u + s///77H///Cw///wr///8a7///Ks///3r////rP/1717/5djMdGWYjBRAAAAAAAAAAAAAAAAAAAAAAAA + AACYZTIzlmIv5cWadv/1077//+bX///j0///387//97M///ezP//3sz//97M///ezP//3sz//97L///f + yv//4Mj//+HH///ixv//4sT//+PD///kwv//5cH//+a////nvv//573//+i8///puv//6rn//+u4///r + t///7LX//+20///us///77H///Cx///ysf//97P///y1//Xnof/Eo2b/lmIv5JhkMjAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAmGUyG5NeKpmgbj37wpdy/+fCqP/+3cv//+TT///l1f//4tL//+HQ///f + zf//3sz//97L///fyv//4Mn//+HH///ixv//48X//+PD///kwv//5cH//+bA///mvv//573//+i8///p + uv//6rn//+u4///rt///7rf///C3///zuP//97n///a3//7vrv/n0ZL/wp9l/6BwO/uTXSyZmGUyHAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXZDAjk14phJhkMdand0n6u45m/9u1 + l//sybH/9dO+//7ey///5NT//+bV///m0///59H//+fP///ozf//6Mv//+jJ///pyP//6sf//+vG///s + xP//7cT//+/D///wwv//8sH///PA///yvv/+7LX/9eGo/+zWnP/bv4b/u5Rd/6d6RfmYZDHWk10rg5dj + MSMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJll + MgKWYi4rlGArd5RgLKWZZjPLn2w79Kp6Tf+8kGj/y6F+/9Osiv/Zs5H/3bmX/+G/nP/lw6D/6Mej/+nJ + pP/pyqL/6Mmg/+XGm//iw5b/3b2P/9m5iP/TsoH/y6h1/7yVYf+qfUn/n2069JlmM8yUXy2mlF4sdpZi + LyyZZTICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYZTICmGQxHpViLkSTYCtdk18qcJNfKoWUYCuhlGAstpVh + LcmWYi7Sl2Mw2JdkMdyYZDHcl2Mw2ZZiL9KVYS7IlF8stpRfLKGTXiuFk14rcJNfLF2WYS9El2QxH5hl + MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4AAAB/8AAP8A + AAAA/wAA/AAAAAA/AADwAAAAAA8AAOAAAAAABwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAAD + AADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAA + AAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAAD + AADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAA + AAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAAD + AADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAOAAAAAABwAA8AAAAAAPAAD8AAAAAD8AAP8A + AAAA/wAA//AAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJZjLwSTXysnk18rUphk + MX2dazqfpXREu6t9Ts2wglTZs4RW4bSEVuSzglLksH9O4ax5R9modEHNom06u5xnNJ+YYzB9lmEvUpVi + MCeXZTIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJVhLDGZYS6RqHJE08KS + bPrYsZL/6cSr//PRuv/72sP//+HH///ixv/+37//+9q2//fUrf/zz6T/7cea/+i/j//htoP/2ap1/86c + Zv/Bi1X/s3tF+qNsN9SZZDGQlmMxMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhkMRebXCqvtXVL/teh + gf/uwar//dzK///o2P//5db//+TT///kz///5Mz//uPI//rdvv/317b/89Kt//DOpv/syJ3/6cOW/+a9 + jv/juIb/4LSA/96uef/aqHH/0p1k/8WMU/+vdD3+m2Uyr5hlMhYAAAAAAAAAAAAAAACXYzAynlwrwsaB + Xv/dpYr/5ref/+7Gsf/52cf//+TV///l1f//5dX//+XT///n0v/+5s7/+uDF//favP/z1bT/8M+s/+zK + o//oxJv/5b6T/+G4iv/dsYL/2qt7/9alc//Tn2z/0Ztm/86VXv/AhEz/nWk1wJdlMkoAAAAAAAAAAJdi + L3+sbED/0pN0/9iihv/jtZ7/7cez//jby///6Nv//+nc///p3P//6dr//+rZ//7p1f/648v/997D//PX + uv/w0rP/7Myp/+jGof/lwJn/4bmQ/92zif/arYD/1qZ5/9Kgcf/PmWn/y5Nh/8uQXf+tdkH4mmczjwAA + AAAAAAAAmGMvgaxuQf/Qk3X/2KSJ/+O4ov/tyrj/+N7Q///r4f//7OH//+zh///s4P//7t///uzb//rm + 0v/34Mr/89rB//DUuf/szq//6Min/+XCn//hu5b/3bSO/9qthv/Wp37/0qF1/8+abv/Lk2b/yo9h/612 + Q/maZzOQAAAAAAAAAACYYy+ArG5C/9CVeP/Yp43/47um/+3NvP/44tb///Dn///x6f//8uv///Tr///3 + 7f//9er//u/h//vp2f/348//9NzH/+/VvP/rzrP/58ap/+K+n//et5X/2q+M/9apg//Sonv/z5tz/8uU + a//KkGX/rXZE+JpnM5AAAAAAAAAAAJhjL4CsbkP/0Jd8/9ipkf/kv6z/8NXH//zs5P//9/H//u/m//fk + 2P/v2sn/6NC6/+LIr//cvqH/2biZ/9azkv/VsI7/1a+M/9avjP/Zso//27OR/921k//cs5L/2q6O/9Sm + hP/PnXr/y5Vv/8qQav+tdkb4mmczkAAAAAAAAAAAmGIvgKxvRP/RnIL/3K+Z/+C3of/YsJb/zaSE/8Sb + eP+/k23/v5Ns/8OYcP/Innf/y6F4/82hd//MoHP/ypxu/8eXZ//DkF7/volW/7mBTP+0ekX/s3dD/7R4 + Rv+7gE//xI1g/8yYcP/Omnf/y5Ny/6x2R/iaZzOQAAAAAAAAAACYYy+ArnJI/8qOb/+4eVD/s3VJ/7+I + YP/Xqov/7Miw//nXwv//38z//+TP///nz///58z//+LC//zduf/417D/9dKp//DMn//sxZb/576M/+G1 + gf/ZqXP/zpli/8GGTv+zcjr/rGcv/7JuOv/EiF3/rnlL+JpoNJAAAAAAAAAAAJllMoChXy//q2Az/8OD + Xv/hrZL/8sex//zayP//5dX//+PT///i0f//48///+TN//7jyv/63cH/99i4//PTr//wzqj/7Mie/+jD + lv/lvY//4beG/96yf//crXn/2alz/9Wja//Nll3/unlB/6pfKP+iZjT4mmc1kAAAAAAAAAAAl2Iug6Jf + Lv/Nimn/26OH/+Ozmv/sxK7/99fF///l1v//5tf//+bX///m1f//6NT//ubQ//rhx//3277/89W2//DQ + rf/syqX/6MSc/+W/lP/huIz/3bKE/9qsfP/WpXX/0p9t/8+aZv/OlmH/x4lT/6JmMfmYZDGRAAAAAAAA + AACYYy+GrW1B/9CRcv/XoYX/4rSd/+zGsv/32sr//+jc///p3f//6d3//+rb///r2v/+6tb/+uPN//be + xP/z17v/8NK0/+zMqv/oxqL/5MCa/+C5kf/ds4n/2ayB/9amev/Sn3H/z5lq/8uSYv/Lj13/rXdD+ppn + NJMAAAAAAAAAAJhjL4CsbUH/z5J0/9ekif/it6H/7Mm3//fd0P//6+H//+3j///t4///7uL//+/h//7t + 3P/65tP/9uHL//Pawv/w1Lr/7M6x/+jIqP/kwaD/4LuX/920jv/Zrof/1qd//9Kgdv/Pmm//y5Nm/8qP + Yf+tdkP4mmczkAAAAAAAAAAAmGMvgKxtQf/PlHf/16aM/+K6pf/szLz/9+LW///y6///9u////fx///5 + 8f//+vH///fs///w4v/76dj/9+LP//Tdx//x1r7/7dC2/+jJrf/kwaP/37mZ/9qwj//WqYX/0qF7/8+a + dP/Lk2v/yo9m/612RfiaZzOQAAAAAAAAAACYYy+ArG5C/8+We//YqZH/5cGv//HVyP/45Nn/9+XZ/+vU + w//gxK7/1ric/8+ujv/Lp4P/x595/8Sacv/Clm3/wpRq/8KTaf/Dk2r/x5du/8qcdP/Qonv/1aiD/9eq + h//Vp4X/0Z99/8uVcv/KkGv/rXZG+JpnM5AAAAAAAAAAAJhiL4CsbkT/0pyD/9enjv/Qn4L/xJJu/72N + Zf++kmr/xZl0/86jgP/Xr43/37mX/+K+mv/jvZf/4ruT/9+3i//bsIP/1ah4/8+fbf/Hk1//voZR/7d7 + Rf+xcjz/sHA8/7Z4Rv/Bhln/y5Rt/8yUc/+td0j4mmczkAAAAAAAAAAAmGQwgK1vRf+8eVT/rmo9/7p9 + VP/Snn3/7cSs//7ezP//5NT//+bV///m0///59D//+XK//3fwP/52rf/9tSu//PPpv/vyp7/7MWW/+jA + j//luob/4LN9/9mpcv/PmWH/wIRM/7FuNf+qYiv/uXZH/613SPibaDWQAAAAAAAAAACZZDGAnVkm/7Jo + PP/RlHT/5rSb/+/Fr//41cP//+LS///j0///4tL//+PQ///lz//+5Mv/+t7B//bZuf/z07D/8M6p/+zI + oP/owpj/5L2P/+C2h//dsH//2qp4/9emcv/VoWz/0pxl/8aLU/+wZy//nV8r+JlmM5AAAAAAAAAAAJdi + LoanZTf/0I5v/9efg//hsZj/68Ot//bWxP/+5db//+fZ///n2f//59f//+nW//7n0v/64cj/9tvA//PW + t//w0K//7Mqm/+jEnv/kvpb/4LiN/92yhf/Zq33/1qV2/9Kfbv/PmWb/zJNg/8uOWf+nbjn6mGUykwAA + AAAAAAAAmGMvg6xtQP/Oj3D/1qCE/+G0nP/rxrL/9tnK//7p3P//69///+vf///r3f//7Nz//uvY//rk + z//23sb/89i9//DTtf/szKz/6Mek/+TAnP/guZP/3bOL/9mtg//Wp3v/0qBz/8+ZbP/Lk2P/yo5e/613 + Q/maZzSRAAAAAAAAAACYYy+ArGxA/86Rc//Wooj/4bah/+vItv/23c///uzi///u5f//7+X//+/k///w + 5P/+7uD/+ujX//bizv/z28X/8Na9/+zPs//oyKv/5MKi/+C6mf/dtJH/2a6J/9angP/SoXj/z5pw/8uT + aP/Kj2P/rXZE+JpnM5AAAAAAAAAAAJhjL4CsbEH/zpN2/9ali//huaX/68y8//jj2f//9vD///n1///5 + 9P//9/D///Xr//7w4//66Nf/9eHN//HaxP/w17//7dK4/+vNsv/ox6z/5cGk/+C6m//bsZH/16mI/9Ki + fv/Pm3X/y5Rs/8qPZ/+tdkX4mmczkAAAAAAAAAAAmGMvgKxtQv/OlXn/16iR/+bArv/tzr7/7dHA/+TJ + tP/Wtpr/y6aG/8Weev/Al3D/vpVs/7+Va/++lGn/vpRn/76VZv+8k2T/vZNk/76UZv/AlWf/xZls/8ue + c//Qonr/06J9/9Gee//MlXP/ypBs/612RviaZzOQAAAAAAAAAACYYi6ArG1C/9KZfv/QnoD/wpNv/7qM + Zf++kWn/yJx4/9WsjP/hup7/6sar//LQtP/217j/+Nq6//nduv/53rj/+N61//bdsf/z2qr/7NKf/+PH + kv/XuYL/yadv/72VXf+1hlD/t4JP/8GIXP/LkW3/rXdJ+JpnM5AAAAAAAAAAAJllMoCtc0f/t4Ja/7uP + Zv/btJb/89C6///gzv//5dT//+XV///j0v//487//+PL///kyP//5cb//+XE///mwv//6cH//+q////s + vf//7r3///G9///0vP//9rr///K0//Tjo//bw4T/uZBV/65zQP+pcED4m2g1kAAAAAAAAAAAl2MvgaFw + QP/fup3//+LR///l1f//4c///97M///ezP//3sz//97M///fyv//4Mj//+LG///jxP//5ML//+XA///n + v///6L3//+m7///quf//67f//+21///us///8LL///Oy///6tP//+bH/38iE/59qNfmWYS+QAAAAAAAA + AACVYS2EwJZw///u4P//383//97M///ezP//3sz//97M///ezP//3sz//9/K///gyP//4sb//+PE///k + wv//5cD//+a////ovf//6bv//+q5///rt///7bX//+6z///vsf//8K////Gu///zrP///7n/v55i+Zll + MpIAAAAAAAAAAJViLTOkc0PC7su0///n1///49L//9/N///ezP//3sz//97M///ezP//38r//+DI///i + xv//48T//+TC///lwP//5r///+i9///pu///6rn//+u3///ttf//7rP//++x///xsP//97L///21/+7d + l/+jdT/AlmEvSgAAAAAAAAAAAAAAAJZiLxecajivxZp1/u3Jsf/+3sz//+XV///l1f//49L//+HQ///h + zP//4cn//+LH///jxf//5MP//+XB///mv///6L7//+q8///su///7rr///K7///2u///97n//vGw/+3Z + mP/Fo2f+nGs3r5ZiMBYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTXyoxmWYzkat8TtPEmXP62LGS/+nE + q//00bv/+9rE///gyP//5Mn//+jK///pyf//6sf//+vE///qwP/+6Lv/+uWz//Tdqf/oz5n/2LuD/8Of + aPqrf0rUmWczkJNeLDIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlmIuBJNf + KieUXytSmGQxfZ5rOp+ldES7q31OzbCDVdm0h1rhtopc5LaKW+S0iFjhsYRT2at+TM2ldUK6nmw5oJdk + MX2TXyxSk14rJ5ZhLwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8AAA/8AAAD8AAAAOAAAABgAAAAYAA + AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA + AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAcAAAAPwAAAP/AAAPwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAoAAAAEAAAACAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACYYzA0qHdIfb6QZrHKoHrP0qqF3NWofejNo3bkyJNm3buLV8+ufEatpG45fZhlMTQAAAAAAAAAAJli + LzimaDmh0Jh4//XPvv//7+H//+/n///26f//6dH//uG+//beqv/twpT/4bV+/9WibP/DilP/pW46oJpn + NEGiaDiUv4Bb/+Kwmv/01sT///Dm///x4v//+fL///Pe//bpyf/w1rH/58Kf/9yxiP/VpHj/0Zlq/7yE + UPmlbzyXomk6lb+DYP/jt6T/9N7U//rv7v/27d7/6eDP/9XKvf/avbP/07ml/966nf/YsZf/1auN/9Kd + e/+8hFf7pXA9l6JqO5W7f1v/zJd3/8+mhP/XsJH/26WI/9+te//bp3D/1JZb/8WWUv/Bh0v/u4VK/7x+ + Tf/AgVP/uX9W/KVwQJWdYzGWsGxA/9Wbe//1zLb//+vi///13///9uP//+jQ//zcuv/30q7/8suW/+O1 + gf/YoWv/xopS/65sOPufZTOUomg4lr5/Wv/grpb/9NTH///06///9Ov///j2//7y5f/87c3/8Ni6/+XC + pf/etYz/1KR7/9Kab/++hFH7pW88laJpOpW/g2D/4LWj//DYyv/55N//5tXD/+TPuf/YuZ//0LOT/8+t + jf/Uqof/1aeH/9Skhf/Von//vYVZ/KVwP5ShaTqUt3pU/8aObP/SpIH/2bSV/+O2kf/nwZr/57yU/+O1 + gv/Zq3f/zZtj/8aHVv+7fkT/vHtN/7V7T/ujbz+VnWExlbFsQf/XoIL/+NTA///x6v//7uL///Lh//3k + xv/227b/7tCn/+nBlv/guIP/2ahx/82QWf+vbTj7n2YykaJpOZS+f1r/3qyX//LWx///+PL///j1///7 + 8v/+8eL/9uPJ//TTtv/nxaP/3rWV/9elf//OnG3/vIRT/aRwPZOiaTmVvoBe/9ywmv/pzLv/7NbG/+PJ + sv/Zw6j/3Lud/9ezk//NrIb/0KiB/82gfP/Nl3X/zpR1/7yDWfumcD+VoWk6lbd+V//PpIX/37ea/+jA + p//tya7/9NKy//bXtP/22rH/9Nyu//DXo//p0Zf/3L6C/8SdZP+zdkr6omw6l6R0RJXUq4z//+XW///k + 0///4tH//+LQ///kyf//5cX//+jB///qvv//77z///O6///3uf///bj/07Z1+qh6Q5ecajg5tYheoezJ + r//+3sz//+TU///m1v//6NH//+rL///tx///78T///TA///1vP/+8LD/7NmW/7aOU6CebTlBAAAAAAAA + AACYZTIzq3xOf76Sa7LMo4DQ1a6K4dm1jujat4zo1bOE4MypdNC+lmKyq35KgJhkMjQAAAAAAAAAAMAD + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAD + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/HydroDesktop.Plugins.MetadataFetcher.csproj b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/HydroDesktop.Plugins.MetadataFetcher.csproj new file mode 100644 index 00000000..fe0df9f4 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/HydroDesktop.Plugins.MetadataFetcher.csproj @@ -0,0 +1,231 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448} + Library + Properties + HydroDesktop.Plugins.MetadataFetcher + HydroDesktop.Plugins.MetadataFetcher + v4.0 + 512 + + + + + 3.5 + + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.MetadataFetcher\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.MetadataFetcher\HydroDesktop.Plugins.MetadataFetcher.XML + 1591 + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.MetadataFetcher\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.MetadataFetcher\ + DEBUG;TRACE + full + x86 + prompt + false + false + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.MetadataFetcher\HydroDesktop.Plugins.MetadataFetcher.XML + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.MetadataFetcher\ + TRACE + true + pdbonly + x86 + prompt + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + 3.5 + + + + + + + + + + + + + Form + + + AddServicesForm.cs + + + Form + + + MainForm.cs + + + True + True + MessageStrings.resx + + + + ResXFileCodeGenerator + MessageStrings.Designer.cs + + + PublicResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + AddServicesForm.cs + Designer + + + MainForm.cs + Designer + + + + + + + + + + + + {0ccd3f11-0f48-427f-bc98-9dd6d875f4bb} + HydroDesktop.Configuration + False + + + {ceb869c6-ed48-4846-9040-4e82ab58b86b} + HydroDesktop.Data + False + + + {0B9BA90B-2016-4754-915A-0AD74FD0067A} + HydroDesktop.Interfaces + False + + + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA} + HydroDesktop.WebServices + False + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/HydroDesktop.Plugins.MetadataFetcher.nuspec b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/HydroDesktop.Plugins.MetadataFetcher.nuspec new file mode 100644 index 00000000..a8796820 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/HydroDesktop.Plugins.MetadataFetcher.nuspec @@ -0,0 +1,21 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/MessageStrings.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/MessageStrings.Designer.cs new file mode 100644 index 00000000..dfbf39d6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/MessageStrings.Designer.cs @@ -0,0 +1,99 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.MetadataFetcher { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class MessageStrings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal MessageStrings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.MetadataFetcher.MessageStrings", typeof(MessageStrings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Add. + /// + internal static string Add { + get { + return ResourceManager.GetString("Add", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add services to the list of services that can be harvested in metadata catalog.. + /// + internal static string Add_ToolTip { + get { + return ResourceManager.GetString("Add_ToolTip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Manage. + /// + internal static string Manage { + get { + return ResourceManager.GetString("Manage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Manage the contents of the local metadata catalog.. + /// + internal static string Manage_ToolTip { + get { + return ResourceManager.GetString("Manage_ToolTip", resourceCulture); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/MessageStrings.resx b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/MessageStrings.resx new file mode 100644 index 00000000..b7768fd5 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/MessageStrings.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Add + + + Add services to the list of services that can be harvested in metadata catalog. + + + Manage + + + Manage the contents of the local metadata catalog. + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/MetadataFetcher.sln b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/MetadataFetcher.sln new file mode 100644 index 00000000..48449155 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/MetadataFetcher.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MetadataFetcher", "MetadataFetcher.csproj", "{3AEF14A0-5567-4F53-A4E6-4F1F692A1448}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Debug|x86.ActiveCfg = Debug|x86 + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Debug|x86.Build.0 = Debug|x86 + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Release|Any CPU.Build.0 = Release|Any CPU + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Release|x86.ActiveCfg = Release|x86 + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..c0ca98c6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.MetadataFetcher")] +[assembly: AssemblyDescription("HydroDesktop Metadata Fetcher Plugin")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Tim Whiteaker")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.MetadataFetcher")] +[assembly: AssemblyCopyright("Copyright © CUAHSI 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7ce6e590-68c5-478e-810d-b198f9147502")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Properties/Resources.Designer.cs new file mode 100644 index 00000000..89c65518 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Properties/Resources.Designer.cs @@ -0,0 +1,113 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.MetadataFetcher.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public 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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HydroDesktop.Plugins.MetadataFetcher.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + public static System.Drawing.Icon Database { + get { + object obj = ResourceManager.GetObject("Database", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Metadata_Fetcher_16 { + get { + object obj = ResourceManager.GetObject("Metadata_Fetcher_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Metadata_Fetcher_32 { + get { + object obj = ResourceManager.GetObject("Metadata_Fetcher_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Metadata_Fetcher_Add_16 { + get { + object obj = ResourceManager.GetObject("Metadata_Fetcher_Add_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap Metadata_Fetcher_Add_32 { + get { + object obj = ResourceManager.GetObject("Metadata_Fetcher_Add_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Properties/Resources.resx new file mode 100644 index 00000000..9ba5ab07 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Properties/Resources.resx @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + ..\Resources\Database.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Metadata_Fetcher_16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Metadata_Fetcher_32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Metadata_Fetcher_Add_16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Metadata_Fetcher_Add_32.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Properties/Settings.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Properties/Settings.Designer.cs new file mode 100644 index 00000000..1c634ad6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.MetadataFetcher.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.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/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Properties/Settings.settings b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Properties/Settings.settings new file mode 100644 index 00000000..abf36c5d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Resources/Database.ico b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Resources/Database.ico new file mode 100644 index 00000000..39843e3b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Resources/Database.ico differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Resources/Metadata_Fetcher_16.png b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Resources/Metadata_Fetcher_16.png new file mode 100644 index 00000000..74f8e588 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Resources/Metadata_Fetcher_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Resources/Metadata_Fetcher_32.png b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Resources/Metadata_Fetcher_32.png new file mode 100644 index 00000000..02582c9f Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Resources/Metadata_Fetcher_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Resources/Metadata_Fetcher_Add_16.png b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Resources/Metadata_Fetcher_Add_16.png new file mode 100644 index 00000000..dcc66062 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Resources/Metadata_Fetcher_Add_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Resources/Metadata_Fetcher_Add_32.png b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Resources/Metadata_Fetcher_Add_32.png new file mode 100644 index 00000000..25809b74 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/Resources/Metadata_Fetcher_Add_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/packages.config b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.MetadataFetcher/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/App.config b/Source/Plugins/HydroDesktop.Plugins.Search/App.config new file mode 100644 index 00000000..d5bfd6d5 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/App.config @@ -0,0 +1,43 @@ + + + + +
    + + +
    + + + + + + http://hiscentral.cuahsi.org/webservices/hiscentral_1_1.asmx + + + + + + + HisCentral + + + WebServices.xml + + + Resources\Synonyms.xml + + + Resources\OntologyTree.xml + + + searchresult_{0}_{1}.shp + + + http://hiscentral.cuahsi.org/webservices/hiscentral_1_1.asmx + + + http://water.sdsc.edu/hiscentral/webservices/hiscentral.asmx + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Area/AreaHelper.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Area/AreaHelper.cs new file mode 100644 index 00000000..123bc37e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Area/AreaHelper.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Projections; +using HydroDesktop.WebServices; +using HydroDesktop.Plugins.Search.Properties; + +namespace HydroDesktop.Plugins.Search.Area +{ + static class AreaHelper + { + #region Fields + + private static readonly ProjectionInfo _wgs84Projection = ProjectionInfo.FromEsriString(KnownCoordinateSystems.Geographic.World.WGS1984.ToEsriString()); + + #endregion + + #region Public methods + + public static IEnumerable GetAllPolygonLayers(Map map) + { + if (map == null) throw new ArgumentNullException("map"); + + return map.GetAllLayers().OfType(); + } + + public static IEnumerable GetAllSelectedPolygonLayers(Map map) + { + if (map == null) throw new ArgumentNullException("map"); + + return GetAllPolygonLayers(map) + .Where(subLayer => subLayer.IsVisible && + subLayer.IsSelected); + } + + public static void SelectFirstVisiblePolygonLayer(Map map, bool isWorldTemplate) + { + if (map == null) throw new ArgumentNullException("map"); + + //special case: world project template + if (isWorldTemplate) + { + map.MapFrame.IsSelected = false; + foreach (var layer in GetAllPolygonLayers(map).Where(subLayer => subLayer.IsVisible)) + { + layer.IsSelected = true; + map.Legend.RefreshNodes(); + break; + } + } + + if (map.MapFrame.IsSelected) return; //don't select layers if map frame is already selected + + var hasSelected = GetAllPolygonLayers(map).Where(subLayer => subLayer.IsVisible) + .Any(item => item.IsSelected); + if (hasSelected) + return; + + foreach (var layer in GetAllPolygonLayers(map).Where(subLayer => subLayer.IsVisible).Reverse()) + { + layer.IsSelected = true; + map.Legend.RefreshNodes(); + break; + } + } + + public static Box ReprojectBoxToWGS84(Box sourceBox, ProjectionInfo sourceProjection) + { + if (sourceBox == null) throw new ArgumentNullException("sourceBox"); + if (sourceProjection == null) throw new ArgumentNullException("sourceProjection"); + + var xMin = sourceBox.XMin; + var yMin = sourceBox.YMin; + var xMax = sourceBox.XMax; + var yMax = sourceBox.YMax; + + var xy = new[] { xMin, yMin, xMax, yMax }; + Reproject.ReprojectPoints(xy, new double[] { 0, 0 }, sourceProjection, _wgs84Projection, 0, 2); + + xMin = xy[0]; + yMin = xy[1]; + xMax = xy[2]; + yMax = xy[3]; + var rectangle = new Box(xMin, xMax, yMin, yMax); + return rectangle; + } + + public static List ReprojectPolygonsToWGS84(FeatureSet polygons) + { + if (polygons == null) throw new ArgumentNullException("polygons"); + + polygons.Reproject(_wgs84Projection); + return Enumerable.ToList(polygons.Features); + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Area/RectangleDrawing.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Area/RectangleDrawing.cs new file mode 100644 index 00000000..3d4dd81b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Area/RectangleDrawing.cs @@ -0,0 +1,316 @@ +using System; +using System.Data; +using System.Diagnostics.Contracts; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Projections; +using DotSpatial.Symbology; +using DotSpatial.Topology; + +namespace HydroDesktop.Plugins.Search.Area +{ + /// + /// This class is responsible for drawing the area rectangle + /// + public class RectangleDrawing + { + private static readonly ProjectionInfo _wgs84Projection = ProjectionInfo.FromEsriString(KnownCoordinateSystems.Geographic.World.WGS1984.ToEsriString()); + + #region Fields + + private readonly Map _mainMap; + private MapPolygonLayer _rectangleLayer; + private bool _isActive; + private int _numClicks; + private Coordinate _startPoint; + private Color _color = Color.Red; + + #endregion + + public event EventHandler RectangleCreated; + public event EventHandler Deactivated; + + #region Constructors + + public RectangleDrawing(Map map) + { + if (map == null) throw new ArgumentNullException("map"); + Contract.EndContractBlock(); + + _mainMap = map; + _mainMap.Layers.LayerRemoved += Layers_LayerRemoved; + } + + #endregion + + void Layers_LayerRemoved(object sender, LayerEventArgs e) + { + if (_rectangleLayer == null) return; + + if (e.Layer == _rectangleLayer) + { + Deactivate(); + } + } + + /// + /// The extent of the area rectangle + /// + public Extent RectangleExtent + { + get + { + if (_rectangleLayer.DataSet.Features.Count == 1) + { + IFeature polyF = _rectangleLayer.DataSet.Features[0]; + return polyF.Envelope.ToExtent(); + } + return new Extent(_mainMap.ViewExtents.ToEnvelope()); + } + } + + public bool IsActivated + { + get { return _isActive; } + } + + public Color Color + { + get { return _color; } + set { + _color = value; + AddRectangleLayer(_color); + } + } + + /// + /// Activates the rectangle drawing function + /// + public void Activate() + { + if (!_isActive) + { + _mainMap.MouseDown += mainMap_MouseDown; + _mainMap.MouseUp += mainMap_MouseUp; + } + _numClicks = 0; + _isActive = true; + _mainMap.Cursor = Cursors.Cross; + _mainMap.FunctionMode = FunctionMode.Select; + AddRectangleLayer(_color); + DisableLayerSelection(); + } + + /// + /// Deactivates the rectangle drawing function + /// + public void Deactivate() + { + if (!IsActivated) return; + + _mainMap.MouseDown -= mainMap_MouseDown; + _mainMap.MouseUp -= mainMap_MouseUp; + _numClicks = 0; + _isActive = false; + + if (_rectangleLayer != null) + { + if (_rectangleLayer.DataSet.Features != null) + { + _rectangleLayer.DataSet.Features.Clear(); + } + RemoveRectangleLayer(); + } + _mainMap.ResetBuffer(); + _mainMap.FunctionMode = FunctionMode.Select; + EnableLayerSelection(); + + //Raise event + OnDeactivated(); + } + + private void DisableLayerSelection() + { + foreach (IMapLayer lay in _mainMap.GetAllLayers()) + { + if (lay.LegendText != Properties.Resources.RectangleLayerName) + { + lay.IsSelected = false; + lay.SelectionEnabled = false; + } + else + { + lay.IsSelected = true; + } + } + } + + private void EnableLayerSelection() + { + foreach (IMapLayer lay in _mainMap.GetAllLayers()) + { + lay.SelectionEnabled = true; + } + } + + void mainMap_MouseUp(object sender, MouseEventArgs e) + { + //only modify rectangle drawing if function mode is Select + if (_mainMap.FunctionMode != FunctionMode.Select) return; + + if (_numClicks == 1) + { + var endPoint = new Coordinate(_mainMap.PixelToProj(e.Location)); + + _rectangleLayer.DataSet.Features.Clear(); + + var array = new Coordinate[5]; + array[0] = _startPoint; + array[1] = new Coordinate(_startPoint.X, endPoint.Y); + array[2] = endPoint; + array[3] = new Coordinate(endPoint.X, _startPoint.Y); + array[4] = _startPoint; + var shell = new LinearRing(array); + var poly = new Polygon(shell); + var newF = _rectangleLayer.DataSet.AddFeature(poly); + newF.DataRow["ID"] = 1; + _numClicks = 0; + + _mainMap.ResetBuffer(); + //Deactivate(); + OnRectangleCreated(); + } + } + + void mainMap_MouseDown(object sender, MouseEventArgs e) + { + //only modify rectangle drawing if function mode is Select + if (_mainMap.FunctionMode != FunctionMode.Select) return; + + if (_numClicks == 0) + { + //todo: draw point... + _startPoint = new Coordinate(_mainMap.PixelToProj(e.Location)); + _numClicks = 1; + + } + else if (_numClicks == 1) + { + _numClicks = 2; + } + + } + + /// + /// Restores the 'search area rectangle' in the map + /// + public void RestoreSearchRectangle(double minLon, double minLat, double maxLon, double maxLat) + { + + if (_rectangleLayer != null) + { + _rectangleLayer.DataSet.Features.Clear(); + + double maxLat1 = Math.Max(minLat, maxLat); + double minLat1 = Math.Min(minLat, maxLat); + double maxLon1 = Math.Max(minLon, maxLon); + double minLon1 = Math.Min(minLon, maxLon); + + //reproject the points + const int numPoints = 4; + var array = new double[8]; + array[0] = minLon1; + array[1] = minLat1; + array[2] = minLon1; + array[3] = maxLat1; + array[4] = maxLon1; + array[5] = maxLat1; + array[6] = maxLon1; + array[7] = minLat1; + + Reproject.ReprojectPoints(array, new double[] { 0, 0, 0, 0 }, _wgs84Projection, _mainMap.Projection, 0, numPoints); + + //form the coordinate array and add rectangle feature + var coords = new Coordinate[5]; + coords[0] = new Coordinate(array[0], array[1]); + coords[1] = new Coordinate(array[2], array[3]); + coords[2] = new Coordinate(array[4], array[5]); + coords[3] = new Coordinate(array[6], array[7]); + //add the closing point of the rectangle - same as first point + coords[4] = new Coordinate(array[0], array[1]); + + //create a polygon feature from the coordinate array + var shell = new LinearRing(coords); + var poly = new Polygon(shell); + var newF = _rectangleLayer.DataSet.AddFeature(poly); + newF.DataRow["ID"] = 1; + _numClicks = 0; + _isActive = true; + _mainMap.ResetBuffer(); + //Deactivate(); + OnRectangleCreated(); + } + } + + /// + /// Adds the hidden "Search Rectangle" layer to the map + /// + private void AddRectangleLayer(Color color) + { + //check for the rectangle layer + if (_rectangleLayer == null) + { + _rectangleLayer = _mainMap.GetAllLayers().OfType().FirstOrDefault(lay => lay.LegendText == Properties.Resources.RectangleLayerName); + + var rectangleFs = new FeatureSet(FeatureType.Polygon); + rectangleFs.DataTable.Columns.Add(new DataColumn("ID")); + rectangleFs.Projection = _mainMap.Projection; + + _rectangleLayer = new MapPolygonLayer(rectangleFs){LegendText = Properties.Resources.RectangleLayerName}; + _rectangleLayer.Symbolizer = new PolygonSymbolizer(color.ToTransparent(0.5f), color); + _rectangleLayer.SelectionSymbolizer = _rectangleLayer.Symbolizer; + _mainMap.Layers.Add(_rectangleLayer); + } + else + { + _rectangleLayer.Symbolizer = new PolygonSymbolizer(color.ToTransparent(0.5f), color); + } + } + + /// + /// Returns true if the map already contains the rectangle layer.. + /// + /// + public bool RectangleLayerIsInMap() + { + return _mainMap.GetAllLayers().Cast().Any(lay => lay.LegendText == Properties.Resources.RectangleLayerName); + } + + private void RemoveRectangleLayer() + { + _mainMap.Layers.Remove(_rectangleLayer); + _rectangleLayer = null; + } + + private void OnRectangleCreated() + { + var handler = RectangleCreated; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + + private void OnDeactivated() + { + var handler = Deactivated; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Area/SelectAreaByAttributeDialog.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Area/SelectAreaByAttributeDialog.Designer.cs new file mode 100644 index 00000000..6ca44f10 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Area/SelectAreaByAttributeDialog.Designer.cs @@ -0,0 +1,160 @@ +namespace HydroDesktop.Plugins.Search.Area +{ + partial class SelectAreaByAttributeDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnApply = new System.Windows.Forms.Button(); + this.btnOK = new System.Windows.Forms.Button(); + this.lblActiveLayer = new System.Windows.Forms.Label(); + this.cmbActiveLayer = new System.Windows.Forms.ComboBox(); + this.cmbField = new System.Windows.Forms.ComboBox(); + this.lblField = new System.Windows.Forms.Label(); + this.lblValue = new System.Windows.Forms.Label(); + this.cmbValues = new System.Windows.Forms.ComboBox(); + this.SuspendLayout(); + // + // btnApply + // + this.btnApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnApply.Location = new System.Drawing.Point(146, 186); + this.btnApply.Name = "btnApply"; + this.btnApply.Size = new System.Drawing.Size(75, 23); + this.btnApply.TabIndex = 4; + this.btnApply.Text = "Apply"; + this.btnApply.UseVisualStyleBackColor = true; + this.btnApply.Click += new System.EventHandler(this.btnApply_Click); + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(227, 186); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 5; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + this.btnOK.Click += new System.EventHandler(this.btnOK_Click); + // + // lblActiveLayer + // + this.lblActiveLayer.AutoSize = true; + this.lblActiveLayer.Location = new System.Drawing.Point(14, 19); + this.lblActiveLayer.Name = "lblActiveLayer"; + this.lblActiveLayer.Size = new System.Drawing.Size(69, 13); + this.lblActiveLayer.TabIndex = 2; + this.lblActiveLayer.Text = "Active Layer:"; + // + // cmbActiveLayer + // + this.cmbActiveLayer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbActiveLayer.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbActiveLayer.FormattingEnabled = true; + this.cmbActiveLayer.Location = new System.Drawing.Point(17, 36); + this.cmbActiveLayer.Name = "cmbActiveLayer"; + this.cmbActiveLayer.Size = new System.Drawing.Size(288, 21); + this.cmbActiveLayer.TabIndex = 0; + // + // cmbField + // + this.cmbField.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbField.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbField.FormattingEnabled = true; + this.cmbField.Location = new System.Drawing.Point(17, 81); + this.cmbField.Name = "cmbField"; + this.cmbField.Size = new System.Drawing.Size(288, 21); + this.cmbField.TabIndex = 1; + // + // lblField + // + this.lblField.AutoSize = true; + this.lblField.Location = new System.Drawing.Point(17, 65); + this.lblField.Name = "lblField"; + this.lblField.Size = new System.Drawing.Size(32, 13); + this.lblField.TabIndex = 4; + this.lblField.Text = "Field:"; + // + // lblValue + // + this.lblValue.AutoSize = true; + this.lblValue.Location = new System.Drawing.Point(17, 131); + this.lblValue.Name = "lblValue"; + this.lblValue.Size = new System.Drawing.Size(141, 13); + this.lblValue.TabIndex = 6; + this.lblValue.Text = "Value: type-in first few letters"; + // + // cmbValues + // + this.cmbValues.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.cmbValues.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.cmbValues.FormattingEnabled = true; + this.cmbValues.Location = new System.Drawing.Point(17, 147); + this.cmbValues.Name = "cmbValues"; + this.cmbValues.Size = new System.Drawing.Size(288, 21); + this.cmbValues.TabIndex = 7; + this.cmbValues.SelectedValueChanged += new System.EventHandler(this.cmbValues_SelectedValueChanged); + // + // SelectAreaByAttributeDialog + // + this.AcceptButton = this.btnOK; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.WhiteSmoke; + this.ClientSize = new System.Drawing.Size(314, 221); + this.Controls.Add(this.cmbValues); + this.Controls.Add(this.lblValue); + this.Controls.Add(this.cmbField); + this.Controls.Add(this.lblField); + this.Controls.Add(this.cmbActiveLayer); + this.Controls.Add(this.lblActiveLayer); + this.Controls.Add(this.btnOK); + this.Controls.Add(this.btnApply); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "SelectAreaByAttributeDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Select Area By Attribute"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnApply; + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Label lblActiveLayer; + private System.Windows.Forms.ComboBox cmbActiveLayer; + private System.Windows.Forms.ComboBox cmbField; + private System.Windows.Forms.Label lblField; + private System.Windows.Forms.Label lblValue; + private System.Windows.Forms.ComboBox cmbValues; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Area/SelectAreaByAttributeDialog.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Area/SelectAreaByAttributeDialog.cs new file mode 100644 index 00000000..2efe3573 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Area/SelectAreaByAttributeDialog.cs @@ -0,0 +1,151 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Symbology; + +namespace HydroDesktop.Plugins.Search.Area +{ + public partial class SelectAreaByAttributeDialog : Form + { + #region Fields + + private readonly Map _map; + + #endregion + + #region Constructors + + private SelectAreaByAttributeDialog(Map map) + { + if (map == null) throw new ArgumentNullException("map"); + + _map = map; + + InitializeComponent(); + BindMapToForm(); + } + + #endregion + + #region Public methods + + public static DialogResult ShowDialog(Map map) + { + if (map == null) throw new ArgumentNullException("map"); + + using (var form = new SelectAreaByAttributeDialog(map)) + { + return form.ShowDialog(); + } + } + + #endregion + + #region Private methods + + private void BindMapToForm() + { + cmbActiveLayer.SelectedIndexChanged -= cmbActiveLayer_SelectedIndexChanged; + var layers = AreaHelper.GetAllPolygonLayers(_map).ToList(); + cmbActiveLayer.DisplayMember = "LegendText"; + cmbActiveLayer.DataSource = layers; + + var selectedLayer = AreaHelper.GetAllSelectedPolygonLayers(_map).FirstOrDefault(); + cmbActiveLayer.SelectedItem = selectedLayer; + cmbActiveLayer.SelectedIndexChanged += cmbActiveLayer_SelectedIndexChanged; + cmbActiveLayer_SelectedIndexChanged(cmbActiveLayer, EventArgs.Empty); + } + + void cmbActiveLayer_SelectedIndexChanged(object sender, EventArgs e) + { + var selectedLayer = cmbActiveLayer.SelectedItem as IMapPolygonLayer; + if (selectedLayer == null) + { + cmbField.DataSource = null; + return; + } + + // Select layer in the map + foreach (IMapPolygonLayer layer in cmbActiveLayer.Items) + layer.IsSelected = layer == selectedLayer; + _map.Legend.RefreshNodes(); + + // Update fields + cmbField.SelectedIndexChanged -= cmbField_SelectedIndexChanged; + var dataColumns = new DataColumn[selectedLayer.DataSet.DataTable.Columns.Count]; + selectedLayer.DataSet.DataTable.Columns.CopyTo(dataColumns, 0); + cmbField.DisplayMember = "ColumnName"; + cmbField.DataSource = dataColumns; + cmbField.SelectedIndexChanged += cmbField_SelectedIndexChanged; + cmbField_SelectedIndexChanged(cmbField, EventArgs.Empty); + } + + void cmbField_SelectedIndexChanged(object sender, EventArgs e) + { + var dataColumn = cmbField.SelectedItem as DataColumn; + if (dataColumn == null) + { + return; + } + + var selectedLayer = cmbActiveLayer.SelectedItem as IMapPolygonLayer; + if (selectedLayer == null) return; + + var uniqueValues = new SortedSet(); + foreach(DataRow row in selectedLayer.DataSet.DataTable.Rows) + uniqueValues.Add(row[dataColumn.ColumnName].ToString()); + + cmbValues.DataSource = uniqueValues.ToList(); + + if (!selectedLayer.IsVisible) + selectedLayer.IsVisible = true; + } + + private void SelectShapesInTheMap() + { + var selectedLayer = cmbActiveLayer.SelectedItem as IMapPolygonLayer; + if (selectedLayer == null) return; + + var dataColumn = cmbField.SelectedItem as DataColumn; + if (dataColumn == null) return; + + if (cmbValues.SelectedItem == null) return; + var selectedValue = cmbValues.SelectedItem.ToString(); + if (String.IsNullOrWhiteSpace(selectedValue)) return; + + string selectedColumn = cmbField.Text; + + string filterEx = string.Format("[{0}] = '{1}'", selectedColumn, selectedValue); + selectedLayer.SelectByAttribute(filterEx, ModifySelectionMode.Append); + _map.MapFrame.IsSelected = false; + + //zoom to selection + selectedLayer.ZoomToSelectedFeatures(); + + selectedLayer.IsSelected = false; + selectedLayer.IsSelected = true; + } + + private void btnApply_Click(object sender, EventArgs e) + { + SelectShapesInTheMap(); + btnApply.Enabled = false; + } + + private void btnOK_Click(object sender, EventArgs e) + { + if (!btnApply.Enabled) return; + SelectShapesInTheMap(); + } + + #endregion + + private void cmbValues_SelectedValueChanged(object sender, EventArgs e) + { + btnApply.Enabled = true; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Area/SelectAreaByAttributeDialog.resx b/Source/Plugins/HydroDesktop.Plugins.Search/Area/SelectAreaByAttributeDialog.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Area/SelectAreaByAttributeDialog.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Box.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Box.cs new file mode 100644 index 00000000..dd7f7d25 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Box.cs @@ -0,0 +1,48 @@ +using System; + +namespace HydroDesktop.Plugins.Search +{ + /// + /// Represents a latitude / longitude bounding box. + /// + public class Box + { + /// + /// Bounding Box for HydroDesktop Search + /// + /// minimum x longitude + /// maximum x longitude + /// minimum y latitude + /// maximum y latitude + public Box(double xMin, double xMax, double yMin, double yMax) + { + XMin = xMin; + XMax = xMax; + YMin = yMin; + YMax = yMax; + } + /// + /// Minimum X (latitude) + /// + public double XMin { get; private set; } + /// + /// Maximum X (latitude) + /// + public double XMax { get; private set; } + /// + /// Minimum Y (longitude) + /// + public double YMin { get; private set; } + /// + /// Maximum Y (longitude) + /// + public double YMax { get; private set; } + + /// + public override string ToString() + { + return string.Format("Point1 (Lng/Lat): {0:N6} {1:N6} " + Environment.NewLine + + "Point2 (Lng/Lat): {2:N6} {3:N6} ", XMin, YMin, YMax, YMax); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/HydroDesktop.Plugins.Search.csproj b/Source/Plugins/HydroDesktop.Plugins.Search/HydroDesktop.Plugins.Search.csproj new file mode 100644 index 00000000..1988aece --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/HydroDesktop.Plugins.Search.csproj @@ -0,0 +1,419 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {FB01F6EE-89C0-4A64-B023-C8CC566FF803} + Library + Properties + HydroDesktop.Plugins.Search + HydroDesktop.Plugins.Search + v4.0 + 512 + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.Search\ + DEBUG;TRACE + prompt + 4 + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.Search\HydroDesktop.Plugins.Search.xml + 1591 + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.Search\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.Search\ + DEBUG;TRACE + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.Search\HydroDesktop.Plugins.Search.xml + full + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.Search\HydroDesktop.Plugins.Search.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.Search\HydroDesktop.Plugins.Search.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + + + + + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + + + + + + + + + + + + Form + + + SelectAreaByAttributeDialog.cs + + + + + + + + + + + True + True + MessageStrings.resx + + + + + + + + + + + Form + + + SearchProgressForm.cs + + + + + + + + + + + + + Form + + + AddSitesLayerDialog.cs + + + Form + + + DateSettingsDialog.cs + + + Form + + + KeywordsDialog.cs + + + UserControl + + + KeywordsUserControl.cs + + + Form + + + AdvancedHisCentralOptionsDialog.cs + + + True + True + Resources.resx + + + True + True + Settings.settings + + + + + + + + + Form + + + WebServicesDialog.cs + + + + + + + + UserControl + + + WebServicesUserControl.cs + + + + + SelectAreaByAttributeDialog.cs + Designer + + + ResXFileCodeGenerator + MessageStrings.Designer.cs + Designer + + + SearchProgressForm.cs + + + AddSitesLayerDialog.cs + + + DateSettingsDialog.cs + + + KeywordsDialog.cs + + + KeywordsUserControl.cs + + + AdvancedHisCentralOptionsDialog.cs + Designer + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + WebServicesDialog.cs + + + WebServicesUserControl.cs + + + + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + + + + + + + + + + + PreserveNewest + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + {0ccd3f11-0f48-427f-bc98-9dd6d875f4bb} + HydroDesktop.Configuration + False + + + {ceb869c6-ed48-4846-9040-4e82ab58b86b} + HydroDesktop.Data + False + + + {0B9BA90B-2016-4754-915A-0AD74FD0067A} + HydroDesktop.Interfaces + False + + + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA} + HydroDesktop.WebServices + False + + + + + + + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/HydroDesktop.Plugins.Search.nuspec b/Source/Plugins/HydroDesktop.Plugins.Search/HydroDesktop.Plugins.Search.nuspec new file mode 100644 index 00000000..cf98aa5f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/HydroDesktop.Plugins.Search.nuspec @@ -0,0 +1,24 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/Constants.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/Constants.cs new file mode 100644 index 00000000..79a5eb3c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/Constants.cs @@ -0,0 +1,8 @@ +namespace HydroDesktop.Plugins.Search.Keywords +{ + internal static class Constants + { + public const string RootName = "All"; + public const string EnterKeyword = "[Enter Keyword]"; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/DbKeywordsList.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/DbKeywordsList.cs new file mode 100644 index 00000000..3e01fbcf --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/DbKeywordsList.cs @@ -0,0 +1,36 @@ +using System.Collections.Generic; +using System.Linq; +using HydroDesktop.Plugins.Search.Searching; +using HydroDesktop.Plugins.Search.Settings; + +namespace HydroDesktop.Plugins.Search.Keywords +{ + class DbKeywordsList : IOntologyReader + { + public OntologyDesc GetOntologyDesc() + { + // Keywords + var searcher = new MetadataCacheSearcher(); + var keywordsList = searcher.GetKeywords(); + keywordsList.Add(Constants.RootName); + var sortedKeywords = new SortedSet(keywordsList); + + // Ontology tree + var tree = new OntologyTree(); + var parentNode = new OntologyNode(Constants.RootName); + foreach (var keyword in keywordsList.Where(keyword => keyword != Constants.RootName)) + { + parentNode.Nodes.Add(new OntologyNode(keyword)); + } + tree.Nodes.Add(parentNode); + + // Return result + var result = new OntologyDesc + { + Keywords = sortedKeywords, + OntoloyTree = tree, + }; + return result; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/HisCentralKeywordsList.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/HisCentralKeywordsList.cs new file mode 100644 index 00000000..7d46eafd --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/HisCentralKeywordsList.cs @@ -0,0 +1,208 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Xml; +using HydroDesktop.Plugins.Search.Settings; + +namespace HydroDesktop.Plugins.Search.Keywords +{ + class HisCentralKeywordsList : IOntologyReader + { + private static readonly string _ontologyFilename = Properties.Settings.Default.OntologyFilename; + private static readonly string _ontologySynonymsFilename = Properties.Settings.Default.SynonymsFilename; + private SortedSet keywordsList; + + public OntologyDesc GetOntologyDesc() + { + // Synonyms and keywords + var tmpsyndoc = ReadOntologySynonymsXmlFile(); + keywordsList = new SortedSet(); + var synonyms = new List(); + var root = tmpsyndoc.DocumentElement; + foreach (XmlElement elem in root.ChildNodes) + { + var ontoPath = new OntologyPath(); + foreach (XmlElement child in elem.ChildNodes) + { + var text = child.InnerText.Trim(); + if (child.Name == "conceptID") + { + int conceptID; + if (Int32.TryParse(text, out conceptID)) + ontoPath.ConceptID = conceptID; + } + else if (child.Name == "ConceptName") + { + ontoPath.ConceptName = text; + } + else if (child.Name == "ConceptPath") + { + ontoPath.ConceptPath = text; + } + else if (child.Name == "SearchableKeyword") + { + ontoPath.SearchableKeyword = text; + } + } + // Add to sysnonyms, only if SearchableKeyword != ConceptName + if (!string.Equals(ontoPath.SearchableKeyword, ontoPath.ConceptName) && + !string.IsNullOrEmpty(ontoPath.SearchableKeyword)) + { + synonyms.Add(ontoPath); + } + if (!String.IsNullOrWhiteSpace(ontoPath.SearchableKeyword)) + { + keywordsList.Add(ontoPath.SearchableKeyword); + } + } + + // Ontology tree + var tree = new OntologyTree(); + var tmpxmldoc = ReadOntologyXmlFile(); + FillTree(tmpxmldoc.DocumentElement, tree.Nodes); + + // Replace Hydroshpere with All + keywordsList.Remove("Hydrosphere"); + keywordsList.Add(Constants.RootName); + if (tree.Nodes.Count > 0) + { + tree.Nodes[0].Text = Constants.RootName; + } + + // Return result + var result = new OntologyDesc + { + OntoloyTree = tree, + Keywords = keywordsList, + Synonyms = synonyms, + }; + return result; + } + + private void FillTree(XmlNode node, ICollection parentnode) + { + // End recursion if the node is a text type + if (node == null || node.NodeType == XmlNodeType.Text || node.NodeType == XmlNodeType.CDATA) + return; + + var tmptreenodecollection = AddNodeToTree(node, parentnode); + + // Add all the children of the current node to the treeview + foreach (XmlNode tmpchildnode in node.ChildNodes) + { + if (tmpchildnode.Name == "childNodes") + { + foreach (XmlNode tmpchildnode2 in tmpchildnode.ChildNodes) + { + FillTree(tmpchildnode2, tmptreenodecollection); + } + } + } + } + + private ICollection AddNodeToTree(XmlNode node, ICollection parentnode) + { + var newchildnode = CreateTreeNodeFromXmlNode(node); + if (parentnode != null) parentnode.Add(newchildnode); + return newchildnode.Nodes; + } + + private OntologyNode CreateTreeNodeFromXmlNode(XmlNode node) + { + OntologyNode tmptreenode = null; + if (node.HasChildNodes) + { + var text = node.FirstChild.InnerText.Trim(); + if (text != string.Empty) + { + tmptreenode = new OntologyNode(text); + keywordsList.Add(text); + } + } + return tmptreenode ?? (new OntologyNode()); + } + + private static XmlDocument ReadOntologyXmlFile() + { + return ReadXmlFile(_ontologyFilename); + } + + private static XmlDocument ReadOntologySynonymsXmlFile() + { + return ReadXmlFile(_ontologySynonymsFilename); + } + + private static XmlDocument ReadXmlFile(string filename) + { + var tmpxmldoc = new XmlDocument(); + var assemblyFolder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); + Debug.Assert(assemblyFolder != null, "assemblyFolder != null"); + tmpxmldoc.Load(Path.Combine(assemblyFolder, filename)); + return tmpxmldoc; + } + + internal static List RefineKeywordList(OntologyDesc desc, List keywords) + { + var ontologyTree = desc.OntoloyTree; + var allKeywords = desc.Keywords; + + // If searching 1st tier keywords, clear the list. + var tier1Keywords = ontologyTree.Nodes.Select(d => d.Text); + if (tier1Keywords.Any(keywords.Contains)) + { + keywords.Clear(); + return keywords; + } + + // Remove duplicates + keywords = keywords.Distinct().ToList(); + + // Remove invalid keywords + var toDelete = new HashSet(keywords.Where(k => !allKeywords.Contains(k))); + + // Remove keywords if their ancestors are also in the list. + foreach (var keyword in keywords) + { + if (toDelete.Contains(keyword)) continue; + var node = ontologyTree.FindNode(keyword); + if (node == null) continue; + + foreach (var other in keywords) + { + if (other == keyword) continue; + if (toDelete.Contains(other)) continue; + if (node.HasChild(other)) + { + toDelete.Add(other); + } + } + } + foreach (var del in toDelete) + { + keywords.Remove(del); + } + + // Replace 2nd tier keywords with their 3rd tier child keywords. + // 2nd tier keywords cannot be searched at HIS Central. + foreach (var tier2Node in ontologyTree.Nodes.SelectMany(node => node.Nodes)) + { + var tier2keyword = tier2Node.Text; + if (!keywords.Contains(tier2keyword)) continue; + + // Remove 2nd tier keyword + keywords.Remove(tier2keyword); + + // Add 3rd tier keywords that are children of the removed 2nd tier keyword. + var tier3Keywords = tier2Node.Nodes.Select(d => d.Text); + foreach (var tier3keyword in tier3Keywords.Where(tier3keyword => !keywords.Contains(tier3keyword))) + { + keywords.Add(tier3keyword); + } + } + + return keywords; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/IOntologyReader.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/IOntologyReader.cs new file mode 100644 index 00000000..4887bacd --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/IOntologyReader.cs @@ -0,0 +1,7 @@ +namespace HydroDesktop.Plugins.Search.Keywords +{ + interface IOntologyReader + { + OntologyDesc GetOntologyDesc(); + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/KeywordsServicesFactory.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/KeywordsServicesFactory.cs new file mode 100644 index 00000000..0dc3d4be --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/KeywordsServicesFactory.cs @@ -0,0 +1,28 @@ +using System; +using HydroDesktop.Plugins.Search.Settings; + +namespace HydroDesktop.Plugins.Search.Keywords +{ + static class KeywordsServicesFactory + { + public static IOntologyReader GetKeywordsList(CatalogSettings catalogSettings) + { + if (catalogSettings == null) throw new ArgumentNullException("catalogSettings"); + + IOntologyReader reader; + switch (catalogSettings.TypeOfCatalog) + { + case TypeOfCatalog.LocalMetadataCache: + reader = new DbKeywordsList(); + break; + case TypeOfCatalog.HisCentral: + reader = new HisCentralKeywordsList(); + break; + default: + throw new Exception("Unknown TypeOfCatalog"); + } + + return reader; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/OntologyDesc.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/OntologyDesc.cs new file mode 100644 index 00000000..01b8ae7e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Keywords/OntologyDesc.cs @@ -0,0 +1,38 @@ +using System.Collections.Generic; +using HydroDesktop.Plugins.Search.Settings; + +namespace HydroDesktop.Plugins.Search.Keywords +{ + public class OntologyDesc + { + #region Fields + + private IEnumerable _keywords; + private OntologyTree _ontoloyTree; + + #endregion + + /// + /// Keywords, not null. + /// + public IEnumerable Keywords + { + get { return _keywords?? (_keywords = new List(0)); } + set { _keywords = value; } + } + + /// + /// Ontology tree, not null. + /// + public OntologyTree OntoloyTree + { + get { return _ontoloyTree?? (_ontoloyTree = new OntologyTree()); } + set { _ontoloyTree = value; } + } + + /// + /// Synonyms, may be null. + /// + public IEnumerable Synonyms { get; set; } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/MessageStrings.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.Search/MessageStrings.Designer.cs new file mode 100644 index 00000000..5fc66ca4 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/MessageStrings.Designer.cs @@ -0,0 +1,450 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.Search { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class MessageStrings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal MessageStrings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.Search.MessageStrings", typeof(MessageStrings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Select Multiple Keywords. + /// + internal static string Add_More_Keywords { + get { + return ResourceManager.GetString("Add_More_Keywords", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add Sites Layer. + /// + internal static string Add_Sites { + get { + return ResourceManager.GetString("Add_Sites", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search Area. + /// + internal static string Area { + get { + return ResourceManager.GetString("Area", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Continue search. + /// + internal static string Continue_Search { + get { + return ResourceManager.GetString("Continue_Search", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Controls. + /// + internal static string Controls { + get { + return ResourceManager.GetString("Controls", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Current View. + /// + internal static string Current_View { + get { + return ResourceManager.GetString("Current_View", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Current view is too large. Search can take a long time. Do you want to continue?. + /// + internal static string Current_View_Large_Msg { + get { + return ResourceManager.GetString("Current_View_Large_Msg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Use the current view extents of the map as the search area.. + /// + internal static string Current_View_Tooltip { + get { + return ResourceManager.GetString("Current_View_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Clear Selection. + /// + internal static string Deselect_All { + get { + return ResourceManager.GetString("Deselect_All", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deselect all features. + /// + internal static string Deselect_All_Tooltip { + get { + return ResourceManager.GetString("Deselect_All_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Draw Box. + /// + internal static string Draw_Box { + get { + return ResourceManager.GetString("Draw_Box", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Draw a rectangle for your search area. + /// + internal static string Draw_Box_Tooltip { + get { + return ResourceManager.GetString("Draw_Box_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Draw Rectangle. + /// + internal static string Draw_Rectangle { + get { + return ResourceManager.GetString("Draw_Rectangle", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to End Date. + /// + internal static string End_Date { + get { + return ResourceManager.GetString("End_Date", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error. + /// + internal static string Error { + get { + return ResourceManager.GetString("Error", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Information. + /// + internal static string Information { + get { + return ResourceManager.GetString("Information", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Keyword. + /// + internal static string Keyword { + get { + return ResourceManager.GetString("Keyword", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show Keyword Ontology Tree. + /// + internal static string Keyword_Tooltip { + get { + return ResourceManager.GetString("Keyword_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Pan. + /// + internal static string Pan { + get { + return ResourceManager.GetString("Pan", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Run Search. + /// + internal static string Run_Search { + get { + return ResourceManager.GetString("Run_Search", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Run Search based on selected criteria. + /// + internal static string Run_Search_Tooltip { + get { + return ResourceManager.GetString("Run_Search_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search. + /// + internal static string Search { + get { + return ResourceManager.GetString("Search", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select by Attribute. + /// + internal static string Select_By_Attribute { + get { + return ResourceManager.GetString("Select_By_Attribute", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select Data Sources. + /// + internal static string Select_Data_Sources { + get { + return ResourceManager.GetString("Select_Data_Sources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select data sources (All web services selected). + /// + internal static string Select_Data_Sources_Tooltip { + get { + return ResourceManager.GetString("Select_Data_Sources_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select Dates. + /// + internal static string Select_Dates { + get { + return ResourceManager.GetString("Select_Dates", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select Features. + /// + internal static string Select_Features { + get { + return ResourceManager.GetString("Select_Features", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Click in the map to select features for searching. + /// + internal static string Select_Features_Tooltip { + get { + return ResourceManager.GetString("Select_Features_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select Polygons. + /// + internal static string Select_Polygons { + get { + return ResourceManager.GetString("Select_Polygons", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select Region. + /// + internal static string Select_Polygons_Tooltip { + get { + return ResourceManager.GetString("Select_Polygons_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Start Date. + /// + internal static string Start_Date { + get { + return ResourceManager.GetString("Start_Date", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Start Date validation. + /// + internal static string Start_Date_Validation { + get { + return ResourceManager.GetString("Start_Date_Validation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to End Date must be greater than Start Date.. + /// + internal static string Start_Date_Validation_Msg { + get { + return ResourceManager.GetString("Start_Date_Validation_Msg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Time Range. + /// + internal static string Time_Range { + get { + return ResourceManager.GetString("Time_Range", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to End. + /// + internal static string TimeRange_End { + get { + return ResourceManager.GetString("TimeRange_End", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Start. + /// + internal static string TimeRange_Start { + get { + return ResourceManager.GetString("TimeRange_Start", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Type-in a Keyword. + /// + internal static string Type_In_Keyword { + get { + return ResourceManager.GetString("Type_In_Keyword", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to In. + /// + internal static string Zoom_In { + get { + return ResourceManager.GetString("Zoom_In", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom In. + /// + internal static string Zoom_In_Tooltip { + get { + return ResourceManager.GetString("Zoom_In_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Out. + /// + internal static string Zoom_Out { + get { + return ResourceManager.GetString("Zoom_Out", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom Out. + /// + internal static string Zoom_Out_Tooltip { + get { + return ResourceManager.GetString("Zoom_Out_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom to Selection. + /// + internal static string Zoom_Selected { + get { + return ResourceManager.GetString("Zoom_Selected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom to selected features. + /// + internal static string Zoom_Selected_Tooltip { + get { + return ResourceManager.GetString("Zoom_Selected_Tooltip", resourceCulture); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/MessageStrings.resx b/Source/Plugins/HydroDesktop.Plugins.Search/MessageStrings.resx new file mode 100644 index 00000000..3cb64eeb --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/MessageStrings.resx @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Select Multiple Keywords + + + Add Sites Layer + + + Search Area + + + Continue search + + + Controls + + + Current View + + + Current view is too large. Search can take a long time. Do you want to continue? + + + Use the current view extents of the map as the search area. + + + Clear Selection + + + Deselect all features + + + Draw Box + + + Draw a rectangle for your search area + + + Draw Rectangle + + + End Date + + + Error + + + Information + + + Keyword + + + Show Keyword Ontology Tree + + + Pan + + + Run Search + + + Run Search based on selected criteria + + + Search + + + Select by Attribute + + + Select Data Sources + + + Select data sources (All web services selected) + + + Select Dates + + + Select Features + + + Click in the map to select features for searching + + + Select Polygons + + + Select Region + + + Start Date + + + Start Date validation + + + End Date must be greater than Start Date. + + + End + + + Start + + + Time Range + + + Type-in a Keyword + + + In + + + Zoom In + + + Out + + + Zoom Out + + + Zoom to Selection + + + Zoom to selected features + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..0b0d1240 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.Search")] +[assembly: AssemblyDescription("Search Extension for HydroDesktop")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CUAHSI")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.Search")] +[assembly: AssemblyCopyright("Copyright © CUAHSI 2011-2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a2be5789-cb84-403f-8498-9040ada5bc13")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Properties/Resources.Designer.cs new file mode 100644 index 00000000..7531239f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Properties/Resources.Designer.cs @@ -0,0 +1,342 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.Search.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.Search.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap current_view_16 { + get { + object obj = ResourceManager.GetObject("current_view_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap current_view_32 { + get { + object obj = ResourceManager.GetObject("current_view_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap data_sites { + get { + object obj = ResourceManager.GetObject("data_sites", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon data_sites1 { + get { + object obj = ResourceManager.GetObject("data_sites1", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap deselect_16x16 { + get { + object obj = ResourceManager.GetObject("deselect_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Draw_Box_16 { + get { + object obj = ResourceManager.GetObject("Draw_Box_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Draw_Box_32 { + get { + object obj = ResourceManager.GetObject("Draw_Box_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap hand_16x16 { + get { + object obj = ResourceManager.GetObject("hand_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap keyword_16 { + get { + object obj = ResourceManager.GetObject("keyword_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap keyword_32 { + get { + object obj = ResourceManager.GetObject("keyword_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon more_info { + get { + object obj = ResourceManager.GetObject("more_info", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap option_16 { + get { + object obj = ResourceManager.GetObject("option_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap option_32 { + get { + object obj = ResourceManager.GetObject("option_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to Search Rectangle. + /// + internal static string RectangleLayerName { + get { + return ResourceManager.GetString("RectangleLayerName", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap search_16 { + get { + object obj = ResourceManager.GetObject("search_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap search_32 { + get { + object obj = ResourceManager.GetObject("search_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap select_date_v1_16 { + get { + object obj = ResourceManager.GetObject("select_date_v1_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap select_date_v1_32 { + get { + object obj = ResourceManager.GetObject("select_date_v1_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap select_poly_16 { + get { + object obj = ResourceManager.GetObject("select_poly_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap select_poly_32 { + get { + object obj = ResourceManager.GetObject("select_poly_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap select_table_16 { + get { + object obj = ResourceManager.GetObject("select_table_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap select_table_32 { + get { + object obj = ResourceManager.GetObject("select_table_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap server_16 { + get { + object obj = ResourceManager.GetObject("server_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap server_32 { + get { + object obj = ResourceManager.GetObject("server_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon view_extents_16_16x16 { + get { + object obj = ResourceManager.GetObject("view_extents_16_16x16", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_in_16x16 { + get { + object obj = ResourceManager.GetObject("zoom_in_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_out_16x16 { + get { + object obj = ResourceManager.GetObject("zoom_out_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap zoom_selection_16x16 { + get { + object obj = ResourceManager.GetObject("zoom_selection_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.Search/Properties/Resources.resx new file mode 100644 index 00000000..37e2fcd7 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Properties/Resources.resx @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Search Rectangle + + + + ..\Resources\select_date_v1_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\select_date_v1_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Draw_Box_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Draw_Box_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\keyword_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\keyword_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\select_poly_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\select_poly_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\select_table_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\select_table_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\search_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\option_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\option_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\server_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\server_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\hand_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_in_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_out_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\deselect_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\zoom_selection_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\current_view_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\current_view_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\more_info.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\view_extents_16_16x16.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\data_sites.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\data_sites.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Properties/Settings.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Properties/Settings.Designer.cs new file mode 100644 index 00000000..16d17657 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Properties/Settings.Designer.cs @@ -0,0 +1,101 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.Search.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.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; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("HisCentral")] + public global::HydroDesktop.Plugins.Search.Settings.TypeOfCatalog TypeOfCatalog { + get { + return ((global::HydroDesktop.Plugins.Search.Settings.TypeOfCatalog)(this["TypeOfCatalog"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("WebServices.xml")] + public string WebServicesFileName { + get { + return ((string)(this["WebServicesFileName"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Resources\\Synonyms.xml")] + public string SynonymsFilename { + get { + return ((string)(this["SynonymsFilename"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Resources\\OntologyTree.xml")] + public string OntologyFilename { + get { + return ((string)(this["OntologyFilename"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("searchresult_{0}_{1}.shp")] + public string SearchResultNameMask { + get { + return ((string)(this["SearchResultNameMask"])); + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://hiscentral.cuahsi.org/webservices/hiscentral_1_1.asmx")] + public string HISCENTRAL_URL { + get { + return ((string)(this["HISCENTRAL_URL"])); + } + set { + this["HISCENTRAL_URL"] = value; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://hiscentral.cuahsi.org/webservices/hiscentral_1_1.asmx")] + public string HISCENTRAL_URL_1 { + get { + return ((string)(this["HISCENTRAL_URL_1"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://water.sdsc.edu/hiscentral/webservices/hiscentral.asmx")] + public string HISCENTRAL_URL_2 { + get { + return ((string)(this["HISCENTRAL_URL_2"])); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Properties/Settings.settings b/Source/Plugins/HydroDesktop.Plugins.Search/Properties/Settings.settings new file mode 100644 index 00000000..81b67bb1 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Properties/Settings.settings @@ -0,0 +1,30 @@ + + + + + + HisCentral + + + WebServices.xml + + + Resources\Synonyms.xml + + + Resources\OntologyTree.xml + + + searchresult_{0}_{1}.shp + + + http://hiscentral.cuahsi.org/webservices/hiscentral_1_1.asmx + + + http://hiscentral.cuahsi.org/webservices/hiscentral_1_1.asmx + + + http://water.sdsc.edu/hiscentral/webservices/hiscentral.asmx + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/Draw_Box_16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/Draw_Box_16.png new file mode 100644 index 00000000..eabde08f Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/Draw_Box_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/Draw_Box_32.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/Draw_Box_32.png new file mode 100644 index 00000000..3038cb2d Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/Draw_Box_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/OntologyTree.xml b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/OntologyTree.xml new file mode 100644 index 00000000..43438717 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/OntologyTree.xml @@ -0,0 +1,16591 @@ + + + Hydrosphere + 1 + + + Physical + 2 + + + Level + 3 + + + Level, ice + 4 + + + Ice thickness + 5 + + + + + Level, snow + 6 + + + Snow depth + 9 + + + + + Level, stream + 11 + + + Gage height, stream + 12 + + + Water depth, stream + 13 + + + Water depth, cross-sectional averaged + 14 + + + + + Level, lake + 15 + + + Gage height, lake + 16 + + + Wave height, lake + 17 + + + Water depth, lake + 5021 + + + + + Groundwater level + 19 + + + Level, ocean + 20 + + + Tide stage + 21 + + + Wave height, ocean + 22 + + + + + Unspecified + 5022 + + + + + Area + 23 + + + Area, ice + 24 + + + Ice cover + 25 + + + Ice cover, floating or solid + 127 + + + + + Area, atmosphere + 26 + + + Cloud cover + 27 + + + + + + + Velocity + 28 + + + Velocity, stream + 30 + + + Velocity, groundwater + 32 + + + Velocity, wind + 33 + + + Sustained wind speed + 34 + + + Wind gust + 35 + + + + + + + Density + 36 + + + Water, specific gravity + 38 + + + Density of water + 39 + + + Air, water vapor density + 5032 + + + + + Temperature + 40 + + + Temperature, snow + 45 + + + Temperature, soil + 47 + + + Temperature, air + 49 + + + Temperature, water + 51 + + + Temperature, intragravel water + 5026 + + + Temperature, 1 meter below water surface + 5027 + + + + + Pressure + 52 + + + Pressure, air + 53 + + + Vapor pressure + 54 + + + Atmospheric pressure + 55 + + + Barometric pressure + 56 + + + + + Pressure, water + 57 + + + Partial pressure, inert gases + 58 + + + Osmotic pressure + 59 + + + Partial pressure of dissolved gases + 60 + + + Wellhead pressure + 5030 + + + + + + + Flux + 61 + + + Flux, precipitation + 62 + + + Dry periods + 63 + + + Precipitation duration + 64 + + + Precipitation + 65 + + + + + Flux, wind + 66 + + + Wind direction + 67 + + + Wind gust direction + 68 + + + Wind run + 70 + + + + + Flux, evaporation + 71 + + + Evaporation, actual + 72 + + + Evaporation, potential + 73 + + + Evapotranspiration, actual + 74 + + + Evapotranspiration, potential + 75 + + + Transpiration + 5035 + + + + + Flux, discharge + 76 + + + Discharge, groundwaterflow + 77 + + + Discharge, stream + 78 + + + Discharge, in conduit + 80 + + + Storm water flow + 81 + + + Discharge, unspecified + 5023 + + + Discharge, well flow rate + 5031 + + + + + Flux, dissolved gas + 82 + + + Carbon dioxide flux + 83 + + + + + + + Volume + 84 + + + Volume, lake + 85 + + + Reservoir storage + 86 + + + + + + + Optical + 87 + + + Optical, water + 88 + + + Light attenuation + 89 + + + Light attenuation coefficient + 90 + + + Light attenuation, depth at 50% + 91 + + + Light attenuation, depth at 99% + 92 + + + + + Refractivity + 93 + + + Secchi depth + 94 + + + SUVA 254 + 95 + + + Water transparency, Secchi disc + 96 + + + + + + + Water + 97 + + + Water, suspended solids + 98 + + + Residue, total filterable (dried at 105 C) + 99 + + + Settleable solids + 100 + + + Solids, total + 101 + + + Solids, total suspended + 102 + + + Solids, volatile suspended + 103 + + + Solids, fixed suspended + 104 + + + Turbidity + 105 + + + Suspended sediment + 106 + + + Surface area, suspended sediment + 107 + + + + + Water, dissolved solids + 108 + + + Solids, total dissolved + 110 + + + + + Water, descriptive + 111 + + + Odor threshold number + 114 + + + Odor, atmospheric + 112 + + + Gas bubble severity + 113 + + + Trash, Debris, Floatables + 115 + + + Color + 116 + + + Severity + 117 + + + Severity, turbidity + 118 + + + Severity, detergent + 119 + + + Severity, floating debris + 120 + + + Severity, floating sludge + 121 + + + Severity, flow + 129 + + + + + + + + + Length + 122 + + + Stream width + 124 + + + Distance + 5028 + + + Visibility + 5033 + + + + + Water content + 130 + + + Water content, air + 131 + + + Humidity + 132 + + + Relative humidity + 133 + + + Wet bulb temperature + 134 + + + Dry bulb temperature + 135 + + + Dew point temperature + 136 + + + Vapor pressure deficit + 5034 + + + + + + + Water content, soil + 137 + + + Soil Moisture + 138 + + + + + Water content, snow + 5024 + + + Snow water equivalent + 10 + + + + + + + Energy + 139 + + + Energy, flux + 147 + + + Radiation, net longwave + 5013 + + + Radiation, reflected + 141 + + + Radiation, net + 142 + + + Radiation, incident + 143 + + + Radiation, downward + 144 + + + Radiation, total shortwave + 145 + + + Radiation, incoming PAR + 146 + + + Soil heat flux + 148 + + + Sensible heat flux + 149 + + + Latent heat flux + 150 + + + Radiation, outgoing PAR + 151 + + + Radiation, incoming longwave + 5009 + + + Radiation, incoming shortwave + 5010 + + + Radiation, incoming UV-A + 5011 + + + Radiation, incoming UV-B + 5012 + + + Radiation, net PAR + 5014 + + + Radiation, net shortwave + 5015 + + + Radiation, outgoing longwave + 5016 + + + Radiation, outgoing shortwave + 5017 + + + Sunshine duration + 5036 + + + + + + + + + Chemical + 41 + + + Organic + 42 + + + PCBs + 43 + + + Homolog Groups + 1001 + + + Mono_Chloro_PCB + 1002 + + + Biphenyl + 1003 + + + 2-Chlorobiphenyl + 1004 + + + 3-Chlorobiphenyl + 1005 + + + 4-Chlorobiphenyl + 1006 + + + + + Di_Chloro_PCB + 1007 + + + 2,2'-Dichlorobiphenyl + 1008 + + + 2,3-Dichlorobiphenyl + 1009 + + + 2,3'-Dichlorobiphenyl + 1010 + + + 2,4-Dichlorobiphenyl + 1011 + + + 2,4'-Dichlorobiphenyl + 1012 + + + 2,5-Dichlorobiphenyl + 1013 + + + 2,6-Dichlorobiphenyl + 1014 + + + 3,3'-Dichlorobiphenyl + 1015 + + + 3,4-Dichlorobiphenyl + 1016 + + + 3,4'-Dichlorobiphenyl + 1017 + + + 3,5-Dichlorobiphenyl + 1018 + + + 4,4'-Dichlorobiphenyl + 1019 + + + + + Tri_Chloro_PCB + 1020 + + + 2,3',5'-Trichlorobiphenyl + 1039 + + + 2,2',3-Trichlorobiphenyl + 1021 + + + 2,2',4-Trichlorobiphenyl + 1022 + + + 2,2',5-Trichlorobiphenyl + 1023 + + + 2,2',6-Trichlorobiphenyl + 1024 + + + 2,3,3'-Trichlorobiphenyl + 1025 + + + 2,3,4-Trichlorobiphenyl + 1026 + + + 2,3,4'-Trichlorobiphenyl + 1027 + + + 2,3,5-Trichlorobiphenyl + 1028 + + + 2,3,6-Trichlorobiphenyl + 1029 + + + 2,3',4-Trichlorobiphenyl + 1030 + + + 2,3',5-Trichlorobiphenyl + 1031 + + + 2,3',6-Trichlorobiphenyl + 1032 + + + 2,4,4'-Trichlorobiphenyl + 1033 + + + 2,4,5-Trichlorobiphenyl + 1034 + + + 2,4,6-Trichlorobiphenyl + 1035 + + + 2,4',5-Trichlorobiphenyl + 1036 + + + 2,4',6-Trichlorobiphenyl + 1037 + + + 2,3',4'-Trichlorobiphenyl + 1038 + + + 3,3',4-Trichlorobiphenyl + 1040 + + + 3,3',5-Trichlorobiphenyl + 1041 + + + 3,4,4'-Trichlorobiphenyl + 1042 + + + 3,4,5-Tricholobiphenyl + 1043 + + + 3,4',5-Trichlorobiphenyl + 1044 + + + + + Tetra_Chloro_PCB + 1045 + + + 2,2',3,3'-Tetrachlorobiphenyl + 1046 + + + 2,2',3,4-Tetrachlorobiphenyl + 1047 + + + 2,2',3,4'-Tetrachlorobiphenyl + 1048 + + + 2,2',3,5-Tetrachlorobiphenyl + 1049 + + + 2,2',3,5'-Tetrachlorobiphenyl + 1050 + + + 2,2',3,6-Tetrachlorobiphenyl + 1051 + + + 2,2',3,6'-Tetrachlorobiphenyl + 1052 + + + 2,2',4,4'-Tetrachlorobiphenyl + 1053 + + + 2,2',4,5-Tetrachlorobiphenyl + 1054 + + + 2,2',4,5'-Tetrachlorobiphenyl + 1055 + + + 2,2',4,6-Tetrachlorobiphenyl + 1056 + + + 2,2',4,6'-Tetrachlorobiphenyl + 1057 + + + 2,2',5,5'-Tetrachlorobiphenyl + 1058 + + + 2,2',5,6'-Tetrachlorobiphenyl + 1059 + + + 2,2',6,6'-Tetrachlorobiphenyl + 1060 + + + 2,3,3',4-Tetrachlorobiphenyl + 1061 + + + 2,3,3',4'-Tetrachlorobiphenyl + 1062 + + + 2,3,3',5-Tetrachlorobiphenyl + 1063 + + + 2,3,3',5'-Tetrachlorobiphenyl + 1064 + + + 2,3,3',6-Tetrachlorobiphenyl + 1065 + + + 2,3,4,4'-Tetrachlorobiphenyl + 1066 + + + 2,3,4,5-Tetrachlorobiphenyl + 1067 + + + 2,3,4,6-Tetrachlorobiphenyl + 1068 + + + 2,3,4',5-Tetrachlorobiphenyl + 1069 + + + 2,3,4',6-Tetrachlorobiphenyl + 1070 + + + 2,3,5,6-Tetrachlorobiphenyl + 1071 + + + 2,3',4,4'-Tetrachlorobiphenyl + 1072 + + + 2,3',4,5-Tetrachlorobiphenyl + 1073 + + + 2,3',4,5'-Tetrachlorobiphenyl + 1074 + + + 2,3',4,6-Tetrachlorobiphenyl + 1075 + + + 2,3',4',5-Tetrachlorobiphenyl + 1076 + + + 2,3',4',6-Tetrachlorobiphenyl + 1077 + + + 2,3',5,5'-Tetrachlorobiphenyl + 1078 + + + 2,3',5',6-Tetrachlorobiphenyl + 1079 + + + 2,4,4',5-Tetrachlorobiphenyl + 1080 + + + 2,4,4',6-Tetrachlorobiphenyl + 1081 + + + 2,3',4',5'-Tetrachlorobiphenyl + 1082 + + + 3,3',4,4'-Tetrachlorobiphenyl + 1083 + + + 3,3',4,5-Tetrachlorobiphenyl + 1084 + + + 3,3',4,5'-Tetrachlorobiphenyl + 1085 + + + 3,3',5,5'-Tetrachlorobiphenyl + 1086 + + + 3,4,4',5-Tetrachlorobiphenyl + 1087 + + + + + Penta_Chloro_PCB + 1088 + + + 2,2',3,5',6-Pentachlorobiphenyl + 1102 + + + 2,2',3,3',4-Pentachlorobiphenyl + 1089 + + + 2,2',3,3',5-Pentachlorobiphenyl + 1090 + + + 2,2',3,3',6-Pentachlorobiphenyl + 1091 + + + 2,2',3,4,4'-Pentachlorobiphenyl + 1092 + + + 2,2',3,4,5-Pentachlorobiphenyl + 1093 + + + 2,2',3,4,5'-Pentachlorobiphenyl + 1094 + + + 2,2',3,4,6-Pentachlorobiphenyl + 1095 + + + 2,2',3,4,6'-Pentachlorobiphenyl + 1096 + + + 2,2',3,4',5-Pentachlorobiphenyl + 1097 + + + 2,2',3,4',6-Pentachlorobiphenyl + 1098 + + + 2,2',3,5,5'-Pentachlorobiphenyl + 1099 + + + 2,2',3,5,6-Pentachlorobiphenyl + 1100 + + + 2,2',3,5,6'-Pentachlorobiphenyl + 1101 + + + 2,2',3,6,6'-Pentachlorobiphenyl + 1103 + + + 2,2',3,4',5'-Pentachlorobiphenyl + 1104 + + + 2,2',3,4',6'-Pentachlorobiphenyl + 1105 + + + 2,2',4,4',5-Pentachlorobiphenyl + 1106 + + + 2,2',4,4',6-Pentachlorobiphenyl + 1107 + + + 2,2',4,5,5'-Pentachlorobiphenyl + 1108 + + + 2,2',4,5,6'-Pentachlorobiphenyl + 1109 + + + 2,2',4,5',6-Pentachlorobiphenyl + 1110 + + + 2,2',4,6,6'-Pentachlorobiphenyl + 1111 + + + 2,3,3',4,4'-Pentachlorobiphenyl + 1112 + + + 2,3,3',4,5-Pentachlorobiphenyl + 1113 + + + 2,3,3',4',5-Pentachlorobiphenyl + 1114 + + + 2,3,3',4,5'-Pentachlorobiphenyl + 1115 + + + 2,3,3',4,6-Pentachlorobiphenyl + 1116 + + + 2,3,3',4',6-Pentachlorobiphenyl + 1117 + + + 2,3,3',5,5'-Pentachlorobiphenyl + 1118 + + + 2,3,3',5,6-Pentachlorobiphenyl + 1119 + + + 2,3,3',5',6-Pentachlorobiphenyl + 1120 + + + 2,3,4,4',5-Pentachlorobiphenyl + 1121 + + + 2,3,4,4',6-Pentachlorobiphenyl + 1122 + + + 2,3,4,5,6-Pentachlorobiphenyl + 1123 + + + 2,3,4',5,6-Pentachlorobiphenyl + 1124 + + + 2,3',4,4',5-Pentachlorobiphenyl + 1125 + + + 2,3',4,4',6-Pentachlorobiphenyl + 1126 + + + 2,3',4,5,5'-Pentachlorobiphenyl + 1127 + + + 2,3',4,5',6-Pentachlorobiphenyl + 1128 + + + 2,3,3',4',5'-Pentachlorobiphenyl + 1129 + + + 2,3',4,4',5'-Pentachlorobiphenyl + 1130 + + + 2,3',4',5,5'-Pentachlorobiphenyl + 1131 + + + 2,3',4',5',6-Pentachlorobiphenyl + 1132 + + + 3,3',4,4',5-Pentachlorobiphenyl + 1133 + + + 3,3',4,5,5'-Pentachlorobiphenyl + 1134 + + + + + Hexa_Chloro_PCB + 1135 + + + 2,2',3,4',5,5'-Hexachlorobiphenyl + 1154 + + + 2,2',3,3',4,4'-Hexachlorobiphenyl + 1136 + + + 2,2',3,3',4,5-Hexachlorobiphenyl + 1137 + + + 2,2',3,3',4,5'-Hexachlorobiphenyl + 1138 + + + 2,2',3,3',4,6-Hexachlorobiphenyl + 1139 + + + 2,2',3,3',4,6'-Hexachlorobiphenyl + 1140 + + + 2,2',3,3',5,5'-Hexachlorobiphenyl + 1141 + + + 2,2',3,3',5,6-Hexachlorobiphenyl + 1142 + + + 2,2',3,3',5,6'-Hexachlorobiphenyl + 1143 + + + 2,2',3,3',6,6'-Hexachlorobiphenyl + 1144 + + + 2,2',3,4,4',5-Hexachlorobiphenyl + 1145 + + + 2,2',3,4,4',5'-Hexachlorobiphenyl + 1146 + + + 2,2',3,4,4',6-Hexachlorobiphenyl + 1147 + + + 2,2',3,4,4',6'-Hexachlorobiphenyl + 1148 + + + 2,2',3,4,5,5'-Hexachlorobiphenyl + 1149 + + + 2,2',3,4,5,6-Hexachlorobiphenyl + 1150 + + + 2,2',3,4,5,6'-Hexachlorobiphenyl + 1151 + + + 2,2',3,4,5',6-Hexachlorobiphenyl + 1152 + + + 2,2',3,4,6,6'-Hexachlorobiphenyl + 1153 + + + 2,2',3,4',5,6-Hexachlorobiphenyl + 1155 + + + 2,2',3,4',5,6'-Hexachlorobiphenyl + 1156 + + + 2,2',3,4',5',6-Hexachlorobiphenyl + 1157 + + + 2,2',3,4',6,6'-Hexachlorobiphenyl + 1158 + + + 2,2',3,5,5',6-Hexachlorobiphenyl + 1159 + + + 2,2',3,5,6,6'-Hexachlorobiphenyl + 1160 + + + 2,2',4,4',5,5'-Hexachlorobiphenyl + 1161 + + + 2,2',4,4',5,6'-Hexachlorobiphenyl + 1162 + + + 2,2',4,4',6,6'-Hexachlorobiphenyl + 1163 + + + 2,3,3',4,4',5-Hexachlorobiphenyl + 1164 + + + 2,3,3',4,4',5'-Hexachlorobiphenyl + 1165 + + + 2,3,3',4,4',6-Hexachlorobiphenyl + 1166 + + + 2,3,3',4,5,5'-Hexachlorobiphenyl + 1167 + + + 2,3,3',4,5,6-Hexachlorobiphenyl + 1168 + + + 2,3,3',4,5',6-Hexachlorobiphenyl + 1169 + + + 2,3,3',4',5,5'-Hexachlorobiphenyl + 1170 + + + 2,3,3',4',5,6-Hexachlorobiphenyl + 1171 + + + 2,3,3',4',5',6-Hexachlorobiphenyl + 1172 + + + 2,3,3',5,5',6-Hexachlorobiphenyl + 1173 + + + 2,3,4,4',5,6-Hexachlorobiphenyl + 1174 + + + 2,3',4,4',5,5'-Hexachlorobiphenyl + 1175 + + + 2,3',4,4',5',6-Hexachlorobiphenyl + 1176 + + + 3,3',4,4',5,5'-Hexachlorobiphenyl + 1177 + + + + + Hepta_Chloro_PCB + 1178 + + + 2,2',3,3',4,4',5-Heptachlorobiphenyl + 1179 + + + 2,2',3,3',4,4',6-Heptachlorobiphenyl + 1180 + + + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + 1181 + + + 2,2',3,3',4,5,6-Heptachlorobiphenyl + 1182 + + + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + 1183 + + + 2,2',3,3',4,5',6-Heptachlorobiphenyl + 1184 + + + 2,2',3,3',4,6,6'-Heptachlorobiphenyl + 1185 + + + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + 1186 + + + 2,2',3,3',5,5',6-Heptachlorobiphenyl + 1187 + + + 2,2',3,3',5,6,6'-Heptachlorobiphenyl + 1188 + + + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + 1189 + + + 2,2',3,4,4',5,6-Heptachlorobiphenyl + 1190 + + + 2,2',3,4,4',5,6'-Heptachlorobiphenyl + 1191 + + + 2,2',3,4,4',5',6-Heptachlorobiphenyl + 1192 + + + 2,2',3,4,4',6,6'-Heptachlorobiphenyl + 1193 + + + 2,2',3,4,5,5',6-Heptachlorobiphenyl + 1194 + + + 2,2',3,4,5,6,6'-Heptachlorobiphenyl + 1195 + + + 2,2',3,4',5,5',6-Heptachlorobiphenyl + 1196 + + + 2,2',3,4',5,6,6'-Heptachlorobiphenyl + 1197 + + + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + 1198 + + + 2,3,3',4,4',5,6-Heptachlorobiphenyl + 1199 + + + 2,3,3',4,4',5',6-Heptachlorobiphenyl + 1200 + + + 2,3,3',4,5,5',6-Heptachlorobiphenyl + 1201 + + + 2,3,3',4',5,5',6-Heptachlorobiphenyl + 1202 + + + + + Octa_Chloro_PCB + 1203 + + + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + 1204 + + + 2,2',3,3',4,4',5,6-Octachlorobiphenyl + 1205 + + + 2,2',3,3',4,4',5,6'-Octachlorobiphenyl + 1206 + + + 2,2',3,3',4,4',6,6'-Octachlorobiphenyl + 1207 + + + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + 1208 + + + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + 1209 + + + 2,2',3,3',4,5,6,6'-Octachlorobiphenyl + 1210 + + + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + 1211 + + + 2,2',3,3',5,5',6,6'-Octachlorobiphenyl + 1212 + + + 2,2',3,4,4',5,5',6-Octachlorobiphenyl + 1213 + + + 2,2',3,4,4',5,6,6'-Octachlorobiphenyl + 1214 + + + 2,3,3',4,4',5,5',6-Octachlorobiphenyl + 1215 + + + + + Nona_Chloro_PCB + 1216 + + + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + 1217 + + + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + 1218 + + + 2,2',3,3',4,5,5',6,6'-Nonachlorobiphenyl + 1219 + + + + + Deca_Chloro_PCB + 1220 + + + Decachlorobiphenyl + 1221 + + + + + + + PCB_Mixtures + 1222 + + + Aroclor + 1223 + + + Aroclor 1016 + 1224 + + + Aroclor 1210 + 1225 + + + Aroclor 1221 + 1226 + + + Aroclor 1231 + 1227 + + + Aroclor 1232 + 1228 + + + Aroclor 1240 + 1229 + + + Aroclor 1242 + 1230 + + + Aroclor 1248 + 1231 + + + Aroclor 1250 + 1232 + + + Aroclor 1252 + 1233 + + + Aroclor 1254 + 1234 + + + Aroclor-1260 + 1235 + + + Aroclor-1262 + 1236 + + + Aroclor-1268 + 1237 + + + Aroclor (unspecified) + 1238 + + + + + Other PCB_Mixtures + 1239 + + + PCB-105/132/153 + 1240 + + + PCB-123/149 + 1241 + + + PCB-132/153 + 1242 + + + PCB-135/144 + 1243 + + + PCB-137/176 + 1244 + + + PCB-138/163 + 1245 + + + PCB-15/17 + 1246 + + + PCB-16/32 + 1247 + + + PCB-170/190 + 1248 + + + PCB-171/202 + 1249 + + + PCB-172/197 + 1250 + + + PCB-182/187 + 1251 + + + PCB-195/208 + 1252 + + + PCB-196/203 + 1253 + + + PCB-24/27 + 1254 + + + PCB-28/31 + 1255 + + + PCB-37/42 + 1256 + + + PCB-4/10 + 1257 + + + PCB-41/64/71 + 1258 + + + PCB-47/48 + 1259 + + + PCB-5/8 + 1260 + + + PCB-56/60 + 1261 + + + PCB-66/95 + 1262 + + + PCB-7/9 + 1263 + + + PCB-70/76 + 1264 + + + PCB-77/110 + 1265 + + + PCB-84/92 + 1266 + + + + + + + High-Toxicity TEF + 1267 + + + 3,3',4,4'-Tetrachlorobiphenyl + 1268 + + + 3,4,4',5-Tetrachlorobiphenyl + 1269 + + + 2,3,3',4,4'-Pentachlorobiphenyl + 1270 + + + 2,3,4,4',5-Pentachlorobiphenyl + 1271 + + + 2,3',4,4',5-Pentachlorobiphenyl + 1272 + + + 2,3',4,4',5'-Pentachlorobiphenyl + 1273 + + + 3,3',4,4',5-Pentachlorobiphenyl + 1274 + + + 2,3,3',4,4',5-Hexachlorobiphenyl + 1275 + + + 2,3,3',4,4',5'-Hexachlorobiphenyl + 1276 + + + 2,3',4,4',5,5'-Hexachlorobiphenyl + 1277 + + + 3,3',4,4',5,5'-Hexachlorobiphenyl + 1278 + + + 2,2',3,3',4,4',5-Heptachlorobiphenyl + 1279 + + + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + 1280 + + + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + 1281 + + + + + Total PCB + 1282 + + + + + Other organic chemical + 1283 + + + 1,3,5-Trimethylbenzene + 1329 + + + 3,3'-Dichlorobenzidine + 1391 + + + Benzaldehyde + 1439 + + + Benzyl benzoate + 1474 + + + Cholesterol + 1515 + + + Diethylstilbestrol + 1555 + + + Halocarbons, purgeable + 1602 + + + Methyl ethyl ketone + 1657 + + + N-Nitrosomorpholine + 1688 + + + Stearic acid + 1776 + + + Trichloroacetonitrile + 1811 + + + Acrolein + 1284 + + + Acrylonitrile + 1285 + + + Aldrin + 1286 + + + (+)-Panthenol + 1287 + + + .alpha.,.alpha.-Dimethylphenethylamine + 1288 + + + .alpha.-Methylstyrene + 1289 + + + .alpha.-Pinene + 1290 + + + .alpha.-Terpineol + 1291 + + + 1,1,1,2-Tetrachloroethane + 1292 + + + 1,1,1-Trichloro-2-propanone + 1293 + + + 1,1,1-Trichloroethane + 1294 + + + 1,1,2,2-Tetrachloroethane + 1295 + + + 1,1,2-Trichloroethane + 1296 + + + 1,1'-Biphenyl, 4,4'-dibromo-2,2',3,3',5,5',6,6'-octafluoro- + 1297 + + + 1,1-Dichloroethane + 1298 + + + 1,1-Dichloroethylene + 1299 + + + 1,1-Dichloropropanone + 1300 + + + 1,1-Dichloropropene + 1301 + + + 1,2,3,4,6,7,8,9-Octachlorodibenzofuran + 1302 + + + 1,2,3,4,6,7,8,9-Octachlorodibenzo-p-dioxin + 1303 + + + 1,2,3,4,6,7,8-Heptachlorodibenzofuran + 1304 + + + 1,2,3,4,6,7,8-Heptachlorodibenzo-p-dioxin + 1305 + + + 1,2,3,4,7,8,9-Heptachlorodibenzofuran + 1306 + + + 1,2,3,4,7,8-Hexachlorodibenzofuran + 1307 + + + 1,2,3,4,7,8-Hexachlorodibenzo-p-dioxin + 1308 + + + 1,2,3,4-Tetramethylbenzene + 1309 + + + 1,2,3,5-Tetramethylbenzene + 1310 + + + 1,2,3,6,7,8-Hexachlorodibenzofuran + 1311 + + + 1,2,3,6,7,8-Hexachlorodibenzo-p-dioxin + 1312 + + + 1,2,3,7,8,9-Hexachlorodibenzofuran + 1313 + + + 1,2,3,7,8,9-Hexachlorodibenzo-p-dioxin + 1314 + + + 1,2,3,7,8-Pentachlorodibenzofuran + 1315 + + + 1,2,3,7,8-Pentachlorodibenzo-p-dioxin + 1316 + + + 1,2,3-Trichlorobenzene + 1317 + + + 1,2,3-Trimethylbenzene + 1318 + + + 1,2,4,5-Tetrachlorobenzene + 1319 + + + 1,2,4,5-Tetramethylbenzene + 1320 + + + 1,2,4-Trichlorobenzene + 1321 + + + 1,2,4-Trimethylbenzene + 1322 + + + 1,2-Bis(2,4,6-tribromophenoxy)ethane + 1323 + + + 1,2-Dichloroethylene + 1324 + + + 1,2-Dichloropropene + 1325 + + + 1,2-Dimethylnaphthalene + 1326 + + + 1,2-Diphenylhydrazine + 1327 + + + 1,3,5-Trichlorobenzene + 1328 + + + 1,3,5-Trinitrobenzene + 1330 + + + 1,3-Dioxolo[4,5-g]quinoline-7-carboxylic acid, 5-ethyl-5,8-dihydro-8-oxo- + 1331 + + + 1,3-Isobenzofurandione, 4,5,6,7-tetrabromo- + 1332 + + + 1,3-Propanedione, 1-[4-(1,1-dimethylethyl)phenyl]-3-(4-methoxyphenyl)- + 1333 + + + 1,4-Dioxane + 1334 + + + 1,6-Dimethylnaphthalene + 1335 + + + 1-Bromo-2-chloroethane + 1336 + + + 1H-Benzimidazol-2-amine + 1337 + + + 1H-Benzotriazole, 5-methyl- + 1338 + + + 1-Hexadecen-3-ol, 3,7,11,15-tetramethyl- + 1339 + + + 1-Methylfluorene + 1340 + + + 1-Methylnaphthalene + 1341 + + + 1-Methylphenanthrene + 1342 + + + 1-Methylpyrene + 1343 + + + 1-Naphthalenamine + 1344 + + + 2-(Methylthio)benzothiazole + 1345 + + + 2,2'-Biquinoline + 1346 + + + 2,2-Dichloropropane + 1347 + + + 2,3,4,6,7,8-Hexachlorodibenzofuran + 1348 + + + 2,3,4,7,8-Pentachlorodibenzofuran + 1349 + + + 2,3,6-Trimethylnaphthalene + 1350 + + + 2,3,7,8-Tetrachlorodibenzofuran + 1351 + + + 2,3,7,8-Tetrachlorodibenzo-p-dioxin + 1352 + + + 2,3-Dichloropropene + 1353 + + + 2,4,6-Trimethylphenol + 1354 + + + 2,4-Dinitrophenol + 1355 + + + 2,4-Dinitrotoluene + 1356 + + + 2,4-Pyrimidinediamine, 5-[(3,4,5-trimethoxyphenyl)methyl]- + 1357 + + + 2,6-Dichlorobenzamide + 1358 + + + 2,6-Dichlorophenol + 1359 + + + 2,6-Dimethylnaphthalene + 1360 + + + 2,6-Dinitrotoluene + 1361 + + + 2,6-Di-tert-butyl-p-cresol + 1362 + + + 2,6-Di-tert-butylphenol + 1363 + + + 2-Acetylaminofluorene + 1364 + + + 2-Amino-4,6-dinitrotoluene + 1365 + + + 2-Amino-9H-pyrido[2,3-b]indole + 1366 + + + 2-Butene, 1,4-dichloro-, (2Z)- + 1367 + + + 2-Butene, 2-methyl- + 1368 + + + 2-Chloroethyl vinyl ether + 1369 + + + 2-Chloronaphthalene + 1370 + + + 2-Ethylhexyl p-methoxycinnamate + 1371 + + + 2-Ethylnaphthalene + 1372 + + + 2H-1,2,4-Benzothiadiazine-7-sulfonamide, 6-chloro-3,4-dihydro-, 1,1-dioxide + 1373 + + + 2H-1-Benzopyran-6-ol, 3,4-dihydro-2,5,7,8-tetramethyl-2-[(4R,8R)-4,8,12-trimethyltridecyl]-, (2R)- + 1374 + + + 2-Hexadecen-1-ol, 3,7,11,15-tetramethyl-, (2E,7R,11R)- + 1375 + + + 2-Hexanone + 1376 + + + 2-Hydroxy-4-methoxybenzophenone + 1377 + + + 2-Hydroxy-4-octyloxybenzophenone + 1378 + + + 2-Methyl-2-butanol + 1379 + + + 2-Methyl-5-nitroaniline + 1380 + + + 2-Methylanthracene + 1381 + + + 2-Methylbutane + 1382 + + + 2-Methylnaphthalene + 1383 + + + 2-Methylpyridine + 1384 + + + 2-Naphthacenecarboxamide, 7-chloro-4-(dimethylamino)-1,4,4a,5,5a,6,11,12a-octahydro-3,6,10,12,12a-pentahydroxy-6-methyl-1,11-dioxo-, (4S,4aS,5aS,6S,12aS)- + 1385 + + + 2-Naphthalenamine + 1386 + + + 2-Nitropropane + 1387 + + + 2-Propanol, 1,3-dichloro-, phosphate (3:1) + 1388 + + + 2-Pyrrolidinone, 1-methyl-5-(3-pyridinyl)-, (5S)- + 1389 + + + 3,3,5-Trimethylcyclohexyl salicylate + 1390 + + + 3,3'-Dimethylbenzidine + 1392 + + + 3,4-Dichlorophenyl isocyanate + 1393 + + + 3,5-Dimethylphenol + 1394 + + + 3,5-Dinitroaniline + 1395 + + + 3,7-Dimethyl-1,6-octadien-3-ol + 1396 + + + 3-Buten-2-one, 3-methyl-4-(2,6,6-trimethyl-2-cyclohexen-1-yl)- + 1397 + + + 3-Methylcholanthrene + 1398 + + + 3-Methylindole + 1399 + + + 3-Pyrrolidineacetic acid, 2-carboxy-4-[(1Z,3E,5R)-5-carboxy-1-methyl-1,3-hexadienyl]-, (2S,3S,4S)- + 1400 + + + 3-Quinolinecarboxylic acid, 7-(3-amino-1-pyrrolidinyl)-8-chloro-1-cyclopropyl-6-fluoro-1,4-dihydro-4-oxo- + 1401 + + + 4,4'-Isopropylidenediphenol + 1402 + + + 4-Amino-2,6-dinitrotoluene + 1403 + + + 4-Aminobiphenyl + 1404 + + + 4-Dimethylaminoazobenzene + 1405 + + + 4H-Cyclopenta[def]phenanthrene + 1406 + + + 4-Nitroquinoline 1-oxide + 1407 + + + 4-Thia-1-azabicyclo[3.2.0]heptane-2-carboxylic acid, 3,3-dimethyl-7-oxo-6-[(phenoxyacetyl)amino]-, (2S,5R,6R)- + 1408 + + + 6-Methyl-2-(1-methylethyl)-4(1H)-pyrimidinone + 1409 + + + 7,12-Dimethylbenz[a]anthracene + 1410 + + + 9,10-Secocholesta-5,7,10(19)-trien-3-ol, (3.beta.,5Z,7E)- + 1411 + + + Acenaphthene + 1412 + + + Acenaphthylene + 1413 + + + Acetaldehyde + 1414 + + + Acetamide, 2,2-dichloro-N-[(1R,2R)-2-hydroxy-1-(hydroxymethyl)-2-(4-nitrophenyl)ethyl]- + 1415 + + + Acetaminophen + 1416 + + + Acetic acid + 1417 + + + Acetic acid, (4-nonylphenoxy)- + 1418 + + + Acetone + 1419 + + + Acetonitrile + 1420 + + + Acetonitrile, chloro- + 1421 + + + Acetophenone + 1422 + + + Acridine + 1423 + + + Acrylamide + 1425 + + + Adenosine 5'-(tetrahydrogen triphosphate) + 1426 + + + Alprazolam + 1427 + + + Aluminum, Organic + Inorganic Monomeric (reactive aluminum) + 1428 + + + Aluminum, Organic Monomeric (reactive aluminum) + 1429 + + + Androst-4-en-3-one, 17-hydroxy-, (17.beta.)- + 1430 + + + Androstan-17-one, 3-hydroxy-, (3.alpha.,5.alpha.)- + 1431 + + + Aniline + 1432 + + + Anthracene + 1433 + + + Anthraquinone + 1434 + + + Arsonic acid, (4-hydroxy-3-nitrophenyl)- + 1435 + + + Aspirin + 1436 + + + Benz[a]anthracene + 1437 + + + Benz[a]anthracene mixt. with chrysene + 1438 + + + Benzenamine, 4-(4-chlorophenoxy)- + 1440 + + + Benzene + 1441 + + + Benzene, 1,1'-(1E)-1,2-ethenediylbis- + 1442 + + + Benzene, 1,1'-oxybis[2,4,5-tribromo- + 1443 + + + Benzene, 1,1'-oxybis[2,4-dibromo- + 1444 + + + Benzene, 1,2,3-tribromo-4-(2,4,5-tribromophenoxy)- + 1445 + + + Benzene, 1,2,3-tribromo-4-(2,4-dibromophenoxy)- + 1446 + + + Benzene, 1,2,4-tribromo-5-(2,4-dibromophenoxy)- + 1447 + + + Benzene, 1,2-dibromo-4-(2,4-dibromophenoxy)- + 1448 + + + Benzene, 1,3(and 1,4)-dimethyl- Chemical m(and p)-xylene + 1449 + + + Benzene, 1,3,5-tribromo-2-(2,4,5-tribromophenoxy)- + 1450 + + + Benzene, 1,3,5-tribromo-2-(2,4-dibromophenoxy)- + 1451 + + + Benzene, 2,4-dibromo-1-(4-bromophenoxy)- + 1452 + + + Benzene, pentabromomethyl- + 1453 + + + Benzeneacetic acid, .alpha.-methyl-4-(2-methylpropyl)- + 1454 + + + Benzeneacetic acid, 3-benzoyl-.alpha.-methyl- + 1455 + + + Benzenesulfonamide, 4-amino-N-(2,6-dimethoxy-4-pyrimidinyl)- + 1456 + + + Benzenesulfonamide, 4-amino-N-(4,6-dimethyl-2-pyrimidinyl)- + 1457 + + + Benzenesulfonamide, 4-amino-N-(4-methyl-2-pyrimidinyl)- + 1458 + + + Benzenesulfonamide, 4-amino-N-2-pyrimidinyl- + 1459 + + + Benzenesulfonic acid, decyl-, sodium salt, mixt. with sodium dodecylbenzenesulfonate, sodium tridecylbenzenesulfonate and sodium undecylbenzenesulfonate + 1460 + + + Benzidine + 1461 + + + Benzo(b)fluoranthene + 1462 + + + Benzo[a]pyrene + 1463 + + + Benzo[c]cinnoline + 1464 + + + Benzo[e]pyrene + 1465 + + + Benzo[ghi]perylene + 1466 + + + Benzo[k]fluoranthene + 1467 + + + Benzoic acid + 1468 + + + Benzoic acid, 4-hydroxy-, methyl ester + 1469 + + + Benzoic acid, 4-hydroxy-, propyl ester + 1470 + + + Benzoic acid, 5-(aminosulfonyl)-4-chloro-2-((2-furanylmethyl)amino)- + 1471 + + + Benzophenone + 1472 + + + Benzyl alcohol + 1473 + + + Benzyl chloride + 1475 + + + Benzyl cinnamate + 1476 + + + Benzyl salicylate + 1477 + + + Biphenyl + 1478 + + + Bis(2-chloroethoxy)methane + 1479 + + + Bis(2-chloroethyl) ether + 1480 + + + Bis(2-chloroisopropyl) ether + 1481 + + + Bis(chloromethyl) ether + 1482 + + + Bromoacetic acid + 1483 + + + Bromobenzene + 1484 + + + Bromochloroacetic acid + 1485 + + + Bromochloroacetonitrile + 1486 + + + Butane + 1487 + + + Butane, 1-chloro- + 1488 + + + Butane, 2,3-dimethyl- + 1489 + + + Butyl benzyl phthalate + 1490 + + + Butyric acid + 1491 + + + C.I. Vat Blue 1 + 1492 + + + Caffeine + 1493 + + + Camphene + 1494 + + + Caprolactam + 1495 + + + Carbon tetrachloride + 1496 + + + Carisoprodol + 1497 + + + CFC-11 + 1498 + + + CFC-113 + 1499 + + + CFC-12 + 1500 + + + Chloral + 1501 + + + Chloral hydrate + 1502 + + + Chlorinated naphthalenes + 1503 + + + Chloroacetaldehyde + 1504 + + + Chloroacetic acid + 1505 + + + Chlorobenzene + 1506 + + + Chlorodibromomethane + 1507 + + + Chloroethane + 1508 + + + Chloroform + 1509 + + + Chloromethane + 1510 + + + Chloromethyl methyl ether + 1511 + + + Chloroprene + 1512 + + + Chlorpheniramine + 1513 + + + Cholestan-3-ol, (3.beta.,5.beta.)- + 1514 + + + Chrysene + 1516 + + + Cinnamaldehyde + 1517 + + + cis-1,2-Dichloroethylene + 1518 + + + Citral + 1519 + + + Citronellol + 1520 + + + Coal + 1521 + + + Coronene + 1522 + + + Coumaran + 1523 + + + Coumarin + 1524 + + + Cresol + 1525 + + + Cumene + 1526 + + + Cyclo[L-arginyl-(2S,3S,4E,6E,8S,9S)-3-amino-9-methoxy-2,6,8-trimethyl-10-phenyl-4,6-decadienoyl-D-.gamma.-glutamyl-(2Z)-2-(methylamino)-2-butenoyl-(3S)-3-methyl-D-.beta.-aspartyl] + 1527 + + + Cyclododecane + 1528 + + + Cyclododecane, hexabromo- + 1529 + + + Cyclohexane + 1530 + + + Cyclohexene, 1-methyl-4-(1-methylethenyl)-, (4R)- + 1531 + + + Cyclonite + 1532 + + + Cyclopenta[g]-2-benzopyran, 1,3,4,6,7,8-hexahydro-4,6,6,7,8,8-hexamethyl- + 1533 + + + Cyclotetramethylenetetranitramine + 1534 + + + D-.alpha.-Tocopheryl acetate + 1535 + + + Decabromodiphenyl oxide + 1536 + + + Decane + 1537 + + + D-erythro-.alpha.-D-galacto-Octopyranoside, methyl 6,8-dideoxy-6-[[[(2S,4R)-1-methyl-4-propyl-2-pyrrolidinyl]carbonyl]amino]-1-thio- + 1538 + + + Di(2-ethylhexyl) adipate + 1539 + + + Di(2-ethylhexyl) phthalate + 1540 + + + Diazepam + 1541 + + + Dibenz[a,h]anthracene + 1542 + + + Dibenzofuran + 1543 + + + Dibenzothiophene + 1544 + + + Dibromoacetic acid + 1545 + + + Dibromoacetonitrile + 1546 + + + Dibromomethane + 1547 + + + Dibutyl phthalate + 1548 + + + Dichloroacetic acid + 1549 + + + Dichloroacetonitrile + 1550 + + + Dichlorobromomethane + 1551 + + + Diesel range organics + 1552 + + + Diethyl phthalate + 1553 + + + Diethylene glycol monobutyl ether acetate + 1554 + + + Digoxin + 1556 + + + Dimethoxymethane + 1557 + + + Dimethyl dioctadecyl ammonium chloride + 1558 + + + Dimethyl ether + 1559 + + + Dimethyl phthalate + 1560 + + + Di-n-octyl phthalate + 1561 + + + Diphenylsulfone + 1562 + + + Docosane + 1563 + + + Dodecane + 1564 + + + Doxycycline + 1565 + + + Eicosane + 1566 + + + Erythromycin + 1567 + + + Estra-1,3,5,7,9-pentaen-17-one, 3-hydroxy- + 1568 + + + Estradiol + 1569 + + + Estrone + 1570 + + + Ethanamine, 2-(diphenylmethoxy)-N,N-dimethyl- + 1571 + + + Ethane + 1572 + + + Ethanol + 1573 + + + Ethanol, 2-(4-nonylphenoxy)- + 1574 + + + Ethanol, 2,2'-thiobis- + 1575 + + + Ethanol, 2-[2-(4-nonylphenoxy)ethoxy]- + 1576 + + + Ethanol, 2-[2-[2-[2-(4-nonylphenoxy)ethoxy]ethoxy]ethoxy]- + 1577 + + + Ethanone, 1-(1,2,3,4,5,6,7,8-octahydro-2,3,8,8-tetramethyl-2-naphthalenyl)- + 1578 + + + Ethanone, 1-(2,3-dihydro-1,1,2,3,3,6-hexamethyl-1H-inden-5-yl)- + 1579 + + + Ethanone, 1-[(3R,3aR,7R,8aS)-2,3,4,7,8,8a-hexahydro-3,6,8,8-tetramethyl-1H-3a,7-methanoazulen-5-yl]- + 1580 + + + Ethanone, 1-[6-(1,1-dimethylethyl)-2,3-dihydro-1,1-dimethyl-1H-inden-4-yl]- + 1581 + + + Ethinyl estradiol + 1582 + + + Ethyl acetate + 1583 + + + Ethyl ether + 1584 + + + Ethyl formate + 1585 + + + Ethyl methacrylate + 1586 + + + Ethyl methanesulfonate + 1587 + + + Ethyl nicotinate + 1588 + + + Ethyl tert-butyl ether + 1589 + + + Ethylbenzene + 1590 + + + Ethylene + 1591 + + + Ethylene glycol + 1592 + + + Eugenol + 1593 + + + Farnesol + 1594 + + + Fluoranthene + 1595 + + + Fluorene + 1596 + + + Formaldehyde + 1597 + + + Formic acid + 1598 + + + Formic acid, 1,1-dimethylethyl ester + 1599 + + + Gasoline range organics + 1600 + + + Haloacetic acids + 1601 + + + Halogenated organics + 1603 + + + Halon 1011 + 1604 + + + HCFC-123 + 1605 + + + HCFC-123a + 1606 + + + HCFC-21 + 1607 + + + HCFC-22 + 1608 + + + Heptachlorodibenzofuran + 1609 + + + Heptachlorodibenzo-p-dioxin + 1610 + + + Heptadecanoic acid + 1611 + + + Heptanal, 2-(phenylmethylene)- + 1612 + + + Hexachlorobutadiene + 1613 + + + Hexachlorocyclopentadiene + 1614 + + + Hexachlorodibenzofuran + 1615 + + + Hexachloroethane + 1616 + + + Hexachloropropene + 1617 + + + Hexacosane + 1618 + + + Hexadecane + 1619 + + + Hexadecane, 2,6,10,14-tetramethyl- + 1620 + + + Hexane + 1621 + + + Hexane, 1-chloro- + 1622 + + + Hexatriacontane + 1623 + + + Hydrocarbons, nitrated + 1624 + + + Hydrocarbons, petroleum + 1625 + + + Hydrocarbons, volatile + 1626 + + + Hydrophilic fraction of organic carbon + 1627 + + + Hydrophobic fraction of organic carbon + 1628 + + + Indeno[1,2,3-cd]pyrene + 1629 + + + Indole + 1630 + + + Isoborneol + 1631 + + + Isobutanol + 1632 + + + Isobutene + 1633 + + + Isoeugenol + 1634 + + + Isophorone + 1635 + + + Isopropyl ether + 1636 + + + Isopropyl myristate + 1637 + + + Isoquinoline + 1638 + + + Isosafrole + 1639 + + + Lactic acid + 1640 + + + Lanolin + 1641 + + + Lipids + 1642 + + + L-Tyrosine, O-(4-hydroxy-3,5-diiodophenyl)-3,5-diiodo- + 1643 + + + m-Chlorotoluene + 1644 + + + m-Cresol + 1645 + + + m-Dichlorobenzene + 1646 + + + m-Dinitrobenzene + 1647 + + + Mestranol + 1648 + + + Methacrylonitrile + 1649 + + + Methane + 1650 + + + Methanol + 1651 + + + Methanone, (2,4-dihydroxyphenyl)phenyl- + 1652 + + + Methapyrilene + 1653 + + + Methocarbamol + 1654 + + + Methyl acetate + 1655 + + + Methyl acrylate + 1656 + + + Methyl formate + 1658 + + + Methyl isobutyl ketone + 1659 + + + Methyl methacrylate + 1660 + + + Methyl methanesulfonate + 1661 + + + Methyl salicylate + 1662 + + + Methyl tert-butyl ether + 1663 + + + Methylcyclohexane + 1664 + + + Methylene chloride + 1665 + + + Methylmercury + 1666 + + + m-Ethylphenol + 1667 + + + Microcystin LR + 1668 + + + m-Nitroaniline + 1669 + + + m-Nitrophenol + 1670 + + + m-Nitrotoluene + 1671 + + + Morphinan-6-ol, 7,8-didehydro-4,5-epoxy-3-methoxy-17-methyl-, (5.alpha.,6.alpha.)- + 1672 + + + Mustard gas + 1673 + + + m-Xylene + 1674 + + + Naphthalene + 1675 + + + n-Butylbenzene + 1676 + + + Neutrals + 1677 + + + Nicotine + 1678 + + + Nitrobenzene + 1679 + + + Nitroglycerin + 1680 + + + Nitromethane + 1681 + + + N-Nitrosodiethylamine + 1682 + + + N-Nitrosodimethylamine + 1683 + + + N-Nitrosodi-n-butylamine + 1684 + + + N-Nitrosodi-n-propylamine + 1685 + + + N-Nitrosodiphenylamine + 1686 + + + N-Nitrosomethylethylamine + 1687 + + + N-Nitrosopiperidine + 1689 + + + N-Nitrosopyrrolidine + 1690 + + + Nonadecane + 1691 + + + Nonane + 1692 + + + Norethisterone + 1693 + + + n-Propylbenzene + 1694 + + + o-Benzyl-p-chlorophenol + 1695 + + + o-Chloroaniline + 1696 + + + o-Chlorophenol + 1697 + + + o-Chlorotoluene + 1698 + + + Octachlorostyrene + 1699 + + + Octacosane + 1700 + + + Octadecane + 1701 + + + Octane + 1702 + + + Octanoic acid, pentadecafluoro- + 1703 + + + o-Dichlorobenzene + 1704 + + + o-Ethyltoluene + 1705 + + + Oil and grease -- CWA 304B + 1706 + + + o-Nitroaniline + 1707 + + + o-Nitrophenol + 1708 + + + o-Nitrotoluene + 1709 + + + Organic acids + 1710 + + + Organic compounds + 1711 + + + Organic halides, total -- SWDA NPDWR + 1712 + + + o-Toluidine + 1713 + + + o-Xylene + 1714 + + + Oxytetracycline + 1715 + + + p-(1,1,3,3-Tetramethylbutyl)phenol + 1716 + + + Palmitic acid + 1717 + + + p-Bromophenyl phenyl ether + 1718 + + + p-Chlorophenyl phenyl ether + 1719 + + + p-Chlorotoluene + 1720 + + + p-Cymene + 1721 + + + p-Diethylbenzene + 1722 + + + Pentachlorodibenzofuran + 1723 + + + Pentachlorodibenzo-p-dioxin + 1724 + + + Pentachloroethane + 1725 + + + Pentadecane, 2,6,10,14-tetramethyl- + 1726 + + + Pentaerythritol tetranitrate + 1727 + + + Pentane + 1728 + + + Pentane, 2,3,3-trimethyl- + 1729 + + + Pentane, 2,3,4-trimethyl- + 1730 + + + Pentane, 2,4-dimethyl- + 1731 + + + Pentane, 2-methyl- + 1732 + + + Pentane, 3-methyl- + 1733 + + + Perylene + 1734 + + + Phenacetin + 1735 + + + Phenanthrene + 1736 + + + Phenanthridine + 1737 + + + Phenol + 1738 + + + Phenol, 2-(1,1-dimethylethyl)-4-methoxy- + 1739 + + + Phenol, 2,3,5,6-tetramethyl- + 1740 + + + Phenol, 2,4-bis(1,1-dimethylpropyl)- + 1741 + + + Phenol, 2-amino-5-chloro- + 1742 + + + Phenol, 4-(1-methyl-1-phenylethyl)- + 1743 + + + Phenol, 5-amino-2-chloro- + 1744 + + + Phenols + 1745 + + + Phenols and phenolic compounds + 1746 + + + Phosphonic acid, methyl-, dimethyl ester + 1747 + + + Phthalate esters + 1748 + + + Picric acid + 1749 + + + Plumbane, diethyldimethyl- + 1750 + + + Plumbane, ethyltrimethyl- + 1751 + + + Plumbane, triethylmethyl- + 1752 + + + p-Nitroaniline + 1753 + + + p-Nitrotoluene + 1754 + + + p-Octylphenol + 1755 + + + Progesterone + 1756 + + + Propane + 1757 + + + Propane, 2-bromo-1-chloro- + 1758 + + + Propanenitrile + 1759 + + + Propanoic acid, 2-oxo- + 1760 + + + Propylene glycol + 1761 + + + p-Xylene + 1762 + + + Pyrene + 1763 + + + Pyridine + 1764 + + + Quinoline + 1765 + + + Retinoic acid + 1766 + + + Retinol + 1767 + + + Safrole + 1768 + + + sec-Butylbenzene + 1769 + + + Stannane, bis(acetyloxy)dibutyl- + 1770 + + + Stannane, dibutyl- + 1771 + + + Stannane, tetrabutyl- + 1772 + + + Stannane, tetramethyl- + 1773 + + + Stannane, tetraphenyl- + 1774 + + + Stannanetriylium, butyl- + 1775 + + + Stigmast-5-en-3-ol, (3.beta.)- + 1777 + + + Stigmastan-3-ol, (3.beta.)- + 1778 + + + Styrene + 1779 + + + Sulfamethoxazole + 1780 + + + Sulfathiazole + 1781 + + + Surfactants -- CWA 304B + 1782 + + + Tannin and Lignin + 1783 + + + tert-Amyl methyl ether + 1784 + + + tert-Butanol + 1785 + + + tert-Butyl acetate + 1786 + + + tert-Butylbenzene + 1787 + + + Tetrabromobisphenol A + 1788 + + + Tetrachlorodibenzofuran + 1789 + + + Tetrachlorodibenzo-p-dioxin + 1790 + + + Tetrachloroethylene + 1791 + + + Tetrachlorophenol + 1792 + + + Tetracosane + 1793 + + + Tetradecane + 1794 + + + Tetraethyllead + 1795 + + + Tetrahydrofuran + 1796 + + + Tetramethyllead + 1797 + + + Tetryl + 1798 + + + Theophylline + 1799 + + + Toluene + 1800 + + + Total toxic organics -- CWA 304B + 1801 + + + trans-1,2-Dichloroethylene + 1802 + + + trans-1,4-Dichloro-2-butene + 1803 + + + trans-Geraniol + 1804 + + + Transphilic fraction of organic carbon + 1805 + + + Triacontane + 1806 + + + Tribromomethane + 1807 + + + Tributyl phosphate + 1808 + + + Tributyltin acetate + 1809 + + + Trichloroacetic acid + 1810 + + + Trichlorobenzene + 1812 + + + Trichloroethylene + 1813 + + + Triclocarban + 1814 + + + Triclosan + 1815 + + + Triethyl citrate + 1816 + + + Trinitrotoluene + 1817 + + + Triphenyl phosphate + 1818 + + + Tris(2,3-dibromopropyl) phosphate + 1819 + + + Tris(2-butoxyethyl) phosphate + 1820 + + + Tris(2-chloroethyl) phosphate + 1821 + + + Undecanoic acid + 1822 + + + Valproic acid + 1823 + + + Vanillin + 1824 + + + Vinyl acetate + 1825 + + + Vinyl bromide + 1826 + + + Vinyl chloride + 1827 + + + Vitamin B12 + 1828 + + + Vitamin D + 1829 + + + Warfarin + 1830 + + + Xanthylium, 9-(2,4-dicarboxyphenyl)-3,6-bis(diethylamino)-, chloride, disodium salt + 1831 + + + Xylene + 1832 + + + + + Pesticide + 1833 + + + Benzene, 1-chloro-4-(methylsulfonyl)- + 1915 + + + Chlorthal-dimethyl + 1962 + + + Fluridone + 2046 + + + MCPA + 2075 + + + Metsulfuron-methyl + 2094 + + + p,p'-DDT + 2128 + + + Phosmetoxon + 2155 + + + Ronnel + 2188 + + + Terbutryn + 2211 + + + Tricyclazole + 2240 + + + .alpha.-Endosulfan + 1834 + + + .alpha.-Hexachlorocyclohexane + 1835 + + + .beta.-Endosulfan + 1836 + + + .beta.-Hexachlorocyclohexane + 1837 + + + .delta.-Hexachlorocyclohexane + 1838 + + + .lambda.-Cyhalothrin + 1839 + + + 1,2,3-Trichloropropane + 1840 + + + 1,2-Dibromo-3-chloropropane + 1841 + + + 1,2-Dichloroethane + 1842 + + + 1,2-Dichloropropane + 1843 + + + 1,3,5-Triazin-2(1H)-one, 4-(ethylamino)-6-[(1-methylethyl)amino]- + 1844 + + + 1,3,5-Triazin-2(1H)-one, 4,6-bis(ethylamino)- + 1845 + + + 1,3-Dichloropropane + 1846 + + + 1,3-Dichloropropene + 1847 + + + 1,4-Benzenedicarboxylic acid, 2,3,5,6-tetrachloro-, monomethyl ester + 1848 + + + 1,4-Ethenopentalene, 1,2,3,5,7,8-hexachloro-1,3a,4,5,6,6a-hexahydro-, (1R,3aS,4S,5S,6aS)-rel- + 1849 + + + 1,4-Naphthoquinone + 1850 + + + 1,6-Methano-1H-indene, 2,3,3a,4,5,8-hexachloro-3a,6,7,7a-tetrahydro-, (1R,3aR,6S,7aR,8R)-rel- + 1851 + + + 1H-Isoindole-1,3(2H)-dione, 3a,4,7,7a-tetrahydro-2-[(1,1,2,2-tetrachloroethyl)thio]- + 1852 + + + 1-Naphthol + 1853 + + + cis-Permethrin + 1854 + + + 2(1H)-Pyridinone, 3,5,6-trichloro- + 1855 + + + 2-(Dimethylamino)-N-hydroxy-2-oxoethanimidothioic acid methyl ester + 1856 + + + 2-(p-tert-Butylphenoxy)cyclohexanol + 1857 + + + 2,2,4,5,6,7,8,8-Octachloro-2,3,3a,4,7,7a-hexahydro-4,7-methano-1H-indene + 1858 + + + 2,3,4,5-Tetrachlorophenol + 1859 + + + 2,3,4,6-Tetrachlorophenol + 1860 + + + 2,4,5-T + 1861 + + + 2,4,5-TB + 1862 + + + 2,4,5-Trichlorophenol + 1863 + + + 2,4,6-Trichlorophenol + 1864 + + + 2,4-D + 1865 + + + 2,4-D methyl ester + 1866 + + + 2,4-DB + 1867 + + + 2,4-Dichlorophenol + 1868 + + + 2,4-Dimethylphenol + 1869 + + + 2,5-Dichloroaniline + 1870 + + + 2,6-Diethylaniline + 1871 + + + 2-Chloro-4,6-diamino-s-triazine + 1872 + + + 2-Chloro-4-isopropylamino-6-amino-s-triazine + 1873 + + + 2-Chloro-6-ethylamino-4-amino-s-triazine + 1874 + + + 2-Ethyl-6-methylaniline + 1875 + + + 3(2H)-Pyridazinone, 5-amino-4-chloro-2-[3-(trifluoromethyl)phenyl]- + 1876 + + + 3,4-Dichloroaniline + 1877 + + + 3,5-Dichloroaniline + 1878 + + + 3-Hydroxycarbofuran + 1879 + + + 3-Phenoxybenzenemethanol + 1880 + + + 4,6-Dinitro-o-cresol + 1881 + + + 4-Chloro-2-methylphenol + 1882 + + + 5-Amino-1-[2,6-dichloro-4-(trifluoromethyl)phenyl]-4-[(trifluoromethyl)thio]pyrazole-3-carbonitrile + 1883 + + + Acephate + 1884 + + + Acetochlor + 1885 + + + Acifluorfen + 1886 + + + Acifluorfen, sodium salt + 1887 + + + Acrylonitrile + 1888 + + + Alachlor + 1889 + + + Alachlor ESA + 1890 + + + Aldicarb + 1891 + + + Aldicarb sulfone + 1892 + + + Aldicarb sulfoxide + 1893 + + + Aldrin + 1894 + + + Allethrin + 1895 + + + Allyl chloride + 1896 + + + Ametryn + 1897 + + + Aminocarb + 1898 + + + Aminomethylphosphonic acid + 1899 + + + Aramite + 1900 + + + Asulam + 1901 + + + Atraton + 1902 + + + Atrazine + 1903 + + + Azinphos-ethyl + 1904 + + + Azinphos-methyl + 1905 + + + Azobenzene + 1906 + + + Barban + 1907 + + + Bendiocarb + 1908 + + + Benfluralin + 1909 + + + Benomyl + 1910 + + + Bensulfuron-methyl + 1911 + + + Bentazon + 1912 + + + Benzamide, 2-amino-N-(1-methylethyl)- + 1913 + + + Benzene, 1,1'-(chloroethenylidene)bis(4-chloro- + 1914 + + + Benzene, 1-methoxy-2-[2,2,2-trichloro-1-(4-methoxyphenyl)ethyl]- + 1916 + + + Benzene, pentachloromethoxy- + 1917 + + + Benzoic acid, 2,5-dichloro-3-hydroxy-6-methoxy- + 1918 + + + Benzoic acid, 3,5-dichloro- + 1919 + + + Bifenthrin + 1920 + + + Bromacil + 1921 + + + Bromophos + 1922 + + + Bromophos-ethyl + 1923 + + + Bromoxynil + 1924 + + + Bufencarb + 1925 + + + Bulan mixt. with 2-nitro-1,1-bis(p-chlorophenyl)propane + 1926 + + + Butachlor + 1927 + + + Butoxycarboxim + 1928 + + + Butylamine + 1929 + + + Butylate + 1930 + + + Cacodylic acid + 1931 + + + Cadusafos + 1932 + + + Camphor + 1933 + + + Captan + 1934 + + + Carbamic acid, methyl-, 2-chlorophenyl ester + 1935 + + + Carbaryl + 1936 + + + Carbazole + 1937 + + + Carbofuran + 1938 + + + Carbon disulfide + 1939 + + + Carbophenothion + 1940 + + + Carbophenothion-methyl + 1941 + + + Carboxin + 1942 + + + Chloramben + 1943 + + + Chloramben-methyl + 1944 + + + Chlordane, technical + 1945 + + + Chlordane, technical, and/or chlordane metabolites + 1946 + + + Chlordecone + 1947 + + + Chlorethoxyfos + 1948 + + + Chlorfenvinphos + 1949 + + + Chlorimuron-ethyl + 1950 + + + Chlorinated phenoxy acid group + 1951 + + + Chlorobenzilate + 1952 + + + Chloroneb + 1953 + + + Chloropicrin + 1954 + + + Chlorothalonil + 1955 + + + Chlorotoluron + 1956 + + + Chloroxuron + 1957 + + + Chlorpropham + 1958 + + + Chlorpyrifos + 1959 + + + Chlorpyrifos-methyl + 1960 + + + Chlorsulfuron + 1961 + + + Chlorthion + 1963 + + + Cinerin I + 1964 + + + cis-1,3-Dichloropropene + 1965 + + + cis-Chlordane + 1966 + + + cis-Nonachlor + 1967 + + + Clomazone + 1968 + + + Clopyralid + 1969 + + + Coumaphos + 1970 + + + Cyanazine + 1971 + + + Cybutryne + 1972 + + + Cycloate + 1973 + + + Cyclohexanamine, N-ethyl- + 1974 + + + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl- + 1975 + + + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester + 1976 + + + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester, (1R,3R)-rel- + 1977 + + + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester, (1R,3S)-rel- + 1978 + + + Cyfluthrin + 1979 + + + Cypermethrin + 1980 + + + Cyprazine + 1981 + + + Dalapon + 1982 + + + Deltamethrin + 1983 + + + Demeton + 1984 + + + Demeton-O + 1985 + + + Demeton-S + 1986 + + + Desmedipham + 1987 + + + Diallate + 1988 + + + Diazinon + 1989 + + + Dicamba + 1990 + + + Dichlobenil + 1991 + + + Dichlofenthion + 1992 + + + Dichlorprop + 1993 + + + Dichlorvos + 1994 + + + Diclofop methyl + 1995 + + + Dicofol + 1996 + + + Dicrotophos + 1997 + + + Dieldrin + 1998 + + + Diethatyl ethyl + 1999 + + + Diflubenzuron + 2000 + + + Dimethenamid + 2001 + + + Dimethoate + 2002 + + + Dimethomorph + 2003 + + + Dinex + 2004 + + + Dinoseb + 2005 + + + Dioxacarb + 2006 + + + Dioxathion + 2007 + + + Diphenamid + 2008 + + + Diphenylamine + 2009 + + + Diquat + 2010 + + + Disulfoton + 2011 + + + Disulfoton sulfone + 2012 + + + Diuron + 2013 + + + Endosulfan + 2014 + + + Endosulfan sulfate + 2015 + + + Endothall + 2016 + + + Endrin + 2017 + + + Endrin aldehyde + 2018 + + + Endrin ketone + 2019 + + + Esfenvalerate + 2020 + + + Ethalfluralin + 2021 + + + Ethanimidothioic acid, N-hydroxy-, methyl ester + 2022 + + + Ethene, 1,2-dibromo- + 2023 + + + Ethion + 2024 + + + Ethion monooxon + 2025 + + + Ethoprop + 2026 + + + Ethylan + 2027 + + + Ethylene dibromide + 2028 + + + Ethylene thiourea + 2029 + + + Etridiazole + 2030 + + + Etrimfos + 2031 + + + Famphur + 2032 + + + Fenamiphos + 2033 + + + Fenarimol + 2034 + + + Fenitrothion + 2035 + + + Fenpropathrin + 2036 + + + Fensulfothion + 2037 + + + Fenthion + 2038 + + + Fenuron + 2039 + + + Fipronil + 2040 + + + Fluchloralin + 2041 + + + Flufenacet + 2042 + + + Flumetralin + 2043 + + + Flumetsulam + 2044 + + + Fluometuron + 2045 + + + Fonofos + 2047 + + + Formetanate hydrochloride + 2048 + + + Glyphosate + 2049 + + + Halofenozide + 2050 + + + Halosulfuron-methyl + 2051 + + + Heptachlor + 2052 + + + Heptachlor epoxide + 2053 + + + Hexachlorobenzene + 2054 + + + Hexachlorodibenzo-p-dioxin + 2055 + + + Hexazinone + 2056 + + + Imazapyr + 2057 + + + Imazaquin + 2058 + + + Imazethapyr + 2059 + + + Imidacloprid + 2060 + + + Ioxynil + 2061 + + + Iprodione + 2062 + + + Isodrin + 2063 + + + Isofenphos + 2064 + + + Isoprocarb + 2065 + + + Isoxaflutole + 2066 + + + Leptophos + 2067 + + + Lindane + 2068 + + + Linuron + 2069 + + + m-(Trifluoromethyl)aniline + 2070 + + + Malaoxon + 2071 + + + Malathion + 2072 + + + Mancozeb + 2073 + + + Maneb + 2074 + + + MCPB + 2076 + + + Mecoprop + 2077 + + + Merphos + 2078 + + + Metalaxyl + 2079 + + + Methamidophos + 2080 + + + Methanone, bis(4-chlorophenyl)- + 2081 + + + Methidathion + 2082 + + + Methiocarb + 2083 + + + Methomyl + 2084 + + + Methoprene + 2085 + + + Methoxychlor + 2086 + + + Methyl bromide + 2087 + + + Methyl iodide + 2088 + + + Methyl paraoxon + 2089 + + + Methyl parathion + 2090 + + + Metolachlor + 2091 + + + Metolcarb + 2092 + + + Metribuzin + 2093 + + + Mevinphos + 2095 + + + Mexacarbate + 2096 + + + Mirex + 2097 + + + Mobam + 2098 + + + Molinate + 2099 + + + Monocrotophos + 2100 + + + Monolinuron + 2101 + + + Monosodium methanearsonate + 2102 + + + Monuron + 2103 + + + Myclobutanil + 2104 + + + N,N-Diethyl-m-toluamide + 2105 + + + N-2-Ethylhexylbicycloheptenedicarboximide + 2106 + + + Naled + 2107 + + + Napropamide + 2108 + + + Neburon + 2109 + + + Nicosulfuron + 2110 + + + Nitrapyrin + 2111 + + + Norflurazon + 2112 + + + O,O,O-Triethyl phosphorothioate + 2113 + + + o,p'-DDD + 2114 + + + o,p'-DDE + 2115 + + + o,p'-DDT + 2116 + + + o-Cresol + 2117 + + + O-Ethyl O-(p-nitrophenyl) phenylphosphonothioate + 2118 + + + Omethoate + 2119 + + + Oryzalin + 2120 + + + Oxadiazon + 2121 + + + Oxamyl + 2122 + + + Oxychlordane + 2123 + + + Oxydisulfoton + 2124 + + + Oxyfluorfen + 2125 + + + p,p'-DDD + 2126 + + + p,p'-DDE + 2127 + + + Paraoxon + 2129 + + + Paraquat + 2130 + + + Parathion + 2131 + + + p-Chloroaniline + 2132 + + + p-Chloro-m-cresol + 2133 + + + p-Cresol + 2134 + + + p-Dichlorobenzene + 2135 + + + Pebulate + 2136 + + + Pendimethalin + 2137 + + + Pentachlorobenzene + 2138 + + + Pentachloronitrobenzene + 2139 + + + Pentachlorophenol + 2140 + + + Permethrin + 2141 + + + Phenmedipham + 2142 + + + Phenol, 2-(1-methylpropyl)-, methylcarbamate + 2143 + + + Phenol, 2,6-bis(1,1-dimethylethyl)-4-methyl-, methylcarbamate + 2144 + + + Phenol, 2-[(ethylthio)methyl]-, methylcarbamate + 2145 + + + Phenol, 3,4-dimethyl-, methylcarbamate + 2146 + + + Phenol, 3,5-bis(1,1-dimethylethyl)-, methylcarbamate + 2147 + + + Phenol, 3,5-dimethyl-4-(methylsulfinyl)-, methylcarbamate + 2148 + + + Phenol, 3,5-dimethyl-4-(methylsulfonyl)-, methylcarbamate + 2149 + + + Phenothrin + 2150 + + + Phorate + 2151 + + + Phorate sulfone + 2152 + + + Phorate sulfoxide + 2153 + + + Phosmet + 2154 + + + Phosphamidon + 2156 + + + Phosphoric acid, (1Z)-2-chloro-1-(2,4,5-trichlorophenyl)ethenyl dimethyl ester + 2157 + + + Phosphoric acid, diethyl 6-methyl-2-(1-methylethyl)-4-pyrimidinyl ester + 2158 + + + Phosphorothioic acid, O,O'-(sulfinyldi-4,1-phenylene) O,O,O',O'-tetramethyl ester + 2159 + + + Phosphorothioic acid, O-ethyl O-methyl S-propyl ester + 2160 + + + Phosphorothioic acid, O-ethyl S-propyl ester + 2161 + + + Phostebupirim + 2162 + + + Picloram + 2163 + + + Piperonyl butoxide + 2164 + + + p-Nitrophenol + 2165 + + + Primisulfuron-methyl + 2166 + + + Profenofos + 2167 + + + Profluralin + 2168 + + + Promecarb + 2169 + + + Prometon + 2170 + + + Prometryn + 2171 + + + Pronamide + 2172 + + + Propachlor + 2173 + + + Propanal, 2-methyl-2-(methylthio)-, oxime + 2174 + + + Propanil + 2175 + + + Propargite + 2176 + + + Propazine + 2177 + + + Propetamphos + 2178 + + + Propham + 2179 + + + Propiconazole + 2180 + + + Propionic acid + 2181 + + + Propoxur + 2182 + + + Prosulfuron + 2183 + + + Prothiofos + 2184 + + + Pyrazon + 2185 + + + Pyrethrins + 2186 + + + Resmethrin + 2187 + + + Secbumeton + 2189 + + + S-Ethyl dipropylthiocarbamate + 2190 + + + Siduron + 2191 + + + Silvex + 2192 + + + Simazine + 2193 + + + Simetone + 2194 + + + Simetryn + 2195 + + + Sodium methyldithiocarbamate + 2196 + + + Sulfometuron methyl + 2197 + + + Sulfotep + 2198 + + + Sulprofos + 2199 + + + Swep + 2200 + + + Tau-fluvalinate + 2201 + + + Tebuconazole + 2202 + + + Tebuthiuron + 2203 + + + Tefluthrin + 2204 + + + Temephos + 2205 + + + Terbacil + 2206 + + + Terbufos + 2207 + + + Terbufos sulfone + 2208 + + + Terbufos sulfoxide + 2209 + + + Terbuthylazine + 2210 + + + Tetradifon + 2212 + + + Tetraethyl pyrophosphate + 2213 + + + Tetrapropyl dithiopyrophosphate + 2214 + + + Thiabendazole + 2215 + + + Thiacloprid + 2216 + + + Thiazopyr + 2217 + + + Thidiazuron + 2218 + + + Thifensulfuron-methyl + 2219 + + + Thiobencarb + 2220 + + + Thiodicarb + 2221 + + + Thiofanox + 2222 + + + Thionazin + 2223 + + + Thiophanate-methyl + 2224 + + + Toxaphene + 2225 + + + Tralomethrin + 2226 + + + trans-1,3-Dichloropropene + 2227 + + + trans-Chlordane + 2228 + + + trans-Nonachlor + 2229 + + + Transpermethrin + 2230 + + + Triadimefon + 2231 + + + Triallate + 2232 + + + Triasulfuron + 2233 + + + Triazines mixture, unspecified + 2234 + + + Tribenuron-methyl + 2235 + + + Tribufos + 2236 + + + Trichloronate + 2237 + + + Trichlorophenol + 2238 + + + Triclopyr + 2239 + + + Trifluralin + 2241 + + + Triflusulfuron-methyl + 2242 + + + Trimethacarb + 2243 + + + Urea, (4-chlorophenyl)- + 2244 + + + Urea, [3-(trifluoromethyl)phenyl]- + 2245 + + + Urea, N-[5-(ethylsulfonyl)-1,3,4-thiadiazol-2-yl]-N,N'-dimethyl- + 2246 + + + Urea, phenyl- + 2247 + + + Vernolate + 2248 + + + Ziram + 2249 + + + + + + + Inorganic + 2250 + + + Dissolved Gas + 2251 + + + Oxygen, dissolved + 2252 + + + Oxygen, dissolved percent of saturation + 2253 + + + Carbon dioxide + 2254 + + + Chlorine + 2255 + + + Fluorine + 2256 + + + Hydrogen + 2257 + + + Hydrogen sulfide + 2258 + + + Argon + 2259 + + + Krypton + 2260 + + + Xenon + 2261 + + + Nitrogen, gas + 2262 + + + Nitrous oxide + 2263 + + + Sulfur dioxide + 5049 + + + + + Dissolved Solids + 2264 + + + Solids, fixed dissolved + 2265 + + + Solids, total dissolved + 2266 + + + + + Major + 2267 + + + Major, metals + 2268 + + + Calcium + 2269 + + + Magnesium + 2270 + + + Potassium + 2271 + + + Sodium + 2272 + + + Sodium adsorption ratio + 2273 + + + Sodium plus potassium + 2274 + + + Sodium, fraction of cations + 2275 + + + + + Major, non-metals + 2276 + + + Acidity + 2277 + + + Alkalinity + 2278 + + + Bicarbonate + 2279 + + + Bromide + 2280 + + + Chloride + 2281 + + + Chlorine demand + 2282 + + + Fluoride + 2283 + + + Hydrogen ion + 2284 + + + Hydroxide + 2285 + + + Silica + 2286 + + + Sulfate + 2287 + + + Sulfide + 2288 + + + Sulfur + 2289 + + + Thiosulfate + 2290 + + + + + Major, bulk properties + 2291 + + + Oxidation reduction potential + 2292 + + + pH + 2293 + + + Salinity + 2294 + + + Hardness, carbonate + 2295 + + + Hardness, non-carbonate + 2296 + + + Specific conductance + 2297 + + + Hardness, total + 2298 + + + + + + + Minor + 2299 + + + Minor, metals + 2300 + + + Scandium + 2345 + + + Aluminum + 2301 + + + Barium + 2302 + + + Beryllium + 2303 + + + Bismuth + 2304 + + + Cadmium + 2305 + + + Cerium + 2306 + + + Cesium + 2307 + + + Chromium + 2308 + + + Chromium(III) + 2309 + + + Chromium(VI) + 2310 + + + Cobalt + 2311 + + + Copper + 2312 + + + Dysprosium + 2313 + + + Erbium + 2314 + + + Europium + 2315 + + + Iron, ferric + 2316 + + + Iron, ferrous + 2317 + + + Gadolinium + 2318 + + + Gallium + 2319 + + + Gold + 2320 + + + Hafnium + 2321 + + + Holmium + 2322 + + + Indium + 2323 + + + Iridium + 2324 + + + Iron + 2325 + + + Lanthanum + 2326 + + + Lead + 2327 + + + Lithium + 2328 + + + Lutetium + 2329 + + + Manganese + 2330 + + + Mercury + 2331 + + + Molybdenum + 2332 + + + Neodymium + 2333 + + + Nickel + 2334 + + + Niobium + 2335 + + + Osmium + 2336 + + + Palladium + 2337 + + + Platinum + 2338 + + + Praseodymium + 2339 + + + Rhenium + 2340 + + + Rhodium + 2341 + + + Rubidium + 2342 + + + Ruthenium + 2343 + + + Samarium + 2344 + + + Silver + 2346 + + + Strontium + 2347 + + + Tantalum + 2348 + + + Terbium + 2349 + + + Thallium + 2350 + + + Thulium + 2351 + + + Tin + 2352 + + + Titanium + 2353 + + + Tungsten + 2354 + + + Vanadium + 2355 + + + Ytterbium + 2356 + + + Yttrium + 2357 + + + Zinc + 2358 + + + Zirconium + 2359 + + + Uranium + 5020 + + + + + Minor, non-metals + 2360 + + + Iodide + 2372 + + + Antimony + 2361 + + + Arsenic + 2362 + + + Arsenic acid + 2363 + + + Asbestos + 2364 + + + Boron + 2365 + + + Bromine + 2366 + + + Chlorate + 2367 + + + Cyanide + 2368 + + + Cyanides amenable to chlorination (HCN & CN) + 2369 + + + Germanium + 2370 + + + Helium + 2371 + + + Iodine + 2373 + + + Neon + 2374 + + + Perchlorate + 2375 + + + Selenium + 2376 + + + Sulfite (SO3) + 2377 + + + Sulfur hexafluoride + 2378 + + + Tellurium + 2379 + + + Thiocyanate + 2380 + + + + + + + + + Nutrient + 2381 + + + Nitrogen + 2382 + + + Nitrogen, total inorganic + 2395 + + + Ammonia + 2383 + + + Ammonium + 2384 + + + Total ammonia + 2385 + + + Ammonia + 2386 + + + Ammonium ammonia ratio + 2387 + + + + + N, albuminoid + 2388 + + + Nitrogen, nitrate (NO3) + 2389 + + + Nitrogen, nitrite (NO2) + 2390 + + + Nitrogen, nitrite (NO2) + nitrate (NO3) + 2391 + + + Nitrogen, total organic + 2392 + + + Nitrogen, dissolved organic + 2393 + + + Nitrogen, suspended organic + 2394 + + + Nitrogen, dissolved inorganic + 2396 + + + Nitrogen, suspended inorganic + 2397 + + + Nitrogen, total kjeldahl + 2398 + + + Nitrogen, total + 2399 + + + Nitrogen, total dissolved + 2400 + + + Nitrogen, dissolved kjeldahl + 5018 + + + + + Phosphorus + 2401 + + + Hydrolyzable phopshorus + 2402 + + + Hydrolyzable P plus orthophosphate + 2403 + + + Phosphorus, total organic + 2404 + + + Phosphorus, dissolved organic + 2405 + + + Phosphorus, suspended organic + 2406 + + + Phosphorus, total inorganic + 2407 + + + Phosphorus, dissolved inorganic + 2408 + + + Phosphorus, suspended inorganic + 2409 + + + Phosphorus, ortophosphate + 2410 + + + Phosphorus, polyphosphate + 2411 + + + Phosphorus, total + 2412 + + + Phosphorus, total dissolved + 5008 + + + + + Carbon + 2413 + + + Carbon, suspended inorganic + 2421 + + + Carbonate (CO3) + 2414 + + + Carbon, total + 2415 + + + Carbon, total organic + 2416 + + + Carbon, dissolved organic + 2417 + + + Carbon, suspended organic + 2418 + + + Carbon, total inorganic + 2419 + + + Carbon, dissolved inorganic + 2420 + + + Carbon, total dissolved + 2422 + + + Colored dissolved organic matter + 5037 + + + Carbon, total suspended + 5038 + + + + + + + Oxygen Demand + 2423 + + + Chemical oxygen demand + 2424 + + + Biochemical oxygen demand + 2425 + + + Carbonaceous biochemical oxygen demand + 2426 + + + Nitrogenous biochemical oxygen demand + 2427 + + + + + Radiochemical + 2428 + + + Actinium-228 + 2429 + + + Alpha emitting radium isotopes + 2430 + + + Alpha radiation + 2431 + + + Americium-241 + 2432 + + + Antimony-124 + 2433 + + + Antimony-125 + 2434 + + + Barium-140 + 2435 + + + Beryllium-7 + 2436 + + + Beta radiation + 2437 + + + Bismuth-212 + 2438 + + + Bismuth-214 + 2439 + + + Calcium-45 + 2440 + + + Carbon-14 + 2441 + + + Cerium-141 + 2442 + + + Cerium-144 + 2443 + + + Cesium-134 + 2444 + + + Cesium-137 + 2445 + + + Chlorine-36 + 2446 + + + Chromium-51 + 2447 + + + Cobalt-57 + 2448 + + + Cobalt-58 + 2449 + + + Cobalt-60 + 2450 + + + Curium-242 + 2451 + + + Curium-244 + 2452 + + + Europium-152 + 2453 + + + Europium-155 + 2454 + + + Gamma radiation + 2455 + + + Hafnium-175 + 2456 + + + Hafnium-181 + 2457 + + + Iodine-129 + 2458 + + + Iodine-131 + 2459 + + + Iodine-133 + 2460 + + + Iron-59 + 2461 + + + Lanthanum-140 + 2462 + + + Lead-210 + 2463 + + + Lead-212 + 2464 + + + Lead-214 + 2465 + + + Manganese-54 + 2466 + + + Molybdenum-99 + 2467 + + + Neodymium-147 + 2468 + + + Neptunium-239 + 2469 + + + Nickel-63 + 2470 + + + Niobium-95 + 2471 + + + Plutonium-238 + 2472 + + + Plutonium-239 + 2473 + + + Plutonium-239 and Plutonium-240 combined + 2474 + + + Plutonium-241 + 2475 + + + Polonium-210 + 2476 + + + Potassium-40 + 2477 + + + Radium-224 + 2478 + + + Radium-226 + 2479 + + + Radium-228 + 2480 + + + Radon-222 + 2481 + + + Ruthenium-103 + 2482 + + + Ruthenium-106 + 2483 + + + Scandium-46 + 2484 + + + Selenium-75 + 2485 + + + Silver-108 + 2486 + + + Silver-110 + 2487 + + + Sodium-24 + 2488 + + + Strontium Radionuclides + 2489 + + + Strontium-89 + 2490 + + + Strontium-90 + 2491 + + + Strontium-91 + 2492 + + + Sulfur-35 + 2493 + + + Technetium-99 + 2494 + + + Tellurium-132 + 2495 + + + Thallium-208 + 2496 + + + Thorium-228 + 2497 + + + Thorium-230 + 2498 + + + Thorium-232 + 2499 + + + Tritium + 2500 + + + Uranium 238/234 ratio + 2501 + + + Uranium-234 + 2502 + + + Uranium-234 and/or uranium-235 and/or uranium-238 + 2503 + + + Uranium-235 + 2504 + + + Uranium-238 + 2505 + + + Xenon-135 + 2506 + + + Yttrium-91 + 2507 + + + Zinc-65 + 2508 + + + Zirconium/Niobium-95 + 2509 + + + Zirconium-95 + 2510 + + + + + Stable Isotopes + 5001 + + + Carbon-13 + 5002 + + + Deuterium + 5003 + + + Lithium-7 + 5004 + + + Nitrogen-15 + 5005 + + + Oxygen-18 + 5006 + + + Sulfur-34 + 5007 + + + + + + + Biological + 2511 + + + Biological taxa + 2512 + + + Macrophyte species + 4099 + + + Acnida + 4100 + + + Alisma + 4101 + + + Alternanthera + 4102 + + + Ambrosia + 4103 + + + Anacharis (elodea) + 4104 + + + Azolla + 4105 + + + Bacopa + 4106 + + + Boehmaria + 4107 + + + Ceratophyllum + 4108 + + + Ceratophyllum demersum + 4109 + + + Chara + 4110 + + + Chlorophyta + 4111 + + + Cladium jamaicensis + 4112 + + + Cyperus + 4113 + + + Diversity - macrophytes + 4114 + + + Echinodorus + 4115 + + + Egeria densa + 4116 + + + Eichhornia + 4117 + + + Elatine + 4118 + + + Gramineae + 4119 + + + Heteranthera + 4120 + + + Hydrilla verticillata + 4121 + + + Hydrocotyle + 4122 + + + Lemna + 4123 + + + Ludwigia decurrens + 4124 + + + Ludwigia (jussiaea) + 4125 + + + Lythrum + 4126 + + + Macrophytes sampled - none present + 4127 + + + Marsilea + 4128 + + + Mikania scandens + 4129 + + + Myriophyllum + 4130 + + + Myriophyllum brasiliense + 4131 + + + Najas + 4132 + + + Nuphar + 4133 + + + Phragmites communis + 4134 + + + Phyla + 4135 + + + Polygonum + 4136 + + + Potamogeton + 4137 + + + Potamogeton crispus + 4138 + + + Rorippa nasturtium - aquaticum + 4139 + + + Rotala + 4140 + + + Rotala ramosior + 4141 + + + Sabol + 4142 + + + Sagittaria + 4143 + + + Sagittaria falcata + 4144 + + + Sagittaria lancifolia + 4145 + + + Salix + 4146 + + + Sapium sebiferum + 4147 + + + Saururus + 4148 + + + Saururus cernuus + 4149 + + + Scirpus + 4150 + + + Spirodela + 4151 + + + Utricularia + 4152 + + + Zizaniopsis miliacea + 4153 + + + + + Nekton species + 4154 + + + Alligator mississippiensis + 4155 + + + Amphibia + 4156 + + + Arenaeus cribrarius + 4157 + + + Callinectes sapidus + 4158 + + + Callinectes similis + 4159 + + + Cambarus + 4160 + + + Chrysemys scripta + 4161 + + + Decopoda + 4162 + + + Diversity - nekton + 4163 + + + Equitability - nekton + 4164 + + + Lolliguncula + 4165 + + + Lolliguncula (loligo) brevis + 4166 + + + Machrobrachium + 4167 + + + Machrobrachium acanthurus + 4168 + + + Machrobrachium ohione + 4169 + + + Menippe mercenaria + 4170 + + + Mollusca + 4171 + + + Nekton organisms - none present + 4172 + + + Neopanope texana texana + 4173 + + + Paguridae + 4174 + + + Pagurus politus + 4175 + + + Palaemonetes + 4176 + + + Palaemonetes pugio + 4177 + + + Palaemonetes vulgaris + 4178 + + + Penaeus aztecus + 4179 + + + Penaeus duorarum + 4180 + + + Penaeus setiferus + 4181 + + + Pseudemys + 4182 + + + Rana + 4183 + + + Rhithropanopeus harrissii + 4184 + + + Sicyonia dorsalis + 4185 + + + Squilla + 4186 + + + Stomolophus + 4187 + + + Trachemys scripta elegans + 4188 + + + Trachypenaeus spp. + 4189 + + + Xanthidae + 4190 + + + Xiphopeneus kroyeri + 4191 + + + + + Phytoplankton species + 4192 + + + Agmenellum (merismopoedia) + 4200 + + + Amphipleura + 4201 + + + Amphiprora + 4202 + + + Amphiprora alata + 4203 + + + Amphora + 4204 + + + Anabaena + 4205 + + + Anabaena flos-aquae + 4206 + + + Anabaenopsis + 4207 + + + Anacystis cyanea + 4208 + + + Anacystis dimidiata + 4209 + + + Anacystis (microcystis) + 4210 + + + Anisonema + 4211 + + + Ankistrodesmus + 4212 + + + Ankistrodesmus falcatus + 4213 + + + Anomoeoneis + 4214 + + + Aphanizomenon + 4215 + + + Aphanizomenon holsaticum (flos-aquae) + 4216 + + + Arthrospira + 4217 + + + Astrionella + 4218 + + + Asterionella formosa + 4219 + + + Asterionella japonica + 4220 + + + Asterococcus + 4221 + + + Auliscus coelatus + 4222 + + + Bacillariophyceae + 4223 + + + Bacillariophyceae-centric + 4224 + + + Bacillariophyceae-pennate + 4225 + + + Bacteriastrum + 4226 + + + Bacteriastrum delicatulum + 4227 + + + Bacteriastrum varians + 4228 + + + Biddulphia + 4229 + + + Biddulphia aurita + 4230 + + + Biddulphia mobiliensis + 4231 + + + Biddulphia sinensis + 4232 + + + Botrycoccus + 4233 + + + Caloneis + 4234 + + + Caloneis amphisbaena + 4235 + + + Campylodiscus + 4236 + + + Campylodiscus punctulatus + 4237 + + + Capartogramma + 4238 + + + Carteria + 4239 + + + Centronella + 4240 + + + Cerataulina + 4241 + + + Cerataulina pelagica + 4242 + + + Ceratium + 4243 + + + Ceratium cornutum + 4244 + + + Ceratium furca + 4245 + + + Ceratium fusus + 4246 + + + Ceratium hircus + 4247 + + + Ceratium hirundinella + 4248 + + + Ceratium massiliense + 4249 + + + Ceratium pentagonum + 4250 + + + Ceratium pulchellum + 4251 + + + Ceratium tripos + 4252 + + + Chaetoceros + 4253 + + + Chaetoceros affinis + 4254 + + + Chaetoceros atlanticum + 4255 + + + Chaetoceros brevis + 4256 + + + Chaetoceros compressum + 4257 + + + Chaetoceros constrictum + 4258 + + + Chaetoceros costatum + 4259 + + + Chaetoceros curvisetum + 4260 + + + Chaetoceros danicum + 4261 + + + Chaetoceros decipiens + 4262 + + + Chaetoceros densum + 4263 + + + Chaetoceros didymum + 4264 + + + Chaetoceros difficilis + 4265 + + + Chaetoceros diversum + 4266 + + + Chaetoceros gracilis + 4267 + + + Chaetoceros laciniosum + 4268 + + + Chaetoceros lorenzianum + 4269 + + + Chaetoceros orientalis + 4270 + + + Chaetoceros pelagicum + 4271 + + + Chaetoceros peruvianum + 4272 + + + Chaetoceros simplex + 4273 + + + Chaetoceros tortissimus + 4274 + + + Chaetoceros valve + 4275 + + + Chaetoceros varians + 4276 + + + Chaetosphaeridium globosum + 4277 + + + Chlamydomonas + 4278 + + + Chlorella + 4279 + + + Chlorella vulgaris + 4280 + + + Chilorococcum + 4281 + + + Chilorogonium + 4282 + + + Chloromonadophyta + 4283 + + + Chlorophyta + 4284 + + + Chlorophyta - flamentous + 4285 + + + Chlorophyta - unicellular + 4286 + + + Chroococcus + 4287 + + + Chroococcus dispersus + 4288 + + + Chrysococcus + 4289 + + + Chrysophyta + 4290 + + + Cladophora + 4291 + + + Closteridium + 4292 + + + Closteriopsis + 4293 + + + Closteriopsis longissima + 4294 + + + Closterium + 4295 + + + Coccochloris + 4296 + + + Cocconeis + 4297 + + + Coelastrum + 4298 + + + Coelastrum microporum + 4299 + + + Coelastrum reticulatum + 4300 + + + Coelosphaerium + 4301 + + + Corethron + 4302 + + + Corethron criophylum + 4303 + + + Corethron hystrix + 4304 + + + Coscinodiscus + 4305 + + + Coscinodiscus asteromphalus + 4306 + + + Coscinodiscus centralis + 4307 + + + Coscinodiscus concinnis + 4308 + + + Coscinodiscus denarius + 4309 + + + Coscinodiscus excentricus + 4310 + + + Coscinodiscus granii + 4311 + + + Coscinodiscus radiatus + 4312 + + + Coscinodiscus rothii + 4313 + + + Coscinodiscus wailsii + 4314 + + + Cosmarium + 4315 + + + Crucigenia + 4316 + + + Crucigenia quadrata + 4317 + + + Crucigenia tetrapedia + 4318 + + + Cryptochrysis + 4319 + + + Cryptomonas + 4320 + + + Cyanophyta + 4321 + + + Cyclotella + 4322 + + + Cyclotella stelligera + 4323 + + + Cylindrocystis + 4324 + + + Cymatopleura solea + 4325 + + + Cymbella + 4326 + + + Cymbella mexicanum + 4327 + + + Dactylococcopsis + 4328 + + + Desmidium + 4329 + + + Diatoma + 4330 + + + Diatomella + 4331 + + + Dinobryon + 4332 + + + Dinobryon bavaricum + 4333 + + + Dinoflagellata + 4334 + + + Dinophyceae + 4335 + + + Dinophysis caudata + 4336 + + + Diploneis + 4337 + + + Diploneis crabro + 4338 + + + Diploneis smithii + 4339 + + + Ditylum + 4340 + + + Ditylum brightwelli + 4341 + + + Diversity - phytoplankton + 4342 + + + Elakatothrix + 4343 + + + Epithemia + 4344 + + + Epithemia sorex + 4345 + + + Euastrum + 4346 + + + Eucampia + 4347 + + + Eucampia zoodiacus + 4348 + + + Eudorina + 4349 + + + Euglena + 4350 + + + Achnanthes + 4193 + + + Achnanthes coarctata + 4194 + + + Actinastrum + 4195 + + + Actinocyclus + 4196 + + + Actinocyclus ehrenbergii + 4197 + + + Actinoptychus undulatus + 4198 + + + Agmenellum quadruplicatum + 4199 + + + Hemidiscus hardmanianus + 4383 + + + Oscillatoria granulata + 4440 + + + Rhoicosphenia curvata + 4495 + + + Euglenophyta + 4351 + + + Eunotia + 4352 + + + Eupodiscus radiatus + 4353 + + + Eutreptia + 4354 + + + Exuviaella + 4355 + + + Exuviaella baltica + 4356 + + + Fragilaria + 4357 + + + Fragilaria crotonensis + 4358 + + + Frustulia + 4359 + + + Geminella + 4360 + + + Glenodinium + 4361 + + + Glenodinium armatum + 4362 + + + Gloeocapsa + 4363 + + + Gloeocystis + 4364 + + + Golenkinia + 4365 + + + Golenkiniopsis + 4366 + + + Gomphonema + 4367 + + + Gomphosphaeria + 4368 + + + Gonium + 4369 + + + Gonyaulax + 4370 + + + Gonyaulax monilata + 4371 + + + Guinardia + 4372 + + + Guinardia flaccida + 4373 + + + Gymnodinium + 4374 + + + Gyrosigma + 4375 + + + Gyrosigma balticum + 4376 + + + Haematococcus + 4377 + + + Hapalosiphon + 4378 + + + Hemiaulus + 4379 + + + Hemiaulus hauckii + 4380 + + + Hemiaulus membranaceous + 4381 + + + Hemiaulus sinensis + 4382 + + + Hyalotheca + 4384 + + + Hydrodictyon + 4385 + + + Hydrosera + 4386 + + + Hypnodinium + 4387 + + + Keriochlamys + 4388 + + + Kirchneriella + 4389 + + + Lagerheimia quadriseta + 4390 + + + Lagerheimia (chodatella) + 4391 + + + Lauderia + 4392 + + + Lauderia borealis + 4393 + + + Leptocylindricus + 4394 + + + Leptocylindricus danicus + 4395 + + + Licmophora + 4396 + + + Lithodesmium undulatum + 4397 + + + Lyngbya + 4398 + + + Mallomonas + 4399 + + + Mallomonas pseudocoronata + 4400 + + + Melosira + 4401 + + + Melosira crenulata + 4402 + + + Melosira distans + 4403 + + + Melosira granulata + 4404 + + + Melosira herzogii + 4405 + + + Melosira moniliformis + 4406 + + + Melosira numuloides + 4407 + + + Melosira varians + 4408 + + + Meridion + 4409 + + + Merismopedia + 4410 + + + Micractinium + 4411 + + + Micrasterias + 4412 + + + Microspora + 4413 + + + Mougeotia + 4414 + + + Mougeotia scalaris + 4415 + + + Nanochloris + 4416 + + + Navicula + 4417 + + + Nephrocytium + 4418 + + + Nephrocytium limneticum + 4419 + + + Nitzschia + 4420 + + + Nitzschia closterium + 4421 + + + Nitzschia dubia + 4422 + + + Nitzschia holsatica + 4423 + + + Nitzschia hungarica + 4424 + + + Nitzschia longissima + 4425 + + + Nitzschia lorenziana + 4426 + + + Nitzschia palea + 4427 + + + Nitzschia paradoxa + 4428 + + + Nitzschia pungens + 4429 + + + Nitzschia seriata + 4430 + + + Nitzschia sigma + 4431 + + + Nitzschia sigmoidea + 4432 + + + Nodularia + 4433 + + + Nostoc + 4434 + + + Oedogonium + 4435 + + + Oocystis + 4436 + + + Opephora + 4437 + + + Ophiocytium + 4438 + + + Oscillatoria + 4439 + + + Ourococcus + 4441 + + + Oxytoxum + 4442 + + + Palmella + 4443 + + + Palmellococcus + 4444 + + + Pandorina + 4445 + + + Pectodictyon + 4446 + + + Pediastrum + 4447 + + + Pediastrum biradiatum + 4448 + + + Pediastrum boryanum + 4449 + + + Pediastrum duplex + 4450 + + + Pediastrum integrum + 4451 + + + Pediastrum simplex + 4452 + + + Peridinium + 4453 + + + Peridinium claudicans + 4454 + + + Peridinium tuba + 4455 + + + Peridinium venustum + 4456 + + + Phacus + 4457 + + + Phormidium + 4458 + + + Phyllobium + 4459 + + + Phytoconis + 4460 + + + Phytoplankton - unknown organism + 4461 + + + Pinnularia + 4462 + + + Planktosphaeria + 4463 + + + Planktosphaeria gelatinosa + 4464 + + + Platydorina + 4465 + + + Pleurosigma + 4466 + + + Prorocentrum + 4467 + + + Prorocentrum gracile + 4468 + + + Prorocentrum mariae-lebourae + 4469 + + + Prorocentrum maximum + 4470 + + + Protococcus + 4471 + + + Prymnesium parvum + 4472 + + + Pyrobotrys + 4473 + + + Pyrrophyta + 4474 + + + Quadrigula + 4475 + + + Quadrigula chodatii + 4476 + + + Radiofilum + 4477 + + + Rhabdoderma + 4478 + + + Rhizochrysis limnetica + 4479 + + + Rhizosolenia + 4480 + + + Rhizosolenia alata + 4481 + + + Rhizosolenia alata f. indica + 4482 + + + Rhizosolenia bergonii + 4483 + + + Rhizosolenia calcar avis + 4484 + + + Rhizosolenia castracaneis + 4485 + + + Rhizosolenia curvisetum + 4486 + + + Rhizosolenia delicatala + 4487 + + + Rhizosolenia eriensis + 4488 + + + Rhizosolenia imbricata + 4489 + + + Rhizosolenia robusta + 4490 + + + Rhizosolenia setigera + 4491 + + + Rhizosolenia shrubsolei + 4492 + + + Rhizosolenia stolterfothii + 4493 + + + Rhizosolenia styliformis + 4494 + + + Rhopalodia + 4496 + + + Rhopalodia gibba + 4497 + + + Scenedesmus + 4498 + + + Scenedesmus acuminatus + 4499 + + + Scenedesmus armatus + 4500 + + + Scenedesmus bijuga + 4501 + + + Scenedesmus denticulatus + 4502 + + + Scenedesmus dimorphus + 4503 + + + Scenedesmus quadricauda + 4504 + + + Schizomeris leibleinii + 4505 + + + Schroederia + 4506 + + + Scoliopleura + 4507 + + + Scytonema myochrous + 4508 + + + Selenastrum + 4509 + + + Skeletonema + 4510 + + + Skeletonema costatum + 4511 + + + Sphaerocystis + 4512 + + + Spirogyra + 4513 + + + Spirulina + 4514 + + + Spondylosium + 4515 + + + Staurastrum + 4516 + + + Stephanodiscus + 4517 + + + Stephanodiscus astrea + 4518 + + + Stephanopyxis + 4519 + + + Stephanopyxis palmeriana + 4520 + + + Stephanopyxis turris + 4521 + + + Stipitococcus vasiformis + 4522 + + + Striatella + 4523 + + + Surirella + 4524 + + + Surirella fastuoso + 4525 + + + Surirella striatula + 4526 + + + Synedra + 4527 + + + Synedra acus + 4528 + + + Synedra fasciculata + 4529 + + + Synedra superba + 4530 + + + Synedra ulna + 4531 + + + Synura + 4532 + + + Synura uvella + 4533 + + + Tabellaria + 4534 + + + Terpsinoe + 4535 + + + Terpsinoe americana + 4536 + + + Tetradesmus + 4537 + + + Tetraedron + 4538 + + + Tetraedron minimum + 4539 + + + Tetraedron trigonum + 4540 + + + Tetraspora lacustris + 4541 + + + Tetrastrum + 4542 + + + Thalassionema + 4543 + + + Thalassionema nitzchioides + 4544 + + + Thalassiosira + 4545 + + + Thalassiosira aestivalis + 4546 + + + Thalassiosira decipiens + 4547 + + + Thalassiosira gravida + 4548 + + + Thalassiosira rotula + 4549 + + + Thalassiothrix + 4550 + + + Thalassiothrix frauenfeldii + 4551 + + + Thalassiothrix longissima + 4552 + + + Thalassiothrix mediterranea + 4553 + + + Trachelomonas + 4554 + + + Tribonema + 4555 + + + Ulothrix + 4556 + + + Ulothrix cylindricum + 4557 + + + Ulothrix zonata + 4558 + + + Volvox + 4559 + + + Zygnema + 4560 + + + Zygnemopsis + 4561 + + + + + Fish species + 3806 + + + Percina carbonaria + 4046 + + + Percina macrolepida + 4047 + + + Percina maculata + 4048 + + + Percina sciera + 4049 + + + Percina shumardi + 4050 + + + Phenacobius mirabilis + 4051 + + + Pimephales + 4052 + + + Pimephales notatus + 4053 + + + Pimephales promelas + 4054 + + + Pimephales vigilax + 4055 + + + Plecostomus plecostomus + 4056 + + + Poecilia formosa + 4057 + + + Poecilia latipinna + 4058 + + + Pogonias cromis + 4059 + + + Polydactylus octonemus + 4060 + + + Pomatomus saltatrix + 4061 + + + Pomoxis + 4062 + + + Pomoxis annularis + 4063 + + + Pomoxis nigromaculatus + 4064 + + + Porichthys plectrodon + 4065 + + + Porichthys porosissimus + 4066 + + + Prionotus tribulus + 4067 + + + Psopoeodus emiliae + 4068 + + + Pterygoplichthys multiradiatus + 4069 + + + Pylodictis olivaris + 4070 + + + Sarda sarda + 4071 + + + Sciaenidae #/sample + 4072 + + + Sciaenops ocellata + 4073 + + + Scomberomorus maculatus + 4074 + + + Selene vomer + 4075 + + + Semotilus atromaculatus + 4076 + + + Sphoeroides parvus + 4077 + + + Stellifer lanceolatus + 4078 + + + Stizostedion vitreum + 4079 + + + Strongylura marina + 4080 + + + Symphurus plagiusa + 4081 + + + Syngnathidae + 4082 + + + Syngnathus floridae + 4083 + + + Syngnathus louisianae + 4084 + + + Syngnathus scovelli + 4085 + + + Synodus + 4086 + + + Synodus foetens + 4087 + + + Tilapia aurea, blue tilapia + 4088 + + + Tilapia mossambica + 4089 + + + Tilapia zilli + 4090 + + + Trachinotus falcatus + 4091 + + + Trichiurus lepturus + 4092 + + + Trinectes maculatus + 4093 + + + Trogloglanis pattersoni + 4094 + + + Umbrina coroides + 4095 + + + Urophycis floridanus + 4096 + + + Xiphophorus helleri + 4097 + + + Zygonectes notatus + 4098 + + + Fundulus notatus + 3908 + + + Fundulus olivaceus + 3909 + + + Fundulus pulvereus + 3910 + + + Fundulus similis + 3911 + + + Fundulus zebrinus + 3912 + + + Gambusia affinis + 3913 + + + Gambusia gaigei + 3914 + + + Gambusia geiseri + 3915 + + + Gambusia spp. + 3916 + + + Gerreidae + 3917 + + + Gnathagnus egregus + 3918 + + + Gobiesox punctulatus + 3919 + + + Gobiesox strumosus + 3920 + + + Gobiidae + 3921 + + + Gobiodes broussonneti + 3922 + + + Gobionellus boleosoma + 3923 + + + Gobionellus hastatus + 3924 + + + Gobionellus oceanicus + 3925 + + + Gobionellus shufeldti + 3926 + + + Gobiosoma bosci + 3927 + + + Gobiosoma robustum + 3928 + + + Gymnachirus texae + 3929 + + + Harengula jaguana + 3930 + + + Hemicaranx amblyrhynchus + 3931 + + + Heterandria formosa + 3932 + + + Histrio histrio + 3933 + + + Hybognathus hayi + 3934 + + + Hybognathus nuchalis + 3935 + + + Hybognathus placitus + 3936 + + + Hypleurochilus + 3937 + + + Hypostomus plecostomus + 3938 + + + Hypsoblennius + 3939 + + + Hypsoblennius ionthas + 3940 + + + Ichthyomyzon castaneus + 3941 + + + Ichthyomyzon gagei + 3942 + + + Ictaluridae + 3943 + + + Ictalurus + 3944 + + + Ictalurus furcatus + 3945 + + + Ictalurus lupus + 3946 + + + Ictalurus punctatus + 3947 + + + Ictiobus + 3948 + + + Ictiobus bubalus + 3949 + + + Ictiobus cyprinellus + 3950 + + + Ictiobus niger + 3951 + + + Individuals as non-native species + 3952 + + + Labidesthes + 3953 + + + Labidesthes sicculus + 3954 + + + Lagodon rhomboides + 3955 + + + Leiostomus xanthurus + 3956 + + + Lepisosteus + 3957 + + + Lepisosteus oculatus + 3958 + + + lepisosteus osseus + 3959 + + + Lepisosteus platostomus + 3960 + + + Lepisosteus spatula + 3961 + + + Lepomis + 3962 + + + Lepomis auritus + 3963 + + + Lepomis cyanellus + 3964 + + + Lepomis gulosus + 3965 + + + Lepomis humilis + 3966 + + + Lepomis macrochirus + 3967 + + + Lepomis macrochirus x lepomis cyanellus (#/samp) + 3968 + + + Lepomis marginatus + 3969 + + + Lepomis megalotis + 3970 + + + Lepomis microlophus + 3971 + + + Lepomis punctatus + 3972 + + + Lepomis symmetricus + 3973 + + + Lucania parva + 3974 + + + Luxilus chrysocephalus n.chrysocephal + 3975 + + + Lythrurus fumeus notropis fumeus + 3976 + + + Lythrurus umbratilis notropis umbratil + 3977 + + + Macrhybopsis aestivalis h.aestivalis + 3978 + + + Megalops atlanticus + 3979 + + + Membras martinica + 3980 + + + Menidia audens + 3981 + + + Menidia beryllina + 3982 + + + Menidia peninsulae + 3983 + + + Menticirrhus americanus + 3984 + + + Menticirrhus littoralis + 3985 + + + Microgobius gulosus + 3986 + + + Microgobius thalassinus + 3987 + + + Micropogon + 3988 + + + Micropogon undulatus + 3989 + + + Micropogonias undulatus + 3990 + + + Micropterus + 3991 + + + Micropterus dolomieu m. dolomieui + 3992 + + + Micropterus punctulatus + 3993 + + + Micropterus salmoides + 3994 + + + Micropterus treculi + 3995 + + + Minytrema melanops + 3996 + + + Morone chrysops + 3997 + + + Morone mississippiensis + 3998 + + + Morone saxatilis + 3999 + + + Morone saxatilis x m. chrysops hybrid #/sample + 4000 + + + Moxostoma congestum + 4001 + + + Moxostoma erythurum + 4002 + + + Achirus lineatus + 3807 + + + Adinia xenica + 3808 + + + Alosa chrysochloris + 3809 + + + Ambloplites rupestris + 3810 + + + Ameiurus melas ictaluarus melas + 3811 + + + Ameiurus natalis ictaluarus natalis + 3812 + + + Amia calva + 3813 + + + Ammocrypta clara + 3814 + + + Moxostoma poecilurum + 4003 + + + Mugil + 4004 + + + Mugil cephalus + 4005 + + + Mugil curema + 4006 + + + Myrophis punctatus + 4007 + + + Mystriophis punctifer + 4008 + + + Notemigonus crysoleucas + 4009 + + + Notropis + 4010 + + + Notropis amabilis + 4011 + + + Notropis amnis + 4012 + + + Notropis antherinoides + 4013 + + + Notropis atrocaudalis + 4014 + + + Notropis bairdi + 4015 + + + Notropis blennius + 4016 + + + Notropis braytoni + 4017 + + + Notropis buccula + 4018 + + + Notropis buchanani + 4019 + + + Notropis chalybaeus + 4020 + + + Notropis cornutus + 4021 + + + Notropis oxyrhyncus + 4022 + + + Notropis proserpinus + 4023 + + + Notropis sabinae + 4024 + + + Notropis shumardi + 4025 + + + Notropis stramineus + 4026 + + + Notropis texanus + 4027 + + + Notropis volucellis + 4028 + + + Noturus gyrinus + 4029 + + + Noturus nocturnus + 4030 + + + Oligoplites saurus + 4031 + + + Oncorhynchus mykiss salmo gairdneri + 4032 + + + Ophichthus gomesi + 4033 + + + Opisthonema oglinum + 4034 + + + Opsanus beta + 4035 + + + Opsopoeodus emiliae notropis emiliae + 4036 + + + Orthopristis chrysopterus + 4037 + + + Osteichthyes + 4038 + + + Paralichthys lethostigma + 4039 + + + Parexocoetus brachypterus + 4040 + + + Peprilus alepidotus + 4041 + + + Peprilus burti + 4042 + + + Peprilus paru + 4043 + + + Perca flavescens + 4044 + + + Percina caprodes + 4045 + + + Ammocrypta vivax + 3815 + + + Anchoa hepsetus + 3816 + + + Anchoa mitchilli + 3817 + + + Anguilla rostrata + 3818 + + + Anguilliformes + 3819 + + + Aphredoderus sayanus + 3820 + + + Aplodinotus grunniens + 3821 + + + Archosargus probatocephalus + 3822 + + + Arius felis + 3823 + + + Astroscopus y-graecum + 3824 + + + Astyanax mexicanus + 3825 + + + Atherinidae + 3826 + + + Bagre marinus + 3827 + + + Bairdiella chrysura + 3828 + + + Bascanichthys scuticaris + 3829 + + + Bothidae + 3830 + + + Brevoortia + 3831 + + + Brevoortia gunteri + 3832 + + + Brevoortia patronus + 3833 + + + Campostoma + 3834 + + + Campostoma anomalum + 3835 + + + Campostoma ornatum + 3836 + + + Caranx hippos + 3837 + + + Carassius auratus + 3838 + + + Carcharhinus leucas + 3839 + + + Carcharhinus limbatus + 3840 + + + Carpiodes + 3841 + + + Carpiodes carpio + 3842 + + + Centrarchus macropterus + 3843 + + + Centropomus undecimalis + 3844 + + + Centropristes philadelphicus + 3845 + + + Chaenobryttus gulosus + 3846 + + + Chaetodipterus faber + 3847 + + + Chasmodes bosquianus + 3848 + + + Chloroscombrus chrysurus + 3849 + + + Cichlasoma cyanoguttatum + 3850 + + + Cichlidae + 3851 + + + Citharichthys macrops + 3852 + + + Citharichthys spilopterus + 3853 + + + Clupeidae + 3854 + + + Ctenopharyhgodon idellus + 3855 + + + Cycleptus + 3856 + + + Cycleptus elongatus + 3857 + + + Cynoscion arenarius + 3858 + + + Cynoscion nebulosus + 3859 + + + Cynoscion nothus + 3860 + + + Cyprinella lutrensis notropis lutrensi + 3861 + + + Cyprinella venustus notropis venustus + 3862 + + + Cyprinidae + 3863 + + + Cyprinodon + 3864 + + + Cyprinodon exemius + 3865 + + + Cyprinodon rubrofluviatilis + 3866 + + + Cyprinodon spp. + 3867 + + + Cyprinodon variegatus + 3868 + + + Cyprinus carpio + 3869 + + + Dasyatis americana + 3870 + + + Dasyatis sabina + 3871 + + + Dionda + 3872 + + + Dionda episcola + 3873 + + + Dormitator maculatus + 3874 + + + Dorosoma + 3875 + + + Dorosoma cepedianum + 3876 + + + Dorosoma petenense + 3877 + + + Elassoma zonatum + 3878 + + + Eleotris pisonis + 3879 + + + Elops saurus + 3880 + + + Erimyzon oblongus + 3881 + + + Erimyzon succetta + 3882 + + + Esox americanus + 3883 + + + Esox niger + 3884 + + + Etheostoma + 3885 + + + Etheostoma asprigene + 3886 + + + Etheostoma chlorosomum + 3887 + + + Etheostoma fusiforme + 3888 + + + Etheostoma gracile + 3889 + + + Etheostoma grahmi + 3890 + + + Etheostoma histrio + 3891 + + + Etheostoma lepidum + 3892 + + + Etheostoma parvipinne + 3893 + + + Etheostoma proeliare + 3894 + + + Etheostoma radiosum + 3895 + + + Etheostoma spectabile + 3896 + + + Etheostoma whipplei + 3897 + + + Etropus crossotus + 3898 + + + Eucinostomus + 3899 + + + Eucinostomus argenteus + 3900 + + + Eucinostomus lefroyi + 3901 + + + Fundulus + 3902 + + + Fundulus blairae + 3903 + + + Fundulus chrysotus + 3904 + + + Fundulus grandis + 3905 + + + Fundulus jenkinsi + 3906 + + + Fundulus kansae + 3907 + + + + + Benthic species + 2513 + + + Traverella presidiana + 3758 + + + Trepobates + 3759 + + + Triaenodes + 3760 + + + Triaenodes injustus + 3761 + + + Tribelos + 3762 + + + Trichocladius + 3763 + + + Trichocorixa + 3764 + + + Trichoptera + 3765 + + + Tricorythidae + 3766 + + + Tricorythodes + 3767 + + + Tricorythodes albilineatus + 3768 + + + Tricorythodes albilineatus sp b + 3769 + + + Tricorythodes curvatus + 3770 + + + Trissocladius + 3771 + + + Tritigonia agassiz + 3772 + + + Tropicorbis + 3773 + + + Tropisternus + 3774 + + + Tropisternus lateralis + 3775 + + + Truncilla + 3776 + + + Tubifera (eristalis) + 3777 + + + Tubifex + 3778 + + + Tubificidae + 3779 + + + Tubulanus pellucidus + 3780 + + + Turbellaria + 3781 + + + Turbonilla + 3782 + + + Turbonilla hemphilli + 3783 + + + Turbonilla interrupta + 3784 + + + Unio + 3785 + + + Uniomerus + 3786 + + + Unionidae + 3787 + + + Uvarus + 3788 + + + Valvatidae + 3789 + + + Velia + 3790 + + + Vellidae + 3791 + + + Vioscalba loiuisianae + 3792 + + + Vitrinellidae + 3793 + + + Viviparidae + 3794 + + + Viviparus + 3795 + + + Websterinereis tridentata + 3796 + + + Wormaldia + 3797 + + + Xenochironomus + 3798 + + + Xenochironomus xenolabis + 3799 + + + Xiphocentron + 3800 + + + Zaitzevia + 3801 + + + Zalutschia + 3802 + + + Zavrelia + 3803 + + + Zealeuctra + 3804 + + + Zygoptera + 3805 + + + Psychomyiidae + 3594 + + + Pteronarcys + 3595 + + + Ptilostomis + 3596 + + + Pugesiatigrina + 3597 + + + Pycnogonid + 3598 + + + Pycnopsyche + 3599 + + + Pyralidae + 3600 + + + Pyramidella crenulata + 3601 + + + Pyrgophorus spinosus + 3602 + + + Ranatra + 3603 + + + Rangia + 3604 + + + Rangia cuneata + 3605 + + + Rangia flexuosa + 3606 + + + Redundancy - benthos + 3607 + + + Retusa canaliculata + 3608 + + + Rhagionidae + 3609 + + + Rhagovelia + 3610 + + + Rhantus + 3611 + + + Rheocricotopus + 3612 + + + Rheocricotopus fuscipes + 3613 + + + Rheotanytarsus + 3614 + + + Rheotanytarsus exiguus + 3615 + + + Rheumatobates + 3616 + + + Rhithrogena + 3617 + + + Rhithropanopeus harrisii + 3618 + + + Rhyacodrilus + 3619 + + + Rhyacophila + 3620 + + + Rhyacophilidae + 3621 + + + Rhynchocoela (nemertea) + 3622 + + + Rictaxis punctostriatus + 3623 + + + Sabella + 3624 + + + Sabella melanostigma + 3625 + + + Sabella microphthalma + 3626 + + + Sabellidae + 3627 + + + Saldidae + 3628 + + + Saldula + 3629 + + + Scatella + 3630 + + + Schistomeringos + 3631 + + + Schistomeringos rudolphi + 3632 + + + Sciomyzidae (tetanoceridae) + 3633 + + + Scirtes + 3634 + + + Scolelepis squamata + 3635 + + + Scolelepis texana + 3636 + + + Scoloplos + 3637 + + + Seila adamsi + 3638 + + + Semele proficua + 3639 + + + Serpulidae + 3640 + + + Sialis + 3641 + + + Sialodea (megaloptera) + 3642 + + + Sigambra bassi + 3643 + + + Sigambra tentaculata + 3644 + + + Simuliidae + 3645 + + + Simulium + 3646 + + + Simulium bivittatum + 3647 + + + Simulium venustum + 3648 + + + Simulium vittatum + 3649 + + + Siphlonuridae + 3650 + + + Siphilonurinae + 3651 + + + Siphlonurus + 3652 + + + Sipuncula + 3653 + + + Slavina appendiculata + 3654 + + + Smicridea + 3655 + + + Smittia + 3656 + + + Somatochlora + 3657 + + + Spanglerogyrus + 3658 + + + Sparganophilus tamesis + 3659 + + + Sperchon + 3660 + + + Sperchon texana + 3661 + + + Sphaeriidae + 3662 + + + Sphaerium + 3663 + + + Sphaerium striatinum + 3664 + + + Sphaerium transversum + 3665 + + + Sphaeromidae + 3666 + + + Spiochaetopterus oculatus + 3667 + + + Spionidae + 3668 + + + Spiophanes + 3669 + + + Spiophanes bombyx + 3670 + + + Squilla + 3671 + + + Stactobiella (tascobia) + 3672 + + + Staphylinidae + 3673 + + + Stelechomyia perpulchra + 3674 + + + Stenacron + 3675 + + + Stenelmis + 3676 + + + Stenelmis cheryl (formerly s.bicarinata) + 3677 + + + Stenelmis crenata + 3678 + + + Stenelmis decorata + 3679 + + + Stenelmis new species + 3680 + + + Stenelmis occidentalis (was s. mexicana) + 3681 + + + Stenochironomus + 3682 + + + Stenonema + 3683 + + + Stenonema femoratum + 3684 + + + Stenothoe minuta + 3685 + + + Stenus + 3686 + + + Sthenelais + 3687 + + + Stictochironomus + 3688 + + + Stilobezzia + 3689 + + + Stratiomyia + 3690 + + + Stratiomyidae + 3691 + + + Stratiomys + 3692 + + + Streblospio + 3693 + + + Streblospio benedicti + 3694 + + + Strophitus + 3695 + + + Stylochus ellipticus + 3696 + + + Stylogomphus + 3697 + + + Stylurus + 3698 + + + Suphisellus bicolor + 3699 + + + Suragina + 3700 + + + Paraonis gracilis + 3431 + + + Paraplea + 3432 + + + Parapoynx + 3433 + + + Paraprionospio pinnata + 3434 + + + Parapsyche + 3435 + + + Paratendipes nudisquama + 3436 + + + Paravelia + 3437 + + + Parthenopidae + 3438 + + + Pectinaria gouldi + 3439 + + + Pedicia + 3440 + + + Pedomoecus + 3441 + + + Pelecypoda + 3442 + + + Pelocoris + 3443 + + + Pelonomus + 3444 + + + Peloscolex + 3445 + + + Peloscolex gabriellae + 3446 + + + Peltodytes + 3447 + + + Peltoperla + 3448 + + + Penaeidae + 3449 + + + Penaeus + 3450 + + + Penaeus aztecus + 3451 + + + Penaeus setiferus + 3452 + + + Pentaneura + 3453 + + + Pentaneurini + 3454 + + + Pericoma + 3455 + + + Periploma + 3456 + + + Periploma inequale + 3457 + + + Periploma margaritaceum + 3458 + + + Periploma orbiculare + 3459 + + + Perithemis + 3460 + + + Perithemis domitia + 3461 + + + Perlesta + 3462 + + + Perlesta placida + 3463 + + + Perlidae + 3464 + + + Perlinella + 3465 + + + Perlodidae + 3466 + + + Petricola pholadiformis + 3467 + + + Petrophila + 3468 + + + Phaenopsectra + 3469 + + + Phanocerus + 3470 + + + Phascolion strombi + 3471 + + + Philopotamidae + 3472 + + + Pholas camphechiensis + 3473 + + + Syllidae + 3701 + + + Syllis cornuta + 3702 + + + Sympetrum + 3703 + + + Sympleustes glaber + 3704 + + + Syndiamesa + 3705 + + + Syrphidae + 3706 + + + Tabanidae + 3707 + + + Tabanus + 3708 + + + Tachopteryx thoreyi + 3709 + + + Taeniopterygidae + 3710 + + + Taeniopteryx + 3711 + + + Tagelus divisus + 3712 + + + Talitridae + 3713 + + + Tanaidacea + 3714 + + + Tanypodinae + 3715 + + + Tanypus + 3716 + + + Tanypus neopunctipennis + 3717 + + + Tanytarsini + 3718 + + + Tanytarsus + 3719 + + + Tanytarsus glabrescens + 3720 + + + Taphromysis bowmanii + 3721 + + + Taphromysis louisianae + 3722 + + + Tardigrada + 3723 + + + Tauriphila + 3724 + + + Teinostoma biscaynense + 3725 + + + Telebasis + 3726 + + + Tellina + 3727 + + + Tellina texana + 3728 + + + Tellina versicolor + 3729 + + + Tellinidae + 3730 + + + Telopelopia + 3731 + + + Telopelopia okaboji + 3732 + + + Tenagobia + 3733 + + + Terebella rubra + 3734 + + + Terebellidae + 3735 + + + Tetanocera + 3736 + + + Tetragoneuria + 3737 + + + Texadina baretti + 3738 + + + Texadina sphinctostoma + 3739 + + + Thalassema + 3740 + + + Tharyx + 3741 + + + Tharyx marioni + 3742 + + + Tharyx setigera + 3743 + + + Thaumaleidae + 3744 + + + Thermonectus + 3745 + + + Thiara (melanoides) tuberculata + 3746 + + + Thienemanniella + 3747 + + + Thienemannimyia + 3748 + + + Thoracica + 3749 + + + Thraulodes + 3750 + + + Thraulodes gonzalesi + 3751 + + + Throscinus + 3752 + + + Thyas + 3753 + + + Tipula + 3754 + + + Tipulidae + 3755 + + + Torrenticola + 3756 + + + Traverella + 3757 + + + Phoronis architecta + 3474 + + + Phoxocephalidae + 3475 + + + Phryganea + 3476 + + + Phyllodoce arenae + 3477 + + + Phyllodocidae + 3478 + + + Phyllogomphoides + 3479 + + + Phyllogomphoides allbrighti + 3480 + + + Phyllogomphoidea stigmatus + 3481 + + + Phylloicus ornatus + 3482 + + + Phylocentropus + 3483 + + + Physella + 3484 + + + Physella virgata + 3485 + + + Physidae + 3486 + + + Pilargidae + 3487 + + + Pilargis + 3488 + + + Pilargis berkeleyae + 3489 + + + Pinnixa + 3490 + + + Pinnixa chaetopterana + 3491 + + + Pinnixa cristata + 3492 + + + Pinnixa sayana + 3493 + + + Pinnotheres ostreum + 3494 + + + Piscicolidae + 3495 + + + Pisidium + 3496 + + + Pisidium casertanum + 3497 + + + Pista + 3498 + + + Pista cristata + 3499 + + + Pista palmata + 3500 + + + Placobdella + 3501 + + + Placobdella ornata + 3502 + + + Placobdella parasitica + 3503 + + + Planaria + 3504 + + + Planariidae + 3505 + + + Planorbella + 3506 + + + Planorbidae + 3507 + + + Planorbula + 3508 + + + Plathemis + 3509 + + + Platyhelminthes + 3510 + + + Plauditus + 3511 + + + Plecoptera + 3512 + + + Plesiopora + 3513 + + + Pleurocera + 3514 + + + Pleuroceridae + 3515 + + + Podonominae + 3516 + + + Polinices duplicatus + 3517 + + + Polycentropodidae + 3518 + + + Polycentropus + 3519 + + + Polychaeta + 3520 + + + Polydora + 3521 + + + Polydora aggregata + 3522 + + + Polydora caulleryi + 3523 + + + Polydora ciliata + 3524 + + + Polydora ligni + 3525 + + + Polydora quadrilobata + 3526 + + + Polydora socialis + 3527 + + + Polydora websteri + 3528 + + + Polymeda + 3529 + + + Polymesoda caroliniana + 3530 + + + Polynoidae + 3531 + + + Polypedilum + 3532 + + + Polypedilum digitifer + 3533 + + + Polypedilum flavum + 3534 + + + Polypedilum halterale + 3535 + + + Polypedilum illinoense + 3536 + + + Polypedilum ontario + 3537 + + + Polyplectropus + 3538 + + + Pomatiopsis + 3539 + + + Pomatoceros + 3540 + + + Pomatoceros americanus + 3541 + + + Portunidae + 3542 + + + Potamanthus + 3543 + + + Potamilla reniformis + 3544 + + + Potamothrix + 3545 + + + Potamothrix vejdovsky + 3546 + + + Potamyia + 3547 + + + Potthastia + 3548 + + + Prionospio + 3549 + + + Prionospio cirrifera + 3550 + + + Prionospio heterobranchia + 3551 + + + Prionospio pygmdea + 3552 + + + Pristina + 3553 + + + Pristina americana + 3554 + + + Pristina idrensis + 3555 + + + Pristina leidyi + 3556 + + + Pristina osborni + 3557 + + + Pristina sima + 3558 + + + Pristina synclites + 3559 + + + Probezzia + 3560 + + + Procambarus + 3561 + + + Procambarus clarki + 3562 + + + Procambarus dupratzi + 3563 + + + Procladius + 3564 + + + Procladius (holotanypus) + 3565 + + + Procloeon distinctum + 3566 + + + Procloeon rufostrigatum + 3567 + + + Procloeon, genus of mayfly + 3568 + + + Prodiamesa + 3569 + + + Progomphus + 3570 + + + Progomphus borealis + 3571 + + + Promoresia + 3572 + + + Pronoterus + 3573 + + + Mogula manhattensis + 3261 + + + Mollusca + 3262 + + + Monoculodes + 3263 + + + Monoculodes edwardsi + 3264 + + + Monopylephorus + 3265 + + + Montacuta texasiana + 3266 + + + Mooreobdella microstoma + 3267 + + + Morphocorixa + 3268 + + + Mulinia + 3269 + + + Mulinia lateralis + 3270 + + + Munroessa + 3271 + + + Musculium + 3272 + + + Myrmicinae + 3273 + + + Mysella + 3274 + + + Mysella planulata + 3275 + + + Mysidacea + 3276 + + + Mysidae + 3277 + + + Mysidopsis bahia + 3278 + + + Mysidopsis bigelowi + 3279 + + + Mysidopsis furca + 3280 + + + Mystacides + 3281 + + + Mytilidae + 3282 + + + Mytilis edulis + 3283 + + + Mytilopsis leucophaeta + 3284 + + + Myxosargus + 3285 + + + Myzobdella moorei + 3286 + + + Naididae + 3287 + + + Nadium + 3288 + + + Nais + 3289 + + + Nais communis + 3290 + + + Nais elinguis + 3291 + + + Nais pardalis + 3292 + + + Nais variabilis + 3293 + + + Nanocladius + 3294 + + + Narpus + 3295 + + + Nasiaeschna + 3296 + + + Nasiaeschna pentacantha + 3297 + + + Nassarius + 3298 + + + Nassarius acutus + 3299 + + + Nassarius vibex + 3300 + + + Natica canrema + 3301 + + + Naucoridae + 3302 + + + Neanthes + 3303 + + + Neanthes acuminata + 3304 + + + Neanthes micromma + 3305 + + + Neanthes succinea + 3306 + + + Nebrioporus + 3307 + + + Nectopsyche + 3308 + + + Nectopsyche gracilis + 3309 + + + Nehalennia + 3310 + + + Nemata (Nematoda) + 3311 + + + Nematomorpha (Gordiida) + 3312 + + + Nemertea + 3313 + + + Nemotelus + 3314 + + + Neobidessus + 3315 + + + Neochoroterpes + 3316 + + + Neoclypeodytes + 3317 + + + Neocorixa + 3318 + + + Neoelmis + 3319 + + + Neoelmis caesa + 3320 + + + Neoephemera + 3321 + + + Neogerris + 3322 + + + Neopanope Texana + 3323 + + + Neoperla + 3324 + + + Neoplea + 3325 + + + Neoplea striola + 3326 + + + Neoscatella + 3327 + + + Neotrichia + 3328 + + + Nepa + 3329 + + + Nephtys incisa + 3330 + + + Nepidae + 3331 + + + Nereidae + 3332 + + + Nereis + 3333 + + + Nereis falsa + 3334 + + + Nereis lamellosa + 3335 + + + Nereis pelagica + 3336 + + + Nereis riisei + 3337 + + + Neritidae + 3338 + + + Nerthra + 3339 + + + Neureclipsis + 3340 + + + Prostoma graecens + 3574 + + + Prostoma rubrum + 3575 + + + Protoptila + 3576 + + + Psectrocladius + 3577 + + + Psectrotanypus + 3578 + + + Psephenidae + 3579 + + + Psephenus + 3580 + + + Psephenus texanus + 3581 + + + Pseudesuccinea columella + 3582 + + + Pseudeurythoe ambigua + 3583 + + + Pseudocentroptiloides + 3584 + + + Pseudochironomus + 3585 + + + Pseudocloeon + 3586 + + + Pseudocloeon propinquum + 3587 + + + Pseudoleon + 3588 + + + Pseudolimnophila + 3589 + + + Pseudorthocladius + 3590 + + + Psychoda + 3591 + + + Psychodidae + 3592 + + + Psychomyia + 3593 + + + Hydroporus + 3094 + + + Hydropsyche + 3095 + + + Hydropsyche unid. sp. a + 3096 + + + Hydropsychidae + 3097 + + + Hydroptila + 3098 + + + Hydroptilidae + 3099 + + + Hydroscaphidae + 3100 + + + Hydrovatus + 3101 + + + Hydrozetes + 3102 + + + Hydrozoa + 3103 + + + Neurocordulia + 3341 + + + Neuroptera + 3342 + + + Nilotanypus + 3343 + + + Noctuidae + 3344 + + + Noteridae + 3345 + + + Notomastus lobatus + 3346 + + + Notonecta + 3347 + + + Notonectidae + 3348 + + + Nuculana acuta + 3349 + + + Nuculana concentrica + 3350 + + + Nudibranchia + 3351 + + + Nyctiophylax + 3352 + + + Nymphula + 3353 + + + Ochrotrichia + 3354 + + + Octogomphus + 3355 + + + Odonata + 3356 + + + Odontoceridae + 3357 + + + Odontomyia + 3358 + + + Odostomia + 3359 + + + Odostomia gibossa + 3360 + + + Odostomia impressa + 3361 + + + Odostomia laevigata + 3362 + + + Oecetis + 3363 + + + Oecetis avara + 3364 + + + Oecetis cincerascens + 3365 + + + Oecetis eddlestoni + 3366 + + + Oecetis unid. sp. c + 3367 + + + Ogyrides alphaerostris + 3368 + + + Oligochaeta + 3369 + + + Oligoneuriidae + 3370 + + + Onuphidae + 3371 + + + Onuphis eremita + 3372 + + + Onuphis magna + 3373 + + + Opheliidae + 3374 + + + Ophidonais serpentina + 3375 + + + Ophiogomphus + 3376 + + + Ophiuroidea + 3377 + + + Orbiniidae + 3378 + + + Orconectes + 3379 + + + Ordobrevia + 3380 + + + Oreianthus + 3381 + + + Oreodytes + 3382 + + + Ormosia + 3383 + + + Orthemis + 3384 + + + Orthemis ferruginea + 3385 + + + Orthocladiinae + 3386 + + + Orthocladius + 3387 + + + Orthocladius dentifer + 3388 + + + Orthocladius sobrinus + 3389 + + + Orthopodomyia + 3390 + + + Orthotrichia + 3391 + + + Ostracoda + 3392 + + + Owenia + 3393 + + + Owenia fusiformis + 3394 + + + Oxyethira + 3395 + + + Oxyurostylis smithi + 3396 + + + Pachydiplax + 3397 + + + Palaemonetes + 3398 + + + Palaemonetes intermedius + 3399 + + + Palaemonetes kadiakensis + 3400 + + + Palaemonetes pugia + 3401 + + + Palaemonidae + 3402 + + + Paleanotus heteroseta + 3403 + + + Palingeniidae + 3404 + + + Palpomyia + 3405 + + + Palpomyia tibialis + 3406 + + + Paludestrina + 3407 + + + Pandora trilineata + 3408 + + + Panopeus + 3409 + + + Parachironomus + 3410 + + + Paracladopelma + 3411 + + + Paracloeodes + 3412 + + + Paracymus + 3413 + + + Paracymus subcuprens + 3414 + + + Paraeurythoe americana + 3415 + + + Paragnetina + 3416 + + + Paragyractis + 3417 + + + Paragyractis truckedlis + 3418 + + + Paralauterborniella + 3419 + + + Paraleptophlebia + 3420 + + + Parametriocnemus + 3421 + + + Paramphinome + 3422 + + + Paramphinome sp. b + 3423 + + + Paranais literalis + 3424 + + + Parandalia + 3425 + + + Parandalia americana + 3426 + + + Parandalia fauveli + 3427 + + + Parandalia ocularis + 3428 + + + Paranthus rapiformis + 3429 + + + Paraonidae + 3430 + + + Hydryphantes + 3104 + + + Hygrotus + 3105 + + + Hymenoptara + 3106 + + + Hyponeura + 3107 + + + Hyponeura lucens + 3108 + + + Ilybius + 3109 + + + Ilyodrilus templetoni + 3110 + + + Insecta + 3111 + + + Ischadium recurvum + 3112 + + + Ischnura + 3113 + + + Isogenus (Hydroperla) + 3114 + + + Isonychia + 3115 + + + Isonychia sicca + 3116 + + + Isonychia sicca manca + 3117 + + + Isoperla + 3118 + + + Isopoda + 3119 + + + Isotomidae + 3120 + + + Ithytrichia + 3121 + + + Kiefferulus + 3122 + + + Kurtziella + 3123 + + + Labiobaetis + 3124 + + + Laccobius + 3125 + + + Laccophilus terminalis + 3126 + + + Laeonereis culveri + 3127 + + + Lampsilis + 3128 + + + Lampyridae + 3129 + + + Lauterborniella + 3130 + + + Leitoscoloplos + 3131 + + + Leitoscoloplos foliosus + 3132 + + + Leitoscoloplos fragilis + 3133 + + + Lembos smithi + 3134 + + + Lepidonotus sublevis + 3135 + + + Lepidoptera + 3136 + + + Leptocella + 3137 + + + Leptoceridae + 3138 + + + Leptocerus + 3139 + + + Leptochela serratorbita + 3140 + + + Leptoconops + 3141 + + + Leptohyphes + 3142 + + + Leptohyphes packeri + 3143 + + + Leptohyphes vescus + 3144 + + + Leptophlebia + 3145 + + + Leptophlebiidae + 3146 + + + Lestes + 3147 + + + Lestidae + 3148 + + + Lethocerus + 3149 + + + Leucon americanus + 3150 + + + Leucotricha + 3151 + + + Leucrocuta + 3152 + + + Levinsenia + 3153 + + + Libellula + 3154 + + + Libellulidae + 3155 + + + Limnephilidae + 3156 + + + Limnephilus + 3157 + + + Limnochares + 3158 + + + Limnocoris + 3159 + + + Limnocoris lutzi + 3160 + + + Limnocythere + 3161 + + + Limnodrilus + 3162 + + + Limnodrilus cervix + 3163 + + + Limnodrilus hoffmeisteri + 3164 + + + Limnodrilus udekemianus + 3165 + + + Limnophila + 3166 + + + Limnophora + 3167 + + + Limnophora aequifrons + 3168 + + + Limnoporus + 3169 + + + Limonia + 3170 + + + Lineus pallidus + 3171 + + + Liodessus + 3172 + + + Lipogomphus + 3173 + + + Lirceus + 3174 + + + Lispe + 3175 + + + Listriella + 3176 + + + Listriella barnardi + 3177 + + + Listriella clymenellae + 3178 + + + Littoridina + 3179 + + + Loimia + 3180 + + + Lumbricidae + 3181 + + + Lumbridulidae + 3182 + + + Lumbrineridae + 3183 + + + Lumbrineris + 3184 + + + Lumbrineris parvipedata + 3185 + + + Lumbrineris tenuis + 3186 + + + Lumbrineris verilli + 3187 + + + Lutrochus + 3188 + + + Lutrochus luteus + 3189 + + + Lymnaea + 3190 + + + Lymnaeidae + 3191 + + + Lynceus + 3192 + + + Lyonsia hyalina + 3193 + + + Lype + 3194 + + + Lysidice ninetta + 3195 + + + Macoma + 3196 + + + Macoma constricta + 3197 + + + Macoma mitchelli + 3198 + + + Macrelmis (formerly elsianus) + 3199 + + + Macrelmis texana (formerly elsianus texanus) + 3200 + + + Macrobrachium + 3201 + + + Macrobrachium carcinus + 3202 + + + Macromia + 3203 + + + Macromiidae + 3204 + + + Macronychus + 3205 + + + Macronychus glabratus + 3206 + + + Macrostemum + 3207 + + + Macrostomidae + 3208 + + + Macrothemis + 3209 + + + Macrovelia + 3210 + + + Magelona + 3211 + + + Magelona pettiboneae + 3212 + + + Magelona phyllisae + 3213 + + + Magelona rosea + 3214 + + + Magelona sp. 1 + 3215 + + + Maldane sarsi + 3216 + + + Maldanidae + 3217 + + + Malmgreniella + 3218 + + + Malmgreniella sp. a + 3219 + + + Mangelia plicosa + 3220 + + + Margaritifera + 3221 + + + Margaritiferidae + 3222 + + + Marilia + 3223 + + + Marilia flexuosa + 3224 + + + Marphysa + 3225 + + + Mayatrichia + 3226 + + + Mayatrichia ponta + 3227 + + + Mean point score (% of community) + 3228 + + + Mediomastus + 3229 + + + Mediomastus ambiseta + 3230 + + + Mediomastus californiensis + 3231 + + + Megalomma + 3232 + + + Megalomma bioculatum + 3233 + + + Megalops stage, crab larvae + 3234 + + + Melinna maculata + 3235 + + + Melita + 3236 + + + Melita nitida + 3237 + + + Menippe mercenaria + 3238 + + + Mercenaria campechiensis + 3239 + + + Meropelopia + 3240 + + + Mesovelia + 3241 + + + Mesovelia mulsanti + 3242 + + + Mesoveliidae + 3243 + + + Metrichia + 3244 + + + Metriocnemus + 3245 + + + Metrobates + 3246 + + + Miathyria + 3247 + + + Micrasema + 3248 + + + Microcylloepus + 3249 + + + Microcylloepus pusillis + 3250 + + + Microcylloepus texanus + 3251 + + + Micropanope + 3252 + + + Micropholis atra + 3253 + + + Micropsectra + 3254 + + + Microstoma mooreobdella + 3255 + + + Microtendipes + 3256 + + + Microvelia + 3257 + + + Minuspio cirrifera + 3258 + + + Mitrella lunata + 3259 + + + Molgula + 3260 + + + Ablabesmyia mallochi + 2517 + + + Ancistrosyllis papillosa + 2568 + + + Balanus + 2633 + + + Boyeria + 2658 + + + Caenis amica + 2683 + + + Centroptilum + 2718 + + + Chone + 2753 + + + Claassenia + 2770 + + + Corethrella + 2801 + + + Curicta + 2834 + + + Derovatellus + 2859 + + + Dosinia elegans + 2894 + + + Eudorella + 2952 + + + Gerris + 2981 + + + Graptocorixa + 3004 + + + Helobdella triserialis + 3039 + + + Abedus + 2514 + + + Ablabesmyia + 2515 + + + Ablabesmyia annulata + 2516 + + + Abra aequalis + 2518 + + + Acamptocladius + 2519 + + + Acanthagrion + 2520 + + + Acentrella + 2521 + + + Acerpenna + 2522 + + + Acetes americanus + 2523 + + + Acilius + 2524 + + + Acroneuria + 2525 + + + Acteocina canaliculata + 2526 + + + Actiniaria + 2527 + + + Aedes + 2528 + + + Aelosomatidae + 2529 + + + Aeolosoma + 2530 + + + Aeschna + 2531 + + + Aeschnidae + 2532 + + + Agabinus + 2533 + + + Agabus + 2534 + + + Agapetus + 2535 + + + Agraylea + 2536 + + + Agrion + 2537 + + + Agrionidae (Calopterygidae) + 2538 + + + Aligena texasiana + 2539 + + + Alpheus + 2540 + + + Alpheus heterochaelis + 2541 + + + Amaeana trilobata + 2542 + + + Ambrysus + 2543 + + + Ambrysus circumcinctus + 2544 + + + Ambrysus lunatus + 2545 + + + Ambrysus pulchellus + 2546 + + + Ameletus + 2547 + + + Ametropus + 2548 + + + Amnicola + 2549 + + + Ampelisca + 2550 + + + Ampelisca abdita + 2551 + + + Ampelisca vadorum + 2552 + + + Ampharetidae + 2553 + + + Amphiagrion + 2554 + + + Amphinomidae + 2555 + + + Amphipholis squamata + 2556 + + + Amphipoda + 2557 + + + Ampithoe Longimannia + 2558 + + + Amygdalum papyria + 2559 + + + Anachis avara + 2560 + + + Anachis obesa + 2561 + + + Anacroneuria + 2562 + + + Anadara floridana + 2563 + + + Anadara ovalis + 2564 + + + Anax + 2565 + + + Ancistrosyllis + 2566 + + + Ancistrosyllis jonesi + 2567 + + + Ancistrosyllis sp b + 2569 + + + Ancylidae + 2570 + + + Ancylus + 2571 + + + Ancyronyx + 2572 + + + Ancyronyx variegata + 2573 + + + Anisoptera + 2574 + + + Annelida + 2575 + + + Anodonta + 2576 + + + Anomalocardia auberiana + 2577 + + + Anomia simplex + 2578 + + + Anopheles + 2579 + + + Anoplodactylus + 2580 + + + Anostraca + 2581 + + + Anthomyiidae + 2582 + + + Aphroditacea + 2583 + + + Aphylla + 2584 + + + Aquarius + 2585 + + + Arabella mutans + 2586 + + + Arabellidae + 2587 + + + Archilestes + 2588 + + + Arenicola + 2589 + + + Arenicola cristata + 2590 + + + Argia + 2591 + + + Argia translata + 2592 + + + Argia unid. sp. C + 2593 + + + Argia unidentified species a + 2594 + + + Argia unidentified species b + 2595 + + + Argulus + 2596 + + + Aricidea + 2597 + + + Aricidea catherinae + 2598 + + + Aricidea fragilis + 2599 + + + Aricidea phylbinae + 2600 + + + Aricidea suecica + 2601 + + + Aricidea wassi + 2602 + + + Arigomphus + 2603 + + + Armandia agilis + 2604 + + + Armandia maculata + 2605 + + + Arrenurus + 2606 + + + Arthroplea + 2607 + + + Arthropoda + 2608 + + + Ascidiacea + 2609 + + + Asellidae + 2610 + + + Asellus + 2611 + + + Astacidae + 2612 + + + Asteroidea + 2613 + + + Asychis elongatus + 2614 + + + Athericidae + 2615 + + + Atherix + 2616 + + + Atherix variegeta + 2617 + + + Athripsodes + 2618 + + + Atoperla ephyre + 2619 + + + Atopsyche + 2620 + + + Atrichopogon + 2621 + + + Atyidae + 2622 + + + Atylus + 2623 + + + Aulodrilus + 2624 + + + Aulodrilus pigueti + 2625 + + + Aulodrilus pluriseta + 2626 + + + Axiothella mucosa + 2627 + + + Baetidae + 2628 + + + Baetis + 2629 + + + Baetisca + 2630 + + + Baetodes + 2631 + + + Balanoglossus + 2632 + + + Balanus eburneus + 2634 + + + Balanus truncatus + 2635 + + + Basiaeschna + 2636 + + + Basiaeschna janata + 2637 + + + Batracobdella + 2638 + + + Batracobdella phalera + 2639 + + + Bdellodrilus illuminatus + 2640 + + + Belonia saturata + 2641 + + + Belostoma + 2642 + + + Belostomatidae + 2643 + + + Benthic - unknown organism + 2644 + + + Berosus + 2645 + + + Berosus striatus + 2646 + + + Bezzia + 2647 + + + Bidessonotus + 2648 + + + Bidessus + 2649 + + + Bittacomorpha + 2650 + + + Bittacomorphella + 2651 + + + Boccardia hamata + 2652 + + + Boccardiella + 2653 + + + Boccardiella ligerica + 2654 + + + Bothrioneurum vejdovskyanum + 2655 + + + Bowmaniella + 2656 + + + Bowmaniella floridana + 2657 + + + Boyeria vinosa + 2659 + + + Brachidontes exustus + 2660 + + + Brachycentrus + 2661 + + + Brachycercus + 2662 + + + Brachyptera + 2663 + + + Brachyvatus + 2664 + + + Branchiobdella + 2665 + + + Branchiobdellida + 2666 + + + Branchiobdellidae + 2667 + + + Branchiura + 2668 + + + Branchiura sowerbyi + 2669 + + + Brechmorhoga + 2670 + + + Brechmorhoga mendax + 2671 + + + Brillia + 2672 + + + Brychius + 2673 + + + Bryocamptus zschokkei + 2674 + + + Bryozoa + 2675 + + + Buenoa + 2676 + + + Bulimidae (Amnicolidae) + 2677 + + + Bunodosoma cavernata + 2678 + + + Caecum johnsoni + 2679 + + + Caecum pulchellum + 2680 + + + Caenidae + 2681 + + + Caenis + 2682 + + + Caenis hilaris + 2684 + + + Caenis unid. sp. a + 2685 + + + Callianassa + 2686 + + + Callianassa jamaicense louisianensis + 2687 + + + Callibaetis + 2688 + + + Callibaetis californicus + 2689 + + + Callibaetis floridanus + 2690 + + + Callinectes + 2691 + + + Callinectes sapidus + 2692 + + + Calopsectra + 2693 + + + Calopterygidae + 2694 + + + Calopteryx + 2695 + + + Calphyaryphus + 2696 + + + Cambarellus + 2697 + + + Cambaridae + 2698 + + + Cambarinae + 2699 + + + Cambarus + 2700 + + + Camelobaetidius (Formerly dactylobaetis) + 2701 + + + Camelobaetidius variabilis + 2702 + + + Campeloma + 2703 + + + Campsicnemus + 2704 + + + Campsurus + 2705 + + + Cannacria + 2706 + + + Cantharus cancellarius + 2707 + + + Capitella + 2708 + + + Capitella capitata + 2709 + + + Capitellidae + 2710 + + + Capitellides jonesi + 2711 + + + Capitomastus aciculatus + 2712 + + + Caprella + 2713 + + + Caprellidae + 2714 + + + Carabidae + 2715 + + + Cardiocladius + 2716 + + + Celina + 2717 + + + Ceraclea + 2719 + + + Cerapus tubularius + 2720 + + + Ceratocephale + 2721 + + + Ceratonereis + 2722 + + + Ceratonereis irritabilis + 2723 + + + Ceratonereis tridentata + 2724 + + + Ceratopogonidae (heleidae) + 2725 + + + Ceratopsyche + 2726 + + + Cerebratulus + 2727 + + + Cerebratulus lacteus + 2728 + + + Cernotina + 2729 + + + Chaetogaster + 2730 + + + Chaetognatha + 2731 + + + Chaetozone + 2732 + + + Chaoboridae + 2733 + + + Chaoborus + 2734 + + + Chaoborus punctipennis + 2735 + + + Chauliodes + 2736 + + + Cheumatopsyche + 2737 + + + Chimarra + 2738 + + + Chimarra unidentified species a + 2739 + + + Chione cancelata + 2740 + + + Chione clenchi + 2741 + + + Chiridotea + 2742 + + + Chironomidae + 2743 + + + Chironominae + 2744 + + + Chironomus + 2745 + + + Chironomus attenuatus + 2746 + + + Chironomus decorus + 2747 + + + Chironomus riparius + 2748 + + + Chironomus tentans + 2749 + + + Chlamydotheca + 2750 + + + Chlamydotheca arcuata + 2751 + + + Chlorotabanus + 2752 + + + Chone americana + 2754 + + + Chone duneri + 2755 + + + Choroterpes + 2756 + + + Choroterpes mexicanus + 2757 + + + Chrysomelidae + 2758 + + + Chrysops + 2759 + + + Cicadellidae + 2760 + + + Cincinnatia cincinnatiensis + 2761 + + + Cinygma + 2762 + + + Cinygmula + 2763 + + + Cirratulidae + 2764 + + + Cirripedia + 2765 + + + Cirrophorus + 2766 + + + Cirrophorus americanus + 2767 + + + Cirrophorus furcatus + 2768 + + + Cirrophorus lyra + 2769 + + + Cladocera + 2771 + + + Cladotanytarsus + 2772 + + + Cladotanytarsus mancus + 2773 + + + Clibanarius vittatus + 2774 + + + Climacia areolaris + 2775 + + + Clinotanypus + 2776 + + + Clymenella torquata + 2777 + + + Cnephia + 2778 + + + Cochliopa + 2779 + + + Cochliopa texana + 2780 + + + Coelotanypus + 2781 + + + Coenagrionidae + 2782 + + + Coleoptera + 2783 + + + Collembola + 2784 + + + Conchapelopia + 2785 + + + Conchapelopia fasciata + 2786 + + + Conchostraca + 2787 + + + Congeria leucophaeata + 2788 + + + Constempellina + 2789 + + + Copelatus + 2790 + + + Copepoda + 2791 + + + Cortotomus + 2792 + + + Corbicula + 2793 + + + Corbicula fluminea + 2794 + + + Corbicula manilensis + 2795 + + + Corbiculidae (cyrenidae) + 2796 + + + Corbula + 2797 + + + Corbula swiftiana + 2798 + + + Cordulegaster + 2799 + + + Corduliidae + 2800 + + + Corixidae + 2802 + + + Corophium + 2803 + + + Corophium tuberculatum + 2804 + + + Corydalidae + 2805 + + + Corydalus + 2806 + + + Corydalus cornutus + 2807 + + + Corynoneura + 2808 + + + Coryphella + 2809 + + + Cossura + 2810 + + + Cossura delta + 2811 + + + Crassinella lunulata + 2812 + + + Crassostrea virginica + 2813 + + + Cratena kaoruae + 2814 + + + Crepidula + 2815 + + + Crepidula convexa + 2816 + + + Crepidula fornicata + 2817 + + + Crepidula plana + 2818 + + + Cricotopus + 2819 + + + Cricotopus bicinctus + 2820 + + + Cricotopus tremulus + 2821 + + + Crustacea + 2822 + + + Cryphocricos + 2823 + + + Cryphocricos hungerfordi + 2824 + + + Cryptochironomus + 2825 + + + Cryptochironomus fulvus + 2826 + + + Cryptolabis + 2827 + + + Culex + 2828 + + + Culicidae + 2829 + + + Culicoides + 2830 + + + Cumacea + 2831 + + + Cumulativ abun of benthic from feed grp % of com + 2832 + + + Curculionidae + 2833 + + + Cybister + 2835 + + + Cyclaspis + 2836 + + + Cyclaspis varians + 2837 + + + Cyclopoida + 2838 + + + Cyclops navus + 2839 + + + Cyclorrhapha + 2840 + + + Cylichna Bidentata + 2841 + + + Cylloepus + 2842 + + + Cylloepus abnormis + 2843 + + + Cymatium nicobaricum + 2844 + + + Cymbiodyta + 2845 + + + Cymodoce faxoni + 2846 + + + Cyphon + 2847 + + + Cypridopsis + 2848 + + + Cypridopsis vidua + 2849 + + + Cyrenella + 2850 + + + Dactylobaetis mexicanus + 2851 + + + Daphnia pulex + 2852 + + + Dasyhelea + 2853 + + + Decamastus + 2854 + + + Decapoda + 2855 + + + Dero + 2856 + + + Dero digitata + 2857 + + + Dero trifida + 2858 + + + Diamesa + 2860 + + + Diamesinae + 2861 + + + Diastylis + 2862 + + + Diastylis quadrispinosa + 2863 + + + Diastylis sculpta + 2864 + + + Dicrotendipes + 2865 + + + Dicrotendipes modestus + 2866 + + + Dicrotendipes neomodestus + 2867 + + + Dicrotendipes nervosus + 2868 + + + Didymops + 2869 + + + Dina + 2870 + + + Dineutus + 2871 + + + Diogenidae + 2872 + + + Diopatra + 2873 + + + Diopatra cuprea + 2874 + + + Diplectrona + 2875 + + + Diplocladius + 2876 + + + Diplodonta + 2877 + + + Diplodonta semiaspera + 2878 + + + Diplothyra smythi + 2879 + + + Diptera + 2880 + + + Dispio uncinata + 2881 + + + Diversity - benthos + 2882 + + + Dixa + 2883 + + + Dixella + 2884 + + + Dixidae + 2885 + + + Dolania + 2886 + + + Dolichopodidae + 2887 + + + Dolophilodes + 2888 + + + Dominant benthic func feeding grp, % of communit + 2889 + + + Donacia + 2890 + + + Dorocordulia + 2891 + + + Dorvilleidae + 2892 + + + Dosinia discus + 2893 + + + Drilonereis + 2895 + + + Drilonereis longa + 2896 + + + Drilonereis magna + 2897 + + + Dromogomphus + 2898 + + + Dryopidae + 2899 + + + Dryops + 2900 + + + Dubiraphia + 2901 + + + Dugesia + 2902 + + + Dugesia dorotocephala + 2903 + + + Dugesia tigrina + 2904 + + + Dythemis + 2905 + + + Dytiscidae + 2906 + + + Dytiscus + 2907 + + + Eclipidrilus (mesoporodrilus) + 2908 + + + Edotea montosa + 2909 + + + Edotea triloba + 2910 + + + Ehlersileanira + 2911 + + + Ehlersileanira incisa + 2912 + + + Elimia + 2913 + + + Elimia comalensis + 2914 + + + Ellipes + 2915 + + + Elmidae + 2916 + + + Elodes + 2917 + + + Elophila + 2918 + + + Empididae + 2919 + + + Enallagma + 2920 + + + Enallagma boreale + 2921 + + + Enchytraeidae + 2922 + + + Endochironomus + 2923 + + + Enochrus + 2924 + + + Ensis minor + 2925 + + + Ephemera + 2926 + + + Ephemera varia + 2927 + + + Ephemerella + 2928 + + + Ephemerellidae + 2929 + + + Ephemeridae + 2930 + + + Ephemeroptera + 2931 + + + Ephoron + 2932 + + + Ephydra + 2933 + + + Ephydra riparia + 2934 + + + Ephydridae + 2935 + + + Epicordulia + 2936 + + + Epitheca + 2937 + + + Epitonium + 2938 + + + Epitonium albidum + 2939 + + + Epitonium humphreysi + 2940 + + + Epitonium rupicola + 2941 + + + Ept index + 2942 + + + Equitability - benthos + 2943 + + + Eriocera + 2944 + + + Erioptera + 2945 + + + Erpetogomphus + 2946 + + + Erpobdellidae + 2947 + + + Erythemis + 2948 + + + Eteone heteropoda + 2949 + + + Eteone lactea + 2950 + + + Euclymene + 2951 + + + Eudorella truncatula + 2953 + + + Eukiefferiella + 2954 + + + Eulalia + 2955 + + + Eulimastoma weberi + 2956 + + + Eumida sanguinea + 2957 + + + Eunicidae + 2958 + + + Euparyphus + 2959 + + + Eupera + 2960 + + + Eupera cubensis + 2961 + + + Eurylophella + 2962 + + + Fallceon quilleri (formerly baetis) + 2963 + + + Farrodes texanus + 2964 + + + Ferrissia + 2965 + + + Flabellifera + 2966 + + + Forcipomyia + 2967 + + + Fossaria + 2968 + + + Galerucella + 2969 + + + Gammaridae + 2970 + + + Gammarus + 2971 + + + Gammarus fasciatus + 2972 + + + Gammarus lacustris + 2973 + + + Gammarus limnaeus + 2974 + + + Gastropoda + 2975 + + + Gattyana cirrosa + 2976 + + + Gelastocoridae + 2977 + + + Gelastocoris + 2978 + + + Georyssidae + 2979 + + + Gerridae + 2980 + + + Geukensia + 2982 + + + Geukensia demissa + 2983 + + + Glossiphonia + 2984 + + + Glossiphoniidae + 2985 + + + Glossosomatidae + 2986 + + + Glycera + 2987 + + + Glycera americana + 2988 + + + Glycinde solitaria + 2989 + + + Glyptotendipes + 2990 + + + Glyptotendipes senilis + 2991 + + + Goeldichironomus + 2992 + + + Goeldichironomus holoprasinus + 2993 + + + Goeldichironomus natans gr. + 2994 + + + Goeldichironomus pictus gr. + 2995 + + + Gomphidae + 2996 + + + Gomphoides + 2997 + + + Gomphus + 2998 + + + Gomphus (arigomphus) lentulus + 2999 + + + Gomphus externus + 3000 + + + Gomphus modestus + 3001 + + + Goniadidae + 3002 + + + Gordius + 3003 + + + Gundlachia radiata + 3005 + + + Gyptis brevipalpa + 3006 + + + Gyptis vittata + 3007 + + + Gyraulus + 3008 + + + Gyretes + 3009 + + + Gyrinidae + 3010 + + + Gyrinus + 3011 + + + Habrophlebia + 3012 + + + Habrophlebiodes + 3013 + + + Hagenius + 3014 + + + Hagenius brevistylus + 3015 + + + Haliplidae + 3016 + + + Haliplus + 3017 + + + Halobates + 3018 + + + Haplotaxis + 3019 + + + Harnischia + 3020 + + + Harnischia edwardsi + 3021 + + + Hastaperla brevis + 3022 + + + Haustoriidae + 3023 + + + Hebetancylus excentricus + 3024 + + + Hebrus + 3025 + + + Heleidae + 3026 + + + Helichus + 3027 + + + Helichus immsi + 3028 + + + Helichus lithophilus + 3029 + + + Helichus suturalis + 3030 + + + Helicopsyche + 3031 + + + Helicopsychidae + 3032 + + + Helisoma + 3033 + + + Helisoma anceps + 3034 + + + Helobata + 3035 + + + Helobdella + 3036 + + + Helobdella elongata + 3037 + + + Helobdella stagnalis + 3038 + + + Helochares + 3040 + + + Helocordulia + 3041 + + + Helodidae + 3042 + + + Helophorus + 3043 + + + Hemerodromia + 3044 + + + Hemiaegina minuta + 3045 + + + Hemiptera + 3046 + + + Heptagenia + 3047 + + + Heptageniidae + 3048 + + + Herpetocypris + 3049 + + + Hesionidae + 3050 + + + Hesperocorixa + 3051 + + + Hesperophylax + 3052 + + + Hetaerina + 3053 + + + Heterelmis + 3054 + + + Heterelmis glabra + 3055 + + + Heterelmis vulnerata + 3056 + + + Heteromastus filiformis + 3057 + + + Heterotrissocladius + 3058 + + + Hexacylloepus + 3059 + + + Hexacylloepus ferrugineous + 3060 + + + Hexagenia + 3061 + + + Hexagenia limbata + 3062 + + + Hexagenia rigida + 3063 + + + Hexatoma + 3064 + + + Hilsenhoff biotic index + 3065 + + + Hirudinea + 3066 + + + Hirudinidae (Hirudidae) + 3067 + + + Hobsonia florida + 3068 + + + Holothuroida + 3069 + + + Homoeoneuria + 3070 + + + Homoptera + 3071 + + + Hyalella azteca + 3072 + + + Hydaticus + 3073 + + + Hydra + 3074 + + + Hydra carnea + 3075 + + + Hydracarina + 3076 + + + Hydrachna + 3077 + + + Hydraena + 3078 + + + Hydrobiidae + 3079 + + + Hydrobiomorpha + 3080 + + + Hydrobius + 3081 + + + Hydrocanthus + 3082 + + + Hydrochara + 3083 + + + Hydrochus + 3084 + + + Hydrodroma despiciens + 3085 + + + Hydroides + 3086 + + + Hydroides dianthus + 3087 + + + Hydrometra + 3088 + + + Hydroperla crosbyl + 3089 + + + Hydrophilidae + 3090 + + + Hydrophilus + 3091 + + + Hydrophilus triangularis + 3092 + + + Hydrophorus + 3093 + + + + + Zooplankton species + 4562 + + + Acanthocystis + 4564 + + + Callinectes + 4601 + + + Copepoda + 4634 + + + Difflugia globosa + 4661 + + + Mysidopsis almyra + 4739 + + + Trichocerca multicrinis + 4813 + + + Acanthocyclops + 4563 + + + Acartia tonsa + 4565 + + + Actinopoda + 4566 + + + Actinosphaerium + 4567 + + + Alona guttata + 4568 + + + Amoeba + 4569 + + + Amphipoda + 4570 + + + Anthomedusae + 4571 + + + Anuraeopsis + 4572 + + + Arcella + 4573 + + + Ascomorpha + 4574 + + + Ascomorphella + 4575 + + + Asplanchna + 4576 + + + Asplanchna brightwelli + 4577 + + + Asplanchna priodonta + 4578 + + + Asplanchnopus + 4579 + + + Bdelloidea + 4580 + + + Beroe + 4581 + + + Bosmina + 4582 + + + Bosmina coregoni + 4583 + + + Bosmina longirostris + 4584 + + + Brachionus + 4585 + + + Brachionus angularis + 4586 + + + Brachionus bidentatus + 4587 + + + Brachionus budapestinensis + 4588 + + + Brachionus calyciflorus + 4589 + + + Brachionus caudatus + 4590 + + + Brachionus furculatus + 4591 + + + Brachionus havanaensis + 4592 + + + Brachionus plicatilis + 4593 + + + Brachionus quadridentata + 4594 + + + Brachionus rubens + 4595 + + + Brachionus urceolaris + 4596 + + + Brachionus variabilis + 4597 + + + Brachionus zahniseri + 4598 + + + Branchiura + 4599 + + + Calanoida + 4600 + + + Camptocercus rectirostris + 4602 + + + Canthocamptus + 4603 + + + Carchesium + 4604 + + + Centropages + 4605 + + + Centropyxis + 4606 + + + Cephalodella + 4607 + + + Ceriodaphnia + 4608 + + + Ceriodaphnia lacustris + 4609 + + + Ceriodaphnia reticulata + 4610 + + + Ceriodaphnia rigaudi + 4611 + + + Ceriodaphnia rotunda + 4612 + + + Chaetognatha + 4613 + + + Chaoborus + 4614 + + + Chromogaster + 4615 + + + Chydorus + 4616 + + + Chydorus sphaericus + 4617 + + + Ciliata + 4618 + + + Ciliophora + 4619 + + + Cirripedia + 4620 + + + Cirripedia - cypris + 4621 + + + Cirripedia - nauplius + 4622 + + + Cladocera + 4623 + + + Clytemnestra + 4624 + + + Coelenterata + 4625 + + + Collotheca + 4626 + + + Collotheca pellagica + 4627 + + + Colurella + 4628 + + + Conchostraca + 4629 + + + Conochiloides + 4630 + + + Conochiloides dossuarias + 4631 + + + Conochilus + 4632 + + + Conochilus unicornis + 4633 + + + Copepoda - nauplius + 4635 + + + Crustacea - larva + 4636 + + + Ctenophora + 4637 + + + Cyclopoida + 4638 + + + Cyclops + 4639 + + + Cyclops bicuspidatus + 4640 + + + Cyclops nearcticus + 4641 + + + Cyclops vernalis + 4642 + + + Cypridopsis + 4643 + + + Daphnia + 4644 + + + Daphnia ambigua + 4645 + + + Daphnia dubia + 4646 + + + Daphnia galeata + 4647 + + + Daphnia laevis + 4648 + + + Daphnia longiremis + 4649 + + + Daphnia longispina + 4650 + + + Daphnia parvula + 4651 + + + Daphnia pulex + 4652 + + + Decapoda - zoea + 4653 + + + Diaphanosoma + 4654 + + + Diaphanosoma brachyurum + 4655 + + + Diaphanosoma leuchtenbergianum + 4656 + + + Diaptomus + 4657 + + + Diaptomus siciloides + 4658 + + + Didinium + 4659 + + + Difflugia + 4660 + + + Difflugia urecolata + 4662 + + + Diptera - larva + 4663 + + + Diurella + 4664 + + + Diversity - zooplankton + 4665 + + + Echinodermata + 4666 + + + Ectocyclops phaleratus + 4667 + + + Eggs, fish + 4668 + + + Eggs, invertebrate + 4669 + + + Encentrum + 4670 + + + Enteroplea + 4671 + + + Epiphanes + 4672 + + + Epischura + 4673 + + + Epistylis + 4674 + + + Ergasilus + 4675 + + + Eubranchipus + 4676 + + + Euchaeta + 4677 + + + Euchlanis + 4678 + + + Eucyclops + 4679 + + + Eucyclops agilis + 4680 + + + Euplotes + 4681 + + + Eurytemora + 4682 + + + Eurytemora affinis + 4683 + + + Eutintinnus + 4684 + + + Filina brachiata + 4685 + + + Filinia + 4686 + + + Filinia longiseta + 4687 + + + Filinia opoliensis + 4688 + + + Filinia terminalis + 4689 + + + Flavella + 4690 + + + Flavella panamensis + 4691 + + + Gastropoda larva + 4692 + + + Gastropus + 4693 + + + Gastropus hyptopus + 4694 + + + Gastrotricha + 4695 + + + Halicyclops + 4696 + + + Harpacticoida + 4697 + + + Harpacticus + 4698 + + + Hexarthra + 4699 + + + Hexarthra mira + 4700 + + + Holophrya + 4701 + + + Horaella + 4702 + + + Hydracarina + 4703 + + + Kellicottia + 4704 + + + Kellicottia bostoniensis + 4705 + + + Kellicottia longispina + 4706 + + + Keratella + 4707 + + + Keratella cochlearis + 4708 + + + Keratella cochlearis f. tecta + 4709 + + + Keratella earlinae + 4710 + + + Keratella gracilenta + 4711 + + + Keratella quadrata + 4712 + + + Keratella valga f. tropica + 4713 + + + Labidocera + 4714 + + + Lecane + 4715 + + + Lepadella + 4716 + + + Leydigia + 4717 + + + Leydigia acanthocercoides + 4718 + + + Leydigia quadrangularis + 4719 + + + Limnocalanus + 4720 + + + Lophocharis + 4721 + + + Lucifer faxoni + 4722 + + + Macrocyclops + 4723 + + + Macrosetella + 4724 + + + Macrothrix + 4725 + + + Mesocyclops + 4726 + + + Mesocyclops edax + 4727 + + + Microcyclops + 4728 + + + Microcyclops panamensis + 4729 + + + Moina + 4730 + + + Moina affinis + 4731 + + + Moina micrura + 4732 + + + Mollusca - larva + 4733 + + + Monogononta + 4734 + + + Monommata + 4735 + + + Monostyla + 4736 + + + Monostyla cornuta + 4737 + + + Mysidopsis + 4738 + + + Mytilina + 4740 + + + Nauplius, unknown + 4741 + + + Nebela + 4742 + + + Nemata + 4743 + + + Nemopsis bachei + 4744 + + + Notholca + 4745 + + + Notholca acuminata + 4746 + + + Notholca labis + 4747 + + + Notommata + 4748 + + + Oikopleura + 4749 + + + Oikopleura dioica + 4750 + + + Oithona + 4751 + + + Oligochaete - larvae + 4752 + + + Oncaea + 4753 + + + Orthocyclops + 4754 + + + Ostracoda + 4755 + + + Paracalanus + 4756 + + + Paracyclops + 4757 + + + Paracyclops fimbriatus + 4758 + + + Paramecium + 4759 + + + Parundella + 4760 + + + Philodina + 4761 + + + Platyias + 4762 + + + Platyias patulus + 4763 + + + Platyias quadricornis + 4764 + + + Ploesoma + 4765 + + + Podon + 4766 + + + Polyarthra + 4767 + + + Polyarthra major + 4768 + + + Polyarthra remata + 4769 + + + Polyarthra trigla (#/sq ft) + 4770 + + + Polyarthra vulgaris + 4771 + + + Polychaete - larva + 4772 + + + Polyphemus + 4773 + + + Polyphemus pediculus + 4774 + + + Pompholyx + 4775 + + + Pompholyx sulcata + 4776 + + + Proales + 4777 + + + Proplectella + 4778 + + + Protozoa + 4779 + + + Pseudodiaptomus + 4780 + + + Pseudodiaptomus coronatus + 4781 + + + Pulvinulina + 4782 + + + Rhithropanopeus harrissii + 4783 + + + Rhizopoda + 4784 + + + Rotaria + 4785 + + + Rotifera + 4786 + + + Sagitta + 4787 + + + Saphirella + 4788 + + + Scaridium + 4789 + + + Scyphozoa + 4790 + + + Senecella calanoides + 4791 + + + Sida crystallina + 4792 + + + Simocephalus + 4793 + + + Simocephalus exspinosus + 4794 + + + Stentor + 4795 + + + Stomolophus + 4796 + + + Synchaeta + 4797 + + + Synchaeta oblonga + 4798 + + + Synchaeta styla + 4799 + + + Taphromysis louisianne + 4800 + + + Testudinella + 4801 + + + Thecacineta + 4802 + + + Tintinnidae + 4803 + + + Tintinnidium + 4804 + + + Tintinnopsis + 4805 + + + Tintinnopsis beroidea + 4806 + + + Tintinnopsis kofoidi + 4807 + + + Tintinnopsis mortensis + 4808 + + + Tintinnopsis parvula + 4809 + + + Tintinnopsis tubulosa + 4810 + + + Tortanus + 4811 + + + Trichocerca + 4812 + + + Trichocerca pusilla + 4814 + + + Trichocerca rousseleti + 4815 + + + Trichocerca similis + 4816 + + + Trichotria + 4817 + + + Trochophore, unknown + 4818 + + + Trochosphaera + 4819 + + + Tropocyclops + 4820 + + + Vorticella + 4821 + + + Wierzejskiella + 4822 + + + Zooflagella + 4823 + + + + + + + Biological community + 4824 + + + Dead fish, severity + 4825 + + + Fish standard length + 4826 + + + Algae, floating mats (severity) + 4827 + + + + + Benthic + 4829 + + + Number of diptera taxa + 4838 + + + Benthic filterers (% of community) + 4830 + + + Benthic gatherers (% of community) + 4831 + + + Benthic grazers (% of community) + 4832 + + + Benthic predators (% of community) + 4833 + + + Benthic shredders (% of community) + 4834 + + + Benthos organisms - none present + 4835 + + + Benthos total abundance number per square meter + 4836 + + + Number of benthic functional feeding groups + 4837 + + + Number of ephemeroptera taxa + 4839 + + + Number of non-insect taxa + 4840 + + + Number of total of organisms per sq ft + 4841 + + + Number of total of species in sample + 4842 + + + Percent dominant (3 taxa) + 4843 + + + Percent dominant taxon, benthos + 4844 + + + Percent of individuals as chironomidae + 4845 + + + Percent of individual as ept + 4846 + + + Percent of individuals as tolerants, benthos + 4847 + + + Percent of total number as elmidae + 4848 + + + Percent of total trichoptera as hydropsychidae + 4849 + + + Ratio of intolerant to tolerant taxa, benthos + 4850 + + + Total # of benthic genera in sample + 4851 + + + Total # of families in benthic sample + 4852 + + + Total biomass, benthos grams (dry weight) + 4853 + + + Total number of intolerant taxa, benthos + 4854 + + + Total taxa richness, benthos + 4855 + + + + + Biomass, periphyton + 4857 + + + Biomass, plankton + 4859 + + + Biomass, seston + 4862 + + + Fish + 4873 + + + Fish standard length + 4826 + + + Number of individuals per minute electrofishing + 4874 + + + Number of individuals per seine haul + 4875 + + + Number of species, fish + 4876 + + + Percent of individuals as hybrids + 4877 + + + Percent of individuals as invertivores + 4878 + + + Percent of individuals as omnivores, fish + 4879 + + + Percent of individuals as piscivores, fish + 4880 + + + Percent of individuals as tolerants, fish + 4881 + + + Percent of individuals with disease or anomaly + 4882 + + + Percent tolerant + 4883 + + + Total number of darter species + 4884 + + + Total number of individuals + 4885 + + + Total number of intolerant species, fish + 4886 + + + Total number of native cyprinid species + 4887 + + + Total number of sucker species + 4888 + + + Total number of sunfish species + 4889 + + + + + Nekton + 4890 + + + Redundancy - Nekton + 4891 + + + Total number of benthic invertivore species + 4892 + + + Total number of benthic species + 4893 + + + + + Biomass, phytoplankton + 4894 + + + Phytoplankton sampled - no organisms present + 4895 + + + Phytoplankton, Total + 4896 + + + + + Biomass, zooplankton + 4897 + + + Larva, Unknown + 4898 + + + Larvae, Fish + 4899 + + + Zooplankton sampled - no organisms present + 4900 + + + Zooplankton - unknown organism + 4901 + + + Zooplankton, Total + 5025 + + + + + Algal growth potential + 4902 + + + Respiration + 4903 + + + Pigment + 5039 + + + Chlorophyll + 4864 + + + Chlorophyll a + 4865 + + + Pheophytin + 4866 + + + Chlorophyll a allomer + 4867 + + + Chlorophyll (a+b+c) + 4868 + + + Chlorophyll b + 4869 + + + Chlorophyll c + 4870 + + + Chlorophyll c1 + c2 + 4871 + + + Chlorophyll fluoresence + 4872 + + + + + Non-chlorophyll + 5040 + + + 19-Hexanoyloxyfucoxanthin + 5041 + + + 9 cis-Neoxanthin + 5042 + + + Alloxanthin + 5043 + + + Canthaxanthin + 5044 + + + Diadinoxanthin + 5045 + + + Diatoxanthin + 5046 + + + Peridinin + 5047 + + + Zeaxanthin + 5048 + + + + + + + + + Indicator Organisms + 4904 + + + Coliform, fecal + 4905 + + + Streptococci, fecal + 4906 + + + Coliform, total + 4907 + + + Actinomycetes + 4908 + + + Bacteria mix, unspecified + 4909 + + + Bacteria, nitrifiers + 4910 + + + Caliciviruses + 4911 + + + Clostridium perfringens + 4912 + + + Cryptosporidium + 4913 + + + Enterobacter cloacae + 4914 + + + Enterococci + 4915 + + + Escherichia coli + 4916 + + + Giardia + 4917 + + + Helicobacter pylori + 4918 + + + Heterotrophic bacteria + 4919 + + + Klebsiella pneumoniae + 4920 + + + Pseudomonas + 4921 + + + Pseudomonas aeruginosa + 4922 + + + Salmonella + 4923 + + + Viruses (enteric) + 4924 + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/Synonyms.xml b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/Synonyms.xml new file mode 100644 index 00000000..c972ae60 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/Synonyms.xml @@ -0,0 +1,33933 @@ + + + + 1 + + Hydrosphere + + + + 2 + Physical + Physical + Hydrosphere/ + + + 41 + Chemical + Chemical + Hydrosphere/ + + + 2511 + Biological + Biological + Hydrosphere/ + + + 2512 + Biological taxa + Biological taxa + Hydrosphere/Biological/ + + + 4904 + Indicator Organisms + Indicator Organisms + Hydrosphere/Biological/ + + + 4824 + Biological community + Biological community + Hydrosphere/Biological/ + + + 4825 + Dead fish, severity + Dead fish, severity + Hydrosphere/Biological/Biological community/ + + + 4890 + Nekton + Nekton + Hydrosphere/Biological/Biological community/ + + + 4857 + Biomass, periphyton + Biomass, periphyton + Hydrosphere/Biological/Biological community/ + + + 4859 + Biomass, plankton + Biomass, plankton + Hydrosphere/Biological/Biological community/ + + + 4862 + Biomass, seston + Biomass, seston + Hydrosphere/Biological/Biological community/ + + + 4829 + Benthic + Benthic + Hydrosphere/Biological/Biological community/ + + + 4873 + Fish + Fish + Hydrosphere/Biological/Biological community/ + + + 4894 + Biomass, phytoplankton + Biomass, phytoplankton + Hydrosphere/Biological/Biological community/ + + + 4897 + Biomass, zooplankton + Biomass, zooplankton + Hydrosphere/Biological/Biological community/ + + + 4902 + Algal growth potential + Algal growth potential + Hydrosphere/Biological/Biological community/ + + + 4903 + Respiration + Respiration + Hydrosphere/Biological/Biological community/ + + + 5039 + Pigment + Pigment + Hydrosphere/Biological/Biological community/ + + + 4830 + Benthic filterers (% of community) + Benthic filterers (% of community) + Hydrosphere/Biological/Biological community/Benthic/ + + + 4831 + Benthic gatherers (% of community) + Benthic gatherers (% of community) + Hydrosphere/Biological/Biological community/Benthic/ + + + 4832 + Benthic grazers (% of community) + Benthic grazers (% of community) + Hydrosphere/Biological/Biological community/Benthic/ + + + 4833 + Benthic predators (% of community) + Benthic predators (% of community) + Hydrosphere/Biological/Biological community/Benthic/ + + + 4834 + Benthic shredders (% of community) + Benthic shredders (% of community) + Hydrosphere/Biological/Biological community/Benthic/ + + + 4835 + Benthos organisms - none present + Benthos organisms - none present + Hydrosphere/Biological/Biological community/Benthic/ + + + 4836 + Benthos total abundance number per square meter + Benthos total abundance number per square meter + Hydrosphere/Biological/Biological community/Benthic/ + + + 4837 + Number of benthic functional feeding groups + Number of benthic functional feeding groups + Hydrosphere/Biological/Biological community/Benthic/ + + + 4838 + Number of diptera taxa + Number of diptera taxa + Hydrosphere/Biological/Biological community/Benthic/ + + + 4839 + Number of ephemeroptera taxa + Number of ephemeroptera taxa + Hydrosphere/Biological/Biological community/Benthic/ + + + 4840 + Number of non-insect taxa + Number of non-insect taxa + Hydrosphere/Biological/Biological community/Benthic/ + + + 4841 + Number of total of organisms per sq ft + Number of total of organisms per sq ft + Hydrosphere/Biological/Biological community/Benthic/ + + + 4842 + Number of total of species in sample + Number of total of species in sample + Hydrosphere/Biological/Biological community/Benthic/ + + + 4843 + Percent dominant (3 taxa) + Percent dominant (3 taxa) + Hydrosphere/Biological/Biological community/Benthic/ + + + 4844 + Percent dominant taxon, benthos + Percent dominant taxon, benthos + Hydrosphere/Biological/Biological community/Benthic/ + + + 4845 + Percent of individuals as chironomidae + Percent of individuals as chironomidae + Hydrosphere/Biological/Biological community/Benthic/ + + + 4846 + Percent of individual as ept + Percent of individual as ept + Hydrosphere/Biological/Biological community/Benthic/ + + + 4847 + Percent of individuals as tolerants, benthos + Percent of individuals as tolerants, benthos + Hydrosphere/Biological/Biological community/Benthic/ + + + 4848 + Percent of total number as elmidae + Percent of total number as elmidae + Hydrosphere/Biological/Biological community/Benthic/ + + + 4849 + Percent of total trichoptera as hydropsychidae + Percent of total trichoptera as hydropsychidae + Hydrosphere/Biological/Biological community/Benthic/ + + + 4850 + Ratio of intolerant to tolerant taxa, benthos + Ratio of intolerant to tolerant taxa, benthos + Hydrosphere/Biological/Biological community/Benthic/ + + + 4851 + Total # of benthic genera in sample + Total # of benthic genera in sample + Hydrosphere/Biological/Biological community/Benthic/ + + + 4852 + Total # of families in benthic sample + Total # of families in benthic sample + Hydrosphere/Biological/Biological community/Benthic/ + + + 4853 + Total biomass, benthos grams (dry weight) + Total biomass, benthos grams (dry weight) + Hydrosphere/Biological/Biological community/Benthic/ + + + 4854 + Total number of intolerant taxa, benthos + Total number of intolerant taxa, benthos + Hydrosphere/Biological/Biological community/Benthic/ + + + 4855 + Total taxa richness, benthos + Total taxa richness, benthos + Hydrosphere/Biological/Biological community/Benthic/ + + + 4895 + Phytoplankton sampled - no organisms present + Phytoplankton sampled - no organisms present + Hydrosphere/Biological/Biological community/Biomass, phytoplankton / + + + 4896 + Phytoplankton, Total + Phytoplankton, Total + Hydrosphere/Biological/Biological community/Biomass, phytoplankton / + + + 4898 + Larva, Unknown + Larva, Unknown + Hydrosphere/Biological/Biological community/Biomass, zooplankton/ + + + 4899 + Larvae, Fish + Larvae, Fish + Hydrosphere/Biological/Biological community/Biomass, zooplankton/ + + + 4900 + Zooplankton sampled - no organisms present + Zooplankton sampled - no organisms present + Hydrosphere/Biological/Biological community/Biomass, zooplankton/ + + + 4901 + Zooplankton - unknown organism + Zooplankton - unknown organism + Hydrosphere/Biological/Biological community/Biomass, zooplankton/ + + + 5025 + Zooplankton, Total + Zooplankton, Total + Hydrosphere/Biological/Biological community/Biomass, zooplankton/ + + + 4827 + Floating algae mats + Algae, floating mats (severity) + Hydrosphere/Biological/Biological community/Dead fish, severity/ + + + 4827 + Algae, floating mats (severity) + Algae, floating mats (severity) + Hydrosphere/Biological/Biological community/Dead fish, severity/ + + + 4826 + Fish standard length + Fish standard length + Hydrosphere/Biological/Biological community/Dead fish, severity/ + + + 4826 + Standard fish length + Fish standard length + Hydrosphere/Biological/Biological community/Dead fish, severity/ + + + 4826 + Fish standard length + Fish standard length + Hydrosphere/Biological/Biological community/Fish/ + + + 4826 + Standard fish length + Fish standard length + Hydrosphere/Biological/Biological community/Fish/ + + + 4874 + Number of individuals per minute electrofishing + Number of individuals per minute electrofishing + Hydrosphere/Biological/Biological community/Fish/ + + + 4875 + Number of individuals per seine haul + Number of individuals per seine haul + Hydrosphere/Biological/Biological community/Fish/ + + + 4876 + Number of species, fish + Number of species, fish + Hydrosphere/Biological/Biological community/Fish/ + + + 4877 + Percent of individuals as hybrids + Percent of individuals as hybrids + Hydrosphere/Biological/Biological community/Fish/ + + + 4878 + Percent of individuals as invertivores + Percent of individuals as invertivores + Hydrosphere/Biological/Biological community/Fish/ + + + 4879 + Percent of individuals as omnivores, fish + Percent of individuals as omnivores, fish + Hydrosphere/Biological/Biological community/Fish/ + + + 4880 + Percent of individuals as piscivores, fish + Percent of individuals as piscivores, fish + Hydrosphere/Biological/Biological community/Fish/ + + + 4881 + Percent of individuals as tolerants, fish + Percent of individuals as tolerants, fish + Hydrosphere/Biological/Biological community/Fish/ + + + 4882 + Percent of individuals with disease or anomaly + Percent of individuals with disease or anomaly + Hydrosphere/Biological/Biological community/Fish/ + + + 4883 + Percent tolerant + Percent tolerant + Hydrosphere/Biological/Biological community/Fish/ + + + 4884 + Total number of darter species + Total number of darter species + Hydrosphere/Biological/Biological community/Fish/ + + + 4885 + Total number of individuals + Total number of individuals + Hydrosphere/Biological/Biological community/Fish/ + + + 4886 + Total number of intolerant species, fish + Total number of intolerant species, fish + Hydrosphere/Biological/Biological community/Fish/ + + + 4887 + Total number of native cyprinid species + Total number of native cyprinid species + Hydrosphere/Biological/Biological community/Fish/ + + + 4888 + Total number of sucker species + Total number of sucker species + Hydrosphere/Biological/Biological community/Fish/ + + + 4889 + Total number of sunfish species + Total number of sunfish species + Hydrosphere/Biological/Biological community/Fish/ + + + 4891 + Redundancy - Nekton + Redundancy - Nekton + Hydrosphere/Biological/Biological community/Nekton/ + + + 4892 + Total number of benthic invertivore species + Total number of benthic invertivore species + Hydrosphere/Biological/Biological community/Nekton/ + + + 4893 + Total number of benthic species + Total number of benthic species + Hydrosphere/Biological/Biological community/Nekton/ + + + 4864 + Chlorophyll + Chlorophyll + Hydrosphere/Biological/Biological community/Pigment/ + + + 5040 + Non-chlorophyll + Non-chlorophyll + Hydrosphere/Biological/Biological community/Pigment/ + + + 4865 + Chlorophyll a + Chlorophyll a + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4866 + Pheophytin + Pheophytin + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4867 + Chlorophyll a allomer + Chlorophyll a allomer + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4868 + Chlorophyll (a+b+c) + Chlorophyll (a+b+c) + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4868 + Chlorophylls + Chlorophyll (a+b+c) + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4869 + Chlorophyll b + Chlorophyll b + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4870 + Chlorophyll c + Chlorophyll c + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4871 + Chlorophyll c1 + c2 + Chlorophyll c1 + c2 + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4872 + Chlorophyll fluoresence + Chlorophyll fluoresence + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 5041 + 19-Hexanoyloxyfucoxanthin + 19-Hexanoyloxyfucoxanthin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 5042 + 9 cis-Neoxanthin + 9 cis-Neoxanthin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 5043 + Alloxanthin + Alloxanthin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 5044 + Canthaxanthin + Canthaxanthin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 5045 + Diadinoxanthin + Diadinoxanthin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 5046 + Diatoxanthin + Diatoxanthin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 5047 + Peridinin + Peridinin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 5048 + Zeaxanthin + Zeaxanthin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 4154 + Nekton species + Nekton species + Hydrosphere/Biological/Biological taxa/ + + + 4099 + Macrophyte species + Macrophyte species + Hydrosphere/Biological/Biological taxa/ + + + 2513 + Benthic species + Benthic species + Hydrosphere/Biological/Biological taxa/ + + + 3806 + Fish species + Fish species + Hydrosphere/Biological/Biological taxa/ + + + 4192 + Phytoplankton species + Phytoplankton species + Hydrosphere/Biological/Biological taxa/ + + + 4562 + Zooplankton species + Zooplankton species + Hydrosphere/Biological/Biological taxa/ + + + 2514 + Abedus + Abedus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2515 + Ablabesmyia + Ablabesmyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2516 + Ablabesmyia annulata + Ablabesmyia annulata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2517 + Ablabesmyia mallochi + Ablabesmyia mallochi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2518 + Abra aequalis + Abra aequalis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2519 + Acamptocladius + Acamptocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2520 + Acanthagrion + Acanthagrion + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2521 + Acentrella + Acentrella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2522 + Acerpenna + Acerpenna + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2523 + Acetes americanus + Acetes americanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2524 + Acilius + Acilius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2525 + Acroneuria + Acroneuria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2526 + Acteocina canaliculata + Acteocina canaliculata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2527 + Actiniaria + Actiniaria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2528 + Aedes + Aedes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2529 + Aelosomatidae + Aelosomatidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2530 + Aeolosoma + Aeolosoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2531 + Aeschna + Aeschna + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2532 + Aeschnidae + Aeschnidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2533 + Agabinus + Agabinus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2534 + Agabus + Agabus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2535 + Agapetus + Agapetus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2536 + Agraylea + Agraylea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2537 + Agrion + Agrion + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2538 + Agrionidae (Calopterygidae) + Agrionidae (Calopterygidae) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2539 + Aligena texasiana + Aligena texasiana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2540 + Alpheus + Alpheus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2541 + Alpheus heterochaelis + Alpheus heterochaelis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2542 + Amaeana trilobata + Amaeana trilobata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2543 + Ambrysus + Ambrysus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2544 + Ambrysus circumcinctus + Ambrysus circumcinctus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2545 + Ambrysus lunatus + Ambrysus lunatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2546 + Ambrysus pulchellus + Ambrysus pulchellus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2547 + Ameletus + Ameletus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2548 + Ametropus + Ametropus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2549 + Amnicola + Amnicola + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2550 + Ampelisca + Ampelisca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2551 + Ampelisca abdita + Ampelisca abdita + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2552 + Ampelisca vadorum + Ampelisca vadorum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2553 + Ampharetidae + Ampharetidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2554 + Amphiagrion + Amphiagrion + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2555 + Amphinomidae + Amphinomidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2556 + Amphipholis squamata + Amphipholis squamata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2557 + Amphipoda + Amphipoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2558 + Ampithoe Longimannia + Ampithoe Longimannia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2559 + Amygdalum papyria + Amygdalum papyria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2560 + Anachis avara + Anachis avara + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2561 + Anachis obesa + Anachis obesa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2562 + Anacroneuria + Anacroneuria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2563 + Anadara floridana + Anadara floridana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2564 + Anadara ovalis + Anadara ovalis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2565 + Anax + Anax + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2566 + Ancistrosyllis + Ancistrosyllis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2567 + Ancistrosyllis jonesi + Ancistrosyllis jonesi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2568 + Ancistrosyllis papillosa + Ancistrosyllis papillosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2569 + Ancistrosyllis sp b + Ancistrosyllis sp b + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2570 + Ancylidae + Ancylidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2571 + Ancylus + Ancylus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2572 + Ancyronyx + Ancyronyx + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2573 + Ancyronyx variegata + Ancyronyx variegata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2574 + Anisoptera + Anisoptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2575 + Annelida + Annelida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2576 + Anodonta + Anodonta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2577 + Anomalocardia auberiana + Anomalocardia auberiana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2578 + Anomia simplex + Anomia simplex + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2579 + Anopheles + Anopheles + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2580 + Anoplodactylus + Anoplodactylus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2581 + Anostraca + Anostraca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2582 + Anthomyiidae + Anthomyiidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2583 + Aphroditacea + Aphroditacea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2584 + Aphylla + Aphylla + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2585 + Aquarius + Aquarius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2586 + Arabella mutans + Arabella mutans + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2587 + Arabellidae + Arabellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2588 + Archilestes + Archilestes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2589 + Arenicola + Arenicola + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2590 + Arenicola cristata + Arenicola cristata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2591 + Argia + Argia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2592 + Argia translata + Argia translata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2593 + Argia unid. sp. C + Argia unid. sp. C + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2594 + Argia unidentified species a + Argia unidentified species a + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2595 + Argia unidentified species b + Argia unidentified species b + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2596 + Argulus + Argulus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2597 + Aricidea + Aricidea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2598 + Aricidea catherinae + Aricidea catherinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2599 + Aricidea fragilis + Aricidea fragilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2600 + Aricidea phylbinae + Aricidea phylbinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2601 + Aricidea suecica + Aricidea suecica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2602 + Aricidea wassi + Aricidea wassi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2603 + Arigomphus + Arigomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2604 + Armandia agilis + Armandia agilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2605 + Armandia maculata + Armandia maculata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2606 + Arrenurus + Arrenurus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2607 + Arthroplea + Arthroplea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2608 + Arthropoda + Arthropoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2609 + Ascidiacea + Ascidiacea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2610 + Asellidae + Asellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2611 + Asellus + Asellus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2612 + Astacidae + Astacidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2613 + Asteroidea + Asteroidea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2614 + Asychis elongatus + Asychis elongatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2615 + Athericidae + Athericidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2616 + Atherix + Atherix + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2617 + Atherix variegeta + Atherix variegeta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2618 + Athripsodes + Athripsodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2619 + Atoperla ephyre + Atoperla ephyre + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2620 + Atopsyche + Atopsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2621 + Atrichopogon + Atrichopogon + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2622 + Atyidae + Atyidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2623 + Atylus + Atylus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2624 + Aulodrilus + Aulodrilus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2625 + Aulodrilus pigueti + Aulodrilus pigueti + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2626 + Aulodrilus pluriseta + Aulodrilus pluriseta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2627 + Axiothella mucosa + Axiothella mucosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2628 + Baetidae + Baetidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2629 + Baetis + Baetis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2630 + Baetisca + Baetisca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2631 + Baetodes + Baetodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2632 + Balanoglossus + Balanoglossus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2633 + Balanus + Balanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2634 + Balanus eburneus + Balanus eburneus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2635 + Balanus truncatus + Balanus truncatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2636 + Basiaeschna + Basiaeschna + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2637 + Basiaeschna janata + Basiaeschna janata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2638 + Batracobdella + Batracobdella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2639 + Batracobdella phalera + Batracobdella phalera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2640 + Bdellodrilus illuminatus + Bdellodrilus illuminatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2641 + Belonia saturata + Belonia saturata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2642 + Belostoma + Belostoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2643 + Belostomatidae + Belostomatidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2644 + Benthic - unknown organism + Benthic - unknown organism + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2645 + Berosus + Berosus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2646 + Berosus striatus + Berosus striatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2647 + Bezzia + Bezzia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2648 + Bidessonotus + Bidessonotus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2649 + Bidessus + Bidessus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2650 + Bittacomorpha + Bittacomorpha + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2651 + Bittacomorphella + Bittacomorphella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2652 + Boccardia hamata + Boccardia hamata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2653 + Boccardiella + Boccardiella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2654 + Boccardiella ligerica + Boccardiella ligerica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2655 + Bothrioneurum vejdovskyanum + Bothrioneurum vejdovskyanum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2656 + Bowmaniella + Bowmaniella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2657 + Bowmaniella floridana + Bowmaniella floridana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2658 + Boyeria + Boyeria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2659 + Boyeria vinosa + Boyeria vinosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2660 + Brachidontes exustus + Brachidontes exustus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2661 + Brachycentrus + Brachycentrus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2662 + Brachycercus + Brachycercus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2663 + Brachyptera + Brachyptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2664 + Brachyvatus + Brachyvatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2665 + Branchiobdella + Branchiobdella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2666 + Branchiobdellida + Branchiobdellida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2667 + Branchiobdellidae + Branchiobdellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2668 + Branchiura + Branchiura + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2669 + Branchiura sowerbyi + Branchiura sowerbyi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2670 + Brechmorhoga + Brechmorhoga + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2671 + Brechmorhoga mendax + Brechmorhoga mendax + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2672 + Brillia + Brillia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2673 + Brychius + Brychius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2674 + Bryocamptus zschokkei + Bryocamptus zschokkei + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2675 + Bryozoa + Bryozoa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2676 + Buenoa + Buenoa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2677 + Bulimidae (Amnicolidae) + Bulimidae (Amnicolidae) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2678 + Bunodosoma cavernata + Bunodosoma cavernata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2679 + Caecum johnsoni + Caecum johnsoni + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2680 + Caecum pulchellum + Caecum pulchellum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2681 + Caenidae + Caenidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2682 + Caenis + Caenis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2683 + Caenis amica + Caenis amica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2684 + Caenis hilaris + Caenis hilaris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2685 + Caenis unid. sp. a + Caenis unid. sp. a + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2686 + Callianassa + Callianassa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2687 + Callianassa jamaicense louisianensis + Callianassa jamaicense louisianensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2688 + Callibaetis + Callibaetis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2689 + Callibaetis californicus + Callibaetis californicus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2690 + Callibaetis floridanus + Callibaetis floridanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2691 + Callinectes + Callinectes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2692 + Callinectes sapidus + Callinectes sapidus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2693 + Calopsectra + Calopsectra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2694 + Calopterygidae + Calopterygidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2695 + Calopteryx + Calopteryx + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2696 + Calphyaryphus + Calphyaryphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2697 + Cambarellus + Cambarellus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2698 + Cambaridae + Cambaridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2699 + Cambarinae + Cambarinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2700 + Cambarus + Cambarus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2701 + Camelobaetidius (Formerly dactylobaetis) + Camelobaetidius (Formerly dactylobaetis) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2702 + Camelobaetidius variabilis + Camelobaetidius variabilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2703 + Campeloma + Campeloma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2704 + Campsicnemus + Campsicnemus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2705 + Campsurus + Campsurus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2706 + Cannacria + Cannacria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2707 + Cantharus cancellarius + Cantharus cancellarius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2708 + Capitella + Capitella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2709 + Capitella capitata + Capitella capitata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2710 + Capitellidae + Capitellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2711 + Capitellides jonesi + Capitellides jonesi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2712 + Capitomastus aciculatus + Capitomastus aciculatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2713 + Caprella + Caprella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2714 + Caprellidae + Caprellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2715 + Carabidae + Carabidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2716 + Cardiocladius + Cardiocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2717 + Celina + Celina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2718 + Centroptilum + Centroptilum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2719 + Ceraclea + Ceraclea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2720 + Cerapus tubularius + Cerapus tubularius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2721 + Ceratocephale + Ceratocephale + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2722 + Ceratonereis + Ceratonereis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2723 + Ceratonereis irritabilis + Ceratonereis irritabilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2724 + Ceratonereis tridentata + Ceratonereis tridentata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2725 + Ceratopogonidae (heleidae) + Ceratopogonidae (heleidae) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2726 + Ceratopsyche + Ceratopsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2727 + Cerebratulus + Cerebratulus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2728 + Cerebratulus lacteus + Cerebratulus lacteus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2729 + Cernotina + Cernotina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2730 + Chaetogaster + Chaetogaster + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2731 + Chaetognatha + Chaetognatha + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2732 + Chaetozone + Chaetozone + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2733 + Chaoboridae + Chaoboridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2734 + Chaoborus + Chaoborus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2735 + Chaoborus punctipennis + Chaoborus punctipennis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2736 + Chauliodes + Chauliodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2737 + Cheumatopsyche + Cheumatopsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2738 + Chimarra + Chimarra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2739 + Chimarra unidentified species a + Chimarra unidentified species a + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2740 + Chione cancelata + Chione cancelata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2741 + Chione clenchi + Chione clenchi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2742 + Chiridotea + Chiridotea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2743 + Chironomidae + Chironomidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2744 + Chironominae + Chironominae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2745 + Chironomus + Chironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2746 + Chironomus attenuatus + Chironomus attenuatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2747 + Chironomus decorus + Chironomus decorus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2748 + Chironomus riparius + Chironomus riparius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2749 + Chironomus tentans + Chironomus tentans + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2750 + Chlamydotheca + Chlamydotheca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2751 + Chlamydotheca arcuata + Chlamydotheca arcuata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2752 + Chlorotabanus + Chlorotabanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2753 + Chone + Chone + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2754 + Chone americana + Chone americana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2755 + Chone duneri + Chone duneri + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2756 + Choroterpes + Choroterpes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2757 + Choroterpes mexicanus + Choroterpes mexicanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2758 + Chrysomelidae + Chrysomelidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2759 + Chrysops + Chrysops + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2760 + Cicadellidae + Cicadellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2761 + Cincinnatia cincinnatiensis + Cincinnatia cincinnatiensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2762 + Cinygma + Cinygma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2763 + Cinygmula + Cinygmula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2764 + Cirratulidae + Cirratulidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2765 + Cirripedia + Cirripedia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2766 + Cirrophorus + Cirrophorus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2767 + Cirrophorus americanus + Cirrophorus americanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2768 + Cirrophorus furcatus + Cirrophorus furcatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2769 + Cirrophorus lyra + Cirrophorus lyra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2770 + Claassenia + Claassenia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2771 + Cladocera + Cladocera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2772 + Cladotanytarsus + Cladotanytarsus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2773 + Cladotanytarsus mancus + Cladotanytarsus mancus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2774 + Clibanarius vittatus + Clibanarius vittatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2775 + Climacia areolaris + Climacia areolaris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2776 + Clinotanypus + Clinotanypus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2777 + Clymenella torquata + Clymenella torquata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2778 + Cnephia + Cnephia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2779 + Cochliopa + Cochliopa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2780 + Cochliopa texana + Cochliopa texana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2781 + Coelotanypus + Coelotanypus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2782 + Coenagrionidae + Coenagrionidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2783 + Coleoptera + Coleoptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2784 + Collembola + Collembola + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2785 + Conchapelopia + Conchapelopia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2786 + Conchapelopia fasciata + Conchapelopia fasciata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2787 + Conchostraca + Conchostraca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2788 + Congeria leucophaeata + Congeria leucophaeata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2789 + Constempellina + Constempellina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2790 + Copelatus + Copelatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2791 + Copepoda + Copepoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2792 + Cortotomus + Cortotomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2793 + Corbicula + Corbicula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2794 + Corbicula fluminea + Corbicula fluminea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2795 + Corbicula manilensis + Corbicula manilensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2796 + Corbiculidae (cyrenidae) + Corbiculidae (cyrenidae) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2797 + Corbula + Corbula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2798 + Corbula swiftiana + Corbula swiftiana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2799 + Cordulegaster + Cordulegaster + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2800 + Corduliidae + Corduliidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2801 + Corethrella + Corethrella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2802 + Corixidae + Corixidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2803 + Corophium + Corophium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2804 + Corophium tuberculatum + Corophium tuberculatum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2805 + Corydalidae + Corydalidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2806 + Corydalus + Corydalus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2807 + Corydalus cornutus + Corydalus cornutus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2808 + Corynoneura + Corynoneura + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2809 + Coryphella + Coryphella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2810 + Cossura + Cossura + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2811 + Cossura delta + Cossura delta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2812 + Crassinella lunulata + Crassinella lunulata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2813 + Crassostrea virginica + Crassostrea virginica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2814 + Cratena kaoruae + Cratena kaoruae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2815 + Crepidula + Crepidula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2816 + Crepidula convexa + Crepidula convexa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2817 + Crepidula fornicata + Crepidula fornicata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2818 + Crepidula plana + Crepidula plana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2819 + Cricotopus + Cricotopus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2820 + Cricotopus bicinctus + Cricotopus bicinctus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2821 + Cricotopus tremulus + Cricotopus tremulus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2822 + Crustacea + Crustacea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2823 + Cryphocricos + Cryphocricos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2824 + Cryphocricos hungerfordi + Cryphocricos hungerfordi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2825 + Cryptochironomus + Cryptochironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2826 + Cryptochironomus fulvus + Cryptochironomus fulvus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2827 + Cryptolabis + Cryptolabis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2828 + Culex + Culex + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2829 + Culicidae + Culicidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2830 + Culicoides + Culicoides + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2831 + Cumacea + Cumacea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2832 + Cumulativ abun of benthic from feed grp % of com + Cumulativ abun of benthic from feed grp % of com + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2833 + Curculionidae + Curculionidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2834 + Curicta + Curicta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2835 + Cybister + Cybister + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2836 + Cyclaspis + Cyclaspis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2837 + Cyclaspis varians + Cyclaspis varians + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2838 + Cyclopoida + Cyclopoida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2839 + Cyclops navus + Cyclops navus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2840 + Cyclorrhapha + Cyclorrhapha + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2841 + Cylichna Bidentata + Cylichna Bidentata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2842 + Cylloepus + Cylloepus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2843 + Cylloepus abnormis + Cylloepus abnormis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2844 + Cymatium nicobaricum + Cymatium nicobaricum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2845 + Cymbiodyta + Cymbiodyta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2846 + Cymodoce faxoni + Cymodoce faxoni + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2847 + Cyphon + Cyphon + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2848 + Cypridopsis + Cypridopsis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2849 + Cypridopsis vidua + Cypridopsis vidua + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2850 + Cyrenella + Cyrenella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2851 + Dactylobaetis mexicanus + Dactylobaetis mexicanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2852 + Daphnia pulex + Daphnia pulex + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2853 + Dasyhelea + Dasyhelea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2854 + Decamastus + Decamastus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2855 + Decapoda + Decapoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2856 + Dero + Dero + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2857 + Dero digitata + Dero digitata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2858 + Dero trifida + Dero trifida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2859 + Derovatellus + Derovatellus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2860 + Diamesa + Diamesa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2861 + Diamesinae + Diamesinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2862 + Diastylis + Diastylis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2863 + Diastylis quadrispinosa + Diastylis quadrispinosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2864 + Diastylis sculpta + Diastylis sculpta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2865 + Dicrotendipes + Dicrotendipes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2866 + Dicrotendipes modestus + Dicrotendipes modestus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2867 + Dicrotendipes neomodestus + Dicrotendipes neomodestus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2868 + Dicrotendipes nervosus + Dicrotendipes nervosus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2869 + Didymops + Didymops + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2870 + Dina + Dina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2871 + Dineutus + Dineutus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2872 + Diogenidae + Diogenidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2873 + Diopatra + Diopatra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2874 + Diopatra cuprea + Diopatra cuprea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2875 + Diplectrona + Diplectrona + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2876 + Diplocladius + Diplocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2877 + Diplodonta + Diplodonta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2878 + Diplodonta semiaspera + Diplodonta semiaspera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2879 + Diplothyra smythi + Diplothyra smythi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2880 + Diptera + Diptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2881 + Dispio uncinata + Dispio uncinata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2882 + Diversity - benthos + Diversity - benthos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2883 + Dixa + Dixa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2884 + Dixella + Dixella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2885 + Dixidae + Dixidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2886 + Dolania + Dolania + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2887 + Dolichopodidae + Dolichopodidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2888 + Dolophilodes + Dolophilodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2889 + Dominant benthic func feeding grp, % of communit + Dominant benthic func feeding grp, % of communit + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2890 + Donacia + Donacia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2891 + Dorocordulia + Dorocordulia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2892 + Dorvilleidae + Dorvilleidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2893 + Dosinia discus + Dosinia discus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2894 + Dosinia elegans + Dosinia elegans + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2895 + Drilonereis + Drilonereis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2896 + Drilonereis longa + Drilonereis longa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2897 + Drilonereis magna + Drilonereis magna + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2898 + Dromogomphus + Dromogomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2899 + Dryopidae + Dryopidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2900 + Dryops + Dryops + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2901 + Dubiraphia + Dubiraphia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2902 + Dugesia + Dugesia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2903 + Dugesia dorotocephala + Dugesia dorotocephala + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2904 + Dugesia tigrina + Dugesia tigrina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2905 + Dythemis + Dythemis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2906 + Dytiscidae + Dytiscidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2907 + Dytiscus + Dytiscus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2908 + Eclipidrilus (mesoporodrilus) + Eclipidrilus (mesoporodrilus) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2909 + Edotea montosa + Edotea montosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2910 + Edotea triloba + Edotea triloba + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2911 + Ehlersileanira + Ehlersileanira + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2912 + Ehlersileanira incisa + Ehlersileanira incisa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2913 + Elimia + Elimia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2914 + Elimia comalensis + Elimia comalensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2915 + Ellipes + Ellipes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2916 + Elmidae + Elmidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2917 + Elodes + Elodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2918 + Elophila + Elophila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2919 + Empididae + Empididae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2920 + Enallagma + Enallagma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2921 + Enallagma boreale + Enallagma boreale + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2922 + Enchytraeidae + Enchytraeidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2923 + Endochironomus + Endochironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2924 + Enochrus + Enochrus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2925 + Ensis minor + Ensis minor + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2926 + Ephemera + Ephemera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2927 + Ephemera varia + Ephemera varia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2928 + Ephemerella + Ephemerella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2929 + Ephemerellidae + Ephemerellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2930 + Ephemeridae + Ephemeridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2931 + Ephemeroptera + Ephemeroptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2932 + Ephoron + Ephoron + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2933 + Ephydra + Ephydra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2934 + Ephydra riparia + Ephydra riparia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2935 + Ephydridae + Ephydridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2936 + Epicordulia + Epicordulia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2937 + Epitheca + Epitheca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2938 + Epitonium + Epitonium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2939 + Epitonium albidum + Epitonium albidum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2940 + Epitonium humphreysi + Epitonium humphreysi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2941 + Epitonium rupicola + Epitonium rupicola + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2942 + Ept index + Ept index + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2943 + Equitability - benthos + Equitability - benthos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2944 + Eriocera + Eriocera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2945 + Erioptera + Erioptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2946 + Erpetogomphus + Erpetogomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2947 + Erpobdellidae + Erpobdellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2948 + Erythemis + Erythemis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2949 + Eteone heteropoda + Eteone heteropoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2950 + Eteone lactea + Eteone lactea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2951 + Euclymene + Euclymene + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2952 + Eudorella + Eudorella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2953 + Eudorella truncatula + Eudorella truncatula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2954 + Eukiefferiella + Eukiefferiella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2955 + Eulalia + Eulalia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2956 + Eulimastoma weberi + Eulimastoma weberi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2957 + Eumida sanguinea + Eumida sanguinea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2958 + Eunicidae + Eunicidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2959 + Euparyphus + Euparyphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2960 + Eupera + Eupera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2961 + Eupera cubensis + Eupera cubensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2962 + Eurylophella + Eurylophella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2963 + Fallceon quilleri (formerly baetis) + Fallceon quilleri (formerly baetis) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2964 + Farrodes texanus + Farrodes texanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2965 + Ferrissia + Ferrissia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2966 + Flabellifera + Flabellifera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2967 + Forcipomyia + Forcipomyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2968 + Fossaria + Fossaria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2969 + Galerucella + Galerucella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2970 + Gammaridae + Gammaridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2971 + Gammarus + Gammarus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2972 + Gammarus fasciatus + Gammarus fasciatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2973 + Gammarus lacustris + Gammarus lacustris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2974 + Gammarus limnaeus + Gammarus limnaeus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2975 + Gastropoda + Gastropoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2976 + Gattyana cirrosa + Gattyana cirrosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2977 + Gelastocoridae + Gelastocoridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2978 + Gelastocoris + Gelastocoris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2979 + Georyssidae + Georyssidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2980 + Gerridae + Gerridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2981 + Gerris + Gerris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2982 + Geukensia + Geukensia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2983 + Geukensia demissa + Geukensia demissa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2984 + Glossiphonia + Glossiphonia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2985 + Glossiphoniidae + Glossiphoniidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2986 + Glossosomatidae + Glossosomatidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2987 + Glycera + Glycera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2988 + Glycera americana + Glycera americana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2989 + Glycinde solitaria + Glycinde solitaria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2990 + Glyptotendipes + Glyptotendipes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2991 + Glyptotendipes senilis + Glyptotendipes senilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2992 + Goeldichironomus + Goeldichironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2993 + Goeldichironomus holoprasinus + Goeldichironomus holoprasinus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2994 + Goeldichironomus natans gr. + Goeldichironomus natans gr. + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2995 + Goeldichironomus pictus gr. + Goeldichironomus pictus gr. + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2996 + Gomphidae + Gomphidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2997 + Gomphoides + Gomphoides + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2998 + Gomphus + Gomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2999 + Gomphus (arigomphus) lentulus + Gomphus (arigomphus) lentulus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3000 + Gomphus externus + Gomphus externus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3001 + Gomphus modestus + Gomphus modestus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3002 + Goniadidae + Goniadidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3003 + Gordius + Gordius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3004 + Graptocorixa + Graptocorixa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3005 + Gundlachia radiata + Gundlachia radiata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3006 + Gyptis brevipalpa + Gyptis brevipalpa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3007 + Gyptis vittata + Gyptis vittata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3008 + Gyraulus + Gyraulus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3009 + Gyretes + Gyretes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3010 + Gyrinidae + Gyrinidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3011 + Gyrinus + Gyrinus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3012 + Habrophlebia + Habrophlebia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3013 + Habrophlebiodes + Habrophlebiodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3014 + Hagenius + Hagenius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3015 + Hagenius brevistylus + Hagenius brevistylus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3016 + Haliplidae + Haliplidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3017 + Haliplus + Haliplus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3018 + Halobates + Halobates + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3019 + Haplotaxis + Haplotaxis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3020 + Harnischia + Harnischia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3021 + Harnischia edwardsi + Harnischia edwardsi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3022 + Hastaperla brevis + Hastaperla brevis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3023 + Haustoriidae + Haustoriidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3024 + Hebetancylus excentricus + Hebetancylus excentricus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3025 + Hebrus + Hebrus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3026 + Heleidae + Heleidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3027 + Helichus + Helichus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3028 + Helichus immsi + Helichus immsi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3029 + Helichus lithophilus + Helichus lithophilus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3030 + Helichus suturalis + Helichus suturalis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3031 + Helicopsyche + Helicopsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3032 + Helicopsychidae + Helicopsychidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3033 + Helisoma + Helisoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3034 + Helisoma anceps + Helisoma anceps + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3035 + Helobata + Helobata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3036 + Helobdella + Helobdella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3037 + Helobdella elongata + Helobdella elongata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3038 + Helobdella stagnalis + Helobdella stagnalis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3039 + Helobdella triserialis + Helobdella triserialis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3040 + Helochares + Helochares + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3041 + Helocordulia + Helocordulia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3042 + Helodidae + Helodidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3043 + Helophorus + Helophorus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3044 + Hemerodromia + Hemerodromia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3045 + Hemiaegina minuta + Hemiaegina minuta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3046 + Hemiptera + Hemiptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3047 + Heptagenia + Heptagenia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3048 + Heptageniidae + Heptageniidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3049 + Herpetocypris + Herpetocypris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3050 + Hesionidae + Hesionidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3051 + Hesperocorixa + Hesperocorixa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3052 + Hesperophylax + Hesperophylax + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3053 + Hetaerina + Hetaerina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3054 + Heterelmis + Heterelmis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3055 + Heterelmis glabra + Heterelmis glabra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3056 + Heterelmis vulnerata + Heterelmis vulnerata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3057 + Heteromastus filiformis + Heteromastus filiformis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3058 + Heterotrissocladius + Heterotrissocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3059 + Hexacylloepus + Hexacylloepus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3060 + Hexacylloepus ferrugineous + Hexacylloepus ferrugineous + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3061 + Hexagenia + Hexagenia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3062 + Hexagenia limbata + Hexagenia limbata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3063 + Hexagenia rigida + Hexagenia rigida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3064 + Hexatoma + Hexatoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3065 + Hilsenhoff biotic index + Hilsenhoff biotic index + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3066 + Hirudinea + Hirudinea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3067 + Hirudinidae (Hirudidae) + Hirudinidae (Hirudidae) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3068 + Hobsonia florida + Hobsonia florida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3069 + Holothuroida + Holothuroida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3070 + Homoeoneuria + Homoeoneuria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3071 + Homoptera + Homoptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3072 + Hyalella azteca + Hyalella azteca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3073 + Hydaticus + Hydaticus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3074 + Hydra + Hydra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3075 + Hydra carnea + Hydra carnea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3076 + Hydracarina + Hydracarina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3077 + Hydrachna + Hydrachna + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3078 + Hydraena + Hydraena + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3079 + Hydrobiidae + Hydrobiidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3080 + Hydrobiomorpha + Hydrobiomorpha + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3081 + Hydrobius + Hydrobius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3082 + Hydrocanthus + Hydrocanthus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3083 + Hydrochara + Hydrochara + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3084 + Hydrochus + Hydrochus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3085 + Hydrodroma despiciens + Hydrodroma despiciens + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3086 + Hydroides + Hydroides + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3087 + Hydroides dianthus + Hydroides dianthus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3088 + Hydrometra + Hydrometra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3089 + Hydroperla crosbyl + Hydroperla crosbyl + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3090 + Hydrophilidae + Hydrophilidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3091 + Hydrophilus + Hydrophilus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3092 + Hydrophilus triangularis + Hydrophilus triangularis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3093 + Hydrophorus + Hydrophorus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3094 + Hydroporus + Hydroporus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3095 + Hydropsyche + Hydropsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3096 + Hydropsyche unid. sp. a + Hydropsyche unid. sp. a + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3097 + Hydropsychidae + Hydropsychidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3098 + Hydroptila + Hydroptila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3099 + Hydroptilidae + Hydroptilidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3100 + Hydroscaphidae + Hydroscaphidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3101 + Hydrovatus + Hydrovatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3102 + Hydrozetes + Hydrozetes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3103 + Hydrozoa + Hydrozoa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3104 + Hydryphantes + Hydryphantes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3105 + Hygrotus + Hygrotus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3106 + Hymenoptara + Hymenoptara + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3107 + Hyponeura + Hyponeura + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3108 + Hyponeura lucens + Hyponeura lucens + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3109 + Ilybius + Ilybius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3110 + Ilyodrilus templetoni + Ilyodrilus templetoni + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3111 + Insecta + Insecta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3112 + Ischadium recurvum + Ischadium recurvum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3113 + Ischnura + Ischnura + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3114 + Isogenus (Hydroperla) + Isogenus (Hydroperla) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3115 + Isonychia + Isonychia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3116 + Isonychia sicca + Isonychia sicca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3117 + Isonychia sicca manca + Isonychia sicca manca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3118 + Isoperla + Isoperla + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3119 + Isopoda + Isopoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3120 + Isotomidae + Isotomidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3121 + Ithytrichia + Ithytrichia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3122 + Kiefferulus + Kiefferulus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3123 + Kurtziella + Kurtziella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3124 + Labiobaetis + Labiobaetis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3125 + Laccobius + Laccobius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3126 + Laccophilus terminalis + Laccophilus terminalis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3127 + Laeonereis culveri + Laeonereis culveri + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3128 + Lampsilis + Lampsilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3129 + Lampyridae + Lampyridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3130 + Lauterborniella + Lauterborniella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3131 + Leitoscoloplos + Leitoscoloplos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3132 + Leitoscoloplos foliosus + Leitoscoloplos foliosus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3133 + Leitoscoloplos fragilis + Leitoscoloplos fragilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3134 + Lembos smithi + Lembos smithi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3135 + Lepidonotus sublevis + Lepidonotus sublevis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3136 + Lepidoptera + Lepidoptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3137 + Leptocella + Leptocella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3138 + Leptoceridae + Leptoceridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3139 + Leptocerus + Leptocerus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3140 + Leptochela serratorbita + Leptochela serratorbita + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3141 + Leptoconops + Leptoconops + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3142 + Leptohyphes + Leptohyphes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3143 + Leptohyphes packeri + Leptohyphes packeri + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3144 + Leptohyphes vescus + Leptohyphes vescus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3145 + Leptophlebia + Leptophlebia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3146 + Leptophlebiidae + Leptophlebiidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3147 + Lestes + Lestes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3148 + Lestidae + Lestidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3149 + Lethocerus + Lethocerus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3150 + Leucon americanus + Leucon americanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3151 + Leucotricha + Leucotricha + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3152 + Leucrocuta + Leucrocuta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3153 + Levinsenia + Levinsenia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3154 + Libellula + Libellula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3155 + Libellulidae + Libellulidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3156 + Limnephilidae + Limnephilidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3157 + Limnephilus + Limnephilus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3158 + Limnochares + Limnochares + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3159 + Limnocoris + Limnocoris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3160 + Limnocoris lutzi + Limnocoris lutzi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3161 + Limnocythere + Limnocythere + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3162 + Limnodrilus + Limnodrilus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3163 + Limnodrilus cervix + Limnodrilus cervix + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3164 + Limnodrilus hoffmeisteri + Limnodrilus hoffmeisteri + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3165 + Limnodrilus udekemianus + Limnodrilus udekemianus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3166 + Limnophila + Limnophila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3167 + Limnophora + Limnophora + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3168 + Limnophora aequifrons + Limnophora aequifrons + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3169 + Limnoporus + Limnoporus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3170 + Limonia + Limonia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3171 + Lineus pallidus + Lineus pallidus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3172 + Liodessus + Liodessus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3173 + Lipogomphus + Lipogomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3174 + Lirceus + Lirceus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3175 + Lispe + Lispe + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3176 + Listriella + Listriella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3177 + Listriella barnardi + Listriella barnardi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3178 + Listriella clymenellae + Listriella clymenellae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3179 + Littoridina + Littoridina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3180 + Loimia + Loimia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3181 + Lumbricidae + Lumbricidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3182 + Lumbridulidae + Lumbridulidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3183 + Lumbrineridae + Lumbrineridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3184 + Lumbrineris + Lumbrineris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3185 + Lumbrineris parvipedata + Lumbrineris parvipedata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3186 + Lumbrineris tenuis + Lumbrineris tenuis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3187 + Lumbrineris verilli + Lumbrineris verilli + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3188 + Lutrochus + Lutrochus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3189 + Lutrochus luteus + Lutrochus luteus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3190 + Lymnaea + Lymnaea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3191 + Lymnaeidae + Lymnaeidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3192 + Lynceus + Lynceus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3193 + Lyonsia hyalina + Lyonsia hyalina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3194 + Lype + Lype + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3195 + Lysidice ninetta + Lysidice ninetta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3196 + Macoma + Macoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3197 + Macoma constricta + Macoma constricta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3198 + Macoma mitchelli + Macoma mitchelli + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3199 + Macrelmis (formerly elsianus) + Macrelmis (formerly elsianus) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3200 + Macrelmis texana (formerly elsianus texanus) + Macrelmis texana (formerly elsianus texanus) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3201 + Macrobrachium + Macrobrachium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3202 + Macrobrachium carcinus + Macrobrachium carcinus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3203 + Macromia + Macromia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3204 + Macromiidae + Macromiidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3205 + Macronychus + Macronychus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3206 + Macronychus glabratus + Macronychus glabratus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3207 + Macrostemum + Macrostemum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3208 + Macrostomidae + Macrostomidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3209 + Macrothemis + Macrothemis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3210 + Macrovelia + Macrovelia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3211 + Magelona + Magelona + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3212 + Magelona pettiboneae + Magelona pettiboneae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3213 + Magelona phyllisae + Magelona phyllisae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3214 + Magelona rosea + Magelona rosea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3215 + Magelona sp. 1 + Magelona sp. 1 + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3216 + Maldane sarsi + Maldane sarsi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3217 + Maldanidae + Maldanidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3218 + Malmgreniella + Malmgreniella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3219 + Malmgreniella sp. a + Malmgreniella sp. a + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3220 + Mangelia plicosa + Mangelia plicosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3221 + Margaritifera + Margaritifera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3222 + Margaritiferidae + Margaritiferidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3223 + Marilia + Marilia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3224 + Marilia flexuosa + Marilia flexuosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3225 + Marphysa + Marphysa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3226 + Mayatrichia + Mayatrichia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3227 + Mayatrichia ponta + Mayatrichia ponta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3228 + Mean point score (% of community) + Mean point score (% of community) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3229 + Mediomastus + Mediomastus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3230 + Mediomastus ambiseta + Mediomastus ambiseta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3231 + Mediomastus californiensis + Mediomastus californiensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3232 + Megalomma + Megalomma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3233 + Megalomma bioculatum + Megalomma bioculatum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3234 + Megalops stage, crab larvae + Megalops stage, crab larvae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3235 + Melinna maculata + Melinna maculata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3236 + Melita + Melita + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3237 + Melita nitida + Melita nitida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3238 + Menippe mercenaria + Menippe mercenaria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3239 + Mercenaria campechiensis + Mercenaria campechiensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3240 + Meropelopia + Meropelopia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3241 + Mesovelia + Mesovelia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3242 + Mesovelia mulsanti + Mesovelia mulsanti + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3243 + Mesoveliidae + Mesoveliidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3244 + Metrichia + Metrichia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3245 + Metriocnemus + Metriocnemus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3246 + Metrobates + Metrobates + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3247 + Miathyria + Miathyria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3248 + Micrasema + Micrasema + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3249 + Microcylloepus + Microcylloepus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3250 + Microcylloepus pusillis + Microcylloepus pusillis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3251 + Microcylloepus texanus + Microcylloepus texanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3252 + Micropanope + Micropanope + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3253 + Micropholis atra + Micropholis atra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3254 + Micropsectra + Micropsectra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3255 + Microstoma mooreobdella + Microstoma mooreobdella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3256 + Microtendipes + Microtendipes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3257 + Microvelia + Microvelia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3258 + Minuspio cirrifera + Minuspio cirrifera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3259 + Mitrella lunata + Mitrella lunata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3260 + Molgula + Molgula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3261 + Mogula manhattensis + Mogula manhattensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3262 + Mollusca + Mollusca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3263 + Monoculodes + Monoculodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3264 + Monoculodes edwardsi + Monoculodes edwardsi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3265 + Monopylephorus + Monopylephorus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3266 + Montacuta texasiana + Montacuta texasiana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3267 + Mooreobdella microstoma + Mooreobdella microstoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3268 + Morphocorixa + Morphocorixa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3269 + Mulinia + Mulinia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3270 + Mulinia lateralis + Mulinia lateralis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3271 + Munroessa + Munroessa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3272 + Musculium + Musculium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3273 + Myrmicinae + Myrmicinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3274 + Mysella + Mysella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3275 + Mysella planulata + Mysella planulata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3276 + Mysidacea + Mysidacea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3277 + Mysidae + Mysidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3278 + Mysidopsis bahia + Mysidopsis bahia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3279 + Mysidopsis bigelowi + Mysidopsis bigelowi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3280 + Mysidopsis furca + Mysidopsis furca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3281 + Mystacides + Mystacides + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3282 + Mytilidae + Mytilidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3283 + Mytilis edulis + Mytilis edulis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3284 + Mytilopsis leucophaeta + Mytilopsis leucophaeta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3285 + Myxosargus + Myxosargus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3286 + Myzobdella moorei + Myzobdella moorei + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3287 + Naididae + Naididae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3288 + Nadium + Nadium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3289 + Nais + Nais + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3290 + Nais communis + Nais communis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3291 + Nais elinguis + Nais elinguis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3292 + Nais pardalis + Nais pardalis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3293 + Nais variabilis + Nais variabilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3294 + Nanocladius + Nanocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3295 + Narpus + Narpus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3296 + Nasiaeschna + Nasiaeschna + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3297 + Nasiaeschna pentacantha + Nasiaeschna pentacantha + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3298 + Nassarius + Nassarius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3299 + Nassarius acutus + Nassarius acutus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3300 + Nassarius vibex + Nassarius vibex + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3301 + Natica canrema + Natica canrema + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3302 + Naucoridae + Naucoridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3303 + Neanthes + Neanthes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3304 + Neanthes acuminata + Neanthes acuminata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3305 + Neanthes micromma + Neanthes micromma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3306 + Neanthes succinea + Neanthes succinea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3307 + Nebrioporus + Nebrioporus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3308 + Nectopsyche + Nectopsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3309 + Nectopsyche gracilis + Nectopsyche gracilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3310 + Nehalennia + Nehalennia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3311 + Nemata (Nematoda) + Nemata (Nematoda) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3312 + Nematomorpha (Gordiida) + Nematomorpha (Gordiida) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3313 + Nemertea + Nemertea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3314 + Nemotelus + Nemotelus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3315 + Neobidessus + Neobidessus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3316 + Neochoroterpes + Neochoroterpes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3317 + Neoclypeodytes + Neoclypeodytes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3318 + Neocorixa + Neocorixa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3319 + Neoelmis + Neoelmis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3320 + Neoelmis caesa + Neoelmis caesa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3321 + Neoephemera + Neoephemera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3322 + Neogerris + Neogerris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3323 + Neopanope Texana + Neopanope Texana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3324 + Neoperla + Neoperla + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3325 + Neoplea + Neoplea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3326 + Neoplea striola + Neoplea striola + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3327 + Neoscatella + Neoscatella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3328 + Neotrichia + Neotrichia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3329 + Nepa + Nepa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3330 + Nephtys incisa + Nephtys incisa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3331 + Nepidae + Nepidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3332 + Nereidae + Nereidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3333 + Nereis + Nereis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3334 + Nereis falsa + Nereis falsa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3335 + Nereis lamellosa + Nereis lamellosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3336 + Nereis pelagica + Nereis pelagica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3337 + Nereis riisei + Nereis riisei + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3338 + Neritidae + Neritidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3339 + Nerthra + Nerthra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3340 + Neureclipsis + Neureclipsis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3341 + Neurocordulia + Neurocordulia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3342 + Neuroptera + Neuroptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3343 + Nilotanypus + Nilotanypus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3344 + Noctuidae + Noctuidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3345 + Noteridae + Noteridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3346 + Notomastus lobatus + Notomastus lobatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3347 + Notonecta + Notonecta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3348 + Notonectidae + Notonectidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3349 + Nuculana acuta + Nuculana acuta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3350 + Nuculana concentrica + Nuculana concentrica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3351 + Nudibranchia + Nudibranchia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3352 + Nyctiophylax + Nyctiophylax + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3353 + Nymphula + Nymphula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3354 + Ochrotrichia + Ochrotrichia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3355 + Octogomphus + Octogomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3356 + Odonata + Odonata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3357 + Odontoceridae + Odontoceridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3358 + Odontomyia + Odontomyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3359 + Odostomia + Odostomia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3360 + Odostomia gibossa + Odostomia gibossa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3361 + Odostomia impressa + Odostomia impressa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3362 + Odostomia laevigata + Odostomia laevigata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3363 + Oecetis + Oecetis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3364 + Oecetis avara + Oecetis avara + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3365 + Oecetis cincerascens + Oecetis cincerascens + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3366 + Oecetis eddlestoni + Oecetis eddlestoni + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3367 + Oecetis unid. sp. c + Oecetis unid. sp. c + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3368 + Ogyrides alphaerostris + Ogyrides alphaerostris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3369 + Oligochaeta + Oligochaeta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3370 + Oligoneuriidae + Oligoneuriidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3371 + Onuphidae + Onuphidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3372 + Onuphis eremita + Onuphis eremita + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3373 + Onuphis magna + Onuphis magna + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3374 + Opheliidae + Opheliidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3375 + Ophidonais serpentina + Ophidonais serpentina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3376 + Ophiogomphus + Ophiogomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3377 + Ophiuroidea + Ophiuroidea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3378 + Orbiniidae + Orbiniidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3379 + Orconectes + Orconectes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3380 + Ordobrevia + Ordobrevia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3381 + Oreianthus + Oreianthus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3382 + Oreodytes + Oreodytes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3383 + Ormosia + Ormosia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3384 + Orthemis + Orthemis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3385 + Orthemis ferruginea + Orthemis ferruginea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3386 + Orthocladiinae + Orthocladiinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3387 + Orthocladius + Orthocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3388 + Orthocladius dentifer + Orthocladius dentifer + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3389 + Orthocladius sobrinus + Orthocladius sobrinus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3390 + Orthopodomyia + Orthopodomyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3391 + Orthotrichia + Orthotrichia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3392 + Ostracoda + Ostracoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3393 + Owenia + Owenia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3394 + Owenia fusiformis + Owenia fusiformis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3395 + Oxyethira + Oxyethira + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3396 + Oxyurostylis smithi + Oxyurostylis smithi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3397 + Pachydiplax + Pachydiplax + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3398 + Palaemonetes + Palaemonetes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3399 + Palaemonetes intermedius + Palaemonetes intermedius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3400 + Palaemonetes kadiakensis + Palaemonetes kadiakensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3401 + Palaemonetes pugia + Palaemonetes pugia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3402 + Palaemonidae + Palaemonidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3403 + Paleanotus heteroseta + Paleanotus heteroseta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3404 + Palingeniidae + Palingeniidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3405 + Palpomyia + Palpomyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3406 + Palpomyia tibialis + Palpomyia tibialis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3407 + Paludestrina + Paludestrina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3408 + Pandora trilineata + Pandora trilineata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3409 + Panopeus + Panopeus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3410 + Parachironomus + Parachironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3411 + Paracladopelma + Paracladopelma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3412 + Paracloeodes + Paracloeodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3413 + Paracymus + Paracymus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3414 + Paracymus subcuprens + Paracymus subcuprens + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3415 + Paraeurythoe americana + Paraeurythoe americana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3416 + Paragnetina + Paragnetina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3417 + Paragyractis + Paragyractis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3418 + Paragyractis truckedlis + Paragyractis truckedlis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3419 + Paralauterborniella + Paralauterborniella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3420 + Paraleptophlebia + Paraleptophlebia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3421 + Parametriocnemus + Parametriocnemus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3422 + Paramphinome + Paramphinome + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3423 + Paramphinome sp. b + Paramphinome sp. b + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3424 + Paranais literalis + Paranais literalis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3425 + Parandalia + Parandalia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3426 + Parandalia americana + Parandalia americana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3427 + Parandalia fauveli + Parandalia fauveli + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3428 + Parandalia ocularis + Parandalia ocularis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3429 + Paranthus rapiformis + Paranthus rapiformis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3430 + Paraonidae + Paraonidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3431 + Paraonis gracilis + Paraonis gracilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3432 + Paraplea + Paraplea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3433 + Parapoynx + Parapoynx + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3434 + Paraprionospio pinnata + Paraprionospio pinnata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3435 + Parapsyche + Parapsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3436 + Paratendipes nudisquama + Paratendipes nudisquama + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3437 + Paravelia + Paravelia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3438 + Parthenopidae + Parthenopidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3439 + Pectinaria gouldi + Pectinaria gouldi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3440 + Pedicia + Pedicia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3441 + Pedomoecus + Pedomoecus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3442 + Pelecypoda + Pelecypoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3443 + Pelocoris + Pelocoris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3444 + Pelonomus + Pelonomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3445 + Peloscolex + Peloscolex + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3446 + Peloscolex gabriellae + Peloscolex gabriellae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3447 + Peltodytes + Peltodytes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3448 + Peltoperla + Peltoperla + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3449 + Penaeidae + Penaeidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3450 + Penaeus + Penaeus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3451 + Penaeus aztecus + Penaeus aztecus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3452 + Penaeus setiferus + Penaeus setiferus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3453 + Pentaneura + Pentaneura + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3454 + Pentaneurini + Pentaneurini + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3455 + Pericoma + Pericoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3456 + Periploma + Periploma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3457 + Periploma inequale + Periploma inequale + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3458 + Periploma margaritaceum + Periploma margaritaceum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3459 + Periploma orbiculare + Periploma orbiculare + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3460 + Perithemis + Perithemis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3461 + Perithemis domitia + Perithemis domitia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3462 + Perlesta + Perlesta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3463 + Perlesta placida + Perlesta placida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3464 + Perlidae + Perlidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3465 + Perlinella + Perlinella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3466 + Perlodidae + Perlodidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3467 + Petricola pholadiformis + Petricola pholadiformis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3468 + Petrophila + Petrophila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3469 + Phaenopsectra + Phaenopsectra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3470 + Phanocerus + Phanocerus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3471 + Phascolion strombi + Phascolion strombi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3472 + Philopotamidae + Philopotamidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3473 + Pholas camphechiensis + Pholas camphechiensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3474 + Phoronis architecta + Phoronis architecta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3475 + Phoxocephalidae + Phoxocephalidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3476 + Phryganea + Phryganea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3477 + Phyllodoce arenae + Phyllodoce arenae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3478 + Phyllodocidae + Phyllodocidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3479 + Phyllogomphoides + Phyllogomphoides + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3480 + Phyllogomphoides allbrighti + Phyllogomphoides allbrighti + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3481 + Phyllogomphoidea stigmatus + Phyllogomphoidea stigmatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3482 + Phylloicus ornatus + Phylloicus ornatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3483 + Phylocentropus + Phylocentropus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3484 + Physella + Physella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3485 + Physella virgata + Physella virgata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3486 + Physidae + Physidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3487 + Pilargidae + Pilargidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3488 + Pilargis + Pilargis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3489 + Pilargis berkeleyae + Pilargis berkeleyae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3490 + Pinnixa + Pinnixa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3491 + Pinnixa chaetopterana + Pinnixa chaetopterana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3492 + Pinnixa cristata + Pinnixa cristata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3493 + Pinnixa sayana + Pinnixa sayana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3494 + Pinnotheres ostreum + Pinnotheres ostreum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3495 + Piscicolidae + Piscicolidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3496 + Pisidium + Pisidium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3497 + Pisidium casertanum + Pisidium casertanum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3498 + Pista + Pista + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3499 + Pista cristata + Pista cristata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3500 + Pista palmata + Pista palmata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3501 + Placobdella + Placobdella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3502 + Placobdella ornata + Placobdella ornata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3503 + Placobdella parasitica + Placobdella parasitica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3504 + Planaria + Planaria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3505 + Planariidae + Planariidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3506 + Planorbella + Planorbella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3507 + Planorbidae + Planorbidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3508 + Planorbula + Planorbula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3509 + Plathemis + Plathemis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3510 + Platyhelminthes + Platyhelminthes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3511 + Plauditus + Plauditus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3512 + Plecoptera + Plecoptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3513 + Plesiopora + Plesiopora + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3514 + Pleurocera + Pleurocera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3515 + Pleuroceridae + Pleuroceridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3516 + Podonominae + Podonominae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3517 + Polinices duplicatus + Polinices duplicatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3518 + Polycentropodidae + Polycentropodidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3519 + Polycentropus + Polycentropus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3520 + Polychaeta + Polychaeta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3521 + Polydora + Polydora + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3522 + Polydora aggregata + Polydora aggregata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3523 + Polydora caulleryi + Polydora caulleryi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3524 + Polydora ciliata + Polydora ciliata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3525 + Polydora ligni + Polydora ligni + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3526 + Polydora quadrilobata + Polydora quadrilobata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3527 + Polydora socialis + Polydora socialis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3528 + Polydora websteri + Polydora websteri + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3529 + Polymeda + Polymeda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3530 + Polymesoda caroliniana + Polymesoda caroliniana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3531 + Polynoidae + Polynoidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3532 + Polypedilum + Polypedilum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3533 + Polypedilum digitifer + Polypedilum digitifer + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3534 + Polypedilum flavum + Polypedilum flavum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3535 + Polypedilum halterale + Polypedilum halterale + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3536 + Polypedilum illinoense + Polypedilum illinoense + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3537 + Polypedilum ontario + Polypedilum ontario + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3538 + Polyplectropus + Polyplectropus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3539 + Pomatiopsis + Pomatiopsis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3540 + Pomatoceros + Pomatoceros + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3541 + Pomatoceros americanus + Pomatoceros americanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3542 + Portunidae + Portunidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3543 + Potamanthus + Potamanthus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3544 + Potamilla reniformis + Potamilla reniformis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3545 + Potamothrix + Potamothrix + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3546 + Potamothrix vejdovsky + Potamothrix vejdovsky + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3547 + Potamyia + Potamyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3548 + Potthastia + Potthastia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3549 + Prionospio + Prionospio + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3550 + Prionospio cirrifera + Prionospio cirrifera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3551 + Prionospio heterobranchia + Prionospio heterobranchia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3552 + Prionospio pygmdea + Prionospio pygmdea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3553 + Pristina + Pristina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3554 + Pristina americana + Pristina americana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3555 + Pristina idrensis + Pristina idrensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3556 + Pristina leidyi + Pristina leidyi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3557 + Pristina osborni + Pristina osborni + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3558 + Pristina sima + Pristina sima + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3559 + Pristina synclites + Pristina synclites + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3560 + Probezzia + Probezzia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3561 + Procambarus + Procambarus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3562 + Procambarus clarki + Procambarus clarki + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3563 + Procambarus dupratzi + Procambarus dupratzi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3564 + Procladius + Procladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3565 + Procladius (holotanypus) + Procladius (holotanypus) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3566 + Procloeon distinctum + Procloeon distinctum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3567 + Procloeon rufostrigatum + Procloeon rufostrigatum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3568 + Procloeon, genus of mayfly + Procloeon, genus of mayfly + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3569 + Prodiamesa + Prodiamesa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3570 + Progomphus + Progomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3571 + Progomphus borealis + Progomphus borealis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3572 + Promoresia + Promoresia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3573 + Pronoterus + Pronoterus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3574 + Prostoma graecens + Prostoma graecens + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3575 + Prostoma rubrum + Prostoma rubrum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3576 + Protoptila + Protoptila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3577 + Psectrocladius + Psectrocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3578 + Psectrotanypus + Psectrotanypus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3579 + Psephenidae + Psephenidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3580 + Psephenus + Psephenus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3581 + Psephenus texanus + Psephenus texanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3582 + Pseudesuccinea columella + Pseudesuccinea columella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3583 + Pseudeurythoe ambigua + Pseudeurythoe ambigua + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3584 + Pseudocentroptiloides + Pseudocentroptiloides + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3585 + Pseudochironomus + Pseudochironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3586 + Pseudocloeon + Pseudocloeon + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3587 + Pseudocloeon propinquum + Pseudocloeon propinquum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3588 + Pseudoleon + Pseudoleon + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3589 + Pseudolimnophila + Pseudolimnophila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3590 + Pseudorthocladius + Pseudorthocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3591 + Psychoda + Psychoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3592 + Psychodidae + Psychodidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3593 + Psychomyia + Psychomyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3594 + Psychomyiidae + Psychomyiidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3595 + Pteronarcys + Pteronarcys + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3596 + Ptilostomis + Ptilostomis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3597 + Pugesiatigrina + Pugesiatigrina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3598 + Pycnogonid + Pycnogonid + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3599 + Pycnopsyche + Pycnopsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3600 + Pyralidae + Pyralidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3601 + Pyramidella crenulata + Pyramidella crenulata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3602 + Pyrgophorus spinosus + Pyrgophorus spinosus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3603 + Ranatra + Ranatra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3604 + Rangia + Rangia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3605 + Rangia cuneata + Rangia cuneata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3606 + Rangia flexuosa + Rangia flexuosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3607 + Redundancy - benthos + Redundancy - benthos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3608 + Retusa canaliculata + Retusa canaliculata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3609 + Rhagionidae + Rhagionidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3610 + Rhagovelia + Rhagovelia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3611 + Rhantus + Rhantus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3612 + Rheocricotopus + Rheocricotopus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3613 + Rheocricotopus fuscipes + Rheocricotopus fuscipes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3614 + Rheotanytarsus + Rheotanytarsus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3615 + Rheotanytarsus exiguus + Rheotanytarsus exiguus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3616 + Rheumatobates + Rheumatobates + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3617 + Rhithrogena + Rhithrogena + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3618 + Rhithropanopeus harrisii + Rhithropanopeus harrisii + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3619 + Rhyacodrilus + Rhyacodrilus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3620 + Rhyacophila + Rhyacophila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3621 + Rhyacophilidae + Rhyacophilidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3622 + Rhynchocoela (nemertea) + Rhynchocoela (nemertea) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3623 + Rictaxis punctostriatus + Rictaxis punctostriatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3624 + Sabella + Sabella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3625 + Sabella melanostigma + Sabella melanostigma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3626 + Sabella microphthalma + Sabella microphthalma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3627 + Sabellidae + Sabellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3628 + Saldidae + Saldidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3629 + Saldula + Saldula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3630 + Scatella + Scatella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3631 + Schistomeringos + Schistomeringos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3632 + Schistomeringos rudolphi + Schistomeringos rudolphi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3633 + Sciomyzidae (tetanoceridae) + Sciomyzidae (tetanoceridae) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3634 + Scirtes + Scirtes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3635 + Scolelepis squamata + Scolelepis squamata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3636 + Scolelepis texana + Scolelepis texana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3637 + Scoloplos + Scoloplos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3638 + Seila adamsi + Seila adamsi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3639 + Semele proficua + Semele proficua + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3640 + Serpulidae + Serpulidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3641 + Sialis + Sialis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3642 + Sialodea (megaloptera) + Sialodea (megaloptera) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3643 + Sigambra bassi + Sigambra bassi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3644 + Sigambra tentaculata + Sigambra tentaculata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3645 + Simuliidae + Simuliidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3646 + Simulium + Simulium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3647 + Simulium bivittatum + Simulium bivittatum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3648 + Simulium venustum + Simulium venustum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3649 + Simulium vittatum + Simulium vittatum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3650 + Siphlonuridae + Siphlonuridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3651 + Siphilonurinae + Siphilonurinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3652 + Siphlonurus + Siphlonurus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3653 + Sipuncula + Sipuncula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3654 + Slavina appendiculata + Slavina appendiculata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3655 + Smicridea + Smicridea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3656 + Smittia + Smittia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3657 + Somatochlora + Somatochlora + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3658 + Spanglerogyrus + Spanglerogyrus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3659 + Sparganophilus tamesis + Sparganophilus tamesis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3660 + Sperchon + Sperchon + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3661 + Sperchon texana + Sperchon texana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3662 + Sphaeriidae + Sphaeriidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3663 + Sphaerium + Sphaerium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3664 + Sphaerium striatinum + Sphaerium striatinum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3665 + Sphaerium transversum + Sphaerium transversum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3666 + Sphaeromidae + Sphaeromidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3667 + Spiochaetopterus oculatus + Spiochaetopterus oculatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3668 + Spionidae + Spionidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3669 + Spiophanes + Spiophanes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3670 + Spiophanes bombyx + Spiophanes bombyx + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3671 + Squilla + Squilla + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3672 + Stactobiella (tascobia) + Stactobiella (tascobia) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3673 + Staphylinidae + Staphylinidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3674 + Stelechomyia perpulchra + Stelechomyia perpulchra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3675 + Stenacron + Stenacron + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3676 + Stenelmis + Stenelmis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3677 + Stenelmis cheryl (formerly s.bicarinata) + Stenelmis cheryl (formerly s.bicarinata) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3678 + Stenelmis crenata + Stenelmis crenata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3679 + Stenelmis decorata + Stenelmis decorata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3680 + Stenelmis new species + Stenelmis new species + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3681 + Stenelmis occidentalis (was s. mexicana) + Stenelmis occidentalis (was s. mexicana) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3682 + Stenochironomus + Stenochironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3683 + Stenonema + Stenonema + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3684 + Stenonema femoratum + Stenonema femoratum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3685 + Stenothoe minuta + Stenothoe minuta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3686 + Stenus + Stenus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3687 + Sthenelais + Sthenelais + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3688 + Stictochironomus + Stictochironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3689 + Stilobezzia + Stilobezzia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3690 + Stratiomyia + Stratiomyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3691 + Stratiomyidae + Stratiomyidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3692 + Stratiomys + Stratiomys + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3693 + Streblospio + Streblospio + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3694 + Streblospio benedicti + Streblospio benedicti + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3695 + Strophitus + Strophitus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3696 + Stylochus ellipticus + Stylochus ellipticus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3697 + Stylogomphus + Stylogomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3698 + Stylurus + Stylurus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3699 + Suphisellus bicolor + Suphisellus bicolor + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3700 + Suragina + Suragina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3701 + Syllidae + Syllidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3702 + Syllis cornuta + Syllis cornuta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3703 + Sympetrum + Sympetrum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3704 + Sympleustes glaber + Sympleustes glaber + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3705 + Syndiamesa + Syndiamesa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3706 + Syrphidae + Syrphidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3707 + Tabanidae + Tabanidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3708 + Tabanus + Tabanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3709 + Tachopteryx thoreyi + Tachopteryx thoreyi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3710 + Taeniopterygidae + Taeniopterygidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3711 + Taeniopteryx + Taeniopteryx + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3712 + Tagelus divisus + Tagelus divisus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3713 + Talitridae + Talitridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3714 + Tanaidacea + Tanaidacea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3715 + Tanypodinae + Tanypodinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3716 + Tanypus + Tanypus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3717 + Tanypus neopunctipennis + Tanypus neopunctipennis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3718 + Tanytarsini + Tanytarsini + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3719 + Tanytarsus + Tanytarsus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3720 + Tanytarsus glabrescens + Tanytarsus glabrescens + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3721 + Taphromysis bowmanii + Taphromysis bowmanii + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3722 + Taphromysis louisianae + Taphromysis louisianae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3723 + Tardigrada + Tardigrada + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3724 + Tauriphila + Tauriphila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3725 + Teinostoma biscaynense + Teinostoma biscaynense + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3726 + Telebasis + Telebasis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3727 + Tellina + Tellina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3728 + Tellina texana + Tellina texana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3729 + Tellina versicolor + Tellina versicolor + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3730 + Tellinidae + Tellinidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3731 + Telopelopia + Telopelopia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3732 + Telopelopia okaboji + Telopelopia okaboji + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3733 + Tenagobia + Tenagobia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3734 + Terebella rubra + Terebella rubra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3735 + Terebellidae + Terebellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3736 + Tetanocera + Tetanocera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3737 + Tetragoneuria + Tetragoneuria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3738 + Texadina baretti + Texadina baretti + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3739 + Texadina sphinctostoma + Texadina sphinctostoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3740 + Thalassema + Thalassema + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3741 + Tharyx + Tharyx + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3742 + Tharyx marioni + Tharyx marioni + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3743 + Tharyx setigera + Tharyx setigera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3744 + Thaumaleidae + Thaumaleidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3745 + Thermonectus + Thermonectus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3746 + Thiara (melanoides) tuberculata + Thiara (melanoides) tuberculata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3747 + Thienemanniella + Thienemanniella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3748 + Thienemannimyia + Thienemannimyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3749 + Thoracica + Thoracica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3750 + Thraulodes + Thraulodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3751 + Thraulodes gonzalesi + Thraulodes gonzalesi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3752 + Throscinus + Throscinus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3753 + Thyas + Thyas + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3754 + Tipula + Tipula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3755 + Tipulidae + Tipulidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3756 + Torrenticola + Torrenticola + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3757 + Traverella + Traverella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3758 + Traverella presidiana + Traverella presidiana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3759 + Trepobates + Trepobates + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3760 + Triaenodes + Triaenodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3761 + Triaenodes injustus + Triaenodes injustus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3762 + Tribelos + Tribelos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3763 + Trichocladius + Trichocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3764 + Trichocorixa + Trichocorixa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3765 + Trichoptera + Trichoptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3766 + Tricorythidae + Tricorythidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3767 + Tricorythodes + Tricorythodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3768 + Tricorythodes albilineatus + Tricorythodes albilineatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3769 + Tricorythodes albilineatus sp b + Tricorythodes albilineatus sp b + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3770 + Tricorythodes curvatus + Tricorythodes curvatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3771 + Trissocladius + Trissocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3772 + Tritigonia agassiz + Tritigonia agassiz + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3773 + Tropicorbis + Tropicorbis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3774 + Tropisternus + Tropisternus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3775 + Tropisternus lateralis + Tropisternus lateralis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3776 + Truncilla + Truncilla + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3777 + Tubifera (eristalis) + Tubifera (eristalis) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3778 + Tubifex + Tubifex + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3779 + Tubificidae + Tubificidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3780 + Tubulanus pellucidus + Tubulanus pellucidus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3781 + Turbellaria + Turbellaria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3782 + Turbonilla + Turbonilla + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3783 + Turbonilla hemphilli + Turbonilla hemphilli + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3784 + Turbonilla interrupta + Turbonilla interrupta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3785 + Unio + Unio + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3786 + Uniomerus + Uniomerus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3787 + Unionidae + Unionidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3788 + Uvarus + Uvarus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3789 + Valvatidae + Valvatidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3790 + Velia + Velia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3791 + Vellidae + Vellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3792 + Vioscalba loiuisianae + Vioscalba loiuisianae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3793 + Vitrinellidae + Vitrinellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3794 + Viviparidae + Viviparidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3795 + Viviparus + Viviparus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3796 + Websterinereis tridentata + Websterinereis tridentata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3797 + Wormaldia + Wormaldia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3798 + Xenochironomus + Xenochironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3799 + Xenochironomus xenolabis + Xenochironomus xenolabis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3800 + Xiphocentron + Xiphocentron + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3801 + Zaitzevia + Zaitzevia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3802 + Zalutschia + Zalutschia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3803 + Zavrelia + Zavrelia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3804 + Zealeuctra + Zealeuctra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3805 + Zygoptera + Zygoptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3807 + Achirus lineatus + Achirus lineatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3808 + Adinia xenica + Adinia xenica + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3809 + Alosa chrysochloris + Alosa chrysochloris + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3810 + Ambloplites rupestris + Ambloplites rupestris + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3811 + Ameiurus melas ictaluarus melas + Ameiurus melas ictaluarus melas + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3812 + Ameiurus natalis ictaluarus natalis + Ameiurus natalis ictaluarus natalis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3813 + Amia calva + Amia calva + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3814 + Ammocrypta clara + Ammocrypta clara + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3815 + Ammocrypta vivax + Ammocrypta vivax + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3816 + Anchoa hepsetus + Anchoa hepsetus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3817 + Anchoa mitchilli + Anchoa mitchilli + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3818 + Anguilla rostrata + Anguilla rostrata + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3819 + Anguilliformes + Anguilliformes + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3820 + Aphredoderus sayanus + Aphredoderus sayanus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3821 + Aplodinotus grunniens + Aplodinotus grunniens + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3822 + Archosargus probatocephalus + Archosargus probatocephalus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3823 + Arius felis + Arius felis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3824 + Astroscopus y-graecum + Astroscopus y-graecum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3825 + Astyanax mexicanus + Astyanax mexicanus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3826 + Atherinidae + Atherinidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3827 + Bagre marinus + Bagre marinus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3828 + Bairdiella chrysura + Bairdiella chrysura + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3829 + Bascanichthys scuticaris + Bascanichthys scuticaris + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3830 + Bothidae + Bothidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3831 + Brevoortia + Brevoortia + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3832 + Brevoortia gunteri + Brevoortia gunteri + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3833 + Brevoortia patronus + Brevoortia patronus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3834 + Campostoma + Campostoma + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3835 + Campostoma anomalum + Campostoma anomalum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3836 + Campostoma ornatum + Campostoma ornatum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3837 + Caranx hippos + Caranx hippos + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3838 + Carassius auratus + Carassius auratus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3839 + Carcharhinus leucas + Carcharhinus leucas + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3840 + Carcharhinus limbatus + Carcharhinus limbatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3841 + Carpiodes + Carpiodes + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3842 + Carpiodes carpio + Carpiodes carpio + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3843 + Centrarchus macropterus + Centrarchus macropterus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3844 + Centropomus undecimalis + Centropomus undecimalis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3845 + Centropristes philadelphicus + Centropristes philadelphicus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3846 + Chaenobryttus gulosus + Chaenobryttus gulosus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3847 + Chaetodipterus faber + Chaetodipterus faber + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3848 + Chasmodes bosquianus + Chasmodes bosquianus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3849 + Chloroscombrus chrysurus + Chloroscombrus chrysurus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3850 + Cichlasoma cyanoguttatum + Cichlasoma cyanoguttatum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3851 + Cichlidae + Cichlidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3852 + Citharichthys macrops + Citharichthys macrops + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3853 + Citharichthys spilopterus + Citharichthys spilopterus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3854 + Clupeidae + Clupeidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3855 + Ctenopharyhgodon idellus + Ctenopharyhgodon idellus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3856 + Cycleptus + Cycleptus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3857 + Cycleptus elongatus + Cycleptus elongatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3858 + Cynoscion arenarius + Cynoscion arenarius + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3859 + Cynoscion nebulosus + Cynoscion nebulosus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3860 + Cynoscion nothus + Cynoscion nothus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3861 + Cyprinella lutrensis notropis lutrensi + Cyprinella lutrensis notropis lutrensi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3862 + Cyprinella venustus notropis venustus + Cyprinella venustus notropis venustus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3863 + Cyprinidae + Cyprinidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3864 + Cyprinodon + Cyprinodon + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3865 + Cyprinodon exemius + Cyprinodon exemius + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3866 + Cyprinodon rubrofluviatilis + Cyprinodon rubrofluviatilis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3867 + Cyprinodon spp. + Cyprinodon spp. + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3868 + Cyprinodon variegatus + Cyprinodon variegatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3869 + Cyprinus carpio + Cyprinus carpio + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3870 + Dasyatis americana + Dasyatis americana + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3871 + Dasyatis sabina + Dasyatis sabina + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3872 + Dionda + Dionda + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3873 + Dionda episcola + Dionda episcola + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3874 + Dormitator maculatus + Dormitator maculatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3875 + Dorosoma + Dorosoma + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3876 + Dorosoma cepedianum + Dorosoma cepedianum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3877 + Dorosoma petenense + Dorosoma petenense + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3878 + Elassoma zonatum + Elassoma zonatum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3879 + Eleotris pisonis + Eleotris pisonis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3880 + Elops saurus + Elops saurus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3881 + Erimyzon oblongus + Erimyzon oblongus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3882 + Erimyzon succetta + Erimyzon succetta + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3883 + Esox americanus + Esox americanus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3884 + Esox niger + Esox niger + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3885 + Etheostoma + Etheostoma + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3886 + Etheostoma asprigene + Etheostoma asprigene + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3887 + Etheostoma chlorosomum + Etheostoma chlorosomum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3888 + Etheostoma fusiforme + Etheostoma fusiforme + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3889 + Etheostoma gracile + Etheostoma gracile + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3890 + Etheostoma grahmi + Etheostoma grahmi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3891 + Etheostoma histrio + Etheostoma histrio + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3892 + Etheostoma lepidum + Etheostoma lepidum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3893 + Etheostoma parvipinne + Etheostoma parvipinne + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3894 + Etheostoma proeliare + Etheostoma proeliare + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3895 + Etheostoma radiosum + Etheostoma radiosum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3896 + Etheostoma spectabile + Etheostoma spectabile + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3897 + Etheostoma whipplei + Etheostoma whipplei + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3898 + Etropus crossotus + Etropus crossotus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3899 + Eucinostomus + Eucinostomus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3900 + Eucinostomus argenteus + Eucinostomus argenteus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3901 + Eucinostomus lefroyi + Eucinostomus lefroyi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3902 + Fundulus + Fundulus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3903 + Fundulus blairae + Fundulus blairae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3904 + Fundulus chrysotus + Fundulus chrysotus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3905 + Fundulus grandis + Fundulus grandis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3906 + Fundulus jenkinsi + Fundulus jenkinsi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3907 + Fundulus kansae + Fundulus kansae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3908 + Fundulus notatus + Fundulus notatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3909 + Fundulus olivaceus + Fundulus olivaceus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3910 + Fundulus pulvereus + Fundulus pulvereus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3911 + Fundulus similis + Fundulus similis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3912 + Fundulus zebrinus + Fundulus zebrinus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3913 + Gambusia affinis + Gambusia affinis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3914 + Gambusia gaigei + Gambusia gaigei + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3915 + Gambusia geiseri + Gambusia geiseri + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3916 + Gambusia spp. + Gambusia spp. + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3917 + Gerreidae + Gerreidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3918 + Gnathagnus egregus + Gnathagnus egregus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3919 + Gobiesox punctulatus + Gobiesox punctulatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3920 + Gobiesox strumosus + Gobiesox strumosus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3921 + Gobiidae + Gobiidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3922 + Gobiodes broussonneti + Gobiodes broussonneti + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3923 + Gobionellus boleosoma + Gobionellus boleosoma + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3924 + Gobionellus hastatus + Gobionellus hastatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3925 + Gobionellus oceanicus + Gobionellus oceanicus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3926 + Gobionellus shufeldti + Gobionellus shufeldti + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3927 + Gobiosoma bosci + Gobiosoma bosci + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3928 + Gobiosoma robustum + Gobiosoma robustum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3929 + Gymnachirus texae + Gymnachirus texae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3930 + Harengula jaguana + Harengula jaguana + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3931 + Hemicaranx amblyrhynchus + Hemicaranx amblyrhynchus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3932 + Heterandria formosa + Heterandria formosa + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3933 + Histrio histrio + Histrio histrio + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3934 + Hybognathus hayi + Hybognathus hayi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3935 + Hybognathus nuchalis + Hybognathus nuchalis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3936 + Hybognathus placitus + Hybognathus placitus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3937 + Hypleurochilus + Hypleurochilus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3938 + Hypostomus plecostomus + Hypostomus plecostomus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3939 + Hypsoblennius + Hypsoblennius + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3940 + Hypsoblennius ionthas + Hypsoblennius ionthas + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3941 + Ichthyomyzon castaneus + Ichthyomyzon castaneus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3942 + Ichthyomyzon gagei + Ichthyomyzon gagei + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3943 + Ictaluridae + Ictaluridae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3944 + Ictalurus + Ictalurus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3945 + Ictalurus furcatus + Ictalurus furcatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3946 + Ictalurus lupus + Ictalurus lupus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3947 + Ictalurus punctatus + Ictalurus punctatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3948 + Ictiobus + Ictiobus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3949 + Ictiobus bubalus + Ictiobus bubalus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3950 + Ictiobus cyprinellus + Ictiobus cyprinellus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3951 + Ictiobus niger + Ictiobus niger + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3952 + Individuals as non-native species + Individuals as non-native species + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3953 + Labidesthes + Labidesthes + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3954 + Labidesthes sicculus + Labidesthes sicculus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3955 + Lagodon rhomboides + Lagodon rhomboides + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3956 + Leiostomus xanthurus + Leiostomus xanthurus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3957 + Lepisosteus + Lepisosteus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3958 + Lepisosteus oculatus + Lepisosteus oculatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3959 + lepisosteus osseus + lepisosteus osseus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3960 + Lepisosteus platostomus + Lepisosteus platostomus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3961 + Lepisosteus spatula + Lepisosteus spatula + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3962 + Lepomis + Lepomis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3963 + Lepomis auritus + Lepomis auritus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3964 + Lepomis cyanellus + Lepomis cyanellus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3965 + Lepomis gulosus + Lepomis gulosus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3966 + Lepomis humilis + Lepomis humilis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3967 + Lepomis macrochirus + Lepomis macrochirus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3968 + Lepomis macrochirus x lepomis cyanellus (#/samp) + Lepomis macrochirus x lepomis cyanellus (#/samp) + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3969 + Lepomis marginatus + Lepomis marginatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3970 + Lepomis megalotis + Lepomis megalotis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3971 + Lepomis microlophus + Lepomis microlophus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3972 + Lepomis punctatus + Lepomis punctatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3973 + Lepomis symmetricus + Lepomis symmetricus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3974 + Lucania parva + Lucania parva + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3975 + Luxilus chrysocephalus n.chrysocephal + Luxilus chrysocephalus n.chrysocephal + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3976 + Lythrurus fumeus notropis fumeus + Lythrurus fumeus notropis fumeus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3977 + Lythrurus umbratilis notropis umbratil + Lythrurus umbratilis notropis umbratil + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3978 + Macrhybopsis aestivalis h.aestivalis + Macrhybopsis aestivalis h.aestivalis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3979 + Megalops atlanticus + Megalops atlanticus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3980 + Membras martinica + Membras martinica + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3981 + Menidia audens + Menidia audens + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3982 + Menidia beryllina + Menidia beryllina + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3983 + Menidia peninsulae + Menidia peninsulae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3984 + Menticirrhus americanus + Menticirrhus americanus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3985 + Menticirrhus littoralis + Menticirrhus littoralis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3986 + Microgobius gulosus + Microgobius gulosus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3987 + Microgobius thalassinus + Microgobius thalassinus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3988 + Micropogon + Micropogon + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3989 + Micropogon undulatus + Micropogon undulatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3990 + Micropogonias undulatus + Micropogonias undulatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3991 + Micropterus + Micropterus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3992 + Micropterus dolomieu m. dolomieui + Micropterus dolomieu m. dolomieui + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3993 + Micropterus punctulatus + Micropterus punctulatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3994 + Micropterus salmoides + Micropterus salmoides + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3995 + Micropterus treculi + Micropterus treculi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3996 + Minytrema melanops + Minytrema melanops + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3997 + Morone chrysops + Morone chrysops + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3998 + Morone mississippiensis + Morone mississippiensis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3999 + Morone saxatilis + Morone saxatilis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4000 + Morone saxatilis x m. chrysops hybrid #/sample + Morone saxatilis x m. chrysops hybrid #/sample + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4001 + Moxostoma congestum + Moxostoma congestum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4002 + Moxostoma erythurum + Moxostoma erythurum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4003 + Moxostoma poecilurum + Moxostoma poecilurum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4004 + Mugil + Mugil + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4005 + Mugil cephalus + Mugil cephalus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4006 + Mugil curema + Mugil curema + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4007 + Myrophis punctatus + Myrophis punctatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4008 + Mystriophis punctifer + Mystriophis punctifer + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4009 + Notemigonus crysoleucas + Notemigonus crysoleucas + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4010 + Notropis + Notropis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4011 + Notropis amabilis + Notropis amabilis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4012 + Notropis amnis + Notropis amnis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4013 + Notropis antherinoides + Notropis antherinoides + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4014 + Notropis atrocaudalis + Notropis atrocaudalis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4015 + Notropis bairdi + Notropis bairdi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4016 + Notropis blennius + Notropis blennius + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4017 + Notropis braytoni + Notropis braytoni + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4018 + Notropis buccula + Notropis buccula + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4019 + Notropis buchanani + Notropis buchanani + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4020 + Notropis chalybaeus + Notropis chalybaeus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4021 + Notropis cornutus + Notropis cornutus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4022 + Notropis oxyrhyncus + Notropis oxyrhyncus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4023 + Notropis proserpinus + Notropis proserpinus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4024 + Notropis sabinae + Notropis sabinae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4025 + Notropis shumardi + Notropis shumardi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4026 + Notropis stramineus + Notropis stramineus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4027 + Notropis texanus + Notropis texanus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4028 + Notropis volucellis + Notropis volucellis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4029 + Noturus gyrinus + Noturus gyrinus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4030 + Noturus nocturnus + Noturus nocturnus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4031 + Oligoplites saurus + Oligoplites saurus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4032 + Oncorhynchus mykiss salmo gairdneri + Oncorhynchus mykiss salmo gairdneri + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4033 + Ophichthus gomesi + Ophichthus gomesi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4034 + Opisthonema oglinum + Opisthonema oglinum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4035 + Opsanus beta + Opsanus beta + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4036 + Opsopoeodus emiliae notropis emiliae + Opsopoeodus emiliae notropis emiliae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4037 + Orthopristis chrysopterus + Orthopristis chrysopterus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4038 + Osteichthyes + Osteichthyes + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4039 + Paralichthys lethostigma + Paralichthys lethostigma + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4040 + Parexocoetus brachypterus + Parexocoetus brachypterus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4041 + Peprilus alepidotus + Peprilus alepidotus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4042 + Peprilus burti + Peprilus burti + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4043 + Peprilus paru + Peprilus paru + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4044 + Perca flavescens + Perca flavescens + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4045 + Percina caprodes + Percina caprodes + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4046 + Percina carbonaria + Percina carbonaria + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4047 + Percina macrolepida + Percina macrolepida + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4048 + Percina maculata + Percina maculata + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4049 + Percina sciera + Percina sciera + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4050 + Percina shumardi + Percina shumardi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4051 + Phenacobius mirabilis + Phenacobius mirabilis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4052 + Pimephales + Pimephales + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4053 + Pimephales notatus + Pimephales notatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4054 + Pimephales promelas + Pimephales promelas + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4055 + Pimephales vigilax + Pimephales vigilax + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4056 + Plecostomus plecostomus + Plecostomus plecostomus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4057 + Poecilia formosa + Poecilia formosa + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4058 + Poecilia latipinna + Poecilia latipinna + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4059 + Pogonias cromis + Pogonias cromis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4060 + Polydactylus octonemus + Polydactylus octonemus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4061 + Pomatomus saltatrix + Pomatomus saltatrix + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4062 + Pomoxis + Pomoxis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4063 + Pomoxis annularis + Pomoxis annularis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4064 + Pomoxis nigromaculatus + Pomoxis nigromaculatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4065 + Porichthys plectrodon + Porichthys plectrodon + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4066 + Porichthys porosissimus + Porichthys porosissimus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4067 + Prionotus tribulus + Prionotus tribulus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4068 + Psopoeodus emiliae + Psopoeodus emiliae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4069 + Pterygoplichthys multiradiatus + Pterygoplichthys multiradiatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4070 + Pylodictis olivaris + Pylodictis olivaris + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4071 + Sarda sarda + Sarda sarda + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4072 + Sciaenidae #/sample + Sciaenidae #/sample + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4073 + Sciaenops ocellata + Sciaenops ocellata + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4074 + Scomberomorus maculatus + Scomberomorus maculatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4075 + Selene vomer + Selene vomer + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4076 + Semotilus atromaculatus + Semotilus atromaculatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4077 + Sphoeroides parvus + Sphoeroides parvus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4078 + Stellifer lanceolatus + Stellifer lanceolatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4079 + Stizostedion vitreum + Stizostedion vitreum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4080 + Strongylura marina + Strongylura marina + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4081 + Symphurus plagiusa + Symphurus plagiusa + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4082 + Syngnathidae + Syngnathidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4083 + Syngnathus floridae + Syngnathus floridae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4084 + Syngnathus louisianae + Syngnathus louisianae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4085 + Syngnathus scovelli + Syngnathus scovelli + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4086 + Synodus + Synodus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4087 + Synodus foetens + Synodus foetens + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4088 + Tilapia aurea, blue tilapia + Tilapia aurea, blue tilapia + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4089 + Tilapia mossambica + Tilapia mossambica + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4090 + Tilapia zilli + Tilapia zilli + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4091 + Trachinotus falcatus + Trachinotus falcatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4092 + Trichiurus lepturus + Trichiurus lepturus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4093 + Trinectes maculatus + Trinectes maculatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4094 + Trogloglanis pattersoni + Trogloglanis pattersoni + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4095 + Umbrina coroides + Umbrina coroides + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4096 + Urophycis floridanus + Urophycis floridanus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4097 + Xiphophorus helleri + Xiphophorus helleri + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4098 + Zygonectes notatus + Zygonectes notatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4100 + Acnida + Acnida + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4101 + Alisma + Alisma + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4102 + Alternanthera + Alternanthera + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4103 + Ambrosia + Ambrosia + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4104 + Anacharis (elodea) + Anacharis (elodea) + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4105 + Azolla + Azolla + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4106 + Bacopa + Bacopa + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4107 + Boehmaria + Boehmaria + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4108 + Ceratophyllum + Ceratophyllum + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4109 + Ceratophyllum demersum + Ceratophyllum demersum + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4110 + Chara + Chara + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4111 + Chlorophyta + Chlorophyta + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4112 + Cladium jamaicensis + Cladium jamaicensis + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4113 + Cyperus + Cyperus + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4114 + Diversity - macrophytes + Diversity - macrophytes + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4115 + Echinodorus + Echinodorus + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4116 + Egeria densa + Egeria densa + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4117 + Eichhornia + Eichhornia + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4118 + Elatine + Elatine + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4119 + Gramineae + Gramineae + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4120 + Heteranthera + Heteranthera + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4121 + Hydrilla verticillata + Hydrilla verticillata + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4122 + Hydrocotyle + Hydrocotyle + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4123 + Lemna + Lemna + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4124 + Ludwigia decurrens + Ludwigia decurrens + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4125 + Ludwigia (jussiaea) + Ludwigia (jussiaea) + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4126 + Lythrum + Lythrum + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4127 + Macrophytes sampled - none present + Macrophytes sampled - none present + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4128 + Marsilea + Marsilea + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4129 + Mikania scandens + Mikania scandens + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4130 + Myriophyllum + Myriophyllum + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4131 + Myriophyllum brasiliense + Myriophyllum brasiliense + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4132 + Najas + Najas + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4133 + Nuphar + Nuphar + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4134 + Phragmites communis + Phragmites communis + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4135 + Phyla + Phyla + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4136 + Polygonum + Polygonum + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4137 + Potamogeton + Potamogeton + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4138 + Potamogeton crispus + Potamogeton crispus + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4139 + Rorippa nasturtium - aquaticum + Rorippa nasturtium - aquaticum + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4140 + Rotala + Rotala + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4141 + Rotala ramosior + Rotala ramosior + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4142 + Sabol + Sabol + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4143 + Sagittaria + Sagittaria + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4144 + Sagittaria falcata + Sagittaria falcata + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4145 + Sagittaria lancifolia + Sagittaria lancifolia + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4146 + Salix + Salix + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4147 + Sapium sebiferum + Sapium sebiferum + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4148 + Saururus + Saururus + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4149 + Saururus cernuus + Saururus cernuus + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4150 + Scirpus + Scirpus + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4151 + Spirodela + Spirodela + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4152 + Utricularia + Utricularia + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4153 + Zizaniopsis miliacea + Zizaniopsis miliacea + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4155 + Alligator mississippiensis + Alligator mississippiensis + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4156 + Amphibia + Amphibia + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4157 + Arenaeus cribrarius + Arenaeus cribrarius + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4158 + Callinectes sapidus + Callinectes sapidus + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4159 + Callinectes similis + Callinectes similis + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4160 + Cambarus + Cambarus + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4161 + Chrysemys scripta + Chrysemys scripta + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4162 + Decopoda + Decopoda + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4163 + Diversity - nekton + Diversity - nekton + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4164 + Equitability - nekton + Equitability - nekton + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4165 + Lolliguncula + Lolliguncula + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4166 + Lolliguncula (loligo) brevis + Lolliguncula (loligo) brevis + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4167 + Machrobrachium + Machrobrachium + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4168 + Machrobrachium acanthurus + Machrobrachium acanthurus + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4169 + Machrobrachium ohione + Machrobrachium ohione + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4170 + Menippe mercenaria + Menippe mercenaria + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4171 + Mollusca + Mollusca + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4172 + Nekton organisms - none present + Nekton organisms - none present + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4173 + Neopanope texana texana + Neopanope texana texana + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4174 + Paguridae + Paguridae + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4175 + Pagurus politus + Pagurus politus + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4176 + Palaemonetes + Palaemonetes + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4177 + Palaemonetes pugio + Palaemonetes pugio + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4178 + Palaemonetes vulgaris + Palaemonetes vulgaris + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4179 + Penaeus aztecus + Penaeus aztecus + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4180 + Penaeus duorarum + Penaeus duorarum + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4181 + Penaeus setiferus + Penaeus setiferus + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4182 + Pseudemys + Pseudemys + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4183 + Rana + Rana + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4184 + Rhithropanopeus harrissii + Rhithropanopeus harrissii + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4185 + Sicyonia dorsalis + Sicyonia dorsalis + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4186 + Squilla + Squilla + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4187 + Stomolophus + Stomolophus + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4188 + Trachemys scripta elegans + Trachemys scripta elegans + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4189 + Trachypenaeus spp. + Trachypenaeus spp. + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4190 + Xanthidae + Xanthidae + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4191 + Xiphopeneus kroyeri + Xiphopeneus kroyeri + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4193 + Achnanthes + Achnanthes + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4194 + Achnanthes coarctata + Achnanthes coarctata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4195 + Actinastrum + Actinastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4196 + Actinocyclus + Actinocyclus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4197 + Actinocyclus ehrenbergii + Actinocyclus ehrenbergii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4198 + Actinoptychus undulatus + Actinoptychus undulatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4199 + Agmenellum quadruplicatum + Agmenellum quadruplicatum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4200 + Agmenellum (merismopoedia) + Agmenellum (merismopoedia) + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4201 + Amphipleura + Amphipleura + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4202 + Amphiprora + Amphiprora + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4203 + Amphiprora alata + Amphiprora alata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4204 + Amphora + Amphora + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4205 + Anabaena + Anabaena + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4206 + Anabaena flos-aquae + Anabaena flos-aquae + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4207 + Anabaenopsis + Anabaenopsis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4208 + Anacystis cyanea + Anacystis cyanea + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4209 + Anacystis dimidiata + Anacystis dimidiata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4210 + Anacystis (microcystis) + Anacystis (microcystis) + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4211 + Anisonema + Anisonema + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4212 + Ankistrodesmus + Ankistrodesmus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4213 + Ankistrodesmus falcatus + Ankistrodesmus falcatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4214 + Anomoeoneis + Anomoeoneis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4215 + Aphanizomenon + Aphanizomenon + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4216 + Aphanizomenon holsaticum (flos-aquae) + Aphanizomenon holsaticum (flos-aquae) + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4217 + Arthrospira + Arthrospira + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4218 + Astrionella + Astrionella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4219 + Asterionella formosa + Asterionella formosa + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4220 + Asterionella japonica + Asterionella japonica + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4221 + Asterococcus + Asterococcus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4222 + Auliscus coelatus + Auliscus coelatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4223 + Bacillariophyceae + Bacillariophyceae + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4224 + Bacillariophyceae-centric + Bacillariophyceae-centric + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4225 + Bacillariophyceae-pennate + Bacillariophyceae-pennate + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4226 + Bacteriastrum + Bacteriastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4227 + Bacteriastrum delicatulum + Bacteriastrum delicatulum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4228 + Bacteriastrum varians + Bacteriastrum varians + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4229 + Biddulphia + Biddulphia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4230 + Biddulphia aurita + Biddulphia aurita + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4231 + Biddulphia mobiliensis + Biddulphia mobiliensis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4232 + Biddulphia sinensis + Biddulphia sinensis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4233 + Botrycoccus + Botrycoccus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4234 + Caloneis + Caloneis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4235 + Caloneis amphisbaena + Caloneis amphisbaena + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4236 + Campylodiscus + Campylodiscus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4237 + Campylodiscus punctulatus + Campylodiscus punctulatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4238 + Capartogramma + Capartogramma + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4239 + Carteria + Carteria + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4240 + Centronella + Centronella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4241 + Cerataulina + Cerataulina + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4242 + Cerataulina pelagica + Cerataulina pelagica + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4243 + Ceratium + Ceratium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4244 + Ceratium cornutum + Ceratium cornutum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4245 + Ceratium furca + Ceratium furca + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4246 + Ceratium fusus + Ceratium fusus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4247 + Ceratium hircus + Ceratium hircus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4248 + Ceratium hirundinella + Ceratium hirundinella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4249 + Ceratium massiliense + Ceratium massiliense + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4250 + Ceratium pentagonum + Ceratium pentagonum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4251 + Ceratium pulchellum + Ceratium pulchellum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4252 + Ceratium tripos + Ceratium tripos + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4253 + Chaetoceros + Chaetoceros + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4254 + Chaetoceros affinis + Chaetoceros affinis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4255 + Chaetoceros atlanticum + Chaetoceros atlanticum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4256 + Chaetoceros brevis + Chaetoceros brevis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4257 + Chaetoceros compressum + Chaetoceros compressum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4258 + Chaetoceros constrictum + Chaetoceros constrictum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4259 + Chaetoceros costatum + Chaetoceros costatum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4260 + Chaetoceros curvisetum + Chaetoceros curvisetum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4261 + Chaetoceros danicum + Chaetoceros danicum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4262 + Chaetoceros decipiens + Chaetoceros decipiens + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4263 + Chaetoceros densum + Chaetoceros densum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4264 + Chaetoceros didymum + Chaetoceros didymum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4265 + Chaetoceros difficilis + Chaetoceros difficilis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4266 + Chaetoceros diversum + Chaetoceros diversum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4267 + Chaetoceros gracilis + Chaetoceros gracilis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4268 + Chaetoceros laciniosum + Chaetoceros laciniosum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4269 + Chaetoceros lorenzianum + Chaetoceros lorenzianum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4270 + Chaetoceros orientalis + Chaetoceros orientalis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4271 + Chaetoceros pelagicum + Chaetoceros pelagicum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4272 + Chaetoceros peruvianum + Chaetoceros peruvianum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4273 + Chaetoceros simplex + Chaetoceros simplex + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4274 + Chaetoceros tortissimus + Chaetoceros tortissimus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4275 + Chaetoceros valve + Chaetoceros valve + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4276 + Chaetoceros varians + Chaetoceros varians + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4277 + Chaetosphaeridium globosum + Chaetosphaeridium globosum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4278 + Chlamydomonas + Chlamydomonas + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4279 + Chlorella + Chlorella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4280 + Chlorella vulgaris + Chlorella vulgaris + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4281 + Chilorococcum + Chilorococcum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4282 + Chilorogonium + Chilorogonium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4283 + Chloromonadophyta + Chloromonadophyta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4284 + Chlorophyta + Chlorophyta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4285 + Chlorophyta - flamentous + Chlorophyta - flamentous + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4286 + Chlorophyta - unicellular + Chlorophyta - unicellular + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4287 + Chroococcus + Chroococcus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4288 + Chroococcus dispersus + Chroococcus dispersus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4289 + Chrysococcus + Chrysococcus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4290 + Chrysophyta + Chrysophyta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4291 + Cladophora + Cladophora + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4292 + Closteridium + Closteridium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4293 + Closteriopsis + Closteriopsis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4294 + Closteriopsis longissima + Closteriopsis longissima + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4295 + Closterium + Closterium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4296 + Coccochloris + Coccochloris + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4297 + Cocconeis + Cocconeis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4298 + Coelastrum + Coelastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4299 + Coelastrum microporum + Coelastrum microporum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4300 + Coelastrum reticulatum + Coelastrum reticulatum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4301 + Coelosphaerium + Coelosphaerium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4302 + Corethron + Corethron + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4303 + Corethron criophylum + Corethron criophylum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4304 + Corethron hystrix + Corethron hystrix + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4305 + Coscinodiscus + Coscinodiscus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4306 + Coscinodiscus asteromphalus + Coscinodiscus asteromphalus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4307 + Coscinodiscus centralis + Coscinodiscus centralis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4308 + Coscinodiscus concinnis + Coscinodiscus concinnis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4309 + Coscinodiscus denarius + Coscinodiscus denarius + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4310 + Coscinodiscus excentricus + Coscinodiscus excentricus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4311 + Coscinodiscus granii + Coscinodiscus granii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4312 + Coscinodiscus radiatus + Coscinodiscus radiatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4313 + Coscinodiscus rothii + Coscinodiscus rothii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4314 + Coscinodiscus wailsii + Coscinodiscus wailsii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4315 + Cosmarium + Cosmarium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4316 + Crucigenia + Crucigenia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4317 + Crucigenia quadrata + Crucigenia quadrata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4318 + Crucigenia tetrapedia + Crucigenia tetrapedia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4319 + Cryptochrysis + Cryptochrysis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4320 + Cryptomonas + Cryptomonas + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4321 + Cyanophyta + Cyanophyta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4322 + Cyclotella + Cyclotella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4323 + Cyclotella stelligera + Cyclotella stelligera + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4324 + Cylindrocystis + Cylindrocystis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4325 + Cymatopleura solea + Cymatopleura solea + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4326 + Cymbella + Cymbella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4327 + Cymbella mexicanum + Cymbella mexicanum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4328 + Dactylococcopsis + Dactylococcopsis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4329 + Desmidium + Desmidium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4330 + Diatoma + Diatoma + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4331 + Diatomella + Diatomella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4332 + Dinobryon + Dinobryon + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4333 + Dinobryon bavaricum + Dinobryon bavaricum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4334 + Dinoflagellata + Dinoflagellata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4335 + Dinophyceae + Dinophyceae + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4336 + Dinophysis caudata + Dinophysis caudata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4337 + Diploneis + Diploneis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4338 + Diploneis crabro + Diploneis crabro + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4339 + Diploneis smithii + Diploneis smithii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4340 + Ditylum + Ditylum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4341 + Ditylum brightwelli + Ditylum brightwelli + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4342 + Diversity - phytoplankton + Diversity - phytoplankton + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4343 + Elakatothrix + Elakatothrix + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4344 + Epithemia + Epithemia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4345 + Epithemia sorex + Epithemia sorex + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4346 + Euastrum + Euastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4347 + Eucampia + Eucampia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4348 + Eucampia zoodiacus + Eucampia zoodiacus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4349 + Eudorina + Eudorina + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4350 + Euglena + Euglena + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4351 + Euglenophyta + Euglenophyta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4352 + Eunotia + Eunotia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4353 + Eupodiscus radiatus + Eupodiscus radiatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4354 + Eutreptia + Eutreptia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4355 + Exuviaella + Exuviaella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4356 + Exuviaella baltica + Exuviaella baltica + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4357 + Fragilaria + Fragilaria + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4358 + Fragilaria crotonensis + Fragilaria crotonensis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4359 + Frustulia + Frustulia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4360 + Geminella + Geminella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4361 + Glenodinium + Glenodinium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4362 + Glenodinium armatum + Glenodinium armatum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4363 + Gloeocapsa + Gloeocapsa + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4364 + Gloeocystis + Gloeocystis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4365 + Golenkinia + Golenkinia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4366 + Golenkiniopsis + Golenkiniopsis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4367 + Gomphonema + Gomphonema + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4368 + Gomphosphaeria + Gomphosphaeria + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4369 + Gonium + Gonium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4370 + Gonyaulax + Gonyaulax + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4371 + Gonyaulax monilata + Gonyaulax monilata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4372 + Guinardia + Guinardia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4373 + Guinardia flaccida + Guinardia flaccida + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4374 + Gymnodinium + Gymnodinium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4375 + Gyrosigma + Gyrosigma + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4376 + Gyrosigma balticum + Gyrosigma balticum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4377 + Haematococcus + Haematococcus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4378 + Hapalosiphon + Hapalosiphon + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4379 + Hemiaulus + Hemiaulus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4380 + Hemiaulus hauckii + Hemiaulus hauckii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4381 + Hemiaulus membranaceous + Hemiaulus membranaceous + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4382 + Hemiaulus sinensis + Hemiaulus sinensis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4383 + Hemidiscus hardmanianus + Hemidiscus hardmanianus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4384 + Hyalotheca + Hyalotheca + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4385 + Hydrodictyon + Hydrodictyon + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4386 + Hydrosera + Hydrosera + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4387 + Hypnodinium + Hypnodinium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4388 + Keriochlamys + Keriochlamys + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4389 + Kirchneriella + Kirchneriella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4390 + Lagerheimia quadriseta + Lagerheimia quadriseta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4391 + Lagerheimia (chodatella) + Lagerheimia (chodatella) + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4392 + Lauderia + Lauderia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4393 + Lauderia borealis + Lauderia borealis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4394 + Leptocylindricus + Leptocylindricus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4395 + Leptocylindricus danicus + Leptocylindricus danicus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4396 + Licmophora + Licmophora + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4397 + Lithodesmium undulatum + Lithodesmium undulatum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4398 + Lyngbya + Lyngbya + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4399 + Mallomonas + Mallomonas + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4400 + Mallomonas pseudocoronata + Mallomonas pseudocoronata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4401 + Melosira + Melosira + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4402 + Melosira crenulata + Melosira crenulata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4403 + Melosira distans + Melosira distans + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4404 + Melosira granulata + Melosira granulata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4405 + Melosira herzogii + Melosira herzogii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4406 + Melosira moniliformis + Melosira moniliformis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4407 + Melosira numuloides + Melosira numuloides + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4408 + Melosira varians + Melosira varians + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4409 + Meridion + Meridion + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4410 + Merismopedia + Merismopedia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4411 + Micractinium + Micractinium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4412 + Micrasterias + Micrasterias + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4413 + Microspora + Microspora + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4414 + Mougeotia + Mougeotia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4415 + Mougeotia scalaris + Mougeotia scalaris + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4416 + Nanochloris + Nanochloris + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4417 + Navicula + Navicula + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4418 + Nephrocytium + Nephrocytium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4419 + Nephrocytium limneticum + Nephrocytium limneticum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4420 + Nitzschia + Nitzschia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4421 + Nitzschia closterium + Nitzschia closterium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4422 + Nitzschia dubia + Nitzschia dubia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4423 + Nitzschia holsatica + Nitzschia holsatica + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4424 + Nitzschia hungarica + Nitzschia hungarica + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4425 + Nitzschia longissima + Nitzschia longissima + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4426 + Nitzschia lorenziana + Nitzschia lorenziana + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4427 + Nitzschia palea + Nitzschia palea + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4428 + Nitzschia paradoxa + Nitzschia paradoxa + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4429 + Nitzschia pungens + Nitzschia pungens + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4430 + Nitzschia seriata + Nitzschia seriata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4431 + Nitzschia sigma + Nitzschia sigma + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4432 + Nitzschia sigmoidea + Nitzschia sigmoidea + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4433 + Nodularia + Nodularia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4434 + Nostoc + Nostoc + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4435 + Oedogonium + Oedogonium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4436 + Oocystis + Oocystis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4437 + Opephora + Opephora + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4438 + Ophiocytium + Ophiocytium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4439 + Oscillatoria + Oscillatoria + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4440 + Oscillatoria granulata + Oscillatoria granulata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4441 + Ourococcus + Ourococcus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4442 + Oxytoxum + Oxytoxum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4443 + Palmella + Palmella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4444 + Palmellococcus + Palmellococcus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4445 + Pandorina + Pandorina + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4446 + Pectodictyon + Pectodictyon + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4447 + Pediastrum + Pediastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4448 + Pediastrum biradiatum + Pediastrum biradiatum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4449 + Pediastrum boryanum + Pediastrum boryanum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4450 + Pediastrum duplex + Pediastrum duplex + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4451 + Pediastrum integrum + Pediastrum integrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4452 + Pediastrum simplex + Pediastrum simplex + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4453 + Peridinium + Peridinium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4454 + Peridinium claudicans + Peridinium claudicans + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4455 + Peridinium tuba + Peridinium tuba + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4456 + Peridinium venustum + Peridinium venustum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4457 + Phacus + Phacus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4458 + Phormidium + Phormidium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4459 + Phyllobium + Phyllobium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4460 + Phytoconis + Phytoconis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4461 + Phytoplankton - unknown organism + Phytoplankton - unknown organism + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4462 + Pinnularia + Pinnularia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4463 + Planktosphaeria + Planktosphaeria + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4464 + Planktosphaeria gelatinosa + Planktosphaeria gelatinosa + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4465 + Platydorina + Platydorina + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4466 + Pleurosigma + Pleurosigma + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4467 + Prorocentrum + Prorocentrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4468 + Prorocentrum gracile + Prorocentrum gracile + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4469 + Prorocentrum mariae-lebourae + Prorocentrum mariae-lebourae + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4470 + Prorocentrum maximum + Prorocentrum maximum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4471 + Protococcus + Protococcus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4472 + Prymnesium parvum + Prymnesium parvum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4473 + Pyrobotrys + Pyrobotrys + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4474 + Pyrrophyta + Pyrrophyta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4475 + Quadrigula + Quadrigula + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4476 + Quadrigula chodatii + Quadrigula chodatii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4477 + Radiofilum + Radiofilum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4478 + Rhabdoderma + Rhabdoderma + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4479 + Rhizochrysis limnetica + Rhizochrysis limnetica + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4480 + Rhizosolenia + Rhizosolenia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4481 + Rhizosolenia alata + Rhizosolenia alata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4482 + Rhizosolenia alata f. indica + Rhizosolenia alata f. indica + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4483 + Rhizosolenia bergonii + Rhizosolenia bergonii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4484 + Rhizosolenia calcar avis + Rhizosolenia calcar avis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4485 + Rhizosolenia castracaneis + Rhizosolenia castracaneis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4486 + Rhizosolenia curvisetum + Rhizosolenia curvisetum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4487 + Rhizosolenia delicatala + Rhizosolenia delicatala + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4488 + Rhizosolenia eriensis + Rhizosolenia eriensis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4489 + Rhizosolenia imbricata + Rhizosolenia imbricata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4490 + Rhizosolenia robusta + Rhizosolenia robusta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4491 + Rhizosolenia setigera + Rhizosolenia setigera + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4492 + Rhizosolenia shrubsolei + Rhizosolenia shrubsolei + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4493 + Rhizosolenia stolterfothii + Rhizosolenia stolterfothii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4494 + Rhizosolenia styliformis + Rhizosolenia styliformis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4495 + Rhoicosphenia curvata + Rhoicosphenia curvata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4496 + Rhopalodia + Rhopalodia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4497 + Rhopalodia gibba + Rhopalodia gibba + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4498 + Scenedesmus + Scenedesmus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4499 + Scenedesmus acuminatus + Scenedesmus acuminatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4500 + Scenedesmus armatus + Scenedesmus armatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4501 + Scenedesmus bijuga + Scenedesmus bijuga + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4502 + Scenedesmus denticulatus + Scenedesmus denticulatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4503 + Scenedesmus dimorphus + Scenedesmus dimorphus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4504 + Scenedesmus quadricauda + Scenedesmus quadricauda + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4505 + Schizomeris leibleinii + Schizomeris leibleinii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4506 + Schroederia + Schroederia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4507 + Scoliopleura + Scoliopleura + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4508 + Scytonema myochrous + Scytonema myochrous + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4509 + Selenastrum + Selenastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4510 + Skeletonema + Skeletonema + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4511 + Skeletonema costatum + Skeletonema costatum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4512 + Sphaerocystis + Sphaerocystis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4513 + Spirogyra + Spirogyra + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4514 + Spirulina + Spirulina + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4515 + Spondylosium + Spondylosium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4516 + Staurastrum + Staurastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4517 + Stephanodiscus + Stephanodiscus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4518 + Stephanodiscus astrea + Stephanodiscus astrea + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4519 + Stephanopyxis + Stephanopyxis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4520 + Stephanopyxis palmeriana + Stephanopyxis palmeriana + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4521 + Stephanopyxis turris + Stephanopyxis turris + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4522 + Stipitococcus vasiformis + Stipitococcus vasiformis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4523 + Striatella + Striatella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4524 + Surirella + Surirella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4525 + Surirella fastuoso + Surirella fastuoso + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4526 + Surirella striatula + Surirella striatula + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4527 + Synedra + Synedra + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4528 + Synedra acus + Synedra acus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4529 + Synedra fasciculata + Synedra fasciculata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4530 + Synedra superba + Synedra superba + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4531 + Synedra ulna + Synedra ulna + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4532 + Synura + Synura + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4533 + Synura uvella + Synura uvella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4534 + Tabellaria + Tabellaria + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4535 + Terpsinoe + Terpsinoe + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4536 + Terpsinoe americana + Terpsinoe americana + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4537 + Tetradesmus + Tetradesmus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4538 + Tetraedron + Tetraedron + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4539 + Tetraedron minimum + Tetraedron minimum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4540 + Tetraedron trigonum + Tetraedron trigonum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4541 + Tetraspora lacustris + Tetraspora lacustris + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4542 + Tetrastrum + Tetrastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4543 + Thalassionema + Thalassionema + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4544 + Thalassionema nitzchioides + Thalassionema nitzchioides + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4545 + Thalassiosira + Thalassiosira + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4546 + Thalassiosira aestivalis + Thalassiosira aestivalis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4547 + Thalassiosira decipiens + Thalassiosira decipiens + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4548 + Thalassiosira gravida + Thalassiosira gravida + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4549 + Thalassiosira rotula + Thalassiosira rotula + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4550 + Thalassiothrix + Thalassiothrix + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4551 + Thalassiothrix frauenfeldii + Thalassiothrix frauenfeldii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4552 + Thalassiothrix longissima + Thalassiothrix longissima + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4553 + Thalassiothrix mediterranea + Thalassiothrix mediterranea + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4554 + Trachelomonas + Trachelomonas + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4555 + Tribonema + Tribonema + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4556 + Ulothrix + Ulothrix + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4557 + Ulothrix cylindricum + Ulothrix cylindricum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4558 + Ulothrix zonata + Ulothrix zonata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4559 + Volvox + Volvox + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4560 + Zygnema + Zygnema + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4561 + Zygnemopsis + Zygnemopsis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4563 + Acanthocyclops + Acanthocyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4564 + Acanthocystis + Acanthocystis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4565 + Acartia tonsa + Acartia tonsa + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4566 + Actinopoda + Actinopoda + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4567 + Actinosphaerium + Actinosphaerium + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4568 + Alona guttata + Alona guttata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4569 + Amoeba + Amoeba + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4570 + Amphipoda + Amphipoda + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4571 + Anthomedusae + Anthomedusae + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4572 + Anuraeopsis + Anuraeopsis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4573 + Arcella + Arcella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4574 + Ascomorpha + Ascomorpha + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4575 + Ascomorphella + Ascomorphella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4576 + Asplanchna + Asplanchna + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4577 + Asplanchna brightwelli + Asplanchna brightwelli + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4578 + Asplanchna priodonta + Asplanchna priodonta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4579 + Asplanchnopus + Asplanchnopus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4580 + Bdelloidea + Bdelloidea + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4581 + Beroe + Beroe + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4582 + Bosmina + Bosmina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4583 + Bosmina coregoni + Bosmina coregoni + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4584 + Bosmina longirostris + Bosmina longirostris + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4585 + Brachionus + Brachionus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4586 + Brachionus angularis + Brachionus angularis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4587 + Brachionus bidentatus + Brachionus bidentatus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4588 + Brachionus budapestinensis + Brachionus budapestinensis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4589 + Brachionus calyciflorus + Brachionus calyciflorus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4590 + Brachionus caudatus + Brachionus caudatus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4591 + Brachionus furculatus + Brachionus furculatus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4592 + Brachionus havanaensis + Brachionus havanaensis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4593 + Brachionus plicatilis + Brachionus plicatilis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4594 + Brachionus quadridentata + Brachionus quadridentata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4595 + Brachionus rubens + Brachionus rubens + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4596 + Brachionus urceolaris + Brachionus urceolaris + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4597 + Brachionus variabilis + Brachionus variabilis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4598 + Brachionus zahniseri + Brachionus zahniseri + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4599 + Branchiura + Branchiura + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4600 + Calanoida + Calanoida + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4601 + Callinectes + Callinectes + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4602 + Camptocercus rectirostris + Camptocercus rectirostris + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4603 + Canthocamptus + Canthocamptus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4604 + Carchesium + Carchesium + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4605 + Centropages + Centropages + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4606 + Centropyxis + Centropyxis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4607 + Cephalodella + Cephalodella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4608 + Ceriodaphnia + Ceriodaphnia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4609 + Ceriodaphnia lacustris + Ceriodaphnia lacustris + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4610 + Ceriodaphnia reticulata + Ceriodaphnia reticulata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4611 + Ceriodaphnia rigaudi + Ceriodaphnia rigaudi + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4612 + Ceriodaphnia rotunda + Ceriodaphnia rotunda + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4613 + Chaetognatha + Chaetognatha + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4614 + Chaoborus + Chaoborus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4615 + Chromogaster + Chromogaster + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4616 + Chydorus + Chydorus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4617 + Chydorus sphaericus + Chydorus sphaericus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4618 + Ciliata + Ciliata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4619 + Ciliophora + Ciliophora + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4620 + Cirripedia + Cirripedia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4621 + Cirripedia - cypris + Cirripedia - cypris + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4622 + Cirripedia - nauplius + Cirripedia - nauplius + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4623 + Cladocera + Cladocera + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4624 + Clytemnestra + Clytemnestra + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4625 + Coelenterata + Coelenterata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4626 + Collotheca + Collotheca + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4627 + Collotheca pellagica + Collotheca pellagica + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4628 + Colurella + Colurella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4629 + Conchostraca + Conchostraca + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4630 + Conochiloides + Conochiloides + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4631 + Conochiloides dossuarias + Conochiloides dossuarias + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4632 + Conochilus + Conochilus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4633 + Conochilus unicornis + Conochilus unicornis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4634 + Copepoda + Copepoda + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4635 + Copepoda - nauplius + Copepoda - nauplius + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4636 + Crustacea - larva + Crustacea - larva + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4637 + Ctenophora + Ctenophora + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4638 + Cyclopoida + Cyclopoida + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4639 + Cyclops + Cyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4640 + Cyclops bicuspidatus + Cyclops bicuspidatus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4641 + Cyclops nearcticus + Cyclops nearcticus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4642 + Cyclops vernalis + Cyclops vernalis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4643 + Cypridopsis + Cypridopsis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4644 + Daphnia + Daphnia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4645 + Daphnia ambigua + Daphnia ambigua + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4646 + Daphnia dubia + Daphnia dubia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4647 + Daphnia galeata + Daphnia galeata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4648 + Daphnia laevis + Daphnia laevis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4649 + Daphnia longiremis + Daphnia longiremis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4650 + Daphnia longispina + Daphnia longispina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4651 + Daphnia parvula + Daphnia parvula + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4652 + Daphnia pulex + Daphnia pulex + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4653 + Decapoda - zoea + Decapoda - zoea + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4654 + Diaphanosoma + Diaphanosoma + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4655 + Diaphanosoma brachyurum + Diaphanosoma brachyurum + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4656 + Diaphanosoma leuchtenbergianum + Diaphanosoma leuchtenbergianum + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4657 + Diaptomus + Diaptomus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4658 + Diaptomus siciloides + Diaptomus siciloides + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4659 + Didinium + Didinium + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4660 + Difflugia + Difflugia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4661 + Difflugia globosa + Difflugia globosa + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4662 + Difflugia urecolata + Difflugia urecolata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4663 + Diptera - larva + Diptera - larva + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4664 + Diurella + Diurella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4665 + Diversity - zooplankton + Diversity - zooplankton + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4666 + Echinodermata + Echinodermata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4667 + Ectocyclops phaleratus + Ectocyclops phaleratus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4668 + Eggs, fish + Eggs, fish + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4669 + Eggs, invertebrate + Eggs, invertebrate + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4670 + Encentrum + Encentrum + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4671 + Enteroplea + Enteroplea + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4672 + Epiphanes + Epiphanes + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4673 + Epischura + Epischura + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4674 + Epistylis + Epistylis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4675 + Ergasilus + Ergasilus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4676 + Eubranchipus + Eubranchipus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4677 + Euchaeta + Euchaeta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4678 + Euchlanis + Euchlanis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4679 + Eucyclops + Eucyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4680 + Eucyclops agilis + Eucyclops agilis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4681 + Euplotes + Euplotes + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4682 + Eurytemora + Eurytemora + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4683 + Eurytemora affinis + Eurytemora affinis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4684 + Eutintinnus + Eutintinnus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4685 + Filina brachiata + Filina brachiata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4686 + Filinia + Filinia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4687 + Filinia longiseta + Filinia longiseta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4688 + Filinia opoliensis + Filinia opoliensis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4689 + Filinia terminalis + Filinia terminalis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4690 + Flavella + Flavella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4691 + Flavella panamensis + Flavella panamensis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4692 + Gastropoda larva + Gastropoda larva + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4693 + Gastropus + Gastropus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4694 + Gastropus hyptopus + Gastropus hyptopus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4695 + Gastrotricha + Gastrotricha + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4696 + Halicyclops + Halicyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4697 + Harpacticoida + Harpacticoida + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4698 + Harpacticus + Harpacticus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4699 + Hexarthra + Hexarthra + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4700 + Hexarthra mira + Hexarthra mira + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4701 + Holophrya + Holophrya + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4702 + Horaella + Horaella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4703 + Hydracarina + Hydracarina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4704 + Kellicottia + Kellicottia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4705 + Kellicottia bostoniensis + Kellicottia bostoniensis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4706 + Kellicottia longispina + Kellicottia longispina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4707 + Keratella + Keratella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4708 + Keratella cochlearis + Keratella cochlearis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4709 + Keratella cochlearis f. tecta + Keratella cochlearis f. tecta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4710 + Keratella earlinae + Keratella earlinae + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4711 + Keratella gracilenta + Keratella gracilenta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4712 + Keratella quadrata + Keratella quadrata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4713 + Keratella valga f. tropica + Keratella valga f. tropica + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4714 + Labidocera + Labidocera + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4715 + Lecane + Lecane + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4716 + Lepadella + Lepadella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4717 + Leydigia + Leydigia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4718 + Leydigia acanthocercoides + Leydigia acanthocercoides + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4719 + Leydigia quadrangularis + Leydigia quadrangularis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4720 + Limnocalanus + Limnocalanus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4721 + Lophocharis + Lophocharis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4722 + Lucifer faxoni + Lucifer faxoni + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4723 + Macrocyclops + Macrocyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4724 + Macrosetella + Macrosetella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4725 + Macrothrix + Macrothrix + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4726 + Mesocyclops + Mesocyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4727 + Mesocyclops edax + Mesocyclops edax + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4728 + Microcyclops + Microcyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4729 + Microcyclops panamensis + Microcyclops panamensis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4730 + Moina + Moina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4731 + Moina affinis + Moina affinis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4732 + Moina micrura + Moina micrura + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4733 + Mollusca - larva + Mollusca - larva + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4734 + Monogononta + Monogononta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4735 + Monommata + Monommata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4736 + Monostyla + Monostyla + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4737 + Monostyla cornuta + Monostyla cornuta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4738 + Mysidopsis + Mysidopsis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4739 + Mysidopsis almyra + Mysidopsis almyra + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4740 + Mytilina + Mytilina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4741 + Nauplius, unknown + Nauplius, unknown + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4742 + Nebela + Nebela + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4743 + Nemata + Nemata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4744 + Nemopsis bachei + Nemopsis bachei + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4745 + Notholca + Notholca + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4746 + Notholca acuminata + Notholca acuminata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4747 + Notholca labis + Notholca labis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4748 + Notommata + Notommata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4749 + Oikopleura + Oikopleura + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4750 + Oikopleura dioica + Oikopleura dioica + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4751 + Oithona + Oithona + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4752 + Oligochaete - larvae + Oligochaete - larvae + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4753 + Oncaea + Oncaea + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4754 + Orthocyclops + Orthocyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4755 + Ostracoda + Ostracoda + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4756 + Paracalanus + Paracalanus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4757 + Paracyclops + Paracyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4758 + Paracyclops fimbriatus + Paracyclops fimbriatus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4759 + Paramecium + Paramecium + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4760 + Parundella + Parundella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4761 + Philodina + Philodina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4762 + Platyias + Platyias + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4763 + Platyias patulus + Platyias patulus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4764 + Platyias quadricornis + Platyias quadricornis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4765 + Ploesoma + Ploesoma + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4766 + Podon + Podon + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4767 + Polyarthra + Polyarthra + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4768 + Polyarthra major + Polyarthra major + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4769 + Polyarthra remata + Polyarthra remata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4770 + Polyarthra trigla (#/sq ft) + Polyarthra trigla (#/sq ft) + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4771 + Polyarthra vulgaris + Polyarthra vulgaris + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4772 + Polychaete - larva + Polychaete - larva + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4773 + Polyphemus + Polyphemus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4774 + Polyphemus pediculus + Polyphemus pediculus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4775 + Pompholyx + Pompholyx + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4776 + Pompholyx sulcata + Pompholyx sulcata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4777 + Proales + Proales + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4778 + Proplectella + Proplectella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4779 + Protozoa + Protozoa + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4780 + Pseudodiaptomus + Pseudodiaptomus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4781 + Pseudodiaptomus coronatus + Pseudodiaptomus coronatus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4782 + Pulvinulina + Pulvinulina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4783 + Rhithropanopeus harrissii + Rhithropanopeus harrissii + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4784 + Rhizopoda + Rhizopoda + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4785 + Rotaria + Rotaria + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4786 + Rotifera + Rotifera + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4787 + Sagitta + Sagitta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4788 + Saphirella + Saphirella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4789 + Scaridium + Scaridium + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4790 + Scyphozoa + Scyphozoa + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4791 + Senecella calanoides + Senecella calanoides + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4792 + Sida crystallina + Sida crystallina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4793 + Simocephalus + Simocephalus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4794 + Simocephalus exspinosus + Simocephalus exspinosus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4795 + Stentor + Stentor + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4796 + Stomolophus + Stomolophus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4797 + Synchaeta + Synchaeta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4798 + Synchaeta oblonga + Synchaeta oblonga + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4799 + Synchaeta styla + Synchaeta styla + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4800 + Taphromysis louisianne + Taphromysis louisianne + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4801 + Testudinella + Testudinella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4802 + Thecacineta + Thecacineta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4803 + Tintinnidae + Tintinnidae + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4804 + Tintinnidium + Tintinnidium + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4805 + Tintinnopsis + Tintinnopsis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4806 + Tintinnopsis beroidea + Tintinnopsis beroidea + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4807 + Tintinnopsis kofoidi + Tintinnopsis kofoidi + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4808 + Tintinnopsis mortensis + Tintinnopsis mortensis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4809 + Tintinnopsis parvula + Tintinnopsis parvula + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4810 + Tintinnopsis tubulosa + Tintinnopsis tubulosa + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4811 + Tortanus + Tortanus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4812 + Trichocerca + Trichocerca + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4813 + Trichocerca multicrinis + Trichocerca multicrinis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4814 + Trichocerca pusilla + Trichocerca pusilla + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4815 + Trichocerca rousseleti + Trichocerca rousseleti + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4816 + Trichocerca similis + Trichocerca similis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4817 + Trichotria + Trichotria + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4818 + Trochophore, unknown + Trochophore, unknown + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4819 + Trochosphaera + Trochosphaera + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4820 + Tropocyclops + Tropocyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4821 + Vorticella + Vorticella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4822 + Wierzejskiella + Wierzejskiella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4823 + Zooflagella + Zooflagella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4905 + Coliform, fecal + Coliform, fecal + Hydrosphere/Biological/Indicator Organisms/ + + + 4905 + Fecal coliform + Coliform, fecal + Hydrosphere/Biological/Indicator Organisms/ + + + 4905 + Fecal coliforms + Coliform, fecal + Hydrosphere/Biological/Indicator Organisms/ + + + 4906 + Fecal streptococci + Streptococci, fecal + Hydrosphere/Biological/Indicator Organisms/ + + + 4906 + Fecal Streptococcus + Streptococci, fecal + Hydrosphere/Biological/Indicator Organisms/ + + + 4906 + Streptococci, fecal + Streptococci, fecal + Hydrosphere/Biological/Indicator Organisms/ + + + 4907 + Coliform, total + Coliform, total + Hydrosphere/Biological/Indicator Organisms/ + + + 4907 + Total coliform + Coliform, total + Hydrosphere/Biological/Indicator Organisms/ + + + 4907 + Total coliforms + Coliform, total + Hydrosphere/Biological/Indicator Organisms/ + + + 4908 + Actinomycetes + Actinomycetes + Hydrosphere/Biological/Indicator Organisms/ + + + 4909 + Bacteria + Bacteria mix, unspecified + Hydrosphere/Biological/Indicator Organisms/ + + + 4909 + Bacteria mix, unspecified + Bacteria mix, unspecified + Hydrosphere/Biological/Indicator Organisms/ + + + 4910 + Bacteria, nitrifiers + Bacteria, nitrifiers + Hydrosphere/Biological/Indicator Organisms/ + + + 4910 + Bacteria, nitrifying + Bacteria, nitrifiers + Hydrosphere/Biological/Indicator Organisms/ + + + 4911 + Calicivirus + Caliciviruses + Hydrosphere/Biological/Indicator Organisms/ + + + 4911 + Caliciviruses + Caliciviruses + Hydrosphere/Biological/Indicator Organisms/ + + + 4912 + Clostridium perfringens + Clostridium perfringens + Hydrosphere/Biological/Indicator Organisms/ + + + 4913 + Cryptosporidium + Cryptosporidium + Hydrosphere/Biological/Indicator Organisms/ + + + 4914 + Enterobacter cloacae + Enterobacter cloacae + Hydrosphere/Biological/Indicator Organisms/ + + + 4915 + Enterococci + Enterococci + Hydrosphere/Biological/Indicator Organisms/ + + + 4916 + Escherichia coli + Escherichia coli + Hydrosphere/Biological/Indicator Organisms/ + + + 4917 + Giardia + Giardia + Hydrosphere/Biological/Indicator Organisms/ + + + 4918 + Helicobacter pylori + Helicobacter pylori + Hydrosphere/Biological/Indicator Organisms/ + + + 4919 + Heterotrophic bacteria + Heterotrophic bacteria + Hydrosphere/Biological/Indicator Organisms/ + + + 4920 + Klebsiella pneumoniae + Klebsiella pneumoniae + Hydrosphere/Biological/Indicator Organisms/ + + + 4921 + Pseudomonas + Pseudomonas + Hydrosphere/Biological/Indicator Organisms/ + + + 4922 + Pseudomonas aeruginosa + Pseudomonas aeruginosa + Hydrosphere/Biological/Indicator Organisms/ + + + 4923 + Salmonella + Salmonella + Hydrosphere/Biological/Indicator Organisms/ + + + 4924 + Enteric virus + Viruses (enteric) + Hydrosphere/Biological/Indicator Organisms/ + + + 4924 + Viruses (enteric) + Viruses (enteric) + Hydrosphere/Biological/Indicator Organisms/ + + + 5001 + Stable Isotopes + Stable Isotopes + Hydrosphere/Chemical/ + + + 2381 + Nutrient + Nutrient + Hydrosphere/Chemical/ + + + 2423 + Oxygen Demand + Oxygen Demand + Hydrosphere/Chemical/ + + + 2428 + Radiochemical + Radiochemical + Hydrosphere/Chemical/ + + + 2250 + Inorganic + Inorganic + Hydrosphere/Chemical/ + + + 42 + Organic + Organic + Hydrosphere/Chemical/ + + + 2251 + Dissolved Gas + Dissolved Gas + Hydrosphere/Chemical/Inorganic/ + + + 2264 + Dissolved Solids + Dissolved Solids + Hydrosphere/Chemical/Inorganic/ + + + 2299 + Minor + Minor + Hydrosphere/Chemical/Inorganic/ + + + 2267 + Major + Major + Hydrosphere/Chemical/Inorganic/ + + + 2252 + Dissolved oxygen + Oxygen, dissolved + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2252 + Oxygen, dissolved + Oxygen, dissolved + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2253 + Dissolved oxygen saturation + Oxygen, dissolved percent of saturation + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2253 + Dissolved oxygen, percent of saturation + Oxygen, dissolved percent of saturation + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2253 + Oxygen, dissolved percent of saturation + Oxygen, dissolved percent of saturation + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2254 + Carbon dioxide + Carbon dioxide + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2255 + Chlorine + Chlorine + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2255 + Chlorine (combined available) + Chlorine + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2255 + Chlorine (free available) + Chlorine + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2255 + Chlorine (total residual) + Chlorine + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2256 + Fluorine + Fluorine + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2257 + Hydrogen + Hydrogen + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2258 + Hydrogen sulfide + Hydrogen sulfide + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2259 + Argon + Argon + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2260 + Krypton + Krypton + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2261 + Xenon + Xenon + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2262 + Dissolved nitrogen gas + Nitrogen, gas + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2262 + Nitrogen, gas + Nitrogen, gas + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2263 + Nitrous oxide + Nitrous oxide + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 5049 + Sulfur dioxide + Sulfur dioxide + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2265 + Fixed dissolved solids + Solids, fixed dissolved + Hydrosphere/Chemical/Inorganic/Dissolved Solids/ + + + 2265 + Solids, fixed dissolved + Solids, fixed dissolved + Hydrosphere/Chemical/Inorganic/Dissolved Solids/ + + + 2266 + Solids, total dissolved + Solids, total dissolved + Hydrosphere/Chemical/Inorganic/Dissolved Solids/ + + + 2266 + Total dissolved solids + Solids, total dissolved + Hydrosphere/Chemical/Inorganic/Dissolved Solids/ + + + 2276 + Major, non-metals + Major, non-metals + Hydrosphere/Chemical/Inorganic/Major/ + + + 2268 + Major, metals + Major, metals + Hydrosphere/Chemical/Inorganic/Major/ + + + 2291 + Major, bulk properties + Major, bulk properties + Hydrosphere/Chemical/Inorganic/Major/ + + + 2292 + Oxidation reduction potential + Oxidation reduction potential + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2292 + Redox potential + Oxidation reduction potential + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2293 + pH + pH + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2294 + Salinity + Salinity + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2295 + Carbonate hardness + Hardness, carbonate + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2295 + Hardness, carbonate + Hardness, carbonate + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2296 + Hardness, non-carbonate + Hardness, non-carbonate + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2296 + Noncarbonate hardness + Hardness, non-carbonate + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2297 + Specific conductance + Specific conductance + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2297 + Specific conductivity + Specific conductance + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2297 + Conductivity + Specific conductance + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2298 + Hardness + Hardness, total + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2298 + Hardness, total + Hardness, total + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2298 + Total hardness + Hardness, total + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2269 + Calcium + Calcium + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2270 + Magnesium + Magnesium + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2271 + Potassium + Potassium + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2272 + Sodium + Sodium + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2273 + Sodium adsorption ratio + Sodium adsorption ratio + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2274 + Sodium plus potassium + Sodium plus potassium + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2275 + Sodium, fraction of cations + Sodium, fraction of cations + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2275 + Sodium, percent total cations + Sodium, fraction of cations + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2277 + Acidity + Acidity + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2278 + Acid neutralizing capacity + Alkalinity + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2278 + Alkalinity + Alkalinity + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2279 + Bicarbonate + Bicarbonate + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2280 + Bromide + Bromide + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2281 + Chloride + Chloride + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2282 + Chlorine demand + Chlorine demand + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2283 + Fluoride + Fluoride + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2284 + Hydrogen ion + Hydrogen ion + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2285 + Hydroxide + Hydroxide + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2286 + Silica + Silica + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2287 + Sulfate + Sulfate + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2288 + Sulfide + Sulfide + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2289 + Sulfur + Sulfur + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2290 + Thiosulfate + Thiosulfate + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2360 + Minor, non-metals + Minor, non-metals + Hydrosphere/Chemical/Inorganic/Minor/ + + + 2300 + Minor, metals + Minor, metals + Hydrosphere/Chemical/Inorganic/Minor/ + + + 2301 + Aluminum + Aluminum + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2302 + Barium + Barium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2303 + Beryllium + Beryllium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2304 + Bismuth + Bismuth + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2305 + Cadmium + Cadmium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2306 + Cerium + Cerium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2307 + Cesium + Cesium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2308 + Chromium + Chromium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2309 + Chromium(III) + Chromium(III) + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2310 + Chromium(VI) + Chromium(VI) + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2311 + Cobalt + Cobalt + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2312 + Copper + Copper + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2313 + Dysprosium + Dysprosium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2314 + Erbium + Erbium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2315 + Europium + Europium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2316 + Iron, ferric + Iron, ferric + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2316 + Ferric ion + Iron, ferric + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2317 + Ferrous ion + Iron, ferrous + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2317 + Iron(II) + Iron, ferrous + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2317 + Iron, ferrous + Iron, ferrous + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2318 + Gadolinium + Gadolinium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2319 + Gallium + Gallium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2320 + Gold + Gold + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2321 + Hafnium + Hafnium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2322 + Holmium + Holmium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2323 + Indium + Indium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2324 + Iridium + Iridium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2325 + Iron + Iron + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2326 + Lanthanum + Lanthanum + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2327 + Lead + Lead + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2328 + Lithium + Lithium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2329 + Lutetium + Lutetium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2330 + Manganese + Manganese + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2331 + Mercury + Mercury + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2332 + Molybdenum + Molybdenum + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2333 + Neodymium + Neodymium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2334 + Nickel + Nickel + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2335 + Niobium + Niobium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2336 + Osmium + Osmium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2337 + Palladium + Palladium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2338 + Platinum + Platinum + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2339 + Praseodymium + Praseodymium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2340 + Rhenium + Rhenium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2341 + Rhodium + Rhodium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2342 + Rubidium + Rubidium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2343 + Ruthenium + Ruthenium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2344 + Samarium + Samarium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2345 + Scandium + Scandium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2346 + Silver + Silver + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2347 + Strontium + Strontium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2348 + Tantalum + Tantalum + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2349 + Terbium + Terbium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2350 + Thallium + Thallium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2351 + Thulium + Thulium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2352 + Tin + Tin + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2353 + Titanium + Titanium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2354 + Tungsten + Tungsten + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2355 + Vanadium + Vanadium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2356 + Ytterbium + Ytterbium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2357 + Yttrium + Yttrium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2358 + Zinc + Zinc + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2359 + Zirconium + Zirconium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 5020 + Uranium + Uranium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 5020 + Uranium (natural) + Uranium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2361 + Antimony + Antimony + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2362 + Arsenic + Arsenic + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2363 + Arsenic acid + Arsenic acid + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2364 + Asbestos + Asbestos + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2364 + Asbestos (fibrous) + Asbestos + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2365 + Boron + Boron + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2366 + Bromine + Bromine + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2367 + Chlorate + Chlorate + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2368 + Cyanide + Cyanide + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2369 + Cyanides amenable to chlorination (HCN & CN) + Cyanides amenable to chlorination (HCN & CN) + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2370 + Germanium + Germanium + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2371 + Helium + Helium + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2372 + Iodide + Iodide + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2373 + Iodine + Iodine + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2374 + Neon + Neon + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2375 + Perchlorate + Perchlorate + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2376 + Selenium + Selenium + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2377 + Sulfite + Sulfite (SO3) + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2377 + Sulfite (SO3) + Sulfite (SO3) + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2378 + Sulfur hexafluoride + Sulfur hexafluoride + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2379 + Tellurium + Tellurium + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2380 + Thiocyanate + Thiocyanate + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2401 + Phosphorus + Phosphorus + Hydrosphere/Chemical/Nutrient/ + + + 2382 + Nitrogen + Nitrogen + Hydrosphere/Chemical/Nutrient/ + + + 2413 + Carbon + Carbon + Hydrosphere/Chemical/Nutrient/ + + + 2414 + Carbonate + Carbonate (CO3) + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2414 + Carbonate (CO3) + Carbonate (CO3) + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2415 + Carbon (inorganic plus organic) + Carbon, total + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2415 + Carbon, total + Carbon, total + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2415 + Total Carbon + Carbon, total + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2416 + Carbon, total organic + Carbon, total organic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2416 + Total organic carbon + Carbon, total organic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2417 + Carbon, dissolved organic + Carbon, dissolved organic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2417 + Dissolved organic carbon + Carbon, dissolved organic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2418 + Carbon, suspended organic + Carbon, suspended organic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2418 + Suspended organic carbon + Carbon, suspended organic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2419 + Carbon, total inorganic + Carbon, total inorganic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2419 + Total inorganic carbon + Carbon, total inorganic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2420 + Carbon, dissolved inorganic + Carbon, dissolved inorganic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2420 + Dissolved inorganic carbon + Carbon, dissolved inorganic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2421 + Carbon, suspended inorganic + Carbon, suspended inorganic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2421 + Suspended inorganic carbon + Carbon, suspended inorganic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2422 + Carbon, total dissolved + Carbon, total dissolved + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2422 + Total dissolved carbon + Carbon, total dissolved + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 5037 + Colored dissolved organic matter + Colored dissolved organic matter + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 5038 + Carbon, total suspended + Carbon, total suspended + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 5038 + Total suspended carbon + Carbon, total suspended + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 5018 + Dissolved kjeldahl nitrogen + Nitrogen, dissolved kjeldahl + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 5018 + Nitrogen, dissolved kjeldahl + Nitrogen, dissolved kjeldahl + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2383 + Ammonia + Ammonia + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2388 + Albuminoid nitrogen + N, albuminoid + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2388 + N, albuminoid + N, albuminoid + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2389 + Nitrate nitrogen + Nitrogen, nitrate (NO3) + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2389 + Nitrogen, nitrate (NO3) + Nitrogen, nitrate (NO3) + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2390 + Nitrite nitrogen + Nitrogen, nitrite (NO2) + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2390 + Nitrogen, nitrite (NO2) + Nitrogen, nitrite (NO2) + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2391 + Nitrite plus nitrate + Nitrogen, nitrite (NO2) + nitrate (NO3) + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2391 + Nitrogen, nitrite (NO2) + nitrate (NO3) + Nitrogen, nitrite (NO2) + nitrate (NO3) + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2392 + Nitrogen compounds, organic + Nitrogen, total organic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2392 + Nitrogen, total organic + Nitrogen, total organic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2392 + Total organic nitrogen + Nitrogen, total organic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2393 + Dissolved organic nitrogen + Nitrogen, dissolved organic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2393 + Nitrogen, dissolved organic + Nitrogen, dissolved organic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2394 + Nitrogen, suspended organic + Nitrogen, suspended organic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2394 + Suspended organic nitrogen + Nitrogen, suspended organic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2395 + Nitrogen, total inorganic + Nitrogen, total inorganic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2395 + Total inorganic nitrogen + Nitrogen, total inorganic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2396 + Dissolved inorganic nitrogen + Nitrogen, dissolved inorganic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2396 + Nitrogen, dissolved inorganic + Nitrogen, dissolved inorganic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2397 + Nitrogen, suspended inorganic + Nitrogen, suspended inorganic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2397 + Suspended inorganic nitrogen + Nitrogen, suspended inorganic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2398 + Nitrogen, total kjeldahl + Nitrogen, total kjeldahl + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2398 + Total kjeldahl nitrogen + Nitrogen, total kjeldahl + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2399 + Nitrogen, total + Nitrogen, total + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2399 + Total nitrogen + Nitrogen, total + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2400 + Nitrogen, total dissolved + Nitrogen, total dissolved + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2400 + Total dissolved nitrogen + Nitrogen, total dissolved + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2384 + Ammonium + Ammonium + Hydrosphere/Chemical/Nutrient/Nitrogen/Ammonia/ + + + 2384 + Ionized ammonia + Ammonium + Hydrosphere/Chemical/Nutrient/Nitrogen/Ammonia/ + + + 2385 + Ammonia and ammonium + Total ammonia + Hydrosphere/Chemical/Nutrient/Nitrogen/Ammonia/ + + + 2385 + Total ammonia + Total ammonia + Hydrosphere/Chemical/Nutrient/Nitrogen/Ammonia/ + + + 2386 + Ammonia + Ammonia + Hydrosphere/Chemical/Nutrient/Nitrogen/Ammonia/ + + + 2386 + Free ammonia + Ammonia + Hydrosphere/Chemical/Nutrient/Nitrogen/Ammonia/ + + + 2387 + Ammonium ammonia ratio + Ammonium ammonia ratio + Hydrosphere/Chemical/Nutrient/Nitrogen/Ammonia/ + + + 5008 + Phosphorus, total dissolved + Phosphorus, total dissolved + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 5008 + Total dissolved phosphorus + Phosphorus, total dissolved + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2402 + Hydrolyzable phopshorus + Hydrolyzable phopshorus + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2403 + Hydrolyzable P plus orthophosphate + Hydrolyzable P plus orthophosphate + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2404 + Phosphorus, total organic + Phosphorus, total organic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2404 + Total organic phosphorus + Phosphorus, total organic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2405 + Dissolved organic phosphorus + Phosphorus, dissolved organic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2405 + Phosphorus, dissolved organic + Phosphorus, dissolved organic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2406 + Phosphorus, suspended organic + Phosphorus, suspended organic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2406 + Suspended organic phosphorus + Phosphorus, suspended organic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2407 + Phosphorus, total inorganic + Phosphorus, total inorganic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2407 + Total inorganic phosphorus + Phosphorus, total inorganic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2408 + Dissolved inorganic phosphorus + Phosphorus, dissolved inorganic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2408 + Phosphorus, dissolved inorganic + Phosphorus, dissolved inorganic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2409 + Phosphorus, suspended inorganic + Phosphorus, suspended inorganic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2409 + Suspended inorganic phosphorus + Phosphorus, suspended inorganic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2410 + Orthophosphate + Phosphorus, ortophosphate + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2410 + Phosphorus, ortophosphate + Phosphorus, ortophosphate + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2411 + Phosphorus, polyphosphate + Phosphorus, polyphosphate + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2411 + Polyphosphate + Phosphorus, polyphosphate + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2412 + Phosphorus, total + Phosphorus, total + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2412 + Total phosphorus + Phosphorus, total + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 43 + PCBs + PCBs + Hydrosphere/Chemical/Organic/ + + + 1283 + Other organic chemical + Other organic chemical + Hydrosphere/Chemical/Organic/ + + + 1833 + Pesticide + Pesticide + Hydrosphere/Chemical/Organic/ + + + 1284 + Acrolein + Acrolein + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1285 + Acrylonitrile + Acrylonitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1286 + Aldrin + Aldrin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1287 + (+)-Panthenol + (+)-Panthenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1288 + .alpha.,.alpha.-Dimethylphenethylamine + .alpha.,.alpha.-Dimethylphenethylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1288 + alpha,alpha-Dimethylphenethylamine + .alpha.,.alpha.-Dimethylphenethylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1289 + .alpha.-Methylstyrene + .alpha.-Methylstyrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1290 + .alpha.-Pinene + .alpha.-Pinene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1290 + alpha-Pinene + .alpha.-Pinene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1291 + .alpha.-Terpineol + .alpha.-Terpineol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1291 + alpha-Terpineol + .alpha.-Terpineol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1292 + 1,1,1,2-Tetrachloroethane + 1,1,1,2-Tetrachloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1293 + 1,1,1-Trichloro-2-propanone + 1,1,1-Trichloro-2-propanone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1294 + 1,1,1-Trichloroethane + 1,1,1-Trichloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1295 + 1,1,2,2-Tetrachloroethane + 1,1,2,2-Tetrachloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1296 + 1,1,2-Trichloroethane + 1,1,2-Trichloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1297 + 1,1'-Biphenyl, 4,4'-dibromo-2,2',3,3',5,5',6,6'-octafluoro- + 1,1'-Biphenyl, 4,4'-dibromo-2,2',3,3',5,5',6,6'-octafluoro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1298 + 1,1-Dichloroethane + 1,1-Dichloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1299 + 1,1-Dichloroethylene + 1,1-Dichloroethylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1300 + 1,1-Dichloropropanone + 1,1-Dichloropropanone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1301 + 1,1-Dichloropropene + 1,1-Dichloropropene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1302 + 1,2,3,4,6,7,8,9-Octachlorodibenzofuran + 1,2,3,4,6,7,8,9-Octachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1303 + 1,2,3,4,6,7,8,9-Octachlorodibenzo-p-dioxin + 1,2,3,4,6,7,8,9-Octachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1304 + 1,2,3,4,6,7,8-Heptachlorodibenzofuran + 1,2,3,4,6,7,8-Heptachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1305 + 1,2,3,4,6,7,8-Heptachlorodibenzo-p-dioxin + 1,2,3,4,6,7,8-Heptachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1306 + 1,2,3,4,7,8,9-Heptachlorodibenzofuran + 1,2,3,4,7,8,9-Heptachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1307 + 1,2,3,4,7,8-Hexachlorodibenzofuran + 1,2,3,4,7,8-Hexachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1308 + 1,2,3,4,7,8-Hexachlorodibenzo-p-dioxin + 1,2,3,4,7,8-Hexachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1309 + 1,2,3,4-Tetramethylbenzene + 1,2,3,4-Tetramethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1310 + 1,2,3,5-Tetramethylbenzene + 1,2,3,5-Tetramethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1311 + 1,2,3,6,7,8-Hexachlorodibenzofuran + 1,2,3,6,7,8-Hexachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1312 + 1,2,3,6,7,8-Hexachlorodibenzo-p-dioxin + 1,2,3,6,7,8-Hexachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1313 + 1,2,3,7,8,9-Hexachlorodibenzofuran + 1,2,3,7,8,9-Hexachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1314 + 1,2,3,7,8,9-Hexachlorodibenzo-p-dioxin + 1,2,3,7,8,9-Hexachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1315 + 1,2,3,7,8-Pentachlorodibenzofuran + 1,2,3,7,8-Pentachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1316 + 1,2,3,7,8-Pentachlorodibenzo-p-dioxin + 1,2,3,7,8-Pentachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1317 + 1,2,3-Trichlorobenzene + 1,2,3-Trichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1318 + 1,2,3-Trimethylbenzene + 1,2,3-Trimethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1319 + 1,2,4,5-Tetrachlorobenzene + 1,2,4,5-Tetrachlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1320 + 1,2,4,5-Tetramethylbenzene + 1,2,4,5-Tetramethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1321 + 1,2,4-Trichlorobenzene + 1,2,4-Trichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1322 + 1,2,4-Trimethylbenzene + 1,2,4-Trimethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1323 + 1,2-Bis(2,4,6-tribromophenoxy)ethane + 1,2-Bis(2,4,6-tribromophenoxy)ethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1324 + 1,2-Dichloroethylene + 1,2-Dichloroethylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1325 + 1,2-Dichloropropene + 1,2-Dichloropropene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1326 + 1,2-Dimethylnaphthalene + 1,2-Dimethylnaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1327 + 1,2-Diphenylhydrazine + 1,2-Diphenylhydrazine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1328 + 1,3,5-Trichlorobenzene + 1,3,5-Trichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1329 + 1,3,5-Trimethylbenzene + 1,3,5-Trimethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1330 + 1,3,5-Trinitrobenzene + 1,3,5-Trinitrobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1331 + 1,3-Dioxolo[4,5-g]quinoline-7-carboxylic acid, 5-ethyl-5,8-dihydro-8-oxo- + 1,3-Dioxolo[4,5-g]quinoline-7-carboxylic acid, 5-ethyl-5,8-dihydro-8-oxo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1332 + 1,3-Isobenzofurandione, 4,5,6,7-tetrabromo- + 1,3-Isobenzofurandione, 4,5,6,7-tetrabromo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1333 + 1,3-Propanedione, 1-[4-(1,1-dimethylethyl)phenyl]-3-(4-methoxyphenyl)- + 1,3-Propanedione, 1-[4-(1,1-dimethylethyl)phenyl]-3-(4-methoxyphenyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1334 + 1,4-Dioxane + 1,4-Dioxane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1335 + 1,6-Dimethylnaphthalene + 1,6-Dimethylnaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1336 + 1-Bromo-2-chloroethane + 1-Bromo-2-chloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1337 + 1H-Benzimidazol-2-amine + 1H-Benzimidazol-2-amine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1338 + 1H-Benzotriazole, 5-methyl- + 1H-Benzotriazole, 5-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1338 + 5-Methyl-1H-benzotriazole + 1H-Benzotriazole, 5-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1339 + 1-Hexadecen-3-ol, 3,7,11,15-tetramethyl- + 1-Hexadecen-3-ol, 3,7,11,15-tetramethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1340 + 1-Methyl-9H-fluorene + 1-Methylfluorene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1340 + 1-Methylfluorene + 1-Methylfluorene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1341 + 1-Methylnaphthalene + 1-Methylnaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1342 + 1-Methylphenanthrene + 1-Methylphenanthrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1343 + 1-Methylpyrene + 1-Methylpyrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1344 + 1-Naphthalenamine + 1-Naphthalenamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1345 + 2-(Methylthio)benzothiazole + 2-(Methylthio)benzothiazole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1346 + 2,2'-Biquinoline + 2,2'-Biquinoline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1347 + 2,2-Dichloropropane + 2,2-Dichloropropane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1348 + 2,3,4,6,7,8-Hexachlorodibenzofuran + 2,3,4,6,7,8-Hexachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1349 + 2,3,4,7,8-Pentachlorodibenzofuran + 2,3,4,7,8-Pentachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1350 + 2,3,6-Trimethylnaphthalene + 2,3,6-Trimethylnaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1351 + 2,3,7,8-Tetrachlorodibenzofuran + 2,3,7,8-Tetrachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1352 + 2,3,7,8-Tetrachlorodibenzo-p-dioxin + 2,3,7,8-Tetrachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1353 + 2,3-Dichloropropene + 2,3-Dichloropropene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1354 + 2,4,6-Trimethylphenol + 2,4,6-Trimethylphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1355 + 2,4-Dinitrophenol + 2,4-Dinitrophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1356 + 2,4-Dinitrotoluene + 2,4-Dinitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1357 + 2,4-Pyrimidinediamine, 5-[(3,4,5-trimethoxyphenyl)methyl]- + 2,4-Pyrimidinediamine, 5-[(3,4,5-trimethoxyphenyl)methyl]- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1358 + 2,6-Dichlorobenzamide + 2,6-Dichlorobenzamide + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1359 + 2,6-Dichlorophenol + 2,6-Dichlorophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1360 + 2,6-Dimethylnaphthalene + 2,6-Dimethylnaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1361 + 2,6-Dinitrotoluene + 2,6-Dinitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1362 + 2,6-Di-tert-butyl-p-cresol + 2,6-Di-tert-butyl-p-cresol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1363 + 2,6-Di-tert-butylphenol + 2,6-Di-tert-butylphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1364 + 2-Acetylaminofluorene + 2-Acetylaminofluorene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1365 + 2-Amino-4,6-dinitrotoluene + 2-Amino-4,6-dinitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1366 + 2-Amino-9H-pyrido[2,3-b]indole + 2-Amino-9H-pyrido[2,3-b]indole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1367 + 2-Butene, 1,4-dichloro-, (2Z)- + 2-Butene, 1,4-dichloro-, (2Z)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1368 + 2-Butene, 2-methyl- + 2-Butene, 2-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1369 + 2-Chloroethyl vinyl ether + 2-Chloroethyl vinyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1370 + 2-Chloronaphthalene + 2-Chloronaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1371 + 2-Ethylhexyl p-methoxycinnamate + 2-Ethylhexyl p-methoxycinnamate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1372 + 2-Ethylnaphthalene + 2-Ethylnaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1373 + 2H-1,2,4-Benzothiadiazine-7-sulfonamide, 6-chloro-3,4-dihydro-, 1,1-dioxide + 2H-1,2,4-Benzothiadiazine-7-sulfonamide, 6-chloro-3,4-dihydro-, 1,1-dioxide + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1374 + 2H-1-Benzopyran-6-ol, 3,4-dihydro-2,5,7,8-tetramethyl-2-[(4R,8R)-4,8,12-trimethyltridecyl]-, (2R)- + 2H-1-Benzopyran-6-ol, 3,4-dihydro-2,5,7,8-tetramethyl-2-[(4R,8R)-4,8,12-trimethyltridecyl]-, (2R)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1375 + 2-Hexadecen-1-ol, 3,7,11,15-tetramethyl-, (2E,7R,11R)- + 2-Hexadecen-1-ol, 3,7,11,15-tetramethyl-, (2E,7R,11R)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1376 + 2-Hexanone + 2-Hexanone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1377 + 2-Hydroxy-4-methoxybenzophenone + 2-Hydroxy-4-methoxybenzophenone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1378 + 2-Hydroxy-4-octyloxybenzophenone + 2-Hydroxy-4-octyloxybenzophenone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1379 + 2-Methyl-2-butanol + 2-Methyl-2-butanol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1380 + 2-Methyl-5-nitroaniline + 2-Methyl-5-nitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1381 + 2-Methylanthracene + 2-Methylanthracene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1382 + 2-Methylbutane + 2-Methylbutane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1383 + 2-Methylnaphthalene + 2-Methylnaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1384 + 2-Methylpyridine + 2-Methylpyridine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1385 + 2-Naphthacenecarboxamide, 7-chloro-4-(dimethylamino)-1,4,4a,5,5a,6,11,12a-octahydro-3,6,10,12,12a-pentahydroxy-6-methyl-1,11-dioxo-, (4S,4aS,5aS,6S,12aS)- + 2-Naphthacenecarboxamide, 7-chloro-4-(dimethylamino)-1,4,4a,5,5a,6,11,12a-octahydro-3,6,10,12,12a-pentahydroxy-6-methyl-1,11-dioxo-, (4S,4aS,5aS,6S,12aS)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1386 + 2-Naphthalenamine + 2-Naphthalenamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1387 + 2-Nitropropane + 2-Nitropropane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1388 + 2-Propanol, 1,3-dichloro-, phosphate (3:1) + 2-Propanol, 1,3-dichloro-, phosphate (3:1) + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1389 + 2-Pyrrolidinone, 1-methyl-5-(3-pyridinyl)-, (5S)- + 2-Pyrrolidinone, 1-methyl-5-(3-pyridinyl)-, (5S)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1390 + 3,3,5-Trimethylcyclohexyl salicylate + 3,3,5-Trimethylcyclohexyl salicylate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1391 + 3,3'-Dichlorobenzidine + 3,3'-Dichlorobenzidine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1392 + 3,3'-Dimethylbenzidine + 3,3'-Dimethylbenzidine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1393 + 3,4-Dichlorophenyl isocyanate + 3,4-Dichlorophenyl isocyanate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1394 + 3,5-Dimethylphenol + 3,5-Dimethylphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1395 + 3,5-Dinitroaniline + 3,5-Dinitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1396 + 3,7-Dimethyl-1,6-octadien-3-ol + 3,7-Dimethyl-1,6-octadien-3-ol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1397 + 3-Buten-2-one, 3-methyl-4-(2,6,6-trimethyl-2-cyclohexen-1-yl)- + 3-Buten-2-one, 3-methyl-4-(2,6,6-trimethyl-2-cyclohexen-1-yl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1398 + 3-Methylcholanthrene + 3-Methylcholanthrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1399 + 3-Methyl-1H-indole + 3-Methylindole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1399 + 3-Methylindole + 3-Methylindole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1400 + 3-Pyrrolidineacetic acid, 2-carboxy-4-[(1Z,3E,5R)-5-carboxy-1-methyl-1,3-hexadienyl]-, (2S,3S,4S)- + 3-Pyrrolidineacetic acid, 2-carboxy-4-[(1Z,3E,5R)-5-carboxy-1-methyl-1,3-hexadienyl]-, (2S,3S,4S)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1401 + 3-Quinolinecarboxylic acid, 7-(3-amino-1-pyrrolidinyl)-8-chloro-1-cyclopropyl-6-fluoro-1,4-dihydro-4-oxo- + 3-Quinolinecarboxylic acid, 7-(3-amino-1-pyrrolidinyl)-8-chloro-1-cyclopropyl-6-fluoro-1,4-dihydro-4-oxo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1402 + 4,4'-Isopropylidenediphenol + 4,4'-Isopropylidenediphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1403 + 4-Amino-2,6-dinitrotoluene + 4-Amino-2,6-dinitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1404 + 4-Aminobiphenyl + 4-Aminobiphenyl + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1405 + 4-Dimethylaminoazobenzene + 4-Dimethylaminoazobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1406 + 4H-Cyclopenta[def]phenanthrene + 4H-Cyclopenta[def]phenanthrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1407 + 4-Nitroquinoline 1-oxide + 4-Nitroquinoline 1-oxide + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1408 + 4-Thia-1-azabicyclo[3.2.0]heptane-2-carboxylic acid, 3,3-dimethyl-7-oxo-6-[(phenoxyacetyl)amino]-, (2S,5R,6R)- + 4-Thia-1-azabicyclo[3.2.0]heptane-2-carboxylic acid, 3,3-dimethyl-7-oxo-6-[(phenoxyacetyl)amino]-, (2S,5R,6R)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1409 + 6-Methyl-2-(1-methylethyl)-4(1H)-pyrimidinone + 6-Methyl-2-(1-methylethyl)-4(1H)-pyrimidinone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1410 + 7,12-Dimethylbenz[a]anthracene + 7,12-Dimethylbenz[a]anthracene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1411 + 9,10-Secocholesta-5,7,10(19)-trien-3-ol, (3.beta.,5Z,7E)- + 9,10-Secocholesta-5,7,10(19)-trien-3-ol, (3.beta.,5Z,7E)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1412 + Acenaphthene + Acenaphthene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1413 + Acenaphthylene + Acenaphthylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1414 + Acetaldehyde + Acetaldehyde + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1415 + Acetamide, 2,2-dichloro-N-[(1R,2R)-2-hydroxy-1-(hydroxymethyl)-2-(4-nitrophenyl)ethyl]- + Acetamide, 2,2-dichloro-N-[(1R,2R)-2-hydroxy-1-(hydroxymethyl)-2-(4-nitrophenyl)ethyl]- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1416 + Acetaminophen + Acetaminophen + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1417 + Acetic acid + Acetic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1418 + Acetic acid, (4-nonylphenoxy)- + Acetic acid, (4-nonylphenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1418 + Nonylphenoxyacetic acid + Acetic acid, (4-nonylphenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1419 + Acetone + Acetone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1420 + Acetonitrile + Acetonitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1421 + Acetonitrile, chloro- + Acetonitrile, chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1421 + Chloroacetonitrile + Acetonitrile, chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1422 + Acetophenone + Acetophenone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1423 + Acridine + Acridine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1425 + Acrylamide + Acrylamide + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1426 + Adenosine 5'-(tetrahydrogen triphosphate) + Adenosine 5'-(tetrahydrogen triphosphate) + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1427 + Alprazolam + Alprazolam + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1428 + Aluminum, Organic + Inorganic Monomeric (reactive aluminum) + Aluminum, Organic + Inorganic Monomeric (reactive aluminum) + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1428 + Monomeric aluminum + Aluminum, Organic + Inorganic Monomeric (reactive aluminum) + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1429 + Aluminum, Organic Monomeric (reactive aluminum) + Aluminum, Organic Monomeric (reactive aluminum) + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1429 + Organic monomeric aluminum + Aluminum, Organic Monomeric (reactive aluminum) + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1430 + Androst-4-en-3-one, 17-hydroxy-, (17.beta.)- + Androst-4-en-3-one, 17-hydroxy-, (17.beta.)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1431 + Androstan-17-one, 3-hydroxy-, (3.alpha.,5.alpha.)- + Androstan-17-one, 3-hydroxy-, (3.alpha.,5.alpha.)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1432 + Aniline + Aniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1433 + Anthracene + Anthracene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1434 + 9,10-Anthraquinone + Anthraquinone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1434 + Anthraquinone + Anthraquinone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1435 + 3-Nitro-4-hydroxyphenylarsonic acid + Arsonic acid, (4-hydroxy-3-nitrophenyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1435 + Arsonic acid, (4-hydroxy-3-nitrophenyl)- + Arsonic acid, (4-hydroxy-3-nitrophenyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1436 + Aspirin + Aspirin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1437 + Benz[a]anthracene + Benz[a]anthracene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1438 + Benz[a]anthracene mixt. with chrysene + Benz[a]anthracene mixt. with chrysene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1439 + Benzaldehyde + Benzaldehyde + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1440 + Benzenamine, 4-(4-chlorophenoxy)- + Benzenamine, 4-(4-chlorophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1441 + Benzene + Benzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1442 + Benzene, 1,1'-(1E)-1,2-ethenediylbis- + Benzene, 1,1'-(1E)-1,2-ethenediylbis- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1443 + Benzene, 1,1'-oxybis[2,4,5-tribromo- + Benzene, 1,1'-oxybis[2,4,5-tribromo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1444 + Benzene, 1,1'-oxybis[2,4-dibromo- + Benzene, 1,1'-oxybis[2,4-dibromo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1445 + Benzene, 1,2,3-tribromo-4-(2,4,5-tribromophenoxy)- + Benzene, 1,2,3-tribromo-4-(2,4,5-tribromophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1446 + Benzene, 1,2,3-tribromo-4-(2,4-dibromophenoxy)- + Benzene, 1,2,3-tribromo-4-(2,4-dibromophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1447 + Benzene, 1,2,4-tribromo-5-(2,4-dibromophenoxy)- + Benzene, 1,2,4-tribromo-5-(2,4-dibromophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1448 + Benzene, 1,2-dibromo-4-(2,4-dibromophenoxy)- + Benzene, 1,2-dibromo-4-(2,4-dibromophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1449 + Benzene, 1,3(and 1,4)-dimethyl- Chemical m(and p)-xylene + Benzene, 1,3(and 1,4)-dimethyl- Chemical m(and p)-xylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1450 + Benzene, 1,3,5-tribromo-2-(2,4,5-tribromophenoxy)- + Benzene, 1,3,5-tribromo-2-(2,4,5-tribromophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1451 + Benzene, 1,3,5-tribromo-2-(2,4-dibromophenoxy)- + Benzene, 1,3,5-tribromo-2-(2,4-dibromophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1452 + Benzene, 2,4-dibromo-1-(4-bromophenoxy)- + Benzene, 2,4-dibromo-1-(4-bromophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1453 + Benzene, pentabromomethyl- + Benzene, pentabromomethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1454 + Benzeneacetic acid, .alpha.-methyl-4-(2-methylpropyl)- + Benzeneacetic acid, .alpha.-methyl-4-(2-methylpropyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1455 + Benzeneacetic acid, 3-benzoyl-.alpha.-methyl- + Benzeneacetic acid, 3-benzoyl-.alpha.-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1456 + Benzenesulfonamide, 4-amino-N-(2,6-dimethoxy-4-pyrimidinyl)- + Benzenesulfonamide, 4-amino-N-(2,6-dimethoxy-4-pyrimidinyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1457 + Benzenesulfonamide, 4-amino-N-(4,6-dimethyl-2-pyrimidinyl)- + Benzenesulfonamide, 4-amino-N-(4,6-dimethyl-2-pyrimidinyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1458 + Benzenesulfonamide, 4-amino-N-(4-methyl-2-pyrimidinyl)- + Benzenesulfonamide, 4-amino-N-(4-methyl-2-pyrimidinyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1459 + Benzenesulfonamide, 4-amino-N-2-pyrimidinyl- + Benzenesulfonamide, 4-amino-N-2-pyrimidinyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1460 + Benzenesulfonic acid, decyl-, sodium salt, mixt. with sodium dodecylbenzenesulfonate, sodium tridecylbenzenesulfonate and sodium undecylbenzenesulfonate + Benzenesulfonic acid, decyl-, sodium salt, mixt. with sodium dodecylbenzenesulfonate, sodium tridecylbenzenesulfonate and sodium undecylbenzenesulfonate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1461 + Benzidine + Benzidine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1462 + Benzo(b)fluoranthene + Benzo(b)fluoranthene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1463 + Benzo[a]pyrene + Benzo[a]pyrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1464 + Benzo[c]cinnoline + Benzo[c]cinnoline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1465 + Benzo[e]pyrene + Benzo[e]pyrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1466 + Benzo[ghi]perylene + Benzo[ghi]perylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1467 + Benzo[k]fluoranthene + Benzo[k]fluoranthene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1468 + Benzoic acid + Benzoic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1469 + Benzoic acid, 4-hydroxy-, methyl ester + Benzoic acid, 4-hydroxy-, methyl ester + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1470 + Benzoic acid, 4-hydroxy-, propyl ester + Benzoic acid, 4-hydroxy-, propyl ester + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1471 + Benzoic acid, 5-(aminosulfonyl)-4-chloro-2-((2-furanylmethyl)amino)- + Benzoic acid, 5-(aminosulfonyl)-4-chloro-2-((2-furanylmethyl)amino)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1472 + Benzophenone + Benzophenone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1473 + Benzyl alcohol + Benzyl alcohol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1474 + Benzyl benzoate + Benzyl benzoate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1475 + Benzyl chloride + Benzyl chloride + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1476 + Benzyl cinnamate + Benzyl cinnamate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1477 + Benzyl salicylate + Benzyl salicylate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1478 + Biphenyl + Biphenyl + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1479 + Bis(2-chloroethoxy)methane + Bis(2-chloroethoxy)methane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1480 + Bis(2-chloroethyl) ether + Bis(2-chloroethyl) ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1481 + Bis(2-chloroisopropyl) ether + Bis(2-chloroisopropyl) ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1482 + Bis(chloromethyl) ether + Bis(chloromethyl) ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1483 + Bromoacetic acid + Bromoacetic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1484 + Bromobenzene + Bromobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1485 + Bromochloroacetic acid + Bromochloroacetic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1486 + Bromochloroacetonitrile + Bromochloroacetonitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1487 + Butane + Butane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1488 + 1-Chlorobutane + Butane, 1-chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1488 + Butane, 1-chloro- + Butane, 1-chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1489 + 2,3-Dimethylbutane + Butane, 2,3-dimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1489 + Butane, 2,3-dimethyl- + Butane, 2,3-dimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1490 + Butyl benzyl phthalate + Butyl benzyl phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1490 + Butylbenzyl phthalate + Butyl benzyl phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1491 + Butyric acid + Butyric acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1492 + C.I. Vat Blue 1 + C.I. Vat Blue 1 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1493 + Caffeine + Caffeine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1494 + Camphene + Camphene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1495 + Caprolactam + Caprolactam + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1496 + Carbon tetrachloride + Carbon tetrachloride + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1497 + Carisoprodol + Carisoprodol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1498 + CFC-11 + CFC-11 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1499 + CFC-113 + CFC-113 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1500 + CFC-12 + CFC-12 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1501 + Chloral + Chloral + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1502 + Chloral hydrate + Chloral hydrate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1503 + Chlorinated naphthalenes + Chlorinated naphthalenes + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1504 + Chloroacetaldehyde + Chloroacetaldehyde + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1505 + Chloroacetic acid + Chloroacetic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1506 + Chlorobenzene + Chlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1507 + Chlorodibromomethane + Chlorodibromomethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1508 + Chloroethane + Chloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1509 + Chloroform + Chloroform + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1510 + Chloromethane + Chloromethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1511 + Chloromethyl methyl ether + Chloromethyl methyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1512 + Chloroprene + Chloroprene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1513 + Chlorpheniramine + Chlorpheniramine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1514 + Cholestan-3-ol, (3.beta.,5.beta.)- + Cholestan-3-ol, (3.beta.,5.beta.)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1515 + Cholesterol + Cholesterol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1516 + Chrysene + Chrysene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1517 + Cinnamaldehyde + Cinnamaldehyde + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1518 + cis-1,2-Dichloroethylene + cis-1,2-Dichloroethylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1519 + Citral + Citral + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1520 + Citronellol + Citronellol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1521 + Coal + Coal + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1522 + Coronene + Coronene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1523 + Coumaran + Coumaran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1524 + Coumarin + Coumarin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1525 + Cresol + Cresol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1526 + Cumene + Cumene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1527 + Cyclo[L-arginyl-(2S,3S,4E,6E,8S,9S)-3-amino-9-methoxy-2,6,8-trimethyl-10-phenyl-4,6-decadienoyl-D-.gamma.-glutamyl-(2Z)-2-(methylamino)-2-butenoyl-(3S)-3-methyl-D-.beta.-aspartyl] + Cyclo[L-arginyl-(2S,3S,4E,6E,8S,9S)-3-amino-9-methoxy-2,6,8-trimethyl-10-phenyl-4,6-decadienoyl-D-.gamma.-glutamyl-(2Z)-2-(methylamino)-2-butenoyl-(3S)-3-methyl-D-.beta.-aspartyl] + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1528 + Cyclododecane + Cyclododecane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1529 + Cyclododecane, hexabromo- + Cyclododecane, hexabromo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1529 + Hexabromocyclododecane + Cyclododecane, hexabromo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1530 + Cyclohexane + Cyclohexane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1531 + Cyclohexene, 1-methyl-4-(1-methylethenyl)-, (4R)- + Cyclohexene, 1-methyl-4-(1-methylethenyl)-, (4R)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1532 + Cyclonite + Cyclonite + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1533 + Cyclopenta[g]-2-benzopyran, 1,3,4,6,7,8-hexahydro-4,6,6,7,8,8-hexamethyl- + Cyclopenta[g]-2-benzopyran, 1,3,4,6,7,8-hexahydro-4,6,6,7,8,8-hexamethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1534 + Cyclotetramethylenetetranitramine + Cyclotetramethylenetetranitramine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1535 + D-.alpha.-Tocopheryl acetate + D-.alpha.-Tocopheryl acetate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1536 + Decabromodiphenyl oxide + Decabromodiphenyl oxide + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1537 + Decane + Decane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1538 + D-erythro-.alpha.-D-galacto-Octopyranoside, methyl 6,8-dideoxy-6-[[[(2S,4R)-1-methyl-4-propyl-2-pyrrolidinyl]carbonyl]amino]-1-thio- + D-erythro-.alpha.-D-galacto-Octopyranoside, methyl 6,8-dideoxy-6-[[[(2S,4R)-1-methyl-4-propyl-2-pyrrolidinyl]carbonyl]amino]-1-thio- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1539 + Bis(2-ethylhexyl) adipate + Di(2-ethylhexyl) adipate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1539 + Di(2-ethylhexyl) adipate + Di(2-ethylhexyl) adipate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1540 + Bis(2-ethylhexyl) phthalate + Di(2-ethylhexyl) phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1540 + Di(2-ethylhexyl) phthalate + Di(2-ethylhexyl) phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1541 + Diazepam + Diazepam + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1542 + Dibenz[a,h]anthracene + Dibenz[a,h]anthracene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1542 + Dibenzo[a,h]anthracene + Dibenz[a,h]anthracene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1543 + Dibenzofuran + Dibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1544 + Dibenzothiophene + Dibenzothiophene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1545 + Dibromoacetic acid + Dibromoacetic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1546 + Dibromoacetonitrile + Dibromoacetonitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1547 + Dibromomethane + Dibromomethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1548 + Dibutyl phthalate + Dibutyl phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1548 + Di-n-butyl phthalate + Dibutyl phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1549 + Dichloroacetic acid + Dichloroacetic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1550 + Dichloroacetonitrile + Dichloroacetonitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1551 + Dichlorobromomethane + Dichlorobromomethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1552 + Diesel range organics + Diesel range organics + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1553 + Diethyl phthalate + Diethyl phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1554 + Diethylene glycol monobutyl ether acetate + Diethylene glycol monobutyl ether acetate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1555 + Diethylstilbestrol + Diethylstilbestrol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1555 + trans-Diethylstilbestrol + Diethylstilbestrol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1556 + Digoxin + Digoxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1557 + Dimethoxymethane + Dimethoxymethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1558 + Dimethyl dioctadecyl ammonium chloride + Dimethyl dioctadecyl ammonium chloride + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1559 + Dimethyl ether + Dimethyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1560 + Dimethyl phthalate + Dimethyl phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1561 + Di-n-octyl phthalate + Di-n-octyl phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1562 + Diphenylsulfone + Diphenylsulfone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1563 + Docosane + Docosane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1564 + Dodecane + Dodecane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1565 + Doxycycline + Doxycycline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1566 + Eicosane + Eicosane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1567 + Erythromycin + Erythromycin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1568 + Estra-1,3,5,7,9-pentaen-17-one, 3-hydroxy- + Estra-1,3,5,7,9-pentaen-17-one, 3-hydroxy- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1569 + Estradiol + Estradiol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1570 + Estrone + Estrone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1571 + Ethanamine, 2-(diphenylmethoxy)-N,N-dimethyl- + Ethanamine, 2-(diphenylmethoxy)-N,N-dimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1572 + Ethane + Ethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1573 + Ethanol + Ethanol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1574 + Ethanol, 2-(4-nonylphenoxy)- + Ethanol, 2-(4-nonylphenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1575 + Ethanol, 2,2'-thiobis- + Ethanol, 2,2'-thiobis- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1576 + Ethanol, 2-[2-(4-nonylphenoxy)ethoxy]- + Ethanol, 2-[2-(4-nonylphenoxy)ethoxy]- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1577 + Ethanol, 2-[2-[2-[2-(4-nonylphenoxy)ethoxy]ethoxy]ethoxy]- + Ethanol, 2-[2-[2-[2-(4-nonylphenoxy)ethoxy]ethoxy]ethoxy]- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1578 + 1-(1,2,3,4,5,6,7,8-Octahydro-2,3,8,8-tetramethyl-2-naphthalenyl)ethanone + Ethanone, 1-(1,2,3,4,5,6,7,8-octahydro-2,3,8,8-tetramethyl-2-naphthalenyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1578 + Ethanone, 1-(1,2,3,4,5,6,7,8-octahydro-2,3,8,8-tetramethyl-2-naphthalenyl)- + Ethanone, 1-(1,2,3,4,5,6,7,8-octahydro-2,3,8,8-tetramethyl-2-naphthalenyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1579 + Ethanone, 1-(2,3-dihydro-1,1,2,3,3,6-hexamethyl-1H-inden-5-yl)- + Ethanone, 1-(2,3-dihydro-1,1,2,3,3,6-hexamethyl-1H-inden-5-yl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1580 + Ethanone, 1-[(3R,3aR,7R,8aS)-2,3,4,7,8,8a-hexahydro-3,6,8,8-tetramethyl-1H-3a,7-methanoazulen-5-yl]- + Ethanone, 1-[(3R,3aR,7R,8aS)-2,3,4,7,8,8a-hexahydro-3,6,8,8-tetramethyl-1H-3a,7-methanoazulen-5-yl]- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1581 + Ethanone, 1-[6-(1,1-dimethylethyl)-2,3-dihydro-1,1-dimethyl-1H-inden-4-yl]- + Ethanone, 1-[6-(1,1-dimethylethyl)-2,3-dihydro-1,1-dimethyl-1H-inden-4-yl]- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1582 + 17-alpha-Ethynyl estradiol + Ethinyl estradiol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1582 + Ethinyl estradiol + Ethinyl estradiol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1583 + Ethyl acetate + Ethyl acetate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1584 + Ethyl ether + Ethyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1585 + Ethyl formate + Ethyl formate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1586 + Ethyl methacrylate + Ethyl methacrylate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1587 + Ethyl methanesulfonate + Ethyl methanesulfonate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1588 + Ethyl nicotinate + Ethyl nicotinate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1589 + Ethyl tert-butyl ether + Ethyl tert-butyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1589 + tert-Butyl ethyl ether + Ethyl tert-butyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1590 + Ethylbenzene + Ethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1591 + Ethylene + Ethylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1592 + Ethylene glycol + Ethylene glycol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1593 + Eugenol + Eugenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1594 + Farnesol + Farnesol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1595 + Fluoranthene + Fluoranthene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1596 + 9H-Fluorene + Fluorene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1596 + Fluorene + Fluorene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1597 + Formaldehyde + Formaldehyde + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1598 + Formic acid + Formic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1599 + Formic acid, 1,1-dimethylethyl ester + Formic acid, 1,1-dimethylethyl ester + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1600 + Gasoline range organic compounds + Gasoline range organics + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1600 + Gasoline range organics + Gasoline range organics + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1601 + Haloacetic acids + Haloacetic acids + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1602 + Halocarbons, purgeable + Halocarbons, purgeable + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1603 + Halogenated organics + Halogenated organics + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1604 + Halon 1011 + Halon 1011 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1605 + HCFC-123 + HCFC-123 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1606 + HCFC-123a + HCFC-123a + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1607 + HCFC-21 + HCFC-21 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1608 + HCFC-22 + HCFC-22 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1609 + Heptachlorodibenzofuran + Heptachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1609 + Heptachlorodibenzofurans (all isomers) + Heptachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1610 + Heptachlorodibenzo-p-dioxin + Heptachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1610 + Heptachlorodibenzo-p-dioxins (all isomers) + Heptachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1611 + Heptadecanoic acid + Heptadecanoic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1612 + Heptanal, 2-(phenylmethylene)- + Heptanal, 2-(phenylmethylene)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1613 + Hexachlorobutadiene + Hexachlorobutadiene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1614 + Hexachlorocyclopentadiene + Hexachlorocyclopentadiene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1615 + Hexachlorodibenzofuran + Hexachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1615 + Hexachlorodibenzofurans (all isomers) + Hexachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1616 + Hexachloroethane + Hexachloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1617 + Hexachloropropene + Hexachloropropene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1618 + Hexacosane + Hexacosane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1619 + Hexadecane + Hexadecane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1620 + Hexadecane, 2,6,10,14-tetramethyl- + Hexadecane, 2,6,10,14-tetramethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1621 + Hexane + Hexane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1622 + 1-Chlorohexane + Hexane, 1-chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1622 + Hexane, 1-chloro- + Hexane, 1-chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1623 + Hexatriacontane + Hexatriacontane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1624 + Hydrocarbons, nitrated + Hydrocarbons, nitrated + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1625 + Hydrocarbons, petroleum + Hydrocarbons, petroleum + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1625 + Petroleum hydrocarbons + Hydrocarbons, petroleum + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1626 + Hydrocarbons, volatile + Hydrocarbons, volatile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1627 + Hydrophilic fraction of organic carbon + Hydrophilic fraction of organic carbon + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1628 + Hydrophobic fraction of organic carbon + Hydrophobic fraction of organic carbon + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1629 + Indeno[1,2,3-cd]pyrene + Indeno[1,2,3-cd]pyrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1630 + Indole + Indole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1631 + Isoborneol + Isoborneol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1632 + Isobutanol + Isobutanol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1633 + Isobutene + Isobutene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1634 + Isoeugenol + Isoeugenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1635 + Isophorone + Isophorone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1636 + Isopropyl ether + Isopropyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1637 + Isopropyl myristate + Isopropyl myristate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1638 + Isoquinoline + Isoquinoline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1639 + Isosafrole + Isosafrole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1640 + Lactic acid + Lactic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1641 + Lanolin + Lanolin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1642 + Lipids + Lipids + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1643 + L-Tyrosine, O-(4-hydroxy-3,5-diiodophenyl)-3,5-diiodo- + L-Tyrosine, O-(4-hydroxy-3,5-diiodophenyl)-3,5-diiodo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1644 + 3-Chlorotoluene + m-Chlorotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1644 + m-Chlorotoluene + m-Chlorotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1645 + m-Cresol + m-Cresol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1646 + 1,3-Dichlorobenzene + m-Dichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1646 + m-Dichlorobenzene + m-Dichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1647 + 1,3-Dinitrobenzene + m-Dinitrobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1647 + m-Dinitrobenzene + m-Dinitrobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1648 + Mestranol + Mestranol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1649 + Methacrylonitrile + Methacrylonitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1650 + Methane + Methane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1651 + Methanol + Methanol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1652 + Methanone, (2,4-dihydroxyphenyl)phenyl- + Methanone, (2,4-dihydroxyphenyl)phenyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1653 + Methapyrilene + Methapyrilene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1654 + Methocarbamol + Methocarbamol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1655 + Methyl acetate + Methyl acetate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1656 + Methyl acrylate + Methyl acrylate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1657 + Ethyl methyl ketone + Methyl ethyl ketone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1657 + Methyl ethyl ketone + Methyl ethyl ketone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1658 + Methyl formate + Methyl formate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1659 + Isobutyl methyl ketone + Methyl isobutyl ketone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1659 + Methyl isobutyl ketone + Methyl isobutyl ketone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1660 + Methyl methacrylate + Methyl methacrylate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1661 + Methyl methanesulfonate + Methyl methanesulfonate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1662 + Methyl salicylate + Methyl salicylate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1663 + Methyl tert-butyl ether + Methyl tert-butyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1664 + Methylcyclohexane + Methylcyclohexane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1665 + Methylene chloride + Methylene chloride + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1666 + Methylmercury + Methylmercury + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1667 + 3-Ethylphenol + m-Ethylphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1667 + m-Ethylphenol + m-Ethylphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1668 + Microcystin LR + Microcystin LR + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1669 + 3-Nitroaniline + m-Nitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1669 + m-Nitroaniline + m-Nitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1670 + 3-Nitrophenol + m-Nitrophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1670 + m-Nitrophenol + m-Nitrophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1671 + 3-Nitrotoluene + m-Nitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1671 + m-Nitrotoluene + m-Nitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1672 + Morphinan-6-ol, 7,8-didehydro-4,5-epoxy-3-methoxy-17-methyl-, (5.alpha.,6.alpha.)- + Morphinan-6-ol, 7,8-didehydro-4,5-epoxy-3-methoxy-17-methyl-, (5.alpha.,6.alpha.)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1673 + Mustard gas + Mustard gas + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1674 + m-Xylene + m-Xylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1675 + Naphthalene + Naphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1676 + n-Butylbenzene + n-Butylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1677 + Neutrals + Neutrals + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1678 + Nicotine + Nicotine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1679 + Nitrobenzene + Nitrobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1680 + Nitroglycerin + Nitroglycerin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1681 + Nitromethane + Nitromethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1682 + N-Nitrosodiethylamine + N-Nitrosodiethylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1683 + N-Nitrosodimethylamine + N-Nitrosodimethylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1684 + N-Nitrosodi-n-butylamine + N-Nitrosodi-n-butylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1685 + N-Nitrosodi-n-propylamine + N-Nitrosodi-n-propylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1686 + N-Nitrosodiphenylamine + N-Nitrosodiphenylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1687 + N-Nitrosomethylethylamine + N-Nitrosomethylethylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1688 + N-Nitrosomorpholine + N-Nitrosomorpholine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1689 + N-Nitrosopiperidine + N-Nitrosopiperidine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1690 + N-Nitrosopyrrolidine + N-Nitrosopyrrolidine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1691 + Nonadecane + Nonadecane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1692 + Nonane + Nonane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1693 + Norethisterone + Norethisterone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1694 + n-Propylbenzene + n-Propylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1695 + o-Benzyl-p-chlorophenol + o-Benzyl-p-chlorophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1696 + 2-Chloroaniline + o-Chloroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1696 + o-Chloroaniline + o-Chloroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1697 + 2-Chlorophenol + o-Chlorophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1697 + o-Chlorophenol + o-Chlorophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1698 + 2-Chlorotoluene + o-Chlorotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1698 + o-Chlorotoluene + o-Chlorotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1699 + Octachlorostyrene + Octachlorostyrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1700 + Octacosane + Octacosane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1701 + Octadecane + Octadecane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1702 + Octane + Octane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1703 + Octanoic acid, pentadecafluoro- + Octanoic acid, pentadecafluoro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1704 + 1,2-Dichlorobenzene + o-Dichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1704 + o-Dichlorobenzene + o-Dichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1705 + 2-Ethyltoluene + o-Ethyltoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1705 + o-Ethyltoluene + o-Ethyltoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1706 + Oil and grease + Oil and grease -- CWA 304B + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1706 + Oil and grease -- CWA 304B + Oil and grease -- CWA 304B + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1707 + 2-Nitroaniline + o-Nitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1707 + o-Nitroaniline + o-Nitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1708 + 2-Nitrophenol + o-Nitrophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1708 + o-Nitrophenol + o-Nitrophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1709 + 2-Nitrotoluene + o-Nitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1709 + o-Nitrotoluene + o-Nitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1710 + Organic acids + Organic acids + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1711 + Organic compounds + Organic compounds + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1712 + Organic halides + Organic halides, total -- SWDA NPDWR + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1712 + Organic halides, total -- SWDA NPDWR + Organic halides, total -- SWDA NPDWR + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1713 + o-Toluidine + o-Toluidine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1714 + o-Xylene + o-Xylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1715 + Oxytetracycline + Oxytetracycline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1716 + p-(1,1,3,3-Tetramethylbutyl)phenol + p-(1,1,3,3-Tetramethylbutyl)phenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1717 + Palmitic acid + Palmitic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1718 + 4-Bromophenyl phenyl ether + p-Bromophenyl phenyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1718 + p-Bromophenyl phenyl ether + p-Bromophenyl phenyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1719 + 4-Chlorophenyl phenyl ether + p-Chlorophenyl phenyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1719 + p-Chlorophenyl phenyl ether + p-Chlorophenyl phenyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1720 + 4-Chlorotoluene + p-Chlorotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1720 + p-Chlorotoluene + p-Chlorotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1721 + p-Cymene + p-Cymene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1722 + 1,4-Diethylbenzene + p-Diethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1722 + p-Diethylbenzene + p-Diethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1723 + Pentachlorodibenzofuran + Pentachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1723 + Pentachlorodibenzofurans (all isomers) + Pentachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1724 + Pentachlorodibenzo-p-dioxin + Pentachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1724 + Pentachlorodibenzo-p-dioxins (all isomers) + Pentachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1725 + Pentachloroethane + Pentachloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1726 + Pentadecane, 2,6,10,14-tetramethyl- + Pentadecane, 2,6,10,14-tetramethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1727 + Pentaerythritol tetranitrate + Pentaerythritol tetranitrate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1728 + n-Pentane + Pentane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1728 + Pentane + Pentane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1729 + 2,3,3-Trimethylpentane + Pentane, 2,3,3-trimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1729 + Pentane, 2,3,3-trimethyl- + Pentane, 2,3,3-trimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1730 + 2,3,4-Trimethylpentane + Pentane, 2,3,4-trimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1730 + Pentane, 2,3,4-trimethyl- + Pentane, 2,3,4-trimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1731 + 2,4-Dimethylpentane + Pentane, 2,4-dimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1731 + Pentane, 2,4-dimethyl- + Pentane, 2,4-dimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1732 + 2-Methylpentane + Pentane, 2-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1732 + Pentane, 2-methyl- + Pentane, 2-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1733 + 3-Methylpentane + Pentane, 3-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1733 + Pentane, 3-methyl- + Pentane, 3-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1734 + Perylene + Perylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1735 + Phenacetin + Phenacetin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1736 + Phenanthrene + Phenanthrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1737 + Phenanthridine + Phenanthridine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1738 + Phenol + Phenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1739 + Phenol, 2-(1,1-dimethylethyl)-4-methoxy- + Phenol, 2-(1,1-dimethylethyl)-4-methoxy- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1740 + 2,3,5,6-Tetramethylphenol + Phenol, 2,3,5,6-tetramethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1740 + Phenol, 2,3,5,6-tetramethyl- + Phenol, 2,3,5,6-tetramethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1741 + Phenol, 2,4-bis(1,1-dimethylpropyl)- + Phenol, 2,4-bis(1,1-dimethylpropyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1742 + Phenol, 2-amino-5-chloro- + Phenol, 2-amino-5-chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1743 + Phenol, 4-(1-methyl-1-phenylethyl)- + Phenol, 4-(1-methyl-1-phenylethyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1744 + Phenol, 5-amino-2-chloro- + Phenol, 5-amino-2-chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1745 + Phenols + Phenols + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1746 + Phenolic compounds + Phenols and phenolic compounds + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1746 + Phenols and phenolic compounds + Phenols and phenolic compounds + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1747 + Phosphonic acid, methyl-, dimethyl ester + Phosphonic acid, methyl-, dimethyl ester + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1748 + Phthalate esters + Phthalate esters + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1749 + Picric acid + Picric acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1750 + Plumbane, diethyldimethyl- + Plumbane, diethyldimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1751 + Plumbane, ethyltrimethyl- + Plumbane, ethyltrimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1752 + Plumbane, triethylmethyl- + Plumbane, triethylmethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1753 + 4-Nitroaniline + p-Nitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1753 + p-Nitroaniline + p-Nitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1754 + 4-Nitrotoluene + p-Nitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1754 + p-Nitrotoluene + p-Nitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1755 + 4-n-Octylphenol + p-Octylphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1755 + p-Octylphenol + p-Octylphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1756 + Progesterone + Progesterone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1757 + Propane + Propane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1758 + Propane, 2-bromo-1-chloro- + Propane, 2-bromo-1-chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1759 + Propanenitrile + Propanenitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1760 + Propanoic acid, 2-oxo- + Propanoic acid, 2-oxo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1761 + Propylene glycol + Propylene glycol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1762 + p-Xylene + p-Xylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1763 + Pyrene + Pyrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1764 + Pyridine + Pyridine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1765 + Quinoline + Quinoline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1766 + Retinoic acid + Retinoic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1767 + Retinol + Retinol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1768 + Safrole + Safrole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1769 + sec-Butylbenzene + sec-Butylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1770 + Stannane, bis(acetyloxy)dibutyl- + Stannane, bis(acetyloxy)dibutyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1771 + Stannane, dibutyl- + Stannane, dibutyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1772 + Stannane, tetrabutyl- + Stannane, tetrabutyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1773 + Stannane, tetramethyl- + Stannane, tetramethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1774 + Stannane, tetraphenyl- + Stannane, tetraphenyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1775 + Stannanetriylium, butyl- + Stannanetriylium, butyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1776 + Stearic acid + Stearic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1777 + Stigmast-5-en-3-ol, (3.beta.)- + Stigmast-5-en-3-ol, (3.beta.)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1778 + Stigmastan-3-ol, (3.beta.)- + Stigmastan-3-ol, (3.beta.)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1779 + Styrene + Styrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1780 + Sulfamethoxazole + Sulfamethoxazole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1781 + Sulfathiazole + Sulfathiazole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1782 + Surfactants -- CWA 304B + Surfactants -- CWA 304B + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1783 + Tannin and Lignin + Tannin and Lignin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1784 + tert-Amyl methyl ether + tert-Amyl methyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1785 + tert-Butanol + tert-Butanol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1786 + tert-Butyl acetate + tert-Butyl acetate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1787 + tert-Butylbenzene + tert-Butylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1788 + Tetrabromobisphenol A + Tetrabromobisphenol A + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1789 + Tetrachlorodibenzofuran + Tetrachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1789 + Tetrachlorodibenzofurans (all isomers) + Tetrachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1790 + Tetrachlorodibenzo-p-dioxin + Tetrachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1790 + Tetrachlorodibenzo-p-dioxins (all isomers) + Tetrachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1791 + Tetrachloroethylene + Tetrachloroethylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1792 + Tetrachlorophenol + Tetrachlorophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1792 + Tetrachlorophenols (all isomers) + Tetrachlorophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1793 + Tetracosane + Tetracosane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1794 + Tetradecane + Tetradecane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1795 + Tetraethyllead + Tetraethyllead + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1796 + Tetrahydrofuran + Tetrahydrofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1797 + Tetramethyllead + Tetramethyllead + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1798 + Tetryl + Tetryl + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1799 + Theophylline + Theophylline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1800 + Toluene + Toluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1801 + Total toxic organics -- CWA 304B + Total toxic organics -- CWA 304B + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1802 + trans-1,2-Dichloroethylene + trans-1,2-Dichloroethylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1803 + trans-1,4-Dichloro-2-butene + trans-1,4-Dichloro-2-butene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1804 + trans-Geraniol + trans-Geraniol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1805 + Transphilic fraction of organic carbon + Transphilic fraction of organic carbon + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1806 + Triacontane + Triacontane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1807 + Tribromomethane + Tribromomethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1808 + Tributyl phosphate + Tributyl phosphate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1809 + Tributyltin acetate + Tributyltin acetate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1810 + Trichloroacetic acid + Trichloroacetic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1811 + Trichloroacetonitrile + Trichloroacetonitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1812 + Trichlorobenzene + Trichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1812 + Trichlorobenzenes (all isomers) + Trichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1813 + Trichloroethylene + Trichloroethylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1814 + Triclocarban + Triclocarban + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1815 + Triclosan + Triclosan + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1816 + Triethyl citrate + Triethyl citrate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1817 + Trinitrotoluene + Trinitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1818 + Triphenyl phosphate + Triphenyl phosphate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1819 + Tris(2,3-dibromopropyl) phosphate + Tris(2,3-dibromopropyl) phosphate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1820 + Tris(2-butoxyethyl) phosphate + Tris(2-butoxyethyl) phosphate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1821 + Tris(2-chloroethyl) phosphate + Tris(2-chloroethyl) phosphate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1822 + Undecanoic acid + Undecanoic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1823 + Valproic acid + Valproic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1824 + Vanillin + Vanillin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1825 + Vinyl acetate + Vinyl acetate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1826 + Vinyl bromide + Vinyl bromide + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1827 + Vinyl chloride + Vinyl chloride + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1828 + Vitamin B12 + Vitamin B12 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1829 + Vitamin D + Vitamin D + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1830 + Warfarin + Warfarin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1831 + Xanthylium, 9-(2,4-dicarboxyphenyl)-3,6-bis(diethylamino)-, chloride, disodium salt + Xanthylium, 9-(2,4-dicarboxyphenyl)-3,6-bis(diethylamino)-, chloride, disodium salt + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1832 + Xylene + Xylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1832 + Xylene (all isomers) + Xylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1001 + Homolog Groups + Homolog Groups + Hydrosphere/Chemical/Organic/PCBs/ + + + 1222 + PCB_Mixtures + PCB_Mixtures + Hydrosphere/Chemical/Organic/PCBs/ + + + 1282 + PCBs + Total PCB + Hydrosphere/Chemical/Organic/PCBs/ + + + 1282 + Total PCB + Total PCB + Hydrosphere/Chemical/Organic/PCBs/ + + + 1267 + High-Toxicity TEF + High-Toxicity TEF + Hydrosphere/Chemical/Organic/PCBs/ + + + 1268 + 3,3',4,4'-Tetrachlorobiphenyl + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1268 + BZ congener number 77 + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1268 + CASRN 32598-13-3 + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1268 + PCB congener 77, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1268 + PCB congener 77, solids, recoverable, dry weight, picograms per gram + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1268 + PCB congener 77, water, filtered, recoverable, picograms per liter + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1269 + 3,4,4',5-Tetrachlorobiphenyl + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1269 + BZ congener number 81 + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1269 + CASRN 70362-50-4 + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1269 + PCB congener 81, solids, recoverable, dry weight, picograms per gram + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1269 + PCB congener 81, water, filtered, recoverable, picograms per liter + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1270 + 2,3,3',4,4'-Pentachlorobiphenyl + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1270 + BZ congener number 105 + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1270 + CASRN 32598-14-4 + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1270 + PCB congener 105, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1270 + PCB congener 105, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1270 + PCB congener 105, water, filtered, recoverable, picograms per liter + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1271 + 2,3,4,4',5-Pentachlorobiphenyl + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1271 + BZ congener number 114 + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1271 + CASRN 74472-37-0 + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1271 + PCB congener 114, solids, recoverable, dry weight, picograms per gram + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1271 + PCB congener 114, water, filtered, recoverable, picograms per liter + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + 2,3',4,4',5-Pentachlorobiphenyl + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, suspended sediment, recoverable, nanograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, water, filtered, recoverable, nanograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, water, filtered, recoverable, picograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, water, unfiltered, recoverable, nanograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + BZ congener number 118 + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + CASRN 31508-00-6 + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, solids, recoverable, dry weight, micrograms per kilogram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1273 + 2,3',4,4',5'-Pentachlorobiphenyl + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1273 + BZ congener number 123 + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1273 + CASRN 65510-44-3 + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1273 + PCB congener 123, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1273 + PCB congener 123, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1273 + PCB congener 123, water, filtered, recoverable, picograms per liter + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1274 + 3,3',4,4',5-Pentachlorobiphenyl + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1274 + BZ congener number 126 + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1274 + CASRN 57465-28-8 + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1274 + PCB congener 126, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1274 + PCB congener 126, solids, recoverable, dry weight, picograms per gram + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1274 + PCB congener 126, water, filtered, recoverable, picograms per liter + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1275 + 2,3,3',4,4',5-Hexachlorobiphenyl + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1275 + BZ congener number 156 + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1275 + CASRN 38380-08-4 + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1275 + PCB congener 156, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1275 + PCB congener 156, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1275 + PCB congener 156, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1276 + 2,3,3',4,4',5'-Hexachlorobiphenyl + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1276 + BZ congener number 157 + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1276 + CASRN 69782-90-7 + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1276 + PCB congener 157, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1276 + PCB congener 157, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1276 + PCB congener 157, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + 2,3',4,4',5,5'-Hexachlorobiphenyl + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + BZ congener number 167 + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + CASRN 52663-72-6 + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + PCB congener 167, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + PCB congener 167, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + PCB congener 167, suspended sediment, recoverable, nanograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + PCB congener 167, water, filtered, recoverable, nanograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + PCB congener 167, water, filtered, recoverable, picograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + PCB congener 167, water, unfiltered, recoverable, nanograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1278 + 3,3',4,4',5,5'-Hexachlorobiphenyl + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1278 + BZ congener number 169 + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1278 + CASRN 32774-16-6 + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1278 + PCB congener 169, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1278 + PCB congener 169, solids, recoverable, dry weight, picograms per gram + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1278 + PCB congener 169, water, filtered, recoverable, picograms per liter + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + 2,2',3,3',4,4',5-Heptachlorobiphenyl + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + BZ congener number 170 + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + CASRN 35065-30-6 + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + PCB congener 170, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + PCB congener 170, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + PCB congener 170, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + PCB congener 170, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + PCB congener 170, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + BZ congener number 180 + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + CASRN 35065-29-3 + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, water, filtered, recoverable, nanograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1281 + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1281 + BZ congener number 189 + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1281 + CASRN 39635-31-9 + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1281 + PCB congener 189, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1281 + PCB congener 189, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1220 + Deca_Chloro_PCB + Deca_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1002 + Mono_Chloro_PCB + Mono_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1216 + Nona_Chloro_PCB + Nona_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1007 + Di_Chloro_PCB + Di_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1203 + Octa_Chloro_PCB + Octa_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1020 + Tri_Chloro_PCB + Tri_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1045 + Tetra_Chloro_PCB + Tetra_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1088 + Penta_Chloro_PCB + Penta_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1135 + Hexa_Chloro_PCB + Hexa_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1178 + Hepta_Chloro_PCB + Hepta_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1221 + BZ congener number 209 + Decachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Deca_Chloro_PCB/ + + + 1221 + CASRN 2051-24-3 + Decachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Deca_Chloro_PCB/ + + + 1221 + Decachlorobiphenyl + Decachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Deca_Chloro_PCB/ + + + 1221 + PCB congener 209, solids, recoverable, dry weight, picograms per gram + Decachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Deca_Chloro_PCB/ + + + 1221 + PCB congener 209, water, filtered, recoverable, picograms per liter + Decachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Deca_Chloro_PCB/ + + + 1008 + 2,2'-Dichlorobiphenyl + 2,2'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1008 + BZ congener number 4 + 2,2'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1008 + CASRN 13029-08-8 + 2,2'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1008 + PCB congener 4, solids, recoverable, dry weight, picograms per gram + 2,2'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1008 + PCB congener 4, water, filtered, recoverable, picograms per liter + 2,2'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1009 + 2,3-Dichlorobiphenyl + 2,3-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1009 + BZ congener number 5 + 2,3-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1009 + CASRN 16605-91-7 + 2,3-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1009 + PCB congener 5, solids, recoverable, dry weight, picograms per gram + 2,3-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1009 + PCB congener 5, water, filtered, recoverable, picograms per liter + 2,3-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + 2,3'-Dichlorobiphenyl + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + BZ congener number 6 + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + CASRN 25569-80-6 + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + PCB congener 6, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + PCB congener 6, solids, recoverable, dry weight, picograms per gram + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + PCB congener 6, suspended sediment, recoverable, nanograms per liter + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + PCB congener 6, water, filtered, recoverable, nanograms per liter + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + PCB congener 6, water, filtered, recoverable, picograms per liter + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + PCB congener 6, water, unfiltered, recoverable, nanograms per liter + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1011 + 2,4-Dichlorobiphenyl + 2,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1011 + BZ congener number 7 + 2,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1011 + CASRN 33284-50-3 + 2,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1011 + PCB congener 7, solids, recoverable, dry weight, picograms per gram + 2,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1011 + PCB congener 7, suspended sediment, recoverable, nanograms per liter + 2,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1011 + PCB congener 7, water, filtered, recoverable, nanograms per liter + 2,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1011 + PCB congener 7, water, filtered, recoverable, picograms per liter + 2,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1012 + 2,4'-Dichlorobiphenyl + 2,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1012 + BZ congener number 8 + 2,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1012 + CASRN 34883-43-7 + 2,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1012 + PCB congener 8, solids, recoverable, dry weight, micrograms per kilogram + 2,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1012 + PCB congener 8, solids, recoverable, dry weight, picograms per gram + 2,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1012 + PCB congener 8, water, filtered, recoverable, picograms per liter + 2,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1013 + 2,5-Dichlorobiphenyl + 2,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1013 + BZ congener number 9 + 2,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1013 + CASRN 34883-39-1 + 2,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1013 + PCB congener 9, solids, recoverable, dry weight, picograms per gram + 2,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1013 + PCB congener 9, water, filtered, recoverable, picograms per liter + 2,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1014 + 2,6-Dichlorobiphenyl + 2,6-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1014 + BZ congener number 10 + 2,6-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1014 + CASRN 33146-45-1 + 2,6-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1014 + PCB congener 10, solids, recoverable, dry weight, picograms per gram + 2,6-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1014 + PCB congener 10, water, filtered, recoverable, picograms per liter + 2,6-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1015 + 3,3'-Dichlorobiphenyl + 3,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1015 + BZ congener number 11 + 3,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1015 + CASRN 2050-67-1 + 3,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1015 + PCB congener 11, solids, recoverable, dry weight, picograms per gram + 3,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1015 + PCB congener 11, water, filtered, recoverable, picograms per liter + 3,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1016 + 3,4-Dichlorobiphenyl + 3,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1016 + BZ congener number 12 + 3,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1016 + CASRN 2974-92-7 + 3,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1016 + PCB congener 12, solids, recoverable, dry weight, picograms per gram + 3,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1016 + PCB congener 12, water, filtered, recoverable, picograms per liter + 3,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1017 + 3,4'-Dichlorobiphenyl + 3,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1017 + BZ congener number 13 + 3,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1017 + CASRN 2974-90-5 + 3,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1017 + PCB congener 13, solids, recoverable, dry weight, picograms per gram + 3,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1017 + PCB congener 13, water, filtered, recoverable, picograms per liter + 3,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1018 + 3,5-Dichlorobiphenyl + 3,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1018 + BZ congener number 14 + 3,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1018 + CASRN 34883-41-5 + 3,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1018 + PCB congener 14, solids, recoverable, dry weight, picograms per gram + 3,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1018 + PCB congener 14, water, filtered, recoverable, picograms per liter + 3,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1019 + 4,4'-Dichlorobiphenyl + 4,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1019 + BZ congener number 15 + 4,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1019 + CASRN 2050-68-2 + 4,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1019 + PCB congener 15, solids, recoverable, dry weight, picograms per gram + 4,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1019 + PCB congener 15, water, filtered, recoverable, picograms per liter + 4,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1179 + 2,2',3,3',4,4',5-Heptachlorobiphenyl + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1179 + BZ congener number 170 + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1179 + CASRN 35065-30-6 + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1179 + PCB congener 170, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1179 + PCB congener 170, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1179 + PCB congener 170, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1179 + PCB congener 170, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1179 + PCB congener 170, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1180 + 2,2',3,3',4,4',6-Heptachlorobiphenyl + 2,2',3,3',4,4',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1180 + BZ congener number 171 + 2,2',3,3',4,4',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1180 + CASRN 52663-71-5 + 2,2',3,3',4,4',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1180 + PCB congener 171, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1180 + PCB congener 171, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1181 + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1181 + BZ congener number 172 + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1181 + CASRN 52663-74-8 + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1181 + PCB congener 172, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1181 + PCB congener 172, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1181 + PCB congener 172, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1181 + PCB congener 172, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1182 + 2,2',3,3',4,5,6-Heptachlorobiphenyl + 2,2',3,3',4,5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1182 + BZ congener number 173 + 2,2',3,3',4,5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1182 + CASRN 68194-16-1 + 2,2',3,3',4,5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1182 + PCB congener 173, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1182 + PCB congener 173, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + BZ congener number 174 + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + CASRN 38411-25-5 + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1184 + 2,2',3,3',4,5',6-Heptachlorobiphenyl + 2,2',3,3',4,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1184 + BZ congener number 175 + 2,2',3,3',4,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1184 + CASRN 40186-70-7 + 2,2',3,3',4,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1184 + PCB congener 175, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1184 + PCB congener 175, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1185 + 2,2',3,3',4,6,6'-Heptachlorobiphenyl + 2,2',3,3',4,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1185 + BZ congener number 176 + 2,2',3,3',4,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1185 + CASRN 52663-65-7 + 2,2',3,3',4,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1185 + PCB congener 176, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1185 + PCB congener 176, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + BZ congener number 177 + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + CASRN 52663-70-4 + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + 2,2',3,3',5,5',6-Heptachlorobiphenyl + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + BZ congener number 178 + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + CASRN 52663-67-9 + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + PCB congener 178, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + PCB congener 178, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + PCB congener 178, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + PCB congener 178, water, filtered, recoverable, nanograms per liter + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + PCB congener 178, water, filtered, recoverable, picograms per liter + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + PCB congener 178, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1188 + 2,2',3,3',5,6,6'-Heptachlorobiphenyl + 2,2',3,3',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1188 + BZ congener number 179 + 2,2',3,3',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1188 + CASRN 52663-64-6 + 2,2',3,3',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1188 + PCB congener 179, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1188 + PCB congener 179, water, filtered, recoverable, picograms per liter + 2,2',3,3',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + BZ congener number 180 + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + CASRN 35065-29-3 + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, water, filtered, recoverable, nanograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1190 + 2,2',3,4,4',5,6-Heptachlorobiphenyl + 2,2',3,4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1190 + BZ congener number 181 + 2,2',3,4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1190 + CASRN 74472-47-2 + 2,2',3,4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1190 + PCB congener 181, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1190 + PCB congener 181, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1191 + 2,2',3,4,4',5,6'-Heptachlorobiphenyl + 2,2',3,4,4',5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1191 + BZ congener number 182 + 2,2',3,4,4',5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1191 + CASRN 60145-23-5 + 2,2',3,4,4',5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1191 + PCB congener 182, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1191 + PCB congener 182, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + 2,2',3,4,4',5',6-Heptachlorobiphenyl + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + BZ congener number 183 + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + CASRN 52663-69-1 + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, water, filtered, recoverable, nanograms per liter + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1193 + 2,2',3,4,4',6,6'-Heptachlorobiphenyl + 2,2',3,4,4',6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1193 + BZ congener number 184 + 2,2',3,4,4',6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1193 + CASRN 74472-48-3 + 2,2',3,4,4',6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1193 + PCB congener 184, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1193 + PCB congener 184, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + 2,2',3,4,5,5',6-Heptachlorobiphenyl + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + BZ congener number 185 + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + CASRN 52712-05-7 + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + PCB congener 185, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + PCB congener 185, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + PCB congener 185, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + PCB congener 185, water, filtered, recoverable, nanograms per liter + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + PCB congener 185, water, filtered, recoverable, picograms per liter + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + PCB congener 185, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1195 + 2,2',3,4,5,6,6'-Heptachlorobiphenyl + 2,2',3,4,5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1195 + BZ congener number 186 + 2,2',3,4,5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1195 + CASRN 74472-49-4 + 2,2',3,4,5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1195 + PCB congener 186, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1195 + PCB congener 186, water, filtered, recoverable, picograms per liter + 2,2',3,4,5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + 2,2',3,4',5,5',6-Heptachlorobiphenyl + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + BZ congener number 187 + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + CASRN 52663-68-0 + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + PCB congener 187, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + PCB congener 187, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + PCB congener 187, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + PCB congener 187, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + PCB congener 187, water, filtered, recoverable, picograms per liter + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1197 + 2,2',3,4',5,6,6'-Heptachlorobiphenyl + 2,2',3,4',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1197 + BZ congener number 188 + 2,2',3,4',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1197 + CASRN 74487-85-7 + 2,2',3,4',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1197 + PCB congener 188, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1197 + PCB congener 188, water, filtered, recoverable, picograms per liter + 2,2',3,4',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1198 + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1198 + BZ congener number 189 + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1198 + CASRN 39635-31-9 + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1198 + PCB congener 189, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1198 + PCB congener 189, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1199 + 2,3,3',4,4',5,6-Heptachlorobiphenyl + 2,3,3',4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1199 + BZ congener number 190 + 2,3,3',4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1199 + CASRN 41411-64-7 + 2,3,3',4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1199 + PCB congener 190, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1199 + PCB congener 190, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1200 + 2,3,3',4,4',5',6-Heptachlorobiphenyl + 2,3,3',4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1200 + BZ congener number 191 + 2,3,3',4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1200 + CASRN 74472-50-7 + 2,3,3',4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1200 + PCB congener 191, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1200 + PCB congener 191, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1201 + 2,3,3',4,5,5',6-Heptachlorobiphenyl + 2,3,3',4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1201 + BZ congener number 192 + 2,3,3',4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1201 + CASRN 74472-51-8 + 2,3,3',4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1201 + PCB congener 192, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1201 + PCB congener 192, water, filtered, recoverable, picograms per liter + 2,3,3',4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + 2,3,3',4',5,5',6-Heptachlorobiphenyl + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + BZ congener number 193 + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + CASRN 69782-91-8 + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + PCB congener 193, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + PCB congener 193, solids, recoverable, dry weight, picograms per gram + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + PCB congener 193, suspended sediment, recoverable, nanograms per liter + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + PCB congener 193, water, filtered, recoverable, nanograms per liter + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + PCB congener 193, water, filtered, recoverable, picograms per liter + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + PCB congener 193, water, unfiltered, recoverable, nanograms per liter + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1136 + 2,2',3,3',4,4'-Hexachlorobiphenyl + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + BZ congener number 128 + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + CASRN 38380-07-3 + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + PCB congener 128, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + PCB congener 128, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + PCB congener 128, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + PCB congener 128, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + PCB congener 128, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + PCB congener 128, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1137 + 2,2',3,3',4,5-Hexachlorobiphenyl + 2,2',3,3',4,5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1137 + BZ congener number 129 + 2,2',3,3',4,5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1137 + CASRN 55215-18-4 + 2,2',3,3',4,5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1137 + PCB congener 129, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1137 + PCB congener 129, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1138 + 2,2',3,3',4,5'-Hexachlorobiphenyl + 2,2',3,3',4,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1138 + BZ congener number 130 + 2,2',3,3',4,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1138 + CASRN 52663-66-8 + 2,2',3,3',4,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1138 + PCB congener 130, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1138 + PCB congener 130, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1139 + 2,2',3,3',4,6-Hexachlorobiphenyl + 2,2',3,3',4,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1139 + BZ congener number 131 + 2,2',3,3',4,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1139 + CASRN 61798-70-7 + 2,2',3,3',4,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1139 + PCB congener 131, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1139 + PCB congener 131, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1140 + 2,2',3,3',4,6'-Hexachlorobiphenyl + 2,2',3,3',4,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1140 + BZ congener number 132 + 2,2',3,3',4,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1140 + CASRN 38380-05-1 + 2,2',3,3',4,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1140 + PCB congener 132, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1140 + PCB congener 132, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1141 + 2,2',3,3',5,5'-Hexachlorobiphenyl + 2,2',3,3',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1141 + BZ congener number 133 + 2,2',3,3',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1141 + CASRN 35694-04-3 + 2,2',3,3',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1141 + PCB congener 133, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1141 + PCB congener 133, water, filtered, recoverable, picograms per liter + 2,2',3,3',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1142 + 2,2',3,3',5,6-Hexachlorobiphenyl + 2,2',3,3',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1142 + BZ congener number 134 + 2,2',3,3',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1142 + CASRN 52704-70-8 + 2,2',3,3',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1142 + PCB congener 134, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1142 + PCB congener 134, water, filtered, recoverable, picograms per liter + 2,2',3,3',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1143 + 2,2',3,3',5,6'-Hexachlorobiphenyl + 2,2',3,3',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1143 + BZ congener number 135 + 2,2',3,3',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1143 + CASRN 52744-13-5 + 2,2',3,3',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1143 + PCB congener 135, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1143 + PCB congener 135, water, filtered, recoverable, picograms per liter + 2,2',3,3',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + 2,2',3,3',6,6'-Hexachlorobiphenyl + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + PCB congener 136, water, filtered, recoverable, picograms per liter + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + PCB congener 136, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + BZ congener number 136 + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + CASRN 38411-22-2 + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + PCB congener 136, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + PCB congener 136, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + PCB congener 136, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + PCB congener 136, water, filtered, recoverable, nanograms per liter + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1145 + 2,2',3,4,4',5-Hexachlorobiphenyl + 2,2',3,4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1145 + BZ congener number 137 + 2,2',3,4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1145 + CASRN 35694-06-5 + 2,2',3,4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1145 + PCB congener 137, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1145 + PCB congener 137, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + 2,2',3,4,4',5'-Hexachlorobiphenyl + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + BZ congener number 138 + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + CASRN 35065-28-2 + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + PCB congener 138, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + PCB congener 138, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + PCB congener 138, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + PCB congener 138, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + PCB congener 138, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1147 + 2,2',3,4,4',6-Hexachlorobiphenyl + 2,2',3,4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1147 + BZ congener number 139 + 2,2',3,4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1147 + CASRN 56030-56-9 + 2,2',3,4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1147 + PCB congener 139, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1147 + PCB congener 139, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1148 + 2,2',3,4,4',6'-Hexachlorobiphenyl + 2,2',3,4,4',6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1148 + BZ congener number 140 + 2,2',3,4,4',6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1148 + CASRN 59291-64-4 + 2,2',3,4,4',6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1148 + PCB congener 140, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + 2,2',3,4,5,5'-Hexachlorobiphenyl + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + BZ congener number 141 + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + CASRN 52712-04-6 + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + PCB congener 141, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + PCB congener 141, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + PCB congener 141, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + PCB congener 141, water, filtered, recoverable, nanograms per liter + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + PCB congener 141, water, filtered, recoverable, picograms per liter + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + PCB congener 141, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1150 + 2,2',3,4,5,6-Hexachlorobiphenyl + 2,2',3,4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1150 + BZ congener number 142 + 2,2',3,4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1150 + CASRN 41411-61-4 + 2,2',3,4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1150 + PCB congener 142, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1150 + PCB congener 142, water, filtered, recoverable, picograms per liter + 2,2',3,4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1151 + 2,2',3,4,5,6'-Hexachlorobiphenyl + 2,2',3,4,5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1151 + BZ congener number 143 + 2,2',3,4,5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1151 + CASRN 68194-15-0 + 2,2',3,4,5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1151 + PCB congener 143, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1151 + PCB congener 143, water, filtered, recoverable, picograms per liter + 2,2',3,4,5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1152 + 2,2',3,4,5',6-Hexachlorobiphenyl + 2,2',3,4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1152 + BZ congener number 144 + 2,2',3,4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1152 + CASRN 68194-14-9 + 2,2',3,4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1152 + PCB congener 144, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1152 + PCB congener 144, water, filtered, recoverable, picograms per liter + 2,2',3,4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1153 + 2,2',3,4,6,6'-Hexachlorobiphenyl + 2,2',3,4,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1153 + BZ congener number 145 + 2,2',3,4,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1153 + CASRN 74472-40-5 + 2,2',3,4,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1153 + PCB congener 145, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1153 + PCB congener 145, water, filtered, recoverable, picograms per liter + 2,2',3,4,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + 2,2',3,4',5,5'-Hexachlorobiphenyl + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + BZ congener number 146 + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + CASRN 51908-16-8 + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, suspended sediment, recoverable, nanograms per liter + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, water, filtered, recoverable, nanograms per liter + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, water, filtered, recoverable, picograms per liter + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1155 + 2,2',3,4',5,6-Hexachlorobiphenyl + 2,2',3,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1155 + BZ congener number 147 + 2,2',3,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1155 + CASRN 68194-13-8 + 2,2',3,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1155 + PCB congener 147, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1155 + PCB congener 147, water, filtered, recoverable, picograms per liter + 2,2',3,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1156 + 2,2',3,4',5,6'-Hexachlorobiphenyl + 2,2',3,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1156 + BZ congener number 148 + 2,2',3,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1156 + CASRN 74472-41-6 + 2,2',3,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1156 + PCB congener 148, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1156 + PCB congener 148, water, filtered, recoverable, picograms per liter + 2,2',3,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + 2,2',3,4',5',6-Hexachlorobiphenyl + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + BZ congener number 149 + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + CASRN 38380-04-0 + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + PCB congener 149, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + PCB congener 149, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + PCB congener 149, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + PCB congener 149, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + PCB congener 149, suspended sediment, recoverable, nanograms per liter + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + PCB congener 149, water, filtered, recoverable, nanograms per liter + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + PCB congener 149, water, filtered, recoverable, picograms per liter + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1158 + 2,2',3,4',6,6'-Hexachlorobiphenyl + 2,2',3,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1158 + BZ congener number 150 + 2,2',3,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1158 + CASRN 68194-08-1 + 2,2',3,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1158 + PCB congener 150, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1158 + PCB congener 150, water, filtered, recoverable, picograms per liter + 2,2',3,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + 2,2',3,5,5',6-Hexachlorobiphenyl + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + BZ congener number 151 + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + CASRN 52663-63-5 + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, solids, recoverable, dry weight, picograms per gram + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, suspended sediment, recoverable, nanograms per liter + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, water, filtered, recoverable, nanograms per liter + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, water, filtered, recoverable, picograms per liter + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, water, unfiltered, recoverable, nanograms per liter + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1160 + 2,2',3,5,6,6'-Hexachlorobiphenyl + 2,2',3,5,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1160 + BZ congener number 152 + 2,2',3,5,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1160 + CASRN 68194-09-2 + 2,2',3,5,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1160 + PCB congener 152, solids, recoverable, dry weight, picograms per gram + 2,2',3,5,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1160 + PCB congener 152, water, filtered, recoverable, picograms per liter + 2,2',3,5,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1161 + 2,2',4,4',5,5'-Hexachlorobiphenyl + 2,2',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1161 + BZ congener number 153 + 2,2',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1161 + CASRN 35065-27-1 + 2,2',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1161 + PCB congener 153, solids, recoverable, dry weight, picograms per gram + 2,2',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1161 + PCB congener 153, water, filtered, recoverable, picograms per liter + 2,2',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1162 + 2,2',4,4',5,6'-Hexachlorobiphenyl + 2,2',4,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1162 + BZ congener number 154 + 2,2',4,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1162 + CASRN 60145-22-4 + 2,2',4,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1162 + PCB congener 154, solids, recoverable, dry weight, picograms per gram + 2,2',4,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1162 + PCB congener 154, water, filtered, recoverable, picograms per liter + 2,2',4,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1163 + 2,2',4,4',6,6'-Hexachlorobiphenyl + 2,2',4,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1163 + BZ congener number 155 + 2,2',4,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1163 + CASRN 33979-03-2 + 2,2',4,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1163 + PCB congener 155, solids, recoverable, dry weight, picograms per gram + 2,2',4,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1163 + PCB congener 155, water, filtered, recoverable, picograms per liter + 2,2',4,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1164 + 2,3,3',4,4',5-Hexachlorobiphenyl + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1164 + BZ congener number 156 + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1164 + CASRN 38380-08-4 + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1164 + PCB congener 156, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1164 + PCB congener 156, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1164 + PCB congener 156, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1165 + 2,3,3',4,4',5'-Hexachlorobiphenyl + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1165 + BZ congener number 157 + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1165 + CASRN 69782-90-7 + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1165 + PCB congener 157, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1165 + PCB congener 157, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1165 + PCB congener 157, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + 2,3,3',4,4',6-Hexachlorobiphenyl + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + BZ congener number 158 + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + CASRN 74472-42-7 + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + PCB congener 158, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + PCB congener 158, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + PCB congener 158, suspended sediment, recoverable, nanograms per liter + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + PCB congener 158, water, filtered, recoverable, nanograms per liter + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + PCB congener 158, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + PCB congener 158, water, unfiltered, recoverable, nanograms per liter + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1167 + 2,3,3',4,5,5'-Hexachlorobiphenyl + 2,3,3',4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1167 + BZ congener number 159 + 2,3,3',4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1167 + CASRN 39635-35-3 + 2,3,3',4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1167 + PCB congener 159, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1167 + PCB congener 159, water, filtered, recoverable, picograms per liter + 2,3,3',4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1168 + 2,3,3',4,5,6-Hexachlorobiphenyl + 2,3,3',4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1168 + BZ congener number 160 + 2,3,3',4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1168 + CASRN 41411-62-5 + 2,3,3',4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1168 + PCB congener 160, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1168 + PCB congener 160, water, filtered, recoverable, picograms per liter + 2,3,3',4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1169 + 2,3,3',4,5',6-Hexachlorobiphenyl + 2,3,3',4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1169 + BZ congener number 161 + 2,3,3',4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1169 + CASRN 74472-43-8 + 2,3,3',4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1169 + PCB congener 161, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1169 + PCB congener 161, water, filtered, recoverable, picograms per liter + 2,3,3',4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1170 + 2,3,3',4',5,5'-Hexachlorobiphenyl + 2,3,3',4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1170 + BZ congener number 162 + 2,3,3',4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1170 + CASRN 39635-34-2 + 2,3,3',4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1170 + PCB congener 162, solids, recoverable, dry weight, picograms per gram + 2,3,3',4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1170 + PCB congener 162, water, filtered, recoverable, picograms per liter + 2,3,3',4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1171 + 2,3,3',4',5,6-Hexachlorobiphenyl + 2,3,3',4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1171 + BZ congener number 163 + 2,3,3',4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1171 + CASRN 74472-44-9 + 2,3,3',4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1171 + PCB congener 163, solids, recoverable, dry weight, picograms per gram + 2,3,3',4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1171 + PCB congener 163, water, filtered, recoverable, picograms per liter + 2,3,3',4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1172 + 2,3,3',4',5',6-Hexachlorobiphenyl + 2,3,3',4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1172 + BZ congener number 164 + 2,3,3',4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1172 + CASRN 74472-45-0 + 2,3,3',4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1172 + PCB congener 164, solids, recoverable, dry weight, picograms per gram + 2,3,3',4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1172 + PCB congener 164, water, filtered, recoverable, picograms per liter + 2,3,3',4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1173 + 2,3,3',5,5',6-Hexachlorobiphenyl + 2,3,3',5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1173 + BZ congener number 165 + 2,3,3',5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1173 + CASRN 74472-46-1 + 2,3,3',5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1173 + PCB congener 165, solids, recoverable, dry weight, picograms per gram + 2,3,3',5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1173 + PCB congener 165, water, filtered, recoverable, picograms per liter + 2,3,3',5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1174 + 2,3,4,4',5,6-Hexachlorobiphenyl + 2,3,4,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1174 + BZ congener number 166 + 2,3,4,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1174 + CASRN 41411-63-6 + 2,3,4,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1174 + PCB congener 166, solids, recoverable, dry weight, picograms per gram + 2,3,4,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1174 + PCB congener 166, water, filtered, recoverable, picograms per liter + 2,3,4,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + 2,3',4,4',5,5'-Hexachlorobiphenyl + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + BZ congener number 167 + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + CASRN 52663-72-6 + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + PCB congener 167, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + PCB congener 167, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + PCB congener 167, suspended sediment, recoverable, nanograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + PCB congener 167, water, filtered, recoverable, nanograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + PCB congener 167, water, filtered, recoverable, picograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + PCB congener 167, water, unfiltered, recoverable, nanograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1176 + 2,3',4,4',5',6-Hexachlorobiphenyl + 2,3',4,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1176 + BZ congener number 168 + 2,3',4,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1176 + CASRN 59291-65-5 + 2,3',4,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1176 + PCB congener 168, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1176 + PCB congener 168, water, filtered, recoverable, picograms per liter + 2,3',4,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1177 + 3,3',4,4',5,5'-Hexachlorobiphenyl + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1177 + BZ congener number 169 + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1177 + CASRN 32774-16-6 + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1177 + PCB congener 169, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1177 + PCB congener 169, solids, recoverable, dry weight, picograms per gram + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1177 + PCB congener 169, water, filtered, recoverable, picograms per liter + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1003 + Biphenyl + Biphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1003 + BZ congener number 0 + Biphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1003 + CASRN 92-52-4 + Biphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1004 + 2-Chlorobiphenyl + 2-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1004 + BZ congener number 1 + 2-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1004 + CASRN 2051-60-7 + 2-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1004 + PCB congener 1, bed sediment smaller than 2 millimeters, wet sieved (native water), field, recoverable, dry weight, micrograms per kilogram + 2-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1004 + PCB congener 1, solids, recoverable, dry weight, picograms per gram + 2-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1004 + PCB congener 1, water, filtered, recoverable, picograms per liter + 2-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1005 + 3-Chlorobiphenyl + 3-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1005 + BZ congener number 2 + 3-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1005 + CASRN 2051-61-8 + 3-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1005 + PCB congener 2, solids, recoverable, dry weight, picograms per gram + 3-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1005 + PCB congener 2, water, filtered, recoverable, picograms per liter + 3-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + 4-Chlorobiphenyl + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + BZ congener number 3 + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + CASRN 2051-62-9 + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + PCB congener 3, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + PCB congener 3, solids, recoverable, dry weight, picograms per gram + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + PCB congener 3, suspended sediment, recoverable, nanograms per liter + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + PCB congener 3, water, filtered, recoverable, nanograms per liter + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + PCB congener 3, water, filtered, recoverable, picograms per liter + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + PCB congener 3, water, unfiltered, recoverable, nanograms per liter + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1217 + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + BZ congener number 206 + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + CASRN 40186-72-9 + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + BZ congener number 207 + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + CASRN 52663-79-3 + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + PCB congener 207, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + PCB congener 207, surrogate, Schedule OCSS, suspended sediment, percent recovery + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + PCB congener 207, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + PCB congener 207, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + PCB congener 207, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + PCB congener 207, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1219 + 2,2',3,3',4,5,5',6,6'-Nonachlorobiphenyl + 2,2',3,3',4,5,5',6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1219 + BZ congener number 208 + 2,2',3,3',4,5,5',6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1219 + CASRN 52663-77-1 + 2,2',3,3',4,5,5',6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1219 + PCB congener 208, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5,5',6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1219 + PCB congener 208, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5,5',6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1204 + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + BZ congener number 194 + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + CASRN 35694-08-7 + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1205 + 2,2',3,3',4,4',5,6-Octachlorobiphenyl + 2,2',3,3',4,4',5,6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1205 + BZ congener number 195 + 2,2',3,3',4,4',5,6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1205 + CASRN 52663-78-2 + 2,2',3,3',4,4',5,6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1205 + PCB congener 195, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',5,6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1205 + PCB congener 195, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',5,6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1206 + 2,2',3,3',4,4',5,6'-Octachlorobiphenyl + 2,2',3,3',4,4',5,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1206 + BZ congener number 196 + 2,2',3,3',4,4',5,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1206 + CASRN 42740-50-1 + 2,2',3,3',4,4',5,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1206 + PCB congener 196, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',5,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1206 + PCB congener 196, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',5,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1207 + 2,2',3,3',4,4',6,6'-Octachlorobiphenyl + 2,2',3,3',4,4',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1207 + BZ congener number 197 + 2,2',3,3',4,4',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1207 + CASRN 33091-17-7 + 2,2',3,3',4,4',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1207 + PCB congener 197, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1207 + PCB congener 197, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + BZ congener number 198 + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + CASRN 68194-17-2 + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + PCB congener 198, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + PCB congener 198, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + PCB congener 198, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + PCB congener 198, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + PCB congener 198, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + PCB congener 198, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + BZ congener number 199 + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + CASRN 52663-75-9 + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + PCB congener 199, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + PCB congener 199, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + PCB congener 199, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + PCB congener 199, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + PCB congener 199, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + PCB congener 199, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1210 + 2,2',3,3',4,5,6,6'-Octachlorobiphenyl + 2,2',3,3',4,5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1210 + BZ congener number 200 + 2,2',3,3',4,5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1210 + CASRN 52663-73-7 + 2,2',3,3',4,5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1210 + PCB congener 200, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1210 + PCB congener 200, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + PCB congener 201, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + PCB congener 201, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + BZ congener number 201 + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + CASRN 40186-71-8 + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + PCB congener 201, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + PCB congener 201, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + PCB congener 201, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + PCB congener 201, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1212 + PCB congener 202, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',5,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1212 + PCB congener 202, water, filtered, recoverable, picograms per liter + 2,2',3,3',5,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1212 + 2,2',3,3',5,5',6,6'-Octachlorobiphenyl + 2,2',3,3',5,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1212 + BZ congener number 202 + 2,2',3,3',5,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1212 + CASRN 2136-99-4 + 2,2',3,3',5,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1213 + 2,2',3,4,4',5,5',6-Octachlorobiphenyl + 2,2',3,4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1213 + BZ congener number 203 + 2,2',3,4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1213 + CASRN 52663-76-0 + 2,2',3,4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1213 + PCB congener 203, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1213 + PCB congener 203, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1214 + 2,2',3,4,4',5,6,6'-Octachlorobiphenyl + 2,2',3,4,4',5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1214 + BZ congener number 204 + 2,2',3,4,4',5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1214 + CASRN 74472-52-9 + 2,2',3,4,4',5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1214 + PCB congener 204, internal standard/surrogate, biota, tissue, percent recovery + 2,2',3,4,4',5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1214 + PCB congener 204, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1215 + 2,3,3',4,4',5,5',6-Octachlorobiphenyl + 2,3,3',4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1215 + BZ congener number 205 + 2,3,3',4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1215 + CASRN 74472-53-0 + 2,3,3',4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1215 + PCB congener 205, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1215 + PCB congener 205, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1089 + 2,2',3,3',4-Pentachlorobiphenyl + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + BZ congener number 82 + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + CASRN 52663-62-4 + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + PCB congener 82, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + PCB congener 82, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + PCB congener 82, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + PCB congener 82, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + PCB congener 82, water, filtered, recoverable, picograms per liter + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + PCB congener 82, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + 2,2',3,3',5-Pentachlorobiphenyl + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + BZ congener number 83 + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + CASRN 60145-20-2 + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + PCB congener 83, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + PCB congener 83, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + PCB congener 83, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + PCB congener 83, water, filtered, recoverable, nanograms per liter + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + PCB congener 83, water, filtered, recoverable, picograms per liter + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + PCB congener 83, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1091 + 2,2',3,3',6-Pentachlorobiphenyl + 2,2',3,3',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1091 + BZ congener number 84 + 2,2',3,3',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1091 + CASRN 52663-60-2 + 2,2',3,3',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1091 + PCB congener 84, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1091 + PCB congener 84, water, filtered, recoverable, picograms per liter + 2,2',3,3',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + 2,2',3,4,4'-Pentachlorobiphenyl + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + BZ congener number 85 + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + CASRN 65510-45-4 + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + PCB congener 85, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + PCB congener 85, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + PCB congener 85, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + PCB congener 85, water, filtered, recoverable, nanograms per liter + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + PCB congener 85, water, filtered, recoverable, picograms per liter + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + PCB congener 85, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1093 + 2,2',3,4,5-Pentachlorobiphenyl + 2,2',3,4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1093 + BZ congener number 86 + 2,2',3,4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1093 + CASRN 55312-69-1 + 2,2',3,4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1093 + PCB congener 86, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1093 + PCB congener 86, water, filtered, recoverable, picograms per liter + 2,2',3,4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + 2,2',3,4,5'-Pentachlorobiphenyl + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + BZ congener number 87 + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + CASRN 38380-02-8 + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + PCB congener 87, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + PCB congener 87, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + PCB congener 87, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + PCB congener 87, water, filtered, recoverable, nanograms per liter + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + PCB congener 87, water, filtered, recoverable, picograms per liter + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + PCB congener 87, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1095 + 2,2',3,4,6-Pentachlorobiphenyl + 2,2',3,4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1095 + BZ congener number 88 + 2,2',3,4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1095 + CASRN 55215-17-3 + 2,2',3,4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1095 + PCB congener 88, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1095 + PCB congener 88, water, filtered, recoverable, picograms per liter + 2,2',3,4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + 2,2',3,4,6'-Pentachlorobiphenyl + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + PCB congener 89, water, filtered, recoverable, picograms per liter + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + PCB congener 89, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + BZ congener number 89 + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + CASRN 73575-57-2 + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + PCB congener 89, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + PCB congener 89, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + PCB congener 89, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + PCB congener 89, water, filtered, recoverable, nanograms per liter + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1097 + 2,2',3,4',5-Pentachlorobiphenyl + 2,2',3,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1097 + BZ congener number 90 + 2,2',3,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1097 + CASRN 68194-07-0 + 2,2',3,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1097 + PCB congener 90, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1097 + PCB congener 90, water, filtered, recoverable, picograms per liter + 2,2',3,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + 2,2',3,4',6-Pentachlorobiphenyl + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + BZ congener number 91 + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + CASRN 68194-05-8 + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + PCB congener 91, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + PCB congener 91, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + PCB congener 91, suspended sediment, recoverable, nanograms per liter + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + PCB congener 91, water, filtered, recoverable, nanograms per liter + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + PCB congener 91, water, filtered, recoverable, picograms per liter + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + PCB congener 91, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1099 + 2,2',3,5,5'-Pentachlorobiphenyl + 2,2',3,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1099 + BZ congener number 92 + 2,2',3,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1099 + CASRN 52663-61-3 + 2,2',3,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1099 + PCB congener 92, solids, recoverable, dry weight, picograms per gram + 2,2',3,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1099 + PCB congener 92, water, filtered, recoverable, picograms per liter + 2,2',3,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1100 + 2,2',3,5,6-Pentachlorobiphenyl + 2,2',3,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1100 + BZ congener number 93 + 2,2',3,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1100 + CASRN 73575-56-1 + 2,2',3,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1100 + PCB congener 93, solids, recoverable, dry weight, picograms per gram + 2,2',3,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1100 + PCB congener 93, water, filtered, recoverable, picograms per liter + 2,2',3,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1101 + 2,2',3,5,6'-Pentachlorobiphenyl + 2,2',3,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1101 + BZ congener number 94 + 2,2',3,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1101 + CASRN 73575-55-0 + 2,2',3,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1101 + PCB congener 94, solids, recoverable, dry weight, picograms per gram + 2,2',3,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1101 + PCB congener 94, water, filtered, recoverable, picograms per liter + 2,2',3,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + 2,2',3,5',6-Pentachlorobiphenyl + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + BZ congener number 95 + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + CASRN 38379-99-6 + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, solids, recoverable, dry weight, picograms per gram + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, suspended sediment, recoverable, nanograms per liter + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, water, filtered, recoverable, nanograms per liter + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, water, filtered, recoverable, picograms per liter + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, water, unfiltered, recoverable, nanograms per liter + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1103 + 2,2',3,6,6'-Pentachlorobiphenyl + 2,2',3,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1103 + BZ congener number 96 + 2,2',3,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1103 + CASRN 73575-54-9 + 2,2',3,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1103 + PCB congener 96, solids, recoverable, dry weight, picograms per gram + 2,2',3,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1103 + PCB congener 96, water, filtered, recoverable, picograms per liter + 2,2',3,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + 2,2',3,4',5'-Pentachlorobiphenyl + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + BZ congener number 97 + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + CASRN 41464-51-1 + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + PCB congener 97, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + PCB congener 97, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + PCB congener 97, suspended sediment, recoverable, nanograms per liter + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + PCB congener 97, water, filtered, recoverable, nanograms per liter + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + PCB congener 97, water, filtered, recoverable, picograms per liter + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + PCB congener 97, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1105 + 2,2',3,4',6'-Pentachlorobiphenyl + 2,2',3,4',6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1105 + BZ congener number 98 + 2,2',3,4',6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1105 + CASRN 60233-25-2 + 2,2',3,4',6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1105 + PCB congener 98, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1105 + PCB congener 98, water, filtered, recoverable, picograms per liter + 2,2',3,4',6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + 2,2',4,4',5-Pentachlorobiphenyl + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + BZ congener number 99 + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + CASRN 38380-01-7 + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + PCB congener 99, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + PCB congener 99, solids, recoverable, dry weight, picograms per gram + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + PCB congener 99, suspended sediment, recoverable, nanograms per liter + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + PCB congener 99, water, filtered, recoverable, nanograms per liter + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + PCB congener 99, water, filtered, recoverable, picograms per liter + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + PCB congener 99, water, unfiltered, recoverable, nanograms per liter + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1107 + 2,2',4,4',6-Pentachlorobiphenyl + 2,2',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1107 + BZ congener number 100 + 2,2',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1107 + CASRN 39485-83-1 + 2,2',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1107 + PCB congener 100, solids, recoverable, dry weight, picograms per gram + 2,2',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1107 + PCB congener 100, water, filtered, recoverable, picograms per liter + 2,2',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + 2,2',4,5,5'-Pentachlorobiphenyl + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + BZ congener number 101 + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + CASRN 37680-73-2 + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, water, unfiltered, recoverable, nanograms per liter + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, solids, recoverable, dry weight, micrograms per kilogram + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, solids, recoverable, dry weight, picograms per gram + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, suspended sediment, recoverable, nanograms per liter + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, water, filtered, recoverable, nanograms per liter + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, water, filtered, recoverable, picograms per liter + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1109 + 2,2',4,5,6'-Pentachlorobiphenyl + 2,2',4,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1109 + BZ congener number 102 + 2,2',4,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1109 + CASRN 68194-06-9 + 2,2',4,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1109 + PCB congener 102, solids, recoverable, dry weight, picograms per gram + 2,2',4,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1109 + PCB congener 102, water, filtered, recoverable, picograms per liter + 2,2',4,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1110 + 2,2',4,5',6-Pentachlorobiphenyl + 2,2',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1110 + BZ congener number 103 + 2,2',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1110 + CASRN 60145-21-3 + 2,2',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1110 + PCB congener 103, solids, recoverable, dry weight, picograms per gram + 2,2',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1110 + PCB congener 103, water, filtered, recoverable, picograms per liter + 2,2',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1111 + 2,2',4,6,6'-Pentachlorobiphenyl + 2,2',4,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1111 + BZ congener number 104 + 2,2',4,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1111 + CASRN 56558-16-8 + 2,2',4,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1111 + PCB congener 104, solids, recoverable, dry weight, picograms per gram + 2,2',4,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1111 + PCB congener 104, water, filtered, recoverable, picograms per liter + 2,2',4,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1112 + 2,3,3',4,4'-Pentachlorobiphenyl + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1112 + BZ congener number 105 + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1112 + CASRN 32598-14-4 + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1112 + PCB congener 105, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1112 + PCB congener 105, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1112 + PCB congener 105, water, filtered, recoverable, picograms per liter + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1113 + 2,3,3',4,5-Pentachlorobiphenyl + 2,3,3',4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1113 + BZ congener number 106 + 2,3,3',4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1113 + CASRN 70424-69-0 + 2,3,3',4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1113 + PCB congener 106, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1113 + PCB congener 106, water, filtered, recoverable, picograms per liter + 2,3,3',4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1114 + 2,3,3',4',5-Pentachlorobiphenyl + 2,3,3',4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1114 + BZ congener number 107 + 2,3,3',4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1114 + CASRN 70424-68-9 + 2,3,3',4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1114 + PCB congener 107, solids, recoverable, dry weight, picograms per gram + 2,3,3',4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1114 + PCB congener 107, water, filtered, recoverable, picograms per liter + 2,3,3',4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1115 + 2,3,3',4,5'-Pentachlorobiphenyl + 2,3,3',4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1115 + BZ congener number 108 + 2,3,3',4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1115 + CASRN 70362-41-3 + 2,3,3',4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1115 + PCB congener 108, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1115 + PCB congener 108, water, filtered, recoverable, picograms per liter + 2,3,3',4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1116 + 2,3,3',4,6-Pentachlorobiphenyl + 2,3,3',4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1116 + BZ congener number 109 + 2,3,3',4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1116 + CASRN 74472-35-8 + 2,3,3',4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1116 + PCB congener 109, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1116 + PCB congener 109, water, filtered, recoverable, picograms per liter + 2,3,3',4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + 2,3,3',4',6-Pentachlorobiphenyl + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + BZ congener number 110 + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + CASRN 38380-03-9 + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + PCB congener 110, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + PCB congener 110, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + PCB congener 110, solids, recoverable, dry weight, micrograms per kilogram + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + PCB congener 110, solids, recoverable, dry weight, picograms per gram + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + PCB congener 110, water, filtered, recoverable, picograms per liter + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1118 + 2,3,3',5,5'-Pentachlorobiphenyl + 2,3,3',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1118 + BZ congener number 111 + 2,3,3',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1118 + CASRN 39635-32-0 + 2,3,3',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1118 + PCB congener 111, solids, recoverable, dry weight, picograms per gram + 2,3,3',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1118 + PCB congener 111, water, filtered, recoverable, picograms per liter + 2,3,3',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1119 + 2,3,3',5,6-Pentachlorobiphenyl + 2,3,3',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1119 + BZ congener number 112 + 2,3,3',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1119 + CASRN 74472-36-9 + 2,3,3',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1119 + PCB congener 112, solids, recoverable, dry weight, picograms per gram + 2,3,3',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1119 + PCB congener 112, water, filtered, recoverable, picograms per liter + 2,3,3',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1120 + 2,3,3',5',6-Pentachlorobiphenyl + 2,3,3',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1120 + BZ congener number 113 + 2,3,3',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1120 + CASRN 68194-10-5 + 2,3,3',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1120 + PCB congener 113, solids, recoverable, dry weight, picograms per gram + 2,3,3',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1120 + PCB congener 113, water, filtered, recoverable, picograms per liter + 2,3,3',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1121 + 2,3,4,4',5-Pentachlorobiphenyl + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1121 + BZ congener number 114 + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1121 + CASRN 74472-37-0 + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1121 + PCB congener 114, solids, recoverable, dry weight, picograms per gram + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1121 + PCB congener 114, water, filtered, recoverable, picograms per liter + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1122 + 2,3,4,4',6-Pentachlorobiphenyl + 2,3,4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1122 + BZ congener number 115 + 2,3,4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1122 + CASRN 74472-38-1 + 2,3,4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1122 + PCB congener 115, solids, recoverable, dry weight, picograms per gram + 2,3,4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1122 + PCB congener 115, water, filtered, recoverable, picograms per liter + 2,3,4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1123 + 2,3,4,5,6-Pentachlorobiphenyl + 2,3,4,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1123 + BZ congener number 116 + 2,3,4,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1123 + CASRN 18259-05-7 + 2,3,4,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1123 + PCB congener 116, solids, recoverable, dry weight, picograms per gram + 2,3,4,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1123 + PCB congener 116, water, filtered, recoverable, picograms per liter + 2,3,4,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1124 + 2,3,4',5,6-Pentachlorobiphenyl + 2,3,4',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1124 + BZ congener number 117 + 2,3,4',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1124 + CASRN 68194-11-6 + 2,3,4',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1124 + PCB congener 117, solids, recoverable, dry weight, picograms per gram + 2,3,4',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1124 + PCB congener 117, water, filtered, recoverable, picograms per liter + 2,3,4',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + 2,3',4,4',5-Pentachlorobiphenyl + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + BZ congener number 118 + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + CASRN 31508-00-6 + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, water, filtered, recoverable, picograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, water, unfiltered, recoverable, nanograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, solids, recoverable, dry weight, micrograms per kilogram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, suspended sediment, recoverable, nanograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, water, filtered, recoverable, nanograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1126 + 2,3',4,4',6-Pentachlorobiphenyl + 2,3',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1126 + BZ congener number 119 + 2,3',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1126 + CASRN 56558-17-9 + 2,3',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1126 + PCB congener 119, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1126 + PCB congener 119, water, filtered, recoverable, picograms per liter + 2,3',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1127 + 2,3',4,5,5'-Pentachlorobiphenyl + 2,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1127 + BZ congener number 120 + 2,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1127 + CASRN 68194-12-7 + 2,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1127 + PCB congener 120, solids, recoverable, dry weight, picograms per gram + 2,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1127 + PCB congener 120, water, filtered, recoverable, picograms per liter + 2,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1128 + 2,3',4,5',6-Pentachlorobiphenyl + 2,3',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1128 + BZ congener number 121 + 2,3',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1128 + CASRN 56558-18-0 + 2,3',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1128 + PCB congener 121, solids, recoverable, dry weight, picograms per gram + 2,3',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1128 + PCB congener 121, water, filtered, recoverable, picograms per liter + 2,3',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1129 + 2,3,3',4',5'-Pentachlorobiphenyl + 2,3,3',4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1129 + BZ congener number 122 + 2,3,3',4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1129 + CASRN 76842-07-4 + 2,3,3',4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1129 + PCB congener 122, solids, recoverable, dry weight, picograms per gram + 2,3,3',4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1129 + PCB congener 122, water, filtered, recoverable, picograms per liter + 2,3,3',4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1130 + 2,3',4,4',5'-Pentachlorobiphenyl + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1130 + BZ congener number 123 + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1130 + CASRN 65510-44-3 + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1130 + PCB congener 123, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1130 + PCB congener 123, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1130 + PCB congener 123, water, filtered, recoverable, picograms per liter + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1131 + 2,3',4',5,5'-Pentachlorobiphenyl + 2,3',4',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1131 + BZ congener number 124 + 2,3',4',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1131 + CASRN 70424-70-3 + 2,3',4',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1131 + PCB congener 124, solids, recoverable, dry weight, picograms per gram + 2,3',4',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1131 + PCB congener 124, water, filtered, recoverable, picograms per liter + 2,3',4',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1132 + 2,3',4',5',6-Pentachlorobiphenyl + 2,3',4',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1132 + BZ congener number 125 + 2,3',4',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1132 + CASRN 74472-39-2 + 2,3',4',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1132 + PCB congener 125, solids, recoverable, dry weight, picograms per gram + 2,3',4',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1132 + PCB congener 125, water, filtered, recoverable, picograms per liter + 2,3',4',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1133 + 3,3',4,4',5-Pentachlorobiphenyl + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1133 + BZ congener number 126 + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1133 + CASRN 57465-28-8 + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1133 + PCB congener 126, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1133 + PCB congener 126, solids, recoverable, dry weight, picograms per gram + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1133 + PCB congener 126, water, filtered, recoverable, picograms per liter + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1134 + 3,3',4,5,5'-Pentachlorobiphenyl + 3,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1134 + BZ congener number 127 + 3,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1134 + CASRN 39635-33-1 + 3,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1134 + PCB congener 127, solids, recoverable, dry weight, picograms per gram + 3,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1134 + PCB congener 127, water, filtered, recoverable, picograms per liter + 3,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1046 + 2,2',3,3'-Tetrachlorobiphenyl + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + BZ congener number 40 + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + CASRN 38444-93-8 + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + PCB congener 40, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + PCB congener 40, solids, recoverable, dry weight, picograms per gram + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + PCB congener 40, suspended sediment, recoverable, nanograms per liter + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + PCB congener 40, water, filtered, recoverable, nanograms per liter + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + PCB congener 40, water, filtered, recoverable, picograms per liter + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + PCB congener 40, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1047 + 2,2',3,4-Tetrachlorobiphenyl + 2,2',3,4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1047 + BZ congener number 41 + 2,2',3,4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1047 + CASRN 52663-59-9 + 2,2',3,4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1047 + PCB congener 41, solids, recoverable, dry weight, picograms per gram + 2,2',3,4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1047 + PCB congener 41, water, filtered, recoverable, picograms per liter + 2,2',3,4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1048 + 2,2',3,4'-Tetrachlorobiphenyl + 2,2',3,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1048 + BZ congener number 42 + 2,2',3,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1048 + CASRN 36559-22-5 + 2,2',3,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1048 + PCB congener 42, solids, recoverable, dry weight, picograms per gram + 2,2',3,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1048 + PCB congener 42, water, filtered, recoverable, picograms per liter + 2,2',3,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1049 + 2,2',3,5-Tetrachlorobiphenyl + 2,2',3,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1049 + BZ congener number 43 + 2,2',3,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1049 + CASRN 70362-46-8 + 2,2',3,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1049 + PCB congener 43, solids, recoverable, dry weight, picograms per gram + 2,2',3,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1049 + PCB congener 43, water, filtered, recoverable, picograms per liter + 2,2',3,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + 2,2',3,5'-Tetrachlorobiphenyl + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + BZ congener number 44 + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + CASRN 41464-39-5 + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, solids, recoverable, dry weight, picograms per gram + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, suspended sediment, recoverable, nanograms per liter + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, water, filtered, recoverable, nanograms per liter + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, water, filtered, recoverable, picograms per liter + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, water, unfiltered, recoverable, nanograms per liter + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + 2,2',3,6-Tetrachlorobiphenyl + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + BZ congener number 45 + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + CASRN 70362-45-7 + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + PCB congener 45, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + PCB congener 45, solids, recoverable, dry weight, picograms per gram + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + PCB congener 45, suspended sediment, recoverable, nanograms per liter + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + PCB congener 45, water, filtered, recoverable, nanograms per liter + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + PCB congener 45, water, filtered, recoverable, picograms per liter + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + PCB congener 45, water, unfiltered, recoverable, nanograms per liter + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + 2,2',3,6'-Tetrachlorobiphenyl + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + BZ congener number 46 + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + CASRN 41464-47-5 + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + PCB congener 46, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + PCB congener 46, solids, recoverable, dry weight, picograms per gram + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + PCB congener 46, suspended sediment, recoverable, nanograms per liter + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + PCB congener 46, water, filtered, recoverable, nanograms per liter + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + PCB congener 46, water, filtered, recoverable, picograms per liter + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + PCB congener 46, water, unfiltered, recoverable, nanograms per liter + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1053 + 2,2',4,4'-Tetrachlorobiphenyl + 2,2',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1053 + BZ congener number 47 + 2,2',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1053 + CASRN 2437-79-8 + 2,2',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1053 + PCB congener 47, solids, recoverable, dry weight, picograms per gram + 2,2',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1053 + PCB congener 47, water, filtered, recoverable, picograms per liter + 2,2',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1054 + 2,2',4,5-Tetrachlorobiphenyl + 2,2',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1054 + BZ congener number 48 + 2,2',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1054 + CASRN 70362-47-9 + 2,2',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1054 + PCB congener 48, solids, recoverable, dry weight, picograms per gram + 2,2',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1054 + PCB congener 48, water, filtered, recoverable, picograms per liter + 2,2',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + 2,2',4,5'-Tetrachlorobiphenyl + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + BZ congener number 49 + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + CASRN 41464-40-8 + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, water, unfiltered, recoverable, nanograms per liter + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, solids, recoverable, dry weight, micrograms per kilogram + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, solids, recoverable, dry weight, picograms per gram + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, suspended sediment, recoverable, nanograms per liter + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, water, filtered, recoverable, nanograms per liter + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, water, filtered, recoverable, picograms per liter + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1056 + 2,2',4,6-Tetrachlorobiphenyl + 2,2',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1056 + BZ congener number 50 + 2,2',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1056 + CASRN 62796-65-0 + 2,2',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1056 + PCB congener 50, solids, recoverable, dry weight, picograms per gram + 2,2',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1056 + PCB congener 50, water, filtered, recoverable, picograms per liter + 2,2',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + 2,2',4,6'-Tetrachlorobiphenyl + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + BZ congener number 51 + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + CASRN 68194-04-7 + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + PCB congener 51, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + PCB congener 51, solids, recoverable, dry weight, picograms per gram + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + PCB congener 51, suspended sediment, recoverable, nanograms per liter + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + PCB congener 51, water, filtered, recoverable, nanograms per liter + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + PCB congener 51, water, filtered, recoverable, picograms per liter + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + PCB congener 51, water, unfiltered, recoverable, nanograms per liter + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + 2,2',5,5'-Tetrachlorobiphenyl + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + BZ congener number 52 + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + CASRN 35693-99-3 + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, solids, recoverable, dry weight, micrograms per kilogram + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, solids, recoverable, dry weight, picograms per gram + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, suspended sediment, recoverable, nanograms per liter + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, water, filtered, recoverable, nanograms per liter + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, water, filtered, recoverable, picograms per liter + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, water, unfiltered, recoverable, nanograms per liter + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + 2,2',5,6'-Tetrachlorobiphenyl + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + BZ congener number 53 + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + CASRN 41464-41-9 + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + PCB congener 53, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + PCB congener 53, solids, recoverable, dry weight, picograms per gram + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + PCB congener 53, suspended sediment, recoverable, nanograms per liter + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + PCB congener 53, water, filtered, recoverable, nanograms per liter + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + PCB congener 53, water, filtered, recoverable, picograms per liter + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + PCB congener 53, water, unfiltered, recoverable, nanograms per liter + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1060 + 2,2',6,6'-Tetrachlorobiphenyl + 2,2',6,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1060 + BZ congener number 54 + 2,2',6,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1060 + CASRN 15968-05-5 + 2,2',6,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1060 + PCB congener 54, solids, recoverable, dry weight, picograms per gram + 2,2',6,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1060 + PCB congener 54, water, filtered, recoverable, picograms per liter + 2,2',6,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1061 + 2,3,3',4-Tetrachlorobiphenyl + 2,3,3',4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1061 + BZ congener number 55 + 2,3,3',4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1061 + CASRN 74338-24-2 + 2,3,3',4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1061 + PCB congener 55, solids, recoverable, dry weight, picograms per gram + 2,3,3',4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1061 + PCB congener 55, water, filtered, recoverable, picograms per liter + 2,3,3',4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1062 + 2,3,3',4'-Tetrachlorobiphenyl + 2,3,3',4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1062 + BZ congener number 56 + 2,3,3',4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1062 + CASRN 41464-43-1 + 2,3,3',4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1062 + PCB congener 56, solids, recoverable, dry weight, picograms per gram + 2,3,3',4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1062 + PCB congener 56, water, filtered, recoverable, picograms per liter + 2,3,3',4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1063 + 2,3,3',5-Tetrachlorobiphenyl + 2,3,3',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1063 + BZ congener number 57 + 2,3,3',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1063 + CASRN 70424-67-8 + 2,3,3',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1063 + PCB congener 57, solids, recoverable, dry weight, picograms per gram + 2,3,3',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1063 + PCB congener 57, water, filtered, recoverable, picograms per liter + 2,3,3',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1064 + 2,3,3',5'-Tetrachlorobiphenyl + 2,3,3',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1064 + BZ congener number 58 + 2,3,3',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1064 + CASRN 41464-49-7 + 2,3,3',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1064 + PCB congener 58, solids, recoverable, dry weight, picograms per gram + 2,3,3',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1064 + PCB congener 58, water, filtered, recoverable, picograms per liter + 2,3,3',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1065 + 2,3,3',6-Tetrachlorobiphenyl + 2,3,3',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1065 + BZ congener number 59 + 2,3,3',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1065 + CASRN 74472-33-6 + 2,3,3',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1065 + PCB congener 59, solids, recoverable, dry weight, picograms per gram + 2,3,3',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1065 + PCB congener 59, water, filtered, recoverable, picograms per liter + 2,3,3',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1066 + 2,3,4,4'-Tetrachlorobiphenyl + 2,3,4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1066 + BZ congener number 60 + 2,3,4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1066 + CASRN 33025-41-1 + 2,3,4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1066 + PCB congener 60, solids, recoverable, dry weight, picograms per gram + 2,3,4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1066 + PCB congener 60, water, filtered, recoverable, picograms per liter + 2,3,4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1067 + 2,3,4,5-Tetrachlorobiphenyl + 2,3,4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1067 + BZ congener number 61 + 2,3,4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1067 + CASRN 33284-53-6 + 2,3,4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1067 + PCB congener 61, solids, recoverable, dry weight, picograms per gram + 2,3,4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1067 + PCB congener 61, water, filtered, recoverable, picograms per liter + 2,3,4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1068 + 2,3,4,6-Tetrachlorobiphenyl + 2,3,4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1068 + BZ congener number 62 + 2,3,4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1068 + CASRN 54230-22-7 + 2,3,4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1068 + PCB congener 62, solids, recoverable, dry weight, picograms per gram + 2,3,4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1068 + PCB congener 62, water, filtered, recoverable, picograms per liter + 2,3,4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + 2,3,4',5-Tetrachlorobiphenyl + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + BZ congener number 63 + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + CASRN 74472-34-7 + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + PCB congener 63, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + PCB congener 63, solids, recoverable, dry weight, picograms per gram + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + PCB congener 63, suspended sediment, recoverable, nanograms per liter + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + PCB congener 63, water, filtered, recoverable, nanograms per liter + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + PCB congener 63, water, filtered, recoverable, picograms per liter + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + PCB congener 63, water, unfiltered, recoverable, nanograms per liter + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1070 + 2,3,4',6-Tetrachlorobiphenyl + 2,3,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1070 + BZ congener number 64 + 2,3,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1070 + CASRN 52663-58-8 + 2,3,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1070 + PCB congener 64, solids, recoverable, dry weight, picograms per gram + 2,3,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1070 + PCB congener 64, water, filtered, recoverable, picograms per liter + 2,3,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1071 + 2,3,5,6-Tetrachlorobiphenyl + 2,3,5,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1071 + BZ congener number 65 + 2,3,5,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1071 + CASRN 33284-54-7 + 2,3,5,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1071 + PCB congener 65, solids, recoverable, dry weight, picograms per gram + 2,3,5,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1071 + PCB congener 65, water, filtered, recoverable, picograms per liter + 2,3,5,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + 2,3',4,4'-Tetrachlorobiphenyl + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + BZ congener number 66 + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + CASRN 32598-10-0 + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + PCB congener 66, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + PCB congener 66, solids, recoverable, dry weight, picograms per gram + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + PCB congener 66, suspended sediment, recoverable, nanograms per liter + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + PCB congener 66, water, filtered, recoverable, nanograms per liter + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + PCB congener 66, water, filtered, recoverable, picograms per liter + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + PCB congener 66, water, unfiltered, recoverable, nanograms per liter + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1073 + 2,3',4,5-Tetrachlorobiphenyl + 2,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1073 + BZ congener number 67 + 2,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1073 + CASRN 73575-53-8 + 2,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1073 + PCB congener 67, solids, recoverable, dry weight, picograms per gram + 2,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1073 + PCB congener 67, water, filtered, recoverable, picograms per liter + 2,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1074 + 2,3',4,5'-Tetrachlorobiphenyl + 2,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1074 + BZ congener number 68 + 2,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1074 + CASRN 73575-52-7 + 2,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1074 + PCB congener 68, solids, recoverable, dry weight, picograms per gram + 2,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1074 + PCB congener 68, water, filtered, recoverable, picograms per liter + 2,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1075 + 2,3',4,6-Tetrachlorobiphenyl + 2,3',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1075 + BZ congener number 69 + 2,3',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1075 + CASRN 60233-24-1 + 2,3',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1075 + PCB congener 69, solids, recoverable, dry weight, picograms per gram + 2,3',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1075 + PCB congener 69, water, filtered, recoverable, picograms per liter + 2,3',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + 2,3',4',5-Tetrachlorobiphenyl + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + BZ congener number 70 + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + CASRN 32598-11-1 + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + PCB congener 70, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + PCB congener 70, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + PCB congener 70, solids, recoverable, dry weight, micrograms per kilogram + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + PCB congener 70, solids, recoverable, dry weight, picograms per gram + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + PCB congener 70, water, filtered, recoverable, picograms per liter + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1077 + 2,3',4',6-Tetrachlorobiphenyl + 2,3',4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1077 + BZ congener number 71 + 2,3',4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1077 + CASRN 41464-46-4 + 2,3',4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1077 + PCB congener 71, solids, recoverable, dry weight, picograms per gram + 2,3',4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1077 + PCB congener 71, water, filtered, recoverable, picograms per liter + 2,3',4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1078 + 2,3',5,5'-Tetrachlorobiphenyl + 2,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1078 + BZ congener number 72 + 2,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1078 + CASRN 41464-42-0 + 2,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1078 + PCB congener 72, solids, recoverable, dry weight, picograms per gram + 2,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1078 + PCB congener 72, water, filtered, recoverable, picograms per liter + 2,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1079 + 2,3',5',6-Tetrachlorobiphenyl + 2,3',5',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1079 + BZ congener number 73 + 2,3',5',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1079 + CASRN 74338-23-1 + 2,3',5',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1079 + PCB congener 73, solids, recoverable, dry weight, picograms per gram + 2,3',5',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1079 + PCB congener 73, water, filtered, recoverable, picograms per liter + 2,3',5',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + 2,4,4',5-Tetrachlorobiphenyl + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + BZ congener number 74 + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + CASRN 32690-93-0 + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + PCB congener 74, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + PCB congener 74, solids, recoverable, dry weight, picograms per gram + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + PCB congener 74, suspended sediment, recoverable, nanograms per liter + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + PCB congener 74, water, filtered, recoverable, nanograms per liter + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + PCB congener 74, water, filtered, recoverable, picograms per liter + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + PCB congener 74, water, unfiltered, recoverable, nanograms per liter + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1081 + 2,4,4',6-Tetrachlorobiphenyl + 2,4,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1081 + BZ congener number 75 + 2,4,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1081 + CASRN 32598-12-2 + 2,4,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1081 + PCB congener 75, solids, recoverable, dry weight, picograms per gram + 2,4,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1081 + PCB congener 75, water, filtered, recoverable, picograms per liter + 2,4,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1082 + 2,3',4',5'-Tetrachlorobiphenyl + 2,3',4',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1082 + BZ congener number 76 + 2,3',4',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1082 + CASRN 70362-48-0 + 2,3',4',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1082 + PCB congener 76, solids, recoverable, dry weight, picograms per gram + 2,3',4',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1082 + PCB congener 76, water, filtered, recoverable, picograms per liter + 2,3',4',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1083 + 3,3',4,4'-Tetrachlorobiphenyl + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1083 + BZ congener number 77 + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1083 + CASRN 32598-13-3 + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1083 + PCB congener 77, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1083 + PCB congener 77, solids, recoverable, dry weight, picograms per gram + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1083 + PCB congener 77, water, filtered, recoverable, picograms per liter + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1084 + 3,3',4,5-Tetrachlorobiphenyl + 3,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1084 + BZ congener number 78 + 3,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1084 + CASRN 70362-49-1 + 3,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1084 + PCB congener 78, solids, recoverable, dry weight, picograms per gram + 3,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1084 + PCB congener 78, water, filtered, recoverable, picograms per liter + 3,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1085 + 3,3',4,5'-Tetrachlorobiphenyl + 3,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1085 + BZ congener number 79 + 3,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1085 + CASRN 41464-48-6 + 3,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1085 + PCB congener 79, solids, recoverable, dry weight, picograms per gram + 3,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1085 + PCB congener 79, water, filtered, recoverable, picograms per liter + 3,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1086 + 3,3',5,5'-Tetrachlorobiphenyl + 3,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1086 + BZ congener number 80 + 3,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1086 + CASRN 33284-52-5 + 3,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1086 + PCB congener 80, solids, recoverable, dry weight, picograms per gram + 3,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1086 + PCB congener 80, water, filtered, recoverable, picograms per liter + 3,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1087 + 3,4,4',5-Tetrachlorobiphenyl + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1087 + BZ congener number 81 + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1087 + CASRN 70362-50-4 + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1087 + PCB congener 81, solids, recoverable, dry weight, picograms per gram + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1087 + PCB congener 81, water, filtered, recoverable, picograms per liter + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1021 + 2,2',3-Trichlorobiphenyl + 2,2',3-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1021 + BZ congener number 16 + 2,2',3-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1021 + CASRN 38444-78-9 + 2,2',3-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1021 + PCB congener 16, solids, recoverable, dry weight, picograms per gram + 2,2',3-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1021 + PCB congener 16, water, filtered, recoverable, picograms per liter + 2,2',3-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1022 + 2,2',4-Trichlorobiphenyl + 2,2',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1022 + BZ congener number 17 + 2,2',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1022 + CASRN 37680-66-3 + 2,2',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1022 + PCB congener 17, solids, recoverable, dry weight, picograms per gram + 2,2',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1022 + PCB congener 17, suspended sediment, recoverable, nanograms per liter + 2,2',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1022 + PCB congener 17, water, filtered, recoverable, nanograms per liter + 2,2',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1022 + PCB congener 17, water, filtered, recoverable, picograms per liter + 2,2',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + 2,2',5-Trichlorobiphenyl + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + BZ congener number 18 + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + CASRN 37680-65-2 + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + PCB congener 18, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + PCB congener 18, solids, recoverable, dry weight, micrograms per kilogram + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + PCB congener 18, solids, recoverable, dry weight, picograms per gram + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + PCB congener 18, suspended sediment, recoverable, nanograms per liter + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + PCB congener 18, water, filtered, recoverable, nanograms per liter + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + PCB congener 18, water, filtered, recoverable, picograms per liter + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + PCB congener 18, water, unfiltered, recoverable, nanograms per liter + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + 2,2',6-Trichlorobiphenyl + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + BZ congener number 19 + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + CASRN 38444-73-4 + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + PCB congener 19, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + PCB congener 19, solids, recoverable, dry weight, picograms per gram + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + PCB congener 19, suspended sediment, recoverable, nanograms per liter + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + PCB congener 19, water, filtered, recoverable, nanograms per liter + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + PCB congener 19, water, filtered, recoverable, picograms per liter + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + PCB congener 19, water, unfiltered, recoverable, nanograms per liter + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1025 + 2,3,3'-Trichlorobiphenyl + 2,3,3'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1025 + BZ congener number 20 + 2,3,3'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1025 + CASRN 38444-84-7 + 2,3,3'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1025 + PCB congener 20, solids, recoverable, dry weight, picograms per gram + 2,3,3'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1025 + PCB congener 20, water, filtered, recoverable, picograms per liter + 2,3,3'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1026 + 2,3,4-Trichlorobiphenyl + 2,3,4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1026 + BZ congener number 21 + 2,3,4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1026 + CASRN 55702-46-0 + 2,3,4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1026 + PCB congener 21, solids, recoverable, dry weight, picograms per gram + 2,3,4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1026 + PCB congener 21, water, filtered, recoverable, picograms per liter + 2,3,4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + 2,3,4'-Trichlorobiphenyl + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + BZ congener number 22 + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + CASRN 38444-85-8 + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + PCB congener 22, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + PCB congener 22, solids, recoverable, dry weight, micrograms per kilogram + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + PCB congener 22, solids, recoverable, dry weight, picograms per gram + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + PCB congener 22, suspended sediment, recoverable, nanograms per liter + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + PCB congener 22, water, filtered, recoverable, nanograms per liter + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + PCB congener 22, water, filtered, recoverable, picograms per liter + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + PCB congener 22, water, unfiltered, recoverable, nanograms per liter + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1028 + 2,3,5-Trichlorobiphenyl + 2,3,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1028 + BZ congener number 23 + 2,3,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1028 + CASRN 55720-44-0 + 2,3,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1028 + PCB congener 23, solids, recoverable, dry weight, picograms per gram + 2,3,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1028 + PCB congener 23, water, filtered, recoverable, picograms per liter + 2,3,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1029 + 2,3,6-Trichlorobiphenyl + 2,3,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1029 + BZ congener number 24 + 2,3,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1029 + CASRN 55702-45-9 + 2,3,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1029 + PCB congener 24, solids, recoverable, dry weight, picograms per gram + 2,3,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1029 + PCB congener 24, water, filtered, recoverable, picograms per liter + 2,3,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + 2,3',4-Trichlorobiphenyl + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + BZ congener number 25 + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + CASRN 55712-37-3 + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + PCB congener 25, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + PCB congener 25, solids, recoverable, dry weight, picograms per gram + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + PCB congener 25, suspended sediment, recoverable, nanograms per liter + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + PCB congener 25, water, filtered, recoverable, nanograms per liter + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + PCB congener 25, water, filtered, recoverable, picograms per liter + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + PCB congener 25, water, unfiltered, recoverable, nanograms per liter + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + 2,3',5-Trichlorobiphenyl + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + BZ congener number 26 + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + PCB congener 26, water, filtered, recoverable, picograms per liter + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + PCB congener 26, water, unfiltered, recoverable, nanograms per liter + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + CASRN 38444-81-4 + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + PCB congener 26, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + PCB congener 26, solids, recoverable, dry weight, micrograms per kilogram + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + PCB congener 26, solids, recoverable, dry weight, picograms per gram + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + PCB congener 26, suspended sediment, recoverable, nanograms per liter + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + PCB congener 26, water, filtered, recoverable, nanograms per liter + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1032 + 2,3',6-Trichlorobiphenyl + 2,3',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1032 + BZ congener number 27 + 2,3',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1032 + CASRN 38444-76-7 + 2,3',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1032 + PCB congener 27, solids, recoverable, dry weight, picograms per gram + 2,3',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1032 + PCB congener 27, water, filtered, recoverable, picograms per liter + 2,3',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1033 + 2,4,4'-Trichlorobiphenyl + 2,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1033 + BZ congener number 28 + 2,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1033 + CASRN 7012-37-5 + 2,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1033 + PCB congener 28, solids, recoverable, dry weight, micrograms per kilogram + 2,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1033 + PCB congener 28, solids, recoverable, dry weight, picograms per gram + 2,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1033 + PCB congener 28, water, filtered, recoverable, picograms per liter + 2,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1034 + 2,4,5-Trichlorobiphenyl + 2,4,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1034 + BZ congener number 29 + 2,4,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1034 + CASRN 15862-07-4 + 2,4,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1034 + PCB congener 29, solids, recoverable, dry weight, picograms per gram + 2,4,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1034 + PCB congener 29, water, filtered, recoverable, picograms per liter + 2,4,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1035 + 2,4,6-Trichlorobiphenyl + 2,4,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1035 + BZ congener number 30 + 2,4,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1035 + CASRN 35693-92-6 + 2,4,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1035 + PCB congener 30, surrogate, Schedule 2101, biota, whole organism, percent recovery + 2,4,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1035 + PCB congener 30, water, filtered, recoverable, picograms per liter + 2,4,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1036 + 2,4',5-Trichlorobiphenyl + 2,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1036 + BZ congener number 31 + 2,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1036 + CASRN 16606-02-3 + 2,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1036 + PCB congener 31, solids, recoverable, dry weight, micrograms per kilogram + 2,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1036 + PCB congener 31, solids, recoverable, dry weight, picograms per gram + 2,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1036 + PCB congener 31, water, filtered, recoverable, picograms per liter + 2,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1037 + 2,4',6-Trichlorobiphenyl + 2,4',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1037 + BZ congener number 32 + 2,4',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1037 + CASRN 38444-77-8 + 2,4',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1037 + PCB congener 32, solids, recoverable, dry weight, picograms per gram + 2,4',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1037 + PCB congener 32, water, filtered, recoverable, picograms per liter + 2,4',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + 2,3',4'-Trichlorobiphenyl + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + BZ congener number 33 + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + CASRN 38444-86-9 + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + PCB congener 33, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + PCB congener 33, solids, recoverable, dry weight, micrograms per kilogram + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + PCB congener 33, solids, recoverable, dry weight, picograms per gram + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + PCB congener 33, suspended sediment, recoverable, nanograms per liter + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + PCB congener 33, water, filtered, recoverable, nanograms per liter + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + PCB congener 33, water, filtered, recoverable, picograms per liter + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + PCB congener 33, water, unfiltered, recoverable, nanograms per liter + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1039 + 2,3',5'-Trichlorobiphenyl + 2,3',5'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1039 + BZ congener number 34 + 2,3',5'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1039 + CASRN 37680-68-5 + 2,3',5'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1039 + PCB congener 34, solids, recoverable, dry weight, picograms per gram + 2,3',5'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1039 + PCB congener 34, water, filtered, recoverable, picograms per liter + 2,3',5'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1040 + 3,3',4-Trichlorobiphenyl + 3,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1040 + BZ congener number 35 + 3,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1040 + CASRN 37680-69-6 + 3,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1040 + PCB congener 35, solids, recoverable, dry weight, picograms per gram + 3,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1040 + PCB congener 35, water, filtered, recoverable, picograms per liter + 3,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1041 + 3,3',5-Trichlorobiphenyl + 3,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1041 + BZ congener number 36 + 3,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1041 + CASRN 38444-87-0 + 3,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1041 + PCB congener 36, solids, recoverable, dry weight, picograms per gram + 3,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1041 + PCB congener 36, water, filtered, recoverable, picograms per liter + 3,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1042 + 3,4,4'-Trichlorobiphenyl + 3,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1042 + BZ congener number 37 + 3,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1042 + CASRN 38444-90-5 + 3,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1042 + PCB congener 37, solids, recoverable, dry weight, picograms per gram + 3,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1042 + PCB congener 37, water, filtered, recoverable, picograms per liter + 3,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1043 + 3,4,5-Tricholobiphenyl + 3,4,5-Tricholobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1043 + BZ congener number 38 + 3,4,5-Tricholobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1043 + CASRN 53555-66-1 + 3,4,5-Tricholobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1043 + PCB congener 38, solids, recoverable, dry weight, picograms per gram + 3,4,5-Tricholobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1043 + PCB congener 38, water, filtered, recoverable, picograms per liter + 3,4,5-Tricholobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1044 + 3,4',5-Trichlorobiphenyl + 3,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1044 + BZ congener number 39 + 3,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1044 + CASRN 38444-88-1 + 3,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1044 + PCB congener 39, solids, recoverable, dry weight, picograms per gram + 3,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1044 + PCB congener 39, water, filtered, recoverable, picograms per liter + 3,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1223 + Aroclor + Aroclor + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/ + + + 1239 + Other PCB_Mixtures + Other PCB_Mixtures + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/ + + + 1224 + Aroclor 1016 + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + Aroclor 1016, bed sediment, recoverable, dry weight, micrograms per kilogram + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + Aroclor 1016, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + Aroclor 1016, soil, recoverable, dry weight, milligrams per kilogram + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + Aroclor 1016, solids, recoverable, dry weight, micrograms per kilogram + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + Aroclor 1016, suspended sediment, recoverable, micrograms per liter + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + Aroclor 1016, water, filtered, recoverable, micrograms per liter + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + Aroclor 1016, water, unfiltered, recoverable, micrograms per liter + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + CASRN 12674-11-2 + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1225 + Aroclor 1210 + Aroclor 1210 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1225 + CASRN 147601-87-4 + Aroclor 1210 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221 + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221, bed sediment, recoverable, dry weight, micrograms per kilogram + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221, soil, recoverable, dry weight, milligrams per kilogram + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221, solids, recoverable, dry weight, micrograms per kilogram + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221, suspended sediment, recoverable, micrograms per liter + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221, water, filtered, recoverable, micrograms per liter + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221, water, unfiltered, recoverable, micrograms per liter + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + CASRN 11104-28-2 + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1227 + Aroclor 1231 + Aroclor 1231 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1227 + CASRN 37234-40-5 + Aroclor 1231 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232 + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232, bed sediment, recoverable, dry weight, micrograms per kilogram + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232, soil, recoverable, dry weight, milligrams per kilogram + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232, solids, recoverable, dry weight, micrograms per kilogram + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232, suspended sediment, recoverable, micrograms per liter + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232, water, filtered, recoverable, micrograms per liter + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232, water, unfiltered, recoverable, micrograms per liter + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + CASRN 11141-16-5 + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1229 + Aroclor 1240 + Aroclor 1240 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1229 + CASRN 71328-89-7 + Aroclor 1240 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242 + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242, bed sediment, recoverable, dry weight, micrograms per kilogram + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242, soil, recoverable, dry weight, milligrams per kilogram + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242, solids, recoverable, dry weight, micrograms per kilogram + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242, suspended sediment, recoverable, micrograms per liter + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242, water, filtered, recoverable, micrograms per liter + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242, water, unfiltered, recoverable, micrograms per liter + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + CASRN 53469-21-9 + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248 + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248, bed sediment, recoverable, dry weight, micrograms per kilogram + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248, soil, recoverable, dry weight, milligrams per kilogram + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248, solids, recoverable, dry weight, micrograms per kilogram + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248, suspended sediment, recoverable, micrograms per liter + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248, water, filtered, recoverable, micrograms per liter + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248, water, unfiltered, recoverable, micrograms per liter + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + CASRN 12672-29-6 + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1232 + Aroclor 1250 + Aroclor 1250 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1232 + CASRN 165245-51-2 + Aroclor 1250 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1233 + Aroclor 1252 + Aroclor 1252 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1233 + CASRN 89577-78-6 + Aroclor 1252 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254 + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254, bed sediment, recoverable, dry weight, micrograms per kilogram + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254, soil, recoverable, dry weight, milligrams per kilogram + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254, solids, recoverable, dry weight, micrograms per kilogram + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254, suspended sediment, recoverable, dry weight, micrograms per kilogram + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254, suspended sediment, recoverable, micrograms per liter + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254, water, filtered, recoverable, micrograms per liter + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254, water, unfiltered, recoverable, micrograms per liter + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + CASRN 11097-69-1 + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, water, filtered, recoverable, micrograms per liter + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, water, unfiltered, recoverable, micrograms per liter + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor-1260 + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + CASRN 11096-82-5 + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, bed sediment, recoverable, dry weight, micrograms per kilogram + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, soil, recoverable, dry weight, milligrams per kilogram + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, solids, recoverable, dry weight, micrograms per kilogram + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, suspended sediment, recoverable, dry weight, micrograms per kilogram + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, suspended sediment, recoverable, micrograms per liter + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1236 + Aroclor 1262, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor-1262 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1236 + Aroclor 1262, solids, recoverable, dry weight, micrograms per kilogram + Aroclor-1262 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1236 + Aroclor 1262, water, unfiltered, recoverable, micrograms per liter + Aroclor-1262 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1236 + Aroclor-1262 + Aroclor-1262 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1236 + CASRN 37324-23-5 + Aroclor-1262 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1237 + Aroclor 1268, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor-1268 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1237 + Aroclor 1268, solids, recoverable, dry weight, micrograms per kilogram + Aroclor-1268 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1237 + Aroclor 1268, water, unfiltered, recoverable, micrograms per liter + Aroclor-1268 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1237 + Aroclor-1268 + Aroclor-1268 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1237 + CASRN 11100-14-4 + Aroclor-1268 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1238 + Aroclor (unspecified) + Aroclor (unspecified) + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1238 + CASRN 12767-79-2 + Aroclor (unspecified) + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1240 + PCB-105/132/153 + PCB-105/132/153 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1241 + PCB-123/149 + PCB-123/149 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1242 + PCB-132/153 + PCB-132/153 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1243 + PCB-135/144 + PCB-135/144 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1244 + PCB-137/176 + PCB-137/176 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1245 + PCB-138/163 + PCB-138/163 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1246 + PCB-15/17 + PCB-15/17 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1247 + PCB-16/32 + PCB-16/32 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1248 + PCB-170/190 + PCB-170/190 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1249 + PCB-171/202 + PCB-171/202 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1250 + PCB-172/197 + PCB-172/197 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1251 + PCB-182/187 + PCB-182/187 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1252 + PCB-195/208 + PCB-195/208 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1253 + PCB-196/203 + PCB-196/203 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1254 + PCB-24/27 + PCB-24/27 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1255 + PCB-28/31 + PCB-28/31 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1256 + PCB-37/42 + PCB-37/42 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1257 + PCB-4/10 + PCB-4/10 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1258 + PCB-41/64/71 + PCB-41/64/71 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1259 + PCB-47/48 + PCB-47/48 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1260 + PCB-5/8 + PCB-5/8 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1261 + PCB-56/60 + PCB-56/60 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1262 + PCB-66/95 + PCB-66/95 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1263 + PCB-7/9 + PCB-7/9 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1264 + PCB-70/76 + PCB-70/76 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1265 + PCB-77/110 + PCB-77/110 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1266 + PCB-84/92 + PCB-84/92 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1834 + .alpha.-Endosulfan + .alpha.-Endosulfan + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1834 + alpha-Endosulfan + .alpha.-Endosulfan + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1835 + .alpha.-Hexachlorocyclohexane + .alpha.-Hexachlorocyclohexane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1836 + .beta.-Endosulfan + .beta.-Endosulfan + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1836 + beta-Endosulfan + .beta.-Endosulfan + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1837 + .beta.-Hexachlorocyclohexane + .beta.-Hexachlorocyclohexane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1838 + .delta.-Hexachlorocyclohexane + .delta.-Hexachlorocyclohexane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1839 + .lambda.-Cyhalothrin + .lambda.-Cyhalothrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1839 + lambda-Cyhalothrin + .lambda.-Cyhalothrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1840 + 1,2,3-Trichloropropane + 1,2,3-Trichloropropane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1841 + 1,2-Dibromo-3-chloropropane + 1,2-Dibromo-3-chloropropane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1842 + 1,2-Dichloroethane + 1,2-Dichloroethane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1843 + 1,2-Dichloropropane + 1,2-Dichloropropane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1844 + 1,3,5-Triazin-2(1H)-one, 4-(ethylamino)-6-[(1-methylethyl)amino]- + 1,3,5-Triazin-2(1H)-one, 4-(ethylamino)-6-[(1-methylethyl)amino]- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1845 + 1,3,5-Triazin-2(1H)-one, 4,6-bis(ethylamino)- + 1,3,5-Triazin-2(1H)-one, 4,6-bis(ethylamino)- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1846 + 1,3-Dichloropropane + 1,3-Dichloropropane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1847 + 1,3-Dichloropropene + 1,3-Dichloropropene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1848 + 1,4-Benzenedicarboxylic acid, 2,3,5,6-tetrachloro-, monomethyl ester + 1,4-Benzenedicarboxylic acid, 2,3,5,6-tetrachloro-, monomethyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1849 + 1,4-Ethenopentalene, 1,2,3,5,7,8-hexachloro-1,3a,4,5,6,6a-hexahydro-, (1R,3aS,4S,5S,6aS)-rel- + 1,4-Ethenopentalene, 1,2,3,5,7,8-hexachloro-1,3a,4,5,6,6a-hexahydro-, (1R,3aS,4S,5S,6aS)-rel- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1850 + 1,4-Naphthoquinone + 1,4-Naphthoquinone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1851 + 1,6-Methano-1H-indene, 2,3,3a,4,5,8-hexachloro-3a,6,7,7a-tetrahydro-, (1R,3aR,6S,7aR,8R)-rel- + 1,6-Methano-1H-indene, 2,3,3a,4,5,8-hexachloro-3a,6,7,7a-tetrahydro-, (1R,3aR,6S,7aR,8R)-rel- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1852 + 1H-Isoindole-1,3(2H)-dione, 3a,4,7,7a-tetrahydro-2-[(1,1,2,2-tetrachloroethyl)thio]- + 1H-Isoindole-1,3(2H)-dione, 3a,4,7,7a-tetrahydro-2-[(1,1,2,2-tetrachloroethyl)thio]- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1853 + 1-Naphthol + 1-Naphthol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1854 + cis-Permethrin + cis-Permethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1855 + 2(1H)-Pyridinone, 3,5,6-trichloro- + 2(1H)-Pyridinone, 3,5,6-trichloro- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1856 + 2-(Dimethylamino)-N-hydroxy-2-oxoethanimidothioic acid methyl ester + 2-(Dimethylamino)-N-hydroxy-2-oxoethanimidothioic acid methyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1857 + 2-(p-tert-Butylphenoxy)cyclohexanol + 2-(p-tert-Butylphenoxy)cyclohexanol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1858 + 2,2,4,5,6,7,8,8-Octachloro-2,3,3a,4,7,7a-hexahydro-4,7-methano-1H-indene + 2,2,4,5,6,7,8,8-Octachloro-2,3,3a,4,7,7a-hexahydro-4,7-methano-1H-indene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1859 + 2,3,4,5-Tetrachlorophenol + 2,3,4,5-Tetrachlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1860 + 2,3,4,6-Tetrachlorophenol + 2,3,4,6-Tetrachlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1861 + 2,4,5-T + 2,4,5-T + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1862 + 2,4,5-TB + 2,4,5-TB + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1863 + 2,4,5-Trichlorophenol + 2,4,5-Trichlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1864 + 2,4,6-Trichlorophenol + 2,4,6-Trichlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1865 + 2,4-D + 2,4-D + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1866 + 2,4-D methyl ester + 2,4-D methyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1867 + 2,4-DB + 2,4-DB + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1868 + 2,4-Dichlorophenol + 2,4-Dichlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1869 + 2,4-Dimethylphenol + 2,4-Dimethylphenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1870 + 2,5-Dichloroaniline + 2,5-Dichloroaniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1871 + 2,6-Diethylaniline + 2,6-Diethylaniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1872 + 2-Chloro-4,6-diamino-s-triazine + 2-Chloro-4,6-diamino-s-triazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1873 + 2-Chloro-4-isopropylamino-6-amino-s-triazine + 2-Chloro-4-isopropylamino-6-amino-s-triazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1874 + 2-Chloro-6-ethylamino-4-amino-s-triazine + 2-Chloro-6-ethylamino-4-amino-s-triazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1875 + 2-Ethyl-6-methylaniline + 2-Ethyl-6-methylaniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1876 + 3(2H)-Pyridazinone, 5-amino-4-chloro-2-[3-(trifluoromethyl)phenyl]- + 3(2H)-Pyridazinone, 5-amino-4-chloro-2-[3-(trifluoromethyl)phenyl]- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1877 + 3,4-Dichloroaniline + 3,4-Dichloroaniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1878 + 3,5-Dichloroaniline + 3,5-Dichloroaniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1879 + 3-Hydroxycarbofuran + 3-Hydroxycarbofuran + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1880 + 3-Phenoxybenzenemethanol + 3-Phenoxybenzenemethanol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1881 + 4,6-Dinitro-o-cresol + 4,6-Dinitro-o-cresol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1882 + 4-Chloro-2-methylphenol + 4-Chloro-2-methylphenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1883 + 5-Amino-1-[2,6-dichloro-4-(trifluoromethyl)phenyl]-4-[(trifluoromethyl)thio]pyrazole-3-carbonitrile + 5-Amino-1-[2,6-dichloro-4-(trifluoromethyl)phenyl]-4-[(trifluoromethyl)thio]pyrazole-3-carbonitrile + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1884 + Acephate + Acephate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1885 + Acetochlor + Acetochlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1886 + Acifluorfen + Acifluorfen + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1887 + Acifluorfen, sodium salt + Acifluorfen, sodium salt + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1887 + Sodium acifluorfen + Acifluorfen, sodium salt + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1888 + Acrylonitrile + Acrylonitrile + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1889 + Alachlor + Alachlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1890 + Alachlor ESA + Alachlor ESA + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1890 + Alachlor ethanesulfonic acid + Alachlor ESA + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1891 + Aldicarb + Aldicarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1892 + Aldicarb sulfone + Aldicarb sulfone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1893 + Aldicarb sulfoxide + Aldicarb sulfoxide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1894 + Aldrin + Aldrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1895 + Allethrin + Allethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1896 + Allyl chloride + Allyl chloride + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1897 + Ametryn + Ametryn + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1898 + Aminocarb + Aminocarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1899 + Aminomethylphosphonic acid + Aminomethylphosphonic acid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1900 + Aramite + Aramite + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1901 + Asulam + Asulam + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1902 + Atraton + Atraton + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1903 + Atrazine + Atrazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1904 + Azinphos-ethyl + Azinphos-ethyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1905 + Azinphos-methyl + Azinphos-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1906 + Azobenzene + Azobenzene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1907 + Barban + Barban + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1908 + Bendiocarb + Bendiocarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1909 + Benfluralin + Benfluralin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1910 + Benomyl + Benomyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1911 + Bensulfuron-methyl + Bensulfuron-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1912 + Bentazon + Bentazon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1913 + Benzamide, 2-amino-N-(1-methylethyl)- + Benzamide, 2-amino-N-(1-methylethyl)- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1914 + Benzene, 1,1'-(chloroethenylidene)bis(4-chloro- + Benzene, 1,1'-(chloroethenylidene)bis(4-chloro- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1915 + Benzene, 1-chloro-4-(methylsulfonyl)- + Benzene, 1-chloro-4-(methylsulfonyl)- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1916 + Benzene, 1-methoxy-2-[2,2,2-trichloro-1-(4-methoxyphenyl)ethyl]- + Benzene, 1-methoxy-2-[2,2,2-trichloro-1-(4-methoxyphenyl)ethyl]- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1917 + Benzene, pentachloromethoxy- + Benzene, pentachloromethoxy- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1918 + Benzoic acid, 2,5-dichloro-3-hydroxy-6-methoxy- + Benzoic acid, 2,5-dichloro-3-hydroxy-6-methoxy- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1919 + 3,5-Dichlorobenzoic acid + Benzoic acid, 3,5-dichloro- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1919 + Benzoic acid, 3,5-dichloro- + Benzoic acid, 3,5-dichloro- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1920 + Bifenthrin + Bifenthrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1921 + Bromacil + Bromacil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1922 + Bromophos + Bromophos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1923 + Bromophos-ethyl + Bromophos-ethyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1924 + Bromoxynil + Bromoxynil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1925 + Bufencarb + Bufencarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1926 + Bulan mixt. with 2-nitro-1,1-bis(p-chlorophenyl)propane + Bulan mixt. with 2-nitro-1,1-bis(p-chlorophenyl)propane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1927 + Butachlor + Butachlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1928 + Butoxycarboxim + Butoxycarboxim + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1929 + Butylamine + Butylamine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1930 + Butylate + Butylate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1931 + Cacodylic acid + Cacodylic acid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1932 + Cadusafos + Cadusafos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1933 + Camphor + Camphor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1934 + Captan + Captan + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1935 + Carbamic acid, methyl-, 2-chlorophenyl ester + Carbamic acid, methyl-, 2-chlorophenyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1936 + Carbaryl + Carbaryl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1937 + Carbazole + Carbazole + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1938 + Carbofuran + Carbofuran + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1939 + Carbon disulfide + Carbon disulfide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1940 + Carbophenothion + Carbophenothion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1941 + Carbophenothion-methyl + Carbophenothion-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1942 + Carboxin + Carboxin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1943 + Chloramben + Chloramben + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1944 + Chloramben-methyl + Chloramben-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1945 + Chlordane (technical) + Chlordane, technical + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1945 + Chlordane, technical + Chlordane, technical + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1946 + Chlordane, technical, and/or chlordane metabolites + Chlordane, technical, and/or chlordane metabolites + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1947 + Chlordecone + Chlordecone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1948 + Chlorethoxyfos + Chlorethoxyfos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1949 + Chlorfenvinphos + Chlorfenvinphos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1950 + Chlorimuron-ethyl + Chlorimuron-ethyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1951 + Chlorinated phenoxy acid group + Chlorinated phenoxy acid group + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1952 + Chlorobenzilate + Chlorobenzilate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1953 + Chloroneb + Chloroneb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1954 + Chloropicrin + Chloropicrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1955 + Chlorothalonil + Chlorothalonil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1956 + Chlorotoluron + Chlorotoluron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1957 + Chloroxuron + Chloroxuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1958 + Chlorpropham + Chlorpropham + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1959 + Chlorpyrifos + Chlorpyrifos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1960 + Chlorpyrifos-methyl + Chlorpyrifos-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1961 + Chlorsulfuron + Chlorsulfuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1962 + Chlorthal-dimethyl + Chlorthal-dimethyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1963 + Chlorthion + Chlorthion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1964 + Cinerin I + Cinerin I + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1965 + cis-1,3-Dichloropropene + cis-1,3-Dichloropropene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1966 + cis-Chlordane + cis-Chlordane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1967 + cis-Nonachlor + cis-Nonachlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1968 + Clomazone + Clomazone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1969 + Clopyralid + Clopyralid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1970 + Coumaphos + Coumaphos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1971 + Cyanazine + Cyanazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1972 + Cybutryne + Cybutryne + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1973 + Cycloate + Cycloate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1974 + Cyclohexanamine, N-ethyl- + Cyclohexanamine, N-ethyl- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1975 + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl- + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1976 + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1977 + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester, (1R,3R)-rel- + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester, (1R,3R)-rel- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1978 + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester, (1R,3S)-rel- + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester, (1R,3S)-rel- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1979 + Cyfluthrin + Cyfluthrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1980 + Cypermethrin + Cypermethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1981 + Cyprazine + Cyprazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1982 + Dalapon + Dalapon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1983 + Deltamethrin + Deltamethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1984 + Demeton + Demeton + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1985 + Demeton-O + Demeton-O + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1986 + Demeton-S + Demeton-S + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1987 + Desmedipham + Desmedipham + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1988 + Diallate + Diallate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1989 + Diazinon + Diazinon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1990 + Dicamba + Dicamba + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1991 + Dichlobenil + Dichlobenil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1992 + Dichlofenthion + Dichlofenthion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1993 + Dichlorprop + Dichlorprop + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1994 + Dichlorvos + Dichlorvos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1995 + Diclofop methyl + Diclofop methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1996 + Dicofol + Dicofol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1997 + Dicrotophos + Dicrotophos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1998 + Dieldrin + Dieldrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1999 + Diethatyl ethyl + Diethatyl ethyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1999 + Diethatyl-ethyl + Diethatyl ethyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2000 + Diflubenzuron + Diflubenzuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2001 + Dimethenamid + Dimethenamid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2002 + Dimethoate + Dimethoate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2003 + (E)-Dimethomorph + Dimethomorph + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2003 + (Z)-Dimethomorph + Dimethomorph + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2003 + Dimethomorph + Dimethomorph + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2004 + Dinex + Dinex + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2005 + Dinoseb + Dinoseb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2006 + Dioxacarb + Dioxacarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2007 + Dioxathion + Dioxathion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2008 + Diphenamid + Diphenamid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2009 + Diphenylamine + Diphenylamine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2010 + Diquat + Diquat + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2011 + Disulfoton + Disulfoton + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2012 + Disulfoton sulfone + Disulfoton sulfone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2013 + Diuron + Diuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2014 + Endosulfan + Endosulfan + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2015 + Endosulfan sulfate + Endosulfan sulfate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2016 + Endothall + Endothall + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2017 + Endrin + Endrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2018 + Endrin aldehyde + Endrin aldehyde + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2019 + Endrin ketone + Endrin ketone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2020 + Esfenvalerate + Esfenvalerate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2021 + Ethalfluralin + Ethalfluralin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2022 + Ethanimidothioic acid, N-hydroxy-, methyl ester + Ethanimidothioic acid, N-hydroxy-, methyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2023 + Ethene, 1,2-dibromo- + Ethene, 1,2-dibromo- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2024 + Ethion + Ethion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2025 + Ethion monooxon + Ethion monooxon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2026 + Ethoprop + Ethoprop + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2027 + Ethylan + Ethylan + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2028 + Ethylene dibromide + Ethylene dibromide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2029 + Ethylene thiourea + Ethylene thiourea + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2030 + Etridiazole + Etridiazole + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2031 + Etrimfos + Etrimfos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2032 + Famphur + Famphur + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2033 + Fenamiphos + Fenamiphos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2034 + Fenarimol + Fenarimol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2035 + Fenitrothion + Fenitrothion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2036 + Fenpropathrin + Fenpropathrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2037 + Fensulfothion + Fensulfothion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2038 + Fenthion + Fenthion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2039 + Fenuron + Fenuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2040 + Fipronil + Fipronil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2041 + Fluchloralin + Fluchloralin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2042 + Flufenacet + Flufenacet + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2043 + Flumetralin + Flumetralin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2044 + Flumetsulam + Flumetsulam + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2045 + Fluometuron + Fluometuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2046 + Fluridone + Fluridone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2047 + Fonofos + Fonofos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2048 + Formetanate hydrochloride + Formetanate hydrochloride + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2049 + Glyphosate + Glyphosate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2050 + Halofenozide + Halofenozide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2051 + Halosulfuron-methyl + Halosulfuron-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2052 + Heptachlor + Heptachlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2053 + Heptachlor epoxide + Heptachlor epoxide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2054 + Hexachlorobenzene + Hexachlorobenzene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2055 + Hexachlorodibenzo-p-dioxin + Hexachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2055 + Hexachlorodibenzo-p-dioxins (all isomers) + Hexachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2056 + Hexazinone + Hexazinone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2057 + Imazapyr + Imazapyr + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2058 + Imazaquin + Imazaquin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2059 + Imazethapyr + Imazethapyr + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2060 + Imidacloprid + Imidacloprid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2061 + Ioxynil + Ioxynil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2062 + Iprodione + Iprodione + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2063 + Isodrin + Isodrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2064 + Isofenphos + Isofenphos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2065 + Isoprocarb + Isoprocarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2066 + Isoxaflutole + Isoxaflutole + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2067 + Leptophos + Leptophos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2068 + Lindane + Lindane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2069 + Linuron + Linuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2070 + m-(Trifluoromethyl)aniline + m-(Trifluoromethyl)aniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2071 + Malaoxon + Malaoxon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2072 + Malathion + Malathion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2073 + Mancozeb + Mancozeb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2074 + Maneb + Maneb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2075 + MCPA + MCPA + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2076 + MCPB + MCPB + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2077 + Mecoprop + Mecoprop + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2078 + Merphos + Merphos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2079 + Metalaxyl + Metalaxyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2080 + Methamidophos + Methamidophos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2081 + Methanone, bis(4-chlorophenyl)- + Methanone, bis(4-chlorophenyl)- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2082 + Methidathion + Methidathion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2083 + Methiocarb + Methiocarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2084 + Methomyl + Methomyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2085 + Methoprene + Methoprene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2086 + Methoxychlor + Methoxychlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2086 + o,p'-Methoxychlor + Methoxychlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2086 + p,p'-Methoxychlor + Methoxychlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2087 + Methyl bromide + Methyl bromide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2088 + Methyl iodide + Methyl iodide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2089 + Methyl paraoxon + Methyl paraoxon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2090 + Methyl parathion + Methyl parathion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2091 + Metolachlor + Metolachlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2092 + Metolcarb + Metolcarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2093 + Metribuzin + Metribuzin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2094 + Metsulfuron-methyl + Metsulfuron-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2095 + Mevinphos + Mevinphos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2096 + Mexacarbate + Mexacarbate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2097 + Mirex + Mirex + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2098 + Mobam + Mobam + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2099 + Molinate + Molinate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2100 + Monocrotophos + Monocrotophos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2101 + Monolinuron + Monolinuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2102 + Monosodium methanearsonate + Monosodium methanearsonate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2103 + Monuron + Monuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2104 + Myclobutanil + Myclobutanil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2105 + N,N-Diethyl-m-toluamide + N,N-Diethyl-m-toluamide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2106 + N-2-Ethylhexylbicycloheptenedicarboximide + N-2-Ethylhexylbicycloheptenedicarboximide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2107 + Naled + Naled + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2108 + Napropamide + Napropamide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2109 + Neburon + Neburon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2110 + Nicosulfuron + Nicosulfuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2111 + Nitrapyrin + Nitrapyrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2112 + Norflurazon + Norflurazon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2113 + O,O,O-Triethyl phosphorothioate + O,O,O-Triethyl phosphorothioate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2114 + o,p'-DDD + o,p'-DDD + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2115 + o,p'-DDE + o,p'-DDE + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2116 + o,p'-DDT + o,p'-DDT + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2117 + o-Cresol + o-Cresol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2118 + O-Ethyl O-(p-nitrophenyl) phenylphosphonothioate + O-Ethyl O-(p-nitrophenyl) phenylphosphonothioate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2119 + Omethoate + Omethoate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2120 + Oryzalin + Oryzalin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2121 + Oxadiazon + Oxadiazon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2122 + Oxamyl + Oxamyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2123 + Oxychlordane + Oxychlordane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2124 + Oxydisulfoton + Oxydisulfoton + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2125 + Oxyfluorfen + Oxyfluorfen + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2126 + p,p'-DDD + p,p'-DDD + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2127 + p,p'-DDE + p,p'-DDE + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2128 + p,p'-DDT + p,p'-DDT + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2129 + Paraoxon + Paraoxon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2130 + Paraquat + Paraquat + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2131 + Parathion + Parathion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2132 + 4-Chloroaniline + p-Chloroaniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2132 + p-Chloroaniline + p-Chloroaniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2133 + p-Chloro-m-cresol + p-Chloro-m-cresol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2134 + p-Cresol + p-Cresol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2135 + 1,4-Dichlorobenzene + p-Dichlorobenzene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2135 + p-Dichlorobenzene + p-Dichlorobenzene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2136 + Pebulate + Pebulate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2137 + Pendimethalin + Pendimethalin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2138 + Pentachlorobenzene + Pentachlorobenzene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2139 + Pentachloronitrobenzene + Pentachloronitrobenzene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2140 + Pentachlorophenol + Pentachlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2141 + Permethrin + Permethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2142 + Phenmedipham + Phenmedipham + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2143 + Phenol, 2-(1-methylpropyl)-, methylcarbamate + Phenol, 2-(1-methylpropyl)-, methylcarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2144 + Phenol, 2,6-bis(1,1-dimethylethyl)-4-methyl-, methylcarbamate + Phenol, 2,6-bis(1,1-dimethylethyl)-4-methyl-, methylcarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2145 + Phenol, 2-[(ethylthio)methyl]-, methylcarbamate + Phenol, 2-[(ethylthio)methyl]-, methylcarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2146 + Phenol, 3,4-dimethyl-, methylcarbamate + Phenol, 3,4-dimethyl-, methylcarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2147 + Phenol, 3,5-bis(1,1-dimethylethyl)-, methylcarbamate + Phenol, 3,5-bis(1,1-dimethylethyl)-, methylcarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2148 + Phenol, 3,5-dimethyl-4-(methylsulfinyl)-, methylcarbamate + Phenol, 3,5-dimethyl-4-(methylsulfinyl)-, methylcarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2149 + Phenol, 3,5-dimethyl-4-(methylsulfonyl)-, methylcarbamate + Phenol, 3,5-dimethyl-4-(methylsulfonyl)-, methylcarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2150 + Phenothrin + Phenothrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2151 + Phorate + Phorate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2152 + Phorate sulfone + Phorate sulfone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2153 + Phorate sulfoxide + Phorate sulfoxide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2154 + Phosmet + Phosmet + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2155 + Phosmetoxon + Phosmetoxon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2156 + Phosphamidon + Phosphamidon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2157 + Phosphoric acid, (1Z)-2-chloro-1-(2,4,5-trichlorophenyl)ethenyl dimethyl ester + Phosphoric acid, (1Z)-2-chloro-1-(2,4,5-trichlorophenyl)ethenyl dimethyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2158 + Phosphoric acid, diethyl 6-methyl-2-(1-methylethyl)-4-pyrimidinyl ester + Phosphoric acid, diethyl 6-methyl-2-(1-methylethyl)-4-pyrimidinyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2159 + Phosphorothioic acid, O,O'-(sulfinyldi-4,1-phenylene) O,O,O',O'-tetramethyl ester + Phosphorothioic acid, O,O'-(sulfinyldi-4,1-phenylene) O,O,O',O'-tetramethyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2160 + Phosphorothioic acid, O-ethyl O-methyl S-propyl ester + Phosphorothioic acid, O-ethyl O-methyl S-propyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2161 + Phosphorothioic acid, O-ethyl S-propyl ester + Phosphorothioic acid, O-ethyl S-propyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2162 + Phostebupirim + Phostebupirim + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2163 + Picloram + Picloram + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2164 + Piperonyl butoxide + Piperonyl butoxide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2165 + 4-Nitrophenol + p-Nitrophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2165 + p-Nitrophenol + p-Nitrophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2166 + Primisulfuron-methyl + Primisulfuron-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2167 + Profenofos + Profenofos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2168 + Profluralin + Profluralin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2169 + Promecarb + Promecarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2170 + Prometon + Prometon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2171 + Prometryn + Prometryn + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2172 + Pronamide + Pronamide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2173 + Propachlor + Propachlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2174 + Propanal, 2-methyl-2-(methylthio)-, oxime + Propanal, 2-methyl-2-(methylthio)-, oxime + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2175 + Propanil + Propanil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2176 + Propargite + Propargite + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2177 + Propazine + Propazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2178 + Propetamphos + Propetamphos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2179 + Propham + Propham + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2180 + Propiconazole + Propiconazole + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2181 + Propionic acid + Propionic acid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2182 + Propoxur + Propoxur + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2183 + Prosulfuron + Prosulfuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2184 + Prothiofos + Prothiofos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2185 + Pyrazon + Pyrazon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2186 + Pyrethrins + Pyrethrins + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2187 + Resmethrin + Resmethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2188 + Ronnel + Ronnel + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2189 + Secbumeton + Secbumeton + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2190 + S-Ethyl dipropylthiocarbamate + S-Ethyl dipropylthiocarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2191 + Siduron + Siduron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2192 + Silvex + Silvex + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2193 + Simazine + Simazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2194 + Simetone + Simetone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2195 + Simetryn + Simetryn + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2196 + Sodium methyldithiocarbamate + Sodium methyldithiocarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2197 + Sulfometuron methyl + Sulfometuron methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2198 + Sulfotep + Sulfotep + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2199 + Sulprofos + Sulprofos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2200 + Swep + Swep + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2201 + Tau-fluvalinate + Tau-fluvalinate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2202 + Tebuconazole + Tebuconazole + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2203 + Tebuthiuron + Tebuthiuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2204 + Tefluthrin + Tefluthrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2205 + Temephos + Temephos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2206 + Terbacil + Terbacil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2207 + Terbufos + Terbufos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2208 + Terbufos sulfone + Terbufos sulfone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2209 + Terbufos sulfoxide + Terbufos sulfoxide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2210 + Terbuthylazine + Terbuthylazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2211 + Terbutryn + Terbutryn + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2212 + Tetradifon + Tetradifon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2213 + Tetraethyl pyrophosphate + Tetraethyl pyrophosphate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2214 + Tetrapropyl dithiopyrophosphate + Tetrapropyl dithiopyrophosphate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2215 + Thiabendazole + Thiabendazole + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2216 + Thiacloprid + Thiacloprid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2217 + Thiazopyr + Thiazopyr + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2218 + Thidiazuron + Thidiazuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2219 + Thifensulfuron-methyl + Thifensulfuron-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2220 + Thiobencarb + Thiobencarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2221 + Thiodicarb + Thiodicarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2222 + Thiofanox + Thiofanox + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2223 + Thionazin + Thionazin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2224 + Thiophanate-methyl + Thiophanate-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2225 + Toxaphene + Toxaphene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2226 + Tralomethrin + Tralomethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2227 + trans-1,3-Dichloropropene + trans-1,3-Dichloropropene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2228 + trans-Chlordane + trans-Chlordane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2229 + trans-Nonachlor + trans-Nonachlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2230 + Transpermethrin + Transpermethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2230 + trans-Permethrin + Transpermethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2231 + Triadimefon + Triadimefon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2232 + Triallate + Triallate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2233 + Triasulfuron + Triasulfuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2234 + Triazine screen + Triazines mixture, unspecified + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2234 + Triazines mixture, unspecified + Triazines mixture, unspecified + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2235 + Tribenuron-methyl + Tribenuron-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2236 + Tribufos + Tribufos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2237 + Trichloronate + Trichloronate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2238 + Trichlorophenol + Trichlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2238 + Trichlorophenols (all isomers) + Trichlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2239 + Triclopyr + Triclopyr + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2240 + Tricyclazole + Tricyclazole + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2241 + Trifluralin + Trifluralin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2242 + Triflusulfuron-methyl + Triflusulfuron-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2243 + Trimethacarb + Trimethacarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2244 + 4-Chlorophenylurea + Urea, (4-chlorophenyl)- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2244 + Urea, (4-chlorophenyl)- + Urea, (4-chlorophenyl)- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2245 + 3-(Trifluoromethyl)phenylurea + Urea, [3-(trifluoromethyl)phenyl]- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2245 + Urea, [3-(trifluoromethyl)phenyl]- + Urea, [3-(trifluoromethyl)phenyl]- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2246 + Urea, N-[5-(ethylsulfonyl)-1,3,4-thiadiazol-2-yl]-N,N'-dimethyl- + Urea, N-[5-(ethylsulfonyl)-1,3,4-thiadiazol-2-yl]-N,N'-dimethyl- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2247 + Phenylurea + Urea, phenyl- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2247 + Urea, phenyl- + Urea, phenyl- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2248 + Vernolate + Vernolate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2249 + Ziram + Ziram + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2424 + Chem O2 demand + Chemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2424 + Chemical oxygen demand + Chemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2425 + Biochemical oxygen demand + Biochemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2425 + Ultimate biochemical oxygen demand + Biochemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2426 + Carbonaceous biochemical oxygen demand + Carbonaceous biochemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2426 + Ultimate carbonaceous biochemical oxygen demand + Carbonaceous biochemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2427 + Nitrogenous biochemical oxygen demand + Nitrogenous biochemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2427 + Ultimate nitrogenous biochemical oxygen demand + Nitrogenous biochemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2429 + Actinium-228 + Actinium-228 + Hydrosphere/Chemical/Radiochemical / + + + 2430 + Alpha emitting radium isotopes + Alpha emitting radium isotopes + Hydrosphere/Chemical/Radiochemical / + + + 2430 + Alpha-emitting isotopes of radium + Alpha emitting radium isotopes + Hydrosphere/Chemical/Radiochemical / + + + 2431 + Alpha radiation + Alpha radiation + Hydrosphere/Chemical/Radiochemical / + + + 2431 + Alpha radioactivity + Alpha radiation + Hydrosphere/Chemical/Radiochemical / + + + 2432 + Americium-241 + Americium-241 + Hydrosphere/Chemical/Radiochemical / + + + 2433 + Antimony-124 + Antimony-124 + Hydrosphere/Chemical/Radiochemical / + + + 2434 + Antimony-125 + Antimony-125 + Hydrosphere/Chemical/Radiochemical / + + + 2435 + Barium-140 + Barium-140 + Hydrosphere/Chemical/Radiochemical / + + + 2436 + Beryllium-7 + Beryllium-7 + Hydrosphere/Chemical/Radiochemical / + + + 2437 + Beta radiation + Beta radiation + Hydrosphere/Chemical/Radiochemical / + + + 2437 + Beta radioactivity + Beta radiation + Hydrosphere/Chemical/Radiochemical / + + + 2437 + Gross beta radioactivity + Beta radiation + Hydrosphere/Chemical/Radiochemical / + + + 2438 + Bismuth-212 + Bismuth-212 + Hydrosphere/Chemical/Radiochemical / + + + 2439 + Bismuth-214 + Bismuth-214 + Hydrosphere/Chemical/Radiochemical / + + + 2440 + Calcium-45 + Calcium-45 + Hydrosphere/Chemical/Radiochemical / + + + 2441 + Carbon-14 + Carbon-14 + Hydrosphere/Chemical/Radiochemical / + + + 2442 + Cerium-141 + Cerium-141 + Hydrosphere/Chemical/Radiochemical / + + + 2443 + Cerium-144 + Cerium-144 + Hydrosphere/Chemical/Radiochemical / + + + 2444 + Cesium-134 + Cesium-134 + Hydrosphere/Chemical/Radiochemical / + + + 2445 + Cesium-137 + Cesium-137 + Hydrosphere/Chemical/Radiochemical / + + + 2446 + Chlorine-36 + Chlorine-36 + Hydrosphere/Chemical/Radiochemical / + + + 2447 + Chromium-51 + Chromium-51 + Hydrosphere/Chemical/Radiochemical / + + + 2448 + Cobalt-57 + Cobalt-57 + Hydrosphere/Chemical/Radiochemical / + + + 2449 + Cobalt-58 + Cobalt-58 + Hydrosphere/Chemical/Radiochemical / + + + 2450 + Cobalt-60 + Cobalt-60 + Hydrosphere/Chemical/Radiochemical / + + + 2451 + Curium-242 + Curium-242 + Hydrosphere/Chemical/Radiochemical / + + + 2452 + Curium-244 + Curium-244 + Hydrosphere/Chemical/Radiochemical / + + + 2453 + Europium-152 + Europium-152 + Hydrosphere/Chemical/Radiochemical / + + + 2454 + Europium-155 + Europium-155 + Hydrosphere/Chemical/Radiochemical / + + + 2455 + Gamma radiation + Gamma radiation + Hydrosphere/Chemical/Radiochemical / + + + 2455 + Gamma radioactivity scan + Gamma radiation + Hydrosphere/Chemical/Radiochemical / + + + 2455 + Gross gamma radioactivity + Gamma radiation + Hydrosphere/Chemical/Radiochemical / + + + 2456 + Hafnium-175 + Hafnium-175 + Hydrosphere/Chemical/Radiochemical / + + + 2457 + Hafnium-181 + Hafnium-181 + Hydrosphere/Chemical/Radiochemical / + + + 2458 + Iodine-129 + Iodine-129 + Hydrosphere/Chemical/Radiochemical / + + + 2459 + Iodine-131 + Iodine-131 + Hydrosphere/Chemical/Radiochemical / + + + 2460 + Iodine-133 + Iodine-133 + Hydrosphere/Chemical/Radiochemical / + + + 2461 + Iron-59 + Iron-59 + Hydrosphere/Chemical/Radiochemical / + + + 2462 + Lanthanum-140 + Lanthanum-140 + Hydrosphere/Chemical/Radiochemical / + + + 2463 + Lead-210 + Lead-210 + Hydrosphere/Chemical/Radiochemical / + + + 2464 + Lead-212 + Lead-212 + Hydrosphere/Chemical/Radiochemical / + + + 2465 + Lead-214 + Lead-214 + Hydrosphere/Chemical/Radiochemical / + + + 2466 + Manganese-54 + Manganese-54 + Hydrosphere/Chemical/Radiochemical / + + + 2467 + Molybdenum-99 + Molybdenum-99 + Hydrosphere/Chemical/Radiochemical / + + + 2468 + Neodymium-147 + Neodymium-147 + Hydrosphere/Chemical/Radiochemical / + + + 2469 + Neptunium-239 + Neptunium-239 + Hydrosphere/Chemical/Radiochemical / + + + 2470 + Nickel-63 + Nickel-63 + Hydrosphere/Chemical/Radiochemical / + + + 2471 + Niobium-95 + Niobium-95 + Hydrosphere/Chemical/Radiochemical / + + + 2472 + Plutonium-238 + Plutonium-238 + Hydrosphere/Chemical/Radiochemical / + + + 2473 + Plutonium-239 + Plutonium-239 + Hydrosphere/Chemical/Radiochemical / + + + 2474 + Plutonium-239 and Plutonium-240 combined + Plutonium-239 and Plutonium-240 combined + Hydrosphere/Chemical/Radiochemical / + + + 2474 + Plutonium-239 plus plutonium-240 + Plutonium-239 and Plutonium-240 combined + Hydrosphere/Chemical/Radiochemical / + + + 2475 + Plutonium-241 + Plutonium-241 + Hydrosphere/Chemical/Radiochemical / + + + 2476 + Polonium-210 + Polonium-210 + Hydrosphere/Chemical/Radiochemical / + + + 2477 + Potassium-40 + Potassium-40 + Hydrosphere/Chemical/Radiochemical / + + + 2478 + Radium-224 + Radium-224 + Hydrosphere/Chemical/Radiochemical / + + + 2479 + Radium-226 + Radium-226 + Hydrosphere/Chemical/Radiochemical / + + + 2480 + Radium-228 + Radium-228 + Hydrosphere/Chemical/Radiochemical / + + + 2481 + Radon-222 + Radon-222 + Hydrosphere/Chemical/Radiochemical / + + + 2482 + Ruthenium-103 + Ruthenium-103 + Hydrosphere/Chemical/Radiochemical / + + + 2483 + Ruthenium-106 + Ruthenium-106 + Hydrosphere/Chemical/Radiochemical / + + + 2484 + Scandium-46 + Scandium-46 + Hydrosphere/Chemical/Radiochemical / + + + 2485 + Selenium-75 + Selenium-75 + Hydrosphere/Chemical/Radiochemical / + + + 2486 + Silver-108 + Silver-108 + Hydrosphere/Chemical/Radiochemical / + + + 2487 + Silver-110 + Silver-110 + Hydrosphere/Chemical/Radiochemical / + + + 2488 + Sodium-24 + Sodium-24 + Hydrosphere/Chemical/Radiochemical / + + + 2489 + Strontium Radionuclides + Strontium Radionuclides + Hydrosphere/Chemical/Radiochemical / + + + 2490 + Strontium-89 + Strontium-89 + Hydrosphere/Chemical/Radiochemical / + + + 2491 + Strontium-90 + Strontium-90 + Hydrosphere/Chemical/Radiochemical / + + + 2492 + Strontium-91 + Strontium-91 + Hydrosphere/Chemical/Radiochemical / + + + 2493 + Sulfur-35 + Sulfur-35 + Hydrosphere/Chemical/Radiochemical / + + + 2494 + Technetium-99 + Technetium-99 + Hydrosphere/Chemical/Radiochemical / + + + 2494 + Technetium-99 (metastable) + Technetium-99 + Hydrosphere/Chemical/Radiochemical / + + + 2495 + Tellurium-132 + Tellurium-132 + Hydrosphere/Chemical/Radiochemical / + + + 2496 + Thallium-208 + Thallium-208 + Hydrosphere/Chemical/Radiochemical / + + + 2497 + Thorium-228 + Thorium-228 + Hydrosphere/Chemical/Radiochemical / + + + 2498 + Thorium-230 + Thorium-230 + Hydrosphere/Chemical/Radiochemical / + + + 2499 + Thorium-232 + Thorium-232 + Hydrosphere/Chemical/Radiochemical / + + + 2500 + Tritium + Tritium + Hydrosphere/Chemical/Radiochemical / + + + 2501 + Uranium 238/234 ratio + Uranium 238/234 ratio + Hydrosphere/Chemical/Radiochemical / + + + 2501 + Uranium-238/Uranium-234 ratio + Uranium 238/234 ratio + Hydrosphere/Chemical/Radiochemical / + + + 2502 + Uranium-234 + Uranium-234 + Hydrosphere/Chemical/Radiochemical / + + + 2503 + Uranium-234 and/or uranium-235 and/or uranium-238 + Uranium-234 and/or uranium-235 and/or uranium-238 + Hydrosphere/Chemical/Radiochemical / + + + 2504 + Uranium-235 + Uranium-235 + Hydrosphere/Chemical/Radiochemical / + + + 2505 + Uranium-238 + Uranium-238 + Hydrosphere/Chemical/Radiochemical / + + + 2506 + Xenon-135 + Xenon-135 + Hydrosphere/Chemical/Radiochemical / + + + 2507 + Yttrium-91 + Yttrium-91 + Hydrosphere/Chemical/Radiochemical / + + + 2507 + Yttrium-91 (metastable) + Yttrium-91 + Hydrosphere/Chemical/Radiochemical / + + + 2508 + Zinc-65 + Zinc-65 + Hydrosphere/Chemical/Radiochemical / + + + 2509 + Zirconium, niobium-95 + Zirconium/Niobium-95 + Hydrosphere/Chemical/Radiochemical / + + + 2509 + Zirconium/Niobium-95 + Zirconium/Niobium-95 + Hydrosphere/Chemical/Radiochemical / + + + 2510 + Zirconium-95 + Zirconium-95 + Hydrosphere/Chemical/Radiochemical / + + + 5002 + Carbon-13 + Carbon-13 + Hydrosphere/Chemical/Stable Isotopes/ + + + 5003 + Deuterium + Deuterium + Hydrosphere/Chemical/Stable Isotopes/ + + + 5004 + Lithium-7 + Lithium-7 + Hydrosphere/Chemical/Stable Isotopes/ + + + 5005 + Nitrogen-15 + Nitrogen-15 + Hydrosphere/Chemical/Stable Isotopes/ + + + 5006 + Oxygen-18 + Oxygen-18 + Hydrosphere/Chemical/Stable Isotopes/ + + + 5007 + Sulfur-34 + Sulfur-34 + Hydrosphere/Chemical/Stable Isotopes/ + + + 40 + Temperature + Temperature + Hydrosphere/Physical/ + + + 84 + Volume + Volume + Hydrosphere/Physical/ + + + 122 + Length + Length + Hydrosphere/Physical/ + + + 130 + Water content + Water content + Hydrosphere/Physical/ + + + 139 + Energy + Energy + Hydrosphere/Physical/ + + + 23 + Area + Area + Hydrosphere/Physical/ + + + 36 + Density + Density + Hydrosphere/Physical/ + + + 52 + Pressure + Pressure + Hydrosphere/Physical/ + + + 61 + Flux + Flux + Hydrosphere/Physical/ + + + + + Level + Hydrosphere/Physical/ + + + 28 + Velocity + Velocity + Hydrosphere/Physical/ + + + 87 + Optical + Optical + Hydrosphere/Physical/ + + + 97 + Water + Water + Hydrosphere/Physical/ + + + 26 + Area, atmosphere + Area, atmosphere + Hydrosphere/Physical/Area/ + + + 24 + Area, ice + Area, ice + Hydrosphere/Physical/Area/ + + + 27 + Cloud cover + Cloud cover + Hydrosphere/Physical/Area/Area, atmosphere/ + + + 25 + Ice cover + Ice cover + Hydrosphere/Physical/Area/Area, ice/ + + + 127 + Ice cover, floating or solid + Ice cover, floating or solid + Hydrosphere/Physical/Area/Area, ice/ + + + 38 + Water, specific gravity + Water, specific gravity + Hydrosphere/Physical/Density/ + + + 39 + Density of water + Density of water + Hydrosphere/Physical/Density/ + + + 5032 + Air, water vapor density + Air, water vapor density + Hydrosphere/Physical/Density/ + + + 147 + Energy, flux + Energy, flux + Hydrosphere/Physical/Energy/ + + + 148 + Soil heat flux + Soil heat flux + Hydrosphere/Physical/Energy/Energy, flux/ + + + 149 + Sensible heat flux + Sensible heat flux + Hydrosphere/Physical/Energy/Energy, flux/ + + + 150 + Latent heat flux + Latent heat flux + Hydrosphere/Physical/Energy/Energy, flux/ + + + 151 + Outgoing photosynthetically-active radiation + Radiation, outgoing PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 151 + Radiation, outgoing PAR + Radiation, outgoing PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 141 + Radiation, reflected + Radiation, reflected + Hydrosphere/Physical/Energy/Energy, flux/ + + + 141 + Reflected solar radiation + Radiation, reflected + Hydrosphere/Physical/Energy/Energy, flux/ + + + 142 + Net radiation + Radiation, net + Hydrosphere/Physical/Energy/Energy, flux/ + + + 142 + Net solar radiation + Radiation, net + Hydrosphere/Physical/Energy/Energy, flux/ + + + 142 + Radiation, net + Radiation, net + Hydrosphere/Physical/Energy/Energy, flux/ + + + 143 + Incident solar radiation + Radiation, incident + Hydrosphere/Physical/Energy/Energy, flux/ + + + 143 + Radiation, incident + Radiation, incident + Hydrosphere/Physical/Energy/Energy, flux/ + + + 144 + Downward solar radiation + Radiation, downward + Hydrosphere/Physical/Energy/Energy, flux/ + + + 144 + Radiation, downward + Radiation, downward + Hydrosphere/Physical/Energy/Energy, flux/ + + + 144 + Solar irradiation, local + Radiation, downward + Hydrosphere/Physical/Energy/Energy, flux/ + + + 145 + Radiation, total shortwave + Radiation, total shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 145 + Total shortwave radiation + Radiation, total shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 146 + Incoming par + Radiation, incoming PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 146 + Incoming photosynthetically-active radiation + Radiation, incoming PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 146 + Light, photosynthetic active radiation (PAR) + Radiation, incoming PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 146 + Radiation, incoming PAR + Radiation, incoming PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5036 + Sunshine duration + Sunshine duration + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5009 + Incoming longwave radiation + Radiation, incoming longwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5009 + Radiation, incoming longwave + Radiation, incoming longwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5010 + Incoming shortwave radiation + Radiation, incoming shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5010 + Radiation, incoming shortwave + Radiation, incoming shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5011 + Incoming ultraviolet a radiation + Radiation, incoming UV-A + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5011 + Radiation, incoming UV-A + Radiation, incoming UV-A + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5012 + Incoming ultraviolet b radiation + Radiation, incoming UV-B + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5012 + Radiation, incoming UV-B + Radiation, incoming UV-B + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5013 + Net longwave radiation + Radiation, net longwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5013 + Radiation, net longwave + Radiation, net longwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5014 + Net photosynthetically-active radiation + Radiation, net PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5014 + Radiation, net PAR + Radiation, net PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5015 + Net shortwave radiation + Radiation, net shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5015 + Radiation, net shortwave + Radiation, net shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5016 + Outgoing longwave radiation + Radiation, outgoing longwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5016 + Radiation, outgoing longwave + Radiation, outgoing longwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5017 + Outgoing shortwave radiation + Radiation, outgoing shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5017 + Radiation, outgoing shortwave + Radiation, outgoing shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 82 + Flux, dissolved gas + Flux, dissolved gas + Hydrosphere/Physical/Flux/ + + + 62 + Flux, precipitation + Flux, precipitation + Hydrosphere/Physical/Flux/ + + + 66 + Flux, wind + Flux, wind + Hydrosphere/Physical/Flux/ + + + 71 + Flux, evaporation + Flux, evaporation + Hydrosphere/Physical/Flux/ + + + 76 + Flux, discharge + Flux, discharge + Hydrosphere/Physical/Flux/ + + + 77 + Discharge, groundwaterflow + Discharge, groundwaterflow + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 78 + Discharge, stream + Discharge, stream + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 78 + Streamflow + Discharge, stream + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 80 + Depth of flow in pipe or conduit + Discharge, in conduit + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 80 + Discharge, in conduit + Discharge, in conduit + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 80 + Discharge, per batch + Discharge, in conduit + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 80 + Flow, in conduit pipe or treatment plant + Discharge, in conduit + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 80 + Flow, per batch + Discharge, in conduit + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 81 + Storm water flow + Storm water flow + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 5031 + Discharge, well flow rate + Discharge, well flow rate + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 5023 + Discharge, unspecified + Discharge, unspecified + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 83 + Carbon dioxide + Carbon dioxide flux + Hydrosphere/Physical/Flux/Flux, dissolved gas/ + + + 83 + Carbon dioxide flux + Carbon dioxide flux + Hydrosphere/Physical/Flux/Flux, dissolved gas/ + + + 72 + Evaporation total + Evaporation, actual + Hydrosphere/Physical/Flux/Flux, evaporation/ + + + 72 + Evaporation, actual + Evaporation, actual + Hydrosphere/Physical/Flux/Flux, evaporation/ + + + 73 + Evaporation, potential + Evaporation, potential + Hydrosphere/Physical/Flux/Flux, evaporation/ + + + 74 + Evapotranspiration, actual + Evapotranspiration, actual + Hydrosphere/Physical/Flux/Flux, evaporation/ + + + 75 + Evapotranspiration, potential + Evapotranspiration, potential + Hydrosphere/Physical/Flux/Flux, evaporation/ + + + 5035 + Transpiration + Transpiration + Hydrosphere/Physical/Flux/Flux, evaporation/ + + + 63 + Dry days before precipitation event + Dry periods + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 63 + Dry period preceding precipitation + Dry periods + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 63 + Dry periods + Dry periods + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 64 + Precipitation duration + Precipitation duration + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 64 + Precipitation event duration + Precipitation duration + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 64 + Precipitation, duration of storm event + Precipitation duration + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 65 + Precipitation + Precipitation + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 65 + Precipitation amount + Precipitation + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 67 + Wind direction + Wind direction + Hydrosphere/Physical/Flux/Flux, wind/ + + + 68 + Wind gust direction + Wind gust direction + Hydrosphere/Physical/Flux/Flux, wind/ + + + 70 + Wind run + Wind run + Hydrosphere/Physical/Flux/Flux, wind/ + + + 124 + Stream width + Stream width + Hydrosphere/Physical/Length/ + + + 5033 + Visibility + Visibility + Hydrosphere/Physical/Length/ + + + 5028 + Distance + Distance + Hydrosphere/Physical/Length/ + + + 5022 + Unspecified + Unspecified + Hydrosphere/Physical/Level/ + + + 15 + Level, lake + Level, lake + Hydrosphere/Physical/Level/ + + + 19 + Depth of hole, below land surface datum + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Depth of well, below land surface datum + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Depth to bottom from water surface, at sampling location + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Depth to water level below land surface + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Depth to water level, below land surface datum (LSD) + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Depth, from ground surface to well water level + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Groundwater level + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Groundwater level other + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Water level groundwater + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Water level in well, depth from a reference point + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Water level, depth below measuring point + Groundwater level + Hydrosphere/Physical/Level/ + + + 20 + Level, ocean + Level, ocean + Hydrosphere/Physical/Level/ + + + 4 + Level, ice + Level, ice + Hydrosphere/Physical/Level/ + + + 6 + Level, snow + Level, snow + Hydrosphere/Physical/Level/ + + + 11 + Level, stream + Level, stream + Hydrosphere/Physical/Level/ + + + 5 + Ice thickness + Ice thickness + Hydrosphere/Physical/Level/Level, ice/ + + + 16 + Gage height, lake + Gage height, lake + Hydrosphere/Physical/Level/Level, lake/ + + + 17 + Wave height, lake + Wave height, lake + Hydrosphere/Physical/Level/Level, lake/ + + + 5021 + Depth of pond or reservoir + Water depth, lake + Hydrosphere/Physical/Level/Level, lake/ + + + 5021 + Maximum depth of lake + Water depth, lake + Hydrosphere/Physical/Level/Level, lake/ + + + 5021 + Mean depth of lake + Water depth, lake + Hydrosphere/Physical/Level/Level, lake/ + + + 5021 + Water depth, lake + Water depth, lake + Hydrosphere/Physical/Level/Level, lake/ + + + 5021 + Depth of lake + Water depth, lake + Hydrosphere/Physical/Level/Level, lake/ + + + 21 + Tide stage + Tide stage + Hydrosphere/Physical/Level/Level, ocean/ + + + 22 + Wave height, ocean + Wave height, ocean + Hydrosphere/Physical/Level/Level, ocean/ + + + 9 + Depth, snow cover + Snow depth + Hydrosphere/Physical/Level/Level, snow/ + + + 9 + Snow depth + Snow depth + Hydrosphere/Physical/Level/Level, snow/ + + + 12 + Gage height stream + Gage height, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 12 + Gage height, stream + Gage height, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 12 + Height, gage + Gage height, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 12 + Stage stream + Gage height, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 12 + Stream gage height + Gage height, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 12 + Stream stage + Gage height, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 13 + Mean depth of stream + Water depth, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 13 + Water depth, stream + Water depth, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 14 + Water depth, cross-sectional averaged + Water depth, cross-sectional averaged + Hydrosphere/Physical/Level/Level, stream/ + + + 88 + Optical, water + Optical, water + Hydrosphere/Physical/Optical/ + + + 89 + Light attenuation + Light attenuation + Hydrosphere/Physical/Optical/Optical, water/ + + + 93 + Refractivity + Refractivity + Hydrosphere/Physical/Optical/Optical, water/ + + + 94 + Secchi depth + Secchi depth + Hydrosphere/Physical/Optical/Optical, water/ + + + 95 + Absorbance + SUVA 254 + Hydrosphere/Physical/Optical/Optical, water/ + + + 95 + Specific UV absorbance at 254nm of hydrophilic acid fraction of DOC + SUVA 254 + Hydrosphere/Physical/Optical/Optical, water/ + + + 95 + Specific UV absorbance at 254nm of hydrophobic acid fraction of DOC + SUVA 254 + Hydrosphere/Physical/Optical/Optical, water/ + + + 95 + Specific UV absorbance at 254nm of transphilic organic acid fraction of DOC + SUVA 254 + Hydrosphere/Physical/Optical/Optical, water/ + + + 95 + SUVA 254 + SUVA 254 + Hydrosphere/Physical/Optical/Optical, water/ + + + 96 + Transparency, water, Secchi disc + Water transparency, Secchi disc + Hydrosphere/Physical/Optical/Optical, water/ + + + 96 + Water transparency, Secchi disc + Water transparency, Secchi disc + Hydrosphere/Physical/Optical/Optical, water/ + + + 90 + Light attenuation coefficient + Light attenuation coefficient + Hydrosphere/Physical/Optical/Optical, water/Light attenuation/ + + + 91 + Depth to 50 percent of surface light + Light attenuation, depth at 50% + Hydrosphere/Physical/Optical/Optical, water/Light attenuation/ + + + 91 + Depth to 50 percent surface light + Light attenuation, depth at 50% + Hydrosphere/Physical/Optical/Optical, water/Light attenuation/ + + + 91 + Light attenuation, depth at 50% + Light attenuation, depth at 50% + Hydrosphere/Physical/Optical/Optical, water/Light attenuation/ + + + 92 + Depth to 1 percent of surface light + Light attenuation, depth at 99% + Hydrosphere/Physical/Optical/Optical, water/Light attenuation/ + + + 92 + Light attenuation, depth at 99% + Light attenuation, depth at 99% + Hydrosphere/Physical/Optical/Optical, water/Light attenuation/ + + + 53 + Pressure, air + Pressure, air + Hydrosphere/Physical/Pressure/ + + + 57 + Pressure, water + Pressure, water + Hydrosphere/Physical/Pressure/ + + + 54 + Vapor pressure + Vapor pressure + Hydrosphere/Physical/Pressure/Pressure, air/ + + + 55 + Atmospheric pressure + Atmospheric pressure + Hydrosphere/Physical/Pressure/Pressure, air/ + + + 56 + Barometric pressure + Barometric pressure + Hydrosphere/Physical/Pressure/Pressure, air/ + + + 56 + Barometric pressure corrected + Barometric pressure + Hydrosphere/Physical/Pressure/Pressure, air/ + + + 56 + Barometric pressure uncorrected + Barometric pressure + Hydrosphere/Physical/Pressure/Pressure, air/ + + + 58 + Partial pressure, inert gases + Partial pressure, inert gases + Hydrosphere/Physical/Pressure/Pressure, water/ + + + 59 + Osmotic pressure + Osmotic pressure + Hydrosphere/Physical/Pressure/Pressure, water/ + + + 59 + Pressure, osmotic + Osmotic pressure + Hydrosphere/Physical/Pressure/Pressure, water/ + + + 60 + Partial pressure of dissolved gases + Partial pressure of dissolved gases + Hydrosphere/Physical/Pressure/Pressure, water/ + + + 60 + Total partial pressure of dissolved gases + Partial pressure of dissolved gases + Hydrosphere/Physical/Pressure/Pressure, water/ + + + 5030 + Wellhead pressure + Wellhead pressure + Hydrosphere/Physical/Pressure/Pressure, water/ + + + 5026 + Intragravel water temperature + Temperature, intragravel water + Hydrosphere/Physical/Temperature/ + + + 5026 + Temperature, intragravel water + Temperature, intragravel water + Hydrosphere/Physical/Temperature/ + + + 5027 + 1 meter below water surface temperature + Temperature, 1 meter below water surface + Hydrosphere/Physical/Temperature/ + + + 5027 + Temperature, 1 meter below water surface + Temperature, 1 meter below water surface + Hydrosphere/Physical/Temperature/ + + + 45 + Snow temperature + Temperature, snow + Hydrosphere/Physical/Temperature/ + + + 45 + Temperature, snow + Temperature, snow + Hydrosphere/Physical/Temperature/ + + + 47 + Soil temperature + Temperature, soil + Hydrosphere/Physical/Temperature/ + + + 47 + Temperature, soil + Temperature, soil + Hydrosphere/Physical/Temperature/ + + + 49 + Air temperature + Temperature, air + Hydrosphere/Physical/Temperature/ + + + 49 + Temperature, air + Temperature, air + Hydrosphere/Physical/Temperature/ + + + 51 + Temperature, water + Temperature, water + Hydrosphere/Physical/Temperature/ + + + 51 + Water temperature + Temperature, water + Hydrosphere/Physical/Temperature/ + + + 30 + Discharge velocity + Velocity, stream + Hydrosphere/Physical/Velocity/ + + + 30 + Stream velocity + Velocity, stream + Hydrosphere/Physical/Velocity/ + + + 30 + Velocity at point in stream + Velocity, stream + Hydrosphere/Physical/Velocity/ + + + 30 + Velocity, stream + Velocity, stream + Hydrosphere/Physical/Velocity/ + + + 32 + Velocity, groundwater + Velocity, groundwater + Hydrosphere/Physical/Velocity/ + + + 33 + Velocity, wind + Velocity, wind + Hydrosphere/Physical/Velocity/ + + + 34 + Sustained wind speed + Sustained wind speed + Hydrosphere/Physical/Velocity/Velocity, wind/ + + + 35 + Wind gust + Wind gust + Hydrosphere/Physical/Velocity/Velocity, wind/ + + + 35 + Wind gust velocity absolute + Wind gust + Hydrosphere/Physical/Velocity/Velocity, wind/ + + + 35 + Wind velocity absolute + Wind gust + Hydrosphere/Physical/Velocity/Velocity, wind/ + + + 35 + Wind velocity ordin + Wind gust + Hydrosphere/Physical/Velocity/Velocity, wind/ + + + 85 + Volume, lake + Volume, lake + Hydrosphere/Physical/Volume/ + + + 86 + Reservoir storage + Reservoir storage + Hydrosphere/Physical/Volume/Volume, lake/ + + + 131 + Water content, air + Water content, air + Hydrosphere/Physical/Water content/ + + + 137 + Water content, soil + Water content, soil + Hydrosphere/Physical/Water content/ + + + 5024 + Water content, snow + Water content, snow + Hydrosphere/Physical/Water content/ + + + 132 + Humidity + Humidity + Hydrosphere/Physical/Water content/Water content, air/ + + + 133 + Relative humidity + Relative humidity + Hydrosphere/Physical/Water content/Water content, air/Humidity/ + + + 134 + Wet bulb temperature + Wet bulb temperature + Hydrosphere/Physical/Water content/Water content, air/Humidity/ + + + 135 + Dry bulb temperature + Dry bulb temperature + Hydrosphere/Physical/Water content/Water content, air/Humidity/ + + + 136 + Dew point temperature + Dew point temperature + Hydrosphere/Physical/Water content/Water content, air/Humidity/ + + + 5034 + Vapor pressure deficit + Vapor pressure deficit + Hydrosphere/Physical/Water content/Water content, air/Humidity/ + + + 10 + Snow water content + Snow water equivalent + Hydrosphere/Physical/Water content/Water content, snow/ + + + 10 + Snow water equivalent + Snow water equivalent + Hydrosphere/Physical/Water content/Water content, snow/ + + + 10 + Volumetric water content + Snow water equivalent + Hydrosphere/Physical/Water content/Water content, snow/ + + + 10 + Water content of snow + Snow water equivalent + Hydrosphere/Physical/Water content/Water content, snow/ + + + 138 + Moisture content + Soil Moisture + Hydrosphere/Physical/Water content/Water content, soil/ + + + 138 + Moisture soil + Soil Moisture + Hydrosphere/Physical/Water content/Water content, soil/ + + + 138 + Soil Moisture + Soil Moisture + Hydrosphere/Physical/Water content/Water content, soil/ + + + 108 + Water, dissolved solids + Water, dissolved solids + Hydrosphere/Physical/Water/ + + + 98 + Water, suspended solids + Water, suspended solids + Hydrosphere/Physical/Water/ + + + 111 + Water, descriptive + Water, descriptive + Hydrosphere/Physical/Water/ + + + 112 + Odor, atmospheric + Odor, atmospheric + Hydrosphere/Physical/Water/Water, descriptive/ + + + 113 + Gas bubble severity + Gas bubble severity + Hydrosphere/Physical/Water/Water, descriptive/ + + + 114 + Odor at 60 degrees Celsius, threshold odor number + Odor threshold number + Hydrosphere/Physical/Water/Water, descriptive/ + + + 114 + Odor at room temperature, threshold odor number + Odor threshold number + Hydrosphere/Physical/Water/Water, descriptive/ + + + 114 + Odor threshold number + Odor threshold number + Hydrosphere/Physical/Water/Water, descriptive/ + + + 115 + Trash, Debris, Floatables + Trash, Debris, Floatables + Hydrosphere/Physical/Water/Water, descriptive/ + + + 116 + Apparent color + Color + Hydrosphere/Physical/Water/Water, descriptive/ + + + 116 + Color + Color + Hydrosphere/Physical/Water/Water, descriptive/ + + + 117 + Severity + Severity + Hydrosphere/Physical/Water/Water, descriptive/ + + + 118 + Severity, turbidity + Severity, turbidity + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 119 + Detergent suds, severity + Severity, detergent + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 119 + Severity, detergent + Severity, detergent + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 120 + Floating debris, severity + Severity, floating debris + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 120 + Floating garbage, severity + Severity, floating debris + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 120 + Severity, floating debris + Severity, floating debris + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 120 + Severity, floating garbage + Severity, floating debris + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 121 + Floating sludge, severity + Severity, floating sludge + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 121 + Severity, floating sludge + Severity, floating sludge + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 129 + Severity, flow + Severity, flow + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 129 + Streamflow, severity + Severity, flow + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 110 + Solids, total dissolved + Solids, total dissolved + Hydrosphere/Physical/Water/Water, dissolved solids/ + + + 110 + Total dissolved solids + Solids, total dissolved + Hydrosphere/Physical/Water/Water, dissolved solids/ + + + 99 + Residue on evaporation, dried at 105 degrees Celsius + Residue, total filterable (dried at 105 C) + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 99 + Residue, total filterable (dried at 105 C) + Residue, total filterable (dried at 105 C) + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 99 + Residue, water, filtered + Residue, total filterable (dried at 105 C) + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 100 + Settleable solids + Settleable solids + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 100 + Solids, settleable + Settleable solids + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 101 + Solids, total + Solids, total + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 101 + Total solids + Solids, total + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 102 + Solids, total suspended + Solids, total suspended + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 102 + Total suspended solids + Solids, total suspended + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 103 + Solids, volatile suspended + Solids, volatile suspended + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 103 + Volatile suspended solids + Solids, volatile suspended + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 104 + Fixed suspended solids + Solids, fixed suspended + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 104 + Solids, fixed suspended + Solids, fixed suspended + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 105 + Turbidity + Turbidity + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 106 + Suspended sediment + Suspended sediment + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 107 + Surface area, suspended sediment + Surface area, suspended sediment + Hydrosphere/Physical/Water/Water, suspended solids/ + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/attribute_table.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/attribute_table.png new file mode 100644 index 00000000..783061e2 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/attribute_table.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/attribute_table_16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/attribute_table_16.png new file mode 100644 index 00000000..69d2ef7b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/attribute_table_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/current_view_16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/current_view_16.png new file mode 100644 index 00000000..6ab6f393 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/current_view_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/current_view_32.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/current_view_32.png new file mode 100644 index 00000000..9ea29b0a Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/current_view_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/data_sites.ico b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/data_sites.ico new file mode 100644 index 00000000..ff780dbf Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/data_sites.ico differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/data_sites.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/data_sites.png new file mode 100644 index 00000000..c61670e0 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/data_sites.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/deselect_16x16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/deselect_16x16.png new file mode 100644 index 00000000..8f9a2636 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/deselect_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/full_extent.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/full_extent.png new file mode 100644 index 00000000..0945a25c Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/full_extent.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/full_extent_16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/full_extent_16.png new file mode 100644 index 00000000..4373d2d9 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/full_extent_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/hand_16x16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/hand_16x16.png new file mode 100644 index 00000000..dc79299d Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/hand_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/keyword_16.ico b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/keyword_16.ico new file mode 100644 index 00000000..cb6c096e Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/keyword_16.ico differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/keyword_16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/keyword_16.png new file mode 100644 index 00000000..a30194b1 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/keyword_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/keyword_32.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/keyword_32.png new file mode 100644 index 00000000..da22eb05 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/keyword_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/more_info.ico b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/more_info.ico new file mode 100644 index 00000000..cdd323ac Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/more_info.ico differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/option_16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/option_16.png new file mode 100644 index 00000000..24900609 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/option_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/option_32.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/option_32.png new file mode 100644 index 00000000..7013d5a4 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/option_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/pan.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/pan.png new file mode 100644 index 00000000..cac42322 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/pan.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/pan_16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/pan_16.png new file mode 100644 index 00000000..687882a2 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/pan_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/search2_3.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/search2_3.png new file mode 100644 index 00000000..47e1b228 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/search2_3.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/search_32.ico b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/search_32.ico new file mode 100644 index 00000000..a01ec10b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/search_32.ico differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/search_32.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/search_32.png new file mode 100644 index 00000000..225cc0ec Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/search_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select.png new file mode 100644 index 00000000..9cd9c816 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_16.png new file mode 100644 index 00000000..31c4813b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_date_v1_16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_date_v1_16.png new file mode 100644 index 00000000..5e22f70e Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_date_v1_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_date_v1_32.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_date_v1_32.png new file mode 100644 index 00000000..141abcc5 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_date_v1_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_poly_16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_poly_16.png new file mode 100644 index 00000000..a6c84ed0 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_poly_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_poly_32.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_poly_32.png new file mode 100644 index 00000000..aefe8ec7 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_poly_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_table_16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_table_16.png new file mode 100644 index 00000000..a442ed2b Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_table_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_table_32.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_table_32.png new file mode 100644 index 00000000..5c25fadd Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/select_table_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/server_16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/server_16.png new file mode 100644 index 00000000..3bf1440e Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/server_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/server_32.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/server_32.png new file mode 100644 index 00000000..5c953dfc Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/server_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/view_extents_16_16x16.ico b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/view_extents_16_16x16.ico new file mode 100644 index 00000000..2a6655e8 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/view_extents_16_16x16.ico differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom.png new file mode 100644 index 00000000..8581239c Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_in.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_in.png new file mode 100644 index 00000000..a4543876 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_in.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_in_16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_in_16.png new file mode 100644 index 00000000..33b091d8 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_in_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_in_16x16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_in_16x16.png new file mode 100644 index 00000000..73924a77 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_in_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_out.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_out.png new file mode 100644 index 00000000..a127a413 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_out.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_out_16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_out_16.png new file mode 100644 index 00000000..39dec8d3 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_out_16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_out_16x16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_out_16x16.png new file mode 100644 index 00000000..ab862b79 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_out_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_selection_16x16.png b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_selection_16x16.png new file mode 100644 index 00000000..7097ccfd Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.Search/Resources/zoom_selection_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/SearchPlugin.cs b/Source/Plugins/HydroDesktop.Plugins.Search/SearchPlugin.cs new file mode 100644 index 00000000..a49e49fb --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/SearchPlugin.cs @@ -0,0 +1,1091 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.Composition; +using System.Diagnostics; +using System.Drawing; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using DotSpatial.Data; +using DotSpatial.Projections; +using HydroDesktop.Common; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.Interfaces.PluginContracts; +using HydroDesktop.WebServices; +using HydroDesktop.Plugins.Search.Area; +using HydroDesktop.Plugins.Search.Keywords; +using HydroDesktop.Plugins.Search.Properties; +using HydroDesktop.Plugins.Search.Searching; +using HydroDesktop.Plugins.Search.Searching.Exceptions; +using HydroDesktop.Plugins.Search.Settings; +using HydroDesktop.Plugins.Search.Settings.UI; +using Msg = HydroDesktop.Plugins.Search.MessageStrings; +using DotSpatial.Topology; +using DotSpatial.Symbology; +using Search3.Settings.UI; + +namespace HydroDesktop.Plugins.Search +{ + public class SearchPlugin : Extension, ISearchPlugin + { + #region Fields + + private SimpleActionItem rbServices; + private TextEntryActionItem rbStartDate; + private TextEntryActionItem rbEndDate; + + private SimpleActionItem _rbAddMoreKeywords; + private TextEntryActionItem _currentKeywords; + public DropDownActionItem _dropdownKeywords; + + private SimpleActionItem rbDrawBox; + private SimpleActionItem rbSelect; + private RectangleDrawing _rectangleDrawing; + private SimpleActionItem _currentView; + private bool _useCurrentView; + bool invalidWord = false; + private Searcher _searcher; + private AddSitesLayerDialog _addSitesLayerDialog; + public readonly SearchSettings _searchSettings = new SearchSettings(); + //private SearchStatusDisplay searchSummary; + + private readonly string _datesFormat = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern; + private readonly string _searchKey = SharedConstants.SearchRootkey; + private const string KEYWORDS_SEPARATOR = ";"; + private RootItem tabb = new RootItem(SharedConstants.SearchRootkey, Msg.Search) { SortOrder = -5 }; + + [Import("Shell")] + private ContainerControl Shell { get; set; } + + #endregion + + #region Plugin operations + + public override void Activate() + { + AddSearchRibbon(); + //searchSummary = new SearchStatusDisplay(App); + base.Activate(); + + App.SerializationManager.Serializing += SerializationManager_Serializing; + App.HeaderControl.RootItemSelected += HeaderControl_RootItemSelected; + App.Map.FunctionModeChanged += Map_FunctionModeChanged; + App.Map.SelectionChanged += Map_SelectionChanged; + } + + public override void Deactivate() + { + App.SerializationManager.Serializing -= SerializationManager_Serializing; + App.HeaderControl.RootItemSelected -= HeaderControl_RootItemSelected; + App.Map.FunctionModeChanged -= Map_FunctionModeChanged; + App.Map.SelectionChanged -= Map_SelectionChanged; + + App.HeaderControl.RemoveAll(); + base.Deactivate(); + } + + #endregion + + #region Private methods + + void SerializationManager_Serializing(object sender, SerializingEventArgs e) + { + // Note: quick fix of http://hydrodesktop.codeplex.com/workitem/8360 + // DS do not serialize DotSpatial.Data.FeatureSet. + + // Remove the "Area rectangle" layer + if (_rectangleDrawing != null) + { + _rectangleDrawing.Deactivate(); + } + } + + private void AddSearchRibbon() + { + var head = App.HeaderControl; + + //Search ribbon tab + //setting the sort order to small positive number to display it to the right of home tab + head.Add(tabb); + #region Area group + // Added as a temporary measure to prevent disabling and enabling of draw rectangle button when repeatedly clicked. If clicked once, it shouldn't be disabled after clicking the same button again. + SimpleActionItem dummy = new SimpleActionItem(_searchKey, "Dummy", rbDrawBox_Click) { GroupCaption = Msg.Area, ToggleGroupKey = Msg.Area, Visible = false }; + head.Add(dummy); + // Added as a temporary measure to prevent disabling and enabling of pan button when repeatedly clicked. If clicked once, it shouldn't be disabled after clicking the same button again. + // SimpleActionItem dummy2 = new SimpleActionItem(_searchKey, "Dummy", rbDrawBox_Click) { GroupCaption = Msg.Controls, ToggleGroupKey = Msg.Controls, Visible = false }; + // head.Add(dummy2); + + head.Add(_currentView = new SimpleActionItem(_searchKey, Msg.Current_View, CurrentView_Click) { GroupCaption = Msg.Area, ToggleGroupKey = Msg.Area, ToolTipText = Msg.Current_View_Tooltip, LargeImage = Resources.current_view_32, SmallImage = Resources.current_view_16 }); + _useCurrentView = true; + _currentView.Toggle(); + + + head.Add(new SimpleActionItem(HeaderControl.HomeRootItemKey, Msg.Select_By_Attribute, rbAttribute_Click) {GroupCaption = "Map Tool", LargeImage = Resources.select_table_32 }); + + head.Add(rbSelect = new SimpleActionItem(_searchKey, Msg.Select_Features, rbSelect_Click) { ToolTipText = Msg.Select_Features_Tooltip, LargeImage = Resources.select_poly_32, GroupCaption = Msg.Area, ToggleGroupKey = Msg.Area, }); + _searchSettings.AreaSettings.PolygonsChanged += AreaSettings_PolygonsChanged; + + head.Add(rbDrawBox = new SimpleActionItem(_searchKey, Msg.Draw_Rectangle, rbDrawBox_Click) { ToolTipText = Msg.Draw_Box_Tooltip, LargeImage = Resources.Draw_Box_32, SmallImage = Resources.Draw_Box_16, GroupCaption = Msg.Area, ToggleGroupKey = Msg.Area }); + _searchSettings.AreaSettings.AreaRectangleChanged += Instance_AreaRectangleChanged; + + // head.Add(new SimpleActionItem(_searchKey, Msg.Deselect_All, delegate { IEnvelope env; App.Map.MapFrame.ClearSelection(out env); }) { GroupCaption = Msg.Area, ToolTipText = Msg.Deselect_All_Tooltip, SmallImage = Resources.deselect_16x16 }); + //head.Add(new SimpleActionItem(_searchKey, Msg.Zoom_Selected, ZoomSelected_Click) { GroupCaption = Msg.Area, ToolTipText = Msg.Zoom_Selected_Tooltip, SmallImage = Resources.zoom_selection_16x16 }); + + + + // head.Add(new SimpleActionItem(_searchKey, Msg.Pan, delegate { App.Map.FunctionMode = FunctionMode.Pan; }) { GroupCaption = Msg.Controls, SmallImage = Resources.hand_16x16, ToggleGroupKey = Msg.Controls }); + // head.Add(new SimpleActionItem(_searchKey, Msg.Zoom_In, delegate { App.Map.FunctionMode = FunctionMode.ZoomIn; }) { GroupCaption = Msg.Controls, ToolTipText = Msg.Zoom_In_Tooltip, SmallImage = Resources.zoom_in_16x16, ToggleGroupKey = Msg.Controls }); + // head.Add(new SimpleActionItem(_searchKey, Msg.Zoom_Out, delegate { App.Map.FunctionMode = FunctionMode.ZoomOut; }) { GroupCaption = Msg.Controls, ToolTipText = Msg.Zoom_Out_Tooltip, SmallImage = Resources.zoom_out_16x16, ToggleGroupKey = Msg.Controls }); + + #endregion + + #region Keyword Group + + RecreateKeywordGroup(); + _searchSettings.KeywordsSettings.KeywordsChanged += delegate { RecreateKeywordGroup(); }; + + #endregion + + #region Dates group + + rbStartDate = new TextEntryActionItem { Caption = Msg.TimeRange_Start, GroupCaption = Msg.Time_Range, RootKey = _searchKey, Width = 70 }; + rbStartDate.PropertyChanged += rbStartDate_PropertyChanged; + head.Add(rbStartDate); + + rbEndDate = new TextEntryActionItem { Caption = Msg.TimeRange_End, GroupCaption = Msg.Time_Range, RootKey = _searchKey, Width = 70 }; + head.Add(rbEndDate); + rbEndDate.PropertyChanged += rbEndDate_PropertyChanged; + UpdateDatesCaption(); + + head.Add(new SimpleActionItem(_searchKey, Msg.Select_Dates, rbDate_Click) { GroupCaption = Msg.Time_Range, LargeImage = Resources.select_date_v1_32, SmallImage = Resources.select_date_v1_16 }); + + #endregion + + #region Data Sources + + var grpDataSources = SharedConstants.SearchDataSourcesGroupName; + rbServices = new SimpleActionItem(Msg.Select_Data_Sources, rbServices_Click); + ChangeWebServicesIcon(); + rbServices.ToolTipText = Msg.Select_Data_Sources_Tooltip; + rbServices.GroupCaption = grpDataSources; + rbServices.RootKey = _searchKey; + head.Add(rbServices); + head.Add(new SimpleActionItem(_searchKey, Msg.Add_Sites, addDataSites_Click) { GroupCaption = grpDataSources, LargeImage = Resources.data_sites, ToolTipText = Msg.Run_Search_Tooltip, }); + #endregion + + head.Add(new SimpleActionItem(_searchKey, Msg.Search, rbSearch_Click) { GroupCaption = Msg.Search, LargeImage = Resources.search_32, SmallImage = Resources.search_16, ToolTipText = Msg.Run_Search_Tooltip, }); + } + + private void ZoomSelected_Click(object sender, EventArgs e) + { + const double distanceX = 2; + const double distanceY = 2; + const double EPS = 1e-7; + + IEnvelope envelope = null; + foreach (var layer in ((Map)App.Map).GetAllLayers()) + { + var featureLayer = layer as IFeatureLayer; + if (featureLayer == null || !featureLayer.Checked || featureLayer.Selection.Count == 0) continue; + + var env = featureLayer.Selection.Envelope; + envelope = envelope == null ? env : envelope.Union(env); + } + if (envelope == null) return; + + if (Math.Abs(envelope.Width - 0) < EPS || Math.Abs(envelope.Height - 0) < EPS) + { + envelope.ExpandBy(distanceX, distanceY); + } + + if (envelope.Width > EPS && envelope.Height > EPS) + { + envelope.ExpandBy(envelope.Width / 10, envelope.Height / 10); // work item #84 + } + else + { + const double zoomInFactor = 0.05; //fixed zoom-in by 10% - 5% on each side + var newExtentWidth = App.Map.ViewExtents.Width * zoomInFactor; + var newExtentHeight = App.Map.ViewExtents.Height * zoomInFactor; + envelope.ExpandBy(newExtentWidth, newExtentHeight); + } + + App.Map.ViewExtents = envelope.ToExtent(); + } + + void HeaderControl_RootItemSelected(object sender, RootItemEventArgs e) + { + if (e.SelectedRootKey == _searchKey) + { + //App.DockManager.SelectPanel("kMap"); + + //searchSummary.ShowSearchStatus = true; + //searchSummary.UpdateStatus(); + } + else + { + //searchSummary.ShowSearchStatus = false; + } + } + + #region Search + + private DateTime? ValidateDateEdit(TextEntryActionItem item, string itemName, string dateFormat, bool showMessage) + { + DateTime? result = null; + string error = null; + try + { + var date = DateTime.ParseExact(item.Text, dateFormat, CultureInfo.CurrentCulture); + + var minDate = new DateTime(1753, 1, 1); + var maxDate = DateTime.MaxValue; + if (date < minDate || date > maxDate) + { + throw new Exception(string.Format("Date must be between {0} and {1}", minDate.ToShortDateString(), maxDate.ToShortDateString())); + } + + result = date; + } + catch (ArgumentNullException) + { + error = string.Format("{0} should be non-empty. Please enter {1} in the format {2}", itemName, + itemName.ToLower(), dateFormat); + } + catch (FormatException) + { + error = string.Format("Invalid {0}. Please enter a valid calendar date.", itemName); + } + catch (Exception ex) + { + error = ex.Message; + } + + if (!string.IsNullOrEmpty(error) && showMessage) + { + MessageBox.Show(error, string.Format("{0} validation", itemName), MessageBoxButtons.OK, MessageBoxIcon.Information); + } + return result; + } + + private bool ValidateStartDate(bool showMessage) + { + var result = ValidateDateEdit(rbStartDate, Msg.Start_Date, _datesFormat, showMessage); + if (result != null) + { + var date = result.Value; + // Additional validation for start date + if (_searchSettings.DateSettings.EndDate < date) + { + if (showMessage) + { + MessageBox.Show(Msg.Start_Date_Validation_Msg, Msg.Start_Date_Validation, MessageBoxButtons.OK, MessageBoxIcon.Information); + } + return false; + } + + _searchSettings.DateSettings.StartDate = date; + return true; + } + return false; + } + + private bool ValidateEndDate(bool showMessage) + { + var result = ValidateDateEdit(rbEndDate, Msg.End_Date, _datesFormat, showMessage); + if (result != null) + { + _searchSettings.DateSettings.EndDate = result.Value; + return true; + } + return false; + } + + void addDataSites_Click(object sender, EventArgs e) + { + _addSitesLayerDialog = new AddSitesLayerDialog(App); + _addSitesLayerDialog.ShowDialog(Shell); + } + + void rbSearch_Click(object sender, EventArgs e) + { + if (_searcher == null) + { + _searcher = new Searcher(Shell); + _searcher.Completed += _searcher_Completed; + } + + // Show Search progress if search already started + if (!_searcher.IsUIVisible && _searcher.IsBusy) + { + _searcher.ShowUI(); + return; + } + + try + { + // Validation of Start/End date. + // First should be validated EndDate, because StartDate validation depends from EndDate + if (!ValidateEndDate(true) || !ValidateStartDate(true)) + { + return; + } + + // Read Keywords + if (!ReadSelectedKeywords()) return; + + // Check for Keywords count + var selectedKeywords = _searchSettings.KeywordsSettings.SelectedKeywords.ToList(); + if (selectedKeywords.Count == 0) + { + throw new SearchSettingsValidationException("Selected search term is invalid or no search terms have been provided. Please provide different search terms."); + } + // Check for checked webservices + var webServicesCount = _searchSettings.WebServicesSettings.CheckedCount; + if (webServicesCount == 0) + throw new SearchSettingsValidationException("Please provide at least one Web Service for search."); + + // Check for Current View + if (_useCurrentView) + { + var extent = App.Map.ViewExtents; + var areaKm2 = extent.ToEnvelope().Area() / 1e6; + if (areaKm2 > 1e6) + { + if (MessageBox.Show(Msg.Current_View_Large_Msg, Msg.Continue_Search, MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) + { + return; + } + } + _searchSettings.AreaSettings.SetAreaRectangle(extent, App.Map.Projection); + } + // Check for target area + if (!_searchSettings.AreaSettings.HasAnyArea) + throw new SearchSettingsValidationException("Please provide at least one Target Area for search."); + + // Check for Max count of polygons + if (_searchSettings.AreaSettings.Polygons != null && + _searchSettings.AreaSettings.Polygons.Features.Count > 20) + { + if (MessageBox.Show("Too many polygon areas are selected. Number of selected polygons: " + _searchSettings.AreaSettings.Polygons.Features.Count + Environment.NewLine + + "Search can take a long time. Do you want to continue?", + Msg.Continue_Search, MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) + { + return; + } + } + + // Run search + _searcher.Run(_searchSettings); + } + catch (SearchSettingsValidationException sex) + { + MessageBox.Show(sex.Message, Msg.Information, MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, Msg.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + void _searcher_Completed(object sender, CompletedEventArgs e) + { + + rbSelect_Click(this, new EventArgs()); + rbSelect.Toggle(); + + if (e.Result == null) return; + e.ProgressHandler.ReportMessage("Adding Sites to Map..."); + var result = e.Result; + + + //We need to reproject the Search results from WGS84 to the projection of the map. + var wgs84 = KnownCoordinateSystems.Geographic.World.WGS1984; + foreach (var item in result.ResultItems) + item.FeatureSet.Projection = wgs84; + var layers = ShowSearchResults(result); + Debug.WriteLine("ShowSearchResults done."); + + // Unselect all layers in legend (http://hydrodesktop.codeplex.com/workitem/8559) + App.Map.MapFrame.GetAllLayers().ForEach(r => r.IsSelected = false); + + // Select first search result layer + + + var first = layers.FirstOrDefault().GetParentItem(); + if (first != null) + { + first.IsSelected = true; + } + + + // Unselect "Map Layers" legend item (http://hydrodesktop.codeplex.com/workitem/8458) + App.Legend.RootNodes + .ForEach(delegate(ILegendItem item) + { + if (item.LegendText == "Map Layers") + { + item.IsSelected = false; + } + }); + Debug.WriteLine("Finished."); + } + + /// + /// Displays search results (all data series and sites complying to the search criteria) + /// + private IEnumerable ShowSearchResults(SearchResult searchResult) + { + //try to save the search result layer and re-add it + var hdProjectPath = HydroDesktop.Configuration.Settings.Instance.CurrentProjectDirectory; + String timeStamp = string.Format("{0}_{1}{2}{3}", + DateTime.Now.Date.ToString("yyyy-MM-dd"), DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second); + + var loadedFeatures = new List(searchResult.ResultItems.Count()); + Debug.WriteLine(searchResult.ResultItems.Count()); + foreach (var key in searchResult.ResultItems) + { + Debug.WriteLine("hdProjectPath: " + hdProjectPath + "/Search Results"); + Debug.WriteLine("The other part: " + string.Format(Properties.Settings.Default.SearchResultNameMask, key.ServiceCode, timeStamp)); + var fs = key.FeatureSet; + + var filename = Path.Combine(hdProjectPath + "/Search Results", + string.Format(Properties.Settings.Default.SearchResultNameMask, key.ServiceCode, timeStamp)); + fs.Filename = filename; + fs.Save(); + loadedFeatures.Add(new SearchResultItem(key.ServiceCode, FeatureSet.OpenFile(filename))); + } + Debug.WriteLine("Loop done."); + + var searchLayerCreator = new SearchLayerCreator(App.Map, new SearchResult(loadedFeatures), _searchSettings); + return searchLayerCreator.Create(); + } + + #endregion + + #region Area group + + void Map_FunctionModeChanged(object sender, EventArgs e) + { + if (App.Map.FunctionMode == FunctionMode.Select && CurrentAreaSelectMode != AreaSelectMode.DrawBox) + { + rbSelect_Click(this, new EventArgs()); + rbSelect.Toggle(); + } + } + + private AreaSelectMode CurrentAreaSelectMode + { + get; + set; + } + + private enum AreaSelectMode + { + SelectPolygons, + DrawBox, + SelectAttribute + } + + void Instance_AreaRectangleChanged(object sender, EventArgs e) + { + var rectangle = _searchSettings.AreaSettings.AreaRectangle; + rbDrawBox.ToolTipText = rectangle != null ? rectangle.ToString() : Msg.Draw_Box; + + //searchSummary.AreaStatus = "Rectangle " + rectangle != null ? rectangle.ToString() : Msg.Draw_Box; + //searchSummary.AreaStatus = "Rectangle"; + //searchSummary.UpdateStatus(); + } + + void rbDrawBox_Click(object sender, EventArgs e) + { + do_rbDrawBox_Click(); + } + + void do_rbDrawBox_Click() + { + CurrentAreaSelectMode = AreaSelectMode.DrawBox; + + DeactivateSelectAreaByPolygon(); + DeactivateCurrentView(); + + var layers = App.Map.MapFrame.GetAllLayers(); + App.Map.MapFrame.IsSelected = false; + foreach (var layer in layers) + { + layer.IsSelected = false; + layer.GetParentItem().IsSelected = false; + } + + if (_rectangleDrawing == null) + { + _rectangleDrawing = new RectangleDrawing((Map)App.Map); + _rectangleDrawing.RectangleCreated += rectangleDrawing_RectangleCreated; + _rectangleDrawing.Deactivated += _rectangleDrawing_Deactivated; + } + + _rectangleDrawing.Activate(); + App.Map.Legend.RefreshNodes(); + } + + + void _rectangleDrawing_Deactivated(object sender, EventArgs e) + { + if (_isDeactivatingDrawBox) return; + rbSelect_Click(this, EventArgs.Empty); + } + + void rectangleDrawing_RectangleCreated(object sender, EventArgs e) + { + if (_rectangleDrawing == null) return; + _searchSettings.AreaSettings.SetAreaRectangle(_rectangleDrawing.RectangleExtent, App.Map.Projection); + } + + void AreaSettings_PolygonsChanged(object sender, EventArgs e) + { + var fsPolygons = _searchSettings.AreaSettings.Polygons; + + var caption = "0 features selected "; + + //var caption = "Select Polygons"; + if (fsPolygons != null && fsPolygons.Features.Count > 0) + { + int numPolygons = fsPolygons.Features.Count; + caption = numPolygons > 1 + ? String.Format("{0} features selected", fsPolygons.Features.Count) + : "1 feature selected"; + } + + //searchSummary.AreaStatus = SearchSettings.Instance.AreaSettings.AreaRectangle != null ? "Rectangle" : caption; + //searchSummary.UpdateStatus(); + //rbSelect.Caption = caption; + //rbSelect.ToolTipText = caption; + } + + void rbSelect_Click(object sender, EventArgs e) + { + DeactivateDrawBox(); + DeactivateCurrentView(); + + if(App.Map.FunctionMode != FunctionMode.Select) + App.Map.FunctionMode = FunctionMode.Select; + CurrentAreaSelectMode = AreaSelectMode.SelectPolygons; + } + + private void DeactivateSelectAreaByPolygon() + { + _searchSettings.AreaSettings.Polygons = null; + } + + void Map_SelectionChanged(object sender, EventArgs e) + { + if (CurrentAreaSelectMode == AreaSelectMode.SelectPolygons || + CurrentAreaSelectMode == AreaSelectMode.SelectAttribute) + { + var polygonLayer = AreaHelper.GetAllSelectedPolygonLayers((Map)App.Map).FirstOrDefault(); + if (polygonLayer == null) + { + //special case: if the map layers or the group is selected + if (App.Map.MapFrame.IsSelected) + { + IEnumerable polygonLayers = AreaHelper.GetAllPolygonLayers((Map)App.Map).Reverse(); + foreach (IMapPolygonLayer polyLayer in polygonLayers) + { + if (polyLayer.IsVisible && polyLayer.Selection.Count > 0) + { + var polyFs2 = new FeatureSet(FeatureType.Polygon); + foreach (var f in polyLayer.Selection.ToFeatureList()) + { + polyFs2.Features.Add(f); + } + polyFs2.Projection = App.Map.Projection; + _searchSettings.AreaSettings.Polygons = polyFs2; + return; + } + + } + + } + return; + } + + var polyFs = new FeatureSet(FeatureType.Polygon); + foreach (var f in polygonLayer.Selection.ToFeatureList()) + { + polyFs.Features.Add(f); + } + polyFs.Projection = App.Map.Projection; + _searchSettings.AreaSettings.Polygons = polyFs; + } + } + + private bool _isDeactivatingDrawBox; + + public void DeactivateDrawBox() + { + if (_rectangleDrawing == null) return; + + _isDeactivatingDrawBox = true; + _rectangleDrawing.Deactivate(); + _searchSettings.AreaSettings.SetAreaRectangle((Box)null, null); + _isDeactivatingDrawBox = false; + } + + + void CurrentView_Click(object sender, EventArgs e) + { + _useCurrentView = true; + + DeactivateDrawBox(); + CurrentAreaSelectMode = AreaSelectMode.SelectPolygons; + App.Map.FunctionMode = FunctionMode.Pan; + } + + void rbAttribute_Click(object sender, EventArgs e) + { + CurrentAreaSelectMode = AreaSelectMode.SelectAttribute; + + DeactivateDrawBox(); + DeactivateSelectAreaByPolygon(); + DeactivateCurrentView(); + + AreaHelper.SelectFirstVisiblePolygonLayer((Map)App.Map, false); + SelectAreaByAttributeDialog.ShowDialog((Map)App.Map); + Map_SelectionChanged(this, EventArgs.Empty); + } + + public void DeactivateCurrentView() + { + if (_useCurrentView) + { + _useCurrentView = false; + } + _searchSettings.AreaSettings.SetAreaRectangle((Box)null, null); + } + + #endregion + + #region Keywords + + private void RecreateKeywordGroup() + { + HeaderItem dummy = null; + if (_currentKeywords != null) + { + // This need to save buttons group from removing by HeaderControl (it removes groups with zero HeaderItems). + dummy = new SimpleActionItem(_searchKey, "Dummy", null) { GroupCaption = Msg.Keyword }; + App.HeaderControl.Add(dummy); + } + + Action removeOrCreate = delegate(ActionItem item, Action factory) + { + if (item != null) + { + App.HeaderControl.Remove(item.Key); + return; + } + factory(); + }; + + removeOrCreate(_currentKeywords, delegate + { + _currentKeywords = new TextEntryActionItem + { + GroupCaption = Msg.Keyword, + RootKey = _searchKey, + Width = 170, + }; + }); + + removeOrCreate(_dropdownKeywords, delegate + { + _dropdownKeywords = new DropDownActionItem + { + AllowEditingText = true, + GroupCaption = Msg.Keyword, + RootKey = _searchKey, + Width = 170, + NullValuePrompt = "[Enter Keyword]" + + }; + + + + _dropdownKeywords.SelectedValueChanged += + delegate(object sender, SelectedValueChangedEventArgs args) + { + + if (args.SelectedItem == null) + { + _dropdownKeywords.SelectedItem = ""; + return; + } + + // var current = /*_currentKeywords.Text;*/ _dropdownKeywords.SelectedItem.ToString(); + var selected = args.SelectedItem.ToString(); + + // var hasKeywords = !string.IsNullOrWhiteSpace(current); + // current = !hasKeywords + // ? selected + // : selected + KEYWORDS_SEPARATOR + " " + current; + // if (hasKeywords) + // { + // Remove "All", if new keyword was added, because All + AnyKeyword = All in searching. + // current = current.Replace(KEYWORDS_SEPARATOR + " " + Keywords.Constants.RootName, string.Empty); + // } + + _currentKeywords.Text = selected; //current; + _currentKeywords.ToolTipText = _currentKeywords.Text; + }; + }); + removeOrCreate(_rbAddMoreKeywords, delegate + { + _rbAddMoreKeywords = new SimpleActionItem(_searchKey, Msg.Add_More_Keywords, rbKeyword_Click) + { + // LargeImage = Resources.keyword_32, + SmallImage = Resources.keyword_16, + GroupCaption = Msg.Keyword, + ToolTipText = Msg.Keyword_Tooltip + }; + }); + + + // Populate items by keywords + _dropdownKeywords.Items.Clear(); + _dropdownKeywords.Items.AddRange(/*new [] {Constants.Default }*/_searchSettings.KeywordsSettings.Keywords); + + // Add items to HeaderControl + // App.HeaderControl.Add(_currentKeywords); + // _currentKeywords.Visible = false; + // ToolStripItem t = GetItem(_currentKeywords.Key); + App.HeaderControl.Add(_dropdownKeywords); + App.HeaderControl.Add(_rbAddMoreKeywords); + + // Clear current keywords text + _currentKeywords.Text = String.Empty; + + // _currentKeywords.PropertyChanged += + + if (dummy != null) + { + App.HeaderControl.Remove(dummy.Key); + App.HeaderControl.SelectRoot(_searchKey); + } + + UpdateKeywordsCaption(); + + var selectedKeywords = _searchSettings.KeywordsSettings.SelectedKeywords.ToList(); + selectedKeywords.Add("All"); + _dropdownKeywords.SelectedItem = "All"; + + } + + public void UpdateKeywordsCaption() + { + const string separator = KEYWORDS_SEPARATOR + " "; + var text = string.Join(separator, _searchSettings.KeywordsSettings.SelectedKeywords); + + var selectedItem = text.Length > 0 ? text : null; + _currentKeywords.Text = selectedItem; + _currentKeywords.ToolTipText = selectedItem; + + /*if (MultiSelect == true) + { + _currentKeywords.Text = "Multiple Selected"; + _currentKeywords.ToolTipText = "Multiple Selected"; + MultiSelectKeywords = selectedItem; + } + else + { + + }*/ + } + + void rbKeyword_Click(object sender, EventArgs e) + { + if (!ReadSelectedKeywords()) return; + if (KeywordsDialog.ShowDialog(_searchSettings.KeywordsSettings) == DialogResult.OK) + { + var selectedKeywords = _searchSettings.KeywordsSettings.SelectedKeywords.ToList(); + if (selectedKeywords.Count > 1) + { + _dropdownKeywords.MultiSelect = true; + + // This code has no other purpose than to immediately trigger the text to change to Multiple Selected. + // Without it, you have to hover or click on something in the ribbon for the change to occur. + + _dropdownKeywords.Enabled = false; + _dropdownKeywords.Enabled = true; + } + else if (selectedKeywords.Count == 1) + { + _dropdownKeywords.MultiSelect = false; + _dropdownKeywords.SelectedItem = selectedKeywords[0]; + } + else + { + _dropdownKeywords.MultiSelect = false; + _dropdownKeywords.SelectedItem = null; + } + + UpdateKeywordsCaption(); + + // MultiSelect = false; + } + } + + private bool ReadSelectedKeywords() + { + IList selectedKeywords; + /* + if (MultiSelect == true) + { + text = string.IsNullOrWhiteSpace(_currentKeywords.Text) ? null : MultiSelectKeywords; + } + else */ + // { + var text = string.IsNullOrWhiteSpace(_currentKeywords.Text) ? null : _currentKeywords.Text; + // } + + if (string.IsNullOrWhiteSpace(text)) + { + selectedKeywords = null; + } + else + { + selectedKeywords = text.Split(new[] { KEYWORDS_SEPARATOR }, StringSplitOptions.RemoveEmptyEntries) + .Select(k => k.Trim()) + .ToList(); + // Remove duplicates + selectedKeywords = selectedKeywords.Distinct().ToList(); + + // Iterate keywords to find invalid keywords and replace existing by synonyms + var toDelete = new List(); + for (int i = 0; i < selectedKeywords.Count; i++) + { + var cur = selectedKeywords[i]; + // Try to find keyword + var orginal = _searchSettings.KeywordsSettings.Keywords.FirstOrDefault( + k => string.Equals(k, cur, StringComparison.OrdinalIgnoreCase)); + if (orginal != null) + { + // Replace keyword by synonyms + selectedKeywords[i] = _searchSettings.KeywordsSettings.FindSynonym(orginal); + } + else + { + toDelete.Add(cur); + } + } + invalidWord = false; + if (toDelete.Count > 0) + { + invalidWord = true; + var res = MessageBox.Show(Shell, + "The next invalid Keywords will be removed from the search criteria:" + + Environment.NewLine + + String.Join(KEYWORDS_SEPARATOR + " ", toDelete), + "Keywords not valid", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); + if (res != DialogResult.OK) + { + return false; + } + toDelete.ForEach(k => selectedKeywords.Remove(k)); + } + } + _searchSettings.KeywordsSettings.SelectedKeywords = selectedKeywords; + UpdateKeywordsCaption(); + + return true; + } + + #endregion + + #region WebServices + + void rbServices_Click(object sender, EventArgs e) + { + if (_rectangleDrawing == null) + { + _rectangleDrawing = new RectangleDrawing((Map)App.Map); + _rectangleDrawing.RectangleCreated += rectangleDrawing_RectangleCreated; + _rectangleDrawing.Deactivated += _rectangleDrawing_Deactivated; + } + + var currentMode = CurrentAreaSelectMode; + var navigationMode = App.Map.FunctionMode; + Box rectangleExtent = null; + + if (currentMode != AreaSelectMode.DrawBox) + { + CurrentAreaSelectMode = AreaSelectMode.DrawBox; + _rectangleDrawing.Activate(); + App.Map.FunctionMode = navigationMode; + } + else if (_searchSettings.AreaSettings.AreaRectangle != null) + { + rectangleExtent = Area.AreaHelper.ReprojectBoxToWGS84(_searchSettings.AreaSettings.AreaRectangle, + _searchSettings.AreaSettings.RectangleProjection); + } + + if (WebServicesDialog.ShowDialog(_searchSettings.WebServicesSettings, + _searchSettings.CatalogSettings, + _searchSettings.KeywordsSettings, + App.GetExtension(), App, _rectangleDrawing + ) == DialogResult.OK) + { + UpdateWebServicesCaption(); + } + + _rectangleDrawing.Color = Color.Red; + + if (currentMode != AreaSelectMode.DrawBox) + { + DeactivateDrawBox(); + CurrentAreaSelectMode = currentMode; + App.Map.FunctionMode = navigationMode; + } + else if (rectangleExtent == null) + { + _rectangleDrawing.Deactivate(); + do_rbDrawBox_Click(); + } + else + { + _rectangleDrawing.RestoreSearchRectangle(rectangleExtent.XMin, rectangleExtent.YMin, rectangleExtent.XMax, rectangleExtent.YMax); + } + + } + + private void UpdateWebServicesCaption() + { + var webservicesSettings = _searchSettings.WebServicesSettings; + var checkedCount = webservicesSettings.CheckedCount; + var totalCount = webservicesSettings.TotalCount; + + string caption; + string hint; + WebServiceNode webServiceNode = null; + if (checkedCount == totalCount) + { + caption = "All sources"; + hint = caption; + } + else if (checkedCount == 1) + { + // Get single checked item + var items = webservicesSettings.WebServices.Where(w => w.Checked).ToList(); + Debug.Assert(items.Count == 1); + webServiceNode = items[0]; + caption = items[0].Title; + hint = caption; + } + else + { + caption = string.Format("{0} sources selected", checkedCount); + hint = string.Format("{0} sources", checkedCount); + } + + //rbServices.Caption = caption; + rbServices.ToolTipText = string.Format("Select data sources ({0} selected)", hint); + //ChangeWebServicesIcon(webServiceNode); + + //searchSummary.DataSourceStatus = caption; + //searchSummary.UpdateStatus(); + } + + private void ChangeWebServicesIcon(WebServiceNode webServiceNode = null) + { + if (webServiceNode == null || + string.IsNullOrEmpty(webServiceNode.ServiceCode)) + { + rbServices.LargeImage = Resources.server_32; + rbServices.SmallImage = Resources.server_16; + return; + } + + try + { + var image = ServiceIconHelper.Instance.GetImageForService(webServiceNode.ServiceCode); + rbServices.LargeImage = rbServices.SmallImage = image; + } + catch (Exception ex) + { + MessageBox.Show("Unable to change icon." + Environment.NewLine + + ex.Message, Msg.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + #endregion + + #region Dates + + private void UpdateDatesCaption() + { + rbStartDate.Text = _searchSettings.DateSettings.StartDate.ToString(_datesFormat); + rbEndDate.Text = _searchSettings.DateSettings.EndDate.ToString(_datesFormat); + } + + void rbDate_Click(object sender, EventArgs e) + { + if (DateSettingsDialog.ShowDialog(_searchSettings.DateSettings) == DialogResult.OK) + { + UpdateDatesCaption(); + } + } + + void rbEndDate_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + if (e.PropertyName != NameHelper.Name(t => t.Text)) return; + ValidateEndDate(false); + } + + void rbStartDate_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + if (e.PropertyName != NameHelper.Name(t => t.Text)) return; + ValidateStartDate(false); + } + + #endregion + + #endregion + + public IList GetWebServices() + { + var webServices = _searchSettings.WebServicesSettings.WebServices; + var result = new List(webServices.Count); + result.AddRange(webServices.Select(wsInfo => new DataServiceInfo + { + EndpointURL = wsInfo.ServiceUrl, + DescriptionURL = wsInfo.DescriptionUrl, + ServiceTitle = wsInfo.Title, + HISCentralID = wsInfo.ServiceID + })); + + return result; + } + + public void AddFeatures(List> featuresPerCode) + { + var loadedFeatures = new List(featuresPerCode.Count()); + loadedFeatures.AddRange(featuresPerCode.Select(item => new SearchResultItem(item.Item1, item.Item2))); + + var searchLayerCreator = new SearchLayerCreator(App.Map, new SearchResult(loadedFeatures), _searchSettings); + searchLayerCreator.Create(); + } + + public string HisCentralUrl + { + get { return _searchSettings.CatalogSettings.HISCentralUrl; } + } + + public void setSearchTabCaption(string caption) + { + tabb.Caption = caption; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/SearchStatusDisplay.cs b/Source/Plugins/HydroDesktop.Plugins.Search/SearchStatusDisplay.cs new file mode 100644 index 00000000..907bf2e6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/SearchStatusDisplay.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using DotSpatial.Controls.Header; +using DotSpatial.Controls; + +namespace HydroDesktop.Plugins.Search +{ + /// + /// Responsible for displaying search summary in the status bar + /// + public class SearchStatusDisplay + { + private bool _showSearchStatus = false; + StatusPanel searchStatusPanel = null; + private AppManager _app = null; + + public SearchStatusDisplay(AppManager app) + { + searchStatusPanel = new StatusPanel(); + searchStatusPanel.Width = 600; + _app = app; + //app.ProgressHandler.Add(searchStatusPanel); + } + + /// + /// True to display the search status, false otherwise + /// + public bool ShowSearchStatus + { + get + { + return _showSearchStatus; + } + set + { + bool oldStatus = _showSearchStatus; + _showSearchStatus = value; + + if (oldStatus != _showSearchStatus) + { + if (!_showSearchStatus) + _app.ProgressHandler.Remove(searchStatusPanel); + else + _app.ProgressHandler.Add(searchStatusPanel); + } + } + } + + public string AreaStatus { get; set; } + + public string KeywordStatus { get; set; } + + public string DataSourceStatus { get; set; } + + public string TimeStatus { get; set; } + + /// + /// Updates the status display + /// + public void UpdateStatus() + { + string keywordDisplay = KeywordStatus != null ? KeywordStatus : String.Empty; + if (keywordDisplay.Length > 200) + { + keywordDisplay = keywordDisplay.Substring(0, 200) + "..."; + } + string sourceDisplay = DataSourceStatus != null ? DataSourceStatus : String.Empty; + if (sourceDisplay.Length > 200) + { + sourceDisplay = DataSourceStatus.Substring(0, 200) + "..."; + } + + searchStatusPanel.Caption = String.Format("Area: {0} | Keywords: {1} | Sources: {2}", AreaStatus, keywordDisplay, sourceDisplay); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Searching/CompletedEventArgs.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/CompletedEventArgs.cs new file mode 100644 index 00000000..bf16316e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/CompletedEventArgs.cs @@ -0,0 +1,46 @@ +using System; +using HydroDesktop.Common; + +namespace HydroDesktop.Plugins.Search.Searching +{ + public class CompletedEventArgs : EventArgs + { + public CompletedEventArgs(SearchResult result, CompletedReasones reason, IProgressHandler progressHandler) + { + Result = result; + Reason = reason; + ProgressHandler = progressHandler; + } + + /// + /// Search result. May be null. + /// + public SearchResult Result { get; private set; } + + /// + /// Reason of completed event + /// + public CompletedReasones Reason { get; private set; } + + /// + /// Progress handler + /// + public IProgressHandler ProgressHandler { get; private set; } + } + + public enum CompletedReasones + { + /// + /// Search has been comleted normally + /// + NormalCompleted, + /// + /// Search has been cancelled + /// + Cancelled, + /// + /// Search has been comleted due to an unhandled exception + /// + Faulted, + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Searching/Exceptions/SearchSettingsValidationException.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/Exceptions/SearchSettingsValidationException.cs new file mode 100644 index 00000000..5222622f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/Exceptions/SearchSettingsValidationException.cs @@ -0,0 +1,30 @@ +using System; +using System.Runtime.Serialization; + +namespace HydroDesktop.Plugins.Search.Searching.Exceptions +{ + public class SearchSettingsValidationException : Exception + { + public SearchSettingsValidationException() + { + } + + public SearchSettingsValidationException(Exception inner) + : this(null, inner) + { + + } + + public SearchSettingsValidationException(string message, Exception inner = null) + : base(message, inner) + { + + } + + public SearchSettingsValidationException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Searching/HISCentralSearcher.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/HISCentralSearcher.cs new file mode 100644 index 00000000..262451e6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/HISCentralSearcher.cs @@ -0,0 +1,323 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Net; +using System.Text; +using System.Xml; +using HydroDesktop.Common; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.Search.Searching +{ + /// + /// Search for data series using HIS Central + /// + public class HISCentralSearcher : SeriesSearcher + { + #region Fields + + private readonly string _hisCentralUrl; + private static readonly CultureInfo _invariantCulture = CultureInfo.InvariantCulture; + + #endregion + + #region Constructor + + /// + /// Create a new HIS Central Searcher which connects to the HIS Central web + /// services + /// + /// The URL of HIS Central + public HISCentralSearcher(string hisCentralUrl) + { + hisCentralUrl = hisCentralUrl.Trim(); + if (hisCentralUrl.EndsWith("?WSDL", StringComparison.OrdinalIgnoreCase)) + { + hisCentralUrl = hisCentralUrl.ToUpperInvariant().Replace("?WSDL", ""); + } + _hisCentralUrl = hisCentralUrl; + } + + #endregion + + #region Public methods + + public void GetWebServicesXml(string xmlFileName) + { + HttpWebResponse response = null; + try + { + var url = _hisCentralUrl + "/GetWaterOneFlowServiceInfo"; + + var request = (HttpWebRequest) WebRequest.Create(url); + //Endpoint is the URL to which u are making the request. + request.Method = "GET"; + request.Credentials = CredentialCache.DefaultCredentials; + request.ContentType = "text/xml"; + + request.Timeout = 5000; + + // send the request and get the response + response = (HttpWebResponse) request.GetResponse(); + + using (var responseStream = response.GetResponseStream()) + { + using (var localFileStream = new FileStream(xmlFileName, FileMode.Create)) + { + var buffer = new byte[255]; + int bytesRead; + while ((bytesRead = responseStream.Read(buffer, 0, buffer.Length)) > 0) + { + localFileStream.Write(buffer, 0, bytesRead); + } + } + } + } + finally + { + if (response != null) + { + response.Close(); + } + } + } + + #endregion + + #region Private methods + + protected override IEnumerable GetSeriesCatalogForBox(double xMin, double xMax, double yMin, + double yMax, string keyword, + DateTime startDate, DateTime endDate, + int[] networkIDs, + IProgressHandler bgWorker, long currentTile, long totalTilesCount) + { + var url = new StringBuilder(); + url.Append(_hisCentralUrl); + url.Append("/GetSeriesCatalogForBox2"); + url.Append("?xmin="); + url.Append(Uri.EscapeDataString(xMin.ToString(_invariantCulture))); + url.Append("&xmax="); + url.Append(Uri.EscapeDataString(xMax.ToString(_invariantCulture))); + url.Append("&ymin="); + url.Append(Uri.EscapeDataString(yMin.ToString(_invariantCulture))); + url.Append("&ymax="); + url.Append(Uri.EscapeDataString(yMax.ToString(_invariantCulture))); + + //to append the keyword + url.Append("&conceptKeyword="); + if (!String.IsNullOrEmpty(keyword)) + { + url.Append(Uri.EscapeDataString(keyword)); + } + + //to append the list of networkIDs separated by comma + url.Append("&networkIDs="); + if (networkIDs != null) + { + var serviceParam = new StringBuilder(); + for (int i = 0; i < networkIDs.Length - 1; i++) + { + serviceParam.Append(networkIDs[i]); + serviceParam.Append(","); + } + if (networkIDs.Length > 0) + { + serviceParam.Append(networkIDs[networkIDs.Length - 1]); + } + url.Append(Uri.EscapeDataString(serviceParam.ToString())); + } + + //to append the start and end date + url.Append("&beginDate="); + url.Append(Uri.EscapeDataString(startDate.ToString("MM/dd/yyyy"))); + url.Append("&endDate="); + url.Append(Uri.EscapeDataString(endDate.ToString("MM/dd/yyyy"))); + + var keywordDesc = string.Format("[{0}. Tile {1}/{2}]", + String.IsNullOrEmpty(keyword) ? "All" : keyword, currentTile, + totalTilesCount); + + // Try to send request several times (in case, when server returns timeout) + const int tryCount = 5; + for (int i = 0; i < tryCount; i++) + { + try + { + bgWorker.CheckForCancel(); + bgWorker.ReportMessage(i == 0 + ? string.Format("Sent request: {0}", keywordDesc) + : string.Format("Timeout has occurred for {0}. New Attempt ({1} of {2})...", + keywordDesc, i + 1, tryCount)); + + var request = WebRequest.Create(url.ToString()); + request.Timeout = 30 * 1000; + using (var response = request.GetResponse()) + using (var reader = XmlReader.Create(response.GetResponseStream())) + { + bgWorker.ReportMessage(string.Format("Data received for {0}", keywordDesc)); + return ParseSeries(reader, startDate, endDate); + } + } + catch (WebException ex) + { + if (ex.Status == WebExceptionStatus.Timeout) + { + continue; + } + throw; + } + } + throw new WebException("Timeout. Try to decrease Search Area, or Select another Keywords.", WebExceptionStatus.Timeout); + } + + private IEnumerable ParseSeries(XmlReader reader, DateTime startDate, DateTime endDate) + { + var seriesList = new List(); + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + { + if (reader.Name == "SeriesRecord") + { + //Read the site information + var series = ReadSeriesFromHISCentral(reader); + if (series != null) + { + // Update BeginDate/EndDate/ValueCount to the user-specified range + SearchHelper.UpdateDataCartToDateInterval(series, startDate, endDate); + seriesList.Add(series); + } + } + } + } + return seriesList; + } + + /// + /// Read the list of series from the XML that is returned by HIS Central + /// + /// the xml reader + /// the list of intermediate 'SeriesDataCart' objects + private SeriesDataCart ReadSeriesFromHISCentral(XmlReader reader) + { + var series = new SeriesDataCart(); + while (reader.Read()) + { + var nodeName = reader.Name.ToLower(); + if (reader.NodeType == XmlNodeType.Element) + { + switch (nodeName) + { + case "servcode": + reader.Read(); + series.ServCode = reader.Value; + break; + case "servurl": + reader.Read(); + series.ServURL = reader.Value; + break; + case "location": + reader.Read(); + series.SiteCode = reader.Value; + break; + case "varcode": + reader.Read(); + series.VariableCode = reader.Value; + break; + case "varname": + reader.Read(); + series.VariableName = reader.Value; + break; + case "begindate": + reader.Read(); + if (!String.IsNullOrWhiteSpace(reader.Value)) + series.BeginDate = Convert.ToDateTime(reader.Value, _invariantCulture); + else + return null; + break; + case "enddate": + reader.Read(); + if (!String.IsNullOrWhiteSpace(reader.Value)) + series.EndDate = Convert.ToDateTime(reader.Value, _invariantCulture); + else + return null; + break; + case "valuecount": + reader.Read(); + if (!String.IsNullOrWhiteSpace(reader.Value)) + series.ValueCount = Convert.ToInt32(reader.Value); + else + return null; + break; + case "sitename": + reader.Read(); + series.SiteName = reader.Value; + break; + case "latitude": + reader.Read(); + if (!String.IsNullOrWhiteSpace(reader.Value)) + series.Latitude = Convert.ToDouble(reader.Value, CultureInfo.InvariantCulture); + else + return null; + break; + case "longitude": + reader.Read(); + if (!String.IsNullOrWhiteSpace(reader.Value)) + series.Longitude = Convert.ToDouble(reader.Value, CultureInfo.InvariantCulture); + else + return null; + break; + case "datatype": + reader.Read(); + series.DataType = reader.Value; + break; + case "valuetype": + reader.Read(); + series.ValueType = reader.Value; + break; + case "samplemedium": + reader.Read(); + series.SampleMedium = reader.Value; + break; + case "timeunits": + reader.Read(); + series.TimeUnit = reader.Value; + break; + case "conceptkeyword": + reader.Read(); + series.ConceptKeyword = reader.Value; + break; + case "gencategory": + reader.Read(); + series.GeneralCategory = reader.Value; + break; + case "timesupport": + reader.Read(); + if (!String.IsNullOrWhiteSpace(reader.Value)) + series.TimeSupport = Convert.ToDouble(reader.Value, CultureInfo.InvariantCulture); + break; + case "isregular": + reader.Read(); + if (!String.IsNullOrWhiteSpace(reader.Value)) + series.IsRegular = Convert.ToBoolean(reader.Value); + break; + case "variableunits": + reader.Read(); + series.VariableUnits = reader.Value; + break; + } + } + else if (reader.NodeType == XmlNodeType.EndElement && nodeName == "seriesrecord") + { + return series; + } + } + + return null; + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Searching/LogMessageEventArgs.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/LogMessageEventArgs.cs new file mode 100644 index 00000000..e9d68ffd --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/LogMessageEventArgs.cs @@ -0,0 +1,16 @@ +using System; + +namespace HydroDesktop.Plugins.Search.Searching +{ + public class LogMessageEventArgs : EventArgs + { + public string Message { get; private set; } + public Exception Exception { get; private set; } + + public LogMessageEventArgs(string message, Exception exception = null) + { + Message = message; + Exception = exception; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Searching/MetadataCacheSearcher.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/MetadataCacheSearcher.cs new file mode 100644 index 00000000..a76b82d5 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/MetadataCacheSearcher.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Data; +using HydroDesktop.Common; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.Search.Searching +{ + /// + /// Searches in the 'MetadataCache' database + /// use this class when the "Metadata Cache" search + /// option is selected + /// + public class MetadataCacheSearcher : SeriesSearcher + { + #region Fields + + private readonly MetadataCacheManagerSQL _db; + + #endregion + + #region Constructors + + public MetadataCacheSearcher() + { + _db = new MetadataCacheManagerSQL(DatabaseTypes.SQLite, HydroDesktop.Configuration.Settings.Instance.MetadataCacheConnectionString); + } + + #endregion + + /// + /// Get a list of all keywords from all web services in the metadata cache db + /// + public IList GetKeywords() + { + return _db.GetVariableNames(); + } + + /// + /// Get a list of all web services registered in the metadata cache database + /// + public IEnumerable GetWebServices() + { + return _db.GetAllServices(); + } + + protected override IEnumerable GetSeriesCatalogForBox(double xMin, double xMax, double yMin, double yMax, string keyword, + DateTime startDate, DateTime endDate, int[] networkIDs, IProgressHandler bgWorker, long currentTile, long totalTilesCount) + { + bgWorker.ReportMessage(string.Format("Executed query to the database. Keyword: {0}. Tile {1}/{2}.", keyword, currentTile, totalTilesCount)); + + var dt = _db.GetSeriesDataTableInBox(xMin, xMax, yMin, yMax, new []{keyword}, startDate, endDate, networkIDs); + var seriesList = new List(dt.Rows.Count); + foreach (DataRow row in dt.Rows) + { + var series = _db.SeriesDataCartFromRow(row); + if (series != null) + { + // Update BeginDate/EndDate/ValueCount to the user-specified range + SearchHelper.UpdateDataCartToDateInterval(series, startDate, endDate); + seriesList.Add(series); + } + } + return seriesList; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchHelper.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchHelper.cs new file mode 100644 index 00000000..c1a6c625 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchHelper.cs @@ -0,0 +1,216 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Globalization; +using System.Linq; +using DotSpatial.Data; +using DotSpatial.Topology; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.Search.Searching +{ + /// + /// Helper class - converts the search results list to a GIS Feature set that can be + /// shown in map + /// + public static class SearchHelper + { + private static void PopulateDataRow(SeriesDataCart series, DataRow row) + { + row["DataSource"] = series.ServCode; + row["SiteName"] = series.SiteName; + row["VarName"] = series.VariableName; + row["SiteCode"] = series.SiteCode; + row["VarCode"] = series.VariableCode; + row["Keyword"] = series.ConceptKeyword; + row["ValueCount"] = series.ValueCount; + row["StartDate"] = series.BeginDate.ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture); + row["EndDate"] = series.EndDate.ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture); + row["ServiceURL"] = series.ServURL; + row["ServiceCode"] = series.ServCode; + row["DataType"] = series.DataType; + row["ValueType"] = series.ValueType; + row["SampleMed"] = series.SampleMedium; + row["TimeUnits"] = series.TimeUnit; + row["TimeSupport"] = series.TimeSupport; + row["Latitude"] = series.Latitude; + row["Longitude"] = series.Longitude; + row["IsRegular"] = series.IsRegular; + row["Units"] = series.VariableUnits; + } + + /// + /// Adds the necessary attribute columns to the featureSet's attribute table + /// + private static FeatureSet CreateEmptyFeatureSet() + { + var fs = new FeatureSet(FeatureType.Point); + + var tab = fs.DataTable; + tab.Columns.Add(new DataColumn("DataSource", typeof(string))); + tab.Columns.Add(new DataColumn("SiteName", typeof(string))); + tab.Columns.Add(new DataColumn("VarName", typeof(string))); + tab.Columns.Add(new DataColumn("SiteCode", typeof(string))); + tab.Columns.Add(new DataColumn("VarCode", typeof(string))); + tab.Columns.Add(new DataColumn("Keyword", typeof(string))); + tab.Columns.Add(new DataColumn("ValueCount", typeof(int))); + tab.Columns.Add(new DataColumn("StartDate", typeof(string))); + tab.Columns.Add(new DataColumn("EndDate", typeof(string))); + tab.Columns.Add(new DataColumn("ServiceURL", typeof(string))); + tab.Columns.Add(new DataColumn("ServiceCode", typeof(string))); + tab.Columns.Add(new DataColumn("DataType", typeof(string))); + tab.Columns.Add(new DataColumn("ValueType", typeof(string))); + tab.Columns.Add(new DataColumn("SampleMed", typeof(string))); + tab.Columns.Add(new DataColumn("TimeUnits", typeof(string))); + tab.Columns.Add(new DataColumn("TimeSupport", typeof(double))); + tab.Columns.Add(new DataColumn("Latitude", typeof(double))); + tab.Columns.Add(new DataColumn("Longitude", typeof(double))); + tab.Columns.Add(new DataColumn("IsRegular", typeof(bool))); + tab.Columns.Add(new DataColumn("Units", typeof(string))); + + return fs; + } + + + /// + /// Divides the search bounding box into several 'tiles' to prevent + /// + /// the original bounding box + /// The tile width in decimal degrees + /// The tile height (south-north) in decimal degrees + /// + public static List CreateTiles(Extent bigBoundingBox, double tileWidth, double tileHeight) + { + var tiles = new List(); + double fullWidth = Math.Abs(bigBoundingBox.MaxX - bigBoundingBox.MinX); + double fullHeight = Math.Abs(bigBoundingBox.MaxY - bigBoundingBox.MinY); + + if (fullWidth < tileWidth || fullHeight < tileHeight) + { + tiles.Add(bigBoundingBox); + return tiles; + } + + double yll = bigBoundingBox.MinY; //y-coordinate of the tile's lower left corner + var numColumns = (int)(Math.Ceiling(fullWidth / tileWidth)); + var numRows = (int)(Math.Ceiling(fullHeight / tileHeight)); + var lastTileWidth = fullWidth - ((numColumns - 1) * tileWidth); + var lastTileHeight = fullHeight - ((numRows - 1) * tileHeight); + int r; + + for (r = 0; r < numRows; r++) + { + double xll = bigBoundingBox.MinX; //x-coordinate of the tile's lower left corner + + if (r == numRows - 1) + { + tileHeight = lastTileHeight; + } + + int c; + for (c = 0; c < numColumns; c++) + { + var newTile = c == (numColumns - 1) ? new Extent(xll, yll, xll + lastTileWidth, yll + tileHeight) : + new Extent(xll, yll, xll + tileWidth, yll + tileHeight); + tiles.Add(newTile); + xll = xll + tileWidth; + } + yll = yll + tileHeight; + } + return tiles; + } + + public static SearchResult ToFeatureSetsByDataSource(IEnumerable seriesList) + { + if (seriesList == null) throw new ArgumentNullException("seriesList"); + + var resultCollection = new List(); + foreach(var dataCart in seriesList) + { + IFeatureSet featureSet; + var searchItem = resultCollection.FirstOrDefault(item => item.ServiceCode == dataCart.ServCode); + if (searchItem == null) + { + featureSet = CreateEmptyFeatureSet(); + searchItem = new SearchResultItem(dataCart.ServCode, featureSet); + resultCollection.Add(searchItem); + } + featureSet = searchItem.FeatureSet; + AddToFeatureSet(dataCart, featureSet); + } + + return new SearchResult(resultCollection); + } + + /// + /// Clips the list of series by the polygon + /// + /// List of series + /// the polygon shape + /// a new list of series metadata that is only within the polygon + public static IEnumerable ClipByPolygon(IEnumerable fullSeriesList, IFeature polygon) + { + var newList = new List(); + + foreach (SeriesDataCart series in fullSeriesList) + { + double lat = series.Latitude; + double lon = series.Longitude; + var coord = new Coordinate(lon, lat); + if (polygon.Intersects(coord)) + { + newList.Add(series); + } + } + return newList; + } + + /// + /// Updates BeginDate/EndDate/ValueCount in the SeriesDataCart to the user-specified range + /// + /// Series to update + /// User-specified startDate + /// User-specified endDate + public static void UpdateDataCartToDateInterval(SeriesDataCart series, DateTime startDate, DateTime endDate) + { + // Update BeginDate/EndDate/ValueCount to the user-specified range + var seriesStartDate = series.BeginDate < startDate ? startDate : series.BeginDate; + // Fix http://hydrodesktop.codeplex.com/workitem/8468 + // HIS Central sometimes doesn't contains actual end dates for datasets, + // so always set end date of series to user-specified endDate. + var seriesEndDate = endDate; //var seriesEndDate = series.EndDate > endDate ? endDate : series.EndDate; + + var serverDateRange = series.EndDate.Subtract(series.BeginDate); + var userDateRange = seriesEndDate.Subtract(seriesStartDate); + + var userFromServerPercentage = serverDateRange.TotalDays > 0 + ? userDateRange.TotalDays / serverDateRange.TotalDays + : 1.0; + if (userFromServerPercentage > 1.0) + userFromServerPercentage = 1.0; + var esimatedValueCount = (int)(series.ValueCount * userFromServerPercentage); + + series.ValueCount = esimatedValueCount; + series.BeginDate = seriesStartDate; + series.EndDate = seriesEndDate; + } + + /// + /// Adds series to an existing feature set + /// + /// Series + /// Feature set + private static void AddToFeatureSet(SeriesDataCart series, IFeatureSet fs) + { + double lat = series.Latitude; + double lon = series.Longitude; + var coord = new Coordinate(lon, lat); + + var f = new Feature(FeatureType.Point, new[] {coord}); + fs.Features.Add(f); + + var row = f.DataRow; + PopulateDataRow(series, row); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchLayerCreator.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchLayerCreator.cs new file mode 100644 index 00000000..7d54ae32 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchLayerCreator.cs @@ -0,0 +1,162 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using DotSpatial.Controls; +using DotSpatial.Symbology; +using Hydrodesktop.Common; +using DotSpatial.Data; +using HydroDesktop.Plugins.Search.Settings; +using System.Diagnostics; + +namespace HydroDesktop.Plugins.Search.Searching +{ + class SearchLayerCreator + { + #region Fields + + private readonly IMap _map; + private readonly SearchResult _searchResult; + private readonly SearchSettings _searchSettings; + + #endregion + + #region Constructors + + /// + /// Constructor of + /// + /// Map + /// Search result + /// Seacrh settings + public SearchLayerCreator(IMap map, SearchResult searchResult, SearchSettings searchSettings) + { + if (map == null) throw new ArgumentNullException("map"); + if (searchResult == null) throw new ArgumentNullException("searchResult"); + if (searchSettings == null) throw new ArgumentNullException("searchSettings"); + + _map = map; + _searchResult = searchResult; + _searchSettings = searchSettings; + } + + #endregion + + #region Public methods + + /// + /// Create search layer + /// + public IEnumerable Create() + { + var ext = new Extent(); + Debug.WriteLine("Starting Create method"); + if (!_searchResult.ResultItems.Any()) + { + Debug.WriteLine("Returning new point layer"); + return new List(); + } + + Debug.WriteLine("Getting data sites layer..."); + var root = _map.GetDataSitesLayer(true); + Debug.WriteLine("Done"); + + var layersToSelect = new List(); + var result = new List(); + Debug.WriteLine("Starting loop, count: " + _searchResult.ResultItems.Count()); + foreach(var item in _searchResult.ResultItems) + { + try + { + Debug.WriteLine("creating search result layer"); + var subResultLayer = CreateSearchResultLayer(item, root); + Debug.WriteLine("Done; adding subResultLayer to list of result layers"); + result.Add(subResultLayer); + Debug.WriteLine("Done; adding subResultLayer to root"); + root.Add(subResultLayer); + Debug.WriteLine("Done; adding subResultLayer to layersToSelect"); + layersToSelect.Add(subResultLayer); + Debug.WriteLine("Done with loop iteration"); + } + catch (Exception e) + { + Debug.WriteLine("Exception: " + e.Message); + Debug.WriteLine(e.StackTrace); + } + } + Debug.WriteLine("Loop Done, refreshing map"); + _map.Refresh(); + Debug.WriteLine("Done"); + + Debug.WriteLine("Starting another loop"); + //assign the projection again + foreach (var item in _searchResult.ResultItems) + { + item.FeatureSet.Reproject(_map.Projection); + ext.ExpandToInclude(item.FeatureSet.Extent); + } + Debug.WriteLine("Loop done. Now looping through layers: " + root.Layers.Count); + for (int i = 0; i < root.Layers.Count; i++) + { + var layer = root[i]; + var state = layersToSelect.Contains(layer); + var rendItem = layer as IRenderableLegendItem; + if (rendItem != null) + { + rendItem.IsVisible = state; // force a re-draw in the case where we are talking about layers. + } + else + { + layer.Checked = state; + } + } + Debug.WriteLine("End loop"); + + ext.ExpandBy(_map.ViewExtents.Width / 100); + _map.ViewExtents = ext; + _map.Refresh(); + + Debug.WriteLine("Return result"); + return result; + } + + #endregion + + #region Private methods + + private MapPointLayer CreateSearchResultLayer(SearchResultItem item, IMapGroup root) + { + Debug.WriteLine("Starting method CreateSearchResultLayer"); + var myLayer = new MapPointLayer(item.FeatureSet); + + // Get Title of web-server + var webService = _searchSettings.WebServicesSettings.WebServices.FirstOrDefault( + ws => ws.ServiceCode == item.ServiceCode); + var defaulLegendText = webService != null? webService.Title : item.ServiceCode; + + // Build legend text + var legendText = defaulLegendText; + int nameIndex = 1; + Debug.WriteLine("Starting while loop."); + while(true) + { + // Check if legend text is already used + var nameUsed = root.Layers.Any(layer => layer.LegendText == legendText); + if (!nameUsed) + { + Debug.WriteLine("Exiting while loop"); + break; + } + + // Create new legend text + nameIndex++; + legendText = string.Format("{0} ({1})", defaulLegendText, nameIndex); + } + + myLayer.LegendText = legendText; + Debug.WriteLine("Returning myLayer"); + return myLayer; + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchProgressForm.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchProgressForm.Designer.cs new file mode 100644 index 00000000..e6299d54 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchProgressForm.Designer.cs @@ -0,0 +1,118 @@ +namespace HydroDesktop.Plugins.Search.Searching +{ + partial class SearchProgressForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SearchProgressForm)); + this.btnCloseCancel = new System.Windows.Forms.Button(); + this.lbCurrentOperation = new System.Windows.Forms.Label(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.lbOutput = new System.Windows.Forms.ListBox(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.SuspendLayout(); + // + // btnCloseCancel + // + this.btnCloseCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCloseCancel.Location = new System.Drawing.Point(346, 187); + this.btnCloseCancel.Name = "btnCloseCancel"; + this.btnCloseCancel.Size = new System.Drawing.Size(75, 23); + this.btnCloseCancel.TabIndex = 0; + this.btnCloseCancel.Text = "Cancel"; + this.btnCloseCancel.UseVisualStyleBackColor = true; + this.btnCloseCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // lbCurrentOperation + // + this.lbCurrentOperation.AutoSize = true; + this.lbCurrentOperation.Location = new System.Drawing.Point(12, 29); + this.lbCurrentOperation.Name = "lbCurrentOperation"; + this.lbCurrentOperation.Size = new System.Drawing.Size(0, 13); + this.lbCurrentOperation.TabIndex = 1; + // + // progressBar1 + // + this.progressBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.progressBar1.Location = new System.Drawing.Point(13, 10); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(408, 18); + this.progressBar1.TabIndex = 2; + // + // lbOutput + // + this.lbOutput.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.lbOutput.FormattingEnabled = true; + this.lbOutput.Location = new System.Drawing.Point(13, 52); + this.lbOutput.Name = "lbOutput"; + this.lbOutput.Size = new System.Drawing.Size(408, 121); + this.lbOutput.TabIndex = 5; + // + // checkBox1 + // + this.checkBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.checkBox1.AutoSize = true; + this.checkBox1.Location = new System.Drawing.Point(13, 191); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(251, 17); + this.checkBox1.TabIndex = 6; + this.checkBox1.Text = "Close this window when the search is complete."; + this.checkBox1.UseVisualStyleBackColor = true; + // this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // SearchProgressForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(433, 216); + this.Controls.Add(this.checkBox1); + this.Controls.Add(this.lbOutput); + this.Controls.Add(this.progressBar1); + this.Controls.Add(this.lbCurrentOperation); + this.Controls.Add(this.btnCloseCancel); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.Name = "SearchProgressForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Search Progress"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnCloseCancel; + private System.Windows.Forms.Label lbCurrentOperation; + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.ListBox lbOutput; + private System.Windows.Forms.CheckBox checkBox1; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchProgressForm.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchProgressForm.cs new file mode 100644 index 00000000..2ad09b12 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchProgressForm.cs @@ -0,0 +1,169 @@ +using System; +using System.ComponentModel; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; + +namespace HydroDesktop.Plugins.Search.Searching +{ + public partial class SearchProgressForm : Form + { + #region Fields + + private readonly Searcher _searcher; + + #endregion + + #region Constructors + + public SearchProgressForm(Searcher searcher) + { + if (searcher == null) throw new ArgumentNullException("searcher"); + _searcher = searcher; + + InitializeComponent(); + + SubscribeToSearcherEvents(); + Disposed += SearchProgressForm_Disposed; + } + + #endregion + + #region Private methods + + void SearchProgressForm_Disposed(object sender, EventArgs e) + { + UnSubscribeToSearcherEvents(); + } + + private void SubscribeToSearcherEvents() + { + _searcher.OnMessage += searcher_OnMessage; + _searcher.ProgressChanged += searcher_ProgressChanged; + } + + private void UnSubscribeToSearcherEvents() + { + _searcher.OnMessage -= searcher_OnMessage; + _searcher.ProgressChanged -= searcher_ProgressChanged; + } + + public void DoSearchFinished(CompletedEventArgs e) + { + UnSubscribeToSearcherEvents(); + + + if (!_searcher.IsUIVisible && !checkBox1.Checked) + { + _searcher.ShowUI(); + } + + if (checkBox1.Checked) + { + _searcher.HideUI(); + } + + btnCloseCancel.Text = "Close"; + btnCloseCancel.Enabled = true; + btnCloseCancel.Click -= btnCancel_Click; + btnCloseCancel.Click += btnHide_Click; + checkBox1.Click += checkBox1_CheckedChanged; + // Text = "Search Finished"; + + string message; + switch (e.Reason) + { + case CompletedReasones.Cancelled: + message = "Search has been canceled successfully."; + break; + case CompletedReasones.Faulted: + message = "Search has been faulted due to an unhandled exception."; + break; + case CompletedReasones.NormalCompleted: + message = e.Result == null || e.Result.IsEmpty() + ? "No results were found. Please change the search criteria." + : "Search finished successfully."; + break; + default: + message = "Search was finished for unknown reason."; + break; + } + + searcher_OnMessage(_searcher, new LogMessageEventArgs(message)); + } + + void searcher_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + ThreadSafeSetText(lbCurrentOperation, Convert.ToString(e.UserState)); + ThreadSafeChangeProgressBarValue(progressBar1, e.ProgressPercentage); + } + + void searcher_OnMessage(object sender, LogMessageEventArgs e) + { + var split = e.Message.Split(new[] { Environment.NewLine }, StringSplitOptions.None); + split[0] = DateTime.Now.ToLongTimeString() + " " + split[0]; + foreach (var mes in split) + ThreadSafeAddItemToLog(lbOutput, mes); + + if (e.Exception != null) + { + var message = string.Format("Exception details:" + Environment.NewLine + + "Message: {0}" + Environment.NewLine + + "Stacktrace: {1}", e.Exception.Message, + e.Exception.StackTrace); + split = message.Split(new[] { Environment.NewLine }, StringSplitOptions.None); + foreach (var mes in split) + ThreadSafeAddItemToLog(lbOutput, mes); + + if (e.Exception.InnerException != null) + ThreadSafeAddItemToLog(lbOutput, "Inner exception: " + e.Exception.InnerException.Message); + } + } + + private void btnCancel_Click(object sender, EventArgs e) + { + if (_searcher.IsBusy) + { + if (MessageBox.Show("Are you sure you want to cancel search?", "Cancel search", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == + DialogResult.OK) + { + _searcher.Cancel(); + btnCloseCancel.Enabled = false; + } + } + } + + private void btnHide_Click(object sender, EventArgs e) + { + _searcher.HideUI(); + } + + private void ThreadSafeAddItemToLog(ListBox listBox, object value) + { + listBox.UIThread(delegate + { + listBox.Items.Add(value); + + // scroll to last item + listBox.SelectedIndex = listBox.Items.Count - 1; + }); + } + + private static void ThreadSafeChangeProgressBarValue(ProgressBar pb, int value) + { + pb.UIThread(() => pb.Value = value); + } + + private static void ThreadSafeSetText(Control label, string value) + { + label.UIThread(() => label.Text = value); + } + + #endregion + + private void checkBox1_CheckedChanged(object sender, EventArgs e) + { + if(checkBox1.Checked) + _searcher.HideUI(); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchProgressForm.resx b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchProgressForm.resx new file mode 100644 index 00000000..f6f76ad1 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchProgressForm.resx @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAIAEBAAAAAAIABoBAAAJgAAACAgAAAAACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAEAE + AAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////ATY2m0ljY6FF////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////ASw8rXMNZuH9IW7P/1tZn0v///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////ARIpqW0JauT/K631/0vE8/9LTKaJ////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////ASg/u3UIbOj/K631/0zI9v9JYrvD19jcD/Du7wP///8B////Aenr6xWbm5xjioqKj4OC + gpmPj5B309PTH1tfwnFFmeT/LbD2/03J9/8dPbOjxcbMA////wH///8B////AXd3dzuOjI3hpaKg/7Ku + qOGuqaHtiYiH/3h4eP9qaoPlycbH/23O9P9GYcXN4uHiC////wH///8B8O7vA3Bvbz+lpKP73M++u+nT + uUM8Oz01KCcqMd3IsT+toZS/np2d/4OElvdRW9KX0MzHFf///wH///8B////Af///wGamprP7dvEw1ZP + STFJT1XXcnh9/2ltcf9SRjTdOjk5MaWVhrdiY2P3sa2uI97e3gf///8B////Af///wF8fHxl1s3F//fU + q0MwTELRPXFj/1B2X/+Lg0f/zaA+/4dsN9nfwJ0vgXt2/1hZWX////8B////Af///wH///8BjYuLne3Y + xOcwLzIrOIxf/0G1gP96sHj/TKNq/1OZWP+skT//KyouL6yXhf9sa2vT////Af///wH///8B////AZST + lKXx17/5UEdCN11yZ/9SjHX/Tolw/0+LZv9up3H/l5Jb/zk2NjWyl4T/aWlp0////wH///8B////Af// + /wGKioqL6NXF//GxgT9uaGHdnJeR/6OOYv/bx5z/2cio/2NaSvHlsYVhmYR8/2JhYaP///8B////Af// + /wH///8Bo6SkI7W0s/f0t4+xbGNZS4lxPufWqkX/y6tm/6moqd1sZlpFz5Vx129ubv+pqalJ////Af// + /wH///8B////Af///wGIiYl/0cW//+2pgamsinIdJCMoMyUkKDPEo4ct15x505eKhf92dnWp////Af// + /wH///8B////Af///wH///8B////AYaGh3G6t7X937Ke59ifhs3UmoHRxpyM/4+NjP9zc3SZ8fDxB/// + /wH///8B////Af///wH///8B////Af///wH///8BiImJLYmHh4+pp6fFn52dt3R0dIWGh4cv////Af// + /wH///8B////Af///wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAA + AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AVJT + qVsqKpXJS0ubv5+esVH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Adbf + +QM5OqFbDi20+RFl6f8KVdb/HiuY/3d2mzP///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8BW12udxEtsvcKevT/DY31/y6v9P8ui9r/R0Wc38/Jwx3///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8BdHNzAwQEfmEGJ7X/Cnr0/w+O9P8trvP/Rc/8/1fe/P8pK6D9q6usM////wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wE8RLFdCC249wh79f8NjfX/La7z/0PN/P9b5v7/NX/X/09QqN/f3tkX////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wHAxtEDSlG3dQQvwf8Ie/X/D470/y2u8/9Fz/z/W+X+/zN81f9JS6rp19jcO/// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B7+zlBUVNtmcLMb/3CHv1/w2N9f8trvP/Q838/1vm/v84ieD/RUir5bq6 + zz3///8B////Af///wHw7u8D////Af///wH///8B////Af///wH///8B8O7vBfDu7w/d29oh09HRM8LB + wTPY1dUz4ePkH+Xm5gP///8B////Af///wF5fMGbFj2+/wyA9f8PjvT/La7z/0XP/P9b5f7/Mnza/wsO + lcHFxswL////Af///wH///8B8O7vA/Du7wP///8B////Af///wH///8B////Aenr61Opqqudi4qL23x7 + e+2AgID/dnV1/3V0dP95enrrnZycz9LS0nPo5+MLwsXdPS80ve2U2+//Xs/w/za59f9Dzfz/W+b+/zqN + 5/8YH6m5CQlOFf///wH///8B////Af///wH///8B////Af///wH///8B////AcjLyxeFhYSLeHh4/35+ + fv+ZmZr/nZ2e/5ubnP+ZmZn/lJSU/4iIiP9tbm7/WFhY/5KRkf2Vl52ZSUqf/7m0tf/Fw8j/dOT5/1vl + /v83hOT/OD617eLh4in///8B////Af///wH///8B////Af///wH///8B////Af///wGbm5slZmZmrY2L + jP+rp6j/uLSz/8a+tv/Wyrntx8G3m8a8rrfMwa7/pqCa/4yNjf+Ojo7/aWpq/0dHSP+WlJX/xsLD/+Lg + 3v+l5fL/QYzq/0JIuPmxr79P////Af///wH///8B////Af///wH///8B////Af///wH///8BjYyMH3Fx + ce+kpKT/wr69/9zQwuH13cK/+uXEOff37hP///8B////Af///wH/7MU36dC6p6yfkf+OjYz/l5iY/7u5 + uf/d3Nr/am+o/0dW2v9IUcj30MzHVf///wH///8B////Af///wH///8B////Af///wHw7u8J8O7vBays + rBFnZ2fLrays/9DNyv/2373j/uC8J////wFMTE4VNDQ2VyIhJGciISRnMTAzWVFQUxvW1tED+ODDSbyq + kbeDgID/pqam/2VlZv9fXm/hS0vVOcjH3C3///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8BY2RkfZ2dnv/W09D/+d653/7etyk+PkAHMzI1ez09QeloaWv/h4iJ/4eHif9gYGP/NjY58TQz + NodRUFML//LJBcOskMeDgoH/YWFi/2ZnZ+HPz88R////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////AbK2tgN+fn3BysfH//jjyO/+3rVBSklMBykoK49HT1b9Y3B5/2x4gP9ueoL/Y210/11j + Zv9wXDr/X0op/zMyM6dWVVgL99u3M5+IeeeMjY3/ODg4/62pqnf///8B3t7eDd7e3g3///8B////Af// + /wH///8B////Af///wH///8Be3t6ma6srv/m39j//tSjm/701wMxMDNrLzpC/T9UYP9CXGf/QVtk/zxV + W/9IV1H/p4M8/7+POP/Jlzn/gmYy/TUzNH3///8B7sulm3Z0c/9mZ2f/YGFh0czMzAX///8B////Af// + /wH///8B////Af///wH///8B////Aevr6xdzc3Phzc3P//ndwP/+4sFnUE9SCyw7NNs2eVf/OINg/zuS + Z/9OkmT/dZlc/5CXTP+tnEX/waJD/+24Rf/jsEP/VUky61BOURP92qkPoId3/4qKiv9AQED5ure3Lf// + /wH///8B////Af///wH///8B////Af///wH///8ByMbHQ4OCg//b2tn//dau9////wE+PUBFMGBG/z6r + b/8/sXn/Sq57/7C3eP+WqWj/U6Np/z2obP8/ml7/jo1E/+y3RP+Qczb/NjU5Uf///wHIn37/i4yM/zk5 + Ov+5t7eT////Af///wH///8B////Af///wH///8B////Af///wGFhIQ1ioeH/+fh3f//zqKn////AScm + KmU1eVT/Pq92/z+4gv8/vov/Qr2M/2Cmdf9imWT/P6ty/z2lZ/9EmFr/h5JI/66KOv8jIiZn////Adqt + h/+GhIT/Pj4+/7Wysrn///8B////Af///wH///8B////Af///wH///8B////AaWkpE+RkJH/6efj//zJ + nuv///8BJSQnZ0ZcUP9GiGj/P594/z+3jP9KrIb/SqmA/02jc/8/rHX/PaZq/z2fYP9xikn/qIc8/yIh + JWf+3rYL3K+J/4qGhv88PDz/r66vt////wH///8B////Af///wH///8B////Af///wH///8BsbGxR4uL + jP/o6eX/+8OW///MmSM+PUBRX11e/4mHhv9xcnD/W2pj/1xqYP9LZ13/SF9S/2t+YP+dq33/oqx9/7S2 + hv+PgWH/MTAzWf7guQfTnXT/kI2O/zo6Ov+zsrKb////Af///wH///8B////Af///wH///8B////Af// + /wHi4eFLfn5+/ePl5P/4xJz//8qWYUpITBFLSUvrpqOi/6ShoP+QjYv/dHFu/4R2XP/VuHz/7MyK/9K3 + gv/oyYr/rZdr/1xURfNPT1Ef/s6aW7CAZv+Zlpf/Ozo6/8nJyXn///8B////Af///wH///8B////Af// + /wH///8B////Afr6+gt3d3fX09TV//LYwv/7rXmJ////AT47O49yZkz/o52T/5uUh/+3m1z/3bll/87A + ov/f2Mr/y8nH/+Hazv9PS0X/Liwv15+JdjH/vYfbim9l/5KOjv9KSUnvzcrKI////wH///8B////Af// + /wH///8B////Af///wH///8B9vb2A5qbm3mZmZn/6eXi//ilden7z5spSEdJETw5N7+Od0L/161O//HA + Tv/Vq0r/zK9t/9TIr//y8PH/5ubn5zs6PZU9PD819sWTd9eOZf+Qjo7/UlFR/5STk8X///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B6urqD3R0dN3Y2Nf/7NC6//mpdLf/4Ls/iX1wHzo2 + M6dqVzL7t5A8/96tQv/erUL/roo9/2JgX/9KSUyTaGdqA/7mrkX1qHbnlXVr/5iVlv9ERUX/19jZXf// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BhYWGV4iJiffh4eH/5ree//ex + frX517UV////AT08Pi0oJythISEnZyIhJmcpKCxjOzo8M4F/fwP93bxf8rCC86NyXf+sqan/TEtL/6in + psH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wHk5OQHiIiIq6Cf + oP/f3+D/5LSb//CTZN/3vpZD////Af///wH///8B////Af///wH+6dMN/s2ib+eUaf2geWr/rqyu/2Ji + Yv9mZma55+bmKf///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8DYWJhZ5SUlu3a2tr/39PK/+SNZ/vkdkij6X9MkfOecaXznHCh74ZYqd6IYv++c1f/o5mW/7S0 + tf9eXl/5e3x82fHw8Rn///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8BjY2NcXx8fPmysrP/397e/9jRzf/Psqj/yKCT/8Odkf/Co5n/vLW1/8PA + wv+Qj47/WFhZ/4WEhIXf5OYN////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8Bx8bHI3p7e491dHTnkY+P/6qpqP+2tLX/sbCw/5ua + m/98fHz/W1tby05PT2nR0tJP////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Ac/LzBuXlpY9m5ubeZ+Z + mZuQiopxkI6ObY2OjjnP0dEV////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchResult.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchResult.cs new file mode 100644 index 00000000..8f15dc55 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SearchResult.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics.Contracts; +using System.Linq; +using DotSpatial.Data; + +namespace HydroDesktop.Plugins.Search.Searching +{ + public class SearchResult + { + private readonly IEnumerable _featuresPerDataSource; + + public SearchResult(IEnumerable featuresPerDataSource) + { + if (featuresPerDataSource == null) throw new ArgumentNullException("featuresPerDataSource"); + _featuresPerDataSource = featuresPerDataSource; + } + + /// + /// Dictionary of features per DataSources + /// + public IEnumerable ResultItems + { + get { return _featuresPerDataSource; } + } + + public bool IsEmpty() + { + return ResultItems.All(item => item.FeatureSet.Features.Count <= 0); + } + } + + public class SearchResultItem + { + public IFeatureSet FeatureSet { get; private set; } + public string ServiceCode { get; private set; } + + public SearchResultItem(string serviceCode, IFeatureSet featureSet) + { + if (serviceCode == null) throw new ArgumentNullException("serviceCode"); + if (featureSet == null) throw new ArgumentNullException("featureSet"); + Contract.EndContractBlock(); + + ServiceCode = serviceCode; + FeatureSet = featureSet; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Searching/Searcher.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/Searcher.cs new file mode 100644 index 00000000..75a4d96e --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/Searcher.cs @@ -0,0 +1,320 @@ +using System; +using System.ComponentModel; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using HydroDesktop.Common; +using HydroDesktop.Plugins.Search.Keywords; +using HydroDesktop.Plugins.Search.Searching.Exceptions; +using HydroDesktop.Plugins.Search.Settings; + +namespace HydroDesktop.Plugins.Search.Searching +{ + /// + /// Data series searcher. + /// + public class Searcher + { + #region Fields + + private SearchProgressForm _searcherUI; + private Task _searchTask; + private CancellationTokenSource _cancellationTokenSource; + private readonly IWin32Window _formsOwner; + + #endregion + + #region Events + + /// + /// Raised when progress changed. + /// + public event ProgressChangedEventHandler ProgressChanged; + /// + /// Raised when Searcher sends any message. + /// + public event EventHandler OnMessage; + /// + /// Raised whane search is completed. + /// + public event EventHandler Completed; + + #endregion + + public Searcher(IWin32Window formsOwner) + { + _formsOwner = formsOwner; + } + + #region Public methods + + /// + /// Run search. + /// + /// Settings to start search. + /// Throws if is null. + /// Throws if previous search command is still active. + /// Throws if settings to search has any problems. + public void Run(SearchSettings settings) + { + if (settings == null) + throw new ArgumentNullException("settings"); + if (IsBusy) + { + ShowUI(); + throw new InvalidOperationException("The previous search command is still active."); + } + _searcherUI = new SearchProgressForm(this); + ShowUI(); + LogMessage("Search started."); + InternalStartSearching(settings); + } + + /// + /// Cancel searching. + /// + public void Cancel() + { + if (_cancellationTokenSource == null || + !_cancellationTokenSource.Token.CanBeCanceled) return; + + LogMessage("Cancelling..."); + _cancellationTokenSource.Cancel(); + } + + /// + /// Shows that searhing is active. + /// + public bool IsBusy + { + get + { + return _searchTask != null && !_searchTask.IsCompleted; + } + } + + public bool IsUIVisible + { + get + { + if (_searcherUI == null) return false; + return _searcherUI.Visible; + } + } + + /// + /// Show GUI for searching. + /// + public void ShowUI() + { + if (_searcherUI == null) return; + _searcherUI.Show(_formsOwner); + } + + /// + /// Hide GUI for searching. + /// + public void HideUI() + { + if (_searcherUI == null) return; + _searcherUI.Hide(); + } + + #endregion + + #region Private methods + + private void InternalStartSearching(SearchSettings settings) + { + _cancellationTokenSource = new CancellationTokenSource(); + _searchTask = Task.Factory.StartNew(DoSearch, settings, _cancellationTokenSource.Token); + _searchTask.ContinueWith(OnFinishedTask, new CancellationTokenSource().Token, TaskContinuationOptions.None, + TaskScheduler.FromCurrentSynchronizationContext()); + } + + private void LogAggregateException(Exception ex) + { + var aggr = ex as AggregateException; + if (aggr != null) + { + LogMessage("AggregateException Error: " + aggr.Message); + foreach (var innerException in aggr.InnerExceptions) + { + LogAggregateException(innerException); + } + } + else + { + LogMessage("Error:", ex); + } + } + + private void OnFinishedTask(Task task) + { + if (task == null) return; + SearchResult result = null; + CompletedReasones reason; + if (task.IsFaulted) + { + reason = CompletedReasones.Faulted; + if (task.Exception != null) + { + foreach (var error in task.Exception.InnerExceptions) + { + LogAggregateException(error); + } + } + else + { + LogMessage("Unknow error."); + } + } + else if (task.IsCanceled) + { + reason = CompletedReasones.Cancelled; + } + else + { + try + { + result = task.Result; + reason = CompletedReasones.NormalCompleted; + } + catch (AggregateException aex) + { + reason = CompletedReasones.Faulted; + foreach (var error in aex.InnerExceptions) + { + LogMessage("Error:", error); + } + } + } + + var completeArgs = new CompletedEventArgs(result, reason, new ProgressHandler(this)); + RaiseCompleted(completeArgs); + _searcherUI.DoSearchFinished(completeArgs); + } + + private SearchResult DoSearch(object state) + { + var settings = (SearchSettings) state; + var progressHandler = new ProgressHandler(this); + + SeriesSearcher searcher; + double tileWidth, tileHeight; + if (settings.CatalogSettings.TypeOfCatalog == TypeOfCatalog.HisCentral) + { + searcher = new HISCentralSearcher(settings.CatalogSettings.HISCentralUrl); + tileWidth = 1.0; + tileHeight = 1.0; + } + else + { + searcher = new MetadataCacheSearcher(); + tileWidth = 2.0; + tileHeight = 2.0; + } + + SearchResult result; + + var webServices = settings.WebServicesSettings.TotalCount == settings.WebServicesSettings.CheckedCount && + settings.WebServicesSettings.TotalCount > 1 + ? new WebServiceNode[] {} + : settings.WebServicesSettings.WebServices.Where(item => item.Checked).ToArray(); + + var keywords = settings.KeywordsSettings.SelectedKeywords.ToList(); + if (settings.CatalogSettings.TypeOfCatalog == TypeOfCatalog.LocalMetadataCache) + { + if (keywords.Contains(Constants.RootName)) + { + keywords.Clear(); + } + }else + { + keywords = HisCentralKeywordsList.RefineKeywordList(settings.KeywordsSettings.OntologyDesc, keywords); + } + + if (settings.AreaSettings.AreaRectangle != null) + { + var box = Area.AreaHelper.ReprojectBoxToWGS84(settings.AreaSettings.AreaRectangle, + settings.AreaSettings.RectangleProjection); + + result = searcher.GetSeriesCatalogInRectangle(box, keywords.ToArray(), tileWidth, tileHeight, + settings.DateSettings.StartDate, + settings.DateSettings.EndDate, + webServices, progressHandler); + } + else + { + var polygons = Area.AreaHelper.ReprojectPolygonsToWGS84(settings.AreaSettings.Polygons); + + result = searcher.GetSeriesCatalogInPolygon(polygons, keywords.ToArray(), tileWidth, tileHeight, + settings.DateSettings.StartDate, + settings.DateSettings.EndDate, + webServices, progressHandler); + } + return result; + } + + private void RaiseCompleted(CompletedEventArgs eventArgs) + { + var handler = Completed; + if (handler != null) + { + handler(this, eventArgs); + } + } + + private void LogMessage(string message, Exception exception = null) + { + var handler = OnMessage; + if (handler != null) + { + handler(this, new LogMessageEventArgs(message, exception)); + } + } + + private void Progress(int progressPercentage, string message) + { + var progressHandler = ProgressChanged; + if (progressHandler != null) + { + progressHandler(this, new ProgressChangedEventArgs(progressPercentage, message)); + } + } + + #endregion + + private class ProgressHandler : IProgressHandler + { + private readonly Searcher _parent; + + public ProgressHandler(Searcher parent) + { + if (parent == null) throw new ArgumentNullException("parent"); + _parent = parent; + } + + public void ReportProgress(int persentage, object state) + { + _parent.Progress(persentage, state.ToString()); + } + + public void CheckForCancel() + { + _parent._cancellationTokenSource.Token.ThrowIfCancellationRequested(); + } + + public void ReportMessage(string message) + { + _parent.LogMessage(message); + } + + public CancellationToken CancellationToken + { + get { return _parent._cancellationTokenSource.Token; } + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SeriesComparer.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SeriesComparer.cs new file mode 100644 index 00000000..31da9c16 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SeriesComparer.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using HydroDesktop.Interfaces.ObjectModel; +using System.Diagnostics; + +namespace HydroDesktop.Plugins.Search.Searching +{ + class SeriesComparer : IEqualityComparer + { + + public bool Equals(SeriesDataCart x, SeriesDataCart y) + { + if (x.SiteName.Equals(y.SiteName)) + { + return true; + } + return false; + } + + public int GetHashCode(SeriesDataCart obj) + { + return obj.SiteName.GetHashCode(); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SeriesSearcher.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SeriesSearcher.cs new file mode 100644 index 00000000..afb89f72 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Searching/SeriesSearcher.cs @@ -0,0 +1,277 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Threading; +using System.Threading.Tasks; +using DotSpatial.Data; +using DotSpatial.Topology; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.WebServices; +using HydroDesktop.Plugins.Search.Settings; +using IProgressHandler = HydroDesktop.Common.IProgressHandler; + +namespace HydroDesktop.Plugins.Search.Searching +{ + public abstract class SeriesSearcher + { + private int totalSeriesCount = 0; + + public SearchResult GetSeriesCatalogInRectangle(Box extentBox, string[] keywords, double tileWidth, double tileHeight, + DateTime startDate, DateTime endDate, WebServiceNode[] serviceIDs, IProgressHandler bgWorker) + { + if (extentBox == null) throw new ArgumentNullException("extentBox"); + if (serviceIDs == null) throw new ArgumentNullException("serviceIDs"); + if (bgWorker == null) throw new ArgumentNullException("bgWorker"); + + if (keywords == null || keywords.Length == 0) + { + keywords = new[] { String.Empty }; + } + + bgWorker.CheckForCancel(); + var extent = new Extent(extentBox.XMin, extentBox.YMin, extentBox.XMax, extentBox.YMax); + var fullSeriesList = GetSeriesListForExtent(extent, keywords, tileWidth, tileHeight, startDate, endDate, + serviceIDs, bgWorker, series => true); + SearchResult resultFs = null; + if (fullSeriesList.Count > 0) + { + bgWorker.ReportMessage("Calculating Points..."); + resultFs = SearchHelper.ToFeatureSetsByDataSource(fullSeriesList); + } + + bgWorker.CheckForCancel(); + var message = string.Format("{0} Series found.", totalSeriesCount); + bgWorker.ReportProgress(100, "Search Finished. " + message); + return resultFs; + } + + public SearchResult GetSeriesCatalogInPolygon(IList polygons, string[] keywords, double tileWidth, double tileHeight, + DateTime startDate, DateTime endDate, WebServiceNode[] serviceIDs, IProgressHandler bgWorker) + { + if (polygons == null) throw new ArgumentNullException("polygons"); + if (bgWorker == null) throw new ArgumentNullException("bgWorker"); + if (polygons.Count == 0) + { + throw new ArgumentException("The number of polygons must be greater than zero."); + } + + if (keywords == null || keywords.Length == 0) + { + keywords = new[] { String.Empty }; + } + + var fullSeriesList = new List(); + for (int index = 0; index < polygons.Count; index++) + { + if (polygons.Count > 1) + { + bgWorker.ReportMessage(string.Format("Processing polygons: {0} of {1}", index + 1, polygons.Count)); + } + + bgWorker.CheckForCancel(); + var polygon = polygons[index]; + var extentBox = new Extent(polygon.Envelope); + var seriesForPolygon = GetSeriesListForExtent(extentBox, keywords, tileWidth, tileHeight, startDate, + endDate, + serviceIDs, bgWorker, + item => polygon.Intersects(new Coordinate(item.Longitude, item.Latitude))); + fullSeriesList.AddRange(seriesForPolygon); + } + + SearchResult resultFs = null; + if (fullSeriesList.Count > 0) + { + bgWorker.ReportMessage("Calculating Points..."); + resultFs = SearchHelper.ToFeatureSetsByDataSource(fullSeriesList); + } + + bgWorker.CheckForCancel(); + var message = string.Format("{0} Series found.", totalSeriesCount); + bgWorker.ReportProgress(100, "Search Finished. " + message); + return resultFs; + } + + private List GetSeriesListForExtent(Extent extent, IEnumerable keywords, double tileWidth, double tileHeight, + DateTime startDate, DateTime endDate, ICollection serviceIDs, + IProgressHandler bgWorker, Func seriesFilter) + { + var servicesToSearch = new List>(); + if (serviceIDs.Count > 0) + { + foreach (var webService in serviceIDs) + { + if (webService.ServiceBoundingBox == null) + { + servicesToSearch.Add(new Tuple(new[] { webService }, extent)); + continue; + } + const double eps = 0.05; //tolerance (0.05 deg) used for services whose bounding box is one point + var wsBox = webService.ServiceBoundingBox; + var wsExtent = new Extent(wsBox.XMin - eps, wsBox.YMin - eps, wsBox.XMax + eps, wsBox.YMax + eps); + if (wsExtent.Intersects(extent)) + { + servicesToSearch.Add(new Tuple(new[] { webService }, wsExtent.Intersection(extent))); + } + } + } + else + { + servicesToSearch.Add(new Tuple(new WebServiceNode[] { }, extent)); + } + + var servicesWithExtents = new List>>(servicesToSearch.Count); + int totalTilesCount = 0; + foreach (var wsInfo in servicesToSearch) + { + var tiles = SearchHelper.CreateTiles(wsInfo.Item2, tileWidth, tileHeight); + servicesWithExtents.Add(new Tuple>(wsInfo.Item1, tiles)); + totalTilesCount += tiles.Count; + } + + var fullSeriesList = new List>(); + long currentTileIndex = 0; + int tilesFinished = 0; + totalSeriesCount = 0; + + bgWorker.ReportProgress(0, "0 Series found"); + + var serviceLoopOptions = new ParallelOptions + { + CancellationToken = bgWorker.CancellationToken, + MaxDegreeOfParallelism = 2, + }; + var tileLoopOptions = new ParallelOptions + { + CancellationToken = bgWorker.CancellationToken, + // Note: currently HIS Central returns timeout if many requests are sent in the same time. + // To test set MaxDegreeOfParallelism = -1 + MaxDegreeOfParallelism = 4, + }; + + Parallel.ForEach(servicesWithExtents, serviceLoopOptions, wsInfo => + { + bgWorker.CheckForCancel(); + var ids = wsInfo.Item1.Select(item => item.ServiceID).ToArray(); + var tiles = wsInfo.Item2; + + Parallel.ForEach(tiles, tileLoopOptions, tile => + { + var current = Interlocked.Add(ref currentTileIndex, 1); + bgWorker.CheckForCancel(); + + // Do the web service call + var tileSeriesList = new List(); + + if (SearchSettings.AndSearch == true) + { + //CHANGES FOR "AND" SEARCH + var totalTileSeriesList = new List(); + var tileSeriesList2 = new List(); + var tileSeriesList3 = new List(); + var tileSeriesList4 = new List(); + + SeriesComparer sc = new SeriesComparer(); + + for (int i = 0; i < keywords.Count(); i++) + { + String keyword = keywords.ElementAt(i); + + bgWorker.CheckForCancel(); + var series = GetSeriesCatalogForBox(tile.MinX, tile.MaxX, tile.MinY, tile.MaxY, keyword, startDate, endDate, ids, bgWorker, current, totalTilesCount); + totalTileSeriesList.AddRange(series); + if (tileSeriesList.Count() == 0) + { + if (i == 0) + { + tileSeriesList.AddRange(series); + } + else + { + break; + } + } + else + { + + tileSeriesList2.AddRange(tileSeriesList.Intersect(series, sc)); + tileSeriesList.Clear(); + tileSeriesList.AddRange(tileSeriesList2); + tileSeriesList2.Clear(); + } + } + + + for (int i = 0; i < tileSeriesList.Count(); i++) + { + tileSeriesList4 = totalTileSeriesList.Where(item => (item.SiteName.Equals(tileSeriesList.ElementAt(i).SiteName))).ToList(); + tileSeriesList3.AddRange(tileSeriesList4); + } + + tileSeriesList = tileSeriesList3; + } + else + { + tileSeriesList = new List(); + foreach (var keyword in keywords) + { + bgWorker.CheckForCancel(); + var series = GetSeriesCatalogForBox(tile.MinX, tile.MaxX, tile.MinY, tile.MaxY, keyword, startDate, endDate, ids, bgWorker, current, totalTilesCount); + tileSeriesList.AddRange(series); + } + } + //END CHANGES FOR "AND" SEARCH + + bgWorker.CheckForCancel(); + if (tileSeriesList.Count > 0) + { + var filtered = tileSeriesList.Where(seriesFilter).ToList(); + if (filtered.Count > 0) + { + lock (_lockGetSeries) + { + totalSeriesCount += filtered.Count; + fullSeriesList.Add(filtered); + } + } + } + + // Report progress + var currentFinished = Interlocked.Add(ref tilesFinished, 1); + var message = string.Format("{0} Series found", totalSeriesCount); + var percentProgress = (currentFinished * 100) / totalTilesCount; + bgWorker.ReportProgress(percentProgress, message); + }); + }); + + // Collect all series into result list + var result = new List(totalSeriesCount); + fullSeriesList.ForEach(result.AddRange); + return result; + } + + private static readonly object _lockGetSeries = new object(); + + /// + /// Gets all data series within the geographic bounding box that match the + /// specified criteria + /// + /// minimum x (longitude) + /// maximum x (longitude) + /// minimum y (latitude) + /// maximum y (latitude) + /// the concept keyword. If set to null, + /// results will not be filtered by concept keyword + /// start date. If set to null, results will not be filtered by start date. + /// end date. If set to null, results will not be filtered by end date. + /// array of serviceIDs provided by GetServicesInBox. + /// If set to null, results will not be filtered by web service. + /// Progress handler + /// Current tile index + /// Total tiles number + /// A list of data series matching the specified criteria + protected abstract IEnumerable GetSeriesCatalogForBox(double xMin, double xMax, double yMin, double yMax, + string keyword, DateTime startDate, DateTime endDate, + int[] networkIDs, IProgressHandler bgWorker, long currentTile, long totalTilesCount); + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings.cs new file mode 100644 index 00000000..10d1489f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings.cs @@ -0,0 +1,33 @@ +namespace HydroDesktop.Plugins.Search.Properties +{ + + + // This class allows you to handle specific events on the settings class: + // The SettingChanging event is raised before a setting's value is changed. + // The PropertyChanged event is raised after a setting's value is changed. + // The SettingsLoaded event is raised after the setting values are loaded. + // The SettingsSaving event is raised before the setting values are saved. + internal sealed partial class Settings + { + + public Settings() + { + // // To add event handlers for saving and changing settings, uncomment the lines below: + // + // this.SettingChanging += this.SettingChangingEventHandler; + // + // this.SettingsSaving += this.SettingsSavingEventHandler; + // + } + + private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) + { + // Add code to handle the SettingChangingEvent event here. + } + + private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) + { + // Add code to handle the SettingsSaving event here. + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/AreaSettings.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/AreaSettings.cs new file mode 100644 index 00000000..3d456db9 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/AreaSettings.cs @@ -0,0 +1,78 @@ +using System; +using DotSpatial.Data; +using DotSpatial.Projections; +using HydroDesktop.WebServices; + +namespace HydroDesktop.Plugins.Search.Settings +{ + public class AreaSettings + { + public bool HasAnyArea + { + get + { + return AreaRectangle != null || + (Polygons != null && Polygons.Features.Count > 0); + } + } + + private Box _areaRectangle; + public Box AreaRectangle + { + get { return _areaRectangle; } + private set + { + _areaRectangle = value; + RaiseAreaRectangleChanged(); + } + } + public ProjectionInfo RectangleProjection { get; private set; } + + public void SetAreaRectangle(Extent extent, ProjectionInfo rectangleProjection) + { + var xMin = extent.MinX; + var yMin = extent.MinY; + var xMax = extent.MaxX; + var yMax = extent.MaxY; + var box = new Box(xMin, xMax, yMin, yMax); + SetAreaRectangle(box, rectangleProjection); + } + + public void SetAreaRectangle(Box areaRectangle, ProjectionInfo rectangleProjection) + { + RectangleProjection = rectangleProjection; + AreaRectangle = areaRectangle; + } + + private FeatureSet _polygons; + public FeatureSet Polygons + { + get { return _polygons; } + set + { + _polygons = value; + RaisePolygonsChanged(); + } + } + + public event EventHandler AreaRectangleChanged; + public event EventHandler PolygonsChanged; + + private void RaiseAreaRectangleChanged() + { + var handler = AreaRectangleChanged; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + private void RaisePolygonsChanged() + { + var handler = PolygonsChanged; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/CatalogSettings.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/CatalogSettings.cs new file mode 100644 index 00000000..a1dafef8 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/CatalogSettings.cs @@ -0,0 +1,67 @@ +using System; +using System.ComponentModel; +using HydroDesktop.Common; + +namespace HydroDesktop.Plugins.Search.Settings +{ + /// + /// Catalog settings + /// + public class CatalogSettings : ObservableObject + { + private string _hisCentralUrl; + public string HISCentralUrl + { + get { return _hisCentralUrl; } + set + { + _hisCentralUrl = value; + NotifyPropertyChanged(() => HISCentralUrl); + } + } + + private TypeOfCatalog _typeOfCatalog; + public TypeOfCatalog TypeOfCatalog + { + get { return _typeOfCatalog; } + set + { + _typeOfCatalog = value; + NotifyPropertyChanged(() => TypeOfCatalog); + } + } + + /// + /// Create deep copy of current instance. + /// + /// Deep copy. + public CatalogSettings Copy() + { + var result = new CatalogSettings(); + result.Copy(this); + return result; + + } + + /// + /// Create deep from source into current instance. + /// + /// Source. + /// must be not null. + public void Copy(CatalogSettings source) + { + if (source == null) throw new ArgumentNullException("source"); + + HISCentralUrl = source.HISCentralUrl; + TypeOfCatalog = source.TypeOfCatalog; + } + } + + public enum TypeOfCatalog + { + [Description("HIS Central")] + HisCentral, + [Description("Local Metadata Cache")] + LocalMetadataCache + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/DateSettings.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/DateSettings.cs new file mode 100644 index 00000000..d47a8b37 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/DateSettings.cs @@ -0,0 +1,61 @@ +using System; +using HydroDesktop.Common; + +namespace HydroDesktop.Plugins.Search.Settings +{ + public class DateSettings : ObservableObject + { + private DateTime _startDate; + public DateTime StartDate + { + get { return _startDate; } + set + { + _startDate = value; + NotifyPropertyChanged(() => StartDate); + } + } + + private DateTime _endDate; + public DateTime EndDate + { + get { return _endDate; } + set + { + _endDate = value; + NotifyPropertyChanged(() => EndDate); + } + } + + public DateSettings() + { + EndDate = DateTime.Now.Date; + StartDate = EndDate.AddYears(-5); + } + + /// + /// Create deep copy of current instance. + /// + /// Deep copy. + public DateSettings Copy() + { + var result = new DateSettings(); + result.Copy(this); + return result; + + } + + /// + /// Create deep from source into current instance. + /// + /// Source. + /// must be not null. + public void Copy(DateSettings source) + { + if (source == null) throw new ArgumentNullException("source"); + + StartDate = source.StartDate; + EndDate = source.EndDate; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/KeywordsSettings.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/KeywordsSettings.cs new file mode 100644 index 00000000..83ac1335 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/KeywordsSettings.cs @@ -0,0 +1,152 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using HydroDesktop.Plugins.Search.Keywords; + +namespace HydroDesktop.Plugins.Search.Settings +{ + public class KeywordsSettings + { + #region Fields + + private readonly SearchSettings _parent; + private OntologyDesc _ontologyDesc; + private IEnumerable _selectedKeywords; + + #endregion + + /// + /// Fires when Keywords/OntologyTree/Synonyms changed + /// + public event EventHandler KeywordsChanged; + + public KeywordsSettings(SearchSettings parent) + { + if (parent == null) throw new ArgumentNullException("parent"); + _parent = parent; + } + + + public IEnumerable SelectedKeywords + { + get { return _selectedKeywords ?? (_selectedKeywords = new string[]{}); } + set + { + _selectedKeywords = value; + } + } + + public IEnumerable Keywords + { + get + { + if (_ontologyDesc == null) + { + UpdateKeywordsAndOntology(); + } + Debug.Assert(_ontologyDesc != null); + return _ontologyDesc.Keywords; + } + } + + public OntologyTree OntologyTree + { + get + { + if (_ontologyDesc == null) + { + UpdateKeywordsAndOntology(); + } + Debug.Assert(_ontologyDesc != null); + return _ontologyDesc.OntoloyTree; + } + } + + public OntologyDesc OntologyDesc + { + get { return _ontologyDesc; } + } + + + /// + /// Returns synonym for keyword. + /// + /// Keyword to find synonym. + /// Synonym for keyword, or keyword, if synonym not found. + public string FindSynonym(string keyword) + { + if (_ontologyDesc == null) return keyword; + var synonyms = _ontologyDesc.Synonyms; + if (synonyms != null) + { + foreach (var ontoPath in synonyms) + { + if (string.Equals(ontoPath.SearchableKeyword, keyword, StringComparison.OrdinalIgnoreCase)) + { + keyword = ontoPath.ConceptName; + break; + } + } + } + + return keyword; + } + + public void UpdateKeywordsAndOntology(CatalogSettings catalogSettings = null) + { + var desc = KeywordsServicesFactory.GetKeywordsList(catalogSettings ?? _parent.CatalogSettings).GetOntologyDesc(); + + // Select root of OntoloyTree + if (_selectedKeywords == null && + desc.OntoloyTree.Nodes.Count > 0) + { + _selectedKeywords = new[] { desc.OntoloyTree.Nodes[0].Text }; + } + + _ontologyDesc = desc; + RaiseKeywordsChanged(); + } + + /// + /// Create deep copy of current instance. + /// + /// Deep copy. + public KeywordsSettings Copy() + { + var result = new KeywordsSettings(_parent); + result.Copy(this); + return result; + } + + /// + /// Create deep from source into current instance. + /// + /// Source. + /// must be not null. + public void Copy(KeywordsSettings source) + { + if (source == null) throw new ArgumentNullException("source"); + + var selectedKeywords = new List(source.SelectedKeywords.Count()); + selectedKeywords.AddRange(source.SelectedKeywords.Select(s => s)); + SelectedKeywords = selectedKeywords; + + _ontologyDesc = source._ontologyDesc; + RaiseKeywordsChanged(); + } + + #region Private methods + + private void RaiseKeywordsChanged() + { + var handler = KeywordsChanged; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/OntologyNode.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/OntologyNode.cs new file mode 100644 index 00000000..9e47f9b6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/OntologyNode.cs @@ -0,0 +1,48 @@ +using System.Collections.ObjectModel; + +namespace HydroDesktop.Plugins.Search.Settings +{ + public class OntologyNode + { + private readonly ObservableCollection _childs = new ObservableCollection(); + + public OntologyNode() + :this(null) + { + + } + + public OntologyNode(string text) + { + Text = text; + _childs.CollectionChanged += _childs_CollectionChanged; + } + + void _childs_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) + { + if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) + { + foreach (OntologyNode item in e.NewItems) + item.Parent = this; + } + } + + public OntologyNode Parent { get; set; } + public string Text { get; set; } + + public ObservableCollection Nodes + { + get { return _childs; } + } + + public bool HasChild(string name) + { + return OntologyTree.FindNode(name, Nodes) != null; + } + + public override string ToString() + { + return Text; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/OntologyPath.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/OntologyPath.cs new file mode 100644 index 00000000..1752ba4a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/OntologyPath.cs @@ -0,0 +1,10 @@ +namespace HydroDesktop.Plugins.Search.Settings +{ + public class OntologyPath + { + public int? ConceptID { get; set; } + public string SearchableKeyword { get; set; } + public string ConceptName { get; set; } + public string ConceptPath { get; set; } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/OntologyTree.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/OntologyTree.cs new file mode 100644 index 00000000..a517a4c0 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/OntologyTree.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace HydroDesktop.Plugins.Search.Settings +{ + public class OntologyTree + { + private readonly List _nodes = new List(); + public List Nodes + { + get + { + return _nodes; + } + } + + public OntologyNode FindNode(string name) + { + return FindNode(name, Nodes); + } + + public static OntologyNode FindNode(string name, IEnumerable nodes) + { + foreach (var node in nodes) + { + if (string.Equals(node.Text, name, StringComparison.OrdinalIgnoreCase)) + return node; + + var sub = FindNode(name, node.Nodes); + if (sub != null) + { + return sub; + } + } + + return null; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/SearchSettings.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/SearchSettings.cs new file mode 100644 index 00000000..4ad0ed5a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/SearchSettings.cs @@ -0,0 +1,60 @@ +namespace HydroDesktop.Plugins.Search.Settings +{ + public class SearchSettings + { + #region Fields + + private CatalogSettings _catalogSettings; + private DateSettings _dateSettings; + private KeywordsSettings _keywordsSettings; + private WebServicesSettings _webServicesSettings; + private AreaSettings _areaSettings; + private static bool _andSearch; + + #endregion + + #region Public properties + + public CatalogSettings CatalogSettings + { + get + { + return _catalogSettings ?? + (_catalogSettings = + new CatalogSettings + { + TypeOfCatalog = Properties.Settings.Default.TypeOfCatalog, + HISCentralUrl = Properties.Settings.Default.HISCENTRAL_URL + }); + } + } + + public DateSettings DateSettings + { + get { return _dateSettings ?? (_dateSettings = new DateSettings()); } + } + + public KeywordsSettings KeywordsSettings + { + get { return _keywordsSettings?? (_keywordsSettings = new KeywordsSettings(this)); } + } + + public WebServicesSettings WebServicesSettings + { + get { return _webServicesSettings??(_webServicesSettings = new WebServicesSettings(this)); } + } + + public AreaSettings AreaSettings + { + get { return _areaSettings?? (_areaSettings = new AreaSettings()); } + } + + public static bool AndSearch + { + get { return SearchSettings._andSearch; } + set { SearchSettings._andSearch = value; } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AddSitesLayerDialog.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AddSitesLayerDialog.Designer.cs new file mode 100644 index 00000000..ca807f8a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AddSitesLayerDialog.Designer.cs @@ -0,0 +1,205 @@ +namespace Search3.Settings.UI +{ + partial class AddSitesLayerDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddSitesLayerDialog)); + this.urlTextbox = new System.Windows.Forms.TextBox(); + this.labelUrlConnection = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.variablesListBox = new System.Windows.Forms.CheckedListBox(); + this.label1 = new System.Windows.Forms.Label(); + this.button2 = new System.Windows.Forms.Button(); + this.titleTextbox = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.errorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); + this.button3 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).BeginInit(); + this.SuspendLayout(); + // + // urlTextbox + // + this.urlTextbox.Location = new System.Drawing.Point(12, 70); + this.urlTextbox.Name = "urlTextbox"; + this.urlTextbox.Size = new System.Drawing.Size(310, 20); + this.urlTextbox.TabIndex = 1; + this.urlTextbox.Validated += new System.EventHandler(this.urlTextbox_Validated); + // + // labelUrlConnection + // + this.labelUrlConnection.AutoSize = true; + this.labelUrlConnection.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelUrlConnection.Location = new System.Drawing.Point(9, 52); + this.labelUrlConnection.Name = "labelUrlConnection"; + this.labelUrlConnection.Size = new System.Drawing.Size(117, 13); + this.labelUrlConnection.TabIndex = 6; + this.labelUrlConnection.Text = "Web Service URL: "; + // + // button1 + // + this.button1.Enabled = false; + this.button1.Location = new System.Drawing.Point(232, 96); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(96, 28); + this.button1.TabIndex = 2; + this.button1.Text = "Get Variables"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // variablesListBox + // + this.variablesListBox.CheckOnClick = true; + this.variablesListBox.FormattingEnabled = true; + this.variablesListBox.Location = new System.Drawing.Point(12, 147); + this.variablesListBox.Name = "variablesListBox"; + this.variablesListBox.Size = new System.Drawing.Size(316, 199); + this.variablesListBox.Sorted = true; + this.variablesListBox.TabIndex = 3; + this.variablesListBox.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.variablesListBox_ItemCheck); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(9, 131); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(202, 13); + this.label1.TabIndex = 7; + this.label1.Text = "Please check variables for new site layer:"; + // + // button2 + // + this.button2.Enabled = false; + this.button2.Location = new System.Drawing.Point(232, 352); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(96, 28); + this.button2.TabIndex = 4; + this.button2.Text = "Create Site Layer"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // titleTextbox + // + this.titleTextbox.Location = new System.Drawing.Point(12, 25); + this.titleTextbox.Name = "titleTextbox"; + this.titleTextbox.Size = new System.Drawing.Size(310, 20); + this.titleTextbox.TabIndex = 0; + this.titleTextbox.Validated += new System.EventHandler(this.titleTextbox_Validated); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(9, 9); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(71, 13); + this.label2.TabIndex = 5; + this.label2.Text = "Layer Title:"; + // + // errorProvider1 + // + this.errorProvider1.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink; + this.errorProvider1.ContainerControl = this; + // + // button3 + // + this.button3.Enabled = false; + this.button3.Location = new System.Drawing.Point(12, 352); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(60, 28); + this.button3.TabIndex = 8; + this.button3.Text = "Check All"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // button4 + // + this.button4.Enabled = false; + this.button4.Location = new System.Drawing.Point(78, 352); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(73, 28); + this.button4.TabIndex = 9; + this.button4.Text = "Uncheck All"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click); + // + // button5 + // + this.button5.Location = new System.Drawing.Point(12, 96); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(75, 28); + this.button5.TabIndex = 10; + this.button5.Text = "Start Over"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // AddSitesLayerDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(340, 392); + this.Controls.Add(this.button5); + this.Controls.Add(this.button4); + this.Controls.Add(this.button3); + this.Controls.Add(this.label2); + this.Controls.Add(this.titleTextbox); + this.Controls.Add(this.button2); + this.Controls.Add(this.label1); + this.Controls.Add(this.variablesListBox); + this.Controls.Add(this.button1); + this.Controls.Add(this.labelUrlConnection); + this.Controls.Add(this.urlTextbox); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "AddSitesLayerDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Add Sites Layer"; + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox urlTextbox; + private System.Windows.Forms.Label labelUrlConnection; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.CheckedListBox variablesListBox; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.TextBox titleTextbox; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ErrorProvider errorProvider1; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button5; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AddSitesLayerDialog.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AddSitesLayerDialog.cs new file mode 100644 index 00000000..a9447cd9 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AddSitesLayerDialog.cs @@ -0,0 +1,428 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using HydroDesktop.WebServices.WaterOneFlow; +using HydroDesktop.Interfaces.ObjectModel; +using System.Net; +using System.IO; +using HydroDesktop.WebServices; +using System.Globalization; +using HydroDesktop.Plugins.Search.Searching; +using System.Diagnostics; +using DotSpatial.Projections; +using DotSpatial.Symbology; +using DotSpatial.Controls; +using DotSpatial.Data; +using HydroDesktop.Plugins.Search.Settings; +using HydroDesktop.Plugins.Search; + + +namespace Search3.Settings.UI +{ + public partial class AddSitesLayerDialog : Form + { + private WaterOneFlowClient waterOneFlowClient; + private AppManager App; + private List checkedVariables = new List(); + + public AddSitesLayerDialog(AppManager App) + { + this.App = App; + InitializeComponent(); + } + + private void button1_Click(object sender, EventArgs e) + { + variablesListBox.Items.Clear(); + + waterOneFlowClient = new WaterOneFlowClient(urlTextbox.Text); + + // Update service info in the metadata database + var waterOneFlowServiceInfo = waterOneFlowClient.ServiceInfo; + var service = waterOneFlowServiceInfo; + + // Get all sites for this service + IList siteList; + siteList = waterOneFlowClient.GetSites(); + var variableList = new List(); + foreach (var site in siteList) + { + // Get series for this site + IList currentSeriesList; + try + { + currentSeriesList = waterOneFlowClient.GetSiteInfo(site.Code); + } + catch (WebException ex) + { + if (ex.Response != null) + { + var rdr = new StreamReader(ex.Response.GetResponseStream()); + rdr.ReadToEnd(); + } + + continue; + } + // Save series info to metadata cache database + foreach (var series in currentSeriesList) + { + if (!variableList.Contains(series.Variable.Name)) + { + var variable = series.Variable.Name; + variableList.Add(variable); + } + } + } + foreach (var variable in variableList) + { + this.variablesListBox.Items.Add(variable, false); + } + if (variablesListBox.Items.Count != 0) + { + button1.Enabled = false; + button2.Enabled = true; + button3.Enabled = true; + button4.Enabled = true; + } + } + + private void button2_Click(object sender, EventArgs e) + { + variablesListBox.Enabled = false; + urlTextbox.Enabled = false; + titleTextbox.Enabled = false; + button1.Enabled = false; + button2.Enabled = false; + button3.Enabled = false; + button4.Enabled = false; + + waterOneFlowClient = new WaterOneFlowClient(urlTextbox.Text); + var waterOneFlowServiceInfo = waterOneFlowClient.ServiceInfo; + + // Trim the query off of the URL if it still exists + int index = waterOneFlowServiceInfo.EndpointURL.IndexOf("?"); + if (index > -1) + { + waterOneFlowServiceInfo.EndpointURL = waterOneFlowServiceInfo.EndpointURL.Substring(0, index); + } + + var serviceInfo = new DataServiceInfo(); + serviceInfo.IsHarvested = false; + serviceInfo.ServiceName = waterOneFlowServiceInfo.ServiceName; + serviceInfo.Version = waterOneFlowServiceInfo.Version; + serviceInfo.ServiceType = waterOneFlowServiceInfo.ServiceType; + serviceInfo.Protocol = waterOneFlowServiceInfo.Protocol; + serviceInfo.VariableCount = waterOneFlowServiceInfo.VariableCount; + + IList siteList; + siteList = waterOneFlowClient.GetSites(); + + // Default extent for the service. These values are designed to be overwritten as we query sites in the service + double east = -180; + double west = 360; + double north = -90; + double south = 90; + int valueCount = 0; + var totalDataCartSeriesList = new List(); + + foreach (var site in siteList) + { + // Get series for this site + IList currentSeriesList; + var dataCartSeriesList = new List(); + try + { + currentSeriesList = waterOneFlowClient.GetSiteInfo(site.Code); + } + catch (WebException ex) + { + continue; + } + catch (Exception ex) + { + continue; + } + + // Update service extent + if (site.Latitude > north) + { + north = site.Latitude; + } + if (site.Latitude < south) + { + south = site.Latitude; + } + if (site.Longitude > east) + { + east = site.Longitude; + } + if (site.Longitude < west) + { + west = site.Longitude; + } + + // Save series info to metadata cache database + foreach (var series in currentSeriesList) + { + valueCount += series.ValueCount; + try + { + if (checkedVariables.Count != 0) + { + if (checkedVariables.Contains(series.Variable.Name)) + { + var seriesDataCart = getDataCartFromMetadata(series, waterOneFlowServiceInfo); + dataCartSeriesList.Add(seriesDataCart); + } + } + else + { + var seriesDataCart = getDataCartFromMetadata(series, waterOneFlowServiceInfo); + dataCartSeriesList.Add(seriesDataCart); + } + } + catch (Exception ex) + { + continue; + } + + } + totalDataCartSeriesList.AddRange(dataCartSeriesList); + variablesListBox.Enabled = true; + urlTextbox.Enabled = true; + titleTextbox.Enabled = true; + button1.Enabled = true; + button2.Enabled = true; + button3.Enabled = true; + button4.Enabled = true; + } + + // Update service info + serviceInfo.IsHarvested = true; + serviceInfo.HarveDateTime = DateTime.Now; + serviceInfo.EastLongitude = east; + serviceInfo.WestLongitude = west; + serviceInfo.NorthLatitude = north; + serviceInfo.SouthLatitude = south; + + serviceInfo.SiteCount = siteList.Count; + serviceInfo.ValueCount = valueCount; + serviceInfo.VariableCount = waterOneFlowServiceInfo.VariableCount; + + SearchResult resultFeatureSet = null; + if (totalDataCartSeriesList.Count > 0) + { + resultFeatureSet = SearchHelper.ToFeatureSetsByDataSource(totalDataCartSeriesList); + } + + if (resultFeatureSet != null) + { + //We need to reproject the Search results from WGS84 to the projection of the map. + var wgs84 = KnownCoordinateSystems.Geographic.World.WGS1984; + foreach (var item in resultFeatureSet.ResultItems) + item.FeatureSet.Projection = wgs84; + var layers = ShowSearchResults(resultFeatureSet); + Debug.WriteLine("ShowSearchResults done."); + + // Unselect all layers in legend (http://hydrodesktop.codeplex.com/workitem/8559) + App.Map.MapFrame.GetAllLayers().ForEach(r => r.IsSelected = false); + + // Select first search result layer + + var first = layers.FirstOrDefault().GetParentItem(); + if (first != null) + { + first.IsSelected = true; + } + + // Unselect "Map Layers" legend item (http://hydrodesktop.codeplex.com/workitem/8458) + App.Legend.RootNodes + .ForEach(delegate(ILegendItem item) + { + if (item.LegendText == "Map Layers") + { + item.IsSelected = false; + } + }); + Debug.WriteLine("Finished."); + } + } + + private SeriesDataCart getDataCartFromMetadata(SeriesMetadata series, DataServiceInfo waterOneFlowServiceInfo) + { + var result = new SeriesDataCart(); + Site cSite = series.Site; + result.SiteName = cSite.Name; + result.SiteCode = cSite.Code; + result.Latitude = cSite.Latitude; + result.Longitude = cSite.Longitude; + + Variable v = series.Variable; + result.VariableName = v.Name; + result.VariableCode = v.Code; + result.DataType = v.DataType; + result.ValueType = v.ValueType; + + result.SampleMedium = v.SampleMedium; + result.TimeSupport = Convert.ToDouble(v.TimeSupport, CultureInfo.InvariantCulture); + result.GeneralCategory = v.GeneralCategory; + result.TimeUnit = v.TimeUnit.Name; + + result.BeginDate = Convert.ToDateTime(series.BeginDateTime, CultureInfo.InvariantCulture); + result.EndDate = Convert.ToDateTime(series.EndDateTime, CultureInfo.InvariantCulture); + result.ValueCount = series.ValueCount; + + result.ServURL = waterOneFlowServiceInfo.EndpointURL; + result.ServCode = titleTextbox.Text; + + return result; + } + + private void CheckFields() + { + if (errorProvider1.GetError(titleTextbox).Equals("") + && errorProvider1.GetError(urlTextbox).Equals("") + && !String.IsNullOrEmpty(titleTextbox.Text) + && !String.IsNullOrEmpty(urlTextbox.Text)) + { + button1.Enabled = true; + } + else + { + button1.Enabled = false; + } + } + + + + /// + /// Displays search results (all data series and sites complying to the search criteria) + /// + public IEnumerable ShowSearchResults(SearchResult searchResult) + { + //try to save the search result layer and re-add it + var hdProjectPath = HydroDesktop.Configuration.Settings.Instance.CurrentProjectDirectory; + String timeStamp = string.Format("{0}_{1}{2}{3}", + DateTime.Now.Date.ToString("yyyy-MM-dd"), DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second); + + var loadedFeatures = new List(searchResult.ResultItems.Count()); + Debug.WriteLine(searchResult.ResultItems.Count()); + foreach (var key in searchResult.ResultItems) + { + Debug.WriteLine("hdProjectPath: " + hdProjectPath + "/Search Results"); + Debug.WriteLine("The other part: " + string.Format(HydroDesktop.Plugins.Search.Properties.Settings.Default.SearchResultNameMask, key.ServiceCode, timeStamp)); + var fs = key.FeatureSet; + + var filename = Path.Combine(hdProjectPath + "/Search Results", + string.Format(HydroDesktop.Plugins.Search.Properties.Settings.Default.SearchResultNameMask, key.ServiceCode, timeStamp)); + fs.Filename = filename; + fs.Save(); + loadedFeatures.Add(new SearchResultItem(key.ServiceCode, FeatureSet.OpenFile(filename))); + } + Debug.WriteLine("Loop done."); + + var _searchSettings = new SearchSettings(); + var searchLayerCreator = new SearchLayerCreator(App.Map, new SearchResult(loadedFeatures), _searchSettings); + + return searchLayerCreator.Create(); + } + + private void titleTextbox_Validated(object sender, EventArgs e) + { + errorProvider1.SetError(titleTextbox, !String.IsNullOrEmpty(titleTextbox.Text) ? "" : "Please enter a title"); + CheckFields(); + } + + private void urlTextbox_Validated(object sender, EventArgs e) + { + if (String.IsNullOrEmpty(urlTextbox.Text)) + { + errorProvider1.SetError(urlTextbox, "Please enter a valid URL"); + CheckFields(); + return; + } + + if (!urlTextbox.Text.StartsWith("http://") && !urlTextbox.Text.StartsWith("https://")) + { + urlTextbox.Text = "http://" + urlTextbox.Text; //add http:// to the beginning + } + //check that the URL is Valid -- this is quite slow. Perhaps a REGEX would be better. + errorProvider1.SetError(urlTextbox, !WebOperations.IsUrlFormatValid(urlTextbox.Text) ? "Please enter a valid URL" : ""); + + CheckFields(); + } + + private void variablesListBox_ItemCheck(object sender, ItemCheckEventArgs e) + { + if (e.NewValue == CheckState.Checked) + { + checkedVariables.Add(variablesListBox.Items[e.Index] as string); + } + else if (e.NewValue == CheckState.Unchecked) + { + checkedVariables.Remove(variablesListBox.Items[e.Index] as string); + } + } + + private void button3_Click(object sender, EventArgs e) + { + for (int i = 0; i < variablesListBox.Items.Count; i++) + { + variablesListBox.SetItemChecked(i, true); + } + } + + private void button4_Click(object sender, EventArgs e) + { + for (int i = 0; i < variablesListBox.Items.Count; i++) + { + variablesListBox.SetItemChecked(i, false); + } + } + + private void button5_Click(object sender, EventArgs e) + { + variablesListBox.Items.Clear(); + checkedVariables.Clear(); + urlTextbox.Clear(); + titleTextbox.Clear(); + urlTextbox.Clear(); + titleTextbox.Enabled = true; + urlTextbox.Enabled = true; + button1.Enabled = false; + button2.Enabled = false; + button3.Enabled = false; + button4.Enabled = false; + + } + } + + class WebOperations + { + #region Public Members + /// + /// Determines if the format of a URL string is valid + /// + /// The URL string to check + /// + public static bool IsUrlFormatValid(string url) + { + try + { + Uri urlCheck = new Uri(url); + return true; + } + catch + { + return false; + } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AddSitesLayerDialog.resx b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AddSitesLayerDialog.resx new file mode 100644 index 00000000..ec58d88a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AddSitesLayerDialog.resx @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAIAEBAAAAAAIABoBAAAJgAAACAgAAAAACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAEAE + AAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAABQAA + ABsAAAArAAAAKwAAABsAAAAF////AQUEAhcAAAAtAAAALQAAAC0AAAAtAAAALQAAAC0AAAAtAAAALQA9 + IFEAjlTPAKxt/wCsbf8AjlTPAEkoRwAAAAXUp2mH9NCf//TPnP/0z5v/9M+c//TPnP/0z5v/9M+c/+vM + mP8ZomH/AMmM/z/Uo/8/1KP/AMmM/wCcX+sAMxwl1qdni//mxP//473///Hg///qzv//473///Hg///q + zv+Rvo3/AL+A/wDBgP9/3rr/f966/wDBgP8AwIH/AHpCfdanZ4v/6cr//+nK///py///6cr//+nK///p + y///6cv/f7mJ/xTFif//////////////////////FcWJ/wB/Q4vWp2eL/+zU///w3P/lyKL/TUZb/0dD + Yv/bwJz//+jJ/4izkf8xr4X/ALR0/3/Us/9/2rb/ALl3/z3JmP8AgUR11qdni//jwP//3LH/Y11s/wAA + zP8AAM//S0dj///mxv9iVlz/IXiS/zy+nP9Av4//QseV/0LLm/8tp3PnAHE+EdanZ4v/6Mr//+TD/3Fk + Yf8AAML/AADI/1lPWv//5MP/cWZm/wAAwv8cZ5H/PYls/0qygv9WsX//pZ9hi////wHWp2eL/+zV///t + 2P/zzqL/eWtl/3Fpbf/ryJ3//+PB//Phzf95Zlv/cWVk/+vdy///3K///+TB/9enZ4v///8B1qdni//i + wP//16b//+zW///hvv//16b//+zW///hvv//16b//+zW///hvv//16b//+zW///s1f/Wp2eL////Adan + Z4v/58v//+C8/+XKq/9NRVv/RztR/9vCpf//4Lv/5cim/01IYP9HPlf/27+e///gu///58v/1qdni/// + /wHWpmaL/+zX///q0v9jUlT/AADM/wAAz/9LP1L//965/2NbaP8AAMz/AADP/0tFYf//0p///+HA/9an + Z4v///8B1qZmi//hwP//0Jz/cWhq/wAAwv8AAMj/WVFh///dtv9xXVP/AADC/wAAyP9ZSU7//+nQ///t + 2P/WpmaL////AdamZov/6M7//9u0//PQqv95aGD/cWdo/+vJo///27T/89Gt/3ljVf9xYl7/68uo///b + s///6M7/1qZmi////wHXp2aL/+7b///lyv//y5P//9iv///lyv//y5P//9iv///lyv//y5P//9iv///l + yv//y5P//+LC/9enZov///8B369tcfTYtP/017L/9Niz//TYs//02LL/9Niz//TYs//02LL/9Niz//TY + s//02LL/9Niz//TZtf/fr21x////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAA + AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wEAAAAHAAAADwAAABUAAAAXAAAAFwAAABUAAAAPAAAAB/// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wEAAAADAAAADwAAACEAAAA1AAAAQQAAAEMAAABDAAAAQQAA + ADUAAAAhAAAADwAAAAP///8B////AQAAAAUAAAARAAAAFwAAABcAAAAXAAAAFwAAABcAAAAXAAAAFwAA + ABcAAAAXAAAAFwAAABcAAAAXAAAAFwAAABcAAAAXAAAAFwAAAB0AAAAvAEYmawB9RNEAikr/AIpJ/wCK + Sf8Aikr/AH1E0QBGJmsAAAAtAAAAEwAAAAP///8BAAAAEQkHBTMAAABDAAAAQwAAAEMAAABDAAAAQwAA + AEMAAABDAAAAQwAAAEMAAABDAAAAQwAAAEMAAABDAAAAQwAAAEMAAABDAAAARwBvO7MAklP/ALZ4/wDN + kP8A0ZT/ANGU/wDNkP8Atnj/AJJT/wB1QLMAAAAtAAAAD////wEAAAAX5bVz7+m3c//ptnL/6bZy/+m2 + cv/ptnH/6bZx/+m2cf/ptnL/6bZy/+m2cv/ptnH/6bZx/+m2cf/ptnL/67dy//m6dv9kn13/AJVU/wDK + jv8AzI//AMmK/wDGhP8AxoT/AMmK/wDMj/8Ayo7/AJdW/wB2QLEAAAAhAAAABwAAABfpt3P//+3P///p + yP//6cj//+nH///oxv//6MX//+jG///px///6cj//+nH///oxv//6MX//+jG///px///68v/zNav/wCN + S/8AyIv/AMmL/wDHif8Aw4H///////////8Aw4H/AMeJ/wDJi/8AyIz/AJJS/wBQLF8AAAAPAAAAF+m2 + cf//68r//+S////kv///473///Pi///z4P//8+L//+O9///kv///473///Pi///z4P//8+L//+S9///p + xv9GpGr/ALBw/wDHif8AxYf/AMSG/wDAfP///////////wDAfP8AxIb/AMWH/wDHif8As3T/AIBGywAA + ABUAAAAX6bZx///pyv//477//+O+///iu///8eD///De///x4P//4rv//+O+///iu///8eD///De///x + 4P//4rz//+nH/wCCP/8Aw4X/AMKD/wC/fP8AvXr/ALpx////////////ALpx/wC9ev8Av3z/AMKD/wDF + hv8Ai0r/AAAAFwAAABfptnH//+rK///iuf//4rn//+G3///y4f//8d////Lh///ht///4rn//+G3///y + 4f//8d////Lh///huP//6cP/AII//xvMlf8AvHr///////////////////////////////////////// + //8AvHr/HM2V/wCKSf8AAAAXAAAAF+m2cf//6cr///Le///x3f//8t7//+C1///ht///4LX///Le///x + 3f//8t7//+C1///ht///4LX///Lf///56P8AgTz/ONKh/wC7dv////////////////////////////// + /////////////wC7dv860qH/AIpJ/wAAABUAAAAX6bZx///pyv//8N3//+/b///w3f//4Lb//+G4/8ev + jv9waWH/aGFZ/7esn///4Lb//+G4///gtv//8d7///fm/wB/Of9WspX/AK5w/wC4df8ArWz/ALRq//// + ////////ALRq/wC4c/8AuXb/ALt5/23bt/8Aikj/AAAADwAAABfptnH//+nM///x3v//8dz///He///e + sv+Xg2v/AAAU/wAAaf8AAGn/AAAn/3BiTv//3rT//96y///x3v//9uT/JWJC/0abfv8ow5L/ALh5/wC2 + ef8AoWT///////////8AtnH/ALt7/wC6ev8pyJT/Ycae/wCERsMAAAAHAAAAF+m2cf//6s///9yx///c + sv//3LD/59nI/wcHFP8AAL3/AADR/wAA0f8AAMr/AAAn/7+zpP//8N3//9yw/+fKo/8FBRD/AIBX/4Tb + wv8cw4n/ALF3/wCvbf/19fX//////wC0b/8At3X/HMOJ/4rhxP8LlFf/AHVAQf///wEAAAAX6bZx///s + 0P//3bL//96z///csf+floj/AABO/wAA0f8AANH/AADR/wAA0f8AAGL/cGlf///w2v//3LH/n4pw/wAA + Tv8AANH/AoZh/4XPxf9PuK7/C7l+/wCgX/8AsGj/DLx//1vTqv+S4cb/Dpld/wCCRJ8AAAAD////AQAA + ABfptnH//+zQ///brv//26///9ut/6+klv8AADT/AADR/wAA0f8AANH/AADR/wAAW/9/d2z//+/b///b + rf+vlnj/AAA0/wAA0f8AANH/AIhR/02ymv9sqKn/icy1/5vmzP+Q4MT/U8CX/wCPUP9qoF3/AAAAF/// + /wH///8BAAAAF+m2cP//69H//+7Z///u2P//7tr/99Om/yAbFv8AAJb/AADR/wAA0f8AALD/CAcM/9+/ + l///2qv//+7a//fm0f8gHRv/AACW/wAA0f8AANH/JmSI/wA8Hv8AdTX/AIE8/wCBPP8/n2L/yde1//27 + dv8AAAAX////Af///wEAAAAX6bZw///s0f//7df//+zW///u2f//2az/z7KN/ygiG/8AAC7/AAA0/xAP + Dv+vlXb//9uu///ZrP//7tn//+zW/8/BsP8oIhr/AAAu/wAANP8QDw7/r6eZ///14///4LX//+G2///e + sv//8Nj/67dy/wAAABf///8B////AQAAABfptnD//+zU///t2P//7dj//+3Z///YqP//2Kn//9io/7+y + o/+/sqL/9+bS///YqP//2Kn//9io///t2f//7dj//+3Z///YqP+/oX7/v6F9//fm0///7dn//+7a///Y + qP//2ar//9io///t1f/ptnD/AAAAF////wH///8BAAAAF+m2cP//7dj//9em///Xp///16X//+3Z///t + 1///7dn//9el///Xp///16X//+3Z///t1///7dn//9el///Xp///16X//+3Z///t1///7dn//9el///X + p///16X//+3Z///t1///7db//+zW/+m2cP8AAAAX////Af///wEAAAAX6bZw///v2///1qf//9ip///W + pv//7Nb//+rT///s1v//1qb//9ip///Wpv//7Nb//+rT///s1v//1qb//9ip///Wpv//7Nb//+rT///s + 1v//1qb//9ip///Wpv//7Nb//+rS///q0///7dj/6bZw/wAAABf///8B////AQAAABfptnD//+7c///U + ov//1aT//9Si///t1///7NX/x7mo/3BdR/9oV0P/t5h0///t1///7NX//+3X///Uov//1aT//9Si/8e5 + qP9waF7/aGFY/7eYdP//1aT//9Si///t1///7NX//+zU///u2v/ptnD/AAAAF////wH///8BAAAAF+m1 + cP//8Nz//+rT///r1P//7Nb//9Og/5d+YP8AABT/AABp/wAAaf8AACf/cF1G///Uov//06D//+zW///r + 1P+XjH//AAAU/wAAaf8AAGn/AAAn/3BnXf//7Nb//9Og///Uov//06D///He/+m2cP8AAAAX////Af// + /wEAAAAX6bVw///w3v//6c///+nP///r0//nv5H/BwcS/wAAvf8AANH/AADR/wAAyv8AACf/v6B6///T + oP//69P/59O8/wcHFP8AAL3/AADR/wAA0f8AAMr/AAAn/7+wnv//06D//9Wj///Tn///8eL/6bZw/wAA + ABf///8B////AQAAABfptW////Hh///p0f//6tL//+vU/5+CYv8AAE7/AADR/wAA0f8AANH/AADR/wAA + Yv9wXEb//9Gd///r1P+fkoP/AABO/wAA0f8AANH/AADR/wAA0f8AAGL/cGdd///Rnf//0p///9Gc///y + 5P/ptXD/AAAAF////wH///8BAAAAF+m1cP//8+b//9CZ///Rnf//0Jv/r6GR/wAANP8AANH/AADR/wAA + 0f8AANH/AABb/391aP//69P//9Cb/6+PbP8AADT/AADR/wAA0f8AANH/AADR/wAAW/9/aE3//+vT///q + 0f//6c////Lk/+m1b/8AAAAX////Af///wEAAAAX6bVv///16f//z5r//9Ke///Qmv/34sn/IB0a/wAA + lv8AANH/AADR/wAAsP8IBw7/38qz///p0P//0Jr/98uZ/yAaE/8AAJb/AADR/wAA0f8AALD/CAcM/9+2 + h///6dD//+fM///ny///8+X/6bVv/wAAABf///8B////AQAAABfptW////br///Nlv//z5n//86Y///q + 0v/Pvar/KCUh/wAALv8AADT/EA0K/6+hkP//6dH//+rS///OmP//z5r/z6d7/yglIf8AAC7/AAA0/xAN + Cv+vjmr//86Y///q0v//6dD//+jO///16f/ptW//AAAAF////wH///8BAAAAF+m1b///9u3//+fN///o + z///6dH//82W///OmP//zZb/v6+d/7+um//34sr//82W///OmP//zZb//+nR///oz///6dH//82W/7+a + cv+/mnD/9+LK///oz///6dH//82W///Ol///zJP///fu/+m1b/8AAAAX////Af///wEAAAAX6bVv///3 + 7v//5cj//+bK///ozv//zZX//86Z///Nlf//6M7//+bK///ozv//zZX//86Z///Nlf//6M7//+bK///o + zv//zZX//86Z///Nlf//6M7//+bK///ozv//zZX//86Z///MlP//+fL/6bVv/wAAABf///8B////AQAA + ABXptW7///nx///jxf//5Mb//+XK///Jj///y5L//8mP///lyv//5Mf//+XK///Jj///y5L//8mP///l + yv//5Mf//+XK///Jj///y5L//8mP///lyv//5Mf//+XK///Jj///y5L//8mO///79P/ptW//AAAAFf// + /wH///8BAAAADem2cP///fz///r2///69v//+/f///z5///9+v///Pn///v3///79v//+/f///z5///9 + +v///Pn///v3///79v//+/f///z5///9+v///Pn///v3///79v//+/f///z5///9+v///Pn///79/+m2 + cP8AAAAN////Af///wEAAAAF5bVzsem2cP/ptW7/6bVu/+m1bv/ptW7/6bVu/+m1bv/ptW7/6bVu/+m1 + bv/ptW7/6bVu/+m1bv/ptW7/6bVu/+m1bv/ptW7/6bVu/+m1bv/ptW7/6bVu/+m1bv/ptW7/6bVu/+m1 + bv/ptnD/5bVzsQAAAAX///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AdvancedHisCentralOptionsDialog.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AdvancedHisCentralOptionsDialog.Designer.cs new file mode 100644 index 00000000..f2ab01f0 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AdvancedHisCentralOptionsDialog.Designer.cs @@ -0,0 +1,105 @@ +namespace HydroDesktop.Plugins.Search.Settings.UI +{ + partial class AdvancedHisCentralOptionsDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnOK = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.cbHisCentralUrl = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(189, 92); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 4; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + this.btnOK.Click += new System.EventHandler(this.btnOK_Click); + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(270, 92); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 5; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // cbHisCentralUrl + // + this.cbHisCentralUrl.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cbHisCentralUrl.FormattingEnabled = true; + this.cbHisCentralUrl.Location = new System.Drawing.Point(33, 46); + this.cbHisCentralUrl.Name = "cbHisCentralUrl"; + this.cbHisCentralUrl.Size = new System.Drawing.Size(312, 21); + this.cbHisCentralUrl.TabIndex = 30; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(30, 21); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(145, 13); + this.label1.TabIndex = 31; + this.label1.Text = "Specify the HIS Central URL:"; + // + // AdvancedHisCentralOptionsDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(357, 126); + this.Controls.Add(this.label1); + this.Controls.Add(this.cbHisCentralUrl); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AdvancedHisCentralOptionsDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Advanced HIS Central Options"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.ComboBox cbHisCentralUrl; + private System.Windows.Forms.Label label1; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AdvancedHisCentralOptionsDialog.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AdvancedHisCentralOptionsDialog.cs new file mode 100644 index 00000000..07f26a03 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AdvancedHisCentralOptionsDialog.cs @@ -0,0 +1,74 @@ +using System; +using System.Windows.Forms; +using HydroDesktop.Common; +using HydroDesktop.Common.UserMessage; + +namespace HydroDesktop.Plugins.Search.Settings.UI +{ + public partial class AdvancedHisCentralOptionsDialog : Form + { + #region Fields + + private readonly CatalogSettings _catalogSettings; + + #endregion + + #region Constructors + + private AdvancedHisCentralOptionsDialog(CatalogSettings catalogSettings) + { + if (catalogSettings == null) throw new ArgumentNullException("catalogSettings"); + + InitializeComponent(); + + _catalogSettings = catalogSettings; + + cbHisCentralUrl.Items.Add(Properties.Settings.Default.HISCENTRAL_URL_1); + cbHisCentralUrl.Items.Add(Properties.Settings.Default.HISCENTRAL_URL_2); + if (!cbHisCentralUrl.Items.Contains(catalogSettings.HISCentralUrl)) + { + cbHisCentralUrl.Items.Add(catalogSettings.HISCentralUrl); + } + cbHisCentralUrl.Text = catalogSettings.HISCentralUrl; + } + + #endregion + + public static DialogResult ShowDialog(CatalogSettings catalogSettings) + { + if (catalogSettings == null) throw new ArgumentNullException("catalogSettings"); + + using (var form = new AdvancedHisCentralOptionsDialog(catalogSettings.Copy())) + { + if (form.ShowDialog() == DialogResult.OK) + { + catalogSettings.Copy(form._catalogSettings); + } + + return form.DialogResult; + } + } + + private void btnOK_Click(object sender, EventArgs e) + { + if (String.IsNullOrEmpty(cbHisCentralUrl.Text)) + { + MessageBox.Show("Url must be non empty.", "Information", MessageBoxButtons.OK, + MessageBoxIcon.Information); + return; + } + _catalogSettings.HISCentralUrl = cbHisCentralUrl.Text; + + try + { + Properties.Settings.Default.HISCENTRAL_URL = _catalogSettings.HISCentralUrl; + Properties.Settings.Default.Save(); + } + catch (Exception ex) + { + AppContext.Instance.Get().Error("Unable to save settings.", ex); + throw; + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AdvancedHisCentralOptionsDialog.resx b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AdvancedHisCentralOptionsDialog.resx new file mode 100644 index 00000000..c7e0d4bd --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/AdvancedHisCentralOptionsDialog.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/DateSettingsDialog.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/DateSettingsDialog.Designer.cs new file mode 100644 index 00000000..696c4d61 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/DateSettingsDialog.Designer.cs @@ -0,0 +1,183 @@ +namespace HydroDesktop.Plugins.Search.Settings.UI +{ + partial class DateSettingsDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dtpStartDate = new System.Windows.Forms.DateTimePicker(); + this.dtpEndDate = new System.Windows.Forms.DateTimePicker(); + this.lblStartDate = new System.Windows.Forms.Label(); + this.lblEndDate = new System.Windows.Forms.Label(); + this.btnCancel = new System.Windows.Forms.Button(); + this.btnOK = new System.Windows.Forms.Button(); + this.rbLastDay = new System.Windows.Forms.RadioButton(); + this.rbLastMonth = new System.Windows.Forms.RadioButton(); + this.rbLastYear = new System.Windows.Forms.RadioButton(); + this.rbLastWeek = new System.Windows.Forms.RadioButton(); + this.SuspendLayout(); + // + // dtpStartDate + // + this.dtpStartDate.Format = System.Windows.Forms.DateTimePickerFormat.Short; + this.dtpStartDate.Location = new System.Drawing.Point(111, 12); + this.dtpStartDate.Name = "dtpStartDate"; + this.dtpStartDate.Size = new System.Drawing.Size(138, 20); + this.dtpStartDate.TabIndex = 0; + // + // dtpEndDate + // + this.dtpEndDate.Format = System.Windows.Forms.DateTimePickerFormat.Short; + this.dtpEndDate.Location = new System.Drawing.Point(111, 38); + this.dtpEndDate.Name = "dtpEndDate"; + this.dtpEndDate.Size = new System.Drawing.Size(138, 20); + this.dtpEndDate.TabIndex = 1; + // + // lblStartDate + // + this.lblStartDate.AutoSize = true; + this.lblStartDate.Location = new System.Drawing.Point(8, 18); + this.lblStartDate.Name = "lblStartDate"; + this.lblStartDate.Size = new System.Drawing.Size(56, 13); + this.lblStartDate.TabIndex = 2; + this.lblStartDate.Text = "Start date:"; + // + // lblEndDate + // + this.lblEndDate.AutoSize = true; + this.lblEndDate.Location = new System.Drawing.Point(11, 44); + this.lblEndDate.Name = "lblEndDate"; + this.lblEndDate.Size = new System.Drawing.Size(53, 13); + this.lblEndDate.TabIndex = 3; + this.lblEndDate.Text = "End date:"; + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(174, 143); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 7; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(93, 143); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 6; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + // + // rbLastDay + // + this.rbLastDay.AutoSize = true; + this.rbLastDay.Location = new System.Drawing.Point(14, 76); + this.rbLastDay.Name = "rbLastDay"; + this.rbLastDay.Size = new System.Drawing.Size(67, 17); + this.rbLastDay.TabIndex = 2; + this.rbLastDay.TabStop = true; + this.rbLastDay.Text = "Last Day"; + this.rbLastDay.UseVisualStyleBackColor = true; + // + // rbLastMonth + // + this.rbLastMonth.AutoSize = true; + this.rbLastMonth.Location = new System.Drawing.Point(111, 76); + this.rbLastMonth.Name = "rbLastMonth"; + this.rbLastMonth.Size = new System.Drawing.Size(78, 17); + this.rbLastMonth.TabIndex = 3; + this.rbLastMonth.TabStop = true; + this.rbLastMonth.Text = "Last Month"; + this.rbLastMonth.UseVisualStyleBackColor = true; + // + // rbLastYear + // + this.rbLastYear.AutoSize = true; + this.rbLastYear.Location = new System.Drawing.Point(111, 97); + this.rbLastYear.Name = "rbLastYear"; + this.rbLastYear.Size = new System.Drawing.Size(70, 17); + this.rbLastYear.TabIndex = 5; + this.rbLastYear.TabStop = true; + this.rbLastYear.Text = "Last Year"; + this.rbLastYear.UseVisualStyleBackColor = true; + // + // rbLastWeek + // + this.rbLastWeek.AutoSize = true; + this.rbLastWeek.Location = new System.Drawing.Point(14, 97); + this.rbLastWeek.Name = "rbLastWeek"; + this.rbLastWeek.Size = new System.Drawing.Size(77, 17); + this.rbLastWeek.TabIndex = 4; + this.rbLastWeek.TabStop = true; + this.rbLastWeek.Text = "Last Week"; + this.rbLastWeek.UseVisualStyleBackColor = true; + // + // DateSettingsDialog + // + this.AcceptButton = this.btnOK; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(265, 178); + this.Controls.Add(this.rbLastWeek); + this.Controls.Add(this.rbLastYear); + this.Controls.Add(this.rbLastMonth); + this.Controls.Add(this.rbLastDay); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.Controls.Add(this.lblEndDate); + this.Controls.Add(this.lblStartDate); + this.Controls.Add(this.dtpEndDate); + this.Controls.Add(this.dtpStartDate); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "DateSettingsDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Select dates"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DateTimePicker dtpStartDate; + private System.Windows.Forms.DateTimePicker dtpEndDate; + private System.Windows.Forms.Label lblStartDate; + private System.Windows.Forms.Label lblEndDate; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.RadioButton rbLastDay; + private System.Windows.Forms.RadioButton rbLastMonth; + private System.Windows.Forms.RadioButton rbLastYear; + private System.Windows.Forms.RadioButton rbLastWeek; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/DateSettingsDialog.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/DateSettingsDialog.cs new file mode 100644 index 00000000..e7ded0f5 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/DateSettingsDialog.cs @@ -0,0 +1,83 @@ +using System; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.Search.Settings.UI +{ + public partial class DateSettingsDialog : Form + { + private readonly DateSettings _dateSettings; + + private DateSettingsDialog(DateSettings dateSettings) + { + InitializeComponent(); + + + _dateSettings = dateSettings; + + dtpStartDate.MinDate = DateTime.MinValue; + dtpStartDate.MaxDate = DateTime.MaxValue; + dtpEndDate.MinDate = DateTime.MinValue; + dtpEndDate.MaxDate = DateTime.MaxValue; + + dtpStartDate.DataBindings.Add(new Binding("Value", _dateSettings, "StartDate") + {DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged}); + dtpEndDate.DataBindings.Add(new Binding("Value", _dateSettings, "EndDate") + {DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged}); + + // Quick radio Buttons + rbLastDay.Tag = RoundMode.LastDay; + rbLastWeek.Tag = RoundMode.LastWeek; + rbLastMonth.Tag = RoundMode.LastMonth; + rbLastYear.Tag = RoundMode.LastYear; + foreach (var rb in new[] { rbLastDay, rbLastWeek, rbLastMonth, rbLastYear }) + rb.CheckedChanged += rbQuickMode_CheckedChanged; + } + + void rbQuickMode_CheckedChanged(object sender, EventArgs e) + { + var radioButton = sender as RadioButton; + if (radioButton == null || + !radioButton.Checked) return; + + var roundMode = (RoundMode)radioButton.Tag; + switch(roundMode) + { + case RoundMode.LastDay: + dtpStartDate.Value = dtpEndDate.Value; + break; + case RoundMode.LastWeek: + dtpStartDate.Value = dtpEndDate.Value.AddDays(-7); + break; + case RoundMode.LastMonth: + dtpStartDate.Value = dtpEndDate.Value.AddDays(-30); + break; + case RoundMode.LastYear: + dtpStartDate.Value = dtpEndDate.Value.AddDays(-365); + break; + } + } + + public static DialogResult ShowDialog(DateSettings dateSettings) + { + if (dateSettings == null) throw new ArgumentNullException("dateSettings"); + + using(var form = new DateSettingsDialog(dateSettings.Copy())) + { + if (form.ShowDialog() == DialogResult.OK) + { + dateSettings.Copy(form._dateSettings); + } + + return form.DialogResult; + } + } + + private enum RoundMode + { + LastDay, + LastWeek, + LastMonth, + LastYear + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/DateSettingsDialog.resx b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/DateSettingsDialog.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/DateSettingsDialog.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsDialog.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsDialog.Designer.cs new file mode 100644 index 00000000..f2d164a5 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsDialog.Designer.cs @@ -0,0 +1,93 @@ +namespace HydroDesktop.Plugins.Search.Settings.UI +{ + partial class KeywordsDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(KeywordsDialog)); + this.btnCancel = new System.Windows.Forms.Button(); + this.btnOK = new System.Windows.Forms.Button(); + this.keywordsUserControl1 = new HydroDesktop.Plugins.Search.Settings.UI.KeywordsUserControl(); + this.SuspendLayout(); + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(290, 393); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 9; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(209, 393); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 8; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + // + // keywordsUserControl1 + // + this.keywordsUserControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.keywordsUserControl1.Location = new System.Drawing.Point(0, 0); + this.keywordsUserControl1.Name = "keywordsUserControl1"; + this.keywordsUserControl1.Size = new System.Drawing.Size(378, 386); + this.keywordsUserControl1.TabIndex = 10; + // + // KeywordsDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(377, 428); + this.Controls.Add(this.keywordsUserControl1); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "KeywordsDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Keywords"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Button btnOK; + private KeywordsUserControl keywordsUserControl1; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsDialog.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsDialog.cs new file mode 100644 index 00000000..040dc1f6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsDialog.cs @@ -0,0 +1,56 @@ +using System; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.Search.Settings.UI +{ + public partial class KeywordsDialog : Form + { + #region Constructors + + private KeywordsDialog(KeywordsSettings settings) + { + InitializeComponent(); + + Load += delegate { keywordsUserControl1.BindKeywordsSettings(settings); }; + } + + #endregion + + #region Public methods + + public static DialogResult ShowDialog(KeywordsSettings settings) + { + if (settings == null) throw new ArgumentNullException("settings"); + + using(var form = new KeywordsDialog(settings.Copy())) + { + if (SearchSettings.AndSearch == false) + { + form.keywordsUserControl1.radioButton1.Checked = true; + } + else if (SearchSettings.AndSearch == true) + { + form.keywordsUserControl1.radioButton2.Checked = true; + } + + if (form.ShowDialog() == DialogResult.OK) + { + settings.SelectedKeywords = form.keywordsUserControl1.GetSelectedKeywords(); + + if (form.keywordsUserControl1.radioButton1.Checked == true) + { + SearchSettings.AndSearch = false; + } + else if (form.keywordsUserControl1.radioButton2.Checked == true) + { + SearchSettings.AndSearch = true; + } + } + + return form.DialogResult; + } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsDialog.resx b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsDialog.resx new file mode 100644 index 00000000..e767c93a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsDialog.resx @@ -0,0 +1,1155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAwAEBAQAAAAAAAoAQAAxgAAABAQAAABABgAaAMAAO4BAAAQEAAAAQAgAGgEAABWBQAAICAQAAAA + AADoAgAAvgkAACAgAAABABgAqAwAAKYMAAAgIAAAAQAgAKgQAABOGQAAMDAQAAAAAABoBgAA9ikAADAw + AAABABgAqBwAAF4wAAAwMAAAAQAgAKglAAAGTQAAQEAQAAAAAABoCgAArnIAAEBAAAABABgAKDIAABZ9 + AABAQAAAAQAgAChCAAA+rwAAKAAAABAAAAAgAAAAAQAEAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA4iMgAMHCwAPj4+AAAmFAAUMD4AADAiABw4MgAeNj4ACCwmABgwPAAaND4ADiAuAAQkHgAAKhoAEiY + yAAAAAAAAAAAACIiIAAEREQAJVUSAE5nbkAhqlIARmNmQAIVUiFHMzdAACFVUkZjZkAAAhtblGduQAAA + L7VZRE0AAAACuriLUSAAAAJYiIiKwAAAAriK/6ggAAAMiI8i+CAAAAK4jwD7wAAAAviK/6/AAAAAL6iL + /AAAAAAMzMzAAAeDAAADAQAAAwEAAAABAACAAQAAwAEAAOABAADwAQAA+AEAAPgBAAD4AQAA+AEAAPgB + AAD4AQAA/AMAAP4HAAAoAAAAEAAAACAAAAABABgAAAAAAEADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL3a2LnO0L3OzMHO0MHe2AAAA + AAAAAAAAAAAAAIxVAJ5eAJ1dAJ5eAIxVAAAAAAAAL3W1T8j8TcP4TcT4OIfFNHi3AAAAAAAAAI1SAKZp + ALqGd9/EALqGAKZqAIxVAAAAMXa2O5LOTcH2TL/0TcP4MXa1AAAAAAAAAKBXAMGLALuC////ALuCAMCM + AJ5eAAAAAAAAMXa1PpLMU8b4U8X4MHKxNHa2O3fBAJ9SdubK////////////d+XMAJxcAAAAAAAAAAAA + Mne2QpTNXsz8XMv6Xs3+NnC6AJ1OAMyUAMiO////AMiPAMyXAJ1cAAAAAAAAAAAAAAAAM3i1RZfPZ9L8 + Zs77a9D/KrKdAKxmANKZdezRANSbALBtAKFYAAAAAAAAAAAAAAAAAAAANHi2SZnPctX9YcX6TrD9JKqb + AJZJAJZLAJpMFJF/AAAAAAAAAAAAAAAAAAAAAAAAAAAAM3a0bdH+Wb33d9X+fdj/gNn/ftf/Y8P/Qo3R + NWufAAAAAAAAAAAAAAAAAAAAAAAANXi1Ysr+gdz+f9v+gdz/gt7/hN//heH/W7/3PIC6AAAAAAAAAAAA + AAAAAAAAAAAAO3+6b9X/fNr9fNr9cMrxTJfLTJjMc870cdn/PH64AAAAAAAAAAAAAAAAAAAAAAAAOoC8 + dNv/d9j8eNr+SpbLOHy4Ony4TZnOd+D/PX+6AAAAAAAAAAAAAAAAAAAAAAAAOHu4b9P4c9n8c9r9SpfM + AAAAAAAATZvPc9f7P4K7AAAAAAAAAAAAAAAAAAAAAAAAPH+6S5nOcdv/b9j9ZsjwS5nNTZrPac71T57R + QIS8AAAAAAAAAAAAAAAAAAAAAAAAAAAAPH+6SpnOZ872btv/b93/adP5Tp7RQIO8AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAPoO7PoC6P4C6P4G6P4K7QIS9AAAAAAAAAAAA//8AAAfHAAADgwAAgwEAAMAB + AADgAQAA8AMAAPgHAAD4AwAA+AEAAPgBAAD4MQAA+DEAAPwDAAD+BwAA/w8AACgAAAAQAAAAIAAAAAEA + IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzAAAAMwAAADMAAAAzAAAAMwAAAAAAAAAAAAAAAAAA + AAAAAAAeAAAAMwAAADMAAAAzAAAAHgAAAAAAAAAAL3a2/y5ztP8vc7P/MHO0/zB3tv8AAAAzAAAAAAAA + AAAAAAAeAIxVrACeXv8AnV3/AJ5e/wCMVawAAAAeAAAAAC91tf9PyPz/TcP4/03E+P84h8X/NHi3/wAA + AAAAAAAAAI1SqwCmaf8Auob/d9/E/wC6hv8Apmr/AIxVrAAAAAAxdrboO5LO/03B9v9Mv/T/TcP4/zF2 + tf8AAAAzAAAAMwCgV/8AwYv/ALuC//////8Au4L/AMCM/wCeXv8AAAAAAAAAADF2teI+ksz/U8b4/1PF + +P8wcrH/NHa2/zt3wf8An1L/dubK/////////////////3flzP8AnFz/AAAAAAAAAAAAAAAAMne24kKU + zf9ezPz/XMv6/17N/v82cLr/AJ1O/wDMlP8AyI7//////wDIj/8AzJf/AJ1c/wAAAAAAAAAAAAAAAAAA + AAAzeLXiRZfP/2fS/P9mzvv/a9D//yqynf8ArGb/ANKZ/3Xs0f8A1Jv/ALBt/wChWJIAAAAAAAAAAAAA + AAAAAAAAAAAAADR4tuBJmc//ctX9/2HF+v9OsP3/JKqb/wCWSf8Alkv/AJpM/xSRf/0AAAAaAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAM3a0/23R/v9Zvff/d9X+/33Y//+A2f//ftf//2PD//9CjdH/NWufmQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADV4tf9iyv7/gdz+/3/b/v+B3P//gt7//4Tf//+F4f//W7/3/zyA + uv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7f7r/b9X//3za/f982v3/cMrx/0yXy/9MmMz/c870/3HZ + //88frj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOoC8/3Tb//932Pz/eNr+/0qWy/84fLgdOny4HU2Z + zv934P//PX+6/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADh7uP9v0/j/c9n8/3Pa/f9Kl8z/AAAAMwAA + ADNNm8//c9f7/z+Cu/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8f7qCS5nO/3Hb//9v2P3/Zsjw/0uZ + zf9Nms//ac71/0+e0f9AhLyCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADx/uuZKmc7/Z872/27b + //9v3f//adP5/06e0f9Ag7znAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPoO7gj6A + uv8/gLr/P4G6/z+Cu/9AhL2CAAAAAAAAAAAAAAAA//8AAAfHAAADgwAAgwEAAMABAADgAQAA8AMAAPgH + AAD4AwAA+AEAAPgBAAD4MQAA+DEAAPwDAAD+BwAA/w8AACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAJhQAFDA+AD4+PgAOIC4ADBwsABw4MgAAMiQADBomAAIuIAAeNj4AEiY + yAAYoIgAaND4AGDI+AAAoGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVVUAABEREAAAAAAAAA + AABeIkUAH5afEAAAAAAAAAAAWyIlABmTmRAAAAAAAAAAAAWyJVQWMzYQAAAAAAAAAAAAW+7lF3N3EAAA + AAAAAAAAAAW97ZF2eRAAAAAAAAAAAAAAW9IsERwAAAAAAAAAAAAAAAXS2q0kgAAAAAAAAAAAAAAF6qqq + okAAAAAAAAAAAAAABNquu+pAAAAAAAAAAAAAAASqq0S6QAAAAAAAAAAAAAAE2qsAvUAAAAAAAAAAAAAA + BLquu+tAAAAAAAAAAAAAAABL6q20AAAAAAAAAAAAAAAABEREQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////8Hg///AwH//wMB//8AAf//gAH//8AB///gAf//8AH///gB///4 + Af//+AH///gB///4Af//+AH///wD///+B////////////////////////////////////////////ygA + AAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvdrYuc7Qvc7Mwc7Qwd7YAAAAAAAAAAAAAAAAAjFUAnl4A + nV0Anl4AjFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAvdbVPyPxNw/hNxPg4h8U0eLcAAAAAAAAAjVIApmkAuoZ338QAuoYApmoAjFUAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxdrY7ks5NwfZMv/RNw/gxdrUAAAAA + AAAAoFcAwYsAu4L///8Au4IAwIwAnl4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAxdrU+ksxTxvhTxfgwcrE0drY7d8EAn1J25sr///////////935cwAnFwA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyd7ZC + lM1ezPxcy/pezf42cLoAnU4AzJQAyI7///8AyI8AzJcAnVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzeLVFl89n0vxmzvtr0P8qsp0ArGYA0pl1 + 7NEA1JsAsG0AoVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAA0eLZJmc9y1f1hxfpOsP0kqpsAlkkAlksAmkwUkX8AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzdrRt0f5Z + vfd31f592P+A2f9+1/9jw/9CjdE1a58AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1eLViyv6B3P5/2/6B3P+C3v+E3/+F4f9bv/c8gLoA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAA7f7pv1f982v182v1wyvFMl8tMmMxzzvRx2f88frgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6gLx02/932Px42v5Klss4fLg6 + fLhNmc534P89f7oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAA4e7hv0/hz2fxz2v1Kl8wAAAAAAABNm89z1/s/grsAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8f7pLmc5x + 2/9v2P1myPBLmc1Nms9pzvVPntFAhLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8f7pKmc5nzvZu2/9v3f9p0/lOntFAg7wAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAA+g7s+gLo/gLo/gbo/grtAhL0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////// + ////////////////////////////////////B8f//wOD//+DAf//wAH//+AB///wA///+Af///gD///4 + Af//+AH///gx///4Mf///AP///4H////D////////////////////////////////////////////ygA + AAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAzAAAAMwAAADMAAAAzAAAAMwAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAMwAA + ADMAAAAzAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC92tv8uc7T/L3Oz/zBztP8wd7b/AAAAMwAAAAAAAAAAAAAAHgCM + VawAnl7/AJ1d/wCeXv8AjFWsAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL3W1/0/I/P9Nw/j/TcT4/ziHxf80eLf/AAAAAAAA + AAAAjVKrAKZp/wC6hv9338T/ALqG/wCmav8AjFWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxdrboO5LO/03B9v9Mv/T/TcP4/zF2 + tf8AAAAzAAAAMwCgV/8AwYv/ALuC//////8Au4L/AMCM/wCeXv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxdrXiPpLM/1PG + +P9Txfj/MHKx/zR2tv87d8H/AJ9S/3bmyv////////////////935cz/AJxc/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAyd7biQpTN/17M/P9cy/r/Xs3+/zZwuv8AnU7/AMyU/wDIjv//////AMiP/wDMl/8AnVz/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAzeLXiRZfP/2fS/P9mzvv/a9D//yqynf8ArGb/ANKZ/3Xs0f8A1Jv/ALBt/wCh + WJIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0eLbgSZnP/3LV/f9hxfr/TrD9/ySqm/8Alkn/AJZL/wCa + TP8UkX/9AAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzdrT/bdH+/1m99/931f7/fdj//4DZ + //9+1///Y8P//0KN0f81a5+ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADV4tf9iyv7/gdz+/3/b + /v+B3P//gt7//4Tf//+F4f//W7/3/zyAuv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO3+6/2/V + //982v3/fNr9/3DK8f9Ml8v/TJjM/3PO9P9x2f//PH64/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA6gLz/dNv//3fY/P942v7/SpbL/zh8uB06fLgdTZnO/3fg//89f7r/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADh7uP9v0/j/c9n8/3Pa/f9Kl8z/AAAAMwAAADNNm8//c9f7/z+Cu/8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAPH+6gkuZzv9x2///b9j9/2bI8P9Lmc3/TZrP/2nO9f9PntH/QIS8ggAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPH+65kqZzv9nzvb/btv//2/d//9p0/n/Tp7R/0CD + vOcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPoO7gj6Auv8/gLr/P4G6/z+C + u/9AhL2CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////// + /////////////////////////////////////////wfH//8Dg///gwH//8AB///gAf//8AP///gH///4 + A///+AH///gB///4Mf//+DH///wD///+B////w////////////////////////////////////////// + //8oAAAAMAAAAGAAAAABAAQAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYUABQwPgA+Pj4ADiA + uAAwcLAAcODIAADIkAAAuIAAeNj4AEiYyAAYoIgAaND4ADCAqABgyPgAAKBoAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVVVQAAEREQAAAAAAAAAAAAAA + AAAAAAAAXiJNAB+GjxAAAAAAAAAAAAAAAAAAAAAAWiIlABiDiBAAAAAAAAAAAAAAAAAAAAAABaIlVBYz + NhAAAAAAAAAAAAAAAAAAAAAAAFru5RdzdxAAAAAAAAAAAAAAAAAAAAAAAA2s7NF2eBAAAAAAAAAAAAAA + AAAAAAAAAADawisRGwAAAAAAAAAAAAAAAAAAAAAAAAAFwsmcJFAAAAAAAAAAAAAAAAAAAAAAAAAN6ZmZ + kkAAAAAAAAAAAAAAAAAAAAAAAAAEyZ6q6UAAAAAAAAAAAAAAAAAAAAAAAAAEmZpEqUAAAAAAAAAAAAAA + AAAAAAAAAAAEyZoArEAAAAAAAAAAAAAAAAAAAAAAAAAEqZ6q6kAAAAAAAAAAAAAAAAAAAAAAAAAASumc + pAAAAAAAAAAAAAAAAAAAAAAAAAAABEREQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA//////// + AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// + /////wAA//8Hg///AAD//wMB//8AAP//AwH//wAA//8AAf//AAD//4AB//8AAP//wAH//wAA///gAf// + AAD///AB//8AAP//+AH//wAA///4Af//AAD///gB//8AAP//+AH//wAA///4Af//AAD///gB//8AAP// + /AP//wAA///+B///AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA//////// + AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// + /////wAA////////AAD///////8AACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvdrYuc7Qvc7Mwc7Qwd7YAAAAAAAAA + AAAAAAAAjFUAnl4AnV0Anl4AjFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAvdbVPyPxNw/hNxPg4h8U0eLcAAAAAAAAAjVIApmkAuoZ338QAuoYApmoAjFUAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxdrY7ks5NwfZMv/RNw/gxdrUAAAAAAAAAoFcAwYsAu4L/ + //8Au4IAwIwAnl4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxdrU+ksxT + xvhTxfgwcrE0drY7d8EAn1J25sr///////////935cwAnFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAyd7ZClM1ezPxcy/pezf42cLoAnU4AzJQAyI7///8AyI8AzJcAnVwA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzeLVFl89n0vxmzvtr + 0P8qsp0ArGYA0pl17NEA1JsAsG0AoVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAA0eLZJmc9y1f1hxfpOsP0kqpsAlkkAlksAmkwUkX8AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzdrRt0f5Zvfd31f592P+A2f9+ + 1/9jw/9CjdE1a58AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAA1eLViyv6B3P5/2/6B3P+C3v+E3/+F4f9bv/c8gLoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7f7pv1f982v182v1wyvFMl8tMmMxzzvRx2f88frgA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6gLx02/93 + 2Px42v5Klss4fLg6fLhNmc534P89f7oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAA4e7hv0/hz2fxz2v1Kl8wAAAAAAABNm89z1/s/grsAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8f7pLmc5x2/9v2P1myPBLmc1N + ms9pzvVPntFAhLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAA8f7pKmc5nzvZu2/9v3f9p0/lOntFAg7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+g7s+gLo/gLo/gbo/grtAhL0AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP///////wAA//////// + AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// + /////wAA////////AAD///////8AAP///////wAA//8Hx///AAD//wOD//8AAP//gwH//wAA///AAf// + AAD//+AB//8AAP//8AP//wAA///4B///AAD///gD//8AAP//+AH//wAA///4Af//AAD///gx//8AAP// + +DH//wAA///8A///AAD///4H//8AAP///w///wAA////////AAD///////8AAP///////wAA//////// + AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// + /////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAMAAAAGAAAAABACAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMAAAAzAAAAMwAAADMAAAAzAAAAAAAA + AAAAAAAAAAAAAAAAAB4AAAAzAAAAMwAAADMAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC92tv8uc7T/L3Oz/zBz + tP8wd7b/AAAAMwAAAAAAAAAAAAAAHgCMVawAnl7/AJ1d/wCeXv8AjFWsAAAAHgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC91 + tf9PyPz/TcP4/03E+P84h8X/NHi3/wAAAAAAAAAAAI1SqwCmaf8Auob/d9/E/wC6hv8Apmr/AIxVrAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADF2tug7ks7/TcH2/0y/9P9Nw/j/MXa1/wAAADMAAAAzAKBX/wDBi/8Au4L//////wC7 + gv8AwIz/AJ5e/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxdrXiPpLM/1PG+P9Txfj/MHKx/zR2tv87d8H/AJ9S/3bm + yv////////////////935cz/AJxc/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMne24kKUzf9ezPz/XMv6/17N + /v82cLr/AJ1O/wDMlP8AyI7//////wDIj/8AzJf/AJ1c/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADN4 + teJFl8//Z9L8/2bO+/9r0P//KrKd/wCsZv8A0pn/dezR/wDUm/8AsG3/AKFYkgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAA0eLbgSZnP/3LV/f9hxfr/TrD9/ySqm/8Alkn/AJZL/wCaTP8UkX/9AAAAGgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3a0/23R/v9Zvff/d9X+/33Y//+A2f//ftf//2PD + //9CjdH/NWufmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANXi1/2LK/v+B3P7/f9v+/4Hc + //+C3v//hN///4Xh//9bv/f/PIC6/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO3+6/2/V + //982v3/fNr9/3DK8f9Ml8v/TJjM/3PO9P9x2f//PH64/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAOoC8/3Tb//932Pz/eNr+/0qWy/84fLgdOny4HU2Zzv934P//PX+6/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAOHu4/2/T+P9z2fz/c9r9/0qXzP8AAAAzAAAAM02bz/9z1/v/P4K7/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPH+6gkuZzv9x2///b9j9/2bI8P9Lmc3/TZrP/2nO + 9f9PntH/QIS8ggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADx/uuZKmc7/Z872/27b + //9v3f//adP5/06e0f9Ag7znAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA+g7uCPoC6/z+Auv8/gbr/P4K7/0CEvYIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////// + AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// + /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA//////// + AAD///////8AAP//B8f//wAA//8Dg///AAD//4MB//8AAP//wAH//wAA///gAf//AAD///AD//8AAP// + +Af//wAA///4A///AAD///gB//8AAP//+AH//wAA///4Mf//AAD///gx//8AAP///AP//wAA///+B/// + AAD///8P//8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// + /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA//////// + AAD///////8AAP///////wAAKAAAAEAAAACAAAAAAQAEAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAmFAAUMD4APj4+AA4gLgAMHCwAHDgyAAAyJAAALiAAHjY+ABImMgAGKCIAGjQ+AAwgKgAYMj4AACg + aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVVUAABEREAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAXiJNAB+GjxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaIiUAGIOIEAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAWiJVQWMzYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFru5RdzdxAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAADazs0XZ4EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2sIrERsAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAFwsmcJFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pmZmSQAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMmequlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEmZpE + qUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATJmgCsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + BKmequpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASumcpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAERERAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////weD////////AwH///////8DAf///////wAB////////gAH/ + ///////AAf///////+AB////////8AH////////4Af////////gB////////+AH////////4Af////// + //gB////////+AH////////8A/////////4H//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////KAAAAEAAAACAAAAAAQAYAAAA + AAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC92ti5ztC9zszBztDB3tgAAAAAAAAAAAAAA + AACMVQCeXgCdXQCeXgCMVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC91tU/I/E3D+E3E+DiH + xTR4twAAAAAAAACNUgCmaQC6hnffxAC6hgCmagCMVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADF2 + tjuSzk3B9ky/9E3D+DF2tQAAAAAAAACgVwDBiwC7gv///wC7ggDAjACeXgAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAADF2tT6SzFPG+FPF+DBysTR2tjt3wQCfUnbmyv///////////3flzACcXAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJ3tkKUzV7M/FzL+l7N/jZwugCdTgDMlADIjv///wDI + jwDMlwCdXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADN4tUWXz2fS/GbO+2vQ/yqy + nQCsZgDSmXXs0QDUmwCwbQChWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR4 + tkmZz3LV/WHF+k6w/SSqmwCWSQCWSwCaTBSRfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAADN2tG3R/lm993fV/n3Y/4DZ/37X/2PD/0KN0TVrnwAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADV4tWLK/oHc/n/b/oHc/4Le/4Tf/4Xh/1u/9zyAugAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADt/um/V/3za/Xza/XDK8UyXy0yYzHPO + 9HHZ/zx+uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADqAvHTb/3fY/Hja + /kqWyzh8uDp8uE2Zznfg/z1/ugAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ADh7uG/T+HPZ/HPa/UqXzAAAAAAAAE2bz3PX+z+CuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAADx/ukuZznHb/2/Y/WbI8EuZzU2az2nO9U+e0UCEvAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADx/ukqZzmfO9m7b/2/d/2nT+U6e0UCDvAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6Duz6Auj+Auj+Buj+Cu0CE + vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////B8f///////8Dg////////4MB////////wAH/ + ///////gAf////////AD////////+Af////////4A/////////gB////////+AH////////4Mf////// + //gx/////////AP////////+B/////////8P//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////KAAAAEAAAACAAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMAAAAzAAAAMwAAADMAAAAzAAAAAAAAAAAAAAAAAAAAAAAA + AB4AAAAzAAAAMwAAADMAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvdrb/LnO0/y9zs/8wc7T/MHe2/wAA + ADMAAAAAAAAAAAAAAB4AjFWsAJ5e/wCdXf8Anl7/AIxVrAAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL3W1/0/I + /P9Nw/j/TcT4/ziHxf80eLf/AAAAAAAAAAAAjVKrAKZp/wC6hv9338T/ALqG/wCmav8AjFWsAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADF2tug7ks7/TcH2/0y/9P9Nw/j/MXa1/wAAADMAAAAzAKBX/wDBi/8Au4L//////wC7 + gv8AwIz/AJ5e/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMXa14j6SzP9Txvj/U8X4/zBysf80drb/O3fB/wCf + Uv925sr/////////////////d+XM/wCcXP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyd7biQpTN/17M + /P9cy/r/Xs3+/zZwuv8AnU7/AMyU/wDIjv//////AMiP/wDMl/8AnVz/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADN4teJFl8//Z9L8/2bO+/9r0P//KrKd/wCsZv8A0pn/dezR/wDUm/8AsG3/AKFYkgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHi24EmZz/9y1f3/YcX6/06w/f8kqpv/AJZJ/wCW + S/8Amkz/FJF//QAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzdrT/bdH+/1m9 + 9/931f7/fdj//4DZ//9+1///Y8P//0KN0f81a5+ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAANXi1/2LK/v+B3P7/f9v+/4Hc//+C3v//hN///4Xh//9bv/f/PIC6/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADt/uv9v1f//fNr9/3za/f9wyvH/TJfL/0yYzP9zzvT/cdn//zx+ + uP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6gLz/dNv//3fY/P942v7/SpbL/zh8 + uB06fLgdTZnO/3fg//89f7r/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOHu4/2/T + +P9z2fz/c9r9/0qXzP8AAAAzAAAAM02bz/9z1/v/P4K7/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADx/uoJLmc7/cdv//2/Y/f9myPD/S5nN/02az/9pzvX/T57R/0CEvIIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPH+65kqZzv9nzvb/btv//2/d//9p0/n/Tp7R/0CD + vOcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+g7uCPoC6/z+A + uv8/gbr/P4K7/0CEvYIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////wfH////////A4P/ + //////+DAf///////8AB////////4AH////////wA/////////gH////////+AP////////4Af////// + //gB////////+DH////////4Mf////////wD/////////gf/////////D/////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////w== + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsUserControl.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsUserControl.Designer.cs new file mode 100644 index 00000000..86144e85 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsUserControl.Designer.cs @@ -0,0 +1,217 @@ + +namespace HydroDesktop.Plugins.Search.Settings.UI +{ + partial class KeywordsUserControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(KeywordsUserControl)); + this.tboTypeKeyword = new System.Windows.Forms.TextBox(); + this.lblKeywords = new System.Windows.Forms.Label(); + this.lblKeywordRelation = new System.Windows.Forms.Label(); + this.btnAddKeyword = new System.Windows.Forms.Button(); + this.btnRemoveKeyword = new System.Windows.Forms.Button(); + this.lblSelectedKeywords = new System.Windows.Forms.Label(); + this.lbSelectedKeywords = new System.Windows.Forms.ListBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.treeviewOntology = new System.Windows.Forms.TreeView(); + this.radioButton1 = new System.Windows.Forms.RadioButton(); + this.radioButton2 = new System.Windows.Forms.RadioButton(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.SuspendLayout(); + // + // tboTypeKeyword + // + this.tboTypeKeyword.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tboTypeKeyword.ForeColor = System.Drawing.Color.Gray; + this.tboTypeKeyword.Location = new System.Drawing.Point(14, 10); + this.tboTypeKeyword.Name = "tboTypeKeyword"; + this.tboTypeKeyword.Size = new System.Drawing.Size(269, 20); + this.tboTypeKeyword.TabIndex = 52; + // + // lblKeywords + // + this.lblKeywords.Dock = System.Windows.Forms.DockStyle.Left; + this.lblKeywords.Location = new System.Drawing.Point(0, 0); + this.lblKeywords.Name = "lblKeywords"; + this.lblKeywords.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + this.lblKeywords.Size = new System.Drawing.Size(103, 40); + this.lblKeywords.TabIndex = 53; + // + // lblKeywordRelation + // + this.lblKeywordRelation.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.lblKeywordRelation.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblKeywordRelation.Location = new System.Drawing.Point(14, 44); + this.lblKeywordRelation.Name = "lblKeywordRelation"; + this.lblKeywordRelation.Size = new System.Drawing.Size(269, 30); + this.lblKeywordRelation.TabIndex = 54; + // + // btnAddKeyword + // + this.btnAddKeyword.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnAddKeyword.Image = ((System.Drawing.Image)(resources.GetObject("btnAddKeyword.Image"))); + this.btnAddKeyword.Location = new System.Drawing.Point(14, 277); + this.btnAddKeyword.Name = "btnAddKeyword"; + this.btnAddKeyword.Size = new System.Drawing.Size(25, 22); + this.btnAddKeyword.TabIndex = 59; + this.btnAddKeyword.UseVisualStyleBackColor = true; + this.btnAddKeyword.Click += new System.EventHandler(this.btnAddKeyword_Click); + // + // btnRemoveKeyword + // + this.btnRemoveKeyword.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnRemoveKeyword.Image = ((System.Drawing.Image)(resources.GetObject("btnRemoveKeyword.Image"))); + this.btnRemoveKeyword.Location = new System.Drawing.Point(45, 277); + this.btnRemoveKeyword.Name = "btnRemoveKeyword"; + this.btnRemoveKeyword.Size = new System.Drawing.Size(25, 22); + this.btnRemoveKeyword.TabIndex = 60; + this.btnRemoveKeyword.UseVisualStyleBackColor = true; + this.btnRemoveKeyword.Click += new System.EventHandler(this.btnRemoveKeyword_Click); + // + // lblSelectedKeywords + // + this.lblSelectedKeywords.AutoSize = true; + this.lblSelectedKeywords.Dock = System.Windows.Forms.DockStyle.Top; + this.lblSelectedKeywords.Location = new System.Drawing.Point(0, 0); + this.lblSelectedKeywords.Name = "lblSelectedKeywords"; + this.lblSelectedKeywords.Size = new System.Drawing.Size(98, 13); + this.lblSelectedKeywords.TabIndex = 64; + this.lblSelectedKeywords.Text = "Selected Keywords"; + // + // lbSelectedKeywords + // + this.lbSelectedKeywords.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbSelectedKeywords.ForeColor = System.Drawing.Color.Gray; + this.lbSelectedKeywords.FormattingEnabled = true; + this.lbSelectedKeywords.Location = new System.Drawing.Point(0, 13); + this.lbSelectedKeywords.Name = "lbSelectedKeywords"; + this.lbSelectedKeywords.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended; + this.lbSelectedKeywords.Size = new System.Drawing.Size(295, 85); + this.lbSelectedKeywords.TabIndex = 63; + // + // panel1 + // + this.panel1.Controls.Add(this.lbSelectedKeywords); + this.panel1.Controls.Add(this.lblSelectedKeywords); + this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel1.Location = new System.Drawing.Point(0, 309); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(295, 98); + this.panel1.TabIndex = 65; + // + // panel2 + // + this.panel2.Controls.Add(this.tboTypeKeyword); + this.panel2.Controls.Add(this.lblKeywords); + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(0, 0); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(295, 40); + this.panel2.TabIndex = 66; + // + // treeviewOntology + // + this.treeviewOntology.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.treeviewOntology.BackColor = System.Drawing.SystemColors.Window; + this.treeviewOntology.HideSelection = false; + this.treeviewOntology.Indent = 19; + this.treeviewOntology.Location = new System.Drawing.Point(3, 92); + this.treeviewOntology.Name = "treeviewOntology"; + this.treeviewOntology.Size = new System.Drawing.Size(289, 179); + this.treeviewOntology.TabIndex = 39; + // + // radioButton1 + // + this.radioButton1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.radioButton1.AutoSize = true; + this.radioButton1.Location = new System.Drawing.Point(123, 277); + this.radioButton1.Name = "radioButton1"; + this.radioButton1.Size = new System.Drawing.Size(207, 17); + this.radioButton1.TabIndex = 67; + this.radioButton1.TabStop = true; + this.radioButton1.Text = "Find sites with ANY selected keywords"; + this.radioButton1.UseVisualStyleBackColor = true; + // + // radioButton2 + // + this.radioButton2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.radioButton2.AutoSize = true; + this.radioButton2.Location = new System.Drawing.Point(123, 299); + this.radioButton2.Name = "radioButton2"; + this.radioButton2.Size = new System.Drawing.Size(204, 17); + this.radioButton2.TabIndex = 68; + this.radioButton2.TabStop = true; + this.radioButton2.Text = "Find sites with ALL selected keywords"; + this.radioButton2.UseVisualStyleBackColor = true; + // + // KeywordsUserControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.radioButton2); + this.Controls.Add(this.radioButton1); + this.Controls.Add(this.treeviewOntology); + this.Controls.Add(this.btnRemoveKeyword); + this.Controls.Add(this.panel2); + this.Controls.Add(this.btnAddKeyword); + this.Controls.Add(this.panel1); + this.Controls.Add(this.lblKeywordRelation); + this.Name = "KeywordsUserControl"; + this.Size = new System.Drawing.Size(295, 407); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox tboTypeKeyword; + private System.Windows.Forms.Label lblKeywords; + private System.Windows.Forms.Label lblKeywordRelation; + private System.Windows.Forms.Button btnAddKeyword; + private System.Windows.Forms.Button btnRemoveKeyword; + private System.Windows.Forms.Label lblSelectedKeywords; + private System.Windows.Forms.ListBox lbSelectedKeywords; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.TreeView treeviewOntology; + internal System.Windows.Forms.RadioButton radioButton1; + internal System.Windows.Forms.RadioButton radioButton2; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsUserControl.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsUserControl.cs new file mode 100644 index 00000000..cb7d9853 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsUserControl.cs @@ -0,0 +1,222 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.Search.Settings.UI +{ + public partial class KeywordsUserControl : UserControl + { + #region Constructors + + public KeywordsUserControl() + { + InitializeComponent(); + } + + #endregion + + #region Public methods + + /// + /// Set data into control. + /// + /// Keyword settings. + /// Throws if is null. + public void BindKeywordsSettings(KeywordsSettings keywordsSettings) + { + if (keywordsSettings == null) throw new ArgumentNullException("keywordsSettings"); + + tboTypeKeyword.Clear(); + tboTypeKeyword.Text = HydroDesktop.Plugins.Search.Keywords.Constants.EnterKeyword; + lblKeywordRelation.Text = ""; + tboTypeKeyword.AutoCompleteMode = AutoCompleteMode.SuggestAppend; + var autoCompleteSource = new AutoCompleteStringCollection(); + autoCompleteSource.AddRange(keywordsSettings.Keywords.ToArray()); + tboTypeKeyword.AutoCompleteCustomSource = autoCompleteSource; + tboTypeKeyword.AutoCompleteSource = AutoCompleteSource.CustomSource; + + tboTypeKeyword.Click += delegate(object sender, EventArgs e) + { + if (tboTypeKeyword.Text == HydroDesktop.Plugins.Search.Keywords.Constants.EnterKeyword) + { + tboTypeKeyword.Text = ""; + tboTypeKeyword.ForeColor = System.Drawing.Color.Black; + } + }; + + tboTypeKeyword.KeyDown += delegate(object sender, KeyEventArgs args) + { + if (args.KeyCode == Keys.Enter) + { + treeviewOntology.SelectedNode = null; + + // Replace keyword by synonym + var keyword = tboTypeKeyword.Text.Trim(); + keyword = keywordsSettings.FindSynonym(keyword); + + UpdateKeywordTextBox(keyword); + AddKeyword(); + } + }; + + // Ontology tree + treeviewOntology.AfterSelect += tvOntology_AfterSelect; + treeviewOntology.BeginUpdate(); + treeviewOntology.Nodes.Clear(); + FillTreeviewOntology(treeviewOntology.Nodes, keywordsSettings.OntologyTree.Nodes); + treeviewOntology.EndUpdate(); + + // Selected keywords + AddSelectedKeywords(keywordsSettings.SelectedKeywords); + if (keywordsSettings.SelectedKeywords.Any()) + { + // Select first keyword in textbox + UpdateKeywordTextBox(keywordsSettings.SelectedKeywords.First()); + } + } + + /// + /// Add selected keywords. + /// + /// Keywords to add. + /// Throws if is null. + private void AddSelectedKeywords(IEnumerable keywords) + { + if (keywords == null) throw new ArgumentNullException("keywords"); + + foreach (var keyword in keywords.Where(keyword => !lbSelectedKeywords.Items.Contains(keyword))) + { + lbSelectedKeywords.Items.Add(keyword); + } + } + + /// + /// Remove selected keywords. + /// + /// Keywords to remove. If parameter is null - removes all selected keywords. + private void RemoveSelectedKeywords(IEnumerable keywords = null) + { + if (keywords == null) + { + // remove all keywords + lbSelectedKeywords.Items.Clear(); + }else + { + foreach(var keyword in keywords) + { + lbSelectedKeywords.Items.Remove(keyword); + } + } + } + + /// + /// Get selected keywords. + /// + /// Selected keywords. + public IEnumerable GetSelectedKeywords() + { + var res = new List(lbSelectedKeywords.Items.Count); + res.AddRange(from object item in lbSelectedKeywords.Items select item.ToString()); + return res; + } + + #endregion + + #region Private methods + + private void FillTreeviewOntology(TreeNodeCollection treeNodeCollection, IEnumerable ontologyNodes) + { + foreach (var oNode in ontologyNodes) + { + var treeNode = CreateTreeNodeFromOntologyNode(oNode); + treeNodeCollection.Add(treeNode); + foreach (var oChild in oNode.Nodes) + { + var childTreeNode = CreateTreeNodeFromOntologyNode(oChild); + treeNode.Nodes.Add(childTreeNode); + FillTreeviewOntology(childTreeNode.Nodes, oChild.Nodes); + } + } + } + + private TreeNode CreateTreeNodeFromOntologyNode(OntologyNode oNode) + { + var res = new TreeNode(oNode.Text) { Tag = oNode }; + return res; + } + + private void UpdateKeywordTextBox(string text) + { + treeviewOntology.AfterSelect -= tvOntology_AfterSelect; + tboTypeKeyword.Text = text; + FindInTreeView(treeviewOntology.Nodes, tboTypeKeyword.Text); + treeviewOntology.AfterSelect += tvOntology_AfterSelect; + } + + private void tvOntology_AfterSelect(object sender, TreeViewEventArgs e) + { + UpdateKeywordTextBox(e.Node.Text); + } + + private bool FindInTreeView(IEnumerable tncoll, string strNode) + { + foreach (TreeNode tnode in tncoll) + { + if (string.Equals(tnode.Text, strNode, StringComparison.OrdinalIgnoreCase)) + { + tnode.TreeView.SelectedNode = tnode; + lblKeywordRelation.Text = tnode.FullPath; + return true; + } + + var res = FindInTreeView(tnode.Nodes, strNode); + if (res) + { + return true; + } + } + return false; + } + + private void btnAddKeyword_Click(object sender, EventArgs e) + { + AddKeyword(); + } + + private void AddKeyword() + { + var node = treeviewOntology.SelectedNode; + if (node == null) + { + MessageBox.Show("Please select a valid Keyword.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + var itemToAdd = node.Text; + if (GetSelectedKeywords().Any(item => item == itemToAdd)) + { + MessageBox.Show("This Keyword is already selected, Please select another keyword.", "Information", + MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + AddSelectedKeywords(new[] { itemToAdd }); + } + + private void btnRemoveKeyword_Click(object sender, EventArgs e) + { + if (lbSelectedKeywords.SelectedItems.Count <= 0) + return; + + var itemsToRemove = new List(lbSelectedKeywords.SelectedItems.Count); + itemsToRemove.AddRange(from object selected in lbSelectedKeywords.SelectedItems select selected.ToString()); + RemoveSelectedKeywords(itemsToRemove); + } + + #endregion + + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsUserControl.resx b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsUserControl.resx new file mode 100644 index 00000000..cbdc4267 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/KeywordsUserControl.resx @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAoVJREFUOE+lk/1L + U1Ecxv1b9JcCISkxCwU1pQQLZWWzTVR0mi7nbIrOdjeXzrnNFzKdG75U1IZuo5Fu0zkdvmAmTi1dpF6H + Em0UQVAb/vp0z4ZOTYLogefA/X7P57n3nHtODID/8h8Fjasurt1ZS7U6BHTzeFVQ8qYi2PC6lBaZiynB + CDfu9PwTDxqXiKWcrA28WuvFSmAB3u/rWPu2jEmfFTJnNSoN7ADvxW3WceYULAy5dq3Y/7WLmS8OGOgB + PN/WwrpnwOLXWajnxSgazg1xBnKOQsKDekoUy8D+iR0Tdn9uYWirB09X29HlaYXWq0GfV42ujRZM7FtB + OfnI193w5/Vmxh4FMLC0f0mBTz82mDf2oXdTDdU7GdOKSLEqhmSBD+lSDex7FtwdzkLOkzQp04oEtNir + aYfPwnyqER0rcrQtSyCeEYRhoioLBw3TxRBNcaH/oEHPYjOud6XQTCsSIB2rPHB/dqD/o4aBm8LQWRJO + FkA6VwmTdwgZmuQDphQJaLLyDsZ9o1CvU5B76sOTzxIJoNwVMHsHkdqeGA2ot5TQOo8a2k0Vmt7yIZwr + Bc98JwwREZD4oZODfo8Cne5HuKJIiC5BOFoovW9mweYzQTxXhlp3UXjNhyKwwM5G3QQXth0jrnUnI/Fx + fHQT+caC2PKX+X7KWYUxeuRowwhYYycmMAfj2wY8MN0jsD9Bdj76G4lLnuWxCgdvhhptZbAzITqPEtR0 + OSRTZdCttMHGwHwTG4ny+BADnzxIh2brs1ksbVYgV5+O7nkKxvdaGNe1ULkbkdGZRODAcZj4RADxrZ70 + uOzuVCqz4yqdpkoKpigvBi+3XqAvyeOpBNm5v1+mfzdifgNBRssfKTipiwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAmlJREFUOE+lk/tL + U2EYx/1b9IcoQaIbIWEUFOa8zJ21Nrd5O8v0uMUilqbsDNMMahi68IdwltpVK3/JNLFRXjJydh1aHisv + 7dRGrek5u6Z82yZtLkcQvfB54Tw8n+/Lec55kwD8FxsKCxpNyjxVqf9AlTOzKpKbUZVw70klM0XK9bZS + acqf/XEPi2oN8Ymi2O+mJvhHLAi8tSIwMQr+fjcWtGV4XUiwL5RCYr0TJ89VUPzy3W6szr5DcPAegl3N + CJov4OftNqyMD8JRq4VVns0/l2ZGQyLbvFqdHJLt3M0urDI2BC+fg7vZgKWmGvgvGRBooeE3noL/wS0s + HicxfuSAfUyyLzkaEJJpZ70eK7bJyIk+Ew3XeR28Deo4uNMk/L3X8CovA8PiDDoa8JE6xnh6ryPYY4bb + WIVvReKELFeR4Jvq4DBU4zGRzkQDmAqVN/CwF0GTAe6z2lAp8XLIcuCiCrFkboUlb5c3VFoLmCGLvL6e + DvgbtfCeKY80J1rhAGeZAkttrRgSbosFTJcqGJexDr5mGtxJZaQxIfI8uOtrsVCrw6AgLfYKtmIpzUgE + 8PZ0wq2SwFUm2iCz0mywBSJ4uq5gVLgDA1lbYkN8UyROfllC2BcrS+C50xEZmFMhXBNluWAlIVkiBN/Z + jqlicVi29wk2xz5jmMmCHGJCdoifO6qA50YHfjTScJByfFHK4GrQg7/ajmllPvqzUvmQHP8j/eaZ9CDx + 9PB+1irag681OrhaLkb4XH0CT3K2h2V2vRwmLiDMiHhvyrAwXW8hdjOP8ndyQ4Kt3EBuGtOfnarvy9z0 + 98v07yDpFx3SzrlpSNZLAAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesDialog.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesDialog.Designer.cs new file mode 100644 index 00000000..8d2efc89 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesDialog.Designer.cs @@ -0,0 +1,222 @@ +namespace HydroDesktop.Plugins.Search.Settings.UI +{ + partial class WebServicesDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WebServicesDialog)); + this.btnCancel = new System.Windows.Forms.Button(); + this.btnOK = new System.Windows.Forms.Button(); + this.paButtons = new System.Windows.Forms.Panel(); + this.gbTypeOfCatalog = new System.Windows.Forms.GroupBox(); + this.rbLocalMetadataCache = new System.Windows.Forms.RadioButton(); + this.rbHisCentral = new System.Windows.Forms.RadioButton(); + this.btnManageDataSources = new System.Windows.Forms.Button(); + this.bntAddLocalDataSource = new System.Windows.Forms.Button(); + this.btnSelectNone = new System.Windows.Forms.Button(); + this.btnSelectAll = new System.Windows.Forms.Button(); + this.btnRefresh = new System.Windows.Forms.Button(); + this.webServicesUserControl1 = new HydroDesktop.Plugins.Search.Settings.UI.WebServicesUserControl(_app, _rectangleDrawing); + this.paButtons.SuspendLayout(); + this.gbTypeOfCatalog.SuspendLayout(); + this.SuspendLayout(); + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(598, 304); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 1; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(517, 304); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 0; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + // + // paButtons + // + this.paButtons.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.paButtons.Controls.Add(this.gbTypeOfCatalog); + this.paButtons.Controls.Add(this.btnManageDataSources); + this.paButtons.Controls.Add(this.bntAddLocalDataSource); + this.paButtons.Location = new System.Drawing.Point(0, 1); + this.paButtons.Name = "paButtons"; + this.paButtons.Size = new System.Drawing.Size(681, 68); + this.paButtons.TabIndex = 45; + // + // gbTypeOfCatalog + // + this.gbTypeOfCatalog.Controls.Add(this.rbLocalMetadataCache); + this.gbTypeOfCatalog.Controls.Add(this.rbHisCentral); + this.gbTypeOfCatalog.Location = new System.Drawing.Point(12, 8); + this.gbTypeOfCatalog.Name = "gbTypeOfCatalog"; + this.gbTypeOfCatalog.Size = new System.Drawing.Size(237, 53); + this.gbTypeOfCatalog.TabIndex = 49; + this.gbTypeOfCatalog.TabStop = false; + this.gbTypeOfCatalog.Text = "Select type of catalog"; + // + // rbLocalMetadataCache + // + this.rbLocalMetadataCache.AutoSize = true; + this.rbLocalMetadataCache.Location = new System.Drawing.Point(113, 19); + this.rbLocalMetadataCache.Name = "rbLocalMetadataCache"; + this.rbLocalMetadataCache.Size = new System.Drawing.Size(114, 17); + this.rbLocalMetadataCache.TabIndex = 47; + this.rbLocalMetadataCache.TabStop = true; + this.rbLocalMetadataCache.Text = "Local Data Source"; + this.rbLocalMetadataCache.UseVisualStyleBackColor = true; + // + // rbHisCentral + // + this.rbHisCentral.AutoSize = true; + this.rbHisCentral.Location = new System.Drawing.Point(9, 19); + this.rbHisCentral.Name = "rbHisCentral"; + this.rbHisCentral.Size = new System.Drawing.Size(79, 17); + this.rbHisCentral.TabIndex = 46; + this.rbHisCentral.TabStop = true; + this.rbHisCentral.Text = "HIS Central"; + this.rbHisCentral.UseVisualStyleBackColor = true; + // + // btnManageDataSources + // + this.btnManageDataSources.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnManageDataSources.Location = new System.Drawing.Point(517, 37); + this.btnManageDataSources.Name = "btnManageDataSources"; + this.btnManageDataSources.Size = new System.Drawing.Size(156, 23); + this.btnManageDataSources.TabIndex = 45; + this.btnManageDataSources.Text = "Manage Data Sources..."; + this.btnManageDataSources.UseVisualStyleBackColor = true; + this.btnManageDataSources.Click += new System.EventHandler(this.btnManageDataSources_Click); + // + // bntAddLocalDataSource + // + this.bntAddLocalDataSource.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.bntAddLocalDataSource.Location = new System.Drawing.Point(517, 8); + this.bntAddLocalDataSource.Name = "bntAddLocalDataSource"; + this.bntAddLocalDataSource.Size = new System.Drawing.Size(156, 23); + this.bntAddLocalDataSource.TabIndex = 44; + this.bntAddLocalDataSource.Text = "Add Data Source..."; + this.bntAddLocalDataSource.UseVisualStyleBackColor = true; + this.bntAddLocalDataSource.Click += new System.EventHandler(this.bntAddLocalDataSource_Click); + // + // btnSelectNone + // + this.btnSelectNone.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnSelectNone.Location = new System.Drawing.Point(174, 304); + this.btnSelectNone.Name = "btnSelectNone"; + this.btnSelectNone.Size = new System.Drawing.Size(75, 23); + this.btnSelectNone.TabIndex = 43; + this.btnSelectNone.Text = "Select None"; + this.btnSelectNone.UseVisualStyleBackColor = true; + this.btnSelectNone.Click += new System.EventHandler(this.btnSelectNone_Click); + // + // btnSelectAll + // + this.btnSelectAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnSelectAll.Location = new System.Drawing.Point(93, 304); + this.btnSelectAll.Name = "btnSelectAll"; + this.btnSelectAll.Size = new System.Drawing.Size(75, 23); + this.btnSelectAll.TabIndex = 42; + this.btnSelectAll.Text = "Select All"; + this.btnSelectAll.UseVisualStyleBackColor = true; + this.btnSelectAll.Click += new System.EventHandler(this.btnSelectAll_Click); + // + // btnRefresh + // + this.btnRefresh.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.btnRefresh.Location = new System.Drawing.Point(12, 304); + this.btnRefresh.Name = "btnRefresh"; + this.btnRefresh.Size = new System.Drawing.Size(75, 23); + this.btnRefresh.TabIndex = 41; + this.btnRefresh.Text = "Refresh"; + this.btnRefresh.UseVisualStyleBackColor = true; + this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click); + // + // webServicesUserControl1 + // + this.webServicesUserControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.webServicesUserControl1.Location = new System.Drawing.Point(0, 75); + this.webServicesUserControl1.Name = "webServicesUserControl1"; + this.webServicesUserControl1.Size = new System.Drawing.Size(673, 221); + this.webServicesUserControl1.TabIndex = 0; + // + // WebServicesDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.ButtonFace; + this.ClientSize = new System.Drawing.Size(681, 339); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.Controls.Add(this.paButtons); + this.Controls.Add(this.btnSelectNone); + this.Controls.Add(this.btnRefresh); + this.Controls.Add(this.btnSelectAll); + this.Controls.Add(this.webServicesUserControl1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "WebServicesDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Select Data Sources"; + this.MouseEnter += new System.EventHandler(this.WebServicesDialog_MouseEnter); + this.paButtons.ResumeLayout(false); + this.gbTypeOfCatalog.ResumeLayout(false); + this.gbTypeOfCatalog.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private WebServicesUserControl webServicesUserControl1; + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Panel paButtons; + private System.Windows.Forms.Button btnRefresh; + private System.Windows.Forms.Button btnSelectNone; + private System.Windows.Forms.Button btnSelectAll; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.RadioButton rbLocalMetadataCache; + private System.Windows.Forms.RadioButton rbHisCentral; + private System.Windows.Forms.GroupBox gbTypeOfCatalog; + private System.Windows.Forms.Button bntAddLocalDataSource; + private System.Windows.Forms.Button btnManageDataSources; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesDialog.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesDialog.cs new file mode 100644 index 00000000..dee90055 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesDialog.cs @@ -0,0 +1,203 @@ +using System; +using System.Windows.Forms; +using DotSpatial.Controls; +using HydroDesktop.Interfaces.PluginContracts; +using HydroDesktop.Plugins.Search.Area; + +namespace HydroDesktop.Plugins.Search.Settings.UI +{ + public partial class WebServicesDialog : Form + { + #region Fields + + private readonly WebServicesSettings _settings; + private readonly CatalogSettings _catalogSettings; + private readonly KeywordsSettings _keywordsSettings; + private readonly IMetadataFetcherPlugin _metadataFetcher; + private AppManager _app; + private RectangleDrawing _rectangleDrawing; + private bool local; + #endregion + + #region Constructors + + private WebServicesDialog(WebServicesSettings settings, CatalogSettings catalogSettings, KeywordsSettings keywordsSettings, + IMetadataFetcherPlugin metadataFetcher, AppManager App, RectangleDrawing _rectangleDrawing) + { + _app = App; + this._rectangleDrawing = _rectangleDrawing; + InitializeComponent(); + + _settings = settings; + _catalogSettings = catalogSettings; + _keywordsSettings = keywordsSettings; + _metadataFetcher = metadataFetcher; + + + switch (_catalogSettings.TypeOfCatalog) + { + case TypeOfCatalog.HisCentral: + rbHisCentral.Checked = true; + local = false; + break; + case TypeOfCatalog.LocalMetadataCache: + rbLocalMetadataCache.Checked = true; + local = true; + break; + } + webServicesUserControl1.SetSettings(settings, catalogSettings, local); + + rbHisCentral.CheckedChanged += rbTypeOfCatalog_CheckedChanged; + rbLocalMetadataCache.CheckedChanged += rbTypeOfCatalog_CheckedChanged; + UpdateCatalogSettings(); + } + + #endregion + + #region Public methods + + public static DialogResult ShowDialog(WebServicesSettings settings, CatalogSettings catalogSettings, + KeywordsSettings keywordsSettings, IMetadataFetcherPlugin metadataFetcher, AppManager App, RectangleDrawing _rectangleDrawing) + { + if (settings == null) throw new ArgumentNullException("settings"); + if (catalogSettings == null) throw new ArgumentNullException("catalogSettings"); + if (keywordsSettings == null) throw new ArgumentNullException("keywordsSettings"); + + + + using (var form = new WebServicesDialog(settings.Copy(), catalogSettings.Copy(), keywordsSettings.Copy(), metadataFetcher, App, _rectangleDrawing)) + { + if (form.ShowDialog() == DialogResult.OK) + { + if (catalogSettings.TypeOfCatalog != form._catalogSettings.TypeOfCatalog || + catalogSettings.HISCentralUrl != form._catalogSettings.HISCentralUrl) + { + form.RefreshKeywords(); + } + + settings.Copy(form._settings); + catalogSettings.Copy(form._catalogSettings); + // keywordsSettings.Copy(form._keywordsSettings); + } + + return form.DialogResult; + } + } + + #endregion + + #region Private methods + + private TypeOfCatalog CurrentTypeOfCatalog + { + get + { + if (rbHisCentral.Checked) + return TypeOfCatalog.HisCentral; + if (rbLocalMetadataCache.Checked) + return TypeOfCatalog.LocalMetadataCache; + throw new Exception("Unknown CurrentTypeOfCatalog"); + } + } + + private void UpdateCatalogSettings() + { + var typeOfCatalog = CurrentTypeOfCatalog; + _catalogSettings.TypeOfCatalog = typeOfCatalog; + + switch (typeOfCatalog) + { + case TypeOfCatalog.LocalMetadataCache: + local = true; + bntAddLocalDataSource.Text = "Add Data Source..."; + btnManageDataSources.Enabled = true; + break; + case TypeOfCatalog.HisCentral: + local = false; + bntAddLocalDataSource.Text = "Advanced Options..."; + btnManageDataSources.Enabled = false; + break; + } + } + + void rbTypeOfCatalog_CheckedChanged(object sender, EventArgs e) + { + var button = sender as RadioButton; + if (button == null || !button.Checked) return; + + UpdateCatalogSettings(); + RefreshWebServices(); + } + + private void RefreshWebServices() + { + paButtons.Enabled = false; + try + { + webServicesUserControl1.RefreshWebServices(local); + } + finally + { + paButtons.Enabled = true; + } + } + + private void RefreshKeywords() + { + _keywordsSettings.UpdateKeywordsAndOntology(_catalogSettings); + } + + private void btnRefresh_Click(object sender, EventArgs e) + { + RefreshWebServices(); + } + + private void btnSelectAll_Click(object sender, EventArgs e) + { + webServicesUserControl1.CheckAllWebServices(true); + } + + private void btnSelectNone_Click(object sender, EventArgs e) + { + webServicesUserControl1.CheckAllWebServices(false); + } + + private void bntAddLocalDataSource_Click(object sender, EventArgs e) + { + var typeOfCatalog = CurrentTypeOfCatalog; + switch (typeOfCatalog) + { + case TypeOfCatalog.HisCentral: + if (AdvancedHisCentralOptionsDialog.ShowDialog(_catalogSettings) == DialogResult.OK) + { + RefreshWebServices(); + } + break; + case TypeOfCatalog.LocalMetadataCache: + if (_metadataFetcher != null) + { + _metadataFetcher.AddServices(); + RefreshWebServices(); + } + break; + } + } + + private void btnManageDataSources_Click(object sender, EventArgs e) + { + if (_metadataFetcher != null) + { + _metadataFetcher.DownloadMetadata(); + } + } + + #endregion + + private void WebServicesDialog_MouseEnter(object sender, EventArgs e) + { + webServicesUserControl1.Focus(); + } + + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesDialog.resx b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesDialog.resx new file mode 100644 index 00000000..38e561ea --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesDialog.resx @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAIAEBAAAAAAIABoBAAAJgAAACAgAAAAACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAEAE + AAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////Af///wH///8B////AQAAAAUAAAAZAAAAKwAA + AC0AAAAtAAAAKwAAABkAAAAF////Af///wEAAAATAAAAKwAAAC0AAAAtAAAALQAAAC01MS1Jj4Z7y7Gm + nP27sKb/vLGn/7KnnP2QhnvLTUhBNf///wH///8BhHJee7Ojjf+xoIr/saCK/7Ggiv+xoIr/oZSC/83F + vP/Yz8b/5drT/+fc1f/Z0Mj/zse+/4d+cYv///8B////AYp3YovOwq//4trK/+HZyf/h2cn/4tnJ/7qx + o//QycD/5+DY//Dp4v/w6eL/6OHZ/9LLwv+Ng3eJ////Af///wGMeWKL0se0/9bNuv/WzLn/2M26/93O + vP/KwLH/ysO6/8nAt//Vy8P/1szE/8rBuf/Mxb3/fnZsZf///wH///8BjHlki9bLuf/Pwq7/z8Kv/9PD + sf9uqXj/vK6f/8vDuv/WzMP/5NnS/+Xa0//Xzsb/zcW8/5WNgYv///8B////AY56ZYvZz77/wKeH/8Co + iP/AqIj/wqiI/7KijP/k3tb/7OXd/+zm3f/s5d3/7OXd/+Xf1v+YkoaJ////Af///wGQfGeL3NHB/+Xe + 0//l3tP/5d7T/+Xe0//Nxrn/0Mi+/+Pb0P/n3dT/5t3U/+Pb0P/Syb//opyQYf///wH///8BkHxoi9/V + xv+/pob/wKiH/8Coh//AqIf/wKiI/8Oymv+6r6H/paCUhaynm3+sp5t9p6GWO////wH///8B////AZJ+ + aYvh18j/6ODW/+jg1v/o4Nb/6ODW/+jg1v/e08T/x7mo/wAAAAv///8B////Af///wH///8B////Af// + /wGTgGuL5dvO/7+mhf/Ap4f/wKeH/8Cnh//Ap4f/y7ed/8m8rf8AAAAL////Af///wH///8B////Af// + /wH///8BlIFti+fd0P/q4tn/6uLZ/+ri2f/q4tn/6uLZ/+HVx//Mv7D/AAAAC////wH///8B////Af// + /wH///8B////AZaDbYvq4dX/v6aF/8Cnh//Ap4f/wKeH/7+nh//MuJ7/zsK0/wAAAAv///8B////Af// + /wH///8B////Af///wGYhW+L6+HW/+rh1v/q4db/6uHW/+rh1v/q4db/4tXG/9DEt/8AAAAL////Af// + /wH///8B////Af///wH///8BoIx3cdvRxf/j28//49vO/+Pbzv/j287/49vO/+Pbz/++r57rAAAABf// + /wH///8B////Af///wH///8B////Af///wGwnYiZxrSh/8W0oP/FtKD/xbSg/8W0oP++rZjroI15Lf// + /wH///8B////Af///wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAA + AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////AQAAAAcAAAAPAAAAFQAAABcAAAAXAAAAFwAAABcAAAAXAAAAFwAAABUAAAAPAAAAB/// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////AQAAAAMAAAANAAAAHwAAADMAAAA/AAAAQwAAAEMAAABDAAAAQwAAAEMAAABDAAAAPwAA + ADMAAAAfAAAADQAAAAP///8B////Af///wH///8BAAAABQAAAA0AAAAVAAAAFwAAABcAAAAXAAAAFwAA + ABcAAAAXAAAAFwAAABcAAAAXAAAAGwAAAC1JRD1pe3FlxYt/c/mMf3L/i39x/4p+cf+KfnH/i39x/4x/ + cv+Lf3P5e3FlxUlDPWsAAAAnAAAAC////wH///8B////Af///wEAAAANAAAAKwAAAD8AAABDAAAAQwAA + AEMAAABDAAAAQwAAAEMAAABDAAAAQwAAAEMAAABFZl9Xl5eMgP+1raL/zcO6/+LZ0f/p4Nj/8OXf//Po + 4v/q4dr/5NvT/87Fu/+2rqP/mYyA/3FpX5MAAAAT////Af///wH///8B////AQAAABWJd2LFloFq/5WA + af+VgGn/lYBp/5WAaf+VgGn/lYBp/5WAaf+VgGn/lYBp/5aAaP+Rh3r/ysO5/9HJwf/WzcT/3NPK/+PZ + 0f/p3tf/7OHa/+Ta0//e1Mz/18/H/9PLw//Lxbz/k4h6/wAAABf///8B////Af///wH///8BAAAAF5aB + a//UybT/z8Ou/83BrP/Nwaz/zcGs/83BrP/Nwaz/zcGs/83BrP/Nwqz/0MSu/5CGef/Lw7v/zsa9/9TL + wv/a0cj/4dfP/+fc1f/q39j/4tjR/9zSyv/VzcT/0Mi//83GvP+Uin3/AAAAF////wH///8B////Af// + /wEAAAAXloFq/9PHtf/Kvan///7z/8a4pP///fL/xrik///98v/GuKT///3y/8e5pP////b/kIV5/8nB + uf/MxLv/0snA/9jPxf/f1c3/6d/Y/+nd1v/g1s//2tDI/9PLwv/Oxr3/y8S6/5eLf/8AAAAV////Af// + /wH///8B////AQAAABeXgmv/1Mq4/8m9p//FuaL///rv/8O2oP//+u//w7ag///67//DtqD///vw/8m8 + pf+Rh3r/ycO6/+Pe1P/17+n///v0//768//9+fL//fny//368///+/T/9vDo/+Td1v/Nx73/mY6B/wAA + ABH///8B////Af///wH///8BAAAAF5iDa//Yzr3/yr6o///98v/GuqT///vw/8a6o///+/D/x7qk///8 + 8f/Ju6X////0/6qejv/59O7/19DI/8a+tv++tav/wrmv/8e8tP/IvrX/w7mx/7+2rP/Hv7f/2NHK//v3 + 8P+KgHa1AAAAEf///wH///8B////Af///wEAAAAXmYRs/9rRwP/MwKv/y7+p/8u/qf/Lvqn/y7+p/8u/ + qf/QwKv/18Gu/9jCr//Tw67/r6OU/6OakP+2rqT/yL+2/9jPx//j2dH/6t7Y/+zh2v/k2tP/2tHJ/8rB + uP+4r6b/pp6U/4yEeLkAAAAV////Af///wH///8B////AQAAABeYg23/3dPE/87Brf/Owa3/zsGt/87B + rf/Owa3/0MGu/9fDsf8Aijr/AIs6/9vGs/+elIr/ysK6/8/Hvv/VzMP/2tHI/+HXz//o3Nb/6t/Y/+LY + 0f/c0sr/1s7F/9HJwP/Mxbz/opiM/wAAABf///8B////Af///wH///8BAAAAF5mEbf/f1sf/z8Ku/9DE + sP/QxLH/0MSx/9DEsf/RxbL/1cW0/93Ht//dyLf/2Mi1/6CZjP/IwLj/zMO6/9LIv//YzsX/39XN/+ne + 2P/p3db/4NbP/9rPx//Ty8L/zsa9/8rDuf+jm47/AAAAF////wH///8B////Af///wEAAAAXmoVu/+HZ + y//RxLH/waiI/8Kqiv/Cqor/wqqK/8Kqiv/Dqov/xKqL/8WrjP/Gq4v/oZqP/8jBuf/h29L/8+3m//35 + 8v/8+PH/+/fw//v38P/8+PH//fjy//Tu5v/i29P/y8S6/6SckP8AAAAX////Af///wH///8B////AQAA + ABebhm//49zO/9HEsP+/poX/v6eG/7+nhv+/p4b/v6eG/7+nhv+/p4b/wKeG/8Koh/+inJH/+/bw/+7n + 3v/j3NP/3dXM/93Vy//d1Mv/3dTL/93Uy//d1cv/49zT/+7n3v/79/D/pZ+S/wAAABP///8B////Af// + /wH///8BAAAAF5yHcP/n3tL/0cKv//r5+P/5+Pf/+fj3//n49//5+Pf/+fj3//n49//6+ff//fz5/6Se + k//h187/4djO/9/WzP/f1sv/39XL/9/Vy//f1cv/39XL/9/Wy//f1sz/4djO/+LYz/+qo5f/AAAAC/// + /wH///8B////Af///wEAAAAXnYhw/+jg1f/RxK//0cSw/9HEsP/RxLD/0cSw/9HEsP/RxLD/0cSw/9HF + sf/Ux7P/wrmo/7Grof/PyL7/4NnO/+/n3f/v5t3/7+bd/+7m3f/u5t3/7+fd/+Laz//Ryb7/tK2h/6Sd + knkAAAAD////Af///wH///8B////AQAAABedh3H/6uTZ/9PHs//Ap4f/waiJ/8Gpif/BqYn/wamJ/8Gp + if/BqYn/wamJ/8Kqiv/Dqor/vaqN/7qzpf+yraH/rKeb/62nm/+tp5v/rKeb/6ynm/+tp5v/rKeb96qk + ma2gmo87////Af///wH///8B////Af///wH///8BAAAAF56Icv/s5dv/1Maz/7+lhP+/pob/v6eG/7+n + hv+/p4b/v6eG/7+nhv+/p4b/v6eG/7+nhv/ApoT/1se0/+7m2/+chW3/AAAAF////wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAXn4ly/+7n3v/TxbH/+/r4//r5 + +P/6+ff/+vn3//r59//6+ff/+vn3//r59//6+ff/+vn4//v6+P/UxbH/7+fe/56Icf8AAAAX////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAAABeginP/8Ovh/9XH + s//WyLX/1si1/9bItf/WyLX/1si1/9bItf/WyLX/1si1/9bItf/WyLX/1si1/9XHs//w6+H/n4pz/wAA + ABf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAF6CL + dP/y7OT/18m2/7+nhv/BqIj/waiJ/8Goif/BqIn/waiJ/8Goif/BqIn/waiJ/8GoiP+/p4b/18m2//Ls + 5P+gi3T/AAAAF////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wEAAAAXoYx1//Tv6P/Yyrb/vqWD/7+mhf+/pob/v6aG/7+mhv+/pob/v6aG/7+mhv+/pob/v6aF/76l + g//Yyrb/9O/o/6GMdf8AAAAX////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////AQAAABehjHb/9vDq/9fItf/9+vr//Pr6//z6+v/8+vr//Pr6//z6+v/8+vr//Pr6//z6 + +v/8+vr//fr6/9fItf/28Or/oYx2/wAAABf///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8BAAAAF6KNd//39Oz/2Mm2/9nLuP/Zy7j/2cu4/9nLuP/Zy7j/2cu4/9nL + uP/Zy7j/2cu4/9nLuP/Zy7j/2Mm2//f07P+ijXf/AAAAF////wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wEAAAAXo453//n18P/azLn/v6aF/8CoiP/BqIn/waiJ/8Go + if/BqIn/waiJ/8Goif/BqIn/wKiI/7+mhf/azLn/+fXw/6OOd/8AAAAX////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////AQAAABekj3j/+/fy/9vMuf++pIP/v6aF/7+m + hv+/pob/v6aG/7+mhv+/pob/v6aG/7+mhv+/poX/vqSD/9vMuf/79/L/pI94/wAAABf///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BAAAAF6WQeP/7+PX/2sq2//v6 + +P/7+vj/+/r4//v6+P/7+vj/+/r4//v6+P/7+vj/+/r4//v6+P/7+vj/2sq2//v49f+lkHj/AAAAF/// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wEAAAAVpZB6//36 + 9//ayrb/2sm1/9rJtf/aybX/2sm1/9rJtf/aybX/2sm1/9rJtf/aybX/2sm1/9rJtf/ayrb//fr3/6WQ + ev8AAAAV////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AQAA + AA2ok3z////9//369v/7+PX/+/j0//v49P/7+PT/+/j0//v49P/7+PT/+/j0//v49P/7+PT/+/j1//36 + 9v////3/qJN8/wAAAA3///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8BAAAABaWRfbOnkXv/ybum/83Aq//Mv6n/zL+p/8y/qf/Mv6n/zL+p/8y/qf/Mv6n/zL+p/8y/ + qf/NwKv/ybum/6eRe/+lkX2zAAAABf///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8BAAAAA6aSfq+/rZj/4NPA/9/Rv//f0b7/39G+/9/Rvv/f0b7/39G+/9/R + vv/f0b7/39G//+DTwP+/rZj/ppJ+rwAAAAP///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8BAAAABamVgLGtmIP/rJeC/6yXgv+sl4L/rJeC/6yX + gv+sl4L/rJeC/6yXgv+sl4L/rZiD/6mVgLEAAAAF////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesUserControl.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesUserControl.Designer.cs new file mode 100644 index 00000000..a7031316 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesUserControl.Designer.cs @@ -0,0 +1,62 @@ +namespace HydroDesktop.Plugins.Search.Settings.UI +{ + partial class WebServicesUserControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.gridViewWebServices = new System.Windows.Forms.DataGridView(); + ((System.ComponentModel.ISupportInitialize)(this.gridViewWebServices)).BeginInit(); + this.SuspendLayout(); + // + // gridViewWebServices + // + this.gridViewWebServices.AllowUserToAddRows = false; + this.gridViewWebServices.Dock = System.Windows.Forms.DockStyle.Fill; + this.gridViewWebServices.Location = new System.Drawing.Point(0, 0); + this.gridViewWebServices.Name = "gridViewWebServices"; + this.gridViewWebServices.Size = new System.Drawing.Size(600, 436); + this.gridViewWebServices.TabIndex = 40; + this.gridViewWebServices.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridViewWebServices_CellContentClick); + this.gridViewWebServices.CellMouseMove += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.gridViewWebServices_CellMouseMove); + // + // WebServicesUserControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.gridViewWebServices); + this.Name = "WebServicesUserControl"; + this.Size = new System.Drawing.Size(600, 436); + ((System.ComponentModel.ISupportInitialize)(this.gridViewWebServices)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DataGridView gridViewWebServices; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesUserControl.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesUserControl.cs new file mode 100644 index 00000000..614f9c09 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesUserControl.cs @@ -0,0 +1,350 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Globalization; +using System.Windows.Forms; +using System.Data; +using System.Linq; +using System.Diagnostics; +using HydroDesktop.Plugins.Search.Settings; +using HydroDesktop.Plugins.Search.Area; +using DotSpatial.Projections; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Controls.Header; +using DotSpatial.Topology; +using System.ComponentModel; + +namespace HydroDesktop.Plugins.Search.Settings.UI +{ + public partial class WebServicesUserControl : UserControl + { + #region Fields + + private WebServicesSettings _webServicesSettings; + private CatalogSettings _catalogSettings; + private AppManager App; + private RectangleDrawing _rectangleDrawing; + private bool local; + + #endregion + + #region Constructors + + public WebServicesUserControl() + { + InitializeComponent(); + } + + public WebServicesUserControl(AppManager App, RectangleDrawing _rectangleDrawing) + { + this.App = App; + this._rectangleDrawing = _rectangleDrawing; + InitializeComponent(); + + gridViewWebServices.CellContentClick += gridViewWebServices_OpenUrl; + gridViewWebServices.CellValueChanged += gridViewWebServices_AfterCheck; + } + + + #endregion + + #region Private methods + + void gridViewWebServices_AfterCheck(object sender, DataGridViewCellEventArgs e) + { + if (e.RowIndex == -1) return; + + var webNode = (WebServiceNode)gridViewWebServices.Rows[e.RowIndex].Tag; + if (webNode == null) return; + + DataGridViewCheckBoxCell cell = (DataGridViewCheckBoxCell)gridViewWebServices.Rows[e.RowIndex].Cells[e.ColumnIndex]; + if((bool)cell.Value == true) + { + webNode.Checked = true; + } + else + { + webNode.Checked = false; + } + + // webNode.Checked = gridViewWebServices.Rows[e.RowIndex].Cells[e.ColumnIndex].c + + // var webNode = (WebServiceNode)e.Node.Tag; + // webNode.Checked = e.Node.Checked; + } + + private void gridViewWebServices_OpenUrl(object sender, DataGridViewCellEventArgs e) + { + gridViewWebServices.CommitEdit(DataGridViewDataErrorContexts.Commit); + + if (gridViewWebServices.Columns[e.ColumnIndex] is DataGridViewLinkColumn) + { + //do your stuff here + string link = gridViewWebServices[e.ColumnIndex, e.RowIndex].Value.ToString(); + + try + { + System.Diagnostics.Process.Start(link); + } + catch (Exception ex) + { + MessageBox.Show("Can't open url. Exception:" + ex.Message); + } + } + + // if (e.ColumnIndex != 0) return; + + + /* + var node = e.Node; + var nodeInfo = node.Tag as WebServiceNode; + if (nodeInfo == null || + nodeInfo.DescriptionUrl == null) + { + MessageBox.Show("The node [" + node.Text + "] don't have any ServiceDescriptionURL attribute."); + return; + } + */ + } + + private void RefreshWebServicesGridView(IEnumerable webServiceNodeCollection) + { + gridViewWebServices.SuspendLayout(); + try + { + gridViewWebServices.Columns.Clear(); + Graphics g = CreateGraphics(); + DataGridViewCheckBoxColumn colCB = new DataGridViewCheckBoxColumn(); + colCB.Name = "chkcol"; + colCB.HeaderText = ""; + colCB.Width = 20; + colCB.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; + colCB.ReadOnly = false; + gridViewWebServices.Columns.Add(colCB); + + DataGridViewTextBoxColumn colTB = new DataGridViewTextBoxColumn(); + colTB.Name = "ServiceNameCol"; + colTB.HeaderText = "Service Name"; + colTB.Width = (int)g.MeasureString(colTB.Name, gridViewWebServices.Font).Width; + colTB.ReadOnly = true; + gridViewWebServices.Columns.Add(colTB); + + DataGridViewTextBoxColumn colTB2 = new DataGridViewTextBoxColumn(); + colTB2.Name = "ServiceCodeCol"; + colTB2.HeaderText = "Service Code "; + colTB2.Width = (int)g.MeasureString(colTB2.Name, gridViewWebServices.Font).Width; + colTB2.ReadOnly = true; + gridViewWebServices.Columns.Add(colTB2); + + DataGridViewTextBoxColumn colTB3 = new DataGridViewTextBoxColumn(); + colTB3.Name = "OrganizationCol"; + colTB3.HeaderText = "Organization"; + colTB3.Width = (int)g.MeasureString(colTB3.Name, gridViewWebServices.Font).Width; + colTB3.ReadOnly = true; + gridViewWebServices.Columns.Add(colTB3); + + DataGridViewTextBoxColumn colTB4 = new DataGridViewTextBoxColumn(); + colTB4.Name = "#SitesCol"; + colTB4.HeaderText = "# Sites"; + colTB4.Width = (int)g.MeasureString(colTB4.Name, gridViewWebServices.Font).Width; + colTB4.ReadOnly = true; + gridViewWebServices.Columns.Add(colTB4); + + DataGridViewTextBoxColumn colTB5 = new DataGridViewTextBoxColumn(); + colTB5.Name = "#VariablesCol"; + colTB5.HeaderText = "# Variables"; + colTB5.Width = (int)g.MeasureString(colTB5.Name, gridViewWebServices.Font).Width; + colTB5.ReadOnly = true; + gridViewWebServices.Columns.Add(colTB5); + + DataGridViewTextBoxColumn colTB6 = new DataGridViewTextBoxColumn(); + colTB6.Name = "#ValuesCol"; + colTB6.HeaderText = "# Values"; + colTB6.Width = (int)g.MeasureString(colTB6.Name, gridViewWebServices.Font).Width; + colTB6.ReadOnly = true; + gridViewWebServices.Columns.Add(colTB6); + + DataGridViewImageColumn dgvic = new DataGridViewImageColumn(); + dgvic.Name = "ViewExtentsCol"; + dgvic.HeaderText = "View Extents"; + dgvic.Width = (int)g.MeasureString(dgvic.Name, gridViewWebServices.Font).Width; + dgvic.ValuesAreIcons = true; + dgvic.Icon = HydroDesktop.Plugins.Search.Properties.Resources.view_extents_16_16x16; + dgvic.ReadOnly = true; + gridViewWebServices.Columns.Add(dgvic); + + if (local == false) + { + DataGridViewImageColumn dgvic2 = new DataGridViewImageColumn(); + dgvic2.Name = "MoreInfoCol"; + dgvic2.HeaderText = "More Info"; + dgvic2.Width = (int)g.MeasureString(dgvic2.Name, gridViewWebServices.Font).Width; + dgvic2.ValuesAreIcons = true; + dgvic2.Icon = HydroDesktop.Plugins.Search.Properties.Resources.more_info; + dgvic2.ReadOnly = true; + gridViewWebServices.Columns.Add(dgvic2); + } + + gridViewWebServices.AllowUserToAddRows = true; + foreach (var webNode in webServiceNodeCollection) + { + + DataGridViewRow row = (DataGridViewRow)gridViewWebServices.Rows[0].Clone(); + row.Cells[0].Value = webNode.Checked; + row.Cells[1].Value = webNode.Title; + row.Cells[2].Value = webNode.ServiceCode; + row.Cells[3].Value = webNode.Organization; + row.Cells[4].Value = webNode.Sites; + row.Cells[5].Value = webNode.Variables; + row.Cells[6].Value = webNode.Values; + row.Tag = webNode; + gridViewWebServices.Rows.Add(row); + } + gridViewWebServices.AllowUserToAddRows = false; + + } + finally + { + gridViewWebServices.Sort(gridViewWebServices.Columns["ServiceNameCol"], ListSortDirection.Ascending); + gridViewWebServices.ResumeLayout(); + } + } + + + + #endregion + + #region Public methods + + /// + /// Refresh all web services. + /// + public void RefreshWebServices(bool local) + { + if (_webServicesSettings == null) + { + return; + } + this.local = local; + _webServicesSettings.RefreshWebServices(_catalogSettings); + RefreshWebServicesGridView(_webServicesSettings.WebServices); + } + + + /// + /// Check all web services. + /// + /// Check or uncheck all web services. + public void CheckAllWebServices(bool check) + { + if (gridViewWebServices.Rows.Count <= 0) return; + + foreach (DataGridViewRow row in gridViewWebServices.Rows) + { + DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)row.Cells[0]; + chk.Value = check; + } + + } + + private double[] LatLonReproject(double x, double y) + { + double[] xy = new double[2] { x, y }; + + //Change y coordinate to be less than 90 degrees to prevent a bug. + if (xy[1] >= 90) xy[1] = 89.9; + if (xy[1] <= -90) xy[1] = -89.9; + + //Need to convert points to proper projection. Currently describe WGS84 points which may or may not be accurate. + bool isWgs84; + + String wgs84String = "GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137,298.257223562997]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.0174532925199433]]"; + String mapProjEsriString = App.Map.Projection.ToEsriString(); + isWgs84 = (mapProjEsriString.Equals(wgs84String)); + + //If the projection is not WGS84, then convert points to properly describe desired location. + if (!isWgs84) + { + double[] z = new double[1]; + ProjectionInfo wgs84Projection = ProjectionInfo.FromEsriString(wgs84String); + ProjectionInfo currentMapProjection = ProjectionInfo.FromEsriString(mapProjEsriString); + Reproject.ReprojectPoints(xy, z, wgs84Projection, currentMapProjection, 0, 1); + } + + //Return array with 1 x and 1 y value. + return xy; + } + /// + /// Set settings into control. + /// + /// WebServices settings to set. + /// Catalog settings + /// Throws if is null. + public void SetSettings(WebServicesSettings webServicesSettings, CatalogSettings catalogSettings, bool local) + { + if (webServicesSettings == null) throw new ArgumentNullException("webServicesSettings"); + this.local = local; + _catalogSettings = catalogSettings; + _webServicesSettings = webServicesSettings; + RefreshWebServicesGridView(webServicesSettings.WebServices); + } + + #endregion + + private void gridViewWebServices_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.RowIndex == -1) + return; + + if (e.ColumnIndex == 7) + { + double[] minXY = new double[2]; + double[] maxXY = new double[2]; + + //Now convert from Lat-Long to x,y coordinates that App.Map.ViewExtents can use to pan to the correct location. + WebServiceNode node = (WebServiceNode)gridViewWebServices.Rows[e.RowIndex].Tag; + + minXY = LatLonReproject(node.ServiceBoundingBox.XMin, node.ServiceBoundingBox.YMin); + maxXY = LatLonReproject(node.ServiceBoundingBox.XMax, node.ServiceBoundingBox.YMax); + + //Get extent where center is desired X,Y coordinate. + App.Map.ViewExtents.MinX = minXY[0] - (minXY[0] / 20.0); + App.Map.ViewExtents.MinY = minXY[1] - (minXY[1] / 20.0); + App.Map.ViewExtents.MaxX = maxXY[0] + (maxXY[0] / 20.0); + App.Map.ViewExtents.MaxY = maxXY[1] + (maxXY[1] / 20.0); + + Extent ex = App.Map.ViewExtents; + + _rectangleDrawing.Color = Color.Gold; + _rectangleDrawing.RestoreSearchRectangle(node.ServiceBoundingBox.XMin, node.ServiceBoundingBox.YMin, node.ServiceBoundingBox.XMax, node.ServiceBoundingBox.YMax); + + App.Map.ViewExtents = ex; + } + else if (e.ColumnIndex == 8) + { + string url; + if ( (url = ((WebServiceNode)gridViewWebServices.Rows[e.RowIndex].Tag).DescriptionUrl) != null) + { + Process.Start(url); + } + } + } + + + + private void gridViewWebServices_CellMouseMove(object sender, DataGridViewCellMouseEventArgs e) + { + if (e.ColumnIndex == 7 || e.ColumnIndex == 8) + { + this.Cursor = Cursors.Hand; + } + else + { + this.Cursor = Cursors.Default; + } + } + + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesUserControl.resx b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesUserControl.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/UI/WebServicesUserControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/WebServiceNode.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/WebServiceNode.cs new file mode 100644 index 00000000..4a7cbf24 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/WebServiceNode.cs @@ -0,0 +1,105 @@ +using System; +using HydroDesktop.WebServices; + +namespace HydroDesktop.Plugins.Search.Settings +{ + public class WebServiceNode + { + private WebServiceNode() + { + } + + public WebServiceNode(string title, string serviceCode, int serviceID, string descriptionUrl, string serviceUrl, + Box boundingBox) + { + ServiceID = serviceID; + ServiceCode = serviceCode; + Title = title; + DescriptionUrl = descriptionUrl; + ServiceUrl = serviceUrl; + ServiceBoundingBox = boundingBox; + Checked = true; + } + + public WebServiceNode(string title, string serviceCode, int serviceID, string descriptionUrl, string serviceUrl, + Box boundingBox, int sites, int variables, int values) + { + ServiceID = serviceID; + ServiceCode = serviceCode; + Title = title; + DescriptionUrl = descriptionUrl; + ServiceUrl = serviceUrl; + ServiceBoundingBox = boundingBox; + Sites = sites; + Variables = variables; + Values = values; + Checked = true; + } + + public WebServiceNode(string title, string serviceCode, int serviceID, string descriptionUrl, string serviceUrl, + Box boundingBox, string organization, long sites, long variables, long values) + { + ServiceID = serviceID; + ServiceCode = serviceCode; + Title = title; + DescriptionUrl = descriptionUrl; + ServiceUrl = serviceUrl; + ServiceBoundingBox = boundingBox; + Checked = true; + Organization = organization; + Sites = sites; + Variables = variables; + Values = values; + } + + public Box ServiceBoundingBox { get; private set; } + public int ServiceID { get; private set; } + public string ServiceCode { get; private set; } + public string Title { get; private set; } + public string DescriptionUrl { get; private set; } + public string ServiceUrl { get; private set; } + public bool Checked { get; set; } + public string Organization { get; private set; } + public long Sites { get; private set; } + public long Variables { get; private set; } + public long Values { get; private set; } + + /// + /// Create deep copy of current instance. + /// + /// Deep copy. + public WebServiceNode Copy() + { + var result = new WebServiceNode(); + result.Copy(this); + return result; + + } + + /// + /// Create deep from source into current instance. + /// + /// Source. + /// must be not null. + public void Copy(WebServiceNode source) + { + if (source == null) throw new ArgumentNullException("source"); + + ServiceID = source.ServiceID; + ServiceCode = source.ServiceCode; + Title = source.Title; + DescriptionUrl = source.DescriptionUrl; + ServiceUrl = source.ServiceUrl; + Checked = source.Checked; + ServiceBoundingBox = source.ServiceBoundingBox == null + ? null + : new Box(source.ServiceBoundingBox.XMin, + source.ServiceBoundingBox.XMax, source.ServiceBoundingBox.YMin, + source.ServiceBoundingBox.YMax); + Organization = source.Organization; + Sites = source.Sites; + Variables = source.Variables; + Values = source.Values; + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/Settings/WebServicesSettings.cs b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/WebServicesSettings.cs new file mode 100644 index 00000000..5761e044 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/Settings/WebServicesSettings.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using HydroDesktop.Common; +using HydroDesktop.Common.UserMessage; +using HydroDesktop.Plugins.Search.WebServices; + +namespace HydroDesktop.Plugins.Search.Settings +{ + public class WebServicesSettings + { + private readonly SearchSettings _parent; + + public WebServicesSettings(SearchSettings parent) + { + if (parent == null) throw new ArgumentNullException("parent"); + _parent = parent; + } + + private IList _webServices; + public ReadOnlyCollection WebServices + { + get + { + if (_webServices == null) + { + RefreshWebServices(); + Debug.Assert(_webServices != null); + } + return new ReadOnlyCollection(_webServices); + } + private set + { + _webServices = value; + } + } + + /// + /// Refresh WebServices list. + /// + /// Catalog settings to use. If null - used current catalog settings. + public void RefreshWebServices(CatalogSettings catalogSettings = null) + { + try + { + _webServices = WebServicesReader.GetWebServices(catalogSettings ?? _parent.CatalogSettings).ToList(); + } + catch (Exception ex) + { + AppContext.Instance.Get().Error("Unable to refresh WebServices. Empty list will be used.", ex); + _webServices = new List(); + } + } + + public int CheckedCount + { + get { return WebServices.Count(w => w.Checked); } + } + + public int TotalCount + { + get { return WebServices.Count(); } + } + + /// + /// Create deep copy of current instance. + /// + /// Deep copy. + public WebServicesSettings Copy() + { + var result = new WebServicesSettings(_parent); + result.Copy(this); + return result; + } + + /// + /// Create deep copy from source into current instance. + /// + /// Source. + /// must be not null. + public void Copy(WebServicesSettings source) + { + if (source == null) throw new ArgumentNullException("source"); + + var list = new List(source.WebServices.Count()); + list.AddRange(source.WebServices.Select(webNode => webNode.Copy())); + WebServices = new ReadOnlyCollection(list); + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/WebServices/DbWebServicesList.cs b/Source/Plugins/HydroDesktop.Plugins.Search/WebServices/DbWebServicesList.cs new file mode 100644 index 00000000..e71ccca6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/WebServices/DbWebServicesList.cs @@ -0,0 +1,21 @@ +using System.Collections.Generic; +using System.Linq; +using HydroDesktop.WebServices; +using HydroDesktop.Plugins.Search.Searching; +using HydroDesktop.Plugins.Search.Settings; + +namespace HydroDesktop.Plugins.Search.WebServices +{ + class DbWebServicesList : IWebServicesList + { + public IEnumerable GetWebServices() + { + return new MetadataCacheSearcher().GetWebServices().Select( + service => + new WebServiceNode(service.ServiceTitle, + service.ServiceCode, (int) service.Id, service.DescriptionURL, service.EndpointURL, + new Box(service.WestLongitude, service.EastLongitude, + service.SouthLatitude, service.NorthLatitude), service.SiteCount, service.VariableCount, (int)service.ValueCount)).ToList(); + } + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/WebServices/HisCentralWebServicesList.cs b/Source/Plugins/HydroDesktop.Plugins.Search/WebServices/HisCentralWebServicesList.cs new file mode 100644 index 00000000..4f91f32a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/WebServices/HisCentralWebServicesList.cs @@ -0,0 +1,171 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Xml; +using HydroDesktop.WebServices; +using HydroDesktop.Plugins.Search.Searching; +using HydroDesktop.Plugins.Search.Settings; + +namespace HydroDesktop.Plugins.Search.WebServices +{ + class HisCentralWebServicesList : IWebServicesList + { + #region Fields + + private string WebServicesFilename { get; set; } + private readonly string _hisCentralUrl; + + #endregion + + #region Constructors + + public HisCentralWebServicesList(string hisCentralUrl) + { + _hisCentralUrl = hisCentralUrl; + WebServicesFilename = Path.Combine(ServicesXmlDirectoryPath, Properties.Settings.Default.WebServicesFileName); + } + + #endregion + + #region Public methods + + public IEnumerable GetWebServices() + { + var searcher = new HISCentralSearcher(_hisCentralUrl); + RefreshListFromHisCentral(searcher); + var xmlReaderSettings = new XmlReaderSettings + { + CloseInput = true, + IgnoreComments = true, + IgnoreWhitespace = true, + }; + + var result = new List(); + using (var reader = XmlReader.Create(WebServicesFilename, xmlReaderSettings)) + { + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + { + if (reader.Name == "ServiceInfo") + { + string desciptionUrl = null; + string serviceUrl = null; + string title = null; + int serviceID = -1; + string serviceCode = null; + string organization = null; + + int variables = -1, values = -1, sites = -1; + double xmin = double.NaN, xmax = double.NaN, ymin = double.NaN, ymax = double.NaN; + + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "ServiceInfo") + { + break; + } + + if (reader.NodeType == XmlNodeType.Element) + { + switch (reader.Name) + { + case "Title": + if (!reader.Read()) continue; + title = reader.Value.Trim(); + break; + case "ServiceID": + if (!reader.Read()) continue; + serviceID = Convert.ToInt32(reader.Value.Trim()); + break; + case "ServiceDescriptionURL": + if (!reader.Read()) continue; + desciptionUrl = reader.Value.Trim(); + break; + case "organization": + if (!reader.Read()) continue; + organization = reader.Value.Trim(); + break; + case "servURL": + if (!reader.Read()) continue; + serviceUrl = reader.Value.Trim(); + break; + case "valuecount": + if (!reader.Read()) continue; + values = Convert.ToInt32(reader.Value.Trim()); + break; + case "variablecount": + if (!reader.Read()) continue; + variables = Convert.ToInt32(reader.Value.Trim()); + break; + case "sitecount": + if (!reader.Read()) continue; + sites = Convert.ToInt32(reader.Value.Trim()); + break; + case "NetworkName": + if (!reader.Read()) continue; + serviceCode = reader.Value.Trim(); + break; + case "minx": + if (!reader.Read()) continue; + double.TryParse(reader.Value.Trim(), NumberStyles.Number, CultureInfo.InvariantCulture, + out xmin); + break; + case "maxx": + if (!reader.Read()) continue; + double.TryParse(reader.Value.Trim(), NumberStyles.Number, CultureInfo.InvariantCulture, + out xmax); + break; + case "miny": + if (!reader.Read()) continue; + double.TryParse(reader.Value.Trim(), NumberStyles.Number, CultureInfo.InvariantCulture, + out ymin); + break; + case "maxy": + if (!reader.Read()) continue; + double.TryParse(reader.Value.Trim(), NumberStyles.Number, CultureInfo.InvariantCulture, + out ymax); + break; + } + } + } + + var boundingBox = (Box)null; + if (!double.IsNaN(xmin) && !double.IsNaN(xmax) && !double.IsNaN(ymin) && !double.IsNaN(ymax)) + boundingBox = new Box(xmin, xmax, ymin, ymax); + + var node = new WebServiceNode(title, serviceCode, serviceID, desciptionUrl, serviceUrl, boundingBox, organization, sites, variables, values); + result.Add(node); + } + } + } + } + + return result; + } + + #endregion + + #region Private methods + + /// + /// Expect that this will be a method in the main class someday + /// + private string ServicesXmlDirectoryPath + { + get + { + var servicesXMLPath = HydroDesktop.Configuration.Settings.Instance.ApplicationDataDirectory; + return servicesXMLPath; + } + } + + private void RefreshListFromHisCentral(HISCentralSearcher searcher) + { + searcher.GetWebServicesXml(WebServicesFilename); + } + + #endregion + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/WebServices/IWebServicesList.cs b/Source/Plugins/HydroDesktop.Plugins.Search/WebServices/IWebServicesList.cs new file mode 100644 index 00000000..1fb5c2d7 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/WebServices/IWebServicesList.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; +using HydroDesktop.Plugins.Search.Settings; + +namespace HydroDesktop.Plugins.Search.WebServices +{ + interface IWebServicesList + { + IEnumerable GetWebServices(); + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/WebServices/WebServicesReader.cs b/Source/Plugins/HydroDesktop.Plugins.Search/WebServices/WebServicesReader.cs new file mode 100644 index 00000000..65049531 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/WebServices/WebServicesReader.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using HydroDesktop.Plugins.Search.Settings; + +namespace HydroDesktop.Plugins.Search.WebServices +{ + static class WebServicesReader + { + /// + /// Get collection of web services for given catalogSettings. + /// + /// Catalog settings + /// Collection of web services. + /// should be not null. + /// Any exception may raised during load process. + public static IEnumerable GetWebServices(CatalogSettings catalogSettings) + { + if (catalogSettings == null) throw new ArgumentNullException("catalogSettings"); + + IWebServicesList webServicesList; + switch (catalogSettings.TypeOfCatalog) + { + case TypeOfCatalog.HisCentral: + webServicesList = new HisCentralWebServicesList(catalogSettings.HISCentralUrl); + break; + case TypeOfCatalog.LocalMetadataCache: + webServicesList = new DbWebServicesList(); + break; + default: + throw new Exception("Unsupported TypeOfCatalog"); + } + + return webServicesList.GetWebServices(); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.Search/packages.config b/Source/Plugins/HydroDesktop.Plugins.Search/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.Search/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/CustomLegend.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/CustomLegend.cs new file mode 100644 index 00000000..31746c37 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/CustomLegend.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SeriesView +{ + public class CustomLegend : DotSpatial.Controls.Legend + { + //public override + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/DisplayOptionsForm.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/DisplayOptionsForm.Designer.cs new file mode 100644 index 00000000..d592d739 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/DisplayOptionsForm.Designer.cs @@ -0,0 +1,105 @@ +namespace HydroDesktop.Plugins.SeriesView +{ + partial class DisplayOptionsForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnOK = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.lblSiteDisplay = new System.Windows.Forms.Label(); + this.cmbSiteDisplayName = new System.Windows.Forms.ComboBox(); + this.SuspendLayout(); + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(135, 100); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 0; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(216, 100); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 1; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // lblSiteDisplay + // + this.lblSiteDisplay.AutoSize = true; + this.lblSiteDisplay.Location = new System.Drawing.Point(12, 32); + this.lblSiteDisplay.Name = "lblSiteDisplay"; + this.lblSiteDisplay.Size = new System.Drawing.Size(105, 13); + this.lblSiteDisplay.TabIndex = 2; + this.lblSiteDisplay.Text = "Use column for sites:"; + // + // cmbSiteDisplayName + // + this.cmbSiteDisplayName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.cmbSiteDisplayName.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbSiteDisplayName.FormattingEnabled = true; + this.cmbSiteDisplayName.Location = new System.Drawing.Point(122, 29); + this.cmbSiteDisplayName.Name = "cmbSiteDisplayName"; + this.cmbSiteDisplayName.Size = new System.Drawing.Size(169, 21); + this.cmbSiteDisplayName.TabIndex = 3; + // + // DisplayOptionsForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(298, 135); + this.Controls.Add(this.cmbSiteDisplayName); + this.Controls.Add(this.lblSiteDisplay); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "DisplayOptionsForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Display Options"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Label lblSiteDisplay; + private System.Windows.Forms.ComboBox cmbSiteDisplayName; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/DisplayOptionsForm.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/DisplayOptionsForm.cs new file mode 100644 index 00000000..17976f03 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/DisplayOptionsForm.cs @@ -0,0 +1,73 @@ +using System; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.SeriesView +{ + public partial class DisplayOptionsForm : Form + { + private readonly DisplaySettings _settings; + + private DisplayOptionsForm(DisplaySettings settings) + { + _settings = settings; + InitializeComponent(); + + cmbSiteDisplayName.DataSource = Enum.GetNames(typeof (SiteDisplayColumns)); + cmbSiteDisplayName.DataBindings.Clear(); + cmbSiteDisplayName.DataBindings.Add("SelectedItem", _settings, "SiteDisplayColumn"); + } + + public static DialogResult ShowDialog(DisplaySettings settings) + { + if (settings == null) throw new ArgumentNullException("settings"); + + using(var form = new DisplayOptionsForm(settings.Copy())) + { + var dialogResult = form.ShowDialog(); + if (dialogResult == DialogResult.OK) + { + settings.Copy(form._settings); + } + + return dialogResult; + } + } + } + + public enum SiteDisplayColumns + { + SiteName, + SiteCode, + } + + public class DisplaySettings + { + public string SiteDisplayColumn { get; set; } + + + /// + /// Create deep copy of current instance. + /// + /// Deep copy. + public DisplaySettings Copy() + { + var result = new DisplaySettings(); + result.Copy(this); + return result; + + } + + /// + /// Create deep from source into current instance. + /// + /// Source. + /// must be not null. + public void Copy(DisplaySettings source) + { + if (source == null) throw new ArgumentNullException("source"); + + SiteDisplayColumn = source.SiteDisplayColumn; + } + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/DisplayOptionsForm.resx b/Source/Plugins/HydroDesktop.Plugins.SeriesView/DisplayOptionsForm.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/DisplayOptionsForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/FilterDataSeries.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/FilterDataSeries.cs new file mode 100644 index 00000000..09f44589 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/FilterDataSeries.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.SeriesView +{ + public partial class FilterDataSeries : Form + { + #region Variables + //Contains selected rule + private readonly ArrayList filterOption = new ArrayList(); + //All the selected serieslist + private readonly ArrayList seriesList = new ArrayList(); + #endregion + + #region Constructor + public FilterDataSeries(ArrayList filterOption, ArrayList seriesList) + { + InitializeComponent(); + this.filterOption = filterOption; + this.seriesList = seriesList; + } + #endregion + + #region Filter SeriesList + /// + /// Fill out the checkbox and combox when loading form + /// + /// + /// + private void FilterDataSeries_Load(object sender, EventArgs e) + { + comboBox1.Items.Clear(); + comboBox2.Items.Clear(); + comboBox3.Items.Clear(); + comboBox4.Items.Clear(); + comboBox5.Items.Clear(); + comboBox6.Items.Clear(); + + string optionType = this.filterOption[0].ToString(); + + switch (optionType) + { + case "Themes": + for (int i = 1; i < this.filterOption.Count; i++) + { + comboBox1.Items.Add(this.filterOption[i].ToString()); + } + checkBox1.Checked = true; + break; + case "Site": + for (int i = 1; i < this.filterOption.Count; i++) + { + comboBox2.Items.Add(this.filterOption[i].ToString()); + } + checkBox2.Checked = true; + break; + case "Variable": + for (int i = 1; i < this.filterOption.Count; i++) + { + comboBox3.Items.Add(this.filterOption[i].ToString()); + } + checkBox3.Checked = true; + break; + case "Method": + for (int i = 1; i < filterOption.Count; i++) + { + comboBox4.Items.Add(filterOption[i].ToString()); + } + checkBox4.Checked = true; + break; + case "Source": + for (int i = 1; i < filterOption.Count; i++) + { + comboBox5.Items.Add(filterOption[i].ToString()); + } + checkBox5.Checked = true; + break; + case "QCLevel": + for (int i = 1; i < this.filterOption.Count; i++) + { + comboBox6.Items.Add(this.filterOption[i].ToString()); + } + checkBox6.Checked = true; + break; + default: + Console.WriteLine("Default case"); + break; + } + } + + #endregion + + #region Filter Options + /// + /// Create a new selected set + /// clears the selection and applies current filter + /// + /// + /// + private void bntNew_Click(object sender, EventArgs e) + { + seriesList.Clear(); + filterOption.Clear(); + DialogResult = DialogResult.OK; + Close(); + } + + /// + /// Select from set + /// Applies the current filter to what is already in the selected set + /// + /// + /// + private void bntFromSet_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.OK; + Close(); + } + + /// + /// Add to set + /// Maintains the current selected set, filters the full list + /// and adds matching series to the existing set + /// + /// + /// + private void btnAdd2Set_Click(object sender, EventArgs e) + { + Close(); + } + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/FilterDataSeries.designer.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/FilterDataSeries.designer.cs new file mode 100644 index 00000000..61a29f41 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/FilterDataSeries.designer.cs @@ -0,0 +1,318 @@ +namespace HydroDesktop.Plugins.SeriesView +{ + partial class FilterDataSeries + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.comboBox6 = new System.Windows.Forms.ComboBox(); + this.comboBox5 = new System.Windows.Forms.ComboBox(); + this.comboBox4 = new System.Windows.Forms.ComboBox(); + this.comboBox3 = new System.Windows.Forms.ComboBox(); + this.comboBox2 = new System.Windows.Forms.ComboBox(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.checkBox2 = new System.Windows.Forms.CheckBox(); + this.checkBox3 = new System.Windows.Forms.CheckBox(); + this.checkBox4 = new System.Windows.Forms.CheckBox(); + this.checkBox5 = new System.Windows.Forms.CheckBox(); + this.checkBox6 = new System.Windows.Forms.CheckBox(); + this.bntFromSet = new System.Windows.Forms.Button(); + this.bntNew = new System.Windows.Forms.Button(); + this.btnAdd2Set = new System.Windows.Forms.Button(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.comboBox6); + this.groupBox1.Controls.Add(this.comboBox5); + this.groupBox1.Controls.Add(this.comboBox4); + this.groupBox1.Controls.Add(this.comboBox3); + this.groupBox1.Controls.Add(this.comboBox2); + this.groupBox1.Controls.Add(this.comboBox1); + this.groupBox1.Controls.Add(this.label6); + this.groupBox1.Controls.Add(this.label5); + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Controls.Add(this.label3); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Controls.Add(this.checkBox1); + this.groupBox1.Controls.Add(this.checkBox2); + this.groupBox1.Controls.Add(this.checkBox3); + this.groupBox1.Controls.Add(this.checkBox4); + this.groupBox1.Controls.Add(this.checkBox5); + this.groupBox1.Controls.Add(this.checkBox6); + this.groupBox1.Location = new System.Drawing.Point(12, 12); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(329, 232); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Filter Options"; + // + // comboBox6 + // + this.comboBox6.FormattingEnabled = true; + this.comboBox6.Location = new System.Drawing.Point(216, 196); + this.comboBox6.Name = "comboBox6"; + this.comboBox6.Size = new System.Drawing.Size(89, 21); + this.comboBox6.TabIndex = 11; + // + // comboBox5 + // + this.comboBox5.FormattingEnabled = true; + this.comboBox5.Location = new System.Drawing.Point(143, 160); + this.comboBox5.Name = "comboBox5"; + this.comboBox5.Size = new System.Drawing.Size(162, 21); + this.comboBox5.TabIndex = 10; + // + // comboBox4 + // + this.comboBox4.FormattingEnabled = true; + this.comboBox4.Location = new System.Drawing.Point(143, 125); + this.comboBox4.Name = "comboBox4"; + this.comboBox4.Size = new System.Drawing.Size(162, 21); + this.comboBox4.TabIndex = 9; + // + // comboBox3 + // + this.comboBox3.FormattingEnabled = true; + this.comboBox3.Location = new System.Drawing.Point(143, 90); + this.comboBox3.Name = "comboBox3"; + this.comboBox3.Size = new System.Drawing.Size(162, 21); + this.comboBox3.TabIndex = 8; + // + // comboBox2 + // + this.comboBox2.FormattingEnabled = true; + this.comboBox2.Location = new System.Drawing.Point(143, 56); + this.comboBox2.Name = "comboBox2"; + this.comboBox2.Size = new System.Drawing.Size(162, 21); + this.comboBox2.TabIndex = 7; + // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Location = new System.Drawing.Point(143, 20); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(162, 21); + this.comboBox1.TabIndex = 1; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(47, 198); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(163, 13); + this.label6.TabIndex = 6; + this.label6.Text = "Filter by Number of Observations "; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(47, 162); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(85, 13); + this.label5.TabIndex = 5; + this.label5.Text = "Filter by Method "; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(47, 127); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(83, 13); + this.label4.TabIndex = 4; + this.label4.Text = "Filter by Source "; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(47, 91); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(87, 13); + this.label3.TabIndex = 3; + this.label3.Text = "Filter by Variable "; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(47, 58); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(64, 13); + this.label2.TabIndex = 2; + this.label2.Text = "Filter by Site"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(47, 28); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(85, 13); + this.label1.TabIndex = 1; + this.label1.Text = "Filter by Theme "; + // + // checkBox1 + // + this.checkBox1.AutoSize = true; + this.checkBox1.Location = new System.Drawing.Point(29, 28); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(80, 17); + this.checkBox1.TabIndex = 1; + this.checkBox1.Text = "checkBox1"; + this.checkBox1.UseVisualStyleBackColor = true; + // + // checkBox2 + // + this.checkBox2.AutoSize = true; + this.checkBox2.Location = new System.Drawing.Point(29, 58); + this.checkBox2.Name = "checkBox2"; + this.checkBox2.Size = new System.Drawing.Size(80, 17); + this.checkBox2.TabIndex = 12; + this.checkBox2.Text = "checkBox2"; + this.checkBox2.UseVisualStyleBackColor = true; + // + // checkBox3 + // + this.checkBox3.AutoSize = true; + this.checkBox3.Location = new System.Drawing.Point(29, 91); + this.checkBox3.Name = "checkBox3"; + this.checkBox3.Size = new System.Drawing.Size(80, 17); + this.checkBox3.TabIndex = 13; + this.checkBox3.Text = "checkBox3"; + this.checkBox3.UseVisualStyleBackColor = true; + // + // checkBox4 + // + this.checkBox4.AutoSize = true; + this.checkBox4.Location = new System.Drawing.Point(29, 127); + this.checkBox4.Name = "checkBox4"; + this.checkBox4.Size = new System.Drawing.Size(80, 17); + this.checkBox4.TabIndex = 14; + this.checkBox4.Text = "checkBox4"; + this.checkBox4.UseVisualStyleBackColor = true; + // + // checkBox5 + // + this.checkBox5.AutoSize = true; + this.checkBox5.Location = new System.Drawing.Point(29, 162); + this.checkBox5.Name = "checkBox5"; + this.checkBox5.Size = new System.Drawing.Size(80, 17); + this.checkBox5.TabIndex = 15; + this.checkBox5.Text = "checkBox5"; + this.checkBox5.UseVisualStyleBackColor = true; + // + // checkBox6 + // + this.checkBox6.AutoSize = true; + this.checkBox6.Location = new System.Drawing.Point(29, 198); + this.checkBox6.Name = "checkBox6"; + this.checkBox6.Size = new System.Drawing.Size(80, 17); + this.checkBox6.TabIndex = 16; + this.checkBox6.Text = "checkBox6"; + this.checkBox6.UseVisualStyleBackColor = true; + // + // bntFromSet + // + this.bntFromSet.Location = new System.Drawing.Point(163, 254); + this.bntFromSet.Name = "bntFromSet"; + this.bntFromSet.Size = new System.Drawing.Size(87, 23); + this.bntFromSet.TabIndex = 4; + this.bntFromSet.Text = "Select from set"; + this.bntFromSet.UseVisualStyleBackColor = true; + this.bntFromSet.Click += new System.EventHandler(this.bntFromSet_Click); + // + // bntNew + // + this.bntNew.Location = new System.Drawing.Point(12, 254); + this.bntNew.Name = "bntNew"; + this.bntNew.Size = new System.Drawing.Size(141, 23); + this.bntNew.TabIndex = 3; + this.bntNew.Text = "Create a new selected set"; + this.bntNew.UseVisualStyleBackColor = true; + this.bntNew.Click += new System.EventHandler(this.bntNew_Click); + // + // btnAdd2Set + // + this.btnAdd2Set.Location = new System.Drawing.Point(261, 254); + this.btnAdd2Set.Name = "btnAdd2Set"; + this.btnAdd2Set.Size = new System.Drawing.Size(80, 23); + this.btnAdd2Set.TabIndex = 5; + this.btnAdd2Set.Text = " Add to set "; + this.btnAdd2Set.UseVisualStyleBackColor = true; + this.btnAdd2Set.Click += new System.EventHandler(this.btnAdd2Set_Click); + // + // FilterDataSeries + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(354, 289); + this.Controls.Add(this.btnAdd2Set); + this.Controls.Add(this.bntFromSet); + this.Controls.Add(this.bntNew); + this.Controls.Add(this.groupBox1); + this.Name = "FilterDataSeries"; + this.Text = "Filter_Data_Series"; + this.Load += new System.EventHandler(this.FilterDataSeries_Load); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox comboBox6; + private System.Windows.Forms.ComboBox comboBox5; + private System.Windows.Forms.ComboBox comboBox4; + private System.Windows.Forms.ComboBox comboBox3; + private System.Windows.Forms.ComboBox comboBox2; + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.CheckBox checkBox2; + private System.Windows.Forms.CheckBox checkBox3; + private System.Windows.Forms.CheckBox checkBox4; + private System.Windows.Forms.CheckBox checkBox5; + private System.Windows.Forms.CheckBox checkBox6; + private System.Windows.Forms.Button bntFromSet; + private System.Windows.Forms.Button bntNew; + private System.Windows.Forms.Button btnAdd2Set; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/FilterDataSeries.resx b/Source/Plugins/HydroDesktop.Plugins.SeriesView/FilterDataSeries.resx new file mode 100644 index 00000000..ff31a6db --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/FilterDataSeries.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/Source/Plugins/HydroDesktop.Plugins.SeriesView/HydroDesktop.Plugins.SeriesView.csproj b/Source/Plugins/HydroDesktop.Plugins.SeriesView/HydroDesktop.Plugins.SeriesView.csproj new file mode 100644 index 00000000..ca907c07 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/HydroDesktop.Plugins.SeriesView.csproj @@ -0,0 +1,218 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C} + Library + Properties + HydroDesktop.Plugins.SeriesView + HydroDesktop.Plugins.SeriesView + v4.0 + 512 + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SeriesView\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SeriesView\ + TRACE + prompt + 4 + + + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SeriesView\ + + + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SeriesView\ + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + + + + + + + + + + Form + + + DisplayOptionsForm.cs + + + True + True + Resources.resx + + + Form + + + SeriesProperties.cs + + + SeriesSelector.cs + + + UserControl + + + SeriesShortView.cs + + + + Form + + + FilterDataSeries.cs + + + Form + + + frmComplexSelection.cs + + + + UserControl + + + + + DisplayOptionsForm.cs + + + FilterDataSeries.cs + + + frmComplexSelection.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + SeriesProperties.cs + + + SeriesSelector.cs + + + SeriesShortView.cs + + + + + + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + {0ccd3f11-0f48-427f-bc98-9dd6d875f4bb} + HydroDesktop.Configuration + False + + + {ceb869c6-ed48-4846-9040-4e82ab58b86b} + HydroDesktop.Data + False + + + {0B9BA90B-2016-4754-915A-0AD74FD0067A} + HydroDesktop.Interfaces + False + + + {58B443B0-D995-434B-B403-D5D62959D32E} + HydroDesktop.ObjectModel.Controls + False + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/HydroDesktop.Plugins.SeriesView.nuspec b/Source/Plugins/HydroDesktop.Plugins.SeriesView/HydroDesktop.Plugins.SeriesView.nuspec new file mode 100644 index 00000000..1ee6f684 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/HydroDesktop.Plugins.SeriesView.nuspec @@ -0,0 +1,19 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..50beb563 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.SeriesView")] +[assembly: AssemblyDescription("Time Series View Extension for HydroDesktop")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CUAHSI")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.SeriesView")] +[assembly: AssemblyCopyright("Copyright © CUAHSI 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("f1447cf7-e2c8-49f1-8e6e-0591b726b62c")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/Properties/Resources.Designer.cs new file mode 100644 index 00000000..0cf47313 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.SeriesView.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.SeriesView.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap timeSeries { + get { + object obj = ResourceManager.GetObject("timeSeries", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.SeriesView/Properties/Resources.resx new file mode 100644 index 00000000..e8d317a2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\timeSeries.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/Resources/timeSeries.png b/Source/Plugins/HydroDesktop.Plugins.SeriesView/Resources/timeSeries.png new file mode 100644 index 00000000..9906fb26 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.SeriesView/Resources/timeSeries.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesProperties.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesProperties.Designer.cs new file mode 100644 index 00000000..4248c048 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesProperties.Designer.cs @@ -0,0 +1,269 @@ +namespace HydroDesktop.Plugins.SeriesView +{ + partial class SeriesProperties + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnOK = new System.Windows.Forms.Button(); + this.tbProperties = new System.Windows.Forms.TabControl(); + this.tbSite = new System.Windows.Forms.TabPage(); + this.siteView1 = new HydroDesktop.ObjectModel.Controls.SiteView(); + this.tbVariable = new System.Windows.Forms.TabPage(); + this.variableView1 = new HydroDesktop.ObjectModel.Controls.VariableView(); + this.tbMethod = new System.Windows.Forms.TabPage(); + this.methodView1 = new HydroDesktop.ObjectModel.Controls.MethodView(); + this.tbSource = new System.Windows.Forms.TabPage(); + this.sourceView1 = new HydroDesktop.ObjectModel.Controls.SourceView(); + this.tbQualityControlLevel = new System.Windows.Forms.TabPage(); + this.qualityControlLevelView1 = new HydroDesktop.ObjectModel.Controls.QualityControlLevelView(); + this.tbSeries = new System.Windows.Forms.TabPage(); + this.seriesShortView1 = new HydroDesktop.Plugins.SeriesView.SeriesShortView(); + this.tpISOMetadata = new System.Windows.Forms.TabPage(); + this.isoMetadataView1 = new HydroDesktop.ObjectModel.Controls.ISOMetadataView(); + this.tbProperties.SuspendLayout(); + this.tbSite.SuspendLayout(); + this.tbVariable.SuspendLayout(); + this.tbMethod.SuspendLayout(); + this.tbSource.SuspendLayout(); + this.tbQualityControlLevel.SuspendLayout(); + this.tbSeries.SuspendLayout(); + this.tpISOMetadata.SuspendLayout(); + this.SuspendLayout(); + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; + this.btnOK.Location = new System.Drawing.Point(383, 537); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 0; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + this.btnOK.Click += new System.EventHandler(this.btnOK_Click); + // + // tbProperties + // + this.tbProperties.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbProperties.Controls.Add(this.tbSite); + this.tbProperties.Controls.Add(this.tbVariable); + this.tbProperties.Controls.Add(this.tbMethod); + this.tbProperties.Controls.Add(this.tbSource); + this.tbProperties.Controls.Add(this.tpISOMetadata); + this.tbProperties.Controls.Add(this.tbQualityControlLevel); + this.tbProperties.Controls.Add(this.tbSeries); + this.tbProperties.Location = new System.Drawing.Point(13, 13); + this.tbProperties.Name = "tbProperties"; + this.tbProperties.SelectedIndex = 0; + this.tbProperties.Size = new System.Drawing.Size(445, 514); + this.tbProperties.TabIndex = 1; + // + // tbSite + // + this.tbSite.Controls.Add(this.siteView1); + this.tbSite.Location = new System.Drawing.Point(4, 22); + this.tbSite.Name = "tbSite"; + this.tbSite.Padding = new System.Windows.Forms.Padding(3); + this.tbSite.Size = new System.Drawing.Size(437, 488); + this.tbSite.TabIndex = 0; + this.tbSite.Text = "Site"; + this.tbSite.UseVisualStyleBackColor = true; + // + // siteView1 + // + this.siteView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.siteView1.Location = new System.Drawing.Point(3, 3); + this.siteView1.Name = "siteView1"; + this.siteView1.ReadOnly = false; + this.siteView1.Size = new System.Drawing.Size(431, 482); + this.siteView1.TabIndex = 0; + // + // tbVariable + // + this.tbVariable.Controls.Add(this.variableView1); + this.tbVariable.Location = new System.Drawing.Point(4, 22); + this.tbVariable.Name = "tbVariable"; + this.tbVariable.Padding = new System.Windows.Forms.Padding(3); + this.tbVariable.Size = new System.Drawing.Size(437, 488); + this.tbVariable.TabIndex = 1; + this.tbVariable.Text = "Variable"; + this.tbVariable.UseVisualStyleBackColor = true; + // + // variableView1 + // + this.variableView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.variableView1.Location = new System.Drawing.Point(3, 3); + this.variableView1.Name = "variableView1"; + this.variableView1.ReadOnly = false; + this.variableView1.Size = new System.Drawing.Size(431, 494); + this.variableView1.TabIndex = 0; + // + // tbMethod + // + this.tbMethod.Controls.Add(this.methodView1); + this.tbMethod.Location = new System.Drawing.Point(4, 22); + this.tbMethod.Name = "tbMethod"; + this.tbMethod.Padding = new System.Windows.Forms.Padding(3); + this.tbMethod.Size = new System.Drawing.Size(437, 488); + this.tbMethod.TabIndex = 2; + this.tbMethod.Text = "Method"; + this.tbMethod.UseVisualStyleBackColor = true; + // + // methodView1 + // + this.methodView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.methodView1.Location = new System.Drawing.Point(3, 3); + this.methodView1.Name = "methodView1"; + this.methodView1.ReadOnly = false; + this.methodView1.Size = new System.Drawing.Size(431, 494); + this.methodView1.TabIndex = 0; + // + // tbSource + // + this.tbSource.Controls.Add(this.sourceView1); + this.tbSource.Location = new System.Drawing.Point(4, 22); + this.tbSource.Name = "tbSource"; + this.tbSource.Padding = new System.Windows.Forms.Padding(3); + this.tbSource.Size = new System.Drawing.Size(437, 488); + this.tbSource.TabIndex = 3; + this.tbSource.Text = "Source"; + this.tbSource.UseVisualStyleBackColor = true; + // + // sourceView1 + // + this.sourceView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.sourceView1.Location = new System.Drawing.Point(3, 3); + this.sourceView1.Name = "sourceView1"; + this.sourceView1.ReadOnly = false; + this.sourceView1.Size = new System.Drawing.Size(431, 482); + this.sourceView1.TabIndex = 0; + // + // tbQualityControlLevel + // + this.tbQualityControlLevel.Controls.Add(this.qualityControlLevelView1); + this.tbQualityControlLevel.Location = new System.Drawing.Point(4, 22); + this.tbQualityControlLevel.Name = "tbQualityControlLevel"; + this.tbQualityControlLevel.Padding = new System.Windows.Forms.Padding(3); + this.tbQualityControlLevel.Size = new System.Drawing.Size(437, 488); + this.tbQualityControlLevel.TabIndex = 4; + this.tbQualityControlLevel.Text = "QualityControlLevel"; + this.tbQualityControlLevel.UseVisualStyleBackColor = true; + // + // qualityControlLevelView1 + // + this.qualityControlLevelView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.qualityControlLevelView1.Location = new System.Drawing.Point(3, 3); + this.qualityControlLevelView1.Name = "qualityControlLevelView1"; + this.qualityControlLevelView1.ReadOnly = false; + this.qualityControlLevelView1.Size = new System.Drawing.Size(431, 482); + this.qualityControlLevelView1.TabIndex = 0; + // + // tbSeries + // + this.tbSeries.Controls.Add(this.seriesShortView1); + this.tbSeries.Location = new System.Drawing.Point(4, 22); + this.tbSeries.Name = "tbSeries"; + this.tbSeries.Padding = new System.Windows.Forms.Padding(3); + this.tbSeries.Size = new System.Drawing.Size(437, 488); + this.tbSeries.TabIndex = 5; + this.tbSeries.Text = "Series"; + this.tbSeries.UseVisualStyleBackColor = true; + // + // seriesShortView1 + // + this.seriesShortView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.seriesShortView1.Location = new System.Drawing.Point(3, 3); + this.seriesShortView1.Name = "seriesShortView1"; + this.seriesShortView1.ReadOnly = false; + this.seriesShortView1.Size = new System.Drawing.Size(431, 482); + this.seriesShortView1.TabIndex = 0; + // + // tpISOMetadata + // + this.tpISOMetadata.Controls.Add(this.isoMetadataView1); + this.tpISOMetadata.Location = new System.Drawing.Point(4, 22); + this.tpISOMetadata.Name = "tpISOMetadata"; + this.tpISOMetadata.Padding = new System.Windows.Forms.Padding(3); + this.tpISOMetadata.Size = new System.Drawing.Size(437, 488); + this.tpISOMetadata.TabIndex = 6; + this.tpISOMetadata.Text = "ISO metadata"; + this.tpISOMetadata.UseVisualStyleBackColor = true; + // + // isoMetadataView1 + // + this.isoMetadataView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.isoMetadataView1.Location = new System.Drawing.Point(3, 3); + this.isoMetadataView1.Name = "isoMetadataView1"; + this.isoMetadataView1.ReadOnly = false; + this.isoMetadataView1.Size = new System.Drawing.Size(431, 482); + this.isoMetadataView1.TabIndex = 2; + // + // SeriesProperties + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(470, 572); + this.Controls.Add(this.tbProperties); + this.Controls.Add(this.btnOK); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "SeriesProperties"; + this.Text = "Series Properties"; + this.tbProperties.ResumeLayout(false); + this.tbSite.ResumeLayout(false); + this.tbVariable.ResumeLayout(false); + this.tbMethod.ResumeLayout(false); + this.tbSource.ResumeLayout(false); + this.tbQualityControlLevel.ResumeLayout(false); + this.tbSeries.ResumeLayout(false); + this.tpISOMetadata.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.TabControl tbProperties; + private System.Windows.Forms.TabPage tbSite; + private System.Windows.Forms.TabPage tbVariable; + private HydroDesktop.ObjectModel.Controls.SiteView siteView1; + private HydroDesktop.ObjectModel.Controls.VariableView variableView1; + private System.Windows.Forms.TabPage tbMethod; + private HydroDesktop.ObjectModel.Controls.MethodView methodView1; + private System.Windows.Forms.TabPage tbSource; + private HydroDesktop.ObjectModel.Controls.SourceView sourceView1; + private System.Windows.Forms.TabPage tbQualityControlLevel; + private HydroDesktop.ObjectModel.Controls.QualityControlLevelView qualityControlLevelView1; + private System.Windows.Forms.TabPage tbSeries; + private SeriesShortView seriesShortView1; + private System.Windows.Forms.TabPage tpISOMetadata; + private HydroDesktop.ObjectModel.Controls.ISOMetadataView isoMetadataView1; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesProperties.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesProperties.cs new file mode 100644 index 00000000..652a4592 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesProperties.cs @@ -0,0 +1,41 @@ +using System; +using System.Windows.Forms; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.SeriesView +{ + public partial class SeriesProperties : Form + { + public SeriesProperties(Series series) + { + if (series == null) throw new ArgumentNullException("series"); + InitializeComponent(); + + siteView1.ReadOnly = true; + siteView1.Entity = series.Site; + + variableView1.ReadOnly = true; + variableView1.Entity = series.Variable; + + methodView1.ReadOnly = true; + methodView1.Entity = series.Method; + + sourceView1.ReadOnly = true; + sourceView1.Entity = series.Source; + + qualityControlLevelView1.ReadOnly = true; + qualityControlLevelView1.Entity = series.QualityControlLevel; + + isoMetadataView1.ReadOnly = true; + isoMetadataView1.Entity = series.Source != null? series.Source.ISOMetadata : null; + + seriesShortView1.ReadOnly = true; + seriesShortView1.Entity = series; + } + + private void btnOK_Click(object sender, EventArgs e) + { + Close(); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesProperties.resx b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesProperties.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesProperties.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesSelector.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesSelector.Designer.cs new file mode 100644 index 00000000..9a7e4485 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesSelector.Designer.cs @@ -0,0 +1,314 @@ + +namespace HydroDesktop.Plugins.SeriesView +{ + public partial class SeriesSelector + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.panel1 = new System.Windows.Forms.Panel(); + this.btnDelete = new System.Windows.Forms.Button(); + this.btnRefresh = new System.Windows.Forms.Button(); + this.btnCheckAll = new System.Windows.Forms.Button(); + this.btnUncheckAll = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.panelComplexFilter = new System.Windows.Forms.Panel(); + this.btnApplyFilter = new System.Windows.Forms.Button(); + this.btnEditFilter = new System.Windows.Forms.Button(); + this.txtFilter = new System.Windows.Forms.TextBox(); + this.dgvSeries = new System.Windows.Forms.DataGridView(); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.propertiesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.radAll = new System.Windows.Forms.RadioButton(); + this.cbBoxCriterion = new System.Windows.Forms.ComboBox(); + this.cbBoxContent = new System.Windows.Forms.ComboBox(); + this.radComplex = new System.Windows.Forms.RadioButton(); + this.radSimple = new System.Windows.Forms.RadioButton(); + this.panel1.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.panelComplexFilter.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSeries)).BeginInit(); + this.contextMenuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panel1.AutoScroll = true; + this.panel1.Controls.Add(this.btnDelete); + this.panel1.Controls.Add(this.btnRefresh); + this.panel1.Controls.Add(this.btnCheckAll); + this.panel1.Controls.Add(this.btnUncheckAll); + this.panel1.Controls.Add(this.groupBox1); + this.panel1.Location = new System.Drawing.Point(3, 2); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(565, 420); + this.panel1.TabIndex = 20; + // + // btnDelete + // + this.btnDelete.Location = new System.Drawing.Point(254, 4); + this.btnDelete.Name = "btnDelete"; + this.btnDelete.Size = new System.Drawing.Size(75, 22); + this.btnDelete.TabIndex = 21; + this.btnDelete.Text = "Remove"; + this.btnDelete.UseVisualStyleBackColor = true; + this.btnDelete.Click += new System.EventHandler(this.btnDelete_Click); + // + // btnRefresh + // + this.btnRefresh.Location = new System.Drawing.Point(11, 4); + this.btnRefresh.Name = "btnRefresh"; + this.btnRefresh.Size = new System.Drawing.Size(75, 22); + this.btnRefresh.TabIndex = 20; + this.btnRefresh.Text = "Refresh"; + this.btnRefresh.UseVisualStyleBackColor = true; + this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click); + // + // btnCheckAll + // + this.btnCheckAll.Location = new System.Drawing.Point(92, 4); + this.btnCheckAll.Name = "btnCheckAll"; + this.btnCheckAll.Size = new System.Drawing.Size(75, 22); + this.btnCheckAll.TabIndex = 19; + this.btnCheckAll.Text = "Check All"; + this.btnCheckAll.UseVisualStyleBackColor = true; + this.btnCheckAll.Click += new System.EventHandler(this.btnCheckAll_Click); + // + // btnUncheckAll + // + this.btnUncheckAll.Location = new System.Drawing.Point(173, 4); + this.btnUncheckAll.Name = "btnUncheckAll"; + this.btnUncheckAll.Size = new System.Drawing.Size(75, 22); + this.btnUncheckAll.TabIndex = 18; + this.btnUncheckAll.Text = "Uncheck All"; + this.btnUncheckAll.UseVisualStyleBackColor = true; + this.btnUncheckAll.Click += new System.EventHandler(this.btnUncheckAll_Click); + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.panelComplexFilter); + this.groupBox1.Controls.Add(this.dgvSeries); + this.groupBox1.Controls.Add(this.radAll); + this.groupBox1.Controls.Add(this.cbBoxCriterion); + this.groupBox1.Controls.Add(this.cbBoxContent); + this.groupBox1.Controls.Add(this.radComplex); + this.groupBox1.Controls.Add(this.radSimple); + this.groupBox1.Location = new System.Drawing.Point(5, 30); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(332, 387); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Selection Tool"; + // + // panelComplexFilter + // + this.panelComplexFilter.Controls.Add(this.btnApplyFilter); + this.panelComplexFilter.Controls.Add(this.btnEditFilter); + this.panelComplexFilter.Controls.Add(this.txtFilter); + this.panelComplexFilter.Location = new System.Drawing.Point(6, 34); + this.panelComplexFilter.Name = "panelComplexFilter"; + this.panelComplexFilter.Size = new System.Drawing.Size(317, 49); + this.panelComplexFilter.TabIndex = 19; + this.panelComplexFilter.Visible = false; + // + // btnApplyFilter + // + this.btnApplyFilter.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.btnApplyFilter.Location = new System.Drawing.Point(257, 26); + this.btnApplyFilter.Name = "btnApplyFilter"; + this.btnApplyFilter.Size = new System.Drawing.Size(60, 20); + this.btnApplyFilter.TabIndex = 2; + this.btnApplyFilter.Text = "Apply"; + this.btnApplyFilter.UseVisualStyleBackColor = true; + this.btnApplyFilter.Click += new System.EventHandler(this.btnApplyFilter_Click); + // + // btnEditFilter + // + this.btnEditFilter.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.btnEditFilter.Location = new System.Drawing.Point(257, 2); + this.btnEditFilter.Name = "btnEditFilter"; + this.btnEditFilter.Size = new System.Drawing.Size(60, 20); + this.btnEditFilter.TabIndex = 1; + this.btnEditFilter.Text = "Edit.."; + this.btnEditFilter.UseVisualStyleBackColor = true; + this.btnEditFilter.Click += new System.EventHandler(this.btnEditFilter_Click); + // + // txtFilter + // + this.txtFilter.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtFilter.Location = new System.Drawing.Point(3, 3); + this.txtFilter.Multiline = true; + this.txtFilter.Name = "txtFilter"; + this.txtFilter.Size = new System.Drawing.Size(251, 43); + this.txtFilter.TabIndex = 0; + // + // dgvSeries + // + this.dgvSeries.AllowUserToAddRows = false; + this.dgvSeries.AllowUserToDeleteRows = false; + this.dgvSeries.AllowUserToOrderColumns = true; + this.dgvSeries.AllowUserToResizeRows = false; + this.dgvSeries.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvSeries.BackgroundColor = System.Drawing.Color.White; + this.dgvSeries.ContextMenuStrip = this.contextMenuStrip1; + this.dgvSeries.Location = new System.Drawing.Point(3, 92); + this.dgvSeries.MultiSelect = false; + this.dgvSeries.Name = "dgvSeries"; + this.dgvSeries.RowHeadersVisible = false; + this.dgvSeries.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvSeries.Size = new System.Drawing.Size(326, 292); + this.dgvSeries.TabIndex = 18; + // + // contextMenuStrip1 + // + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.propertiesToolStripMenuItem, + this.deleteToolStripMenuItem, + this.exportToolStripMenuItem}); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(151, 70); + // + // propertiesToolStripMenuItem + // + this.propertiesToolStripMenuItem.Name = "propertiesToolStripMenuItem"; + this.propertiesToolStripMenuItem.Size = new System.Drawing.Size(150, 22); + this.propertiesToolStripMenuItem.Text = "Properties"; + this.propertiesToolStripMenuItem.Click += new System.EventHandler(this.propertiesToolStripMenuItem_Click); + // + // deleteToolStripMenuItem + // + this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem"; + this.deleteToolStripMenuItem.Size = new System.Drawing.Size(150, 22); + this.deleteToolStripMenuItem.Text = "Remove Series"; + this.deleteToolStripMenuItem.Click += new System.EventHandler(this.deleteToolStripMenuItem_Click); + // + // exportToolStripMenuItem + // + this.exportToolStripMenuItem.Name = "exportToolStripMenuItem"; + this.exportToolStripMenuItem.Size = new System.Drawing.Size(150, 22); + this.exportToolStripMenuItem.Text = "Export Series"; + this.exportToolStripMenuItem.Click += new System.EventHandler(this.exportToolStripMenuItem_Click); + // + // radAll + // + this.radAll.AutoSize = true; + this.radAll.Checked = true; + this.radAll.Location = new System.Drawing.Point(15, 13); + this.radAll.Name = "radAll"; + this.radAll.Size = new System.Drawing.Size(44, 17); + this.radAll.TabIndex = 17; + this.radAll.TabStop = true; + this.radAll.Text = "ALL"; + this.radAll.UseVisualStyleBackColor = true; + // + // cbBoxCriterion + // + this.cbBoxCriterion.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbBoxCriterion.FormattingEnabled = true; + this.cbBoxCriterion.Location = new System.Drawing.Point(6, 34); + this.cbBoxCriterion.Name = "cbBoxCriterion"; + this.cbBoxCriterion.Size = new System.Drawing.Size(317, 21); + this.cbBoxCriterion.TabIndex = 13; + // + // cbBoxContent + // + this.cbBoxContent.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbBoxContent.FormattingEnabled = true; + this.cbBoxContent.Location = new System.Drawing.Point(6, 61); + this.cbBoxContent.Name = "cbBoxContent"; + this.cbBoxContent.Size = new System.Drawing.Size(317, 21); + this.cbBoxContent.TabIndex = 14; + // + // radComplex + // + this.radComplex.AutoSize = true; + this.radComplex.Location = new System.Drawing.Point(142, 13); + this.radComplex.Name = "radComplex"; + this.radComplex.Size = new System.Drawing.Size(90, 17); + this.radComplex.TabIndex = 12; + this.radComplex.Text = "Complex Filter"; + this.radComplex.UseVisualStyleBackColor = true; + // + // radSimple + // + this.radSimple.AutoSize = true; + this.radSimple.Location = new System.Drawing.Point(61, 13); + this.radSimple.Name = "radSimple"; + this.radSimple.Size = new System.Drawing.Size(81, 17); + this.radSimple.TabIndex = 11; + this.radSimple.Text = "Simple Filter"; + this.radSimple.UseVisualStyleBackColor = true; + // + // SeriesSelector + // + this.Controls.Add(this.panel1); + this.MinimumSize = new System.Drawing.Size(280, 0); + this.Name = "SeriesSelector"; + this.Size = new System.Drawing.Size(341, 425); + this.panel1.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.panelComplexFilter.ResumeLayout(false); + this.panelComplexFilter.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSeries)).EndInit(); + this.contextMenuStrip1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Button btnCheckAll; + private System.Windows.Forms.Button btnUncheckAll; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.RadioButton radAll; + private System.Windows.Forms.ComboBox cbBoxCriterion; + private System.Windows.Forms.ComboBox cbBoxContent; + private System.Windows.Forms.RadioButton radComplex; + private System.Windows.Forms.DataGridView dgvSeries; + private System.Windows.Forms.RadioButton radSimple; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private System.Windows.Forms.Panel panelComplexFilter; + private System.Windows.Forms.TextBox txtFilter; + private System.Windows.Forms.Button btnApplyFilter; + private System.Windows.Forms.ToolStripMenuItem propertiesToolStripMenuItem; + private System.Windows.Forms.Button btnEditFilter; + private System.Windows.Forms.ToolStripMenuItem deleteToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem exportToolStripMenuItem; + private System.Windows.Forms.Button btnRefresh; + private System.Windows.Forms.Button btnDelete; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesSelector.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesSelector.cs new file mode 100644 index 00000000..e5c88ea2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesSelector.cs @@ -0,0 +1,869 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; +using HydroDesktop.Configuration; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.PluginContracts; + +namespace HydroDesktop.Plugins.SeriesView +{ + public partial class SeriesSelector : UserControl, ISeriesSelector + { + #region Fields + + //Private Six Criterion Tables + private DataTable _themeTable; + private DataTable _siteTable; + private DataTable _variableTable; + private DataTable _methodTable; + private DataTable _sourceTable; + private DataTable _qcLevelTable; + private bool _checkedAllChanging; //checked all indicator + private bool _checkBoxesVisible = true; + private bool _needShowVariableNameWithDataType; + private string _siteDisplayColumn = "SiteName"; + private const string _siteCodeColumn = "SiteCode"; + + private const string Column_Checked = "Checked"; + private const string Column_ThemeId = "ThemeID"; + private const string Column_VariableName = "VariableName"; + private const string Column_SeriesID = "SeriesID"; + private const string Column_ThemeName = "ThemeName"; + private const string Column_SampleMedium = "SampleMedium"; + private const string Column_QualityControl = "QualityControlLevelDefinition"; + + #endregion + + internal SeriesViewPlugin ParentPlugin { get; set; } + + public SeriesSelector() + { + InitializeComponent(); + + //to assign the events + dgvSeries.CellMouseDown += dgvSeries_CellMouseDown; + dgvSeries.CurrentCellDirtyStateChanged += dgvSeries_CurrentCellDirtyStateChanged; + dgvSeries.CellValueChanged += dgvSeries_CellValueChanged; + dgvSeries.CellFormatting += dgvSeries_CellFormatting; + + //filter option events + radAll.Click += radAll_Click; + radSimple.Click += radSimple_Click; + radComplex.Click += radComplex_Click; + cbBoxCriterion.SelectedIndexChanged += cbBoxCriterion_SelectedIndexChanged; + cbBoxContent.SelectedIndexChanged += cbBoxContent_SelectedIndexChanged; + + contextMenuStrip1.Opening += contextMenuStrip1_Opening; + + Settings.Instance.DatabaseChanged += Instance_DatabaseChanged; + Disposed += SeriesSelector_Disposed; + } + + private SeriesItem SelectedSeriesItem + { + get + { + if (dgvSeries.SelectedRows.Count == 0) return null; + return new SeriesItem(dgvSeries.SelectedRows[0]); + } + } + + private IEnumerable GetCheckedSeriesItems() + { + foreach (DataGridViewRow dr in dgvSeries.Rows) + { + var isChecked = Convert.ToBoolean(dr.Cells[Column_Checked].Value); + if (isChecked) + { + yield return new SeriesItem(dr); + } + } + } + + #region Event Handlers + + void contextMenuStrip1_Opening(object sender, CancelEventArgs e) + { + // We shouldn't show the context menu when a series has not been loaded. + e.Cancel = SelectedSeriesID == 0; + } + + private void dgvSeries_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) + { + if (_needShowVariableNameWithDataType && + dgvSeries.Columns[e.ColumnIndex].Name == Column_VariableName) + { + e.Value = string.Format("{0}, {1}", + dgvSeries.Rows[e.RowIndex].Cells[Column_VariableName].Value, + dgvSeries.Rows[e.RowIndex].Cells["DataType"].Value); + e.FormattingApplied = true; + } + } + + private void SeriesSelector_Disposed(object sender, EventArgs e) + { + Settings.Instance.DatabaseChanged -= Instance_DatabaseChanged; + } + + private void Instance_DatabaseChanged(object sender, EventArgs e) + { + RefreshSelection(); + } + + private void dgvSeries_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) + { + if (e.RowIndex < 0) return; + if (e.Button == MouseButtons.Right) + { + dgvSeries.Rows[e.RowIndex].Selected = true; + } + } + + private void btnUncheckAll_Click(object sender, EventArgs e) + { + SetEnableToButtons(false); + SetChecked(false); + SetEnableToButtons(true); + } + + private void SetEnableToButtons(bool enable) + { + btnCheckAll.Enabled = enable; + btnUncheckAll.Enabled = enable; + btnRefresh.Enabled = enable; + // btnOptions.Enabled = enable; + btnDelete.Enabled = enable; + radAll.Enabled = enable; + radSimple.Enabled = enable; + radComplex.Enabled = enable; + panelComplexFilter.Enabled = enable; + } + + private void btnCheckAll_Click(object sender, EventArgs e) + { + SetEnableToButtons(false); + SetChecked(true); + SetEnableToButtons(true); + } + + private void radAll_Click(object sender, EventArgs e) + { + SetFilterOption(FilterTypes.All); + MainView.RowFilter = ""; + } + + private void radComplex_Click(object sender, EventArgs e) + { + SetFilterOption(FilterTypes.Complex); + } + + private void radSimple_Click(object sender, EventArgs e) + { + SetFilterOption(FilterTypes.Simple); + } + + private void dgvSeries_CellValueChanged(object sender, DataGridViewCellEventArgs e) + { + if (e.RowIndex == -1) return; // -1 - when column changed + if (_checkedAllChanging) return; + + DataGridViewRow row = dgvSeries.Rows[e.RowIndex]; + var seriesID = Convert.ToInt32(row.Cells[Column_SeriesID].Value); + var isChecked = Convert.ToBoolean(row.Cells[Column_Checked].Value); + dgvSeries.Refresh(); + + OnSeriesCheck(seriesID, isChecked); + } + + private void dgvSeries_CurrentCellDirtyStateChanged(object sender, EventArgs e) + { + if (dgvSeries.IsCurrentCellDirty) + { + dgvSeries.CommitEdit(DataGridViewDataErrorContexts.Commit); + } + } + + private void cbBoxCriterion_SelectedIndexChanged(object sender, EventArgs e) + { + string criterionType = cbBoxCriterion.Text; + switch (criterionType) + { + case "Data Network": + cbBoxContent.DataSource = _themeTable; + cbBoxContent.DisplayMember = "ThemeName"; + cbBoxContent.ValueMember = "ThemeID"; + break; + + case "Site": + cbBoxContent.DataSource = null; + cbBoxContent.DisplayMember = SiteDisplayColumn; + cbBoxContent.ValueMember = "SiteID"; + cbBoxContent.DataSource = _siteTable; + break; + + case "Variable": + cbBoxContent.DataSource = _variableTable; + cbBoxContent.DisplayMember = "VariableName"; + cbBoxContent.ValueMember = "VariableID"; + break; + + case "Method": + cbBoxContent.DataSource = _methodTable; + cbBoxContent.DisplayMember = "MethodDescription"; + cbBoxContent.ValueMember = "MethodID"; + break; + + case "Source": + cbBoxContent.DataSource = _sourceTable; + cbBoxContent.DisplayMember = "Organization"; + cbBoxContent.ValueMember = "SourceID"; + break; + + case "QCLevel": + cbBoxContent.DataSource = _qcLevelTable; + cbBoxContent.DisplayMember = "Definition"; + cbBoxContent.ValueMember = "QualityControlLevelID"; + break; + + default: + Console.WriteLine("Default case"); + break; + } + dgvSeries.ClearSelection(); + } + + private void cbBoxContent_SelectedIndexChanged(object sender, EventArgs e) + { + //when the user didn't select the criterion + if (cbBoxContent.SelectedIndex <= 0) return; + + if (radSimple.Checked) + { + //simple filter + var selectedRow = (DataRowView)cbBoxContent.SelectedItem; + string selectedID = selectedRow[0].ToString(); + string criterionType = cbBoxCriterion.Text; + string filter = ""; + + switch (criterionType) + { + case "Data Network": + filter = "ThemeID=" + selectedID; + break; + case "Site": + filter = "SiteID=" + selectedID; + break; + case "Variable": + filter = "VariableID=" + selectedID; + break; + case "Method": + filter = "MethodID=" + selectedID; + break; + case "Source": + filter = "SourceID=" + selectedID; + break; + case "QCLevel": + filter = "QualityControlLevelID=" + selectedID; + break; + } + + MainView.RowFilter = filter; + } + } + + private void propertiesToolStripMenuItem_Click(object sender, EventArgs e) + { + var series = RepositoryFactory.Instance.Get().GetByKey(SelectedSeriesID); + if (series != null) + { + new SeriesProperties(series).Show(this); + } + } + + private void deleteToolStripMenuItem_Click(object sender, EventArgs e) + { + if (!MessageBox.Show("Are you sure you want to remove selected dataset?", + "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question).Equals(DialogResult.Yes)) return; + + var manager = RepositoryFactory.Instance.Get(); + var s = SelectedSeriesItem; + manager.DeleteSeries(s.SeriesId, s.ThemeId); + RefreshSelection(); + } + + private void btnApplyFilter_Click(object sender, EventArgs e) + { + string currentFilter = FilterExpression; + + if (String.IsNullOrEmpty(txtFilter.Text.Trim())) + { + MessageBox.Show("Please enter a valid filter expression."); + return; + } + + try + { + FilterExpression = txtFilter.Text; + } + catch + { + FilterExpression = currentFilter; + MessageBox.Show("Unable to apply filter. Please change the filter expression."); + } + } + + #endregion + + #region ISeriesSelector Members + + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public string SiteDisplayColumn + { + get { return _siteDisplayColumn; } + private set + { + _siteDisplayColumn = value; + SetupDatabase(); + } + } + + /// + /// Get the array of all checked series IDs + /// + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public int[] CheckedIDList + { + get + { + return GetCheckedSeriesItems().Select(d => d.SeriesId).ToArray(); + } + } + + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public int[] VisibleIDList + { + get { return GetVisibleIDs(); } + } + + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public bool CheckBoxesVisible + { + get { return _checkBoxesVisible; } + set + { + _checkBoxesVisible = value; + dgvSeries.Columns[Column_Checked].Visible = _checkBoxesVisible; + } + } + + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public int SelectedSeriesID + { + get + { + if (dgvSeries.SelectedRows.Count == 0) return 0; + return Convert.ToInt32(dgvSeries.SelectedRows[0].Cells[Column_SeriesID].Value); + } + set + { + dgvSeries.ClearSelection(); + foreach (DataGridViewRow dr in dgvSeries.Rows) + { + var rowSeriesID = Convert.ToInt32(dr.Cells[Column_SeriesID].Value); + if (rowSeriesID == value) + { + dr.Selected = true; + break; + } + } + } + } + + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public string FilterExpression + { + get + { + var view = MainView; + return view != null ? view.RowFilter : String.Empty; + } + set + { + var view = MainView; + if (view != null) + { + view.RowFilter = value; + } + } + } + + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public FilterTypes FilterType + { + get { return GetFilterType(FilterExpression); } + } + + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public override ContextMenuStrip ContextMenuStrip + { + get { return contextMenuStrip1; } + } + + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public void RefreshSelection() + { + //refresh all the series, according to the new database. + //before refreshing, any check boxes are unchecked. + SetChecked(false); + SetupDatabase(); + } + + public event SeriesEventHandler SeriesCheck; + public event EventHandler Refreshed; + + #endregion + + #region Methods + + private void SetChecked(bool isCheckedValue) + { + if (_checkedAllChanging) return; // to avoid multiple checking/un-checking + + _checkedAllChanging = true; + try + { + // Get all rows to process + var rowsToProcess = dgvSeries.Rows + .Cast() + .Where(row => Convert.ToBoolean(row.Cells[Column_Checked].Value) != isCheckedValue) + .ToList(); + + // If rows to process is to many, ask user for confirmation + if (isCheckedValue && rowsToProcess.Count > 20) + { + var dialogResult = MessageBox.Show( + string.Format("Do you really want to check {0} series?", rowsToProcess.Count) + + Environment.NewLine + + "It may take a long time.", "Series View", MessageBoxButtons.YesNo, MessageBoxIcon.Question, + MessageBoxDefaultButton.Button2 + ); + if (dialogResult != DialogResult.Yes) return; + } + + // Process series... + foreach (var row in rowsToProcess) + { + row.Cells[Column_Checked].Value = isCheckedValue; + var seriesID = Convert.ToInt32(row.Cells[Column_SeriesID].Value); + dgvSeries.Refresh(); + OnSeriesCheck(seriesID, isCheckedValue); + Application.DoEvents(); + } + } + finally + { + _checkedAllChanging = false; + } + } + + private DataView MainView + { + get { return dgvSeries.DataSource as DataView; } + } + + public void SetupDatabase() + { + var conString = Settings.Instance.DataRepositoryConnectionString; + + //if the connection string is not set, exit + if (String.IsNullOrEmpty(conString)) return; + + var manager = RepositoryFactory.Instance.Get(); + var tbl = manager.GetDetailedSeriesTable(); + + // Add Checked column + var columnChecked = new DataColumn(Column_Checked, typeof(bool)) { DefaultValue = false, }; + tbl.Columns.Add(columnChecked); + + dgvSeries.DataSource = new DataView(tbl); + //datagridview representation + foreach (DataGridViewColumn col in dgvSeries.Columns) + { + if (col.Name != Column_Checked && + col.Name != SiteDisplayColumn && + col.Name != Column_VariableName && + col.Name != _siteCodeColumn && + col.Name != Column_ThemeName && + col.Name != Column_SampleMedium && + col.Name != Column_QualityControl) + { + col.Visible = false; + } + else + col.Visible = true; + } + + // Determine necessity to show VariableName with DataType in UI + _needShowVariableNameWithDataType = false; + foreach (DataRow row in tbl.Rows) + { + var variable = row[Column_VariableName]; + var site = row["SiteID"]; + // As variable may contain some special characters like ',],etc so + // we will use direct loop instead tbl.Select(...) to avoid query format errors + var cnt = 0; + foreach (DataRow row1 in tbl.Rows) + { + if (Equals(row1[Column_VariableName], variable) && + Equals(row1["SiteID"], site)) cnt++; + if (cnt >= 2) + { + _needShowVariableNameWithDataType = true; + break; + } + } + if (_needShowVariableNameWithDataType) break; + } + + var column = dgvSeries.Columns[Column_Checked]; + Debug.Assert(column != null, "column != null"); + column.HeaderText = "Check"; + column.DisplayIndex = 0; + column.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader; + column.ReadOnly = false; + + column = dgvSeries.Columns[Column_VariableName]; + Debug.Assert(column != null, "column != null"); + column.DisplayIndex = 2; + column.ReadOnly = true; + column.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader; + var size = column.Width; + column.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + column.Width = size; + + column = dgvSeries.Columns[SiteDisplayColumn]; + Debug.Assert(column != null, "column != null"); + column.DisplayIndex = 3; + column.ReadOnly = true; + column.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader; + size = column.Width; + column.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + column.Width = size; + + column = dgvSeries.Columns[Column_ThemeName]; + Debug.Assert(column != null, "column != null"); + column.HeaderText = "Data Network"; + column.DisplayIndex = 4; + column.ReadOnly = true; + column.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader; + size = column.Width; + column.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + column.Width = size; + + column = dgvSeries.Columns[Column_SampleMedium]; + Debug.Assert(column != null, "column != null"); + column.DisplayIndex = 5; + column.ReadOnly = true; + column.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader; + size = column.Width; + column.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + column.Width = size; + + column = dgvSeries.Columns[Column_QualityControl]; + Debug.Assert(column != null, "column != null"); + column.DisplayIndex = 6; + column.ReadOnly = true; + column.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader; + size = column.Width; + column.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + column.Width = size; + + //setup the filter option to "default all" + SetFilterOption(FilterType); + + //to populate the 'Simple filter' criteria combo boxes + AddSimpleFilterOptions(); + + MainView.RowFilter = ""; + + OnSelectionRefreshed(); + } + + /// + /// Resets the filter options + /// + private void SetFilterOption(FilterTypes newFilterType) + { + if (newFilterType == FilterTypes.All) + { + //show all + var listLocation = new Point(); + listLocation.X = 6; + listLocation.Y = cbBoxCriterion.Top; + dgvSeries.Location = listLocation; //new Point(6, 34); + dgvSeries.Height = groupBox1.Height - 35; + //dgvSeries.HorizontalScrollbar = true; + radSimple.Checked = false; + radComplex.Checked = false; + radAll.Checked = true; + panelComplexFilter.Visible = false; + } + else if (newFilterType == FilterTypes.Simple) + { + dgvSeries.Location = new Point(6, 90); + dgvSeries.Height = groupBox1.Bottom - cbBoxContent.Bottom - 40; + radSimple.Checked = true; + radComplex.Checked = false; + radAll.Checked = false; + panelComplexFilter.Visible = false; + + //re-set the filter options + if (newFilterType != FilterType) + { + cbBoxCriterion.SelectedIndex = 0; + cbBoxContent.SelectedIndex = -1; + } + } + else if (newFilterType == FilterTypes.Complex) + { + dgvSeries.Location = new Point(6, 90); + dgvSeries.Height = groupBox1.Bottom - cbBoxContent.Bottom - 40; + radSimple.Checked = false; + radComplex.Checked = true; + radAll.Checked = false; + panelComplexFilter.Visible = true; + txtFilter.Text = FilterExpression; + } + } + + private void AddSimpleFilterOptions() + { + //Fill the cbBoxCriterion with 6 items + cbBoxCriterion.Items.Clear(); + cbBoxCriterion.Items.Add("Please select a filter criterion"); + cbBoxCriterion.Items.Add("Data Network"); + cbBoxCriterion.Items.Add("Site"); + cbBoxCriterion.Items.Add("Variable"); + cbBoxCriterion.Items.Add("Method"); + cbBoxCriterion.Items.Add("Source"); + cbBoxCriterion.Items.Add("QCLevel"); + cbBoxCriterion.SelectedIndex = 0; + + _themeTable = RepositoryFactory.Instance.Get().AsDataTable(); + _siteTable = RepositoryFactory.Instance.Get().AsDataTable(); + var variables = RepositoryFactory.Instance.Get().GetAll(); + _variableTable = new DataTable(); + _variableTable.Columns.Add("VariableID", typeof(long)); + _variableTable.Columns.Add("VariableName", typeof(string)); + foreach (var variable in variables) + { + var row = _variableTable.NewRow(); + row["VariableID"] = variable.Id; + row["VariableName"] = variable.Name + " (" + variable.VariableUnit.Abbreviation + ")"; + _variableTable.Rows.Add(row); + } + _sourceTable = RepositoryFactory.Instance.Get().AsDataTable(); + _methodTable = RepositoryFactory.Instance.Get().AsDataTable(); + _qcLevelTable = RepositoryFactory.Instance.Get().AsDataTable(); + + AddFilterOptionRow(_themeTable); + AddFilterOptionRow(_siteTable); + AddFilterOptionRow(_variableTable); + AddFilterOptionRow(_sourceTable); + AddFilterOptionRow(_methodTable); + AddFilterOptionRow(_qcLevelTable); + } + + //adds the 'please select filter option' item to the ComboBox + private static void AddFilterOptionRow(DataTable table) + { + const string filterText = "Please select filter option"; + + var row = table.NewRow(); + row[0] = 0; + row[1] = filterText; + table.Rows.InsertAt(row, 0); + } + + //gets the filter type (all, simple, complex) based on the filter + //expression + private FilterTypes GetFilterType(string filterExpression) + { + //empty filter expression means 'filter all'. + if (String.IsNullOrEmpty(filterExpression)) return FilterTypes.All; + + //other filter types --> simple uses the ID and has only one '='. + string[] parts = filterExpression.Split(new[] { '=' }); + int numParts = parts.Length; + if (numParts == 2) + { + string firstPart = parts[0].Trim(); + if (firstPart == "ThemeID" || firstPart == "SiteID" || firstPart == "VariableID" || + firstPart == "SourceID" || firstPart == "MethodID" || firstPart == "QualityControlLevelID") + { + return FilterTypes.Simple; + } + } + + //otherwise: the filter is 'Complex Filter' + return FilterTypes.Complex; + } + + private void OnSeriesCheck(int seriesID, bool checkState) + { + var handler = SeriesCheck; + if (handler != null) + { + handler(this, new SeriesEventArgs(seriesID, checkState)); + } + } + + private void OnSelectionRefreshed() + { + if (Refreshed != null) + { + Refreshed(this, null); + } + } + + private int[] GetVisibleIDs() + { + var list = new List(); + foreach (DataGridViewRow dr in dgvSeries.Rows) + { + if (dr.Visible) + { + list.Add(Convert.ToInt32(dr.Cells[Column_SeriesID].Value)); + } + } + return list.ToArray(); + } + + #endregion + + /// + /// Export the Selected Series to *.txt File + /// + private void exportToolStripMenuItem_Click(object sender, EventArgs e) + { + //Get the checked IDs + var checkedIDs = CheckedIDList; + if (checkedIDs.Length == 0) + { + //If no series are checked, export the clicked series only. + var selectedId = Convert.ToInt32(dgvSeries.SelectedRows[0].Cells[Column_SeriesID].Value); + if (selectedId > 0) + { + checkedIDs = new[] { selectedId }; + } + else + { + MessageBox.Show("Please select at least one series.", "Export", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + } + + var repo = RepositoryFactory.Instance.Get(); + DataTable table = null; + foreach (var t in checkedIDs) + { + var exportTable = repo.GetTableForExport(t); + if (table == null) + { + table = exportTable; + } + else + { + foreach (DataRow row in exportTable.Rows) + { + table.ImportRow(row); + } + } + } + + var exportPlugin = ParentPlugin == null? null : ParentPlugin.App.Extensions.OfType().FirstOrDefault(); + if (exportPlugin != null) + { + exportPlugin.Export(table); + } + } + + private void btnEditFilter_Click(object sender, EventArgs e) + { + var frm = new frmComplexSelection(MainView.Table); + frm.FilterExpression = txtFilter.Text; + + if (frm.ShowDialog() == DialogResult.OK) + { + txtFilter.Text = frm.FilterExpression; + } + } + + private void btnRefresh_Click(object sender, EventArgs e) + { + SetEnableToButtons(false); + RefreshSelection(); + SetEnableToButtons(true); + } + + private void btnOptions_Click(object sender, EventArgs e) + { + SetEnableToButtons(false); + var ds = new DisplaySettings + { + SiteDisplayColumn = SiteDisplayColumn, + }; + + if (DisplayOptionsForm.ShowDialog(ds) == DialogResult.OK) + { + SiteDisplayColumn = ds.SiteDisplayColumn; + } + SetEnableToButtons(true); + } + + private void btnDelete_Click(object sender, EventArgs e) + { + if (MessageBox.Show("Remove all of the checked data sets?", + "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question).Equals(DialogResult.Yes)) + { + SetEnableToButtons(false); + + foreach (var seriesItem in GetCheckedSeriesItems()) + { + var manager = RepositoryFactory.Instance.Get(); + manager.DeleteSeries(seriesItem.SeriesId, seriesItem.ThemeId); + } + RefreshSelection(); + SetEnableToButtons(true); + } + } + + private class SeriesItem + { + private readonly DataGridViewRow _row; + + public SeriesItem(DataGridViewRow row) + { + _row = row; + } + + public int SeriesId + { + get { return Convert.ToInt32(_row.Cells[Column_SeriesID].Value); } + } + + public int ThemeId + { + get { return Convert.ToInt32(_row.Cells[Column_ThemeId].Value); } + } + } + + } +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesSelector.resx b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesSelector.resx new file mode 100644 index 00000000..8576417c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesSelector.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 25 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesShortView.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesShortView.Designer.cs new file mode 100644 index 00000000..0b5ab789 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesShortView.Designer.cs @@ -0,0 +1,172 @@ +namespace HydroDesktop.Plugins.SeriesView +{ + partial class SeriesShortView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lblBeginDateTime = new System.Windows.Forms.Label(); + this.lblBeginDateTimeUTC = new System.Windows.Forms.Label(); + this.lblEndDateTimeUTC = new System.Windows.Forms.Label(); + this.lblEndDateTime = new System.Windows.Forms.Label(); + this.lblValueCount = new System.Windows.Forms.Label(); + this.tbValueCount = new System.Windows.Forms.TextBox(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); + this.tbBeginDateTime = new System.Windows.Forms.TextBox(); + this.tbBeginDateTimeUTC = new System.Windows.Forms.TextBox(); + this.tbEndDateTime = new System.Windows.Forms.TextBox(); + this.tbEndDateTimeUTC = new System.Windows.Forms.TextBox(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); + this.SuspendLayout(); + // + // lblBeginDateTime + // + this.lblBeginDateTime.AutoSize = true; + this.lblBeginDateTime.Location = new System.Drawing.Point(4, 14); + this.lblBeginDateTime.Name = "lblBeginDateTime"; + this.lblBeginDateTime.Size = new System.Drawing.Size(80, 13); + this.lblBeginDateTime.TabIndex = 6; + this.lblBeginDateTime.Text = "BeginDateTime"; + // + // lblBeginDateTimeUTC + // + this.lblBeginDateTimeUTC.AutoSize = true; + this.lblBeginDateTimeUTC.Location = new System.Drawing.Point(4, 39); + this.lblBeginDateTimeUTC.Name = "lblBeginDateTimeUTC"; + this.lblBeginDateTimeUTC.Size = new System.Drawing.Size(102, 13); + this.lblBeginDateTimeUTC.TabIndex = 12; + this.lblBeginDateTimeUTC.Text = "BeginDateTimeUTC"; + // + // lblEndDateTimeUTC + // + this.lblEndDateTimeUTC.AutoSize = true; + this.lblEndDateTimeUTC.Location = new System.Drawing.Point(5, 89); + this.lblEndDateTimeUTC.Name = "lblEndDateTimeUTC"; + this.lblEndDateTimeUTC.Size = new System.Drawing.Size(94, 13); + this.lblEndDateTimeUTC.TabIndex = 16; + this.lblEndDateTimeUTC.Text = "EndDateTimeUTC"; + // + // lblEndDateTime + // + this.lblEndDateTime.AutoSize = true; + this.lblEndDateTime.Location = new System.Drawing.Point(5, 64); + this.lblEndDateTime.Name = "lblEndDateTime"; + this.lblEndDateTime.Size = new System.Drawing.Size(72, 13); + this.lblEndDateTime.TabIndex = 14; + this.lblEndDateTime.Text = "EndDateTime"; + // + // lblValueCount + // + this.lblValueCount.AutoSize = true; + this.lblValueCount.Location = new System.Drawing.Point(5, 114); + this.lblValueCount.Name = "lblValueCount"; + this.lblValueCount.Size = new System.Drawing.Size(62, 13); + this.lblValueCount.TabIndex = 18; + this.lblValueCount.Text = "ValueCount"; + // + // tbValueCount + // + this.tbValueCount.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbValueCount.Location = new System.Drawing.Point(114, 111); + this.tbValueCount.Name = "tbValueCount"; + this.tbValueCount.Size = new System.Drawing.Size(188, 20); + this.tbValueCount.TabIndex = 4; + // + // tbBeginDateTime + // + this.tbBeginDateTime.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbBeginDateTime.Location = new System.Drawing.Point(114, 11); + this.tbBeginDateTime.Name = "tbBeginDateTime"; + this.tbBeginDateTime.Size = new System.Drawing.Size(188, 20); + this.tbBeginDateTime.TabIndex = 0; + // + // tbBeginDateTimeUTC + // + this.tbBeginDateTimeUTC.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbBeginDateTimeUTC.Location = new System.Drawing.Point(114, 36); + this.tbBeginDateTimeUTC.Name = "tbBeginDateTimeUTC"; + this.tbBeginDateTimeUTC.Size = new System.Drawing.Size(188, 20); + this.tbBeginDateTimeUTC.TabIndex = 1; + // + // tbEndDateTime + // + this.tbEndDateTime.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbEndDateTime.Location = new System.Drawing.Point(114, 61); + this.tbEndDateTime.Name = "tbEndDateTime"; + this.tbEndDateTime.Size = new System.Drawing.Size(188, 20); + this.tbEndDateTime.TabIndex = 2; + // + // tbEndDateTimeUTC + // + this.tbEndDateTimeUTC.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbEndDateTimeUTC.Location = new System.Drawing.Point(114, 86); + this.tbEndDateTimeUTC.Name = "tbEndDateTimeUTC"; + this.tbEndDateTimeUTC.Size = new System.Drawing.Size(188, 20); + this.tbEndDateTimeUTC.TabIndex = 3; + // + // SeriesShortView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tbEndDateTimeUTC); + this.Controls.Add(this.tbEndDateTime); + this.Controls.Add(this.tbBeginDateTimeUTC); + this.Controls.Add(this.tbBeginDateTime); + this.Controls.Add(this.tbValueCount); + this.Controls.Add(this.lblValueCount); + this.Controls.Add(this.lblEndDateTimeUTC); + this.Controls.Add(this.lblEndDateTime); + this.Controls.Add(this.lblBeginDateTimeUTC); + this.Controls.Add(this.lblBeginDateTime); + this.Name = "SeriesShortView"; + this.Size = new System.Drawing.Size(309, 146); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.BindingSource bindingSource1; + private System.Windows.Forms.Label lblBeginDateTime; + private System.Windows.Forms.Label lblBeginDateTimeUTC; + private System.Windows.Forms.Label lblEndDateTimeUTC; + private System.Windows.Forms.Label lblEndDateTime; + private System.Windows.Forms.Label lblValueCount; + private System.Windows.Forms.TextBox tbValueCount; + private System.Windows.Forms.TextBox tbBeginDateTime; + private System.Windows.Forms.TextBox tbBeginDateTimeUTC; + private System.Windows.Forms.TextBox tbEndDateTime; + private System.Windows.Forms.TextBox tbEndDateTimeUTC; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesShortView.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesShortView.cs new file mode 100644 index 00000000..bec9297b --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesShortView.cs @@ -0,0 +1,79 @@ +using System.ComponentModel; +using System.Windows.Forms; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.SeriesView +{ + public partial class SeriesShortView : UserControl + { + #region Fields + + private Series _entity; + private bool _readOnly; + + #endregion + + #region Constructors + + /// + /// Create new instance of + /// + public SeriesShortView() + { + InitializeComponent(); + + if (this.IsDesignMode()) return; + + Entity = null; + + // Set bindings + tbBeginDateTime.AddBinding(x => x.Text, bindingSource1, x => x.BeginDateTime); + tbBeginDateTimeUTC.AddBinding(x => x.Text, bindingSource1, x => x.BeginDateTimeUTC); + tbEndDateTime.AddBinding(x => x.Text, bindingSource1, x => x.EndDateTime); + tbEndDateTimeUTC.AddBinding(x => x.Text, bindingSource1, x => x.EndDateTimeUTC); + tbValueCount.AddBinding(x => x.Text, bindingSource1, x => x.ValueCount); + } + + #endregion + + #region Properties + + /// + /// Current Entity + /// + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public Series Entity + { + get { return _entity; } + set + { + _entity = value; + bindingSource1.DataSource = value ?? (object)typeof(Series); + } + } + + + /// + /// Gets or sets a value indicating whether control is read-only. + /// + [Browsable(false)] + public bool ReadOnly + { + get { return _readOnly; } + set + { + _readOnly = value; + + tbBeginDateTime.ReadOnly = value; + tbBeginDateTimeUTC.ReadOnly = value; + tbEndDateTime.ReadOnly = value; + tbEndDateTimeUTC.ReadOnly = value; + tbValueCount.ReadOnly = value; + } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesShortView.resx b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesShortView.resx new file mode 100644 index 00000000..4d6bea97 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesShortView.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesView.sln b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesView.sln new file mode 100644 index 00000000..22c31738 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesView.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SeriesView", "SeriesView.csproj", "{5B5ACBB1-74AE-4F51-890D-649309AD4E9C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Debug|x86.ActiveCfg = Debug|x86 + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Debug|x86.Build.0 = Debug|x86 + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Release|Any CPU.Build.0 = Release|Any CPU + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Release|x86.ActiveCfg = Release|x86 + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesViewControl.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesViewControl.cs new file mode 100644 index 00000000..e00ecb94 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesViewControl.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using HydroDesktop.Interfaces; +using System.ComponentModel.Composition; + +namespace SeriesView +{ + public partial class SeriesViewControl : UserControl, ISeriesView + { + public SeriesViewControl() + { + InitializeComponent(); + } + + private Dictionary _panels = new Dictionary(); + + #region ISeriesView Members + + private void OnVisiblePanelChanged() + { + if (VisiblePanelChanged != null) + { + VisiblePanelChanged(this, null); + } + } + + public void AddPanel(string panelName, UserControl control) + { + + } + + private void SetPanelVisible(string panelName) + { + + } + + public void RemovePanel(string panelName) + { + + } + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public string VisiblePanelName + { + get + { + return string.Empty; + } + set + { + + } + } + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public string[] PanelNames + { + get { return new string[] { }; } + } + + public event EventHandler VisiblePanelChanged; + + [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public ISeriesSelector SeriesSelector + { + get { return seriesSelector1; } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesViewControl.designer.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesViewControl.designer.cs new file mode 100644 index 00000000..c3585267 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesViewControl.designer.cs @@ -0,0 +1,57 @@ +namespace SeriesView +{ + partial class SeriesViewControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.seriesSelector1 = new SeriesView.SeriesSelector(); + this.SuspendLayout(); + // + // seriesSelector1 + // + this.seriesSelector1.Dock = System.Windows.Forms.DockStyle.Fill; + this.seriesSelector1.Location = new System.Drawing.Point(0, 0); + this.seriesSelector1.Name = "seriesSelector1"; + this.seriesSelector1.Size = new System.Drawing.Size(275, 500); + this.seriesSelector1.TabIndex = 0; + // + // SeriesViewControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.seriesSelector1); + this.Name = "SeriesViewControl"; + this.Size = new System.Drawing.Size(275, 500); + this.ResumeLayout(false); + + } + + #endregion + + private SeriesView.SeriesSelector seriesSelector1; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesViewControl.resx b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesViewControl.resx new file mode 100644 index 00000000..c7e0d4bd --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesViewControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesViewPlugin.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesViewPlugin.cs new file mode 100644 index 00000000..4b7378d1 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/SeriesViewPlugin.cs @@ -0,0 +1,64 @@ +namespace HydroDesktop.Plugins.SeriesView +{ + using HydroDesktop.Common; + using System.ComponentModel.Composition; + using System.Windows.Forms; + using DotSpatial.Controls; + using DotSpatial.Controls.Docking; + using DotSpatial.Controls.Header; + using HydroDesktop.Interfaces; + + public class SeriesViewPlugin : Extension + { + private readonly string SeriesViewKey = SharedConstants.SeriesViewKey; + private readonly string _tableRootKey = SharedConstants.TableRootKey; + + [Export("SeriesControl")] + private ISeriesSelector MainSeriesSelector = new SeriesSelector(); + + public SeriesViewPlugin() + { + DeactivationAllowed = false; + } + + public override void Activate() + { + ((SeriesSelector) MainSeriesSelector).ParentPlugin = this; + + //add the series selector + App.DockManager.ActivePanelChanged += DockManager_ActivePanelChanged; + ((SeriesSelector) MainSeriesSelector).Dock = DockStyle.Fill; + var timeSeriesPanel = new DockablePanel + { + Key = SeriesViewKey, + Caption = "time series", + InnerControl = (SeriesSelector) MainSeriesSelector, + Dock = DockStyle.Left, + SmallImage = Properties.Resources.timeSeries, + DefaultSortOrder = 1000 + }; + App.DockManager.Add(timeSeriesPanel); + + App.HeaderControl.Add(new RootItem(_tableRootKey, "Table") {SortOrder = 20}); + + base.Activate(); + } + + void DockManager_ActivePanelChanged(object sender, DockablePanelEventArgs e) + { + if (e.ActivePanelKey == _tableRootKey) + { + App.HeaderControl.SelectRoot(_tableRootKey); + } + } + + public override void Deactivate() + { + App.HeaderControl.RemoveAll(); + App.DockManager.Remove(SeriesViewKey); + App.DockManager.ActivePanelChanged -= DockManager_ActivePanelChanged; + + base.Deactivate(); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/frmComplexSelection.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/frmComplexSelection.cs new file mode 100644 index 00000000..e770dc46 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/frmComplexSelection.cs @@ -0,0 +1,39 @@ +using System; +using System.Data; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.SeriesView +{ + public partial class frmComplexSelection : Form + { + // Fields + private Button btnCommit; + + //properties + public string FilterExpression + { + get + { + return sqlQueryControl2.ExpressionText; + } + set + { + sqlQueryControl2.ExpressionText = value; + } + } + + // Methods + public frmComplexSelection(DataTable allSeriesTable) + { + InitializeComponent(); + sqlQueryControl2.Table = allSeriesTable; + } + + //events + + private void btnCommit_Click_1(object sender, EventArgs e) + { + DialogResult = DialogResult.OK; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/frmComplexSelection.designer.cs b/Source/Plugins/HydroDesktop.Plugins.SeriesView/frmComplexSelection.designer.cs new file mode 100644 index 00000000..c2230708 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/frmComplexSelection.designer.cs @@ -0,0 +1,78 @@ +using DotSpatial.Symbology.Forms; + +namespace HydroDesktop.Plugins.SeriesView +{ + partial class frmComplexSelection + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.sqlQueryControl2 = new DotSpatial.Symbology.Forms.SQLQueryControl(); + this.btnCommit = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // sqlQueryControl2 + // + this.sqlQueryControl2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.sqlQueryControl2.AttributeSource = null; + this.sqlQueryControl2.ExpressionText = ""; + this.sqlQueryControl2.Location = new System.Drawing.Point(12, 12); + this.sqlQueryControl2.Name = "sqlQueryControl2"; + this.sqlQueryControl2.Size = new System.Drawing.Size(325, 338); + this.sqlQueryControl2.TabIndex = 0; + this.sqlQueryControl2.Table = null; + // + // btnCommit + // + this.btnCommit.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.btnCommit.Location = new System.Drawing.Point(130, 356); + this.btnCommit.Name = "btnCommit"; + this.btnCommit.Size = new System.Drawing.Size(75, 23); + this.btnCommit.TabIndex = 1; + this.btnCommit.Text = "Commit"; + this.btnCommit.UseVisualStyleBackColor = true; + this.btnCommit.Click += new System.EventHandler(this.btnCommit_Click_1); + // + // frmComplexSelection + // + this.ClientSize = new System.Drawing.Size(345, 385); + this.Controls.Add(this.btnCommit); + this.Controls.Add(this.sqlQueryControl2); + this.Name = "frmComplexSelection"; + this.Text = "Query Builder"; + this.ResumeLayout(false); + + } + + #endregion + + private SQLQueryControl sqlQueryControl2; + + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SeriesView/frmComplexSelection.resx b/Source/Plugins/HydroDesktop.Plugins.SeriesView/frmComplexSelection.resx new file mode 100644 index 00000000..ff31a6db --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/frmComplexSelection.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/Source/Plugins/HydroDesktop.Plugins.SeriesView/packages.config b/Source/Plugins/HydroDesktop.Plugins.SeriesView/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SeriesView/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/HydroDesktop.Plugins.SimpleLegend.csproj b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/HydroDesktop.Plugins.SimpleLegend.csproj new file mode 100644 index 00000000..3f53bb37 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/HydroDesktop.Plugins.SimpleLegend.csproj @@ -0,0 +1,162 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {0913BF38-CA92-462C-8B77-BA8937A989F4} + Library + Properties + HydroDesktop.Plugins.SimpleLegend + HydroDesktop.Plugins.SimpleLegend + v4.0 + 512 + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SimpleLegend\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SimpleLegend\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SimpleLegend\ + DEBUG;TRACE + full + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SimpleLegend\HydroDesktop.Plugins.SimpleLegend.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SimpleLegend\ + TRACE + true + pdbonly + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SimpleLegend\HydroDesktop.Plugins.SimpleLegend.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + + + + + + + + + + + + + + True + True + Resources.resx + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/HydroDesktop.Plugins.SimpleLegend.nuspec b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/HydroDesktop.Plugins.SimpleLegend.nuspec new file mode 100644 index 00000000..1ee6f684 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/HydroDesktop.Plugins.SimpleLegend.nuspec @@ -0,0 +1,19 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..e274e567 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/Properties/AssemblyInfo.cs @@ -0,0 +1,26 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.SimpleLegend")] +[assembly: AssemblyDescription("Legend for HyrdoDesktop")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Hewlett-Packard Company")] +[assembly: AssemblyProduct("HydroDesktop.SimpleLegend")] +[assembly: AssemblyCopyright("Copyright © Hewlett-Packard Company 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("22153699-b827-4115-8005-cb84dfad0121")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/Properties/Resources.Designer.cs new file mode 100644 index 00000000..b1577d43 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.SimpleLegend.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.SimpleLegend.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap legend_16x16 { + get { + object obj = ResourceManager.GetObject("legend_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/Properties/Resources.resx new file mode 100644 index 00000000..0c3b1843 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\legend_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/Resources/legend_16x16.png b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/Resources/legend_16x16.png new file mode 100644 index 00000000..80149559 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/Resources/legend_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/SimpleLegendPlugin.cs b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/SimpleLegendPlugin.cs new file mode 100644 index 00000000..821e3fb3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/SimpleLegendPlugin.cs @@ -0,0 +1,60 @@ +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Controls.Docking; + +namespace HydroDesktop.Plugins.SimpleLegend +{ + public class SimpleLegendPlugin : Extension + { + private Legend legend1; + + public SimpleLegendPlugin() + { + DeactivationAllowed = false; + } + + public override void Activate() + { + ShowLegend(); + base.Activate(); + } + + public override void Deactivate() + { + App.HeaderControl.RemoveAll(); + this.App.DockManager.Remove("kLegend"); + base.Deactivate(); + } + + private void ShowLegend() + { + + this.legend1 = new DotSpatial.Controls.Legend(); + // + // legend1 + // + this.legend1.BackColor = System.Drawing.Color.White; + this.legend1.ControlRectangle = new System.Drawing.Rectangle(0, 0, 300, 128); + this.legend1.DocumentRectangle = new System.Drawing.Rectangle(0, 0, 34, 114); + this.legend1.HorizontalScrollEnabled = true; + this.legend1.Indentation = 30; + this.legend1.IsInitialized = false; + this.legend1.Location = new System.Drawing.Point(217, 12); + this.legend1.MinimumSize = new System.Drawing.Size(5, 5); + this.legend1.Name = "legend1"; + this.legend1.ProgressHandler = null; + this.legend1.ResetOnResize = false; + this.legend1.SelectionFontColor = System.Drawing.Color.Black; + this.legend1.SelectionHighlight = System.Drawing.Color.FromArgb(((int)(((byte)(215)))), ((int)(((byte)(238)))), ((int)(((byte)(252))))); + this.legend1.Size = new System.Drawing.Size(300, 128); + this.legend1.TabIndex = 0; + this.legend1.Text = "Legend"; + this.legend1.VerticalScrollEnabled = true; + + App.Map.Legend = legend1; + App.Legend = this.legend1; + App.DockManager.Add(new DockablePanel("kLegend", "Legend", legend1, DockStyle.Left) { SmallImage = Properties.Resources.legend_16x16 }); + } + } +} + diff --git a/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/packages.config b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SimpleLegend/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/HydroDesktop.Plugins.SplashScreenManager.csproj b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/HydroDesktop.Plugins.SplashScreenManager.csproj new file mode 100644 index 00000000..35ed5d30 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/HydroDesktop.Plugins.SplashScreenManager.csproj @@ -0,0 +1,125 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {3054526B-2F17-4093-B6AC-FB00846D6A41} + Library + Properties + HydroDesktop.Plugins.SplashScreenManager + HydroDesktop.Plugins.SplashScreenManager + v4.0 + 512 + ..\..\ + true + Client + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SplashScreenManager\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SplashScreenManager\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SplashScreenManager\ + DEBUG;TRACE + full + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SplashScreenManager\HydroDesktop.Plugins.SplashScreenManager.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SplashScreenManager\ + TRACE + true + pdbonly + x86 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.SplashScreenManager\HydroDesktop.Plugins.SplashScreenManager.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + + + + + + + + + True + True + Resources.resx + + + + Form + + + SplashScreenForm.cs + + + + + + + ResXFileCodeGenerator + Designer + Resources.Designer.cs + + + SplashScreenForm.cs + + + + + + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/HydroDesktop.Plugins.SplashScreenManager.nuspec b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/HydroDesktop.Plugins.SplashScreenManager.nuspec new file mode 100644 index 00000000..1ee6f684 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/HydroDesktop.Plugins.SplashScreenManager.nuspec @@ -0,0 +1,19 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..f41ccca7 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.SplashScreenManager")] +[assembly: AssemblyDescription("HydroDesktop SplashScreen")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Hewlett-Packard Company")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.SplashScreenManager")] +[assembly: AssemblyCopyright("Copyright © Hewlett-Packard Company 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("35efd510-31cc-4d39-a411-c87e5fb7e7e5")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/Properties/Resources.Designer.cs new file mode 100644 index 00000000..2b79da32 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.SplashScreenManager.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.SplashScreenManager.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap newLogo14 { + get { + object obj = ResourceManager.GetObject("newLogo14", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/Properties/Resources.resx new file mode 100644 index 00000000..9e02d5f6 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\newLogo14.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/Resources/newLogo14.png b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/Resources/newLogo14.png new file mode 100644 index 00000000..f4cc2209 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/Resources/newLogo14.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/SplashScreen.cs b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/SplashScreen.cs new file mode 100644 index 00000000..fa55c71f --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/SplashScreen.cs @@ -0,0 +1,61 @@ +// adopted code from: +// http://www.codeproject.com/Articles/37886/Yet-Another-Splash-Screen-in-C +// ************************************************************************ + + +namespace HydroDesktop.Plugins.SplashScreenManager +{ + /// + /// Defined types of messages: Success/Warning/Error. + /// + public enum TypeOfMessage + { + Success, + Warning, + Error, + } + /// + /// Initiate instance of SplashScreen + /// + public static class SplashScreen + { + static SplashScreenForm sf = null; + + /// + /// Displays the splashscreen + /// + public static void ShowSplashScreen() + { + if (sf == null) + { + sf = new SplashScreenForm(); + sf.ShowSplashScreen(); + + } + } + + /// + /// Closes the SplashScreen + /// + public static void CloseSplashScreen() + { + if (sf != null) + { + sf.CloseSplashScreen(); + sf = null; + } + } + + /// + /// Update the status text in default color + /// + /// Message + public static void UdpateStatusText(string Text) + { + if (sf != null) + sf.UdpateStatusText(Text); + + } + } + +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/SplashScreenForm.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/SplashScreenForm.Designer.cs new file mode 100644 index 00000000..dfaaba6d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/SplashScreenForm.Designer.cs @@ -0,0 +1,129 @@ +namespace HydroDesktop.Plugins.SplashScreenManager +{ + partial class SplashScreenForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SplashScreenForm)); + this.label1 = new System.Windows.Forms.Label(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.label2 = new System.Windows.Forms.Label(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.BackColor = System.Drawing.Color.Transparent; + this.label1.ForeColor = System.Drawing.SystemColors.ControlLightLight; + this.label1.Location = new System.Drawing.Point(24, 200); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(125, 13); + this.label1.TabIndex = 1; + this.label1.Text = "Loading HydroDesktop..."; + // + // progressBar1 + // + this.progressBar1.Location = new System.Drawing.Point(27, 225); + this.progressBar1.MarqueeAnimationSpeed = 32; + this.progressBar1.Name = "progressBar1"; + this.progressBar1.RightToLeftLayout = true; + this.progressBar1.Size = new System.Drawing.Size(401, 15); + this.progressBar1.Style = System.Windows.Forms.ProgressBarStyle.Marquee; + this.progressBar1.TabIndex = 2; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.BackColor = System.Drawing.Color.Transparent; + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.25F); + this.label2.ForeColor = System.Drawing.SystemColors.ControlLightLight; + this.label2.Location = new System.Drawing.Point(24, 275); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(146, 16); + this.label2.TabIndex = 4; + this.label2.Text = "Powered by DotSpatial"; + // + // pictureBox1 + // + this.pictureBox1.BackColor = System.Drawing.Color.Transparent; + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(27, 57); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(400, 78); + this.pictureBox1.TabIndex = 3; + this.pictureBox1.TabStop = false; + // + // pictureBox2 + // + this.pictureBox2.BackColor = System.Drawing.Color.Transparent; + this.pictureBox2.Image = global::HydroDesktop.Plugins.SplashScreenManager.Properties.Resources.newLogo14; + this.pictureBox2.Location = new System.Drawing.Point(27, 57); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(406, 78); + this.pictureBox2.TabIndex = 5; + this.pictureBox2.TabStop = false; + // + // SplashScreenForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.White; + this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage"))); + this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.ClientSize = new System.Drawing.Size(456, 319); + this.ControlBox = false; + this.Controls.Add(this.pictureBox2); + this.Controls.Add(this.label2); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.progressBar1); + this.Controls.Add(this.label1); + this.DoubleBuffered = true; + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "SplashScreenForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Welcome to HydroDesktop"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.PictureBox pictureBox2; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/SplashScreenForm.cs b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/SplashScreenForm.cs new file mode 100644 index 00000000..fe1ff9d9 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/SplashScreenForm.cs @@ -0,0 +1,100 @@ +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.SplashScreenManager +{ + public partial class SplashScreenForm : Form + { + delegate void StringParameterDelegate(string Text); + delegate void StringParameterWithStatusDelegate(string Text, TypeOfMessage tom); + delegate void SplashShowCloseDelegate(); + + private const int CS_DROPSHADOW = 0x00020000; + protected override CreateParams CreateParams + { + get + { + // add the drop shadow flag for automatically drawing. + // a drop shadow around the form + CreateParams cp = base.CreateParams; + cp.ClassStyle |= CS_DROPSHADOW; + return cp; + } + } + /// + /// To ensure splash screen is closed using the API and not by keyboard or any other things + /// + bool CloseSplashScreenFlag = false; + + /// + /// Base constructor + /// + public SplashScreenForm() + { + InitializeComponent(); + + progressBar1.Show(); + } + + /// + /// Displays the splashscreen + /// + public void ShowSplashScreen() + { + if (InvokeRequired) + { + // We're not in the UI thread, so we need to call BeginInvoke + BeginInvoke(new SplashShowCloseDelegate(ShowSplashScreen)); + return; + } + this.Show(); + + //commented out (otherwise splashScreenForm always stays on) + //Application.Run(this); + } + + /// + /// Closes the SplashScreen + /// + public void CloseSplashScreen() + { + if (InvokeRequired) + { + // We're not in the UI thread, so we need to call BeginInvoke + BeginInvoke(new SplashShowCloseDelegate(CloseSplashScreen)); + return; + } + CloseSplashScreenFlag = true; + this.Close(); + } + + /// + /// Update text in default green color of success message + /// + /// Message + public void UdpateStatusText(string Text) + { + if (InvokeRequired) + { + // We're not in the UI thread, so we need to call BeginInvoke + BeginInvoke(new StringParameterDelegate(UdpateStatusText), new object[] { Text }); + return; + } + + label1.Text = Text; + // Must be on the UI thread if we've got this far + Application.DoEvents(); + + } + + /// + /// Prevents the closing of form other than by calling the CloseSplashScreen function + /// + /// + /// + private void SplashForm_FormClosing(object sender, FormClosingEventArgs e) + { + if (CloseSplashScreenFlag == false) + e.Cancel = true; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/SplashScreenForm.resx b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/SplashScreenForm.resx new file mode 100644 index 00000000..0fe7469d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/SplashScreenForm.resx @@ -0,0 +1,1666 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAAZAAAABOCAYAAAAO/EAnAAAAAXNSR0ICQMB9xQAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAAAZdEVYdFNvZnR3YXJlAE1pY3Jvc29mdCBPZmZpY2V/7TVx + AABTyElEQVR4Xu19BVhV2/Y9N/7vvft775aJBYKAXUhjd3eLqNgtFmKLAQZiY3cHKnZ3d3d3t2LcO/5z + rHO2HvEAB5Sr9709vm99B/bZZ++1dswxa81l5Vl3UEmPOoMuedQdBL3pTW9605ve4mzCGcId9a08fAbe + MruD3vSmN73pTW8xNHefQa+szH2hN73pTW9601tc7SMC0aFDhw4dOmKDKWfoBKJDhw4dOiyGKWfoBKJD + hw4dOiyGKWfoBKJDhw4dOiyGKWfoBKJDhw4dOiyGKWf87QgkKioKV69cweHDh7Fh/XrMnzsX48LDMWb0 + aIwZNRpTJk1G5JKl2LljB06dPIm7d+8af6lDhw4dOj4XppzxzRPIn3/+iQvnz2Pm9Bno4O+P0iVKImfW + bLBNkxapkqdAiiRJkeSXX5HkZ2nymezX35EyaTKkSZESjnb28HBxRY1q1dEvKAjr163H/QcPjEfWoUOH + Dh3xhSlnfLME8lAE/cL5C+BXrz5yZMkK62TJkey332EtpJHWOhXSp0oFe/nMYC1EkcpaGj9TwkH+zmBt + DTv5tJF9Uqe0RgohFP7WJnUa5PfOix7dumHXzp3GM+nQoUOHDkthyhnfHIHQ5TR61CgUypf/PWmQMOzT + poWDkIVT0t/gyCZ/Z0hvB7tMYo3kdIWtsxdsc3sifXZn2DlmgkO6dHBMngROSX5Vnw6pU8NOjpEqWQok + /fU3ZLBND986Pli9ajXe/fGH8ew6dOjQoSM2mHLGN0Mgf4gQnzN7NgqIhUDSSCnkkT6tkIBYEoo05NM2 + lxusKzbA7/5D8Z/BS/HPKXvwjwVn8OPSa/hh+W1pN/Hj4kv4x+xj+GnsFvwSNBPJGnVHmsIVYO+QEY4p + kiGDjY06Lq2RZEIkaYScGtSrh927dhl7okOHDh06YoIpZ3wTBMJgdz2fumJxJFPxC3sbW2VhOCb5Hemz + 5ESKOv7497Dl+GHZDVjteAurPTC0XX/Cavs7WG17Y2yvpcn3O2TbbuM+8vndphf4x7yT+L3TSKQX6yRd + 8uRIniSpIhGSCS0Sx/T2Kk5y7949Y6906NChQ0d0mHLGVyeQeXPnIkeWbCoAnj6dDRxTp4JTkl/E2nDH + 7x2G48eIix/IYKsQxKbnsNrwTNpTy9pG2VcIxGq//H7BebjkK4wlc+egc8dOsLe1RdJffoOdnDddqtSK + UPzbtsOD+/eNvdOhQ4cOHaYw5YyvRiBMxw3q3VtlUlknTwkHEeYOSUWY2zshaZsQ/LjyJr7bJ9aDWBPf + b3qG7zc8kfY0nk1+szVKLBWDJWK19CYqt+kC/PFG9WH37l2oXaMmfvvPz3Cyz4BNGzfh6pWryp2mQ4cO + HTo+hSlnfBUCef78OVq3bInff/4FNmnSwoEB8t9/RbriVfDbzMP46QDw751v8J9NTxPeNj7Bzzve4F8r + buGffWYh2ZAIWNVsjyLFSuLVs6fGngBv3rzBlEmTVLrvoQMH8e7dOzx6+ND4rQ4dOnToMIUpZ/zlBPLs + 2TP41W+gyCO9jS0ypEqpUnFtWvVDir1vkPwkkHLrC6QUEki55VncbbPst+sdrA8B1mKxWAvxpNzxWv2d + dP1D2JSqgdH9+uDgtq2YOmoEJowZjbdCEtFx8uRJXL92Dbdu3VLxmMkTJ+LFi+fGb3Xo0KFDB2HKGX8p + gdBt1aZVa0UediSPlMmRIb09MoTMhf15wHbJOaQNmQf7Pe9gtzMK9tuexd62StvzBhnmHYV120H4bcwG + JFt8AWnX3kO6rXfxS9tQhPbsZjy7ZeDExRbNmuGfP/yI0sVLYNrkKbh546bxWx06dOj434YpZ/ylBDKg + bz8DeaSzQYYUKZDB3gFZx65GrotA5tWXYedZBJmSJYVt017IdQTIuec1cmx/hhw7nptvu18j+/anSF+g + NOqXLIxhI0aiUUBP5ClbHWlye8Onbj08f/rBXWUpli5ZotKIk/+WBMl/TwJvdw8E9e6DfXv3KRLUoUOH + jv9VmHLGX0YgEQsXqfIijHnYW1sry8NZyMP7MuC27RHSuBVGSGBn7N+5HWXye8O2bQi8TwCe+97Afedz + eJhpnvvfwXXdDaRK74DZE8YaTvQmChdPHMWujevx7FHCYhlXr15Fnpy5kY6z3cVSYqCfc1Oc7OxRtVIl + jBw+XM1k56THt2/fKqtFx5fF2bP3MXb8PowcvRsrVp7Buz/0a/y/iEdRf2D22aeYcOIJ5p57iqdv9ASX + rw1TzvhLCOTsmTPInT2HKkOSIW0a2FmnhMeQ+Sh1Ayi89zkcKvshrE8P494iwC9eQH7XPEhdqjaK7n+F + EkIkRfa+RJE9Lz5ue1+h2JE/kLVpd+RxsMPOtauNR/h8+Napo6wPh/R2atY6G+tvcdvP//pJzR3xdHVD + yIABuHvnjvFX8ceSpafQP3gL+vXfjIOHvoyr7MWLN5g0eT8GhGwVq2wXbtyMvxX2tTFvwXEkTRmMf/27 + N6rVmIvXbz6NW/1d8FrIj8Iv7PAjjDoWcxt59BHGHn+MpRefY9WVFzh4LwqXnr7Bi7f/u+R57vEbOM+7 + itRTL8Fj4VVcffbW+I2OrwVTzkh0AmFWU6MGfsp1lUG0edskv8I7IBQ1bgNlNpyHfYlqcHW0x+6dO7B7 + 9271G36OGzUSDSpXQLYaTVB67XlUOQlUPQNUPPAaFYR0Kux7oT4rHnyNivuj4D5oDkoMnYGhi1bj8tmz + 6jifg8EhwUj6y6+qXIpGIGwkFLc8LipOErEoAlcuX/mstN9GTZbg1yT98PNvfTFl2kHj1s/DvXsvkK/g + RPyefAAcM4Vh/wFh6r8ZSKyOmYchjc0g+DVa/LcmkOdCAFVX3USGGZeRfc4Vi1uOuVdQdOl1NNhwG4MO + PMTu26/w9n/MErv45A0KL7mObHI9SkRex/XnOoF8bZhyRqITCOMJrGnFGd92KZLDraofau66jcJhc5DS + xgG1ypVGrx490K5NW4QEB+Phg/sYMXwEOnbojHFjxqCwuytSWKeFS8OOKNBrDGrvfoj6wg+1972U9kLa + c9Q5GIV6sq3OFcChfgBqlSpuPLsBUc+e4Pj+PZgyZhRC+gZh65atxm8+4M+3b7FvxzYsX7oEQd27oaCn + F2xSpfmIPNJZp1aW1MEDX0bQEy1aLYN1moFIkSoEM2YdNm79PNy//wJFS0xFapvByJ5r1BezbP5K/LcR + SJ21t5BVhKDbgquKGLLMvhxry8o25zIyy6fTzMvINOsyXOW39dffxvprL4xH/u+HTiDfHkw5I1EJ5PHj + xyhRpKhy+ygBnCo1MhWvjPQ53WGXPBkC/NviwMHDWL1mHdasXY+ZM2ahXes2mD9/oQiQFeg/IAT9+gej + Qd26yO2YAfZiveSp7Iu6q0+h1Tmg6eEoNDnwAk0Osr1Ei1NA+dGRcMqSA0P698XMCWPRo0sA/Py7oELv + 4cjXeaCQlh1S/PwftGzeQlX8Je7dvIGAjh1RJHAIyk1ch+IjIlB8wCRkzJgF9mnSqEKOdizGKBYUyZDr + jnwpkEBSpZV+pf6yBFKs5FSksR2MHLl1Avna0AiEQpAkEnroEbbfehVjW3f1BWaeeYp++x7Ad/0tFFx8 + TRGK4feXkUsIqNee+7j/6r8/HpDYBPLk9R+49uwtHsunDstgyhmJSiDTp05T5MFANMuEZM+cBdXKlUPv + wABERCzGsROnsHvPfmzbvhObt2zD0sgVCBs2EnPmLcT8hYsxd0EEZs6ehxnSho0YjaB+A5DXORfSpk6L + 8iLgAy4BHU7+gbaHXqLdYUNrf/JPNN92A+VCZ6NIl6EoO2IB6m+6hjYn3yJA5GitiSuQOkkS/MPKCpVL + Fse08FEoU7wYCvccjXbngfZiyQRcA9oeeYHsHvlhkzQJnDJmRuZsOQ3VfFOkhGtuZzVn5EtAJxDz+G8l + ECexJNZcsdyCYH7GmUevMebYY5RaZhCkueddQUY5TqONd3D35d/3uliCxCaQDjvuIePMSxh25JFxi464 + YMoZiUYgL168QOmSpVRxRFoezjlzYdnyFTh15ixOnDqDfQcOYcPGLVi1ej2Wr1iFiCXLMH/REiyIWIpp + M+dgwqSpCB83ESNHj0XY8FEYKsQyRFqffsGoXK4snGxtkc+nBTofeIieQiQBR1+9b11P/4nuF4Husp2f + gSffyfYodDn2Gl3PAA1nbUKxJh2Ru3gl5ClXGzXHRqL7Bdnv+BsEHHmJLifeIlCaR9kaSPmP71EuMAS1 + R82BjVhN9jY2qm7XsKFDjSP9POgEYh7/rQRCwc8geUJwQ4Rn9933lQuMgWW6tRpvuvNfrT0nJoEwuYGx + Kdvpl5RVqMMymHJGohHImtWr1ToezFxKmSQpOnXohJOnz4q1sQvr1m/CqlVrEblsFRYtXoZ5RktjyrSZ + GD9xCsaMnYARo8IVaQwaEob+wYPQO6g/uvXsg67de6FHr77wreuLjKmt4VaqEjpvOY9Bt4C+YkH0Oh6F + XsdeSnslf0vTPo1/9z4RhX5CLP0uA33E2ugjv+H/3P5+X+4jxFOgRkM42GVA1z030efMa+T2LgSbFMmV + G6towUJ48uSxcbQJh04g5qETiHkwiE5rJKcciySSWY436OB/b+mdxCQQHpvHpFXIDDkdlsGUMxKFQDgv + grEMprraiPWRNWMmLFiwSJHHypVrsHTZSiwUS4Ouqumz5mLy1BmKOEaHj8fwkWMQOnQ4QgaFot+AgejV + p58ijYDA7ujQMQBt2rVH8xat0UJa/fp+yOFgj8zZneE7dCqC9l/DsOtAqBBC8KlXCD5paCHyt9a07SGn + ohBy5g1CTr827Bdtn9CrQIkGbVClSzCG3YBqtfuORlqWmE+TDmlSWmPNqlXGESccOoGYh04gsaP7nvsq + nkJ3FtNbjz/475zgmpgEsvn6SxVPYtLCCN2FZTFMOSNRCIT1pJjqmjpFSqQSbb16lerYsGmrIo4Fi5Zg + 9twFmDZjNiZNmY5xEyYr4mCMY3DoMAwIGYyg/iHoSeLo1hOdA3ugXfvOaNG8BZo2a45GjZvC17cBatWp + izo+vqhdxxeeLnmQLmkSZMqSHeVadEa/HRcw8R4wVoT+qIt/YpiQxLDTUR/aGZO/tf9Nm2wbceEdWk1c + ggF7rmPkxXcYLYTSd+t5ZM6SDelTWasy8J3adzCOOOH4GgTy8uUbXL36GNevP8Ht28/wRwJTQ+/efa6O + ceXKIzx//tq4NWZcuvwQK1edwdhxe9G33yaxMHdgztyj2L//xie/t5RAOOfl+o0nuHrtMR49emXcasDN + W0/VcULDtiNIzrdho5iVFuCyjGf1mrOYNv0QBg7ehgHBWzB+wj4sXnwSJ07exbNncY/VFIlBIHdevkPp + ZTeQ0ygAu+2+r+Il8cHDqHc4dC8KERefKatmyKGHmHjyCVZcfo5Tj97g1buEpwzfe/UOu26/wsILzxB+ + /DEGy7HHn3iMRfL/vjtRFrvdPodAbr14h5sv3uLy07eqP8RTOS+Pwe3sF92AdAkyYYHbtEZ3IQPsluCe + 3Isdt2Ss559h9LFH6jpyrLyuvL68zvFBlFx39pF9MHed7stYtt54iemnnyJULKeh0kiAkZee4+yj+D2b + CYEpZyQKgSxftkytRc7UXc7m7tWzD1asWqvcVFOnz8LEydMwdvyk9/GNwUPC5CUdpOIbPXoFoYsQR8fO + gWjbtj1aduiCtt37o01gLzRo0gK1atVGzZp1UKOWtJq1Uau2D+rUrYcK5SvCwzkP7FIkQ/aczqjXZxh6 + Rm7HSLmRU28DU+8A4y+J+S8EMeasBe3MK4Sfi8K4C2/V/2Plc+K1P1GidkOkFbLi7PQCefPh8aPP01y+ + BoGcPXcfXnnHI4NTmPp++44rxm8sx9Fjt+HmORb2TkPh4h6OY8djnkx54MANtGqzHLmcR8s5hypSSGYd + jOSpgpE63SDYOw5FhUqzMHPWEbx6ZRAQlhJI5LJTyJJ9BNKmH4SevTeoba9evsXIUbvhLv1LZzdEXd9/ + /xKEuvUWxVo1YNPmi2gu98PZNRx2DqFILedOLv1MljIY1nIMG/shyJR1OMpXnCUkuA937lhGBIlBIASF + VDYhD5JIwcXXcUGErSU4+/i1CJ6HKLv8BvLMN2R2Oc68jAwzLqn+cQ4KrZr6G25jsfQ1PnNPaAn13PMA + xSJvKOuI5OYw8xLspl9S5+C5eM7KK29i5NHHuCPCOjYkhEDeiswdJcd2X3BV9YG/33HrpfpuuAhajtFd + xseUaq1xX25T26Xxmg6Lw6114uFrBB94iFLGsTJTTruOTL3WxsrrHCqkwmQIS7BXCJbHyyWt/fYPC9yR + UBjsLyHnyybH5jh4Lp6T6d78jdfCa+i84x6OCHElFkw5I1EIpHfPnqr0h23qNMiWOSvCx07ArDnz3wfG + tfjGwMFDDfGNvgNUfKNL1x7o2EkIo10HtGrdDk2bt0RdsTaaB/ZG+wHDULdhM9QS8qD1Udunrqp15VO3 + viKQuvUaoF4DP7FI6sLb3R22KZLDLk1auOUthGqtOsE/fC4mnnmKhU+AeQ+M7b7Jp9wntjl3gdlCODPF + epl+TYjn0jtMvfgWky+8wRz5vlXYZKRhvS6WZLGxxY7t242jThi+BoHQ4mjeMlLOOVAJ8X4DNhu/sRzD + R+5Sv02ZZiAaNlmMP2LQVidPOYCcQhyc65JW+sNGwV6yzDSULT9DzVfh978l6y/COgQNGkbgydPXWLv+ + PBwyxU0g27fLi5RlOJKkGCDKx3o1th491yvBz5Y1xwi4e41Tgr9x0yVmra37918iIHCtmnSZQu5DChkX + /y5QeBJKl5uBchVnopj009lljCIS3qtUQnwlSk3F1q2XjEeJGYlFIJefvkEREY6aG4aWQ1xYJFoyJyfS + 708hx98Vl/+rrb6FmmtuoaIIdqYNUzM3CMEraLvt3nsNPjasvfoC+SOuqd+xOc+/ijIiPDl2ToasJZ/F + 5FwUdrwO3KfG6ptqtnlMiC+BvJH7GyTWBMfFc3gvuoaNJvNmqLGnFzJzFmHrIv0jcZBA+De3aYKb4x8S + Q2CdhDr11BM11owyBo0YS0r/qsp4OE5+Fpf/2Q+Ok30pJCQ/56xY/HHw8UkhJq9FV+W4l1BD7gnBqgQM + +KeddlEdq5gcu7rcM56L94zj1KwpfvJ/S56HhMCUM744gbx69QqVy5dX2VeMExQpVFjFOEgcKr4RNuKj + +Ea3Hr3l5e2G9oxv0OJo1QbNhTh86/mhahWxMqr5wK91BzRo3RnlKteEe568KFu6mlgc1VEof0l4uxVG + scLlULZUFZQrUxUVy9dApQo1ULxIWbjmECJJlhZJfvwPkkrLX6wqOoyYibZDZqBV8GS0GTwN7YfPRucx + ixA4IRLdp6xA0JwNGLx8P0Zvu4ypx55hnhCIkDoihFRWPQPGbDgCJ3sHIcfUKjlgXLixBlcC8bViIGvX + nVMWiK19KAoWmYRHjwwamiWg26iMCH8b0e5pPSxfccb4zceYOu2g0tptM4SqfYuLwJ024xBOnbqLJ0+i + ECXWxoMHL3Hg4E2xSPfCO98E/JKkH5o0W6pm5WfLOTJOAjl85Bay5xqpJmIOGrwV64V40tgOUhZEtx7r + sHPXVZw+fQ+HZL/jYiVFt0BoRVSrOVcRQ9r0g9U5A7quwYYNF3DjxlM11tev36l+8lzjJ+4T0pui9mXf + suUcgXVyztiQWARCNN54W1kMPDZdJ7Fhlgiv3CJgqCnzN80238HSS8+U5cI+0nXyIOoPsSJei3XzRBGN + JoiZMvwoFlfM0ftRyCsClftTe6fmvPnGS+UO0gQmy1idF7JYICRWTQQshS6FHQXhgxiOHR8CeS397733 + gUosIEmVXX4T++9+rIlfkPOvE0LZIn3rIH3kdSAB82+6hdhntg3XX6i+msPggw+V5cf+87dttt5VwpqE + /kwGSRLjJ68rr29juXY8D/fnJ11nsYFuqEJGEvcT4iXBUlGwF2uD93vZpefq2C/lnvGa0qW1X6wWuglJ + aiQRNk483Xjd8vfaUphyxhcnENa9yuzoqOZ9sHhijeo1RThMxpChwxE8cAj69g9Br959jRZHd2Vx+Hfo + hFZt/NG0aUs0aNBICKISMjtkhat7FhQo4I1cmVyQI0cu+Ph3RsCogmjWPTNy584I93wZULlRRlRpkg35 + i2eBR97McPfODFevTPAomAVeRbIgX6nMKFIjK0rWywqvMjbwKmuDfJVtkbeqDfJWs4VX5fRwr2AH17L2 + cC1tD7fSjvAslw0FqrqjtF8Z1OjoB7++7dExLAhDlm7DuNNPxaopiLRi4dDK+tw4iEYgFIDzFhwzbv08 + vBShV7zUtFgJhDGHUmWnK8FOtxJdQZaCrh6nzMPUb0lUT558HHsgNMGe3kgezVpEqphEbLh8+RF8GywS + ayUEBQpNUr+noI6NQA4dvqn2o7upXfuVqFl7nhDWEMyYGTcZk0w6dlqlrj/76OE9DhstiJNwHM1aLFW/ + SZd+CLzyjcfFizEL78QkkJADD5RQYmuxJWY34rabL5WWnV2EWJ55VzH62GOVxhob6KKpLFovhSX7PUgE + p7lf8DBdd99X++SYe1kJsri07JvP36GhCFaSGTX0cTEIVUsJhGPpQ/KQ41Hw0m1EIowNo48+Vn3msfm3 + JZh37pnaP4c0Xs8ZIg/iChWR2EgaueS6U7DTwolNsNPVRSuQ96qSWBdNNt1RrqqQAw/VsWLDASHMCitu + qvOwn7wOt1/EbT3GB6ac8cUJZPOmTSo+wPgHSaRRoyYI5fyNvgPQU4ijh7TArj3QskU7NPRrAd+6jVG6 + eEW45fKGu7MXsjnlgmMGe1Tyy4gRa10xKCI3GgXaw69LJXQY1g395+TH8LVlEDQ7P0ZtccOkg14Yu9cT + Qza4Y8AqN/Rd4YZeke7oKa3HMnd0X+mJ7mu8ESit03Iv+C/1RNulHmi1xAPNF3ugyQIP+M11h+9sabPc + UHemG3ymu6L2FGfUnJAdVUZkQumeGZCtjiv+03cOUu77EzYVfOGQ7HekEAukRtWqePvGMt+zOWgEQmHk + 32EVFkWcwJx5RxPcSEITJ+9XMQ5aFzERCDE6fLdB8xaNvaX0w1IEdFmjyqTQLRU2bKdx6wdQMLPGFzV0 + WiCVq87G06eW+WTv3XuOEqXFepLj0+3EGIYlBEJrKqfzKBVTYeDbEqxdd15ZULSQcuUZjZ07LY8FPZHx + VKo6R903nrNr93XGbz5FYhIIK9VSWJBA6OIwJ7hfvP0DddfdFuuAWvAVJYgsBd0pmgA3ZHt9KpQZbKag + o/VRctkNPBQrxhIcvheltGQK/UaiWZuLtVhCILRe2m+/q8iI15euOEviDUzdJdnw2lmSxstzF196Q+1P + K2umkEd80G//AzWOrHIf+DzwvpiDRiCam41uMs7/eWthlsRBIRFaInTH8Z5QWfiSMOWML04gc2bPUu4r + EghjBC1atkb/kMGKOAICusOvflPkdSuIrBnFUvDICuc8meDsYY8KTZzQZEA2NO6bDUHzXTBpvxemHvTG + rGNeWHTOEyNXF0LLYD9UauwDv55+CFtdDNMOOyN8pwtGbXPFiB0eGLrNC4M2eyN4oxf6rvVC79Ve6Lbc + E12ENDpEeKLdIk+0WeCJlvM80HSOBxrPFvKY4YF60zzgE63VnekJv4i8qDcpN9wL2uH/esyG1R7Aauef + SFI/AE5Jf4N1shQoUqAg7t/7EOiKLxSBpBuohKVjpmFwyBimhGFCG3/PxrgAP2MjEJZMZwCcwtrFfSzO + nzeUdokNN248UYUaSQ65XcbgxMlPtV66i+gKohvJIVMYtm6LO05gClpD/G3GLMMsJhCONZ1YKwULT1LF + JOMCj8eYCIU/LbXgkC3GbyzHmjXn1D2zFZJknOX8BfOCOTEJZNnl5+8JhL5wcwoqYxPUmHn+cituxHv2 + OmMB/C1dQ+YE7Y0Xb4Vcrql96LOnC8cSvJLrQtcPKw+fefzaLPnFRSB0uTXffFcJWadZl1Bv/W0VbLYE + 8SWQccefKIHMRqvA0nFquCXXiZlzPB/vGe+LOZgSCEmArkRLx6SB46HCwGB7rTU3YySrhMCUM744gYQN + GaLKl5BAMmVwQJs2/vBv2wWVytSAW24PZMnqAK8y9mg8NCcCF7miq5BFv1UeGL7LG6P3emPcfml7vBG+ + 3RPjdnhi4i5PzDjogdHr3NB5bDvU7tASTfpXR5dJNdBjdhX0i6yA4JUlEbI6L4asz40hm3IjeL07+qzy + RA8hj66Rnui8xEggQh5t5n8gkEZGAvElaUz90OrP80L96S6o3tsRJZpmQtYy+fBb82B8t/4JrPYBv7cL + hZNYIHTRuedxwZUr8c9i0qARCDOJKAC14O/nNAaCKdgYCI6NQAgG03ne1NIHxiziwnyxcGix8DeNmiw2 + 69IIH7dXkRID5rXqzEdUVPwe/mfPX6usLOUiiocFwv1DBn5aKNMcTpy4g+xCcvwNSZSZafEFM8YqVp5l + uH5CqPPmm3dBJiaBMHVTIxBaAdEJhP/StcPzUkOn/z6+OPYgSgWbFUGsJkEYvzCCPngKd/Yh76JrOBmH + 6yg+iI1AmOLaQsiDxEYiaChWDFN3LUV8CITrkNRRVhyzna4m+B4Gyb3gMXg/eF/MvT+mBML+DTwYN7lF + By1FLR7CJIF9dz51MycUppzxxQkkMKCLig1ksLVFRntHFMxXEJ4FciFvJUdUCcyK1lNd0HONF4I2eKPv + Oi8M2OCFgWIxDFznKQTgiaEbPTFisydGb/V8TyIThESm7PfE5N25EbbSC4ETy6D5oBpoPLAemg5vgQbB + PqjoXwvV+vqjSXhNdFlQCH1X5BQScUNgpBc6L/6YQFqQQIQ8NAKpaySQutM9UGeyO8p0yoHcNfIhVbUm + +EfISlgtvwerrVGw2vhMWSG/dhsPx+TJkDZlSuTKlh3nzp4zjj7+MHVhtWm3AtNnHPrsFj52r/Lnx+XC + IhgANsQpBqN6zXlxzgmp32CREpjs79JI83GT9h1XKvcWrZTQoQnLUusdtFH9njEGSwiErihaIZs3WzbX + Y2HECXV8joMkl1B06bpW9ZEE0q3neuPWj5GoFogJgdD3HZ1AKPhoFfDcdBdtuhH/oOpj0fKrixZLQV1Q + hHn0rClq4u223VXCjv59xk04/+FLICYCufrsjSrjQmHM87KmFRefig/iQyAcM0mU15r9uZnAuMLiC8+E + GBiLMlhr5hbI0giEbjK6sBJyz3hPfIXwGL9ixh1jN18KppzxxQkkoGMnRSD26dLDyckO5QOzodksF3RY + 5oUua/IicIUQgFgF3aT1WuGpLIX+azwRLAQyWAgkVAhk+CZPjNwiJLLNE2OkkUQ0Ipm0zwMT9rpIc8b4 + PdkwaksmjNiaHd1m5ka94MqoOrAzSvUfgFIjR6LhmNJyHhd0EgJpLwTSVgiktRBIc41AZkUjELqu5P9i + DRyRokB1WK28C6tD+EAeG54qAvml1xQ4pkgGG+tUcLLPgKNHjhhHH398CKIHY9HiE8atn4d37/5AidLT + VJwiLgJ5+uy1SlOlKydbjpFqzkZMOC5ae+48o5XgLVJ8illXESfZMauJ1gfncSxeetL4Tfwwc/YRsSqG + quNYQiAkQcYxOLHREjBOQvJg0+aPJARTph6EnZCXIiKf+Xhjpp+JSSCcTEb3FAUSUzqj8z818nxGTZQa + aUIr+HbeeU8FuxkH2XrzU4HGNFOeh2NknIXn6rf/ocp2+pxFoKITCK2O2y/fqcytTCIcKWS77bqPlwlw + 0cSHQJiZxXPxOjLlOb7uKw1H7jNF10AOvEbmLCaNQLQxcyJkQhAo14VWJ0k27AvOtDfljC9OIJ07dFQE + Ypc6PbJks0eT6e5ov9xLCW//RZ7oKII8YInBtdRzuSd6r/RE39WeGLDW02CFbDBYIcOMJDJKLBGNSNiU + ZbJTiGeOC1qPqY42U1qi2YjqaDutJtpOrwrfwWVQxr8iinbviLqhJRC41FURCM9N66OVtGZzPNBEyKPh + TA80EKujron7ykf+91vohSJV0yJJUT8hjzew2vwSVnRfaQTSc7KRQKyRycERx44mPHtKI5C/Oo3XFGHD + dyhSYD9iiwVwdUMSDbXtATHsd+vWMxQqOkkJVK5FsmtPwqoWMzXYKUvc80A0AqGrq6iQGtNtLUFb/5Xv + CSRs+KeJAJZizdpzyvJhskCZctPVLP/oSEwC4ZwHCkA2/+13jVs/gKXKPURzptvFS4Q/02tJBvFt2qx3 + pq1SizYHClnuR6HMxuA4BS4zgZghxuysDddfqqygdxYGhE0JpLxYWDtvvVRxjixyfGrnPP6MMwlbcTM+ + BMJkBY6f+zaTsfxhYf+jg+RXQIiDx6JFc17GFx0agVDwV5Qxx9ey0sDZ6bw+JBFWKvhSMOWML04gPbt3 + R3ISSJr0yJjJHvXGuKKtEAaFd7uFBlcSXUq0QnosMxAIWz9aIUIig8QKMSWR4Zs9MUKIZKQQh2okle1C + IHOd0WiIL2qPmoFSvSahcv/uQh6V0WasG7rPzoi+yzOh50p3dIrwUqTFcxviHwYCYQCdBFI/WvzDZ4oH + fGd5os44Fzi7pMa/AmfB6qBYIduFSDYIidCF1SUcjsmTIm2KlMiTIycunL9gHH388S0QyLnzD1RAnP0o + KZbLQzNzQmhZMC7BWAkD5EzTNQfOnchXcIJyczm7jsGZMwl7cPftE6GRY4QiLEsJpHiJqRYTCLPENAJZ + sDDhCsCWrZdUrCm9QyhcPcbi8eNPfc2JRSBUgn1FmFKoUesfcfRTIXjobtT7iXJ0YXEuASfSxbdRmPE8 + DFbPFWEaE+jaYVkUZn25yjk5ZlouPAbHzsmFnOPQausdzJLjxJWxpREIBS5/x5L27AcFI91ljBN4i0De + eSv+Pv74EAjXZFfCeM5lNdM+oaAFpbmneH3M9VsjEPaNGWUJxayzT9R5SCA99vxNCGTMqFEqvdUujS0c + M9jBJ0wshSVeynXUVhpdSRTozIwytUKCNFeW0RIZLCRCdxZbmJFM2Pi3IpdtXgjbnAv9I3MjcFEFNJ3u + jyphfVB84GCUnjwS1QZVRcACZ3QS8mpvtD7YhxZzPdDMxH31PoBudF/Vk+/qz3FHowVu8JuYGaVaOCFt + sw74cephgytLCCRJqxAVRGetL083d1z7jLVBvgUCIVhqhPsz+2njxk8Jceu2y6psCQPo9f1iLgly8xMC + SViGGgVz5mzDlbVjKYFwtrilBNKw8QcCmTU74dfdlEA88443OycmsQjEIGiuK0FKwbbazDoj1HANFogI + 2kXXVCmPCSceqzIo8W3jpHE+wwkLguScSMdA7rxzTxEgFgz9/ewr4ygkFApHZgkx8L88lhnTGoGw/yRA + psCSNCadfCIW1z1liZAAmD5saSkXDfEhEE6s1LT5Hp+hzUcnkL1mgttfikCmnPpAICy++aVgyhlfnEAW + LVyoZmjbpbWRZouqQc5CIKL5GwX4eytEWqCQiBYLUa4sI4kMEAIJkUZrhERCi+RD88LQLWxuCN2UCyEr + MqL7TEf4T/ZA9SF+cB++Hq7T9qBs96roPC83Osq5teB5q/lCHnRfadbHdAN50OKoN8cTdcdkQ41+TqjQ + LRuKB3qiYO8ycOtUCbYVq+OnwcthteOtSuNNXsffkMabNDlKFisuQsMyv7s5fCsEwuKBjCOQIFq3XW7c + +gGdu6xR8QgK3IhYYjUszli46GS1Hy2VHfGYW2EKS2thJZRAOB6NQAYNsWzeiDksX3Ha4MKS4zAjS6vl + ZYrEIpBw0fRpGVCwlYqWoaSBKbaeCw2uHmrwnL38NcCJfseEUFhwkHM2GAeg1aTN5ibRmIMpgbDRDTfX + GBBmWmwlTnSU4/A60LUVH3dPfAiE/c4p5+e+DN4n1IV1/fk7FfugYGfdrStm4kMfubCEYC0t6hgdnO/D + /pJAeu/7mxDIzh07VHorS57bprRBmbY50EosEGY+vbdCjLEQptfSCum27AOJ0BKhO4sxEQbWlUVCt9Ym + IY2t7kIgOREUkQmdJudB09HVUHtsCCrOWo/iC86j0NStKD+8M5qPdEbXJbnQcam3OpcWPGcfSCC0PjQC + 8Z3hibLdcsG1oD3S12uI30On46fRG/DD1BOwWnQLVsufwGrbO2lvYLXphWqpi1WFY7IkSC5E6evjgz/+ + SNgNJr4VAqHrhT58zohnBhdnhWugW4p1oVKmCRFyMB8818AZ7tVrzTME0UUzj1icsCA6M8k4o9zSIHp8 + CWTYiJ0qe4qCv0OnhJflZ8oyrQ9aXH6sCWbmWUgMAmFtqjLGuARjDTG5KJhiy3pUFCRMsT0bQ3mOvxJ0 + vR25H4Wmm++o/vO6lJKx3BDhGh2mLiy64lgaxBSH7xvKfpAgKXCZGmtpfDs+BEJXE/vA8zDbLSFBe4KV + iD0XGgik0JJrqqpydGgEwjkcrKfFa5AQMDON5MEx0oL8UjDljC9OIJcvXUbOrNmQzjo1bJLbIH+NLGgR + 4YVmcz3U/AtaAhToGol0YTxELJHuJiTSx2iN9FstlogQx6BNzugxLyNaj8yFhoOqoH74UNSP2Ivaq26g + WuQlVJ02FXVGNkLrCW7osTgLuq9wM7iu5Pg8l7I+jOShWR+a+4qZV1VDnVGqfQ7kDAvEz2ELYLXstlga + gNWWKEMAfdNzWG14Bqutr/Hj0quwzekGB+uUKlmgV48expEnDN8KgRAUqhTYdBtxNrsGzo6noKU1wDLs + sYFpwK3EguGYGL8IGWTZvIzoaOu/Qv2exJAYBLJq9Vk1Vk4CLFdhZrznqmho3Wa5KrfC8cY01sQgkIEH + HyoNnu6c2NYDYX0rCmoKV1aGjc1d9FeDbq5aa26JAL+sXFssfx4dGoHw2pVcdt1sUUfOhWFqLIUyBSbd + W5YgPgTCTDItm401vyxx45nD9NMf3Eq0ZMyVzNcIhPs5yz2LacJhbOC15Zwdg3V2BSu/4H035YwvTiDv + 3r5F7Zo1kSJJEmWB5PZ2VAHrZiLAmwuJMAuKAl1zZZFEmJXFoDotEU7+6yUEQiLpt0G2z8mCBv3ywXdg + EJrO2Yr2+16hxY7nqNizK5qOKYv2k1wQOMsJfVZkRe+17ugS6a2OqeZ9GAPnPCfPzdhHY6P1wdnndabI + 5xwv1J/ljiqBDnAvYY9U5erj/808rshCZV29b2KJ7PwTP43ZBAfOsk+TBtbJU2DWjJnGkScM3xKBnDt3 + X1XGZaC8hlgR74wPNycMso9M8z16NG6fLAsjphHhTwFdpdocs5lJsYGz3fMWmKDSYxOLQC5degQPr3GK + GFkFgDGe+IIZZyxEyWNwHsrGTebnoHxpAmExQgpMEgIFIDOxYgNdXTwvSYQlMeILPgWcvU4yig0UWpZq + /xrYNxIIaz0xqB4dpgQSfSKhKXgcEiqFLmMLnN0eF+JDIBT0zThpUa4h92c8KL7gpWHhRa1eF/tsDhqB + aBMJ47q/5sC1WGixsa8sxPglLU9TzvjiBEIMCgkxpPIaA+m1h7mgmQhzzr0wRyJaZpYWWKc10meN7Dsi + N+oE9UDnjVfR5xzQ8zzQ+fQ7NN/7DBVDR4vQL4mGIXnQbmJOdJ6RFQGzsyBwuSs6r/B6Tx5a4FwrXULy + 0FJ368/3QrXBueHskhZJK7bE95OPwmrHHwby0NJ2TdueD7PQWaqeKbyfMweE+JYIhGjVZplyVVGonjp9 + TxUJ5IxtTgys3zAizomGBNcGySnntXMYaqzWe9r4jWUYMXKX6nt8amHFl0DowmYchFYOLatmLSON31iO + iZP2y3kHK/cVS9Oby8AiviSBzD37DO4LWefoqhKYFVbexK04SpPQOmEAneenYDr1MH7aMyfR0RfPgDcz + kFiCRANjKpNF4+cscJ91t3HxafwEFYsoUsg5MLvLTBzEUgJhWnCXnfeVJUMrofDS6zh6P/ZxmhIIkwvi + AuMg3DebaPS87lxIKj5goUO6r7JL/3g/YrIaTQmEcR/+fSme15WJC0w4oKXTWkgrvsQeG0w5I1EIZMvm + zbAVDd0QB7FFydY50Gyxl3If0Y1Egd56vsGdRUFPdxZJpJM0ZY0IkfRY5Y6Gg13RcPQs9Dj4Ej3OAoHS + /E+8RfMjr+F3Aqi07TkKzz2GAlPXocDk2cjXsz1KNs6NJoMd0GlBDnRY6qYywJov8PzIdVVvhicayLl9 + hmWGc8bf8Fup5mJdCHEIQRjcVWbIY/NLfLf5BdIUqQSnFMlUva+yJUuJdm2ZwIoJ3xqB0LVDwU83FgU5 + YxEUsNSyWcbEEpBkmjRfqs7PwDyD6tT4LcGOnfKCiqVD1xKzsBKLQIgjRz5UDCbRWVLKRcPefddVlhl/ + SwKZO++o8ZtPEZ1AOHs8vmBGU5dd943BZAN5ULOMXq48JtDyoHBlH1he/IUJCcQGFjjk/BKm79pMvahK + cZiC37PUu+20i8qKiE/hPuVe23RHaeQc0yYzFWotJRDi4as/1OxrTXBWX30z1rpfXMmPBMJ9B1lQ4uUJ + 3UJr5D7y+NKfnnvuq8WrLAFjHXXW3lbj4DlZdj4mmBIIrSlOmOT8nbgsQA1LREExpDgbkifWJcAFFhtM + OSNRCOTpkycoUrAQrJMlVwTiXMAJjWZ7opExBvGBRAxWAgPrnOinWSMakXRb6YGW43KiRrdSqD6gL+pO + 34pGWx6i4XGgtrTK0sqcBAqKXHOVdz/rznewmXgIDgEDka9TVVTsmBN+Ax3QckpWNJ8vVtACNzSe64oG + M/OgbGsHpK9aAz8FR+C7NQ9gtS3KvNWhtV3AP6fsRYb0dnAQcuR678H9BxhHnHB8awTCqrks884+0T1D + 4U8tvUixyapSrqXQCipSwJJ8GGc4cuS28VvzIHnldhmtUokbNIpQM8sTK4iuYfjInWqs7CeLN44esyfO + 5XkXLzmpqh1zXLw2LEFjbga6hugEEmGciMfZzNEbBTIbff1nHr1R/m/OtGbmDl1QJBAKIE7O233b8rkP + 9OFzJTseg/1oteVujOtdaGABv65ybmrd/B0LMV6X40THissv5JiGbCpmFs23oGwGLZc+e++LgDNMOGS6 + qrlso/gQCMFUXqb0sj/sM1N9Yypbz5RkLgbF8fmsu2VRhtq2Gy+RR4S6skSkMaU3rnLpnH3uu95APBxr + lVU31TopMUEjEFoqLAvDdVs4j4ZWRWwlVOhm4xwdJkuQkFnCpMOOu+p5+pIw5YxEIRCiT6/eSsgylTeD + TXpU7e+Mpgu90HCWkIgQCF1KzIpiaq0iErESmG7rb2KRqCD7Mg8ELM2F1hMzom5QdlQMKI9SQf1RcuoG + FFl+FXnXPoCLWAY5dv+JjAcAW7FMkh8B/m9tFP4ZvgfJA4Yia+OayOebByWaZEbhFnngUsQRaTxLwGrp + HcMkwS2vYicPBtB3A0kb9VDpuzapDasR7tktGz8T3xqBEMOGG4LpTE9l498JWbWQ652rculiTbDlcQ1H + 9x7rsXrNOVUJ+K4Q0pGjt5T2ztRh7ps0xQBwrXROJMwhxEABnZgEwvhMl25rVdkXjpNEUrX6HHDddi5G + xXgM11vfs/eaKlvCvmSQa8JikXTrcfGrmFxXGkwJhFolBUgLEeCs6BpTY7mMQiI4NYFPTZLCh0HVTjvu + 4VocgtQc6Bfnqng8Do/LKq9canXbzVdqfQ5mbLG0BjOOOIuZ2Vvcj9YHs6SYOWUOJD4KN0exQNhPtwUG + 7Xzj9ReKhHhcrdF9NvvsM7VCoUZMnKdirjwKEV8CIbbIsegiYl9ojXCM5qCVJyEhaAtDcVEpBsg5p2at + yUqGpmAaMbV7VR5f+s8Z8nSBcc0Vlh2htcGUZQb3OQNcI38qD8zgYon82KARCH/DJANmbnFxrHRiAZaT + exJ66JHq5yU5F2e20zU288xTZQlyHBwT7xlJ8c7L+D8nccGUMxKNQPbtNWjrdGXZprCBZ4XMaLzAC43n + eQqReKKFkEMrsTJaLxULJNIL/sbWcbk3OkR6K4uERNKehBLhhc7LvBGw3B0dFuVAy/GZUH9ILtQILoyy + PcqjYEcfuAR0ROZeI5A2dBl+n3oU/2+VCP19Qg5CKlarX+C7ibItdD1+mHAQP4w/hO8XXzVaHeYIw6SR + WLa/ww8Rl5A+ay44pk6lqg1Xq1wFr19b5j6IDQ0bL8Yvv/fFf34NUqvwfQkwzZZBaC4TSwLYH0t9K3Ng + MJ0z0/lbpuKyUjAFdUIwd94xtU4H3WB0i5EsecysOUaqOAnjHBTcvybpp87HTDDi2PHbilC4vbbPghgJ + 5MDBG6pmFpe0zZt/gpBn/AiEYLLAGFE28riFK8LiGujsLy0SlmNhU/GY9IMVwaVKy5UIR6J3n41ibcf9 + DDwTAiFp2M8waLvazGyuEx5T4zritDQoOCmk6Dtvs+1ugjJyTMG1IlhVlsdkP6iBU4BS4DK7iJ+ctc7v + HKS/PD9XxYtL6D2MeickYrBW2G8HIRM1b8N4XK2xfAcFI91d3I8kRaKJCbSSOHZeOwpilmaxBEw0YI0w + J7mOHCNLkUTXw2lx0IXG71VmlFgtHDuDz7w/JPKYwFUNtTVQeK9IDryOHC+vIS0xHpMz/1lmnhYBCSou + q4/QCIT3iNeHlhmtUT8hCN4Te+kbXVS8LjyXFiznPWN/eM/4rFhCtgmBKWckGoEwH963jo+hMq9YIA72 + dnAp6gSXEhnhWjojPCplglf1zMhbMzO8q2WGV8VMQjKZUMg3K+qG5VH1szqt8kanFdJWmjTZFrBG2jpP + dF7hgg6Lc6PtnGxoMTET/MKcULNPFpTr5o5CnYogS+M6+KXvDFhtemmIcewSMtkhn/z7kyyrmJqBiJK0 + HACnJL/CPp2Nmmk/b+5c40g/D/2Dt6jChIWKTo5xadj44tGjV2jafKmyQqrWmKuC4fEF3TIqwCzC3a9h + BN5+xnoCzNzy77BSrdWROdsI5aKips+WJftI5CswUaX+7t79YUb/uXMPlCXA+la9em/EmxjOf/rMPVSR + /YqXnqbG/Phxwkmd66H0F0uruFw3us+U9WTsJ/vMDDX2p1v3dTKm2N1xpngpBBW4S/opJEJLxJJWWxoF + N33lDN5SgHwpRwQFEt1MTTbdVeuhUwBRW1dNhA9nfFPbZ7kRrtfx3MJ7Txc9tXbOP6DgI2FQ0GnHppCj + T5+WD0udjD3+OM7y6xSCjNnw2jXffMfsvAlz4LWiVcDfsfFaXhJrJjpISB2lv7RySB4U+px4STfQoDjK + qNOi4troHAutRRIIx8lj8JPH4XVoK8KcRSVpqVkCUwIxXVGQcSuuaU/LooB8T2tDOx/7zpgYV3lkDMTS + cyUEppyRaARCbFy/AWmtU6m1QdKnsUVmG3uU88yGUu5ZUDRPFhTOlRkFc2ZSn8Xk/xKuWZA3a0bkyJJB + kUmpVtlRtn0OlO+YA+X8c6BMm+wo2TwbSjTLhqq9c6PBWFc0neWOZvM9VaC8hVgsbVe4o8U8ZxTpUxr2 + /v74d9hyIQtjQUQSAi0KzV218fmHKrsqcK65sWSbtl0U4v839yTsnDKL9WGtyKNUseJ49ixuP+/fFSSL + RmIZkUA4Sc7S4HlcuHv3OTZtuojly08rsmR21q5dV9W65N8SGAM5dOgmVq46a+zraaxYeUZVKuZaJf9N + YGxk+61XWH31ubJuVl95rlwx8V3AKDq40BNLuq8XQlkjxzU9Nl0vFsaDvxh4uthkKku+bJC+rpI+7rv7 + ymysJybwsKdF6DMJYLVxrDzOnjuvFMnEFzERiAZeu7OiUNAK4rVl47ktsW6+BEw5I1EJ5O3bt6hXty6S + /Pob7MUKsbdNj9qlcqNLfQ/413aDf50Prb326eOGxhXyoJhzZrhlcoQrW2bDJ//3yOIEz8xOyJkxA7Jl + sUd2lwzI4fmheZa2RZbapfH90K34Yeox/GPeSfy45BK+X/vQMJN8+1uDJcK2TawQxj/4qVqUNCEb1rza + LPty284/kbJKYziK9ZFesz7mzDGO8L8Thw/fUhlQtnahagb6/QdfNotDhw4dMSMuAvnaMOWMRCUQgrEQ + kke6VKlhm1aEu6M9mlXzQED9fOhULz8615dWj38bWnsfb/hL6+jrbfi7jtf71p5NtnWQ1qamFxpVcEed + 4i6oXtgZNYo4o2aRPCjtmhWZ7Z3wc9X2+ClkJX7tNBG/th+Nf/dbhP8LWYqfe0/Hb4FjkaxRNyTz7YRf + Asfj34Mi8a8xW/GPCbvxU9gq/NxjKv7Tdx7+Gb4Tv7cKgWOqlHCwsUHS335H9SpV8eqV5dkvf0f0Cdqo + /P2pxAKhS0eHDh1/HXQCiYYB/fojyc+/IINYIOlS2yCfS1a0rlMI1Uq4oKhXdhT1zIGyBXPDp5wH2voU + RGCj4ugiLaBhMdU6Gxv/5nddGxdH96Yl0atFSfRuWQpBrUqjjzR+9mtTRiycwijqkgm/lW0Mq4mnYbXw + Pr6fchbfTxCLJHQz/h04A7+0Goafekfgx9H78ePIPfhxxB78MGovfhy+Q/7eje+mX8RPfSNhn95eBc7T + WKeCo729EOI+46hiBrOg4psN9KVA99OdO88QFZWwh441sDy8x6nAdg7nUTh27FNfP8t+3Lr9NN4zzL8k + mDbLwo2vX39bL1digXNrLlx8qNKs44unz6JUTOlz4lj/63j+4g0uXHjwvjpDYkInkGh48vixmnSX7Fcu + dZse6W1skTFDBrjmzIpCXs4oX8QDVUp5q8+yhd1Qp3w+tPEtgS5NyqJ7iwro2aoi+rSpjF6tKyFAtrVr + UAot6hRDw2qF4FMhP2qU9kLl4h6oVMwNVUt4oGWd4gj2rwLfItmR3tkT33WdB6vJQiThB2A19iCsJhyH + 1aSTsBp/1LBtTLQ26RR+DN0EmzzecEqZHHbpbJH0l18xfFiYcUTmsXbdeTRoGKHWzahcdbaqzqoVEwwe + uBWjx3yc9rtw0Qm077jqo9ndLIdRrORUTJ/5cUrv4NBtCA37eHnYmbOOoHvP9UqY0m8/OHS7Wg2Qweey + FWaoDC9mM3HW9cBB21BdvuP3k6ccMB7hU/QO2mDImBLrg6m1puA5GPSvIONiwUT2c8LE/RbNTv9SeCEv + 8pCh29X5K1ebo+aX1GuwCCdPfbqY0tcG10zxrb9IxX403BHSY7Cf2WPxwc6dV1VZmOs34l/5eeSoXajv + F6FWqkwIWLo/OGQrgvrGXgctOjgxk89i3XoLUa3GXGXZXrxk2Zrsp0/fw+w5R+LdZ1ZBqFl7nnrW6/gu + UM8Jl2rmu8j6agmNYQ0esg0dO338riYWdAIxg8OHDiNrpsxIlTyF0RJJi6ql82FYTz8M6VofIQF1Vevj + XxsBzarCv1FFtGtYAW39yqO5TynUrlAQxfK6wCVHFuTOlhnO0txyZoO3ay4U9nZBuaLeKFPYC9kyOiFV + itSoVrYARvZpjE51iyF79uz4sWZXWPVfDavgNfguKNLQxML4LmiZSYuEVcg6/NBzEdK4FoJTiqRwkL7+ + /p9fUL+ub6yuq/4DtqjMHc6h4BoRbJ26rFHzHp6I1sjvOC/CFBTy3XqsM/4H3Lj+FCXLTEdy62D06bvR + uNVg0eQrMAGjw/cYt0Bp3uUrzVRrcvOhbtYiUsUrIpedxu4911QBxMZNl2DbdkONpwVCVkxFpfCNaVb4 + +vXnDbGPDKEqTZWzrTVclt9UrDJLvZwstc65JcEDt8BO9l0rvzMFX3pzZc0JphjHlCnFMcVmUfCYrMtV + rMQUFeDetfuakPBxRSCcp6Hh5cu3YgF+Grd5K/0yrcJtOvmPQlKDqZCgtWVuLLwnbLGhZ++NiuBMx7Rk + yUnkcQ9XpGJOGPFcpn3k+iK0HFjEsk7dBcatH2B6DI6Plq/pNp6bwpPPpQaOO6a5Kzw/Fw/j9dAsFh5v + mTxXO4TENPAevxAL1LSvpuAx8heciAHBm+VencGkyQdQtMRUlYl39eqH2ersH5UCU+uI5wsIXKvWquf1 + f/PG8B334b6xTdpk6Z1Zs49g3vxjakIs3wkS0QxRyNasOaf24dj4HJojJ57j7t2P7yvHwuw7lq7RQOs7 + pmf8c6ETSAxYHBGBNCmsVWYW4yK2adKhVoWiGNG3FcJ6Ncegbk0wuHsThPZshqG9mmFwjyYIDmyEoI71 + 0aVlLXRoUgMBLWqjR9u6sq0BQuS7IT2aIqx3c4wIaoGRchweo3bFYurYJJXwge0Q0rEuCufOgt9ci8Gq + dTisus7B9x0n44eOk6Tx09CsAmfjx3bhSJMnnypXQqLjZEjOqo9t0agFIsQ4Z8DcQkx8yOYvOK5eJi62 + pIELLbEUBierEXxpuEpep4DVCOy2Vn1qWLP2PDzzjvtIezp39r5aAY8uJrqd6HIylwasmdycj8GZ5dpD + z/M9fPhKvYx0i5B4eA5b+1BYpx2IIJOqu6/kJaYGSU3StGot3WS0QrQqtIFCZpyzQYHO8dLq0fZn2ivH + R+usSLEpalIewTXMqSU2b7lMaauFi02OMevrqIw1VbqBiuiig4KMwoXaNvvKOSHU9JnSTFCAtWy9DFGv + Df2JjDytxsOrQ5LlufuLsGNNq/ET9ikBS6FNC4Lry5OMOReFwo+TB7mOPIXh0LAd6njRQcHIWfxz5nys + NPj4LlTXlu4o3/oLccrEciK5c2IpsW//dfU9rT1aHs6u4VgqfSZ4/q7d1qFlm2WKVK5deyykfhI+8jcn + U5YTxUSzyI7IdXd2GSNKw0N1z6dOP6S0c6aO+4iGrglzCsQhYsFyXEyLZml/KiUEn1FfXiu5yDzG9BmH + 1ITKSlVmo0SpaWZXp1y34YJyhdLNqIHPKSe2zl94XP3P8ZJg+cxQQC9fbhgf16u3dxgKV/exajwb5Fgc + Hwmhts98dV1NlSlz4HNfWvafLuM1xbr1F1DPT+6p9JvPLrMANcybf1Q9i7yvVWvMwdmzhvT3zVsuqueJ + yxqwgCbfzUpVZ6O0XCNmK5JgviR0AokFY8eEq0q9NqnTKNdQ2lRpUbl0EYwK7oTJw3pg/NBuhhbaFROM + n9rfE8O6YqJ8Thgq/4fy0/D3+CGBQhQBqk0K645ZY4LQp3Mz5MyaBfk98mB4v/aYPqIHWtYohXTZ8uC7 + Sm3xXfNh+K7pUHzfeJBqVs2H41+1u8ImqzOcrMVKSm+n5rB4uXvgxImYF1CidcGHvGevDcYtn6KFCMcm + zZYY/zMgbNgOlBJrg0KPmCwClcKTbiIKZL6gGnhsh0xhygSnW4mNLzl/T9y6ZVgFkC8FX74tWy+/F5QE + X/oGDRcrE1wDz0OhXUMsCh6L648zZZcT/ShgHj78EMNZGnlKLS/LCYam4D7UKkkG1Hw5I7x12xXKIuE6 + 47RmLl1+qCYhFig0UWlw5y88UOMjifwhLzlTZDnHgoKY7ju63UqUnmrWEuHL6+41To0zVPbfteva+/kh + HGOHjquU63D7jivKQsmYeRgmGLXGGrXmolfvD/eIgpfWIUE3IidL9uu/GTNnHcamzReV9tum3XJladGa + HDlqtwjSK0o4051IwT9BiMY7/3jcMXFRaaBgcpLzUxBxtUfeMx6PkxJZ7+uWCNb8ck3WG5UOEjgVAhIt + J366yd9cq57nHyT31MUtXJEhlx/mhEtfIenJUw6q8i+sWUaht2LlWWV9sspwh44GBYSuF7qvCD5zLEmz + Qc5JlxiF+UC5F1wcqZ3/SiGEWWqsVEo4N6eLWAFEx86r0VRIixgQvEWRLK8RiYP3wVylg1ZC1iQ6U8uO + lmGBQpMwyehC3bTpgiLvY8fuKKXDr5Ghn7zWXvnGq3u4ecsl9Y7wutBFTCWCxM53JbZ1abbKOGj1XxMF + RQMtZ64aOU8UFFrXVarOUQoNwZpvPCarJOzafVWdn+8b0bf/JtU/WixlZOz+7VeqOUP7999Q7uAnFkwm + jQ90AokDoYMHq2KEaa2tlSWSJmUqFM3vhQ4tG6BjSz+0a+qrWqfWfujeoRn6BrZBcE9/DOzdAYN6dUBI + z/bo160tesh33K9RnSqoXqE0yhYriLLFC8GvdmUMGxCI8cP7okalcsjr5oKANo0wZ+IQDAxsCdfcufCv + XIXxffnW+N6nD75rMAC/lKwPe3tHOKW2fm95eLq54djRmIvkERQGnFFtqsmYglqLt2gvpqv4USsvL5qe + 5qZiOQ9OUmMpE1oZFGjUeIlXr94oM5zCJ1Q0NgqEwUO2w8Ep7CPtly9WQJc16oWgYOCys9oLxnIcfJko + HDQ8fWpwMfzfL0HvZ17TivERTZNWgQa+/+06rFQCODooODirnEKNgpfaqxZYP3X6rhKILFniU2+B9Gm0 + 0jhHjt6lyJEa59s3fyirpEdPgyAnKOSVZWAieExBQdKx8yq5frPUbPZGTRcrAUOhSMFp6h6hhjlOhDzn + mbh7jVXpyQSFCq0t3jPNPWHqXqQVQ7dP9C40bxkpRDtcESD34X3ivbl589MqsnTvsRoAZ9aTAIYM3YGy + om2TNEjez1+8VhosrcbbQowkDNbYIqiVh8r+Gnr32YDmRmuAAp8WlmZJMsWadbnWrjO4ZwhOAm0rhEBS + ZZyILh26LWnx7tv3IfbCGAFJhRo2rx2TL4hnz6IU4VO48zwc45o1Z5U1w3sa1zLFJNRCRSZ/UpqHxMSJ + pHxWSYZ0s/bqs1H1191zLHr0MjwHnHRKZUADBTfJJDhki9q3TLkZqCvWWWwupI6dVqt4pOamorJDRY/W + pYbhQrzl5X2h28tNzr9OCEoDrS9arASttUWLTihlkW5gHpfPW2zn/xyw3Atn7LMiASddxjXZ8q+GKWd8 + FQIhxo8dp1J738dEUqVBaiGSTA5OqFi2FKpXKo8yxYuidNEiKFeiGKpVLAvfWlXRpH5ttG7aAP4tGqND + 66YI8G+JPl07oH/PAPQM8Ec72V67WmUUK5Af1SuWQa8ubdC9U2u1rUblcurvUQN7omW9GnAXgkgnFkea + HB4qTdcxbVrY2dji959/QcG8+XH8mMHUjg18Cei+umFGiBD0HVNr1lwpxN7915WQp0ZPTZsvuYt7uNLY + KKToI+fMbIIakaf3eEVEGkgIdA9Qi4wOPtQkK1bUpUZKjBu/V2n8Dx99sCp4Xrp1qB3zZeFLGyECjMLN + FBRCJBUGz6ODmm3NOvPU39TQqKlp4Ep9nAVPjZjaMS0SkgzLtdAnvXvPVeXe8BZNjy8jQVcaZ4FTQ4wL + HCf3Y0FDapPUkv07fBA6p07dk2NPUFoy3RgUuhoh0AVTssw05e+mYKKgf2zUInlcCpro8arLVx4roUj3 + E/vPccwUwbzOjDuNhEYrafzEDz5zgsKvvVxngueuWn2uUgJodfUSkiAOHrypngWNlEhwPJZW7bdyldlK + Q9dAIU0Bp8UQ6LphVQPGWk6evKuIgAKdyQ5c40UDj8vxRC47ha7d16nrp4HnohVIFyXvDV1GjPeEDNyq + ntG4QKvI1cMQ59FApYmWLYUyFRQmc1CRoGuKzytddLQ26DosLuOlRUZQgeJvqBgxKM99OF7WKosJfI74 + zJmWBmKftHFooAuPrrBx4/cZFAZ51gleGz6HtLxpPZOgNcVk2/Yrqt98/2i5X7SwynR8wEmcrJ7M0if9 + 9j+I1zK9fwVMOeOrEQixLDJSrV5IbZ/FCenS4meZ4kUwdGAQlkfMxool87Bo7jTMmzkR82dNwsLZk+X/ + qYiYNw2L50/HkgXS5s/A0gUzELlwBpYtmqXazMnh6N29C3zr1FBkVK9WNdSvUxPVKlVA1Yrl0bldSzSu + W0uRhkMqazjY2iJd6jRI8suvqFmtOi5f+qCtx4YNYoZzzgRfRA105zBoRyEwfsJ+pf0/MD64dDdRU9di + HH37Gfzu1NSvXHkkguoRegdtVP5vak+dA9YojccUFDr0B796+VaZ9dFjH9R4STrXhXTot+fLQSGREFDo + 0hqiv1sLXpJkevTaoAQdTXm1AJRYWbvF9CcY0KZGu3bteRV4dcw0TLmVNJw1usKmzzishIXmQ6ZbhILn + pmjk0bF27blPYkws8EhyptBhQgK1boJWEH3TzZovfU+AzFYjmIpJYaT93679ivdkTTDAnzXHiPeaKu8B + Ne5DYr3QSjSNz1BzNVUMNNCy4Roqpi6/KyKA+PuN8rxoaNh4iSrI2LTF0vexIrpEaCnQGmDf6R6kAON5 + qMGzICWvuQYG6hmj0QiElg6fDV4TWiu1fOar7dT06a7UwOQNEgoFKp8P9oVaOt1ntIAYYyG4ZkpjsfII + xmcYw9Fw4sQdZd1FR7v2KxUpEuzXHlEiSBgU4FSExk/cp8jrnXH5X5IbSZv3jYSVS66TFuRfuvSUsvC1 + MZOwadHTFRoTVsj7QIviwoUPGV9Uoqi0PXpoOC6VCD6z92T8dBHTCtUUDD5XfCepZHWX68RniYrFiZMf + amPRWuRzfUAI/38NppzxVQmEOHL4ECqXr6gEtyG4bovUKayFTGxQvnQpDAzuh8glEdi8aT02bViL1auW + Y8WypVgeuVgISNrSCLNt5YpIbFy3GpvWr8biiAUYOXwY2rVpjUrlyqJowYIqyG6bJq2yfnhOFkhkld3+ + ffuKBhmzbzU6+OJTe6cPvYFo5NTQaGJT6FMTpUaZWcxeakTMIOKD2UKsDL4s9PnTdI9e7HCWaLj0wdM1 + RFcNtTQNPB+/62tMqaTfnm4kCg36ZnkOuse2b7+sUj4ZSGZGFYXEGSGphIAvNV8+CummzSOVhstgJlOE + CWa8sG4Uz8HYArW38LGGICezoZi5xfhIvQZisYjQoj+dApH9DQhco/Yj6IKjlm6u6BNTQBlT4bXlPnRz + Md6xdashy4znYyyF52ffeP21AC7JgvEQbq8ulohyoxy9LUT4RsWOSMIaKLS5P10VPAeFLjXvh9JfXksK + DcM5Fsi45n+0dryGnr03oL5YZHTRaaD1xXjRo8cfrEDGCSjoGODWQGuK7iwKW56DZEKBTAwdtlOd29S9 + t23bZTU2Xns/EXSVq82WZ+6GGoey5uYZCI8auKPsR0usXv1F6lN7Hmhx0LVGi6iWWJSOGcNUP/isUbBG + iiZO0FJg/KVCJUPqNDV4VlQ2Bd08JAeSGq8Xn0UmAjCrSnOR0brjM8nry+Pw2RoQYrBw9+69rt4l3lvG + zOhyY/yH46Miw2vDWElM8zF4aRjbotJgCt5vKhu0xElujB8yoE5QOaEXgZ4AXhtmGzIJgaTB/s+X55tx + jqIlpqh7wtgI+zdsxK73xP2/BFPO+OoEQjx58gShg4cgs5MTkvz8qzHAbqPcW3RzeXt4onnTZhg1aow8 + zMvFjN2Onbv2YtfufdJYdnuPaLrS5FPbvlO279i5W7TWLVgUsQRhQ8NUcceMDo4q5sLYCy0enoPzU0oV + L4716xKmpfMhomZEq4MZWcxaMX2wDosZTD80m+nSqQzEmqtyS8vl+PE7SsjyhXpljCsQdCuQcLT4BkmK + cRi+lHStMFVR04qpHVJrp9lNf7am6ScEdIfQZcO5JytXnlEvlwYKNVpNNPlJJszhN8VDscj4Ha8PP69d + e6IEHLV60ywd1p8yjWGYgjEbxnA4xtlzjyihb5qVxlTPVWvOYqacg9+ZpnryWnE+DtvpU/ewb79BwPLa + UTvW4jYaODa6DtlffmpuD07IW7b8tCIDzuGJKRZAtxmtE1PQwjTNuKK1xtTsLVs+tXR5rfmsrN9wQdXf + 0tyXx0Xjv2SGsHgsatS0grXngs8Jn0PtnjNQzmePVh/HwPRgBaMc5rPCmBYtVWak8fpRA98uz06Uyb3e + ueuKui503ZpaQhp4T1gUk/eK/aeSxOQHU5CYGG/gddy67ZIaIy0BQlksYsFyPBT6BIPadNXxmIxjxfSM + ECQQ/s4csZ/gMyzHYd+jH4PXSj2fYvFok4CpYPBdo8XN4+6Rd5HPH+9NdKXvfwmmnPFNEIiGI0eOoHWL + lnCwtVNurXTGQoxM/VWLU4nFkCdnbpQrUxZNGjVDt249MXhQqBDLaIwNn4Dw8HEYPmwkBgwIQaeOneHr + Uw9FChVBFqdMYtWkVMcgMbHxb57DNXcejB45Si2CpSP+4EtJLZqr++mwDLQsmcDAzJ+vjeVCJtTWmVlG + zZqpr//LwlFH3DDljG+KQDRwoaY2LVshe+YsKpU2xe9JlCVCMqGbyzoZl5RNqkggbUpr2AixkBTSp0un + 9ktDskhqWHaWFgYtGkVEsm8yIQ1uK5S/AIaK1XPtqvnsKR2WgX7+1avPKgtAh2Ug2XIC5F9RFiMuMFuO + CQ6ce8SkCtMMPB06zMGUM75JAtFw6uRJhI8erQoYZnHMqAiBhJIySTKkTp5SkQcJhaShPk3+JlmkEoJh + bIO/4Ta3PHnQolkzLIlYLGZqzEE4HTp06NBhHqac8U0TiIbXr1/j1ImTmDFtGgI6dUL1ylWQ19MT2TJl + hkN6O2VhsJE87MTSyJTBATmzZUfRQoVQz6euCoyvXLECN2/oprkOHTp0fA5MOeNvQSDRwSyUhw8fqlTb + kydO4ODBgzh44IBqrLl15vRpMcWv4/nzT1MMdejQoUNHwmHKGX9LAtGhQ4cOHV8HppyhE4gOHTp06LAY + ppyhE4gOHTp06LAYppyhE4gOHTp06LAYppyhE4gOHTp06LAYppzxEYHoTW9605ve9GZps3L3GfTK3Bd6 + 05ve9KY3vcXWrNzrDepi7gu96U1vetOb3mJsdQaF/3+sQImXkFn+kwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAAcgAAAE/CAYAAADCNlNLAAAAAXNSR0ICQMB9xQAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAAZdEVYdFNvZnR3YXJlAE1pY3Jvc29mdCBPZmZpY2V/7TVx + AAAJy0lEQVR4Xu3aRQJgVxmEUdzd3d2dMGApDFgG7tZAcHd3WEUI0AESLBCBdCCCLyG8GgJ13wLufwZn + WONvUne67DUX7gAA/ptAAkAhkABQCCQAFAIJAIVAAkCxDOSdf/RvANhea2AIJACjtQaGQAIwWmtgCCQA + o7UGxjKQdzlGALC71sAQSABGaw0MgQRgtNbAWAfyh/8CgO21BoZAAjBaa2AsA3nXYwQAu2sNDIEEYLTW + wBBIAEZrDQyBBGC01sBYB/IH/wSA7bUGxjKQdztGALC71sAQSABGaw0MgQRgtNbAEEgARmsNDIEEYLTW + wFgH8vvHEAA21xoYy0De/RgBwO5aA0MgARitNTBOAvkPANhea2AIJACjtQbGOpDfO4YAsLnWwBBIAEZr + DYxlIO9xjABgd62BIZAAjNYaGAIJwGitgbEO5HePIQBsrjUwBBKA0VoD4ySQfweA7bUGhkACMFprYCwD + ec9jBAC7aw2MdSC/cwwBYHOtgSGQAIzWGhgCCcBorYEhkACM1hoYAgnAaK2BsQzkvb79NwDYXmtgCCQA + o7UGhkACMFprYAgkAKO1BsYykPc+RgCwu9bAEEgARmsNDIEEYLTWwFgH8lt/BYDttQaGQAIwWmtgLAN5 + n2MEALtrDQyBBGC01sAQSABGaw0MgQRgtNbAWAfym7cDwPZaA2MZyPseIwDYXWtgCCQAo7UGhkACMFpr + YAgkAKO1BoZAAjBaa2AsA3m/b9wOANtrDYyTQN4GANtrDQyBBGC01sAQSABGaw0MgQRgtNbAWAby/l+/ + DQC21xoYAgnAaK2BIZAAjNYaGCeBvBUAttcaGAIJwGitgbEM5AO+disAbK81MAQSgNFaA0MgARitNTAE + EoDRWgPjJJC3AMD2WgNjGcgHfvUWANhea2AIJACjtQaGQAIwWmtgCCQAo7UGhkACMFprYAgkAKO1BsYy + kA/6yl8AYHutgSGQAIzWGhgCCcBorYEhkACM1hoYAgnAaK2BIZAAjNYaGMtAPvjLfwaA7bUGhkACMFpr + YAgkAKO1BoZAAjBaa2AIJACjtQaGQAIwWmtgCCQAo7UGxjKQD/nSzQCwvdbAEEgARmsNDIEEYLTWwBBI + AEZrDQyBBGC01sBYBvKhX7wZALbXGhgCCcBorYEhkACM1hoYJ4G8BADbaw0MgQRgtNbAWAbyYV+4BADb + aw0MgQRgtNbAEEgARmsNDIEEYLTWwBBIAEZrDYxlIB/++UsAsL3WwBBIAEZrDQyBBGC01sA4CeRNALC9 + 1sAQSABGaw2MZSAf8bmbAGB7rYEhkACM1hoYAgnAaK2BIZAAjNYaGAIJwGitgSGQAIzWGhjLQD7ys38C + gO21BoZAAjBaa2AIJACjtQaGQAIwWmtgCCQAo7UGhkACMFprYCwD+ajP/BEAttcaGAIJwGitgSGQAIzW + GhgCCcBorYEhkACM1hoYAgnAaK2BIZAAjNYaGMtAPvrTNwLA9loDQyABGK01MAQSgNFaA0MgARitNTAE + EoDRWgNjGcjHfOpGANhea2CcBPIGANhea2AIJACjtQaGQAIwWmtgCCQAo7UGxjKQj/3kDQCwvdbAEEgA + RmsNDIEEYLTWwDgJ5PUAsL3WwBBIAEZrDYxlIB/3iesBYHutgSGQAIzWGhgCCcBorYEhkACM1hoYJ4G8 + DgC21xoYy0A+/uPXAcD2WgNDIAEYrTUwBBKA0VoDQyABGK01MAQSgNFaA2MZyCccIwDYXWtgrAP5sT8A + wPZaA0MgARitNTAEEoDRWgNDIAEYrTUwloF84jECgN21BoZAAjBaa2CsA/nR3wPA9loDQyABGK01MAQS + gNFaA2MZyCcdIwDYXWtgCCQAo7UGhkACMFprYAgkAKO1BsY6kB+5FgC21xoYy0A++RgBwO5aA0MgARit + NTAEEoDRWgNDIAEYrTUwBBKA0VoDYxnIp3z4WgDYXmtgCCQAo7UGxkkgfwcA22sNDIEEYLTWwFgH8kPH + EAA21xoYAgnAaK2BIZAAjNYaGMtAPvUYAcDuWgNDIAEYrTUw1oG8/BgCwOZaA0MgARitNTAEEoDRWgPj + JJC/BYDttQbGMpBPO0YAsLvWwFgH8oPHEAA21xoYAgnAaK2BIZAAjNYaGAIJwGitgSGQAIzWGhjLQD79 + GAHA7loDYx3ID/wGALbXGhgCCcBorYEhkACM1hoYAgnAaK2BsQzkM44RAOyuNTAEEoDRWgNjHcj3/xoA + ttcaGAIJwGitgSGQAIzWGhjLQD7zGAHA7loDQyABGK01MAQSgNFaA0MgARitNTDWgbzwKwDYXmtgLAP5 + rGMEALtrDQyBBGC01sAQSABGaw0MgQRgtNbAEEgARmsNjGUgn/2+awBge62BIZAAjNYaGAIJwGitgSGQ + AIzWGhgCCcBorYGxDORz3nsNAGyvNTAEEoDRWgPjJJBXA8D2WgNDIAEYrTUwloF87nuuBoDttQaGQAIw + WmtgCCQAo7UGhkACMFprYAgkAKO1BsYykM979y8BYHutgSGQAIzWGhgCCcBorYEhkACM1hoYAgnAaK2B + IZAAjNYaGMtAPv9dvwCA7bUGhkACMFprYAgkAKO1BoZAAjBaa2AIJACjtQaGQAIwWmtgCCQAo7UGxjKQ + L3jnzwFge62BIZAAjNYaGAIJwGitgSGQAIzWGhgCCcBorYEhkACM1hoYy0C+8B1XAcD2WgNDIAEYrTUw + BBKA0VoDQyABGK01MAQSgNFaA0MgARitNTCWgXzR268CgO21BoZAAjBaa2CcBPIiAGyvNTAEEoDRWgND + IAEYrTUwloF88dsuAsD2WgNDIAEYrTUwBBKA0VoDQyABGK01MAQSgNFaA2MZyJe89SIAbK81MAQSgNFa + A+MkkD8DgO21BoZAAjBaa2AsA/nSYwQAu2sNjHUg33IMAWBzrYEhkACM1hoYAgnAaK2BIZAAjNYaGAIJ + wGitgbEM5Mve/FMA2F5rYAgkAKO1BoZAAjBaa2AIJACjtQaGQAIwWmtgCCQAo7UGhkACMFprYCwD+fI3 + /QQAttcaGAIJwGitgSGQAIzWGhgCCcBorYEhkACM1hoYAgnAaK2BsQzkK954JQBsrzUwBBKA0VoDQyAB + GK01MAQSgNFaA0MgARitNTAEEoDRWgNjGchXvuFKANhea2CcBPLHALC91sAQSABGaw0MgQRgtNbAEEgA + RmsNjGUgL3v9MQKA3bUGHgQSgNlaAw8ngbwCAPbXGngQSABmaw08CCQAs7UGHpaBfNXrrgCA7bUGhkAC + MFprYAgkAKO1BoZAAjBaa2CsTzoAMJhAAkAhkABQCCQA/I9Xv/ZygQSARiAB4P9cuOM/U5nuCjpw2RIA + AAAASUVORK5CYII= + + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAgBAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+Pj4APn5+QDw8PAA3NzcAMrKygCzsrMAnJudAIeGiQB2dXgAbWxvAF5d + YABRUFMAT05RAAAAAAEAAAADAAAAAwAAAAFOTVEAWFhbAGVlaABxcXQAfn2AAZGRkgCoqKkAwMDBANTU + 1QDl5eYA6unqAOno6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4+PgA+Pj4APn5+QDo6OgAxcXHAJ6dnwD7+/sA/f38APT0 + 9ADg4OAAAAAAEAAAADAAAABXAAAAgAAAAKgAAADLAAAA5wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA5wAAAMsAAACoAAAAgAAAAFcAAAAwAAAAEOnp6gDt7O0A7OvsAI6OkAC3t7gA29vcAOjo + 6QDl5eYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb3APb29wD4+PkA5+foAPv7 + +wD+//4A////APPz8wDPz9EAAAAACgAAADcAAAB8AAAAxQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAMUAAAB8AAAANwAAAArm5ucA8vLzAOzs7QCmpqcA1tbXAOXl5gDh4eIAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA3d3dAOLi4gD4+PkA+/v8AP///wDy8vMA6urqANra2gAAAAAlAAAAdgAAANYAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + ANYAAAB2AAAAJa+vrwDh4eEA7u7vAObm5wC/v78A7+/vAPr6+gD29vYAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNzc4Azc3OAM/P0ADf398A5+fmAPPz9ADs7O0A6OjpAAAA + ACUAAACGAAAA9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA9wAAAIYAAAAl19fYAMTE + xAD19fUA/v7+APf39wDr6+sA6urqAOrq6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAN3d3QDi4uIAAAAACgAAAGEAAADiAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADiAAAAYQAAAAr6+voA9vb2AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P0ADV1dYAzs7PANLS0wDX19gAAAAAGwAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQb/CwsN/hAQ + Ev4UExb9FhUZ/xcWGv8YFxv/GRgc/xgXG/8YFxz/GBcc/xgXG/8ZGBz/GBcb/xgXG/8YFxr/FhUY/xIR + FP8NDA7/BgYH/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAJEAAAAb8/PzAO7u7gDq6uoA9vX1APDv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4eHiAObm5wDe3t8A0tLTAN7e + 3wDJycoAAAAAIAAAAKgAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8EBAT/DQ0P/xQTFv8XFxr/GBgc/xkYHP8aGR3/Gxse/x4dIf8gHyP/IiEl/yQjJ/8nJin/JyYq/ykn + LP8oJyv/JyYp/yYlKP8jIiX/IB8k/x8eIv8cHCD/Gxoe/xkYHP8ZGBz/GRgc/xgXG/8UExb/Dg0P/wQE + BP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACoAAAAIOno + 6AD+/f0A8vHyAPr6+gAAAAAA/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA+fn5AP7+/gDh4eIA6urrAOXl5gDGxscAAAAAGAAAAKIAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJCv8UFBb/Gxoe/xwbH/8cGx//Hh0g/x8fI/8kIyf/Kykt/zIw + M/86OTz/Q0JE/0tKTP9SUFP/WFdZ/11cXf9gXmD/Y2Bj/2JgYv9fXV7/W1lc/1RTVf9OTVD/R0ZJ/z48 + QP82NTj/LSwv/ycmKf8iIST/Hx0h/x0cIP8cGx//HBsg/xsaHv8UFBb/CQkK/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAAABjq6eoA////AP///wD9/f0A1dTVAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+fkA/v7+AODg4QDi4uMAAAAABgAA + AIAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CAgJ/xUUF/8cGx//GRgc/xgX + G/8bGR3/IyEm/zMwNP9FREb/W1pb/3Bub/+DgIH/k5CQ/5+cnP+opaX/r6ys/7Sxsf+2tbT/ura1/7q3 + tv+7uLf/u7i3/7q3tf+4trX/trOz/7OvsP+sqan/pKGh/5iWl/+LiIn/end4/2VjZP9PTU//Ojg8/yoo + LP8eHSH/FxYb/xgXG/8cGx//Hh0h/xYWGP8ICAn/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAIAAAAAG/Pz8APr6+gDV1NUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADW1tYA1tbWAPr6+gD///8A4eHhAAAAAEkAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/EA8R/xkYHP8WFRn/FhUZ/x8eIf8wLzP/SUhK/2ViZP99en3/ko+Q/6Kgn/+uq6r/trKy/7u3 + t/+/u7r/wb28/8O/vv/DwL//xMHA/8TBwP/EwcD/w8G//8TBwP/EwcD/xMLA/8TCwP/EwL//xMC//8PA + vv/Bvr7/v7y7/726uP+5trT/sa+u/6elpP+al5f/iIWF/29tb/9UU1X/OTg7/yUkKP8bGh7/HBsf/x8e + Iv8eHSH/ERAS/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAABJ6OjoANXU + 1QD9/f0A/f39AP39/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoaCjANnZ2QDa2toA7u7tADc3OBYAAACtAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/ExMV/xgXG/8ZFxv/IR8j/y8vMv9GRUj/YV9h/3t6 + e/+TkpL/p6Wl/7Szs/++vLz/w8HA/8XDwv/EwsH/w8DB/8K/v//Avr3/v728/768vP+9u7v/vLu6/7y7 + uv+8u7r/vLq6/7y7uv+8u7r/vLu6/7y7uv+9vLv/vr28/7++vf/Av77/w8DA/8TCwf/EwsL/w8LB/8C/ + vv+6uLf/r62t/6Cfn/+Mi4z/cnJ0/1JSVf8yMTT/HRsf/xgXG/8bGh7/Hx4i/xUUFv8CAgP/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAAEP///wD///8A/v7+AOHh4QAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD19fUA9fX1APj4 + +ACfnqEAy8vMAMjIyAAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/FBMW/xwb + H/8eHCH/JCMn/zIyNv9MTFD/bG1v/42OkP+oqKn/uLi4/76+v/++vr//uru8/7i4uf+1trf/tbW2/7S1 + tf+1tLb/tbW2/7W1tv+1tbb/tbW2/7W1tv+1tbb/tbW2/7W1tv+1trb/tbW2/7W1tv+1tbb/tbW2/7W1 + tv+1tbb/tbW2/7W1tv+0tLX/s7S1/7W1tv+2t7j/ubq7/729vv+/wMD/vr+//7Sztf+bnJ3/cnJ0/0FB + Q/8nJir/JyYq/ygnK/8hICT/HBsf/x0cIP8UFBb/AgIC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAASfX19QD5+fkA4uLiAL29vgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX19QD19fUA+Pj4AKKipAAAAAADAAAAkQAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/EhEU/x4cIP8cGx//IB8j/zMxNv9WV1r/fICC/5ygov+usrT/srW3/7Cz + tf+tsLL/rK+x/6yvsv+rr7L/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yv + sf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rLCy/6yvsf+ssLL/rbCz/66y + tP+usrT/q6+x/6Cjpf+LjY//bm9y/1JSVv8+PUH/ODg8/0dITP9YWl7/TE1R/ycmKv8cGh7/HBoe/x4c + IP8gHiL/EhIU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAkQAAAAPe3t4Avb2+AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADl5eYA9fX1APX1 + 9QD5+fkAAAAAGAAAANYAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DAwN/xwbHv8ZGBz/Hh0h/zY3 + O/9aXmH/gISJ/5ieof+iqaz/pqyw/6essP+nrLD/pqqu/6Sqrv+iqq3/o6ms/6OprP+jqKz/oqmt/6Op + rf+jqa3/o6mt/6Oprf+jqa3/o6mt/6Kprf+jqa3/pKmt/6Sprf+kqa3/pKmt/6Sprf+jqa3/o6mt/6Kp + rf+iqKz/o6mt/6Sqrf+mrLD/qa+0/6mwtP+jqa7/k5mb/3p+gf9dX2L/RUVI/zc3O/87O0D/TlFV/2Vo + bf9xdXn/aGtv/1BRVf80NDj/Jycr/zk5Pf87PED/Li0x/x8dIf8fHiL/Hh0g/wwMDf8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAAABi9vb4AoqGjAKKhowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA1tbXAOXl5gDy8vID7e3tAAAAADcAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AgIC/xgXGv8eHSH/JCUp/zc5Pv9YXGH/eX+F/5OboP+hqrD/pq+1/6Wts/+iqrD/n6et/5+n + rf+gp63/oKiu/6Corv+hqa//oamv/6Gpr/+hqrD/oaqw/6GqsP+hqrD/oKmv/6Corv+fqK7/nqet/56l + q/+dpKr/nKSq/5yjqf+co6n/nKSq/52lq/+epqz/n6et/6Cprv+iqrD/oKmu/5igpv+IjpT/c3d8/1xf + Y/9KTVD/QkNH/0JFSf9OUFb/XWJo/2hsc/9nbHH/XWBl/05PVP9BQkb/QEFF/0xPVP9kaW7/fIKH/3R5 + f/9QUlf/KSkt/x0cIf8cHCL/HR0j/xgXGv8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + ADejoqQAnZyeAAAAAAD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJAMjIyQDW1tcA5eXmAN7e + 3wAAAABXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w0MDv8dHCD/HBse/x4dIf8tLjL/TlFW/250 + ev+Ah43/g4qQ/32Dif94foT/dnyC/3V6gP9zeX//c3l//3V6gP92fIL/eX+F/3uCiP99hIr/gIeO/4KK + kf+EjJP/h4+V/4mQl/+Kkpn/jJSb/46Xnv+RmqH/k5yj/5Wepv+Xoaj/lqGo/5egqP+WoKj/lqCn/5Se + pf+Tm6L/j5ee/4eOlf94foT/ZGhu/09SV/9AQkb/ODs//z5BRv9PVFn/ZGtw/3R7gv94f4X/bXJ4/1hd + Yf9ERkv/OjxB/0NGTP9dY2n/eYGH/4iQlv+CiZH/anB5/0dKU/8nKDD/Gxsh/x0dIf8dHSP/HR0j/x0d + I/8NDA7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAFe7urwA////AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAMjIyQDHx8gAyMjJANXV1gDW1tYAAAAAcQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8VFBf/Hhwg/x0cIP8cGh7/ISEl/zAxNf9DRUr/Q0VK/z4/RP85O0D/Nzk9/zc3PP82Njr/NTU6/zQ1 + Of80NTr/Nzg9/zo9Qf8+QUb/Q0ZL/0hKUP9MUFX/UFVa/1VaYP9ZXmX/XWJo/2Fmbf9lbHL/anF3/3B4 + fv92foT/fIWN/4KLkv+DjZT/goyT/4CIkf97hIz/dX2E/21zev9hZmz/T1JY/zg6P/8pKi7/Ly80/0NH + Tf9haW//fYeO/4yYn/+Hkpj/bXV8/0lMUv8xMzj/MzY6/0tPVP9rc3r/hpGZ/5Gdpf+Ejpb/Ymhv/zs9 + RP8kJSn/IB4g/yUhIP8qJR7/Misc/y8pHv8kIiH/HR0i/x4dI/8WFRj/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAHHv7+8A7e3tAPz8/AAAAAAA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJAMjIyQDHx8gAzs7PAAAA + AIAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8EBAT/Gxod/xwbH/8gHyP/Kisv/y4uM/8vMDX/MTI3/zI0 + Of8yNDn/NDY7/zU4Pf83O0D/Oz5E/z5CSP9DSE7/SU5U/01UWv9SWWD/Vl1k/1hgZ/9bYmn/W2Nr/1xk + a/9cZGv/XGRr/1phaf9YXmX/U1lg/01SWf9HTFL/QkVL/z5BRv89QEX/PkJH/z9CR/88PUP/Njg8/zEx + Nv8rLC//Jycq/yYmKv8uLjP/P0NI/1lfZ/9we4P/go+Y/4qYof+AjZX/Ympx/z5BRv8rKy//OjxC/1lh + aP9zfof/hJCZ/4uZov+Fk5v/ZGx0/zs/R/8hIin/JiEd/zovF/9PPBH/XUYN/2dMC/9yVAf/a08L/0w8 + FP8oJCD/Gxwj/xwdIv8cGx7/BAQE/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAICQkJIA/Pz8AAAA + AAD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAANXV1gDGxscAy8vMAMrKywAAAACGAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CgkL/xwb + H/8cGh7/LC0x/0pQV/9ganP/ZW94/2Vud/9lb3f/ZG93/2VveP9ncXr/aHN8/2p2fv9sd4H/bnqD/3F9 + hv90gIn/dYKM/3eEjf93ho//eYaQ/3mGkP95hpD/eYWQ/3mFkP94hZD/d4SO/3aDjP9zgIr/cHyG/2t3 + gf9ncXr/YGpz/1lia/9TXGP/TVRb/0dMU/9CR03/QERL/0FGTP9HTVP/UVhg/15ncP9teYL/e4mT/4aV + oP+CkJr/a3R8/0ZLUP8sLTH/Li80/0hOVf9ncnv/eoeR/4WUn/+HlqD/eISN/05WYf8tMTn/KSQf/z4w + Ev9ZQwr/blAH/3lXBP99WgL/gFwB/4NeAf+CXQH/dVUG/1lED/80Kxz/Hh4j/xobI/8fHiL/CgkL/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIb///8A////AP39/QD9/fwAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OEA09PUANPT1ADKyssAAAAAgAAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ND/8cGx//Hx4h/zE0Of9PWGD/bn2H/3yLl/9+jpr/fY2Z/36O + mf9+j5r/fo+b/36Pm/9/j5z/gJGc/4CRnP+AkZz/gJGc/4GRnf+AkZz/gJCc/3+QnP9/kJv/f5Cb/3+Q + mv9/j5v/gI+c/4CQnP+AkJz/gJGc/4CRnP+AkJz/f4+b/36Omf96i5b/doaQ/3GAi/9seoT/aHWA/2Zz + ff9nc33/aXaA/298h/92hJD/fIyY/4KTn/+Ckp7/c4GM/1dfZ/82OD3/IyMn/y4xNv9NVV7/bnyH/4CQ + nP+DlKD/fIyY/2d0f/9FTFb/Kyot/zMpFv9QPAz/b1IH/4BdA/+GYQD/h2AA/4VgAP+EYAD/g18A/4Rf + AP+FYAD/fVsD/2JJDf8+Mhn/JSIg/xsbI/8dHCP/Dg4Q/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AID7+/oA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADy8vIA8vLyAN7e3wDZ2doA19fYAAAAAHEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8REBL/HRwf/yAg + JP8yNjz/VWBq/3CBjf94i5n/dYeU/3SGk/90hZL/dIaR/3SGkv90hpL/c4WS/3SEkv90hZL/dIWR/3SF + kf9zhZD/c4WR/3OFkf90hZL/dIWS/3OGkv9zhpL/coaS/3OGkv90hZL/dIWS/3SFkv90hZL/dIWR/3OE + kf90hZH/c4WR/3SHkv91iJT/d4mX/3eKl/94i5j/eYyZ/3mLmf94i5j/eIqX/3eJl/92iJX/c4WS/2h2 + gv9JUVn/KSov/xwcH/8zNz3/WGRu/3KEkP95jZr/dYiV/3GCj/9danf/PURN/yclI/8/MRT/aE0K/4Vi + A/+MZgD/iGMB/4ZiAv+FYQL/hmIC/4ZiAv+GYgH/hWEC/4diAv+JZAH/imQB/3FUCv9JOhb/JiIh/x0c + I/8dHSP/Dw8R8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAHHq6uoA5ubmAKWlpgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8gDy8vIA4ODhAOTk5QAAAABXAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/EhIU/xwaHv8hICT/NTlB/1lodP9sf43/cIOR/21/jv9tgI7/bYCO/22B + jv9tgY7/bYGO/22Bjv9tgY7/bYGO/22Bjv9tgI7/bYCO/21/jf9sgI7/bYCO/22Bjv9tgY//boKQ/26C + kP9ugpD/boKQ/26Bj/9ugY//bYGP/26Bj/9tgI7/bIGP/22Ajv9tgI7/bX+N/22Ajv9tgI7/bYCO/22A + jv9tgI7/bICN/22Ajv9ugo//cIOS/2x/jf9baXX/OT9H/yAfJP8fHyP/OkFH/15uev9tgY7/cYWT/26C + kP9kdYL/SVRg/yowO/8oJCD/Uj8S/4NgB/+TbAL/k20C/5FrAv+QagP/kGsD/5FrA/+RawP/kWsD/5Fr + A/+RawP/kGoD/5BrAv+SawL/lW0B/4NhB/9XRBT/JiQh/xscI/8dHSL/EBAS5AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAFeUlJYApaWmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA9fb1APX29QDx8fIAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xISFP8bGR3/ISEm/zc/ + Rv9YaHT/ZXqK/2h+jf9nfIv/ZnuK/2Z8iv9mfIv/ZnyK/2Z8iv9mfIr/ZnyK/2Z7iv9mfIr/Z32L/2d9 + jP9ofo3/aH6N/2h+jf9nfYz/ZnyK/2R5h/9jd4b/ZHeG/2V5h/9le4n/ZnuK/2Z9jP9ofo3/aX+O/2mA + j/9qgZD/aoGQ/2qBkP9qgJD/aYCP/2h/jv9ofo7/Z32M/2h9jP9pf47/aYCR/2h+jf9cbnz/RlFc/y4x + N/8dGh//IyUq/z5HUP9cbnv/Z3yL/2uDkv9me4n/UWBu/y83Rv8fIi3/NSwb/2NLDf+QagT/nnMB/55z + Af+ccgH/m3IC/5tyAv+ccwL/nHIC/5xyAv+ccgL/nHIC/5xyAv+ccgL/nHIC/5xyAv+edAH/nnQB/49q + Bf9jTBD/LSge/xkaJP8cHCL/EhIV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADejo6QAxMTFAMTE + xQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ2cngCvrq8Ar6+wAAAAABgAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8RERL/Hhwg/yIiJ/83P0j/UWNw/2J5if9ieYn/YXeH/2B2hv9gd4f/YHeH/2F4 + hv9gd4f/YXiI/2J6if9jeor/YnqJ/2F5iP9fd4b/XXOC/1tvfv9ZbXr/VWd0/1Bhbf9LWWT/RFFb/z9J + U/89RU7/PUVO/z5HUP9ASVP/Qk1X/0VRW/9IVF//S1hj/05daf9RYW3/VGVy/1Zpd/9ZbXv/W3B+/15z + gv9fdoX/X3aF/11ygP9VZ3b/SVZh/zg/R/8lJyz/Gxgc/yUmK/8+SlP/WGx5/2V8jP9lfY3/W3F//0RT + Yv8sMj3/LSgg/0s5Ef92Vwj/m3IE/6x9AP+pegD/pnkA/6Z5Af+meQH/pnkB/6Z6Af+meQH/pnkB/6Z5 + Af+meQH/pnkB/6Z5Af+meQH/pnkB/6Z4Af+pfAD/qnwA/5txBP9nTxD/NC0d/xkaI/8cHCP/ERET/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2NiLCwsMAwMDCAOfn5wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADLy8wAmZeaAHx7fQAAAAADAAAA1gAAAP8AAAD/AAAA/wAAAP8AAAD/Dg4Q/x4eIf8hISX/MzxF/09i + cP9feIr/XXeI/1x0hP9cdIX/XHSF/1x1hf9cdYX/XXaF/1x1hf9bdIT/WnKB/1hvfv9XbXv/VGp4/1Jn + df9RZHL/T2Fv/0xea/9JWWX/Q1Jd/z5KVf83Qkv/MDhA/youNv8mJy3/IyQp/yMkKf8lJiv/Jigt/ygp + MP8qLTP/LTA3/zA1PP8zOUH/Nj5G/zpDTP8+SVL/Qk9Z/0VUX/9FU17/QEtV/zQ7Q/8mKC3/HBod/xsY + Gv8lJyv/P0tV/1Vsef9geor/XXWG/1Rqef89S1r/Ky81/zYrGP9nTQ7/l24G/7GAAP+2hAD/soEA/7CA + Af+wgAH/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/r4AA/7CA + Af+yggD/t4UA/6R4BP9sUxD/MSse/xsbI/8cHSP/CAgJxwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAA + AAPQ0NEA5eXlAPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvLzACioaMAo6KkAAAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/woJC/8eHCD/Hh4h/ycqL/9CUl7/U2p5/1ZvgP9Vb4D/Vm+A/1dwgv9WcIH/VnCB/1Zv + gP9Wbn//VGx8/09mdf9JXWv/RVZi/0NSXf9CUl7/Q1Vi/0haaP9KYG7/TWNy/09mdv9QaHf/UWh4/1Bo + eP9NY3P/R1ln/z1LVv82QEr/MTpB/y82Pf8rMTj/KSwz/yYoL/8kJSv/IiMo/yEhJP8gICP/HyAj/yAh + Jf8iIif/JCUq/yQkKf8hHyX/HRsg/x4cIP8fHiL/KCsx/z1LVf9Tanv/WXSF/1Zwgf9NZHT/NUJP/yUm + Lf9DNRb/hGML/7eGAv/AiwD/vYkA/7qIAP+6iAD/uogB/7qIAf+6iAH/uogB/7qIAf+6iAH/uogB/7qI + Af+6iAH/uogB/7qIAf+6iAH/uogB/7qIAf+6iAH/uYgB/7qHAP+7iAD/wowA/6t+BP9yVxD/KiYg/xwd + I/8dHSPuAAAAswAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAke3t7QDp6ekA/Pz8AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPf3 + 9wD39/cAysrLAMzMzQAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8EBAT/Hx4h/x0bH/8dGx7/IB8j/yot + M/8xOED/N0JL/zxKVv9BUl7/RFdk/0ZYZv9EVmT/P05b/zhFT/80PUb/MTlC/zQ+SP87SlX/Q1dl/0lg + cf9NZnj/T2l6/1BqfP9Qanz/UGp8/1Brff9Pa3z/UGx9/1Bsff9Qa33/T2l6/05neP9MZXX/SmNz/0lh + cP9HXWz/RVpp/0NXZf9BVGL/P1Fe/z1NWv87S1b/OUhU/zhGUf82RE//NkNO/zdDT/82Qk7/OEVR/ztL + Vv9DVmT/TWZ4/1Nugf9Ra3z/QVVk/ykzQv8jJCf/WUUV/5pyCP/EjwH/x5IA/8aSAP/EkAD/xJAB/8SR + Af/FkQH/xJAB/8OPAf/DjwH/w5AB/8OQAf/EkQH/xZAB/8WQAf/FkAH/xJEB/8ORAf/EkQH/xJEB/8WR + Af/EkAH/xJAB/8SQAP/GkQD/yZQA/7OEBf9vVhL/KCUg/xgZJP8dHSDVAAAA6QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAASfv7+wD8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP39/QDs7OwAAAAAEAAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/xsaHf8fHiL/Jiow/yw1Pf8nKzL/ISMn/yAgJP8iISX/JSUp/yYpLv8pLDP/KzA3/ysy + Of8sMzv/LTdA/zI+Sf83SFX/PlNi/0Rcbf9IYnT/SmZ5/0xoe/9LaHr/TGh7/0xoe/9LZ3r/S2d6/0tn + ev9LZ3r/TGh7/01pfP9Nan3/TWp9/01qff9NaXz/TWp8/0xpe/9LaHr/S2d5/0tmef9KZXj/SmR2/0lj + df9IYnT/R2Fz/0Zgcf9GX3H/R2By/0dgcv9IYXP/SWR1/0xoe/9ObH//SGBx/zJDVv8hKjn/Lyoh/2pR + Ef+ofAf/zZYB/9ObAP/PmAD/zZcB/86XAP/RmQD/05sA/9edAP/ZnwD/2p8A/9ygAP/coQD/2J8A/9Sc + AP/RmQD/0poA/9KaAP/SmgD/0psA/9KbAP/TmwD/05oA/9OaAP/TmwD/0poA/9GZAP/UmwD/05oA/7iI + Bf9iTRX/KCQh/xYYI/8cGx7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEMfHyQDf398A39/fAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANLS + 0wDPzs8Az8/QANjY2QAAAACtAAAA/wAAAP8AAAD/AAAA/wAAAP8VFBf/Hhwf/yUoMP8zQ07/PVVk/zZJ + V/8vPEf/KjQ8/ycuNf8nLDP/Jisz/yctNv8pMTr/LDdB/zA/Sv82SVf/PVRl/0Nfcf9HZXn/SGZ7/0dl + eP9GY3f/RmN2/0Vidf9GYnb/RmN2/0Zjdv9GY3b/RmN2/0Zjdv9GYnb/RmJ2/0Zidv9GYnX/RWJ2/0Zi + dv9GY3f/R2N3/0Zkd/9HZHj/R2R4/0dlef9IZnn/SGZ7/0hne/9IZ3z/SWd8/0hne/9JZ3z/SWh8/0lp + ff9JaX3/R2R4/z1Waf8rO03/Jikv/0E0Gf9/Xwz/xpIF/+SnAP/nqQD/4KQA/+CjAP/eogD/3aIA/9uf + AP/WnAH/z5cC/8aRBP+/jQX/u4oG/7yLBv/IkwT/1JwB/9uhAP/aoAD/2J4A/9adAf/WmwH/1JsB/9Sb + AP/TmgH/1JsB/9WcAf/WnQD/2p8A/9ygAP/gowD/4qUA/7GDB/9aRxf/Hx4i/xsbI/8WFRj/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAACtvr6/AOfn5wDn5+cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4Az8/QAJiXmQCXlpgAAAAASQAAAP8AAAD/AAAA/wAA + AP8AAAD/DQwN/x4dIP8gICX/Lz1K/z1Za/9EZXr/QmJ2/0Fecv89Wmz/PFZn/zxUZv87U2X/PFVo/z1Y + a/9AXHD/QWF1/0Njd/9DYnf/QWB1/0FgdP9AX3P/QV5y/0Ffc/9BX3P/QV9z/0Ffc/9BX3P/QV9z/0Ff + c/9BX3P/QV9z/0Ffc/9BX3P/QV9z/0Ffc/9BX3P/QF9z/0Ffc/9BX3T/QV90/0FgdP9BYHT/QV9z/0Ff + dP9BYHT/QWB0/0FgdP9BYHT/QGBz/0FfdP9AX3P/QV90/z9cb/83TV7/KTRB/yUkJf9UQRX/nnQL/9+i + Af/sqwH/5qgC/+CkAv/fogL/3qIC/9ugAv/WnAL/ypQE/7mIB/+jeQv/jGkN/3ldEf9sUxT/aFEV/4Nj + EP+qfQn/xJAF/8SQBv/DjwX/wo4G/8GNBf/CjwX/wo8E/8GQBP/AjgX/vYwF/7yKBf/DkAX/ypUE/9CY + A//VnAL/2Z8C/5NvDf9ANRz/GBkj/x4cI/8NDA7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABJzMzNAMzM + zAC6ursAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gDS0tMA0dHSAAAAAAYAAAD8AAAA/wAAAP8AAAD/AAAA/wICAv8eHCD/Hx4i/ykzPf82UWL/PF5y/zxb + cP88W3D/PFxx/zxccf89XHH/PVxx/z1ccv89XHH/PFxx/zxccP88XHH/O1tw/zxab/88W3D/PFtw/zxb + cP88Wm//PFtw/zxbcP88XHH/PFxx/zxdcf88XXH/PF1x/zxdcf88XXH/PFxy/zxccf88W3H/PFxw/zxb + cP87XHH/PFxx/zxdcv89XXP/PV5z/z1dcv89XHH/PFtw/ztab/88Wm7/PFlu/zxab/88Wm//O1lu/zpW + af81TFz/KzpH/yInMP8uKR//d1oR/7uMCP/XnwT/xpEF/66ACv+ddQz/lW8O/5RuDv+Zcg3/mnMM/5Rw + Df+HaA//emAS/3JaFP9tWBT/ZlMV/1ZHGP8/Nh3/PDMd/09BGf9qUxX/d1wT/4RnEP+RcQ//nHkM/6aA + Cv+rhAn/rYUI/6aBCv+VdQ3/fGIQ/3leEf9/YhH/h2cQ/49tD/+eeAv/mXQL/2tUFP8qJyD/Gxwi/x0d + Iv8BAQH+AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAAGeHd6ALq6uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8wDj5OMAAAAAgAAAAP8AAAD/AAAA/wAA + AP8AAAD/GBYZ/x8dIf8jKTD/MElY/zZXbP84WW//N1Zr/zdXbP83WG3/OFht/zhZbv84WW7/OFlu/zhZ + bv84WG3/N1ht/zdYbf83V2z/N1ds/zZXbP83V2z/N1hu/zhZb/84WnD/N1lv/zdYbf82WGz/N1ds/zdW + a/83V2z/N1dr/zdWbP83V2z/N1ds/zZXbP83WG3/OFlu/zdZbv83WGv/NVNm/zNNX/8xR1f/L0BP/yw6 + Sf8rNkP/KTNA/ykzP/8oMT//KTNA/ykzQP8oMD7/Jyo4/yIhLv8gGyT/MScb/2BLFP+NaQ7/lXEO/4hp + EP95XxL/dl0T/39kEf+RcQ7/poEL/7aNCf/Blgf/x5sG/8mdBf/Knwb/zaEG/9CiBv/Oogb/x5wH/7eR + Cf+siQv/rokK/7iRCP/CmAf/zaEF/9SmBf/bqwT/3q0D/+CwA//gsAL/368D/9ipBP/KnwX/xJoG/8OZ + B//Fmgf/yJ0G/82gBP/aqgP/wpcH/3dfE/8kISH/GRkj/xcXGv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AICkpKUAtra3APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+vr6AAAA + AADc3N0A5OTkAAAAABgAAAD/AAAA/wAAAP8AAAD/AAAA/wwMDf8eGx//IiQq/ys8Sf80VWn/NVhu/zRW + bP81Vmz/NVdt/zVYbf81WG3/NVht/zVXbf81V2z/NVds/zVXbP81Vmz/NVds/zRXbP81V23/NVdt/zVZ + b/80Vmz/Mk9i/y5FV/8rPk7/KztK/yo5SP8rN0f/KzdG/ys4R/8rOEb/KzdH/yo4SP8rOUn/KjpJ/ys7 + TP8sPU3/Kz1N/ys5R/8oMT//JSo2/yMlMP8iIyz/ISMq/yEkKP8gJSf/ICQn/yAkJ/8gJCf/ICQn/yAl + J/8hKif/HzQs/yU2Kv9MRRz/mnMK/7mOB/+0jQn/p4QM/6aEDP+siAz/uZIJ/8qeBv/aqgT/47ED/+m3 + Af/vugD/870A//fBAP/7xAD//cQA//3FAP/8xAD/+cEA//O+AP/xuwD/8bwA//S+AP/2wAD/+MEA//jC + AP/4wgD/+MMA//jDAP/4wgD/+cMA//fBAP/0vgD/8r0A//G8AP/xvQD/8bwA//fCAP/zvQH/w5gH/09B + Gv8gHiH/GRki/wwMDf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAABja2tsA/Pz8AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0AAAAAAMfHyAC/v8AAAAAAogAAAP8AAAD/AAAA/wAA + AP8AAAD/HRwf/x8gJP8nMjz/MlBj/zVZbv80WG3/M1Zs/zRXbP80V2z/NFds/zRXbP80V2v/NFds/zRX + bP80V2z/NFds/zRWbP80V2z/M1ds/zRWbP80VWv/MlJm/y5GV/8pNkP/JCky/yEjKv8hIyj/ICIn/yEi + Jv8hJCb/ISQn/yEjJv8hIib/ICIn/yEjKP8hIyj/ISMp/yEjKf8hIyn/ISIm/yAjI/8fJyT/IS0n/yI3 + LP8kQTH/Jkc2/ydMN/8nTTj/J045/ydNOP8mTTj/J1A6/ypeQP8sdU3/MXVL/1JwM/+dgxL/y58F/+Kw + AP/vuQD/+8MA///HAP//xwD//cUA//rDAP/4wQD/9b8A//O9AP/yvQD/8bwA//G8AP/wvAD/8LwA//G8 + AP/zvQD/9b8A//W/AP/0vgD/870A//G8AP/xvAD/8LwA//G8AP/xvAD/8bwA//C8AP/xvAD/8bwA//K9 + AP/zvQD/870A//O9AP/zvQD/8r0A//nCAP/uuQH/lXYP/zoxHf8WFyP/HRwg/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAovHw8QDn5+cAAAAAAPv7+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX1 + 9QAAAAAA9/f3AAAAACAAAAD/AAAA/wAAAP8AAAD/AAAA/xISFP8fHB//JCkw/y1AT/80VWr/M1Nn/zJR + ZP8xUGP/MU9i/zFOYf8xTmD/MExe/zBLXf8xTF7/ME1f/zFOYP8xT2L/MlBk/zFQZP8xT2P/MU1e/y5E + VP8oN0P/IiQs/yAfI/8hKCX/JDYu/yU/M/8lRDX/Jkc2/ydKOP8nSjn/J0k4/yZHN/8lRTb/JUM2/yVA + NP8lPTL/JDov/yQ6MP8mRTb/KllB/y1uS/8wgFX/Mo1b/zSXYP81nGP/Np5k/zafZP82oGT/Np9j/zWf + Y/82oGT/N6Rk/zipZv81pmb/N5Ra/0t2PP97chv/nHsM/7mQCP/YqQP/7LgB//K9AP/zvgD/8bwA//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8 + AP/xvQD/8b0A//G9AP/xvQD/8bwA//G9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/9L8A//S+ + AP/aqgP/alYV/yEgIf8ZGSP/EhIV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAILq6uwAAAAAA+/v6AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sAxMPFAPv7+wDOzc8AAAAAqAAAAP8AAAD/AAAA/wAA + AP8CAgL/Hh4i/x4aH/8hICj/JSo0/yYuOv8mKzj/JSk1/yMoM/8jJTH/IyQv/yMjLv8iIS3/IiAs/yIh + Lf8iIi3/IiMu/yMlMP8kKDP/Iyg0/yMmMf8iISz/IBwm/x8eJP8jNi//KlxC/zB+VP80j13/NJNg/zWW + Yv81mGP/Nplk/zaZZP82mGT/NZdj/zSWYv80lWP/NJRi/zSSYP8zkF//NJBf/zSXYv82nmf/N6Vq/zep + a/83q2z/OKpr/zeqav83qWn/OKlp/zipaf83qGj/OKlo/zmpaf85q2n/OKxo/ziuaf83q2j/NaBi/zaH + U/82bkT/O1o1/01RI/94YhT/xZkG//G8AP/0vgD/8bwA//G8AP/xvAD/8b0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8bwA//G8AP/xvAD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/xvQD/8bwA//G8AP/xvAD/8b0A//G8AP/xvAD/9L4A//bAAP+phgv/Sz8a/xMVI/8fHiP/AgIC/wAA + AP8AAAD/AAAA/wAAAP8AAACo7+7vAAAAAAD8/PsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gDe3t8D/v7+AAAAABsAAAD/AAAA/wAAAP8AAAD/AAAA/xUUF/8fHSH/Hx8j/yAkJv8hJij/ISYn/yEn + J/8hJyf/ISso/yItKf8iLSj/Ii8p/yIwKv8iMSr/IjAq/yIvKf8iLin/Iiwo/yErKf8iKyn/Iiwp/yIw + K/8kPjH/KVc//y97U/81mGP/N6ls/zmub/85r2//Oq9w/zqvcf86r3H/Oq9x/zqwcf86sHH/Oa9w/zmv + cf85r3H/Oa9w/zmucP85rXD/Oa9w/zmvcf85r3D/Oa5u/zmubv86rW3/Oa1t/zmubf85r23/ObBu/ziw + bf83rm3/Natr/zKlaf8unWb/K5Vj/yiOX/8lhlv/IXJT/yNdRv8vTjb/SEwk/3pkFP/HnAb/8b0A//O9 + AP/xvAD/8LsA//G8AP/xvAD/8bwA//G8AP/xvAD/8bwA//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7 + AP/yvQD/+cIA/92uA/+CaBH/IiAh/xwcI/8UFBf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAb/v7+ANPT + 0wD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7OzsAPLy8gLs7OwAAAAAkQAAAP8AAAD/AAAA/wAA + AP8CAgL/Hh0h/yEkJf8mRTT/KFQ7/ylVO/8pVTv/KVk9/ypcP/8rYUH/LGVE/yxoRf8sbEj/LW5J/y1v + Sv8tbkr/LW1J/yxrSP8rZ0f/K2RF/yxkRf8sZkj/LXBN/zGCWP81mmX/OK1v/zmxcf85rnD/Oatv/ziq + bv84q2//OKpv/ziqb/84q2//OKtv/zisb/85rG//OKxv/zisb/84q2//Oaxv/zmscP85rW//Oa1w/zet + b/83rG//Natv/zWqbv8zp23/MqRr/zCgaf8vm2b/LZVi/y2OXv8vh1n/MYBT/zV5Tf87ckf/Q24+/09t + Nf9fbiz/cXEi/4h5Gf+jhhH/w5oI/+KxAv/yvQD/870A//W/AP/3wAD/+MIA//fCAP/3wAD/9sAA//bA + AP/2wAD/9sAA//K9AP/yvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//G8AP/zvgD/+cIA/7eQCf9NPxv/Gxoj/xsb + I/8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAJH///8Ay8vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTk + 5AC7u7wAwMDCAAAAAAoAAAD/AAAA/wAAAP8AAAD/AAAA/xUSFf8fHyL/JTsw/zKEUf82n17/N59g/zef + YP83o2L/OKVk/zimZf84p2b/OKhn/ziqaP84q2n/OKxq/zisav84rGr/OKxs/zesbP84q23/OKxt/zis + bv85rnD/Oa9w/ziucP84q27/OKpt/zmqbv85q2//OKtv/zmscP85q3H/Oaxw/zmscf84rXH/OKxx/zmt + cv85rXH/Oa1x/zitcP84rXH/OKxx/zascf82rHH/Napv/zSmbf8zoGn/MJlm/y+PYP8uhFr/LXdT/y9s + S/8yYUL/OVk5/0ZVMf9WVyn/a18i/4VrHP+ffBT/uo4O/9KfB//krQL/8rkA//vCAP/8xAD/9sAA//S9 + AP/0vQD/9b4A//S+AP/zvQD/874A//W+AP/2vwD/9b8A//a/AP/1wAD/874A//K9AP/xvAD/8bwA//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/xvAD/8bwA//K9AP/8xQD/3q0E/4ttEP8jICL/Ghoj/xUUFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AAr5+fkA+fn5AAAAAAAAAAAAAAAAAAAAAAAAAAAA5OTkAHx8fgB/f4EAAAAAYQAAAP8AAAD/AAAA/wAA + AP8AAAD/Hxgg/yEoJ/8rYkH/Nptd/zinY/83o2L/OKNi/zilY/84pmT/OKZl/zimZv84p2f/OKho/zin + Z/84qGj/OKpq/zeqav84qmz/OKtt/zmrbv85q27/Oatu/zmqbf85q27/Oatv/zmrbv84q3D/Oaxx/zms + cf85rXH/Oa1y/zmtcv84rXL/Oa1y/zmtcv84rXL/OK1y/zmvc/85snX/ObR1/zavdP8vom7/KpBl/yqD + XP8weVX/PXRN/0lvRf9PaT7/WGU4/2VnNP94bS7/i3cs/5+EKf+ykSb/xZ0j/9WoHf/ishr/6rgV//C8 + Ev/0vg3/9L8J//O/Bf/0vgL/98AA//zFAP/9xAD/978A/+iyAP/PngP/s4gH/6V9CP+sggf/wJIG/8qa + Bf/HmQb/xJgG/86hBv/ptgD/8b0A//K9AP/xvAD/8b0A//G9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/8bwA//bAAP/yvQD/wJcH/0M4 + HP8eHSL/Gxsj/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAYdvb3ADV1tcAAAAAAAAAAAAAAAAAAAAAAAAA + AADn5+cAwsLDAK+vsAAAAADiAAAA/wAAAP8AAAD/AAAA/xAPEf8fGyH/JTow/zKEUv83omH/OKVj/zaj + Yf84pGP/OKRi/zelZP83pWX/N6Vm/zelZv84pmf/N6do/zeoaf83qGv/OKlr/zipbP85qW3/Oalt/zmp + bf85qW7/OKpu/zirb/85rHD/Oaxw/zmtcv85rXL/Oa1x/zmucv85rXL/OK1y/zitcv85rnP/OrJ2/zq1 + d/83tHj/Mqpy/yqZaf8nhV7/K3NS/zpqS/9VcEb/dH5F/5CMRf+ol0L/t54//76gO//Eojf/zaY0/9ar + L//fsi7/6Lgr/++8KP/zwCT/98Mf//jEG//4xBf/+sUU//zHEP//yQz//8oH//vDA//ttgD/1qIB/7iK + Bv+Xcwz/eGAT/11THP9JTCP/Qk0o/0hWKf9VXSb/WFMf/1RGGv9MPBj/W0UV/6iECv/ntwL/+sQA//C7 + AP/wvAD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//G8AP/yvQD/8rwA//nCAP/gsAP/eGAT/yolIf8XGCT/ERAS/wAAAP8AAAD/AAAA/wAA + AP8AAADinp6gAJiYmgDz8/MAAAAAAAAAAAAAAAAAAAAAAM3NzQDb29sAAAAAJQAAAP8AAAD/AAAA/wAA + AP8AAAD/HBce/yEmJv8pVj3/Npxe/zijYv83o2L/N6Ni/zikY/84pGP/OKVl/zimZv84pmf/OKZn/zen + aP83qGr/OKlr/zipbP85qmz/Oals/zmpbf85qW7/Oapu/zmrcP85rHH/Oaxx/zmtcv85rXL/Oa5y/zmt + c/84rXP/Oa1z/zmudP85sHX/OLJ3/zWwdf8wp3H/LZtq/y2NY/8zfln/QHVS/1VxS/9wdEb/j39F/7CT + Rv/Npkf/47ZI//LBR//5yEX//MtD//3NP//+zzv//s84//3PNP/9zDH/+sks//fGKP/1xST/98Yf//nH + G//5xBb/87wR/+axDf/SoQv/uI8M/5p8Ef96bhr/W2Im/0JaMf8vWDv/JVtD/yFiSf8hak3/JHBO/yVu + TP8jXUL/IE48/xY1NP8bIif/XEgW/8SYBv/4wgD/+cQA//jCAP/0vwD/8r0A//G8AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/wuwD/+MEA//C7 + Af+wign/QDYc/xgYI/8cGyD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAls7O0APb29gAAAAAAAAAAAAAA + AADh4eIAl5aZAKCfoQAAAACGAAAA/wAAAP8AAAD/AAAA/wgICf8eFx//JDgv/y90TP84pmP/OKVj/zaj + Yv84pGP/OKVk/zimZf84pmf/OKdo/zenaP84qGn/N6lq/ziqbP85qm3/Oalt/zmpbf85qW3/Oapu/zmr + cP85rHD/Oa1y/zmucv85rXL/Oa1z/zmtc/85rnP/OK10/ziudf85r3b/N7B3/zaudv8zqHP/Mp1r/zKK + YP84dVP/SWdJ/2VmRf+MeUn/t5VQ/92yWf/1yV3//dNc//7UWf/70VT/+c5P//fLS//2yUf/9MlC//TI + Pv/0xzr/88c1//TFMv/0xS7/9cUq//XFJ//zwyH/67sd/92uGf/DnBj/oIMZ/3VoH/9OVSn/MlA2/yRe + Rv8jclT/KIZc/y+XYf81omP/N6dk/zipZP84qGP/N6di/zWgXf80mVr/Ln9P/yVQPP8sMib/gmcR/8ue + Bf/rugL/874B//S+AP/zvgD/8bwA//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7AP/0vgD/9b8A/92sAv9jUBb/IiAi/xobI/8ICAn/AAAA/wAA + AP8AAAD/AAAA/wAAAIb29vYA6urqAAAAAAAAAAAAAAAAAOHh4gBsa24Abm1wAAAAAPcAAAD/AAAA/wAA + AP8AAAD/FhQY/x8bIf8oTjn/M49Y/zimY/84pWP/N6Ri/zilY/84pWX/OKZm/zimZ/83p2j/N6dp/zio + av83qWv/OKls/zmqbf85qm3/Oalt/zmqbv85q3D/Oaxx/zmscf85rXL/Oa5y/zmtc/85rnT/Oa50/zmu + df84rnb/OK93/zizev8zrXb/LJNo/y5zVf9CY0j/aGtI/5eEUv/CpF7/4b5o//DNbf/30mz/+dJo//jP + Y//2zF7/9cta//TLVf/1ylH/9cpN//TJSf/1ykX/9slB//XIPf/1yDn/98g1//nKMv/4yi3/7b0n/8Wb + If+UdB7/Zlwl/0ZfNv8zaEX/K3RR/yuEW/8wl2P/NKRo/zaoaf83qGj/N6dm/zemZP83pWP/OKNi/zii + Yf83omD/NqFe/zeiXf83olz/NJRX/ypnRf8vQSz/V0gZ/5BvDv+7kwn/26wD/++6AP/0vgD/8r0A//G8 + AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//K9 + AP/1vwD/874A/5BxEP84MR7/FBcj/xYVGf8AAAD/AAAA/wAAAP8AAAD/AAAA98rKywDAwMEAAAAAAAAA + AAAAAAAA4uLjAMfHyQAAAAAlAAAA/wAAAP8AAAD/AAAA/wAAAP8fGiD/ISkn/y1nRP83oWH/OKVj/zil + Yv83pWT/OKZl/zilZv84pmf/OKZo/zenaf83qWv/N6lr/zipbP85qWz/Oalt/zmrb/85q2//Oaxx/zmt + cv85rXL/Oa1y/zmtc/85rnT/Oa91/zmvdv85r3f/Oa94/zixef84sXj/Nady/0GKYf9jfVj/kYtc/7ij + Z//Ut27/58Vx//PNc//50nP/+dRx//nTb//40Gv/9s1m//XMYf/0y1z/9MtY//fOVf/80VL//dNP///T + Sv//z0T//ck9//jEOP/xvDP/3awt/7aPKP99ZCT/T0wp/zhUOf8xc07/MZFh/zGdaP8yomv/NKZs/zWq + a/83qmr/N6pp/zioaP84p2f/OKZk/zekY/84o2L/OKJh/zihYP83ol//OKFe/zeiXP83oVz/NJdY/y5/ + T/8tXD3/Mjwo/z4yG/9xWRT/xpwH//zEAP/zvQD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/8bwA//S/AP/4wgD/u5IJ/1ZHGf8VFyT/Hh0j/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAJYqKiwD29vYAAAAAAAAAAADKycsA2NfZAAAAAHYAAAD/AAAA/wAA + AP8AAAD/CQkL/x4ZH/8lPzH/MX1Q/zipZf84pGL/N6Vj/zilZv84pmf/N6Zn/zimaP84p2r/N6lr/ziq + bf84qm3/Oals/zmpbf85qm7/Oaxx/zmtcv85rXL/Oa1z/zmtc/85rXP/Oa51/zmvdv85sHf/ObB4/zmw + eP85sXn/OLN6/zWsdv8xe1j/dYFa/7ula//ix3v/9tF///3Zf//92n3/+9d6//fSdf/10HH/9M9u//XO + a//1zWj/9s5l//vRYv/80V7/98tW/+q9Tf/YrkX/yaNA/7udPv+xmz3/pZo//5WTPv99hD3/W3I+/zZi + Qv8naE//J4Be/y6da/81rXH/OLBx/zqwcf86rm7/OKtr/zioaf83p2f/N6Zn/zilZ/84pWX/OKVk/zik + Y/84o2L/OKJh/zihYP84oF7/N6Bc/zegXP85pV3/NqRe/y2IVf8fUkD/EhYl/ygfHv+GaRD/4bAD//zF + AP/3wQD/8r0A//G8AP/xvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/wuwD/8r4A//fBAP/drAP/d2AU/yAeIv8cHCL/CQkL/wAAAP8AAAD/AAAA/wAAAP8AAAB2vLy9APj4 + +AAAAAAA+Pj4AJqZmwCjoqUAAAAA1gAAAP8AAAD/AAAA/wAAAP8WFBf/Hhwh/ylWPf8zkFn/OKpm/zil + Y/82pGX/OKZn/zinaP82p2j/OKdp/zepa/85qmz/Oalt/zmpbv85qW3/Oapu/zmscP85rXL/Oa5y/zmt + cv85rXP/Oa51/zmudf85r3f/ObB4/zmxef85sXn/ObB5/ziyev84tXz/NKp2/y9kTP+Ee1b/1LZ0//Xf + if/+3Ib/+teA//fTfP/30nn/9tB2//XQc//0z3D/9c9t//bPa//3zmf/78hh/925WP/Bo07/oY1F/4R9 + Qf9tdkL/XHhI/1GAT/9Ghlf/OYVa/y6CXf8ohmL/LJhq/zWqcv86tHX/OrJz/zmsb/84qW7/OKht/zip + bf85qWz/N6lr/zioaP82p2f/OKVm/zilZ/84pmX/OKVj/zikYv84o2L/OKJh/ziiYP84oV7/N59c/zef + W/83pF7/OKNd/zOGUP8kQTP/Fxsm/0U1Gv+WdQ3/3a0D//C8AP/2wQD/9sAA//S+AP/yvQD/8bwA//G8 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8AP/xvAD/9L4A//K8AP+ZeQ7/NS4e/xka + I/8UFBn/AAAA/wAAAP8AAAD/AAAA/wAAANb6+vsA7e3uAAAAAAD4+PgAf36AAAAAAAoAAAD/AAAA/wAA + AP8AAAD/AAAA/x4bH/8gJCX/LWxJ/zadYP84qGb/OKVl/zelZv84pmf/N6do/zeoaf84qGr/OKls/zmp + bP85qW3/Oapu/zmrb/85rHH/Oa1y/zmtc/85rnL/Oa10/zmudf85sHb/ObB3/zmweP85sXn/ObJ5/zmy + ev85sXv/OLJ8/zi1fv83sXz/L41n/z9pT/95dVL/w6ds/+3Of//42IL/+tZ///jTe//30nj/9tF1//XQ + cv/20XD/9s9t/+nEZf+1nFP/eXZG/0liQ/8yZkz/KnhZ/yuMZv8unnH/MKp3/zKvef80snn/NrJ5/zmz + eP84snf/OK90/ziuc/85rXL/Oaxx/zirb/85qm7/Oalt/zmqbf84qWz/OKlq/zeoaf83pmf/OKZn/zim + Zv84pWT/OKRj/zijYv84o2L/OKJh/zihX/83n13/OJ9c/zefW/83olz/Np5a/zGBTv8lSDf/HiQn/zgu + Hf98YRD/wJcG/+e2Av/2wAD/9r8A//K9AP/yvQD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8bwA//G8AP/yvQD/+8MA/7aQCf9TRRj/Fxgj/xsaIf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AArQ0NEAAAAAAPj4+ADi4uIAAAAANwAAAP8AAAD/AAAA/wAAAP8EAwT/Hxsh/yQyLP8xf1H/N6Zk/zin + Zv84pmb/N6Vm/zilZv83pmf/N6hq/zepa/84qmz/Oals/zmpbf85qm//Oatx/zmtcv85rnP/Oa1z/zmt + c/85rnX/Oa92/zmxeP85sXj/ObB4/zmxef85snr/ObN8/zmzff84tH7/OLV//zi1f/83s37/M6By/zaC + X/9ObE//hHtV/8KjaP/sxXf//dd///3cf//92Hv/+dR2//rVdP/wymz/o4lO/0ZZQf8fZ1H/JJVu/yup + ev8ws3//NLeA/za3fv82s3z/N7J6/zeyef84snn/ObF3/zmwd/85rnT/OK1y/zitcf85rHH/Oaxx/zmq + b/85qW3/Oapt/ziobP84qWv/N6hq/zenaP84pmf/OKVn/zimZv84pGT/OKNi/zijYv84omH/OKFg/zif + Xv84n1v/N55a/zefW/83oVv/N6Bb/zSOVP8sbkf/Jks4/yozJ/9ENxr/dFcQ/6yECf/crAP/9L4A//W/ + AP/yvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8LsA//G8AP/8xAD/0KIF/3Nd + FP8aGST/HBsj/wQEBP8AAAD/AAAA/wAAAP8AAAD/AAAAN62srgAAAAAA39/gAOfm5wAAAAB8AAAA/wAA + AP8AAAD/AAAA/w4MD/8eHiL/JkQ0/zOOWP84qmb/N6Zl/zilZ/84pWb/N6do/zeoaf83qWz/OKls/zmp + bP85qW3/Oatv/zmrcP85rHL/Oa1y/zmtc/85rnX/Oa51/zmvd/85sHj/ObF5/zmyef85snr/ObN7/zm0 + ff85tH7/ObV//zm1f/84tH7/OLZ//zm5gv81uIH/L6h4/y6Sa/8+gl//Xn1Z/4KBWP+mkV7/yKlm/+i+ + b//6znT//9p3//jVcv/Ao1v/dnZL/1J1UP9Nj2H/Q5dp/zOXbf8rm3L/K6V3/zCwff82tn7/OLZ8/zqz + ev85sHf/Oa94/ziudf85rnT/Oa1z/zmtcv85rXL/Oaxx/zmrb/85qW3/Oalt/zmpbf84qWz/N6hq/zin + aP83pmj/OKVn/zilZv84pGT/OKNi/zijYf84omH/OKBf/zigXf84n1v/N55a/zifW/84o13/N6Rd/zab + Wv8xiFP/J25K/yFVP/8mQDH/Ojsi/2BOF/+ZeQ7/16gE//K9AP/yvQD/8r0A//G8AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/xvAD/8r0A//rCAP/isAP/knQP/yQhIv8bGyP/Dg0Q/wAAAP8AAAD/AAAA/wAA + AP8AAAB8goKEAPr6+gCysbMAtrW2AAAAAMUAAAD/AAAA/wAAAP8AAAD/FhMX/x8iJP8pWT//NZhd/zis + Z/82pWb/OKZn/zemZ/83qGn/OKlr/ziobf85qm3/Oalt/zmqbv85rHD/Oaxx/zmtcv85rXP/Oa50/zmv + dv85r3f/ObB4/zmxef85sXr/ObJ7/zmzff85tH7/ObV//zm1f/85tYD/ObWA/zm1f/84toD/OLaA/zm5 + g/85vYb/Nr2G/yyqe/8pjmn/Mnlc/0t1Vv9vgFj/lJBd/7ejY//Qs2f/4MBq/+e/Z//TsmD/vadb/6yh + WP+WmVf/doxX/1qHWv9Fi2D/OJRq/zGecf8wqHf/MrB6/za0e/84s3r/OLF4/zmvdv84rnT/Oa1z/zmt + cv85rXL/Oaxx/zmqbv85qm7/Oalu/zmpbf84qWv/OKhp/zanaP84pmj/OKZn/zilZf84pGP/OKRi/zij + Yv84oWD/OKFf/zigXP84nlv/N55a/zifW/83o1z/Oahf/zmqYP84ol3/NpBT/y5oQ/8sQC7/QDUc/3lg + Ev/LnwX/8b0A//O+AP/xvAD/8LsA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7AP/yvQD/9r8A/+66 + Af+siAv/NC0f/xwcI/8VFRr/AAAA/wAAAP8AAAD/AAAA/wAAAMWjo6UA+/v7AIKBgwCFhIYAAAAA/wAA + AP8AAAD/AAAA/wAAAP8cGB3/ISgn/y1tSf82n2H/OKto/zelZv84pmf/N6dp/zeoa/84qmz/OKlt/zmp + bf85q2//Oaxw/zmtcf85rXL/Oa1z/zmudf85r3b/ObB4/zmweP85sXn/ObJ6/zmze/85s33/ObV//zm1 + f/85tX//ObaA/zm1gP85toH/ObeC/zi3g/85uIP/ObiE/zi4hP84uYX/OL6H/ze/if8yt4X/K6V6/ymP + a/8ve13/R3RV/2p7VP+Vjlj/wahh/97AaP/rzmr/8tBn//bJYf/mu1n/xKZS/5mRTf9wgU3/Tn9V/zuM + Yv8znnD/M6x3/zWxev82snn/OLB3/zmwdv85rnT/OK1z/zitcv85rXH/Oaxw/zmrb/85qW3/Oals/zip + bP84qGv/N6hp/zemZ/84pWb/OKVl/zilZP84pGL/OKNh/ziiYf84omD/OKBd/zefXP83n1v/OKBc/zee + Wv81l1j/MotT/zODTf9TkUP/fJwz/5mVHv+siAv/xZsG/+SzAf/yvQD/8r0A//K9AP/xvAD/8bwA//G8 + AP/xvAD/8bwA//G8AP/xvAD/8bwA//K9AP/yvAD/9r8A/8KYB/9KPhv/Hh0i/xgYIf8AAAD/AAAA/wAA + AP8AAAD/AAAA//v7+wD39/cAY2JlAAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/x8aIP8iLyr/MH1R/zaj + ZP83qmj/N6Zn/zinaP83p2n/OKlr/zmpbf85qW3/Oapu/zmrcP85rHH/Oa1y/zmtcv85rXT/Oa92/zmw + d/85sHj/ObF5/zmxev85snv/ObN9/zm0fv85tX//ObV//zm2f/85toD/ObaB/zm3gv85uIP/ObiE/zm5 + hf85uYX/OLmE/zm6hf85uob/OLqG/zi6h/83u4f/N7uG/zW3hf8yrX//Mp91/zaOaP9GgF3/YX1U/4SF + Uf+sllP/0qxX/+/BXP/1zV3/8M9c/+fGVv/Lr0//oJVI/22ASv9DflX/LpFo/y6odv81s3v/ObR6/ziv + dv84rXT/Oa1z/zitcv85rHH/Oatw/zmqbv85qW3/OKls/zipa/83qGn/N6do/zimZ/84pWb/OKVk/zik + Y/84o2L/OKJh/ziiYf84oF//N59c/zegW/84oFz/MoVP/ypZPf8gMy7/Iion/2FRGf/AmQv/78ME//LF + Af/1xgD/+MQA//jBAP/2vwD/874A//K9AP/yvQD/8bwA//K9AP/yvQD/8r0A//K9AP/xvAD/8r0A//G8 + AP/6wwD/0aUF/2NQFv8gHiL/GBkk/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEOnp6QC3trgAAAAAMAAA + AP8AAAD/AAAA/wAAAP8GBQb/Hhwh/yQ5L/8zi1j/N6Zm/zipaP82pmf/OKdp/zeoa/84qWz/Oalt/zmp + bf85qm//Oaxx/zmtcv85rXL/Oa1z/zmudf85sHf/ObF5/zmxef85sXn/ObJ7/zm0ff85tX7/ObV//zm1 + f/85tYD/ObaB/zm3gv85uIP/ObmE/zm4hf85uYX/ObmF/zm6hv85uYf/ObqI/zm6h/84uof/ObuI/zm8 + if85vor/N76L/zW8iv8zt4b/MLGC/zGofP82oHX/Ppds/02OY/9iiVv/folT/5uRT/+4nk3/1axM/+e1 + TP/ouEn/2LJG/7ikRv+Ikkn/U4VT/zOLYv8qn3L/NLN7/zizef85r3T/OK1x/zmtcv85rHH/Oatv/zmp + bf85qW3/N6ls/zepav82qGj/OKZn/zilZ/84pWb/OKRk/zijYv84o2L/OKNi/zihYP82oF7/OKBc/zig + XP80jFP/LWtE/yVJNv8jNi7/Ojsj/29cF/+WeA7/rIgJ/8GUBP/TnwL/4aoA/+yyAP/0uQD/+b4A//zC + AP/9xAD//cYA//3FAP/6xAD/9cAA//K9AP/yvQD/8LsA//vEAP/drQP/fGMS/yQiIf8XGCT/BgYG/wAA + AP8AAAD/AAAA/wAAAP8AAAAw2NjZAODg4QAAAABXAAAA/wAAAP8AAAD/AAAA/wwLDf8fICP/JkQ1/zSV + Xf84p2f/N6ho/zenaP84qGr/OKls/zmpbf85qW3/Oapu/zmrcP85rXL/Oa5z/zmtc/85rnT/Oa92/zmx + eP85sXr/ObF6/zmxe/85s33/ObV+/zm1f/85tn//ObWA/zm2gf85t4P/ObiD/zm5hP85uoX/ObmG/zm6 + h/85uof/ObuH/zm6iP85uon/ObuJ/zm7if85u4r/OLuK/zi7iv84u4r/ObyK/zq+i/85wIz/OMGM/zO8 + iv8ttIT/K6h8/y6bc/83jmn/R4hg/12GWP93i1P/lZlR/7ClT//Dq0n/yqdC/7+bPP+gkD7/doZG/0yE + VP8zj2T/NKdz/zevdv84rnP/Oa5y/zitcv85rHD/Oapu/zmobf84qm3/OKpr/zepaf83pmj/OKZn/zim + Z/84pWX/OKRj/ziiYf84omH/OKJh/zehX/83n13/OJ9c/zeaWf80kFT/MYJP/y91Sv8raET/MmI9/0Bi + NP9RZiz/Y2ol/3VyH/+Gehn/loEU/6aKEf+zkA7/vJQL/8OXB//MnAT/2acD/+WzA//tugH/8b0A//G8 + AP/xvAD/+sMA/+WyAv+TdQ7/KiYg/xYXJP8NDA3/AAAA/wAAAP8AAAD/AAAA/wAAAFfFxcYAz87PAAAA + AIAAAAD/AAAA/wAAAP8AAAD/Eg8T/yAjJf8oTjr/Npxh/zipaf82p2n/OKhp/zepa/85qmz/Oahs/zmp + bf85q2//Oaxy/zmtc/85rXP/Oa10/zmudf85sHj/ObF5/zmxev85snv/ObN9/zm1f/85tYD/ObWA/zm2 + gP85t4L/ObiD/zm5hf85uYX/ObmF/zm6hv85u4f/ObuJ/zm8if85vIn/ObyK/zm7i/85vIv/ObyL/zm9 + jP85vYz/Ob2M/zm9jP85vIv/OLuK/zm7iv85vIn/OLyJ/zm9iv85wIv/N8GL/zO8iP8tsYP/KqN6/yuV + b/8zjmf/QIhg/1WEVv9yhkv/nYxA/8+nPP/Qpjj/oIw3/19yQP86hVv/NKFv/zewdv84rnP/OK1y/zms + cf85q2//Oalt/zmqbf85qW3/OKlr/zanaf84p2j/OKdo/zimZf84pWT/OKNi/zijYv84oWD/OKBf/zef + Xf84oFv/OKFb/zikXf85p1//OaZe/zaiXf8wmFv/KoxY/yZ/VP8ldU7/J2xJ/y1mQ/81ZT3/QGc3/0xp + Mf9XaSv/YGck/2xlHP98ZhT/lXYP/72VCP/ltAH/8r0A//K9AP/5wgD/67cB/6aDC/8yKx7/Fxgj/xIR + FP8AAAD/AAAA/wAAAP8AAAD/AAAAgLKxswDDw8QAAAAAqAAAAP8AAAD/AAAA/wAAAP8WEhf/ICcm/ylY + P/82oWT/OKlp/zeoaf84qGn/OKlr/zmpbP85qW3/Oapu/zmscP85rHL/Oa1z/zmtc/85rnX/Oa92/zmw + eP85sXn/ObF7/zmzfP85tH7/ObV//zm1gP85toH/ObaB/zm3g/85uIT/ObmF/zm5hv85uYb/ObqI/zm7 + if85u4r/ObyK/zm8iv85vYv/Ob2M/zm9jP85vYz/Ob2N/zm9jf85vY3/Ob2N/zm9jP85vYz/ObyL/zm8 + i/84vIr/ObuK/zi7if84u4n/OLuI/zi8iP83von/Nb+K/zG7iP8rsIH/K550/zOBX/9LXkD/oog7/+G9 + QP/tyz7/xpox/1phN/8zg1z/NK93/ziudP84rXL/Oa1x/zmrcP85qm7/Oapt/zmpbf84qWz/N6hq/zin + aP83p2j/OKZm/zilZP84o2L/OKNi/ziiYf84oV//N6Be/zigXP84n1v/OKBc/zifW/84oFz/N6Bc/zeh + W/83olz/N6Nd/zajXf81ol3/NZ9d/zOdXP8xmVv/LpZa/y6RWP8rhVX/I2dI/xguMP8jISL/bVUT/82g + Bf/0vwD/9L4A//jBAP/uugH/t48J/zoyHv8ZGSP/FhYZ/wAAAP8AAAD/AAAA/wAAAP8AAACooJ+hALS0 + tgAAAADLAAAA/wAAAP8AAAD/AAAA/xoUGv8hKyn/K2JF/zalZ/84qmn/N6ho/zipav84qWz/Oalt/zmp + bf85q2//Oa1x/zmtcv85rXL/Oa10/zmvdv85sHj/ObF4/zmxev85snz/ObR+/zm1f/85tX//ObWA/zm3 + gv85t4P/ObiE/zm5hP85uYX/ObqH/zm6iP85u4n/ObyK/zm8i/85vYv/Ob2L/zm+jP85vY3/Ob2N/zm9 + jv85vo//Ob6P/zm+j/85vo//Ob6O/zm9jf85vYz/Ob2M/zm8i/85vYv/OL6M/zjBjv80wI3/LbmJ/yut + gP8zonX/S5xt/2qbYv+Km1f/oJZM/6aLQP+vjTv/rJM8/56SPf+Bgj7/SHZL/zSVZ/82sXj/N691/zmu + c/85rXL/Oaxx/zmrb/85qW3/Oaht/ziqbf83qWv/OKdo/zenaP84pmf/OKVl/zikY/84o2P/OKJh/zih + YP84oF//OJ9c/zieW/84n1v/N59b/zefW/84n1v/OKBc/zihXP84olz/OKJd/ziiXf82oVz/NqFd/zaj + X/82p2D/L5lc/yd9Uf8tXz//VVUi/4ptEf/AlAf/57UB//K9AP/xvQD/9sAA//K8AP/Fmgf/Qzkd/xsb + I/8YGB7/AAAA/wAAAP8AAAD/AAAA/wAAAMuOjY8AqqqrAAAAAOcAAAD/AAAA/wAAAP8AAAD/GxUd/yIv + K/8takn/N6do/zirav84p2n/Oapr/zmqbf85qG3/Oapu/zmscP85rXL/Oa5z/zmtdP85rnX/ObB3/zmx + ef85snr/ObN8/zm0fv85tX//ObV//zm1gP85toH/ObiD/zm4hP85uYX/ObqF/zm7h/85u4n/ObuK/zm8 + i/85vYz/ObyM/zm+jP85vY3/Ob6O/zm+j/85vo//Ob6Q/znAkf85wJH/Ob+R/zm/kf85vpD/Ob6P/zi+ + jv85vY3/OcCP/zfDkP8zvIz/LquB/zehd/9OnnD/ap1p/4CaYP+Pllj/lpJR/5SOTP+LjUz/fpBQ/2qP + VP9Yjln/TJBf/0OVZP86n2z/N6t1/zixd/84rnX/Oa50/zmsc/85rXL/Oaxx/zmqbv85qW3/Oalt/zip + bP84qGr/N6Zn/zelZ/84pmb/OKVk/zikY/84o2L/OKJh/zihYP84oF3/OJ9c/zifWv84oFz/OKBc/zig + XP84n1z/N59b/zefW/84n1v/OJ9b/zefW/84oVz/OKBc/zCEUP8oYEH/Q1ku/4R6G/+9mgv/4rAD//G8 + AP/zvgD/8bwA//C8AP/1vwD/874A/86hBf9LQBv/HR0i/xkZIP8AAAD/AAAA/wAAAP8AAAD/AAAA54B/ + gQCenp8AAAAA/AAAAP8AAAD/AAAA/wAAAP8dFR7/IzMs/y5xTP82qGf/OKtr/zioav85qmz/Oapt/zmp + bf85q2//Oaxx/zmsc/85rnL/Oa51/zmvdv85sXj/ObF5/zmxe/85tH3/ObV//zm1f/85tX//ObaB/zm3 + gv85uYT/ObmF/zm5hv85uof/ObyJ/zm8iv85vIv/Ob2M/zm+jf85vY3/Ob6N/zm+j/85v5D/OcCR/znA + kf85wJH/OcGS/znBkv85wJL/OcCS/zm/kf84wJH/OL+Q/zm/kP82uYv/N62C/z+fdv9Wlmv/dJNi/5CO + WP+ijFL/ppBR/5mTU/9/j1X/XolZ/0GHXv8wjGj/KJdw/yeieP8prn//LrSB/zW5gf84t37/ObN5/zmv + dv84rXX/Oaxz/zmuc/85rXL/Oatv/zmqbv85qG7/Oapt/zipa/84p2j/NqZn/zimZ/84pWX/OKVi/zik + Yf84o2L/OKBf/zihXv84oFv/OJ5a/zigXP84oFz/OKBc/zigXP84oFz/OKBc/zigXP83nlr/OKJc/zee + W/8yhlD/H0c4/zIzI/98XA//26YA//rDAP/8xQD/9sEA//K9AP/yvQD/8bsA//S+AP/0vwD/1KYE/1NG + Gf8fHiH/GRki/wAAAP8AAAD/AAAA/wAAAP8AAAD8eXh7AJGRkgAAAAD/AAAA/wAAAP8AAAD/AAAA/x4X + H/8jNi7/L3ZP/zepaP84q2v/OKhq/zmpbP85qm3/Oapu/zmscP85rXL/Oa1z/zmuc/85rnX/Oa93/zmx + ef85sXr/ObJ8/zm0fv85tX//ObV//zm1gP85t4L/ObiE/zm5hf85uYb/ObqI/zm7if85vIr/ObyL/zm8 + jP85vY3/Ob6O/zm/kP85v5D/OcCR/znBkv85wZL/OcGT/znBk/85wZT/OcKU/znBlP85wZT/OcCT/zjA + kv84wZP/OcKU/zClf/83fGH/X25P/6iXXP/Oq2L/upVV/454SP9rc0v/UX5X/0OHYP89j2j/O5ht/zqe + cf85onP/OKV1/zapd/81q3n/NK56/zeye/84snn/OK93/ziudv85rXT/Oa1z/zmtcv85rHD/Oapu/zmp + bf85qW3/OKlr/zioaf83pmf/OKZn/zilZf84pWP/OKRi/zijYv84oWD/OKFe/zigXP84n1v/OKBb/zig + XP84oFz/OKBc/zigXP83n1v/OKBc/zefW/84pF3/NJBU/yZROf8WGiT/YkoT/8WaB//6xQD/874A//G8 + AP/yvQD/8r0A//K9AP/xvAD/874A//S/AP/ZqgT/WksY/yIgIv8ZGiP/AAAA/wAAAP8AAAD/AAAA/wAA + AP90c3YAAAAAAQAAAP8AAAD/AAAA/wAAAP8AAAD/Hhcf/yQ3L/8veVD/N6lp/zera/83qWv/Oalt/zmq + bv85qm7/Oaxw/zmtcv85rXL/Oa5z/zmudf85sHf/ObJ5/zmyev85snz/ObR+/zm2gP85toD/ObaA/zm3 + gv85uIT/ObmF/zm6hv85uoj/ObuJ/zm8i/85vYz/Ob2M/zm9jv85vo//Ob+Q/zm/kf85wJL/OcGT/znC + k/85wpP/OcGT/znClP85wpT/OcKU/znClP85wZP/N8CS/znBk/85w5X/MaV//zaDZf9Pelr/dpRk/3yS + Yf9uglf/Z3pT/3CGWP91jFr/dYxZ/3KLWP9uiVb/ZoFR/195TP9Wc0r/TnBK/0ZxTP8+eVP/N4Ze/zSa + a/84rnf/N692/zmudP85rXL/Oa1y/zmscP85qm3/Oalt/zmpbf84qWv/OKhp/zenaP84pmf/OKRm/zik + Y/84pGL/OKNi/zihYP84oV//OKBc/zifW/84oFv/OKBc/zigXP84oFz/OKBc/zefW/84n1v/N6Nd/zif + W/8tdUv/GCYq/zApHv+beA3/7rkB//XAAP/yvQD/8LsA//G8AP/yvQD/8r0A//G8AP/zvQD/9L8A/9yt + A/9eTRj/IiAi/xkZI/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAEAAAADAAAA/wAAAP8AAAD/AAAA/wAA + AP8dFx7/JDow/zCAVP84r2z/Oa5s/zipa/84qG3/OKlt/ziqb/85rHH/Oa5z/zmuc/85rXX/Oa93/zmw + eP85snr/ObJ6/zmzff85tH7/ObaA/zm2gP85t4L/ObiE/zm5hf85uob/ObqH/zm6if85u4r/ObyM/zm9 + jf85vY7/Ob6P/zm/kP85wJL/OcGS/znAkv85wZP/OcKU/znClf85wpX/OcOW/znDlv85w5b/OcOW/znC + lf84wpT/OMGT/znBk/82uY3/N6+G/zurgf9CroH/QKh9/z2kef9ApHj/Sql6/0+ref9Sr3r/Ua95/0um + c/9Elmj/Q4he/0V3Uv9UaUT/eWw4/6WNPf99ez7/RHdP/zKhcP84sHj/ObB2/zitc/85rHL/Oa1x/zmr + b/85qm3/Oaht/zeoa/83qGr/NqZo/zilZ/84pWb/OKVk/zijYv84omH/OKFg/zigXv84n1z/OJ5c/zig + Wv84oFz/OKBc/zigXP83n1v/N6Bb/zikXf85p17/LoNR/yBHOf8oIyD/gGQR/9SlBP/5wgD/8r0A//G8 + AP/xvAD/8r0A//K9AP/yvQD/8bwA//K+AP/1vwD/3a4D/19OF/8jISL/GBoj/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAAwAAAAMAAAD/AAAA/wAAAP8AAAD/AAAA/x4XH/8jNi7/LnRN/zamZ/85rm3/Oa9v/zmu + cf85rnD/Oa1x/zmtcv84rXL/OK10/zmudf85r3j/ObF5/zmyef85s3v/ObR+/zm1f/85tn//ObeB/zm3 + g/85uYX/ObqF/zm7h/85u4j/ObuK/zm8i/85vYz/Ob6O/zm+j/85v5D/OcCS/znBk/85wpP/OcGT/znC + lP85w5b/OcOX/znEmP85xJj/OcSY/znEl/85xJf/OMSX/znDl/85w5b/OcOV/znImP84y5r/NMua/y/F + lv8uw5T/L8ST/zDEk/8ww5H/Lr6P/yqxhP8tpHr/O5xx/02Zav9clGH/aIhU/3l9Rv+bgTz/u5xA/4aG + Q/9Gf1T/MqNy/zexeP85sHf/OK50/zmtcf85rXL/Oaxw/zmqbv85qWz/OKls/zipa/83p2n/N6Zm/zim + Z/84pmX/OKRj/zijYv84omH/OKFf/zigXf84n1z/OJ9b/zigXP84oFz/OJ9b/zefW/83oFv/NpxZ/zCC + T/8qVDr/Pz0h/4BjEP/TqAX/9cIA//fAAP/xvAD/8LsA//G8AP/xvAD/8r0A//K9AP/xvAD/874A//W+ + AP/drgL/X08X/yMhIv8YGiP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAADAAAAAQAAAP8AAAD/AAAA/wAA + AP8AAAD/Hhog/yEqKP8oTzv/L3pR/zGQXv80nmb/OKZs/zirb/85r3L/Oa9z/zivdP85r3b/ObB2/zmw + eP84sHn/ObF6/zmzfP85tX//ObV//zm1gP85uIL/ObiE/zm5hf85uob/ObqI/zm8if85vIv/Ob2M/zm9 + jf85vo//Ob+Q/znBkv85wpT/OcKU/znClP85w5X/OcSW/znFmP85xZn/OcWZ/znGmf85xpr/OcaZ/znH + mv83xpn/N8aa/zfFmP82w5f/NsKV/zbBlP82wZP/NsCS/ze/kP83vI7/N7yN/ze6iv80q4D/NYdl/0Vv + Uf9mcUv/hn5K/5iHSf+cjEn/lZJM/4aYU/9nlVn/SJxo/zipdf84snr/OLF4/zmvdv85rnT/Oa1y/zmt + cv85q3D/Oalv/zmpbf85qm3/Oapr/zioaf82p2f/OKVn/zimZf84pGT/OKNj/zijYv84ol//OKFd/zig + W/84nlv/OKBc/zigXP83n1r/OKFc/zaeWv8zhlD/I0s4/y4uIv9rTxH/y50F/+q9Af/zwQD/9b8A//S/ + AP/zvQD/870A//K9AP/xvAD/8bwA//C7AP/yvQD/9b8A/9ytA/9eThj/IyEi/xkaI/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAAGRkJIAAAAA/wAAAP8AAAD/AAAA/wAAAP8eHSH/IyIl/ykpLP8nLi3/Ijgw/yNN + Ov8qakr/MoZb/zWdaf84rHL/ObN3/zm0eP84s3r/ObF5/zixef85snr/ObN9/zi1f/85tYD/ObaA/zm4 + g/85uIT/ObmF/zm6h/85u4n/ObyJ/zm8i/85vYz/Ob6N/zm/j/85v5H/OcGS/znClP85wpT/OcKV/znD + l/85xJj/OcWZ/znFmf85xpr/OMea/zjHm/84x5z/OMqd/zfLnv80xpv/ML2T/y+wiv8wp4L/MqB8/zab + d/87mXX/Qpdy/0eSbf9GjGj/QYBg/0NpT/9qZkP/jnNE/5WBTP97f07/YYNU/02OYP8/nW3/N6h3/zSv + ff81s37/OLN8/ziyef84sXj/Oa92/zmudP85rXL/Oa1y/zmscf85qm//Oalt/zmqbf85qmv/OKhp/zen + Z/84pmf/OKZm/zilZP84pGP/OKNi/ziiYP84oV7/OKBc/zifW/84oFz/OKBc/zefW/83oVv/N5pZ/zB5 + S/8nUzr/Lz4r/0c/Hf9mThT/k3IN/8udBf/xvAD/+sQA//nCAP/2wAD/870A//G8AP/yvQD/8bwA//O+ + AP/0vwD/26wD/1xNGP8iICL/GRoj/wAAAP8AAAD/AAAA/wAAAP8AAAD/amlsAJaWmAAAAAD8AAAA/wAA + AP8AAAD/AAAA/xoaHv8qKCz/RkJF/1VQUv9FQUT/MTQ1/yUwLf8gNS7/Ikc3/yhfRf8ueVb/M5Rm/zeo + c/85tHv/Obl+/zm3fv85tX7/OLR+/zi1gP84toH/OLeD/zi4hP84uIb/ObmH/zm7iv85u4r/Ob2L/zm+ + jf85vo//Ob+R/znAkv85wJL/OcGT/znDlv85xJf/OcWY/znFmf85xpr/Ocab/znHm/84y5//NMyh/y3E + m/8wuZL/O6mF/0iXdv9Vh2j/Yn9g/2p9Xf9ve1r/c31a/3eCW/97iF7/f41h/3eLX/9ifVj/VnZV/12A + Wf9djGH/TpVo/0Gecf86qHj/Nq9+/zSzgP8ztYH/NLWB/za1f/84s3z/OLF5/zmxef85r3b/Oa91/zms + c/85rXP/Oaxx/zmqb/85qW3/Oapt/zmqbP84p2n/N6Zn/zimZ/84pmb/OKVk/zikY/84o2L/OKJg/zih + Xv84oFz/OJ9b/zigXP84oFz/N6Bb/zefW/83nlv/NZZX/zSPVP8zgk7/MGlC/yxHMv80NyX/WEcY/4dm + Df+0hwb/1KIC/+y2AP/5wgD/+cMA//O+AP/xvAD/874A//S/AP/XqAP/WEgY/yEfIf8ZGCL/AAAA/wAA + AP8AAAD/AAAA/wAAAPx3dnkAoqKkAAAAAOcAAAD/AAAA/wAAAP8AAAD/GBcb/y0rL/9UUlP/dXJx/2tl + Z/9ZUlX/SEFF/zkzOP8tKy7/JC0r/yE3L/8jSjr/KWJJ/y99Wf80mWv/N7B6/zm7gv85vYT/Or6F/zq+ + hv86wIn/OsGJ/zm/iv85vYr/ObyK/zi8iv84vIz/Ob2O/zi+kP84v5H/OMCS/znBk/85wpT/OcSX/znF + mP85xZn/OcWa/znHnP84yJ3/OMmf/zfDm/8/uZL/UqyH/1iWdv9Uf2T/WHhd/2aAYf9sgWH/bYRi/2yH + ZP9pjGf/Z5Rr/2Wdcf9mpXb/Yad3/1Ohdf9Ionf/Qql8/zitgP8vr4L/LraG/zK7iP81vYf/OLuE/zm4 + gv85tX//OLR+/zmyfP85snr/ObF4/zmwd/85r3b/Oax0/zmsc/85rXL/Oatu/zmobP85qm3/Oapt/zio + av83p2j/OKdn/zimZ/84pmP/OKVi/zijYv84omH/OKFf/zigXf84n1v/OKBc/zigXP84oFz/N59b/zig + XP84o13/OaZe/zaiXf8wk1j/KXhP/yFeRf8nUDr/OlEv/1ZcJf9zZxr/iW8R/6OBDP/GnAf/7LgB//O+ + AP/1vwD/874A/9KkBP9RQxr/Hh0i/xgYIP8AAAD/AAAA/wAAAP8AAAD/AAAA53x7fgCvr7EAAAAAywAA + AP8AAAD/AAAA/wAAAP8XFhn/Kiks/1FPUP99e3n/gH18/3t4d/9zcHD/ZWJi/1JNT/8+ODz/LiYs/yQd + JP8gISP/ITIt/ydWQv8ugV3/M55w/zSldf80pnb/NKV2/zWpev82rn3/OLaE/zi9iv85v4z/OcGO/znB + j/85wZH/OcKT/znDlP85w5T/OcKU/zjDlf85xJj/OcSZ/znFmv85xpz/Ocie/zfKn/82zKL/NbKP/02X + eP+Dk3L/i35h/25qU/9Ycln/VpNx/0ygfP9FqoT/QK+I/zqziv81t4z/MruQ/zG/kv8ywZP/M8GS/zPB + kf80wZD/NsGO/zrAjP85vIj/ObqF/zi4hP85t4L/ObaA/zm1gP85tX//ObR+/zmye/85sXn/ObB4/zmu + dv85rXT/Oa1z/zmtcv85q2//Oalt/zmqbf85qm3/OKlr/zeoaf84pmf/OKZn/zimZP84pWP/OKNi/zii + Yf84oV//OKBd/zifW/84oFz/OKBc/zigXP84oFz/OKBc/zifW/83n1v/OKBc/zikXf85pl//OKFc/zKR + V/8ofVH/IWRI/x9DN/8nLCX/T0AZ/5l5Dv/mtAH/874A//fAAP/yvQD/yp8G/0g9HP8bGyP/Fxce/wAA + AP8AAAD/AAAA/wAAAP8AAADLg4KFALe4ugAAAACoAAAA/wAAAP8AAAD/AAAA/xQTFv8nJin/TUpL/398 + ev+Cf3z/fXp4/3x5dv96d3X/d3Rz/3BtbP9hXl//TEpM/zUyNf8iHSL/HBke/x8qKP8kRzv/JlRC/yZU + Qv8mUkH/JlVF/yljTv8vgmP/NKJ5/ze2hv84wI7/OMCO/ze/j/84wJH/OcWW/znFlv84xJb/OMSX/znF + mf85xZn/OMab/zjInf85yp//OMug/zbNov8zqIb/S4Vr/4GPcP+GiGj/a3Vb/09yW/9CiW3/N6SB/zW7 + k/82x5v/OMiZ/zfFl/84w5X/OMGT/zjAkv84vo//OL6O/zi9jP84vIv/ObuJ/zm7h/85uob/OLmE/zm4 + gv85toH/ObWA/zm1f/85tH7/ObJ7/zmxef85sHj/Oa92/zmtdP85rXP/Oa1y/zmrb/85qW3/Oapt/zmq + bf84qWv/N6hp/zimZ/84pmf/OKZk/zilY/84o2L/OKJh/zihX/84oF3/OJ9b/zigXP84oFz/OKBc/zig + XP84oFz/OKBc/zefW/84oFz/N59b/zigXP83oVv/OKVd/zeiXP8yi1P/JFQ+/zY6Jf90WhL/w5kG/+66 + AP/zvQD/+MEA//C7AP+/lgj/PzYd/xkaI/8VFRr/AAAA/wAAAP8AAAD/AAAA/wAAAKiVlZcAycnJAAAA + AIAAAAD/AAAA/wAAAP8AAAD/EA8S/yQjJ/9HRkf/gH18/4aDgP+Cf3v/gH16/316eP98eXj/end2/3Z0 + c/9xb27/ZWRj/1BMTv86NTj/Kycs/yooLP8qKy3/Kist/ygoK/8jIyf/HSAj/x0pKP8hPTb/JllI/ypx + Wf8qcFn/KWpU/ytyWv8xknL/NbCH/zjElv85y53/Ocea/zjFmf84x5v/OMqf/znOo/840qb/OM2j/zq5 + k/8/n3//Rotv/013Yf9QZlP/XGJN/3BuVf99iGf/U5Z1/zeviv83yJv/N8OV/znClP85wZP/OcCR/zm9 + jv85vY3/ObyL/zm7iv84uoj/OLqH/zi5hf84uIT/OLeC/zi2gP84tX//OLR+/zmzff84sXr/OLB5/ziw + d/85r3X/Oa1z/zmtcv85rHH/Oapv/zmpbf85qWz/Oals/zioav83p2j/OKVn/zilZ/84pWX/OKRk/zii + Yv84oWD/OKBf/zifXP84nlr/OJ9b/zifW/84n1v/OJ9b/zifW/84n1v/N59c/zefW/83n1v/N59b/zef + W/84pF3/NpdX/y1tR/8fNC//VEMZ/6uBCP/wuwD/+8QA//S/AP/4wQD/7bgA/7GLCf83MB3/GBkj/xER + Ff8AAAD/AAAA/wAAAP8AAAD/AAAAgKOjpQDW1tYAAAAAVwAAAP8AAAD/AAAA/wAAAP8LCw3/IiEl/0FA + Qv+AfXz/ioeF/4eEgf+EgX7/gX58/398e/9+e3n/fXp4/3x5eP95d3X/cG1t/2NgX/9XVFX/VU5Q/1NM + Tv9SS07/T0dL/0Y/Q/84MTb/LSYr/yUhJv8jJyn/JjQy/yYzMv8jLSz/Hy0r/yI9Nv8mV0n/LHpi/zOl + gv85yp3/OtCi/znSo/850aT/OMyh/zW9lv8woIH/WqOB/4Cog/9sjXD/QXhi/z57ZP9Phmr/XpFw/2ul + ff9PrYb/Or6T/zjNnv84x5j/OcOV/zjBk/84wJL/OcCQ/znDkf85xJH/OcOQ/znDjv85wo3/OsKL/zrB + iv85v4j/Ob6G/zm9hP85u4L/ObqB/zm3fv85tnz/ObR6/zmyd/84r3X/Oa5z/zmtcv85rHH/Oaxv/zmr + bf85q23/N6lr/zaoaf83pmb/N6Zm/zemZP83pWP/N6Nh/zijYf84omD/OKFd/zigW/84oVz/OKFc/zih + XP83olz/OKJc/ziiXP84oVz/OKJc/zijXf84o13/OKNd/zimXv84n1v/M41U/y1xSP9Dazj/a3Il/52F + Ef/RowL/7bcA//zCAP/oswD/n30J/y4qH/8XGCP/DQwO/wAAAP8AAAD/AAAA/wAAAP8AAABXuLi5AOPj + 5AAAAAAwAAAA/wAAAP8AAAD/AAAA/wYFBv8fHyL/OTg7/357ev+Oi4n/jImH/4iFg/+FgoD/hIF//4J/ + fP9/fHr/fXp4/315eP98eXj/e3h2/3h2dP92c3H/c3Fv/3Jvbv9vbWv/aGZl/11bW/9PTU7/Qz9C/zs1 + Of89NDn/PTM4/zYtM/8sIyn/JRsh/yAaIP8hLi3/KGFS/zKkg/80to//M7ON/zGlhP8ukXb/KXRg/yNY + TP9UcFv/kJFy/5SMb/9XjHD/PKiF/zq/l/87wZf/PbuS/zirh/81rIf/NruQ/zjElv85xZb/OMaW/zjF + lf84wZH/N7yM/ze3if82tIb/NrSE/zaygv83soD/N7B//zavff83r33/N698/zeve/82r3r/OK95/zix + ef85snn/OLJ4/ziydv85snX/ObB0/ziucf85rG//Oa1u/zmub/85rW3/OKxr/zmraf85q2n/Oatn/zmq + Zv85p2T/OKdj/zilYv84pF//OKJc/ziiXf84ol3/OKJd/zejXf84ol3/OKJd/zigW/83oFv/N59b/zWd + Wv80m1n/MZpX/zGZV/8wmlf/L5ZW/yWAT/8gXUD/N0ko/35lEf/RpBP//Mka/+K2HP+LcRr/JyUh/xYX + Iv8GBgb/AAAA/wAAAP8AAAD/AAAA/wAAADDOzs8A3NvcAAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/xwc + IP8yMDT/d3V1/5KPjP+Sj43/jYqI/4qHhf+IhYP/hoOB/4SBf/+Cf33/gX57/357ef98eXj/end2/3h1 + dP91c3H/c3Fv/3Jvbv9wbWz/b21r/2xqaf9pZmX/ZGJh/2NhYf9hXl7/WllZ/1BPT/9DQkP/Mi0x/yMa + If8eJyj/JlNI/ylsWf8oYlP/J0xE/yY1NP8hHyP/HB0i/yE6Nv9GY1P/gYNq/26dff9EwZj/L9Om/zPB + mP8tlHf/J2JS/yhcTf8tfWT/Mp57/zWshf82tYv/NrWK/zSmf/8wkG//LoFl/y16X/8teF3/LXZb/yx1 + Wf8sc1f/LHNX/y12Wf8telr/LXxb/y5/XP8whV//MYxj/zOTZ/80m2n/NaBs/zWjbP81oGv/NJhl/zOT + Yf8zmWP/NJtk/zScZP80nGP/NJ1i/zWeYf81nmD/NJxf/zSZXf8zl1z/M5Ra/zKSV/8zkFT/Mo1T/zKM + U/8xjFL/MotT/zKJUv8xiFL/MYZQ/zCET/8vgU7/Ln1L/y15Sv8sd0n/LHRH/yxwRf8ubkb/L3RJ/zFs + Sv81VkX/Tkk8/7qeT//412P/3MBe/3NlPP8jISL/Fxgf/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEODg + 4ACIh4oAe3p9AAAAAP8AAAD/AAAA/wAAAP8AAAD/Ghgd/yspLf9ta2z/k5CO/5iVk/+Sj43/kI2L/46L + if+MiYf/iYaE/4eEgv+FgoD/g4B+/4F+e/9/fHn/fXp4/3t4dv94dXT/dnNy/3Nwb/9xb23/b21r/25r + av9saWj/aWdm/2ZkY/9kYmH/YV9f/15cW/9TUlL/Ojc5/yUjJ/8jIib/KSot/zIyNP8/PD7/RkJF/zs4 + O/8lIyn/ICAk/z89N/95cFr/c3xk/0KHbf8khmz/LWxa/y0/PP8kJCf/Hh0h/x0lJ/8gNjL/I0U9/yVU + Rv8lVUf/JEQ7/yMyL/8iKSr/Iycp/yMmJ/8iJij/IiYo/yElJv8gJSb/ICUn/yAmJ/8fJyb/Hygn/yAr + Kf8hMS3/Izgx/yVANf8nSDr/J08+/yhMPP8kQDX/Hjkw/xs9Mf8bPzL/HEE0/x1ENP8dRjX/Hkc1/x5H + Nf8dRjT/HEMy/xxBMf8bPi//Gzwt/xs5LP8aNir/GjUq/xkzKf8ZMyn/GjIo/xovKP8eMSr/IjMs/yc2 + Lv8wPDP/Pkc7/05TRf9eYU7/bWxX/3dzXf+CfWT/mZJz/7aqhv/LuZL/69Si//3nrv/SvpL/W1NI/x8f + Iv8XFxz/AAAA/wAAAP8AAAD/AAAA/wAAAP/y8vIA7u7uAJubnQCgoKIAAAAAxQAAAP8AAAD/AAAA/wAA + AP8TExb/JSQo/2BeX/+TkI7/n5ya/5aTkf+UkY//ko+N/5CNi/+Oi4n/jImH/4qHhf+IhYP/hYKA/4OA + fv+Bfnz/f3x6/357eP97eHb/eHV0/3Zzcv90cXD/cm9u/3BtbP9ta2r/a2hn/2lnZv9nZWT/ZmNj/2Jg + X/9VU1P/SUZH/0U/Qv9IQUT/T0hK/1RPUP9XU1P/VlNS/1xWT/9oXlL/c2dX/3BnV/9GQjv/LDk2/y9D + QP9CS0n/S0ZH/0M9P/85Mjb/MCsv/ysoK/8oKCr/LC8x/zM3OP87Ojv/Pjk7/z85O/9AOTv/QDk8/z85 + Pf9AOj3/Pjk8/z04PP8+ODz/Pzo8/z44Ov85Mzf/My0x/ygkKP8hHyP/IB8i/yEhJP8eIST/GBsg/xkZ + H/8rKCn/SEM7/0dEPP9EQTv/QUA4/z8+N/9APzf/QkE5/0VDOv9HRTz/S0g9/09KQP9TTUH/Vk5D/1hR + Rf9ZU0b/XVVI/2FZSv9nX07/cGdV/3xxW/+Ie2L/loZq/6aTdP+0oX7/wa6H/8u3jv/Sv5P/18KW/9vG + mf/lz5//8tum//ngq//947D/++Ox/8Cui/9CPjv/Hh0h/xQTF/8AAAD/AAAA/wAAAP8AAAD/AAAAxZST + lQDy8vIAzs7PANXV1gAAAAB8AAAA/wAAAP8AAAD/AAAA/wwMDv8hHyT/TkxO/5COjP+koZ//m5iW/5mW + lP+XlJL/lZKQ/5OQjv+Rjoz/j4yK/42KiP+Kh4X/iIWD/4aDgf+EgX7/g4B8/4B9e/99enn/e3h3/3l2 + df92c3L/dHFw/3Jwbv9wbWz/bmtq/2tpaP9pZmb/Z2Vk/2VjYv9iYGD/YF5d/15dXP9eXFv/W1pZ/2Ff + Wv95cWX/e3Rl/3pzZf9ybWH/XVlT/zo2OP84LzT/Rz1B/1ZOUP9cWVj/WVhX/1NSUf9NSkv/R0NE/0M9 + QP9GP0L/TUZI/1RPT/9WU1P/V1VU/1hWVP9XVlT/WFZV/1hXVv9ZV1f/WFdW/1VTU/9QTk3/SEZG/z89 + P/82Mzb/JiQp/xsZH/8WExr/FBAZ/xMPGf8bFh7/RT03/4BzXP+pmXb/qpl2/6eUc/+kkXD/oo5v/6KO + b/+kkHD/p5Ry/6qXdf+tmnf/sZ15/7ShfP+4pH3/uqeA/7upgf++rIT/wrCG/8i1if/QvY//2MWU/+LM + mf/s057/9tyk//ziqP//56z//+mu///qrv//6a7//+qu///nrP/95ar//eKo//7lqv/x2KH/p5Z0/y4r + K/8dGyD/DQ0P/wAAAP8AAAD/AAAA/wAAAP8AAAB8bm1wAPHx8QDs7OwA1dXWAAAAADcAAAD/AAAA/wAA + AP8AAAD/AwME/x4cIf87Oj3/iIaF/6ekov+hnpz/npuZ/52amP+bmJb/mJWT/5aTkf+UkY//kY6M/5CN + i/+Oi4n/i4iH/4mGhP+HhIL/hYKA/4OAfv+Bfnv/f3x5/3x5d/96d3X/d3Rz/3Vycf9zcG//cW5t/25s + a/9samn/amhn/2lnZv9nZWP/Y2Fg/15cXP9aWFj/ZmJa/4yBbP98dWb/ZmJc/1hXVv9TUlL/U1JR/1lW + Vv9dWlr/XFpZ/1pZV/9bWlj/XVtZ/11bWv9dW1r/XVta/11bWv9eXFr/XVtZ/1xaWf9bWVj/XFpZ/1xa + Wf9dW1r/XVta/1xaWf9WVFP/SUhI/zw6PP8vLjH/JiYq/yEgJv8dHSL/HR0h/yEgI/8nJSf/Mi4u/1VO + Qv+hkW//59Ob//7rq///6qr//+ip///nqP//56n//+ep///nqP//6Kn//+mq///pqv//6an//+mq///q + qv//6qr//+qq///qq///6qr//+qq//7pqv/+6Kn//uap//7kp//94qX/++Gk//rfo//53qL/+N6i//jd + of/43qL/+N2h//fcof/43aL//uao/97Klf+Ie2D/Hx4i/xsbIf8EBAT/AAAA/wAAAP8AAAD/AAAA/wAA + ADeXl5gAAAAAAOzs7ABwb3EAAAAACgAAAP8AAAD/AAAA/wAAAP8AAAD/HRwf/ywrLv97eXj/pqKg/6il + o/+joJ7/oZ6c/5+cmv+cmZf/mpeV/5iVk/+VkpD/lJGP/5KPjf+QjYv/jYqI/4uIhv+JhoT/h4SC/4WC + f/+DgH3/gH17/357ef99enf/end2/3h1dP91cnH/c3Bv/3Fubf9vbGv/bWpp/2toZ/9oZWT/ZmNi/2Be + XP9hXVr/d3Bj/4d+bP+QhnL/h35s/2lkXP9bWVf/WVdX/1tZWP9bWVj/WlhX/1tZWP9bWVj/W1lY/1tZ + WP9bWVj/W1lY/1tZWP9bWVj/W1lY/1pYV/9bWVj/XFpZ/1xaWv9bWVj/Tk1N/zg3Of8iICX/GRge/xUU + G/8UFBv/GRkf/ywqKv9MRjz/bWNO/41/Yf+unHT/1r+K//HZm//74qH/+t6f//nenv/53Z//+t6f//rf + n//63p//+d6f//rdn//63p//+d6f//nen//43p7/+d2e//nenv/53p//+d6e//nenv/53p7/+d6e//nd + nv/53Z7/+d2e//ndnv/53Z3/+d2e//ndnv/43Z7/+N2e//jdn//43J7/+Nye//ndn//+5qT/x7WE/2de + TP8XGB7/Gxof/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAACry8vQAAAAAA7OzsAIeGiACPjpEAAAAA1gAA + AP8AAAD/AAAA/wAAAP8UFBb/Hx8i/2hmZv+gnJv/sK2r/6ilo/+loqD/o6Ce/6GenP+fnJr/nZqY/5qX + lf+ZlpT/l5SS/5WSkP+TkI7/kI2L/46Lif+LiIb/ioeF/4iFg/+FgoD/g4B+/4J/fP9/fHr/fnt4/3t4 + dv95dnT/dnNy/3RxcP9yb27/cG1s/25rav9nZGL/bGdh/3x0Z/+Hf3D/k4l1/56Sef+UiXP/b2hf/1tY + V/9YVlb/WlhX/1pYV/9aWFf/WlhX/1pYV/9aWFf/WlhX/1pYV/9aWFf/WlhX/1pYV/9cWlj/XVxa/1xa + Wf9WVFT/S0pL/z48Pv8rKy//Ghsh/xUVHP8nJSb/Qz42/2BXRf99cVX/p5Zt/8i0gf/bx4z/5dCT/+7X + l//53Zv/+96c//ndm//425r/+Nua//jbmv/425r/+Nua//jbmv/425r/+Nua//jbmv/425r/+Nua//fb + mv/425r/+Nua//jbmv/425r/+NuZ//jbmv/425r/+Nua//jbmv/32pn/+Nua//rdmv/53Jr/99qZ//jb + mv/425r/+Nua//famf/325r/+dyb//7hnv+tm3H/RkA4/xgYHv8UFBb/AAAA/wAAAP8AAAD/AAAA/wAA + ANbp6eoA3t7fAAAAAAAAAAAAtbS2AL+9wAAAAAB2AAAA/wAAAP8AAAD/AAAA/wkJCv8aGR3/UE5R/5OQ + kP+3tLL/raqo/6qnpf+opaP/paKg/6Ognv+in53/oJ2b/56bmf+cmZf/mZaU/5iVk/+VkpD/k5CO/5CN + i/+Oi4r/jImI/4qHhf+IhYP/h4SB/4SBfv+DgHz/gH17/357eP98eXb/eXZ1/3d0c/91cXH/c3Bv/2to + Z/94cmn/jYNx/4J7b/9+d23/fnds/3lzaP9mY17/XVta/1pYWP9bWVj/WlhX/1pYV/9aWFj/W1lY/1tZ + WP9bWVj/WlhX/1pYV/9bWVj/XFpZ/1hWVf9PTk3/RURE/zo4Ov8sKy//Ghsi/xkYH/8zLyz/ZlxI/5CA + X/+vnXH/xbJ+/9jCh//v1ZP//eCa///knf/+45z//eGb//vdmP/42pb/99mW//falv/32pb/99qW//fa + lv/32pb/99qW//falv/32pb/99qW//falv/32pb/+NqW//falv/32pb/99qW//falv/32pb/99qW//fa + lv/42pb/99qW//bZlv/32Zb/9tmW//jblv/425f/99qW//fZlv/42pb/9tmV//jal//73Jj/8NOS/41+ + Xf8rKCn/Gxog/wkJCv8AAAD/AAAA/wAAAP8AAAD/AAAAdv7+/wD19fYAAAAAAAAAAADc29wA6OfoAAAA + ACUAAAD/AAAA/wAAAP8AAAD/AAAA/xoZHf84Njr/gX5//7m2tP+0sa//sK2r/62qqP+qp6X/qKWj/6ek + ov+loqD/o6Ce/6GenP+em5n/nJmX/5qXlf+YlZP/lZKQ/5OQjv+Rjoz/j4yK/42KiP+LiIb/iYaD/4eE + gf+EgX//gn98/4F+ev9+e3n/fHl4/3p2df93dHT/c3Bv/3x3cf+IgHT/dG9q/2hlZP9iYGL/YWBg/2Fg + YP9iYF//YF1d/11bWv9bWVn/WlhX/1tZV/9aWFf/WlhX/1pYV/9aWFf/W1lY/1lXVv9SUE//Q0FD/zEw + M/8iIif/Ghog/xoZHv8hHyL/RD42/4V4WP/OuYD/8tWS//7hmv//5Zv//+Sa//3fl//62pT/99iT//fY + kv/32JP/99mT//fZk//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//jZ + k//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//fZk//42ZP/99mT//TWkv/awIT/58uL//ja + lP/42pT/99iT//fZk//22JL/+duU//vel//SuoH/amBK/xoZH/8dHCL/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAAl5eXlAP7+/gAAAAAAAAAAAPT09ADz8/QAvb2+AAAAAPcAAAD/AAAA/wAAAP8AAAD/EhET0SMi + Jv9pZmj/sK2t/7q3tf+2s7H/s7Cu/7Ctq/+uq6n/rKmn/6mmpP+npKL/paKg/6Shn/+hnpz/n5ya/52a + mP+al5X/mZaU/5eUkv+UkY//ko+N/5CNi/+Nioj/i4iG/4mGhP+HhIL/hYKA/4OAfv+Cf3z/f3x5/316 + eP97eHb/eHV0/3Zzcf90cXD/cW9t/29sa/9tamn/amhn/2hmZf9mY2P/Y2Bg/19dXf9eXFv/XFpY/1tZ + V/9aWFf/W1lY/1xaWf9aWFf/TUtM/zQzNf8hICX/GBge/xcXHf8gICP/PDcx/25iSv+wnG3/6M+L//rg + lf/73JP/+NmQ//fYkP/42ZD/+NmQ//jYkP/42JD/99iQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jY + kP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jY + kP/42JD/99eQ//jYkP/62pD/8dSM/6GOZP+6o3H/7dCL//rbkf/32ZD/99eP//fYj//625H/+d2S/6mX + av9JQjj/ExQc/xYVGP8AAAD/AAAA/wAAAP8AAAD/AAAA97CvsQCqqasA/v7+AAAAAAAAAAAA9/f3AJua + nACWlZcAAAAAhgAAAP8AAAD/AAAA/wAAAP8AAADCGRgc/k5NT/+amJn/wL69/7u5uP+3tLP/tLGx/7Kv + rv+xrqz/r6yq/6ypp/+ppqT/qKWj/6WioP+joJ7/oZ6c/5+cmv+dmpj/m5iW/5iVk/+Wk5H/lJGP/5GO + jP+QjYv/jouJ/4uIh/+JhoX/h4SC/4aDgP+DgH3/gX58/398ev99enj/end1/3h1dP92c3H/dHFw/3Fv + bf9ubGv/bWpp/2toZ/9oZmT/ZWNi/2NhYP9gXl3/Xlxb/11bWv9dW1r/WFZW/0ZERf8sKy//Fhcf/xcX + Hf8zMSv/XlVB/419WP/AqHD/38aC//HVi//62o3/+NmN//jXjP/414z/99eM//fXjP/314z/99eM//jX + jP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jX + jP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/31oz/+NeM//zbjv/y04n/eWxO/3xu + UP/ErXT/++CQ//fZjP/21ov/+NeM//vbjf/v0Yj/fG5R/y0qKv8WFx7/CAgJ/wAAAP8AAAD/AAAA/wAA + AP8AAACG39/gANPT1AD+/v4AAAAAAAAAAAD29vYAq6qsALa2twAAAAAlAAAA/wAAAP8AAAD/AAAA/wAA + AP8UExfENTQ3/3l4ef/Bv77/wb69/7u5uP+5t7b/t7W0/7azsv+0sLD/sq+t/6+sqv+uq6j/q6im/6il + o/+mo6H/o6Ce/6Kfnf+gnZv/npuZ/5yZl/+al5X/l5SS/5WSkP+TkI7/kY6M/4+Miv+Nioj/i4iF/4iF + g/+Gg4H/hIF//4J/fP+AfXr/fnt4/3t4dv95dnX/d3Rz/3RxcP9yb27/cG1s/25rav9raWj/aWdm/2Zk + Y/9mZGT/ZmRk/11bWv8/P0D/ISEp/xoaIf85NC3/cmVI/6aTYf/Js3T/4Md///bWh//93Yv/+9yK//nY + iP/21of/9taH//fXiP/314j/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fX + iP/314j/99eI//fXiP/314j/99aI//fWiP/31oj/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fX + iP/314j/99eI//bWh//314j//NqK//HQhf84MST/RD40/4h5VP/y1Yf/+NmJ//fWiP/62or/99iJ/8+0 + df9TSjv/Gxsh/xoZH/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAACWamZwA4+PkAAAAAAAAAAAAAAAAAAAA + AADg4OAA6urpAM7OzgAAAADiAAAA/wAAAP8AAAD/AAAA/wcHCbEhICX/VlVW/7Oxsf/Fw8L/w8C//767 + uv+8urn/uri3/7i1tP+2s7L/tLGw/7Kvrf+wrav/raqo/6uopv+opaP/p6Si/6WioP+joJ7/oZ6c/5+c + mv+cmZf/mpeV/5iVk/+VkpD/k5CO/5GOjP+QjYv/jYqI/4uIhv+JhoT/h4SB/4WCf/+DgH3/gH17/357 + ef98eXf/eXZ1/3d0c/91cnH/c3Bv/3Fubf9wbGv/bmtq/2dlZP9bWVr/SEZI/yEiKP8dHCD/SEA0/5WD + V//UunT/99iF///hi//+34n/+9qG//jWhP/21IP/9tWE//fVhP/31YT/9tWE//bVhP/21YT/9tWE//bV + hP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YP/9tWE//fWhP/41oT/+NeE//fW + hP/31oT/9tWD//bVhP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YT/9dSD//fWhP/72IX/2bx1/xQR + Df8iISP/T0c4/8mvcP/214T/+tiF//3bh//sz4H/moda/zQwK/8VFh3/EBAS/wAAAP8AAAD/AAAA/wAA + AP8AAADif36AAHp5fADf3+AAAAAAAAAAAAAAAAAAAAAAAPr6+gDx8fEA39/fAAAAAGEAAAD/AAAA/wAA + AP8AAAD/AAAA/xgXHP84Nzr/kpGR/8bEw//Mycj/w8C//8G+vf++vLv/vLq4/7q3t/+4tbX/trOz/7Sx + r/+yr63/sK2r/62qqP+rqKb/qaak/6ekov+loqD/o6Ce/6Cdm/+em5n/nJmX/5mWlP+XlJL/lZKQ/5SR + j/+Sj4z/j4yK/42KiP+LiIb/iYaE/4eEgv+EgX//g4B9/4F+e/9+e3n/fHl3/3p3df94dXT/dnNy/3Vy + cf9vbGv/VVRU/zU1Of8lJSn/JCMk/1hPOv+rlWD/89KA//zchP/62IL/99OA//bTf//303//99OA//fT + gP/304D/99OA//fTgP/204D/9tOA//fTgP/304D/99OA//fTgP/304D/99OA//fTgP/304D/9tOA//bT + gP/204D/99SA//fUgP/41YH/+NWA//nVgf/51oH/+NWA//nWgP/41YD/9tOA//bTgP/204D/9tOA//fT + gP/304D/99OA//fTgP/20n//+NWA//rWgf+ullz/LCcc/xkZH/8oJib/hHRO/+jKev/82oL//NmC/9e6 + dP9eUz7/IiEk/xgYH/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAGG/v8AAubm6AAAAAAAAAAAAAAAAAAAA + AAAAAAAA/Pz8AK6urwCwsLEAAAAACgAAAP8AAAD/AAAA/wAAAP8AAAD/EA8T/yYlKf9hYWP/vbu6/9LP + zv/Jx8b/xsPC/8TBwP/Cvr3/v728/727uv+8ubj/uba1/7e0s/+2srH/s7Cu/7GurP+vrKr/rKmn/6qn + pf+opaP/paKg/6Shn/+in53/n5ya/52amP+bmJb/mZaU/5eUkv+VkpD/k5CO/5GOjP+PjIr/jImH/4mG + hP+IhYP/hoOA/4OAff+Bfnv/gHx6/398e/9/fHr/d3Rz/1lXV/8wLzP/ExMc/x8eIv94aUf/yrBq//TV + ff/51n7/+NN9//bSe//303z/9tJ8//bTfP/203z/9tN8//bTfP/203z/9tN8//fTfP/303z/9tN8//bT + fP/203z/9tN8//fTfP/303z/99N8//bTfP/20nv/99N8//fTfP/6137//Nl///vZf//20nz/8M15/+7L + eP/xz3r/+dZ9//zYf//51n7/99N8//fTfP/20nv/9tN8//fTfP/303z/99N8//bSe//51X3/+dZ9/3po + P/88NSf/Gxsg/xcXH/9EPTH/wKVm//bYf//w03v/rJRd/zAtKf8bGiD/ExIV/gAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAACuzs7QHo6OkAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sA09PUANzc3QDX19gAAAAAkQAA + AP8AAAD/AAAA/wAAAP8BAQH/HRwg/zc3Ov+dnJv/09HQ/93c2v/U0tH/zszL/8nGxf/EwsH/wb++/8C9 + vP++u7r/vLm4/7q3tv+3tbP/trOy/7Sxr/+xrqz/r6yq/62qqP+qp6T/qKWj/6ajof+koZ//op+d/6Cd + m/+em5n/m5iW/5mWlP+XlJL/lZKQ/5OQjv+Rjoz/jouJ/4yJh/+Kh4T/iIWD/4eEgv+JhoP/gn99/2xq + aP9MSkz/LCwx/yIgJP82MSr/bV9B/8qvZ//31Xn/+9h7//fTef/20Xf/9tF4//fSeP/30nj/99J4//fS + eP/20nj/9dF3//bReP/20nj/99J5//fSeP/20nj/9tF3//XReP/20Xj/99J4//fSeP/30nj/9tF3//XR + eP/403n//dh7/+zJdP/Iq2f/oIxX/4h2Tf95akj/cWJC/3RkQP+MeEr/v6Ri/+zKdf//2Xz/99J4//XR + eP/20Xf/99J4//fSeP/30nj/9tF3//rWef/403j/QDYg/0M7Lv8bGyH/FBYe/yUjJP99bEj/4MZz/9W8 + bf9vYEL/HBwh/xoaIP8BAQH4AAAA/wAAAP8AAAD/AAAA/wAAAJHz8/QArKytAPPz9AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADw8PEAwsLEAPDw8QAAAAAbAAAA/wAAAP8AAAD/AAAA/wAAAP8TEhX/ISAk/15d + Xv+VlJT/tbS1/8HAv//My8r/0dDP/9LQz//Pzcz/yMbF/8PAv//Avbz/vry7/7u5uP+6uLf/uLa1/7az + sv+0sa//sq+t/7Guq/+yr6z/sa6r/6qnpf+npKL/pKGf/6Kfnf+fnJr/npuZ/5uYlv+ZlpT/l5SS/5WS + kP+UkY//lJGP/5OQjv+Rjoz/jYqI/3p3dv9cWlv/PDs//xwdJv8hICL/V002/56JU//IrGT/89B1//zX + d//10XT/9dB0//XQdP/20XT/9tF0//bRdP/20XT/9tF0//jTdf/61Xb//Nh3//7Yd///2Hf//th3//7Z + eP/+2Xj/+9d3//nTdf/20XT/9tB0//XQdP/10HP/+NJ1//nUdv/XuGn/mINR/2BUPP9BOzD/MCwo/yEf + IP8jISP/Ly0s/zw2MP9VSjT/loFO/9y7av/813f/+NJ1//XQc//10HT/9tF0//bQdP/10HP/+9V2//TQ + c/8LCgb/QDou/xkZIP8ZGR//HBwh/0E6L/+jkFf/mIdS/zs2Lf8aGiD/ExMW/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAG+/v8ACxsbMA7+/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzs7QCbmpwA7OztAKSj + pQAAAACoAAAA/wAAAP8AAAD/AAAA/wICAv8dHCD/JCMn/z08QP9dXGD/enp9/5mZmv+vr6//v769/8fG + xf/Lysn/y8jH/8fEw//DwcD/wL69/7+9vP+9u7r/u7i3/7m2tf+2tLP/tbKx/6+sqv+qqKX/raqp/6uo + p/+ppqT/p6Si/6Shn/+koZ//op+d/5+cmv+em5n/nZqY/5qXlf+XlJL/lZKQ/5OQjv+Bf33/UE9R/yQk + Kv8VFh3/Hx4f/1hNNv+zmln/+9d0//3Ydf/40nL/9c9x//XPcP/2z3H/9tBx//XQcf/10HD/9c9w//bQ + cf/40nH/+dNx//XQcP/pyWz/3Lpk/9KxYP/QsWD/2Llk/+PEav/wzW7/+NFx//nTcf/503L/99Fx//fT + cf/51XL/6cds/4p3Sv81MSr/DhAb/xARG/8QERj/Fxgg/z4/Rf9mZmv/Xl9m/y0vOf87Ni7/iXVG/+LB + af/403H/+NNy//bRcP/30XH/99Bx//bRcP/813P/6cdr/woJBf83Miv/FhYe/x0cIf8eHSH/ISAj/1NK + Nv9ORTP/ICAj/x0dIv8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAKjX19gAAAAAAObm5wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/e3wAAAAAA4+LjAAAAACAAAAD/AAAA/wAAAP8AAAD/AAAA/xIR + FP8cGx//GBcc/xcWHP8aGiH/Kiow/0VESP9iYmP/hoWF/7KxsP/Ny8r/0M7N/8rHxv/GxMP/xsLB/8PB + wP+/vr3/vbu6/727uv+tq6r/h4WF/3p4d/+npKP/sa6s/7Ctq/+tqqj/qqel/6qnpf+opaP/p6Si/6aj + of+mo6D/m5iV/4aDgf95dnX/fHp4/1VUVv8kJCz/ERIZ/zMuKP95aUH/yKpd//PObP/6027/99Bu//bP + bf/1z23/9c9t//bPbf/2z23/9c9t//XPbP/2z23/99Bt//bQbv/ow2j/xahc/5eBSv9rXTv/Ukgx/01D + L/9cUTL/gW9A/7GWU//buWL/885r//fVbv/61W//+9px/+3PbP+3nFf/Pjct/xgYH/8ZGR//Ghgc/xcW + Gv9PTlL/qamr+e7u7QDk5OQAoKGj8klLUvg2Mir/i3dE/+bGaP/613D/+tNu//nSbf/40m7/+dJt//3a + cf/HrFv/LygY/y4qKP8WFx//Hx4i/x4dIv8eHiL/HR0i/x4dIv8eHiL/EhEU/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAIJGRkwAAAAAA5OTlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6ejpAAAA + AACgoKIAlZSWAAAAAKIAAAD/AAAA/wAAAP8AAAD/AAAA/xwcH/8dHSD/Lyol/0E5Kf8lISL/FhUf/xUW + Iv8mJy7/T09S/5ybnP/Kycj/1NPS/83Lyf/Fw8H/xsTD/8nHxv/Jx8X/wb69/4B/gP9SUVP/W1lb/5WT + kv+0sbD/uba1/7azsv+zsK7/pqOh/52amP+XlZT/k5GP/4WEgv9iYWL/Pz1B/y4tMf8yMTX/IiIp/zQv + Kf9qWzf/r5RQ/929Yf/0zmj/+dBp//bOaP/2zWj/9c5o//XOaP/2zmj/9s5o//bOaP/1zWf/9s5o//jP + af/0y2j/tppU/3BfO/9COi3/Qz86/3h2d/+Ih4n/d3d6/1taXP9PTUr/Tkg+/15SOP+AbDv/p45H/8io + U//PsVr/qZNQ/1lPNv8gHiH/EREY/xIRFf8gHyP/X19i/7m4uv/u7u6p+/v8Ovn59zq+v8E6rK2wpXx8 + f/9MRj3/hXE+/8eoUf/sxmD/8cli//DJZP/txmT/9dFp/5J+Qf9HPSX/JyUl/xYXH/8gHyP/Hx4i/x4d + Iv8cHCL/HRwi/x4dIP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKLb29sAzc3OAAAAAADk5OUAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADl5OUAAAAAAL29vgDLy8wAAAAAGAAAAP8AAAD/AAAA/wAA + AP8AAAD/DAwN/xsbIv89Nyz/e2o9/4d1P/9hUjL/NC0j/xoZG/8YGSH/RkZM/3l4ef+sq6r/1NPR/7Gv + r/+PjY7/nJqa/8XCwf+3tLT/h4aH/4qKjP+fnqD/jo2O/7e0tP+/vLz/oJ2d/3Nxcf9wbm7/enh4/25t + bf9QT1D/QD9C/ycnL/8YGCH/DxAa/xARHP8yLSX/hnM//82wV//xymH//NRm//rQZP/1zWL/9Mxi//XM + Yv/1zGL/9cxi//XMY//1zGL/9cxi//TLYv/3zWP/+M5j/+e/Xv95aD7/JCAe/yMjLf9ub3b2o6Sqka2u + snaQkpt2q6yzdpyepXaTlJvViYiK/3x3b/95cFv/dmlJ/2dZOf9FPCn/Gxka/xUVGv8kJCj/SEhL/3p6 + e/KkpKWGzs7Odv///z36+vsA8PDvAMTFxwDe3uA7y8vPoJGRlv9uaF3/fW9L/5aBTv+Wf0n/h3I//3pl + N/+AbDr/Ni4a/zw1Jv8iISP/Ghoh/yAfI/8gHyP/Hx4j/x8eI/8fHiP/DAwN/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAGL+/wADo6OgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA8PDwAOHh4QDFxMUAAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/EhMZ/zAsJ/95aDz/z7FU/8ar + Uf+chkX/bl43/zw1Jv8ZGBv/ISEp/2JhZf+2tbT/lJOT/2RjZf9sa23/mZeX/4mIiP+enp//2NjZ/+fn + 6P+Xl5n/oqCh/5mWl/93dXb/W1pc/3JxdP9sa27/Q0JH/xQVHP8SEhn/Ih8e/0A4Kf9ORS7/SEAs/4Fu + PP/WtVX//9pi//vSX//1zF3/9Mpc//TLXP/1y1z/9Mtc//TLXP/0y1z/9Mtd//TLXP/1y1z/9cxd//rP + Xv/60F7/4btW/1xOLv8TEhj/RkZO/8XFxvLW1dUuzMvMAIuNlADp6ewA6urtAO3t8HHY2N6zwsPJs56g + qLaBgYjvYGFo/0hJUf9EREr/VlVY/25ucNOcnJ2zxMTEmMXFxQy9vb0AAAAAAPr6+wAAAAAAw8TGAOfn + 6QDx8fIv3t7hr3t9hrOKio7miIWE/397dv9kYV7/R0VG/zczNf8JCAj/IiIi/x8dIv8eHSL/IB8j/yAf + I/8gHyP/IB8j/xkYG/8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2Nr+4t7gEtbS2AAAAAADg4OAA4uLiAODg + 4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs7OwAsbCyALa1twAAAAAGAAAA/AAA + AP8AAAD/AAAA/wAAAP8CAgL/GBgg/zEsJv+jiUT/5shX//vXW//mvlT/qY5E/0tCK/8XFhn/KSgv/2Zm + aP9ubm//c3J1/3Rzdv9oZ2n/T05Q/6ampv/s7O3/7u7u/7Gxsv93dXb/VFJU/2dmaP+mpab/wMDC/3Z1 + ef8vLjP/HRwd/zcxJ/9uXjT/rJJE/8ytTf/Epkv/37pS//LKV//2zVj/9MtX//TLVv/1y1f/9MpX//XL + V//1y1f/9ctX//TKV//0y1b/9ctX//bMV//3zVj/+dBY//jPV//lvlH/ZFUs/zMxMv93d3346ejq1/n5 + +S719fUAAAAAAOTk5wDk5OcA5ubpA9LS1wT19fYE9PT1DPT09arg4OHkxMTF5Li4ueTMzM3k0tLTX9PT + 1AS+vr4EwsLCAL+/vwAAAAAAAAAAAAAAAAAAAAAA5uboAO7u7wHY2NsEe3yDBPX2+Ejx8vUA4uPoAMfI + zACpqq1yfX2CAAAAAP8eHiP/HBsg/x4dIf8gHyP/IB8j/yAfI/8gHyP/AgIC/wAAAP8AAAD/AAAA/wAA + AP8BAQH/qaqqAODg4ADv7+9w9vb2GuDg4Bbi4uIC4ODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOzs7ADs7OwA8vLyAOjo6AAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8LCw3/HB0h/0lA + LP+1mUT/981T//zSVP/vx1H/vp9E/35rNP9EOyn/Hx8m/yIiKP9vbnH/uLe4/7y8vf9xcXL/vb29//f3 + 9//5+fn/2dna/29vcf93d3n/srGy/8DAwP94eXz/MDA3/zgxIv+Cbjb/vJ5E/+C6Tf/yyVH/985T//bN + U//2zFP/9ctS//TKUv/zylH/9MpS//XLUv/1ylL/9cpS//XKUv/1ylL/9MpS//XLUv/70FL/+c5S/+vE + UP/gvUr/2bdG/8amSf94bVD/h4aJ/8bFyczX1tku2tnbB/r6+gAAAAAA5OTnAOTk5wDm5ukA0tLXAPv7 + +wD9/f4A////HO3t7ibR0dEmxMTFJtnZ2Sbd3d4O2dnaAL6+vgDCwsIAv7+/AAAAAAAAAAAAAAAAAAAA + AADm5ugA7u7vANjY2wB7fIMA////F/z+/ybt7vQm0tPYJsfHySatra+XGxob/yQjKP8bGh7/Hh0h/yAf + I/8gHyP/IB8j/w0NDv8AAAD/AAAA/wAAAP8AAAD/AAAA/x0cH/9AP0L/ZmVn/5SUlejExMUA4ODgt+Li + 4hbg4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADk5OUA4ODhAL6+ + wAAAAACtAAAA/wAAAP8AAAD/AAAA/wAAAP8TExf/HR0i/2ZWMf/DoUL//9NO//zQT//yyUz/27hH/5+E + Of84MCH/CQoT/1ZWXv+/vr//8vLy/8/Pz//o6Oj//Pz8//7+/v/29vb/y8vM/7a2t/+SkpT/UVFY/ygq + M/9KQCn/ln81/927SP/zyU3/+89O//vOTf/5zU7/+c5O//fMTf/1ykz/9MlM//TKTP/1yk3/9cpN//XK + Tf/1yk3/9cpN//TJTP/4zE3/9stN/964SP+ghjz/bl0r/21eNP+ZjWD/yb2b/766r47Ix8dd3dzfRdHP + 0wDPztEA9/f3AAAAAAAAAAAAAAAAAAAAAAAAAAAA9/f4APf3+AD4+PkA5OTlAMjIyQC8vL0A0NDRANbW + 1wDV1dYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+vwA9fb5AObn + 7ADLzNAAsbGxAHBwcZc+PT7/Hh0g/xoZHf8fHiL/IB8j/yAfI/8WFhn/AAAA/wAAAP8AAAD/AAAA/wAA + AP8LCgz/Hh0h/xwbH/8mJSn/ODc7/1RTV/94d3n2lJSVALa3uKHPz9AA6OjpAOfn6AgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+vr6ANDP0QDR0NIAvr2/AAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8UFh3/KSYl/3hkMv/XsUH/+s5H//3RSP//1En/5r1E/5N8NP8+NR//Pj0//4+Plf/x8fD///////// + ///+/v7////////////y8vL/pKSm/0FCSv8MDBT/Misd/5d/Nf/mwEX//9VJ//rNSP/1ykf/9MhG//TI + R//0yEf/9MlH//XJR//1yUf/9clH//XJR//1yUf/9clH//TJRv/1yUf/9clG//jMR//atEP/i3Y1/zs0 + Iv8mJCf/WFdc/6qrrfTg4eSi7+/vJuHg3gDW1dgA09LVANPS1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7u7vAO7u7wCCgoQAMzMzs0dHSf8YFxv/Gxoe/yAf + I/8gHyP/HRwf/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x4dIP8eHSH/Gxoe/xUUGP8ODRH/Dw4T/x8e + Iv8/PkL/Xl5h/0pKS/85OTq0wsLDDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09LUANPS + 1AClpaYArq2vAAAAAEkAAAD/AAAA/wAAAP8AAAD/AAAA/wQEBP8TFSH/My4l/4ZwMf/lvT//98xB//nM + Qf/6zUL/7MRA/6KHM/9HPib/TU5V/7Cxs//q6ur//Pz8///////+/v7/8vLy/7Cxsv9MTFH/GxgY/0U8 + JP+RejL/37k///3RQ//1yED/88dB//PHQf/0yEH/9MhB//TIQf/0yEH/9MhB//TIQf/0yEH/9MhB//TI + Qf/0yEH/88dA//TIQf/6zEH/68E//6KHNf8uKiP/ERIe/1NTXf+1trnv9vf5sfX2+RL19vkA4N/fALy8 + vgCfnqEAm5udAMHBwgDe3t4A3NzcANzc3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADw8PEA8PDxAX19gB4WFhfeQEBD/xgXG/8cGx//IB8j/yAfI/8EBAT/AAAA/wAAAP8AAAD/AAAA/wAA + AP8WFRj/HBsf/xwbH/8cGx//Hh0h/yIhJf8nJyr/JiUo/w8PEP8PDw//VFRV86OipFKPjpAKAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO/v7wD19fUAy8vMAAAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/wkJCv8ZGCH/Ni8l/5Z9Mf/lvjr/+848//XIO//2yjz/8MU7/4xzK/81LyT/OjxG/6Oj + pv/o6Oj//Pz8//Ly8//ExMX/S01V/yooJP9pWCX/y6g2/+rAOv/0yDz/9cg7//PGOv/0xzv/9Mc7//TH + O//0xzv/9Mc7//THO//0xzv/9Mc7//THO//0xzv/9Mc7//THO//zxjr/9Mc7//7PPP/MqDb/a1oo/xcW + H/9CQkj/sbGy+vP09KL4+PgT9fb4AvX2+ATi4uQGvLy+Bp+eoQabm50GwcHCBt7e3gTc3NwA3NzcAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzs7QDs7O0F5eXmAAgICP8uLjH/Ghkd/x0c + IP8gHyP/CgoL/wAAAP8AAAD/AAAA/wAAAP8AAAD/DQ0P/xoZHv8ZGB3/HRwh/yoqLf8/PkL/NDQ1/QAA + AP8AAACaAAAAJuHh4gDu7u8A8fHyAJCPkQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOzs7ADo6OkAAAAAAwAAANYAAAD/AAAA/wAAAP8AAAD/AAAA/wwMEP8dHCL/PDUl/52C + Lv/kuzT//c82//XIN//8zTf/1K0y/3plJf8kISH/OTpD/5ydof/My8r/qaiq/1NUW/8kJCf/aFYk/8ij + Mf/3yjb/+Mo3//XHNv/zxTb/88U2//TGNv/0xjb/88Y2//PGNv/zxjb/88Y2//PGNv/zxjb/88Y2//PG + Nv/zxjb/88Y2//LFNf/zxjb//9A3/7ybMf9SRSL/Fxci/3Z1ev+xsbCIurq6I/n5+QD7+/sA/v7+gOno + 6rfCwsS3pKOmt6CgorfHx8i34+Piet3d3ADc3NwAxMTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA0NDRANDQ0QbPz9AACAgI/x4dIf8dHCD/Hh0h/w8OEP8AAAD/AAAA/wAAAP8AAAD/AAAA/wQE + Bf8bGh7/MC8z/wAAAP8AAAD/AAAAtxUVFf9nZ2i8w8PDT8fHyEfn5+dH////R////yQAAAAAkI+RAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+fkA4eHhANnZ2QDR0NEAAAAAGAAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/w8PE/8YGSH/SD4l/52CK//luzD/+8wx//nJMv/2xzL/y6Ut/3Je + Iv8lIRz/R0hP/19gZ/9GSFH/Hh0k/1lLIf+5lyz/98gy//nKMv/0xjH/88Ux//PEMv/0xTL/9MUy//TF + Mv/0xTL/9MUy//TFMv/0xTL/9MUy//TFMv/0xTL/9MUy//TFMv/0xTL/88Qx//TFMv/+zjL/w58u/1pL + Iv8TFSL/YWJn/5WVmKafoKdzyMrTebe5wnykpq/eiIqT/2lrc/9VVl//UFFc/2lrdf+foKba09PUa9LS + 0wi/v8EA8fHzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPr6+gCgoKEAoaGiAIiIiQAfHx//FRQY/x4d + If8RERP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABuBwcH/QAAAKiXl5ic/Pz8hf// + /y7+/v4AvLy9ANvb2wD09PQA/f3+APz8/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADj4+MAwsLCAMPDwwDBwcEAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xAQ + FP8UFiL/SD4j/56CKf/mvCv/9sct//zLLf/5yS3/1Kwr/29cI/8oIx7/Dg8a/x4cGv9QQyD/tpQp/+/C + Lf/7yi3/88Mt//PDLP/0xC3/9MQt//TELf/0xC3/9MQt//TELf/0xC3/9MQt//TELf/0xC3/9MQt//TE + Lf/0xC3/9MQt//TELf/zwyz/9MQt//zLLf/asCv/g2wl/yEfIf8pKjT/YWFo/4qIiP+JhX//c29i/1tU + RP9HPyr/OjEb/zMrFf8sJBP/JiEY/1NQTv+np6ntzc3PWNPT1BX4+PkAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/Pz8AKSkpAqhoaI8U1NTACgoKf8UExf/EhEU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAACoBwcH/QAAAG7b29tk+vr6AM/P0ADx8fEA+vr6APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQAxMTEAKuq + qwCtrK0AAAAAVwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xAQFP8XGCL/PTUk/5d8Jv/luif/+Mgm//rI + Jv/4xyb/2K4l/2hXIf85MiD/aFgj/8miJv/zwif/+Mcm//PDJv/zwyb/88Mn//PDJ//zwyf/88Mn//PD + J//zwyf/88Mn//PDJ//zwyf/88Mn//PDJ//zwyf/88Mn//PDJ//zwyf/88Mn//PCJ//zwyf/9sUn//XE + J//Dnib/X1Aj/yYiH/8tKB3/V0gd/4NqHf+Zexv/qoke/7eUIv++mST/vJkk/7OSJf+PdRz/YlMi/1xb + Wf3R0dP08fH0VOnp6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD39/cA9/f3KOzs7AA2Njf+IyMm/w4N + EP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7+KSkp4BsbG0TCwsML7OztC/v7+wX4+PgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExADExMQAqKeoAJ6dnwCamZsAAAAAcQAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/w8OE/8cHCP/NjAi/4duIv/XrCH//ssf//vIIP/2xCD/yaEg/7qXIP/SqSD/9MMg//bF + IP/zwh//8sEg//PCIP/zwiD/88Mg//PCIP/zwiD/88Ig//PCIP/zwiD/88Mg//PCIP/zwiD/88Ig//PD + IP/zwiD/88Ig//PCIP/zwyD/88Ig//LCIP/ywR//9cQg/+2+If/QpiD/qIgg/7GOHf/OpRv/5Lcb/+q7 + HP/vvx7/8sEg//PCIf/zwiH/8cQg/+q/H/+nhhr/Qz0s/4mKjv+cn6hWlZifAPr6+wD6+vsA/f7/AOvr + 7QDNzM0Avr6+AOnp6QD4+PcA9PT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5+joAOfo + 6ADn6OgA5+joANna2gDj5OMq1dbWABEREv8NDA//AAAA/wAAAP8AAAD/AAAA/wAAAPYAAAD/Dw8Ppaem + p0P49/gc8O/wAMLCwwDs7O0A+/v7APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACqqaoAl5aYAI2MjgCHhogAAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wwMEP8ZGSL/NC4i/3hi + IP/DnBz/9cMb///KGv/1wxv/8sAc//XEG//3xBv/88Eb//LAG//zwBv/8sEb//LBG//ywRv/8sEb//LB + G//ywRv/8sEb//LBG//ywRv/8sEb//LBG//ywRv/8sEb//LBG//ywRv/8sEb//LBG//zwRv/8sEb//LA + G//zwRv/9cMb//bEHP/tvRz/8sAc//jGHP/7yRz/+sgc//rGHP/5xhz/+cYc//nGHP/5xxv//84c/9Kn + GP9kUxv/PT1E/mxwf7epqrGS////Of///wH///8n9fX3WNjX13THx8eH7e3tkvv7+jv39/cAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA8fDxAPn4+ADo6ekA7e7uBuzt7Xrs7e05wcHCAKenqSKen6AADw4P/wAA + AP8AAAD/AAAA/wAAAPcAAADYAAAAW0NDQ3L///8G+fn5AO/u7wDr6usAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZmJoAraytALGwsQCvrq8AAAAAhgAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJC/8UFSL/KSUh/2ZUHv+1kRr/57cX//vHFf/8yBb/9cIW//G/ + Fv/xvxf/88AX//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PA + Fv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AX//K/Fv/yvxb/9cIW//rGFv/4xBb/9MIW//G/ + Fv/xvxb/8b4W//K/Fv/ywBb/8sAW//G/Fv/6xRb/6bkW/6mHFv9COBr/UVBS/5OTmv/DxMrkzs/TYMvM + 0KqwsbibkJCWYoqKjCnPz8+A5ubmauDg4AAAAAAAAAAAAAAAAAAAAAAAycrLAMnKywDz8vMA////KuHi + 4lTGx8dmysvMAMnJymLR0dIdmZmadCQkJAAAAAD/AAAA/wAAANIAAACXAAAAYQAAAAAAAAAA9vb2APj4 + +AD39/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD7+/oA/f39APn5+ACsq60AAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wQE + BP8VFh7/HRwi/0c9H/+ggBj/3bAT//XCEf/1wRH/88AR//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/ + Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/ + Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//PA + Ev/2wxH/6bkS/6KBE/9XRxX/RD4s/2NfUv5/eWn8c2xc/klFPv8eHSD/IB8l/5mZmv/BwcJnt7e4AAAA + AAAAAAAA5ubmAO3t7QDIycoAy8zNAOzs7Rjr6uqLuLi6fm9vcX6PjpD+kI+SVLW1tW0YGBj/AAAA/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A/v79AJmY + mgCUlJYAAQEBcwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8TEhn/HBwh/zArH/9zXxn/wJgR//K+ + C//7xQv/9MEL//G/DP/xvgz/8b8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/ + DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/ + DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvgz/8b4M//K/DP/zwAv/7rwM/9SoDP+5kg3/rIkP/7KN + EP+1kA7/knUR/09BFP8kIyb/lpWY/728v2ezsrUAAAAAAAAAAADm5uYA7e3tAMnKywHIycoKz9DRQ5WV + lwtCQkWcKSgs/46Nj/9GRUaKAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAC/vsAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/f38AAAAAAD7+/oAk5OVAKOjpQCcnJ4AAAAAVwAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8LCw7/GRki/ykmIP9VRhv/knUT/9KmC//3wgX//ccE//fCBf/xvgb/8L0G//G9 + B//xvgf/8r4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+ + B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//K+ + B//xvQf/8b4H//K+B//3wgb/9cAG/++6BP/otQL/6LQA/+q4Af/hsgP/poIK/0pCJ/+io6T/w8XNZ7q8 + wgD19vUA8fLxAOjo6ADz8/M409PTLpmZmxtlZWeqODg7/xgXG/8mJSn/QEBB/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAAAAAAAAAAAAA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACVlZcApKSlALa2twCxsbIAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/EBIa/xsb + Iv85Mh7/clwW/66KDP/aqwX/9L8C//vEAf/4wQH/874C//G9Av/xvAL/8b0C//G9Av/yvQL/8r0C//K9 + Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9 + Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8bwC//G9Av/0vgL/+MEB//nD + Av/6wwL/+sUC//7IAP/GmwT/V0sl/6eoqP/DxtFixcjOAPz9/Aj9/v1D2traEbu7vDCKiovMSkpN/yAg + I/8UExf/ERAU/wICAv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAANwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKUAwsLDAMLCwwDNzc0AAAAAGAAA + ANYAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CgoN/xUVIf8aGiP/Qjgc/4FnEv+/lQn/5LID//K8 + Af/2vwD/9b8A//S+AP/zvQD/8rwA//G8AP/xvAD/8bwA//K8AP/yvQD/8rwA//K8AP/yvAD/8rwA//K8 + AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8 + AP/yvAD/8rwA//K8AP/yvQD/8rwA//G8AP/xvAD/8LsA//G8AP/2vwD/8LsA/6yHBf9AOCP/k5OW/8HD + yoTT1NYd5OTkA9LS0lyenp/fWVhb/yIiJf8SERb/GBcb/wwLDf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA1qamplD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADCwsMAwsLDAN/f3wDj4+MAAAAAAwAAAJEAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/xERFf8YGSP/IB4i/0A2Hf96YRT/upIK/+SyAv/3wQD/+cIA//W/AP/zvQD/8bwA//K9 + AP/yvQD/8r0A//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//K9 + AP/xvAD/8r0A//rDAP/ksgP/jnAL/yEfH/9jY2j/vb7AedLS03aWlpjeVVRX/CkoLP8aGB3/Gxoe/xIR + FP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAJEAAAADs7K0AP7+/gAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMLCwwDCwsMA4+PjAPX1 + 9QDw8PAAyMjJAAAAAEkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wICAv8SEhj/HRwj/ygl + IP9DOBz/bVkV/59+Df/NoQb/7bkA//vEAP/9xgD/+cMA//S/AP/xvAD/8LsA//G8AP/xvAD/8bwA//G8 + AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//G8AP/xvAD/8bwA//G8AP/wuwD/8bwA//S9AP/4wQD//8kA//K/Af+ohAr/MCod/zEx + N/9WVlv/WFha/zMyNf8gHyP/Ghkd/xISFP8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAABJwcHCAMfGxwCnpqgA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADi4uIA9/f3AP///wD29vcAubm5AAAAABAAAACtAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgP/Dw8X/xcYI/8lIyH/QTcc/2VTF/+NcBD/sYwL/8+j + Bv/ntAL/9L4A//vDAP/7xAD/+8QA//jCAP/2vwD/874A//K9AP/xvAD/8bwA//C8AP/wuwD/8LwA//C8 + AP/wvAD/8bwA//C8AP/wvAD/8LwA//C8AP/wuwD/8LwA//G8AP/xvAD/874A//W/AP/3wQD/+sMA//zE + AP/7xAD/+MAA/+y4Af/YqwT/upMJ/39mEv8wKx7/HR0i/x8eJP8dHCD/FRQY/xEQE/8CAgL/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAAEObm5gDR0dEAz8/PAK2srgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD39/cA/v7+AOzs7QDIyMkA3NzdAL29vgAAAABJAAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wwNEv8SFCH/Fxkj/ysmIP9KPxv/cl0U/5h5Dv+3kAn/z6IG/9+vBP/ptwL/8LsB//S+ + AP/2vwD/98AA//bAAP/3wAD/9sAA//bAAP/1wAD/9r8A//bAAP/3wAD/9sAA//XAAP/2wAD/9sAA//bA + AP/3wAD/+MEA//fBAP/2wAD/9b4A//K8Af/ruAL/47ED/9WmBf/Blwj/pIIM/4BmEv9aSRj/OTId/yQi + If8cHCH/GBcb/w4OEP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8BwcHTc3N + zQD8/PwA8/PzAM7OzgDOzs4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMfHyAD19fUA+vr6AOPj + 4wAXFxcHAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ICAn/EhMY/xUX + JP8YGST/JCIh/zszHP9aShj/fWQT/519Df+6kgn/z6IG/96tA//otQL/7rsB//K+Af/0vwH/9cAB//bA + Af/3wAD/98AA//e/AP/3wAD/98AA//bAAf/1wAH/9MAB//O+Af/xvAH/67gC/+KwAv/VpgX/wpgI/6aE + C/+HaxH/ZlIW/0Y6G/8sJyD/HBsj/xYXJP8YGSP/FRUY/wgICf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAgAAAAAbLy8wAxcXGAPj4+ADy8vIAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAx8fIAPj4+AD///8A5OTlANfX2ADMzM0AAAAAGAAAAKIAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJC/8TFBn/Gxsh/x4dIv8jISH/LCgf/zkx + Hv9KPRz/XUsY/29ZFP+BZxL/kXQQ/6B/Df+qhwz/s40K/7qRCP++lQj/wJUI/7+WCP+8kgj/tI4J/62I + DP+jgQ3/lngO/4hsEv91XxT/YlAX/09DG/8+Nh3/MCsf/yUjIf8fHiL/HBsi/xoaIf8TFBn/CQkL/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAAABjm5uYA8PDwAPHx + 8QDExMUA+Pj4APLy8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9/f3AP7+ + /gDh4eIA5ubnAPDw8QDPz9AAsbKyAAAAACAAAACoAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AwME/woLEP8RERr/Fxch/xwbI/8hICL/JyQh/y4pH/82MB7/PDQd/0I5 + HP9HPBv/TEAb/09BGv9RQhv/UEIa/01AG/9JPhv/RDoc/z82Hf84MR7/MSsf/yomIf8jISH/HRwi/xkZ + I/8VFiL/EBEa/wsLEP8DAwT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/KSkp/gAAACDU1dUA7u7uAP///wD8/PwA/Pz8AMXFxgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLi4wDi4uMA5ubnANzc2wDk5OQA3d3dALGx + swAAAAAbAAAAkQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wUFB/8JCg//DA0V/w4QG/8PER//EBMh/xETJP8SFST/ExUl/xMVJf8TFSX/EhUl/xMV + JP8RFCT/EBMi/xARH/8OEBv/DQ4V/woKDv8FBQf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAkSMjIyPX1tYp9vf2C/r7+wDz9PQA/Pz8APn5 + +QD5+fkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39/gAOPj5ADPz9AAAAAACgAAAGEAAADiAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADiAAAAYQAA + AArn5+gA/Pv8APn4+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADa2toA3t7eANTU + 1ADh4eIA6OjpAO/v7wDq6eoA4ODgAL69vwAAAAAlAAAAhgAAAPcAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPcAAACGAAAAJcnJygDMzM0A09PUAO3t7gD///8A+/r7AO3u7gD19vYA8vPzAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/f4ADj4+QA9fX1APv7+wD8/PwA2trbANfX + 2ADJyMkAuLi5AAAAACUBAQF4AAAA1gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAAAHYAAAAlycnJANvb2wDr6+sA5OTkAN3d + 3gDZ2doA5+foAPz7/AD5+PkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADz8/MA9fX1APLy8gDQ0NEA8vLyAPf39wD29vUA09LUAM3NzgC2trcAAAAACgAA + ADcAAAB8AAAAxQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAMUAAAB8AAAANwAA + AAq+vr8AxcXFAO3t7QD///8A////AP39/QDa2tsA19fYANfX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADt7e0A7+/vAOvr6wDJyMoA/Pz8AP7+/gD8+/wA6+rrAM/P0ACvr7AAkZCRAAAAABAAAAAwAAAAVwAA + AIAAAACoAAAAywAAAOcAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAOcAAADLAAAAqAAA + AIAAAABXAAAAMAAAABCioaMAxMPEAOHh4QDx8fEA8PDwAO/v7wC7u7wA4uLiAPj4+AD7+/sA+vr6AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6+voA+/v7APj3 + +ADn5ucAy8vMAKysrQCOjY8AcnJ0AOTk5ADi4uIA3t7eANTU1QDOzc8AxMTGALu7vAC4uLkAAAAAAQAA + AAMAAAADAAAAAbq5ugDDw8QAy8rMANLS0wDc3N0A5eTlAOjo6QDr6+sAhoWHAJ+eoADAv8AA3d3dAO3t + 7QDt7e0A7e3tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////////gAAAA///////////////4AAAAAAf/////////////gAAAAAA + Af////////////gAAAAAAAAf///////////AAAAAAAAAA///////////+AAAAAAAAB///////////wAA + AAAAAAAA//////////gAAAAAAAAAAF/////////gAAAAAAAAAAAP////////4AAAAAAAAAAAD/////// + /4AAAAAAAAAAAAH///////8AAAAAAAAAAAAA///////4AAAAAAAAAAAAAH//////+AAAAAAAAAAAAAB/ + //////AAAAAAAAAAAAAAH//////gAAAAAAAAAAAAABf/////gAAAAAAAAAAAAAAP/////wAAAAAAAAAA + AAAAAv////8AAAAAAAAAAAAAAAL////+AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAP////AAAAAA + AAAAAAAAAAA////wAAAAAAAAAAAAAAAAP///8AAAAAAAAAAAAAAAAC///+AAAAAAAAAAAAAAAAAH///A + AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//wAAAAAAAAAAAAAAAAAD//8AAAAAAAAAAAAAAAAA + AP/+AAAAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAA + AAAAAAA/9AAAAAAAAAAAAAAAAAAAP/QAAAAAAAAAAAAAAAAAAD/0AAAAAAAAAAAAAAAAAAA/4AAAAAAA + AAAAAAAAAAAAL+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAAAAAAAAAAAB8AA + AAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAHwAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAA + AAOAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAA + AAfAAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAC/0AAAAAAAAAAAA + AAAAAAAv9AAAAAAAAAAAAAAcAAAAL/QAAAAAAAAAAAAAPgAAAD/8AAAAAAAAAAHwAP8AAABP/AAAAAAA + AAAB/wP/wAAAf/wAAAAAAAAAA/////4AAB//AAAAAAAAAAf////+AAAB/gAAAAAAAAAf/////gAAAf8A + AAAAAAAAP/////4AAAH/wAAAAAAAAH/////8AAAB/+AAAAAAAADgP////AAAP//AAAAAAAAAAB////wA + AP//4AAAAAAAAAAP///8AAf///AAAAAAAAAAB///+AA////wAAAAAAAAAAf///gA/////AAAAAAAAAAA + B/+4A/////4AAAAAAAAAAAP+EB//////AAAAAAAAAAAD/AP//////4AAAAAAAAAAA/AB//////9AAAAA + AAAAAAPAAf//////4AAAAAAAAAADAAB///////AAAAAAAAAAAAAA///////4AAAAAAAAAAAAAP////// + +AAAAAAAAAAAAAB///////4AAAAAAAAAAAAA////////AAAAAAAAAAAAAf///////+AAAAAAAAAAAAf/ + ///////gAAAAAAAAAAAH////////8AAAAAAAAAAAH/////////wAAAAAAAAAAD//////////8AAAAAAA + AA///////////4AAAAAAAAAB///////////wAAAAAAAAD////////////AAAAAAAAH/////////////A + AAAAAAP//////////////AAAAAB///////8= + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/SplashScreenPlugin.cs b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/SplashScreenPlugin.cs new file mode 100644 index 00000000..ec5a5b2c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/SplashScreenPlugin.cs @@ -0,0 +1,27 @@ +using System; + +using DotSpatial.Extensions.SplashScreens; + +namespace HydroDesktop.Plugins.SplashScreenManager +{ + public class SplashScreenPlugin : ISplashScreenManager + { + + public void ProcessCommand(Enum cmd, object arg) + { + SplashScreen.UdpateStatusText(arg.ToString()); + } + + public void Activate() + { + SplashScreen.ShowSplashScreen(); + + } + + public void Deactivate() + { + SplashScreen.CloseSplashScreen(); + + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/packages.config b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/packages.config new file mode 100644 index 00000000..fbdabace --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.SplashScreenManager/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/ChangeDatabaseForm.cs b/Source/Plugins/HydroDesktop.Plugins.TableView/ChangeDatabaseForm.cs new file mode 100644 index 00000000..eb36081c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/ChangeDatabaseForm.cs @@ -0,0 +1,166 @@ +using System; +using System.IO; +using System.Windows.Forms; +using DotSpatial.Controls; +using HydroDesktop.Configuration; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.PluginContracts; + +namespace HydroDesktop.Plugins.TableView +{ + public partial class ChangeDatabaseForm : Form + { + private string _oldDataRepositoryConnString; + + private string _oldMetadataCacheConnString; + + private readonly Map _mainMap; + private readonly ISearchPlugin _searchPlugin; + + public ChangeDatabaseForm(Map mainMap, ISearchPlugin searchPlugin) + { + InitializeComponent(); + LoadSettings(); + + _mainMap = mainMap; + _searchPlugin = searchPlugin; + } + + private void LoadSettings() + { + //settings for DataRepository + _oldDataRepositoryConnString = Settings.Instance.DataRepositoryConnectionString; + if (!String.IsNullOrEmpty(_oldDataRepositoryConnString)) + { + txtDataRepository.Text = SQLiteHelper.GetSQLiteFileName(_oldDataRepositoryConnString); + } + + //settings for MetadataCache + _oldMetadataCacheConnString = Settings.Instance.MetadataCacheConnectionString; + if (!String.IsNullOrEmpty(_oldMetadataCacheConnString)) + { + txtMetadataCache.Text = SQLiteHelper.GetSQLiteFileName(_oldMetadataCacheConnString); + } + } + + private void btnCancel_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Cancel; + Close(); + } + + private void btnOK_Click(object sender, EventArgs e) + { + string newDataRepositoryPath = txtDataRepository.Text; + string newMetadataCachePath = txtMetadataCache.Text; + + //(1) check if new DB exist and create if needed + if (!SQLiteHelper.DatabaseExists(newDataRepositoryPath)) + { + SQLiteHelper.CreateSQLiteDatabase(newDataRepositoryPath); + } + + if (!SQLiteHelper.DatabaseExists(newMetadataCachePath)) + { + SQLiteHelper.CreateMetadataCacheDb(newMetadataCachePath); + } + + // Check databases schema + + // temporarily changed by JK - don't check the DefaultDatabase schema (to fix HydroModeler DB opening for AGU demo) + //if (!CheckDatabaseSchema(newDataRepositoryPath, DatabaseType.DefaulDatabase) || + // !CheckDatabaseSchema(newMetadataCachePath, DatabaseType.MetadataCacheDatabase)) + if (!CheckDatabaseSchema(newMetadataCachePath, DatabaseType.MetadataCacheDatabase)) + { + DialogResult = DialogResult.None; + return; + } + + //(2) Set the global settings + Settings.Instance.DataRepositoryConnectionString = SQLiteHelper.GetSQLiteConnectionString(newDataRepositoryPath); + Settings.Instance.MetadataCacheConnectionString = SQLiteHelper.GetSQLiteConnectionString(newMetadataCachePath); + + //(3) Update map layers + if (_mainMap != null) + { + var manager = new ThemeManager(_searchPlugin); + manager.RefreshAllThemes(_mainMap); + } + + DialogResult = DialogResult.OK; + Close(); + } + + private static bool CheckDatabaseSchema(string dataBasePath, DatabaseType databaseType) + { + try + { + SQLiteHelper.CheckDatabaseSchema(dataBasePath, databaseType); + } + catch (InvalidDatabaseSchemaException ex) + { + MessageBox.Show( + string.Format("The selected database ({0}) has incorrect schema:", Path.GetFileName(dataBasePath)) + + Environment.NewLine + Environment.NewLine + + ex.Message, "Incorrect schema", MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + + return true; + } + + private void btnRestoreDefault_Click(object sender, EventArgs e) + { + string defaultDataRepositoryPath = Path.ChangeExtension(Settings.Instance.CurrentProjectFile, ".sqlite"); + + txtDataRepository.Text = defaultDataRepositoryPath; + + //see if they are different from original + if (_oldDataRepositoryConnString != SQLiteHelper.GetSQLiteConnectionString(txtDataRepository.Text)) + { + //restore default.. + Settings.Instance.DataRepositoryConnectionString = SQLiteHelper.GetSQLiteConnectionString(txtDataRepository.Text); + } + } + + private void btnDataRepositoryFileDialog_Click(object sender, EventArgs e) + { + var fileDialog = new OpenFileDialog + { + Filter = "SQLite databases|*.sqlite", + FileName = txtDataRepository.Text, + Title = "Select the Data Repository Database" + }; + if (fileDialog.ShowDialog() == DialogResult.OK) + { + SQLiteHelper.GetSQLiteConnectionString(fileDialog.FileName); + txtDataRepository.Text = fileDialog.FileName; + } + } + + private void btnMetadataCacheFileDialog_Click(object sender, EventArgs e) + { + var fileDialog = new OpenFileDialog + { + Filter = "SQLite databases|*.sqlite", + FileName = txtDataRepository.Text, + Title = "Select the Metadata Cache Database" + }; + if (fileDialog.ShowDialog() == DialogResult.OK) + { + SQLiteHelper.GetSQLiteConnectionString(fileDialog.FileName); + txtMetadataCache.Text = fileDialog.FileName; + } + } + + private void btnMetadataCacheRestoreDefault_Click(object sender, EventArgs e) + { + txtMetadataCache.Text = Settings.Instance.CurrentProjectFile.Replace(".dspx", "_cache.sqlite"); + if (_oldMetadataCacheConnString != SQLiteHelper.GetSQLiteConnectionString(txtMetadataCache.Text)) + { + Settings.Instance.MetadataCacheConnectionString = SQLiteHelper.GetSQLiteConnectionString(txtMetadataCache.Text); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/ChangeDatabaseForm.designer.cs b/Source/Plugins/HydroDesktop.Plugins.TableView/ChangeDatabaseForm.designer.cs new file mode 100644 index 00000000..cec73ee9 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/ChangeDatabaseForm.designer.cs @@ -0,0 +1,223 @@ +namespace HydroDesktop.Plugins.TableView +{ + partial class ChangeDatabaseForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ChangeDatabaseForm)); + this.btnOK = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.btnDataRepositoryRestoreDefault = new System.Windows.Forms.Button(); + this.btnDataRepositoryFileDialog = new System.Windows.Forms.Button(); + this.txtDataRepository = new System.Windows.Forms.TextBox(); + this.lblDataRepository = new System.Windows.Forms.Label(); + this.groupBoxMetadataCache = new System.Windows.Forms.GroupBox(); + this.btnMetadataCacheRestoreDefault = new System.Windows.Forms.Button(); + this.lblMetadataCache = new System.Windows.Forms.Label(); + this.txtMetadataCache = new System.Windows.Forms.TextBox(); + this.btnMetadataCacheFileDialog = new System.Windows.Forms.Button(); + this.groupBoxDataRepository = new System.Windows.Forms.GroupBox(); + this.groupBoxMetadataCache.SuspendLayout(); + this.groupBoxDataRepository.SuspendLayout(); + this.SuspendLayout(); + // + // btnOK + // + this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnOK.Location = new System.Drawing.Point(324, 239); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 3; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + this.btnOK.Click += new System.EventHandler(this.btnOK_Click); + // + // btnCancel + // + this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnCancel.Location = new System.Drawing.Point(410, 239); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 4; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // btnDataRepositoryRestoreDefault + // + this.btnDataRepositoryRestoreDefault.Location = new System.Drawing.Point(10, 64); + this.btnDataRepositoryRestoreDefault.Name = "btnDataRepositoryRestoreDefault"; + this.btnDataRepositoryRestoreDefault.Size = new System.Drawing.Size(161, 23); + this.btnDataRepositoryRestoreDefault.TabIndex = 5; + this.btnDataRepositoryRestoreDefault.Text = "Use Default Database"; + this.btnDataRepositoryRestoreDefault.UseVisualStyleBackColor = true; + this.btnDataRepositoryRestoreDefault.Click += new System.EventHandler(this.btnRestoreDefault_Click); + // + // btnDataRepositoryFileDialog + // + this.btnDataRepositoryFileDialog.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnDataRepositoryFileDialog.Image = ((System.Drawing.Image)(resources.GetObject("btnDataRepositoryFileDialog.Image"))); + this.btnDataRepositoryFileDialog.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.btnDataRepositoryFileDialog.Location = new System.Drawing.Point(426, 40); + this.btnDataRepositoryFileDialog.Name = "btnDataRepositoryFileDialog"; + this.btnDataRepositoryFileDialog.Size = new System.Drawing.Size(38, 20); + this.btnDataRepositoryFileDialog.TabIndex = 8; + this.btnDataRepositoryFileDialog.Text = "..."; + this.btnDataRepositoryFileDialog.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btnDataRepositoryFileDialog.UseVisualStyleBackColor = true; + this.btnDataRepositoryFileDialog.Click += new System.EventHandler(this.btnDataRepositoryFileDialog_Click); + // + // txtDataRepository + // + this.txtDataRepository.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtDataRepository.Location = new System.Drawing.Point(8, 41); + this.txtDataRepository.Name = "txtDataRepository"; + this.txtDataRepository.Size = new System.Drawing.Size(412, 20); + this.txtDataRepository.TabIndex = 7; + // + // lblDataRepository + // + this.lblDataRepository.AutoSize = true; + this.lblDataRepository.Location = new System.Drawing.Point(6, 25); + this.lblDataRepository.Name = "lblDataRepository"; + this.lblDataRepository.Size = new System.Drawing.Size(235, 13); + this.lblDataRepository.TabIndex = 6; + this.lblDataRepository.Text = "Select the Data Repository SQLite database file:"; + // + // groupBoxMetadataCache + // + this.groupBoxMetadataCache.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBoxMetadataCache.Controls.Add(this.btnMetadataCacheRestoreDefault); + this.groupBoxMetadataCache.Controls.Add(this.lblMetadataCache); + this.groupBoxMetadataCache.Controls.Add(this.txtMetadataCache); + this.groupBoxMetadataCache.Controls.Add(this.btnMetadataCacheFileDialog); + this.groupBoxMetadataCache.Location = new System.Drawing.Point(11, 128); + this.groupBoxMetadataCache.Name = "groupBoxMetadataCache"; + this.groupBoxMetadataCache.Size = new System.Drawing.Size(474, 103); + this.groupBoxMetadataCache.TabIndex = 9; + this.groupBoxMetadataCache.TabStop = false; + this.groupBoxMetadataCache.Text = "Metadata Cache"; + // + // btnMetadataCacheRestoreDefault + // + this.btnMetadataCacheRestoreDefault.Location = new System.Drawing.Point(9, 74); + this.btnMetadataCacheRestoreDefault.Name = "btnMetadataCacheRestoreDefault"; + this.btnMetadataCacheRestoreDefault.Size = new System.Drawing.Size(163, 23); + this.btnMetadataCacheRestoreDefault.TabIndex = 9; + this.btnMetadataCacheRestoreDefault.Text = "Use Default Metadata Cache"; + this.btnMetadataCacheRestoreDefault.UseVisualStyleBackColor = true; + this.btnMetadataCacheRestoreDefault.Click += new System.EventHandler(this.btnMetadataCacheRestoreDefault_Click); + // + // lblMetadataCache + // + this.lblMetadataCache.AutoSize = true; + this.lblMetadataCache.Location = new System.Drawing.Point(6, 27); + this.lblMetadataCache.Name = "lblMetadataCache"; + this.lblMetadataCache.Size = new System.Drawing.Size(238, 13); + this.lblMetadataCache.TabIndex = 9; + this.lblMetadataCache.Text = "Select the Metadata Cache SQLite database file:"; + // + // txtMetadataCache + // + this.txtMetadataCache.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtMetadataCache.Location = new System.Drawing.Point(8, 43); + this.txtMetadataCache.Name = "txtMetadataCache"; + this.txtMetadataCache.Size = new System.Drawing.Size(412, 20); + this.txtMetadataCache.TabIndex = 10; + // + // btnMetadataCacheFileDialog + // + this.btnMetadataCacheFileDialog.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnMetadataCacheFileDialog.Image = ((System.Drawing.Image)(resources.GetObject("btnMetadataCacheFileDialog.Image"))); + this.btnMetadataCacheFileDialog.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.btnMetadataCacheFileDialog.Location = new System.Drawing.Point(426, 42); + this.btnMetadataCacheFileDialog.Name = "btnMetadataCacheFileDialog"; + this.btnMetadataCacheFileDialog.Size = new System.Drawing.Size(39, 20); + this.btnMetadataCacheFileDialog.TabIndex = 11; + this.btnMetadataCacheFileDialog.Text = "..."; + this.btnMetadataCacheFileDialog.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btnMetadataCacheFileDialog.UseVisualStyleBackColor = true; + this.btnMetadataCacheFileDialog.Click += new System.EventHandler(this.btnMetadataCacheFileDialog_Click); + // + // groupBoxDataRepository + // + this.groupBoxDataRepository.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBoxDataRepository.Controls.Add(this.lblDataRepository); + this.groupBoxDataRepository.Controls.Add(this.txtDataRepository); + this.groupBoxDataRepository.Controls.Add(this.btnDataRepositoryRestoreDefault); + this.groupBoxDataRepository.Controls.Add(this.btnDataRepositoryFileDialog); + this.groupBoxDataRepository.Location = new System.Drawing.Point(12, 12); + this.groupBoxDataRepository.Name = "groupBoxDataRepository"; + this.groupBoxDataRepository.Size = new System.Drawing.Size(473, 93); + this.groupBoxDataRepository.TabIndex = 10; + this.groupBoxDataRepository.TabStop = false; + this.groupBoxDataRepository.Text = "Data Repository"; + // + // ChangeDatabaseForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(494, 274); + this.Controls.Add(this.groupBoxDataRepository); + this.Controls.Add(this.groupBoxMetadataCache); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "ChangeDatabaseForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Change Database"; + this.groupBoxMetadataCache.ResumeLayout(false); + this.groupBoxMetadataCache.PerformLayout(); + this.groupBoxDataRepository.ResumeLayout(false); + this.groupBoxDataRepository.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Button btnDataRepositoryRestoreDefault; + private System.Windows.Forms.Button btnDataRepositoryFileDialog; + private System.Windows.Forms.TextBox txtDataRepository; + private System.Windows.Forms.Label lblDataRepository; + private System.Windows.Forms.GroupBox groupBoxMetadataCache; + private System.Windows.Forms.Button btnMetadataCacheRestoreDefault; + private System.Windows.Forms.Label lblMetadataCache; + private System.Windows.Forms.TextBox txtMetadataCache; + private System.Windows.Forms.Button btnMetadataCacheFileDialog; + private System.Windows.Forms.GroupBox groupBoxDataRepository; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/ChangeDatabaseForm.resx b/Source/Plugins/HydroDesktop.Plugins.TableView/ChangeDatabaseForm.resx new file mode 100644 index 00000000..50b545f9 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/ChangeDatabaseForm.resx @@ -0,0 +1,1271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAAA8AAAANCAYAAAB2HjRBAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALCgAA + CwoBv0NmUwAAAF1JREFUOE9j/P//PwMItLa2QhhIoLq6mhFdDIUP0tzS0vL//fu9GBgkDpLHhXFqhBkG + MgAbBruYkOnYbAXpATof4mSQAmzOxiU2qnnAAgxXQsAnDo5naNqGRDqJGACIdhhmOFr5LgAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAAA8AAAANCAYAAAB2HjRBAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALCQAA + CwkBEvpHPgAAAF1JREFUOE9j/P//PwMItLa2QhhIoLq6mhFdDIUP0tzS0vL//fu9GBgkDpLHhXFqhBkG + MgAbBruYkOnYbAXpATof4mSQAmzOxiU2qnnAAgxXQsAnDo5naNqGRDqJGACIdhhmOFr5LgAAAABJRU5E + rkJggg== + + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAgBAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+Pj4APn5+QDw8PAA3NzcAMrKygCzsrMAnJudAIeGiQB2dXgAbWxvAF5d + YABRUFMAT05RAAAAAAEAAAADAAAAAwAAAAFOTVEAWFhbAGVlaABxcXQAfn2AAZGRkgCoqKkAwMDBANTU + 1QDl5eYA6unqAOno6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4+PgA+Pj4APn5+QDo6OgAxcXHAJ6dnwD7+/sA/f38APT0 + 9ADg4OAAAAAAEAAAADAAAABXAAAAgAAAAKgAAADLAAAA5wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA5wAAAMsAAACoAAAAgAAAAFcAAAAwAAAAEOnp6gDt7O0A7OvsAI6OkAC3t7gA29vcAOjo + 6QDl5eYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb3APb29wD4+PkA5+foAPv7 + +wD+//4A////APPz8wDPz9EAAAAACgAAADcAAAB8AAAAxQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAMUAAAB8AAAANwAAAArm5ucA8vLzAOzs7QCmpqcA1tbXAOXl5gDh4eIAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA3d3dAOLi4gD4+PkA+/v8AP///wDy8vMA6urqANra2gAAAAAlAAAAdgAAANYAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + ANYAAAB2AAAAJa+vrwDh4eEA7u7vAObm5wC/v78A7+/vAPr6+gD29vYAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNzc4Azc3OAM/P0ADf398A5+fmAPPz9ADs7O0A6OjpAAAA + ACUAAACGAAAA9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA9wAAAIYAAAAl19fYAMTE + xAD19fUA/v7+APf39wDr6+sA6urqAOrq6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAN3d3QDi4uIAAAAACgAAAGEAAADiAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADiAAAAYQAAAAr6+voA9vb2AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P0ADV1dYAzs7PANLS0wDX19gAAAAAGwAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQb/CwsN/hAQ + Ev4UExb9FhUZ/xcWGv8YFxv/GRgc/xgXG/8YFxz/GBcc/xgXG/8ZGBz/GBcb/xgXG/8YFxr/FhUY/xIR + FP8NDA7/BgYH/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAJEAAAAb8/PzAO7u7gDq6uoA9vX1APDv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4eHiAObm5wDe3t8A0tLTAN7e + 3wDJycoAAAAAIAAAAKgAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8EBAT/DQ0P/xQTFv8XFxr/GBgc/xkYHP8aGR3/Gxse/x4dIf8gHyP/IiEl/yQjJ/8nJin/JyYq/ykn + LP8oJyv/JyYp/yYlKP8jIiX/IB8k/x8eIv8cHCD/Gxoe/xkYHP8ZGBz/GRgc/xgXG/8UExb/Dg0P/wQE + BP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACoAAAAIOno + 6AD+/f0A8vHyAPr6+gAAAAAA/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA+fn5AP7+/gDh4eIA6urrAOXl5gDGxscAAAAAGAAAAKIAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJCv8UFBb/Gxoe/xwbH/8cGx//Hh0g/x8fI/8kIyf/Kykt/zIw + M/86OTz/Q0JE/0tKTP9SUFP/WFdZ/11cXf9gXmD/Y2Bj/2JgYv9fXV7/W1lc/1RTVf9OTVD/R0ZJ/z48 + QP82NTj/LSwv/ycmKf8iIST/Hx0h/x0cIP8cGx//HBsg/xsaHv8UFBb/CQkK/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAAABjq6eoA////AP///wD9/f0A1dTVAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+fkA/v7+AODg4QDi4uMAAAAABgAA + AIAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CAgJ/xUUF/8cGx//GRgc/xgX + G/8bGR3/IyEm/zMwNP9FREb/W1pb/3Bub/+DgIH/k5CQ/5+cnP+opaX/r6ys/7Sxsf+2tbT/ura1/7q3 + tv+7uLf/u7i3/7q3tf+4trX/trOz/7OvsP+sqan/pKGh/5iWl/+LiIn/end4/2VjZP9PTU//Ojg8/yoo + LP8eHSH/FxYb/xgXG/8cGx//Hh0h/xYWGP8ICAn/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAIAAAAAG/Pz8APr6+gDV1NUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADW1tYA1tbWAPr6+gD///8A4eHhAAAAAEkAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/EA8R/xkYHP8WFRn/FhUZ/x8eIf8wLzP/SUhK/2ViZP99en3/ko+Q/6Kgn/+uq6r/trKy/7u3 + t/+/u7r/wb28/8O/vv/DwL//xMHA/8TBwP/EwcD/w8G//8TBwP/EwcD/xMLA/8TCwP/EwL//xMC//8PA + vv/Bvr7/v7y7/726uP+5trT/sa+u/6elpP+al5f/iIWF/29tb/9UU1X/OTg7/yUkKP8bGh7/HBsf/x8e + Iv8eHSH/ERAS/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAABJ6OjoANXU + 1QD9/f0A/f39AP39/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoaCjANnZ2QDa2toA7u7tADc3OBYAAACtAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/ExMV/xgXG/8ZFxv/IR8j/y8vMv9GRUj/YV9h/3t6 + e/+TkpL/p6Wl/7Szs/++vLz/w8HA/8XDwv/EwsH/w8DB/8K/v//Avr3/v728/768vP+9u7v/vLu6/7y7 + uv+8u7r/vLq6/7y7uv+8u7r/vLu6/7y7uv+9vLv/vr28/7++vf/Av77/w8DA/8TCwf/EwsL/w8LB/8C/ + vv+6uLf/r62t/6Cfn/+Mi4z/cnJ0/1JSVf8yMTT/HRsf/xgXG/8bGh7/Hx4i/xUUFv8CAgP/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAAEP///wD///8A/v7+AOHh4QAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD19fUA9fX1APj4 + +ACfnqEAy8vMAMjIyAAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/FBMW/xwb + H/8eHCH/JCMn/zIyNv9MTFD/bG1v/42OkP+oqKn/uLi4/76+v/++vr//uru8/7i4uf+1trf/tbW2/7S1 + tf+1tLb/tbW2/7W1tv+1tbb/tbW2/7W1tv+1tbb/tbW2/7W1tv+1trb/tbW2/7W1tv+1tbb/tbW2/7W1 + tv+1tbb/tbW2/7W1tv+0tLX/s7S1/7W1tv+2t7j/ubq7/729vv+/wMD/vr+//7Sztf+bnJ3/cnJ0/0FB + Q/8nJir/JyYq/ygnK/8hICT/HBsf/x0cIP8UFBb/AgIC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAASfX19QD5+fkA4uLiAL29vgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX19QD19fUA+Pj4AKKipAAAAAADAAAAkQAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/EhEU/x4cIP8cGx//IB8j/zMxNv9WV1r/fICC/5ygov+usrT/srW3/7Cz + tf+tsLL/rK+x/6yvsv+rr7L/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yv + sf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rLCy/6yvsf+ssLL/rbCz/66y + tP+usrT/q6+x/6Cjpf+LjY//bm9y/1JSVv8+PUH/ODg8/0dITP9YWl7/TE1R/ycmKv8cGh7/HBoe/x4c + IP8gHiL/EhIU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAkQAAAAPe3t4Avb2+AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADl5eYA9fX1APX1 + 9QD5+fkAAAAAGAAAANYAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DAwN/xwbHv8ZGBz/Hh0h/zY3 + O/9aXmH/gISJ/5ieof+iqaz/pqyw/6essP+nrLD/pqqu/6Sqrv+iqq3/o6ms/6OprP+jqKz/oqmt/6Op + rf+jqa3/o6mt/6Oprf+jqa3/o6mt/6Kprf+jqa3/pKmt/6Sprf+kqa3/pKmt/6Sprf+jqa3/o6mt/6Kp + rf+iqKz/o6mt/6Sqrf+mrLD/qa+0/6mwtP+jqa7/k5mb/3p+gf9dX2L/RUVI/zc3O/87O0D/TlFV/2Vo + bf9xdXn/aGtv/1BRVf80NDj/Jycr/zk5Pf87PED/Li0x/x8dIf8fHiL/Hh0g/wwMDf8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAAABi9vb4AoqGjAKKhowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA1tbXAOXl5gDy8vID7e3tAAAAADcAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AgIC/xgXGv8eHSH/JCUp/zc5Pv9YXGH/eX+F/5OboP+hqrD/pq+1/6Wts/+iqrD/n6et/5+n + rf+gp63/oKiu/6Corv+hqa//oamv/6Gpr/+hqrD/oaqw/6GqsP+hqrD/oKmv/6Corv+fqK7/nqet/56l + q/+dpKr/nKSq/5yjqf+co6n/nKSq/52lq/+epqz/n6et/6Cprv+iqrD/oKmu/5igpv+IjpT/c3d8/1xf + Y/9KTVD/QkNH/0JFSf9OUFb/XWJo/2hsc/9nbHH/XWBl/05PVP9BQkb/QEFF/0xPVP9kaW7/fIKH/3R5 + f/9QUlf/KSkt/x0cIf8cHCL/HR0j/xgXGv8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + ADejoqQAnZyeAAAAAAD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJAMjIyQDW1tcA5eXmAN7e + 3wAAAABXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w0MDv8dHCD/HBse/x4dIf8tLjL/TlFW/250 + ev+Ah43/g4qQ/32Dif94foT/dnyC/3V6gP9zeX//c3l//3V6gP92fIL/eX+F/3uCiP99hIr/gIeO/4KK + kf+EjJP/h4+V/4mQl/+Kkpn/jJSb/46Xnv+RmqH/k5yj/5Wepv+Xoaj/lqGo/5egqP+WoKj/lqCn/5Se + pf+Tm6L/j5ee/4eOlf94foT/ZGhu/09SV/9AQkb/ODs//z5BRv9PVFn/ZGtw/3R7gv94f4X/bXJ4/1hd + Yf9ERkv/OjxB/0NGTP9dY2n/eYGH/4iQlv+CiZH/anB5/0dKU/8nKDD/Gxsh/x0dIf8dHSP/HR0j/x0d + I/8NDA7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAFe7urwA////AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAMjIyQDHx8gAyMjJANXV1gDW1tYAAAAAcQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8VFBf/Hhwg/x0cIP8cGh7/ISEl/zAxNf9DRUr/Q0VK/z4/RP85O0D/Nzk9/zc3PP82Njr/NTU6/zQ1 + Of80NTr/Nzg9/zo9Qf8+QUb/Q0ZL/0hKUP9MUFX/UFVa/1VaYP9ZXmX/XWJo/2Fmbf9lbHL/anF3/3B4 + fv92foT/fIWN/4KLkv+DjZT/goyT/4CIkf97hIz/dX2E/21zev9hZmz/T1JY/zg6P/8pKi7/Ly80/0NH + Tf9haW//fYeO/4yYn/+Hkpj/bXV8/0lMUv8xMzj/MzY6/0tPVP9rc3r/hpGZ/5Gdpf+Ejpb/Ymhv/zs9 + RP8kJSn/IB4g/yUhIP8qJR7/Misc/y8pHv8kIiH/HR0i/x4dI/8WFRj/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAHHv7+8A7e3tAPz8/AAAAAAA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJAMjIyQDHx8gAzs7PAAAA + AIAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8EBAT/Gxod/xwbH/8gHyP/Kisv/y4uM/8vMDX/MTI3/zI0 + Of8yNDn/NDY7/zU4Pf83O0D/Oz5E/z5CSP9DSE7/SU5U/01UWv9SWWD/Vl1k/1hgZ/9bYmn/W2Nr/1xk + a/9cZGv/XGRr/1phaf9YXmX/U1lg/01SWf9HTFL/QkVL/z5BRv89QEX/PkJH/z9CR/88PUP/Njg8/zEx + Nv8rLC//Jycq/yYmKv8uLjP/P0NI/1lfZ/9we4P/go+Y/4qYof+AjZX/Ympx/z5BRv8rKy//OjxC/1lh + aP9zfof/hJCZ/4uZov+Fk5v/ZGx0/zs/R/8hIin/JiEd/zovF/9PPBH/XUYN/2dMC/9yVAf/a08L/0w8 + FP8oJCD/Gxwj/xwdIv8cGx7/BAQE/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAICQkJIA/Pz8AAAA + AAD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAANXV1gDGxscAy8vMAMrKywAAAACGAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CgkL/xwb + H/8cGh7/LC0x/0pQV/9ganP/ZW94/2Vud/9lb3f/ZG93/2VveP9ncXr/aHN8/2p2fv9sd4H/bnqD/3F9 + hv90gIn/dYKM/3eEjf93ho//eYaQ/3mGkP95hpD/eYWQ/3mFkP94hZD/d4SO/3aDjP9zgIr/cHyG/2t3 + gf9ncXr/YGpz/1lia/9TXGP/TVRb/0dMU/9CR03/QERL/0FGTP9HTVP/UVhg/15ncP9teYL/e4mT/4aV + oP+CkJr/a3R8/0ZLUP8sLTH/Li80/0hOVf9ncnv/eoeR/4WUn/+HlqD/eISN/05WYf8tMTn/KSQf/z4w + Ev9ZQwr/blAH/3lXBP99WgL/gFwB/4NeAf+CXQH/dVUG/1lED/80Kxz/Hh4j/xobI/8fHiL/CgkL/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIb///8A////AP39/QD9/fwAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OEA09PUANPT1ADKyssAAAAAgAAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ND/8cGx//Hx4h/zE0Of9PWGD/bn2H/3yLl/9+jpr/fY2Z/36O + mf9+j5r/fo+b/36Pm/9/j5z/gJGc/4CRnP+AkZz/gJGc/4GRnf+AkZz/gJCc/3+QnP9/kJv/f5Cb/3+Q + mv9/j5v/gI+c/4CQnP+AkJz/gJGc/4CRnP+AkJz/f4+b/36Omf96i5b/doaQ/3GAi/9seoT/aHWA/2Zz + ff9nc33/aXaA/298h/92hJD/fIyY/4KTn/+Ckp7/c4GM/1dfZ/82OD3/IyMn/y4xNv9NVV7/bnyH/4CQ + nP+DlKD/fIyY/2d0f/9FTFb/Kyot/zMpFv9QPAz/b1IH/4BdA/+GYQD/h2AA/4VgAP+EYAD/g18A/4Rf + AP+FYAD/fVsD/2JJDf8+Mhn/JSIg/xsbI/8dHCP/Dg4Q/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AID7+/oA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADy8vIA8vLyAN7e3wDZ2doA19fYAAAAAHEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8REBL/HRwf/yAg + JP8yNjz/VWBq/3CBjf94i5n/dYeU/3SGk/90hZL/dIaR/3SGkv90hpL/c4WS/3SEkv90hZL/dIWR/3SF + kf9zhZD/c4WR/3OFkf90hZL/dIWS/3OGkv9zhpL/coaS/3OGkv90hZL/dIWS/3SFkv90hZL/dIWR/3OE + kf90hZH/c4WR/3SHkv91iJT/d4mX/3eKl/94i5j/eYyZ/3mLmf94i5j/eIqX/3eJl/92iJX/c4WS/2h2 + gv9JUVn/KSov/xwcH/8zNz3/WGRu/3KEkP95jZr/dYiV/3GCj/9danf/PURN/yclI/8/MRT/aE0K/4Vi + A/+MZgD/iGMB/4ZiAv+FYQL/hmIC/4ZiAv+GYgH/hWEC/4diAv+JZAH/imQB/3FUCv9JOhb/JiIh/x0c + I/8dHSP/Dw8R8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAHHq6uoA5ubmAKWlpgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8gDy8vIA4ODhAOTk5QAAAABXAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/EhIU/xwaHv8hICT/NTlB/1lodP9sf43/cIOR/21/jv9tgI7/bYCO/22B + jv9tgY7/bYGO/22Bjv9tgY7/bYGO/22Bjv9tgI7/bYCO/21/jf9sgI7/bYCO/22Bjv9tgY//boKQ/26C + kP9ugpD/boKQ/26Bj/9ugY//bYGP/26Bj/9tgI7/bIGP/22Ajv9tgI7/bX+N/22Ajv9tgI7/bYCO/22A + jv9tgI7/bICN/22Ajv9ugo//cIOS/2x/jf9baXX/OT9H/yAfJP8fHyP/OkFH/15uev9tgY7/cYWT/26C + kP9kdYL/SVRg/yowO/8oJCD/Uj8S/4NgB/+TbAL/k20C/5FrAv+QagP/kGsD/5FrA/+RawP/kWsD/5Fr + A/+RawP/kGoD/5BrAv+SawL/lW0B/4NhB/9XRBT/JiQh/xscI/8dHSL/EBAS5AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAFeUlJYApaWmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA9fb1APX29QDx8fIAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xISFP8bGR3/ISEm/zc/ + Rv9YaHT/ZXqK/2h+jf9nfIv/ZnuK/2Z8iv9mfIv/ZnyK/2Z8iv9mfIr/ZnyK/2Z7iv9mfIr/Z32L/2d9 + jP9ofo3/aH6N/2h+jf9nfYz/ZnyK/2R5h/9jd4b/ZHeG/2V5h/9le4n/ZnuK/2Z9jP9ofo3/aX+O/2mA + j/9qgZD/aoGQ/2qBkP9qgJD/aYCP/2h/jv9ofo7/Z32M/2h9jP9pf47/aYCR/2h+jf9cbnz/RlFc/y4x + N/8dGh//IyUq/z5HUP9cbnv/Z3yL/2uDkv9me4n/UWBu/y83Rv8fIi3/NSwb/2NLDf+QagT/nnMB/55z + Af+ccgH/m3IC/5tyAv+ccwL/nHIC/5xyAv+ccgL/nHIC/5xyAv+ccgL/nHIC/5xyAv+edAH/nnQB/49q + Bf9jTBD/LSge/xkaJP8cHCL/EhIV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADejo6QAxMTFAMTE + xQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ2cngCvrq8Ar6+wAAAAABgAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8RERL/Hhwg/yIiJ/83P0j/UWNw/2J5if9ieYn/YXeH/2B2hv9gd4f/YHeH/2F4 + hv9gd4f/YXiI/2J6if9jeor/YnqJ/2F5iP9fd4b/XXOC/1tvfv9ZbXr/VWd0/1Bhbf9LWWT/RFFb/z9J + U/89RU7/PUVO/z5HUP9ASVP/Qk1X/0VRW/9IVF//S1hj/05daf9RYW3/VGVy/1Zpd/9ZbXv/W3B+/15z + gv9fdoX/X3aF/11ygP9VZ3b/SVZh/zg/R/8lJyz/Gxgc/yUmK/8+SlP/WGx5/2V8jP9lfY3/W3F//0RT + Yv8sMj3/LSgg/0s5Ef92Vwj/m3IE/6x9AP+pegD/pnkA/6Z5Af+meQH/pnkB/6Z6Af+meQH/pnkB/6Z5 + Af+meQH/pnkB/6Z5Af+meQH/pnkB/6Z4Af+pfAD/qnwA/5txBP9nTxD/NC0d/xkaI/8cHCP/ERET/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2NiLCwsMAwMDCAOfn5wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADLy8wAmZeaAHx7fQAAAAADAAAA1gAAAP8AAAD/AAAA/wAAAP8AAAD/Dg4Q/x4eIf8hISX/MzxF/09i + cP9feIr/XXeI/1x0hP9cdIX/XHSF/1x1hf9cdYX/XXaF/1x1hf9bdIT/WnKB/1hvfv9XbXv/VGp4/1Jn + df9RZHL/T2Fv/0xea/9JWWX/Q1Jd/z5KVf83Qkv/MDhA/youNv8mJy3/IyQp/yMkKf8lJiv/Jigt/ygp + MP8qLTP/LTA3/zA1PP8zOUH/Nj5G/zpDTP8+SVL/Qk9Z/0VUX/9FU17/QEtV/zQ7Q/8mKC3/HBod/xsY + Gv8lJyv/P0tV/1Vsef9geor/XXWG/1Rqef89S1r/Ky81/zYrGP9nTQ7/l24G/7GAAP+2hAD/soEA/7CA + Af+wgAH/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/r4AA/7CA + Af+yggD/t4UA/6R4BP9sUxD/MSse/xsbI/8cHSP/CAgJxwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAA + AAPQ0NEA5eXlAPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvLzACioaMAo6KkAAAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/woJC/8eHCD/Hh4h/ycqL/9CUl7/U2p5/1ZvgP9Vb4D/Vm+A/1dwgv9WcIH/VnCB/1Zv + gP9Wbn//VGx8/09mdf9JXWv/RVZi/0NSXf9CUl7/Q1Vi/0haaP9KYG7/TWNy/09mdv9QaHf/UWh4/1Bo + eP9NY3P/R1ln/z1LVv82QEr/MTpB/y82Pf8rMTj/KSwz/yYoL/8kJSv/IiMo/yEhJP8gICP/HyAj/yAh + Jf8iIif/JCUq/yQkKf8hHyX/HRsg/x4cIP8fHiL/KCsx/z1LVf9Tanv/WXSF/1Zwgf9NZHT/NUJP/yUm + Lf9DNRb/hGML/7eGAv/AiwD/vYkA/7qIAP+6iAD/uogB/7qIAf+6iAH/uogB/7qIAf+6iAH/uogB/7qI + Af+6iAH/uogB/7qIAf+6iAH/uogB/7qIAf+6iAH/uYgB/7qHAP+7iAD/wowA/6t+BP9yVxD/KiYg/xwd + I/8dHSPuAAAAswAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAke3t7QDp6ekA/Pz8AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPf3 + 9wD39/cAysrLAMzMzQAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8EBAT/Hx4h/x0bH/8dGx7/IB8j/yot + M/8xOED/N0JL/zxKVv9BUl7/RFdk/0ZYZv9EVmT/P05b/zhFT/80PUb/MTlC/zQ+SP87SlX/Q1dl/0lg + cf9NZnj/T2l6/1BqfP9Qanz/UGp8/1Brff9Pa3z/UGx9/1Bsff9Qa33/T2l6/05neP9MZXX/SmNz/0lh + cP9HXWz/RVpp/0NXZf9BVGL/P1Fe/z1NWv87S1b/OUhU/zhGUf82RE//NkNO/zdDT/82Qk7/OEVR/ztL + Vv9DVmT/TWZ4/1Nugf9Ra3z/QVVk/ykzQv8jJCf/WUUV/5pyCP/EjwH/x5IA/8aSAP/EkAD/xJAB/8SR + Af/FkQH/xJAB/8OPAf/DjwH/w5AB/8OQAf/EkQH/xZAB/8WQAf/FkAH/xJEB/8ORAf/EkQH/xJEB/8WR + Af/EkAH/xJAB/8SQAP/GkQD/yZQA/7OEBf9vVhL/KCUg/xgZJP8dHSDVAAAA6QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAASfv7+wD8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP39/QDs7OwAAAAAEAAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/xsaHf8fHiL/Jiow/yw1Pf8nKzL/ISMn/yAgJP8iISX/JSUp/yYpLv8pLDP/KzA3/ysy + Of8sMzv/LTdA/zI+Sf83SFX/PlNi/0Rcbf9IYnT/SmZ5/0xoe/9LaHr/TGh7/0xoe/9LZ3r/S2d6/0tn + ev9LZ3r/TGh7/01pfP9Nan3/TWp9/01qff9NaXz/TWp8/0xpe/9LaHr/S2d5/0tmef9KZXj/SmR2/0lj + df9IYnT/R2Fz/0Zgcf9GX3H/R2By/0dgcv9IYXP/SWR1/0xoe/9ObH//SGBx/zJDVv8hKjn/Lyoh/2pR + Ef+ofAf/zZYB/9ObAP/PmAD/zZcB/86XAP/RmQD/05sA/9edAP/ZnwD/2p8A/9ygAP/coQD/2J8A/9Sc + AP/RmQD/0poA/9KaAP/SmgD/0psA/9KbAP/TmwD/05oA/9OaAP/TmwD/0poA/9GZAP/UmwD/05oA/7iI + Bf9iTRX/KCQh/xYYI/8cGx7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEMfHyQDf398A39/fAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANLS + 0wDPzs8Az8/QANjY2QAAAACtAAAA/wAAAP8AAAD/AAAA/wAAAP8VFBf/Hhwf/yUoMP8zQ07/PVVk/zZJ + V/8vPEf/KjQ8/ycuNf8nLDP/Jisz/yctNv8pMTr/LDdB/zA/Sv82SVf/PVRl/0Nfcf9HZXn/SGZ7/0dl + eP9GY3f/RmN2/0Vidf9GYnb/RmN2/0Zjdv9GY3b/RmN2/0Zjdv9GYnb/RmJ2/0Zidv9GYnX/RWJ2/0Zi + dv9GY3f/R2N3/0Zkd/9HZHj/R2R4/0dlef9IZnn/SGZ7/0hne/9IZ3z/SWd8/0hne/9JZ3z/SWh8/0lp + ff9JaX3/R2R4/z1Waf8rO03/Jikv/0E0Gf9/Xwz/xpIF/+SnAP/nqQD/4KQA/+CjAP/eogD/3aIA/9uf + AP/WnAH/z5cC/8aRBP+/jQX/u4oG/7yLBv/IkwT/1JwB/9uhAP/aoAD/2J4A/9adAf/WmwH/1JsB/9Sb + AP/TmgH/1JsB/9WcAf/WnQD/2p8A/9ygAP/gowD/4qUA/7GDB/9aRxf/Hx4i/xsbI/8WFRj/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAACtvr6/AOfn5wDn5+cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4Az8/QAJiXmQCXlpgAAAAASQAAAP8AAAD/AAAA/wAA + AP8AAAD/DQwN/x4dIP8gICX/Lz1K/z1Za/9EZXr/QmJ2/0Fecv89Wmz/PFZn/zxUZv87U2X/PFVo/z1Y + a/9AXHD/QWF1/0Njd/9DYnf/QWB1/0FgdP9AX3P/QV5y/0Ffc/9BX3P/QV9z/0Ffc/9BX3P/QV9z/0Ff + c/9BX3P/QV9z/0Ffc/9BX3P/QV9z/0Ffc/9BX3P/QF9z/0Ffc/9BX3T/QV90/0FgdP9BYHT/QV9z/0Ff + dP9BYHT/QWB0/0FgdP9BYHT/QGBz/0FfdP9AX3P/QV90/z9cb/83TV7/KTRB/yUkJf9UQRX/nnQL/9+i + Af/sqwH/5qgC/+CkAv/fogL/3qIC/9ugAv/WnAL/ypQE/7mIB/+jeQv/jGkN/3ldEf9sUxT/aFEV/4Nj + EP+qfQn/xJAF/8SQBv/DjwX/wo4G/8GNBf/CjwX/wo8E/8GQBP/AjgX/vYwF/7yKBf/DkAX/ypUE/9CY + A//VnAL/2Z8C/5NvDf9ANRz/GBkj/x4cI/8NDA7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABJzMzNAMzM + zAC6ursAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gDS0tMA0dHSAAAAAAYAAAD8AAAA/wAAAP8AAAD/AAAA/wICAv8eHCD/Hx4i/ykzPf82UWL/PF5y/zxb + cP88W3D/PFxx/zxccf89XHH/PVxx/z1ccv89XHH/PFxx/zxccP88XHH/O1tw/zxab/88W3D/PFtw/zxb + cP88Wm//PFtw/zxbcP88XHH/PFxx/zxdcf88XXH/PF1x/zxdcf88XXH/PFxy/zxccf88W3H/PFxw/zxb + cP87XHH/PFxx/zxdcv89XXP/PV5z/z1dcv89XHH/PFtw/ztab/88Wm7/PFlu/zxab/88Wm//O1lu/zpW + af81TFz/KzpH/yInMP8uKR//d1oR/7uMCP/XnwT/xpEF/66ACv+ddQz/lW8O/5RuDv+Zcg3/mnMM/5Rw + Df+HaA//emAS/3JaFP9tWBT/ZlMV/1ZHGP8/Nh3/PDMd/09BGf9qUxX/d1wT/4RnEP+RcQ//nHkM/6aA + Cv+rhAn/rYUI/6aBCv+VdQ3/fGIQ/3leEf9/YhH/h2cQ/49tD/+eeAv/mXQL/2tUFP8qJyD/Gxwi/x0d + Iv8BAQH+AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAAGeHd6ALq6uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8wDj5OMAAAAAgAAAAP8AAAD/AAAA/wAA + AP8AAAD/GBYZ/x8dIf8jKTD/MElY/zZXbP84WW//N1Zr/zdXbP83WG3/OFht/zhZbv84WW7/OFlu/zhZ + bv84WG3/N1ht/zdYbf83V2z/N1ds/zZXbP83V2z/N1hu/zhZb/84WnD/N1lv/zdYbf82WGz/N1ds/zdW + a/83V2z/N1dr/zdWbP83V2z/N1ds/zZXbP83WG3/OFlu/zdZbv83WGv/NVNm/zNNX/8xR1f/L0BP/yw6 + Sf8rNkP/KTNA/ykzP/8oMT//KTNA/ykzQP8oMD7/Jyo4/yIhLv8gGyT/MScb/2BLFP+NaQ7/lXEO/4hp + EP95XxL/dl0T/39kEf+RcQ7/poEL/7aNCf/Blgf/x5sG/8mdBf/Knwb/zaEG/9CiBv/Oogb/x5wH/7eR + Cf+siQv/rokK/7iRCP/CmAf/zaEF/9SmBf/bqwT/3q0D/+CwA//gsAL/368D/9ipBP/KnwX/xJoG/8OZ + B//Fmgf/yJ0G/82gBP/aqgP/wpcH/3dfE/8kISH/GRkj/xcXGv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AICkpKUAtra3APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+vr6AAAA + AADc3N0A5OTkAAAAABgAAAD/AAAA/wAAAP8AAAD/AAAA/wwMDf8eGx//IiQq/ys8Sf80VWn/NVhu/zRW + bP81Vmz/NVdt/zVYbf81WG3/NVht/zVXbf81V2z/NVds/zVXbP81Vmz/NVds/zRXbP81V23/NVdt/zVZ + b/80Vmz/Mk9i/y5FV/8rPk7/KztK/yo5SP8rN0f/KzdG/ys4R/8rOEb/KzdH/yo4SP8rOUn/KjpJ/ys7 + TP8sPU3/Kz1N/ys5R/8oMT//JSo2/yMlMP8iIyz/ISMq/yEkKP8gJSf/ICQn/yAkJ/8gJCf/ICQn/yAl + J/8hKif/HzQs/yU2Kv9MRRz/mnMK/7mOB/+0jQn/p4QM/6aEDP+siAz/uZIJ/8qeBv/aqgT/47ED/+m3 + Af/vugD/870A//fBAP/7xAD//cQA//3FAP/8xAD/+cEA//O+AP/xuwD/8bwA//S+AP/2wAD/+MEA//jC + AP/4wgD/+MMA//jDAP/4wgD/+cMA//fBAP/0vgD/8r0A//G8AP/xvQD/8bwA//fCAP/zvQH/w5gH/09B + Gv8gHiH/GRki/wwMDf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAABja2tsA/Pz8AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0AAAAAAMfHyAC/v8AAAAAAogAAAP8AAAD/AAAA/wAA + AP8AAAD/HRwf/x8gJP8nMjz/MlBj/zVZbv80WG3/M1Zs/zRXbP80V2z/NFds/zRXbP80V2v/NFds/zRX + bP80V2z/NFds/zRWbP80V2z/M1ds/zRWbP80VWv/MlJm/y5GV/8pNkP/JCky/yEjKv8hIyj/ICIn/yEi + Jv8hJCb/ISQn/yEjJv8hIib/ICIn/yEjKP8hIyj/ISMp/yEjKf8hIyn/ISIm/yAjI/8fJyT/IS0n/yI3 + LP8kQTH/Jkc2/ydMN/8nTTj/J045/ydNOP8mTTj/J1A6/ypeQP8sdU3/MXVL/1JwM/+dgxL/y58F/+Kw + AP/vuQD/+8MA///HAP//xwD//cUA//rDAP/4wQD/9b8A//O9AP/yvQD/8bwA//G8AP/wvAD/8LwA//G8 + AP/zvQD/9b8A//W/AP/0vgD/870A//G8AP/xvAD/8LwA//G8AP/xvAD/8bwA//C8AP/xvAD/8bwA//K9 + AP/zvQD/870A//O9AP/zvQD/8r0A//nCAP/uuQH/lXYP/zoxHf8WFyP/HRwg/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAovHw8QDn5+cAAAAAAPv7+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX1 + 9QAAAAAA9/f3AAAAACAAAAD/AAAA/wAAAP8AAAD/AAAA/xISFP8fHB//JCkw/y1AT/80VWr/M1Nn/zJR + ZP8xUGP/MU9i/zFOYf8xTmD/MExe/zBLXf8xTF7/ME1f/zFOYP8xT2L/MlBk/zFQZP8xT2P/MU1e/y5E + VP8oN0P/IiQs/yAfI/8hKCX/JDYu/yU/M/8lRDX/Jkc2/ydKOP8nSjn/J0k4/yZHN/8lRTb/JUM2/yVA + NP8lPTL/JDov/yQ6MP8mRTb/KllB/y1uS/8wgFX/Mo1b/zSXYP81nGP/Np5k/zafZP82oGT/Np9j/zWf + Y/82oGT/N6Rk/zipZv81pmb/N5Ra/0t2PP97chv/nHsM/7mQCP/YqQP/7LgB//K9AP/zvgD/8bwA//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8 + AP/xvQD/8b0A//G9AP/xvQD/8bwA//G9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/9L8A//S+ + AP/aqgP/alYV/yEgIf8ZGSP/EhIV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAILq6uwAAAAAA+/v6AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sAxMPFAPv7+wDOzc8AAAAAqAAAAP8AAAD/AAAA/wAA + AP8CAgL/Hh4i/x4aH/8hICj/JSo0/yYuOv8mKzj/JSk1/yMoM/8jJTH/IyQv/yMjLv8iIS3/IiAs/yIh + Lf8iIi3/IiMu/yMlMP8kKDP/Iyg0/yMmMf8iISz/IBwm/x8eJP8jNi//KlxC/zB+VP80j13/NJNg/zWW + Yv81mGP/Nplk/zaZZP82mGT/NZdj/zSWYv80lWP/NJRi/zSSYP8zkF//NJBf/zSXYv82nmf/N6Vq/zep + a/83q2z/OKpr/zeqav83qWn/OKlp/zipaf83qGj/OKlo/zmpaf85q2n/OKxo/ziuaf83q2j/NaBi/zaH + U/82bkT/O1o1/01RI/94YhT/xZkG//G8AP/0vgD/8bwA//G8AP/xvAD/8b0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8bwA//G8AP/xvAD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/xvQD/8bwA//G8AP/xvAD/8b0A//G8AP/xvAD/9L4A//bAAP+phgv/Sz8a/xMVI/8fHiP/AgIC/wAA + AP8AAAD/AAAA/wAAAP8AAACo7+7vAAAAAAD8/PsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gDe3t8D/v7+AAAAABsAAAD/AAAA/wAAAP8AAAD/AAAA/xUUF/8fHSH/Hx8j/yAkJv8hJij/ISYn/yEn + J/8hJyf/ISso/yItKf8iLSj/Ii8p/yIwKv8iMSr/IjAq/yIvKf8iLin/Iiwo/yErKf8iKyn/Iiwp/yIw + K/8kPjH/KVc//y97U/81mGP/N6ls/zmub/85r2//Oq9w/zqvcf86r3H/Oq9x/zqwcf86sHH/Oa9w/zmv + cf85r3H/Oa9w/zmucP85rXD/Oa9w/zmvcf85r3D/Oa5u/zmubv86rW3/Oa1t/zmubf85r23/ObBu/ziw + bf83rm3/Natr/zKlaf8unWb/K5Vj/yiOX/8lhlv/IXJT/yNdRv8vTjb/SEwk/3pkFP/HnAb/8b0A//O9 + AP/xvAD/8LsA//G8AP/xvAD/8bwA//G8AP/xvAD/8bwA//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7 + AP/yvQD/+cIA/92uA/+CaBH/IiAh/xwcI/8UFBf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAb/v7+ANPT + 0wD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7OzsAPLy8gLs7OwAAAAAkQAAAP8AAAD/AAAA/wAA + AP8CAgL/Hh0h/yEkJf8mRTT/KFQ7/ylVO/8pVTv/KVk9/ypcP/8rYUH/LGVE/yxoRf8sbEj/LW5J/y1v + Sv8tbkr/LW1J/yxrSP8rZ0f/K2RF/yxkRf8sZkj/LXBN/zGCWP81mmX/OK1v/zmxcf85rnD/Oatv/ziq + bv84q2//OKpv/ziqb/84q2//OKtv/zisb/85rG//OKxv/zisb/84q2//Oaxv/zmscP85rW//Oa1w/zet + b/83rG//Natv/zWqbv8zp23/MqRr/zCgaf8vm2b/LZVi/y2OXv8vh1n/MYBT/zV5Tf87ckf/Q24+/09t + Nf9fbiz/cXEi/4h5Gf+jhhH/w5oI/+KxAv/yvQD/870A//W/AP/3wAD/+MIA//fCAP/3wAD/9sAA//bA + AP/2wAD/9sAA//K9AP/yvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//G8AP/zvgD/+cIA/7eQCf9NPxv/Gxoj/xsb + I/8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAJH///8Ay8vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTk + 5AC7u7wAwMDCAAAAAAoAAAD/AAAA/wAAAP8AAAD/AAAA/xUSFf8fHyL/JTsw/zKEUf82n17/N59g/zef + YP83o2L/OKVk/zimZf84p2b/OKhn/ziqaP84q2n/OKxq/zisav84rGr/OKxs/zesbP84q23/OKxt/zis + bv85rnD/Oa9w/ziucP84q27/OKpt/zmqbv85q2//OKtv/zmscP85q3H/Oaxw/zmscf84rXH/OKxx/zmt + cv85rXH/Oa1x/zitcP84rXH/OKxx/zascf82rHH/Napv/zSmbf8zoGn/MJlm/y+PYP8uhFr/LXdT/y9s + S/8yYUL/OVk5/0ZVMf9WVyn/a18i/4VrHP+ffBT/uo4O/9KfB//krQL/8rkA//vCAP/8xAD/9sAA//S9 + AP/0vQD/9b4A//S+AP/zvQD/874A//W+AP/2vwD/9b8A//a/AP/1wAD/874A//K9AP/xvAD/8bwA//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/xvAD/8bwA//K9AP/8xQD/3q0E/4ttEP8jICL/Ghoj/xUUFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AAr5+fkA+fn5AAAAAAAAAAAAAAAAAAAAAAAAAAAA5OTkAHx8fgB/f4EAAAAAYQAAAP8AAAD/AAAA/wAA + AP8AAAD/Hxgg/yEoJ/8rYkH/Nptd/zinY/83o2L/OKNi/zilY/84pmT/OKZl/zimZv84p2f/OKho/zin + Z/84qGj/OKpq/zeqav84qmz/OKtt/zmrbv85q27/Oatu/zmqbf85q27/Oatv/zmrbv84q3D/Oaxx/zms + cf85rXH/Oa1y/zmtcv84rXL/Oa1y/zmtcv84rXL/OK1y/zmvc/85snX/ObR1/zavdP8vom7/KpBl/yqD + XP8weVX/PXRN/0lvRf9PaT7/WGU4/2VnNP94bS7/i3cs/5+EKf+ykSb/xZ0j/9WoHf/ishr/6rgV//C8 + Ev/0vg3/9L8J//O/Bf/0vgL/98AA//zFAP/9xAD/978A/+iyAP/PngP/s4gH/6V9CP+sggf/wJIG/8qa + Bf/HmQb/xJgG/86hBv/ptgD/8b0A//K9AP/xvAD/8b0A//G9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/8bwA//bAAP/yvQD/wJcH/0M4 + HP8eHSL/Gxsj/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAYdvb3ADV1tcAAAAAAAAAAAAAAAAAAAAAAAAA + AADn5+cAwsLDAK+vsAAAAADiAAAA/wAAAP8AAAD/AAAA/xAPEf8fGyH/JTow/zKEUv83omH/OKVj/zaj + Yf84pGP/OKRi/zelZP83pWX/N6Vm/zelZv84pmf/N6do/zeoaf83qGv/OKlr/zipbP85qW3/Oalt/zmp + bf85qW7/OKpu/zirb/85rHD/Oaxw/zmtcv85rXL/Oa1x/zmucv85rXL/OK1y/zitcv85rnP/OrJ2/zq1 + d/83tHj/Mqpy/yqZaf8nhV7/K3NS/zpqS/9VcEb/dH5F/5CMRf+ol0L/t54//76gO//Eojf/zaY0/9ar + L//fsi7/6Lgr/++8KP/zwCT/98Mf//jEG//4xBf/+sUU//zHEP//yQz//8oH//vDA//ttgD/1qIB/7iK + Bv+Xcwz/eGAT/11THP9JTCP/Qk0o/0hWKf9VXSb/WFMf/1RGGv9MPBj/W0UV/6iECv/ntwL/+sQA//C7 + AP/wvAD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//G8AP/yvQD/8rwA//nCAP/gsAP/eGAT/yolIf8XGCT/ERAS/wAAAP8AAAD/AAAA/wAA + AP8AAADinp6gAJiYmgDz8/MAAAAAAAAAAAAAAAAAAAAAAM3NzQDb29sAAAAAJQAAAP8AAAD/AAAA/wAA + AP8AAAD/HBce/yEmJv8pVj3/Npxe/zijYv83o2L/N6Ni/zikY/84pGP/OKVl/zimZv84pmf/OKZn/zen + aP83qGr/OKlr/zipbP85qmz/Oals/zmpbf85qW7/Oapu/zmrcP85rHH/Oaxx/zmtcv85rXL/Oa5y/zmt + c/84rXP/Oa1z/zmudP85sHX/OLJ3/zWwdf8wp3H/LZtq/y2NY/8zfln/QHVS/1VxS/9wdEb/j39F/7CT + Rv/Npkf/47ZI//LBR//5yEX//MtD//3NP//+zzv//s84//3PNP/9zDH/+sks//fGKP/1xST/98Yf//nH + G//5xBb/87wR/+axDf/SoQv/uI8M/5p8Ef96bhr/W2Im/0JaMf8vWDv/JVtD/yFiSf8hak3/JHBO/yVu + TP8jXUL/IE48/xY1NP8bIif/XEgW/8SYBv/4wgD/+cQA//jCAP/0vwD/8r0A//G8AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/wuwD/+MEA//C7 + Af+wign/QDYc/xgYI/8cGyD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAls7O0APb29gAAAAAAAAAAAAAA + AADh4eIAl5aZAKCfoQAAAACGAAAA/wAAAP8AAAD/AAAA/wgICf8eFx//JDgv/y90TP84pmP/OKVj/zaj + Yv84pGP/OKVk/zimZf84pmf/OKdo/zenaP84qGn/N6lq/ziqbP85qm3/Oalt/zmpbf85qW3/Oapu/zmr + cP85rHD/Oa1y/zmucv85rXL/Oa1z/zmtc/85rnP/OK10/ziudf85r3b/N7B3/zaudv8zqHP/Mp1r/zKK + YP84dVP/SWdJ/2VmRf+MeUn/t5VQ/92yWf/1yV3//dNc//7UWf/70VT/+c5P//fLS//2yUf/9MlC//TI + Pv/0xzr/88c1//TFMv/0xS7/9cUq//XFJ//zwyH/67sd/92uGf/DnBj/oIMZ/3VoH/9OVSn/MlA2/yRe + Rv8jclT/KIZc/y+XYf81omP/N6dk/zipZP84qGP/N6di/zWgXf80mVr/Ln9P/yVQPP8sMib/gmcR/8ue + Bf/rugL/874B//S+AP/zvgD/8bwA//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7AP/0vgD/9b8A/92sAv9jUBb/IiAi/xobI/8ICAn/AAAA/wAA + AP8AAAD/AAAA/wAAAIb29vYA6urqAAAAAAAAAAAAAAAAAOHh4gBsa24Abm1wAAAAAPcAAAD/AAAA/wAA + AP8AAAD/FhQY/x8bIf8oTjn/M49Y/zimY/84pWP/N6Ri/zilY/84pWX/OKZm/zimZ/83p2j/N6dp/zio + av83qWv/OKls/zmqbf85qm3/Oalt/zmqbv85q3D/Oaxx/zmscf85rXL/Oa5y/zmtc/85rnT/Oa50/zmu + df84rnb/OK93/zizev8zrXb/LJNo/y5zVf9CY0j/aGtI/5eEUv/CpF7/4b5o//DNbf/30mz/+dJo//jP + Y//2zF7/9cta//TLVf/1ylH/9cpN//TJSf/1ykX/9slB//XIPf/1yDn/98g1//nKMv/4yi3/7b0n/8Wb + If+UdB7/Zlwl/0ZfNv8zaEX/K3RR/yuEW/8wl2P/NKRo/zaoaf83qGj/N6dm/zemZP83pWP/OKNi/zii + Yf83omD/NqFe/zeiXf83olz/NJRX/ypnRf8vQSz/V0gZ/5BvDv+7kwn/26wD/++6AP/0vgD/8r0A//G8 + AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//K9 + AP/1vwD/874A/5BxEP84MR7/FBcj/xYVGf8AAAD/AAAA/wAAAP8AAAD/AAAA98rKywDAwMEAAAAAAAAA + AAAAAAAA4uLjAMfHyQAAAAAlAAAA/wAAAP8AAAD/AAAA/wAAAP8fGiD/ISkn/y1nRP83oWH/OKVj/zil + Yv83pWT/OKZl/zilZv84pmf/OKZo/zenaf83qWv/N6lr/zipbP85qWz/Oalt/zmrb/85q2//Oaxx/zmt + cv85rXL/Oa1y/zmtc/85rnT/Oa91/zmvdv85r3f/Oa94/zixef84sXj/Nady/0GKYf9jfVj/kYtc/7ij + Z//Ut27/58Vx//PNc//50nP/+dRx//nTb//40Gv/9s1m//XMYf/0y1z/9MtY//fOVf/80VL//dNP///T + Sv//z0T//ck9//jEOP/xvDP/3awt/7aPKP99ZCT/T0wp/zhUOf8xc07/MZFh/zGdaP8yomv/NKZs/zWq + a/83qmr/N6pp/zioaP84p2f/OKZk/zekY/84o2L/OKJh/zihYP83ol//OKFe/zeiXP83oVz/NJdY/y5/ + T/8tXD3/Mjwo/z4yG/9xWRT/xpwH//zEAP/zvQD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/8bwA//S/AP/4wgD/u5IJ/1ZHGf8VFyT/Hh0j/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAJYqKiwD29vYAAAAAAAAAAADKycsA2NfZAAAAAHYAAAD/AAAA/wAA + AP8AAAD/CQkL/x4ZH/8lPzH/MX1Q/zipZf84pGL/N6Vj/zilZv84pmf/N6Zn/zimaP84p2r/N6lr/ziq + bf84qm3/Oals/zmpbf85qm7/Oaxx/zmtcv85rXL/Oa1z/zmtc/85rXP/Oa51/zmvdv85sHf/ObB4/zmw + eP85sXn/OLN6/zWsdv8xe1j/dYFa/7ula//ix3v/9tF///3Zf//92n3/+9d6//fSdf/10HH/9M9u//XO + a//1zWj/9s5l//vRYv/80V7/98tW/+q9Tf/YrkX/yaNA/7udPv+xmz3/pZo//5WTPv99hD3/W3I+/zZi + Qv8naE//J4Be/y6da/81rXH/OLBx/zqwcf86rm7/OKtr/zioaf83p2f/N6Zn/zilZ/84pWX/OKVk/zik + Y/84o2L/OKJh/zihYP84oF7/N6Bc/zegXP85pV3/NqRe/y2IVf8fUkD/EhYl/ygfHv+GaRD/4bAD//zF + AP/3wQD/8r0A//G8AP/xvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/wuwD/8r4A//fBAP/drAP/d2AU/yAeIv8cHCL/CQkL/wAAAP8AAAD/AAAA/wAAAP8AAAB2vLy9APj4 + +AAAAAAA+Pj4AJqZmwCjoqUAAAAA1gAAAP8AAAD/AAAA/wAAAP8WFBf/Hhwh/ylWPf8zkFn/OKpm/zil + Y/82pGX/OKZn/zinaP82p2j/OKdp/zepa/85qmz/Oalt/zmpbv85qW3/Oapu/zmscP85rXL/Oa5y/zmt + cv85rXP/Oa51/zmudf85r3f/ObB4/zmxef85sXn/ObB5/ziyev84tXz/NKp2/y9kTP+Ee1b/1LZ0//Xf + if/+3Ib/+teA//fTfP/30nn/9tB2//XQc//0z3D/9c9t//bPa//3zmf/78hh/925WP/Bo07/oY1F/4R9 + Qf9tdkL/XHhI/1GAT/9Ghlf/OYVa/y6CXf8ohmL/LJhq/zWqcv86tHX/OrJz/zmsb/84qW7/OKht/zip + bf85qWz/N6lr/zioaP82p2f/OKVm/zilZ/84pmX/OKVj/zikYv84o2L/OKJh/ziiYP84oV7/N59c/zef + W/83pF7/OKNd/zOGUP8kQTP/Fxsm/0U1Gv+WdQ3/3a0D//C8AP/2wQD/9sAA//S+AP/yvQD/8bwA//G8 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8AP/xvAD/9L4A//K8AP+ZeQ7/NS4e/xka + I/8UFBn/AAAA/wAAAP8AAAD/AAAA/wAAANb6+vsA7e3uAAAAAAD4+PgAf36AAAAAAAoAAAD/AAAA/wAA + AP8AAAD/AAAA/x4bH/8gJCX/LWxJ/zadYP84qGb/OKVl/zelZv84pmf/N6do/zeoaf84qGr/OKls/zmp + bP85qW3/Oapu/zmrb/85rHH/Oa1y/zmtc/85rnL/Oa10/zmudf85sHb/ObB3/zmweP85sXn/ObJ5/zmy + ev85sXv/OLJ8/zi1fv83sXz/L41n/z9pT/95dVL/w6ds/+3Of//42IL/+tZ///jTe//30nj/9tF1//XQ + cv/20XD/9s9t/+nEZf+1nFP/eXZG/0liQ/8yZkz/KnhZ/yuMZv8unnH/MKp3/zKvef80snn/NrJ5/zmz + eP84snf/OK90/ziuc/85rXL/Oaxx/zirb/85qm7/Oalt/zmqbf84qWz/OKlq/zeoaf83pmf/OKZn/zim + Zv84pWT/OKRj/zijYv84o2L/OKJh/zihX/83n13/OJ9c/zefW/83olz/Np5a/zGBTv8lSDf/HiQn/zgu + Hf98YRD/wJcG/+e2Av/2wAD/9r8A//K9AP/yvQD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8bwA//G8AP/yvQD/+8MA/7aQCf9TRRj/Fxgj/xsaIf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AArQ0NEAAAAAAPj4+ADi4uIAAAAANwAAAP8AAAD/AAAA/wAAAP8EAwT/Hxsh/yQyLP8xf1H/N6Zk/zin + Zv84pmb/N6Vm/zilZv83pmf/N6hq/zepa/84qmz/Oals/zmpbf85qm//Oatx/zmtcv85rnP/Oa1z/zmt + c/85rnX/Oa92/zmxeP85sXj/ObB4/zmxef85snr/ObN8/zmzff84tH7/OLV//zi1f/83s37/M6By/zaC + X/9ObE//hHtV/8KjaP/sxXf//dd///3cf//92Hv/+dR2//rVdP/wymz/o4lO/0ZZQf8fZ1H/JJVu/yup + ev8ws3//NLeA/za3fv82s3z/N7J6/zeyef84snn/ObF3/zmwd/85rnT/OK1y/zitcf85rHH/Oaxx/zmq + b/85qW3/Oapt/ziobP84qWv/N6hq/zenaP84pmf/OKVn/zimZv84pGT/OKNi/zijYv84omH/OKFg/zif + Xv84n1v/N55a/zefW/83oVv/N6Bb/zSOVP8sbkf/Jks4/yozJ/9ENxr/dFcQ/6yECf/crAP/9L4A//W/ + AP/yvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8LsA//G8AP/8xAD/0KIF/3Nd + FP8aGST/HBsj/wQEBP8AAAD/AAAA/wAAAP8AAAD/AAAAN62srgAAAAAA39/gAOfm5wAAAAB8AAAA/wAA + AP8AAAD/AAAA/w4MD/8eHiL/JkQ0/zOOWP84qmb/N6Zl/zilZ/84pWb/N6do/zeoaf83qWz/OKls/zmp + bP85qW3/Oatv/zmrcP85rHL/Oa1y/zmtc/85rnX/Oa51/zmvd/85sHj/ObF5/zmyef85snr/ObN7/zm0 + ff85tH7/ObV//zm1f/84tH7/OLZ//zm5gv81uIH/L6h4/y6Sa/8+gl//Xn1Z/4KBWP+mkV7/yKlm/+i+ + b//6znT//9p3//jVcv/Ao1v/dnZL/1J1UP9Nj2H/Q5dp/zOXbf8rm3L/K6V3/zCwff82tn7/OLZ8/zqz + ev85sHf/Oa94/ziudf85rnT/Oa1z/zmtcv85rXL/Oaxx/zmrb/85qW3/Oalt/zmpbf84qWz/N6hq/zin + aP83pmj/OKVn/zilZv84pGT/OKNi/zijYf84omH/OKBf/zigXf84n1v/N55a/zifW/84o13/N6Rd/zab + Wv8xiFP/J25K/yFVP/8mQDH/Ojsi/2BOF/+ZeQ7/16gE//K9AP/yvQD/8r0A//G8AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/xvAD/8r0A//rCAP/isAP/knQP/yQhIv8bGyP/Dg0Q/wAAAP8AAAD/AAAA/wAA + AP8AAAB8goKEAPr6+gCysbMAtrW2AAAAAMUAAAD/AAAA/wAAAP8AAAD/FhMX/x8iJP8pWT//NZhd/zis + Z/82pWb/OKZn/zemZ/83qGn/OKlr/ziobf85qm3/Oalt/zmqbv85rHD/Oaxx/zmtcv85rXP/Oa50/zmv + dv85r3f/ObB4/zmxef85sXr/ObJ7/zmzff85tH7/ObV//zm1f/85tYD/ObWA/zm1f/84toD/OLaA/zm5 + g/85vYb/Nr2G/yyqe/8pjmn/Mnlc/0t1Vv9vgFj/lJBd/7ejY//Qs2f/4MBq/+e/Z//TsmD/vadb/6yh + WP+WmVf/doxX/1qHWv9Fi2D/OJRq/zGecf8wqHf/MrB6/za0e/84s3r/OLF4/zmvdv84rnT/Oa1z/zmt + cv85rXL/Oaxx/zmqbv85qm7/Oalu/zmpbf84qWv/OKhp/zanaP84pmj/OKZn/zilZf84pGP/OKRi/zij + Yv84oWD/OKFf/zigXP84nlv/N55a/zifW/83o1z/Oahf/zmqYP84ol3/NpBT/y5oQ/8sQC7/QDUc/3lg + Ev/LnwX/8b0A//O+AP/xvAD/8LsA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7AP/yvQD/9r8A/+66 + Af+siAv/NC0f/xwcI/8VFRr/AAAA/wAAAP8AAAD/AAAA/wAAAMWjo6UA+/v7AIKBgwCFhIYAAAAA/wAA + AP8AAAD/AAAA/wAAAP8cGB3/ISgn/y1tSf82n2H/OKto/zelZv84pmf/N6dp/zeoa/84qmz/OKlt/zmp + bf85q2//Oaxw/zmtcf85rXL/Oa1z/zmudf85r3b/ObB4/zmweP85sXn/ObJ6/zmze/85s33/ObV//zm1 + f/85tX//ObaA/zm1gP85toH/ObeC/zi3g/85uIP/ObiE/zi4hP84uYX/OL6H/ze/if8yt4X/K6V6/ymP + a/8ve13/R3RV/2p7VP+Vjlj/wahh/97AaP/rzmr/8tBn//bJYf/mu1n/xKZS/5mRTf9wgU3/Tn9V/zuM + Yv8znnD/M6x3/zWxev82snn/OLB3/zmwdv85rnT/OK1z/zitcv85rXH/Oaxw/zmrb/85qW3/Oals/zip + bP84qGv/N6hp/zemZ/84pWb/OKVl/zilZP84pGL/OKNh/ziiYf84omD/OKBd/zefXP83n1v/OKBc/zee + Wv81l1j/MotT/zODTf9TkUP/fJwz/5mVHv+siAv/xZsG/+SzAf/yvQD/8r0A//K9AP/xvAD/8bwA//G8 + AP/xvAD/8bwA//G8AP/xvAD/8bwA//K9AP/yvAD/9r8A/8KYB/9KPhv/Hh0i/xgYIf8AAAD/AAAA/wAA + AP8AAAD/AAAA//v7+wD39/cAY2JlAAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/x8aIP8iLyr/MH1R/zaj + ZP83qmj/N6Zn/zinaP83p2n/OKlr/zmpbf85qW3/Oapu/zmrcP85rHH/Oa1y/zmtcv85rXT/Oa92/zmw + d/85sHj/ObF5/zmxev85snv/ObN9/zm0fv85tX//ObV//zm2f/85toD/ObaB/zm3gv85uIP/ObiE/zm5 + hf85uYX/OLmE/zm6hf85uob/OLqG/zi6h/83u4f/N7uG/zW3hf8yrX//Mp91/zaOaP9GgF3/YX1U/4SF + Uf+sllP/0qxX/+/BXP/1zV3/8M9c/+fGVv/Lr0//oJVI/22ASv9DflX/LpFo/y6odv81s3v/ObR6/ziv + dv84rXT/Oa1z/zitcv85rHH/Oatw/zmqbv85qW3/OKls/zipa/83qGn/N6do/zimZ/84pWb/OKVk/zik + Y/84o2L/OKJh/ziiYf84oF//N59c/zegW/84oFz/MoVP/ypZPf8gMy7/Iion/2FRGf/AmQv/78ME//LF + Af/1xgD/+MQA//jBAP/2vwD/874A//K9AP/yvQD/8bwA//K9AP/yvQD/8r0A//K9AP/xvAD/8r0A//G8 + AP/6wwD/0aUF/2NQFv8gHiL/GBkk/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEOnp6QC3trgAAAAAMAAA + AP8AAAD/AAAA/wAAAP8GBQb/Hhwh/yQ5L/8zi1j/N6Zm/zipaP82pmf/OKdp/zeoa/84qWz/Oalt/zmp + bf85qm//Oaxx/zmtcv85rXL/Oa1z/zmudf85sHf/ObF5/zmxef85sXn/ObJ7/zm0ff85tX7/ObV//zm1 + f/85tYD/ObaB/zm3gv85uIP/ObmE/zm4hf85uYX/ObmF/zm6hv85uYf/ObqI/zm6h/84uof/ObuI/zm8 + if85vor/N76L/zW8iv8zt4b/MLGC/zGofP82oHX/Ppds/02OY/9iiVv/folT/5uRT/+4nk3/1axM/+e1 + TP/ouEn/2LJG/7ikRv+Ikkn/U4VT/zOLYv8qn3L/NLN7/zizef85r3T/OK1x/zmtcv85rHH/Oatv/zmp + bf85qW3/N6ls/zepav82qGj/OKZn/zilZ/84pWb/OKRk/zijYv84o2L/OKNi/zihYP82oF7/OKBc/zig + XP80jFP/LWtE/yVJNv8jNi7/Ojsj/29cF/+WeA7/rIgJ/8GUBP/TnwL/4aoA/+yyAP/0uQD/+b4A//zC + AP/9xAD//cYA//3FAP/6xAD/9cAA//K9AP/yvQD/8LsA//vEAP/drQP/fGMS/yQiIf8XGCT/BgYG/wAA + AP8AAAD/AAAA/wAAAP8AAAAw2NjZAODg4QAAAABXAAAA/wAAAP8AAAD/AAAA/wwLDf8fICP/JkQ1/zSV + Xf84p2f/N6ho/zenaP84qGr/OKls/zmpbf85qW3/Oapu/zmrcP85rXL/Oa5z/zmtc/85rnT/Oa92/zmx + eP85sXr/ObF6/zmxe/85s33/ObV+/zm1f/85tn//ObWA/zm2gf85t4P/ObiD/zm5hP85uoX/ObmG/zm6 + h/85uof/ObuH/zm6iP85uon/ObuJ/zm7if85u4r/OLuK/zi7iv84u4r/ObyK/zq+i/85wIz/OMGM/zO8 + iv8ttIT/K6h8/y6bc/83jmn/R4hg/12GWP93i1P/lZlR/7ClT//Dq0n/yqdC/7+bPP+gkD7/doZG/0yE + VP8zj2T/NKdz/zevdv84rnP/Oa5y/zitcv85rHD/Oapu/zmobf84qm3/OKpr/zepaf83pmj/OKZn/zim + Z/84pWX/OKRj/ziiYf84omH/OKJh/zehX/83n13/OJ9c/zeaWf80kFT/MYJP/y91Sv8raET/MmI9/0Bi + NP9RZiz/Y2ol/3VyH/+Gehn/loEU/6aKEf+zkA7/vJQL/8OXB//MnAT/2acD/+WzA//tugH/8b0A//G8 + AP/xvAD/+sMA/+WyAv+TdQ7/KiYg/xYXJP8NDA3/AAAA/wAAAP8AAAD/AAAA/wAAAFfFxcYAz87PAAAA + AIAAAAD/AAAA/wAAAP8AAAD/Eg8T/yAjJf8oTjr/Npxh/zipaf82p2n/OKhp/zepa/85qmz/Oahs/zmp + bf85q2//Oaxy/zmtc/85rXP/Oa10/zmudf85sHj/ObF5/zmxev85snv/ObN9/zm1f/85tYD/ObWA/zm2 + gP85t4L/ObiD/zm5hf85uYX/ObmF/zm6hv85u4f/ObuJ/zm8if85vIn/ObyK/zm7i/85vIv/ObyL/zm9 + jP85vYz/Ob2M/zm9jP85vIv/OLuK/zm7iv85vIn/OLyJ/zm9iv85wIv/N8GL/zO8iP8tsYP/KqN6/yuV + b/8zjmf/QIhg/1WEVv9yhkv/nYxA/8+nPP/Qpjj/oIw3/19yQP86hVv/NKFv/zewdv84rnP/OK1y/zms + cf85q2//Oalt/zmqbf85qW3/OKlr/zanaf84p2j/OKdo/zimZf84pWT/OKNi/zijYv84oWD/OKBf/zef + Xf84oFv/OKFb/zikXf85p1//OaZe/zaiXf8wmFv/KoxY/yZ/VP8ldU7/J2xJ/y1mQ/81ZT3/QGc3/0xp + Mf9XaSv/YGck/2xlHP98ZhT/lXYP/72VCP/ltAH/8r0A//K9AP/5wgD/67cB/6aDC/8yKx7/Fxgj/xIR + FP8AAAD/AAAA/wAAAP8AAAD/AAAAgLKxswDDw8QAAAAAqAAAAP8AAAD/AAAA/wAAAP8WEhf/ICcm/ylY + P/82oWT/OKlp/zeoaf84qGn/OKlr/zmpbP85qW3/Oapu/zmscP85rHL/Oa1z/zmtc/85rnX/Oa92/zmw + eP85sXn/ObF7/zmzfP85tH7/ObV//zm1gP85toH/ObaB/zm3g/85uIT/ObmF/zm5hv85uYb/ObqI/zm7 + if85u4r/ObyK/zm8iv85vYv/Ob2M/zm9jP85vYz/Ob2N/zm9jf85vY3/Ob2N/zm9jP85vYz/ObyL/zm8 + i/84vIr/ObuK/zi7if84u4n/OLuI/zi8iP83von/Nb+K/zG7iP8rsIH/K550/zOBX/9LXkD/oog7/+G9 + QP/tyz7/xpox/1phN/8zg1z/NK93/ziudP84rXL/Oa1x/zmrcP85qm7/Oapt/zmpbf84qWz/N6hq/zin + aP83p2j/OKZm/zilZP84o2L/OKNi/ziiYf84oV//N6Be/zigXP84n1v/OKBc/zifW/84oFz/N6Bc/zeh + W/83olz/N6Nd/zajXf81ol3/NZ9d/zOdXP8xmVv/LpZa/y6RWP8rhVX/I2dI/xguMP8jISL/bVUT/82g + Bf/0vwD/9L4A//jBAP/uugH/t48J/zoyHv8ZGSP/FhYZ/wAAAP8AAAD/AAAA/wAAAP8AAACooJ+hALS0 + tgAAAADLAAAA/wAAAP8AAAD/AAAA/xoUGv8hKyn/K2JF/zalZ/84qmn/N6ho/zipav84qWz/Oalt/zmp + bf85q2//Oa1x/zmtcv85rXL/Oa10/zmvdv85sHj/ObF4/zmxev85snz/ObR+/zm1f/85tX//ObWA/zm3 + gv85t4P/ObiE/zm5hP85uYX/ObqH/zm6iP85u4n/ObyK/zm8i/85vYv/Ob2L/zm+jP85vY3/Ob2N/zm9 + jv85vo//Ob6P/zm+j/85vo//Ob6O/zm9jf85vYz/Ob2M/zm8i/85vYv/OL6M/zjBjv80wI3/LbmJ/yut + gP8zonX/S5xt/2qbYv+Km1f/oJZM/6aLQP+vjTv/rJM8/56SPf+Bgj7/SHZL/zSVZ/82sXj/N691/zmu + c/85rXL/Oaxx/zmrb/85qW3/Oaht/ziqbf83qWv/OKdo/zenaP84pmf/OKVl/zikY/84o2P/OKJh/zih + YP84oF//OJ9c/zieW/84n1v/N59b/zefW/84n1v/OKBc/zihXP84olz/OKJd/ziiXf82oVz/NqFd/zaj + X/82p2D/L5lc/yd9Uf8tXz//VVUi/4ptEf/AlAf/57UB//K9AP/xvQD/9sAA//K8AP/Fmgf/Qzkd/xsb + I/8YGB7/AAAA/wAAAP8AAAD/AAAA/wAAAMuOjY8AqqqrAAAAAOcAAAD/AAAA/wAAAP8AAAD/GxUd/yIv + K/8takn/N6do/zirav84p2n/Oapr/zmqbf85qG3/Oapu/zmscP85rXL/Oa5z/zmtdP85rnX/ObB3/zmx + ef85snr/ObN8/zm0fv85tX//ObV//zm1gP85toH/ObiD/zm4hP85uYX/ObqF/zm7h/85u4n/ObuK/zm8 + i/85vYz/ObyM/zm+jP85vY3/Ob6O/zm+j/85vo//Ob6Q/znAkf85wJH/Ob+R/zm/kf85vpD/Ob6P/zi+ + jv85vY3/OcCP/zfDkP8zvIz/LquB/zehd/9OnnD/ap1p/4CaYP+Pllj/lpJR/5SOTP+LjUz/fpBQ/2qP + VP9Yjln/TJBf/0OVZP86n2z/N6t1/zixd/84rnX/Oa50/zmsc/85rXL/Oaxx/zmqbv85qW3/Oalt/zip + bP84qGr/N6Zn/zelZ/84pmb/OKVk/zikY/84o2L/OKJh/zihYP84oF3/OJ9c/zifWv84oFz/OKBc/zig + XP84n1z/N59b/zefW/84n1v/OJ9b/zefW/84oVz/OKBc/zCEUP8oYEH/Q1ku/4R6G/+9mgv/4rAD//G8 + AP/zvgD/8bwA//C8AP/1vwD/874A/86hBf9LQBv/HR0i/xkZIP8AAAD/AAAA/wAAAP8AAAD/AAAA54B/ + gQCenp8AAAAA/AAAAP8AAAD/AAAA/wAAAP8dFR7/IzMs/y5xTP82qGf/OKtr/zioav85qmz/Oapt/zmp + bf85q2//Oaxx/zmsc/85rnL/Oa51/zmvdv85sXj/ObF5/zmxe/85tH3/ObV//zm1f/85tX//ObaB/zm3 + gv85uYT/ObmF/zm5hv85uof/ObyJ/zm8iv85vIv/Ob2M/zm+jf85vY3/Ob6N/zm+j/85v5D/OcCR/znA + kf85wJH/OcGS/znBkv85wJL/OcCS/zm/kf84wJH/OL+Q/zm/kP82uYv/N62C/z+fdv9Wlmv/dJNi/5CO + WP+ijFL/ppBR/5mTU/9/j1X/XolZ/0GHXv8wjGj/KJdw/yeieP8prn//LrSB/zW5gf84t37/ObN5/zmv + dv84rXX/Oaxz/zmuc/85rXL/Oatv/zmqbv85qG7/Oapt/zipa/84p2j/NqZn/zimZ/84pWX/OKVi/zik + Yf84o2L/OKBf/zihXv84oFv/OJ5a/zigXP84oFz/OKBc/zigXP84oFz/OKBc/zigXP83nlr/OKJc/zee + W/8yhlD/H0c4/zIzI/98XA//26YA//rDAP/8xQD/9sEA//K9AP/yvQD/8bsA//S+AP/0vwD/1KYE/1NG + Gf8fHiH/GRki/wAAAP8AAAD/AAAA/wAAAP8AAAD8eXh7AJGRkgAAAAD/AAAA/wAAAP8AAAD/AAAA/x4X + H/8jNi7/L3ZP/zepaP84q2v/OKhq/zmpbP85qm3/Oapu/zmscP85rXL/Oa1z/zmuc/85rnX/Oa93/zmx + ef85sXr/ObJ8/zm0fv85tX//ObV//zm1gP85t4L/ObiE/zm5hf85uYb/ObqI/zm7if85vIr/ObyL/zm8 + jP85vY3/Ob6O/zm/kP85v5D/OcCR/znBkv85wZL/OcGT/znBk/85wZT/OcKU/znBlP85wZT/OcCT/zjA + kv84wZP/OcKU/zClf/83fGH/X25P/6iXXP/Oq2L/upVV/454SP9rc0v/UX5X/0OHYP89j2j/O5ht/zqe + cf85onP/OKV1/zapd/81q3n/NK56/zeye/84snn/OK93/ziudv85rXT/Oa1z/zmtcv85rHD/Oapu/zmp + bf85qW3/OKlr/zioaf83pmf/OKZn/zilZf84pWP/OKRi/zijYv84oWD/OKFe/zigXP84n1v/OKBb/zig + XP84oFz/OKBc/zigXP83n1v/OKBc/zefW/84pF3/NJBU/yZROf8WGiT/YkoT/8WaB//6xQD/874A//G8 + AP/yvQD/8r0A//K9AP/xvAD/874A//S/AP/ZqgT/WksY/yIgIv8ZGiP/AAAA/wAAAP8AAAD/AAAA/wAA + AP90c3YAAAAAAQAAAP8AAAD/AAAA/wAAAP8AAAD/Hhcf/yQ3L/8veVD/N6lp/zera/83qWv/Oalt/zmq + bv85qm7/Oaxw/zmtcv85rXL/Oa5z/zmudf85sHf/ObJ5/zmyev85snz/ObR+/zm2gP85toD/ObaA/zm3 + gv85uIT/ObmF/zm6hv85uoj/ObuJ/zm8i/85vYz/Ob2M/zm9jv85vo//Ob+Q/zm/kf85wJL/OcGT/znC + k/85wpP/OcGT/znClP85wpT/OcKU/znClP85wZP/N8CS/znBk/85w5X/MaV//zaDZf9Pelr/dpRk/3yS + Yf9uglf/Z3pT/3CGWP91jFr/dYxZ/3KLWP9uiVb/ZoFR/195TP9Wc0r/TnBK/0ZxTP8+eVP/N4Ze/zSa + a/84rnf/N692/zmudP85rXL/Oa1y/zmscP85qm3/Oalt/zmpbf84qWv/OKhp/zenaP84pmf/OKRm/zik + Y/84pGL/OKNi/zihYP84oV//OKBc/zifW/84oFv/OKBc/zigXP84oFz/OKBc/zefW/84n1v/N6Nd/zif + W/8tdUv/GCYq/zApHv+beA3/7rkB//XAAP/yvQD/8LsA//G8AP/yvQD/8r0A//G8AP/zvQD/9L8A/9yt + A/9eTRj/IiAi/xkZI/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAEAAAADAAAA/wAAAP8AAAD/AAAA/wAA + AP8dFx7/JDow/zCAVP84r2z/Oa5s/zipa/84qG3/OKlt/ziqb/85rHH/Oa5z/zmuc/85rXX/Oa93/zmw + eP85snr/ObJ6/zmzff85tH7/ObaA/zm2gP85t4L/ObiE/zm5hf85uob/ObqH/zm6if85u4r/ObyM/zm9 + jf85vY7/Ob6P/zm/kP85wJL/OcGS/znAkv85wZP/OcKU/znClf85wpX/OcOW/znDlv85w5b/OcOW/znC + lf84wpT/OMGT/znBk/82uY3/N6+G/zurgf9CroH/QKh9/z2kef9ApHj/Sql6/0+ref9Sr3r/Ua95/0um + c/9Elmj/Q4he/0V3Uv9UaUT/eWw4/6WNPf99ez7/RHdP/zKhcP84sHj/ObB2/zitc/85rHL/Oa1x/zmr + b/85qm3/Oaht/zeoa/83qGr/NqZo/zilZ/84pWb/OKVk/zijYv84omH/OKFg/zigXv84n1z/OJ5c/zig + Wv84oFz/OKBc/zigXP83n1v/N6Bb/zikXf85p17/LoNR/yBHOf8oIyD/gGQR/9SlBP/5wgD/8r0A//G8 + AP/xvAD/8r0A//K9AP/yvQD/8bwA//K+AP/1vwD/3a4D/19OF/8jISL/GBoj/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAAwAAAAMAAAD/AAAA/wAAAP8AAAD/AAAA/x4XH/8jNi7/LnRN/zamZ/85rm3/Oa9v/zmu + cf85rnD/Oa1x/zmtcv84rXL/OK10/zmudf85r3j/ObF5/zmyef85s3v/ObR+/zm1f/85tn//ObeB/zm3 + g/85uYX/ObqF/zm7h/85u4j/ObuK/zm8i/85vYz/Ob6O/zm+j/85v5D/OcCS/znBk/85wpP/OcGT/znC + lP85w5b/OcOX/znEmP85xJj/OcSY/znEl/85xJf/OMSX/znDl/85w5b/OcOV/znImP84y5r/NMua/y/F + lv8uw5T/L8ST/zDEk/8ww5H/Lr6P/yqxhP8tpHr/O5xx/02Zav9clGH/aIhU/3l9Rv+bgTz/u5xA/4aG + Q/9Gf1T/MqNy/zexeP85sHf/OK50/zmtcf85rXL/Oaxw/zmqbv85qWz/OKls/zipa/83p2n/N6Zm/zim + Z/84pmX/OKRj/zijYv84omH/OKFf/zigXf84n1z/OJ9b/zigXP84oFz/OJ9b/zefW/83oFv/NpxZ/zCC + T/8qVDr/Pz0h/4BjEP/TqAX/9cIA//fAAP/xvAD/8LsA//G8AP/xvAD/8r0A//K9AP/xvAD/874A//W+ + AP/drgL/X08X/yMhIv8YGiP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAADAAAAAQAAAP8AAAD/AAAA/wAA + AP8AAAD/Hhog/yEqKP8oTzv/L3pR/zGQXv80nmb/OKZs/zirb/85r3L/Oa9z/zivdP85r3b/ObB2/zmw + eP84sHn/ObF6/zmzfP85tX//ObV//zm1gP85uIL/ObiE/zm5hf85uob/ObqI/zm8if85vIv/Ob2M/zm9 + jf85vo//Ob+Q/znBkv85wpT/OcKU/znClP85w5X/OcSW/znFmP85xZn/OcWZ/znGmf85xpr/OcaZ/znH + mv83xpn/N8aa/zfFmP82w5f/NsKV/zbBlP82wZP/NsCS/ze/kP83vI7/N7yN/ze6iv80q4D/NYdl/0Vv + Uf9mcUv/hn5K/5iHSf+cjEn/lZJM/4aYU/9nlVn/SJxo/zipdf84snr/OLF4/zmvdv85rnT/Oa1y/zmt + cv85q3D/Oalv/zmpbf85qm3/Oapr/zioaf82p2f/OKVn/zimZf84pGT/OKNj/zijYv84ol//OKFd/zig + W/84nlv/OKBc/zigXP83n1r/OKFc/zaeWv8zhlD/I0s4/y4uIv9rTxH/y50F/+q9Af/zwQD/9b8A//S/ + AP/zvQD/870A//K9AP/xvAD/8bwA//C7AP/yvQD/9b8A/9ytA/9eThj/IyEi/xkaI/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAAGRkJIAAAAA/wAAAP8AAAD/AAAA/wAAAP8eHSH/IyIl/ykpLP8nLi3/Ijgw/yNN + Ov8qakr/MoZb/zWdaf84rHL/ObN3/zm0eP84s3r/ObF5/zixef85snr/ObN9/zi1f/85tYD/ObaA/zm4 + g/85uIT/ObmF/zm6h/85u4n/ObyJ/zm8i/85vYz/Ob6N/zm/j/85v5H/OcGS/znClP85wpT/OcKV/znD + l/85xJj/OcWZ/znFmf85xpr/OMea/zjHm/84x5z/OMqd/zfLnv80xpv/ML2T/y+wiv8wp4L/MqB8/zab + d/87mXX/Qpdy/0eSbf9GjGj/QYBg/0NpT/9qZkP/jnNE/5WBTP97f07/YYNU/02OYP8/nW3/N6h3/zSv + ff81s37/OLN8/ziyef84sXj/Oa92/zmudP85rXL/Oa1y/zmscf85qm//Oalt/zmqbf85qmv/OKhp/zen + Z/84pmf/OKZm/zilZP84pGP/OKNi/ziiYP84oV7/OKBc/zifW/84oFz/OKBc/zefW/83oVv/N5pZ/zB5 + S/8nUzr/Lz4r/0c/Hf9mThT/k3IN/8udBf/xvAD/+sQA//nCAP/2wAD/870A//G8AP/yvQD/8bwA//O+ + AP/0vwD/26wD/1xNGP8iICL/GRoj/wAAAP8AAAD/AAAA/wAAAP8AAAD/amlsAJaWmAAAAAD8AAAA/wAA + AP8AAAD/AAAA/xoaHv8qKCz/RkJF/1VQUv9FQUT/MTQ1/yUwLf8gNS7/Ikc3/yhfRf8ueVb/M5Rm/zeo + c/85tHv/Obl+/zm3fv85tX7/OLR+/zi1gP84toH/OLeD/zi4hP84uIb/ObmH/zm7iv85u4r/Ob2L/zm+ + jf85vo//Ob+R/znAkv85wJL/OcGT/znDlv85xJf/OcWY/znFmf85xpr/Ocab/znHm/84y5//NMyh/y3E + m/8wuZL/O6mF/0iXdv9Vh2j/Yn9g/2p9Xf9ve1r/c31a/3eCW/97iF7/f41h/3eLX/9ifVj/VnZV/12A + Wf9djGH/TpVo/0Gecf86qHj/Nq9+/zSzgP8ztYH/NLWB/za1f/84s3z/OLF5/zmxef85r3b/Oa91/zms + c/85rXP/Oaxx/zmqb/85qW3/Oapt/zmqbP84p2n/N6Zn/zimZ/84pmb/OKVk/zikY/84o2L/OKJg/zih + Xv84oFz/OJ9b/zigXP84oFz/N6Bb/zefW/83nlv/NZZX/zSPVP8zgk7/MGlC/yxHMv80NyX/WEcY/4dm + Df+0hwb/1KIC/+y2AP/5wgD/+cMA//O+AP/xvAD/874A//S/AP/XqAP/WEgY/yEfIf8ZGCL/AAAA/wAA + AP8AAAD/AAAA/wAAAPx3dnkAoqKkAAAAAOcAAAD/AAAA/wAAAP8AAAD/GBcb/y0rL/9UUlP/dXJx/2tl + Z/9ZUlX/SEFF/zkzOP8tKy7/JC0r/yE3L/8jSjr/KWJJ/y99Wf80mWv/N7B6/zm7gv85vYT/Or6F/zq+ + hv86wIn/OsGJ/zm/iv85vYr/ObyK/zi8iv84vIz/Ob2O/zi+kP84v5H/OMCS/znBk/85wpT/OcSX/znF + mP85xZn/OcWa/znHnP84yJ3/OMmf/zfDm/8/uZL/UqyH/1iWdv9Uf2T/WHhd/2aAYf9sgWH/bYRi/2yH + ZP9pjGf/Z5Rr/2Wdcf9mpXb/Yad3/1Ohdf9Ionf/Qql8/zitgP8vr4L/LraG/zK7iP81vYf/OLuE/zm4 + gv85tX//OLR+/zmyfP85snr/ObF4/zmwd/85r3b/Oax0/zmsc/85rXL/Oatu/zmobP85qm3/Oapt/zio + av83p2j/OKdn/zimZ/84pmP/OKVi/zijYv84omH/OKFf/zigXf84n1v/OKBc/zigXP84oFz/N59b/zig + XP84o13/OaZe/zaiXf8wk1j/KXhP/yFeRf8nUDr/OlEv/1ZcJf9zZxr/iW8R/6OBDP/GnAf/7LgB//O+ + AP/1vwD/874A/9KkBP9RQxr/Hh0i/xgYIP8AAAD/AAAA/wAAAP8AAAD/AAAA53x7fgCvr7EAAAAAywAA + AP8AAAD/AAAA/wAAAP8XFhn/Kiks/1FPUP99e3n/gH18/3t4d/9zcHD/ZWJi/1JNT/8+ODz/LiYs/yQd + JP8gISP/ITIt/ydWQv8ugV3/M55w/zSldf80pnb/NKV2/zWpev82rn3/OLaE/zi9iv85v4z/OcGO/znB + j/85wZH/OcKT/znDlP85w5T/OcKU/zjDlf85xJj/OcSZ/znFmv85xpz/Ocie/zfKn/82zKL/NbKP/02X + eP+Dk3L/i35h/25qU/9Ycln/VpNx/0ygfP9FqoT/QK+I/zqziv81t4z/MruQ/zG/kv8ywZP/M8GS/zPB + kf80wZD/NsGO/zrAjP85vIj/ObqF/zi4hP85t4L/ObaA/zm1gP85tX//ObR+/zmye/85sXn/ObB4/zmu + dv85rXT/Oa1z/zmtcv85q2//Oalt/zmqbf85qm3/OKlr/zeoaf84pmf/OKZn/zimZP84pWP/OKNi/zii + Yf84oV//OKBd/zifW/84oFz/OKBc/zigXP84oFz/OKBc/zifW/83n1v/OKBc/zikXf85pl//OKFc/zKR + V/8ofVH/IWRI/x9DN/8nLCX/T0AZ/5l5Dv/mtAH/874A//fAAP/yvQD/yp8G/0g9HP8bGyP/Fxce/wAA + AP8AAAD/AAAA/wAAAP8AAADLg4KFALe4ugAAAACoAAAA/wAAAP8AAAD/AAAA/xQTFv8nJin/TUpL/398 + ev+Cf3z/fXp4/3x5dv96d3X/d3Rz/3BtbP9hXl//TEpM/zUyNf8iHSL/HBke/x8qKP8kRzv/JlRC/yZU + Qv8mUkH/JlVF/yljTv8vgmP/NKJ5/ze2hv84wI7/OMCO/ze/j/84wJH/OcWW/znFlv84xJb/OMSX/znF + mf85xZn/OMab/zjInf85yp//OMug/zbNov8zqIb/S4Vr/4GPcP+GiGj/a3Vb/09yW/9CiW3/N6SB/zW7 + k/82x5v/OMiZ/zfFl/84w5X/OMGT/zjAkv84vo//OL6O/zi9jP84vIv/ObuJ/zm7h/85uob/OLmE/zm4 + gv85toH/ObWA/zm1f/85tH7/ObJ7/zmxef85sHj/Oa92/zmtdP85rXP/Oa1y/zmrb/85qW3/Oapt/zmq + bf84qWv/N6hp/zimZ/84pmf/OKZk/zilY/84o2L/OKJh/zihX/84oF3/OJ9b/zigXP84oFz/OKBc/zig + XP84oFz/OKBc/zefW/84oFz/N59b/zigXP83oVv/OKVd/zeiXP8yi1P/JFQ+/zY6Jf90WhL/w5kG/+66 + AP/zvQD/+MEA//C7AP+/lgj/PzYd/xkaI/8VFRr/AAAA/wAAAP8AAAD/AAAA/wAAAKiVlZcAycnJAAAA + AIAAAAD/AAAA/wAAAP8AAAD/EA8S/yQjJ/9HRkf/gH18/4aDgP+Cf3v/gH16/316eP98eXj/end2/3Z0 + c/9xb27/ZWRj/1BMTv86NTj/Kycs/yooLP8qKy3/Kist/ygoK/8jIyf/HSAj/x0pKP8hPTb/JllI/ypx + Wf8qcFn/KWpU/ytyWv8xknL/NbCH/zjElv85y53/Ocea/zjFmf84x5v/OMqf/znOo/840qb/OM2j/zq5 + k/8/n3//Rotv/013Yf9QZlP/XGJN/3BuVf99iGf/U5Z1/zeviv83yJv/N8OV/znClP85wZP/OcCR/zm9 + jv85vY3/ObyL/zm7iv84uoj/OLqH/zi5hf84uIT/OLeC/zi2gP84tX//OLR+/zmzff84sXr/OLB5/ziw + d/85r3X/Oa1z/zmtcv85rHH/Oapv/zmpbf85qWz/Oals/zioav83p2j/OKVn/zilZ/84pWX/OKRk/zii + Yv84oWD/OKBf/zifXP84nlr/OJ9b/zifW/84n1v/OJ9b/zifW/84n1v/N59c/zefW/83n1v/N59b/zef + W/84pF3/NpdX/y1tR/8fNC//VEMZ/6uBCP/wuwD/+8QA//S/AP/4wQD/7bgA/7GLCf83MB3/GBkj/xER + Ff8AAAD/AAAA/wAAAP8AAAD/AAAAgKOjpQDW1tYAAAAAVwAAAP8AAAD/AAAA/wAAAP8LCw3/IiEl/0FA + Qv+AfXz/ioeF/4eEgf+EgX7/gX58/398e/9+e3n/fXp4/3x5eP95d3X/cG1t/2NgX/9XVFX/VU5Q/1NM + Tv9SS07/T0dL/0Y/Q/84MTb/LSYr/yUhJv8jJyn/JjQy/yYzMv8jLSz/Hy0r/yI9Nv8mV0n/LHpi/zOl + gv85yp3/OtCi/znSo/850aT/OMyh/zW9lv8woIH/WqOB/4Cog/9sjXD/QXhi/z57ZP9Phmr/XpFw/2ul + ff9PrYb/Or6T/zjNnv84x5j/OcOV/zjBk/84wJL/OcCQ/znDkf85xJH/OcOQ/znDjv85wo3/OsKL/zrB + iv85v4j/Ob6G/zm9hP85u4L/ObqB/zm3fv85tnz/ObR6/zmyd/84r3X/Oa5z/zmtcv85rHH/Oaxv/zmr + bf85q23/N6lr/zaoaf83pmb/N6Zm/zemZP83pWP/N6Nh/zijYf84omD/OKFd/zigW/84oVz/OKFc/zih + XP83olz/OKJc/ziiXP84oVz/OKJc/zijXf84o13/OKNd/zimXv84n1v/M41U/y1xSP9Dazj/a3Il/52F + Ef/RowL/7bcA//zCAP/oswD/n30J/y4qH/8XGCP/DQwO/wAAAP8AAAD/AAAA/wAAAP8AAABXuLi5AOPj + 5AAAAAAwAAAA/wAAAP8AAAD/AAAA/wYFBv8fHyL/OTg7/357ev+Oi4n/jImH/4iFg/+FgoD/hIF//4J/ + fP9/fHr/fXp4/315eP98eXj/e3h2/3h2dP92c3H/c3Fv/3Jvbv9vbWv/aGZl/11bW/9PTU7/Qz9C/zs1 + Of89NDn/PTM4/zYtM/8sIyn/JRsh/yAaIP8hLi3/KGFS/zKkg/80to//M7ON/zGlhP8ukXb/KXRg/yNY + TP9UcFv/kJFy/5SMb/9XjHD/PKiF/zq/l/87wZf/PbuS/zirh/81rIf/NruQ/zjElv85xZb/OMaW/zjF + lf84wZH/N7yM/ze3if82tIb/NrSE/zaygv83soD/N7B//zavff83r33/N698/zeve/82r3r/OK95/zix + ef85snn/OLJ4/ziydv85snX/ObB0/ziucf85rG//Oa1u/zmub/85rW3/OKxr/zmraf85q2n/Oatn/zmq + Zv85p2T/OKdj/zilYv84pF//OKJc/ziiXf84ol3/OKJd/zejXf84ol3/OKJd/zigW/83oFv/N59b/zWd + Wv80m1n/MZpX/zGZV/8wmlf/L5ZW/yWAT/8gXUD/N0ko/35lEf/RpBP//Mka/+K2HP+LcRr/JyUh/xYX + Iv8GBgb/AAAA/wAAAP8AAAD/AAAA/wAAADDOzs8A3NvcAAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/xwc + IP8yMDT/d3V1/5KPjP+Sj43/jYqI/4qHhf+IhYP/hoOB/4SBf/+Cf33/gX57/357ef98eXj/end2/3h1 + dP91c3H/c3Fv/3Jvbv9wbWz/b21r/2xqaf9pZmX/ZGJh/2NhYf9hXl7/WllZ/1BPT/9DQkP/Mi0x/yMa + If8eJyj/JlNI/ylsWf8oYlP/J0xE/yY1NP8hHyP/HB0i/yE6Nv9GY1P/gYNq/26dff9EwZj/L9Om/zPB + mP8tlHf/J2JS/yhcTf8tfWT/Mp57/zWshf82tYv/NrWK/zSmf/8wkG//LoFl/y16X/8teF3/LXZb/yx1 + Wf8sc1f/LHNX/y12Wf8telr/LXxb/y5/XP8whV//MYxj/zOTZ/80m2n/NaBs/zWjbP81oGv/NJhl/zOT + Yf8zmWP/NJtk/zScZP80nGP/NJ1i/zWeYf81nmD/NJxf/zSZXf8zl1z/M5Ra/zKSV/8zkFT/Mo1T/zKM + U/8xjFL/MotT/zKJUv8xiFL/MYZQ/zCET/8vgU7/Ln1L/y15Sv8sd0n/LHRH/yxwRf8ubkb/L3RJ/zFs + Sv81VkX/Tkk8/7qeT//412P/3MBe/3NlPP8jISL/Fxgf/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEODg + 4ACIh4oAe3p9AAAAAP8AAAD/AAAA/wAAAP8AAAD/Ghgd/yspLf9ta2z/k5CO/5iVk/+Sj43/kI2L/46L + if+MiYf/iYaE/4eEgv+FgoD/g4B+/4F+e/9/fHn/fXp4/3t4dv94dXT/dnNy/3Nwb/9xb23/b21r/25r + av9saWj/aWdm/2ZkY/9kYmH/YV9f/15cW/9TUlL/Ojc5/yUjJ/8jIib/KSot/zIyNP8/PD7/RkJF/zs4 + O/8lIyn/ICAk/z89N/95cFr/c3xk/0KHbf8khmz/LWxa/y0/PP8kJCf/Hh0h/x0lJ/8gNjL/I0U9/yVU + Rv8lVUf/JEQ7/yMyL/8iKSr/Iycp/yMmJ/8iJij/IiYo/yElJv8gJSb/ICUn/yAmJ/8fJyb/Hygn/yAr + Kf8hMS3/Izgx/yVANf8nSDr/J08+/yhMPP8kQDX/Hjkw/xs9Mf8bPzL/HEE0/x1ENP8dRjX/Hkc1/x5H + Nf8dRjT/HEMy/xxBMf8bPi//Gzwt/xs5LP8aNir/GjUq/xkzKf8ZMyn/GjIo/xovKP8eMSr/IjMs/yc2 + Lv8wPDP/Pkc7/05TRf9eYU7/bWxX/3dzXf+CfWT/mZJz/7aqhv/LuZL/69Si//3nrv/SvpL/W1NI/x8f + Iv8XFxz/AAAA/wAAAP8AAAD/AAAA/wAAAP/y8vIA7u7uAJubnQCgoKIAAAAAxQAAAP8AAAD/AAAA/wAA + AP8TExb/JSQo/2BeX/+TkI7/n5ya/5aTkf+UkY//ko+N/5CNi/+Oi4n/jImH/4qHhf+IhYP/hYKA/4OA + fv+Bfnz/f3x6/357eP97eHb/eHV0/3Zzcv90cXD/cm9u/3BtbP9ta2r/a2hn/2lnZv9nZWT/ZmNj/2Jg + X/9VU1P/SUZH/0U/Qv9IQUT/T0hK/1RPUP9XU1P/VlNS/1xWT/9oXlL/c2dX/3BnV/9GQjv/LDk2/y9D + QP9CS0n/S0ZH/0M9P/85Mjb/MCsv/ysoK/8oKCr/LC8x/zM3OP87Ojv/Pjk7/z85O/9AOTv/QDk8/z85 + Pf9AOj3/Pjk8/z04PP8+ODz/Pzo8/z44Ov85Mzf/My0x/ygkKP8hHyP/IB8i/yEhJP8eIST/GBsg/xkZ + H/8rKCn/SEM7/0dEPP9EQTv/QUA4/z8+N/9APzf/QkE5/0VDOv9HRTz/S0g9/09KQP9TTUH/Vk5D/1hR + Rf9ZU0b/XVVI/2FZSv9nX07/cGdV/3xxW/+Ie2L/loZq/6aTdP+0oX7/wa6H/8u3jv/Sv5P/18KW/9vG + mf/lz5//8tum//ngq//947D/++Ox/8Cui/9CPjv/Hh0h/xQTF/8AAAD/AAAA/wAAAP8AAAD/AAAAxZST + lQDy8vIAzs7PANXV1gAAAAB8AAAA/wAAAP8AAAD/AAAA/wwMDv8hHyT/TkxO/5COjP+koZ//m5iW/5mW + lP+XlJL/lZKQ/5OQjv+Rjoz/j4yK/42KiP+Kh4X/iIWD/4aDgf+EgX7/g4B8/4B9e/99enn/e3h3/3l2 + df92c3L/dHFw/3Jwbv9wbWz/bmtq/2tpaP9pZmb/Z2Vk/2VjYv9iYGD/YF5d/15dXP9eXFv/W1pZ/2Ff + Wv95cWX/e3Rl/3pzZf9ybWH/XVlT/zo2OP84LzT/Rz1B/1ZOUP9cWVj/WVhX/1NSUf9NSkv/R0NE/0M9 + QP9GP0L/TUZI/1RPT/9WU1P/V1VU/1hWVP9XVlT/WFZV/1hXVv9ZV1f/WFdW/1VTU/9QTk3/SEZG/z89 + P/82Mzb/JiQp/xsZH/8WExr/FBAZ/xMPGf8bFh7/RT03/4BzXP+pmXb/qpl2/6eUc/+kkXD/oo5v/6KO + b/+kkHD/p5Ry/6qXdf+tmnf/sZ15/7ShfP+4pH3/uqeA/7upgf++rIT/wrCG/8i1if/QvY//2MWU/+LM + mf/s057/9tyk//ziqP//56z//+mu///qrv//6a7//+qu///nrP/95ar//eKo//7lqv/x2KH/p5Z0/y4r + K/8dGyD/DQ0P/wAAAP8AAAD/AAAA/wAAAP8AAAB8bm1wAPHx8QDs7OwA1dXWAAAAADcAAAD/AAAA/wAA + AP8AAAD/AwME/x4cIf87Oj3/iIaF/6ekov+hnpz/npuZ/52amP+bmJb/mJWT/5aTkf+UkY//kY6M/5CN + i/+Oi4n/i4iH/4mGhP+HhIL/hYKA/4OAfv+Bfnv/f3x5/3x5d/96d3X/d3Rz/3Vycf9zcG//cW5t/25s + a/9samn/amhn/2lnZv9nZWP/Y2Fg/15cXP9aWFj/ZmJa/4yBbP98dWb/ZmJc/1hXVv9TUlL/U1JR/1lW + Vv9dWlr/XFpZ/1pZV/9bWlj/XVtZ/11bWv9dW1r/XVta/11bWv9eXFr/XVtZ/1xaWf9bWVj/XFpZ/1xa + Wf9dW1r/XVta/1xaWf9WVFP/SUhI/zw6PP8vLjH/JiYq/yEgJv8dHSL/HR0h/yEgI/8nJSf/Mi4u/1VO + Qv+hkW//59Ob//7rq///6qr//+ip///nqP//56n//+ep///nqP//6Kn//+mq///pqv//6an//+mq///q + qv//6qr//+qq///qq///6qr//+qq//7pqv/+6Kn//uap//7kp//94qX/++Gk//rfo//53qL/+N6i//jd + of/43qL/+N2h//fcof/43aL//uao/97Klf+Ie2D/Hx4i/xsbIf8EBAT/AAAA/wAAAP8AAAD/AAAA/wAA + ADeXl5gAAAAAAOzs7ABwb3EAAAAACgAAAP8AAAD/AAAA/wAAAP8AAAD/HRwf/ywrLv97eXj/pqKg/6il + o/+joJ7/oZ6c/5+cmv+cmZf/mpeV/5iVk/+VkpD/lJGP/5KPjf+QjYv/jYqI/4uIhv+JhoT/h4SC/4WC + f/+DgH3/gH17/357ef99enf/end2/3h1dP91cnH/c3Bv/3Fubf9vbGv/bWpp/2toZ/9oZWT/ZmNi/2Be + XP9hXVr/d3Bj/4d+bP+QhnL/h35s/2lkXP9bWVf/WVdX/1tZWP9bWVj/WlhX/1tZWP9bWVj/W1lY/1tZ + WP9bWVj/W1lY/1tZWP9bWVj/W1lY/1pYV/9bWVj/XFpZ/1xaWv9bWVj/Tk1N/zg3Of8iICX/GRge/xUU + G/8UFBv/GRkf/ywqKv9MRjz/bWNO/41/Yf+unHT/1r+K//HZm//74qH/+t6f//nenv/53Z//+t6f//rf + n//63p//+d6f//rdn//63p//+d6f//nen//43p7/+d2e//nenv/53p//+d6e//nenv/53p7/+d6e//nd + nv/53Z7/+d2e//ndnv/53Z3/+d2e//ndnv/43Z7/+N2e//jdn//43J7/+Nye//ndn//+5qT/x7WE/2de + TP8XGB7/Gxof/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAACry8vQAAAAAA7OzsAIeGiACPjpEAAAAA1gAA + AP8AAAD/AAAA/wAAAP8UFBb/Hx8i/2hmZv+gnJv/sK2r/6ilo/+loqD/o6Ce/6GenP+fnJr/nZqY/5qX + lf+ZlpT/l5SS/5WSkP+TkI7/kI2L/46Lif+LiIb/ioeF/4iFg/+FgoD/g4B+/4J/fP9/fHr/fnt4/3t4 + dv95dnT/dnNy/3RxcP9yb27/cG1s/25rav9nZGL/bGdh/3x0Z/+Hf3D/k4l1/56Sef+UiXP/b2hf/1tY + V/9YVlb/WlhX/1pYV/9aWFf/WlhX/1pYV/9aWFf/WlhX/1pYV/9aWFf/WlhX/1pYV/9cWlj/XVxa/1xa + Wf9WVFT/S0pL/z48Pv8rKy//Ghsh/xUVHP8nJSb/Qz42/2BXRf99cVX/p5Zt/8i0gf/bx4z/5dCT/+7X + l//53Zv/+96c//ndm//425r/+Nua//jbmv/425r/+Nua//jbmv/425r/+Nua//jbmv/425r/+Nua//fb + mv/425r/+Nua//jbmv/425r/+NuZ//jbmv/425r/+Nua//jbmv/32pn/+Nua//rdmv/53Jr/99qZ//jb + mv/425r/+Nua//famf/325r/+dyb//7hnv+tm3H/RkA4/xgYHv8UFBb/AAAA/wAAAP8AAAD/AAAA/wAA + ANbp6eoA3t7fAAAAAAAAAAAAtbS2AL+9wAAAAAB2AAAA/wAAAP8AAAD/AAAA/wkJCv8aGR3/UE5R/5OQ + kP+3tLL/raqo/6qnpf+opaP/paKg/6Ognv+in53/oJ2b/56bmf+cmZf/mZaU/5iVk/+VkpD/k5CO/5CN + i/+Oi4r/jImI/4qHhf+IhYP/h4SB/4SBfv+DgHz/gH17/357eP98eXb/eXZ1/3d0c/91cXH/c3Bv/2to + Z/94cmn/jYNx/4J7b/9+d23/fnds/3lzaP9mY17/XVta/1pYWP9bWVj/WlhX/1pYV/9aWFj/W1lY/1tZ + WP9bWVj/WlhX/1pYV/9bWVj/XFpZ/1hWVf9PTk3/RURE/zo4Ov8sKy//Ghsi/xkYH/8zLyz/ZlxI/5CA + X/+vnXH/xbJ+/9jCh//v1ZP//eCa///knf/+45z//eGb//vdmP/42pb/99mW//falv/32pb/99qW//fa + lv/32pb/99qW//falv/32pb/99qW//falv/32pb/+NqW//falv/32pb/99qW//falv/32pb/99qW//fa + lv/42pb/99qW//bZlv/32Zb/9tmW//jblv/425f/99qW//fZlv/42pb/9tmV//jal//73Jj/8NOS/41+ + Xf8rKCn/Gxog/wkJCv8AAAD/AAAA/wAAAP8AAAD/AAAAdv7+/wD19fYAAAAAAAAAAADc29wA6OfoAAAA + ACUAAAD/AAAA/wAAAP8AAAD/AAAA/xoZHf84Njr/gX5//7m2tP+0sa//sK2r/62qqP+qp6X/qKWj/6ek + ov+loqD/o6Ce/6GenP+em5n/nJmX/5qXlf+YlZP/lZKQ/5OQjv+Rjoz/j4yK/42KiP+LiIb/iYaD/4eE + gf+EgX//gn98/4F+ev9+e3n/fHl4/3p2df93dHT/c3Bv/3x3cf+IgHT/dG9q/2hlZP9iYGL/YWBg/2Fg + YP9iYF//YF1d/11bWv9bWVn/WlhX/1tZV/9aWFf/WlhX/1pYV/9aWFf/W1lY/1lXVv9SUE//Q0FD/zEw + M/8iIif/Ghog/xoZHv8hHyL/RD42/4V4WP/OuYD/8tWS//7hmv//5Zv//+Sa//3fl//62pT/99iT//fY + kv/32JP/99mT//fZk//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//jZ + k//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//fZk//42ZP/99mT//TWkv/awIT/58uL//ja + lP/42pT/99iT//fZk//22JL/+duU//vel//SuoH/amBK/xoZH/8dHCL/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAAl5eXlAP7+/gAAAAAAAAAAAPT09ADz8/QAvb2+AAAAAPcAAAD/AAAA/wAAAP8AAAD/EhET0SMi + Jv9pZmj/sK2t/7q3tf+2s7H/s7Cu/7Ctq/+uq6n/rKmn/6mmpP+npKL/paKg/6Shn/+hnpz/n5ya/52a + mP+al5X/mZaU/5eUkv+UkY//ko+N/5CNi/+Nioj/i4iG/4mGhP+HhIL/hYKA/4OAfv+Cf3z/f3x5/316 + eP97eHb/eHV0/3Zzcf90cXD/cW9t/29sa/9tamn/amhn/2hmZf9mY2P/Y2Bg/19dXf9eXFv/XFpY/1tZ + V/9aWFf/W1lY/1xaWf9aWFf/TUtM/zQzNf8hICX/GBge/xcXHf8gICP/PDcx/25iSv+wnG3/6M+L//rg + lf/73JP/+NmQ//fYkP/42ZD/+NmQ//jYkP/42JD/99iQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jY + kP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jY + kP/42JD/99eQ//jYkP/62pD/8dSM/6GOZP+6o3H/7dCL//rbkf/32ZD/99eP//fYj//625H/+d2S/6mX + av9JQjj/ExQc/xYVGP8AAAD/AAAA/wAAAP8AAAD/AAAA97CvsQCqqasA/v7+AAAAAAAAAAAA9/f3AJua + nACWlZcAAAAAhgAAAP8AAAD/AAAA/wAAAP8AAADCGRgc/k5NT/+amJn/wL69/7u5uP+3tLP/tLGx/7Kv + rv+xrqz/r6yq/6ypp/+ppqT/qKWj/6WioP+joJ7/oZ6c/5+cmv+dmpj/m5iW/5iVk/+Wk5H/lJGP/5GO + jP+QjYv/jouJ/4uIh/+JhoX/h4SC/4aDgP+DgH3/gX58/398ev99enj/end1/3h1dP92c3H/dHFw/3Fv + bf9ubGv/bWpp/2toZ/9oZmT/ZWNi/2NhYP9gXl3/Xlxb/11bWv9dW1r/WFZW/0ZERf8sKy//Fhcf/xcX + Hf8zMSv/XlVB/419WP/AqHD/38aC//HVi//62o3/+NmN//jXjP/414z/99eM//fXjP/314z/99eM//jX + jP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jX + jP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/31oz/+NeM//zbjv/y04n/eWxO/3xu + UP/ErXT/++CQ//fZjP/21ov/+NeM//vbjf/v0Yj/fG5R/y0qKv8WFx7/CAgJ/wAAAP8AAAD/AAAA/wAA + AP8AAACG39/gANPT1AD+/v4AAAAAAAAAAAD29vYAq6qsALa2twAAAAAlAAAA/wAAAP8AAAD/AAAA/wAA + AP8UExfENTQ3/3l4ef/Bv77/wb69/7u5uP+5t7b/t7W0/7azsv+0sLD/sq+t/6+sqv+uq6j/q6im/6il + o/+mo6H/o6Ce/6Kfnf+gnZv/npuZ/5yZl/+al5X/l5SS/5WSkP+TkI7/kY6M/4+Miv+Nioj/i4iF/4iF + g/+Gg4H/hIF//4J/fP+AfXr/fnt4/3t4dv95dnX/d3Rz/3RxcP9yb27/cG1s/25rav9raWj/aWdm/2Zk + Y/9mZGT/ZmRk/11bWv8/P0D/ISEp/xoaIf85NC3/cmVI/6aTYf/Js3T/4Md///bWh//93Yv/+9yK//nY + iP/21of/9taH//fXiP/314j/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fX + iP/314j/99eI//fXiP/314j/99aI//fWiP/31oj/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fX + iP/314j/99eI//bWh//314j//NqK//HQhf84MST/RD40/4h5VP/y1Yf/+NmJ//fWiP/62or/99iJ/8+0 + df9TSjv/Gxsh/xoZH/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAACWamZwA4+PkAAAAAAAAAAAAAAAAAAAA + AADg4OAA6urpAM7OzgAAAADiAAAA/wAAAP8AAAD/AAAA/wcHCbEhICX/VlVW/7Oxsf/Fw8L/w8C//767 + uv+8urn/uri3/7i1tP+2s7L/tLGw/7Kvrf+wrav/raqo/6uopv+opaP/p6Si/6WioP+joJ7/oZ6c/5+c + mv+cmZf/mpeV/5iVk/+VkpD/k5CO/5GOjP+QjYv/jYqI/4uIhv+JhoT/h4SB/4WCf/+DgH3/gH17/357 + ef98eXf/eXZ1/3d0c/91cnH/c3Bv/3Fubf9wbGv/bmtq/2dlZP9bWVr/SEZI/yEiKP8dHCD/SEA0/5WD + V//UunT/99iF///hi//+34n/+9qG//jWhP/21IP/9tWE//fVhP/31YT/9tWE//bVhP/21YT/9tWE//bV + hP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YP/9tWE//fWhP/41oT/+NeE//fW + hP/31oT/9tWD//bVhP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YT/9dSD//fWhP/72IX/2bx1/xQR + Df8iISP/T0c4/8mvcP/214T/+tiF//3bh//sz4H/moda/zQwK/8VFh3/EBAS/wAAAP8AAAD/AAAA/wAA + AP8AAADif36AAHp5fADf3+AAAAAAAAAAAAAAAAAAAAAAAPr6+gDx8fEA39/fAAAAAGEAAAD/AAAA/wAA + AP8AAAD/AAAA/xgXHP84Nzr/kpGR/8bEw//Mycj/w8C//8G+vf++vLv/vLq4/7q3t/+4tbX/trOz/7Sx + r/+yr63/sK2r/62qqP+rqKb/qaak/6ekov+loqD/o6Ce/6Cdm/+em5n/nJmX/5mWlP+XlJL/lZKQ/5SR + j/+Sj4z/j4yK/42KiP+LiIb/iYaE/4eEgv+EgX//g4B9/4F+e/9+e3n/fHl3/3p3df94dXT/dnNy/3Vy + cf9vbGv/VVRU/zU1Of8lJSn/JCMk/1hPOv+rlWD/89KA//zchP/62IL/99OA//bTf//303//99OA//fT + gP/304D/99OA//fTgP/204D/9tOA//fTgP/304D/99OA//fTgP/304D/99OA//fTgP/304D/9tOA//bT + gP/204D/99SA//fUgP/41YH/+NWA//nVgf/51oH/+NWA//nWgP/41YD/9tOA//bTgP/204D/9tOA//fT + gP/304D/99OA//fTgP/20n//+NWA//rWgf+ullz/LCcc/xkZH/8oJib/hHRO/+jKev/82oL//NmC/9e6 + dP9eUz7/IiEk/xgYH/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAGG/v8AAubm6AAAAAAAAAAAAAAAAAAAA + AAAAAAAA/Pz8AK6urwCwsLEAAAAACgAAAP8AAAD/AAAA/wAAAP8AAAD/EA8T/yYlKf9hYWP/vbu6/9LP + zv/Jx8b/xsPC/8TBwP/Cvr3/v728/727uv+8ubj/uba1/7e0s/+2srH/s7Cu/7GurP+vrKr/rKmn/6qn + pf+opaP/paKg/6Shn/+in53/n5ya/52amP+bmJb/mZaU/5eUkv+VkpD/k5CO/5GOjP+PjIr/jImH/4mG + hP+IhYP/hoOA/4OAff+Bfnv/gHx6/398e/9/fHr/d3Rz/1lXV/8wLzP/ExMc/x8eIv94aUf/yrBq//TV + ff/51n7/+NN9//bSe//303z/9tJ8//bTfP/203z/9tN8//bTfP/203z/9tN8//fTfP/303z/9tN8//bT + fP/203z/9tN8//fTfP/303z/99N8//bTfP/20nv/99N8//fTfP/6137//Nl///vZf//20nz/8M15/+7L + eP/xz3r/+dZ9//zYf//51n7/99N8//fTfP/20nv/9tN8//fTfP/303z/99N8//bSe//51X3/+dZ9/3po + P/88NSf/Gxsg/xcXH/9EPTH/wKVm//bYf//w03v/rJRd/zAtKf8bGiD/ExIV/gAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAACuzs7QHo6OkAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sA09PUANzc3QDX19gAAAAAkQAA + AP8AAAD/AAAA/wAAAP8BAQH/HRwg/zc3Ov+dnJv/09HQ/93c2v/U0tH/zszL/8nGxf/EwsH/wb++/8C9 + vP++u7r/vLm4/7q3tv+3tbP/trOy/7Sxr/+xrqz/r6yq/62qqP+qp6T/qKWj/6ajof+koZ//op+d/6Cd + m/+em5n/m5iW/5mWlP+XlJL/lZKQ/5OQjv+Rjoz/jouJ/4yJh/+Kh4T/iIWD/4eEgv+JhoP/gn99/2xq + aP9MSkz/LCwx/yIgJP82MSr/bV9B/8qvZ//31Xn/+9h7//fTef/20Xf/9tF4//fSeP/30nj/99J4//fS + eP/20nj/9dF3//bReP/20nj/99J5//fSeP/20nj/9tF3//XReP/20Xj/99J4//fSeP/30nj/9tF3//XR + eP/403n//dh7/+zJdP/Iq2f/oIxX/4h2Tf95akj/cWJC/3RkQP+MeEr/v6Ri/+zKdf//2Xz/99J4//XR + eP/20Xf/99J4//fSeP/30nj/9tF3//rWef/403j/QDYg/0M7Lv8bGyH/FBYe/yUjJP99bEj/4MZz/9W8 + bf9vYEL/HBwh/xoaIP8BAQH4AAAA/wAAAP8AAAD/AAAA/wAAAJHz8/QArKytAPPz9AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADw8PEAwsLEAPDw8QAAAAAbAAAA/wAAAP8AAAD/AAAA/wAAAP8TEhX/ISAk/15d + Xv+VlJT/tbS1/8HAv//My8r/0dDP/9LQz//Pzcz/yMbF/8PAv//Avbz/vry7/7u5uP+6uLf/uLa1/7az + sv+0sa//sq+t/7Guq/+yr6z/sa6r/6qnpf+npKL/pKGf/6Kfnf+fnJr/npuZ/5uYlv+ZlpT/l5SS/5WS + kP+UkY//lJGP/5OQjv+Rjoz/jYqI/3p3dv9cWlv/PDs//xwdJv8hICL/V002/56JU//IrGT/89B1//zX + d//10XT/9dB0//XQdP/20XT/9tF0//bRdP/20XT/9tF0//jTdf/61Xb//Nh3//7Yd///2Hf//th3//7Z + eP/+2Xj/+9d3//nTdf/20XT/9tB0//XQdP/10HP/+NJ1//nUdv/XuGn/mINR/2BUPP9BOzD/MCwo/yEf + IP8jISP/Ly0s/zw2MP9VSjT/loFO/9y7av/813f/+NJ1//XQc//10HT/9tF0//bQdP/10HP/+9V2//TQ + c/8LCgb/QDou/xkZIP8ZGR//HBwh/0E6L/+jkFf/mIdS/zs2Lf8aGiD/ExMW/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAG+/v8ACxsbMA7+/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzs7QCbmpwA7OztAKSj + pQAAAACoAAAA/wAAAP8AAAD/AAAA/wICAv8dHCD/JCMn/z08QP9dXGD/enp9/5mZmv+vr6//v769/8fG + xf/Lysn/y8jH/8fEw//DwcD/wL69/7+9vP+9u7r/u7i3/7m2tf+2tLP/tbKx/6+sqv+qqKX/raqp/6uo + p/+ppqT/p6Si/6Shn/+koZ//op+d/5+cmv+em5n/nZqY/5qXlf+XlJL/lZKQ/5OQjv+Bf33/UE9R/yQk + Kv8VFh3/Hx4f/1hNNv+zmln/+9d0//3Ydf/40nL/9c9x//XPcP/2z3H/9tBx//XQcf/10HD/9c9w//bQ + cf/40nH/+dNx//XQcP/pyWz/3Lpk/9KxYP/QsWD/2Llk/+PEav/wzW7/+NFx//nTcf/503L/99Fx//fT + cf/51XL/6cds/4p3Sv81MSr/DhAb/xARG/8QERj/Fxgg/z4/Rf9mZmv/Xl9m/y0vOf87Ni7/iXVG/+LB + af/403H/+NNy//bRcP/30XH/99Bx//bRcP/813P/6cdr/woJBf83Miv/FhYe/x0cIf8eHSH/ISAj/1NK + Nv9ORTP/ICAj/x0dIv8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAKjX19gAAAAAAObm5wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/e3wAAAAAA4+LjAAAAACAAAAD/AAAA/wAAAP8AAAD/AAAA/xIR + FP8cGx//GBcc/xcWHP8aGiH/Kiow/0VESP9iYmP/hoWF/7KxsP/Ny8r/0M7N/8rHxv/GxMP/xsLB/8PB + wP+/vr3/vbu6/727uv+tq6r/h4WF/3p4d/+npKP/sa6s/7Ctq/+tqqj/qqel/6qnpf+opaP/p6Si/6aj + of+mo6D/m5iV/4aDgf95dnX/fHp4/1VUVv8kJCz/ERIZ/zMuKP95aUH/yKpd//PObP/6027/99Bu//bP + bf/1z23/9c9t//bPbf/2z23/9c9t//XPbP/2z23/99Bt//bQbv/ow2j/xahc/5eBSv9rXTv/Ukgx/01D + L/9cUTL/gW9A/7GWU//buWL/885r//fVbv/61W//+9px/+3PbP+3nFf/Pjct/xgYH/8ZGR//Ghgc/xcW + Gv9PTlL/qamr+e7u7QDk5OQAoKGj8klLUvg2Mir/i3dE/+bGaP/613D/+tNu//nSbf/40m7/+dJt//3a + cf/HrFv/LygY/y4qKP8WFx//Hx4i/x4dIv8eHiL/HR0i/x4dIv8eHiL/EhEU/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAIJGRkwAAAAAA5OTlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6ejpAAAA + AACgoKIAlZSWAAAAAKIAAAD/AAAA/wAAAP8AAAD/AAAA/xwcH/8dHSD/Lyol/0E5Kf8lISL/FhUf/xUW + Iv8mJy7/T09S/5ybnP/Kycj/1NPS/83Lyf/Fw8H/xsTD/8nHxv/Jx8X/wb69/4B/gP9SUVP/W1lb/5WT + kv+0sbD/uba1/7azsv+zsK7/pqOh/52amP+XlZT/k5GP/4WEgv9iYWL/Pz1B/y4tMf8yMTX/IiIp/zQv + Kf9qWzf/r5RQ/929Yf/0zmj/+dBp//bOaP/2zWj/9c5o//XOaP/2zmj/9s5o//bOaP/1zWf/9s5o//jP + af/0y2j/tppU/3BfO/9COi3/Qz86/3h2d/+Ih4n/d3d6/1taXP9PTUr/Tkg+/15SOP+AbDv/p45H/8io + U//PsVr/qZNQ/1lPNv8gHiH/EREY/xIRFf8gHyP/X19i/7m4uv/u7u6p+/v8Ovn59zq+v8E6rK2wpXx8 + f/9MRj3/hXE+/8eoUf/sxmD/8cli//DJZP/txmT/9dFp/5J+Qf9HPSX/JyUl/xYXH/8gHyP/Hx4i/x4d + Iv8cHCL/HRwi/x4dIP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKLb29sAzc3OAAAAAADk5OUAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADl5OUAAAAAAL29vgDLy8wAAAAAGAAAAP8AAAD/AAAA/wAA + AP8AAAD/DAwN/xsbIv89Nyz/e2o9/4d1P/9hUjL/NC0j/xoZG/8YGSH/RkZM/3l4ef+sq6r/1NPR/7Gv + r/+PjY7/nJqa/8XCwf+3tLT/h4aH/4qKjP+fnqD/jo2O/7e0tP+/vLz/oJ2d/3Nxcf9wbm7/enh4/25t + bf9QT1D/QD9C/ycnL/8YGCH/DxAa/xARHP8yLSX/hnM//82wV//xymH//NRm//rQZP/1zWL/9Mxi//XM + Yv/1zGL/9cxi//XMY//1zGL/9cxi//TLYv/3zWP/+M5j/+e/Xv95aD7/JCAe/yMjLf9ub3b2o6Sqka2u + snaQkpt2q6yzdpyepXaTlJvViYiK/3x3b/95cFv/dmlJ/2dZOf9FPCn/Gxka/xUVGv8kJCj/SEhL/3p6 + e/KkpKWGzs7Odv///z36+vsA8PDvAMTFxwDe3uA7y8vPoJGRlv9uaF3/fW9L/5aBTv+Wf0n/h3I//3pl + N/+AbDr/Ni4a/zw1Jv8iISP/Ghoh/yAfI/8gHyP/Hx4j/x8eI/8fHiP/DAwN/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAGL+/wADo6OgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA8PDwAOHh4QDFxMUAAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/EhMZ/zAsJ/95aDz/z7FU/8ar + Uf+chkX/bl43/zw1Jv8ZGBv/ISEp/2JhZf+2tbT/lJOT/2RjZf9sa23/mZeX/4mIiP+enp//2NjZ/+fn + 6P+Xl5n/oqCh/5mWl/93dXb/W1pc/3JxdP9sa27/Q0JH/xQVHP8SEhn/Ih8e/0A4Kf9ORS7/SEAs/4Fu + PP/WtVX//9pi//vSX//1zF3/9Mpc//TLXP/1y1z/9Mtc//TLXP/0y1z/9Mtd//TLXP/1y1z/9cxd//rP + Xv/60F7/4btW/1xOLv8TEhj/RkZO/8XFxvLW1dUuzMvMAIuNlADp6ewA6urtAO3t8HHY2N6zwsPJs56g + qLaBgYjvYGFo/0hJUf9EREr/VlVY/25ucNOcnJ2zxMTEmMXFxQy9vb0AAAAAAPr6+wAAAAAAw8TGAOfn + 6QDx8fIv3t7hr3t9hrOKio7miIWE/397dv9kYV7/R0VG/zczNf8JCAj/IiIi/x8dIv8eHSL/IB8j/yAf + I/8gHyP/IB8j/xkYG/8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2Nr+4t7gEtbS2AAAAAADg4OAA4uLiAODg + 4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs7OwAsbCyALa1twAAAAAGAAAA/AAA + AP8AAAD/AAAA/wAAAP8CAgL/GBgg/zEsJv+jiUT/5shX//vXW//mvlT/qY5E/0tCK/8XFhn/KSgv/2Zm + aP9ubm//c3J1/3Rzdv9oZ2n/T05Q/6ampv/s7O3/7u7u/7Gxsv93dXb/VFJU/2dmaP+mpab/wMDC/3Z1 + ef8vLjP/HRwd/zcxJ/9uXjT/rJJE/8ytTf/Epkv/37pS//LKV//2zVj/9MtX//TLVv/1y1f/9MpX//XL + V//1y1f/9ctX//TKV//0y1b/9ctX//bMV//3zVj/+dBY//jPV//lvlH/ZFUs/zMxMv93d3346ejq1/n5 + +S719fUAAAAAAOTk5wDk5OcA5ubpA9LS1wT19fYE9PT1DPT09arg4OHkxMTF5Li4ueTMzM3k0tLTX9PT + 1AS+vr4EwsLCAL+/vwAAAAAAAAAAAAAAAAAAAAAA5uboAO7u7wHY2NsEe3yDBPX2+Ejx8vUA4uPoAMfI + zACpqq1yfX2CAAAAAP8eHiP/HBsg/x4dIf8gHyP/IB8j/yAfI/8gHyP/AgIC/wAAAP8AAAD/AAAA/wAA + AP8BAQH/qaqqAODg4ADv7+9w9vb2GuDg4Bbi4uIC4ODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOzs7ADs7OwA8vLyAOjo6AAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8LCw3/HB0h/0lA + LP+1mUT/981T//zSVP/vx1H/vp9E/35rNP9EOyn/Hx8m/yIiKP9vbnH/uLe4/7y8vf9xcXL/vb29//f3 + 9//5+fn/2dna/29vcf93d3n/srGy/8DAwP94eXz/MDA3/zgxIv+Cbjb/vJ5E/+C6Tf/yyVH/985T//bN + U//2zFP/9ctS//TKUv/zylH/9MpS//XLUv/1ylL/9cpS//XKUv/1ylL/9MpS//XLUv/70FL/+c5S/+vE + UP/gvUr/2bdG/8amSf94bVD/h4aJ/8bFyczX1tku2tnbB/r6+gAAAAAA5OTnAOTk5wDm5ukA0tLXAPv7 + +wD9/f4A////HO3t7ibR0dEmxMTFJtnZ2Sbd3d4O2dnaAL6+vgDCwsIAv7+/AAAAAAAAAAAAAAAAAAAA + AADm5ugA7u7vANjY2wB7fIMA////F/z+/ybt7vQm0tPYJsfHySatra+XGxob/yQjKP8bGh7/Hh0h/yAf + I/8gHyP/IB8j/w0NDv8AAAD/AAAA/wAAAP8AAAD/AAAA/x0cH/9AP0L/ZmVn/5SUlejExMUA4ODgt+Li + 4hbg4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADk5OUA4ODhAL6+ + wAAAAACtAAAA/wAAAP8AAAD/AAAA/wAAAP8TExf/HR0i/2ZWMf/DoUL//9NO//zQT//yyUz/27hH/5+E + Of84MCH/CQoT/1ZWXv+/vr//8vLy/8/Pz//o6Oj//Pz8//7+/v/29vb/y8vM/7a2t/+SkpT/UVFY/ygq + M/9KQCn/ln81/927SP/zyU3/+89O//vOTf/5zU7/+c5O//fMTf/1ykz/9MlM//TKTP/1yk3/9cpN//XK + Tf/1yk3/9cpN//TJTP/4zE3/9stN/964SP+ghjz/bl0r/21eNP+ZjWD/yb2b/766r47Ix8dd3dzfRdHP + 0wDPztEA9/f3AAAAAAAAAAAAAAAAAAAAAAAAAAAA9/f4APf3+AD4+PkA5OTlAMjIyQC8vL0A0NDRANbW + 1wDV1dYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+vwA9fb5AObn + 7ADLzNAAsbGxAHBwcZc+PT7/Hh0g/xoZHf8fHiL/IB8j/yAfI/8WFhn/AAAA/wAAAP8AAAD/AAAA/wAA + AP8LCgz/Hh0h/xwbH/8mJSn/ODc7/1RTV/94d3n2lJSVALa3uKHPz9AA6OjpAOfn6AgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+vr6ANDP0QDR0NIAvr2/AAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8UFh3/KSYl/3hkMv/XsUH/+s5H//3RSP//1En/5r1E/5N8NP8+NR//Pj0//4+Plf/x8fD///////// + ///+/v7////////////y8vL/pKSm/0FCSv8MDBT/Misd/5d/Nf/mwEX//9VJ//rNSP/1ykf/9MhG//TI + R//0yEf/9MlH//XJR//1yUf/9clH//XJR//1yUf/9clH//TJRv/1yUf/9clG//jMR//atEP/i3Y1/zs0 + Iv8mJCf/WFdc/6qrrfTg4eSi7+/vJuHg3gDW1dgA09LVANPS1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7u7vAO7u7wCCgoQAMzMzs0dHSf8YFxv/Gxoe/yAf + I/8gHyP/HRwf/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x4dIP8eHSH/Gxoe/xUUGP8ODRH/Dw4T/x8e + Iv8/PkL/Xl5h/0pKS/85OTq0wsLDDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09LUANPS + 1AClpaYArq2vAAAAAEkAAAD/AAAA/wAAAP8AAAD/AAAA/wQEBP8TFSH/My4l/4ZwMf/lvT//98xB//nM + Qf/6zUL/7MRA/6KHM/9HPib/TU5V/7Cxs//q6ur//Pz8///////+/v7/8vLy/7Cxsv9MTFH/GxgY/0U8 + JP+RejL/37k///3RQ//1yED/88dB//PHQf/0yEH/9MhB//TIQf/0yEH/9MhB//TIQf/0yEH/9MhB//TI + Qf/0yEH/88dA//TIQf/6zEH/68E//6KHNf8uKiP/ERIe/1NTXf+1trnv9vf5sfX2+RL19vkA4N/fALy8 + vgCfnqEAm5udAMHBwgDe3t4A3NzcANzc3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADw8PEA8PDxAX19gB4WFhfeQEBD/xgXG/8cGx//IB8j/yAfI/8EBAT/AAAA/wAAAP8AAAD/AAAA/wAA + AP8WFRj/HBsf/xwbH/8cGx//Hh0h/yIhJf8nJyr/JiUo/w8PEP8PDw//VFRV86OipFKPjpAKAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO/v7wD19fUAy8vMAAAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/wkJCv8ZGCH/Ni8l/5Z9Mf/lvjr/+848//XIO//2yjz/8MU7/4xzK/81LyT/OjxG/6Oj + pv/o6Oj//Pz8//Ly8//ExMX/S01V/yooJP9pWCX/y6g2/+rAOv/0yDz/9cg7//PGOv/0xzv/9Mc7//TH + O//0xzv/9Mc7//THO//0xzv/9Mc7//THO//0xzv/9Mc7//THO//zxjr/9Mc7//7PPP/MqDb/a1oo/xcW + H/9CQkj/sbGy+vP09KL4+PgT9fb4AvX2+ATi4uQGvLy+Bp+eoQabm50GwcHCBt7e3gTc3NwA3NzcAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzs7QDs7O0F5eXmAAgICP8uLjH/Ghkd/x0c + IP8gHyP/CgoL/wAAAP8AAAD/AAAA/wAAAP8AAAD/DQ0P/xoZHv8ZGB3/HRwh/yoqLf8/PkL/NDQ1/QAA + AP8AAACaAAAAJuHh4gDu7u8A8fHyAJCPkQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOzs7ADo6OkAAAAAAwAAANYAAAD/AAAA/wAAAP8AAAD/AAAA/wwMEP8dHCL/PDUl/52C + Lv/kuzT//c82//XIN//8zTf/1K0y/3plJf8kISH/OTpD/5ydof/My8r/qaiq/1NUW/8kJCf/aFYk/8ij + Mf/3yjb/+Mo3//XHNv/zxTb/88U2//TGNv/0xjb/88Y2//PGNv/zxjb/88Y2//PGNv/zxjb/88Y2//PG + Nv/zxjb/88Y2//LFNf/zxjb//9A3/7ybMf9SRSL/Fxci/3Z1ev+xsbCIurq6I/n5+QD7+/sA/v7+gOno + 6rfCwsS3pKOmt6CgorfHx8i34+Piet3d3ADc3NwAxMTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA0NDRANDQ0QbPz9AACAgI/x4dIf8dHCD/Hh0h/w8OEP8AAAD/AAAA/wAAAP8AAAD/AAAA/wQE + Bf8bGh7/MC8z/wAAAP8AAAD/AAAAtxUVFf9nZ2i8w8PDT8fHyEfn5+dH////R////yQAAAAAkI+RAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+fkA4eHhANnZ2QDR0NEAAAAAGAAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/w8PE/8YGSH/SD4l/52CK//luzD/+8wx//nJMv/2xzL/y6Ut/3Je + Iv8lIRz/R0hP/19gZ/9GSFH/Hh0k/1lLIf+5lyz/98gy//nKMv/0xjH/88Ux//PEMv/0xTL/9MUy//TF + Mv/0xTL/9MUy//TFMv/0xTL/9MUy//TFMv/0xTL/9MUy//TFMv/0xTL/88Qx//TFMv/+zjL/w58u/1pL + Iv8TFSL/YWJn/5WVmKafoKdzyMrTebe5wnykpq/eiIqT/2lrc/9VVl//UFFc/2lrdf+foKba09PUa9LS + 0wi/v8EA8fHzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPr6+gCgoKEAoaGiAIiIiQAfHx//FRQY/x4d + If8RERP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABuBwcH/QAAAKiXl5ic/Pz8hf// + /y7+/v4AvLy9ANvb2wD09PQA/f3+APz8/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADj4+MAwsLCAMPDwwDBwcEAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xAQ + FP8UFiL/SD4j/56CKf/mvCv/9sct//zLLf/5yS3/1Kwr/29cI/8oIx7/Dg8a/x4cGv9QQyD/tpQp/+/C + Lf/7yi3/88Mt//PDLP/0xC3/9MQt//TELf/0xC3/9MQt//TELf/0xC3/9MQt//TELf/0xC3/9MQt//TE + Lf/0xC3/9MQt//TELf/zwyz/9MQt//zLLf/asCv/g2wl/yEfIf8pKjT/YWFo/4qIiP+JhX//c29i/1tU + RP9HPyr/OjEb/zMrFf8sJBP/JiEY/1NQTv+np6ntzc3PWNPT1BX4+PkAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/Pz8AKSkpAqhoaI8U1NTACgoKf8UExf/EhEU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAACoBwcH/QAAAG7b29tk+vr6AM/P0ADx8fEA+vr6APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQAxMTEAKuq + qwCtrK0AAAAAVwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xAQFP8XGCL/PTUk/5d8Jv/luif/+Mgm//rI + Jv/4xyb/2K4l/2hXIf85MiD/aFgj/8miJv/zwif/+Mcm//PDJv/zwyb/88Mn//PDJ//zwyf/88Mn//PD + J//zwyf/88Mn//PDJ//zwyf/88Mn//PDJ//zwyf/88Mn//PDJ//zwyf/88Mn//PCJ//zwyf/9sUn//XE + J//Dnib/X1Aj/yYiH/8tKB3/V0gd/4NqHf+Zexv/qoke/7eUIv++mST/vJkk/7OSJf+PdRz/YlMi/1xb + Wf3R0dP08fH0VOnp6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD39/cA9/f3KOzs7AA2Njf+IyMm/w4N + EP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7+KSkp4BsbG0TCwsML7OztC/v7+wX4+PgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExADExMQAqKeoAJ6dnwCamZsAAAAAcQAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/w8OE/8cHCP/NjAi/4duIv/XrCH//ssf//vIIP/2xCD/yaEg/7qXIP/SqSD/9MMg//bF + IP/zwh//8sEg//PCIP/zwiD/88Mg//PCIP/zwiD/88Ig//PCIP/zwiD/88Mg//PCIP/zwiD/88Ig//PD + IP/zwiD/88Ig//PCIP/zwyD/88Ig//LCIP/ywR//9cQg/+2+If/QpiD/qIgg/7GOHf/OpRv/5Lcb/+q7 + HP/vvx7/8sEg//PCIf/zwiH/8cQg/+q/H/+nhhr/Qz0s/4mKjv+cn6hWlZifAPr6+wD6+vsA/f7/AOvr + 7QDNzM0Avr6+AOnp6QD4+PcA9PT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5+joAOfo + 6ADn6OgA5+joANna2gDj5OMq1dbWABEREv8NDA//AAAA/wAAAP8AAAD/AAAA/wAAAPYAAAD/Dw8Ppaem + p0P49/gc8O/wAMLCwwDs7O0A+/v7APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACqqaoAl5aYAI2MjgCHhogAAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wwMEP8ZGSL/NC4i/3hi + IP/DnBz/9cMb///KGv/1wxv/8sAc//XEG//3xBv/88Eb//LAG//zwBv/8sEb//LBG//ywRv/8sEb//LB + G//ywRv/8sEb//LBG//ywRv/8sEb//LBG//ywRv/8sEb//LBG//ywRv/8sEb//LBG//zwRv/8sEb//LA + G//zwRv/9cMb//bEHP/tvRz/8sAc//jGHP/7yRz/+sgc//rGHP/5xhz/+cYc//nGHP/5xxv//84c/9Kn + GP9kUxv/PT1E/mxwf7epqrGS////Of///wH///8n9fX3WNjX13THx8eH7e3tkvv7+jv39/cAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA8fDxAPn4+ADo6ekA7e7uBuzt7Xrs7e05wcHCAKenqSKen6AADw4P/wAA + AP8AAAD/AAAA/wAAAPcAAADYAAAAW0NDQ3L///8G+fn5AO/u7wDr6usAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZmJoAraytALGwsQCvrq8AAAAAhgAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJC/8UFSL/KSUh/2ZUHv+1kRr/57cX//vHFf/8yBb/9cIW//G/ + Fv/xvxf/88AX//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PA + Fv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AX//K/Fv/yvxb/9cIW//rGFv/4xBb/9MIW//G/ + Fv/xvxb/8b4W//K/Fv/ywBb/8sAW//G/Fv/6xRb/6bkW/6mHFv9COBr/UVBS/5OTmv/DxMrkzs/TYMvM + 0KqwsbibkJCWYoqKjCnPz8+A5ubmauDg4AAAAAAAAAAAAAAAAAAAAAAAycrLAMnKywDz8vMA////KuHi + 4lTGx8dmysvMAMnJymLR0dIdmZmadCQkJAAAAAD/AAAA/wAAANIAAACXAAAAYQAAAAAAAAAA9vb2APj4 + +AD39/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD7+/oA/f39APn5+ACsq60AAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wQE + BP8VFh7/HRwi/0c9H/+ggBj/3bAT//XCEf/1wRH/88AR//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/ + Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/ + Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//PA + Ev/2wxH/6bkS/6KBE/9XRxX/RD4s/2NfUv5/eWn8c2xc/klFPv8eHSD/IB8l/5mZmv/BwcJnt7e4AAAA + AAAAAAAA5ubmAO3t7QDIycoAy8zNAOzs7Rjr6uqLuLi6fm9vcX6PjpD+kI+SVLW1tW0YGBj/AAAA/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A/v79AJmY + mgCUlJYAAQEBcwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8TEhn/HBwh/zArH/9zXxn/wJgR//K+ + C//7xQv/9MEL//G/DP/xvgz/8b8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/ + DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/ + DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvgz/8b4M//K/DP/zwAv/7rwM/9SoDP+5kg3/rIkP/7KN + EP+1kA7/knUR/09BFP8kIyb/lpWY/728v2ezsrUAAAAAAAAAAADm5uYA7e3tAMnKywHIycoKz9DRQ5WV + lwtCQkWcKSgs/46Nj/9GRUaKAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAC/vsAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/f38AAAAAAD7+/oAk5OVAKOjpQCcnJ4AAAAAVwAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8LCw7/GRki/ykmIP9VRhv/knUT/9KmC//3wgX//ccE//fCBf/xvgb/8L0G//G9 + B//xvgf/8r4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+ + B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//K+ + B//xvQf/8b4H//K+B//3wgb/9cAG/++6BP/otQL/6LQA/+q4Af/hsgP/poIK/0pCJ/+io6T/w8XNZ7q8 + wgD19vUA8fLxAOjo6ADz8/M409PTLpmZmxtlZWeqODg7/xgXG/8mJSn/QEBB/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAAAAAAAAAAAAA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACVlZcApKSlALa2twCxsbIAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/EBIa/xsb + Iv85Mh7/clwW/66KDP/aqwX/9L8C//vEAf/4wQH/874C//G9Av/xvAL/8b0C//G9Av/yvQL/8r0C//K9 + Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9 + Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8bwC//G9Av/0vgL/+MEB//nD + Av/6wwL/+sUC//7IAP/GmwT/V0sl/6eoqP/DxtFixcjOAPz9/Aj9/v1D2traEbu7vDCKiovMSkpN/yAg + I/8UExf/ERAU/wICAv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAANwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKUAwsLDAMLCwwDNzc0AAAAAGAAA + ANYAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CgoN/xUVIf8aGiP/Qjgc/4FnEv+/lQn/5LID//K8 + Af/2vwD/9b8A//S+AP/zvQD/8rwA//G8AP/xvAD/8bwA//K8AP/yvQD/8rwA//K8AP/yvAD/8rwA//K8 + AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8 + AP/yvAD/8rwA//K8AP/yvQD/8rwA//G8AP/xvAD/8LsA//G8AP/2vwD/8LsA/6yHBf9AOCP/k5OW/8HD + yoTT1NYd5OTkA9LS0lyenp/fWVhb/yIiJf8SERb/GBcb/wwLDf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA1qamplD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADCwsMAwsLDAN/f3wDj4+MAAAAAAwAAAJEAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/xERFf8YGSP/IB4i/0A2Hf96YRT/upIK/+SyAv/3wQD/+cIA//W/AP/zvQD/8bwA//K9 + AP/yvQD/8r0A//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//K9 + AP/xvAD/8r0A//rDAP/ksgP/jnAL/yEfH/9jY2j/vb7AedLS03aWlpjeVVRX/CkoLP8aGB3/Gxoe/xIR + FP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAJEAAAADs7K0AP7+/gAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMLCwwDCwsMA4+PjAPX1 + 9QDw8PAAyMjJAAAAAEkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wICAv8SEhj/HRwj/ygl + IP9DOBz/bVkV/59+Df/NoQb/7bkA//vEAP/9xgD/+cMA//S/AP/xvAD/8LsA//G8AP/xvAD/8bwA//G8 + AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//G8AP/xvAD/8bwA//G8AP/wuwD/8bwA//S9AP/4wQD//8kA//K/Af+ohAr/MCod/zEx + N/9WVlv/WFha/zMyNf8gHyP/Ghkd/xISFP8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAABJwcHCAMfGxwCnpqgA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADi4uIA9/f3AP///wD29vcAubm5AAAAABAAAACtAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgP/Dw8X/xcYI/8lIyH/QTcc/2VTF/+NcBD/sYwL/8+j + Bv/ntAL/9L4A//vDAP/7xAD/+8QA//jCAP/2vwD/874A//K9AP/xvAD/8bwA//C8AP/wuwD/8LwA//C8 + AP/wvAD/8bwA//C8AP/wvAD/8LwA//C8AP/wuwD/8LwA//G8AP/xvAD/874A//W/AP/3wQD/+sMA//zE + AP/7xAD/+MAA/+y4Af/YqwT/upMJ/39mEv8wKx7/HR0i/x8eJP8dHCD/FRQY/xEQE/8CAgL/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAAEObm5gDR0dEAz8/PAK2srgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD39/cA/v7+AOzs7QDIyMkA3NzdAL29vgAAAABJAAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wwNEv8SFCH/Fxkj/ysmIP9KPxv/cl0U/5h5Dv+3kAn/z6IG/9+vBP/ptwL/8LsB//S+ + AP/2vwD/98AA//bAAP/3wAD/9sAA//bAAP/1wAD/9r8A//bAAP/3wAD/9sAA//XAAP/2wAD/9sAA//bA + AP/3wAD/+MEA//fBAP/2wAD/9b4A//K8Af/ruAL/47ED/9WmBf/Blwj/pIIM/4BmEv9aSRj/OTId/yQi + If8cHCH/GBcb/w4OEP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8BwcHTc3N + zQD8/PwA8/PzAM7OzgDOzs4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMfHyAD19fUA+vr6AOPj + 4wAXFxcHAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ICAn/EhMY/xUX + JP8YGST/JCIh/zszHP9aShj/fWQT/519Df+6kgn/z6IG/96tA//otQL/7rsB//K+Af/0vwH/9cAB//bA + Af/3wAD/98AA//e/AP/3wAD/98AA//bAAf/1wAH/9MAB//O+Af/xvAH/67gC/+KwAv/VpgX/wpgI/6aE + C/+HaxH/ZlIW/0Y6G/8sJyD/HBsj/xYXJP8YGSP/FRUY/wgICf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAgAAAAAbLy8wAxcXGAPj4+ADy8vIAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAx8fIAPj4+AD///8A5OTlANfX2ADMzM0AAAAAGAAAAKIAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJC/8TFBn/Gxsh/x4dIv8jISH/LCgf/zkx + Hv9KPRz/XUsY/29ZFP+BZxL/kXQQ/6B/Df+qhwz/s40K/7qRCP++lQj/wJUI/7+WCP+8kgj/tI4J/62I + DP+jgQ3/lngO/4hsEv91XxT/YlAX/09DG/8+Nh3/MCsf/yUjIf8fHiL/HBsi/xoaIf8TFBn/CQkL/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAAABjm5uYA8PDwAPHx + 8QDExMUA+Pj4APLy8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9/f3AP7+ + /gDh4eIA5ubnAPDw8QDPz9AAsbKyAAAAACAAAACoAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AwME/woLEP8RERr/Fxch/xwbI/8hICL/JyQh/y4pH/82MB7/PDQd/0I5 + HP9HPBv/TEAb/09BGv9RQhv/UEIa/01AG/9JPhv/RDoc/z82Hf84MR7/MSsf/yomIf8jISH/HRwi/xkZ + I/8VFiL/EBEa/wsLEP8DAwT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/KSkp/gAAACDU1dUA7u7uAP///wD8/PwA/Pz8AMXFxgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLi4wDi4uMA5ubnANzc2wDk5OQA3d3dALGx + swAAAAAbAAAAkQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wUFB/8JCg//DA0V/w4QG/8PER//EBMh/xETJP8SFST/ExUl/xMVJf8TFSX/EhUl/xMV + JP8RFCT/EBMi/xARH/8OEBv/DQ4V/woKDv8FBQf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAkSMjIyPX1tYp9vf2C/r7+wDz9PQA/Pz8APn5 + +QD5+fkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39/gAOPj5ADPz9AAAAAACgAAAGEAAADiAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADiAAAAYQAA + AArn5+gA/Pv8APn4+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADa2toA3t7eANTU + 1ADh4eIA6OjpAO/v7wDq6eoA4ODgAL69vwAAAAAlAAAAhgAAAPcAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPcAAACGAAAAJcnJygDMzM0A09PUAO3t7gD///8A+/r7AO3u7gD19vYA8vPzAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/f4ADj4+QA9fX1APv7+wD8/PwA2trbANfX + 2ADJyMkAuLi5AAAAACUBAQF4AAAA1gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAAAHYAAAAlycnJANvb2wDr6+sA5OTkAN3d + 3gDZ2doA5+foAPz7/AD5+PkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADz8/MA9fX1APLy8gDQ0NEA8vLyAPf39wD29vUA09LUAM3NzgC2trcAAAAACgAA + ADcAAAB8AAAAxQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAMUAAAB8AAAANwAA + AAq+vr8AxcXFAO3t7QD///8A////AP39/QDa2tsA19fYANfX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADt7e0A7+/vAOvr6wDJyMoA/Pz8AP7+/gD8+/wA6+rrAM/P0ACvr7AAkZCRAAAAABAAAAAwAAAAVwAA + AIAAAACoAAAAywAAAOcAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAOcAAADLAAAAqAAA + AIAAAABXAAAAMAAAABCioaMAxMPEAOHh4QDx8fEA8PDwAO/v7wC7u7wA4uLiAPj4+AD7+/sA+vr6AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6+voA+/v7APj3 + +ADn5ucAy8vMAKysrQCOjY8AcnJ0AOTk5ADi4uIA3t7eANTU1QDOzc8AxMTGALu7vAC4uLkAAAAAAQAA + AAMAAAADAAAAAbq5ugDDw8QAy8rMANLS0wDc3N0A5eTlAOjo6QDr6+sAhoWHAJ+eoADAv8AA3d3dAO3t + 7QDt7e0A7e3tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////////gAAAA///////////////4AAAAAAf/////////////gAAAAAA + Af////////////gAAAAAAAAf///////////AAAAAAAAAA///////////+AAAAAAAAB///////////wAA + AAAAAAAA//////////gAAAAAAAAAAF/////////gAAAAAAAAAAAP////////4AAAAAAAAAAAD/////// + /4AAAAAAAAAAAAH///////8AAAAAAAAAAAAA///////4AAAAAAAAAAAAAH//////+AAAAAAAAAAAAAB/ + //////AAAAAAAAAAAAAAH//////gAAAAAAAAAAAAABf/////gAAAAAAAAAAAAAAP/////wAAAAAAAAAA + AAAAAv////8AAAAAAAAAAAAAAAL////+AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAP////AAAAAA + AAAAAAAAAAA////wAAAAAAAAAAAAAAAAP///8AAAAAAAAAAAAAAAAC///+AAAAAAAAAAAAAAAAAH///A + AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//wAAAAAAAAAAAAAAAAAD//8AAAAAAAAAAAAAAAAA + AP/+AAAAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAA + AAAAAAA/9AAAAAAAAAAAAAAAAAAAP/QAAAAAAAAAAAAAAAAAAD/0AAAAAAAAAAAAAAAAAAA/4AAAAAAA + AAAAAAAAAAAAL+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAAAAAAAAAAAB8AA + AAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAHwAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAA + AAOAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAA + AAfAAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAC/0AAAAAAAAAAAA + AAAAAAAv9AAAAAAAAAAAAAAcAAAAL/QAAAAAAAAAAAAAPgAAAD/8AAAAAAAAAAHwAP8AAABP/AAAAAAA + AAAB/wP/wAAAf/wAAAAAAAAAA/////4AAB//AAAAAAAAAAf////+AAAB/gAAAAAAAAAf/////gAAAf8A + AAAAAAAAP/////4AAAH/wAAAAAAAAH/////8AAAB/+AAAAAAAADgP////AAAP//AAAAAAAAAAB////wA + AP//4AAAAAAAAAAP///8AAf///AAAAAAAAAAB///+AA////wAAAAAAAAAAf///gA/////AAAAAAAAAAA + B/+4A/////4AAAAAAAAAAAP+EB//////AAAAAAAAAAAD/AP//////4AAAAAAAAAAA/AB//////9AAAAA + AAAAAAPAAf//////4AAAAAAAAAADAAB///////AAAAAAAAAAAAAA///////4AAAAAAAAAAAAAP////// + +AAAAAAAAAAAAAB///////4AAAAAAAAAAAAA////////AAAAAAAAAAAAAf///////+AAAAAAAAAAAAf/ + ///////gAAAAAAAAAAAH////////8AAAAAAAAAAAH/////////wAAAAAAAAAAD//////////8AAAAAAA + AA///////////4AAAAAAAAAB///////////wAAAAAAAAD////////////AAAAAAAAH/////////////A + AAAAAAP//////////////AAAAAB///////8= + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/DataGridViewNavigator.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.TableView/DataGridViewNavigator.Designer.cs new file mode 100644 index 00000000..f8719dea --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/DataGridViewNavigator.Designer.cs @@ -0,0 +1,151 @@ +namespace HydroDesktop.Plugins.TableView +{ + partial class DataGridViewNavigator + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.btnFirst = new System.Windows.Forms.Button(); + this.btnPrev = new System.Windows.Forms.Button(); + this.btnNext = new System.Windows.Forms.Button(); + this.btnLast = new System.Windows.Forms.Button(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.lblStatus = new System.Windows.Forms.Label(); + this.errorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); + this.tbInfo = new System.Windows.Forms.TextBox(); + this.tableLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).BeginInit(); + this.SuspendLayout(); + // + // btnFirst + // + this.btnFirst.Location = new System.Drawing.Point(3, 3); + this.btnFirst.Name = "btnFirst"; + this.btnFirst.Size = new System.Drawing.Size(54, 23); + this.btnFirst.TabIndex = 0; + this.btnFirst.Text = "First"; + this.btnFirst.UseVisualStyleBackColor = false; + // + // btnPrev + // + this.btnPrev.Location = new System.Drawing.Point(63, 3); + this.btnPrev.Name = "btnPrev"; + this.btnPrev.Size = new System.Drawing.Size(54, 23); + this.btnPrev.TabIndex = 1; + this.btnPrev.Text = "Prev"; + this.btnPrev.UseVisualStyleBackColor = false; + // + // btnNext + // + this.btnNext.Location = new System.Drawing.Point(226, 3); + this.btnNext.Name = "btnNext"; + this.btnNext.Size = new System.Drawing.Size(54, 23); + this.btnNext.TabIndex = 2; + this.btnNext.Text = "Next"; + this.btnNext.UseVisualStyleBackColor = false; + // + // btnLast + // + this.btnLast.Location = new System.Drawing.Point(286, 3); + this.btnLast.Name = "btnLast"; + this.btnLast.Size = new System.Drawing.Size(54, 23); + this.btnLast.TabIndex = 3; + this.btnLast.Text = "Last"; + this.btnLast.UseVisualStyleBackColor = false; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel1.ColumnCount = 5; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 60F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 60F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 60F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 60F)); + this.tableLayoutPanel1.Controls.Add(this.btnFirst, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.btnLast, 4, 0); + this.tableLayoutPanel1.Controls.Add(this.btnPrev, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.btnNext, 3, 0); + this.tableLayoutPanel1.Controls.Add(this.tbInfo, 2, 0); + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(343, 31); + this.tableLayoutPanel1.TabIndex = 4; + // + // lblStatus + // + this.lblStatus.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.lblStatus.AutoSize = true; + this.lblStatus.Location = new System.Drawing.Point(349, 8); + this.lblStatus.Name = "lblStatus"; + this.lblStatus.Size = new System.Drawing.Size(78, 13); + this.lblStatus.TabIndex = 5; + this.lblStatus.Text = "Loading data..."; + // + // errorProvider1 + // + this.errorProvider1.ContainerControl = this; + // + // tbInfo + // + this.tbInfo.Location = new System.Drawing.Point(123, 3); + this.tbInfo.Name = "tbInfo"; + this.tbInfo.Size = new System.Drawing.Size(97, 20); + this.tbInfo.TabIndex = 4; + // + // DataGridViewNavigator + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.lblStatus); + this.Controls.Add(this.tableLayoutPanel1); + this.Name = "DataGridViewNavigator"; + this.Size = new System.Drawing.Size(432, 31); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnFirst; + private System.Windows.Forms.Button btnPrev; + private System.Windows.Forms.Button btnNext; + private System.Windows.Forms.Button btnLast; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label lblStatus; + private System.Windows.Forms.ErrorProvider errorProvider1; + private System.Windows.Forms.TextBox tbInfo; + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/DataGridViewNavigator.cs b/Source/Plugins/HydroDesktop.Plugins.TableView/DataGridViewNavigator.cs new file mode 100644 index 00000000..418072fc --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/DataGridViewNavigator.cs @@ -0,0 +1,262 @@ +using System; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Globalization; +using System.Windows.Forms; + +namespace HydroDesktop.Plugins.TableView +{ + public partial class DataGridViewNavigator : UserControl + { + #region Fields + + private const string LOADING_DATA = "Loading data..."; + private IPagedTableGetter _tableGetter; + private BackgroundWorker _worker; + + #endregion + + #region Events + + public event EventHandler PageChanged; + + #endregion + + #region Constructors + + public DataGridViewNavigator() + { + InitializeComponent(); + + DisableNavButtons(); + btnFirst.BackColor = btnPrev.BackColor = btnNext.BackColor = btnLast.BackColor = SystemColors.Control; + + btnFirst.Click += delegate { CurrentPage = 0; }; + btnPrev.Click += delegate { CurrentPage--; }; + btnNext.Click += delegate { CurrentPage++; }; + btnLast.Click += delegate { CurrentPage = PagesCount - 1; }; + + PageChanged += DataGridViewNavigator_PageChanged; + + // TextBox setting + tbInfo.Click += (sender, args) => tbInfo.SelectAll(); // AutoSelect all text on clicking + tbInfo.CausesValidation = false; + tbInfo.KeyPress += (sender, args) => + { + // Validate only if Enter was pressed + if (args.KeyChar == (char)Keys.Enter) + { + var pageToJump = ValidatePageJumperTextBox(); + if (pageToJump.HasValue) + { + CurrentPage = pageToJump.Value - 1; + } + } + }; + } + + #endregion + + #region Private methods + + private int? ValidatePageJumperTextBox() + { + var text = tbInfo.Text; + + var valid = false; + int res; + + // Try parse text as Integer + if (Int32.TryParse(text, NumberStyles.Integer, CultureInfo.InvariantCulture, out res)) + { + valid = true; + } + else + { + // Try parse text as "n of m" + if (!String.IsNullOrWhiteSpace(text)) + { + var split = text.Split(new[] { "of" }, StringSplitOptions.RemoveEmptyEntries); + int first, last; + if (split.Length == 2 && Int32.TryParse(split[0].Trim(), NumberStyles.Integer, CultureInfo.InvariantCulture, out first) && + Int32.TryParse(split[1].Trim(), NumberStyles.Integer, CultureInfo.InvariantCulture, out last) && + last == PagesCount) + { + res = first; + valid = true; + } + } + } + // Check for interval + string message; + if (!valid) + { + message = "Please enter a valid page number."; + } + else if (res > PagesCount || res <= 0) + { + message = string.Format("Page number should be in interval [1; {0}]", PagesCount); + } + else + { + message = null; + } + errorProvider1.SetError(tbInfo, message); + return message == null? res : (int?) null; + } + + private void DisableNavButtons() + { + btnFirst.Enabled = btnPrev.Enabled = btnNext.Enabled = btnLast.Enabled = tbInfo.Enabled = false; + } + + void DataGridViewNavigator_PageChanged(object sender, EventArgs e) + { + // Update navigation buttons + btnFirst.Enabled = CurrentPage != 0; + btnPrev.Enabled = CurrentPage > 0; + btnNext.Enabled = CurrentPage != PagesCount - 1 && PagesCount > 0; + btnLast.Enabled = CurrentPage < PagesCount - 1; + + tbInfo.Enabled = PagesCount > 0; + tbInfo.Text = string.Format("{0} of {1}", PagesCount > 0 ? CurrentPage + 1 : 0, PagesCount); + errorProvider1.SetError(tbInfo, null); + } + + private void HideStatus() + { + lblStatus.Visible = false; + } + + private void ShowStatus() + { + lblStatus.Text = LOADING_DATA; + lblStatus.Visible = true; + } + + #endregion + + #region Properties + + private int _valuesPerPage = 1000; + /// + /// Maximal count of values on page + /// + public int ValuesPerPage + { + get { return _valuesPerPage; } + set + { + _valuesPerPage = value; + if (_tableGetter != null) + { + Initialize(_tableGetter); + } + } + } + + private int _currentPage; + + /// + /// Current page number (zero-based) + /// + public int CurrentPage + { + get { return _currentPage; } + private set + { + if (value == _currentPage) return; + if (value < 0 || value > PagesCount || + (value == PagesCount && PagesCount != 0)) return; + + CheckNavigatorState(); + DisableNavButtons(); + ShowStatus(); + + _currentPage = value; + _worker = new BackgroundWorker(); + _worker.DoWork += delegate(object sender, DoWorkEventArgs args) + { + var table = _tableGetter.GetTable(ValuesPerPage, CurrentPage); + args.Result = table; + }; + _worker.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs args) + { + var table = (DataTable) args.Result; + var handler = PageChanged; + if (handler != null) + handler(this, new PageChangedEventArgs(table)); + + HideStatus(); + }; + _worker.RunWorkerAsync(); + } + } + + /// + /// Total pages count + /// + public int PagesCount { get; private set; } + + #endregion + + #region Public methods + + private void CheckNavigatorState() + { + if (_worker != null && _worker.IsBusy) + { + throw new InvalidOperationException("Previous navigator's call is not finished."); + } + } + + /// + /// Initialize navigator with queries to load data + /// + /// Class that returns data table for given ValuesPerPage and CurrentPage. + public void Initialize(IPagedTableGetter tableGetter) + { + CheckNavigatorState(); + DisableNavButtons(); + ShowStatus(); + + _tableGetter = tableGetter; + + _worker = new BackgroundWorker(); + _worker.DoWork += delegate(object sender, DoWorkEventArgs args) + { + var rowsCount = tableGetter.GetTotalCount(); + args.Result = rowsCount; + }; + _worker.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs args) + { + var rowsCount = (long) args.Result; + long remainder; + var div = (int) Math.DivRem(rowsCount, ValuesPerPage, out remainder); + PagesCount = remainder == 0 ? div : div + 1; + _currentPage = -1; // This need because CurrentPage checked for non-equality before setting it's value + CurrentPage = 0; + }; + _worker.RunWorkerAsync(); + } + + #endregion + } + + public interface IPagedTableGetter + { + DataTable GetTable(int valuesPerPage, int currentPage); + long GetTotalCount(); + } + + public class PageChangedEventArgs : EventArgs + { + public DataTable DataTable { get; private set; } + + public PageChangedEventArgs(DataTable dataTable) + { + DataTable = dataTable; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/DataGridViewNavigator.resx b/Source/Plugins/HydroDesktop.Plugins.TableView/DataGridViewNavigator.resx new file mode 100644 index 00000000..1ccaba92 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/DataGridViewNavigator.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/DeleteThemeForm.cs b/Source/Plugins/HydroDesktop.Plugins.TableView/DeleteThemeForm.cs new file mode 100644 index 00000000..adab80db --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/DeleteThemeForm.cs @@ -0,0 +1,166 @@ +using System; +using System.ComponentModel; +using System.Windows.Forms; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Plugins.TableView +{ + /// + /// Form for deleting themes from database + /// + public partial class DeleteThemeForm : Form + { + /// + /// Creates new instance of + /// + public DeleteThemeForm() + { + InitializeComponent(); + + FormClosing += DeleteThemeForm_FormClosing; + bgwMain.DoWork += bgwMain_DoWork; + bgwMain.RunWorkerCompleted += bgwMain_RunWorkerCompleted; + bgwMain.ProgressChanged += bgwMain_ProgressChanged; + } + + private void checkListThemes_SelectedIndexChanged(object sender, EventArgs e) + { + btnOK.Enabled = checkListThemes.CheckedItems.Count > 0; + } + + private void DeleteThemeForm_Load(object sender, EventArgs e) + { + var repoManager = RepositoryFactory.Instance.Get(); + var themeList = repoManager.GetAll(); + checkListThemes.DataSource = themeList; + checkListThemes.DisplayMember = "Name"; + } + + private void btnCancel_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Cancel; + Close(); + } + + private void btnOK_Click(object sender, EventArgs e) + { + // Make sure we aren't still working on a previous task + if (bgwMain.IsBusy) + { + MessageBox.Show("The background worker is busy now, please try later."); + return; + } + + var numCheckedThemes = checkListThemes.CheckedItems.Count; + var reply = MessageBox.Show("Are you sure to remove " + numCheckedThemes + + " theme(s) with all sites, variables, time series and data values? ","Remove Theme", + MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (reply != DialogResult.Yes) return; + + gbxDelete.Visible = false; + gbxProgress.Visible = true; + + //get the list of checked themes to delete + var themeIDList = new long[numCheckedThemes]; + for (var i = 0; i < checkListThemes.CheckedItems.Count; i++) + { + themeIDList[i] = ((Theme) checkListThemes.CheckedItems[i]).Id; + } + + //launch the background worker.. + bgwMain.RunWorkerAsync(themeIDList); + } + + /// + /// When Export Form is closed, BackgroundWorker has to stop. + /// + private void DeleteThemeForm_FormClosing(object sender, FormClosingEventArgs e) + { + if (!bgwMain.IsBusy) return; + Cancel_worker(); + } + + #region BackgroundWorker + + /// + /// Call "Cancel_worker" when button click happens. + /// + private void btnPgsCancel_Click_1(object sender, EventArgs e) + { + Cancel_worker(); + } + + /// + /// When "Cancel" button is clicked during the exporting process, BackgroundWorker stops. + /// + private void Cancel_worker() + { + bgwMain.CancelAsync(); + gbxProgress.Text = "Cancelling..."; + btnPgsCancel.Enabled = false; + } + + /// + /// BackgroundWorker Do event, used to call for the BackgroundWorker method. + /// + private static void bgwMain_DoWork(object sender, DoWorkEventArgs e) + { + var worker = (BackgroundWorker)sender; + var themeIdList = (long[])e.Argument; + var manager = RepositoryFactory.Instance.Get(); + foreach (var themeId in themeIdList) + { + if (manager.DeleteTheme(themeId, worker)) + { + e.Result = "Theme deleted successfully."; + } + } + } + + /// + /// BackgroundWorker Progress event, used to report the progress when doing BackgroundWorker. + /// + private void bgwMain_ProgressChanged(object sender, ProgressChangedEventArgs e) + { + pgsBar.Value = e.ProgressPercentage; + gbxProgress.Text = e.UserState.ToString(); + } + + /// + /// Enable all the buttons again when BackgroundWorker complete working. + /// + private void bgwMain_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) + { + Cursor = Cursors.Default; + + // Restore controls to their regular state + + pgsBar.Value = 0; + gbxProgress.Text = "Processing..."; + gbxProgress.Enabled = false; + gbxProgress.Visible = false; + btnPgsCancel.Enabled = true; + + if (e.Error != null) + { + MessageBox.Show(e.Error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + else if (e.Cancelled) + { + MessageBox.Show("Operation was cancelled.", "Finish", MessageBoxButtons.OK, MessageBoxIcon.Information); + DialogResult = DialogResult.OK; + Close(); + } + else + { + MessageBox.Show(e.Result.ToString(), "Finish", MessageBoxButtons.OK, MessageBoxIcon.Information); + DialogResult = DialogResult.OK; + Close(); + } + } + + #endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/DeleteThemeForm.designer.cs b/Source/Plugins/HydroDesktop.Plugins.TableView/DeleteThemeForm.designer.cs new file mode 100644 index 00000000..45dc371d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/DeleteThemeForm.designer.cs @@ -0,0 +1,171 @@ +namespace HydroDesktop.Plugins.TableView +{ + partial class DeleteThemeForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DeleteThemeForm)); + this.btnOK = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.bgwMain = new System.ComponentModel.BackgroundWorker(); + this.gbxProgress = new System.Windows.Forms.GroupBox(); + this.btnPgsCancel = new System.Windows.Forms.Button(); + this.pgsBar = new System.Windows.Forms.ProgressBar(); + this.gbxDelete = new System.Windows.Forms.GroupBox(); + this.checkListThemes = new System.Windows.Forms.CheckedListBox(); + this.gbxProgress.SuspendLayout(); + this.gbxDelete.SuspendLayout(); + this.SuspendLayout(); + // + // btnOK + // + this.btnOK.Enabled = false; + this.btnOK.Location = new System.Drawing.Point(83, 12); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(109, 27); + this.btnOK.TabIndex = 0; + this.btnOK.Text = "Remove Data Sites"; + this.btnOK.UseVisualStyleBackColor = true; + this.btnOK.Click += new System.EventHandler(this.btnOK_Click); + // + // btnCancel + // + this.btnCancel.Location = new System.Drawing.Point(206, 12); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(68, 27); + this.btnCancel.TabIndex = 1; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(3, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(191, 13); + this.label1.TabIndex = 2; + this.label1.Text = "Select the Data sites layer(s) to remove"; + // + // bgwMain + // + this.bgwMain.WorkerReportsProgress = true; + this.bgwMain.WorkerSupportsCancellation = true; + // + // gbxProgress + // + this.gbxProgress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbxProgress.Controls.Add(this.btnPgsCancel); + this.gbxProgress.Controls.Add(this.pgsBar); + this.gbxProgress.Location = new System.Drawing.Point(6, 172); + this.gbxProgress.Name = "gbxProgress"; + this.gbxProgress.Size = new System.Drawing.Size(279, 45); + this.gbxProgress.TabIndex = 4; + this.gbxProgress.TabStop = false; + this.gbxProgress.Text = "Processing.."; + this.gbxProgress.Visible = false; + // + // btnPgsCancel + // + this.btnPgsCancel.Location = new System.Drawing.Point(198, 16); + this.btnPgsCancel.Name = "btnPgsCancel"; + this.btnPgsCancel.Size = new System.Drawing.Size(75, 23); + this.btnPgsCancel.TabIndex = 1; + this.btnPgsCancel.Text = "Cancel"; + this.btnPgsCancel.UseVisualStyleBackColor = true; + this.btnPgsCancel.Click += new System.EventHandler(this.btnPgsCancel_Click_1); + // + // pgsBar + // + this.pgsBar.Location = new System.Drawing.Point(6, 16); + this.pgsBar.Name = "pgsBar"; + this.pgsBar.Size = new System.Drawing.Size(170, 23); + this.pgsBar.TabIndex = 0; + // + // gbxDelete + // + this.gbxDelete.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbxDelete.Controls.Add(this.btnOK); + this.gbxDelete.Controls.Add(this.btnCancel); + this.gbxDelete.Location = new System.Drawing.Point(6, 172); + this.gbxDelete.Name = "gbxDelete"; + this.gbxDelete.Size = new System.Drawing.Size(279, 45); + this.gbxDelete.TabIndex = 2; + this.gbxDelete.TabStop = false; + // + // checkListThemes + // + this.checkListThemes.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.checkListThemes.CheckOnClick = true; + this.checkListThemes.FormattingEnabled = true; + this.checkListThemes.Location = new System.Drawing.Point(6, 33); + this.checkListThemes.Name = "checkListThemes"; + this.checkListThemes.Size = new System.Drawing.Size(279, 139); + this.checkListThemes.TabIndex = 5; + this.checkListThemes.SelectedIndexChanged += new System.EventHandler(this.checkListThemes_SelectedIndexChanged); + // + // DeleteThemeForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(294, 224); + this.Controls.Add(this.checkListThemes); + this.Controls.Add(this.label1); + this.Controls.Add(this.gbxDelete); + this.Controls.Add(this.gbxProgress); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "DeleteThemeForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Remove Data Sites from Database"; + this.Load += new System.EventHandler(this.DeleteThemeForm_Load); + this.gbxProgress.ResumeLayout(false); + this.gbxDelete.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Label label1; + private System.ComponentModel.BackgroundWorker bgwMain; + private System.Windows.Forms.GroupBox gbxProgress; + private System.Windows.Forms.ProgressBar pgsBar; + private System.Windows.Forms.Button btnPgsCancel; + private System.Windows.Forms.GroupBox gbxDelete; + private System.Windows.Forms.CheckedListBox checkListThemes; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/DeleteThemeForm.resx b/Source/Plugins/HydroDesktop.Plugins.TableView/DeleteThemeForm.resx new file mode 100644 index 00000000..8a5942a4 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/DeleteThemeForm.resx @@ -0,0 +1,1256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAgBAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+Pj4APn5+QDw8PAA3NzcAMrKygCzsrMAnJudAIeGiQB2dXgAbWxvAF5d + YABRUFMAT05RAAAAAAEAAAADAAAAAwAAAAFOTVEAWFhbAGVlaABxcXQAfn2AAZGRkgCoqKkAwMDBANTU + 1QDl5eYA6unqAOno6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4+PgA+Pj4APn5+QDo6OgAxcXHAJ6dnwD7+/sA/f38APT0 + 9ADg4OAAAAAAEAAAADAAAABXAAAAgAAAAKgAAADLAAAA5wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA5wAAAMsAAACoAAAAgAAAAFcAAAAwAAAAEOnp6gDt7O0A7OvsAI6OkAC3t7gA29vcAOjo + 6QDl5eYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb3APb29wD4+PkA5+foAPv7 + +wD+//4A////APPz8wDPz9EAAAAACgAAADcAAAB8AAAAxQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAMUAAAB8AAAANwAAAArm5ucA8vLzAOzs7QCmpqcA1tbXAOXl5gDh4eIAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA3d3dAOLi4gD4+PkA+/v8AP///wDy8vMA6urqANra2gAAAAAlAAAAdgAAANYAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + ANYAAAB2AAAAJa+vrwDh4eEA7u7vAObm5wC/v78A7+/vAPr6+gD29vYAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNzc4Azc3OAM/P0ADf398A5+fmAPPz9ADs7O0A6OjpAAAA + ACUAAACGAAAA9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA9wAAAIYAAAAl19fYAMTE + xAD19fUA/v7+APf39wDr6+sA6urqAOrq6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAN3d3QDi4uIAAAAACgAAAGEAAADiAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADiAAAAYQAAAAr6+voA9vb2AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P0ADV1dYAzs7PANLS0wDX19gAAAAAGwAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQb/CwsN/hAQ + Ev4UExb9FhUZ/xcWGv8YFxv/GRgc/xgXG/8YFxz/GBcc/xgXG/8ZGBz/GBcb/xgXG/8YFxr/FhUY/xIR + FP8NDA7/BgYH/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAJEAAAAb8/PzAO7u7gDq6uoA9vX1APDv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4eHiAObm5wDe3t8A0tLTAN7e + 3wDJycoAAAAAIAAAAKgAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8EBAT/DQ0P/xQTFv8XFxr/GBgc/xkYHP8aGR3/Gxse/x4dIf8gHyP/IiEl/yQjJ/8nJin/JyYq/ykn + LP8oJyv/JyYp/yYlKP8jIiX/IB8k/x8eIv8cHCD/Gxoe/xkYHP8ZGBz/GRgc/xgXG/8UExb/Dg0P/wQE + BP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACoAAAAIOno + 6AD+/f0A8vHyAPr6+gAAAAAA/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA+fn5AP7+/gDh4eIA6urrAOXl5gDGxscAAAAAGAAAAKIAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJCv8UFBb/Gxoe/xwbH/8cGx//Hh0g/x8fI/8kIyf/Kykt/zIw + M/86OTz/Q0JE/0tKTP9SUFP/WFdZ/11cXf9gXmD/Y2Bj/2JgYv9fXV7/W1lc/1RTVf9OTVD/R0ZJ/z48 + QP82NTj/LSwv/ycmKf8iIST/Hx0h/x0cIP8cGx//HBsg/xsaHv8UFBb/CQkK/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAAABjq6eoA////AP///wD9/f0A1dTVAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+fkA/v7+AODg4QDi4uMAAAAABgAA + AIAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CAgJ/xUUF/8cGx//GRgc/xgX + G/8bGR3/IyEm/zMwNP9FREb/W1pb/3Bub/+DgIH/k5CQ/5+cnP+opaX/r6ys/7Sxsf+2tbT/ura1/7q3 + tv+7uLf/u7i3/7q3tf+4trX/trOz/7OvsP+sqan/pKGh/5iWl/+LiIn/end4/2VjZP9PTU//Ojg8/yoo + LP8eHSH/FxYb/xgXG/8cGx//Hh0h/xYWGP8ICAn/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAIAAAAAG/Pz8APr6+gDV1NUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADW1tYA1tbWAPr6+gD///8A4eHhAAAAAEkAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/EA8R/xkYHP8WFRn/FhUZ/x8eIf8wLzP/SUhK/2ViZP99en3/ko+Q/6Kgn/+uq6r/trKy/7u3 + t/+/u7r/wb28/8O/vv/DwL//xMHA/8TBwP/EwcD/w8G//8TBwP/EwcD/xMLA/8TCwP/EwL//xMC//8PA + vv/Bvr7/v7y7/726uP+5trT/sa+u/6elpP+al5f/iIWF/29tb/9UU1X/OTg7/yUkKP8bGh7/HBsf/x8e + Iv8eHSH/ERAS/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAABJ6OjoANXU + 1QD9/f0A/f39AP39/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoaCjANnZ2QDa2toA7u7tADc3OBYAAACtAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/ExMV/xgXG/8ZFxv/IR8j/y8vMv9GRUj/YV9h/3t6 + e/+TkpL/p6Wl/7Szs/++vLz/w8HA/8XDwv/EwsH/w8DB/8K/v//Avr3/v728/768vP+9u7v/vLu6/7y7 + uv+8u7r/vLq6/7y7uv+8u7r/vLu6/7y7uv+9vLv/vr28/7++vf/Av77/w8DA/8TCwf/EwsL/w8LB/8C/ + vv+6uLf/r62t/6Cfn/+Mi4z/cnJ0/1JSVf8yMTT/HRsf/xgXG/8bGh7/Hx4i/xUUFv8CAgP/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAAEP///wD///8A/v7+AOHh4QAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD19fUA9fX1APj4 + +ACfnqEAy8vMAMjIyAAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/FBMW/xwb + H/8eHCH/JCMn/zIyNv9MTFD/bG1v/42OkP+oqKn/uLi4/76+v/++vr//uru8/7i4uf+1trf/tbW2/7S1 + tf+1tLb/tbW2/7W1tv+1tbb/tbW2/7W1tv+1tbb/tbW2/7W1tv+1trb/tbW2/7W1tv+1tbb/tbW2/7W1 + tv+1tbb/tbW2/7W1tv+0tLX/s7S1/7W1tv+2t7j/ubq7/729vv+/wMD/vr+//7Sztf+bnJ3/cnJ0/0FB + Q/8nJir/JyYq/ygnK/8hICT/HBsf/x0cIP8UFBb/AgIC/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAASfX19QD5+fkA4uLiAL29vgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX19QD19fUA+Pj4AKKipAAAAAADAAAAkQAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/EhEU/x4cIP8cGx//IB8j/zMxNv9WV1r/fICC/5ygov+usrT/srW3/7Cz + tf+tsLL/rK+x/6yvsv+rr7L/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yv + sf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rK+x/6yvsf+sr7H/rLCy/6yvsf+ssLL/rbCz/66y + tP+usrT/q6+x/6Cjpf+LjY//bm9y/1JSVv8+PUH/ODg8/0dITP9YWl7/TE1R/ycmKv8cGh7/HBoe/x4c + IP8gHiL/EhIU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAkQAAAAPe3t4Avb2+AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADl5eYA9fX1APX1 + 9QD5+fkAAAAAGAAAANYAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DAwN/xwbHv8ZGBz/Hh0h/zY3 + O/9aXmH/gISJ/5ieof+iqaz/pqyw/6essP+nrLD/pqqu/6Sqrv+iqq3/o6ms/6OprP+jqKz/oqmt/6Op + rf+jqa3/o6mt/6Oprf+jqa3/o6mt/6Kprf+jqa3/pKmt/6Sprf+kqa3/pKmt/6Sprf+jqa3/o6mt/6Kp + rf+iqKz/o6mt/6Sqrf+mrLD/qa+0/6mwtP+jqa7/k5mb/3p+gf9dX2L/RUVI/zc3O/87O0D/TlFV/2Vo + bf9xdXn/aGtv/1BRVf80NDj/Jycr/zk5Pf87PED/Li0x/x8dIf8fHiL/Hh0g/wwMDf8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAAABi9vb4AoqGjAKKhowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA1tbXAOXl5gDy8vID7e3tAAAAADcAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AgIC/xgXGv8eHSH/JCUp/zc5Pv9YXGH/eX+F/5OboP+hqrD/pq+1/6Wts/+iqrD/n6et/5+n + rf+gp63/oKiu/6Corv+hqa//oamv/6Gpr/+hqrD/oaqw/6GqsP+hqrD/oKmv/6Corv+fqK7/nqet/56l + q/+dpKr/nKSq/5yjqf+co6n/nKSq/52lq/+epqz/n6et/6Cprv+iqrD/oKmu/5igpv+IjpT/c3d8/1xf + Y/9KTVD/QkNH/0JFSf9OUFb/XWJo/2hsc/9nbHH/XWBl/05PVP9BQkb/QEFF/0xPVP9kaW7/fIKH/3R5 + f/9QUlf/KSkt/x0cIf8cHCL/HR0j/xgXGv8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + ADejoqQAnZyeAAAAAAD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJAMjIyQDW1tcA5eXmAN7e + 3wAAAABXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w0MDv8dHCD/HBse/x4dIf8tLjL/TlFW/250 + ev+Ah43/g4qQ/32Dif94foT/dnyC/3V6gP9zeX//c3l//3V6gP92fIL/eX+F/3uCiP99hIr/gIeO/4KK + kf+EjJP/h4+V/4mQl/+Kkpn/jJSb/46Xnv+RmqH/k5yj/5Wepv+Xoaj/lqGo/5egqP+WoKj/lqCn/5Se + pf+Tm6L/j5ee/4eOlf94foT/ZGhu/09SV/9AQkb/ODs//z5BRv9PVFn/ZGtw/3R7gv94f4X/bXJ4/1hd + Yf9ERkv/OjxB/0NGTP9dY2n/eYGH/4iQlv+CiZH/anB5/0dKU/8nKDD/Gxsh/x0dIf8dHSP/HR0j/x0d + I/8NDA7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAFe7urwA////AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAMjIyQDHx8gAyMjJANXV1gDW1tYAAAAAcQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8VFBf/Hhwg/x0cIP8cGh7/ISEl/zAxNf9DRUr/Q0VK/z4/RP85O0D/Nzk9/zc3PP82Njr/NTU6/zQ1 + Of80NTr/Nzg9/zo9Qf8+QUb/Q0ZL/0hKUP9MUFX/UFVa/1VaYP9ZXmX/XWJo/2Fmbf9lbHL/anF3/3B4 + fv92foT/fIWN/4KLkv+DjZT/goyT/4CIkf97hIz/dX2E/21zev9hZmz/T1JY/zg6P/8pKi7/Ly80/0NH + Tf9haW//fYeO/4yYn/+Hkpj/bXV8/0lMUv8xMzj/MzY6/0tPVP9rc3r/hpGZ/5Gdpf+Ejpb/Ymhv/zs9 + RP8kJSn/IB4g/yUhIP8qJR7/Misc/y8pHv8kIiH/HR0i/x4dI/8WFRj/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAHHv7+8A7e3tAPz8/AAAAAAA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJAMjIyQDHx8gAzs7PAAAA + AIAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8EBAT/Gxod/xwbH/8gHyP/Kisv/y4uM/8vMDX/MTI3/zI0 + Of8yNDn/NDY7/zU4Pf83O0D/Oz5E/z5CSP9DSE7/SU5U/01UWv9SWWD/Vl1k/1hgZ/9bYmn/W2Nr/1xk + a/9cZGv/XGRr/1phaf9YXmX/U1lg/01SWf9HTFL/QkVL/z5BRv89QEX/PkJH/z9CR/88PUP/Njg8/zEx + Nv8rLC//Jycq/yYmKv8uLjP/P0NI/1lfZ/9we4P/go+Y/4qYof+AjZX/Ympx/z5BRv8rKy//OjxC/1lh + aP9zfof/hJCZ/4uZov+Fk5v/ZGx0/zs/R/8hIin/JiEd/zovF/9PPBH/XUYN/2dMC/9yVAf/a08L/0w8 + FP8oJCD/Gxwj/xwdIv8cGx7/BAQE/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAICQkJIA/Pz8AAAA + AAD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAANXV1gDGxscAy8vMAMrKywAAAACGAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CgkL/xwb + H/8cGh7/LC0x/0pQV/9ganP/ZW94/2Vud/9lb3f/ZG93/2VveP9ncXr/aHN8/2p2fv9sd4H/bnqD/3F9 + hv90gIn/dYKM/3eEjf93ho//eYaQ/3mGkP95hpD/eYWQ/3mFkP94hZD/d4SO/3aDjP9zgIr/cHyG/2t3 + gf9ncXr/YGpz/1lia/9TXGP/TVRb/0dMU/9CR03/QERL/0FGTP9HTVP/UVhg/15ncP9teYL/e4mT/4aV + oP+CkJr/a3R8/0ZLUP8sLTH/Li80/0hOVf9ncnv/eoeR/4WUn/+HlqD/eISN/05WYf8tMTn/KSQf/z4w + Ev9ZQwr/blAH/3lXBP99WgL/gFwB/4NeAf+CXQH/dVUG/1lED/80Kxz/Hh4j/xobI/8fHiL/CgkL/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIb///8A////AP39/QD9/fwAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OEA09PUANPT1ADKyssAAAAAgAAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ND/8cGx//Hx4h/zE0Of9PWGD/bn2H/3yLl/9+jpr/fY2Z/36O + mf9+j5r/fo+b/36Pm/9/j5z/gJGc/4CRnP+AkZz/gJGc/4GRnf+AkZz/gJCc/3+QnP9/kJv/f5Cb/3+Q + mv9/j5v/gI+c/4CQnP+AkJz/gJGc/4CRnP+AkJz/f4+b/36Omf96i5b/doaQ/3GAi/9seoT/aHWA/2Zz + ff9nc33/aXaA/298h/92hJD/fIyY/4KTn/+Ckp7/c4GM/1dfZ/82OD3/IyMn/y4xNv9NVV7/bnyH/4CQ + nP+DlKD/fIyY/2d0f/9FTFb/Kyot/zMpFv9QPAz/b1IH/4BdA/+GYQD/h2AA/4VgAP+EYAD/g18A/4Rf + AP+FYAD/fVsD/2JJDf8+Mhn/JSIg/xsbI/8dHCP/Dg4Q/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AID7+/oA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADy8vIA8vLyAN7e3wDZ2doA19fYAAAAAHEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8REBL/HRwf/yAg + JP8yNjz/VWBq/3CBjf94i5n/dYeU/3SGk/90hZL/dIaR/3SGkv90hpL/c4WS/3SEkv90hZL/dIWR/3SF + kf9zhZD/c4WR/3OFkf90hZL/dIWS/3OGkv9zhpL/coaS/3OGkv90hZL/dIWS/3SFkv90hZL/dIWR/3OE + kf90hZH/c4WR/3SHkv91iJT/d4mX/3eKl/94i5j/eYyZ/3mLmf94i5j/eIqX/3eJl/92iJX/c4WS/2h2 + gv9JUVn/KSov/xwcH/8zNz3/WGRu/3KEkP95jZr/dYiV/3GCj/9danf/PURN/yclI/8/MRT/aE0K/4Vi + A/+MZgD/iGMB/4ZiAv+FYQL/hmIC/4ZiAv+GYgH/hWEC/4diAv+JZAH/imQB/3FUCv9JOhb/JiIh/x0c + I/8dHSP/Dw8R8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAHHq6uoA5ubmAKWlpgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8gDy8vIA4ODhAOTk5QAAAABXAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/EhIU/xwaHv8hICT/NTlB/1lodP9sf43/cIOR/21/jv9tgI7/bYCO/22B + jv9tgY7/bYGO/22Bjv9tgY7/bYGO/22Bjv9tgI7/bYCO/21/jf9sgI7/bYCO/22Bjv9tgY//boKQ/26C + kP9ugpD/boKQ/26Bj/9ugY//bYGP/26Bj/9tgI7/bIGP/22Ajv9tgI7/bX+N/22Ajv9tgI7/bYCO/22A + jv9tgI7/bICN/22Ajv9ugo//cIOS/2x/jf9baXX/OT9H/yAfJP8fHyP/OkFH/15uev9tgY7/cYWT/26C + kP9kdYL/SVRg/yowO/8oJCD/Uj8S/4NgB/+TbAL/k20C/5FrAv+QagP/kGsD/5FrA/+RawP/kWsD/5Fr + A/+RawP/kGoD/5BrAv+SawL/lW0B/4NhB/9XRBT/JiQh/xscI/8dHSL/EBAS5AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAFeUlJYApaWmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA9fb1APX29QDx8fIAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xISFP8bGR3/ISEm/zc/ + Rv9YaHT/ZXqK/2h+jf9nfIv/ZnuK/2Z8iv9mfIv/ZnyK/2Z8iv9mfIr/ZnyK/2Z7iv9mfIr/Z32L/2d9 + jP9ofo3/aH6N/2h+jf9nfYz/ZnyK/2R5h/9jd4b/ZHeG/2V5h/9le4n/ZnuK/2Z9jP9ofo3/aX+O/2mA + j/9qgZD/aoGQ/2qBkP9qgJD/aYCP/2h/jv9ofo7/Z32M/2h9jP9pf47/aYCR/2h+jf9cbnz/RlFc/y4x + N/8dGh//IyUq/z5HUP9cbnv/Z3yL/2uDkv9me4n/UWBu/y83Rv8fIi3/NSwb/2NLDf+QagT/nnMB/55z + Af+ccgH/m3IC/5tyAv+ccwL/nHIC/5xyAv+ccgL/nHIC/5xyAv+ccgL/nHIC/5xyAv+edAH/nnQB/49q + Bf9jTBD/LSge/xkaJP8cHCL/EhIV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADejo6QAxMTFAMTE + xQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ2cngCvrq8Ar6+wAAAAABgAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8RERL/Hhwg/yIiJ/83P0j/UWNw/2J5if9ieYn/YXeH/2B2hv9gd4f/YHeH/2F4 + hv9gd4f/YXiI/2J6if9jeor/YnqJ/2F5iP9fd4b/XXOC/1tvfv9ZbXr/VWd0/1Bhbf9LWWT/RFFb/z9J + U/89RU7/PUVO/z5HUP9ASVP/Qk1X/0VRW/9IVF//S1hj/05daf9RYW3/VGVy/1Zpd/9ZbXv/W3B+/15z + gv9fdoX/X3aF/11ygP9VZ3b/SVZh/zg/R/8lJyz/Gxgc/yUmK/8+SlP/WGx5/2V8jP9lfY3/W3F//0RT + Yv8sMj3/LSgg/0s5Ef92Vwj/m3IE/6x9AP+pegD/pnkA/6Z5Af+meQH/pnkB/6Z6Af+meQH/pnkB/6Z5 + Af+meQH/pnkB/6Z5Af+meQH/pnkB/6Z4Af+pfAD/qnwA/5txBP9nTxD/NC0d/xkaI/8cHCP/ERET/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2NiLCwsMAwMDCAOfn5wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADLy8wAmZeaAHx7fQAAAAADAAAA1gAAAP8AAAD/AAAA/wAAAP8AAAD/Dg4Q/x4eIf8hISX/MzxF/09i + cP9feIr/XXeI/1x0hP9cdIX/XHSF/1x1hf9cdYX/XXaF/1x1hf9bdIT/WnKB/1hvfv9XbXv/VGp4/1Jn + df9RZHL/T2Fv/0xea/9JWWX/Q1Jd/z5KVf83Qkv/MDhA/youNv8mJy3/IyQp/yMkKf8lJiv/Jigt/ygp + MP8qLTP/LTA3/zA1PP8zOUH/Nj5G/zpDTP8+SVL/Qk9Z/0VUX/9FU17/QEtV/zQ7Q/8mKC3/HBod/xsY + Gv8lJyv/P0tV/1Vsef9geor/XXWG/1Rqef89S1r/Ky81/zYrGP9nTQ7/l24G/7GAAP+2hAD/soEA/7CA + Af+wgAH/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/sIAA/7CAAP+wgAD/r4AA/7CA + Af+yggD/t4UA/6R4BP9sUxD/MSse/xsbI/8cHSP/CAgJxwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAA + AAPQ0NEA5eXlAPz8/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvLzACioaMAo6KkAAAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/woJC/8eHCD/Hh4h/ycqL/9CUl7/U2p5/1ZvgP9Vb4D/Vm+A/1dwgv9WcIH/VnCB/1Zv + gP9Wbn//VGx8/09mdf9JXWv/RVZi/0NSXf9CUl7/Q1Vi/0haaP9KYG7/TWNy/09mdv9QaHf/UWh4/1Bo + eP9NY3P/R1ln/z1LVv82QEr/MTpB/y82Pf8rMTj/KSwz/yYoL/8kJSv/IiMo/yEhJP8gICP/HyAj/yAh + Jf8iIif/JCUq/yQkKf8hHyX/HRsg/x4cIP8fHiL/KCsx/z1LVf9Tanv/WXSF/1Zwgf9NZHT/NUJP/yUm + Lf9DNRb/hGML/7eGAv/AiwD/vYkA/7qIAP+6iAD/uogB/7qIAf+6iAH/uogB/7qIAf+6iAH/uogB/7qI + Af+6iAH/uogB/7qIAf+6iAH/uogB/7qIAf+6iAH/uYgB/7qHAP+7iAD/wowA/6t+BP9yVxD/KiYg/xwd + I/8dHSPuAAAAswAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAke3t7QDp6ekA/Pz8AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPf3 + 9wD39/cAysrLAMzMzQAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8EBAT/Hx4h/x0bH/8dGx7/IB8j/yot + M/8xOED/N0JL/zxKVv9BUl7/RFdk/0ZYZv9EVmT/P05b/zhFT/80PUb/MTlC/zQ+SP87SlX/Q1dl/0lg + cf9NZnj/T2l6/1BqfP9Qanz/UGp8/1Brff9Pa3z/UGx9/1Bsff9Qa33/T2l6/05neP9MZXX/SmNz/0lh + cP9HXWz/RVpp/0NXZf9BVGL/P1Fe/z1NWv87S1b/OUhU/zhGUf82RE//NkNO/zdDT/82Qk7/OEVR/ztL + Vv9DVmT/TWZ4/1Nugf9Ra3z/QVVk/ykzQv8jJCf/WUUV/5pyCP/EjwH/x5IA/8aSAP/EkAD/xJAB/8SR + Af/FkQH/xJAB/8OPAf/DjwH/w5AB/8OQAf/EkQH/xZAB/8WQAf/FkAH/xJEB/8ORAf/EkQH/xJEB/8WR + Af/EkAH/xJAB/8SQAP/GkQD/yZQA/7OEBf9vVhL/KCUg/xgZJP8dHSDVAAAA6QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAASfv7+wD8/PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP39/QDs7OwAAAAAEAAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/xsaHf8fHiL/Jiow/yw1Pf8nKzL/ISMn/yAgJP8iISX/JSUp/yYpLv8pLDP/KzA3/ysy + Of8sMzv/LTdA/zI+Sf83SFX/PlNi/0Rcbf9IYnT/SmZ5/0xoe/9LaHr/TGh7/0xoe/9LZ3r/S2d6/0tn + ev9LZ3r/TGh7/01pfP9Nan3/TWp9/01qff9NaXz/TWp8/0xpe/9LaHr/S2d5/0tmef9KZXj/SmR2/0lj + df9IYnT/R2Fz/0Zgcf9GX3H/R2By/0dgcv9IYXP/SWR1/0xoe/9ObH//SGBx/zJDVv8hKjn/Lyoh/2pR + Ef+ofAf/zZYB/9ObAP/PmAD/zZcB/86XAP/RmQD/05sA/9edAP/ZnwD/2p8A/9ygAP/coQD/2J8A/9Sc + AP/RmQD/0poA/9KaAP/SmgD/0psA/9KbAP/TmwD/05oA/9OaAP/TmwD/0poA/9GZAP/UmwD/05oA/7iI + Bf9iTRX/KCQh/xYYI/8cGx7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEMfHyQDf398A39/fAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANLS + 0wDPzs8Az8/QANjY2QAAAACtAAAA/wAAAP8AAAD/AAAA/wAAAP8VFBf/Hhwf/yUoMP8zQ07/PVVk/zZJ + V/8vPEf/KjQ8/ycuNf8nLDP/Jisz/yctNv8pMTr/LDdB/zA/Sv82SVf/PVRl/0Nfcf9HZXn/SGZ7/0dl + eP9GY3f/RmN2/0Vidf9GYnb/RmN2/0Zjdv9GY3b/RmN2/0Zjdv9GYnb/RmJ2/0Zidv9GYnX/RWJ2/0Zi + dv9GY3f/R2N3/0Zkd/9HZHj/R2R4/0dlef9IZnn/SGZ7/0hne/9IZ3z/SWd8/0hne/9JZ3z/SWh8/0lp + ff9JaX3/R2R4/z1Waf8rO03/Jikv/0E0Gf9/Xwz/xpIF/+SnAP/nqQD/4KQA/+CjAP/eogD/3aIA/9uf + AP/WnAH/z5cC/8aRBP+/jQX/u4oG/7yLBv/IkwT/1JwB/9uhAP/aoAD/2J4A/9adAf/WmwH/1JsB/9Sb + AP/TmgH/1JsB/9WcAf/WnQD/2p8A/9ygAP/gowD/4qUA/7GDB/9aRxf/Hx4i/xsbI/8WFRj/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAACtvr6/AOfn5wDn5+cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4Az8/QAJiXmQCXlpgAAAAASQAAAP8AAAD/AAAA/wAA + AP8AAAD/DQwN/x4dIP8gICX/Lz1K/z1Za/9EZXr/QmJ2/0Fecv89Wmz/PFZn/zxUZv87U2X/PFVo/z1Y + a/9AXHD/QWF1/0Njd/9DYnf/QWB1/0FgdP9AX3P/QV5y/0Ffc/9BX3P/QV9z/0Ffc/9BX3P/QV9z/0Ff + c/9BX3P/QV9z/0Ffc/9BX3P/QV9z/0Ffc/9BX3P/QF9z/0Ffc/9BX3T/QV90/0FgdP9BYHT/QV9z/0Ff + dP9BYHT/QWB0/0FgdP9BYHT/QGBz/0FfdP9AX3P/QV90/z9cb/83TV7/KTRB/yUkJf9UQRX/nnQL/9+i + Af/sqwH/5qgC/+CkAv/fogL/3qIC/9ugAv/WnAL/ypQE/7mIB/+jeQv/jGkN/3ldEf9sUxT/aFEV/4Nj + EP+qfQn/xJAF/8SQBv/DjwX/wo4G/8GNBf/CjwX/wo8E/8GQBP/AjgX/vYwF/7yKBf/DkAX/ypUE/9CY + A//VnAL/2Z8C/5NvDf9ANRz/GBkj/x4cI/8NDA7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABJzMzNAMzM + zAC6ursAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gDS0tMA0dHSAAAAAAYAAAD8AAAA/wAAAP8AAAD/AAAA/wICAv8eHCD/Hx4i/ykzPf82UWL/PF5y/zxb + cP88W3D/PFxx/zxccf89XHH/PVxx/z1ccv89XHH/PFxx/zxccP88XHH/O1tw/zxab/88W3D/PFtw/zxb + cP88Wm//PFtw/zxbcP88XHH/PFxx/zxdcf88XXH/PF1x/zxdcf88XXH/PFxy/zxccf88W3H/PFxw/zxb + cP87XHH/PFxx/zxdcv89XXP/PV5z/z1dcv89XHH/PFtw/ztab/88Wm7/PFlu/zxab/88Wm//O1lu/zpW + af81TFz/KzpH/yInMP8uKR//d1oR/7uMCP/XnwT/xpEF/66ACv+ddQz/lW8O/5RuDv+Zcg3/mnMM/5Rw + Df+HaA//emAS/3JaFP9tWBT/ZlMV/1ZHGP8/Nh3/PDMd/09BGf9qUxX/d1wT/4RnEP+RcQ//nHkM/6aA + Cv+rhAn/rYUI/6aBCv+VdQ3/fGIQ/3leEf9/YhH/h2cQ/49tD/+eeAv/mXQL/2tUFP8qJyD/Gxwi/x0d + Iv8BAQH+AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAAGeHd6ALq6uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPLy8wDj5OMAAAAAgAAAAP8AAAD/AAAA/wAA + AP8AAAD/GBYZ/x8dIf8jKTD/MElY/zZXbP84WW//N1Zr/zdXbP83WG3/OFht/zhZbv84WW7/OFlu/zhZ + bv84WG3/N1ht/zdYbf83V2z/N1ds/zZXbP83V2z/N1hu/zhZb/84WnD/N1lv/zdYbf82WGz/N1ds/zdW + a/83V2z/N1dr/zdWbP83V2z/N1ds/zZXbP83WG3/OFlu/zdZbv83WGv/NVNm/zNNX/8xR1f/L0BP/yw6 + Sf8rNkP/KTNA/ykzP/8oMT//KTNA/ykzQP8oMD7/Jyo4/yIhLv8gGyT/MScb/2BLFP+NaQ7/lXEO/4hp + EP95XxL/dl0T/39kEf+RcQ7/poEL/7aNCf/Blgf/x5sG/8mdBf/Knwb/zaEG/9CiBv/Oogb/x5wH/7eR + Cf+siQv/rokK/7iRCP/CmAf/zaEF/9SmBf/bqwT/3q0D/+CwA//gsAL/368D/9ipBP/KnwX/xJoG/8OZ + B//Fmgf/yJ0G/82gBP/aqgP/wpcH/3dfE/8kISH/GRkj/xcXGv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AICkpKUAtra3APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+vr6AAAA + AADc3N0A5OTkAAAAABgAAAD/AAAA/wAAAP8AAAD/AAAA/wwMDf8eGx//IiQq/ys8Sf80VWn/NVhu/zRW + bP81Vmz/NVdt/zVYbf81WG3/NVht/zVXbf81V2z/NVds/zVXbP81Vmz/NVds/zRXbP81V23/NVdt/zVZ + b/80Vmz/Mk9i/y5FV/8rPk7/KztK/yo5SP8rN0f/KzdG/ys4R/8rOEb/KzdH/yo4SP8rOUn/KjpJ/ys7 + TP8sPU3/Kz1N/ys5R/8oMT//JSo2/yMlMP8iIyz/ISMq/yEkKP8gJSf/ICQn/yAkJ/8gJCf/ICQn/yAl + J/8hKif/HzQs/yU2Kv9MRRz/mnMK/7mOB/+0jQn/p4QM/6aEDP+siAz/uZIJ/8qeBv/aqgT/47ED/+m3 + Af/vugD/870A//fBAP/7xAD//cQA//3FAP/8xAD/+cEA//O+AP/xuwD/8bwA//S+AP/2wAD/+MEA//jC + AP/4wgD/+MMA//jDAP/4wgD/+cMA//fBAP/0vgD/8r0A//G8AP/xvQD/8bwA//fCAP/zvQH/w5gH/09B + Gv8gHiH/GRki/wwMDf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAABja2tsA/Pz8AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0AAAAAAMfHyAC/v8AAAAAAogAAAP8AAAD/AAAA/wAA + AP8AAAD/HRwf/x8gJP8nMjz/MlBj/zVZbv80WG3/M1Zs/zRXbP80V2z/NFds/zRXbP80V2v/NFds/zRX + bP80V2z/NFds/zRWbP80V2z/M1ds/zRWbP80VWv/MlJm/y5GV/8pNkP/JCky/yEjKv8hIyj/ICIn/yEi + Jv8hJCb/ISQn/yEjJv8hIib/ICIn/yEjKP8hIyj/ISMp/yEjKf8hIyn/ISIm/yAjI/8fJyT/IS0n/yI3 + LP8kQTH/Jkc2/ydMN/8nTTj/J045/ydNOP8mTTj/J1A6/ypeQP8sdU3/MXVL/1JwM/+dgxL/y58F/+Kw + AP/vuQD/+8MA///HAP//xwD//cUA//rDAP/4wQD/9b8A//O9AP/yvQD/8bwA//G8AP/wvAD/8LwA//G8 + AP/zvQD/9b8A//W/AP/0vgD/870A//G8AP/xvAD/8LwA//G8AP/xvAD/8bwA//C8AP/xvAD/8bwA//K9 + AP/zvQD/870A//O9AP/zvQD/8r0A//nCAP/uuQH/lXYP/zoxHf8WFyP/HRwg/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAovHw8QDn5+cAAAAAAPv7+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX1 + 9QAAAAAA9/f3AAAAACAAAAD/AAAA/wAAAP8AAAD/AAAA/xISFP8fHB//JCkw/y1AT/80VWr/M1Nn/zJR + ZP8xUGP/MU9i/zFOYf8xTmD/MExe/zBLXf8xTF7/ME1f/zFOYP8xT2L/MlBk/zFQZP8xT2P/MU1e/y5E + VP8oN0P/IiQs/yAfI/8hKCX/JDYu/yU/M/8lRDX/Jkc2/ydKOP8nSjn/J0k4/yZHN/8lRTb/JUM2/yVA + NP8lPTL/JDov/yQ6MP8mRTb/KllB/y1uS/8wgFX/Mo1b/zSXYP81nGP/Np5k/zafZP82oGT/Np9j/zWf + Y/82oGT/N6Rk/zipZv81pmb/N5Ra/0t2PP97chv/nHsM/7mQCP/YqQP/7LgB//K9AP/zvgD/8bwA//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8 + AP/xvQD/8b0A//G9AP/xvQD/8bwA//G9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/9L8A//S+ + AP/aqgP/alYV/yEgIf8ZGSP/EhIV/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAILq6uwAAAAAA+/v6AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sAxMPFAPv7+wDOzc8AAAAAqAAAAP8AAAD/AAAA/wAA + AP8CAgL/Hh4i/x4aH/8hICj/JSo0/yYuOv8mKzj/JSk1/yMoM/8jJTH/IyQv/yMjLv8iIS3/IiAs/yIh + Lf8iIi3/IiMu/yMlMP8kKDP/Iyg0/yMmMf8iISz/IBwm/x8eJP8jNi//KlxC/zB+VP80j13/NJNg/zWW + Yv81mGP/Nplk/zaZZP82mGT/NZdj/zSWYv80lWP/NJRi/zSSYP8zkF//NJBf/zSXYv82nmf/N6Vq/zep + a/83q2z/OKpr/zeqav83qWn/OKlp/zipaf83qGj/OKlo/zmpaf85q2n/OKxo/ziuaf83q2j/NaBi/zaH + U/82bkT/O1o1/01RI/94YhT/xZkG//G8AP/0vgD/8bwA//G8AP/xvAD/8b0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8bwA//G8AP/xvAD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/xvQD/8bwA//G8AP/xvAD/8b0A//G8AP/xvAD/9L4A//bAAP+phgv/Sz8a/xMVI/8fHiP/AgIC/wAA + AP8AAAD/AAAA/wAAAP8AAACo7+7vAAAAAAD8/PsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gDe3t8D/v7+AAAAABsAAAD/AAAA/wAAAP8AAAD/AAAA/xUUF/8fHSH/Hx8j/yAkJv8hJij/ISYn/yEn + J/8hJyf/ISso/yItKf8iLSj/Ii8p/yIwKv8iMSr/IjAq/yIvKf8iLin/Iiwo/yErKf8iKyn/Iiwp/yIw + K/8kPjH/KVc//y97U/81mGP/N6ls/zmub/85r2//Oq9w/zqvcf86r3H/Oq9x/zqwcf86sHH/Oa9w/zmv + cf85r3H/Oa9w/zmucP85rXD/Oa9w/zmvcf85r3D/Oa5u/zmubv86rW3/Oa1t/zmubf85r23/ObBu/ziw + bf83rm3/Natr/zKlaf8unWb/K5Vj/yiOX/8lhlv/IXJT/yNdRv8vTjb/SEwk/3pkFP/HnAb/8b0A//O9 + AP/xvAD/8LsA//G8AP/xvAD/8bwA//G8AP/xvAD/8bwA//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7 + AP/yvQD/+cIA/92uA/+CaBH/IiAh/xwcI/8UFBf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAb/v7+ANPT + 0wD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7OzsAPLy8gLs7OwAAAAAkQAAAP8AAAD/AAAA/wAA + AP8CAgL/Hh0h/yEkJf8mRTT/KFQ7/ylVO/8pVTv/KVk9/ypcP/8rYUH/LGVE/yxoRf8sbEj/LW5J/y1v + Sv8tbkr/LW1J/yxrSP8rZ0f/K2RF/yxkRf8sZkj/LXBN/zGCWP81mmX/OK1v/zmxcf85rnD/Oatv/ziq + bv84q2//OKpv/ziqb/84q2//OKtv/zisb/85rG//OKxv/zisb/84q2//Oaxv/zmscP85rW//Oa1w/zet + b/83rG//Natv/zWqbv8zp23/MqRr/zCgaf8vm2b/LZVi/y2OXv8vh1n/MYBT/zV5Tf87ckf/Q24+/09t + Nf9fbiz/cXEi/4h5Gf+jhhH/w5oI/+KxAv/yvQD/870A//W/AP/3wAD/+MIA//fCAP/3wAD/9sAA//bA + AP/2wAD/9sAA//K9AP/yvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//G8AP/zvgD/+cIA/7eQCf9NPxv/Gxoj/xsb + I/8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAJH///8Ay8vMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTk + 5AC7u7wAwMDCAAAAAAoAAAD/AAAA/wAAAP8AAAD/AAAA/xUSFf8fHyL/JTsw/zKEUf82n17/N59g/zef + YP83o2L/OKVk/zimZf84p2b/OKhn/ziqaP84q2n/OKxq/zisav84rGr/OKxs/zesbP84q23/OKxt/zis + bv85rnD/Oa9w/ziucP84q27/OKpt/zmqbv85q2//OKtv/zmscP85q3H/Oaxw/zmscf84rXH/OKxx/zmt + cv85rXH/Oa1x/zitcP84rXH/OKxx/zascf82rHH/Napv/zSmbf8zoGn/MJlm/y+PYP8uhFr/LXdT/y9s + S/8yYUL/OVk5/0ZVMf9WVyn/a18i/4VrHP+ffBT/uo4O/9KfB//krQL/8rkA//vCAP/8xAD/9sAA//S9 + AP/0vQD/9b4A//S+AP/zvQD/874A//W+AP/2vwD/9b8A//a/AP/1wAD/874A//K9AP/xvAD/8bwA//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/xvAD/8bwA//K9AP/8xQD/3q0E/4ttEP8jICL/Ghoj/xUUFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AAr5+fkA+fn5AAAAAAAAAAAAAAAAAAAAAAAAAAAA5OTkAHx8fgB/f4EAAAAAYQAAAP8AAAD/AAAA/wAA + AP8AAAD/Hxgg/yEoJ/8rYkH/Nptd/zinY/83o2L/OKNi/zilY/84pmT/OKZl/zimZv84p2f/OKho/zin + Z/84qGj/OKpq/zeqav84qmz/OKtt/zmrbv85q27/Oatu/zmqbf85q27/Oatv/zmrbv84q3D/Oaxx/zms + cf85rXH/Oa1y/zmtcv84rXL/Oa1y/zmtcv84rXL/OK1y/zmvc/85snX/ObR1/zavdP8vom7/KpBl/yqD + XP8weVX/PXRN/0lvRf9PaT7/WGU4/2VnNP94bS7/i3cs/5+EKf+ykSb/xZ0j/9WoHf/ishr/6rgV//C8 + Ev/0vg3/9L8J//O/Bf/0vgL/98AA//zFAP/9xAD/978A/+iyAP/PngP/s4gH/6V9CP+sggf/wJIG/8qa + Bf/HmQb/xJgG/86hBv/ptgD/8b0A//K9AP/xvAD/8b0A//G9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/8bwA//bAAP/yvQD/wJcH/0M4 + HP8eHSL/Gxsj/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAYdvb3ADV1tcAAAAAAAAAAAAAAAAAAAAAAAAA + AADn5+cAwsLDAK+vsAAAAADiAAAA/wAAAP8AAAD/AAAA/xAPEf8fGyH/JTow/zKEUv83omH/OKVj/zaj + Yf84pGP/OKRi/zelZP83pWX/N6Vm/zelZv84pmf/N6do/zeoaf83qGv/OKlr/zipbP85qW3/Oalt/zmp + bf85qW7/OKpu/zirb/85rHD/Oaxw/zmtcv85rXL/Oa1x/zmucv85rXL/OK1y/zitcv85rnP/OrJ2/zq1 + d/83tHj/Mqpy/yqZaf8nhV7/K3NS/zpqS/9VcEb/dH5F/5CMRf+ol0L/t54//76gO//Eojf/zaY0/9ar + L//fsi7/6Lgr/++8KP/zwCT/98Mf//jEG//4xBf/+sUU//zHEP//yQz//8oH//vDA//ttgD/1qIB/7iK + Bv+Xcwz/eGAT/11THP9JTCP/Qk0o/0hWKf9VXSb/WFMf/1RGGv9MPBj/W0UV/6iECv/ntwL/+sQA//C7 + AP/wvAD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//G8AP/yvQD/8rwA//nCAP/gsAP/eGAT/yolIf8XGCT/ERAS/wAAAP8AAAD/AAAA/wAA + AP8AAADinp6gAJiYmgDz8/MAAAAAAAAAAAAAAAAAAAAAAM3NzQDb29sAAAAAJQAAAP8AAAD/AAAA/wAA + AP8AAAD/HBce/yEmJv8pVj3/Npxe/zijYv83o2L/N6Ni/zikY/84pGP/OKVl/zimZv84pmf/OKZn/zen + aP83qGr/OKlr/zipbP85qmz/Oals/zmpbf85qW7/Oapu/zmrcP85rHH/Oaxx/zmtcv85rXL/Oa5y/zmt + c/84rXP/Oa1z/zmudP85sHX/OLJ3/zWwdf8wp3H/LZtq/y2NY/8zfln/QHVS/1VxS/9wdEb/j39F/7CT + Rv/Npkf/47ZI//LBR//5yEX//MtD//3NP//+zzv//s84//3PNP/9zDH/+sks//fGKP/1xST/98Yf//nH + G//5xBb/87wR/+axDf/SoQv/uI8M/5p8Ef96bhr/W2Im/0JaMf8vWDv/JVtD/yFiSf8hak3/JHBO/yVu + TP8jXUL/IE48/xY1NP8bIif/XEgW/8SYBv/4wgD/+cQA//jCAP/0vwD/8r0A//G8AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/wuwD/+MEA//C7 + Af+wign/QDYc/xgYI/8cGyD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAls7O0APb29gAAAAAAAAAAAAAA + AADh4eIAl5aZAKCfoQAAAACGAAAA/wAAAP8AAAD/AAAA/wgICf8eFx//JDgv/y90TP84pmP/OKVj/zaj + Yv84pGP/OKVk/zimZf84pmf/OKdo/zenaP84qGn/N6lq/ziqbP85qm3/Oalt/zmpbf85qW3/Oapu/zmr + cP85rHD/Oa1y/zmucv85rXL/Oa1z/zmtc/85rnP/OK10/ziudf85r3b/N7B3/zaudv8zqHP/Mp1r/zKK + YP84dVP/SWdJ/2VmRf+MeUn/t5VQ/92yWf/1yV3//dNc//7UWf/70VT/+c5P//fLS//2yUf/9MlC//TI + Pv/0xzr/88c1//TFMv/0xS7/9cUq//XFJ//zwyH/67sd/92uGf/DnBj/oIMZ/3VoH/9OVSn/MlA2/yRe + Rv8jclT/KIZc/y+XYf81omP/N6dk/zipZP84qGP/N6di/zWgXf80mVr/Ln9P/yVQPP8sMib/gmcR/8ue + Bf/rugL/874B//S+AP/zvgD/8bwA//G8AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7AP/0vgD/9b8A/92sAv9jUBb/IiAi/xobI/8ICAn/AAAA/wAA + AP8AAAD/AAAA/wAAAIb29vYA6urqAAAAAAAAAAAAAAAAAOHh4gBsa24Abm1wAAAAAPcAAAD/AAAA/wAA + AP8AAAD/FhQY/x8bIf8oTjn/M49Y/zimY/84pWP/N6Ri/zilY/84pWX/OKZm/zimZ/83p2j/N6dp/zio + av83qWv/OKls/zmqbf85qm3/Oalt/zmqbv85q3D/Oaxx/zmscf85rXL/Oa5y/zmtc/85rnT/Oa50/zmu + df84rnb/OK93/zizev8zrXb/LJNo/y5zVf9CY0j/aGtI/5eEUv/CpF7/4b5o//DNbf/30mz/+dJo//jP + Y//2zF7/9cta//TLVf/1ylH/9cpN//TJSf/1ykX/9slB//XIPf/1yDn/98g1//nKMv/4yi3/7b0n/8Wb + If+UdB7/Zlwl/0ZfNv8zaEX/K3RR/yuEW/8wl2P/NKRo/zaoaf83qGj/N6dm/zemZP83pWP/OKNi/zii + Yf83omD/NqFe/zeiXf83olz/NJRX/ypnRf8vQSz/V0gZ/5BvDv+7kwn/26wD/++6AP/0vgD/8r0A//G8 + AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//K9 + AP/1vwD/874A/5BxEP84MR7/FBcj/xYVGf8AAAD/AAAA/wAAAP8AAAD/AAAA98rKywDAwMEAAAAAAAAA + AAAAAAAA4uLjAMfHyQAAAAAlAAAA/wAAAP8AAAD/AAAA/wAAAP8fGiD/ISkn/y1nRP83oWH/OKVj/zil + Yv83pWT/OKZl/zilZv84pmf/OKZo/zenaf83qWv/N6lr/zipbP85qWz/Oalt/zmrb/85q2//Oaxx/zmt + cv85rXL/Oa1y/zmtc/85rnT/Oa91/zmvdv85r3f/Oa94/zixef84sXj/Nady/0GKYf9jfVj/kYtc/7ij + Z//Ut27/58Vx//PNc//50nP/+dRx//nTb//40Gv/9s1m//XMYf/0y1z/9MtY//fOVf/80VL//dNP///T + Sv//z0T//ck9//jEOP/xvDP/3awt/7aPKP99ZCT/T0wp/zhUOf8xc07/MZFh/zGdaP8yomv/NKZs/zWq + a/83qmr/N6pp/zioaP84p2f/OKZk/zekY/84o2L/OKJh/zihYP83ol//OKFe/zeiXP83oVz/NJdY/y5/ + T/8tXD3/Mjwo/z4yG/9xWRT/xpwH//zEAP/zvQD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/xvAD/8bwA//S/AP/4wgD/u5IJ/1ZHGf8VFyT/Hh0j/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAJYqKiwD29vYAAAAAAAAAAADKycsA2NfZAAAAAHYAAAD/AAAA/wAA + AP8AAAD/CQkL/x4ZH/8lPzH/MX1Q/zipZf84pGL/N6Vj/zilZv84pmf/N6Zn/zimaP84p2r/N6lr/ziq + bf84qm3/Oals/zmpbf85qm7/Oaxx/zmtcv85rXL/Oa1z/zmtc/85rXP/Oa51/zmvdv85sHf/ObB4/zmw + eP85sXn/OLN6/zWsdv8xe1j/dYFa/7ula//ix3v/9tF///3Zf//92n3/+9d6//fSdf/10HH/9M9u//XO + a//1zWj/9s5l//vRYv/80V7/98tW/+q9Tf/YrkX/yaNA/7udPv+xmz3/pZo//5WTPv99hD3/W3I+/zZi + Qv8naE//J4Be/y6da/81rXH/OLBx/zqwcf86rm7/OKtr/zioaf83p2f/N6Zn/zilZ/84pWX/OKVk/zik + Y/84o2L/OKJh/zihYP84oF7/N6Bc/zegXP85pV3/NqRe/y2IVf8fUkD/EhYl/ygfHv+GaRD/4bAD//zF + AP/3wQD/8r0A//G8AP/xvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/wuwD/8r4A//fBAP/drAP/d2AU/yAeIv8cHCL/CQkL/wAAAP8AAAD/AAAA/wAAAP8AAAB2vLy9APj4 + +AAAAAAA+Pj4AJqZmwCjoqUAAAAA1gAAAP8AAAD/AAAA/wAAAP8WFBf/Hhwh/ylWPf8zkFn/OKpm/zil + Y/82pGX/OKZn/zinaP82p2j/OKdp/zepa/85qmz/Oalt/zmpbv85qW3/Oapu/zmscP85rXL/Oa5y/zmt + cv85rXP/Oa51/zmudf85r3f/ObB4/zmxef85sXn/ObB5/ziyev84tXz/NKp2/y9kTP+Ee1b/1LZ0//Xf + if/+3Ib/+teA//fTfP/30nn/9tB2//XQc//0z3D/9c9t//bPa//3zmf/78hh/925WP/Bo07/oY1F/4R9 + Qf9tdkL/XHhI/1GAT/9Ghlf/OYVa/y6CXf8ohmL/LJhq/zWqcv86tHX/OrJz/zmsb/84qW7/OKht/zip + bf85qWz/N6lr/zioaP82p2f/OKVm/zilZ/84pmX/OKVj/zikYv84o2L/OKJh/ziiYP84oV7/N59c/zef + W/83pF7/OKNd/zOGUP8kQTP/Fxsm/0U1Gv+WdQ3/3a0D//C8AP/2wQD/9sAA//S+AP/yvQD/8bwA//G8 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//G8AP/xvAD/9L4A//K8AP+ZeQ7/NS4e/xka + I/8UFBn/AAAA/wAAAP8AAAD/AAAA/wAAANb6+vsA7e3uAAAAAAD4+PgAf36AAAAAAAoAAAD/AAAA/wAA + AP8AAAD/AAAA/x4bH/8gJCX/LWxJ/zadYP84qGb/OKVl/zelZv84pmf/N6do/zeoaf84qGr/OKls/zmp + bP85qW3/Oapu/zmrb/85rHH/Oa1y/zmtc/85rnL/Oa10/zmudf85sHb/ObB3/zmweP85sXn/ObJ5/zmy + ev85sXv/OLJ8/zi1fv83sXz/L41n/z9pT/95dVL/w6ds/+3Of//42IL/+tZ///jTe//30nj/9tF1//XQ + cv/20XD/9s9t/+nEZf+1nFP/eXZG/0liQ/8yZkz/KnhZ/yuMZv8unnH/MKp3/zKvef80snn/NrJ5/zmz + eP84snf/OK90/ziuc/85rXL/Oaxx/zirb/85qm7/Oalt/zmqbf84qWz/OKlq/zeoaf83pmf/OKZn/zim + Zv84pWT/OKRj/zijYv84o2L/OKJh/zihX/83n13/OJ9c/zefW/83olz/Np5a/zGBTv8lSDf/HiQn/zgu + Hf98YRD/wJcG/+e2Av/2wAD/9r8A//K9AP/yvQD/8bwA//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8bwA//G8AP/yvQD/+8MA/7aQCf9TRRj/Fxgj/xsaIf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AArQ0NEAAAAAAPj4+ADi4uIAAAAANwAAAP8AAAD/AAAA/wAAAP8EAwT/Hxsh/yQyLP8xf1H/N6Zk/zin + Zv84pmb/N6Vm/zilZv83pmf/N6hq/zepa/84qmz/Oals/zmpbf85qm//Oatx/zmtcv85rnP/Oa1z/zmt + c/85rnX/Oa92/zmxeP85sXj/ObB4/zmxef85snr/ObN8/zmzff84tH7/OLV//zi1f/83s37/M6By/zaC + X/9ObE//hHtV/8KjaP/sxXf//dd///3cf//92Hv/+dR2//rVdP/wymz/o4lO/0ZZQf8fZ1H/JJVu/yup + ev8ws3//NLeA/za3fv82s3z/N7J6/zeyef84snn/ObF3/zmwd/85rnT/OK1y/zitcf85rHH/Oaxx/zmq + b/85qW3/Oapt/ziobP84qWv/N6hq/zenaP84pmf/OKVn/zimZv84pGT/OKNi/zijYv84omH/OKFg/zif + Xv84n1v/N55a/zefW/83oVv/N6Bb/zSOVP8sbkf/Jks4/yozJ/9ENxr/dFcQ/6yECf/crAP/9L4A//W/ + AP/yvAD/8bwA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8LsA//G8AP/8xAD/0KIF/3Nd + FP8aGST/HBsj/wQEBP8AAAD/AAAA/wAAAP8AAAD/AAAAN62srgAAAAAA39/gAOfm5wAAAAB8AAAA/wAA + AP8AAAD/AAAA/w4MD/8eHiL/JkQ0/zOOWP84qmb/N6Zl/zilZ/84pWb/N6do/zeoaf83qWz/OKls/zmp + bP85qW3/Oatv/zmrcP85rHL/Oa1y/zmtc/85rnX/Oa51/zmvd/85sHj/ObF5/zmyef85snr/ObN7/zm0 + ff85tH7/ObV//zm1f/84tH7/OLZ//zm5gv81uIH/L6h4/y6Sa/8+gl//Xn1Z/4KBWP+mkV7/yKlm/+i+ + b//6znT//9p3//jVcv/Ao1v/dnZL/1J1UP9Nj2H/Q5dp/zOXbf8rm3L/K6V3/zCwff82tn7/OLZ8/zqz + ev85sHf/Oa94/ziudf85rnT/Oa1z/zmtcv85rXL/Oaxx/zmrb/85qW3/Oalt/zmpbf84qWz/N6hq/zin + aP83pmj/OKVn/zilZv84pGT/OKNi/zijYf84omH/OKBf/zigXf84n1v/N55a/zifW/84o13/N6Rd/zab + Wv8xiFP/J25K/yFVP/8mQDH/Ojsi/2BOF/+ZeQ7/16gE//K9AP/yvQD/8r0A//G8AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/xvAD/8r0A//rCAP/isAP/knQP/yQhIv8bGyP/Dg0Q/wAAAP8AAAD/AAAA/wAA + AP8AAAB8goKEAPr6+gCysbMAtrW2AAAAAMUAAAD/AAAA/wAAAP8AAAD/FhMX/x8iJP8pWT//NZhd/zis + Z/82pWb/OKZn/zemZ/83qGn/OKlr/ziobf85qm3/Oalt/zmqbv85rHD/Oaxx/zmtcv85rXP/Oa50/zmv + dv85r3f/ObB4/zmxef85sXr/ObJ7/zmzff85tH7/ObV//zm1f/85tYD/ObWA/zm1f/84toD/OLaA/zm5 + g/85vYb/Nr2G/yyqe/8pjmn/Mnlc/0t1Vv9vgFj/lJBd/7ejY//Qs2f/4MBq/+e/Z//TsmD/vadb/6yh + WP+WmVf/doxX/1qHWv9Fi2D/OJRq/zGecf8wqHf/MrB6/za0e/84s3r/OLF4/zmvdv84rnT/Oa1z/zmt + cv85rXL/Oaxx/zmqbv85qm7/Oalu/zmpbf84qWv/OKhp/zanaP84pmj/OKZn/zilZf84pGP/OKRi/zij + Yv84oWD/OKFf/zigXP84nlv/N55a/zifW/83o1z/Oahf/zmqYP84ol3/NpBT/y5oQ/8sQC7/QDUc/3lg + Ev/LnwX/8b0A//O+AP/xvAD/8LsA//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//C7AP/yvQD/9r8A/+66 + Af+siAv/NC0f/xwcI/8VFRr/AAAA/wAAAP8AAAD/AAAA/wAAAMWjo6UA+/v7AIKBgwCFhIYAAAAA/wAA + AP8AAAD/AAAA/wAAAP8cGB3/ISgn/y1tSf82n2H/OKto/zelZv84pmf/N6dp/zeoa/84qmz/OKlt/zmp + bf85q2//Oaxw/zmtcf85rXL/Oa1z/zmudf85r3b/ObB4/zmweP85sXn/ObJ6/zmze/85s33/ObV//zm1 + f/85tX//ObaA/zm1gP85toH/ObeC/zi3g/85uIP/ObiE/zi4hP84uYX/OL6H/ze/if8yt4X/K6V6/ymP + a/8ve13/R3RV/2p7VP+Vjlj/wahh/97AaP/rzmr/8tBn//bJYf/mu1n/xKZS/5mRTf9wgU3/Tn9V/zuM + Yv8znnD/M6x3/zWxev82snn/OLB3/zmwdv85rnT/OK1z/zitcv85rXH/Oaxw/zmrb/85qW3/Oals/zip + bP84qGv/N6hp/zemZ/84pWb/OKVl/zilZP84pGL/OKNh/ziiYf84omD/OKBd/zefXP83n1v/OKBc/zee + Wv81l1j/MotT/zODTf9TkUP/fJwz/5mVHv+siAv/xZsG/+SzAf/yvQD/8r0A//K9AP/xvAD/8bwA//G8 + AP/xvAD/8bwA//G8AP/xvAD/8bwA//K9AP/yvAD/9r8A/8KYB/9KPhv/Hh0i/xgYIf8AAAD/AAAA/wAA + AP8AAAD/AAAA//v7+wD39/cAY2JlAAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/x8aIP8iLyr/MH1R/zaj + ZP83qmj/N6Zn/zinaP83p2n/OKlr/zmpbf85qW3/Oapu/zmrcP85rHH/Oa1y/zmtcv85rXT/Oa92/zmw + d/85sHj/ObF5/zmxev85snv/ObN9/zm0fv85tX//ObV//zm2f/85toD/ObaB/zm3gv85uIP/ObiE/zm5 + hf85uYX/OLmE/zm6hf85uob/OLqG/zi6h/83u4f/N7uG/zW3hf8yrX//Mp91/zaOaP9GgF3/YX1U/4SF + Uf+sllP/0qxX/+/BXP/1zV3/8M9c/+fGVv/Lr0//oJVI/22ASv9DflX/LpFo/y6odv81s3v/ObR6/ziv + dv84rXT/Oa1z/zitcv85rHH/Oatw/zmqbv85qW3/OKls/zipa/83qGn/N6do/zimZ/84pWb/OKVk/zik + Y/84o2L/OKJh/ziiYf84oF//N59c/zegW/84oFz/MoVP/ypZPf8gMy7/Iion/2FRGf/AmQv/78ME//LF + Af/1xgD/+MQA//jBAP/2vwD/874A//K9AP/yvQD/8bwA//K9AP/yvQD/8r0A//K9AP/xvAD/8r0A//G8 + AP/6wwD/0aUF/2NQFv8gHiL/GBkk/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEOnp6QC3trgAAAAAMAAA + AP8AAAD/AAAA/wAAAP8GBQb/Hhwh/yQ5L/8zi1j/N6Zm/zipaP82pmf/OKdp/zeoa/84qWz/Oalt/zmp + bf85qm//Oaxx/zmtcv85rXL/Oa1z/zmudf85sHf/ObF5/zmxef85sXn/ObJ7/zm0ff85tX7/ObV//zm1 + f/85tYD/ObaB/zm3gv85uIP/ObmE/zm4hf85uYX/ObmF/zm6hv85uYf/ObqI/zm6h/84uof/ObuI/zm8 + if85vor/N76L/zW8iv8zt4b/MLGC/zGofP82oHX/Ppds/02OY/9iiVv/folT/5uRT/+4nk3/1axM/+e1 + TP/ouEn/2LJG/7ikRv+Ikkn/U4VT/zOLYv8qn3L/NLN7/zizef85r3T/OK1x/zmtcv85rHH/Oatv/zmp + bf85qW3/N6ls/zepav82qGj/OKZn/zilZ/84pWb/OKRk/zijYv84o2L/OKNi/zihYP82oF7/OKBc/zig + XP80jFP/LWtE/yVJNv8jNi7/Ojsj/29cF/+WeA7/rIgJ/8GUBP/TnwL/4aoA/+yyAP/0uQD/+b4A//zC + AP/9xAD//cYA//3FAP/6xAD/9cAA//K9AP/yvQD/8LsA//vEAP/drQP/fGMS/yQiIf8XGCT/BgYG/wAA + AP8AAAD/AAAA/wAAAP8AAAAw2NjZAODg4QAAAABXAAAA/wAAAP8AAAD/AAAA/wwLDf8fICP/JkQ1/zSV + Xf84p2f/N6ho/zenaP84qGr/OKls/zmpbf85qW3/Oapu/zmrcP85rXL/Oa5z/zmtc/85rnT/Oa92/zmx + eP85sXr/ObF6/zmxe/85s33/ObV+/zm1f/85tn//ObWA/zm2gf85t4P/ObiD/zm5hP85uoX/ObmG/zm6 + h/85uof/ObuH/zm6iP85uon/ObuJ/zm7if85u4r/OLuK/zi7iv84u4r/ObyK/zq+i/85wIz/OMGM/zO8 + iv8ttIT/K6h8/y6bc/83jmn/R4hg/12GWP93i1P/lZlR/7ClT//Dq0n/yqdC/7+bPP+gkD7/doZG/0yE + VP8zj2T/NKdz/zevdv84rnP/Oa5y/zitcv85rHD/Oapu/zmobf84qm3/OKpr/zepaf83pmj/OKZn/zim + Z/84pWX/OKRj/ziiYf84omH/OKJh/zehX/83n13/OJ9c/zeaWf80kFT/MYJP/y91Sv8raET/MmI9/0Bi + NP9RZiz/Y2ol/3VyH/+Gehn/loEU/6aKEf+zkA7/vJQL/8OXB//MnAT/2acD/+WzA//tugH/8b0A//G8 + AP/xvAD/+sMA/+WyAv+TdQ7/KiYg/xYXJP8NDA3/AAAA/wAAAP8AAAD/AAAA/wAAAFfFxcYAz87PAAAA + AIAAAAD/AAAA/wAAAP8AAAD/Eg8T/yAjJf8oTjr/Npxh/zipaf82p2n/OKhp/zepa/85qmz/Oahs/zmp + bf85q2//Oaxy/zmtc/85rXP/Oa10/zmudf85sHj/ObF5/zmxev85snv/ObN9/zm1f/85tYD/ObWA/zm2 + gP85t4L/ObiD/zm5hf85uYX/ObmF/zm6hv85u4f/ObuJ/zm8if85vIn/ObyK/zm7i/85vIv/ObyL/zm9 + jP85vYz/Ob2M/zm9jP85vIv/OLuK/zm7iv85vIn/OLyJ/zm9iv85wIv/N8GL/zO8iP8tsYP/KqN6/yuV + b/8zjmf/QIhg/1WEVv9yhkv/nYxA/8+nPP/Qpjj/oIw3/19yQP86hVv/NKFv/zewdv84rnP/OK1y/zms + cf85q2//Oalt/zmqbf85qW3/OKlr/zanaf84p2j/OKdo/zimZf84pWT/OKNi/zijYv84oWD/OKBf/zef + Xf84oFv/OKFb/zikXf85p1//OaZe/zaiXf8wmFv/KoxY/yZ/VP8ldU7/J2xJ/y1mQ/81ZT3/QGc3/0xp + Mf9XaSv/YGck/2xlHP98ZhT/lXYP/72VCP/ltAH/8r0A//K9AP/5wgD/67cB/6aDC/8yKx7/Fxgj/xIR + FP8AAAD/AAAA/wAAAP8AAAD/AAAAgLKxswDDw8QAAAAAqAAAAP8AAAD/AAAA/wAAAP8WEhf/ICcm/ylY + P/82oWT/OKlp/zeoaf84qGn/OKlr/zmpbP85qW3/Oapu/zmscP85rHL/Oa1z/zmtc/85rnX/Oa92/zmw + eP85sXn/ObF7/zmzfP85tH7/ObV//zm1gP85toH/ObaB/zm3g/85uIT/ObmF/zm5hv85uYb/ObqI/zm7 + if85u4r/ObyK/zm8iv85vYv/Ob2M/zm9jP85vYz/Ob2N/zm9jf85vY3/Ob2N/zm9jP85vYz/ObyL/zm8 + i/84vIr/ObuK/zi7if84u4n/OLuI/zi8iP83von/Nb+K/zG7iP8rsIH/K550/zOBX/9LXkD/oog7/+G9 + QP/tyz7/xpox/1phN/8zg1z/NK93/ziudP84rXL/Oa1x/zmrcP85qm7/Oapt/zmpbf84qWz/N6hq/zin + aP83p2j/OKZm/zilZP84o2L/OKNi/ziiYf84oV//N6Be/zigXP84n1v/OKBc/zifW/84oFz/N6Bc/zeh + W/83olz/N6Nd/zajXf81ol3/NZ9d/zOdXP8xmVv/LpZa/y6RWP8rhVX/I2dI/xguMP8jISL/bVUT/82g + Bf/0vwD/9L4A//jBAP/uugH/t48J/zoyHv8ZGSP/FhYZ/wAAAP8AAAD/AAAA/wAAAP8AAACooJ+hALS0 + tgAAAADLAAAA/wAAAP8AAAD/AAAA/xoUGv8hKyn/K2JF/zalZ/84qmn/N6ho/zipav84qWz/Oalt/zmp + bf85q2//Oa1x/zmtcv85rXL/Oa10/zmvdv85sHj/ObF4/zmxev85snz/ObR+/zm1f/85tX//ObWA/zm3 + gv85t4P/ObiE/zm5hP85uYX/ObqH/zm6iP85u4n/ObyK/zm8i/85vYv/Ob2L/zm+jP85vY3/Ob2N/zm9 + jv85vo//Ob6P/zm+j/85vo//Ob6O/zm9jf85vYz/Ob2M/zm8i/85vYv/OL6M/zjBjv80wI3/LbmJ/yut + gP8zonX/S5xt/2qbYv+Km1f/oJZM/6aLQP+vjTv/rJM8/56SPf+Bgj7/SHZL/zSVZ/82sXj/N691/zmu + c/85rXL/Oaxx/zmrb/85qW3/Oaht/ziqbf83qWv/OKdo/zenaP84pmf/OKVl/zikY/84o2P/OKJh/zih + YP84oF//OJ9c/zieW/84n1v/N59b/zefW/84n1v/OKBc/zihXP84olz/OKJd/ziiXf82oVz/NqFd/zaj + X/82p2D/L5lc/yd9Uf8tXz//VVUi/4ptEf/AlAf/57UB//K9AP/xvQD/9sAA//K8AP/Fmgf/Qzkd/xsb + I/8YGB7/AAAA/wAAAP8AAAD/AAAA/wAAAMuOjY8AqqqrAAAAAOcAAAD/AAAA/wAAAP8AAAD/GxUd/yIv + K/8takn/N6do/zirav84p2n/Oapr/zmqbf85qG3/Oapu/zmscP85rXL/Oa5z/zmtdP85rnX/ObB3/zmx + ef85snr/ObN8/zm0fv85tX//ObV//zm1gP85toH/ObiD/zm4hP85uYX/ObqF/zm7h/85u4n/ObuK/zm8 + i/85vYz/ObyM/zm+jP85vY3/Ob6O/zm+j/85vo//Ob6Q/znAkf85wJH/Ob+R/zm/kf85vpD/Ob6P/zi+ + jv85vY3/OcCP/zfDkP8zvIz/LquB/zehd/9OnnD/ap1p/4CaYP+Pllj/lpJR/5SOTP+LjUz/fpBQ/2qP + VP9Yjln/TJBf/0OVZP86n2z/N6t1/zixd/84rnX/Oa50/zmsc/85rXL/Oaxx/zmqbv85qW3/Oalt/zip + bP84qGr/N6Zn/zelZ/84pmb/OKVk/zikY/84o2L/OKJh/zihYP84oF3/OJ9c/zifWv84oFz/OKBc/zig + XP84n1z/N59b/zefW/84n1v/OJ9b/zefW/84oVz/OKBc/zCEUP8oYEH/Q1ku/4R6G/+9mgv/4rAD//G8 + AP/zvgD/8bwA//C8AP/1vwD/874A/86hBf9LQBv/HR0i/xkZIP8AAAD/AAAA/wAAAP8AAAD/AAAA54B/ + gQCenp8AAAAA/AAAAP8AAAD/AAAA/wAAAP8dFR7/IzMs/y5xTP82qGf/OKtr/zioav85qmz/Oapt/zmp + bf85q2//Oaxx/zmsc/85rnL/Oa51/zmvdv85sXj/ObF5/zmxe/85tH3/ObV//zm1f/85tX//ObaB/zm3 + gv85uYT/ObmF/zm5hv85uof/ObyJ/zm8iv85vIv/Ob2M/zm+jf85vY3/Ob6N/zm+j/85v5D/OcCR/znA + kf85wJH/OcGS/znBkv85wJL/OcCS/zm/kf84wJH/OL+Q/zm/kP82uYv/N62C/z+fdv9Wlmv/dJNi/5CO + WP+ijFL/ppBR/5mTU/9/j1X/XolZ/0GHXv8wjGj/KJdw/yeieP8prn//LrSB/zW5gf84t37/ObN5/zmv + dv84rXX/Oaxz/zmuc/85rXL/Oatv/zmqbv85qG7/Oapt/zipa/84p2j/NqZn/zimZ/84pWX/OKVi/zik + Yf84o2L/OKBf/zihXv84oFv/OJ5a/zigXP84oFz/OKBc/zigXP84oFz/OKBc/zigXP83nlr/OKJc/zee + W/8yhlD/H0c4/zIzI/98XA//26YA//rDAP/8xQD/9sEA//K9AP/yvQD/8bsA//S+AP/0vwD/1KYE/1NG + Gf8fHiH/GRki/wAAAP8AAAD/AAAA/wAAAP8AAAD8eXh7AJGRkgAAAAD/AAAA/wAAAP8AAAD/AAAA/x4X + H/8jNi7/L3ZP/zepaP84q2v/OKhq/zmpbP85qm3/Oapu/zmscP85rXL/Oa1z/zmuc/85rnX/Oa93/zmx + ef85sXr/ObJ8/zm0fv85tX//ObV//zm1gP85t4L/ObiE/zm5hf85uYb/ObqI/zm7if85vIr/ObyL/zm8 + jP85vY3/Ob6O/zm/kP85v5D/OcCR/znBkv85wZL/OcGT/znBk/85wZT/OcKU/znBlP85wZT/OcCT/zjA + kv84wZP/OcKU/zClf/83fGH/X25P/6iXXP/Oq2L/upVV/454SP9rc0v/UX5X/0OHYP89j2j/O5ht/zqe + cf85onP/OKV1/zapd/81q3n/NK56/zeye/84snn/OK93/ziudv85rXT/Oa1z/zmtcv85rHD/Oapu/zmp + bf85qW3/OKlr/zioaf83pmf/OKZn/zilZf84pWP/OKRi/zijYv84oWD/OKFe/zigXP84n1v/OKBb/zig + XP84oFz/OKBc/zigXP83n1v/OKBc/zefW/84pF3/NJBU/yZROf8WGiT/YkoT/8WaB//6xQD/874A//G8 + AP/yvQD/8r0A//K9AP/xvAD/874A//S/AP/ZqgT/WksY/yIgIv8ZGiP/AAAA/wAAAP8AAAD/AAAA/wAA + AP90c3YAAAAAAQAAAP8AAAD/AAAA/wAAAP8AAAD/Hhcf/yQ3L/8veVD/N6lp/zera/83qWv/Oalt/zmq + bv85qm7/Oaxw/zmtcv85rXL/Oa5z/zmudf85sHf/ObJ5/zmyev85snz/ObR+/zm2gP85toD/ObaA/zm3 + gv85uIT/ObmF/zm6hv85uoj/ObuJ/zm8i/85vYz/Ob2M/zm9jv85vo//Ob+Q/zm/kf85wJL/OcGT/znC + k/85wpP/OcGT/znClP85wpT/OcKU/znClP85wZP/N8CS/znBk/85w5X/MaV//zaDZf9Pelr/dpRk/3yS + Yf9uglf/Z3pT/3CGWP91jFr/dYxZ/3KLWP9uiVb/ZoFR/195TP9Wc0r/TnBK/0ZxTP8+eVP/N4Ze/zSa + a/84rnf/N692/zmudP85rXL/Oa1y/zmscP85qm3/Oalt/zmpbf84qWv/OKhp/zenaP84pmf/OKRm/zik + Y/84pGL/OKNi/zihYP84oV//OKBc/zifW/84oFv/OKBc/zigXP84oFz/OKBc/zefW/84n1v/N6Nd/zif + W/8tdUv/GCYq/zApHv+beA3/7rkB//XAAP/yvQD/8LsA//G8AP/yvQD/8r0A//G8AP/zvQD/9L8A/9yt + A/9eTRj/IiAi/xkZI/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAEAAAADAAAA/wAAAP8AAAD/AAAA/wAA + AP8dFx7/JDow/zCAVP84r2z/Oa5s/zipa/84qG3/OKlt/ziqb/85rHH/Oa5z/zmuc/85rXX/Oa93/zmw + eP85snr/ObJ6/zmzff85tH7/ObaA/zm2gP85t4L/ObiE/zm5hf85uob/ObqH/zm6if85u4r/ObyM/zm9 + jf85vY7/Ob6P/zm/kP85wJL/OcGS/znAkv85wZP/OcKU/znClf85wpX/OcOW/znDlv85w5b/OcOW/znC + lf84wpT/OMGT/znBk/82uY3/N6+G/zurgf9CroH/QKh9/z2kef9ApHj/Sql6/0+ref9Sr3r/Ua95/0um + c/9Elmj/Q4he/0V3Uv9UaUT/eWw4/6WNPf99ez7/RHdP/zKhcP84sHj/ObB2/zitc/85rHL/Oa1x/zmr + b/85qm3/Oaht/zeoa/83qGr/NqZo/zilZ/84pWb/OKVk/zijYv84omH/OKFg/zigXv84n1z/OJ5c/zig + Wv84oFz/OKBc/zigXP83n1v/N6Bb/zikXf85p17/LoNR/yBHOf8oIyD/gGQR/9SlBP/5wgD/8r0A//G8 + AP/xvAD/8r0A//K9AP/yvQD/8bwA//K+AP/1vwD/3a4D/19OF/8jISL/GBoj/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAAwAAAAMAAAD/AAAA/wAAAP8AAAD/AAAA/x4XH/8jNi7/LnRN/zamZ/85rm3/Oa9v/zmu + cf85rnD/Oa1x/zmtcv84rXL/OK10/zmudf85r3j/ObF5/zmyef85s3v/ObR+/zm1f/85tn//ObeB/zm3 + g/85uYX/ObqF/zm7h/85u4j/ObuK/zm8i/85vYz/Ob6O/zm+j/85v5D/OcCS/znBk/85wpP/OcGT/znC + lP85w5b/OcOX/znEmP85xJj/OcSY/znEl/85xJf/OMSX/znDl/85w5b/OcOV/znImP84y5r/NMua/y/F + lv8uw5T/L8ST/zDEk/8ww5H/Lr6P/yqxhP8tpHr/O5xx/02Zav9clGH/aIhU/3l9Rv+bgTz/u5xA/4aG + Q/9Gf1T/MqNy/zexeP85sHf/OK50/zmtcf85rXL/Oaxw/zmqbv85qWz/OKls/zipa/83p2n/N6Zm/zim + Z/84pmX/OKRj/zijYv84omH/OKFf/zigXf84n1z/OJ9b/zigXP84oFz/OJ9b/zefW/83oFv/NpxZ/zCC + T/8qVDr/Pz0h/4BjEP/TqAX/9cIA//fAAP/xvAD/8LsA//G8AP/xvAD/8r0A//K9AP/xvAD/874A//W+ + AP/drgL/X08X/yMhIv8YGiP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAADAAAAAQAAAP8AAAD/AAAA/wAA + AP8AAAD/Hhog/yEqKP8oTzv/L3pR/zGQXv80nmb/OKZs/zirb/85r3L/Oa9z/zivdP85r3b/ObB2/zmw + eP84sHn/ObF6/zmzfP85tX//ObV//zm1gP85uIL/ObiE/zm5hf85uob/ObqI/zm8if85vIv/Ob2M/zm9 + jf85vo//Ob+Q/znBkv85wpT/OcKU/znClP85w5X/OcSW/znFmP85xZn/OcWZ/znGmf85xpr/OcaZ/znH + mv83xpn/N8aa/zfFmP82w5f/NsKV/zbBlP82wZP/NsCS/ze/kP83vI7/N7yN/ze6iv80q4D/NYdl/0Vv + Uf9mcUv/hn5K/5iHSf+cjEn/lZJM/4aYU/9nlVn/SJxo/zipdf84snr/OLF4/zmvdv85rnT/Oa1y/zmt + cv85q3D/Oalv/zmpbf85qm3/Oapr/zioaf82p2f/OKVn/zimZf84pGT/OKNj/zijYv84ol//OKFd/zig + W/84nlv/OKBc/zigXP83n1r/OKFc/zaeWv8zhlD/I0s4/y4uIv9rTxH/y50F/+q9Af/zwQD/9b8A//S/ + AP/zvQD/870A//K9AP/xvAD/8bwA//C7AP/yvQD/9b8A/9ytA/9eThj/IyEi/xkaI/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAAGRkJIAAAAA/wAAAP8AAAD/AAAA/wAAAP8eHSH/IyIl/ykpLP8nLi3/Ijgw/yNN + Ov8qakr/MoZb/zWdaf84rHL/ObN3/zm0eP84s3r/ObF5/zixef85snr/ObN9/zi1f/85tYD/ObaA/zm4 + g/85uIT/ObmF/zm6h/85u4n/ObyJ/zm8i/85vYz/Ob6N/zm/j/85v5H/OcGS/znClP85wpT/OcKV/znD + l/85xJj/OcWZ/znFmf85xpr/OMea/zjHm/84x5z/OMqd/zfLnv80xpv/ML2T/y+wiv8wp4L/MqB8/zab + d/87mXX/Qpdy/0eSbf9GjGj/QYBg/0NpT/9qZkP/jnNE/5WBTP97f07/YYNU/02OYP8/nW3/N6h3/zSv + ff81s37/OLN8/ziyef84sXj/Oa92/zmudP85rXL/Oa1y/zmscf85qm//Oalt/zmqbf85qmv/OKhp/zen + Z/84pmf/OKZm/zilZP84pGP/OKNi/ziiYP84oV7/OKBc/zifW/84oFz/OKBc/zefW/83oVv/N5pZ/zB5 + S/8nUzr/Lz4r/0c/Hf9mThT/k3IN/8udBf/xvAD/+sQA//nCAP/2wAD/870A//G8AP/yvQD/8bwA//O+ + AP/0vwD/26wD/1xNGP8iICL/GRoj/wAAAP8AAAD/AAAA/wAAAP8AAAD/amlsAJaWmAAAAAD8AAAA/wAA + AP8AAAD/AAAA/xoaHv8qKCz/RkJF/1VQUv9FQUT/MTQ1/yUwLf8gNS7/Ikc3/yhfRf8ueVb/M5Rm/zeo + c/85tHv/Obl+/zm3fv85tX7/OLR+/zi1gP84toH/OLeD/zi4hP84uIb/ObmH/zm7iv85u4r/Ob2L/zm+ + jf85vo//Ob+R/znAkv85wJL/OcGT/znDlv85xJf/OcWY/znFmf85xpr/Ocab/znHm/84y5//NMyh/y3E + m/8wuZL/O6mF/0iXdv9Vh2j/Yn9g/2p9Xf9ve1r/c31a/3eCW/97iF7/f41h/3eLX/9ifVj/VnZV/12A + Wf9djGH/TpVo/0Gecf86qHj/Nq9+/zSzgP8ztYH/NLWB/za1f/84s3z/OLF5/zmxef85r3b/Oa91/zms + c/85rXP/Oaxx/zmqb/85qW3/Oapt/zmqbP84p2n/N6Zn/zimZ/84pmb/OKVk/zikY/84o2L/OKJg/zih + Xv84oFz/OJ9b/zigXP84oFz/N6Bb/zefW/83nlv/NZZX/zSPVP8zgk7/MGlC/yxHMv80NyX/WEcY/4dm + Df+0hwb/1KIC/+y2AP/5wgD/+cMA//O+AP/xvAD/874A//S/AP/XqAP/WEgY/yEfIf8ZGCL/AAAA/wAA + AP8AAAD/AAAA/wAAAPx3dnkAoqKkAAAAAOcAAAD/AAAA/wAAAP8AAAD/GBcb/y0rL/9UUlP/dXJx/2tl + Z/9ZUlX/SEFF/zkzOP8tKy7/JC0r/yE3L/8jSjr/KWJJ/y99Wf80mWv/N7B6/zm7gv85vYT/Or6F/zq+ + hv86wIn/OsGJ/zm/iv85vYr/ObyK/zi8iv84vIz/Ob2O/zi+kP84v5H/OMCS/znBk/85wpT/OcSX/znF + mP85xZn/OcWa/znHnP84yJ3/OMmf/zfDm/8/uZL/UqyH/1iWdv9Uf2T/WHhd/2aAYf9sgWH/bYRi/2yH + ZP9pjGf/Z5Rr/2Wdcf9mpXb/Yad3/1Ohdf9Ionf/Qql8/zitgP8vr4L/LraG/zK7iP81vYf/OLuE/zm4 + gv85tX//OLR+/zmyfP85snr/ObF4/zmwd/85r3b/Oax0/zmsc/85rXL/Oatu/zmobP85qm3/Oapt/zio + av83p2j/OKdn/zimZ/84pmP/OKVi/zijYv84omH/OKFf/zigXf84n1v/OKBc/zigXP84oFz/N59b/zig + XP84o13/OaZe/zaiXf8wk1j/KXhP/yFeRf8nUDr/OlEv/1ZcJf9zZxr/iW8R/6OBDP/GnAf/7LgB//O+ + AP/1vwD/874A/9KkBP9RQxr/Hh0i/xgYIP8AAAD/AAAA/wAAAP8AAAD/AAAA53x7fgCvr7EAAAAAywAA + AP8AAAD/AAAA/wAAAP8XFhn/Kiks/1FPUP99e3n/gH18/3t4d/9zcHD/ZWJi/1JNT/8+ODz/LiYs/yQd + JP8gISP/ITIt/ydWQv8ugV3/M55w/zSldf80pnb/NKV2/zWpev82rn3/OLaE/zi9iv85v4z/OcGO/znB + j/85wZH/OcKT/znDlP85w5T/OcKU/zjDlf85xJj/OcSZ/znFmv85xpz/Ocie/zfKn/82zKL/NbKP/02X + eP+Dk3L/i35h/25qU/9Ycln/VpNx/0ygfP9FqoT/QK+I/zqziv81t4z/MruQ/zG/kv8ywZP/M8GS/zPB + kf80wZD/NsGO/zrAjP85vIj/ObqF/zi4hP85t4L/ObaA/zm1gP85tX//ObR+/zmye/85sXn/ObB4/zmu + dv85rXT/Oa1z/zmtcv85q2//Oalt/zmqbf85qm3/OKlr/zeoaf84pmf/OKZn/zimZP84pWP/OKNi/zii + Yf84oV//OKBd/zifW/84oFz/OKBc/zigXP84oFz/OKBc/zifW/83n1v/OKBc/zikXf85pl//OKFc/zKR + V/8ofVH/IWRI/x9DN/8nLCX/T0AZ/5l5Dv/mtAH/874A//fAAP/yvQD/yp8G/0g9HP8bGyP/Fxce/wAA + AP8AAAD/AAAA/wAAAP8AAADLg4KFALe4ugAAAACoAAAA/wAAAP8AAAD/AAAA/xQTFv8nJin/TUpL/398 + ev+Cf3z/fXp4/3x5dv96d3X/d3Rz/3BtbP9hXl//TEpM/zUyNf8iHSL/HBke/x8qKP8kRzv/JlRC/yZU + Qv8mUkH/JlVF/yljTv8vgmP/NKJ5/ze2hv84wI7/OMCO/ze/j/84wJH/OcWW/znFlv84xJb/OMSX/znF + mf85xZn/OMab/zjInf85yp//OMug/zbNov8zqIb/S4Vr/4GPcP+GiGj/a3Vb/09yW/9CiW3/N6SB/zW7 + k/82x5v/OMiZ/zfFl/84w5X/OMGT/zjAkv84vo//OL6O/zi9jP84vIv/ObuJ/zm7h/85uob/OLmE/zm4 + gv85toH/ObWA/zm1f/85tH7/ObJ7/zmxef85sHj/Oa92/zmtdP85rXP/Oa1y/zmrb/85qW3/Oapt/zmq + bf84qWv/N6hp/zimZ/84pmf/OKZk/zilY/84o2L/OKJh/zihX/84oF3/OJ9b/zigXP84oFz/OKBc/zig + XP84oFz/OKBc/zefW/84oFz/N59b/zigXP83oVv/OKVd/zeiXP8yi1P/JFQ+/zY6Jf90WhL/w5kG/+66 + AP/zvQD/+MEA//C7AP+/lgj/PzYd/xkaI/8VFRr/AAAA/wAAAP8AAAD/AAAA/wAAAKiVlZcAycnJAAAA + AIAAAAD/AAAA/wAAAP8AAAD/EA8S/yQjJ/9HRkf/gH18/4aDgP+Cf3v/gH16/316eP98eXj/end2/3Z0 + c/9xb27/ZWRj/1BMTv86NTj/Kycs/yooLP8qKy3/Kist/ygoK/8jIyf/HSAj/x0pKP8hPTb/JllI/ypx + Wf8qcFn/KWpU/ytyWv8xknL/NbCH/zjElv85y53/Ocea/zjFmf84x5v/OMqf/znOo/840qb/OM2j/zq5 + k/8/n3//Rotv/013Yf9QZlP/XGJN/3BuVf99iGf/U5Z1/zeviv83yJv/N8OV/znClP85wZP/OcCR/zm9 + jv85vY3/ObyL/zm7iv84uoj/OLqH/zi5hf84uIT/OLeC/zi2gP84tX//OLR+/zmzff84sXr/OLB5/ziw + d/85r3X/Oa1z/zmtcv85rHH/Oapv/zmpbf85qWz/Oals/zioav83p2j/OKVn/zilZ/84pWX/OKRk/zii + Yv84oWD/OKBf/zifXP84nlr/OJ9b/zifW/84n1v/OJ9b/zifW/84n1v/N59c/zefW/83n1v/N59b/zef + W/84pF3/NpdX/y1tR/8fNC//VEMZ/6uBCP/wuwD/+8QA//S/AP/4wQD/7bgA/7GLCf83MB3/GBkj/xER + Ff8AAAD/AAAA/wAAAP8AAAD/AAAAgKOjpQDW1tYAAAAAVwAAAP8AAAD/AAAA/wAAAP8LCw3/IiEl/0FA + Qv+AfXz/ioeF/4eEgf+EgX7/gX58/398e/9+e3n/fXp4/3x5eP95d3X/cG1t/2NgX/9XVFX/VU5Q/1NM + Tv9SS07/T0dL/0Y/Q/84MTb/LSYr/yUhJv8jJyn/JjQy/yYzMv8jLSz/Hy0r/yI9Nv8mV0n/LHpi/zOl + gv85yp3/OtCi/znSo/850aT/OMyh/zW9lv8woIH/WqOB/4Cog/9sjXD/QXhi/z57ZP9Phmr/XpFw/2ul + ff9PrYb/Or6T/zjNnv84x5j/OcOV/zjBk/84wJL/OcCQ/znDkf85xJH/OcOQ/znDjv85wo3/OsKL/zrB + iv85v4j/Ob6G/zm9hP85u4L/ObqB/zm3fv85tnz/ObR6/zmyd/84r3X/Oa5z/zmtcv85rHH/Oaxv/zmr + bf85q23/N6lr/zaoaf83pmb/N6Zm/zemZP83pWP/N6Nh/zijYf84omD/OKFd/zigW/84oVz/OKFc/zih + XP83olz/OKJc/ziiXP84oVz/OKJc/zijXf84o13/OKNd/zimXv84n1v/M41U/y1xSP9Dazj/a3Il/52F + Ef/RowL/7bcA//zCAP/oswD/n30J/y4qH/8XGCP/DQwO/wAAAP8AAAD/AAAA/wAAAP8AAABXuLi5AOPj + 5AAAAAAwAAAA/wAAAP8AAAD/AAAA/wYFBv8fHyL/OTg7/357ev+Oi4n/jImH/4iFg/+FgoD/hIF//4J/ + fP9/fHr/fXp4/315eP98eXj/e3h2/3h2dP92c3H/c3Fv/3Jvbv9vbWv/aGZl/11bW/9PTU7/Qz9C/zs1 + Of89NDn/PTM4/zYtM/8sIyn/JRsh/yAaIP8hLi3/KGFS/zKkg/80to//M7ON/zGlhP8ukXb/KXRg/yNY + TP9UcFv/kJFy/5SMb/9XjHD/PKiF/zq/l/87wZf/PbuS/zirh/81rIf/NruQ/zjElv85xZb/OMaW/zjF + lf84wZH/N7yM/ze3if82tIb/NrSE/zaygv83soD/N7B//zavff83r33/N698/zeve/82r3r/OK95/zix + ef85snn/OLJ4/ziydv85snX/ObB0/ziucf85rG//Oa1u/zmub/85rW3/OKxr/zmraf85q2n/Oatn/zmq + Zv85p2T/OKdj/zilYv84pF//OKJc/ziiXf84ol3/OKJd/zejXf84ol3/OKJd/zigW/83oFv/N59b/zWd + Wv80m1n/MZpX/zGZV/8wmlf/L5ZW/yWAT/8gXUD/N0ko/35lEf/RpBP//Mka/+K2HP+LcRr/JyUh/xYX + Iv8GBgb/AAAA/wAAAP8AAAD/AAAA/wAAADDOzs8A3NvcAAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/xwc + IP8yMDT/d3V1/5KPjP+Sj43/jYqI/4qHhf+IhYP/hoOB/4SBf/+Cf33/gX57/357ef98eXj/end2/3h1 + dP91c3H/c3Fv/3Jvbv9wbWz/b21r/2xqaf9pZmX/ZGJh/2NhYf9hXl7/WllZ/1BPT/9DQkP/Mi0x/yMa + If8eJyj/JlNI/ylsWf8oYlP/J0xE/yY1NP8hHyP/HB0i/yE6Nv9GY1P/gYNq/26dff9EwZj/L9Om/zPB + mP8tlHf/J2JS/yhcTf8tfWT/Mp57/zWshf82tYv/NrWK/zSmf/8wkG//LoFl/y16X/8teF3/LXZb/yx1 + Wf8sc1f/LHNX/y12Wf8telr/LXxb/y5/XP8whV//MYxj/zOTZ/80m2n/NaBs/zWjbP81oGv/NJhl/zOT + Yf8zmWP/NJtk/zScZP80nGP/NJ1i/zWeYf81nmD/NJxf/zSZXf8zl1z/M5Ra/zKSV/8zkFT/Mo1T/zKM + U/8xjFL/MotT/zKJUv8xiFL/MYZQ/zCET/8vgU7/Ln1L/y15Sv8sd0n/LHRH/yxwRf8ubkb/L3RJ/zFs + Sv81VkX/Tkk8/7qeT//412P/3MBe/3NlPP8jISL/Fxgf/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAEODg + 4ACIh4oAe3p9AAAAAP8AAAD/AAAA/wAAAP8AAAD/Ghgd/yspLf9ta2z/k5CO/5iVk/+Sj43/kI2L/46L + if+MiYf/iYaE/4eEgv+FgoD/g4B+/4F+e/9/fHn/fXp4/3t4dv94dXT/dnNy/3Nwb/9xb23/b21r/25r + av9saWj/aWdm/2ZkY/9kYmH/YV9f/15cW/9TUlL/Ojc5/yUjJ/8jIib/KSot/zIyNP8/PD7/RkJF/zs4 + O/8lIyn/ICAk/z89N/95cFr/c3xk/0KHbf8khmz/LWxa/y0/PP8kJCf/Hh0h/x0lJ/8gNjL/I0U9/yVU + Rv8lVUf/JEQ7/yMyL/8iKSr/Iycp/yMmJ/8iJij/IiYo/yElJv8gJSb/ICUn/yAmJ/8fJyb/Hygn/yAr + Kf8hMS3/Izgx/yVANf8nSDr/J08+/yhMPP8kQDX/Hjkw/xs9Mf8bPzL/HEE0/x1ENP8dRjX/Hkc1/x5H + Nf8dRjT/HEMy/xxBMf8bPi//Gzwt/xs5LP8aNir/GjUq/xkzKf8ZMyn/GjIo/xovKP8eMSr/IjMs/yc2 + Lv8wPDP/Pkc7/05TRf9eYU7/bWxX/3dzXf+CfWT/mZJz/7aqhv/LuZL/69Si//3nrv/SvpL/W1NI/x8f + Iv8XFxz/AAAA/wAAAP8AAAD/AAAA/wAAAP/y8vIA7u7uAJubnQCgoKIAAAAAxQAAAP8AAAD/AAAA/wAA + AP8TExb/JSQo/2BeX/+TkI7/n5ya/5aTkf+UkY//ko+N/5CNi/+Oi4n/jImH/4qHhf+IhYP/hYKA/4OA + fv+Bfnz/f3x6/357eP97eHb/eHV0/3Zzcv90cXD/cm9u/3BtbP9ta2r/a2hn/2lnZv9nZWT/ZmNj/2Jg + X/9VU1P/SUZH/0U/Qv9IQUT/T0hK/1RPUP9XU1P/VlNS/1xWT/9oXlL/c2dX/3BnV/9GQjv/LDk2/y9D + QP9CS0n/S0ZH/0M9P/85Mjb/MCsv/ysoK/8oKCr/LC8x/zM3OP87Ojv/Pjk7/z85O/9AOTv/QDk8/z85 + Pf9AOj3/Pjk8/z04PP8+ODz/Pzo8/z44Ov85Mzf/My0x/ygkKP8hHyP/IB8i/yEhJP8eIST/GBsg/xkZ + H/8rKCn/SEM7/0dEPP9EQTv/QUA4/z8+N/9APzf/QkE5/0VDOv9HRTz/S0g9/09KQP9TTUH/Vk5D/1hR + Rf9ZU0b/XVVI/2FZSv9nX07/cGdV/3xxW/+Ie2L/loZq/6aTdP+0oX7/wa6H/8u3jv/Sv5P/18KW/9vG + mf/lz5//8tum//ngq//947D/++Ox/8Cui/9CPjv/Hh0h/xQTF/8AAAD/AAAA/wAAAP8AAAD/AAAAxZST + lQDy8vIAzs7PANXV1gAAAAB8AAAA/wAAAP8AAAD/AAAA/wwMDv8hHyT/TkxO/5COjP+koZ//m5iW/5mW + lP+XlJL/lZKQ/5OQjv+Rjoz/j4yK/42KiP+Kh4X/iIWD/4aDgf+EgX7/g4B8/4B9e/99enn/e3h3/3l2 + df92c3L/dHFw/3Jwbv9wbWz/bmtq/2tpaP9pZmb/Z2Vk/2VjYv9iYGD/YF5d/15dXP9eXFv/W1pZ/2Ff + Wv95cWX/e3Rl/3pzZf9ybWH/XVlT/zo2OP84LzT/Rz1B/1ZOUP9cWVj/WVhX/1NSUf9NSkv/R0NE/0M9 + QP9GP0L/TUZI/1RPT/9WU1P/V1VU/1hWVP9XVlT/WFZV/1hXVv9ZV1f/WFdW/1VTU/9QTk3/SEZG/z89 + P/82Mzb/JiQp/xsZH/8WExr/FBAZ/xMPGf8bFh7/RT03/4BzXP+pmXb/qpl2/6eUc/+kkXD/oo5v/6KO + b/+kkHD/p5Ry/6qXdf+tmnf/sZ15/7ShfP+4pH3/uqeA/7upgf++rIT/wrCG/8i1if/QvY//2MWU/+LM + mf/s057/9tyk//ziqP//56z//+mu///qrv//6a7//+qu///nrP/95ar//eKo//7lqv/x2KH/p5Z0/y4r + K/8dGyD/DQ0P/wAAAP8AAAD/AAAA/wAAAP8AAAB8bm1wAPHx8QDs7OwA1dXWAAAAADcAAAD/AAAA/wAA + AP8AAAD/AwME/x4cIf87Oj3/iIaF/6ekov+hnpz/npuZ/52amP+bmJb/mJWT/5aTkf+UkY//kY6M/5CN + i/+Oi4n/i4iH/4mGhP+HhIL/hYKA/4OAfv+Bfnv/f3x5/3x5d/96d3X/d3Rz/3Vycf9zcG//cW5t/25s + a/9samn/amhn/2lnZv9nZWP/Y2Fg/15cXP9aWFj/ZmJa/4yBbP98dWb/ZmJc/1hXVv9TUlL/U1JR/1lW + Vv9dWlr/XFpZ/1pZV/9bWlj/XVtZ/11bWv9dW1r/XVta/11bWv9eXFr/XVtZ/1xaWf9bWVj/XFpZ/1xa + Wf9dW1r/XVta/1xaWf9WVFP/SUhI/zw6PP8vLjH/JiYq/yEgJv8dHSL/HR0h/yEgI/8nJSf/Mi4u/1VO + Qv+hkW//59Ob//7rq///6qr//+ip///nqP//56n//+ep///nqP//6Kn//+mq///pqv//6an//+mq///q + qv//6qr//+qq///qq///6qr//+qq//7pqv/+6Kn//uap//7kp//94qX/++Gk//rfo//53qL/+N6i//jd + of/43qL/+N2h//fcof/43aL//uao/97Klf+Ie2D/Hx4i/xsbIf8EBAT/AAAA/wAAAP8AAAD/AAAA/wAA + ADeXl5gAAAAAAOzs7ABwb3EAAAAACgAAAP8AAAD/AAAA/wAAAP8AAAD/HRwf/ywrLv97eXj/pqKg/6il + o/+joJ7/oZ6c/5+cmv+cmZf/mpeV/5iVk/+VkpD/lJGP/5KPjf+QjYv/jYqI/4uIhv+JhoT/h4SC/4WC + f/+DgH3/gH17/357ef99enf/end2/3h1dP91cnH/c3Bv/3Fubf9vbGv/bWpp/2toZ/9oZWT/ZmNi/2Be + XP9hXVr/d3Bj/4d+bP+QhnL/h35s/2lkXP9bWVf/WVdX/1tZWP9bWVj/WlhX/1tZWP9bWVj/W1lY/1tZ + WP9bWVj/W1lY/1tZWP9bWVj/W1lY/1pYV/9bWVj/XFpZ/1xaWv9bWVj/Tk1N/zg3Of8iICX/GRge/xUU + G/8UFBv/GRkf/ywqKv9MRjz/bWNO/41/Yf+unHT/1r+K//HZm//74qH/+t6f//nenv/53Z//+t6f//rf + n//63p//+d6f//rdn//63p//+d6f//nen//43p7/+d2e//nenv/53p//+d6e//nenv/53p7/+d6e//nd + nv/53Z7/+d2e//ndnv/53Z3/+d2e//ndnv/43Z7/+N2e//jdn//43J7/+Nye//ndn//+5qT/x7WE/2de + TP8XGB7/Gxof/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAACry8vQAAAAAA7OzsAIeGiACPjpEAAAAA1gAA + AP8AAAD/AAAA/wAAAP8UFBb/Hx8i/2hmZv+gnJv/sK2r/6ilo/+loqD/o6Ce/6GenP+fnJr/nZqY/5qX + lf+ZlpT/l5SS/5WSkP+TkI7/kI2L/46Lif+LiIb/ioeF/4iFg/+FgoD/g4B+/4J/fP9/fHr/fnt4/3t4 + dv95dnT/dnNy/3RxcP9yb27/cG1s/25rav9nZGL/bGdh/3x0Z/+Hf3D/k4l1/56Sef+UiXP/b2hf/1tY + V/9YVlb/WlhX/1pYV/9aWFf/WlhX/1pYV/9aWFf/WlhX/1pYV/9aWFf/WlhX/1pYV/9cWlj/XVxa/1xa + Wf9WVFT/S0pL/z48Pv8rKy//Ghsh/xUVHP8nJSb/Qz42/2BXRf99cVX/p5Zt/8i0gf/bx4z/5dCT/+7X + l//53Zv/+96c//ndm//425r/+Nua//jbmv/425r/+Nua//jbmv/425r/+Nua//jbmv/425r/+Nua//fb + mv/425r/+Nua//jbmv/425r/+NuZ//jbmv/425r/+Nua//jbmv/32pn/+Nua//rdmv/53Jr/99qZ//jb + mv/425r/+Nua//famf/325r/+dyb//7hnv+tm3H/RkA4/xgYHv8UFBb/AAAA/wAAAP8AAAD/AAAA/wAA + ANbp6eoA3t7fAAAAAAAAAAAAtbS2AL+9wAAAAAB2AAAA/wAAAP8AAAD/AAAA/wkJCv8aGR3/UE5R/5OQ + kP+3tLL/raqo/6qnpf+opaP/paKg/6Ognv+in53/oJ2b/56bmf+cmZf/mZaU/5iVk/+VkpD/k5CO/5CN + i/+Oi4r/jImI/4qHhf+IhYP/h4SB/4SBfv+DgHz/gH17/357eP98eXb/eXZ1/3d0c/91cXH/c3Bv/2to + Z/94cmn/jYNx/4J7b/9+d23/fnds/3lzaP9mY17/XVta/1pYWP9bWVj/WlhX/1pYV/9aWFj/W1lY/1tZ + WP9bWVj/WlhX/1pYV/9bWVj/XFpZ/1hWVf9PTk3/RURE/zo4Ov8sKy//Ghsi/xkYH/8zLyz/ZlxI/5CA + X/+vnXH/xbJ+/9jCh//v1ZP//eCa///knf/+45z//eGb//vdmP/42pb/99mW//falv/32pb/99qW//fa + lv/32pb/99qW//falv/32pb/99qW//falv/32pb/+NqW//falv/32pb/99qW//falv/32pb/99qW//fa + lv/42pb/99qW//bZlv/32Zb/9tmW//jblv/425f/99qW//fZlv/42pb/9tmV//jal//73Jj/8NOS/41+ + Xf8rKCn/Gxog/wkJCv8AAAD/AAAA/wAAAP8AAAD/AAAAdv7+/wD19fYAAAAAAAAAAADc29wA6OfoAAAA + ACUAAAD/AAAA/wAAAP8AAAD/AAAA/xoZHf84Njr/gX5//7m2tP+0sa//sK2r/62qqP+qp6X/qKWj/6ek + ov+loqD/o6Ce/6GenP+em5n/nJmX/5qXlf+YlZP/lZKQ/5OQjv+Rjoz/j4yK/42KiP+LiIb/iYaD/4eE + gf+EgX//gn98/4F+ev9+e3n/fHl4/3p2df93dHT/c3Bv/3x3cf+IgHT/dG9q/2hlZP9iYGL/YWBg/2Fg + YP9iYF//YF1d/11bWv9bWVn/WlhX/1tZV/9aWFf/WlhX/1pYV/9aWFf/W1lY/1lXVv9SUE//Q0FD/zEw + M/8iIif/Ghog/xoZHv8hHyL/RD42/4V4WP/OuYD/8tWS//7hmv//5Zv//+Sa//3fl//62pT/99iT//fY + kv/32JP/99mT//fZk//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//jZ + k//42ZP/+NmT//jZk//42ZP/+NmT//jZk//42ZP/+NmT//fZk//42ZP/99mT//TWkv/awIT/58uL//ja + lP/42pT/99iT//fZk//22JL/+duU//vel//SuoH/amBK/xoZH/8dHCL/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAAl5eXlAP7+/gAAAAAAAAAAAPT09ADz8/QAvb2+AAAAAPcAAAD/AAAA/wAAAP8AAAD/EhET0SMi + Jv9pZmj/sK2t/7q3tf+2s7H/s7Cu/7Ctq/+uq6n/rKmn/6mmpP+npKL/paKg/6Shn/+hnpz/n5ya/52a + mP+al5X/mZaU/5eUkv+UkY//ko+N/5CNi/+Nioj/i4iG/4mGhP+HhIL/hYKA/4OAfv+Cf3z/f3x5/316 + eP97eHb/eHV0/3Zzcf90cXD/cW9t/29sa/9tamn/amhn/2hmZf9mY2P/Y2Bg/19dXf9eXFv/XFpY/1tZ + V/9aWFf/W1lY/1xaWf9aWFf/TUtM/zQzNf8hICX/GBge/xcXHf8gICP/PDcx/25iSv+wnG3/6M+L//rg + lf/73JP/+NmQ//fYkP/42ZD/+NmQ//jYkP/42JD/99iQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jY + kP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jYkP/42JD/+NiQ//jY + kP/42JD/99eQ//jYkP/62pD/8dSM/6GOZP+6o3H/7dCL//rbkf/32ZD/99eP//fYj//625H/+d2S/6mX + av9JQjj/ExQc/xYVGP8AAAD/AAAA/wAAAP8AAAD/AAAA97CvsQCqqasA/v7+AAAAAAAAAAAA9/f3AJua + nACWlZcAAAAAhgAAAP8AAAD/AAAA/wAAAP8AAADCGRgc/k5NT/+amJn/wL69/7u5uP+3tLP/tLGx/7Kv + rv+xrqz/r6yq/6ypp/+ppqT/qKWj/6WioP+joJ7/oZ6c/5+cmv+dmpj/m5iW/5iVk/+Wk5H/lJGP/5GO + jP+QjYv/jouJ/4uIh/+JhoX/h4SC/4aDgP+DgH3/gX58/398ev99enj/end1/3h1dP92c3H/dHFw/3Fv + bf9ubGv/bWpp/2toZ/9oZmT/ZWNi/2NhYP9gXl3/Xlxb/11bWv9dW1r/WFZW/0ZERf8sKy//Fhcf/xcX + Hf8zMSv/XlVB/419WP/AqHD/38aC//HVi//62o3/+NmN//jXjP/414z/99eM//fXjP/314z/99eM//jX + jP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jX + jP/414z/+NeM//jXjP/414z/+NeM//jXjP/414z/+NeM//jXjP/31oz/+NeM//zbjv/y04n/eWxO/3xu + UP/ErXT/++CQ//fZjP/21ov/+NeM//vbjf/v0Yj/fG5R/y0qKv8WFx7/CAgJ/wAAAP8AAAD/AAAA/wAA + AP8AAACG39/gANPT1AD+/v4AAAAAAAAAAAD29vYAq6qsALa2twAAAAAlAAAA/wAAAP8AAAD/AAAA/wAA + AP8UExfENTQ3/3l4ef/Bv77/wb69/7u5uP+5t7b/t7W0/7azsv+0sLD/sq+t/6+sqv+uq6j/q6im/6il + o/+mo6H/o6Ce/6Kfnf+gnZv/npuZ/5yZl/+al5X/l5SS/5WSkP+TkI7/kY6M/4+Miv+Nioj/i4iF/4iF + g/+Gg4H/hIF//4J/fP+AfXr/fnt4/3t4dv95dnX/d3Rz/3RxcP9yb27/cG1s/25rav9raWj/aWdm/2Zk + Y/9mZGT/ZmRk/11bWv8/P0D/ISEp/xoaIf85NC3/cmVI/6aTYf/Js3T/4Md///bWh//93Yv/+9yK//nY + iP/21of/9taH//fXiP/314j/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fX + iP/314j/99eI//fXiP/314j/99aI//fWiP/31oj/99eI//fXiP/314j/99eI//fXiP/314j/99eI//fX + iP/314j/99eI//bWh//314j//NqK//HQhf84MST/RD40/4h5VP/y1Yf/+NmJ//fWiP/62or/99iJ/8+0 + df9TSjv/Gxsh/xoZH/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAACWamZwA4+PkAAAAAAAAAAAAAAAAAAAA + AADg4OAA6urpAM7OzgAAAADiAAAA/wAAAP8AAAD/AAAA/wcHCbEhICX/VlVW/7Oxsf/Fw8L/w8C//767 + uv+8urn/uri3/7i1tP+2s7L/tLGw/7Kvrf+wrav/raqo/6uopv+opaP/p6Si/6WioP+joJ7/oZ6c/5+c + mv+cmZf/mpeV/5iVk/+VkpD/k5CO/5GOjP+QjYv/jYqI/4uIhv+JhoT/h4SB/4WCf/+DgH3/gH17/357 + ef98eXf/eXZ1/3d0c/91cnH/c3Bv/3Fubf9wbGv/bmtq/2dlZP9bWVr/SEZI/yEiKP8dHCD/SEA0/5WD + V//UunT/99iF///hi//+34n/+9qG//jWhP/21IP/9tWE//fVhP/31YT/9tWE//bVhP/21YT/9tWE//bV + hP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YP/9tWE//fWhP/41oT/+NeE//fW + hP/31oT/9tWD//bVhP/21YT/9tWE//bVhP/21YT/9tWE//bVhP/21YT/9dSD//fWhP/72IX/2bx1/xQR + Df8iISP/T0c4/8mvcP/214T/+tiF//3bh//sz4H/moda/zQwK/8VFh3/EBAS/wAAAP8AAAD/AAAA/wAA + AP8AAADif36AAHp5fADf3+AAAAAAAAAAAAAAAAAAAAAAAPr6+gDx8fEA39/fAAAAAGEAAAD/AAAA/wAA + AP8AAAD/AAAA/xgXHP84Nzr/kpGR/8bEw//Mycj/w8C//8G+vf++vLv/vLq4/7q3t/+4tbX/trOz/7Sx + r/+yr63/sK2r/62qqP+rqKb/qaak/6ekov+loqD/o6Ce/6Cdm/+em5n/nJmX/5mWlP+XlJL/lZKQ/5SR + j/+Sj4z/j4yK/42KiP+LiIb/iYaE/4eEgv+EgX//g4B9/4F+e/9+e3n/fHl3/3p3df94dXT/dnNy/3Vy + cf9vbGv/VVRU/zU1Of8lJSn/JCMk/1hPOv+rlWD/89KA//zchP/62IL/99OA//bTf//303//99OA//fT + gP/304D/99OA//fTgP/204D/9tOA//fTgP/304D/99OA//fTgP/304D/99OA//fTgP/304D/9tOA//bT + gP/204D/99SA//fUgP/41YH/+NWA//nVgf/51oH/+NWA//nWgP/41YD/9tOA//bTgP/204D/9tOA//fT + gP/304D/99OA//fTgP/20n//+NWA//rWgf+ullz/LCcc/xkZH/8oJib/hHRO/+jKev/82oL//NmC/9e6 + dP9eUz7/IiEk/xgYH/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAGG/v8AAubm6AAAAAAAAAAAAAAAAAAAA + AAAAAAAA/Pz8AK6urwCwsLEAAAAACgAAAP8AAAD/AAAA/wAAAP8AAAD/EA8T/yYlKf9hYWP/vbu6/9LP + zv/Jx8b/xsPC/8TBwP/Cvr3/v728/727uv+8ubj/uba1/7e0s/+2srH/s7Cu/7GurP+vrKr/rKmn/6qn + pf+opaP/paKg/6Shn/+in53/n5ya/52amP+bmJb/mZaU/5eUkv+VkpD/k5CO/5GOjP+PjIr/jImH/4mG + hP+IhYP/hoOA/4OAff+Bfnv/gHx6/398e/9/fHr/d3Rz/1lXV/8wLzP/ExMc/x8eIv94aUf/yrBq//TV + ff/51n7/+NN9//bSe//303z/9tJ8//bTfP/203z/9tN8//bTfP/203z/9tN8//fTfP/303z/9tN8//bT + fP/203z/9tN8//fTfP/303z/99N8//bTfP/20nv/99N8//fTfP/6137//Nl///vZf//20nz/8M15/+7L + eP/xz3r/+dZ9//zYf//51n7/99N8//fTfP/20nv/9tN8//fTfP/303z/99N8//bSe//51X3/+dZ9/3po + P/88NSf/Gxsg/xcXH/9EPTH/wKVm//bYf//w03v/rJRd/zAtKf8bGiD/ExIV/gAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAACuzs7QHo6OkAAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/sA09PUANzc3QDX19gAAAAAkQAA + AP8AAAD/AAAA/wAAAP8BAQH/HRwg/zc3Ov+dnJv/09HQ/93c2v/U0tH/zszL/8nGxf/EwsH/wb++/8C9 + vP++u7r/vLm4/7q3tv+3tbP/trOy/7Sxr/+xrqz/r6yq/62qqP+qp6T/qKWj/6ajof+koZ//op+d/6Cd + m/+em5n/m5iW/5mWlP+XlJL/lZKQ/5OQjv+Rjoz/jouJ/4yJh/+Kh4T/iIWD/4eEgv+JhoP/gn99/2xq + aP9MSkz/LCwx/yIgJP82MSr/bV9B/8qvZ//31Xn/+9h7//fTef/20Xf/9tF4//fSeP/30nj/99J4//fS + eP/20nj/9dF3//bReP/20nj/99J5//fSeP/20nj/9tF3//XReP/20Xj/99J4//fSeP/30nj/9tF3//XR + eP/403n//dh7/+zJdP/Iq2f/oIxX/4h2Tf95akj/cWJC/3RkQP+MeEr/v6Ri/+zKdf//2Xz/99J4//XR + eP/20Xf/99J4//fSeP/30nj/9tF3//rWef/403j/QDYg/0M7Lv8bGyH/FBYe/yUjJP99bEj/4MZz/9W8 + bf9vYEL/HBwh/xoaIP8BAQH4AAAA/wAAAP8AAAD/AAAA/wAAAJHz8/QArKytAPPz9AAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADw8PEAwsLEAPDw8QAAAAAbAAAA/wAAAP8AAAD/AAAA/wAAAP8TEhX/ISAk/15d + Xv+VlJT/tbS1/8HAv//My8r/0dDP/9LQz//Pzcz/yMbF/8PAv//Avbz/vry7/7u5uP+6uLf/uLa1/7az + sv+0sa//sq+t/7Guq/+yr6z/sa6r/6qnpf+npKL/pKGf/6Kfnf+fnJr/npuZ/5uYlv+ZlpT/l5SS/5WS + kP+UkY//lJGP/5OQjv+Rjoz/jYqI/3p3dv9cWlv/PDs//xwdJv8hICL/V002/56JU//IrGT/89B1//zX + d//10XT/9dB0//XQdP/20XT/9tF0//bRdP/20XT/9tF0//jTdf/61Xb//Nh3//7Yd///2Hf//th3//7Z + eP/+2Xj/+9d3//nTdf/20XT/9tB0//XQdP/10HP/+NJ1//nUdv/XuGn/mINR/2BUPP9BOzD/MCwo/yEf + IP8jISP/Ly0s/zw2MP9VSjT/loFO/9y7av/813f/+NJ1//XQc//10HT/9tF0//bQdP/10HP/+9V2//TQ + c/8LCgb/QDou/xkZIP8ZGR//HBwh/0E6L/+jkFf/mIdS/zs2Lf8aGiD/ExMW/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAG+/v8ACxsbMA7+/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzs7QCbmpwA7OztAKSj + pQAAAACoAAAA/wAAAP8AAAD/AAAA/wICAv8dHCD/JCMn/z08QP9dXGD/enp9/5mZmv+vr6//v769/8fG + xf/Lysn/y8jH/8fEw//DwcD/wL69/7+9vP+9u7r/u7i3/7m2tf+2tLP/tbKx/6+sqv+qqKX/raqp/6uo + p/+ppqT/p6Si/6Shn/+koZ//op+d/5+cmv+em5n/nZqY/5qXlf+XlJL/lZKQ/5OQjv+Bf33/UE9R/yQk + Kv8VFh3/Hx4f/1hNNv+zmln/+9d0//3Ydf/40nL/9c9x//XPcP/2z3H/9tBx//XQcf/10HD/9c9w//bQ + cf/40nH/+dNx//XQcP/pyWz/3Lpk/9KxYP/QsWD/2Llk/+PEav/wzW7/+NFx//nTcf/503L/99Fx//fT + cf/51XL/6cds/4p3Sv81MSr/DhAb/xARG/8QERj/Fxgg/z4/Rf9mZmv/Xl9m/y0vOf87Ni7/iXVG/+LB + af/403H/+NNy//bRcP/30XH/99Bx//bRcP/813P/6cdr/woJBf83Miv/FhYe/x0cIf8eHSH/ISAj/1NK + Nv9ORTP/ICAj/x0dIv8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAKjX19gAAAAAAObm5wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/e3wAAAAAA4+LjAAAAACAAAAD/AAAA/wAAAP8AAAD/AAAA/xIR + FP8cGx//GBcc/xcWHP8aGiH/Kiow/0VESP9iYmP/hoWF/7KxsP/Ny8r/0M7N/8rHxv/GxMP/xsLB/8PB + wP+/vr3/vbu6/727uv+tq6r/h4WF/3p4d/+npKP/sa6s/7Ctq/+tqqj/qqel/6qnpf+opaP/p6Si/6aj + of+mo6D/m5iV/4aDgf95dnX/fHp4/1VUVv8kJCz/ERIZ/zMuKP95aUH/yKpd//PObP/6027/99Bu//bP + bf/1z23/9c9t//bPbf/2z23/9c9t//XPbP/2z23/99Bt//bQbv/ow2j/xahc/5eBSv9rXTv/Ukgx/01D + L/9cUTL/gW9A/7GWU//buWL/885r//fVbv/61W//+9px/+3PbP+3nFf/Pjct/xgYH/8ZGR//Ghgc/xcW + Gv9PTlL/qamr+e7u7QDk5OQAoKGj8klLUvg2Mir/i3dE/+bGaP/613D/+tNu//nSbf/40m7/+dJt//3a + cf/HrFv/LygY/y4qKP8WFx//Hx4i/x4dIv8eHiL/HR0i/x4dIv8eHiL/EhEU/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAIJGRkwAAAAAA5OTlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6ejpAAAA + AACgoKIAlZSWAAAAAKIAAAD/AAAA/wAAAP8AAAD/AAAA/xwcH/8dHSD/Lyol/0E5Kf8lISL/FhUf/xUW + Iv8mJy7/T09S/5ybnP/Kycj/1NPS/83Lyf/Fw8H/xsTD/8nHxv/Jx8X/wb69/4B/gP9SUVP/W1lb/5WT + kv+0sbD/uba1/7azsv+zsK7/pqOh/52amP+XlZT/k5GP/4WEgv9iYWL/Pz1B/y4tMf8yMTX/IiIp/zQv + Kf9qWzf/r5RQ/929Yf/0zmj/+dBp//bOaP/2zWj/9c5o//XOaP/2zmj/9s5o//bOaP/1zWf/9s5o//jP + af/0y2j/tppU/3BfO/9COi3/Qz86/3h2d/+Ih4n/d3d6/1taXP9PTUr/Tkg+/15SOP+AbDv/p45H/8io + U//PsVr/qZNQ/1lPNv8gHiH/EREY/xIRFf8gHyP/X19i/7m4uv/u7u6p+/v8Ovn59zq+v8E6rK2wpXx8 + f/9MRj3/hXE+/8eoUf/sxmD/8cli//DJZP/txmT/9dFp/5J+Qf9HPSX/JyUl/xYXH/8gHyP/Hx4i/x4d + Iv8cHCL/HRwi/x4dIP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKLb29sAzc3OAAAAAADk5OUAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADl5OUAAAAAAL29vgDLy8wAAAAAGAAAAP8AAAD/AAAA/wAA + AP8AAAD/DAwN/xsbIv89Nyz/e2o9/4d1P/9hUjL/NC0j/xoZG/8YGSH/RkZM/3l4ef+sq6r/1NPR/7Gv + r/+PjY7/nJqa/8XCwf+3tLT/h4aH/4qKjP+fnqD/jo2O/7e0tP+/vLz/oJ2d/3Nxcf9wbm7/enh4/25t + bf9QT1D/QD9C/ycnL/8YGCH/DxAa/xARHP8yLSX/hnM//82wV//xymH//NRm//rQZP/1zWL/9Mxi//XM + Yv/1zGL/9cxi//XMY//1zGL/9cxi//TLYv/3zWP/+M5j/+e/Xv95aD7/JCAe/yMjLf9ub3b2o6Sqka2u + snaQkpt2q6yzdpyepXaTlJvViYiK/3x3b/95cFv/dmlJ/2dZOf9FPCn/Gxka/xUVGv8kJCj/SEhL/3p6 + e/KkpKWGzs7Odv///z36+vsA8PDvAMTFxwDe3uA7y8vPoJGRlv9uaF3/fW9L/5aBTv+Wf0n/h3I//3pl + N/+AbDr/Ni4a/zw1Jv8iISP/Ghoh/yAfI/8gHyP/Hx4j/x8eI/8fHiP/DAwN/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAGL+/wADo6OgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA8PDwAOHh4QDFxMUAAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/EhMZ/zAsJ/95aDz/z7FU/8ar + Uf+chkX/bl43/zw1Jv8ZGBv/ISEp/2JhZf+2tbT/lJOT/2RjZf9sa23/mZeX/4mIiP+enp//2NjZ/+fn + 6P+Xl5n/oqCh/5mWl/93dXb/W1pc/3JxdP9sa27/Q0JH/xQVHP8SEhn/Ih8e/0A4Kf9ORS7/SEAs/4Fu + PP/WtVX//9pi//vSX//1zF3/9Mpc//TLXP/1y1z/9Mtc//TLXP/0y1z/9Mtd//TLXP/1y1z/9cxd//rP + Xv/60F7/4btW/1xOLv8TEhj/RkZO/8XFxvLW1dUuzMvMAIuNlADp6ewA6urtAO3t8HHY2N6zwsPJs56g + qLaBgYjvYGFo/0hJUf9EREr/VlVY/25ucNOcnJ2zxMTEmMXFxQy9vb0AAAAAAPr6+wAAAAAAw8TGAOfn + 6QDx8fIv3t7hr3t9hrOKio7miIWE/397dv9kYV7/R0VG/zczNf8JCAj/IiIi/x8dIv8eHSL/IB8j/yAf + I/8gHyP/IB8j/xkYG/8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2Nr+4t7gEtbS2AAAAAADg4OAA4uLiAODg + 4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs7OwAsbCyALa1twAAAAAGAAAA/AAA + AP8AAAD/AAAA/wAAAP8CAgL/GBgg/zEsJv+jiUT/5shX//vXW//mvlT/qY5E/0tCK/8XFhn/KSgv/2Zm + aP9ubm//c3J1/3Rzdv9oZ2n/T05Q/6ampv/s7O3/7u7u/7Gxsv93dXb/VFJU/2dmaP+mpab/wMDC/3Z1 + ef8vLjP/HRwd/zcxJ/9uXjT/rJJE/8ytTf/Epkv/37pS//LKV//2zVj/9MtX//TLVv/1y1f/9MpX//XL + V//1y1f/9ctX//TKV//0y1b/9ctX//bMV//3zVj/+dBY//jPV//lvlH/ZFUs/zMxMv93d3346ejq1/n5 + +S719fUAAAAAAOTk5wDk5OcA5ubpA9LS1wT19fYE9PT1DPT09arg4OHkxMTF5Li4ueTMzM3k0tLTX9PT + 1AS+vr4EwsLCAL+/vwAAAAAAAAAAAAAAAAAAAAAA5uboAO7u7wHY2NsEe3yDBPX2+Ejx8vUA4uPoAMfI + zACpqq1yfX2CAAAAAP8eHiP/HBsg/x4dIf8gHyP/IB8j/yAfI/8gHyP/AgIC/wAAAP8AAAD/AAAA/wAA + AP8BAQH/qaqqAODg4ADv7+9w9vb2GuDg4Bbi4uIC4ODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOzs7ADs7OwA8vLyAOjo6AAAAABJAAAA/wAAAP8AAAD/AAAA/wAAAP8LCw3/HB0h/0lA + LP+1mUT/981T//zSVP/vx1H/vp9E/35rNP9EOyn/Hx8m/yIiKP9vbnH/uLe4/7y8vf9xcXL/vb29//f3 + 9//5+fn/2dna/29vcf93d3n/srGy/8DAwP94eXz/MDA3/zgxIv+Cbjb/vJ5E/+C6Tf/yyVH/985T//bN + U//2zFP/9ctS//TKUv/zylH/9MpS//XLUv/1ylL/9cpS//XKUv/1ylL/9MpS//XLUv/70FL/+c5S/+vE + UP/gvUr/2bdG/8amSf94bVD/h4aJ/8bFyczX1tku2tnbB/r6+gAAAAAA5OTnAOTk5wDm5ukA0tLXAPv7 + +wD9/f4A////HO3t7ibR0dEmxMTFJtnZ2Sbd3d4O2dnaAL6+vgDCwsIAv7+/AAAAAAAAAAAAAAAAAAAA + AADm5ugA7u7vANjY2wB7fIMA////F/z+/ybt7vQm0tPYJsfHySatra+XGxob/yQjKP8bGh7/Hh0h/yAf + I/8gHyP/IB8j/w0NDv8AAAD/AAAA/wAAAP8AAAD/AAAA/x0cH/9AP0L/ZmVn/5SUlejExMUA4ODgt+Li + 4hbg4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADk5OUA4ODhAL6+ + wAAAAACtAAAA/wAAAP8AAAD/AAAA/wAAAP8TExf/HR0i/2ZWMf/DoUL//9NO//zQT//yyUz/27hH/5+E + Of84MCH/CQoT/1ZWXv+/vr//8vLy/8/Pz//o6Oj//Pz8//7+/v/29vb/y8vM/7a2t/+SkpT/UVFY/ygq + M/9KQCn/ln81/927SP/zyU3/+89O//vOTf/5zU7/+c5O//fMTf/1ykz/9MlM//TKTP/1yk3/9cpN//XK + Tf/1yk3/9cpN//TJTP/4zE3/9stN/964SP+ghjz/bl0r/21eNP+ZjWD/yb2b/766r47Ix8dd3dzfRdHP + 0wDPztEA9/f3AAAAAAAAAAAAAAAAAAAAAAAAAAAA9/f4APf3+AD4+PkA5OTlAMjIyQC8vL0A0NDRANbW + 1wDV1dYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+vwA9fb5AObn + 7ADLzNAAsbGxAHBwcZc+PT7/Hh0g/xoZHf8fHiL/IB8j/yAfI/8WFhn/AAAA/wAAAP8AAAD/AAAA/wAA + AP8LCgz/Hh0h/xwbH/8mJSn/ODc7/1RTV/94d3n2lJSVALa3uKHPz9AA6OjpAOfn6AgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA+vr6ANDP0QDR0NIAvr2/AAAAABAAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8UFh3/KSYl/3hkMv/XsUH/+s5H//3RSP//1En/5r1E/5N8NP8+NR//Pj0//4+Plf/x8fD///////// + ///+/v7////////////y8vL/pKSm/0FCSv8MDBT/Misd/5d/Nf/mwEX//9VJ//rNSP/1ykf/9MhG//TI + R//0yEf/9MlH//XJR//1yUf/9clH//XJR//1yUf/9clH//TJRv/1yUf/9clG//jMR//atEP/i3Y1/zs0 + Iv8mJCf/WFdc/6qrrfTg4eSi7+/vJuHg3gDW1dgA09LVANPS1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7u7vAO7u7wCCgoQAMzMzs0dHSf8YFxv/Gxoe/yAf + I/8gHyP/HRwf/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/x4dIP8eHSH/Gxoe/xUUGP8ODRH/Dw4T/x8e + Iv8/PkL/Xl5h/0pKS/85OTq0wsLDDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09LUANPS + 1AClpaYArq2vAAAAAEkAAAD/AAAA/wAAAP8AAAD/AAAA/wQEBP8TFSH/My4l/4ZwMf/lvT//98xB//nM + Qf/6zUL/7MRA/6KHM/9HPib/TU5V/7Cxs//q6ur//Pz8///////+/v7/8vLy/7Cxsv9MTFH/GxgY/0U8 + JP+RejL/37k///3RQ//1yED/88dB//PHQf/0yEH/9MhB//TIQf/0yEH/9MhB//TIQf/0yEH/9MhB//TI + Qf/0yEH/88dA//TIQf/6zEH/68E//6KHNf8uKiP/ERIe/1NTXf+1trnv9vf5sfX2+RL19vkA4N/fALy8 + vgCfnqEAm5udAMHBwgDe3t4A3NzcANzc3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADw8PEA8PDxAX19gB4WFhfeQEBD/xgXG/8cGx//IB8j/yAfI/8EBAT/AAAA/wAAAP8AAAD/AAAA/wAA + AP8WFRj/HBsf/xwbH/8cGx//Hh0h/yIhJf8nJyr/JiUo/w8PEP8PDw//VFRV86OipFKPjpAKAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO/v7wD19fUAy8vMAAAAAJEAAAD/AAAA/wAA + AP8AAAD/AAAA/wkJCv8ZGCH/Ni8l/5Z9Mf/lvjr/+848//XIO//2yjz/8MU7/4xzK/81LyT/OjxG/6Oj + pv/o6Oj//Pz8//Ly8//ExMX/S01V/yooJP9pWCX/y6g2/+rAOv/0yDz/9cg7//PGOv/0xzv/9Mc7//TH + O//0xzv/9Mc7//THO//0xzv/9Mc7//THO//0xzv/9Mc7//THO//zxjr/9Mc7//7PPP/MqDb/a1oo/xcW + H/9CQkj/sbGy+vP09KL4+PgT9fb4AvX2+ATi4uQGvLy+Bp+eoQabm50GwcHCBt7e3gTc3NwA3NzcAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzs7QDs7O0F5eXmAAgICP8uLjH/Ghkd/x0c + IP8gHyP/CgoL/wAAAP8AAAD/AAAA/wAAAP8AAAD/DQ0P/xoZHv8ZGB3/HRwh/yoqLf8/PkL/NDQ1/QAA + AP8AAACaAAAAJuHh4gDu7u8A8fHyAJCPkQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOzs7ADo6OkAAAAAAwAAANYAAAD/AAAA/wAAAP8AAAD/AAAA/wwMEP8dHCL/PDUl/52C + Lv/kuzT//c82//XIN//8zTf/1K0y/3plJf8kISH/OTpD/5ydof/My8r/qaiq/1NUW/8kJCf/aFYk/8ij + Mf/3yjb/+Mo3//XHNv/zxTb/88U2//TGNv/0xjb/88Y2//PGNv/zxjb/88Y2//PGNv/zxjb/88Y2//PG + Nv/zxjb/88Y2//LFNf/zxjb//9A3/7ybMf9SRSL/Fxci/3Z1ev+xsbCIurq6I/n5+QD7+/sA/v7+gOno + 6rfCwsS3pKOmt6CgorfHx8i34+Piet3d3ADc3NwAxMTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA0NDRANDQ0QbPz9AACAgI/x4dIf8dHCD/Hh0h/w8OEP8AAAD/AAAA/wAAAP8AAAD/AAAA/wQE + Bf8bGh7/MC8z/wAAAP8AAAD/AAAAtxUVFf9nZ2i8w8PDT8fHyEfn5+dH////R////yQAAAAAkI+RAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD5+fkA4eHhANnZ2QDR0NEAAAAAGAAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/w8PE/8YGSH/SD4l/52CK//luzD/+8wx//nJMv/2xzL/y6Ut/3Je + Iv8lIRz/R0hP/19gZ/9GSFH/Hh0k/1lLIf+5lyz/98gy//nKMv/0xjH/88Ux//PEMv/0xTL/9MUy//TF + Mv/0xTL/9MUy//TFMv/0xTL/9MUy//TFMv/0xTL/9MUy//TFMv/0xTL/88Qx//TFMv/+zjL/w58u/1pL + Iv8TFSL/YWJn/5WVmKafoKdzyMrTebe5wnykpq/eiIqT/2lrc/9VVl//UFFc/2lrdf+foKba09PUa9LS + 0wi/v8EA8fHzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPr6+gCgoKEAoaGiAIiIiQAfHx//FRQY/x4d + If8RERP/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABuBwcH/QAAAKiXl5ic/Pz8hf// + /y7+/v4AvLy9ANvb2wD09PQA/f3+APz8/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADj4+MAwsLCAMPDwwDBwcEAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xAQ + FP8UFiL/SD4j/56CKf/mvCv/9sct//zLLf/5yS3/1Kwr/29cI/8oIx7/Dg8a/x4cGv9QQyD/tpQp/+/C + Lf/7yi3/88Mt//PDLP/0xC3/9MQt//TELf/0xC3/9MQt//TELf/0xC3/9MQt//TELf/0xC3/9MQt//TE + Lf/0xC3/9MQt//TELf/zwyz/9MQt//zLLf/asCv/g2wl/yEfIf8pKjT/YWFo/4qIiP+JhX//c29i/1tU + RP9HPyr/OjEb/zMrFf8sJBP/JiEY/1NQTv+np6ntzc3PWNPT1BX4+PkAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/Pz8AKSkpAqhoaI8U1NTACgoKf8UExf/EhEU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAACoBwcH/QAAAG7b29tk+vr6AM/P0ADx8fEA+vr6APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQAxMTEAKuq + qwCtrK0AAAAAVwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xAQFP8XGCL/PTUk/5d8Jv/luif/+Mgm//rI + Jv/4xyb/2K4l/2hXIf85MiD/aFgj/8miJv/zwif/+Mcm//PDJv/zwyb/88Mn//PDJ//zwyf/88Mn//PD + J//zwyf/88Mn//PDJ//zwyf/88Mn//PDJ//zwyf/88Mn//PDJ//zwyf/88Mn//PCJ//zwyf/9sUn//XE + J//Dnib/X1Aj/yYiH/8tKB3/V0gd/4NqHf+Zexv/qoke/7eUIv++mST/vJkk/7OSJf+PdRz/YlMi/1xb + Wf3R0dP08fH0VOnp6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD39/cA9/f3KOzs7AA2Njf+IyMm/w4N + EP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7+KSkp4BsbG0TCwsML7OztC/v7+wX4+PgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExADExMQAqKeoAJ6dnwCamZsAAAAAcQAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/w8OE/8cHCP/NjAi/4duIv/XrCH//ssf//vIIP/2xCD/yaEg/7qXIP/SqSD/9MMg//bF + IP/zwh//8sEg//PCIP/zwiD/88Mg//PCIP/zwiD/88Ig//PCIP/zwiD/88Mg//PCIP/zwiD/88Ig//PD + IP/zwiD/88Ig//PCIP/zwyD/88Ig//LCIP/ywR//9cQg/+2+If/QpiD/qIgg/7GOHf/OpRv/5Lcb/+q7 + HP/vvx7/8sEg//PCIf/zwiH/8cQg/+q/H/+nhhr/Qz0s/4mKjv+cn6hWlZifAPr6+wD6+vsA/f7/AOvr + 7QDNzM0Avr6+AOnp6QD4+PcA9PT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5+joAOfo + 6ADn6OgA5+joANna2gDj5OMq1dbWABEREv8NDA//AAAA/wAAAP8AAAD/AAAA/wAAAPYAAAD/Dw8Ppaem + p0P49/gc8O/wAMLCwwDs7O0A+/v7APj4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACqqaoAl5aYAI2MjgCHhogAAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wwMEP8ZGSL/NC4i/3hi + IP/DnBz/9cMb///KGv/1wxv/8sAc//XEG//3xBv/88Eb//LAG//zwBv/8sEb//LBG//ywRv/8sEb//LB + G//ywRv/8sEb//LBG//ywRv/8sEb//LBG//ywRv/8sEb//LBG//ywRv/8sEb//LBG//zwRv/8sEb//LA + G//zwRv/9cMb//bEHP/tvRz/8sAc//jGHP/7yRz/+sgc//rGHP/5xhz/+cYc//nGHP/5xxv//84c/9Kn + GP9kUxv/PT1E/mxwf7epqrGS////Of///wH///8n9fX3WNjX13THx8eH7e3tkvv7+jv39/cAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA8fDxAPn4+ADo6ekA7e7uBuzt7Xrs7e05wcHCAKenqSKen6AADw4P/wAA + AP8AAAD/AAAA/wAAAPcAAADYAAAAW0NDQ3L///8G+fn5AO/u7wDr6usAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZmJoAraytALGwsQCvrq8AAAAAhgAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJC/8UFSL/KSUh/2ZUHv+1kRr/57cX//vHFf/8yBb/9cIW//G/ + Fv/xvxf/88AX//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AW//PA + Fv/zwBb/88AW//PAFv/zwBb/88AW//PAFv/zwBb/88AX//K/Fv/yvxb/9cIW//rGFv/4xBb/9MIW//G/ + Fv/xvxb/8b4W//K/Fv/ywBb/8sAW//G/Fv/6xRb/6bkW/6mHFv9COBr/UVBS/5OTmv/DxMrkzs/TYMvM + 0KqwsbibkJCWYoqKjCnPz8+A5ubmauDg4AAAAAAAAAAAAAAAAAAAAAAAycrLAMnKywDz8vMA////KuHi + 4lTGx8dmysvMAMnJymLR0dIdmZmadCQkJAAAAAD/AAAA/wAAANIAAACXAAAAYQAAAAAAAAAA9vb2APj4 + +AD39/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD7+/oA/f39APn5+ACsq60AAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wQE + BP8VFh7/HRwi/0c9H/+ggBj/3bAT//XCEf/1wRH/88AR//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/ + Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/ + Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//K/Ev/yvxL/8r8S//PA + Ev/2wxH/6bkS/6KBE/9XRxX/RD4s/2NfUv5/eWn8c2xc/klFPv8eHSD/IB8l/5mZmv/BwcJnt7e4AAAA + AAAAAAAA5ubmAO3t7QDIycoAy8zNAOzs7Rjr6uqLuLi6fm9vcX6PjpD+kI+SVLW1tW0YGBj/AAAA/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A/v79AJmY + mgCUlJYAAQEBcwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8TEhn/HBwh/zArH/9zXxn/wJgR//K+ + C//7xQv/9MEL//G/DP/xvgz/8b8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/ + DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/ + DP/yvwz/8r8M//K/DP/yvwz/8r8M//K/DP/yvgz/8b4M//K/DP/zwAv/7rwM/9SoDP+5kg3/rIkP/7KN + EP+1kA7/knUR/09BFP8kIyb/lpWY/728v2ezsrUAAAAAAAAAAADm5uYA7e3tAMnKywHIycoKz9DRQ5WV + lwtCQkWcKSgs/46Nj/9GRUaKAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAC/vsAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/f38AAAAAAD7+/oAk5OVAKOjpQCcnJ4AAAAAVwAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8LCw7/GRki/ykmIP9VRhv/knUT/9KmC//3wgX//ccE//fCBf/xvgb/8L0G//G9 + B//xvgf/8r4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+ + B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//G+B//xvgf/8b4H//K+ + B//xvQf/8b4H//K+B//3wgb/9cAG/++6BP/otQL/6LQA/+q4Af/hsgP/poIK/0pCJ/+io6T/w8XNZ7q8 + wgD19vUA8fLxAOjo6ADz8/M409PTLpmZmxtlZWeqODg7/xgXG/8mJSn/QEBB/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAAAAAAAAAAAAAA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACVlZcApKSlALa2twCxsbIAAAAANwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/EBIa/xsb + Iv85Mh7/clwW/66KDP/aqwX/9L8C//vEAf/4wQH/874C//G9Av/xvAL/8b0C//G9Av/yvQL/8r0C//K9 + Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9 + Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8r0C//K9Av/yvQL/8bwC//G9Av/0vgL/+MEB//nD + Av/6wwL/+sUC//7IAP/GmwT/V0sl/6eoqP/DxtFixcjOAPz9/Aj9/v1D2traEbu7vDCKiovMSkpN/yAg + I/8UExf/ERAU/wICAv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAANwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKUAwsLDAMLCwwDNzc0AAAAAGAAA + ANYAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CgoN/xUVIf8aGiP/Qjgc/4FnEv+/lQn/5LID//K8 + Af/2vwD/9b8A//S+AP/zvQD/8rwA//G8AP/xvAD/8bwA//K8AP/yvQD/8rwA//K8AP/yvAD/8rwA//K8 + AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8AP/yvAD/8rwA//K8 + AP/yvAD/8rwA//K8AP/yvQD/8rwA//G8AP/xvAD/8LsA//G8AP/2vwD/8LsA/6yHBf9AOCP/k5OW/8HD + yoTT1NYd5OTkA9LS0lyenp/fWVhb/yIiJf8SERb/GBcb/wwLDf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA1qamplD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADCwsMAwsLDAN/f3wDj4+MAAAAAAwAAAJEAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/xERFf8YGSP/IB4i/0A2Hf96YRT/upIK/+SyAv/3wQD/+cIA//W/AP/zvQD/8bwA//K9 + AP/yvQD/8r0A//G8AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8bwA//K9 + AP/xvAD/8r0A//rDAP/ksgP/jnAL/yEfH/9jY2j/vb7AedLS03aWlpjeVVRX/CkoLP8aGB3/Gxoe/xIR + FP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAJEAAAADs7K0AP7+/gAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMLCwwDCwsMA4+PjAPX1 + 9QDw8PAAyMjJAAAAAEkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wICAv8SEhj/HRwj/ygl + IP9DOBz/bVkV/59+Df/NoQb/7bkA//vEAP/9xgD/+cMA//S/AP/xvAD/8LsA//G8AP/xvAD/8bwA//G8 + AP/xvAD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9AP/yvQD/8r0A//K9 + AP/yvQD/8r0A//G8AP/xvAD/8bwA//G8AP/wuwD/8bwA//S9AP/4wQD//8kA//K/Af+ohAr/MCod/zEx + N/9WVlv/WFha/zMyNf8gHyP/Ghkd/xISFP8CAgL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAABJwcHCAMfGxwCnpqgA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADi4uIA9/f3AP///wD29vcAubm5AAAAABAAAACtAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgP/Dw8X/xcYI/8lIyH/QTcc/2VTF/+NcBD/sYwL/8+j + Bv/ntAL/9L4A//vDAP/7xAD/+8QA//jCAP/2vwD/874A//K9AP/xvAD/8bwA//C8AP/wuwD/8LwA//C8 + AP/wvAD/8bwA//C8AP/wvAD/8LwA//C8AP/wuwD/8LwA//G8AP/xvAD/874A//W/AP/3wQD/+sMA//zE + AP/7xAD/+MAA/+y4Af/YqwT/upMJ/39mEv8wKx7/HR0i/x8eJP8dHCD/FRQY/xEQE/8CAgL/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAAEObm5gDR0dEAz8/PAK2srgAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD39/cA/v7+AOzs7QDIyMkA3NzdAL29vgAAAABJAAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wwNEv8SFCH/Fxkj/ysmIP9KPxv/cl0U/5h5Dv+3kAn/z6IG/9+vBP/ptwL/8LsB//S+ + AP/2vwD/98AA//bAAP/3wAD/9sAA//bAAP/1wAD/9r8A//bAAP/3wAD/9sAA//XAAP/2wAD/9sAA//bA + AP/3wAD/+MEA//fBAP/2wAD/9b4A//K8Af/ruAL/47ED/9WmBf/Blwj/pIIM/4BmEv9aSRj/OTId/yQi + If8cHCH/GBcb/w4OEP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8BwcHTc3N + zQD8/PwA8/PzAM7OzgDOzs4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMfHyAD19fUA+vr6AOPj + 4wAXFxcHAAAAgAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ICAn/EhMY/xUX + JP8YGST/JCIh/zszHP9aShj/fWQT/519Df+6kgn/z6IG/96tA//otQL/7rsB//K+Af/0vwH/9cAB//bA + Af/3wAD/98AA//e/AP/3wAD/98AA//bAAf/1wAH/9MAB//O+Af/xvAH/67gC/+KwAv/VpgX/wpgI/6aE + C/+HaxH/ZlIW/0Y6G/8sJyD/HBsj/xYXJP8YGSP/FRUY/wgICf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAAgAAAAAbLy8wAxcXGAPj4+ADy8vIAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAx8fIAPj4+AD///8A5OTlANfX2ADMzM0AAAAAGAAAAKIAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJC/8TFBn/Gxsh/x4dIv8jISH/LCgf/zkx + Hv9KPRz/XUsY/29ZFP+BZxL/kXQQ/6B/Df+qhwz/s40K/7qRCP++lQj/wJUI/7+WCP+8kgj/tI4J/62I + DP+jgQ3/lngO/4hsEv91XxT/YlAX/09DG/8+Nh3/MCsf/yUjIf8fHiL/HBsi/xoaIf8TFBn/CQkL/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAAABjm5uYA8PDwAPHx + 8QDExMUA+Pj4APLy8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9/f3AP7+ + /gDh4eIA5ubnAPDw8QDPz9AAsbKyAAAAACAAAACoAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AwME/woLEP8RERr/Fxch/xwbI/8hICL/JyQh/y4pH/82MB7/PDQd/0I5 + HP9HPBv/TEAb/09BGv9RQhv/UEIa/01AG/9JPhv/RDoc/z82Hf84MR7/MSsf/yomIf8jISH/HRwi/xkZ + I/8VFiL/EBEa/wsLEP8DAwT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/KSkp/gAAACDU1dUA7u7uAP///wD8/PwA/Pz8AMXFxgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLi4wDi4uMA5ubnANzc2wDk5OQA3d3dALGx + swAAAAAbAAAAkQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wUFB/8JCg//DA0V/w4QG/8PER//EBMh/xETJP8SFST/ExUl/xMVJf8TFSX/EhUl/xMV + JP8RFCT/EBMi/xARH/8OEBv/DQ4V/woKDv8FBQf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAkSMjIyPX1tYp9vf2C/r7+wDz9PQA/Pz8APn5 + +QD5+fkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39/gAOPj5ADPz9AAAAAACgAAAGEAAADiAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADiAAAAYQAA + AArn5+gA/Pv8APn4+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADa2toA3t7eANTU + 1ADh4eIA6OjpAO/v7wDq6eoA4ODgAL69vwAAAAAlAAAAhgAAAPcAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPcAAACGAAAAJcnJygDMzM0A09PUAO3t7gD///8A+/r7AO3u7gD19vYA8vPzAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/f4ADj4+QA9fX1APv7+wD8/PwA2trbANfX + 2ADJyMkAuLi5AAAAACUBAQF4AAAA1gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1gAAAHYAAAAlycnJANvb2wDr6+sA5OTkAN3d + 3gDZ2doA5+foAPz7/AD5+PkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADz8/MA9fX1APLy8gDQ0NEA8vLyAPf39wD29vUA09LUAM3NzgC2trcAAAAACgAA + ADcAAAB8AAAAxQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAMUAAAB8AAAANwAA + AAq+vr8AxcXFAO3t7QD///8A////AP39/QDa2tsA19fYANfX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADt7e0A7+/vAOvr6wDJyMoA/Pz8AP7+/gD8+/wA6+rrAM/P0ACvr7AAkZCRAAAAABAAAAAwAAAAVwAA + AIAAAACoAAAAywAAAOcAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAOcAAADLAAAAqAAA + AIAAAABXAAAAMAAAABCioaMAxMPEAOHh4QDx8fEA8PDwAO/v7wC7u7wA4uLiAPj4+AD7+/sA+vr6AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6+voA+/v7APj3 + +ADn5ucAy8vMAKysrQCOjY8AcnJ0AOTk5ADi4uIA3t7eANTU1QDOzc8AxMTGALu7vAC4uLkAAAAAAQAA + AAMAAAADAAAAAbq5ugDDw8QAy8rMANLS0wDc3N0A5eTlAOjo6QDr6+sAhoWHAJ+eoADAv8AA3d3dAO3t + 7QDt7e0A7e3tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////////gAAAA///////////////4AAAAAAf/////////////gAAAAAA + Af////////////gAAAAAAAAf///////////AAAAAAAAAA///////////+AAAAAAAAB///////////wAA + AAAAAAAA//////////gAAAAAAAAAAF/////////gAAAAAAAAAAAP////////4AAAAAAAAAAAD/////// + /4AAAAAAAAAAAAH///////8AAAAAAAAAAAAA///////4AAAAAAAAAAAAAH//////+AAAAAAAAAAAAAB/ + //////AAAAAAAAAAAAAAH//////gAAAAAAAAAAAAABf/////gAAAAAAAAAAAAAAP/////wAAAAAAAAAA + AAAAAv////8AAAAAAAAAAAAAAAL////+AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAP////AAAAAA + AAAAAAAAAAA////wAAAAAAAAAAAAAAAAP///8AAAAAAAAAAAAAAAAC///+AAAAAAAAAAAAAAAAAH///A + AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//wAAAAAAAAAAAAAAAAAD//8AAAAAAAAAAAAAAAAA + AP/+AAAAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAA + AAAAAAA/9AAAAAAAAAAAAAAAAAAAP/QAAAAAAAAAAAAAAAAAAD/0AAAAAAAAAAAAAAAAAAA/4AAAAAAA + AAAAAAAAAAAAL+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAAAAAAAAAAAB8AA + AAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAHwAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAA + AAOAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAA + AAfAAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAC/0AAAAAAAAAAAA + AAAAAAAv9AAAAAAAAAAAAAAcAAAAL/QAAAAAAAAAAAAAPgAAAD/8AAAAAAAAAAHwAP8AAABP/AAAAAAA + AAAB/wP/wAAAf/wAAAAAAAAAA/////4AAB//AAAAAAAAAAf////+AAAB/gAAAAAAAAAf/////gAAAf8A + AAAAAAAAP/////4AAAH/wAAAAAAAAH/////8AAAB/+AAAAAAAADgP////AAAP//AAAAAAAAAAB////wA + AP//4AAAAAAAAAAP///8AAf///AAAAAAAAAAB///+AA////wAAAAAAAAAAf///gA/////AAAAAAAAAAA + B/+4A/////4AAAAAAAAAAAP+EB//////AAAAAAAAAAAD/AP//////4AAAAAAAAAAA/AB//////9AAAAA + AAAAAAPAAf//////4AAAAAAAAAADAAB///////AAAAAAAAAAAAAA///////4AAAAAAAAAAAAAP////// + +AAAAAAAAAAAAAB///////4AAAAAAAAAAAAA////////AAAAAAAAAAAAAf///////+AAAAAAAAAAAAf/ + ///////gAAAAAAAAAAAH////////8AAAAAAAAAAAH/////////wAAAAAAAAAAD//////////8AAAAAAA + AA///////////4AAAAAAAAAB///////////wAAAAAAAAD////////////AAAAAAAAH/////////////A + AAAAAAP//////////////AAAAAB///////8= + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/HydroDesktop.Plugins.TableView.csproj b/Source/Plugins/HydroDesktop.Plugins.TableView/HydroDesktop.Plugins.TableView.csproj new file mode 100644 index 00000000..3bbabd73 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/HydroDesktop.Plugins.TableView.csproj @@ -0,0 +1,263 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4} + Library + Properties + HydroDesktop.Plugins.TableView + HydroDesktop.Plugins.TableView + v4.0 + 512 + + + + + 3.5 + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.TableView\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.TableView\HydroDesktop.Plugins.TableView.XML + 1591 + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.TableView\ + TRACE + prompt + 4 + + + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.TableView\ + DEBUG;TRACE + full + x86 + prompt + false + false + false + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.TableView\HydroDesktop.Plugins.TableView.XML + + + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.TableView\ + TRACE + true + pdbonly + x86 + prompt + false + false + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + + 3.5 + + + + + 3.5 + + + 3.5 + + + + + + + Form + + + ChangeDatabaseForm.cs + + + UserControl + + + cTableView.cs + + + UserControl + + + DataGridViewNavigator.cs + + + Form + + + DeleteThemeForm.cs + + + + + True + True + Resources.resx + + + + + + ChangeDatabaseForm.cs + + + cTableView.cs + + + DataGridViewNavigator.cs + + + DeleteThemeForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {882c41f5-6a96-419f-9153-8d277ed91464} + HydroDesktop.Common + False + + + {0ccd3f11-0f48-427f-bc98-9dd6d875f4bb} + HydroDesktop.Configuration + False + + + {CEB869C6-ED48-4846-9040-4E82AB58B86B} + HydroDesktop.Data + False + + + {0B9BA90B-2016-4754-915A-0AD74FD0067A} + HydroDesktop.Interfaces + False + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/HydroDesktop.Plugins.TableView.nuspec b/Source/Plugins/HydroDesktop.Plugins.TableView/HydroDesktop.Plugins.TableView.nuspec new file mode 100644 index 00000000..a8796820 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/HydroDesktop.Plugins.TableView.nuspec @@ -0,0 +1,21 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.TableView/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..8705efc1 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.TableView")] +[assembly: AssemblyDescription("HydroDesktop Table View Plugin")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Idaho State University")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.TableView")] +[assembly: AssemblyCopyright("Copyright © 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("4db09210-9fa2-4e53-a922-f456cbe8f6ac")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/Properties/Resources.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.TableView/Properties/Resources.Designer.cs new file mode 100644 index 00000000..24e2031d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/Properties/Resources.Designer.cs @@ -0,0 +1,182 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.Plugins.TableView.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.Plugins.TableView.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap changeDatabase { + get { + object obj = ResourceManager.GetObject("changeDatabase", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap changeDatabase_16x16 { + get { + object obj = ResourceManager.GetObject("changeDatabase_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap delete { + get { + object obj = ResourceManager.GetObject("delete", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap delete_16x16 { + get { + object obj = ResourceManager.GetObject("delete_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap newDatabase { + get { + object obj = ResourceManager.GetObject("newDatabase", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap newDatabase_16x16 { + get { + object obj = ResourceManager.GetObject("newDatabase_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap refreshTheme { + get { + object obj = ResourceManager.GetObject("refreshTheme", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap refreshTheme_16x16 { + get { + object obj = ResourceManager.GetObject("refreshTheme_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap series_parallel_32 { + get { + object obj = ResourceManager.GetObject("series_parallel_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap series_sequence_32 { + get { + object obj = ResourceManager.GetObject("series_sequence_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap tableView { + get { + object obj = ResourceManager.GetObject("tableView", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223562997]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]]. + /// + internal static string Wgs84ProjectionString { + get { + return ResourceManager.GetString("Wgs84ProjectionString", resourceCulture); + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/Properties/Resources.resx b/Source/Plugins/HydroDesktop.Plugins.TableView/Properties/Resources.resx new file mode 100644 index 00000000..597eb40c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/Properties/Resources.resx @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\changeDatabase.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\changeDatabase_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\delete_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\newDatabase.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\newDatabase_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\refreshTheme.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\refreshTheme_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\series_parallel_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\series_sequence_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\tableView.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223562997]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]] + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/changeDatabase.png b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/changeDatabase.png new file mode 100644 index 00000000..570d2856 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/changeDatabase.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/changeDatabase_16x16.png b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/changeDatabase_16x16.png new file mode 100644 index 00000000..678a5011 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/changeDatabase_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/delete.png b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/delete.png new file mode 100644 index 00000000..9a1914e3 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/delete.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/delete_16x16.png b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/delete_16x16.png new file mode 100644 index 00000000..8f7181e5 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/delete_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/newDatabase.png b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/newDatabase.png new file mode 100644 index 00000000..f1640258 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/newDatabase.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/newDatabase_16x16.png b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/newDatabase_16x16.png new file mode 100644 index 00000000..25bdaae0 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/newDatabase_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/refreshTheme.png b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/refreshTheme.png new file mode 100644 index 00000000..91bb2eb9 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/refreshTheme.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/refreshTheme_16x16.png b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/refreshTheme_16x16.png new file mode 100644 index 00000000..3f3b2382 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/refreshTheme_16x16.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/series_parallel_32.png b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/series_parallel_32.png new file mode 100644 index 00000000..7ae39804 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/series_parallel_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/series_sequence_32.png b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/series_sequence_32.png new file mode 100644 index 00000000..95a71598 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/series_sequence_32.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/table2.png b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/table2.png new file mode 100644 index 00000000..ec579204 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/table2.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/tableView.png b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/tableView.png new file mode 100644 index 00000000..540fd511 Binary files /dev/null and b/Source/Plugins/HydroDesktop.Plugins.TableView/Resources/tableView.png differ diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/TableView.sln b/Source/Plugins/HydroDesktop.Plugins.TableView/TableView.sln new file mode 100644 index 00000000..5ae89e9d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/TableView.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TableView", "TableView.csproj", "{E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Debug|Any CPU.ActiveCfg = Debug|x86 + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Debug|Any CPU.Build.0 = Debug|x86 + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Debug|x86.ActiveCfg = Debug|x86 + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Debug|x86.Build.0 = Debug|x86 + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Release|Any CPU.ActiveCfg = Release|x86 + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Release|Any CPU.Build.0 = Release|x86 + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Release|x86.ActiveCfg = Release|x86 + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/TableViewPlugin.cs b/Source/Plugins/HydroDesktop.Plugins.TableView/TableViewPlugin.cs new file mode 100644 index 00000000..32a565c7 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/TableViewPlugin.cs @@ -0,0 +1,279 @@ +using System; +using System.ComponentModel.Composition; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Controls.Docking; +using DotSpatial.Controls.Header; +using HydroDesktop.Common; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.PluginContracts; + +namespace HydroDesktop.Plugins.TableView +{ + public class TableViewPlugin : Extension + { + #region Variables + + //the seriesView component + [Import("SeriesControl", typeof(ISeriesSelector))] + internal ISeriesSelector SeriesControl { get; set; } + + private const string _tablePanelName = "Table"; + private readonly string kTableView = SharedConstants.TableRootKey; + private const string _optionsGroupCaption = "Options"; + private const string _optionsToggleGroupButtonKey = "kTableViewModeOptions"; + private const string _optionsParallelMode = "Parallel"; + private const string _optionsSequenceMode = "Sequence"; + + private cTableView tableViewControl; + private TextEntryActionItem dbTextBox; + + #endregion + + public EventHandler IsPanelActiveChanged; + + private bool _isPanelActive; + public bool IsPanelActive + { + get { return _isPanelActive; } + set + { + if (_isPanelActive == value) return; + _isPanelActive = value; + + var handler = IsPanelActiveChanged; + if (handler != null) + { + handler(this, EventArgs.Empty); + } + } + } + + #region Extension Members + + public override void Deactivate() + { + App.HeaderControl.RemoveAll(); + App.DockManager.Remove(kTableView); + + App.HeaderControl.RootItemSelected -= HeaderControl_RootItemSelected; + App.DockManager.ActivePanelChanged -= DockManager_ActivePanelChanged; + + tableViewControl = null; + SeriesControl.Refreshed -= SeriesControl_Refreshed; + + base.Deactivate(); + } + + public override void Activate() + { + #region initialize the Table Ribbon TabPage and related controls + + //RefreshTheme + var refreshThemeButton = new SimpleActionItem("Refresh", rbRefreshTheme_Click) + { + RootKey = kTableView, + LargeImage = Properties.Resources.refreshTheme, + SmallImage = Properties.Resources.refreshTheme_16x16, + ToolTipText = "Refresh Themes", + GroupCaption = _tablePanelName, + }; + App.HeaderControl.Add(refreshThemeButton); + + //DeleteTheme + var deleteThemeButton = new SimpleActionItem("Remove", rbDeleteTheme_Click) + { + RootKey = kTableView, + LargeImage = Properties.Resources.delete, + SmallImage = Properties.Resources.delete_16x16, + ToolTipText = "Remove Theme from Database", + GroupCaption = _tablePanelName + }; + + App.HeaderControl.Add(deleteThemeButton); + + //Current database + dbTextBox = new TextEntryActionItem + { + Caption = "", + GroupCaption = "Current Database Path", + RootKey = kTableView, + Width = 300, + ToolTipText = "Path to current database" + }; + dbTextBox.PropertyChanged += dbTextBox_PropertyChanged; + App.HeaderControl.Add(dbTextBox); + + //Change Database + var changeDatabaseButton = new SimpleActionItem("Change", rbChangeDatabase_Click) + { + RootKey = kTableView, + ToolTipText = "Change Database", + LargeImage = Properties.Resources.changeDatabase, + SmallImage = Properties.Resources.changeDatabase_16x16, + GroupCaption = "Current Database Path" + }; + App.HeaderControl.Add(changeDatabaseButton); + + AddTableViewPanel(); + + // Options buttons + var sequenceModeAction = new SimpleActionItem(_optionsSequenceMode, TableViewModeChanged) + { + RootKey = kTableView, + ToolTipText = "Show all fields in sequence", + LargeImage = Properties.Resources.series_sequence_32, + SmallImage = Properties.Resources.series_sequence_32, + GroupCaption = _optionsGroupCaption, + ToggleGroupKey = _optionsToggleGroupButtonKey + }; + App.HeaderControl.Add(sequenceModeAction); + + var parallelModeAction = new SimpleActionItem(_optionsParallelMode, TableViewModeChanged) + { + RootKey = kTableView, + ToolTipText = "Show just values in parallel", + LargeImage = Properties.Resources.series_parallel_32, + SmallImage = Properties.Resources.series_parallel_32, + GroupCaption = _optionsGroupCaption, + ToggleGroupKey = _optionsToggleGroupButtonKey + }; + App.HeaderControl.Add(parallelModeAction); + + parallelModeAction.Toggling += TableViewModeChanged; + parallelModeAction.Toggle(); + + //----- + + #endregion initialize the Table Ribbon TabPage and related controls + + SeriesControl.Refreshed += SeriesControl_Refreshed; + + //event when ribbon tab is changed + App.HeaderControl.RootItemSelected += HeaderControl_RootItemSelected; + + base.Activate(); + } + + void dbTextBox_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + //throw new NotImplementedException(); + } + + //when the table root item is selected + void HeaderControl_RootItemSelected(object sender, RootItemEventArgs e) + { + if (e.SelectedRootKey == kTableView) + { + App.DockManager.SelectPanel(kTableView); + RefreshDatabasePath(); + IsPanelActive = true; + } + else + { + IsPanelActive = false; + } + } + + //void DockManager_PanelAdded(object sender, DockablePanelEventArgs e) + //{ + // //the 'Table' dockable panel should follow after 'Map' + // if (e.ActivePanelKey == "kMap") + // AddTableViewPanel(); + //} + + void AddTableViewPanel() + { + // Add "Table View Plugin" dock panel to the SeriesView + tableViewControl = new cTableView(this) {Dock = DockStyle.Fill}; + var tableViewPanel = new DockablePanel + { + Key = kTableView, + Caption = _tablePanelName, + InnerControl = tableViewControl, + Dock = DockStyle.Fill, + DefaultSortOrder = 10 + }; + App.DockManager.Add(tableViewPanel); + App.DockManager.ActivePanelChanged += DockManager_ActivePanelChanged; + } + + private void TableViewModeChanged(object sender, EventArgs e) + { + var actionItem = sender as SimpleActionItem; + if (actionItem == null) return; + + switch(actionItem.Caption) + { + case _optionsSequenceMode: + tableViewControl.ViewMode = TableViewMode.SequenceView; + break; + case _optionsParallelMode: + tableViewControl.ViewMode = TableViewMode.JustValuesInParallel; + break; + } + } + + void SeriesControl_Refreshed(object sender, EventArgs e) + { + RefreshDatabasePath(); + } + + private void Refresh() + { + SeriesControl.RefreshSelection(); + } + + void DockManager_ActivePanelChanged(object sender, DockablePanelEventArgs e) + { + if (e.ActivePanelKey == kTableView) + App.HeaderControl.SelectRoot(kTableView); + } + + private void RefreshDatabasePath() + { + if (tableViewControl != null) + { + //App.ProgressHandler.Progress(string.Empty, 0, string.Format("Database: {0}", tableViewControl.DatabasePath)); + dbTextBox.Text = tableViewControl.DatabasePath; + } + } + + private void rbRefreshTheme_Click(object sender, EventArgs e) + { + Refresh(); + } + + private void rbDeleteTheme_Click(object sender, EventArgs e) + { + DeleteTheme(); + } + + + private void DeleteTheme() + { + using (var frm = new DeleteThemeForm()) + { + if (frm.ShowDialog() == DialogResult.OK) + { + Refresh(); + } + } + } + + #endregion + + #region Database reconfiguration + + private void rbChangeDatabase_Click(object sender, EventArgs e) + { + using (var frmChangeDatabase = new ChangeDatabaseForm(App.Map as Map, App.GetExtension())) + { + frmChangeDatabase.ShowDialog(); + } + } + + # endregion + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/ThemeManager.cs b/Source/Plugins/HydroDesktop.Plugins.TableView/ThemeManager.cs new file mode 100644 index 00000000..13d60940 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/ThemeManager.cs @@ -0,0 +1,283 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.IO; +using System.Linq; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Projections; +using DotSpatial.Topology; +using HydroDesktop.Interfaces.PluginContracts; +using Hydrodesktop.Common; +using HydroDesktop.Configuration; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Plugins.TableView +{ + /// + /// The ThemeManager is responsible for reading themes + /// from the database and converting them to feature sets which + /// can be displayed in the map. It also keeps track of added or + /// deleted themes and notifies other HydroDesktop plug-ins to refresh + /// their view when a theme is created, modified or deleted + /// + public class ThemeManager + { + #region Variables + + private readonly ISearchPlugin _searchPlugin; + private readonly ProjectionInfo _wgs84Projection; + #endregion + + #region Constructors + /// + /// Creates a new ThemeManager + /// + public ThemeManager(ISearchPlugin searchPlugin) + { + _searchPlugin = searchPlugin; + _wgs84Projection = ProjectionInfo.FromEsriString(Properties.Resources.Wgs84ProjectionString); + } + + #endregion + + /// + /// Synchronize all theme layers in the map with the themes in the current database + /// + /// The main map + public void RefreshAllThemes(Map mainMap) + { + //(1) Find theme names from database and from map + var themeNamesInDb = GetThemeNamesFromDb(); + var themeNamesInMap = GetThemeNamesFromMap(mainMap); + + //(2) Find which themes to remove from map and which + // themes to check + IEnumerable themesToRemove = themeNamesInMap; + + //(3) Find which new themes to add to the map from the database + List themesToAdd = themeNamesInDb; + + //(4) Removing themes from map + foreach (string themeToRemove in themesToRemove) + { + RemoveThemeFromMap(mainMap, themeToRemove); + } + + //(6) Add any new themes from database to map + var itemsToAdd = new List>(themesToAdd.Count); + foreach (var themeToAdd in themesToAdd) + { + var fs = GetFeatureSet(themeToAdd, mainMap.Projection); + itemsToAdd.Add(new Tuple(themeToAdd, fs)); + } + _searchPlugin.AddFeatures(itemsToAdd); + + mainMap.MapFrame.ResetBuffer(); + + } + + private void RemoveThemeFromMap(Map mainMap, string themeName) + { + var layers = mainMap.GetAllLayers(); + var themeLayer = (from layer in layers where layer.LegendText == themeName select layer as IMapLayer).FirstOrDefault(); + if (themeLayer != null) + { + var parentItem = themeLayer.GetParentItem() as IMapGroup; + if (parentItem != null) + { + parentItem.Remove(themeLayer); + } + } + } + + /// + /// Finds the map group with the name 'Themes' + /// + /// the map to search + /// The group named 'Themes' + private IMapGroup FindThemeGroup(IMap mainMap) + { + return mainMap.GetDataSitesLayer(); + } + + /// + /// Gets a list of all theme names from the DB + /// + private List GetThemeNamesFromDb() + { + var repo = RepositoryFactory.Instance.Get(); + + var resultTable = repo.GetThemesForAllSeries(); + var themeNameList = new List(resultTable.Rows.Count); + themeNameList.AddRange(from DataRow row in resultTable.Rows select Convert.ToString(row["ThemeName"])); + return themeNameList; + } + + /// + /// Gets a list of all theme names from the Map + /// + private IEnumerable GetThemeNamesFromMap(Map mainMap) + { + var themeNameList = new List(); + var themeGroup = FindThemeGroup(mainMap); + if (themeGroup != null) + { + foreach (var lay in themeGroup.Layers) + { + var pl = lay as MapPointLayer; + if (pl != null) + { + themeNameList.Add(pl.LegendText); + } + } + } + return themeNameList; + } + + + /// + /// Given a theme name, create a feature set. + /// The theme already needs to be present in the + /// database. + /// + /// the theme name (also appears in 'legend' + /// The desired projection of the theme + /// the feature set with sites of the theme in the + /// user specified projection + private IFeatureSet GetFeatureSet(string themeName, ProjectionInfo projection) + { + var repo = RepositoryFactory.Instance.Get(); + var themeID = repo.GetID(themeName); + + var themeTable = LoadThemeAsTable(themeID); + var unprojectedFs = TableToFeatureSet(themeTable); + unprojectedFs.Projection = _wgs84Projection; + unprojectedFs.Reproject(projection); + return unprojectedFs; + } + + private DataTable LoadThemeAsTable(int? themeID) + { + var repo = RepositoryFactory.Instance.Get(); + var table = repo.GetThemesTableForThemeManager(themeID); + + //to get the 'ServiceCode' + foreach (DataRow row in table.Rows) + { + string sCode = Convert.ToString(row["SiteCode"]); + if (sCode.StartsWith("NWIS")) + { + sCode = Convert.ToString(row["VarCode"]); + row["DataSource"] = "USGS"; + } + else if (sCode.StartsWith("EPA")) + { + row["DataSource"] = "EPA"; + } + else if (sCode.StartsWith("NCDC")) + { + row["DataSource"] = "National Climatic Data Center"; + } + + if (sCode.IndexOf(":") > -1) + { + row["ServiceCode"] = sCode.Substring(0, sCode.IndexOf(":")); + } + else + { + row["ServiceCode"] = sCode; + } + } + + return table; + } + + private string ConvertTime(DateTime time) + { + return time.ToString("yyyy-MM-dd HH:mm"); + } + + /// + /// given a data table, create an in-memory point feature set. + /// The feature set must have the 'Latitude' and 'Longitude' numeric + /// columns + /// + /// The table of distinct series + /// The projection of the theme feature set + /// A point FeatureSet in the WGS-84 coordinate system + /// All columns of the data table will be converted to atrribute fields + private IFeatureSet TableToFeatureSet(DataTable themeTable, ProjectionInfo projection = null) + { + //index of the Latitude column + int latColIndex = -1; + + //index of the Longitude column + int lonColIndex = -1; + + //get the latitude and longitude column indices + for (int col = 0; col < themeTable.Columns.Count; col++) + { + string colName = themeTable.Columns[col].ColumnName.ToLower(); + + if (colName == "latitude") latColIndex = col; + + if (colName == "longitude") lonColIndex = col; + } + + //check if the latitude column exists + if (latColIndex == -1) throw new ArgumentException("The table doesn't have a column 'Latitude'"); + //check if the longitude column exists + if (lonColIndex == -1) throw new ArgumentException("The table doesn't have a column 'Longitude'"); + + //generate attribute table schema + var fs = new FeatureSet(FeatureType.Point); + var attributeTable = fs.DataTable; + foreach (DataColumn column in themeTable.Columns) + { + attributeTable.Columns.Add(column.DataType == typeof (DateTime) + ? new Field(column.ColumnName, 'C', 16, 0) + : new DataColumn(column.ColumnName, column.DataType)); + } + + //generate features + foreach (DataRow row in themeTable.Rows) + { + double lat = Convert.ToDouble(row[latColIndex]); + double lon = Convert.ToDouble(row[lonColIndex]); + var coord = new Coordinate(lon, lat); + var newFeature = new Feature(FeatureType.Point, new[] { coord }); + fs.Features.Add(newFeature); + + var featureRow = newFeature.DataRow; + for (int c = 0; c < attributeTable.Columns.Count; c++) + { + featureRow[c] = themeTable.Columns[c].DataType == typeof (DateTime) + ? ConvertTime((DateTime) row[c]) + : row[c]; + } + } + + //to save the feature set to a file with unique name + string uniqueID = DateTime.Now.ToString("yyyyMMdd_hhmmss"); + var rnd = new Random(); + uniqueID += rnd.Next(100).ToString("000"); + var filename = Path.Combine(Settings.Instance.CurrentProjectDirectory, "theme_" + uniqueID + ".shp"); + fs.Filename = filename; + fs.Projection = _wgs84Projection; + fs.Save(); + fs.Dispose(); + + var fs2 = FeatureSet.OpenFile(filename); + + //to reproject the feature set + if (projection != null) + { + fs2.Reproject(projection); + } + + return fs2; + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/cTableView.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.TableView/cTableView.Designer.cs new file mode 100644 index 00000000..b11d3596 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/cTableView.Designer.cs @@ -0,0 +1,114 @@ +namespace HydroDesktop.Plugins.TableView +{ + partial class cTableView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + this.dataViewSeries = new System.Windows.Forms.DataGridView(); + this.dataGridViewNavigator1 = new TableView.DataGridViewNavigator(); + ((System.ComponentModel.ISupportInitialize)(this.dataViewSeries)).BeginInit(); + this.SuspendLayout(); + // + // dataViewSeries + // + this.dataViewSeries.AllowDrop = true; + this.dataViewSeries.AllowUserToAddRows = false; + this.dataViewSeries.AllowUserToDeleteRows = false; + this.dataViewSeries.AllowUserToResizeRows = false; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.AliceBlue; + this.dataViewSeries.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + this.dataViewSeries.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dataViewSeries.BackgroundColor = System.Drawing.SystemColors.Window; + this.dataViewSeries.CausesValidation = false; + this.dataViewSeries.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.ScrollBar; + dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dataViewSeries.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; + this.dataViewSeries.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle3.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dataViewSeries.DefaultCellStyle = dataGridViewCellStyle3; + this.dataViewSeries.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; + this.dataViewSeries.EnableHeadersVisualStyles = false; + this.dataViewSeries.Location = new System.Drawing.Point(0, 40); + this.dataViewSeries.Name = "dataViewSeries"; + this.dataViewSeries.ReadOnly = true; + this.dataViewSeries.RowHeadersVisible = false; + this.dataViewSeries.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dataViewSeries.ShowCellErrors = false; + this.dataViewSeries.ShowCellToolTips = false; + this.dataViewSeries.ShowEditingIcon = false; + this.dataViewSeries.ShowRowErrors = false; + this.dataViewSeries.Size = new System.Drawing.Size(628, 512); + this.dataViewSeries.TabIndex = 7; + // + // dataGridViewNavigator1 + // + this.dataGridViewNavigator1.Location = new System.Drawing.Point(3, 3); + this.dataGridViewNavigator1.Name = "dataGridViewNavigator1"; + this.dataGridViewNavigator1.Size = new System.Drawing.Size(439, 31); + this.dataGridViewNavigator1.TabIndex = 10; + this.dataGridViewNavigator1.ValuesPerPage = 1000; + // + // cTableView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(191)))), ((int)(((byte)(219)))), ((int)(((byte)(255))))); + this.Controls.Add(this.dataGridViewNavigator1); + this.Controls.Add(this.dataViewSeries); + this.Name = "cTableView"; + this.Size = new System.Drawing.Size(628, 552); + this.Load += new System.EventHandler(this.cTableView_Load); + ((System.ComponentModel.ISupportInitialize)(this.dataViewSeries)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DataGridView dataViewSeries; + private DataGridViewNavigator dataGridViewNavigator1; + + + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/cTableView.cs b/Source/Plugins/HydroDesktop.Plugins.TableView/cTableView.cs new file mode 100644 index 00000000..7959067d --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/cTableView.cs @@ -0,0 +1,272 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Diagnostics.Contracts; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; +using HydroDesktop.Configuration; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Plugins.TableView +{ + public partial class cTableView : UserControl + { + #region Fields + + private readonly TableViewPlugin _parent; + private bool _needToRefresh; + + #endregion + + #region Constructor + + public cTableView(TableViewPlugin parent) + { + _parent = parent; + if (parent == null) throw new ArgumentNullException("parent"); + Contract.EndContractBlock(); + + InitializeComponent(); + + dataGridViewNavigator1.PageChanged += dataGridViewNavigator1_PageChanged; + + _parent.SeriesControl.SeriesCheck += seriesSelector_Refreshed; + _parent.SeriesControl.Refreshed += seriesSelector_Refreshed; + _parent.IsPanelActiveChanged += OnIsPanelActiveChanged; + + Disposed += OnDisposed; + } + + private void OnDisposed(object sender, EventArgs eventArgs) + { + _parent.SeriesControl.SeriesCheck -= seriesSelector_Refreshed; + _parent.SeriesControl.Refreshed -= seriesSelector_Refreshed; + _parent.IsPanelActiveChanged -= OnIsPanelActiveChanged; + } + + #endregion + + #region Properties + + private TableViewMode _viewMode; + public TableViewMode ViewMode + { + get { return _viewMode; } + set + { + _viewMode = value; + UpdateViewMode(); + } + } + + /// + /// Path to current database + /// + public string DatabasePath { get; private set; } + + #endregion + + #region Private methods + + private bool IsVisible + { + get { return _parent.IsPanelActive; } + } + + private void UpdateViewMode() + { + if (String.IsNullOrEmpty(Settings.Instance.DataRepositoryConnectionString)) return; + + try + { + switch (ViewMode) + { + case TableViewMode.SequenceView: + ShowAllFieldsinSequence(); + break; + case TableViewMode.JustValuesInParallel: + ShowJustValuesinParallel(); + break; + } + } + catch (InvalidOperationException) // this throws by DataGridViewNavigator if it work not finished + { + _needToRefresh = true; + } + } + + private void UpdateDatabasePath() + { + if (Settings.Instance.DataRepositoryConnectionString != null) + { + DatabasePath = SQLiteHelper.GetSQLiteFileName(Settings.Instance.DataRepositoryConnectionString); + } + } + + + + private void dataGridViewNavigator1_PageChanged(object sender, PageChangedEventArgs e) + { + if (!IsVisible) + { + _needToRefresh = true; + return; + } + + if (_needToRefresh) + { + _needToRefresh = false; + UpdateViewMode(); + return; + } + + dataViewSeries.DataSource = e.DataTable; + + if (ViewMode == TableViewMode.JustValuesInParallel) + { + // Update columns headers + var dataSeriesRepo = RepositoryFactory.Instance.Get(); + var columnDateTime = dataViewSeries.Columns["DateTime"]; + Debug.Assert(columnDateTime != null); + columnDateTime.HeaderText = "DateTime" + Environment.NewLine + "Unit"; + foreach (var id in _parent.SeriesControl.CheckedIDList) + { + var seriesNameTable = dataSeriesRepo.GetUnitSiteVarForFirstSeries(id); + try + { + var row1 = seriesNameTable.Rows[0]; + var unitsName = Convert.ToString(row1[0]); + var siteName = Convert.ToString(row1[1]); + var variableName = Convert.ToString(row1[2]); + var columnD_id = dataViewSeries.Columns["D" + id]; + Debug.Assert(columnD_id != null); + columnD_id.HeaderText = siteName + " * " + id + Environment.NewLine + + variableName + Environment.NewLine + + unitsName; + } + catch (IndexOutOfRangeException ex) + { + Debug.WriteLine(ex.StackTrace); + } + } + } + } + + private void ShowAllFieldsinSequence() + { + dataGridViewNavigator1.Initialize(new FieldsInSequenceGetter(_parent.SeriesControl.CheckedIDList)); + } + + private void ShowJustValuesinParallel() + { + dataGridViewNavigator1.Initialize(new ValuesInParallelGetter(_parent.SeriesControl.CheckedIDList)); + } + + private void OnIsPanelActiveChanged(object sender, EventArgs eventArgs) + { + if (!IsVisible) return; + if (_needToRefresh) + { + _needToRefresh = false; + RefreshTableView(); + } + } + + private void RefreshTableView() + { + if (!IsVisible) + { + _needToRefresh = true; + return; + } + + UpdateViewMode(); + UpdateDatabasePath(); + } + + private void seriesSelector_Refreshed(object sender, EventArgs e) + { + RefreshTableView(); + } + + private void cTableView_Load(object sender, EventArgs e) + { + dataViewSeries.ColumnHeadersVisible = true; + dataViewSeries.ColumnHeadersBorderStyle = ProperColumnHeadersBorderStyle; + + UpdateDatabasePath(); + } + + /// + /// Remove the column header border in the Aero theme in Vista, + /// but keep it for other themes such as standard and classic. + /// + private static DataGridViewHeaderBorderStyle ProperColumnHeadersBorderStyle + { + get + { + return (SystemFonts.MessageBoxFont.Name == "Segoe UI") + ? DataGridViewHeaderBorderStyle.None + : DataGridViewHeaderBorderStyle.Raised; + } + } + + #endregion + + private class ValuesInParallelGetter : IPagedTableGetter + { + private readonly IDataValuesRepository _dataValuesRepository; + private readonly IList _selectedIds; + + public ValuesInParallelGetter(IEnumerable selectedIds) + { + _dataValuesRepository = RepositoryFactory.Instance.Get(); + _selectedIds = selectedIds.Select(s => s).ToList(); + } + + public DataTable GetTable(int valuesPerPage, int currentPage) + { + return _dataValuesRepository.GetTableForJustValuesInParallel(_selectedIds, valuesPerPage, currentPage); + } + + public long GetTotalCount() + { + return _dataValuesRepository.GetCountForJustValuesInParallel(_selectedIds); + } + } + + private class FieldsInSequenceGetter : IPagedTableGetter + { + private readonly IDataValuesRepository _dataValuesRepository; + private readonly IList _selectedIds; + + public FieldsInSequenceGetter(IEnumerable selectedIds) + { + _dataValuesRepository = RepositoryFactory.Instance.Get(); + _selectedIds = selectedIds.Select(s => s).ToList(); + } + + public DataTable GetTable(int valuesPerPage, int currentPage) + { + return _dataValuesRepository.GetTableForAllFieldsInSequence(_selectedIds, valuesPerPage, currentPage); + } + + public long GetTotalCount() + { + return _dataValuesRepository.GetCountForAllFieldsInSequence(_selectedIds); + } + } + } + + public enum TableViewMode + { + [Description("Show All Fields in Sequence")] + SequenceView, + [Description("Show Just Values in Parallel")] + JustValuesInParallel + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/cTableView.resx b/Source/Plugins/HydroDesktop.Plugins.TableView/cTableView.resx new file mode 100644 index 00000000..c7e0d4bd --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/cTableView.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.TableView/packages.config b/Source/Plugins/HydroDesktop.Plugins.TableView/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.TableView/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/HydroDesktop.Plugins.WaterML2Client.csproj b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/HydroDesktop.Plugins.WaterML2Client.csproj new file mode 100644 index 00000000..06900d12 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/HydroDesktop.Plugins.WaterML2Client.csproj @@ -0,0 +1,150 @@ + + + + + Debug + AnyCPU + {D32C57DC-C687-4C24-9FA9-094BD91664F0} + Library + Properties + HydroDesktop.Plugins.WaterML2Client + HydroDesktop.Plugins.WaterML2Client + v4.0 + 512 + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.WaterML2Client\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Binaries\Plugins\HydroDesktop.Plugins.WaterML2Client\ + TRACE + prompt + 4 + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + + + + + + + + + + + + + + Form + + + WMLDownloadForm.cs + + + + + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + {CEB869C6-ED48-4846-9040-4E82AB58B86B} + HydroDesktop.Data + False + + + {0B9BA90B-2016-4754-915A-0AD74FD0067A} + HydroDesktop.Interfaces + False + + + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA} + HydroDesktop.WebServices + False + + + + + WMLDownloadForm.cs + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/HydroDesktop.Plugins.WaterML2Client.nuspec b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/HydroDesktop.Plugins.WaterML2Client.nuspec new file mode 100644 index 00000000..1ee6f684 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/HydroDesktop.Plugins.WaterML2Client.nuspec @@ -0,0 +1,19 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/Properties/AssemblyInfo.cs b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..e1fb3c9c --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Plugins.WaterML2Client")] +[assembly: AssemblyDescription("WaterML2 Parsing")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("HydroDesktop Team")] +[assembly: AssemblyProduct("HydroDesktop.Plugins.WaterML2Client")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("599645b8-767f-42ed-ae53-778594450479")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/WMLDownloadForm.Designer.cs b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/WMLDownloadForm.Designer.cs new file mode 100644 index 00000000..23178809 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/WMLDownloadForm.Designer.cs @@ -0,0 +1,155 @@ +namespace HydroDesktop.Plugins.WaterML2Client +{ + partial class WMLDownloadForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.tbTimeSeriesUrl = new System.Windows.Forms.TextBox(); + this.lblVariable = new System.Windows.Forms.Label(); + this.cbTheme = new System.Windows.Forms.ComboBox(); + this.btnClose = new System.Windows.Forms.Button(); + this.btnImport = new System.Windows.Forms.Button(); + this.lblDownloading = new System.Windows.Forms.Label(); + this.btnOpenFile = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 23); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(203, 13); + this.label1.TabIndex = 1; + this.label1.Text = "Enter time series url or path to existing file:"; + // + // tbTimeSeriesUrl + // + this.tbTimeSeriesUrl.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbTimeSeriesUrl.Location = new System.Drawing.Point(15, 43); + this.tbTimeSeriesUrl.Name = "tbTimeSeriesUrl"; + this.tbTimeSeriesUrl.Size = new System.Drawing.Size(431, 20); + this.tbTimeSeriesUrl.TabIndex = 2; + // + // lblVariable + // + this.lblVariable.AutoSize = true; + this.lblVariable.Location = new System.Drawing.Point(12, 77); + this.lblVariable.Name = "lblVariable"; + this.lblVariable.Size = new System.Drawing.Size(97, 13); + this.lblVariable.TabIndex = 5; + this.lblVariable.Text = "Add data to theme:"; + // + // cbTheme + // + this.cbTheme.FormattingEnabled = true; + this.cbTheme.Location = new System.Drawing.Point(15, 96); + this.cbTheme.Name = "cbTheme"; + this.cbTheme.Size = new System.Drawing.Size(217, 21); + this.cbTheme.TabIndex = 4; + // + // btnClose + // + this.btnClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnClose.Location = new System.Drawing.Point(464, 179); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(75, 23); + this.btnClose.TabIndex = 6; + this.btnClose.Text = "Close"; + this.btnClose.UseVisualStyleBackColor = true; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); + // + // btnImport + // + this.btnImport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnImport.Location = new System.Drawing.Point(355, 179); + this.btnImport.Name = "btnImport"; + this.btnImport.Size = new System.Drawing.Size(103, 23); + this.btnImport.TabIndex = 7; + this.btnImport.Text = "Import"; + this.btnImport.UseVisualStyleBackColor = true; + this.btnImport.Click += new System.EventHandler(this.btnAdd_Click); + // + // lblDownloading + // + this.lblDownloading.AutoSize = true; + this.lblDownloading.Location = new System.Drawing.Point(248, 23); + this.lblDownloading.Name = "lblDownloading"; + this.lblDownloading.Size = new System.Drawing.Size(78, 13); + this.lblDownloading.TabIndex = 1; + this.lblDownloading.Text = "Downloading..."; + this.lblDownloading.Visible = false; + // + // btnOpenFile + // + this.btnOpenFile.Location = new System.Drawing.Point(464, 43); + this.btnOpenFile.Name = "btnOpenFile"; + this.btnOpenFile.Size = new System.Drawing.Size(75, 23); + this.btnOpenFile.TabIndex = 8; + this.btnOpenFile.Text = "Open...."; + this.btnOpenFile.UseVisualStyleBackColor = true; + this.btnOpenFile.Click += new System.EventHandler(this.btnOpenFile_Click); + // + // WMLDownloadForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.btnClose; + this.ClientSize = new System.Drawing.Size(551, 214); + this.Controls.Add(this.btnOpenFile); + this.Controls.Add(this.lblDownloading); + this.Controls.Add(this.btnImport); + this.Controls.Add(this.btnClose); + this.Controls.Add(this.lblVariable); + this.Controls.Add(this.cbTheme); + this.Controls.Add(this.tbTimeSeriesUrl); + this.Controls.Add(this.label1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "WMLDownloadForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Import from WaterML2"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox tbTimeSeriesUrl; + private System.Windows.Forms.Label lblVariable; + private System.Windows.Forms.ComboBox cbTheme; + private System.Windows.Forms.Button btnClose; + private System.Windows.Forms.Button btnImport; + private System.Windows.Forms.Label lblDownloading; + private System.Windows.Forms.Button btnOpenFile; + } +} \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/WMLDownloadForm.cs b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/WMLDownloadForm.cs new file mode 100644 index 00000000..2a995c17 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/WMLDownloadForm.cs @@ -0,0 +1,168 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Net; +using System.Windows.Forms; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.WebServices.WaterML; + +namespace HydroDesktop.Plugins.WaterML2Client +{ + public partial class WMLDownloadForm : Form + { + private readonly ISeriesSelector _seriesControl; + private WebClient _webClient; + + public WMLDownloadForm(ISeriesSelector seriesControl) + { + if (seriesControl == null) throw new ArgumentNullException("seriesControl"); + _seriesControl = seriesControl; + + InitializeComponent(); + + var themeTable = RepositoryFactory.Instance.Get().GetAll(); + + cbTheme.DataSource = themeTable; + cbTheme.DisplayMember = "Name"; + cbTheme.ValueMember = "Id"; + } + + private void SetControlsForDownloading(bool downloading) + { + tbTimeSeriesUrl.Enabled = !downloading; + cbTheme.Enabled = !downloading; + btnClose.Enabled = !downloading; + btnOpenFile.Enabled = !downloading; + + if (!downloading) + { + btnImport.Text = "Import"; + lblDownloading.Visible = false; + } + else + { + btnImport.Text = "Cancel"; + lblDownloading.Visible = true; + } + } + + private void btnAdd_Click(object sender, EventArgs e) + { + var wt = _webClient; + if (wt != null) + { + wt.CancelAsync(); + return; + } + + var url = tbTimeSeriesUrl.Text; + if (String.IsNullOrEmpty(url)) + { + MessageBox.Show(this, "Not valid url or file path.", "Validation", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + var themeName = cbTheme.Text; + if (String.IsNullOrEmpty(themeName)) + { + MessageBox.Show(this, "Not valid theme.", "Validation", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + // Check what selected: url of file + if (!File.Exists(url)) + { + Uri uri; + try + { + uri = new Uri(url); + } + catch (UriFormatException) + { + MessageBox.Show(this, "Not valid url.", "Validation", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + SetControlsForDownloading(true); + + _webClient = new WebClient(); + var file = Path.GetTempFileName(); + _webClient.DownloadFileAsync(uri, file); + _webClient.DownloadFileCompleted += delegate(object o, AsyncCompletedEventArgs args) + { + _webClient.Dispose(); + _webClient = null; + SetControlsForDownloading(false); + if (args.Cancelled) + { + MessageBox.Show(this, "Download Cancelled.", "Cancelled", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + if (args.Error != null) + { + MessageBox.Show(this, args.Error.Message, "Download Failed", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + ImportFromFile(file, themeName); + }; + } + else + { + ImportFromFile(url, themeName); + } + } + + private void ImportFromFile(string fileName, string themeName) + { + var parser = new WaterML20Parser(); + IList seriesList; + try + { + seriesList = parser.ParseGetValues(fileName); + } + catch (Exception ex) + { + MessageBox.Show(this, ex.Message, "Parse error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + try + { + var db = RepositoryFactory.Instance.Get(); + var theme = new Theme(themeName); + foreach (var series in seriesList) + { + db.SaveSeries(series, theme, OverwriteOptions.Copy); + } + _seriesControl.RefreshSelection(); + MessageBox.Show(this, "Data imported successfully.", "Information", MessageBoxButtons.OK, + MessageBoxIcon.Information); + } + catch (Exception ex) + { + MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void btnClose_Click(object sender, EventArgs e) + { + Close(); + } + + private void btnOpenFile_Click(object sender, EventArgs e) + { + using (var ofd = new OpenFileDialog()) + { + if (ofd.ShowDialog(this) == DialogResult.OK) + { + tbTimeSeriesUrl.Text = ofd.FileName; + } + } + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/WMLDownloadForm.resx b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/WMLDownloadForm.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/WMLDownloadForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/WaterML2ClientPlugin.cs b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/WaterML2ClientPlugin.cs new file mode 100644 index 00000000..293f7dc2 --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/WaterML2ClientPlugin.cs @@ -0,0 +1,39 @@ +using System; +using System.ComponentModel.Composition; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using HydroDesktop.Common; +using HydroDesktop.Interfaces; + +namespace HydroDesktop.Plugins.WaterML2Client +{ + public class WaterML2ClientPlugin : Extension + { + /// + /// Series View + /// + [Import("SeriesControl", typeof(ISeriesSelector))] + internal ISeriesSelector SeriesControl { get; private set; } + + public override void Activate() + { + base.Activate(); + + var head = App.HeaderControl; + var action = new SimpleActionItem("WaterML2", + delegate + { + new WMLDownloadForm(SeriesControl).ShowDialog(); + }) + {RootKey = SharedConstants.SearchRootkey, SortOrder = 100}; + head.Add(action); + } + + public override void Deactivate() + { + App.HeaderControl.RemoveAll(); + + base.Deactivate(); + } + } +} diff --git a/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/packages.config b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Plugins/HydroDesktop.Plugins.WaterML2Client/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ArcGisOnline/ArcGISOnlineForm.Designer.cs b/Source/Plugins/Plugins.ArcGisOnline/ArcGISOnlineForm.Designer.cs new file mode 100644 index 00000000..2116ca84 --- /dev/null +++ b/Source/Plugins/Plugins.ArcGisOnline/ArcGISOnlineForm.Designer.cs @@ -0,0 +1,98 @@ +namespace HydroDesktop.ArcGisOnline +{ + partial class ArcGISOnlineForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btnOK = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // btnOK + // + this.btnOK.Location = new System.Drawing.Point(437, 87); + this.btnOK.Name = "btnOK"; + this.btnOK.Size = new System.Drawing.Size(75, 23); + this.btnOK.TabIndex = 0; + this.btnOK.Text = "OK"; + this.btnOK.UseVisualStyleBackColor = true; + this.btnOK.Click += new System.EventHandler(this.btnOK_Click); + // + // btnCancel + // + this.btnCancel.Location = new System.Drawing.Point(347, 87); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 1; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(13, 43); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(499, 20); + this.textBox1.TabIndex = 2; + this.textBox1.Text = "http://maps.usu.edu/ArcGIS/rest/services/LittleBearRiver/LBRObservationsMetadata/" + + "MapServer"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 27); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(88, 13); + this.label1.TabIndex = 3; + this.label1.Text = "Type-in the URL:"; + // + // ArcGISOnlineForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(524, 122); + this.Controls.Add(this.label1); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnOK); + this.Name = "ArcGISOnlineForm"; + this.Text = "Select ArcGIS Online URL"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Label label1; + } +} \ No newline at end of file diff --git a/Source/Plugins/Plugins.ArcGisOnline/ArcGISOnlineForm.cs b/Source/Plugins/Plugins.ArcGisOnline/ArcGISOnlineForm.cs new file mode 100644 index 00000000..9694beb0 --- /dev/null +++ b/Source/Plugins/Plugins.ArcGisOnline/ArcGISOnlineForm.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Projections; + +namespace HydroDesktop.ArcGisOnline +{ + public partial class ArcGISOnlineForm : Form + { + public ArcGISOnlineForm() + { + InitializeComponent(); + } + + public AppManager App; + + private void btnOK_Click(object sender, EventArgs e) + { + //TODO: validate URL + IFeatureSet fs = ServiceRequest.GetFeatures(this.textBox1.Text); + + fs.Projection = KnownCoordinateSystems.Geographic.World.WGS1984; + + App.Map.Layers.Add(fs); + } + + private void btnCancel_Click(object sender, EventArgs e) + { + + } + } +} diff --git a/Source/Plugins/Plugins.ArcGisOnline/ArcGISOnlineForm.resx b/Source/Plugins/Plugins.ArcGisOnline/ArcGISOnlineForm.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/Plugins.ArcGisOnline/ArcGISOnlineForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ArcGisOnline/ArcGISOnlinePlugin.cs b/Source/Plugins/Plugins.ArcGisOnline/ArcGISOnlinePlugin.cs new file mode 100644 index 00000000..a717f9c4 --- /dev/null +++ b/Source/Plugins/Plugins.ArcGisOnline/ArcGISOnlinePlugin.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using System.ComponentModel.Composition; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using DotSpatial.Data; +using DotSpatial.Symbology; + + + +namespace HydroDesktop.ArcGisOnline +{ + public class ArcGisOnlinePlugin : Extension + { + #region Fields + + private const string RootKey = DotSpatial.Controls.Header.HeaderControl.HomeRootItemKey; + + #endregion + + #region Properties + #endregion + + #region Public methods + + #endregion + + #region Plugin operations + + public override void Activate() + { + if (App == null) throw new ArgumentNullException("App"); + + // Initialize menu + var btnDownload = new SimpleActionItem("ArcGIS Online", DoRunArcGISOnline) + { + RootKey = HeaderControl.HomeRootItemKey, + GroupCaption = "ArcGIS Online", + LargeImage = Properties.Resources.arcgis_online_32, + SmallImage = Properties.Resources.arcgis_online_16 + }; + App.HeaderControl.Add(btnDownload); + + base.Activate(); + } + + /// + /// Fires when the plugin should become inactive + /// + public override void Deactivate() + { + App.HeaderControl.RemoveAll(); + + base.Deactivate(); + } + + #endregion + + #region Private methods + + private void DoRunArcGISOnline(Object sender, EventArgs e) + { + string path = App.SerializationManager.CurrentProjectDirectory; + var fd = new OpenFileDialog(); + + if (fd.ShowDialog() == DialogResult.OK) + { + string fn = fd.FileName; + + FeatureSet fs = new FeatureSet(); + fs.FilePath = fn; + int nf = fs.Features.Count; + } + + + //ArcGISOnlineForm frm = new ArcGISOnlineForm(); + //frm.App = App; + //frm.Show(); + } + + #endregion + } +} + diff --git a/Source/Plugins/Plugins.ArcGisOnline/Plugins.ArcGisOnline.csproj b/Source/Plugins/Plugins.ArcGisOnline/Plugins.ArcGisOnline.csproj new file mode 100644 index 00000000..7116ba14 --- /dev/null +++ b/Source/Plugins/Plugins.ArcGisOnline/Plugins.ArcGisOnline.csproj @@ -0,0 +1,123 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {F53FFFDC-CFCC-4F2D-BA53-BB008B7AD07D} + Library + Properties + HydroDesktop.ArcGisOnline + HydroDesktop.ArcGisOnline + v4.0 + Client + 512 + + + x86 + true + full + false + ..\..\..\Binaries\Plugins\ArcGISOnline\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + ..\..\..\Binaries\Plugins\ArcGISOnline\ + TRACE + prompt + 4 + + + + + + true + ..\..\..\Binaries\Plugins\ArcGISOnline\ + DEBUG;TRACE + full + AnyCPU + prompt + true + true + + + ..\..\..\Binaries\Plugins\ArcGISOnline\ + TRACE + true + pdbonly + AnyCPU + prompt + false + false + + + + ..\..\..\Binaries\HydroDesktop.Configuration.dll + False + + + ..\..\..\Binaries\HydroDesktop.Interfaces.dll + False + + + ..\EPADelineation\References\Newtonsoft.Json.dll + + + + + + + + + + + + + + Form + + + ArcGISOnlineForm.cs + + + + + True + True + Resources.resx + + + + + + ArcGISOnlineForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + Designer + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ArcGisOnline/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.ArcGisOnline/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..7ac91ebc --- /dev/null +++ b/Source/Plugins/Plugins.ArcGisOnline/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ArcGisOnline")] +[assembly: AssemblyDescription("Displays a layer from ArcGIS Online web service in the map.")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CUAHSI")] +[assembly: AssemblyProduct("ArcGisOnline")] +[assembly: AssemblyCopyright("Copyright © 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("98873f68-00ad-4e06-8974-21dd816a4c22")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.ArcGisOnline/Properties/Resources.Designer.cs b/Source/Plugins/Plugins.ArcGisOnline/Properties/Resources.Designer.cs new file mode 100644 index 00000000..965a9292 --- /dev/null +++ b/Source/Plugins/Plugins.ArcGisOnline/Properties/Resources.Designer.cs @@ -0,0 +1,77 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.239 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HydroDesktop.ArcGisOnline.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("HydroDesktop.ArcGisOnline.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap arcgis_online_16 { + get { + object obj = ResourceManager.GetObject("arcgis_online_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + internal static System.Drawing.Bitmap arcgis_online_32 { + get { + object obj = ResourceManager.GetObject("arcgis_online_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/Plugins.ArcGisOnline/Properties/Resources.resx b/Source/Plugins/Plugins.ArcGisOnline/Properties/Resources.resx new file mode 100644 index 00000000..cc168b75 --- /dev/null +++ b/Source/Plugins/Plugins.ArcGisOnline/Properties/Resources.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\arcgis_online_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\arcgis_online_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ArcGisOnline/Resources/arcgis_online_16.png b/Source/Plugins/Plugins.ArcGisOnline/Resources/arcgis_online_16.png new file mode 100644 index 00000000..bd73679f Binary files /dev/null and b/Source/Plugins/Plugins.ArcGisOnline/Resources/arcgis_online_16.png differ diff --git a/Source/Plugins/Plugins.ArcGisOnline/Resources/arcgis_online_32.png b/Source/Plugins/Plugins.ArcGisOnline/Resources/arcgis_online_32.png new file mode 100644 index 00000000..4ef67c48 Binary files /dev/null and b/Source/Plugins/Plugins.ArcGisOnline/Resources/arcgis_online_32.png differ diff --git a/Source/Plugins/Plugins.ArcGisOnline/ServiceRequest.cs b/Source/Plugins/Plugins.ArcGisOnline/ServiceRequest.cs new file mode 100644 index 00000000..0e75e1e9 --- /dev/null +++ b/Source/Plugins/Plugins.ArcGisOnline/ServiceRequest.cs @@ -0,0 +1,155 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using DotSpatial.Data; +using System.Net; +using System.Windows.Forms; +using Newtonsoft.Json; +using DotSpatial.Topology; +using System.Data; +using DotSpatial.Projections; +using Newtonsoft.Json.Linq; + +namespace HydroDesktop.ArcGisOnline +{ + public class ServiceRequest + { + /// + /// Given an ArcGIS Online URL, create a DotSpatial in-memory feature set + /// + /// The ArcGIS Online URL + /// a feature set that can be added to the map + public static IFeatureSet GetFeatures(string url) + { + //(1) form the url query + string[] fieldNames = new string[] { "Latitude", + "Longitude", "SiteName", "SiteCode", "VarCode", "VarName", "ServCode", + "watermluri", "StartDate", "EndDate" }; + string queryUri = GenerateQueryUri(url, fieldNames); + + using (WebClient wc = new WebClient()) + { + try + { + string response = wc.DownloadString(queryUri); + int len = response.Length; + + //Declare Json Elements + JObject mainObj = new JObject(); + JObject outputObj = new JObject(); + JArray shapeObj = new JArray(); + + mainObj = JObject.Parse(response); + shapeObj = mainObj["features"] as JArray; + + //initialize feature set + FeatureSet fs = new FeatureSet(FeatureType.Point); + //attr table + fs.DataTable.Columns.Add(new DataColumn("Latitude", typeof(double))); + fs.DataTable.Columns.Add(new DataColumn("Longitude", typeof(double))); + fs.DataTable.Columns.Add(new DataColumn("SiteName", typeof(string))); + fs.DataTable.Columns.Add(new DataColumn("SiteCode", typeof(string))); + fs.DataTable.Columns.Add(new DataColumn("VarCode", typeof(string))); + fs.DataTable.Columns.Add(new DataColumn("VarName", typeof(string))); + fs.DataTable.Columns.Add(new DataColumn("ServCode", typeof(string))); + fs.DataTable.Columns.Add(new DataColumn("WaterMLURI", typeof(string))); + fs.DataTable.Columns.Add(new DataColumn("StartDate", typeof(string))); + fs.DataTable.Columns.Add(new DataColumn("EndDate", typeof(string))); + + foreach (JObject feature in shapeObj) + { + JObject atrList = feature["attributes"] as JObject; + + double latitude = Convert.ToDouble(atrList["Latitude"]); + double longitude = Convert.ToDouble(atrList["Longitude"]); + string siteCode = Convert.ToString(atrList["SiteCode"]); + string varCode = Convert.ToString(atrList["VarCode"]); + string varName = Convert.ToString(atrList["VarName"]); + string startDate = Convert.ToString(atrList["StartDate"]); + string endDate = Convert.ToString(atrList["EndDate"]); + string siteName = Convert.ToString(atrList["SiteName"]); + string servCode = Convert.ToString(atrList["ServCode"]); + string waterMLURI = Convert.ToString(atrList["WaterMLURI"]); + + DotSpatial.Topology.Point pt = new DotSpatial.Topology.Point(longitude, latitude); + + IFeature f = fs.AddFeature(pt); + + DataRow r = f.DataRow; + + r["Latitude"] = latitude; + r["Longitude"] = longitude; + r["SiteCode"] = siteCode; + r["VarCode"] = varCode; + r["VarName"] = varName; + r["ServCode"] = servCode; + r["WaterMLURI"] = waterMLURI; + r["SiteName"] = siteName; + r["StartDate"] = startDate; + r["EndDate"] = endDate; + } + + //fs.Projection = KnownCoordinateSystems.Geographic.World.WGS1984); + + return fs; + + //outputObj = mainObj["output"] as JsonObject; + //shapeObj = outputObj["shape"] as JsonObject; + + } + catch (WebException ex) + { + MessageBox.Show(ex.Message); + } + return null; + } + } + + + //creates the complete query string URI + private static string GenerateQueryUri(string baseUri, IEnumerable fieldNames) + { + var sb = new StringBuilder(baseUri); + + if (!(baseUri.EndsWith("/"))) + { + sb.Append("/"); + } + + sb.Append("0/query?text=&"); + sb.Append("geometry=%7Bxmin%3A+-130%2C+ymin%3A+10%2C+xmax%3A+-60%2C+ymax%3A+60%7D&geometryType=esriGeometryEnvelope&"); + sb.Append("inSR=&spatialRel=esriSpatialRelIntersects&"); + sb.Append("relationParam=&"); + sb.Append("objectIds=&"); + sb.Append("where=&"); + sb.Append("time=&"); + sb.Append("returnCountOnly=false&"); + sb.Append("returnGeometry=false&"); + sb.Append("maxAllowableOffset=&"); + sb.Append("outSR=&"); + sb.Append("outFields="); + + //to append the out fields + foreach(string fieldName in fieldNames) + { + sb.Append(fieldName); + sb.Append("%2C+"); + } + + string str = sb.ToString(); + if (str.EndsWith("%2C+")) + { + str = str.Remove(str.LastIndexOf("%2C+")); + str = str + "&f=json"; + } + + return str; + + + ///0/query?text=&geometry=%7Bxmin%3A+-130%2C+ymin%3A+10%2C+xmax%3A+-60%2C+ymax%3A+60%7D&geometryType=esriGeometryEnvelope + //&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&objectIds=&where=&time=& + //returnCountOnly=false&returnIdsOnly=false&returnGeometry=false&maxAllowableOffset=&outSR=&outFields=Latitude%2C+Longitude%2C+SiteCode%2C+SiteName%2C+VarCode%2C+VarName%2C+ServCode%2C+watermluri&f=html + } + } +} diff --git a/Source/Plugins/Plugins.ArcGisOnline/package.nuspec b/Source/Plugins/Plugins.ArcGisOnline/package.nuspec new file mode 100644 index 00000000..4ef6d1df --- /dev/null +++ b/Source/Plugins/Plugins.ArcGisOnline/package.nuspec @@ -0,0 +1,24 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + + true + $description$ + + en-US + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.CRWRAggregation/Main.cs b/Source/Plugins/Plugins.CRWRAggregation/Main.cs new file mode 100644 index 00000000..67cb8f4d --- /dev/null +++ b/Source/Plugins/Plugins.CRWRAggregation/Main.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using System.Windows.Forms; + +namespace Plugins.CRWRAggregation +{ + /// + /// This plug-in combinea data from multiple stations into a single time series. + /// The plug-in takes the time series data from stations within a polygon and + /// computes an average for each time stamp, the computed values are stored in + /// a new time series. + /// The aggregated time series is linked to a new point layer, this point layer + /// is located at the centroids of the input polygons. The time series are stored + /// in the hydrodesktop sqlite database. + /// + public class Main : Extension + { + #region Variables + private SimpleActionItem action; + + #endregion Variables + + #region IExtension Members + + /// + /// Fires when the plug-in should become inactive + /// + public override void Deactivate() + { + App.HeaderControl.RemoveAll(); + base.Deactivate(); + } + + + /// + /// Initialize the DotSpatial plug-in + /// + public override void Activate() + { + action = new SimpleActionItem("CRWR\nAggregation", CRWR_Click); + action.GroupCaption = ""; + action.ToolTipText = "Aggregate point data in a polygon"; + action.SmallImage = Properties.Resources.CRWR_Logo.GetThumbnailImage(16, 16, null, IntPtr.Zero); + action.LargeImage = Properties.Resources.CRWR_Logo; + action.RootKey = HeaderControl.HomeRootItemKey; + action.ToggleGroupKey = "Hello Tim test"; + action.SortOrder = 120; //give it a high sort order to move the button to the right + App.HeaderControl.Add(action); + + base.Activate(); + } + + # endregion + + #region Click Events + + private void CRWR_Click(object sender, EventArgs e) + { + + var parFM = new Parameters_form(App); + if (parFM.Visible == false) + { + parFM.ShowDialog(App.Map.MapFrame != null ? App.Map.MapFrame.Parent : null); + } + //var res = parFM.ShowDialog(); + App.Map.FunctionMode = FunctionMode.Select; + + } + + #endregion Click Events + } +} diff --git a/Source/Plugins/Plugins.CRWRAggregation/Parameters_form.Designer.cs b/Source/Plugins/Plugins.CRWRAggregation/Parameters_form.Designer.cs new file mode 100644 index 00000000..fed78210 --- /dev/null +++ b/Source/Plugins/Plugins.CRWRAggregation/Parameters_form.Designer.cs @@ -0,0 +1,175 @@ +namespace Plugins.CRWRAggregation +{ + partial class Parameters_form + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.OK_click = new System.Windows.Forms.Button(); + this.Cancel_click = new System.Windows.Forms.Button(); + this.PolygonLayerList = new System.Windows.Forms.ComboBox(); + this.SiteList = new System.Windows.Forms.ComboBox(); + this.Polygon_Label = new System.Windows.Forms.Label(); + this.Point_Label = new System.Windows.Forms.Label(); + this.Variable_Label = new System.Windows.Forms.Label(); + this.OutputResultName = new System.Windows.Forms.TextBox(); + this.VariableList = new System.Windows.Forms.ComboBox(); + this.Name_Label = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // OK_click + // + this.OK_click.Location = new System.Drawing.Point(94, 115); + this.OK_click.Name = "OK_click"; + this.OK_click.Size = new System.Drawing.Size(75, 23); + this.OK_click.TabIndex = 11; + this.OK_click.Text = "OK"; + this.OK_click.UseVisualStyleBackColor = true; + this.OK_click.Click += new System.EventHandler(this.OK_Click); + // + // Cancel_click + // + this.Cancel_click.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.Cancel_click.Location = new System.Drawing.Point(184, 115); + this.Cancel_click.Name = "Cancel_click"; + this.Cancel_click.Size = new System.Drawing.Size(75, 23); + this.Cancel_click.TabIndex = 12; + this.Cancel_click.Text = "Cancel"; + this.Cancel_click.UseVisualStyleBackColor = true; + // + // PolygonLayerList + // + this.PolygonLayerList.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.PolygonLayerList.FormattingEnabled = true; + this.PolygonLayerList.Location = new System.Drawing.Point(94, 9); + this.PolygonLayerList.Name = "PolygonLayerList"; + this.PolygonLayerList.Size = new System.Drawing.Size(254, 21); + this.PolygonLayerList.TabIndex = 2; + // + // SiteList + // + this.SiteList.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.SiteList.FormattingEnabled = true; + this.SiteList.Location = new System.Drawing.Point(94, 36); + this.SiteList.Name = "SiteList"; + this.SiteList.Size = new System.Drawing.Size(254, 21); + this.SiteList.TabIndex = 4; + // + // Polygon_Label + // + this.Polygon_Label.AutoSize = true; + this.Polygon_Label.Location = new System.Drawing.Point(13, 12); + this.Polygon_Label.Name = "Polygon_Label"; + this.Polygon_Label.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.Polygon_Label.Size = new System.Drawing.Size(74, 13); + this.Polygon_Label.TabIndex = 1; + this.Polygon_Label.Text = "Polygon Layer"; + // + // Point_Label + // + this.Point_Label.AutoSize = true; + this.Point_Label.Location = new System.Drawing.Point(62, 39); + this.Point_Label.Name = "Point_Label"; + this.Point_Label.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.Point_Label.Size = new System.Drawing.Size(25, 13); + this.Point_Label.TabIndex = 3; + this.Point_Label.Text = "Site"; + // + // Variable_Label + // + this.Variable_Label.AutoSize = true; + this.Variable_Label.Location = new System.Drawing.Point(42, 66); + this.Variable_Label.Name = "Variable_Label"; + this.Variable_Label.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.Variable_Label.Size = new System.Drawing.Size(45, 13); + this.Variable_Label.TabIndex = 5; + this.Variable_Label.Text = "Variable"; + // + // OutputResultName + // + this.OutputResultName.Location = new System.Drawing.Point(94, 89); + this.OutputResultName.Name = "OutputResultName"; + this.OutputResultName.Size = new System.Drawing.Size(254, 20); + this.OutputResultName.TabIndex = 8; + // + // VariableList + // + this.VariableList.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.VariableList.FormattingEnabled = true; + this.VariableList.Location = new System.Drawing.Point(94, 63); + this.VariableList.Name = "VariableList"; + this.VariableList.Size = new System.Drawing.Size(254, 21); + this.VariableList.TabIndex = 6; + // + // Name_Label + // + this.Name_Label.AutoSize = true; + this.Name_Label.Location = new System.Drawing.Point(19, 92); + this.Name_Label.Name = "Name_Label"; + this.Name_Label.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.Name_Label.Size = new System.Drawing.Size(68, 13); + this.Name_Label.TabIndex = 7; + this.Name_Label.Text = "Result Name"; + // + // Parameters_form + // + this.AcceptButton = this.OK_click; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoValidate = System.Windows.Forms.AutoValidate.EnableAllowFocusChange; + this.CancelButton = this.Cancel_click; + this.ClientSize = new System.Drawing.Size(363, 147); + this.Controls.Add(this.Name_Label); + this.Controls.Add(this.VariableList); + this.Controls.Add(this.OutputResultName); + this.Controls.Add(this.Variable_Label); + this.Controls.Add(this.Point_Label); + this.Controls.Add(this.Polygon_Label); + this.Controls.Add(this.SiteList); + this.Controls.Add(this.PolygonLayerList); + this.Controls.Add(this.Cancel_click); + this.Controls.Add(this.OK_click); + this.Name = "Parameters_form"; + this.Text = "Aggregation tool"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button OK_click; + private System.Windows.Forms.Button Cancel_click; + private System.Windows.Forms.ComboBox PolygonLayerList; + private System.Windows.Forms.ComboBox SiteList; + private System.Windows.Forms.Label Polygon_Label; + private System.Windows.Forms.Label Point_Label; + private System.Windows.Forms.Label Variable_Label; + private System.Windows.Forms.TextBox OutputResultName; + private System.Windows.Forms.ComboBox VariableList; + private System.Windows.Forms.Label Name_Label; + } +} \ No newline at end of file diff --git a/Source/Plugins/Plugins.CRWRAggregation/Parameters_form.cs b/Source/Plugins/Plugins.CRWRAggregation/Parameters_form.cs new file mode 100644 index 00000000..3d195ae0 --- /dev/null +++ b/Source/Plugins/Plugins.CRWRAggregation/Parameters_form.cs @@ -0,0 +1,532 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using System.Windows.Controls; +using DotSpatial.Data; +using DotSpatial.Topology; +using HydroDesktop.Database; +using HydroDesktop.Interfaces; +using HydroDesktop.Configuration; +using HydroDesktop.Interfaces.ObjectModel; +using DotSpatial.Projections; +using DotSpatial.Symbology; +using System.Collections; + +namespace Plugins.CRWRAggregation +{ + public partial class Parameters_form : Form + { + AppManager App; + FeatureSet polygons = new FeatureSet(FeatureType.Polygon); + IFeatureSet sitesPoints = new FeatureSet(FeatureType.Point); + + List polygonData = new List(); + HashSet variables = new HashSet(); + IUnitsRepository UnitsRepository = RepositoryFactory.Instance.Get(); + DbOperations dbOperations = new DbOperations(Settings.Instance.DataRepositoryConnectionString, DatabaseTypes.SQLite); + private readonly IRepositoryManager _repositoryManager = RepositoryFactory.Instance.Get(); + + /// + /// Constructor + /// + public Parameters_form(AppManager App) + { + InitializeComponent(); + this.App = App; + populatePolygonLayerDropdown(); + populateSites(); + PolygonLayerList.SelectedValueChanged += PolySelectionChanged; + SiteList.SelectedValueChanged += SiteSelectionChanged; + PolygonLayerList.SelectedIndex = -1; + SiteList.SelectedIndex = -1; + VariableList.SelectedIndex = -1; + + } + + /// + /// If the polygon layer is selected/changed, the other + /// variables are cleared and the polygon data is stored. + /// + private void PolySelectionChanged(object sender, EventArgs e) + { + if (PolygonLayerList.SelectedIndex == -1) + { + return; + } + + SiteList.SelectedIndex = -1; + VariableList.SelectedIndex = -1; + variables.Clear(); + + getPolygons((IMapPolygonLayer)PolygonLayerList.SelectedValue); + } + + /// + /// If the site layer is selected/changed, the previous + /// values are cleared and the variables are (re)populated. + /// + private void SiteSelectionChanged(object sender, EventArgs e) + { + VariableList.SelectedIndex = -1; + variables.Clear(); + + if (PolygonLayerList.SelectedValue != null && SiteList.SelectedValue != null) + { + populateVariables(); + VariableList.SelectedIndex = -1; + } + } + + /// + /// Checks that the input string is a valid name for sites in the HydroDesktop SQLite database. + /// + /// + /// Empty string if name is valid. Otherwise, returns a suggestion for making a valid name. + private string resultNameIsValid(string nameToTest) + { + // Check for alphanumeric characters only, or underscore, or hyphen + if (!nameToTest.All(char.IsLetterOrDigit)) + { + return "Please use only alphanumeric characters, underscores, or hyphens in the name."; + } + + // Make sure this name doesn't already exist in the database + List siteCodes = getSiteCodes(); + if (siteCodes.Contains("CrwrAggregation:" + nameToTest)) + { + return "This name already exists in the database. Please try a different name."; + } + + // Everything is OK, so return an empty string + return string.Empty; + } + + /// + /// Run the tool. + /// + private void OK_Click(object sender, EventArgs e) + { + if (PolygonLayerList.SelectedValue != null && + SiteList.SelectedValue != null && + VariableList.SelectedValue != null && + !String.IsNullOrEmpty(OutputResultName.Text)) + { + // Validate site name + string nameCheckResult = resultNameIsValid(OutputResultName.Text); + if (nameCheckResult != string.Empty) + { + MessageBox.Show("Invalid site name. " + nameCheckResult, "CRWR Aggregation"); + return; + } + + List LegendElements = new List(); + + for (int i = 0; i < PolygonLayerList.Items.Count; i++) + { + LegendElements.Add(PolygonLayerList.Items[i].ToString().Split(',')[1].Substring(1)); + } + for (int i = 0; i < SiteList.Items.Count; i++) + { + LegendElements.Add(SiteList.Items[i].ToString().Split(',')[1].Substring(1)); + } + + if (!LegendElements.Contains(PolygonLayerList.Text + "_agg]")) + { + sitesPoints.Name = PolygonLayerList.Text + "_agg"; + } + else + { + int counter = 1; + do + { + if (!LegendElements.Contains(PolygonLayerList.Text + "_agg (" + counter.ToString("D") + ")]")) + { + sitesPoints.Name = PolygonLayerList.Text + "_agg (" + counter.ToString("D") + ")"; + } + else + { + counter = counter + 1; + } + + } while (String.IsNullOrEmpty(sitesPoints.Name)); + + } + + sitesPoints.Projection = App.Map.Projection; + sitesPoints.DataTable.Columns.Add(new DataColumn("SiteCode", typeof(string))); + + var symb = new LabelSymbolizer + { + FontColor = Color.Black, + FontSize = 10, + FontFamily = "Arial", + PreventCollisions = true, + HaloEnabled = true, + HaloColor = Color.White, + Orientation = ContentAlignment.MiddleRight, + OffsetX = 0.0f, + OffsetY = 0.0f, + }; + + AggregateData(); + + IFeatureLayer flayer = App.Map.Layers.Add(sitesPoints); + + App.Map.AddLabels(flayer, string.Format("[{0}]", "SiteCode"), + "", symb, ""); + flayer.ShowLabels = true; + + MessageBox.Show("The time series aggregation is completed.", "CRWR Aggregation", + MessageBoxButtons.OK, MessageBoxIcon.Information); + Parameters_form.ActiveForm.Close(); + } + else + MessageBox.Show("Please complete the missing parts of the form.", "CRWR Aggregation"); + } + + private void Cancel_Click(object sender, EventArgs e) + { + this.DialogResult = System.Windows.Forms.DialogResult.Cancel; + } + + /// + /// Create a list of the polygon layers available in + /// the map and populate the dropdown menu. + /// + private void populatePolygonLayerDropdown() + { + var map = (Map)App.Map; + Dictionary layer = new Dictionary(); + + foreach (var polygonLayer in map.GetAllLayers().OfType().Reverse()) + layer.Add(polygonLayer, polygonLayer.LegendText); + + if (layer.Count > 0) + { + PolygonLayerList.DataSource = new BindingSource(layer, null); + PolygonLayerList.DisplayMember = "Value"; + PolygonLayerList.ValueMember = "Key"; + } + + } + + /// + /// Populate the sites dropdown menu from the + /// information in the map. + /// + private void populateSites() + { + var map = (Map)App.Map; + Dictionary layer = new Dictionary(); + + foreach (var pointLayer in map.GetAllLayers().OfType().Reverse()) + layer.Add(pointLayer, pointLayer.LegendText); + + if (layer.Count > 0) + { + SiteList.DataSource = new BindingSource(layer, null); + SiteList.DisplayMember = "Value"; + SiteList.ValueMember = "Key"; + } + } + + /// + /// Populate the variables available from the selected site + /// layer, the polygon layer, and the selected polygons in + /// the map within this layer. + /// + private void populateVariables() + { + polygonData.Clear(); + + foreach (IFeature polygon in polygons.Features) + { + PolygonData data = new PolygonData(); + data.polygon = polygon; + + IMapPointLayer pointLayer = ((KeyValuePair)SiteList.SelectedItem).Key; + var features = pointLayer.DataSet.Features; + + foreach (IFeature point in features) + { + if (point.Intersects(polygon)) + { + SiteData siteData = new SiteData(); + siteData.site = point; + + foreach (var fld in point.ParentFeatureSet.GetColumns()) + { + var getColumnValue = (Func)(column => (point.DataRow[column].ToString())); + var strValue = getColumnValue(fld.ColumnName); + + switch (fld.ColumnName) + { + case "SiteCode": + siteData.siteCode = strValue; + break; + case "VarCode": + siteData.variableCode = strValue; + break; + case "VarName": + siteData.variableName = strValue; + break; + } + } + + data.sites.Add(siteData); + variables.Add(siteData.variableName); + } + } + + polygonData.Add(data); + } + + if (variables.Count > 0) + VariableList.DataSource = new BindingSource(variables, null); + } + + /// + /// This function stores the selected polygons in the + /// map from the polygon layer. + /// + private void getPolygons(IMapPolygonLayer polyLayer) + { + polygons.Features.Clear(); + + if (polyLayer.IsVisible && polyLayer.Selection.Count > 0) + { + foreach (var f in polyLayer.Selection.ToFeatureList()) + { + polygons.Features.Add(f); + } + + polygons.Projection = App.Map.Projection; + } + + } + + /// + /// This function retrieves a table from the database, + /// creates and stores the new time series. + /// + private void AggregateData() + { + foreach (var polygon in polygonData) + { + foreach (var site in polygon.sites) + { + if ((String)VariableList.SelectedItem == site.variableName) + { + site.variableID = getVariableID(site.variableCode); + site.siteID = getSiteId(site.siteCode); + + getSeriesID(site.siteID, site.variableID, polygon); + } + } + + Series seriesToSave = getSeriesFromTable(polygon); + Theme theme = getThemeParameters(); + // _repositoryManager.SaveSeries(int siteID, int variableID, string methodDescription, string themeName, DataTable dataValues); + _repositoryManager.SaveSeries(seriesToSave, theme, OverwriteOptions.Append); + } + } + + /// + /// This function gets the time series (date - value) + /// + private Series getSeriesFromTable(PolygonData polygon) + { + DataTable averageTable = getAverageTable(polygon); + Series series = new Series(); + series.Site = getSitesParameters(polygon); + var site = polygon.sites.Find(f => f.variableName == VariableList.SelectedValue.ToString()); + series.Variable = getVariablesParameters(site.variableID); + series.CreationDateTime = DateTime.Now; + series.LastCheckedDateTime = DateTime.Now; + series.UpdateDateTime = DateTime.Now; + + foreach (DataRow row in averageTable.Rows) + { + series.AddDataValue((DateTime)row["LocalDateTime"], (Double)row["AVG(DataValues.DataValue)"]); + } + return series; + } + + /// + /// This function gets the variable information. + /// + private Variable getVariablesParameters(int variableID) + { + Variable variable = new Variable(); + variable.Code = "CrwrAggregation:" + OutputResultName.Text; + variable.Name = VariableList.Text; + variable.Speciation = "Unknown"; + variable.SampleMedium = "Not Relevant"; + variable.ValueType = "Derived Value"; + variable.IsRegular = false; + variable.IsCategorical = false; + //variable.TimeSupport = 0.0; + variable.DataType = "Average"; + variable.GeneralCategory = "Unknown"; + variable.NoDataValue = -9999; + int timesUnitsID = getTimeUnitsID(variableID); + variable.TimeUnit = UnitsRepository.GetByKey(timesUnitsID); + int variableUnitsID = getVariableUnitsID(variableID); + variable.VariableUnit = UnitsRepository.GetByKey(variableUnitsID); + + return variable; + } + + /// + /// This function gets the site information. + /// + private Site getSitesParameters(PolygonData polygon) + { + IFeature centroid = polygon.polygon.Centroid(); + var newpoint = sitesPoints.AddFeature(centroid); + + Site site = new Site(); + var xy = new[] { centroid.Coordinates.First().X, centroid.Coordinates.First().Y }; + String projectionString = "GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[" + + "\"WGS_1984\",6378137,298.257223562997]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.0174532925199433]]"; + var _wgs84Projection = ProjectionInfo.FromEsriString(projectionString); + Reproject.ReprojectPoints(xy, new double[] { 0, 0 }, App.Map.Projection, _wgs84Projection, 0, 1); + + int indexNumber = (polygonData.IndexOf(polygon) + 1); + + site.Code = "CrwrAggregation:" + OutputResultName.Text + indexNumber.ToString(); + newpoint.DataRow.BeginEdit(); + newpoint.DataRow["SiteCode"] = site.Code.ToString(); + newpoint.DataRow.EndEdit(); + + site.Name = OutputResultName.Text + indexNumber.ToString(); + site.Latitude = xy[1]; + site.Longitude = xy[0]; + //site.Elevation_m = 12; + site.VerticalDatum = "Unkown"; + //site.LocalX = 12; + //site.LocalY = 12; + //site.PosAccuracy_m = 12; + site.State = ""; + site.County = ""; + //site.Comments = "testing"; + //site.Country = "Mexico"; + //site.SiteType = "Type"; + + return site; + } + + /// + /// This function creates a new theme. + /// + private Theme getThemeParameters() + { + Theme theme = new Theme(); + theme.Name = "CRWR Aggregation"; + //theme.Description = ""; + return theme; + } + + /// + /// This function gets the variable's ids. + /// + private int getVariableID(String variableCode) + { + var query = + "SELECT VariableID FROM Variables WHERE VariableCode = " + + "'" + variableCode + "'"; + var result = dbOperations.ExecuteSingleOutput(query); + return Convert.ToInt32(result); + } + + /// + /// This function gets the variable unit's ids. + /// + private int getVariableUnitsID(int variableID) + { + var query = + "SELECT VariableUnitsID FROM Variables WHERE VariableID = " + + variableID.ToString(); + var result = dbOperations.ExecuteSingleOutput(query); + return Convert.ToInt32(result); + } + + /// + /// This function gets the time units's ids. + /// + private int getTimeUnitsID(int variableID) + { + var query = + "SELECT TimeUnitsID FROM Variables WHERE VariableID = " + + variableID.ToString(); + var result = dbOperations.ExecuteSingleOutput(query); + return Convert.ToInt32(result); + } + + /// + /// This function gets the site's ids. + /// + private int getSiteId(String siteCode) + { + var query = + "SELECT SiteID FROM Sites WHERE SiteCode = " + + "'" + siteCode + "'"; + var result = dbOperations.ExecuteSingleOutput(query); + return Convert.ToInt32(result); + } + + /// + /// This function gets the sitecodes's ids. + /// + private List getSiteCodes() + { + var query = "SELECT VariableCode FROM Variables"; + List rowlist = new List(); + + DataTable result = dbOperations.LoadTable(query); + + foreach (DataRow row in result.Rows) + rowlist.Add(row["VariableCode"].ToString()); + return rowlist; + } + + /// + /// This function gets the serie's ids. + /// + private void getSeriesID(int siteID, int variableID, PolygonData polygon) + { + var query = + "SELECT SeriesID FROM DataSeries WHERE SiteID = '" + + siteID + "'" + + "AND VariableID = '" + + variableID + "'"; + DataTable result = dbOperations.LoadTable(query); + + foreach (DataRow row in result.Rows) + polygon.dataSeries.Add(Convert.ToInt32(row.ItemArray.First())); + } + + /// + /// This function gets the data values. + /// + private DataTable getAverageTable(PolygonData polygon) + { + var query = + "SELECT DataValues.LocalDateTime, AVG(DataValues.DataValue) FROM DataValues" + + " LEFT JOIN DataSeries ON DataValues.SeriesID == DataSeries.SeriesID" + + " LEFT JOIN Variables ON DataSeries.VariableID == Variables.VariableID" + + " WHERE DataValues.SeriesID IN ({0}) AND DataValues.DataValue != Variables.NoDataValue" + + " GROUP BY DataValues.LocalDateTime"; + var formatted = String.Format(query, String.Join(",", polygon.dataSeries.ToArray())); + DataTable result = dbOperations.LoadTable(formatted); + return result; + } + } +} diff --git a/Source/Plugins/Plugins.CRWRAggregation/Parameters_form.resx b/Source/Plugins/Plugins.CRWRAggregation/Parameters_form.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Source/Plugins/Plugins.CRWRAggregation/Parameters_form.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.CRWRAggregation/Plugins.CRWRAggregation.csproj b/Source/Plugins/Plugins.CRWRAggregation/Plugins.CRWRAggregation.csproj new file mode 100644 index 00000000..9c5a6607 --- /dev/null +++ b/Source/Plugins/Plugins.CRWRAggregation/Plugins.CRWRAggregation.csproj @@ -0,0 +1,158 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {C8630D6D-65EB-447B-B7F5-82CC0D35A8B8} + Library + Properties + Plugins.CRWRAggregation + Plugins.CRWRAggregation + v4.0 + 512 + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\Plugins.CRWRAggregation\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\Plugins\Plugins.CRWRAggregation\Plugins.CRWRAggregation.xml + + + pdbonly + true + ..\..\..\Binaries\Plugins\Plugins.CRWRAggregation\ + TRACE + prompt + 4 + + + + False + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + False + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + False + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + False + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + False + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + False + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + + + + + + + + + + + + + + + + Form + + + Parameters_form.cs + + + + + True + True + Resources.resx + + + + + + Parameters_form.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + + + + + {882c41f5-6a96-419f-9153-8d277ed91464} + HydroDesktop.Common + False + + + {0ccd3f11-0f48-427f-bc98-9dd6d875f4bb} + HydroDesktop.Configuration + False + + + {ceb869c6-ed48-4846-9040-4e82ab58b86b} + HydroDesktop.Data + False + + + {0b9ba90b-2016-4754-915a-0ad74fd0067a} + HydroDesktop.Interfaces + False + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.CRWRAggregation/Plugins.CRWRAggregation.nuspec b/Source/Plugins/Plugins.CRWRAggregation/Plugins.CRWRAggregation.nuspec new file mode 100644 index 00000000..1ee6f684 --- /dev/null +++ b/Source/Plugins/Plugins.CRWRAggregation/Plugins.CRWRAggregation.nuspec @@ -0,0 +1,19 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.CRWRAggregation/PolygonData.cs b/Source/Plugins/Plugins.CRWRAggregation/PolygonData.cs new file mode 100644 index 00000000..f659f16e --- /dev/null +++ b/Source/Plugins/Plugins.CRWRAggregation/PolygonData.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using DotSpatial.Data; + +namespace Plugins.CRWRAggregation +{ + class PolygonData + { + public IFeature polygon; + public List sites = new List(); + public List dataSeries = new List(); + } +} diff --git a/Source/Plugins/Plugins.CRWRAggregation/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.CRWRAggregation/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..828260c4 --- /dev/null +++ b/Source/Plugins/Plugins.CRWRAggregation/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Plugins.CRWRAggregation")] +[assembly: AssemblyDescription("CRWRA Aggregation")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Gonzalo Espinosa")] +[assembly: AssemblyProduct("Plugins.CRWRAggregation")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("39782e3f-ade5-4861-9475-82431e382216")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.1")] +[assembly: AssemblyFileVersion("1.0.0.1")] diff --git a/Source/Plugins/Plugins.CRWRAggregation/Properties/Resources.Designer.cs b/Source/Plugins/Plugins.CRWRAggregation/Properties/Resources.Designer.cs new file mode 100644 index 00000000..ef0c9a44 --- /dev/null +++ b/Source/Plugins/Plugins.CRWRAggregation/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Plugins.CRWRAggregation.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("Plugins.CRWRAggregation.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap CRWR_Logo { + get { + object obj = ResourceManager.GetObject("CRWR_Logo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/Plugins.CRWRAggregation/Properties/Resources.resx b/Source/Plugins/Plugins.CRWRAggregation/Properties/Resources.resx new file mode 100644 index 00000000..887eb2c7 --- /dev/null +++ b/Source/Plugins/Plugins.CRWRAggregation/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\CRWR_Logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.CRWRAggregation/Resources/CRWR_Logo.emf b/Source/Plugins/Plugins.CRWRAggregation/Resources/CRWR_Logo.emf new file mode 100644 index 00000000..e91937b5 Binary files /dev/null and b/Source/Plugins/Plugins.CRWRAggregation/Resources/CRWR_Logo.emf differ diff --git a/Source/Plugins/Plugins.CRWRAggregation/Resources/CRWR_Logo.png b/Source/Plugins/Plugins.CRWRAggregation/Resources/CRWR_Logo.png new file mode 100644 index 00000000..5e24b2b9 Binary files /dev/null and b/Source/Plugins/Plugins.CRWRAggregation/Resources/CRWR_Logo.png differ diff --git a/Source/Plugins/Plugins.CRWRAggregation/SiteData.cs b/Source/Plugins/Plugins.CRWRAggregation/SiteData.cs new file mode 100644 index 00000000..66c4dcc6 --- /dev/null +++ b/Source/Plugins/Plugins.CRWRAggregation/SiteData.cs @@ -0,0 +1,15 @@ +using System; +using DotSpatial.Data; + +namespace Plugins.CRWRAggregation +{ + class SiteData + { + public IFeature site; + public String siteCode; + public String variableCode; + public String variableName; + public int siteID; + public int variableID; + } +} \ No newline at end of file diff --git a/Source/Plugins/Plugins.CRWRAggregation/packages.config b/Source/Plugins/Plugins.CRWRAggregation/packages.config new file mode 100644 index 00000000..2c863e13 --- /dev/null +++ b/Source/Plugins/Plugins.CRWRAggregation/packages.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ElevationGraph/ElevationCrossSection.sln b/Source/Plugins/Plugins.ElevationGraph/ElevationCrossSection.sln new file mode 100644 index 00000000..184b172d --- /dev/null +++ b/Source/Plugins/Plugins.ElevationGraph/ElevationCrossSection.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Express 2012 for Windows Desktop +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ElevationGraphPlugin", "ElevationGraphPlugin.csproj", "{DAA25278-5E68-4E3E-8B96-1B6B4A269B08}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DAA25278-5E68-4E3E-8B96-1B6B4A269B08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DAA25278-5E68-4E3E-8B96-1B6B4A269B08}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DAA25278-5E68-4E3E-8B96-1B6B4A269B08}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DAA25278-5E68-4E3E-8B96-1B6B4A269B08}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.ElevationGraph/ElevationGraphPlugin.cs b/Source/Plugins/Plugins.ElevationGraph/ElevationGraphPlugin.cs new file mode 100644 index 00000000..3a86b588 --- /dev/null +++ b/Source/Plugins/Plugins.ElevationGraph/ElevationGraphPlugin.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using ElevationGraph.Properties; + +namespace ElevationGraph +{ + public class ElevationGraphPlugin : Extension + { + #region Fields + private LineDrawing lineDrawing; + private SimpleActionItem newButton; + private bool active = false; + + #endregion Fields + + #region Plugin operations + + //Activates the plugin + public override void Activate() + { + // Initialize lineDrawing object + lineDrawing = new LineDrawing((Map)App.Map); + + // Create and add a button + newButton = new SimpleActionItem("Elevation Graph", buttonClick); + newButton.RootKey = HeaderControl.HomeRootItemKey; + newButton.ToolTipText = "Draw a line on the map to create an elevation cross" + + " section graph. Right-click or double-click to stop drawing."; + newButton.GroupCaption = "Map Tool"; + newButton.LargeImage = Resources.line_chart_icon; + newButton.ToggleGroupKey = ""; + App.HeaderControl.Add(newButton); + + base.Activate(); + } + + // Deactivates the plugin + public override void Deactivate() + { + lineDrawing.DeactivateLine(); + active = false; + + // Remove ribbon tab + App.HeaderControl.RemoveAll(); + base.Deactivate(); + } + + #endregion Plugin operations + + #region Event Handlers + + //Event handler that responds to newButton being clicked + void buttonClick(object sender, EventArgs e) + { + //Checks to see if a raster layer is loaded + if (App.Map.GetRasterLayers().Count() == 0) { + newButton.Toggle(); + MessageBox.Show("Please add a Digital Elevation Model raster layer to the map"); + return; + } + + if(!active) + { + lineDrawing.ActivateLine(); + active = true; + } + else + { + lineDrawing.DeactivateLine(); + active = false; + } + } + + #endregion Event Handlers + } +} diff --git a/Source/Plugins/Plugins.ElevationGraph/GraphForm.Designer.cs b/Source/Plugins/Plugins.ElevationGraph/GraphForm.Designer.cs new file mode 100644 index 00000000..f2c93ebf --- /dev/null +++ b/Source/Plugins/Plugins.ElevationGraph/GraphForm.Designer.cs @@ -0,0 +1,190 @@ +namespace ElevationGraph { + partial class GraphForm { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + map.VisibleChanged -= updateGraph; + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GraphForm)); + this.elevationGraph = new ZedGraph.ZedGraphControl(); + this.panel1 = new System.Windows.Forms.Panel(); + this.label3 = new System.Windows.Forms.Label(); + this.YcomboBox = new System.Windows.Forms.ComboBox(); + this.XcomboBox = new System.Windows.Forms.ComboBox(); + this.label2 = new System.Windows.Forms.Label(); + this.button2 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.zedGraphControl1 = new ZedGraph.ZedGraphControl(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // elevationGraph + // + this.elevationGraph.AutoSize = true; + this.elevationGraph.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.elevationGraph.Dock = System.Windows.Forms.DockStyle.Top; + this.elevationGraph.Location = new System.Drawing.Point(0, 0); + this.elevationGraph.Name = "elevationGraph"; + this.elevationGraph.ScrollGrace = 0D; + this.elevationGraph.ScrollMaxX = 0D; + this.elevationGraph.ScrollMaxY = 0D; + this.elevationGraph.ScrollMaxY2 = 0D; + this.elevationGraph.ScrollMinX = 0D; + this.elevationGraph.ScrollMinY = 0D; + this.elevationGraph.ScrollMinY2 = 0D; + this.elevationGraph.Size = new System.Drawing.Size(503, 0); + this.elevationGraph.TabIndex = 0; + // + // panel1 + // + this.panel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.panel1.Controls.Add(this.label3); + this.panel1.Controls.Add(this.YcomboBox); + this.panel1.Controls.Add(this.XcomboBox); + this.panel1.Controls.Add(this.label2); + this.panel1.Controls.Add(this.button2); + this.panel1.Controls.Add(this.button1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel1.Location = new System.Drawing.Point(0, 378); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(503, 32); + this.panel1.TabIndex = 1; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(3, 10); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(39, 13); + this.label3.TabIndex = 5; + this.label3.Text = "Y Axis:"; + // + // YcomboBox + // + this.YcomboBox.FormattingEnabled = true; + this.YcomboBox.Items.AddRange(new object[] { + "Meters", + "Kilometers", + "Feet", + "Miles"}); + this.YcomboBox.Location = new System.Drawing.Point(48, 7); + this.YcomboBox.Name = "YcomboBox"; + this.YcomboBox.Size = new System.Drawing.Size(88, 21); + this.YcomboBox.TabIndex = 4; + this.YcomboBox.Text = "Meters"; + this.YcomboBox.SelectedIndexChanged += new System.EventHandler(this.YcomboBox_SelectedIndexChanged); + // + // XcomboBox + // + this.XcomboBox.FormattingEnabled = true; + this.XcomboBox.Items.AddRange(new object[] { + "Meters", + "Kilometers", + "Feet", + "Miles"}); + this.XcomboBox.Location = new System.Drawing.Point(196, 7); + this.XcomboBox.Name = "XcomboBox"; + this.XcomboBox.Size = new System.Drawing.Size(88, 21); + this.XcomboBox.TabIndex = 3; + this.XcomboBox.Text = "Meters"; + this.XcomboBox.SelectedIndexChanged += new System.EventHandler(this.XcomboBox_SelectedIndexChanged); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(151, 10); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(39, 13); + this.label2.TabIndex = 2; + this.label2.Text = "X Axis:"; + // + // button2 + // + this.button2.Dock = System.Windows.Forms.DockStyle.Right; + this.button2.Location = new System.Drawing.Point(353, 0); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(75, 32); + this.button2.TabIndex = 1; + this.button2.Text = "Save"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Right; + this.button1.Location = new System.Drawing.Point(428, 0); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(75, 32); + this.button1.TabIndex = 0; + this.button1.Text = "Close"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // zedGraphControl1 + // + this.zedGraphControl1.AutoSize = true; + this.zedGraphControl1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.zedGraphControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.zedGraphControl1.Location = new System.Drawing.Point(0, 0); + this.zedGraphControl1.Name = "zedGraphControl1"; + this.zedGraphControl1.ScrollGrace = 0D; + this.zedGraphControl1.ScrollMaxX = 0D; + this.zedGraphControl1.ScrollMaxY = 0D; + this.zedGraphControl1.ScrollMaxY2 = 0D; + this.zedGraphControl1.ScrollMinX = 0D; + this.zedGraphControl1.ScrollMinY = 0D; + this.zedGraphControl1.ScrollMinY2 = 0D; + this.zedGraphControl1.Size = new System.Drawing.Size(503, 378); + this.zedGraphControl1.TabIndex = 2; + // + // GraphForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(503, 410); + this.Controls.Add(this.zedGraphControl1); + this.Controls.Add(this.panel1); + this.Controls.Add(this.elevationGraph); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "GraphForm"; + this.Text = "Elevation Graph"; + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private ZedGraph.ZedGraphControl elevationGraph; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button1; + private ZedGraph.ZedGraphControl zedGraphControl1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox YcomboBox; + private System.Windows.Forms.ComboBox XcomboBox; + } +} \ No newline at end of file diff --git a/Source/Plugins/Plugins.ElevationGraph/GraphForm.cs b/Source/Plugins/Plugins.ElevationGraph/GraphForm.cs new file mode 100644 index 00000000..ca8164f7 --- /dev/null +++ b/Source/Plugins/Plugins.ElevationGraph/GraphForm.cs @@ -0,0 +1,331 @@ +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Topology; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using ZedGraph; + +namespace ElevationGraph { + public partial class GraphForm : Form { + int numberofpoints = 1000; + Map map; + IMapRasterLayer[] rasterLayers; + double totalDist; + List elevationList; + PointPair pointPair; + List colors; + enum Units { Meters, Kilometers, Feet, Miles }; + private double[] distanceUnitFactors = new[] { .001, 0.000621371192, 3.2808399 };//km, miles, feet + Units xUnits; + Units yUnits; + List coordinates; + + /// + /// Creates a Zed Graph Form, but doesn't display it. + /// + /// The map that contains the raster layers + public GraphForm(Map m) { + InitializeComponent(); + map = m; + map.MapFrame.VisibleChanged += updateGraph; + xUnits = Units.Meters; + yUnits = Units.Meters; + } + + /// + /// Draw an elevation graph using a list of coordinates + /// + /// the coordinates to use in creating the graph + public void drawGraph(List coords){ + coordinates = coords; + rasterLayers = map.GetRasterLayers(); + elevationList = new List(); + + //initialize elevationList entries + for (int i = 0; i < rasterLayers.Length; i++) + elevationList.Add(new PointPairList()); + + getDistance(coordinates); + getElevationData(coordinates); + pickColors(rasterLayers.Length); + + updateGraph(null, null); + } + + //creates the graph using the elevationList and colors list, called by drawGraph or by map.MapFrame.VisibleChanged. + private void updateGraph(object sender, EventArgs e) { + if (zedGraphControl1.IsDisposed) + return; + + RectangleF rect = new RectangleF(0, 0, zedGraphControl1.Size.Width, zedGraphControl1.Size.Height); + String xAxisLabel = "Distance (" + xUnits + ")"; + String yAxisLabel = "Elevation (" + yUnits + ")"; + zedGraphControl1.GraphPane = new GraphPane(rect, "Elevation Graph", xAxisLabel , yAxisLabel); + if (totalDist != 0){ + switch (xUnits) + { + case Units.Meters: + zedGraphControl1.GraphPane.XAxis.Scale.Max = totalDist; + break; + case Units.Kilometers: + zedGraphControl1.GraphPane.XAxis.Scale.Max = totalDist * distanceUnitFactors[0]; + break; + case Units.Miles: + zedGraphControl1.GraphPane.XAxis.Scale.Max = totalDist * distanceUnitFactors[1]; + break; + case Units.Feet: + zedGraphControl1.GraphPane.XAxis.Scale.Max = totalDist * distanceUnitFactors[2]; + break; + } + } + + //draw curves + for (int i = 0; i < rasterLayers.Length; i++) { + if (rasterLayers[i].IsVisible) { + ZedGraph.LineItem myCurve = zedGraphControl1.GraphPane.AddCurve(rasterLayers[i].LegendText, elevationList[i], colors[i], SymbolType.None); + myCurve.Line.IsAntiAlias = true; + myCurve.Line.Width = 2f; + myCurve.Line.Fill.IsVisible = false; + } + } + + //refresh the graph + zedGraphControl1.AxisChange(); + zedGraphControl1.Refresh(); + } + + //fills the colors list with the colors to use for the lines in the graph + private void pickColors(int numberOfColors) { + double golden_ratio_conjugate = 0.618033988749895 * 360; + Random rand = new Random(); + double hue = (double) rand.Next(360); + colors = new List(); + + for (int i = 0; i < numberOfColors; i++) { + hue += golden_ratio_conjugate % 360; + colors.Add(ColorFromHSV(hue, .99, .99)); + } + } + + //converts HSV color to a System.Drawing.Color, used by pickColors + private Color ColorFromHSV(double hue, double saturation, double value) { + int hi = Convert.ToInt32(Math.Floor(hue / 60)) % 6; + double f = hue / 60 - Math.Floor(hue / 60); + + value = value * 255; + int v = Convert.ToInt32(value); + int p = Convert.ToInt32(value * (1 - saturation)); + int q = Convert.ToInt32(value * (1 - f * saturation)); + int t = Convert.ToInt32(value * (1 - (1 - f) * saturation)); + + if (hi == 0) + return Color.FromArgb(255, v, t, p); + else if (hi == 1) + return Color.FromArgb(255, q, v, p); + else if (hi == 2) + return Color.FromArgb(255, p, v, t); + else if (hi == 3) + return Color.FromArgb(255, p, q, v); + else if (hi == 4) + return Color.FromArgb(255, t, p, v); + else + return Color.FromArgb(255, v, p, q); + } + + //gets the total distance of the path from the first to the last coordinate + private void getDistance(List coordinates) { + Coordinate a, b; + totalDist = 0; + + for(int i = 0; i < coordinates.Count - 1; i++){ + a = coordinates[i]; + b = coordinates[i + 1]; + totalDist += distanceTo(a, b); + } + } + + //finds the distance between two projection coordinates + private double distanceTo(Coordinate c1, Coordinate c2) + { + double dx = Math.Abs(c2.X - c1.X); + double dy = Math.Abs(c2.Y - c1.Y); + double dist; + if (map.Projection != null) + { + if (map.Projection.IsLatLon) + { + double y = (c2.Y + c1.Y) / 2; + double factor = Math.Cos(y * Math.PI / 180); + dx *= factor; + dist = Math.Sqrt(dx * dx + dy * dy); + dist = dist * 111319.5; + } + else + { + dist = Math.Sqrt(dx * dx + dy * dy); + dist *= map.Projection.Unit.Meters; + } + } + else + { + dist = Math.Sqrt(dx * dx + dy * dy); + } + return dist; + } + + //Extracts the elevation data from the raster layers that lie on the path from the first to the last coordinate + private void getElevationData(List coordinates) { + double curX; + double curY; + double curElevation = 0; + double constXdif, constYdif; + double xAxisValue = 0; + Coordinate a, b, temp; + int numberOfRasterLayers = rasterLayers.Length; + int pointsOnThisLine; + + //iterate through all line segments + for (int i = 0; i < coordinates.Count - 1; i++) { + a = coordinates[i]; + b = coordinates[i + 1]; + pointsOnThisLine = (int) (distanceTo(a, b) / totalDist * numberofpoints); + constXdif = (Math.Abs(a.X - b.X) / pointsOnThisLine); + constYdif = (Math.Abs(a.Y - b.Y) / pointsOnThisLine); + + //extract the appropriate number of points for this line + for (int j = 0; j < pointsOnThisLine; j++) { + //x coordinate on graph for this location + switch (xUnits) + { + case Units.Meters: + xAxisValue += totalDist / numberofpoints; + break; + case Units.Kilometers: + xAxisValue += totalDist / numberofpoints * distanceUnitFactors[0]; + break; + case Units.Miles: + xAxisValue += totalDist / numberofpoints * distanceUnitFactors[1]; + break; + case Units.Feet: + xAxisValue += totalDist / numberofpoints * distanceUnitFactors[2]; + break; + } + + + //Get map coordinates + if(a.X < b.X) + curX = a.X + j * constXdif; + else + curX = a.X - j * constXdif; + + if(a.Y < b.Y) + curY = a.Y + j * constYdif; + else + curY = a.Y - j * constYdif; + + temp = new Coordinate(curX, curY); + RcIndex rowColumn = new RcIndex(); + + //get the elevation data for each raster layer at point temp + for (int k = 0; k < numberOfRasterLayers; k++) { + //Calculate raster cell coordinates + rowColumn = rasterLayers[k].DataSet.Bounds.ProjToCell(temp); + + //rasterLayers[k].DataSet.Projection. + + if (rowColumn != RcIndex.Empty && + rasterLayers[k].DataSet.Value[rowColumn.Row, rowColumn.Column] != rasterLayers[k].NoDataValue) {//Extract elevation from raster cell + curElevation = rasterLayers[k].DataSet.Value[rowColumn.Row, rowColumn.Column]; + switch (yUnits){ + case Units.Kilometers: + curElevation *= distanceUnitFactors[0]; + break; + case Units.Miles: + curElevation *= distanceUnitFactors[1]; + break; + case Units.Feet: + curElevation *= distanceUnitFactors[2]; + break; + } + pointPair = new PointPair(xAxisValue, curElevation); + elevationList[k].Add(pointPair); + } + else {//if the raster layer doesn't have data for this coordinate, set y value to NaN + pointPair = new PointPair(xAxisValue, double.NaN); + elevationList[k].Add(pointPair); + } + } + } + } + } + + //save button click + private void button2_Click(object sender, EventArgs e) { + SaveFileDialog saveFileDialog1 = new SaveFileDialog(); + + saveFileDialog1.Filter = "Bitmap File(*.bmp)|*.bmp|JPG File(*.jpg)|*.jpg|GIF File (*.gif)|*.gif|PNG File (*.png)|*.png"; + saveFileDialog1.FilterIndex = 4; + saveFileDialog1.RestoreDirectory = true; + + if (saveFileDialog1.ShowDialog() == DialogResult.OK) + { + var fileName = saveFileDialog1.FileName; + zedGraphControl1.GraphPane.GetImage().Save(fileName); + } + } + + //close button click + private void button1_Click(object sender, EventArgs e) { + this.Hide(); + map.VisibleChanged -= updateGraph; + } + + //x axis units changed + private void XcomboBox_SelectedIndexChanged(object sender, EventArgs e) { + switch ((sender as ComboBox).SelectedIndex) { + case 0: + xUnits = Units.Meters; + break; + case 1: + xUnits = Units.Kilometers; + break; + case 2: + xUnits = Units.Feet; + break; + case 3: + xUnits = Units.Miles; + break; + } + drawGraph(coordinates); + } + + //y axis units changed + private void YcomboBox_SelectedIndexChanged(object sender, EventArgs e) { + switch ((sender as ComboBox).SelectedIndex) { + case 0: + yUnits = Units.Meters; + break; + case 1: + yUnits = Units.Kilometers; + break; + case 2: + yUnits = Units.Feet; + break; + case 3: + yUnits = Units.Miles; + break; + } + drawGraph(coordinates); + } + + } +} + diff --git a/Source/Plugins/Plugins.ElevationGraph/GraphForm.resx b/Source/Plugins/Plugins.ElevationGraph/GraphForm.resx new file mode 100644 index 00000000..871be09d --- /dev/null +++ b/Source/Plugins/Plugins.ElevationGraph/GraphForm.resx @@ -0,0 +1,659 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAQAEBAAAAAAIABoBAAARgAAACAgAAAAACAAqBAAAK4EAAAwMAAAAAAgAKglAABWFQAAQEAAAAAA + IAAoQgAA/joAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////AXrfjwV7348rnumrXUu/UWsAmQAJ////Af// + /wH///8B////Af///wH///8Be+GTCYDiljec66lnpu6wl6rvssms8LT1tPO5/7Dztf9ix2T/O7Y85f// + /wF845YPheWbQZrsqXOi762hpPCu06nxsPux9Lb/sfS2/7D0tv+x9bf/sfW5/7L2uv+z9rz/asxs/1TD + Vf+g763dp/Gv/bH0tf+y9bf/tPa5/7X3u/+3973/t/i//7b3vv+0973/sva8/7D1uv+u9bn/rPS4/2nM + bP9Uw1X/rfO2/7b3vP+7+cH/ufjA/7f4v/+1973/s/a8/7H2u/+v9bn/rfS4/6v0t/+p87b/p/K0/6Xy + s/9ozGv/VMNV/6fwr/+u9Lb/s/a8/7H2u/+v9br/rfS5/6v0t/+p87b/p/K1/6Xys/+j8bL/ofCx/5/w + r/+d767/Z8tq/1TDVf+g7an/pvGx/6z0uP+t87b/rPO2/6nytf+l8bP/ovGx/6DwsP+e767/nO+t/5ru + rP+Y7ar/lu2p/2bLaf9Uw1X/mumj/5/vrP+n8bP/qPGy/6nwtP+q77X/q++3/6rut/+m77X/ou6y/53t + r/+X7Kr/kuum/4/qpP9lymn/VMNV/5Tmnf+Z7Kf/ou+u/6Pur/+k7rH/pu2y/6fstP+o7bb/qe24/6ru + uf+r7rv/re+8/63vvf+o7rr/bs1y/1TDVf+J3If/leqi/5non/+Q24X/n+uu/53mpv+V3pL/o+uz/6Ts + tP+l7Lb/p+24/6jtuf+n7bn/pu25/2/Nc/9Uw1X/ZrAo3XK7N/99wED/kMxW/3nBRf95v0D/hsVI/33H + WP+Q24z/n+mv/6Lrtf+j7Lb/ouu2/6Hrtf9uzXL/VMNV/////wFqw0ozgspReZHQYbmFyVeBhMpSoZPQ + YOt+wUWDXasTm1+tGO14xVX/nemw/53qs/+c6bL/bs1y/1TDVf////8B////Af///wH///8B////Af// + /wH///8B////Af///wFcqQ0DWqgLcWi2MfmS4p//l+iu/3DOcf9Uw1X/////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wFXpgc9XKwX54TXhP9vzXD/VMNV/////wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////AVWlBBlVpQbDTq82/1C/T/////8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BUJ8BBS2PEXkkihfbAAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//ygA + AAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAAAD///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8Bet+PEXrfjj1835Bvleeko6TrsM9514L7CZ0JrwCZACX///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8BeuCRFXrgkE2D4pZ3leekq6Prr9us7rb/uPK//8D2xP+59b7/s/O4/4HVg/9AuEH/L7Av+wac + Bpf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8Be+GTJXvh + klOE45iDmOqns57rq+ep77P/tPK6/771wf+39Lv/svO2/67zs/+s8rH/q/Kw/6rysP+p8a//gtaE/0W7 + Rv9eyF//Q7tE/////wH///8B////Af///wH///8B////Af///wF84pUFfOKULXvhlFuF5ZqPl+unv53t + qu+m8K//sfO3/7j2u/+09Lf/sfO1/67zs/+t87L/rPKx/6vysf+s87L/rvO1/6/0tv+x9bn/s/a7/7T3 + vf+L247/Sr5L/2PLZP9FvEX/////Af///wF845cJfOOWNXzilWuL56CTl+uny57uq/en8bD/svW3/7T2 + uP+x9LX/sPS0/6/zs/+u87P/rfOy/6/ztP+w9Lb/svW4/7T2u/+197z/t/e+/7b3vv+1977/tPe9/7P2 + vf+z9rz/sva7/4rbjv9Kvkv/Y8tk/0W8Rf+J55+jmu2q057urPuo8bH/s/W3/7P1t/+w9LT/r/Sz/67z + sv+u87L/sPS1/7L1t/+09rn/tve8/7j4vv+5+MD/ufjA/7j4v/+3+L//tve+/7X3vf+0973/s/a8/7L2 + u/+x9rv/sPW6/6/1uf+u9bn/idqN/0q+S/9jy2T/RbxF/57urP+397r/rPKw/6vyr/+u87L/sfS1/7T2 + uf+397z/ufi//7z5wv+7+cH/uvnB/7n4wP+4+L//t/i//7b3vv+1977/tPe9/7P2vP+y9rz/sfa7/7D1 + uv+v9br/rvW5/630uP+s9Lj/q/S3/6rztv+I2oz/Sr5L/2PLZP9FvEX/ne2p/8D7xf+y9bf/vvrE/736 + w/+8+cL/u/nC/7r5wf+5+MD/uPjA/7f4v/+2977/tfe+/7T3vf+z9rz/sva8/7H2u/+w9br/r/W6/671 + uf+t9Lj/rPS4/6v0t/+q87b/qfO2/6jztf+n8rT/pvK0/4fZi/9Kvkv/Y8tk/0W8Rf+a66b/vfrC/63z + s/+7+cH/uvjA/7n4wP+4+L//t/e//7b3vv+1973/tPa9/7P2vP+y9rv/sfW7/7D1uv+v9bn/rvS5/630 + uP+s9Lf/q/O3/6rztv+p87X/qPK1/6fytP+m8rP/pfGz/6Txsv+j8bH/htmL/0q+S/9jy2T/RbxF/5jp + ov+5+MD/qPGw/7f4v/+2977/tfe9/7T3vf+z9rz/sva7/7H2u/+w9br/r/W5/671uf+t9Lj/rPS3/6v0 + t/+q87b/qfO1/6jztf+n8rT/pvK0/6Xys/+k8bL/o/Gy/6Lxsf+h8LD/oPCw/5/wr/+F2Ir/Sr5L/2PL + ZP9FvEX/leee/7X3vv+l8K3/s/a8/7L2vP+x9rv/sPW6/6/1uv+u9bn/rfS4/6z0uP+r9Lf/qvO2/6nz + tv+o87X/p/K0/6bytP+l8rP/pPGy/6Pxsv+i8bH/ofCw/6DwsP+f8K//nu+u/53vrv+c763/m+6s/4TY + if9Kvkv/Y8tk/0W8Rf+T5Zr/sfa7/6Huqv+v9br/rvW5/630uP+u9Lj/rfS3/6zzt/+q87b/qPO1/6fy + tf+m8rT/pfKz/6Txs/+j8bL/ovGx/6Hwsf+h8LD/oPCv/5/vr/+e767/ne+t/5zurf+b7qz/mu6r/5nt + q/+Y7ar/gtiJ/0q+S/9jy2T/RbxF/5Djl/+u9bn/ne2o/6z0t/+r9Lf/q/O2/6vztf+s87X/rPK2/63y + t/+s8rb/qfG1/6bxs/+i8LH/ofCw/6Dwr/+f76//nu+u/53vrf+c7q3/m+6s/5ruq/+Z7av/mO2q/5ft + qf+W7Kn/leyo/5TsqP+B2Ij/Sr5L/2PLZP9FvEX/jeGT/6rztv+Z7KX/qPO1/6jytP+o8rT/qfKz/6nx + tP+q8bT/q/G1/6vwtv+s8Lf/rPC4/63vuP+q77f/pu+0/6Lvsv+e76//me6r/5jtqv+X7ar/lu2p/5Xs + qP+U7Kj/k+yn/5Lrpv+R66b/kOul/4DXh/9Kvkv/Y8tk/0W8Rf+K4I//pvK0/5bro/+l8bL/pfGy/6bx + sf+n8LH/p/Cy/6jws/+o77T/qe+0/6nvtf+q7rb/q+63/6vuuP+s7rj/rO+5/63vuv+t77v/qe64/6Xu + tf+h7rL/nO2v/5fsq/+T66f/juqk/43qo/+M6aP/f9eG/0q+S/9jy2T/RbxF/4jei/+j8bH/k+mh/6Lw + sP+j8K//o++v/6TvsP+l77D/pe6x/6busv+n7rP/p+20/6jttf+o7bX/qe22/6ntt/+q7rj/q+65/6vu + uv+s77r/rO+7/63vvP+u773/rvC+/67wvv+u8L3/qe66/6Xtt/+R3Jf/Sr5L/2PLZP9FvEX/hdyH/5/w + r/+R6J7/oO+t/6Dvrf+h7q3/ou6u/6Lur/+j7bD/o+2x/6Ttsf+l7LL/peyz/6bstP+m7LX/p+22/6jt + t/+o7bf/qe24/6nuuf+q7rr/q+66/6vuu/+s77z/rO+8/6vuvP+r7rv/qu67/5bdnP9Kvkv/Y8tk/0W8 + Rf+D2oT/nO6s/47nnP+d7qv/nu2r/57trP+f7az/oOyt/6Dsrv+h7K//ouuw/6Lrsf+j67H/o+uy/6Ts + s/+l7LT/pey1/6bstv+m7bb/p+23/6jtuP+o7rn/qe66/6nuu/+p7rv/qO66/6juuv+n7rn/ld2b/0q+ + S/9jy2T/RbxF/3LDV/+T5Zb/jOaa/5vsqf+c7Kn/jNl+/3a/Qv+K1Xf/nuut/57qrf+f6q7/kNqH/3fB + SP+Z457/ouuy/6Lrs/+j67P/o+y0/6Tstf+k7Lb/pey3/6btuP+m7bj/p+25/6ftuf+m7bj/pe24/6Xs + t/+U3Zv/Sr5L/2PLZP9FvEX/W6EV/2+1KP9stzD/fMdS/3jDSf9rsyP/fb47/2qyIf9xuzn/jNd//4TP + a/9msB3/cbYs/2SvG/+Dzmr/n+mu/6Drsv+h67L/ouuz/6LrtP+j7LX/o+y2/6Tst/+k7Lf/pOy3/6Ps + t/+j67b/ouu2/5Tcmv9Kvkv/Y8tk/0W8Rf9gri+Pbrs543K7Mv9utSf/dbkx/5rSZP+x4oP/qd16/4HB + Qf9msBz/abEg/5LNWf+u4ID/lM5c/2myIP9osyf/ecRT/4jUev+Z5KP/oOuz/6Drs/+h67T/ouy1/6Lr + tv+h67X/oeu1/6DrtP+f67T/k9ya/0q+S/9jy2T/RbxF/////wH///8BXL1KPXHFSot9yEzPic1X/5vV + Z/+m23T/ndhx/3C7PtN/xkn/mdVj/5/Xa/+m23T/mtRq/2GtGb9fqxL3XqoR/12qD/9otSz/fspi/53p + sP+f6rP/n+u0/5/rtP+e6rP/neqz/53qsv+S3Jn/Sr5L/2PLZP9FvEX/////Af///wH///8B////Af// + /wFgtz0RZLk9V3TASItftTox////AVG6RB1pvUBnfsZLu4HGT+9ntzpN////AU24NBVarBdjWawWv1yp + DvdbqAz/bLk3/5fkpf+d6rP/nOmy/5zpsv+b6bH/mumx/5Tcmf9Kvkv/Y8tk/0W8Rf////8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8BXKkNDVuoDH9aqAv7YK4c/43bj/+a6bD/memw/5jor/+Y6K//l92Y/0q+S/9jy2T/RbxF//// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////AVmoCkVZpwnrWagN/37Obf+W6K7/lueu/5Xnrf+V3Zf/Sr5L/2PL + ZP9FvEX/////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////AVinCSFXpgfLVqYG/26+Rv+R5af/k+es/5Tc + lv9Kvkv/Y8tk/0W8Rf////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AVemBwlWpgabVaUF/2Gy + Jf+K3pj/lNyV/0q+S/9jy2T/RbxF/////wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wFVpQRlVKQD91ipD/95yWP/Sr5L/2PLZP9FvEX/////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wFTogM1U6MC40ecBv8wmCX/VbpQ/0S7RP////8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wFQnwEVQJkJtyOKF/80lCD/JY4Y/////wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BD4UTKRyHFIcUfw3jAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAoAAAAMAAAAGAAAAABACAAAAAAAIAlAAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8Bed6NH3nejTl43o1ZcdmCeTi4QGkAmQAh////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wF6348led+OUXnejX1935GzlOekz6nttNu28b7rneWk+zCy + M/MGnAbPAJkASwCZAAf///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8Bet+QCXrgkBl64JApfuCTO4rkm1mM5J2LkOWgwZTmo+2g6qz/svC7/8D1xv/H98v/wfbF/7v0 + v/+287v/ouWl/0C3Qf89tz7/Iakh+w+gD8kDmgNT////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wF74ZMNe+CRL3vgkVF64JBrjOWdj5fpprGd6qrRpeyw86vutP+w8Lj/u/TA/7/1w/+89cD/tfO6/7Pz + uP+w87X/q/Kx/6vysf+r8rD/ouSl/0C3Qf9Fukb/VcJW/1LCUv8TohPz////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AXrg + khN64JM/euCSdXrgkaGJ5ZzDneuq16buseex8bj1tPK7/7Xyu/+287v/ufS9/7X0uf+y87b/sPO0/67z + s/+t87L/rPKx/6vysP+q8rD/qvKw/6nxr/+o8a//o+Wn/0G5Qv9IvEn/W8Zc/3nWev8iqiL/////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wF84pUDfOKUFXvhlCN74ZQxguOYTYjm + nYOM55+ljeef25Tqo/+g7qz/rvK1/7n2vf+79r3/t/S6/7Tzt/+y87b/r/O0/67zsv+t87L/rfKx/6zy + sf+r8rH/rPKx/6zysv+s8rL/rPOz/63ztP+v9Lb/sfW5/7P2u/+1977/r+uz/0a8Rv9Lv0z/Xshf/3vX + fP8iqiL/////Af///wH///8B////Af///wH///8B////AXzjlgV84pYbfOGVR3zilWOC5JmBj+mipZjr + qMOb7Knhnu6r/6Xwr/+t87T/tPW4/7X2uf+y9Lf/sfS1/7D0tf+v87T/rvOz/63zsv+t87L/rPKx/63z + sv+u87T/r/S0/7D0tv+w9Lf/svW5/7P2uv+09rz/tfe9/7b3vv+1977/tPe9/7T3vf+z9rz/ruqy/0a8 + R/9Lv0z/Xshf/3vXfP8iqiL/////Af///wH///8BfOOXB3zilyt845ZXfOKVmYPkmruP6KLNnu6s46jx + svGs87T9rfO0/6/0tf+y9bf/s/W3/7H0tf+w9LT/r/S0/6/0s/+v87P/rvOz/63zsv+t87L/r/O1/7H0 + tv+z9bn/tfa7/7b3vf+2973/tve+/7b3vv+397//tve+/7X3vv+1973/tPe9/7P3vf+z9rz/sva8/7L2 + u/+x9rv/reqy/0a8R/9Lv0z/Xshf/3vXfP8iqiL/geSabYzoopmM6KLHjumi95rsqf+l8LD/sfW3/7j3 + vP+09rj/sfS1/7D0tP+w9LT/r/Sz/6/zs/+u87P/r/Sz/6/0tP+w9LX/sPS1/7L1t/+09rr/tve8/7j4 + v/+6+MH/ufjA/7n4wP+4+L//t/i//7f3v/+2977/tfe+/7X3vf+0973/s/a8/7P2vP+y9rv/sfa7/7H1 + u/+w9br/r/W6/6/1uf+u9bn/q+mx/0a8Rv9Lv0z/Xshf/3vXfP8iqiL/iOee/630tv+v9LX/tPW3/7H0 + tf+u87L/rvOx/63ysf+s87D/rPKw/63zsv+v9LT/sfS2/7P1uP+09rn/tve8/7f4vv+5+L//uvnA/7r5 + wf+5+cH/ufjA/7j4wP+4+L//t/e//7b3vv+2977/tfe9/7T3vf+0973/s/a8/7L2vP+y9rv/sfa7/7D1 + uv+w9br/r/W5/671uf+u9bn/rfS4/6z0uP+s9Lf/quiw/0a8R/9Lv0z/Xshf/3vXfP8iqiL/jeef/8H7 + xP+597z/rPKw/6rxrv+q8q7/r/Oz/7H0tv+09rn/uPi+/7n4v/+6+MD/u/nA/7v5wf+7+cL/u/nB/7r5 + wf+5+MD/ufjA/7j4v/+3+L//t/i//7b3vv+1977/tfe+/7T3vf+z973/s/a8/7L2vP+x9rv/sfa7/7D1 + uv+v9br/r/W6/671uf+t9bn/rfS4/6z0uP+r9Lf/q/S3/6rztv+p87b/qeiv/0a8R/9Lv0z/Xshf/3vX + fP8iqiL/i+ac/8H7xv/A+8X/ufi+/7L1t/+++sT/vvrD/736w/+8+cL/vPnC/7v5wv+6+cH/uvjB/7n4 + wP+4+MD/uPi//7f4v/+2977/tve+/7X3vv+0973/tPa9/7P2vP+y9rz/sva7/7H2u/+w9br/sPW6/6/1 + uv+u9bn/rvS5/630uP+s9Lj/rPS3/6vzt/+q87b/qvO2/6nztv+o87X/qPK1/6fytP+m8rT/qOiu/0a8 + Rv9Lv0z/Xshf/3vXfP8iqiL/iuSZ/7/6xP+++sT/tve8/6/0tP+8+cL/u/nC/7v5wf+6+cH/ufjA/7n4 + wP+4+MD/t/i//7f4v/+2977/tfe+/7X3vf+0973/s/a8/7P2vP+y9rz/sfa7/7H2u/+w9br/r/W6/6/1 + uf+u9bn/rfS5/630uP+s9Lj/q/S3/6v0t/+q87b/qfO2/6nztv+p87X/p/K1/6fytP+n8rT/pvKz/6Xx + s/+l8bL/p+iu/0a8R/9Lv0z/Xshf/3vXfP8iqiL/ieOW/7z6wv+8+sL/tPa6/6zysv+6+cH/ufjA/7n4 + wP+4+MD/t/i//7f4v/+2977/tfe+/7X3vf+0973/s/a8/7L2vP+y9rz/sfa7/7H1u/+w9br/r/W6/671 + uf+u9bn/rfS5/630uP+s9Lj/q/S3/6v0t/+q87b/qfO2/6nztf+o87X/p/K1/6fytP+m8rT/pfKz/6Xy + s/+k8bL/o/Gy/6Pxsf+i8bH/puit/0a8R/9Lv0z/Xshf/3vXfP8iqiL/h+GT/7r4wf+5+MD/sPW4/6jx + sP+3+L//tve+/7b3vv+1973/tPe9/7T2vf+z9rz/sva8/7L2u/+x9rv/sPW6/7D1uv+v9bn/rvW5/670 + uf+t9Lj/rPS4/6z0t/+r87f/qvO2/6rztv+p87X/qPO1/6jytf+n8rT/pvK0/6bys/+l8rP/pPGy/6Tx + sv+j8bL/ovGx/6Lwsf+h8LD/oPCw/6Dwr/+f8K//pOes/0a8Rv9Lv0z/Xshf/3vXfP8iqiL/huCQ/7f4 + v/+3+L//rvS2/6bwrv+1973/tPe9/7P2vP+z9rz/sva7/7H2u/+x9rv/sPW6/6/1uv+v9bn/rvW5/670 + uf+t9Lj/rPS4/6z0t/+r87f/qvO2/6rztv+p87X/qPO1/6fytf+n8rT/pvK0/6Xys/+l8rP/pPGy/6Tx + sv+j8bL/ovGx/6Hwsf+h8LD/oPCw/5/wr/+f76//nu+u/57vrv+d767/pOar/0a8R/9Lv0z/Xshf/3vX + fP8iqiL/hN6N/7X3vv+0973/rPO1/6TwrP+y9rz/sva8/7H2u/+w9rv/sPW6/6/1uv+u9bn/rvW5/630 + uP+s9Lj/rPS4/6v0t/+q9Lf/qvO2/6nztv+o87X/qPO1/6fytP+m8rT/pvK0/6Xys/+k8rP/pPGy/6Px + sv+i8bH/ovGx/6HwsP+g8LD/oPCw/5/wr/+e8K//nu+u/53vrv+c763/nO+t/5vurP+a7qz/o+ar/0a8 + R/9Lv0z/Xshf/3vXfP8iqiL/g92K/7L2vP+x9rv/qfKz/6Huqv+v9br/r/W5/671uf+t9Lj/rvS4/670 + uP+t9Lf/rPO3/6vztv+q87b/qfO1/6jztf+n8rT/p/K0/6bytP+l8rP/pfGz/6Txsv+j8bL/o/Gx/6Lx + sf+h8LH/ofCw/6HwsP+g8K//n++v/5/vrv+e767/ne+t/53vrf+c7q3/m+6s/5vurP+a7qv/me2r/5nt + q/+Y7ar/oeaq/0a8Rv9Lv0z/Xshf/3vXfP8iqiL/gtyH/7D1uv+v9br/p/Gx/57uqf+t9Lj/rfS4/6z0 + uP+s9Lf/rfO3/63ztv+t87b/rfO3/63ztv+r8rb/qfK1/6fytP+m8rP/pfGz/6Txsv+j8bL/o/Gx/6Lx + sf+h8LH/ofCw/6DwsP+g8K//n++v/57vrv+e767/ne+t/5zurf+b7q3/mu6s/5rurP+a7qv/me2r/5jt + qv+X7ar/l+2p/5btqf+V7Kn/oOWp/0a8R/9Lv0z/Xshf/3vXfP8iqiL/gNqF/671uf+t9bj/pPCw/5zt + p/+r9Lf/qvS3/6rztv+r87b/q/O1/6vztf+s87X/rPK2/6zytv+t8rf/rPG3/6zxt/+r8bb/p/G0/6Tx + sv+h8LD/oPCw/6Dwr/+f8K//nu+v/57vrv+d767/nO+t/5zvrf+b7qz/mu6s/5ruq/+Z7qv/mO2r/5jt + qv+X7ar/lu2p/5btqf+V7Kj/lOyo/5TsqP+T7Kf/n+Wp/0a8R/9Lv0z/Xshf/3vXfP8iqiL/ftiB/6vz + t/+q87b/ofCu/5nspf+o87X/qPK0/6jytP+o8rT/qfKz/6nxs/+q8bT/qvG0/6vxtf+r8bX/q/C2/6zw + tv+s8Lf/rPC4/63vuP+s77j/qe+2/6bvtP+i7rH/oO+w/57vrv+c763/mu6r/5ntq/+Y7ar/mO2q/5ft + qv+W7an/luyp/5XsqP+U7Kj/lOyn/5Prp/+S66b/kuum/5Hrpv+Q66X/nuWo/0a8Rv9Lv0z/Xshf/3vX + fP8iqiL/fdd+/6nztf+o8rX/oO6s/5frpP+m8rT/pvKz/6fxs/+n8bL/qPGy/6jxsv+o8bP/qfCz/6nw + tP+q8LX/qvC1/6rvtv+r77b/q++3/6zvt/+s7rj/rO64/63uuf+t7rn/q++4/6nut/+n77X/o+6z/6Hu + sf+d7a//mu2s/5fsqv+U7Kj/k+un/5Lrp/+S66b/keum/5Hrpf+Q66X/j+qk/4/qpP+O6qT/neSn/0a8 + R/9Lv0z/Xshf/3vXfP8iqiL/fNZ8/6bytP+l8rP/ne6r/5Xrov+l8bL/pfGy/6Xxsf+m8bH/pvCx/6bw + sf+n8LL/p/Cz/6jvs/+o77T/qO+0/6nvtf+p7rX/qu62/6rutv+r7rf/q+64/6vuuP+s7rj/rO+5/6zv + uv+t77r/re+7/63vuv+r7rr/qu+5/6nvuP+n77f/ou6z/57tsf+a7K3/leup/5Hqpv+O6qT/jeqj/4zp + o/+M6aL/nOSm/0a8R/9Lv0z/Xshf/3vXfP8iqiL/etR4/6Txsv+j8bH/m+2p/5PpoP+j8LD/o/Cw/6Pw + r/+k76//pO+w/6XvsP+l77D/pe6x/6busv+m7rL/p+6z/6fus/+n7bT/qO21/6jttf+p7bX/qe22/6nt + t/+q7bf/qu64/6vuuP+r7rn/q+66/6zuuv+s7rr/rO+7/63vvP+t77z/ru+9/67wvf+v8L7/rvC+/67w + vv+u8L3/p+64/6Xtt/+g7LP/qeey/06/T/9Lv0z/Xshf/3vXfP8iqiL/edN2/6HwsP+h8LD/meyn/5Lp + n/+h76//oe+u/6Lvrv+i767/o+6v/6Pur/+j7rD/pO6w/6Ttsf+l7bH/pe2y/6Xtsv+m7bP/puy0/6fs + tP+n7LX/qO21/6jstv+o7bb/qe23/6ntuP+p7rj/qu25/6ruuf+r7rr/q+66/6vvu/+s77v/rO+8/63v + vf+t773/re+9/63vvf+s773/rO+8/6vvvP+r7rz/sem5/1TBVf9Lv0z/Xshf/3vXfP8iqiL/eNJz/5/v + r/+f8K7/mOum/5Donf+g763/oO+t/6Durf+h7q3/oe6u/6Lurv+i7q//o+2v/6PtsP+j7bH/pOyx/6Ts + sv+l7LL/peyz/6Xss/+m7LT/puy0/6bstf+n7bb/p+22/6ftt/+o7bf/qe24/6ntuP+p7rn/qu66/6ru + uv+r7rr/q+67/6vuvP+s7rz/rO+8/6vvvP+r7rz/q+67/6ruu/+p7rv/sOm5/1PBVf9Lv0z/Xshf/3vX + fP8iqiL/dtBw/5zurf+c7qz/luuk/4/nnP+e7qv/nu2r/57tq/+f7az/n+2s/6Dsrf+g7K3/oOyu/6Hs + r/+h7K//ouuw/6LrsP+i67H/o+ux/6Prsv+k67L/pOyz/6XstP+l7LT/pey1/6bstf+m7Lb/pu22/6ft + t/+n7bf/qO24/6jtuf+p7rn/qe66/6nuuv+q7rv/qu67/6nuu/+o7rr/qO66/6fuuv+n7rn/sOm4/1TB + Vf9Lv0z/Xshf/3vXfP8iqiL/dc9t/5vuq/+b7qv/lOqi/47mmv+c7ar/ne2q/53sq/+c66j/kNyG/5fk + mP+e66v/n+ut/5/rrv+g667/oOuv/6HqsP+g6a3/k9yN/5/oqv+i67H/o+uy/6Prs/+j67P/pOu0/6Ts + tf+l7LX/pey1/6Xttv+m7bf/puy3/6ftuP+n7bj/p+25/6juuf+o7rr/qO26/6fuuv+n7rn/pu25/6bt + uP+m7bj/r+i3/1TBVf9Lv0z/Xshf/3vXfP8iqiL/Xqsw/4jWdP+S45H/k+mh/4zlmf+b7Kn/m+yp/5bl + mv9/yVn/b7gx/3S9PP+F0Gv/nuut/57rrf+e6q3/n+qu/5vlpP+BzGP/a7Us/3zHV/+b5aL/oeux/6Lr + sv+i67P/ouuz/6PrtP+j7LT/pOy1/6Tstf+k7Lb/pey2/6Xtt/+m7Lj/pu24/6btuP+n7bn/pu25/6bt + uP+m7bj/pe24/6TtuP+k7Lf/rui3/1PBVf9Lv0z/Xshf/3vXfP8iqiL/UJYK/2+2Kf9vtSj/brcx/3PC + S/+G02//hNFr/2+4L/9rsyP/c7gu/261J/9psSD/crs4/4jUdv+W4pr/kd2N/3W/Q/9lsBz/bLMk/2Wv + Gv9msSH/idR4/5vlpP+g6rD/oOuy/6Hrsv+h67L/ouuz/6LrtP+i67T/o+y1/6Pstf+k7Lb/pOy3/6Tt + t/+l7Lf/pOy3/6Tst/+j7Lf/o+u2/6Prtv+i67b/rei3/1TBVf9Lv0z/Xshf/3vXfP8iqiL/VJ0W+W+4 + L/9vtSn/brQn/220Jv9ttCX/bLMk/3C1Kv+Ew0X/o9hv/5nRYv+AwED/abIh/2iyIf9zvkD/b7o2/2ew + Hf96vTj/m9Nm/4XER/9qsiL/ZbAe/3jDT/+J1Hn/l+Kd/57pr/+g6rL/oOqy/6Hqs/+h67P/oeu0/6Lr + tP+i67X/o+y2/6Pstv+j7Lb/o+u2/6Prtv+i67b/oeu1/6Hrtf+g67X/ree2/1TBVf9Lv0z/Xshf/3vX + fP8iqiL/WqkqTWm8QZluvkHjc745/3S7MP9utSb/dbkw/43KU/+i2G//reB+/7Hig/+t4ID/lc9e/3G2 + K/9msBz/aLEf/3+/P/+e1Wr/rN99/6vee/+c02f/dLgv/2GtFv9lsCD/arYw/3K+Q/+AzGb/kt6T/57p + rv+g67L/oOuz/6DrtP+h67T/oey1/6Lrtf+h67b/oeu1/6Hrtf+g67X/oOu0/5/rtP+f67T/rOe1/1PB + Vf9Lv0z/Xshf/3vXfP8iqiL/////Af///wH///8BWr5LS2fBSpV1x0nJg8tO44zQWPeT0l//ndZp/6Ta + cf+p3Xn/qt98/5TRZvNvuDTrfMFB/5XSX/+c1Wf/oNht/6Tacv+p3Xj/pdp1/37AQu1grBXhX6sS+V6q + Ef9eqhD/XaoP/2KvHf9xvkP/hdJ1/5jko/+f6rL/n+qz/5/qtP+f67T/n+u0/57qtP+e6rP/nuqz/53q + s/+d6rL/q+a1/1TBVf9Lv0z/Xshf/3vXfP8iqiL/////Af///wH///8B////Af///wFWvkwZY7pCSW3A + RG93xEmXf8dQz4bKVvONzV3/gshXv2q8RG9juD9XbcFHkXrHTMODylHvkdBb/5vVZf+c1Wj/hMdV32+7 + QWlfrBdFXawVf1utF7tcqxPtXakP/1ypDv9cqQ7/XasT/3O/R/+R3pT/numz/57qs/+e6rP/neqz/53q + s/+d6rL/nOmy/5zpsv+c6bL/qua0/1TBVf9Lv0z/Xshf/3vXfP8iqiL/////Af///wH///8B////Af// + /wH///8B////Af///wFgtz0NYrg8KWy9QkFyv0dVX7U6IV+1OgX///8BSr5MCVy4PSNuvkE5cb5Ci3jC + RtVyvUPhZ7c6OV2yMgf///8BTbg0B1WxIh9arBY3VLAhlVuqEc9cqQ35W6gM/1ypD/9ntSz/kN6V/53q + sv+d6rL/nOmy/5vpsv+b6bL/mumx/5rpsf+a6bH/q+e0/1fCVf9Lv0z/Xshf/3vXfP8iqiL/////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wFcqQ0bW6gMj1qo + C+laqAv9XqwX/37Maf+X5af/mumx/5npsP+Z6bD/meiv/5jor/+Y6K//rOe0/1rDVf9Lv0z/Xshf/3vX + fP8iqiL/////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8BW6gMDVqoC2FZqArRWacJ/1yrE/90w1D/lOSj/5jor/+X6K//l+iv/5forv+W567/q+ez/1rD + VP9Lv0z/Xshf/3vXfP8iqiL/////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////AVqoCwdZqAozWacJ01inCP9Ypwv/bLs+/43elv+W6K7/lueu/5Xn + rf+U563/quey/1nDVP9Lv0z/Xshf/3vXfP8iqiL/////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BWKcJGVemCJlXpgfxVqYG/1+u + Hf9/0XX/kuWo/5PmrP+T56z/qeax/1nDVP9Lv0z/Xshf/3vXfP8iqiL/////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AVin + CBFXpgdvVqUG7ValBf9ZqRD/eMpj/47iof+R5qv/qOax/1nCVP9Lv0z/Xshf/3vXfP8iqiL/////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wFXpgcHVqYGVVWlBdtVpQX/WKgN/27AS/+L4J3/qOaw/1nDU/9Lv0z/Xshf/3vX + fP8iqiL/////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////AValBSVVpQSrVKQD+VSjAv9drx//k9eJ/1fB + UP9Lv0z/Xshf/3vXfP8iqiL/////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wFVpQQTVKQDkVOj + Au9TpAL/WKoZ/0SqMP9FtUP/Xshf/3vXfP8iqiL/////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8BU6IDD1KiAm1SowLpTJ8D/zGRE/8tkyD/Rqo8/3LOcP8hqSH/////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wFQnwEtS54Eyy2OEvcmixj/MZIe/0OeKv8Thwz/////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BPJUKKyKMFXcciBazJowZ8zyZ + Jf8RfAv/////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AROJ + FwUPhBIbFoQSRxuFE5MGdQXjAAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA + AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA + //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA + AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA + //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA + AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA + //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//KAAAAEAAAACAAAAAAQAgAAAA + AAAAQgAAAAAAAAAAAAAAAAAAAAAAAP///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////AXrfjjF6345hed6NgXnejb953ozvW8xp/wCZAJ8AmQAh////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8Bet+PQXrfj2F6346Ped6Ov3/gkv+R5qH/qe60/7nywf/I983/z/nT/0K7 + RP8aphv/AJkA/wCZAIEAmQAR////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wF64JBBet+PcXrfj59634/PheKY/5fopv+p7bT/vvTG/8f3zP/Q+tP/y/jO/8L2 + xv++9cL/ufS9/8T1yP8/t0D/QrlD/zi1Of8WpBb/AJkA7wCZAIH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8Be+CREXrgkUF64JGBeuCQr3rfkN+L5Zz/luil/6fts/+788L/yffN/8z3z//J98v/wPXE/7z1 + wP+49Lz/s/S4/63zsv+t87L/rPOy/6zzsf/E9Mf/P7dA/0G4Qv9Hu0j/VcNW/1DBUP8QoRD/AJkA3/// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wF74ZMhe+GSUXvgkYF74JG/euCQ34rlnP+a6qn/qu+1/7fzvv/K+Mz/x/fK/8X2yP+99MD/uvS9/7b0 + uv+z87j/rvOz/63zsv+t87L/rPOy/6zzsf+r8rH/q/Kx/6rysP+q8rD/w/TH/z+3QP9BuEL/R7tI/1LB + U/9kymX/hNyF/wCZAP////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AXvh + kzF74ZNhe+GTj3vhkr974JHvj+eg/57sq/+s8bb/tPO7/8X4x//D98b/v/bC/7r0vf+39Lr/tfS5/7L0 + tv+v87P/rvOz/67zsv+t87L/rfOy/6zzsf+s8rH/q/Kx/6vysP+q8rD/qvKw/6nyr/+p8a//qPGv/8X1 + yv9BuEL/RLtF/0u+TP9YxVn/bdBu/4rfi/8AmQD/////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BfOKUQXvh + lHF74ZOPe+GTv4Djlv+O6KD/nO2q/6nxs/+29bz/wfnD/773wP+79b3/t/S6/7X0uf+z9Lf/sfS1/6/0 + s/+v9LP/rvOz/67zsv+t87L/rfOy/6zzsf+s87H/q/Kx/6vysf+q8rD/qvKw/6nysP+s87L/rfO0/7D1 + t/+y9rr/tPe8/7b4v//T+9j/RbxG/0e9SP9NwE7/WsZb/23Qbv+K34v/AJkA/////wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AXzilRF84pVBfOKUcXvh + lJ974ZTPgOOX/43ooP+g763/q/O1/7b2u/+9+b//ufe8/7b1uf+09bj/s/S3/7L0tv+w9LX/r/S0/6/0 + tP+v9LP/rvOz/67zs/+t87L/rfOy/6zzsv+s87H/q/Kx/6vysf+q8rD/rfOz/670tf+x9bj/s/a7/7X3 + vP+3+L//t/i//7b4v/+2+L7/tfe+/7X3vv+0973/0vrX/0W8Rv9HvUj/TcBO/1rGW/9t0G7/it+L/wCZ + AP////8B////Af///wH///8B////Af///wH///8B////Af///wH///8BfOOWEXzilkF84paBfOKVr3zi + ld+F5Zv/kuqk/6Dvrv+v9Lj/tfa7/7r4vv+397v/svW2/7L1tv+y9bX/sfS1/7D0tf+v9LT/r/S0/6/0 + tP+v9LP/rvOz/67zs/+t87L/rfOy/6zzsv+s87H/q/Kx/6/0tf+w9bf/sva4/7T3u/+2973/uPjA/7j4 + wP+3+L//t/i//7b4v/+2+L7/tfe+/7X3vv+0973/tPe9/7T3vf+z97z/s/a8/9H61/9FvEb/R71I/03A + Tv9axlv/bdBu/4rfi/8AmQD/////Af///wH///8B////Af///wF845chfOOXUXzjloF84pa/fOKV74rn + n/+T6qX/oe+u/6/0t/+5+L7/uvi9/7f3u/+z9bb/svW2/7L1tv+x9bX/sfS1/7D0tf+w9LT/r/S0/6/0 + tP+v9LP/r/Oz/67zs/+u87L/rfOy/63zsv+w9Lb/svW3/7P2uf+3973/uPi//7r5wf+5+cD/ufjA/7j4 + wP+4+L//t/i//7f4v/+2+L7/tve+/7X3vv+1973/tPe9/7T3vf+z973/s/a8/7L2vP+y9rz/sfa7/7H2 + u//Q+tb/RbxG/0e9SP9NwE7/WsZb/23Qbv+K34v/AJkA/33kmDF945hhfOOXj3zjl79845bviueg/5js + qf+l8bH/r/S3/736wf+6+L3/tve6/7P1tv+y9bb/svW1/7H1tf+x9bX/sPS0/7D0tP+v9LT/r/Sz/670 + s/+u9LP/rvOz/63zsv+t87L/sfW2/7P2uP+09rr/uPi+/7n4wP+7+cL/uvnB/7r5wf+5+cH/ufnA/7j4 + wP+4+MD/t/i//7f4v/+2+L//tvi+/7X3vv+1977/tPe9/7T3vf+z973/s/e8/7L2vP+y9rz/sfa7/7H2 + u/+w9rv/sPa6/6/1uv+v9br/zvnV/0W8Rv9HvUj/TcBO/1rGW/9t0G7/it+L/wCZAP9845f/ne6t/6nz + tf+z9rv/vPm//7f3u/+z9rf/sfS0/7D0s/+w9LP/r/Sz/670sv+u9LL/rvOy/67zsv+t87H/rfOx/6zz + sf+s87D/rfOx/7D0tf+z9rn/tfe7/7j4vv+6+cD/vPrC/7v5wv+7+cL/uvnB/7r5wf+5+cH/ufnA/7j4 + wP+4+MD/t/i//7f4v/+2+L//tvi+/7X3vv+1977/tPe9/7T3vf+z973/s/e8/7L2vP+y9rz/sfa7/7H2 + u/+w9rv/sPa6/6/1uv+v9br/rvW5/671uf+t9bn/rfW4/8341P9FvEb/R71I/03ATv9axlv/bdBu/4rf + i/8AmQD/fOKU/8D7w/+y9bT/rvOx/67zsf+t87H/rfOx/6zzsP+s87D/rPKw/6vyr/+r8q//qvKv/6vy + sP+v9LT/s/a4/7X2uv+5+L7/vPnC/736w/+8+sP/vPrC/7v5wv+7+cL/uvnB/7r5wf+5+cH/ufnA/7j4 + wP+4+MD/uPi//7f4v/+3+L//tvi+/7b3vv+1977/tfe9/7T3vf+0973/s/e8/7P2vP+y9rz/sva7/7H2 + u/+x9rv/sPa6/7D1uv+v9br/r/W5/671uf+u9bn/rfW4/630uP+s9Lj/rPS3/6v0t//N+NT/RbxG/0e9 + SP9NwE7/WsZb/23Qbv+K34v/AJkA/3vhkv/E/Mj/xPzH/7r4vv+t87H/qvKt/6nxrf+q8q7/r/Sz/7P1 + t/+197r/ufi+/736w/+++sT/vvrD/736w/+9+sP/vPrC/7z5wv+7+cL/u/nB/7r5wf+6+cH/ufnA/7n4 + wP+4+MD/uPi//7f4v/+3+L//tvi+/7b3vv+1977/tfe+/7T3vf+0973/s/e9/7P2vP+y9rz/sva8/7H2 + u/+x9rv/sPa7/7D1uv+v9br/r/W6/671uf+u9bn/rfW5/630uP+s9Lj/rPS4/6v0t/+r9Lf/qvS3/6rz + tv+p87b/y/jT/0W8Rv9HvUj/TcBO/1rGW/9t0G7/it+L/wCZAP9634//wvzH/8L8xv/B+8b/wfvG/6bw + qv/A+8X/v/vF/7/7xP+++sT/vvrE/736w/+9+sP/vPrD/7z6wv+7+cL/u/nC/7r5wf+6+cH/ufnB/7n5 + wP+4+MD/uPjA/7f4v/+3+L//tvi//7b4vv+1977/tfe+/7T3vf+0973/s/e9/7P3vP+y9rz/sva8/7H2 + u/+x9rv/sPa7/7D2uv+v9br/r/W6/671uf+u9bn/rfW5/631uP+s9Lj/rPS4/6v0t/+r9Lf/qvS3/6r0 + tv+p87b/qfO2/6jztf+o87X/p/O1/8r40v9FvEb/R71I/03ATv9axlv/bdBu/4rfi/8AmQD/ed6M/8D7 + xf/A+8X/v/vF/7/7xP+j76j/vvrE/736w/+9+sP/vPrD/7z6wv+7+cL/u/nC/7r5wf+6+cH/ufnB/7n5 + wP+4+MD/uPjA/7f4v/+3+L//tvi//7b4vv+1977/tfe+/7T3vf+0973/s/e9/7P3vP+y9rz/sva8/7H2 + u/+x9rv/sPa7/7D2uv+v9br/r/W6/671uf+u9bn/rfW5/631uP+s9Lj/rPS4/6v0t/+r9Lf/q/S3/6r0 + tv+q87b/qfO2/6nztf+o87X/qPO1/6fztP+n8rT/pvK0/6bys//J99H/RbxG/0e9SP9NwE7/WsZb/23Q + bv+K34v/AJkA/3jdiv+++sT/vvrE/776w/+9+sP/oO6l/7z6wv+8+cL/u/nC/7v5wf+6+cH/uvnB/7n5 + wP+5+MD/uPjA/7j4v/+3+L//t/i//7b4vv+2977/tfe+/7X3vf+0973/tPe9/7P3vP+z9rz/sva8/7L2 + u/+x9rv/sfa7/7D2uv+w9br/r/W6/6/1uf+u9bn/rvW5/631uf+t9Lj/rPS4/6z0uP+r9Lf/q/S3/6r0 + t/+q87b/qfO2/6nztv+o87X/qPO1/6fztf+n8rT/pvK0/6bytP+l8rP/pfKz/6Tys/+k8bL/yPfR/0W8 + Rv9HvUj/TcBO/1rGW/9t0G7/it+L/wCZAP9424f/vfrD/7z6wv+8+sL/u/nC/53so/+6+cH/uvnB/7n5 + wP+5+MD/uPjA/7j4wP+3+L//t/i//7b4v/+2977/tfe+/7X3vv+0973/tPe9/7P3vf+z9rz/sva8/7L2 + vP+x9rv/sfa7/7D2u/+w9br/r/W6/6/1uv+u9bn/rvW5/631uf+t9Lj/rPS4/6z0uP+r9Lf/q/S3/6r0 + t/+q87b/qfO2/6nztv+o87X/qPO1/6fztf+n8rT/pvK0/6bytP+l8rP/pfKz/6Tys/+k8bL/o/Gy/6Px + sv+i8bH/ovGx/8f30P9FvEb/R71I/03ATv9axlv/bdBu/4rfi/8AmQD/d9qF/7v5wv+6+cH/uvnB/7n5 + wf+b7KH/uPjA/7j4wP+3+L//t/i//7b4v/+2+L7/tfe+/7X3vv+0973/tPe9/7P3vf+z97z/sva8/7L2 + vP+x9rv/sfa7/7D2u/+w9rr/r/W6/6/1uv+u9bn/rvW5/631uf+t9bj/rPS4/6z0uP+r9Lf/q/S3/6r0 + t/+q9Lb/qfO2/6nztv+o87X/qPO1/6fztf+n87T/pvK0/6bytP+l8rP/pfKz/6Tys/+k8rL/o/Gy/6Px + sv+i8bH/ovGx/6Hxsf+h8bD/oPCw/6DwsP/F9s//RbxG/0e9SP9NwE7/WsZb/23Qbv+K34v/AJkA/3bZ + gv+5+cD/uPjA/7j4wP+3+L//mOqf/7b4v/+2+L7/tfe+/7X3vv+0973/tPe9/7P3vf+z97z/sva8/7L2 + vP+x9rv/sfa7/7D2u/+w9rr/r/W6/6/1uv+v9bn/rvW5/671uf+t9bj/rfS4/6z0uP+s9Lf/q/S3/6v0 + t/+q9Lb/qvO2/6nztv+p87X/qPO1/6jztf+n87T/p/K0/6bytP+m8rT/pfKz/6Xys/+k8rP/pPGy/6Px + sv+j8bL/ovGx/6Lxsf+h8bH/ofCw/6DwsP+g8LD/n/Cv/5/wr/+e8K//xfXO/0W8Rv9HvUj/TcBO/1rG + W/9t0G7/it+L/wCZAP912ID/t/i//7f4v/+2+L7/tve+/5bpnf+1973/tPe9/7T3vf+z97z/s/a8/7L2 + vP+y9rv/sfa7/7H2u/+w9rv/sPW6/6/1uv+v9br/rvW5/671uf+t9bn/rfS4/6z0uP+s9Lj/q/S3/6v0 + t/+q9Lf/qvO2/6nztv+p87b/qPO1/6jztf+n87X/p/K0/6bytP+m8rT/pfKz/6Xys/+k8rP/pPGy/6Px + sv+j8bL/ovGx/6Lxsf+h8bH/ofCw/6DwsP+g8LD/n/Cv/5/wr/+e8K//nu+u/53vrv+d767/nO+t/8T1 + zv9FvEb/R71I/03ATv9axlv/bdBu/4rfi/8AmQD/dNZ9/7X3vv+1977/tPe9/7T3vf+U6Zz/s/e8/7L2 + vP+y9rz/sfa7/7H2u/+w9rv/sPW6/6/1uv+v9br/rvW5/671uf+t9bn/rfS4/6z0uP+s9Lj/q/S3/6v0 + t/+q9Lf/qvO2/6nztv+p87b/qPO1/6jztf+n87X/p/K0/6bytP+m8rT/pfKz/6Xys/+k8rP/pPGy/6Px + sv+j8bL/ovGx/6Lxsf+h8bH/ofCw/6DwsP+g8LD/n/Cv/5/wr/+e8K//nu+u/53vrv+d767/nO+t/5zv + rf+b763/m+6s/5rurP/C9c3/RbxG/0e9SP9NwE7/WsZb/23Qbv+K34v/AJkA/3TVe/+z973/s/e8/7L2 + vP+y9rz/kuia/7H2u/+w9rv/sPa6/6/1uv+v9br/rvW5/6/1uf+v9bn/rvW4/630uP+s9Lj/q/S3/6v0 + t/+q9Lf/qvS2/6nztv+p87b/qPO1/6jztf+n87X/p/O0/6bytP+m8rT/pfKz/6Xys/+k8rP/pPKy/6Px + sv+j8bL/ovGx/6Lxsf+i8bH/ofGw/6HwsP+g8LD/oPCv/5/wr/+f8K//nvCu/57vrv+d767/ne+t/5zv + rf+c763/m++t/5vurP+a7qz/mu6s/5nuq/+Z7qv/wfXN/0W8Rv9HvUj/TcBO/1rGW/9t0G7/it+L/wCZ + AP9z1Hj/sva7/7H2u/+x9rv/sPa6/5Dnmf+v9br/r/W5/671uf+u9bn/rfW4/630uP+u9Lj/rvS3/670 + t/+u9Lf/rvS3/63zt/+r87b/qfO1/6jztf+o87X/p/O1/6fytP+m8rT/pvK0/6Xys/+l8rP/pPKz/6Tx + sv+j8bL/o/Gy/6Lxsf+i8bH/ofGx/6HwsP+g8LD/oPCw/5/wr/+f8K//nvCv/57vrv+d767/ne+u/5zv + rf+c763/m++t/5vurP+a7qz/mu6s/5nuq/+Z7qv/mO6r/5jtqv+X7ar/l+2q/8D0y/9FvEb/R71I/03A + Tv9axlv/bdBu/4rfi/8AmQD/ctN2/7D1uv+v9br/r/W6/671uf+P55j/rfW5/630uP+s9Lj/rPS4/6z0 + t/+s9Lf/rPS3/6zztv+t87b/rfO2/63zt/+u87f/rvO3/67yuP+s8rf/qfK1/6bytP+l8rP/pPKz/6Tx + sv+j8bL/o/Gy/6Lxsf+i8bH/ofGx/6HwsP+g8LD/oPCw/5/wr/+f8K//nvCv/57vrv+d767/ne+u/5zv + rf+c763/m++t/5vurP+a7qz/mu6s/5nuq/+Z7qv/mO6r/5jtqv+X7ar/l+2q/5btqf+W7an/le2p/5Xs + qP+/9Mv/RbxG/0e9SP9NwE7/WsZb/23Qbv+K34v/AJkA/3HSc/+u9bn/rfW5/631uP+s9Lj/jeaX/6v0 + t/+r9Lf/qvS3/6r0tv+q87b/q/O2/6vztf+r87X/rPO1/6zztf+s8rb/rPK2/63yt/+t8rf/rfK3/67y + uP+u8bj/rfG4/6rxtv+n8bT/o/Gy/6HwsP+g8LD/oPCw/5/wr/+f8K//nvCv/57vrv+d767/ne+u/5zv + rf+c763/m++t/5vurP+a7qz/mu6s/5nuq/+Z7qv/mO6r/5jtqv+X7ar/l+2q/5btqf+W7an/le2p/5Xs + qP+U7Kj/lOyo/5PsqP+T7Kf/vvTK/0W8Rv9HvUj/TcBO/1rGW/9t0G7/it+L/wCZAP9w0HD/rPS4/6v0 + t/+r9Lf/qvS3/4vmlf+p87b/qfO2/6nztf+p87X/qfO1/6nztP+q8rT/qvK0/6rytP+r8rX/q/K1/6vy + tf+s8bb/rPG2/6zxtv+t8bf/rfG3/63xuP+t8Lj/rvC5/67wuf+s8Lj/qfC2/6bwtP+i77H/ne+u/53v + rv+c763/nO+t/5vvrf+b7qz/mu6s/5rurP+Z7qv/me6r/5juq/+Y7ar/l+2q/5ftqv+W7an/lu2p/5Xt + qf+V7Kj/lOyo/5TsqP+T7Kf/k+yn/5Lsp/+S66b/keum/73zyv9FvEb/R71I/03ATv9axlv/bdBu/4rf + i/8AmQD/cM9u/6r0t/+q87b/qfO2/6nztv+J5ZT/qPO1/6fztf+n8rT/qPK0/6jytP+o8rP/qfKz/6ny + s/+p8bP/qfG0/6rxtP+q8bX/qvG1/6vxtv+r8Lb/q/C2/6vwt/+s8Lf/rPC3/6zwuP+t77j/re+5/63v + uf+u77r/ru+6/67vuv+r77j/p++1/6Pvs/+f77D/me6r/5juq/+Y7ar/l+2q/5ftqv+W7an/lu2p/5Xt + qf+V7Kj/lOyo/5TsqP+T7Kf/k+yn/5Lsp/+S66b/keum/5Hrpv+Q66X/kOul/4/rpf+88sj/RbxG/0e9 + SP9NwE7/WsZb/23Qbv+K34v/AJkA/2/Oa/+o87X/qPO1/6fztf+n8rT/h+ST/6bytP+m8rP/pvKz/6by + s/+n8bL/p/Gy/6jxsv+o8bL/qPGz/6jxs/+p8LP/qfC0/6nwtP+q8LX/qvC1/6rwtf+q77b/q++2/6vv + t/+r77f/rO+4/6zvuP+s7rj/rO65/63vuf+t77n/re+6/67vuv+u77v/ru+7/6/vvP+s77r/qe+4/6Lu + s/+f7rD/m+2u/5bsqf+T7Kf/k+yn/5Lsp/+S66b/keum/5Hrpv+Q66X/kOul/4/rpf+P6qT/juqk/47q + pP+N6qP/u/LI/0W8Rv9HvUj/TcBO/1rGW/9t0G7/it+L/wCZAP9uzWn/pvK0/6bytP+l8rP/pfKz/4bk + kv+k8rL/pfGy/6Xxsv+l8bH/pvGx/6bxsf+m8bH/pvCx/6fwsv+n8LL/p/Cz/6jws/+o8LP/qO+0/6jv + tP+p77X/qe+1/6nvtf+q77b/qu62/6rut/+r7rf/q+64/6vuuP+s7rj/rO65/6zvuf+s77r/re+6/63v + u/+t77v/ru+7/67vvP+u77z/rvC8/6/wvf+v8L3/rvC9/6jvuP+m7rf/oO6y/5ztr/+Y7Kv/leup/47q + pP+O6qT/jeqj/43qo/+M6aP/jOmi/7nyx/9FvEb/R71I/03ATv9axlv/bdBu/4rfi/8AmQD/bctm/6Xy + s/+k8rL/pPGy/6Pxsv+F45H/o/Gx/6Txsf+k8bH/pPCw/6TwsP+l8LD/pfCw/6Xwsf+m8LH/pu+x/6bv + sv+m77L/p++z/6fvs/+n77T/qO60/6jutP+o7rX/qO61/6nutv+p7rb/qu22/6rtt/+q7rf/qu64/6vu + uP+r7rj/q+65/6zuuf+s7rr/rO+6/6zvu/+t77v/re+7/63vvP+u77z/rvC9/67wvf+u8L3/r/C+/6/w + vv+w8L//r/C//6/wv/+v8L//r/C+/6Xut/+l7rf/oO2z/5zsr//D9M//U8FU/0e9SP9NwE7/WsZb/23Q + bv+K34v/AJkA/2zKZP+j8bL/ovGx/6Lxsf+h8bH/hOKQ/6LwsP+i8LD/ovCv/6Pwr/+j8K//o++v/6Tv + r/+k77D/pO+w/6Xvsf+l77H/pe6x/6Xusv+m7rL/pu6z/6fus/+n7rP/p+20/6fttP+o7bX/qO21/6jt + tv+p7bb/qe22/6ntt/+p7rf/qu64/6ruuP+q7rn/q+65/6vuuf+r7rr/q++6/6zvu/+s77v/rO+8/63v + vP+t77z/re+9/67wvf+u8L7/rvC+/67wvv+u8L7/rfC9/63wvf+t8L3/re+9/6zvvf+s773/zfXX/2HG + Yv9HvUj/TcBO/1rGW/9t0G7/it+L/wCZAP9syWH/ofCw/6DwsP+g8LD/oPCv/4Pij/+h8K//oe+u/6Hv + rv+i767/ou+u/6Lvrv+j76//o+6v/6Pur/+j7rD/pO6w/6Tusf+k7rH/pe2y/6Xtsv+l7bL/pe2z/6bt + s/+m7bT/p+y0/6fstP+n7bX/p+21/6jttv+o7bb/qO23/6ntt/+p7bj/qe64/6nuuP+q7rn/qu65/6ru + uf+r7rr/q++6/6vvu/+r77v/rO+7/6zvvP+t77z/re+9/63vvf+t8L3/re+9/63vvf+s773/rO+9/6vv + vP+r77z/q+68/8z11/9hxmL/R71I/03ATv9axlv/bdBu/4rfi/8AmQD/a8hf/5/wr/+e8K//n/Cu/5/v + rv+C4Y7/n++t/6Dvrf+g763/oO+t/6Hurf+h7q7/oe6u/6Lurv+i7q//ou6v/6Ptr/+j7bD/o+2w/6Pt + sf+k7bH/pO2y/6Tssv+l7LL/peyz/6Xss/+l7LT/puy0/6bstP+m7LX/p+21/6fttv+n7bb/p+23/6jt + t/+o7bf/qe24/6nuuP+p7rn/qe65/6ruuv+q7rr/qu66/6vuu/+r77v/q+68/6vvvP+s77z/rO+9/6vv + vP+r77z/q+68/6vuu/+q7rv/qu67/6nuu//L9db/YcZi/0e9SP9NwE7/WsZb/23Qbv+K34v/AJkA/2rG + XP+d767/ne+u/53vrf+e763/geGN/57urP+f7qz/n+6s/5/urP+f7qz/oO6t/6Dtrf+g7a3/oe2u/6Ht + rv+h7a//oe2v/6LssP+i7LD/ouyw/6Pssf+j7LH/o+yy/6Trsv+k67L/pOyz/6Xss/+l7LT/pey0/6bs + tf+m7LX/puy2/6bttv+n7bb/p+23/6ftt/+n7bf/qO24/6juuP+o7rn/qe65/6nuuv+q7rr/qu67/6ru + u/+q77v/q++8/6vuu/+q7rv/qu67/6nuu/+p7rv/qO67/6juuv+o7rr/y/XW/2HGYv9HvUj/TcBO/1rG + W/9t0G7/it+L/wCZAP9pxVr/nO+t/5zurP+c7qz/nO6s/4Dgi/+d7qv/ne6r/57tq/+e7av/nu2s/57t + rP+f7az/n+2t/6Dsrf+g7K3/oOyu/6Dsrv+h7K//oeyv/6HrsP+i67D/ouux/6Lrsf+i67H/o+uy/6Pr + sv+j67L/pOyz/6Tss/+k7LT/pOy0/6XstP+l7LX/puy2/6bttv+m7bb/pu23/6ftt/+n7bj/p+24/6jt + uP+o7rn/qO65/6juuv+p7rr/qe66/6nuu/+p7rv/qO67/6juu/+o7rr/qO66/6fuuv+n7rn/pu65/8r0 + 1f9hxmL/R71I/03ATv9axlv/bdBu/4rfi/8AmQD/acRX/5ruq/+b7qv/m+6r/5vtqv9/34v/nO2q/5zt + qf+c7ar/ne2q/53sq/+a6aP/gcte/4TPZ/+b6KP/nuyt/5/rrf+f667/n+uu/6Drrv+g66//oOuv/6Hq + sP+d5qf/f8hb/5bglP+i67H/ouuy/6Prsv+j67P/o+uz/6PrtP+k7LT/pOy0/6Tstf+k7LX/pey1/6Xt + tv+l7bb/pu23/6bst/+m7bj/p+24/6ftuf+n7bn/qO65/6juuv+o7rr/qO66/6juuv+n7rn/p+65/6bt + uf+m7bj/pu24/6btuP/J9NT/YcZi/0e9SP9NwE7/WsZb/23Qbv+K34v/AJkA/0qTC/99x1L/h9Vy/5Lj + kf+a7an/ft+K/5vtqf+b7Kn/m+yp/5zsqv+N2oD/brYr/2qyIv9qsiH/bLUp/4POZv+e663/nuut/57r + rf+e6q7/n+qu/5/qr/+U35P/b7o1/2SuGf9jrhj/gsxk/6Hrsf+h67H/ouuy/6Lrsv+i67P/ouuz/6Pr + tP+j7LT/o+y0/6Tstf+k7LX/pOy2/6Tstv+l7Lb/pe23/6Xtt/+m7bj/pu24/6btuP+m7bn/p+65/6bu + uf+m7bj/pu24/6btuP+l7bj/pe24/6TtuP+k7Lf/yPTU/2HGYv9HvUj/TcBO/1rGW/9t0G7/it+L/wCZ + AP9GjAD/cLYq/2+2Kf9vtSj/cbgw/2W6Qf+G1G//kuGQ/5TlmP93wUX/a7Mj/2uzIv9qsiL/arIh/2my + IP9psSD/b7gw/4nVd/+d6qz/neqt/57qrf+M14D/abMj/2SvGf9krhn/Y64Y/2OuF/9qtSr/kduK/6Dq + sf+h67H/oeuy/6Hrsv+h67P/ouuz/6Lrs/+i7LT/o+y0/6Pstf+j7LX/pOy2/6Tstv+k7Lb/pe23/6Xt + t/+l7bj/pe24/6btuP+l7bj/pe24/6TtuP+k7Lf/pOy3/6Tst/+j7Lf/o+y2/8f01P9hxmL/R71I/03A + Tv9axlv/bdBu/4rfi/8AmQD/RowA/3C2Kv9vtin/b7Uo/261KP9utSf/bbQm/220Jf9stCX/bLMk/2uz + I/9utSf/kstY/47JU/9ttCb/abEg/2ixH/9nsR7/brcv/4jUdv+BzGT/Za8b/2WvGv9osR//jMdQ/3S4 + L/9jrhf/Yq0W/2KtFv98yFn/nOan/6Dqsf+g67L/oOuy/6Hrsv+h67P/oeuz/6LrtP+i67T/ouu0/6Ls + tf+j7LX/o+y1/6Pstv+k7Lf/pO23/6Ttt/+k7Lj/pOy3/6Tst/+k7Lf/o+y2/6Pstv+i67b/ouu2/6Hr + tv/H89P/YcZi/0e9SP9NwE7/WsZb/23Qbv+K34v/AJkA/1CdGu9uuzr/c7ox/2+1KP9utSj/brUn/220 + Jv9ttCX/bLQl/2yzJP99vj3/pdlz/7Tlh/+454z/seGD/43JU/9stCX/Z7Ee/2ewHf9msBz/ZrAc/2Wv + G/9vtSf/mdFj/7Ljhf+x4oT/kMpV/2qyIv9irRb/Ya0V/2i0KP94w0//i9eA/5vmp/+f6rH/oOuy/6Dr + sv+g6rP/oeuz/6HrtP+h67T/ouu0/6Lstf+i67X/ouy2/6Pstv+j7Lb/o+y2/6Pstv+i67b/ouu2/6Hr + tv+h67b/oeu1/6Hrtf+g67X/xvPS/2HGYv9HvUj/TcBO/1rGW/9t0G7/it+L/wCZAP////8BZb5LUWS9 + Sp9ww0rvdMJB/3rCOv9zui7/bbQl/3K3LP+LyFD/odhu/6bbdf+q3nr/ruGA/7Lkhf+3543/r+CC/4LB + Qv9nsB3/ZrAc/2awHP9zty7/mtJk/6fcdv+q3nr/reB+/7Digv+o23f/g8JD/2GtFf9hrBT/YKwU/1+r + E/9fqxL/arcv/3rGV/+K1n//m+ao/6Drsv+g67P/oOuz/6DrtP+h67T/oeu1/6Hstf+i7LX/ouu2/6Hr + tv+h67b/oeu1/6Hrtf+g67X/oOu0/5/rtP+f67T/n+u0/8Xz0v9hxmL/R71I/03ATv9axlv/bdBu/4rf + i/8AmQD/////Af///wH///8B////AVm/TVFevUmfbsRL73vJSf+GzU3/k9Va/5jVYv+c1mf/oNht/6Xa + cv+p3Xj/reB+/7Hjg/+05Yf/ispY/2qzJf94vDX/ldJe/5zVZ/+f12v/otlv/6Xbc/+o3Xj/rN98/67g + f/+f1Wv/ZK4a/2CsFP9fqxP/X6sS/16rEf9eqhH/XaoQ/12qD/9tuTf/fcpg/47aif+f67P/n+uz/6Dr + tP+g67T/oOu0/6Drtf+g67X/oOu1/5/rtP+f67T/n+u0/5/rtP+e67T/nuq0/53qs//E8tL/YcZi/0e9 + SP9NwE7/WsZb/23Qbv+K34v/AJkA/////wH///8B////Af///wH///8B////Af///wFWvkxBYrlCgWi9 + Q79yw0b/gMlO/4/QWv+b1WX/n9dr/6Pacf+f2G//c8FM/2C2O59luUGvbcBF/4LKTv+U1Fv/l9Rg/5rV + ZP+d1mj/odht/6Tacf+j2XL/esNO/16wKnFgrBOPX6sT31+rEv9eqxH/XqoR/12qEP9dqg//XKkO/1yp + Dv9bqQ3/cL1A/5rmqP+e67P/n+qz/5/qtP+f67T/n+u0/5/rtP+f67T/nuq0/57qs/+d6rP/neqz/53q + sv+d6rL/xPLR/2HGYv9HvUj/TcBO/1rGW/9t0G7/it+L/wCZAP////8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////AWC3PUFgtzyPZ7s+z3TBSP96w03/X7U6n1+1OiH///8B////ATPL + ZxFXuD9hX7k9r3LAQ++DyU//ltRe/5nUYv+V0WD/ark9712yMjH///8B////Af///wFNuDRRWq4an1us + Fu9dqhD/XaoP/1ypDv9cqQ7/W6kN/1uoDP9ntCr/kd6T/53qs/+e6rP/nuq0/57qs/+d6rP/neqz/53q + sv+d6rL/nOmy/5zpsv+b6bL/m+my/8Py0P9hxmL/R71I/03ATv9axlv/bdBu/4rfi/8AmQD/////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wFftTkRX7U5If// + /wH///8B////Af///wH///8B////Af///wH///8BXbIzUWK1NZ9yvkDvYLM0z1yxMBH///8B////Af// + /wH///8B////Af///wH///8BSLs7YVmtGJ9cqQ7fXKkO/1upDf9bqAz/WqgL/16sFf+H1X7/neqy/53q + s/+d6rL/nOqy/5zpsv+b6bL/m+my/5rpsv+a6bH/mumx/5rpsf/C8tD/asli/0e9SP9NwE7/WsZb/23Q + bv+K34v/AJkA/////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AVypDTFbqQ2fW6gM/1qo + C/9aqAv/WacK/3bEU/+c6bL/m+my/5vpsv+a6bH/mumx/5rpsf+a6bD/memw/5npsP+Y6a//wvLQ/23K + Yv9HvUj/TcBO/1rGW/9t0G7/it+L/wCZAP////8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////AVuoDGFaqAvvWqgL/1mnCv9Zpwn/abgz/5blpv+a6bD/memw/5npsP+Y6a//mOmv/5jo + r/+Y6K//l+iv/8Hxz/9tymL/R71I/03ATv9axlv/bdBu/4rfi/8AmQD/////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8BWqgLMVmoCs9Zpwr/WacJ/1inCP9grx3/jNyQ/5jo + r/+Y6K//l+iv/5for/+W6K//luiu/5bnrv+/8c7/bcph/0e9SP9NwE7/WsZb/23Qbv+K34v/AJkA//// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wFZqAoRWacKr1mn + Cf9Ypwj/V6YI/1emB/9/z2//luiu/5borv+W567/leet/5Xnrf+U563/v/HN/2zJYf9HvUj/TcBO/1rG + W/9t0G7/it+L/wCZAP////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wFYpwmBWKcI/1emCP9Xpgf/VqYG/26+RP+V563/lOet/5Tnrf+U563/lOes/77w + zf9syWD/R71I/03ATv9axlv/bdBu/4rfi/8AmQD/////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////AVinCEFXpgfvV6YH/1amBv9WpQX/YbEk/4zf + l/+T56z/kues/5Lnq/+98M3/bMlg/0e9SP9NwE7/WsZb/23Qbv+K34v/AJkA/////wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BV6YHIVem + B89Wpgb/VqUF/1WlBf9ZqQ7/gtaB/5Hmq/+R5qv/vfDM/2zJYP9HvUj/TcBO/1rGW/9t0G7/it+L/wCZ + AP////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8BVqYGn1alBf9VpQX/VaUE/1SkA/92yWH/kear/73wzP9ryV//R71I/03A + Tv9axlv/bdBu/4rfi/8AmQD/////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wFWpQVhVaUF/1WlBP9UpAP/VKQC/2a5 + N/+267//a8lf/0e9SP9NwE7/WsZb/23Qbv+K34v/AJkA/////wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AVWl + BDFVpQTfVKQD/1SkAv9TpAL/Z7In/16/Sf9HvUj/TcBO/1rGW/9t0G7/it+L/wCZAP////8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8BVaUEEVOiA79UpAL/U6QC/1OjAf87lgz/MJkm/0SzQf9axlv/bdBu/4rf + i/8AmQD/////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8BUqECj1OkAv9TowH/O5YM/yWJ + F/8pjBn/NZcl/1q7U/+G24b/AJkA/////wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wFQnwFRU6MB7zuWDP8liRf/KYwZ/y+QHf86mCP/TaYz/wCCAP////8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////AU6bADEvkhK/G4kX/yWLGP8vkB3/Opgj/0miLf8AcAD/////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AROJFyEPhBKBFIQS3yiN + Gv9FoCv/AHAA/////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// + /wH///8B////Af///wEJewtBBXcHnwJyAu8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ElevationGraph/LineDrawing.cs b/Source/Plugins/Plugins.ElevationGraph/LineDrawing.cs new file mode 100644 index 00000000..6676ef83 --- /dev/null +++ b/Source/Plugins/Plugins.ElevationGraph/LineDrawing.cs @@ -0,0 +1,231 @@ +using System; +using System.Data; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Drawing; +using System.Threading.Tasks; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Projections; +using DotSpatial.Symbology; +using DotSpatial.Topology; +using Point = System.Drawing.Point; +using System.Drawing.Drawing2D; + +namespace ElevationGraph + { + /// + /// This class draws the line for the ElevationCrossSection plugin + /// + class LineDrawing : MapFunction + { + #region Fields + private readonly Map mainMap; + private Coordinate latestCoord; + private Point latestPoint, currentPoint; + private List coordinateList; + private MapLineLayer lineLayer; + private Color color = Color.Red; + private Cursor cursor; + private FunctionMode function; + private bool currentlyDrawing = false; + private bool enabled; + private Rectangle updateRectangle; + private GraphForm graph; + private Pen redPen = new Pen(Color.Red, 2); + #endregion Fields + + #region Constructors + /// + /// Creates a new LineDrawing object + /// + /// The map that the line will be drawn on + public LineDrawing(Map map) : base(map) + { + if (map == null) + throw new ArgumentNullException("map"); + mainMap = map; + } + + #endregion Constructors + + #region Public methods + /// + /// Turns on the line drawing mode + /// + public void ActivateLine() + { + //add mouse handlers to mainMap's mouse handlers + mainMap.MouseDown += mouseDown; + mainMap.MouseMove += mouseMove; + + //Save the current function and cursor to be restored when DeactivateLine is called + function = mainMap.FunctionMode; + cursor = mainMap.Cursor; + mainMap.FunctionMode = FunctionMode.None; + mainMap.ActivateMapFunction(this); + this.YieldStyle = (YieldStyles) 0xf; + mainMap.Cursor = Cursors.Cross; + + this.Enabled = true; + enabled = true; + graph = new GraphForm(mainMap); + graph.Owner = mainMap.ParentForm; + addLineLayer(); + } + + /// + /// Turns off line drawing mode + /// + public void DeactivateLine() + { + removeLineLayer(); + if (!enabled) + return; + enabled = false; + + //remove mouse handlers from mainMap's mouse handlers + mainMap.MouseDown -= mouseDown; + mainMap.MouseMove -= mouseMove; + + //restore the function mode and cursor that were active when ActivateLine was called + mainMap.FunctionMode = function; + mainMap.Cursor = cursor; + this.Enabled = false; + } + + //This is called when another tool is activated. The line drawing mode is + //deactivated, but the linelayer is not removed. + protected override void OnDeactivate() { + if (!enabled) + return; + enabled = false; + mainMap.MouseDown -= mouseDown; + mainMap.MouseMove -= mouseMove; + this.Enabled = false; + } + + //Draws the rubber band line while the left mouse button is still down + protected override void OnDraw(MapDrawArgs e) + { + if (currentlyDrawing) + { + e.Graphics.DrawLine(redPen, latestPoint, currentPoint); + } + base.OnDraw(e); + } + + #endregion Public methods + + #region Private methods + + //draws a line when the left mouse button is pressed + private void mouseDown(object sender, MouseEventArgs e) + { + Coordinate newCoord = new Coordinate(mainMap.PixelToProj(e.Location));; + Point newPoint = e.Location; + + if(!currentlyDrawing){//start new line + addLineLayer(); + latestPoint = newPoint; + latestCoord = newCoord; + currentlyDrawing = true; + coordinateList = new List(); + coordinateList.Add(newCoord); + } + else{//continue line + + //double click or right click to end line + if (Math.Abs(latestPoint.X - newPoint.X) < 5 && Math.Abs(latestPoint.Y - newPoint.Y) < 5 || e.Button == MouseButtons.Right) { + currentlyDrawing = false; + mainMap.Invalidate(); + + //show graph + if (graph.IsDisposed) { + graph = new GraphForm(mainMap); + graph.Owner = mainMap.ParentForm; + } + graph.drawGraph(coordinateList); + if (!graph.Visible) + graph.Show(); + graph.WindowState = FormWindowState.Normal; + graph.BringToFront(); + + } + else{//add new line segment to map + List currentLine = new List(); + currentLine.Add(latestCoord); + currentLine.Add(newCoord); + var line = new LineString(currentLine); + lineLayer.DataSet.AddFeature(line); + mainMap.ResetBuffer(); + + coordinateList.Add(newCoord); + latestPoint = newPoint; + latestCoord = newCoord; + currentlyDrawing = true; + } + } + } + + //When the left mouse button is pressed and the mouse moves, this method sets + //current point and figures out the rectangle of the map that needs to be + //updated. Invalidate is then called, and the OnDraw method above uses + //currentPoint to draw the rubber band line + private void mouseMove(object sender, MouseEventArgs e) + { + if (currentlyDrawing) + { + int x = Math.Min(Math.Min(latestPoint.X, currentPoint.X), e.X) - 5; + int y = Math.Min(Math.Min(latestPoint.Y, currentPoint.Y), e.Y) - 5; + int mx = Math.Max(Math.Max(latestPoint.X, currentPoint.X), e.X) + 5; + int my = Math.Max(Math.Max(latestPoint.Y, currentPoint.Y), e.Y) + 5; + updateRectangle = new Rectangle(x, y, mx - x, my - y); + currentPoint = e.Location; + mainMap.Invalidate(updateRectangle); + } + + } + + //adds the line layer if it doesn't exist, clears it otherwise + private void addLineLayer() + { + if (lineLayer == null) { + var rectangleFs = new FeatureSet(FeatureType.Line); + rectangleFs.DataTable.Columns.Add(new DataColumn("ID")); + rectangleFs.Projection = mainMap.Projection; + lineLayer = new MapLineLayer(rectangleFs) { LegendText = "Cross Section Line" }; + mainMap.Layers.Add(lineLayer); + + //The symbolizer that controls the look of the final line + lineLayer.Symbolizer = new LineSymbolizer(Color.Red, 3); + lineLayer.SelectionSymbolizer = lineLayer.Symbolizer; + } + else { + lineLayer.DataSet.Features.Clear(); + + //move linelayer to top if it isn't there + if (mainMap.Layers.IndexOf(lineLayer) != mainMap.Layers.Count - 1) { + lineLayer.LockDispose(); + mainMap.Layers.Remove(lineLayer); + mainMap.Layers.Add(lineLayer); + lineLayer.UnlockDispose(); + } + + } + } + + //removes the line layer when DeactivateLine is called + private void removeLineLayer() + { + if (lineLayer == null) + return; + mainMap.Layers.Remove(lineLayer); + lineLayer = null; + } + + #endregion Private methods + } + } diff --git a/Source/Plugins/Plugins.ElevationGraph/Plugins.ElevationGraph.csproj b/Source/Plugins/Plugins.ElevationGraph/Plugins.ElevationGraph.csproj new file mode 100644 index 00000000..8d91b7ff --- /dev/null +++ b/Source/Plugins/Plugins.ElevationGraph/Plugins.ElevationGraph.csproj @@ -0,0 +1,185 @@ + + + + + Debug + AnyCPU + {DAA25278-5E68-4E3E-8B96-1B6B4A269B08} + Library + Properties + ElevationGraph + ElevationGraphPlugin + v4.5 + 512 + + + true + full + false + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\Plugins\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\DotSpatial.Analysis.dll + False + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\DotSpatial.Controls.dll + False + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\DotSpatial.Data.dll + False + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\DotSpatial.Data.Forms.dll + False + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\DotSpatial.Extensions.dll + False + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\DotSpatial.Modeling.Forms.dll + False + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\DotSpatial.Mono.dll + False + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\DotSpatial.Projections.dll + False + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\DotSpatial.Projections.Forms.dll + False + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\DotSpatial.Serialization.dll + False + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\DotSpatial.Symbology.dll + False + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\DotSpatial.Symbology.Forms.dll + False + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\DotSpatial.Topology.dll + False + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\Excel.dll + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\HydroDesktop.Common.dll + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\HydroDesktop.Configuration.dll + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\HydroDesktop.Data.dll + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\HydroDesktop.Data.ODMCVServiceClient.dll + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\HydroDesktop.ErrorReporting.dll + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\HydroDesktop.Help.dll + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\HydroDesktop.Interfaces.dll + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\HydroDesktop.ObjectModel.Controls.dll + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\HydroDesktop.WebServices.dll + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\HydroDesktop.ZedGraphEx.dll + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\Microsoft.Practices.ServiceLocation.dll + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\Microsoft.Practices.Unity.dll + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\Microsoft.Practices.Unity.Configuration.dll + + + + + + + + + + + + + + + ..\..\..\..\..\..\Program Files\CUAHSI HIS\HydroDesktop 1.6.13\ZedGraph.dll + + + + + + Form + + + GraphForm.cs + + + + + True + True + Resources.resx + + + + + GraphForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ElevationGraph/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.ElevationGraph/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..d10a4a90 --- /dev/null +++ b/Source/Plugins/Plugins.ElevationGraph/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Elevation Graph Plugin")] +[assembly: AssemblyDescription("Creates an elevation cross section graph from a line drawn on a digital elevation model.")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Guy Werner")] +[assembly: AssemblyProduct("Elevation Graph Plugin")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("ce457205-7765-4105-82c0-54ff0082bfb0")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.ElevationGraph/Properties/Resources.Designer.cs b/Source/Plugins/Plugins.ElevationGraph/Properties/Resources.Designer.cs new file mode 100644 index 00000000..4ab4e2fd --- /dev/null +++ b/Source/Plugins/Plugins.ElevationGraph/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18063 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ElevationGraph.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("ElevationGraph.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap line_chart_icon { + get { + object obj = ResourceManager.GetObject("line_chart_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/Plugins.ElevationGraph/Properties/Resources.resx b/Source/Plugins/Plugins.ElevationGraph/Properties/Resources.resx new file mode 100644 index 00000000..dc0ba4a8 --- /dev/null +++ b/Source/Plugins/Plugins.ElevationGraph/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\line-chart-icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ElevationGraph/Resources/GraphIcon.bmp b/Source/Plugins/Plugins.ElevationGraph/Resources/GraphIcon.bmp new file mode 100644 index 00000000..55516c7a Binary files /dev/null and b/Source/Plugins/Plugins.ElevationGraph/Resources/GraphIcon.bmp differ diff --git a/Source/Plugins/Plugins.ElevationGraph/Resources/line-chart-icon.ico b/Source/Plugins/Plugins.ElevationGraph/Resources/line-chart-icon.ico new file mode 100644 index 00000000..e2fad617 Binary files /dev/null and b/Source/Plugins/Plugins.ElevationGraph/Resources/line-chart-icon.ico differ diff --git a/Source/Plugins/Plugins.ElevationGraph/Resources/line-chart-icon.png b/Source/Plugins/Plugins.ElevationGraph/Resources/line-chart-icon.png new file mode 100644 index 00000000..ac12ca5f Binary files /dev/null and b/Source/Plugins/Plugins.ElevationGraph/Resources/line-chart-icon.png differ diff --git a/Source/Plugins/Plugins.HydroForecaster/ANNForecasting.cs b/Source/Plugins/Plugins.HydroForecaster/ANNForecasting.cs new file mode 100644 index 00000000..5035ba40 --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/ANNForecasting.cs @@ -0,0 +1,158 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Spatial.Tools; +using System.Spatial.Tools.Param; + +namespace HydroForecaster +{ + class ANNForecasting:ITool + { + private Parameter[] _inputParameters; + private Parameter[] _outputParameters; + private string _workingPath; + + #region ITool Members + + /// + /// Gets or Sets the input paramater array + /// + Parameter[] ITool.InputParameters + { + get { return (_inputParameters); } + } + + /// + /// Gets or Sets the output paramater array + /// + Parameter[] ITool.OutputParameters + { + get { return (_outputParameters); } + } + + + public string Author + { + get { return "Neural Network Model"; } + } + + public string Category + { + get { return "Forecasting"; } + } + + public string Description + { + get { return "Neural Network Model"; } + } + + bool ITool.Execute(ICancelProgressHandler cancelProgressHandler) + { + string InputFile = _inputParameters[1].Value.ToString(); + + string ResultDestination = _outputParameters[0].Value.ToString(); + + string Networkpath = _inputParameters[0].Value.ToString(); + + if (Execute(Networkpath,InputFile, ResultDestination, cancelProgressHandler)) + { + return true; + } + else + { + + } + { + return false ; + } + + } + + public bool Execute(string NetworkWeight, string Inputdata,string Result, ICancelProgressHandler cancelProgressHandler) + { + NeuralNetworkTesting nn = new NeuralNetworkTesting(); + + nn.loadNetwork(NetworkWeight); + + nn.runTest(Inputdata, Result); + + for (int i=0;i[^\",\\r\\n]+)|\"(?([^\"]|\"\")+)\")(,|(?\\r\\n|\\n|$))"); + + ArrayList colArray = new ArrayList(); + ArrayList rowArray = new ArrayList(); + + int colCount = 0; + int maxColCount = 0; + string rowbreak = ""; + string field = ""; + + MatchCollection mc = re.Matches(inputString); + + foreach (Match m in mc) + { + + // retrieve the field and replace two double-quotes with a single double-quote + field = m.Result("${field}").Replace("\"\"", "\""); + + rowbreak = m.Result("${rowbreak}"); + + if (field.Length > 0) + { + colArray.Add(field); + colCount++; + } + + if (rowbreak.Length > 0) + { + + // add the column array to the row Array List + rowArray.Add(colArray.ToArray()); + + // create a new Array List to hold the field values + colArray = new ArrayList(); + + if (colCount > maxColCount) + maxColCount = colCount; + + colCount = 0; + } + } + + if (rowbreak.Length == 0) + { + // this is executed when the last line doesn't + // end with a line break + rowArray.Add(colArray.ToArray()); + if (colCount > maxColCount) + maxColCount = colCount; + } + + // convert the row Array List into an Array object for easier access + Array ra = rowArray.ToArray(); + Array ss; + + for (int t = 0; t < 1; t++) + { + // convert the column Array List into an Array object for easier access + ss = (Array)(ra.GetValue(t)); + + + // create the columns for the table + for (int i = 0; i < ss.Length; i++) + dt.Columns.Add(ss.GetValue(i).ToString()); + } + + for (int i = 7; i < ra.Length; i++) + { + // create a new DataRow + DataRow dr = dt.NewRow(); + + // convert the column Array List into an Array object for easier access + Array ca = (Array)(ra.GetValue(i)); + + // add each field into the new DataRow + for (int j = 0; j < ca.Length; j++) + dr[j] = ca.GetValue(j); + + // add the new DataRow to the DataTable + dt.Rows.Add(dr); + } + + // in case no data was parsed, create a single column + if (dt.Columns.Count == 0) + dt.Columns.Add("NoData"); + + return dt; + } + + private DataTable ParseCSVFile(string path) + { + + string inputString = ""; + + // check that the file exists before opening it + if (File.Exists(path)) + { + + StreamReader sr = new StreamReader(path); + inputString = sr.ReadToEnd(); + sr.Close(); + + } + + return ParseCSV(inputString); + } + + private void DataTable2CSV(DataTable table, string filename, string seperateChar) + { + StreamWriter sr = null; + try + { + + sr = new StreamWriter(filename); + string seperator = ""; + StringBuilder builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(col.ColumnName); + + seperator = seperateChar; + } + + sr.WriteLine(builder.ToString()); + + foreach (DataRow row in table.Rows) + { + + seperator = ""; + builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(row[col.ColumnName]); + seperator = seperateChar; + + } + + sr.WriteLine(builder.ToString()); + + } + + } + + finally + { + + if (sr != null) + { + + sr.Close(); + + } + + } + + } + + /// + /// + /// + /// + /// + /// + public double ForecastingValuefunction(List T,List PreviousT,double value) + { + double[] Xd = new double[T.Count]; + + double[] Yd = new double[PreviousT.Count]; + + for (int k = 0; k < T.Count ; k++) + { + try + { + //The value of Tday + Xd[k] = Convert.ToDouble(T[k]); + + //The Value of T-1 Day + Yd[k] = Convert.ToDouble(PreviousT[k]); + + SumX += Xd[k]; + + SumY += Yd[k]; + + SumXY += Xd[k] * Yd[k]; + + SumSqrX += Xd[k] * Xd[k]; + } + catch + { + + } + + + } + + //Calculate m value + double mstep1 = Convert.ToDouble(T.Count ) * SumXY; + + double mstep2 = SumX * SumY; + + double mstep3 = Convert.ToDouble(T.Count) * SumSqrX; + + double mstep4 = SumX * SumX; + + double mstep5 = mstep1 - mstep2; + + double mstep6 = mstep3 - mstep4; + + double m = mstep5 / mstep6; + + //Calculate c value + + double cstep1 = Convert.ToDouble(1.0 / T.Count); + + double cstep2 = cstep1 * SumY; + + double cstep3 = cstep1 * SumX; + + double cstep4 = m * cstep3; + + double cstep5 = cstep2 - cstep4; + + double c = cstep5; + + //equation is y=mx+c + //Y is Currect value + //X is Forecasting Value + //X= ( Y - C ) / m + + double ForecastingResult = (Convert.ToDouble(value) - c) / m; + + // decimal forecastingvalue = m * Convert.ToDecimal(value) + c; + + return ForecastingResult; + + } + + #endregion + + #region ITool Members + + /// + /// Gets or Sets the input paramater array + /// + Parameter[] ITool.InputParameters + { + get { return (_inputParameters); } + } + + /// + /// Gets or Sets the output paramater array + /// + Parameter[] ITool.OutputParameters + { + get { return (_outputParameters); } + } + + + public string Author + { + get { return "AR(1) Model"; } + } + + public string Category + { + get { return "Forecasting"; } + } + + public string Description + { + get { return "AR(1) Model Tool"; } + } + + bool ITool.Execute(ICancelProgressHandler cancelProgressHandler) + { + string fileName = _inputParameters[0].Value.ToString(); + string destinationfileName = _outputParameters[0].Value.ToString(); + if (Execute(fileName, destinationfileName, cancelProgressHandler) == true) + { + return true; + } + else + { + return false; + } + } + + public bool Execute(string CSVFilePath, string CSVDestination, ICancelProgressHandler cancelProgressHandler) + { + tblDataTable = ParseCSVFile(CSVFilePath); + int numRows = tblDataTable.Rows.Count; + + DateTime lastSourceDate = Convert.ToDateTime(tblDataTable.Rows[numRows - 1][0]); + + DateTime forecastingfinalDate = Convert.ToDateTime(_inputParameters[1].Value); + + System.TimeSpan numberofDays = forecastingfinalDate.Subtract(lastSourceDate); + + int numberofdays = numberofDays.Days; + + double[] ForecastingValue = new double[numberofdays]; + + List Date = new List(); + + List T = new List(); + + List PreviousT = new List(); + + for (int i = 2; i < numRows; i++) + { + T.Add(Convert.ToDouble(tblDataTable.Rows[i][1])); + PreviousT.Add(Convert.ToDouble(tblDataTable.Rows[i][2])); + } + + double lastRecordValue = Convert.ToDouble(tblDataTable.Rows[numRows-2][1]); + + for (int j = 0; j < numberofdays; j++) + { + try + { + if (forecastingValue == 0) + { + + forecastingValue = ForecastingValuefunction(T, PreviousT, lastRecordValue); + PreviousT.Add(lastRecordValue); + T.Add(forecastingValue); + ForecastingValue[j] = forecastingValue; + Date.Add(lastSourceDate.AddDays(1)); + } + else + { + double dt = Convert.ToDouble(ForecastingValue[j - 1]); + + forecastingValue = ForecastingValuefunction(T, PreviousT, dt); + + PreviousT.Add(dt); + + T.Add(forecastingValue); + + ForecastingValue[j] = forecastingValue; + + Date.Add(lastSourceDate.AddDays(j)); + + } + + cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(ForecastingValue[j])) * 100), ForecastingValue[j].ToString()); + if (cancelProgressHandler.Cancel) + return false; + } + catch + { + + } + + } + + DataTable dt1 = new DataTable(); + + dt1.Columns.Add("Forecasting Values"); + + dt1.Columns.Add("Date"); + + for (int g = 0; g < ForecastingValue.Length; g++) + { + DataRow dr = dt1.NewRow(); + + dr[0] = Convert.ToDouble(ForecastingValue[g]); + + dr[1] = Date[g]; + + dt1.Rows.Add(dr); + + } + + if (dt1.Rows.Count > 0) + { + DataTable2CSV(dt1, CSVDestination, ","); + + for (int j = 0; j < dt1.Rows.Count; j++) + { + cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(dt1.Rows.Count)) * 100), dt1.Rows[j][0].ToString()); + if (cancelProgressHandler.Cancel) + return false; + } + } + else + { + return false; + } + + return true; + //decimal testValue = ForecastingValue(tblDataTable, 2.250420002); + + + } + + public System.Drawing.Bitmap HelpImage + { + get { return null; } + } + + public string HelpText + { + get { return "AR(1) Tool Help"; } + } + + public string HelpUrl + { + get { return "AR(1) Model"; } + } + + public System.Drawing.Bitmap Icon + { + get { return (null); } + } + + void ITool.Initialize() + { + _inputParameters = new Parameter[2]; + + _inputParameters[0] = new FileParam("Select the lag table"); + _inputParameters[1] = new DateTimeParam("Please select the forecaasting final date"); + + + _outputParameters = new Parameter[1]; + _outputParameters[0] = new FileParam("Forecasting Values"); + } + + + public string Name + { + get { return "AR(1) Model"; } + } + + + void ITool.ParameterChanged(Parameter sender) + { + return; + } + + public string ToolTip + { + get { return "AR(1) Model"; } + } + + public string UniqueName + { + get { return "AR(1) Model"; } + } + + public Version Version + { + get { return (new Version(1, 0, 0, 0)); } + } + + string ITool.WorkingPath + { + set { _workingPath = value; } + } + + #endregion + + } +} diff --git a/Source/Plugins/Plugins.HydroForecaster/DataSource.cs b/Source/Plugins/Plugins.HydroForecaster/DataSource.cs new file mode 100644 index 00000000..1a338294 --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/DataSource.cs @@ -0,0 +1,454 @@ +//******************************************************************************************************** +// Product Name: MapWindowTools.DataSource +// Description: This tool is used to get the data from SQLITE database. +// +//******************************************************************************************************** +// The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); +// you may not use this file except in compliance with the License. You may obtain a copy of the License at +// http://www.mozilla.org/MPL/ +// +// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF +// ANY KIND, either expressed or implied. See the License for the specificlanguage governing rights and +// limitations under the License. +// +// The Original Code is Toolbox.dll for the MapWindow 4.6/6 ToolManager project +// +// The Initializeializeial Developer of this Original Code is Teva Veluppillai. Created in 2010 March. +// +// Contributor(s): (Open source contributors should list themselves and their modifications here). +// +//******************************************************************************************************** + +#region NameSpace +using System; +using System.Spatial.Geometries; +using System.Spatial.Tools; +using System.Spatial.Data; +using System.Spatial.Tools.Param; +using System.Data.SQLite; +using System.Data; +using System.IO; +using System.Text; +using System.Collections.Generic; +#endregion + +namespace MapWindowTools.Forecaster +{ + class DataSource : ITool + { + #region Class Variable + private Parameter[] _inputParameters; + private Parameter[] _outputParameters; + private DataTable Sites; + private DataTable Variables; + private string _workingPath; + public string[] SiteId; + public string[] VariableId; + public string VarId; + #endregion + + #region ITool Members + + //New comment added by Teva to test hg commit + public string Author + { + get { return "MapWindow Development Team"; } + } + + public string Category + { + get { return "Forecasting"; } + } + + public string Description + { + get { return "This tool helps to get the data from Hydrodesktop database.User needs to select the hydrodesktop database,thereafter user can select the required site and variable to get the data. Date range also helps to control the range of download data. Data store in CSV file format."; } + } + + public bool Execute(ICancelProgressHandler CancelProgressHandler) + { + string fileName = _outputParameters[0].Value.ToString(); + + if (Execute(fileName, CancelProgressHandler) == true) + { + return true; + } + else + { + return false; + } + } + + public bool Execute(string fileName, ICancelProgressHandler cancelProgressHandler) + { + string SeriesId = GetSeriesId(); + DataTable dataValues = GetDataValues(SeriesId); + DateTime startDate = Convert.ToDateTime(_inputParameters[3].Value); + DateTime endDate = Convert.ToDateTime(_inputParameters[4].Value); + + DataTable UpdatedDatatable = new DataTable(); + UpdatedDatatable.Columns.Add("DateTime"); + UpdatedDatatable.Columns.Add("Value"); + + DataRow siteId = UpdatedDatatable.NewRow(); + siteId[0] = SiteId[0].ToString(); + siteId[1] = VarId; //Note this is variable Code + UpdatedDatatable.Rows.Add(siteId); + + for (int k = 0; k < dataValues.Rows.Count; k++) + { + + if (startDate < Convert.ToDateTime(dataValues.Rows[k][0].ToString()) && endDate > Convert.ToDateTime(dataValues.Rows[k][0].ToString())) + { + DataRow dr = UpdatedDatatable.NewRow(); + dr[0] = dataValues.Rows[k][0].ToString(); + dr[1] = dataValues.Rows[k][1].ToString(); + UpdatedDatatable.Rows.Add(dr); + } + } + + if (UpdatedDatatable.Rows.Count > 1) + { + DataTable2CSV(UpdatedDatatable, fileName, ","); + + for (int j = 1; j < dataValues.Rows.Count; j++) + { + + cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(dataValues.Rows.Count)) * 100), dataValues.Rows[j][0].ToString()); + if (cancelProgressHandler.Cancel) + return false; + } + return true; + } + else + { + return false; + } + } + + + public System.Drawing.Bitmap HelpImage + { + get { return null; } + } + + public string HelpText + { + get { return "This tool helps to get the data from Hydrodesktop database.User needs to select the hydrodesktop database,thereafter user can select the required site and variable to get the data. Date range also helps to control the range of download data. Data store in CSV file format."; } + } + + public string HelpUrl + { + get { return "www.System.Spatial.org"; } + } + + public System.Drawing.Bitmap Icon + { + get { return null; } + } + + + public void Initialize() + { + _inputParameters = new Parameter[5]; + _inputParameters[0] = new FileParam("Select the Hydrodesktop database"); + _inputParameters[1] = new ListParam("Select the Site"); + _inputParameters[2] = new ListParam("Select the Variable"); + _inputParameters[3] = new DateTimeParam("Start Date"); + _inputParameters[4] = new DateTimeParam("End Date"); + + + _outputParameters = new Parameter[1]; + _outputParameters[0] = new FileParam("Save Data"); + } + + public Parameter[] InputParameters + { + get { return _inputParameters; } + } + + public string Name + { + get { return ("Data Source"); } + } + + public Parameter[] OutputParameters + { + get { return _outputParameters; } + } + + public void ParameterChanged(Parameter sender) + { + return; + } + + public string ToolTip + { + get { return ("DataSource from Hydrodesktop Tool"); } + } + + public string UniqueName + { + get { return ("DataSource"); } + } + + public Version Version + { + get { throw new NotImplementedException(); } + } + + public string WorkingPath + { + set { _workingPath = value; } + } + + void ITool.ParameterChanged(Parameter sender) + { + if (sender == _inputParameters[0]) + { + if (BuildConnection() == true) + { + //This is used to get the sites + Sites = Getsites(); + //This is used to get the variables + Variables = GetVariables(); + + ListParam lp1 = (_inputParameters[1] as ListParam); + + ListParam lp2 = (_inputParameters[2] as ListParam); + + if (lp1 != null) + { + lp1.ValueList.Clear(); + for (int i = 0; i < Sites.Rows.Count; i++) + { + lp1.ValueList.Add(Sites.Rows[i][0].ToString() + "," + Sites.Rows[i][2].ToString()); + } + lp1.Value = -1; + } + + if (lp2 != null) + { + lp2.ValueList.Clear(); + for (int i = 0; i < Variables.Rows.Count; i++) + { + lp2.ValueList.Add(Variables.Rows[i][0].ToString() + "," + Variables.Rows[i][2].ToString() + "/" + "ValueType" + Variables.Rows[i][6].ToString()); + } + lp2.Value = -1; + } + + + } + } + return; + } + + + #endregion + + #region "Private methods" + + private bool BuildConnection() + { + + if (_inputParameters[0].Value.ToString() != string.Empty) + { + string connectionString = _inputParameters[0].Value.ToString(); + SetSQLITEConnection(connectionString); + return true; + } + else + { + return false; + } + + } + + + private DataTable Getsites() + { + string Query = "Select * from Sites"; + DataTable Sites = new DataTable(); + if (BuildConnection() == true) + { + Sites = ExecuteDataset(Query).Tables[0]; + } + return Sites; + } + + private DataTable GetVariables() + { + string Query = "Select * from Variables"; + DataTable Variables = new DataTable(); + if (BuildConnection() == true) + { + Variables = ExecuteDataset(Query).Tables[0]; + } + return Variables; + } + + private string GetSeriesId() + { + ListParam lp1 = _inputParameters[1] as ListParam; + ListParam lp2 = _inputParameters[2] as ListParam; + string SId = (lp1).ValueList[lp1.Value]; + string VId = (lp2).ValueList[lp2.Value]; + string deli = ","; + char[] delimiter = deli.ToCharArray(); + //string[] VariableId = null; + + //string[] SiteId + + SiteId = SId.Split(new Char[] { ' ', ',', '.', ':', '\t' }); + + //string[] VariableId + + VariableId = VId.Split(new Char[] { ' ', ',', '.', ':', '\t' }); + + VarId = VariableId[0].ToString(); + + string Query = "Select min(SeriesId) from DataSeries where siteId=" + SiteId[0].ToString() + " and variableId=" + VariableId[0].ToString() + " group by siteid,variableId"; + string SeriesId = ExecuteSQLITESingleOutput(Query); + return SeriesId; + } + + + private DataTable GetDataValues(string SeriesId) + { + DataTable DataValues = new DataTable(); + + if (SeriesId != string.Empty) + { + string Query = "select LocalDateTime,DataValue from DataValues where SeriesID=" + SeriesId; + if (BuildConnection() == true) + { + DataValues = ExecuteDataset(Query).Tables[0]; + } + } + + return DataValues; + } + #region SQLITE Related + + SQLiteConnection sqlite_con; + SQLiteDataAdapter sqliteDA; + System.Data.DataSet sqliteDS; + SQLiteCommand sqlite_cmd; + + public string ExecuteSQLITESingleOutput(String inputString) + { + string output; + try + { + if (sqlite_con == null) + { + SetSQLITECon((this.InputParameters[0] as FileParam).Value.FileName); + } + + if (sqlite_con.State == ConnectionState.Closed) + { + sqlite_con.Open(); + } + sqlite_cmd = sqlite_con.CreateCommand(); + sqlite_cmd.CommandText = inputString; + if (sqlite_cmd.ExecuteScalar().ToString() == "") + { + output = ""; + } + else + { + output = sqlite_cmd.ExecuteScalar().ToString(); + sqlite_con.Close(); + } + } + catch + { + output = ""; + } + + return output; + + } + + public void SetSQLITEConnection(String ConnectionString) + { + string setSQLITEConnection = SetSQLITECon(ConnectionString); + sqlite_con = new System.Data.SQLite.SQLiteConnection(setSQLITEConnection); + } + + public string SetSQLITECon(String Databasepath) + { + sqlite_con = new System.Data.SQLite.SQLiteConnection("Data Source=" + Databasepath + ";New=False;Compress=True;Version=3"); + return sqlite_con.ConnectionString.ToString(); + } + + public System.Data.DataSet ExecuteDataset(string SQlQuery) + { + + sqlite_con.Open(); + string CommandText = SQlQuery; + sqliteDA = new SQLiteDataAdapter(CommandText, sqlite_con); + sqliteDS = new System.Data.DataSet(); + sqliteDS.Clear(); + sqliteDA.Fill(sqliteDS); + return sqliteDS; + } + + + #endregion + + public static void DataTable2CSV(DataTable table, string filename, string seperateChar) + { + StreamWriter sr = null; + try + { + + sr = new StreamWriter(filename); + string seperator = ""; + StringBuilder builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(col.ColumnName); + + seperator = seperateChar; + } + + sr.WriteLine(builder.ToString()); + + foreach (DataRow row in table.Rows) + { + + seperator = ""; + builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(row[col.ColumnName]); + seperator = seperateChar; + + } + + sr.WriteLine(builder.ToString()); + + } + + } + + finally + { + + if (sr != null) + { + + sr.Close(); + + } + + } + + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroForecaster/DeNormalizedData.cs b/Source/Plugins/Plugins.HydroForecaster/DeNormalizedData.cs new file mode 100644 index 00000000..8b93073a --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/DeNormalizedData.cs @@ -0,0 +1,434 @@ +//******************************************************************************************************** +// Product Name: MapWindowTools.LagTool +// Description: This tool is used to get the data from SQLITE database. +// +//******************************************************************************************************** +// The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); +// you may not use this file except in compliance with the License. You may obtain a copy of the License at +// http://www.mozilla.org/MPL/ +// +// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF +// ANY KIND, either expressed or implied. See the License for the specificlanguage governing rights and +// limitations under the License. +// +// The Original Code is Toolbox.dll for the MapWindow 4.6/6 ToolManager project +// +// The Initializeializeial Developer of this Original Code is Teva Veluppillai. Created in 2010 March. +// +// Contributor(s): (Open source contributors should list themselves and their modifications here). +// +//******************************************************************************************************** + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Spatial.Tools; +using System.Spatial.Tools.Param; +using System.Data.OleDb; +using System.IO; +using System.Data; +using System.Text.RegularExpressions; +using System.Collections; + +namespace HydroForecaster +{ + class DeNormalizedData:ITool + { + private Parameter[] _inputParameters; + private Parameter[] _outputParameters; + + #region Private Methods + + private DataTable ParseCSV(string inputString) + { + + DataTable dt = new DataTable(); + + // declare the Regular Expression that will match versus the input string + Regex re = new Regex("((?[^\",\\r\\n]+)|\"(?([^\"]|\"\")+)\")(,|(?\\r\\n|\\n|$))"); + + ArrayList colArray = new ArrayList(); + ArrayList rowArray = new ArrayList(); + + int colCount = 0; + int maxColCount = 0; + string rowbreak = ""; + string field = ""; + + MatchCollection mc = re.Matches(inputString); + + foreach (Match m in mc) + { + + // retrieve the field and replace two double-quotes with a single double-quote + field = m.Result("${field}").Replace("\"\"", "\""); + + rowbreak = m.Result("${rowbreak}"); + + if (field.Length > 0) + { + colArray.Add(field); + colCount++; + } + + if (rowbreak.Length > 0) + { + + // add the column array to the row Array List + rowArray.Add(colArray.ToArray()); + + // create a new Array List to hold the field values + colArray = new ArrayList(); + + if (colCount > maxColCount) + maxColCount = colCount; + + colCount = 0; + } + } + + if (rowbreak.Length == 0) + { + // this is executed when the last line doesn't + // end with a line break + rowArray.Add(colArray.ToArray()); + if (colCount > maxColCount) + maxColCount = colCount; + } + + // convert the row Array List into an Array object for easier access + Array ra = rowArray.ToArray(); + Array ss; + + for (int t = 0; t < 1; t++) + { + // convert the column Array List into an Array object for easier access + ss = (Array)(ra.GetValue(t)); + + + // create the columns for the table + for (int i = 0; i < ss.Length; i++) + dt.Columns.Add(ss.GetValue(i).ToString()); + } + + for (int i = 1; i < ra.Length; i++) + { + // create a new DataRow + DataRow dr = dt.NewRow(); + + // convert the column Array List into an Array object for easier access + Array ca = (Array)(ra.GetValue(i)); + + // add each field into the new DataRow + for (int j = 0; j < ca.Length; j++) + dr[j] = ca.GetValue(j); + + // add the new DataRow to the DataTable + dt.Rows.Add(dr); + } + + // in case no data was parsed, create a single column + if (dt.Columns.Count == 0) + dt.Columns.Add("NoData"); + + return dt; + } + + private DataTable ParseCSVFile(string path) + { + + string inputString = ""; + + // check that the file exists before opening it + if (File.Exists(path)) + { + + StreamReader sr = new StreamReader(path); + inputString = sr.ReadToEnd(); + sr.Close(); + + } + + return ParseCSV(inputString); + } + + private void DataTable2CSV(DataTable table, string filename, string seperateChar) + { + StreamWriter sr = null; + try + { + + sr = new StreamWriter(filename); + string seperator = ""; + StringBuilder builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(col.ColumnName); + + seperator = seperateChar; + } + + sr.WriteLine(builder.ToString()); + + foreach (DataRow row in table.Rows) + { + + seperator = ""; + builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(row[col.ColumnName]); + seperator = seperateChar; + + } + + sr.WriteLine(builder.ToString()); + + } + + } + + finally + { + + if (sr != null) + { + + sr.Close(); + + } + + } + + } + + public List GetMinMaxValue(DataTable dt1, ICancelProgressHandler cancelProgressHandler) + { + int counter = 0; + + int totalrows = dt1.Rows.Count; + + while (counter < dt1.Rows.Count) + { + double temp; + if (counter != totalrows - 1) + { + if (Convert.ToDouble(dt1.Rows[counter][1]) > Convert.ToDouble(dt1.Rows[counter + 1][1])) + { + temp = Convert.ToDouble(dt1.Rows[counter][1]); + dt1.Rows[counter][1] = dt1.Rows[counter + 1][1]; + dt1.Rows[counter + 1][1] = temp; + counter = 0; + continue; + } + } + counter++; + //cancelProgressHandler.Progress("",counter /(counter -1)*(counter -1) * 100,dt1.Rows[counter][1].ToString()); + + + } + + double Min = Convert.ToDouble(dt1.Rows[1][1]); + double Max = Convert.ToDouble(dt1.Rows[dt1.Rows.Count - 1][1]); + + List MinMax = new List(); + MinMax.Add(Min); + MinMax.Add(Max); + + return MinMax; + + } + + public DataTable DenormalizedData(DataTable dt, List MinMax) + { + DataTable dtDenormalizedTable = new DataTable(); + + dtDenormalizedTable.Columns.Add("DateTime"); + dtDenormalizedTable.Columns.Add("ForecastingValue"); + + DataRow SiteId = dtDenormalizedTable.NewRow(); + SiteId[0] = (Convert.ToDouble(dt.Rows[dt.Rows.Count-1][0])); //this is siteId + SiteId[1] = (Convert.ToDouble(dt.Rows[dt.Rows.Count-1][1])); //this VariableId + dtDenormalizedTable.Rows.Add(SiteId); + + //I just change the i value from 7 to 1. + + double MinimumValue = MinMax[0]; + double MaximumValue = MinMax[1]; + double Denominator = MaximumValue - MinimumValue; + + for (int i = 0; i < dt.Rows.Count-2; i++) + { + DataRow dr = dtDenormalizedTable.NewRow(); + dr[0] = dt.Rows[i][0]; + double row1 = Convert.ToDouble(dt.Rows[i][1]); + double finalValue = (row1 * Denominator) + MinimumValue; + dr[1] = finalValue; + //(((Convert.ToDouble(dt.Rows[i][1])) * (MinMax[1] - MinMax[0]))) + MinMax[0]; + //dr[1] = ((Convert.ToDouble(dt.Rows[i][1])) + MinMax[0]) * (MinMax[1] - MinMax[0]); + dtDenormalizedTable.Rows.Add(dr); + } + + return dtDenormalizedTable; + } + + #endregion + + #region ITool Members + + public string Author + { + get { return "Neural Network Denormalized Data"; } + } + + public string Category + { + get { return "Forecasting"; } + } + + public string Description + { + get { return "Forecasting Neural Network Denormalized Data"; } + } + + public bool Execute(ICancelProgressHandler cancelProgressHandler) + { + string streamFlowSource = _inputParameters[0].Value.ToString(); + string forecastingSource = _inputParameters[1].Value.ToString(); + + string destinationfileName = _outputParameters[0].Value.ToString(); + Execute(forecastingSource, destinationfileName, streamFlowSource,cancelProgressHandler); + return true; + } + + public bool Execute(string ForecastingResults, string ResultsSave,string StreamFlowSource, ICancelProgressHandler cancelProgressHandler) + { + DataTable tblForecastingResult= new DataTable(); + DataTable tblStreamFlowSource = new DataTable(); + + tblForecastingResult = ParseCSVFile(ForecastingResults); + tblStreamFlowSource = ParseCSVFile(StreamFlowSource); + + List MinMax=new List(); + MinMax = GetMinMaxValue(tblStreamFlowSource, cancelProgressHandler); + + DataTable dtDeNormalizedValue = new DataTable(); + + dtDeNormalizedValue = DenormalizedData(tblForecastingResult, MinMax); + + DataTable2CSV(dtDeNormalizedValue, ResultsSave, ","); + + for (int j = 0; j < dtDeNormalizedValue.Rows.Count; j++) + { + cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(dtDeNormalizedValue.Rows.Count)) * 100), dtDeNormalizedValue.Rows[j][0].ToString() + ":" + dtDeNormalizedValue.Rows[j][1].ToString()); + if (cancelProgressHandler.Cancel) + return false; + } + + return true; + } + + public DataTable LagTable(DataTable dt) + { + DataTable dtLagTable = new DataTable(); + + dtLagTable.Columns.Add("Date"); + dtLagTable.Columns.Add("t"); + dtLagTable.Columns.Add("t-1"); + + for (int l = 1; l < dt.Rows.Count; l++) + { + DataRow dr = dtLagTable.NewRow(); + + dr[0] = dt.Rows[l][0]; + + dr[1] = (Convert.ToDouble(dt.Rows[l][1])); + dr[2] = (Convert.ToDouble(dt.Rows[l - 1][1])); + + dtLagTable.Rows.Add(dr); + } + + return dtLagTable; + } + + + + + public System.Drawing.Bitmap HelpImage + { + get { return null; } + } + + public string HelpText + { + get { return "This tool helps to denormalize the data"; } + } + + public string HelpUrl + { + get { return "Denormalized Data"; } + } + + public System.Drawing.Bitmap Icon + { + get { return null; } + } + + public void Initialize() + { + _inputParameters = new Parameter[2]; + + _inputParameters[0] = new FileParam("Select the Streamflow source table"); + + _inputParameters[1] = new FileParam("Select the Forecasting Results table"); + + _outputParameters = new Parameter[1]; + _outputParameters[0] = new FileParam("Denormalized Data"); + } + + public Parameter[] InputParameters + { + get { return _inputParameters; } + } + + public string Name + { + get { return "Data Denormalization"; } + } + + public Parameter[] OutputParameters + { + get { return _outputParameters; } + } + + public void ParameterChanged(Parameter sender) + { + + } + + public string ToolTip + { + get { return "Neural Network Denormalized Data"; } + } + + public string UniqueName + { + get { return "Neural Network Denormalized Data"; } + } + + public Version Version + { + get { return (new Version(1, 0, 0, 0)); } + } + + public string WorkingPath + { + set { } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroForecaster/HydroForecaster.sln b/Source/Plugins/Plugins.HydroForecaster/HydroForecaster.sln new file mode 100644 index 00000000..ba8fa703 --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/HydroForecaster.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroForecaster", "HydroForecaster.csproj", "{219531E2-8458-41D5-B1C8-46D39122A240}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {219531E2-8458-41D5-B1C8-46D39122A240}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {219531E2-8458-41D5-B1C8-46D39122A240}.Debug|Any CPU.Build.0 = Debug|Any CPU + {219531E2-8458-41D5-B1C8-46D39122A240}.Release|Any CPU.ActiveCfg = Release|Any CPU + {219531E2-8458-41D5-B1C8-46D39122A240}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroForecaster/InputNeuronsSF.txt b/Source/Plugins/Plugins.HydroForecaster/InputNeuronsSF.txt new file mode 100644 index 00000000..981a85c4 --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/InputNeuronsSF.txt @@ -0,0 +1,14 @@ +3 +7 5 5 1 +1 1 2 +-2.5223 -0.88014 -0.10878 1.5008 0.45078 -2.0986 0.73146 1.7208 +0.46109 -1.7041 -2.6332 -1.9582 1.0449 0.28534 -1.8892 -2.5739 +-0.88561 0.88528 -0.36234 -0.47667 -0.17079 -0.69532 -1.8997 2.1289 +-0.39061 0.31699 0.61731 1.9696 1.9395 3.3833 2.8375 0.95624 +0.22488 -0.030997 -0.24479 0.33612 -0.39179 2.014 -3.427 0.91871 +-0.72724 -0.15706 -0.9024 2.1203 -2.5992 1.8458 +-0.32507 0.74687 -1.7225 -0.96101 -2.1072 -1.6475 +-1.2827 -0.46023 0.70399 -1.0524 1.7939 0.01044 +0.50768 1.4647 0.80295 0.63471 -0.28831 0.79747 +0.28499 -1.2389 1.6053 1.2882 -1.4703 -1.3589 +4.144 4.0294 -0.77093 -1.5043 1.3422 -1.1321 \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroForecaster/K-nn.cs b/Source/Plugins/Plugins.HydroForecaster/K-nn.cs new file mode 100644 index 00000000..6470bb54 --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/K-nn.cs @@ -0,0 +1,596 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Spatial.Tools; +using System.Spatial.Tools.Param; +using System.Data.OleDb; +using System.IO; +using System.Data; +using System.Text.RegularExpressions; +using System.Collections; + +namespace HydroForecaster +{ + class K_nn : ITool + { + #region Private members + + private Parameter[] _inputParameters; + private Parameter[] _outputParameters; + private DataTable tblDataTable; + + decimal forecastingValue; + private string _workingPath; + + private Decimal SumX; + private Decimal SumY; + private Decimal SumSqrX; + private Decimal SumXY; + + #endregion + + #region Private Methods + + #region CSV File Related + + private DataTable ParseCSV(string inputString) + { + + DataTable dt = new DataTable(); + + // declare the Regular Expression that will match versus the input string + Regex re = new Regex("((?[^\",\\r\\n]+)|\"(?([^\"]|\"\")+)\")(,|(?\\r\\n|\\n|$))"); + + ArrayList colArray = new ArrayList(); + ArrayList rowArray = new ArrayList(); + + int colCount = 0; + int maxColCount = 0; + string rowbreak = ""; + string field = ""; + + MatchCollection mc = re.Matches(inputString); + + foreach (Match m in mc) + { + + // retrieve the field and replace two double-quotes with a single double-quote + field = m.Result("${field}").Replace("\"\"", "\""); + + rowbreak = m.Result("${rowbreak}"); + + if (field.Length > 0) + { + colArray.Add(field); + colCount++; + } + + if (rowbreak.Length > 0) + { + + // add the column array to the row Array List + rowArray.Add(colArray.ToArray()); + + // create a new Array List to hold the field values + colArray = new ArrayList(); + + if (colCount > maxColCount) + maxColCount = colCount; + + colCount = 0; + } + } + + if (rowbreak.Length == 0) + { + // this is executed when the last line doesn't + // end with a line break + rowArray.Add(colArray.ToArray()); + if (colCount > maxColCount) + maxColCount = colCount; + } + + // convert the row Array List into an Array object for easier access + Array ra = rowArray.ToArray(); + Array ss; + + for (int t = 0; t < 1; t++) + { + // convert the column Array List into an Array object for easier access + ss = (Array)(ra.GetValue(t)); + + + // create the columns for the table + for (int i = 0; i < ss.Length; i++) + dt.Columns.Add(ss.GetValue(i).ToString()); + } + + for (int i = 7; i < ra.Length; i++) + { + // create a new DataRow + DataRow dr = dt.NewRow(); + + // convert the column Array List into an Array object for easier access + Array ca = (Array)(ra.GetValue(i)); + + // add each field into the new DataRow + for (int j = 0; j < ca.Length; j++) + dr[j] = ca.GetValue(j); + + // add the new DataRow to the DataTable + dt.Rows.Add(dr); + } + + // in case no data was parsed, create a single column + if (dt.Columns.Count == 0) + dt.Columns.Add("NoData"); + + return dt; + } + + private DataTable ParseCSVFile(string path) + { + + string inputString = ""; + + // check that the file exists before opening it + if (File.Exists(path)) + { + + StreamReader sr = new StreamReader(path); + inputString = sr.ReadToEnd(); + sr.Close(); + + } + + return ParseCSV(inputString); + } + + private void DataTable2CSV(DataTable table, string filename, string seperateChar) + { + StreamWriter sr = null; + try + { + + sr = new StreamWriter(filename); + string seperator = ""; + StringBuilder builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(col.ColumnName); + + seperator = seperateChar; + } + + sr.WriteLine(builder.ToString()); + + foreach (DataRow row in table.Rows) + { + + seperator = ""; + builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(row[col.ColumnName]); + seperator = seperateChar; + + } + + sr.WriteLine(builder.ToString()); + + } + + } + + finally + { + + if (sr != null) + { + + sr.Close(); + + } + + } + + } + + #endregion + + /// + /// This function gives the nearest neighbour value + /// + /// QT has all the values from history data + /// User enterd neighbour value + /// neighbour value + private List NeighbourValue(List QT,int KValue) + { + + List difference = new List(); + + List neighbourValue = new List(); + + double LastValue; + + LastValue = QT[QT.Count - 1]; + + //find the difference between actual value and last date value + for (int j = 0; j < QT.Count; j++) + { + difference.Add(QT[j] - LastValue); + } + + //sort the difference list array + int counter = 0; + double temp1; + while (counter < difference.Count - 1) + { + + if (difference[counter] > difference[counter + 1]) + { + temp1 = difference[counter]; + difference[counter] = difference[counter + 1]; + difference[counter + 1] = temp1; + counter = 0; + continue; + } + counter += 1; + } + + //find the nearest neighbour values + for (int t = 0; t < difference.Count; t++) + { + neighbourValue.Add(difference[t] + LastValue); + } + + return neighbourValue; + } + + /// + /// This function gives the neighbour date + /// + /// neighbourvalue from the history data Note: Still we haven't got the previous neighbour record + /// Data table + /// User enterd K value + /// Return the Dates which are next dates of the neighbour data value + private List GetNeighbourDates(List neighbourValue, DataTable dt1, int k) + { + List neighbourValueDate = new List(); + + List forecastingDate = new List(); + + int KValue = k; + + //get the date from nearest neighbour value dates + for (int y = 0; y < dt1.Rows.Count; y++) + { + for (int j = 0; j < KValue; j++) + { + if (neighbourValue[j] == Convert.ToDouble(dt1.Rows[y][1])) + { + if (neighbourValueDate.Count == 0) + { + neighbourValueDate.Add(Convert.ToDateTime(dt1.Rows[y][0])); + } + else + { + for (int n = neighbourValueDate.Count - 1; n <= neighbourValueDate.Count; n++) + { + if (n > neighbourValueDate.Count || n == 0) + { + if (Convert.ToDateTime(neighbourValueDate[n]) != Convert.ToDateTime(dt1.Rows[y][0])) + { + neighbourValueDate.Add(Convert.ToDateTime(dt1.Rows[y][0])); + } + } + + } + } + } + } + } + + //add the one dat with nearest neighbour date to get the next day value + for (int l = 0; l < neighbourValueDate.Count; l++) + { + DateTime neighbourvaluedate = neighbourValueDate[l]; + forecastingDate.Add(neighbourvaluedate.AddDays(1)); + + } + return forecastingDate; + } + + /// + /// This function will give the next day value of the neighbour date + /// + /// Datatable which has the history data + /// + /// + private List GetNextDayValue(DataTable dt, List dt1) + { + List forecastingDate = dt1; + List IDWValue = new List(); + + //get the next day value from historic data + for (int n = 0; n < forecastingDate.Count; n++) + { + for (int m = 0; m < dt.Rows.Count; m++) + { + if (Convert.ToDateTime(dt.Rows[m][0]) == forecastingDate[n]) + { + IDWValue.Add(Convert.ToDouble(dt.Rows[m][1])); + } + } + } + return IDWValue; + } + + /// + /// Give the interpolated value + /// + /// + /// + /// + private double IDW1(List neighbourValue, double FinalValue) + { + double distance = 0; + double totalDistance = 0; + + double weight = 0; + double Value = 0; + + for (int i = 0; i < neighbourValue.Count; i++) + { + distance = Math.Abs(neighbourValue[i] - FinalValue); + weight += neighbourValue[i] / distance; + totalDistance += 1 / distance; + } + + Value = weight / totalDistance; + return Value; + } + + private double KnnForecastingValue(List QT, int KValue, DataTable dt) + { + List getNeighbourValue = new List(); + + List getNeighbourDates = new List(); + + double forecastingValue = 0D; + + getNeighbourValue = NeighbourValue(QT,KValue); + + getNeighbourDates = GetNeighbourDates(getNeighbourValue, dt, KValue); + + forecastingValue = IDW1(GetNextDayValue(dt, getNeighbourDates), QT[QT.Count - 1]); + + return forecastingValue; + } + + #endregion + + #region ITool Members + + /// + /// Gets or Sets the input paramater array + /// + Parameter[] ITool.InputParameters + { + get { return (_inputParameters); } + } + + /// + /// Gets or Sets the output paramater array + /// + Parameter[] ITool.OutputParameters + { + get { return (_outputParameters); } + } + + + public string Author + { + get { return "K-nn Model"; } + } + + public string Category + { + get { return "Forecasting"; } + } + + public string Description + { + get { return "K-nn Model Tool"; } + } + + bool ITool.Execute(ICancelProgressHandler cancelProgressHandler) + { + string fileName = _inputParameters[0].Value.ToString(); + string destinationfileName = _outputParameters[0].Value.ToString(); + if (Execute(fileName, destinationfileName, cancelProgressHandler) == true) + { + return true; + } + else + { + return false; + } + } + + + public bool Execute(string CSVFilePath, string CSVDestination, ICancelProgressHandler cancelProgressHandler) + { + tblDataTable = ParseCSVFile(CSVFilePath); + + List QT = new List(); + + List Date = new List(); + + int counter=0; + + int K = 0; + + K = Convert.ToInt32(_inputParameters[1].Value.ToString()); + + for (int j = 1; j < tblDataTable.Rows.Count; j++) + { + try + { + //This array helps to store the Q of the t day + QT.Add(Convert.ToDouble(tblDataTable.Rows[j][1])); + + + //This is array is used to store the dates + Date.Add(Convert.ToDateTime(tblDataTable.Rows[j][0])); + + counter +=1; + + cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(tblDataTable.Rows.Count)) * 100), tblDataTable.Rows[j][1].ToString()); + if (cancelProgressHandler.Cancel) + return false; + } + + catch + { + + } + + } + + DataTable dt1 = new DataTable(); + + dt1.Columns.Add("Forecasting Values"); + + dt1.Columns.Add("Date"); + + + double forecastingValue = 0D; + + DateTime ForecastingDate; + + System.TimeSpan diffResult = Date[counter - 1].Subtract(Convert.ToDateTime(_inputParameters[2].Value.ToString())); + + int numberofdays = diffResult.Days *-1; + + for (int h = 0; h < numberofdays; h++) + { + DataRow dr = dt1.NewRow(); + + if (forecastingValue == 0D) + { + forecastingValue = KnnForecastingValue(QT, K,tblDataTable); + QT.Add(forecastingValue); + Date.Add(Date[counter - 1]); + dr[0] =Convert.ToDouble(forecastingValue); + dr[1] = Date[counter - 1]; + dt1.Rows.Add(dr); + + } + else + { + + ForecastingDate = Date[counter - 1].AddDays(h); + forecastingValue = KnnForecastingValue(QT, K,tblDataTable); + QT.Add(forecastingValue); + Date.Add(ForecastingDate); + dr[0] = Convert.ToDouble(forecastingValue); + dr[1] = ForecastingDate; + dt1.Rows.Add(dr); + + } + } + + + + if (dt1.Rows.Count > 0) + { + DataTable2CSV(dt1, CSVDestination, ","); + + for (int j = 0; j < dt1.Rows.Count; j++) + { + //DataTable2CSV(dt1, CSVDestination, ","); + cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(dt1.Rows.Count)) * 100), dt1.Rows[j][0].ToString()); + if (cancelProgressHandler.Cancel) + return false; + } + } + else + { + return false; + } + + return true; + + } + + public System.Drawing.Bitmap HelpImage + { + get { return null; } + } + + public string HelpText + { + get { return "Knn Tool Help"; } + } + + public string HelpUrl + { + get { return "Knn Model"; } + } + + public System.Drawing.Bitmap Icon + { + get { return (null); } + } + + void ITool.Initialize() + { + _inputParameters = new Parameter[3]; + _inputParameters[0] = new FileParam("Select the lag table"); + _inputParameters[1] = new StringParam("Enter the neighbour values"); + _inputParameters[2] = new DateTimeParam("Upto which date you need to forecast"); + + + _outputParameters = new Parameter[1]; + _outputParameters[0] = new FileParam("Forecasting Values"); + } + + + public string Name + { + get { return "K nearest neighbour Model"; } + } + + + void ITool.ParameterChanged(Parameter sender) + { + return; + } + + public string ToolTip + { + get { return "Knn Model"; } + } + + public string UniqueName + { + get { return "Knn Tool"; } + } + + public Version Version + { + get { return (new Version(1, 0, 0, 0)); } + } + + string ITool.WorkingPath + { + set { _workingPath = value; } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroForecaster/KDTreeTest.cs b/Source/Plugins/Plugins.HydroForecaster/KDTreeTest.cs new file mode 100644 index 00000000..90d229d6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/KDTreeTest.cs @@ -0,0 +1,505 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using MapWindow.Tools; +using MapWindow.Tools.Param; +using System.Data; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; +namespace HydroForecaster +{ + class KDTreeTest:ITool + { + + private void Test() + { + for (int i = 1; i < 100; i++) + { + + } + } + + #region Private members + + private Parameter[] _inputParameters; + private Parameter[] _outputParameters; + private DataTable tblDataTable; + private string _workingPath; + + #endregion + + #region Private Methods + + private DataTable ParseCSV(string inputString) + { + + DataTable dt = new DataTable(); + + // declare the Regular Expression that will match versus the input string + Regex re = new Regex("((?[^\",\\r\\n]+)|\"(?([^\"]|\"\")+)\")(,|(?\\r\\n|\\n|$))"); + + ArrayList colArray = new ArrayList(); + ArrayList rowArray = new ArrayList(); + + int colCount = 0; + int maxColCount = 0; + string rowbreak = ""; + string field = ""; + + MatchCollection mc = re.Matches(inputString); + + foreach (Match m in mc) + { + + // retrieve the field and replace two double-quotes with a single double-quote + field = m.Result("${field}").Replace("\"\"", "\""); + + rowbreak = m.Result("${rowbreak}"); + + if (field.Length > 0) + { + colArray.Add(field); + colCount++; + } + + if (rowbreak.Length > 0) + { + + // add the column array to the row Array List + rowArray.Add(colArray.ToArray()); + + // create a new Array List to hold the field values + colArray = new ArrayList(); + + if (colCount > maxColCount) + maxColCount = colCount; + + colCount = 0; + } + } + + if (rowbreak.Length == 0) + { + // this is executed when the last line doesn't + // end with a line break + rowArray.Add(colArray.ToArray()); + if (colCount > maxColCount) + maxColCount = colCount; + } + + // convert the row Array List into an Array object for easier access + Array ra = rowArray.ToArray(); + Array ss; + + for (int t = 0; t < 1; t++) + { + // convert the column Array List into an Array object for easier access + ss = (Array)(ra.GetValue(t)); + + + // create the columns for the table + for (int i = 0; i < ss.Length; i++) + dt.Columns.Add(ss.GetValue(i).ToString()); + } + + for (int i = 7; i < ra.Length; i++) + { + // create a new DataRow + DataRow dr = dt.NewRow(); + + // convert the column Array List into an Array object for easier access + Array ca = (Array)(ra.GetValue(i)); + + // add each field into the new DataRow + for (int j = 0; j < ca.Length; j++) + dr[j] = ca.GetValue(j); + + // add the new DataRow to the DataTable + dt.Rows.Add(dr); + } + + // in case no data was parsed, create a single column + if (dt.Columns.Count == 0) + dt.Columns.Add("NoData"); + + return dt; + } + + private DataTable ParseCSVFile(string path) + { + + string inputString = ""; + + // check that the file exists before opening it + if (File.Exists(path)) + { + + StreamReader sr = new StreamReader(path); + inputString = sr.ReadToEnd(); + sr.Close(); + + } + + return ParseCSV(inputString); + } + + private void DataTable2CSV(DataTable table, string filename, string seperateChar) + { + StreamWriter sr = null; + try + { + + sr = new StreamWriter(filename); + string seperator = ""; + StringBuilder builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(col.ColumnName); + + seperator = seperateChar; + } + + sr.WriteLine(builder.ToString()); + + foreach (DataRow row in table.Rows) + { + + seperator = ""; + builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(row[col.ColumnName]); + seperator = seperateChar; + + } + + sr.WriteLine(builder.ToString()); + + } + + } + + finally + { + + if (sr != null) + { + + sr.Close(); + + } + + } + + } + + private double KDTreeTestForecastingValue(List QPreviousT, List QT, int KValue) + { + MapWindow.Analysis.Topology.KDTree.KDTree KD = new MapWindow.Analysis.Topology.KDTree.KDTree(2); + + double[] Corordinates = new double[2]; + + for (int i = 1; i < QT.Count; i++) + { + //X Coordinate for Previous Day records [t-1] + Corordinates[0] = QPreviousT[i]; + //Y Coordinate for Current Day records [t] + Corordinates[1] = QT[i]; + + object Val = (object)(Corordinates); + + KD.Insert(Corordinates, Val); + } + + //This is guess X coordinate value,which means the one day before the forecasting day value + double LastdayValue = QT[QT.Count - 1]; + + double PreviousDay = QPreviousT[QPreviousT.Count - 1]; + + //This is guess Y coordinate value,which means the forecasting day value + double GuessValue = LastdayValue +((LastdayValue - PreviousDay)/2); + + double[] Finalcheck = new double[2]; + //X Coordinate + Finalcheck[0] = LastdayValue; + + //Y Coordinate + Finalcheck[1] = GuessValue; + + object[] val = KD.Nearest(Finalcheck, KValue); + + + double XDistance; + double XSqrDistance; + double YDistance; + double YSqrDistance; + + List finalDistnace = new List(); + List finalWeights = new List(); + double weight=0; + double distance=0; + + for (int j = 0; j < val.Length; j++) + { + double[] val2 = (double[])(val[j]); + + XDistance = LastdayValue - val2[0]; + XSqrDistance = XDistance * XDistance; + YDistance = GuessValue - val2[1]; + finalWeights.Add(val2[1]); + YSqrDistance = YDistance * YDistance; + finalDistnace.Add(Math.Sqrt(XSqrDistance + YSqrDistance)); + } + + + + for (int k = 0; k < finalDistnace.Count; k++) + { + if (finalDistnace[k] == 0) + { + weight += finalWeights[k] / 1.0; + distance += 1 / 1.0; + } + else + { + weight += finalWeights[k] / finalDistnace[k]; + distance += 1 / finalDistnace[k]; + } + } + + double forecastingValue = weight / distance; + + // KD.Delete(Corordinates); + + return forecastingValue; + + + } + + #endregion + + #region ITool Members + + /// + /// Gets or Sets the input paramater array + /// + Parameter[] ITool.InputParameters + { + get { return (_inputParameters); } + } + + /// + /// Gets or Sets the output paramater array + /// + Parameter[] ITool.OutputParameters + { + get { return (_outputParameters); } + } + + public string Author + { + get { return "KDTreeTest Model"; } + } + + public string Category + { + get { return "Forecasting"; } + } + + public string Description + { + get { return "KDTreeTest Model Tool"; } + } + + bool ITool.Execute(ICancelProgressHandler cancelProgressHandler) + { + string fileName = _inputParameters[0].Value.ToString(); + string destinationfileName = _outputParameters[0].Value.ToString(); + if (Execute(fileName, destinationfileName, cancelProgressHandler) == true) + { + return true; + } + else + { + return false; + } + } + + public bool Execute(string CSVFilePath, string CSVDestination, ICancelProgressHandler cancelProgressHandler) + { + tblDataTable = ParseCSVFile(CSVFilePath); + + List QT = new List(); + + List QPreviousT = new List(); + + List Date = new List(); + + int counter = 0; + + int K = 0; + + K = Convert.ToInt32(_inputParameters[1].Value.ToString()); + + for (int j = 0; j < tblDataTable.Rows.Count; j++) + { + try + { + //This array helps to store the Q of the t day + QT.Add(Convert.ToDouble(tblDataTable.Rows[j][1])); + + //This array is used to store the value of the t-1 day + QPreviousT.Add(Convert.ToDouble(tblDataTable.Rows[j][2])); + + Date.Add(Convert.ToDateTime(tblDataTable.Rows[j][0])); + //cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(tblDataTable.Rows.Count)) * 100), tblDataTable.Rows[j][1].ToString()); + //if (cancelProgressHandler.Cancel) + // return false; + } + + catch + { + + } + + } + double ForecastingValue = 0D; + + + + + DataTable dt1 = new DataTable(); + + dt1.Columns.Add("Forecasting Values"); + + dt1.Columns.Add("Date"); + + int numberofrecords= tblDataTable.Rows.Count; + + DateTime ForecastingDate; + + System.TimeSpan diffResult = Date[numberofrecords -1].Subtract(Convert.ToDateTime(_inputParameters[2].Value.ToString())); + + int numberofdays = diffResult.Days * -1; + + for (int h = 0; h < numberofdays; h++) + { + DataRow dr = dt1.NewRow(); + + if (ForecastingValue == 0D) + { + ForecastingValue = KDTreeTestForecastingValue(QPreviousT, QT, K); + QT.Add(ForecastingValue); + QPreviousT.Add(QT[QT.Count - 2]); + ForecastingDate = Date[numberofrecords - 1].AddDays(h); + Date.Add(ForecastingDate); + dr[0] = Convert.ToDouble(ForecastingValue); + dr[1] = Date[numberofrecords - 1]; + dt1.Rows.Add(dr); + + } + else + { + + ForecastingDate = Date[numberofrecords - 1].AddDays(h); + ForecastingValue = KDTreeTestForecastingValue(QPreviousT, QT, K); + QT.Add(ForecastingValue); + QPreviousT.Add(QT[QT.Count - 2]); + Date.Add(ForecastingDate); + dr[0] = Convert.ToDouble(ForecastingValue); + dr[1] = ForecastingDate; + dt1.Rows.Add(dr); + + } + } + if (dt1.Rows.Count > 0) + { + DataTable2CSV(dt1, CSVDestination, ","); + + for (int j = 0; j < dt1.Rows.Count; j++) + { + cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(dt1.Rows.Count)) * 100), dt1.Rows[j][0].ToString()); + if (cancelProgressHandler.Cancel) + return false; + } + } + else + { + return false; + } + + return true; + + } + + public System.Drawing.Bitmap HelpImage + { + get { return null; } + } + + public string HelpText + { + get { return "KDTreeTest Tool Help"; } + } + + public string HelpURL + { + get { return "KDTreeTest Model"; } + } + + public System.Drawing.Bitmap Icon + { + get { return (null); } + } + + void ITool.Initialize() + { + _inputParameters = new Parameter[3]; + _inputParameters[0] = new FileParam("Select the lag table"); + _inputParameters[1] = new StringParam("Enter the neighbour values"); + _inputParameters[2] = new DateTimeParam("Upto which date you need to forecast"); + + + _outputParameters = new Parameter[1]; + _outputParameters[0] = new FileParam("Forecasting Values"); + } + + + public string Name + { + get { return "KD Tree Test Model"; } + } + + + void ITool.ParameterChanged(Parameter sender) + { + return; + } + + public string ToolTip + { + get { return "KDTreeTest Model"; } + } + + public string UniqueName + { + get { return "KDTreeTest Tool"; } + } + + public Version Version + { + get { return (new Version(1, 0, 0, 0)); } + } + + string ITool.WorkingPath + { + set { _workingPath = value; } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroForecaster/LagTool.cs b/Source/Plugins/Plugins.HydroForecaster/LagTool.cs new file mode 100644 index 00000000..460066ae --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/LagTool.cs @@ -0,0 +1,368 @@ +//******************************************************************************************************** +// Product Name: MapWindowTools.LagTool +// Description: This tool is used to get the data from SQLITE database. +// +//******************************************************************************************************** +// The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); +// you may not use this file except in compliance with the License. You may obtain a copy of the License at +// http://www.mozilla.org/MPL/ +// +// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF +// ANY KIND, either expressed or implied. See the License for the specificlanguage governing rights and +// limitations under the License. +// +// The Original Code is Toolbox.dll for the MapWindow 4.6/6 ToolManager project +// +// The Initializeializeial Developer of this Original Code is Teva Veluppillai. Created in 2010 March. +// +// Contributor(s): (Open source contributors should list themselves and their modifications here). +// +//******************************************************************************************************** + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Spatial.Tools; +using System.Spatial.Tools.Param; +using System.Data.OleDb; +using System.IO; +using System.Data; +using System.Text.RegularExpressions; +using System.Collections; + +namespace MapWindowTools.Analysis +{ + class LagTool : ITool + { + private Parameter[] _inputParameters; + private Parameter[] _outputParameters; + private string _workingPath; + private DataTable tblDataTable; + + #region Private Methods + + private DataTable ParseCSV(string inputString) + { + + DataTable dt = new DataTable(); + + // declare the Regular Expression that will match versus the input string + Regex re = new Regex("((?[^\",\\r\\n]+)|\"(?([^\"]|\"\")+)\")(,|(?\\r\\n|\\n|$))"); + + ArrayList colArray = new ArrayList(); + ArrayList rowArray = new ArrayList(); + + int colCount = 0; + int maxColCount = 0; + string rowbreak = ""; + string field = ""; + + MatchCollection mc = re.Matches(inputString); + + foreach (Match m in mc) + { + + // retrieve the field and replace two double-quotes with a single double-quote + field = m.Result("${field}").Replace("\"\"", "\""); + + rowbreak = m.Result("${rowbreak}"); + + if (field.Length > 0) + { + colArray.Add(field); + colCount++; + } + + if (rowbreak.Length > 0) + { + + // add the column array to the row Array List + rowArray.Add(colArray.ToArray()); + + // create a new Array List to hold the field values + colArray = new ArrayList(); + + if (colCount > maxColCount) + maxColCount = colCount; + + colCount = 0; + } + } + + if (rowbreak.Length == 0) + { + // this is executed when the last line doesn't + // end with a line break + rowArray.Add(colArray.ToArray()); + if (colCount > maxColCount) + maxColCount = colCount; + } + + // convert the row Array List into an Array object for easier access + Array ra = rowArray.ToArray(); + Array ss; + + for (int t = 0; t < 1; t++) + { + // convert the column Array List into an Array object for easier access + ss = (Array)(ra.GetValue(t)); + + + // create the columns for the table + for (int i = 0; i < ss.Length; i++) + dt.Columns.Add(ss.GetValue(i).ToString()); + } + + for (int i = 1; i < ra.Length; i++) + { + // create a new DataRow + DataRow dr = dt.NewRow(); + + // convert the column Array List into an Array object for easier access + Array ca = (Array)(ra.GetValue(i)); + + // add each field into the new DataRow + for (int j = 0; j < ca.Length; j++) + dr[j] = ca.GetValue(j); + + // add the new DataRow to the DataTable + dt.Rows.Add(dr); + } + + // in case no data was parsed, create a single column + if (dt.Columns.Count == 0) + dt.Columns.Add("NoData"); + + return dt; + } + + private DataTable ParseCSVFile(string path) + { + + string inputString = ""; + + // check that the file exists before opening it + if (File.Exists(path)) + { + + StreamReader sr = new StreamReader(path); + inputString = sr.ReadToEnd(); + sr.Close(); + + } + + return ParseCSV(inputString); + } + + private void DataTable2CSV(DataTable table, string filename, string seperateChar) + { + StreamWriter sr = null; + try + { + + sr = new StreamWriter(filename); + string seperator = ""; + StringBuilder builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(col.ColumnName); + + seperator = seperateChar; + } + + sr.WriteLine(builder.ToString()); + + foreach (DataRow row in table.Rows) + { + + seperator = ""; + builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(row[col.ColumnName]); + seperator = seperateChar; + + } + + sr.WriteLine(builder.ToString()); + + } + + } + + finally + { + + if (sr != null) + { + + sr.Close(); + + } + + } + + } + + #endregion + + #region ITool Members + + public string Author + { + get { return "Lag Tool"; } + } + + public string Category + { + get { return "Forecasting"; } + } + + public string Description + { + get { return "Forecasting Lag Tool"; } + } + + public bool Execute(ICancelProgressHandler cancelProgressHandler) + { + string fileName = _inputParameters[0].Value.ToString(); + string destinationfileName = _outputParameters[0].Value.ToString(); + Execute(fileName, destinationfileName, cancelProgressHandler); + return true; + } + + public bool Execute(string CSVFilePath, string CSVDestination, ICancelProgressHandler cancelProgressHandler) + { + tblDataTable = ParseCSVFile(CSVFilePath); + DataTable LagValueTable = new DataTable(); + LagValueTable = LagTable(tblDataTable); + + DataTable2CSV(LagValueTable, CSVDestination, ","); + + for (int j = 0; j < LagValueTable.Rows.Count; j++) + { + cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(LagValueTable.Rows.Count)) * 100), LagValueTable.Rows[j][0].ToString() + ":" + LagValueTable.Rows[j][1].ToString()); + if (cancelProgressHandler.Cancel) + return false; + } + + return true; + } + + public DataTable LagTable(DataTable dt) + { + DataTable dtLagTable = new DataTable(); + + dtLagTable.Columns.Add("Date"); + dtLagTable.Columns.Add("t"); + dtLagTable.Columns.Add("t-1"); + //dtLagTable.Columns.Add("t-2"); + //dtLagTable.Columns.Add("t-3"); + //dtLagTable.Columns.Add("t-4"); + //dtLagTable.Columns.Add("t-5"); + //dtLagTable.Columns.Add("t-6"); + + DataRow SiteId = dtLagTable.NewRow(); + SiteId[0] = (Convert.ToDouble(dt.Rows[0][0])); //site Id + SiteId[1] = (Convert.ToDouble(dt.Rows[0][1])); //Variable Id + SiteId[2] = 0; //this is dummy value + dtLagTable.Rows.Add(SiteId); + + //DataRow VariableId = dtLagTable.NewRow(); + //VariableId[0] = (Convert.ToDouble(dt.Rows[2][1])); + //dtLagTable.Rows.Add(SiteId); + + + for (int l = 1; l < dt.Rows.Count; l++) + { + DataRow dr = dtLagTable.NewRow(); + dr[0] = dt.Rows[l][0]; + dr[1] = (Convert.ToDouble(dt.Rows[l][1])); + dr[2] = (Convert.ToDouble(dt.Rows[l - 1][1])); + + dtLagTable.Rows.Add(dr); + } + + return dtLagTable; + } + + + + + public System.Drawing.Bitmap HelpImage + { + get { return null; } + } + + public string HelpText + { + get { return "This tool helps to get the lag value based on the input data source."; } + } + + public string HelpUrl + { + get { return "LagTool"; } + } + + public System.Drawing.Bitmap Icon + { + get { return null; } + } + + public void Initialize() + { + _inputParameters = new Parameter[1]; + + _inputParameters[0] = new FileParam("Select the Data table"); + + + _outputParameters = new Parameter[1]; + _outputParameters[0] = new FileParam("Save Lag Values"); + } + + public Parameter[] InputParameters + { + get { return _inputParameters; } + } + + public string Name + { + get { return "Lag Tool"; } + } + + public Parameter[] OutputParameters + { + get { return _outputParameters; } + } + + public void ParameterChanged(Parameter sender) + { + + } + + public string ToolTip + { + get { return "Lag Tool"; } + } + + public string UniqueName + { + get { return "Lag Tool"; } + } + + public Version Version + { + get { return (new Version(1, 0, 0, 0)); } + } + + public string WorkingPath + { + set { _workingPath = value; } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroForecaster/NeuralInputData.cs b/Source/Plugins/Plugins.HydroForecaster/NeuralInputData.cs new file mode 100644 index 00000000..21d41eb9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/NeuralInputData.cs @@ -0,0 +1,430 @@ +//******************************************************************************************************** +// Product Name: MapWindowTools.LagTool +// Description: This tool is used to get the data from SQLITE database. +// +//******************************************************************************************************** +// The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); +// you may not use this file except in compliance with the License. You may obtain a copy of the License at +// http://www.mozilla.org/MPL/ +// +// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF +// ANY KIND, either expressed or implied. See the License for the specificlanguage governing rights and +// limitations under the License. +// +// The Original Code is Toolbox.dll for the MapWindow 4.6/6 ToolManager project +// +// The Initializeializeial Developer of this Original Code is Teva Veluppillai. Created in 2010 March. +// +// Contributor(s): (Open source contributors should list themselves and their modifications here). +// +//******************************************************************************************************** + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using MapWindow.Tools; +using MapWindow.Tools.Param; +using System.Data.OleDb; +using System.IO; +using System.Data; +using System.Text.RegularExpressions; +using System.Collections; + +namespace HydroForecaster +{ + class NeuralInputData : ITool + { + private Parameter[] _inputParameters; + private Parameter[] _outputParameters; + + + #region Private Methods + + private DataTable ParseCSV(string inputString) + { + + DataTable dt = new DataTable(); + + // declare the Regular Expression that will match versus the input string + Regex re = new Regex("((?[^\",\\r\\n]+)|\"(?([^\"]|\"\")+)\")(,|(?\\r\\n|\\n|$))"); + + ArrayList colArray = new ArrayList(); + ArrayList rowArray = new ArrayList(); + + int colCount = 0; + int maxColCount = 0; + string rowbreak = ""; + string field = ""; + + MatchCollection mc = re.Matches(inputString); + + foreach (Match m in mc) + { + + // retrieve the field and replace two double-quotes with a single double-quote + field = m.Result("${field}").Replace("\"\"", "\""); + + rowbreak = m.Result("${rowbreak}"); + + if (field.Length > 0) + { + colArray.Add(field); + colCount++; + } + + if (rowbreak.Length > 0) + { + + // add the column array to the row Array List + rowArray.Add(colArray.ToArray()); + + // create a new Array List to hold the field values + colArray = new ArrayList(); + + if (colCount > maxColCount) + maxColCount = colCount; + + colCount = 0; + } + } + + if (rowbreak.Length == 0) + { + // this is executed when the last line doesn't + // end with a line break + rowArray.Add(colArray.ToArray()); + if (colCount > maxColCount) + maxColCount = colCount; + } + + // convert the row Array List into an Array object for easier access + Array ra = rowArray.ToArray(); + Array ss; + + for (int t = 0; t < 1; t++) + { + // convert the column Array List into an Array object for easier access + ss = (Array)(ra.GetValue(t)); + + + // create the columns for the table + for (int i = 0; i < ss.Length; i++) + dt.Columns.Add(ss.GetValue(i).ToString()); + } + + for (int i = 1; i < ra.Length; i++) + { + // create a new DataRow + DataRow dr = dt.NewRow(); + + // convert the column Array List into an Array object for easier access + Array ca = (Array)(ra.GetValue(i)); + + // add each field into the new DataRow + for (int j = 0; j < ca.Length; j++) + dr[j] = ca.GetValue(j); + + // add the new DataRow to the DataTable + dt.Rows.Add(dr); + } + + // in case no data was parsed, create a single column + if (dt.Columns.Count == 0) + dt.Columns.Add("NoData"); + + return dt; + } + + private DataTable ParseCSVFile(string path) + { + + string inputString = ""; + + // check that the file exists before opening it + if (File.Exists(path)) + { + + StreamReader sr = new StreamReader(path); + inputString = sr.ReadToEnd(); + sr.Close(); + + } + + return ParseCSV(inputString); + } + + private void DataTable2CSV(DataTable table, string filename, string seperateChar) + { + StreamWriter sr = null; + try + { + + sr = new StreamWriter(filename); + string seperator = ""; + StringBuilder builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(col.ColumnName); + + seperator = seperateChar; + } + + sr.WriteLine(builder.ToString()); + + foreach (DataRow row in table.Rows) + { + + seperator = ""; + builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(row[col.ColumnName]); + seperator = seperateChar; + + } + + sr.WriteLine(builder.ToString()); + + } + + } + + finally + { + + if (sr != null) + { + + sr.Close(); + + } + + } + + } + + #endregion + + #region ITool Members + + public string Author + { + get { return "Neural Nework Input Source Data"; } + } + + public string Category + { + get { return "Forecasting"; } + } + + public string Description + { + get { return "Forecasting Neural Nework Input Source Data"; } + } + + public bool Execute(ICancelProgressHandler cancelProgressHandler) + { + string Temperature = _inputParameters[0].Value.ToString(); + string Precipitation = _inputParameters[1].Value.ToString(); + string StreamFlow = _inputParameters[2].Value.ToString(); + + string destinationfileName = _outputParameters[0].Value.ToString(); + Execute(Temperature,Precipitation,StreamFlow, destinationfileName, cancelProgressHandler); + return true; + } + + public bool Execute(string TemperatureFile, string PrecipitationFile,string StreamflowFile, string CSVDestination, ICancelProgressHandler cancelProgressHandler) + { + DataTable tblTempTable = new DataTable(); + DataTable tblPrecipitationTable = new DataTable(); + DataTable tblStreamFlowTable = new DataTable(); + + tblTempTable = ParseCSVFile(TemperatureFile); + tblPrecipitationTable = ParseCSVFile(PrecipitationFile); + tblStreamFlowTable = ParseCSVFile(StreamflowFile); + + DataTable InputTable = new DataTable(); + + InputTable = LagTable(tblTempTable,tblPrecipitationTable,tblStreamFlowTable); + + DataTable2CSV(InputTable, CSVDestination, " "); + + for (int j = 0; j < InputTable.Rows.Count; j++) + { + cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(InputTable.Rows.Count)) * 100), InputTable.Rows[j][0].ToString() + ":" + InputTable.Rows[j][1].ToString()); + if (cancelProgressHandler.Cancel) + return false; + } + + return true; + } + + + public DataTable LagTable(DataTable dtTem,DataTable dtPre,DataTable dtStreamFlow) + { + DataTable dtInputSource = new DataTable(); + + dtInputSource.Columns.Add("TempT"); + dtInputSource.Columns.Add("TempT-1"); + dtInputSource.Columns.Add("TempT-2"); + dtInputSource.Columns.Add("TempT-3"); + dtInputSource.Columns.Add("TempT-4"); + dtInputSource.Columns.Add("TempT-5"); + dtInputSource.Columns.Add("TempT-6"); + dtInputSource.Columns.Add("PrecipT"); + dtInputSource.Columns.Add("PrecipT-1"); + dtInputSource.Columns.Add("PrecipT-2"); + dtInputSource.Columns.Add("PrecipT-3"); + dtInputSource.Columns.Add("PrecipT-4"); + dtInputSource.Columns.Add("PrecipT-5"); + dtInputSource.Columns.Add("PrecipT-6"); + dtInputSource.Columns.Add("StreamFlowT"); + dtInputSource.Columns.Add("StreamFlowT-1"); + dtInputSource.Columns.Add("StreamFlowT-2"); + dtInputSource.Columns.Add("StreamFlowT-3"); + dtInputSource.Columns.Add("StreamFlowT-4"); + dtInputSource.Columns.Add("StreamFlowT-5"); + dtInputSource.Columns.Add("StreamFlowT-6"); + + DataRow drlayers = dtInputSource.NewRow(); + drlayers[0] = Convert.ToInt32(dtStreamFlow.Rows.Count-10); + dtInputSource.Rows.Add(drlayers); + + for (int l = 7; l < dtStreamFlow.Rows.Count; l++) + { + DataRow dr = dtInputSource.NewRow(); + + dr[0] = (Convert.ToDouble(dtTem.Rows[l][1])); + + dr[1] = (Convert.ToDouble(dtTem.Rows[l][2])); + + dr[2] = (Convert.ToDouble(dtTem.Rows[l][3])); + + dr[3] = Convert.ToDouble(dtTem.Rows[l][4]); + + dr[4] = (Convert.ToDouble(dtTem.Rows[l][5])); + + dr[5] = (Convert.ToDouble(dtTem.Rows[l][6])); + + dr[6] = (Convert.ToDouble(dtTem.Rows[l][7])); + + + dr[7] = (Convert.ToDouble(dtPre.Rows[l][1])); + + dr[8] = (Convert.ToDouble(dtPre.Rows[l][2])); + + dr[9] = (Convert.ToDouble(dtPre.Rows[l][3])); + + dr[10] = Convert.ToDouble(dtPre.Rows[l][4]); + + dr[11] = (Convert.ToDouble(dtPre.Rows[l][5])); + + dr[12] = (Convert.ToDouble(dtPre.Rows[l][6])); + + dr[13] = (Convert.ToDouble(dtPre.Rows[l][7])); + + //StreamFlow Records + dr[14] = (Convert.ToDouble(dtStreamFlow.Rows[l][1])); + + dr[15] = (Convert.ToDouble(dtStreamFlow.Rows[l][2])); + + dr[16] = (Convert.ToDouble(dtStreamFlow.Rows[l][3])); + + dr[17] = Convert.ToDouble(dtStreamFlow.Rows[l][4]); + + dr[18] = (Convert.ToDouble(dtStreamFlow.Rows[l][5])); + + dr[19] = (Convert.ToDouble(dtStreamFlow.Rows[l][6])); + + dr[20] = (Convert.ToDouble(dtStreamFlow.Rows[l][7])); + + dtInputSource.Rows.Add(dr); + } + + return dtInputSource; + } + + + + + public System.Drawing.Bitmap HelpImage + { + get { return null; } + } + + public string HelpText + { + get { return "Neural Nework Input Source Data Help"; } + } + + public string HelpURL + { + get { return "Neural NetworkNeural Nework Input Source Data"; } + } + + public System.Drawing.Bitmap Icon + { + get { return null; } + } + + public void Initialize() + { + _inputParameters = new Parameter[3]; + + _inputParameters[0] = new FileParam("Select the Normalized source file - Temperature"); + + _inputParameters[1] = new FileParam("Select the Normalized source file - Precipiation"); + + _inputParameters[2] = new FileParam("Select the Normalized source file - Streamflow"); + + _outputParameters = new Parameter[1]; + + _outputParameters[0] = new FileParam("Save Neural Network Input Normalized Data"); + } + + public Parameter[] InputParameters + { + get { return _inputParameters; } + } + + public string Name + { + get { return "Neural Nework Input Source Data"; } + } + + public Parameter[] OutputParameters + { + get { return _outputParameters; } + } + + public void ParameterChanged(Parameter sender) + { + + } + + public string ToolTip + { + get { return "Neural Nework Input Source Data"; } + } + + public string UniqueName + { + get { return "Neural Nework Input Source Data"; } + } + + public Version Version + { + get { return (new Version(1, 0, 0, 0)); } + } + + public string WorkingPath + { + set { } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroForecaster/NeuralLayer.cs b/Source/Plugins/Plugins.HydroForecaster/NeuralLayer.cs new file mode 100644 index 00000000..0e0a2a1e --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/NeuralLayer.cs @@ -0,0 +1,104 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; + +namespace HydroForecaster +{ + class NeuralLayer + { + + // Data + // type of neurons in the layer + int type; + + // number of neurons in this layer + int neuronNumber; + + // dimensionality of the input vector + int dim; + + // array of neurons in this layer + public Neuron[] neurons; + + // Methods + // Constructor + public NeuralLayer() + { + this.dim = 0; + this.type = 0; + this.neuronNumber = 0; + + this.neurons = null; + } + + public NeuralLayer(int _dim, int _type, int _neuronNumber) + { + this.dim = _dim; + this.type = _type; + this.neuronNumber = _neuronNumber; + + this.neurons = new Neuron[this.neuronNumber]; + } + + // Initialization of the network layer + public void init() + { + for (int i = 0; i < this.neuronNumber; i++) + { + this.neurons[i] = new Neuron(); + this.neurons[i].init(this.dim, this.type); + } + } + + public void init(int _dim, int _type, int _neuronNumber) + { + this.dim = _dim; + this.type = _type; + this.neuronNumber = _neuronNumber; + + this.neurons = new Neuron[this.neuronNumber]; + + for (int i = 0; i < this.neuronNumber; i++) + { + this.neurons[i].init(this.dim, this.type); + } + } + + // Computes the output of this neural layer + public float[] evaluate(float[] input) + { + float[] output = new float[this.neuronNumber]; + + for (int i = 0; i < this.neuronNumber; i++) + { + output[i] = this.neurons[i].evaluate(input); + } + + return output; + } + + //// Prints out the weight sets of nerons in the layer + //public void print(int layer) + //{ + + // StreamWriter sr = null; + + // sr = new StreamWriter("C:\\pf\\Neuron" + layer + ".txt"); + + // StringBuilder builder = new StringBuilder(); + + + // for (int i = 0; i < this.neuronNumber; i++) + // { + // builder.Append(i + ": "); + // this.neurons[i].printWeightSet(i); + // } + // sr.WriteLine(builder.ToString()); + + // sr.Close(); + //} + + }; +} diff --git a/Source/Plugins/Plugins.HydroForecaster/NeuralMultipleInputData.cs b/Source/Plugins/Plugins.HydroForecaster/NeuralMultipleInputData.cs new file mode 100644 index 00000000..e2d92496 --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/NeuralMultipleInputData.cs @@ -0,0 +1,430 @@ +//******************************************************************************************************** +// Product Name: MapWindowTools.LagTool +// Description: This tool is used to get the data from SQLITE database. +// +//******************************************************************************************************** +// The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); +// you may not use this file except in compliance with the License. You may obtain a copy of the License at +// http://www.mozilla.org/MPL/ +// +// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF +// ANY KIND, either expressed or implied. See the License for the specificlanguage governing rights and +// limitations under the License. +// +// The Original Code is Toolbox.dll for the MapWindow 4.6/6 ToolManager project +// +// The Initializeializeial Developer of this Original Code is Teva Veluppillai. Created in 2010 March. +// +// Contributor(s): (Open source contributors should list themselves and their modifications here). +// +//******************************************************************************************************** + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Spatial.Tools; +using System.Spatial.Tools.Param; +using System.Data.OleDb; +using System.IO; +using System.Data; +using System.Text.RegularExpressions; +using System.Collections; + +namespace HydroForecaster +{ + class NeuralMultipleInputData : ITool + { + private Parameter[] _inputParameters; + private Parameter[] _outputParameters; + + + #region Private Methods + + private DataTable ParseCSV(string inputString) + { + + DataTable dt = new DataTable(); + + // declare the Regular Expression that will match versus the input string + Regex re = new Regex("((?[^\",\\r\\n]+)|\"(?([^\"]|\"\")+)\")(,|(?\\r\\n|\\n|$))"); + + ArrayList colArray = new ArrayList(); + ArrayList rowArray = new ArrayList(); + + int colCount = 0; + int maxColCount = 0; + string rowbreak = ""; + string field = ""; + + MatchCollection mc = re.Matches(inputString); + + foreach (Match m in mc) + { + + // retrieve the field and replace two double-quotes with a single double-quote + field = m.Result("${field}").Replace("\"\"", "\""); + + rowbreak = m.Result("${rowbreak}"); + + if (field.Length > 0) + { + colArray.Add(field); + colCount++; + } + + if (rowbreak.Length > 0) + { + + // add the column array to the row Array List + rowArray.Add(colArray.ToArray()); + + // create a new Array List to hold the field values + colArray = new ArrayList(); + + if (colCount > maxColCount) + maxColCount = colCount; + + colCount = 0; + } + } + + if (rowbreak.Length == 0) + { + // this is executed when the last line doesn't + // end with a line break + rowArray.Add(colArray.ToArray()); + if (colCount > maxColCount) + maxColCount = colCount; + } + + // convert the row Array List into an Array object for easier access + Array ra = rowArray.ToArray(); + Array ss; + + for (int t = 0; t < 1; t++) + { + // convert the column Array List into an Array object for easier access + ss = (Array)(ra.GetValue(t)); + + + // create the columns for the table + for (int i = 0; i < ss.Length; i++) + dt.Columns.Add(ss.GetValue(i).ToString()); + } + + for (int i = 1; i < ra.Length; i++) + { + // create a new DataRow + DataRow dr = dt.NewRow(); + + // convert the column Array List into an Array object for easier access + Array ca = (Array)(ra.GetValue(i)); + + // add each field into the new DataRow + for (int j = 0; j < ca.Length; j++) + dr[j] = ca.GetValue(j); + + // add the new DataRow to the DataTable + dt.Rows.Add(dr); + } + + // in case no data was parsed, create a single column + if (dt.Columns.Count == 0) + dt.Columns.Add("NoData"); + + return dt; + } + + private DataTable ParseCSVFile(string path) + { + + string inputString = ""; + + // check that the file exists before opening it + if (File.Exists(path)) + { + + StreamReader sr = new StreamReader(path); + inputString = sr.ReadToEnd(); + sr.Close(); + + } + + return ParseCSV(inputString); + } + + private void DataTable2CSV(DataTable table, string filename, string seperateChar) + { + StreamWriter sr = null; + try + { + + sr = new StreamWriter(filename); + string seperator = ""; + StringBuilder builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(col.ColumnName); + + seperator = seperateChar; + } + + sr.WriteLine(builder.ToString()); + + foreach (DataRow row in table.Rows) + { + + seperator = ""; + builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(row[col.ColumnName]); + seperator = seperateChar; + + } + + sr.WriteLine(builder.ToString()); + + } + + } + + finally + { + + if (sr != null) + { + + sr.Close(); + + } + + } + + } + + #endregion + + #region ITool Members + + public string Author + { + get { return "Neural Nework Multiple Input Source Data"; } + } + + public string Category + { + get { return "Forecasting"; } + } + + public string Description + { + get { return "Forecasting Neural Nework Input Source Data"; } + } + + public bool Execute(ICancelProgressHandler cancelProgressHandler) + { + string Temperature = _inputParameters[0].Value.ToString(); + string Precipitation = _inputParameters[1].Value.ToString(); + string StreamFlow = _inputParameters[2].Value.ToString(); + + string destinationfileName = _outputParameters[0].Value.ToString(); + Execute(Temperature,Precipitation,StreamFlow, destinationfileName, cancelProgressHandler); + return true; + } + + public bool Execute(string TemperatureFile, string PrecipitationFile,string StreamflowFile, string CSVDestination, ICancelProgressHandler cancelProgressHandler) + { + DataTable tblTempTable = new DataTable(); + DataTable tblPrecipitationTable = new DataTable(); + DataTable tblStreamFlowTable = new DataTable(); + + tblTempTable = ParseCSVFile(TemperatureFile); + tblPrecipitationTable = ParseCSVFile(PrecipitationFile); + tblStreamFlowTable = ParseCSVFile(StreamflowFile); + + DataTable InputTable = new DataTable(); + + InputTable = LagTable(tblTempTable,tblPrecipitationTable,tblStreamFlowTable); + + DataTable2CSV(InputTable, CSVDestination, " "); + + for (int j = 0; j < InputTable.Rows.Count; j++) + { + cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(InputTable.Rows.Count)) * 100), InputTable.Rows[j][0].ToString() + ":" + InputTable.Rows[j][1].ToString()); + if (cancelProgressHandler.Cancel) + return false; + } + + return true; + } + + + public DataTable LagTable(DataTable dtTem,DataTable dtPre,DataTable dtStreamFlow) + { + DataTable dtInputSource = new DataTable(); + + dtInputSource.Columns.Add("TempT"); + dtInputSource.Columns.Add("TempT-1"); + dtInputSource.Columns.Add("TempT-2"); + dtInputSource.Columns.Add("TempT-3"); + dtInputSource.Columns.Add("TempT-4"); + dtInputSource.Columns.Add("TempT-5"); + dtInputSource.Columns.Add("TempT-6"); + dtInputSource.Columns.Add("PrecipT"); + dtInputSource.Columns.Add("PrecipT-1"); + dtInputSource.Columns.Add("PrecipT-2"); + dtInputSource.Columns.Add("PrecipT-3"); + dtInputSource.Columns.Add("PrecipT-4"); + dtInputSource.Columns.Add("PrecipT-5"); + dtInputSource.Columns.Add("PrecipT-6"); + dtInputSource.Columns.Add("StreamFlowT"); + dtInputSource.Columns.Add("StreamFlowT-1"); + dtInputSource.Columns.Add("StreamFlowT-2"); + dtInputSource.Columns.Add("StreamFlowT-3"); + dtInputSource.Columns.Add("StreamFlowT-4"); + dtInputSource.Columns.Add("StreamFlowT-5"); + dtInputSource.Columns.Add("StreamFlowT-6"); + + DataRow drlayers = dtInputSource.NewRow(); + drlayers[0] = Convert.ToInt32(dtStreamFlow.Rows.Count-10); + dtInputSource.Rows.Add(drlayers); + + for (int l = 7; l < dtStreamFlow.Rows.Count; l++) + { + DataRow dr = dtInputSource.NewRow(); + + dr[0] = (Convert.ToDouble(dtTem.Rows[l][1])); + + dr[1] = (Convert.ToDouble(dtTem.Rows[l][2])); + + dr[2] = (Convert.ToDouble(dtTem.Rows[l][3])); + + dr[3] = Convert.ToDouble(dtTem.Rows[l][4]); + + dr[4] = (Convert.ToDouble(dtTem.Rows[l][5])); + + dr[5] = (Convert.ToDouble(dtTem.Rows[l][6])); + + dr[6] = (Convert.ToDouble(dtTem.Rows[l][7])); + + + dr[7] = (Convert.ToDouble(dtPre.Rows[l][1])); + + dr[8] = (Convert.ToDouble(dtPre.Rows[l][2])); + + dr[9] = (Convert.ToDouble(dtPre.Rows[l][3])); + + dr[10] = Convert.ToDouble(dtPre.Rows[l][4]); + + dr[11] = (Convert.ToDouble(dtPre.Rows[l][5])); + + dr[12] = (Convert.ToDouble(dtPre.Rows[l][6])); + + dr[13] = (Convert.ToDouble(dtPre.Rows[l][7])); + + //StreamFlow Records + dr[14] = (Convert.ToDouble(dtStreamFlow.Rows[l][1])); + + dr[15] = (Convert.ToDouble(dtStreamFlow.Rows[l][2])); + + dr[16] = (Convert.ToDouble(dtStreamFlow.Rows[l][3])); + + dr[17] = Convert.ToDouble(dtStreamFlow.Rows[l][4]); + + dr[18] = (Convert.ToDouble(dtStreamFlow.Rows[l][5])); + + dr[19] = (Convert.ToDouble(dtStreamFlow.Rows[l][6])); + + dr[20] = (Convert.ToDouble(dtStreamFlow.Rows[l][7])); + + dtInputSource.Rows.Add(dr); + } + + return dtInputSource; + } + + + + + public System.Drawing.Bitmap HelpImage + { + get { return null; } + } + + public string HelpText + { + get { return "Neural Nework Input Source Data Help"; } + } + + public string HelpUrl + { + get { return "Neural NetworkNeural Nework Input Source Data"; } + } + + public System.Drawing.Bitmap Icon + { + get { return null; } + } + + public void Initialize() + { + _inputParameters = new Parameter[3]; + + _inputParameters[0] = new FileParam("Select the Normalized source file - Temperature"); + + _inputParameters[1] = new FileParam("Select the Normalized source file - Precipiation"); + + _inputParameters[2] = new FileParam("Select the Normalized source file - Streamflow"); + + _outputParameters = new Parameter[1]; + + _outputParameters[0] = new FileParam("Save Neural Network Input Normalized Data"); + } + + public Parameter[] InputParameters + { + get { return _inputParameters; } + } + + public string Name + { + get { return "Neural Nework Multiple Input Source Data"; } + } + + public Parameter[] OutputParameters + { + get { return _outputParameters; } + } + + public void ParameterChanged(Parameter sender) + { + + } + + public string ToolTip + { + get { return "Neural Nework Multiple Input Source Data"; } + } + + public string UniqueName + { + get { return "Neural Nework Multiple Input Source Data"; } + } + + public Version Version + { + get { return (new Version(1, 0, 0, 0)); } + } + + public string WorkingPath + { + set { } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroForecaster/NeuralNetwork.cs b/Source/Plugins/Plugins.HydroForecaster/NeuralNetwork.cs new file mode 100644 index 00000000..89426ba3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/NeuralNetwork.cs @@ -0,0 +1,320 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; + +namespace HydroForecaster +{ + class NeuralNetwork + { + // Data + // number of layers + public int numLayers; + + // number of neurons in particular layers + public int[] layersNeurons; + + // types of neurons in particular layers + public int[] layersTypes; + + // Neural network layers + public NeuralLayer[] layers; + + // dimensionality of the input vector + int dimInput; + + // Methods + // Constructor + public NeuralNetwork() + { + this.numLayers = 0; + this.layersNeurons = null; + this.layersTypes = null; + this.dimInput = 0; + this.layers = null; + } + + /// + /// Constructor + /// + /// Number of layers in the neural network + /// Neurons in each layer + /// Layers type + /// input vectors/pattern for the neuralnetwork + public NeuralNetwork(int _numLayers, int[] _layersNeurons, int[] _layersTypes, int _dimInput) + { + this.numLayers = _numLayers; + this.dimInput = _dimInput; + this.layers = new NeuralLayer[this.numLayers]; + this.layersTypes = new int[this.numLayers]; + this.layersNeurons = new int[this.numLayers]; + + for (int i = 0; i < this.numLayers; i++) + { + this.layersNeurons[i] = _layersNeurons[i]; + this.layersTypes[i] = _layersTypes[i]; + + if (i == 0) + { + this.layers[i] = new NeuralLayer(this.dimInput, this.layersTypes[i], this.layersNeurons[i]); + } + else + { + this.layers[i] = new NeuralLayer(this.layersNeurons[i - 1], this.layersTypes[i], this.layersNeurons[i]); + } + } + } + + + /// + /// Initialization of the network + /// + /// number of layers + /// number of neurons in layers + /// layer type + /// input weight + public void init(int _numLayers, int[] _layersNeurons, int[] _layersTypes, int _dimInput) + { + this.numLayers = _numLayers; + this.dimInput = _dimInput; + + this.layers = new NeuralLayer[this.numLayers]; + this.layersTypes = new int[this.numLayers]; + this.layersNeurons = new int[this.numLayers]; + + for (int i = 0; i < this.numLayers; i++) + { + this.layersNeurons[i] = _layersNeurons[i]; + this.layersTypes[i] = _layersTypes[i]; + + if (i == 0) + { + this.layers[i] = new NeuralLayer(this.dimInput, this.layersTypes[i], this.layersNeurons[i]); + this.layers[i].init(); + } + else + { + this.layers[i] = new NeuralLayer(this.layersNeurons[i - 1], this.layersTypes[i], this.layersNeurons[i]); + this.layers[i].init(); + } + } + } + + // Computes the output of the ANN for the given input vector + public float[] evaluate(float[] input) + { + float[] _out = input; + float[] _in = input; + + for (int i = 0; i < this.numLayers; i++) + { + + _out = this.layers[i].evaluate(_in); + _in = _out; + } + + return _out; + } + + // Reads the NN source text file and sets up a network according to it + public void loadNetwork(string fileName) + { + + System.IO.TextReader file = new System.IO.StreamReader(fileName); + + string line; + string token; + int indexNext; + + // read the number of layers + line = file.ReadLine(); + int _numLayers = int.Parse((line.ToString())); + + line = file.ReadLine(); + + // read the dimension of the input vector + indexNext = line.IndexOf(' '); + token = line.Substring(0, indexNext + 1); + line = line.Substring(indexNext + 1); + + int _dimInput = int.Parse((token.ToString())); + + // read the number of neurons in each layer + int[] _layersNeurons = new int[_numLayers]; + + + for (int i = 0; i < (_numLayers - 1); i++) + { + indexNext = line.IndexOf(' '); + _layersNeurons[i] = int.Parse((line.Substring(0, indexNext + 1).ToString())); + line = line.Substring(indexNext + 1); + } + + _layersNeurons[_numLayers - 1] = int.Parse((line.ToString())); + + line = file.ReadLine(); ; + + + // read the types of neurons in each layer + int[] _layersTypes = new int[_numLayers]; + for (int i = 0; i < (_numLayers - 1); i++) + { + indexNext = line.IndexOf(' '); + _layersTypes[i] = int.Parse((line.Substring(0, indexNext).ToString())); + line = line.Substring(indexNext + 1); + } + + _layersTypes[_numLayers - 1] = int.Parse((line.ToString())); + + line = file.ReadLine(); + + // Initialize the network + this.init(_numLayers, _layersNeurons, _layersTypes, _dimInput); + + float[] _weightSet = null; + float _bias = 0; + + for (int l = 0; l < this.numLayers; l++) + { + + int neuronCount = 0; + + while (neuronCount < this.layersNeurons[l]) + { + + if (l == 0) + { + _weightSet = new float[this.dimInput + 1]; + } + else + { + _weightSet = new float[this.layersNeurons[l - 1]]; + } + + int weightCount = 0; + bool next = false; + while (!next) + { + indexNext = line.IndexOf(' '); + if (indexNext > 0) + { + _weightSet[weightCount] = float.Parse((line.Substring(0, indexNext + 1).ToString())); + line = line.Substring(indexNext + 1); + } + else + { + _bias = float.Parse((line.ToString())); + + next = true; + } + + weightCount++; + } + + this.layers[l].neurons[neuronCount].init(_weightSet, _bias); + + line = file.ReadLine(); + neuronCount++; + } + } + + file.Close(); + //Console.WriteLine("Neural Network from: " + fileName + " sucessfully loaded."); + + // this.print(); + + } + + public void runTest(string testFile,string outPutFile) + { + System.IO.TextReader fileIn = new System.IO.StreamReader(testFile); + System.IO.TextWriter fileOut = new System.IO.StreamWriter(outPutFile); + string line; + int indexNext; + + /// Open the file + + float[] input; + float[] output; + int numInput; + + //I just take the columns Teva + line = fileIn.ReadLine(); + + line = fileIn.ReadLine(); + + //just teva add + // line = line.IndexOf(' ').ToString(); + + numInput = int.Parse((line.ToString())); + + for (int x = 0; x < numInput; x++) + { + line = fileIn.ReadLine(); + input = new float[this.dimInput]; + + for (int i = 0; i < (this.dimInput - 1); i++) + { + indexNext = line.IndexOf(' '); + //indexNext = line.IndexOf(','); + input[i] = float.Parse((line.Substring(0, indexNext + 1).ToString())); + line = line.Substring(indexNext + 1); + } + + input[this.dimInput - 1] = float.Parse((line.ToString())); + + output = this.evaluate(input); + + for (int i = 0; i < this.layersNeurons[this.numLayers - 1]; i++) + { + fileOut.Write(output[i] + " "); + } + + fileOut.WriteLine(); + } + + fileOut.Close(); + fileIn.Close(); + } + + //public void print() + //{ + // StreamWriter sr = null; + + // sr=new StreamWriter("C:\\pf\\Test.txt"); + + // StringBuilder builder = new StringBuilder(); + + + // builder.Append("*********************************************************"); + + // builder.Append("Number of layers: " + this.numLayers); + + // builder.Append("Number of neurons in each layer: "); + + // for (int i = 0; i < this.numLayers; i++) + // { + // builder.Append(this.layersNeurons[i] + " "); + // } + + + // builder.Append("Types of neurons in each layer: "); + // for (int i = 0; i < this.numLayers; i++) + // { + // builder.Append(this.layersTypes[i] + " "); + // } + + // for (int l = 0; l < this.numLayers; l++) + // { + // builder.Append("Layer " + l + ":"); + // this.layers[l].print(l); + // } + + // sr.WriteLine(builder.ToString()); + + // sr.Close(); + + //} + }; +} diff --git a/Source/Plugins/Plugins.HydroForecaster/NeuralNetworkForecasting.cs b/Source/Plugins/Plugins.HydroForecaster/NeuralNetworkForecasting.cs new file mode 100644 index 00000000..c73d7cfb --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/NeuralNetworkForecasting.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace HydroForecaster +{ + class NeuralNetworkForecasting + { + } +} diff --git a/Source/Plugins/Plugins.HydroForecaster/NeuralNetworkTesting.cs b/Source/Plugins/Plugins.HydroForecaster/NeuralNetworkTesting.cs new file mode 100644 index 00000000..e4c4cf2d --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/NeuralNetworkTesting.cs @@ -0,0 +1,344 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; + +namespace HydroForecaster +{ + class NeuralNetworkTesting + { + // Data + // number of layers + public int numLayers; + + // number of neurons in particular layers + public int[] layersNeurons; + + // types of neurons in particular layers + public int[] layersTypes; + + // Neural network layers + public NeuralLayer[] layers; + + public string TestingStartDate; + + private string siteId; + + private string variableId; + + // dimensionality of the input vector + int dimInput; + + // Methods + // Constructor + public NeuralNetworkTesting() + { + this.numLayers = 0; + this.layersNeurons = null; + this.layersTypes = null; + this.dimInput = 0; + this.layers = null; + } + + /// + /// Constructor + /// + /// Number of layers in the neural network + /// Neurons in each layer + /// Layers type + /// input vectors/pattern for the neuralnetwork + public NeuralNetworkTesting(int _numLayers, int[] _layersNeurons, int[] _layersTypes, int _dimInput) + { + this.numLayers = _numLayers; + this.dimInput = _dimInput; + this.layers = new NeuralLayer[this.numLayers]; + this.layersTypes = new int[this.numLayers]; + this.layersNeurons = new int[this.numLayers]; + + for (int i = 0; i < this.numLayers; i++) + { + this.layersNeurons[i] = _layersNeurons[i]; + this.layersTypes[i] = _layersTypes[i]; + + if (i == 0) + { + this.layers[i] = new NeuralLayer(this.dimInput, this.layersTypes[i], this.layersNeurons[i]); + } + else + { + this.layers[i] = new NeuralLayer(this.layersNeurons[i - 1], this.layersTypes[i], this.layersNeurons[i]); + } + } + } + + + /// + /// Initialization of the network + /// + /// number of layers + /// number of neurons in layers + /// layer type + /// input weight + public void init(int _numLayers, int[] _layersNeurons, int[] _layersTypes, int _dimInput) + { + this.numLayers = _numLayers; + this.dimInput = _dimInput; + + this.layers = new NeuralLayer[this.numLayers]; + this.layersTypes = new int[this.numLayers]; + this.layersNeurons = new int[this.numLayers]; + + for (int i = 0; i < this.numLayers; i++) + { + this.layersNeurons[i] = _layersNeurons[i]; + this.layersTypes[i] = _layersTypes[i]; + + if (i == 0) + { + this.layers[i] = new NeuralLayer(this.dimInput, this.layersTypes[i], this.layersNeurons[i]); + this.layers[i].init(); + } + else + { + this.layers[i] = new NeuralLayer(this.layersNeurons[i - 1], this.layersTypes[i], this.layersNeurons[i]); + this.layers[i].init(); + } + } + } + + // Computes the output of the ANN for the given input vector + public float[] evaluate(float[] input) + { + float[] _out = input; + float[] _in = input; + + for (int i = 0; i < this.numLayers; i++) + { + + _out = this.layers[i].evaluate(_in); + _in = _out; + } + + return _out; + } + + // Reads the NN source text file and sets up a network according to it + public void loadNetwork(string fileName) + { + + System.IO.TextReader file = new System.IO.StreamReader(fileName); + + string line; + string token; + int indexNext; + + // read the number of layers + line = file.ReadLine(); + int _numLayers = int.Parse((line.ToString())); + + line = file.ReadLine(); + + // read the dimension of the input vector + indexNext = line.IndexOf(' '); + token = line.Substring(0, indexNext + 1); + line = line.Substring(indexNext + 1); + + int _dimInput = int.Parse((token.ToString())); + + // read the number of neurons in each layer + int[] _layersNeurons = new int[_numLayers]; + + + for (int i = 0; i < (_numLayers - 1); i++) + { + indexNext = line.IndexOf(' '); + _layersNeurons[i] = int.Parse((line.Substring(0, indexNext + 1).ToString())); + line = line.Substring(indexNext + 1); + } + + _layersNeurons[_numLayers - 1] = int.Parse((line.ToString())); + + line = file.ReadLine(); ; + + + // read the types of neurons in each layer + int[] _layersTypes = new int[_numLayers]; + for (int i = 0; i < (_numLayers - 1); i++) + { + indexNext = line.IndexOf(' '); + _layersTypes[i] = int.Parse((line.Substring(0, indexNext).ToString())); + line = line.Substring(indexNext + 1); + } + + _layersTypes[_numLayers - 1] = int.Parse((line.ToString())); + + line = file.ReadLine(); + + // Initialize the network + this.init(_numLayers, _layersNeurons, _layersTypes, _dimInput); + + float[] _weightSet = null; + float _bias = 0; + + for (int l = 0; l < this.numLayers; l++) + { + + int neuronCount = 0; + + while (neuronCount < this.layersNeurons[l]) + { + + if (l == 0) + { + _weightSet = new float[this.dimInput + 1]; + } + else + { + _weightSet = new float[this.layersNeurons[l - 1] + 1]; + //_weightSet = new float[this.layersNeurons[l]]; //Teva Modification + } + + int weightCount = 0; + bool next = false; + while (!next) + { + indexNext = line.IndexOf(' '); + if (indexNext > 0) + { + _weightSet[weightCount] = float.Parse((line.Substring(0, indexNext + 1).ToString())); + line = line.Substring(indexNext + 1); + } + else + { + _bias = float.Parse((line.ToString())); + + next = true; + } + + weightCount++; + } + + this.layers[l].neurons[neuronCount].init(_weightSet, _bias); + + line = file.ReadLine(); + neuronCount++; + } + } + + file.Close(); + //Console.WriteLine("Neural Network from: " + fileName + " sucessfully loaded."); + + // this.print(); + + } + + public void runTest(string testFile,string outPutFile) + { + System.IO.TextReader fileIn = new System.IO.StreamReader(testFile); + + System.IO.TextWriter fileOut = new System.IO.StreamWriter(outPutFile); + + string line; + int indexNext; + + int Counter = 0; + /// Open the file + + float[] input; + float[] output; + int numInput; + + //I just take the columns Teva + line = fileIn.ReadLine(); + + + line = fileIn.ReadLine(); + + siteId = fileIn.ReadLine(); + + variableId = fileIn.ReadLine(); + + TestingStartDate = fileIn.ReadLine(); + + //just teva add + // line = line.IndexOf(' ').ToString(); + + numInput = int.Parse((line.ToString())); + + for (int x = 0; x < numInput; x++) + { + line = fileIn.ReadLine(); + input = new float[this.dimInput]; + + for (int i = 0; i < (this.dimInput - 1); i++) + { + indexNext = line.IndexOf(' '); + //indexNext = line.IndexOf(','); + input[i] = float.Parse((line.Substring(0, indexNext + 1).ToString())); + line = line.Substring(indexNext + 1); + } + + input[this.dimInput - 1] = float.Parse((line.ToString())); + + output = this.evaluate(input); + + DateTime dt = Convert.ToDateTime(TestingStartDate); + + for (int i = 0; i < this.layersNeurons[this.numLayers - 1]; i++) + { + + DateTime Testupdate = dt.AddDays(Counter); + fileOut.Write(Testupdate + "," + output[i] + " "); + Counter += 1; + } + + fileOut.WriteLine(); + } + + fileOut.WriteLine(siteId + "," + variableId); + + fileOut.Close(); + fileIn.Close(); + } + + //public void print() + //{ + // StreamWriter sr = null; + + // sr=new StreamWriter("C:\\pf\\Test.txt"); + + // StringBuilder builder = new StringBuilder(); + + + // builder.Append("*********************************************************"); + + // builder.Append("Number of layers: " + this.numLayers); + + // builder.Append("Number of neurons in each layer: "); + + // for (int i = 0; i < this.numLayers; i++) + // { + // builder.Append(this.layersNeurons[i] + " "); + // } + + + // builder.Append("Types of neurons in each layer: "); + // for (int i = 0; i < this.numLayers; i++) + // { + // builder.Append(this.layersTypes[i] + " "); + // } + + // for (int l = 0; l < this.numLayers; l++) + // { + // builder.Append("Layer " + l + ":"); + // this.layers[l].print(l); + // } + + // sr.WriteLine(builder.ToString()); + + // sr.Close(); + + //} + }; +} diff --git a/Source/Plugins/Plugins.HydroForecaster/NeuralSingleInputData.cs b/Source/Plugins/Plugins.HydroForecaster/NeuralSingleInputData.cs new file mode 100644 index 00000000..af50b7ea --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/NeuralSingleInputData.cs @@ -0,0 +1,398 @@ +//******************************************************************************************************** +// Product Name: MapWindowTools.LagTool +// Description: This tool is used to get the data from SQLITE database. +// +//******************************************************************************************************** +// The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); +// you may not use this file except in compliance with the License. You may obtain a copy of the License at +// http://www.mozilla.org/MPL/ +// +// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF +// ANY KIND, either expressed or implied. See the License for the specificlanguage governing rights and +// limitations under the License. +// +// The Original Code is Toolbox.dll for the MapWindow 4.6/6 ToolManager project +// +// The Initializeializeial Developer of this Original Code is Teva Veluppillai. Created in 2010 March. +// +// Contributor(s): (Open source contributors should list themselves and their modifications here). +// +//******************************************************************************************************** + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Spatial.Tools; +using System.Spatial.Tools.Param; +using System.Data.OleDb; +using System.IO; +using System.Data; +using System.Text.RegularExpressions; +using System.Collections; + +namespace HydroForecaster +{ + class NeuralSingleInputData:ITool + { + private Parameter[] _inputParameters; + private Parameter[] _outputParameters; + + + #region Private Methods + + private DataTable ParseCSV(string inputString) + { + + DataTable dt = new DataTable(); + + // declare the Regular Expression that will match versus the input string + Regex re = new Regex("((?[^\",\\r\\n]+)|\"(?([^\"]|\"\")+)\")(,|(?\\r\\n|\\n|$))"); + + ArrayList colArray = new ArrayList(); + ArrayList rowArray = new ArrayList(); + + int colCount = 0; + int maxColCount = 0; + string rowbreak = ""; + string field = ""; + + MatchCollection mc = re.Matches(inputString); + + foreach (Match m in mc) + { + + // retrieve the field and replace two double-quotes with a single double-quote + field = m.Result("${field}").Replace("\"\"", "\""); + + rowbreak = m.Result("${rowbreak}"); + + if (field.Length > 0) + { + colArray.Add(field); + colCount++; + } + + if (rowbreak.Length > 0) + { + + // add the column array to the row Array List + rowArray.Add(colArray.ToArray()); + + // create a new Array List to hold the field values + colArray = new ArrayList(); + + if (colCount > maxColCount) + maxColCount = colCount; + + colCount = 0; + } + } + + if (rowbreak.Length == 0) + { + // this is executed when the last line doesn't + // end with a line break + rowArray.Add(colArray.ToArray()); + if (colCount > maxColCount) + maxColCount = colCount; + } + + // convert the row Array List into an Array object for easier access + Array ra = rowArray.ToArray(); + Array ss; + + for (int t = 0; t < 1; t++) + { + // convert the column Array List into an Array object for easier access + ss = (Array)(ra.GetValue(t)); + + + // create the columns for the table + for (int i = 0; i < ss.Length; i++) + dt.Columns.Add(ss.GetValue(i).ToString()); + } + + for (int i = 1; i < ra.Length; i++) + { + // create a new DataRow + DataRow dr = dt.NewRow(); + + // convert the column Array List into an Array object for easier access + Array ca = (Array)(ra.GetValue(i)); + + // add each field into the new DataRow + for (int j = 0; j < ca.Length; j++) + dr[j] = ca.GetValue(j); + + // add the new DataRow to the DataTable + dt.Rows.Add(dr); + } + + // in case no data was parsed, create a single column + if (dt.Columns.Count == 0) + dt.Columns.Add("NoData"); + + return dt; + } + + private DataTable ParseCSVFile(string path) + { + + string inputString = ""; + + // check that the file exists before opening it + if (File.Exists(path)) + { + + StreamReader sr = new StreamReader(path); + inputString = sr.ReadToEnd(); + sr.Close(); + + } + + return ParseCSV(inputString); + } + + private void DataTable2CSV(DataTable table, string filename, string seperateChar) + { + StreamWriter sr = null; + try + { + + sr = new StreamWriter(filename); + string seperator = ""; + StringBuilder builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(col.ColumnName); + + seperator = seperateChar; + } + + sr.WriteLine(builder.ToString()); + + foreach (DataRow row in table.Rows) + { + + seperator = ""; + builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(row[col.ColumnName]); + seperator = seperateChar; + + } + + sr.WriteLine(builder.ToString()); + + } + + } + + finally + { + + if (sr != null) + { + + sr.Close(); + + } + + } + + } + + #endregion + + #region ITool Members + + public string Author + { + get { return "Neural Nework Single Input Source Data"; } + } + + public string Category + { + get { return "Forecasting"; } + } + + public string Description + { + get { return "Forecasting Neural Nework Input Source Data"; } + } + + public bool Execute(ICancelProgressHandler cancelProgressHandler) + { + string StreamFlow = _inputParameters[0].Value.ToString(); + + string destinationfileName = _outputParameters[0].Value.ToString(); + Execute(StreamFlow, destinationfileName, cancelProgressHandler); + return true; + } + + public bool Execute(string StreamflowFile, string CSVDestination, ICancelProgressHandler cancelProgressHandler) + { + + DataTable tblStreamFlowTable = new DataTable(); + + tblStreamFlowTable = ParseCSVFile(StreamflowFile); + + DataTable InputTable = new DataTable(); + + InputTable = LagTable(tblStreamFlowTable); + + DataTable2CSV(InputTable, CSVDestination, " "); + + for (int j = 0; j < InputTable.Rows.Count; j++) + { + cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(InputTable.Rows.Count)) * 100), InputTable.Rows[j][0].ToString() + ":" + InputTable.Rows[j][1].ToString()); + if (cancelProgressHandler.Cancel) + return false; + } + + return true; + } + + + public DataTable LagTable(DataTable dtStreamFlow) + { + DataTable dtInputSource = new DataTable(); + + + dtInputSource.Columns.Add("StreamFlowT"); + dtInputSource.Columns.Add("StreamFlowT-1"); + dtInputSource.Columns.Add("StreamFlowT-2"); + dtInputSource.Columns.Add("StreamFlowT-3"); + dtInputSource.Columns.Add("StreamFlowT-4"); + dtInputSource.Columns.Add("StreamFlowT-5"); + dtInputSource.Columns.Add("StreamFlowT-6"); + + //here I add the number of records from data source + DataRow drlayers = dtInputSource.NewRow(); + drlayers[0] = Convert.ToInt32(dtStreamFlow.Rows.Count - 1); + dtInputSource.Rows.Add(drlayers); + + //Here I add siteId and Variable Id + DataRow SiteId = dtInputSource.NewRow(); + SiteId[0] = (Convert.ToDouble(dtStreamFlow.Rows[0][0])); + dtInputSource.Rows.Add(SiteId); + + //Here I add siteId and Variable Id + DataRow VariId = dtInputSource.NewRow(); + VariId[0] = (Convert.ToDouble(dtStreamFlow.Rows[0][1])); + dtInputSource.Rows.Add(VariId); + + + //Here I add first date from the data source + DataRow drDate = dtInputSource.NewRow(); + drDate[0] = Convert.ToDateTime(dtStreamFlow.Rows[1][0]); + dtInputSource.Rows.Add(drDate); + + + for (int l = 1; l < dtStreamFlow.Rows.Count; l++) + { + DataRow dr = dtInputSource.NewRow(); + + double SFT1 = (Convert.ToDouble(dtStreamFlow.Rows[l][1])); + //StreamFlow Records + dr[0] = SFT1; + + dr[1] = (Convert.ToDouble(dtStreamFlow.Rows[l][2])); + + dr[2] = (Convert.ToDouble(dtStreamFlow.Rows[l][3])); + + dr[3] = Convert.ToDouble(dtStreamFlow.Rows[l][4]); + + dr[4] = (Convert.ToDouble(dtStreamFlow.Rows[l][5])); + + dr[5] = (Convert.ToDouble(dtStreamFlow.Rows[l][6])); + + dr[6] = (Convert.ToDouble(dtStreamFlow.Rows[l][7])); + + dtInputSource.Rows.Add(dr); + } + + return dtInputSource; + } + + + + + public System.Drawing.Bitmap HelpImage + { + get { return null; } + } + + public string HelpText + { + get { return "Based on the Normalized data this tool generates input data for Neural Network Tool"; } + } + + public string HelpUrl + { + get { return "Neural NetworkNeural Nework Input Source Data"; } + } + + public System.Drawing.Bitmap Icon + { + get { return null; } + } + + public void Initialize() + { + _inputParameters = new Parameter[1]; + + _inputParameters[0] = new FileParam("Select the Normalized source file - Streamflow"); + + _outputParameters = new Parameter[1]; + + _outputParameters[0] = new FileParam("Neural Network Input Normalized Data"); + } + + public Parameter[] InputParameters + { + get { return _inputParameters; } + } + + public string Name + { + get { return "Neural Nework Single Input Source Data"; } + } + + public Parameter[] OutputParameters + { + get { return _outputParameters; } + } + + public void ParameterChanged(Parameter sender) + { + + } + + public string ToolTip + { + get { return "Neural Nework Input Source Data"; } + } + + public string UniqueName + { + get { return "Neural Nework Single Input Source Data"; } + } + + public Version Version + { + get { return (new Version(1, 0, 0, 0)); } + } + + public string WorkingPath + { + set { } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroForecaster/Neuron.cs b/Source/Plugins/Plugins.HydroForecaster/Neuron.cs new file mode 100644 index 00000000..c8b63b19 --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/Neuron.cs @@ -0,0 +1,162 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; + +namespace HydroForecaster +{ + class Neuron + { + + // Data + // dimension + int dim; + // weight set + float[] weightSet; + // bias of the neuron + float bias; + // determines the activation function + // 1 - tansig, 2 - logisg, 3 - purelin + int type; + + // Methods + // Constructor + public Neuron() + { + this.dim = 0; + this.type = 0; + this.bias = 0; + this.weightSet = null; + } + + public Neuron(int _dim, int _type) + { + this.dim = _dim; + this.type = _type; + this.bias = 0; + this.weightSet = new float[_dim]; + } + + + public Neuron(int _dim, int _type, float[] _weight, float _bias) + { + this.dim = _dim; + this.type = _type; + this.bias = _bias; + + this.weightSet = new float[_dim]; + + for (int i = 0; i < this.dim; i++) + { + this.weightSet[i] = _weight[i]; + } + } + + // initialization of neurons + public void init(int _dim, int _type) + { + this.dim = _dim; + this.type = _type; + this.bias = 0; + this.weightSet = new float[_dim]; + } + + public void init(int _dim, int _type, float[] _weight, float _bias) + { + this.dim = _dim; + this.type = _type; + this.bias = _bias; + this.weightSet = new float[_dim]; + + for (int i = 0; i < this.dim; i++) + { + this.weightSet[i] = _weight[i]; + } + } + + public void init(float[] _weight, float _bias) + { + this.bias = _bias; + this.weightSet = new float[this.dim]; + + for (int i = 0; i < this.dim; i++) + { + this.weightSet[i] = _weight[i]; + } + } + + // sets the weight vector + public void setWeightSet(float[] _weight) + { + for (int i = 0; i < this.dim; i++) + { + this.weightSet[i] = _weight[i]; + } + } + + // computes the output of the neuron + public float evaluate(float[] input) + { + float net = this.bias; + + for (int i = 0; i < this.dim; i++) + { + net += input[i] * this.weightSet[i]; + } + + if (this.type == 1) + { + return tansig(net); + } + else if (this.type == 2) + { + return logsig(net); + } + else + { + return purelin(net); + } + } + + //// prints out the weight set of the neuron + //public void printWeightSet(int neuron) + //{ + // StreamWriter sr = null; + + // sr = new StreamWriter("C:\\pf\\NeuronsWeight" + neuron + ".txt"); + + // StringBuilder builder = new StringBuilder(); + + // builder.Append("Weights: "); + + // for (int i = 0; i < this.dim; i++) + // { + // builder.Append(this.weightSet[i] + " "); + // } + // builder.Append("Bias: " + this.bias); + + // sr.WriteLine(builder.ToString()); + + // sr.Close(); + //} + + // computes the tansig function + private static float tansig(float _in) + { + return (2.0f / (1.0f + (float)System.Math.Exp((-2.0f * _in))) - 1.0f); + } + + // computes the logsig function + private static float logsig(float _in) + { + return 1.0f / (1.0f + (float)System.Math.Exp(-_in)); + } + + // computes the purelin function + private static float purelin(float _in) + { + return _in; + } + }; +} diff --git a/Source/Plugins/Plugins.HydroForecaster/NormalizedData.cs b/Source/Plugins/Plugins.HydroForecaster/NormalizedData.cs new file mode 100644 index 00000000..5e9bf51d --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/NormalizedData.cs @@ -0,0 +1,450 @@ +//******************************************************************************************************** +// Product Name: MapWindowTools.LagTool +// Description: This tool is used to get the data from SQLITE database. +// +//******************************************************************************************************** +// The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); +// you may not use this file except in compliance with the License. You may obtain a copy of the License at +// http://www.mozilla.org/MPL/ +// +// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF +// ANY KIND, either expressed or implied. See the License for the specificlanguage governing rights and +// limitations under the License. +// +// The Original Code is Toolbox.dll for the MapWindow 4.6/6 ToolManager project +// +// The Initializeializeial Developer of this Original Code is Teva Veluppillai. Created in 2010 March. +// +// Contributor(s): (Open source contributors should list themselves and their modifications here). +// +//******************************************************************************************************** + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Spatial.Tools; +using System.Spatial.Tools.Param; +using System.Data.OleDb; +using System.IO; +using System.Data; +using System.Text.RegularExpressions; +using System.Collections; + +namespace HydroForecaster +{ + class NormalizedData:ITool + { + + private Parameter[] _inputParameters; + private Parameter[] _outputParameters; + + + #region Private Methods + + private DataTable ParseCSV(string inputString) + { + + DataTable dt = new DataTable(); + + // declare the Regular Expression that will match versus the input string + Regex re = new Regex("((?[^\",\\r\\n]+)|\"(?([^\"]|\"\")+)\")(,|(?\\r\\n|\\n|$))"); + + ArrayList colArray = new ArrayList(); + ArrayList rowArray = new ArrayList(); + + int colCount = 0; + int maxColCount = 0; + string rowbreak = ""; + string field = ""; + + MatchCollection mc = re.Matches(inputString); + + foreach (Match m in mc) + { + + // retrieve the field and replace two double-quotes with a single double-quote + field = m.Result("${field}").Replace("\"\"", "\""); + + rowbreak = m.Result("${rowbreak}"); + + if (field.Length > 0) + { + colArray.Add(field); + colCount++; + } + + if (rowbreak.Length > 0) + { + + // add the column array to the row Array List + rowArray.Add(colArray.ToArray()); + + // create a new Array List to hold the field values + colArray = new ArrayList(); + + if (colCount > maxColCount) + maxColCount = colCount; + + colCount = 0; + } + } + + if (rowbreak.Length == 0) + { + // this is executed when the last line doesn't + // end with a line break + rowArray.Add(colArray.ToArray()); + if (colCount > maxColCount) + maxColCount = colCount; + } + + // convert the row Array List into an Array object for easier access + Array ra = rowArray.ToArray(); + Array ss; + + for (int t = 0; t < 1; t++) + { + // convert the column Array List into an Array object for easier access + ss = (Array)(ra.GetValue(t)); + + + // create the columns for the table + for (int i = 0; i < ss.Length; i++) + dt.Columns.Add(ss.GetValue(i).ToString()); + } + + for (int i = 1; i < ra.Length; i++) + { + // create a new DataRow + DataRow dr = dt.NewRow(); + + // convert the column Array List into an Array object for easier access + Array ca = (Array)(ra.GetValue(i)); + + // add each field into the new DataRow + for (int j = 0; j < ca.Length; j++) + dr[j] = ca.GetValue(j); + + // add the new DataRow to the DataTable + dt.Rows.Add(dr); + } + + // in case no data was parsed, create a single column + if (dt.Columns.Count == 0) + dt.Columns.Add("NoData"); + + return dt; + } + + private DataTable ParseCSVFile(string path) + { + + string inputString = ""; + + // check that the file exists before opening it + if (File.Exists(path)) + { + + StreamReader sr = new StreamReader(path); + inputString = sr.ReadToEnd(); + sr.Close(); + + } + + return ParseCSV(inputString); + } + + private void DataTable2CSV(DataTable table, string filename, string seperateChar) + { + StreamWriter sr = null; + try + { + + sr = new StreamWriter(filename); + string seperator = ""; + StringBuilder builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(col.ColumnName); + + seperator = seperateChar; + } + + sr.WriteLine(builder.ToString()); + + foreach (DataRow row in table.Rows) + { + + seperator = ""; + builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(row[col.ColumnName]); + seperator = seperateChar; + + } + + sr.WriteLine(builder.ToString()); + + } + + } + + finally + { + + if (sr != null) + { + + sr.Close(); + + } + + } + + } + + public List GetMinMaxValue(DataTable dt1, ICancelProgressHandler cancelProgressHandler) + { + int counter = 0; + + int totalrows = dt1.Rows.Count; + + while (counter < dt1.Rows.Count) + { + double temp; + if (counter != totalrows - 1) + { + if (Convert.ToDouble(dt1.Rows[counter][1]) > Convert.ToDouble(dt1.Rows[counter + 1][1])) + { + temp = Convert.ToDouble(dt1.Rows[counter][1]); + dt1.Rows[counter][1] = dt1.Rows[counter + 1][1]; + dt1.Rows[counter + 1][1] = temp; + counter = 0; + continue; + } + + //cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(counter*10) / Convert.ToDouble(dt1.Rows.Count)) * 100), dt1.Rows[counter][0].ToString()); + } + counter++; + } + + double Min = Convert.ToDouble(dt1.Rows[1][1]); + double Max = Convert.ToDouble(dt1.Rows[dt1.Rows.Count - 1][1]); + + List MinMax = new List(); + MinMax.Add(Min); + MinMax.Add(Max); + + return MinMax; + + } + + public DataTable LagTable(DataTable dt, List MinMax) + { + DataTable dtLagTable = new DataTable(); + + dtLagTable.Columns.Add("Date"); + dtLagTable.Columns.Add("t"); + dtLagTable.Columns.Add("t-1"); + dtLagTable.Columns.Add("t-2"); + dtLagTable.Columns.Add("t-3"); + dtLagTable.Columns.Add("t-4"); + dtLagTable.Columns.Add("t-5"); + dtLagTable.Columns.Add("t-6"); + + DataRow SiteId = dtLagTable.NewRow(); + SiteId[0] = (Convert.ToDouble(dt.Rows[0][0])); + SiteId[1] = (Convert.ToDouble(dt.Rows[0][1])); + SiteId[2] = 0; //dummy value + SiteId[3] = 0; //dummy value + SiteId[4] = 0; //dummy value + SiteId[5] = 0; //dummy value + SiteId[6] = 0; //dummy value + SiteId[7] = 0; //dummy value + dtLagTable.Rows.Add(SiteId); + + double MinimumValue = MinMax[0]; + double MaximumValue = MinMax[1]; + double denominator = MaximumValue - MinimumValue; + for (int l = 7; l < dt.Rows.Count; l++) + { + DataRow dr = dtLagTable.NewRow(); + + dr[0] = dt.Rows[l][0]; + + double row1 = (Convert.ToDouble(dt.Rows[l][1])); + double row1Value = (row1 - MinimumValue) / denominator; + dr[1] = row1Value; + + double row2 = (Convert.ToDouble(dt.Rows[l-1][1])); + double row2Value = (row2 - MinimumValue) / denominator; + dr[2] = row2Value; + //((Convert.ToDouble(dt.Rows[l - 1][1])) - MinMax[0]) / (MinMax[1] - MinMax[0]); + + double row3 = (Convert.ToDouble(dt.Rows[l - 2][1])); + double row3Value = (row3 - MinimumValue) / denominator; + dr[3] = row3Value; + //(Convert.ToDouble(dt.Rows[l - 2][1]) - MinMax[0]) / (MinMax[1] - MinMax[0]); + + double row4 = (Convert.ToDouble(dt.Rows[l - 3][1])); + double row4Value = (row4 - MinimumValue) / denominator; + dr[4] = row4Value; + //((Convert.ToDouble(dt.Rows[l - 3][1])) - MinMax[0]) / (MinMax[1] - MinMax[0]); + + double row5 = (Convert.ToDouble(dt.Rows[l - 4][1])); + double row5Value = (row5 - MinimumValue) / denominator; + dr[5] = row5Value; + //((Convert.ToDouble(dt.Rows[l - 4][1])) - MinMax[0]) / (MinMax[1] - MinMax[0]); + + double row6 = (Convert.ToDouble(dt.Rows[l - 5][1])); + double row6Value = (row6 - MinimumValue) / denominator; + dr[6] = row6Value; + //((Convert.ToDouble(dt.Rows[l - 5][1])) - MinMax[0]) / (MinMax[1] - MinMax[0]); + + double row7 = (Convert.ToDouble(dt.Rows[l - 6][1])); + double row7Value = (row7 - MinimumValue) / denominator; + dr[7] = row7Value; + //((Convert.ToDouble(dt.Rows[l - 6][1])) - MinMax[0]) / (MinMax[1] - MinMax[0]); + + dtLagTable.Rows.Add(dr); + } + + return dtLagTable; + } + + #endregion + + #region ITool Members + + public string Author + { + get { return "Data Normalization"; } + } + + public string Category + { + get { return "Forecasting"; } + } + + public string Description + { + get { return "Data Normalization"; } + } + + public bool Execute(ICancelProgressHandler cancelProgressHandler) + { + string fileName = _inputParameters[0].Value.ToString(); + string destinationfileName = _outputParameters[0].Value.ToString(); + if (Execute(fileName, destinationfileName, cancelProgressHandler) == true) + { + return true; + } + else + { + return false; + } + } + + public bool Execute(string CSVFilePath, string CSVDestination, ICancelProgressHandler cancelProgressHandler) + { + DataTable tblDataTable = new DataTable(); + + tblDataTable = ParseCSVFile(CSVFilePath); + + DataTable tblSourceData = new DataTable(); + + tblSourceData = ParseCSVFile(CSVFilePath); + + DataTable LagValueTable = new DataTable(); + + LagValueTable = LagTable(tblSourceData, GetMinMaxValue(tblDataTable, cancelProgressHandler)); + + DataTable2CSV(LagValueTable, CSVDestination, ","); + + for (int j = 0; j < LagValueTable.Rows.Count; j++) + { + cancelProgressHandler.Progress("", Convert.ToInt32((Convert.ToDouble(j) / Convert.ToDouble(LagValueTable.Rows.Count)) * 100), LagValueTable.Rows[j][0].ToString() + ":" + LagValueTable.Rows[j][1].ToString()); + if (cancelProgressHandler.Cancel) + return false; + } + + return true; + } + + public System.Drawing.Bitmap HelpImage + { + get { return null; } + } + + public string HelpText + { + get { return "Normalization is the process of removing statistical error in repeated measured data.This tool helps to Normalize the data"; } + } + + public string HelpUrl + { + get { return "Data Normalization"; } + } + + public System.Drawing.Bitmap Icon + { + get { return null; } + } + + public void Initialize() + { + _inputParameters = new Parameter[1]; + _inputParameters[0] = new FileParam("Choose the source data for Normalization"); + + + _outputParameters = new Parameter[1]; + _outputParameters[0] = new FileParam("Normalized Data"); + } + + public Parameter[] InputParameters + { + get { return _inputParameters; } + } + + public string Name + { + get { return "Data Normalization"; } + } + + public Parameter[] OutputParameters + { + get { return _outputParameters; } + } + + public void ParameterChanged(Parameter sender) + { + + } + + public string ToolTip + { + get { return "Data Normalization"; } + } + + public string UniqueName + { + get { return "Data Normalization"; } + } + + public Version Version + { + get { return (new Version(1, 0, 0, 0)); } + } + + public string WorkingPath + { + set { } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroForecaster/Plugins.HydroForecaster.csproj b/Source/Plugins/Plugins.HydroForecaster/Plugins.HydroForecaster.csproj new file mode 100644 index 00000000..b9dbe827 --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/Plugins.HydroForecaster.csproj @@ -0,0 +1,103 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {219531E2-8458-41D5-B1C8-46D39122A240} + Library + Properties + HydroForecaster + HydroForecaster + v3.5 + 512 + + + true + full + false + ..\..\..\Binaries\Tools\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Binaries\Tools\ + TRACE + prompt + 4 + + + + False + ..\..\..\Binaries\HydroDesktop.Data.dll + False + + + + 3.5 + + + False + ..\..\..\Binaries\System.Data.SQLite.DLL + False + + + + False + ..\..\..\Binaries\System.Spatial.Common.dll + False + + + False + ..\..\..\Binaries\System.Spatial.Desktop.dll + False + + + False + ..\..\..\Binaries\System.Spatial.Projections.dll + False + + + False + ..\..\..\Binaries\System.Spatial.Topology.dll + False + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroForecaster/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroForecaster/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..7cbf4b78 --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroForecaster")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HydroForecaster")] +[assembly: AssemblyCopyright("Copyright © 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("ecddf833-ff4e-40c5-a36d-3ebe7c784f42")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroForecaster/SaveData.cs b/Source/Plugins/Plugins.HydroForecaster/SaveData.cs new file mode 100644 index 00000000..a4708780 --- /dev/null +++ b/Source/Plugins/Plugins.HydroForecaster/SaveData.cs @@ -0,0 +1,371 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using HydroDesktop.ObjectModel; +using HydroDesktop.Database; +using System.Data; +using System.Data.SQLite; +using System.Spatial.Tools.Param; +using System.Spatial.Tools; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; + +namespace HydroForecaster +{ + class SaveData:ITool + { + #region "Private methods" + + #region SQLITE Related + + private SQLiteConnection sqlite_con; + + public string SetSQLITECon(String Databasepath) + { + sqlite_con = new System.Data.SQLite.SQLiteConnection("Data Source=" + Databasepath + ";New=False;Compress=True;Version=3"); + return sqlite_con.ConnectionString.ToString(); + } + + #endregion + + + //This method is used to store the data to SQLITE Database + private bool StoreData(string siteId, string VariableId, string MethodName, DataTable ForecastingValue,string Connectionstring) + { + DataTable dtInput=new DataTable(); + dtInput.Columns.Add("DateTime"); + dtInput.Columns.Add("DataValue"); + for (int i = 1; i < ForecastingValue.Rows.Count; i++) + { + DataRow dr=dtInput.NewRow(); + dr[0]=Convert.ToDateTime(ForecastingValue.Rows[i][0]); + dr[1]=Convert.ToDouble(ForecastingValue.Rows[i][1]); + dtInput.Rows.Add(dr); + } + + RepositoryManagerSQL manager = new RepositoryManagerSQL(DatabaseTypes.SQLite, Connectionstring); + manager.SaveSeries(Convert.ToInt32(siteId), Convert.ToInt32(VariableId), MethodName, "ForecastingResult", dtInput); + + return true; + + } + + #region CSV File Related + + private DataTable ParseCSV(string inputString) + { + + DataTable dt = new DataTable(); + + // declare the Regular Expression that will match versus the input string + Regex re = new Regex("((?[^\",\\r\\n]+)|\"(?([^\"]|\"\")+)\")(,|(?\\r\\n|\\n|$))"); + + ArrayList colArray = new ArrayList(); + ArrayList rowArray = new ArrayList(); + + int colCount = 0; + int maxColCount = 0; + string rowbreak = ""; + string field = ""; + + MatchCollection mc = re.Matches(inputString); + + foreach (Match m in mc) + { + + // retrieve the field and replace two double-quotes with a single double-quote + field = m.Result("${field}").Replace("\"\"", "\""); + + rowbreak = m.Result("${rowbreak}"); + + if (field.Length > 0) + { + colArray.Add(field); + colCount++; + } + + if (rowbreak.Length > 0) + { + + // add the column array to the row Array List + rowArray.Add(colArray.ToArray()); + + // create a new Array List to hold the field values + colArray = new ArrayList(); + + if (colCount > maxColCount) + maxColCount = colCount; + + colCount = 0; + } + } + + if (rowbreak.Length == 0) + { + // this is executed when the last line doesn't + // end with a line break + rowArray.Add(colArray.ToArray()); + if (colCount > maxColCount) + maxColCount = colCount; + } + + // convert the row Array List into an Array object for easier access + Array ra = rowArray.ToArray(); + Array ss; + + for (int t = 0; t < 1; t++) + { + // convert the column Array List into an Array object for easier access + ss = (Array)(ra.GetValue(t)); + + + // create the columns for the table + for (int i = 0; i < ss.Length; i++) + dt.Columns.Add(ss.GetValue(i).ToString()); + } + + for (int i = 1; i < ra.Length; i++) + { + // create a new DataRow + DataRow dr = dt.NewRow(); + + // convert the column Array List into an Array object for easier access + Array ca = (Array)(ra.GetValue(i)); + + // add each field into the new DataRow + for (int j = 0; j < ca.Length; j++) + dr[j] = ca.GetValue(j); + + // add the new DataRow to the DataTable + dt.Rows.Add(dr); + } + + // in case no data was parsed, create a single column + if (dt.Columns.Count == 0) + dt.Columns.Add("NoData"); + + return dt; + } + + private DataTable ParseCSVFile(string path) + { + + string inputString = ""; + + // check that the file exists before opening it + if (File.Exists(path)) + { + + StreamReader sr = new StreamReader(path); + inputString = sr.ReadToEnd(); + sr.Close(); + + } + + return ParseCSV(inputString); + } + + public static void DataTable2CSV(DataTable table, string filename, string seperateChar) + { + StreamWriter sr = null; + try + { + + sr = new StreamWriter(filename); + string seperator = ""; + StringBuilder builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(col.ColumnName); + + seperator = seperateChar; + } + + sr.WriteLine(builder.ToString()); + + foreach (DataRow row in table.Rows) + { + + seperator = ""; + builder = new StringBuilder(); + foreach (DataColumn col in table.Columns) + { + + builder.Append(seperator).Append(row[col.ColumnName]); + seperator = seperateChar; + + } + + sr.WriteLine(builder.ToString()); + + } + + } + + finally + { + + if (sr != null) + { + + sr.Close(); + + } + + } + + } + + #endregion + + #endregion + + #region Class Variable + private Parameter[] _inputParameters; + private Parameter[] _outputParameters; + private string _workingPath; + #endregion + + #region ITool Members + + public string Author + { + get { return "MapWindow Development Team"; } + } + + public string Category + { + get { return "Forecasting"; } + } + + public string Description + { + get { return "Save the Forecasting Records in to Hydrodesktop value"; } + } + + public bool Execute(ICancelProgressHandler CancelProgressHandler) + { + string connectiondatabase = _inputParameters[0].Value.ToString(); + string forecastingResult = _inputParameters[1].Value.ToString(); + + if (Execute(connectiondatabase,forecastingResult, CancelProgressHandler) == true) + { + return true; + } + else + { + return false; + } + } + + public bool Execute(string connectiondatabase,string forecastingResult, ICancelProgressHandler cancelProgressHandler) + { + DataTable dtForecatingResult = new DataTable(); + dtForecatingResult = ParseCSVFile(forecastingResult); + string siteId=Convert.ToString(dtForecatingResult.Rows[0][0]); + string VariableId = Convert.ToString(dtForecatingResult.Rows[0][1]); + string connectionstring = SetSQLITECon(connectiondatabase); + if (StoreData(siteId, VariableId, "NeuralNetworkForecasting@ISU", dtForecatingResult, connectionstring) == true) + { + return true; + } + else + { + return false; + } + + } + + + public System.Drawing.Bitmap HelpImage + { + get { return null; } + } + + public string HelpText + { + get { return "This tool helps to store the forecasting results to Hyderdesktop's SQLITE database"; } + } + + public string HelpUrl + { + get { return "www.System.Spatial.org"; } + } + + public System.Drawing.Bitmap Icon + { + get { return null; } + } + + + public void Initialize() + { + _inputParameters = new Parameter[2]; + _inputParameters[0] = new FileParam("Select the Hydrodesktop SQLITE database"); + _inputParameters[1] = new FileParam("Select Final Forecasting Results"); + + _outputParameters = new Parameter[1]; + _outputParameters[0] = new FileParam("Final Forecasting Result"); + } + + public Parameter[] InputParameters + { + get { return _inputParameters; } + } + + public string Name + { + get { return ("Save forecasting data"); } + } + + public Parameter[] OutputParameters + { + get { return _outputParameters; } + } + + public void ParameterChanged(Parameter sender) + { + return; + } + + public string ToolTip + { + get { return ("Save forecasting result in to Hydrodesktop database"); } + } + + public string UniqueName + { + get { return ("Save forecasting Data"); } + } + + public Version Version + { + get { throw new NotImplementedException(); } + } + + public string WorkingPath + { + set { _workingPath = value; } + } + + void ITool.ParameterChanged(Parameter sender) + { + //if (sender == _inputParameters[0]) + //{ + // if (BuildConnection() == true) + // { + + // } + //} + return; + } + + + #endregion + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/AboutBox.cs b/Source/Plugins/Plugins.HydroModeler/AboutBox.cs new file mode 100644 index 00000000..2bd9bee1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/AboutBox.cs @@ -0,0 +1,279 @@ +#region Copyright +/////////////////////////////////////////////////////////// +// +// Copyright (C) 2006 OpenMI Association +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// or look at URL www.gnu.org/licenses/lgpl.html +// +// Contact info: +// URL: www.openmi.org +// Email: sourcecode@openmi.org +// Discussion forum available at www.sourceforge.net +// +// Coordinator: Roger Moore, CEH Wallingford, Wallingford, Oxon, UK +// +/////////////////////////////////////////////////////////// +// +// Original authors: Jan Curn, DHI - Water & Environment, Prague, Czech Republic +// Jan B. Gregersen, DHI - Water & Environment, Horsholm, Denmark +// Created on: 1. July 2005 +// Version: 1.0.0 +// +// Modification history: +// +// +/////////////////////////////////////////////////////////// +#endregion +using System; +using System.Diagnostics; + +namespace Plugins.HydroModeler +{ + /// + /// Summary description for AboutBox. + /// + public class AboutBox : System.Windows.Forms.Form + { + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button buttonClose; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.LinkLabel linkWwwOpenMIOrg; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.LinkLabel linkWwwSourceforgeNet; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label12; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + /// + /// Creates a new instance of AboutBox dialog. + /// + public AboutBox() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // + // TODO: Add any constructor code after InitializeComponent call + // + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox)); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.label1 = new System.Windows.Forms.Label(); + this.linkWwwOpenMIOrg = new System.Windows.Forms.LinkLabel(); + this.buttonClose = new System.Windows.Forms.Button(); + this.label5 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.linkWwwSourceforgeNet = new System.Windows.Forms.LinkLabel(); + this.label9 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // pictureBox1 + // + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(4, 4); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(136, 436); + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(148, 8); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(380, 432); + this.label1.TabIndex = 1; + this.label1.Text = resources.GetString("label1.Text"); + this.label1.Click += new System.EventHandler(this.label1_Click); + // + // linkWwwOpenMIOrg + // + this.linkWwwOpenMIOrg.Location = new System.Drawing.Point(60, 459); + this.linkWwwOpenMIOrg.Name = "linkWwwOpenMIOrg"; + this.linkWwwOpenMIOrg.Size = new System.Drawing.Size(164, 16); + this.linkWwwOpenMIOrg.TabIndex = 2; + this.linkWwwOpenMIOrg.TabStop = true; + this.linkWwwOpenMIOrg.Text = "http://www.openmi.org"; + this.linkWwwOpenMIOrg.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkWwwOpenMIOrg_LinkClicked); + // + // buttonClose + // + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClose.Location = new System.Drawing.Point(413, 522); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(92, 32); + this.buttonClose.TabIndex = 10; + this.buttonClose.Text = "Close"; + // + // label5 + // + this.label5.Location = new System.Drawing.Point(12, 443); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(80, 16); + this.label5.TabIndex = 8; + this.label5.Text = "Contact info:"; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(20, 459); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(36, 16); + this.label2.TabIndex = 11; + this.label2.Text = "URL:"; + // + // label7 + // + this.label7.Location = new System.Drawing.Point(20, 491); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(156, 16); + this.label7.TabIndex = 13; + this.label7.Text = "Discussion forum available at:"; + // + // linkWwwSourceforgeNet + // + this.linkWwwSourceforgeNet.Location = new System.Drawing.Point(180, 491); + this.linkWwwSourceforgeNet.Name = "linkWwwSourceforgeNet"; + this.linkWwwSourceforgeNet.Size = new System.Drawing.Size(207, 16); + this.linkWwwSourceforgeNet.TabIndex = 15; + this.linkWwwSourceforgeNet.TabStop = true; + this.linkWwwSourceforgeNet.Text = "http://sourceforge.net/projects/openmi/"; + this.linkWwwSourceforgeNet.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkWwwSourceforgeNet_LinkClicked); + // + // label9 + // + this.label9.Location = new System.Drawing.Point(12, 512); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(68, 16); + this.label9.TabIndex = 17; + this.label9.Text = "Created on:"; + // + // label10 + // + this.label10.Location = new System.Drawing.Point(84, 512); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(92, 16); + this.label10.TabIndex = 18; + this.label10.Text = "December 2007"; + // + // label11 + // + this.label11.Location = new System.Drawing.Point(84, 532); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(80, 16); + this.label11.TabIndex = 20; + this.label11.Text = "1.4.0.0"; + // + // label12 + // + this.label12.Location = new System.Drawing.Point(12, 532); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(68, 16); + this.label12.TabIndex = 19; + this.label12.Text = "Version:"; + // + // AboutBox + // + this.AcceptButton = this.buttonClose; + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.CancelButton = this.buttonClose; + this.ClientSize = new System.Drawing.Size(534, 563); + this.Controls.Add(this.label11); + this.Controls.Add(this.label12); + this.Controls.Add(this.label10); + this.Controls.Add(this.label9); + this.Controls.Add(this.linkWwwSourceforgeNet); + this.Controls.Add(this.label7); + this.Controls.Add(this.label2); + this.Controls.Add(this.label5); + this.Controls.Add(this.buttonClose); + this.Controls.Add(this.linkWwwOpenMIOrg); + this.Controls.Add(this.label1); + this.Controls.Add(this.pictureBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AboutBox"; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.Text = "About..."; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + + } + #endregion + + private void linkWwwOpenMIOrg_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) + { + var info = new ProcessStartInfo( linkWwwOpenMIOrg.Text ); + Process.Start( info ); + } + + //private void linkWwwJanCurn_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) + //{ + // ProcessStartInfo info = new ProcessStartInfo( linkWwwJanCurn.Text ); + // Process.Start( info ); + //} + + private void linkWwwSourceforgeNet_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) + { + var info = new ProcessStartInfo( linkWwwSourceforgeNet.Text ); + Process.Start( info ); + } + + private void label1_Click(object sender, EventArgs e) + { + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/AboutBox.resx b/Source/Plugins/Plugins.HydroModeler/AboutBox.resx new file mode 100644 index 00000000..acca796e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/AboutBox.resx @@ -0,0 +1,3379 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + Qk0ulAIAAAAAADYAAAAoAAAAggAAAK8BAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAosDsosDs + o8LtosHspMLupMLupMLuo8Lto8TsosbrosXrosXsocbsn8XunsXunMXum8PxmsLxkrvtjLfqjLjsirbr + ibbtjrzyiLfvf63nhbPvhbPvhbPvhbPuhrPuhbPuhrPthbTshrTth7Xth7btiLjuibnvirnwi7rxjLvw + i73viLvuhrvshrvth7vuiLzwirvyirzzi73zjL30jb3zjr7zkL7yj73wjr7tkL/uk8Txmcn0n8z2o8z0 + pM30o832osz3oMz4n8v4oMv3ocz2ocvzosvypc3zpMzxocnwocrzocz2nMjyk8Dujrrok8Dtj7zrmMTz + nMf4kbzvkLrvlL71kbvyk7zzk730k730lL71lL/zlL/zlL/ylb/ylMDxlL/xlL/xlL/xlL/xlb/xlcDy + lcDylcDylsLzlsLzlsL0lsL0l8P0l8P1mMP1mcT2mMT2lMP0lcX1lsb2l8f3mMf1l8X0lsTylMPymMTy + lsLwlMHulsPxmcbzmcXwmsXwncn0pND4AACnxfKnxfKnxvOnxfKmxfKmxfKmxfKmxfGlxvCjx+6kyO+k + yPCjyfCiyfKhyfOfyfOex/aex/iTve+Kt+uRvvOTwfiNu/OKufCJuPKHtvGJuPWJuPWKuPWKuPWLufaL + uvaLuvWMu/WMu/WMvPWNvfWNvvaOv/ePv/eQwPiQwfaPwfWNwfSLwfOLwfWLwPWMwPaOwPiOwfiOwfiO + wfmQwfmRwvmTwveSwfWRwvOTw/OWyPaczfqj0Pun0Pmo0fqn0ful0Pyj0P2i0P6j0Pyk0Pul0Pmn0vmr + 0/qq0vin0Pem0Pqm0fyfy/eVw/KUwfCWw/GVw/Kcyfqfy/2YxPiUwPaYw/qYwvqVv/iWwfqWwfqXwfqX + w/mXw/mYw/iYw/iYxPeYxPeYxPeYxPeYxPeZxPeZxfiZxfiZxfiZxfiZxfiZxfeYxfeZxfeZxfiZxfiZ + xviYxviYx/qYyfuZyfuZyvubyvqayvqayfmZyfmcyvmbyfeax/Wbyfiey/meyvadyvaizvqo1f4AAKbF + 8abF8abF8abE8KXE8KXE8KXE8KXE76TF7qPG7aPH7aPH7qPG8KDH8J/G8Z/G8ZzE8pzF9ZG77Iay5Yu4 + 7I688Yq37oe27Yq48Ym48Ye18oe284i284i384i384q39Iq584u68ou684y79Iy89Iy99I2+9Y2+9Y2+ + 9Y6+9I2/84vA8orA8YrA84rA9IzA9Y7A94/B94/B+I/B+Y/A95DB95LB9pHA9JDB8ZLC8pXH9ZvM+KLP + +qbP+KfQ+KbQ+qTP+6LP/KHP/KLP+qTP+qDL9KHM86XO9aXN9KTM9KTO+KPO+ZzI9JPB74y66I286pPB + 8ZrH95rH+ZTA9I+78JK99ZXA95O+9pS/95XA+JXA+JbB95bC95fC9pXC9pfD9pfE9pfE9pfE9pfE9pjE + 9pjF95jF95jF95fE9pfE9pfE9ZbD9ZXC9ZXC9ZXC9ZTC9ZTD9pbH95bH+JfI+ZfI+ZnI+JnJ+JnJ+JnJ + +JzK+JvI95nH9ZvJ953L+J3K9JzJ9KHN+KfU/AAApsXypsXypsXypsTxpcTxpcTxpcTxpcTxpcXwpcbw + pMbwpcfxpMbyo8fyocbzocb0n8X0ncX1lr/vjrjqjLjsjLnskL3yl8X6lML5h7Xuh7byiLb0iLfziLfz + ibj0irj1irn0i7rzi7v0i7v0jLz0jL31jb71jb72jr/2jr/0jr/0i8DzisDyisDzisD0i8D1jsD4jsH4 + j8L5j8L5kMH4kcL4k8L3ksH1kcLyk8Pzlsj2nM35otD7ptD5p9H5ptH7pdD8o9D9otD9o9D8pdD7o874 + pc/3qNH3p9D1pM30o832osz2msbxkb/tjr/tk8Txmcn4ncz8msn6k8H1kL3zkr/4lMH5kr/3k8D4k8D5 + k8D5lML3lML4lcP3lMP2lcT2lcT3lcT3lcT3lcT3lsT3lsX4lsX4lsX4lsX3lsX3lsX2lcT2lcT2lcT2 + lcT2lcT2lsX3l8f4l8j5l8j6l8j6mcn4mcn4mcn4mcj4m8r5m8j3mcb1m8j3ncv5ncr1nMn1oc35p9T9 + AAClxPClxPClxPClw++kw++kw++kw++kw++mw/CnxPGnxPGnxfKlxfOlxfOkxfOixfShxPSfxfWZwPGU + u+2Suu6Ru+6Xw/WgzP2ZxfmFs+uItPGGtfKHtvKHtvKIt/OJt/SJuPOKufKKufOKufOLuvOLvPOMvPSM + vfSNvfWNv/SMvvKKv/GJv/KJvvKJvvKKv/SNv/aOwPeOwfiOwfiQwfiRwviTwveSwfWRwvKTw/OWyPWc + zfmi0Pqm0Pin0fmm0fql0Puj0Pyiz/2jz/yk0Pqkzvin0fir1fmt1vmt1vqv2fyw2/2q1/yg0Pqf0Pyf + 0v2e0fyYy/mQwvOLvO+MvPGOvfSPv/aQv/aQwPeQwPiRwfiRwveRwveSwvaRwvWSw/WSxPaSxPaSxPaS + xPaTxPaTxfeTxfeTxfeUxveUxveUxvaTxfaTxfaTxfaTxfaTxfaUxfaWxveWx/iXx/mXyPmZyPiZyPiZ + yPeYyPebyfibyPaZxvSayPadyvidyfScyPShzPim0/0AAKXD8KXD8KXD8KXC76TC76TC76TC76TC7qbD + 8KnE86nC86jD9KbE9KfE9KXF9KPE9KHE9KHE9ZnA8Za+75zD9J3G9p3I+aDL+5jD9Ie06Ye174W08oa0 + 8oe18Ye28oi28om38om48Yq58ou684u684q784u884y89Iy89I298ou98oq+8Yi/8Im/8om/84q/9Iu9 + 9ou+9oq+9oq99o2+947A95DA9Y+/84+/8JHB8ZPG9ZrL+KDP+qTP+KXQ+KTQ+qLP+6HP/KDO/KHO+6LO + +qHM9qLN9KTP9aTN86HK86DL9p/L9pfE8Yy97Im964nA7oi+7YO46IK26Ii874zA9Yu99Ym79Iq89Iq9 + 9Yu99ou+9oy/9Yy/9Y3A9IzA9I3B9I3C9I3C9I3C843C847C9I7D9Y7D9Y7D9Y/E9o/E9o/E9Y7D9Y7C + 9Y7C9Y7D9Y/D9ZHC9ZLD9ZLD9pPE95TF95XF9pXF9pXF9pXF9pjH9pfF9JXD8pfF9ZrI9pnH8ZjF8Z3K + 9qTR/AAAo8Lwo8Pwo8PwpMTwo8Pwo8Pvo8Pvo8PupMPwqMPyqsT1q8b3q8b3qcT1p8Typsbzpsb0qMr5 + oMTymr/uoMb2osr6n8j4nMb4lcDxibXqi7btirbwiLbxhrbzhrbzhbb0hrj1hrn1hrfzh7bwi7vzjL3z + jLzzjLz0jL31i772iL72hL73g733hLz1h7vxj73wlsDwncbxpMrzpcz1pcz0ps31ps30pczzo8vxpcvy + qc/1r9X4tNb5ttX3t9b3t9b5t9b5tNb5tdf5tNb4ttf4tNX0tNTyuNf0utj2udn1uNn2ttf0rdDwpsvs + qNDxp9Dzpc7yoMnuncbroMnuosryn8bvnsbvosnyosnzo8rzo8rzo8v0o8zyo8zxosvyoMz1nsz2nsz2 + oMz0ocz1os30os7zo870o870pM/1pM/1pM/0o871o871o870o870pM70pc/0pc/1ptD1p9H2qNH1qdL2 + qdL2qNH1qtH2q9H3qc/1qM7zqs/1rdH2rND1rND1r9P3tNj8AACev+6fwO+gwe+gw+6hxO+hxO6gxOyg + w+yiwu2kwu+oxPKrx/WqxvSow/CpxPCsyPSwzvivzfmmxvKfwe+fxPSexfacxPabxfiTvvKHsuePuOyN + uO2Kt++GtvODtvSCtvWCtvWDuPWDtvOHuPKNvvWNvvKKue6HuO+Ku/OJvvaDuvSBvPl+vPuAuPSKuu6d + w++z0PLC3PbL4vjO5PnO5/vO5/vK5/vI5vvH5PrI4/rN5fvU6fzX6vvY6PvZ6fza6fza6vzZ6vzZ6vvZ + 6vrZ6vrY6vrY6vna7Prc7/ve8fve8fvc7/za7vvY7fvU6/3U7P3U7P3S6vzO5/vM5PnM5PnO5vvP5vvM + 5PrN5fvN5fvN5fvN5fvN5fvN5frL5PrH5fvE5PzF5PzH5PvI5fvK5fvM5/vM5/vM5/vO6PzN6PzM5/vL + 5/vK5/vK5/vL5/vN5/vL6PvK6PvL6fnK6frN6PvN6PzM5/zL5vvN5vvQ6PvQ6PvQ6PvQ6PvQ5/vR5vzT + 6f3U6v3V6vwAAJ/A7qDB76HD76HE8KLE76LE76HE7aHE7KLD7qXD8abC8KbD8KjF8q3H87HM97LP+7XU + /a7M+afJ9abK9aLH9ZzD9J3G96LM/pnD+IWy6Im28Ye28oe284a29IW29IW39YW39Ia49Ii48om58oq6 + 8Yi574e574e68ou99Yu+94m99Ya88Yi775LA76PJ8rfV+Mfh+9Hn/dTo/NPm+M7l9s3m+Mrm+sjl+cni + 98ri98/l+9bp/Nrr/drp/dzp/dzq/tzr/dzr/dzr/dzr/Nvq+9vr+9zr+9rr+dnp99jo9Nfo9Nnr9d3v + +d3w/cvh8svj9tDn+9Hp/NHo/NDn+9Dn+tDn+s/m+s7m+c/m+s/n+s/n+s/n+s/m+s/l+c7l+c7m+c7n + +c/n+NDn+NDn99Lo99Pp99Pp99Pp99Tp+NPp+NHp+NHo+NHo+NHo+NHo+NHo+NLp+NTq+tTq+9Tq+9Xq + +9Xr+9bq+9Xp+tbp+tXp+dXo+NXm+dbl+tfl+tjm+9no/dvq/dzr/QAAnb7rnr/sn8DsoMDtoMLtoMHs + n8HqoMLooMDoob/qpcHtp8TvrMjzss32tdD5stD5sc/4rs73qsv3psn0nsPxlrztmL/xocr7msT4hbHq + g7PxgbPzg7PyhLTxhbTxhrXwh7Xxh7bwhrbvhbbvhrfwiLjyibvzi7zzi7zxi7rwjrvslL3ooMXps9Px + w935y+H6zuH2z+D00eL20+f4zOP3y+T5yeT5x+L5x+H3yeH2z+T51uf62un62uj62un62un72un72un7 + 2un72un62ur61+f42Oj42un62er41+j11uf01uf02ev32uz7y+L0yuL4zeT6zeX6zOP4y+L3y+L4zeT5 + zuX6zOT5zeX6zeX6zeX6zeX6zeX6zOT5zeT5z+X20eb10eb00eb10eb20eb20uf30ef30ef30uj40uj4 + 0ef30ef30Of3z+f2z+f3z+f4zub4yeT5yuX6yuX6y+T8y+T8zOT7y+P6y+P6zeX6z+X6zuP6zuP6z+P6 + 0eX70ub70+f71Oj7AACev+yfwO2gwe2gwu2hxO2hxOyhxOqgxOmiwumlw+yryPOwzfey0Pizz/ezz/ex + z/exz/iwz/mnyvWixfKgxfScw/ScxPaeyPuXwvaGs+2DtfSCtPaDtPSGtPKHtfKHtvKItvKHtvKGufWJ + u/iJu/iLvfqOv/mNvfGMuOqQu+qcweu11fTG4ffO5/rV6/zW6fzU5frS5PfT5/zT6P/L5f7J5v7I5v7H + 5P3I4/zK4/zP5fzV6f3Y6/3Z6/3a7f3a7f7a7f7a7f7a7f7Z7P3a7f3X6fzW6fza7fzb7/3Z7P3W6fvW + 6vzZ7f3a8P7K4/vJ5P3M6P7N6P3L5v3I5PzI4/zJ5P3K5f3J5P3K5f7K5f7K5f7K5f7K5f7J5f7K5PzL + 5vvM5/vM5vvL5vvK5vzK5vzJ5v7K5/7L5/3N6P7N6P7M6P3M6P3M5/3L5/zK5/zK5/3J6PzK6fzL6/3L + 6/3L6/3M6v3M6f3M6fzL6fzO6fzN6fzO6PzP6PzO5/zQ6fzR6v3S7P3S7P0AAJ296Z6+66DB7KDB7KDC + 6p/A6J/C56DC56TF6qzL8a/N87HQ9rDP9a/M8q7L8a/N9LHP963N9qLE7pu+6p7C8aDG95zE95jB9ZC6 + 8IOw6oKx8IOz84W08oez8Yez8Iaz8ISz8IO08oG09IG19oK19oS284e374236pe+6ajK77rY9s3m+9To + 98/j8s/h89Hj99Ll+8/j/Mbc+bvY97LR8q/R86/S86/R8q/P8LLP77jS8b3W9cDZ9sHZ9MPb9MPb9cPb + 9cPb9cPb9cLb9MLa9MDY8sLa88be98Xe98LZ8r7V8L7W8cPb9MLe+K7M6q3N7rHT87TV9bTV9bLT87DR + 8a/Q8K7P8K7P8K/Q8a/Q8a/Q8a/Q8a/Q8a/Q8K7Q8a7R8q3R86vR9KvR9arR9qnQ9qnS96rS96zS9q7T + 9K7S87DS8bDS867S86zR86rR9KrS9q3U96/X9a/Y9K/Y9a/Y9bDY9bDY9bDX9LDX9LLY87PZ9LTY9LTY + 87TY87bZ9LXZ9Lfc9bvg9wAAnLvooL7rosHsocDqnr7mnr7locLnpsjrrM3wsM/zr8/ysM/zsdD0s9D0 + s9D0stD2sdD3rc31o8bwnsHuocX0oMb4ncT4m8T4krzzhbDphrHvh7TwibXxibXxh7PwhbLwg7TxgrX0 + hLf5hbn6hLb0h7XwkLruo8fzttf7x+H+0Ob+0OX40OT10eX30OT6zuT9yOD8vdf6sM30pcfwocfxn8jx + n8jxn8bwoMXto8buqsnysM72tNL3tNP1tdP1tdT2tdT2tdT2tdT2tdP1tdT2sM/xs9L0u9r7utn7tNP1 + sdDysdDysdDyrM3yosfvoMjwoMjxoMnyocnyocjxoMfwn8bvnsbvnsXvnsbwn8fwn8fxoMjxoMnyoMjx + n8jyn8jyncj0nMj1msj2mMj3mMj4msn3ncn3n8r0ncXupMzyqND2pMzzncbynMn2nMv5mcv7jsb+gr37 + gb/8gL/8gL/8gL/8gr/8gr77hL/8f7v2gbz3g774gr71hb/4hsD5gbv0hb/1kcz8AACfvOifvOifveag + vuaiwOelxOuqye+uzvGwz/KuzvCw0PCw0PGw0POy0POy0POx0fSw0faszfSmyPKkx/OgxfSawfKbwvag + yP2WwPeGsOiMte+Ls/CJsu+Hsu+Hs/CItfOJtvSJt/eItvSEsu2Hs+qXvvGv0v3D4f7L4/3O4/zS5vzN + 4vjK4fnM5PvH4fy71/uty/WjxPGhxfShx/mdxvibxvicx/acxvWbxPKfxfOlyPerzfuu0fyw0/mw1Piw + 1Pmw1Pmw1Pmw1Pmw0/mw1Pqt0fau0vix1Puv0vusz/itz/qu0PqqzPeix/OcxvSbx/Wbx/abx/abx/ab + x/WaxvWaxfSaxfSbx/abyPabyPacyPecyfedyfidyficyficyfacyfSayfaZyfiZyPiZyfiayveeyvag + y/SgyfClzvSizPWaxvKWx/ib0f2Qyv1xsfVHkeQnd94keeYjeeUjeuQkeuQmeuMleuIme+Eled8ofOAp + feAoe90qfN4rfd8qfd4wg+Q/kvMAAJ265Z675qK/6KbE7arJ8K7M8q/O8q7O8K7O8K7Q8K/Q7q/R77DS + 8LLR8rLR8rHR87DR9KzP8qfJ8qLF8Zq+7ZC26JO67p3G/JfB+Iaw6Imy7Yqy74iy74iz8Iiz8Imz8Imy + 7omx64qx55K36aXH87XV+sDc/cfg/Mzh/M/j/M7j+83l/Mfj/b7a/LPR+ajI9qDE853D9p3E+p/H/ZrG + +prG+ZvG95vF9ZvE9JzF9aDI+qfM/KzR+67U+a/U+K/U+q/U+q/U+q/U+q/T+q/T+qzP+K3P+q3Q+6vN + +anM+KzP+67Q/KjK953E8ZrF9pfF95bF95bF95bF95bF95bE9pbE9pfE9pjG+JnH+ZnH+ZnH+ZrI+prI + +prI+5zJ+Z3J9Z/J85/J9J3J9ZzJ9ZzJ9Z3K9aDK9KLL8qTN8p3G7pbD7pfK+JHK/ne491Ca6C9/2B90 + 2hx06Rhx7Rhy7Rhz7Bpz7Bpz6xpz6Rp15xly5R115x935xx04h104x525B125CZ/7TiR/QAAnrvnor/r + qsjxr831sM/1r8/zrc7wrMzurc7usNHur9HusNLvsdPws9Lxs9LystLzsdL1q83yo8buocTwocX1ncX3 + nsX5n8f8lL32gq3ohLDtiLPxirXzirT0iLPwibHsjrTqlLboo8Htu9X6yeH+0ef/0OT9zOD8zeL9z+X9 + z+f9wN76s9T4q8z2o8Xzn8T1nsX6n8b+ncb+m8f9m8b7nMf6nMf3nMb2nMT1ncX2osj6p8z8rNH7r9X5 + sNb3sNb4sNX6sNX6sNX6sNT6sNT6rdD5rdD6r9L8rdD7rM75rc/8r8/8qcv4ocXznMf3mMb4l8X3lsT1 + lcT1lcT1lsT1mMX3mMb4l8b3mMf4mMf4mcj5mcj5msn6msn6nMn4n8n0osvxosrxn8rznsnznsn0oMv1 + ocv0osvznMfvn8z3ntD+i8b7YqfvMoHbFG7TEXPhGHjuGHPsGXPuGXTuGXTuGXXsG3XrG3XqHHXoGnTl + H3joI3vqIHnmIHnlH3nlH3jlKYLvO5T8AAClweqqxe+wzPWxzvSvzPGsyu2sye2uzO6vzu6wzu2wz+2x + 0O6x0PCy0PCy0PGx0PGv0fKqzfCfxOmZveaZwOyZwfGXv/OUvPOMtvGCrOyErvKHs/iJtfeJsvGHr+eL + sOObvOquyfHB2vfQ5fzL3fbL3fTP4/nQ5fzM4fzE2/vA2/qmx+2Zvuudw/GdxPWdxfibxPqawvuYxPqY + w/ibxfiaxfabxvSbxfOZw/KbxPOfx/eky/uq0Pqv0/aw1PSw1PWw0/aw0/aw0/aw0few0/iszvWtz/ax + 0vmv0PmszfiszPmtzfmpyfaixfGdx/WZxvWXxPOVw/GXwfKYwvOZw/WaxfaaxfSZxPSZxPSaxfWaxfWa + xfWcxfWcxPabxfWeyfSeyfKdx/GfyvOhzPShyvOfyPKeyfOfyvej0vyWyvx2sfFHi9kkccwbctkZeOwM + ce0HbOkUde8Wc+wZc+oacukac+gZdOgYdOcYd+cUdeQWd+YcfOkbe+cbeuYaeOMZdd8lf+g5lPoAALLM + 8rLM8rLM8rLM8bLM8bPN8bPN8rPM8bXM8LbM77fN8LfO8bXO8bXP8rTQ8rPR8bDS86bL65/H553H6ZzH + 7Z7H9JzE+pa++o2z9YWr9Ieu/oSs+oOr74mu6Ja456jH7LvW98vj/c/l+cre9snf9Mri983m/cvn/sLe + /rHO+p+/8JnA8pfD9pXD95fE+JfD+JfD95fC95jB9pfA9Z3I+57H+p7I+ZzH9prG9JvH9Z7L+KPQ+6vU + +7HU+bPV+LPV+bPV+bPV+bPV+7PU+7PU+rDS+bDR+bDR+LDR+bLT+7LT+6/Q+qrK9aTI8p/J9ZjG9JfC + 85jB85vC953D+Z3E+ZvC95rD9p/I96DI9aHH9qPI96TH+KfG+qfF+6TF+p3H+JXG8pbE75/H8qXM9aPL + 853H8pzL+pzQ/4G791KU5i541SV02iJ05B9z6R9z7Rtv6xVt6BZx6hxx6ipy6i9z6S105yh15R104xR0 + 4hF15BF36BN56hR66xd96hV55RV13SaB50KZ/AAAsMnusMruscrusMnusMruscruscrvssvvtMrutcrt + tcvutczwtMzws83xsc7xsM7wrtDxpcnqoMbonsXqmcHqmL/unMP3nML7k7f2hqvvharxg6briavkmrrq + ttL3y+T9z+b8yNz1xNjwyN/1yeH4x+L7vdv5r9H0o8bxmr7xlrzxlMDulMTslcTtl8TymsT2nMT6nMP6 + nMP7nML7ncH8nsD8ncH8nMD3nMD1ncH0ocb2p8z5q9H4rNT3rdX1rdX2rdX2rdX2rdT3rdT3rdP2rNP0 + qtH1qtH2qtH2rNP3rdP4qc/2pcvyn8fwmcXwlsTxlsLxmMHzm8L1nMP2nML1ncDznL/vnMDtn8Pupcbx + q8r1sMz5s8z6tMz7s8z7q834qtL5rdP5p8nyocDtpcb0o8n8jrv6aqTtLnPOHm3RHHHdHHPlG23kHWrh + J27kL2/jOnLlT37vWoDwZ4T0bYn1aYr0YofwU4PtR4HrOXjlLnXjJHThGXLeFXbgFHneFXfbJIDiOZP0 + AACxy/Cxy/Cxy/Cxy/Cxy/Cxy/Cyy/CyzPGyzPCzzPC0zfG1zvKzzvK00POy0POx0POu0fWrz/aqzfei + x/OYveyVu+yawfSdxPmWvfSMsuuIqeOauO2yzvjE3v3L4vvN4PXO4PTR4fjS5PzQ5f7F3/211/emzfKb + xO6Vv/CSvvWTv/WVwe+YxOyYxe6ZxfGaxfSZxfaZw/iZw/iYwvicxPqexfuew/qdwvifwvWjw/Snx/at + zfuv0fur0fms0vms0vms0vms0vms0fus0Pur0Pqrz/mpzvipzvmqz/qs0fus0fypzvukyPaexvKXxfCW + xvGWxvOXxfSZxfSbxPOdw/Kgw/Cjxe+pyvCuzfGz0fO51fe/1vnB1vrB1Pq/1Pi80/W51PW71fq+1v2+ + 1f6zy/+Qsfdbid8sacwib9scdOgYdOwTa+YXZ98uceRKgO9diPRvjPaCkPiGkPSHjvKEjfCAjvB+j/B9 + kPR7kvlvi/RghfBJf+oudN8ddNwVeN4Ved4iguY0kfcAAK/J7a/J7bDJ7q/J7bDJ7rDK7rDK7rDK7rHK + 77HL77DN77HO8LHO8LHP8a/P8q7P9K7O9qnJ9KPE86DB8p/D9KHF9qDF9JnB75O655S346rG8LjS9sjh + +9Hm+9Dj9M3c7Mvb7s3e98vf/L/a+q7O95zD7ZO/6pG/7pTD9ZTD+ZPA+JS/8ZfA75fA8ZfC9ZjF+JfH + +JfI+pfJ+5fK+pjL+5rL+5rJ+5vI+Z3G+KHH+KbL+q3R+6/U/K3T/K3U/K3U/a3U/a3U/a3U/a3U/KzT + /KzS/KvR/KvR/KzR/K7S/K3S/KvQ/abL+5/I+JrJ+ZfK+ZXK+ZTH+JXF95jE957F96bG9q7L9rjT97vU + 977W98HX98TX+MXV+MbS+MTR9sXT98fW+cnX+8fV/bnI+5ur83KM40943Thx4h1q4xVu6hBr6BNo4i9z + 51OF8myP9X2T8oSS8IOP6oWS64eR64aS7IKS7YGR7YKQ7oKO8IKN84GQ+m6N+E2A6zF24B503Bh03CN/ + 5zWP+gAAsMrusMrusMrusMrusMnusMruscrvscvvscvvsczxsM7vsc/xsdDwsM/ysM/zsM/1r874rcz6 + pMP0m7rtn77wosPzncHsmL7mn8bortHzyOP/yuD8yd/1zeHz0eT00uX3zOD6xNr7s833nb7tmL7vk73v + kL/xk8L0k8P0lsL2mML2lsH1lcD2k7/5kL78jb3+hrf9frP5ebH3d7D2eLL5ebP7ebH7erD5fK/3f7D2 + hrT2jLz3kMH3ksP3k8X1k8X2k8X2k8T4k8T4k8T3ksP3ksP4k8L3ksL3lMP5lcX5lcX6kcH4jLz1hrf2 + f7L1fK/3ea/2dqz0dajyeqfxharykK7zobf2ssL7ssL5tMP3tcP2tsP2t8L2u8D1vMD1ur/yvsT0ucL1 + oavmhpHXe4rYeY/paYvxTX/vIWXbG2fhHmrgK27iTYDubI3yeIzpgYzhgo/ke4/le4/mfY7mfI/neY/p + eY7peo3pfYvsfITpgYrxgJP7aYv2SXzoLXLeIHDbJXnlNYz4AACwye6wye6wye6wye6wye6vye6xye6w + yu+wy++wzfCvze+vzu+vzu+wzvGxz/Oyz/WxzvetyfaoxPOjwPCivu2lw+6sy/K01vi83/vF5P3G3vfI + 3fbI4PXM5PjN5fvF4Pu20fajwfCXuu6Uu/SSvPaNu/GQv/OZxfiZwvSXvfCexPiUwPWRwfiUxf6Etvxk + lfBAc9wsYNAlXNEkXdUiXNglYN4hW9smX9woYdglX84zbdNJhONOieZJhuNKh+VKh+VKh+VKh+VKh+VK + huVKheZKhudLhedKhehMh+lNiOtNh+xHguY/ed47c9o4btk7b9w5ct46dN46cNs9bNZNctlmgON8jeuJ + k+yMlOmNluePl+SPl+SSmOWVl+WWl+OYmeOYm+KSmuGMl+CLmOONm+uInPF/mfZvlPZUiPBAe+RFfORc + jPF0lfWEl/GPnO2VneqRm+uNmu+PmvKSmfGRmfGOm/KKm/KJnPOJm/STnfiSmPeLlPWImvt0l/lRh+07 + gOQ3hus6jfMAAK/J7q/J7q/J7q/J7q/J7q/J7rDJ7rDK77DK7a7J7K/L7bHN77HO77LO8LPP8rLO87XO + 9a/I8arC7KjA6qrE7LbQ88Te/Mvm/cnl/cXg+sTa9sjd+sri/MTg+7bV9qXI75q+7ZO48JC49JG8+pO/ + +5TB+pO/85G775a98Zy/9Ze79pfD+4q//m2h9Uh84ihczxxRzx9W3SNd6CNe7BdU5RpX7BVS6RlW6xlY + 5xVX2yNn3zqB70CH8D6D6kCF60CF60CE7ECE7ECE7ECE60CD7ECD7UCD7D6B6j2A6z6B7D+C7j+C7z2A + 7T5+7EeB9EaB9UKC9UGD9EF/8UR87FaC8HOR+oia/5Ca/ZWc+JWe9Zaf9Jeh85ig9J2h85+f9J2e9Juf + 9Zei9JGk85Kl8pWk8pSl9JCl+Iqn+3We+F6N6F+M53me9pGo/pql95ql8Zum75qn8pim9Zym96Cl+KGl + +Zyn+Zip+pKp+ZGp95mq+Jmk9Zii9pqq/Imn+meW8E6N6ESR7ECU8QAAsMrusMrusMrusMrusMrusMru + sMruscvvsMrsr8vrss7utM/xtM/xs87ws83vs8zvt8/xtMrstMrsus/vwdj2y+H70+j90un8zuX7yuD6 + y+L9xt7+vdn9rs72ncLvkbrrjbjujbj0kr36lL77kLr1lsD5msL5j7jxj7f0msD8ncP/eqv6TIPrKF7U + G0/OIlfeJVvmHFXjGVbgHFzlFljhGlvoFFXnF1npF1vmEljdH2niNoHxP4fyQIPqQ4TsQoTsQoTsQoTs + QoTtQoTtQoPsQ4PsQ4TuQoLtQYHtQYLsQYLtQoPuQ4PvRIPwQYDtPn/rOYDsOIHsN4DoPX7mUYTrb5H2 + hZv7kJ73lZ/0laHylaPvlaTvlaTvmaTum6PxmZ/1mZ74lqL5kaX3kqX1lqPxmKTyl6n4kKz8dJ3xXY/j + XIzhdZzyk6v9nKj4laHtmKbtmavzkqfwlafymabymqb0laf0kqn1j6n0j6rzlKjwlaPtl6Xwmaz6hqj3 + ZJjqTpDkRJHoPY/pAACvye2vye2vye2vye2vye2vye2wye2wyu6wyuyyzuu00O220fC1z/Cyy+2zyuy2 + ze270fC+0+/E2fHN4vfU6PvU5/rR5PjQ4PXP3/bM3vzE2v210PylxfWXvOyQuuyOu/CPu/WRvPiRuvaT + ufKXvfOVvfCSuvKVv/qcxv+Jtfxmk+0tYtAYUc8eVdweU+AeU+QhVegjWecgW+AdWtwbWtkfXt8aWN4d + WuMdXOAXWNgiaN45ge1Dh+5DgulGg+pHgutHgutHgutHguxHguxHguxGgetGgexIgu5Jg+9Igu5Ff+xE + fupDfepCfulAfuQ8gOI1geMzg+Q2g+I8geFRhuVtkOyEmfGRnfGUnu2ToOuTo+mSpOiSpeiUpOiWouuX + oPCYoPWVo/WSpvSXpfKbpPGaovGWo/OIpfZfkuVOjOBLiN5fkueAovSTpvWUouyYp+2ZqvCRpOySpe+V + pO+VpfGQpfGQp/KRp/GUpu+cp++epe+ap/KUq/d8pPJblehLkedHku5Bj+4AALDK77DK77DK7rDK77DK + 77DK77HK77HL8LHL7LLN6rbP7rfQ8bbO77XM7bnP7sLW88vd99Pm+9fp+tTo99Tn99Xn99Tm99Pk+NPj + +svd/anA8J+89Ji78pO78Y+68o269Y+79pS995i99pq985e68Ze78p3E/ZnE/3Wk9kN12iJWyBdQyBlU + 1B5X4h5U5hxO5R1P6SNV6yRZ5yJY4iBW3yVa5SFU5CJX6CJZ5h1W3Cln4j+A8EaH8UOE6kSF6kSG6kSG + 6UOG6kOG6kOF6kOF6kGC6EKC6kOE60SE60GC6j5/6D5/6ECA7EOD7kOC7kCC7TqD7TmF8DyF7j+A6U+B + 6WSH636S85Wf/Jef9pag85ai8pOk8ZWl8Zek85qj9Juh8pmh8pai8pSl85mn9Z2m9ZWi9Yme9XWa9U6N + 6EWP7kKM6UqK5mqY8Yql+ZKm9ZWm75yn8Z6l8aGm9KGm9Z6m95yn+pym+qCm+qKm+Kam+KOj95mk+Imk + +muZ9EuM60GM7kKP9z6N9wAArMXsr8fvscvws8zwscrur8jsrsjssMnssMrtr8russzvtszuuczqvs7p + yNbt1eDz4Ov63+n22+bz1uTxz+Lxzuf2z+v7xuT5sNHpnb3cmrnimbnplbXrlLbxmbz3lrr4kLTxlbjy + mLz2lbj0nL75mLv9f6b7U4DoJVfREUbLGE/YI1bdJlXZJ1LaJ1LdJVLgIVTkHFXjGFjhGFjiG1bkH1bp + F07kGVHmG1jlGFjcKWbjQHrwSYPxSYTuR4bpQ4fkQIfiPYbiPYbkPobmQIXoQoXoQYPmQYLmQYPnPoHl + PYLnPoPtMnboH2LcHmPhHWDiH13fI1zdJV7dKGHcLWPZMGHVRmvaaIDsdYXsf4rugozuf4rrfYjpgIjs + hYrviozsiovmiIrjho3mhJLufJTyaI3uS33kM3DcKW/hJm7mJW3kKWzhOHHgTnzjZ4jpf5Twh5juhJHl + iZLmi5Hljo/ojo3sjY3uiozxg4vwhJb4eZX4WoPsQnfkM3PmKHLmIXPjJn3mNIzzAACux++vyPCwye+x + y/Cxy++xy++xy+6vyuyxyvCzzPOzy/C5zu7E1fDR4PTb5/jh6vfi6vff6PTd5/ba6PrR5fnG4Pm93fmy + 1vShy+qWv+WYu+mcvfGdvfabuvWXt/KXuPOZu/SUuPOVu/acwv6Msf1mjus2YtMcS8wcTtkgVecbUugV + TuMYT+EfUuEhU+IgVeIcV+AZWN8WWd8XWd8eWOUmW+0fVeseWOsZW+MRWNUiaNk/getJhfFHfO5Hfu1F + gupChepAiOw/iO09huw8gepChO1DhO1Dg+xDhO1AgOw/gPA+f/YtbfAWU90XUdwbUN4hUOElUOEhUeAb + UuAWUt8TUNsbUtktWt9BY+RXcetoe/FxgfF1g/B4g+x5gup5gu55g/F6hfN2hfNnge5QeOc6cOEkaNwa + Y9wbY+IaYuUZYuQZYeIcYt4lZ944b+NId+ZVgethi/Bmi/BvjfFzjfV4i/h0iPlthPhmhflSfu8+d+cr + buIbZd8YZuMXZ+UUZ94ddt8yi+4AAK/I8K3G7azG6qzG667I7LHL7rDK7a7J6bDI6rfM7r3Q8cfY9NLk + +dzs/OHv/ODt+Nrp89vp+Nfn+s3g+cHY9rfQ9K3M86XH8Z7C75m+8Zm69pK08Zi69aDB+Ji57pG06Za6 + 8pvC+5K7/HGc7kJt1R1LwRpKyiRT3SRU5B5N3xdI3BVK4hNN5hVN4xpN4BlR3RdT2hZV2BRW2BVV2R1W + 4SNY6B5R5R9T5x1Y4xlY2Chp2kCB50iG70h+8UV970J+7UCB6z+G7T6H7juE6zd/5TyC6ECD6UGC6kOD + 7UB/7kF88kF8+DBq7xtR3SBT4SJR4SRQ4SNO4B1P3xhP3xVR4RNU5BZV5xpU5yBU5CtV5Tld50do7FRy + 7l167V9971d671F38VF18klv7Tpn5Clg3R5e3Bpi4Bxm5Rtj5B1k5Rxm5xtm5hdk5RVj4hlk4yBl5CRn + 5Cdp4zBt5jhy6T517UBz8D1w7jZr6C1o5CRo3h9q3hpp4RZn5Blq6Blq5xlp3id34TyM8AAAscrxrsfv + rcfsrcbrr8jssMrtscrtscrrt8zsw9T0z9/42ur+3+/+3e762uz12uz22e351+v8zOD3udDvr8jvr8n2 + rcr7psb4mr7yk7fuk7f0lbf1lrrzlLjvlbnwncL4mL7+f6b1UHnaJFHEIVHPHk/ZI1PkIE/jGkjbG0nZ + JFHgJVHjJE/jJ0/hKk/gJ1HeJVbcI1jdIlvfIlviJlvmKVrpIE7jI1DnJ1brJVbnMmbrRXvzR4HwQ4Dq + QIDmPX7mO33iOX7gOYDhOoHiPILhPYLfQIHbRYLdSYPfSH/iR3voR3rsNmvfG0/OGE7bGEzgG03fHVDg + IFLgIVTfHVXeFlPcFVTfGVjlFVLjF07jHE7kIlLlJlblJlrlI1zhJl3eJVzaJFrZI1nbIVzgH1/kHGLo + GWTpGGPpFl/kGWHlGmPnGWXnFmTmFWHmFmHnHGLqIGPqImToJWXmJmTjKGTjJ2TlJWPlI2TlIGblG2jg + GGrgFmnjE2jlGGnqGWjnGGXcJnHfPYfvAACxyvGxyvGxy/Cwyu6uyOuux+uxyu2yy+zE1/Pb6f3b6Pvc + 6vnc7Pjb7vba7fbW6/bU6/rF3PS1ze2rxeqpxe+sy/mrzfygw/WVvOuSuuqVu++Tue+Pte6TufaZwP6J + sPxcg+QsVccYQsIbSNQeTOEcS+QXRt8YRt0hTuAlUd8gTNYhTtUlUtkvVt8+XOdJYOpPZuxTaO5TaO5U + au1Ta+hWb+lMZ+REY+MzWN0cSc8fVtM0dOI+f95BgtNPi9xckOhik+hpl+ZvneV4pOeAqumHsOyIr+uM + r+mRsuuOru2Jp+6Cou1skOBJcM88Y9swVtwjR9QbQM8bQ9McSNkbTd0WUN0RUNwQU9wVVeAdV+QoW+cz + Yek5Zuo8bek+ceg/b+ZAbuQ/beU8a+YzZ+UpYuMgX+IZXuQVX+UZYukYYuoXY+oYY+cZYeQbYeMhYuQp + ZeY0auhBb+xHcO1IdO1LdvBIdvJEc/A9cu04cussbuMjbN8dZ+AXYuAYY+UaY+YYY94lcOA5g/AAAKzF + 7bHJ8bHL8K7I7a7I7LDI7LDK7bXO7s3f9uLu/N3o99nn89rp9dzt+Njr+czk9cHZ8LrW8q7K7ajG7a3N + 96nN+aLJ9aPM953I74234JG46JrB95zD+ou1/mqS7T9o1iBKxxhDzBxH2RxH3x5I4h1J4h1K4R9K3iJN + 3iFM3CFI1ixM1z1Y4Uhe51Fi7Flp7Vlq5Fds41lx41Ft11R10nWV736e7mqJ2GyJ3nCR53ii6oK474jH + 8ofO9IHA9ou6/Jm//Zy5/aa//qrA/LDG+6m/9rnQ+sXb/7XM9KbA663J97vd/6/c/6jX+ZjC8YOo8oCg + 83OS8mSE8V2A8kdx5DBg0yZa0RtQzh9P0DZc30dk7U9l8Fhr9ldr81xy9lhw7llx6l537lt17VRy60tw + 6z9s6i1l5hxe4Rlj6BZm6xVl6hRi5Rlh3yVl3zRu5EBz5kx16Vh47lp37Ft461t461x47ld471R471F7 + 8Eh56z536DFv5SRk4yFj5h5j6Rti4SZx5DuJ9wAAqsPrscrxscvwrsfsr8nsscrusMrtt9HxzOD32+v5 + 3u344O/73Oz61OX3y97zw9jyvtXzttHys9H2rs/3pMjvnMTsoMnzpNH4m8jvjrvmmcHzmL//gKj3Tnjd + IUzHFUDIG0jZH03jGkjfGEPYH0neI0zgI0zeIkjbIUfaJUzgLVLjPl3pUWvyVGrrUGHeVGbXWG3PWG7N + XnfWZYLZe53jo8j8s9X/pMb5ob7zn8Dxr+D6tPn9nPD7gd/7VajhRYDRWoXhZYThd43ndozldYrebYXR + mrbqvdz9mLzmaJK8ap3Ll9f4pfT9oPD+crPiU4jLXofbaIzlaIzleZ7ug6z5h7f+hrX8b5nybpHpaYLo + XXDeWGffX27mX27oX27qYXDvYHDwXWzrXG3oYHLrYXfwWHbwRW7rMGblG2DhFGHkE2DkFmDhJGXgOW/l + S3jpVXznVnrnVXfsVnfsWHjrWnnqXHjtXHjuW3juWHnuVHztT33tRHbsNmzrLGfrImHoGF7gIG7kNof3 + AACqw+qwyfCwyu+tx+uuyOuwyOyvyey1z+/I3/ba7Prb7PnX6PnQ4PXG1/C/0e290fC91fa40vSvzfCo + ye2kye+ky/SfyfSZxfGYxfSdyP6PtvtehOIrUcMYPr0aRNAdSN4ZRt0SQ9gURdcdStkgS9kkS9olSdsk + RdgnR9kxU+M/YuxNb+9DY9k+WsxRadJme9OClt2gs/Gqu/uht/yEou+dvvuLqPBnhdVQbshCaL1rq9+U + 7vuG8fdw4flJquU5ftZYiu9qjvF0ju9zi+p5kuppiNaLsOmw2vyg0fZ4sNtdncx0xeiQ8/uR9fx7zv1H + itY6cMw8a9UpW80eWMskZ9Eqcc8+fs9mmuGMtPekxPymwfifvfGFou5yi91YcMlUatZVauVVauVdc+pj + eO1gc+hXbeNOb+hIdPAoY+IbX+AZXd4hX+A3audPdu1de+xgeeVXdeVMc+tLdOtNdupSd+tVduxYduxX + dutVdulUeOlReupLd+5DdPI1bO8jYOUYXd0ib+M1hvUAAKvE7LHK8rHL8a7I7a/J7bHK7rDK7bTP8Mnj + +djw/c3h9sPW78DR7sDR88LU9sHU97zS9r3W+bDL8KfG66nN9qXJ+qLJ+6rR/5m//2uS5TRcwiZNxB9E + yx9E1h5F4BlB3hVB2hpJ2x5N3RxI2B1G2SNG4CpJ5CxK4C5K2TVU1kRj3VBm1Wp73JGh7aGz+q3C/77W + /56592J/009z0TtnyXej+XGV+VBu21Rr4kpo212R44za/I/2/nLn/FO47T6E21+N9XST9neN7neL6XmP + 5nyX46HA9K/R/KXM+ZnC83mp4nu955Tp/Zbw/pnq/Wqx5VqW4lyY80GM9SJ/7ReC7BaF6SWG50aQ7FuS + 7W2W7oKj8pe585az7bXJ/LXD8pal6HeL52N33Vht1Fxw2WN14WB051hz7U508jZq6yZg5CJb3ixh4kRt + 7Fp28mN472Jz51lv5FFx6lJy61Z26lh36lt261x161t16Vl05ld45lJ35k527Ep49Ttw8SRg5Bpg3SZ1 + 5zWJ9wAAqsLqsMjwsMnvrcbrrcfqrsfrsMnsudP0xN74xd70vdXuuc3tu83wwNH3wtP6wNL2u87yuM/x + sMvuqMbuqMn0qMr7pMf+kLL3Xn/ZJUqxG0W8GEXKG0PWHEDcGz7cH0HeIEbdG0bWG0bXHUndHkXhJETp + JULjHzrSJEDJSmfYepjqn7n2orj4kqfwc4jUd43TsMX7qsD0X3fWSGbKSG3Tfqf4gaH8WHDcVWbhUGbf + U4Daf8nxjfb8bu78W83zP47aVo7pZo7lcY7gg5zrkav0kK3us9H3tdTxpMLpqsj1lbXvjr7ppOf7ou77 + ou/7d8H0XprmVI/pOontHYLqDIDmC4HiI4TlTo/wZpL0eZX2e5HteZXocovVvcz1ys/5w8TwyMn4v8T9 + pa/vg43gaHPaXGvaWXDoU3T0OmvtKGDjIVnbLWHgRG3qVnPuWnPrWnHlX3HlbHjtcHrsc3/tdoLudYHw + coDvcH/ta37qZX/nWHjgUHPjTXfvPG/sIl3eGF/aI3TlLoTvAACxxee1yuuxyu2qx+qtzPGuz/eiwuyd + u+avyu7A1/LC1fG/0vS9z/S/0fTC1/fB2PW91vGzz+2ry+6t0fap0P2Vv/h4pO5TfuMsVskbRcIiTM0g + S9MXQtUWPtcfRdsiR9odQtMcQ9MfSN8fSecbRt4ZQNEiR8tIadh8m/CVtP+Ws/ZyiulPZtVJZs9DZchJ + YceGk+m6y/+MqPlEY7lLacR/n/h+n/1QbtpSYdxYZN1VedR4v+qJ9/1o9f1T1PdDmt5YlOZ/pviTr/uX + sfefuPWftu680Pm5zPKqvuq60f6nxPaMsuKn1/qx7/2t9v2J1PZkoedPjewriOkLgOAQhecYguQtfuBi + k/V5mPqFnf2LnvaUpO2ruvS4xf2Ll+RweMyBid2fpey4vfbEyP+1u/mKleljd9tPbeM4Ze0gVugbVOck + XOk4aetPduxbeelkeuhzgPB+hfN9hfJ6h/N5iPN5ifF7ifF9h/B/h+95hutwhOdjgulSeuk7buYkXuAd + XtwpceQ5hfIAALLF5bHG57HN76rM8qPJ84+25XGYzHic0abC7sLX9sDR78HR9cPT98LV877V7rnV6rTT + 6rXY9azT+p3J+Xam4kN4xTtxzkV76jNm5xxM1BhCyRxEzBpFzxpG0RxG0x5H1CBH2CVK3SJI2xU+zRVA + xTxn1Xum95W9/HCV6UVlyEdh2FFi31dm401o40lr4k9k3l5h3pad+a7F+GB7xExouoCf94Gm/Etw3kph + 31Vn5U523GWu6nHn/Ffz+1fn/F/A+Gqq8Yyz+5y3+5iy66G456O05MDN88bR+qy47rXK9bza+pO25Y61 + 5LXm/rb2/KXo+Xis7VOM7imH6gR/3Q+E5iOD6jZ/5WWU9Hme+Xyg9oOe6Z+s5svU+6Wx+3CB5WV35Wx8 + 7XOA6HmA24OG0aSo5MTN/6/A+nKO6ipSzSJU3SRc7BxT5Ctb40508GWA8HWC64GG74CD7n6E73aF8nSH + 8XSJ7XiH7H6F7IGC7ICE7H+L73GL7lZ95j1r4ite4iFb3C1r30OE8wAAq8XusMz4rc79lLjqfaTZa5TL + YInBdZrRpcTvwdr5wNPzwtP3xdX4wdLwus/ruNPuutv4sdf+i7brY5bXSoDKPHXIQ3zcRXzpLV/bF0bN + GEPOIknVKE3VI0fOGkDQGUHXG0TaGULSGT7CPWDKf6L0irL/X4rpMFvUGkXDJknDPVnQSmHdV2vrTF/l + UGLqXmvyT1PXc3XfwcP+o6/0TWi+bI/xhan9UXXhOV/cPGrkPHjjQpbpUMv3W/v9ZPb9bdT8a7LqfKzm + j7Dpl7Tinrfeo7XhvMr1wM76mqrblq3Xs9L5kbXkZYq8o8/1wPX9wPX+ibDwUHjcM3zjHoTpF3/lJ4Xs + P4/wVZTsaJ7wbp7rf6Pks8n8xtT+jZnkb33ecH3ncn7sdoHnfIbhf4fhfYLffoXelKLtrMP/krn1TXzX + I1THJFLTNVrkT2v2boP+eIXue3/miYb0h4Pyf4PxeoTueobrfIbrgYXxhIX2foLzeILybILxWHrrQm3m + LV7jIFfaKmbcQX/xAACnyfubvvKDqeRokNBhis1lj9Fkjs12ndigwu+71/a81PK8z/S9zvTB0/bC2fq4 + 0/mpzPiCrOdQgso3ccA7ec9Fg+BGg+Y4cN0fUckVQsUcRNEiRtYgQs8gQ80nT9ohS9QaRMMkTMhrjuWq + yP1ykOk/YMwfRMQaRc8gTNwnTtoqTtMxVtM/Y91KZutOY/FQZfFOYuReaNqdnu/L1f5jh9hXiOKCrP1c + hOE8b9U5edpAhdxFk9xPu+Nm7/V59/2J5PyIyPCVvuyqx/C1ze+5y+y0we7AyvnEzvqotOeZq9+wyPOx + y/KFoNiewu7A9vzB+f2IreRGZr0vZ8Uredoledouf95EjudVlONflt5lltqDqui40fyrvPxygeBreel0 + gPNyfe9vfuxxg+x3hvNwfO9fbdtcbdNpgdWhxvWr1vx2ouY6YsY7W9RUbPJYbetic+Z2f/F8fPB9fvJ8 + gvN7hfJ5iO53hux3f/B2ffRud/Bpde9idu9Vc+tIbOs0YOQkV9otaN5Fg/YAAIWt5nOb2GGLz1mDzGKL + 1maQ2GGKzHSb1aDD7rbV9LfR8LnP9b7R+7/U/rTN+pi563uh3V2M1kJ4zDl00Dh52DR32Dd43Tdy3yVY + zxpFxx9Czx4+0x1D2iBL2hZDvxpGtE931aDD+5m58EpoyzRRxR89wilK1ylO4CJK3R1G3RxI2xpI0B5M + zy9Y4TVW5zlZ50do7E9l2HJ907PH+oay9U2Hynmw8Gef41WX3lOd5Fmi6Wy173fO84Ho+Jn4+673/arh + +6LH9KG566e57qu58KOv8LzJ+MDO+6W19pyw8qe988Pb/6nC/pG457T1/Lv8/afV9X6h6GKP6FuV71ma + 8Vue7mWi6Guf4WiS02qNyZOx77DK/nWL3Fpv31909GZ39WJw6F5v52Bz7VZs6E1j5FZt6lhy5Uxszk1y + wpi/97vj/5zC9WiJ3E9r0FZv4ltv7lZq6Vxv6mBz7WR58Gh+8GeC6mN+52F26Vxv6Vxu61xv7ldu7FFv + 6kpt7Thi5iZY2Ctn3kSF9wAAXofFZ5HSYozWW4bUYYvYZ5DaY4vPc5nSnsHrudj2udT0vtb/uNH/oLz1 + fqDea5LUaJXeXZDkSIHdP3zcPn7hPH3jP3/nP3voK2HaHErOKEnZHj/RHkrZDD2/I1HAdZ/locT0psLz + mrf3VnTUGTi+LE3cKEjhI0XbIEbeI0zoG0jlGkTgIUnhJU7jI0vdIknWI0bKKUm5TGnDgqXpuOn+f73j + idL3d8j4XbLuUKTvUZ7yW6XzWqvpY7znjeX9ne39kNTybp/QaYzObobZeovkcoTanLTxmrTza4jXZoXT + aYvgiKv3krr0XZLEl+X7nu/9l9P8YZDcM2PBP3LZWJLvba3xi8P6n8z/o8X7pL7uxtz9p8D2XnnIR2TM + SWTeUGbhXW3lXGvnUmPjUmbqU2zzR2TsRGboU3nsPWPBZ47Zpsr5wOD+vtz+l7PuY3zYT2baUWzpUXHw + S2zsT23uT2/pUHLhVHThU3DkWHDsVm3sVWvtVG/sT3DrSG3sNWLlIljYKGjePoT3AABdhsRsldZfiNFf + iNRnj9tnjthjiMx6nNamyPK+3fu41fmlwvSJp+Nyldhoj9hkkt5kludcj+hMguA8d9YxbM4tasw0cdc7 + d+YvZ+IbStEXPcshRtAUQro1Zc+Tvvqjyf9aeMgyS6p1kOCvzv9khuUbQMslSNsmSeQeQ+AdRd4gR94k + Q98lP9wZPdAQQMcqVs9SeOJpk+9xpO99tO2l2/aS0vBcteFIru0ffdYNYMshbd40feore9g3k9Z33P2J + 8fuQ7/1xvOlhl9trjOpziPFqgd+Xs/CZuPVpjN1kit9hieltmu6NxfpbodV70PCS6vuY5vxGitMCPqgW + UcYqbuAqddxGieRnmuJ/pt+mwOzU6vypxvWXtPN6lutviOdYbtlQYNVeauBjb+ZaaeVTZupVcPZMb/M+ + ZN01XL93nOa/3vy+2fi91PbH2/yvxvl5keJRbNFMauFLautSb/VNau1QbudYdupUbuVWbehWa+pXbOxU + buxJa+c+ZuMuXd4eWNYkZ904f/IAAF+FxWyT1mSM1GKM1WWN12aP1meN0Hqe2qLH9rHT+JO04nia12qO + 02eP2WaT4WWV5mSW6lyP6UyB4EZ83ER83EB53EN95EJ76yph3hdIzRdDySBJxVV/2JjA/ISq7TtdxyJB + vyhFxSpIwWeJ36nN/1h95Bk/wBpB1h5F3yBJ0yJJyyZFxjpW10t531WW72ao/Wuq9VSZ7zGB4TB9y3e5 + 7Jrh/Uam20ax9x994gBFwhFO0zRs7TR46S+K41jF+nfx/YD3/YDj/1Oe2lmE32+F72+D45iu8py293CO + 3WaH32SI62CN62ul82i172HF6Hzq+oj0/Tef3QBSuhNi3CWC+xl86yV+4z+H4GCX3qrQ/LLS/Xed13WZ + 3n2V6o6f842f+3mM8W9/52dz4VVh1VNi3l1z7Uhn4CtPvGSM4qnP/63L+bnQ+r3P+sLR+c/i/b7W+YWf + 31hw0FZr4llu8lZs9E9p6lBq51Zs6lht7Fpu8Vdu8kpo6jxh4jBd4CVZ3RxW1yNl3jd98gAAX4TEa5DS + Yo3QYI3SX43SYo/UZI7Rc5vch6/qfqbZZ47GZIjOcpfhc5rmZI7bW4rXZpfnVongP3PPPXPRQHfXO3TW + PnfdPHHiJFbRGUXAF0OyVH7hpsj/haT0J0fAFTa/JEjeIEffHELFIESyWnvUr9D/aYvsFj2yHkjCKVjI + PW/VbKDse7L2XaPuOY3ZIn3TH33fH3vlHXDkJnDcQH7RiMf5SpjqRp34L4XvAk7FFU7JR3HsSn/yMHvg + NpfdaOD8a+n7fvH8ZsPvUIvWZorjcYjimqzxn7P2dIndaYHbbYbuZIXvW4jrZrH8W9j3Uur7U+z8Jbbk + AXnPDXTlFX/1DHzrFHvjIXfaT5XhpNn8i7v7Vo3bUoPdTm3RUmXTVGvXaITrhJ39g5n6fZLxd47nUWvQ + N1WzWn3UqM3/hqr0P2C2fpvlv9j8uM/2uM7zy+P1xt37ma/tXXLQT2XcXnX4Um/xSmfpVXDxU27wS2Xs + RGHrNVvjJ1XbI1XdHlXfHFXaKGXgQHz0AABhh8lokNNeis5ej9FcjtNgk9hgj9Vmkdppldtfjs9mkdZr + kN1rkd9tktxtlN1slt9qmeVcj+NDedRBedhHgeNAed9BeeE/ceMiTMgdRrRgidydwf1hf+gcN78hQNEj + R98TP9UTRNQgTdooTtMuTMNhe9unwf1khcx0oOdxqvthpPk+juQpg9sffdkVddkSfuMThe4Uce0YU+Mf + SNQlSL1qkPdsm/88eew/kv4TbtcQWcpDd+xKevE7decpfdNFuulj5v5v8/116v9ZruhKhNJVf9eTs/SZ + tPhtiOJqheFwivVphPtGaugwgeQ+3f8m7vsp8f0Wze4BktsIeuAOfOcOfuYWfeIjfOBWofWNzfxUlN8+ + iOg7gfE6auZLbetHauY7Yto7YdpFaNtukeaiyf6fxPqJrOekx/+AoPk+X9McRLhPe+mey/++5//E4/7F + 3PXG3fe+2fx9nOVBYs42W9k8Zuk2Yec2XuUwWN8uVOEtVuYkVOMcUuIbVOcbVOYdVeAvZORIevcAAF+G + y2SN0l+Kzl+N012N02CR2GCP112L1FyM1VqO1l+R22WS32eS3muT22yW2muY2WaX21+U4Ud/2Dt32Tp4 + 3zlz3UV75El54jtmzll71L/a/4Sc5idCwBg10SRE4xxA2hpG1iBN2BxF0h08zCpFxFp1z7TS/8Xu/4G4 + 4USP1B540xZ62xuB4yB96SJ17BNt6QJe3wNG1RQ61yg92iAyxFVp84ef/DFYxzB86B984w1ZzDZw6kZ3 + 8z5z6C522hyFzE7L+WHr/Gnv+3He/Eui2jVzwnml6oKs+FB730523Vh76lZ19i9P4ABCuAqv6A3i9x31 + /AzS8QCR2wp64BeD7hyG6x983TiE3nC4/Gq19yx91CWA6Bdv5Q9S1xxP3CpZ4iNQ1SBN1x9O1xVIvTxw + xpHC9rfi/6rR/VJ01SJDtiVPxiZVxDxwyWKV24as7KbB+bPR/rfe/7ri/3Wb6SxZvxtTziBc4yBW3ihY + 4SNU4R5Q4CBT4x5U4x1U5BxS5RpS3ihf4kB39QAAXYTNY4rTZ5DYZY3WYYvTYI3VY5LYYJHYXZDYXJLb + W5HcXpLdYZTcZpbbZpjZZ5rYZJjaYZfjUYzkPnzhMW/eMm3bPHPZR3nTZ5Pdo8P9xtj8fY7gJkTCHkbb + HULaHD7SH0bZFj/PH0TLT3DeeJz1gK76c6fZnNb9jtTvLojOHIDhH37qGm3jGlvbGEvUE0LUEUDYF0Hc + IUDcJD7eJDfdLkLejKH8V3rVHl/GMYbxKXHlKFzWRHXrPG/dMW3UKnfXPZ/paeP9aOr+e/L+bNPtRIi7 + cp3dfaj8SXzlQ3HbS3HaTmzjO1beBTyyEI3PMdv6OvP9INDxB47bDHPeEXblE3vdI3fQU5DWhsn9OpPt + IYTjJIbtFXHlDVjeEEveIU7lJUvjHknnIlTxGU/TJFvAfLH0suL7qdL5ocTygaLndpfkbJLjX4fbSHLO + J1HDLlXSVH7nY5Hih7DssNH/a5PgE0/AE1bbI1zjI1XdIFPhHVTkJFfkKVniI1TgH1TiGVXeHF7hNXr5 + AABdhM1jitNmj9dkjdVgi9NhjdVkkNhgkNdekNdgkdpgkdxhkt5jk95olNxplttpl9tnl95ckN9Hftg8 + dtpCfedBeN1FdtN0nuqozf6y0/252P2DpusnVscHPMYTRdMYStEVT9Aoa9tWm/JqsP1Jk+Mxe9ItdMhk + n+Wn4P9eofIgZdYPTNUPQuEVPeIdO+IiO+QjPOUmPeQrP+ErP94hNdQQJbN2jO97mewzbL9Qm+ZlrPdH + gdxbiuVpj+pWet1jkO5np/CD3vyI8vuO+vqS9/iS2eWl0++Zw/d/q/SFqveOq/aTsPuHq/x5rvlvwOmC + 6/p7+Pto7PJUvulRoOhJm+U+md5ToN2Cve6Izvoxj9sTetIZeuEVa98UVdscT+EaRdkfR9wpUesfSOAi + S81ghuKv0v/B3fu+1/HO5f3G3P/C2f692P/A4f+r0P9hieYmU8UeTcoVRMAqU8ODpvWewv9MfOYZTsgk + WNofU9wZUd8YUuIZT98fUOAgUeIfUuQbUN0kWt48dPQAAF2EzWOK02aP12WN1WGL02GO1WSQ2GKP12KO + 1mSQ2GSQ2mWQ3maR32mS3mqU3mmV32aU4V6P5kV51zpu0UJ12UJxy1R8ypi58sjj/bLS/K/a/VuQ2RlY + vwxPwxlazDR03VOZ8me0/FSn8CyD1x100h1t3TF16Shax2eR9YGs/zBdxRI8xhk+4Rk73x052Bw21R02 + 0yM80ixF0TJN00Be4Exu4oWj+K7O/Gyd41+d6oXH/HCy+laP8FqK71N+70976lmU8XDG/VrD5Gjh8Xnz + +o/z+5Ti92yu4kWC0kV501KB2luR6EiN4TWN1SeYzUnP71jy/VDt+D646Uic6Vel82Cr8323863U+7Hg + +nK78mS18l+s9EiJ6zNi0i1QxihOzyFL0R5FyiFEwk1t1KG798jf+8PX89Dj9cvb9cHS7cXW8MLX8sHb + 9sDe/Ja69EVvyh9OvjVm5zdk4Elv1qHC/aLD/0JoziNW0htW3Sdk7Cxp7yFa4x9V3yZa5ipb6CtZ4j1q + 51iE+QAAXYTNY4rTZo/YZo3WYYvTY47WZpDZY4/YZI/WZpHYZY/aZZDeZpHhaZLgapThapTjZpPmWozo + R33cSn7cTn7YU3zJgqLdvNX7yt75vNj+kr35RHzOIGO8ImvHUpbndLP8aqj4RoThJmfPG2DQD1HVBELZ + EUXeFjvFNVDMhqP5eZnuKUzAEDS8H0XNMlfaT3LlZ4ftcI36aYf9XIDwUHzoS3jkWn7do8T5b5TnGUa2 + R4LeWaD4KGnYOG3jPm7oNWHdRHvpZ7b+PaPdPLniZOj6e+/7iuv9ZLvsMoHXO3/iTo31TJX6L43rBn7Q + AIfQE8H3I+39Fdz1AJTZCXPXI3zmJXHTVYrWqMr6ibPrS5DWSpfrVJz3VJH2W4bza472cJr3ZJLvSnTZ + RGfIfJnhw9r/zeL4zeT3zuT3ydz5wdPzztz11uT6zuL3yOL6sNL9cZ3lPG7OQ3XoUYHuOWTKhqv6xOH9 + a4zbFEu/DFHSPH/3S4r9NXLnLmrfOnXrPXbtPXPlVYnzcaL+AABdhs5ii9NljtZjjNRhi9NjjdVlj9dk + j9dlj9ZlkdZlkdplkd9lkt9pk99qkuBnkuJjkuZaj+pIgt9FfNNAcb5bhMOtzPDW7PnF2OvJ3/q00/lh + is9Cd8FgnOp+tflfkOsrVc4dQsggSNcXQtkVP94ZP+QVNtYqQtEeMaphd9OnwfxwjeFQcOFkifJpkfZm + ivRYduFBW9IwStUjQtAWQcoUQL4eQbR5leuSq/01UsMoX8lbpPtGiOs0ZNhGb+ZHbeZAb95kqPlGnukf + jspVzO995/uY9/t41O9Al99IlexQlvlFkvgtju8FfdcBi9sVwvkf7vwR4fkBneMIeeMbf/Ebc+JQkeOd + zvxgmuYdc80ZeOAed+0caucdW9kkWtY2bdRUi+NwoPaLsvey0fnM4/jI3e/Y7/vL4fPJ3PrG1vrN2fXX + 4vnY6PvI4/mhzPZ+tvd1rfdtoe1Sgto8a71uld3B3fqlxvkzbs0UYNFCjPVSlvU5fNozd9RBhuNCiOQ/ + g9xWlupsrPwAAFaEzF6N1V+N1l2J0mKO1meS2mWQ12eR2WKP11yM0WGU3F2R3V6Q3WWU3WOR2l2N2V2R + 4VKQ5kaI3zt6yEd+vou14c3r/tLr+tjs9dXn89jt/7vV+qDD+Hig6y1UyRI3yh063CI65B084RQ81xpB + 1yFB0yxH0UJZ22J34IWg76jF+42n+VFp4S5M0R5AzBs6yyI80h0y0yI44yE86hU84BtE3Bk/xExs6piw + /VJsyRRNs1Wq8WGu9i9n1j1v3j1w3y9r1T6J6VCq/iOL1kSw7X3i/537/Ins/VTB8Tif3DWS4jua9iON + 7wJ72QCF0hjC+B/t/g7h9gCf3wR53hJ66hdy51Od75DO+T+K3Bd/3AuA5gp76RJ97hl76CV74itz2i1r + ylaJ2aHH+M/r/tfq+uHv9eX2/Nzr99vp/trm/t/n+eTr+dvu+8/w/ozE7EWO1WSn6p/U/4y6+G6Z15y/ + 8dbu/dHw/ny39zWC3FCf8F6r90OS40CR5EWZ7Emc7U6e7GGq83S6/gAAXY/WbJ3kbJ7kYI/XW4vSYY7V + Yo7WX4zUYpLYaJvfZJvhXJbdYJfdbaDicqTjbaHibqXtWpzqR43cUZPWerXntuL62Pf61e761uz20ebw + zuPuvtXvvdX9UGvBGDe3GzzVGTnVEjPIG0XOKl3TOGbSZIjydpbwbo3yT3PmOmjHaJfueJ34NFHLDTC+ + G0bgIk7nIUvgG0PhFT3mF0LsG03tIVfqE0zLNmvgi7P8WoPQGV+3P6DlYL76UKDpNYDLN4XPQJXdSqns + XMH8PablOqPZbtHroPj4k/r8Yt/yPrjZM6bXOaruJ5zwCYvcAZLNEsrwF/L6CunwAq3aCYjaFojmHITn + VKrwiNH4OpPdEYbbCIjmCYfmCoTjCH3YE3zQQ5PYd67lpM30yej92Ov53ef05Oz15vD63er43uv83+r8 + 4+ny4env2ez2yuz7grzsPIfUPYPQZ5rdn8f6stT8zOb91On70u77rN/8VJrUU5/jV6ryOJPhMZHmN5ju + PZntRpnpXabvdLf8AAB6sfeAtv19s/lypu1qnuRkldxhktlomOB6q/GGuv14sPdqpetso+V8r+mEtuyB + t+5/uveAw/9nsPJmq+iW0/XE8/7V8/zX7/rT6vvJ4fbD3vW41va81fyas/NCYMsQM7ImTshXhOhqoPlb + m/pXkOlRet4nTMkeR9MpWucjXtc/fu2Ftv9SetoUQskmXvEtafkiYeYfXugVVOgeXfAmZPEvcvIeZtgu + dd+Gvv1soOApdcYxl+ZXw/9j0PlDr+RHsehRvfVJuvJbzvxPwfswntdKrtGF4vGL+P1n6vxKzfE7uuc7 + ufkpqv0PnfAAoeEP0PgP9P4I8PkAvOcJm+MZm+gkn+lYvveB1fdNpNU3ndg/p+VWsOtqufF1vfCKx+yv + 3/jK7v/T7/vT6vXW5vHh6/Pk7vvf7P3a6v3X5/3Y6Pzh6/Xh6/bj9vvQ8P6IwPdIk+lJjNxwot+oy/vK + 4/3d8v3D3PWz0vG86f57t99epuNRpvAzlOcsku0xmPQ2mfFBmetepvJ1t/4AAGij6HOt83u2+4C4/Xqw + 9maa4FeK0F6R122h5nGl62ui52Oc32qg3IGy5Y6+7JDD8pHJ+oXI+2av6mmt4pzX88Lv/NDs+Nnv+8rg + +LvV9LLS9b3d/r7W+8ne/3ya40xx1F2J6Gab8UyN6yhz5B9i2h5Q0BM/yBhG3SFT6xxV3iVd2oGu+Hac + 6SRNyhRF2RxT5RdU2BVT3A5J3RpS5SVY5SRa3BNVxR1hw32y8Yi27VSV2Ueg5lW38GbJ8V6/51mx32G2 + 51qx33DI9oHV/XC+7XKz1pvY66Pv/Ivo/HbX91++5U6x4zmg4iOW2xWZ1CjD7Czo9C3u9CzC5Del3Umr + 4mC85pDX9LPj+KPT55/Y8qne+cPo/Nbw/tnr/OPx/N7v+9fp+dfo9tjn89vq8+Ht9+Dv+93u/Nzt/dPl + /NHh+dvn9tro+tny/LLa92Sn6jOL4ESQ3YS25svr/d7y/NDk+6DA6oex4rnl+pXG6Weo5VCf7TaS6S+S + 7TWZ8jaZ7D+Y5Vyl7HO3+wAATIrQY6DldrL3erX6c6zxZJvgWI3TXZDVap7hcqbodKnpcanmea/mjLvp + kb7pjbvpjL7yerfzY6XjcK7gndL0uuH2xN7r0ub4wdX0utH2udb7tdT2yeL8wdn6uNf/fqbtMGG/HlfB + JmzoHXD5HWj1GlXhEkXWEELcG0zmJljnGkjIeZnpm7D6RFzQFTTFI0ncKFbeJlLeI0neKU3iK03cN13f + QXXlT4jon8r6qND3fLXtdL3ufsnvk9r0nd30kMfwn9L0odf1q+H8uu38uej/rM3mw93ty/X9vPX7t/T6 + puX0k9jxgM/veczucsfngN3vgfLykPr1pOv2vOP5x+T90Oz/4/D76un05+333vD/1en72er44u/72Oj0 + 1eT32Ob81OP80+H82OX72ub43un34/H94/H92ej83On91uL73eb83uv71/P9nMvrSpPSKILPSZbWm8vq + 2fr90uj7ts7wgqzjYZPRpdD3n8z0b6zrUZ3uPZLrOJXsOpvwOJvrP5nkWKbtb7j8AABAgMZfnuV1svh4 + s/d1re9mnNtbjc1pmdiHtvCayv6bzfyVx/eJueiJteKQueqSu/SMuPd8rPFfk9dvn9qjy/W+3vrE2vTK + 3fjG2fy+0vu71P251fnH5fq31u633PWl0fpNgdIbVr8nauMgZ+wYW+YJRdEHP8kWTdciXuEmaeMsbNVr + lOCrwfWIouZjiON1pPx1q/92pvt1nPBrlOdbjuVknuxiovFTkud2r+yUyfprp+pTmehbp/JbrOh6zv9k + vPVHothVsepXtu1myPVqyvJRns93uuaX7f2B7fZ/6vd84fxVwukyrOE2qt1QrdWT3Pi69v/O+v3g/P7j + 8/ja6fLZ6vfd7Pjf6vTe6/bc6/jZ6fvX6PvW6fzU6vvV6vzX6PzY5fvZ5Prb4/re5fne6Pfd6/ne7P3d + 6/3a5fzW3/zb4vzh6/zc8PzI5fqlz/Z/seGKt97K7PzX9P2/3vnD5v2SvOxfjcSXwOqp1P12s/JLm+o8 + kuU1j+I0kec1kuk+lupUo/FmsfsAAFaR1mah5HKr7Hiv7nyw7nSl4HCe2Ii2653L/JzK+5vL+ZLC8Yq6 + 6I266ZG88Iu18oCs7WmZ3liIy3qk3bLW+snm+8vg+M3f+Mfa+8TX+MbZ9c3g99Lh88za7dHh98nf/pS1 + 6GON0VaG2FmN52CU8l2O71qJ7GKT72qg82mo9Gyq83ys6KzR9pXA9mGX61qY7EyN6UiC5UFv1jNjxUeA + 11CM30+K3kmBznmo3qXP94Sx5Gia33Gn7HGn5oa/+YfI+G6x5W6y7Ha9837J9IbN9Hes35XB7arn/Jnq + 9KDw+KPn+XjB51Cl2E+i1Ha84q3i+tPz/OT1++73/Orw9uDp893q+d3s+93r+97s++Hr+9/r/N3r/dvr + /drr/Nvs+93r9t/q8uHp8+Lo9OLq9OHt89/v9N/w+d/w/Nbk993n++Lq++Dq99/s99/z+9rz/tDt/dfw + /OP2+7/U5pGtybTV9Mfr/6PH8qvJ8cLi+5bH82ep7Fuk6Veh5lik7Fmj8GCm8HOy84S++gAAe6zrfrDu + hLTxjb32lMT6jLrvg7HjjbvtnMr6n879nM39ksT5hrnuf6/leafhcp7eZ5PXYJDTZZPSkLrrxuj+1fH7 + 1en51ef4zeL9zeP9x+D02O382eT52t/52t/31N33zuP8udv8l8L0ibjxhbX1eKbzaJftY5bnZpzpYZvq + VI7Ya5rZpc32irrzVI7lT5DrR47rTY7tW5DxY5n0b639ebj+frn+d6vtnMTuv+L8osjtjrbrncT7mLzw + n8Pwtdz+rNP7n8bvqM72qtT0vOL9s8jxv832wd/1t+Ts0fj54vz+zOj8rdHyqM/vvOH51vH97fn99fb7 + +PP89vH76uz74+r94+z94+395Oz+5u3+5u394u394e394O394e774e344e734+z45Oz44+724vH14fL3 + 4fX64vT94O384u394+z75+/67Pj85fT61Of00ef43u/85u/32OLwrsLgp8Ltqcf5pMDvus3v1OT6uNf8 + lcL5ibz3hrv2ib78iL79jr77osj8stT+AACQuPCXv/acxfycxfmRvO+EsOODr96Nuumax/eezfyUxfuD + tvNxpeNkltZgkNNkk9ltmuJnltltm9Wbwu3H5fvQ6PXT5e3V5fPM3vbF3/jA4fXJ6fvI2/bP2/jS3fTM + 3PHL5ve43/iItOZjkdxVhuNLe+JHeeNIf+ZQivJPjvpIgudql+SrzviOtu5UiN1Qj+NJkONLjuNakuho + o/Jrr/VssvRxsfRvp+GUwOO73/ajye6KtOqZw/qZwfGUvOep0PW33fupzOymyeamy+W83vfE1/rJ1/y7 + 1eyr09zM6+7u/Pzn8vvV5vfN4fHd8fzm9Pv4+vz89vj48Pj17/rp6vrf6Pvh7Pvh6/vi7Pzj7Pzk6/zg + 6/zg6/zf7Prf7Prd6vvb6Pzc6Pzd6fve6vvg7vrh8Prj8vvk8vzd5/re5/rf6Prk7Pvg7PzD0+epvNe5 + zuve7fvs8vji6/rO4v3P6/+83vquzffO4Pnc6fq81PadwfKSuu6Pue6Qu/WPuveVu/KoxfO4z/oAAJO6 + 6pO67JG46oyz5oex5Yq27I678Y268YOv6nWh42yb4WKU3V6S22CS3mOU4GWV5Gya5mqX33ag3qLF8cjj + /dPo9d3t8+Dv+8/j+cje+MXe98zj+9Dh9tTi9dTk8M3i7cjk9cTm/Zi97FyCzlN72FN841aA8E587Uh6 + 7kZ+9kZ97GWN6qjH+o+z9Up54UJ63kOC5UiF5kp/3k+G3WWk726v8n24/H+x7p3E6rzd9KLH6oq06JbC + +pjC+JW875/D68jp/r3Z/KjF5aXD47jV9sja/c/b/rnR8KbK4cjh8PL4/vb4/env+tvk7Ob1+eXz8/b7 + +vz7+vTz+O7v++Pq+9ro+97u/eDt+eLv+ePu+uLt/N7t/t3u/t7u+97u+9zr/dvp/dvo/d3o/ODr+uXv + +Ojy+Ozz+e30/OTq9+nv/Obu/d7o/NPi/LbK7J213q7J79zu/uv4+8rd65682q/W+q3Z/5fB8bvY+dHn + +7fX+ZvE+I278Ym58oq7+Ii5+I669aHE9bHS/QAAirTfi7Xhi7XlirTnhrLpga3pdqPiZpPXXovSXovV + XYvYW4zdXI/iYpPlZZPnZZLnZZHjbJbjeqHjo8PyzOP81uj23Ory3uv20OH3zNv41N7709370t/z0eHu + zOLvx+HxxOD6xuP/uNf9mrnwhaTidJLbb43cZ4jfW3/dTnnaR3TPZ4vap8b2jK3xSnPaSHbhS3zrTHrs + WHzwTXXjTX7hVormaprzeKLwnb/0vt77osrzirv0kL/8j7f4nL/4lrXosMvzzOP9us/yobjftMz0xdT8 + y9b7vNT2n8Lhtszk7/T89vT77vD65u7y4fHw5/j08Pj18/j37/X67PX74vH72ur53ez34u714+/z5O71 + 4uz33Or82+r82un62ur53er63ej33uj05O725O704+zu5/Dv6vL05e3z4Ojy3+v53uz82ev90eb+w93+ + uNX9udf8yN371N/8vs72gp7XXIDJXYjYVn/LlbHvvtT8fp/gVYDYWobkVILiT4HlTH/mUH7iZIrlepzz + AACDst2MuumLuux6qd9nldNgjtJfj9Zbi9dejNtnlORmlOVll+lmmOxomO1rme5rmO5tme1wmulzmt+V + turG4Pva7Pvc6PTd6fbV4/vQ3f3R2v7O2/3H3fPH4vTF5vyz1veUteV7nNiEpdmlxuu+3PvJ5f/E3/+6 + 0/unw/WSsu2LrOeUs+a21fmVtexdgNJcg95TfuBKct1XeOpWeetMe+REdttEc9dMdNF/oeerzPuMu/Jt + p+54rviFtPuYwPydv/ehvuy+1/u/1/mjvOSvyfLH3PzP4v231vWUvd2qxuHl7v3x9fzx+v7w/Pvg8O3p + +Pfz/P7q8PbQ2efR3fDV5fnW6Pnk8vzp8/ns8/ft8fnr8P3l7v3h7P3g7P3h7P3j7vvh7Pnh7vrk8/3f + 8fvX6fjY6/7b7//X6//P5//F4P+syvqPruh+oNx9n9qHquGcvu260/nQ3/7G1/ymwvWjxvOLtfZZgsuZ + ufC0z/5ojt1Bc9VMf+lLfOhHe+tCeetCd+VSf+hmkfYAAIi56nyv4Wud01yOyVmJy16O1WOT3mKR32KR + 4GaU42WV5GaY5meZ6Gua6G2a6G2Z6W2Y6HKd6muW2oKn3LnV9dru/dvq9trn89nn/dTh/dDf+s/h+8nj + +sfo+rrd/Iqu3l6AuWSDvoqq2bDO8Mvn+tPs9czj787h9sbY+a/C7Zis2anC5cbl+q3P9Y+z75C69oa0 + +n2p+YCn+nqj+Wyf8Wuh722c72uU55W376rJ+H+q6mOb5nKq83ep73un6ZW58Z+/7LzX+cvk+q7F567F + 7NHj+uH0/cHf9KLI5brV6+bu/PL4/PL9/PD8+ez29+bx9fD3++Lo97zH5cfZ8cbb+cTa9t7w/dzn+OTp + 9eXo9+Lm+t3l/Nvj/Nrj+9vk/NXg+M/d+M7g+szk/L/Z+6nF8pi37Yyr6Hue4nCX42qV5lqG4Ex41Up3 + 0FJ7zmeO2ZW67sDc+8na98PV8MLc/L7f9ZK35nOZz6nI9KXD9mGN2UZ83E2E60yB6Up/6kZ+7EV851OF + 6maX+QAAgrXtbKDaWozIV4nJXY7SXY/WXY7XYpPeZpfiZpfgaJniaJvjapzjb53hcZzib5vkbpjjcaDp + cJ3gfaXZqMrq0On62ur21uTx2Ob40+L3y9ns0+L1z+H2xdv1xdz5wNn3t9Dywdn7zOL/yt770uX81OX3 + 0+Pz1eT31OL6y9f3ucbqv9byv9/8k7bkaI/SWYXTVofVZJbhbpzobJzqZZ/naqPpb5/pbpXhpMHzts/2 + i7Dqeqrzgrb+fK/2farwjLHtiKfXn7jZyNzxvtD0n6/Vwczk4u36x9zutdDq0eL57+/8+Pb7+fz79fr5 + 7vL36Oz58vb90dnznKzbq8P0k7HigaHQudb5x9z7zd320N32z9v3y9r7y9n8y9n4zNr1ydj3xtj5xtz8 + udX6lrPla4rHVHW/TnHISW7OSXPUSHTaSnnjTn/qTXriS3TVY4nbnL/0xuD/yNn5y9v5y9/7l67UdZK8 + pcLuy+X+nbnsXIfbSH7nTYDvTHzqSnnrR3nqSHnnVoTuapj9AABpnd1lmNZhlNJkldRmlthmlthpl9xs + nOFwoeRwpORwpeVypuV1qOR7qOJ9p+N7o+R5ouZ0pOl7quuDreCav+HH4fXe7/jY5vHV5PXX5ffZ5fbY + 5fzZ4/3V4fzO3vzH2vnF2/rQ5f7H2/alteSdrduzxOvN3/7N4PrM3/fS4v3T4v3S4vbO3/a/0viuxfaP + rexhh9pNdtNLcthRfeVIgONKg+ZJeuJCbM2Fpu6cuvRvmN5ckuZjnfFemORdkdd3ot6Os+KiwODA2fTO + 4/u6y+fJ1unl8frM4PC81O/V5fvj4/Tt6/b1+vz1/P3m7PTp7/rr8/2qt9xtg8GauvF9pNtQfL6awvS8 + 3f2+2/zD3fzE3PzB2v3A2v3D2fnG2/fI2vPI2PLJ3ffG3/uzz/Kdt+aXsOaasu+VsfR/oO9ihdlUfNVd + hd9vlOiJquyjw/OgveujueHD1PnC0/bI2fjC1va3z/TF3/zE2/yPquVYgttIfexNg/VSgfFTf/JRfu9P + fOtYhvFrl/0AAHWm236u4oGw5YOw5I2465a+8Zi/8pi/8JbC75bF8JPF8pLG95fH+KDJ9KbK8qbJ8qTI + 9ZvG95zL+6PO+bTW+NTr/Or2/Orx/OPt/OLp+u3t/ebr/dfq+8He/KjL+Iuy5Xyd242o6qrB+7PH9rjJ + 8L/R88vf9dPj+NPk+8/k98rg9Mne8cvc9s3d+8/g/crg/rvU/6S+9Iah52+N32KF5luB5VF42VyF4ZjB + +oqz5mGMzmqW3YCq6Ja56aTH7rvc98vq/9Lr/tjs/OLw++by/+Ls/ufu/ODm+dnf+uDk+t3g9drn9dr3 + /dX5/Nj6/dv9/NH1/oCk0mWKyJ/H+H+q32ORy67P+c7g+9Hj+8DZ+cDa+8bc/Mfb/dHh/snZ9c7a9tHc + +c7e+cvg+8rd/dPj/tro/9Di/srj/bjc/pvD64Wl1aS96sPY/NXo/rzW/3WT5Gp/ybXA8tXi/cXa987n + /cLf/L3b+7LR/nSX40163EyA8FGD91R/9FZ98lp+8Vh/7VyJ82ub/QAAi7nklMLsl8Lslb3mncPqpsnx + qMnvqMruqs7vqdHvos/xm8v1oMn0qMrtr83tsc7urs/0lsT0erDodKndiLXhtdPy4vL+6fL61tzs1tvs + 6O395vL/rMjxYIrJUIXNWI/lPGrXLE/PO1jXR1/SaX3fnbH3vtD/yNf/zNr9yN/5wt72v9r0wNj0wdb0 + wNT1wtb3xt36yN7/wtv/utT+qsX9kKvydZTbe53hocb9i7DifqLWqMj1wd38yuP81O3/1PD+0Or4z+Px + 0uHx2eP14+r83uX73uX82+H51dz20t/2xt7yuOHuru31l+zxg/T1fvX7etv2PIS6OWqnkrLlrcj8rMX3 + z93/zc/8y9T/xdz/x+L/wtj+u870xNTxzNr2ytj7wtH5vtD5vtP6wNL4yNX5ydf2wtbywdr6wN7/qcf2 + tdD3zOP90eL9qrjvWXTGQWfIiKTzyNT8z9r8yN75wNz2u9j7udf+fZ3uPV/OLlfRMV/hMl7mN17pP2Hr + QmDpPV7kQGzoUYP5AACXwuuiy/SkzPWhx+6my++tz/OtzfCvzvGtz/CnzOyly+2hx/Gixe+qxuytyO2r + ye+kyPaSxfpkpOFJjMlPjcR4qNa/4Pji9vnZ4e7f6fTY7vyz1fSkzPl7qukxacUSTL4dUdYbRt4aP9wd + PtoWMcYrRMw/VdFtgemdsfe00Pqz0fO30vO70/S70vS91ve+1vm50/q30Pu20fu61vu62Pa92vy81/20 + zPi70vm2zfa81frG4PjA3PLE3vjA2/LD3/LM5PbQ5fXP3/DR3e/W4PPd5vni7fzX5PfG2/LB4PO54vKt + 4u2o6/OE8PM/6ekx5/NBzPJXs+eAtuW61fWoufZse9+AjOiRn/FTar5dfs6Fp+6oxfu91fq8z/a8zvO7 + 0vi00Pqxzfa30/a91Pq4y/q2y/i/2fm+1f5+jOJTYL2Lo9+83Pe0zP9dcM4dPJpfhs+11P6+z/nD0/jB + 1/SzzfC1z/uYsvo+WMkfO8UgQdUYP9cVO9kbP94jReUhQ+IXPtchT905bPQAAIq24ZjD7qDJ86DI8aXL + 86jP9KfL8KfK76fM76XM7KbN76fO86zO9rLQ97LQ+K3P+qTO/YzG/mKo7EuY4UWS2lKS0Iy85szo/uTu + ++Ly/77o/WmgzFKMyHq29o3J/12Z7xlSyws+xRhH1hRB1x9J5CVN6RpA1B9CyS1QvHaZ37fZ+7/Z/7zQ + /7/X/b7Z/LzV+7nR+rjP+7jQ/bvT+7nU77/a78Xd9MPZ9MLV9sDQ88jZ9szf9svf9dLl/c3f+M7h9dHl + +NDm98zh88vd7svb7tnl+ejz/tzr+sne9cbi9MXm9sPl88vv+7D7/mr5+Ejv90DA5nfP/bP0/7Pk/1V/ + 2goxsk534oiy+CxWwBQ8sSFHuj1du2N+zYyh8bjP/7fY/7DZ+7DW87LP8brU97nQ+LrS/rbP/oyg8zVA + t1Rj36zK/bfe/2aG3S5Ft2yG2LXS/rTN+r3R+8vf/bzS77rS+bTP/2iD5SI/xSFC2yVJ5hxE4RdB3xVC + 3xlI5RVH4xBG1x9a3Tp49AAAc6TTgrLiirjmibbkjLfkkLnlj7jij7fikrzlk7/kk7/klL7llr7kmb7k + mL/mlr7okb/ve7TxVZjgQo3fRZPoRYvYXpXSpsnx3/D+0uT7jrnwP3a/GletImHFSoPedKj3dZ73SGzU + IUe/F0PDGknVHk/mIU7nIkjVJ0jDjKrvp8P/cojXfY/irsT9vdf8t9D4ts33v9L7wtP9wdD8wtT6wNTz + vdPsxNrxyNz2wtTyvc/wydr40uL8zt750uD70d73zNzzyN7zy+H2y+H1y93x0Nry4+r53+r5zN3zy+Lz + y+P0ytrr2+Lyy/L8l/3+Yur8J5bOJnzHS5rSdb3yRH3eACqyQ2rakbX6Xn7WUGzOXnnaZobkWHvbX4Dn + aIjndZzonsb4utr+vNT8vND0utHvwtf8rb76V2rcJTvCRF/raIrvVXjcKUSqW2/KvM39zNz2u830wNP3 + q8DnudD3u9b8i6v2MVfGFEDJFEXbFUnbG1HcHljhHVzhHWHlHWXoIGriMX3jR5PyAABxo9WAseOFteWC + suKEs+KIteOHs+CJteCKuOKJt+GHteCGtt6Gtt2HttqKttyLt96IuOV2redTktg8hNg6h+M7hNtEhM1v + oNmu0PDP6/6x0P5XgNMhXcgbXdIPSsUfTslde+KUqPl8lvA5XdIhTMofTdcnUtoiRMRfeuywy/x4kuos + Rb0qRLtbdduXsvW+2P7E2/u90Pm/zffE0v2/zfzD0/7C2PvA2fa/2PLB2fTD1/rG1/zI2/vH3frM4PzO + 4PzL3ffF2vTG3fXJ3fXM2/LS2fDh5Pjk7v3W6PjL5vXM6vfQ5PTY4fPT8vyq/PaL7/lTqN8mb8Auer5t + t+l5q/hceOp4jfKqw/+vyvxzkPBmjO0+b98rYuEWR9UVPtQbPchBXtpjfeR/l+mrwv270vm90/2muvtK + YtkhRNIbQdgdQNMYNbVDWsCitfK+0/i0ze/C3PqnwuqQrt201v2fx/9Ie9kXVcgcYugga/Uhb/Ind/Ep + efAmefAkfPIhfvIffegtiONAmu0AAIu45pjF8pzJ9pvG8ZzH8Z3J8ZzH7p3I75/K86DI9Z7I9pvJ9ZrK + 9J3M8KDO8KLN8aDN9o/C+Gij5kuP30WR60mV70eR40uQ1m+r4bLg/NPw/KDB90aC2h9s2ilv7yZe5SJG + yjNGwWJ33o6v/nab90dv2yVKtElnyJ26/Iim/itMxB5CzCVK3x1AyjBQw2+M4bHM/cTd+73U877T8cTX + +sDT+77U+77X+b3Z9b3Z8sLY+Mnc/Mjf/MPg/MXg+8je+8fc+MTZ9sPZ9cva9tPe+dXa89vf9uXu/N7v + +szk9Mrn9M/n9c7e78zu97v5+qH0+XzJ/ESP5zuU4GW+9liW7zNSzzxUwnCO15e3+TRZyxlGyQpBzhVL + 5BxG6iFB6yVD8B074wwwxQ85tjlgyn+f67fV/J/A+EFlwxtFxRRAzRlBxjFTxXGO2bTQ9cLo/6vc+4W2 + 4Xmm0q3b+qPZ+2Oi6C562CF45hp48hh69hl78Bl76BR45BJ35RV77BV87RV65CKE4zeY8QAAnsbsqtH4 + rNP6ps7zp8/wqNHxps7uqtHyrNH1psnzpcn2oMn4n8n3osvypM7wps7wpM71lsn8aaXmRIvWQ5LkSJnv + Q5XnOIzaOYvUZqfdzvT/zvP8e7rrJ3jMFGPXIWPvIFLkHUDRIkPRLFHTVnvgi677eZvjkrHqq8z7QmjG + Ik3EJVTeHE3mG0XgGj7RJ0jFWHjUm77zwOL+vNz2tdLwt9Hwvdb4xdz9xd37wNfywNbyzOH60OX8x977 + x978yN38xtv6xdr6xtr6ytz50d/61d312uD26e/76/P83Ob41uLx1uDx1d7wze/7rPv9e+T6Ubb9DGPM + AFy2KKHsIn7nBj7KGUTBOmLAi63/XXzuIUPEKFLhIErgJ0bcJULZHkfhFUvjF1njGGDcGFfUT33spc// + pdP5VIO8OGbITX3ndqnsp9v/ueX/msPyb6blRorQRYfJkMnut/L/c7b0LnzKK4LhJofxF33rFYDuGYLu + G4LrGX/qF3zrGX3wGXzxF3npJITsOZb7AACgxems0fWu0/anze6mzu2o0O6nzuup0e2r0e+mye2kyPGe + x/agx/elyfGpy++pzPClzPWNxPdhpONFktdBlOBCluREmOY7lOcmf9kue8Z8r9vF8fy48f1mp+QpatAe + Wt4gVO0bSeogSuQoU9slSsI0UrSCn/K/3f+oxv9RdNAjSsEWQsYUQc0fSd8rUOwlRtwZO8A0WMZ8oeu6 + 3/+83fm92vbB2PbE2vjG2vnE2ffD2vXF3/fK4PrM3vvL2/vH2vvF2fzE2vzH3P3J3f3N3/vS4vrU4/bi + 7Pju8/3l6Pje4O/d4PLb5vfH+f6J/f1c7fxMzf0Scc8BYcAvrPIog+oDPNMbRtImS8dxjfiUp/stScgU + Q9IZVugRV+Mib/EleO8mfe8jgPMhf/Qmdu4sauBimOqo2vqdze+CruuRwf+X0/t1tutUj+U9dNsrZs1B + gtmQy/i56f92qfE1ctIqb9smcukWZ+IZa+McbeQbbOMdbeQdbOYdaechbesibusgbOYse+9Bkf4AAJe9 + 46TK8KjP86TL76TM7qXO76LN7KLP66fT7qfS7aLQ8J7M+aHK+qvL97DN9a/N9ajP+o3G/Fuk5EGT1USZ + 3Uea4Eub5EWY7CuD5iFx1Cxswnis8L/u/73q/nSe5TJcyB1Mzx1S5h1S4RpLyihRw1+A26bD/XWS3lp3 + y4qm9Yai9U5v1jdZ0SRH0BI1yiVI5S1P8xs80y9Nz3GP7LLN/77X/cba+8PW8sHT8cLW98Ld+7/g+8He + +cjd+8Ta+r7Y+r7X+8Ta/Mjc/Mrd/cre+8zj+cff8NXo9ef1/d3t+NLl8s/r97/r95r1+0vw8TPt+TnO + /A5uzgBawjSf8St67AI21hxK3xtKz0Zs2KK++1V33xBHvRxn5Bt47RiD7h2I7x6D7RJz6g9q7ih97kSQ + 3GWh3J/M9Mjt/rDV/2eT4ipkySFl2SBh5hlV4D525pHD+rHX/3GK7DBKyxg9zx1I5hA+4Q473BZB2RU/ + 0hU90RZA1BVA1hY/1xtF1hxJ0hlKzyNa2zhz8wAAfqnZibXmjLjpibXkirfljbrnibjkibnji7rki7ji + ibflhrXriLTrkrXolrfnlbfnj7jsfrX0UZXdOIPOP4zZRI3eRIvfPIfkI3PdF2PWJWjeKGLLW4vUpc/y + veD/gaTpNF3AIE2+KljLIUzFSnDarcz/iKX2MFC4LEy8KkfIRWLpco3ziKH7eJP0TWveJkjVGT/UGUDa + G0DSJ0zIX4XZnsP5weD/x+T8s87quNTvwt74wtz4yOD9xtz7w9n5vtj6wNj7x9z9y979y+H5yeL0zOP0 + yN3sz+Ls4fX43fn8t+b3gMvjadrnVPP7IvH0IfT7KdD9CmvIAF2+OJ7yLnnsAznUHkznHkjbPV/TpsD/ + jaj6MlnTH1bgHmnoC13VD1nLHFvNMGzjVI/6dKz/dqz7WYXcTGzEbIncttf+gqrvM2PJD0K6BzXCMlrc + iK32nL/3WnbcKUHJIDrVIEHlGz7oGDroIEDtIkHoID3gIT/fJELjIkLjIUDhIkLfIELZGkHRJVPaO27w + AAB+quCItOqKteuFseaHs+iJteqGsuiGsuiJs+uLs+yKs++HtPCJtO+Pt+uSueySue2OufB/s/RZlOFE + g9dEhuFBheJCheZAhOsocN0VXtIcYNobXdEgXLxHf9aTxPi65f+TuOtJaLkmQ6RdetSkwf5zkvQtTswr + TdAsUd0fRd8bPtwbOcw3Uc5heOh2jvV0lPJoke5Pe+QsV88ZRLRLdsWfyfqSuOmu0Pe01vSz1O++2PLI + 1/bN2vrI1/jF1fjC1fjD1/rG2vzJ3PvJ4PPI3+3M4PDO3u/S4uzW6/PG7PyGy/Itoc4cyNwm9vwM7vQX + 7fkl1PwKbsQAXr41ofMre+kAOtMaSOsbPt8oQsV7j9+pvPw+VdAZNsIoUcw/atRkgeh3h/FyhPVlgO1L + Z9onQtAULsIcNccqRstnh+qw0/6Jq+40ValTcNClv/+duP1MadkdPb4iR9odRN8cRN4cRN8dQ+MZP+EY + Pt8YPd4ZQNwdRd4eRuEeReMeROMbQuAYQ9cnVds/cPAAAJm/7aPK+KbM+qDH9aLI9qXL+aPJ96LI96PJ + 96LH9qDI+J3I+p/I+aLK96fN96TN+Z/N/JDH/2em7U6R4kyT6UiP6UiP7ESP8ix75xtt2yB14yJ25SJ1 + 5B9u1zZ94nq097Lf/6LC8ZWt57nN/5Wt8jRV1Bg/xyRO5BpG4CBK4R5E2SVF4CM/3x461SRA0TdX2F2E + 6Hyj9Xuc/XGP5Iqm7arE/lJrrXKLzrjW/LTT9rnS98ja+cPR8s3Y/MnX+8TZ+8Tb/Mbd/sne/Mzf+c3e + 9sva+crc/M3n/7Xd+IHB7Fa08DG77xvY9Bfz/Qrx+hDo/DLf/g55yQBWwSeR9CJx6wA41BFE4BVC2S9W + 1WGB17bT/3+b5W+M5X+e8YSj52R940NZ4yxF1xQ0zhA02Bg96CFD8CJA6iI91ytDw4Gb76rJ/q3R96zU + /Xmj6ylVxxQ9yiNJ4xxC4B1C4R5E4R5D4h1B5B1A5hs+5Bs/4hs/3x1C3x5D4h5B5B9C5hxB4hpC2ilV + 30Jw8wAAqMjvsND3r9D2p8juqMnvrc30rs30sNH3rdD1pMfso8rvn8nxn8nwpMvups3vpM3yn875i8P5 + YaHjSY/ZSJHiRY/lQ47oPY3sInffDmnQFnraF4HhEnzpDnTlEWrWIGnPUoXbnL3zy+L/p7fxTmPLLEzC + KE/YHUrkGEXlFT3ZIEPdIUXhGDzbH0LhKEjoH0PZG0LNJEnMNFXKXHvZpsP+r8r+fZrghaPvsdL+t9n6 + t9X1wdnxwtXuxNTyxNf0xd31xd/0yN/1yt/1zN7zy9v0xdj4vdn7p9D0ebfaSp/JOqrdQNL7Mun7Hen6 + DuL3Ftr5QNn8FX2/Cmu6RaTsUJHlSG/PbYvngaH2iqfwhp/tkKfxobj/VWnWN0bRLDnZHS7PHTXTJEPf + IEXgFTrkEDLuGDbxIDrpJT/RO1i+hqXot9T+pMH2YHzdJUPGFz7JGkjaGUTcIETgIkPgIUPfIEPfID/i + ID/kID/kIEDjHT7bHUDbIEHfID/hIUDjH0DfHUHXLFTcRG/xAACgw+qqzPOrzfSkxu2lyO6pyvGoyvCp + y/KpzPKlye6iyvKgyvKgy/OkzfGlz/Clz/Ohz/qMxPtgouVIjtlIkOJEjuZDjuo/ju8meuMPbNYUft8V + heYNfeUOduIceOcia9smXMc1WsNuiOCyyf+ft/1UctoeQ7whSM4jS94gQuQgQuYeR90bR9UdSOAZROUU + QOAeTOQeSdYdRsRJb96Ms/1Pds1Fbc1Redlvl+yVuvmxz/zB2v7C2/+72PvB3vvH4frK4vjO3/XP3fXT + 3fXU3fvS3v/H2v+fvet+rNl0sdxpteN42fp98/xq7PVk7PR37/yb8v1ut+RnuvF6zv5emfBTc+ZdeexF + Z+AuVMsjSsQvU8acvPxzjvIuP9UpOOUtQ+wfPd4WONofP+UkQusYNNsVM8wzVtZih+agyv+02/98nO80 + TskhOMspQeUnR+kfSN8dRt4jR+MiRuIgReAfQ98fQeEfQOMfQOQhQ+QbP9saP9kdQd0dP98eQOEeQN8c + QtcrVtxEcvIAAJG655zG86DJ957G9KDJ96LK+J3G9JnD8J3G86HJ957G+JzH+ZzH95/I86LK9KPL96DO + /YrB/V+e5UeK2kaM4kOI5EOJ6EKM8S585xhv3xd15hh67Bl45xlw4B9r4yFj4RxS2BpCzyJDyUFd1HyY + 8KnG/4am8EZmyiVFvxo6yR5A2SNI3h1F2RhE4RVF5xVG5BdJ3BdHzD9s2Y+5/3Wd+SJMvBdDxRxH0xpC + ziBFxkZl03KN54al7pO48aPF97bR/sLZ/8ze/s/g/cXY/rjN+Zy16ajH9Za88oCu6JHM9oPN9YTb9o/z + +2PV3WXg4oL0+YXb9z6GvjyV2TiY7hRW0Ro51SI84xg72yNJ5xlE2xpEx3GW86/Q/lZ04yI/0B4+1Rs+ + 2R072x841h86yzFPymKE25TB96zd/3qr7EBw1BdBxRxB2ShK7SND6iNE5ydJ5CRF4SNF4iFF4CFE4B9D + 3yBB4iBA4yBA4yJC5Rs+2xs/2R9B3h9A4SFC4h5B3xxC1ytV3ERx8QAAcaDWfKvhfq3je6nffqzigK/l + fqzifqvigKzjgqvlgqvof6vofqrkgajegqndhKzfg6/nc6fqT4nXPHvQQIHbPn/ePn/gO4DnJm7dE13V + CVPUDlfcEVnZFFbWGVfdGVTfFEfdF0PhHkbgGj3NHDvATGvWhqPvk7P/gaDtWXnfJkfFHDnRHjrhHT/q + IUjuGUPcEjvCMFjPep/6qM39RWjbJkvSIEfkHUTvG0HrFTrcKE3ZR2vhR2vZQmjSWHrfaobldpLnhKXr + i7LwdaPrUobVNWvAbKfraKrvM33NR6biV873Udz3S+r4AKi5ALrQLuv4QNv9AXLDHZbmIp3vDFrMJEbY + LkTkKELmK0TqJEHjKEfYNE/HjKj4gKX8KVHHFTbCHDjPIz7MQV7Uaonlmbn5sNL/h634PmfQHUrGGkrS + HEzgGUjmGUTmG0PlIEThIkPeJUXgJ0bmJkXmJkflJkXmJULpJELpJELoJULoHjzeHT7bIUDgIj/jI0Dl + IT7jIEHcMFfiSXP2AABqmNNzotx1pN5wn9lzodt3peB2pd96p+J6peN2n995ouR5pOZ4o+N7o9x8o9l8 + o9p6pOFrnuVIgtI4dcw9fNk8fdw9fd43euIdZdUOUsoSUdAXVNgTUdgPTtgSUN0ST90RR9kWRNsdR90g + RNomRtkkRNIjQsw7WdJykuyZuf+Xtf9rhepBWt0mQ9AhQsojQ8YpSMJigOibuv19nPQrTModQdQfRukX + P+oZPucYPdooUNVEbuFMeOtHdfFHce1FbORCbd5CdN5DeuBAeeA9ddpActl2pfRzpPQ+eNdMoORp4P9b + 7/445PoCvdcAy+Ad7Poq1/0DgdgenfAalugGWMYeTdMhSuATQuUYRu8UP+gkSuofPMo4VdWIrftYf9cx + S8FPYdWCmvGryv+tzP+Bn+tJZNwpRNglQd4pTegmTegiS+chSuchRuohROoiRuQiR94kSOElSOckR+Yj + RuUjReUhQucgP+cfP+YfP+QeP+EgQuEfQOIcPeIdPeIbPOAZPtgoUtxCbfMAAImx55S88pfA9pS98pfA + 9prC+ZjA9pe/9ZnA95rA+ZrD/JnF/prF/Z3F+JzD9ZvC9prE+4W6+12Y5kmH3EqL5kmM6UuN7UeN8i95 + 5x9o2Slu4Sxy5yRt6x1n6B1l6htf5BdT2BhK0SJN2SNJ3Rk+2iBF5ydL6xxA1Rc4wTVTylt50o2s7aXI + /ZW6+m+U5EBhvURgxZOv/6PC9TlZwSxP0iRJ3yJK6RU+4Bk+3h5A2SxR2UNt5Uh27kBx7UBx7UJz7EN4 + 7D996Tt75Tl45UF75UNz3Hil73yu+jx72DiU11vd+1Py/C7g+wbP7gnk7x/0+h7T/ACJ2x+Y8RqC6ghQ + zhxJ2BxH4xBG6Q9C4hA60hs8yzFJzzNJu4mj8bLP/KzH+6rG/Zez9mB+4TJTySVJxiNKziBH1h9F4BtB + 5htA6BtC5BxF4BtH2htK2BtJ2hlI3xdH3RNG2BJH2RJH2BNI2hNH3RRG3hRG3hVH3hFG2RNI2BVK2xdK + 4BxO5h1R5htS3Sdj3z178QAAob3rrMn3r8z6rMj2rsv4sMz7q8j2qcb1p8f1osfzocn3n8r5ncj3nsfx + oMfvoMjyncr5jcP9YqHpSIzbRY3iRY3mR4/sRZH0Ln3pGG3cGXDfHHblGHPlFG3hGmviG2PeF1TTGUzR + HErXHUfbGkXfFkTiFkPiGkbhH0fdJkbWJ0TNKEnBPmTLYorhg6v1l7v/qcb+wNv/rc38ZIfUJkm/EjfI + GUPcHUfjIknlHUXfJ1XiPnLzRXz1Q3ntRHrsQnjrP3jpO3rmO3rmQHjoSHrmSXPZfKXwear4MHLMLIrM + WNn6XO7+M8f6AZnJDOH0G/n+HN3+AJ7hGZP1EWnpCkHQIkLWGz3VEj3RJk3OVHLZcozgl7H0rMX/rcX/ + lLDwZovfPmzRIFHFE0XGHFXXIF7gE1XZD1PYGV/mElbjEVTkFFbiFljhFVzcFV/aFF/eEV7iEWHiFGfj + FGjhFWnhFmrkF2npGWrrGmrsGWnrG2/qH3PrIHPuIXPyJnj3Jnn1InjrKobqPpz4AACmwuuwzPSxzPWq + xu6rx++tyfGrx+2qx+2oye+jyO2fyO2cx+6dx+2fxuuex+udye2byvWLw/pgoeRFi9dEjeFDjuREkuhB + ke4ofOQRbNkRd+UTeukSd+IQcNsVbdwYZdkWVNYbTdkeStsbRdofSt4aTN0WSdkXRtgZRdkdRN4jRuQj + RuIdQ9YYQMgfSMI6YMhjhNaCpOmYuvajx/uDpvdegutIcN80XNghR9AROMQeTs42b+I8duU9dOI8duM4 + c+A0b9w2cd89duZFd+lLduVHbtR9pux7rPgzc9E5kNVu3/xx5Ps5newAV58PweQj7Psm2/MNos4eiNYi + ZdA1XM1bc91hf+N4n/Kfw/mvzv2kxPmLsvJsl+M+a88kVskUVc0TX90dcOkjee0gee4bdvAadvAaefMd + ffMcf+0cgOobf+kbfusafe0ZfO0ZfusZgekZgekYf+kYgOkYgekYgeoYf+saf+0bf+4cgO0agekZgOcX + feYVe+YYfukXfucUfeAejOMxoPIAAJS+7KDK+KPN+p7I9J7I857K85zH753J8KDM853L8ZzH7J7I7qXO + 9qfP/KLM+pvL95fL+4fA/l+d5UeI3UiP6kaT60OU6D6S6yp94xlv3BV15Rl67Rp56Rhz5Bdy5BRq4RNW + 2RlJ2SFG3yVD4SND4RxG3xxH3h9G3CJG3CBI3iBL3yNP3SRR2yNP3iJM4B1H3Bc/0xlB0ChN1zpe3lh9 + 4n2j75C2+5K1/oSk9HWT5nSX43Ke5mSR6FaG6UyE5kGC3z5/3EJ530R24kZ240t74Ud1zXSj6nms+EWA + 1VGh3Yjt/YTe+j9+2yFmt07D5mz2+3Hx9m3X6YPI6Z7F9qrG/a/M/qDH94Gz6WaZ5kZ01ilbxxVSyxJb + 1h5u4CeB7B6H8hSI8Q+E7Ax+5hKE7BmI8xKB6g595RWE7RSE6xOD5xOC5hOA5hSA5hSA5heD5xmF6ReD + 6RN/6BSB7BWD7RSC6xJ/6RF+5xN/6RWB6heB6RWA6BR/5haB5xeD6RWB5xiC6SKN8iyY/AAAgazljbnx + kLzzi7ftirfri7nsibbpibjojLzrjLzpjLvnkLzolL/ukrvwi7bsh7Tqhbjweq/1WZHjR4LfRobqPobm + PIrjPIvrLXbjHWTdG1/nIGTwIGPqHGHjGWTkFmDjF1LdH0veJ0nkK0bmKUflIUjlIknkKknkKkfjJ0bj + I0PhJ0rlKErmJUfnJ0rsKk/vKE7qI0njH0PeH0LYHUDNKUzULFHSN1zTRmjdUHTmZpHxf6/4jbj1mbvy + nsP0n8z3pc/6rMz7rsn7rsb5scb5sML2w9X7xtn+s8z6s9/4vPj7wPD7ssb4nb/1muj6mfn9lff9f9b8 + aKTqV3vXSGbUNlnSJE/QG1DSG1DUGk7XGVPgHmXyJnr8JoP6Gn7tFH3qGITuGYXvFYDrFIDqF4PsFYHp + FIDoFYLqFIHpFILpFYPpFoPoFYLnFYLnFYHlFYDlEX/jDIDiDoPmEIbpEIXpD4PnDIHkDoDjDoDlEoPp + FYPpFILpF4TqFYPpEn/mEn3mF4LrHojxAAB9peSJsvCNtfSHsOyGsOqHsuuEr+eFseeItemItemItemM + t+qPt+2KseyDqud+qeV9ret2qvRYjuZDfuFAgOo4fuQzgN8ygOUgbNwQVtYRTt4XUOcWUuAQUNkOVdwM + VNsNStYVQ9geRt8jRuMfROEZQ+AaQ98gQt8iQuAhQeEfQOIeQOYeQOcdP+UcP+IbQN0cQ9oeRd0gR+Qh + SOUcQ98cROAVPtgVQNoTPdoJNs4WSc0zbNlBeNdHd89OgdVTi99bkOdkk+prlutymep2mut7ned+ouRw + mNxyoeOS1Pmh9P2Iz/hQgM4sbrZDwt9L6PdW7P04uvQNas8AQMAPRNgeSukaROUbSeQlUuwnUuseTuYZ + VegfZu4gbu4WauUYbuUddegdd+gceOkZeOkYeusYf+0Yge8WgO4ZhPIXhO4Vgu0SgeoSgOkTf+gTf+gT + gOkSgukQhekQh+kQh+oOhegMg+YLguYNgugQhekOhOkQhOoRhewShewQhOsPgukPguoQg+sShewAAI6x + 65u++J7B+pi89Ji885m+8pa77pe875nA85a98pW78Zu+9aDC+6LB/Zy+/Ze++5fF/YGz/FKJ4Tl01jp8 + 5TmD6DSH5C2D5Rtt3Qxf1wtg3hFl5BFl3w1j2gxm3Qlj3ApU1hNO2RVG2A870hNC2BFG2xJH2hVF2BVE + 2BVG2RdK3w9E2Q9E2RZI3xdI3hVG2BRF1BNE1hA/1ws71RFF3hVK4g5E3BBH4BNH5A9C3BxU2zRx5Dp4 + 5Dh23Tl54jZ65jJ35jBw4jBu4DJw3TVz2zl33Tt/4Cp40C6H2lvJ+nbz/VXM+BR10wBmuA3E4hrr9y7w + /BC99AB11AFc0w5k6Rhh7BVZ5Ble4iBm5yBl6BZd4QtV3ApV3gtY3QpX1hJf2Q9c0gdXygxh0xBq3Ats + 3Qlv3glz4Adz4At35Al34wh24Qh14Ap34Q554xB85hR/6ReB7RuB8R2D9ByD9ByD8RiB7hWA7RWB7RWE + 7hKC6xGD6xKG7BCF6gyC5w2D6A+G6w6H7AuF6QAAo8Dyrsz7stD8rMr4rMr4rcz4qsn1rMv3qMn4nb70 + m7zynbzxor/3pMD7n737l7v3kbz5hbX9U4vfMXHPO4LoSJn3RqD5Ppz6Lov0IIXwGozxHpX1HpPzHY7v + G43wGIXuGHPnI2ztIVzmEUbVHVbmImTwJWryKGjvJGbrH2brHmjrHWrnH2znImvqImbsJmbtK2jvJmLs + FFDfBkPRIGHoJ2vvIWboIWToI2DrI1vqM23vRYL0S4jsTormUo/qT5DwTI7wSIjtRofqSovoTpHpS5Dq + SZbsPpnjQa3qXdr8afb8WeL8KqjvA5PWFNbxGe38J+r9DLvwAInZCIDgFYjvHYfwH4nxHIzvFYnsEobr + E4bwFob2GIL3Gnz3HnjyKHvyHGzfDGDRFW/fIIHuGIDtEn7qEoLsEYTtEYTtEITsEYLqEYDoEn/mEX7m + EH7kFIDoEHDjBFTTE1/hGmfqIHDwInXzInn0IXr0HnzyIIH0IYb2Hof1F4XvEoLpEITqEontEYntDYXp + AACgvPOqxvqsyPqmw/eoxfeqyPmoxvapyPakxfeau/WdvPefvPegvPihvPueu/yavPyUvfuFtP1UieEv + bc46gudJm/xCnvc8mvkvj/gXfukXie8WjO0YjOsUhuQYi+wcifESb+IcZeQeXOUKQ9EXU+IkaPQiaPAm + ae8eZekga+8VZuYNZNsSatwTZt4ZZOUhaeskaO0mZ/EQUd0DR84iaecfauMcaN0VXtcPUNEXVNoybutH + hfJHi+1Fj+hHlOxCj+tEkvI+i+03gOJBiudJk+tCkes/luw4n+RCuuxf4/1e7PpK2Pw7wvgAjscB1OsJ + 8vwk8/0LxPQAiNUIh+ANje4Rg+gUg+oSguoUhu8JfegLgOoPf+sPfegahe8cguwjg+8YdOADY88QduEd + ivMRhu4Ti/INh+4Jg+kSjPEWjfIOgecPguYVhuoSguYRguUVhOkQa98IStITS9oTTNsTTtsRUNwSVN0R + V90QWtwSYOAVZeMWa+YZc+oeee8ffvEfgfIegvMdg/IAAI6t85e2+5m4+5Oz9pW19pi4+Ja39Za39ZW6 + +JG5+ZO5+Ze5+pq5/Zu3/pu4/pi5/pS6/ISv/liJ5jdv1T9/6kyW+0mc+kSc/TKK+BNr4Qdd2gpf3Q9j + 3Q5l2hp46yqG+yBv7Bxc5BpS3ws/0BlQ4ipp+CVl8xlV4gQ+zQtI2BFS4Rpi6Bpm6A1X2wxT2xdb4x9j + 6SZm8BBP3gNF0SJm7CFn6B9k5Rdb3Q1N1hRS2y1u6EKH8UGN7T2N50KS7D6P6UKS8TuK7jN+4z6H50WO + 60GQ7DeP5jOe4EvI7mbq/Fbd9jzF7zbC+QCbzgDW6Qjx+x3n/RLA9wCS3QmL5BWL8B2E7xhz5wdd1Rdv + 6Rh27x6D9xaC7QZ53gaD4QqJ5hqN7xN95AFr0wt95BeP9AyJ7AuM7gOD5gB94AB01QN52wJ32Q5/4hmL + 7BmK6xaL6hiK7BZx4xdU3CFU4x9S4R1R4BpR3xdQ3RVP2hNO2BJO2BFP2BFP1xFS2BFU2hNW3BVb3hde + 4Rlf4wAAeZztg6b1haf1f6LwgaXxhKjzgqbxgafwgKrxe6jtfartgKvuhKnviKfziajziKjyhKjyeaH3 + UoDgNWnSPXflSIz0RZP0PpH2I3XlAkzKFVbiJ2X2JmbwCk7RBEzNE2DiG1/mJl3rIlLlCjfOGEriKGH3 + J2D1JFftFkXdFEbhC0DbFk7lHFfrFE7gF1LkIV7sJGPtJmPuEU3fCUbYJmP1JWPzI2HwG1joDkvfE1Hj + Km7sPYnxQI3uP4zqRZLsQo/nR5LuP4nvNnvnQ4XsSo3uRI/vMovhN6TlXNv3bPD+R8rzKbDfLsL4BLPf + CN7yFPD9FND3FLPxCJznBpDnDY3sFonwGX7vEWzlCmHcBl/aGXftH4DuDnfeCH/gDorpGo/yDXzkAGrS + CHziEI7zCIruDZH1CYzwCYnsFI7zGZD0EoXpFYXpF4rtEYfpDojoEYnsEHDiEFPYHVPhHlTiIVflIlfm + IlblIVTkIFPjIlXlIVXkIFPjIFHhHU7gHE3fG0zfG0zfGkzeAAB4m+yCpvWDp/Z+ovCApfGDqPKBpe+A + pu6ArPB/r/GAsPCFsPCKr/KOrfSPrvWNrvOKrvN9pvZUgt42ac8/euRLkfRGlfA9kPAkduIHVcscZucq + cvYpcO4MVtIFU84WZuIdYuUjWuUfTeANOM8bTeInX/IfWOsfU+ceUOMjWu4hWe8QQtgMPNEQQNUaTuAn + X+klYeUhXuUSTNkPSdkoYPIoX/ImXO8cVOcPR90TTuEobeo6h+0+iutAiehIkOlGjuFKkehChuw4eOZE + getNie5Ci+szjeA/r+lh4/pm6fs6uukXoc8lwe4UyO0T5/oa7/wHt+IPpOYUoe8Fj+UAiuIGjukGguYJ + eugXgfMNcuUIZ9oMZ9UXct8hhvIXhO4fi/UUf+oAa9YHe+QPi/MGhewLi/IKh+4JhOsQguoVhewSfuUW + g+oai/ETie0MiesLh+wNceMSVdsdVeIeVeMfVuQhVuQiVuQiVOMiVOMiVOMjVOMlVeQnV+YoVuYmVOUk + UuMhT+EfTd8AAIms8ZK2+5S4/Y+z95G195S4+ZK195G19ZO8+JTA+5S/+5fB+5rA+52//J6//JzA+5nA + /I64/l+P5DlxzkOE5E+c90if9EKd9jeT9h5/5w503gZv2Qpw2A102xyD7CSE9Bdn4R1b4SFU5Aw70BZJ + 3iNe7iFf7B5b5xJQ2xlc5x1g6yVe6SRX4hdL1RpR2iZh5iZl5yRi5hJN1w9H1Shg7Clf7Cdd6x1T4g9G + 2BNN2yls5zuG7T6K7D+K60aQ6kWP4UmT6EGH7TZ46EOB7kuK8j2J6TWS40i88V/m/l7i/Dmy5xWaziPB + 7BzY+Qrt/g/z/gCq2RKf5yGq+wyQ5wCC3QSG5gB84QZ86BiM+hSH9hCA7gt24wlz4BOD8RKG9xqJ+RB8 + 6QBs2Ap+6ReQ+w2J9A6K9QaD7QR85ABs1gFw2gBu1wd34A+E6wyF6waH6gaF7Apv5BRX3x9U5R1U4x1U + 4xxV5B5W5SBY5iNZ5iFX5CBV4yFW4yBW4yFW4yBU4R9T3x1R3hxP3gAAn8Hyp8r6p8r6ocL0osT3pcb6 + pMX6psf7pMX5mr3zmb72l773l8D2mcH1msL1msL2mcL5jbf7XIzaOHPFP4XaSZzwR6T2PZ/1LJDsGofm + EIrqEZLxDI3pC4fkGI7rHYTpEmbZGlvbG07ZDTfJH0nbJlbmJlrpIl7oH2DoHGDoGl/mG1/kH2LiIWHh + ImDhJV/kKF/pJlzoF03cDEXSJ2LtJ2PuHlrnHlnpHVfnFlLdJWPiP4DyR4v1QojvRInpSYznSo3sQoHt + NnXmOXfnRIjxPoroOpXlT8nzYfT8Vdj2PKPmKJncGqvgKN38Eu78Duf8AqPbDZDbJrX6EJ/jAHzPBX7g + CH/lDYDlDoPoC4frC4jtCIfnBoPkDYPpE4TuG4vyDH7hAG/RB37hFpDyEZDxCoztB4vsBYnpDI/vDY/v + DIztDYrrDorrDInpCIbmDofpFXTmFVbbH1bhHVXgHVfhG1fhGljiGljiGlnjGFjhGFbgGlfiGlfiGlbi + GlXhGVTfGVLfGFHfAAChxfKozPmlx/ebve6Zu+2au+6XuOyXt++Wt++Qs+uRtvKRufeTvvqWwvqZxfua + w/yZwvyQuf1jkOVCedNHieVQnPdMof5Enfwuh+8dfegdhvQij/wbifQWgesgg+8leu8eYuQlWOYjSeEY + NtYrSOkwUfEsUu8jUukgVOsfVesgV+wfV+kfV+UhWOMkVuMpVekxVfIwU/MhR+YUPdosWfEtXvMkVu0n + WvQpXfYiVukuY+lJgPlOiPtEgfJFg+1IiOxKie9FgPE9dew8d+xGh/Q6heQ/m+lb1/ti8/1MxfU6kuEv + keIbpOIx3f4d7f0V4f4HoeERiuAzv/kfvPYFk+kVkPUilPodjvAekvIYlfQTl/UOl/EMlO4NjesOhOcX + iO4PfOQBbdYIduAUhO4Vh/EShu8UiPIVifYTiPQThvMVhfMVhPIXgvEYgfAXf+8egPMic+8fWeInWeck + WecjWOYiWOYhWOYfV+UeV+YeVuUeVeQfVeUhVOYiU+YiUuUjUeQiT+UiTuMAAKPJ/avR/anO/J/E+Ju/ + 9Zi89JG074yw7I2w7oqw8Iev8oWu9ISw9Ye19oy6+ZO9/Ze//Yiw/l+I6ERy2kR65kSC7kCD8Dh87yJi + 3RJO0RhT2xpV4BRT2xBP1hZR2hdL3BQ61hYx1xsu3B0q3R0t3hgv3RYy2hI22RI62hM72xI82RE81xM+ + 1RY91Rg71Bo31xwy2x8w3R4v3Rww3Bwz2hs32hMw1xc33Rk73xM30yBI1ztn50Jw7Dtt5jpx4Tl33Tx5 + 4D1x5jpq5jlr5T946CVxzTuZ5Gjd/WDg+T+l6DJ51yN61wiL0R/G+iHl/RLR/AGN2QR10SKq8iK8/AaN + 5AZ53xWE6xF+4BCA4Q2E4wyK5wyS6wqU7AuQ6wuJ6RGI7RB/6Qdz3wZx3wl04ghw4AVq3ARn2QRk2AFj + 2gJj2gJh2gRf2gNe2QNc2gNb2gZa2g5Z3BhW3xxW4RxW4htX4xtX5BxY5B1Y5h1Y5SBY5yNa6CRZ6SZZ + 6idX6ShW6ChT5ydR5idQ5QAAirLrlr7zmcD2lr71mL74mL76krf0jrTzi7Lzha3xfabvc57qa5niaZne + bJrfcp3ldp7rcZj1U3njPGfZPW3jO27oPG/sOmzuJFDbFjfNHzPVIjHZHDHWGjHVGzTYHDLbHCvdGyTd + ISjkJS3pGCbdEyrZGDngIUvpJ1XuJlXsJFTpIFPlIlbmKFjpK1ToJUXjHTTbGSrXHy3dKDPmIC3cIC3c + GCbXGyzbHjLcFy/TJkTXQ2fqR2/uO2XmN2riNXHZN3PcPW3mP2noPWrlOXHfJHTLSKzneej9ZNL1P5Ll + OnLeJXLZAH7KGb/4Keb9DML0AIPUAHHLEpvrILz9C5LlAW/WEHvkEnjfEXfdC3feCXzfB4PhCYroC4zu + Do7xCo3tC43sDo7sDYvrD4zuFY7wFYrwEYTsEYPrD33pEHvoEXrpEHjoD3XoD3ToDnPnDXHnEHDoFG3p + FGzoE2roEWnmDmblDWTjDGLiDWHhDV/gDV3fEF3gEFzgEVrfElneEVXbEFTaD1PZAACFsOmPufOPufWL + tO+MtfCPuPONtvGLtfGQuPeTufuPt/yKtPyEsfZ8rO91pehvneRrl+dkj+tJc9w6Ztg8aeQ3aOY8a+xB + avQsTuEdL9EtLeAxJ+EsKN4oKt4mKuAmK+InKuYlJuYgJuMcKOAYLt4bP+MgU+slYO4hYugcXuIZXeAa + Y+MZY+MdY+MmZOgpXuojS+QZONsVLdcXKNgbKtkeKtsYJdkfLOAjMuEcMNUoRNdAY+hGbPBAZ+07beY2 + cds4c9w/cOlDb+xAbugzbdcviNhcy/F/7P1evfE5ft0+b+Eqd+ACidAs1f4u5P0FsekAe9ACcc4IkuIg + vPwSm+wBb9cUeOQZeOMbd+QXduURduMMd+EJeeQLf+0MhvEEiukGlOoJmu4CkeYBjuMHleoKlewIkesM + lO4Nk+4Nku8Oke8PkO8Qj+8Qj+4Rj+8SjvASj/IVkfgUkPgTkPgSjvYTjfURi/QQifISifQOg+8MgOwN + ge0Of+wOfewMeuoKeOcJduYJdOUAAIy07ZO79JO79I+38JG58pG68o227Y627pK49JO395S4+pC3+Y64 + +Iy694q694q4+Ii1+nOg9lF/4z5w3jpv4zds5Tpr6Tlk6SVG1xsvzycq3Sgk3yYl3ics4Sks4yYp4iUm + 4yYo5CIp4hkp2hUy2BlF3ydg7yJk6B5m5Rlh3hhj3hVm4BFk3RJi3Bpk4SRl6iRZ6hlD3hIz1xYv2Bgr + 1yAw3x0r3yMx5SI05Bsz2ChI2j9m50Zw70Jt8Dpt5jZz3Tl23z1w5j5u5z5y5Cttzzic4mLd+HLe/Uyf + 6zBu0Txt3yh83ROm4Tjl/Dbf/gSU3AZ21wtu1wF91Rut8hqb7gVu2BZ04xx05Bty4htx5Rtz5xh46RZ6 + 6hB67AZ36QiD6guP7AuR6weN6AWN6AmV7wqY8QOU7QGO5wCN5QGR6QST7ASP6QOM5QWP5wqT6w2U7AuT + 7AiS6wWS6gSR6QSR6QeS6wiT7QeS7AeQ6wqT7guT7weP7AaO6wiP7AqS8AuS8gmR8AeO7QAAhq/qkLj0 + kbn1jbTwj7fykbnzjrbvj7fxlbrzlLbxkrTxkrb1k7r3kr3zjbrwirjvh7j2gLL+XpXvQn7iPHznPX3t + RH72PnHyJlDcGjrSGzHZGCrZFirYGizaGy3dHCncHifcIynhIy3iGyzcFTHXG0TfLWDyJV7pJ2PrJl/p + J2DrImLsHF/pGVvkIF3nLGPzKVfxFTveDCrUFC3ZFyrbITDiHiviIC/lHTLiFjLXJUrbPGvqQXLuPGzq + PHHoOnTgOnXfP3PpOnDmNHLeK3rUSr7wcff+ZdH5QIjkN2/VOHHbI4bbJcj1Nub+HrH3AWvTFmfjIWzr + DHXfIKH0IJXzCGfbEWrfGG/iG3DkHXHoHHLqGHTmFXbmDXXnCXboCHnmDIDpE4rxE431DIzyCY3wBo/x + ApDwAI7rAI/pAJLsApXuAZLsAJHpBZTrCJbsBpPoA5HmApPoAZXpAZXpBZftBZftBZftBJbsA5TrApPr + ApPrA5XtBJbuApXuAZTtAJTtAJPtAJPtAAB/p+yMtPiPt/qLs/aMtPaOt/eLtPOLs/KUufaYuvSRs+2Q + s/GVufWVvPCOt+qJtuqMvfZ/svtak+lCg+E/hutBiPRFifpBfPcvYecmUuInU+sjTuoeSOQbQuAXOtwV + M9gVLdYXKdYYK9YVK9MQLtEbQt4tWO8dSd8aRNsZPdoYONgZPN0YPd0SOdUbQdwxU/EzUvUcN+ASJ9Ue + L+AeK98jL+QfKeIeLOMaLt4TL9MhRtc4aOY+cOs+b+pFduxAceI6a9xBcuo3b+Iqb9U5kOdb1fdr9PxI + reUubM06cdgwdNYqmuA35fwz4fsEfN0AP8MQQdQfT+IQYt8plvE1mPoXa+gRY90Va+EWbOMZb+cccugb + deYZd+YVeOcSeegPeucQfOYOfugNgekMhewLiu8Lj/IHkfACkO4AkuwBle4El/ADl+0BleoAkuYBk+YD + lOgDlukBl+wCl+4Dl+4Dl+4BlewAkusAkuoAkusAkOgAjugAkOoAkusAkuwAkewAku4AlO8AlfAAAHSb + 73ee8nad8XSb7nWd7XOb6nOc6n+o84+1/JO5+ZO395W5+Zm+/JnA+JS98o+78Y28+H2w+lmT6kWH5kCK + 8DiD7y546ilr6CZe5Sdd6yNe6yNg7SNh7SNd7CFZ6yNV6yVQ6yNL6SBI5xpF4RI/2RtO4yZY7g071Aow + zhIt1BYo1hko2Roq2hMl0RMozyg95TJJ8x804BUn1iEv4h8q3yYt5iIo5iQt6iMx5x4z3itM40Vx9EZ2 + 8jtr6Edy7Uxx7Uhs6Up18zpw6CZu1T+d8Gno/V3n+jWV4Ddr1T5y3jOA2ULB9z74/i3b/Ahv2wY70hs4 + 3iA+4AZFzRl25TaQ/iZ09BVl5RVr5hFq5RRq6Rpv6yJ27CV67SB67Rh36hV76BB95Qx74gx+5A2C6AyH + 7A2M7w+S8xCW9w6Z9weU8gKQ7AGS6wSV7QWX7gWW7QOV7AGW7QCX7gCV7QCU7ACT7AGV7gOW8ASW8QWW + 8QqZ9AqX9QWS8QOR7wOS8AKU8gKW9AGV8wCT8QAAW4LlXYTnXoXna5LydJ35ZY/qV4DaZI3jf6n2krr8 + lLr9j7X5hqvtiKzqkrnzlr/5jbn5gLL8XpbuP4HiM33mKHTjHmjcGFrZF1DaHVfjG1riG17jHGLkGWDj + GV7jH2HpI2LtJGHvIF3sFVThFlbiLnH3PX77HFbjGEjfHT/gGzPbHC7aJzbiHzDWCR7AESrLKELkITjf + EibQGivYHCfZJCzhICbiIyjmICniFybUIDvWM1fgPmjoP2voN1zaQ1vePlbcO1/kMmTgJm7YTa3zcOz8 + QMXiKYDSRnDjLl/OI3XFWNz9OvT7KdT7CGjZFEHdLEDqKEDlBDnCDGLWK4H7GWHlBlHTFWnoGW7tH3D0 + H23vHmbjGGDbGWLfGmrmHnnrFXvlDXXeEXniFoDpF4PsEYDpD4DnDYHnCXvhCYHmEI3xFZT4DpDyBITl + AH/iB4vtCpf1ApXtAJPpAJHpBJPsCZjwDZfyC5PtA4njAYDbBoTgD5HvE5bzDpHuCI3qBIvrB43sC5Py + AABQcuk6YNFOf99omvVjju1UfN5SfNhfjeFzofCDrPaEq/V7o+yEq++Gru59puWHsPGJtvqEtv1Wj+ov + bdslaeAYXNwOTtMWTdcfTdofTtseVd8lYeogX+kWVuIPVeAVXOYfYeoWVN4RTNgcU+ASUtwbZecyhPwd + ePAKY9wSY+IRXOEaZ+kca+sPXt4YYt4ucOolX+wQQdYTOtcXOdkYNdYbN9kVLtkTKdkLINAFGscbMtI0 + TN46WOE9X+I8V9xCUdw3SdUuTtghXdQagdRGxfNu6v46pOAeXs80V9wjZM8qoddQ6/045f4zyPwSZtcX + P9UlO+AsQecPPNMVV+M3f/0eZeYAPMcLSNQXUN4jWOsjWekcWOMeXOUiYOsVVd4dZOYib+sSYd4TY+Ea + buwYcO0befMKb+UFceENeuIHf+QIhecLgeUDdt4LeeUage4NdOkFeOQJmfcAlOsBmu8Hm/AUnfYTku4E + eNgKfd0UhuMKhN4DgdsMjugQmvUChuUAfNwIk+4Lle8AAGKE/z1l2FaM6XGp/WCK7FV14F6E5XKg9YKx + /4Wy/YCs93Ge6Ye0/JS//4Ww84y2+I+9/Xap+T932iFf0iNk5hlZ5g5I2xtP4i9c7zdi9ChU5jJj9Sda + 8BdO5hFP4hda5yVl7xxY4RFH0hxN2xhU3RVl4yOH+w+G7gB42Q2I6gyG5w+T7g+X8AKE4Q2G6SKN+BRu + 6QhU2CFf6ylg7SRa5idb6SJW6iBR7BdF4xI72SpN5UNh8EZl7Uhp7URh5UNX4EZd5jti5yhy3yys7FPr + +VXN/Ct54RlHyyFD0S5+40zd+1P0+y7C9Syi7x1j2RhA0iA62SpD5BY72BpN5jx9/SZs6gA4yRA2zxYz + 0R041xw92xVD2x5R5iZY7RhL3x1V4ilm7R1d4xlc5Bdg5wlY3RNq6gZl3whx5RSG8RGH7RWL8BOI7Qh5 + 4gx45xh/8wtl3QJm1g2a+QGT6gKd8AGY6g+b9BCQ7QFw1A984CSZ+BqX8QiL5BGX8Ref/AOF6QJ93g2X + 8Q+b8gAAX4j1PWrTSn7cZ5z1a5P4Y4DuW37mYozpcJrve6fyhbL6eqrzfK30f6zvd6Dje6Xme6fvaJjv + OnHVIl/QJGXkIGHoGVfkGFXmFE7jE0jfFELcJFHsI1HuIFLuH1jsIF/sJmbtG1rfEk7WGlTfEljeFG3o + GYX2An/lAH3bDpLvDI3rAIfiDZnyFZz4D47vEYTvC3DlBV3ZFWHiH2XnGmLgIGboHmXsIGbyGlvrEU3e + IljhM2XlMWPfMmPeN2LgP2HjTnTzN3DnK3/hRMT5Wej9OqfrJGzZIlLRJE/XQ5bvYev9Rtn1DorRHoLm + HF7hEz7WGTjYI0DiEDrTF0/hPH79JGjoAzrNH0HgHjTbIDPeHjXeFTbaETnYHEHeIEfhLmPzLm/2GWDi + El3eFmXkFGrkHXjwFHPoEXTnEHXlAWrXBW/cFoHtGorzE4XtDH/oBHTbBn3eEpr2CJrxBKDyAJrrB531 + D537B4frDobsDYfpA3rZBX3cC4fqCoPpCYHqEIzyD5DwEpfxAABZi+xGeNlPgt9llPJskfNjguZXedtY + ftdvkdqNruWcv/OWvPiPuPWKseyEqeSIreiMtPKFtPhomu5QheY/d+MmYNQaUsocVtMYVNkXUd4VSN0d + TeYWR+EUR94UTd0UUtodXOAdXd8aWd4WVuAFT9YMZeQeh/kWj/QIiusMje0CguMIj+0RmvgJju4HhukU + ifMagvYUceoXaeYcaOUYZt4baeEVZOIYY+cSWN8MTNMeWdguZNouaNs4eOs9ee4+cOg5c+Qmc9U3nO5g + 4vpZ4P4hhNIZWsUkWM80bOJgvf1j6/woqOUAWLcuevQfWewNOtoUMtkeO98NN9AWT987ff0jaOgANcgZ + N9oeMN4iLuQmM+kfNuQVMdoXMNccOdokUechX+sYXeMaY+cfce8edvEbePAPbuEFZ9gKbN0EZ9QGbdkU + f+gUhuwHf+IDgOEMkPARm/ULmO4HnvABou4AnOoAme8FlvIChekAe+MAfuIAedoEfd8GguUAddsBeOAG + g+oAft4Agt4AAFyS7GKW8Guc+HGe92+Y7GqP3myU332k7KLE+b/d/q/Q+5W++Ye19Yaz9YGt8X2p74Gv + 93Kn9FqS6VuS8Gae+V6U80Z64i1k0iBczydm4SVj6Shk8CFb6SNg6yNk6B1g3iBk3iRo4iBi4xxe5RVd + 5A5i4xd17h6J9hyO9hqM9ByP8xyS9xmQ9xqP9R2O9huB8hNu5hBj3xpj4x9m4x1m3x1o4Bhj4Bxl5Rxf + 4x5b3zlw606B80iD8kOJ9kCF80SC8Td+4zCM21XF+m3t/U/N9jOO3zx74Dp44EuX6HLc/Fvh+B6V1QVR + vEaD/SNW8Aw12hIt2B423w0y0BhJ3z56/CVl5wAyxhk42SI14iIv5CEx5SA65xo44ho03CE84Ro/2hJE + 1RZP3h1b6SJo8yNz+iF49x579Bh87hV+6RJ/5A+A4RCF4w2H5AiF4gaG5gqQ8A6a8wec7QKd6ACh6QGj + 7ASd7QaX7gqT8g+U9QmU8AWW7wuc9Qya9wiT8wqS8wmV9AiX8Aia8AAAX5XuYpXubJjxa5Xpcpvnh7Ht + jbnyiLXtj7fol7rpibHmd6bocaPqd6jwdqbvdaPsf6z2a5vsPW/EKVepQGy4cpvkm8H+kbv2WorgLGTE + H2PWHWflGWfnFWPiGmrjFWfdGGjdHWngGmPhHmfsHWnvD2TmBGHbBGrbBW/bBG/bCHXeCHLaBnHYDHjg + E3njDWnbCVzXFmLhImjnH2ThGmPbGmXdFmXgF2blF2LiF1/dLW/lRoTwRYnxPIbuP4fwSIvzN4beMpzW + XNb5bev9Sb7pN5DbQIXfQ5HkXL7wd+3+WNv3Go/MA1S9Q3/9J1jxFDngFi3bHjHgEC/VHEjmP3b9JF/m + ADDFFzvaHzjfHjPgGjTgGDviGD3jGjvhHj3iH0LhHEbfGEbfEkLbEEXdFVPnGF3rGWvvG3XwF33sF4bu + E4npB4XiA4XgA4jjA4nnBIvpBpPrBp7sAqHlAJ/gAJzfAJnjAJbmBJjrDaD1BaHxAKDqAJ7oAJvpBaDw + DaH3CZ7xA5rnAJznAABhle1unfVnj+RylueNtPeOufOEsOqDsOl+q+SBq+eQvPiKufh6qex4o+KHruyU + tfCOreOYteqlvu6tw+q7zO3N3Pbg7/rj9vzH4PuLtO41dtMPYdEVbuMUcegZd+waeeskfvEkee0UZuAO + YeELY+ILa+QNd+cPgOYMguQKguQCft4Vj+cQjeIDftYMgNsTfeMQb98TauAgcOgpeO4neeoedeQSbt8K + ZtsOaNwaceIqfuU6iug9i+k7huZDietEhuo9j99KuuZv7vl28PtQv+k6k9c6iNRQrelx5Ptx7PpNyu8r + nNQed9NBivsWT9sMNtIZNNsjOOMPLtUXQuM7cvskY+gKPtInUOclSOUjROQbQN8NPNcNPNcVPt0eQeEa + QN0dQt4hReEdQtwcQdweRt8cSN0bUN8fYOkXZuUVc+ggifkmmvoemvcZm/UcovYXnvIGk+UDmeQXtfoa + vfkXuPUauPYctvkTqvIJnuUHoOEOqucPqOUJn9wKnN8OnOQKneIJpeQJreoAAF+Q6m+e8nKY55e4+Zq/ + /HOb43ij64Sx92WU3VqJ1Xaj6pG8+pS4846s4anC8M7i/tTh/OTq/fv9//v4+fr09fz4+PP0+vL2/fD6 + /b7a+XCn9Sp33xt55xV97glw4wdt4RR36xl16hJs5Q5s6ARr4wZ86BKT9hah+Q6g8Qug8wqk9iTJ/xrH + +QOt7Aur7xin+RKR8Qx+5w915BJz4xV34hl95hR65Qlw3Qtw3B+C6TWW8T2a7ECV6EaT7EmR7kyR8FGm + 8F3S9HDy/G3k/lO/7D2d2UCe4GPR9Xn2/lvV6zyr10Ov6jym8kSl/yp78g5O2BI/2BU72wIqxQ0/2Dd4 + /ihx8AVH1hlJ3R1H4CJK5SJL5hpN4hhK3xpE3Bo/2B1A2yBD3SdF3jRO5ERc70pf7zpQ4S5J2ixQ4SNS + 4Q1K1w9Y4Btz7BqA7x+Q9S2l/iWk+AuT5QCO3waY5Aym6Ru49S7C/Sy49iip6i6o5z637lnQ+FTG8Tys + 4jqr5Sul4xum4CHB8hO86gAAa5jwZ5HijbDypMT8gqbsZo3capXjaZbmXo7jVYrjXo/hhKjul7Xwl7Lm + s8v30+j8zdz04ej5+fr88vHz7e7x6vD40N/vxtjvzuP4qcn4ga30XZz2LoTmD3fgB3XjCnXoDG3jDmXd + EGfiDmrkBm/gCITqEJz0CaHvAZvjAaDrD7n5END8BMzvAsLsEcf5HML+EqL3B4XpCnnjEHTjDW/aHH7p + HoLwD3TiCGvWG3vhOpryTqr3W7H4YbD7VJ3zVp72XLT3Ydfybe/7Ztn5OqLQJo3CQavlbOL7dPH6V8Tr + S6LhSanwK6HjMar1NaP/GXnqIWzrImLpCEXMCU3UJHX3GWnnAETKDkTWHEffIknkIknjGkjaGkbVJUbX + K0bZPlXpRVzxRVrrUWLuYnH4aHP3WGLmTVfeTVvlR1zqMlDeGUHOCz7JCk3PEWDaFW/gFHXfE37jFInq + FY3mGpjnK6bwPa72QqjsTanqab71ecr4jt36h9L0esTzi9v/ddL7Tb7yQc34Jr7mAABijeVymeajxvyj + xfSBqOVvmuRWhNBRgdNej+dXh+BtkuKVrOeiteWhs+G0yPPB1v2rv+HL2e7p8vzy+/3u+//A1vJ7nMdh + hbR8n9CUtuuQtvKCtfsoeMwNctQei/UahfcWcuoYZuMXY+EXaOUQceQSiu4WoPgLpfEAnOQAmeQAougL + yfYHxuUAtNYIu+oXt/cNle0BdNwNbuIedu8YcOUieu8fe/EQbuUJadsYd+Iwj+09m+tLpPBXq/ZHluY9 + iN9NqOls5v13+vxn2/hQuepBreRWxvR17f1s5fVPrOFSlelUqPonpuQksfEdp/cIgOAPduIZdOYYc+gq + iPMyk/wTbuUAQsQEPdEVP90hQuUmReYlR94sTN9AVuZWY/FVYe9UXe1TXelRW+FZYuJhbOdkbedob+lx + efVmb+5fa+5WZ+5EXegsT9wVQs8KP8wLR9MPUNQdZdxAj/lNnv1Hl+5PmehfpO1pqetpqOJztuWJzfWE + xet8uOKGxfN5ve9gseRdwvFSwu4AAGSQ4nWd5rTV+63L84Kl5H+p74q5+pHA95zB7aW857rI7dri9Ov1 + /Nro/77S+LbR/LLT/JW13H+gxI6y3LTd98Ly/J3V+nWw83Ou7IS68Iaz44vB+DGG1xeC4BiK8gl25BJx + 5CR27yBs6BRo4RFu4BF84xeO7Byb8Red8hGb9QSY7xTB+g/J9Qq37Rit8hma7xGA5RB04xZy5hdv4yB3 + 6xxz6Bhv6BNq5BFq4B556DSR8kWh9kSb7ECQ4UOS5DuO3la473ny/XLw+VLD6lW/9V3T/2Xk/HHu/WTY + 9Eqn3lOZ51Oo+ieg5Ciy9BSf8AOB3Ah43Q934Q133CWU7jOh+hyE8BFs5Rhj4xlY4xZK3hlD2StL3UBX + 5E5b5VRZ4lpb5V5d6Vtc5Flc3l5k4Whw6G126G966HR+63qC8WVw4V9s5WFz9E1j7DNO4CpK5ilO7CVK + 3zBT2Exy7FmC8l6K726Z93yr/nqu+Gig4G+w5YrQ+ozR+YHB7Hy55nKu4HCu33/D737G7wAAaZjocZvi + vdn6scr0fZ7mZYzjYI3ffqrhv9jy7vP/+Pr97fX35PH9uMvqi6jWiK3qfKr1YpzqOnzMJWvCQ43gXqju + TZbgRpHdWaPeWZzZUYfPa6n3M4/mFYbnDYXsCH3oFHztIn3yGXLoDGfeD2zgEW/dFHPdGnfeGnrhEnnm + AnTfAZXrAKbwBZjtEobrEnXjEGjeE2zgFnjmHYDsH3/tEm3fE2jfGWznFWnhGm/hL4XrNYvoN4fkQ4vp + OYjfO5rjadT/ee/9bOPyS7frRbHzXNz6aPb8YeX4UMLsTbHpV7HzPZ7pEoLRLqX7FovqC3vjF3zsI4X0 + B3PSF4vgIpHzCnDgEHTlJonyKoT1IXPuIWLhOWHkTmToUmDhTlfYWFrhV1niUVLcWlziaW/vdHr3c3zz + bnnsbHbncXzrWGfXTV7UWG7qXHX5SGfyL1PmJUjiK0veP1ngVGvsYXn0Y37xY4LsaYzua5bvYpblZaHn + c7X0brTuZq7mbbTpa6/icrLlj8z8lM/9AABlk+ZvmOOoyPqpxvl9pO9fj+tNft1FddRXf9V/neSzzvzL + 5/+ow/ttiNFTcshXfeRmlvpcm/4veu4TZN0YbOAaaNcmasphneSn2fvE7P7I5f+dw/84e9IOaMwMb9wG + adsOZ9wba+MaauQXauYWa+YXa+YXbOMWat0SadkPatwHbdsLiekSmvUSiu0Obd4QY9wcaeYZaeUQaOAV + b+USa+MRaOEYbeocbu4QZeAOZdsheOczifA5iu49ies3jOQym99f0/1x7P1Fv90fkso5q+xf4Pxo7/1M + xu8tltUsidU3juMvjucaiuYqnPwXgusLbdwPa+EQbOEGbtImlOwulfoRbeUOZ94Sat0XaeEdaOUxcPBT + ff5cfPxVcO1Sa+VPYuNKWuBGV95IV99OXORSX+hUX+dVXeRUXuNZYeRWX+RRXOJPXuVNYu1AWugtS9wj + QtYwTd1JYedRZuZSZ+VPY9xLYdVMZtRaeeBulfVlle5eledcmeVfoehxtfhvs/RoqutwsvFur+8AAGqV + 72mQ4pS19ajK/Xmm7FSJ41SH8Ux77kp141V94liC4mKN6lN+5E9751SA9kh28kd59FCL/DZ57B1m3Bxq + 2yBu2SRt0ihryz560nan7cvt/I6y9DRwzBVlzRxy5Bht5Blm3iFm3SBm3hxo4xZn5BRo5hJr4w1q3Ahq + 2Ahz3A1/5BqT8hCJ6ARx1wtq2BNp3hJl3hNk4RZp5Rhq5xlp5hhm5Blo5hlp5hNk3hZn3Cd35zmG8jyI + 8DiG6DWR4zmq5Gbj/G/w/DS02SCd0lHL9Gno/FvZ/Tqo6S6L2z+R7UCO8S+I6x2J6iqa/CCG7wxs3A5q + 4Adl2Qh02Syh9CmU9Qpm4RNo4iBw5xtm3x1i4DRs7FV9+16A+Vl67Ft97Ft88FV1709u60dk5UNd4UVb + 40xd6FNf7Fdh7VZe62Bl81xk8lRf7lBf70RZ6zFL4ShE2zVR4Uxk609l6VFm6FNo6FVr505o3ktq3Vd8 + 6WKP9WSY91yX8ViY7F6h8GOp9Wev+Gy1+2Su8gAAaJXzcZvygKTrosb7jLv4YJXkUoHjUnrvUXnwTnvr + SHjoRnroRHnmTX7vTn3zR3TtUX34RHjzLmrjK3LpJHPpG2/kI3jpGG3bE2PPTJPyfLn+SIXXI2zSF2fY + HmviImniLWzhN3HhMm7eK2zfJm7hJ3bpKILwIYbtE4fmCo7oD5zzFaH5B5DpAYLfDojqFojvDXfkC2vd + EWjfGGfhIWjkJWnlKGvlKW3jKm3hL3LhPXvoSobwTYvyQYnnOpfdTcPqbfL9X+b+JKzTMrvjXeH6auj/ + TcL3MZXjOovjSI/xQontM4bnIYbiN5/7K4vtEGvSFG7bC2vWE4ThL6z8GY3sAWbaFHHnGXHjG23jHWji + MnDsUX73XYL0XX7oYILlXoXqXIbvXYXxWn7vVnjsVXTqVW/oTmPgSVnYVGDiU1/kU1/nU2LsS1/uPVXp + L0vkKEjjL03jQFjoTmHvS1/rS2DpUWntS2blRWbfUXnrYI76ZJj9Xpj3VpXtUpXnVpzpX6fxZa/4ZrD3 + AABklPF1oflnjduApeqUwPt8rO1XgNRRdNtTfOpIeuxHfe1BeeNHfeVTgutRfehQdupUevNCbO4dT9YY + Vt4hau4WZuMSZdkhddw/kOZltP4sfdwTY8ckcd8rc+o0c+o+c+hNeutWf+xSfOhMe+dJfeVTj/FaovtM + pfcxnuwWmuYHnOkEnOgCn+sEoPAInvMQnPYTkfEKd94RaNklbOAva+E/cupLeu9Ofu9OfOlOeuRYgOhn + jfRnlfZRjuRIm9dh0ut29vtT2fomsNZH1PJn8PtTz/cznuUzi9tIjeRPi+dSjOhQle44j+FSqvtMmvMy + etg0fuInedwzmehBsvsbhd8GZtEWc+ISbtwXbuEWauIkbeZCee9YgfBeguhmh+Zhg+JghOJoiulsjOxv + ju92k/R6k/Z1jPBtgulleeRZbdpSaN1RauZBX+IqTdgeRtkbRt0eQdcwR9pIXuxMYOxIXudKZOZHZeJM + beJhhvRmkPdhkPFjk+9jme5hnOxem+lcm+ZgoutnqvIAAGaX72+e9Hqi9nCX5XSh6Yq7+4Wx/GuV7lqE + 5U5630p630h95EuC6kuC7kh97kp38U519090/SpN3QszwR1N0zRs5EOE6mWq+WOs9Sl3yh5w0SZ04Dl9 + 60qB8liD9WCB8WB/715+7l9+71l56lh44XiW84uz/X+z+2at80mo8SOZ5Q+d6gOc6wCZ6QGZ7A+a9BuS + 8xZ24C5150p99VR5819891t38GF88WR+72B45muB7nyT/Hua+mqa7meu5oPn+nzx/UbE5T/E7Fzn+2Po + /jao4yuI3EmR61yT7GaT7nCb9muf9lSX5XS3/mie+FqI6liF7EZ65G+09W6+/T2I6i9y5C1y6iNt5B1r + 6Blp7SFr7jdw8Ex48l6E9GyK83eP9H2R83+R8n+R84CS84KU9IOV9YWW9YSY9oee/YKb/XKR+GCG9D5r + 4htPzRJN0hJR2xBI0hxI0CpR1zZc4EFn5Upw6FJ56l2D7mSL72iR8GmU7meV7GWX62GZ612a61ua61ib + 61Wa6gAAapnua5rucp3zcp7ybJ3tYpbkWo7ia5zyia/8ka33fJztXYjgSHrVQHrYQ37gSn/kT3vkU3Li + OFDEP1TIZn7scZT2Y5b1QILoGGbRIHHZMn3iPX/jTYHnWYLpX4HoX37nWXzpVHrsV3vzWXvzXXjofZHy + lqn8lq35jK73fa37Yaf6NpnwG5LuGJTyGY7yJo32Ooz8O3fwSG7tU2rsW2jsYmvwXmbrY2zuZW/uX2vk + aHfteYz7d4/za4/lfbbtovb9g+j6P7DSUMnzce38Sr7rJ4fYMXrdT4XqZ4/ub47uc5Dwa5DrVobadqb8 + ZIjtUG3bUGjaUGzfgan2d6bySXDcTGfkRGLoJ0zUI1HdF0/gF0vgIkrcNlTfTmboZXfycHntdXjod3rq + eHvreXzseHzsdXrpcnnlbnrkdIfudo/1aoz0Xoz0RoDsLHDfJXLjJXrvHnPoGmzfH27hKHXkOYLuS5D4 + V5n6Wpn2WZPuWpTsXJfsWpjsV5nuUJnvRZftPJPrM5HoLo7mAABql+xtmu9rme5smvBunvVjlO9Pg99F + d9RXgdp0luaCovCMrvmQs/iTve+ZxO2XxPGRvPeJrPl4lfNkfeZJYtgoS8gdTcgmZOIlcfArdu5Cg+xN + heVWg+VagudcgeZbgehUgOxOf/FNfvVNevRSdexngut8kvCFme6HnfCFnvZ1nPlOkPExh+0nfesbaN8h + YN44Zes+W+RIVN9KTdlPT91TU+JOTt9RUuNTVuNNVNtVYuJme/BmgeVrkeGXzPun8vt30uxYv9x34/ly + 3P80ldwlcdU7cuVUfetphuxtg+htguplgOdUedt0m/1ZeOxEXNlAVtRPZOKCo/xrkOZDWcxSWuBSWec+ + SdowQ9odOtsbOdorP908SuBMVuNYXeRhYuRmZeZpZuhqaOxtau5sau5qa+xnaeljauVgbuVngPFhhfNa + ivRJifEwfOMje+Iff+cZgOgah+4Tg+gUguUYguMfhuQnieYujOcyjec4kOk6keg3kekzkOorj+oijuoZ + jeoRjOoOi+kAAGuV7nSg9W6c7G6c7HKb9GmR8GKK6F+I5mCM6GmZ8XWh9oWp84ip8oWn6YKm4X6m43yk + 7n2g8nSQ7Wh8819x709m2TFRzRxJyyhh4ER/9k6D7lWE6FeA6Vh+6lqB6VqC6laB6lJ/61N+8VR99VF2 + 7VFz41Rz3Vl22Fx32Vx021Nx3EFx2yxq1x1a0BFExxtBzDdN3kFL3k9R4VNR4VBS4lFU6ExO5VBQ6lNT + 6k5S4ldh6Wd79GOD43Of3qfi/Z7m+XPJ3YHi9Iru/VKt5y171Dlz4kx18GB+8HCG7G+B522A62Z/7FV3 + 4neY/Vpw8Elb40BT2lNp7IGm/V2I3DxXyVJa4Fpb6Fha6z5I4CY72yg83z9L6VBY71Vd6VJY4FFW31JW + 41RX5VZZ6Flb6lpc6lpd6Vld5ldf41Zm4mN7816D9FWI9UqK9TJ/6CF74R+A5hd/5Q574g+B5hGE6Q6D + 5wqC4wqC4g6E5RSI6RaI5xWF5RWG5hSG5hCG5g2I6AmK6gaL6wWM7AAAapLpdZ/yc6DrcZ/od53tdpbs + eJjwh6n7eaX3WI3nU4fnT3vkUHrkTnriRnPdRnTfTnvpS27pMknOMj3JTVHVcXXpi5b9Y3nkLE69SHHf + WoPvWIHtV33sWXvrXX/rX4DqX3/oWXvkWXroXn3wVnboUHPgVnjiYoXobo7wc470b4/zYJH1SorzOXjt + LGLjNFvkSl/sSFLfTlHaTlHZTVTdT1XjRk3gSE7jTlDkTU/dVV7jYnfrY4nde7Hgq+z9our5hdXmmfP8 + hN76N4bKL3LVQnXqT3XvY3/ucITobYLna4HsYX7rUXXfdJT9V2bpSlbfQFPUUm3nfqX9VYHaOVjIUF/e + UFrgT1niOkjXJj3SJDzUNkbeSFXpUF3mTlveTFnfTVnjTFjjS1fiTlfjUVnlUVrjUFriUF3fVWfmY333 + XoL1VIbzS4n0NX/oJHfhIXvmInzoInroHnvoGHzoFn7qE4HrEoHrEYPrE4TtEYTqEILnE4PoF4brG4vu + GovtFYjrEofqEIfqAAB8pe6CrfZ+rfRwnuSFqu6evvt/pvZTg+pPgehShupPgeZVgexkjvdtlfhii+pZ + heJhju9kj/pHbecjQc8oPdwqOtYqOMJseeyXp/5+lOlriO5jhe1ri/FpiOxxj/dohfJgfetgf+9aeupa + fOdjhOttj+uMrPqOrvuVsfqgtf2Ys/94sP9Qnv4zh/YgbeU+det1kP1pdOxhZdxYWNBnZuJobOxaautM + XuJgY+xybfNkaeVjed91oOKOzuey/P6g7Pii6vqx9P18uu82ddIycOE6cehId+thg+1whud0i/BtifVf + gehnjeiBpP5kfPFPY91Tb9d1lfGKqf5ifOZVZ95tevJibe1SWuJPW+JKX+BAVNs3RtlIVOpeafRUYOFT + YtxicehjdOxYaONWZN9icOtndfFea+tTYeNSYuhXbvBXd/BVfu9VifNOi/E9f+ouc+U4e+1Hifcwducg + bd40gvM9ivs6hvYrd+Qwe+c6iPIxhesid9wofN8sf+IZac8gcdoxhvE2jvkAAH6q8Iay+HSg54u29aTJ + /n6i51WA2kR34FWI8WOT9U972muR72mM5mKD2mqL3mCH022W5m2W9zxj1yZL0EJj9Ehk9DlT2UZg1WF+ + 15Cq84yh8W+E13iN53uR9G2A8Flq5FVl411q6F5s5Gd453aJ7nyU7I6o8oqk65au8J+y842l61uM4zN4 + 4CFr4Rhe3jxr6W+B+2lt7WFj3F1d0nFz5HZ/715y4UJZzFxi4Xdy9mlu6mmA54uz86je9bH1+qXz+avz + /ank/XOm5T5u0jpq4z9y6Dxv21J63niV8n6Y+WyH8WyM7Xmf8X2d92t+8Vpp4WJ53ICe9X6W+Fps31tr + 42p38ltn6FZj51dn6VJq5lt29EVb5zlL2l1u8VBh2F9v3XSC63WE7XKD7mV44WZ55HiL+XSF+1tp50xZ + 4U5d6E5i6E9o6lV08E5z7jhe3x1FzCZQ1EBu6iVW0xtQzzNq6Dps6jBg3ShX0ER06UN56S1q1iZlzz17 + 4k6L8j155j5+7Dt/7iVs3AAAirTykLn3kbbzmr33k7b3a5LjUHzbWInwap7/a5v4YIvicpXdl7Lytcr0 + t8v0o7/plLPnhKP0RGLOID64PFzbRWbtME/dNljdSnPmXoTopsT/epLZc4jhfJH4X3HoRlXYTFfhTVbf + Q03NUl3RdYHnjpvynqz2j53ql6bzn674iqL2Qm7eH1rdHV/mElLZLFzhZoD/fIr/dID3YGvjbHbqeoT2 + ZHLpRlPQXl7jdnD1ZW/haYnim8z7t/b9pfL6ofz9n/f+iMv5X5LbRm7ZSGzqQnDnPHLcVYXleZ73gpz9 + dor1d47vhqb1k6/6g5P2bXnfcIbZlbH4fJbuWW/YaHvrfo/9ZHbtOU7SN1HVQ2bkSmzuPVvoSWPuYXr4 + XHHnYm/idn7ufITycHrmYXDYZXjec4fxboHyXW3oU1/kTlnkR1XeTVzjYHP2ZXz9TmjuKEXPKknVR2j0 + LlHcKU/ZQ2nyRWbvOFTcNE7SU3HwZYn+SHPkLFnIQW/dWIX0QG7gPXDiR4LzR4X1AAB/rOl/qOSkxPmT + s+5xl+VrmfJVh+dLgOJZjPBdi+5qj+N0kMm2yPHs8/3q8f3m9/7d9P6xxPiXqv1shN89WL49VtI5Udwl + QtIwVd44W9dngeWHmvtrfehgceVmdPJZZOtETd1JUORSWudRWttkbN6Ah+qgpf6Rk/aLjvh/hvdZZ+g5 + UugmSesZReQWRt8lT987VuBDVt1IV+JRWuZlavJycvloZfFVTt1fUuRlW+VUZMxmlduX3Pud9/mK8vqL + +vt44fdXpNxJgNZJcOZJbO4/beM9c91KettcgN50i++EkvuFlfeLpfOhuPyHkfJ1feF6i+Gmv/mCmelX + bNhYaeBYaOVMYOYyS9glRNE0WeQmStkkRNtEXvNHYeZJX91VX99vcPF8fvpxdu9tdup3gvN0gPRmcetg + aulkbPRZYOtFTtc9SdFIWt5OaOpAYOgqT9soTN4xU+cqSt4pRto+WelGWetGVedDUd5WZu1dc/JXc+tN + a99LbOBIaeAzVtA5YdtBceo8cOcAAF+Y42ue5KfK+qLB+nSd6l+R6kyA2FSG2GiR6GKB2nuT16y84dvi + 9ezr/ejn/eDt++H3/K/A9Gp6zIqe4r7U+pir52t64XKF5m2G1jZLuDk+xWlr/DVC0yg7yTpN2D9P205S + 61RR9UtM60ZP4ztN1E1n3mN/9TxP1SIvxycs1iMl2hol1RIjzgkdzAkd0g8e1REW0RcZ1iEg3Csq3DE0 + 0zU60ENE1EZF1kxK3UZO1ztezGSl5Yjo/W/p+3Dy/Hjy/VW95jB8xjVv1ERy70Bq7T1u5D1x2kJv0lF2 + 12N+42+D63KJ6Hmb6Ymk/Fph2Fpc22Ru45Ch/Gl55kxa3kpU5jQ+3yo33SQ53h883xw+4Ro94Rw64CE5 + 2ixA0z5N1ExV2lJX3Fda3V1g4l1g4l1g4mJk52Nl7Vxf6lJV5FNX50pR4DhF1CxC0yFB1RE81Qw93As/ + 3gs+2BhG2xY7zyI/0zJF20lX60xY6lNh7Exe4E5k4Exk30li3lJr60pl6kdn6j5l5zVg4QAAaJnZirPs + zOL70N35qL7upsT1udb5zeT50+f80+P54+/66/X28Pbz7u376uv83/H73PT+gZXNVWSzkqLh2+3/3+v6 + q7DiqbDY3+z/qr7yO1m8U3/zN3foMHzrKXToElPLGUXHKkbSIkLJJVbTPYPsNpLtLIrtG2ndJGLnJUjo + CyjNADO+FGPbJW3iMGXjO17wIzfeEiHOFijXCinNCkHOJmriJWzgL3PiL23lCkS9D1K1V7Hnd+38W+r6 + a/P8guv4SJvPNXTJRnjlQXHrNmXdSHbjZ5PtgaX1kK/8hKP2ZIXhZIveg7b5Yo/ZX3nTeIrni6TqpsT8 + c4/fQFi+TF7bU2HyPU7mLUfeHz/bIELkI0XoIDreLUHgSlfpS1XaY3DhfIvrf4zpgYvoho7tgIjxZ2/k + U1vSVV7UdH7meobsf43vgpb4WnbmJUzJDUHHIF7mNXr1LnjoNXjmRH3iV4XibY30aoTzUWnYSmTOborn + g6HxfJnpeZTpgJv2fZj7YoHsTHLZUXnfAACBsO6QuO7M4/na5/2owOuXt+Wuze3A2vHU6vnp+f/q9/vr + 9+7w+fLu8/zp7vzd7Pi80+utvOqttvO2v+vS2+/p7v7l5fzg4vji7P3G3f1ah89kovo4gOkeauErcPYu + Z/QlTuEgP9QjTdkpaeMhct0cgOAfg+8ldPMuZ/QeRuUaPNomWuckaOcqa+IuaOAiWuIqYPQnVusELNAc + R+csZPUpY+gnXeUwaOcobe8QW9sNbM9Dv+5k9f1P6/tw9f2I4PlSkNBBcc9KdOFCcuBRguprlPOIpvWQ + p+6OoueTq/CIqveCrfCNw/xmmeFqjOVrheGWs/eiwvp1lN9ogd9kdepQXepMXe5CXOksS94eQNohQ94x + TOVBVOVXZOhveeyAi/GAjOl+iOOGjOmJjfB7f/Jnbe5ZYOJXYNx0f+WJlfOeqf6LmPFrfuo/WdQgRs8q + XOczdOslcd0sdNthmPOErv9/nvpnf+hXb9hmf+J0juN8luCFm+WEmOl/ku12iu9ofOpbc91ZddwAAJrF + /ISq3ajD6r7W+ZCx52OO0F2K0GaS13md3I2m3p2z4sHW99nq/9Ld/8bS8tDe89vp+Ovy/c7P6Le20ODf + 6PHw/N7d9+bs/sjW9qS/6pnE+mGV7hdJyQQwyhU41yI+3yA53iE+4ztt/DR78gA+ugJRxBZq6BhV7AAv + 0gAiwStR7lB4/xg71AAUvQEhzgAhywgz2RQ54Qok0Ehp/z1u/gY0xwAywAA5vwBSzhmI7R2l7DTM7Ff3 + /Vj0+3Tw/H7M+liM2kZy10Nu2j9v1HGg8pGz/X2T5niF13+I2XqI1I6l5KfK/pfC/IKu+mmL5kJevneX + 5n6f6HeV5Juz/XaF6kFL1FFf6Etj5jtZ4R4/0x8/0ztV5URa31dm4pik/ouX8l1pzVRcwl1h0V1g21BT + 2lNX4lZe60xV3ENLx29365qd/WVm1FJZ009e4jZP4B1E3AU7zBFU0kSC82SP+ll25lNl2FJf01Zm3I2g + /niO6FNoxlVmxVpozl9q2Vhi2lxp4niF+ZSk/gAAh6zgj7Dgss73xuL+qc38e6jxXI3lVIXlVYHoUnfi + V3ngYYPibo3khaDspLv3us72ztr04OX25+Xy5+Hr8+309fL75+n54uv7w9P3p8HusND/U3vZG0jBHVHX + IFLcIU7ZFTzSDjXTEUfeDFvlHn/zP6X/RJ//MXX+BDrTBCzIIEvoOm38IFHnEDLUHDbhFi/dECnVGCzZ + EB7JGDPXHlfvJXX2K4z1GIPoBIHaFanpO9v5UfP7VfL6Y+/6gO7/ecH9VojoRHLlSHfrPG7RU4HZgaT1 + nbX5nK32qbX+rbj1kZ/ilK3wjbP6T3fMb5HrgZ/0udr9mbrug6DloLX7eobpTFHUV2HlTmThPVnfIkDV + Iz/aP1nrRlvlSFbWYGvfeonshZjumKb0oaz9hpD2YGjiUlneU17nVF/kT1nSeYL0n6P9aW7YTVfRRlzd + K1DaE0fXHFfmOHX5PnDsVHLpU2TZUlvVWWDcVmTeW3DidY7wj6j0nLP2mKn6fIv1Y3DpWmjiYXHla33p + AABunNuGsu2YvfGfw/Kfxfl+p/JOetpIduFUhPJQgu5Uh/ZThfVJeeRKeddVfcx2l9bC2Pbm8v3s8v3t + 6/fp4/Ps6Pnl6Pvd4/jq9v+3y/hMZ8osWtQlduohfOYad+EwjfczdPMXP9cHM8wEQNAVYuAihegrh+of + YugBJ8QeL9ohK9URNModWt0wb+cuZdwhZOEoffY3ffkZRNcIKsgEKc8GLtQGL8wORdEVb+AfoO850fVT + 9Pls/P115vlYruY8edE9bN46aeg/bOo9a9NznvCEqPdykOZog9pthNl9kd6esuu30/x5ofY4YMZBXc5s + gfSDmPxnfNh5iuWKlfZub+pZU+lYWe9OXOo9UugnPuQhOuI3T+5PZPhWZO5HU9FQYNJxgut/jvJrd+BU + XdJRV9pRV+FQWeVXYOhQW9RxfeySnvx+jetTbdg8ZdYgXtUteuo7hvgNSdcfStQ+V9lYZOVqcO5nbe1P + XdxKX9ZZc910ke19mPJlfd9PZNNSZeFXa+dVbOFWb+IAAHms6aTS/6fN/Y2u4Ja26aXI/I2x9GqN4lZ/ + 3k174Ut55k577FmE6m6Y65K07rrT89/u+PD0+/Du+e3s9Ojr8eXy9uL4/NHp/aK+7VB9ySNpyQxn0gVv + 2gRs1gVt1CeP9CeB8wRLygpPzyx99S+K9xF43w1w3B5y7BZb5Ak50Qo00RVN1w9W0gVUzwJMyAFVzCGK + 8ESX/g1D3AAlxhI51SlZ6RFK0BBg1TSe+hSV1SW512T6/YX7/JPm9mCf1liP2F6Q5lmI7VqG71R/32uR + 4n+f74Cc7oGb54Ob5IKa4J6267XO/HCJ8Etl0FNwzpCq94ed+neH8HF9619m3VJX2ldc6lVh80Za7zJK + 5yU+5CM+4S1F4DxU41Jo6F9z5I6d9pum+X+K5nB83W9542x17Fxl5k9Z21Ba1lJczHuH8p6s/ZWp/2WC + 7jZd0xtOzy9r6jt99B9h2y9p3Ud05GaG9nqP/HSC8Wd04Wdx2pqm9KS0/36Q6XGD23OF4XCF6mV65F5z + 32F24gAAhLPzirbwj7X0krf0lLrwj7bphKzvha37fqj6ZpHqXIbmXYPmYYPbdpTWtc3s5vb+5Ov17u36 + +PP/8fL/6PL/1Oj/o8L5Xn/XMFPCJlfOM3vuHW/oHnDpJXTwI23vKW7yGlvkCEbUF1bhKG3sJnDqGWjm + H3HtJ3X0K3P5GFbmFE3jLmbsNnDwMHLxKHT0HWvtIGnmI1rnCyjXFSfcKUPnOmTuF1vZEnLfDYjbC5rW + OdfuYf39b+n6cbvtXJXeZp7uaqDxZJfyYJD0UHzfRW3NWXrdfJjzj6f4kKf1h6HpiqbnmrL+bHzoTV/M + aYjfoML9gpvzX3DeVGDZU13eUl/kTV/mQljmNE/lJkTjHz7iIj7iJUHdL0ncSmPob4b4hpXxhIzleoLl + e4XrgIrydoD0YmzwVV/jU1zcVFzXaHLqbnzyWGzkP1nYLEzUHkPWEj3WFkzaKmvlM3DlSHvqVHzwVHDo + UWTaYm7gfYTsiJHtgYzqeYnqfpLugZfydI3xYXroVW7gUmvfAABqleVrlupvnPNxoPZwnutllN1WiN5S + hOVgkOpyn+53ofCHq/iOrfGWsOG5zvLg7/7n8PrX3PK9weuTmt1nc81HWcsuR88eO88ZONYcPt4cQNwQ + NdAXPNgeP94dO9wcNtwWKtYcL9siOOISMdUONdIRQtYiWucgXOUoZOwnXOojVOMfT94hUeAaTt4US90Z + TtwVQtIQKs0bHNkoIeUiJNgNIsYAKr4xhvQQheAOnOE42/pU9fta1/Y4heAwa9Qvatkxad4zauI7cec9 + cd9KeuNJcOBPb+Rad+hdeuFig9t6n+ePr/taduNKZtOAo/RylPFGYMtBVMpSYuJTYehJWuNEWeU0T94f + QNMgQdwfQuQjQ+ojQOQkPtsrRdc5UdpJWNtRW9hQWtlMWd5LV+JMWOdOWelRWetRWetTW+xTXe5LV+k7 + TN8uRdsoRd4jROAZP98TQdoTRtYOQc8TPc4gQtI1UN5JXOhSYupTYeZQYeFMYdxKY9tJZt5JaeNLbOtK + be1FZ+1AY+oAAGyX7XCe+GKX+FyS9W2h92+g7lSI4EZ63VSE32uU43mf8YKm/I6v95m29J2266u/6Mrb + +cLO8aSv4YKN2FppzjRIxB02xx472SJA5R474ydB6SQ84yc+6CA44iM54ys85yw66Cs55yg45R433xg8 + 3CJU6jFr+h1g5Rti4h9i4xxg4Rth3h5k4Rlf5BNX5R1b6yRX6xo64R4l5Rsb3yMp3xYt0x9T6ymB/gVj + yCGf3VPw/lnw/Ea58i9z4Tlt6jty7jxz7z117j947T135UF55kV160Vw7Ulz7FF87VaH5mOa6W+l+U1/ + 5WSQ93ae+1Bx4kJc3E5j7VBi9EJU6zxT5y9K3SFB1idM4htC3hY+4Bg/4yBC5yRD5SdF4SlE2zNJ3j5R + 5ERX6kdZ7EhY60lY7EtZ8UpY80hW9ENQ7ztK6zNE6Cs/5SI74CA+4SJD5R5B5Rk/4RlE4h5H5SJG5SVE + 4ShD4C9K4jlR5j5W6T9a6EFf6kFk7Dxk6jVg5zBc5itZ5ylX6CZV5gAAZpPpaJnxZZ75ZJ33Z5nkbZfc + cZzocqH4e6X8faL2Z47uVYPlTnvjUHvlVHrfYX3WaoDMlKfbytn54PD/1Ob/tsr8iZ7tTWLOKD++KkTQ + KEXgIT/hI0TqGTrgHT7gHTzdHz3cIDzaGjjWGDvYDzzVGVLiLG/3HGjmG2jlGmbjGGPfIGTeHFvWIFvh + HljoGlHlIFLpEjbcEyTfHCrlHDDeASbEKWr4D2jmAFzBJ63kXPH8UdrzM5jbMGnTQm3lQm/jPm7gPG/d + O3HbO3XYPXfaQHfkPHHlOG/gOnTdO33WTZffWqXwN3zZWJT/MF3ZLU7WP1rrMUjjK0DiLELmLEXmJ0bh + HkLbGkTbGEXeGEXgGEXhG0PhHULgIELcIEDXIUHZIUHbI0HaK0bdMUnfMUjeMEXcL0bfMUjjLUTjIjvd + IDzeI0HkHz/gHUDeIkXjIkXiH0PhIUfnHEDgHD/fI0XjKEjmJ0nkJEffI0fcIknbIUrbIEzbIlDcIVLd + HlHdHVLfIlflKFzrAABqnPBqnvBpn/BlmuZ9qOubv/eLs/ZpluxXhORRf+VQhOxCfeZMifVHgPNMe+5d + f+RpgNCisuTc5/rm7/bd5/Hi7Pno8//U3/6XpORDVb4iPcQlReAoS+wbP+IZQd4ZQNwYPdkcPtkfQN4c + PuESO9sWR+MnX/QrafQnaO8iYOolYOsmXekmWugnWe8kU/MlUvQgS+4RMd8UJuEdK+IaLdQTNNBAfPsP + R74AT7BEt+p96f1evek/h8xKetxXgOtchvBfivFei/Fai+tXjOVXkedVj+xPh+1Hg+ZEhN9HjtlToNxa + pelMk+g9eeQUQsAdQNArSeImQuImP+clPucfPOMfQeQhSOUcR+IcSuQaSuUcSeUdSOQgSOMiR+AgRt0f + SN8cR+AdRd0iRdwmRd4pRd4pRN0oRd4pR+EjRd8fQ90gRt8hSOIeRt8dQ9wgRN4iRt4hRd4hRuEfReEf + RuIhSeIhSeIgSeEhS+EjTeEnU+QjUeIgT90eT9wfUd0jWOIjWOEgVt8qYekAAGib8Gud7HOk64Gu8JW7 + /I6w92SM4kx73kuB50iE60OE7T+D7UaI8zx35VqK85Cv/cDS/N/o/ers+Onp6+/t7e7s+ODg+ebp/Ovy + /7fF+EVeyyZEzyA/1yZI5CBF4xk/3B1B3SBA3iA84iM96hs45RU44BQ73BZC2RZD1BU/0hU90gs0zg03 + 1Q802A8w2RU23REw1RIn0R0m2B0jzxokvlxz8WKR/yNlzTeR3ILh+5zu/H6962ac4mqc9VqK7liH7FuH + 7FiG6FmK6WGW62qh8FyT6FeM51iP5lON3Wmn6I/R/JTR+361/0x64zpk4DBW3yNH2CBA2iJB3yRE5CRH + 5yBG5R5G4x1I4xtH4hlG4RpG4R1G4iBI4yJI4SFH4BxJ3hpK3h1J4CFH4SNF4SZF4CZF4iVE4SJE3iBI + 3x9J3xxK3BxJ2x5J3CBI3iNH3iRG3yRG3yNG4SJI4iBJ4SBK4R9M4h9N4yBO4iFM4iJP4yFP4CRQ4SRS + 4SJR3SdY4SRY3iBX2jBo6gAAZZbtaprrgavuncT7lrv9bpXsVYHjT4DrSYLrSIXrSInvR4buRoHoVIfp + YIreb4rNrrzm5Or76unz6uXx8uz77Of85OD85uj76PD42un9o7z/UXDlID7IIkHYI0XhGj7cJEbjJ0Tj + ITriIjnqGzXlGjriGkLeGkfWHk7WI1DaIEzYF0bYGEbcH0fgIkTdGznQEy7EIDTLOkTgSlHlY27pqcT+ + SoHVK3nKZcbvhe3+kOb8gcDqZqHiY6D4T4ntUIbtVIbvU4PrYpPyb6P1ZpnsV4nhW4zmYZPpWIvccqbl + qN79ncz6ZYrjPmHMR27lSnHxSXHyQ2rxNl3oJ1DeH0nZHUjZH0reIk3jI07lI0zmI0rmIkjkIkbkIkfk + I0jkHknjHErhHkjiIEbkIkTlJETlJEPlI0TlIUXiIEjhH0nfHkrcHkrdHkneIEffJEbhJkTiJUXjI0bi + IkfiIUnhIUriH0vjHk3jH03lIE3lI03mIkrjI0vjJU/iI1DfJVbfI1bcIVvbN3HvAABllO9xnu2Pt/Oa + vvR7pe9gjupdjOlZiOVXh+NZh+BNftpViOlhlPV0oftuleR7mNXC1PXj7P3m6fjs6fnt5/nn4/jl5Prl + 6vfg6vTJ3PiLqO9mh/QzU9khQdcoS+UkSeUiRuEkRuAiQuEePOIWOt0lU+w0bfkvdPApcucqc+oncOkk + c+oebeQgZt0wbONBeOpMfe1NdPBLZOdVaOWMov+IrfktbLZSqd6L8vyN9veZ7vqRyvJgldxIgd1GfuVJ + f+ZIe+JMe+JnlPdxo/xWi99ViORekPNdkfBimPaFvf+i2vx+sPpYfuVFatw0WtUyWdg3Yd1DcOpRgPpV + g/pGdvAwX+AiUNUhTdciS9ojSt4kSOAlSOMlR+QlRuQlRuQiSOQhSeQiSOQiRuUiReYkROckROYhROUh + ReQgR+QgSOMgSeIhSeEhR+IhR+MlRuMmReQmRuMkR+MkSOMiSuIhTOIfTeIfTuQgTuYgTuciTuggSeUj + S+UlUeYjUeIiVuAeWdsiY948gPgAAGmZ7nSi7KbM+KfO+Hqp7GSX6Wya55e87rvZ+5668XGS1mSN2myc + 73ms/2ub7IGo75az58fY9+jx/ert9Ozs7+3u8eTo8ePp8+31/NDg+2N70F978D9a6SVB3SNC4Rs93B5A + 2SZI3SJF3RpA2xRD2CNf6yx29CB36Bh44hd56Q9v4Bdq0yxz1kqJ6Ged9nep/nGf+05z4D5a01py7IWk + +ytbsyBtumHG9G7q/G3t9X/i/G+x602D0kp72E584FWB5FyG5maQ8HSf+nWm+Wec8FeO7UyE7Dp13kGA + 5mms/Was9D192D925DJg20xy805x8Upx7E157lWE9luN91yQ+1yO/VOD9EBt6DRe4SZM2CRF1ydH3StK + 4SxK4ylI4ydI5CRI5CRI4yVH4yRG4yVG4iRG4iJH4SJH4iJH4yJH5CNH4yRH4yRH4iRH4SZG4SdH4CZH + 4CZI3yVK3iJM3iJN3iBP3x9P4CFP4yBO5CNP6CBK5CBL4yRT5iFV4x5a3hlc2B5p3j2N/AAAVojqX47l + rtL6r877cJjqRXHSVnnGpb7l4vT90+T+nbTxWHnHRm7PQm/fQW3iWX/wVXLZdorgxNL61uD7zdX45+79 + 7vT+5uv/6+7/s73xSl+4W3bvOFXnJkPlHkHnGkDkI0rkJk3gIUfcHETcE0bbGl7qIHTzGHnoE3ndHoDe + LIHbVpbreav5h7T9i7j+eKr7TYPrKVbDN1W1hZ/5fZz/G1CvTKndfO/8hfT8m/z9idf2XZflWIbjZ5Dv + dJv8eaD/c5z/ZpT0WIfpT3/kS33kS4HsOnfgLXTUSpjrXq75QYzpMnXfMGjlHErTIUjZJ0zcLVPeMFrd + MFzcMF7cM2LgNWPkPWrpS3fyT3z7THjyNmDgKFDWKE7aKErfK0zmJkrjIkngI0riJErjJUnkJErlI0rj + IknjIUjiJEnkI0njJEniJEnhJUnhJknhJkriJ0riKEriKErhJkvhJU3gJE/gI0/iIlDjIU/mIVDlIFHk + IVPlIlTlIVXmI1rmIFzfGlzVKHTgR5b7AABDdOFKddegvfemvvhigd9DZdZzkOTB1fbn+P7D0/hzhtdG + YMVMa+UkRtUeQdkxUukqR9YnQcRQaNZSaclddMqYrPSbq+mAjs2st+y7yPRNYbpnf+w3UdcmRd0eRuQa + R+YdSeEgSdolStwlSNsbR9kbV+YkcPIofu8rgOFGkeJysfWIu/6Br/V7q+1upOdKheAqat4zatRfhc6j + yPxJduInb9Ja1vVp9fCE6uyj4vh6redUgtxhi+lnkOhmjupchOdMeeBEdNdGdtxJd+dGduo7dOA5fNtS + o+tqw/tRpfAyed4+efA1YukmTd8jSuQhSuQhSt4hTNshTNshS9shSdwiSN0hSdsgStcqVtlFc+pOfvRG + de8zX+AfR9QnTd8lT94hTtslT98lT+EkTeIiSuQjSuUjSuQjS+IlS+EkTN8kS90jS9skSt0mSt0nTN8o + TeMpTOQpS+IoTOAnTt8mUeAmUOMlUeUiUeUhU+QdUuAkXOUlW+ggV+UmX+kiXOAfXtU8f+RTmvYAAFSA + 60941oyt8K7M/mOH2ERv0WyQ55Ow7Juz8G2C4TlQxUBd3Ext9C1S5R9H3yBI4CJK3yVM3CFH0yRL0S5W + 1zNY2CxPySpNwVZ03py0/qW1/4+f/kBW0SdF0yRL4h9J5R1G3yZL3ytN3ydG2ChK2R9M1hVLzidj2kuK + 9l+Y/WSa80uC2UiC2WCd62Cf6lSO6FWI82KS9Yu4/3Go+ABLsB6N5zvd/D7q9XDq+I3W9W2p5liW516X + 62CW42mb6W6e726a7mWP6VqG40995UqA6C9z0EWU6HbQ/2C/8TaM3zuB5D517EBm8ChM3iNN4SBO4SJP + 4CVQ4CVR4SVS4idT5ClS5itU6CdS5BxH1iBM1S5b4ENx9FF//UVw8iZS1yJO1iZS3SVR3ydS4ydQ5SRN + 5SJJ5CNK5idP5yZN5CVN4SVN4CRM3iRM3yVN4CdO4ipO4ypP5ClP5ClQ4ShT4CdU4SVV5SRW5iNX5iJX + 5iBZ4iVg5iRf6SNc6Cdi6iNh4iZo3UOK61eg+QAAUIPoRnfUapjgnsn8cJ/oQXDSNF7KK07ILU3RLUvT + KEjSL1LfIEfVIUrYKVLiIUvaJE/fIkzgFUDWHEjhIEvmFj/ZIkjdKk7dHT3GOVTQlKr+bIPmK0vCHUPM + IU3eHUziGkbaIEnaKVDgJUvaHEHOJk7VNWDfUX/1YY/6RXLfH0y3OmbHeqfve7D7U4zuRXbiNV3UPmTT + gKj9T4vmMozUZdz7VOr6TuDsl/P5p9LteKDcWovdXpHndKj1cqbtfK3vf6zzdZ3wXYjlSHvdO3jYQ47j + Ybf0bsj8QpvjKHbMRYXqRnjuQGXtJ0rZJVHgIVPgI1TfJVPgJlTgJlXiKFbjK1blKlXnKVPpK1XqKVLl + I07cJVPZPG3qUYL3SnzsMGDaJFDVJU/ZJ1DeLFPkKlHlJUvjJUrjJ03lKE7kJ07hJ07gJk7fJk7eJ0/g + KE/hKVDiKVLjKFTiKFbhKVjgKFrgJVnjJFvlI1vkIlzlIFzhImDjIl/kIV7jI2LkIGHcKm/dSJLuVaL2 + AABEfeVGf+FPhNtuoO2It/9lku8zW9YtT+AwVOokTeMkT+YlUOcYRdskUeUfTN8dSt0hTeAkUeYeTeIX + R9seTt8rWeQiT9MXQL4yWc5ghvZbf/I3XdcjUNMcTtoaTNwbStsdStkiTtweS9oSQdAjUtxJd/pPfPNN + d+VPeeBHcthWguOCr/yFs/lFfNgVVcgOS8YJRMUrY+RCdfMMU7M9rt50+Px09/uE8/rD/f2xy+J3lNds + mPNwnvtxm/Z2oPF9qu54p+9gjedHeNtAfN9PlfFdrfxpvv5ervVCieE7fNlHgedOffI9Z+snUN0pWOQl + V+MmWOIoWuMoWuMpWeMqWeQpV+QrV+ksV+wkTuMlUeIqV+MeTc4hVM1Fe+xhlv5Rg/U3ZOUpVNomUdks + VeIrU+UoT+MnTuMrUucoUeQnUeImUeEmUN8mUN8nUeAoUuIpU+QpVuMpWeMnWuEoXOAnXuEmXuMkXuUj + YOQjYOYhYeMjZOMiY+MjY+QkZuQiZNwxeOJSnfRaqfcAAEZ951CG7kl84EZ313Og7Hmh71J14S9O2yJD + 2CVL2yNK3SlR5idO5ihO6iBG4yZM6iBH5BlB2yxU6S1V4hY/xRY+vi5Vyk902WiN8FuC8CJLzhdD0SFQ + 4yNS5SBM3CNK1ylN1ydM1CBJ0CVV2j5x70p770Bv11SA3Hem832w/X21/2uq9jqA1hxmzSBu4g9l2w1q + 2T2T/yRu6gFiwDTN7UDk8Tu/03zZ8ML6/ZGz21B2ykp64Up24VF23GmP54Gs9Hmo81yN6jZt0Tt93lun + /Uqa6E+d6FKZ60mE4Ut/5Ed54VB/8jpp6yhX3ydY4ilb5ihc4iRY2iNW2CRW2SVW3Spa5CtZ5idU4ShW + 4ChZ3Sxe3TNm3Ud98FeL/DVp20R15lWC+Dxp5ipW2CxY3i5Y4ylR4StT5S1V5ydT4ydS4CdT4CdT3iZT + 3idU3yhV3yhV4ChX4Cdb4idc4Cdf3yhi4Shj5CZj5SNj5CJi4yNk4iVo4iRm4iZn5CRm4CFk2Dd+5Fik + +Fqp9QAAUYHpUH/oU4LrU4LlU4DTYYvWbJLwZYj3V3bnSWTaOFTOKkfIK0jQLUvbK0vgJkbgJETdKEjd + JUTUK0jRQVzbWXLobYb3cor4VGzdKUXDKErVKU/iJ0/jJEzfKU3cL1HZMlHULEzKM1jSSnfsTn/rQ3jY + WpDkgLn/hsL/a7PyR5feKoTWH4HaJYPnJYDqGoHjJ57vN6b2CmvNG5fmN+v+Es/lD5fEcszspuT9TYDG + JFW0R3nlTXvnWoPlcpzyeKfwbZ7oXI/lR37cXaDzXaf2RpTfUJvmUZXpRX7fSH3iT4DnUYDyPWrpKlfe + KljkKFnkI1XYH1PPI1nRKF3WJVfWI1LYI1LXLF3gSnv2U4f3VYr5V475SH3rN2jeQ3LqPm3iUoHxV4T4 + N2PfK1bXKFHYKFHbL1nnJE3dJ1LgJ1PgKFXfKFffKVjgK1nhK1nhKFnhJ1ziKF7iJ1/fJmHeKGPfKGXk + J2TlJWTkImHgI2TfJmjgJ2niKGnkJWXeI2bXP4XoXaj7WKTvAABPg+dNgehLgOtRh/JVius/c9EqWsg0 + X9lcg+t8n/NzlfRihOdMcdhBZ9VAZtpAaOA7Zd0/aOBNcuJkhfJ2lPpuiOxPZ9o4T8U0Tsg4U9IxUtUo + TdQpUNwiStomT9suWt4mUc0nUcZEb91Xhu1bj+xtp/h9wP9yv/pQp+kzk9sfhtQWgtkdiucghuYZfNoo + mOg3u/0VltgDcLE6zf4z6P0BpMIroMuO3fOX1f1BdsotXLlWgedbiupml+57rfxxo+x6q/RxpO+GvfyJ + x/9Fic9boudnr/lEid8+ftxEgOJIfeVQf/BGcO4xWeAsWOUpV+EwYeE6cOVCeOhIfuxGee01Z+AjVc8m + WNA+cOFVi/FjmvxakPZBdN4xYNQxXthQffFejPldivlZhfo+augoUtYtV+AyXOgpVOErV+QrWOMqWeEr + WuEqW+ErXeIsX+QsYeUsYuUqYuQrY+IqZeEpZeAnY+AlY+EnY+MnZuMnZ+AoZ98paOIqaOMqZ98vbt9J + jO9gqPtdqPEAAER85E+J8UeB7UB550aA8UN77S5d2SZL0itN0jRV00dm3VBt4Exr3E5v3VR250916kBp + 4Ttm4UFr5kFo4zFX2CNGySRGyyxO1itP2yhN1ypP0ShO0C5V3ydQ3yFQ2yNX3CRZ1Dhs3VeK81uM81WL + 7F+d9lum9kCW6SmJ3SKG4yGJ6hyE5yGI6h6H5RWC3Sif8Cuu9gGJygebxkTt/DLS/ACAplS40bD6+aLf + /VeM3Et72GmY+WiY9Geb7nCl9mud8mSX52CW3IvD+Xu28mKd4Xq19WWj8Dx91z5/2keE5EqC6U5/7khw + 6y9V2SdQ2jto8FKD+0+C8jxy20F43ViO9GCU/FiJ9kR04y9fyz9x11OG6kp+4Ed53lSF8FeF8l2M9Et6 + 4URy3lyI+FmE+jxl5itV2StX3zNd5y5b5C5c5C5d4ixd4ipd4Cpf4Cpf4Spf4Ctg4S1j5C1l4y5n4y5p + 5C5o5Cxn5Spn5Spm4ypo4Spo4C1o4Sxm4Shi2zNv4U6O8WKl+GWr9AAARnbwR3juRnjoS37tUIT6QnLu + MlPVOUzNSlvLWmzEa3vEdYG+c4CzcX2qa3qsXnOwTme1QWDANFXHJkfHI0PMLU7bNVbmLE/iJkzeKlHj + KlDdLVLgK03jKk3lIErcHk7YOWvpVoj7Wof7RG/mKlnPJV3SKGvdKnjoL3/xK3fvKHLsLHXtMn7yInjj + HHrhNpb9K4XuAGq+B77rNOP+LafwFXC1e87qsPn+g7vyOGTHMlvNR3HpRnHhXIfoZpT3SnjmPXHYXpzo + ZabmWJXXgbj1g7X/VobnQHPUQXrXSIHjUIjxSX7uP2/nK1jYK1bdRnL3WYn7VYbzToLnVIvoYZj1ZZr5 + XpHzVIXtU4LtXoz4ZZP5VobtSnzeUYTiY5XzbJ/8Y5T1S3riSHXjV4H0SnX0NFzhL1niKlXfJ1TdKFbe + KlvgK17iK2DhK2HhKmHgJ2DeKmHiMGXoKWHhJl7bJmDcKmXiLmjoLmnpLmnoKWbgKGXeMWzmMmvnLGPd + OHHkT4vwXJ3wZ6r1AAA4XuQ/Z+Q/atdGcdNYe95ddtVeaLpvbat+e5mBhIGOkX6SknmMinCNjHeYm5CZ + oqeSobV4jbBqg7ZdeLpJY7dCW8E9WM8uTM4fQMseQNErTuAnSN0cNtQlPdwgP9MgQs1FaetYffg9Xd4l + QskhQ8wjTtcfUdoVTdQRS9EQRs0YSc8bTNIjWdoPVMcWa9FAlfsncd8BZLot2fxB2/obccs2cM6R3vag + 8/tko+seScEYP8QrUdcxV9JYfeZmjvMwX9E/d95vq/49e8lLg81+sPRxnPRNctxNdthPftpHedhPgeRM + f+k+cOIxYdkvW9ktV9UoVckwX8hLfN1ilfJcj+1Gd9hDctdIdeFCbOBXf/hZgfc7Y9o5ZdVZhe1lkvJX + g+lZhfBLd+MvW8o1YdVBbOQ5Y+IxWN4hStIkTtkjUNklVNopW98uYeIuY+IsYt8qYd4tYuEuYeIlV9ki + U9QiVtYlWtwsYuQxZ+kyaOkhV9geVdMuZuIxZuIrYNc5cN1RiutTj+ZYl+UAADhk5E158FaD5mGH04CO + xYuGooN1bYd1TZSFTZuTVqCaYqCbb4qGa6Gfm+bq8/D6/7vL0oyjmoynlJWvnoykonuRsGB2vUBYwShE + yyhG2DRT4SxK2ilD3CxF4ShE1DdU21Nx9UFd5CU/yi1I1ylI1SlP1CxZ3SJU2h9X3ixq7yZk5yFc3iRl + 3hZw1C2h6y6n8wBrwBqZ2GTp/ky66SRismmd7Z7x/ZT0/U+d6BlSzB5Mzjxl4VyB8muP8Ul0zj12yXWt + /1KD6yFQtHKg7prH/2KL3Uhx022X9Him+16M4lWD2ViH4z9v1zVi0Ttl2jdh00Jv1lGB4l6O7Wua+2CN + 9EZw30Fr3kZu5jRY2CpM1TlZ6D5c7j5d7Elr8khr7Tha3iNExjJX01R88l6I+V+L+0x47ypU1CdQ1zNc + 6ShS4iJN3CpY4zJj6jFk5ixh4S9l4jRm5S1b3StU2jVf6Tpm8S9d5jNh6T1t8zlp8CFP2iZU3zlp7zZn + 5Cpf0D1z2Gih+mGY81WN5gAAQmzeQmTNZ3vQg4W8inh+i2tIiGYuk3MxoIdBm4tJpZZerpt2gG5YYVFJ + k4aEwLuztraloKeDnKZ4nqh4nqeCnqedkZq2cny/Ul/IQlTTOVTbKEnWJEPWKkncLlLXOV/cRmjqLk3V + IDzINlHfLE3UJE/FL2XVQX7vP4T2MXzwI3TmIW7eI3ngLqPyL7/2GKLUJpvOft76p+77gq/nWWy9gJTf + qub6o/D7ZZ/kP2PUV3LqdIz6e5H0c43hXH/Mapvkhrn/XYzkXYrjlsL7dqPhZpPgcJ7wbZ/vbKHvdKn0 + dKj1aJzvWYzoUYHmYI73Yo71aJf0ZZbuY5TrX4/oVYPkUn3mXYbzW4X0OWDYJ0vLOVriNlfiJUbQOFvd + THHvXH38Tm/vNFjUNVzSQmvcRXDfS3brQ23rL1fdKVPfI03bIU3aKljhMmPoMmXmLmPhLmTiNWjlNmPj + LFbaK1XfLVfhJVPaKVneMWLmK1zhKlrjNGPtOWnsMmXeLmTRSIDhaaP7XpfvVI3jAABIatBqgdeSkMKD + bHl9VDWVZSWYcCSPcyaXgjicjUqklFyhjmFcSiQmGgBUTiiRk2qboXWXnnWco32gqYOdpoWUn4yLm5t+ + kKlkeK9HXrM7Vso6Wt04WN4oS84kT8VEcOFgiPddf/VEYuY5VtpGa+JRguRfm/FfpfhAjuQeds8ceNYm + gOQmguU4qPg1s+womstsxuS3+P6Zv/hjeclZZsGHnfG16v2o6P5kkOFAWM9Sa+NceudaetlzkuKApvJo + mfBNg9pCestuo/R/sv1pmehVh9lMgdZCec5HftNYjONfkOltnPhunP1HdOZLcvFIa+5JcehLdeRchvRX + ge5GcN9Fbt9Hb+FPd+lWffNJb+pNcvBEaeg2XNhIceRUfe1Jb+RDZeI8YNpDa91LdeU7Z9dKdelMdvQt + VtouV+IrVeErVuMwXuc2Zeo0ZugxZOUvY+MzZ+Q2Z+UsW9wqWN4pWOAnV9spWtwoXd4gVdYmWN4tYOYv + Y+MrYdYuZ9BLiORfnfJXlulWluYAAG2I14qZ0od+hHNVN4dVJ5phKY1jJYZtL4VzQH5wSoFzV2BSOiYc + Bi8sE3h8ZZumloaUj4KPnHiCnmx2k3B6lnJ/mGx/lmuBnW2GrW+HxXuP7XuP+3aP/WWF71qD41uI41J8 + 3Uhu2kpq3kpn2lV43Xik9IrB/3/B+mm19Eqe4zCM1SGI3CGO5TOd7jCU2Eeg1Jno/KHm+1OL5SJStTBg + vIC2963s/Xu87DNixiJDwThf2kd35FWB3oCm7pS//1WK6zZxzkiJ1W2s916U7W6f+2GV8EuB3El+21GD + 41J/4Vd/5HKW/WqN+i5PzixK2yxJ3TJS3jld31h9+Utv6y9T0jJX1DBW0D5l21uC+UZs50Jn40Zs6Uty + 7GOM+FmE8Edt40Vp4kdt4ViA71R/7D5o11qG91Z/+C9Z2zRe5TVf6DRg6DRi6DRk5jNl5TFk5C9j4jFk + 4TNn4TFj4TFi5TRl6TVp6Tdt6jVt6TFp5TNq6jJp6TNr5TNt3D583WKj92eq+GKk8Gaq9AAAiJzNkJi2 + cGBSbUsfj10rk1sthVgydFg8fGtflYqQioKOenGBbWd7gICafoSoWmSXSFWZT1ywV2G7Z2/GhozbnqTo + sLfpvsjvu8f0oqzmdHvFZm7Fa3nWc4zkgKP0eqbwXIjZVHzaaYzvYn/jU3HMdJjiga7udKjlebbxcrXz + U6LgKY7MMqLhRqToPITNZ63brfj9jNX5P4LfG12/P37Mm9r4re79XZvTH1S5I1HNO2rfRHbYZI/ekbX0 + fKPpSXbRT4TaXZzcZqThU4XXa5j1aZryWIzfWIvhV4biVX7cZIXneJb6aYXwQV7VOFfZMVPYM1nVOWDW + WoL0S3PlMFfNNVvSNVzQRW7eV4DyO2LZNVvVMlfTLlTOSHHkTXbmQGbYO2DTR23dXITvS3bgM17IW4b2 + VH32MlvbNV7iNV/mM2DlMWDiL2DfMGLfMWPiMGPiMWXhNmviNmrkM2jmM2fnMWnlMmrjMGviMWzlMmzo + L2nlM27jNXLcQ4ThZqr6YqjxX6TpaK7zAACdqceRkKFlRz51RyaHWB+JXB1/XDVkTUOYjpHv8fzf5PTl + 5/nt7f/j4/+RksleY6qDjc2ntPO8yvzQ2/7a4P/Mz/DBvt7T0Oe9us1TUm8IBTwmJ29aYrVdcMR1l+WK + uPx3p/Flk+Zsle5hguFScsyBo/GKrvNjitNtmuJ1pu56s/Jxs+WT1vqDtuVliMqexOzO+v602P59lPNq + f9qSsebH7fvE6/16od9RedxQeOxZhO1mkuSNsu6vy/aMqN92m+V0oumY0PyHv+5tm95+pvZ/rfhypup0 + pu55qfZ4o/J3nu99ovh0mPNbf+RcgvBbhPZciPFfjPBnlPddiu5ah+1divFUgedYh+hdi+5XhetdifNf + ivZbhvRjj/dkkPZgifRdg/FjifViivJDbdU3Y81ahPRVfvU+ZuQ4YOI1YOM1YOMzY+EyY+EzZOEzZeQ0 + ZOU0aOI2a+I2auM1aec1aecza+UzbOQybOMybuIuaeE2cOk1ceIzcddPkOlnrPdkq+9kq+xmre8AAJ2j + u42HmGBBP2w+L3BFLGxLNWZTW09IbIB/p+Dh+ufq+uLj9eXk9+Tf+ru346el3d7f/uXr/9nj+eDo+dbY + 5rq5x8G7y+jh7OTh562rwFxdkFldqFVguGR42Iqs94Cu9mSW52OV6WiY8lR83EJmxXOV7oWn+0psxFN4 + 0H2m936z+mSz5WvK606mzkeSzI7V+qLm92yh4UhpzERow3y247Xx+anW/F18zEVey0Re2T1k0El90YOx + 7qnL9nKVzV2Iz3Sm7Ye/9WWb1VqI0XKd7Wua6VaJ1laJ2F+R4V2N3WGN3nWf9muV80Nq0kJn3T5k3Dlh + 1EVv212I80545Ddgzzdgzzlkzkl321+N709740hz31N87E9450hz3kNt1VV95GSK8muT+GSO8EJrzztl + zF+J9lV+8zhh2zdg3jdg4DVi3jVj3jNk3zJk3zNk4jRk5DRm4TZp4DVp4TVo5TRp5jVq5DRs4zRt4DNt + 4TFq4Tdw5TRv3TRy1lGT6Gat82Ws7WSs6meu6gAAlaLEhYeoRjRQTS1SYEN/XEaYRTyhMDOhe3vJ6eH+ + 4tnw2tLj+PD86+PzyMPVq6jBw8Xc0dfqy9Hf3uLs3t/pwMDLy8za6u774+z41eD+h5PUUV+6VmjQgpr5 + jbT/bZ7uR3vRRXjTWorrVX/kR3DSbJPug6v8THPOPWbAXYbgXZLkV63rOKPSH4O0WrDZovH+gMjvNHDE + JFbAJWS/Xr3pmvj7ksn/TmvPQlPOO0/TKVbIQ4jgeLb9grLxXI7RTonVbqv4ZaL0Q37QVYfcc6P6aJf1 + TX3fSnzcU4TkUX/eWIPicp3+ZI75MFfLM1jVMVbWLVPOPGTaW4L4SXDpMFXTQmfjT3XuTXXqV37zR23p + P2TjO17kM1bcNFfbN1vYMVfIR2/UapT1ZY/vPWjKPGbNZo/8VX7yMVnTOGDeOGLfNmPeN2XdNWXeNGTg + NGXjNGTmNWblOGnkOGjlOGfnN2npN2rmNmzlNm7kNW3jNGzjOG/lNG3cO3jbWZnvaa30ZavraK7rarDr + AAB8ltR/kthGR6I8MaI6MLowK8U2N8pbYde6u/faz+RmWGlfT13YzNnk3ObW0926vMm7wdK4v9OorMO5 + vdHIy926v8/Fzd7a5fjP3fTF1ft0h95GXslcduhpiPFOddROfNNKeNIzYMBCbNBSet9CbMlkkN6Lu/d9 + rvVrm+hdjNxajd50tvhPmM5SkcCn2e3A7/yCruVGbbk+Y8I9ccB7zvKe8fuKuvRUa8tDV8gzUMMxYMNY + mOZwqe9hj9Rbj85amdhnpu5Nht9EeNNZidpzn+1nkOtPeNxMeNpVgt5Vgdpbht5vmfdijPI2YM0vWMsz + W9A3YNBCbdpYgPBKceZAZ99af/pdg/pDa987Y9cvVM0zV9YyU9ovUNg5WuIzVdRJbtxnj+51nvptlvNO + eNhLddllj/lQeOs1XNU4Yds4Yts2Y9o2ZNs0Zds0Y900ZOE0ZOQ3ZOM6Z+I6Z+Q6Zuc5Zug3aeU3a+M3 + bOI2a+E3beM3beIzathAe95em/FqqvFmp+drrelssOkAAGCG5Fl35Cw6yTc/2kpY43CE5Km489HZ+vLy + /M7FzVFCRlhJV9vO48G50cPA28jM573D4MbM6q2z0KWnv7m7y7/D0NLX5efs/tbd/7G++FFpy0Bf0zVV + yjhayjxiw1V/1WiQ6l6F5GiO6mqQ6Ux0x2+d3Yy+9X6y7Hyv7W6g5YGz8JLH/Huw3KbQ5eD9/svn8qvH + 6Zmv45Oi5Z2z68Dr/cX0/anH9Iie5Hqa6GmR4XWd45C275K16Yyt3YKq14a45Ii78HKc5nme7Xme24er + 4YOl6XOU5W+U4nKc4nGc4HSf33qm62yZ6E571lB941SA61iE7FmH61+M9VF950p230l03ERy1VqK52aW + 81SD5Eh13EZx3kVv3VF+51yJ7nOe/m2V9FiC4F6I52aQ8WeQ92aP+0Zt4TZe1zli2zdi3DZj2zZk3TZl + 3TVl3zVl4zZk5jhk5jtn5Dxn5Tpm6Dlm6jdp5jhr5Ths5Ddr4jlt5Tdr4zRq2UR+4WSh9Gqr72an5W2u + 63Cw7AAAXIPiXoDgXnjac4njo7jx1ej86vX/4OLz9O37zb/DTEBDe3Z7393qt7nO2t343+H929345en7 + xMfWsbS90NTc3+T13eT33+n+sb7xcojPTW3OT3XiVnvrWHjmV3ffaIjofJ72c5fne57mkbX1eJ7bg6rh + o8r+jbXvf6fjdZ3blcL7cbLkZ7LZpOPzw/L4uN/xocHleZrEep/LpNDyuOv9vfD/ocvxfqTcc5zZcZ7Y + k8HymMTth6/TpMfmpsbprM78pcf6nL71mLnzkbTmo8bypcb3lLTtjq7njq/niK3ki7Hqlrz5h7D0aZDg + U33dUHriS3fYVILcc6D1XYjlNF/DL1u7Q3LLaJrrb6D0WITjSXLbUnrqYYn3bJj5b575TnziL1zNPWrW + VoTpYo7zZ5H6VHrsPWDbPF/cPWLeQGTfPmXeOWLbOGHdOWTiO2jmOmflN2XiOmfhPmrlPWrnOWjlOGvl + Om3oOm/qN2znNmznM2nfM23TS4rcbK3vcbPqbazidbDucazuAABYgONkiOhohuJpgdB2isGOn8KtudbT + 2e7/+v/SwtVcTFmIgIff3OS4u8ja4O3g4/Ld3e7q5/DW0NPEwcbc3Obd5Py6x/eWp+dtgtBge9Nmi+tP + ed1HbdhLbtlNbtZVdNZpi9+Cp+uLsut7otVpkcF5n9Kqz/6av/aJruZ+pNqZyPd1u+NswOGZ4/mv5/qn + 1/mKtuZbjb1oqs6d5/2f7PyO1u2AveZglctNgbtqnth9seRsocxunb6Ntc6myeqev+9+nNZtj8xsj8tw + lMqKruOJrOOEpd2AoNp5mdN8ntaApt2GrOeErOtultxnjeJxmPB+qvaLufybyP2DrvFlj+Fnkd9qmOB6 + quiXxf55pfFii95sk+5njehhjNh8q/Bgj99oluhrm+xGd8pTgtlhjO9AaNc9Y901W9s6Yd9AaONCbOQ+ + auI6Z+A6aOE8bOI6buE3bN83bd85cuM4cuY1ceQzcuM0deYydOosbeQ0dek2d+Q3etZSmd9yu/F7we54 + uul7tvB0resAAFJ841d+5mB/6meB6WmA115yt1psp2t5q6Wp0aqjxGBVbZuRofHr9sPG0MHL1b/K1M/V + 36ijql5VXEhCUXd4lImXxWaBxVt70FV011R33VV+3kVv0UJp01J041h35VFx1V6B1Yau76fR/57H8nae + 0nKW0Zq9+Iuu7Xyh3nWb0ZLB7IjH6I3W7p7b+pPA6oau5HOb3VKEvWerz5Tg9Z/r+nS81HKu21WJxEJ1 + tXqv6YG473Gp3Ie64JPA2rTb/KLG+IKk4Xuf33eb3HOY1oSp5I+y8Iao53CR0W2QzX+i3YSr44Ku5nei + 3U11uV1/zm2P3YGo54m154Wv5X2l4Xyj4n2i5YOq6ZS+9ZrE95jB+Y218Xmf4F+Fx1+Hwnqk3JnE+KPN + +oGu42qX1n6r8HKd80Ns1URs4zli4Ddj4Dxq5j9u6Dps5DVm3TNm3Ddr3Dpx3Thv2zZt2Tpz3zp14TV0 + 3zR14TV45DN45y1y4TV55jl94kGG3F6m6HfB9X7F8nzA7Xq673ay6wAAW4jsV4DmUnbgW3vlb4vvb4nm + WW/OR1i0U1+rV1yWQUFuZGCEoKC/lJ26oK7LlqnGkKDAXF9/JyNEGRlCOkR4X3i5YIjYWYXgSXLVUXrg + W4bmWoTnWn/uX3/0XHzuUXDbVXfScJbfjbTxk7r2gaXpdpXhhqT1bYvbWXnDV3m6iLPnnNv5q/T6o973 + hK7riKvyjK74dp/jjsjsrOv3ruj7hbnYfKbXX4PCYIfLgq7te63qbqTge63ahbDSmb/ojK7mg6bmh6zu + faPkd57ahKvkiq3pf6PfgaTgkLTvj7Psgajfhq/oiLPwdJvjaIredJTng6jqjbbsibHoi7Lug6frbI3Y + Y4XOcZbYh63rgqjneJ/dia3xkrb3ia/vkrnxncL5i7HrirLplsD4fafrVX/UQmvRR2/kO2TgP27oRnbv + SHvzRHbvPnDqO23oOW3jN2zbOWvYPm/dQ3PhQnPhPXLfPnPgQXflQXjoPnXmPXfjO3baR4XaY6bpdrzz + fcX0fsXzerzxdbfvAABYhOBVgdxTfdlZf91gg+NVc91EXNREVtVQXdVWYMhPVrFMUaJvc8BgbLVZZ7Fb + bbdyg8uHldt3hdBgcsJgedFae91QeeJUgOxHcd1Jc9xQedxIctZAZtBFadhSdOFQcdlGacdKb8NghdN3 + nOh0luVce9Fti+Fvi+Fph9hefciNuPCX4fiN7fNmuto+f8FVjdtgleNLhMR7v+Gv8Py17v2Pvd54m8x/ + mtarx/96mtZRdLhiis1zm9OPs+CKrd51ltRwlNV5nt98ot+GruOPuOeHrt6ApdaJrN+Iqt99oNSCptx3 + nNZegsNskNpxk+p4m/F3nulznd9pktZxmOJuk+Jnit5pjuFfhdRqkd13net2m+t4nPF5nfJpj95fhs9z + mtyHreyLsvF7pORpktlki+FZgeFche5Tf+o7a9Q6bdY+cNo8bdw6bd8+b+VBcuU+cuE9ct8/duQ/duQ7 + ct82a9k1atk6bt88b+E7buA6bdk5btJMh95op+9usO1rr+dtsehqredtsOsAAGiO5nGX7Haf7nGa6nGX + 72WG60Nd0zdNz0JU10hY1FRk1Vtrz2FwzmJuxm13y4SQ456x/5y5/3qg72SP5lWC4kp03k5z5khu4kBq + 2UBq1VmE6FJ73VmB5GGJ61R83EZryUlvyE10yFd/z3ac6Yar9YOm73+h7ICi6W+R1GSGxpS976fm+Kbz + 9oHG5k+IzFWM2FyW3EWFu2qx0Jvg+aDe+Iq+35K65afG8aXA73aRyHOP0IGg5oqq5a7N+qXD9paz8Yqn + 6X2e3H+j25e965rC6aTJ8KDC65q65ZOy34qr2Zi66JG052+QzFFztmuS23qj7YWw8XKf3mSQ0nah536o + 8Xig63ih7HCZ42qT4Xqh836k93WZ8nWa8nOb6miT23Si5Yu5+Yi39Hil53Sf522X52KL4m2W8HWg+Hin + 93yu9m6h8ViL4UV41D5w0Uh72UyE30OC4j+H60KN8UeS9UaP9T2F7TR55DJ14Th540WG6UeH4VaX6HS3 + +Hq+9nS17nKx6HKv53248AAAd5TuZYPbZojabZHhaYvkY4PkUXLYOVjDQVvJWnHcWXHTWXXMYHfFeILN + kZTbnKDmmqjtaY3PVozOZJ7rT4jhOmvQSG/dSXLeS3zhVYXrTnjiUXjhUnrfWIHhX4nlW4XfVX/YZIvl + YonhUXfLaZDegqrwhKzrfKTedJvReZ/VncPyv+v90f7/rtX1gaHrj7L6lL/3b6HRjcffvfn+pNz4ZJa6 + jLTetNX/oL/veZbLZYS/eJvbocT5stL6osDxj6zokaztkK/tjKzllLjnmb3mj67Ynbnjob3nlbHan7vl + ocDpmLjkr8//n8L1eKHYZpPMaZXOcJvXcZzZdJ7efqjng63sfqnnfafog6rydJnoXoLWUnXLaY3fjbT6 + g67ueKrpdq3vY5ndV4nRY5HgZI3lVnzYXIPfcZfvcZzqfazxdqXtbJ3mZJXjY5XmbaLwaqPtUJDfO4Lb + NIDZQ5LpPo/mJXbRMYLfTp/9TJ34Po7hQI/ZXqjreb/5dLfsa6jbc6nbgrXlmMj4AAB9kuxrgtpog9Zo + hdhefNZigN9wkOxukOpjgtxfedNgfM9igMxvhc+GjNaRj9uQjNqHjNpeecVVg9FrnvJdj+1Aa9NBZdFL + c9lOgt1Xiec+ZdBKbd1BZtE5YMRJcdJNd9ZGbs1fheZuk/NQddBPdMlmjNd7ouSBqON6odZ/pdmlzfa4 + 5fO/7fKcxOhtjtVzlNx+pNt/qtKy4vPK+/2n2PKGstefxvKfwPSOq+J4ls1ihr19p9uYwu2QtNqfv++L + qeSBnt+Jp+eOrumQseSHqNWAnsqTrtufuOSYs9ucttyXtdiPrtGpyPGoyvamy/6NtOpzmdKBpuKPs/F/ + o+B8oN2Ps/CNse93mtllh8taecZtjNpefctScruAo+Oexv5xod9dk9dgld5Of85MeNFSeN1Ze+VZeuRM + btFjh99uludZgtFWgM5ijNxXg9VVhtFrnuNzpu9vovFwpvVno+9RkN05fc04ftBBittGlOEygsU6icRt + uOuQ1vyR0PeQyPOUxu6TweibxesAAHKH3oed8Y+p94ql9XuV9GeA51pz3l945mJ451ts3Fdn1lRl011p + 2Wlr4mxp42Vh3llc2k1d2U5q5lFw7ERj5TtY3EZg4U9v40122mKN7mSM8lqC6VV941d/41R+30p11URu + zkRtzVR83W6U9XSa9nWZ8Hec7IKm7m2Rz12CvIq136vn9aLq8Hu84mCX4GGX31WMwl+YuqXf7K/r9qLa + 8aTV+omy5naX13+b33GN0HGVzJO/6ZO+5oSo1JO06oem6IOi6YGh5Xea136i1Yap1pi65Zq65ajF76/M + 9Ju635e32p2945296pKx5YGh34em7H+e44Kh5Yuq7YCf43qY3YWk6ouo8Yek7oOg63qX4oil8IKh6HiX + 2oqs6YGm4nel4nan6W2d52WS5ViA4Ett21Nz5l5/8E5w3FV93Haf+GCK4FB3z12E3l6G312I22aR3m6V + 4XOW5WaJ12+X4Xml8W2d7mCU5FyR41ON2FmZ2Wqr4n297YXE7oO+6I3F75vQ9Z3R86fa+QAAcojXe5Xg + e5nae5vgcovlT2TVOErMNkXTPUfaQ0neO0HVOD7TNzzUNDrWLjfWLjrZMkHeL0LaK0DVKT3TKDzTJjrM + NUrTU2rmTmnTVnjUZI7hZJPiW4rbYI3hc6Hxb57vU4HURnXGUn/RYoziaZHoWH3VTXDFZIjVa4/SZInD + irDeuub4wfL7irbiX4XVb5jldaLacKPEpN7mqujsl9Xoc63SVYK9XoTNcI3dYHrGcpbNkr/jibXbgKTY + eJjXcZHaeZnjbpHVZYrFfqTVmcHpia/UhqnPlbfdm7ziosPpnr/njK3bk7LmhKLhYYDKYX3Of53phaTt + a4vRaorRepnjcY/dYoDQb4vcgZ/shqbtiavskrbylbr0kLXuh6zlirTrh7Tta5jXXYfRaJDlYIXlRGjR + SXDWYYrqWYXadaTzcaDxZZHkUXjRU3nUgKf4e6LtU3vKX4jZUnzLWoXRbJblb5nqZY7hZ5HkfKf2g7L1 + gbPrgrfpebDfbaTTcqrZerLefbjcj8zsAACUt/KMsemBp9uDqN+Ep+l3l+Zrh+NngedphO5qhu9mgexm + gu1gfutUc+FKa9lQdeBnjvZdg+pfhOtfguxWeeZfgetfhOpTeddWftFvl+FljNBnjM1ljM5ulNh8oud8 + oeZukthihcxzlN2Gp/NvkN1gg89sj9Z+oOJyksxzkMOsxerT5u/k8/KtxONvj9B4mtqGqNekxNjb9/DV + +POp2vJxp9Nijshwk9VkgMdkfsOUtOmlzPKPuN6Rt+aNsOWDpN+Ip+KMrOOFpNaDo82Jqcygwt+tz+mh + w96UtdKWudqavuaRsuGTs+uWt/WFpehwkdVtjtFxktR0ldd3mNp2ltt3ld5xkNpkg812lNyNrfKVuPeI + q+l8oNuCp+Ggw/yau/SUtfCXuPaUt/WZuv2Rsvt6m+plh9Zcfsx6n+l/pe91mehwkuVnh95efdZriOF4 + l+1uk+RolN54pe93ou1xmudxl+ZukeBxlOCLrvSJr+uOuOmiz/mh0faay/CSxOuDttx+tNqRx+wAAH2o + 332o332n4IKq54as7nyg6nGR5HiY8H+j+Xef8Hmh9IGo/Yiv/4ev/n6n9Xij73im8HOj6X6u8n+w93ep + 8nuq9Xam8Gqd5G6i53Sl5Xei3oOs5YSv5oOu5oOu53+o4nid2nud3ICj5ICj5Xmf4GuX03Kf13ql2GyT + wHGSvKa/3dff4unq4rXI3ICk1nuh04alyrrO2/T67e/796vR8F6Pwl+GvmuKxWyJxYyr5KPE9ZCz34Oq + 04ix24eu24So1oiq2JCv3Iun0oejyZez1KvJ5KzM46vN46vO6KLH6J/E7ZS46Xqd1XOX04Op4oGn322S + zWSJxHCV0XCT0mGDw2OFx3mb34Wn632f4nue4Hqd3nSY13WY132h3Yeq5YSk4X2b24Ce3Yem5IWl44Sk + 4o6v7JCx8Iip6Yyt8Imq8HSV3WOCzmmH12iG2Vx5z2aE2nmc7HGZ5GaP2myS4W2R42aI3G+Q4nqc6XCT + 2W+V0Yeu4ZjC7ZfE6ZnG6ZzK7ZTC55G9553J9AAAcpzecpzfdJzieZ7rcZTqU3LTN1HBO1PJQVzNPFnE + QmHNRWHQQl7OQ1/OR2XVS2rZS2zXSGzURGnNRWvNTnXWVX/bWobdZ5XmdqfweKztbaLbdq7idrHkcazf + dbDie7Tme7Dmeq3kd6njcqXgbqTdZJ3SaqTVdq7bc6fPeabMosbi0uHn3+Xjt83kibPkg67eocPi0un2 + 6fXv3vDykbnaWIi9cJnPfJ/ViKngnb/0lLfmjLLck7zmiLLfibPik7vrmcDuk7bjkbPem7zip8jqnr7e + lrnVocbiq9Hwo8nukrnliLHhg6rgfKPcgq3ji7frhrHldqDWdqDXgKrjganleaLee6PhhKzrfKTjcJnX + b5fVeqPfe6XfdZ/Yd6HZgKfifqXgeJ/aeaDaeKDZcpvScJnQd6DYfqfed6HZgKriha7ohK3phK3rgqnq + dZzeY4nNYYbNZYvVV37KYITWaY3jZIjfYoXdZYvgY4zaYozQdqPeirntiLjmg7TeiLrij77mk8Drmsfy + AAB1oOBynt1xndx4ouR8pepslN5YfM5WedFcfthafdddf9tXeNdOcNFNbdFScddVct1QauBQZ+VFWuY3 + TOAsQdImQsU/YtBqle17re5yqd9rpNhzruBzsOFrqtpvrdtzr91wqNlrn9JtoNVupNlmn9JmodJyrtt8 + s9xypct2pMabvtfQ3+bb4uGrxdt4p9Nzocihw9rb9Pvo+PTU6vCDrc9tnc5pk8FzmMOStuCKr9qDp8+S + t9uUu+GOtuCKsd2YveejyO+jxOulxeioyeecvtuixd+kxeGewN2hxOOgxOeYvuWWu+eSuumFr91/rteN + wOWVx+6Pv+iNvuiVxfGXx/OQv+2ItueJt+mOvO6JuOmJt+mPvu+NvO2GtOWCsuKKuemOvO2Mu+uPveyS + we6Rv+yLuuaNveaVxeyQv+WRv+WVwumUwuiSv+eXxOyfy/OYxO+Ru+mVve+Ot+19puJ4oeKAqu57petw + neJ7rO14quR8sOOLwe2IwOaEut2IvN6MwOKLvOGIud4AAG+W4HKa4XCa3HCa2Xej3Xml33ei3nyn5YGs + 6H+s5Iey8Iuz+4qw/4ep/36c/XCL92J78VNq5UBW2TxS2URd3Uxs3V2D4W2Z43Ol3Hux33Go2XGo2muk + 1Wql1Haw3Xix3nKm1Xip2Xyr3nWl2Xiq3XWq23as2Xao0nWhx4Coypu608/c4uLp56rG13KhxXilwKnJ + 0tzz89zu67fO14uy1Iu75Ymy1oqvzafN65C314iuzJvB3pW52pS33Je53KDB4avL6LHQ6rTS6bDP46fG + 2afF2KrH3J680pWzzJ+92aTD46DA4p7A45W73ZXD45HD4pHD4o7A4Ie42YKy1IOy14a124i33Ym44Iq5 + 4oq544a034Ox3Ia034m24YCv2X+u14a24Ie34IOy2Ie124+/45HA5JDA4ZfF5Z7M65TC4JbE4JnH45C7 + 2I+716HM6KbS7pvI4Z7L4qjW8KHP7pnH6pjH75DA64S14oW444e844S734K624K72IW82Yi93IzA4I2+ + 4Yi63QAAdJvafKThfaXfdqDYdp7Ye6PffaTjeqDkfJ/repzwaIfmW3feUm3aRmDSO1XIPlrJSmfSWnrf + Y4XjbpLrdZvvcpzndKLkd6jid6vce7Dedqvcdq7fd7HhdK/dcqvYebHcgbbjf6/fd6bXdqbXdqnZc6rZ + dKjUd6nTeabNg6vOp8Xg097l4OXjrcfXd6TGfKW8q8XI2+/s2+7zrMPVep7Cc5zGfKLFlLfRqM7ok7vX + j7TQocTgosTipcbkq8rms9HptdTrttXouNfnudbltNHfnrvKob3OsMzfsc/krszkqMbfpsTepsbgm8Hd + l8TjkcLjiLnZhLXWjb3fj7/jibndirvfjbzig7LYg7LZi7rijLvkgrDagrDbjLnki7nkg7PciLrgjb7l + hrbeirnflsXqlsXqjrzfi7rblMDjksDhmMXkncnomcXlmMPhm8bkn8rmm8fflMHUmsfaoM3joc7oos7q + p9PypNLxk8DgjbzckMHejL3biLvZibzcjL7ijb7lkL/qlcTwAAB5oNN3ntJ3ndN6ntp6muFyjuBngNtf + ddlXa9pNYddIXNZNYdpZb+Jlf+dtjeh7oO2LtfOLt/CFtOh/ruB4ptp0otdzo9Z2p9h9sN2BtOF2p9l1 + pth5sd55sNxto851qtOIvOaCs952ptJ3qdZwpdFyq9V5r9mDt95/rtN+p8msy+bc5vDk5ue0yt5+qc6E + pr61x8je7O3X6PejudaAoMtzlsWDpsqkxeKbv959pMSBpsaYvNyhw+OcvducvtqmyOGrzuWpzOCqzN+q + y92hxNObvMycvc6jxNajxNmZvNKXudCgwtujxuCawN6Brc2Ft9eDttaBtNSNwOCTxeaHutp/stKFuNiI + u9uBs9WDttiIud6Gt9yFttqJueCRwOaFuNuCtteFuduAs9aCtNiLveCOweSNv+KLu96It9uRwOOSv+OO + vN6TweOWw+WSv+CWwuKdyemZxOOaw+Gex+ShyOWcw+Cix+Wqz+2nzOiiyeSky+eexuSRutqNudyTvueO + uuaLteWPu+wAAIKm3Xmc13iZ24Kg6X6X7GJ22kVTyDpGxDxMw0lfyl953HKO7Hub7oaq8JC68pTA7Iu8 + 4YW424K12n+y2Xqq13Wm1HOk03ao03qu1H+y2oCr2Xagznek0ICx2YCx2H6v1YW02Yi124e02oa23IG1 + 24C33YC33Ii93oS004KsyqnG39vk7Ojn6q/C2nOcxYemv8jU1ufx98jc84+o0H+e0HSYy5K03p2/44Sr + 0HSgx3umzI+22Ze+3o611I+205W92ZnB3pe/2pnA2pnA2Y+5zpC6zprE15vE2ZfA1pnC2p7H4ZzE4ZnA + 35rD5I2724W01Ya3146/3ZDB3o3A2ou+14K1zoS3z5PG3o/D2oi81Ii71Y/C3Y/B3Yu82Y/C3YvB2oK6 + 0oS704u/2Ym+2oW51oi72Yq+3Ia414e52Y2/3o7A3ou924u82Yy/2o/C3JLE3pjG5pvF7Ja+5ZrA5Z/F + 55/F5Z/D36PF4KjK46PI4KPJ4KXL5KLK5aDI6J7G6pbA5o244Iq33gAAeaLMeKHLeqLPgKfYgKPed5fb + bInXboffY3ncUGXQT2LTRlfNQFHIRljLVmvaaoTmdpXqgqfuha7qgq3hf63cfa7YfbDWfbLUfbPQf7LR + gavRfafNfKjMfKrMe6zKf7DLhbTQg7LPgK/MfbDNeK/MdLHNc6/KfbfQfbTKfK3Dn8XV2efm7vHqssnZ + bZm+hKW4y9fT3uztsc7le5/DgajTeaLOha/Vgq3Pb6DFb6XLdKjMe63MhrXRiLXOjrnRj7nUirPRh6/O + jrfWkbvXg67GfqzBj7zPnsvdn8vencjencfhmMHelr7fm8LllLnfiKzVjLDXmb/jnMHjmL/dmcDdk7vX + kbnUm8Xdm8Xdk73VkbrTl8HZl7/akLnUj7jTlsDbkLvXjbfSmMHdm8Thk7zckrvdlb7glL7fi7XWkLrb + lcHhlMDfkLzZj73Ykr/YjrzUjbnWlb7gkrzelb7fnMXin8nkm8bdmcLYoMncm8bXmMLUn8ncptDlqdHo + pdDmos7loMrknMfgAACBsNGCstKEtNGEtdGCss+DstOFs9iGstyKteOMs+eHq+WAo+R7nONykOBmg9ZX + dctLaMBVcsxZdtJWdM5eftRtkd14oeJ9qd16q9F1qchtoMBtosBspcBvqsJ4tsqGxNWNy9yMytuIx9mD + xdl/yNp5yNl1xNN8ytd8w9BxtcGQxcvN5djy++m+3uJ0q8SLtb7U59be9Oiv1uOCssyBs9OIvNyAs892 + qsV4tNN2t9dztM6EwdWWy9uTv8+Tu86ZwdmexuCYvd2RttaLs8+BrMKEsMKTwM6iztyfytaOusmMt8qU + vdWUuNeOrNaareaMmNmFkdGKmNOLmtOJmc+LnM6Ro9KPos+KncmSpdGVqNSTptKTptKWqNWTptOKnMqT + p9aQpNSClseFmMuQpNeQpNiHnNGModaWreGLotaLpNaRq9uPqteHo86OrNSfvuWhwuSXvNyWwN6YxuGT + w9uSw9qYyd+Yyd+TxtmWyNuYyd2UxdmVw9mbx96bxdyaw9qkzOOu1Oqt0+oAAIC104S51oS504a704m8 + 2YSz1oax3Yu054q05Y245ZO+65W+8Y2y7ZGy95Wz/I+q+4Sd+ml+7Vdp5Etd2ztPzDhRwkxrymWM1nGf + 1nGmzlqYtGClum61yHjA0n/J14TQ3IXQ237J1HnH0HzM1HvP13rT2XfQ13jP1nPHzmm7xIDDxrnezef4 + 3s/q3pzExanFvd3s1Nz146nY2X62woS6zZnQ6IG70nKwxni81nXA13S/zofO15vY4JzN1ZvH0aPQ3bHe + 66/Z66DK3JS+zo66x423w5W+yZ/G06HF1Je4y5Cuxpmy0Ziv1YCQwoOIzYaF03p6x3+AyY2P1oyN04SG + yYeLy4aKx36Dv3+EwImOypKX0oSKxYOIw5ab15OZ05KX05CW04mOzYiNzY2T1JCX14aOzn+Hx4mR0IiR + 0IyV05Cb1pOe2I+b042c0Zal2pOj14yjz5u73qXI6J7F5JK92pPB2pXH3JHF1o7E1JTJ2ZPF2ZPE2JjI + 25nF2ZXB05rG2aLN46XQ5gAAf7XPhLrTgbXOhrjViLXcYom+U3S6WXTGTmzBS27CUHHIWHXSRV/BTWXK + VWzUV27YU2vZTWfXS2XXTmrdQmDQMlS6QWrBXIrSYJTOYJvEW6K5aLXCfMnXg87fe8jWe8rVgtLbfc3U + dsfMec7Pe8/Pec7PdsrNbsPIar7Gar7KcbrAq9bN3vHa5fTZ1eXL0trE5ujW1+3dm87DbqioirvJhrbM + ZqG6bK/Ia7XJa7jIdsLMh87Ukc/VkMfLmMzPm9DRn9TUpNjWotXTm8rLlsPGh7G3i7G7mrrLn7nSl6vL + iJe9kZnHoKbXkpXPg4XIiYrRgoXLfX/Fi43SlpjdjY/TfYDDgITFi4/OfYLBf4TCkpfTg4nEdnu3k5nT + mZ7YiI3Ih4vHlpvWmp/blJrXmqDcnqPgkJbSjZPOlJrVlpzXj5XPlpzWmZ/ajpTNjJPNl57XkJvPi5zK + obbiqMDtosLon8binMnclcfRkMTLjsHLj8HNlMTPl8jTmMvUlMjPj8PQk8fZms7jAACOutKNudCHtsuQ + v9eSwN1olrpYhLRijMRlj8hplMpmkMhxmdVqks90ntp2pNx4qdl4rdh+ueJ5uN9ztN1trtpkpdNlptRk + pdNios1rr9FptMlntsNwv859ydp+zNl9ytZ+z9h90dd7ztJ6z9B70dFyyclpwMJpv8Ntwchov8ljrrWe + zcPc9Nzo+t7Z68/W38bi5NDR5NSby79+tbOazNd/scVhm7Ntrsdss8hnr8B6wMuMzdSQzM+RycqRx8eZ + zcuh1tKf1NCVysWPwr6XxsaSvMKRtsGbu82VrseHmbqSoMihqdqTmMuGh8OEhch4eL+Mi9KJiM98e8GH + h8yKis50dbl7fL+Zm9uSlNR/gcGDhcWMjsyFiMWLjsqWmdeFh8V7fbyIismNj86Ii8qNkM2ZnNmYm9iQ + k8+Tl9KandiXm9Wfotuhpd6Sls2LkMaUm9CVn9CNm8mNoMyYrtyivuWfw9+dyNqezdeczdGWxs6Uws2V + xM6ZyNGay9KWytCTx9KXytye0OYAAJG5z5W90Yq0x4izxZS/0o66zprD3KTN6JjH3JfJ2ZrL3Z/Q5o29 + 1pLF3JbN4ZbS3ZXW2YzU03/LyHrIxnnGzHnE0HS6zmamwGCbuXKxy222x2Gvu2OyvnG+y3LCznDAzHPE + zXfI0HbKznXLzXfNzm7Hx2e/wGrBxXPIzm/Gzme0uZfHvdXu2OL23dbozdTew9jbxMzcyaPNv5nMyZnJ + 04S3yWmguGWjvG+xx3G2xn/Ayo7K0JHJy5PIx5PIxJrQy6HX0J3Sy5LEvo/AvJrJx6LLzpy/ypa0xYSc + tHeJq5GeyKWt3Y2Rxn1/uoyN0Hp6wHNzuIWFyomJz4SEyIuL0H+Aw29wsoWHx5OW1oWHx4GDw4uNzIKE + w31/vYaIx4iLyYGDwoOFxY2PzomLyoKEwo2RzZOX04WJw4iNxpec05ec05yi1qKo3Jmf0pSbzJ6l1qOs + 2pmlz42dx5So0qC636HC26DH2aTQ2aTS16LP16DM15/K05/M06DO1J7N0ZvJ053L3aLR5AAAi7vMjbzN + iLPEjrXGlLjHeZqmcZCZdJGXcoyMepONfZWSgpqecYuSd5SdgqSslL2/otLSmNHOhsjFesPEc8HHcsHN + bbrLWqK2VJqubbbHcb7LaLjBabnDcL7KbLzIaLrGbb7IccPLbcHGaL7CbcTGbMbGasTEasPEa8PIacHH + bbu+jL2zyeLN4vTa4fDU5+zR5eLK1d7Kqcq7qNTPl8nQeK69Z6C2a6nAebzQcrjGfL3Fks3QkMjFjsa/ + mtHIpNjRo9nQms/GkcW8k8S9nsvIn8jKlrvEjau7hJy1g5W3kp3JpKrbm57VgIG9gH/BfX3BcnG2gH/D + j47RhITHfn7Bfn7BeXm7gYHCi4vNgYLDeHi5eHq5fX69gIHAf4C/iIjIfX6/enu8lpfYoKHij5DPk5bS + oKPejpHLhIi/naHWmJ3Rj5XGlZzMmaDPmqHQoqjYoafUmaLKlaLLmKjRoLfbp8bepsvbo83TpNDTn8nO + m8TNn8jQpdDUqtXZp9PWnsvRmMTSl8LUAACFv82BuMeCsMKPuMqTs8ReeoRBV1pMXl1VZV5WYlpVXVhf + aGhNV1lOWl1NW2BPZWdbd3mMsraVxcyBvclxt8hmscVircRTm7NPlKtts8Votr9js7lmtb1otsFksr5k + s79rvMZvwchrvsNpvcFuw8VyyslxyslsxcZnv8Bku8BwvL+IuK/C2cjh8Nnj7dPs7NHq5MjW2MGuxLOw + 1s6Eubxrp7Roprlrq8Bts8Nps72BxcmNy8iCvbSMxLqYz8Kj2Muj2cyZzsGOw7aOwLeXxcGfxsebvsSN + rLqJoLmJmryGkLuPk8SXmM+EhL92drWBgMGMi8yEhMSKismXltaDg8NxcLB+fb6FhMWEg8OIh8eDgsJ6 + ermBgcCGhsV0dLN/fr56ebpwb7CNjMybm9mCg79/gLyRk8yEhr2EiLycn9KVmsuDibiIjruYnsmepNCe + o8+bosqao8eapsyVpcyXq82gvNGlyNWmzdGq09Oiyc2bwsedxcmkzM6p0NKn0NKhzNCcxtKdyNgAAHu2 + xYG5yYO2yoayxpm/0JO1wZKxtpu6upa6toy0sou0tZi8wIanrJSvtJ22uICYl0ZiXl1/fYewso/CyXy3 + xW2qwGynw2KYt2WVtXyzy2y0vWKxtmSyuWi3wGi2wWm3w269x2u7xGi5wG7AxG/CxG3Cwmi/vGi+vmvB + wmi/wW65uoW2rb7Wx+Lx3OXw1e3sz+7lx9XVuLfHsbPWyoK7umittV6ismuuwW64xmq4v3vExYvMxozI + vpPKvpbMv57VxaPZyp3SxJLFuJDBtZbDvKLMyaHFypGuu4OYr4OTs4uWv4mPvouNwpeXz4SFwICAvoaH + xJCRzYyNyZWX0o6Py29xrHV3so2OyoWGwouMyY+Qzn19u3d3t4aHxn19vIODw42Ny4KCv4aHxZeY1Y2O + yYOEv46QyISIvnJ2qYOIupeczI2TwYuRvZuizZuizIyUvJScwqCpzJWewpmnzKG21aK/0qfK1K/V16zU + 0qXLzJ3CxqHHyqnO0afNzabPzaTO0Z7H0afQ3QAAhLfFgbPDeqm7i7rMi7rKhLK/iLe9j8HBiby9g7i+ + jMHMhrbGgau9jq/BqsbVwNriaISGQmVkdKOff7q6ZamwbrXEbrHIUo+tXpKyc6zFcLW/ZLC1Yq60ZK+3 + Yq23ZK66bLbCbLjDZ7W9aLi8a7y9abq7ZLi2Y7e1Z7u6ar6/cLq6mMvFvdvN0eTP5fHW6uvM39q53dy8 + y9e+r9HCf7+5ZbG2XaWyY6m5X6y3Y7O3gMrGiMm/gbyxj8W5lMi7mc7Am9DCk8i6jcCyj8G0mcW8oszI + mr7BhKGseZCkhZWzl6HGlZvGhom5fn6xlZfMi4zCfoC2i43DhYe9h4i+lJXNf4C5dHWuj5DJiIjCfH23 + iInEg4S/eHi0iorGfn25eHizhIS/h4fCjIzGl5jQkZHKgoO6h4i/iozBd3qsiYy9mp7OiY68f4SvkZfC + m6HLjpW+k5rBnqfIjJe4jp29nLHMpcDRpMfOp87NrdXQp87MnMTDocjHqs/Pps/LpM/KoczLmsbKoszW + AACEs7+HtsODsL+SvsyKt8OGs7uRv8KPwMGIvb+GwcSHwsmMw9GFtMaWu8+jwtOZtMFYcnttkJSIs7d5 + sLdsrLlvsMJwrsVdka9eh6h8qsR3t8FqsrVosbRpsbhmrbdnr7pttcJstb9ptL1wvMJ3xMZ3xcZvwL5q + urlqurlsvL1ut7eVzseoz8Oz0LzZ7NHk7MvY17Ti5MLX4serzLpxs6xoubtirLlmrLtuucNwvsF9xb6T + 0Mab0seWysGVyb6f1Mao3dCh1MaOwLKMu7Cey8Gp0syjxsaUsrqLorOMnbaSnb6XnMWWmcWRk8GSlcWO + kcJ5fK2Jjb6VmciNkcKIjL56fa9ydamHib6MjsR8frSEhb2Cg7t0da6Fhr+HiMB6e7N7fLWDhLyGiL+O + kMWTlcuMjsKGibyPk8SFibqHi7qPksOGi7iAhLGOk76XnMiRl8KWncOepsaVob+SocGYrcihwM6ny9Co + z82o0sykzcidxMKiyceq0s2n0cqk0cmgzcmYxcify9MAAH2yuoK1vJC/xJO7wZm6voSeoX+UlYKVlYCX + ln6amXKPkYGdn2qEhXiOj36OjWdzcWZ0cpatrZe7wH+wu3CqvmmlvWulwGGQrmGFoYGrwHy5wG20tWqw + tGuvuGestmesuG2wvmyxvWevuGy0u3fAw3nExXG9vGm2tGe0smi1tmu0s4fGwJPHuJ3FsMXixdvryNje + t+Lnwtfixa/RvXzDuWG4t2q0v3u+zXK5xGy2uIrLxJzTxo7BtYq9tpfJwZ3Rx5rPwpHDtYm7rYy7rpG9 + s6LLxJ3BwImmrX+XpYCSqIqWtJaew5OYwIeIs4+SvZidyJKWwZOXw5CVwJSYxZGVw4eKuX6BsXx/sIyO + wISGuIGDt4SFunx9s3t7somKwH+AtHJ0qIGCtoyOwYyOwJOVx5OVx4WIuYqNvoaJuYeKupiby5eayoiM + uomMuo6RwJGVw5acw5afvpmmwZanw5ivx6DAzqTKzaLMx6PPx6DLxJnBvp/Iw6jRy6bRyaTSyJ/OyJfF + yJ3M0gAAgru9frS3kr/DjLCznbW3anl8S1JUXF1eX2BgWl1eVFhXXmRfUFdNVmBQXGZUXWlXZndnbYh+ + hayqf7K6YJ2uYqK4ZaS8U4yjXo6jdqe2c7G1aq2ta6ywba62aqu1aKm1bK24Z6uzXqWrY6uvcLm8dr++ + b7m4arWybbi0db+7fcS/h8nDi8S6k8Sysdi+yOXE0eW+2erDz+HBudvFdLKnZbCvWJ2mWZilYqixbrS2 + hcO+jcC4hraujL22jb62lMa8l8q9jb+zgrKmhbSomcW7mb+6jrCwiKathZ2rg5SohY+rj5a3lZjAj5G6 + hIixgISsjJC4lJjBh4q1jpG8jpG9dnmmen2qkJPBjY6+iYu6f4GxjI2+kZHDfX2vgIG0hoi4d3mofn+u + j5HAjI29j5HBmJnJh4m4hIW1h4q3ioy5lZjFkZPBgYSxh4m3lZjFlJfDjZS6jZe3jpu5j6G/mbHJoMHP + nsXImMO9ptLJoMzEkr64ncfBp9HLpdHKpdPKodDJmMfFn83QAAB/sbGQv8GOtruQs7qcvMSLq7KKrK+Z + v76QubmMtbiWvL+Ts7SSr7GZubabv7um0cyVxL6Ht7WAtLRvqKxhoKllpbNhobJTjaFZiJ5om6tpp6lm + qaZnqatoqK5qqbB0s7t6vMBtsrFgqKZsuLR/ysh9yMV3wL56wL15vbd3uq+IyL2Fv716r7OAs7SNvrea + y7eu4L2/68TA5sHC48ilxLp8oKNml51moahss7Zjrax0tbSMwcKFtrOFtK2Pv7SUxraUxbaMu7KIta6L + t6+UvbWVvLeWtriMprF+kaaDkqqUobiYn72OkLiGh7OJjrmEi7aEi7WMk72Ah7GCiLOKkLpxd6Jtcp2J + i7eBhLCGiraChbJ+fquEhLGIiLV+gKyGirWAha54f6aRmL+Yn8aHjraTmcGJkLh5f6d9hKuIjraLkbmX + ncWOlLx+haySmL+XncWLkbmaoMmSm8OJl7yWqsiXtsahyc6bx8Om1s2ax8OKtbWcx8aq1dKizsem0smn + 1c2bx8Sj0NAAAIa4so+9u4yyto2xt5e6wYSmrIGnqYu2tIq1tY63u4ywtX6ZnmV8gXuWmI2srZO5uJbA + vo63uIKtsHGhpmico22lsGqhslmJnlyEmnCarWymqGippmqprGypr2+rs3q2voPCxHq8umyyrW64snW+ + unC5tm+1snK0sGmqomqom4bCtn20tH+zu4C1uXuxrYrDsJLPrp3Xr7LjvKnQs6HAtI6trXelqHCrsF6j + o1ihnm6vrIC1tX6urHqqo4e2rI+/r4+/sIm2r4axq4mzq463r461r5Gxs5CptIear4eWrYyar4+Xs42P + toqNtoaMtn+GsIOKtI6Vv3uCrHl/qYiPuXl/qXF2oYiKtoWIs32ArH+CrX1+qXp7p4SFsHh6pXuAqYCG + rXh/poiPt5qgyIqRuY2Uu5OZwYCGroOJsYiPtn6FrIOKsYGIr3l/poiOtYyTu36DrIyOuo+Wv36LsZGl + xJm4x5nAxJvIw6DRyJXCv4izs5bAvqHLyJjEvZ3JwKTQyJrGxKfS0QAAjsG4hreyirKyk7a4l7a6ZYSI + XX59fqGdkrSym7q8i6Gmc4CFRlFUW2hpWmpqWW9ucYuKjKmpkbG0f6SqcJyjdKOucJ+xWYSYWXyUb5ep + cqqtcK2sd7G1eLC3d663fLS8f7q9c7KwYKKeXqKda6+sa6+ta6yrcrKucK2nc6+jjsi8gLi5eq+4fbO4 + dK6pebqmjtSxneG4nNmwlcmph7CjsdrXc6WnY56gb7OvYqiibq2nhLq2fa2oeqiihrSqjbytj72wirav + iLGsibSrjrevjLKsj7Cxkqy3iZyxg5GoiZaskZq1iIyxdnujf4WwhYy3fIKtf4WwgYeygoiyeX+qd3yn + foKtgYSwio25f4GtgoSwgIGtenunhIWxfn+rfoCrh4u2f4OtgYWvkpfBhou1fIGriY64d3ymeH2ni4+6 + hYmzhIiygYWwdHmjfIGrhou1fYGriIy2mJ/Hgo+1kaXEn77Ok7u/mcbCmsvCkb66iLOylb++oMvHlsK7 + mse9n8zDk8C8oMzKAACNv7R/r6aLtLCXurmWtLVXcnJVb2yOqKOjv7qhvbuSp6dzfX9VXV2YoJ+otLGP + oJ1Wa2hrg4OLp6mCpahtl5xomKFrm6ldiZxhh517pLR4rK9zrKt0qq5wpKpsnqd0pq99s7h4sbBvqad2 + s69+vLl2s7JtqqlyrKpyq6Z4sKSUycCBtbdxprB8tLl1s69vtqOE1bCO4LSH06ma3LmKv6yEs62Fublv + qKdkpqBssad5tqyBtq1/rqZ/qqSHsaiLt6mLtqqIsaqGrqmHsamLsaqXu7WQsLCBnKaEmKuKma2GlaiI + kqqPlbWRlryGjLR7gqx6gKqGjLZ6f6pwd6F2eqRwc554e6aOkLyChbB3eKNxcp5+fqqJibWGhrKAgaxy + daB0d6N5fKd6famIi7eIi7d2eaV8fqpzdqJydKCLjbmEh7OChLCJjLiBhK9+ga2DhrJ9gKqFibGXnsaK + l7yKn72gv8+WvcKVwr2YycCPvbiEr66Tvb2gy8eXwruYxbuax72LubOVwr4AAI29r4Gvo464r4+zro+t + qVt0cGV7daC2raO9tZazro6loGx6d1NfWpikn6y6ta3CvHiRi1Nua3GRkIevsHemqnGmrXKptWCSpFqF + mm2YqXisr3atq3eqr3alrHCfqXinsYS1uX+zs3OqqHOsqHewrnKrq3aurnmvrm2kn3Gmm5HFvIa5vH+z + vnSus2Wln3G8p33Ur3/Yq4vhspbivXq2oneropHIw2+no2ysomipnG6om4W3rYSxqIGrpIawp4ezpIWw + o4KrpIKopISrpImuppO2r46trIOdpYGWpoSVpo2drZekuZKZt32DqHh+p4WLtoOJtH6ErnN3oXR3onZ5 + pGhrlnFzn4eItIOEsImKtXV2ond2ooKBrXRznoKCrXh5pW1wnHl8qXt+qn+CromMuXl8qHl8qX+Crmtu + momMuIKFsnx+qoOGsnt+qnh7p4WItYSHsoGFrJOawY6dwIKYs5y8ypnBxJG+uJnKwJC+uIGtq5G8uZ3H + wpTAuJjGuZvIvY67tZjEwgAAi7moibWnlLyzjK+pl7OvbISAVWpjiJuQpL2xmLeslK+jcoJ5WGRbi5qR + oLCnnbWrYX1zY4F6i62qhK2tcqOkcaetZZ2nWIuZWYWYbpuph7q9dKmpcKKndqWsbpijcJmkgq+ze6mr + apqac6ikea6tdaqrfLGxeayrap6ZdqqfjcC1jMDBfrO7a6OnZ6WfdsKqgtuzgt2tgtyriNiweLihZ56T + hbu0isC9eLCpaaSVeK6fi7msibCojK+sjbOshq2hgamdhKqkg6ilgqifiq+kkrWtja2qdZGWcoeWiJmp + j6Cvkp6xiZGtfoSndXujeoCrfoKten2pb3KeeHumeHqmZ2iUbW6ag4SwgYGscnKde3umcXCcenqlfHmm + fHqmg4KubW6acHGdgIGseXqlhYeyhoi0eHqmfoCsbnCbfoCsjI25fH2odnejf4CriIm1hYaxeHukgISs + jpW7jZu+kafBnLzImsPDjLqzk8S4hrWsfKilj7u2l8G7k7+3ncu9lsO3jby0ksC6AACMtqWSvKyTurGJ + q6WaubSFn5tnfXRhdmhmfnCAmYyLoZRve3BdaFuNmo19joFqgnVphnmIqJ6RtK18o6Bum5xsnaNtnqpt + mKdmiZx2m6p+r7Nwo6N3p6x0oqptl6F3nqh/p612oKJwnZ10paR7rayCtbd5rK1+r657rahwpJiTxryD + trV3q7FzqKpinJNyt56O4biN5LOF3aqS4rd1tpxon5J8samRxb+Lwbh1q557q56JsqiHrKWNrquRtK2N + saaFrKCFqaODpqKDqJ+NsqeKraSFpaB2kpZxhpR5jZp+kJyRn7GOmbJ5gKCBhqyDiLJ9gKx6fal+f6uF + h7Jyc59eYItrbJh7eqWDga15d6Nyb5x0cZ12c6CAfapyb5x5d6J0dJ1ycpuFhq+EhK6EhK2Pj7h1dZ97 + e6RwcJl5eqOMjbaBgap5eqN8faaEha2OjreChKt1eqCHkLSKmrqUqcSjxM+hysqWw72bzMGJuLB+qqeS + v7qbx7+YxbugzsCWxLeQv7eYxsAAAIuwoJe8ro6yqYmrpZq7tpOwq4ukm4CXimqAcmB2Zl1uXmJrXF9o + WG15aXWGdYqjkpGvoJW2qYGkmnidmHefn3CZnnigqnaXqGd+knSPn3uqrXerqoCxtnWiqnCZpIKos4Kp + r4Cpq3aiomSTknampXKjpG+io3uurHOmoGqdkoq/s4O2tHmrrnOkommeknm4nZHasI/erIvdp5bgtH+8 + onWrnXGknYK1sJHEvXyuon2nm5C0rIuqpoWjoYuqpoutooWonX6fmnudmX6imoeqn46vpoaln3SPkXeN + mIGVoH+SnJKjsJikuoWMq3uAp31/qoqMuIyPunBxnWprl3FynmlplGxsl3l4pHt6pX57p3Fum357p25r + mH57p3d0n4B/p4SEq3R1nH5+pYSEq319pJSUunh4n3l6oHh5n3V1nISFq35/pXt7on19pH9/po+Qto2P + tnh9ooSMsIOSsoOZs5q7xpnDwpjGvaDSxZbFvYi1r4+7tJO+t5TBtqHPwJfFuI+9tZTCvAAAjK6glLar + f6Obg6ijiq6pe52XjKqhnbaqmrGiobekm62ZoKqZmaORnq6asMawsdC7ocWzlbysgqidf6ahe6Sjc5qf + ep2oc42dcH+VhJuqfautfLKxe62zbp2la5OfdZyneqKnd6Cib5mZcZ+dfa2uapudc6and6uqYZaRaJ6S + e6+khrq1fK6tcqCbe6mai8GjlNOlkNWhjtejk9irh7+mdaiccqKbf66rkMG6h7ashayjja2miaajiaSl + iqijjK6kiayhgJ+bfp6chKWchqqeiKugiqmifpmcd46Yeo6Yf5Obmaq2l6S4fIShfICngIKteXqmcHGc + a2yYd3ikcnKeYWCLbWyXgH+qe3qmd3ShdHGdfnqndXKfgn6qfnulenmhf3+le3yhgYKnhYesenugh4mu + enyhdXabgoSpc3SZfH2idneceXqfgYOogYKniouxio2yeH6jgYqtgpKxfZStmbrDkry6kb+0k8W3kcK3 + jLq0lsK8nMjBmMW6nMu5j72ujLuynMvDAACYt6ubu7F8oJiNsayWubSAoZySsKmct6yMpZWKoo98j3t+ + jnp/j3t/lH+OqZOTuKKlzrqTvayAqp5/q6J0oZ53oaWCprBsh5Zvf5GCmah3paiAt7Z3qa50oql3oKp3 + naeHrrSAqattmZl2pKJzo6J0pqZxpKRvo6BqnphonpKAtKh9sap6rql+q6J8ppaOvqCk3K+e3KiT1p+c + 26+WzLNypZZ0pZ14qKOBsaqLubCQtq6PrqeOqKWLpqWHpKCMrKKMraKCoZyBoJ2IqaGCpZmQs6eaubKC + np93jpiBlqCInKKSo66IlKh1fZp6faR3eKN3d6N6e6Z0dKB0dKBpaZVnZZBxcJx1cp59eqZyb5yBfap4 + dKB+eqWCfamEgKt9fKJ8fqCBg6SFh6mJi62GiKmDhaeFh6lydJaBg6R0dpiChKZ5e514epyChKaAgqSF + h6mKjbF/haiDjK6Dk7F4kKeZvMWSu7mSwbiay72Mu7GCrqiWwbuk0Mej0sSk0sKRv7CNu7KezMQAAJW3 + ppKzo4Ghk5W0poqnmYull4eekG+Fd2h8bmd4a2R0Z26AcWV3aGR3Z2N5aG+Fc4OdjIunmY6uo4Gmnm6X + k3mio3ujqGSGkGyGlGmGkn+nqn2pqXOdnISrrnWanX2fo4KmqXidn3Sbm2qVk3GdmnimoWualH2spHak + mWmWiIe0pIezpoOtpYCrpXiknIe4oZ7VrJ/ap5vWoqHcrZbMrIO6o2ykkW2klHesn4CwpZS9sJS3qIOh + loiknI+tooyrnH+dkIGcl4KemnqakICgk5OyppWxqYadnYWXoI6fp46cpIyXpYKHoGpsjWtrkoB7poF8 + qHh0n21olXVvnXVwnmZgjm5pln96pnJtmW9qlHhxnHZxmX55oYN+pXl2nICAon1/oHp8nn1/oHZ4mnt9 + noGDpHx+oG5wknh6nHl7nX1/oH+AonFzlH6AoouNr4mLrI2OsIOGp4GKqIGTrHmSo46wuI+4t4u2sJO/ + toizq4StpZC7spTBt5bFuaDPwZrHuJXBsqbSwwAAl7yoiq2Yf5+Mmbejkqyado18bYFwdId3jqGTm7Km + kKibm7aokKudk62elKybip+QZXpsaYB0hKGWep6WcJqVe6emdaCja5GYZIaPZYiPhq2tfKaie6Oggail + eJ2bgaOig6WlfqOieJ+dbZaReaSefKiheaachrGldqCSeKGSkbmpkLeqh6+mfaaheKOeiryom9Srl9Gf + ls2cotmrntayjcapd7GZerWed62deKeclr+wmL6pgqOSjaqelbKjjq2cfpyNgJ2WhJ+beJaMgaCUjKqd + iqSbfJKTe4yUjJqjk6Goj5injJCqgIGjdXKadm+Ze3SfhX6qdGyZbWWTdm+db2eWcGiWfXajeXKee3Se + eHKbeXObgX2ihoKld3SXeHmZd3mafH+fh4mpgIKienycenyccnSVcXSUeHubgYSkgIKih4mqdXiYfYCg + jI6uhYioiYqriYqshoypiZuygZyrkbS7lL29j7i0lL23irOsiLGpkb20kb6zksK1nMy/mMW4k7+vqNPD + AACUu6aTuKSLsJyXtqOVsp9mgW9ognCTq5qduKiQr6GFp5iRtaWBpZV7noqRr5yhvKx1kIBceWp1lol2 + nZN4op1/qqhym51xlptae4Npi5CDqql9pqCHrqt9oZ+GqaiJqqmKrKqMsK19op93n5p/qqN9q6GFsqZ8 + qJtpk4V7pJOLsqKKsaSEraR4oZt3opiRwqmj2bCXzJ6QxZei1qui17KZ0K+FvaF6s5txpZZynpWLsqSa + vqqOsJ2IppmLqpuLq5mBopOGpZ2Kp6OBoJaFppiWtaeGo5hpg39vgomElZ2OnqWXobGTmLN1dpdxb5R9 + eJ99d6CBeqR4cZxwaZVsZJFrY5F2b5x6dJ94cpx5c5x5c5t5dZt+ep2CfqGBfqCDhaR/gqB+gZ+HiqiG + iad/gZ99gJ5zdpR9gJ53epiDhqR9gJ6FiKZ3eph5fJqKjayLjquLjKuKi6yFjKiLnrOFoa6StryVv76U + vbiWv7iMta2IsKiOubCQvLOSwLaYx7uQvrGLtqmhy70AAJjBrJK6pYWrl5a6pZm6p22NemiEcZOwnqHA + r4qsm3+hkoOmlX2gjYCgjZCtm5+4pm6HdWuFdn+dj3qcknygm3qhnWyRkmeIjVZxeHGPlH2kooCqo4iw + q3yhnIqtqoqsqomrp4irp3qgm3uknX6poX6qoIe0p3eilG2Xh3qikYuyoYetoYSro3ulm3illJbIq6/k + u5/UqJbGnafWr53QqaneuZHKqHStkHSmlnmjmn6llpa8pZ7BrIeomoSmloOpk3+jkoGim4OjnnqckX2h + koOlloakmXiSjm2Bh3yPlo6fp5CcrIWLpXBylHNxlYB8oYB6ooJ8pHhxm3Nrlm9ok2tkkXVumoB4o3x2 + oHNtlW5pkHZylYF9oYeDpYaEo4WEpIWFpYSFpImKqYqMq4SFpISGpXN1lICBoHd5l4mLqnt9nIeIp36A + nnt9nI+RsI6Rr4iJqYuMq4KIpIqdr4Shq42ytpO8upa/uJfAuIy1rYewp4u2rY66sZK/tpXEuou4q4aw + pKDHuwAAnL+qlrijg6OPm7ikmrWhjaaTepN/gZiFmrKgmbKik6ycjqiWjKaTkqmVhJqHjJ6Leot5j6KS + jaOUgp2SgaGaf5+be5qbZX+EZHl/iqOniKyok720iLGqfqSehKiiiq2njK6oiKulgqehgqujgauhgqyh + hrKkd6KSfKaUdZ2Ki7Ohhamehamhgqqdd6SPkcKisOO5o9SplMCansukotGord+2oNauh7ycf6+efaeg + faOVjK+Ynb+qmLmqhKaWf6SQep2NepySgKKbfKCTgKOUkbKjiqqdepaSgpaciZuhg5WaiJWjjJOqcnWU + fHmbg3yge3OagXmhgHmheHCZamGLaWGLenKcgHmhgHigc22TbmeLeHOVgHubgHuag3+egYCeh4mlh4qm + hYmkhYikg4aijZCscnWRe3+bdXiUjI+rdnmVhomlhIejgIOfkpWwio2phYWjl5a0hoqljp+whaCsi6+z + lLq6m8O9m8O7kbevirGpjbaukby0lsS7m8i+j7muh7Cmpc3CAACKnIiEl4NwgW17i3d9i3iBjnt9ind6 + h3SAjXyCkYF/kH9vgm9qfmlvgWttfmd9iXR9inaImYeKno+En5GFppyJqaSDoqB0j5Jyio6Io6WUubSX + wLaKsamJraaNsKmQsquUta+KrKaEqqKLsqiIsaaOuq1+q5qBrZt1oIxynIaQt6KCp5qBpZmBqJh5pIuX + xaK25bqn0qmTvZegyKOhzaOv3rOs37SZzamGtJ+CqaCJrZ6TtJ+ev6ugwrKRs6KFqZR7n414mpB6mpSB + pJeWuamYuqqQr6J9mJJ4jZCIm6CKnKKGk6B+hZ12eZh2cpWAeZyEfKKCe6B8c5t4b5h1bJRqYop0a5KK + gamCeaB3b5Nxao11b4+GgJ+JhKJ9eJWEg56NjqiKjKeKjKaKi6aIiqSIiqR+gJqAgZx7fZeCg56EhqCI + iaSIiaSAgpyPkKuSk62GhqGRj62Gi6SQobGKpK6TtbmVvLmZwbugx8CXvbWRt6+SurOSvLaZw7uZxLyN + uK+WvLWexLsAAJ6smJimkYaTf5GfipShjpGdiZahjZ+rl5unlJGfjJCfi4KTfoWXgYuehpKji5mokY6f + iImbh42kk4Wlloasn42zq4OopHyennSSlX6enZW8tZa/s4yzp4iro4mro4iooIqro4Omn4CmnIOsoIKt + oJXAsIOwnYiznnOchnuii460n4mtnYqtn4asmYSrkqPNqrvnu6bQpJm8l6nMp53EmrHdr7bouaXZr5PB + pomvoIWmloSkj46tmpu7q5K0onyfim2Oe2+Ng3COhneXio6unZS0pIiomnWNiXeKj4ean4eWnIyWo4GJ + oHN0k3hzk4V/oImCpoV+oYJ6oH51nHlxl3Vsk3tzmYd+pHtzl3hxk3ZvkHRujYB6mI6JpY2JpYyKpIuM + pYqLpImKo4eIoYmKo4SGn3+Bmnd4kYaIoXt8lYSFnoGCm4mKo4iJoZOUrZSVroWFn5STromPppKjs42m + sJa2upO7t5K4spm/uJa7s5K3sJO6tJO9tpjBvJfAuoy0rZzAupe6swAAr8myscqzorqkqcKsp8Cporuk + pr6osMiys8izscSvssWwq8Gqqr+nobadm7GXp7qhpLeglqyWlK6ajbCfi7WmjLisgKmkdpyacpOTgKOh + kLaukbqtiK6igaaZhKeciquhiqyih6ifhqughq2gg62elsGwkLunhbCac5yFfaSLhauUjrKglLeni6+d + iK+Wo8ypuOC0psyfnb6WrcymkbWNqNCmu+q7suO2oM2shq6Yd5eGeJSDgp2NlK+hm7mohqWQcI58dpGG + e5ePgJ2Qkq+fk7GghqKTcomDdYiLiJecjJibkpumhougb2+Ld3GQf3iYhX6gg32efHSYeHCVfHSYe3OX + fnaah3+jgnuegnucdm+Oc26LeHOQiYSfioagiYigkpSrlpiwj5Gog4WdfoCXhYeef4GYe32UhoiffH6V + goScgoSbiYqihIadkJKplZeuioqhlZOsiI2jj6CuiaOrk7a2lLq2k7eymLy0lLixk7axlry2mMC7nsbC + ncXAkLaxnL+5mbq1AACixKumyK6ZuaGgwaihwaifv6eixaypzLKsx7CkuqSWrJWLoYiLo4iDmn6BlnqN + oIWEln6Bln6MpY+PrpyUuqmVu6+Cp6JzlZFph4Z3lpOTt62Qt6mGq59+opaKq6GYuK2QsaaFp5yGqp2E + q5yFrp+RvauUwKqIs5x6ooqFrZOQt52St6GUt6OJrpqCqJKXv5+w2Kus0KClw5mtyaKTtI2myqK/67u1 + 5LSm0quDrI9ukHx9l4p9loh6lYWWsZ2RrZZ8mYZ3kYd7lYyEnpKVsZ6Trp2EnI50iIF9jI6Om56NmJ2Z + oKyQkadyb4xybYuIgJ+Mg6N/dpaBd5mEep56cJR+dJeMgqaEe55/dpeJgaCBeZeBeZd3cIuFf5iNiKGK + iZ+WlqucnbKYma6PkKWDhJmLjaGAgZZ+f5SJip98fZKBgpeFhpqNjqOHiJ2Rk6eZmq+OjqSYla6Ok6aV + prKPp6+YuLiVubaVuLObwLiUt7CRs62UubOWvbmdxb+bw76Ps6+Yu7eVtrIAAKS9pqfAqZexmqG7pKO9 + pqK+p5+8o5CslIafiIKXgHmPd3+VfZCljI6ih5CghqGulJ2okIWTfH2PeXSKeXWQgYSgloSfmYCVk3qK + jICVk4iqn4qzoomuoHufkoCilo6to4amm4WnnImuooivoJO+rZbCr53KtZG8pnyki3mgh4Opj46ympa4 + oouum32gjouvkajOobPVpqvInaS/mJm3k5y+mLLcrqzbqbDetJO8nXaWgnaQg3eOg3yUhoagjoyokoOe + i3uSiYCYkI6nmZOsm4ymlYKZiniKhIaTlZKdoY2WmqCkr5iXrnVxjnBqiYV+nYiAn4N7moF5mXtylHpx + k350mIZ8n4d+n3lwkYV9nIB3loeAm3JrhYN9lpGNo46MopeXrJmarpycsZqbsIaGnIuLoX5/lIaHnImK + n3h5jnx9koCBlo2Oo4eHnJGRppqar42Oo5eUrZGVqZusuJOsspi3uJO4tJS4saDEvJa5so6xq5S4s5W6 + t5rCv5rBvo2wrpm8uJW2sgAArcixr8iyorulpLymrsWvoLagj6OOhZiDiaCKl7Gak66Wnbigrciwobmi + obmhscews8Swq72poLSiip6Re5CHeY6Ig5WTkJ+ghpOWlaWlkayljq6jh6eceZiOg6GXlrSrk7Kom7mv + n7+yk7WmncKwmb+rmsCrlLmigaaNia2Tl7meoL+jpcOnl7WegZ+Kjq6NstKkudalqsSWn7mSmrSWm7id + qsimu9qy0+/FwtqxoLOSipuFg5eFiJ6PhpuMj6KPk6KRgo6ChJKHipmOjqGUkKaZiZ+RfpKIiJmRl6Wf + l6OgnqaqmZ6sfICTeXeOgn6Xj4yliYWggX2Zg36af3qYgXqak4yqjYekdW+Mh4GehH6ahoCadW+GfHaN + j4yhlpinnKCtmp6rl5uplJimio2clJWnioqcioqci4yehYWYhYeai42gjo+jgoWYjI2hlpqtkJiplaKw + k6SwnLO7k6+0lbe3kbSylbq2n8O/nL+6lrmzlrq0m765oMO+nsG8nL63mrq0nry2AACmxrGjwq2fu6ai + vKezyLWZrJmJmoierpynvamfvKeWtaCWtJ+oxbGat6OfvKirx7Wpw7GjvKygt6qasaaTp6GCk5GBkZGR + nqJ5iIuImZyVqaaTqqWRqKOLopyXrqqkvbaXsqmUrqWXsqaPq52Xs6ScuaicuaWat6KHo42Pq5WQqpKn + vqK4zrCiuJ6EmoOSqIq4z6W806Otw5GkupGgtZ2it6efsZ64x67b5MDg5LnGy6CjqoeIlXqBlYWGmYuL + loWXno6JjX6BhXl8hHqKl46RpJqIn5J8k4ODmIaZqpufr6WbqKeYpKuFjpt4fYyChJWJipx/f5N9fpKA + gJZ5eJF/fZaSjqiGgpx2coyMiKGDgJiBe5KAeZB9d4yKh5mRlZ+Yoqifqa+cpKuQl5+HjJSQkp2RkZ+T + k6GQkKCMjJyDg5SLjZ6OkqOKj6CSl6mTm6uRoKuZsriVs7abuLyTsrSYt7iStLSZu7qbv72cwLyavLeX + ubOfvrigwLidu7OjwLeVsaigu7IAAKjEsJ65pZqzoKe+q6m9qo6gjYyciam3prLFsqe/rJ+5pZ64pK3H + s524pKK7p67Hta7EtKG3qJ2ypZ+0qqK0ro6fmnuMiYiXmXuJjISVlZuvraK2s6S3tJmuqpquq5qwqoad + ln+Wjoykm5CpnI+om5WuoJOsnJOtnIKbiYKbiX+WgaG0mr7Nr6Kym36NfomZgbLAnMvZrcjUobvHm6y6 + nai4ppell5yol8PLruHkvt3ctLu5ko2TdX2Oe4qai4CKeZKZiJidjoSLfn+Kfo6dkpmrn5ClmH+Tg4eb + ip6wo6OyqaOysJ2qsJCYpJSZqJOVp5SVqJCSpYmKn4aHnImIn5GNppuXsZeSrYiDnZiUrY6Ko5GLooyG + nIR/lI+Mn5SXpJ6mrqewt6mwuKKnsZKVn5CSnZOToaSksqSjs56crJWVpZucrJ2fsZibrZ+jtqWrvJyq + tZeutZKtspeytpCtsZe1t5CwsJS0tJCysJi5uJm8t5m5tZ6+uZu7tZi2sJq3sJWwqaC7sgAAp8Ctorqn + m7Geq7+sp7qmjp6NkJ6Mq7imuMe1r8KworWim66bpbimlqmWnLCdrsGwsca1o7ioorWopLasobKqh5iT + cYF+hJSTiZiamqmrq7q7qbq5orOylqelmqupoLKvkKKeip2WlamhlKmfkaWal6ygkKWYkaaZgpiKf5WH + e49/pbOaxc2xnaeUdX52gIh5pKqNzNCn09WgyMmYtbuZucGsoayilJ2Wr7Sl1dW65+G6186ipqSBhI94 + jJiGgYl1jpSDo6iZjJKFgIx/j56SqbyuprmqiJyMjqGQpberpbSsp7Wynamtk5ykl5yplJimkJKjj5Cj + h4mcfX+SgoGXj4ylmZavlZCriIOelZGqiYWekYuhjoifgXyRhIGVk5Sko6i0pKq1oqiyoqWvmZumlJWg + jY2bmpqooqKwnJupkpKhl5enmJmqkJKklZiql5yskp6qma20layym7K4la+zm7e8lLG0lrS2krGxmbm4 + mbi3mrm2oL68nLq1nrq1nbiznbaxpsC6AACovqyyxbSjtqWtwK6vv66isJ+appalsJ+1wrK0wrKksqGc + qpijsaCSoI+Zqpivv62zxbSouququ66er6OSo5mLnZWGmJOWp6SNnpyVpaWhrrCms7antbWeqqqhrayn + tbKbqKSYpZ+ir6ibqaCcqqKot66hsKegr6eQopiHmI6CkoaxvKXM07aYno5weHSBhX2en4jJyKLZ1J3R + zJe/v5jEybGps62RnZ+gqKLGyLXj27jg0qO8tYyTmX2Jk3uPlX+OlH+jqZiSmYqAinyToJOqu66mt6mH + mIqRo5SwwbSqubKrubaZpaaOmZ6NlJ2XmqiPkqCKjZ2Ji5x6fI55eI2OjaKbmbGSjaeKhZ+SjqeFgZqV + j6WSjKOAepB/e5CMjqCjp7eprbyfoq+anKmYmaaSkZ+Dg5GMipibmKeVlaONjJyVlaSWmKiNj6GRlKaR + lqiKlKORoKuTp66dsbiZsLaetryWsLSYtLmWtLafvb6auLiaubigvryeuremwb6fubWdtrKhurYAAK3A + r7nLuqq8q62/r7LCsam4p52qmpegkqOtna24qZqllZKejaKtnJqnlaOxn7TBsLXFs6e3pqCwopanmZKj + l5usoqKyq6Ozr46em4+enKe1tKu4uqy4uKWwsKKtrJ+pp4+Yk5SclqeuqKKqo6ewqbfCu6+7tau3sZmn + oo+emIWUjKu3ocXNsJGXiW5zdISIhJ6ejcrHpeDapN/bocTDmMzPtKu2sZCgpp2qq7S6r9XRsN3Pn8G4 + i6mqiZSYfZSYf4+UfqitmqKqmomUg5qnmKKyo5ammIKShZOkl7LDuKy7tKy5t52np4+Zm5CWnZygq5SY + oo2QnIyPnXx+j3R0h46MoaGetZKOp4yIoZaSq4iEnZONpJeRqIJ8k4aCmIyLoZ+gs66xw6ipupubq5OT + opOSoImGlJCOnJeUoZSRn5COnpiYqJybrZWXqZeYq5eZrJCXp4+ap5Cgq5yrt5mrtKG0vZmvtpu0upi0 + uJ+7v5q2uZy5uqTAwJ+6uqS/vp23taG5t562tAAAqbuqrL6tqLmprb+utMW1sMCwr7+vq7mppbCgoayc + jpiJgox9mKOUmaWTm6mXoK6cnKqYlqWUlKSTo7Olr8CzqLmtn7Cnl6efk6Kcnq2prLq5p7W1prKyprCv + qrSypKypjpWPk5qTpq2moamhpq2mtL23sry3rrm1nqyom6imi5mSnKeUwMmvlp6Sb3R2hYmHm5yQv7+g + 29il3tqiyceZ1Ni5sr+4lqmsnbGxnqyjuruf0caZvrOHsq6JoKGBiYtvi493rbOgr7injZmGipaFnKqY + laSUg5KEk6KXrLyxqbixrLm0prGukpybm6GloqivnaOqk5ehi46beHyLb3CBjIqeoqG1kY2kjoqinZqy + kY2lkoylmZOsfniQhoKXjoqikJCmoKC0qKe8mZmrjIqck5CgjIqYmJail5WhlJKelZOhmpmonZ2unJ2u + mJirlZerl52ulqCvlJ+tm6e0lqSworK+na+6n7S8m7K4m7S5mLK2n7q9qMPFo72+obq7nba2qsLCpLy7 + AACsv7CxxLWrvK6uv7GxwrSsva+vwLKwwbOzwbS5xriotqigrp2vva2ksqCfr52isaCfrp2mtqSuvau2 + x7a2x7mnuKujs6ihsKeYqJ6cq6Wquberu7msurimsa2rta+wuLGhqaCorqOrsqaWnZGlrKK6wrq6xL61 + wbyhr6yaqKeKmZWRno3Fzrejqp5udHOGi4mZnJKxspnW1qnW06HR0KPR1bW9y72bsKubsq+dsKigpY+7 + so7Jv5fAuJGvqIaHh2l7f2WhqZSwuqaRnYmKloKfq5icp5aGk4SWpJmxv7avvre0wbqrtbCXoJ2epqap + r7Ojqa+aoKiOkpx1eYVwcYKRkaSop7uXlKqRjaSdmbKQjKWSjKWXkap7dY6AfJSSj6mVkq6bmLOopLyk + obaXlKeWk6ORjZujn6uhnamZlqKXlKKbmaign6+gn7GcnLCYma2Zna+co7WcpLWhqbqeqLeerbqdrrqh + tL+kucOetLuasbeiu8CqwsanwMKkvcCgubqlvL6jurwAAKe6q67Asau9rq/Cs7PGt67Bs7HEtrPGuLTG + t7jJvK2+r6e4p7fIt6y+q6u9qrTGsrjKtrvMurfItrTGtK6/sKi4qrC/srTCt6a0qZ6tp6u8ua2+u629 + tqW0rKy5r7W/s6iypKy0pbG4qaKpm6+3q8DKvrbBuKi2sJemo5ytqqCvq5qll8fPu6yvpXFzcYSIhJOW + jKGjjc7NqdDMoszIoMnJqMfSvqq9sae9tKa3rZaciq2ojMvCnczAmNLJo6yqipSXfrW+qcTPvJ6qlY+b + hZumk5unlJKej6ezqbzKwrK/urG+t6q1sJukn5yko6ivsaSrr6GnrZKXoHR4hHZ3hpybrayrv5mWq42J + oJiUrY2KopKMpZeRqn13j4aAmpiTr5aRsJiUsKaju6ijup2Yq5mVpJOOnaairqWirZ6apZeTopuYp6Kg + sKOitKCfs5qZrpqbr6Kkt6Gmt6CnuKGpuZ2nt56ruaGxvKa5xJ2xu5yxuKO6wKa/xKe/w6W6wKK5vaG3 + u6O5vQAAqb2vrsK0qr2vsMO1tcq7sce5s8m7sce4r8W3tMq8p76vormntMq4qsGtqr+tssmzuc23s8ey + rcGstsm1u868uMm5uci6tsW3rLmurb20tcjCsMW/rcG5q7yxtMO2tsKzo66dpK2cucGuuMGvtb+vusS3 + q7isobCpmKmjorSxqry4pa+jvsGxp6acfnt3jo6ImJqPoJ+Pysaq0Mypz8ejzcem0NW8uMa1rsCypLSn + lpyLp6CLv7KR18eb+e7E19Syp6uOtb+puMWyk5+KhZJ7maSPmqSRjpqLprKovcrEtsS+uMO9sbyzn6ih + n6ilrLSzp6+xqrC1m6GoeX6IfX+NoKCxqqm9l5Wpioeem5ewlpKrnpixn5myf3mSh4GbmpWympS1m5a1 + qKO+p6K7oJmuoJqrlJCepZ+sr6q1o5+pm5ehnZqnpKSyqai5paO4nZyxnp2xpqa6paa6n6O1pKu9n6e4 + prDBorC+pLbBnbC7obW+p73EpLzCp77EprvAprzBn7W6qL7EAACvwravwraou6+swLGyxrevxLWwxbes + wbSrwbSzybqswrKpv625zryxxbKtwa6zx7S0yLWzx7SuwbCyxbW5zLu4ybq2xrmzwrSuvq+2x7i80MSx + xLetwLOxwLG4x7a2wrCfqpicppWnsqCfqpqbp5qntKmnta2quLKhsKycrKmHlpOYoZmws6acm5KGhX6T + ko2dn5ilppjEwqvQy63WzqnVzqrPz7O8w62uuqqYppmMkoWXk4Oon4XQxJ/8+M/i4bmtsY2mrY2pspWQ + l3+QmIOfp5ObpZSCj4COnI+yv7W2w7y9yMK3vrmgpqSkq6yttbiorrSrsbefpKx+gY1/gI+cnK2pqLuf + nrKOjKOZl6+TkaqXlKybl7B/epKKhZ+alrOblrabmLainruloLqhnLGfm6qWk56hm6ayq7ipoa+cl6Wc + mKelpLKqqbqmpbecnLCenLKmprqjpLidobSjqbydpbeksMGisr+gsr6arbmftb6ku8KiusCmvMKjuL6k + ur+ftLmqvsIAALHCt67As6y/rqzArq/BsLDEsrDDtK7AtLPEtrrLvLjJt7TDsrvHtbvGtbO+rbrFt7rI + vLbHu7XFvLXHvrbJv7rOwLzQwLvNurbHsLLErsTVwb3NvMXUwcfWwMDNt7K9qZunlJGcjJ2pnZ2rpJCf + mqKzr6u7uai1tJKgn4+cm4WPjJ2loK61rqClno2Ri4qQi5qhnK+zqLy9qc7KrtfOqObft9TRr8TGq7e/ + rpqlmoeOhIuMgp6djMvKrvb1z+rsvtTVo7CwfrGxhaGhgZ2dh6OomLfCtZSkloSWiLHBs7fDuL/Fwr/A + xaeqsqSptKivu6SotaaptaSks46NnYeHmKGhs6+vwp+htJaarZ6iuZeaspGTq5uasn16lImFoZuZtp6f + vZmaupuauqyqxKurvJucp5+epaWjrLGsvLCpvaSfsp6crKemtK2uuqantpybr6GftaqqwaSlvKWqvqGo + vJqlt56tvqe6yaK5xZu0vp24v6S/xanDyKnDxqjAwqe+v6q+wKu/wAAApbatrb2zscS0rsKvrsKvs8a0 + s8W4qrqwqLqssMGwpbekna2Yqbaisr2qtL6svsm5v82+ucm9t8i9t8q/uM3Cu9HCvdG/vNC6ucy1uMqz + wNK+ucq4vs25xdO+zdvFxdK9q7ilpbOlsL+1qLmypbezq727pba2obGwj56dl6SiqbSxtLu4oqmjmqGZ + k5mPh46GnKOer7Ssrq+fv76j0Mmj6eK43tu3vr+ioamYk5uUkZeOkJKFn6GOy86z6+zH7e/B4OGvu7mH + u7mNsK2Nn5+Jr7Skx9HEqLepmaqbtcW4tsO4ucG9u7zDqqy2nqSvoqu2oKazpai2qKi3l5emkpGipKS2 + rK/An6O1mZ2woaa7mp+0k5WsmpqyfnuVi4ajnpy6oKG/nJ29nZy9p6fAqaq6oKOso6WqrKu0r6u7rai9 + pqK2op+wqKi1rq64qKi2n5+yo6O4q6zEpajAoqm9nKW5mKa4n7HBprzKobvHpL/IqMTLqMXKqsbLrMfK + rcbIrsTGrsTFr8PFAACdrqWqu7Czxbaww7Oww7G2ybi5y72wv7WnuKupuqiktaOdrJeksp2ns56ns5+3 + w7G/z728zL66zL+6z8G80sS+08W/1MG/07y+0bq90Lm3yreou6mmuKevv6y8y7a2xLGYp5WImYmVppuk + t7Crv7qgs7GLn52XqaiVpaSdrKqwvrq0vbqQl5KTmo+dpJWQloulrKezubOnqJ6ysZvIxZ7g3LDa2bK1 + uJqXnY6WnpidpJqXmoiipY/Mz7Pe4Lzm6L3l5LW9u4y+vJK1s5ShoIu2u6vN18q4x7qsv7C6zL66x7+1 + vrqxtrmnqbOfp7Kmr7mjqrSnrLarrbqenayYmKijpLaqrb+jp7qbobSmrMCfpLmXmbKenraAfZaLiaOe + nrygosCdnr6cm7yhoLqmp7ejpa+kqKyur7evrLuwq8Cpp7qmpLWqq7iur7qpqbekpLenqL2ssMaorcWg + qLyYpbiaq7yjtsenv8ymwMyoxs6qyM+px8yryMyryMutyMmvx8itx8atxcUAAK29tbHCuLHEtq3Ar6y+ + rbHEtLnLv7zMw73Pwb/Rv7fHtKe2oaW0naKumKCslrK/q7/Ou7zNvbvOvb3Tw77VxL/Vw8DVwcDVvcLW + vcHWv73RwKC1ppermpirmZ2unKS1o52tnoudj42hlaK2sKi9upmvrJCmpKm9vJaop4ydmay7t7K7uYmO + iZGWiKatl52jk6mwqrG1tK2uqqqpmsK/m9XTpt3dtMHDpZ6jlJWblpyilp+lkK60nMrOtNXYt9nbstzd + sry7kL+9lre0lqemkb7Csc7WysDPwrfJvL3OwsDNx7jAvrC1uKqutaKrtKy0vqmvuqqvuautup+frZub + qqSmtq2wwamuwZ2ktqevwaGovJygt6Klu4KCmomIoZ+gvaKlw6Ciwp2ev52dt6WnuKeps6Omq66wuK6r + u7Gtwq2rvqmouaytuq6xuqqruaipvKutwqywx6uxyKCqvpmnuqCzxKa+zafBzqjEzqTEzKPEyqjIzKzL + zqzKzKvJyqzHyKzHx63IyAAAtMS9tcW9tce5tce3tMe3tMe2tce7uMjAwNLGxdbFscKum6uVl6WPnKmR + o7CZuMewwdK8vM67u869vdLAvdXDv9XDvtO/vtK7wtW+xdjDzOHStsu9us6/s8a1nq+flqeYkqOVfZCE + eY6Dma+ossjFo7q3kaelqL26nK+tlKahs8O+tb67i5GLkpeGqa+ToqiUp6ylq66tsrOyqqqcw8Ogz9Cj + 19iuvL6djJB/dnp0g4l7pauTwMatyc+31Nm70tOw1dSuvbuUv7uZs6+UrayYx8m70NfLw9DEusvAvMzD + wtDKusbFtby/sbe+n6ixrLa+qrO8qK+5p6u4nZ+sm56rp6u6sLXFrLLDnqW2pay/oqm8nqS4p6q+hoad + h4aeoKG9pqnHpafHo6PEnqG7p6u6qq63pKitra+3q6q5sK7Cr63Aq6q7rq+7r7G7qau5qau/q6/Dqa7F + qbHIoKu+m6q8o7fIqcHQpsHOpcPNoMDIn8HHp8nNrs3Rr83QrMrLqcfIrMjIrsrKAAC3x7+6y8K2yLyz + xre5zL29z8G8zsPB0cnG1sy7y76svKytvKmntZ+wvaaxvqfE073J2sTC1cG/08G/1MPB18fD2MjC1sPB + 1cDE18HH2sa+0sa1yb++0ca0x7muwLKhsqSTpZiQoZaVqJ+pv7mxyMShubaUq6mMop+QpKKgs6+uvril + r6mMlIuXnYerr5CorZatsam1uLe1t7ixs6jQ0rLZ27DJyqG+v52io5GLjoWIjX2epIu9xKrK07nV2sHV + 2LnMyqrLxqXGwaK5s5rJxrLS1MbIz8PAzcLC08rE1M3B0MvAzcy8x8mwur+gq7KuucGvucKrs7ukqbOd + oKukqbSssr+ttMKwucimrb6gqrystMagprqprcKRk6eFhp2doLuorMqkp8emqMinqsSprb6rsLqus7iv + srqtrLuzscWyscSurr+ytcG0uMKtsb+rr8OvssaprsWosMelsMSiscSmuMmqwtGpxNGhv8mhwMmixMqk + xcmszNCy0dSxz9Csycqqxsarx8cAALPCvbrKw7vMwrjKvbvNv7nLv7TEu7jIwbzLxKu6sZinmpyqmqez + obfDrbnEr8TSvMfXwsHTwMDTwcHWxr7UxsDVx8jbzMzdzcTVxLjKu7vMw77PyLvMwrLCtrbFubfEubrJ + vrnIva2/t7DEwKq+u5GnpoOYloOXlJCjn6W3saa1rpehmYyThpWbhKmtjrW5orm9tLrAvcLHyLS5r8TJ + q9jas9HSqsTEoq6vmZiajI2SfqCnjLzGrMPNtsnRudTWvMfGqd7avd3WvNjSutvYxtTVyMbMwb/LwsDQ + y8LSzsDQzcLPz73KzLK+wqOwtam2vK23wLC3wKWqtJyeqamtubG4xa22w7C6x6SuvZ6quqq0xaGou6mv + wpCVp4SGnJyeuqWqyKKlxaSmx6aqw6mtvquxu6+1urG2va+vv7OxxbOyxbGwwbO1wbS4wa+ywK6xxK2x + xqesw6uxx6axxaOyxKS2x6e9zajCz6TAy6LAyKLBx6XEya3N0LbU1rbS07DLzKvGxqvFxQAAprWxscG6 + uMm+ucu+vM7Bu8zAtsW9usrFucjErbq2rruzsr+ztcGyusazx9K/zdrHw9K/wNHAwtbGxNjKxtvPyN3Q + ydvPxdbKwtLEv87CucjBusnFxdPMsLy0mKOZnqieoa2kqLavqbeymKmmnbCtnrKwnLCumKuoiZqWmqqk + pbSsmqaaj5aFjpN7oaWIvcCqub+zp62psbi3pq6mo6aPxMal1NWwzcypvb6kqayWn6WMt7+j0dvB0NvF + 0drD2t3FxcWr4d3C5uHH6OHM4d7L19fKytDGw8/HxNPPxdbTw9TTxdbVxNPTusnLq7u+q7m/sbzDt8LJ + qbC6nKGsrbS/ucHNtb3Ktb7MpbG/n6y8rbjJp7DCsbfKlpqsg4ebnaG8qbDNpKnJp6rKqK3GrLLBsbfA + tbvAt73Et7fHuLbKtrfJtbfHtLjEtLjDsrfFsrfJr7PIrK/GsLTLrLbKp7THp7fJq77OrMTSqsbQqsfP + qcbNqMbLrszQt9PWutXWt8/RtMzMtMzMAACsure2xb+5ysC7zb/B08bC08e+zsbE086/zsqlsrCUn5uT + n5auuK25w7TG0cDH08LE08LF1sfE1sjD18vG2tHH2tHA0cm6ycG+zMLG08vF0s66xcO9xsO6wr2rs6yr + s6qgqqGeqKGyvrmuvbqVp6OJmZiMnZugsa6GlZKOnZiksqigrJyNl4KLkXeho4a+v6rBx7mttq6yu7i1 + vra5u6jCw6fLzKrDwp+8wKG5vqLByKvY4cTe6NDV4cza4c3T1sK+vajDvafg2cLr48/v69jf39HM0sfG + 0crG1dLF1tTC1dTF19fG1tW9zM6xwsWywca1wce5xMqvt76gp7Crs725w8y6w863wc2msb+frLuvusqs + tMa2vM6YnbCBhpqepL2stdGmrcynq8yprsarssKxt8C1vMG4vsW7u8u2tsq1t8m3ucmxtsKvtb6yucWx + uMqvs8iwssmxs8ustMepssWqtsiuv8+vxNOqxdCtyNGsx8+nxMmrx8y0ztG50tO50NK5zs65zs8AAL3L + ycPRzsDQx7zOwsDRxcDSxr3Nxr7MysPRz7vIx6KvrZaim6Wwpqy2qcbQwczXx8rXx8vbzcrcz8TXzb7R + ybzOx7/QycLSysDOx77LxMjT0LzGxJKclq62r7rCuaOsoaatpbO7tbnFvsPPzbfFw6Kwr5Wkoqq6t4aU + j4qWj6axp6KtnI6ZgZidgqinjra1oczPwcvRyMTMx8fQx9PXxM3NtdTRssjFo7y8nLe7nMjNr9zkyNHb + xMvXxN7o1tncydLSvru1ouXdyujhzu7o1uTl1dLYzMrVzcvY1MnZ18bX18ja2sjY18DO0LjIy77M0brG + zLnEy7S8xKastaiwurnCy7/J07nD0Km0waGtu7G8zK+4ybnB0pqhs4GGnKKowrO61qqwz6qvzqqwyK21 + w7C5wrW9w7rAx7y/zrW2yba4yri6zLG2w6+1wLO6yLK5y7C1ybW4zbK0yqyyxqqxxa25yrTD1LXI1a7F + 0K3G0KvGzafDya3IzbnS1b7V2L3S1LrN0LjLzQAAt8XExtXTuMfBqbmwo7SqucnBw9LOvcrIvMvJvs/L + w9PMw9LHvcm8xM+/y9XEvce2tL+uztvNzt7SxdXMw9XMvs/KwdPOxNbQvc/IwdHKw9HNp7Kvl6Gapa6k + jpWLjJOJsbitw8rCv8jBwMnFvcfFsLq3pK6rrrexiJCJgId+rbOooqqYi5J6mJmDpaGOtbGfx8W1vb6w + xcu9x86+0NG/x8Gu4tS/3MqyxrWdzMCny8muytO31eTL0+TQ1OLR2eHR2+DOzcy6w7+u6eXT8u/e6uvb + 193QztbL1ODX0+Dby9jWzdva0NzcxtDTvsbKwsrQucDHvsXMsbjApay0sLbAu8LNwMjUvcXTqrLAp7C/ + rbXGtbzOvcTXkJepiI6kqKzItrnYsrXSr7PMrLHGr7bEtb3It8DJtr/IuL/MtLvKsrjJsLfIsLbIsbjJ + sbjKrrTHsbbJt73Qs7nMrrXIq7TGrrvLtMPTtcbTr8DMsMXPscfQrcTLssnOus/UvNDWvM7Tu87TvM/S + AADD0dC+zMqhsaqTpJqYqZ+1xbzD086/zMu9zMm9z8nC0snD0sbAzL7K1MTS2snK1MPJ1MTS3tDN28/I + 2c/D1cy3ysS5y8e+z8u8zcbG1c/C0My7xsOnr6mfp52do5qgpJyiqZ+yurHEzcbDzMjEzsvCzMmvubai + qqV8g3x3fnWxt6ymq5qLkHqamYSkoIyzrJq/u6mrqpm0uafCx7TExbPDvarj1MLkzbzMtqLLuqTHwafG + y6/U4sjX6NLX5dTh69jc4c/Cw7Glo5HNyrjv69vy8uLf4tXQ2MzU39TV39nP2tbS3dzT3d3J0tXHzNLK + 0NfCyM/DydCxuMCpsLm2vMa/xM/ByNS8xNGss8Gor8CqssPAyNrBydqEi56RmK2xtNC4uNi3uNSztcyv + s8ayt8W4vsq7wsu4wMq7ws64vs21usyzuMq0uMu1us21us2zucywtciutMezus2zus2vuMquusqywNC3 + x9W6yte3ytWyx8+xxcy1yc+8ztW+0da8z9S8ztO/0NUAAMXR0cTQzr3MxbnJvrnJvr/PxcTTzsfV08bT + 0cLRzMXUy8jUycrUx8zWxtDXx8/YyM/aytDbz8vZzsXWzb3Ox7rLxcfX08rZ1LzNxcDOyM/Z19be3cTK + x7G1sK6yrKeqpZyim7C3scvSzsTPzbnGxa+9u5mmpJShnoyYkn6IgKKroaGpmo+TgZ6ciKegjLStmc7H + srq3oq2xna60oLS3pLu6qNrOvt/Ovs67qMe2oMa7o8fEp9TZvuLu2eLu2+bu2s7QvbOyoJ+di8K/rvPw + 4P387ejq3dXc0dLc09Tg2NLe2dXg3tPe3czV2M3T2NHW3crQ1sPIz62zu62zvLvCzL/F0LzDzrO6x661 + wq20wq20xMXM3bK6y3yDlaOpv72/2ri417m51ra3z7K1yLW6yLvBy73EzbzCzL/F0b3D0Lq+z7i7zbm9 + zrm90Lm90Li8zrW5zLK4yrS6zbK5zK+3yrG8zbjE1bvK2LrL17nL1bXI0LPFzbfJ0L3P1sDS18DP1b7O + 1MHQ1gAAxNDOws3KyNTNxdPIxdPIw9HIxtPNyNPRvMjGtMC7ucW8w83C0drO1NzO0djK1dzNz9fKytXK + xNDIt8W/p7Wxqrm1w9LOxdPPr723q7ewq7Gwv8PE09bVxcfFrK6ql5mVnqGduL65xc3LuMPDoa6wm6mq + lqWmmaimipmWZXNtoa2jrbSpkZODnpiHqp+Ms6iRzMOqxsKpwsWuwMezrbSisrSlw72v0MOzzr2rzbmk + 0sCny7+h1dG25OrVvcSxrLCdoqSRxsSz39vL5eHT7Ovc9/fq7vDl2+LX1t3V1+Da1uHd1N/c0dzaz9jZ + 0Nba1NjczdPav8XMp6y0sLW9wcbQwcfSu8DMsLbCsbfErbTDtLrKwcjYn6a3jJOls7nNvsHbubrXu7zX + t7nQtLjJt7zJvcLNv8XOvcTNwMbQvcPQur/OuLzOubzPur7Qur7PuLzNub3PvcDTtrvOr7bJrrbIs77P + vMnYvcrYs8TQtsfSt8jRs8XNt8nQv9DWwdHXwM/VwM7UwtDWAAC3vr24wL3J0snF0MTF0MS/yr+7w72r + s7CWnpqUnJaXoJinr6TDyb7N08fP1cjZ4NTT29DDzMTGz8rI1NC6x8S7x8XO2tbEz8ugq6SXn5qWmpuy + trjW19jS0dHMzMrHxsPDxcG6v7yaoqGFkJCRnZ+ToaSRoKOera6WpKNVY2CAi4XEycCioZSRiXmsn4y7 + rZXJvaO+t526u6O6vqq0u6uvtKatrKC9tqnQwLHXw67hyq/ZxabGup60s52coIugoI2hoY/Rzr/n4tPf + 3M318uX8+/Dz8efm6N/e4tve5N7c5N/V3tzQ29nS29vW3N7Z3eLW2t/EyMyorbS2vMPM0trJztfFytS/ + xdC0usaorbu+w9LFy9udpbOyucm9wtW8vda/vdu/vtm7u9G4ucu7vsvBxc7DyNDBx8/Dx9HAw9C9wM67 + vs28vs+9v9G9v9G7vc+6vM67vdG8vtK6vdG1us22vc67xNW+yti7yda7yta5yNK2x8+7y9LC0NfE0tjD + 0NbD0NbG0tgAAL3DwMPJxNHY0L/Ivb7HvMXOw7e9t4ySj3h+en+GgHyDe5OYj8LGu9baz9PWzNHWy8bN + xLK5tKSsqqavrrG8usPNzM7X1MrSzcLIwpygnKeoqru6vc3NzsvJyMTDwLWzr56em62wr7C2toOMjH+L + jaGtsa27vczZ2dDd3ISRj3J7dr3Bt7Swo5uRgauei7ipkse5n7askqeki6qrl6+yoqaonZmYj6ihlbus + nNC7ptvCp9a9nr+ukaSchp+ch5uXhL25p9TPwdvWx9nWyO7q3/j27PTx6evr5OTn4eHk39zk39ni3dTe + 3dTc3Nrf4Nrd4djd4sXJzrO4vcPGzdDU3MzR2s/T3crO2bC0v620wcrQ3cPI17vAz77E0r/E1r+/2MG/ + 3MHA2r2+0ri8zLu/ysHHzsLJ0MHHzsPI0cDFz73Bzru/zby/0L2/0b2/z7y+zru8zru6zr290bu80La6 + zbe9zrzE1b7I1rvG07zI1LvH0bjFzr7L0sTQ2MXT2MTP1cPP1cXP1gAAwcXBuLy2zdLJzdTIzNPH0tjN + y8/Ir7KuhoqEZ2pkYmVedHdtqKigzc7F2tvS1tjQu8G7t726qbCwkpubjpiYq7OzxszKusG6vsC5zM3I + 09PU1dTX1dPUwr29qqajmZeSi4mFj46NlZiXl5ydusLE4ert4Ort0tvb3eXk5Ozox83Gy8zCvrmroZeG + pJeDtaaPwrKZxLaerqWPta+drq6erayeoZ2Qp5+Qs6WTvaiTvqSL1Lmc4s6ywrWfraSQrqaT2tPB4dvL + 29XH2tbK7ung+vfu+PXv8u/q7Ozm6Orl4+nk4Ofh2+Tg2eHf3eLi3+Pk3eDkyc3RvsHGys3S1Nfd09bf + 1drizdLctbrEur/M0dXhxcvYxcvZwcbTwsfYw8TbxMLdxsTcwsLVvsDQwMTNxcnRx8vRxMnPx8vUxcjS + wsPRwMHQwcHRwcHTwMLSwMHQwMDPwMDSwL/Tvr3RurvPvL/RwcjYwsvZvsjUv8rVvsnUvMfQwczUyNTb + ydXbx9HYxtDXyNHYAACam5eUlpCytavDx7vN0cXO0cbKzMTOz8vHyMStrqmcnJWnqJ/LysLd3NTZ2dPM + zcm8wL6wtbWUmpx4gINsdHaFjI2vtLKcoJp1dW+IiYO0s7LKyMnZ1tTHw8CwrKi1sKu3s66Zl5N4eHV4 + enuOkZKprq7V2drl6ejX2tjNz8qys6rCwLPLxredlIKViHavoI23pZHOvam2p5W7sJ7BuajDu6yvqJmp + n465qpjHs5++pY7Rtpzt1bzLuKOxo5DKvqzs4tHs5NXj3c/g29Hq5Nz28uz39O/07+vy7ers7Ojm6uXg + 5+Lc5+Db5eHd4+Hi5ubb3eHKzNHGyM3P0dbV2N7V2eHY2uLO0dq7wMnIy9bQ097FytfFy9jDx9bDxtfF + xNrGw9zGw9rEw9bDxNLExtDGydDHy8/Hys/JzNTGyNLDxdDBw9DCwtDCwtHBwtDBwtDAv9DAvtHBwNPA + vtK7u8+9v9HCx9nDytm/x9TAydXAyNO9x9DBy9TI0trK1NrJ0djHz9bJ0NcAALWzr7Cwqrm6sLu9ss3Q + w8TGu6ipobe2srq4tKOgm767ttnWzuHe1t7b1NjX0cLCv6OnpYmOkHyChYiPkpOZnZCWl6aqqLm6tZaU + j42Mh9TS0dnW1dnW09zX09zVz+Lb0+nj3djUz8XCvszJx8nIyLGysqeoptLSz+Tj37y7s7Gupri1psvG + tKOch42Cb6qbibGfjcu2p8Ctnb6tnb+woce6qMO3pbeqmLank8y4o8uznMevltvBqs65o8Gvm+bYxe/k + 0+3n2O3n2+Tf1trVzvDp5fz18vfx7/Xx7vDv6+nq5+Pq5d/q4t7o4uLn5ujq69fY3MnKzs/R1dfb3tnc + 4djb4tfZ4szN18HCzNLX4c7T3cjL2cnM28nM2sbJ2cjG3cjE38bE28fH2cnK2MnL1MfK0cjM0MrO08vO + 1cjK1MXH0sPF0sTE08TE1MPF08PE0sPB0sS/08TB1cLA1L+90cHB08bJ28bM28LJ2MLK18HK1L/I0sTM + 1cvT3M3V3MvT2srR2MzS2QAA2tfUysfD0tLHzMzByMe8ra2ikY+ImpeTtrOuwL24x8S/29jR2NXO09HL + 1tbQyMjHtrq5nKCimp+kt73Cy9DUtLi6nZ+fp6elj4uGenZyjoyJo6GetrOvzsvE3djQ3dfO4dnR4NjS + 2tXR3NnV1tLQx8TDrKmnraiky8TAzMS9raacoZ2Mwb2oqKGOjIJvpJWEqpiKvKaaxrCju6aXuKWVt6aV + ybqnxriirp6Iwa6Zz7miv6iQz7eg2cKszLij8+PQ69/N7ufY7une39nQ1dLJ7Oji+fLu9vDu9vHu8O/q + 6Ovl4uni3unh3ufi4+nn6uzs0dHTwsTG0tbZ3uHl2t3i19nf09XdxMfQv8HL3N3pzM7ZyMrYy87czM7c + yMraysjeycbfxsTaycjazc3by83Wx8vQyMzRzNDUy8/VycvVxcfTw8XSxMXTxcbVxcbVxMTTxMLTxcDU + xcHWwsDUwL7SwsLVyMrbyc3dxcvYxMzWwcrUwMjRxszVzdPcz9XczdLazNHYzdLZAADV08zZ1tDRzsbX + 1svV0ce+ubG9t6/Ty8a/ubWjnpnEv7rc2dXf3trU1dLLzczJzMzO0dTLztHFx8vExsrR0tbS0tW0tLWg + oZ+lp6SysK+emZqUjpKinJ3Mx8fa1NLEvbrGv7rj3dfc1tG3sa2wqqWwqaSnn5ylnJi8sq7Gu7axpqCX + kIW9t6ezq5mNgG+jkoG0no21nozKsKDFqZrGrZ2/p5fQu6rbxrTFsZ21n4rJs5zCrJO8pY3bw67aw7D1 + 49Hv4NDw5db37+Tm4NfV0Mnn4dz69fD48/Dy7urw7urq6+fi6OLi6uPi6eTs6uvl4OTLx8vHxcrY2d3g + 4+ff4ufZ3OLS09zMy9XFws3X1OHW1ODLy9nKy9nM0d/Fy9jGyNfJyNnIyNjKytjMzdjMzNjKy9bKy9bL + zNjKytfJydbIx9bGxtXFxdTExNTDw9PDw9PEwtPFwdLFwtPCwdLCwdLCxNTEx9XFytjFy9fEzNbEy9XE + y9TIztbO0tvS1d3T1d3R09vP0dkAALWzq83LwtDNxtjUzMzFvsO7tc/Gv+PY0d7U0NHJxdzW0tzY1dbW + 1M3Q0MnOzcnOz8zQ08vN0MbHy9HS1czKzq6sr6Slpqaoqaasq8HDxNXQ1dTM09fQ1uPd4dzV18nCw83H + xtvW0t/Z09XOx7qzrbSuprevqMe9udHHw72ysKOXlZCKgbm0p8e/rpiLe5eFdLKbiK6UgMmvm8uunMuv + n8qvoNe9rePKute/rbSdiL2mj8Cqkbafh9a+qebPvPfj0/np2e/j1e/m2+7n3uDa0trVzu/o4/fx7fHt + 6vPx7O/u6uXn4+Tr5OXo4+/n6uHX3crEydHN0uHf5d/g5tnb4tTV3cfFz8XBy9bQ2trT39XP28zK18vL + 2cnN2cHH1MXI08vL1szL1s3M187N2c7N2c7N2c7N2szL2crI2MrI2MnI2MjH1sbE1sXD1cXC1MXC08TD + 0cXC0MXD0cTE0sTE0sXG08TH1MbK1MbM1sfM1sfN1sjN1svP2NDR29TV3tXW39XU3dHR2gAA2NbOz8zE + 19TM39vTxsC5xLy1wrmxzMO75tzW4dnU2tXP19TQ1dfSztPRxsvKw8jJyM3Oy8/RwsTJzc7SysnNnZ2g + enx9b3FyeH18qausxMHG083T1M/T0s7Q2NPV3djX3NfU2tfT3dnT39zU19HKuLOsk42IlY6JvLOwycG9 + sailhoF5l5KGxb2vpZmKi3losZqIrZSBwKWRvqGPx6uczbGi0beo28Sz2cGuvaeStJyGuqKLuaGKxq+a + 38e06tfF/e/f+O3e6uHV9O3j6uXc0MrE39nU9O/r9O/t9fLu8O/r5ufj5Oni4+Pf6eLl3dPZysLH08/T + 5OLo4N/l2djg2tniy8jRura+zsjQ2tLd29Xf1tLdzczYyszXz9Ldzc/ZzMzWzs3Xz87Y0M/Zz83Yz83X + zsvXzcvWzMnXy8jWysfWycbWyMTUx8TTxsPTxsPTxsLSxcLRxcPRxMXSxcXTxsjSx8nTx8rVx8vVx8zV + x8zVx8vUys3W0NHa09Xc09Xd09Pb0dDYAADa2M7W08ng3dPf2tC7s6rNw7vUysLOxbzg18/e2NHb2dHZ + 2dTS1tHGy8m9w8G8xMPHzc7R1NfN0NTExsrNz9DR09OwsrKQk5OYnJqssbDOz9HU0dXRztDNy8vY1tXh + 3tzb2NTc2dTi39re29be2tXa1tHV0MzLx8LPycbc1dPm39u0rqePin+8s6e0p5mJeWmtl4W5no64m4q7 + nIzCpZbLrp/HrJ3Rt6fVvKnHrpi3n4e5oIi8oou6oY3DrJrGtKLq2srx5tjn39T17+Xs59/PycPf2dT4 + 8u758u/48/Dz8e3q6eTl5uHd3NjZ09TWztHNx8va1Nro5urj4OXY1drOy9HJxszFv8Wyq7LJwsrk3efa + 1d/Jx9HMy9XS093S0drQz9jS0drS0dvS0dvR0NrQz9nPztnPzdnNy9fNy9fMydfLyNfJxtXIxdTIxdTI + xdTHxNPJw9PIxdTIx9PJydXKy9fKzNfKzdbJzdbIzdbIzNbJzNXMz9fR09vU1t7W1t7W1dvU0tgAANjT + y9rVzN7XztPKwpWMg6GWjrqup8O4sNfNxtnSzNzZ0tzZ1tDSzMbMx8PKx8TMy8fPzsrQ0cbKzMjKzMrK + zMrKzNPV1dfb2szT0cvQz87Q0czOz9DQ0c7OzdDRz9na19bX0dDQytjY0tjX0sbFwMnFweHd2uPg3djU + 09zW1uDb2szHxIyHgKihlsO4q4t7bZaCcLWdjKaLe8Gklbicjb+ilLedjsKol8armcmumMKoj7ifhryi + iryhjrukkcWxoOTUxe/m2Ork2PDr4fHu5cS/uc3Hwu/o5PTs6fnx7/fw7ezo5eLg2tDNydDKy9bP0dPN + 0trU2eTe4+Ld4tzY3dXQ1q6prnt1enlzeJKMkbqzu9LM09rW3NnW3MzJ0M/N09XT2dPR19PR2dTR2tLQ + 2dDO19DN1s7L1s7K1c3K1c3J1cvH1MrG0sjF0cjE0MjE0MbDz8bCzsnE0cnH08nJ1cvM1srM1snL1cnL + 1cjL1MjL08jL08vN1c/S2dLV2tXU29XT2dLQ1gAA3dbM4dnP2dDH3tPKn5WMh3tylYl/qZ2UzcK64tvT + 3tnR1tTN0dLNyM3IztXSzdPSytDPyM7Ox8rK0tPU1tTWy8vLzs/O0dXTys/L0NTS0dPT0dPT19fW1tfV + 1NXS2NnW2dnU0dHL2dnT4ODazs3I0M3J3drW3NnY19LT2tTW3NbXx8PAjIiCjoeAtqyimot/inZnr5aH + pIl6u52PuZyOuZ2PtJmKvaGRxqqYz7Sdyq+WuZ+Eu6CHv6WRu6KQ1MGw+uvb+fDi9u/j8+3k9vPq2NLM + 2tTP9/Ds9+3r9u7q/PTx6eLe0MrFxL6729XW5d/h2tTX3NbZ5N3h5+Dk3tfb1c7S0crOzsjMwrzAjIWJ + cmxvjIaJv7i82NDV19DU1M7T1NLX19bb19ba09LX0s/X09DY0tDX0c/W0MzW0MzWz8zVzcrVzcnUzMjU + zMjTy8jTy8fTzcnTzcrVz8vWzszXzM3Xzc7Yy83Xys3Wys3Wys3Wys3Uzc/W0dPZ1tXb2Nbc1tXa1dLX + AADe1cvk2tDd1Mrd0sjAtKqwo5myo5rGuK/d0cff1s3g2tHV0srS0MvFx8PN08/M0c7Kz83O0dDOzs7H + xcXGw8PMycnS0c7U1dHU1dDQ087R1NLS09LS0tDT09HT1NDU08/V1M/X19DX1tDZ2NPm497n5ODc2NbV + 0NDW0NPa1Nbd1tnY1NTIx8PGwbvJvraej4aBbWGqkIOpjn+ylYezloi1l4q4m427oI/BpZPIrZbKrpW+ + oYeylX2vk3+slIHJtqXz5NTv5tj07uLy7uTz8ejf29TY0s3t5uL37On27Or78/Ho29nSyMTTycft5+jr + 5ujb1dfe19ni2dzh2NvMw8W1ra+3rrHEvL7Fv7+YkZKIgIGFfX6TiImrnqDSycng2tvY1tnU09bU09bV + 1NfV09fT0dbT0dbT0dbRztbRztbQzdXPzNTOy9XPytXOytTNydTPytTRy9bQy9bPy9bOy9XMy9XKzNXK + zNTJzNPKzdTLzdXKzdLLz9PR0dbV1NnW1NnW09fV0dUAAODWzN7TydbLwZ+SiIBzanlrYXNjWpODesi4 + r93Rx+Xa0eDZ0dLNxsLBu8fIw83Ny9DQztXS0tPOz83Ix8zHxtHMytjU0drY1NbUz9HSzNfW09bV1NXV + 0dTTz9TUztbUztjW0drY0tzZ09jV0NHNytrV0+Ld3d7X2tfO0c7Fyb21us3Jyt/e3Ovn4+fe2LKknIZy + aJuCd6mNgaOGeK+PgrOShbudj8Sol7yfjLaag8OnjcKlireZgLiahrGXhseyovDh0ffu4Pz57PXz6fPy + 6NbUzMfCveDZ1fvx7v3y8O3f3dbHxuDSzuzg3vHq6+Tf4drU1+Pa3efb3tHEx6KWmIl+gI6FhY+IiI6H + h4iAgLCnpcO4trCkoqCSkLGjodbPz97b3dbT1dnW2NzZ29zZ2tjV2djU2djU2dfS2NbS2NXR19XQ1tTQ + 19PO19PO19PO19LN19DK1dHM1tHM1s/M187N1c3N1cvN1MvN1czP1MzQ08vO0s7Q1NLT19bW2dnV29fU + 2dbS1wAA3dLG4NTI5djMu62hppiMnY2CiHdsmYl+zryy5tXN4NTK39XM2NDJ1tLN1dHN19PS1NDP0czK + 08vK1s3N187O1s/O1s/M2NDN2dXQ29jT1tLO1tPQ2NXQ2dbR2tfQ2tfP2dXO2dXO2NPNvLezmpOPuLGw + 4tna3NTV1cvO08fNsqeuysXJ3dzd1dHQ39XR1Ma/mYR8gWZerZGHqYuAro+ErY2BtZWIzK2dxaeUqo11 + rY92tph9uJmAu52JqY99taCP4dPD9uze/fvu9vPp9PLp5eLb1M/K5NvY/PDu8+bkyrm4sZ6d1MPA8OTi + 7+np3NfZ083Q3NLV7+LmxLa4aFpbSTw9al9ejISBsKmnraaitayowLWxw7ezuKekqZqXta2rysfH2tjZ + 4N7e19XW1NHT2NXX2dbY1dLU1tLX1tLX1dHW1NDV1NDW08/V08/V08/V0s7V0srU0szV0czV0MzVzszV + zczVy83Tys3Sy87Ty8/Sy83Rz8/T09LW19XX2dbY2NTW19LUAADd0cXk2c3h08fg0sbSw7fYxrvdy8Dn + 1cn04Nbp1c3k08vo29Ta0MjOx8G1sKu9trTRysnTy8vVy8zZzs/Zzc7az8/b0M3a0c7a087c19LZ1NHZ + 1NHZ1dDY1NDa18/a1s7a1M3a1c7c1tDJwr6upaPDurri19ne09bd0Nbl1t7c0NjRzNHPzs/h3NvZz83G + uLO5pZ6LcmmMb2WniX6khHmsjICvj4LHqZnNr5uvkHmmhmyrjXCvknnAoo6+pZLItKPj1cXt5Nb79+r0 + 9Ojy8ejr6eHc2NLb0s/o2djl1dTJt7a1oJ7cycb36ef07u/d2dve2NrRx8rWysy+r7J1ZmhAMzRMQUCQ + hoTUzMjRy8a+tbC1qqTEtrHHtK23pqCzqKXCvb3Y1dTf2tvW0tPTz9DY09TY1NXTz9DV0NPU0NLUztLT + zdPSzdLSzdLRzNHRy9HRy9LTytXSy9XRzNXQzNXOzdTNzdTLzdLKzdLLztPLz9LLzdHPz9PT0tbX1dfZ + 1tjZ1NbX0tQAANnNwend0djLv8a5rZ2Pg7mqnuPTx+PSx+DOwuXSyOza0ejYztbIv8K3raedlbitp9LF + wd3RzdHFwNPGwuDTz+DTz+HU0OTZ1eba1tvRzNbQytbQy9rUz9vVz9rTzNrTzN7X0N3Wz9zUz93V0NfO + ytjPzN7U1OPX1+DV1t3Q0tfPz9LNzdXT0tzY1p2VkoB1cce3sKuXkH1mXamPhJuAdKKGeayOgMiqm8+w + n7mZhauLdKSEbJp7ZLGSft7CsubPv+LQwOXXy/fv5Pr17PTw6PDr5eXf3NPKyNjMy+fZ2dfGxcKwr9rG + xfbn5t3W19fS1O3l6N/V1szAwNPExcq7u5yOjoh6e7arquje3Ofd29PJx8e7t8KyrbmmobmnocC1s8bB + wtDLzdnU1drU19fS1NXQ09XQ09TP0tTP0tTP0tTO0tLM0tLM0dLM0dHL0dHK0dLL0dPK1NLM1NLM1NLN + 1dDO1NHO1M/O08/N08/P08/P0s/O0dHQ09XT1tnW2NrX2NnV1tfS0wAA29DE39TI1cm9s6ebfnJmpZmN + 4dXJ5NjM28zA5dTI797R3cy/0sG0rp6Rjn9zrJ2R2su/0MK4rZ+Wtqieva6ls6WcyLuz39PL5tnR3dLK + 0Ma/z8fA2dHK4djR3dTN3NPM4NjR3NPN1c7H2dHK3NTN39fQ4dnS4trT4dnT39jR3tbR19DM29XSz8rF + n5iUsaij9Oriw7SuempijHlwnol9lHtupIl70LKj1bSmwqGRsY19nntplXVjrYx92rys5s2+7dbK8+HW + 8uPb+ezm+/Lv8+vp7+fn4djZ39PV8eXm1cfIp5iXyrm44dHS593f1c3OzcLD18vK287L1sjEv7CurqCf + wra13dHS6Nrd6t3f8OPl3M7Pxre20sG9xLSxxLq5zMbJ0MrO19HV2NLW1dDU083T1M3S1c/U1M7T1M7T + 083R083R0szQ0szQ0cvP0cvP0cvQ0cnQ0svR0svR08zS08zT083U083T1M7T0s3Q0s3P0s3P1M/R2NPU + 29XW2tXW2NPU1dDRAADh1cnbz8PZzcHSxrquopa/tKjo3NDn2s7czcHh0MPo18rs287q2czHtqmunY/J + uK3r28/j1cnXyr7Zy8HAsKmwopnTyL7n2tHcz8fn29Pi19Hd08zd0szh19Dg1s/e1c7f1c7e1M3f1c7j + 2dLk2dPk2tPl29Tk2tPi2NHf1c/e1M3a0s3a0s/MxcGupqG7sazv5N3bzcWRf3d7ZlyeiX2Ve2+agXLP + saLbu6vHppevjHydemekg3Gvj4Cvk4PNs6Ty2s7349jv3db15d/88+/06ufy6Ojx5+fo3t7t4uLKvb2N + f3+8rau3p6j26erk19nJu7u/sK64pqO7qaWrmpWklpSwpKKqn5/HvsDo3uHt4+amnJ+Sh4jdz87g0tDZ + z8/d1tjY0dTX0NPX0NPX0NPY0dTX0NPX0NPWz9LWz9LVztHVztHUzdDUzdDTzM/TzM/TzNHTy9LUzNPU + zNPUzNPUzdLUzdLUzdLUzdPUzdHUzdDVz9HX0dLa1NXc1tfb1dba1NXY0tMAANTHu9nMwNLFudPGutLF + udjLv9zOw9/SxuTVyeTTxubUxuXWxuzcze3cz/Hg0/Tk2NvMv+PTyOfYzOHSyN3Px9vMw+LUy+XXztzO + xeHWzOfc1ePa0d7WzNrRyNnQx9jQx9jPx9vSyd3VzN7Vzd/XzuDXz+HYz+HYz+HYz9/WzuPZ0ci+usG4 + tbmvrIh/e4d8d8y/ud/PyK2bk3ZhWJmDeJN6bZJ3aMepm9OzpMKikqeFdJVyX6GBb6iKe6KFd7qfkePM + wPjn3O/e1+HTzO3h3Pbq5/Xq6O3i4fTp6e7h4sO1trWnp6aWlqKSk7KhocGvr8Syr8Kvq6uYk6KOiY98 + eKeXlNHEwrWsrMK7vN3X2s3HyqKcn62mp9jQ0OTb2+Tc3eLb3NrT1NXOz9TNztbP0NfQ0dfQ0dbP0NXO + z9XOz9TNztTNztPMzdPMzdLLzNLLzNLKzdLJ0NPK0NPK0NPK0NPLztPLztLKzdHJzdHKzdPMzdXOz9jR + 0trT09rT09nS09nS0tnS0gAAtqmc3dDD5djL3c/C4NLF4dTH4tTH5NbK5dXH5tXF6NbG49LD3Mq7zbut + xLSl1MO27t3Q6trO4tPGxrarxret5tfM4NPI3M7E4dPK1cm/0MW94NbO5dvS3NLJ2c/G3dPL3tTL3dPK + 3dPL3tTM3tTL39XN4NbO4dfP4tjQ4dfP5NrT2c7J2c3K1cnGiX15b2FdqJiSlYN9mIV9e2ddk3txlnxv + kHZnwqWWy6qbwaCQqoh3m3lnoH9woIJzq5CCnoR2wqqf/+/k79/Wv7Cp49fQ+e7p8ubj6Nzb7uPj39PT + uqyux7m6sqOkoZGSmoeFt6GevqmkvqiisZqUvKegnoqEh3Vyw7a16d/g6OLl6Obr2NXb2tjd7eru7Onr + 7Ofo5N7f3tbW3dTU2dDQ2M/P2M/Q2dDR2dDR2dDQ2dDQ2dDQ2M/P2M/P187O187O1s3N1szN1szO1szQ + 18zR18zR1szQ1szO1cvO1cvN08nL1MvM1s3N2tHR3dTU3tXU3dTT3NTS3dTT3dXTAADXyrve0cPe0cPe + 0cPg0sTYy7zbzr/j1cbi0sLn1cTn1cXRvq6yno+vnI2/rZ3Nu67fzsHTwrXPv7KtnZGqmo3czL/k1srd + zsPf0MfPwbfFuLDZzsbj2NDc0cnaz8fg1c3g1czb0cnaz8fc0cnc0snd0src0cnd0srg1c3h1s7f1M3i + 1dHq3Nrn2dehkY+GdXG4paCmkoy5pJ2Vf3WIcGWTeGyRdme8n5DBopLBoZG1lIOpiXepiHmhhHa2m46h + iHyQeW3Wwrfv3dK8raTe0cn47efw5uHl2tfg1NPe0tLPwsTNwMLi1dfEtLW+qqevmZTAqaPWvrmtlo6r + lo/ArKagkIyekpLVztDr5+vn5uvm5uzr6/Hl5uzl5uro5+jc1tbXzs7a0M/Zz8/Zzs7Yzs3Zzs3Zzs3Z + zs7Zzs7Zzs7Yzc3Yzc3XzMzXzMzWzMvWy8vWy83Xy87Xy87Xy87Wy8zWyszVysvVycvUycnTycjWy8va + 0c/e1NHd1NDc0s/b0s7d09Df1tEAAOfYyODQwNzNveHSwuTVxeLTw97Pv9/QwODQwOfUw/LezeTRwL6q + mbilltnGt+fUxe7czMy7raqZjZ+Oga2ckM6+seXVyefXy+HRxeDSxuPXzt/Vy93Uyt3TydzTyNzSyNzS + yN7Uyt3TydzSyODWzODWzN3Uyt/Vy+Ta0Obc0uTZ0N/RzeDQz+rZ1829un1saEw5M2tWUKaPiL2lnIBn + XJF2apd7bbuej7ydjbycjMCfjrqZh7eYiZV5a3tgVruil5+IfKOOg9zJvrysoubYzv758fbt59vPytPH + xere3+ve4N7R0+rc4Oja3N/MyrainbCbltvHwd3Lw6+blMGwqdbHwsa7uufi4+nn6uDi5tzf5Ort8unr + 7tfa29fW1trU09zRz93Rz9zQztzQzdvPzNrOy9rOy9rOy9nNy9nNy9jMytjMytnNytnNytnNytnNy9nN + y9fLzNnMzdnMzdnNzNnNzNnNzdjMy9jMytfLydnNy97Sz9/U0N3SztrPy9rPy97UzuLY0QAA39DA3c29 + 3c6+4dLC5dXF5NTE4dLC4dHB386+zruqtKCPsp+O18Oz79vK7NjI69jJ6tjJ6tfI2Me3w7KkxLOn2ci8 + 6djM69rN5tbJ4tPH28/E3dHH3tPJ4dXL4dXL4dXL4NTK39PJ4NTK4dbM39PJ4NTK4tfN4tbN39PJ3dLH + 39LJ5dXR2sfFx7Syoo+MbllWXklEa1NOeGBZpYuDh2ximX5yn4J0vJ+RvqGRt5eHv56NuJmHqo1+pIh+ + pIqAwKicvKaal4J4vquhtaGZ6+Xd/fz09urj3dHL2czJ7N/f4tXW1MjK39TX4tXZ7N3e3s3KwbGtyrmz + 28rD0L643MzG4dPQzsTD4Nzc6ufp4uHl2trf5OXo6unq3NvbzcrK1c3L3dLO3NDM28/M28/M2s7L2s7L + 2s7K2s7K2c3K2c3K2MzJ2MzJ2MzJ2MzJ2MzJ2MzI2MzJ18rJ2MvJ2MvJ2MvK2MvJ2MvJ18vI18vH2M3J + 2s7L3dLN39PN3dHL28/K28/J3tPL4NbOAADg0L/g0MDh0cDh0sHk1MPj08Pg0MDby7rk0sDZxbOeiXeQ + e2nJs6Lv28rs2Mfo1cTUwbDgzb7r2Mjp2Mnr28zr283n1snj0sXl1Mfo2Mvj1cnh1cng1Mnf08je0sbe + 0sfe0sfe0sfg1Mne08fazsPc0MTh1crg1MnZzcLWyr/ZysHp19Pq1tSmkY9nUU9iTElnUUxtVE9kSkN7 + YViMcWaTeGuihni8oJHDppa5m4rAoY/AoY6ojH23nZPlzMLkzsLRvLCPfXDJtqrVwbfz6uL99Oz35+HZ + zMfWycjx4+br3uDh09jbz9bTx8ze1tfs4uLXysnDtrPKvbfYy8T16eTp3tzAuLXUzs7v6uvz8PLl4uXc + 2Nrd2Nnb1dPY0c7a0Mzd0Mzdz8rczsnczsnbzsnazcjazcjazcjazcjazcjZzMjZzMfZzMfZzMfZzMfZ + zMfZy8jYysjZy8nZy8jZy8jZysjZysjZysbYy8Xazcjd0Mre0cve0svc0crcz8jc0Mne0snf08oAAOHR + wOPTwuLSweDQv9/PvuLSweDRwODPv9PBr7KejKCKeKyWhNK8qufTwurWxdrGtbGdjMazpN3LvOHPwOXU + xOTTxOPSxubVyOfWyeXVyeXXzOLWyuDVyd/Tx93Rxd3Rxd7Sxt/Tx9/Tx9/Tx+DUyOHWyeTYzOTYzOPX + yuDVyN/Sx+XSzuLNzIZvbkkzMXFZVolwbJN7doZtZZyBeKKHfIdsYK2QgsWomtK0pMutncipl8qrmLuf + j8GoneXMxOPOw93HvKqWicy5rM++suvbz/Tk2vPk3NvNx9fKx/Ll5fDj5fHk6uHV3MzDyN/Y2+vn59PM + y8e9u9XLx8zDvtfNye/l4dnRz8vExObg4fDr7ejj5NzV19nQ0NrQzNrOyt3Qy97Qyt7Qyd3Pyt3PyNzO + yNvNx9vNx9vNx9vNx9vNx9rMx9rMxtrMxtrMxtrMxtrMxtrLxtnJx9rKyNrKx9rKx9rLxtrLxtrKxdjK + xNzNx+DRy9/Qyd/Ryd7Qyd3Qx97RyN7Rx97RxwAA3s694dHA4NC/3My728u64dG/49PC38++38y63ce1 + 2sSy7djF69bE48+97NjF5tLB18Ky38y76dfH6NbH5NDC4M6/4tLE59bJ5tbJ5NXH4NPF3tPF39PG4NTI + 4NTI4NTI39PH4NTI2M3B0cW63NDE4NPI4NHI4dPJ5NbN5dfN39DI5NDN4svKoImHg21pooyHq5WPtZ6X + noR91buxzbClhmpdpop8vqSV3MGy6My+17qqxqeXvJ6QvaCYzLGq1b2z2MK3u6WZzLerxrOmz7yw387F + 8+Pb4dTO2s7K7eHg6d/h8+rt5t3i0crP3tre8e7wzsrKxL2959/e2tDPwrm41cvKy8HCsqus0MnK49zc + 493a3tbS2dDJ39PL5dbP4NHK3s7H4M/I387H387H3s3G3czF3czF3czF3czF3czF3MvF3MvE3MvE3MvE + 3MvE3MvF3MnF2sjE28nF28nF28nE28nD28nD28nE2sjC383H4tDJ4M7I387I387H38/G4NDH387G3s7F + AADh0L3l1MHl1cLi0b7gz7zk08Dn1sPk08Dk0r7q1cDt1sLs2MPr1sHq1sHr1sHs2Mbx3cvn1cPm1cLl + 1cPfz7/g0MDj1MLg0cHh0sLq28vp3czn28vl2Mjk18jj18ri2Mrg1Mfg1cnWyL7Ku7LczMTk1Mzk0svh + zsnj0Mvm083k0czq19PdysWgi4aUfXeZhH5+bWOUgHWFbmKsj4Xgv7SYd2qmin6ym4/Ktqvm0sbgxrzM + qqHHpJvBopnAo5rlzcPw2s/UvrLUv7Pcw7jHr6bbxLz96eLr29bg1dT17e318PH38vTo4ebZ0tfc2N3k + 4ObIwsjMwsrp3eTk1dvVxszZys/e0NPSx8jEu7vp4d3f18/l3NLd1Mjb0MPg0sXh0cXhz8Xh0Mbg0MXg + z8Xgz8Xgz8Xgz8Xgz8XfzsTfzsTezcTezcPezcPezcPezcPezcPezMPcysPdy8Tdy8Tdy8TezMXfzcbg + zsfhz8ji0Mni0Mni0Mnh0Mnhz8jhz8jiz8jhz8jhz8gAAOHQvdzMudrJt93MuuHRvuLSwOLRvuDQvuLQ + vePQu+PRu+XRvebTvubTvufUv+bSwOTQv+bVwuLRvuPTwevayenXx+PTwuDRwePTw+bYyOLWxOPXxePX + xuLXxeHVxODUxN/UxeLVyODQxtvMw+PTyuTTzOLQyeHNyOLOyeLOyd7KxerV0MGppXpiXHNZU4pya4l0 + aoZwZYNpXqKEebqYi5VyZbGVirehlce2q+XWy+vWzN6/tseon62RiLWbkefSx9zLwN7Mv8q3qt3Gu9K5 + sdzEvPTf2eXW0d/W1PDs7PLt7vfy9Ozl6uPb4N/Z3uDc38G7vq+lq8/CyOnZ4N/P1uLU2OTX2rCkp5mP + juDZ1d7VztXMwtjPw9jNwejazuTUyN7MwuDOw9/Ow9/Nwt/Nwt/Nwt/Nwt/Nwt7Mwd7Mwd3Lwd3LwN3L + wN3LwN3LwN3LwN3LwNzJwdzJwdzJwdzJwd3Kwt7LxODNxeHOxuHOxuHOxuDNxeDNxeDNxd/MxeDNxeDN + xd/MxAAA3cq41cOx0r+t2ce14tC949G+4c694c+849G949K85NO85dS+59bA6dfC6tjD69fE6dbD6tjF + 6tjG6tjG5dLB5NG/7NnI5tPD38u76djI4tPC4tXE5djG5tnH5NbF4tTE49XH59jL59jL5NTI59XL59XN + 6NfP6dbQ59TO5NHM4s3I69HN58rGwaKef19ab1FKn4V8qpCGq46EuZqPqod6lXJltZqOwKyf08a66uDT + 8eDU7NXKxa2inYd9wa+k49LGv7Gly72vu6ue3cm+v6qg1L639ODa5NbR5d3a8+7u7unq+PL18uvw7+bp + 3dbY6eLi59/fxLm7tqmr0cLF6dnd693g3tLVx72/0cnI9O3q3tfT29LL3NLJ49jO28zD3c3C4tHG4s/F + 4dDF4c/E4c/E4c/E4c/E4c/E4M7D4M7D383D383C383C383C383C383C383D3svE38zE38zE38zE4M3F + 4c7G4s/I49DJ4s/I4s/H4c7G4c7G4c7G4c7G4c7H4c7G4c7GAADo08DjzrzhzLnizLvlz73kz73izbvg + zLjfzbjh0rvj1Lzk1b7i07zi0bzj0r3o1cDs2cTo1MHn0sDp1sTcyLbSvKvmz7/z28rr08Ly3s3i08Hi + 1MLk1sPj1cPj1MTj1MTk1MXm1cjl1Mji0MXi0Mbl08zp2dDr2tPn1s7k0szm083m0Mzt0s/12NPFqKKR + dW60mpHmzMLozcLQsKXUsqWyj4Owl4u2pJnZzsHw6dv06Nvx3tPFs6ivn5TXyb22q5+upJiakYOekoPF + tKmql43Sv7f1493k1tLr4uDx6+vk3+Dv6Ovs4+jv5ejl3dzn39zv5OHn2dnEtbazo6XLu73f0tTh1tfr + 4eL17u7v6OXYz8zl29bTyMLbzcXj08vh0MbgzsPhz8Tgz8TgzsPgzsPgzsPgzsPgzsPfzcLfzcLezMLe + zMHezMHezMHezMHezMHezMHezMHfzMPfzMPfzMPgzcThzsXiz8bj0Mfiz8bgzcTgzcTgzcTgzcTfzMPg + zcTfzMPfzMMAAOPNuOfRvOjRveXOuuPNuefRvOnTvubQvOLPuuLUu+TXvuPVv97OuNfHsNfGr93LtufT + v+3Yw93IsuHLuNzEs7OaibGYh9zDsu3Uw+nSwOnZxuTWw+LUweLTwOXUw+fWxefWxeXTxObTxebUx+PQ + xuXSyurXz+fVz+LSzOPUzerc1N/QydfDvtrFwMavqaWPh6aTibKdkp+IfJ+Cd8Wkl7WUh7CYjLOkl9fO + we3m2fbr3/Xl2s++s8i5rdDFuXFqXZyWiXBpWmxkVpuMf6COhNvKwfjo4efa1fHo5vHs7ODa2+ni5ebc + 4u3i5eXb2PLn4uLV0NvMydDBv7ioqcKztNLExtfLy+fd3ezk5Pfw7dbNyeTZ0+LVz9vKxN/NxeLQxuPQ + xOTRxOPQxOPQw+PQw+PQw+PQw+PQw+LPwuLPwuHOwuHOweHOweHOweHOweHOweHNweHOweLPweLPweLP + wePQw+TRxOTSxObTxuPRxOHPwuLPwuLPwuLPweLPweLPweLPweLPwQAA0bmk79fB4sq06tO90rul2sKs + 6dK859C65dG64tK45de95dW83c200sOp0sGn2siw5dC77djD0bqmvqaStp+Lln5rjHJiv6WV8dXE6dG/ + 6dfC6NnE59jF5tTC5dPC6dXF6dTF4s2+4cu97NXK6tfK383C69vP4tPK5tjP59rS3NLJ08vE0svE49rT + 9ejg9eng7uXa08W5o5CDi3NnpYZ5xqmbq5eKzL6w6OHT7+re+/Xo693RvKugy72x+vDksquedW5hf3hp + raWXvK6hoY+E3MrC7t3X6t/a/PTy8Onq6eTl5d3h5Nrg7OHk5dnX9+3mx7u2xLWy69za0MG/wbOy28/P + 3dPS6N/f7+fm3tTR4NbR3M7I4NDK6dXP5c/I487D5dDC5dDB5M/B5M/A5M/A5M/A5M/A5M/A4s2/4s2/ + 4c2/4cy+4cy+4cy+4cy+4cy+4My938q84cy+4s6/5M/A5dHC5tHD5dHC5dDB5M/B5M/B487A486/487A + 4s2/487A486/4s2/AADQtqHv1sHhx7LXvaivloG/pZDlzLfr0r3o0rvn1Lvl1Lnl1Lro1bvp1r3q177p + 1r3o1Lzp073t1sLexrK8pJG2nYrQt6Toz7zw1sTw2MXm07/p2MPr2sXp1sLo08Hr1MPv18bv1sfq0cPq + 08bv2c3gzcLfz8Pl1s3l2tDVy8LX0cjx7+b29u7t6+Hw6eD+9uz48ubFua6cin2wmIy2mYu7nY+4oZXr + 3M/y693x69/57+LQv7SwnZLPv7Pn2c3v5djQx7qooJLbzsHIuKzQv7bey8PezMbx5N/37+zn4uLn4uPh + 2t7g193o3uHx5+Tr4NvRxsHGurXUx8PRxMHaz83r4ODr4+L17+zv5+Tg1tLg1M7fzsfn08vmzcXu1Mnq + 0sXjz8Dkz8Dkz8Dkz8DjzsDkz8DjzsDjzsDizb7izb7hzL7hzL3hzL3hzL3hzL3hzL3gzL3fy7vhzb3j + z7/k0MDl0cHm0sLl0cHk0MDjz7/jz7/jz7/iz7/izr7izr7jz7/izr7izr4AAODFr/DUvt/ErtW5o7ic + hsarlerPue3SvOXOtebRt+bRtufSt+nUuevWvOvXvenVvOfTuubQuerTverTvuzVwe3WwejRvevUwOjQ + vOzVwOzaxOrZw+jWwefUv+vVwvDXxu3UxODGtuTKu+7Uxt7IuerYy+jYy9/Rx9fNwtLKwO3o3u/s4/Ds + 5fLs4+vh2OLWzcO4rI5+c2hTRodrYKmIe7qZjMSqnufVyPXs3/726ePYzLionbKflMOupObTyPbo3My9 + sca4q7Skl9jDuP7r4d7KwtPAuu/h3O7m5OPf3+bh4uHb3t7X3NfO0PDn5vPr57qxrI+DgqyhoNTJx+3i + 4ufd3sS7utPMyf718Oje1t7RyOHNxevSyO/QxO/Qw+nQweXPwOXPwOTPwOTPv+TOv+TPv+TOv+TOv+LN + veLNveHNveHMvOHMvOHMvOHMvOHMvOHMvOPOveTPvuXQv+bSwObSwObSwObRwOTPv+TPvuTPvuPPvePP + vePPveLOvOPPvePOvePOvQAA0bae58uz6My09NjA7NG558uz69C479S87dO66NG369S67Na86tO55tC1 + 5c+16NG57NW969W+5M6448+56NS/xrKcppJ+1cGs7trG5tS/5tS95tW+59O+7NXC8dnH79XE3sKzu5+Q + wKWW0LepspuO28a66tnN1cq+1My/7efc8+7j6+Xb7uPc69zW3MnDwKujoo6EmIJ3g2ZbknFmtI6Cv5uO + vKCU5NDE/ffq7OfarKKWo5SJ0Lyx0riu3MK4+eXa08C1m4l8u6mc28O4+eLZ7dbP5c7I9ejk+/Xz5N7e + xcHCzcjL7eXq29LV1MzN7+jn5d3c2M/PyL6/u7Ky49ra187Ot7Ct7ebi1MvFvLGp2Mi96NDE6czA8M7A + 9NHD68/A5c295M2+5M295M2948y85M2948y948294su84su84cu84cq74cq74cq74cq74cq74cy74868 + 5M+95c++5tC/5tC/5dC+5M+94827482848684s274s274s274sy74s274sy64sy6AADav6fv07zlybHo + zLXx1b7v1Lzny7Tqz7fv07rr0Lbq0bfr0rjr0rjt07rr07rq0rrr07zkzrXp07rq1L3u2MPhzbfQvqjr + 2MLo1b/l0r3r2MLt2cPu2MPs08Ds07/v1cLv0sLnyrvkyLrZv7HFrJ/cxrjm1cfe0cXg1snz7N+7s6i9 + sajbycPcw77bv7nMr6iwk4qhg3qGZVqifnTFnJHDnJHKq6D27OD37+PNxbinnpKmlorNtqvXu7HBpJvj + ysD14NXcyLy3oZXNs6nz3tXr1s7Uvrjn19L++/nn4+OxrK3Ev8H59fna09bb1tfk39/58/T38PLVzc64 + sLHY0NDz7On17enUysRxaF+rnpTq2czjyrv118fxz77wzbzsz7/mzr/lzr7lzr7lzr7kzb3lzr7lzr7k + zb7izLzjzLzizLzjy7vjy7vjy7vjy7viy7vjzLzm0L7n0b/o0b/o0sDo0sDn0b/m0L7kzrzlzr3lzr3k + zrzkzrzkzrzjzbvkzrzjzbvjzbsAAOvQt+3SuenOtebLsunOtOrPtujNtOjOtOnOtufOtubOtujQuOXO + tuPMtOnRuezVveTNteLLs+fQuOjQuenTu+vWvurUvOnTu+bRuevUvOjSuuvVvezWvuzVv+vVv+vTvuvT + vurRvurSv+/Xw/DYx+vUw+bQwOfSwsu3p6uZiWBNPZJ/csGtosSroda5sNu/tcWonZ6Adph6ccWmnbyg + l66Uit/Ivvvx6dzNxL6so9K/tsGpoY51bJB4bbOclO7Xz/ji2/Xf2bahmrilnfPh2ebWzsG1q9nRxPr4 + 7e3t49fUzOvn4fbz79/a2uvk6uHc5Ojg6ePb4NTMztvT0vDo5OTb1tzTyuPYy8C0ptrLvOnZyOfTwenS + v+HItOvTv+jRv+DLuuDMu+DMu+DMu+HLuuHMu+HLuuHLuuTNu+PMuuLLueHJuOHKuOLKuOPLuuXMvOjN + vOnPu+rPvOrPvOrPvOrPvOrPvOnOu+jOuujNuubMuefMuefMuefMuefMuOjNuefNuefNuQAA7dK47NG3 + 7NG36tC26c606c6169C37NG37NG46M635s227NO779a+6dC56dC47NO76M+36dC469K769K76tK66dG5 + 6dC469K67tW979jA6dS769W869a97Ne+7Na/6tO+6NG85M6359C769TA6NG97tbD8NjF5c27vKSSnYRy + ZEw8hnFhzLiq2cK228K2zbGmiWthgGJY0LOq0betrZeMvKqe9efe5tXMtKCZuqWd2L+4wqiip4+HtZ+V + vaig1sG6+eTe++fi48/K2MW/6tvT6dzSvbClwbiq7ubY2dLEu7Wq5d/W+fTt19LR7ubu497o4drj49zh + 5N7f8eno+fDr187EzMK27+HT4dLB4dC+4s+96dXA6dO+4s236NK+5tG+4s274s684s684s6848274868 + 5M275c275s685s285cy75Mq55cu65su758286c6+68++7M677c+87c+87c+87c+87c+87M677M676826 + 6s2668266826682668267M677M677M67AADpzrTpz7Xqz7Xpz7bqz7Xpz7XpzrTnzbPpz7foz7jjybHq + 0Ljv1b7pz7fly7Pozrbq0Lnr0rrr0brr0bnq0Lnq0Lnr0bnt07vu1L3v1r7p0rrq07vq1Lzr1Lzq073q + 073o0bzn0Lrn0Lvp0b3p0b3lzbnp0b3x2cbZwa7IsJ65oZGBbF3Mt6rv2M2kjIB7YFZxVEujhXzu08nE + qqCjjoPVwbb87OPj0snCr6eynZSxmpKvlY25n5fhysDcx7ysl5DXw77z4d3y4d7k1M7g0crg0Me9raK5 + qp3dz8Li1cjf08n37eXy6ePNxcXg2eDo5Ozy7fL38PP17+/z6+js5N3n3dPl2Mvi08Tj0sHk0L7kzbvn + 0Lzr0r/r0rzoz7rlzbnjzbrjzbrjzbrjzbrjzLnkzbrkzLnkzLnky7rly7rkyrnly7nmy7nny7rozLro + zLvpzbvqzbnrzrrrzrrrzrrrzrrrzrrqzbnqzbnpzLjoy7joy7joy7joy7joy7jpzLnpzLnpzLkAAOfM + sejNs+rPtOzRtuzRt+vQtejOs+XKsOnOte3Tu+bMtOnPt+vRuuPJseLIsOrQuO/Wvu7UvOvSuunQuOnP + uOrRuezTu+3UvO7Vve7UvOrTu+vTu+vTvOvTu+vTu+vUu+vTvOvTverSve3Wv/LaxOnPvO3UwPngzNa9 + qcWsms+2pbGajcWxptO+tI52bGtQRquQhvLXzeTJv7SakOPLwfro3fXg1fnk2fHd0rWflK2UitW6sMiu + pNC5rfTf1bWjms28tfjt5/bp5uTX0u/g2dHAuLqnn8GqoMewpdzGvPrm3fnp4eTW0OTa1vPs7/Dr8Ozm + 6+zn6Pbv7frz7fLp4ebb0N/Sw+HRwefTwufPvOjQvOvRvezQvfHTvuzPuufNuebOuebOueXOueXOueTN + uOXOueXNueXNueXMuObNuOjNuejNuejOuunOuerNuerMuerMuerPuevPuuvPuuvPuuvPuuvPuurOuerO + uenNuOnNuOnNuOnNuOnNuOnNuOrOuerOuerOuQAA7NC17NC17dG28NS58dS579K47NC168+16c+06M20 + 69C379S76c+14cas5cqw7tS67NK47NG369C36M6058yz6s+17dK47tO67dO569G469O66tO66tO66tO5 + 6tK66tK769S869S87da/7tbB7NW/7NS/7NS/8tnF6tG98djF38a1u6SXsZyTr5qSeWJZbFRM0bmy9dvT + sJeNzLOp997U6dHH4cm/8tjO7dTKyLCk1Luv7dPIzbOnzLOm9N7T0L+0zsK6/PPs9Ozo8ufj5tfSw6+q + rpSPtZqSx6ui3cC48tfR9t/Y5NLL2MrG3dTV39rc6OLk7+jm8unk9+3l9+vh6NnL3cy84tC/5NC+5My4 + 79PA8dS/68u38c+78dG96s265s255s655s655s655c245s255s2458y45cq16Mu36cy468667M667M66 + 7c2668y568y468y47M257M257M257M257M2568y468y46su36su36su36su36su36su368y468y468y4 + AADt0LTlyKzRtJiukHSniW24nIDWuZ3qzLHrz7Xpz7bs0bfu1Lrt0rjqz7bs0rjv1Lvs0bjv1Lvu1Lrt + 0rnt07nr0Lfqz7Xr0bfv1bvx1r3t1bnr1Lnr07nq0rns07vt1bzt1Lzt07zt1Lznz7fjyrPt07733cjo + zrnnzbnw1sLz2snPuKyrlo6wm5S4opvUv7js1s+3n5e3oJjRuLDAqJ7DqZ/Rt6zNs6izmYyymYvgxrn7 + 49bbwbPLs6Ty3tDh0cbMv7f++PT69PHr4t7m2tfXxcGjioWafHfRsqvuz8bmysHw1s3lz8jZx8LZzczj + 29vy6uj58Ozy5uDl2M7o2szp2cnhz77mz73nz7vozrnu0Lzv0LvtzLjvzbnuzbnqzLfmzbbmzbbnzbbn + zbbnzbbpzbfpzbfqzbfpzbbrzLbrzLfrzbfrzbfrzbfszLfrzLbrzLbszLbszbfszbfszbfszbfszbfs + zLbszLfry7XpyrTqyrTqyrTqyrTqyrXry7Xry7Xry7UAAOvNsOHEp9GzlqmMb6GDZ7qcgOHEp+7QtOrM + sO/SuO3St+7SuO/UufDUuvDUuu/UufHVu+zQtu7TufHWu+zQtunOtOzRtuvQte3Rt+/Vu+LKruHKruHK + r+TLsujPtu3Vuu/WvO7VvO3UvO7Vve/VvevRu/TZw+3SvfDVwOrPuvPZx9vDt6mTjL6oov7s5/bk3bij + nb6ro+XPx8ixqs61rOLIvde8sLickJl9b5J4abWbjOzTxdnAsLSdjOLPwLammsa5seri3ravrNXMy/Xr + 6f7w7sCrpqWMheDCu/HUy97DuefMwuDKwe7b1OfY0/Lm4vjs5/bn4uPTys6+s9fFt+TQv+POu+nRvOnQ + u+vQu+3Puu7Oue/Ouu7Mue3Mt+vNtujOtefOtenOtenOterOtevPtuvPtuzPtu3Ptu3PtuzOtu3Nte3N + te3Nte3Nte3Nte3NtezOte3Otu3Otu3Otu3Otu3OtuzNtezNtuvMtOnLs+rLs+rLs+rLs+rLtOvMtOvM + tOvMtAAA7tCzzrGUwKKFr5J1ooRno4Vox6mN7tCz8dW56s6z7NC17tG27tG27tK379K379K379K37tK3 + 79K47M+079K49tm+5MitxKeNzbCV89a87NK36dG16NC16NC16tO37NW57dS669O56tG36M6258216dC4 + 89nB7NK89drF7dK93cOxvKab0Lm09unk8OPew7GrtqWd1sS93svC69XL3MO56s7Dz7Olt5qMsJOEr5OE + s5mJx66fwKmXs56M28m5wbGmn5OLt66qysTA6uHh8OTl9+zq7t3YybSuw62m3sa+69HH4Me90byx5M/I + 3MnD1cS9yrew0L22zryxy7ep2cO05c+958+758+66s+668+568+67M657c257My468y26s206c2z6M6z + 6c6z6s6z6s6z68+068+07M+0686z686z7M2z7cyy7cyy7cyy7cyy7cyy7Myz7My068207M207M207M20 + 7M2068y068yz6suy6cqy6cqy6cqy6cqy6cqz6suz6suz6suzAADx0rPdvp/XuJnGp4i5mnu6nH3WuJnp + yqzpy67u0Lbs0LXu0bbv0rfv0rjw07jw07nv07jt0bfu0rjt0LXsz7bw1LnjxqvJrZLOsZbt0LX02r3y + 2brw1bvw1brw1brw1bvv1Lvt0rnr0Lbpz7Tu07n328Ps0LjJrZXZvqbmyrLIrZrMs6jXwL3k1NHUwb3D + savl1c7ezcXfzcTZxbviyL3w1MrTs6a/npG4mIrDppfOsqPPt6bHsqDEsZ/n1sb66d3Xy8HVysfx6ej5 + 8fH27e/w5+X78+3XysOsnZW2o5uxnpK6pZnUvrTMtq3dxL7Pta+4n5bQua3ZwbTXva7fxbXq0b/v1cHp + z7vs0bvt0bnt0bnuz7ruz7rtzrnszbfszrXsz7Tsz7Tsz7Tsz7Tsz7Tu0LXu0LXu0LXtzrTuzbTuzbTt + zLPuzLPvzLPvzLPuzLPuzLPty7XuzLTuzLTuzLTuzLTuzLTty7Tty7Pty7Pty7Pty7Pty7Pty7Pty7Tu + zLTuzLTuzLQAAO3OsOPEpurMre/RsvjavPDTtOvNr+7Qsu3PserOsuzQs+zQs+zQsuzQs+3RtO3RtO3R + tOzQs+7Tte/Ut+rOsefLrunNsOzQs+3RtO3RtO/VuO3TtuvRtOrRs+vStu3SuOzSt+rPtejOs+7TuvHX + verOtt/DrMqvl9a7pN/DrOfNudvBuM64tseysc67t+bW0ezh2+TXz+LQx93IvtW8sPPVysemmbmXicam + mNe7q8yxocevnt7Jtt/Pu9/QvvLi1vXp4N3Rzd3Q0fHn6PTt7fTt6/n079TOx7y0quPbz/Tu4t3LvsGt + odW8ssqvqMSoorWakNW5rt3CtuTKuvDVw+rPu+fNuOnPuenQuOvPt+vPt+rNt+rNt+nMt+jLtenNs+rO + sunNsevNsevNsevNsezOsu3Osu3OsuzMsOvMsOzMsOzLr+zLr+zLr+3Kr+7Kr+zKsevJsuzKs+zKs+zK + s+zKs+zKs+vJs+vJsuvJsuvJsuvJsuvJsuvJsuvJs+zKs+zKs+zKswAA7c2v7s6w89K078+x7s2v7cyu + 8M+y8dGz7c6x7tCz7tC0682x8NK28tS479G28tW58dO38NK279K379G279K28NK26s2x5Mer58mu8dS2 + 89i68de48de58ti78te78NO579K38dW68NW68NW48ta77NG38NS78tfB7NO+7dLA6M6/5s/J5tLR2sfG + 5NPR+e3q9+vo+Ork69fQ4czCxq2i38S5za+jt5iJvJ+Pw6eVw6eV5c68+ubW4cu7382/4tDE4tPI4dPL + 697Z8Onj8uzm9PHp+Pbv8u7l7OXY8ejb8uTY5dXIzryw18K3x7Cpz7auuqGW0bis7tPF+ubW+uPR7c+6 + 68y38NG679G58NG58NG479G479C47s+47tC47s617s6z7c6z7s6z7s6y786y8M6z8M6z8M6z782y782y + 782y78yx78yx7syx78yx78yx78yy7suy78yz78yz78yz78yz78yz7suz7suy7suy7suy7suy7suy7suy + 7suz78yz78yz78yzAADz0bPsyq3ty63wzrDsy63vza/107bz0bPpyazszLH01Lrx0Lb01Lrx0LfszLL0 + 1Lry0rjvz7Xx0bjw0bftzbTy0bj21bzx0bfv0Lb01rvv07Xq0rHq0LPu07bw0rntz7bszrXx07j017vy + 1rjx1bjv1bns0rjw18Lt1MP95dfs1cvi0MzRxMPazcz47er98O746OT87+n55+DTv7bBrKHHsaXJsaO4 + n5DEq5vVu6jix7Lz28jv2cvqzcPt1MrZxbrXxbrbzcHZzcHp4NP7+Or///P//PHk3dDTyr3r4NPw4tbe + zcHMua7Lt6zJt6/Sv7W3o5fLtaf14NH96tvs0cDnyLXz073vzrfx0Ljx0bfx0bfx0bfx0bfw0Lfwz7jv + zrTvzbPvzbPuzbPuzLLuzLLuy7Luy7Luy7LvzLLvzLLty7Lty7Hty7Hty7Hty7Hty7Hty7HuyrDvy7Hv + y7Hvy7Hvy7Hvy7HuyrHuyrDuyrDuyrDuyrDuyrDuyrDuyrHvy7Hvy7Hvy7EAAPDPsfHPsfLRs/DOsO7M + rvPStPTStN+9n9OxleTEqfXUuvXUuvXUuvHQtu/OtPXUuuzMsubFrO/PtfTTuu7OtO7NtPXUuvbVu/PT + ufPVuffbve7WtejPsevQtPDUufLUu/HTuvPWuvPWufHWt/TZu/DWuerQt/DXwvPZyP3m1+nTysu+udPN + zPDq6fv08ffu7Pfu6frx7PHk3tzNxcy8srmom6uYirGci9rDsuzVwuHKt9jArdzBsuvPxfXa0fLc0erV + yuHQxePTx+jd0e/n293VyM/GucO6rdDFufPk2PDf09vGvMq1qsu2q93JwdvIvrypntS7rvnt3vXh0dq7 + quLEsPXWv+7OtvHPuPHQt/HQt/HQt/HQt/DPtvDOt/DNtfDOtPDOtO/OtO/Ns+/Ns+/Ns+/Ns+/Ns+/N + s+/Ns+7Ms+7Msu7Msu7Msu7Msu7Msu7Msu/LsfDMsvDMsvDMsvDMsvDMsu/Lsu/Lse/Lse/Lse/Lse/L + se/Lse/LsvDMsvDMsvDMsgAA8M6x8c+x8tGz8c+x7cuu89K099W45cOm27qd68qw89K578618dG39NO5 + 8dC27Muy1rac07KZ5cSr89O589O578+28dC38NC28tG49di8+Ny97dS15syu6c+y8NO489S88tO68dW5 + 8dS48NS28te58Na67NK48NbB7tTD+uDS483D1cvF5OTi9vf19/by8vDs9PDr9O7m8evi7+bdw7muraGV + uamd18q88OXV3827w6+d1L+u4cm62b207dDH+9/W+uHX8NzR7NnO4NLG3M/CsaSZmo2BpJWJz8G1/e3i + 8N3S2MO40Lmu1b+059LK3crBzLit5Mu+/fbp386+waKQ38Gu9tW/7cy18M638M+28M+28M+28M+27862 + 782378218M2z8M2z782z78yy78yy78yy78yy78yy78yy78yy7suy7sux7sux7sux7sux7sux7sux78qx + 8Muy8Muy8Muy8Muy8Muy78qy78qx78qx78qx78qx78qx78qx78qy8Muy8Muy8MuyAADz0rTvza/uzK7r + yazkwqTnxafz0bT62Lvx0LTry7HvzrXpyK7w0Lbz07nwz7bz0rnpyK7nxq3vzrXx0Lbvz7Xy0rjz07nu + zrTuzrT117vw1Lboz6/ky6zpzrHv0rfv0bnsz7bsz7Tx1Lfy17nu07Xy17zy2b/w1sHgxrXs08ThzMLo + 39nx9O/1+PT09fDw8ev39u749e3y7OPs5Nq8s6fHvLDy4tb/9+v67+HVwrHArZzcxrbv1cfjxbvdv7Xs + 0Mby2M3x2c703tPo1cnfzsLQv7OxoJShkITQv7P97eLs2MzVvrLNtarQuK7kz8fbx77eyr7z3dH9++zN + uKmwkYDgwq/01L7sy7TvzbbvzrXvzrXvzrXvzrXuzbXuzLbvzbTwzbPwzbPvzbPvzLLvzLLvzLLvzLLv + zLLvzLLvzLLuy7Luy7Huy7Huy7Huy7Huy7Huy7HvyrDwy7Hwy7Hwy7Hwy7Hwy7HvyrHvyrDvyrDvyrDv + yrDvyrDvyrDvyrHwy7Hwy7Hwy7EAAPDPse7Mr+/Nr+3MrubEp+LAoujGqO/NsPHQs/LRtvHQt+3Ms/HQ + t/DPte7Ns/TTufXUuvjYvvjXvfHQtu3NtPTTuffXvfPSufDQtvLUuPTYuuzUtOzStfDVufHUuvDSuvDT + ufHTuO7Rte7TtPDUtu3St/HXve7VwOTKuezSxNG8sNHHvuzq4/f28PX07Pb17fb06/Tt5O/l3NzQxtPG + uurZzf3z5fzp3OPKu8u0pcasns+1pebLu/TXyebJvt7Dt+bKvvHXyvXd0O/ZzebSxNbDtb+rnaqWiMq2 + qPnp3PXh1OLLveTMv+DJvd3JvtbDuejTx/jt4P346r6klKiLeuTFsfDQuu3Mte/Otu/Pte/Pte/Pte/P + te7Ote7Ntu/NtPDNs/DNs+/Ns+/Msu/Msu/Msu/Msu/Msu/Msu/Msu7Lsu7Lse7Lse7Lse7Lse7Lse7L + sfDLsfDMsvDMsvDMsvDMsvDMsu/Lsu/Lse/Lse/Lse/Lse/Lse/Lse/LsvDMsvDMsvDMsgAA8M6x8dCy + 8tCy786w7cuu68qs6sms7syu7s2w68uw68ux7c2z7s2078618M+18M+17s608NC38M+2786178+18dC3 + 89K589O68dK47tC07tK07NS08tm689i77NC17tC39ti/9de879K28NS279O27NK269G48tjD/OLR7NPE + xK2hvK6j3tbN9+/l+/Pq+/Tq7+Ta3tDF1MS5wK2gxrGl18Gz8tvM8tnKzbKkyayezK2ezq+g4sS27dHD + 8tbI3MK04MW36dDC7tXH9+HS4s2+w66gvKeYqJSFrpmK59HC+eTV7NbG893O5tDE3Me81MG45M7D9/Dj + ++ncsZSFqo596Mq27c2368u07sy17s207s207s207s207cy07cu17cuz7suy7cqy7cqx7cqx7cqx7cqx + 7cqx7cqx7cqx7cqx7Mmx7Mmw7Mmw7Mmw7Mmw7Mmw7cmw78mw78qx78qx78qx78qx78qx7smx7smw7smw + 7smw7smw7smw7smw7smx78qx78qx78qxAADz0bPz0bPy0LLwz7Hvza/uza/vza/xz7Hw0LPtzbLuzrTv + zrXwz7Xwz7Xw0Lbx0Lbwz7Xz07n007nx0Lfw0Lbw0Lbx0bfy0bjy0rfw0rfv07Xq0bHw1rj1277z1rvw + 0rr01bzy1brx1Ljw1Lbs0bL23MDx173s073jyrjLsaPYvrLZxLfOu67gzsHx39HizcDSvK/Ks6W/p5rG + rp/JrZ/MsKDw0sP42svUtaXQsKDkw7Tgvq7fwLHw1Mfs0sTp0MLs0sTiyLrcwrXgyLrErp/Erp/Hs6Sr + loelkYLOuqvr1sfs18jv2svn08bk0cbax73jzcH67uHx3M6vk4O3mojv0b3y0rvtzLTwzrbwz7Xwz7Xw + z7Xwz7XvzrXvzbbvzbTwzbPvzLPvzLLvzLLvzLLvzLLvzLLvzLLvzLLvzLLuy7Luy7Huy7Huy7Huy7Hu + y7Hvy7Hxy7HxzLLxzLLxzLLxzLLxzLLwy7Lwy7Hwy7Hwy7Hwy7Hwy7Hwy7Hwy7LxzLLxzLLxzLIAAPHP + svDOse7Nr+3Mru7Mr+7MsO/NsPDOsu3Mr+jJruvKsOzLsu3Ms+/OtfDPtfHQt/HRt+/Pte/Pte/Pte/P + te/Pte/OtO/OtfDPtu/RtunNr9O6m9G4m+fMsPXZvvLTu+3Qtu/St+3QtO3StPTYuu3TuPHYvt7FsLmf + jruhk9O5rPXby9i+rr6klcuxoc2zo8qvoMeqnMSnmNi7qtu9rNKyoOvKuPDRv9a2pNOzoezMuuXGs9q9 + rOzTw+nSwuTNve3Vxu/YyeDJudnCs9nCsurVxO/bys+8q7CejbupmNvJuOXUxObVxeTUxeLRxtjGvN/K + v/vw4+LPwa+Tg8Onle7PvOzMtuzLtO7MtO7Ns+7Ns+7Ns+7Ns+3Ms+3LtO3Ls+7Lsu3Kse3Kse3Kse3K + se3Kse3Kse3Kse3KsO3KsOzJsOzJsOzJsOzJsOzJsOzJsO3JsO/JsO/KsO/KsO/KsO/KsO/KsO7JsO7J + sO7JsO7JsO7JsO7JsO7JsO7JsO/KsO/KsO/KsAAA89Gz782v7syu7cut782v8c+y8tCy8c+y8M6y7s6z + 78618M+18M+18M+18M+28M+28dC268qx6smw78+18tK489O58tK48tG38tK38NO38da33sWl28Gj6s+y + 89a78NG57tC27tC17tG09Ni689e56tC05syzyrGbrZOCtpyOw6ib6s6/9NfE0LKgxqmW2bqnz7CdwKKP + z7Gdz7Cc3b2pza2Z0rOf0LGezrCd07Wh5May6s245Mq37NbE69bF6NLB6tXE79rJ6tTD5M++48299eHP + /+7c7dvKxrOjuqqY2cm469zL59nH8OHR59XK28i/4Mu//vTn2ce4sJSF0LWj8NK+68u17s2278628M+1 + 8M+178+178+17s617s227s20782z7syz78yy78yy78yy78yy78yy78yy78yy78yy7suy7sux7sux7sux + 7sux7sux7sux8Mux8Myy8Myy8Myy8Myy8Myy78uy78ux78ux78ux78ux78ux78ux78uy8Myy8Myy8Myy + AADrzLDrzLDnyKvnx6vqyq7rzK/szbDszbDuz7Px0bbw0Lbw0bbwz7XuzrPtzbLszLHry7Dnxqznx63t + zbPx0bby0rfy0rjx0bbx0bfx07bw1Lbv07Xx1rjx1rju0bbu0Lbz1Lvz1bvw07ju0bbw07n228LXvKW3 + nIepj36xloi9oZLKq5rpyrfiw6/NrprWtqPIqZbCo4/evqvTs6DWuKTQsZ3HqZbDp5Tdwa3gxLDavarl + yrbr08Hp0sTq1sjw3M/v2s3o1cjt2s3w3dDl08bl0sT15df35tjRv7K8rJ/Xx7nr2szq2cvt3dHo2c3Y + yb3cybz88+TOvKyvk4Pbvqvz077pyrLuzLTvzbXuzrTuzrTvzrTvzbXwzLXwzLXvzLPwzLLwy7Lvy7Hv + y7Hvy7Hvy7Hvy7Hvy7Hvy7Hvy7HuyrHuyrDuyrDuyrDuyrDuyrDvyrDvyrDwy7Hwy7Hwy7Hwy7Hwy7Hv + yrHvyrDvyrDvyrDvyrDvyrDvyrDvyrHwy7Hwy7Hwy7EAAOjKsfHUuufKsOjKsfDTue3PtunNs+nLsuvM + svDQtO/Psu/Qs+/Psu/PsvDQs+/Qs/DRtO7Psu3Ose3Nse7Ose/PsvDQtPLTtvPUt/TUuPPUuPTUuPPU + uPLTuPLUufLTufHSufHSu+/Que7PufXWwe7Ou8ytmsCikK6RgMapmLyejb2djtOyod27q9m3ps+vnsmo + l82tnNOzosysm86xn8yuncGkk8munOrPveTJt9e8qufMu+/WyezTy+3W0PLd1/fh2/He1+jWz+PTzOzc + 1d7Ox+HSyvjn4NrIwLGdl8u2sO7X0fTe2O7a0+bc0cvCtt7Rw/3y5Mmzo7aaiOnKt/bUv+vJsfHNtvDN + tu/Ntu/NtvHNtvHMt/LMt/TMtvTNtfTNs/TOsvPNsvPNsfPNsfPNsfPNsfPNsfHLsPHLsPDMsPDKr/DK + r/DKr/DKr/DKr/HKr/HKr/LLsPLLsPLLsPLLsPLLsPHKsPHKr/HKr/HKr/HKr/HKr/HKr/HKsPLLsPLL + sPLLsAAA5siv7tC448at48at68216cuz6cy07M627tC38dK48M+17c2z7cyy7cyy7s208M+18tK48M+1 + 7cy07s2178+18M+28dC28tG389K489K49NS39NS39NO489K58tO58dK68dK68dK679C77s+779C84sSx + wqSRvJ+OtZeGzrCexKeWupqKyaiY07Kj0K+gy6qbwaCRwaCRzK6dy62dyq6dvqKSxqqa3MCw6M292sCw + 4ci38NbG7tXI8NfR7tfR8NvU8+DZ8+Ha8N7X69vU6tvU69vU28zF79/Y4M7HopCJvaqj8dvV7dXP8d7X + 6uDUxb6w6+DR/e7fwaqawKKQ7My59NO/8M628My18M22782178218cy38cy28sy28sy28s208s2z8s2z + 8c2z8cyy8cyy8cyy8cyy8cyy8cyy8cyy8Muy8Mux8Mux8Mux8Mux8Mux78ux78ux8Myy8Myy8Myy8Myy + 8Myy78uy78ux78ux78ux78ux78ux78ux78uy8Myy8Myy8MyyAADZu6Ldv6fRs5rTtZzixKvnybHrzbTt + 0Lftz7Xu0Lbu0LXv0Lbv0Lbv0Lbv0Lbv0Lbv0LXu0LXuz7Xu0LXv0Lbv0Lbv0bbw0rfx07jx07jy1Lny + 1Lny1Lnx07jx0rnx0rnw0brv0Lrw0rzx1MDw0r7gwrC/oZC+opG9oZDXuqvKrp+5m4vBo5LJq5rLrZzN + rp7DpZS/oJDJrJvMr57MsJ/Krp7Kr57RtqbexLPUuqrZv67v18b03M/v2dHu2dPu2tTx3tf149z35N7z + 4tvs3db25t/h0cvTw7zJuLGwnpe+q6Tjzsj139nu29Tu5dnMw7b17+Dx39C8o5PLrpzszLntzLfvzrbu + zLTvzbXvzbXvzbXvzbbwzLbyy7byzLXyzbTyzbPyzbPxzbPxzLLxzLLxzLLxzLLxzLLxzLLxzLLwy7Lw + y7Hwy7Hwy7Hwy7Hwy7Hwy7Hwy7HxzLLxzLLxzLLxzLLxzLLwy7Lwy7Hwy7Hwy7Hwy7Hwy7Hwy7Hwy7Lx + zLLxzLLxzLIAAOXHruLEq8yulsyuluHDquzOtu/RuOvNtenMsvDRt+/Rt/DSuPHTufHTufDSuPDSuO7Q + tu/Rt/DSt/DSt/DSuPDSuPDSuPHTufHTufHTufLVuvLVuvLUuvHTuvHTuvHRu/DRu+7Ru/DSvfPWwvXX + xeXIt8OmlcKllcGlldu+r8msnbqdjbyfj7udjcKlltK0pM6woMSnl8asm8WqmsmuntS6qtO7qtK6qufN + vd/Gtta/rerTwvPcz+7X0PDb1fDd1vDd1/Ti2/nn4Pfo4fDh2vjp4unb1Ma3sLelnrqnobypos25s/fh + 3O3a0uzg1drOwfz05tjHuL2ik9u9q+7Nue3KtfHOt+7Nte/Otu/Otu/Otu/Ot/DOt/DNt/LMtvLNtfLN + tPLNtPHNtPHMs/HMs/HMs/HMs/HMs/HNtPHNtPDMtPDMs/DMs/DMs/DMs/DMs/DMs/DMs/HNtPHNtPHN + tPHNtPHNtPDMtPDMs/DMs/DMs/DMs/DMs/DMs/DMtPHNtPHNtPHNtAAA7M619Na97M+2686179K56861 + 6sy07M+27c+38NG479C47M216syz6syz7c+279G48NG58NG68NK58NG579G479G48NG479G479G479G4 + 8NO48NO48NK579K579G679G67tG77dG87NC779G/9NfG5cq5wqaXwaWWv6OU1bmrwKSVvKCRv6KUuJuN + wqaX17us3L+xz7amyrGhxaucxq6ey7OkzLOk0bip3se41b+w1r+w5c+/59LG69bP7trU7tzW7tzV7t7X + 8+Pc9ejg8eTc8OPb6NvT2svEyrq0w7OsxrStzru07NbQ6tjQ4tXK4tbJ++3fxrKivaOU5MW0782678u2 + 8s647Mu07cy17M217M217My27My27My27cu17su078y078u07sy07suz7sqz7suz7sqz7sqz78u078u0 + 7sq07sqz7sqz7sqz7sqz7sqz7sqz7sqz78u078u078u078u078u07sq07sqz7sqz7sqz7sqz7sqz7sqz + 7sq078u078u078u0AADtz7bszrbtz7bsz7btz7bt0Lft0Lfv0bnsz7bqzLPw0rrtz7blx67myK/v0bjy + 1Lztz7bt0Lfv0rnv0bjv0bjv0bjx07rx1Lvy1Lvx07rv0bjw0rnx07rz1Lzy1r7y1r/y1cDz1cHv0r/t + 0sDy1sbkx7fDppjGrJ3Cp5nTuKrBppjCp5rEqZvGrJ7JrqDRtqnozcDiyLrSuKrNs6XKtKXPuKrKs6TX + wbLeybrXwrPl0MHs18nizsPr2NDu3NXs2tPz4dr05N3x4dr36uL26eH16ODm2dHSw7zDs6zHt7DcysPb + ycLq19Dx4Njh0sjt39Lp2cvAqZvKrp/rzLruzbnwzLj00LnszLTvzbXtzrXszrXszbbrzbbrzbbszLXv + zbbxzrbxzrbyzrbyzrbxzbXxzrbxzbXxzbXxzbXxzbXwzLXwzLTwzLTwzLTwzLTwzLTwzLTwzLTxzbXx + zbXxzbXxzbXxzbXwzLXwzLTwzLTwzLTwzLTwzLTwzLTwzLXxzbXxzbXxzbUAAO3Pt+zOtevNtOnMs+rM + tOrMtOzOte7QuOvOtufLs+rOtuvPt+vPuOzQuO3RuezQuOrPt+fMtefLtOjMtOnOtuvPuOvQuOvQue7S + uvDUvPDSufHTuvDTu/DUvPDUve/Tvu3RvuvQve3Sv+/Tw+nOvdrAsMCml8iuoL6klsiuor2jl8iuoc60 + ps2zpcqwotC3qeTNvt/IudG6q8avoMizpNO+r8+6q9C9rtC9rtPAsuzZyvnm1uXTyOHOx/He1+nZ0vDg + 2fjr4/Pm3vPn4Pjt5vLn39HHvsC0rc/But7QyN/PyN3LxOvZ0uzc09rKwOHRxdC9sMOrnd3AsezMu+/N + uvTQvPHNtuzLs+vNtOvNtOvNtOvMtevMterMterLtOzMte7Mte7Mte7Mte7Mte3LtO3Mte3LtO3LtO3L + tO3LtOzKtOzKs+zKs+zKs+zKs+zKs+zKs+zKs+3LtO3LtO3LtO3LtO3LtOzKtOzKs+zKs+zKs+zKs+zK + s+zKs+zKtO3LtO3LtO3LtAAA8NK579G47c+27M6168617M627dC37tG47tG57dK669C47NG579O88NS8 + 7tO77tK68NS88dW97tO77tO78dW98ta/79O769C479S89NjA8tW989a+8ta+8ta+8dbA79TA7tO/69G9 + 79TB8dbG58y928Gxw6mb0LWnwqebxKufw6qezLKm0Lirz7eqzbSn1b6x5M7B2cO1zLWowKmczbmr2sa4 + 2MW40b6wybeq1MK18eDS/eve69nP6NbO9uTe6dnS79/Y+u7m9ejg7+Tc+e7m5tvT0MW+2s7G7uHZ5tnR + zr631MO98N7X+ejg4tHH28q+vaiczbSl8dLC782878259tK+78u178627M+27c+268+27M637M636863 + 68227M6378638M638M638M637822786378227822782278227sy27sy17sy17sy17sy17sy17sy17sy1 + 782278227822782278227sy27sy17sy17sy17sy17sy17sy17sy2782278227822AADt0Lft0Lft0Lft + z7btz7bszrbqzbTpzLPqzrXt0bru07vt0brr0Ljs0bnv07zw1b3v07vu07vs0bnqz7jv07vv1L3ozbXi + x6/myrPv07vu0rvv1Lzv1L3w1L3v1L/u07/t0r7s0b7u08Pu1sbs0sPiyLrGq57Uuq7Jr6PIrqLPtanT + uq/Rua7OtqvRua7hyr/l0MTQu6/NuKzLtqrKuKvUwbTYxrnVw7bSwrXj0sX47OD+9en05Nrp2dDy4Nnl + 1c/t3tf36uLx5d3q4Njr4tnSx8DYzsbx5t706ODm2NDXx8Dh0crv3df87eXt3NLXxbm4opbUu63w0sPt + y7rvy7jzzrruyrPuzrbsz7bsz7bq0Lbpz7fqz7fpz7frzbbszbbtzbbuzbbuzbbuzbbtzLXtzbbtzLXt + zLXtzLXtzLXsy7Xsy7Tsy7Tsy7Tsy7Tsy7Tsy7Tsy7TtzLXtzLXtzLXtzLXtzLXsy7Xsy7Tsy7Tsy7Ts + y7Tsy7Tsy7Tsy7XtzLXtzLXtzLUAAO3Ot+7QuO/RuvDSuvDSu+7QuOrNtejKsubIsefMtPHVvfLWvu3R + uu7Su/TYwPPXv+nNtu3Ruu3SuuvQuPHVvfPYwOzRueXKs+vPuPXZwe3RuezRuu7SvfDTv+/UwO/VwPDU + we/Uw+7Swu7UxfTay+zTxciuode9sNK4rNC3q9vBtdnAtM+4rMawpMy2quDKvt7IvMWwpM68r9jFuMe0 + p8q3q9C/stPDttbFuOTTxvPk1/fp3O7e0+XTy+fVzuTTzPLi2/ns5PTo3+zi2t7UzMq/t+PY0PHn39zQ + yM3AuMi6s86+t9fHwPrr4fXj2NfDtrymmNm/r+vLvO/Mu/PQu/PRu/PQue/Otu3Pt+3Pt+vQt+vPuOrP + uOrPuOzOt+3Ot+3Nt+3Nt+3Nt+3Nt+zMtuzNt+zMtuzMtuzMtuzMtuvLtuvLtevLtevLtevLtevLtevL + tevLtezMtuzMtuzMtuzMtuzMtuvLtuvLtevLtevLtevLtevLtevLtevLtuzMtuzMtuzMtgAA8dG78NC7 + 8dC78dG78tK88dG87s646cm05Max5Miz6c657tO+8dbB8NXA79S/7tO+7NG87tO+7tO+7tO+79S/79S/ + 79S/7tO/8NXA8NXA8NXA58y369C889jE79bD69K+7dPC7tPE6dC/69PB9d7M8NrKyrSk07yszLWm0Lmp + 38i63ca5zLWqyLGl28S448zA0Lquz7mt2sS5zrisz7yvzruu1MG01MG018W428u+1cS31sW45dXI5tTK + 28jA3szE797W8+Ha8+Ha9eTe2srE2MjC9eji8+Xf28zF2MvD18vC1cnA6NzR9eXa+eTZ0rmuxKuc1buq + 6s669Ne/79G57c+389O978+58M+78M+879C879C77tC77NC57NC47c+578667s257s257s257cy47s25 + 7s257c257cy47cy47My47Mu37Mu37Mu37Mu37Mu37Mu37Mu37cy47cy47cy47cy47cy47Mu47Mu37Mu3 + 7Mu37Mu37Mu37Mu37Mu37cy47cy47cy4AADuzrvtzbrtzbruzrvw0L3y0r/x0b/v0L3sz7zs0r7s07/t + 1MDs07/r0b3p0Lzp0Lzq0b3s07/s07/s07/s07/s07/s07/s08Dt1MDt1MDu077s0bzv1cHx2MTt1MDs + 07/v1sTt1MTp0cDt1sT2383u18jJs6PTvKzLtKTRuqvdx7fex7rPt6zLs6fdxbngyr7Pua3Ru6/cxbrS + vLDVwrXSv7LSwLPTwrXdzL/k08fdzL/cy77o18vq2M3ezMLgzcbw3dXy39jx3tj14t3dysXXxcDy5d/4 + 6ePo19Hl18/i1szf08nr39Pu3dH44tfJsKTAp5jawa7r0bvu07zs0Ljv0bnx0rzvzrnvz7vvz7zvz7zt + z7zt0Lvt0Lrs0Lntz7ruzrvuzrvtzrvtzbrtzbrtzbrtzbrtzbrtzbrtzbrszLrszLnszLnszLnszLns + zLnszLnszLntzbrtzbrtzbrtzbrtzbrszLrszLnszLnszLnszLnszLnszLnszLntzbrtzbrtzboAAO/Q + ve/Qve/Qve/Qve/QvvDRvvHTwPLTwfDUwO7Tv+3Vwe7Vwe7Vwu3Vwe3UwOvTv+rRvezUwO3Vwe3Vwe3V + we3Vwe3Vwe3Vwu7Wwu7Wwu7Uv/LXw/Laxe/Xw+zTwO3Twe7WxO7XxOzVw+/Yx/fgz+rTw8mzo9W/sMy2 + ptW/sN7Jud3GudC5rc23q9zFud3Hu9G7r9W/s+HMwOPPwvDd0OnWydvLvtjIu+TTxuvazejXyurazO/e + 0uvZzuHPxOLPx/De1vLg2fTh2vrn4unV0c69uOXW0Pfn4OjY0eLTzNvPxdnNw93SxtPEuPTf1MOsoMCm + mOLJt+3Tv+vPue7QuPHTu/LTvPDQu/DRvfDRvvDQv+7Rvu7Rve7RvO3Ru+7QvO/Qve7PvO7PvO7PvO3O + u+3PvO3Ou+3Ou+3Ou+3Ou+zNu+zNuuzNuuzNuuzNuuzNuuzNuuzNuu3Ou+3Ou+3Ou+3Ou+3Ou+zNu+zN + uuzNuuzNuuzNuuzNuuzNuuzNuu3Ou+3Ou+3OuwAA79K/8dPB8dTC8NPA7tG/7M+97M687dC+69C96M+8 + 6dC969K/7tXC8NfE8djF7tXC69O/7NPA7NPA7NPA7NPA7NPA7NPA7NPB7dTB7dTB7dXC79fD7tbC7dTB + 7dTD6c+/5My769TC7tfG7NXG89zN4sy8x7Gh1cCxzLip2MS13sm93Ma60Luv0buw3Ma72cS40ryx2MO3 + 5NLF8uDT/Ozf9uPW3cu/08O228q9387B4NDD5tfK7NvQ6dfM4M7D4c7G79zU8d7X9OHa/Ork8N3Yz765 + 49PO+erk7t7X5dfP39TK5trP69/U18m96tfNx6+kyK+h4sm569G+6tG669G57tG58NK779C88NC978+/ + 78+/7dC+7dG969G869C769C77M686868686868686867686868676867686768676s276s266s266s26 + 6s266s266s266s26686768676867686768676s276s266s266s266s266s266s266s26686768676867 + AADt0cDw1MPz18f02Mfx1cXu08Pt0cDs0cDt1MPv1sXs1MLq0sDr1MLv18Xx2cjx2cfv2Mbu1sXu1sTu + 1sTu1sTu1sTu1sTu1sXv18Xv18Xx18bv1MTp0cDt1sTy2snn0L3aw7Lo0cLy28vr1MXz3M3cx7jFsKHY + w7TQu6zey77hz8Lkz8PcxrvbxrvjzcLbxrvTv7XZxbrl0cb759z97+T76d7h0MXWx7vczMDby7/ezsPn + 18vu3tLv3dLk0sjl0svx39fx39j14dr+7Oby4NvZx8Hs4Nr/9e/15d7l1s7d0sjp3dPx5dnXyb3n0srS + u7HUu67iybjq0r7w18Lv1Lzr0Ljv0r3y0b7x0r/w0sHw0sHu0sHu0sDt0r/t0r7t0b7t0b/s0MDs0L/s + 0L/s0L/s0L/s0L/s0L/s0L/s0L/rz7/rz77rz77rz77rz77rz77rz77rz77s0L/s0L/s0L/s0L/s0L/r + z7/rz77rz77rz77rz77rz77rz77rz77s0L/s0L/s0L8AAOzSwe3Twu3Twu3Twu3TwuzSwezSwezRwezT + wu7WxO3Vw+3Vw+3Vw+3WxO7WxO7WxO3WxO3Vw+3Vw+3Vw+3Vw+3Vw+3Vw+3VxO7WxO7WxPHYx+/XxuvT + wevUwvDZyO7YyOzVxfbi0vnm1uzXyO7Zy+HMvcmzp93Kvc+8rtbDtuDMwOHOwt3Kv9zIvd3JvtvHvNjE + udrHvOLQxfDe0/zz5/Pk193NwdrKvuTWyeXYy97QxN/QxOrZzvHf1OXUyt/MxPLf1/Dd1vnm3/ro4uvY + 0+HRy/Di3Pfo4vbl3/Hi2tnOxNXJv+TYzNPFutnDvM64sNjBtePLvOfOu+/WwO/Uv+nMuOvOuu7Qvu7Q + vu7QwO7QwOzQwOzQwOrQvunQvenPvunPv+nPv+nPv+nPvunPvurQv+rQv+rQv+rQv+rQv+nPv+nPvunP + vunPvunPvunPvunPvunPvurQv+rQv+rQv+rQv+rQv+nPvunPvunPvunPvunPvunPvunPvunPvurQv+rQ + v+rQvwAA7tXF7tXE7tXE7dPD7dTD7dTD7dTD7dPD7dXE7tbG7tfG79jH79jH79jH79jH79jH7tbG7tfG + 7tfG7tfG7tfG7tfG7tfG7tfH79jH79jH8tvK8NnI7tbG7tfG7NXF3se3072u4My979vM7djK7djL5dHF + zrqt3sq/0b6y1MK24c7D49DF4MzC3cnB3MnA3MnA2se+3crB5dTK8N/V/vDl8eHX3M3C2svB6drQ7+DW + 5dbM3tDF5NTK797S79zS5tPL9uPb9+Td+OXd8d7Y4s7K7NzW9OTe8uLb9ufg8+Xd39TK1Mi+1sq+1Ma8 + 3MjB07y038e96NHD6dLB7dbC7tXB7tO+8dTA8NK/8NLC79LD79LD7dLD7dPC7NPA69O/69LA69LB69LB + 69LB69LB69LB7NPC7NPC7NPC7NLC7NLC69HC69HB69HB69HB69HB69HB69HB69HB7NLC7NLC7NLC7NLC + 7NLC69HB69HB69HB69HB69HB69HB69HB69HB7NLC7NLC7NLCAADt1cXt1cXt1cXs1MTs1MTs1MTs1MTr + 08Ts1cXt1sft1sbu18fu18fu18fu18fu18ft1sbt1sbt1sbt1sbt1sbt1sbt1sbt1sbu18fu18fr1MXv + 2Mjv2cnw2cru2MjfybrOuarLt6jcx7nr1srq1snp18rVwbXZxbvSv7TSwLbhz8Tl0snhzMXcyMHayMDa + yMHbyMHfzMTn1s7y4dj76uLx4NfczcXWyL/k1czu4Nfp3NPi08vi0sjq287z4Nbp1s7v3NT14tvt29Tn + 1M/iz8ru3df15d/77eb15t/f0cjh1cvp3dPYzMDRwrnWw7zNuLDdx73s1cfu1sbu1sPs07/v1MDz18Tv + 0cHv0sPu0sTu0sTs08Ps08Ps08Lr08Hq0sLq0sLq0sLq0sLq0sLq0sLr08Pr08Pr08Pq0sLq0sLp0cLp + 0cHp0cHp0cHp0cHp0cHp0cHp0cHq0sLq0sLq0sLq0sLq0sLp0cHp0cHp0cHp0cHp0cHp0cHp0cHp0cHq + 0sLq0sLq0sIAAO3Wxu3Wxu3WxuzVxezVxezVxezVxevVxe3Wxu7XyO7XyO/Yye/Yye/Yye/Yye/Yye7X + yO7XyO7XyO7XyO7XyO7XyO7XyO7XyO/Yye/YyfHayvfg0PHby+rUxO7YyvTg0fLdzu3XyevXyerXyu7b + z/Xh1uHNwtXDuNTCt9PBtuPSxunXzuLPyNvJwdvHv9zKwt7Lw+PQyOzb0vbl3Pjp4PPl3OPUy9fHv9zP + xujd0+re1Ofa0OfYzuvazu/d0ufUzObTzO/c1ebTzOvY0+rW0fbn4ffo4vPi3O/f2efY0One1Ojc0t7R + xufY0NPBusexrNnDue3WyPLbyvHZxuzTv+3UwPLXxPDUw/HUxfHUxvHUxu/Vxe/Vxe7VxO3Vw+zUxOrU + xOvUxOvUxOvUxOvUxOzVxezVxezVxerTxOrTxOnSxOnSw+nSw+nSw+nSw+nSw+nSw+nSw+rTxOrTxOrT + xOrTxOrTxOnSw+nSw+nSw+nSw+nSw+nSw+nSw+nSw+rTxOrTxOrTxAAA69bH69bH69bH6tXG6tXG6tXG + 6tXG6dTG7NbH8NjK79jJ8NnK8NnK8NnK8NnK8NnK79jJ79jJ79jJ79jJ79jJ79jJ79jJ79jK8NnK8NnK + 8tvL9t/P8drM7NXH7tjJ7tnK6dTH69XJ79vP7drN8t/S/Ovg5tXJ08K218W60b+049HH69jQ49DJ3MnC + 2cfA3MnC38zG5dLM7tzV9+Xe8eHa9eXe7NzV3MzF283F5tnR6dzU5NfO6NnQ7d3R59bL6NbN5dLK6dbP + 4M3H8N3X5dLN9Obh++7o7NzV5tXP6trT5drQ28/F39PH8+Tb4tDI0Lq02sS66dTH79rJ8drH69PA7NPA + 89nH8NXE8dbH8tXI8tXH8NbG8NbG79bG7tbF7dXG69XG6dXG6tXG6tXG6tXG69bH69bH69bH6dTF6dTF + 6NPF6NPE6NPE6NPE6NPE6NPE6NPE6NPE6dTF6dTF6dTF6dTF6dTF6NPE6NPE6NPE6NPE6NPE6NPE6NPE + 6NPE6dTF6dTF6dTFAADs1srs1srs18rs1srs1sns18rt18rs1srt18ru2Mvu2Mvv2czv2czv2czv2czv + 2czu2Mvw2czw2c3u2Mvt1srs1snt1sru2Mvw2s3x283t2Mnu2crv2svu2s3u3M7u2s3r2Mzt3NDu3dHt + 3dH15tv87+T26N7Tx7zRxLnVyL3i1s3t39bo2dDdzcXZysHbzMPf0cjl187v4dj26uDu4djy5dzx5Nvh + 1Mvj187p3NPo3NLm2tDm2M/r3NLq3NLj1Mrl1s3q29Lh0cnn18/m2dDv4tn57ePv4tjazsTd0cfs4Nbq + 3tTr39Xi1szv3tfVw73Rvrbjz8Xt2Mzu18nt1sbv2Mfw2Mbu1sTv18Xv1sbt1sbt1sfs1sfr1cfq1cbq + 1Mfr1Mjr1Mjr1Mjr1Mjr1Mjs1cns1cns1cnr1Mfr1Mfq08fq08bq08bq08bq08bq08bq08bq08br1Mfr + 1Mfr1Mfr1Mfr1Mfq08bq08bq08bq08bq08bq08bq08bq08br1Mfr1Mfr1McAAO3YzO3YzO7Zze3Zze3Z + zO3Zzu7azu7aze7aze7Zze7Zze/azu/azu/azu/azu/azu7ZzfDcz/Hc0O7ZzezXy+zXy+zXy+7ZzfHc + 0PLd0fHczvHbzu7azu3azezazevZzOvbzuzc0ObXy+XXy/Ll2fvw5v7z6t3TytLJvtXLw9/UzfDl3O/j + 2eHVzN3RyN/TyeLWzejd0/Hl2/js4/Lm3fHl3fDk2+PYzuzg1vDk2+3g1+3h2Ojc0+ba0ere1eLWzere + 1fDk2+nc0+ba0e3g1+jc0+nd1Ovf1uTYz+jc0vTo3/Lm3fLm3d7SyfLj29zNxtLBueDNxezZz+zYy+7X + ye/Zye7Xxu/Xxu/Yx+7YyO7YyOzYyezYyerXyurWyuvWyu3Wyu7Wyu7Wyu7Wyu7Wyu/Xy+/Xy+/Xy+3V + ye3VyezUyezUyOzUyOzUyOzUyOzUyOzUyOzUyO3Vye3Vye3Vye3Vye3VyezUyOzUyOzUyOzUyOzUyOzU + yOzUyOzUyO3Vye3Vye3VyQAA7NnM7NnM7NnM69nM7NnM7NnM7NnM7drN7drN7drN7drN7tvO7tvO7tvO + 7tvO7tvO7drN7tzP7tzP7drN69jL69jL69jL7drN7tzP793Q7dfM7tjM7drN7tvO7NvP69rN6NnM6NjM + 5NXJ4dPI7eDU+O3j+u/l5t3T1cvB0ci/2c/H7uHa7uLa4tXO39LK4dTM5NfP59rS7uHZ9Off8OPb7uHZ + 697W4dTM7N/X8uXd7uHZ7+La6dzU4dTM4dTN5NfP7eDY8+be7+La6t3V6t3V39LL2czF59rS8OPb7eDY + 7eDY7N/X7eDY3dDI8ODZ6NnS2cnA3czC6djN6tjL6tbI7NbH7NXG7NbH7dfH7dfH7dfI69fI7NfI6tbJ + 6dbJ6tXJ7NXJ7NXJ7NXJ7NXJ7NXJ7dbK7dbK7dbK7NXJ7NXJ7NTJ7NTI7NTI7NTI7NTI7NTI7NTI7NTI + 7NXJ7NXJ7NXJ7NXJ7NXJ7NTI7NTI7NTI7NTI7NTI7NTI7NTI7NTI7NXJ7NXJ7NXJAADv3M/v3M/v3M/u + 287v3M/v3M/v3M/w3dDw3dDw3dDw3dDx3tHx3tHx3tHx3tHx3tHw3dDx3tHw3dDw3dDw3dDw3dDw3dDw + 3dDx3tHy39Ls2czt2s3u287w3dDv3dLv3dPu3tPu3tPt3NPq3NPw4tn37OL37OTv5tzXzsbSyL/a0cjr + 4dns4Njj1s7h1Mzj187n2tLo3NPu4dnz5t7v4trs39fq3dbj1s7t4Njw49vr3tbw49vu4dnj1s7e0cnk + 18/s39fy5d3z5t7u4dnq3dXf0srUx7/e0cnl2NDh1Mzh1Mzh1Mzj1s7bzsbu4Nr26eLh0sraysHq28/u + 3dDr2Mru2crt2cru3Mnv2srv2svv2svt2szt2s3r2c3r2czs2czu2Mzu2Mzu2Mzu2Mzu2Mzv2c3v2c3v + 2c3u2Mzu2Mzt18zt18vt18vt18vt18vt18vt18vt18vu2Mzu2Mzu2Mzu2Mzu2Mzt18vt18vt18vt18vt + 18vt18vt18vt18vu2Mzu2Mzu2MwAAOzaz+zaz+3b0Ozaz+3b0O3b0O3b0O3c0O7c0e7c0e7c0e/d0u/d + 0u/d0u/d0u/d0u7c0e3b0O3b0O3b0O7c0e7c0e7c0e7c0e7c0e7c0fDd0fDc0e7c0e3b0O3c0e3e0e3e + 0+3f1eze1ejb0uve1vLo3/Po4ffu5tzSytLKw9zTzOrf2Ojc1uDUzuDUzuXZ0+fb1end1+7i3PLm4O3h + 2+rf2Ovf2eTY0u3h2+re2OPX0e3h2/Tp4+ve2NjMxuHVz+fb1evf2fPn4e3h2+nd1+TY0tnNx9vPydvP + ytvPyOnd1+fc1uTY0ufb1ejc1fzw6uLVzdTGvuna0O/e0urZy+7cze7azOzZyu3ay+3ay+3azOvazeva + zerZzenYzerYzezYzezYzezYzezYzezYze3Zzu3Zzu3ZzuzYzezYzevXzOvXzOvXzOvXzOvXzOvXzOvX + zOvXzOzYzezYzezYzezYzezYzevXzOvXzOvXzOvXzOvXzOvXzOvXzOvXzOzYzezYzezYzQAA793S8N7T + 8N7T793S793S793S793S797T797T797T797T8N/U8N/U8N/U8N/U8N/U797T8N7T8N7T8N7T8N7T8d/U + 8d/U8N7T8d/U8d/U9OHW8+DV8uDV8N7T797T79/U7t/V7d7W7t/X6t7W6t/X9Ori+vDo/fTt5d3W0cnC + 2tLL5dzV6t7Y5trU4tbQ5trU7eHb8OTe8+fh9+vl8OTe8ubg9Oji7uLc7eLc7ODa69/Z7+Pd8OTe6t/Z + 59zW6NzW5trU69/Z9+vl9enj6t7Y6NzW69/Z6d3X4tbQ6+Db/PLs8+fh8eXf9enj69/b+e/p69/Y1MjA + 5dbO8eLX797S7dzP7dvN7t3N7t3O7t3P793Q7d3Q7dzR7NzQ69vR7NvQ7dvQ7dvQ7dvQ7dvQ7dvQ7tzR + 7tzR7tzR7tzQ7tzQ7dvP7dvP7dvP7dvP7dvP7dvP7NvP69rO7NvP7NvP7NvP7NvP7NvP69rO69rO69rO + 69rO69rO69rO69rO69rO7NvP7NvP7NvPAADw3tTw3tTw3tTv3dPv3dPv3dPv3dPu3dPu3dPu3dPu3dPv + 3tTv3tTv3tTv3tTv3tTu3dLw3tTw39Tw39Tw39Tw39Tw39Tw39Tx4NXx4NXx39Xx39Xx4NXw3tbv39bv + 3tbu3tbr3dXt4Nns4tno3dbw5uD57+j58evq4tzQycPVzcbf1c/n29bn29bg1c/j2NLw5N/06OPy5+H0 + 6OPw5d/16uT36+by5uHq39no3dfn3Nbi1tHf1M7n29bv497q3tni1tHm29X06eP26+Xo3dfj2NPv497w + 5N/h1tDo3Nf06eTr4Nv16eT26+Xr4d3z6eTy5+HXzMTd0snt39bt3dPr287r2s7t3c/t3c/u3dDs3dDs + 3dHr3dHp3NLp29Pr3NLr3NHr3NHr3NHr3NHr3NHs3dLs3dLs3dLs3dLs3dLr3NHr3NHr3NHr3NHr3NHr + 3NHr3NHq2s/r29Dr29Dr29Dr29Dr29Dq2s/q2s/q2s/q2s/q2s/q2s/q2s/q2s/r29Dr29Dr29AAAPHg + 1/Hg1/Hg1/Df1vDf1vDf1vDf1vDf1vDf1vDf1vDf1vHg1/Hg1/Hg1/Hg1/Hg1/Df1vHg1/Hg1/Hg1/Hg + 1/Hg1/Hg1/Hg1/Lh2PLh2PLh2PLh2PLh2PHg1+/f2O/f2O7f2Ozg1+7h2u3i2+jc1uzj3PXr5fjv6+3k + 4NnTztTMx+DV0ufc2OXa1uTZ1ene2vTp5fjt6fTq5vDl4fTp5ffs6Pjt6fTp5e3j3+fd2eTa1uDV0uLY + 1Ozh3e/k4Ozh3eTa1ubb1/Dl4fLo5Ozh3uPZ1e3i3/ju6ufc2NvRzefc2Ozh3fnu6vvw7Ovi3vLp5fju + 6t/VztzRyejc0+ve0uzf0u7g0+7e0e7f0u3f0u3f0+vf0+vf1Ore1ere1Ovd1Ozd1Ozd1Ozd1Ozd1Ozd + 1O3e1e3e1e3e1e3e1e3e1ezd1Ozd1Ozd1Ozd1Ozd1Ozd1Ovd1Orb0uvc0+vc0+vc0+vc0+vc0+rb0urb + 0urb0urb0urb0urb0urb0urb0uvc0+vc0+vc0wAA8+LZ8+LZ8+LZ8uHY8uHY8uHY8uHY8uHY8uHY8uHY + 8uHY8+LZ8+LZ8+LZ8+LZ8+LZ8uHY8+LZ8+LZ8+LZ8+LZ8+LZ8+LZ8+LZ9OPa9OPa8+Pa8+Pa9OLb8+Ha + 8eDa8eHa8OHa7uDb7uLb7eLc6N/Y6eDc8ejk8uvn7efi5d/a1c/K3dbS59zZ59zY6uDc7eLe9Onl+u/r + +e7q8ebi+O3p9+zo9evn9Onl8ebi7+Tg8OTg9erm8+nl7+Tg9Onl8ufj6+Dc6d7a7uPf8ebi8ebh5dnV + 7OHd/fTw8efj3dLO49jU7eLe+e7q+/Ds7eXi8Orl/fTx5dzX29DK5drS6d7U7ODV7uLV7eDS7uHT7uDU + 7uDU7ODU7ODW6t/V6d7W6t7V69/V69/V69/V69/V69/V7ODW7ODW7ODW7ODW7ODW69/V69/V69/V69/V + 69/V69/V69/V6t7U69/V69/V69/V69/V69/V6t7U6t7U6t7U6t7U6t7U6t7U6t7U6t7U69/V69/V69/V + AADy4dry4dry4drx4Nnx4Nnx4Nnx4Nnx4Nnx4Nnx4Nnx4Nny4dry4dry4dry4dry4drx4Nny4dry4dry + 4dry4dry4dry4dry4drz4tvz4tv049r049rz4tvy4drx4trw4trv4dru4dvs4drt49zu5N7q4t7x6OTv + 6eTs5+Hv6OTb1NHf1tPl3Njo39vv5uLu5ODu5OD47ur78e306ub47+v16+fz6ub16+j16+fx6OTx5+P5 + 7+v37urv5eH37en27enx5+Ps4t7s4t7u5ODw5+Ps4t7s4t768+/07enf1dHi2NTr4d347+v89PDw6eXs + 5+T9+PPl3tjZ0Mjm3NTr4Nbr4NTu4tbt39Pt4NTt4NXt4NTr4Nbr4Nbp4Nbp3tbq39br39br39br39br + 39br39bs4Nfs4Nfs4Nfs4Nfs4Nfr39br39br39br39br39br39br39bq3tXr39br39br39br39br39bq + 3tXq3tXq3tXq3tXq3tXq3tXq3tXq3tXr39br39br39YAAPLl3fLl3fLl3fHk3PHk3PHk3PHk3PHk3PHk + 3PHk3PHk3PLl3fLl3fLl3fLl3fLl3fHk3PLk3PLk3PLk3PLk3PLk3PLk3PLk3PPl3fPl3fTm3fTm3fPl + 3fHl3PHk3fDk3e/k3e/k3e7k3ezj3O3k3vHo5Pbt6e7o4+7o4/Pt6d/Z1d7W0uXd2evj3+7n4uvj3+vj + 3/Pr5/jx7Pbu6vfw6/fv6/nx7fry7vjw7PHq5e/n4/Lr5vPs6PLq5/jw7fvz8Pbu6+7n4+7m4+/n5Ozk + 4ejh3e7m4/ny7/Hp5uDY1eLa1+vj4Pbu6/z28/ny7+3o5Pr18Ovm4dvUzuLa0uvi2uvh2Ozh2O3i2O7j + 2O7j2e7j2e3j2e3j2ezj2Ozh2ezh2ezg2e3g2e3g2e3g2e3g2e7h2u7h2u7h2u7h2u7h2u3g2e3g2e3g + 2e3g2e3g2e3g2e3g2ezf2O3g2e3g2e3g2e3g2e3g2ezf2Ozf2Ozf2Ozf2Ozf2Ozf2Ozf2Ozf2O3g2e3g + 2e3g2QAA8Obc8Obc8Obc7+Xb7+Xb7+Xb7+Xb7+Xb7+Xb7+Xb7+Xb8Obc8Obc8Obc8Obc8Obc7+Xb7+Xb + 7+Xb7+Xb7+Xb7+Xb7+Xb7+Xb8Obc8Obc8Obc8Obc8Obc7+Xb7+Tc7+Tc7uTc7uXc7eXd6OHa597Y8+rn + 9+7q7Obh8Orl8+3o5N7Z2NPO4NrV6ePe6uTf5+Hc6OLd6+bh7+nk8evm6uTf7+nk9O7p9O7p8Orl7ujj + 7ujj8evn8uvp8uvq9u7u/PT09/Dv7ubl7eXl8Ojo6eHg4trZ7ebl9e3t6eHh4trZ5t7e6uLi7ebl9e3s + /Pby7ujk9O7p8u3o4NjV3NPP5t3Y6eHa6eHa6+La7OLa7ePa7ePa7ePa7ePa7OPY7OLZ7OHa7ODa7ODa + 7ODa7ODa7ODa7eHb7eHb7eHb7ODa7ODa69/Z69/Z69/Z69/Z69/Z69/Z69/Z69/Z7ODa7ODa7ODa7ODa + 7ODa69/Z69/Z69/Z69/Z69/Z69/Z69/Z69/Z7ODa7ODa7ODaAADz6ODz6ODz6ODy59/y59/y59/y59/y + 59/y59/y59/y59/z6ODz6ODz6ODz6ODz6ODy59/y59/y59/y59/y59/y59/y59/y59/z6ODz6ODz6d/z + 6d/z6N/y59/x6N/x6N/x59/x5+Dw6OHu59/v5uD37ur47+vw6uX17+r58+7w6uXc1tLb1dDo4t3v6eTs + 5uHn4d3q5N/w6uXx6+bw6uXz7ej28Oz38ezz7ejx6+bx6+b17+r17+zz7Ov48PD+9/f99fXy6urw6Oj1 + 7e3x6en07Oz07Ozv5+jr4+Pr4+Pt5eXr4+Tt5eX07Ov58+/z7ej48u338u3o4Nvf1tLl3Nfs5d3v5uDu + 5N3v5d7v5t3v5t3w5d3w5d3v5dzv5dzv5Nzv493v493v493v493v493w5N7w5N7w5N7v493v493u4tzu + 4tzu4tzu4tzu4tzu4tzu4tzu4tzv493v493v493v493v493u4tzu4tzu4tzu4tzu4tzu4tzu4tzu4tzv + 493v493v490AAPHo3/Ho3/Ho3/Dn3vDn3vDn3vDn3vDn3vDn3vDn3vDn3vHo3/Ho3/Ho3/Ho3/Ho3/Dn + 3vDn3vDn3vDn3vDn3vDn3vDn3vDn3vHo3/Ho3/Ln3/Ln3/Hn3/Dn3vDn3vDn3u/m3+3l3vDo4vXr6PXs + 6Pbv6/Pt6O7n5PHq5/Pt6u/q5+Da1dnTzuTe2fDq5e7o4+Xf2unj3u/p5O/p5PLs5/Xv6vfx7Pbw6/Ls + 5/Dq5fHq5vXv6vfw7fPr6vPr7Pvz8/z09PPr6/Hp6ffv7/bu7vr09PXt7eri4uvj4/Do6O/n5+zk5O3l + 5fDo6PPu6/Lt6vbv7Pny7+7n4+Da1OLa1u3k4O/n4uvk3e3l3u/m3e/m3e/m3e/m3e/l3e/k3O7k3e7k + 3e7k3e7k3e7k3e7k3e/l3u/l3u/l3u7k3e7k3e3j3O3j3O3j3O3j3O3j3O3j3O3j3O3j3O7k3e7k3e7k + 3e7k3e7k3e3j3O3j3O3j3O3j3O3j3O3j3O3j3O3j3O7k3e7k3e7k3QAA9Orj9Orj9Orj8+ni8+ni8+ni + 8+ni8+ni8+ni8+ni8+ni9Orj9Orj9Orj9Orj9Orj8+ni8+ni8+ni8+ni8+ni8+ni8+ni8+ni9Orj9Orj + 9Ovi9Ovi9Ori8+ni8uni8uni8eni8eji8enk9e7q+PHs9O7q7+jk6+bj7unm8uzq8u3r6+bh39rV4dzX + 8Ozn8u3o6uXg7unk9vHs8e3o7Ofi7+rl8u3o8u3o8Ovm7+rl8u7p+fTv+vXy8+3s7ujn9O7t+vTz9u/v + 9e/u+vPz+fPz+/b29e/u7ebm8Orp8uvr7+no8uvr8+3s7+no9fDu9/Lw8+3r9/Lv9/Dt5+Hd5N3Z7+jj + 8erl7+bg8Ojh8ejh8ejg8ujh8ujh8ejg8ejf8efg8efh8efh8efh8efh8efh8uji8uji8uji8ebh8ebh + 8OXg8OXg8OXg8OXg8OXg8OXg8OXg8OXg8ebh8ebh8ebh8ebh8ebh8OXg8OXg8OXg8OXg8OXg8OXg8OXg + 8OXg8ebh8ebh8ebhAAD06uP06uP06uPz6eLz6eLz6eLz6eLz6eLz6eLz6eLz6eL06uP06uP06uP06uP0 + 6uPz6eLz6eLz6eLz6eLz6eLz6eLz6eLz6eL06uP06uP06+P06+P06uPz6eLy6ePx6ePx6OTx6eTv5+Pu + 6eTy7Ojw6efr5eLp5eLt6Obw7Or07+7v6+jj39vh3djt6uXy7unu6uXy7+r38+7z7+rx7ejz7+v08Ovz + 7+rw7Ofu6+bw7ej28u749PHy7uzr5+bv6un18O/38vH38/H49PP18e/38vHz7u3u6ejv6+nv6unu6unz + 7+707+7u6un28fD18PDx7Or28u/58/Dr5eLk3trr5uHv6OTv5+Pw6OPw6OLw6OLy6eLy6eLx6OHx6ODx + 5uHw5uLw5uLw5uLw5uLw5uLx5+Px5+Px5+Pw5uPw5uPv5eLv5eLv5eLv5eLv5eLv5eLv5eLv5eLw5uPw + 5uPw5uPw5uPw5uPv5eLv5eLv5eLv5eLv5eLv5eLv5eLv5eLw5uPw5uPw5uMAAPTs5fTs5fTs5fPr5PPr + 5PPr5PPr5PPr5PPr5PPr5PPr5PTs5fTs5fTs5fTs5fTs5fPr5PPr5PPr5PPr5PPr5PPr5PPr5PPr5PTs + 5fTs5fTs5fTs5fTs5fPr5PPq5fPq5vHq5vHr5u/p5e3m4+7o5e3o5ezo5ezn5u3o5+/r6vLv7e/s6Orn + 4+rn4u7s5/bz7vj18Pbz7vXy7ff07/Lv6vLv6vHv6u/s5+3q5e3q5e/s6PTx7PXz7/Pw7vLu7fHt7PTw + 7/r29fv39vj08/Pv7vXx8PXx8O/r6uzo5+/r6vXx8Pby8vTw7/Tw7/by8fHt7PPu7fn08/jz8e3p5uXf + 3ejh3u/p5fDr5fHq5vPq5vPq5vPr5PPr5PLr4/Lq5fHo5fDn5PHo5fHo5fHo5fHo5fLp5vLp5vLp5vLp + 5vLp5vHo5fHo5fHo5fHo5fHo5fHo5fHo5fHo5fLp5vLp5vLp5vLp5vLp5vHo5fHo5fHo5fHo5fHo5fHo + 5fHo5fHo5fLp5vLp5vLp5gAA9ezo9ezo9ezo9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9ezo9ezo9ezo + 9ezo9ezo9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9ezo9ezo9ezo9ezo9ezo9Ovn8+zn8uzn8uvn8+vo + 8ern7unl7+rn7urp7Ojn6eXk6ubl7Ofo7+rq8e3q7+vn7erl8e7q+PXw+vfy9/Tv9vPu9/Tv9/Tv9vPu + 9PDs7+zn7enl7enk7+zo9PHs9/Tw+PTy9fHw8+/u9fDv+fX0+/f2+/b1+fX0+PTz9fHw8e3s7+vq8u7t + 9fHw+fX0+fX0+PTz9vHy8+7v9O/u+PTz+PTz8Ozr6eTi6uXi7+rn8+rn8uvn8u3n8u3n9evn9evn9Ovm + 9Orn8urm8ejm8unl8unl8unl8unl8+rm8+rm8+rm8+rm8+rm8unl8unl8unl8unl8unl8unl8unl8unl + 8+rm8+rm8+rm8+rm8+rm8unl8unl8unl8unl8unl8unl8unl8unl8+rm8+rm8+rmAAD17un17un17un0 + 7en07en07en07en07en07en07en07en17un17un17un17un17un07en07en07en07en07en07en07en0 + 7en17un17un17un17un17un07en07en07enz7Onx6+nz7uz48/L28vH08O/x7ezq6Ojp5ubq5+fr6Ojv + 7Ont7Obr6uTv7un09O719O/y8uzx8Orx8ev29fD29e/z8uzw7+ns7Obs6+Xv7ujy8ez19PD29PL08vH0 + 8fD08fD28/L59vX59vX59/b49fT18vHy7+/x7u3y8O/18vH39fT49vX49vX08fHy7+/z8PD28/P49fP0 + 7+7u6unt6Ofu6ujw6+jx7Ojz7Ojz7Ojz7Ojz7Ojy6+fy6+fx6ufx6Ofx6ejx6ejx6ejx6ejy6uny6uny + 6uny6uny6unx6ejx6ejx6ejx6ejx6ejx6ejx6ejx6ejy6uny6uny6uny6uny6unx6ejx6ejx6ejx6ejx + 6ejx6ejx6ejx6ejy6uny6uny6ukAAPbx6/bx6/bx6/Xw6vXw6vXw6vXw6vXw6/Xw6/Xw6/Xw6/bx7Pbx + 7Pbx7Pbx7Pbx7PXw6/Xw6/Xw6/Xw6/Xw6/Xw6/Xw6/Xw6/bx7Pbx7Pbx7Pbx6/bx7PXw6vXu6/Xu6/Tu + 6/Lt6vXx7vn29fj08/fy8vTv7+7s7O3r6+7s7PDu7vHx7u/v6uzt5vDw6vX17/X17/Hx6+/v6fDw6vP0 + 7vX17/X17/P07fHy6/Dw6vHx6/T07/X08PPy8PXz8fX08/b08/f19Pj29fj29fj29fj39vj39vXz8/Ty + 8fPx8PPx8PTz8vb19Pf29fPx8fTy8vTy8vX09Pn29fr09Pby8fHt7PDs6vLt6vPu6/Tu6/Tu6/Xv6vXv + 6vTu6fTu6fPs6vPr6/Pr6/Pr6/Pr6/Pr6/Ts7PTs7PTs7PTs7PTs7PPr6/Pr6/Pr6/Pr6/Pr6/Pr6/Pr + 6/Pr6/Ts7PTs7PTs7PTs7PTs7PPr6/Pr6/Pr6/Pr6/Pr6/Pr6/Pr6/Pr6/Ts7PTs7PTs7AAA9e/r9e/r + 9e/r9O7q9O7q9O7q9O7q9O7q9O/q9O/q9O/q9fDr9fDr9fDr9fDr9fDr9O/q9O/q9O/q9O/q9O/q9O/q + 9O/q9O/q9fDr9fDr9fDr9e/r9e/r9O7r8+7r8u7r8+7r8u3r8e3r8Ozr8u7t8uzu8Ovr7urq7+zs8+7v + 9PHx9fPx8vHt8O/r8vHt9vXx9fTw8fDs7+7q7+/r7+7q8O/r8vHt8/Lu8vHt8fDs8fDs8/Lu8vHt8O7t + 8vDw9PLx9vTz9/X09vTz9vTz9fPy9/X0+Pb19fPy8/Hw8e/u8e/u8e/u8vDw8/Hx8vDw9PDx9PDx9fHx + +PP0+vT2+PPz8+7t8Ovr8e3r8u3s8u3s8u3q9O3q9O3q8+zp8+zp8uzq8urq8urq8urq8urq8urq8+vr + 8+vr8+vr8+vr8+vr8urq8urq8urq8urq8urq8urq8urq8urq8+vr8+vr8+vr8+vr8+vr8urq8urq8urq + 8urq8urq8urq8urq8urq8+vr8+vr8+vrAAD38vD38vD38vD28e/28e/28e/28e/28e/28e728e328u33 + 8+738+738+738+738+728u328u328u328u328u328u328u328u338+738u738vD38vD38u/28fD28fD2 + 8fD28fD28fD28fD38vH59PP48/L28fD07+718fD49PP8+Pf59fX28/P29PT18/Lz8vL08fHy8PDz8fHz + 8PDz8PDz8fHz8PDy8PDz8fHz8fH08fH08vH08vL18/P39fX49vb59/f6+Pj7+fn6+Pj6+Pj49vb29PT3 + 9fX39fX39fX39fX29PT39fX39PT69fb69fb38fL27/D38fP8+Pn++fr69PT17/D07/D28PD28PD28PD1 + 8PD18PD07+/07+/18O/18O/18O/18O/18O/18O/28fD28fD28fD28fD28fD18O/18O/18O/18O/18O/1 + 8O/18O/18O/28fD28fD28fD28fD28fD18O/18O/18O/18O/18O/18O/18O/18O/28fD28fD28fAAAPbx + 8Pbx8Pbx8PXw7/Xw7/Xw7/Xw7/Xw7vXw7fXw7PXx7Pby7fby7fby7fby7fby7fXx7PXx7PXx7PXx7PXx + 7PXx7PXx7PXx7Pby7fbx7fbx7/bx8Pbx8PXw7/Xw7/Xw7/Xw7/Xw7/Xw7/bx8Pbx8Pbx8PXw7/Tv7vXw + 7/fy8fr19PXy8vLw8PPx8fPx8fPx8fPx8fPx8fPx8fPx8fLw8PPx8fPx8fLw8PPx8fPx8fPx8fTy8vTy + 8vTy8vXz8/b09Pf19fj29vn39/n39/n39/j29vj29vf19fb09Pb09PXz8/Ty8vTy8vPx8fjz9Pnz9Pfx + 8vXv8Pbw8fr19vv3+Pjz9PTu7/Tu7/Xv8PXv8PXv8PXv8PXv8PTu7/Tu7/Tu7vTv7vTv7vTv7vTv7vTv + 7vXw7/Xw7/Xw7/Xw7/Xw7/Tv7vTv7vTv7vTv7vTv7vTv7vTv7vTv7vXw7/Xw7/Xw7/Xw7/Xw7/Tv7vTv + 7vTv7vTv7vTv7vTv7vTv7vTv7vXw7/Xw7/Xw7wAA+PTz+PTz+PTz9/Py9/Py9/Py9/Py9/Py9/Px9/Tw + 9/Tw+PXx+PXx+PXx+PXx+PXx9/Tw9/Tw9/Tw9/Tw9/Tw9/Tw9/Tw9/Tw+PXx+PXx+PTz+PTz+PTz9/Py + 9/Py9/Py9/Py9/Py9/Py9/Py9/Lx9/Lx9/Lx+PPy+fX0+fX0+vX09fPz8/Ly9PLy9PLy9fPz9fPz9vT0 + 9/X19/X19vT09vT09vT09vT09/X19/X19/X1+Pb2+Pb2+Pb29/X1+Pb2+Pb2+ff3+vj4+/n5/Pr6/Pr6 + +/n5+vj4+ff39/X19vT09fPz9fPz9PLy+fT1+/b3+vX2+PP0+PLz+vb3/Pj5+vX29/Lz9/Hy+PLz+PLz + +PLz+PLz+PLz9/Hy9/Hy9/Hx9/Lx9/Lx9/Lx9/Lx9/Lx+PPy+PPy+PPy+PPy+PPy9/Lx9/Lx9/Lx9/Lx + 9/Lx9/Lx9/Lx9/Lx+PPy+PPy+PPy+PPy+PPy9/Lx9/Lx9/Lx9/Lx9/Lx9/Lx9/Lx9/Lx+PPy+PPy+PPy + AAD59fT59fT59fT49PP49PP49PP49PP49PP49PL49fH49fH59vL59vL59vL59vL59vL49fH49fH49fH4 + 9fH49fH49fH49fH49fH59vL59vL59fT59fT59fT49PP49PP49PP49PP49PP49PP38/L18vH18vH38/L5 + 9fT69vX59vX48/L28/P29PT18/P18/P18/P18/P08vL18/P18/P49vb49vb39fX49vb49vb49vb59/f5 + 9/f59/f59/f39fX49vb39fX39fX5+Pj8+fn8+/v7+fn59/f59/f49vb39fX39fX29PT29PT19PT38vP6 + 9fb79vf48/T28vP69fb8+Pn69vf48/T28vP38vT38vT38vT38vT38vT28vP28vP28vL28vL28/L28/L2 + 8/L28/L38/P38/P38/P38/P38/P28/L28/L28/L28/L28/L28/L28/L28/L38/P38/P38/P38/P38/P2 + 8/L28/L28/L28/L28/L28/L28/L28/L38/P38/P38/MAAP////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////wAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////AAD///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////8AAP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////wAA//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////AAD///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////8AAP////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////wAA//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////AAD///////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////28u2gk4pLNSpDLCSllZb89vj///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////8AAP////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////r376CKfT4bDj0aDpaFhP/8/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////wAA//////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////+vfspYh6RhoLRRgMl4KD//z+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////AAD///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////89+uriXlPGwlPHA6fiYf/+fv/+/3+/Pz7+/r5/Pv7//76//77///9///7+/v7+/v8 + /Pz8/Pz8/Pz8/Pz8/Pz7+/v+/f38+vr6+fj+/f37+/v+/v7+/f38/Pz8/Pz8/Pz8/Pz7+/v7+/v7+/v7 + +/v7+/v7+/v7+/v7+/v8/Pz8/Pz8/Pz8/Pz8/Pz7+/v+///+/v/+/v/+/v/7+/v7+/v+/v7+/v7+/v7+ + /v79/f79/f79/f79/f7+/v7+/v7+/v7+/v77+/v7+/v+/v/9/v/9/v/+///8/Pz7+/v+/v/+/v/+/v/+ + /v/7+/v///////////////////////////////////////////////////////////////////8AAP// + //////////////////////////////////////////////////////7//P79+v///P//+//79e7i29nM + wcq6rbqpmrKhkriil8avptLAu+PT0frz8f/8+//+/f3//ff//vL9/Pn9+/z48K2Jek4dBVEgCKKJe/Lr + 4tTGv7ylnbKekrSklsa6ruDWzfn07////v/+/v3+/v39/f39/f///v///O3m4tDGwbyqo7egl7qhmMay + qdPJwe7q4//++v/+//z9//79/+3q6c7Evs7Ev+HZ1v78/f38//39//7+///9//76+9bNytHFvdPIwvXz + 8Pj6/9vh98bJ9czP+ubr/fn9//z++/r9+/38/f/9//z9/vX5/9HW8Nbc9vT5//v9/f/9//78/vv9/f39 + /fj7/9nj+MTO+cPM897j9vn6//X5/9ri+MfO98nM9uHf9vv6//////////////////////////////// + /////////////////////////////////////wAA//////////////////////////////////////// + /////////////////v71/v30//z05tfOrpWJelNCZTolVS0SRSMHQx8FSB0GVSERZS4ic0Q7j3BozLqw + /ffs/v/19//48f/++P7++/b1qYZ4SiEETCIDimhNkHBeVi8hRh8NRB4GSSIHTyYPbkc2pYl+8+fj+vr4 + 9fn3+/37+/n3//v2z8C4el5SVjQmRh0OShsJSxoJUycUVjYkfmlWyryy+vDx/Pr//fn9vq6rUS0fVjIj + lHhw+/P1/fv//P3//fz//vv/9+3vc1VNWS4fZT4w3c/G7/T/mabjUFbWV1vfqbbu8Pf//P74+P77/Pv9 + +/f79/v/0Nn8aHLMe4Tb2+T/9Pn8//3//f3++v7+/Pz86/D/iZziRFfcTFvQpa/j7/T/5O3/jZ7kSVjU + T1TTnZfb9fL///////////////////////////////////////////////////////////////////// + AAD////////////////////////////////////////////////////3++///fD7+eu+pJdnRDlFHxFD + HAs/GglGJQ5YOR9dPyddPSlTLR1GGAxNGQ9GFw1YMyecfnHp2879/vX2//z5/Pz69fWnhnpHIARJIgFP + Jg5BHg1SNCRwVUR0WEJVMxpHHQZNHgZFGQ6ghHv6+PD5/vb39u/7+fDFsaJfNydJHAdKHwpaMx55UkCA + V0VuQzFMHwtFGgdcNyW2nJP++fv/9/bCp51JGQVEEgKMZlz69vX//f/8/P/7+f/9+/716+hoRTZHFQBV + KRPax7n1+/+ntOg9Q9ApK8x+ieDk7f/8/v36/f38/P329fns8f+TmesyNsw2Os+iqfbr8f/7+v3+//78 + ///7/v/U2/5aZ9waKM8+S9C4w/D0+P/k7P98ieEiLMomJsWMhdX28f////////////////////////// + //////////////////////////////////////////8AAP////////////////////////////////// + //////////////3/+f7+8vfx46iLd0UbDkQaDkwlGXdZTLmll+HQv/zv3v/77P/26ere1Mu2rZp1blgt + J0caD0MXCmxLPeHazv399/z6+/v09quGfUofCUccAUUhEZd/ce/i1/7/9f397//z4qCEbk0jDU0cCEok + FL+wov3/9f378cm1qFw0I0kYA2MzH7mZgvTs2v/67f798v/67sWqmV86JkYhFotuYfLo4//9+LefkEka + A08fB5BtXfr38/v//vj+//z+//7+/vTt5WpHMkwaAVgtEtrLt/n9/crU+1NV2ign1VVa3M3U/Pn+/v3+ + //r9/PX4/re69UtN1iMk3CMk3FFT27/D+vT4//v+/fr9//L4/rW99DxB2yEn3lhi4NTd//X4/+fr/3uC + 5CUn2Soj1Yh91vbw//////////////////////////////////////////////////////////////// + /////wAA///////////////////////////////////////////////////5+/ftuJ6MWzAZRBYHVCof + p4qB7+Xd///2//71///2//73//75+/36/fz3+O3o0sG5bEc6RRgJQRgHdl5O6OPZ//z6/PP0roaATR4M + SBoEeFpP6d/Y+fv2+P36+/36/fv16uLSa0g0Tx8IRhoIm4l3/P3y+PToeV1ORB0MSBkFr4t4//jn/fzv + +/72+fz0/v/2+vfrybmnwrGf6uDT///6//33uaiYQxoESx8Ih2pY+fbt+P/89v/9+f79+f358u/laEcw + TR0BVS0Q2su2+/375u7/cXLjLCjcNjbYr7Py9fn/+Pv99fv+1t3+Z2bgJyfLNDftMjXtKynOdHHn4Of+ + 9/3/+f7/6vX/lJvtKynYJijbe4Pq6PD/+vv/6uv/fYHkJiTcKR/ahHjX9e////////////////////// + ////////////////////////////////////////////////AAD///////////////////////////// + /////////////////////vni1MpwTjpCFwROJBWxmo738uv//Pj///3///3//v3//v3+/v34/v76/v3/ + +vj//ffWx7ttSTlCGQRLKxiunZD79vH89PGsh4BLHQtLHQiliYP++Pf9/Pz6/P749/79+vz18emUdWJR + IAhUHwqEZ1f18efz5tFJKAxEGwVSJxHowq7449Hx39Dt38/x3s/24NH449L54s733cz14Nj79vX//vu5 + p5w9EQFGGAaMa1369vD5//74//79//z8/vvz8ehnRy9LGwBSKhHZzb38/vvx9vyenfYyLtgsKNyDg+nq + 7v72/P7r9v+RmOkzLdYvLtZzevRrc/MsKtI4Mdqco/Do8//0/P/X5P1mbOMoJNk0NtSstfzx+P76+fvs + 6/+EieMrKtkuJduGfNr28P////////////////////////////////////////////////////////// + //////////8AAP////////////////////////////////////////////////769bmck0IcCUEYAX5h + TvTq3v/8+Pv8/Pr7/P/9///7/v/7/Pz8/vr+//v+//78//n4+P/89MOsmlQpFUQZBHdaSvDn3fv276WH + fUQbBkwfCLCWjv/6+P/8/P/8///7///7//by7JV6aUsaBE4XBJBuYv337dzHrkwoB0kgBEIVAVEpFEQh + D0IhDUUhDU0kDkwgCk0hCU4jDE4kEUYlGrqurv/9+7WflVAeC0oXBolkWvr28/v+/vv///7//vz9+vLu + 5WdGLE8fAVIqE9jFvf78+/n8/c/S/0BA0yUj3VhZ2tvh++rz/7K990JI0ikh3lhX48jS+b7H80tK1iki + 30RJ0bfC+efy/8DO+kBE1ism2VFX09/q//j8/v79/+3r/4GH3iYozC0m1YV81/Xv//////////////// + /////////////////////////////////////////////////////wAA//////////////////////// + ////////////////////////+/fylnZuQRkIQRgDmYRz///0/v/8+Pv9/Pz///3///7//Pz8/v///v// + //z//vf++Pb7//75382+aDsoTxwGZ0Ew3dLG+/jvo4p8QBwESB4Fjm9i+fDo//35//39/vr9//v87Ojh + clhFSh0GSRcHlXpv/vv138y4SSUJSh4GSBgEWiwaUiwZVDIdUS0ZVi4YXC8XYTMYTR8DTB8FRyMS0cG8 + //z2vqSYThsGSxkHfllP+fT0/Pz8/P7+//z9/vz67ubaaEQmUSACTiYW2MXD//39+/775e3/Z2/nHiLX + NTnQuMH5ytX6ZGzeKCrWODXel5jz6u//6O7/lJXyMjDaKCzWanLiyNP7kZ74Ky3RLinUfYTn7Pf/+/79 + //3+7ev/gojeKizNLSrRhX7U9fH///////////////////////////////////////////////////// + ////////////////AAD////////////////////////////////////////////////69/KIaWFBFwZK + Hwijj3/+/vT9/vn7/f76+fv//v/7+/v8//77//7+//7//P/+9f/8+v77+vXj1MZwPyxTGgVkOCfYyr76 + 9+6liXpIIAhOHwRfNyPOv6////D/+/T//vn//vfEtqdIKhRMHwhSJRSwnI/+/fby7OFZNyhIGwxJFgWo + gG/b0cDb08Ha0sTb0sLd07/Gp4xhOx0+GAFcPyz47+n/+fPEq55DFgJHGQVfOy716OP+/Pj+/Pf//fb/ + //bNvq1WLRZRIAJRKx/bzMz//P78/vzt9/+KmfMgKtIjK9KEjPqTm+wxNNQnKNteZdrS1v749/36+v/Q + 1P5bYtgeH9IwMtGMle1rdPkjI9I0LtKqsPXx+v/+/vv//f3q6/+AhuEpKtItKdOFf9L18v////////// + //////////////////////////////////////////////////////////8AAP////////////////// + //////////////////////////////v69JuAdkMZCEQUAZB1Yvv36vv79fz8+v///v///v3//vv//vv/ + /v7//v/9//76/v77/f368866q1sqHE0XA3lPP+nZ0Pv276SEeUcZBlEdA0ocBVYzH6+XhdfOw9jLvqeO + f0gmEkIYBEQUB4RcTfHj2f/++fz69rWdmFcuI0QRAVcnE6aDcNnLvOHbzdrUyL6qmWZELjsTAlAvFbqp + mf/+/P/++rulmkUaA0whCD4ZCWxSScO0qt/Yy+PbzMa4pXNWQEwhBkkcA2xMQuff3v38/Pr8+/D6/rzL + +DlH2B8p2UdN+URG6yck1kRE3LvI/PP4//78//z3+/L3/7K+9UJB3Cgl1kpM7UBF9ykn2VVP39XZ/Pj8 + ///9/P79/ufq/32D5Sgn2C0o1YSA0/Xy//////////////////////////////////////////////// + /////////////////////wAA/////////////////////////////////////////////////v33xbCm + Vy8dTh0FYj0p18S1//3y+vfw//76///8///8/v/9/f/+/P///f3+/Pr7/fv39e3hnXtpUSAMTB0JkHVm + +vLp+/fypYZ+QhcHSxsGeE45aUQ0SCUZSCQZTCUaRx0MQxgDSh0Jd0s828K4//z3//z4//369e3mtJiN + aj8uTR4JQRcFTCsaXkEyVTYoQRoLRxkGbEEssJaC9/Lp//z+//r8t6CaQRkGQxkFbEc4b01EQyIaWjks + YEAuSSoZNhUCQhwBWzcktJyU+fTw+vr3+/v69fv91eD8WGPhICbVJSftJCTiLy7RiInu6fP99Pr9+/z9 + /f3/9fv+5vD+gYLsKynNJSXjJCboLCzVenfm4OT/+vv+/fn9/P7+5Oz/e4LmJibaLSbYhH7V9fH///// + ////////////////////////////////////////////////////////////////AAD///////////// + //////////////////////////////////////nu5NqGYk5RIgVEGQaCY0/k1MX//fP//vf///n///v/ + //3+/v/8/v/8/v7///r+9u2tk4RVKBhGFwJTMRrBtqj9//n69vXEsayHaFuHaFXCsaHi0simjIZ0UkxZ + NitdOih4WESwloXh08j9+vf9/vz6/v34/Pv+/fr69fDg0cerkIV2WU1dPjNVMShdOTJ0U0yjioDdzsP4 + 8+n5+/P4+v7/+/7UxcOGalqDZlW6oJXl2NSwlZJ4X1dMNypQOCxfQjOOb1vRu6307ur8/fT6/vT+/Pv8 + /f7m7P+CiOcsK9UcGOcgH+NRU9zN0fr19/33+/r4/vr4//n2+/n19/3EyPhMTtcgIOMcHOM1NtSipe/p + 8P/9/f3/+f/6/f/h7v95hOQlJ9gtJtmEfNj17/////////////////////////////////////////// + //////////////////////////8AAP/////////////////////////////////////////////////9 + +v/++NXGtW1JMEceB0IaB2lINtO9rO/n2fz36v/+8v//9v//+P379PTv5t/QwZ2CckkiEUQXCFAoFKCM + e/399Pz//Pz9/f38+/z79Pz78fz79Pz8+P37+vz39fr07fr57/v67/799P7/+/n///b+/vT8/Pf///j+ + /vn9/f7//f759fz69/r39vr08/r39Pv28P389vj9+vn9+Pz/+/f6/P79//76+vz79Pz78/38+f/3+P37 + /Pnz8Pn48vr38Pv48f379f/++fz8+fr+9fz/+f/9///+/vX3/7Gy7kRC2ygk5Dk83aOp9e3z//v8/fr9 + +fj++Pf++Pv/+vr6/evw/5Sa7zEz1icm4k1Q2snQ+/X9/vv9+vz5//f9/eHv/3uH4yUo1Csn2YB72PPw + /////////////////////////////////////////////////////////////////////wAA//////// + ///////////////////////////////////////////+///9//721sa4aUc5RRoMRhYGVygVfFVBpYZt + taeOuK2WtqyWqpeBimtXZzsmSBsGQhgIWDMkp4t++/jw///7///9/Pz8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////vz9+Pr/0df/V1nYLSvNdXne2OD/8vr//P/4/v/5/f7++/r8/P/3+v/38/v/09r/am/ZLi/ScXXj + 4+r/+v78+/78+fr/9/385O3/fobiJCXQJyjYenzX7/D///////////////////////////////////// + ////////////////////////////////AAD///////////////////////////////////////////// + ///9/f3///78/Pj++/PbzsSObmNWKx5HFwhGGwpEHQdGIw1FJQ9HJA5FHwtEGghCFQVAGAZxT0PEraP3 + 7eb/+PX//v7//v/8/Pz///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////Pz5+/zl7P97f+BCRcK9wvnt9P/4/v7+ + //f///r8/fz//f/7/vb7/vX4/v/q8f+vtfVER8eUluzy9v/9/v78/P76+f/4+P/p6/+Gh98wMMgwLs2C + gtbx8f////////////////////////////////////////////////////////////////////8AAP// + //////////////////////////////////////////////////7///z+/vr8+f78+Pr38ebTy6aKgHpb + T108L1AvIVEwIlEtH1kzJnBMQpR4b8uyrPfw6/379////P/+/f/+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////Pn8++74/6+59JOb5uzx//f7/vz++///9/3/+fv9+/3//vz++P7+9/3//Pj8/uft/4iP + 2sLF+fn5//79/v38/v37//z5/vLu/6qq529x0HBy1aqr4/X1//////////////////////////////// + /////////////////////////////////////wAA//////////////////////////////////////// + ////////////////+/7+9Pn6+Pr7/v79/vz5//34//n08eTb08W8yLmxzr205tTO/vHu//n6//3+//7+ + /fz+/Pv+/f7///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////f/88/z/2+b/3Of/+fz+/v38 + ///7/v74/f75+//7+//9/v/7///6//76/fz6+v3+3OX86/L//Pv9//76/v/6/f/7/v36/Pv98fX/6fT/ + 5/P/6/H/+fv///////////////////////////////////////////////////////////////////// + AAD////////////////////////////////////////////////////////////6+/36+/36/P77/f37 + /v37/Pv///z//vr///v//vr//fr+/v3//f///f/5+f36/f/5/f70+Pr///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////8AAP////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////+//+//3//vv//vv///z7//77/vv89fb75u324eTt6OHm5+Di4+Lh4eLj4ebl4uzq + 5PHv6vX07/f48/j7+Pn9+/r+/vr///z//////v////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////wAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////vz6+/j/+fz/9/7/7/T93Nr1 + 4N365un44+rh0tfGzcvMycXKxsTGx8PEyMTCy8bBzsjC1M3H3NXQ5ODb6ujm8fHw9/j4+fz8/f7/+/v7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////AAD///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////++/z7+P/6/P33/f/o6/2Xltl4dNOlp/DEyOi9vby9sKm+rKS7qaG4pZ25pZu9 + qJ3EsKTHtavKu7LPxL/Wz83g293p5+rx8PT9+vz//v/+/v7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////8AAP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/v75/P/8//39+vf6++7v + /4uI4zYxxkFC0nd42IB5nXBZUnNSPHFLMHNMMHdQNH9YPIlkSpVyW6WIdrafkL6spcW4ttTLzOPa2+/o + 6Pv2+P79/v///v///P////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////wAA//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////Pz8//7///3///z+/Pz2/fz97On8kIvoMy3VJCHhMS3MMyiCOyI0Vy4WaTQFbTYD + cDkFczwJdT8PckESc0Ybflgzk3NUrJB4xK2az76y3dLN7+jq9fX3+vz9/v/+///8//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////AAD///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////8/Pz///7///3++/v9+/3//v3h + 3eK0r8SpqOVNTdkhIeIpIuM8K7xNMXRaMCl0PAR7QQCARAKERwKISgKHSwWJTgmFUA6AUBOLXSaqgE65 + nHvEtarY0dHj4+ju8fT6/fz9//v+//7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////8AAP////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////z8/P///v/9+/79/Pn5+s/Q1YaEibWxueTn94eN6ics0iId5C8h3Us0s1gyWW85 + FX5CAolJAJBNAJNQAJZSAZpXAp1cA5pbA5ZaBZZfDphuMayRcMO0o9PNyOLl5Pb4+Pv9/fz8/Pz//P// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////wAA//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////7+//3//vv9/v3+7vLxrbWx + anBxo6aq7vHz9Pv/0dv8X2jfKSraIx3rLSLcUTWmZjVOfT8MmlMBn1UAl1EDnVgEoVwAqGAAqGIBpGME + oGUDmmQImmsfsI9WyLmW1NHA6+rm+Pb5//z//v79/v/9//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////AAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////7/f3//v/+/P3+/P78+PuzsrBrbWeKionw8fL7+/r0+ffo8P+rsPVCPtImG+EqGupB + K8dbPIB3RS+PUAmhWwGfXAedXAOgYQCqaQCoaAKlaQaibgikcw2cbA2ScSGrmmLFv57g3dDz8O7+/P3/ + /v7///7///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////8AAP////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////r///r+//v8/f78/v36/M3HynRt + bX15ddza2P36+f39+Pv89vb7/+Di/4+J7zgq1DIh6Dkuz05DmmZJS3hLGpBXDZZbE5RfD5pnDahwDKVt + B6JuCZ1yC6J7EaJ7FZZ5HI9+NaigbtHOsOnn3fv59//+/v///v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////wAA//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////+/3/+/7++/7++Pr7/f3+29rbfHp6cXBuvb668/Xz+/7/+Pz+9vz79fz/7fP/3d//dnXm + LSzDOD65SlOVWlZcaFQ8d1c0fVc9flg6gl0vnW8oo3EYqXkUon0QpoYaqYoiqI4plYMrmo1IurOF4N3J + 8vDr/fz8///+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////AAD///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////+/f/+/v/+/f79/P3+/fz9/f308vKuqaht + a2iTk4zk5t39/vf5/fr6/v38/v78/f/5+/3y9v7Gzvt9iN6DjtSJlLqOl5qYmIyhmIqjk5GHdW5uWD2W + cTSneCS2hiWphyCqkCunjyupkSyrljeikkKpn2jTzbPq5t/8+fr//f7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////8AAP// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+///+///+///+///6+//9/v/+/f/9++fe246EgHBmX8e/tvv47/757P3+8f7+9f779v/9+P778v39 + 9/L3+ePu/+jw/+3z++r29ez38fH39PL09KyrpWlfRJd5O6uCK7yQMKeLLaaTOKyaOrGdOLWhPa2cRKaa + W8K7muTe1Pr39//9//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////wAA//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/f38/fr5///9//36+/f08ezn5t7Z3MzGpJGL + aVROclROmHRum3dujnBchW9Ph3FPj3JYlXFcoHlipINoqpV+4NjP//79/f7/+P/9+P/8+//9+/77urio + bGM9m4M6spM0tZcyqZs/pJxCrKJCtKc/uKk/tKRFq6BWq6Z619TA8u7r//z+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + AAD///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+//v7+vb69/T38+7e08+4qKScioSCb2l7ZmBdSEFROTJsSkJ4UEptREFmQjRaPiJUORZSMBJMJAxJ + HgZJIghGKRS2qJn///j//vv8/fv+/v3//f/++vu5saloXT+VfkCvkz+5oEOxpUynokisqEi0rUaxpj+1 + qUirpVWko27Pz7Hv7OL+/P3///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////8AAP////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////v89f//+eHb1aqfmYd5c4l5c5iIgbKfmsGt + qINwam9cVMiwpeDLxt3JzN3Ny9nFt9O7pcerl7qciZh2Z4BjUmpSRr+xqf/8+f/9/f/8/f/8///6///4 + /7Gmp0g5J1xEFnNXF45yKKuXS7KnV6qnT7KuUq+pTLOtVLCsXqSmbMXHouvq2f78+/////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////wAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////529nSjIV+l4yHy8G9+Ozp/PXx/vv48e7rjIF+f3Zx6+nf+Pfx7+vu8Ovy8e3x8e7u8ezp + 8O7r7u7q9/fz+PTx+vf3/vz///n///r///r//vr/+/b+raekPTAdPyUDRiMASyIBYzcRfWAxmo9Soppb + oZpcoZ1doZ9hqKlzv8Ca6erV/f35//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////AAD///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////vi0r6mgmJPv6ub/+vb///v//v3/ + /vzt6up1dHOGhoTt7enb3tm6vsDGxs3Lx8/Kw8rQyczKxsa7vbvo7On6/fz+/v39/P7++////P/8+v/1 + 9//0+P+8uLNaSi9IKQVHHwBLHwBPHQBEHgNvWzmOgWKXjm+dlnKAfFKgn3LAwZzs7dj+/fn///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////8AAP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////9+LGrp7Cppf/++//8+P///P/+/f/+/uvt7W1xco2Rke/w7tHT0MbKye7v8fPw9PLt + 8fb09evq57vAuubr5/z//P39+f7/+/z/+/r8++nv+dXf+c3X+7i5xpGFbZN2Rm9NHFUvBU4jAEcmDq+h + keng2+vm4ubg04yHbKOjfsLCoe/w3P7++/////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////wAA//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////z66ePdo5mR0crA+Pbu//74 + ///8///+7Ozsc3R0kpOT8PDw19fXzMzP+/n8//3///3+//3+9vXwysvG4+bj8PDwvby+u7u4uby2sLW4 + maC7YGuwMT68UF60gIqSpJxgtqdcrZtZkHw7cV81yL6x//r8//z+9vPtiotyp6uHxsqq8fLh//38//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////AAD///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////Pv//vrd1866sqfHwbfx7uf8/Pj///3t7euDgH6LiYbs7enP0c/Ly8z7+vz+ + /f/9/P79/fz09PHCwb3p6efk4+OmpajKycjLzcrJz9G9xd6Fj9otO9I5TMFuf5+gommwq1izq164r2S1 + r3nj4sn//vT//Pb4+Oman36gp3/L0LD09ef//f7///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////8AAP////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////8/f/++v389u3p4dHL + w8PBu9ra1/X39fLy8JGMh4d/eOzr5NXX0MnMyfP29vr9/vj8/fr7/PDx7sfGwuzs6t3c3L++v/v6+/r8 + +/n9/fD3/8LK/EZV2zNFvGBzppyidqysWrGuXLSuZLa2eNDWqN/jwOPmyOHmw7C5jq23itTbuvn57P/9 + /v////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////wAA//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////vz8/P/8+Pv1/v/5/Pv49PLx3t7d4OTg9PTvtKmgemle0sa4vrWpy8fA + /fz6+/7++/7+/v7/8fDvycbD7evo4uHfv8C/9vj49vr5+P769vv95ev/coHqO0/DU2azj5uDp61ht7dg + tLZpr7dyrLh4rbl9rLiAq7iCqraBt8GT4+nK/P3x//3///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////AAD///////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////8 + //3//f3+/P38+/z2+fb9/Pa+sqZEKxxCJRVBKBiZiH759vL7+Pj8+fv/+/738vPMxsXr6efl4+C7vrv1 + +vn7///7//z8/f32+P+mtPZNYc5BV7eBkpKirGuvtVystmeruXGrvHOuvniyw3+ywoOvvYPAyp7x9tv9 + /vL//v7///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////8AAP////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////9/v77/fz9/vn9/P7/+Ma8r0sqG0QaCEQe + DIdpX82+u8rAwse/w8i/w8e9vrmur8O8uru4tLa6t/T6+Pn//fn9+P78+/z6/sva+WV62TtSvHWKnp6s + eq22YKq5aKe5cK3Ad63Ad62/ebTEg7PBi9Lbtfn85/z98/79+v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////wAA//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////+/z99fr5/v74xryxRycZSB0LRRwLkXFo38zI3tLU08vP08nN2M7QvLGx0MfG0tDM + 3+Pf9/z5+v/9/f79//7+/vz+4u7+iqHsQVzEZn+mlaWHqLNmq7xqp7xwrsF5sMR8scKBsMCGvcmb6vHV + /v/z/v/5///8//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////AAD///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////5+/35/v3+/vrazsWQdWlx + UD9aPi29q6D89vP89/j8+Pv++/728PHPxsbt5+T9/Pj6/fn5/vr4/fn9/Pz9+vz49Pbt9v2ovfFXc85f + eq2Mn5Kmsm+svmyswXGsvnewwYCzw4mzv5HU3bz8/+7///j///z///7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////8AAP// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////r+/vf9/fn7+f358/rw6OHRw5CEdsS+t/r49ff5+fn7/P39/vHv7r+8uMjE + wNHPzcrMycXKxcXJxMzJydHJzs3FyfT4+sna+3KO1ll1roWZm6axeqy9bq3Cca3AerDAhK+7i8PMqfD0 + 3///9////f/+///+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////wAA//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////+P39+v//+v39/v77 + //z3/fvzw8O6kJGN4eTk+f39+f3+/P3++vr44uHd3NrY3tzb3+Dg39/f3t/d4t3d3dfawbq/+vj92uf9 + i6fZV3OrfZKdpLCArLlwrb5vrL95qbmCucOe5OrT/P3z/P36/////v7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + AAD///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////5/v75/v/3/Pz6/v3+/v77/Pr7/PvP0NC2trry8fP9/v7+/fz+/vr/ + //z///3//v7+/f///f///////vr28/LCu8L78/3l7v2mwN9cea11i5qfq4OstnKtunCsvXu2xZTh5839 + /vT7+/r///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////8AAP////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////n9/vj9 + //r///r9/vv9/f38/vr4+urn6ufi5v77/P78/P79+f//+//+/f38/P/9/v/9///9/v789/n288G5v/70 + //L2/73U6GWCsnCHmJmngqyzdqy3dbfGjeDrxfn87f7++/79/vz7/P////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////wAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////P///P7+/f///f7//f7//////Pv7/v79/v76 + /v35/v35/v76/v77//79/v7/+/z//f369vDr0cLA9ubn9vj60eHxcYu5aoaYi6GBoq17yM2k6O7V+v3w + ///7/v7+/v3//f3+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////AAD///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////9//78//78//79//79//7///3///z+/vv+/vv6+fbw7er08/H7+fn//Pvl4NuVhX1z + V02NbmTMwL3o8P+Cks5vhamhtq3a4Mj6+ur6+vf+/v7////9/f3+/v7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////8AAP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////7//v3//v3//v7//v7//v// + /v7//f39/P38/PTy89XT1MfFxczExM7DwbmpolU4Lz8WCkchEaqYlO/y/4+a44mX0dLe6/z7+f/9+v// + //7+/v39/f7+/v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////wAA//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////+///+///+/////////fz++fn7+vn98vP27eru6uLl6dnbzba0 + XDcxQhQIQxwMqZiP7/T+mKTslqXi3en6/f7+//36/////f39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////AAD///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////8+/3+/v/9/f/7+/75+P38+v/++f3//P7s5eWfh4KKbWKRe2fLxb3h7v+Mnd+fsujh8f75/v/+ + //z+/f39/f3///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////8AAP////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////78//z7//P0/Orr9fLz/Pr5+/z9 + /Pn7+v77+f/7+f/89/T6/cvf/oWc2LHG7+j4//T5/P3+/f7+/v7+/v////7+/v////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////wAA//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////fz/+vr+7O3329vm5ufy8/n/7/v+8vv/8fb/8vf+4+//rMDtk6nfzN/87vn/ + +Pz9/v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////AAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////8/f/4+P7r7PbR + 0ePDyOHI2vHT5vjU5vjH1fasu+yYqN7D1PPv+/76//r///n///v///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////8AAP////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////39//39//38//Lw/N3g9bzO6azB5Ke65Ka14K6658bQ9ez1/vn+ + 9/7+7f//8v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////wAA//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////3//v3/ + //7/+vn99Pr+5Pf92/D52uv53+z55ez87vL/+f3+/v71/v7y//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////AAD///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////8AAP// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////wAA//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + AAD///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////8AAP////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////wAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////AAD///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////8AAP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////wAA//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////AAD///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////8AAA== + + + + Oatc Configuration Editor + +Copyright (c) 2005,2006,2007, OpenMI Association +All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +Neither the name of the OpenMI Association nor the +names of its contributors may be used to endorse or promote products +derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/AboutThisFolder.txt b/Source/Plugins/Plugins.HydroModeler/AboutThisFolder.txt new file mode 100644 index 00000000..916bf4c2 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/AboutThisFolder.txt @@ -0,0 +1 @@ +This folder contains the development files for HydroModeler \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/AssemblyInfo.cs new file mode 100644 index 00000000..5e5d4682 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/AssemblyInfo.cs @@ -0,0 +1,38 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using MapWindow.Plugins; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroModeler")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("HydroModeler")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("0100a37a-2c31-4bca-861d-6eb3bbc85a9d")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: MapWindowPluginAssembly] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/AboutThisFolder.txt b/Source/Plugins/Plugins.HydroModeler/Components/AboutThisFolder.txt new file mode 100644 index 00000000..154daaf9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/AboutThisFolder.txt @@ -0,0 +1 @@ +This folder contains the development files for HydroModeler components \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Data/inputs.csv b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Data/inputs.csv new file mode 100644 index 00000000..e08df65b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Data/inputs.csv @@ -0,0 +1,7 @@ +u,2,,,,,,,, +D,0.025,,,,,,,, +rows_W,1,,,,,,,, +columns_W,10,,,,,,,, +rows_S,9,,,,,,,, +columns_S,10,,,,,,,, +1,1,1,0,0,0,0,0,0,0 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Model/Water_adv.omi b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Model/Water_adv.omi new file mode 100644 index 00000000..a268e197 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Model/Water_adv.omi @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Model/config.xml b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Model/config.xml new file mode 100644 index 00000000..19bc8230 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Model/config.xml @@ -0,0 +1,62 @@ + + + + + + Region1 + numerical-analysis, Columbia SC + + + ConcentrationBC1 + C + + + ppm + 1 + + + + ppm + ppm + 1 + 0 + + scalar + + + + + Region1 + Smith Branch Watershed, Columbia SC + 1 + .\StreamNet.shp + + + ConcentrationBC2 + Excess Rainfall + + + 1 + Length + + + + in + inches + 1 + 0 + + Scalar + + + + + 08/20/2009 00:00:00 AM + 08/20/2009 00:20:00 AM + 1 + + + Water Component + ghg + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Model/output/waterAdvection.csv b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Model/output/waterAdvection.csv new file mode 100644 index 00000000..a27854c3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Model/output/waterAdvection.csv @@ -0,0 +1,1205 @@ +This is some info about the model.... +StartDate: , 20/8/2009 00:00:00 +EndDate: , 20/8/2009 00:20:00 + +Time [H:mm:ss], Concentration +00:00:00,1,1,1,0.85533,0.7315894089,0.625750369114437,0.535223063214651,0.457792342659388,0.391563524446854,0.334916029365128, +00:00:01,1,1,1,0.975159651293035,0.936577200180943,0.88874868038893,0.835156857324534,0.778470307804396,0.72070610515983,0.663362473519895, +00:00:02,1,1,1,0.99194749379711,0.979654636167974,0.962439527034505,0.940206843760133,0.913248915151336,0.882098365870712,0.847420663325014, +00:00:03,1,1,1,0.994299429673585,0.987701361420876,0.979646040810918,0.969641338616892,0.957307276501542,0.942393467012586,0.924778976614532, +00:00:04,1,1,1,0.994628930165724,0.989110519700584,0.983261926865066,0.976857815527179,0.969652214892894,0.961399660090281,0.951873255156441, +00:00:05,1,1,1,0.994675092382733,0.989347423275028,0.983971134435217,0.978475432889786,0.9727653073751,0.966725102875892,0.960224108615772, +00:00:06,1,1,1,0.994681559596986,0.989386144491598,0.98410361210789,0.978815369273088,0.973492201841925,0.968092919093373,0.962563977106368, +00:00:07,1,1,1,0.994682465637963,0.989392344203828,0.984127474707269,0.978883403930176,0.973652230070855,0.968421423761494,0.963172766884899, +00:00:08,1,1,1,0.994682592572099,0.989393321338997,0.984131653572389,0.978896509728754,0.973685859418948,0.968496210656285,0.963322024325917, +00:00:09,1,1,1,0.994682610355262,0.989393473443729,0.984132369120962,0.9788989578494,0.9736926647598,0.96851250893042,0.963356875332956, +00:00:10,1,1,1,0.99468261284664,0.989393496884182,0.984132489416899,0.978899403717867,0.973693999536166,0.968515933953229,0.96336468739898, +00:00:11,1,1,1,0.994682613195676,0.989393500466673,0.984132509334279,0.978899483218887,0.973694254534694,0.968516631898479,0.963366378823929, +00:00:12,1,1,1,0.994682613244575,0.989393501010397,0.984132512589718,0.978899497141261,0.973694302167592,0.968516770420757,0.963366734270706, +00:00:13,1,1,1,0.994682613251426,0.98939350109243,0.984132513115963,0.978899499541865,0.973694310894153,0.96851679729148,0.963366807051271, +00:00:14,1,1,1,0.994682613252385,0.989393501104744,0.984132513200221,0.978899499950252,0.973694312466029,0.968516802400476,0.963366821617528, +00:00:15,1,1,1,0.99468261325252,0.989393501106584,0.984132513213599,0.978899500018909,0.973694312744969,0.96851680335482,0.963366824474504, +00:00:16,1,1,1,0.994682613252539,0.989393501106858,0.984132513215708,0.978899500030331,0.973694312793818,0.968516803530303,0.963366825024855, +00:00:17,1,1,1,0.994682613252541,0.989393501106899,0.984132513216038,0.978899500032214,0.973694312802272,0.968516803562118,0.963366825129171, +00:00:18,1,1,1,0.994682613252542,0.989393501106905,0.984132513216089,0.978899500032521,0.973694312803719,0.968516803567813,0.963366825148657, +00:00:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216097,0.978899500032571,0.973694312803965,0.968516803568821,0.963366825152249, +00:00:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032579,0.973694312804006,0.968516803568998,0.963366825152903, +00:00:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804013,0.968516803569028,0.963366825153021, +00:00:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569034,0.963366825153042, +00:00:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:00:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:01:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:02:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:03:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:04:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:05:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:06:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:07:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:08:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:09:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:10:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:11:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:12:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:13:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:14:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:15:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:16:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:17:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:18:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:00,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:01,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:02,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:03,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:04,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:05,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:06,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:07,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:08,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:09,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:10,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:11,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:12,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:13,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:14,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:15,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:16,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:17,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:18,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:19,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:20,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:21,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:22,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:23,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:24,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:25,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:26,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:27,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:28,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:29,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:30,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:31,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:32,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:33,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:34,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:35,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:36,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:37,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:38,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:39,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:40,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:41,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:42,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:43,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:44,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:45,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:46,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:47,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:48,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:49,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:50,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:51,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:52,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:53,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:54,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:55,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:56,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:57,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:58,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, +00:19:59,1,1,1,0.994682613252542,0.989393501106906,0.984132513216099,0.978899500032581,0.973694312804014,0.968516803569035,0.963366825153046, diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..77fe82cd --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Water_adv")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("Water_adv")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("c29c9164-a750-46b0-aa4e-7fa3b7e3c188")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Source/LinkableComponent.cs b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Source/LinkableComponent.cs new file mode 100644 index 00000000..ea41f3fe --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Source/LinkableComponent.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Water_adv +{ + class LinkableComponent : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + protected override void SetEngineApiAccess() + { + _engineApiAccess = new Water_adv(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Source/Water_adv 1.cs b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Source/Water_adv 1.cs new file mode 100644 index 00000000..5c565cda --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Source/Water_adv 1.cs @@ -0,0 +1,278 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + +namespace Water_adv +{ + public class Water_adv : SMW.Wrapper + { + Dictionary _InputExchangeItems = new Dictionary(); + Dictionary outputValues = new Dictionary(); + string output_elementset; string output_quantity; + double[,] cw; double[,] cs; int rows_W; int cols_W; int rows_S; int cols_S; double _h; double _dt; + double u; double D; //double[,] adv_prev = null; + double[] diff_prev; double[,] adv_prev; double[,] initial; + // bool IsFirstTimeStep = true; //checks to see if it is the first timestep + string outputPath = System.IO.Directory.GetCurrentDirectory() + "/output"; + int nt = 1;// number of earliest outputs need to be saved + + public override void Finish() + { + if (!System.IO.Directory.Exists(outputPath)) + { + System.IO.Directory.CreateDirectory(outputPath); + } + + //System.IO.Directory.CreateDirectory("wateroutput"); + StreamWriter swa = new StreamWriter(outputPath + "/waterAdvection.csv"); + swa.WriteLine("This is some info about the model...."); + DateTime start = CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)this.GetTimeHorizon().Start).ModifiedJulianDay); + DateTime end = CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)this.GetTimeHorizon().End).ModifiedJulianDay); + swa.WriteLine("StartDate: , " + String.Format("{0:d/M/yyyy HH:mm:ss}", start)); + swa.WriteLine("EndDate: , " + String.Format("{0:d/M/yyyy HH:mm:ss}", end)); + swa.WriteLine(); + swa.WriteLine("Time [H:mm:ss], Concentration"); + foreach (KeyValuePair kvp in outputValues) + { + + string time = String.Format("{0:HH:mm:ss}", kvp.Key); + swa.Write(time + ","); + //StreamWriter sw = new StreamWriter("wateroutput/" + time + ".csv"); + for (int i = 0; i < kvp.Value.GetLength(0); i++) + { + for (int j = 0; j < kvp.Value.GetLength(1); j++) + { + swa.Write(kvp.Value[i, j].ToString() + ","); + } + swa.Write("\n"); + } + + } + swa.Close(); + } + public override void Initialize(System.Collections.Hashtable properties) + { + string configFile = null; string U = null; string d = null; string C = null; string inputfile= null; + + //set initial conditions through *.omi file. (optional) + if (properties.ContainsKey("ConfigFile")) + configFile = (string)properties["ConfigFile"]; + + if (properties.ContainsKey("Inputs")) + inputfile = (string)properties["Inputs"]; + + if(properties.ContainsKey("OutputDir")) + outputPath = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), (string)properties["OutputDir"]); + + + + //lookup model's configuration file to determine interface properties + SetVariablesFromConfigFile(configFile); + SetValuesTableFields(); + + + int num_inputs = this.GetInputExchangeItemCount(); + if (inputfile != null) + { + //read input Ux,Uy,and concentration matrix + StreamReader sr = new StreamReader(inputfile); + string line = sr.ReadLine(); + u = Convert.ToDouble(line.Split(',')[1]); + + line = sr.ReadLine(); + D = Convert.ToDouble(line.Split(',')[1]); + + line = sr.ReadLine(); + rows_W = Convert.ToInt32(line.Split(',')[1]); + + line = sr.ReadLine(); + cols_W = Convert.ToInt32(line.Split(',')[1]); + + line = sr.ReadLine(); + rows_S = Convert.ToInt32(line.Split(',')[1]); + + line = sr.ReadLine(); + cols_S = Convert.ToInt32(line.Split(',')[1]); + + cw = new double[rows_W, cols_W]; cs = new double[rows_S, cols_S]; + + //get input and output element sets from the SMW + ElementSet ein = (ElementSet)this.Inputs[0].ElementSet; + ElementSet eout = (ElementSet)this.Outputs[0].ElementSet; + + //set some element set properties + ein.ElementType = OpenMI.Standard.ElementType.XYPoint; + eout.ElementType = OpenMI.Standard.ElementType.XYPoint; + + //initialize cw to intial values (importating the data from the txt file(.models\water\inputs.csv)) + line = sr.ReadLine(); + int i = 0; + while (line != null) + { + string[] values = line.Split(','); + + for (int j = 0; j <= values.Length - 1; j++) + { + cw[i, j] = Convert.ToDouble(values[j]); + + //create element + Element e = new Element(); + Vertex v1 = new Vertex(j, i, 0); + e.AddVertex(v1); + + //add element to elementset + ein.AddElement(e); + eout.AddElement(e); + } + + i++; + line = sr.ReadLine(); + + } + + } + else + { + + } + + + //output exchange item attributes + int num_outputs = this.GetOutputExchangeItemCount(); + OutputExchangeItem output = this.GetOutputExchangeItem(num_outputs - 1); + output_elementset = output.ElementSet.ID; + output_quantity = output.Quantity.ID; + + //defining the equation constants + _dt = this.GetTimeStep(); + _h = u * _dt / 0.85533; + + //setup the intial value of adv_prev=cw since cw contain 1 row only + adv_prev = cw; + + //this sets the initial cond. + double[] outvals = new double[cw.GetLength(1)]; + for (int i = 0; i <= cw.GetLength(1) - 1; i++) + { + outvals[i] = cw[cw.GetLength(0) - 1, i]; + } + this.SetValues("Concentration", "water", new ScalarSet(outvals)); + + //setup initial value to be used once to bypass the first step due to openmi setting + initial = new double[rows_W, cols_W]; + for (int i = 0; i <= cw.GetLength(0) - 1; i++) + { + for (int j = 0; j <= cw.GetLength(1) - 1; j++) + { + initial[i, j] = cw[i, j]; + } + } + + //calling the intial value of diff_prev=upper row of cs from sediment component + diff_prev = new double[cs.GetUpperBound(1) + 1]; + for (int i = 0; i <= cs.GetLength(1) - 1; i++) + diff_prev[i] = cs[cs.GetUpperBound(0), i]; + } + public override bool PerformTimeStep() + { + //Define time step and get lowest row from the Sediment component grid(lowest row of matrix= actual top row) + TimeStamp WaterTime = (TimeStamp)this.GetCurrentTime(); + ScalarSet ss = (ScalarSet)this.GetValues("Concentration", "sed"); + //set diff_prev = the imported values + for (int i = 0; i <= cs.GetLength(1) - 1; i++) + { + diff_prev[i] = ss.data[i]; + } + + //specifies if values should be saved. + bool SaveValues = true; + TimeStamp t = (TimeStamp)this.GetCurrentTime(); + DateTime time = CalendarConverter.ModifiedJulian2Gregorian(t.ModifiedJulianDay); + + // calculate concentration in water using advection mechanismin water and diffusion from sediment + cw = Calculate_concentration(); + + //store these c values in adv_prev, for next timestep + adv_prev = cw; + + //save results for output during Finish() + double[,] z = new double[rows_W, cols_W]; + + if (SaveValues) + { + for (int i = 0; i <= cw.GetLength(0) - 1; i++) + { + for (int j = 0; j <= cw.GetLength(1) - 1; j++) + { + z[i, j] = adv_prev[i, j]; + } + } + outputValues.Add(time, z); + + } + + double[] outvals = new double[cw.GetLength(1)]; + for (int i = 0; i <= cw.GetLength(1) - 1; i++) + { + outvals[i] = cw[cw.GetLength(0) - 1, i]; + } + + this.SetValues("Concentration", "water", new ScalarSet(outvals)); + this.AdvanceTime(); + return true; + + } + + public double[,] Calculate_concentration() + { + + int r = cw.GetLength(0) - 1; + int m = cw.GetLength(1) - 1; + //calculate the row of water component linked with sediment component + int i = r; + for (int j = 3; j <= m; j++) + { + cw[i, j] = adv_prev[i, j] - (_dt * u / _h) * (adv_prev[i, j] - adv_prev[i, j - 1]) - (D * _dt / Math.Pow(_h, 2.0) * (adv_prev[i, j] - diff_prev[j])); + + } + //create left and right boundary(cols) + for (i = 0; i <= r; i++) + { + cw[i, 0] = cw[i, 1]; + + } + return cw; + } + // storing previous values for higher order polynomial interpolation + //public override OpenMI.Standard.ITimeStamp GetEarliestNeededTime() + //{ + // //get the current time + // TimeStamp time = (TimeStamp)this.GetCurrentTime(); + // DateTime curr_time = CalendarConverter.ModifiedJulian2Gregorian(time.ModifiedJulianDay); + + // //create a pseudo next time + // DateTime nextTime = curr_time.AddSeconds(this.GetTimeStep() * (nt - 1)); + + // //get the timestep as a timespan + // System.TimeSpan tspan = nextTime - curr_time; + + // //calculate earliest needed time + // DateTime earliest = curr_time.Subtract(tspan); + + // //return the desired time step + // if (CalendarConverter.Gregorian2ModifiedJulian(earliest) < this.GetTimeHorizon().Start.ModifiedJulianDay) + // return this.GetTimeHorizon().Start; + // else + // return new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(earliest)); + + //} + + + } +} + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Test/test.cs b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Test/test.cs new file mode 100644 index 00000000..86e92978 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Test/test.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using NUnit.Framework; +//using AdveicationDiffuision; +using System.Collections; +using SMW; + +namespace Test +{ + [TestFixture] + public class testclass + { + [Test] + public void testInitialize() + { + Water_adv.Water_adv model = new Water_adv.Water_adv(); + + //create new hashtable + Hashtable arguments = new Hashtable(); + arguments.Add("ConfigFile", "../../config.xml"); + arguments.Add("Concentration", "../../../Water_adv/inputs.csv"); + arguments.Add("Ux", "../../../Water_adv/inputs.csv"); + arguments.Add("Uy", "../../../Water_adv/inputs.csv"); + arguments.Add("L", "../../../Water_adv/inputs.csv"); + arguments.Add("d", "../../../Water_adv/inputs.csv"); + model.Initialize(arguments); + + } + [Test] + public void PTS_Changing_C_only() + { + Water_adv.Water_adv model = new Water_adv.Water_adv(); + + //create new hashtable + Hashtable arguments = new Hashtable(); + arguments.Add("ConfigFile", "../../../Water_adv/configuration.xml"); + arguments.Add("Concentration", "../../../Water_adv/inputs.csv"); + arguments.Add("Ux", "../../../Water_adv/inputs.csv"); + arguments.Add("Uy", "../../../Water_adv/inputs.csv"); + arguments.Add("L", "../../../Water_adv/inputs.csv"); + arguments.Add("d", "../../../Water_adv/inputs.csv"); + model.Initialize(arguments); + + + + + + { + //set values + // model.SetValues("C", "Test C", new double[1] { .5 }); + + //run ts + model.PerformTimeStep(); + + } + + model.Finish(); + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Water_adv.csproj b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Water_adv.csproj new file mode 100644 index 00000000..e12a058d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Water_adv.csproj @@ -0,0 +1,130 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242} + Library + Properties + Water_adv + Water_adv + v4.0 + 512 + + + + + 3.5 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\nunit.framework.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Spatial.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + False + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + True + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Water_adv.sln b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Water_adv.sln new file mode 100644 index 00000000..f21c897f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationAdvection/Water_adv.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Water_adv", "Water_adv.csproj", "{26A7DA2A-53EA-4CF9-8422-F883AD3CE242}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Sediment_Diff.sln b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Sediment_Diff.sln new file mode 100644 index 00000000..ce03e28b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Sediment_Diff.sln @@ -0,0 +1,29 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sediment_Diff", "Source\Sediment_Diff.csproj", "{A80DE9AE-F258-4336-8697-18CBD8B4B30F}" + ProjectSection(ProjectDependencies) = postProject + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242} = {26A7DA2A-53EA-4CF9-8422-F883AD3CE242} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Water_adv", "..\ConcentrationAdvection\Water_adv.csproj", "{26A7DA2A-53EA-4CF9-8422-F883AD3CE242}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A80DE9AE-F258-4336-8697-18CBD8B4B30F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A80DE9AE-F258-4336-8697-18CBD8B4B30F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A80DE9AE-F258-4336-8697-18CBD8B4B30F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A80DE9AE-F258-4336-8697-18CBD8B4B30F}.Release|Any CPU.Build.0 = Release|Any CPU + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Data/inputs.csv b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Data/inputs.csv new file mode 100644 index 00000000..624e1b7b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Data/inputs.csv @@ -0,0 +1,15 @@ +u,2,,,,,,,, +D,0.025,,,,,,,, +rows_S,9,,,,,,,, +columns_S,10,,,,,,,, +rows_W,1,,,,,,,, +columns_W,10,,,,,,,, +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Model/Sediment_Diff.omi b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Model/Sediment_Diff.omi new file mode 100644 index 00000000..6e74e6b6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Model/Sediment_Diff.omi @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Model/config.xml b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Model/config.xml new file mode 100644 index 00000000..83aa8db7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Model/config.xml @@ -0,0 +1,63 @@ + + + + + + Region1 + numerical-analysis, Columbia SC + + + ConcentrationBC2 + C + + + ppm + 1 + + + + ppm + ppm + 1 + 0 + + scalar + + + + + Region1 + Concentration, Columbia SC + 1 + .\StreamNet.shp + + + ConcentrationBC1 + Concentration + + + 1 + ppm + + + + ppm + ppm + 1 + 0 + + Scalar + + + + + + 08/20/2009 00:00:00 AM + 08/20/2009 00:20:00 AM + 1 + + + Soil Component + ghg + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..0bdb8f31 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Sediment_Diff")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("Sediment_Diff")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("8593364f-a6ed-4158-9ef8-c9487aeb26e7")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Sediment_Diff.csproj b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Sediment_Diff.csproj new file mode 100644 index 00000000..132bc04e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Sediment_Diff.csproj @@ -0,0 +1,145 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {A80DE9AE-F258-4336-8697-18CBD8B4B30F} + Library + Properties + Sediment_Diff + Sediment_Diff + v4.0 + 512 + + + false + + + + + 3.5 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + False + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + False + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Spatial.dll + + + False + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + False + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Source/LinkableComponent.cs b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Source/LinkableComponent.cs new file mode 100644 index 00000000..7d5466f5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Source/LinkableComponent.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Sediment_Diff +{ + class LinkableComponent :Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + protected override void SetEngineApiAccess() + { + _engineApiAccess = new Sediment_Diff(); + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Source/Sediment_Diff 1.cs b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Source/Sediment_Diff 1.cs new file mode 100644 index 00000000..3e3c666d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/ConcentrationDiffusion/Source/Source/Sediment_Diff 1.cs @@ -0,0 +1,299 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using SMW; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Wrapper; +using System.IO; +using OpenMI.Standard; +using System.Collections; + +namespace Sediment_Diff +{ + public class Sediment_Diff : SMW.Wrapper + { + Dictionary _InputExchangeItems = new Dictionary(); + Dictionary outputValues = new Dictionary(); + string output_elementset; string output_quantity; + double[,] cs; int rows_W; int cols_W; int rows_S; int cols_S; double _h; double _dt; + double[,] cw; double u; double D; + double[] diff_prev; double[,] adv_prev; + double[] initial; List outv = new List(); + //bool IsFirstTimeStep = true; + string outputPath = System.IO.Directory.GetCurrentDirectory() + "/output"; + int nt = 5;// number of earliest outputs need to be saved + + public override void Finish() + { + //other output dropping the initial time step to match the saved output with that of water component + if (!System.IO.Directory.Exists(outputPath)) + { + System.IO.Directory.CreateDirectory(outputPath); + } + //System.IO.Directory.CreateDirectory("sediment2output"); + StreamWriter swaa = new StreamWriter(outputPath + "/sedimentDiffusion.csv"); + swaa.WriteLine("This is some info about the model...."); + DateTime start = CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)this.GetTimeHorizon().Start).ModifiedJulianDay); + DateTime end = CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)this.GetTimeHorizon().End).ModifiedJulianDay); + swaa.WriteLine("StartDate: , " + String.Format("{0:d/M/yyyy HH:mm:ss}", start)); + swaa.WriteLine("EndDate: , " + String.Format("{0:d/M/yyyy HH:mm:ss}", end)); + swaa.WriteLine("Time [hh:mm:ss]"); + swaa.WriteLine(); + foreach (KeyValuePair kvp in outputValues) + { + + string time = String.Format("{0:HH:mm:ss}", kvp.Key); + swaa.WriteLine("\n" + time + ","); + // StreamWriter sw = new StreamWriter("sedimentoutput/" + time + ".csv"); + for (int i = 0; i < kvp.Value.GetLength(0); i++) + { + for (int j = 0; j < kvp.Value.GetLength(1); j++) + { + swaa.Write(kvp.Value[i, j].ToString() + ","); + } + swaa.Write("\n"); + } + + } + + swaa.Close(); + } + public override void Initialize(System.Collections.Hashtable properties) + { + //string configFile = null; string output_elementset; string output_quantity; + string configFile = null; string inputfile = null; + + //set initial conditions through *.omi file. (optional) + if (properties.ContainsKey("ConfigFile")) + configFile = (string)properties["ConfigFile"]; + + if (properties.ContainsKey("Inputs")) + inputfile = (string)properties["Inputs"]; + + + if (properties.ContainsKey("OutputDir")) + outputPath = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), (string)properties["OutputDir"]); + + + //lookup model's configuration file to determine interface properties + SetVariablesFromConfigFile(configFile); + SetValuesTableFields(); + + int num_inputs = this.GetInputExchangeItemCount(); + if (inputfile != null) + { + //read input Ux,Uy,and concentration matrix + StreamReader sr = new StreamReader(inputfile); + string line = sr.ReadLine(); + u = Convert.ToDouble(line.Split(',')[1]); + + line = sr.ReadLine(); + D = Convert.ToDouble(line.Split(',')[1]); + + line = sr.ReadLine(); + rows_S = Convert.ToInt32(line.Split(',')[1]); + + line = sr.ReadLine(); + cols_S = Convert.ToInt32(line.Split(',')[1]); + + line = sr.ReadLine(); + rows_W = Convert.ToInt32(line.Split(',')[1]); + + line = sr.ReadLine(); + cols_W = Convert.ToInt32(line.Split(',')[1]); + + cs = new double[rows_S, cols_S]; cw = new double[rows_W, cols_W]; + + //get elementset from smw + ElementSet ein = (ElementSet)this.Inputs[0].ElementSet; + ElementSet eout = (ElementSet)this.Outputs[0].ElementSet; + + //change element type from id to point + ein.ElementType = ElementType.XYPoint; + eout.ElementType = ElementType.XYPoint; + + //initialize cw to intial values (importating the data from the txt file(.models\sediment\inputs.csv) + line = sr.ReadLine(); + int i = 0; + while (line != null) + { + string[] values = line.Split(','); + for (int j = 0; j <= values.Length - 1; j++) + { + cs[i, j] = Convert.ToDouble(values[j]); + + //Build Element Set from first row only! + if (i == 0) + { + //create new element + Element e = new Element(); + int x, y; + x = j; + y = -i; + Vertex v = new Vertex(x, y, 0); + e.AddVertex(v); + + //add element to elementset + ein.AddElement(e); + eout.AddElement(e); + } + } + i++; + line = sr.ReadLine(); + } + } + else + { + + } + + + //output exchange item attributes + int num_outputs = this.GetOutputExchangeItemCount(); + OutputExchangeItem output = this.GetOutputExchangeItem(num_outputs - 1); + output_elementset = output.ElementSet.ID; + output_quantity = output.Quantity.ID; + + //defining the equation constants + _dt = this.GetTimeStep(); + _h = u * _dt / 0.85533; // l / (rows - 2); + + //setup the intial value of diff_prev= upper row of cs since cs contain 9 rows + diff_prev = new double[cs.GetUpperBound(1) + 1]; + for (int i = 0; i <= cs.GetLength(1) - 1; i++) + { + diff_prev[i] = cs[cs.GetUpperBound(0), i]; + } + //this sets the initial cond. + + this.SetValues("Concentration", "sed", new ScalarSet(diff_prev)); + + // intiating am matrix that contain the intial values to bypass the open mi setting + initial = new double[cs.GetUpperBound(1) + 1]; + for (int i = 0; i <= cs.GetLength(1) - 1; i++) + { + initial[i] = cs[cs.GetUpperBound(0), i]; + } + + //calling the intial value of adv_prev=cw from water component + adv_prev = new double[1, cw.GetUpperBound(1) + 1]; + for (int j = 0; j <= cw.GetLength(1) - 1; j++) + adv_prev[0, j] = cw[cw.GetUpperBound(0), j]; + } + public override bool PerformTimeStep() + { + //Defie current time step and the row of water component + TimeStamp SedTime = (TimeStamp)this.GetCurrentTime(); + ScalarSet aa = (ScalarSet)this.GetValues("Concentration", "water"); + //set adv_prev to the imported values + for (int i = 0; i <= cw.GetLength(1) - 1; i++) + { + adv_prev[0, i] = aa.data[i]; + } + // specifies if the values should be saved. + bool SaveValues = true; + TimeStamp t = (TimeStamp)this.GetCurrentTime(); + DateTime time = CalendarConverter.ModifiedJulian2Gregorian(t.ModifiedJulianDay); + + // calculate concentration in sediment using diffusion mechanism from water + cs = Calculate_concentration(); + + //setup the value of diff_prev= upper row of cs since cs contain 9 rows + for (int i = 0; i <= cs.GetLength(1) - 1; i++) + diff_prev[i] = cs[cs.GetUpperBound(0), i]; + + + //save results for output during Finish() + double[,] z = new double[rows_S, cols_S]; + if (SaveValues) + { + for (int i = 0; i <= cs.GetLength(0) - 1; i++) + { + for (int j = 0; j <= cs.GetLength(1) - 1; j++) + { + z[i, j] = cs[i, j]; + } + } + + //save results for output during Finish() + outputValues.Add(time, z); + outv.Add(z); + } + //setting boundary conditions so that they are available to water component. + double[] outvals = new double[cs.GetLength(1)]; + for (int i = 0; i <= cs.GetLength(1) - 1; i++) + { + outvals[i] = cs[8, i]; + } + this.SetValues("Concentration", "sed", new ScalarSet(outvals)); + this.AdvanceTime(); + + return true; + } + + public double[,] Calculate_concentration() + { + + int r = cs.GetLength(0) - 1; + int m = cs.GetLength(1) - 1; + + //calculate the upper row of sediment component linked with water component + int i = r; + + for (int j = 1; j <= m - 1; j++) + { + cs[i, j] = diff_prev[j] + (D * _dt / Math.Pow(_h, 2.0)) * (cs[i - 1, j] + diff_prev[j + 1] + adv_prev[0, j] + diff_prev[j - 1] - 4 * diff_prev[j]); + } + + //calculate the rest of rows of sediment component + for (i = r - 1; i >= 1; i--) + { + for (int j = 1; j <= m - 1; j++) + { + cs[i, j] = cs[i, j] + (D * _dt / Math.Pow(_h, 2.0)) * (cs[i + 1, j] + cs[i, j + 1] + cs[i - 1, j] + cs[i, j - 1] - 4 * cs[i, j]); + } + } + + //create left and right boundary(cols) + for (i = 0; i <= r; i++) + { + cs[i, 0] = cs[i, 1]; + cs[i, m] = cs[i, m - 1]; + } + + //create lower boundary(row) + for (int j = 0; j <= m; j++) + { + cs[0, j] = cs[1, j]; + + } + + return cs; + } + // storing previous values for higher order polynomial interpolation + //public override OpenMI.Standard.ITimeStamp GetEarliestNeededTime() + //{ + // //get the current time + // TimeStamp time = (TimeStamp)this.GetCurrentTime(); + // DateTime curr_time = CalendarConverter.ModifiedJulian2Gregorian(time.ModifiedJulianDay); + + // //create a pseudo next time + // DateTime nextTime = curr_time.AddSeconds(this.GetTimeStep() * (nt - 1)); + + // //get the timestep as a timespan + // System.TimeSpan tspan = nextTime - curr_time; + + // //calculate earliest needed time + // DateTime earliest = curr_time.Subtract(tspan); + + // //return the desired time step + // if (CalendarConverter.Gregorian2ModifiedJulian(earliest) < this.GetTimeHorizon().Start.ModifiedJulianDay) + // return this.GetTimeHorizon().Start; + // else + // return new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(earliest)); + + //} + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbReader/DbReader.sln b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/DbReader.sln new file mode 100644 index 00000000..b372f752 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/DbReader.sln @@ -0,0 +1,38 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbReader", "Source\DbReader.csproj", "{F7FC143A-18E5-428A-B79F-FC20BFFE6266}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.csproj", "{3586DE30-15AE-4DAD-9557-A98B236CA454}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbWriter", "..\DbWriter\Source\DbWriter.csproj", "{1CBE4440-985E-405B-BFBE-01F0E26AD2C5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoadCalculator", "..\LoadCalculator\LoadCalculator.csproj", "{2672B7C8-BDAC-413A-AA08-6666D5B3BC64}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Release|Any CPU.Build.0 = Release|Any CPU + {3586DE30-15AE-4DAD-9557-A98B236CA454}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3586DE30-15AE-4DAD-9557-A98B236CA454}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3586DE30-15AE-4DAD-9557-A98B236CA454}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3586DE30-15AE-4DAD-9557-A98B236CA454}.Release|Any CPU.Build.0 = Release|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Release|Any CPU.Build.0 = Release|Any CPU + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Source/DbReader.cs b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Source/DbReader.cs new file mode 100644 index 00000000..529dae4b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Source/DbReader.cs @@ -0,0 +1,1079 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Collections; +using System.IO; +using System.Xml; +using System.Xml.Serialization; +using System.Diagnostics; +using System.Data; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Spatial; +using Oatc.OpenMI.Sdk.Wrapper; +using Oatc.OpenMI.Sdk.Buffer; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using HydroDesktop.Database; +using System.Text.RegularExpressions; +using System.Linq; +using HydroDesktop.Configuration; +using HydroDesktop.Interfaces; + + +namespace CUAHSI.HIS +{ + public class DbReader : ILinkableComponent + { + + private Dictionary _links + = new Dictionary(); + private List _inputExchangeItems + = new List(); + private List _outputExchangeItems + = new List(); + private double _earliestInputTime; + private double _latestInputTime; + private string _dbPath; + private string _fullPath; //path to the .dll + private DbOperations _db; + private Dictionary _buffer = new Dictionary(); + private Dictionary _elementCount = new Dictionary(); + private Dictionary _endTimes = new Dictionary(); + private Dictionary> _times = new Dictionary>(); + private Dictionary _lastIndex = new Dictionary(); + + + private int _searchDistance = -999; + + //set the relaxation factor to -999 initially. This will be modified if a value is specified in the omi file. + double _relaxationFactor = -999; + bool _exactMatch = false; + int _range = -999; + string conn = null; + + private Dictionary mapper = new Dictionary(); + + #region ILinkableComponent Members + + public void AddLink(ILink link) + { + _links.Add(link.ID, link); + AddToBuffer(link); + + } + + private void AddToBuffer(ILink link) + { + // ---------------------------------------------------------------------------------------------------- + // The method adds values associated with the link.source to a SmartBuffer. + // ---------------------------------------------------------------------------------------------------- + + //dictionary of values indexed by their date\time + SortedDictionary dict = new SortedDictionary(); + + //create a buffer instance to temporarily store data + SmartBuffer _smartBuffer = new SmartBuffer(); + //set the relaxation factor, if specifed in *.omi file. + if (_relaxationFactor > 0) + _smartBuffer.RelaxationFactor = _relaxationFactor; + + //get link.source quantity and elementset + IQuantity sourceQuantity = link.SourceQuantity; + IElementSet sourceElementSet = link.SourceElementSet; + + string sql = "SELECT DISTINCT ds.SeriesID " + + "FROM DataValues dv " + + "INNER JOIN DataSeries ds ON dv.SeriesID = ds.SeriesID " + + "INNER JOIN DataThemes dt ON dv.SeriesID = dt.SeriesID " + + "INNER JOIN Sites s ON ds.SiteID = s.SiteID " + + "INNER JOIN DataThemeDescriptions dtd On dt.ThemeID = dtd.ThemeID " + + "WHERE dtd.ThemeName = '" + sourceElementSet.ID.ToString() + "' " + + "ORDER BY s.SiteName ASC"; + + DataTable tbl = _db.LoadTable("values", sql); + + //get the number of series' in this theme + Dictionary sites = new Dictionary(); + + //get the number of sites in this series + int k = 0; + foreach (DataRow row in tbl.Rows) + { + if (!sites.ContainsKey(Convert.ToString(row["SeriesID"]))) + { + sites.Add(Convert.ToString(row["SeriesID"]), k); + k++; + } + + } + + + //query the db for values associated with source quantity and elementset + //TODO: LOOKUP BY THEMENAME, NOT THEMEID + sql = "SELECT ds.SeriesID, dv.LocalDateTime, dv.DataValue " + + "FROM DataValues dv " + + "INNER JOIN DataSeries ds ON dv.SeriesID = ds.SeriesID " + + "INNER JOIN DataThemes dt ON dv.SeriesID = dt.SeriesID " + + "INNER JOIN DataThemeDescriptions dtd On dt.ThemeID = dtd.ThemeID " + + "WHERE dtd.ThemeName = '" + sourceElementSet.ID.ToString() + "' " + + "ORDER BY dv.LocalDateTime ASC"; + //"ORDER BY dv.DataValue ASC"; + + tbl = _db.LoadTable("values", sql); + + //get the number of series' in this theme + List t = new List(); + Dictionary Times = new Dictionary(); + + //get the number of sites in this series + //int k = 0; + //foreach (DataRow row in tbl.Rows) + //{ + // if (!sites.ContainsKey(Convert.ToString(row["SeriesID"]))) + // { + // sites.Add(Convert.ToString(row["SeriesID"]), k); + // k++; + // } + + // if(!t.Contains(Convert.ToDateTime(row["LocalDateTime"]))) + // t.Add(Convert.ToDateTime(row["LocalDateTime"])); + //} + //initialize a dictionary to hold the times and values + foreach (DataRow row in tbl.Rows) + { + if (!Times.ContainsKey(Convert.ToDateTime(row["LocalDateTime"]))) + Times.Add(Convert.ToDateTime(row["LocalDateTime"]), new double[sites.Count]); + } + //Times.OrderBy pair.Value); + foreach (DataRow row in tbl.Rows) + { + double v = Convert.ToDouble(row["DataValue"]); + string id = Convert.ToString(row["SeriesID"]); + DateTime dt = Convert.ToDateTime(row["LocalDateTime"]); + Times[dt][sites[id]] = v; + } + + + for( int i=0; i<= t.Count-1; i++) + { + double[] vals = new double[sites.Count]; + DateTime dt = t[i]; + foreach (DataRow row in tbl.Rows) + { + double v = Convert.ToDouble(row["DataValue"]); + string id = Convert.ToString(row["SeriesID"]); + + //add v to vals in the location defined by its site id + vals[sites[id]] = v; + } + + ArrayList a = new ArrayList(); + a.Add(vals); + dict.Add(t[i], a); + + } + ////check to see if time/value combination has been already added + //if (dict.ContainsKey(dt)) + //{ + // //if yes, add value to existing dictionary + // ArrayList a = dict[dt]; + // a.Add(v); + //} + //else + //{ + // //if not, add value to new dictionary + // ArrayList a = new ArrayList(); + // a.Add(v); + // dict.Add(dt, a); + //} + + //double[] valueset = null; + //ITimeStamp time_stmp = null; + ////add dictionary to the smart buffer + //foreach (KeyValuePair kvp in dict) + //{ + // time_stmp = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(kvp.Key)); + // valueset = (double[])kvp.Value.ToArray(typeof(double)); + // _smartBuffer.AddValues(time_stmp, new ScalarSet(valueset)); + //} + + + // //sort the dictionary + //var sortDict = from keys in Times.Keys + // orderby Times[keys] ascending + // select keys; + + ////Times = (Dictionary)sortDict; + + //foreach (KeyValuePair kvp in Times.OrderBy(key => key.Value)) + //{ + + // time_stmp = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(kvp.Key)); + // valueset = kvp.Value; + // _smartBuffer.AddValues(time_stmp, new ScalarSet(valueset)); + //} + + //add dictionary to the smart buffer + double[] valueset = null; + ITimeStamp time_stmp = null; + foreach (KeyValuePair kvp in Times) + { + time_stmp = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(kvp.Key)); + valueset = kvp.Value; + _smartBuffer.AddValues(time_stmp, new ScalarSet(valueset)); + } + + //if ExactMatch is requested, then save the times for using in the GetValues method + try + { + if (_exactMatch) + { + List times = new List(); + foreach (KeyValuePair kvp in Times) + { + + time_stmp = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(kvp.Key)); + times.Add(time_stmp.ModifiedJulianDay); + } + _times.Add(link.ID, times); + } + } + catch (Exception) { } + + ////if ExactMatch is requested, then save the times for using in the GetValues method + //try + //{ + // if (_exactMatch) + // { + // List times = new List(); + // foreach (KeyValuePair kvp in dict) + // { + + // time_stmp = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(kvp.Key)); + // times.Add(time_stmp.ModifiedJulianDay); + // } + // _times.Add(link.ID, times); + // } + //} + //catch (Exception) { } + + //store the number of elements for this link + _elementCount.Add(link.ID, valueset.Length); + + //store the lastest known time for this link + _endTimes.Add(link.ID, (TimeStamp)time_stmp); + //store the smart buffer based on linkID + _buffer.Add(link.ID, _smartBuffer); + + //initialize the last index variable + _lastIndex.Add(link.ID, 0); + + //adjust start time based on target component + if (link.TargetComponent.TimeHorizon.Start.ModifiedJulianDay > this.EarliestInputTime.ModifiedJulianDay) + this._earliestInputTime = link.TargetComponent.TimeHorizon.Start.ModifiedJulianDay; + + + #region Initialize Element Mapper + + try + { + //get the first (stored) data operation + IDataOperation dataOp = link.GetDataOperation(0); + //get dataOperation description + string dataOpDesc = dataOp.GetArgument(1).Value; + //add a element mapper instance to the mapper dictionary + mapper.Add(link.ID, new ElementMapper()); + //initialize the element mapper and create a mapping matrix + mapper[link.ID].Initialise(dataOpDesc, link.SourceElementSet, link.TargetElementSet); + } + catch (Exception e) { } + + #endregion + } + + public string ComponentDescription + { + get { return "DbReader 1.0"; } + } + + public string ComponentID + { + get { return "DbReader"; } + } + + public void Dispose() + { + + } + + public ITimeStamp EarliestInputTime + { + get { return new TimeStamp(_earliestInputTime); } + } + + public void Finish() + { + //clear all values in the buffer + foreach (KeyValuePair kvp in _buffer) + kvp.Value.Clear(this.TimeHorizon); + //_smartBuffer.Clear(this.TimeHorizon); + } + + public IInputExchangeItem GetInputExchangeItem(int inputExchangeItemIndex) + { + return _inputExchangeItems[inputExchangeItemIndex]; + } + + public IOutputExchangeItem GetOutputExchangeItem(int outputExchangeItemIndex) + { + return _outputExchangeItems[outputExchangeItemIndex]; + } + + public IValueSet GetValues(ITime time, string linkID) + { + // ---------------------------------------------------------------------------------------------------- + // The method queries a HydroDesktop database and builds an IValueSet object for the given a time + // and link. + // ---------------------------------------------------------------------------------------------------- + Link l = (Link)_links[linkID]; + + IValueSet values; + if (_exactMatch) + { + + // + // Perform Exact Match Routine + // + + // covert ITime to a DateTime data type + TimeStamp timestamp = (TimeStamp)time; + DateTime dt = CalendarConverter.ModifiedJulian2Gregorian( + (double)timestamp.ModifiedJulianDay); + + //check to see if the buffer contains this time + if (_times[linkID].Contains(timestamp.ModifiedJulianDay)) + { + values = new ScalarSet(new double[_elementCount[linkID]]); + values = _buffer[linkID].GetValues(time); + //convert the values to the correct units + values = ConvertUnit(values, l); + } + else + values = new ScalarSet(new double[0]); + } + else if (_range != -999) + { + // + // Perform Range Searching Routine + // + + List FoundVals = new List(); + + // covert ITime to a DateTime data type + TimeStamp timestamp = (TimeStamp)time; + DateTime dt = CalendarConverter.ModifiedJulian2Gregorian( + (double)timestamp.ModifiedJulianDay); + + values = new ScalarSet(new double[_elementCount[linkID]]); + + //check to see if the current time is within the known time span + if (timestamp.ModifiedJulianDay <= _endTimes[linkID].ModifiedJulianDay) + { + TimeStamp currTime = (TimeStamp)time; + DateTime dateTime = CalendarConverter.ModifiedJulian2Gregorian(currTime.ModifiedJulianDay); + //dateTime = dateTime.AddSeconds(_range); + //get the earliest and latest times based on the specified time range + TimeStamp latestTime = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(dateTime.AddSeconds(_range/2))); + TimeStamp earliestTime = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(dateTime.AddSeconds(-1*_range/2))); + + //check to make sure tht the latest time is less than the last time in the buffer + if (latestTime.ModifiedJulianDay > ((TimeStamp)_buffer[linkID].GetTimeAt(_buffer[linkID].TimesCount - 1)).ModifiedJulianDay) + values = new ScalarSet(new double[0]); + + //check to make sure tht the earliest time is greater than the first time in the buffer + else if (earliestTime.ModifiedJulianDay < ((TimeStamp)_buffer[linkID].GetTimeAt(0)).ModifiedJulianDay) + values = new ScalarSet(new double[0]); + + + else + { + for (int i=_lastIndex[linkID]; i <= _buffer[linkID].TimesCount - 1; i++) + { + + ////loop through the times to find the start and end indices + if (((TimeStamp)_buffer[linkID].GetTimeAt(i)).ModifiedJulianDay >= earliestTime.ModifiedJulianDay + && ((TimeStamp)_buffer[linkID].GetTimeAt(i)).ModifiedJulianDay <= latestTime.ModifiedJulianDay) + { + ScalarSet ss = (ScalarSet)_buffer[linkID].GetValues(_buffer[linkID].GetTimeAt(i)); + if (ss.data.Length > 0) + FoundVals.Add(ss); + } + //if the latest time has been passed then break + else if (((TimeStamp)_buffer[linkID].GetTimeAt(i)).ModifiedJulianDay > latestTime.ModifiedJulianDay) + { + //save the index that should be used to start with on the next iteration + _lastIndex[linkID] = Convert.ToInt32(Math.Floor(Convert.ToDouble(i) - Convert.ToDouble(_lastIndex[linkID])/2.0)); + break; + } + + } + if (FoundVals.Count == 1) + { + values = new ScalarSet(FoundVals[0].data); + + //convert the values to the correct units + values = ConvertUnit(values, l); + } + else if (FoundVals.Count > 1) + { + double[] ave = FoundVals[0].data; + int[] divider = new int[ave.Length]; + + for (int i = 0; i <= ave.Length - 1; i++) + if (ave[i] != 0) + divider[i]++; + + //HACK: I'm taking the average of all the values. Probably should do this smarter. + for (int i = 0; i <= FoundVals[0].data.Length - 1; i++) + { + for (int j = 1; j <= FoundVals.Count - 1; j++) + { + if (FoundVals[j].data[i] != 0) + { + ave[i] += FoundVals[j].data[i]; + divider[i]++; + } + } + } + + for (int i = 0; i <= ave.Length - 1; i++) + if (divider[i] != 0) + ave[i] = ave[i] / (divider[i]); + + values = new ScalarSet(ave); + + //convert the values to the correct units + values = ConvertUnit(values, l); + } + else + values = new ScalarSet(new double[0]); + } + + } + else + { + values = new ScalarSet(new double[0]); + } + + } + else + { + // + //Perform Relaxation Interpolation Routine + // + + // covert ITime to a DateTime data type + TimeStamp timestamp = (TimeStamp)time; + DateTime dt = CalendarConverter.ModifiedJulian2Gregorian( + (double)timestamp.ModifiedJulianDay); + + + + values = new ScalarSet(new double[_elementCount[linkID]]); + + //check to see if the current time is within the known time span + if (timestamp.ModifiedJulianDay <= _endTimes[linkID].ModifiedJulianDay) + { + //get scalar set + //IValueSet values = _smartBuffer.GetValues(time); + values = _buffer[linkID].GetValues(time); + + //convert the values to the correct units + values = ConvertUnit(values, l); + + } + + } + + #region Map Values + if (mapper.Count > 0) + { + if (mapper.ContainsKey(linkID)) + { + IValueSet mappedValues = mapper[linkID].MapValues(values); + // return values + return mappedValues; + } + } + #endregion + + //else return unmapped values (i.e. index based) + return values; + + + } + + public void Initialize(IArgument[] properties) + { + // ---------------------------------------------------------------------------------------------------- + // The method queries a HydroDesktop database and builds OpenMI exchange items based on + // the themes present in the database. + // + // If omi file has a DbPath attribute, that will set the path to the HydrDesktop database. If the omi + // file does not have a DbPath attribute, the path will be set as the current database selected by + // HydroDesktop. + // ---------------------------------------------------------------------------------------------------- + + //extract argument(s) from OMI file + foreach (IArgument property in properties) + { + if (property.Key == "DbPath") { _dbPath = property.Value; }; + + //default value for relationFactor is 1; + if (property.Key == "Relaxation") + { + //check to see if the property is a string + if (property.Value.GetType().Name == "String") + { + if (property.Value == "ExactMatch") + { + _exactMatch = true; + } + } + else + _relaxationFactor = Convert.ToDouble(property.Value); + } + else if (property.Key == "RangeInSeconds") + { + _range = Convert.ToInt32(property.Value); + } + } + + //---- set database to default if dbpath is invalid + string fullpath = ""; + //-- first check if dbpath is null + bool pass = true; + if (String.IsNullOrWhiteSpace(_dbPath)) + pass = false; + //-- next, check that dbpath points to an actual file + else + { + //-- if relative path is given + if (!Path.IsPathRooted(_dbPath)) + { + fullpath = System.IO.Path.GetFullPath(System.IO.Directory.GetCurrentDirectory() + _dbPath); + } + //-- if absolute path + else + { + fullpath = System.IO.Path.GetFullPath(_dbPath); + } + + if (!File.Exists(fullpath)) + { + pass = false; + + //-- warn the user that the database could not be found + System.Windows.Forms.MessageBox.Show("The database supplied in DbReader.omi could not be found. As a result the DbReader will connect to the current HydroDesktop database." + + "\n\n--- The following database could not be found --- \n" + fullpath, + "An Error Occurred While Loading Database...", + System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); + } + } + + //-- set the connection string + if (!pass) + conn = Settings.Instance.DataRepositoryConnectionString; + else + conn = @"Data Source = " + fullpath + ";New=False;Compress=True;Version=3"; + + //-- get the database + _db = new DbOperations(conn, DatabaseTypes.SQLite); + + //----build list of output exchange items from db themes + List warnings = new List(); + //-- get all themes + DataTable themes = _db.LoadTable("themes", "SELECT ThemeID, ThemeName from DataThemeDescriptions"); + foreach (DataRow theme in themes.Rows) + { + //-- get all the variables associated with the theme + DataTable variables = _db.LoadTable("vars","SELECT Variables.VariableUnitsID,ThemeName "+ + "FROM Variables "+ + "INNER JOIN DataSeries ON Variables.VariableID=DataSeries.VariableID "+ + "INNER JOIN DataThemes ON DataSeries.SeriesID=DataThemes.SeriesID "+ + "INNER JOIN DataThemeDescriptions ON DataThemes.ThemeID=DataThemeDescriptions.ThemeID "+ + "WHERE DataThemes.ThemeID = "+theme[0].ToString()); + //-- make sure that all series in theme have the same variable + bool saveTheme = true; + for (int i = 1; i <= variables.Rows.Count - 1; i++) + { + if (variables.Rows[0][0].ToString() != variables.Rows[i][0].ToString()) + { + //-- don't save this theme + saveTheme = false; + + //-- add this theme to the warnings list + warnings.Add("\""+variables.Rows[0][1].ToString()+"\""); + + break; + } + } + + //-- save all themes containing exactly one variable + if (saveTheme) + { + IOutputExchangeItem outExchangeItem = buildExchangeItemFromTheme(theme["ThemeID"].ToString(), theme["ThemeName"].ToString()); + _outputExchangeItems.Add(outExchangeItem); + } + } + + //---- notify the user if some themes cannot be loaded + if(warnings.Count > 0) + { + string title = "One or more themes could not be loaded..."; + string message = "The DbReader component requires that all data series in given theme have a unique variable. " + + "One or more of the themes in this database do not fit this criteria, and therefore cannot be loaded. " + + "\n\n--- The following themes will not be loaded --- \n"; + foreach(string warning in warnings) + message += "\nTheme Name: "+warning; + + //TODO: write this to the output window instead of using MessageBox + //-- suppress the messagebox for now b/c its annoying. + //System.Windows.Forms.MessageBox.Show(message,title,System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Warning); + } + } + + public int InputExchangeItemCount + { + get { return _inputExchangeItems.Count; } + } + + public string ModelDescription + { + get { return "DbReader"; } + } + + public string ModelID + { + get { return "DbReader"; } + } + + public int OutputExchangeItemCount + { + get { return _outputExchangeItems.Count; } + } + + public void Prepare() + { + + } + + public void RemoveLink(string linkID) + { + //remove the linkID from the _links dictionary + _links.Remove(linkID); + + //remove the data associated with this link from the smartbuffer + _buffer.Remove(linkID); + + //remove linkID element from the _lastIndex dictionary + _lastIndex.Remove(linkID); + + //remove linkID element from the elementCount dictionary + _elementCount.Remove(linkID); + + //remove the LinkID entry from the _endTimes dictionary + _endTimes.Remove(linkID); + + //remove the LinkID entry from the _times dictionary + _times.Remove(linkID); + + } + + public ITimeSpan TimeHorizon + { + get { return new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(_earliestInputTime), new TimeStamp(_latestInputTime)); } + } + + public string Validate() + { + return "Validate is not implemented"; + } + + #endregion + + #region IPublisher Members + + public EventType GetPublishedEventType(int providedEventTypeIndex) + { + switch (providedEventTypeIndex) + { + case 0: + return EventType.DataChanged; + case 1: + return EventType.TargetBeforeGetValuesCall; + case 2: + return EventType.SourceAfterGetValuesCall; + case 3: + return EventType.TargetBeforeGetValuesCall; + case 4: + return EventType.TargetAfterGetValuesReturn; + case 5: + return EventType.Informative; + default: + throw new Exception("Illegal index in GetPublishedEventType()"); + } + } + + public int GetPublishedEventTypeCount() + { + return 6; + } + + public void SendEvent(IEvent Event) + { + + + } + + public void Subscribe(IListener listener, EventType eventType) + { + + } + + public void UnSubscribe(IListener listener, EventType eventType) + { + + } + + #endregion + + private OutputExchangeItem buildExchangeItemFromTheme(string themeID, string themeName) + { + // ---------------------------------------------------------------------------------------------------- + // The function queries a HydroDesktop database and builds OpenMI exchange item based on theme id + // and name. + // ---------------------------------------------------------------------------------------------------- + + // Mapping from db to OpenMI + // + // db OpenMI + // --- ------- + // Variables.VariableCode quantity.ID + // Variables.VariableName quantity.Description + // [Assume OpenMI.Standard.ValueType.Scalar] quantity.ValueType + // Units.UnitAbbreviation unit.ID + // [Not Impemented] unit.ConversionFactorToSI + // [Not Implemented] unit.OffsetToSI + // [Not Implemented] unit.dimension + // DataThemeDiscriptions.ThemeName elementset.ID + // DataThemeDiscriptions.ThemeDescription elementset.Description + // [Assume OpenMI.Standard.ElementType.XYPoint] elementset.ElementType + // DataSeries.SeriesID element.ID + // DataSeries.BeginDateTime time horizon start + // DataSeries.EndDateTime time horizon end + + Quantity quantity = new Quantity(); + Unit unit = new Unit(); + Dimension dimension = new Dimension(); + ElementSet elementset = new ElementSet(); + OutputExchangeItem outputexchangeitem = new OutputExchangeItem(); + + DataTable dtSeries = null; + try + { + //query db to gather required information based on theme id (including dimension, conversion, offset) + string sql = "SELECT ds.SeriesID, v.VariableName, v.VariableCode, u.UnitsAbbreviation, td.ThemeName, " + + "td.ThemeDescription, ds.BeginDateTime, ds.EndDateTime, ds.SiteID, uc.ConversionFactor " + + "FROM DataThemeDescriptions td " + + "INNER JOIN DataThemes t ON td.ThemeID = t.ThemeID " + + "INNER JOIN DataSeries ds ON t.SeriesID = ds.SeriesID " + + "INNER JOIN Variables v ON ds.VariableID = v.VariableID " + + "INNER JOIN Sites s ON ds.SiteID = s.SiteID " + + "INNER JOIN Units u ON v.VariableUnitsID = u.UnitsID " + + "INNER JOIN UnitConversions uc ON u.UnitsID = uc.ConversionID " + + "WHERE t.themeID = '" + themeID.ToString() + "' " + + "ORDER BY s.SiteName ASC"; + + dtSeries = _db.LoadTable("series", sql); + } + catch (Exception) + { + //query db to gather required information based on theme id (omitting dimension, conversion, offset) + string sql = "SELECT ds.SeriesID, v.VariableName, v.VariableCode, u.UnitsAbbreviation, td.ThemeName, " + + "td.ThemeDescription, ds.BeginDateTime, ds.EndDateTime, ds.SiteID " + + "FROM DataThemeDescriptions td " + + "INNER JOIN DataThemes t ON td.ThemeID = t.ThemeID " + + "INNER JOIN DataSeries ds ON t.SeriesID = ds.SeriesID " + + "INNER JOIN Variables v ON ds.VariableID = v.VariableID " + + "INNER JOIN Sites s ON ds.SiteID = s.SiteID " + + "INNER JOIN Units u ON v.VariableUnitsID = u.UnitsID " + + "WHERE t.themeID = '" + themeID.ToString() + "' " + + "ORDER BY s.SiteName ASC"; + + dtSeries = _db.LoadTable("series", sql); + } + if (dtSeries.Rows.Count == 0) + { + //query db to gather required information based on theme id (omitting dimension, conversion, offset) + string sql = "SELECT ds.SeriesID, v.VariableName, v.VariableCode, u.UnitsAbbreviation, td.ThemeName, " + + "td.ThemeDescription, ds.BeginDateTime, ds.EndDateTime, ds.SiteID " + + "FROM DataThemeDescriptions td " + + "INNER JOIN DataThemes t ON td.ThemeID = t.ThemeID " + + "INNER JOIN DataSeries ds ON t.SeriesID = ds.SeriesID " + + "INNER JOIN Variables v ON ds.VariableID = v.VariableID " + + "INNER JOIN Sites s ON ds.SiteID = s.SiteID " + + "INNER JOIN Units u ON v.VariableUnitsID = u.UnitsID " + + "WHERE t.themeID = '" + themeID.ToString() + "' " + + "ORDER BY s.SiteName ASC"; + + dtSeries = _db.LoadTable("series", sql); + } + + foreach (DataRow row in dtSeries.Rows) + { + string seriesID = Convert.ToString(row["SeriesID"]); + string variableName = Convert.ToString(row["VariableName"]); + string variableCode = Convert.ToString(row["VariableCode"]); + string unitsAbbreviation = Convert.ToString(row["UnitsAbbreviation"]); + //string themeName = Convert.ToString(row["ThemeName"]); PASSED IN AS ARGUMENT + string themeDescription = Convert.ToString(row["ThemeDescription"]); + DateTime beginDateTime = Convert.ToDateTime(row["BeginDateTime"]); + DateTime endDateTime = Convert.ToDateTime(row["EndDateTime"]); + string siteID = Convert.ToString(row["SiteID"]); + + //try to get the Dimension, Conversion, and Offset + string Dimension = null; + double Conversion2Si = 1; + double Offset2SI = 0; + try + { + + Conversion2Si = Convert.ToDouble(row["ConversionFactor"]); + + //Broken: This needs to be implemented in the DB + Dimension = Convert.ToString(row["Dimension"]); + + //Broken: This needs to be implemented in the DB + Offset2SI = Convert.ToDouble(row["OffsetToSI"]); + } + catch (Exception) { } + + if (!String.IsNullOrEmpty(Dimension)) + { + string[] Dimensions = Regex.Split(Dimension.ToUpper(), @"([A-Z])([^A-Z]+)"); + //for (int i = 0; i <= Dimension.Length - 2; i++) + //{ + + for (int j = 0; j <= Dimensions.Length - 2; j++) + { + char dim; + int pow; + if (Dimensions[j].Length == 0) + { + dim = 'M'; + pow = 0; + } + else + { + dim = Dimensions[j][0]; + if (Char.IsLetter(Dimensions[j + 1][0])) + pow = 1; + else if (Dimensions[j+1].Length == 0) + { + pow = 1; + j++; + } + else + { + pow = Convert.ToInt32(Dimensions[j + 1]); + j++; + } + } + //int pow = Convert.ToInt32(Regex.Split(Dimensions[i], @"/(^[A-Z]+)/")); + + if (dim == 'M') + dimension.SetPower(DimensionBase.Mass, pow); + else if (dim == 'L') + dimension.SetPower(DimensionBase.Length, pow); + else if (dim == 'D') + dimension.SetPower(DimensionBase.Temperature, pow); + else if (dim == 'T') + dimension.SetPower(DimensionBase.Time, pow); + else if (dim == 'E') + dimension.SetPower(DimensionBase.ElectricCurrent, pow); + else if (dim == 'C') + dimension.SetPower(DimensionBase.Currency, pow); + else + throw new Exception(dim + " is an Invalid Unit Dimension!"); + + } + + //} + //string Dimensions[] = Dimension.Split('/A-Z/'); + } + + //will be updated for each row, but each row should be the same so it is OK. + //TODO: include check to make sure these values are the same for each row. + quantity.ID = variableName; + quantity.Description = variableCode; + quantity.ValueType = global::OpenMI.Standard.ValueType.Scalar; + unit.ID = unitsAbbreviation; + unit.ConversionFactorToSI = Conversion2Si; + unit.OffSetToSI = Offset2SI; + quantity.Unit = unit; + //TODO: ignoring unit dimensions for now. + //Examples below ... + //dimension.SetPower(DimensionBase.Length, 3); + //dimension.SetPower(DimensionBase.Time, -1); + quantity.Dimension = dimension; + elementset.ID = themeName; + elementset.Description = themeDescription; + elementset.ElementType = ElementType.XYPoint; + Element element = new Element(); + element.ID = seriesID; + + string get_lat_lon = "SELECT s.SiteID, s.Latitude, s.Longitude " + + "FROM Sites s " + + "INNER JOIN DataSeries ds ON ds.SiteID = s.SiteID " + + "WHERE ds.SiteID = " +siteID ; + + DataTable t = _db.LoadTable("values", get_lat_lon); + + Vertex vertex = new Vertex(); + //TODOD: Add x, y for vertex + vertex.x = Convert.ToDouble(t.Rows[0]["Longitude"]); + vertex.y = Convert.ToDouble(t.Rows[0]["Latitude"]); + + element.AddVertex(vertex); + elementset.AddElement(element); + + //update time horizon to be inclusive of this time horizon + double beginDateTimeDouble = CalendarConverter.Gregorian2ModifiedJulian(beginDateTime); + double endDateTimeDouble = CalendarConverter.Gregorian2ModifiedJulian(endDateTime); + if (_earliestInputTime == 0.0) { _earliestInputTime = beginDateTimeDouble; } + if (beginDateTimeDouble < _earliestInputTime) { _earliestInputTime = beginDateTimeDouble; }; + if (endDateTimeDouble > _latestInputTime) { _latestInputTime = endDateTimeDouble; }; + } + + outputexchangeitem.Quantity = quantity; + outputexchangeitem.ElementSet = elementset; + + // add data operations and return + return addDataOperations(outputexchangeitem); + } + + private OutputExchangeItem addDataOperations(OutputExchangeItem outputexchangeitem) + { + //Add dataoperations to outputexchangeitems + ElementMapper elementMapper = new ElementMapper(); + ArrayList dataOperations = new ArrayList(); + dataOperations = elementMapper.GetAvailableDataOperations(outputexchangeitem.ElementSet.ElementType); + bool spatialDataOperationExists; + bool linearConversionDataOperationExists; + bool smartBufferDataOperationExists; + foreach (IDataOperation dataOperation in dataOperations) + { + spatialDataOperationExists = false; + foreach (IDataOperation existingDataOperation in outputexchangeitem.DataOperations) + { + if (dataOperation.ID == existingDataOperation.ID) + { + spatialDataOperationExists = true; + } + } + + if (!spatialDataOperationExists) + { + outputexchangeitem.AddDataOperation(dataOperation); + } + } + + IDataOperation linearConversionDataOperation = new LinearConversionDataOperation(); + linearConversionDataOperationExists = false; + foreach (IDataOperation existingDataOperation in outputexchangeitem.DataOperations) + { + if (linearConversionDataOperation.ID == existingDataOperation.ID) + { + linearConversionDataOperationExists = true; + } + } + + if (!linearConversionDataOperationExists) + { + outputexchangeitem.AddDataOperation(new LinearConversionDataOperation()); + } + + IDataOperation smartBufferDataOperaion = new SmartBufferDataOperation(); + smartBufferDataOperationExists = false; + foreach (IDataOperation existingDataOperation in outputexchangeitem.DataOperations) + { + if (smartBufferDataOperaion.ID == existingDataOperation.ID) + { + smartBufferDataOperationExists = true; + } + } + + if (!smartBufferDataOperationExists) + { + outputexchangeitem.AddDataOperation(new SmartBufferDataOperation()); + } + + return outputexchangeitem; + } + + /// + /// Convert the units according the what is specified in the link. I took this from Oatc.OpenMI.SDK.Wrapper.SmartOutputLink + /// + /// The values + /// The unit converted values + private IValueSet ConvertUnit(IValueSet values, Link link) + { + double aSource = link.SourceQuantity.Unit.ConversionFactorToSI; + double bSource = link.SourceQuantity.Unit.OffSetToSI; + double aTarget = link.TargetQuantity.Unit.ConversionFactorToSI; + double bTarget = link.TargetQuantity.Unit.OffSetToSI; + + if (aSource != aTarget || bSource != bTarget) + { + if (values is IScalarSet) + { + double[] x = new double[values.Count]; + + for (int i = 0; i < values.Count; i++) + { + x[i] = (((IScalarSet)values).GetScalar(i) * aSource + bSource - bTarget) / aTarget; + } + + return new ScalarSet(x); + } + else if (values is IVectorSet) + { + ArrayList vectors = new ArrayList(); + + for (int i = 0; i < values.Count; i++) + { + double x = (((IVectorSet)values).GetVector(i).XComponent * aSource + bSource - bTarget) / aTarget; + double y = (((IVectorSet)values).GetVector(i).YComponent * aSource + bSource - bTarget) / aTarget; + double z = (((IVectorSet)values).GetVector(i).ZComponent * aSource + bSource - bTarget) / aTarget; + + Vector newVector = new Vector(x, y, z); + vectors.Add(newVector); + } + + return new VectorSet((Vector[])vectors.ToArray(typeof(Vector))); + } + else + { + throw new Exception("Type " + values.GetType().FullName + " not suppported for unit conversion"); + } + } + + return values; + } + + + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Source/DbReader.csproj b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Source/DbReader.csproj new file mode 100644 index 00000000..de49a332 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Source/DbReader.csproj @@ -0,0 +1,134 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {F7FC143A-18E5-428A-B79F-FC20BFFE6266} + Library + Properties + DbReader + DbReader + v4.0 + 512 + + + + + 3.5 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\..\..\Binaries\HydroDesktop.Configuration.dll + True + + + False + ..\..\..\..\..\..\Binaries\HydroDesktop.Data.dll + True + + + False + ..\..\..\..\..\..\Binaries\HydroDesktop.Interfaces.dll + True + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Buffer.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Spatial.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + True + + + + 3.5 + + + + 3.5 + + + 3.5 + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Source/DbReader.omi b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Source/DbReader.omi new file mode 100644 index 00000000..30a951f9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Source/DbReader.omi @@ -0,0 +1,6 @@ + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Source/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Source/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..31edd03b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Source/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("DbReader")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("DbReader")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a642aab7-8e9e-4973-a12b-a726831ba60c")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..d0e4edd1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Test/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("Test")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("37d40070-06b5-4fc8-8b38-80ed98ea01e4")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Test/Test.cs b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Test/Test.cs new file mode 100644 index 00000000..9d7591c8 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Test/Test.cs @@ -0,0 +1,318 @@ +using System; +using System.Collections.Generic; +using System.Text; +using NUnit.Framework; +using CUAHSI.HIS; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Gui.Core; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Buffer; +using System.Collections; +using System.Windows.Forms; + +namespace CUAHSI.HIS.Test +{ + [TestFixture] + public class HISOpenMIComponentTests + { + [Test] + public void GetComponentDescription() + { + Console.Write("Begin Get Component Description Test..."); + DbReader his = new DbReader(); + IArgument[] arguments = new IArgument[1]; + arguments[0] = new Argument("DbPath", @".\ActualData4.db", true, "Database"); + his.Initialize(arguments); + + Console.WriteLine("component description: " + his.ComponentDescription); + } + + [Test] + public void GetModelDescription() + { + Console.Write("Begin Get Model Description Test..."); + DbReader his = new DbReader(); + IArgument[] arguments = new IArgument[1]; + arguments[0] = new Argument("DbPath", @"..\data\cuahsi-his\demo.db", true, "Database"); + his.Initialize(arguments); + + Console.WriteLine("model description: " + his.ModelDescription); + } + + /// + /// This method tests hydrolinks ability get values + /// + [Test] + public void GetValues() + { + Console.Write("Begin Get Values Test..."); + //create the his component + DbReader his = new DbReader(); + IArgument[] arguments = new IArgument[2]; + arguments[0] = new Argument("DbPath", @"..\data\cuahsi-his\demo.db", true, "Database"); + arguments[1] = new Argument("Relaxation", "1", true, "Time interpolation factor, btwn 0(linear inter.) and 1(nearest neigbor)"); + his.Initialize(arguments); + + //create a trigger component + Trigger trigger = new Trigger(); + trigger.Initialize(null); + + //link the two components + Link link = new Link(); + link.ID = "link-1"; + link.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + link.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + link.TargetComponent = trigger; + link.SourceElementSet = his.GetOutputExchangeItem(0).ElementSet; + link.SourceQuantity = his.GetOutputExchangeItem(0).Quantity; + link.TargetComponent = his; + + //run configuration + his.AddLink(link); + + //prepare + his.Prepare(); + + DateTime dt = Convert.ToDateTime("2009-08-20"); + + while (dt <= Convert.ToDateTime("2009-09-20")) + { + ITimeStamp time_stmp = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(dt)); + Application.DoEvents(); + ScalarSet scalarset = (ScalarSet)his.GetValues(time_stmp, "link-1"); + Console.WriteLine("GetValues: " + dt.ToString("s")); + int i = 0; + foreach (double d in scalarset.data) + { + Console.WriteLine(link.SourceElementSet.GetElementID(i).ToString() + " " + d.ToString()); + ++i; + } + dt = dt.AddMinutes(5); + } + Console.Write("done. \n"); + } + + /// + /// This method tests hydrolinks ability to construct a time horizon by reading the waterml database + /// + [Test] + public void GetTimeHorizon() + { + Console.WriteLine("Begin Get Time Horizon Test..."); + //create the his component + DbReader his = new DbReader(); + IArgument[] arguments = new IArgument[1]; + arguments[0] = new Argument("DbPath", @"..\data\cuahsi-his\demo.db", true, "Database"); + his.Initialize(arguments); + + //get earliest and latest times + Console.WriteLine("start: " + CalendarConverter.ModifiedJulian2Gregorian(his.TimeHorizon.Start.ModifiedJulianDay).ToString()); + Console.WriteLine("end: " + CalendarConverter.ModifiedJulian2Gregorian(his.TimeHorizon.End.ModifiedJulianDay).ToString()); + } + + /// + /// This method tests Hydrolinks ability to read elements from the waterml database + /// + [Test] + public void GetElements() + { + Console.Write("Begin Get Elemtents Test..."); + DbReader his = new DbReader(); + IArgument[] arguments = new IArgument[1]; + arguments[0] = new Argument("DbPath", @"..\data\cuahsi-his\demo.db", true, "Database"); + his.Initialize(arguments); + for (int i = 0; i < his.OutputExchangeItemCount; ++i) + { + IElementSet es = his.GetOutputExchangeItem(i).ElementSet; + for (int j = 0; j < es.ElementCount; ++j) + { + Console.WriteLine(es.GetXCoordinate(j, 0).ToString() + ", " + + es.GetYCoordinate(j, 0).ToString()); + } + } + Console.WriteLine("model description: " + his.ModelDescription); + + } + + + + /// + /// This method tests the implementation of the linear interpolation algorithm (part of the smart + /// buffer) within Hydrolink. Values are added to the smart buffer in 10min intervals, then are + /// requested at 5min intervals. + /// + [Test] + public void LinearTimeInterpolation() + { + Console.Write("Begin Linear Interpolation Test..."); + + //create the his component + DbReader his = new DbReader(); + IArgument[] arguments = new IArgument[1]; + arguments[0] = new Argument("DbPath", @"..\data\cuahsi-his\demo.db", true, "Database"); + his.Initialize(arguments); + + //create a trigger component + Trigger trigger = new Trigger(); + trigger.Initialize(null); + + //link the two components + Link link = new Link(); + link.ID = "link-1"; + link.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + link.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + link.TargetComponent = trigger; + + + link.SourceElementSet = his.GetOutputExchangeItem(1).ElementSet; + link.SourceQuantity = his.GetOutputExchangeItem(1).Quantity; + link.TargetComponent = his; + + + //Spatial interpolation + IDataOperation dataOp = (his).GetOutputExchangeItem(0).GetDataOperation(7); + link.AddDataOperation(dataOp); + + + //run configuration + his.AddLink(link); + + trigger.Validate(); + his.Validate(); + + //prepare + his.Prepare(); + + DateTime dt = Convert.ToDateTime("2009-08-20T21:40:00"); + + SmartBuffer _smartBuffer = new SmartBuffer(); + + //Add all values to buffer in 10min intervals + Console.Write("Storing values in the smart buffer (10min resolution)... "); + while (dt <= Convert.ToDateTime("2009-08-21T02:00:00")) + { + + ITimeStamp time_stmp = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(dt)); + ScalarSet scalarset = (ScalarSet)his.GetValues(time_stmp, "link-1"); + + if (scalarset.Count == 0) + { + int f = his.GetOutputExchangeItem(1).ElementSet.ElementCount; + ArrayList zeroArray = new ArrayList(); + for (int i = 0; i <= f - 1; i++) + zeroArray.Add(0.0); + + double[] zeros = (double[])zeroArray.ToArray(typeof(double)); + + scalarset = new ScalarSet(zeros); + } + + _smartBuffer.AddValues(time_stmp, scalarset); + + dt = dt.AddMinutes(10); + } + Console.WriteLine("done.\n\n"); + + //request values from the smart buffer at 5min intervals + dt = Convert.ToDateTime("2009-08-20T21:40:00"); + while (dt <= Convert.ToDateTime("2009-08-21T02:00:00")) + { + + ITimeStamp time_stmp = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(dt)); + + //Get values at requested time + ScalarSet scalarset = (ScalarSet)_smartBuffer.GetValues(time_stmp); + + Console.WriteLine("GetValues: " + dt.ToString("s")); + + + //loop through interpolated values + int i = 0; + foreach (double d in scalarset.data) + { + + Console.WriteLine(link.SourceElementSet.GetElementID(i).ToString() + " " + d.ToString()); + ++i; + } + dt = dt.AddMinutes(5); + } + + Console.Write("done. \n"); + } + + [Test] + public void buildExchangeItemFromTheme() + { + Console.Write("Begin BuildExchangeItemFromTheme Test..."); + //create the his component + DbReader his = new DbReader(); + IArgument[] arguments = new IArgument[2]; + arguments[0] = new Argument("DbPath", @"../../../../../Databases/MyDataRepository.sqlite", true, "Database"); + arguments[1] = new Argument("Relaxation", "1", true, "Time interpolation factor, btwn 0(linear inter.) and 1(nearest neigbor)"); + his.Initialize(arguments); + Console.Write("BuildExchangeItemFromTheme Finished Successfully."); + } + + [Test] + public void DataConversion() + { + Console.Write("Begin Data Conversion Test..."); + //create the his component + DbReader his = new DbReader(); + IArgument[] arguments = new IArgument[2]; + arguments[0] = new Argument("DbPath", @"../../../../../Databases/MyDataRepository.sqlite", true, "Database"); + arguments[1] = new Argument("Relaxation", "1", true, "Time interpolation factor, btwn 0(linear inter.) and 1(nearest neigbor)"); + his.Initialize(arguments); + + //create a trigger component + Trigger trigger = new Trigger(); + trigger.Initialize(null); + + // + //-- Test Transfer from ft3/s to m3/s + // + int item=0; + for (int i = 0; i <= his.OutputExchangeItemCount - 1; i++) + { + string quantity = his.GetOutputExchangeItem(i).Quantity.ID; + string elementset = his.GetOutputExchangeItem(i).ElementSet.ID; + if (quantity == "Discharge" && elementset == "Gills Creek Discharge") + { + item = i; + break; + } + } + + //link the two components + Link link = new Link(); + link.ID = "link-1"; + link.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + link.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + link.TargetComponent = trigger; + link.SourceElementSet = his.GetOutputExchangeItem(item).ElementSet; + link.SourceQuantity = his.GetOutputExchangeItem(item).Quantity; + link.TargetComponent = his; + his.AddLink(link); + his.Prepare(); + + DateTime dt = Convert.ToDateTime("2009-09-07 00:00:00"); + + while (dt <= Convert.ToDateTime("2010-09-06 00:00:00")) + { + ITimeStamp time_stmp = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(dt)); + Application.DoEvents(); + ScalarSet scalarset = (ScalarSet)his.GetValues(time_stmp, "link-1"); + Console.WriteLine("GetValues: " + dt.ToString("s")); + int i = 0; + foreach (double d in scalarset.data) + { + Console.WriteLine(link.SourceElementSet.GetElementID(i).ToString() + " " + d.ToString()); + ++i; + } + dt = dt.AddDays(1); + } + Console.Write("done. \n"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Test/Test.csproj b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Test/Test.csproj new file mode 100644 index 00000000..f486c5cd --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbReader/Test/Test.csproj @@ -0,0 +1,138 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {3586DE30-15AE-4DAD-9557-A98B236CA454} + Library + Properties + Test + Test + v4.0 + 512 + + + + + 3.5 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\..\..\Binaries\HydroDesktop.Data.dll + False + + + False + ..\..\..\Utilities\NUnit\nunit.framework.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Gui.Core.dll + False + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Backbone.dll + False + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Buffer.dll + False + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + False + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + False + + + + 3.5 + + + + 3.5 + + + 3.5 + + + + + + + + + + + {F7FC143A-18E5-428A-B79F-FC20BFFE6266} + DbReader + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/DbWriter.sln b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/DbWriter.sln new file mode 100644 index 00000000..db2ab2ba --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/DbWriter.sln @@ -0,0 +1,32 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbWriter", "Source\DbWriter.csproj", "{1CBE4440-985E-405B-BFBE-01F0E26AD2C5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.csproj", "{F250DC82-49AC-4CD3-BCD4-63AB6F7D577D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbReader", "..\DbReader\Source\DbReader.csproj", "{F7FC143A-18E5-428A-B79F-FC20BFFE6266}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Release|Any CPU.Build.0 = Release|Any CPU + {F250DC82-49AC-4CD3-BCD4-63AB6F7D577D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F250DC82-49AC-4CD3-BCD4-63AB6F7D577D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F250DC82-49AC-4CD3-BCD4-63AB6F7D577D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F250DC82-49AC-4CD3-BCD4-63AB6F7D577D}.Release|Any CPU.Build.0 = Release|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Source/DbWriter.cs b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Source/DbWriter.cs new file mode 100644 index 00000000..53783109 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Source/DbWriter.cs @@ -0,0 +1,878 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Spatial; +using Oatc.OpenMI.Sdk.Wrapper; +using Oatc.OpenMI.Sdk.Buffer; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.Database; +using System.IO; +using SharpMap.Geometries; +using System.Data.SqlClient; +using HydroDesktop.Interfaces; +using HydroDesktop.Configuration; + +namespace CUAHSI.HIS +{ + public class DbWriter : ILinkableComponent, IListener + { + + private Dictionary _links + = new Dictionary(); + private List _inputExchangeItems + = new List(); + private List _outputExchangeItems + = new List(); + private double _earliestInputTime; + private double _latestInputTime; + private string _dbPath; + private SmartBuffer _smartBuffer = new SmartBuffer(); + //private string _fullPath; //path to the .dll + public Dictionary serieses = new Dictionary(); + public Dictionary themes = new Dictionary(); + public Dictionary dataSeries = new Dictionary(); + string conn = null; + double _ignore = -999; + int new_series_count = 0; + public Dictionary dbargs; + public Dictionary series2link; + private Dictionary> _timestep = new Dictionary>(); + + private bool getStartTime = true; + private double _start = 0; + + //private DbOperations _db; + + #region ILinkableComponent Members + + /// + /// This method is called when links are created by the component + /// + /// OpenMI link object + public void AddLink(ILink link) + { + //subscribe to events + ILinkableComponent LC = link.SourceComponent; + for (int i = 0; i < GetAcceptedEventTypeCount(); i++) + { + EventType ev = GetAcceptedEventType(i); + LC.Subscribe(this, ev); + } + + //build HD data model object to store time-series + CreateSeries(link); + + //store the link for future reference + _links.Add(link.ID, link); + + // create timestep list + //_timestep.Add(link.ID, new List()); + } + + /// + /// Returns the description of the component + /// + public string ComponentDescription + { + get { return "DbWriter 1.0"; } + } + + /// + /// Returns the components id + /// + public string ComponentID + { + get { return "DbWriter"; } + } + + /// + /// not implemented + /// + public void Dispose() + { + + } + + /// + /// Returns the earliest need time to execute calculation. This is used to remove "old" values from memory during simulation + /// + public ITimeStamp EarliestInputTime + { + get { return new TimeStamp(_earliestInputTime); } + } + + /// + /// Writes HD time series data object to the data repository + /// + public void Finish() + { + //check to see if the database path is overridden + var db = conn != null + ? RepositoryFactory.Instance.Get(DatabaseTypes.SQLite, conn) + : RepositoryFactory.Instance.Get(); + + //write each series to the database + foreach (Series series in serieses.Values) + { + + //-- get the theme + Theme theme = series.ThemeList[0]; + + //-- need to adjust the series values back by one time step + Dictionary new_data = new Dictionary(); + + + // determine the timestep using the first two values (assumes uniform timstep) + double timestep = _timestep[theme.Name][1].Subtract(_timestep[theme.Name][0]).TotalSeconds; + + // change the data value times back 1 time step + // this is necessary b/c each model advances it's time before dbwriter gets the data + for (int i = 0; i <= series.ValueCount - 1; i++) + { + + // subtract 1 for the timestep advancement + // subtract 1 for the 1-timestep delay that OpenMI creates + series.DataValueList[i].DateTimeUTC = series.DataValueList[i].DateTimeUTC.AddSeconds(-2*timestep); + series.DataValueList[i].LocalDateTime = series.DataValueList[i].LocalDateTime.AddSeconds(-2*timestep); + + // remove data value if less than start + if (series.DataValueList[i].LocalDateTime < CalendarConverter.ModifiedJulian2Gregorian(_start).AddSeconds(-timestep)) + //series.DataValueList[i].Value = series.GetNoDataValue(); + series.DataValueList.RemoveAt(i); // This change was necessary b/c series.GetNoDataValue() was removed + } + + //-- save data series + //db.SaveSeriesAsCopy(series, theme); + db.SaveSeries(series, theme,OverwriteOptions.Copy); //This change was necessary b/c db.SaveSeriesAsCopy() was removed + + } + + //clear all values in the buffer + _smartBuffer.Clear(this.TimeHorizon); + } + + /// + /// Used to retrieve input exchange items by index + /// + /// index + /// input exchange item + public IInputExchangeItem GetInputExchangeItem(int inputExchangeItemIndex) + { + return _inputExchangeItems[inputExchangeItemIndex]; + } + + /// + /// Used to retrieve output exchange items by index + /// + /// index + /// output exchange item + public IOutputExchangeItem GetOutputExchangeItem(int outputExchangeItemIndex) + { + return _outputExchangeItems[outputExchangeItemIndex]; + } + + /// + /// Not implemented. Returns an empty data because this component should not be used to supply data to other models + /// + /// requested time + /// requested link + /// empty scalarset + public IValueSet GetValues(ITime time, string linkID) + { + return new ScalarSet(); + } + + /// + /// This method is used to construct the component + /// + /// arguments stored in the *.omi file + public void Initialize(IArgument[] properties) + { + + //extract argument(s) from OMI file + foreach (IArgument property in properties) + { + //overwrite the connection string, if one is given in the *.omi + if (property.Key == "DbPath") + _dbPath = property.Value; + + //default value for relationFactor is 1; + if (property.Key == "Relaxation") { _smartBuffer.RelaxationFactor = Convert.ToDouble(property.Value); } + if (property.Key == "IgnoreValue") { _ignore = Convert.ToDouble(property.Value); } + } + + //---- set database to default if dbpath is invalid + string fullpath = ""; + //-- first check if dbpath is null + bool pass = true; + if (String.IsNullOrWhiteSpace(_dbPath)) + pass = false; + //-- next, check that dbpath points to an actual file + else + { + //-- if relative path is given + if (!Path.IsPathRooted(_dbPath)) + { + fullpath = System.IO.Path.GetFullPath(System.IO.Directory.GetCurrentDirectory() + _dbPath); + } + //-- if absolute path + else + { + fullpath = System.IO.Path.GetFullPath(_dbPath); + } + + if (!File.Exists(fullpath)) + { + pass = false; + + //-- warn the user that the database could not be found + System.Windows.Forms.MessageBox.Show("The database supplied in DbWriter.omi could not be found. As a result the DbWriter will connect to the current HydroDesktop database." + + "\n\n--- The following database could not be found --- \n" + fullpath, + "An Error Occurred While Loading Database...", + System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); + } + } + + + //-- set the connection string + if (!pass) + conn = Settings.Instance.DataRepositoryConnectionString; + else + { + //FileInfo fi = new FileInfo(fullpath); + //conn = @"Data Source = " + fi.FullName + ";New=False;Compress=True;Version=3"; + conn = @"Data Source = " + fullpath + ";New=False;Compress=True;Version=3"; + } + + + //---- read db info provided by omi + dbargs = ReadDbArgs(properties); + + //---- create generic input and output exchange items + InputExchangeItem inExchangeItem = new InputExchangeItem(); + inExchangeItem.ElementSet = new ElementSet("any element set", "any element set", ElementType.IDBased, new Oatc.OpenMI.Sdk.Backbone.SpatialReference("1")); + inExchangeItem.Quantity = new Quantity("any quantity"); + _inputExchangeItems.Add(inExchangeItem); + + OutputExchangeItem outExchangeItem = new OutputExchangeItem(); + outExchangeItem.ElementSet = new ElementSet("dummy element set", "dummy element set", ElementType.IDBased, new Oatc.OpenMI.Sdk.Backbone.SpatialReference("1")); + outExchangeItem.Quantity = new Quantity("dummy quantity"); + _outputExchangeItems.Add(outExchangeItem); + + //---- define arbitrary start and end times + _earliestInputTime = CalendarConverter.Gregorian2ModifiedJulian(new DateTime(1900,1,1)); + _latestInputTime = CalendarConverter.Gregorian2ModifiedJulian(new DateTime(2100, 12, 31)); + + } + + /// + /// The number of input exchange items + /// + public int InputExchangeItemCount + { + get { return _inputExchangeItems.Count; } + } + + /// + /// description of the model component + /// + public string ModelDescription + { + get { return "DbWriter"; } + } + + /// + /// The id of the model. This is the name shown up in the configuration window + /// + public string ModelID + { + get { return "DbWriter"; } + } + + /// + /// number of output exchange items + /// + public int OutputExchangeItemCount + { + get { return _outputExchangeItems.Count; } + } + + /// + /// not implemented + /// + public void Prepare() + { + + } + + /// + /// This is called when a link is removed from the compostion. + /// + /// id of the link that was removed + public void RemoveLink(string linkID) + { + _links.Remove(linkID); + } + + /// + /// Defines the model time horizon + /// + public ITimeSpan TimeHorizon + { + get { return new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(_earliestInputTime), new TimeStamp(_latestInputTime)); } + } + + /// + /// Not implemented + /// + /// validation token + public string Validate() + { + return "Validate is not implemented"; + } + + #endregion + + #region IPublisher Members + + /// + /// returns all of the events that are recognized by this component + /// + /// index + /// an event + public EventType GetPublishedEventType(int providedEventTypeIndex) + { + switch (providedEventTypeIndex) + { + case 0: + return EventType.DataChanged; + case 1: + return EventType.TargetBeforeGetValuesCall; + case 2: + return EventType.SourceAfterGetValuesCall; + case 3: + return EventType.TargetBeforeGetValuesCall; + case 4: + return EventType.TargetAfterGetValuesReturn; + case 5: + return EventType.Informative; + default: + throw new Exception("Iligal index in GetPublishedEventType()"); + } + } + + /// + /// Defines the number of recognized events + /// + /// 6 + public int GetPublishedEventTypeCount() + { + return 6; + } + + /// + /// Not implemented + /// + /// the event that is sent + public void SendEvent(IEvent Event) + { + + } + + public void Subscribe(IListener listener, EventType eventType) + { + + } + + public void UnSubscribe(IListener listener, EventType eventType) + { + + } + + #endregion + + #region IListener Members + + /// + /// defines events that are accepted by this component + /// + /// index + /// an event + public EventType GetAcceptedEventType(int acceptedEventTypeIndex) + { + switch (acceptedEventTypeIndex) + { + case 0: + return EventType.DataChanged; + case 1: + return EventType.TargetBeforeGetValuesCall; + case 2: + return EventType.SourceAfterGetValuesCall; + case 3: + return EventType.TargetBeforeGetValuesCall; + case 4: + return EventType.TargetAfterGetValuesReturn; + case 5: + return EventType.Informative; + default: + throw new Exception("Iligal index in GetPublishedEventType()"); + } + } + + /// + /// the number of accepted events + /// + /// 6 + public int GetAcceptedEventTypeCount() + { + return 6; + } + + /// + /// Defines the actions that occur every time an event is recognized + /// + /// the event that was triggered + public void OnEvent(IEvent anEvent) + { + + if (anEvent.Type == EventType.DataChanged) + { + + //get the current time + TimeStamp ts = (TimeStamp)anEvent.SimulationTime; + + // get the simulation start time + if (getStartTime) + _start = ts.ModifiedJulianDay; getStartTime = false; + + //get values + ScalarSet vals = new ScalarSet(); + Link link = new Link(); + string linkID = null; + foreach (string key in this._links.Keys) + { + link = (Link)_links[key]; + + //make sure it gets values from the link that sent the event + if(link.TargetComponent == this && link.SourceComponent.ModelID == anEvent.Sender.ModelID) + { + //define theme + string themeDescription = link.SourceElementSet.Description; + string themeName = link.SourceElementSet.ID; + Theme theme = new Theme(themeName, themeDescription); + + //save dt info for the timestep + if (!_timestep.ContainsKey(themeName)) + _timestep.Add(themeName, new List()); + if (_timestep[themeName].Count < 2) + _timestep[themeName].Add(CalendarConverter.ModifiedJulian2Gregorian(ts.ModifiedJulianDay)); + + //get link values + vals = (ScalarSet)anEvent.Sender.GetValues(ts, key); + + //save link theme + if (!themes.ContainsKey(link.ID)) + themes.Add(link.ID, theme); + + //save link id + linkID = link.SourceElementSet.ID; + + break; + } + } + + //if values are found, then store them + if (vals.data.Length > 0) + { + int j = 0; + try + { + while (j <= serieses.Count - 1) + { + //for(int k=0;k<= vals.data.Length-1;k++) + //{ + + //checks to see if the value should be ignored. This is defined in omi. + if (vals.data[j] != _ignore) + { + //get the site name + string id = link.SourceElementSet.GetElementID(j); + if (id == "") + id = link.SourceElementSet.ID+j.ToString(); + + string sql = "SELECT s.SiteName " + + "FROM Sites s " + + "INNER JOIN DataSeries ds ON s.SiteID = ds.SiteID " + + "WHERE ds.SeriesID= '" + id + "' "; + + //"ORDER BY dv.DataValue ASC"; + DbOperations _db = new DbOperations(conn, DatabaseTypes.SQLite); + System.Data.DataTable tbl = _db.LoadTable("values", sql); + + //string siteName = linkID + j.ToString(); + string siteName = null; + if (tbl.Rows.Count > 0) + siteName = tbl.Rows[0].ItemArray[0].ToString(); + else + siteName = (link.SourceElementSet.ID +"_"+ link.SourceComponent.ModelID +"_loc"+ j.ToString()).Replace(' ', '_'); + + + //check to see if series exists + if (serieses.ContainsKey(siteName)) + { + + //-- get the series + Series series = serieses[siteName]; + + //-- store the associated theme + if(!series.ThemeList.Contains(themes[link.ID])) + series.ThemeList.Add(themes[link.ID]); + + //-- save data values + series.AddDataValue(CalendarConverter.ModifiedJulian2Gregorian(ts.ModifiedJulianDay), vals.data[j]); + } + } + //} + j++; + } + } + catch (IndexOutOfRangeException) { } + } + } + } + #endregion + + /// + /// build HD data model to store time-series data + /// + /// the link that was added to the composition + public void CreateSeries(ILink link) + { + + #region Create DataModel Objects [HACK] + + //---- create variable unit + HydroDesktop.Interfaces.ObjectModel.Unit VarUnit = new HydroDesktop.Interfaces.ObjectModel.Unit(); + VarUnit.Name = link.SourceQuantity.Unit.Description; //defined by link + VarUnit.Abbreviation = link.SourceQuantity.Unit.ID; //defined by link + VarUnit.UnitsType = link.SourceQuantity.ID; //defined by link + + //---- create time unit + HydroDesktop.Interfaces.ObjectModel.Unit TimeUnit = new HydroDesktop.Interfaces.ObjectModel.Unit(); + TimeUnit.Name = "second"; //default value (cannot be changed) + TimeUnit.Abbreviation = "s"; //default value (cannot be changed) + TimeUnit.UnitsType = "Time"; //default value (cannot be changed) + + //create unit + //HydroDesktop.Interfaces.ObjectModel.Unit unit = new HydroDesktop.Interfaces.ObjectModel.Unit(); + //unit.Abbreviation = link.SourceQuantity.Unit.ID; + + //---- create method + HydroDesktop.Interfaces.ObjectModel.Method method = new Method(); + method.Link = link.SourceComponent.ModelID; + method.Link = "none"; //*default value + method.Description = link.SourceComponent.ModelDescription; //*default value + if (link.SourceComponent.ComponentDescription == null) + method.Description = "none"; + + //---- define data service info + DataServiceInfo dataservice = new DataServiceInfo(); + dataservice.Abstract = "none"; //*default value + dataservice.Citation = "none"; //*default value + dataservice.ContactEmail = "none"; //*default value + dataservice.ContactName = "none"; //*default value + dataservice.EastLongitude = -999; //*default value + dataservice.HarveDateTime = DateTime.Now; //*default value + dataservice.Id = -999; //*default value + dataservice.NorthLatitude = -999; //*default value + dataservice.HISCentralID = -999; //*default value + dataservice.ServiceCode = "none"; //*default value + dataservice.DescriptionURL = "none"; //*default value + dataservice.EndpointURL = "none"; //*default value + dataservice.ServiceName = "none"; //*default value + dataservice.Protocol = "none"; //*default value + dataservice.ServiceTitle = "none"; //*default value + dataservice.ServiceType = "none"; //*default value + dataservice.Version = -999; //*default value + dataservice.SiteCount = link.SourceElementSet.ElementCount; //defined by link + + //---- create metadata + ISOMetadata meta = new ISOMetadata(); + meta.Abstract = "none"; //*default value + meta.Id = -999; //*default value + meta.ProfileVersion = "none"; //*default value + meta.Title = "none"; //*default value + meta.TopicCategory = "none"; //*default value + meta.MetadataLink = "none"; //*default value + + //---- create source + Source source = new Source(); + source.Organization = "University of South Carolina"; //*default value + source.Address = "300 Main St."; //*default value + source.Citation = "none"; //*default value + source.City = "Columbia"; //*default value + source.ContactName = "none"; //*default value + source.Description = "none"; //*default value + source.Email = "none"; //*default value + source.Id = -999; //*default value + source.Link = "none"; //*default value + source.OriginId = -999; //*default value + source.Phone = "none"; //*default value + source.State = "SC"; //*default value + source.ZipCode = 29206; //*default value + source.ISOMetadata = meta; + + //---- create variable + Variable variable = new Variable(); + variable.Code = link.SourceQuantity.Description; //defined by link + variable.Name = link.SourceQuantity.ID; //defined by link + variable.VariableUnit = VarUnit; //defined by link + variable.TimeUnit = TimeUnit; //defined by link + variable.Speciation = "H20"; //*default value + variable.GeneralCategory = "Hydrology"; //*default value + variable.NoDataValue = -999; //*default value + variable.SampleMedium = "Surface Water"; //*default value + variable.TimeSupport = 1; //TODO: determine in finish + variable.VocabularyPrefix = "none"; //*default value + variable.ValueType = "Model Simulation Result"; //*default value + variable.DataType = "Incremental"; //*default value + + //---- create qualControl + QualityControlLevel qualControl = new QualityControlLevel(); + qualControl.Code = "qual1"; //*default value + qualControl.Definition = "Quality control level 1"; //*default value + qualControl.Id = 1; //*default value + qualControl.Explanation = "unknown"; //*default value + qualControl.OriginId = -999; //*default value + + #endregion + + + #region Build Sites + + //RepositoryManagerSQL db = null; + + //check to see if the database path is overridden + if (conn != null) + { + // db = new RepositoryManagerSQL(DatabaseTypes.SQLite, conn); + } + else + { + //db = new RepositoryManagerSQL(DatabaseTypes.SQLite, Settings.Instance.DataRepositoryConnectionString); + //conn = Settings.Instance.DataRepositoryConnectionString; + } + + //---- override default db info with those provided by omi + //-- standard omi args + if (dbargs.ContainsKey("Method.Description")) { method.Description = dbargs["Method.Description"];} + if (dbargs.ContainsKey("Source.Organization")) { source.Organization = dbargs["Source.Organization"]; } + if (dbargs.ContainsKey("Source.Address")) { source.Address = dbargs["Source.Address"]; } + if (dbargs.ContainsKey("Source.City")) { source.City = dbargs["Source.City"]; } + if (dbargs.ContainsKey("Source.State")) { source.State = dbargs["Source.State"]; } + if (dbargs.ContainsKey("Source.Zip")) { source.ZipCode = Convert.ToInt32(dbargs["Source.Zip"]); } + if (dbargs.ContainsKey("Source.Contact")) { source.ContactName = dbargs["Source.Contact"]; } + if (dbargs.ContainsKey("Variable.Category")) { variable.GeneralCategory = dbargs["Variable.Category"]; } + if (dbargs.ContainsKey("Variable.SampleMedium")) { variable.SampleMedium = dbargs["Variable.SampleMedium"];} + + //-extra omi args + if (dbargs.ContainsKey("Method.Link")) { method.Link = dbargs["Method.Link"]; } + if (dbargs.ContainsKey("DataService.Abstract")) { dataservice.Abstract = dbargs["DataService.Abstract"]; } + if (dbargs.ContainsKey("DataService.Citation")) { dataservice.Citation = dbargs["DataService.Citation"]; } + if (dbargs.ContainsKey("DataService.ContactEmail")) { dataservice.ContactEmail = dbargs["DataService.ContactEmail"]; } + if (dbargs.ContainsKey("DataService.ContactName")) { dataservice.ContactName = dbargs["DataService.ContactName"]; } + if (dbargs.ContainsKey("DataService.EastLongitude")) { dataservice.EastLongitude = Convert.ToDouble(dbargs["DataService.EastLongitude"]); } + if (dbargs.ContainsKey("DataService.HarveDateTime")) { dataservice.HarveDateTime = Convert.ToDateTime(dbargs["DataService.HarveDateTime"]); } + if (dbargs.ContainsKey("DataService.ID")) { dataservice.Id = Convert.ToInt64(dbargs["DataService.ID"]); } + if (dbargs.ContainsKey("DataService.NorthLatitude")) { dataservice.NorthLatitude = Convert.ToDouble(dbargs["DataService.NorthLatitude"]); } + if (dbargs.ContainsKey("DataService.HISCentralID")) { dataservice.HISCentralID = Convert.ToInt32(dbargs["DataService.HISCentralID"]); } + if (dbargs.ContainsKey("DataService.ServiceCode")) { dataservice.ServiceCode = dbargs["DataService.ServiceCode"]; } + if (dbargs.ContainsKey("DataService.DescriptionURL")) { dataservice.DescriptionURL = dbargs["DataService.DescriptionURL"]; } + if (dbargs.ContainsKey("DataService.EndpointURL")) { dataservice.EndpointURL = dbargs["DataService.EndpointURL"]; } + if (dbargs.ContainsKey("DataService.ServiceName")) { dataservice.ServiceName = dbargs["DataService.ServiceName"]; } + if (dbargs.ContainsKey("DataService.Protocol")) { dataservice.Protocol = dbargs["DataService.Protocol"]; } + if (dbargs.ContainsKey("DataService.ServiceTitle")) { dataservice.ServiceTitle = dbargs["DataService.ServiceTitle"]; } + if (dbargs.ContainsKey("DataService.ServiceType")) { dataservice.ServiceType = dbargs["DataService.ServiceType"]; } + if (dbargs.ContainsKey("DataService.Version")) { dataservice.Version = Convert.ToDouble(dbargs["DataService.Version"]); } + + if (dbargs.ContainsKey("ISOMetadata.Abstract")) { meta.Abstract = dbargs["ISOMetadata.Abstract"]; } + if (dbargs.ContainsKey("ISOMetadata.ID")) { meta.Id = Convert.ToInt64(dbargs["ISOMetadata.ID"]); } + if (dbargs.ContainsKey("ISOMetadata.ProfileVersion")) { meta.ProfileVersion = dbargs["ISOMetadata.ProfileVersion"]; } + if (dbargs.ContainsKey("ISOMetadata.Title")) { meta.Title = dbargs["ISOMetadata.Title"]; } + if (dbargs.ContainsKey("ISOMetadata.TopicCategory")) { meta.TopicCategory = dbargs["ISOMetadata.TopicCategory"]; } + if (dbargs.ContainsKey("ISOMetadata.MetadataLink")) { meta.MetadataLink = dbargs["ISOMetadata.MetadataLink"]; } + + if (dbargs.ContainsKey("Source.Citation")) { source.Citation = dbargs["Source.Citation"]; } + if (dbargs.ContainsKey("Source.Description")) { source.Description = dbargs["Source.Description"]; } + if (dbargs.ContainsKey("Source.Email")) { source.Email = dbargs["Source.Email"]; } + if (dbargs.ContainsKey("Source.ID")) { source.Id = Convert.ToInt64(dbargs["Source.ID"]); } + if (dbargs.ContainsKey("Source.Link")) { source.Link = dbargs["Source.Link"]; } + if (dbargs.ContainsKey("Source.OrginID")) { source.OriginId = Convert.ToInt32(dbargs["Source.OrginID"]); } + if (dbargs.ContainsKey("Source.Phone")) { source.Phone = dbargs["Source.Phone"]; } + + if (dbargs.ContainsKey("Variable.Code")) { variable.Code = dbargs["Variable.Code"]; } + if (dbargs.ContainsKey("Variable.Name")) { variable.Name = dbargs["Variable.Name"]; } + if (dbargs.ContainsKey("Variable.Speciation")) { variable.Speciation = dbargs["Variable.Speciation"]; } + if (dbargs.ContainsKey("Variable.NoDataValue")) { variable.NoDataValue = Convert.ToDouble(dbargs["Variable.NoDataValue"]); } + if (dbargs.ContainsKey("Variable.VocabPrefix")) { variable.VocabularyPrefix = dbargs["Variable.VocabPrefix"]; } + if (dbargs.ContainsKey("Variable.ValueType")) { variable.ValueType = dbargs["Variable.ValueType"]; } + if (dbargs.ContainsKey("Variable.DataValue")) { variable.DataType = dbargs["Variable.DataValue"]; } + + if (dbargs.ContainsKey("QualityControl.Code")) { qualControl.Code = dbargs["QualityControl.Code"]; } + if (dbargs.ContainsKey("QualityControl.Definition")) { qualControl.Definition = dbargs["QualityControl.Definition"]; } + if (dbargs.ContainsKey("QualityControl.ID")) { qualControl.Id = Convert.ToInt64(dbargs["QualityControl.ID"]); } + if (dbargs.ContainsKey("QualityControl.Explanation")) { qualControl.Explanation = dbargs["QualityControl.Explanation"]; } + if (dbargs.ContainsKey("QualityControl.OriginId")) { qualControl.OriginId = Convert.ToInt32(dbargs["QualityControl.OriginId"]); } + + #region create sites + Dictionary sites = new Dictionary(); + + //loop through all elements in the source components element set + for (int i = 0; i < link.SourceElementSet.ElementCount; ++i) + { + //TODO: Get spatial reference from elementset + //---- define spatial reference + HydroDesktop.Interfaces.ObjectModel.SpatialReference spatial = new HydroDesktop.Interfaces.ObjectModel.SpatialReference(); + spatial.Id = 18; //* + spatial.Notes = "NAD27-UTM zone 17N projected coordinate"; //* + spatial.SRSID = 26717; //* + spatial.SRSName = "NAD27 / UTM zone 17N"; //* + + //--- create site --- + Site site = new Site(); + + //create a unique site name [variable_model_location] + site.Name = (link.SourceElementSet.ID + "_" + link.SourceComponent.ModelID + "_loc" + i.ToString()).Replace(' ', '_'); + + //check if a sitename already exists in the repository + string sql = "SELECT s.SiteCode, s.SiteID " + + "FROM Sites s " + + "WHERE s.SiteName= '" + site.Name + "' "; + + DbOperations _db = new DbOperations(conn, DatabaseTypes.SQLite); + System.Data.DataTable tbl = _db.LoadTable("values", sql); + + if (tbl.Rows.Count > 0) + { + site.Code = tbl.Rows[0].ItemArray[0].ToString(); + site.Id = Convert.ToInt32(tbl.Rows[0].ItemArray[1]); + } + else + { + //create a new site + sql = "SELECT s.SiteCode, s.SiteID FROM Sites s "; + + _db = new DbOperations(conn, DatabaseTypes.SQLite); + tbl = _db.LoadTable("values", sql); + int last_row = tbl.Rows.Count - 1; + + site.Code = site.Name; + //-- if the database is not blank + if (last_row >= 0) + { + site.Id = Convert.ToInt32(tbl.Rows[last_row].ItemArray[1]) + 2 + new_series_count; + } + else + site.Id = new_series_count++; + + //add 1 to new series count so that the same site code isn't selected twice + new_series_count++; + } + + site.SpatialReference = spatial; + site.Comments = "none"; + site.County = "none"; + site.Elevation_m = -999; + site.Latitude = -999; + site.LocalProjection = spatial; + site.LocalX = -999; + site.LocalY = -999; + site.Longitude = -999; + + + //--- Attempt to spatially define elements 7-15-2010 --- + try + { + + //save site latitude and longitude + if (link.SourceElementSet.ElementType == ElementType.XYPoint) + { + site.Latitude = link.SourceElementSet.GetYCoordinate(i, 0); + site.Longitude = link.SourceElementSet.GetXCoordinate(i, 0); + site.LocalX = 0; + site.LocalY = 0; + } + else + { + ////List points = new List(); + ////for(int p=0; p<= link.SourceElementSet.GetVertexCount(i)-1; p++) + ////{ + //// Point point = new Point(link.SourceElementSet.GetXCoordinate(i, p), + //// link.SourceElementSet.GetYCoordinate(i, p)); + + //// points.Add(point); + ////} + //////create polyline + ////LineString ls = new LineString(points); + + ////new SharpMap.CoordinateSystems.ProjectedCoordinateSystem() + ////ls.SpatialReference = + + site.Latitude = link.SourceElementSet.GetYCoordinate(i, 0); + site.Longitude = link.SourceElementSet.GetXCoordinate(i, 0); + + //link.SourceElementSet.SpatialReference.ID; + site.LocalX = 0; + site.LocalY = 0; + + + + } + } + catch (Exception) { } + + + site.NetworkPrefix = "none"; + site.PosAccuracy_m = -999; + site.State = "SC"; //* + + //site.TimeZone = new TimeZoneInfo.TransitionTime(); + + site.VerticalDatum = "unknown"; //* + + if (!sites.ContainsKey(site.Id)) + { + //add site and series to dictionary if they don't already exist + sites.Add(site.Id, site); + Series series = new Series(site, variable, method, qualControl, source); + series.Id = i; + if (!serieses.ContainsKey(site.Name)) { serieses.Add(site.Name, series); } + //else{serieses.Add(site.Name, series);} + + } + } + #endregion + + #endregion + + } + + public Dictionary ReadDbArgs(IArgument[] arguments) + { + //---- enumerate over arguments + var e = arguments.AsEnumerable(); + Dictionary dict = new Dictionary(); + + //---- store each argument in a dictionary + foreach (object obj in e) + if (!String.IsNullOrWhiteSpace(((Argument)obj).Value)) //ignore missing values + dict.Add(((Argument)obj).Key, ((Argument)obj).Value); + + return dict; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Source/DbWriter.csproj b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Source/DbWriter.csproj new file mode 100644 index 00000000..25690c9c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Source/DbWriter.csproj @@ -0,0 +1,106 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5} + Library + Properties + DbWriter + DbWriter + v4.0 + 512 + + + + + 3.5 + Client + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + AnyCPU + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\..\..\Binaries\HydroDesktop.Configuration.dll + False + + + False + ..\..\..\..\..\..\Binaries\HydroDesktop.Data.dll + False + + + False + ..\..\..\..\..\..\Binaries\HydroDesktop.Interfaces.dll + False + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Buffer.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Spatial.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + False + + + False + ..\..\..\Utilities\SharpMap\SharpMap.dll + + + + 3.5 + + + + 3.5 + + + 3.5 + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Source/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Source/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..e4ae0d07 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Source/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("DbWriter")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("DbWriter")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("586b48d7-0a54-497d-a230-baa56d4b0455")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("2.0.0.0")] +[assembly: AssemblyFileVersion("2.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Test/Data/DbWriter.omi b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Test/Data/DbWriter.omi new file mode 100644 index 00000000..5df26553 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Test/Data/DbWriter.omi @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..e0488487 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Test/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("Test")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("bb4c3e48-40e8-4c08-a254-f03733164f4a")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Test/Test.cs b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Test/Test.cs new file mode 100644 index 00000000..6ee8928a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Test/Test.cs @@ -0,0 +1,203 @@ +using System; +using System.Collections.Generic; +using System.Text; +using NUnit.Framework; +using CUAHSI.HIS; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Gui.Core; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Buffer; +using System.Collections; +using System.Windows.Forms; +using RandomInputGenerator; + +namespace CUAHSI.HIS.Test +{ + [TestFixture] + public class HISOpenMIComponentTests + { + [Test] + public void GetComponentDescription() + { + Console.Write("Begin Get Component Description Test..."); + DbWriter his = new DbWriter(); + IArgument[] arguments = new IArgument[1]; + arguments[0] = new Argument("DbPath", @"..\data\cuahsi-his\demo.db", true, "Database"); + his.Initialize(arguments); + + Console.WriteLine("component description: " + his.ComponentDescription); + } + + [Test] + public void GetModelDescription() + { + Console.Write("Begin Get Model Description Test..."); + DbWriter his = new DbWriter(); + IArgument[] arguments = new IArgument[1]; + arguments[0] = new Argument("DbPath", @"..\data\cuahsi-his\demo.db", true, "Database"); + his.Initialize(arguments); + + Console.WriteLine("model description: " + his.ModelDescription); + } + + /// + /// This method tests hydrolinks ability get values + /// + [Test] + public void GetValues() + { + //Console.Write("Begin Get Values Test..."); + ////create the his component + //DbWriter dbwriter = new DbWriter(); + //IArgument[] arguments = new IArgument[2]; + //arguments[0] = new Argument("DbPath", @"..\data\cuahsi-his\demo.db", true, "Database"); + //arguments[1] = new Argument("Relaxation", "1", true, "Time interpolation factor, btwn 0(linear inter.) and 1(nearest neigbor)"); + //dbwriter.Initialize(arguments); + + //RandomInputGenerator.InputGenerator rand = new InputGenerator(); + //IArgument[] arg = new IArgument[1]; + //arg[0] = new Argument("ElementCount", "1", true, ""); + //rand.Initialize(arg); + + //////create dbreader component + ////DbReader dbreader = new DbReader(); + ////IArgument[] arguments2 = new IArgument[2]; + ////arguments2[0] = new Argument("DbPath", @"..\data\cuahsi-his\demo.db", true, "Database"); + ////arguments2[1] = new Argument("Relaxation", "1", true, "Time interpolation factor, btwn 0(linear inter.) and 1(nearest neigbor)"); + ////dbreader.Initialize(arguments2); + + ////create a trigger component + //Trigger trigger = new Trigger(); + //trigger.Initialize(null); + + ////link the components + //Link link = new Link(); + //link.ID = "link-1"; + //link.TargetElementSet = dbwriter.GetInputExchangeItem(0).ElementSet; + //link.TargetQuantity = dbwriter.GetInputExchangeItem(0).Quantity; + //link.TargetComponent = dbwriter; + //link.SourceElementSet = rand.GetOutputExchangeItem(0).ElementSet; + //link.SourceQuantity = rand.GetOutputExchangeItem(0).Quantity; + //link.SourceComponent = rand; + //dbwriter.AddLink(link); + //Link link2 = new Link(); + //link2.ID = "link-2"; + //link2.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + //link2.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + //link2.TargetComponent = trigger; + //link2.SourceElementSet = rand.GetOutputExchangeItem(0).ElementSet; + //link2.SourceQuantity = rand.GetOutputExchangeItem(0).Quantity; + //link2.SourceComponent = dbwriter; + //dbwriter.AddLink(link2); + + ////prepare + //rand.Prepare(); + //dbwriter.Prepare(); + + //DateTime dt = Convert.ToDateTime("2009-08-20"); + + //while (dt <= Convert.ToDateTime("2009-08-21")) + //{ + // Application.DoEvents(); + // ITimeStamp time_stmp = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(dt)); + // ScalarSet scalarset = (ScalarSet)trigger.GetValues(time_stmp, "link-2"); + // Console.WriteLine("GetValues: " + dt.ToString("s")); + // int i = 0; + // foreach (double d in scalarset.data) + // { + // Console.WriteLine(link.SourceElementSet.GetElementID(i).ToString() + " " + d.ToString()); + // ++i; + // } + // dt = dt.AddMinutes(5); + //} + //dbwriter.Finish(); + //Console.Write("done. \n"); + } + + /// + /// This method tests hydrolinks ability to construct a time horizon by reading the waterml database + /// + [Test] + public void GetTimeHorizon() + { + Console.WriteLine("Begin Get Time Horizon Test..."); + //create the his component + DbWriter his = new DbWriter(); + IArgument[] arguments = new IArgument[1]; + arguments[0] = new Argument("DbPath", @"..\data\cuahsi-his\demo.db", true, "Database"); + his.Initialize(arguments); + + //get earliest and latest times + Console.WriteLine("start: " + CalendarConverter.ModifiedJulian2Gregorian(his.TimeHorizon.Start.ModifiedJulianDay).ToString()); + Console.WriteLine("end: " + CalendarConverter.ModifiedJulian2Gregorian(his.TimeHorizon.End.ModifiedJulianDay).ToString()); + } + + [Test] + public void ReadOmiArgs() + { + DbWriter dbwriter = new DbWriter(); + RandomInputGenerator.InputGenerator random = new InputGenerator(); + + //---- initialize random input generator + IArgument[] arg = new IArgument[1]; + arg[0] = new Argument("ElementCount", "1", true, ""); + random.Initialize(arg); + + //---- initialize dbwriter + string myCustomMethod = "Simulation 1, m=10, Tmax=100000"; + string myVariableName = "millimeters per second"; + string mySourceContact = "Tony"; + string mySourceDesc = "Test dource description"; + IArgument[] arguments = new IArgument[17]; + arguments[0] = new Argument("DbPath",@".\example4.sqlite",true,""); + arguments[1] = new Argument("Variable.UnitName",myVariableName,true,""); + arguments[2] = new Argument("Variable.UnitAbbr","m^3/s",true,""); + arguments[3] = new Argument("Variable.UnitType","Flow",true,""); + arguments[4] = new Argument("Time.UnitName","second",true,""); + arguments[5] = new Argument("Time.UnitAbbr","s",true,""); + arguments[6] = new Argument("Time.UnitType","Time",true,""); + arguments[7] = new Argument("Method.Description",myCustomMethod,true,""); + arguments[8] = new Argument("Source.Organization","University of South Carolina",true,""); + arguments[9] = new Argument("Source.Address","300 Main St.",true,""); + arguments[10] = new Argument("Source.City","Columbia",true,""); + arguments[11] = new Argument("Source.State","SC",true,""); + arguments[12] = new Argument("Source.Zip","29206",true,""); + arguments[13] = new Argument("Source.Contact",mySourceContact,true,""); + arguments[14] = new Argument("Variable.Category"," ",true,""); //intentionally left blank + arguments[15] = new Argument("Variable.SampleMedium","Surface Water",true,""); + arguments[16] = new Argument("Source.Description", mySourceDesc, true, ""); + + dbwriter.Initialize(arguments); + + //---- link the components + Link link = new Link(); + link.ID = "link-1"; + link.TargetElementSet = dbwriter.GetInputExchangeItem(0).ElementSet; + link.TargetQuantity = dbwriter.GetInputExchangeItem(0).Quantity; + link.TargetComponent = dbwriter; + ElementSet eset = new ElementSet("rand element set", "r_eset", ElementType.XYPoint, new SpatialReference("1")); + Element e = new Element("1"); + e.AddVertex(new Vertex(1, 1, 0)); + eset.AddElement(e); + link.SourceElementSet = eset; + link.SourceQuantity = random.GetOutputExchangeItem(0).Quantity; + link.SourceComponent = random; + dbwriter.AddLink(link); + + //---- get the series info + HydroDesktop.Interfaces.ObjectModel.Series series = dbwriter.serieses["r_eset_RandomInputGenerator_loc0"]; + + //---- check that omi values were set properly + Assert.IsTrue(series.Method.Description == myCustomMethod); + Assert.IsTrue(series.Variable.VariableUnit.Name == myVariableName); + Assert.IsTrue(series.Source.ContactName == mySourceContact); + Assert.IsTrue(series.Variable.GeneralCategory == "Hydrology", "blank argument is not ignored!!"); + Assert.IsTrue(series.Source.Description == mySourceDesc); + + + } + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Test/Test.csproj b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Test/Test.csproj new file mode 100644 index 00000000..36c97bc9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/Test/Test.csproj @@ -0,0 +1,122 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {F250DC82-49AC-4CD3-BCD4-63AB6F7D577D} + Library + Properties + Test + Test + v4.0 + 512 + + + + + 3.5 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\Binaries\HydroDesktop.Configuration.dll + + + ..\..\..\..\..\..\Binaries\HydroDesktop.Data.dll + + + ..\..\..\..\..\..\Binaries\HydroDesktop.Interfaces.dll + + + False + ..\..\..\Utilities\NUnit\nunit.framework.dll + True + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Gui.Core.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Backbone.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Buffer.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Spatial.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\RandomInputGenerator.dll + + + + 3.5 + + + + 3.5 + + + 3.5 + + + + + + + + Code + + + + + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5} + DbWriter + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/UpgradeLog.XML b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/UpgradeLog.XML new file mode 100644 index 00000000..09373539 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DbWriter/UpgradeLog.XML @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Data/2dDiffusiveWave.omi b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Data/2dDiffusiveWave.omi new file mode 100644 index 00000000..38381718 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Data/2dDiffusiveWave.omi @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Data/2dDiffusiveWaveConfig.xml b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Data/2dDiffusiveWaveConfig.xml new file mode 100644 index 00000000..9b9003e1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Data/2dDiffusiveWaveConfig.xml @@ -0,0 +1,89 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + + 1 + + + Excess Rainfall + Excess Rainfall + + + Length + 1 + + + + in + Inches + 1 + 0 + + Scalar + + + + + SmithBranch + Smith Branch Watershed, Columbia SC + 1 + + + + Excess Rainfall + Excess Rainfall + + + 1 + Length + + + + in + inches + 1 + 0 + + Scalar + + + + + SmithBranch + Smith Branch Watershed, Columbia SC + 1 + + + + Stage + Water Stage + + + 1 + Length + + + + ft + feet + 1 + 0 + + Scalar + + + + + 08/20/2009 00:00:00 AM + 08/20/2009 12:00:00 PM + .1 + + + Diffusive Wave Routing + 2d Diffusive Wave Model + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/DiffusiveWave.csproj b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/DiffusiveWave.csproj new file mode 100644 index 00000000..dbc8267f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/DiffusiveWave.csproj @@ -0,0 +1,129 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {EB47C62A-9858-418C-BC83-0122BD082064} + Library + Properties + DiffusiveWave + DiffusiveWave + v4.0 + 512 + + + + + 3.5 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Buffer.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + False + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/DiffusiveWave.sln b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/DiffusiveWave.sln new file mode 100644 index 00000000..e0a2b6b5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/DiffusiveWave.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTest", "Test\UnitTest.csproj", "{39E2ACDB-3B4B-4097-ADA8-171FC781F03A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiffusiveWave", "DiffusiveWave.csproj", "{EB47C62A-9858-418C-BC83-0122BD082064}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {39E2ACDB-3B4B-4097-ADA8-171FC781F03A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39E2ACDB-3B4B-4097-ADA8-171FC781F03A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39E2ACDB-3B4B-4097-ADA8-171FC781F03A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39E2ACDB-3B4B-4097-ADA8-171FC781F03A}.Release|Any CPU.Build.0 = Release|Any CPU + {EB47C62A-9858-418C-BC83-0122BD082064}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB47C62A-9858-418C-BC83-0122BD082064}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB47C62A-9858-418C-BC83-0122BD082064}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB47C62A-9858-418C-BC83-0122BD082064}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..a3d1f354 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("DiffusiveWave")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("DiffusiveWave")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6f599454-9722-4a7c-a407-bd0d90c87a45")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Source/Discretization.cs b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Source/Discretization.cs new file mode 100644 index 00000000..b8374e1c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Source/Discretization.cs @@ -0,0 +1,1335 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Diagnostics; +using System.Linq; + +///////////////////////////////////////////////////////////////////// +//This file contains definitions for various discretization schemes// +///////////////////////////////////////////////////////////////////// + +namespace DiffusiveWave.Source +{ + public interface Discretization + { + void CreateStiffness(double[] stage, double[] excess, double[] h, double[] b, int option); + double[,] Sox { get; set; } + double[,] Soy { get; set; } + double Nx { get; set; } + double Ny { get; set; } + double Datum { get; set; } + double[] Head { get; set; } + double[,] A { get; set; } + double[] q { get; set; } + } + + public class Euler:Discretization + { + double _cellsize; + double _dt; + double _elementCount; + double datum; + public double nx { private get; set; } //To be replaced with _nx[,] + public double ny { private get; set; } //To be replaced with _ny[,] + //public double[,] _nx { private get; set; } + //public double[,] _ny { private get; set; } + + private double[] head; + public double[,] _sox { private get; set; } + public double[,] _soy { private get; set; } + public double[,] _elevation; + private double[,] A; + private double[] q; + private double[,] H; + double[,] Discretization.Sox + { + get + { + return _sox; + } + set + { + _sox = value; + } + } + double[,] Discretization.Soy + { + get + { + return _soy; + } + set + { + _soy = value; + } + } + double Discretization.Nx + { + get + { + return nx; + } + set + { + nx = value; + } + } + double Discretization.Ny + { + get + { + return ny; + } + set + { + ny = value; + } + } + double Discretization.Datum + { + get + { + return datum; + } + set + { + datum = value; + } + } + double[] Discretization.Head + { + get + { + return head; + } + set + { + head = value; + } + } + double[,] Discretization.A { get { return this.A; } set { this.A = value; } } + double[] Discretization.q { get { return this.q; } set { this.q = value; } } + public Euler(double cellsize, double dt, int elementCount, double[,] elevation) + { + this._cellsize = cellsize; + this._dt = dt; + this._elementCount = elementCount; + this._elevation = elevation; + this.A = new double[elementCount, elementCount]; + this.q = new double[elementCount]; + } + + /// + /// Builds Stiffness Matrix + /// + /// River Stage + /// Excess Head + /// Flow onto FloodPlain as a result of River Stage + /// Stiffness Matrix + /// Source Term + public void CreateStiffness(double[] stage, double[] excess, double[] h, double[] inflow, int option) + { + //get the number of rows and cols from Sox (assuming that Sox and Soy are of equal size) + int rows = _sox.GetLength(0); + int cols = _soy.GetLength(1); + + //define some local variables + double Cx1, Cx2, Cy1, Cy2; + double dhdx, dhdy, dh2dx2, dh2dy2; + + H = new double[rows, cols]; + + + //HACK: stage wont always exist at first element of row!!! Should instead pass this method an array, where the + // stage values have already been assigned to specific locations within the matrix. + + //BROKEN: Why does this only iterate if option = 0???? + //set head in first column equal to the known stage + //if (option == 0) + //{ + //set the current head at each node equal to the known stage plus the head calculated in the last time step + plus the known excess + for (int i = 0; i <= rows - 1; i++) + { + for (int j = 0; j <= cols - 1; j++) + { + //set the initial head equal to the elevation minus the datum + //H[i, j] = _elevation[i, j] - datum; + //add the head from the previous time step + H[i, j] = h[j + (i * cols)]; //head[j + (i * cols)]; + //H[i, j] = stage[j + (i * cols)] + head[j + (i * cols)] + excess[j + (i * cols)]; //HACK: Make sure this is correct!!!!! + + //set H equal to the head from the previous timestep + //H[i, j] = head[j + (i * cols)]; + } + } + //} + + + //create source array based on the fluxes between adjacent cells + q = CreateSource(inflow, excess); + + + //--- ---// + //--- Formulate Stiffness Matrix ---// + //--- ---// + System.IO.StreamWriter sw = new System.IO.StreamWriter("c:\\Temp\\Original.csv",true); + for (int i = 0; i <= rows - 1; i++) + { + for (int j = 0; j <= cols - 1; j++) + { + //--- Calculate the non-linear terms ---// + + //if this is the last column + if (j == cols - 1) + { + //assume that H[i,j+1] = H[i,j] - abs(H[i,j]-H[i,j-1]) to force flow out of the grid + double nextHead = H[i, j] - Math.Abs(H[i, j] - H[i, j - 1]); + dhdx = (nextHead - H[i, j - 1]) / (2 * _cellsize); + dh2dx2 = (nextHead + H[i, j - 1] - 2 * H[i, j]) / (Math.Pow(_cellsize, 2)); + //dhdx = (H[i, j] - H[i, j - 1]) / (2 * _cellsize); + //dh2dx2 = (H[i, j] + H[i, j - 1] - 2 * H[i, j]) / (Math.Pow(_cellsize, 2)); + } + //if this is the first column + else if (j == 0) + { + //assume that H[i,j-1] = H[i,j] + dhdx = (H[i, j + 1] - H[i, j]) / (2 * _cellsize); + dh2dx2 = (H[i, j + 1] + H[i, j] - 2 * H[i, j]) / (Math.Pow(_cellsize, 2)); + } + //if this is an interior column + else + { + dhdx = (H[i, j+1] - H[i, j - 1]) / (2*_cellsize); + dh2dx2 = (H[i, j+1] + H[i, j - 1] - 2*H[i, j]) / (Math.Pow(_cellsize, 2)); + } + + //if this is the last row + if (i == rows - 1) + { + //assume that H[i,j+1] = H[i,j] - abs(H[i,j]-H[i-1,j]) to force flow out of the grid + double nextHead = H[i, j] - Math.Abs(H[i, j] - H[i - 1, j]); + dhdy = (nextHead - H[i - 1, j]) / (2 * _cellsize); + dh2dy2 = (nextHead + H[i - 1, j] - 2 * H[i, j]) / (Math.Pow(_cellsize, 2)); + //dhdy = (H[i, j] - H[i - 1, j]) / (2 * _cellsize); + //dh2dy2 = (H[i, j] + H[i - 1, j] - 2 * H[i, j]) / (Math.Pow(_cellsize, 2)); + } + //if this is the first row + else if (i == 0) + { + //assume that H[i-1,j] = H[i,j] + dhdy = (H[i + 1, j] - H[i, j]) / (2 * _cellsize); + dh2dy2 = (H[i + 1, j] + H[i, j] - 2 * H[i, j]) / (Math.Pow(_cellsize, 2)); + } + //if this is an interior row + else + { + dhdy = (H[i+1, j] - H[i - 1, j]) / (2*_cellsize); + dh2dy2 = (H[i+1, j] + H[i - 1, j] - 2*H[i, j]) / (Math.Pow(_cellsize, 2)); + } + + //--- SET TERMS IN THE STIFFNESS MATRIX A[,]---// + + double XSlope, YSlope; + + //CHECK THIS!!!: Which values of XSlope and YSlope should I use? + //Using Central differences... + if (j == cols - 1) + { + //force slope out of grid by letting _elevation[i,j+1] = _elevation[i,j]-2 + double nextelev = +_elevation[i, j] - 2; + XSlope = (_elevation[i, j - 1] - nextelev) / (2 * _cellsize); + //XSlope = (_elevation[i, j - 1] - _elevation[i, j]) / (2 * _cellsize); + } + else if (j == 0) + XSlope = (_elevation[i, j] - _elevation[i, j + 1]) / (2 * _cellsize); + else + XSlope = (_elevation[i, j - 1] - _elevation[i, j + 1]) / (2 * _cellsize); + + if (i == rows - 1) + { + //force slope out of grid by letting _elevation[i+1,j] = _elevation[i,j]-2 + double nextelev = +_elevation[i, j] - 2; + YSlope = (_elevation[i - 1, j] - nextelev) / (2 * _cellsize); + //YSlope = (_elevation[i - 1, j] - _elevation[i, j]) / (2 * _cellsize); + } + else if (i == 0) + YSlope = (_elevation[i, j] - _elevation[i + 1, j]) / (2 * _cellsize); + else + YSlope = (_elevation[i - 1, j] - _elevation[i + 1, j]) / (2 * _cellsize); + + + //set (i,j) term + A[i * cols + j, i * cols + j] = 1; + + //set (i, j+1) term + if (j < cols - 1) + { + //XSlope = (_elevation[i, j] - _elevation[i, j + 1]) / _cellsize; + //dhdx = (H[i, j + 1] - H[i, j - 1]) / (2 * _cellsize); + Cx2 = (5.0 / (3.0 * nx)) * Math.Sign(XSlope) * Math.Sqrt(Math.Abs(XSlope - dhdx)) * Math.Pow(H[i, j], 2.0 / 3.0); + if (double.IsInfinity(Cx2) || double.IsNaN(Cx2)) { Cx2 = 0.0; } + int row = i * cols + j;//get the current row + int col = i * cols + j + 1;//get the next column + A[row, col] = _dt / (2 * _cellsize) * Cx2; + } + //set (i,j-1) term + if (j - 1 >= 0) + { + //XSlope = (_elevation[i, j] - _elevation[i, j - 1]) / _cellsize; + Cx2 = (5.0 / (3.0 * nx)) * Math.Sign(XSlope) * Math.Sqrt(Math.Abs(XSlope - dhdx)) * Math.Pow(H[i, j], 2.0 / 3.0); + if (double.IsInfinity(Cx2) || double.IsNaN(Cx2)) { Cx2 = 0.0; } + int row = i * cols + j;//get the current row + int col = i * cols + j - 1;//get the previous column + A[row, col] = -1 * _dt / (2 * _cellsize) * Cx2; + } + //set (i+1,j) term + if (i + 1 < rows - 1) + { + //YSlope = (_elevation[i, j] - _elevation[i + 1, j]) / _cellsize; + Cy2 = (5.0 / (3.0 * ny)) * Math.Sign(YSlope) * Math.Sqrt(Math.Abs(YSlope - dhdy)) * Math.Pow(H[i, j], 2.0 / 3.0); + if (double.IsInfinity(Cy2) || double.IsNaN(Cy2)) { Cy2 = 0.0; } + int row = i * cols + j;//get the current row + int col = i * cols + j + cols;//get the column associated with the next row (current col + number of cols in elementset) + A[row, col] = _dt / (2 * _cellsize) * Cy2; + } + //set (i-1,j) term + if (i - 1 >= 0) + { + //YSlope = (_elevation[i, j] - _elevation[i - 1, j]) / _cellsize; + Cy2 = (5.0 / (3.0 * ny)) * Math.Sign(YSlope) * Math.Sqrt(Math.Abs(YSlope - dhdy)) * Math.Pow(H[i, j], 2.0 / 3.0); + if (double.IsInfinity(Cy2) || double.IsNaN(Cy2)) { Cy2 = 0.0; } + int row = i * cols + j;//get the current row + int col = i * cols + j - cols;//get the column associated with the previous row (current col - number of cols in elementset) + A[row, col] = -1 * _dt / (2 * _cellsize) * Cy2; + } + for (int C = 0; C <= A.GetLength(1) - 1; C++) + sw.Write(A[i * cols + j, C].ToString() + ","); + sw.Write("\n"); + + Cx1 = (1.0 / (2.0 * nx)) * Math.Sign(XSlope) * Math.Pow(Math.Abs(XSlope - dhdx), -1.0 / 2.0) * dh2dx2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cy1 = (1.0 / (2.0 * ny)) * Math.Sign(YSlope) * Math.Pow(Math.Abs(YSlope - dhdy), -1.0 / 2.0) * dh2dy2 * Math.Pow(H[i, j], 2.0 / 3.0); + + + + //catch infinity and nan terms + if (double.IsInfinity(Cx1) || double.IsNaN(Cx1)) { Cx1 = 0.0; } + if (double.IsInfinity(Cy1) || double.IsNaN(Cy1)) { Cy1 = 0.0; } + + + //---SET TERMS IN THE SOURCE ARRAY ---// + //multiply the flux (populated in Create Source) by dt + q[i * cols + j] *= this._dt; + //add the previous head term + q[i * cols + j] += head[i * cols + j] * (1 - (this._dt) * Cx1 - (this._dt) * Cy1); + } + } + sw.Write("--------\n"); + sw.Close(); + } + + + /// + /// Calculates Inter-Cell flow for the Source Array + /// + /// cell flows at the current timestep + /// Source Array with Inter-Cell flows + public double[] CreateSource(double[] flows, double[] excess) + { + //TODO: + //******** + //Store data in jagged array's for better performance. + //This will also allow me to reduce the in-memory size of the data, but will require a "smarter" computing algorithm. + //******** + + //HACK: + //******** + //Should I subtract the flux from the outgoing cell??? + //******** + + //HACK: + //********* + //I think that I should be checking that the head (i.e. water height + elevation) is < 0 rather than just the elevations + //********* + + //get rows and cols + int rows = this._elevation.GetLength(0); + int cols = this._elevation.GetLength(1); + + + double[,] FLUX = new double[rows, cols]; + double[,] E = new double[rows, cols]; + double[,] Head = new double[rows, cols]; + + //convert head from previous time step into a 2d array; + for (int i = 0; i <= rows - 1; i++) + for (int j = 0; j <= cols - 1; j++) + Head[i, j] = head[i * cols + j]; + + //Create flux array as a combination of new flow and excess onto each cell + for (int i = 0; i <= rows - 1; i++) + { + for (int j = 0; j <= cols - 1; j++) + { + //create an array to hold flux + //BROKEN: I think this should be excess[i * cols + j] / _dt instead of (excess[i * cols + j] * _cellsize / _dt) + FLUX[i, j] = flows[i * cols + j] + excess[i * cols + j] / _dt;// +(Head[i, j] / _dt); + } + } + + //sort elevations descending + var sorted = from x in Enumerable.Range(0, _elevation.GetLength(0)) + from y in Enumerable.Range(0, _elevation.GetLength(1)) + select new + { + X = x, + Y = y, + Value = _elevation[x, y] + } into point + orderby point.Value descending + select point; + + //loop through the sorted indices + foreach (var index in sorted) + { + int i = (int)index.X; + int j = (int)index.Y; + + //slope for i+1 cell + if (i + 1 < rows) + { + if (Head[i, j] + _elevation[i, j] > Head[i + 1, j] + _elevation[i + 1, j]) + { + FLUX[i + 1, j] += (FLUX[i, j] / 2)/_cellsize; + FLUX[i, j] -= (FLUX[i, j] / 2) / _cellsize; + } + } + + //slope for i-1 cell + if (i - 1 >= 0) + { + + if (Head[i, j] + _elevation[i, j] > Head[i - 1, j] + _elevation[i - 1, j]) + { + FLUX[i - 1, j] += (FLUX[i, j] / 2)/_cellsize; + FLUX[i, j] -= (FLUX[i, j] / 2) / _cellsize; + } + } + + //slope for j+1 cell + if (j + 1 < cols) + { + + if (Head[i, j] + _elevation[i, j] > Head[i, j + 1] + _elevation[i, j + 1]) + { + FLUX[i, j + 1] += (FLUX[i, j] / 2) / _cellsize; + FLUX[i, j] -= (FLUX[i, j] / 2) / _cellsize; + } + } + + //slope for j-1 cell + if (j - 1 >= 0) + { + if (Head[i, j] + _elevation[i, j] > Head[i, j - 1] + _elevation[i, j - 1]) + { + FLUX[i, j - 1] += (FLUX[i, j] / 2) / _cellsize; + FLUX[i, j] -= (FLUX[i, j] / 2) / _cellsize; + } + } + } + + double[] fluxes = new double[flows.Length]; + for (int i = 0; i <= FLUX.GetLength(0) - 1; i++) + { + for (int j = 0; j <= FLUX.GetLength(1) - 1; j++) + { + fluxes[i * cols + j] = FLUX[i, j]; + } + } + return fluxes; + + #region old calc + /* + //calculate inter-cell flow + for (int i = 0; i <= rows - 1; i++) + { + for (int j = 0; j <= cols - 1; j++) + { + //get the flux from the current timestep + //double current_flux = flows[i * cols + j]; + double in_flux = 0; + + //slope for i+1 cell + if (i + 1 < rows) + { + if (H[i, j] + _elevation[i, j] < H[i + 1, j] + _elevation[i + 1, j]) + { + in_flux += FLUX[i + 1, j] / 2; + } + //if (B[i + 1, j] > 0) + //{ + + //--- + //--- From (Fiedler and Ramirez, 2000) + //---l + //add flux from river and Pe + + + + // //add inflow from known heads + // //if ((_elevation[i, j] + H[i, j]) - (_elevation[i + 1, j] + H[i + 1, j]) < 0 && H[i + 1, j] > 0) + //if (H[i, j] + _elevation[i, j] < H[i + 1, j] + _elevation[i+1, j]) + // { + // //HACK: In the future this should consider the difference in head elevations too + // //i.e.: double head_diff = (_elevation[i, j] + H[i, j]) - (_elevation[i + 1, j] + H[i + 1, j]); + + // //--- add flux from Pe and Inflow + // in_flux += FLUX[i + 1, j] / 2; + // //subtract this flux from the higher node + // //flows[(i+1) * cols + j] -= FLUX[i + 1, j] / 2; + + // //--- add flux from cell stage + // //Get the available head, assuming that all of it can flow onto the current cell + // double head_diff = H[i, j] - H[i + 1, j]; + // //convert the head difference into flux + // double head_flux = head_diff * _cellsize / _dt; + // //apply half of it to the current cell + // ////in_flux += head_flux / 2; + + // //subtract this from the higher node + // //FLUX[i + 1, j] -= head_flux / 2; + + + // //in_flux += B[i + 1, j] / _cellsize; + + // //double slope = (-1) * (_elevation[i, j] - _elevation[i + 1, j]) / _cellsize * 100; + // //double velocity = GetVelocity(slope, nx); + // //B[i, j] += ((B[i + 1, j] + _elevation[i + 1, j]) - (current_flux + _elevation[i, j])) / _cellsize * velocity; + // } + //} + } + //slope for i-1 cell + if (i - 1 >= 0) + { + + if (H[i, j] + _elevation[i, j] < H[i - 1, j] + _elevation[i - 1, j]) + { + in_flux += FLUX[i - 1, j] / 2; + } + //if (_elevation[i, j] - _elevation[i - 1, j] < 0) + //{ + //if (B[i - 1, j] > 0) + //{ + + //--- + //--- From (Fiedler and Ramirez, 2000) + //--- + //add flux from river and Pe + + //add inflow from known heads + //if ((_elevation[i, j] + H[i, j]) - (_elevation[i - 1, j] + H[i - 1, j]) < 0 && H[i - 1, j] > 0) + //if (H[i, j] + _elevation[i, j] < H[i - 1, j] + _elevation[i-1, j]) + // { + // //add flux from Pe and Inflow + // in_flux += FLUX[i - 1, j] / 2; + // //subtract this flux from the higher node + // //flows[(i-1) * cols + j] -= FLUX[i - 1, j] / 2; + + // //--- add flux from cell stage + // //Get the available head, assuming that all of it can flow onto the current cell + // double head_diff = Math.Abs(H[i, j] - H[i - 1, j]); + // //convert the head difference into flux + // double head_flux = head_diff * _cellsize / _dt; + // //apply half of it to the current cell + // ////in_flux += head_flux / 2; + + // //subtract this from the higher node + // //FLUX[i - 1, j] -= head_flux / 2; + + + // //in_flux += B[i - 1, j] / _cellsize; + + // //double slope = (-1) * (_elevation[i, j] - _elevation[i - 1, j]) / _cellsize * 100; + // //double velocity = GetVelocity(slope, nx); + // //B[i, j] += ((B[i - 1, j] + _elevation[i - 1, j]) - (current_flux + _elevation[i, j])) / _cellsize * velocity; + // } + //} + } + //slope for j+1 cell + if (j + 1 < cols) + { + + if (H[i, j] + _elevation[i, j] < H[i, j + 1] + _elevation[i, j + 1]) + { + in_flux += FLUX[i, j + 1] / 2; + } + + //if (_elevation[i, j] - _elevation[i, j + 1] < 0) + //{ + //if (B[i, j + 1] > 0) + //{ + + //--- + //--- From (Fiedler and Ramirez, 2000) + //--- + //add flux from river and Pe + + //add inflow from known heads + //if ((_elevation[i, j] + H[i, j]) - (_elevation[i, j+1] + H[i, j+1]) < 0 && H[i, j + 1] > 0 ) + //if (H[i, j] + _elevation[i, j] < H[i, j + 1] + _elevation[i, j+1]) + // { + // //add flux from Pe and Inflow + // in_flux += FLUX[i, j + 1] / 2; + // //subtract this flux from the higher node + // //flows[i * cols + j + 1] -= FLUX[i, j + 1] / 2; + + // //--- add flux from cell stage + // //Get the available head, assuming that all of it can flow onto the current cell + // double head_diff = Math.Abs(H[i, j] - H[i, j + 1]); + // //convert the head difference into flux + // double head_flux = head_diff * _cellsize / _dt; + // //apply half of it to the current cell + // ////in_flux += head_flux / 2; + + // //subtract this from the higher node + // //FLUX[i, j + 1] -= head_flux / 2; + + // //in_flux += B[i, j + 1] / _cellsize; + + // //double slope = (-1) * (_elevation[i, j] - _elevation[i, j + 1]) / _cellsize * 100; + // //double velocity = GetVelocity(slope, ny); + // //B[i, j] += ((B[i, j + 1] + _elevation[i, j + 1]) - (current_flux + _elevation[i, j])) / _cellsize * velocity; + + // } + //} + } + //slope for j-1 cell + if (j - 1 >= 0) + { + if (H[i, j] + _elevation[i, j] < H[i, j - 1] + _elevation[i, j - 1]) + { + in_flux += FLUX[i, j - 1] / 2; + } + + //if (_elevation[i, j] - _elevation[i, j - 1] < 0) + //{ + //if (B[i, j - 1] > 0) + //{ + + //--- + //--- From (Fiedler and Ramirez, 2000) + //--- + //add inflow from known heads + //if ((_elevation[i, j] + H[i, j]) - (_elevation[i, j - 1] + H[i, j - 1]) < 0 && H[i, j - 1] > 0) + //if (H[i, j] + _elevation[i, j] < H[i, j - 1] + _elevation[i, j-1]) + // { + // //add flux from Pe and Inflow + // in_flux += FLUX[i, j - 1] / 2; + // //subtract this flux from the higher node + // //flows[i * cols + j-1] -= FLUX[i, j - 1] / 2; + + // //--- add flux from cell stage + // //Get the available head, assuming that all of it can flow onto the current cell + // double head_diff = Math.Abs(H[i, j] - H[i, j - 1]); + // //convert the head difference into flux + // double head_flux = head_diff * _cellsize / _dt; + // //apply half of it to the current cell + // ////in_flux += head_flux / 2; + + // //subtract this from the higher node + // //FLUX[i, j - 1] -= head_flux / 2; + + + // } + //in_flux += B[i, j - 1] / _cellsize; + + //double slope = (-1) * (_elevation[i, j] - _elevation[i, j - 1]) / _cellsize * 100; + //double velocity = GetVelocity(slope, ny); + //B[i, j] += ((B[i, j - 1] + _elevation[i, j - 1]) - (current_flux + _elevation[i, j])) / _cellsize * velocity; + //} + //} + } + + flows[i * cols + j] = FLUX[i,j] + in_flux; + + //Ignore Small InFluxes + //if (current_flux + in_flux > 0.0001) + //B[i,j] is equal to the combination of fluxes into the cell + //flows[i * cols + j] = FLUX[i,j] + in_flux; + //FLUX[i, j] = current_flux + in_flux; + //else + //flows[i * cols + j] = FLUX[i, j]; + //FLUX[i, j] = current_flux; + + //add flux from excess precip + //B[i, j] += E[i, j] / _dt ; + } + } + */ + #endregion + } + + + /// + /// Flow velocity calculated by the upland method + /// + /// slope between desired cells, in percent + /// mannings roughness coefficient + /// velocity in m3/s + public double GetVelocity(double slope, double n) + { + double velocity = 0; + + //n ranges are interpolated from pg35 of (Chow et al 1988) + //slope ranges are from the Upland Velocity Method Graph (National Engineering Handbook, 1972) + if (slope < 0.5) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = 0.1; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 0.2; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 0.3; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 0.4; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 0.7; + //Paved + else if (n <= 0.03) + velocity = 1; + #endregion + } + else if (slope >= 0.5 && slope < 1) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = 0.2; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 0.4; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 0.6; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 0.75; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 1.3; + //Paved + else if (n <= 0.03) + velocity = 1.7; + #endregion + } + else if (slope >= 1 && slope < 2) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = 0.3; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 0.6; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 0.8; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 1; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 1.7; + //Paved + else if (n <= 0.03) + velocity = 2.5; + #endregion + } + else if (slope >= 2 && slope < 3) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = 0.4; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 0.8; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 1.1; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 1.5; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 2.4; + //Paved + else if (n <= 0.03) + velocity = 3.1; + #endregion + } + else if (slope >= 3 && slope < 4) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = .45; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = .92; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 1.4; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 1.6; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 2.8; + //Paved + else if (n <= 0.03) + velocity = 3.7; + #endregion + } + else if (slope >= 4 && slope < 5) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = .52; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 1.1; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 1.5; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 1.9; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 2.1; + //Paved + else if (n <= 0.03) + velocity = 4.2; + #endregion + } + else if (slope >= 5 && slope < 6) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = 0.6; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 1.3; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 1.7; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 2.1; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 3.5; + //Paved + else if (n <= 0.03) + velocity = 4.7; + #endregion + } + else if (slope >= 6 && slope < 7) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = 0.64; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 1.4; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 1.9; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 2.25; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 3.9; + //Paved + else if (n <= 0.03) + velocity = 5.1; + #endregion + } + else if (slope >= 7 && slope < 8) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = 0.7; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 1.4; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 1.9; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 2.5; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 4.25; + //Paved + else if (n <= 0.03) + velocity = 5.5; + #endregion + } + else if (slope >= 8 && slope < 9) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = 0.75; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 1.5; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 2.1; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 2.6; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 4.5; + //Paved + else if (n <= 0.03) + velocity = 6; + #endregion + } + else if (slope >= 9 && slope < 10) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = 0.8; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 1.55; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 2.2; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 2.8; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 4.75; + //Paved + else if (n <= 0.03) + velocity = 6.2; + #endregion + } + else if (slope >= 10 && slope < 20) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = 0.9; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 1.9; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 2.8; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 3.5; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 5.6; + //Paved + else if (n <= 0.03) + velocity = 7.8; + #endregion + } + else if (slope >= 20 && slope < 30) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = 1.3; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 2.5; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 3.5; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 4.5; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 7.6; + //Paved + else if (n <= 0.03) + velocity = 10; + #endregion + } + else if (slope >= 30 && slope < 40) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = 1.6; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 3; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 4.2; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 5.5; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 9; + //Paved + else if (n <= 0.03) + velocity = 15; + #endregion + } + else if (slope >= 40 && slope < 50) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = 1.7; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 3.4; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 4.6; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 6.2; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 11; + //Paved + else if (n <= 0.03) + velocity = 17; + #endregion + } + else if (slope >= 50 && slope < 60) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = 1.8; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 3.8; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 5.1; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 6.8; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 13.5; + //Paved + else if (n <= 0.03) + velocity = 20; + #endregion + } + else if (slope >= 60 && slope < 70) + { + #region Calculate Velocity + //Dense Trees + if (n > .085) + velocity = 2; + //Dense Brush + if (n <= 0.085 && n > 0.06) + velocity = 4.1; + //Light Brush and Weeds + else if (n <= 0.06 && n > 0.045) + velocity = 5.6; + //Field Crops + else if (n <= 0.045 && n > 0.037) + velocity = 7.3; + //Pasture + else if (n <= 0.037 && n > 0.03) + velocity = 15; + //Paved + else if (n <= 0.03) + velocity = 24; + #endregion + } + + //convert velocity from ft/s into m/s + velocity /= 3.28; + + return velocity; + + } + } + + + //public class ForwardDifferencing : Discretization + //{ + // double _cellsize; + // double _dt; + // double _elementCount; + // double datum; + // public double nx { private get; set; } //To be replaced with _nx[,] + // public double ny { private get; set; } //To be replaced with _ny[,] + // private double[] head; + // //public double[,] _nx { private get; set; } + // //public double[,] _ny { private get; set; } + // public double[,] _sox { private get; set; } + // public double[,] _soy { private get; set; } + + // double[,] Discretization.Sox + // { + // get + // { + // return _sox; + // } + // set + // { + // _sox = value; + // } + // } + // double[,] Discretization.Soy + // { + // get + // { + // return _soy; + // } + // set + // { + // _soy = value; + // } + // } + // double Discretization.Nx + // { + // get + // { + // return nx; + // } + // set + // { + // nx = value; + // } + // } + // double Discretization.Ny + // { + // get + // { + // return ny; + // } + // set + // { + // ny = value; + // } + // } + // double Discretization.Datum + // { + // get + // { + // return datum; + // } + // set + // { + // datum = value; + // } + // } + // double[] Discretization.Head + // { + // get + // { + // return head; + // } + // set + // { + // head = value; + // } + // } + // public ForwardDifferencing(double cellsize, double dt, int elementCount) + // { + // this._cellsize = cellsize; + // this._dt = dt; + // this._elementCount = elementCount; + // } + + // /// + // /// Builds Stiffness Matrix + // /// + // /// River Stage + // /// Excess Head + // /// Flow onto FloodPlain as a result of River Stage + // /// Stiffness Matrix + // /// Source Term + // public void CreateStiffness(double[] stage, double[] excess, double[] h, double[] b, out double[,] A, out double[] q, int option) + // { + // //havent implemtented option yet!!! + // //get the number of rows and cols from Sox (assuming that Sox and Soy are of equal size) + // int rows = _sox.GetLength(0); + // int cols = _soy.GetLength(1); + + // //define output variables + // A = new double[h.Length, h.Length]; + // q = b; + + // //define some local variables + // double Cx1, Cx2, Cy1, Cy2; + // double dhdx, dhdy, dh2dx2, dh2dy2; + + // double[,] H = new double[rows, cols]; + // //int eRow = (Int32)Math.Sqrt(h.Length); + // //int N = (Int32)Math.Sqrt(h.Length); + + + // //Convert h into 2d matrix + // for (int i = 0; i <= rows - 1; i++) + // { + // for (int j = 0; j <= cols - 1; j++) + // { + // H[i, j] = h[j + (i * cols)]; + // } + // } + + // //HACK: stage wont always exist at first element of row!!! Should instead pass this method an array, where the + // // stage values have already been assigned to specific locations within the matrix. + + // //set head in first column equal to the known stage + // for (int i = 0; i <= rows - 1; i++) + // { + // if (stage[i] > H[i, 0]) + // H[i, 0] = stage[i]; + // } + + // //--- ---// + // //--- Formulate Stiffness Matrix ---// + // //--- ---// + + // for (int i = 0; i <= rows - 1; i++) + // { + // for (int j = 0; j <= cols - 1; j++) + // { + // //--- Calculate the non-linear terms ---// + + // //if this is the second to last column + // if (j == cols - 2) + // { + // //forward differencing + // dhdx = (H[i, j] - H[i, j + 1]) / (_cellsize); + // dh2dx2 = (H[i, j] - 2 * H[i, j + 1] + 0) / (Math.Pow(_cellsize, 2)); + // } + // //if this is the last column + // else if (j == cols - 1) + // { + // //allow water to flow off grid, assuming the adjacent head is always zero + // dhdx = (H[i, j] - 0) / (_cellsize); + // dh2dx2 = (H[i, j] - 2 * 0 + 0) / (Math.Pow(_cellsize, 2)); + // } + // //if this is an interior column + // else + // { + // //forward differencing + // dhdx = (H[i, j] - H[i, j + 1]) / (_cellsize); + // dh2dx2 = (H[i, j] - 2 * H[i, j + 1] + H[i, j + 2]) / (Math.Pow(_cellsize, 2)); + // } + + // //if this is the second to last row + // if (i == rows - 2) + // { + // //forward differencing + // dhdy = (H[i, j] - H[i + 1, j]) / (_cellsize); + // dh2dy2 = (H[i, j] - 2 * H[i + 1, j] + 0) / (Math.Pow(_cellsize, 2)); + // } + + // //if this is the last row + // else if (i == rows - 1) + // { + // //forward differencing + // dhdy = (H[i, j] - 0) / (_cellsize); + // dh2dy2 = (H[i, j] - 2 * 0 + 0) / (Math.Pow(_cellsize, 2)); + // } + // //if this is an interior row + // else + // { + // //forward differencing + // dhdy = (H[i, j] - H[i + 1, j]) / (_cellsize); + // dh2dy2 = (H[i, j] - 2 * H[i + 1, j] + H[i + 2, j]) / (Math.Pow(_cellsize, 2)); + // } + + + // //--- Calculate Coefficients ---// + + // //transform from i, j into ii,jj for _sox and _soy arrays + // //int ii = _sox.GetLength(0) - _sox.GetLength(0) % (i+1); + // //int jj = _sox.GetLength(1) - _sox.GetLength(1) % (j+1); + + // double Xslope = Math.Abs(_sox[i, j]); + // double Yslope = Math.Abs(_soy[i, j]); + + + // Cx1 = (1.0 / (2.0 * nx)) * Math.Sign(_sox[i, j]) * Math.Pow(Math.Abs(Xslope - dhdx), -1.0 / 2.0) * dh2dx2 * Math.Pow(H[i, j], 2.0 / 3.0); + // Cy1 = (1.0 / (2.0 * ny)) * Math.Sign(_soy[i, j]) * Math.Pow(Math.Abs(Yslope - dhdy), -1.0 / 2.0) * dh2dy2 * Math.Pow(H[i, j], 2.0 / 3.0); + // Cx2 = (5.0 / (3.0 * nx)) * Math.Sign(_sox[i, j]) * Math.Sqrt(Math.Abs(Xslope - dhdx)) * Math.Pow(H[i, j], 2.0 / 3.0); + // Cy2 = (5.0 / (3.0 * ny)) * Math.Sign(_soy[i, j]) * Math.Sqrt(Math.Abs(Yslope - dhdy)) * Math.Pow(H[i, j], 2.0 / 3.0); + + // //catch infinity and nan terms + // if (double.IsInfinity(Cx1) || double.IsNaN(Cx1)) { Cx1 = 0.0; } + // if (double.IsInfinity(Cy1) || double.IsNaN(Cy1)) { Cy1 = 0.0; } + // if (double.IsInfinity(Cx2) || double.IsNaN(Cx2)) { Cx2 = 0.0; } + // if (double.IsInfinity(Cy2) || double.IsNaN(Cy2)) { Cy2 = 0.0; } + + + // //--- SET TERMS IN THE STIFFNESS MATRIX A[,]---// + + // //set (i,j) term + // A[i * cols + j, i * cols + j] = 1 + (this._dt / _cellsize) * Cx2 + (this._dt / _cellsize) * Cy2; + + // //set(i,j+1) term if its not the last column + // if (j < cols - 2) + // A[i * cols + j, i * cols + j + 1] = -1 * (this._dt / _cellsize) * Cx2; + + // //set(i+1,j) term if its not the last row + // if (i < rows - 2) + // A[(i+1) * cols + j, i * cols + j] = -1 * (this._dt / _cellsize) * Cy2; + + // //---SET TERMS IN THE SOURCE ARRAY ---// + + // //set(i,j) term + // q[i * cols + j] *= this._dt / 3600; //multiply by -1 to put the flow in the correct direction + // q[i * cols + j] += (this._dt / 3600) * (1 - Cx1 - Cy1); + + + // } + // } + + // //DEBUG: this is to make sure the matrix is in the correct form + // for (int i = 0; i <= A.GetLength(0) - 1; i++) + // { + // for (int j = 0; j <= A.GetLength(1) - 1; j++) + // { + // Debug.Write(Math.Round(A[i, j],0).ToString() + " "); + // } + // Debug.Write("\n"); + // } + + // } + + + //} +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Source/Engine.cs b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Source/Engine.cs new file mode 100644 index 00000000..8d5f07b8 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Source/Engine.cs @@ -0,0 +1,1386 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Oatc.OpenMI.Sdk.Backbone; + +namespace DiffusiveWave.Source +{ + public class Engine + { + public double _cellsize { get; private set;} + public double _hw; + public int _elementCount { get; private set; } + public double epsilon { get; set; } + public double[,] elevations{get;set;} + public double datum = 1000000000; + public int rows { get; set; } + public int cols { get; set; } + + public Engine(double hw) + { + this._hw = hw; + this.epsilon = 0.01; + } + + public double[] SuccessiveOverRelaxation(double[,] A, double[] b) + { + + double[] x = new double[A.GetLength(0)]; + double[] x1 = new double[A.GetLength(0)]; + + //calculate optimal relaxation factor + double C = Math.Cos(Math.PI / A.GetLength(0)) + Math.Cos(Math.PI / A.GetLength(1)); + double w = 4 / (2 + Math.Sqrt(4 + Math.Pow(C, 2))); + + for (int k = 0; k <= 100; k++) + { + for (int i = 0; i <= A.GetLength(0) - 1; i++) + { + double R = 0; + + //calculate residual R + for (int j = 0; j <= i - 1; j++) + R += A[i, j] * x1[j]; + for (int j = i + 1; j <= A.GetLength(0) - 1; j++) + R += A[i, j] * x[j]; + + //calculate X at time k+1 + x1[i] = (1 - w) * x[i] + (w / A[i, i]) * (b[i] - R); + } + + //check for convergence + + for (int i = 0; i <= A.GetLength(0) - 1; i++) + { + double value = Math.Abs((x1[i] - x[i]) / x1[i]); + + if (value > epsilon) + break; + + if (i == A.GetLength(0) - 1) + { + //all values must have met convergence criteria + + //set x(k) = x(k+1) + x1.CopyTo(x, 0); + + //return result + return x1; + } + } + + //set x(k) = x(k+1) + x1.CopyTo(x, 0); + + } + + //convergence was not met within the maximum number of iterations + throw new Exception("Convergence was not reached in SOR method!!!"); + + + } + + /// + /// Builds the ElementSet + /// + /// Path to raster ASCII file (produced using ARC GIS) + /// ElementSet ID + /// ElementSet Description + /// Element Set + public void BuildElementSet(string elevation, string fdr, string id, string desc, out ElementSet elementset, out double[,] sox, out double[,] soy) + { + System.IO.StreamReader ReadElev = new System.IO.StreamReader(elevation); + //System.IO.StreamReader ReadFdr = new System.IO.StreamReader(fdr); + + //read element set attributes from elevation file + string[] ElevLine = ReadElev.ReadLine().Split(' '); + cols = Convert.ToInt32(ElevLine[ElevLine.Length - 1]); ElevLine = ReadElev.ReadLine().Split(' '); + rows = Convert.ToInt32(ElevLine[ElevLine.Length - 1]); ElevLine = ReadElev.ReadLine().Split(' '); + double xlower = Convert.ToDouble(ElevLine[ElevLine.Length - 1]); ElevLine = ReadElev.ReadLine().Split(' '); + double ylower = Convert.ToDouble(ElevLine[ElevLine.Length - 1]); ElevLine = ReadElev.ReadLine().Split(' '); + double cellsize = Convert.ToDouble(ElevLine[ElevLine.Length - 1]); ElevLine = ReadElev.ReadLine().Split(' '); + double NODATA = Convert.ToDouble(ElevLine[ElevLine.Length - 1]); + + ////read element set attributes from fdr file + //string[] FdrLine = ReadFdr.ReadLine().Split(' '); + //if (cols != Convert.ToInt32(FdrLine[FdrLine.Length - 1])) + // throw new Exception("Elevation and Flow Direction files do not contain the same number of columns"); + //FdrLine = ReadFdr.ReadLine().Split(' '); + //if (rows != Convert.ToInt32(FdrLine[FdrLine.Length - 1])) + // throw new Exception("Elevation and Flow Direction files do not contain the same number of rows"); + ////skip the rest of the attributes + //FdrLine = ReadFdr.ReadLine().Split(' '); + //FdrLine = ReadFdr.ReadLine().Split(' '); + //FdrLine = ReadFdr.ReadLine().Split(' '); + //FdrLine = ReadFdr.ReadLine().Split(' '); + //string fdrNoData = FdrLine[FdrLine.Length - 1]; + + + //set cellsize + _cellsize = cellsize; + + //set element count + _elementCount = rows * cols; + + //create array to hold elevations + elevations = new double[rows, cols]; + soy = new double[rows, cols]; + sox = new double[rows, cols]; + + //get x upper and yupper coordinates + double x = xlower; + double y = ylower + cellsize * rows; + + //define element set + elementset = new ElementSet(); + elementset.Description = desc; + elementset.ID = id; + elementset.ElementType = OpenMI.Standard.ElementType.XYPoint; + + + //read elevations + for (int i = 0; i <= rows - 1; i++) + { + ElevLine = ReadElev.ReadLine().Split(' '); + + for (int j = 0; j <= cols - 1; j++) + { + //get the elevation + double z = Convert.ToDouble(ElevLine[j]); + + //create a new element and add a vertex to it + Element e = new Element(); + Vertex v = new Vertex(x, y, z); + e.AddVertex(v); + + //add the new element to the element set + elementset.AddElement(e); + + //get the new x coordinate + x += cellsize; + + //save this elevation + elevations[i, j] = z; + + //save the new datum as the lowest elevation + if (z < datum) + datum = z - 2; + } + + //get the new y coordinate, and reset the x coordinate + y -= cellsize; + x = xlower; + } + + ReadElev.Close(); + + + //calculate slopes in the x and y directions + for (int i = 0; i <= rows - 1; i++) + { + //FdrLine = ReadFdr.ReadLine().Split(' '); + for (int j = 0; j <= cols - 1; j++) + { + + double SOY = 0; + double SOX = 0; + + //BROKEN: Need to use FDR too + #region Old Slope Calc + ////if its the first row + //if (i == 0) + //{ + // //take the difference between the (i)th and (i+1)th + // SOY = elevations[i, j] - elevations[i + 1, j]; + + // //check to see if something went wrong! + // if (Math.Abs(SOY) > elevations[i, j] || Math.Abs(SOY) > elevations[i + 1, j]) + // SOY = 0.0; + //} + ////if its the last row + //else if (i == rows - 1) + //{ + // //take the difference between the (i)th and (i-1)th + // SOY = elevations[i, j] - elevations[i - 1, j]; + + // //check to see if something went wrong! + // if (Math.Abs(SOY) > elevations[i, j] || Math.Abs(SOY) > elevations[i - 1, j]) + // SOY = 0.0; + //} + ////if its an interior row + //else + //{ + // //take the maximum of the two + // double soy1 = elevations[i, j] - elevations[i + 1, j]; + // double soy2 = elevations[i, j] - elevations[i - 1, j]; + + // if (Math.Abs(soy1) > Math.Abs(elevations[i, j])) + // { + // if (Math.Abs(soy2) > Math.Abs(elevations[i, j])) + // { + // SOY = 0.0; + // } + // else + // { + // SOY = soy2; + // } + // } + // else + // { + // if (Math.Abs(soy2) > Math.Abs(elevations[i, j])) + // { + // SOY = soy1; + // } + // else + // { + // if (Math.Abs(soy1) > Math.Abs(soy2)) + // SOY = soy1; + // else + // SOY = soy2; + // } + // } + + //} + + ////if its the first column + //if (j == 0) + //{ + // //take the difference between the (j)th and (j+1)th + // SOX = elevations[i, j] - elevations[i, j + 1]; + + // //check to see if something went wrong! + // if (Math.Abs(SOX) > elevations[i, j] || Math.Abs(SOX) > elevations[i, j + 1]) + // SOX = 0.0; + //} + ////if its the last column + //else if (j == cols - 1) + //{ + // //take the difference between the (j)th and (j-1)th + // SOX = elevations[i, j] - elevations[i, j - 1]; + + // //check to see if something went wrong! + // if (Math.Abs(SOX) > elevations[i, j] || Math.Abs(SOX) > elevations[i, j - 1]) + // SOX = 0.0; + //} + ////if its an interior column + //else + //{ + + // //take the maximum of the two + // double sox1 = elevations[i, j] - elevations[i, j + 1]; + // double sox2 = elevations[i, j] - elevations[i, j - 1]; + + // if (Math.Abs(sox1) > Math.Abs(elevations[i, j])) + // { + // if (Math.Abs(sox2) > Math.Abs(elevations[i, j])) + // { + // SOX = 0.0; + // } + // else + // { + // SOX = sox2; + // } + // } + // else + // { + // if (Math.Abs(sox2) > Math.Abs(elevations[i, j])) + // { + // SOX = sox1; + // } + // else + // { + // if (Math.Abs(sox1) > Math.Abs(sox2)) + // SOX = sox1; + // else + // SOX = sox2; + // } + // } + //} + #endregion + + //--- + //--- get the fdr value and use it to choose x any y slopes for each element + //--- + + #region Slope Calc using FDR + //int Xdirection = 1; //denotes flow to the left + //int Ydirection = 1; //denotes flow uppwared + ////make sure the that flow direction isn't NODATA + //if (FdrLine[j] != fdrNoData) + //{ + + // switch (Convert.ToInt32(FdrLine[j])) + // { + // case 1: + // try { SOX = elevations[i, j] - elevations[i, j + 1]; } + // catch (IndexOutOfRangeException) { SOX = elevations[i, j] - 5; }//Arbitrarily selected "5" + // break; + // case 2: + // try { SOX = elevations[i, j] - elevations[i, j + 1]; } + // catch (IndexOutOfRangeException) { SOX = elevations[i, j] - 5; }//Arbitrarily selected "5" + // try { SOY = elevations[i, j] - elevations[i + 1, j]; } + // catch (IndexOutOfRangeException) { SOY = elevations[i, j] - 5; }//Arbitrarily selected "5" + // break; + // case 4: + // try { SOY = elevations[i, j] - elevations[i + 1, j]; } + // catch (IndexOutOfRangeException) { SOY = elevations[i, j] - 5; }//Arbitrarily selected "5" + // break; + // case 8: + // try { SOX = elevations[i, j] - elevations[i, j - 1]; } + // catch (IndexOutOfRangeException) { SOX = elevations[i, j] - 5; }//Arbitrarily selected "5" + // try { SOY = elevations[i, j] - elevations[i + 1, j]; } + // catch (IndexOutOfRangeException) { SOY = elevations[i,j] - 5; }//Arbitrarily selected "5" + // Xdirection = -1; + // break; + // case 16: + // try { SOX = elevations[i, j] - elevations[i, j - 1]; } + // catch (IndexOutOfRangeException) { SOX = elevations[i, j] - 5; }//Arbitrarily selected "5" + // Xdirection = -1; + // break; + // case 32: + // try { SOX = elevations[i, j] - elevations[i, j - 1]; } + // catch (IndexOutOfRangeException) { SOX = elevations[i, j] - 5; }//Arbitrarily selected "5" + // try { SOY = elevations[i, j] - elevations[i - 1, j]; } + // catch (IndexOutOfRangeException) { SOY = elevations[i, j] - 5; }//Arbitrarily selected "5" + // Xdirection = -1; + // Ydirection = -1; + // break; + // case 64: + // try { SOY = elevations[i, j] - elevations[i - 1, j]; } + // catch (IndexOutOfRangeException) { SOY = elevations[i, j] - 5; }//Arbitrarily selected "5" + // Ydirection = -1; + // break; + // case 128: + // try { SOX = elevations[i, j] - elevations[i, j + 1]; } + // catch (IndexOutOfRangeException) { SOX = elevations[i, j] - 5; }//Arbitrarily selected "5" + // try { SOY = elevations[i, j] - elevations[i - 1, j]; } + // catch (IndexOutOfRangeException) { SOY = elevations[i, j] - 5; }//Arbitrarily selected "5" + // Ydirection = -1; + // break; + // } + + + // //HACK: If SOX or SOY is < 0, set it equal to 0. This can happen in Cases 2,8,32,128. + // if (SOX < 0 || SOX == elevations[i,j] - Convert.ToInt32(fdrNoData)) { SOX = 0; } //this ensures that there are no negative slopes or NoData calculations + // if (SOY < 0 || SOY == elevations[i,j] - Convert.ToInt32(fdrNoData)) { SOY = 0; } + //} + + ////set slope values + //sox[i, j] = Xdirection * SOX / cellsize; + //soy[i, j] = Ydirection * SOY / cellsize; + #endregion + + //only calculate the slope in the positive X and positive Y directions + if (i != rows - 1) + { + SOY = elevations[i, j] - elevations[i + 1, j]; + } + else + { + SOY = 1; + } + + if (j != cols - 1) + { + SOX = elevations[i, j] - elevations[i, j + 1]; + } + else + { + SOX = 1; + } + + //set slope values + sox[i, j] = SOX / cellsize; + soy[i, j] = SOY / cellsize; + + + + + } + } + //ReadFdr.Close(); + } + + /// + /// Calculates the flow between the river and the flood plain + /// + /// River Stage + /// Floodplain Stage for all cells + /// Flow from river into floodplain = postive values; flow from floodplain into river = negative values + public double[] Stage2Flow(double[] stage, double[] h, double dt) + { + //assume broad crested weir + double[] V = new double[_elementCount]; + double[] Q = new double[_elementCount]; + double I = 0; + double O = 0; + //get number of elements per row + int rowCount = _elementCount / stage.Length; + + + //HACK: should probably be 9.81 + //double g = 32.2; + + int rowID = 0; + double Stage = stage[0]; + + for (int i = 0; i <= _elementCount - 1; i++) + { + if (stage[i] != 0) + { + + //set crest elevation of embankment + + //set height of river + double hr = stage[i] + (elevations[rowID, 0] - datum); + //set height of floodplain + double hfp = h[i] + +(elevations[rowID, 0] - datum); + //set the weir height + double hw = _hw + elevations[rowID, 0] - datum; + + double Sb = 0; + double Hr = 0; + + //calculate Hr + if (hr > hfp && hr > hw) + Hr = (hr - hw) / (hfp - hw); + else if (hfp > hw && hfp > hr) + Hr = (hfp - hw) / (hr - hw); + + //calculate submergence factor + if (Hr > 0.67) + Sb = 1.0 - 27.8 * Math.Pow(Hr - 0.67, 3); + else + Sb = 1.0; + + double Cf = 0.62; //weir discharge coefficient (broad crested)(SI) + + if (hr > hw && hr > hfp) + I += Cf * Sb * Math.Pow(hr - hw, 3.0 / 2.0) * _cellsize; + else if (hfp > hw && hfp > hr) + O += Cf * Sb * Math.Pow(hfp - hw, 3.0 / 2.0) * _cellsize; + + //Q[i] = (h[i] * _cellsize * _cellsize) / dt + (I - O); + + } + //else + //{ + // Q[i] = Q[i - 1]; + //} + + } + + for (int i = 0; i <= _elementCount - 1; i++) + { + if (i % rowCount == 0) + { + if (O < 0) + O *= -1; + if (I < 0) + I *= -1; + V[i] = (h[i] * _cellsize * _cellsize) + (I - O) * dt; + double flux = (V[i] - (h[i] * _cellsize * _cellsize)) / dt; + Q[i] = flux; + } + + } + //return V; + return Q; + } + } + + + public class Engine2 + { + public double _cellsize { get; private set;} + public double _hw; + public int _elementCount { get; private set; } + public double epsilon { get; set; } + public double[,] _elevations{get;set;} + public double datum = 1000000000; + public int rows { get; set; } + public int cols { get; set; } + + double _dt; + public double nx { private get; set; } //To be replaced with _nx[,] + public double ny { private get; set; } //To be replaced with _ny[,] + //public double[,] _nx { private get; set; } + //public double[,] _ny { private get; set; } + + public double[] head; + public double[,] _sox { private get; set; } + public double[,] _soy { private get; set; } + public double[,] A; + public double[] q; + public double[,] H; + public double[,][] _properties; + + public Engine2(double hw, double dt) + { + this._hw = hw; + this.epsilon = 0.01; + this._dt = dt; + } + + public double[] SuccessiveOverRelaxation() + { + + double[] x = new double[A.GetLength(0)]; + double[] x1 = new double[A.GetLength(0)]; + + int length = rows * cols; + + //calculate optimal relaxation factor + //double C = Math.Cos(Math.PI / A.GetLength(0)) + Math.Cos(Math.PI / A.GetLength(1)); + double C = Math.Cos(Math.PI / length) + Math.Cos(Math.PI / length); + double w = 4 / (2 + Math.Sqrt(4 + Math.Pow(C, 2))); + + for (int k = 0; k <= 100; k++) + { + for (int i = 0; i <= A.GetLength(0) - 1; i++) + { + double R = 0; + //calculate residual R + if (i - cols >= 0) + R += A[i, 0] * x1[i - cols]; + if (i - 1 >= 0) + R += A[i, 1] * x1[i - 1]; + if (i + 1 <= x.Length - 1) + R += A[i, 3] * x[i + 1]; + if (i + cols <= x.Length - 1) + R += A[i, 4] * x[i + cols]; + + //calculate X at time k+1 + x1[i] = (1 - w) * x[i] + (w / A[i, 2]) * (q[i] - R); + + //calculate residual R + //for (int j = 0; j <= 1; j++) + // R += A[i, j] * x1[j]; + //for (int j = 3; j <= 4; j++) + // R += A[i, j] * x[j]; + + //calculate X at time k+1 + //x1[i] = (1 - w) * x[i] + (w / A[i, 2]) * (q[i] - R); + } + + //check for convergence + + for (int i = 0; i <= A.GetLength(0) - 1; i++) + { + double value = Math.Abs((x1[i] - x[i]) / x1[i]); + + if (value > epsilon) + break; + + if (i == A.GetLength(0) - 1) + { + //all values must have met convergence criteria + + //set x(k) = x(k+1) + x1.CopyTo(x, 0); + + //return result + return x1; + } + } + + //set x(k) = x(k+1) + x1.CopyTo(x, 0); + + } + + //convergence was not met within the maximum number of iterations + throw new Exception("Convergence was not reached in SOR method!!!"); + + + } + + private void init_properties(int rows, int cols) + { + //initialize the 2d array + _properties = new double[rows, cols][]; + + for (int i = 0; i <= rows - 1; i++) + { + for (int j = 0; j <= cols - 1; j++) + { + //create a 3rd dimension to hold various properties + _properties[i, j] = new double[5]; + + //_properties[0] = elevation + //_properties[1] = XSlope + //_properties[2] = YSlope + //_properties[3] = Xroughness + //_properties[4] = Yroughness + } + } + } + + + /// + /// Builds the ElementSet + /// + /// Path to raster ASCII file (produced using ARC GIS) + /// ElementSet ID + /// ElementSet Description + /// Element Set + public void BuildElementSet(string elevation, string id, string desc, out ElementSet elementset) + { + System.IO.StreamReader ReadElev = new System.IO.StreamReader(elevation); + //System.IO.StreamReader ReadFdr = new System.IO.StreamReader(fdr); + + //read element set attributes from elevation file + string[] ElevLine = ReadElev.ReadLine().Split(' '); + cols = Convert.ToInt32(ElevLine[ElevLine.Length - 1]); ElevLine = ReadElev.ReadLine().Split(' '); + rows = Convert.ToInt32(ElevLine[ElevLine.Length - 1]); ElevLine = ReadElev.ReadLine().Split(' '); + double xlower = Convert.ToDouble(ElevLine[ElevLine.Length - 1]); ElevLine = ReadElev.ReadLine().Split(' '); + double ylower = Convert.ToDouble(ElevLine[ElevLine.Length - 1]); ElevLine = ReadElev.ReadLine().Split(' '); + double cellsize = Convert.ToDouble(ElevLine[ElevLine.Length - 1]); ElevLine = ReadElev.ReadLine().Split(' '); + double NODATA = Convert.ToDouble(ElevLine[ElevLine.Length - 1]); + + //initialize the _properties array + //[0:elevation],[1:SoX],[2:SoY],[3:Nx],[4:Ny] + init_properties(rows, cols); + + //set cellsize + _cellsize = cellsize; + + //set element count + _elementCount = rows * cols; + + //initialize stiffness and source arrays + this.A = new double[_elementCount, 5]; + //this.A = new double[_elementCount, _elementCount]; + this.q = new double[_elementCount]; + + //create array to hold elevations + _elevations = new double[rows, cols]; + _soy = new double[rows, cols]; + _sox = new double[rows, cols]; + + //get x upper and yupper coordinates + double x = xlower; + double y = ylower + cellsize * rows; + + //define element set + elementset = new ElementSet(); + elementset.Description = desc; + elementset.ID = id; + elementset.ElementType = OpenMI.Standard.ElementType.XYPoint; + + + //read elevations + for (int i = 0; i <= rows - 1; i++) + { + ElevLine = ReadElev.ReadLine().Split(' '); + + for (int j = 0; j <= cols - 1; j++) + { + //get the elevation + double z = Convert.ToDouble(ElevLine[j]); + + //create a new element and add a vertex to it + Element e = new Element(); + Vertex v = new Vertex(x, y, z); + e.AddVertex(v); + + //add the new element to the element set + elementset.AddElement(e); + + //get the new x coordinate + x += cellsize; + + //save this elevation + //_elevations[i, j] = z; + + //save this elevation + _properties[i, j][0] = z; + + //save the new datum as the lowest elevation + if (z < datum) + datum = z - 2; + } + + //get the new y coordinate, and reset the x coordinate + y -= cellsize; + x = xlower; + } + + ReadElev.Close(); + + + //calculate slopes in the x and y directions + for (int i = 0; i <= rows - 1; i++) + { + //FdrLine = ReadFdr.ReadLine().Split(' '); + for (int j = 0; j <= cols - 1; j++) + { + double SOY = 0; + double SOX = 0; + + //only calculate the slope in the positive X and positive Y directions + if (i != rows - 1) + { + //SOY = _elevations[i, j] - _elevations[i + 1, j]; + SOY = _properties[i, j][0] - _properties[i + 1, j][0]; + } + else + { + SOY = 1; + } + + if (j != cols - 1) + { + //SOX = _elevations[i, j] - _elevations[i, j + 1]; + SOX = _properties[i, j][0] - _properties[i, j+1][0]; + } + else + { + SOX = 1; + } + + //set slope values + //_sox[i, j] = SOX / cellsize; + //_soy[i, j] = SOY / cellsize; + + //save slope values + _properties[i, j][1] = SOX / cellsize; + _properties[i, j][2] = SOY / cellsize; + } + } + } + + /// + /// Calculates the flow between the river and the flood plain + /// + /// River Stage + /// Floodplain Stage for all cells + /// Flow from river into floodplain = postive values; flow from floodplain into river = negative values + public double[] Stage2Flow(double[] stage, double[] h, double dt) + { + //assume broad crested weir + //double[] V = new double[_elementCount]; + double[] Q = new double[_elementCount]; + //double I = 0; + //double O = 0; + //get number of elements per row + int rowCount = _elementCount / stage.Length; + + + //HACK: should probably be 9.81 + //double g = 32.2; + + //int rowID = 0; + double Stage = stage[0]; + + for (int i = 0; i <= _elementCount - 1; i++) + { + //if (stage[i] != 0) + //{ + //get row and col + int row = ((Int32)Math.Floor((double)i / (double)cols)); + int col = i % cols; + + + + //get height of river + double hr = stage[i] + (_properties[row, col][0] - datum); + + //get height of floodplain + double hfp = h[i] + +(_properties[row, col][0] - datum); + + //get the weir height + double hw = _hw + _properties[row, col][0] - datum; + + double Sb = 0; + double Hr = 0; + + //calculate Hr + if (hr > hfp && hr > hw) + Hr = (hr - hw) / (hfp - hw); + else if (hfp > hw && hfp > hr) + Hr = (hfp - hw) / (hr - hw); + + //calculate submergence factor + if (Hr > 0.67) + Sb = 1.0 - 27.8 * Math.Pow(Hr - 0.67, 3); + else + Sb = 1.0; + + double Cf = 0.62; //weir discharge coefficient (broad crested)(SI) + + if (hr > hw && hr > hfp) + Q[i] = Cf * Sb * Math.Pow(hr - hw, 3.0 / 2.0) * _cellsize; + else if (hfp > hw && hfp > hr) + Q[i] = -1* Cf * Sb * Math.Pow(hfp - hw, 3.0 / 2.0) * _cellsize; + + + //} + + } + + //for (int i = 0; i <= _elementCount - 1; i++) + //{ + // if (i % rowCount == 0) + // { + // if (O < 0) + // O *= -1; + // if (I < 0) + // I *= -1; + // V[i] = (h[i] * _cellsize * _cellsize) + (I - O) * dt; + // double flux = (V[i] - (h[i] * _cellsize * _cellsize)) / dt; + // Q[i] = flux; + // } + + //} + return Q; + } + + /// + /// Builds Stiffness Matrix + /// + /// River Stage + /// Excess Head + /// Flow onto FloodPlain as a result of River Stage + /// Stiffness Matrix + /// Source Term + public void CreateStiffness(double[] stage, double[] excess, double[] h, double[] inflow, int option) + { + + //get the number of rows and cols from Sox (assuming that Sox and Soy are of equal size) + //int rows = _sox.GetLength(0); + //int cols = _soy.GetLength(1); + + //define some local variables + double Cx1, Cx2, Cy1, Cy2; + double dhdx, dhdy, dh2dx2, dh2dy2; + + H = new double[rows, cols]; + + + //HACK: stage wont always exist at first element of row!!! Should instead pass this method an array, where the + // stage values have already been assigned to specific locations within the matrix. + + + //set the current head at each node equal to the known stage plus the head calculated in the last time step + plus the known excess + for (int i = 0; i <= rows - 1; i++) + { + for (int j = 0; j <= cols - 1; j++) + { + H[i, j] = h[j + (i * cols)]; + } + } + + //create source array based on the fluxes between adjacent cells + q = CreateSource(inflow, excess); + + + //--- ---// + //--- Formulate Stiffness Matrix ---// + //--- ---// + + System.IO.StreamWriter sw = new System.IO.StreamWriter("c:\\Temp\\Refractored.csv",true); + for (int i = 0; i <= rows - 1; i++) + { + for (int j = 0; j <= cols - 1; j++) + { + + //Structure of A ==> [0:x,y-1] [1:x-1,y] [2:x,y] [3:x+1,y] [4:x,y+1] + + //------ Calculate the non-linear terms -------// + #region Calculate Non-Linear Terms Explicitly + + //if this is the last column + if (j == cols - 1) + { + //assume that H[i,j+1] = H[i,j] - abs(H[i,j]-H[i,j-1]) to force flow out of the grid + double nextHead = H[i, j] - Math.Abs(H[i, j] - H[i, j - 1]); + dhdx = (nextHead - H[i, j - 1]) / (2 * _cellsize); + dh2dx2 = (nextHead + H[i, j - 1] - 2 * H[i, j]) / (Math.Pow(_cellsize, 2)); + //dhdx = (H[i, j] - H[i, j - 1]) / (2 * _cellsize); + //dh2dx2 = (H[i, j] + H[i, j - 1] - 2 * H[i, j]) / (Math.Pow(_cellsize, 2)); + } + //if this is the first column + else if (j == 0) + { + //assume that H[i,j-1] = H[i,j] + dhdx = (H[i, j + 1] - H[i, j]) / (2 * _cellsize); + dh2dx2 = (H[i, j + 1] + H[i, j] - 2 * H[i, j]) / (Math.Pow(_cellsize, 2)); + } + //if this is an interior column + else + { + dhdx = (H[i, j + 1] - H[i, j - 1]) / (2 * _cellsize); + dh2dx2 = (H[i, j + 1] + H[i, j - 1] - 2 * H[i, j]) / (Math.Pow(_cellsize, 2)); + } + + //if this is the last row + if (i == rows - 1) + { + //assume that H[i,j+1] = H[i,j] - abs(H[i,j]-H[i-1,j]) to force flow out of the grid + double nextHead = H[i, j] - Math.Abs(H[i, j] - H[i - 1, j]); + dhdy = (nextHead - H[i - 1, j]) / (2 * _cellsize); + dh2dy2 = (nextHead + H[i - 1, j] - 2 * H[i, j]) / (Math.Pow(_cellsize, 2)); + //dhdy = (H[i, j] - H[i - 1, j]) / (2 * _cellsize); + //dh2dy2 = (H[i, j] + H[i - 1, j] - 2 * H[i, j]) / (Math.Pow(_cellsize, 2)); + } + //if this is the first row + else if (i == 0) + { + //assume that H[i-1,j] = H[i,j] + dhdy = (H[i + 1, j] - H[i, j]) / (2 * _cellsize); + dh2dy2 = (H[i + 1, j] + H[i, j] - 2 * H[i, j]) / (Math.Pow(_cellsize, 2)); + } + //if this is an interior row + else + { + dhdy = (H[i + 1, j] - H[i - 1, j]) / (2 * _cellsize); + dh2dy2 = (H[i + 1, j] + H[i - 1, j] - 2 * H[i, j]) / (Math.Pow(_cellsize, 2)); + } + #endregion + + //-------------- Calculate Slope --------------// + #region Calculate X and Y Slopes + + double XSlope, YSlope; + //CHECK THIS!!!: Which values of XSlope and YSlope should I use? + //Using Central differences... + if (j == cols - 1) + { + + //force slope out of grid by letting _elevation[i,j+1] = _elevation[i,j]-2 + double nextelev = _properties[i, j][0] - 2; + XSlope = (_properties[i, j - 1][0] - nextelev) / (2 * _cellsize); + //XSlope = (_elevation[i, j - 1] - _elevation[i, j]) / (2 * _cellsize); + } + else if (j == 0) + XSlope = (_properties[i, j][0] - _properties[i, j + 1][0]) / (2 * _cellsize); + else + XSlope = (_properties[i, j - 1][0] - _properties[i, j + 1][0]) / (2 * _cellsize); + + if (i == rows - 1) + { + //force slope out of grid by letting _elevation[i+1,j] = _elevation[i,j]-2 + double nextelev = +_properties[i, j][0] - 2; + YSlope = (_properties[i - 1, j][0] - nextelev) / (2 * _cellsize); + //YSlope = (_elevation[i - 1, j] - _elevation[i, j]) / (2 * _cellsize); + } + else if (i == 0) + YSlope = (_properties[i, j][0] - _properties[i + 1, j][0]) / (2 * _cellsize); + else + YSlope = (_properties[i - 1, j][0] - _properties[i + 1, j][0]) / (2 * _cellsize); + + #endregion + + //--- SET TERMS IN THE STIFFNESS MATRIX A[,]---// + #region Set Stiffness Terms + + //set (i,j) term [x,y] + A[i * cols + j, 2] = 1; + + //set (i, j+1) term [x+1,y] + if (j < cols - 1) + { + //XSlope = (_elevation[i, j] - _elevation[i, j + 1]) / _cellsize; + //dhdx = (H[i, j + 1] - H[i, j - 1]) / (2 * _cellsize); + Cx2 = (5.0 / (3.0 * nx)) * Math.Sign(XSlope) * Math.Sqrt(Math.Abs(XSlope - dhdx)) * Math.Pow(H[i, j], 2.0 / 3.0); + if (double.IsInfinity(Cx2) || double.IsNaN(Cx2)) { Cx2 = 0.0; } + int row = i * cols + j;//get the current row + int col = i * cols + j + 1;//get the next column + A[row, 3] = _dt / (2 * _cellsize) * Cx2; + } + //set (i,j-1) term [x-1,y] + if (j - 1 >= 0) + { + //XSlope = (_elevation[i, j] - _elevation[i, j - 1]) / _cellsize; + Cx2 = (5.0 / (3.0 * nx)) * Math.Sign(XSlope) * Math.Sqrt(Math.Abs(XSlope - dhdx)) * Math.Pow(H[i, j], 2.0 / 3.0); + if (double.IsInfinity(Cx2) || double.IsNaN(Cx2)) { Cx2 = 0.0; } + int row = i * cols + j;//get the current row + int col = i * cols + j - 1;//get the previous column + A[row, 1] = -1 * _dt / (2 * _cellsize) * Cx2; + } + //set (i+1,j) term [x,y+1] + if (i + 1 < rows - 1) + { + //YSlope = (_elevation[i, j] - _elevation[i + 1, j]) / _cellsize; + Cy2 = (5.0 / (3.0 * ny)) * Math.Sign(YSlope) * Math.Sqrt(Math.Abs(YSlope - dhdy)) * Math.Pow(H[i, j], 2.0 / 3.0); + if (double.IsInfinity(Cy2) || double.IsNaN(Cy2)) { Cy2 = 0.0; } + int row = i * cols + j;//get the current row + int col = i * cols + j + cols;//get the column associated with the next row (current col + number of cols in elementset) + A[row, 4] = _dt / (2 * _cellsize) * Cy2; + } + //set (i-1,j) term [x,y-1] + if (i - 1 >= 0) + { + //YSlope = (_elevation[i, j] - _elevation[i - 1, j]) / _cellsize; + Cy2 = (5.0 / (3.0 * ny)) * Math.Sign(YSlope) * Math.Sqrt(Math.Abs(YSlope - dhdy)) * Math.Pow(H[i, j], 2.0 / 3.0); + if (double.IsInfinity(Cy2) || double.IsNaN(Cy2)) { Cy2 = 0.0; } + int row = i * cols + j;//get the current row + int col = i * cols + j - cols;//get the column associated with the previous row (current col - number of cols in elementset) + A[row, 0] = -1 * _dt / (2 * _cellsize) * Cy2; + } + + for (int C = 0; C <= A.GetLength(1) - 1; C++) + sw.Write(A[i * cols + j, C].ToString() + ","); + sw.Write("\n"); + + Cx1 = (1.0 / (2.0 * nx)) * Math.Sign(XSlope) * Math.Pow(Math.Abs(XSlope - dhdx), -1.0 / 2.0) * dh2dx2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cy1 = (1.0 / (2.0 * ny)) * Math.Sign(YSlope) * Math.Pow(Math.Abs(YSlope - dhdy), -1.0 / 2.0) * dh2dy2 * Math.Pow(H[i, j], 2.0 / 3.0); + + + + //catch infinity and nan terms + if (double.IsInfinity(Cx1) || double.IsNaN(Cx1)) { Cx1 = 0.0; } + if (double.IsInfinity(Cy1) || double.IsNaN(Cy1)) { Cy1 = 0.0; } + + #endregion + + //------- SET TERMS IN THE SOURCE ARRAY -------// + #region Set Source Terms + + //multiply the flux (populated in Create Source) by dt + q[i * cols + j] *= this._dt; + //add the previous head term + q[i * cols + j] += head[i * cols + j] * (1 - (this._dt) * Cx1 - (this._dt) * Cy1); + + #endregion + } + } + sw.Write("--------\n"); + sw.Close(); + } + + /// + /// Calculates Inter-Cell flow for the Source Array + /// + /// cell flows at the current timestep + /// Source Array with Inter-Cell flows + public double[] CreateSource(double[] flows, double[] excess) + { + + //HACK: + //******** + //Should I subtract the flux from the outgoing cell??? + //******** + + //HACK: + //********* + //I think that I should be checking that the head (i.e. water height + elevation) is < 0 rather than just the elevations + //********* + + double[,] FLUX = new double[rows, cols]; + double[,] E = new double[rows, cols]; + double[,] Head = new double[rows, cols]; + + //convert head from previous time step into a 2d array; + for (int i = 0; i <= rows - 1; i++) + for (int j = 0; j <= cols - 1; j++) + Head[i, j] = head[i * cols + j]; + + //Create flux array as a combination of new flow and excess onto each cell + for (int i = 0; i <= rows - 1; i++) + { + for (int j = 0; j <= cols - 1; j++) + { + //create an array to hold flux + //BROKEN: I think this should be excess[i * cols + j] / _dt instead of (excess[i * cols + j] * _cellsize / _dt) + FLUX[i, j] = flows[i * cols + j] + excess[i * cols + j] / _dt;// +(Head[i, j] / _dt); + } + } + + //sort elevations descending + var sorted = from x in Enumerable.Range(0, rows) + from y in Enumerable.Range(0, cols) + select new + { + X = x, + Y = y, + Value = _properties[x, y][0] + } into point + orderby point.Value descending + select point; + + //loop through the sorted indices + foreach (var index in sorted) + { + int i = (int)index.X; + int j = (int)index.Y; + + //slope for i+1 cell + if (i + 1 < rows) + { + if (Head[i, j] + _properties[i, j][0] > Head[i + 1, j] + _properties[i + 1, j][0])//_elevations[i + 1, j]) + { + FLUX[i + 1, j] += (FLUX[i, j] / 2) / _cellsize; + FLUX[i, j] -= (FLUX[i, j] / 2) / _cellsize; + } + } + + //slope for i-1 cell + if (i - 1 >= 0) + { + if (Head[i, j] + _properties[i, j][0] > Head[i - 1, j] + _properties[i - 1, j][0]) + //if (Head[i, j] + _elevations[i, j] > Head[i - 1, j] + _elevations[i - 1, j]) + { + FLUX[i - 1, j] += (FLUX[i, j] / 2) / _cellsize; + FLUX[i, j] -= (FLUX[i, j] / 2) / _cellsize; + } + } + + //slope for j+1 cell + if (j + 1 < cols) + { + if (Head[i, j] + _properties[i, j][0] > Head[i, j + 1] + _properties[i, j + 1][0]) + //if (Head[i, j] + _elevations[i, j] > Head[i, j + 1] + _elevations[i, j + 1]) + { + FLUX[i, j + 1] += (FLUX[i, j] / 2) / _cellsize; + FLUX[i, j] -= (FLUX[i, j] / 2) / _cellsize; + } + } + + //slope for j-1 cell + if (j - 1 >= 0) + { + if (Head[i, j] + _properties[i, j][0] > Head[i, j - 1] + _properties[i, j - 1][0]) + //if (Head[i, j] + _elevations[i, j] > Head[i, j - 1] + _elevations[i, j - 1]) + { + FLUX[i, j - 1] += (FLUX[i, j] / 2) / _cellsize; + FLUX[i, j] -= (FLUX[i, j] / 2) / _cellsize; + } + } + } + + double[] fluxes = new double[flows.Length]; + for (int i = 0; i <= FLUX.GetLength(0) - 1; i++) + { + for (int j = 0; j <= FLUX.GetLength(1) - 1; j++) + { + fluxes[i * cols + j] = FLUX[i, j]; + } + } + return fluxes; + + #region old calc + /* + //calculate inter-cell flow + for (int i = 0; i <= rows - 1; i++) + { + for (int j = 0; j <= cols - 1; j++) + { + //get the flux from the current timestep + //double current_flux = flows[i * cols + j]; + double in_flux = 0; + + //slope for i+1 cell + if (i + 1 < rows) + { + if (H[i, j] + _elevation[i, j] < H[i + 1, j] + _elevation[i + 1, j]) + { + in_flux += FLUX[i + 1, j] / 2; + } + //if (B[i + 1, j] > 0) + //{ + + //--- + //--- From (Fiedler and Ramirez, 2000) + //---l + //add flux from river and Pe + + + + // //add inflow from known heads + // //if ((_elevation[i, j] + H[i, j]) - (_elevation[i + 1, j] + H[i + 1, j]) < 0 && H[i + 1, j] > 0) + //if (H[i, j] + _elevation[i, j] < H[i + 1, j] + _elevation[i+1, j]) + // { + // //HACK: In the future this should consider the difference in head elevations too + // //i.e.: double head_diff = (_elevation[i, j] + H[i, j]) - (_elevation[i + 1, j] + H[i + 1, j]); + + // //--- add flux from Pe and Inflow + // in_flux += FLUX[i + 1, j] / 2; + // //subtract this flux from the higher node + // //flows[(i+1) * cols + j] -= FLUX[i + 1, j] / 2; + + // //--- add flux from cell stage + // //Get the available head, assuming that all of it can flow onto the current cell + // double head_diff = H[i, j] - H[i + 1, j]; + // //convert the head difference into flux + // double head_flux = head_diff * _cellsize / _dt; + // //apply half of it to the current cell + // ////in_flux += head_flux / 2; + + // //subtract this from the higher node + // //FLUX[i + 1, j] -= head_flux / 2; + + + // //in_flux += B[i + 1, j] / _cellsize; + + // //double slope = (-1) * (_elevation[i, j] - _elevation[i + 1, j]) / _cellsize * 100; + // //double velocity = GetVelocity(slope, nx); + // //B[i, j] += ((B[i + 1, j] + _elevation[i + 1, j]) - (current_flux + _elevation[i, j])) / _cellsize * velocity; + // } + //} + } + //slope for i-1 cell + if (i - 1 >= 0) + { + + if (H[i, j] + _elevation[i, j] < H[i - 1, j] + _elevation[i - 1, j]) + { + in_flux += FLUX[i - 1, j] / 2; + } + //if (_elevation[i, j] - _elevation[i - 1, j] < 0) + //{ + //if (B[i - 1, j] > 0) + //{ + + //--- + //--- From (Fiedler and Ramirez, 2000) + //--- + //add flux from river and Pe + + //add inflow from known heads + //if ((_elevation[i, j] + H[i, j]) - (_elevation[i - 1, j] + H[i - 1, j]) < 0 && H[i - 1, j] > 0) + //if (H[i, j] + _elevation[i, j] < H[i - 1, j] + _elevation[i-1, j]) + // { + // //add flux from Pe and Inflow + // in_flux += FLUX[i - 1, j] / 2; + // //subtract this flux from the higher node + // //flows[(i-1) * cols + j] -= FLUX[i - 1, j] / 2; + + // //--- add flux from cell stage + // //Get the available head, assuming that all of it can flow onto the current cell + // double head_diff = Math.Abs(H[i, j] - H[i - 1, j]); + // //convert the head difference into flux + // double head_flux = head_diff * _cellsize / _dt; + // //apply half of it to the current cell + // ////in_flux += head_flux / 2; + + // //subtract this from the higher node + // //FLUX[i - 1, j] -= head_flux / 2; + + + // //in_flux += B[i - 1, j] / _cellsize; + + // //double slope = (-1) * (_elevation[i, j] - _elevation[i - 1, j]) / _cellsize * 100; + // //double velocity = GetVelocity(slope, nx); + // //B[i, j] += ((B[i - 1, j] + _elevation[i - 1, j]) - (current_flux + _elevation[i, j])) / _cellsize * velocity; + // } + //} + } + //slope for j+1 cell + if (j + 1 < cols) + { + + if (H[i, j] + _elevation[i, j] < H[i, j + 1] + _elevation[i, j + 1]) + { + in_flux += FLUX[i, j + 1] / 2; + } + + //if (_elevation[i, j] - _elevation[i, j + 1] < 0) + //{ + //if (B[i, j + 1] > 0) + //{ + + //--- + //--- From (Fiedler and Ramirez, 2000) + //--- + //add flux from river and Pe + + //add inflow from known heads + //if ((_elevation[i, j] + H[i, j]) - (_elevation[i, j+1] + H[i, j+1]) < 0 && H[i, j + 1] > 0 ) + //if (H[i, j] + _elevation[i, j] < H[i, j + 1] + _elevation[i, j+1]) + // { + // //add flux from Pe and Inflow + // in_flux += FLUX[i, j + 1] / 2; + // //subtract this flux from the higher node + // //flows[i * cols + j + 1] -= FLUX[i, j + 1] / 2; + + // //--- add flux from cell stage + // //Get the available head, assuming that all of it can flow onto the current cell + // double head_diff = Math.Abs(H[i, j] - H[i, j + 1]); + // //convert the head difference into flux + // double head_flux = head_diff * _cellsize / _dt; + // //apply half of it to the current cell + // ////in_flux += head_flux / 2; + + // //subtract this from the higher node + // //FLUX[i, j + 1] -= head_flux / 2; + + // //in_flux += B[i, j + 1] / _cellsize; + + // //double slope = (-1) * (_elevation[i, j] - _elevation[i, j + 1]) / _cellsize * 100; + // //double velocity = GetVelocity(slope, ny); + // //B[i, j] += ((B[i, j + 1] + _elevation[i, j + 1]) - (current_flux + _elevation[i, j])) / _cellsize * velocity; + + // } + //} + } + //slope for j-1 cell + if (j - 1 >= 0) + { + if (H[i, j] + _elevation[i, j] < H[i, j - 1] + _elevation[i, j - 1]) + { + in_flux += FLUX[i, j - 1] / 2; + } + + //if (_elevation[i, j] - _elevation[i, j - 1] < 0) + //{ + //if (B[i, j - 1] > 0) + //{ + + //--- + //--- From (Fiedler and Ramirez, 2000) + //--- + //add inflow from known heads + //if ((_elevation[i, j] + H[i, j]) - (_elevation[i, j - 1] + H[i, j - 1]) < 0 && H[i, j - 1] > 0) + //if (H[i, j] + _elevation[i, j] < H[i, j - 1] + _elevation[i, j-1]) + // { + // //add flux from Pe and Inflow + // in_flux += FLUX[i, j - 1] / 2; + // //subtract this flux from the higher node + // //flows[i * cols + j-1] -= FLUX[i, j - 1] / 2; + + // //--- add flux from cell stage + // //Get the available head, assuming that all of it can flow onto the current cell + // double head_diff = Math.Abs(H[i, j] - H[i, j - 1]); + // //convert the head difference into flux + // double head_flux = head_diff * _cellsize / _dt; + // //apply half of it to the current cell + // ////in_flux += head_flux / 2; + + // //subtract this from the higher node + // //FLUX[i, j - 1] -= head_flux / 2; + + + // } + //in_flux += B[i, j - 1] / _cellsize; + + //double slope = (-1) * (_elevation[i, j] - _elevation[i, j - 1]) / _cellsize * 100; + //double velocity = GetVelocity(slope, ny); + //B[i, j] += ((B[i, j - 1] + _elevation[i, j - 1]) - (current_flux + _elevation[i, j])) / _cellsize * velocity; + //} + //} + } + + flows[i * cols + j] = FLUX[i,j] + in_flux; + + //Ignore Small InFluxes + //if (current_flux + in_flux > 0.0001) + //B[i,j] is equal to the combination of fluxes into the cell + //flows[i * cols + j] = FLUX[i,j] + in_flux; + //FLUX[i, j] = current_flux + in_flux; + //else + //flows[i * cols + j] = FLUX[i, j]; + //FLUX[i, j] = current_flux; + + //add flux from excess precip + //B[i, j] += E[i, j] / _dt ; + } + } + */ + #endregion + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Source/ModelEngine.cs b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Source/ModelEngine.cs new file mode 100644 index 00000000..e0525d64 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Source/ModelEngine.cs @@ -0,0 +1,1736 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using SMW; +using System.Collections; +using Oatc.OpenMI.Sdk.Backbone; +using System.Diagnostics; + + + + +//////////////////////////////////////////////// +// +// Original Author: Anthony Castronova, University of South Carolina, Columbia SC +// Created On: July 21st 2010 +// Version: 1.0.0 +// +// Component Name: 2D Diffusive Wave +// Inputs: Configuration.xml +// Purpose: Perform 2D surface routing using the diffusive wave approximation. +// Methodology: Implements the diffusive wave approximation for use in surface flow routing +// in flood inundation studies. +// +// Additional Resources +// -------------------- +// Modification History: +// 10/05/10: Changed the discretization scheme to Forward Differencing. This should by changed to Crank-Nicholson or Central Diff later. +// 10/07/10: Added simple ElementSet creating routing that uses ASCII raster input +// +//////////////////////////////////////////////// + + +namespace DiffusiveWave +{ + public class ModelEngine:SMW.Wrapper + { + #region Global Variables + double[,] values; + double[] h; + double[] h1; + //double[] q; + + public double dt; + string _inStageElementSet, _inStageQuantity, + _inExcessElementSet, _inExcessQuantity, + _outExcessElementSet, _outExcessQuantity; + private int elements; + + //HACK: + public double cellsize = 10; + public int rows = 10; + public int cols = 10; + public double nx = 0.001; + public double ny = 0.001; + public double sox = 0.1; + public double soy = 0.1; + public double hw = 0.1; //HACK: need to set this somewhere else [weir height] + public double[,] _soy; + public double[,] _sox; + + double Cx1, Cx2, Cx3, Cy1, Cy2, Cy3; + double dhdx, dhdy, dh2dx2, dh2dy2; + #endregion + + public ModelEngine() + { + } + + public override void Initialize(System.Collections.Hashtable properties) + { + string config = null; + + //read input arguments + foreach (DictionaryEntry arg in properties) + { + switch (arg.Key.ToString()) + { + case "ConfigFile": + config = arg.Value.ToString(); + break; + + } + } + + //setup model properties + this.SetValuesTableFields(); + this.SetVariablesFromConfigFile(config); + + //get model information + InputExchangeItem input = this.GetInputExchangeItem(0); + _inExcessElementSet = input.ElementSet.ID; + _inExcessQuantity = input.Quantity.ID; + + input = this.GetInputExchangeItem(1); + _inStageElementSet = input.ElementSet.ID; + _inStageQuantity = input.Quantity.ID; + + dt = this.GetTimeStep()/3600; + + OutputExchangeItem output = this.GetOutputExchangeItem(0); + _outExcessElementSet = output.ElementSet.ID; + _outExcessQuantity = output.Quantity.ID; + + + + //DEBUG: manually define element set + CreateElementSet(rows, cols); + + //determine the number of elements + elements = rows * cols; + + //create array to hold head + h = new double[elements]; + + //TODO: Define these from inputs + //nx = new double[elements]; + //ny = new double[elements]; + //sox = new double[elements]; + //soy = new double[elements]; + + } + + public override bool PerformTimeStep() + { + //get inputs + ScalarSet inStage = (ScalarSet)this.GetValues(_inStageQuantity, _inStageElementSet); + double[] stage = inStage.data; + ScalarSet inExcess = (ScalarSet)this.GetValues(_inExcessQuantity,_inExcessElementSet); + double[] excess = inExcess.data; + + + //transform stage into flow + double[] flow = Stage2Flow(stage); + + //assign excess to h + if (excess.Length != h.Length) + excess = new double[h.Length]; + for (int i = 0; i <= h.Length - 1; i++) + h[i] += excess[i]; + + //transform excess into flux + //flow = Excess2Flow(flow, excess); + + //set cell flows based on stage + //double[] b = Stage2CellFlow(flow); + double[] b = flow; + + //--- Populate Stiffness Matrix --- + double[] q; + double[,] A; + CreateStiffness(stage, h, h, b,out A, out q); + + //--- Perform SOR to get first approx of H --- + h1 = SuccessiveOverRelaxation(A, q); + + //--- Re-Populate Stiffness Matrix --- + //b = q; + //double[] s = new double[stage.Length]; + CreateStiffness(stage, h1,h, b, out A, out q); + + double[] H = SuccessiveOverRelaxation(A, q); + + //--- Re-Populate Stiffness Matrix --- + //b = q; + ////double[] s = new double[stage.Length]; + //CreateStiffness(stage, h1, b, out A, out q); + + ////A = CreateStiffness(h, q); + + ////--- Perform SOR to get second approx of H --- + //double[] H = SuccessiveOverRelaxation(A, q); + + //save these head values for the next time step + h = H; + + this.SetValues(_outExcessQuantity, _outExcessElementSet, new ScalarSet(H)); + + + return true; + } + + + + private void CreateStiffness(double[] stage, double[] h, double[] h_old, double[] b, out double[,] A, out double[] q) + { + //int e = (Int32)Math.Pow(h.Length, 2); + A = new double[h.Length, h.Length]; + q = b; + + //double[,] A = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + double[,] H = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + double[,] H_old = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + int eRow = (Int32)Math.Sqrt(h.Length); + int N = (Int32)Math.Sqrt(h.Length); + + + #region convert h into 2d matrix + for (int i = 0; i <= (Int32)Math.Sqrt(h.Length) - 1; i++) + { + for (int j = 0; j <= (Int32)Math.Sqrt(h.Length) - 1; j++) + { + H[i, j] = h[j + (i * (Int32)Math.Sqrt(h.Length))]; + } + } + #endregion + + //HACK: + //set head in first column equal to the known stage + for (int i = 0; i <= (Int32)Math.Sqrt(h.Length) - 1; i++) + { + if(stage[i] > H[i, 0]) + H[i, 0] = stage[i]; + } + + #region Formulate Stiffness Matrix + + for (int i = 0; i <= H.GetLength(0) - 1; i++) + { + for (int j = 0; j <= H.GetLength(1) - 1; j++) + { + //--- ---// + //--- Calculate the non-linear terms ---// + //--- ---// + + ////if this is the first column + //if (j == 0) + //{ + // //h(i-1) == h(i) + // //dhdx = (H[i, j + 1] - H[i, j]) / (2 * cellsize); + // //dh2dx2 = (H[i, j + 1] - H[i, j]) / (Math.Pow(cellsize, 2)); + + // //forward differencing + // dhdx = (H[i, j] - H[i, j+1]) / (2 * cellsize); + // dh2dx2 = (H[i, j] - 2 * H[i, j + 1] + H[i, j + 2]) / (Math.Pow(cellsize, 2)); + //} + //else + + //if this is the second to last column + if (j == H.GetLength(1) - 2) + { + //forward differencing + dhdx = (H[i, j] - H[i, j + 1]) / (cellsize); + dh2dx2 = (H[i, j] - 2 * H[i, j + 1] + 0) / (Math.Pow(cellsize, 2)); + } + //if this is the last column + else if (j == H.GetLength(1) - 1) + { + //h(i+1) = h(i) + //dhdx = (-1 * H[i, j] + H[i, j - 1]) / (2 * cellsize); + //dh2dx2 = (-1 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + + //allow water to flow off grid, assuming the adjacent head is always zero + dhdx = (H[i, j] - 0) / (cellsize); + dh2dx2 = (H[i, j] - 2 * 0 + 0) / (Math.Pow(cellsize, 2)); + } + //if this is an interior column + else + { + //dhdx = (H[i, j + 1] - 2 * H[i, j] + H[i, j - 1]) / (2 * cellsize); + //dh2dx2 = (H[i, j + 1] - 2 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + + //forward differencing + dhdx = (H[i, j] - H[i, j + 1]) / (cellsize); + dh2dx2 = (H[i, j] - 2 * H[i, j + 1] + H[i, j + 2]) / (Math.Pow(cellsize, 2)); + } + + ////if this the first row + //if (i == 0) + //{ + // //h(j-1) = h(j) + // dhdy = (H[i + 1, j] - H[i, j]) / (2 * cellsize); + // dh2dy2 = (H[i + 1, j] - H[i, j]) / (Math.Pow(cellsize, 2)); + //} + + //if this is the second to last row + if (i == H.GetLength(0) - 2) + { + ////h(j+1) = h(j) + //dhdy = (-1 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + //dh2dy2 = (-1 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + + //forward differencing + dhdy = (H[i, j] - H[i+1, j]) / (cellsize); + dh2dy2 = (H[i, j] - 2 * H[i+1, j] + 0) / (Math.Pow(cellsize, 2)); + } + + //if this is the last row + else if (i == H.GetLength(0) - 1) + { + ////h(j+1) = h(j) + //dhdy = (-1 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + //dh2dy2 = (-1 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + + //forward differencing + dhdy = (H[i, j] - 0) / (cellsize); + dh2dy2 = (H[i, j] - 2 * 0 + 0) / (Math.Pow(cellsize, 2)); + } + //if this is an interior row + else + { + //dhdy = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + //dh2dy2 = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + + //forward differencing + dhdy = (H[i, j] - H[i + 1, j]) / (cellsize); + dh2dy2 = (H[i, j] - 2 * H[i + 1, j] + H[i + 2, j]) / (Math.Pow(cellsize, 2)); + } + + + //--- + //--- Calculate Coefficients --- + //--- + + Cx1 = (1.0 / (2.0*nx)) * Math.Pow(sox - dhdx, -1.0 / 2.0) * dh2dx2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cy1 = (1.0 / (2.0*ny)) * Math.Pow(soy - dhdy, -1.0 / 2.0) * dh2dy2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cx2 = (5.0 / (3.0*nx)) * Math.Sqrt(sox - dhdx) * Math.Pow(H[i, j], 2.0 / 3.0); + Cy2 = (5.0 / (3.0*ny)) * Math.Sqrt(soy - dhdy) * Math.Pow(H[i, j], 2.0 / 3.0); + + //catch infinity and nan terms + if (double.IsInfinity(Cx1) || double.IsNaN(Cx1)) { Cx1 = 0.0; } + if (double.IsInfinity(Cy1) || double.IsNaN(Cy1)) { Cy1 = 0.0; } + if (double.IsInfinity(Cx2) || double.IsNaN(Cx2)) { Cx2 = 0.0; } + if (double.IsInfinity(Cy2) || double.IsNaN(Cy2)) { Cy2 = 0.0; } + + //--- + //--- Add coefficients to stiffness matrix + //--- + + #region old + ////last column and last row + //if (i == H.GetLength(0) - 1 && j == H.GetLength(1) - 1) + //{ + // //(i,j) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (2 * Cx1 / (Math.Pow(cellsize, 2))) - (Cx2 / cellsize) + (2 * Cy1 / (Math.Pow(cellsize, 2))) - (Cy2 / cellsize); + // //(i,j-1) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j - 1)] = (Cx2 / (2 * cellsize)) - (Cx1 / Math.Pow(cellsize, 2)); + + + + //} + ////last column + //else if (j == H.GetLength(1) - 1) + //{ + // //(i,j) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (2 * Cx1 / (Math.Pow(cellsize, 2))) - (Cx2 / cellsize) + (2 * Cy1 / (Math.Pow(cellsize, 2))) - (Cy2 / cellsize); + // //(i,j-1) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j - 1)] = (Cx2 / (2 * cellsize)) - (Cx1 / Math.Pow(cellsize, 2)); + + // //A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1; + // //A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j - 1)] = 1; + //} + ////first column + //else if (i * H.GetLength(0) + j == 0) + //{ + // //(i,j) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (2 * Cx1 / (Math.Pow(cellsize, 2))) - (Cx2 / cellsize) + (2 * Cy1 / (Math.Pow(cellsize, 2))) - (Cy2 / cellsize); + // //(i,j-1) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = (Cx2 / (2 * cellsize)) - (Cx1 / Math.Pow(cellsize, 2)); + + // ////h(x) + // //A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1; + // ////h(x+1) + // //A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = 1; + //} + ////interior element + //else + //{ + // //(i,j) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (2*Cx1 / (Math.Pow(cellsize,2))) - (Cx2 / cellsize) + (2*Cy1 / (Math.Pow(cellsize,2))) - (Cy2/cellsize); + // //(i,j+1) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = (Cx2 / (2*cellsize)) - (Cx1 / Math.Pow(cellsize,2)); + // //(i,j-1) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j - 1)] = (Cx2 / (2 * cellsize)) - (Cx1 / Math.Pow(cellsize, 2)); + + // ////h(x) + // //A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1; + // ////h(x+1) + // //A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = 1; + // ////h(x-1) + // //A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j - 1)] = 1; + //} + + + + ////add j+1 and j-1 terms + //if ((i * H.GetLength(0) + j) - N >= 0) + //{ + // //(i-1,j) + // A[i * H.GetLength(0) + j, (i * H.GetLength(0) + j) - N] = (Cy2 / (2*cellsize)) - (Cy1/(Math.Pow(cellsize,2))); + // //A[i * H.GetLength(0) + j, (i * H.GetLength(0) + j) - N] = 1; + //} + //if ((i * H.GetLength(0) + j) + N <= h.Length - 1) + //{ + // //(i+1,j) + // A[i * H.GetLength(0) + j, (i * H.GetLength(0) + j) + N] = (Cy2 / (2 * cellsize)) - (Cy1 / (Math.Pow(cellsize, 2))); + // //A[i * H.GetLength(0) + j, (i * H.GetLength(0) + j) + N] = 1; + //} + + #endregion + + + //--------------------- SET TERMS IN THE STIFFNESS MATRIX A[,]-------------------------- + //--- + //--- set (i,j) term + //--- + A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (this.dt / cellsize) * Cx2 + (this.dt / cellsize) * Cy2; + + //--- + //--- set(i,j+1) term if its not the last column + //--- + if (j < H.GetLength(1) - 1) + { + //set (i,j+1) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + j + 1] = -1 * (this.dt / cellsize) * Cx2; + } + + //--- + //--- set(i+1,j) term if its not the last row + //--- + if ((i * H.GetLength(0) + j) + N < h.Length - 1) + { + //(i+1,j) + A[i * H.GetLength(0) + j, (i * H.GetLength(0) + j) + N] = -1 * (this.dt / cellsize)* Cy2; + } + + //------------------ SET TERMS IN THE SOURCE ARRAY----------------- + //set(i,j) term + q[i * H.GetLength(0) + j] *= this.dt; //multiply by -1 to put the flow in the correct direction + q[i * H.GetLength(0) + j] += this.dt*(1 - Cx1 - Cy1); + //q[i * H.GetLength(0) + j] += H_old[i, j];// H[i, j]; + + + } + } + #endregion + + + //DEBUG: this is to make sure the matrix is in the corrent form + for (int i = 0; i <= A.GetLength(0) - 1; i++) + { + for (int j = 0; j <= A.GetLength(1) - 1; j++) + { + Debug.Write(A[i, j].ToString() + " "); + } + Debug.Write("\n"); + } + + //return A, q; + } + + private double[,] CreateStiffness(double[] h, double[] q) + { + //int e = (Int32)Math.Pow(h.Length, 2); + double[,] A = new double[h.Length, h.Length]; + //double[,] A = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + double Dt = this.dt / 3600; + double[,] H = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + int eRow = (Int32)Math.Sqrt(h.Length); + + #region convert h into 2d matrix + for (int i = 0; i <= (Int32)Math.Sqrt(h.Length) - 1; i++) + { + for (int j = 0; j <= (Int32)Math.Sqrt(h.Length) - 1; j++) + { + H[i, j] = h[j + (i * (Int32)Math.Sqrt(h.Length))]; + } + } + #endregion + + #region Formulate Stiffness Matrix + + for (int i = 0; i <= H.GetLength(0) - 1; i++) + { + for (int j = 0; j <= H.GetLength(1) - 1; j++) + { + //--- ---// + //--- Calculate the non-linear terms ---// + //--- ---// + + //if this is the first column + if (j == 0) + { + //h(i-1) == h(i) + dhdx = (H[i, j + 1] - H[i, j]) / (2 * cellsize); + dh2dx2 = (H[i, j + 1] - H[i, j]) / (Math.Pow(cellsize, 2)); + } + //if this is the last column + else if (j == H.GetLength(1) - 1) + { + //h(i+1) = h(i) + dhdx = (-1 * H[i, j] + H[i, j - 1]) / (2 * cellsize); + dh2dx2 = (-1 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + } + //if this is an interior column + else + { + dhdx = (H[i, j + 1] - 2 * H[i, j] + H[i, j - 1]) / (2 * cellsize); + dh2dx2 = (H[i, j + 1] - 2 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + } + //if this the first row + if (i == 0) + { + //h(j-1) = h(j) + dhdy = (H[i + 1, j] - H[i, j]) / (2 * cellsize); + dh2dy2 = (H[i + 1, j] - H[i, j]) / (Math.Pow(cellsize, 2)); + } + //if this is the last row + else if (i == H.GetLength(0) - 1) + { + //h(j+1) = h(j) + dhdy = (-1 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + dh2dy2 = (-1 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + } + //if this is an interior row + else + { + dhdy = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + dh2dy2 = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + } + + + //--- + //--- Calculate Coefficients --- + //--- + + //if this is the first column + if (j == 0) + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (Math.Pow(H[i, j + 1], 2.0 / 3.0) - Math.Pow(H[i, j], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this is the last column + else if (j == H.GetLength(1) - 1) + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (-1 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i, j - 1], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this is an interior column + else + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (Math.Pow(H[i, j + 1], 2.0 / 3.0) - 2 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i, j - 1], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this the first row + if (i == 0) + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (Math.Pow(H[i + 1, j], 2.0 / 3.0) - Math.Pow(H[i, j], 2.0 / 3.0)) * (0.5) * dhdx; + + //if this is the last row + else if (i == H.GetLength(0) - 1) + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (-1 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i - 1, j], 2.0 / 3.0)) * (0.5) * dhdx; + + //if this is an interior row + else + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (Math.Pow(H[i + 1, j], 2.0 / 3.0) - 2 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i - 1, j], 2.0 / 3.0)) * (0.5) * dhdx; + + Cx1 = (Dt / cellsize) * (1.0 / 2.0) * Math.Pow(sox - dhdx, -1.0 / 2.0) * dh2dx2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cy1 = (Dt / cellsize) * (1.0 / 2.0) * Math.Pow(soy - dhdy, -1.0 / 2.0) * dh2dy2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cx3 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * Math.Pow(H[i, j], 2.0 / 3.0); + Cy3 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * Math.Pow(H[i, j], 2.0 / 3.0); + + //--- + //--- Add coefficients to stiffness matrix + //--- + + //last column and last row + if (i == H.GetLength(0) - 1 && j == H.GetLength(1) - 1) + { + //h(x) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (Cx3 / cellsize) + (Cy3 / cellsize); + + } + //last column + else if (j == H.GetLength(1) - 1) + { + //h(x) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = 0; + //h(y+1) + A[i * H.GetLength(0) + (j + 1), i * H.GetLength(0) + j] = -Cy3 / cellsize; + } + //last row + else if (i == H.GetLength(0) - 1) + { + //h(x) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = -Cx3 / cellsize; + } + //interior element + else + { + //h(x) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = -Cx3 / cellsize; + //h(y+1) + A[i * H.GetLength(0) + (j + 1), i * H.GetLength(0) + j] = -Cy3 / cellsize; + } + + + //HACK: SHOULD THIS ADD OR REPLACE (THE SECOND TIME AROUND) + q[i * H.GetLength(0) + j] += (-1) * (Cx1 + Cx2 + Cy1 + Cy2); + } + } + #endregion + return A; + } + + + + + + + + /// + /// Converts excess into flux + /// + /// flux array + /// excess rainfall + /// + private double[] Excess2Flow(double[] flow, double[] excess) + { + //assume broad crested weir + double[] Q = new double[elements]; + + for (int i = 0; i <= Q.Length - 1; i++) + { + //convert excess into volume per timestep + flow[i] += excess[i] * Math.Pow(cellsize, 2) / dt; + + + } + return flow; + } + + /// + /// This method calculates the flow rates between cells. + /// + /// flow rate at cells adjacent to river + /// + private double[] Stage2CellFlow(double[] Q) + { + + + int n = (Int32)Math.Sqrt(Q.Length); + + + + //--- Assuming only lateral flow (x dir only) --- + int col = 0; + for (int i = 1; i < Q.Length - 1; i++) + { + Q[i] += Q[i-1]; + //get the head based on the inflow of water from the adjacent river + //double h1 = h[i] + (Q[i] / Math.Pow(cellsize, 2)) * (dt); + + col++; + if (col == Math.Sqrt(Q.Length) - 1) + { + i++; + col = 0; + } + } + + //for (int i = 0; i <= n - 1; i++) + //{ + // for (int j = 0; j <= n - 2; j++) + // Q[n * j + n + i] += Q[0]; + //} + return Q; + + } + + public override void Finish() + { + } + private void CreateElementSet(int rows, int cols) + { + + //Get the input and output element sets from the SMW + ElementSet out_elem = (ElementSet)this.Outputs[0].ElementSet; + ElementSet in_elem = (ElementSet)this.Inputs[0].ElementSet; + + //Set some ElementSet properties + out_elem.ElementType = OpenMI.Standard.ElementType.XYPoint; + in_elem.ElementType = OpenMI.Standard.ElementType.XYPoint; + + + //Create elements + for (int i = 0; i <= rows-1; i++) + { + //add these elements to the output element set + Element e = new Element(); + Vertex v = new Vertex(0, i, 0); + e.AddVertex(v); + in_elem.AddElement(e); + + for (int j = 0; j <= cols - 1; j++) + { + //add these elements to the output element set + e = new Element(); + v = new Vertex(i, j, 0); + e.AddVertex(v); + out_elem.AddElement(e); + + } + } + + //initialize values matrix + values = new double[rows,cols]; + } + /// + /// + /// + /// + /// 1 for mixed implicit and explicit rep. 2 for completely implicity rep. + /// + private double[,] PopulateDiffusiveMatrix(int elements, int option) + { + double[,] A = new double[elements,elements]; + double Dt = this.dt / 3600; + #region Implicit with Non-Linear Explicit Terms + if (option == 1) + { + for (int i = 0; i <= elements - 1; i++) + { + A[i, i] += (1.0 - h[i]) / Dt; + + //-- Is this this last column? -- + if ((i+1) % Math.Sqrt(elements) == 0) + { + //use backward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h[i] - h[i - 1]) / cellsize))) + * Math.Pow((h[i] - h[i-1]), (2 / 3)); + + //-- Is this the very last element? -- + if (i == elements - 1) + { + //use backward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i] - h[i - rows]) / cellsize))) + * Math.Pow((h[rows] - h[i - rows]), (2 / 3)); + } + else + { + //use forward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i+rows] - h[i]) / cellsize))) + * Math.Pow((h[2 * rows] - h[rows]), (2 / 3)); + } + } + //-- Is this the last row? -- + else if ((i+1) >= (elements - (elements/rows))) + { + //use forward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h[i + 1] - h[i]) / cellsize))) + * Math.Pow((h[i + 1] - h[i]), (2 / 3)); + + //use backward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i] - h[i - rows]) / cellsize))) + * Math.Pow((h[rows] - h[i-rows]), (2 / 3)); + } + else + { + //use forward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h[i + 1] - h[i]) / cellsize))) + * Math.Pow((h[i + 1] - h[i]), (2 / 3)); + //use forward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i + rows] - h[i]) / cellsize))) + * Math.Pow((h[i + rows] - h[rows]), (2 / 3)); + } + } + + + } + #endregion + + #region Implict with Updated Head + else if (option == 2) + { + for (int i = 0; i <= elements - 1; i++) + { + A[i, i] += (1.0 - h[i]) / Dt; + + //-- Is this this last column? -- + if ((i + 1) % Math.Sqrt(elements) == 0) + { + //use backward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h1[i] - h1[i - 1]) / cellsize))) + * Math.Pow((h1[i] - h1[i - 1]), (2 / 3)); + + //-- Is this the very last element? -- + if (i == elements - 1) + { + //use backward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h1[i] - h1[i - rows]) / cellsize))) + * Math.Pow((h1[rows] - h1[i - rows]), (2 / 3)); + } + else + { + //use forward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h1[i + rows] - h1[i]) / cellsize))) + * Math.Pow((h1[2 * rows] - h1[rows]), (2 / 3)); + } + } + //-- Is this the last row? -- + else if ((i + 1) >= (elements - (elements / rows))) + { + //use forward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h1[i + 1] - h1[i]) / cellsize))) + * Math.Pow((h1[i + 1] - h1[i]), (2 / 3)); + + //use backward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h1[i] - h1[i - rows]) / cellsize))) + * Math.Pow((h1[rows] - h1[i - rows]), (2 / 3)); + } + else + { + //use forward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h1[i + 1] - h1[i]) / cellsize))) + * Math.Pow((h1[i + 1] - h1[i]), (2 / 3)); + //use backward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h1[i + rows] - h1[i]) / cellsize))) + * Math.Pow((h1[i + rows] - h1[i]), (2 / 3)); + } + } + } + #endregion + + #region Experimental + //experimental + else if (option == 3) + { + for (int i = 0; i <= elements - 1; i++) + { + A[i, i] += (1.0 - h[i]) / Dt; + + //if its the first element (i.e. next to the river) [ First Column ] + if (i % (elements / rows) == 0) + { + //use forward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h[i + 1] - h[i]) / cellsize))) + * Math.Pow((h[i + 1] - h[i]), (2 / 3)); + //use forward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i + rows] - h[rows]) / cellsize))) + * Math.Pow((h[i + rows] - h[rows]), (2 / 3)); + } + //[First Row, Not first Column] + else if (i <= (elements / rows)) + { + //use backward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h[i] - h[i - 1]) / cellsize))) + * Math.Pow((h[i] - h[i - 1]), (2 / 3)); + + //use forward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i + rows] - h[i]) / cellsize))) + * Math.Pow((h[i + rows] - h[i]), (2 / 3)); + } + //-- Is this this last column? -- + else if ((i + 1) % Math.Sqrt(elements) == 0) + { + //use backward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h[i] - h[i - 1]) / cellsize))) + * Math.Pow((h[i] - h[i - 1]), (2 / 3)); + + //use backward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i] - h[i - rows]) / cellsize))) + * Math.Pow((h[i] - h[i - rows]), (2 / 3)); + + } + //if its an interior element + else + { + //use backward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h[i] - h[i - 1]) / cellsize))) + * Math.Pow((h[i + 1] - h[i]), (2 / 3)); + //use backward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i] - h[i - rows]) / cellsize))) + * Math.Pow((h[i] - h[i - rows]), (2 / 3)); + } + } + } + #endregion + + return A; + } + + private double[,] PopulateA(double[] stage, double[] h) + { + //int e = (Int32)Math.Pow(h.Length, 2); + //double[,] A = new double[h.Length, h.Length]; + double[,] A = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + double Dt = this.dt / 3600; + double[,] H = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + int eRow = (Int32)Math.Sqrt(h.Length); + + #region convert h into 2d matrix + for (int i = 0; i <= (Int32)Math.Sqrt(h.Length)-1; i++) + { + for (int j = 0; j <= (Int32)Math.Sqrt(h.Length) - 1; j++) + { + H[i, j] = h[j + (i * (Int32)Math.Sqrt(h.Length))]; + } + } + #endregion + + //HACK: + //set head in first column equal to the known stage + for (int i = 0; i <= (Int32)Math.Sqrt(h.Length) - 1; i++) + { + H[i, 0] = stage[i]; + } + + #region Formulate Stiffness Matrix + double Cx1, Cx2, Cx3, Cy1, Cy2, Cy3; + double dhdx, dhdy, dh2dx2, dh2dy2; + for (int i = 0; i <= H.GetLength(0) - 1; i++) + { + for (int j = 0; j <= H.GetLength(1) - 1; j++) + { + //--- ---// + //--- Calculate the non-linear terms ---// + //--- ---// + + //if this is the first column + if (j == 0) + { + //h(i-1) == h(i) + dhdx = (H[i, j + 1] - H[i, j] ) / (2 * cellsize); + dh2dx2 = (H[i, j + 1] - H[i, j]) / (Math.Pow(cellsize, 2)); + } + //if this is the last column + else if (j == H.GetLength(1) - 1) + { + //h(i+1) = h(i) + dhdx = (-1 * H[i, j] + H[i , j - 1]) / (2 * cellsize); + dh2dx2 = (-1 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + } + //if this is an interior column + else + { + dhdx = (H[i, j + 1] - 2*H[i, j] + H[i,j - 1]) / (2*cellsize); + dh2dx2 = (H[i, j + 1] - 2 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + } + //if this the first row + if (i == 0) + { + //h(j-1) = h(j) + dhdy = (H[i + 1, j] - H[i, j]) / (2 * cellsize); + dh2dy2 = (H[i + 1, j] -H[i, j]) / (Math.Pow(cellsize, 2)); + } + //if this is the last row + else if (i == H.GetLength(0) - 1) + { + //h(j+1) = h(j) + dhdy = (-1 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + dh2dy2 = (-1 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + } + //if this is an interior row + else + { + dhdy = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + dh2dy2 = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + } + + + //--- + //--- Calculate Coefficients --- + //--- + + //if this is the first column + if (j == 0) + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (Math.Pow(H[i, j+1], 2.0 / 3.0) - Math.Pow(H[i, j], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this is the last column + else if (j == H.GetLength(1) - 1) + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (-1 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i, j - 1], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this is an interior column + else + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (Math.Pow(H[i, j+1], 2.0 / 3.0) - 2 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i, j - 1], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this the first row + if (i == 0) + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (Math.Pow(H[i + 1, j], 2.0 / 3.0) - Math.Pow(H[i, j], 2.0 / 3.0)) * (0.5) * dhdx; + + //if this is the last row + else if (i == H.GetLength(0) - 1) + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (-1 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i - 1, j], 2.0 / 3.0)) * (0.5) * dhdx; + + //if this is an interior row + else + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (Math.Pow(H[i + 1, j], 2.0 / 3.0) - 2 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i - 1, j], 2.0 / 3.0)) * (0.5) * dhdx; + + Cx1 = (Dt / cellsize) * (1.0 / 2.0) * Math.Pow(sox - dhdx, -1.0 / 2.0) * dh2dx2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cy1 = (Dt / cellsize) * (1.0 / 2.0) * Math.Pow(soy - dhdy, -1.0 / 2.0) * dh2dy2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cx3 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * Math.Pow(H[i, j], 2.0 / 3.0); + Cy3 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * Math.Pow(H[i, j], 2.0 / 3.0); + + //--- + //--- Add coefficients to stiffness matrix + //--- + + //last column and last row + if (i == H.GetLength(0) - 1 && j == H.GetLength(1) - 1) + { + //h(x) + //A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize);\ + A[i, j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + } + //last column + else if (j == H.GetLength(1) - 1) + { + ////h(x) + //A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + ////h(x+1) + //A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = 0; + ////h(y+1) + //A[i * H.GetLength(0) + (j + 1), i * H.GetLength(0) + j] = -Cy3 / cellsize; + + //h(x) + A[i,j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + //A[i,(j + 1)] = 0; + //h(y+1) + A[i+1,j] += -Cy3 / cellsize; + } + //last row + else if (i == H.GetLength(0) - 1) + { + //////h(x) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //////h(x+1) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = -Cx3 / cellsize; + + //h(x) + A[i,j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + A[i,(j + 1)] += -Cx3 / cellsize; + } + //interior element + else + { + //////h(x) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //////h(x+1) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = -Cx3 / cellsize; + //////h(y+1) + ////A[i * H.GetLength(0) + (j + 1), i * H.GetLength(0) + j] = -Cy3 / cellsize; + + //h(x) + A[i,j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + A[i,(j + 1)] += -Cx3 / cellsize; + //h(y+1) + A[i+ 1,j] += -Cy3 / cellsize; + } + } + } + #endregion + + #region set boundary elements + + //for (int i = 0; i <= H.GetLength(0) - 3; i++) + //{ + // A[i, H.GetLength(0) - 2] = A[i, H.GetLength(0) - 3]; + // A[i, H.GetLength(0) - 1] = A[i, H.GetLength(0) - 2]; + //} + //for (int j = 0; j <= H.GetLength(0) - 3; j++) + //{ + // A[H.GetLength(1) - 2,j] = A[H.GetLength(1) - 3,j]; + // A[H.GetLength(1) - 1, j] = A[H.GetLength(1) - 2, j]; + //} + + #endregion + + + #region HACK: Old Stuff + //////get h(i), nx(i), ny(i), Sox(i), Soy(i) + ////double hi = h[j + i * eRow]; + ////double sy = soy; + ////double sx = sox; + ////double nX = nx; + ////double nY = ny; + + //////first row + ////if (i == 0) + ////{ + //// A[i,j] += + ////} + //////last row + ////else if (i == eRow-1) + ////{ + ////} + //////interior rows + ////else + ////{ + ////} + + //////first col + ////if (j == 0) + ////{ + ////} + //////last col + ////else if (j == eRow-1) + ////{ + ////} + //////interior row + ////else + ////{ + ////} + +#endregion + + + + #region Implict Scheme with Explicit Non-Linear Terms + + ////for (int i = 0; i <= e - 1; i++) + ////{ + + + //// A[i, i] += (1.0 - h[i]) / Dt; + //// //-- Is this this last column? -- + //// if ((i + 1) % Math.Sqrt(elements) == 0) + //// { + //// //use backward differencing in X + //// A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + //// * Math.Sqrt((1.0 / nx) * (sox - ((h[i] - h[i - 1]) / cellsize))) + //// * Math.Pow((h[i] - h[i - 1]), (2 / 3)); + + //// //-- Is this the very last element? -- + //// if (i == elements - 1) + //// { + //// //use backward differencing in Y + //// A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + //// * Math.Sqrt((1.0 / ny) * (soy - ((h[i] - h[i - rows]) / cellsize))) + //// * Math.Pow((h[rows] - h[i - rows]), (2 / 3)); + //// } + //// else + //// { + //// //use forward differencing in Y + //// A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + //// * Math.Sqrt((1.0 / ny) * (soy - ((h[i + rows] - h[i]) / cellsize))) + //// * Math.Pow((h[2 * rows] - h[rows]), (2 / 3)); + //// } + //// } + //// //-- Is this the last row? -- + //// else if ((i + 1) >= (elements - (elements / rows))) + //// { + //// //use forward differencing in X + //// A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + //// * Math.Sqrt((1.0 / nx) * (sox - ((h[i + 1] - h[i]) / cellsize))) + //// * Math.Pow((h[i + 1] - h[i]), (2 / 3)); + + //// //use backward differencing in Y + //// A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + //// * Math.Sqrt((1.0 / ny) * (soy - ((h[i] - h[i - rows]) / cellsize))) + //// * Math.Pow((h[rows] - h[i - rows]), (2 / 3)); + //// } + //// else + //// { + //// //use forward differencing in X + //// A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + //// * Math.Sqrt((1.0 / nx) * (sox - ((h[i + 1] - h[i]) / cellsize))) + //// * Math.Pow((h[i + 1] - h[i]), (2 / 3)); + //// //use forward differencing in Y + //// A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + //// * Math.Sqrt((1.0 / ny) * (soy - ((h[i + rows] - h[i]) / cellsize))) + //// * Math.Pow((h[i + rows] - h[rows]), (2 / 3)); + //// } + ////} + + #endregion + + return A; + } + private double[,] PopulateA(double[] h) + { + //int e = (Int32)Math.Pow(h.Length, 2); + double[,] A = new double[h.Length, h.Length]; + double Dt = this.dt / 3600; + double[,] H = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + int eRow = (Int32)Math.Sqrt(h.Length); + + #region convert h into 2d matrix + for (int i = 0; i <= (Int32)Math.Sqrt(h.Length) - 1; i++) + { + for (int j = 0; j <= (Int32)Math.Sqrt(h.Length) - 1; j++) + { + H[i, j] = h[j + (i * (Int32)Math.Sqrt(h.Length))]; + } + } + #endregion + + #region Formulate Stiffness Matrix + double Cx1, Cx2, Cx3, Cy1, Cy2, Cy3; + double dhdx, dhdy, dh2dx2, dh2dy2; + for (int i = 0; i <= H.GetLength(0) - 1; i++) + { + for (int j = 0; j <= H.GetLength(1) - 1; j++) + { + //--- ---// + //--- Calculate the non-linear terms ---// + //--- ---// + + //if this is the first column + if (j == 0) + { + //h(i-1) == h(i) + dhdx = (H[i, j + 1] - H[i, j]) / (2 * cellsize); + dh2dx2 = (H[i, j + 1] - H[i, j]) / (Math.Pow(cellsize, 2)); + } + //if this is the last column + else if (j == H.GetLength(1) - 1) + { + //h(i+1) = h(i) + dhdx = (-1 * H[i, j] + H[i, j - 1]) / (2 * cellsize); + dh2dx2 = (-1 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + } + //if this is an interior column + else + { + dhdx = (H[i, j + 1] - 2 * H[i, j] + H[i, j - 1]) / (2 * cellsize); + dh2dx2 = (H[i, j + 1] - 2 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + } + //if this the first row + if (i == 0) + { + //h(j-1) = h(j) + dhdy = (H[i + 1, j] - H[i, j]) / (2 * cellsize); + dh2dy2 = (H[i + 1, j] - H[i, j]) / (Math.Pow(cellsize, 2)); + } + //if this is the last row + else if (i == H.GetLength(0) - 1) + { + //h(j+1) = h(j) + dhdy = (-1 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + dh2dy2 = (-1 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + } + //if this is an interior row + else + { + dhdy = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + dh2dy2 = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + } + + + //--- + //--- Calculate Coefficients --- + //--- + + //if this is the first column + if (j == 0) + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (Math.Pow(H[i, j + 1], 2.0 / 3.0) - Math.Pow(H[i, j], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this is the last column + else if (j == H.GetLength(1) - 1) + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (-1 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i, j - 1], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this is an interior column + else + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (Math.Pow(H[i, j + 1], 2.0 / 3.0) - 2 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i, j - 1], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this the first row + if (i == 0) + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (Math.Pow(H[i + 1, j], 2.0 / 3.0) - Math.Pow(H[i, j], 2.0 / 3.0)) * (0.5) * dhdx; + + //if this is the last row + else if (i == H.GetLength(0) - 1) + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (-1 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i - 1, j], 2.0 / 3.0)) * (0.5) * dhdx; + + //if this is an interior row + else + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (Math.Pow(H[i + 1, j], 2.0 / 3.0) - 2 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i - 1, j], 2.0 / 3.0)) * (0.5) * dhdx; + + Cx1 = (Dt / cellsize) * (1.0 / 2.0) * Math.Pow(sox - dhdx, -1.0 / 2.0) * dh2dx2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cy1 = (Dt / cellsize) * (1.0 / 2.0) * Math.Pow(soy - dhdy, -1.0 / 2.0) * dh2dy2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cx3 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * Math.Pow(H[i, j], 2.0 / 3.0); + Cy3 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * Math.Pow(H[i, j], 2.0 / 3.0); + + //--- + //--- Add coefficients to stiffness matrix + //--- + + //last column and last row + if (i == H.GetLength(0) - 1 && j == H.GetLength(1) - 1) + { + //h(x) + //A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize);\ + A[i, j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + } + //last column + else if (j == H.GetLength(1) - 1) + { + ////h(x) + //A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + ////h(x+1) + //A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = 0; + ////h(y+1) + //A[i * H.GetLength(0) + (j + 1), i * H.GetLength(0) + j] = -Cy3 / cellsize; + + //h(x) + A[i, j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + //A[i,(j + 1)] = 0; + //h(y+1) + A[i + 1, j] += -Cy3 / cellsize; + } + //last row + else if (i == H.GetLength(0) - 1) + { + //////h(x) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //////h(x+1) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = -Cx3 / cellsize; + + //h(x) + A[i, j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + A[i, (j + 1)] += -Cx3 / cellsize; + } + //interior element + else + { + //////h(x) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //////h(x+1) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = -Cx3 / cellsize; + //////h(y+1) + ////A[i * H.GetLength(0) + (j + 1), i * H.GetLength(0) + j] = -Cy3 / cellsize; + + //h(x) + A[i, j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + A[i, (j + 1)] += -Cx3 / cellsize; + //h(y+1) + A[i + 1, j] += -Cy3 / cellsize; + } + } + } + #endregion + + return A; + } + public double[,] buildExcessMatrix(int rows, int cols) + { + return new double[rows,cols]; + } + public double[] Stage2Flow(double[] stage) + { + //assume broad crested weir + double[] Q = new double[elements]; + + //get number of elements per row + int rowCount = elements / stage.Length; + + + //HACK: should probably be 9.81 + //double g = 32.2; + + int rowID = 0; + double Stage = stage[0]; + + for (int i = 0; i <= elements - 1; i++) + { + if (i % stage.Length == 0) + { + + //set crest elevation of embankment + + double hr = stage[rowID]; + double hfp = h[i]; + + double Sb = 0; + double Hr = 0; + + //calculate Hr + if (hr > hfp && hr > hw) + Hr = (hr - hw) / (hfp - hw); + else if (hfp > hw && hfp > hr) + Hr = (hfp - hw) / (hr - hw); + + //calculate submergence factor + if (Hr > 0.67) + Sb = 1.0 - 27.8 * Math.Pow(stage[rowID] - 0.67, 3); + else + Sb = 1.0; + + double Cf = 0.62; //weir discharge coefficient (broad crested)(SI) + + + //for Inflow from river to flood plain + + + if (hr > hw && hr > hfp) + Q[i] = Cf * Sb * Math.Pow(hr - hw, 3.0 / 2.0) * cellsize; + else if (hfp > hw && hfp > hr) + Q[i] = Cf * Sb * Math.Pow(hfp - hw, 3.0 / 2.0) * cellsize; + + rowID++; + } + + } + return Q; + } + + public double[] SuccessiveOverRelaxation(double[,] A, double[] b) + { + + double[] x = new double[A.GetLength(0)]; + double[] x1 = new double[A.GetLength(0)]; + double Maxdiff = 0; + + //calculate optimal relaxation factor + double C = Math.Cos(Math.PI / A.GetLength(0)) + Math.Cos(Math.PI / A.GetLength(1)); + double w = 4 / (2 + Math.Sqrt(4 + Math.Pow(C, 2))); + + do + { + for (int i = 0; i <= A.GetLength(0)-1; i++) + { + double R = 0; + + //calculate residual R + for (int j = 0; j <=i-1 ; j++) + R += A[i,j]*x1[j]; + for(int j =i+1;j<=A.GetLength(0)-1;j++) + R += A[i,j]*x[j]; + + //calculate X at time k+1 + x1[i] = (1 - w) * x[i] + (w / A[i, i]) * (b[i] - R); + } + + //check for convergence + Maxdiff = 0; + for (int i = 0; i <= A.GetLength(0) - 1; i++) + { + double diff = Math.Abs(x1[i] - x[i]); + + if (diff > Maxdiff) + Maxdiff = diff; + } + + //set x(k) = x(k+1) + x1.CopyTo(x, 0); + + + } while (Maxdiff > 0.001); + + //return result + return x1; + + #region create diagonal matrix + + + //int rows = A.GetLength(0); + //int cols = A.GetLength(1); + //double[,] U = new double[rows, cols]; + //double[,] L = new double[rows, cols]; + //double[,] D = new double[rows, cols]; + + ////create upper, lower, and diagonal matrices + //int diagonal = 0; + //for (int i = 0; i <= rows - 1; i++) + //{ + // for (int j = 0; j <= cols - 1; j++) + // { + // if (i == j) + // { + // D[i, j] = A[i, j]; + // diagonal = j; + // } + // else if (j > diagonal) + // { + // U[i, j] = A[i, j]; + // } + // else + // { + // L[i, j] = A[i, j]; + // } + + // } + //} + + //for (int array = 0; array <= 2; array++) + //{ + // for (int i = 0; i <= rows - 1; i++) + // { + // for (int j = 0; j <= cols - 1; j++) + // { + + // if (array == 0) + // { + // Debug.Write(U[i, j].ToString() + "\t"); + // } + // if (array == 1) + // { + // Debug.Write(L[i, j].ToString() + "\t"); + // } + // if(array == 2) + // { + // Debug.Write(D[i, j].ToString() + "\t"); + // } + // } + // Debug.Write("\n"); + // } + // Debug.Write("\n"); + //} + #endregion + } + + public void TransformInputsToElementSet(double[] inputs, double[] transform) + { + } + + public ElementSet BuildElementSet(string elevation, string id, string desc) + { + System.IO.StreamReader sr = new System.IO.StreamReader(elevation); + + //read element set attributes + string[] line = sr.ReadLine().Split(' '); + int cols = Convert.ToInt32(line[line.Length - 1]); line = sr.ReadLine().Split(' '); + int rows = Convert.ToInt32(line[line.Length - 1]); line = sr.ReadLine().Split(' '); + double xlower = Convert.ToDouble(line[line.Length - 1]); line = sr.ReadLine().Split(' '); + double ylower = Convert.ToDouble(line[line.Length - 1]); line = sr.ReadLine().Split(' '); + double cellsize = Convert.ToDouble(line[line.Length - 1]); line = sr.ReadLine().Split(' '); + double NODATA = Convert.ToDouble(line[line.Length - 1]); + + //create array to hold elevations + double[,] elevations = new double[rows, cols]; + _soy = new double[rows, cols]; + _sox = new double[rows, cols]; + + //get x upper and yupper coordinates + double x = xlower; + double y = ylower + cellsize * rows; + + //define element set + ElementSet elementset = new ElementSet(); + elementset.Description = desc; + elementset.ID = id; + elementset.ElementType = OpenMI.Standard.ElementType.XYPoint; + + + //read elevations + for (int i = 0; i <= rows - 1; i++) + { + line = sr.ReadLine().Split(' '); + + for (int j = 0; j <= cols - 1; j++) + { + //get the elevation + double z = Convert.ToDouble(line[j]); + + //create a new element and add a vertex to it + Element e = new Element(); + Vertex v = new Vertex(x, y, z); + e.AddVertex(v); + + //add the new element to the element set + elementset.AddElement(e); + + //get the new x coordinate + x += cellsize; + + //save this elevation + elevations[i, j] = z; + } + + //get the new y coordinate, and reset the x coordinate + y -= cellsize; + x = xlower; + } + + //calculate slopes in the x and y directions + for (int i = 0; i <= rows - 1; i++) + { + for (int j = 0; j <= cols - 1; j++) + { + + double SOY = 0; + double SOX = 0; + + //BROKEN: Apply the same error checking to SOY that you did to SOX + + //if its the first row + if (i == 0) + { + //take the difference between the (i)th and (i+1)th + SOY = elevations[i, j] - elevations[i + 1, j]; + + //check to see if something went wrong! + if (Math.Abs(SOY) > elevations[i, j] || Math.Abs(SOY) > elevations[i + 1, j]) + SOY = 0.0; + } + //if its the last row + else if (i == rows - 1) + { + //take the difference between the (i)th and (i-1)th + SOY = elevations[i, j] - elevations[i - 1, j]; + + //check to see if something went wrong! + if (Math.Abs(SOY) > elevations[i, j] || Math.Abs(SOY) > elevations[i - 1, j]) + SOY = 0.0; + } + //if its an interior row + else + { + //take the maximum of the two + double soy1 = elevations[i, j] - elevations[i + 1, j]; + double soy2 = elevations[i, j] - elevations[i - 1, j]; + + if (Math.Abs(soy1) > Math.Abs(elevations[i, j])) + { + if (Math.Abs(soy2) > Math.Abs(elevations[i, j])) + { + SOY = 0.0; + } + else + { + SOY = soy2; + } + } + else + { + if (Math.Abs(soy2) > Math.Abs(elevations[i, j])) + { + SOY = soy1; + } + else + { + if (Math.Abs(soy1) > Math.Abs(soy2)) + SOY = soy1; + else + SOY = soy2; + } + } + + } + + //if its the first column + if (j == 0) + { + //take the difference between the (j)th and (j+1)th + SOX = elevations[i, j] - elevations[i, j + 1]; + + //check to see if something went wrong! + if (Math.Abs(SOX) > elevations[i, j] || Math.Abs(SOX) > elevations[i, j + 1]) + SOX = 0.0; + } + //if its the last column + else if (j == cols - 1) + { + //take the difference between the (j)th and (j-1)th + SOX = elevations[i, j] - elevations[i, j - 1]; + + //check to see if something went wrong! + if (Math.Abs(SOX) > elevations[i, j] || Math.Abs(SOX) > elevations[i, j - 1]) + SOX = 0.0; + } + //if its an interior column + else + { + + //take the maximum of the two + double sox1 = elevations[i, j] - elevations[i, j + 1]; + double sox2 = elevations[i, j] - elevations[i, j - 1]; + + if (Math.Abs(sox1) > Math.Abs(elevations[i, j])) + { + if (Math.Abs(sox2) > Math.Abs(elevations[i, j])) + { + SOX = 0.0; + } + else + { + SOX = sox2; + } + } + else + { + if (Math.Abs(sox2) > Math.Abs(elevations[i, j])) + { + SOX = sox1; + } + else + { + if (Math.Abs(sox1) > Math.Abs(sox2)) + SOX = sox1; + else + SOX = sox2; + } + } + } + + + //set slope values + _soy[i, j] = SOY/cellsize; + _sox[i, j] = SOX/cellsize; + } + } + return elementset; + + } + + } + public class LinkableComponent : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + protected override void SetEngineApiAccess() + { + _engineApiAccess = new ModelEngine(); + } + public LinkableComponent() + { + _engineApiAccess = new ModelEngine(); + } + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Source/Wrapper.cs b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Source/Wrapper.cs new file mode 100644 index 00000000..a8d05609 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Source/Wrapper.cs @@ -0,0 +1,372 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using SMW; +using Oatc.OpenMI.Sdk.Backbone; +using System.Collections; + +namespace DiffusiveWave.Source +{ + public class Wrapper: SMW.Wrapper + { + + + public double[,] _soy; + public double[,] _sox; + public double[,] _elevation; + public double hw; + public double nx { get; set; } + public double ny { get; set; } + public double _cellsize; + private double[] _h; + private double[] h1; + private Discretization _discretization; + private Engine _engine; + private string _inStageElementSet, _inStageQuantity, + _inExcessElementSet, _inExcessQuantity, + _outExcessElementSet, _outExcessQuantity; + public double _dt; + + public Wrapper() + { + hw = 0.007; + nx = 0.1; + ny = 0.1; + //create an instance of the Engine. Set wier height hw. + _engine = new Engine(hw); + } + + public override void Initialize(System.Collections.Hashtable properties) + { + string config = null; + string elevation = null; + string fdr = null; + + //read input arguments + foreach (DictionaryEntry arg in properties) + { + switch (arg.Key.ToString()) + { + case "ConfigFile": + config = arg.Value.ToString(); + break; + case "SurfaceElevation": + elevation = arg.Value.ToString(); + break; + case "FlowDirection": + fdr = arg.Value.ToString(); + break; + } + } + + //make sure that Surface Elevation and Config path have been specified + if (config == null || elevation == null || fdr == null) + throw new Exception("Exception Occured in Diffusive Wave Wrapper: User Must Supply config path, elevation, and fdr in *.omi"); + + //setup model properties + this.SetValuesTableFields(); + this.SetVariablesFromConfigFile(config); + + //get model information + InputExchangeItem input = this.GetInputExchangeItem(0); + _inExcessElementSet = input.ElementSet.ID; + _inExcessQuantity = input.Quantity.ID; + + input = this.GetInputExchangeItem(1); + _inStageElementSet = input.ElementSet.ID; + _inStageQuantity = input.Quantity.ID; + + OutputExchangeItem output = this.GetOutputExchangeItem(0); + _outExcessElementSet = output.ElementSet.ID; + _outExcessQuantity = output.Quantity.ID; + + _dt = this.GetTimeStep(); + + //Define element set + ElementSet eset; + _engine.BuildElementSet(elevation, fdr, this.GetModelID(), this.GetModelDescription(), out eset, out _sox, out _soy); + + //save cell size + this._cellsize = _engine._cellsize; + + //save elevation + this._elevation = _engine.elevations; + + //TODO: Add more discretization schemes to the class, and allow the user to choose which one + // to use by passing an argument in the *.omi file. + //Initialize the Discretization class + + //Try using Differend Discretizations + //_discretization = new ForwardDifferencing(_engine._cellsize, this.GetTimeStep(), _engine._elementCount); + _discretization = new Euler(_engine._cellsize,this.GetTimeStep(), _engine._elementCount, _engine.elevations); + _discretization.Datum = _engine.datum; + + //set Sox and Soy + _discretization.Sox = _sox; + _discretization.Soy = _soy; + + //set Nx and Ny + _discretization.Nx = nx; + _discretization.Ny = ny; + + ////set Sox and Soy + //_discretization._sox = _sox; + //_discretization._soy = _soy; + + ////set Nx and Ny + //_discretization.nx = nx; + //_discretization.ny = ny; + + //STARTHERE: !!!!! Read land cover data and set Nx Ny + //TODO: Read land cover data and set Nx Ny + //_discretization._nx = _nx; + //_discretization._ny = _ny; + + //create array to hold head + _h = new double[_engine._elementCount]; + } + + public override bool PerformTimeStep() + { + //get inputs + ScalarSet inStage = (ScalarSet)this.GetValues(_inStageQuantity, _inStageElementSet); + double[] stage = inStage.data; + ScalarSet inExcess = (ScalarSet)this.GetValues(_inExcessQuantity,_inExcessElementSet); + double[] excess = inExcess.data; + + + //transform stage into flow + double[] flow = _engine.Stage2Flow(stage, _h,this.GetTimeStep()); + + //initialize excess, if no values were found + if (excess.Length != _h.Length) + excess = new double[_h.Length]; + + //set the source term equal to the flow into/out-of the floodplain + double[] b = flow; + + //--- Calculate Heads --- + + //set the head equal to the head from the previous timestep + _discretization.Head = _h; + + //create stiffness and source matrices + _discretization.CreateStiffness(stage, excess, _discretization.Head, b, 0); + + //perform SOR to get first approximation of head + h1 = _engine.SuccessiveOverRelaxation(_discretization.A, _discretization.q); + + //if any head values are negative, set them to zero + for (int i = 0; i <= h1.Length - 1; i++) + if (h1[i] < 0) + h1[i] = 0; + + double[,] AA = _discretization.A; + double[] qq = _discretization.q; + + //reset A and q to zero + Array.Clear(_discretization.A, 0, _discretization.A.Length); + Array.Clear(_discretization.q, 0, _discretization.q.Length); + + //create stiffness and source matrices again using the initial stage and excess, but with the heads calculated in the previous iteration + _discretization.CreateStiffness(stage, excess, h1, b, 1); + + //perform SOR to get first approximation of head + h1 = _engine.SuccessiveOverRelaxation(_discretization.A, _discretization.q); + + //if any head values are negative, set them to zero + for (int i = 0; i <= h1.Length - 1; i++) + if (h1[i] < 0) + h1[i] = 0; + + //save these head values for the next time step + _h = h1; + + //this.SetValues(_outExcessQuantity, _outExcessElementSet, new ScalarSet(_discretization.q)); + this.SetValues(_outExcessQuantity, _outExcessElementSet, new ScalarSet(_h)); + + //reset A and q to zero + Array.Clear(_discretization.A, 0, _discretization.A.Length); + Array.Clear(_discretization.q, 0, _discretization.q.Length); + + return true; + } + + public override void Finish() + { + } + } + + public class Wrapper2 : SMW.Wrapper + { + + + //public double[,] _soy; + //public double[,] _sox; + public int rows, cols; + //public double[,] _elevation; + public double hw; + public double nx { get; set; } + public double ny { get; set; } + public double _cellsize; + private double[] _h; + private double[] h1; + private Engine2 _engine; + private string _inStageElementSet, _inStageQuantity, + _inExcessElementSet, _inExcessQuantity, + _outExcessElementSet, _outExcessQuantity; + public double _dt; + + public Wrapper2() + { + hw = 0.007; + nx = 0.1; + ny = 0.1; + } + + public override void Initialize(System.Collections.Hashtable properties) + { + string config = null; + string elevation = null; + string fdr = null; + + //read input arguments + foreach (DictionaryEntry arg in properties) + { + switch (arg.Key.ToString()) + { + case "ConfigFile": + config = arg.Value.ToString(); + break; + case "SurfaceElevation": + elevation = arg.Value.ToString(); + break; + case "FlowDirection": + fdr = arg.Value.ToString(); + break; + } + } + + //make sure that Surface Elevation and Config path have been specified + if (config == null || elevation == null || fdr == null) + throw new Exception("Exception Occured in Diffusive Wave Wrapper: User Must Supply config path, elevation, and fdr in *.omi"); + + //setup model properties + this.SetValuesTableFields(); + this.SetVariablesFromConfigFile(config); + + //get model information + InputExchangeItem input = this.GetInputExchangeItem(0); + _inExcessElementSet = input.ElementSet.ID; + _inExcessQuantity = input.Quantity.ID; + + input = this.GetInputExchangeItem(1); + _inStageElementSet = input.ElementSet.ID; + _inStageQuantity = input.Quantity.ID; + + OutputExchangeItem output = this.GetOutputExchangeItem(0); + _outExcessElementSet = output.ElementSet.ID; + _outExcessQuantity = output.Quantity.ID; + + _dt = this.GetTimeStep(); + + //create instance of engine + _engine = new Engine2(hw, _dt); + + //Define element set + ElementSet eset; + _engine.BuildElementSet(elevation, this.GetModelID(), this.GetModelDescription(), out eset); + + //save cell size + this._cellsize = _engine._cellsize; + + //save elevation + //this._elevation = _engine._elevations; + rows = _engine.rows; + cols = _engine.cols; + + //set ny and nx + _engine.ny = this.ny; + _engine.nx = this.nx; + + //STARTHERE: !!!!! Read land cover data and set Nx Ny + //TODO: Read land cover data and set Nx Ny + //_discretization._nx = _nx; + //_discretization._ny = _ny; + + //create array to hold head + _h = new double[_engine._elementCount]; + } + + public override bool PerformTimeStep() + { + //get inputs + ScalarSet inStage = (ScalarSet)this.GetValues(_inStageQuantity, _inStageElementSet); + double[] stage = inStage.data; + ScalarSet inExcess = (ScalarSet)this.GetValues(_inExcessQuantity, _inExcessElementSet); + double[] excess = inExcess.data; + + + //transform stage into flow + double[] flow = _engine.Stage2Flow(stage, _h, this.GetTimeStep()); + + //initialize excess, if no values were found + if (excess.Length != _h.Length) + excess = new double[_h.Length]; + + //set the source term equal to the flow into/out-of the floodplain + double[] b = flow; + + //--- Calculate Heads --- + + //set the head equal to the head from the previous timestep + _engine.head = _h; + + //create stiffness and source matrices + _engine.CreateStiffness(stage, excess, _engine.head, b, 0); + + //perform SOR to get first approximation of head + h1 = _engine.SuccessiveOverRelaxation(); + + //if any head values are negative, set them to zero + for (int i = 0; i <= h1.Length - 1; i++) + if (h1[i] < 0) + h1[i] = 0; + + double[,] AA = _engine.A; + double[] qq = _engine.q; + + //reset A and q to zero + Array.Clear(_engine.A, 0, _engine.A.Length); + Array.Clear(_engine.q, 0, _engine.q.Length); + + //create stiffness and source matrices again using the initial stage and excess, but with the heads calculated in the previous iteration + _engine.CreateStiffness(stage, excess, h1, b, 1); + + //perform SOR to get first approximation of head + h1 = _engine.SuccessiveOverRelaxation(); + + //if any head values are negative, set them to zero + for (int i = 0; i <= h1.Length - 1; i++) + if (h1[i] < 0) + h1[i] = 0; + + //save these head values for the next time step + _h = h1; + + //this.SetValues(_outExcessQuantity, _outExcessElementSet, new ScalarSet(_discretization.q)); + this.SetValues(_outExcessQuantity, _outExcessElementSet, new ScalarSet(_h)); + + //reset A and q to zero + Array.Clear(_engine.A, 0, _engine.A.Length); + Array.Clear(_engine.q, 0, _engine.q.Length); + + return true; + } + + public override void Finish() + { + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Source/WrapperOLD.cs b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Source/WrapperOLD.cs new file mode 100644 index 00000000..23598256 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Source/WrapperOLD.cs @@ -0,0 +1,1740 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using SMW; +using System.Collections; +using Oatc.OpenMI.Sdk.Backbone; +using System.Diagnostics; + + + + +//////////////////////////////////////////////// +// +// Original Author: Anthony Castronova, University of South Carolina, Columbia SC +// Created On: July 21st 2010 +// Version: 1.0.0 +// +// Component Name: 2D Diffusive Wave +// Inputs: Configuration.xml +// Purpose: Perform 2D surface routing using the diffusive wave approximation. +// Methodology: Implements the diffusive wave approximation for use in surface flow routing +// in flood inundation studies. +// +// Additional Resources +// -------------------- +// Modification History: +// 10/05/10: Changed the discretization scheme to Forward Differencing. This should by changed to Crank-Nicholson or Central Diff later. +// 10/07/10: Added simple ElementSet creating routing that uses ASCII raster input +// +//////////////////////////////////////////////// + + +namespace DiffusiveWave +{ + public class Wrapper:SMW.Wrapper + { + #region Global Variables + double[,] values; + double[] h; + double[] h1; + //double[] q; + + public double dt; + string _inStageElementSet, _inStageQuantity, + _inExcessElementSet, _inExcessQuantity, + _outExcessElementSet, _outExcessQuantity; + private int elements; + + //HACK: + public double cellsize = 10; + public int rows = 10; + public int cols = 10; + public double nx = 0.001; + public double ny = 0.001; + public double sox = 0.1; + public double soy = 0.1; + public double hw = 0.1; //HACK: need to set this somewhere else [weir height] + public double[,] _soy; + public double[,] _sox; + + double Cx1, Cx2, Cx3, Cy1, Cy2, Cy3; + double dhdx, dhdy, dh2dx2, dh2dy2; + #endregion + + public Wrapper() + { + } + + public override void Initialize(System.Collections.Hashtable properties) + { + string config = null; + + //read input arguments + foreach (DictionaryEntry arg in properties) + { + switch (arg.Key.ToString()) + { + case "ConfigFile": + config = arg.Value.ToString(); + break; + + } + } + + //setup model properties + this.SetValuesTableFields(); + this.SetVariablesFromConfigFile(config); + + //get model information + InputExchangeItem input = this.GetInputExchangeItem(0); + _inExcessElementSet = input.ElementSet.ID; + _inExcessQuantity = input.Quantity.ID; + + input = this.GetInputExchangeItem(1); + _inStageElementSet = input.ElementSet.ID; + _inStageQuantity = input.Quantity.ID; + + dt = this.GetTimeStep()/3600; + + OutputExchangeItem output = this.GetOutputExchangeItem(0); + _outExcessElementSet = output.ElementSet.ID; + _outExcessQuantity = output.Quantity.ID; + + + + //DEBUG: manually define element set + CreateElementSet(rows, cols); + + //determine the number of elements + elements = rows * cols; + + //create array to hold head + h = new double[elements]; + + //TODO: Define these from inputs + //nx = new double[elements]; + //ny = new double[elements]; + //sox = new double[elements]; + //soy = new double[elements]; + + } + + public override bool PerformTimeStep() + { + //get inputs + ScalarSet inStage = (ScalarSet)this.GetValues(_inStageQuantity, _inStageElementSet); + double[] stage = inStage.data; + ScalarSet inExcess = (ScalarSet)this.GetValues(_inExcessQuantity,_inExcessElementSet); + double[] excess = inExcess.data; + + + //transform stage into flow + double[] flow = Stage2Flow(stage); + + //assign excess to h + if (excess.Length != h.Length) + excess = new double[h.Length]; + for (int i = 0; i <= h.Length - 1; i++) + h[i] += excess[i]; + + //transform excess into flux + //flow = Excess2Flow(flow, excess); + + //set cell flows based on stage + //double[] b = Stage2CellFlow(flow); + double[] b = flow; + + //--- Populate Stiffness Matrix --- + double[] q; + double[,] A; + CreateStiffness(stage, h, h, b,out A, out q); + + //--- Perform SOR to get first approx of H --- + h1 = SuccessiveOverRelaxation(A, q); + + //--- Re-Populate Stiffness Matrix --- + //b = q; + //double[] s = new double[stage.Length]; + CreateStiffness(stage, h1,h, b, out A, out q); + + double[] H = SuccessiveOverRelaxation(A, q); + + //--- Re-Populate Stiffness Matrix --- + //b = q; + ////double[] s = new double[stage.Length]; + //CreateStiffness(stage, h1, b, out A, out q); + + ////A = CreateStiffness(h, q); + + ////--- Perform SOR to get second approx of H --- + //double[] H = SuccessiveOverRelaxation(A, q); + + //save these head values for the next time step + h = H; + + this.SetValues(_outExcessQuantity, _outExcessElementSet, new ScalarSet(H)); + + + return true; + } + + + + private void CreateStiffness(double[] stage, double[] h, double[] h_old, double[] b, out double[,] A, out double[] q) + { + //int e = (Int32)Math.Pow(h.Length, 2); + A = new double[h.Length, h.Length]; + q = b; + + //double[,] A = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + double[,] H = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + double[,] H_old = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + int eRow = (Int32)Math.Sqrt(h.Length); + int N = (Int32)Math.Sqrt(h.Length); + + + #region convert h into 2d matrix + for (int i = 0; i <= (Int32)Math.Sqrt(h.Length) - 1; i++) + { + for (int j = 0; j <= (Int32)Math.Sqrt(h.Length) - 1; j++) + { + H[i, j] = h[j + (i * (Int32)Math.Sqrt(h.Length))]; + } + } + #endregion + + //HACK: + //set head in first column equal to the known stage + for (int i = 0; i <= (Int32)Math.Sqrt(h.Length) - 1; i++) + { + if(stage[i] > H[i, 0]) + H[i, 0] = stage[i]; + } + + #region Formulate Stiffness Matrix + + for (int i = 0; i <= H.GetLength(0) - 1; i++) + { + for (int j = 0; j <= H.GetLength(1) - 1; j++) + { + //--- ---// + //--- Calculate the non-linear terms ---// + //--- ---// + + ////if this is the first column + //if (j == 0) + //{ + // //h(i-1) == h(i) + // //dhdx = (H[i, j + 1] - H[i, j]) / (2 * cellsize); + // //dh2dx2 = (H[i, j + 1] - H[i, j]) / (Math.Pow(cellsize, 2)); + + // //forward differencing + // dhdx = (H[i, j] - H[i, j+1]) / (2 * cellsize); + // dh2dx2 = (H[i, j] - 2 * H[i, j + 1] + H[i, j + 2]) / (Math.Pow(cellsize, 2)); + //} + //else + + //if this is the second to last column + if (j == H.GetLength(1) - 2) + { + //forward differencing + dhdx = (H[i, j] - H[i, j + 1]) / (cellsize); + dh2dx2 = (H[i, j] - 2 * H[i, j + 1] + 0) / (Math.Pow(cellsize, 2)); + } + //if this is the last column + else if (j == H.GetLength(1) - 1) + { + //h(i+1) = h(i) + //dhdx = (-1 * H[i, j] + H[i, j - 1]) / (2 * cellsize); + //dh2dx2 = (-1 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + + //allow water to flow off grid, assuming the adjacent head is always zero + dhdx = (H[i, j] - 0) / (cellsize); + dh2dx2 = (H[i, j] - 2 * 0 + 0) / (Math.Pow(cellsize, 2)); + } + //if this is an interior column + else + { + //dhdx = (H[i, j + 1] - 2 * H[i, j] + H[i, j - 1]) / (2 * cellsize); + //dh2dx2 = (H[i, j + 1] - 2 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + + //forward differencing + dhdx = (H[i, j] - H[i, j + 1]) / (cellsize); + dh2dx2 = (H[i, j] - 2 * H[i, j + 1] + H[i, j + 2]) / (Math.Pow(cellsize, 2)); + } + + ////if this the first row + //if (i == 0) + //{ + // //h(j-1) = h(j) + // dhdy = (H[i + 1, j] - H[i, j]) / (2 * cellsize); + // dh2dy2 = (H[i + 1, j] - H[i, j]) / (Math.Pow(cellsize, 2)); + //} + + //if this is the second to last row + if (i == H.GetLength(0) - 2) + { + ////h(j+1) = h(j) + //dhdy = (-1 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + //dh2dy2 = (-1 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + + //forward differencing + dhdy = (H[i, j] - H[i+1, j]) / (cellsize); + dh2dy2 = (H[i, j] - 2 * H[i+1, j] + 0) / (Math.Pow(cellsize, 2)); + } + + //if this is the last row + else if (i == H.GetLength(0) - 1) + { + ////h(j+1) = h(j) + //dhdy = (-1 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + //dh2dy2 = (-1 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + + //forward differencing + dhdy = (H[i, j] - 0) / (cellsize); + dh2dy2 = (H[i, j] - 2 * 0 + 0) / (Math.Pow(cellsize, 2)); + } + //if this is an interior row + else + { + //dhdy = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + //dh2dy2 = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + + //forward differencing + dhdy = (H[i, j] - H[i + 1, j]) / (cellsize); + dh2dy2 = (H[i, j] - 2 * H[i + 1, j] + H[i + 2, j]) / (Math.Pow(cellsize, 2)); + } + + + //--- + //--- Calculate Coefficients --- + //--- + + Cx1 = (1.0 / (2.0*nx)) * Math.Pow(sox - dhdx, -1.0 / 2.0) * dh2dx2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cy1 = (1.0 / (2.0*ny)) * Math.Pow(soy - dhdy, -1.0 / 2.0) * dh2dy2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cx2 = (5.0 / (3.0*nx)) * Math.Sqrt(sox - dhdx) * Math.Pow(H[i, j], 2.0 / 3.0); + Cy2 = (5.0 / (3.0*ny)) * Math.Sqrt(soy - dhdy) * Math.Pow(H[i, j], 2.0 / 3.0); + + //catch infinity and nan terms + if (double.IsInfinity(Cx1) || double.IsNaN(Cx1)) { Cx1 = 0.0; } + if (double.IsInfinity(Cy1) || double.IsNaN(Cy1)) { Cy1 = 0.0; } + if (double.IsInfinity(Cx2) || double.IsNaN(Cx2)) { Cx2 = 0.0; } + if (double.IsInfinity(Cy2) || double.IsNaN(Cy2)) { Cy2 = 0.0; } + + //--- + //--- Add coefficients to stiffness matrix + //--- + + #region old + ////last column and last row + //if (i == H.GetLength(0) - 1 && j == H.GetLength(1) - 1) + //{ + // //(i,j) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (2 * Cx1 / (Math.Pow(cellsize, 2))) - (Cx2 / cellsize) + (2 * Cy1 / (Math.Pow(cellsize, 2))) - (Cy2 / cellsize); + // //(i,j-1) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j - 1)] = (Cx2 / (2 * cellsize)) - (Cx1 / Math.Pow(cellsize, 2)); + + + + //} + ////last column + //else if (j == H.GetLength(1) - 1) + //{ + // //(i,j) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (2 * Cx1 / (Math.Pow(cellsize, 2))) - (Cx2 / cellsize) + (2 * Cy1 / (Math.Pow(cellsize, 2))) - (Cy2 / cellsize); + // //(i,j-1) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j - 1)] = (Cx2 / (2 * cellsize)) - (Cx1 / Math.Pow(cellsize, 2)); + + // //A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1; + // //A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j - 1)] = 1; + //} + ////first column + //else if (i * H.GetLength(0) + j == 0) + //{ + // //(i,j) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (2 * Cx1 / (Math.Pow(cellsize, 2))) - (Cx2 / cellsize) + (2 * Cy1 / (Math.Pow(cellsize, 2))) - (Cy2 / cellsize); + // //(i,j-1) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = (Cx2 / (2 * cellsize)) - (Cx1 / Math.Pow(cellsize, 2)); + + // ////h(x) + // //A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1; + // ////h(x+1) + // //A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = 1; + //} + ////interior element + //else + //{ + // //(i,j) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (2*Cx1 / (Math.Pow(cellsize,2))) - (Cx2 / cellsize) + (2*Cy1 / (Math.Pow(cellsize,2))) - (Cy2/cellsize); + // //(i,j+1) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = (Cx2 / (2*cellsize)) - (Cx1 / Math.Pow(cellsize,2)); + // //(i,j-1) + // A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j - 1)] = (Cx2 / (2 * cellsize)) - (Cx1 / Math.Pow(cellsize, 2)); + + // ////h(x) + // //A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1; + // ////h(x+1) + // //A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = 1; + // ////h(x-1) + // //A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j - 1)] = 1; + //} + + + + ////add j+1 and j-1 terms + //if ((i * H.GetLength(0) + j) - N >= 0) + //{ + // //(i-1,j) + // A[i * H.GetLength(0) + j, (i * H.GetLength(0) + j) - N] = (Cy2 / (2*cellsize)) - (Cy1/(Math.Pow(cellsize,2))); + // //A[i * H.GetLength(0) + j, (i * H.GetLength(0) + j) - N] = 1; + //} + //if ((i * H.GetLength(0) + j) + N <= h.Length - 1) + //{ + // //(i+1,j) + // A[i * H.GetLength(0) + j, (i * H.GetLength(0) + j) + N] = (Cy2 / (2 * cellsize)) - (Cy1 / (Math.Pow(cellsize, 2))); + // //A[i * H.GetLength(0) + j, (i * H.GetLength(0) + j) + N] = 1; + //} + + #endregion + + + //--------------------- SET TERMS IN THE STIFFNESS MATRIX A[,]-------------------------- + //--- + //--- set (i,j) term + //--- + A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (this.dt / cellsize) * Cx2 + (this.dt / cellsize) * Cy2; + + //--- + //--- set(i,j+1) term if its not the last column + //--- + if (j < H.GetLength(1) - 1) + { + //set (i,j+1) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + j + 1] = -1 * (this.dt / cellsize) * Cx2; + } + + //--- + //--- set(i+1,j) term if its not the last row + //--- + if ((i * H.GetLength(0) + j) + N < h.Length - 1) + { + //(i+1,j) + A[i * H.GetLength(0) + j, (i * H.GetLength(0) + j) + N] = -1 * (this.dt / cellsize)* Cy2; + } + + //------------------ SET TERMS IN THE SOURCE ARRAY----------------- + //set(i,j) term + q[i * H.GetLength(0) + j] *= this.dt; //multiply by -1 to put the flow in the correct direction + q[i * H.GetLength(0) + j] += this.dt*(1 - Cx1 - Cy1); + //q[i * H.GetLength(0) + j] += H_old[i, j];// H[i, j]; + + + } + } + #endregion + + + //DEBUG: this is to make sure the matrix is in the corrent form + for (int i = 0; i <= A.GetLength(0) - 1; i++) + { + for (int j = 0; j <= A.GetLength(1) - 1; j++) + { + Debug.Write(A[i, j].ToString() + " "); + } + Debug.Write("\n"); + } + + //return A, q; + } + + private double[,] CreateStiffness(double[] h, double[] q) + { + //int e = (Int32)Math.Pow(h.Length, 2); + double[,] A = new double[h.Length, h.Length]; + //double[,] A = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + double Dt = this.dt / 3600; + double[,] H = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + int eRow = (Int32)Math.Sqrt(h.Length); + + #region convert h into 2d matrix + for (int i = 0; i <= (Int32)Math.Sqrt(h.Length) - 1; i++) + { + for (int j = 0; j <= (Int32)Math.Sqrt(h.Length) - 1; j++) + { + H[i, j] = h[j + (i * (Int32)Math.Sqrt(h.Length))]; + } + } + #endregion + + #region Formulate Stiffness Matrix + + for (int i = 0; i <= H.GetLength(0) - 1; i++) + { + for (int j = 0; j <= H.GetLength(1) - 1; j++) + { + //--- ---// + //--- Calculate the non-linear terms ---// + //--- ---// + + //if this is the first column + if (j == 0) + { + //h(i-1) == h(i) + dhdx = (H[i, j + 1] - H[i, j]) / (2 * cellsize); + dh2dx2 = (H[i, j + 1] - H[i, j]) / (Math.Pow(cellsize, 2)); + } + //if this is the last column + else if (j == H.GetLength(1) - 1) + { + //h(i+1) = h(i) + dhdx = (-1 * H[i, j] + H[i, j - 1]) / (2 * cellsize); + dh2dx2 = (-1 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + } + //if this is an interior column + else + { + dhdx = (H[i, j + 1] - 2 * H[i, j] + H[i, j - 1]) / (2 * cellsize); + dh2dx2 = (H[i, j + 1] - 2 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + } + //if this the first row + if (i == 0) + { + //h(j-1) = h(j) + dhdy = (H[i + 1, j] - H[i, j]) / (2 * cellsize); + dh2dy2 = (H[i + 1, j] - H[i, j]) / (Math.Pow(cellsize, 2)); + } + //if this is the last row + else if (i == H.GetLength(0) - 1) + { + //h(j+1) = h(j) + dhdy = (-1 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + dh2dy2 = (-1 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + } + //if this is an interior row + else + { + dhdy = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + dh2dy2 = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + } + + + //--- + //--- Calculate Coefficients --- + //--- + + //if this is the first column + if (j == 0) + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (Math.Pow(H[i, j + 1], 2.0 / 3.0) - Math.Pow(H[i, j], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this is the last column + else if (j == H.GetLength(1) - 1) + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (-1 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i, j - 1], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this is an interior column + else + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (Math.Pow(H[i, j + 1], 2.0 / 3.0) - 2 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i, j - 1], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this the first row + if (i == 0) + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (Math.Pow(H[i + 1, j], 2.0 / 3.0) - Math.Pow(H[i, j], 2.0 / 3.0)) * (0.5) * dhdx; + + //if this is the last row + else if (i == H.GetLength(0) - 1) + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (-1 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i - 1, j], 2.0 / 3.0)) * (0.5) * dhdx; + + //if this is an interior row + else + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (Math.Pow(H[i + 1, j], 2.0 / 3.0) - 2 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i - 1, j], 2.0 / 3.0)) * (0.5) * dhdx; + + Cx1 = (Dt / cellsize) * (1.0 / 2.0) * Math.Pow(sox - dhdx, -1.0 / 2.0) * dh2dx2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cy1 = (Dt / cellsize) * (1.0 / 2.0) * Math.Pow(soy - dhdy, -1.0 / 2.0) * dh2dy2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cx3 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * Math.Pow(H[i, j], 2.0 / 3.0); + Cy3 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * Math.Pow(H[i, j], 2.0 / 3.0); + + //--- + //--- Add coefficients to stiffness matrix + //--- + + //last column and last row + if (i == H.GetLength(0) - 1 && j == H.GetLength(1) - 1) + { + //h(x) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (Cx3 / cellsize) + (Cy3 / cellsize); + + } + //last column + else if (j == H.GetLength(1) - 1) + { + //h(x) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = 0; + //h(y+1) + A[i * H.GetLength(0) + (j + 1), i * H.GetLength(0) + j] = -Cy3 / cellsize; + } + //last row + else if (i == H.GetLength(0) - 1) + { + //h(x) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = -Cx3 / cellsize; + } + //interior element + else + { + //h(x) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = -Cx3 / cellsize; + //h(y+1) + A[i * H.GetLength(0) + (j + 1), i * H.GetLength(0) + j] = -Cy3 / cellsize; + } + + + //HACK: SHOULD THIS ADD OR REPLACE (THE SECOND TIME AROUND) + q[i * H.GetLength(0) + j] += (-1) * (Cx1 + Cx2 + Cy1 + Cy2); + } + } + #endregion + return A; + } + + + + + + + + /// + /// Converts excess into flux + /// + /// flux array + /// excess rainfall + /// + private double[] Excess2Flow(double[] flow, double[] excess) + { + //assume broad crested weir + double[] Q = new double[elements]; + + for (int i = 0; i <= Q.Length - 1; i++) + { + //convert excess into volume per timestep + flow[i] += excess[i] * Math.Pow(cellsize, 2) / dt; + + + } + return flow; + } + + /// + /// This method calculates the flow rates between cells. + /// + /// flow rate at cells adjacent to river + /// + private double[] Stage2CellFlow(double[] Q) + { + + + int n = (Int32)Math.Sqrt(Q.Length); + + + + //--- Assuming only lateral flow (x dir only) --- + int col = 0; + for (int i = 1; i < Q.Length - 1; i++) + { + Q[i] += Q[i-1]; + //get the head based on the inflow of water from the adjacent river + //double h1 = h[i] + (Q[i] / Math.Pow(cellsize, 2)) * (dt); + + col++; + if (col == Math.Sqrt(Q.Length) - 1) + { + i++; + col = 0; + } + } + + //for (int i = 0; i <= n - 1; i++) + //{ + // for (int j = 0; j <= n - 2; j++) + // Q[n * j + n + i] += Q[0]; + //} + return Q; + + } + + public override void Finish() + { + } + private void CreateElementSet(int rows, int cols) + { + + //Get the input and output element sets from the SMW + ElementSet out_elem = (ElementSet)this.Outputs[0].ElementSet; + ElementSet in_elem = (ElementSet)this.Inputs[0].ElementSet; + + //Set some ElementSet properties + out_elem.ElementType = OpenMI.Standard.ElementType.XYPoint; + in_elem.ElementType = OpenMI.Standard.ElementType.XYPoint; + + + //Create elements + for (int i = 0; i <= rows-1; i++) + { + //add these elements to the output element set + Element e = new Element(); + Vertex v = new Vertex(0, i, 0); + e.AddVertex(v); + in_elem.AddElement(e); + + for (int j = 0; j <= cols - 1; j++) + { + //add these elements to the output element set + e = new Element(); + v = new Vertex(i, j, 0); + e.AddVertex(v); + out_elem.AddElement(e); + + } + } + + //initialize values matrix + values = new double[rows,cols]; + } + + /// + /// + /// + /// + /// 1 for mixed implicit and explicit rep. 2 for completely implicity rep. + /// + private double[,] PopulateDiffusiveMatrix(int elements, int option) + { + double[,] A = new double[elements,elements]; + double Dt = this.dt / 3600; + #region Implicit with Non-Linear Explicit Terms + if (option == 1) + { + for (int i = 0; i <= elements - 1; i++) + { + A[i, i] += (1.0 - h[i]) / Dt; + + //-- Is this this last column? -- + if ((i+1) % Math.Sqrt(elements) == 0) + { + //use backward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h[i] - h[i - 1]) / cellsize))) + * Math.Pow((h[i] - h[i-1]), (2 / 3)); + + //-- Is this the very last element? -- + if (i == elements - 1) + { + //use backward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i] - h[i - rows]) / cellsize))) + * Math.Pow((h[rows] - h[i - rows]), (2 / 3)); + } + else + { + //use forward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i+rows] - h[i]) / cellsize))) + * Math.Pow((h[2 * rows] - h[rows]), (2 / 3)); + } + } + //-- Is this the last row? -- + else if ((i+1) >= (elements - (elements/rows))) + { + //use forward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h[i + 1] - h[i]) / cellsize))) + * Math.Pow((h[i + 1] - h[i]), (2 / 3)); + + //use backward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i] - h[i - rows]) / cellsize))) + * Math.Pow((h[rows] - h[i-rows]), (2 / 3)); + } + else + { + //use forward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h[i + 1] - h[i]) / cellsize))) + * Math.Pow((h[i + 1] - h[i]), (2 / 3)); + //use forward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i + rows] - h[i]) / cellsize))) + * Math.Pow((h[i + rows] - h[rows]), (2 / 3)); + } + } + + + } + #endregion + + #region Implict with Updated Head + else if (option == 2) + { + for (int i = 0; i <= elements - 1; i++) + { + A[i, i] += (1.0 - h[i]) / Dt; + + //-- Is this this last column? -- + if ((i + 1) % Math.Sqrt(elements) == 0) + { + //use backward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h1[i] - h1[i - 1]) / cellsize))) + * Math.Pow((h1[i] - h1[i - 1]), (2 / 3)); + + //-- Is this the very last element? -- + if (i == elements - 1) + { + //use backward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h1[i] - h1[i - rows]) / cellsize))) + * Math.Pow((h1[rows] - h1[i - rows]), (2 / 3)); + } + else + { + //use forward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h1[i + rows] - h1[i]) / cellsize))) + * Math.Pow((h1[2 * rows] - h1[rows]), (2 / 3)); + } + } + //-- Is this the last row? -- + else if ((i + 1) >= (elements - (elements / rows))) + { + //use forward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h1[i + 1] - h1[i]) / cellsize))) + * Math.Pow((h1[i + 1] - h1[i]), (2 / 3)); + + //use backward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h1[i] - h1[i - rows]) / cellsize))) + * Math.Pow((h1[rows] - h1[i - rows]), (2 / 3)); + } + else + { + //use forward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h1[i + 1] - h1[i]) / cellsize))) + * Math.Pow((h1[i + 1] - h1[i]), (2 / 3)); + //use backward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h1[i + rows] - h1[i]) / cellsize))) + * Math.Pow((h1[i + rows] - h1[i]), (2 / 3)); + } + } + } + #endregion + + #region Experimental + //experimental + else if (option == 3) + { + for (int i = 0; i <= elements - 1; i++) + { + A[i, i] += (1.0 - h[i]) / Dt; + + //if its the first element (i.e. next to the river) [ First Column ] + if (i % (elements / rows) == 0) + { + //use forward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h[i + 1] - h[i]) / cellsize))) + * Math.Pow((h[i + 1] - h[i]), (2 / 3)); + //use forward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i + rows] - h[rows]) / cellsize))) + * Math.Pow((h[i + rows] - h[rows]), (2 / 3)); + } + //[First Row, Not first Column] + else if (i <= (elements / rows)) + { + //use backward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h[i] - h[i - 1]) / cellsize))) + * Math.Pow((h[i] - h[i - 1]), (2 / 3)); + + //use forward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i + rows] - h[i]) / cellsize))) + * Math.Pow((h[i + rows] - h[i]), (2 / 3)); + } + //-- Is this this last column? -- + else if ((i + 1) % Math.Sqrt(elements) == 0) + { + //use backward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h[i] - h[i - 1]) / cellsize))) + * Math.Pow((h[i] - h[i - 1]), (2 / 3)); + + //use backward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i] - h[i - rows]) / cellsize))) + * Math.Pow((h[i] - h[i - rows]), (2 / 3)); + + } + //if its an interior element + else + { + //use backward differencing in X + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / nx) * (sox - ((h[i] - h[i - 1]) / cellsize))) + * Math.Pow((h[i + 1] - h[i]), (2 / 3)); + //use backward differencing in Y + A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + * Math.Sqrt((1.0 / ny) * (soy - ((h[i] - h[i - rows]) / cellsize))) + * Math.Pow((h[i] - h[i - rows]), (2 / 3)); + } + } + } + #endregion + + return A; + } + + private double[,] PopulateA(double[] stage, double[] h) + { + //int e = (Int32)Math.Pow(h.Length, 2); + //double[,] A = new double[h.Length, h.Length]; + double[,] A = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + double Dt = this.dt / 3600; + double[,] H = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + int eRow = (Int32)Math.Sqrt(h.Length); + + #region convert h into 2d matrix + for (int i = 0; i <= (Int32)Math.Sqrt(h.Length)-1; i++) + { + for (int j = 0; j <= (Int32)Math.Sqrt(h.Length) - 1; j++) + { + H[i, j] = h[j + (i * (Int32)Math.Sqrt(h.Length))]; + } + } + #endregion + + //HACK: + //set head in first column equal to the known stage + for (int i = 0; i <= (Int32)Math.Sqrt(h.Length) - 1; i++) + { + H[i, 0] = stage[i]; + } + + #region Formulate Stiffness Matrix + double Cx1, Cx2, Cx3, Cy1, Cy2, Cy3; + double dhdx, dhdy, dh2dx2, dh2dy2; + for (int i = 0; i <= H.GetLength(0) - 1; i++) + { + for (int j = 0; j <= H.GetLength(1) - 1; j++) + { + //--- ---// + //--- Calculate the non-linear terms ---// + //--- ---// + + //if this is the first column + if (j == 0) + { + //h(i-1) == h(i) + dhdx = (H[i, j + 1] - H[i, j] ) / (2 * cellsize); + dh2dx2 = (H[i, j + 1] - H[i, j]) / (Math.Pow(cellsize, 2)); + } + //if this is the last column + else if (j == H.GetLength(1) - 1) + { + //h(i+1) = h(i) + dhdx = (-1 * H[i, j] + H[i , j - 1]) / (2 * cellsize); + dh2dx2 = (-1 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + } + //if this is an interior column + else + { + dhdx = (H[i, j + 1] - 2*H[i, j] + H[i,j - 1]) / (2*cellsize); + dh2dx2 = (H[i, j + 1] - 2 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + } + //if this the first row + if (i == 0) + { + //h(j-1) = h(j) + dhdy = (H[i + 1, j] - H[i, j]) / (2 * cellsize); + dh2dy2 = (H[i + 1, j] -H[i, j]) / (Math.Pow(cellsize, 2)); + } + //if this is the last row + else if (i == H.GetLength(0) - 1) + { + //h(j+1) = h(j) + dhdy = (-1 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + dh2dy2 = (-1 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + } + //if this is an interior row + else + { + dhdy = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + dh2dy2 = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + } + + + //--- + //--- Calculate Coefficients --- + //--- + + //if this is the first column + if (j == 0) + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (Math.Pow(H[i, j+1], 2.0 / 3.0) - Math.Pow(H[i, j], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this is the last column + else if (j == H.GetLength(1) - 1) + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (-1 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i, j - 1], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this is an interior column + else + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (Math.Pow(H[i, j+1], 2.0 / 3.0) - 2 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i, j - 1], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this the first row + if (i == 0) + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (Math.Pow(H[i + 1, j], 2.0 / 3.0) - Math.Pow(H[i, j], 2.0 / 3.0)) * (0.5) * dhdx; + + //if this is the last row + else if (i == H.GetLength(0) - 1) + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (-1 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i - 1, j], 2.0 / 3.0)) * (0.5) * dhdx; + + //if this is an interior row + else + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (Math.Pow(H[i + 1, j], 2.0 / 3.0) - 2 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i - 1, j], 2.0 / 3.0)) * (0.5) * dhdx; + + Cx1 = (Dt / cellsize) * (1.0 / 2.0) * Math.Pow(sox - dhdx, -1.0 / 2.0) * dh2dx2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cy1 = (Dt / cellsize) * (1.0 / 2.0) * Math.Pow(soy - dhdy, -1.0 / 2.0) * dh2dy2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cx3 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * Math.Pow(H[i, j], 2.0 / 3.0); + Cy3 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * Math.Pow(H[i, j], 2.0 / 3.0); + + //--- + //--- Add coefficients to stiffness matrix + //--- + + //last column and last row + if (i == H.GetLength(0) - 1 && j == H.GetLength(1) - 1) + { + //h(x) + //A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize);\ + A[i, j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + } + //last column + else if (j == H.GetLength(1) - 1) + { + ////h(x) + //A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + ////h(x+1) + //A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = 0; + ////h(y+1) + //A[i * H.GetLength(0) + (j + 1), i * H.GetLength(0) + j] = -Cy3 / cellsize; + + //h(x) + A[i,j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + //A[i,(j + 1)] = 0; + //h(y+1) + A[i+1,j] += -Cy3 / cellsize; + } + //last row + else if (i == H.GetLength(0) - 1) + { + //////h(x) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //////h(x+1) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = -Cx3 / cellsize; + + //h(x) + A[i,j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + A[i,(j + 1)] += -Cx3 / cellsize; + } + //interior element + else + { + //////h(x) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //////h(x+1) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = -Cx3 / cellsize; + //////h(y+1) + ////A[i * H.GetLength(0) + (j + 1), i * H.GetLength(0) + j] = -Cy3 / cellsize; + + //h(x) + A[i,j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + A[i,(j + 1)] += -Cx3 / cellsize; + //h(y+1) + A[i+ 1,j] += -Cy3 / cellsize; + } + } + } + #endregion + + #region set boundary elements + + //for (int i = 0; i <= H.GetLength(0) - 3; i++) + //{ + // A[i, H.GetLength(0) - 2] = A[i, H.GetLength(0) - 3]; + // A[i, H.GetLength(0) - 1] = A[i, H.GetLength(0) - 2]; + //} + //for (int j = 0; j <= H.GetLength(0) - 3; j++) + //{ + // A[H.GetLength(1) - 2,j] = A[H.GetLength(1) - 3,j]; + // A[H.GetLength(1) - 1, j] = A[H.GetLength(1) - 2, j]; + //} + + #endregion + + + #region HACK: Old Stuff + //////get h(i), nx(i), ny(i), Sox(i), Soy(i) + ////double hi = h[j + i * eRow]; + ////double sy = soy; + ////double sx = sox; + ////double nX = nx; + ////double nY = ny; + + //////first row + ////if (i == 0) + ////{ + //// A[i,j] += + ////} + //////last row + ////else if (i == eRow-1) + ////{ + ////} + //////interior rows + ////else + ////{ + ////} + + //////first col + ////if (j == 0) + ////{ + ////} + //////last col + ////else if (j == eRow-1) + ////{ + ////} + //////interior row + ////else + ////{ + ////} + +#endregion + + + + #region Implict Scheme with Explicit Non-Linear Terms + + ////for (int i = 0; i <= e - 1; i++) + ////{ + + + //// A[i, i] += (1.0 - h[i]) / Dt; + //// //-- Is this this last column? -- + //// if ((i + 1) % Math.Sqrt(elements) == 0) + //// { + //// //use backward differencing in X + //// A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + //// * Math.Sqrt((1.0 / nx) * (sox - ((h[i] - h[i - 1]) / cellsize))) + //// * Math.Pow((h[i] - h[i - 1]), (2 / 3)); + + //// //-- Is this the very last element? -- + //// if (i == elements - 1) + //// { + //// //use backward differencing in Y + //// A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + //// * Math.Sqrt((1.0 / ny) * (soy - ((h[i] - h[i - rows]) / cellsize))) + //// * Math.Pow((h[rows] - h[i - rows]), (2 / 3)); + //// } + //// else + //// { + //// //use forward differencing in Y + //// A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + //// * Math.Sqrt((1.0 / ny) * (soy - ((h[i + rows] - h[i]) / cellsize))) + //// * Math.Pow((h[2 * rows] - h[rows]), (2 / 3)); + //// } + //// } + //// //-- Is this the last row? -- + //// else if ((i + 1) >= (elements - (elements / rows))) + //// { + //// //use forward differencing in X + //// A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + //// * Math.Sqrt((1.0 / nx) * (sox - ((h[i + 1] - h[i]) / cellsize))) + //// * Math.Pow((h[i + 1] - h[i]), (2 / 3)); + + //// //use backward differencing in Y + //// A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + //// * Math.Sqrt((1.0 / ny) * (soy - ((h[i] - h[i - rows]) / cellsize))) + //// * Math.Pow((h[rows] - h[i - rows]), (2 / 3)); + //// } + //// else + //// { + //// //use forward differencing in X + //// A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + //// * Math.Sqrt((1.0 / nx) * (sox - ((h[i + 1] - h[i]) / cellsize))) + //// * Math.Pow((h[i + 1] - h[i]), (2 / 3)); + //// //use forward differencing in Y + //// A[i, i] += (1.0 - h[i]) * (1.0 / cellsize) + //// * Math.Sqrt((1.0 / ny) * (soy - ((h[i + rows] - h[i]) / cellsize))) + //// * Math.Pow((h[i + rows] - h[rows]), (2 / 3)); + //// } + ////} + + #endregion + + return A; + } + + private double[,] PopulateA(double[] h) + { + //int e = (Int32)Math.Pow(h.Length, 2); + double[,] A = new double[h.Length, h.Length]; + double Dt = this.dt / 3600; + double[,] H = new double[(Int32)Math.Sqrt(h.Length), (Int32)Math.Sqrt(h.Length)]; + int eRow = (Int32)Math.Sqrt(h.Length); + + #region convert h into 2d matrix + for (int i = 0; i <= (Int32)Math.Sqrt(h.Length) - 1; i++) + { + for (int j = 0; j <= (Int32)Math.Sqrt(h.Length) - 1; j++) + { + H[i, j] = h[j + (i * (Int32)Math.Sqrt(h.Length))]; + } + } + #endregion + + #region Formulate Stiffness Matrix + double Cx1, Cx2, Cx3, Cy1, Cy2, Cy3; + double dhdx, dhdy, dh2dx2, dh2dy2; + for (int i = 0; i <= H.GetLength(0) - 1; i++) + { + for (int j = 0; j <= H.GetLength(1) - 1; j++) + { + //--- ---// + //--- Calculate the non-linear terms ---// + //--- ---// + + //if this is the first column + if (j == 0) + { + //h(i-1) == h(i) + dhdx = (H[i, j + 1] - H[i, j]) / (2 * cellsize); + dh2dx2 = (H[i, j + 1] - H[i, j]) / (Math.Pow(cellsize, 2)); + } + //if this is the last column + else if (j == H.GetLength(1) - 1) + { + //h(i+1) = h(i) + dhdx = (-1 * H[i, j] + H[i, j - 1]) / (2 * cellsize); + dh2dx2 = (-1 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + } + //if this is an interior column + else + { + dhdx = (H[i, j + 1] - 2 * H[i, j] + H[i, j - 1]) / (2 * cellsize); + dh2dx2 = (H[i, j + 1] - 2 * H[i, j] + H[i, j - 1]) / (Math.Pow(cellsize, 2)); + } + //if this the first row + if (i == 0) + { + //h(j-1) = h(j) + dhdy = (H[i + 1, j] - H[i, j]) / (2 * cellsize); + dh2dy2 = (H[i + 1, j] - H[i, j]) / (Math.Pow(cellsize, 2)); + } + //if this is the last row + else if (i == H.GetLength(0) - 1) + { + //h(j+1) = h(j) + dhdy = (-1 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + dh2dy2 = (-1 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + } + //if this is an interior row + else + { + dhdy = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (2 * cellsize); + dh2dy2 = (H[i + 1, j] - 2 * H[i, j] + H[i - 1, j]) / (Math.Pow(cellsize, 2)); + } + + + //--- + //--- Calculate Coefficients --- + //--- + + //if this is the first column + if (j == 0) + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (Math.Pow(H[i, j + 1], 2.0 / 3.0) - Math.Pow(H[i, j], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this is the last column + else if (j == H.GetLength(1) - 1) + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (-1 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i, j - 1], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this is an interior column + else + Cy2 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * (Math.Pow(H[i, j + 1], 2.0 / 3.0) - 2 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i, j - 1], 2.0 / 3.0)) * (0.5) * dhdy; + + //if this the first row + if (i == 0) + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (Math.Pow(H[i + 1, j], 2.0 / 3.0) - Math.Pow(H[i, j], 2.0 / 3.0)) * (0.5) * dhdx; + + //if this is the last row + else if (i == H.GetLength(0) - 1) + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (-1 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i - 1, j], 2.0 / 3.0)) * (0.5) * dhdx; + + //if this is an interior row + else + Cx2 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * (Math.Pow(H[i + 1, j], 2.0 / 3.0) - 2 * Math.Pow(H[i, j], 2.0 / 3.0) + Math.Pow(H[i - 1, j], 2.0 / 3.0)) * (0.5) * dhdx; + + Cx1 = (Dt / cellsize) * (1.0 / 2.0) * Math.Pow(sox - dhdx, -1.0 / 2.0) * dh2dx2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cy1 = (Dt / cellsize) * (1.0 / 2.0) * Math.Pow(soy - dhdy, -1.0 / 2.0) * dh2dy2 * Math.Pow(H[i, j], 2.0 / 3.0); + Cx3 = (Dt / cellsize) * Math.Sqrt(sox - dhdx) * Math.Pow(H[i, j], 2.0 / 3.0); + Cy3 = (Dt / cellsize) * Math.Sqrt(soy - dhdy) * Math.Pow(H[i, j], 2.0 / 3.0); + + //--- + //--- Add coefficients to stiffness matrix + //--- + + //last column and last row + if (i == H.GetLength(0) - 1 && j == H.GetLength(1) - 1) + { + //h(x) + //A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize);\ + A[i, j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + } + //last column + else if (j == H.GetLength(1) - 1) + { + ////h(x) + //A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + ////h(x+1) + //A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = 0; + ////h(y+1) + //A[i * H.GetLength(0) + (j + 1), i * H.GetLength(0) + j] = -Cy3 / cellsize; + + //h(x) + A[i, j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + //A[i,(j + 1)] = 0; + //h(y+1) + A[i + 1, j] += -Cy3 / cellsize; + } + //last row + else if (i == H.GetLength(0) - 1) + { + //////h(x) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //////h(x+1) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = -Cx3 / cellsize; + + //h(x) + A[i, j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + A[i, (j + 1)] += -Cx3 / cellsize; + } + //interior element + else + { + //////h(x) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + j] = 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //////h(x+1) + ////A[i * H.GetLength(0) + j, i * H.GetLength(0) + (j + 1)] = -Cx3 / cellsize; + //////h(y+1) + ////A[i * H.GetLength(0) + (j + 1), i * H.GetLength(0) + j] = -Cy3 / cellsize; + + //h(x) + A[i, j] += 1 - Cx1 - Cx2 - Cy1 - Cy2 + (Cx3 / cellsize) + (Cy3 / cellsize); + //h(x+1) + A[i, (j + 1)] += -Cx3 / cellsize; + //h(y+1) + A[i + 1, j] += -Cy3 / cellsize; + } + } + } + #endregion + + return A; + } + + public double[,] buildExcessMatrix(int rows, int cols) + { + return new double[rows,cols]; + } + + public double[] Stage2Flow(double[] stage) + { + //assume broad crested weir + double[] Q = new double[elements]; + + //get number of elements per row + int rowCount = elements / stage.Length; + + + //HACK: should probably be 9.81 + //double g = 32.2; + + int rowID = 0; + double Stage = stage[0]; + + for (int i = 0; i <= elements - 1; i++) + { + if (i % stage.Length == 0) + { + + //set crest elevation of embankment + + double hr = stage[rowID]; + double hfp = h[i]; + + double Sb = 0; + double Hr = 0; + + //calculate Hr + if (hr > hfp && hr > hw) + Hr = (hr - hw) / (hfp - hw); + else if (hfp > hw && hfp > hr) + Hr = (hfp - hw) / (hr - hw); + + //calculate submergence factor + if (Hr > 0.67) + Sb = 1.0 - 27.8 * Math.Pow(stage[rowID] - 0.67, 3); + else + Sb = 1.0; + + double Cf = 0.62; //weir discharge coefficient (broad crested)(SI) + + + //for Inflow from river to flood plain + + + if (hr > hw && hr > hfp) + Q[i] = Cf * Sb * Math.Pow(hr - hw, 3.0 / 2.0) * cellsize; + else if (hfp > hw && hfp > hr) + Q[i] = Cf * Sb * Math.Pow(hfp - hw, 3.0 / 2.0) * cellsize; + + rowID++; + } + + } + return Q; + } + + public double[] SuccessiveOverRelaxation(double[,] A, double[] b) + { + + double[] x = new double[A.GetLength(0)]; + double[] x1 = new double[A.GetLength(0)]; + double Maxdiff = 0; + + //calculate optimal relaxation factor + double C = Math.Cos(Math.PI / A.GetLength(0)) + Math.Cos(Math.PI / A.GetLength(1)); + double w = 4 / (2 + Math.Sqrt(4 + Math.Pow(C, 2))); + + do + { + for (int i = 0; i <= A.GetLength(0)-1; i++) + { + double R = 0; + + //calculate residual R + for (int j = 0; j <=i-1 ; j++) + R += A[i,j]*x1[j]; + for(int j =i+1;j<=A.GetLength(0)-1;j++) + R += A[i,j]*x[j]; + + //calculate X at time k+1 + x1[i] = (1 - w) * x[i] + (w / A[i, i]) * (b[i] - R); + } + + //check for convergence + Maxdiff = 0; + for (int i = 0; i <= A.GetLength(0) - 1; i++) + { + double diff = Math.Abs(x1[i] - x[i]); + + if (diff > Maxdiff) + Maxdiff = diff; + } + + //set x(k) = x(k+1) + x1.CopyTo(x, 0); + + + } while (Maxdiff > 0.001); + + //return result + return x1; + + #region create diagonal matrix + + + //int rows = A.GetLength(0); + //int cols = A.GetLength(1); + //double[,] U = new double[rows, cols]; + //double[,] L = new double[rows, cols]; + //double[,] D = new double[rows, cols]; + + ////create upper, lower, and diagonal matrices + //int diagonal = 0; + //for (int i = 0; i <= rows - 1; i++) + //{ + // for (int j = 0; j <= cols - 1; j++) + // { + // if (i == j) + // { + // D[i, j] = A[i, j]; + // diagonal = j; + // } + // else if (j > diagonal) + // { + // U[i, j] = A[i, j]; + // } + // else + // { + // L[i, j] = A[i, j]; + // } + + // } + //} + + //for (int array = 0; array <= 2; array++) + //{ + // for (int i = 0; i <= rows - 1; i++) + // { + // for (int j = 0; j <= cols - 1; j++) + // { + + // if (array == 0) + // { + // Debug.Write(U[i, j].ToString() + "\t"); + // } + // if (array == 1) + // { + // Debug.Write(L[i, j].ToString() + "\t"); + // } + // if(array == 2) + // { + // Debug.Write(D[i, j].ToString() + "\t"); + // } + // } + // Debug.Write("\n"); + // } + // Debug.Write("\n"); + //} + #endregion + } + + public void TransformInputsToElementSet(double[] inputs, double[] transform) + { + } + + public ElementSet BuildElementSet(string elevation, string id, string desc) + { + System.IO.StreamReader sr = new System.IO.StreamReader(elevation); + + //read element set attributes + string[] line = sr.ReadLine().Split(' '); + int cols = Convert.ToInt32(line[line.Length - 1]); line = sr.ReadLine().Split(' '); + int rows = Convert.ToInt32(line[line.Length - 1]); line = sr.ReadLine().Split(' '); + double xlower = Convert.ToDouble(line[line.Length - 1]); line = sr.ReadLine().Split(' '); + double ylower = Convert.ToDouble(line[line.Length - 1]); line = sr.ReadLine().Split(' '); + double cellsize = Convert.ToDouble(line[line.Length - 1]); line = sr.ReadLine().Split(' '); + double NODATA = Convert.ToDouble(line[line.Length - 1]); + + //create array to hold elevations + double[,] elevations = new double[rows, cols]; + _soy = new double[rows, cols]; + _sox = new double[rows, cols]; + + //get x upper and yupper coordinates + double x = xlower; + double y = ylower + cellsize * rows; + + //define element set + ElementSet elementset = new ElementSet(); + elementset.Description = desc; + elementset.ID = id; + elementset.ElementType = OpenMI.Standard.ElementType.XYPoint; + + + //read elevations + for (int i = 0; i <= rows - 1; i++) + { + line = sr.ReadLine().Split(' '); + + for (int j = 0; j <= cols - 1; j++) + { + //get the elevation + double z = Convert.ToDouble(line[j]); + + //create a new element and add a vertex to it + Element e = new Element(); + Vertex v = new Vertex(x, y, z); + e.AddVertex(v); + + //add the new element to the element set + elementset.AddElement(e); + + //get the new x coordinate + x += cellsize; + + //save this elevation + elevations[i, j] = z; + } + + //get the new y coordinate, and reset the x coordinate + y -= cellsize; + x = xlower; + } + + //calculate slopes in the x and y directions + for (int i = 0; i <= rows - 1; i++) + { + for (int j = 0; j <= cols - 1; j++) + { + + double SOY = 0; + double SOX = 0; + + //BROKEN: Apply the same error checking to SOY that you did to SOX + + //if its the first row + if (i == 0) + { + //take the difference between the (i)th and (i+1)th + SOY = elevations[i, j] - elevations[i + 1, j]; + + //check to see if something went wrong! + if (Math.Abs(SOY) > elevations[i, j] || Math.Abs(SOY) > elevations[i + 1, j]) + SOY = 0.0; + } + //if its the last row + else if (i == rows - 1) + { + //take the difference between the (i)th and (i-1)th + SOY = elevations[i, j] - elevations[i - 1, j]; + + //check to see if something went wrong! + if (Math.Abs(SOY) > elevations[i, j] || Math.Abs(SOY) > elevations[i - 1, j]) + SOY = 0.0; + } + //if its an interior row + else + { + //take the maximum of the two + double soy1 = elevations[i, j] - elevations[i + 1, j]; + double soy2 = elevations[i, j] - elevations[i - 1, j]; + + if (Math.Abs(soy1) > Math.Abs(elevations[i, j])) + { + if (Math.Abs(soy2) > Math.Abs(elevations[i, j])) + { + SOY = 0.0; + } + else + { + SOY = soy2; + } + } + else + { + if (Math.Abs(soy2) > Math.Abs(elevations[i, j])) + { + SOY = soy1; + } + else + { + if (Math.Abs(soy1) > Math.Abs(soy2)) + SOY = soy1; + else + SOY = soy2; + } + } + + } + + //if its the first column + if (j == 0) + { + //take the difference between the (j)th and (j+1)th + SOX = elevations[i, j] - elevations[i, j + 1]; + + //check to see if something went wrong! + if (Math.Abs(SOX) > elevations[i, j] || Math.Abs(SOX) > elevations[i, j + 1]) + SOX = 0.0; + } + //if its the last column + else if (j == cols - 1) + { + //take the difference between the (j)th and (j-1)th + SOX = elevations[i, j] - elevations[i, j - 1]; + + //check to see if something went wrong! + if (Math.Abs(SOX) > elevations[i, j] || Math.Abs(SOX) > elevations[i, j - 1]) + SOX = 0.0; + } + //if its an interior column + else + { + + //take the maximum of the two + double sox1 = elevations[i, j] - elevations[i, j + 1]; + double sox2 = elevations[i, j] - elevations[i, j - 1]; + + if (Math.Abs(sox1) > Math.Abs(elevations[i, j])) + { + if (Math.Abs(sox2) > Math.Abs(elevations[i, j])) + { + SOX = 0.0; + } + else + { + SOX = sox2; + } + } + else + { + if (Math.Abs(sox2) > Math.Abs(elevations[i, j])) + { + SOX = sox1; + } + else + { + if (Math.Abs(sox1) > Math.Abs(sox2)) + SOX = sox1; + else + SOX = sox2; + } + } + } + + + //set slope values + _soy[i, j] = SOY/cellsize; + _sox[i, j] = SOX/cellsize; + } + } + return elementset; + + } + + } + public class LinkableComponent : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + protected override void SetEngineApiAccess() + { + _engineApiAccess = new Wrapper(); + } + public LinkableComponent() + { + _engineApiAccess = new Wrapper(); + } + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/Data/2dDiffusiveWave.omi b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/Data/2dDiffusiveWave.omi new file mode 100644 index 00000000..38381718 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/Data/2dDiffusiveWave.omi @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/Data/2dDiffusiveWaveConfig.xml b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/Data/2dDiffusiveWaveConfig.xml new file mode 100644 index 00000000..9b9003e1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/Data/2dDiffusiveWaveConfig.xml @@ -0,0 +1,89 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + + 1 + + + Excess Rainfall + Excess Rainfall + + + Length + 1 + + + + in + Inches + 1 + 0 + + Scalar + + + + + SmithBranch + Smith Branch Watershed, Columbia SC + 1 + + + + Excess Rainfall + Excess Rainfall + + + 1 + Length + + + + in + inches + 1 + 0 + + Scalar + + + + + SmithBranch + Smith Branch Watershed, Columbia SC + 1 + + + + Stage + Water Stage + + + 1 + Length + + + + ft + feet + 1 + 0 + + Scalar + + + + + 08/20/2009 00:00:00 AM + 08/20/2009 12:00:00 PM + .1 + + + Diffusive Wave Routing + 2d Diffusive Wave Model + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/Data/elevation.txt b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/Data/elevation.txt new file mode 100644 index 00000000..8200c090 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/Data/elevation.txt @@ -0,0 +1,651 @@ +ncols 503 +nrows 645 +xllcorner 572450.4356393 +yllcorner 404632.51080288 +cellsize 27.960890377166 +NODATA_value -9999 +-9999 -9999 -9999 341.8763 340.7776 339.0363 337.8439 342.2335 344.6604 346.7064 347.6707 346.5878 344.0091 344.685 342.9423 340.0096 336.1331 331.5356 336.6916 339.9818 340.0006 335.822 335.0934 332.9642 328.6574 326.1896 328.2523 329.8055 329.8221 328.0275 322.4776 319.1589 315.8353 314.4466 310.5876 307.3153 302.3373 294.2206 290.5322 287.812 287.2587 287.171 287.4137 291.5167 294.0424 294.3685 293.662 294.2446 293.6307 295.6875 297.1728 300.146 298.8389 297.2927 297.3501 298.2951 299.2108 302.3489 303.7646 304.6761 305.0588 301.5307 292.2351 285.6847 278.4669 270.7583 269.9716 268.9094 275.385 275.8891 278.0341 279.3697 281.2128 283.4965 286.7219 284.6278 279.1375 280.9677 283.0722 283.0949 281.079 279.3043 277.5821 274.8928 269.8129 268.4105 268.7617 265.3327 271.3246 274.6871 276.374 277.439 278.1286 275.3106 272.748 271.1802 270.2663 269.3485 268.8092 268.4506 268.0894 267.879 263.756 267.6144 269.1564 273.1951 276.2731 276.6743 275.9063 276.1471 276.5991 276.502 271.9644 263.0658 264.7254 268.5036 276.3824 282.8386 289.2346 294.7899 302.6255 304.8466 308.9723 311.522 313.3572 314.4123 314.4231 313.3878 311.2929 303.9244 298.5634 291.1231 285.6288 283.9734 281.2144 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 +-9999 -9999 -9999 336.4507 335.3892 335.8308 338.1188 339.7771 342.8479 345.5364 346.6456 345.6834 340.8315 342.4626 343.4825 342.0017 338.8451 333.615 328.299 330.7473 333.9008 330.4174 332.0059 331.8158 329.9877 326.9984 322.3462 325.7622 327.8688 328.2646 324.0715 320.8123 317.9162 315.3003 311.701 308.0648 303.1921 295.4059 291.5311 288.4165 287.8189 285.8326 285.4495 287.359 288.0694 289.1451 288.6851 289.793 290.8759 291.2835 295.3394 296.2726 296.3566 295.5654 295.3817 295.4827 296.5164 300.9885 302.645 303.6668 304.905 304.3866 299.924 293.9381 287.6026 279.8877 269.7675 269.4137 269.5941 270.5887 270.9046 272.0214 274.1375 278.1446 281.4781 278.4451 276.4869 278.1299 279.3964 279.189 277.2742 275.8942 274.3481 272.5248 269.5857 269.3808 265.4363 272.2583 277.9634 280.9853 281.6489 281.8243 280.8585 274.6609 273.1699 275.2787 276.8232 275.4269 270.8716 268.3622 267.963 267.8681 267.0591 264.4747 267.6646 269.0691 272.8788 276.6743 275.9063 276.1471 276.5991 276.502 271.9644 263.0658 264.7254 268.5036 276.3824 282.8386 289.2346 294.7899 302.6255 304.8466 308.9723 311.522 313.3572 314.4123 314.4231 313.3878 311.2929 303.9244 298.5634 291.1231 285.6288 283.9734 281.2144 278.565 275.1718 267.0866 261.7297 262.6627 264.5172 268.2744 272.2558 275.8251 277.9236 279.0229 280.3846 286.7792 289.3091 290.8838 289.7536 287.8324 284.3026 277.335 269.6235 263.2619 259.0991 255.1149 255.0689 256.9241 258.4791 259.8166 258.7832 258.2726 257.9409 254.5337 254.44 255.3715 255.0202 254.2736 254.2151 258.0777 266.2285 272.6123 281.6331 283.303 283.4848 282.3221 279.8988 276.2602 272.2623 269.0131 267.7309 259.1096 254.3316 251.1248 255.772 260.4353 267.8189 274.557 281.7269 288.4286 293.995 292.3528 292.4172 294.9424 296.6907 294.206 289.0855 285.0524 279.3465 279.4442 280.0486 280.5121 277.5749 271.9427 266.5268 261.3352 257.3405 254.8637 249.1235 254.3085 264.1325 269.8153 271.2383 272.4642 271.7169 269.9814 268.2874 271.0954 270.8751 268.9348 270.7926 272.9919 274.908 273.8507 269.7737 263.2097 264.5422 267.0493 269.5232 270.8504 269.2935 266.5557 267.2214 268.765 269.1156 271.8862 272.1258 270.4808 269.4072 268.2731 267.7515 266.6435 265.4832 266.0169 269.9105 273.3425 275.6346 275.5115 276.3519 276.8662 275.851 273.0612 270.7908 266.3572 264.8958 263.2026 261.082 259.8665 252.1629 250.9424 250.6515 251.3265 250.4998 251.0434 250.8771 250.2437 249.9188 251.0442 252.1943 254.0955 254.9622 254.8177 253.7648 255.29 255.2067 255.5676 257.0828 258.8738 260.6855 262.9088 265.5992 267.1386 267.7415 265.6807 262.2723 260.6654 261.3368 267.0092 266.196 269.5602 269.7093 268.5573 274.636 276.0715 270.7466 261.5286 252.9963 262.734 270.6209 271.4842 267.3505 264.2033 265.6557 269.5819 273.2119 275.4353 276.5208 275.3563 270.9649 264.7634 271.6772 274.073 274.6779 272.0028 265.8495 257.875 265.9608 268.312 269.4256 270.1042 270.4756 273.1364 275.5064 276.9273 276.9231 273.7406 272.1912 270.3795 268.5331 266.9191 265.9394 265.0093 263.7897 262.549 260.5746 260.9734 261.0378 261.1282 260.3796 254.4427 244.9554 245.1615 245.1287 246.4175 249.1368 248.0994 248.1465 248.1744 248.0548 247.8111 249.4004 257.3734 266.8503 269.1791 270.0553 270.7037 270.7675 270.7905 270.7125 270.3676 270.052 269.8038 269.0806 268.2261 268.2483 269.744 270.5036 271.7174 271.8661 270.3932 264.8632 263.0556 260.6568 258.6504 256.6076 254.4271 252.0219 251.3938 251.3985 255.5787 261.5475 266.817 270.934 274.9654 279.0963 281.9071 282.3639 282.1349 277.9258 272.5317 267.5522 260.192 260.5197 263.6522 266.6174 268.4911 270.6201 274.3203 276.6828 278.4194 281.3665 284.3642 286.3741 287.8528 288.4461 288.7384 284.4099 281.3878 279.8126 278.776 277.3739 274.9286 268.8653 270.7593 275.8455 280.7598 281.869 282.7994 284.6905 285.4986 287.1214 286.6994 285.8094 283.5898 277.9307 277.284 278.0403 278.9876 279.0597 279.6626 279.131 282.482 285.9409 288.453 288.6442 287.9758 289.9561 290.5935 291.6465 294.0401 295.4732 296.4848 297.0139 296.8937 297.125 297.0432 296.0574 294.6026 294.0268 294.2301 294.8307 297.2605 298.5576 298.3913 297.7881 296.4694 295.1612 293.4353 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 +-9999 -9999 -9999 332.924 335.222 338.9384 341.8276 344.018 345.032 345.801 345.6694 344.4866 336.4746 338.3604 341.3596 342.4996 341.1473 338.1711 332.4087 325.6885 325.3712 326.5014 327.7564 330.1217 328.5892 326.4477 324.4379 319.593 325.2743 325.3802 323.0174 320.0071 317.2404 314.4884 310.5777 307.2689 302.9851 297.8395 293.6464 288.4564 287.716 285.7346 284.5241 283.5704 282.7372 282.0216 283.6838 284.3634 286.5042 290.0784 291.4171 293.7469 294.0904 294.5649 293.6593 293.7611 294.9179 299.5669 300.9323 301.3351 301.7357 300.4782 295.2884 287.1939 282.7626 279.7877 270.3275 270.1638 266.5437 266.3331 266.4305 266.3646 266.8833 269.5839 270.9993 272.233 273.4624 274.2796 275.0847 279.189 277.2742 275.8942 274.3481 272.5248 269.5857 269.3808 265.4363 272.2583 277.9634 280.9853 281.6489 281.8243 280.8585 274.6609 273.1699 275.2787 276.8232 275.4269 270.8716 268.3622 267.963 267.8681 267.0591 264.4747 267.6646 269.0691 272.8788 274.0471 274.7572 275.0917 274.5804 274.399 270.6736 263.166 266.373 271.3771 282.3201 292.1996 298.575 302.6471 308.7435 310.3704 310.6627 312.8337 314.3234 315.0124 314.1172 312.4772 310.7402 303.3519 299.8711 293.3943 284.8661 276.4393 274.7758 272.929 269.11 263.2275 261.942 263.222 266.6136 271.7763 275.8181 278.7373 281.5646 283.3498 282.9136 287.7902 290.2886 290.4948 287.799 284.7372 280.3914 271.8509 262.2665 257.3191 256.0152 257.7201 260.9428 264.3749 265.2124 265.8498 262.9242 258.8075 258.385 257.014 257.1143 257.6488 257.8568 259.4778 264.2825 269.4649 275.4206 277.3985 284.705 286.6509 286.131 282.793 278.5105 274.0482 269.1061 264.9586 261.4663 255.2214 250.7611 255.9749 258.7199 267.8954 276.2057 281.7938 286.4432 289.8407 290.0764 288.315 289.8657 292.1034 293.0196 291.438 284.8126 279.3078 274.6785 276.0041 277.1163 278.2572 277.0931 273.5944 268.8273 264.7718 260.7612 255.7961 248.9692 255.091 265.4861 275.6703 277.352 277.9745 277.8302 276.7685 273.843 275.2558 273.8951 271.2063 273.6544 276.0486 276.3536 274.2518 269.2473 264.1894 265.0743 267.3299 269.6723 271.3753 270.7366 268.1688 270.0974 271.2725 271.2186 274.395 274.9078 273.6315 272.1091 270.9677 270.5916 269.6634 268.4674 267.2369 268.3423 271.7281 274.1772 274.0391 274.2401 275.3588 275.1354 272.1208 269.2571 264.8967 262.9902 261.1426 259.1369 258.0529 252.7311 250.507 250.4739 250.621 247.5643 251.0929 250.9228 250.7132 249.9877 250.2178 250.9647 251.7617 252.7113 253.2776 252.7324 253.9058 254.7968 256.7192 258.8145 260.6006 261.7849 263.496 265.6874 267.3541 268.4187 268.4475 262.887 259.3474 253.6037 258.1609 260.904 261.4803 262.8868 267.2668 272.1592 275.0587 271.5111 261.6946 251.1053 261.3483 269.7624 269.9083 264.9961 262.4802 266.3358 270.2528 272.9959 274.6087 274.9372 274.2962 271.2969 262.7754 267.3499 270.918 272.5035 271.7857 269.0978 262.1772 263.3246 265.8198 266.6647 267.8654 270.8602 273.4936 276.2281 276.5036 275.3506 272.8392 271.1907 269.6302 267.7161 266.1518 265.5013 265.1047 264.0341 262.5568 258.5049 258.6195 258.7206 258.6556 258.4069 256.3562 244.9677 248.2077 248.2673 248.3204 248.2412 248.166 247.9684 248.0583 247.8853 247.6905 247.1577 255.0701 264.8182 267.9846 268.9514 269.3676 269.4442 269.332 269.2931 268.9358 268.9143 268.586 267.8473 267.0652 268.0751 269.4788 270.8449 270.9679 269.4013 267.2758 262.6461 260.1877 258.6911 257.1301 255.0679 253.2216 251.0091 250.9576 250.8843 261.7535 266.0095 270.8074 275.6011 279.6503 282.7521 284.3841 284.5057 283.7669 279.5818 274.6686 270.548 266.6673 262.6276 261.096 265.7624 268.8551 271.1639 274.5024 276.9332 279.8694 282.8759 284.6263 286.5419 287.7658 288.6366 289.3704 284.4252 282.9604 281.5597 280.9056 279.7076 275.9019 269.2621 272.7972 277.5255 282.9738 283.6972 285.1382 286.4923 288.1223 287.1214 286.6994 285.8094 283.5898 277.9307 277.284 278.0403 278.9876 279.0597 279.6626 279.131 282.482 285.9409 288.453 288.6442 287.9758 289.9561 290.5935 291.6465 294.0401 295.4732 296.4848 297.0139 296.8937 297.125 297.0432 296.0574 294.6026 294.0268 294.2301 294.8307 297.2605 298.5576 298.3913 297.7881 296.4694 295.1612 293.4353 291.798 290.3803 287.0179 285.4523 283.7822 282.6665 281.0521 279.122 277.7014 278.1911 281.217 277.9718 277.4884 279.3294 280.6493 282.2396 283.7084 285.0343 287.3202 289.2554 292.4386 293.3438 294.5363 295.1538 296.3619 296.762 297.4955 297.1307 296.5955 299.1325 299.2452 297.3786 296.3302 293.232 289.8822 283.7769 277.8265 274.8703 277.8053 279.508 281.2705 281.4072 -9999 +-9999 -9999 -9999 332.2 336.0774 338.9363 341.9103 344.8632 346.5511 346.8182 344.7628 343.1334 338.0752 334.3343 334.1046 338.5954 339.6813 336.4785 333.4469 329.8604 325.3431 322.5709 327.243 328.6566 327.0312 324.1484 321.149 316.6504 320.8142 322.3116 320.2314 317.3078 314.4269 311.73 308.4066 305.8384 302.0506 297.9773 294.3552 288.3949 289.4539 292.7999 292.5018 286.3885 283.2798 282.1003 280.5466 281.3625 284.2679 286.2463 288.2515 290.7999 294.0904 294.5649 293.6593 293.7611 294.9179 299.5669 300.9323 301.3351 301.7357 300.4782 295.2884 287.1939 282.7626 279.7877 270.3275 270.1638 266.5437 266.3331 266.4305 266.3646 266.8833 269.5839 270.9993 272.233 273.4624 274.2796 275.0847 274.6165 273.6598 273.2695 272.3966 271.5047 268.7372 265.4716 268.0553 277.9901 282.6761 284.3168 284.6747 284.1784 281.4345 274.9482 277.0233 280.397 284.641 287.0349 283.8036 277.6068 274.2998 271.104 267.6561 263.7772 267.5391 267.5678 268.8182 271.1896 273.9798 274.2351 273.461 272.6418 267.4027 263.1813 266.6063 274.5784 286.2721 296.6454 303.7421 307.3318 312.3472 313.8051 314.5163 315.0292 315.5582 315.9042 314.6975 312.9114 311.1846 304.1686 299.6428 292.841 283.4395 274.4603 267.2509 264.9809 263.4408 261.0662 261.4886 265.3709 273.3569 279.187 283.2509 286.4306 288.0644 288.5771 287.495 288.6289 290.536 289.0092 284.3661 281.2506 277.1478 267.5675 259.3091 255.3576 258.9517 264.5121 268.3611 269.296 269.2346 267.8859 262.2346 261.797 264.5904 267.0694 267.1758 268.1998 271.442 272.1113 275.4835 276.6591 279.0843 281.5402 285.9391 287.1347 286.8243 282.4255 277.2241 271.7192 266.6268 258.5155 255.2285 250.7848 256.4836 257.7158 266.2996 273.8549 279.6728 283.7391 286.7389 288.6653 285.5331 284.1269 286.2031 287.814 287.9958 286.1023 278.6995 272.3451 268.6255 271.4143 273.9138 274.83 275.644 273.636 270.6413 266.6678 262.4484 257.2428 249.5746 252.6996 266.785 275.6374 279.4689 281.3393 282.0001 281.8879 281.343 282.7188 277.89 274.1895 277.2741 278.7927 277.6762 270.9631 265.4006 264.334 263.1059 267.1996 269.7114 271.9615 272.4253 270.8484 271.9104 272.9801 275.5227 276.787 277.6684 277.0378 274.9692 273.5721 272.7297 271.6046 270.5319 268.8325 266.9518 269.9945 271.51 270.8949 270.1223 271.8349 271.0831 268.5833 266.0619 262.5603 259.7906 257.7574 256.5004 255.2715 252.0516 250.5269 250.3381 250.2787 248.6099 250.9815 250.8084 250.4712 250.2233 250.5888 250.5827 251.1409 252.1758 252.5623 253.7633 255.4706 258.2495 260.1833 261.7417 262.8948 263.9718 264.652 266.0439 266.8318 267.4606 267.6718 263.7865 257.8604 250.8957 252.1996 254.996 258.7932 264.6557 268.7861 272.2316 273.707 271.6454 261.5818 249.5071 257.4962 268.6073 268.6875 262.6938 261.3393 265.8026 268.7466 271.0635 272.5583 272.6424 272.3803 270.4572 262.1671 264.2586 268.953 270.8564 270.9222 269.0342 263.4838 260.48 263.0072 264.5772 267.293 270.2469 271.9477 274.4948 274.68 273.0113 270.759 269.824 268.549 266.7257 264.9625 264.757 265.1371 264.0189 262.3682 257.5469 256.256 256.116 255.7323 255.7775 254.6429 248.9006 244.9884 248.2239 249.3535 254.1721 247.6729 247.903 247.8917 247.6931 247.6286 247.3691 252.9584 263.7358 265.6721 266.5797 267.6009 268.1822 268.5628 268.1075 267.5035 267.192 266.9609 266.0593 266.1867 267.1476 268.1774 268.7932 268.44 266.3479 264.136 261.1339 258.9622 256.8564 254.6244 252.7202 250.8216 250.9749 250.9537 254.1907 266.0775 270.4291 274.8239 275.6011 279.6503 282.7521 284.3841 284.5057 283.7669 279.5818 274.6686 270.548 266.6673 262.6276 261.096 265.7624 268.8551 271.1639 274.5024 276.9332 279.8694 282.8759 284.6263 286.5419 287.7658 288.6366 289.3704 284.4252 282.9604 281.5597 280.9056 279.7076 275.9019 269.2621 272.7972 277.5255 282.9738 283.6972 285.1382 286.4923 288.1223 289.3895 289.8647 287.7675 285.7962 281.1478 280.9342 281.9338 282.5287 280.9937 284.9756 286.4794 288.0085 289.8998 291.6513 292.5454 292.8931 292.6818 292.2395 293.5796 295.5208 296.7346 297.6468 297.4791 296.1141 295.2387 294.1322 293.3254 292.191 290.0518 291.2068 293.587 295.701 297.0224 298.5142 298.6775 297.97 296.458 294.6625 293.3412 291.7085 288.1439 286.8084 284.3465 283.3058 282.4261 281.3515 279.0451 277.0606 276.8275 276.3776 276.3464 278.39 280.3102 282.0029 284.1883 285.1854 286.3942 287.5873 290.5995 291.695 293.9772 294.7539 296.0394 296.5069 296.3341 295.5887 295.6939 297.9828 297.9551 295.9071 294.6046 291.0326 287.6067 282.4048 277.2523 273.109 276.9142 278.4567 279.2107 279.0111 -9999 +-9999 -9999 -9999 330.1974 334.638 338.3409 340.9285 343.6092 345.9662 347.0515 346.9109 345.0667 339.4419 336.126 331.3032 333.5583 333.5307 332.6473 331.5136 329.7361 326.8943 320.1511 324.7444 326.313 326.1667 324.1484 321.149 316.6504 320.8142 322.3116 320.2314 317.3078 314.4269 311.73 308.4066 305.8384 302.0506 297.9773 294.3552 288.3949 289.4539 292.7999 292.5018 286.3885 283.2798 282.1003 280.5466 281.3625 284.2679 286.2463 288.2515 290.7999 292.3779 292.7093 292.4186 293.244 294.9333 298.0831 297.8738 297.5983 295.5842 293.5058 287.6022 276.8051 270.5286 266.7118 266.9377 269.3143 270.6398 270.6206 270.5753 270.6275 270.0106 267.6343 266.3124 267.203 269.5303 270.0841 270.7932 271.3537 272.7804 272.5675 271.878 270.8754 268.4048 265.6639 277.7544 285.3159 287.3043 288.2868 286.3691 284.3539 281.6636 275.434 278.0161 281.6013 285.9131 289.5076 291.8725 290.6909 288.0757 286.0176 270.4207 267.1567 263.7542 267.7881 267.2787 268.4459 270.8623 273.0888 273.0289 270.3032 267.3663 263.0925 264.636 273.9888 284.4213 292.0369 298.451 303.6826 310.0081 312.3595 314.3872 315.9258 316.5852 317.1509 316.0933 314.4661 312.6592 305.0698 297.6207 288.428 277.2562 267.0768 261.8256 261.9848 261.7404 258.3242 270.9822 278.2575 283.2549 288.8203 292.3006 295.6133 296.5848 296.1508 294.4963 291.0738 290.5454 288.1858 283.1875 278.058 273.7397 261.9245 255.3741 257.0935 261.6061 265.433 268.9908 272.0363 272.8636 269.5512 263.3121 265.604 269.8015 275.4065 277.2778 279.7073 282.7264 284.4878 286.2346 287.0093 287.2684 287.7551 286.853 287.6763 286.1042 281.5645 274.0426 268.2096 260.6118 255.73 251.1646 255.78 257.3344 265.0152 271.0663 276.3993 280.5855 282.6454 284.1322 284.7774 280.6002 279.3246 281.2939 281.7222 279.8747 276.2834 270.6052 265.1381 262.0543 268.9961 268.0887 270.5878 272.9785 271.651 270.4012 266.6046 261.9449 256.8112 252.2421 253.2209 264.6121 273.3428 278.0363 282.8961 286.9003 288.5105 288.6483 287.3023 284.2062 281.4666 281.7242 281.0884 279.5831 272.6656 271.4402 269.9074 268.8653 264.8781 270.3424 273.1067 274.1957 272.5694 273.8186 275.0186 276.8934 279.1441 279.788 280.0984 278.136 276.887 275.7169 274.9764 273.2852 270.7084 265.7912 266.8977 268.5016 268.2101 267.4614 267.5473 267.5296 265.2203 263.0883 259.057 256.8609 255.0504 251.9929 250.9978 250.724 250.4157 250.2355 250.0043 247.5704 251.416 251.2482 250.1119 250.3282 250.0898 251.4492 251.5827 252.4819 253.5192 255.2027 258.8877 262.2993 264.4724 265.5779 265.8962 266.9315 267.1614 265.8354 264.5222 265.4423 265.7758 264.4595 256.8297 251.8828 248.1596 251.1696 262.1572 266.2104 268.4051 266.5107 265.0634 270.7599 264.0634 250.0521 254.5554 267.625 267.7641 259.831 260.9024 264.2699 267.9518 270.2461 270.8447 270.6429 270.4612 268.4245 259.57 264.0768 268.1993 269.3113 269.0354 267.9536 262.1795 257.8635 261.0493 263.9042 265.9191 267.8974 269.7777 271.1472 270.8228 269.6633 268.3562 268.1713 266.782 264.811 263.4808 263.6304 265.0336 264.3302 262.4595 256.5905 253.8078 253.5958 253.7746 253.0824 249.6934 248.1192 248.086 245.0752 252.9871 254.4639 253.5494 247.7314 247.8917 247.6931 247.6286 247.3691 252.9584 263.7358 265.6721 266.5797 267.6009 268.1822 268.5628 268.1075 267.5035 267.192 266.9609 266.0593 266.1867 267.1476 268.1774 268.7932 268.44 266.3479 264.136 261.1339 258.9622 256.8564 254.6244 252.7202 250.8216 250.9749 250.9537 254.1907 266.0775 270.4291 274.8239 279.1157 282.0468 283.5492 284.4718 284.9929 285.1848 281.333 276.9085 273.3236 270.4511 268.6897 266.9586 263.4846 267.0679 270.5021 275.5883 277.4251 280.7039 283.34 285.0078 285.5257 286.621 287.9931 289.0817 288.0064 285.4464 284.5395 285.1063 282.7435 277.6628 271.2068 274.1616 278.241 282.8391 284.1381 286.1779 287.6178 289.1377 290.3771 291.0717 291.1328 288.305 283.5558 283.2641 284.2578 285.1319 284.4872 286.1794 288.7003 290.5103 292.2943 293.9055 294.7309 295.0497 294.7405 294.8718 295.6615 296.9065 297.5523 298.0277 294.878 293.6452 293.3595 291.8798 289.9053 288.9844 288.7505 290.9043 292.4997 295.6568 296.7956 298.0023 298.4929 298.0322 296.6481 295.1388 293.5026 291.6279 288.0491 286.0862 284.6957 285.9059 285.8223 285.0281 283.5719 280.8025 277.3456 275.0935 275.3598 276.9055 279.3604 281.6105 283.5481 284.9142 287.487 289.4133 291.4446 292.9705 294.1923 294.6389 295.7828 295.744 294.7417 293.9603 294.106 296.5341 296.2678 293.5804 292.1887 289.4905 286.4659 282.1694 276.9345 273.3695 276.1433 276.8516 277.113 277.1393 -9999 +-9999 -9999 -9999 330.1974 334.638 338.3409 340.9285 343.6092 345.9662 347.0515 346.9109 345.0667 339.4419 336.126 331.3032 333.5583 333.5307 332.6473 331.5136 329.7361 326.8943 320.1511 324.7444 326.313 326.1667 323.5716 317.0938 313.5246 316.8078 317.9487 315.5345 313.063 309.6931 306.5082 304.0544 301.3464 296.9013 293.916 291.913 291.3019 292.8008 296.794 301.3778 299.3786 293.806 289.3208 286.6014 280.9119 280.4147 281.2233 282.0583 286.2232 288.9478 291.0875 291.2863 292.0405 293.363 296.5971 295.7685 292.377 288.2893 284.0273 275.9951 266.2712 267.3977 270.7866 270.5097 269.8702 269.778 269.7552 269.8021 269.8549 269.6809 269.524 269.4859 270.157 267.8777 266.3168 267.7636 270.0634 269.8983 269.747 269.9769 269.1468 265.5505 270.7758 283.671 288.8276 290.82 290.2351 287.6442 284.8289 282.6545 276.907 278.7158 282.4301 286.4674 290.1623 292.4213 293.7942 294.1558 293.5642 281.4951 271.3737 266.9664 263.6575 267.9229 267.0497 267.8997 269.8765 271.7703 269.2413 267.3115 266.3285 263.2556 266.9541 278.1422 287.0271 293.5794 300.069 305.7898 308.4514 310.9991 313.2595 315.6191 316.8959 317.2294 316.4549 314.5955 301.7389 291.7696 280.612 268.7384 260.9662 257.5154 257.7338 258.395 263.8017 279.8007 284.1245 289.8781 294.6574 298.5446 300.4922 302.8543 303.7262 301.9007 295.1396 291.5818 287.967 282.6454 276.5383 269.7298 259.9953 255.381 259.1673 268.0634 271.9755 272.4401 272.7927 274.3019 271.5231 265.6996 265.8665 271.951 280.3127 283.8181 287.1725 290.4751 292.7893 294.5049 295.7798 295.0046 294.7105 290.5008 289.0931 286.571 283.1637 278.7921 273.5869 264.7788 251.0535 254.1964 256.1813 261.8459 267.761 272.0784 276.1214 278.976 278.9222 279.8004 279.7884 275.7105 275.2566 276.1987 274.566 271.5471 268.3633 263.647 259.4625 258.4061 259.426 260.7263 264.3109 266.1243 266.0735 264.1814 259.1606 254.8575 253.7532 249.0631 254.8794 266.7401 275.1906 280.0755 286.719 290.6604 293.4319 294.4885 294.5885 292.2206 287.5958 289.9355 287.3881 281.9872 277.8678 277.8293 277.8108 272.8982 270.5767 268.6572 273.3984 275.1483 275.091 276.3685 277.3586 279.0858 281.5757 282.2448 282.4824 282.129 280.1274 278.5526 278.2773 275.263 271.8372 265.9701 264.2679 264.9779 264.9004 264.5858 264.1394 263.7289 262.4947 259.6473 254.3268 253.4715 250.8849 250.3192 250.3893 250.3842 250.3168 249.9996 250.2942 250.2279 250.8451 250.6884 250.1523 249.9565 249.8091 252.1271 252.9069 252.1987 254.2751 258.3664 262.2696 265.4064 267.8933 269.7421 270.0821 270.207 270.3944 265.7714 262.1867 260.6022 262.1781 259.6428 255.8017 254.7346 248.5617 249.8693 253.5217 255.204 256.9747 255.2096 261.6955 264.9048 264.9362 253.0013 252.1514 266.2027 266.0608 257.7654 259.8131 264.7144 268.133 269.3526 268.7674 268.4443 268.6993 266.7674 260.1429 261.8992 266.5737 269.3113 269.0354 267.9536 262.1795 257.8635 261.0493 263.9042 265.9191 267.8974 269.7777 271.1472 270.8228 269.6633 268.3562 268.1713 266.782 264.811 263.4808 263.6304 265.0336 264.3302 262.4595 256.5905 253.8078 253.5958 253.7746 253.0824 249.6934 248.1192 248.086 245.0752 252.9871 254.4639 253.5494 247.7314 247.8266 247.5392 247.6142 247.6927 249.7654 259.1147 261.6563 264.1597 266.1262 267.0427 266.9482 266.3067 265.2277 264.2184 264.2297 263.2355 263.7679 265.5804 266.6147 266.416 265.8919 264.4082 262.0602 258.3891 256.3091 254.0355 251.8885 250.4744 250.8039 250.6514 250.1913 256.8721 268.6227 273.3611 277.8181 280.5452 282.4277 283.8807 285.1913 286.2581 286.7946 283.7062 279.1108 275.0775 273.3571 272.3378 272.1816 270.1343 264.6919 267.8682 274.7129 276.8127 278.4526 280.606 283.1804 284.801 285.9885 287.9012 289.2759 289.9148 288.6485 288.7841 288.4373 286.2017 280.8528 270.9895 275.3973 278.3487 282.3034 284.2824 286.187 287.2563 288.782 290.3681 291.3454 291.9763 290.2315 285.8836 285.4787 286.558 287.172 287.3982 287.4361 289.114 290.7203 293.1077 296.3309 296.4206 296.7092 296.4173 296.8244 297.2019 297.8403 297.6862 297.5144 293.5332 291.363 289.5419 287.9336 286.0672 284.9786 288.2779 290.3566 291.9898 295.2459 296.659 297.4772 297.9377 297.5749 296.1807 294.8842 293.4715 291.3529 287.5248 288.9908 289.3249 288.6225 288.1846 288.8508 288.4677 286.8624 284.961 277.6782 274.7229 275.5051 277.7326 279.9533 283.3018 286.5316 288.8073 290.8457 292.9615 293.7575 294.3288 294.0281 294.4854 294.1854 293.0924 292.4569 293.4537 295.8117 294.4291 291.9808 289.2391 288.0079 285.1102 280.8466 277.0299 273.3015 273.8557 274.5126 275.3976 276.745 -9999 +-9999 -9999 -9999 330.2008 333.1081 336.7591 340.2739 342.6083 344.6179 346.3786 347.3547 345.3236 337.1538 334.403 329.4899 326.9787 326.7763 324.782 324.9749 325.4567 326.0343 318.9704 319.4068 322.927 323.2692 322.5067 319.3677 311.7767 310.9777 312.5006 308.9299 305.0954 300.8864 298.2146 297.0141 295.4954 294.8738 294.0476 296.2391 297.6474 298.101 296.1506 301.5476 301.8096 300.1659 299.8849 296.5537 290.0819 276.3735 275.8253 276.3385 280.312 285.41 288.7714 289.2596 288.1913 292.3448 294.1519 290.7682 286.6652 280.4841 273.0858 266.5441 270.17 270.7161 270.606 270.4429 271.2239 272.0701 272.112 271.873 271.9464 271.6917 271.4156 270.5552 269.7404 269.8523 269.8545 267.5236 266.6671 269.538 269.9815 269.9443 269.9742 266.0277 280.0708 287.3323 290.2827 292.4279 292.1751 289.6301 287.459 285.2497 278.7424 280.2386 282.9165 286.2426 288.9534 291.2509 292.8642 293.8278 294.7121 289.9623 282.9771 272.8997 265.8347 264.3553 268.0484 267.0781 267.4087 268.9981 268.7537 267.6262 266.9793 266.0015 263.3604 269.749 285.2415 293.045 296.7266 301.5413 304.1715 306.7857 309.7232 312.6025 314.5894 315.7695 316.4937 316.2389 302.5544 289.8299 275.6945 262.4395 257.372 257.6617 263.3278 276.8944 282.3614 288.4438 289.1775 290.7596 295.5136 298.688 301.0147 302.6882 303.6584 303.8265 297.5186 292.3725 288.0974 283.2458 276.7617 268.9255 259.6168 255.43 259.403 272.0769 277.0269 277.8142 277.8616 277.787 276.6447 273.2406 266.0888 269.4987 278.5255 283.0988 287.3926 291.4553 294.4897 296.6302 297.8731 298.1685 297.9343 294.0221 289.6074 287.1901 282.3523 278.0493 272.4867 260.0553 250.5231 255.8415 259.2188 263.4526 267.6812 271.919 274.6532 275.4577 275.4681 275.9886 275.4233 270.106 269.2009 268.7886 267.5658 264.6699 259.985 256.3612 255.6235 255.0486 255.0027 254.7702 255.1004 255.0304 255.3994 253.9177 254.167 254.178 249.9195 253.8645 261.0393 272.0862 280.9697 285.0258 290.6682 294.488 297.6923 299.3624 300.0006 298.5184 295.3127 296.7187 293.1681 285.3034 282.0914 280.7206 280.0449 274.1695 268.9843 272.7484 275.0642 276.8586 278.1955 277.783 279.3154 281.2004 283.9373 284.9297 285.1834 284.2228 282.7955 281.2773 278.6651 275.7156 272.012 266.4258 263.8321 261.9236 261.3532 261.4325 261.0069 260.8922 259.139 256.6938 250.2183 249.8021 249.9295 250.0659 250.3557 250.0049 249.875 249.8352 251.0657 250.868 250.0589 250.3986 249.9627 249.8765 250.2844 250.4955 251.2406 251.5667 256.9797 260.5736 263.5319 266.4836 269.2518 271.4047 273.2945 274.5094 270.3944 265.7714 262.1867 260.6022 262.1781 259.6428 255.8017 254.7346 248.5617 249.8693 253.5217 255.204 256.9747 255.2096 261.6955 264.9048 264.9362 253.0013 252.1514 266.2027 266.0608 257.7654 259.8131 264.7144 268.133 269.3526 268.7674 268.4443 268.6993 266.7674 260.1429 261.8992 266.5737 267.9257 267.2238 265.9689 260.687 256.4706 258.4565 261.4328 263.3356 264.6451 266.526 267.0819 267.1063 266.5114 266.195 266.3372 265.5773 263.346 260.6437 262.9185 264.7891 264.5433 263.1544 256.3628 250.7701 249.4783 249.4797 248.4095 247.9422 248.0611 247.9329 245.2191 247.8846 254.3554 254.7998 252.0825 247.796 247.4285 247.5577 247.4955 247.7942 259.0188 262.3869 263.9865 265.0541 265.162 264.2848 263.4401 262.2412 260.8684 259.7174 260.2936 262.4695 264.2972 265.1121 265.0503 264.0136 262.5826 260.7268 256.0027 252.8997 250.6477 250.1999 250.1977 250.7062 250.8982 252.5352 258.0381 268.0541 273.0882 277.2204 280.7822 283.0842 284.6617 285.2932 286.2662 287.3823 284.7377 281.0136 278.2885 276.7231 276.8585 276.8943 274.7529 268.5761 265.858 272.5874 274.2432 276.9373 279.5709 282.174 284.9129 286.9977 288.8261 290.3737 291.9595 291.2344 291.9569 291.5912 289.43 284.9874 279.6093 271.5869 276.165 281.1978 283.2325 286.1936 288.4897 289.6182 290.6136 291.5456 292.4077 292.0989 288.9044 288.7723 289.2269 290.1409 290.0328 289.6535 290.4409 291.7485 293.6204 296.5706 296.1814 296.1321 297.0027 297.691 298.3526 298.4528 297.3694 295.7635 289.5818 286.0328 282.3689 281.7521 282.1086 283.5957 287.2405 289.7363 291.4182 293.9413 295.7671 297.1459 297.9919 297.1143 295.3811 293.9307 292.0573 289.6638 291.0175 291.4968 291.5767 290.5398 289.7226 290.831 290.8704 289.9543 288.322 283.7906 277.6359 273.5404 275.538 279.6432 283.5761 286.3387 288.7479 290.6239 292.2124 292.5176 292.7561 292.36 292.4945 292.8901 291.6611 291.2681 293.0647 294.0756 292.981 291.0667 288.3304 287.1042 284.3489 280.5652 275.985 272.7318 274.445 275.7788 277.1645 277.8987 -9999 +-9999 -9999 -9999 334.649 333.8586 334.4905 337.8018 340.4799 343.7243 346.4167 348.1392 347.0709 342.4137 338.1628 333.5391 327.1315 326.3729 325.4019 321.3862 320.5019 320.5365 320.5599 316.7707 318.0402 319.7675 319.6535 318.3754 315.2391 311.1493 306.8727 302.3534 304.4667 305.1175 308.7255 308.7449 306.565 309.2043 308.0712 308.437 305.0294 301.9785 298.4809 301.865 303.5023 301.6762 301.4688 301.2375 295.9655 282.1612 275.3574 274.0347 275.2961 283.3414 285.8665 284.7669 286.2444 290.0317 289.6772 284.1105 277.8112 271.4286 266.5373 270.4904 270.4961 270.5437 270.7144 272.6159 272.7745 272.5427 272.1976 271.392 271.2814 271.2519 271.3646 271.7543 269.5789 269.258 269.6127 269.2406 268.8065 266.2952 268.1638 269.6057 269.2931 275.7127 285.0531 289.9316 291.9946 293.7335 293.9375 293.0359 290.6634 288.2 281.5896 281.3509 282.4108 284.8331 286.9088 289.0472 291.1169 292.7859 294.2809 293.0897 289.5371 283.242 274.2869 263.8129 266.2328 267.8379 267.1896 266.9489 269.4224 268.4384 267.4146 266.1315 265.7931 264.3617 275.5836 285.8805 291.9707 295.9174 300.6897 303.3079 305.7492 308.183 310.3949 312.0472 313.8839 314.8748 306.4844 294.2948 276.7063 259.3107 258.3791 261.1627 271.2435 277.6858 282.3554 289.8166 292.346 293.6643 295.7109 297.5989 299.1414 300.2662 300.5706 300.3218 297.2221 292.9699 286.6658 281.6228 275.557 267.384 259.5903 255.4575 259.8629 276.0576 281.2109 283.2919 284.3318 284.5341 282.1559 277.8996 271.1105 268.6016 275.5131 279.9767 283.8704 288.1983 291.6387 293.9921 295.158 297.5097 298.4734 294.0858 289.8105 284.8724 279.6423 274.0857 265.119 254.0102 251.782 255.1739 261.1442 263.9605 267.477 270.5492 272.1177 272.856 272.9456 273.0974 271.6293 263.4974 263.5633 262.1728 261.1854 257.8334 255.5036 255.1842 254.8998 253.9345 251.0023 250.2247 249.4952 249.3741 249.1581 249.4244 250.0617 253.6844 254.0758 264.4731 272.3837 282.666 286.6143 291.2932 295.3245 298.4063 301.4995 303.4461 305.1701 303.6109 300.8688 300.0712 296.1075 289.1734 282.9362 281.9882 277.8635 273.9258 270.8138 275.4798 278.0217 279.6363 279.96 280.4755 281.6198 283.4334 285.9807 286.8703 286.7457 285.1646 283.569 281.6805 277.5715 273.6559 270.909 266.5462 263.8439 261.4223 261.3532 261.4325 261.0069 260.8922 259.139 256.6938 250.2183 249.8021 249.9295 250.0659 250.3557 250.0049 249.875 249.8352 251.0657 250.868 250.0589 250.3986 249.9627 249.8765 250.2844 250.4955 251.2406 251.5667 256.9797 260.5736 263.5319 266.4836 269.2518 271.4047 273.2945 274.5094 273.7093 267.0335 263.1128 258.1409 256.2473 257.0145 251.92 252.0703 248.172 244.9901 245.5645 245.1955 244.9577 245.289 253.5134 262.5565 264.2453 253.5364 249.3596 262.6943 261.979 253.5142 259.7193 264.9616 268.004 267.5401 266.911 266.2422 267.3687 266.2996 260.5769 259.5589 265.4166 267.2223 266.5423 263.7733 259.6269 253.3439 256.8159 258.7092 260.971 262.2104 263.3301 263.5801 263.5444 263.5143 264.0716 264.2771 263.8487 261.7539 258.4669 259.7038 262.3943 263.2772 263.4161 256.1835 248.2131 247.4885 247.4873 246.3932 246.2101 246.8338 246.698 245.1255 247.6727 248.1631 255.3512 255.45 250.9361 247.2236 247.5418 247.2411 247.263 256.5583 259.4951 260.02 260.8504 260.7007 260.0904 259.4234 258.6501 257.66 257.8173 259.7781 261.7095 262.5125 263.2137 263.1292 262.2125 260.6008 258.3651 253.366 250.6779 250.4401 249.7798 250.2048 250.3813 250.1079 254.379 258.8942 266.368 270.1158 273.6387 276.6087 278.9554 279.0512 278.9363 281.7008 285.8983 285.5004 283.2701 281.4747 280.8322 281.1377 280.0125 276.7732 272.4877 267.0014 270.1225 274.3437 277.4993 279.9378 282.1956 285.3317 287.9308 288.7339 289.2854 292.2376 293.1651 293.244 292.2739 290.4137 287.7722 284.0054 279.9678 275.0986 279.7338 282.6551 284.8242 287.0332 288.8191 290.2914 292.2221 293.5152 293.5788 291.7229 291.7351 292.3602 293.2705 292.9453 292.3656 291.9692 292.5308 294.5238 295.203 295.0936 295.0484 295.6222 296.7968 297.5109 297.8444 296.4036 293.4925 282.4244 278.8471 279.2876 281.4895 283.6828 282.0393 283.1353 287.0622 290.0003 294.7558 296.0427 296.9357 298.0265 297.3572 295.4637 293.2647 291.3112 290.6743 292.3703 293.3425 293.2046 292.2546 291.6976 291.7365 292.4059 291.4783 289.3982 284.6555 281.0555 274.7715 272.9221 277.2369 282.0411 285.2241 287.2687 289.3373 289.8448 289.645 289.4911 289.8992 290.2429 289.8509 289.4684 290.4904 291.5799 292.7404 291.5067 289.6998 287.6747 285.9972 283.1099 279.5176 274.8289 271.6389 274.6847 276.285 278.0001 279.0206 -9999 +-9999 -9999 -9999 339.3846 339.9499 337.4375 339.4188 340.8555 342.1758 346.7006 349.6899 350.3106 343.0614 338.1036 333.1715 329.6662 326.2464 324.8313 326.2643 324.6829 320.3312 316.4491 315.2539 314.5943 312.6848 312.8236 311.8825 308.8907 306.1888 307.8375 312.2479 313.5981 316.5206 318.1033 318.6691 318.5367 318.0654 315.9848 314.9254 309.5938 303.3767 302.8009 306.0628 305.5914 303.7527 302.4687 301.087 298.1481 292.1985 286.5339 278.7389 275.0503 273.0128 276.022 279.089 282.7714 283.7176 280.6487 273.8014 270.7792 266.6043 270.2281 270.5295 270.8603 271.5662 272.6391 274.2673 273.7623 272.9768 272.0285 271.8383 272.5229 273.7572 274.7136 273.3408 269.963 274.0556 275.9259 275.0595 270.2424 268.9213 268.3447 266.2547 267.4744 281.1037 286.3624 291.1581 294.5432 295.4568 295.5051 295.6407 292.7512 290.4634 285.1492 283.7151 283.3761 283.9872 286.4454 288.2824 290.1073 291.8517 293.5713 293.9285 291.688 289.2453 283.1076 271.1116 263.6939 266.6586 267.6581 267.1525 266.8645 267.5181 267.1673 265.634 266.5446 263.4276 272.8312 281.7708 284.106 293.9577 296.8762 299.6655 301.9651 303.9124 305.9451 307.825 309.67 311.2306 310.2401 300.6805 282.2032 260.3034 257.9703 261.426 265.7742 271.2712 276.1413 285.5298 289.5156 292.9192 294.8217 295.9132 296.8713 297.6706 297.3124 296.6046 296.0265 293.8107 287.4722 280.6943 272.9085 263.8992 259.7624 255.4624 260.6451 281.139 286.0581 288.1582 289.5897 290.9488 288.7461 283.5171 276.2909 270.6393 274.496 276.8846 280.6531 283.9465 287.2664 290.1276 293.5848 296.2265 297.4335 291.5261 286.7381 281.0666 274.6323 268.4294 260.1345 253.5013 253.7224 254.7056 260.0287 262.5845 265.3468 267.6443 269.2009 270.3368 270.0206 269.9591 268.4471 261.699 258.9796 256.8642 255.1904 254.8717 250.6622 249.5256 251.2877 254.4618 252.0759 254.8465 254.2412 254.1127 253.5285 254.0156 257.1706 259.3622 265.1056 279.3794 283.6661 289.3815 292.7879 296.0392 298.754 301.6405 301.4995 303.4461 305.1701 303.6109 300.8688 300.0712 296.1075 289.1734 282.9362 281.9882 277.8635 273.9258 270.8138 275.4798 278.0217 279.6363 279.96 280.4755 281.6198 283.4334 285.9807 286.8703 286.7457 285.1646 283.569 281.6805 277.5715 273.6559 270.909 266.5462 263.8439 261.4223 258.6883 257.9731 258.295 257.81 257.0202 254.8977 249.7547 249.7569 249.8763 249.9166 250.1707 250.5489 250.638 250.5272 247.2989 250.7027 250.0233 249.5222 249.6539 250.0318 250.1998 250.4125 250.7162 252.0316 258.2629 261.3104 264.1064 266.9577 269.1658 271.0607 273.2793 275.4449 272.366 264.137 261.1299 255.1593 249.4667 248.9537 247.0154 245.0391 246.4475 247.4693 247.6499 247.4629 247.756 247.4718 245.0018 251.4742 260.8245 254.4675 247.4964 260.2897 256.0414 254.6557 261.637 265.9616 267.1693 264.9933 264.692 264.2619 266.478 264.2003 259.2859 256.8556 264.0311 265.7291 266.1801 264.4674 261.2533 251.5739 253.9792 256.7885 258.6838 259.9738 260.9294 260.7685 260.8207 261.1191 262.1883 262.6765 262.1744 259.8647 256.6464 256.853 259.4795 261.6471 262.4843 253.5687 247.27 247.6671 247.7517 244.8775 245.9709 247.8249 245.4326 247.183 249.248 247.6593 250.4762 256.1445 256.2391 249.3812 247.6924 247.6576 247.5897 249.1418 251.3313 252.743 254.7421 255.5535 256.4555 256.279 255.5767 254.5867 258.3053 260.4591 260.708 260.6809 261.032 261.1304 260.3428 258.8705 256.7534 251.8504 249.7936 249.5338 249.7315 250.3031 249.895 251.8586 254.2612 256.9615 263.6117 266.2983 269.1085 271.7505 273.513 273.3967 275.8916 279.6949 284.1122 286.7504 286.1528 285.0667 284.9601 285.0324 283.5745 280.6248 276.9612 274.0873 269.3477 271.4243 275.3765 277.9034 280.6581 284.096 286.8846 288.8828 289.8604 290.2538 291.544 292.16 292.1632 291.2269 289.0648 286.5833 283.9939 280.8552 278.9677 281.1997 284.3587 286.3524 288.4104 290.6871 292.6892 294.4711 294.6921 294.4333 295.1551 295.3075 295.4197 295.4601 294.5897 294.5248 293.898 293.9713 292.6814 292.0521 292.3313 293.4921 294.4897 295.7125 295.1356 292.5566 288.7764 275.8071 281.1974 285.5562 288.3119 290.4574 290.2063 289.4492 288.9361 289.612 295.3835 297.0797 297.8506 297.8271 297.4536 295.8118 293.5619 292.4286 292.6736 293.5094 293.9741 294.3597 293.2449 292.816 292.901 292.5111 291.2301 289.295 284.3896 281.4515 276.083 272.1174 274.6775 280.205 283.5306 285.7726 286.946 286.5826 286.3634 286.6881 287.7395 288.3316 287.8279 288.0988 289.3394 290.9988 291.6948 290.9797 289.1178 287.9331 285.0274 281.7401 278.1851 274.109 270.2862 275.2067 276.524 277.5255 279.7247 -9999 +-9999 -9999 -9999 342.4373 343.7842 343.8846 345.0237 347.4633 349.3344 351.1046 353.4711 353.1354 343.0039 338.4296 334.4357 329.8014 329.9701 332.4412 331.045 328.5149 326.484 316.6945 314.7642 314.8446 311.8915 310.4096 308.9205 308.487 310.1307 314.7646 319.2966 318.893 322.6297 323.6329 323.6818 323.7226 322.9774 322.0142 319.3967 310.109 305.6099 310.4372 312.4067 310.6161 305.955 305.2985 303.5632 300.4396 293.807 288.8152 282.7419 277.1152 272.9282 272.2367 273.1615 272.9851 271.0759 270.6406 270.8826 269.2652 267.955 270.6588 270.6753 272.1297 273.8836 276.0208 275.8606 276.1097 276.7563 276.5075 276.7049 278.2185 279.9175 279.8789 277.8668 273.6449 278.0951 280.828 282.2076 280.7691 276.0942 273.3505 274.7352 274.936 282.4747 287.4631 292.1729 295.0074 297.0914 297.4203 296.9219 293.8227 292.8607 289.1029 286.955 285.8296 285.3356 286.1729 287.705 289.1915 290.9571 292.5464 293.1144 291.8745 290.4836 287.5666 279.6294 268.1458 263.6528 265.7441 267.5745 266.7796 266.5792 265.583 266.8367 266.2227 263.5337 269.7147 274.0102 280.3687 289.5294 292.4841 294.9347 296.8689 299.0448 301.4238 303.929 305.583 307.5047 308.2747 305.0262 293.553 273.0823 257.5258 258.4512 262.3209 264.2099 269.3638 279.2718 283.9605 288.2332 291.6008 293.1643 294.3434 294.8253 293.2269 292.2372 292.2433 291.8985 288.7362 281.9281 274.6284 265.6699 259.4315 255.5246 261.0443 279.9672 284.6574 287.5496 290.8336 294.197 294.2867 288.8961 281 274.2631 275.147 278.3275 279.8967 283.2554 286.2591 289.0337 292.5584 295.2581 296.3241 288.8049 282.2333 276.035 266.9018 264.7451 268.061 256.2501 251.7582 254.8628 260.2438 262.6311 264.4479 265.4084 269.2009 270.3368 270.0206 269.9591 268.4471 261.699 258.9796 256.8642 255.1904 254.8717 250.6622 249.5256 251.2877 254.4618 252.0759 254.8465 254.2412 254.1127 253.5285 254.0156 257.1706 259.3622 265.1056 279.3794 283.6661 289.3815 292.7879 296.0392 298.754 301.6405 304.072 305.5166 308.0492 307.343 302.826 297.42 291.7177 286.1789 282.7162 280.0252 279.8932 276.1076 276.8819 278.137 281.1667 281.9976 283.1483 283.4188 284.3577 285.7538 287.319 287.0587 285.9204 284.1602 282.734 280.2585 277.5989 274.2289 271.406 265.5277 262.9057 260.4402 257.8184 255.3894 255.1691 255.7876 255.8869 254.8369 249.9086 249.8101 249.9832 250.262 250.6669 250.3527 250.9941 248.3931 248.9244 249.8389 249.0873 250.6155 254.0994 251.8536 249.8259 250.1954 251.1524 252.6794 258.8012 261.3751 264.1813 266.7386 268.5481 270.0967 271.6123 272.383 269.3045 257.6636 256.7463 250.8588 247.7266 245.0246 247.667 247.4832 247.4326 251.6809 248.0748 247.9914 247.574 247.29 247.9077 244.9856 249.2373 253.4531 246.8584 254.3553 250.9563 257.4998 263.0211 265.9145 264.9384 262.4584 262.4805 262.1023 265.6058 264.3969 259.7834 253.8397 261.2693 263.7079 265.0481 264.48 260.5273 251.8352 252.9652 255.2327 257.756 258.425 259.0192 257.7852 258.49 259.4113 259.2064 260.3327 259.4015 257.4711 254.4077 254.6605 257.6683 259.6049 259.7838 249.8395 247.3737 247.5627 247.7359 247.4295 244.8402 245.9509 244.9982 246.4248 245.437 247.6306 247.6934 253.6904 256.902 257.0073 248.9817 247.5171 247.4806 247.4096 247.7216 248.7584 250.6854 252.2218 253.4374 254.0439 253.0068 255.0759 259.8315 259.4579 258.827 258.8141 258.4651 258.3165 258.1946 256.703 254.4473 250.1414 249.6906 249.3282 249.6358 250.4212 252.783 255.4622 256.4135 258.4903 262.6515 264.3035 265.9139 268.0612 269.7887 271.6311 273.9907 276.6884 280.1296 286.4575 289.1169 289.2494 288.5799 287.6924 286.1649 283.7269 280.5955 277.793 275.3955 271.7767 273.55 277.4688 280.306 282.407 285.9358 289.8395 289.8941 289.5951 290.4228 290.6276 291.4855 291.9623 290.2717 288.4694 286.7846 285.5338 280.9305 281.6234 283.8918 286.3788 288.8947 290.7161 292.609 293.7567 294.8214 294.9781 295.2076 294.9435 294.9891 295.0849 294.2283 293.4489 292.6206 292.5432 289.6514 288.949 289.1885 289.5999 290.2739 290.5536 289.7394 286.8206 283.021 278.8135 285.0358 288.7748 291.4482 293.2525 293.4464 292.2517 291.837 291.6651 294.8925 296.9035 297.9646 298.3499 297.5937 296.0747 293.9341 293.1227 293.5492 295.0008 295.3552 295.2905 294.7229 294.4264 294.1343 292.7521 291.0209 289.2847 284.0591 281.644 277.6249 272.0831 271.97 275.6183 279.5114 282.52 283.6879 283.4785 284.1472 284.7206 285.6078 286.3412 287.0329 286.8991 289.5809 291.5701 290.706 290.3834 288.9763 287.6599 285.2621 279.6492 275.0377 271.2766 271.2823 275.2734 277.1082 278.0995 280.5862 -9999 +-9999 -9999 -9999 345.0332 347.7438 349.0869 350.7749 353.6871 355.4998 356.8994 357.2089 353.0119 342.6146 337.2176 334.3429 334.7599 336.7798 336.3845 334.231 331.4804 329.5384 319.6401 318.1879 317.6054 316.3668 314.7554 314.4547 314.1068 313.9887 316.4076 321.6711 320.3005 322.5572 323.1427 322.7952 322.1178 321.5914 320.218 317.594 308.425 312.991 315.7335 316.9535 313.5598 309.9091 308.429 306.7609 302.7472 288.7546 285.3928 287.5423 285.5831 282.9958 279.0915 271.7497 272.4854 270.2958 269.5832 271.0936 266.7312 270.6834 270.4628 272.2302 275.3467 277.8131 279.2648 278.5911 278.2472 278.491 279.2421 280.7239 283.1187 284.1475 283.9353 282.2901 273.8299 279.5229 283.1305 285.2845 287.5672 289.027 288.1365 287.3226 283.3929 281.4648 288.0641 292.568 295.716 298.1507 298.5776 298.0682 296.5337 296.0463 292.3737 290.7206 288.484 287.3973 287.2368 287.4484 288.4674 289.1555 290.3981 290.9995 289.9875 288.0741 287.3616 284.1115 275.4956 267.4424 264.5562 263.6728 267.9488 268.2773 268.1943 264.1088 263.5497 271.8602 273.904 273.1638 273.1597 283.264 286.5412 289.0614 291.8289 294.6891 297.1924 299.4089 301.4066 303.8544 305.7346 303.9648 297.2178 288.8329 275.6884 260.9788 257.0836 260.5641 262.2026 271.8153 276.9543 281.6709 285.6311 288.7735 291.8139 292.7638 290.5913 288.5537 287.8542 288.0392 286.4206 281.9763 275.192 266.4344 259.6746 255.5654 260.6924 273.441 284.6574 287.5496 290.8336 294.197 294.2867 288.8961 281 274.2631 275.147 278.3275 279.8967 283.2554 286.2591 289.0337 292.5584 295.2581 296.3241 288.8049 282.2333 276.035 266.9018 264.7451 268.061 256.2501 251.7582 254.8628 260.2438 262.6311 264.4479 265.4084 266.594 267.2664 267.4412 267.3805 265.7234 260.9108 258.0668 254.9873 254.8545 249.6136 253.061 255.3361 254.8916 255.4633 252.3643 254.3577 256.5832 260.1166 263.2534 265.7596 269.2207 271.1136 273.2823 282.8894 288.4361 292.2165 295.5064 297.8892 300.1485 302.5206 304.4547 306.1157 308.6902 308.0287 302.9905 295.7374 289.8541 286.0338 285.4816 285.2901 284.1324 280.9434 280.9612 281.0829 283.8191 285.6986 286.5234 286.861 287.2776 287.6458 286.7491 285.2556 283.041 281.2036 280.3133 279.175 277.0234 273.6476 270.7911 265.4431 262.8795 260.0874 256.4662 254.4176 253.3247 253.564 253.6782 253.443 250.0656 250.0627 250.1391 250.7371 250.2313 247.6664 247.0121 250.3185 249.9122 249.2363 257.0986 262.7099 264.5422 259.7924 252.2374 250.4912 251.0065 252.6184 258.7214 261.1683 263.3673 265.499 266.7541 268.258 269.1374 268.6968 264.5286 254.2394 248.4243 244.9766 246.8836 247.873 247.5903 247.2507 247.4117 250.3134 251.5797 251.3164 250.6021 248.3494 247.3273 248.1399 244.9373 247.7009 247.4037 248.777 252.9607 259.1058 263.0881 264.6071 261.7078 259.0001 258.695 261.919 264.8108 263.7723 261.1057 253.2424 256.3238 261.3889 263.4315 263.6112 260.115 251.7669 251.8756 253.86 255.9741 257.4914 257.1605 256.1478 256.6778 256.4078 256.674 256.5832 253.4408 251.6995 250.6767 251.2746 252.5921 253.3097 252.0587 246.7117 247.1661 247.2843 247.5823 247.6594 247.4471 246.574 247.4302 246.45 244.7046 246.5486 247.5598 247.8343 256.4792 257.5432 257.1001 248.3513 247.4667 247.2793 247.2993 247.5165 248.2559 249.6677 251.3346 252.2301 251.577 254.0925 257.2819 256.1716 255.5984 255.7508 256.0999 255.555 254.8571 253.5129 251.2307 249.5929 249.1788 249.2794 251.9053 254.184 256.9213 258.5854 259.3931 260.7657 264.5823 267.4592 269.9707 272.3012 273.9227 276.4239 277.8988 280.2715 283.5111 289.7779 291.6209 291.1599 290.4263 289.2434 287.5656 285.7419 282.6824 280.9451 279.6417 278.3393 273.3739 275.1681 278.4616 281.1566 283.1934 285.8727 286.5124 289.1625 290.0882 290.9662 291.8339 291.8621 291.9185 289.8499 289.2845 288.1684 283.7531 283.8378 285.3564 287.3765 289.2599 291.0389 292.3875 292.9248 293.3877 293.7513 294.7604 295.689 295.5791 294.6729 293.1892 292.2463 291.6269 290.2944 287.6085 286.5361 286.4801 286.0467 286.0263 285.5663 283.3555 280.5014 275.5826 283.7299 287.8065 290.9216 292.8198 294.6644 295.889 296.6818 295.5081 294.7714 295.0592 296.7519 297.683 298.4699 298.0727 296.3561 294.8005 294.6779 294.6776 295.5235 296.2862 296.38 295.8054 295.5142 294.3057 292.8975 291.3746 289.0451 284.1179 281.302 277.6395 272.8795 271.082 272.343 275.075 278.5903 280.4712 281.4511 282.4539 283.2563 284.0483 283.9616 284.8833 287.2178 289.6518 291.3458 290.5714 288.8871 288.5034 286.8777 283.7374 278.2023 272.7309 270.771 272.2037 276.6068 278.031 279.9283 282.1645 -9999 +-9999 -9999 345.7559 348.3221 351.4953 354.7617 357.775 360.5633 361.8293 360.9928 356.1182 351.69 344.2386 341.599 340.4973 340.9148 340.6716 339.1023 336.3056 333.1426 328.8021 324.0936 325.4175 324.4818 322.3726 317.9561 321.7519 322.1325 322.2226 317.5008 324.2787 323.0913 322.8862 322.8207 321.1662 318.7058 316.951 314.6267 313.3962 316.269 317.2409 318.682 319.0925 316.6069 312.9391 311.3519 308.9698 303.2008 293.6917 294.4215 294.8842 293.1433 289.6489 284.8323 280.5138 278.756 275.481 269.5865 267.5343 269.7584 270.5384 271.8074 275.3949 278.475 280.8241 281.285 279.8637 279.3297 278.937 279.3468 282.5998 283.9065 284.4852 285.6494 284.2899 276.0454 277.8428 282.1795 285.3914 288.5899 292.1524 294.2857 294.0397 288.8805 283.1297 288.4854 293.0029 297.112 298.786 300.2595 299.1274 299.548 298.9731 295.8727 293.4802 291.3143 289.4035 288.2397 287.5358 287.0064 287.0517 287.8154 288.3821 287.8451 285.4911 284.0242 282.649 279.229 272.8001 266.7578 266.4933 263.9861 263.5328 263.7346 267.0596 274.5499 280.9722 285.3529 284.7823 282.3083 280.426 283.9115 284.9742 286.6679 289.9409 292.1287 295.0576 297.6532 303.8544 305.7346 303.9648 297.2178 288.8329 275.6884 260.9788 257.0836 260.5641 262.2026 271.8153 276.9543 281.6709 285.6311 288.7735 291.8139 292.7638 290.5913 288.5537 287.8542 288.0392 286.4206 281.9763 275.192 266.4344 259.6746 255.5654 260.6924 273.441 278.3112 284.4157 289.79 292.9047 296.6107 293.892 286.2138 277.1956 278.0356 281.3389 282.8032 284.0803 286.6707 289.1672 292.047 294.128 294.8324 285.7713 277.9579 271.7693 275.4646 277.4904 277.088 263.3682 250.3834 254.6208 257.8524 260.561 261.6719 262.4746 264.0868 264.3879 264.9698 264.9961 263.8997 258.8721 255.2167 254.3589 249.6366 254.0129 256.7633 264.1345 264.1288 262.1377 251.7394 257.8181 264.0038 268.004 270.9313 274.4159 277.1935 278.925 279.2128 283.788 285.5218 291.2421 294.542 296.4471 298.3912 300.4363 302.7033 304.2237 307.322 306.9216 301.2012 297.3434 295.0575 295.831 294.826 294.4892 290.3309 285.993 285.6226 285.7114 285.7669 288.0723 289.6443 290.0813 289.9684 288.9624 283.4287 281.3539 281.3016 278.7493 277.2162 277.0156 275.3269 272.3719 269.7843 263.3327 258.8601 258.8462 255.8128 253.7089 252.1477 251.9046 251.2706 250.9083 250.3491 250.1185 250.1348 249.3746 246.9609 250.2645 250.8964 250.9279 251.2223 255.0665 262.2695 267.0974 269.6167 265.2914 257.5227 251.9735 251.3608 252.5401 258.4619 260.6728 262.762 264.9545 265.5778 266.7679 266.7338 265.893 260.3824 245.6535 245.4254 248.1475 247.7577 247.6796 247.4011 247.3416 248.7817 252.6987 252.7927 252.5692 251.9485 250.3962 248.1538 247.3394 248.6483 244.9332 247.0703 248.7202 255.3673 260.5721 263.2189 261.5488 257.5535 255.7355 258.8114 262.5982 264.1363 262.7692 260.8828 257.346 251.3288 257.2415 261.0373 262.4341 260.1341 251.7118 251.7639 251.6829 254.8834 255.7626 254.5447 254.3485 255.6582 253.5333 250.3608 248.4514 247.4474 247.2109 247.3854 247.4864 247.4945 247.2713 247.1259 247.0414 246.8609 247.1271 247.4496 247.6424 247.5309 247.6084 247.5983 247.4739 245.2734 244.7309 247.4671 247.29 249.5035 258.5455 258.9091 256.8578 248.492 247.1579 247.2282 246.9613 247.4237 247.7136 248.405 249.8159 249.5088 250.8943 251.9191 251.0318 251.4035 252.4559 252.983 252.7216 251.8494 250.6682 249.2424 249.3092 249.2043 250.6369 253.722 256.3837 258.4211 259.8782 261.148 262.6248 266.008 268.7312 271.3793 273.1353 275.716 278.6602 281.6179 284.0944 286.3216 289.3264 289.6017 289.0917 288.456 288.624 288.4008 287.3103 285.6503 285.1732 283.7499 281.9894 279.4637 274.4337 274.7821 277.3035 280.2975 282.6448 285.1006 288.5824 290.3882 291.8227 292.4777 292.7373 292.5271 291.8774 291.096 289.8221 286.912 286.2188 287.6132 288.9476 289.935 291.3044 291.7449 292.0842 291.9669 293.9631 294.9798 295.6674 295.6081 294.4276 293.1988 291.8646 290.3829 288.9492 285.9624 285.1763 284.3388 283.0607 281.1902 280.3073 278.4405 274.4517 277.39 285.2945 288.6083 291.955 294.0719 295.978 298.2574 299.0611 298.0534 296.7978 296.2662 297.1031 298.2395 298.8635 298.135 296.8527 295.773 295.2849 295.2623 296.1459 296.9014 297.2736 296.662 295.724 294.1584 292.5404 291.0411 288.3781 283.7505 280.9532 277.0653 274.1246 271.3083 271.2921 272.221 275.4913 278.7368 280.7806 281.3385 281.0615 282.97 284.4783 286.7203 288.7184 289.9097 290.93 290.3563 288.8871 288.5034 286.8777 283.7374 278.2023 272.7309 270.771 272.2037 276.6068 278.031 279.9283 282.1645 -9999 +-9999 -9999 350.0558 353.3847 356.3789 360.1004 362.2383 361.4748 358.6325 354.6078 351.2573 346.6155 345.0107 343.6122 343.4391 342.5832 341.7473 339.5977 336.406 334.5228 331.0397 329.2232 328.5948 327.1937 321.8456 321.8194 325.1271 325.7955 324.6734 321.4529 326.0564 326.0685 324.9751 323.7129 321.8188 320.3443 318.682 317.5494 316.6959 320.4494 320.6728 321.145 321.2387 319.7987 317.6283 315.2074 311.6526 307.8057 301.8691 301.1967 301.0034 298.8079 294.1327 288.3869 283.859 280.0323 276.6809 271.5893 267.0895 270.6743 270.9279 273.6104 276.6951 279.7532 281.7029 282.9456 282.4496 281.4423 280.5056 280.3477 282.8782 283.7526 284.7208 286.3521 285.5118 280.5101 278.7003 280.0674 284.0964 287.5048 290.4696 293.1171 294.4156 291.0259 285.8202 291.5898 295.1783 297.9612 300.5631 301.3746 300.8388 300.1682 300.5659 298.2556 295.6694 293.0242 290.7105 288.9635 287.5804 286.2897 287.0517 287.8154 288.3821 287.8451 285.4911 284.0242 282.649 279.229 272.8001 266.7578 266.4933 263.9861 263.5328 263.7346 267.0596 274.5499 280.9722 285.3529 284.7823 282.3083 280.426 283.9115 284.9742 286.6679 289.9409 292.1287 295.0576 297.6532 299.6874 303.8453 304.0301 303.2176 301.6205 295.3687 288.7028 272.8275 258.0216 257.3545 263.4256 269.1292 274.5475 279.7875 284.6956 288.162 290.4826 290.4409 287.4019 284.0942 284.7023 284.1862 282.1233 275.2926 267.4885 259.7008 255.634 259.5337 271.0261 275.3519 282.7403 288.342 293.2081 296.1284 294.0519 286.5297 280.4422 285.6662 287.3045 287.9092 287.9743 288.4043 289.7543 291.801 293.5384 292.7878 282.3735 275.1595 277.9968 281.6579 283.9279 284.4845 275.8838 261.8519 250.2712 255.3122 256.4604 257.8836 259.5003 260.9753 261.7533 262.2981 261.7792 260.0463 254.8773 254.5103 249.5297 252.6989 260.1977 271.0593 274.9832 271.0908 265.9961 253.0225 260.3141 267.6745 272.6539 276.0926 278.0429 280.9933 283.7824 284.4759 287.2485 287.4525 288.1371 289.5714 291.7107 293.8763 296.4824 298.3412 300.2072 306.0201 306.2221 306.1549 304.8032 302.5946 300.8365 301.008 301.7615 299.5398 290.0011 288.0515 287.0974 287.9162 289.1434 290.2175 290.4899 289.7242 287.3324 282.0063 277.3385 279.5082 277.9556 275.4904 274.7008 273.8607 271.9669 269.149 264.0179 261.4008 257.0786 255.094 252.9488 252.1804 251.2909 253.5346 254.1786 250.7491 249.6781 248.8881 250.2972 247.3418 251.0789 250.7337 246.9011 247.3821 256.9398 262.2508 265.812 268.146 267.535 261.9955 256.2789 253.024 253.1467 257.2987 259.7707 261.7847 263.2357 264.5729 265.0194 263.6513 260.7409 256.7957 248.3913 247.8468 247.6974 247.6176 247.4885 247.5693 247.7435 249.9109 253.7882 254.444 253.6416 253.261 252.7138 250.0067 247.5864 247.3169 248.6506 246.3699 247.6548 252.4005 258.0924 261.1742 256.8938 253.9175 257.7976 260.7487 262.2037 263.0583 262.7661 261.1974 258.4783 251.1513 253.6246 258.1376 260.2866 260.2475 250.1779 251.4434 251.2595 252.8571 254.0842 253.2662 251.4778 249.7737 247.3666 246.8135 247.076 246.8532 246.8829 246.9342 246.9562 247.0448 247.1767 246.865 246.5385 246.6905 247.064 247.3699 247.5567 247.3966 247.3941 247.4038 247.3378 247.504 244.3018 247.454 247.2033 247.2847 252.853 259.9069 260.3289 256.8663 247.2163 247.1364 247.2121 246.9189 246.9523 247.0037 247.6192 247.7145 247.7896 248.0928 247.6365 248.1634 248.394 249.17 249.2101 248.8685 248.759 248.8555 249.216 249.6844 250.5677 252.2519 254.6566 257.365 259.806 262.0054 263.3648 266.6887 269.1844 272.6169 274.7351 276.6355 279.1942 280.7103 282.1073 282.6351 283.9468 284.8714 283.8627 283.8777 286.9103 288.9755 288.7156 288.8071 288.6562 286.4001 285.0641 283.624 280.0056 276.4478 277.5601 278.3566 280.5077 283.5645 287.0942 289.82 291.7386 292.8331 293.3142 293.2452 292.925 292.6015 291.7277 289.0187 288.9836 289.2076 290.636 291.0901 290.4664 290.7427 290.464 291.3746 294.1394 295.248 295.7551 295.5789 294.7665 293.6108 292.0255 290.874 289.4002 284.9956 283.1437 282.4341 281.314 279.0494 276.5181 274.2436 275.2172 280.2899 286.9164 289.6525 292.6699 294.9637 297.2468 299.4492 299.0611 298.0534 296.7978 296.2662 297.1031 298.2395 298.8635 298.135 296.8527 295.773 295.2849 295.2623 296.1459 296.9014 297.2736 296.662 295.724 294.1584 292.5404 291.0411 288.3781 283.7505 280.9532 277.0653 274.1246 271.3083 271.2921 272.221 275.4913 278.7368 280.7806 281.3385 281.0615 282.97 284.4783 286.7203 288.7184 289.9097 290.93 290.3563 288.2922 286.8075 285.2879 283.3228 276.3328 270.9794 269.5514 272.7356 277.9718 279.7524 281.2737 282.9402 -9999 +-9999 -9999 351.8483 355.3788 356.7957 356.8267 354.8278 351.8322 348.5487 346.5867 344.5398 343.3349 342.7682 342.1102 341.528 340.9763 340.7768 340.3751 339.7108 338.1137 335.2492 334.812 332.1814 327.9561 324.2499 326.8308 327.7088 328.2339 327.0008 325.2656 328.1311 328.5526 327.9616 326.482 324.7622 322.9126 321.6489 320.5181 318.9687 320.3078 320.5653 320.7472 320.8919 320.8073 319.411 316.4697 313.1121 308.0997 306.166 305.1694 304.7935 302.1335 296.5759 290.8488 287.0537 284.1646 279.7698 269.1217 268.9164 270.7432 272.2543 275.7664 278.012 280.2956 282.0555 284.1091 285.3861 284.4406 282.9143 282.1757 282.8619 283.8844 284.7208 286.3521 285.5118 280.5101 278.7003 280.0674 284.0964 287.5048 290.4696 293.1171 294.4156 291.0259 285.8202 291.5898 295.1783 297.9612 300.5631 301.3746 300.8388 300.1682 300.5659 298.2556 295.6694 293.0242 290.7105 288.9635 287.5804 286.2897 285.5075 285.2668 285.5447 285.3224 283.6823 280.6083 278.3517 276.0472 270.8386 266.3276 265.8857 266.7656 267.4141 274.2315 276.6921 275.966 282.3806 287.8688 291.1451 292.2993 291.101 292.011 293.025 291.8333 290.6408 290.0592 292.4938 294.0144 295.5785 300.4282 300.8499 302.2801 303.5204 301.0305 293.5363 285.7529 275.0783 262.6039 260.5435 262.0498 266.9519 273.9545 279.7231 284.4282 287.747 289.3282 286.7911 279.699 280.6466 281.4318 280.4986 275.8125 267.6782 260.3608 255.7267 258.8046 268.0775 277.1461 284.3249 286.8642 290.7233 293.226 293.162 287.8843 284.7122 293.6071 294.8558 294.7866 293.3419 291.8277 292.043 292.3385 293.438 292.4396 283.1282 275.9165 279.8552 283.8825 287.1602 287.2461 282.8986 267.845 256.4812 253.6392 255.1261 255.2556 256.1332 257.4799 259.0497 259.654 259.2385 256.7636 254.9093 251.4335 250.5544 262.4248 271.5325 277.0576 278.3932 274.5767 267.8763 253.6933 260.2219 267.2054 272.6424 277.4401 280.8315 282.8367 284.0934 285.1122 288.9354 291.3496 292.605 292.9653 293.0367 292.8488 294.0689 296.6823 300.1426 306.575 308.3797 309.631 308.9612 307.1026 305.1861 303.1143 301.2428 301.2922 291.5215 288.0135 288.8191 287.3377 287.3106 287.6281 287.5649 286.7774 283.808 279.1289 274.8138 276.3163 275.8516 274.5682 272.8725 271.8723 270.3641 268.1122 263.2523 260.5078 256.3869 253.6752 252.2848 251.8008 255.1142 259.2986 261.3798 257.064 251.8438 250.712 250.5901 250.8198 247.3088 247.7594 249.0719 247.2961 254.9592 259.4682 262.7595 264.6071 264.8798 261.7834 257.8162 254.7517 253.4966 255.8179 258.2003 260.1748 261.9275 263.3185 263.6279 260.5538 255.1736 244.9012 247.839 247.796 247.8147 247.7796 247.6695 248.0307 248.521 251.7 254.5334 255.1797 255.5933 255.102 254.4236 252.2159 249.01 247.3225 247.482 248.7359 244.9373 247.9072 251.0171 253.8009 250.9769 256.4606 258.8781 258.951 259.8178 261.9027 262.2324 261.5266 259.0544 253.6145 248.3489 253.9552 256.6052 256.7712 247.2889 248.7397 249.9365 250.8389 252.1247 250.4379 246.5039 246.0032 246.2425 246.6772 246.9254 246.7182 246.7745 246.8038 246.8992 246.9829 247.062 246.9534 246.5216 246.6557 247.14 247.4123 247.2032 247.1426 247.3478 247.3351 244.4671 244.2052 246.4127 247.3176 247.5286 247.4603 247.3659 256.7559 261.4273 261.663 248.4856 246.7852 246.9332 247.0558 247.1397 247.1668 247.2506 247.2427 247.554 247.0909 247.7279 247.9445 248.0641 248.2848 248.4303 248.39 248.5831 248.5788 249.0263 250.1768 252.0548 250.4918 252.0011 254.6944 257.4307 260.4025 260.6994 260.5158 261.8235 264.1629 265.6776 269.2521 272.4574 274.9554 276.1519 276.9257 277.5553 279.5425 282.3562 285.8112 287.5842 288.8287 290.0977 290.6596 290.8017 289.3802 288.7154 288.6434 286.2061 284.6408 283.527 283.7238 285.4248 286.3037 288.8376 290.7427 292.1892 293.0634 293.3142 293.2452 292.925 292.6015 291.7277 289.0187 288.9836 289.2076 290.636 291.0901 290.4664 290.7427 290.464 291.3746 294.1394 295.248 295.7551 295.5789 294.7665 293.6108 292.0255 290.874 289.4002 284.9956 283.1437 282.4341 281.314 279.0494 276.5181 274.2436 275.2172 280.2899 286.9164 289.6525 292.6699 294.9637 297.2468 299.4492 300.2599 299.536 299.2416 298.5033 298.084 298.881 299.3709 298.4113 297.3256 296.4132 295.7104 296.2285 297.2655 297.5293 297.7385 296.828 295.514 294.7349 293.3554 291.6253 289.5167 283.5279 280.8952 276.7652 274.6335 271.6054 270.5919 271.0983 273.9125 276.9612 279.4369 279.3912 281.1202 283.924 285.9126 287.5477 288.9142 289.9306 290.6518 289.4868 287.1993 285.4944 284.6117 281.0186 275.9165 270.549 270.3706 273.4236 278.769 280.2305 281.9136 283.1541 -9999 +-9999 -9999 346.3417 348.9797 349.8241 349.5848 347.308 345.0304 343.1366 340.4321 340.3869 339.1413 339.8479 340.0623 338.9793 337.9812 338.6801 338.9242 337.991 337.5065 336.0418 335.2765 333.9603 329.2686 327.3172 329.8484 330.036 329.8039 328.7021 328.3951 329.9872 330.9483 330.4659 329.127 327.648 326.0048 324.2439 322.6667 320.4722 319.1503 318.4802 318.5804 318.8107 318.7871 317.3479 316.4697 313.1121 308.0997 306.166 305.1694 304.7935 302.1335 296.5759 290.8488 287.0537 284.1646 273.5244 269.1217 268.9164 270.7432 272.2543 275.7664 278.012 280.2956 282.0555 285.4083 285.3861 284.4406 282.9143 282.1757 282.8619 283.8844 285.3241 286.854 286.4644 283.5482 279.3372 279.0142 282.6729 285.8796 288.9696 291.1161 292.2842 291.3012 286.5117 292.2805 295.9875 299.0063 301.3231 302.225 301.8321 300.9805 301.851 298.642 296.6204 294.2018 291.2455 288.9848 287.2407 286.0206 284.6549 283.1164 282.1023 281.7014 280.4072 277.7372 273.7735 272.3322 267.1931 269.0167 270.7424 278.9792 283.9339 286.9546 285.8835 281.5314 283.015 289.414 293.931 297.0316 298.8142 299.4542 300.5246 298.3907 296.3978 294.6994 293.3344 292.9196 294.0623 295.845 296.7516 298.7896 299.712 300.8283 295.1484 286.5852 276.6654 267.0397 257.4579 256.6576 261.0197 264.4081 272.0482 278.2064 282.6017 283.3811 282.5274 277.4283 276.0337 277.6366 278.3728 275.8979 269.4706 261.199 257.513 256.4709 267.2848 275.3911 288.4839 291.8026 291.2204 292.1856 292.9741 287.9337 288.3163 296.7116 299.6281 300.7631 298.9668 295.4483 294.4788 294.0439 292.5874 291.6778 283.4516 276.7342 282.6315 286.8157 289.5343 291.8458 290.5605 284.1418 273.9888 253.5289 249.9168 254.1584 254.7306 255.0148 255.237 255.1379 254.4383 254.3753 249.5674 252.4118 261.1122 269.7869 276.0964 279.6247 280.1591 276.1035 269.5164 254.8664 258.9838 265.1411 269.9632 274.6746 279.5038 281.863 280.4776 280.7752 287.0933 290.6967 293.8018 295.9767 297.0321 297.3195 297.5057 299.0897 302.8145 307.6866 309.5803 310.9001 310.5866 308.9448 306.8282 304.5122 301.9332 298.3443 289.7112 286.8099 284.7412 285.1822 284.7071 284.7484 284.0273 282.4775 279.6136 276.6518 273.2736 273.482 273.5763 272.2969 271.2834 269.9687 268.7288 266.4218 261.5743 258.4023 254.6961 252.561 253.4386 254.3131 259.7474 263.2079 266.1927 264.5269 258.6626 251.2718 250.0651 250.4682 250.9259 250.5767 250.8053 247.0263 251.395 255.3231 258.6769 260.6195 260.5942 258.9288 255.8074 253.8671 253.2318 254.6295 256.5337 258.8661 260.3772 262.0618 262.2473 257.1477 248.8631 245.205 248.202 247.8794 247.7576 247.8865 248.3561 249.1674 251.7947 254.4728 255.9707 257.4713 257.3408 257.0518 255.9618 255.1297 250.133 247.8581 247.5714 247.6049 249.1119 244.9955 245.7252 247.7096 250.3315 254.5736 256.5493 256.1623 257.3286 260.4482 261.292 261.1619 258.9845 254.3925 248.2708 249.5003 250.2058 250.3855 247.5719 247.2691 247.9378 248.0553 246.7009 245.5411 245.6179 245.7393 245.9986 246.2913 246.7637 246.8793 246.7823 246.7232 246.888 246.9645 246.8369 246.791 246.8514 246.8824 247.1029 246.9353 246.8949 247.2441 246.0912 244.5215 247.3697 247.4643 247.211 247.1948 247.4626 247.5845 247.3895 249.9055 260.8461 261.1571 255.5635 251.2313 253.8986 253.4061 251.8913 248.8456 247.4156 247.3397 247.4866 247.6862 247.8965 247.8623 247.9971 248.0364 248.3334 248.3656 248.5692 248.5625 254.0886 259.4455 261.0479 250.4918 252.0011 254.6944 257.4307 260.4025 260.6994 260.5158 261.8235 264.1629 265.6776 269.2521 272.4574 274.9554 276.1519 276.9257 277.5553 279.5425 282.3562 285.8112 287.5842 288.8287 290.0977 290.6596 290.8017 289.3802 288.7154 288.6434 286.2061 284.6408 283.527 283.7238 285.4248 286.3037 288.8376 290.7427 292.1892 293.0634 293.7574 294.1115 293.6514 292.9921 292.357 291.4305 291.1978 290.3834 289.8215 288.9994 288.7193 288.5622 288.7555 290.6251 293.9677 295.0363 295.6588 295.3827 294.2966 293.2155 292.0805 290.1476 288.2543 284.2495 281.8092 280.6011 280.0992 277.9779 273.3487 272.6262 277.7576 282.4696 289.2277 291.2502 293.4968 295.4779 296.7938 298.2274 299.571 299.3357 299.5211 299.4855 299.615 299.9855 299.6905 298.952 298.2399 297.2639 296.7148 297.0153 297.9047 297.9253 297.7541 296.2347 294.5798 293.4752 293.1546 291.8522 289.6253 283.9825 281.2245 278.663 275.0272 272.4228 270.5822 270.07 272.9148 275.0998 276.6906 279.5864 282.3901 284.2703 286.1466 287.5245 288.6759 289.4413 290.067 288.8153 286.775 284.9821 283.3878 278.7674 274.968 269.8584 270.3327 274.1235 279.0762 280.7454 282.5324 283.7932 -9999 +-9999 -9999 341.8233 342.2805 343.3695 344.3047 343.5701 342.3037 340.3082 337.93 335.6929 335.7721 336.5692 336.7731 336.0216 334.4179 335.9215 335.3666 337.991 337.5065 336.0418 335.2765 333.9603 329.2686 327.3172 329.8484 330.036 329.8039 328.7021 328.3951 329.9872 330.9483 330.4659 329.127 327.648 326.0048 324.2439 322.6667 320.4722 319.1503 318.4802 318.5804 318.8107 318.7871 317.3479 314.7168 312.1315 307.2932 305.0845 303.0177 302.5298 301.7159 299.0287 297.564 296.1324 292.6051 274.1375 267.1203 270.9246 271.1661 273.4342 276.4223 278.7374 280.2652 282.0022 286.3207 287.6349 287.5918 285.9234 284.0856 283.6288 284.6877 286.0856 287.3781 287.3919 285.2928 279.966 279.5415 282.0554 284.8241 287.1819 289.6267 291.2432 291.0903 288.8203 290.934 296.088 299.3133 301.7192 302.4991 302.589 301.8969 300.0713 298.1209 296.4768 293.7041 291.3795 287.3275 284.8293 283.4899 282.7935 282.4435 279.1818 278.6722 277.1913 273.0088 269.1323 269.3932 272.998 277.4405 276.3457 278.2102 284.7586 288.8851 290.7876 290.97 283.3939 289.357 295.9106 300.0288 303.5004 303.6878 305.4794 303.9704 301.4853 299.686 297.4659 295.5009 294.5443 292.5801 293.2272 294.5815 296.8859 297.7383 296.2641 287.3652 274.8979 272.3056 275.8348 261.5007 256.8059 258.5511 261.7441 268.0526 273.5349 276.494 277.8516 272.8353 273.2304 274.3279 275.2153 275.0307 271.2318 264.2737 259.609 255.8754 268.3609 276.7109 281.5504 287.7807 295.1658 294.9728 294.2546 290.4891 290.1423 297.4063 300.6432 303.0048 302.522 298.9407 295.7654 294.3789 290.3529 288.1227 281.7909 279.0791 285.1006 289.1994 292.4434 295.3456 295.8971 292.1209 287.4101 269.419 261.6428 252.5606 250.3987 254.798 254.4655 254.5484 254.1948 249.7898 258.0329 264.3584 272.3362 276.9394 280.2352 282.0507 281.1561 277.0367 269.9888 256.6179 261.8889 265.4486 268.9381 273.2678 277.4956 276.6192 273.8032 273.6709 284.5783 290.2366 294.8267 298.5008 300.59 301.0058 301.9247 302.4934 304.4313 308.9214 310.7904 311.366 309.8577 307.2254 303.775 299.6278 298.8626 294.5661 287.5728 284.0285 283.7151 280.3632 282.0535 281.3351 280.1889 278.6087 276.3148 273.5599 270.7464 270.5552 271.0374 269.7081 268.3255 267.5721 266.7764 264.9107 259.2715 256.0055 253.7139 254.4394 256.0774 259.0721 262.1414 265.5699 268.6393 272.3743 264.5719 253.0998 250.032 250.2853 250.5863 250.244 250.5475 247.8192 250.4124 251.2251 254.0318 256.1618 256.9443 256.4252 254.4248 253.3147 252.9662 253.9278 255.3583 257.3017 258.0294 258.7994 259.1711 252.5477 245.1213 247.9465 247.9726 247.744 248.1908 248.2858 249.1891 251.396 254.0277 256.0095 257.7762 260.6165 260.301 259.0192 257.9322 256.1461 251.69 247.9556 247.2604 247.1712 248.0766 248.7982 245.3604 244.9518 247.7213 248.7809 252.2285 252.9003 255.4209 259.5927 260.0243 258.919 255.7296 249.9435 246.6625 246.3684 245.9522 245.803 246.244 246.3528 245.7289 245.5588 245.5037 245.7409 245.9955 246.0554 245.8253 245.6702 245.9582 246.6213 246.6629 246.7503 246.5235 246.6002 246.498 246.6527 246.8203 246.8017 246.7498 246.8899 246.8949 247.2441 246.0912 244.5215 247.3697 247.4643 247.211 247.1948 247.4626 247.5845 247.3895 249.9055 260.8461 261.1571 255.5635 251.2313 253.8986 253.4061 251.8913 248.8456 247.4156 247.3397 247.4866 247.6862 247.8965 247.8623 247.9971 248.0364 248.3334 248.3656 248.5692 248.5625 254.0886 259.4455 261.0479 259.677 252.551 252.5063 255.3387 256.0715 255.2773 261.5303 266.1926 268.912 269.6235 263.4157 265.0513 266.9796 269.8045 272.8273 276.8156 279.956 282.2581 285.5086 287.0812 288.3776 290.3336 291.9766 292.8781 292.9102 292.5594 291.8402 290.9235 289.1486 287.6633 287.2653 288.0735 288.9048 290.7482 291.5507 292.3507 293.2447 294.0504 294.4242 294.073 292.9604 292.5619 291.6246 290.59 289.4575 288.3842 287.0586 286.4113 286.4467 287.9766 289.6608 292.9233 293.7775 294.0594 293.8672 292.6966 291.5333 290.5582 288.6356 286.6508 281.9339 279.7608 278.3459 276.6414 271.0886 274.201 274.3686 280.0629 284.5681 291.1405 292.5609 293.5379 293.8178 294.3249 295.8261 296.9983 299.0107 299.5977 300.1137 301.2624 301.2134 300.666 300.2852 298.9189 297.8476 297.2142 297.4307 298.7624 298.4343 297.4818 295.7434 294.49 293.7453 293.6164 292.191 289.918 284.2839 282.0823 278.2063 274.9116 272.3511 270.4381 269.5229 272.2648 274.7578 278.3966 280.3727 281.75 283.0776 284.7538 286.2437 287.5906 288.8994 289.8987 288.3813 285.9825 283.7446 281.4621 275.2269 270.6354 268.5052 270.916 275.1837 279.93 280.9064 282.3357 283.7395 -9999 +-9999 -9999 341.8233 342.2805 343.3695 344.3047 343.5701 342.3037 340.3082 337.93 335.6929 335.7721 336.5692 336.7731 336.0216 334.4179 335.9215 335.3666 334.406 335.4616 338.1622 337.5772 335.3414 333.2353 332.0733 331.4185 330.352 329.4432 328.8177 328.9041 329.4061 329.8114 330.1979 329.3194 327.3442 325.8442 324.595 322.5726 319.3398 317.4992 316.1323 315.8959 315.9404 315.9253 314.3273 311.6538 309.3459 303.0427 299.8279 297.206 297.3028 296.8386 294.3841 297.8258 299.7538 292.8812 267.7334 268.8069 270.7975 272.3953 274.8301 277.2642 279.7661 282.0971 283.9161 287.5409 288.6141 288.8698 287.1921 285.6827 285.4697 286.2493 287.1082 288.1313 287.8498 286.1967 283.6041 282.365 283.0823 285.8306 288.3258 289.9635 291.4887 293.5073 293.0823 291.7919 294.6089 298.5212 300.9396 302.6134 302.9933 302.3491 299.2103 297.4845 294.8082 291.8497 287.3289 285.413 284.0994 282.8239 281.0008 278.5521 277.4078 275.0853 272.0121 273.3446 276.5826 278.8707 281.8721 282.9815 275.96 277.383 282.5446 286.7935 291.1409 293.4478 291.6735 292.6782 297.9307 304.1856 306.5618 308.0952 308.6933 307.6031 306.165 303.509 300.4719 299.3265 296.9324 292.3566 290.884 291.2922 293.0295 295.0577 295.6822 291.9675 286.8909 284.4854 284.5656 278.8616 267.2219 258.5119 256.7832 259.9413 263.3915 268.2892 271.1195 269.5309 270.8398 271.5977 272.2461 273.1407 271.4032 267.4664 261.4068 257.3023 259.6289 275.2124 289.8102 298.2641 301.5103 299.7563 297.3958 296.451 293.6489 297.6621 301.263 303.756 303.7873 300.4095 297.1324 294.0634 288.9948 285.4986 280.4497 280.922 286.7086 290.912 294.2725 296.3633 296.045 291.8706 284.9175 273.0227 266.2386 257.3953 254.3724 251.4414 249.8401 249.7903 253.2065 260.7135 269.8111 274.8182 279.6828 283.5082 284.843 284.278 281.8698 277.9837 271.1644 256.8614 257.1841 262.2541 266.6942 270.2365 268.9959 270.6117 277.1305 281.9593 288.4101 292.1819 296.8108 300.3483 302.912 304.1524 304.9722 304.9348 305.1456 310.1423 311.5683 310.5153 308.2357 305.2144 299.2094 292.5738 292.1143 291.3121 284.1114 281.6251 279.7289 277.1898 279.3716 278.4923 276.9116 275.6074 273.9343 271.3834 268.7164 267.5075 268.8305 266.9396 265.8749 264.3564 264.8534 263.0278 256.0949 253.2873 254.5412 256.1599 259.4214 260.5011 263.1785 266.3467 270.424 275.7168 266.2652 252.9441 249.7901 250.0454 250.088 250.2144 250.2579 250.4812 249.502 250.3301 250.1086 252.2495 254.536 255.7029 254.3225 253.1557 252.7814 253.5844 254.8385 255.7736 256.4292 256.2302 255.5757 248.0937 247.6402 248.2251 247.8578 248.1602 248.8077 249.4713 250.8364 253.4907 256.7346 259.5831 261.6853 263.3373 263.1085 261.6911 259.628 257.3089 253.8591 249.5322 247.3238 247.0228 247.1871 247.9673 249.0288 245.6825 245.0864 248.7809 252.2285 252.9003 255.4209 259.5927 260.0243 258.919 255.7296 249.9435 246.6625 246.3684 245.9522 245.803 246.244 246.3528 245.7289 245.5588 245.5037 245.7409 245.9955 246.0554 245.8253 245.6702 245.9582 246.6213 246.6629 246.7503 246.5235 246.6002 246.498 246.6527 246.8203 246.8017 246.7498 246.8899 247.117 247.1607 243.897 246.6729 247.0483 247.0317 247.0895 247.1 247.338 247.3742 246.6862 246.6259 253.7187 263.5492 264.1582 258.3525 260.1262 260.476 260.1037 258.3694 255.221 252.8421 250.693 250.4681 253.7471 254.4178 252.6684 250.1294 249.3088 249.0741 248.7956 250.2395 261.1894 265.1902 266.6651 267.0815 262.6502 254.6578 251.9725 254.1308 256.603 265.5313 269.8241 273.6501 275.8249 274.8703 272.1963 269.2576 272.7286 275.3145 280.5215 282.1759 283.6015 285.5879 287.6482 289.1624 290.9456 292.7644 293.9746 294.4601 293.8675 292.0218 291.3752 290.2191 289.4677 288.9846 289.0739 289.6122 290.212 290.8777 291.8271 292.3916 292.2391 292.4407 292.9798 292.8302 292.2289 290.3624 289.1581 287.7343 286.1972 284.9465 284.7843 285.7134 287.6233 289.0102 291.8315 292.8404 293.6187 292.6037 291.3389 289.7231 288.5119 286.9935 284.0797 277.6374 277.0277 275.0992 272.0943 273.4453 277.3921 279.4738 278.9545 282.7973 287.2859 288.284 289.1379 290.3104 292.411 294.7306 297.4051 299.3428 300.2191 301.1894 302.0135 301.9245 301.2453 300.4685 299.5103 298.7266 297.955 297.8941 299.1548 298.3689 296.9121 295.5914 294.4134 293.9333 293.5271 292.0735 290.1759 285.6673 284.2177 280.5495 281.1714 280.8231 273.4573 269.7868 270.3301 272.6658 277.5512 278.5512 280.806 282.3072 283.5317 285.2609 287.1288 288.1494 288.2384 286.9739 284.6295 281.7356 278.3997 271.9729 268.9067 268.8118 272.7229 276.2602 280.2341 280.9352 281.5374 282.222 -9999 +-9999 -9999 336.7701 335.4844 338.3749 339.5605 339.5316 338.5412 338.1848 336.3123 332.6075 333.6742 334.526 335.1751 333.9627 332.0596 332.4448 330.8028 331.7744 334.8221 338.6871 338.327 337.431 335.2959 333.5564 331.8997 329.9984 328.1814 326.8483 326.7223 326.5849 328.1165 328.6188 328.211 326.4849 324.1047 321.9307 320.88 316.2966 314.001 312.5818 312.2376 312.8526 313.5753 312.8542 310.0117 307.6831 298.0228 294.1729 291.8777 290.1215 289.0112 287.6882 290.1875 290.7399 283.1901 267.1279 271.1245 271.3767 273.6596 275.8636 278.6448 280.5149 282.5714 284.0917 286.515 287.0576 288.3804 289.5059 288.4465 287.4281 288.1039 289.1021 289.8685 288.6287 286.9146 285.3502 284.2849 285.3025 287.1162 289.6671 291.2858 293.1997 295.6317 295.502 294.8064 294.3949 295.4892 298.709 301.6301 302.9227 302.4957 298.1599 295.314 292.4068 288.2845 289.1882 287.9623 286.396 285.8115 285.3587 280.6586 276.4458 274.3896 272.8046 276.5553 280.0677 283.941 287.5022 288.6232 279.9029 280.1703 284.5502 289.127 292.228 294.8578 296.5746 294.971 296.7798 302.8445 305.2887 306.9752 308.0178 308.5525 308.0516 305.9694 303.2278 300.9653 295.9659 293.5683 291.139 289.8111 289.7262 291.2911 292.1013 292.1238 291.7928 292.2167 290.9465 286.4239 279.9807 268.9779 261.1673 257.1134 257.0172 260.8245 264.5601 265.2845 267.0933 268.5611 270.0968 271.0068 270.0453 267.4212 264.0279 259.4703 257.2256 271.5258 285.7977 297.5708 301.2582 301.8505 302.2592 300.951 300.3852 300.0724 301.4232 303.742 304.5201 301.8792 299.0891 296.2044 292.1452 288.7334 281.7298 286.1302 289.8708 292.6444 294.5691 295.0666 292.8147 287.8058 281.4754 267.9793 262.2473 252.9879 254.3297 261.8451 264.7316 263.5825 260.9842 265.1855 273.2471 277.7161 282.2402 286.6201 288.1346 286.2044 282.9019 278.7692 272.4258 257.5321 256.9379 257.1987 261.4688 265.8159 272.2954 278.4058 284.2529 288.4787 292.713 294.7664 297.5822 301.8009 304.31 306.1446 307.5543 308.5007 308.5571 310.7812 310.0304 308.1695 305.9433 303.8274 300.3949 296.2154 290.6879 287.8076 280.557 279.6846 277.0554 273.6263 276.1891 275.4218 273.9366 272.5855 271.0876 269.3878 265.091 262.1606 265.4983 264.6101 262.2178 261.5515 262.4239 260.6435 253.6067 255.1517 255.9611 259.1563 261.8784 262.6692 263.9305 267.487 271.6931 274.9648 265.7382 253.4002 249.543 249.7097 249.5629 249.8258 250.0558 249.7396 250.5253 250.0929 249.8571 250.299 252.5099 254.973 254.4406 253.5584 252.7814 253.5844 254.8385 255.7736 256.4292 256.2302 255.5757 248.0937 247.6402 248.2251 247.8578 248.1602 248.8077 249.4713 250.8364 253.4907 256.7346 259.5831 261.6853 263.3373 263.1085 261.6911 259.628 257.3089 253.8591 249.5322 247.3238 247.0228 247.1871 247.9673 249.0288 245.6825 245.0864 247.7902 248.9289 250.6848 254.1181 258.4403 259.4443 255.0032 247.4611 246.2168 246.0266 245.8734 245.7424 245.6137 245.7077 245.735 245.5139 245.623 246.0593 246.0326 245.9815 246.0204 245.8483 245.8417 245.8552 245.9146 246.2596 246.256 246.1584 246.3208 246.4431 246.0844 246.5134 246.6118 246.8008 246.7741 247.039 247.2162 244.4976 246.1703 246.858 247.0045 247.1272 247.2986 247.2587 245.4684 246.5785 246.9347 247.5171 258.233 265.3916 264.3346 260.0248 261.576 262.9905 262.5791 260.1086 257.3607 256.0364 257.0792 259.3488 260.4092 259.4027 257.0754 252.7024 250.9686 253.5395 257.2225 265.5861 269.3015 270.7239 271.4023 270.7361 263.5602 253.469 254.9502 259.5479 266.8666 270.4485 273.861 276.7937 278.4041 277.5514 277.2332 276.7767 278.2034 281.2151 283.4525 284.7657 287.3847 289.2468 291.1014 292.6374 293.7531 294.7301 294.5798 293.0637 290.5406 287.598 287.718 287.7839 287.8085 287.707 287.5499 287.8979 288.3782 289.606 291.1048 292.2765 292.5358 292.2141 291.3404 290.5961 288.0997 287.0408 286.1373 284.7511 283.3534 283.7875 285.4025 287.1364 288.2765 291.0519 291.8336 291.6302 291.2159 289.6199 288.1007 286.1685 284.1939 280.6817 274.9254 274.535 273.3409 271.1344 275.584 278.6832 281.7041 282.911 281.9163 285.2527 287.3595 289.5506 291.8304 293.5148 295.5844 298.7932 299.8907 300.6426 301.5893 301.4929 301.2729 301.0171 300.5944 300.0781 299.6303 299.0002 298.51 298.9195 298.2186 296.8286 295.6112 294.0806 293.5631 292.6998 292.4102 291.9138 288.2491 286.3477 285.4274 285.4213 283.9136 281.4886 272.9567 269.366 269.4064 272.1663 275.9724 277.1682 279.0379 281.4069 283.0211 284.5418 285.5648 285.7662 284.6973 282.7249 279.4416 275.9705 269.4429 268.1867 269.8328 271.9125 275.7516 279.1549 279.8532 279.6843 280.1103 -9999 +-9999 -9999 330.7484 330.8873 332.7925 334.6707 336.679 335.0477 333.6648 332.9001 330.6069 330.7191 332.3751 333.0384 332.6892 330.2605 329.6886 329.7824 332.7564 335.1319 338.5021 338.068 336.3172 334.7114 333.2135 331.2078 329.2612 328.0261 326.0422 323.7695 324.2881 326.0881 326.9728 327.8541 327.6643 325.5806 322.922 320.5394 316.2786 314.3111 310.4146 308.3186 308.0451 311.1443 311.372 309.5573 306.2722 301.1161 302.1191 301.0035 298.3332 294.1743 288.521 279.6129 280.3484 275.7297 266.9958 270.9755 272.7866 274.6985 277.0422 278.7515 279.8824 280.7569 282.1586 283.1853 284.6565 287.7075 289.64 291.4633 290.5653 290.4862 290.6313 290.6477 289.5334 287.5178 286.2453 285.1288 287.1943 288.8778 290.6019 292.4145 294.7463 298.1061 298.3444 297.7779 297.5926 296.5967 297.4419 300.4115 302.1822 301.9683 295.7286 291.9405 291.0628 291.9207 291.7182 289.9086 289.18 289.0004 287.6021 281.7146 276.0316 273.937 278.5726 283.1373 285.8998 287.3253 288.751 291.21 284.7313 285.2867 287.7947 289.1739 293.4799 296.6082 298.915 299.3988 298.3056 300.5598 302.2224 304.4169 306.1519 306.9677 307.3951 307.02 304.3011 302.0876 297.6374 295.2315 292.5773 290.5998 288.9091 288.4962 288.6338 288.8026 289.4926 291.5619 291.716 289.9852 286.2638 281.4384 273.8813 264.128 260.235 256.7202 260.7285 261.4588 263.5218 265.3432 267.1249 268.3286 268.2971 266.8 263.976 256.0314 258.1651 273.7187 284.6566 290.7695 295.3355 301.485 302.7656 305.2291 304.6022 304.8849 305.0059 305.1344 305.4671 303.8012 301.135 297.5905 293.0743 291.3143 286.8414 290.8571 292.4338 293.6634 293.9097 292.2428 287.3861 280.8425 274.1765 262.5902 256.4683 260.2216 265.7643 268.5559 270.9382 272.3492 269.4731 265.6541 275.6997 279.8267 283.6441 287.2062 289.0637 287.1562 283.8825 280.8892 275.7722 263.4576 259.4804 257.541 263.5699 269.9354 274.5563 278.8985 283.8226 288.6638 294.2641 296.6617 299.8476 302.9679 305.0928 307.0204 308.6421 309.1652 308.5804 308.8564 307.2058 304.4641 301.4534 301.1493 297.6044 293.2654 288.8545 286.4098 280.083 275.5574 274.9674 272.39 272.1591 272.1662 270.4571 269.0338 268.0005 266.3014 264.4744 261.7192 265.4983 264.6101 262.2178 261.5515 262.4239 260.6435 253.6067 255.1517 255.9611 259.1563 261.8784 262.6692 263.9305 267.487 271.6931 274.9648 265.7382 253.4002 249.543 249.7097 249.5629 249.8258 250.0558 249.7396 250.5253 250.0929 249.8571 250.299 252.5099 254.973 254.4406 253.5584 253.4713 255.4362 256.4962 256.2202 253.9621 252.8509 251.8778 244.8955 248.0293 248.7035 248.3419 251.2187 254.8148 257.8201 260.0224 260.5326 262.0632 264.5566 265.6405 265.2629 264.9077 263.3763 260.7817 258.4535 256.35 251.5856 247.8357 246.9435 246.858 246.9834 246.9717 248.1646 246.2231 244.9693 247.4328 248.0058 251.1697 256.4285 257.6596 250.1794 245.6543 246.3314 246.4359 246.027 245.7301 245.6768 245.6209 245.726 245.9842 246.0188 246.0388 245.9961 246.1284 245.9325 245.7059 245.6975 246.4174 246.0136 246.2875 246.3291 246.5302 246.4227 246.5123 246.5431 246.514 246.646 246.7648 246.7476 246.8915 245.501 244.7313 246.0805 246.6363 246.7579 246.7685 245.786 244.6355 245.9892 246.8186 246.6913 246.8386 251.1822 266.4247 266.7922 263.642 261.413 263.0504 264.4682 261.6649 260.4375 260.3573 259.4245 263.0804 264.3318 264.9331 263.1067 258.5473 251.9439 258.7559 262.0139 268.6281 271.1084 272.843 273.9427 274.4463 269.9563 259.3968 253.6425 258.8755 266.6514 269.675 272.9244 276.1389 278.8137 279.8638 280.2099 280.4954 280.8712 283.4985 284.7901 286.6059 288.6685 290.4207 292.2391 293.8218 294.7686 295.4414 293.0459 290.5916 286.7633 284.6655 284.3731 284.4273 284.4184 284.5582 284.5627 286.8743 288.3061 289.7759 290.7248 291.2057 291.1655 290.4743 289.5093 288.502 285.8645 285.0946 284.0966 283.1548 281.8531 282.5183 284.3398 286.0279 287.3831 289.9982 290.6042 290.2529 289.22 288.4578 286.3947 284.0999 281.2028 278.1436 273.4337 271.5669 269.5425 271.2295 275.4294 278.5895 280.7342 282.5216 284.3455 286.5122 288.6055 291.0555 293.0908 295.7064 297.9402 299.1924 300.8753 301.5023 301.6475 301.6584 301.4326 301.362 301.3326 301.0626 300.0644 299.3088 298.5692 298.2697 297.3578 296.0109 294.6137 293.3935 292.6905 291.0202 290.4758 289.7887 289.5932 288.6096 287.391 286.7246 285.3263 282.7763 278.4939 271.2657 268.6186 268.3777 269.9365 272.4223 275.812 277.4746 279.2446 280.5498 281.8994 282.6121 281.9352 280.2776 277.8211 272.4648 268.1627 268.5635 269.8899 271.6335 274.364 276.5654 276.7726 276.7943 277.3163 -9999 +-9999 -9999 324.3412 328.2606 332.5717 334.5477 334.758 333.5045 330.6048 329.3996 327.0454 329.303 330.5723 332.1883 331.1443 328.7653 326.4748 331.0647 335.1416 337.8835 338.4477 337.6322 336.0103 334.0953 332.2706 330.056 327.9314 326.604 325.3645 321.7306 322.3713 323.9387 325.1023 326.7277 327.6248 327.3402 325.1554 323.1951 318.6358 316.8498 314.5269 310.8811 305.3481 306.4887 309.1494 309.531 308.0556 306.5671 306.8976 304.9942 303.2644 300.8351 296.8915 288.4501 277.7286 271.3311 267.0641 271.1402 273.8159 275.9579 277.0969 276.6079 276.2538 276.8419 278.4147 280.9655 283.3575 285.7359 288.7403 291.2366 292.141 292.3531 291.9472 291.3742 289.7813 288.3398 287.4444 286.2245 287.68 288.9517 291.0374 292.9867 295.3018 299.496 300.2312 300.3222 300.3212 299.5995 298.6551 301.0696 303.054 302.1993 294.5461 293.9114 294.7719 295.3446 295.8046 294.666 293.058 291.1045 287.5619 279.1553 275.6563 276.6036 282.8571 288.1911 291.8755 293.9278 293.8145 293.9243 286.936 289.6409 294.4224 295.7483 296.5593 297.4551 299.5879 301.3466 302.0216 301.4061 302.3123 303.0563 304.6854 305.6019 306.2371 306.3153 304.6925 302.6835 298.6409 295.9695 293.5548 291.3825 289.4722 288.2017 285.6313 285.241 287.1429 289.3595 289.9056 289.9096 288.8563 286.7456 284.2882 279.72 274.4403 262.8129 256.6718 257.289 260.9123 260.9638 262.9776 263.7519 264.8742 264.3336 262.5219 256.0811 259.6086 269.3145 279.0516 286.9136 292.0357 297.4267 303.3618 308.0077 310.0647 309.1493 308.926 308.6859 307.7039 305.6915 303.7662 300.0555 300.8313 295.7127 293.2609 292.9935 293.2735 293.4204 292.8218 290.8448 287.5744 283.4687 269.0981 262.2641 262.7309 269.7368 272.9944 276.2998 277.2187 277.6727 276.042 268.7743 276.0949 280.6245 285.0137 288.2495 289.9035 288.1212 284.4824 280.4776 275.8905 265.9167 263.1635 258.4083 262.0804 270.4186 277.4348 282.8574 287.0853 288.6638 294.2641 296.6617 299.8476 302.9679 305.0928 307.0204 308.6421 309.1652 308.5804 308.8564 307.2058 304.4641 301.4534 301.1493 297.6044 293.2654 288.8545 286.4098 280.083 275.5574 274.9674 272.39 272.1591 272.1662 270.4571 269.0338 268.0005 266.3014 264.4744 261.7192 260.622 260.066 258.4368 258.1016 257.8922 256.2434 256.3705 256.9629 259.2027 261.7817 263.584 265.3889 264.9505 267.6698 270.6458 273.631 266.3186 252.4001 249.588 249.517 249.3288 249.4199 250.4194 246.6429 250.4802 250.0504 250.2003 249.6881 250.9206 252.931 254.1688 254.6003 255.9366 259.4099 259.3335 257.825 255.0428 251.7778 250.0316 245.0646 248.4623 248.6564 248.4306 253.5955 258.136 261.0827 263.9314 266.0515 267.7353 268.805 268.8637 267.5485 266.4133 264.2433 261.3464 259.471 257.1766 253.4493 248.614 247.4028 246.8068 246.7677 246.6589 246.8045 247.7045 248.4866 244.9587 247.2675 247.9815 252.7833 253.3616 247.2359 246.6195 246.9798 246.7452 246.1012 245.8205 245.7215 245.5978 245.8644 246.0285 245.8785 245.9965 245.9354 246.1357 246.1062 245.7959 245.8431 246.0882 245.4596 246.4919 246.3861 246.3519 246.3713 246.5593 247.0759 246.6803 246.6956 246.8344 246.9462 246.9263 247.2086 243.8282 245.5018 245.0539 246.4235 246.5674 246.6458 246.663 246.6461 246.69 246.7156 246.8448 247.4157 266.4743 267.8472 268.071 264.9806 261.9373 263.9947 263.6846 263.8383 264.9969 264.0475 266.3018 267.804 268.9081 268.1184 263.7603 255.2995 258.1691 262.6546 268.5311 270.3925 272.6005 274.5596 275.7188 274.6405 266.459 256.1736 256.3856 265.371 268.575 272.2003 275.8557 279.5539 281.2596 282.5814 282.9376 283.4556 285.3655 286.6221 288.0663 289.5278 290.8456 292.1483 293.2045 293.591 293.3113 290.1894 287.5701 284.2272 281.4345 280.3997 281.0405 281.6964 281.1733 283.264 286.0949 287.3242 288.6185 289.6924 290.1531 289.8794 288.8827 287.5526 286.3005 283.9143 283.3639 282.4523 280.8499 280.4385 281.6662 283.6561 285.412 286.6163 288.5968 289.0403 288.7211 287.5454 285.7775 283.8535 282.0799 280.4548 278.7513 272.8292 269.7724 270.37 272.5611 275.8245 278.4445 280.8824 282.1866 284.4035 289.0576 290.6453 292.8002 295.2254 297.2158 298.6138 299.1862 300.0334 300.3686 301.6261 301.5692 301.6288 301.5875 301.226 301 300.3539 300.0569 299.3179 298.064 297.5468 296.4074 295.3383 294.0144 293.3636 292.7735 291.1147 288.6395 287.7629 287.4441 287.7067 286.8886 284.8116 283.3865 279.1152 273.7683 269.6993 268.6288 267.5612 268.5837 269.7811 273.1996 274.1751 276.6091 277.7766 279.2353 279.0905 277.4581 273.3419 268.3676 267.4833 268.6024 269.0393 269.8021 270.945 272.4427 273.7586 274.688 275.9706 -9999 +-9999 -9999 327.946 330.346 332.3475 332.8577 331.9673 330.5912 328.3274 327.0011 325.424 327.719 330.122 330.5643 329.5403 326.8726 325.0153 330.5655 334.483 337.1524 336.6426 335.6971 334.943 334.2663 332.8423 330.7974 328.2754 325.7045 323.9135 321.3113 319.7744 321.5202 324.4482 326.4569 327.5758 327.2619 326.4996 324.8355 320.0313 317.5833 315.5333 313.4352 309.3983 302.3567 306.2985 308.7126 310.3109 309.1832 307.1122 304.0409 302.4002 301.5759 299.0347 294.2756 286.4839 273.326 267.1172 271.308 273.6555 275.4258 273.8645 271.5999 271.4585 271.8976 271.8566 278.3202 280.8677 283.5488 286.9791 289.4555 291.4517 292.299 292.1037 291.6692 289.6856 289.3868 288.2025 287.9359 289.1936 290.3308 292.2875 294.1301 295.733 299.3289 301.3897 302.6724 302.61 302.5366 302.4973 302.5109 303.2389 301.0984 297.615 296.2565 300.2644 301.3276 301.3484 298.8798 295.9083 291.7157 286.1295 277.4789 279.281 278.8376 279.9705 284.9062 290.8105 295.4355 297.118 297.0007 289.7458 292.9124 297.5539 299.2317 301.0069 302.1387 302.9312 304.4663 305.2175 305.0837 305.0333 304.2365 304.0506 305.2725 305.7216 305.7859 304.6962 303.1245 297.824 295.795 293.1275 291.0292 288.8535 286.1848 283.7157 282.9424 284.1591 286.0599 286.2585 286.909 287.614 287.7474 287.3427 284.4015 281.2118 278.3276 262.3256 259.7068 256.6962 256.6147 260.316 260.5105 260.7833 260.4643 259.4522 256.1164 264.7447 275.9814 278.1414 281.2523 288.9293 294.9547 300.67 305.7271 314.2313 314.0973 312.4326 311.0181 309.5828 308.0782 306.4552 303.5727 305.1675 300.0491 296.9708 295.6963 294.5969 292.5638 290.4177 290.8448 287.5744 283.4687 269.0981 262.2641 262.7309 269.7368 272.9944 276.2998 277.2187 277.6727 276.042 270.1497 276.0949 280.6245 285.0137 288.2495 289.9035 288.1212 284.4824 280.4776 270.2796 265.9167 263.1635 258.4083 262.0804 270.4186 277.4348 282.8574 287.0853 290.4716 294.1027 296.8892 300.0438 302.8884 305.1379 306.8217 308.1392 308.139 306.7364 305.4479 304.1606 301.4875 295.5075 296.8334 292.67 289.7888 286.3034 283.649 277.9655 275.6571 269.2857 270.8056 268.1785 269.2678 267.5974 265.9006 265.0915 261.9412 259.1792 258.5019 259.3199 258.9904 258.6216 257.4649 257.6765 255.8763 258.2436 260.1084 262.6227 264.5611 266.2334 267.6062 267.278 268.1545 270.2917 271.1814 265.1682 251.9618 249.551 249.3104 249.3526 249.5097 247.5579 249.3592 250.0635 250.2149 250.1971 250.0393 249.8185 251.7334 252.5092 253.3432 256.2977 261.385 262.6095 260.823 257.0394 250.5559 248.846 247.9203 245.8185 249.3189 248.1051 251.3308 252.6861 253.0575 261.4002 264.5162 266.2646 267.8604 268.3227 268.3626 267.0438 264.7823 262.5357 260.2167 258.444 255.4634 250.5711 247.5157 246.7349 246.9465 246.736 246.554 246.884 247.7236 247.3506 244.9576 247.2393 248.6188 248.766 247.264 246.979 246.5307 246.3692 245.7077 245.6965 245.5751 245.9856 245.8585 245.9525 246.0773 246.1546 246.3012 246.5066 246.6239 246.263 245.9337 246.0727 246.3226 246.3443 246.3199 246.2664 246.3775 246.3387 246.5309 246.7722 246.9483 246.7631 247.1218 247.2003 247.2404 243.7718 244.8903 245.8972 247.1657 246.3874 246.6319 246.5599 246.5557 246.7422 246.6959 246.8066 247.0993 260.3106 268.0855 269.0173 269.4199 268.7155 266.3979 267.133 267.9275 269.174 268.4706 269.3695 270.8752 271.9557 270.9041 266.6371 260.0913 256.7737 261.6791 266.3347 268.4948 271.2202 273.9299 276.0811 277.0347 271.4283 262.4373 255.236 264.3709 267.8315 271.1691 274.5789 278.0463 280.804 281.9178 282.8952 284.188 286.7159 287.3009 287.8288 288.9081 289.675 290.4467 291.3086 291.3087 291.3486 287.3398 285.4677 282.47 281.1866 278.1425 277.9747 278.7426 280.2862 282.8745 285.2202 286.3234 287.91 288.7079 288.9413 288.5087 287.4091 285.9029 284.6068 282.4509 281.9353 281.0594 279.0581 278.8499 280.8069 283.7271 284.9086 286.0675 287.2588 287.1129 286.827 286.2008 284.3661 282.04 280.2591 278.6284 276.9315 270.6413 268.4235 270.8346 273.8474 276.8321 279.6476 282.4566 284.3887 286.4781 290.6112 292.675 294.6641 296.5504 297.753 298.4219 296.2756 296.5962 296.6144 298.6934 300.2938 300.9178 300.1824 300.1506 300.5474 300.111 299.8221 299.6536 298.0694 297.761 296.8139 295.9658 295.2885 294.4 293.2641 291.5801 289.9482 284.8626 284.4667 283.8755 283.9989 281.8777 279.2024 275.1053 272.13 274.2133 273.6465 270.133 267.7376 267.495 268.5017 269.5096 273.2197 274.3149 276.3918 276.071 273.777 268.8833 267.4368 268.2552 269.3507 270.1241 270.8917 272.17 273.4483 273.4022 273.0751 274.5674 -9999 +-9999 -9999 326.8612 327.9047 328.8286 329.6953 327.7381 327.062 326.0166 324.8972 323.8984 328.3307 329.6119 329.0014 327.7813 324.6801 324.0509 329.0128 333.1281 335.3396 333.4682 332.2248 332.1392 332.2216 332.2597 331.2591 329.2701 327.0376 324.9072 320.3546 318.6272 320.0191 323.1468 325.3238 326.5432 326.3327 325.9067 324.3326 319.9589 317.4363 314.4171 311.6446 310.2525 305.1101 300.4399 305.0957 308.7281 309.7435 306.5006 302.6482 299.0383 298.8235 299.1548 296.4195 288.9553 273.9801 267.1245 271.2919 272.6276 271.4465 271.2264 275.7271 279.9901 283.0905 280.6891 276.3526 278.7012 281.6991 284.5857 287.4414 289.8478 291.3706 290.9514 290.2784 289.394 289.0958 289.435 289.707 290.8971 292.3495 294.1703 295.2259 296.6106 300.4303 302.507 304.6941 304.4474 304.3214 305.5809 305.5052 303.9458 303.1406 301.2205 301.2596 301.9908 303.8248 304.2318 301.5222 297.414 291.9503 285.7726 278.578 283.1171 284.3188 281.8314 281.6127 287.5069 292.7862 296.3073 297.5479 292.8076 294.4688 297.9626 301.1169 303.1678 305.4243 307.8991 309.1635 309.9151 309.407 308.472 307.0741 305.5744 305.723 305.494 305.3804 304.0442 302.5022 297.7949 295.7794 292.8523 289.9594 287.2421 284.7029 282.5698 280.8991 281.2321 283.2448 283.4532 283.2737 283.3615 283.9798 285.0888 284.5576 282.9618 279.7161 273.0602 266.1465 260.174 256.6147 260.316 260.5105 260.7833 260.4643 259.4522 256.1164 264.7447 275.9814 278.1414 281.2523 288.9293 294.9547 300.67 305.7271 314.2313 314.0973 312.4326 311.0181 309.5828 308.0782 306.4552 303.5727 305.1675 300.0491 296.9708 295.6963 294.5969 292.5638 290.4177 289.1549 287.8978 285.0558 266.3758 267.5774 269.0457 271.0379 276.3352 280.0045 282.2064 281.8242 280.0047 269.6932 275.6963 280.4829 284.9856 287.7578 289.6713 288.0514 282.6776 278.3133 271.8518 273.512 272.1038 264.6054 258.4124 266.1374 275.284 281.8005 287.1663 294.7314 296.6032 297.8241 299.756 301.8697 303.8815 305.4015 306.5581 305.7713 303.5132 302.8863 300.8173 297.9654 294.4139 291.637 289.8421 287.2735 284.05 281.024 275.2485 272.7872 270.9722 266.435 265.6334 265.4523 264.291 262.87 263.3052 259.5597 259.1588 261.5171 260.7348 260.305 260.0151 259.6612 259.3157 258.633 261.4585 263.5388 265.8534 267.9551 268.676 269.8904 269.9538 269.5143 270.3271 266.2112 261.3501 253.1502 249.4504 249.0871 249.4159 249.9297 246.5556 250.4582 249.7825 249.6869 250.0358 249.9844 249.8199 249.6619 250.1304 251.6129 254.2907 260.7164 263.2078 262.7862 256.5538 248.9216 248.089 248.1766 246.3144 245.0679 248.8241 248.7652 248.8913 249.8009 258.2853 261.1534 262.5047 264.7951 265.8853 268.065 267.2958 265.2941 263.3278 261.2214 259.2759 257.3278 253.9243 248.4839 246.7673 246.6609 246.9355 246.5491 246.5571 247.1653 247.814 245.0707 247.3587 247.972 248.0023 247.4596 247.2808 246.8553 246.2344 245.9111 245.7929 245.5637 245.8016 245.6306 246.0283 246.0365 246.1796 246.2218 246.2966 246.528 246.5848 245.7083 245.8605 245.8908 246.035 246.1901 246.5335 246.9513 246.6479 245.9881 243.5444 243.5401 245.3133 243.5201 243.7613 244.4122 245.8165 246.7858 246.5093 252.5486 246.4214 246.166 246.3906 246.3372 246.4396 246.6433 246.5368 246.5273 253.7938 266.8849 269.6124 270.298 270.5628 271.8966 271.5549 271.6182 272.205 271.844 271.8068 273.1512 273.732 272.4374 269.2036 263.6648 257.9149 260.4437 267.02 269.317 271.1507 273.3377 276.4315 278.1144 275.183 268.3343 259.7629 262.5658 266.6538 269.5062 272.1038 275.076 277.4549 278.9456 281.0948 282.683 284.2427 284.6502 284.8367 286.0788 287.2025 287.8767 288.5507 289.6461 289.9238 285.4921 283.7961 278.1617 275.3201 274.3665 276.0405 277.8558 280.1498 281.854 284.2351 285.4711 286.6071 287.1839 287.0848 286.7769 285.5706 284.2079 283.2973 280.6057 280.2844 279.6531 277.7495 277.4614 281.3696 283.9471 285.5357 286.2634 286.9691 286.4343 285.4599 284.3286 282.7983 281.0397 278.9428 277.3908 275.054 268.5089 269.8181 273.5764 277.9161 280.3365 281.8463 283.9221 286.1029 288.1135 292.1034 293.9162 295.6727 296.5331 296.9157 297.1762 296.394 296.5224 296.5756 298.2318 299.5035 299.583 299.2748 299.1318 299.129 299.4438 299.374 299.7065 297.9962 297.8239 296.9852 296.013 295.0565 294.0605 292.9875 291.6137 290.4992 286.2406 284.3841 280.7088 278.5486 276.4425 275.1286 275.466 274.9159 277.7028 278.5359 275.5671 271.4755 267.339 267.0674 267.6286 268.6367 271.7252 273.2888 272.5855 269.1518 266.8845 267.5713 269.6846 271.0804 272.2142 273.5768 275.2208 277.5414 277.9387 278.153 275.8734 -9999 +-9999 -9999 322.3435 323.6777 325.1546 324.9554 323.539 323.8238 323.4645 321.4117 323.4808 327.5688 327.7159 327.6722 325.594 322.9684 322.5712 327.4868 330.8366 332.0633 329.6043 328.2178 328.3351 329.6974 331.2271 331.3907 329.6987 327.2381 324.6281 320.16 317.2764 317.1987 321.7963 323.814 324.691 324.9207 325.5678 322.9218 316.8591 313.9929 311.14 308.4199 305.6566 304.4005 299.1342 300.424 305.0475 307.6095 305.812 302.6265 299.1786 294.6442 295.6913 296.0179 290.5365 275.8493 267.1325 271.2827 270.1627 271.1419 274.9094 278.3147 281.4823 284.8378 286.0656 273.6375 276.5684 280.3759 283.2501 286.0271 288.6515 290.4936 289.6696 288.7514 289.0558 289.1105 289.6181 290.7692 292.8537 295.3257 296.7258 297.6521 298.6783 300.5706 302.6706 305.1932 306.1472 306.9374 307.286 305.7524 304.3865 302.5966 301.1623 301.4586 302.6956 302.4044 302.1662 302.1366 298.0226 292.8164 286.8636 282.2069 286.8635 289.3458 288.4815 284.7139 285.1978 290.4285 294.6602 297.0428 293.466 294.7444 298.1764 301.1209 304.4082 307.6402 311.4314 314.2204 315.0724 312.421 308.472 307.0741 305.5744 305.723 305.494 305.3804 304.0442 302.5022 297.7949 295.7794 292.8523 289.9594 287.2421 284.7029 282.5698 280.8991 281.2321 283.2448 283.4532 283.2737 283.3615 283.9798 285.0888 284.5576 282.9618 279.7161 273.0602 266.1465 260.174 259.4051 256.6112 257.2564 258.5791 258.2555 256.178 257.6294 270.9561 282.4649 291.2203 290.4452 287.0885 289.3622 294.2555 301.3044 312.4355 316.0466 316.0706 313.1767 311.6491 310.0632 308.7736 306.5895 306.8259 302.9806 299.7789 298 295.7154 292.8363 289.8939 286.8339 284.0995 280.8904 269.9622 275.2633 278.5359 280.2598 281.8321 284.5154 286.7712 286.3055 284.6475 274.0652 274.1284 279.9998 284.5892 287.6579 289.011 286.6171 280.965 277.2135 279.1145 280.1278 279.2799 272.7477 262.3683 263.3931 273.1729 280.5167 286.3476 295.6132 297.7882 298.5251 298.6754 299.8548 302.1856 303.5867 303.6778 302.5262 301.2243 300.095 297.5376 293.7472 291.3437 287.078 284.9979 283.4539 279.6367 275.5047 272.5409 267.9911 265.1698 265.8827 264.7413 265.888 267.5143 266.132 259.2579 265.6397 266.4586 267.2505 265.6277 265.5957 264.2243 261.6244 261.4945 260.1815 262.6745 264.303 267.9941 270.007 270.5241 271.5878 272.877 272.0646 271.9808 265.3679 265.7337 261.7371 250.6413 249.7324 249.8146 249.8143 246.5574 249.5902 249.7608 249.5545 249.4581 249.7931 249.729 249.5756 249.5088 250.2876 252.7276 259.9934 262.1774 262.737 257.7666 249.0479 248.2214 248.2407 248.1814 248.4854 246.5834 245.0895 246.415 250.957 254.6721 257.3398 259.4929 262.2837 264.9708 267.3117 267.5821 266.0498 264.279 262.4329 260.5081 259.1281 255.5488 251.1339 246.705 246.5762 246.5649 246.7047 246.4444 246.61 246.9532 246.9259 244.9394 247.2858 247.8152 247.2603 247 247.092 247.0041 246.4763 245.8252 245.6678 245.5528 245.5252 245.6374 245.8489 246.0825 246.1482 246.0841 246.3163 246.4754 246.0725 245.6263 245.8894 246.3408 246.7324 244.4262 243.4399 246.5999 247.1143 245.5512 246.7093 245.329 245.9907 245.7073 246.7084 246.6302 246.2217 253.3247 256.6924 249.2921 245.9404 246.319 246.5035 246.6163 246.7267 246.7908 246.9512 249.9265 260.9775 268.854 271.4332 271.9679 271.6599 273.6556 274.5757 275.0581 274.3735 273.918 274.6676 274.9336 273.7719 271.1723 267.0839 263.3135 262.1825 268.746 271.455 273.8996 276.3914 278.6461 280.259 278.6515 273.7088 268.1624 259.1023 261.246 264.5598 268.4701 271.8099 274.2506 275.5944 277.7002 279.4044 279.4145 279.6261 279.1131 280.8195 282.7515 284.4211 286.3829 287.7488 286.6504 284.4993 281.3004 274.2725 271.3167 272.7887 274.2149 277.1381 279.3579 281.2658 283.1931 284.1253 285.2955 286.4077 284.1222 284.5873 283.4641 282.5502 280.9903 278.4483 277.9343 277.3837 273.5408 278.5841 281.7391 284.0134 285.364 286.2802 287.1191 286.3781 285.268 283.8159 281.8349 279.5869 277.6787 276.0526 274.2598 267.1439 271.8955 277.0747 280.3814 281.8518 283.5148 284.7372 286.4054 288.0124 291.914 293.0721 294.0479 294.4187 294.617 294.3043 293.6028 291.9197 294.647 296.9492 298.3029 298.8238 298.5094 297.6287 297.1747 297.9013 298.2772 299.4294 297.8788 297.4952 297.1475 296.0534 294.5893 293.4937 292.9362 291.6908 290.6276 288.4657 287.1874 284.5888 281.304 278.1343 278.3823 279.1859 279.8899 277.7028 278.5359 275.5671 271.4755 267.339 267.0674 267.6286 268.6367 271.7252 273.2888 272.5855 269.1518 266.8845 267.5713 269.6846 271.0804 272.2142 273.5768 275.2208 277.5414 277.9387 278.153 275.8734 -9999 +-9999 -9999 317.0909 318.7178 320.243 320.1393 319.5511 321.3693 321.1102 320.3292 323.1824 325.8414 326.9073 326.1436 323.6815 320.0215 320.4027 324.9539 327.5798 327.8547 325.114 324.1453 326.2697 328.8938 331.352 331.7785 329.7714 327.1591 324.3212 318.9572 316.112 315.3807 319.4086 321.1402 321.5193 323.0555 324.3112 323.0894 319.1527 316.3101 313.8546 311.6672 308.8383 305.311 301.9519 296.5418 301.1958 305.2763 303.5934 301.7036 299.4466 294.9709 290.6412 293.0415 290.362 277.6908 267.1005 269.7006 271.7503 275.7114 279.8318 282.5383 284.1161 285.9237 287.1082 278.6321 274.9872 275.5845 281.9682 285.3308 287.9755 288.8236 287.9911 286.8514 287.5532 289.0047 290.3284 292.2245 294.9315 297.2643 299.3119 300.226 300.7433 302.2116 303.4001 305.3239 306.8943 308.0527 308.8228 307.3787 304.9406 303.5579 301.1623 301.4586 302.6956 302.4044 302.1662 302.1366 298.0226 292.8164 286.8636 282.2069 286.8635 289.3458 288.4815 284.7139 285.1978 290.4285 294.6602 297.0428 293.466 294.7444 298.1764 301.1209 304.4082 307.6402 311.4314 314.2204 315.0724 312.421 310.6567 309.1294 307.5653 306.5471 305.4664 303.8478 302.6672 301.4569 297.1019 294.7847 292.654 289.5575 287.2128 284.177 281.0959 279.7232 278.5393 279.5778 279.9132 279.5305 278.7523 279.8223 280.5667 280.8961 280.5356 278.9934 274.0132 271.3098 265.9884 260.9681 260.1347 257.7763 256.518 258.8019 257.3945 267.9635 279.1892 289.8892 298.7248 303.1736 300.2399 298.5626 299.3491 298.9284 309.6137 313.6926 316.0869 315.8076 313.8356 311.8336 310.9525 308.9673 307.9416 304.5598 302.4127 299.8229 296.7253 294.0035 291.4136 287.7782 282.9001 272.6088 280.2279 283.6876 284.1415 285.2319 288.6649 291.6521 292.1315 291.2769 289.2543 279.1588 277.7888 281.2113 286.1223 288.2394 289.6326 288.3109 285.3903 282.1421 284.5196 284.7995 282.4027 274.0573 261.3648 263.8518 272.0598 278.6777 284.7885 295.0983 295.844 295.0385 294.857 296.8209 299.0782 299.4836 299.7314 297.7937 299.1994 296.9113 294.063 289.768 288.11 283.843 282.8534 278.6094 276.5946 271.6051 267.6461 267.8701 271.0227 270.8816 271.8901 276.8187 277.6904 275.0083 261.2567 267.8565 270.4764 272.1631 273.3846 271.3524 269.352 267.0648 265.403 261.1602 262.2109 263.5224 265.9916 268.7212 272.2299 273.5119 274.1278 274.0032 273.922 272.6611 272.1861 267.6131 259.0634 251.7048 248.9284 248.6484 248.376 246.5725 250.0784 249.8985 249.4939 249.433 249.4459 249.5513 249.0139 249.3065 250.9891 258.2638 261.292 263.4453 261.683 251.1248 248.355 248.2151 248.2933 248.1566 247.9995 248.2131 248.5275 245.0994 250.1114 253.3378 256.8881 260.2836 263.994 267.1669 267.8628 266.9889 265.0873 263.3954 261.4034 259.6078 258.1273 255.1205 247.0245 246.6761 246.5458 246.6829 246.5088 246.7045 246.8848 247.2677 247.3481 247.8423 247.3223 247.6161 247.4285 247.0687 246.7314 246.3664 246.1411 246.025 245.6976 245.6304 245.6014 245.8988 246.0232 246.09 246.2871 246.1998 246.3731 246.4188 246.2256 246.1447 246.3088 246.6529 243.1899 246.3353 249.4913 252.101 254.8435 246.6366 245.8587 246.7379 246.7506 246.6358 246.1568 247.4921 257.5404 259.0883 252.6351 246.4681 246.1783 246.5054 246.8262 246.8129 246.9761 247.4295 249.5503 257.0351 267.8039 269.0097 272.9297 273.2617 272.8026 274.5477 276.5878 277.6709 276.7584 276.1355 275.9498 275.0857 273.1927 269.8432 268.2447 269.1257 268.04 272.6613 275.695 278.4114 281.0133 282.4324 281.2491 277.2612 273.1355 263.943 261.8044 260.1179 263.982 267.3684 269.8724 270.3515 271.6189 273.2501 273.6013 274.4133 276.3725 277.8001 279.9827 283.0068 286.5305 287.2105 287.2229 283.3242 279.9284 274.9422 268.0012 271.0499 273.8442 276.5926 278.316 280.1342 281.7762 282.6523 283.9355 284.6021 284.0978 283.1927 281.0584 280.2766 278.9717 275.2599 275.0871 273.0796 275.2127 279.6313 281.8707 283.6895 284.9771 286.0482 286.7101 285.9945 284.9434 283.3079 281.196 278.9013 277.0175 274.1901 271.588 269.8352 273.8754 278.7217 280.6323 282.1778 283.5148 284.7372 286.4054 288.0124 291.914 293.0721 294.0479 294.4187 294.617 294.3043 293.6028 291.9197 294.647 296.9492 298.3029 298.8238 298.5094 297.6287 297.1747 297.9013 298.2772 299.4294 297.8788 297.4952 297.1475 296.0534 294.5893 293.4937 292.9362 291.6908 290.6276 288.4657 287.1874 284.5888 281.304 278.1343 278.3823 279.1859 279.8899 279.396 281.3735 280.0117 277.9899 272.4605 267.0992 267.0451 267.0582 267.8611 270.2624 269.6797 266.3364 267.124 268.3993 270.8538 273.0105 274.2656 276.0016 277.2462 279.5553 280.3041 280.3397 280.6892 -9999 +-9999 -9999 308.7747 313.5968 314.4188 315.3365 317.3742 319.1003 318.3166 319.2997 321.8391 324.5894 324.9072 324.422 322.3358 318.5623 318.2981 322.4551 323.2144 322.3262 322.0688 326.3548 328.9945 331.1759 332.4531 331.5721 329.4024 326.3348 323.5768 318.5517 314.639 313.6838 316.7373 318.1309 320.6038 323.0094 324.0286 324.3963 320.9343 318.8937 316.8627 314.9083 312.0524 308.2207 303.8221 296.8483 297.8704 301.4559 299.4226 298.8107 296.9317 294.1263 287.8495 290.5463 288.9808 278.5722 267.1343 271.5528 276.0478 280.3484 284.009 286.6658 288.2045 288.6612 287.4174 278.6321 274.9872 275.5845 281.9682 285.3308 287.9755 288.8236 287.9911 286.8514 287.5532 289.0047 290.3284 292.2245 294.9315 297.2643 299.3119 300.226 300.7433 302.2116 303.4001 305.3239 306.8943 308.0527 308.8228 307.3787 304.9406 303.5579 302.5438 302.7382 304.3878 306.6715 301.922 302.072 301.146 293.9992 287.393 281.9934 289.4164 293.3044 294.2929 291.7558 286.9689 287.465 292.0106 295.0306 294.8364 294.3076 297.6607 300.9624 304.9774 309.0581 312.8649 315.3563 315.8141 312.4336 310.2036 308.6825 307.7085 306.8828 305.1552 303.1871 301.1599 300.1987 296.1922 293.6789 292.2516 289.6478 287.4687 284.1597 281.3504 279.3767 275.2552 275.9617 275.8989 275.958 274.5908 275.1931 276.1309 276.5221 277.2688 277.4819 273.457 270.0933 266.2216 261.4022 259.0319 258.8382 258.8052 256.6488 257.8031 270.4084 280.8856 289.7122 297.1073 303.2664 308.7696 311.0164 309.6211 307.1047 309.2567 311.9522 315.6373 317.3401 316.0044 313.8335 312.1469 310.9035 309.2728 306.8971 304.9442 302.8614 298.9919 295.2858 292.0488 288.9217 284.8423 276.0818 285.2244 289.2527 290.6597 290.5625 290.9323 294.3606 296.2817 295.2932 292.3965 284.3186 283.9401 283.3569 288.0934 290.1174 291.7301 291.0555 287.9204 287.4023 288.0512 287.1643 282.6871 272.7314 261.4351 264.1726 272.0677 277.7993 283.997 292.5396 292.9071 288.9555 288.8802 292.3422 294.0638 293.7855 292.477 294.9969 296.7606 294.2793 290.2258 285.7419 282.6185 279.7881 276.8036 272.6892 271.8065 268.6711 273.6922 275.1695 274.1633 275.59 277.2816 280.5936 281.6607 277.8688 265.0957 265.9171 271.4283 273.7001 275.6401 274.9 272.616 270.7815 266.7541 262.8731 262.2321 264.994 267.8816 268.9142 270.0374 273.0188 274.7826 275.6076 274.7672 274.6094 273.4814 272.0011 269.1779 266.3515 259.9776 249.3689 249.4203 248.1937 249.9807 249.7768 249.1053 249.3976 249.4781 249.3064 249.2819 249.0457 253.4144 257.8752 261.146 263.5624 264.1319 255.4933 248.6158 248.4105 248.3631 248.3849 248.0674 248.3802 248.9495 245.1735 248.6707 250.3652 255.4367 260.7428 263.5275 266.9337 268.2553 267.305 265.3745 263.7307 262.2768 259.9435 258.5132 256.6457 247.5435 246.9315 246.8137 246.6941 246.3045 246.239 246.0592 246.3536 246.9447 244.9601 247.1329 247.8727 247.4412 246.6449 246.4393 246.4786 246.2994 246.2219 246.0199 245.7665 245.6959 245.879 246.3294 246.681 246.8937 247.002 246.5177 246.141 246.2617 246.0648 246.3208 245.8157 246.1727 247.4139 251.2748 254.7498 258.3414 256.363 245.4927 246.0421 246.2708 246.3347 246.2856 249.9899 257.3111 257.0618 255.5335 248.5188 246.9178 246.4772 247.4489 247.5037 247.7223 247.5474 251.1579 258.977 267.2486 268.4532 272.2391 274.1928 274.483 274.1282 275.6977 278.2 279.9099 278.847 277.8523 276.7921 274.4186 272.6262 272.9355 273.5175 271.6117 271.8634 275.8809 278.1933 279.8328 281.3248 281.6667 279.5099 276.5081 270.9492 267.8062 266.998 264.2105 261.5053 263.0477 263.8324 266.1955 268.4895 273.047 276.7807 280.0371 281.9707 284.528 285.2384 286.5472 287.1221 286.5873 281.3478 277.591 272.6915 268.0012 271.0499 273.8442 276.5926 278.316 280.1342 281.7762 282.6523 283.9355 284.6021 284.0978 283.1927 281.0584 280.2766 278.9717 275.2599 275.0871 273.0796 275.2127 279.6313 281.8707 283.6895 284.9771 286.0482 286.7101 285.9945 284.9434 283.3079 281.196 278.9013 277.0175 274.1901 271.588 269.8352 273.8754 278.7217 280.6323 282.1778 283.4886 284.3787 286.1462 287.7501 290.5935 291.5661 291.9271 291.8668 292.4268 292.5211 290.5464 289.0905 291.6265 294.491 295.8483 296.7635 296.0013 295.0879 295.2599 296.5807 297.7871 298.3315 298.0463 297.5184 297.0936 296.0872 295.1081 293.6592 292.6358 291.1292 289.4258 287.5569 285.6051 282.3896 280.6325 281.0814 281.5164 282.3774 282.3429 281.8533 282.7082 281.7888 281.6538 278.8251 273.4634 268.3273 266.2963 266.5369 267.3977 266.6078 265.9802 267.3139 269.1034 272.1485 273.9875 275.6734 277.3055 279.098 281.1627 282.3774 283.1985 283.0587 -9999 +-9999 -9999 305.8455 308.3764 311.4913 313.8057 315.0415 316.9386 316.0701 318.577 319.9691 322.688 321.6674 321.3143 319.8213 316.3163 316.6609 318.5216 317.5786 318.3834 324.5308 326.6695 328.8462 331.3181 332.1232 331.2256 328.248 325.7234 322.6328 316.9938 312.781 312.9171 315.9227 318.5035 320.4211 322.105 323.329 323.829 320.9343 318.8937 316.8627 314.9083 312.0524 308.2207 303.8221 296.8483 297.8704 301.4559 299.4226 298.8107 296.9317 294.1263 287.8495 290.5463 288.9808 278.5722 267.1343 271.5528 276.0478 280.3484 284.009 286.6658 288.2045 288.6612 287.4174 278.9946 277.7677 276.8974 277.5826 282.1353 285.4698 286.2506 285.5996 285.8009 286.0959 287.3555 288.7652 291.4922 294.4614 296.7822 298.9677 301.0956 302.0055 303.5139 304.298 305.8987 307.4738 308.5765 308.9089 307.5512 305.7392 304.5563 303.8683 303.996 305.5135 304.916 302.0665 302.2033 302.1879 299.3498 288.1477 285.9333 291.1112 294.8849 297.5991 296.6832 293.212 289.4666 288.8518 291.8302 296.3017 294.8758 296.6782 300.3539 303.9551 307.9461 310.8715 313.5611 313.7574 311.1556 309.1724 306.9297 305.7701 304.9158 303.7932 302.2128 300.5612 298.6302 296.1992 294.3398 292.0698 290.6257 287.8468 286.6519 283.3223 279.752 273.8515 272.5795 271.4799 271.2909 271.1706 270.686 270.9752 271.5745 272.8973 275.174 271.2038 268.9711 265.703 261.5052 258.9553 259.4135 265.9061 272.1889 275.5876 271.5903 275.9919 286.1287 293.3034 299.8837 305.9524 311.2286 314.6461 312.7403 310.1396 311.9324 315.3818 317.3295 317.563 315.1892 313.4538 311.9669 310.4167 308.8951 307.053 304.3156 300.0825 295.6832 291.5514 286.5588 282.4219 275.9828 286.4184 290.7178 294.1751 295.633 295.2938 296.0274 297.4944 297.503 295.6667 291.5109 288.2778 288.0424 290.9167 293.2256 294.2899 293.9384 293.0145 292.2091 290.6098 288.4476 282.2843 273.7536 262.7631 263.175 270.6016 275.4912 280.6503 287.0583 285.8276 283.5588 284.3911 285.1442 287.1346 288.8828 292.6966 296.7109 294.7766 291.1479 287.2286 284.4316 281.4313 277.373 280.9742 280.6012 275.6906 281.646 280.1304 278.0764 277.9252 279.7896 279.5087 280.8523 282.2768 279.7377 268.2035 265.9113 271.1825 274.1333 275.6953 275.7143 273.9536 271.1265 268.3881 264.8646 262.2915 265.7242 269.1223 271.1262 272.0506 272.8779 274.5192 276.0588 274.8999 273.3566 271.4761 269.5027 267.2677 266.0315 261.28 249.2831 249.0423 246.3397 250.2402 249.6366 249.6588 249.3559 249.2817 249.2418 249.0742 249.0988 251.1422 256.2601 259.9237 262.6885 264.2839 257.804 249.1693 248.6367 248.633 248.3189 248.1952 248.4259 248.0115 246.6017 248.3652 249.3723 255.77 258.3909 264.41 266.829 268.5221 267.8494 266.2707 264.313 262.3848 260.138 258.1504 255.9896 248.5887 247.6346 246.8213 246.4104 246.2879 246.2685 246.2328 245.9431 246.5359 247.0168 244.9599 246.3811 247.7141 247.3858 247.0703 246.6361 246.8541 246.7236 246.2887 246.0445 246.3037 246.3059 246.1902 246.8165 247.0559 245.909 245.0412 246.0802 246.2097 245.9647 246.2909 245.8492 245.8602 247.2027 250.7964 254.9262 259.502 258.6035 245.5684 245.8721 246.1918 246.1961 247.1272 254.7402 256.945 257.8779 258.2276 252.9876 249.5504 247.9088 247.9268 248.9185 248.9429 250.2072 260.7157 260.8123 266.0922 267.6301 268.4884 274.7297 275.2251 275.6924 275.5991 277.5718 277.6638 280.7006 277.8523 276.7921 274.4186 272.6262 272.9355 273.5175 271.6117 271.8634 275.8809 278.1933 279.8328 281.3248 281.6667 279.5099 276.5081 270.9492 267.8062 266.998 264.2105 261.5053 263.0477 263.8324 266.1955 268.4895 273.047 276.7807 280.0371 281.9707 284.528 285.2384 286.5472 287.1221 286.5873 281.3478 277.591 272.6915 266.9095 270.2004 274.5126 275.8887 277.6853 279.4515 280.7125 281.7354 283.0147 283.5132 283.5444 282.4632 280.3389 277.8879 277.2035 273.0568 272.0469 275.8974 278.554 280.1681 281.6938 283.1942 284.5931 285.6379 285.9554 285.177 283.9164 281.9208 279.896 277.7209 275.1924 272.4411 269.789 270.9569 275.7508 278.8191 280.7263 281.8536 282.683 283.6569 285.2088 286.915 289.3904 289.9405 290.0915 290.4413 290.4856 290.2662 288.5661 287.0126 288.8255 292.2178 293.5705 293.6301 293.311 292.1565 294.0627 295.4327 296.8231 298.6432 297.7918 297.3446 297.1766 296.6128 295.374 294.3359 293.2137 292.3404 290.5393 286.2384 284.1375 283.4382 284.4383 284.59 285.0972 285.3463 284.3155 284.0546 283.7464 283.1115 282.7246 281.9481 278.2113 274.2806 272.2895 266.5985 266.1641 265.7885 266.1855 267.3845 270.2718 272.6225 274.818 276.6805 279.2738 280.8749 283.9851 284.841 285.9761 286.8688 -9999 +-9999 -9999 304.1814 307.2458 310.1429 312.0259 313.7568 314.3543 313.3384 316.8907 318.6353 320.2109 321.6674 321.3143 319.8213 316.3163 316.6609 318.5216 317.5786 318.3834 324.5308 326.6695 328.8462 331.3181 332.1232 331.2256 328.248 325.7234 322.6328 316.9938 312.781 312.9171 315.9227 318.5035 320.4211 322.105 323.329 323.829 320.5033 318.6701 316.9278 314.6266 311.9387 308.2794 303.6468 295.9883 294.4266 294.8413 293.6003 293.2407 292.0103 290.3459 284.2742 286.5324 285.7337 277.0089 267.1572 271.3811 278.2478 282.2904 285.8604 288.2346 289.5111 288.9672 286.8949 282.0197 280.3784 278.1098 277.208 279.1227 281.1272 281.8805 282.6531 282.1561 283.6546 284.9265 287.1432 290.3238 292.51 294.6501 296.9475 298.8676 300.2542 302.8813 304.1466 305.9905 307.6425 308.293 308.7747 307.8409 306.5905 305.1894 304.6891 305.0251 306.1782 305.5668 302.1546 302.0706 302.0309 298.4221 290.734 288.7315 293.5305 297.6139 299.7457 299.5832 297.4248 294.6111 291.4195 290.7932 295.4532 296.0881 296.2047 299.0252 302.8168 305.5782 308.4806 310.1073 311.4733 310.3251 308.1217 305.8601 304.5204 302.6413 301.5344 300.5776 299.6484 298.2297 295.161 293.9981 292.6306 290.769 288.3829 286.1674 283.4496 279.1344 270.7027 268.7864 268.9921 268.4253 267.6406 266.0197 265.3174 266.0107 269.4397 271.0175 268.8593 264.4567 261.4456 259.7006 257.4851 262.5112 271.0801 277.8828 283.7123 288.4808 287.6723 290.0617 294.2529 298.7162 303.3051 308.4331 313.0911 315.9497 313.1766 313.338 315.8566 317.2239 317.6686 315.9804 313.4027 311.7164 311.0511 309.6532 308.0313 304.6413 300.0777 294.7891 288.5127 283.3089 279.2114 276.9853 287.0497 291.6165 295.541 298.6049 299.1214 299.5672 299.3076 299.4234 298.9501 295.6098 293.4344 293.5049 293.9033 294.7714 296.0918 296.114 296.0761 295.8742 291.0048 287.4374 279.6356 272.0526 264.0819 262.1692 265.5182 270.5363 274.5128 276.6273 275.6351 280.2539 284.1373 287.9648 291.6299 294.5051 296.0476 297.5023 293.5445 290.6891 286.9543 288.4233 291.8842 293.4093 291.9235 289.718 288.4207 286.916 284.1668 279.4562 281.7062 282.6481 281.7671 282.323 281.9991 278.9061 268.056 270.1293 272.357 275.3927 277.1062 276.6919 275.044 273.3776 270.0905 267.0393 267.1945 266.4222 269.3673 271.547 273.6317 274.6965 275.1999 276.5712 275.6545 273.2507 269.272 264.8491 261.2509 258.5269 254.4197 249.7949 248.8917 247.2358 250.1019 249.9046 249.7197 249.6514 249.5186 249.3447 249.2668 249.1616 248.8204 252.3055 256.6549 260.9832 263.4398 261.3228 251.0928 248.6358 248.8913 248.4675 248.2513 248.3399 246.2574 247.7297 248.3966 248.7081 252.2229 257.1792 264.8564 267.4055 268.9718 267.5915 265.553 263.6793 261.9057 260.3431 258.3536 252.6956 248.9476 247.579 246.7968 246.3498 246.302 246.2177 246.0194 245.9072 246.2125 246.5506 247.4105 246.3166 244.9499 245.299 248.1813 248.4812 248.8441 247.7983 247.939 247.2347 246.9386 246.4632 246.5439 246.4041 247.165 244.4879 246.9354 246.8992 246.3736 246.1172 246.2793 245.8492 245.8602 247.2027 250.7964 254.9262 259.502 258.6035 245.5684 245.8721 246.1918 246.1961 247.1272 254.7402 256.945 257.8779 258.2276 252.9876 249.5504 247.9088 247.9268 248.9185 248.9429 250.2072 260.7157 260.8123 266.0922 267.6301 268.4884 274.7297 275.2251 275.6924 275.5991 277.5718 277.6638 280.7006 279.6774 278.1782 276.4975 275.7505 276.729 276.7721 275.843 272.6737 274.5775 276.3014 278.0528 279.745 280.9311 280.7536 278.9729 273.7176 271.8206 274.536 274.424 271.9101 268.0676 266.0092 264.6967 265.8853 275.5497 279.3054 282.3403 283.7881 285.471 286.3807 286.8039 286.489 284.929 278.9955 274.5289 268.132 266.7889 270.3247 273.9682 274.9504 276.7929 278.4987 280.3589 281.6783 282.4262 282.0755 281.6617 280.833 278.8624 276.811 275.0904 271.2931 274.1266 276.5857 278.5014 279.7298 281.287 283.1338 284.7683 285.9838 286.2695 285.4449 284.3892 282.4543 279.5132 276.6573 272.6017 269.6816 267.4851 271.2057 274.8686 278.1795 280.2876 282.1039 283.1608 284.3916 285.6191 286.9523 288.2379 288.5735 288.6853 288.5635 288.4672 287.4814 285.4903 284.8776 285.9749 288.3176 288.3728 288.7029 289.5574 290.067 292.9709 294.4975 295.7917 297.3524 297.3685 297.5827 297.8921 297.2595 296.4184 295.4284 294.5483 293.6649 292.6695 289.6322 286.7005 287.0015 288.1274 288.9289 289.1574 287.9592 287.0625 286.0572 285.6712 284.481 283.5204 282.1848 279.1544 276.055 274.1842 271.4886 267.4347 265.5919 266.1271 267.1731 270.5842 272.7604 274.8612 277.7222 280.4614 282.196 284.7756 286.0653 287.8819 289.2261 -9999 +-9999 -9999 304.1814 307.2458 310.1429 312.0259 313.7568 314.3543 313.3384 316.8907 318.6353 320.2109 318.5025 316.8313 316.5869 312.4153 313.7912 313.2471 316.324 319.7113 326.0318 327.8414 329.8233 331.1439 331.3951 330.0969 327.7278 324.4168 320.495 315.6644 312.2228 311.2686 314.5409 316.3854 318.0982 320.5357 322.6427 323.0283 318.5104 316.8017 314.8499 311.4972 308.0409 304.4624 299.3613 294.1799 294.6824 289.4117 287.7503 285.4556 283.8528 283.2447 281.0054 280.0896 280.1342 275.351 267.1681 271.848 278.7341 283.69 287.2697 289.5135 289.6583 288.3306 286.2478 283.317 283.0751 279.1782 280.4021 279.9236 278.3394 279.6703 281.2245 283.0112 282.1475 283.7222 285.8078 288.3366 291.1979 294.5313 297.211 299.5863 301.7714 302.9555 303.9672 305.6536 307.8306 307.8896 307.7807 307.8792 307.356 306.1096 305.1872 305.9723 307.7273 309.0676 308.1858 305.196 302.8731 299.8259 292.1446 288.0632 293.2757 298.2636 300.393 300.6615 300.0724 298.2737 296.8573 295.3086 295.5901 296.332 296.5375 297.7526 300.9728 303.521 305.9122 308.6603 309.2176 308.3827 307.5413 306.0163 303.4922 301.0533 299.7456 299.4208 298.1027 296.9014 292.6582 291.4384 290.7303 289.1603 286.7752 283.3781 278.8192 276.0155 281.9254 280.1089 275.8368 270.2241 266.5061 268.8809 267.7393 265.2636 263.7305 263.0207 263.5243 261.4323 259.6837 259.4353 259.6802 260.5014 264.1465 272.0526 278.3636 288.3951 292.631 296.047 299.3556 302.6219 305.7783 308.8518 311.2516 314.1414 316.5846 316.2711 316.9531 317.9844 318.8134 316.6598 314.4158 311.6597 309.5763 308.5034 307.8951 304.8695 300.2405 294.2194 286.8873 281.7591 279.5323 278.0298 287.5811 292.4189 296.1853 299.1939 300.6442 301.2873 300.9436 301.3407 301.8231 299.0188 297.5403 297.1881 297.1734 297.309 297.8289 297.3574 296.9714 295.7497 287.5487 282.3083 274.2868 266.4609 264.7364 263.9431 264.3169 266.9849 267.7308 274.1373 279.2446 283.0341 288.0241 290.7039 293.7331 297.0554 299.1988 299.0491 296.5261 293.0622 288.8762 292.4714 296.0971 298.5172 299.4268 297.3679 296.0198 291.4434 287.7658 280.5063 284.6383 284.8674 284.2795 283.4908 281.0785 276.1901 274.5793 274.837 274.3784 276.5338 278.0161 278.0592 276.8271 275.3936 272.8388 269.6253 269.0527 267.8067 269.2731 270.6783 272.6712 275.011 276.4651 277.5291 276.3025 274.3614 271.5074 269.4859 266.6749 264.0217 260.4841 251.3099 248.9115 246.4602 250.3106 249.9526 249.6595 249.49 249.4214 249.2894 249.1847 249.1176 248.9434 248.6504 250.2507 254.5693 258.0302 259.8546 255.3032 248.8909 248.9786 248.7327 248.4625 248.3036 246.7679 247.9135 248.7815 248.8289 252.1536 256.8765 263.7423 266.247 267.032 266.6322 265.298 262.8698 261.3807 260.3431 258.3536 252.6956 248.9476 247.579 246.7968 246.3498 246.302 246.2177 246.0194 245.9072 246.2125 246.5506 247.4105 246.3166 244.9499 245.299 248.1813 248.4812 248.8441 246.9592 247.939 247.2347 246.9386 246.4632 246.5439 246.4041 247.165 244.4879 245.1192 246.8992 246.3736 246.1172 246.2793 246.0999 244.0272 246.7242 249.6639 253.8004 258.9498 260.7345 255.6897 246.2436 245.9436 247.8669 255.4523 257.2775 257.8816 258.2291 258.6637 258.3425 255.7191 252.4715 248.9767 250.047 255.9144 260.563 260.6955 261.0855 261.43 267.0012 266.8699 272.173 276.3721 276.6371 276.6173 276.3313 276.8245 276.6433 278.9237 278.6457 278.744 279.1891 279.8705 279.8946 278.6877 277.4963 276.7608 277.524 277.9139 279.0653 280.5067 281.4187 280.4197 275.2963 276.6696 277.9984 278.6524 277.8723 275.4864 273.9225 272.9313 274.5797 279.7095 281.5893 283.9588 285.4047 286.4344 287.1077 286.7612 285.5964 283.661 277.4029 271.468 264.877 268.1792 271.0972 273.6108 275.4117 276.843 278.093 280.857 281.956 281.7884 280.5549 279.5549 278.4973 276.3644 274.2012 273.1083 274.2075 277.4071 279.4099 279.6377 280.3443 282.0923 283.8724 285.8191 287.2168 287.5382 286.8112 285.7478 283.5401 280.9513 277.3502 272.4046 268.1709 267.0238 270.5232 275.4419 278.8566 281.3352 282.7617 283.818 285.0356 285.9648 286.3174 286.6714 287.0411 286.8172 285.7002 285.9861 284.4777 282.7812 283.214 283.4442 283.5809 284.2952 285.7198 287.1051 288.8089 290.7552 292.8727 294.6352 296.1789 296.5249 297.5746 298.7531 298.7755 298.1149 297.1536 296.1793 294.4499 292.8069 290.3334 289.0844 290.0798 291.6673 292.1352 292.1478 290.6033 289.4341 288.1244 286.9274 285.3127 283.6693 281.3839 278.9487 277.8279 275.0289 271.4071 268.4432 265.4602 265.5957 266.351 269.3329 271.9539 274.5332 277.8413 280.9467 281.679 284.6171 286.0232 287.8597 288.9075 -9999 +-9999 -9999 303.7848 306.3057 306.5535 307.1669 308.2991 306.2954 312.1556 315.4844 316.9439 317.4514 315.694 313.6521 313.1403 309.513 310.5347 314.1449 318.4363 321.0339 325.4947 327.2461 328.3499 329.8907 329.7228 328.1555 326.4724 324.4846 321.9285 315.5421 311.6786 309.375 313.1068 316.0678 318.4565 320.661 322.3005 322.1845 316.6452 312.9311 309.7928 306.9997 302.0436 301.9672 302.5028 303.2676 302.4712 295.2307 294.485 294.7884 291.9766 286.9516 280.4879 274.3203 272.5303 271.1873 267.4381 272.1096 278.4352 284.14 288.0308 289.8444 289.1393 287.0652 285.4464 284.923 285.3768 281.7655 281.7553 284.3549 286.2823 287.8787 288.4501 288.0949 285.6023 284.863 284.1231 285.3 287.7678 291.5432 294.5894 297.7317 300.522 302.9828 303.5598 304.424 305.7827 305.9577 305.8567 306.9418 307.5271 307.0694 306.0911 306.8243 308.6425 309.7266 309.5095 307.4519 304.851 301.3216 295.1996 285.5022 291.1729 295.3414 298.071 299.6096 300.6027 301.0624 300.7595 299.8274 299.0587 298.4953 297.8733 297.572 298.7823 301.2669 304.1118 306.16 308.0067 307.6531 305.8537 304.6364 303.0547 301.0607 299.8559 297.3156 295.3076 293.8102 292.0211 289.2878 286.8191 285.414 282.855 280.236 277.5609 281.9768 286.7825 288.7274 285.4239 281.2291 277.6472 274.8924 272.7169 270.0151 267.1642 265.1523 263.5038 261.7758 264.5392 262.9564 260.1979 260.8964 264.0259 267.0433 270.8783 281.01 286.0539 290.2734 294.9107 299.059 302.4429 305.3441 307.9952 310.6709 315.9453 318.4557 319.2864 319.536 319.6512 318.015 314.3774 311.8178 309.6194 306.1372 306.137 303.7358 299.6869 294.8342 289.6717 286.6349 281.9609 279.1244 287.4615 291.9304 295.4856 297.9992 299.9509 301.9356 303.4169 303.7864 304.2071 301.8491 300.918 299.9738 299.5638 299.3251 298.5678 297.002 295.7453 293.3502 284.7181 278.96 271.2917 266.8708 264.7216 268.658 273.1542 274.3604 272.6176 282.2981 286.279 289.3081 291.0617 291.4019 294.8318 298.6672 302.0281 301.8413 298.5216 295.8923 291.9608 293.2909 297.9229 300.741 302.6165 303.3245 301.285 294.5251 289.9417 282.5657 286.7481 286.5451 285.3969 283.0258 279.7737 276.1973 277.6208 277.4391 278.0287 278.6001 280.1949 280.1257 278.7348 277.5185 275.4784 270.5877 271.1282 270.1801 271.5649 273.4421 273.8707 274.8639 276.847 277.9578 277.9845 276.2093 274.4513 272.4607 270.3517 267.8016 264.9007 258.3271 249.1103 248.7851 250.3106 249.9526 249.6595 249.49 249.4214 249.2894 249.1847 249.1176 248.9434 248.6504 250.2507 254.5693 258.0302 259.8546 255.3032 248.8909 248.9786 248.7327 248.4625 248.3036 246.7679 247.9135 248.7815 248.8289 252.1536 256.8765 263.7423 266.247 267.032 266.6322 265.298 262.8698 261.3807 259.775 257.877 252.2757 249.8669 247.9834 247.1691 246.3853 246.2529 246.4737 245.9768 245.7007 245.8971 245.9822 246.2994 246.9128 247.3145 246.1264 245.6127 244.9349 244.7644 244.6628 244.5945 245.8409 247.5298 246.8188 246.598 247.1141 247.2239 244.5222 244.7492 246.4127 246.5775 246.0294 246.3243 245.4085 245.6348 246.5049 247.7662 255.9742 258.1014 259.9388 260.7396 260.4339 260.3294 259.6709 256.9653 257.8766 258.1906 258.4024 258.8008 259.4751 259.5674 259.7623 256.7119 260.3395 260.4785 260.7184 261.2147 261.4566 261.5321 265.443 266.1991 268.178 274.3283 277.5927 277.9995 274.3332 274.6623 275.3164 275.6141 276.8185 279.116 279.998 280.3093 280.1195 279.5993 279.6701 279.9022 280.0482 280.4304 280.4588 280.6401 280.7413 280.9473 280.1346 280.6818 280.8912 281.4074 281.4122 280.9305 279.1351 277.3861 279.2281 281.3887 282.853 284.1882 285.8532 286.5571 287.0217 286.2283 284.7994 282.64 277.5184 271.9045 264.0312 267.6215 271.664 274.4632 276.7707 278.7063 280.1466 281.4783 281.7633 280.7573 279.0419 277.126 276.0391 273.5195 271.058 269.6657 277.3585 280.1655 281.4958 282.1728 282.3997 282.7331 284.1225 285.657 286.9544 288.3677 288.0858 287.0461 284.8124 281.9559 278.0592 273.6545 268.0607 265.8429 270.8474 275.203 278.594 281.0626 282.4026 283.4926 284.4022 284.7783 284.5207 285.192 284.4723 284.1625 282.9622 282.5106 281.7349 280.8226 281.3015 280.1734 280.5487 282.4239 284.9505 286.2752 288.0049 289.731 291.1219 294.4824 295.3117 295.5254 296.4055 298.0326 299.2834 299.4652 298.3021 297.0902 295.8749 295.0621 292.9277 291.7931 292.5815 294.3952 294.4204 293.748 292.6052 291.2563 290.3965 287.7744 286.0174 284.9459 281.4367 279.6718 277.9836 275.5478 272.8979 269.2544 265.3133 265.5048 266.1311 267.7295 271.1397 273.9237 276.6576 278.8799 280.4066 283.6887 285.1273 286.4683 287.9 -9999 +-9999 -9999 298.7624 298.8506 299.8142 305.5813 309.3587 311.6413 312.6049 314.4179 314.5054 315.4297 313.2475 310.6483 307.7673 306.7065 311.035 315.1142 317.8757 320.0604 323.467 324.5893 326.0154 327.5096 327.4039 325.4743 323.173 321.627 320.3734 314.6638 308.7151 308.5676 312.252 315.0338 317.6433 319.8062 321.4218 321.5936 316.9768 313.6259 309.5247 309.0807 307.9532 309.3198 309.4052 308.1991 305.473 297.0402 299.3098 298.8247 297.4747 294.2464 290.1823 286.6655 281.8142 274.8294 268.0619 271.3603 280.9812 286.3706 289.1746 289.9554 288.8911 287.0468 286.4704 287.1375 286.0049 283.2077 283.7565 285.8217 288.2184 290.5276 292.2989 293.0139 293.5062 292.1818 289.5302 286.3588 285.4995 287.2871 291.1483 294.6458 297.3343 301.7162 302.1049 302.637 303.3674 303.8173 304.1797 305.7574 306.9641 307.5345 307.0905 307.2367 308.3337 309.46 309.4637 307.7986 304.8987 301.9359 297.9234 286.2816 289.5682 293.4813 297.1266 299.6326 301.7491 303.0071 303.9023 304.0437 302.5635 301.6369 300.5689 299.1907 298.8037 300.1243 302.0316 304.795 306.3354 306.9789 305.6975 303.1546 301.5917 299.5742 296.4396 296.0072 296.2412 294.5476 288.539 286.859 283.6929 281.1387 279.3416 279.2551 282.9179 286.1927 290.6238 293.6406 293.2235 289.3261 285.055 281.4081 277.6483 273.3634 270.1508 268.5694 267.108 267.0445 265.8012 263.6145 260.5243 261.0595 264.2769 268.8884 273.0408 275.3087 278.8285 285.0192 289.5279 293.8085 297.0201 300.4276 305.0862 306.5071 313.1701 316.1326 318.6697 319.0629 318.8765 317.459 313.8322 311.0242 307.3505 301.8398 302.9283 301.2896 297.9675 295.0461 291.6307 288.5919 283.7979 280.4518 287.6003 290.4356 292.7324 296.2879 299.9895 302.2283 304.4715 305.731 305.8723 303.9451 302.7254 302.0106 300.9522 299.8996 298.1174 295.9662 294.652 291.9713 280.7776 278.0446 272.4601 267.6028 267.2761 270.6324 278.0061 282.3003 282.5356 282.6431 288.6119 293.0503 295.5459 296.3492 295.8915 299.7066 302.9042 304.2363 300.3499 298.2264 296.9315 293.7364 296.4491 300.3439 303.0344 304.8786 303.3656 295.1236 290.7787 286.6983 288.2304 288.1066 285.3969 283.0258 279.7737 276.1973 277.6208 277.4391 278.0287 278.6001 280.1949 280.1257 278.7348 277.5185 275.4784 270.5877 271.1282 270.1801 271.5649 273.4421 273.8707 274.8639 276.847 277.9578 277.9845 276.2093 274.4513 272.4607 270.3517 267.8016 264.9007 258.3271 249.1103 248.7851 249.9403 249.7727 249.7478 249.4905 249.2855 249.2206 249.1163 249.0678 248.4159 246.0432 245.8533 246.1243 250.6531 252.1407 249.8904 249.0686 249.0193 248.9017 248.716 248.4936 248.9062 245.1661 248.664 248.5971 249.8352 254.8714 261.0854 262.8267 263.7169 264.216 264.2211 262.3046 260.4529 258.5174 256.53 252.2274 250.0366 248.9707 247.8938 246.6658 246.1271 246.0035 245.9506 245.8736 245.649 245.8891 246.022 246.2299 246.6621 246.9492 246.7661 246.802 246.8617 247.3586 245.9747 245.1064 244.5948 245.364 245.042 244.9727 244.5504 247.2213 248.3223 244.4105 242.8752 246.102 246.3593 242.928 246.6565 246.6888 246.3924 254.6326 257.559 259.0078 259.7486 260.2896 260.5616 260.6735 258.8294 258.1489 258.6872 258.462 258.4414 258.7841 259.6085 259.6058 260.5511 260.6638 260.8903 261.2749 261.3548 261.4255 261.453 261.6979 265.9052 265.5526 269.3024 274.3999 274.9063 272.8072 273.7371 273.1808 273.1981 277.628 282.559 283.2581 283.0052 282.1321 282.2977 282.2988 282.1829 282.0702 282.4072 282.979 282.7801 282.6908 282.3982 281.9497 282.7701 283.4803 283.43 283.2214 282.8934 282.119 280.631 280.57 282.5148 283.966 285.2751 285.9067 286.0824 286.3726 285.8968 284.6193 282.4473 277.7569 273.0555 264.8346 265.8887 271.0648 273.7906 276.0425 278.5577 280.2592 281.1188 279.8694 278.5905 276.7492 274.4359 272.4881 269.3195 268.7844 273.2006 280.1527 282.456 283.2628 284.4639 284.4533 284.5247 284.3389 284.5477 285.2416 286.3907 286.4052 285.7101 284.1139 280.9862 277.0217 273.3214 267.531 264.4415 270.8205 274.3496 277.2475 279.382 281.0661 282.4662 283.011 282.8344 282.4673 281.9413 282.2432 281.512 279.2444 278.2728 279.8415 278.5573 277.0388 276.3093 280.5973 282.6958 284.6031 286.2115 287.9124 289.3167 290.5859 291.9376 293.9642 294.7426 296.3363 297.8175 299.4749 300.1872 299.9888 298.6361 297.5002 296.7482 295.0935 294.5147 295.0842 296.2612 296.3773 295.216 294.327 293.088 292.6881 288.4786 286.4173 284.1332 282.1913 280.893 278.978 276.7318 274.3559 270.8228 265.4311 265.5773 265.7901 267.9648 270.5175 272.7161 274.773 276.9166 278.8962 282.5844 283.5252 284.8511 286.2069 -9999 +-9999 -9999 310.8408 312.53 311.3279 308.9366 309.1856 310.7648 312.9156 313.561 312.4893 311.7372 310.0642 306.9331 303.3267 308.8688 312.2029 315.3043 317.6805 318.9826 320.4031 322.1183 323.6163 324.4423 324.2325 322.5143 320.6128 318.66 317.1807 311.4065 306.5291 309.8217 312.5306 314.096 316.5868 319.2806 321.2081 321.1114 317.1639 315.7363 315.8514 315.3415 313.6581 313.2383 312.3038 310.1526 306.2037 301.5111 302.3977 300.7617 298.3982 296.0321 293.2565 289.8385 284.8622 277.6693 270.174 269.319 281.4468 287.5127 288.9279 288.9895 289.2068 288.3942 287.7804 287.7101 285.5769 284.4092 285.7501 287.7556 290.0178 292.3985 294.8596 296.6459 298.8738 298.3097 296.5294 293.969 290.861 287.4486 287.3463 290.1389 293.3706 298.8327 299.7387 299.444 300.0097 301.6777 303.9321 304.7858 305.7313 307.3006 307.6533 307.5176 308.0012 308.7357 308.7603 307.4867 303.8391 301.4359 297.8662 286.9102 291.344 296.462 298.6523 300.5832 302.5273 304.3243 305.6216 306.5883 306.1718 305.1463 303.6666 302.1389 300.8167 300.0898 301.554 303.2506 305.379 307.1931 305.8364 303.899 301.4051 298.3427 296.6801 293.4414 293.0946 293.3246 286.5127 284.9205 283.0504 282.3979 283.6944 286.6472 287.8966 289.2236 291.2075 296.7471 296.8494 296.2492 292.6869 288.0311 282.5874 278.1975 273.9853 271.4005 270.0873 268.4498 266.5778 262.2032 261.0132 261.1278 266.1311 271.5112 276.5069 282.6026 283.2185 282.4775 282.6544 286.7958 291.7447 296.7682 301.2703 305.2666 310.8582 313.3244 315.8349 317.3266 317.359 315.0292 312.8326 308.997 305.686 298.4763 300.3069 297.4135 294.9974 292.4516 290.8825 287.4669 284.365 281.9851 285.8677 289.9814 294.5255 298.1534 301.4568 303.6731 305.6021 306.7021 307.1048 304.7473 303.222 302.3813 301.0768 298.7355 296.7329 294.6445 292.9247 291.0428 279.421 278.0446 272.4601 267.6028 267.2761 270.6324 278.0061 282.3003 282.5356 282.6431 288.6119 293.0503 295.5459 296.3492 295.8915 299.7066 302.9042 304.2363 300.3499 298.2264 296.9315 293.7364 296.4491 300.3439 303.0344 304.8786 303.3656 295.1236 290.7787 286.6983 288.2304 288.1066 285.8489 283.331 280.5868 279.2428 282.5981 282.5022 281.8813 282.6432 282.399 282.2491 281.188 280.0274 277.687 271.4201 273.569 273.1837 274.4648 276.0614 277.5274 277.5255 277.7275 278.7455 278.6283 277.2208 275.461 273.4834 271.5149 269.4735 266.8867 263.3976 252.6757 246.6066 249.8764 249.6658 249.5912 249.4035 249.238 249.0305 248.9059 248.8441 246.0292 249.5463 249.0427 249.0656 246.4707 246.8187 248.7249 249.5701 249.2384 249.0053 248.9557 249.3985 248.6575 248.703 245.472 245.1722 245.0495 248.4548 255.7847 258.2842 259.8312 263.5605 261.8282 261.1996 259.5695 258.023 255.7809 252.5745 250.5573 250.4596 249.1399 246.9394 246.2137 246.1311 246.0267 245.9378 245.6831 246.0357 246.2295 246.1892 246.7953 247.1801 247.1333 246.7497 246.5758 247.5342 247.5262 247.4642 247.1595 247.0049 246.9709 247.0773 246.9728 246.9218 247.0622 246.5624 245.28 243.0584 242.9484 246.7017 246.4792 246.7284 246.5801 249.7401 254.7765 256.518 257.9635 259.2793 260.1597 260.4807 257.3882 257.7705 258.3718 258.2707 258.1259 259.4086 260.2155 259.8702 260.7197 260.8076 260.9777 261.1283 261.1692 261.4095 261.5525 261.5923 265.6494 265.7674 266.7489 268.503 279.3398 279.4666 276.1542 273.8235 273.1282 275.3684 280.9211 285.3104 285.3479 284.4637 284.9543 284.6869 284.5323 284.5235 284.4652 284.7682 284.4436 284.0725 283.79 283.1157 283.2885 283.7887 284.2831 284.6978 284.6385 283.5742 282.817 282.3899 283.7122 284.7192 285.0582 284.8671 285.181 285.4575 285.6395 285.1513 283.5989 278.7024 274.8398 266.7704 263.3669 268.9446 272.0404 274.4361 276.7816 278.5226 278.7195 276.9151 275.8248 273.8997 271.1915 269.0936 268.4523 272.7782 276.5237 282.0642 284.5373 286.2925 286.1331 285.4994 284.8054 283.6014 282.7452 282.9081 284.2643 284.4493 283.9466 281.9758 278.7743 275.3694 271.3452 266.407 263.3831 271.1499 274.285 276.4421 278.201 279.8319 280.7826 280.8096 280.9325 280.2477 279.9841 279.5894 278.5276 276.1737 275.5272 273.0274 273.4318 275.7268 282.8142 286.4896 287.4916 288.834 289.6413 290.2897 289.9638 290.8062 291.9611 292.6678 294.8997 296.1138 297.5916 298.8293 299.9614 300.5705 299.654 299.0496 297.8586 296.5823 296.1832 296.8334 297.3968 297.273 296.6668 296.0819 295.3937 294.3551 289.2716 287.2581 285.3535 283.7566 281.6053 279.2125 277.1524 274.8218 271.7024 264.8271 265.0569 265.5324 268.5668 270.6031 271.9406 273.6915 275.2367 277.3362 279.8776 281.5776 283.7159 285.0438 -9999 +-9999 -9999 310.4469 310.6243 310.0936 310.9365 312.4837 313.6781 314.5623 313.7044 310.4841 306.3 305.5465 301.3304 304.6915 308.6233 311.3945 313.5642 315.1545 316.5817 318.6938 320.523 321.2694 321.1578 320.7451 319.9308 318.1412 316.9499 314.4333 309.0054 305.1404 310.2964 314.8391 316.6541 317.5631 318.9929 320.8483 321.7828 320.2326 318.9216 319.1621 318.6624 317.6548 316.5067 314.1538 310.9589 306.5258 305.0826 304.62 301.6508 298.0432 294.5685 291.8924 288.333 283.2674 278.3293 271.3766 268.1303 275.9049 280.262 284.3958 286.7551 288.6367 289.8596 289.7419 287.333 285.956 286.0125 287.0867 289.2574 291.8409 294.1902 296.3201 298.5956 301.7284 302.7413 302.2635 300.5912 298.2102 294.5406 291.794 289.3481 289.3075 294.8296 295.5637 298.6663 300.6768 301.4924 301.825 303.2603 305.153 306.4174 308.4901 308.0023 308.0098 307.8128 307.4426 306.8772 304.6219 302.2786 298.7312 287.9839 293.069 296.7693 298.9887 300.8649 302.6016 304.7054 306.488 308.1675 308.9803 307.7375 306.4438 305.4145 304.5709 303.4659 301.8038 302.766 304.0522 306.494 306.1496 304.558 302.8629 300.4131 297.8209 295.9692 292.3048 290.0467 285.4165 283.8842 284.5884 287.7488 289.2346 289.9368 291.5629 292.397 292.7851 297.1577 299.5928 298.1379 297.1315 292.323 286.8105 281.6263 277.7227 275.2119 270.6143 269.4602 267.3113 265.298 263.7977 262.6317 267.1421 270.9255 276.8568 285.578 289.1238 290.234 291.7891 292.444 293.615 295.6631 299.3877 302.9686 308.2705 310.6342 312.7994 314.6308 314.9782 314.0043 312.2012 308.997 305.686 298.4763 300.3069 297.4135 294.9974 292.4516 290.8825 287.4669 284.365 281.9851 285.8677 289.9814 294.5255 298.1534 301.4568 303.6731 305.6021 306.7021 307.1048 304.7473 303.222 302.3813 301.0768 298.7355 296.7329 294.6445 292.9247 291.0428 279.421 273.935 270.5145 272.281 269.5033 270.9626 280.6491 287.0385 290.0225 289.1086 289.0814 294.0212 297.7099 299.5805 299.7108 300.7168 303.6209 305.547 301.7335 300.6706 300.3842 297.5237 298.1369 300.9889 303.161 304.7861 303.8874 296.3503 293.3874 289.0279 291.2346 289.7594 287.912 286.7669 286.1411 285.2185 285.8577 286.25 286.4743 285.9024 285.4523 285.1221 284.12 281.9817 279.688 273.0282 274.8481 275.9837 276.95 278.5175 280.0567 280.555 280.1457 279.9127 277.3503 276.2245 274.2104 272.6378 270.8317 269.0278 267.1334 264.1783 260.5344 247.1737 249.8351 249.3341 249.2348 249.6837 249.7915 249.6134 249.1273 249.264 245.9833 249.1204 249.1243 248.8524 248.8993 249.0253 248.0248 246.1745 245.9333 249.2973 249.2719 249.2811 249.0339 248.6357 248.8289 248.3794 248.4687 247.5228 245.9179 254.5607 260.9867 262.0114 261.8833 261.7104 259.7177 258.7124 256.7327 253.2643 252.1234 251.5873 249.9661 247.8791 246.897 246.2545 246.0397 245.8518 245.8471 245.7591 245.9637 246.3308 246.0379 245.9726 246.1586 245.9086 245.8258 246.9621 246.8539 247.2156 248.1268 250.6796 249.7906 249.4257 249.1806 247.8629 246.9041 246.9442 246.681 242.7472 246.4417 246.59 246.5468 246.5374 246.5875 246.372 249.634 253.6302 255.7746 257.2188 258.3264 259.0117 258.8185 257.5932 257.8228 259.402 260.212 260.4486 260.541 260.1685 260.3174 260.7408 260.8586 261.0208 261.1519 261.2741 261.3536 263.5063 264.1215 265.3375 266.1642 266.6463 279.7354 279.9129 279.4598 276.4101 273.3066 273.6019 276.1852 280.6439 285.9625 285.7014 285.4489 285.1241 284.9725 284.8567 284.785 285.1572 284.9353 284.7706 282.4543 281.6964 281.8994 282.4572 283.079 283.8155 284.3577 284.6653 284.5049 283.9893 284.5609 284.473 284.1363 283.5644 284.0092 284.3831 284.6909 284.8603 284.1623 280.0374 276.2136 269.3204 261.5685 266.8266 270.2303 272.3311 274.4032 275.3357 275.0594 274.4203 272.9223 270.0824 267.0107 268.4164 272.3856 275.5466 277.9939 283.1695 285.385 286.5954 286.0797 284.8672 283.5392 282.7158 280.6167 280.6149 282.3945 282.4718 281.3752 278.7473 276.3595 273.196 268.9206 264.7616 262.81 272.1708 274.8257 276.7527 277.8826 278.5804 278.6563 278.1921 278.3815 277.8231 276.9547 274.7127 272.0122 270.6812 274.6435 275.9114 280.7332 285.6766 289.1093 290.2747 291.1866 291.6083 292.1014 292.8506 292.3377 291.8549 292.3908 293.3484 294.965 295.4199 295.8869 296.9659 298.1052 298.9826 298.9158 299.1813 298.7173 297.5374 297.0397 296.776 297.0818 297.8385 298.0555 297.8879 296.9324 295.2304 291.5868 288.9312 286.3102 284.5097 283.2272 281.6329 280.3839 278.0348 273.3352 265.0461 264.3881 265.1067 267.4512 268.5935 269.7442 271.6559 274.0595 276.2111 279.2298 280.3949 283.1469 284.814 -9999 +-9999 -9999 307.3659 307.4185 308.9487 311.5074 314.3069 315.6049 317.1558 314.7362 310.6885 302.9653 299.2076 300.7408 305.3229 307.4989 310.1124 311.673 313.3398 314.7469 317.4201 318.5742 318.5985 317.771 316.9525 315.8403 314.9441 313.9517 312.8995 305.7144 304.171 310.3745 315.0139 318.3846 320.286 320.759 320.489 322.8776 323.5671 322.3093 321.5897 321.3671 320.1151 318.5385 315.7381 312.4442 310.8622 306.4435 304.4613 300.8239 296.5126 293.4514 289.2108 284.926 279.9952 276.0284 270.9896 267.7635 279.7757 286.2929 290.6158 292.1294 291.45 291.4886 291.4659 288.3761 288.1156 288.2211 288.1428 290.668 293.5583 295.3793 297.5297 299.9051 304.1514 305.0401 305.2391 304.5 302.9896 299.1739 297.8205 295.9394 292.146 291.831 294.4755 296.9463 298.7423 300.9006 304.7221 306.1576 307.4221 308.8638 309.342 308.8721 308.1769 307.0842 305.4699 305.0409 303.6673 301.4625 297.8499 290.6218 290.0907 295.2282 297.992 299.8017 301.7762 304.2007 306.5511 308.9174 311.0116 310.3511 309.3247 308.5377 307.8125 307.4724 306.5114 304.0547 303.6906 306.3021 306.7354 305.9903 305.0955 302.7346 299.6834 295.5029 290.6779 287.6493 285.0096 286.4576 287.1437 288.4047 290.5731 292.6037 294.0939 295.4148 294.98 296.6935 297.5009 297.4964 295.1516 292.3177 286.8105 281.6263 277.7227 275.2119 270.6143 269.4602 267.3113 265.298 263.7977 262.6317 267.1421 270.9255 276.8568 285.578 289.1238 290.234 291.7891 292.444 293.615 295.6631 299.3877 302.9686 308.2705 310.6342 312.7994 314.6308 314.9782 314.0043 312.2012 307.7675 302.8116 294.4878 296.2224 292.3484 290.3618 288.2325 286.3219 284.2046 283.5728 283.3119 286.353 291.0578 294.8672 297.8662 301.161 303.7115 305.362 307.0166 307.3552 303.672 301.9694 300.5887 298.8788 296.3449 294.4997 292.9691 290.8832 288.7581 275.3234 273.2311 278.3839 282.3255 280.8994 273.4849 279.2331 288.0919 293.2453 295.0176 294.1529 295.3712 297.7495 300.6226 301.9399 302.6716 304.3866 306.3694 303.7947 301.9293 302.0721 301.0978 299.7365 303.0943 304.5484 305.8268 304.8757 299.4725 295.9192 293.6627 294.0489 293.0474 292.9208 292.2204 291.9849 291.0398 289.6211 290.1208 290.2376 290.0244 288.6019 287.921 286.2249 282.7978 279.4713 277.82 277.7437 279.3446 279.7857 280.2053 281.3215 282.0431 281.4771 280.3109 272.304 270.8339 269.1015 268.2744 268.9565 267.0969 265.4998 263.0451 260.0618 246.9542 246.7118 249.2974 246.2651 246.2624 246.3348 246.0961 245.9456 245.9577 249.4764 249.2617 249.1767 248.8515 248.7131 248.7345 248.8322 248.8472 248.8006 247.3339 245.9056 246.9052 249.5161 248.9777 249.0645 248.8056 248.8161 249.181 247.0724 254.9986 260.7451 261.363 261.6834 262.0551 260.0991 258.6508 256.6696 253.6896 251.7451 250.7755 250.0518 247.508 247.0413 246.4259 246.1295 245.8596 245.8076 245.9858 245.8412 245.773 245.75 245.7851 245.9688 245.8824 246.6918 246.7363 246.6561 251.3687 250.3131 249.7923 249.2946 249.0592 249.1551 248.0929 246.8166 247.0218 246.6302 242.6615 243.7324 246.5257 246.2672 246.3954 246.4855 246.1642 246.6237 249.4176 252.4536 254.3518 256.162 257.6563 258.814 259.023 259.873 260.0322 260.2541 260.2951 260.3521 260.534 260.4577 260.6573 260.7065 260.9059 261.0014 261.2224 262.0477 262.5445 263.7721 266.1692 266.1972 266.3085 276.111 280.3763 280.5214 280.1211 275.0795 274.8058 274.5254 274.2314 275.5806 285.3498 284.6379 283.9528 283.3368 283.0428 283.4142 283.881 283.6359 282.9958 280.2992 278.844 279.2097 280.8446 281.6263 283.1543 283.8217 284.432 285.4679 285.3364 284.7478 283.7667 282.8718 282.1069 282.6177 282.9291 282.9603 282.9697 281.4012 279.905 276.4478 269.913 260.7173 263.6318 267.4795 269.9427 271.0904 271.2719 271.7984 271.051 268.9369 266.104 268.7844 272.0306 275.1715 277.0877 279.0042 283.0873 284.7976 285.6225 284.901 283.3788 281.4516 279.7994 278.249 278.4071 279.9044 279.6524 278.3632 276.2156 274.406 271.3486 266.8542 263.8158 264.3436 272.2009 274.0996 276.0732 276.5327 276.1199 276.1019 275.9311 275.42 274.5856 271.2871 272.1806 275.8034 278.6075 280.8812 282.7115 284.7715 287.4409 289.5799 291.7234 292.9173 293.7177 294.2158 294.8573 294.8009 293.7395 293.0176 294.5146 294.5978 294.6319 294.9976 295.5589 296.0503 296.9777 297.799 298.1776 298.3782 297.2606 296.1812 296.0966 296.4038 297.4884 298.3538 298.6098 297.6765 296.2478 292.9639 289.7568 287.3734 286.5757 285.8011 284.4378 283.0972 281.2408 276.3668 265.0401 264.4953 264.7045 265.6677 266.3855 268.9856 271.3892 273.9876 275.8418 278.9607 280.5295 282.6238 284.3045 -9999 +-9999 -9999 305.0625 306.8083 308.8715 311.9169 314.3808 316.4703 317.1919 314.0699 309.7592 300.1293 295.6086 301.322 304.2638 306.2657 307.8975 310.1603 311.8997 313.6295 316.242 316.2079 315.6461 315.0294 313.5364 311.856 311.1517 309.4456 309.3619 301.2721 305.5565 311.046 315.0871 318.4464 320.4738 320.3795 319.787 322.1325 324.364 323.8922 323.0325 322.3823 320.9811 318.9837 316.6215 314.4257 311.5263 305.3932 302.246 299.2291 297.3159 295.1861 292.3402 288.7455 283.877 278.29 271.386 267.5688 279.2805 287.267 291.8495 294.7377 294.8461 294.1764 293.4343 292.1192 292.2362 292.082 288.92 291.1473 294.2338 295.5424 297.9062 300.7915 305.6942 306.9596 307.2897 306.8397 304.6644 303.1304 303.2489 301.9982 298.4359 294.8174 293.4453 295.4608 299.8141 302.9447 305.2734 307.2957 309.279 310.2492 310.502 309.918 309.6217 307.4897 305.2134 302.3192 300.156 297.7467 294.3848 290.7312 290.3712 293.7826 296.9658 299.0659 301.5104 304.2561 306.1845 309.6031 313.0141 313.2227 312.6663 308.5377 307.8125 307.4724 306.5114 304.0547 303.6906 306.3021 306.7354 305.9903 305.0955 302.7346 299.6834 295.5029 290.6779 287.6493 285.0096 286.4576 287.1437 288.4047 290.5731 292.6037 294.0939 295.4148 294.98 296.6935 297.5009 297.4964 295.1516 292.3177 287.8439 283.464 279.2266 275.3761 272.2194 269.9782 267.6759 265.2524 262.6662 262.4891 265.2715 269.1235 273.4586 282.5112 287.443 290.8287 294.0956 296.8751 297.3668 298.2031 299.7688 301.7914 305.2221 307.8802 309.4844 311.1174 311.7831 312.5633 311.9858 307.129 300.2702 293.2798 292.0383 294.9492 297.2845 296.424 293.6505 288.3385 285.2551 284.337 288.2228 291.9622 294.8755 298.0043 301.4006 304.3395 305.9124 307.1216 307.3395 303.5504 300.8836 297.9953 295.0777 293.6025 290.604 290.0876 286.8648 283.1888 276.2127 282.9992 287.3372 288.9817 287.0313 281.4286 277.0883 287.088 292.7327 296.8515 297.223 297.087 298.3249 300.5475 302.8974 304.1313 305.1976 307.2036 306.0649 303.8217 303.4644 302.9109 303.1741 306.0622 307.3417 307.6883 307.0568 301.7758 297.882 298.0727 296.7786 296.1553 296.0461 295.1387 295.5797 294.8848 293.2486 293.9175 294.1779 294.0448 292.0819 290.148 287.0495 284.4514 283.4059 281.2422 281.3439 282.1373 282.3369 282.5244 282.6956 283.2 282.6451 280.8471 275.5811 273.1547 268.5968 263.0089 265.071 265.152 263.9275 261.7897 258.5085 249.3785 249.0387 247.8485 249.7962 249.2395 248.4462 249.0431 249.324 249.3477 249.0018 248.8757 248.7664 248.7211 248.536 248.3158 248.1672 248.0419 247.9518 248.0085 248.0243 248.621 247.4463 245.7967 246.6386 247.6029 247.2733 245.4241 252.6609 255.8845 259.7179 260.66 261.3876 260.946 260.028 258.2405 256.2991 252.8421 251.2988 250.5575 250.4512 250.1623 246.9879 246.3371 246.1447 246.0416 245.7188 245.7489 245.7698 245.748 245.7252 246.0847 246.4356 246.4168 246.7299 247.4584 247.2518 251.5149 250.5237 249.9436 249.4604 249.1747 248.0044 246.7023 246.5745 246.2834 246.6227 246.0203 243.5911 242.6969 246.5202 246.1127 246.1544 246.1036 246.1827 247.1921 250.5317 254.3093 256.7783 257.9058 258.9377 259.7357 259.9016 260.0241 260.2155 260.3322 260.392 260.4705 260.4863 260.3528 260.5596 260.4373 261.0187 260.4616 260.627 261.9818 264.1947 266.3057 268.6551 268.7487 270.5591 278.034 280.9748 281.0279 279.2115 276.2584 274.2648 273.7995 273.4199 277.5042 280.8872 280.2823 279.1126 279.5331 281.267 281.231 281.6541 280.8462 277.7697 277.2105 277.6645 279.1241 280.4359 282.0416 283.1055 284.163 284.9188 285.5148 284.5784 283.8294 282.6223 281.6295 280.7536 280.7423 281.2931 280.9277 279.3307 277.4346 274.8918 269.8711 261.5932 261.0698 265.2 267.9988 269.2076 268.7738 268.2271 266.3961 265.834 269.8296 273.1184 275.8498 277.5182 278.4552 280.1242 283.535 284.3908 284.3353 283.0231 281.5417 280.0889 278.0209 275.5727 276.3636 277.7078 277.231 275.954 274.5049 271.3481 267.6104 263.8701 263.2582 264.8255 271.4597 272.6508 273.4195 273.8815 272.9043 272.2513 271.8102 271.4353 270.6292 271.3108 273.4383 276.0928 280.2415 282.2288 283.9033 285.6973 287.3799 288.3734 290.4998 291.5904 293.0079 294.5497 296.0008 296.2843 295.785 295.1601 295.1487 293.5782 292.6434 292.9093 293.3534 293.8683 294.7724 295.9334 298.1776 298.3782 297.2606 296.1812 296.0966 296.4038 297.4884 298.3538 298.6098 297.6765 296.2478 292.9639 289.7568 287.3734 286.5757 285.8011 284.4378 283.0972 281.2408 276.3668 265.0401 264.4953 264.7045 265.6677 266.3855 268.9856 271.3892 273.9876 275.8418 278.9607 280.5295 282.6238 284.3045 -9999 +-9999 -9999 306.4809 308.9007 310.422 312.1689 315.2091 316.2531 315.9482 312.8587 308.7354 299.0779 294.5262 298.9972 301.7567 303.5795 306.1408 309.3195 311.4954 312.8082 314.6539 313.9203 312.8606 312.4336 310.7408 308.4531 308.7072 306.1165 305.5403 300.6518 308.2293 313.1368 315.7985 317.7148 319.1276 318.8234 318.8049 320.7282 321.9878 321.3025 320.9377 320.6842 319.2827 317.357 315.9375 314.0377 312.0001 306.7341 304.4874 301.8382 298.994 295.2587 291.6439 287.8589 283.2664 278.4838 272.0357 267.6021 276.7089 288.681 295.7345 297.9617 297.9759 297.3716 295.5777 295.365 295.1597 294.1781 291.5783 290.3925 292.6963 295.1957 297.8172 301.3658 305.9268 307.5889 308.287 308.2904 307.8879 307.625 307.7634 306.5183 304.1526 298.9719 297.3951 295.4608 299.8141 302.9447 305.2734 307.2957 309.279 310.2492 310.502 309.918 309.6217 307.4897 305.2134 302.3192 300.156 297.7467 294.3848 290.7312 290.3712 293.7826 296.9658 299.0659 301.5104 304.2561 306.1845 309.6031 313.0141 313.2227 312.6663 312.246 311.5572 310.9661 310.1346 307.5498 305.0533 306.093 307.2789 307.9056 306.8055 305.2389 301.4421 293.0905 288.5465 287.4624 288.9592 292.5871 292.6569 291.3322 291.2964 292.8875 295.0913 297.1346 297.5352 296.4906 295.1874 293.2979 291.2407 288.7961 284.8081 281.1781 278.9449 276.6522 272.3997 270.4234 268.1627 265.9463 262.8713 263.0532 263.0908 265.425 269.4699 277.7234 281.3605 285.2469 289.9502 295.175 298.3042 299.5616 298.9725 299.0796 302.7122 304.9368 307.0492 309.3436 310.2414 311.3896 312.2698 309.4174 301.632 294.5057 297.6027 301.2937 303.6905 304.1577 300.539 296.0814 291.7626 287.0645 287.8206 291.7286 294.511 297.4687 300.2148 303.2469 305.2884 306.6548 306.8249 303.3636 299.5266 295.9963 292.0316 289.7569 287.5047 283.8885 280.6888 276.6399 287.5958 291.4236 293.2094 293.1248 291.2386 286.6133 277.6534 286.3721 291.9817 297.1712 298.2409 298.8628 299.4799 300.7942 302.3736 303.8032 305.1961 306.9622 307.9624 305.7693 304.7565 304.9204 305.5116 307.6074 309.3166 310.1282 308.938 304.841 299.218 301.1887 300.1031 300.4206 299.7935 299.4886 299.6889 297.3523 296.5469 297.3788 297.2704 295.9991 294.6597 292.2704 290.3513 288.5002 286.5815 284.9054 284.3595 284.3927 284.6502 284.6588 284.449 284.142 282.9913 281.197 275.4113 271.3599 268.1091 264.1408 260.2927 262.1843 260.4898 259.0243 255.5915 248.9597 249.0842 249.335 249.2833 247.9424 248.9259 249.1763 248.8396 248.9037 248.568 248.4016 248.1818 248.1068 248.078 248.0808 247.9248 247.8878 247.8822 248.0063 248.2225 248.0959 248.2411 248.2703 248.4833 247.9464 246.7983 248.1677 253.2598 256.2829 258.7213 259.8212 259.7788 260.0066 259.2019 257.7075 255.893 252.3392 250.5235 250.2025 249.9897 249.649 249.183 246.7569 246.1728 246.1679 245.6885 245.657 245.7891 245.7413 245.6883 245.9009 246.1806 246.7032 246.6026 246.7167 246.9357 249.6896 250.6092 249.9366 248.8376 247.7475 246.5657 246.4641 246.3508 246.2997 246.471 246.528 247.031 245.7038 242.7011 246.3917 246.1566 246.1153 245.9863 246.4845 251.6055 255.9587 257.9654 259.1879 260.0298 260.3774 259.9467 259.9575 260.1026 260.1878 260.3387 260.3246 260.3513 260.3085 260.2052 259.3687 257.9725 258.907 259.9461 261.493 263.5883 265.5882 268.1981 271.3346 269.3611 271.6671 279.5976 281.2429 281.1099 277.8486 277.6488 273.4802 273.0335 272.6331 272.5196 272.8481 273.1669 274.2994 275.7972 274.973 275.055 275.393 275.3626 275.1528 275.8938 277.5881 279.221 280.7791 282.1558 283.4686 284.4771 284.2913 283.8464 283.5985 282.6968 281.3505 280.0735 279.0736 279.4692 279.3328 277.0778 275.0368 272.8765 269.4421 263.1685 259.1239 263.5396 266.6407 267.2778 263.3845 264.0102 268.9948 271.7931 274.1199 277.001 278.9252 279.4611 280.1818 281.6154 282.0998 282.1384 281.5046 280.6633 279.5168 277.6788 275.5623 273.6842 275.6092 275.6625 274.9923 273.8471 271.9832 271.3481 267.6104 263.8701 263.2582 264.8255 271.4597 272.6508 273.4195 273.8815 272.9043 272.2513 271.8102 271.4353 270.6292 271.3108 273.4383 276.0928 280.2415 282.2288 283.9033 285.6973 287.3799 288.3734 290.4998 291.5904 293.0079 294.5497 296.0008 296.2843 295.785 295.1601 295.1487 293.5782 292.6434 292.9093 293.3534 293.8683 294.7724 295.9334 296.3108 296.5784 296.3026 295.1887 294.5386 295.5826 296.5245 297.4716 298.1801 298.0006 296.6064 293.6725 291.062 289.6735 288.4016 287.1764 286.2947 284.3325 281.7497 277.138 265.8562 263.9967 264.1962 264.8354 266.161 268.3404 271.521 274.2043 276.2022 279.2508 280.5518 281.9609 284.0256 -9999 +-9999 -9999 305.634 308.5093 310.5737 312.9255 314.5094 313.9649 313.4483 311.5645 308.3095 297.1309 292.2589 295.2891 300.3264 303.8301 305.6836 308.235 310.3671 311.7257 313.2975 311.5479 310.3432 310.1864 308.9228 306.2372 305.5078 303.9238 301.4734 302.5418 308.614 312.4215 314.1567 315.0414 315.6698 315.699 317.7261 319.1755 318.0919 317.466 317.3988 317.2433 316.2321 313.093 312.0006 311.2812 310.079 306.313 303.605 300.7723 298.081 295.1313 290.8656 286.9972 283.0893 279.5117 271.7729 267.651 276.7089 288.681 295.7345 297.9617 297.9759 297.3716 295.5777 295.365 295.1597 294.1781 291.5783 290.3925 292.6963 295.1957 297.8172 301.3658 305.9268 307.5889 308.287 308.2904 307.8879 307.625 307.7634 306.5183 304.1526 298.9719 297.3951 294.6932 298.4831 302.9918 305.8378 307.4976 309.1512 310.8626 311.4861 311.5126 311.4832 309.9412 306.4873 303.9323 300.7161 297.648 299.6319 291.8324 290.2568 291.9678 295.3161 297.9353 299.9956 302.9207 305.9994 309.4844 312.7397 314.5713 315.485 315.8679 315.4593 314.3122 313.4143 311.5521 307.8607 305.6473 307.2863 307.7689 307.0687 305.6392 301.9288 293.3812 288.6826 287.3394 289.386 292.5824 294.7114 294.1876 293.4054 293.4602 295.5486 296.403 297.2113 294.692 291.5037 289.0433 287.2539 284.9044 282.0186 278.0441 275.711 274.2375 270.8005 269.8037 267.7016 265.895 263.5477 264.0265 264.2018 263.5767 265.6475 272.9638 276.994 281.7892 286.7372 289.5573 292.5515 294.3744 295.989 297.2864 297.9133 299.5226 303.7317 307.4616 309.6508 311.8337 312.824 312.5269 309.1057 301.1706 302.7778 301.8737 304.5934 306.4153 305.0316 301.4597 296.9058 290.4013 287.0927 290.3134 293.0457 295.9656 298.9969 301.4226 303.7832 305.512 306.6059 303.504 299.4478 292.9468 287.9719 285.3347 281.6632 280.2388 282.4451 288.2649 294.5896 296.2574 296.4044 295.1052 292.7027 288.3774 281.4787 287.2684 292.0069 296.869 298.2107 298.9776 299.2357 299.7653 300.9894 302.3527 304.1509 306.0102 308.6809 307.8713 306.461 306.069 307.0199 308.7647 310.2668 311.037 310.0886 304.5242 304.4995 303.7098 304.5916 304.5161 304.2078 303.5029 302.4127 300.6678 298.9496 299.5254 299.3401 297.7598 296.3004 294.561 292.8566 291.0783 289.3 287.3239 286.8419 285.6267 284.6629 283.8101 283.2199 283.3434 282.5965 281.3145 275.1772 270.5565 265.6423 264.2142 261.2119 256.5251 255.7871 253.7717 250.9927 248.7878 248.834 248.7895 248.6416 247.8629 250.8726 252.398 249.1783 248.7838 249.5096 249.5738 249.2509 248.5086 248.1187 248.4489 249.3646 249.5547 248.6402 248.9866 249.2243 248.5812 248.0473 247.8798 247.8284 248.0678 247.9622 248.1988 252.8461 256.4987 258.4635 258.5066 258.3477 257.9273 257.2881 256.8979 255.3348 251.9699 250.3161 250.1973 250.0951 250.1053 250.3348 248.084 247.4509 246.8397 245.9457 245.7117 245.6862 245.8696 246.0066 246.0339 245.8878 246.4382 246.1088 246.1201 246.2203 247.9175 249.347 249.0544 248.1078 246.8422 246.2726 246.4075 246.7088 246.254 246.3516 246.1112 246.0355 246.2051 246.6086 242.6749 245.8332 245.9339 245.8124 247.1937 253.6078 256.8951 258.8693 260.3902 260.8383 260.8986 260.9285 259.6192 259.6194 259.6428 259.7544 259.8522 259.5424 259.6274 258.7226 258.3331 256.1114 258.0943 259.526 261.1389 262.9648 265.3765 267.7625 270.8348 273.6793 271.3878 272.9721 280.5305 281.1031 280.9794 278.9001 273.7578 272.7806 272.3556 272.3719 272.4095 272.822 273.5504 274.2032 274.1766 273.9855 274.0169 272.1297 272.1138 273.6815 276.6894 278.578 280.4436 282.2105 282.8221 283.0943 283.0461 283.5107 283.7022 282.6968 281.3505 280.0735 279.0736 279.4692 279.3328 277.0778 275.0368 272.8765 269.4421 263.1685 259.1239 263.5396 266.6407 267.2778 263.3845 264.0102 268.9948 271.7931 274.1199 277.001 278.9252 279.4611 280.1818 281.6154 282.0998 282.1384 281.5046 280.6633 279.5168 277.6788 275.5623 273.6842 275.6092 275.6625 274.9923 273.8471 271.9832 268.4648 263.899 262.552 261.5409 268.4761 269.1624 269.385 268.7513 267.4598 266.4413 266.4908 267.2969 267.703 269.7986 276.1126 278.7011 279.863 281.4307 283.6072 285.137 286.4578 287.6049 289.2952 291.5882 292.305 293.8242 294.9933 296.3464 297.3434 297.2952 296.2297 294.9536 292.4514 291.4021 291.0972 291.756 292.1585 292.9731 293.7086 293.8921 293.636 293.7586 293.4826 293.1192 294.4507 295.456 296.4313 297.4563 297.7208 296.5012 294.2732 292.8989 291.2902 289.2748 288.1848 286.8577 285.3902 283.358 278.2638 266.3029 263.4629 264.2111 264.3645 266.1572 269.9158 272.0242 273.8008 275.2437 278.7141 280.4898 282.2622 283.6414 -9999 +-9999 -9999 303.7983 306.5027 309.2956 311.5254 311.4792 311.3146 310.5796 309.1956 305.5692 294.6544 290.1858 294.4912 298.5716 301.1324 303.8895 306.4436 308.5057 309.8773 310.916 309.3589 308.3144 307.8967 307.0556 304.7766 302.0447 299.5473 297.2687 304.22 307.723 312.4215 314.1567 315.0414 315.6698 315.699 317.7261 319.1755 318.0919 317.466 317.3988 317.2433 316.2321 313.093 312.0006 311.2812 310.079 306.313 303.605 300.7723 298.081 295.1313 290.8656 286.9972 283.0893 279.5117 271.7729 267.651 275.3938 288.0477 294.9167 297.6534 299.4384 299.8294 297.87 297.9558 297.7664 296.1676 292.9286 292.0816 293.6805 295.7444 297.6553 299.9098 304.7993 306.3156 308.4228 309.7057 309.9529 311.0301 311.4162 310.415 308.2494 302.2909 300.8083 300.5591 297.043 302.1049 303.4818 305.5898 307.1286 309.4553 312.3134 312.6198 313.3723 312.387 309.5913 306.461 301.6295 301.9935 303.3429 298.1294 295.32 292.0873 293.7205 298.1198 299.8356 302.0912 305.0463 308.3129 311.8303 314.5898 316.4548 318.8013 318.0998 316.262 314.6744 313.0949 310.8795 306.2468 306.8525 306.2674 305.4158 304.0119 301.2546 294.7715 290.1831 288.8278 290.9707 294.0923 295.6102 296.1451 295.2848 294.8913 295.2343 295.0519 293.5027 290.4939 287.3311 283.4347 281.7361 279.0364 273.8805 272.487 275.8649 276.1017 272.2352 269.3095 267.5184 265.33 264.3321 267.5742 268.5694 265.2695 264.3452 267.7823 272.0549 277.2251 279.5118 284.9933 288.9008 291.5475 290.553 290.0621 297.6732 301.7008 304.9098 307.5456 309.6607 312.0379 313.0145 313.7294 312.9405 308.5536 307.0802 305.8567 306.2381 307.3535 306.7234 304.56 299.9111 294.3272 291.5913 290.2689 289.2974 294.3531 298.2288 300.5545 303.0078 305.3127 306.3834 303.6777 299.8027 293.4088 288.1467 285.633 287.4496 287.5193 290.2123 292.3537 297.3695 298.6699 298.2418 295.773 293.2575 288.8931 284.2048 288.1762 291.2629 296.6294 297.3719 297.5297 297.4139 297.8418 299.3316 301.333 303.2813 304.8528 308.1325 308.9996 309.0565 307.9481 308.018 309.428 311.0837 311.8706 311.743 307.1898 306.5662 308.4878 308.9052 308.8911 308.9505 308.1005 307.0744 304.7754 300.6144 300.4572 299.5578 297.3425 295.6472 294.4529 293.2889 292.51 290.6564 287.6336 286.1202 284.6485 282.9083 281.2293 279.8231 281.6139 281.6435 280.2993 275.6221 271.7063 270.9627 266.3797 261.9059 256.5802 253.365 252.556 254.2082 252.819 248.7466 248.5774 248.3444 248.35 252.1916 255.619 255.1947 254.7553 260.0905 261.1725 258.8216 255.9049 255.2845 255.0655 255.9773 254.5129 251.2021 250.2909 250.9818 250.9693 250.9494 253.3019 254.0666 249.7204 248.1532 249.0701 253.8271 256.9577 256.8352 256.8881 255.9692 255.8475 254.8011 254.5333 253.6507 251.6546 250.4721 250.5356 250.3531 250.4589 250.5083 250.7163 251.5438 251.4324 246.2779 245.9083 245.905 245.8862 245.9601 246.2753 246.4035 246.3528 246.119 246.99 246.4299 247.1617 247.4326 248.4439 248.2224 246.3672 246.2641 246.7631 246.3493 246.2299 246.0789 246.0153 245.9637 246.0733 246.4981 245.8172 242.6595 245.9422 245.7452 247.3787 254.1694 256.8204 258.173 259.2413 259.6418 260.2321 260.1611 259.7741 259.2786 259.1095 258.9377 258.4545 257.4006 257.2854 256.7308 254.888 255.1152 257.078 259.526 261.1389 262.9648 265.3765 267.7625 270.8348 273.6793 271.3878 272.9721 280.5305 281.1031 280.9794 278.9001 273.7578 272.7806 272.3556 272.3719 272.4095 272.822 273.5504 274.2032 274.1766 273.9855 274.0169 272.1297 272.1138 273.6815 276.6894 278.578 280.4436 282.2105 282.8221 283.0943 283.0461 283.5107 283.7022 282.8151 280.9847 279.2816 278.182 276.3009 276.7026 275.055 273.7817 271.8091 269.3604 266.0168 259.665 261.7174 264.6053 262.888 267.6423 272.405 274.4197 275.4103 277.7095 279.3749 280.4895 280.8915 280.6992 280.574 279.9682 279.464 277.95 277.2899 277.1465 275.847 273.8633 271.1406 272.7017 272.5587 271.8301 270.6731 268.6153 265.5337 262.204 261.0949 263.1286 264.4663 264.998 265.278 265.7259 267.4579 268.2431 270.8095 273.4559 274.7772 278.1914 279.8134 281.8335 283.0678 283.914 284.9382 285.8601 286.9573 288.1113 289.7382 293.225 294.0316 294.6106 295.1125 295.6356 296.2555 296.4953 295.7059 294.2793 291.1282 289.4846 289.0424 289.7286 290.1694 291.1555 291.7736 291.596 290.9456 290.5783 291.0835 292.0836 293.3046 294.2412 295.034 296.3871 296.8803 296.227 293.9302 292.6521 291.0919 289.9575 288.7511 287.2748 285.5446 283.3234 278.5931 268.1034 264.4766 264.0813 264.4647 266.004 269.2707 270.9088 272.2929 274.1559 277.7872 280.1641 281.9939 283.5666 -9999 +-9999 -9999 301.6586 304.769 307.7649 311.5254 311.4792 311.3146 310.5796 309.1956 301.2395 294.6544 290.1858 294.4912 298.5716 301.1324 303.8895 306.4436 308.5057 309.8773 310.916 309.3589 308.3144 307.8967 307.0556 304.7766 302.0447 299.5473 297.2687 304.22 307.723 309.8521 310.3008 310.5573 312.4304 315.1592 317.2498 317.9947 315.1068 313.2105 313.3716 311.5935 310.5447 308.5853 306.4782 307.4972 306.6898 304.9408 303.4803 301.8283 300.0952 296.6211 291.9026 287.5464 283.8005 280.1974 271.7505 267.961 274.4012 286.4983 290.9429 294.9246 298.6501 299.8603 300.4527 300.4508 299.0692 297.7036 293.9937 293.8696 294.6048 295.6125 296.6589 297.7927 301.3999 304.2422 306.5954 308.7415 310.4447 311.3804 312.3423 311.9487 309.8373 303.6949 304.309 303.4914 299.4532 299.7676 304.0871 307.4441 309.3689 310.5868 312.761 313.0428 313.5251 312.8554 311.0128 307.8848 305.7115 308.6185 308.9147 304.4287 302.6918 297.8526 293.2813 297.6235 300.6417 303.3228 306.4368 308.7161 312.1453 314.6049 316.9479 318.9991 319.0328 317.2109 315.4056 314.1464 312.6199 306.7178 305.4665 304.3384 302.2851 301.2376 298.45 294.5337 291.7157 290.2783 294.8361 297.4374 297.8539 298.6235 297.8885 297.0888 294.6852 290.1235 286.7838 284.6719 281.1133 277.9667 278.1699 276.8087 281.5842 285.0653 286.1292 283.7611 276.8279 270.6139 267.6271 264.8351 265.0056 270.2333 271.4164 269.9258 268.4017 266.758 267.6148 271.1342 276.4417 280.594 283.6196 283.5097 288.7061 293.6634 299.1189 301.3072 304.2534 306.5337 308.785 310.3094 312.4254 313.4068 313.8256 312.5529 310.6183 309.0193 308.4291 308.4349 307.8928 305.9977 302.0254 297.58 295.5248 293.8637 292.4289 292.2952 296.1542 299.865 302.4986 304.291 305.5667 303.9661 300.9188 297.4811 292.1616 290.7154 293.6484 291.0598 295.2127 295.3615 299.1512 299.3833 298.0327 295.6924 292.472 287.8005 286.0952 288.7237 291.9846 295.1023 295.403 295.3764 295.3199 296.075 297.5928 299.6581 301.6136 303.5086 306.5901 308.0772 309.3624 309.4614 309.4776 310.0358 311.662 312.376 312.7925 308.3907 308.9955 310.851 311.9475 312.4546 312.7357 312.1136 310.2105 307.648 302.7924 300.9397 299.014 296.8758 292.8014 290.1708 289.9919 290.3525 289.2218 285.9173 283.8849 282.007 279.7405 276.8765 277.9352 279.9947 280.325 279.4394 276.0703 274.2083 267.8552 267.4939 265.7588 264.0492 261.5188 258.7601 257.5604 254.9476 250.5604 248.6888 247.9807 248.4747 252.8559 257.1696 260.4016 262.6353 267.2942 269.6867 270.0492 267.8497 265.7755 262.3919 261.1176 260.4605 256.8289 253.0927 252.3458 255.0767 257.7155 259.1011 259.5179 254.4165 248.5373 250.2717 255.734 256.6129 255.5586 255.0755 254.8558 254.2173 253.8294 253.2576 253.0799 253.246 252.5198 253.3242 254.4969 255.4449 256.865 257.683 259.8297 259.4851 250.5538 246.5931 246.397 246.1858 246.0594 246.2686 246.2283 246.2453 247.4591 247.6139 247.548 247.197 247.4362 247.7775 248.2224 246.3672 246.2641 246.7631 246.3493 246.2299 246.0789 246.0153 245.9637 246.0733 246.4981 245.8172 242.6595 245.9422 245.7452 247.3787 254.1694 256.8204 258.173 259.2413 259.6418 260.2321 260.1611 259.7741 259.2786 259.1095 258.9377 258.4545 257.4006 257.2854 256.7308 254.888 255.1152 257.078 258.9572 260.7139 262.8367 265.1873 267.5281 270.9667 275.2998 276.5135 273.3214 274.8562 280.8946 280.7788 279.9522 278.9494 272.4716 271.6218 271.8679 271.9895 272.2718 273.1128 273.5849 273.6283 273.4962 271.9134 268.8583 270.183 273.2342 275.7412 277.7628 279.8311 281.6166 281.7163 280.3634 281.5441 283.5948 283.9517 282.9071 280.3397 277.4359 275.5262 273.8648 273.6983 273.4889 272.0589 270.1299 267.9004 265.3698 258.418 258.4397 259.4582 264.376 273.1349 276.7194 277.825 278.1143 278.7245 280.0146 281.1312 281.3869 280.4858 278.0284 277.001 276.0161 274.4698 274.0296 273.7427 272.5754 271.2792 269.126 268.593 268.5633 267.9366 266.3442 263.8639 261.6232 261.4989 262.2739 262.7992 263.206 265.026 266.1113 267.3869 270.0992 272.5281 274.725 276.779 278.6912 281.6433 282.1776 283.4453 284.9518 285.7939 285.932 285.526 286.3661 287.3372 290.8516 292.0859 293.0452 293.4761 294.0293 294.5853 295.3954 295.674 295.0485 293.0687 290.2884 286.9941 286.2502 286.6138 287.0994 288.575 289.4408 289.5266 288.9118 289.2561 289.8267 290.7175 291.7936 292.8966 294.2994 295.5495 296.0592 295.4987 292.5252 290.1968 288.2441 287.9527 287.357 286.3135 283.8929 280.6889 276.9886 267.7855 264.3352 263.6802 264.8402 266.8409 268.6803 270.2282 271.5027 273.1388 277.4352 279.5101 281.4868 282.9261 -9999 +-9999 -9999 301.6586 304.769 307.7649 308.8715 308.385 307.62 307.1163 305.8846 299.5862 293.9931 289.3744 291.4048 296.2906 299.2113 301.9167 304.1844 306.1549 308.6558 309.0193 306.8967 305.5975 304.2817 303.2377 300.6589 298.7024 296.103 302.4443 302.3479 304.4908 306.9499 309.7216 311.8463 313.6768 315.5242 316.2286 315.7134 310.5851 308.2922 309.8525 307.7335 302.7877 303.9607 302.552 304.4756 302.2097 301.7877 301.1891 301.7621 299.7959 296.9077 293.0822 288.0299 282.2018 277.3836 271.821 267.8241 272.2552 284.8807 288.5284 291.4707 296.5398 299.4507 301.3611 302.6513 300.764 299.344 296.1971 296.32 298.5322 299.1549 300.0523 300.3064 302.6396 302.0424 304.6556 306.8756 309.1361 311.0864 312.4046 312.371 310.4605 307.7461 307.2631 306.4196 304.4544 300.1789 304.1965 309.0013 312.0994 314.086 314.3918 314.162 313.6393 312.7482 311.7008 309.6917 309.982 312.325 313.6397 309.2587 305.3123 299.3104 294.2217 298.2943 301.5929 304.2415 306.6445 308.2029 311.689 313.5729 315.4328 317.4769 317.8817 316.9531 315.7454 314.5069 312.8324 306.9791 304.8073 302.895 300.0809 298.045 295.5443 293.3218 291.5973 289.6307 296.2646 299.7407 301.4372 301.278 300.3127 297.2841 293.0089 289.5773 286.9587 283.7282 286.1564 283.8221 282.1184 284.4954 287.1366 289.4276 291.2954 289.7469 279.4845 271.5285 268.6035 265.6775 266.4003 270.6421 274.2446 273.95 273.2138 269.1066 267.058 269.4784 273.1989 277.3579 281.3195 285.0311 289.0121 293.2439 299.8868 301.4749 302.559 304.5138 306.4507 309.036 310.7852 313.074 314.2078 313.7624 312.9218 311.3396 310.2954 309.7194 308.4256 306.3603 302.248 298.5617 298.5757 296.6829 295.5882 293.5221 294.3674 297.6196 300.5724 303.1217 304.1954 304.991 302.549 299.8826 297.6822 295.1468 296.6595 295.5662 297.3811 298.8051 299.5377 298.9002 297.4421 294.8399 291.3493 287.0527 286.2652 288.2383 290.8922 292.4034 292.5217 292.684 293.2779 294.1281 295.5214 297.5661 299.8923 301.6717 304.7772 306.72 308.5586 309.8507 310.4111 311.5292 312.5075 312.591 314.4217 313.3928 313.4874 313.5306 314.4099 315.1382 315.4911 314.1044 311.6665 308.8326 303.9779 300.2741 298.0716 295.7271 293.1986 290.1098 285.5024 284.0862 285.6223 282.9955 281.449 279.0812 276.2288 273.2646 277.3437 278.5788 278.9344 278.1074 275.2228 273.6767 271.6495 269.53 268.0211 265.9062 263.5355 261.5237 259.2456 255.6004 250.8289 248.9423 248.8315 250.3817 255.4862 260.9999 264.9445 267.517 271.1881 272.8798 274.3024 273.8831 271.8908 268.3459 266.7672 264.9723 260.8187 255.2032 254.4231 255.7603 260.1557 261.6025 262.8432 260.3132 248.5373 250.2717 255.734 256.6129 255.5586 255.0755 254.8558 254.2173 253.8294 253.2576 253.0799 253.246 252.5198 253.3242 254.4969 255.4449 256.865 257.683 259.8297 259.4851 250.5538 246.5931 246.397 246.1858 246.0594 246.2686 246.2283 246.2453 247.4591 247.6139 247.548 247.197 247.4362 247.7775 248.1941 246.4786 246.1062 246.0333 245.9624 246.0325 245.8966 245.9047 246.153 246.2418 246.2187 246.2645 246.2886 245.1397 245.9354 245.8321 249.3283 252.0304 255.7226 257.2191 257.8933 258.6296 258.5728 257.3603 257.2894 257.3638 256.4789 255.9196 255.3808 254.9543 254.9547 253.3041 254.6124 256.6993 258.6824 260.3121 262.2288 264.4188 266.8952 268.8515 272.228 273.3098 272.6469 275.2054 276.1425 281.0633 280.935 280.2192 273.2001 268.6096 268.7732 272.1227 272.1889 272.8409 273.1993 273.1857 273.1779 268.9373 266.8302 268.913 272.4819 274.524 277.2606 278.514 278.109 277.4038 277.7195 282.3292 284.312 284.0217 283.2345 279.2236 276.0175 273.4412 271.609 271.3792 271.8935 270.8899 268.8177 266.6311 263.2551 257.3665 256.0525 259.2943 264.9066 274.439 276.8206 277.8913 277.8715 277.6651 278.4369 280.0393 280.0934 278.2198 275.1761 273.5776 272.6376 270.861 269.8621 269.0464 268.298 267.8919 267.1344 265.1903 264.0164 261.9217 261.3026 260.1172 261.0204 261.2334 262.0644 262.6655 265.2331 265.7274 266.2938 267.4905 270.6172 273.5714 275.8647 277.8015 279.6909 281.7343 282.4645 283.3594 284.2013 284.8554 284.7923 284.2219 285.1938 286.6452 289.118 290.3901 291.2432 292.4069 293.8127 294.499 294.8775 295.0079 294.6578 292.8618 291.0595 287.43 283.9366 282.9948 283.4212 284.7387 286.6081 287.7639 287.2029 287.4751 288.7903 290.0892 290.9949 292.2143 293.4951 294.1622 294.7205 294.8606 292.2297 289.7589 286.7307 284.9644 283.2961 283.9503 282.3138 278.0959 274.3276 268.0605 264.6609 262.8901 264.6704 265.545 268.032 269.7297 270.8204 272.7863 277.6985 279.3171 280.7198 281.7104 -9999 +-9999 -9999 301.5571 304.1 307.4258 306.3622 305.744 304.6461 303.6323 302.7789 299.2847 293.3045 287.5824 289.3587 294.2178 297.8438 300.3951 302.0886 303.7065 307.3182 307.4404 305.754 303.2541 300.6993 298.2623 294.4896 296.0708 300.8791 307.0314 307.9856 307.4815 306.55 307.8757 309.9683 312.6737 314.9127 314.6528 311.2371 308.6621 304.244 304.535 304.4597 300.8474 297.2003 300.8992 302.5335 297.7266 297.1373 300.2814 301.2262 299.0618 295.3492 289.1602 281.8834 274.6854 269.5842 269.0727 271.6358 277.3764 289.5298 294.4675 294.7211 296.6145 298.9866 301.0252 303.27 303.1407 301.5715 299.295 298.2229 300.4459 301.9757 302.6866 303.889 306.0227 306.9169 307.054 308.9143 309.5205 310.9132 313.028 313.2692 312.9543 311.5345 310.2625 309.2122 307.8526 302.0089 303.8759 308.8148 311.9697 314.6582 315.9976 315.507 314.2473 313.5775 312.7165 311.9796 310.3944 313.1577 314.659 313.5564 308.5719 300.1554 294.3289 298.5617 301.0657 303.78 305.8024 307.4224 310.0623 311.6857 314.0542 315.7199 316.1272 315.9812 315.5248 314.6284 312.8945 306.3304 304.875 301.334 300.8416 300.4215 298.8639 295.8479 291.8438 293.7386 300.0571 300.6199 302.507 303.1703 301.1501 298.5161 295.2672 293.856 293.4411 292.1145 291.2588 290.7488 289.5916 289.6957 291.8592 293.5717 293.0821 291.4033 280.0233 272.4615 268.2317 266.5278 273.155 276.7561 278.2666 277.5458 275.9344 274.8488 273.4544 268.0269 271.4641 276.3132 281.022 284.1499 287.0193 291.449 298.3383 299.4193 300.8289 302.5935 304.7846 306.9697 308.9343 312.0956 313.4529 312.4959 312.5742 311.814 311.3238 310.0779 307.6029 305.1078 302.9199 301.3398 302.0451 300.4659 298.9698 298.1517 296.2743 296.0022 297.6338 301.3293 303.5886 305.829 304.9269 303.0331 301.2666 299.6014 299.4982 298.7412 299.3893 300.7277 299.5419 297.7865 296.0268 293.6975 290.802 287.924 286.7879 287.1465 288.0786 290.2648 291.3122 292.3117 292.8595 293.2628 293.9708 295.2807 297.4965 299.5381 303.1214 305.0376 306.9156 309.006 310.9135 312.4504 312.9544 314.4594 315.5344 316.3237 316.4244 316.4702 316.8235 316.4109 315.6517 313.1573 311.4203 309.0061 304.2536 300.4266 296.2591 291.8273 290.8235 289.588 287.2826 283.3255 278.5486 280.4098 279.1026 277.097 272.5018 272.4389 276.1581 277.0014 277.3262 277.2204 274.4545 273.6767 271.6495 269.53 268.0211 265.9062 263.5355 261.5237 259.2456 255.6004 250.8289 248.9423 248.8315 250.3817 255.4862 260.9999 264.9445 267.517 271.1881 272.8798 274.3024 273.8831 271.8908 268.3459 266.7672 264.9723 260.8187 255.2032 254.4231 255.7603 260.1557 261.6025 262.8432 260.3132 252.1417 249.1502 255.9634 256.1788 254.9126 254.765 254.8685 254.9096 254.5522 254.0758 254.4558 254.9993 256.3047 257.0917 258.2504 260.9862 265.1556 268.1127 271.5981 271.2617 257.8988 250.1941 248.1655 247.6114 247.2769 246.5835 246.489 246.5335 248.0433 247.6656 247.7715 248.1226 247.8666 247.8069 248.2936 246.5281 245.9079 245.9647 245.9537 245.8676 245.9996 248.0945 248.8414 246.3939 245.5354 245.5158 246.0102 242.6566 243.8842 245.9809 245.9334 247.562 250.5944 253.673 253.0577 256.2433 254.8174 255.9788 255.9376 254.8318 253.7786 253.3732 253.221 253.0378 252.6717 252.7764 254.4136 256.2818 257.9109 259.882 261.7054 263.6532 265.5154 267.9792 269.2405 269.7404 269.0104 269.4956 276.1831 277.218 280.8814 280.5901 279.0222 263.607 269.0061 271.7862 272.3941 272.6555 273.0055 273.153 273.2835 269.0146 263.8668 267.7992 271.1591 273.4499 274.4957 274.2592 275.2603 277.0723 279.0805 283.0279 284.4686 283.7684 283.3457 279.5983 276.6397 274.1912 271.3837 270.045 270.3056 270.5376 268.9486 266.7883 262.3901 258.0232 255.5779 256.9176 262.3117 273.6588 276.6498 277.2244 275.612 274.5265 274.8594 276.0231 275.2059 274.1278 271.1485 268.6592 268.5236 267.9842 266.86 265.7401 265.1346 263.946 262.8479 260.344 260.3085 260.0139 260.0997 261.3784 261.6445 261.7769 262.7126 263.8752 267.873 267.9525 268.4803 269.5642 271.0253 273.5872 275.8469 276.5823 278.0117 279.5049 280.1344 280.8669 281.5543 282.9744 283.7256 284.7106 285.3265 285.9556 288.6101 289.7241 291.1482 292.5032 293.481 293.9019 294.3442 294.5881 294.4538 293.6648 292.9461 291.356 286.0838 280.7129 280.3829 281.1155 282.8665 285.1187 285.875 286.2828 287.0995 288.5291 290.1046 291.1312 291.9037 292.7572 293.3688 293.5775 292.4114 290.5548 288.6235 286.3869 282.1178 279.9999 278.7514 277.4178 275.2495 270.1154 266.8291 264.0928 264.0017 264.5735 266.856 268.6266 270.0674 271.8347 276.488 277.8184 279.2888 280.0192 -9999 +-9999 -9999 303.529 306.5496 306.5728 304.7395 303.1841 301.6655 300.5948 299.8773 296.9899 291.1095 286.4108 289.3663 292.9225 294.1779 295.3014 299.3033 301.6591 306.9798 307.2134 304.7216 302.6384 300.1691 296.9975 293.6545 299.7711 304.3715 309.8828 311.1008 310.9316 310.6812 311.1846 311.2932 312.4843 314.6906 313.3792 308.6186 306.8259 304.5887 300.7316 298.3776 297.6708 294.5227 298.9121 300.8178 295.3217 293.9873 298.636 298.3777 291.6578 282.9814 275.1849 269.6827 268.3834 271.6139 271.9376 273.8886 283.0621 291.8098 296.0995 297.2526 297.4892 298.5602 302.2138 303.198 303.7368 303.3595 302.6046 301.6759 302.4634 303.7451 304.4291 305.7615 307.6257 309.0973 309.7214 311.0885 312.4105 313.772 314.7906 315.5682 314.8156 314.2963 313.0241 312.501 311.4284 304.944 305.2398 307.2397 309.6205 312.321 315.3221 315.8196 315.5517 314.7391 313.7914 312.53 311.5207 313.1154 314.4539 315.5766 312.2343 302.8482 295.0865 297.2865 299.987 301.3514 303.2889 304.0666 307.3741 310.0976 312.7098 314.0176 314.5541 314.876 314.8878 314.6908 313.1449 306.2909 306.2626 305.4752 304.693 304.1183 301.8553 297.1523 293.1501 298.1074 303.832 303.9284 304.3645 304.3585 302.3412 300.1929 298.9585 298.383 297.3744 297.2953 297.48 297.4367 296.1557 295.7202 295.6956 295.373 294.5193 289.8186 276.7552 269.5804 270.5456 275.202 279.6235 282.2029 283.7008 284.6423 284.0296 280.1541 278.5883 271.2809 269.6661 270.2555 277.1421 281.905 285.2511 288.9017 294.449 296.0269 298.3479 300.5042 302.717 304.7802 308.2413 310.0931 311.0703 309.9727 310.3706 310.8362 311.0702 310.4795 308.2558 305.2158 304.9509 305.7363 305.631 304.1 302.837 301.5841 300.8326 298.8922 297.5605 300.4838 302.5125 306.1957 306.9045 306.5757 304.8278 302.8968 302.4387 301.8731 301.8136 302.0352 299.5004 297.4826 295.3976 293.569 291.28 288.545 287.2706 286.9522 288.7374 294.3134 295.7777 296.9285 297.3177 296.3761 295.5987 295.7658 296.4379 298.2871 302.1403 303.9382 305.8542 308.1355 310.6751 312.4602 312.9544 314.4594 315.5344 316.3237 316.4244 316.4702 316.8235 316.4109 315.6517 313.1573 311.4203 309.0061 304.2536 300.4266 296.2591 291.8273 290.8235 289.588 287.2826 283.3255 278.5486 280.4098 279.1026 277.097 272.5018 272.4389 276.1581 277.0014 277.3262 277.2204 274.4545 273.0456 271.5348 270.3092 268.077 265.7962 263.8717 261.7805 259.4288 256.5429 248.8982 248.0399 249.008 253.8441 258.9448 263.3955 267.4917 270.222 274.6216 275.5526 276.2295 276.4899 275.911 274.0557 272.2445 268.4712 263.0718 258.3642 257.1695 255.6502 260.9478 263.36 263.9543 261.5871 255.3401 249.345 255.5656 255.3695 255.0723 255.1501 255.3261 255.3054 255.379 255.5809 255.9333 257.8557 259.5055 260.7613 263.9152 268.4618 270.1792 275.3635 278.9196 281.0671 264.2772 255.9184 250.6284 249.1678 248.6461 248.3564 247.2199 247.1709 247.9373 247.467 247.7281 248.7813 249.0587 248.3163 248.8893 248.1913 246.2157 246.3701 246.3388 246.2005 247.9745 251.7976 253.3389 251.8208 246.2596 245.2889 245.5124 246.635 242.5294 244.4384 245.854 246.4863 247.8669 249.5637 251.4015 252.4063 254.6225 254.2453 253.5672 252.7214 252.1605 251.5404 250.7918 250.5875 251.1167 252.6722 254.131 255.9008 257.5125 259.1456 260.7787 262.4634 264.0614 265.2558 266.4121 265.1939 264.0945 266.0225 266.7999 276.5497 278.3704 280.0589 278.7433 267.7468 271.7221 271.6895 272.059 272.4021 272.7183 272.9344 272.8296 267.4442 264.633 267.7981 270.1716 271.3351 271.4344 272.2374 275.0735 277.6179 279.6549 283.5806 285.2051 285.7245 284.2111 281.285 278.6586 275.8332 273.1439 271.293 267.6238 268.016 268.1476 265.9809 260.972 257.1461 255.6575 254.6676 258.5466 270.3569 273.9149 275.2121 273.228 271.0412 271.0097 270.0688 268.3873 267.9004 265.0231 264.8196 263.7995 262.5995 260.4532 261.078 258.1402 258.419 259.187 260.0239 261.5109 263.0814 265.2723 266.1343 266.85 266.5844 263.9138 263.5487 267.4973 267.8316 268.4119 269.5646 270.8448 271.8257 272.9203 275.2446 276.7269 278.3608 279.2126 281.1005 283.6284 285.6624 287.3949 287.5161 287.2017 287.2584 289.1868 289.9179 290.92 291.9066 292.9767 293.3865 293.7934 294.1648 294.0677 293.7385 293.3473 292.2349 288.7797 283.441 278.7185 279.1012 280.4182 283.0775 284.3548 284.9504 286.2589 287.5468 288.9084 290.2431 290.7241 291.3353 292.3464 293.3631 292.2864 290.5585 288.2004 285.3058 281.3451 278.1323 274.5134 273.5563 271.644 269.7849 267.0254 264.3804 262.8958 263.4639 264.5598 266.5757 268.2905 270.3776 273.8343 276.197 277.2073 277.1061 -9999 +-9999 -9999 306.4337 307.2793 305.4739 303.0397 300.9893 299.1072 297.1096 297.2474 294.1881 288.6531 285.6228 289.1518 293.7992 297.7874 300.5119 302.5077 304.5828 307.3943 306.7003 304.2557 301.6628 300.039 297.27 291.1969 297.3937 303.45 309.0902 310.6677 311.8922 312.537 313.6053 314.5772 315.2142 314.8062 312.8266 307.556 304.8196 300.2837 297.8401 296.598 293.4052 290.0473 294.4611 296.0893 293.9734 290.0679 293.4019 287.3115 276.7334 269.8263 268.3942 271.3347 271.6177 273.2873 274.672 279.9547 288.1318 293.1517 296.6471 297.8315 298.7734 298.9399 301.2988 302.6557 303.6907 304.4763 304.2689 303.9343 304.4802 304.7772 305.0346 306.4501 307.4969 308.803 310.3771 312.5054 313.9443 315.313 316.1723 316.8062 317.0519 316.2081 315.6096 314.8128 313.4587 311.4754 307.7447 308.3641 309.3479 310.073 313.9167 315.3331 316.33 315.7124 314.9192 314.2018 313.5328 312.6045 312.5708 313.0883 311.6876 305.6487 297.2635 295.7867 300.0252 301.9176 303.9514 305.9688 309.4131 309.019 310.6987 312.544 313.3822 314.0127 314.6056 314.4915 313.1063 308.8792 310.0125 308.6577 306.9989 306.1931 303.131 297.4015 293.4991 299.0237 305.3967 306.4926 306.4212 305.6023 303.9762 302.5085 301.675 301.4048 300.9608 301.9407 302.999 304.028 304.0086 302.8489 298.104 296.4336 292.9088 288.7171 274.5225 271.9661 277.8619 282.5823 286.5167 288.6625 290.4931 292.2076 292.7146 287.3596 284.7924 281.5389 276.2304 272.8405 271.5988 273.2398 281.0304 284.8571 290.1833 293.5821 295.8058 298.5128 300.9508 303.3048 305.3237 307.5628 307.7069 308.1989 308.6846 309.7454 310.659 310.6289 308.9957 308.4116 308.9997 310.4946 308.7892 307.2516 306.1299 304.239 302.9655 301.0061 299.0298 299.8153 302.2044 306.2256 307.5504 306.5757 304.8278 302.8968 302.4387 301.8731 301.8136 302.0352 299.5004 297.4826 295.3976 293.569 291.28 288.545 287.2706 286.9522 288.7374 294.3134 295.7777 296.9285 297.3177 296.3761 295.5987 295.7658 296.4379 298.2871 302.1403 303.9382 305.8542 308.1355 310.6751 312.4602 313.7537 314.8209 316.4597 317.6721 318.1724 318.024 317.229 316.1743 314.9824 311.8888 307.5374 306.7032 302.3165 298.1144 293.4517 290.5475 288.1386 284.7924 285.0355 282.5056 279.2918 277.4789 275.9315 273.734 269.0495 271.2891 274.5644 275.3889 275.5904 275.1589 273.403 272.1881 270.8314 269.5334 267.3506 265.3859 262.9495 260.8604 259.0637 253.711 249.9722 249.2171 250.0619 253.6971 257.9785 262.1989 265.934 269.4416 275.1419 276.5186 277.3646 278.1111 278.6429 277.6391 274.9356 270.6388 265.7649 260.4078 259.1733 258.1125 260.4689 262.8564 263.2029 260.6569 254.3859 249.9621 255.6944 255.6016 255.6761 255.8342 256.0533 255.9696 256.0149 256.0765 256.5089 259.8243 261.4331 262.4963 266.2307 269.3297 272.6531 276.2057 279.3604 281.3088 268.6488 260.4565 255.1824 252.1703 250.2768 249.2343 248.6459 247.8622 248.0737 248.7341 248.3789 248.7692 249.4555 248.7998 249.4648 249.2822 247.9954 247.665 247.2655 248.7156 250.5781 252.5381 254.3301 253.9185 247.5219 245.4491 245.4774 246.2282 246.38 242.6018 245.4637 247.0512 250.9463 248.5132 248.8919 251.539 252.8212 252.7448 252.2823 251.6872 251.1182 250.2796 249.5429 249.3333 250.2103 252.8159 254.096 255.3254 256.718 258.1962 259.6973 261.0944 261.9599 262.6342 263.2462 261.6761 261.0736 259.8866 259.0648 266.354 274.0557 279.1082 279.3524 271.83 271.9826 271.8518 271.8918 271.9958 272.4974 272.7222 269.0616 263.967 265.2035 268.0345 268.9807 269.024 270.1393 272.1088 274.8418 278.0027 280.5477 285.2663 286.9962 287.8814 286.6451 284.5351 281.9009 278.4978 275.8744 273.9326 268.0519 266.869 266.2506 265.2285 261.5586 257.4368 256.2286 254.6487 255.5263 266.4853 269.102 270.5858 269.8395 267.2178 266.4997 266.5009 264.1689 262.7221 259.9534 260.2321 257.1167 257.5335 258.3907 258.8073 259.9353 261.1995 262.0843 262.7384 263.7813 266.9327 269.3603 270.3427 271.6728 272.1021 271.8687 269.7483 265.7693 267.9874 269.5764 270.7201 271.8282 272.3319 274.255 278.8114 281.9204 283.3896 283.3986 284.081 285.6158 287.3645 288.9395 289.8242 289.4637 289.2961 290.2651 291.1233 291.9168 292.5082 292.9812 293.245 293.6858 293.8564 293.7756 293.5324 293.4261 292.6203 290.1726 286.1367 281.8522 277.703 278.7502 281.5635 282.9943 284.4556 285.6412 286.8209 287.747 288.4521 289.5825 290.6065 291.2322 292.7525 292.3849 290.1351 288.0694 286.6188 283.5848 278.9601 276.7642 275.02 272.2047 270.7968 268.9416 265.5736 263.345 262.4668 263.8546 265.7742 267.5586 270.887 272.6271 274.3002 273.8698 273.3448 -9999 +-9999 -9999 303.8003 304.4064 304.8716 304.0092 301.821 297.9704 293.54 292.7709 293.6281 286.1771 285.8054 290.5645 294.435 297.0637 299.4154 301.9114 304.075 306.9674 306.0565 303.2473 299.9718 295.3488 294.9031 290.1494 295.8409 300.2031 305.984 308.1619 310.1797 312.1664 314.5354 315.6957 316.3204 315.844 312.957 306.9914 302.7737 299.7752 296.6834 292.1816 290.2185 286.7036 286.4185 288.5417 290.3983 284.5416 281.8175 272.0068 268.6121 270.3164 271.6318 272.4098 273.7646 276.127 279.6793 284.5089 290.3272 293.7988 296.6062 297.952 299.0186 299.2521 300.5612 302.0138 302.4363 303.3922 304.2449 304.1029 303.1172 302.984 303.4594 303.1382 305.8823 307.6972 309.8373 311.5005 312.9508 314.6199 315.8121 316.6166 317.7928 317.966 317.6201 316.9246 315.279 313.336 312.0035 311.2422 312.3466 314.051 313.9022 315.3262 316.6203 316.9094 316.052 314.8381 314.7166 313.7942 312.0716 308.6535 307.98 305.1358 300.425 296.6802 298.8182 300.6798 303.1033 305.5205 310.6969 312.086 312.319 312.1785 313.0633 313.9111 314.4399 314.0788 312.0099 309.8221 311.4466 311.2983 309.5584 307.4725 303.7788 298.3435 294.5417 299.5017 306.0574 308.242 308.7535 307.7707 305.8283 304.9332 305.0195 305.2715 304.7252 304.9517 306.3102 307.2237 306.7868 304.1135 300.4278 296.0434 291.2592 287.1229 274.4046 274.8053 283.9898 290.1742 293.7839 296.0415 297.264 298.8 300.0229 295.1313 292.1616 289.2504 285.3159 280.3959 277.3566 273.6705 275.1561 284.8571 290.1833 293.5821 295.8058 298.5128 300.9508 303.3048 305.3237 307.5628 307.7069 308.1989 308.6846 309.7454 310.659 310.6289 308.9957 308.4116 308.9997 310.4946 308.7892 307.2516 306.1299 304.239 302.9655 301.0061 299.0298 299.8153 302.2044 306.2256 307.5504 308.0321 306.6575 305.1956 304.3771 303.8104 303.4594 303.3126 300.3756 298.5481 296.9173 295.5249 293.4338 289.6982 287.6401 287.3524 288.8728 295.2313 297.8174 299.6976 300.2929 299.8716 298.9257 297.8114 297.9873 298.369 301.8056 303.5309 305.47 307.2226 309.0479 311.1046 312.8047 314.133 316.1424 318.0112 318.2448 317.1596 316.2429 313.3139 312.1107 309.9236 306.9778 302.1409 299.3948 292.9411 288.1273 285.7173 285.0365 281.3673 281.0623 278.4781 276.8465 274.5529 272.6616 271.5688 270.3159 267.8339 271.2484 273.3469 273.4221 273.1255 271.3292 270.5217 269.3159 267.7029 265.925 263.7994 261.463 259.543 257.6536 251.9307 250.1578 249.637 252.2068 255.0285 257.4265 259.2263 263.243 266.9872 273.1464 275.32 276.4396 278.6725 280.2011 278.8332 276.0205 272.9614 269.7118 263.4678 261.4319 260.1993 260.7451 261.8041 261.9076 259.6042 254.3119 250.2084 256.2151 256.5709 256.9711 256.9311 257.0573 256.9963 256.991 257.0349 258.3965 262.1354 263.5581 265.9584 266.884 270.1847 273.4367 277.0014 280.58 282.7772 271.7228 264.7106 259.5704 255.2318 251.708 250.643 249.9439 249.0437 248.666 249.6105 248.5977 248.7447 249.6937 249.7956 250.1714 250.4751 249.4445 248.3843 249.6152 250.7867 252.1969 253.5395 255.4445 256.2386 252.3767 246.5708 245.4885 245.9919 245.9762 246.1734 242.6261 245.0314 246.3958 246.2178 246.1585 247.6018 250.4772 251.2748 250.8416 250.9011 251.1502 249.7792 249.2613 249.2423 250.0323 252.3311 253.5064 254.7574 256.0693 257.6256 258.6615 259.2365 259.6022 259.7379 258.6191 257.5946 256.3918 254.95 254.912 259.5489 266.8508 275.4075 279.151 278.0856 273.7091 272.5214 272.0528 271.9826 272.4023 269.462 265.1125 260.6782 265.5765 265.4118 267.5326 270.8153 272.8045 274.4811 276.6677 279.2915 281.8223 285.6019 287.5703 288.2648 287.9596 286.3841 283.2098 279.9226 278.4425 276.6197 270.8934 266.5504 263.3892 263.4723 261.7338 259.6541 257.4609 254.6499 253.5991 262.379 265.1105 266.0161 265.4777 263.7096 261.4308 260.1947 257.2787 255.3585 257.9391 260.1298 259.4953 259.3562 260.4031 260.951 264.6266 265.843 266.7566 267.3913 264.7672 268.5753 273.0277 275.3276 276.4091 277.34 277.0891 275.8009 267.4561 266.6947 270.8801 273.1797 274.3568 275.1067 276.8457 280.6208 285.1147 286.946 286.1887 286.2588 287.2014 288.1133 288.6501 289.8302 290.6472 291.0646 291.8723 292.6352 293.2224 293.6379 293.6094 293.656 293.6671 293.9493 293.7923 293.4591 293.5319 292.101 290.2798 288.1158 284.3347 280.2047 277.0418 279.6555 282.7812 283.722 284.7128 285.6929 286.5083 287.5548 288.6916 289.9639 290.82 291.9712 292.2952 290.8433 289.1776 286.7498 284.308 281.496 280.4298 278.4196 275.8754 274.9052 271.7569 264.8857 263.1358 263.3706 263.4776 264.2113 266.5629 269.7249 271.4267 272.0257 270.7597 269.2419 -9999 +-9999 -9999 301.0902 302.8871 304.2951 304.1797 301.4934 298.9103 293.3916 289.0138 293.4825 287.6698 283.9914 288.7202 291.4767 294.691 297.9444 300.774 302.2467 305.3604 305.2961 303.0396 299.277 296.0877 291.581 289.4294 293.1547 296.845 302.2329 304.8415 307.2696 310.4191 312.7657 314.1891 314.9035 315.6181 313.8823 307.324 303.1302 299.8694 296.0313 295.97 296.5024 292.8527 287.7454 281.4145 283.6752 280.087 271.6671 268.5994 271.7296 272.3184 274.7065 275.9928 277.0113 280.2551 283.0428 286.5728 290.7387 293.5795 296.2379 297.5147 297.4183 297.682 298.9819 299.1509 300.4955 301.6494 302.3336 300.987 300.642 300.1205 298.3281 302.1141 306.6063 308.9565 310.8245 312.0314 312.3873 312.567 313.9644 315.1339 316.4142 317.1873 318.965 318.6952 317.1514 316.2833 314.8593 313.8285 313.8376 316.0217 315.7891 316.0096 317.2589 317.9247 317.4839 317.4027 316.0937 315.1461 311.1219 308.1877 306.8419 305.2732 302.5737 299.1629 298.6588 300.4307 301.458 306.7278 309.193 310.7058 311.4341 312.1228 313.1095 313.9219 314.3136 313.7142 311.9938 311.2157 312.286 312.6922 310.5248 307.1696 303.2261 298.0674 296.446 300.5081 306.0294 307.7449 309.4048 309.4843 307.8348 308.2341 305.0195 305.2715 304.7252 304.9517 306.3102 307.2237 306.7868 304.1135 300.4278 296.0434 291.2592 287.1229 274.4046 274.8053 283.9898 290.1742 293.7839 296.0415 297.264 298.8 300.0229 295.1313 292.1616 289.2504 285.3159 280.3959 277.3566 273.6705 275.1561 280.924 288.2758 291.6663 294.1368 296.8177 298.6687 300.0717 300.7016 303.6245 305.9674 308.3645 308.8789 309.7106 310.6944 311.4958 310.0469 309.4222 310.9647 312.3525 311.1049 309.6655 306.713 306.1311 303.8801 301.2422 299.8184 300.9642 302.3933 306.2753 307.55 308.1815 307.5467 306.7998 305.9759 305.1523 304.6331 303.8464 301.1535 299.0889 297.3358 296.2055 294.6938 292.009 288.1313 287.7678 288.7586 295.3467 297.9692 300.0815 301.8107 303.0581 302.4929 301.8651 301.3618 300.3846 301.2611 302.9038 304.72 305.5965 306.9015 308.9662 310.8761 312.8783 314.5946 317.7115 317.9129 316.5749 312.9667 309.6959 306.4075 306.024 303.8184 300.1735 296.5628 290.4218 284.128 279.9186 278.4312 276.7056 276.3135 272.8573 270.7957 270.4476 268.291 267.1693 266.5777 265.1646 268.4971 270.2195 270.8629 270.0778 269.0734 268.361 267.222 265.5576 265.0601 263.548 261.2567 258.7933 256.4222 250.8484 248.5472 249.7829 252.123 255.9966 259.1083 260.9928 261.9197 263.9388 269.7617 272.4673 275.8018 279.1918 281.6848 281.3632 279.6594 276.7354 273.7248 267.4017 264.9761 262.1795 261.7492 262.1717 261.8357 258.9688 256.5991 251.2246 257.5357 258.1412 259.0013 259.0245 258.2132 258.3542 258.4907 258.6844 260.4711 264.4564 266.2489 268.5519 270.1195 272.204 274.8924 278.0791 281.5464 281.7815 272.2079 268.0062 261.8596 257.0531 253.9225 252.4173 251.2812 250.3069 249.2947 250.7269 249.5478 249.6409 249.7897 250.208 250.5218 251.3323 250.0219 249.0621 251.463 252.6619 253.8178 255.5114 257.1289 259.2266 257.7744 256.0915 250.4407 253.5201 252.0208 246.1471 246.5447 242.6298 246.4399 246.0073 245.8746 245.7479 246.4635 247.5476 249.0709 249.2912 249.4817 248.1592 248.7571 249.319 249.7175 251.6925 252.4111 253.7226 254.762 256.0926 256.878 257.2327 257.2645 257.2618 254.1526 253.5213 253.0688 259.5747 263.4804 267.0282 270.1624 272.6512 276.0451 278.0436 277.7426 277.8411 273.4395 272.1447 272.1685 267.4687 260.3857 261.3685 263.1071 266.7069 269.5832 271.2486 273.1128 275.4524 278.0733 280.2386 282.0721 284.9442 286.3008 287.6892 287.5807 285.8273 283.5357 281.4745 279.6427 277.7317 272.7867 269.2737 264.6225 262.1207 262.1172 260.2564 258.9385 257.1076 253.7176 257.7964 260.1733 260.5427 259.3712 256.707 255.2652 253.9632 255.2142 259.1527 265.3614 263.8859 265.465 267.7125 268.0511 268.142 269.0293 270.0628 271.7662 272.9298 268.9539 268.535 273.2318 277.0804 278.9377 280.524 280.7325 279.6843 272.23 267.0247 271.1803 273.6511 275.8237 277.3825 278.9104 282.1399 286.5133 288.8746 287.7767 287.0252 286.9063 287.2248 287.985 288.8367 289.9224 290.9301 292.238 292.7895 293.4283 294.0911 294.4405 294.1234 294.3634 294.1338 293.959 293.2123 293.446 291.9377 290.2792 288.6258 286.1646 282.2867 277.8875 277.3273 281.1359 281.9218 283.4266 284.6157 286.0342 287.0725 288.0149 289.1452 290.1618 291.6152 291.6916 290.9669 289.6681 288.1347 285.4514 283.3213 281.4428 280.3443 277.6744 275.0644 272.2265 269.0034 263.0815 263.0192 263.515 263.6125 265.7072 268.0762 269.0168 272.0257 270.7597 269.2419 -9999 +-9999 -9999 299.57 301.2318 302.485 302.4334 300.7337 295.3986 291.2846 285.8837 292.071 290.3523 282.835 285.6197 287.7937 291.1461 294.1734 298.233 301.0154 302.6314 303.6456 302.9737 299.1316 295.077 290.639 287.3875 291.3926 295.4311 301.2086 303.122 305.1188 306.9595 309.7848 311.0854 312.6524 313.8011 313.0226 308.8591 306.6203 303.7853 302.0583 299.9225 299.4626 297.8213 294.023 288.5817 278.4323 274.7432 268.7347 271.9691 271.993 276.2671 278.1849 280.2644 281.3105 281.3786 285.0379 287.6961 291.1253 293.4614 294.6438 295.2066 295.9316 296.9366 295.3312 295.928 298.2889 299.1722 297.9818 297.8947 295.2963 295.3669 298.9719 305.7457 307.4047 309.4712 310.6483 311.0054 310.5497 310.7724 312.5483 313.1628 314.2699 316.2913 316.7736 317.3134 317.683 317.2334 316.5362 316.4268 315.702 317.2165 317.4421 317.517 318.1682 318.7147 318.6221 317.8466 317.604 315.3649 313.0674 311.4501 309.2137 307.3401 303.4137 300.0751 298.6588 300.4307 301.458 306.7278 309.193 310.7058 311.4341 312.1228 313.1095 313.9219 314.3136 313.7142 310.5703 311.2157 312.286 312.6922 310.5248 307.1696 303.2261 298.0674 296.446 300.5081 306.0294 307.7449 309.4048 309.4843 307.8348 308.2341 309.0496 309.1047 308.1939 305.1343 304.9884 304.5973 303.2866 300.9293 298.2453 294.5204 287.7297 282.6693 274.3695 274.4919 283.7807 290.9825 295.7179 299.1374 301.7534 303.8906 305.0702 302.9653 299.4922 294.4337 290.6531 285.5674 281.5668 276.6353 273.9233 278.2007 286.5066 289.6042 291.6261 293.1677 293.8369 297.1465 301.5056 305.5174 309.3454 310.9584 310.3909 310.4382 311.2565 312.0765 311.5343 311.667 312.2688 313.3056 312.5595 310.8145 308.5206 306.6942 304.8479 303.1265 302.1841 302.8637 303.5734 305.9191 306.8253 307.1792 307.0401 306.7728 306.0827 305.0798 303.8064 302.8377 300.7336 299.1227 296.8653 295.378 293.9933 292.3098 289.0378 288.0116 288.7331 294.8563 297.1544 299.1495 301.4565 303.6871 304.9291 305.6734 305.2638 304.2278 302.5944 302.9032 304.217 306.2354 307.3795 308.3272 309.8758 311.9184 313.5687 316.4229 316.5667 315.7249 312.8239 308.6028 303.1908 299.4883 299.6051 297.5433 292.0031 284.0319 278.9399 275.3824 273.2771 271.5059 269.1052 268.9566 267.8501 265.5731 265.3795 262.9987 263.2217 260.3325 263.4226 263.6571 266.9002 266.7291 265.7134 265.9821 264.6864 262.8425 263.9679 262.4949 260.5591 258.2666 255.8993 250.4617 250.1251 250.096 253.4681 255.8797 259.3477 262.4956 264.247 264.7897 268.7909 272.1541 276.5016 279.8457 282.2921 283.0738 282.1419 279.1582 275.6407 269.6212 266.2068 264.5177 261.49 261.9449 261.164 260.936 257.5715 253.5674 259.8047 260.7201 260.8974 259.9254 260.0634 259.7702 260.2628 261.2505 263.4065 266.5878 268.688 271.3502 273.4865 275.1857 276.8861 280.0928 282.7753 283.3716 273.6937 269.3641 262.986 257.331 254.8847 253.1661 252.2944 251.1557 249.9897 251.9314 250.3206 250.0786 250.3714 250.6607 250.936 251.5572 250.9023 250.4103 252.9736 254.5378 255.4385 257.3037 258.9785 259.7406 262.7987 263.3077 256.8077 252.6896 249.6468 246.5161 246.1444 243.9906 242.6446 246.6738 246.5189 246.1436 245.6884 245.931 246.06 246.438 246.9691 246.6476 247.269 248.241 249.2948 250.0959 251.4191 252.7925 253.9819 254.6066 254.9611 255.1607 255.293 253.6069 251.5356 256.1842 259.4899 263.2429 267.213 270.3421 272.6714 274.7621 276.7703 277.4986 276.9194 278.9462 278.8198 276.1649 271.533 265.6465 258.0163 261.3452 265.8368 267.6178 269.5542 271.2484 273.2288 275.8397 278.2247 279.8762 280.8 284.2877 285.9798 286.8842 286.3573 284.6098 283.1004 282.2557 280.8768 279.1065 275.1097 272.681 270.2878 268.4659 267.2798 264.2424 260.1121 257.7348 254.1823 254.3435 255.8815 255.4246 254.1133 253.335 255.1149 261.1757 265.0942 268.2242 271.0799 270.4134 269.0697 270.9533 271.9408 272.7061 273.4088 273.8991 275.0606 275.1382 272.886 267.0036 272.1884 275.4289 278.7073 281.4733 282.529 281.8235 275.9399 268.8781 269.9295 273.3419 275.4605 276.9916 278.3195 281.3676 284.7077 287.5334 286.6418 285.4872 284.7483 285.6683 286.8159 287.8651 289.1757 290.3936 291.8142 292.3756 293.3504 293.7692 294.1372 294.2474 294.6116 294.1338 293.959 293.2123 293.446 291.9377 290.2792 288.6258 286.1646 282.2867 277.8875 277.3273 281.1359 281.9218 283.4266 284.6157 286.0342 287.0725 288.0149 289.1452 290.1618 291.6152 291.6916 290.9669 289.6681 288.1347 285.4514 283.3213 281.4428 280.3443 277.6744 275.0644 272.2265 269.0034 263.0815 263.0192 263.515 263.6125 265.7072 268.0762 269.0168 268.5706 267.3203 264.5274 -9999 +-9999 -9999 298.5852 300.015 301.1235 300.8177 300.3497 298.7787 293.097 285.0715 289.2914 291.681 287.9382 281.1777 285.8914 290.4659 294.2571 297.0485 298.9076 300.8863 301.9928 301.5225 298.3369 293.5718 289.5484 286.0961 289.2738 292.2713 298.4644 302.2135 305.0496 307.9714 310.819 312.1981 312.8319 312.9746 312.2221 308.928 307.2092 305.8904 304.1432 303.8002 302.6885 301.5003 298.2955 294.1635 284.7081 276.4124 268.7539 272.0305 272.0641 276.0062 279.394 282.5201 284.5028 284.0891 285.7431 288.4024 290.9304 292.4326 293.4266 293.0037 294.7824 295.6753 292.9601 293.5196 295.2108 295.7144 294.3273 292.0082 291.3413 296.9195 300.2165 304.4896 306.3748 308.1549 308.016 308.1414 310.5497 310.7724 312.5483 313.1628 314.2699 316.2913 316.7736 317.3134 317.683 317.2334 316.5362 316.4268 315.702 317.2165 317.4421 317.517 318.1682 318.7147 318.6221 317.8466 317.604 315.3649 313.0674 311.4501 309.2137 307.3401 303.4137 300.0751 298.6002 300.7474 302.9375 304.164 305.9682 307.8546 309.7335 311.4402 312.6149 313.6144 314.1242 313.8854 311.6746 311.665 312.4641 311.8932 309.6448 306.7865 302.1273 296.9071 298.9463 303.099 305.0493 306.7296 308.6082 309.7523 309.6908 311.0994 312.4876 312.0339 307.5935 305.6853 303.7925 301.3957 299.5927 297.9618 294.7101 290.151 281.0716 284.6705 279.6566 275.2757 280.4797 287.1788 292.9454 296.6015 300.3102 303.8545 306.7803 309.0996 306.3912 301.107 296.827 292.6706 289.4158 283.2903 274.8127 276.8024 283.2655 286.7555 286.8385 291.8979 295.8252 299.3802 302.5951 306.2191 309.9395 314.1599 312.439 312.52 314.0807 314.0504 312.7401 312.9293 313.3895 313.5882 312.846 311.2613 309.6917 308.2229 306.7442 306.0233 305.004 304.7015 304.838 304.9066 305.3502 305.5304 305.3425 305.3374 304.8533 303.7727 301.9624 301.027 299.2726 297.7558 295.8336 293.0522 291.7487 290.4649 288.8905 288.6473 288.6957 293.3799 295.9271 298.1745 300.5751 302.9741 304.8701 306.1464 307.1228 307.5327 306.1612 305.629 305.1578 306.4367 308.0802 309.4234 310.6002 312.0198 312.8716 314.3965 314.5024 313.8011 311.9116 308.7115 304.4361 299.4144 295.2462 294.2443 285.6571 282.7956 278.5875 275.8928 272.9659 274.9961 275.5856 279.0887 280.5816 279.5133 276.2747 271.7985 266.651 264.1052 261.5067 259.8591 259.5875 261.8993 262.0319 262.9013 262.3553 260.7619 262.0125 260.8948 259.0967 257.7416 255.904 249.8338 250.2832 250.2843 252.6417 256.0984 258.3392 260.752 263.2224 265.2523 270.8389 273.3275 276.0602 279.6631 282.4976 283.9485 283.1974 279.9528 276.114 270.5396 269.528 267.1013 264.1969 262.0258 262.2619 261.0726 258.9057 256.0746 262.7305 263.2901 263.2582 262.7929 262.3051 262.4466 262.8444 264.1717 264.1709 267.3901 270.0862 272.3899 274.8441 277.3373 279.7356 282.8034 284.1961 280.8314 271.4229 268.0872 264.2197 258.6694 255.9693 256.4093 257.7231 255.4715 252.3363 253.5667 251.4429 251.2449 250.9821 251.3284 251.5415 252.0335 252.3193 251.9094 255.3897 256.7875 256.8928 258.5381 260.3248 262.4285 261.2553 261.3562 267.3468 265.0551 260.7622 254.4866 247.5604 246.1781 243.1215 243.1967 246.7941 246.6548 246.1043 245.8676 245.6963 245.8036 246.0285 246.2444 246.1108 246.5176 247.3375 249.0142 250.3414 251.5163 252.4196 253.0121 253.0527 253.0113 252.2321 250.4239 254.6519 258.6248 261.8744 265.5284 267.5309 268.8969 270.5519 272.3932 274.0442 276.0867 276.1685 275.5325 278.402 275.4549 270.9244 264.9464 256.9799 261.4393 266.498 268.361 269.7772 271.4711 273.0957 275.024 276.3393 276.9691 278.5333 283.936 285.2962 285.7904 285.1562 283.045 282.2204 282.2006 281.157 279.2127 275.3561 273.2716 270.6324 267.8376 265.6523 263.1546 259.5378 257.1154 253.2579 252.7546 252.9171 252.7675 253.7589 253.8989 260.9984 267.8966 271.4098 273.6594 274.0414 273.0847 271.8077 272.8023 271.9408 272.7061 273.4088 273.8991 275.0606 275.1382 272.886 267.0036 272.1884 275.4289 278.7073 281.4733 282.529 281.8235 275.9399 268.8781 269.9295 273.3419 275.4605 276.9916 278.3195 281.3676 284.7077 287.5334 286.6418 285.4872 284.7483 285.6683 286.8159 287.8651 289.1757 290.3936 291.8142 292.3756 293.3504 293.7692 294.1372 294.2474 294.6116 294.2883 293.9772 292.9334 293.1859 292.7562 290.9395 289.3063 287.0845 284.4953 280.6234 275.3568 278.1626 279.171 281.02 282.3923 284.0576 285.8066 287.29 288.4144 289.1102 291.0082 290.9886 290.5973 289.6225 287.7221 285.916 284.136 282.597 281.1494 276.9557 274.798 271.8371 269.4195 267.1763 263.5219 262.5902 262.8673 264.0499 265.1028 264.4242 264.0081 264.2596 266.3229 -9999 +-9999 -9999 297.1065 297.084 298.054 297.9114 297.9221 297.1665 291.0584 283.6099 286.0478 289.3635 290.706 282.7853 282.3255 288.1916 292.3102 294.3214 296.1571 298.8748 300.6186 299.613 295.898 291.3019 287.8682 283.7905 288.2662 293.6316 300.6782 303.6717 306.0945 308.6227 310.4279 311.816 312.1378 312.04 311.2697 308.8956 306.9207 305.5281 305.1056 304.421 303.9273 302.7706 300.0925 296.5925 287.5513 277.2815 268.7906 272.6176 272.0941 276.0062 279.394 282.5201 284.5028 284.0891 285.7431 288.4024 290.9304 292.4326 293.4266 293.0037 294.7824 295.6753 292.9601 293.5196 295.2108 295.7144 294.3273 292.0082 291.3413 296.9195 300.2165 304.4896 306.3748 308.1549 308.016 308.1414 308.871 310.9749 311.7829 311.5255 313.5326 314.9592 315.3621 315.7245 315.8091 315.762 315.9785 316.7061 316.9294 317.253 316.9122 316.63 317.2011 318.5837 319.6277 318.624 318.0653 317.395 315.6412 312.7252 310.118 307.5127 304.309 301.3071 299.8081 301.5055 304.3147 306.6038 307.3426 307.3852 308.5294 311.1451 312.774 313.7828 314.0882 313.816 312.5485 311.8727 312.3276 311.2831 309.3703 306.6688 302.2171 299.0069 300.769 305.297 307.0031 308.3034 310.02 310.8103 311.6031 313.189 314.4119 313.6267 308.637 305.5307 302.7618 299.6219 297.1423 293.4468 290.5652 284.274 289.3255 288.0832 284.9112 279.9247 275.4523 283.7264 289.0239 293.5869 297.9438 302.2223 308.017 310.5273 311.3953 310.4263 306.44 304.3472 300.2802 292.1408 280.7744 274.7893 279.1702 283.1474 286.5989 290.4711 295.0296 299.6816 303.5098 306.5708 309.3365 314.0545 313.4241 312.8466 313.3889 313.8994 313.3471 312.5315 312.7087 312.7592 312.4093 311.8076 310.3032 309.1196 307.8677 306.8905 306.1574 305.5224 304.9952 303.8925 303.8348 304.1578 303.6413 303.2154 302.9916 301.467 299.9522 299.1418 297.1331 295.3813 293.3159 291.2845 290.2805 289.3464 289.5082 291.3516 291.1364 291.2125 294.118 296.9408 299.3209 301.5292 303.3651 305.0624 306.3425 307.4448 308.0191 308.0052 307.61 307.4056 307.9774 309.2019 310.4257 311.6068 311.8987 312.2719 311.877 310.4926 307.47 304.7661 301.1052 296.8195 290.9329 290.7726 280.3933 277.8387 277.6053 280.5585 281.1166 283.6095 284.8138 285.6489 285.9723 285.4345 283.6815 280.1625 274.7617 269.2348 264.3763 261.7256 259.0872 257.3489 258.2838 259.5939 259.161 259.0038 259.5583 258.7719 258.2551 256.9473 255.2413 250.2559 250.1731 250.8268 253.5755 256.2529 257.563 259.201 261.5932 264.8489 269.611 273.117 276.2805 279.571 282.4655 284.1191 283.8152 280.8791 277.0717 272.9295 272.0791 269.1639 266.2806 263.8087 261.9819 261.1783 259.9516 257.1851 262.8248 263.7945 264.3707 264.4933 264.5629 266.0031 265.337 265.6174 265.8761 268.2509 269.8635 272.6532 275.6242 278.1222 281.2927 283.7055 282.5785 278.0155 270.4333 266.7551 263.6067 260.5881 257.4409 261.7648 261.4647 257.0574 252.3444 254.7568 253.5387 252.5905 252.8808 252.4375 251.9514 252.5113 253.521 253.6447 257.4796 259.1523 259.0666 259.6165 261.4856 260.6087 265.3024 267.5216 269.3146 272.1928 271.2345 266.8536 257.096 247.6207 246.1111 242.7112 244.2325 246.8201 246.4871 246.1778 245.875 245.7622 245.7259 245.7908 245.5752 245.6213 245.9038 247.7516 248.9457 250.2892 251.0738 251.1987 251.052 251.0161 249.6653 249.3999 255.5158 257.9849 260.2468 262.1029 263.3566 265.6562 266.6471 267.7216 269.8896 276.0587 274.984 274.4532 273.8845 273.5292 269.0135 262.9632 255.6416 262.2953 267.306 268.7275 269.8102 271.4711 273.0957 275.024 276.3393 276.9691 278.5333 283.936 285.2962 285.7904 285.1562 283.045 282.2204 282.2006 281.157 279.2127 275.3561 273.2716 270.6324 267.8376 265.6523 263.1546 259.5378 257.1154 253.2579 252.7546 252.9171 252.7675 253.7589 253.8989 260.9984 267.8966 271.4098 273.6594 274.0414 273.0847 271.8077 272.8023 276.2208 277.1365 276.3555 275.6231 276.1716 277.4246 275.8098 269.7856 270.8189 273.6275 276.1876 278.9384 281.1289 282.7238 277.7939 273.4174 268.727 270.16 272.8274 274.9984 277.4224 279.2806 281.6451 284.4535 284.5039 283.405 282.6099 283.6225 284.7023 286.0956 287.418 288.8441 289.6569 290.6582 291.3266 291.7988 293.2937 293.7454 294.4485 294.3804 293.9531 292.6679 292.8688 292.7423 290.91 289.1673 287.4945 285.8292 282.7445 278.102 275.8562 277.2525 278.1658 280.289 283.4214 285.2069 286.4953 287.219 288.357 289.7293 289.855 289.7879 288.4058 286.954 285.5346 284.2427 283.2223 281.4335 277.1314 274.3503 272.3582 269.9609 268.1332 264.9161 262.6571 262.2551 262.7378 262.7391 263.3588 264.1973 266.9805 271.0598 -9999 +-9999 -9999 293.1029 293.3206 293.8088 293.4398 294.7424 294.2245 286.2735 279.9053 281.5984 286.1335 291.035 283.4698 280.0997 285.3037 289.4544 290.9001 291.4592 297.4999 299.0425 298.3585 294.7454 289.7269 287.8682 283.7905 288.2662 293.6316 300.6782 303.6717 306.0945 308.6227 310.4279 311.816 312.1378 312.04 311.2697 308.8956 306.9207 305.5281 305.1056 304.421 303.9273 302.7706 300.0925 296.5925 287.5513 277.2815 268.7906 272.6176 272.0941 272.8337 277.7063 282.1818 285.4178 287.5947 286.7492 288.0541 289.9167 291.3188 291.5513 290.7285 293.4565 293.9125 289.5264 292.6839 292.4655 292.0494 290.3752 286.0284 290.5459 294.0892 298.3382 303.291 304.1098 304.7256 304.1891 306.4286 308.667 309.8034 310.2309 308.8531 311.6188 312.6968 313.8127 313.7363 313.4323 313.1678 312.2556 313.4373 314.4146 316.7644 315.7351 314.1293 314.742 316.6105 318.7155 319.3007 318.3298 317.6313 315.8469 313.0471 309.5401 305.5674 302.7878 302.5737 300.554 302.4634 305.1176 308.402 309.4539 310.1532 310.0719 311.4228 313.4328 314.6438 314.8738 314.3996 313.2457 312.5323 312.4067 311.8957 309.1521 306.3813 301.7714 299.886 302.1893 306.9334 308.4076 310.1465 310.8922 312.4377 313.2889 314.6399 316.0032 315.254 309.2775 305.6517 302.3961 297.5581 293.9277 290.1252 288.8691 289.9091 292.9385 294.2253 292.6765 289.2295 281.1454 278.9704 287.2277 292.2594 296.0794 299.7973 305.6279 307.8963 310.9671 313.7912 313.7347 312.4685 307.8093 301.1734 293.7863 283.5302 277.9802 280.7232 282.5585 286.4041 292.8134 298.7931 302.901 305.0038 307.4003 311.3428 310.8928 309.4896 309.869 311.0659 311.9644 311.9745 311.8525 311.725 311.8578 312.0815 311.0622 309.4425 308.2815 307.2059 305.7685 305.0146 304.4694 302.6056 302.2043 302.2135 301.5898 300.5392 300.5015 299.295 297.1796 296.054 294.2748 292.0708 290.8437 290.1752 290.2957 291.0789 291.7583 293.1279 293.8912 290.8936 291.3636 294.7922 297.5872 299.5306 301.9248 303.7099 305.1576 306.4815 308.8789 308.8369 308.6921 308.0877 308.1115 308.2699 309.4345 310.3476 311.1211 310.0548 307.7638 307.5369 303.3139 299.755 294.0225 287.8986 288.7488 287.1187 293.5927 292.8839 292.6852 292.2347 292.4796 292.2701 292.2846 291.535 290.0494 289.2942 287.914 284.4696 280.1011 276.1393 271.06 266.1186 262.3295 259.6858 256.2143 254.4104 255.596 255.9863 255.2277 252.4691 254.8759 253.8154 250.969 250.6125 250.5001 254.9022 258.7727 260.911 261.8448 262.512 263.9163 264.8326 268.6994 271.4956 274.7852 277.9892 281.5724 283.8724 284.0367 281.9448 278.4591 275.7039 274.9475 272.4962 269.1925 265.4045 264.3254 263.506 262.131 257.6266 262.6594 264.0639 265.7949 267.042 268.4908 268.702 268.9231 268.666 268.6471 269.3904 270.9438 272.7675 275.3691 277.9407 280.6394 282.0965 281.4937 277.4387 269.3126 266.1083 262.5285 259.861 261.3362 264.7257 261.7126 255.9991 251.5834 255.9402 256.4688 255.5782 254.1922 253.3797 252.8975 253.2662 254.4221 255.1792 258.5097 260.3515 260.1839 261.218 261.7804 264.3433 266.2239 268.1731 269.9607 274.0885 275.1074 274.1885 268.801 256.2381 246.7892 246.3726 242.6168 245.8219 246.5363 246.429 246.0711 245.7622 245.7259 245.7908 245.5752 245.6213 245.9038 247.7516 248.9457 250.2892 251.0738 251.1987 251.052 251.0161 249.6653 249.3999 255.5158 257.9849 260.2468 262.1029 263.3566 265.6562 266.6471 267.7216 269.8896 276.0587 274.984 274.4532 273.8845 273.5292 269.0135 262.9632 255.6416 262.2953 267.306 268.7275 269.8102 270.9717 271.9763 272.5471 272.2996 274.1126 277.2884 282.7482 283.8643 284.113 283.389 281.8306 281.2357 280.6735 279.9575 278.3152 273.8623 271.2162 268.9982 266.4255 263.7414 261.3253 258.6451 256.2707 253.0995 252.7148 252.8003 253.183 256.3106 262.9103 269.1558 274.1774 276.4439 277.9494 275.8065 274.134 273.8463 273.8424 276.9861 279.7074 279.1792 278.7039 278.2083 280.4526 278.897 274.7244 270.3481 273.2072 275.452 277.872 279.8089 281.7814 279.5669 276.8668 272.974 269.8742 269.8859 271.9313 274.2197 275.4299 276.336 280.5149 280.7834 280.6811 280.9569 282.2861 283.1774 284.3834 286.2898 286.5733 288.4207 289.3961 290.3792 291.4079 292.6468 293.2954 294.0675 294.3818 294.1669 292.5119 292.5262 293.0945 291.0369 289.1857 287.5956 286.0839 283.8092 279.7726 273.2581 275.17 276.4979 278.7933 281.5407 283.4803 284.1808 286.513 287.6004 288.3247 288.1052 287.7853 287.1965 286.3319 285.2128 284.1648 283.8605 283.3388 278.6709 275.2723 273.0827 270.6692 268.6863 264.9607 262.377 262.1231 261.9936 262.8912 264.3094 267.5948 269.8119 272.0998 -9999 +-9999 -9999 293.1029 293.3206 293.8088 293.4398 294.7424 294.2245 286.2735 279.9053 281.5984 286.1335 291.035 283.4698 280.0997 285.3037 289.4544 290.9001 291.4592 297.4999 299.0425 298.3585 294.7454 289.7269 285.5259 283.5911 288.5511 293.4902 300.5201 303.5922 305.0229 306.8051 307.8841 308.9613 309.3647 310.1938 310.2315 307.5452 306.4991 304.6202 303.2034 302.7095 301.9848 300.7208 299.5467 297.2681 288.6996 279.8555 272.4643 268.8326 272.5086 272.432 273.532 278.6607 283.9129 289.6461 290.1676 290.3866 290.7144 289.5788 287.6617 289.9181 292.2422 293.0502 288.8891 289.8954 289.1963 288.8323 286.4933 283.6268 291.5 295.3462 297.3949 301.3928 301.8466 301.2034 302.2625 303.8979 306.491 307.0335 306.3344 305.9095 309.4318 311.5854 311.8148 311.2612 310.9948 310.8752 309.2411 309.4901 312.3665 315.2233 314.1603 312.1504 312.9398 316.2056 317.3011 318.2613 318.4246 317.9072 314.9852 311.6282 307.8014 304.8319 305.6175 307.6599 306.4724 301.7764 304.6421 309.4624 310.8958 311.8117 312.3093 312.8625 314.0801 315.7192 316.1122 315.1247 313.4246 312.8997 312.2386 311.5049 308.7897 304.6481 301.1093 302.291 305.4175 308.3988 310.2634 311.2258 312.7017 313.656 315.0133 316.5818 317.3919 316.9641 311.7 308.7555 303.6198 295.2705 290.3999 289.0333 288.6446 290.8261 294.9947 301.8445 299.5391 293.8229 286.5275 278.2103 285.5645 290.4318 293.9008 297.2148 302.6282 305.6172 308.8061 312.568 315.1097 315.8661 313.6334 308.8443 301.8103 290.5948 288.0545 286.6873 283.0722 284.4512 290.2828 295.0925 299.0926 301.9192 304.9929 306.8875 306.3522 305.2484 306.157 308.499 310.9398 311.8987 311.222 310.4606 311.0067 311.2997 310.3837 308.9368 307.6499 306.6852 305.3518 304.5254 303.2149 302.2136 300.9918 300.1422 299.5121 298.6405 297.7198 296.4803 294.4265 293.6768 291.551 290.9805 291.0242 291.3272 292.2106 293.7742 294.5445 295.5219 296.5537 294.821 292.2151 293.0251 296.1775 298.7663 300.7168 302.1191 303.578 305.146 307.5001 307.5882 307.6377 307.0307 306.4926 306.8652 307.8589 309.1895 310.261 309.5911 307.1853 305.1312 300.641 296.9451 295.837 300.4285 302.9559 302.8381 302.7079 303.255 301.7743 301.3815 302.2635 301.8298 300.069 297.1009 293.9282 290.2264 288.4527 286.144 282.9162 278.8567 273.878 270.5952 267.6538 264.0154 259.0026 256.5511 255.2695 254.9838 254.6698 253.4797 252.4542 251.8391 251.3356 250.9442 252.8833 258.0529 261.2581 263.7901 265.6066 266.37 267.2127 268.7988 268.1808 270.4893 273.5024 276.9143 280.5138 283.3771 284.6999 284.0953 281.6547 278.6433 277.4858 275.2115 271.2563 266.8454 264.9899 263.5546 261.7107 258.1056 263.1346 265.2614 268.4313 271.4949 274.3389 273.7715 271.4521 271.5474 270.9185 271.4166 273.1903 274.6408 275.7136 277.5017 279.7728 280.9056 280.3964 277.1324 268.9058 264.1596 261.1658 260.3315 262.8356 264.7257 261.7126 255.9991 251.5834 255.9402 256.4688 255.5782 254.1922 253.3797 252.8975 253.2662 254.4221 255.1792 258.5097 260.3515 260.1839 261.218 261.7804 264.3433 266.2239 268.1731 269.9607 274.0885 275.1074 274.1885 268.801 256.2381 246.7892 246.3726 242.6168 245.8219 246.5363 246.429 246.0711 245.8871 245.7884 245.6965 245.6315 245.4385 245.3963 247.1728 248.1159 249.5852 249.7944 249.5329 249.4447 248.8066 248.0097 249.7691 252.7264 254.2641 256.534 258.8819 261.3335 262.292 264.7706 266.8564 270.0531 275.3854 276.897 273.862 273.2063 271.102 266.3754 260.0725 254.4839 260.8771 266.9754 268.0998 267.9458 268.9415 269.2978 269.6189 271.9247 274.8371 278.2477 281.0423 281.7323 281.9217 281.3939 280.0667 279.3954 278.6996 277.7859 276.9515 271.5207 269.0433 266.0724 263.9196 261.7111 258.9637 256.4359 253.815 252.0879 252.5603 252.9587 256.7675 260.3177 265.2442 271.5131 275.4136 277.5367 280.1642 279.2309 277.5067 275.7236 275.3038 276.8235 279.4371 280.2771 280.565 280.8921 282.3498 279.7648 276.872 273.1293 274.4593 276.3059 278.3721 279.7889 281.1196 282.0164 279.3576 277.5383 274.7312 273.076 270.7671 270.9263 271.9119 273.4148 277.282 277.5695 278.4445 279.1926 280.6882 282.4448 283.3889 284.3919 284.778 287.6982 288.6232 289.9806 291.2498 292.3169 293.0603 293.6532 293.9923 294.2439 292.2458 292.3121 293.1442 292.2261 289.619 287.4209 285.7457 283.4655 280.2619 274.2602 272.3652 275.094 276.11 277.8331 278.9835 283.428 285.5078 286.6409 285.9702 285.5962 286.2984 285.942 285.8206 285.6711 285.7489 285.269 284.5078 280.5454 277.9169 274.4466 271.2827 269.165 265.5335 262.7668 261.9563 261.8311 264.5145 267.5495 270.3581 272.4339 273.792 -9999 +-9999 -9999 288.4816 288.8346 288.8357 288.6405 288.6635 282.802 277.269 276.0018 276.3686 279.8561 284.4091 285.6804 277.7997 282.2048 284.9141 286.7448 290.6746 295.977 297.6124 298.1546 295.3239 290.1103 283.2264 284.5461 288.024 292.0327 298.7782 301.348 302.9805 303.9986 304.5393 305.3632 306.8961 307.3823 307.5403 306.4236 304.8867 303.2534 301.7345 300.3514 298.9541 298.3901 297.5621 294.9178 287.6345 281.9814 276.2457 273.1777 268.8929 270.9269 272.3357 274.5817 281.3613 289.2586 290.9471 291.7352 290.4938 286.7753 286.3103 289.9405 291.1764 287.6202 282.983 285.2159 284.364 284.4651 280.899 285.9877 291.4294 294.2477 295.7588 297.9485 298.9401 297.824 299.9514 301.7737 303.9785 304.2087 303.0433 305.9712 309.0904 310.4793 310.4763 309.9709 308.7415 308.1861 307.4274 309.1442 310.8794 312.5219 311.2332 311.4352 312.8489 314.8137 316.144 316.7272 317.0537 317.6775 315.6865 313.9135 311.4184 308.8714 310.0881 310.8176 310.538 306.6325 303.0254 309.6612 311.437 312.8716 313.924 314.1457 314.843 316.1378 316.5463 315.7622 313.914 313.0814 311.7004 310.1478 307.5081 304.2781 301.3764 303.7207 307.3815 311.083 312.1601 313.1811 313.9466 315.3423 316.5176 317.6965 318.2129 317.6842 313.5785 310.3768 305.5368 298.0542 291.713 289.6924 291.7544 296.2772 300.8789 304.0269 301.1332 294.5205 287.7443 280.7987 281.87 288.2553 290.462 292.8667 301.6309 304.8653 307.6389 310.3003 312.6733 315.1446 316.6553 313.8112 307.3825 299.7707 295.2435 293.7673 292.333 283.0625 284.4885 289.1423 294.1948 297.1827 299.3115 301.3148 301.1024 300.7985 304.5681 308.4177 311.6449 311.8724 311.0881 309.7966 309.4989 309.5838 309.2009 308.3583 307.0572 305.7725 304.8542 303.6192 301.4425 301.251 300.9267 299.1277 297.3065 296.1729 294.8516 293.5753 292.8526 292.5099 291.9247 292.5186 293.5344 294.257 295.9509 297.6635 297.7814 298.2415 299.4129 298.2904 296.5347 292.6714 293.3002 296.3283 298.6058 299.9888 301.907 303.3317 305.1527 305.0593 305.1179 305.9562 306.1826 306.6467 307.1116 307.9889 309.2314 310.5294 309.6566 308.5938 306.8824 303.542 300.5587 306.1347 309.0251 310.1739 309.9939 309.36 308.4952 307.8708 308.5385 307.5294 304.0307 299.1324 294.4806 287.0623 285.0751 284.4411 281.5199 279.0062 275.4974 272.083 269.1242 267.485 265.6528 265.3303 264.6095 261.5234 258.576 255.8831 255.4303 254.124 252.5555 251.122 253.9691 258.5069 261.9439 264.9222 267.4425 269.1873 270.9461 272.3276 271.2453 270.1575 273.0896 276.8459 280.3919 283.1428 285.6748 284.0953 281.6547 278.6433 277.4858 275.2115 271.2563 266.8454 264.9899 263.5546 261.7107 258.1056 263.1346 265.2614 268.4313 271.4949 274.3389 273.7715 271.4521 271.5474 270.9185 271.4166 273.1903 274.6408 275.7136 277.5017 279.7728 280.9056 280.3964 277.1324 268.9058 264.1596 261.1658 260.3315 262.8356 262.3793 258.9818 254.4101 251.542 257.89 258.3251 257.5342 255.0573 254.1238 253.6176 254.1497 255.3195 256.4932 259.7929 260.783 261.403 262.0601 263.0968 264.8839 266.58 268.4009 270.5249 274.9695 277.0134 278.2045 274.7278 263.4266 251.7492 246.3485 246.4689 242.5952 246.8185 246.5023 246.4019 246.202 245.9289 245.8917 245.6394 245.5864 245.2774 244.9477 247.308 248.8038 248.7443 248.1389 247.9828 247.53 248.1466 249.703 252.1759 253.9241 255.7339 258.2709 260.9789 263.7751 267.1224 269.0438 271.2123 275.2624 276.0144 274.1193 272.5925 272.0515 265.9567 257.011 254.8336 259.9625 264.5645 264.5166 265.2068 266.8586 268.6826 270.5306 273.1656 275.7157 276.9183 279.2765 280.1157 280.4074 280.0042 279.1761 278.1308 276.9865 276.3874 274.2539 269.6245 267.2315 264.646 262.1246 259.9022 256.6978 253.7561 251.8461 251.8084 252.9248 255.0105 255.9954 263.3369 271.7339 274.4665 277.8542 281.0061 282.8486 283.636 281.8554 278.1824 279.2868 280.64 280.427 281.2671 281.5486 282.0934 282.3569 280.4641 276.7867 273.5151 273.9409 275.4869 277.816 279.9313 281.307 285.0684 283.1153 280.7632 279.7827 278.611 275.3058 272.2984 272.3452 272.5879 273.4649 277.7743 279.1732 279.4897 279.7487 280.7935 282.0269 283.1602 284.244 286.8085 288.2061 289.4701 290.5868 291.7091 292.894 293.6426 294.1493 293.9036 292.0355 291.8939 292.5596 292.3313 290.1726 287.558 285.7219 284.4662 282.2284 275.5185 273.2238 272.3602 274.5952 275.3647 278.2089 280.705 282.1917 283.1679 283.6402 284.1147 284.1182 284.8368 285.5521 286.0612 286.5192 286.7978 286.0034 282.1914 279.2987 276.1909 273.6098 271.7731 267.5829 262.6823 261.7983 261.2 267.2262 269.8888 272.4061 274.721 276.4417 -9999 +-9999 -9999 282.99 282.2712 283.2922 283.2895 280.9447 276.317 275.902 276.1435 275.344 275.9649 276.2796 282.1634 277.2092 280.1712 283.1119 286.8209 289.1006 293.7021 295.7712 297.0307 294.7818 287.6962 283.0038 283.1017 288.373 291.9138 297.9759 299.8291 300.578 301.1331 302.0922 302.4124 303.2659 304.5421 304.8991 305.0585 304.5355 302.5355 300.9232 298.7444 297.5208 295.9011 295.3292 293.3815 286.5338 285.6583 282.6328 278.5664 273.3767 269.1316 269.7355 271.9808 275.2007 286.4869 288.8927 290.2541 288.6209 285.6631 283.561 284.8594 285.8003 286.6953 280.8088 279.7003 277.6372 278.1108 279.7795 281.7245 285.2692 287.1542 290.5416 293.1455 295.1359 295.0668 297.6965 300.6338 301.8933 301.6932 302.7588 305.5004 307.5401 308.8961 309.3782 307.7341 305.854 305.1136 306.7374 308.261 309.062 308.971 308.9211 312.4441 314.2346 314.71 314.5176 313.9652 315.3525 316.0104 317.1103 315.1076 314.047 313.1058 312.5564 313.4449 313.7305 310.3528 304.1588 309.1062 311.4383 313.1987 314.1426 314.89 314.982 315.5509 316.1761 316.0023 314.4121 313.6131 312.0965 310.532 307.5504 304.9819 302.9583 304.3924 307.0708 312.8905 314.403 315.8831 316.1291 316.9514 317.9783 318.7428 318.788 317.7115 312.9353 309.1938 305.7732 300.2616 295.4121 291.2433 296.0838 299.4753 303.5689 301.1207 296.29 291.3544 287.6859 283.1273 281.5877 285.6836 289.7119 293.0489 300.4108 302.7527 305.0805 308.197 311.5524 314.3794 316.6931 316.4093 314.6628 308.561 302.3139 298.6877 297.7296 292.276 287.4211 284.4467 288.4796 289.902 295.2946 296.7356 295.969 300.2497 304.1483 307.6266 310.0791 310.7743 310.7411 309.2618 308.5825 308.1357 308.0011 306.8855 306.0377 305.0166 304.2908 302.8171 300.7861 300.2305 299.3833 297.7913 295.8837 294.4908 293.8282 293.3659 293.0194 294.0603 294.2542 295.3261 296.719 297.9684 299.3919 300.1043 300.7203 301.1507 301.5431 301.6908 299.7641 297.176 295.0709 294.3567 295.7713 297.3045 299.1344 300.5332 302.4075 303.6819 304.868 306.6248 307.9065 308.5739 308.5604 308.8529 309.4619 311.9637 312.0934 310.4778 308.0033 304.1117 306.0665 309.3582 312.1579 313.5625 313.6347 312.4003 311.5653 310.4935 308.6611 306.4738 301.8835 296.7439 291.9197 284.0786 280.801 284.4411 281.5199 279.0062 275.4974 272.083 269.1242 267.485 265.6528 265.3303 264.6095 261.5234 258.576 255.8831 255.4303 254.124 252.5555 251.122 253.9691 258.5069 261.9439 264.9222 267.4425 269.1873 270.9461 272.3276 271.2453 270.1575 273.0896 276.8459 280.3919 283.1428 285.6748 286.9197 286.1884 282.6109 280.5489 276.6464 271.5285 267.1598 265.4736 263.3903 261.0304 259.5333 264.5804 267.9597 272.3229 277.1552 280.6188 279.8031 276.8949 275.8881 273.7635 274.4803 275.9282 276.8086 277.9146 278.2885 279.7432 280.3421 279.709 277.6922 269.2132 264.4309 262.3217 263.4189 262.1827 259.5443 256.1469 252.3459 255.2533 259.2626 259.4792 257.8043 255.765 254.6013 254.5947 255.3922 256.489 257.8379 259.8347 261.513 261.7904 262.5242 263.5685 265.5381 267.4888 269.1068 270.6488 276.1731 278.6072 279.0571 275.4136 267.3273 258.1023 248.2751 246.1064 246.1475 246.7157 246.8007 246.6037 246.4559 246.1341 245.9181 245.7876 245.6461 245.5494 245.2549 244.6941 246.4579 247.0978 246.8346 246.9906 247.48 249.5528 253.8529 259.0512 260.6952 261.2765 263.3078 265.5431 267.4581 269.0863 271.0357 272.5412 274.8371 273.8768 271.3571 269.0222 271.292 270.5921 262.9211 254.8476 259.3038 261.8233 264.7851 266.2316 267.647 269.4645 271.302 272.7225 274.7084 275.9214 277.8635 278.5794 279.216 279.2575 278.9128 277.3373 276.2744 273.7555 272.082 267.5853 265.0107 262.6742 260.5327 258.231 254.9759 251.7726 251.7965 252.454 256.4905 259.2433 261.6743 266.8125 273.2156 280.1465 282.5129 284.6369 286.2657 286.6621 285.3892 280.9659 282.3378 283.0639 282.6939 282.0189 282.3829 283.4529 284.0096 281.5568 278.4419 276.7562 276.2172 275.7488 278.1166 280.2496 281.6233 284.9207 284.818 284.1668 283.7428 283.0875 279.9263 276.5504 274.8535 275.2402 277.0986 280.1388 283.7073 285.529 286.0038 282.7903 282.7966 285.1605 286.2039 287.7902 288.5691 290.0423 291.2593 292.9622 293.7603 294.0431 294.0848 293.4469 291.921 291.4689 291.8256 292.0859 290.4847 288.2801 286.2902 284.8751 283.2822 277.74 274.4304 272.4044 271.9967 274.2675 275.1278 276.0105 278.3297 279.5711 281.3174 282.0042 282.9011 283.5139 284.8089 286.0583 286.9955 287.1238 286.5963 283.2313 280.5231 277.4522 276.0486 272.9489 268.9753 266.0855 263.7638 260.6237 269.1258 271.858 273.8338 274.9798 275.4395 -9999 +-9999 -9999 278.9497 278.8077 278.4702 277.5686 276.8798 276.5546 276.3773 276.2085 273.0453 272.4914 273.8635 272.14 276.9808 277.7319 281.1554 284.1191 287.7812 292.2652 294.5204 295.3371 292.7974 283.891 278.4923 283.5314 287.8058 290.4 296.0823 298.1143 298.7292 298.3488 298.4221 299.5664 300.7481 301.5393 301.4608 302.9936 302.9171 302.3047 300.7146 299.392 296.9805 295.2505 294.7572 294.3666 292.4248 289.4011 287.0959 284.188 278.9509 274.2249 269.8743 269.0414 272.1094 281.5201 285.3653 285.007 282.8065 281.191 282.0883 280.5207 280.2979 278.7823 276.4622 282.3197 288.8874 291.3767 289.6348 281.8919 280.3059 281.7552 285.0473 290.7192 292.7521 292.132 295.076 296.9579 299.2785 297.7637 300.6398 302.81 305.0514 306.7885 306.9853 305.9664 302.7668 304.4116 306.0924 306.7828 307.6036 306.5462 308.2832 310.3298 311.8538 312.1083 312.286 312.0756 313.9169 314.7039 315.5934 316.7852 316.0692 315.4604 314.9471 315.0637 313.9622 310.6662 304.548 308.4402 309.5138 311.4515 312.6909 313.6184 314.1718 314.7981 315.81 316.0482 315.1877 314.1349 312.7999 311.0195 308.36 305.6797 304.9285 305.6988 309.6002 314.0421 316.2515 317.53 318.3491 318.3683 319.3205 320.0634 319.3911 317.3554 313.2976 311.0948 307.022 300.3972 295.0776 295.6794 298.7329 300.7604 302.5673 298.05 294.9487 293.7646 290.6691 285.2351 280.2518 283.7886 287.3947 290.998 298.0638 302.1244 306.6944 310.038 312.4116 314.5873 316.397 317.5295 317.8496 314.425 308.8724 303.3482 300.3294 297.7174 295.393 291.507 286.1142 286.6645 289.0908 291.482 296.5302 299.1637 302.4163 304.9893 307.213 309.4538 310.2318 308.7997 308.2615 307.4854 306.6739 305.8566 305.0058 304.2854 302.9742 302.0224 299.6069 297.983 296.9011 295.8976 294.868 294.1456 293.4459 293.3221 294.1919 295.9987 295.5423 297.8391 298.8116 299.1055 301.102 302.5243 302.4462 303.0271 304.4993 304.0819 301.359 298.3528 295.5613 296.9118 296.6095 295.7514 299.1344 301.3344 302.4075 303.6819 304.868 306.6248 307.9065 308.5739 308.5604 308.8529 309.4619 311.9637 312.0934 310.4778 308.0033 304.1117 306.0665 309.3582 312.1579 313.5625 313.6347 312.4003 311.5653 310.4935 308.6611 306.4738 301.8835 296.7439 291.9197 284.0786 280.801 281.1433 280.887 278.6579 275.8895 272.9508 271.445 270.7548 269.1789 268.3719 267.6232 265.263 262.0121 258.6463 256.6159 254.8522 252.7857 251.2277 252.6234 257.7263 261.4405 264.2215 266.8185 269.355 271.5447 273.466 274.8723 272.7038 272.9462 276.7432 279.8809 282.9443 285.6875 288.2091 289.5714 285.9712 282.3903 277.7515 272.3648 267.6561 265.7993 263.3335 260.5515 260.8557 266.7847 270.6282 275.8688 281.0221 285.6259 287.6492 285.3563 281.4464 277.078 277.2964 278.5982 278.9052 279.8417 280.5826 280.5861 281.0885 279.9579 277.2345 270.989 267.3602 266.357 264.0531 261.0665 257.4706 253.4906 255.0432 256.6654 260.7052 259.7422 258.1207 256.6515 255.5958 256.1032 256.9872 258.0003 259.2764 261.485 261.191 262.2271 262.9975 264.2301 266.1226 268.1152 270.3038 272.2994 277.2773 278.403 276.7813 273.0584 267.8667 262.2238 254.5585 247.3781 246.2869 242.6127 246.8412 246.8115 246.4121 246.1774 246.1359 245.9369 245.7084 245.6739 245.2349 245.27 245.3445 246.0076 246.3689 246.3131 247.7444 252.0859 257.4111 263.4383 266.1284 267.3824 267.9976 268.7008 269.6661 269.4082 269.9281 271.4874 272.0353 271.1794 267.9731 263.8318 267.9517 269.7236 261.9723 258.9541 259.1669 263.5398 264.4469 265.7625 267.1403 269.233 271.2863 272.3732 273.3007 274.4145 276.3322 277.2758 278.2307 278.6865 277.7572 276.8658 275.5867 273.1642 270.5714 265.3622 263.3759 260.5761 258.4225 256.3656 252.528 251.4908 252.7098 258.3464 259.8536 262.4249 266.0906 270.9966 276.1778 281.9616 285.395 287.4178 288.7645 288.3387 286.7982 284.3115 284.4132 284.7461 284.1924 283.4641 283.8733 284.5379 284.7968 283.2982 280.7968 279.3434 278.2465 278.6724 279.4108 280.8267 283.007 284.8371 285.9259 286.8357 287.2014 286.0745 283.6927 281.1478 278.1288 277.1445 277.112 280.2902 285.9712 290.309 292.5799 292.6029 291.1681 290.5978 291.067 290.0746 289.826 290.6068 292.0042 293.3916 294.2813 294.2032 293.7812 292.8539 291.7716 291.2518 291.4678 291.8877 291.1526 289.8264 288.5034 287.0953 285.339 281.5814 276.9477 273.3609 271.8938 270.9625 272.5135 273.2635 274.4624 276.1072 278.7767 279.1548 280.7063 282.407 284.1512 285.1446 285.4865 285.1438 284.54 282.8507 280.5288 278.5231 275.7607 272.6568 270.5476 268.5381 263.9921 261.0453 268.7019 271.9466 272.1465 273.1239 274.1864 -9999 +-9999 -9999 273.0752 272.5765 272.5461 272.5263 272.4856 272.6679 273.2904 273.8298 274.8732 276.6519 276.2981 275.4823 272.2929 275.3817 278.0043 281.4975 284.4995 291.1005 293.0168 293.945 291.0832 283.2904 277.744 282.9228 286.8934 289.5726 294.9074 296.7794 296.9065 295.5402 296.2741 297.0378 298.6992 299.2577 298.8132 300.4543 300.9843 300.9109 300.1667 298.5347 296.4576 293.8028 293.4584 294.6031 293.5894 291.5237 287.9835 285.2237 283.1908 280.1404 275.6042 271.327 269.4258 275.8217 279.9483 277.6952 277.2508 275.6446 275.3192 274.731 274.4128 274.6974 287.3363 294.0386 299.5526 302.2 301.204 297.1191 291.8431 288.502 282.3317 287 287.9749 288.8051 291.5829 293.339 294.1473 294.2913 297.2761 298.669 302.1493 303.7691 304.3496 302.163 301.6344 303.2819 304.312 305.0326 305.5357 305.4703 306.274 307.0468 308.3002 309.4705 309.6025 310.8571 312.0185 313.2994 313.8428 315.5681 316.7074 317.0752 316.6858 315.8015 314.1692 311.9376 307.0587 308.8882 310.0648 309.9047 310.7476 312.3348 313.9889 315.336 316.0883 316.4604 316.1148 315.2036 313.9025 312.641 309.9744 307.8847 307.5197 311.1345 313.7486 316.2045 317.3805 318.4344 318.4214 319.8902 320.3271 320.6461 319.5031 316.7838 312.0443 309.3303 304.6335 300.6805 302.4601 301.9064 301.8423 302.5744 303.4832 301.0843 300.5525 300.5909 296.9505 290.9705 281.8192 283.496 286.9471 289.9099 296.2968 301.356 306.179 309.6229 312.1648 313.713 314.6725 315.781 317.257 317.8078 314.1007 308.5648 306.2258 304.2407 301.6337 298.7049 296.3351 292.2912 288.9955 288.3494 294.8194 298.107 300.7278 304.3502 307.251 309.2452 309.8266 308.0268 308.1156 307.1947 306.0953 305.8566 305.0058 304.2854 302.9742 302.0224 299.6069 297.983 296.9011 295.8976 294.868 294.1456 293.4459 293.3221 294.1919 295.9987 295.5423 297.8391 298.8116 299.1055 301.102 302.5243 302.4462 303.0271 304.4993 304.0819 301.359 298.3528 295.5613 296.9118 296.6095 295.7514 298.2494 300.521 302.1067 304.442 306.404 308.4007 309.8754 310.6226 310.8142 310.7414 311.1508 312.2112 312.3656 310.5368 308.1034 307.5717 310.4555 313.0684 314.641 314.8643 313.9317 312.0718 310.1921 308.646 306.5867 303.431 298.793 293.9548 287.6094 282.5449 279.4162 275.703 278.5366 277.1919 275.0128 273.6705 273.0178 272.7626 271.8658 270.6566 269.4903 267.5183 263.9331 260.2187 256.7207 254.1304 252.2345 251.4396 253.7001 257.2201 260.281 262.6911 265.635 268.1062 271.1431 273.2263 276.4035 275.492 273.3682 276.2741 279.3515 282.2227 285.3474 288.6064 290.7161 287.7217 282.8732 277.677 272.6708 268.5577 266.1935 263.3947 260.1698 262.5776 268.7633 271.9947 276.5387 281.1732 287.0358 289.714 289.4413 285.663 282.1898 280.608 281.4057 281.8275 281.7301 281.8112 281.8364 281.5425 279.6692 276.9295 271.8487 267.8871 264.1955 261.7028 258.8457 254.418 257.7058 257.6671 260.9192 261.7194 260.4243 259.634 259.5985 258.3308 257.8441 258.8632 259.1558 260.6727 262.4418 262.1778 262.612 263.8737 265.0937 267.7431 270.0206 271.8538 273.6145 276.308 275.6989 274.4811 271.154 267.0432 261.0532 255.3406 249.2578 249.9331 245.9158 242.6003 243.8777 247.0594 246.42 245.9825 245.922 245.6717 245.3793 245.4077 245.4327 244.7654 245.7011 245.6917 245.9647 246.3963 248.2999 251.4218 257.9366 260.3083 262.2955 263.3721 265.0213 264.6357 263.3905 266.3982 268.8932 269.3199 268.3145 265.9577 263.0632 258.4688 268.1743 268.3004 266.2628 259.2239 262.0008 263.1291 265.2594 267.1274 269.0666 269.9893 270.6688 271.7208 273.1557 275.7517 276.9109 277.684 277.5352 276.4215 276.0223 274.666 272.3845 269.876 264.5918 260.7568 259.3237 256.9262 253.0444 251.351 252.4722 257.8261 261.6064 262.7484 264.1416 267.7099 272.322 278.6042 282.375 286.3784 289.1218 290.7412 290.4525 288.4411 287.13 286.5555 285.8729 285.8617 285.7191 285.906 286.2646 285.8356 284.6571 283.2151 281.3365 279.8387 280.505 281.4641 282.0658 283.5892 285.3472 286.7523 288.0606 288.478 287.1252 285.4171 283.8832 281.6187 280.6984 280.9807 282.1679 287.6991 292.7625 295.0127 294.5454 293.3691 293.0282 292.6641 292.3901 292.0345 291.5926 292.5012 293.2948 293.813 293.2856 292.7577 292.351 291.0478 290.2538 290.4487 291.294 291.5461 291.7305 290.2827 289.1569 288.3048 285.6366 281.6481 275.6038 273.4724 271.4496 270.4828 270.8624 271.5368 272.288 275.6479 277.6752 279.1621 280.8512 282.281 283.1461 282.836 281.9482 281.6903 280.2878 278.9594 277.1728 275.165 273.4234 271.2618 268.1876 262.9077 260.6715 267.1243 268.3995 269.1236 270.8778 273.0539 -9999 +-9999 -9999 277.1705 276.7177 276.2542 274.5366 274.1699 275.1786 275.0965 275.8815 278.0549 277.764 277.1986 276.7224 276.1943 272.0836 275.2578 277.5431 282.105 289.3951 290.7182 291.7743 290.0236 281.3412 276.3823 281.334 285.5952 288.6241 293.0478 294.0084 294.3461 294.6345 294.6197 295.4604 296.4164 296.8204 296.8322 298.4189 298.6037 299.1629 299.0258 298.1628 295.4942 293.5754 289.9753 292.3254 292.4205 291.3505 289.6299 286.6332 284.4644 282.5681 279.7975 276.6396 270.2928 273.7314 273.1975 272.0979 271.6388 273.4211 275.2321 273.2821 274.5333 274.8568 290.7851 297.1084 300.7067 302.969 305.3957 305.0562 301.3255 297.6765 289.8446 284.5251 283.5249 285.9218 286.9867 288.6997 291.6228 291.7949 292.4606 293.6754 297.8112 299.4012 298.3443 298.6087 300.1522 301.0198 302.1689 303.248 302.994 302.6992 303.0466 303.1866 304.7529 306.2496 307.1602 308.5515 309.3715 310.8683 312.5714 313.8658 315.586 316.3131 316.8746 316.084 314.8265 312.6949 308.6975 308.5988 310.6569 312.4878 313.7183 314.5609 315.373 316.2682 316.908 316.7979 316.842 316.651 315.7631 314.1242 312.7635 311.4598 312.0413 314.1961 315.9724 317.5388 317.9067 317.8136 318.5793 319.1286 319.5445 319.8042 319.2703 317.0825 313.757 311.4308 307.9933 305.7929 307.1222 306.4543 305.0842 305.584 305.5595 304.7622 304.2343 304.5141 300.6722 295.0276 287.0837 283.3363 286.8435 289.7005 295.545 300.2608 306.179 309.6229 312.1648 313.713 314.6725 315.781 317.257 317.8078 314.1007 308.5648 306.2258 304.2407 301.6337 298.7049 296.3351 292.2912 288.9955 288.3494 294.8194 298.107 300.7278 304.3502 307.251 309.2452 309.8266 308.0268 308.1156 307.1947 306.0953 304.9977 304.1629 302.7164 301.8553 300.4584 297.9504 296.9549 295.8956 295.6314 295.6508 294.6205 293.5826 294.7489 297.2441 297.7562 297.2594 299.4575 300.8297 301.4833 302.0353 304.1407 305.1743 305.5807 305.9164 304.8626 302.9432 300.5063 298.9296 297.1979 297.7777 299.1308 298.7998 299.9225 301.5819 304.0248 305.8091 307.3163 309.3331 310.866 311.7471 311.8555 311.2161 311.4819 311.8148 311.3811 310.3773 310.7519 311.679 312.6831 313.5615 312.1356 311.6144 310.0741 307.0134 304.5311 302.8419 300.5856 294.0415 288.9952 280.2891 279.9113 277.1951 273.2509 274.2508 273.539 272.4327 270.8018 270.4593 270.1465 269.3844 268.1978 266.5559 265.4269 262.0889 259.1506 256.9532 254.7852 252.3862 252.0833 254.2419 257.0177 259.6114 262.4049 265.3592 267.7812 270.4405 272.8961 276.3044 276.2525 274.4597 275.3557 278.4403 281.8571 285.2145 288.6584 290.7662 287.1988 281.9668 277.297 273.1546 268.9459 266.1153 263.3537 261.3542 264.2566 269.9285 272.5365 276.1563 280.1437 283.7231 285.6542 285.7119 285.0986 283.8348 283.1775 282.9569 283.0869 283.6812 282.9545 282.9413 281.9324 279.8683 277.2573 271.6753 267.0862 260.3494 258.8459 256.5177 260.1222 261.1241 263.5179 265.3954 263.2663 261.6009 263.0508 263.0651 262.5033 261.4911 260.8772 261.706 262.5763 264.4314 264.5346 264.963 265.6933 266.3881 267.9334 270.6487 272.3777 273.8168 272.9953 272.5156 271.8941 270.0793 268.5462 265.1721 259.9403 259.5111 260.7956 256.4705 251.6774 244.8528 242.5848 246.0893 246.6729 246.2777 246.1665 245.5529 245.4132 245.7565 245.8697 245.6985 245.443 245.2325 245.3145 245.4859 246.237 249.9642 251.9867 254.3622 256.065 256.7818 257.8646 259.6295 263.5813 264.3257 265.7166 264.5227 261.784 260.3257 255.817 258.058 267.4458 266.9389 262.4215 260.172 261.6475 263.4666 264.8208 266.1599 267.7149 269.5718 271.2026 272.9444 275.5051 276.4846 277.042 276.5173 275.6456 274.7422 273.6292 271.3567 268.131 263.1664 260.7584 258.5068 254.4465 251.0402 250.8869 253.9001 259.0791 260.0105 263.2484 266.0774 269.639 274.1018 278.972 284.0111 287.0897 290.5253 292.324 291.6 289.6377 289.2579 288.7445 288.0058 288.2299 288.3294 288.3369 288.1586 286.5468 285.4207 283.8273 281.8119 281.1429 281.5651 282.2013 283.3663 284.3287 286.2948 287.2827 288.1069 288.5171 287.6733 286.1985 285.3955 283.9005 283.5548 284.5545 286.7293 290.1129 293.7285 294.8258 294.5019 294.5442 294.7458 294.6279 294.022 293.7292 293.7852 293.8229 294.2278 294.5263 294.1568 293.774 292.7379 290.4692 288.9653 289.3918 290.2353 289.9145 290.6277 289.9939 288.7647 288.0763 284.8309 281.6731 277.6512 274.6428 273.6043 271.666 270.4999 269.5963 269.3573 272.102 274.3304 276.4518 278.8594 280.2252 280.3611 279.4063 278.864 278.7466 277.6992 276.5576 274.8773 272.8131 271.1477 269.879 267.5648 262.8335 260.5667 263.2872 266.0612 267.5168 269.9881 272.2423 -9999 +-9999 -9999 276.6947 276.3836 276.1817 275.9331 275.7619 275.5636 276.0731 278.7905 280.385 280.0873 279.1355 277.6799 276.961 276.1459 272.0681 274.8495 276.585 284.5505 286.4771 288.4535 288.1774 282.6911 277.1596 279.4903 282.8641 287.1135 290.3059 291.2385 291.4595 291.7794 292.8278 293.4981 294.7448 294.5343 294.0057 296.2611 296.812 298.0715 298.391 297.1897 294.9026 292.7978 288.7173 288.5074 290.3102 290.176 290.4828 289.7643 287.7285 284.463 278.9701 277.2159 274.5269 271.1825 274.0672 278.9781 283.5925 285.752 285.6157 278.7399 275.1156 278.5521 291.1055 296.0423 298.7482 301.5446 304.1996 305.3418 305.4702 303.4847 299.4166 291.8725 288.8403 288.4111 287.9738 287.8145 287.1726 287.9445 288.2757 289.1376 292.6122 294.2304 297.815 298.4685 298.8595 297.6008 298.4166 299.1179 299.8381 300.1975 300.3948 301.2599 301.7623 303.6383 304.2028 304.7162 306.1033 308.1239 309.4376 311.8063 313.0506 314.7649 315.8208 315.4674 314.6443 312.6056 309.1506 309.4357 310.7075 312.1539 313.6115 315.4772 316.235 316.8907 317.6958 317.5551 317.8276 317.6195 316.8889 315.751 313.8458 312.5554 312.9834 314.2065 315.2445 317.5388 317.9067 317.8136 318.5793 319.1286 319.5445 319.8042 319.2703 317.0825 313.757 311.4308 307.9933 305.7929 307.1222 306.4543 305.0842 305.584 305.5595 304.7622 304.2343 304.5141 300.6722 295.0276 287.0837 283.3363 286.8435 289.7005 295.545 300.2608 304.3018 307.7546 309.4234 311.1315 311.8221 313.3857 315.4494 318.9325 318.1457 315.8438 314.2005 310.8503 307.6079 305.086 302.1798 300.5411 292.8121 288.0425 292.0428 295.7958 299.1891 303.0081 306.3511 308.5471 309.2664 307.0559 306.8407 307.4078 305.685 304.6823 303.6142 302.2162 301.278 300.0587 297.9803 297.1617 296.456 297.5362 297.4723 295.3239 294.2648 296.5527 299.2699 298.8591 299.842 301.9845 302.8999 303.4764 304.521 305.7612 307.1917 307.6963 307.0261 305.9469 304.5487 303.0812 301.4033 299.4527 298.2737 297.9934 300.1497 300.2398 300.854 303.0444 304.3367 305.9935 307.848 309.3859 310.7413 311.5795 311.1573 309.5861 310.0771 311.173 311.2237 311.0068 310.9287 310.2138 309.4481 309.1469 308.529 306.7144 303.618 298.9449 296.0547 294.3911 290.4959 284.6681 277.7742 274.5215 271.9915 269.7571 268.6648 267.1692 266.3343 264.4299 264.8898 265.7938 264.9357 262.6327 261.8337 260.7317 258.2478 256.8591 255.6694 253.783 252.4944 252.4666 254.3978 257.2062 259.537 262.5333 264.8003 266.9641 269.7716 272.3763 275.6702 275.8159 274.9906 275.5159 277.8164 280.4672 284.0332 287.9126 290.318 285.4669 281.4207 277.2572 272.6898 269.1259 266.5864 261.8334 263.8118 265.6913 271.6462 273.3297 276.1661 278.9153 280.5279 281.449 282.3874 283.0134 283.3478 284.6778 285.0838 285.4657 285.7123 285.3625 284.704 283.0577 280.8642 278.6407 271.7622 267.1762 262.774 258.5219 260.6127 264.0113 265.1411 266.2226 267.3302 265.5292 263.8843 265.3921 265.1142 264.5865 263.5918 263.7638 263.5531 264.189 265.9406 266.995 267.4024 268.0158 268.7399 268.3892 267.9238 269.3694 269.6348 269.6798 269.9724 270.213 269.759 268.3772 266.5186 263.6948 264.5171 264.4304 261.2996 258.7227 250.2166 246.4478 243.2635 242.5113 246.6304 246.3801 246.0827 245.732 246.0173 245.7453 245.6413 245.5199 245.2495 245.178 244.7663 245.0801 245.5756 246.5963 248.1304 249.0986 251.1201 253.3851 256.5498 258.5139 259.1532 262.23 260.5003 259.2635 255.6267 250.5441 250.0345 260.1056 266.1858 265.6252 259.9624 261.2958 262.8125 263.9765 265.8194 268.5014 270.1302 272.1365 273.1573 274.8333 275.737 275.8303 275.2464 274.7943 272.8083 271.6086 269.2147 266.6589 260.5224 258.4218 256.045 250.6062 250.5293 250.7767 253.3534 256.8113 261.6018 263.2914 266.7338 272.0962 277.3286 282.7555 286.6391 288.9369 290.5956 291.9547 292.6857 292.0781 291.1882 290.13 289.7734 290.0589 289.8279 289.584 288.9343 287.0018 285.9988 284.1634 282.9354 281.842 282.8497 283.6224 284.5164 285.4249 287.0174 287.7991 288.3389 288.7082 288.4893 287.4533 286.9231 287.0356 286.8903 286.6631 288.8537 291.4795 294.1234 294.7319 295.9368 296.4468 296.2804 296.004 295.4815 294.9962 294.5042 294.3457 294.9179 295.1197 294.5941 293.8809 292.6603 290.1751 288.6212 288.1334 288.3838 289.0824 289.4883 289.2852 287.8813 286.7003 282.7489 280.1904 276.9515 275.5499 274.2714 273.5901 272.2498 270.9677 269.8714 268.858 270.2275 272.5308 274.7516 275.9993 276.3233 275.986 276.0598 275.9639 277.6992 276.5576 274.8773 272.8131 271.1477 269.879 267.5648 262.8335 260.5667 263.2872 266.0612 267.5168 269.9881 272.2423 -9999 +-9999 -9999 276.6791 276.5403 276.2758 275.7986 275.6564 275.8084 278.5215 280.5978 281.2139 281.0036 280.0895 279.1187 278.5516 276.9778 276.2152 272.0898 273.156 278.1761 281.3572 284.2307 285.6373 281.7191 275.861 277.2824 280.8426 284.0054 287.9573 288.7799 289.2564 290.3092 290.7825 291.4581 292.1729 292.0561 292.8197 294.0572 295.8115 296.8192 297.2608 296.4418 294.7455 292.3714 288.9247 285.7483 287.0054 288.5429 289.3629 288.1364 287.2014 284.6929 283.7516 279.6987 274.7003 272.471 273.7126 280.0875 285.513 288.5989 289.0184 284.4756 276.9332 276.4844 287.7074 291.4185 295.1978 297.652 301.565 303.1898 305.2535 306.6546 304.8206 295.0687 294.9487 295.4271 295.2206 292.1569 293.9428 297.2343 296.3427 294.5972 290.6303 292.1759 292.5003 292.6162 293.2497 293.8174 294.8089 295.5128 297.2216 303.1868 304.5186 305.7973 307.062 306.8204 306.7741 305.9681 306.1033 308.1239 309.4376 311.8063 313.0506 314.7649 315.8208 315.4674 314.6443 312.6056 309.1506 309.4357 310.7075 312.1539 313.6115 315.4772 316.235 316.8907 317.6958 317.5551 317.8276 317.6195 316.8889 315.751 313.8458 312.5554 312.9834 314.2065 315.2445 316.6863 316.9606 316.619 317.0298 317.5362 318.0673 318.2318 318.3979 317.8995 315.498 313.1231 309.9894 310.7478 310.2177 309.2933 308.4932 309.0222 309.0474 307.718 307.2909 307.3919 305.0873 299.3068 291.2383 282.9355 285.9256 290.4569 295.834 297.9738 300.6079 303.6672 305.4997 307.49 310.5466 312.9921 314.6016 317.4981 319.17 320.346 320.1013 317.3064 313.1732 309.9892 307.3059 304.6163 300.3132 295.1933 289.2752 293.2195 297.155 301.9521 305.9543 308.0784 308.7859 305.8813 305.9434 306.9029 306.001 304.8201 303.8076 303.2356 302.2983 301.281 298.8775 298.0662 298.4066 299.463 297.8195 296.1775 294.8883 297.6411 300.2584 300.731 301.0161 302.386 303.7516 304.761 305.6383 306.7313 308.0882 308.8936 308.9899 307.8516 306.4325 304.7692 302.9164 301.2843 300.6097 299.7651 300.4087 302.4696 302.5732 302.9505 303.6347 305.1544 306.5145 307.9462 309.5481 310.8465 311.0408 308.7583 307.5385 308.387 308.9492 308.8032 307.8984 306.7105 304.789 305.3487 305.9029 302.8636 298.3187 294.5885 292.7613 287.06 282.2837 280.6884 273.5597 270.9544 268.1111 265.8983 264.287 262.6332 260.9011 260.8057 260.1224 259.0482 257.627 257.4021 256.0419 255.6954 255.2304 254.7799 253.529 253.2508 252.6804 253.6036 255.7598 257.8577 259.9286 261.9167 264.2663 266.4374 268.9704 271.4101 274.742 275.9918 276.1142 276.0292 277.3176 280.4377 284.1762 287.834 288.8029 281.5544 278.5361 275.4166 272.2805 269.5474 267.3266 262.7493 264.9856 266.6313 272.2356 274.1283 275.1178 277.2582 278.5751 279.342 280.3378 281.2986 282.5916 285.4 286.8644 287.7614 287.9573 287.8537 287.0249 285.3173 283.1776 280.4342 272.0748 265.8806 260.2624 260.6769 265.5663 267.6139 268.1572 268.8094 268.7907 266.6881 265.6666 266.4128 266.6871 265.5826 265.6004 265.2321 265.6074 266.2288 267.9246 269.1264 270.0421 270.4141 270.6497 269.4108 266.8412 265.8958 265.6911 266.9251 268.4502 268.6015 268.4198 267.552 266.899 266.8279 266.9639 266.348 262.7162 258.9174 254.3262 248.1173 246.622 246.6029 242.5449 243.9007 246.6744 246.2596 245.8442 245.8035 245.6988 245.4099 245.2408 245.0436 244.9599 244.7657 244.952 244.8499 245.0127 245.3924 247.9834 249.75 252.0567 254.6076 257.649 257.3691 256.2314 254.682 251.0928 249.1234 250.2103 252.1918 260.8464 264.8033 258.9299 260.9646 262.7591 264.6341 265.6902 268.6223 271.105 271.8906 271.8835 274.1687 275.3096 275.0068 274.3027 272.4557 270.3348 269.136 267.2215 264.5154 257.782 255.8504 252.9431 249.9046 250.3156 251.3908 258.5194 264.6902 269.0889 269.9019 268.2111 273.833 278.4212 283.729 287.9153 289.9711 291.7366 292.677 293.7096 293.4593 292.8177 291.3839 290.6551 290.2151 289.8743 289.2433 288.5044 286.4693 285.277 283.5387 282.8988 282.1854 283.4119 284.3168 285.0284 285.7714 287.4307 288.3199 288.8488 289.5836 289.7076 289.7175 289.0115 289.2598 289.9225 289.5392 291.4675 292.4757 295.6539 297.637 295.9368 296.4468 296.2804 296.004 295.4815 294.9962 294.5042 294.3457 294.9179 295.1197 294.5941 293.8809 292.6603 290.1751 288.6212 288.1334 288.3838 289.0824 289.4883 289.2852 287.8813 286.7003 282.7489 280.1904 276.9515 275.5499 274.2714 273.5901 272.2498 270.9677 269.8714 268.858 270.2275 272.5308 274.7516 275.9993 276.3233 275.986 276.0598 275.9639 275.1056 274.3525 272.6621 272.0988 270.5361 269.0641 266.9447 262.1923 260.2318 261.993 264.2656 266.6182 268.6101 270.9172 -9999 +-9999 -9999 276.6024 276.397 276.0408 275.6924 278.5219 281.725 282.2223 282.0403 281.9709 281.7816 281.0885 280.7173 280.1666 278.9732 277.5829 275.9786 272.1597 275.5943 276.8143 280.1642 283.7538 280.0744 275.7191 276.5905 279.4703 282.1869 285.9532 287.3448 287.7092 288.365 288.6438 289.5551 289.559 289.2256 290.4559 292.7523 293.8561 295.5738 296.1725 296.024 294.5613 292.8636 291.2066 289.6566 282.6831 285.0399 288.2238 288.5901 287.7822 284.6137 281.9867 278.0649 274.5691 269.64 272.4691 278.2226 284.1986 288.9166 291.9756 291.363 288.594 285.1088 282.3091 286.0538 290.7437 294.939 298.2968 300.603 303.653 306.6546 304.8206 295.0687 294.9487 295.4271 295.2206 292.1569 293.9428 297.2343 296.3427 294.5972 290.6303 292.1759 292.5003 292.6162 293.2497 293.8174 294.8089 295.5128 297.2216 303.1868 304.5186 305.7973 307.062 306.8204 306.7741 305.9681 305.0303 304.7585 307.6157 309.501 311.6255 312.7603 313.5916 315.578 314.9242 313.0085 310.2777 311.6207 313.3166 313.8096 313.8046 314.4187 316.0944 317.1928 318.0403 318.1106 317.6306 317.2591 316.788 315.842 314.4876 313.0548 312.0196 312.694 313.7096 315.1331 314.8195 315.4423 315.6054 315.7357 316.2875 316.7982 317.1506 317.6184 315.9234 313.876 313.0865 313.3181 312.9294 311.8582 311.0247 311.7058 311.5208 309.5453 308.6077 309.0999 306.8152 301.2232 293.0726 285.0838 284.96 290.1607 298.1578 301.4297 303.6985 304.7005 306.0784 308.4306 311.0152 312.4788 313.1251 315.7174 317.6712 319.1375 320.1202 319.557 317.2817 316.0312 311.9119 307.1162 304.5177 300.2919 295.7193 289.9417 294.7371 299.927 304.5239 306.6522 307.3344 305.4475 305.1219 306.2911 307.3007 305.5455 304.7813 304.1764 304.3883 304.7622 303.2216 302.105 300.9895 300.1294 297.7754 295.8244 295.0096 297.7026 300.3005 302.2071 301.6497 301.7727 302.6591 304.1913 305.6297 307.1184 308.4565 309.7499 310.0302 309.3263 307.925 306.3564 305.1512 304.1848 302.6637 301.45 301.5361 303.7026 303.9402 303.9464 305.0154 305.3728 306.0097 307.2498 308.9802 310.4496 310.8275 308.9639 306.0512 304.0376 304.5488 304.9035 303.8148 302.4929 301.8512 300.8082 301.2926 298.2266 294.0027 287.9943 286.6116 286.8163 282.0991 276.1526 270.4145 268.2769 265.6232 264.1232 266.6967 268.8511 267.9217 266.235 264.5201 262.0085 260.5783 260.2287 258.5742 257.4142 256.6808 255.3421 256.7872 257.9555 252.8753 253.5841 255.9383 258.0335 259.9643 261.7306 263.4074 265.405 267.6854 272.1882 274.3188 276.1751 277.3544 277.0571 277.8711 280.519 283.6379 286.5492 287.3998 281.8734 278.218 274.9377 271.5145 269.3566 267.4293 262.9846 266.5447 267.6168 272.3459 272.9545 274.7537 275.4057 276.676 277.4709 279.4445 280.9018 282.6322 285.8217 287.6131 288.6242 289.7718 290.0991 289.5025 288.3242 285.8653 282.5363 274.6478 266.8398 260.2121 264.4953 268.9574 271.1778 271.8242 271.9326 270.3691 267.1759 266.5146 266.7564 266.7736 267.8684 268.1023 268.3897 267.6736 267.7017 269.8017 271.3087 271.954 272.2282 272.0253 269.8839 267.4107 266.0971 265.1508 265.1241 265.8702 266.8659 266.6659 266.4787 266.9874 267.623 268.1465 267.34 262.951 260.0319 256.6672 250.9514 246.3596 246.6694 246.6675 243.7353 242.899 246.1764 246.1181 246.1701 245.6941 245.4017 245.0159 244.92 244.9369 244.907 244.6818 244.6521 244.7545 244.9101 245.4899 246.6289 248.4993 250.0327 252.0816 251.3967 251.0439 249.8141 248.5061 248.5054 249.5152 250.7595 252.4647 261.1386 262.6702 260.624 262.4971 264.2238 266.0733 268.1144 269.7202 270.0287 270.6372 273.2226 274.6408 274.3864 272.9087 269.9063 267.8607 266.4938 264.8279 262.0555 255.0897 252.4695 250.5081 250.2133 250.0216 254.3672 263.1424 270.42 276.5568 275.8188 271.5412 273.9263 278.4212 283.729 287.9153 289.9711 291.7366 292.677 293.7096 293.4593 292.8177 291.3839 290.6551 290.2151 289.8743 289.2433 288.5044 286.4693 285.277 283.5387 282.8988 282.1854 283.4119 284.3168 285.0284 285.7714 287.4307 288.3199 288.8488 289.5836 289.7076 289.7175 289.0115 289.2598 289.9225 289.5392 291.4675 292.4757 295.6539 297.637 297.7296 297.5343 297.0746 297.0367 296.5829 295.9489 295.4773 295.3659 295.5909 295.5915 294.5583 293.398 292.1234 290.1747 288.6862 287.3846 286.8601 287.4012 286.9334 287.3963 286.0525 284.5301 280.6453 278.1971 277.0049 275.5675 276.4103 279.1435 278.6777 277.2821 275.377 269.5038 267.7856 267.6875 269.3239 271.052 272.4788 273.0849 272.9488 273.4205 272.5026 271.9368 270.3861 269.7148 268.9631 267.2253 265.5554 259.9945 259.9407 260.9439 263.891 265.8369 267.2437 268.9243 -9999 +-9999 -9999 276.8374 276.0766 276.1115 279.6582 286.9348 288.0905 285.7357 284.1335 283.274 283.1141 282.6872 282.4663 282.1455 280.8958 278.3819 277.7755 276.1618 272.0377 274.6723 275.8271 277.9587 277.595 274.2141 275.8993 278.1337 281.0027 283.9742 284.9619 286.0287 286.1668 287.2366 287.7583 287.6677 287.9958 289.0067 291.3087 292.0824 293.588 294.7902 295.3817 294.7626 293.3652 291.2066 289.6566 282.6831 285.0399 288.2238 288.5901 287.7822 284.6137 281.9867 278.0649 274.5691 269.64 272.4691 278.2226 284.1986 288.9166 291.9756 291.363 288.594 285.1088 282.3091 286.0538 290.7437 294.939 298.2968 300.603 303.653 305.8912 306.152 301.6942 301.2265 301.4723 301.2954 299.2282 300.3862 305.7919 306.4626 302.654 298.8719 296.6511 294.9783 294.661 293.4311 295.1758 298.9797 301.222 303.4971 306.7812 307.7327 308.1982 308.7078 309.5627 310.5563 311.52 311.3547 310.9159 308.722 308.3197 310.0224 311.9618 312.9405 314.1224 315.8425 313.8287 313.259 314.8519 315.9288 316.4958 315.701 314.928 316.4276 317.4863 318.0186 318.0172 316.8581 316.1421 315.7283 315.0353 313.7532 312.6078 311.7987 311.5807 312.2702 313.3431 313.4369 313.851 314.1898 314.2324 314.6439 315.4131 316.0239 316.7283 316.2757 314.997 315.0015 315.1139 315.4154 314.4986 313.2827 313.278 313.1691 309.1827 306.7747 307.0074 304.9712 299.8387 293.5661 286.4262 286.0344 290.6534 297.576 301.3666 304.392 306.3598 307.061 308.3101 309.6324 310.4374 311.0926 313.878 315.5997 317.3531 318.8719 319.9099 320.26 319.2754 314.4297 309.4273 307.199 306.9068 304.6158 295.2431 292.5089 296.8738 301.3606 304.3377 305.0803 304.4321 304.8947 305.9164 306.9436 306.8333 305.9817 305.685 306.1942 306.6553 306.017 304.7619 302.9835 300.8674 298.6047 296.2849 295.6915 296.9506 299.1305 303.4033 303.8904 303.4885 303.0378 303.432 304.6461 306.6697 308.668 310.2023 311.4254 310.4107 309.0931 308.6259 307.376 306.2248 305.3261 303.2724 302.6862 304.229 305.1712 305.242 306.5832 306.4592 306.5017 307.4998 309.1697 310.6127 310.464 308.0176 306.1966 303.185 298.6218 297.7227 299.4184 297.8852 299.1295 292.6792 294.1085 291.3106 288.508 283.8387 283.4802 279.2311 275.4335 271.5888 269.1592 267.3387 271.1338 272.5404 272.8471 277.8091 279.4218 276.4201 272.9889 265.2032 264.9338 264.7433 264.0001 263.7262 263.4772 262.899 261.8841 260.6365 253.7107 253.7695 255.1104 257.3995 259.4888 261.2995 263.0732 265.3418 267.1685 271.4426 274.2923 276.6565 278.4154 278.5574 278.3236 280.3818 283.3025 285.5952 285.2019 281.894 278.1456 274.3653 271.1105 269.7453 268.0273 263.8661 266.3194 269.5481 271.3463 272.4221 273.5097 275.3145 276.2157 278.2801 279.0838 281.1573 282.9601 287.4022 288.9469 290.4381 291.2836 291.7526 291.0858 289.9893 288.0096 284.8488 276.9608 271.3414 265.2849 266.8752 270.0661 272.2679 274.0909 273.6512 271.3908 268.816 268.1589 267.0194 267.5699 268.7669 270.1861 270.7856 269.7724 269.7919 272.1661 273.2877 273.5875 273.6859 272.5878 270.699 269.0237 267.5879 266.1468 263.2301 264.1749 264.5114 264.9143 265.3871 265.7216 266.6072 266.9326 266.5619 262.6907 260.6391 257.2414 253.8199 247.3184 246.1917 246.4702 246.4005 246.5531 246.4806 246.0514 245.9498 245.8152 245.3301 245.0249 244.9947 244.973 244.8453 245.0007 244.89 244.9299 245.0527 245.0671 245.5925 245.8365 246.0578 246.5028 247.0327 247.0772 249.8141 248.5061 248.5054 249.5152 250.7595 252.4647 261.1386 262.6702 260.624 262.4971 264.2238 266.0733 268.1144 269.7202 270.0287 270.6372 273.2226 274.6408 274.3864 272.9087 269.9063 267.8607 266.4938 264.8279 262.0555 255.0897 252.4695 250.5081 250.2133 250.0216 254.3672 263.1424 270.42 276.5568 275.8188 271.5412 273.9263 279.6583 284.3729 287.7019 290.1841 291.5203 292.662 293.7702 293.76 293.2226 292.029 290.6366 289.8379 289.0731 288.3662 287.2299 284.7879 283.5251 283.0326 282.7118 282.3781 283.5666 284.3053 285.3011 286.0237 287.6595 288.9224 289.7534 290.5434 291.2783 291.6227 291.8106 291.9451 291.6213 290.9615 291.4868 293.2563 295.9445 298.0499 298.8586 298.5286 297.8371 297.3967 296.7045 296.3282 296.1125 296.3132 296.2397 295.8059 294.7057 293.505 292.4158 290.5839 289.7167 288.4509 286.5211 286.2498 287.0177 284.3236 282.7141 281.0344 279.2014 278.1863 277.1495 277.4153 279.688 280.9695 281.2431 280.3682 279.2076 275.3475 269.5836 267.2437 266.2981 267.0843 268.1838 269.1862 268.9869 270.7124 269.2902 268.4498 267.6446 266.9884 265.441 263.8796 262.7572 260.3914 260.266 259.5768 262.9827 264.2715 266.0573 267.3634 -9999 +-9999 -9999 276.298 276.2981 282.9118 288.3037 291.9867 291.9256 290.5301 287.5647 285.8127 285.1378 284.9481 285.0526 284.55 281.5399 281.1437 277.7755 276.1618 272.0377 274.6723 275.8271 277.9587 277.595 274.2141 275.8993 278.1337 281.0027 283.9742 284.9619 286.0287 286.1668 287.2366 287.7583 287.6677 287.9958 289.0067 291.3087 292.0824 293.588 294.7902 295.3817 294.7626 293.3652 292.0846 290.6587 282.1935 278.8502 285.4176 285.9175 285.4454 282.0959 278.3563 274.6873 273.0402 271.0511 269.6998 271.3657 281.0661 288.226 294.463 297.0849 295.9604 296.6205 293.5081 290.5034 292.5179 296.1374 298.7015 301.3635 303.9426 305.5366 306.492 306.5274 307.0694 307.1068 308.3639 307.0011 305.9555 306.777 312.0005 309.9945 304.6859 302.2462 300.8697 299.4784 297.5072 295.2215 298.2747 301.1877 302.8272 306.7471 307.14 307.0745 307.6499 309.0071 310.8657 312.5035 313.767 314.2217 311.3596 309.9143 309.1976 311.0478 312.5255 314.0804 315.1339 316.5672 315.3416 316.5612 317.5276 317.8327 317.5881 316.7074 317.4683 317.7584 317.6344 317.0522 315.9384 315.4522 315.0013 313.9482 313.602 312.3469 311.8443 311.624 311.1833 311.956 311.9006 312.0394 312.2903 312.7488 313.6199 314.0316 314.7635 315.5054 317.1502 316.7545 316.5697 317.07 317.364 316.7065 315.9249 314.9412 313.5322 308.8518 305.7826 303.2708 300.6684 297.4182 292.7816 287.7816 287.6463 291.5533 298.2987 301.8722 304.7041 305.5362 305.6028 306.3378 307.2226 307.8922 309.0105 312.2902 313.8835 315.3898 317.277 318.8338 320.5184 321.5667 318.2779 313.4309 310.5638 309.5749 306.7103 300.29 296.2725 293.6981 296.9801 299.2877 301.4715 303.0412 304.339 306.5349 307.6174 307.567 306.7516 307.0068 307.7895 308.7444 307.9082 305.6907 303.777 301.279 299.0597 297.0743 296.1395 295.321 298.1112 303.1288 304.8616 305.6145 305.8652 305.3713 305.4067 306.0128 308.2308 310.3665 312.4943 311.9714 310.7735 310.0298 309.2499 308.481 306.8872 305.9381 305.3495 305.2695 306.0449 306.801 307.6058 308.0899 308.2821 308.651 309.8221 311.2334 308.0775 305.0971 303.7478 301.7837 298.2631 293.2194 293.9096 295.2387 294.462 289.1774 283.7264 281.9164 279.2828 278.1953 274.463 273.6528 273.9384 277.9511 275.6183 274.577 277.1897 278.428 278.7622 280.3314 283.0075 281.7323 277.3522 266.5845 269.9262 269.965 269.4949 268.0744 267.2463 266.7563 265.3089 263.1422 257.2176 253.3695 254.4105 257.1211 258.8943 260.567 262.4962 264.8708 266.9209 271.9825 274.9444 277.3176 279.6671 280.8472 280.0718 280.7366 283.1935 284.4619 285.0042 281.7173 277.961 273.6566 271.0568 270.1602 267.4778 265.0481 268.0165 270.8081 271.4868 273.5103 275.5192 277.1003 278.5322 280.1736 281.0594 282.6119 285.9758 287.6357 289.5268 290.906 291.8607 291.1341 289.8346 289.0138 287.6848 285.2227 278.9517 274.8917 271.597 269.1143 271.6368 272.8123 274.3492 273.6682 271.9167 268.9898 268.0837 267.3655 267.8005 269.0285 270.4428 271.5785 272.2667 272.6135 273.7123 274.0547 274.3393 273.6811 272.6191 270.8812 269.1303 267.5416 266.1001 262.8653 262.5312 262.5485 264.9143 265.3871 265.7216 266.6072 266.9326 266.5619 262.6907 260.6391 257.2414 253.8199 247.3184 246.1917 246.4702 246.4005 246.5531 246.4806 246.0514 245.9498 245.8152 245.3301 245.0249 244.9947 244.973 244.8453 245.0007 244.89 244.9299 245.0527 245.0671 245.5925 245.8365 246.0578 246.5028 247.0327 247.0772 247.3677 247.1524 249.8532 249.8246 249.5936 250.7609 252.9205 261.6871 261.2457 262.5672 263.4365 265.3207 266.6929 267.7927 268.3198 269.8604 272.9467 273.6303 273.5497 271.4144 268.8727 266.2698 264.4009 262.5652 260.3647 252.6166 250.4284 249.7945 249.7489 251.9486 258.3608 265.1426 272.5847 278.6868 279.6117 277.7961 275.2255 278.5011 281.8818 286.3573 289.0773 291.0828 291.8672 292.4761 292.6791 292.5861 291.4732 290.096 288.7497 287.7646 286.7227 285.4754 283.4407 281.8372 281.5494 281.3508 281.881 282.6112 283.6866 284.6908 285.5549 287.7278 288.7635 289.5648 291.4846 292.3106 293.111 293.3958 293.1428 292.5175 290.9917 290.8521 292.1717 294.2675 296.6224 298.2398 298.0116 296.981 295.9038 294.7945 294.7923 295.3089 296.0452 296.3341 296.1378 295.1609 294.3277 293.583 292.0422 291.3115 289.236 287.1343 286.15 285.8419 284.1429 284.1411 283.256 279.9689 279.2785 279.1397 279.5038 280.477 282.1961 282.5348 282.0718 281.6133 280.0541 275.907 271.7215 268.3493 266.5469 265.6555 264.7455 265.6504 266.3972 264.5405 264.1961 263.6245 262.8998 262.057 260.9607 261.2152 262.2582 261.305 259.1948 261.2544 261.8953 263.1572 265.4355 -9999 +-9999 -9999 276.298 276.2981 282.9118 288.3037 291.9867 291.9256 290.5301 287.5647 285.8127 285.1378 284.9481 285.0526 284.55 281.5399 281.1437 280.5896 277.929 275.4529 272.0851 272.5192 275.4857 275.4283 273.3777 275.6937 277.2472 279.3922 282.0509 283.2103 283.6628 284.2406 284.3385 285.1155 285.0447 285.9218 287.0883 288.8228 290.7366 291.7388 292.9935 294.1208 294.0863 293.5321 292.3391 291.3322 285.0702 277.725 279.5704 283.4947 280.3046 276.4882 274.3831 273.1702 273.004 272.2219 272.1306 269.671 277.9408 289.0536 296.0506 300.1778 301.5726 301.8867 300.6684 295.7297 292.1819 295.9277 299.0403 301.5547 303.5234 305.6722 307.3437 309.565 310.0727 310.9749 312.2492 313.102 312.4912 308.8979 312.7161 316.9519 310.6658 306.2623 303.7281 302.7848 301.5278 298.857 296.0994 297.3519 298.2191 301.2098 303.0824 304.277 304.9892 307.1317 309.7504 311.6826 313.3965 314.5105 313.0516 311.8759 310.2708 310.7997 312.7563 314.5582 315.4276 316.1059 317.3032 316.9323 317.7394 318.8334 318.9993 318.0259 318.1351 317.812 317.0519 316.5332 315.2483 314.5799 314.0059 313.8394 312.9787 312.399 311.734 311.4194 311.0296 310.4994 310.3891 310.6093 310.8077 312.0948 312.4122 312.6245 313.2497 314.5327 316.8321 317.3409 317.5603 317.8379 318.5121 318.075 317.0448 315.5115 313.4907 307.7702 303.7704 300.4989 298.9857 295.121 292.1708 288.4984 287.2948 289.7439 299.0229 303.0914 303.9679 303.3759 302.9683 304.0707 304.701 305.3962 306.5731 311.3731 313.2727 314.1055 316.0799 317.8381 319.7678 320.9044 321.3604 318.8825 314.2651 311.9038 309.025 303.9628 299.8463 295.9204 294.7058 298.6672 301.1331 304.0607 305.3893 306.8951 308.2146 308.4864 308.0642 308.2249 309.0774 310.1336 309.0144 306.5708 305.051 302.8158 300.1941 298.5611 297.9424 296.568 296.6711 302.0302 304.7429 306.5408 307.4316 307.6869 307.6995 306.9111 307.7315 309.8511 312.415 312.8899 312.4441 311.5081 310.9259 309.912 309.3391 308.8571 307.8401 307.6169 307.3682 307.7832 308.0019 308.8276 309.5927 309.8941 310.8589 311.3373 303.859 300.0166 297.7365 294.507 290.8044 289.2748 288.5871 287.6318 285.2485 279.8232 281.9361 279.0479 277.9503 280.4056 281.573 284.4335 286.8855 288.4883 284.8518 284.3661 282.4432 282.3362 282.5333 282.8477 284.0583 282.7092 275.5854 274.1154 274.5505 274.1018 273.0599 272.0444 270.5286 269.7201 267.6146 265.0796 259.8671 254.4966 254.2986 255.8598 257.7369 259.2874 261.6544 264.097 266.5902 272.5042 275.2064 277.8673 280.3115 282.2859 282.22 281.5648 282.1888 283.4965 284.1344 280.6574 277.0827 273.5058 271.3646 270.261 267.7342 266.4401 268.6963 272.4608 274.3528 276.253 278.7277 280.6265 280.6825 281.3987 283.8879 284.5223 285.899 287.3912 289.1624 290.5921 290.784 289.6107 289.8346 289.0138 287.6848 282.0573 278.9517 274.8917 271.597 269.1143 271.6368 272.8123 274.3492 273.6682 271.9167 268.9898 268.0837 267.3655 267.8005 269.0285 270.4428 271.5785 272.2667 272.6135 273.7123 274.0547 274.3393 273.6811 272.6191 270.8812 269.1303 267.5416 266.1001 262.8653 262.5312 262.5485 262.7302 262.9671 264.3761 264.9877 265.2326 265.0416 262.57 259.681 256.4913 253.746 247.2982 246.1157 246.1989 246.4997 246.7188 242.5513 246.3684 246.2815 245.5663 245.3148 245.293 245.1074 244.9223 244.9322 244.9791 245.034 245.0146 245.1666 245.1635 245.2596 245.3871 245.5408 245.6333 247.8852 252.1324 255.0175 255.9335 256.0433 255.2957 253.0333 251.393 252.6145 261.0633 260.9577 261.4869 263.1507 264.0539 265.0747 265.7525 267.3171 269.1464 271.8255 272.1974 271.8053 270.0536 268.5557 265.6167 263.1619 261.3144 258.4316 250.8016 249.7571 249.3244 249.631 252.5096 259.6272 266.1828 271.9729 277.1805 281.129 280.0617 279.5502 280.6016 283.3078 286.4623 288.9731 289.8307 290.2859 290.6181 291.0274 291.4239 289.8015 287.7532 287.1181 286.2484 285.28 283.1743 280.8734 279.2306 278.5009 279.3841 280.2957 282.057 283.1623 284.4644 285.6656 287.391 289.2741 291.354 292.3809 293.2847 294.1227 294.2143 293.8035 292.9756 290.1644 289.6072 288.9019 290.8806 292.5379 293.6713 294.4737 293.6559 292.8044 293.0594 293.7196 294.6588 295.4734 296.1965 296.3993 296.1327 295.4483 294.7809 292.687 291.3802 290.0188 288.3306 287.0395 286.5177 286.8741 284.7747 284.3108 282.8925 282.7722 281.5002 281.474 281.7612 283.2199 284.2561 284.7263 283.7796 281.2538 277.9097 274.3192 272.178 270.1365 266.3012 265.8054 265.2804 263.8937 262.9802 262.639 262.1099 261.8531 263.9299 264.5692 264.8 264.3438 260.7921 258.1341 260.0555 261.6273 262.0408 263.5744 -9999 +-9999 -9999 276.4839 278.2771 286.1039 292.1215 293.9684 293.8024 293.3253 291.8226 288.9376 288.4418 288.1504 288.1667 285.1866 284.7207 286.4113 283.7534 280.7774 275.7653 276.1393 272.269 272.0376 274.3357 274.9162 276.2406 277.7947 279.5003 280.8067 280.8822 281.4939 282.1825 282.9594 283.1457 283.4361 283.8734 284.9816 287.7575 288.6686 290.292 291.2255 292.0972 292.8943 292.7619 292.0988 291.567 280.1013 269.7729 269.6746 271.1144 273.7844 273.5386 273.3729 273.0488 272.9827 272.2937 272.9231 269.6756 278.7999 288.1365 296.4409 300.4927 303.6205 304.5306 303.0735 299.0414 293.6314 293.8473 297.053 300.2021 303.3848 304.6953 307.053 310.6527 312.0168 313.3214 314.897 316.4108 316.5734 315.4992 314.3328 318.2417 313.3343 309.2297 307.1273 305.2263 304.9538 304.1913 302.9516 301.8888 300.3971 300.5537 300.6831 300.8063 302.9156 305.0595 307.2062 309.7314 311.8112 313.3945 314.4304 313.1401 311.3078 310.7423 312.5475 314.9341 316.1622 316.7289 317.4475 318.7635 318.8212 319.374 319.5883 319.2186 318.587 318.0458 317.4032 317.0003 315.4596 314.9584 314.5992 313.3922 312.7328 312.0004 311.5658 310.4982 310.5461 309.8058 309.2183 309.3467 309.7473 310.175 310.8171 311.7244 313.0023 313.4045 315.7316 316.4616 316.9453 317.1329 317.816 317.8439 317.2805 315.8334 314.0885 307.118 301.6296 297.3896 295.3412 294.857 294.4318 296.5885 292.7926 288.3678 295.4479 299.3067 300.4068 300.2379 299.2771 300.6245 301.7996 303.384 305.2897 310.2478 310.9299 312.6789 314.4307 317.1426 318.737 320.5134 321.5126 321.2078 317.9229 314.7612 309.3385 310.6049 305.4727 300.0675 296.7572 295.8991 298.9604 304.0776 305.6841 307.4212 308.8461 309.4178 308.9102 309.2917 309.9936 311.0217 310.8447 308.9203 307.0075 304.7322 301.9528 299.5865 298.26 297.4723 297.2711 300.5832 303.7161 306.0258 307.7539 309.0128 309.4285 309.3994 308.4676 309.0792 312.298 313.368 313.8771 313.4172 312.5955 311.7722 311.3227 310.8184 310.2497 309.594 308.8943 309.3792 309.2324 309.2796 310.3847 311.4276 311.8469 309.3173 299.4999 294.7096 291.3274 288.2744 286.7596 285.4095 284.8459 284.684 286.9172 291.4945 286.5401 292.3286 292.6061 291.6079 286.5489 291.3144 293.9117 293.9918 291.4268 291.6584 289.2607 287.2446 286.321 286.1119 285.2597 283.4992 277.5189 279.2171 279.4109 278.5941 277.4882 276.1971 274.3251 271.9672 267.9009 265.0386 261.1382 255.7952 254.5331 255.7737 258.0416 260.1862 261.8567 264.0355 266.4745 272.5042 275.2064 277.8673 280.3115 282.2859 282.22 281.5648 282.1888 283.4965 284.1344 280.6574 277.0827 273.5058 271.3646 270.261 267.7342 266.4401 268.6963 272.4608 274.3528 276.253 278.7277 280.6265 280.6825 281.3987 283.8879 284.5223 285.899 287.3912 289.1624 290.5921 290.784 289.6107 287.8616 286.4563 285.816 282.3498 279.6866 276.4187 274.057 273.0128 272.9083 273.7802 274.7887 273.0348 270.2628 269.1044 268.3569 267.8698 268.2661 269.2369 270.3678 271.6191 272.7624 273.4995 273.7286 273.754 273.4746 272.334 270.9486 269.9079 268.7249 267.1086 265.4385 262.8071 262.0861 261.8318 261.0567 261.7423 261.9463 263.0022 263.7249 263.5508 261.3641 258.6808 256.3325 254.7524 247.4655 246.0783 246.1714 246.5943 246.7559 246.8218 243.0613 242.9259 246.0031 245.9193 245.6108 245.5955 245.5474 245.1803 245.1802 244.8193 245.1479 245.1782 245.3319 244.7784 248.4536 252.6843 257.9485 259.1274 261.1573 263.393 263.8052 262.467 260.1273 257.0375 256.5445 255.1083 256.2929 260.0323 260.0935 260.8893 261.9095 263.2351 264.4717 266.0439 267.9248 270.0557 270.3233 270.0089 268.8138 266.7361 264.063 261.6347 259.9279 257.5352 250.397 249.5046 249.3823 249.335 255.3199 260.6956 265.9852 270.8259 274.6759 281.2067 281.9452 280.9276 281.3961 282.4998 284.0518 285.6112 286.4919 287.1022 289.0222 289.5287 289.6029 288.3534 287.0325 285.6693 283.9156 282.5894 281.2273 278.2895 275.9677 275.125 277.2006 278.8638 281.153 282.0863 283.3672 283.9447 287.2047 289.6183 290.9969 291.6067 292.3534 293.252 293.8221 293.9435 292.9765 290.2728 288.3369 285.5445 285.9966 286.8341 288.2889 289.6433 289.8288 290.428 293.3356 294.0537 295.0702 295.8369 296.3338 296.7114 296.791 296.1 295.1006 292.8416 291.5701 290.6162 289.9149 288.7494 287.1608 286.5574 286.5917 286.9124 285.5407 284.3297 282.8306 282.6295 283.3452 284.3039 285.3842 285.6204 284.7891 280.5295 277.7717 274.9668 272.5606 270.6171 267.6026 268.4026 267.0095 266.3099 265.3962 266.132 267.0615 268.5405 268.6374 267.5576 266.8793 265.817 260.7131 259.4803 259.6106 259.8648 260.5089 260.4584 -9999 +-9999 -9999 276.7919 279.4737 286.8009 290.85 293.8041 295.5302 296.1431 294.6405 292.4849 291.8288 290.3475 290.198 286.3361 286.8817 289.2541 286.4853 283.3304 276.3474 275.8189 276.0584 275.7482 272.0269 272.0798 275.8025 277.0643 278.0334 278.3653 278.5784 279.0697 279.6139 280.2514 281.1553 282.4681 282.3084 282.9142 285.8526 287.2712 288.8462 289.924 290.9716 291.6591 291.0675 290.2246 289.793 270.2133 274.0787 273.4999 269.6611 270.7016 273.0706 272.9608 273.1362 272.8205 273.1256 270.1886 273.6938 287.3241 294.8986 297.6843 301.428 304.4156 306.7696 305.9186 302.4027 298.4113 293.8329 294.5193 298.0443 301.4107 304.1663 306.3009 309.7739 311.8727 313.07 315.0624 316.706 317.3256 317.3714 317.3766 318.3573 316.366 313.7106 311.0908 308.6595 308.9125 308.9336 309.1766 307.1202 305.7455 305.1681 303.8542 302.9731 301.247 301.9809 303.691 306.0618 308.2297 310.6429 314.0849 314.4268 312.8976 311.1247 312.5455 314.6399 316.5072 317.2947 317.926 319.8472 320.321 320.5377 320.4585 319.8907 319.3011 318.4277 317.7162 316.9564 315.6279 315.868 315.2529 314.0714 313.0345 312.2218 311.0937 310.3251 310.3776 309.8671 309.4581 308.5763 308.2502 308.8749 309.6048 310.7131 311.6076 312.4087 314.1202 315.2396 315.8237 316.0376 316.6645 317.0993 316.77 315.6276 313.9212 308.8107 302.5313 296.3929 295.2721 294.9105 298.8343 300.0949 297.7168 291.0226 289.7245 292.7879 295.6251 295.5214 297.7618 299.9332 301.8133 303.7512 305.6393 308.0351 309.4423 313.4006 315.7695 317.6097 319.0001 320.3356 321.246 321.7502 319.481 316.1913 314.158 313.4218 312.1686 309.3693 304.05 298.7801 297.1965 301.4016 303.7411 305.8574 307.8473 309.5408 309.7297 309.3493 310.5656 311.7452 312.59 311.2435 308.8573 306.3326 302.721 300.7736 299.3907 298.8922 297.967 298.4886 302.2423 304.8067 307.0572 309.1271 310.5764 311.2242 311.0943 310.9496 312.5034 313.5602 314.5207 314.9812 314.2354 313.649 313.0436 312.872 312.5154 310.9427 310.7234 310.8885 310.6238 310.2336 311.1989 312.1951 311.1137 306.7124 296.3809 290.2944 289.1045 292.2415 294.9525 295.25 298.5347 299.066 298.8457 297.7079 291.7985 298.7588 300.2684 291.6079 286.5489 291.3144 293.9117 293.9918 291.4268 291.6584 289.2607 287.2446 286.321 286.1119 285.2597 283.4992 277.5189 279.2171 279.4109 278.5941 277.4882 276.1971 274.3251 271.9672 267.9009 265.0386 261.1382 255.7952 254.5331 255.7737 258.0416 260.1862 261.8567 264.0355 266.4745 272.6471 275.3597 277.9758 280.2769 281.8806 282.3344 281.8241 281.597 282.9308 283.049 280.4208 277.3915 273.2302 271.6585 270.695 267.8539 268.7485 271.8401 276.6358 278.6779 280.1214 282.0032 284.2431 284.9642 284.0872 285.4344 286.4153 286.9996 287.9302 289.3443 290.3545 289.4684 288.3149 286.8557 284.5858 283.5383 282.0706 279.9889 277.2058 275.4218 274.5788 274.4911 275.1884 274.1211 273.0659 270.8667 269.8544 269.0864 268.6601 268.5848 269.223 270.2635 271.1396 272.2562 272.8987 272.27 272.7668 272.7051 271.4884 270.3528 268.9974 267.3754 266.0587 264.4966 262.0193 261.4555 261.5856 261.3143 260.4326 260.4417 260.639 261.2768 262.079 260.5401 258.2718 256.5657 252.1281 246.5901 246.2021 246.4701 246.4879 246.7412 246.639 246.9116 244.299 242.8337 242.7628 242.6213 242.7701 242.8642 242.4392 245.5805 244.6715 245.3658 245.5129 247.5859 252.0343 257.6395 262.8052 265.2404 267.1613 267.4164 268.9464 269.5878 267.9952 265.4626 262.6104 261.679 259.4042 255.7184 257.7604 258.749 259.091 260.925 262.2069 263.5654 265.0526 266.604 268.4871 268.7202 268.5362 267.5685 265.5838 263.2822 261.1195 258.6486 256.1312 249.9651 248.9048 249.1243 252.5794 257.7085 262.0388 265.8583 268.7888 271.0478 276.1328 278.1745 279.4906 278.2994 279.1956 282.4321 283.3189 284.31 284.647 287.0533 287.6553 287.5933 287.0921 285.3867 284.0759 282.7228 280.5828 278.5612 275.3165 272.2015 273.202 276.0038 278.7606 280.4699 281.4175 282.1348 283.0108 286.5574 288.5163 289.627 290.6981 291.7364 292.867 293.4875 293.7414 292.8889 290.4019 287.7588 283.8968 281.9372 281.8781 282.8916 284.763 285.6958 287.1232 291.0258 292.3279 294.0693 295.7499 296.5236 297.027 297.1497 296.4261 295.1491 292.7687 291.9678 291.6579 291.0812 289.6068 288.4261 287.4752 287.5983 287.6476 287.4273 286.04 284.6584 284.2436 284.5452 285.9408 286.7227 285.5792 284.481 279.4731 276.587 273.3979 270.9044 268.9995 270.1933 272.0132 271.4146 270.6913 269.1377 269.9217 271.0322 272.0712 271.8692 269.989 269.2186 268.1167 265.6343 259.3805 258.9265 259.443 261.0151 264.8404 -9999 +-9999 -9999 278.4258 282.1218 285.653 290.187 293.1009 295.73 297.4441 297.261 295.5425 294.5037 293.289 291.61 287.7012 289.1555 291.167 288.8026 285.2686 278.2282 275.5694 275.6676 276.1301 276.2111 274.1771 271.7057 275.5296 276.8936 276.7047 276.8466 277.3266 277.59 277.8218 278.322 279.4804 279.894 281.4613 283.4109 286.0061 286.8974 287.8426 289.3149 289.5742 288.7818 287.6616 284.0478 269.7863 274.244 273.9657 273.7723 270.9296 269.8117 273.2019 273.2352 273.0565 269.7128 274.4137 282.7221 291.4237 297.6995 302.3066 303.8163 305.9727 307.7813 308.1515 305.9067 303.7372 300.5008 295.1643 295.5924 298.3677 301.6606 304.7487 308.7122 310.0803 311.5991 313.5752 315.8617 316.7759 316.9775 317.049 318.2031 318.1558 317.2405 316.2081 312.6484 312.931 312.4811 312.0147 311.0302 310.4787 309.3683 305.6133 306.7283 305.5487 305.7282 307.0739 308.2887 306.5371 307.8386 312.7483 314.6817 314.045 312.3422 312.522 314.0931 316.2161 317.3867 318.4429 318.9139 318.9231 320.627 320.5907 319.8059 319.2534 317.9863 316.976 316.4175 315.4052 315.7391 315.3575 314.6897 313.8667 312.7523 311.6608 310.2523 308.8741 309.2685 309.7678 309.1776 307.4678 307.7522 308.7263 309.4838 310.1088 310.8119 313.1124 313.8067 314.3846 314.9472 315.6405 316.0391 316.2073 315.3597 313.3989 307.6336 303.0743 298.8503 298.3752 299.4333 300.6797 302.1847 301.0657 297.7811 290.9482 290.6425 292.9338 298.6545 302.5759 304.4525 304.6239 304.0764 304.889 307.421 311.2365 313.9959 316.2327 318.1428 319.3979 320.1744 320.7948 321.4357 320.1267 317.8127 316.3199 315.0108 313.6797 311.8596 308.3391 304.2614 298.8152 303.3401 303.7592 304.1359 304.6827 306.6984 308.8789 310.1997 310.2972 312.2409 313.6017 312.6396 311.625 309.2818 306.4153 303.8399 301.5994 299.7221 299.1791 298.5633 300.152 303.686 306.0313 308.2105 310.2765 311.986 312.7163 312.893 312.5034 313.5602 314.5207 314.9812 314.2354 313.649 313.0436 312.872 312.5154 310.9427 310.7234 310.8885 310.6238 310.2336 311.1989 312.1951 311.1137 306.7124 296.3809 290.2944 289.1045 292.2415 294.9525 295.25 298.5347 299.066 298.8457 297.7079 291.7985 298.7588 300.2684 298.1952 292.4112 297.6529 299.8069 298.289 294.0757 296.9675 296.301 293.577 290.9492 289.8133 288.2652 286.1052 283.7282 283.6556 283.625 283.8672 282.2488 280.1047 277.1482 274.3965 270.4801 266.8453 261.1672 255.2359 254.9379 256.0074 257.7442 260.135 262.0601 264.3835 266.7385 271.7496 274.3607 276.9375 279.0205 279.927 280.5207 280.8175 281.4221 282.3515 282.1694 280.7191 277.6662 273.9062 272.4547 271.3424 268.2878 269.5939 274.3723 279.67 282.1352 284.08 285.2392 286.6906 286.5443 286.5063 286.6749 287.5246 288.3206 288.8932 289.6714 289.6104 288.3566 287.1588 285.2133 283.7146 282.175 280.6292 279.3954 277.7481 276.7666 276.2286 276.2448 275.4837 274.7186 273.8065 271.3608 270.181 268.7579 268.0452 268.2938 269.1817 270.0914 270.9969 271.8289 271.7209 270.739 270.9202 271.0183 270.3274 269.2195 268.0568 266.493 265.1456 262.3792 261.3338 260.769 260.9674 261.1086 260.6611 259.8657 259.1046 259.4677 259.9688 260.4112 259.0429 257.4914 250.4861 245.9269 246.1767 246.261 246.4564 246.5496 246.5518 246.5421 246.8105 246.7437 246.5425 246.5219 246.584 246.4287 246.4983 242.5043 245.7445 245.8256 246.0724 253.9183 262.2537 268.4349 271.417 272.3093 274.0174 272.7753 272.3819 273.2032 272.9615 270.2231 267.7682 266.0546 262.9922 259.668 259.2761 258.3769 258.5905 260.2845 262.0329 263.1165 264.1939 265.2581 267.3718 267.3547 266.9552 265.3863 263.4931 261.614 259.8018 256.9742 254.1241 249.4209 249.048 250.8705 256.5955 259.5799 261.9017 263.7643 265.0862 267.1535 270.6511 272.4521 274.1287 274.9529 276.2726 278.1219 278.3957 279.7104 281.2167 284.705 286.4603 286.3192 285.5116 284.045 282.785 281.1152 278.7893 276.3282 271.0215 272.4806 274.4961 276.3439 278.1091 279.2894 280.4007 282.3411 284.3687 286.2335 288.2259 289.7441 291.2597 292.4208 293.4802 294.1509 294.325 293.2429 289.6464 287.0335 282.3624 277.7591 275.6403 277.8325 280.5 283.1031 285.3454 288.8825 291.4479 294.386 296.6043 297.3376 297.5978 297.4182 296.626 295.6562 294.2488 293.6737 293.1066 292.4597 291.2797 290.4302 289.356 288.8389 289.2184 289.0336 288.0728 286.2503 285.3852 286.07 286.8954 286.7696 285.1272 283.9448 278.5039 275.303 272.2733 270.3081 272.4834 274.1017 275.2009 274.9551 273.9336 272.5347 273.6781 274.2445 274.933 274.2323 273.046 271.3424 270.2078 268.4888 259.9933 258.6151 259.0309 262.1789 265.1812 -9999 +-9999 -9999 281.1722 284.4248 288.6111 291.2992 294.2786 297.2631 299.0332 299.4483 298.9482 297.9221 295.707 292.5215 288.7414 291.9831 293.5647 291.7164 284.3725 280.6187 276.6218 275.3915 275.5536 275.8247 276.4922 275.4046 271.387 276.0356 276.9023 276.7492 276.5605 276.6035 276.7661 277.0779 277.2254 277.3717 277.5854 281.038 282.6411 284.7906 286.1079 286.3302 285.6462 285.266 284.437 279.5861 272.9109 269.82 274.1276 274.2334 274.3389 273.6796 269.4779 269.6492 269.5905 276.3588 279.9196 286.8062 292.5541 297.8364 301.4198 303.5141 305.0633 306.2111 309.2166 308.9109 307.7549 305.619 302.5166 297.0744 296.4613 298.8584 302.6065 307.3576 308.4331 310.3581 312.0388 314.0145 315.3933 316.2768 316.4928 317.3259 319.054 319.548 319.1366 318.1365 317.9544 316.9751 315.7744 314.3739 313.4352 311.3937 308.9749 311.8349 312.0705 311.411 311.136 312.1215 310.66 309.0387 313.2343 315.4159 315.0769 313.5805 313.0933 313.7814 315.8669 317.5752 318.8212 318.8184 318.1854 317.9686 318.1554 318.51 318.1388 316.9026 316.2374 314.9789 314.2227 314.2342 314.1561 314.0158 313.7892 312.9491 311.5341 310.037 308.9906 308.6892 308.4239 308.0751 307.8565 307.752 307.9654 308.4867 309.188 309.9235 311.6566 312.4315 312.8036 313.7268 314.4713 315.0877 315.4457 314.9686 313.3727 308.1386 305.1055 304.8087 304.3111 303.6587 302.5906 303.3504 303.5823 302.1488 295.5783 293.1392 291.3515 295.5333 299.6537 302.0222 301.8358 302.0369 303.1719 307.82 310.76 313.8186 316.0129 317.9535 318.9017 318.4827 319.4129 320.0149 319.3577 318.23 316.3566 314.4033 312.775 311.8596 308.3391 304.2614 298.8152 303.3401 303.7592 304.1359 304.6827 306.6984 308.8789 310.1997 310.2972 312.2409 313.6017 312.6396 311.625 309.2818 306.4153 303.8399 301.5994 299.7221 299.1791 298.5633 300.152 303.686 306.0313 308.2105 310.2765 311.986 312.7163 312.893 313.4636 314.1569 315.0561 315.7451 315.7759 315.2416 314.3878 314.3046 313.9643 311.8268 311.4269 312.0099 311.8074 311.2934 311.7695 312.6107 309.1279 303.3701 294.8722 295.0443 293.721 298.2311 297.3578 302.7641 305.1315 305.3421 304.258 301.4089 297.8612 303.284 304.6779 301.6118 299.5342 302.5132 303.6948 301.7825 296.6705 300.2231 301.5848 299.4118 296.0656 293.9138 291.407 289.1661 285.8575 289.5597 289.9405 289.3021 287.3615 283.3481 279.4337 275.4026 270.8866 266.7876 261.9348 255.8853 255.1816 256.3791 258.4069 260.4919 262.5247 264.4805 266.8196 271.2303 273.3447 275.2987 276.6944 277.5445 278.4084 280.1582 281.6507 282.1504 281.1541 280.1635 277.4851 274.863 273.2776 271.8647 271.0735 272.679 277.2744 282.6768 284.6481 286.6179 288.5003 289.5723 289.9535 289.3233 289.0292 287.9939 289.6441 289.9619 289.6019 288.6755 287.5002 285.634 284.032 282.6207 281.4019 279.022 277.6404 277.0036 276.4665 275.5982 275.5736 275.5425 274.8438 273.7247 270.8386 269.2108 267.5849 266.8891 267.6184 268.609 270.0534 270.9893 271.3602 271.592 270.3925 269.0094 268.8425 268.5522 267.7892 266.8733 265.3935 264.0408 261.6281 260.7366 260.2899 259.9784 260.2477 260.3722 259.8529 259.1382 258.3891 258.5487 259.3345 259.1544 258.7807 254.0895 246.3995 245.8616 246.204 246.4241 245.825 246.2711 246.4405 246.5222 246.5964 246.3316 246.3772 246.432 246.3726 246.0742 242.6943 243.2617 244.4325 251.676 260.0339 266.7108 271.7277 274.238 275.5706 276.1246 276.266 276.3452 276.564 276.1444 274.0776 271.9047 268.3454 268.36 265.2383 263.5935 258.3284 257.8663 257.9763 261.0612 261.3924 262.718 263.7254 265.5858 265.4183 265.0592 263.8988 262.2521 259.8307 257.7755 255.2635 251.4976 248.278 248.9904 253.2241 256.5959 258.4825 259.4477 260.6584 261.8507 263.0665 266.9882 268.6444 270.4742 272.0852 273.1365 274.3217 275.5606 277.5092 280.7818 284.4955 286.4723 285.9921 284.2822 282.6471 281.3623 279.2311 276.7474 274.4676 267.465 271.1963 274.4462 276.7823 278.7892 280.9223 282.2209 283.7567 285.3762 288.7179 289.6779 291.356 292.8224 293.6406 294.4648 294.5109 294.2019 292.713 288.3524 284.6573 280.1949 275.0258 274.6086 278.1174 280.2167 282.6872 284.9086 288.5724 290.7944 293.5699 297.11 297.7062 298.042 298.1543 297.8322 297.5309 296.144 295.5901 294.982 294.1403 293.3675 292.8286 291.3413 290.3249 290.2301 290.2242 289.8578 288.4724 286.9336 287.1007 287.6959 287.0176 285.0005 283.4131 277.3176 275.0692 272.8355 272.4773 275.2959 276.6363 277.1703 277.1 276.1038 275.5382 276.2418 276.7338 276.9262 276.1389 274.7751 273.3046 271.6933 268.5052 261.1477 259.0196 258.9164 260.9045 264.2794 -9999 +-9999 -9999 283.2351 284.5945 287.7921 291.3596 294.4799 297.3511 299.5616 301.4174 301.0585 300.2723 297.8614 295.0089 290.3986 293.4023 295.5977 295.0775 286.7683 282.5951 278.3216 275.6502 275.5059 275.5844 276.0001 275.8088 271.315 275.6154 275.8302 275.9651 276.4523 276.6104 276.3259 276.1702 276.2718 276.3856 275.951 276.6777 277.9435 280.6259 281.6223 281.7801 282.0504 283.1443 281.0575 274.2399 272.7482 273.3956 269.7561 274.2303 274.2567 273.9959 273.61 273.6745 274.1501 284.6901 283.7348 284.9401 290.835 296.3625 298.3952 300.9173 300.8377 301.6706 309.1198 310.3557 310.5006 309.0654 307.0338 304.4998 301.3234 297.8708 300.4511 305.1899 307.044 308.5857 310.8675 312.0176 313.5959 314.1402 314.3675 315.8463 318.7515 319.4816 320.2113 320.8505 320.7007 320.054 318.7073 316.864 315.8133 314.638 311.9421 314.8494 315.9111 315.9587 315.7272 315.5612 315.4265 314.6547 316.0293 317.1809 316.8698 315.8988 314.5192 314.9977 316.0368 317.5329 318.5302 320.0183 318.2892 317.4086 316.9296 317.061 316.5941 315.4814 314.3483 313.9609 313.0112 312.5969 312.112 311.7609 311.5155 311.7404 311.2588 309.541 308.2564 307.2576 307.3925 307.4491 307.6128 306.9281 306.3995 306.6959 307.7608 308.7684 310.5674 311.2854 312.0381 313.1813 313.7333 314.6764 315.2639 315.2143 313.9367 308.5676 307.6201 308.7357 304.3111 303.6587 302.5906 303.3504 303.5823 302.1488 295.5783 293.1392 291.3515 295.5333 299.6537 302.0222 301.8358 302.0369 303.1719 307.82 310.76 313.8186 316.0129 317.9535 318.9017 318.4827 319.4129 320.0149 319.3577 318.23 316.3566 314.4033 312.775 310.8882 308.0289 304.7482 301.6533 304.9388 307.5835 308.263 309.4663 308.8703 307.4422 308.772 310.7014 312.2234 314.1388 313.7485 313.3181 311.6047 309.5018 307.1385 304.0178 300.7755 300.2999 299.3319 299.3005 301.737 304.9698 307.4869 309.5209 311.476 313.1326 314.142 314.8032 314.7896 315.5736 316.238 316.9683 315.8534 315.5995 315.2766 314.7823 312.5221 312.2913 312.9122 312.5497 312.1875 312.8155 312.9766 306.7498 305.5258 309.506 308.9846 306.0566 305.6275 302.6719 303.2741 306.5127 307.9911 307.685 303.6003 302.6221 306.1219 306.8232 304.9772 304.9477 307.1776 306.9098 304.6871 301.204 303.4309 304.5771 303.7199 300.9472 297.5618 294.5712 292.2094 290.3204 293.8178 295.3621 294.0392 291.1033 285.6642 279.4386 274.4627 270.6997 267.6015 262.8278 256.4844 254.9984 256.3568 258.4491 260.656 262.3807 264.1159 265.9113 270.0508 272.0234 273.433 274.5994 275.8537 277.5602 279.387 281.7476 282.7645 281.1917 279.7967 277.3606 275.5924 274.0594 272.8976 273.4084 277.0545 280.2921 286.04 287.311 288.7672 290.3146 291.8077 292.1566 291.465 290.0794 288.8469 290.3766 290.7445 289.9009 288.3562 287.3534 285.4561 283.131 281.3857 279.7703 277.8028 277.218 275.6917 274.4951 274.4278 274.625 274.7556 273.845 272.4452 269.795 267.6344 266.3221 266.0988 267.1312 268.4362 269.6036 270.2649 270.2642 269.9102 269.182 268.0383 267.4595 266.8702 266.0205 265.3271 264.2428 263.1081 260.4533 259.22 258.5154 258.5693 259.1757 259.3332 259.1754 258.4658 257.9249 257.402 257.3356 257.8758 258.202 257.3339 251.3742 245.3291 245.7042 245.9455 245.7109 245.8288 246.1574 246.304 246.4404 246.4253 246.1273 246.1926 245.8495 245.9233 246.0552 242.7895 244.449 251.8199 260.2851 264.8839 268.7793 271.5992 271.6647 272.8961 276.061 277.7368 278.5743 278.3973 277.3029 274.9789 273.9688 273.206 269.6283 266.6276 264.0765 256.9205 257.2327 258.2454 259.1151 259.9301 261.5717 263.2997 263.0588 263.2449 261.8768 260.4142 257.8851 256.1422 253.7927 250.7696 248.8523 249.7008 252.183 253.2764 254.8692 256.0061 257.0478 256.7706 258.1367 264.5488 266.2859 268.0711 270.1631 272.0927 273.1578 275.2338 277.6199 280.1363 285.7872 286.5252 285.6626 283.8733 281.9313 279.0111 276.9465 274.7278 272.3609 268.3894 271.4773 273.5706 276.0926 280.0573 283.9205 285.3109 285.7813 287.4825 290.4543 291.4351 292.5025 293.8679 294.8422 294.7984 293.8116 292.7916 291.3622 285.538 281.9326 276.7206 271.3381 274.4567 277.6006 280.5773 282.7499 285.1455 288.4278 290.2375 292.5153 294.9479 296.4968 297.6051 298.5294 298.5921 297.6773 296.0673 295.77 295.5774 295.0181 294.1957 293.5006 292.9069 292.2531 291.8198 291.3711 290.9478 290.0659 289.0405 288.5671 288.118 286.2834 285.0638 282.7744 277.928 276.3242 274.4348 275.8085 277.7334 278.8183 279.4767 279.251 278.841 278.3525 279.0978 279.3453 279.3339 279.0163 277.8989 276.0715 273.2763 270.0416 262.6838 259.15 258.1467 260.0865 263.0018 -9999 +-9999 -9999 282.9954 285.9411 287.7102 290.5839 293.3702 296.3936 299.2662 301.8715 301.703 300.6227 298.4932 296.3843 292.8198 296.1943 297.6293 297.0481 287.6527 282.991 278.6453 276.4164 275.5533 275.6476 275.7693 275.2852 276.2191 273.7225 275.966 275.5997 275.2402 275.6983 276.2657 276.3071 276.0807 275.7946 275.5711 275.2639 275.0436 275.5366 275.7088 275.5981 276.8242 278.0305 275.1979 272.81 272.7108 272.5593 273.7587 269.6993 274.6282 274.2619 273.5667 273.6464 274.624 288.4705 292.8172 291.8391 290.231 291.2646 294.2761 295.5538 298.5951 304.2638 309.1952 310.5332 311.0572 311.0792 309.6131 307.4171 306.1908 302.4067 298.2134 302.6121 305.0621 307.3017 309.3095 310.4204 311.2162 311.6292 314.1902 314.9261 316.9633 318.3177 319.2584 319.991 320.8081 320.852 319.8806 318.8976 318.3776 317.2544 315.3399 316.0394 317.6618 318.5726 318.4564 318.14 318.659 319.021 318.9455 319.5411 319.4962 318.6705 316.9196 316.3462 317.0102 317.6625 318.6591 320.0627 318.542 317.5526 316.3695 315.627 314.6746 313.3052 312.6655 312.0168 310.979 312.5969 312.112 311.7609 311.5155 311.7404 311.2588 309.541 308.2564 307.2576 307.3925 307.4491 307.6128 306.9281 306.3995 306.6959 307.7608 308.7684 310.5674 311.2854 312.0381 313.1813 313.7333 314.6764 315.2639 315.2143 313.9367 308.5676 307.6201 308.7357 308.2803 306.1813 305.0493 304.8264 304.9355 304.1473 300.343 297.2125 295.1014 292.5461 294.7951 296.4865 298.4694 300.5734 301.9592 305.8076 308.3809 311.2575 315.1275 318.0602 317.8088 315.8864 317.2741 317.9724 318.1675 317.6302 316.2538 313.9498 311.9044 307.6651 304.2558 302.8494 302.8001 304.4896 309.0619 311.8588 313.1516 313.6591 311.8777 310.3553 311.0804 311.4967 314.6355 314.7881 314.4587 313.6371 312.1321 310.0115 306.4084 302.338 301.6978 301.063 299.7664 300.3586 303.649 306.4091 308.6006 310.5729 312.5541 313.9463 315.5453 315.2755 314.9407 315.3871 315.2229 315.0177 315.1714 315.468 315.0195 313.3367 313.3428 313.7969 313.4387 313.1782 313.875 313.8816 312.6754 311.3366 314.5577 315.5904 314.2625 311.5119 306.3024 304.8856 307.9303 309.7949 310.2002 306.5471 306.5737 307.7577 309.0093 308.4711 308.9753 310.6431 309.7718 307.931 306.4999 307.7773 307.8515 306.9727 304.4109 300.5938 297.0932 294.7077 293.8488 297.2993 298.9807 296.6244 290.0895 284.6707 279.8918 275.9937 271.7031 268.3044 263.185 260.1231 255.9465 256.4432 257.8642 259.2332 261.4766 262.8894 265.314 269.0265 271.0698 272.0237 273.3205 275.5482 277.761 279.4663 281.5113 283.1343 281.8774 280.3972 278.3896 276.4594 274.7809 274.0807 276.8382 278.8496 281.3527 287.1766 288.8477 290.9944 292.5135 293.9759 294.2921 292.5134 290.7513 290.4667 291.489 291.7316 290.85 289.5466 288.0979 286.0962 284.0141 281.2253 279.4477 276.1262 274.8768 273.7498 272.9525 272.8004 272.9908 272.7964 272.2624 271.096 268.895 267.0326 265.4481 265.352 266.6054 268.1472 268.8576 269.2832 268.8869 268.2601 267.5708 266.3914 265.5195 265.1217 264.3664 263.2742 262.175 261.7011 259.7191 258.5339 257.6712 257.4131 257.7199 258.4166 258.272 258.1811 257.4487 256.5729 256.4851 256.1187 256.2011 256.1893 255.5728 251.0992 245.3485 245.5361 245.6972 245.5925 245.6685 245.7733 245.7867 246.2537 246.451 246.0867 246.0964 245.716 246.1679 242.2132 244.2775 245.5207 251.878 256.9874 263.8333 265.6227 265.4677 268.8445 271.9325 276.0107 278.6867 279.9421 280.1471 279.0234 278.1291 276.6893 272.4251 269.1506 266.2102 259.3539 257.1342 257.2995 257.2088 256.9616 258.5773 260.3622 261.2324 261.2379 260.0221 258.1505 256.0911 254.1209 251.8663 249.0146 248.6898 249.2151 251.191 252.0943 252.3102 254.2851 256.6937 260.3006 262.8586 262.6634 262.6397 264.6854 268.1094 269.1964 270.6825 273.1597 277.4528 281.3979 286.6127 286.6095 285.6562 284.1479 281.1332 278.3258 274.7794 272.4085 269.6987 269.614 272.8904 275.3148 278.1997 282.3876 285.905 288.068 288.5332 289.2329 291.5681 293.0565 294.5393 295.5741 295.7401 294.9431 293.0132 290.7337 288.3102 282.4003 278.8501 273.5171 271.6201 275.5981 279.3837 282.314 284.5672 286.5745 289.4405 290.9717 292.6488 294.227 295.6382 296.9815 298.0139 298.2991 296.9165 294.856 295.002 295.0115 295.3644 294.7649 294.4007 293.9842 293.4751 293.2278 292.6983 292.3346 291.7302 290.7943 290.3605 288.6671 286.5803 284.5396 282.7744 277.928 276.3242 274.4348 275.8085 277.7334 278.8183 279.4767 279.251 278.841 278.3525 279.0978 279.3453 279.3339 279.0163 277.8989 276.0715 273.2763 270.0416 262.6838 259.15 258.1467 260.0865 263.0018 -9999 +-9999 -9999 281.589 284.4999 288.6342 291.5417 293.8792 295.585 297.4733 301.1364 301.1639 300.0217 298.4476 296.6895 295.0653 297.014 297.5288 296.7966 287.0031 282.0904 278.4415 277.2361 276.0586 275.8871 275.3247 274.8662 275.1706 271.2312 275.2243 275.7142 275.6437 275.0276 276.444 277.0216 276.5218 275.9967 275.4869 275.244 274.982 274.7606 274.7098 273.4022 273.9489 273.2587 272.8964 272.7791 272.5063 272.5772 273.3728 274.2843 269.8856 274.5198 273.7674 273.3556 278.6298 286.3577 292.5107 294.9778 297.2253 298.6196 300.2382 300.7216 302.5163 304.5473 308.1283 309.542 310.594 311.1991 311.4151 310.6373 309.4588 307.7053 304.2583 300.8643 303.2057 305.4295 307.1767 308.4547 309.1642 310.8313 312.1306 312.365 315.244 316.3022 318.0698 319.4001 320.9002 321.4014 321.5716 321.3955 320.3875 317.2544 315.3399 316.0394 317.6618 318.5726 318.4564 318.14 318.659 319.021 318.9455 319.5411 319.4962 318.6705 316.9196 316.3462 317.0102 317.6625 318.6591 320.0627 318.542 317.5526 316.3695 315.627 314.6746 313.3052 312.6655 312.0168 310.979 310.5751 310.5389 310.6795 310.6645 310.6391 310.9277 310.5319 308.9956 305.6458 305.845 306.1649 306.3201 306.4531 305.9961 305.1251 305.3151 306.8317 308.6893 310.393 311.5882 312.6971 313.259 314.3019 315.2144 315.1739 314.4741 311.3871 310.5804 310.9863 310.0942 308.2123 307.1619 306.6199 306.3557 305.9219 303.3629 300.894 299.2198 298.2188 295.2325 294.8921 296.4998 298.2708 299.4408 302.1613 304.6858 309.0335 314.0827 316.9694 315.8032 313.9149 315.023 315.83 317.4654 317.0252 315.9659 313.5666 310.9228 306.3991 305.7505 306.7939 305.0237 303.8441 308.8285 312.3226 315.0794 315.7104 314.9171 312.9907 311.213 311.2598 314.6597 315.5321 315.5924 315.3729 314.3596 312.7723 310.1916 307.3647 305.7502 303.312 300.9253 300.3474 301.8695 304.6433 307.0328 309.3452 311.3358 312.9197 313.981 313.6071 313.1249 313.2991 313.2734 313.4357 313.9642 314.5319 315.0696 314.6926 314.8134 314.6857 314.3956 314.2625 314.8394 314.9329 314.903 315.41 316.869 317.3933 316.1233 311.4391 310.9556 310.3578 311.4719 312.2342 312.2586 309.1647 309.7438 310.3067 311.3303 311.4965 312.0167 312.7971 311.9823 310.0928 309.3757 310.3558 311.0578 309.8466 307.9316 304.0308 300.2324 297.3544 296.3919 299.5338 299.7448 293.7309 285.9333 279.8367 275.6467 273.4927 271.4904 270.1718 265.644 258.3951 256.6507 256.9493 258.8368 260.9938 262.3044 263.568 264.4737 268.6529 270.8051 272.5936 274.7868 276.5372 278.1593 280.1628 282.5992 284.0799 283.1111 281.8308 280.4103 277.6771 275.7408 275.0621 277.717 279.7106 281.8698 287.5772 289.6255 291.729 293.6913 295.249 295.1976 293.0361 290.7645 290.7769 291.402 291.615 291.0145 289.6798 287.923 285.5728 283.0528 280.8681 278.5855 275.7496 273.3461 271.9338 270.7244 270.6694 270.9665 270.6131 270.371 269.7872 267.5391 265.6852 264.6049 264.7864 266.3592 267.5049 268.3239 268.3119 267.4413 266.2288 265.0289 263.6221 263.4785 262.9002 262.4996 261.423 260.4793 260.3153 258.862 257.8671 256.737 256.2241 256.518 257.5418 257.7376 257.2048 256.6801 255.8735 255.5446 255.02 254.2059 253.8632 254.1272 253.3273 247.1057 245.3547 245.375 245.3208 245.0838 244.8461 244.808 244.92 244.9966 245.4104 245.7223 245.8885 246.148 241.8979 245.211 245.5525 245.2228 248.7646 255.4952 257.1394 263.7523 270.2823 274.5754 277.2878 278.8589 280.1502 281.346 281.4815 280.2884 277.0618 274.3521 271.2609 268.3311 264.4254 256.2779 256.5156 256.6132 255.3031 255.6058 257.8582 259.4577 259.7913 258.2418 255.106 252.7415 251.2518 248.8896 248.4743 248.0656 253.0109 256.5251 258.6475 261.1128 263.4712 264.6202 267.353 269.3741 269.9305 270.1351 270.4402 270.495 271.0972 271.6792 273.9833 278.0615 282.4381 286.6648 285.8333 284.4565 282.7126 279.8319 275.5995 271.2343 269.8228 267.4192 271.2934 274.5271 276.6861 278.7724 281.6352 285.4211 288.2701 289.805 290.8705 292.7472 293.8811 295.2181 295.8326 295.7401 294.9431 293.0132 290.7337 288.3102 282.4003 278.8501 273.5171 271.6201 275.5981 279.3837 282.314 284.5672 286.5745 289.4405 290.9717 292.6488 294.227 295.6382 296.9815 298.0139 298.2991 296.9165 294.856 295.002 295.0115 295.3644 294.7649 294.4007 293.9842 293.4751 293.2278 292.6983 292.3346 291.7302 290.7943 290.3605 288.6671 286.5803 284.5396 282.2996 280.0609 278.1584 278.9301 280.1772 280.9093 281.5628 282.0432 281.8954 281.238 281.7249 282.4918 282.7885 282.9183 282.7036 281.4038 279.2445 275.8088 272.3446 265.3454 260.4588 258.7267 258.8054 258.2373 -9999 +-9999 -9999 284.8687 283.1442 287.917 291.0862 293.2378 296.0693 298.2945 300.7142 300.938 299.7872 298.4161 297.2655 297.1577 296.0406 295.1889 294.3669 285.1121 280.5221 278.4612 277.0686 276.7758 275.3585 274.7328 274.562 274.311 275.1301 271.2583 275.678 275.3097 275.3836 274.7123 275.1067 275.8771 275.9022 275.3136 275.0735 275.4467 275.1051 274.23 273.4799 273.3882 272.7494 273.203 273.4837 273.0009 272.6685 273.3325 274.0711 269.6576 274.5977 273.8537 273.611 276.0368 282.1618 286.8254 289.3945 294.7258 299.141 301.7582 301.8991 303.5061 305.2072 308.1283 309.542 310.594 311.1991 311.4151 310.6373 309.4588 307.7053 304.2583 300.8643 303.2057 305.4295 307.1767 308.4547 309.1642 310.8313 312.1306 312.365 315.244 316.3022 318.0698 319.4001 320.9002 321.4014 321.5716 321.3955 320.3875 318.7785 319.0399 319.6971 320.3186 320.8226 321.2631 321.7273 321.8875 322.1465 321.7648 322.3165 322.0758 320.9323 320.188 319.4989 319.2716 318.9418 319.5316 318.8746 317.9429 316.5829 316.1924 313.4364 312.6012 311.5753 310.816 310.7839 309.39 308.285 308.1645 308.5101 308.5205 308.8573 309.633 310.252 309.6183 305.5401 304.3707 304.6375 304.6469 306.0494 305.7601 304.5956 304.4037 305.2201 307.8006 309.2778 310.9882 312.8386 313.7524 314.3215 314.1034 313.7216 313.8088 312.9364 312.5724 312.6576 311.8643 311.0259 309.4817 308.7555 308.5211 307.8396 305.0135 303.2835 302.6107 302.2907 299.8487 298.035 296.8926 294.9311 296.3835 298.284 303.6053 309.5911 313.2024 314.7073 313.5815 312.3391 313.3666 314.8275 317.0495 316.8643 315.8944 313.5324 310.9087 308.4429 307.768 309.4298 307.1733 303.9565 308.3003 311.9891 315.304 317.5373 317.4508 315.656 313.5422 312.0367 314.0967 315.8224 316.646 316.815 316.0435 314.6515 313.0039 310.8573 309.1629 304.9543 302.2142 300.5268 301.3794 302.9404 305.1141 307.4314 309.187 310.8477 311.7923 311.5444 311.3971 311.1912 311.269 311.8362 312.4831 313.4267 314.4736 315.8323 315.8394 315.624 315.3195 315.0686 315.4868 315.8109 315.6954 316.6503 318.136 318.0445 316.6427 315.2507 315.3002 314.9045 314.8484 315.1132 314.516 311.7347 313.1128 313.6136 313.582 313.8922 313.8716 314.8286 313.8875 313.1721 312.5672 312.4405 311.8048 310.9356 308.9495 305.5143 301.6227 299.4094 298.079 298.0366 297.6926 292.896 285.9287 282.051 280.0939 277.9948 275.9567 273.5203 265.5347 258.55 257.2529 257.0587 258.2907 259.9969 261.9993 264.3396 265.226 267.2951 270.1787 273.5721 276.5002 278.603 280.3228 282.5434 285.5619 286.4096 284.0951 283.4999 282.7411 279.8179 276.8481 276.2745 278.1092 279.4651 282.2819 288.2983 290.3595 292.4323 294.1756 295.4762 294.5958 291.4767 288.8797 288.4711 289.1495 288.7007 288.019 286.729 284.9416 282.3658 281.5459 279.4163 277.5838 274.9905 272.8414 270.8182 268.9196 268.7259 269.4424 269.1723 268.825 268.1247 266.3278 264.8386 262.9406 263.7678 265.1156 265.8869 266.2805 266.1905 265.3984 264.3228 262.7829 261.3859 261.258 261.0519 260.9033 260.0619 258.8185 258.4695 256.8282 256.4013 255.7638 254.8368 255.4381 256.221 256.2281 255.8379 255.7863 254.1998 253.7305 253.2907 253.2285 253.0384 252.5682 252.0371 249.5333 246.3716 245.4053 245.3247 245.2053 244.9403 245.16 245.3853 244.9343 244.9902 245.523 245.7126 246.0504 242.5495 245.2718 245.7576 245.2772 245.1884 249.2402 253.7431 266.4771 270.5151 274.2603 276.8878 279.1258 280.5748 281.4698 281.6532 281.4205 278.808 276.613 274.0123 270.7055 267.249 259.2964 256.6466 256.9737 257.0994 254.0648 255.6217 257.2402 257.7986 256.3128 252.9609 249.8481 249.0101 247.8132 248.0484 252.7665 256.3859 256.5251 258.6475 261.1128 263.4712 264.6202 267.353 269.3741 269.9305 270.1351 270.4402 270.495 271.0972 271.6792 273.9833 278.0615 282.4381 286.6648 285.8333 284.4565 282.7126 279.8319 275.5995 271.2343 269.8228 267.4192 271.2934 274.5271 276.6861 278.7724 281.6352 285.4211 288.2701 289.805 290.8705 292.7472 293.8811 295.2181 295.8326 295.3779 294.0112 292.5962 291.198 289.1691 280.287 275.9674 269.9761 274.2288 278.6905 281.5451 283.7954 285.2991 286.7537 290.1642 291.5332 292.8491 293.9681 295.1284 296.0509 297.0221 296.7975 295.301 293.198 293.4114 293.6373 293.8394 293.9342 294.053 294.0643 293.9411 293.8397 294.0883 293.5562 293.5013 292.3515 291.7997 289.8135 287.1186 284.5363 283.3298 282.3284 281.1231 282.2107 282.881 283.3039 283.6005 284.2125 284.4102 283.9222 284.1783 284.6036 285.2496 285.3254 285.1664 284.0305 280.9873 277.7108 274.4891 268.9642 263.791 258.5021 257.92 258.1903 -9999 +-9999 -9999 287.1908 282.4138 285.7 289.2004 291.6415 294.4839 297.0262 300.1197 301.0554 299.8735 299.2353 298.6355 297.4552 294.2865 290.6741 288.6843 284.1204 280.2019 278.0765 277.1775 275.6497 275.7689 276.1575 277.5522 276.0624 274.2382 274.0413 271.0495 275.5823 275.2198 275.1017 274.8127 274.5657 274.7935 275.5516 275.0735 275.4467 275.1051 274.23 273.4799 273.3882 272.7494 273.203 273.4837 273.0009 272.6685 273.3325 274.0711 269.6576 274.5977 273.8537 273.611 276.0368 282.1618 286.8254 289.3945 294.7258 299.141 301.7582 301.8991 303.5061 305.2072 304.9462 308.2635 309.5694 310.495 311.3018 312.1922 311.8386 311.2404 306.7898 302.563 301.4117 302.7981 303.7537 306.3593 307.5138 309.9002 311.557 313.9763 315.1637 315.6406 318.0905 318.796 320.424 321.9083 322.2891 323.031 322.8156 321.2674 321.7323 321.7425 322.5888 322.9007 323.5345 324.2922 325.2394 325.3401 324.6291 324.2887 323.9846 323.3608 321.8802 321.6197 320.2359 319.6272 319.9691 319.0553 317.1152 316.4238 315.3274 315.1193 313.7737 313.0896 312.0461 310.1238 309.8665 309.0099 306.4385 306.6021 306.238 306.874 308.1537 309.1526 309.0907 305.9618 303.5961 303.2661 304.3567 305.0065 304.9565 303.192 302.9584 303.7566 307.2336 308.9291 310.2919 311.7492 313.1671 313.8247 313.7268 312.7491 312.1727 312.3885 312.45 312.921 313.0988 312.8236 311.8259 311.2379 311.2222 309.9753 306.6274 305.5883 305.4482 305.1263 304.1426 302.3551 301.3221 299.859 298.363 299.3259 303.8856 308.7699 311.369 311.911 310.6791 310.5309 312.6648 314.9326 317.1163 317.1389 316.6056 314.449 312.3958 310.5332 309.5203 311.944 311.0595 303.8726 306.4339 310.864 314.3254 317.0476 318.435 317.561 316.2026 313.8582 313.7388 315.9206 316.9884 317.5477 317.0119 316.1145 315.2434 313.6486 311.3488 306.3265 303.6599 300.996 301.6541 302.6151 303.491 304.6835 305.8455 307.1298 308.9532 309.1488 309.4784 309.0797 309.4357 310.4033 311.8113 313.051 314.4575 316.2044 316.566 316.0847 315.8498 316.2363 316.5203 316.552 316.3028 317.1657 318.6913 318.6086 317.7756 317.6331 318.7133 318.6739 318.2303 317.4253 316.6052 314.6259 315.6704 315.9827 315.9508 316.136 315.673 315.712 315.4001 314.5376 312.6273 311.199 309.3281 307.9135 305.9482 303.0799 299.5338 298.0061 297.0441 295.1137 293.3815 291.6083 284.5789 284.348 279.8946 279.0097 275.9398 273.2076 265.2999 258.6813 256.6919 257.2808 258.6745 260.7671 263.0352 264.8123 266.2922 267.1941 269.9534 274.1935 277.9663 281.2399 282.8871 287.1266 286.4967 287.6389 285.9401 284.6909 284.4026 281.4325 277.9206 277.0871 279.2092 280.6921 283.2215 288.5081 290.6582 292.7695 294.3197 294.7021 292.4494 289.5079 287.2336 286.5344 285.4515 284.6045 283.6317 282.8919 281.9857 280.2533 278.7539 277.5244 276.187 273.9463 272.099 269.9517 268.5511 267.0614 267.8043 267.9619 267.4464 266.6129 264.5163 263.6228 261.9654 262.3571 263.531 263.8279 263.8377 263.6985 263.3314 262.2938 260.5484 259.1731 258.6328 258.5838 258.6282 258.2929 257.4276 256.8089 254.3106 254.0902 254.3023 253.6383 253.9116 253.9081 253.8247 254.0685 253.8484 252.1496 252.2725 251.7741 251.4138 251.3163 251.4723 250.5859 250.0779 248.1474 245.3946 245.2414 245.1149 245.0375 245.84 245.6045 245.1839 245.1211 245.2918 245.538 245.9561 242.6624 245.2718 245.7576 245.2772 245.1884 249.2402 253.7431 266.4771 270.5151 274.2603 276.8878 279.1258 280.5748 281.4698 281.6532 281.4205 278.808 276.613 274.0123 270.7055 267.249 259.2964 256.6466 256.9737 257.0994 254.0648 255.6217 257.2402 257.7986 256.3128 252.9609 249.8481 249.0101 247.8132 248.2639 252.7665 256.3859 260.6379 263.9658 266.3654 269.4959 271.3904 272.8839 274.3479 275.1624 275.3362 274.1751 274.413 274.9566 274.0031 276.016 279.6004 282.4664 286.289 285.6216 283.6125 281.5078 277.8693 273.3526 269.1765 267.3516 265.3426 271.5124 274.6436 276.6255 278.4203 280.5656 283.598 286.2129 287.8073 289.0887 291.709 293.3903 294.6623 295.2006 294.7424 293.2772 291.6642 290.7477 288.8873 277.3696 271.0291 268.2824 274.7656 278.4232 280.5258 282.0469 284.1516 286.2766 290.1054 291.3721 292.2148 293.3344 294.4542 294.9583 295.1577 294.4366 293.1675 290.9006 290.5784 290.7172 290.6038 291.0691 292.6462 294.0542 294.3015 294.299 295.8006 295.3477 294.7373 293.8633 293.0116 291.2349 288.2332 286.251 285.747 284.1788 283.5962 284.0593 284.5501 284.9685 285.2956 285.9258 286.6621 285.9442 285.8948 286.1075 286.3851 286.4557 285.7383 283.9419 281.3804 279.5779 277.9354 271.3335 264.72 258.2169 258.5013 258.0931 -9999 +-9999 -9999 292.2575 287.8186 284.6807 287.2295 290.5209 293.0648 295.6614 299.3051 301.0554 299.8735 299.2353 298.6355 297.4552 294.2865 290.6741 288.6843 284.1204 280.2019 278.0765 277.1775 275.6497 275.7689 276.1575 277.5522 276.0624 274.2382 274.0413 271.0495 275.5823 275.2198 275.1017 274.8127 274.5657 274.7935 275.5516 275.7986 276.0668 275.3268 274.3656 273.7181 273.2018 273.0798 273.4188 274.1683 273.5981 272.9813 273.3316 274.0955 269.89 274.3359 272.9045 272.7154 273.6992 274.3291 275.6567 281.1095 288.0799 295.9992 298.3645 294.8544 299.3457 300.3246 305.4265 306.4482 307.7184 309.3783 310.589 311.6536 312.9087 313.4659 311.1772 309.3557 304.4485 303.6334 305.6934 306.9076 307.9869 309.0518 310.9804 315.1563 316.5178 317.9329 318.9279 320.0609 320.7039 322.2519 322.7548 323.8755 323.8889 323.3644 323.4377 323.6308 324.3099 324.9792 325.8104 326.4908 327.1971 327.4357 326.4526 325.9925 325.6161 324.8904 323.9219 322.8201 321.699 320.9624 320.8782 318.6638 317.2698 317.1666 316.4899 316.248 315.1735 313.1957 310.8753 309.4557 308.8421 308.3124 305.5732 304.6814 305.1165 305.2153 305.9504 306.8589 306.6391 305.3132 302.3978 302.822 303.7915 303.9789 304.7127 302.4569 301.9542 302.927 306.3728 308.0352 309.7239 310.9203 312.0035 312.6546 312.0068 310.5812 309.9877 310.8435 311.4292 311.8787 312.1421 312.4807 312.6748 313.183 313.2017 311.9403 308.7756 308.1689 308.4951 308.0868 307.6558 306.6476 305.2708 303.4421 301.2632 300.6811 303.3199 306.5672 307.4152 308.4843 308.6335 309.4713 311.8925 314.3625 317.2881 317.4657 316.692 315.7071 314.1768 311.9539 310.6271 313.7886 313.334 305.5489 306.3811 309.8007 313.3384 316.1446 318.2846 318.9552 317.5883 315.4241 313.5984 315.4206 317.3488 317.9846 317.7372 317.2279 316.3173 314.6873 311.9731 307.2234 304.4298 302.4479 302.2463 303.3477 304.9418 307.0892 308.3497 307.129 306.439 306.879 307.4194 308.0435 308.9765 310.7964 312.3475 313.5822 314.465 316.6741 316.9478 317.0406 316.9677 317.1252 317.6175 317.476 317.1083 317.4889 318.7656 319.2527 319.2729 319.5229 320.2369 321.0304 321.1621 319.7975 318.2583 315.4893 316.4853 317.2796 317.6071 317.3294 316.5378 315.6901 314.5799 313.3487 309.8776 308.2954 305.7563 303.4997 302.0318 299.1727 296.45 294.9589 292.7241 292.6621 291.5697 288.9494 285.9385 284.0381 279.9779 278.2728 275.9518 273.0457 265.0458 259.7616 256.9727 257.7064 258.963 260.8488 262.7343 265.0684 266.9575 268.0212 270.3992 274.0183 277.9372 281.7944 284.6505 287.5496 288.6311 288.6842 287.6926 285.5087 284.8543 282.2393 278.9846 277.9432 280.1815 282.3829 284.8143 289.0212 290.8543 292.9958 292.8745 291.613 288.5419 286.795 284.9881 284.1212 282.3737 282.1745 280.5562 278.6704 278.0725 277.1735 276.2072 275.0978 274.1801 272.6536 271.3687 269.1951 267.4244 265.4798 265.8249 265.2412 263.6497 262.7684 262.6608 261.6584 260.8131 260.0565 260.9431 261.0124 260.3968 260.3634 260.4593 259.3966 257.6217 256.9848 256.104 258.5838 258.6282 258.2929 257.4276 256.8089 254.3106 254.0902 254.3023 253.6383 253.9116 253.9081 253.8247 254.0685 253.8484 252.1496 252.2725 251.7741 251.4138 251.3163 251.4723 250.5859 250.0779 248.1474 245.3946 245.2414 245.1149 245.0375 245.84 245.6045 245.1839 245.1211 245.2918 245.538 245.9561 242.6624 242.9466 245.8844 245.4503 245.2418 245.3239 255.2563 271.0526 274.3919 276.9882 278.96 279.9334 280.3226 280.3067 280.4559 280.6832 279.9991 278.5962 275.9685 272.5994 269.397 264.7357 255.8284 256.3203 257.0435 251.3976 251.9179 253.9478 254.6747 254.2579 251.7007 248.8141 248.1083 248.0265 252.1397 257.0041 260.8898 265.266 268.5997 270.1535 273.5248 276.3491 278.5632 279.3056 279.0334 280.0379 279.6982 279.5615 278.9951 277.6275 277.2887 280.1627 283.4098 285.8113 284.5157 282.2218 279.8913 276.4241 272.1358 267.8328 265.0408 266.0874 272.1952 274.207 276.2332 278.2074 280.1736 282.2379 284.1209 285.7205 287.1976 291.5418 292.6573 293.3025 294.2097 293.7635 292.6151 290.5883 288.0652 284.5855 271.9417 265.5087 269.4466 273.7863 276.6712 278.672 280.8877 283.1441 285.5109 289.0196 290.438 292.1136 292.9205 293.7588 293.4875 292.9314 292.2633 291.8336 288.8315 288.4331 287.6173 287.9829 288.1069 288.664 292.4697 292.4049 293.435 295.905 296.4871 295.5851 294.5906 294.1986 293.0023 290.8918 289.4148 288.155 286.109 285.9718 285.9817 286.5236 286.8046 286.6723 286.9859 286.7667 286.0495 285.6853 285.4807 285.3859 284.9308 284.0457 282.644 281.1534 279.963 278.214 270.85 265.5667 258.9295 258.04 257.8099 -9999 +-9999 -9999 292.2575 287.8186 284.6807 287.2295 290.5209 293.0648 295.6614 299.3051 300.1926 300.8721 300.3188 299.4227 297.9639 295.4281 293.611 291.2517 282.8189 279.8631 277.9836 285.593 286.2193 285.2823 286.0773 286.5385 286.5287 281.532 275.7351 274.6539 271.0782 275.17 275.3664 275.3647 275.247 274.6891 275.1751 276.5775 276.2847 275.6988 275.2922 274.5952 274.053 272.8609 273.307 273.853 273.9083 273.3958 273.6055 274.714 270.0839 274.2316 273.4419 273.5201 273.0005 273.2242 273.3268 273.8261 282.3814 290.0064 290.1073 290.504 297.986 303.2573 302.3261 302.9184 306.5798 308.4096 310.1664 311.47 311.9079 312.8547 313.6824 312.969 309.5592 307.7401 308.8292 310.2465 311.3533 311.9225 311.0118 314.6073 316.7502 318.5111 319.2776 320.5208 321.637 322.4961 323.6004 324.5269 324.7647 324.5441 324.3602 324.5027 324.9664 325.2435 325.8426 326.564 327.2193 327.9508 327.6064 327.0293 326.5305 325.5806 324.7567 323.4993 322.6319 322.1158 321.4575 319.1664 318.2968 318.2857 318.2049 317.4088 315.3046 313.3536 310.8486 308.6165 307.1968 307.3251 306.3942 304.9539 302.5726 302.3611 302.6803 303.7747 303.8536 303.0787 301.318 300.6317 301.1325 303.0016 303.5725 302.2734 301.4055 302.3215 305.6864 307.1992 308.5301 309.9173 310.5384 310.86 310.1477 308.5021 308.0605 309.7048 310.0338 309.9412 309.7293 311.087 312.0124 312.7248 313.8695 313.5649 311.0717 310.5603 310.8969 310.3926 310.3674 310.1962 308.7521 307.3853 305.3252 302.4465 302.0291 303.7899 304.2851 305.1982 307.0509 308.3143 310.4384 313.2674 316.8858 317.4835 317.3298 316.4348 315.4709 313.3642 311.8546 314.9308 317.5102 309.7309 308.1752 309.3217 312.2967 315.4709 317.3976 318.9223 318.1541 316.8893 314.3292 315.0213 317.2301 318.1081 317.9012 317.2187 315.9739 314.0585 311.2751 307.0947 304.2179 302.607 302.4567 303.3898 305.0719 306.9853 308.8839 310.4547 310.0661 310.5107 310.6682 311.3485 312.0066 312.6378 313.6285 314.9224 315.889 317.464 317.5953 317.5984 317.6162 317.537 317.4673 317.0724 316.4219 316.9575 318.7395 319.1675 319.3966 319.8214 320.3982 321.0033 321.6899 321.2161 319.6279 317.3742 317.2605 317.4995 317.6214 317.3548 316.3835 314.654 312.7897 310.5187 305.3269 303.3972 301.8366 300.439 298.4772 295.5952 292.6312 290.9585 288.871 289.2133 288.1597 286.1038 284.2809 283.3649 279.6885 278.6455 276.4097 273.2043 264.0176 259.5505 256.7091 258.0609 259.4348 261.2156 263.6107 266.1497 267.9758 269.2111 270.8474 274.3549 278.7808 282.3784 284.3753 286.7874 288.6728 288.7728 288.5124 286.4211 284.4381 282.7869 280.2768 278.726 281.1317 284.4161 286.6292 288.779 290.5247 291.3627 289.4023 287.3358 285.3712 286.795 284.9881 284.1212 282.3737 282.1745 280.5562 278.6704 278.0725 277.1735 276.2072 275.0978 274.1801 272.6536 271.3687 269.1951 267.4244 265.4798 265.8249 265.2412 263.6497 262.7684 262.6608 261.6584 260.8131 260.0565 260.9431 261.0124 260.3968 260.3634 260.4593 259.3966 257.6217 256.9848 256.104 256.2394 255.8261 254.9001 254.7016 254.4788 252.8225 252.2427 252.2799 252.1585 251.9701 251.2764 251.588 251.9006 251.4836 250.0226 249.8609 249.477 248.4818 250.1489 249.1934 250.1206 249.4519 248.594 245.646 245.2289 245.2751 245.1989 245.1981 245.2558 245.3785 245.3688 245.6233 245.8305 245.9821 242.6458 242.552 245.632 245.4592 245.2869 244.7292 253.5046 268.5831 273.101 276.0297 277.8163 277.9106 277.7893 278.1823 278.7825 278.6194 278.3969 277.7994 276.5496 273.696 270.573 267.5517 258.2473 256.3828 256.6216 253.3293 249.761 250.3068 251.8596 251.6296 249.7333 247.6289 247.5487 247.129 257.7691 262.2227 266.022 268.8661 270.8351 272.8379 275.2706 278.0413 280.5905 283.9087 283.6268 283 282.9598 281.3827 281.0246 280.8058 279.6988 280.765 285.3975 284.9789 283.5073 280.8793 277.7808 274.6735 271.317 266.7773 263.8436 265.3617 271.8621 273.8283 276.0526 278.0083 279.8785 281.9104 283.757 286.0021 287.8501 290.1672 291.4073 292.9642 293.3675 292.3514 290.9182 288.1573 284.7721 280.2439 266.8066 265.1247 270.766 274.0182 276.5347 277.9917 279.5629 281.8018 283.1696 286.4545 288.9318 291.1097 292.1966 292.6522 292.4839 291.29 290.2177 289.2182 286.1148 285.3104 285.213 285.32 284.8157 286.7531 288.0853 289.9873 291.675 295.1494 296.2708 296.3784 296.0736 295.7065 295.0769 293.7194 291.4904 290.2055 288.4982 288.0585 287.7485 288.161 288.2248 287.7725 286.9927 285.8139 284.6027 283.9756 283.5067 283.0978 282.4008 281.9583 281.0636 279.6591 278.3786 276.7224 270.6645 267.3037 262.7112 258.6335 257.566 -9999 +-9999 -9999 295.1134 293.5432 287.1013 285.933 288.8345 291.1977 293.4762 297.6644 299.2888 300.9108 301.0757 300.0466 298.4945 295.8605 294.1889 290.8595 282.722 279.7051 285.3536 289.9361 292.6082 292.6616 292.6868 293.0051 293.203 287.0931 280.6551 277.073 275.0473 270.9898 272.0987 275.25 275.688 275.504 274.4416 275.0228 275.7501 275.7518 275.1136 274.874 274.8612 274.0254 273.4995 273.8161 273.601 273.5452 274.3795 270.664 273.1159 274.6346 274.2117 274.0623 273.7393 274.0526 273.7009 273.498 275.231 280.244 288.2302 296.0323 301.8304 299.7968 299.1661 302.8127 305.0943 306.8885 308.4048 309.369 310.1697 308.86 312.8854 313.8609 314.3965 313.8367 313.3024 313.9655 315.4138 315.8541 314.3473 313.7325 316.4604 317.9339 319.5059 320.9242 321.7816 322.6305 323.293 324.0034 324.1683 323.6461 323.3703 323.4745 323.9978 324.8695 325.4929 326.1994 327.0379 328.5786 328.2666 327.6661 327.3301 326.3668 325.4428 324.9791 324.0412 323.1078 319.9205 319.4702 319.227 319.8983 320.0779 319.0622 317.3667 315.9594 313.8627 310.6694 310.4852 308.9547 309.0651 309.6819 306.9059 303.7473 301.5344 300.5666 300.3136 299.5847 299.2254 299.2134 300.6944 302.3719 302.2311 301.8743 300.3887 301.9611 305.3567 306.7875 307.2423 307.8613 308.5177 308.6291 308.162 306.7962 306.611 308.727 308.8149 308.5731 307.8752 309.0036 310.278 311.4503 312.9022 313.4079 313.9613 313.2547 313.5121 312.9663 312.8145 312.6558 311.2141 310.6668 308.565 306.1196 304.4945 303.7705 304.7857 306.0092 307.2436 308.6019 310.7702 312.6133 316.1941 317.4622 317.882 317.6408 317.1491 315.5977 313.3996 315.6113 317.9167 314.0091 311.0477 310.5638 311.7362 314.9837 316.965 318.575 318.739 317.8307 314.848 315.0927 315.6832 317.2838 316.8722 315.7894 314.2282 312.3999 309.8463 306.2864 303.7941 302.7928 303.0781 303.1671 304.2049 305.3997 308.149 310.2609 313.3311 314.3453 314.5465 314.8993 314.7574 314.5841 314.4986 316.1178 317.0034 317.6405 317.708 317.4792 317.5451 317.6615 317.3582 316.5223 315.8319 316.5612 318.3635 318.4513 318.5888 318.8953 319.3663 319.8095 320.2697 320.4294 319.9095 317.6738 317.2495 316.2124 315.9137 315.8819 315.5687 314.1773 312.5845 310.7485 305.3445 301.8082 296.832 295.1212 295.0444 291.9799 287.998 286.2813 286.8366 283.6145 282.8977 282.5474 281.0558 280.3227 279.5612 278.9535 277.312 273.9049 264.0176 259.5505 256.7091 258.0609 259.4348 261.2156 263.6107 266.1497 267.9758 269.2111 270.8474 274.3549 278.7808 282.3784 284.3753 286.7874 288.6728 288.7728 288.5124 286.4211 284.4381 282.7869 280.2768 278.726 281.1317 284.4161 286.6292 288.779 290.5247 291.3627 289.4023 287.3358 285.3712 283.5158 282.6371 282.1561 279.45 278.2126 277.5753 276.4077 275.5471 274.7216 273.7354 273.1501 272.4709 271.3247 270.5583 268.3104 267.0891 265.0258 262.8697 261.8322 260.4239 259.3107 259.5054 258.4792 257.7449 257.7239 257.506 257.2435 257.0012 256.3818 256.4872 256.1099 254.4935 254.1283 253.742 253.1519 252.6742 252.5315 252.153 252.1177 250.477 250.5904 251.172 251.6089 251.4937 251.1579 249.5151 249.6144 248.4677 248.133 248.1042 248.1035 248.1011 249.6013 246.3697 246.3186 246.616 246.3401 245.7534 245.4651 245.4167 245.3285 245.2901 245.3213 245.4162 245.5149 245.7201 245.1704 245.6738 244.4534 242.3195 245.558 245.3089 245.1461 244.4001 250.6842 263.591 267.6971 270.7009 271.5243 272.0858 275.5235 276.175 276.0052 275.8434 275.6733 276.2721 275.1784 273.4857 270.9161 268.9456 263.0127 255.7888 256.1787 254.8319 252.5577 250.2296 248.7491 248.4632 248.3827 247.3789 247.6914 248.3558 260.0227 264.2179 267.5818 270.0551 272.2678 274.4106 276.2614 278.7527 281.0807 284.0732 284.5699 284.3812 284.4394 284.258 283.831 283.2973 282.944 282.8178 284.8947 283.7309 282.3765 279.9634 276.9588 273.6221 270.6884 265.9771 263.6074 267.9813 271.0327 273.2787 275.3487 277.45 279.1693 280.9167 282.7386 284.1723 286.3246 290.2293 291.565 291.9415 291.2938 290.0871 287.8732 284.8743 280.6759 276.3295 263.4632 268.2384 270.8933 273.0982 274.0597 275.8416 277.2986 279.0834 281.2168 286.0338 288.8328 291.0112 291.6958 291.3073 291.3338 290.2217 287.5401 285.0998 282.0867 281.901 282.1472 280.9951 282.911 285.0322 286.7159 288.7359 290.9037 294.3939 295.6371 296.7929 297.0314 296.4158 296.5997 295.8095 293.8976 292.1 290.1759 289.7382 289.4326 289.1815 288.3355 286.9656 285.2806 284.1076 283.2014 281.7181 281.3892 281.0629 280.4391 279.9089 278.9984 277.8509 276.3011 275.0129 270.7966 268.3577 266.2711 262.1895 257.5764 -9999 +-9999 -9999 299.4693 295.6804 291.112 287.0887 287.9482 290.8586 293.0829 297.2115 299.0255 299.9975 301.2263 300.4294 298.2772 293.7159 288.8003 287.3726 281.3324 281.4358 288.2753 292.8612 296.1906 297.9634 299.0372 300.5374 300.8915 289.5758 285.2269 284.8211 279.0688 274.8181 272.6169 270.8338 273.4218 275.23 274.7204 274.2188 274.089 274.2209 274.625 275.0715 275.2974 275.178 274.8627 274.2517 273.8105 273.2978 274.5169 270.0498 274.9761 274.7692 274.6569 274.4301 274.1915 274.2381 273.826 273.766 274.0706 274.9788 279.7512 291.8435 299.9625 293.4691 297.9411 301.8065 303.0205 303.3349 304.5633 303.3539 304.146 303.6375 307.1639 310.0616 314.0353 315.4139 316.0123 316.6649 317.3778 317.7493 317.4714 314.2812 314.8657 317.2057 319.0923 320.1241 321.1924 321.879 322.8604 323.3156 323.1153 322.7144 323.5129 323.8394 322.4241 324.1338 325.1668 326.4643 327.391 328.2437 327.9356 327.564 326.6577 326.5551 325.9096 325.4545 324.8752 324.4464 322.0825 320.8273 320.1573 320.713 320.82 320.2069 318.8032 317.2004 315.4142 312.78 311.0251 310.8633 311.4829 310.849 309.1395 306.0145 303.5942 302.052 300.4221 299.3926 298.0833 298.1876 300.0648 299.4787 299.4908 300.1604 299.4738 303.0225 305.7758 306.4005 306.2194 305.9628 306.4804 306.7288 306.1769 304.9196 304.8739 306.8368 306.97 306.3661 306.8631 308.3322 309.314 310.98 312.2839 313.2424 314.3142 314.7413 315.0243 315.1484 314.9513 314.561 313.6559 313.043 312.673 309.3985 308.0151 307.6169 308.0232 308.9136 309.1206 310.5655 311.943 314.0698 317.692 318.6382 319.0008 318.9266 318.3427 317.0153 315.7385 316.7476 318.7927 317.5169 315.6512 313.5075 312.6852 313.788 315.9487 317.8454 319.1772 318.6562 316.3145 315.5291 315.8922 316.015 315.4363 314.3188 312.4196 310.0471 308.4861 304.9761 303.6743 303.6698 304.0452 304.8336 305.4884 306.252 307.2557 309.0589 313.1978 315.0685 316.5204 317.0964 317.0686 316.5614 316.459 317.0483 318.0584 317.9524 317.3271 316.8856 316.9563 317.0031 316.6038 315.6522 315.176 316.4016 317.6137 317.6788 317.4644 317.7874 318.2815 319.8095 320.2697 320.4294 319.9095 317.6738 317.2495 316.2124 315.9137 315.8819 315.5687 314.1773 312.5845 310.7485 305.3445 301.8082 296.832 295.1212 295.0444 291.9799 287.998 286.2813 286.8366 283.6145 282.8977 282.5474 281.0558 280.3227 279.5612 278.9535 277.312 273.9049 262.0612 260.9472 257.3357 257.9803 259.698 262.8311 265.1769 267.1718 269.0562 271.0317 272.0475 273.9208 277.4562 279.6561 282.1313 284.7488 286.5978 288.0448 287.909 286.6504 284.8264 283.3109 281.0926 279.5518 281.5167 284.8636 286.8556 287.3689 288.4008 287.5493 284.5775 283.0558 282.463 280.5511 279.7863 278.963 276.6728 275.7027 274.9778 273.6256 273.1535 272.5117 271.5004 270.3724 269.7769 269.4299 268.2828 267.2921 265.9144 263.8933 262.2333 260.8745 259.049 258.2406 256.1727 256.0269 256.0795 256.0911 256.0516 255.9158 255.004 254.0057 254.5595 252.9105 252.5221 252.3169 251.8798 251.628 251.3126 251.2744 250.8548 250.5408 250.3313 250.2775 249.8262 249.3828 249.055 248.8355 248.7593 249.2914 248.5354 248.1703 248.346 248.651 248.8244 249.8831 247.7292 247.4703 247.2152 247.445 246.0008 245.2679 245.5094 245.2783 244.817 244.8042 245.146 245.6134 245.7262 245.7607 245.9352 245.6872 242.0621 245.3921 245.0483 244.92 244.5408 248.7624 257.0841 261.0097 264.0734 267.8559 271.3687 272.6792 272.5361 272.3672 272.1681 273.532 273.4312 274.0764 273.323 272.6959 271.4151 268.2336 256.41 255.8428 256.2685 253.6334 252.1996 250.7641 248.7793 247.452 247.1575 246.9924 248.8292 260.2748 263.5197 265.7628 267.8112 270.7514 273.2861 274.9198 277.7011 280.6242 283.2999 284.5963 285.7163 286.2482 286.684 286.4797 285.3813 284.4091 283.9627 284.391 282.8166 281.1231 278.776 276.106 273.5193 270.5338 265.5016 262.9839 267.0713 269.6879 271.9882 273.887 275.8185 277.6035 279.005 279.9818 282.8077 287.2807 288.6552 290.013 290.2809 288.6523 286.7147 284.209 280.8204 276.7794 272.3784 264.8271 268.5312 271.6469 273.4001 274.3119 277.0379 279.8341 281.6128 283.8376 288.4871 290.1227 291.1059 290.8966 290.0752 288.466 287.0011 284.4762 281.664 276.994 278.8481 279.352 279.7811 281.9133 284.1312 286.3949 289.2937 290.7809 293.5829 294.6263 295.4514 296.425 296.5882 296.3928 295.5462 294.5124 292.951 290.6444 290.4444 290.0993 289.148 287.7105 285.4901 283.837 282.6638 281.619 279.5143 279.1913 278.6488 277.9523 277.3382 276.4247 275.4407 274.2076 272.9538 270.2106 268.2734 265.9708 261.8864 257.6241 -9999 +-9999 -9999 303.3935 300.4322 295.5236 292.5288 290.206 290.5588 292.5744 297.2513 298.8103 299.901 301.491 300.7728 297.4705 291.5526 293.6037 292.4132 281.7523 283.9205 287.4676 291.9165 296.2432 299.9487 303.2542 305.7709 306.8346 293.4199 294.064 294.9529 287.9172 280.7015 277.1549 274.9821 270.7856 270.4201 273.6884 273.5209 275.0479 274.5895 274.2101 274.4538 274.4075 274.3308 274.2793 274.4431 274.6752 274.1828 274.3721 271.1043 275.2754 275.2041 274.9333 274.8887 274.7572 274.2625 273.956 273.923 273.7352 274.2101 276.4853 286.9557 290.8422 292.4073 297.9409 299.3082 298.1674 297.9771 295.9282 294.1136 295.7256 297.9516 307.7878 310.3852 314.1029 315.8445 317.4418 318.1416 318.5772 319.0537 319.3815 317.8502 316.0186 315.7494 317.6632 319.6305 320.3821 321.2416 322.1516 322.3467 321.3421 320.9625 321.0057 321.4384 322.2013 322.952 324.3236 325.8423 326.8999 327.1285 326.3744 326.3391 326.1507 325.4032 325.3237 325.2875 325.7241 325.4346 322.3785 322.1457 321.973 321.9236 321.2119 320.892 319.5522 318.1275 316.395 312.5781 312.2949 312.8068 311.8474 310.2166 308.0073 306.2429 305.5437 305.7422 305.0448 302.9744 300.3272 297.0581 296.7331 297.226 297.4969 297.7195 299.4577 304.8697 305.4383 305.328 304.8813 304.4654 304.2962 304.4602 304.2374 303.0941 302.1992 304.0779 304.5592 304.8989 306.6836 307.7859 309.2306 310.4519 311.5498 312.3733 313.5951 314.4314 315.1563 315.6754 316.1236 316.2419 315.9372 315.5657 313.5383 311.9863 311.1454 310.9373 312.0072 312.2082 312.1974 312.0894 313.3769 315.6385 318.967 319.7701 319.8114 319.9894 319.6852 318.3368 317.7907 318.254 319.7625 319.6516 317.7686 315.3132 313.5537 313.6539 315.8111 317.2049 319.5773 319.5158 317.4281 316.6177 316.0034 315.6994 314.7087 313.1946 311.4216 309.9669 308.7851 304.4866 303.6743 303.6698 304.0452 304.8336 305.4884 306.252 307.2557 309.0589 313.1978 315.0685 316.5204 317.0964 317.0686 316.5614 316.459 317.0483 318.0584 317.9524 317.3271 316.8856 316.9563 317.0031 316.6038 315.6522 315.176 316.4016 317.6137 317.6788 317.4644 317.7874 318.2815 318.7518 319.0797 319.2168 318.9748 317.3019 316.0699 315.1453 313.7536 313.6393 314.1137 313.9294 313.2788 311.5957 306.5718 304.1213 300.7612 296.2374 289.4734 287.0666 283.3057 278.6787 279.0148 275.2824 276.1805 277.7532 278.3562 278.9667 278.5665 277.827 276.1099 274.3171 262.716 261.96 259.0363 258.6584 259.4825 261.484 264.852 267.5297 269.7032 271.9642 272.1846 273.3083 275.7032 278.3581 279.8363 281.8958 284.4715 285.6325 285.2906 285.0121 284.3358 283.9281 282.0367 280.2438 280.6985 283.9915 285.5081 284.5616 283.3694 282.7711 281.3173 279.8629 278.1338 276.9121 276.3041 275.5723 273.377 272.0069 271.1783 270.2102 270.1118 269.7118 269.0376 268.0587 267.0661 266.0665 265.6246 264.4578 263.1844 261.3644 259.907 259.0571 257.9326 257.2857 258.4072 258.0756 257.7672 258.2074 257.8009 257.0577 256.4645 256.1079 255.2158 254.5927 254.5369 254.4466 254.7659 254.2227 253.6464 252.8194 252.8363 254.6334 254.3312 253.5239 253.3692 253.0792 253.2558 252.7162 252.4455 252.2392 251.5588 251.9968 253.0266 253.4698 252.7397 252.193 251.8995 251.9855 252.2173 251.8805 249.4065 249.7563 247.3016 245.6163 245.5279 245.6197 245.2432 245.2722 245.5017 245.5197 245.8616 246.0874 241.8824 245.7295 245.1904 244.909 244.5704 246.8033 259.498 263.4695 266.4079 268.4908 269.2795 269.0882 268.8591 268.3034 267.6139 268.9408 271.7954 273.7101 274.7365 274.5608 273.3777 270.3698 260.6311 255.8657 257.5363 254.6517 252.1656 249.6856 246.7852 246.9934 247.3293 247.1267 251.9258 258.264 260.1003 261.1397 263.8943 266.7581 269.9081 273.1446 276.6443 279.2456 283.2406 284.9279 286.377 286.9955 287.8211 287.804 286.763 285.7685 285.0051 283.8939 281.9018 279.0804 276.4866 274.1136 272.2742 270.0009 265.4646 262.552 266.3369 268.7644 270.724 272.2114 273.8418 275.2265 277.1466 278.9648 281.6808 285.4178 287.4073 288.9615 288.7148 286.6003 284.0991 281.124 277.8085 274.6893 270.2399 265.258 269.6762 272.4119 274.8927 277.2854 279.2106 280.8936 282.5634 284.7197 288.5358 289.6169 290.1372 289.0587 287.7326 284.7465 280.2644 277.9835 274.6407 274.3152 275.8184 277.5947 280.037 282.0936 284.5158 286.5745 288.5693 290.0948 291.8598 293.0533 294.0579 294.979 295.8314 295.9617 295.5304 294.4286 293.1618 290.5114 289.7302 288.6227 288.0184 286.8936 283.1785 281.1032 280.2414 279.4915 276.3652 276.371 276.2055 275.406 274.8695 273.9385 272.8699 271.8072 271.0567 269.0288 267.4741 264.9975 261.7945 257.9391 -9999 +-9999 -9999 306.3751 303.5292 300.1931 296.7027 293.4501 293.6769 293.196 297.0281 299.0458 300.4183 301.2726 300.938 296.4243 297.5203 299.0178 296.54 282.8123 286.6993 291.524 293.4288 294.8619 299.793 303.7629 307.1659 309.1246 300.2185 302.2841 304.108 300.8214 293.2056 285.4838 283.783 280.9283 277.5478 275.815 274.0211 273.8905 271.2675 270.9895 270.5277 270.16 270.1133 270.0483 270.8725 272.9252 273.2944 270.4852 274.1008 274.832 275.1196 275.065 274.9085 274.7827 274.3665 274.121 274.1865 273.8553 274.1825 276.7919 283.5629 289.4108 292.8853 294.5286 293.3279 291.2703 288.9819 291.3246 298.9205 302.9402 305.9165 310.5148 311.4999 313.6586 315.546 318.2008 319.0735 319.5297 319.9598 320.1895 319.8258 319.1954 317.6036 318.0923 318.8835 320.2919 320.8032 321.2147 321.2455 320.6361 319.7804 320.2138 320.3375 321.0406 322.0664 322.4693 323.6563 325.309 324.8452 325.1082 324.3344 324.0875 323.6509 324.3817 325.0518 325.9621 325.7624 323.8304 322.4 322.2645 322.0364 321.5099 321.1339 319.924 318.1678 316.3393 313.9387 313.7849 312.9825 311.5603 309.9275 308.598 308.9574 309.4332 309.662 308.5303 306.0286 302.5969 299.0291 294.8156 296.2345 296.1962 297.4146 297.2314 304.1887 304.0562 303.5698 303.0678 302.1455 301.6534 302.0677 301.9817 300.6199 300.1953 301.4821 302.2515 304.3435 305.6711 307.2863 308.7917 309.9532 310.6875 310.9588 312.2249 313.4388 313.9718 315.7473 316.0965 316.6937 316.9307 316.7981 316.2814 313.8445 313.1645 312.8889 313.5946 314.2468 314.2385 314.3806 313.3769 315.6385 318.967 319.7701 319.8114 319.9894 319.6852 318.3368 317.7907 318.254 319.7625 319.6516 317.7686 315.3132 313.5537 313.6539 315.8111 317.2049 319.5773 319.5158 317.4281 316.6177 316.0034 315.6994 314.7087 313.1946 311.4216 309.9669 308.7851 304.4866 304.8014 304.8643 305.3618 307.0993 308.1489 307.8886 307.7062 308.6961 313.0022 314.8316 316.6206 318.1962 318.5831 318.1402 317.9054 318.4484 318.5436 317.9028 317.3977 316.7275 316.0338 316.0845 315.6339 314.5232 314.6222 315.8494 317.0869 317.0392 316.8044 316.868 316.9703 317.6206 317.9424 318.1583 318.036 316.0963 314.8381 313.6288 312.0124 311.0216 311.259 312.1355 312.2282 311.2764 308.2066 305.472 302.3663 299.0578 294.5527 289.1733 285.4026 280.6847 284.1777 281.7399 276.011 270.9395 272.0346 275.7333 276.6571 277.0536 276.3158 273.8911 267.0111 265.0658 260.7904 258.4195 259.3694 260.2891 263.416 266.0497 268.6763 271.9512 272.7168 273.1245 274.3042 276.194 278.0106 279.5235 281.6391 282.0693 281.9602 283.0913 283.401 283.299 282.7594 281.3935 280.6222 281.8094 282.6452 281.568 279.6355 278.2318 276.6014 274.8454 273.0134 272.3473 271.934 271.0971 269.2644 267.4739 266.8351 265.8217 265.8118 265.3306 264.7607 264.4493 263.7687 262.2764 261.9209 261.1384 260.1078 259.4165 258.9109 258.115 257.4369 260.4355 260.1174 260.7024 260.8232 260.2323 259.9801 258.8467 258.0135 257.4731 258.3332 259.4776 259.1373 258.5514 259.3712 259.5474 258.1664 257.5189 257.9638 258.5619 258.9626 259.4686 259.3914 259.5368 259.9648 259.6128 258.5442 257.8459 257.8337 257.1622 256.7509 256.2121 255.7448 255.4407 255.4102 255.4205 255.4055 254.7033 253.1398 251.734 248.4844 246.3049 245.6987 245.6165 245.5109 245.2092 245.2497 245.3521 245.6136 245.9593 246.3409 241.8704 244.3455 244.8256 244.663 244.8226 256.1042 261.3579 264.6245 265.6966 265.5496 265.2592 264.7599 262.7373 262.9971 269.8022 272.4218 274.931 275.5955 275.3594 273.9889 271.9181 264.716 255.1808 255.9252 255.2388 251.4983 248.6888 246.7458 247.5643 247.1468 248.5195 251.1592 256.4851 260.1538 262.8405 265.4813 268.3453 271.2238 274.2041 276.8882 278.9828 281.9419 283.1651 283.7734 284.9182 286.5869 286.6833 286.3977 285.7152 285.1154 283.3333 281.1597 278.3629 275.6785 272.1782 270.5991 269.2159 266.1288 263.9165 266.0806 268.1043 269.5098 270.4403 272.6121 274.4392 276.6251 278.2646 280.36 284.6363 286.6092 287.2716 286.5281 284.5992 282.1528 279.2891 276.2261 273.3578 260.7631 265.8069 269.5587 272.7803 275.0686 277.783 280.6233 282.9733 283.9105 285.2064 287.9746 288.8882 289.0586 287.5186 285.3261 281.5494 277.538 269.5433 269.1073 273.6579 275.9796 278.3297 280.5003 282.5192 284.2589 286.2591 287.7323 288.602 290.3981 291.6589 292.5623 292.6626 293.5969 294.299 295.0662 294.7944 293.9054 291.5814 289.5678 287.6512 285.2771 283.5731 281.8424 280.5892 278.6277 277.6047 275.896 273.1429 272.9591 272.8945 271.5928 270.2972 269.4958 268.7101 267.9582 266.6304 265.4533 263.6855 259.8113 257.0649 -9999 +-9999 -9999 309.0882 307.2066 304.3866 301.1747 297.5295 295.1154 295.7872 297.4665 299.563 301.3557 301.8344 300.9266 298.9186 300.8564 301.3578 298.4766 285.0609 288.6333 293.5629 297.3795 298.7942 299.4376 301.5705 304.8869 307.8289 307.4397 304.7327 309.3232 309.5096 302.8733 297.8319 298.0847 295.6449 293.4293 287.4778 286.1764 287.1636 288.5973 286.6999 282.0751 276.6708 275.4049 275.2033 275.3162 274.6551 274.6829 271.5166 273.4989 273.7567 274.2922 274.0845 274.7552 274.4289 274.1702 274.1143 274.2091 273.8635 273.7826 277.166 292.2841 295.0623 289.6354 288.0617 285.699 287.8908 293.6514 300.9147 306.7302 309.8104 311.6623 313.07 314.2062 314.8746 316.2568 317.1766 318.2496 318.5883 318.8868 319.6136 320.7734 320.7398 320.2335 320.3399 320.3603 320.4301 320.6873 320.6056 320.1146 318.9334 318.4448 318.506 318.8102 319.4265 321.2428 322.0503 321.7132 321.7984 322.6758 322.3676 321.9615 321.1713 321.6593 323.5865 324.558 325.5428 325.6353 324.5848 324.0992 322.3902 322.3019 321.5095 320.5091 319.1351 317.5872 316.3796 315.7168 315.0547 313.8935 313.0389 312.1324 311.2308 311.3062 311.6661 312.1698 311.7947 309.5343 306.5373 302.5618 297.4706 295.2986 295.8686 296.6783 295.6721 302.4226 301.7113 301.2011 300.6084 299.4407 301.6534 302.0677 301.9817 300.6199 300.1953 301.4821 302.2515 304.3435 305.6711 307.2863 308.7917 309.9532 310.6875 311.6048 312.2249 313.4388 313.9718 315.7473 316.0965 316.6937 316.9307 316.7981 316.2814 313.8445 313.1645 312.8889 313.5946 314.2468 314.2385 314.3806 315.2227 316.8578 319.3219 319.7995 319.7367 320.1755 319.8512 319.4728 319.4719 319.5257 320.5406 321.0833 319.5317 317.7201 314.9768 314.269 315.0928 317.1575 318.9924 320.1621 318.8171 317.5561 316.2275 315.8792 315.1514 312.8456 311.7184 312.0449 312.505 312.4401 310.3339 310.0278 310.0094 310.5793 310.7817 310.4029 309.6865 309.3865 312.6937 314.5711 316.36 318.2349 319.036 319.2074 319.0593 318.9528 318.9273 317.9289 317.3992 316.6568 315.6396 314.6648 314.1818 313.4336 314.1347 315.1624 316.1542 316.5954 316.3125 315.8259 316.2768 316.5226 316.7739 317.4913 317.1075 315.4835 313.9535 312.6514 310.6203 308.9452 308.7103 310.3789 310.5429 309.5021 306.8483 305.8907 303.6788 301.3308 299.2118 297.0877 293.3098 290.7485 289.8656 288.54 286.6847 283.1891 277.9629 271.451 266.949 270.9481 272.6851 273.0242 267.7918 265.3702 262.9384 259.2805 259.5403 260.3987 261.5064 263.6716 266.5587 271.5203 273.1671 274.0335 274.1367 274.8234 275.4584 277.202 278.8237 279.3597 279.7453 280.3683 281.5826 281.9051 282.5127 282.5019 281.2477 281.464 281.2238 278.3165 274.6508 273.1711 271.4144 269.3036 267.8348 266.9695 266.0146 265.0811 263.7727 263.5201 263.4323 262.7313 262.282 261.9434 262.0035 261.9644 261.4229 259.5065 259.3268 259.7504 259.2641 260.3734 260.534 262.2639 263.5621 263.0147 262.8602 262.7971 263.0324 262.3694 261.3745 259.9268 259.3671 260.5594 261.9216 262.3679 262.5402 262.7071 262.8914 262.8912 262.619 261.9098 262.162 262.2968 261.4614 262.188 263.2654 264.3944 264.6883 264.6345 263.2504 261.8701 261.4055 260.0515 258.9757 258.2932 257.5722 257.417 256.9993 256.6142 256.0832 255.667 254.2448 251.6845 248.6618 247.2907 246.4989 245.7014 245.3354 245.1024 245.0159 245.1816 245.2101 245.3204 245.8597 245.3888 241.8398 243.5744 244.8473 244.5057 249.8732 255.2422 258.7578 261.4949 261.6178 260.6913 259.0009 259.4918 262.9887 269.3116 272.2898 275.1493 276.5357 276.3923 275.272 273.6499 269.5519 257.5045 255.2615 255.1999 252.1531 248.4746 246.5816 246.8827 246.8327 248.9855 252.281 256.998 259.9764 262.5594 265.0209 267.6271 270.5365 273.6373 275.1415 276.7781 278.7687 279.689 280.5565 282.8325 284.4373 284.6436 284.9425 284.749 284.2925 282.0171 280.2035 277.4422 274.9081 273.0087 271.6257 269.1359 266.0543 263.2303 264.7888 266.2285 268.8219 271.2362 272.8851 274.5064 275.9807 277.6633 279.515 283.9907 285.2667 285.176 284.3102 282.7735 280.7179 277.5775 274.0089 270.0732 261.3682 266.5547 270.4384 273.7062 275.9775 278.3403 280.6214 282.3253 282.9344 284.7785 286.6642 288.1431 288.2054 286.3853 283.5674 280.1457 275.3842 268.1675 268.1426 272.5653 275.5501 278.2207 280.3189 282.1394 283.8094 284.9602 284.4449 284.657 288.5895 289.5449 289.7994 289.9767 291.1089 292.7238 293.8927 294.326 293.9874 292.1646 290.4003 287.9995 286.1249 285.1688 284.0375 282.0051 279.8862 277.1227 274.5547 272.5499 270.4962 268.338 266.5658 264.2702 262.892 261.6866 261.4305 261.0533 261.1469 260.7928 257.6683 256.9928 -9999 +-9999 -9999 311.5967 309.7693 308.0136 305.2144 301.095 298.0407 297.0602 298.8828 300.7491 302.4366 302.288 302.5167 302.0471 303.1598 300.9226 298.0274 285.7895 287.9538 294.7689 298.5141 301.3093 303.318 304.376 305.9194 307.7328 310.9037 308.6557 311.0332 312.971 310.083 308.2901 308.5276 306.4809 301.9736 295.4703 294.9969 293.618 296.6643 295.8831 291.2502 285.5743 279.3842 276.8681 274.3415 274.0894 273.4334 274.1592 273.5692 273.6325 274.4792 273.8059 273.9147 273.9426 274.0383 274.1126 273.9263 273.8619 273.8877 275.3225 288.3063 289.7328 282.2856 282.4044 290.2529 296.0029 302.3161 309.7502 314.0286 316.1529 317.7404 316.5013 316.6124 316.009 315.8145 315.8182 316.0365 316.2556 317.006 317.5332 320.2327 320.6899 320.5252 320.1373 319.9047 319.5972 319.3176 319.0564 318.9344 318.3856 316.9206 316.5616 317.2389 317.7987 318.6416 318.8148 319.461 317.8801 318.8309 319.6936 319.2484 319.4356 321.2654 323.5597 324.7797 324.4984 324.6151 324.5616 324.5269 323.8512 322.5434 321.5095 320.5091 319.1351 317.5872 316.3796 315.7168 315.0547 313.8935 313.0389 312.1324 311.2308 311.3062 311.6661 312.1698 311.7947 309.5343 306.5373 302.5618 297.4706 295.2986 295.8686 296.6783 295.6721 302.4226 301.7113 301.2011 300.6084 299.4407 298.3793 298.2196 299.1251 298.3167 298.571 299.5238 302.2565 304.3065 305.711 307.0412 308.3474 308.9186 309.0504 310.185 311.5921 312.5989 315.0684 315.7045 316.0966 316.9327 317.3885 317.4653 316.4735 315.946 315.1463 314.9769 315.0449 315.8215 315.8335 316.0983 316.5378 317.4801 318.6294 318.9446 318.8567 319.2529 319.239 318.9366 318.8778 319.5014 320.494 321.5348 320.6274 318.9031 316.7919 315.8257 315.6408 317.0301 318.5081 320.356 320.3979 319.1272 317.3597 316.6051 316.0204 314.8394 314.1574 314.2966 314.1378 316.3252 315.4421 314.6734 314.2109 313.5315 312.8842 312.3264 311.6793 311.0128 312.5548 314.3201 316.3808 318.0616 319.0905 319.2087 319.3306 319.2163 318.8592 317.5075 316.9179 316.3212 315.5643 314.6357 313.3007 312.9239 313.5703 314.2996 315.4617 315.9292 315.8275 314.9631 315.3146 315.521 315.852 316.8074 316.1305 313.9072 313.3023 312.0134 310.2492 308.3638 307.0233 308.3333 307.7041 306.6729 303.9369 303.3356 302.9962 303.2383 304.4007 303.9588 300.4037 296.507 293.9642 292.1931 291.8516 289.7315 285.5409 280.7595 276.0858 269.0172 264.9279 266.7373 266.6701 264.1278 262.3361 258.5832 260.3265 262.8316 261.6361 261.8108 264.3083 270.07 272.8487 274.5623 274.9156 274.2878 274.2136 275.0482 275.4562 276.4917 277.0731 277.557 279.0103 279.816 281.0572 280.7349 280.9303 280.9169 280.0806 276.6194 272.3303 269.8654 267.8128 267.4489 270.4644 270.2101 270.469 270.6056 271.0747 270.0561 268.3383 268.5117 267.998 266.1523 265.3672 265.6029 265.4316 264.123 262.0841 261.8847 261.686 263.7198 265.8263 267.4915 266.1375 265.0668 264.7204 264.6843 264.4223 263.2228 262.6916 261.0952 261.3339 262.9414 264.215 265.9977 266.1542 265.89 265.5716 265.4287 265.0036 265.7335 265.4686 265.6518 265.1504 265.2468 267.0844 267.8204 268.8877 268.6639 267.3614 265.7842 264.9658 263.1706 261.6812 260.5024 259.867 259.4687 258.9312 258.3575 257.7238 257.1154 254.7618 252.0076 249.0274 247.5137 246.9353 246.6431 245.7091 245.1973 245.0731 245.206 245.4521 245.4985 245.7342 245.8612 246.0598 245.8921 242.8586 241.8371 245.1949 248.7661 253.0519 256.1291 256.4305 255.2556 256.4667 260.2455 264.2074 269.9206 272.6059 275.3456 277.4259 277.7365 276.709 275.3029 272.8435 262.327 255.4669 256.0233 252.2424 249.9162 246.5529 246.5785 246.4518 248.4987 252.1498 256.6429 259.069 261.5922 263.8566 266.3266 269.2407 271.4128 272.4976 273.301 276.8518 278.1143 279.4036 280.6938 281.9404 282.5484 282.9712 282.8705 282.8497 281.6712 280.3063 279.201 276.8848 274.1415 272.0385 269.4276 265.1724 261.5953 263.5368 265.0794 267.433 270.0908 271.608 273.2036 274.4152 276.4301 278.4147 282.6004 283.3423 283.4452 282.2623 278.9118 276.6431 274.5224 271.9835 267.2064 263.0745 265.8115 269.2983 271.8754 273.8517 276.0836 278.1967 279.5087 280.174 283.5015 285.5949 287.438 288.0784 286.4591 284.2681 280.944 276.035 268.6337 269.6137 272.7779 275.391 277.2607 279.3358 280.9509 281.739 284.9602 284.4449 284.657 288.5895 289.5449 289.7994 289.9767 291.1089 292.7238 293.8927 294.326 293.9874 292.1646 290.4003 287.9995 286.1249 285.1688 284.0375 282.0051 279.8862 277.1227 274.5547 272.5499 270.4962 268.338 266.5658 264.2702 262.892 261.6866 261.4305 261.0533 261.1469 260.7928 257.6683 256.9928 -9999 +-9999 -9999 311.3814 310.5259 309.6766 308.0974 305.4722 300.3628 298.4988 300.5247 302.8881 304.0659 304.4981 304.0544 304.6075 303.9272 302.6763 298.9053 286.1535 289.2325 296.0007 299.3967 302.4833 305.3869 307.6325 309.2893 310.7457 312.6181 312.0955 312.4109 314.9274 315.9745 315.8541 314.731 312.537 308.4152 303.8273 304.4444 302.3017 301.2552 300.4211 296.1993 290.9275 285.1172 279.4669 274.2128 274.1261 273.0112 273.5591 273.5199 273.5574 273.8935 274.0307 273.8372 273.9008 273.7374 273.7667 273.7763 273.8777 274.0331 275.0135 279.7243 280.3622 286.7131 292.8517 298.6533 304.593 309.7583 314.7564 317.7458 318.4285 317.9926 316.1815 315.2058 312.9149 313.5445 314.0862 313.0913 312.2546 313.1864 315.2889 319.1467 319.5585 319.5594 320.1373 319.9047 319.5972 319.3176 319.0564 318.9344 318.3856 316.9206 316.5616 317.2389 317.7987 318.6416 318.8148 319.461 317.8801 318.8309 319.6936 319.2484 319.4356 321.2654 323.5597 324.7797 324.4984 324.6151 324.5616 324.5269 323.8512 322.5434 321.5617 320.8445 318.6441 317.131 317.9504 317.2508 316.2805 315.5136 314.448 313.6905 313.0413 312.3935 312.1891 312.4894 312.3516 311.638 309.7606 306.7871 301.7911 295.8898 294.7785 296.1494 295.3898 299.3743 299.4996 298.2147 297.1646 296.3289 295.5056 295.4886 296.1346 296.3228 297.791 300.6971 302.8871 304.6378 306.0093 306.9614 307.675 307.4708 307.7275 309.8776 311.0759 312.2452 314.8506 315.04 316.2618 316.9495 316.8079 316.8121 317.4112 317.2452 316.9852 316.4804 316.1727 316.4243 315.9783 315.7088 316.0791 316.875 317.2544 317.4134 317.2694 317.8658 318.1081 317.8922 317.9281 318.8112 319.7761 321.2016 321.3642 320.778 319.7789 318.1558 317.3359 317.8249 318.8683 320.5522 321.8484 320.7292 318.9644 317.7914 317.0421 316.1574 315.8972 316.2726 315.5471 318.067 318.3231 317.5817 316.791 315.6536 314.8851 313.8912 313.2824 312.7804 312.7685 313.9039 315.7366 317.5786 318.6918 318.9785 318.8602 318.7977 318.415 316.7287 315.9669 315.4953 315.0018 314.2539 312.764 311.8966 312.4331 313.0816 314.338 314.7788 314.9357 314.1469 314.1017 314.4472 315.0699 315.7252 315.5002 312.2811 312.0386 310.8796 308.589 305.9356 303.7856 305.3087 303.549 302.6111 300.4375 299.7668 300.6693 303.0964 305.1644 306.7068 305.0005 300.6605 297.0519 294.5276 294.9167 295.254 291.5399 286.5894 281.6619 277.5948 274.2296 268.7917 264.1839 263.5669 261.5559 261.141 261.2519 264.2085 266.5711 264.5162 262.8801 268.2959 271.3367 272.6509 272.6607 272.4486 271.4636 271.3327 271.8878 272.6097 273.5669 274.706 275.68 277.1481 278.4109 280.0474 280.4562 280.6633 279.2118 272.7526 270.0144 267.8434 270.3337 273.9241 276.1334 277.723 277.609 277.2327 277.5057 276.1382 274.8435 273.2088 271.4287 268.8957 268.0865 269.4923 269.2108 268.0327 265.0479 262.6596 262.9237 265.4492 267.135 267.7238 266.6757 266.3217 266.194 265.9934 265.0365 265.0902 264.3991 263.2439 263.5151 264.8528 266.3226 269.2915 269.4831 269.4233 268.9574 268.5525 267.9592 268.3028 268.4063 268.4302 269.6252 269.7126 270.5989 271.2269 272.3804 272.1107 270.8175 269.2613 268.45 266.085 264.4055 262.8329 262.431 261.9722 261.0005 260.1176 259.0725 257.9247 255.6373 251.7602 248.4435 247.5204 247.0995 246.9196 246.4911 245.2964 244.909 245.1886 245.3332 245.4268 245.5014 245.6153 245.7557 245.7227 245.8414 245.8486 243.095 245.6902 248.703 250.8756 252.2669 254.6232 259.0358 262.7649 265.9276 272.7017 275.6631 277.5744 278.9314 278.609 277.5702 276.2854 272.7515 266.3935 254.9202 254.7416 252.5246 247.7608 246.4106 246.4852 246.0898 248.4683 250.0626 254.132 255.8598 259.2076 262.0529 265.206 267.0417 268.4428 269.7109 271.4706 275.0224 276.2998 277.1777 278.6886 278.9141 279.5255 280.5063 281.7085 282.5175 282.5036 281.174 279.6625 277.6628 275.4352 273.2389 270.6833 266.853 261.4549 261.66 263.7378 266.3956 268.5895 271.608 273.2036 274.4152 276.4301 278.4147 282.6004 283.3423 283.4452 282.2623 278.9118 276.6431 274.5224 271.9835 267.2064 263.0745 265.8115 269.2983 271.8754 273.8517 276.0836 278.1967 279.5087 280.174 283.5015 285.5949 287.438 288.0784 286.4591 284.2681 280.944 276.035 268.6337 269.6137 272.7779 275.391 277.2607 279.3358 280.9509 281.739 282.1082 280.5226 284.118 285.2217 285.9774 284.9467 287.7395 289.9385 290.9523 291.5968 292.0732 294.069 292.5389 291.2077 289.2496 288.495 287.4074 286.0718 283.9481 281.7255 279.589 273.9606 269.3359 269.9448 268.7393 266.6277 263.8382 265.4433 266.2764 267.3174 263.4394 259.8611 258.588 257.4948 256.9445 -9999 +-9999 -9999 309.8853 309.8411 309.4794 308.5577 306.97 304.6206 301.0402 301.7372 304.5307 306.7147 306.6113 305.422 306.1406 305.5991 303.3508 299.813 287.9092 293.3881 298.166 301.175 303.9638 306.5287 309.0617 311.3124 312.762 314.4834 314.7787 314.6099 316.0753 317.9309 318.708 317.5138 314.6952 311.082 311.3228 312.3858 310.7101 307.2444 303.3492 297.6837 291.8086 284.8215 277.8872 275.0209 274.4125 278.9912 277.1006 274.7237 274.5903 274.321 274.7652 274.0059 273.7618 273.7931 273.7667 273.7763 273.8777 274.0331 275.0135 279.7243 280.3622 286.7131 292.8517 298.6533 304.593 309.7583 314.7564 317.7458 318.4285 317.9926 316.1815 315.2058 312.9149 313.5445 314.0862 313.0913 312.2546 313.1864 315.2889 319.1467 319.5585 319.5594 318.5286 318.0597 317.9142 317.7943 317.5377 317.5032 316.8637 315.7089 315.0682 315.6613 316.1712 316.6264 317.278 315.5201 315.271 315.5219 316.8877 316.7414 318.6553 321.5578 323.1934 323.6537 323.5592 323.2405 324.0735 324.3604 323.8975 323.1218 321.8313 321.1143 319.5516 319.6686 319.6855 317.9951 317.0968 315.7001 314.7599 313.9835 312.9227 311.7606 311.1461 310.9637 310.7902 310.5451 309.9115 307.7187 304.0169 299.4725 295.1838 294.3108 294.7645 296.6433 297.1198 296.8621 296.0201 295.2733 294.13 294.1206 294.6815 295.6342 299.2954 301.6134 303.2244 304.6887 305.6316 305.8901 305.9918 306.0581 306.8886 309.3958 311.1003 313.2673 313.6034 313.9083 315.0182 316.8459 316.0298 315.8293 317.1275 317.1563 316.5244 316.3383 315.9265 315.8626 315.3778 315.1504 315.459 315.5738 315.6161 315.7759 315.9652 316.4169 317.0684 316.9981 316.7287 317.397 319.3413 320.2621 321.1501 321.6854 322.1247 322.0919 319.6738 318.9802 320.4332 322.1032 322.7841 322.3 321.3056 319.2398 318.4899 317.3004 316.7038 316.708 316.9583 318.9305 319.6764 319.4751 318.6181 317.3925 316.0593 315.3496 314.2169 313.6963 313.3415 313.9817 315.394 317.1578 318.4583 318.6774 318.1319 317.9359 317.5957 316.1291 315.3069 314.2133 313.7328 312.9148 312.0045 311.076 311.3464 311.8034 313.4792 313.3956 313.7135 313.3283 313.2784 313.6238 314.8267 315.4313 314.3303 310.2052 311.3549 310.7462 309.3754 306.2876 298.7069 299.6214 297.7705 297.5202 295.8344 297.4267 300.3136 301.5654 303.4405 304.9552 304.6762 301.8665 298.5504 295.5846 296.0612 296.7992 295.3321 291.1401 285.4874 280.7182 278.3935 275.7764 267.6916 264.0303 261.167 259.8491 262.0948 264.7714 267.4423 269.0719 265.3187 265.2151 266.4601 266.877 267.4542 268.027 267.4681 268.476 268.8939 269.0014 271.6376 273.3709 274.5423 276.0474 278.4953 279.9483 280.9285 280.3848 279.4056 271.3964 270.1082 271.7591 275.1757 278.0133 280.1593 281.9053 282.1117 282.7047 282.5646 280.7 278.7271 276.3843 274.2093 271.0525 271.68 272.2836 272.2119 269.5676 266.5296 263.104 264.179 266.5804 267.5979 268.0114 267.7844 267.6754 267.6246 266.9189 266.8869 267.7526 267.139 265.1048 264.5843 266.4924 267.7825 271.5125 272.7488 272.8428 272.3096 271.6545 271.3221 271.1422 270.9805 270.926 271.9921 273.0406 273.5718 274.1797 274.9998 274.6346 273.4268 272.1064 271.2921 268.069 265.8659 264.9579 264.8461 264.5557 263.103 261.0991 259.9302 258.8589 254.5848 251.0184 248.1943 246.9697 246.4651 246.4683 246.6146 245.8653 245.0481 245.0395 245.0786 245.2185 245.3396 245.4139 245.4107 245.45 245.2618 245.4376 241.8072 245.6671 247.5658 249.4528 253.9748 259.463 263.061 266.6413 270.1435 275.6104 277.8593 279.316 280.0125 279.6692 278.3119 275.9516 272.0945 268.5886 255.0881 254.9782 252.1534 247.7608 246.4106 246.4852 246.0898 248.4683 250.0626 254.132 255.8598 259.2076 262.0529 265.206 267.0417 268.4428 269.7109 271.4706 275.0224 276.2998 277.1777 278.6886 278.9141 279.5255 280.5063 281.7085 282.5175 282.5036 281.174 279.6625 277.6628 275.4352 273.2389 270.6833 266.853 261.4549 261.66 263.7378 266.3956 268.5895 269.9905 271.7187 273.4968 275.4902 276.9288 280.1954 281.3482 282.0515 280.4148 277.7024 275.062 272.0227 267.6407 264.2359 265.098 267.9426 270.2006 271.9763 272.9595 274.7374 276.5702 278.6534 280.8809 284.8356 286.6744 288.0413 288.2905 286.4857 283.7408 279.5638 275.3359 269.4705 270.166 273.0525 274.8062 276.3828 277.3958 278.6251 279.3 278.3719 278.4377 278.8944 280.8249 281.2079 283.6345 286.8872 288.1997 287.1111 287.4541 289.9049 293.5992 293.0492 292.0504 291.1698 289.4361 289.0813 288.2048 286.1015 283.8551 281.7641 277.399 274.3634 267.9689 270.8882 269.444 270.202 270.6924 271.1098 271.0878 267.7581 265.5628 262.1384 257.2057 256.6838 -9999 +-9999 -9999 307.5284 307.099 306.0868 306.7847 305.1253 304.7004 303.8214 302.5071 305.4659 307.8083 308.1609 307.357 307.5059 306.6869 303.6294 299.6039 289.3679 291.7123 296.8119 300.7015 303.5445 305.959 308.2032 310.5116 312.6041 315.1202 315.7714 316.5668 316.0753 317.9309 318.708 317.5138 314.6952 311.082 311.3228 312.3858 310.7101 307.2444 303.3492 297.6837 291.8086 284.8215 277.8872 275.0209 274.4125 278.9912 277.1006 274.7237 274.5903 274.321 274.7652 274.0059 273.7618 273.7931 273.935 274.2584 274.1937 274.1758 275.0232 276.0732 278.0729 290.8542 294.4907 299.9679 306.481 312.3961 316.3454 317.2081 316.6452 314.6783 312.5951 311.6836 309.1041 310.5622 312.0533 309.1607 310.8228 313.0699 315.8047 317.1422 316.8668 316.6877 316.3062 315.9225 316.2788 316.5382 316.3109 316.4271 315.4413 314.2976 314.3101 314.4255 315.6705 316.6288 315.7953 311.5271 310.6499 312.2305 313.6642 315.3068 317.9113 320.6228 322.0013 322.0154 321.7426 322.276 323.2638 324.0031 322.3749 322.1844 322.0412 321.4478 320.3758 319.9067 319.5183 318.2783 317.2361 315.5603 314.3482 313.2151 312.2993 311.0403 309.3942 308.3336 307.8791 307.7588 307.6938 306.5538 304.4604 301.6526 297.026 293.839 293.2561 295.3943 295.6385 296.9769 295.8773 294.7673 294.0611 293.6508 296.3477 296.1182 299.2758 301.8257 303.3415 303.972 304.0385 304.4138 305.1891 305.762 307.1454 310.432 311.3702 312.7669 313.7668 313.8423 313.895 315.7635 315.1705 315.0642 316.2714 316.2838 315.923 315.0974 314.7898 314.3843 314.062 313.6519 313.4908 313.2287 313.5739 313.6577 314.44 314.8418 315.682 316.0275 316.1693 316.6034 317.8239 318.8884 320.0286 320.8946 321.7251 322.0923 321.8065 321.0591 321.079 322.2435 323.5339 323.2506 322.3889 321.4236 319.6424 318.8199 317.9088 317.6406 318.6216 319.7364 320.4807 320.2421 319.2502 318.1292 316.8134 315.8757 314.9848 314.7775 314.156 314.7658 315.4835 316.993 317.8507 318.236 317.3782 316.8201 316.6107 315.225 314.4651 313.7369 312.7155 312.1344 310.8664 310.036 310.4247 310.3298 310.8802 311.5652 312.3023 312.5604 312.511 313.5863 314.4767 314.1978 312.6648 306.0002 307.1227 308.6531 308.6547 306.1636 300.6664 294.5021 292.712 292.0523 292.6971 295.598 297.7165 298.6683 300.2744 302.4322 303.2031 301.6359 298.8231 294.8497 294.0404 294.0672 292.3058 290.2074 285.78 282.5837 280.1804 277.0736 269.0154 263.9805 261.5247 260.8158 260.8878 264.3829 268.3054 270.6673 270.9667 266.2375 265.5943 266.1801 267.5895 269.2812 271.2341 273.2556 274.375 273.5538 274.8702 275.8589 276.2306 277.6779 277.9242 278.8628 280.8195 280.6713 280.1137 272.6637 271.8024 274.0349 277.8781 281.0514 282.688 284.6968 286.7026 288.3309 287.7049 285.0008 282.3242 279.4215 278.0684 276.5187 275.3264 274.8654 274.5987 270.3435 267.3578 264.0418 265.5324 267.728 268.8594 269.3746 268.8663 268.3761 268.62 268.3383 270.1862 271.0998 269.839 267.698 266.3007 266.6376 268.1361 272.7206 274.6716 275.5767 275.125 274.4555 274.0127 273.609 273.3887 273.1458 273.7802 274.2758 274.8563 275.4229 275.6604 275.0493 274.1157 273.3419 272.4316 269.4211 267.7288 267.2139 266.8649 265.7982 263.868 262.1191 260.8438 258.7853 252.9763 249.3493 247.4643 246.9697 246.4651 246.4683 246.6146 245.8653 245.0481 245.0395 245.0786 245.2185 245.3396 245.4139 245.4107 245.45 245.2618 245.4376 241.8072 245.6671 247.5658 249.4528 253.9748 259.463 263.061 266.6413 270.1435 275.6104 277.8593 279.316 280.0125 279.6692 278.3119 275.9516 272.0945 268.5886 255.0881 254.9782 252.1534 248.3912 246.1696 246.2381 246.03 248.5326 250.9733 255.1161 256.799 258.695 260.787 262.8024 264.773 266.3143 268.2408 270.1019 272.4276 272.1796 272.6877 274.6455 275.7517 278.9691 281.0256 282.4066 283.3547 282.9056 281.7549 280.2442 278.698 277.1045 274.5021 272.1991 269.3133 264.5895 260.6741 263.584 265.6449 267.6191 269.3145 270.9196 272.362 273.834 274.8002 278.2737 280.2433 281.4021 280.3889 278.1861 274.645 270.9456 266.9912 263.2882 264.2113 267.5506 270.5755 272.7794 274.7478 276.3842 278.321 280.4961 282.8835 286.393 288.1483 288.7865 288.0021 285.8703 282.627 277.9884 273.3755 266.8705 269.9121 271.9716 273.751 275.1564 275.2616 275.1441 274.4172 274.3231 273.3532 273.8354 276.2347 277.5645 279.5142 281.5831 284.3299 286.1761 287.0154 288.8735 292.7893 293.5864 292.8288 291.6306 290.0296 288.9625 288.8938 287.1797 284.9983 281.4823 279.2138 275.8865 275 275.4785 275.1052 274.1806 273.5882 273.1523 272.1463 268.229 264.5007 260.2592 256.65 256.3165 -9999 +-9999 -9999 304.5331 303.2761 306.0868 306.7847 305.1253 304.7004 303.8214 302.5071 305.4659 307.8083 308.1609 307.357 307.5059 306.6869 303.6294 299.6039 289.3679 291.7123 296.8119 300.7015 303.5445 305.959 308.2032 310.5116 312.6041 315.1202 315.7714 316.5668 317.447 318.6041 320.04 319.6776 317.6265 315.0453 313.2433 313.361 311.5398 308.4124 303.3055 296.5862 290.0535 281.6858 275.7547 277.1627 281.161 284.6437 283.3574 279.6346 276.1918 274.9541 274.4602 274.1707 273.9544 273.9109 273.9659 274.122 274.3307 274.9997 274.8673 275.4975 277.2192 286.3769 292.1049 299.087 305.2236 309.7474 313.6123 314.7559 313.1519 310.3962 308.4983 308.9772 306.038 306.8832 309.1969 305.0757 307.9868 312.0203 313.5519 315.2442 315.1434 313.494 312.3474 313.014 315.1145 315.8434 315.2576 314.8433 314.2418 313.4912 313.935 315.1647 316.0263 316.6622 316.0881 312.0655 308.3967 310.2369 311.0939 312.1376 315.5495 318.3437 319.8095 319.9572 319.9641 320.285 322.561 322.4408 322.3417 321.902 321.4455 321.6181 320.7935 319.8025 319.0703 317.9044 316.9362 315.0019 313.6541 312.3133 310.6466 309.0499 308.0941 306.9576 305.269 305.3514 305.2309 303.6122 301.8833 299.4235 296.2515 293.5157 293.4431 292.9746 294.0049 295.8594 296.4822 295.5562 294.2502 292.1996 296.3652 295.5769 298.8571 301.1691 302.1083 302.3271 301.9394 302.8491 303.5946 306.1403 308.7438 309.8911 311.163 312.1237 312.8614 313.3976 313.9511 315.0579 314.9106 314.2865 315.3009 315.3701 314.3844 313.3523 313.1415 312.9172 312.3448 311.8661 312.0517 311.7654 311.6588 312.4022 313.3702 314.4839 315.3752 315.3919 314.4254 313.9269 316.1863 318.0515 318.6023 320.2935 321.1988 321.2708 321.4581 321.5534 321.4248 321.7281 322.1024 322.6812 322.886 322.465 322.2131 320.2082 319.0974 318.3069 319.1206 320.2685 320.6543 320.3818 319.2798 318.0543 316.8438 316.1988 316.2617 315.2929 314.9144 315.4349 315.8729 317.1935 317.1068 317.3611 316.5852 316.0046 315.7346 314.5702 314.0509 313.5338 313.2623 312.5265 311.0811 309.8821 309.3418 309.5228 309.5421 309.8156 311.0374 311.2828 312.2464 313.2622 313.8533 313.1272 311.2513 300.9011 300.8189 302.4029 302.5729 300.7954 297.3793 290.8383 289.4528 288.7598 289.6313 292.0037 295.1008 295.675 297.4843 299.2708 300.8716 299.8328 297.0786 292.1571 291.0659 290.1807 289.1195 286.5791 283.2438 280.8055 279.0173 275.7648 268.1521 263.2875 261.8408 260.9648 261.4474 262.9263 267.2411 271.0674 272.9853 271.7366 268.1139 268.4741 270.8605 272.5153 274.5399 276.4459 278.16 278.7409 278.1466 279.0637 279.6101 279.9293 279.7556 279.9988 280.6021 280.909 280.3072 271.7748 273.8498 275.7755 279.8921 283.2624 285.4385 287.3302 289.4299 292.1046 293.2609 289.3994 285.39 282.4618 282.0236 280.5846 278.4984 276.8076 275.561 270.037 266.6029 264.1657 267.7141 269.4206 270.6148 271.3943 270.6541 269.6577 269.9758 269.9361 271.8018 273.133 269.839 267.698 266.3007 266.6376 268.1361 272.7206 274.6716 275.5767 275.125 274.4555 274.0127 273.609 273.3887 273.1458 273.7802 274.2758 274.8563 275.4229 275.6604 275.0493 274.1157 273.3419 272.4316 269.4211 267.7288 267.2139 266.8649 265.7982 263.868 262.1191 260.8438 258.7853 252.9763 249.3493 247.4643 246.4873 246.3104 246.2641 246.1633 246.2411 245.9192 244.7303 244.8531 244.9567 245.111 245.4022 245.1745 245.0099 245.1361 245.2495 242.984 242.6133 246.422 248.9336 255.4101 260.3902 264.1934 268.7789 273.673 278.5223 279.2233 280.2001 280.6271 279.8484 277.9898 275.4854 272.0865 268.9692 254.5085 254.9104 252.1223 248.1784 246.0809 245.9259 246.0592 248.7184 251.367 254.2072 255.8703 257.2734 259.0397 261.1783 262.6138 264.9665 266.1641 268.012 268.5731 269.2692 271.8996 274.2402 276.6997 280.2022 282.2638 283.0498 284.1004 283.6105 282.9106 280.9451 279.2211 278.0045 276.6934 274.4813 271.1135 266.3142 259.6042 262.1922 264.4808 266.6976 268.4795 269.8369 271.22 272.3249 273.7125 278.1779 279.9581 280.6789 279.5994 277.2112 274.0139 270.1819 266.3858 261.8028 263.2224 267.451 270.6629 273.4296 276.1432 278.3305 280.1494 281.9609 284.3714 288.2508 288.668 288.0025 286.8359 284.5838 280.9338 276.5576 270.9212 264.5631 267.8904 269.7022 270.4462 272.6368 271.7511 270.5455 270.2195 269.7146 273.3562 280.7461 282.0486 281.933 283.0121 284.8448 286.0187 287.8103 289.5247 290.4074 293.0276 293.7633 293.075 292.1554 290.5205 289.2373 288.3429 287.983 286.0307 283.1452 280.4377 279.4638 279.1248 279.0072 278.1207 276.7381 275.4248 273.9657 272.1613 265.2779 261.6595 260.1803 256.403 256.3654 -9999 +-9999 -9999 304.5331 303.2761 300.4783 302.9377 301.1576 302.4935 303.9482 303.1895 305.5363 308.1863 309.7841 309.1104 308.9065 307.0883 304.1068 299.732 290.1844 294.7328 294.2951 297.4554 300.0593 302.649 305.4293 307.2684 309.8465 313.122 314.5311 316.659 318.4591 319.9413 321.4986 322.0004 320.9089 318.6658 315.0027 312.5478 309.7087 306.2329 300.4305 292.518 286.5462 278.341 275.51 281.198 284.2549 287.6137 286.9902 283.1931 282.7563 278.2304 275.6422 274.6948 274.2967 274.1277 274.34 274.2378 274.5184 274.8132 275.2084 275.7032 276.2878 283.6531 291.0554 297.557 301.2129 304.4622 308.8347 310.993 310.0452 306.2775 305.0107 303.3193 303.2832 305.2816 303.129 304.2373 309.3018 311.4076 312.8065 311.9997 310.9366 309.3777 309.0905 312.3918 313.7416 314.8032 313.6352 314.3343 312.7112 313.2581 313.761 315.7072 316.9455 317.2208 316.1833 313.2896 309.1059 307.8098 309.0173 310.8651 314.283 316.5365 317.7241 318.3071 318.5161 318.8325 321.6842 322.088 322.1842 322.2396 322.1988 322.121 321.0367 319.3405 317.7655 316.0966 314.9601 312.8822 311.0257 309.2881 308.9293 307.6578 306.3051 305.6638 303.3728 301.5623 300.4749 299.5902 297.8734 296.1752 297.2398 298.1572 296.5255 291.4773 292.3268 293.6456 295.2534 295.5464 294.8893 291.1032 294.6664 294.9955 298.3753 299.8573 300.3564 300.5285 300.8676 301.5285 303.6227 306.4073 308.3931 309.1742 310.1514 310.1612 310.9871 311.5093 312.6267 313.4322 313.7866 313.4193 313.8575 313.6223 312.997 311.8411 311.1382 310.0094 310.0765 310.067 310.2646 309.8239 310.6493 312.1786 313.7846 314.8359 315.3468 314.8424 313.951 312.7695 314.4402 315.9757 317.0106 319.0847 320.6982 321.8413 321.8335 320.5114 319.5571 319.3389 320.1219 320.9872 321.8694 321.9707 321.6704 321.5319 321.0775 319.91 319.2446 319.9584 320.6666 320.1413 319.4308 318.2218 317.2284 316.8533 316.8474 316.0053 315.6693 315.9589 316.4198 317.1509 316.9538 316.7323 315.9667 315.4668 314.8569 314.5641 314.713 314.8193 314.6965 313.4328 311.7642 310.1978 309.1415 308.8232 308.6548 308.8192 309.8566 310.4797 311.5551 312.1494 312.3902 312.1435 311.1982 302.8707 298.5444 295.7525 295.1831 293.9623 291.4317 290.1539 293.6786 295.0615 285.8504 286.8728 290.7849 292.5564 293.2997 294.8459 297.0507 296.6482 294.2214 289.7365 288.6001 287.4618 285.0821 283.3567 280.7758 277.9312 275.8047 272.9778 264.5215 263.1787 264.1838 263.4344 262.1329 262.4488 265.8097 270.0531 272.9529 275.3068 273.3822 270.6516 269.1199 271.7235 275.0982 277.7657 279.8951 281.0459 281.6105 282.4028 282.3029 282.132 282.1618 281.7036 281.2299 280.909 280.3072 271.7748 273.8498 275.7755 279.8921 283.2624 285.4385 287.3302 289.4299 292.1046 293.2609 289.3994 285.39 282.4618 282.0236 280.5846 278.4984 276.8076 275.561 270.037 266.6029 264.1657 267.7141 269.4206 270.6148 271.3943 270.6541 269.6577 269.9758 269.9361 271.8018 273.133 272.2056 269.8408 267.947 267.4976 268.6913 272.652 274.8918 276.5331 276.8037 276.576 275.9966 275.3165 274.8262 274.358 274.1693 274.4692 274.8858 275.1874 274.9887 274.3205 273.5286 272.9359 272.4524 270.3517 268.6972 267.5128 266.6742 265.3726 263.7009 262.0673 260.7433 258.5381 252.6741 248.8451 247.4014 246.4249 246.0549 246.1493 245.8997 245.8163 246.0057 244.7854 244.8135 244.7959 245.0944 245.1426 244.8854 244.9205 245.1442 245.1194 245.535 241.7825 245.666 246.2051 250.7462 256.6604 261.9301 266.588 271.4746 276.9092 278.182 277.9661 279.1682 279.4319 277.5861 274.7119 271.6558 268.1635 255.4064 254.4888 253.9843 247.6517 245.7833 246.0475 247.5236 249.6774 250.2945 252.5396 254.4774 255.587 256.3125 258.2718 261.094 262.7626 263.8938 264.8598 269.5335 272.4398 275.1349 277.7603 280.2083 280.9429 282.3969 283.3029 284.7979 283.8904 282.5515 280.3365 278.7177 276.8924 276.4029 274.7045 271.5236 267.3299 257.1348 260.1075 263.1356 265.4163 266.5755 268.5776 270.0319 271.3519 272.1499 276.078 278.6694 279.5871 277.7638 275.1963 271.7025 267.4966 262.3405 258.9184 263.5913 268.0506 271.1789 274.4603 277.4208 279.4949 281.4906 283.2776 285.2783 288.1052 287.9599 286.3155 284.6304 282.2123 278.7798 273.8538 267.5435 262.8281 264.5283 265.3535 265.9652 266.0894 266.9916 270.0369 272.9254 276.812 280.2112 285.7444 286.8119 287.1898 287.2855 287.4225 288.3847 289.5703 291.0577 291.7541 293.8817 294.1602 293.5731 292.2314 291.5242 290.0371 288.5887 287.4158 286.5182 283.2368 281.6966 281.7731 281.1494 280.4973 279.5653 277.4436 275.1414 273.2548 268.8976 267.0774 265.8261 266.0158 260.4685 256.0631 -9999 +-9999 -9999 300.4957 299.1253 296.9053 298.2574 297.9529 300.1459 303.3045 304.11 305.7987 307.4484 309.7644 310.5175 309.9865 308.3326 305.4484 301.0197 290.8509 298.2679 301.0723 300.0298 301.8568 303.2078 305.3282 307.6461 309.1844 311.683 314.7446 317.2469 319.3467 321.1182 322.6297 323.2024 322.7202 321.0659 315.7318 311.2135 307.1659 304.8407 299.843 292.5235 284.8478 277.0437 276.2903 283.4644 286.6124 289.0687 289.9425 290.5491 292.2771 289.2939 284.1869 280.525 276.784 275.4307 275.2453 275.3192 275.54 275.6101 275.7063 275.8468 276.1374 279.8646 287.0576 292.6741 293.6462 299.995 303.1683 305.5743 305.8518 303.5432 300.4389 300.1292 302.4908 300.2887 301.3664 305.529 307.4382 309.1675 309.9831 309.9934 307.7156 307.4787 308.5944 310.4253 312.1355 312.5674 311.9631 312.7106 310.6074 312.0464 313.9804 315.6911 316.5916 316.5705 315.013 312.7297 309.5356 306.871 308.8849 311.3983 312.9514 315.2532 316.2881 316.5841 316.8174 318.0811 320.2059 320.9772 321.5309 322.1373 322.2264 322.0846 321.61 319.8175 318.1601 315.1041 313.2251 311.1417 309.5113 307.5331 306.2766 304.8627 304.7378 304.4362 301.952 301.1204 301.813 300.2274 297.688 299.9272 301.5436 302.5072 301.8926 295.4027 291.8542 291.9408 293.4309 294.2541 293.1225 290.6425 292.7576 294.0524 297.1579 297.9413 298.138 298.6764 299.365 301.1472 302.5457 305.0287 306.9594 308.4699 309.0417 310.0247 310.2894 310.1783 311.4127 312.1285 312.5691 312.2716 312.4832 312.1356 311.2639 310.3044 308.6782 306.8516 307.3767 308.1382 308.5078 308.7942 310.5671 312.1075 313.6302 314.7725 315.0355 314.4609 313.3162 311.7922 313.1249 314.3798 315.7658 317.5051 319.8374 321.1691 321.3919 320.1584 318.448 317.6282 318.1233 319.1809 320.3541 322.6215 323.8672 323.4176 322.3576 320.8239 319.4351 319.6129 320.4281 319.9547 319.305 318.5907 317.8946 317.7103 317.3855 316.6335 316.0375 316.3826 316.7678 316.6156 316.6139 316.0452 315.4559 315.0069 315.2816 315.303 315.2337 314.7126 314.3461 312.9088 310.7199 308.7178 308.0017 308.0525 307.9413 307.8867 308.3239 309.0514 309.9613 310.7808 310.9256 310.6565 310.4624 307.8993 306.2657 305.1107 304.0835 301.6307 300.2218 299.8884 300.4895 301.2065 296.3945 289.2373 284.3354 287.2398 288.8462 290.0137 292.647 293.0315 290.8434 287.1168 288.6001 287.4618 285.0821 283.3567 280.7758 277.9312 275.8047 272.9778 264.5215 263.1787 264.1838 263.4344 262.1329 262.4488 265.8097 270.0531 272.9529 275.3068 273.3822 270.6516 269.1199 271.7235 275.0982 277.7657 279.8951 281.0459 281.6105 282.4028 282.3029 282.132 282.1618 281.7036 281.2299 281.1035 279.6936 272.3564 275.744 279.4684 282.5119 285.2542 287.9363 290.5632 292.3489 294.2284 297.2397 293.6893 289.0771 285.9146 284.829 282.8826 280.626 277.9369 275.585 267.6377 266.3319 269.386 271.2506 272.4143 273.5317 274.5446 273.9399 271.7829 271.3582 272.2467 273.9913 274.737 273.4732 271.5284 269.9202 268.6519 269.7146 273.0493 275.1086 276.5688 277.032 276.4694 275.7666 275.1535 274.6615 274.2581 273.8513 273.6852 273.8625 274.0572 273.7128 273.0405 272.4204 271.9568 271.5871 270.1158 267.9775 266.7054 265.0395 263.802 262.1019 260.7068 259.2068 257.6508 253.4868 249.5902 247.9574 246.9075 246.0354 245.6033 245.3799 245.2016 245.1021 244.9935 244.8251 244.8226 244.9761 245.036 244.7206 244.7845 244.8237 245.0021 245.3009 241.7663 242.4645 245.0378 245.9456 251.4725 258.0816 263.1828 267.6579 270.0864 271.4847 276.6679 278.7895 278.5084 276.5565 272.8203 269.5623 265.7447 258.7188 254.5598 254.5946 247.2166 245.7085 246.6003 247.6022 248.5864 249.7642 253.8215 255.8189 257.0549 258.7035 259.8497 261.1461 263.3498 265.5852 268.5189 274.0931 276.1719 278.2201 280.6003 282.9971 284.0029 285.382 285.6276 285.8708 283.7118 282.019 280.0737 277.8139 275.2546 274.0401 273.0668 269.774 266.0725 258.2422 256.2924 260.9451 261.9143 265.4106 266.8799 268.2674 268.9867 271.0502 274.1108 275.9138 276.4069 275.0666 272.4716 269.1099 265.1997 259.9343 257.034 265.5401 268.7411 271.3795 273.9849 276.6805 279.3448 281.8882 284.0939 285.9395 288.0623 286.9599 284.4478 282.1613 278.0947 274.7843 270.0186 263.8062 261.2546 262.7505 263.7136 264.4355 266.3578 270.5273 273.6845 276.8733 279.4498 282.6435 287.6681 289.1375 290.003 290.5269 290.4911 290.8696 291.9115 292.7791 293.0782 294.5185 294.5353 293.6908 292.5831 291.3779 290.4755 289.0204 287.437 286.1792 283.893 283.6009 283.4031 282.7447 281.8976 280.3167 277.9619 275.5747 274.1809 272.1816 270.4714 269.6604 268.0969 264.3626 257.7101 -9999 +-9999 -9999 296.7032 295.7841 291.0873 295.4575 297.9014 299.0591 301.7765 305.8195 305.2879 306.7336 308.9968 310.8531 311.3866 309.8313 306.8268 301.4492 293.8483 300.209 303.6951 305.7402 307.0118 307.9544 307.5003 310.7007 311.9053 313.1559 315.7271 317.6911 320.0129 321.5883 322.485 322.8685 322.5193 321.7172 316.0202 310.4576 303.5203 299.9247 297.6543 291.3831 281.5022 277.1703 277.7229 286.0697 289.9783 292.5677 293.6719 295.5516 299.3269 298.6733 294.9529 291.372 286.6935 283.7477 278.4904 277.5219 277.4299 276.8932 276.2238 276.2427 276.6741 277.9584 282.3846 286.4436 289.6229 292.3588 295.8973 298.894 300.0493 299.2594 297.0597 299.9398 299.4761 297.1024 301.8271 303.6129 304.8293 305.8537 306.1678 306.5694 303.4756 304.8337 307.3535 307.845 308.7775 310.4781 311.2992 311.4266 308.0974 310.3046 313.1935 314.4947 315.2893 315.1852 314.0362 311.9144 307.8836 306.0469 308.7668 311.7915 313.4371 315.2699 315.6186 315.3165 316.0252 317.2422 318.6636 319.2638 319.7335 321.184 321.9189 321.9019 321.738 320.7362 318.5335 315.8189 314.2447 312.4827 309.7747 306.6382 304.7804 303.214 302.693 302.3514 304.8854 305.4518 306.2255 305.1949 300.7211 301.8958 304.2539 305.6455 306.0223 301.0993 296.7783 291.8861 291.305 291.2418 291.0537 291.1847 292.8555 293.854 295.114 295.7874 297.2681 298.2075 299.1105 300.3152 301.4238 303.2531 304.7176 306.7892 307.5266 307.3932 308.2378 309.9061 310.2069 310.8817 311.3595 311.0017 311.412 310.0743 309.3121 307.4888 305.8504 305.069 305.3499 306.1567 306.5007 307.8998 310.7554 312.2809 313.2927 314.4508 314.7229 314.2221 312.3665 310.8072 311.67 312.6781 314.3603 316.0389 317.2719 319.4476 320.4719 319.6967 317.8937 315.8697 315.5756 316.6869 318.8831 321.6588 322.9723 323.8464 323.1282 322.1337 320.5297 319.8845 319.6383 319.6141 319.2509 318.8379 318.5178 318.1006 317.7996 317.1086 316.5391 316.3712 316.4515 315.8559 316.3004 315.1704 314.7701 314.5528 314.9286 315 314.655 313.8244 312.8112 310.4904 310.7199 308.7178 308.0017 308.0525 307.9413 307.8867 308.3239 309.0514 309.9613 310.7808 310.9256 310.6565 309.3131 307.8993 306.2657 305.1107 304.0835 301.6307 300.2218 299.8884 300.4895 301.2065 296.3945 289.2373 284.3354 287.2398 288.8462 290.0137 292.647 293.0315 290.8434 287.1168 285.7702 283.299 281.5996 278.96 277.6863 275.2438 272.5551 268.8587 263.1973 265.1133 266.7222 265.9548 262.9906 262.3925 264.6202 268.4935 272.2077 276.5159 276.6215 275.6061 273.7699 271.8129 274.5458 278.1835 280.826 282.6163 284.0718 284.3793 285.7602 285.2726 284.4127 283.4238 282.3813 281.8691 279.9301 271.9227 277.5126 281.1257 283.8792 286.7191 289.9854 292.6993 294.7758 296.3087 297.484 294.5321 290.9116 288.0927 285.5893 282.9843 279.9382 277.3648 273.9715 266.5817 269.7411 271.7513 273.5143 275.4203 277.1046 278.1224 277.4277 274.6029 272.5236 275.0325 276.3131 276.7399 275.1698 273.6762 271.9018 270.4304 270.7018 273.8022 275.3859 276.3275 276.308 275.2355 274.5302 273.6517 273.1266 272.9764 272.9974 272.9623 273.2896 273.102 272.4487 271.81 271.5793 271.2369 270.4227 268.814 267.7052 265.7941 264.0187 262.4353 260.9273 258.7955 257.2901 255.9086 252.0855 249.7413 247.6631 246.3775 245.8263 245.6106 245.5308 245.2391 245.1016 244.9117 244.8501 244.9695 244.9512 244.9201 244.8173 244.4854 244.7556 244.8259 245.3236 243.6843 241.7677 245.2204 245.0434 247.4418 253.4754 258.5829 261.6187 269.0395 274.4394 276.8101 277.6424 277.8159 276.7975 274.9037 270.8686 267.4635 260.2481 254.0624 254.0469 250.2894 245.8456 246.3895 247.3595 248.9604 250.5572 254.998 256.9914 258.7565 260.2246 262.0519 263.4866 265.8531 268.1514 270.6362 275.3117 277.8856 280.2841 282.5414 284.9615 287.1956 288.8951 288.9582 287.2586 283.8169 281.2328 278.9232 275.7649 273.6397 271.4743 269.1983 267.5535 264.7198 260.334 257.7846 258.0649 262.0595 264.3755 265.2869 265.7609 267.5927 269.0052 271.1711 272.5194 273.1254 272.2293 269.968 266.5774 263.4151 257.2937 256.9405 265.5954 268.0072 270.0709 273.3523 276.2043 279.0406 282.1031 284.2825 286.1234 287.4711 285.4564 282.3982 278.8645 274.0847 270.2045 266.7177 261.9948 260.2399 264.5985 267.1524 269.9828 271.765 273.6363 276.3327 278.3898 280.8112 283.0027 287.085 289.4161 291.655 293.1159 293.0629 293.1405 294.088 295.3643 295.1009 294.8553 294.5318 293.5666 292.7171 291.2806 290.5422 289.3516 287.8211 286.7909 285.4648 285.1603 284.7062 283.9648 283.0562 281.1424 279.0042 277.0355 275.8034 273.965 273.3312 272.1169 269.8812 266.0698 260.617 -9999 +-9999 -9999 294.0487 289.9495 289.1395 294.6458 294.9413 296.818 300.9719 303.8042 305.9077 306.4466 308.1815 310.1234 311.3954 311.2916 307.7529 302.0991 294.1547 301.6335 305.6886 308.2727 309.8944 311.6323 311.7326 312.4006 314.4771 316.0922 316.9415 318.5401 320.0402 321.2636 321.3625 321.0423 320.4013 320.1546 316.2633 311.9508 306.1371 299.3622 292.5371 288.1106 282.6586 278.3568 279.8996 286.788 291.8553 296.3495 298.7908 300.7144 303.385 306.1553 307.4666 303.0678 296.1698 292.3007 285.1767 280.504 279.6091 277.9135 277.6764 277.5767 277.5551 277.7729 277.6037 280.8849 283.2759 286.2646 289.3134 291.5666 293.6306 294.6086 294.3253 296.9224 294.6423 298.4882 299.1619 300.2625 300.9589 301.8315 301.1861 301.0354 301.8398 303.8392 305.2757 308.6923 309.8089 311.7992 311.3305 309.2389 305.7851 308.6863 311.2396 312.9461 313.7885 313.1652 312.4988 310.5837 306.5485 303.7318 307.1746 310.7813 313.0092 314.7273 314.684 314.6878 315.4617 316.2832 317.1804 317.3185 317.577 318.6411 320.7491 321.3672 321.502 321.5734 320.2013 316.7265 313.1729 313.6313 310.2999 306.5659 304.8556 304.4244 304.8115 307.3997 308.2884 307.8128 308.0148 305.6423 302.3371 304.9226 306.6546 308.5074 308.8768 304.9659 301.8962 297.4025 291.9747 290.7188 289.4925 290.771 291.7558 291.9411 294.4641 295.8047 297.1116 298.0749 299.4009 300.3693 301.5582 302.7523 303.121 305.2033 305.7024 307.1884 307.3006 309.4526 309.463 309.2749 309.6127 309.8804 309.5423 308.3023 307.2571 304.5502 303.0358 302.6957 304.7717 305.8228 306.6648 309.0134 311.0955 311.8985 312.8285 313.9302 314.573 313.9383 312.7175 310.4471 310.526 311.4658 313.1067 314.359 316.1421 317.5479 318.6856 318.8589 317.4469 313.8554 313.021 314.7693 318.8831 321.6588 322.9723 323.8464 323.1282 322.1337 320.5297 319.8845 319.6383 319.6141 319.2509 318.8379 318.5178 318.1006 317.7996 317.1086 316.5391 316.3712 316.4515 315.8559 316.3004 315.1704 314.7701 314.5528 314.9286 315 314.655 313.8244 312.8112 310.4904 308.2336 307.2651 306.2648 307.1053 307.1598 307.1738 307.0476 307.421 308.2305 308.9266 309.0989 309.0217 309.4894 308.9186 308.7164 308.5577 308.2493 306.6273 305.4727 304.7754 304.6479 303.2038 302.4879 299.6976 293.4537 284.2976 282.0065 285.5314 287.7305 288.7931 287.0202 283.9249 283.0189 280.7079 278.5211 275.4614 274.5018 271.2937 267.3015 264.4057 267.1039 268.0557 268.7062 267.5096 264.5062 263.3861 263.872 267.1651 271.424 276.6277 278.7024 279.1901 278.8783 276.1742 276.7298 279.2825 281.1978 283.9374 286.4657 286.9189 287.2909 287.364 286.6171 285.7115 284.1672 282.5504 280.5857 272.2327 277.6804 281.8164 284.5887 287.2028 290.1108 292.6537 294.5387 296.0014 296.1483 293.8969 290.6881 287.4807 284.4065 281.0656 277.774 274.8043 271.5832 269.0773 270.628 272.9826 274.3127 276.5257 279.347 281.3644 280.2872 277.0612 274.3374 277.0258 278.2422 278.1685 277.1857 275.742 273.777 272.1789 271.7462 274.5715 275.5485 275.3223 274.3824 273.3303 272.4535 272.0801 271.9111 271.9682 271.9843 272.0372 272.4059 272.1251 271.1659 270.5848 270.1772 269.7682 269.2123 267.6295 266.4932 265.0184 263.1924 261.0897 259.2681 257.3244 255.5159 252.9409 249.0517 247.4733 246.7416 246.1142 245.8274 245.7581 245.8353 245.7761 245.359 244.88 244.7844 244.8664 244.7167 244.9554 244.5186 244.4029 244.6786 244.4708 244.5665 244.9995 244.452 242.8917 245.0849 244.817 249.2433 254.2228 258.085 269.0011 272.3188 273.6534 275.4583 277.1403 276.3716 275.0952 272.2412 268.5127 259.9844 255.595 254.2177 253.8121 245.4265 245.7231 246.9287 249.3999 251.9342 255.9144 257.524 259.2448 261.1373 263.0157 265.003 267.8069 270.1107 272.7385 276.4113 278.5055 281.0699 283.8286 286.2003 288.7706 291.3029 292.145 288.8725 284.4857 281.552 279.1598 276.7698 274.0837 271.0453 268.4968 266.7849 265.1198 260.6848 256.9414 255.0908 259.9305 262.4599 263.2167 265.1343 266.4024 267.0104 268.9716 269.85 270.2106 269.515 267.0798 263.7787 259.5323 255.6349 257.4524 265.3297 267.7287 271.0859 273.5751 276.2555 279.1746 281.9538 284.2776 285.6671 285.1258 283.3772 280.0309 276.0686 270.9517 266.0172 261.5811 259.9025 260.8469 264.3129 267.5308 270.8324 273.1638 275.8115 277.7468 280.2754 282.5565 284.3017 287.1085 288.982 291.842 294.7368 295.023 294.9545 295.2418 295.6394 295.6602 294.8829 294.3024 293.4387 292.8292 291.9215 290.3262 289.5168 288.3701 287.3693 285.8937 285.7191 285.0091 284.1352 283.2125 281.5251 279.5972 278.0394 277.0883 275.746 275.0519 273.4293 270.4171 266.6905 263.2382 -9999 +-9999 -9999 287.857 283.8747 287.8843 288.3453 286.687 290.8843 297.2301 301.0989 303.8302 306.3798 307.5049 308.836 310.0166 310.9583 308.5878 303.6234 296.2051 302.9371 307.4024 310.5609 313.0372 314.316 315.3669 315.6836 317.0077 318.3201 318.7665 319.4274 319.3402 319.6477 319.0357 318.2638 317.2791 316.9458 315.175 312.2251 305.7321 299.3777 293.3935 288.2435 282.284 279.0853 280.8033 288.2861 289.654 294.6311 298.7764 302.7205 306.2164 309.4533 311.3492 309.7143 303.0825 297.1993 288.8063 282.0909 279.7551 279.077 279.645 279.2254 279.9498 284.6678 286.5201 280.2321 279.1565 279.6624 283.3795 286.7769 289.548 290.7659 291.3652 292.7242 293.1326 294.4864 294.5351 295.0404 294.5199 293.7513 296.5737 300.9819 302.9093 305.1757 307.4088 308.643 310.6346 311.134 310.3053 307.3853 305.4083 308.3976 310.329 311.7271 312.8516 312.2758 310.923 309.5051 306.0778 302.5617 306.1655 310.326 312.3062 313.755 313.8345 314.1559 314.687 314.8156 315.4279 315.6357 315.9501 316.7071 318.1463 320.4961 321.2408 321.05 321.3103 318.2082 316.2847 312.6164 309.6221 308.0864 306.9991 306.2234 309.3112 310.2653 310.3907 309.9864 308.2843 304.6974 306.2619 307.976 309.3859 310.6388 310.89 306.368 303.4571 300.3559 295.7841 291.3325 289.3959 288.8315 290.2462 290.9718 293.6818 295.0518 295.5154 296.3936 298.0503 299.0284 300.4729 301.0335 301.5718 303.4166 305.4756 306.6067 307.6511 308.5031 308.2673 307.9083 307.6979 308.3924 309.5423 308.3023 307.2571 304.5502 303.0358 302.6957 304.7717 305.8228 306.6648 309.0134 311.0955 311.8985 312.8285 313.9302 314.573 313.9383 312.7175 310.4471 310.526 311.4658 313.1067 314.359 316.1421 317.5479 318.6856 318.8589 317.4469 313.8554 313.021 314.7693 317.1096 319.345 321.6594 323.1274 323.2806 322.765 321.8171 321.1071 319.5582 319.1284 318.8612 318.6636 318.3337 317.6318 317.278 316.6118 315.9438 315.5761 315.6759 315.5333 316.0287 315.3727 314.4665 314.2903 313.8055 313.8814 313.5826 313.1934 311.5605 308.853 307.043 305.5989 304.9174 306.1675 306.218 306.133 306.1991 306.1306 306.4204 307.3523 307.5373 307.6552 308.6247 308.3869 308.1744 307.8477 307.4406 306.5338 305.6021 304.8514 304.5565 304.713 305.2187 305.5322 302.4404 296.0482 286.3224 279.1735 282.9554 284.0439 281.3042 279.6769 279.6266 277.7646 274.9807 273.3048 271.001 267.7062 266.4572 268.1555 271.7292 271.6636 270.7488 268.2314 266.2778 263.9807 263.8241 266.4272 270.0273 276.2457 278.4935 279.9107 281.2472 281.3817 280.7225 281.4272 283.2658 286.3094 288.0786 287.6536 288.7872 289.6207 289.3696 288.1454 286.8219 283.7762 281.713 272.8605 277.5757 281.6055 284.845 286.9861 288.9318 290.7935 292.451 293.9112 294.5465 292.5705 289.6354 286.6328 283.0933 276.8002 273.2961 270.6317 269.9075 271.6976 273.5628 275.6891 275.795 276.8167 279.3671 281.7849 280.4532 277.4021 276.1084 278.6184 279.8116 280.0234 279.0214 277.1721 275.0581 273.8177 273.2007 274.4595 274.0766 273.2657 272.3012 271.7709 270.9975 270.5196 270.6044 271.1884 270.8356 271.0573 270.9063 270.3206 269.6049 269.2453 269.0471 268.1905 267.4409 266.2062 264.9765 263.6119 261.677 260.4114 258.2117 256.6331 253.6974 250.6454 246.691 246.6566 246.588 247.1464 249.8655 252.0618 250.7404 248.5261 246.3389 245.0397 245.1215 244.9021 244.6551 244.6973 244.6275 244.3176 244.5458 244.4438 244.2209 244.4375 245.1878 241.6936 245.1346 245.1552 245.2646 250.4815 256.6553 264.7156 264.9818 269.6455 274.3524 275.0323 271.6235 273.2847 271.5745 268.6694 260.0974 255.7352 254.2834 254.0953 246.9221 245.2467 245.4887 248.2218 251.2719 254.7038 256.3898 258.6062 261.0937 263.6059 266.407 269.4026 272.4998 275.1541 279.6974 281.5859 283.0867 285.0023 287.0686 288.8401 290.8781 291.9845 290.7972 285.62 283.356 280.754 279.5767 277.8018 275.7758 272.4598 269.6621 267.5176 259.7514 256.5243 254.9661 257.1929 259.4402 261.6142 262.8953 264.6013 265.5339 267.0281 267.9028 267.3737 265.9533 263.6495 260.7202 254.8419 256.2383 259.8286 266.3778 268.6987 271.2937 274.2638 276.6704 278.9924 281.0618 282.6537 283.3878 281.7152 279.7325 276.8653 273.5395 270.1073 265.1201 259.7729 259.2931 261.4184 266.2074 268.775 272.1802 274.2272 276.1219 277.6716 280.0027 282.4673 284.4902 288.5387 290.3286 292.1602 293.8462 295.1342 295.9091 296.3473 296.3984 296.0175 294.9013 294.3335 293.5702 292.7753 291.8807 290.9662 288.8976 288.3842 287.1741 285.5052 285.1567 284.5225 283.6355 282.6201 281.2002 279.6039 278.3786 277.4249 275.5503 274.7525 273.3779 271.3677 268.2874 264.5784 -9999 +-9999 -9999 278.7423 281.954 281.9561 286.0749 292.2842 296.0251 300.2606 304.6808 304.0625 306.0594 308.1419 308.9203 309.8246 310.8723 309.7666 306.1073 298.3093 303.636 307.433 311.1071 313.9621 316.3774 317.9472 318.5876 319.644 320.5368 320.3359 319.6157 317.733 316.2162 315.5479 314.8391 314.3548 313.8731 311.3867 308.4529 303.1928 296.8135 290.602 284.8091 280.0098 278.707 284.5353 294.1452 293.5959 292.0942 297.407 303.1057 307.7845 311.0445 312.5461 310.3958 303.3218 297.4272 288.9463 281.4816 285.3348 283.6273 283.1436 279.8417 283.5377 289.386 290.7993 289.9942 288.4809 289.0529 284.3869 282.2925 284.7156 286.9451 289.0444 289.58 289.1393 288.2956 289.5632 293.5481 295.0994 296.681 298.434 301.5912 303.5211 304.9719 306.9938 308.546 310.0774 310.656 308.6707 304.6679 305.8488 307.7326 309.3858 311.1414 311.8629 311.5973 310.1489 307.863 305.1549 302.4337 306.8304 309.8559 311.5408 312.1143 312.2123 313.3519 312.6047 312.6091 313.6812 313.8214 314.1878 315.8238 317.0403 317.7356 319.9254 320.571 320.9571 319.8689 315.8598 311.4352 310.8714 310.9474 310.9131 311.4829 312.6192 313.0998 312.2586 311.548 310.0645 307.3643 309.0864 310.3622 311.6268 310.6388 310.89 306.368 303.4571 300.3559 295.7841 291.3325 289.3959 288.8315 290.2462 290.9718 293.6818 295.0518 295.5154 296.3936 298.0503 299.0284 300.4729 301.0335 301.5718 303.4166 305.4756 306.6067 307.6511 308.5031 308.2673 307.9083 307.6979 308.3924 307.4537 306.2545 304.3151 302.1996 301.9041 304.9158 307.0177 308.8352 310.3311 311.3561 311.7967 312.6831 313.5154 313.9973 314.5869 313.9194 313.1953 310.8628 309.1096 310.0453 311.8467 313.0068 314.4372 315.873 317.0635 317.9917 316.8365 313.2139 311.6257 312.3439 315.3094 317.484 319.9428 321.543 322.7919 322.9554 321.996 321.4436 320.0095 318.5335 318.8789 318.7804 317.3115 316.3789 316.1788 315.7446 315.1766 314.4085 314.6951 315.1272 315.8399 315.5797 314.9013 313.8259 312.6397 312.5239 312.4105 312.3056 310.9326 308.0956 306.6712 305.5044 304.2918 304.9421 305.3577 305.225 305.2717 305.2116 305.5367 306.2079 306.4496 307.024 307.921 307.4843 307.1287 306.9469 306.6511 305.9545 304.6926 302.2152 301.067 303.2532 304.6345 306.7464 306.7087 302.1399 294.401 284.1304 275.0557 276.3096 277.0067 275.8362 274.2258 272.7408 270.7444 269.5042 267.0212 267.9122 269.6909 273.8452 273.9152 274.1091 272.0218 268.07 266.1331 264.5833 264.3196 265.7268 268.1335 275.9949 277.5465 278.3489 280.563 282.3849 283.345 284.4691 286.2386 289.1982 290.9682 289.4577 290.5543 292.2974 291.8751 290.2023 288.282 285.7083 282.5934 274.3884 277.1096 281.6163 284.4562 286.3499 287.7905 289.2793 290.7765 292.2477 293.5691 291.5916 288.8412 286.1222 282.6017 279.8456 276.4407 273.8403 271.6236 275.5465 277.0892 277.972 277.9651 278.8059 279.5375 280.8413 280.0182 277.1938 277.9322 280.2343 281.2268 280.8063 279.4197 277.5283 275.9485 274.8888 274.3763 273.3963 271.9493 271.1768 270.8174 270.3341 269.8979 269.239 269.4383 269.5992 269.9662 270.0522 269.0854 268.4626 268.0159 267.8072 267.8287 266.7992 265.4755 264.4384 263.6433 262.2596 261.2801 259.4227 257.5612 255.1742 252.3742 249.0708 247.1587 246.9169 250.1655 253.3351 257.0028 259.908 259.2369 255.9365 251.2099 246.8363 245.3046 244.9688 244.396 244.7068 244.5826 244.6847 244.5268 244.4736 244.3122 244.573 245.0005 242.2755 244.1914 245.1697 244.9671 244.8268 248.3534 257.7295 262.2752 266.0733 268.4546 267.9645 267.4151 270.8226 269.1635 267.5112 259.5224 254.9924 253.0438 253.4191 251.1023 245.2252 245.455 246.9777 249.6107 252.6873 254.4375 258.4716 261.419 264.6422 268.2901 271.74 274.7968 277.4027 282.8716 284.8247 285.5876 286.7166 288.3567 289.2575 290.0559 290.1931 289.2172 286.5671 284.6916 283.1174 281.7668 280.784 277.673 275.0516 272.4445 269.5005 260.252 257.4114 255.3895 255.4206 256.7995 259.121 261.0677 262.9254 263.7881 265.1891 265.4271 264.3273 262.9864 261.4088 257.2137 254.0192 258.205 261.6286 266.8393 268.7454 270.9688 272.9634 275.2624 277.4411 279.0122 279.9734 280.5505 278.4021 276.681 274.4545 271.675 268.5025 264.2579 258.5749 259.6975 263.7296 269.3216 270.9286 272.6203 274.4236 276.257 277.942 280.0982 282.4396 284.586 288.7229 290.826 292.8433 294.1808 295.3906 296.0517 296.2466 296.2433 295.6093 294.6587 293.4634 292.9264 292.1494 291.2621 289.9522 288.9702 287.1798 287.1938 285.099 284.1241 283.4654 282.7632 281.7311 280.1 278.4583 277.4445 276.4063 273.6283 274.7525 273.3779 271.3677 268.2874 264.5784 -9999 +-9999 -9999 277.7196 279.3284 283.636 288.6398 292.5905 296.0942 299.5978 305.7481 306.901 306.4363 308.927 310.0614 310.8721 311.8345 310.6114 307.2012 297.7216 301.92 306.4236 308.8485 312.3144 315.1321 317.2891 318.6866 320.3455 321.9369 321.7017 319.5391 316.528 312.8573 311.5358 311.1559 310.5449 309.1633 307.6216 303.3329 299.4084 293.6797 286.6042 282.4645 281.1922 281.1039 288.5021 296.3165 297.7451 297.2189 298.7251 303.8633 307.2321 309.9405 311.169 309.2106 300.9007 294.5135 285.4727 289.3722 294.2928 293.4524 287.0003 281.8602 287.2872 293.3888 295.1783 295.6205 295.065 294.4898 291.8748 288.2697 284.6245 283.1746 285.6313 285.5999 286.5305 292.1523 296.2238 299.1611 300.6089 301.7218 302.3459 304.9843 305.9945 307.0485 308.2282 309.6474 310.3954 310.342 306.8196 300.9255 304.7394 307.1641 308.3699 310.1792 310.8368 309.9604 308.3252 306.0795 302.977 303.3181 307.6094 309.8472 311.171 311.1933 312.2123 313.3519 312.6047 312.6091 313.6812 313.8214 314.1878 315.8238 317.0403 317.7356 319.9254 320.571 320.9571 319.8689 315.8598 311.4352 310.8714 310.9474 310.9131 311.4829 312.6192 313.0998 312.2586 311.548 310.0645 307.3643 309.0864 310.3622 311.6268 312.1214 312.1052 308.0907 305.582 302.2973 298.7197 293.9752 291.8195 292.1841 288.775 289.7337 293.428 293.5783 293.837 294.6123 295.9445 297.5736 298.984 299.5048 299.9265 302.2144 303.7925 305.6109 306.8673 307.0851 306.4096 305.9885 305.887 306.3589 305.4709 303.6529 301.8622 299.282 304.2693 307.2333 309.1902 311.3424 312.9202 313.7155 313.6067 314.066 314.5878 314.6631 313.7097 313.5784 312.6539 311.1689 307.5757 308.3101 310.3263 311.5202 312.8144 314.1951 315.8569 316.366 315.1298 311.2024 310.2439 310.5919 312.6391 315.1891 317.6075 319.6096 321.3683 321.9088 321.2849 320.8398 319.9848 318.3934 318.3068 318.6627 318.0671 316.7999 315.8692 314.0692 314.1965 313.6859 313.7203 314.3231 315.1869 315.3767 314.9419 314.0439 312.0658 311.3406 311.2292 311.2427 311.1913 310.1427 309.3777 307.4424 306.2864 303.248 304.3335 304.3777 304.3063 304.5887 304.91 305.8052 306.1682 306.1385 307.0181 305.7444 305.7055 306.059 306.4172 305.7159 304.556 301.9573 298.8639 301.102 303.5389 305.2212 305.7744 302.822 297.1763 290.2601 283.0753 276.5956 270.3121 270.1554 268.7219 269.7984 269.9499 270.5505 274.5815 275.4543 274.257 275.7923 276.0277 275.4622 272.1483 269.3745 266.6639 264.5203 264.6857 267.339 272.3409 273.7494 276.2339 279.787 279.8059 281.9724 283.8416 284.9623 288.4791 290.2557 293.4816 292.4797 292.6261 294.0423 294.0912 293.2254 291.4342 287.8434 284.0131 275.9828 277.5898 280.5483 282.9875 284.9324 286.3278 287.6409 289.8717 291.1842 293.439 291.8796 288.3415 284.5709 281.8453 279.5632 277.2437 274.8885 272.8803 278.5096 280.0434 281.1377 281.3319 280.808 281.0114 280.9619 279.662 277.3933 279.0317 280.3081 280.8661 279.9095 278.5641 277.3325 276.0936 275.0985 274.2342 272.0588 270.7954 270.2482 269.4857 268.4419 267.1772 266.9088 267.5299 267.8241 268.8556 268.7104 268.0523 267.125 266.3702 266.4711 266.1428 265.3845 264.2141 261.758 261.7102 261.0012 260.027 258.3104 256.148 253.677 251.2918 248.4998 247.7061 250.4151 253.6947 256.7609 259.9992 263.6039 263.5789 258.6981 253.2363 249.9479 248.2111 244.6826 244.5271 244.6197 244.3266 244.6529 244.7831 244.6065 244.5776 244.6934 245.0022 243.9041 241.8866 245.0101 244.9527 244.6434 244.6099 250.4774 255.0933 258.4976 259.4703 259.8389 262.2204 263.8507 264.22 265.4253 258.5592 254.4997 250.6057 254.0967 253.4744 245.712 245.7841 248.1634 249.3462 253.4459 256.0279 258.8676 263.0138 267.1024 270.7239 273.8202 276.446 279.5056 285.0173 286.6784 287.087 287.1368 287.3975 287.7755 287.5644 287.3147 287.4727 287.245 286.1449 284.7876 282.9335 281.3439 278.606 276.3785 273.3232 270.5487 261.9674 258.4384 256.2773 254.198 254.7798 256.387 258.6073 260.7862 261.4205 263.3724 263.0867 261.9836 260.3339 257.5246 254.8877 254.5949 259.478 263.1384 267.7469 269.1041 270.8186 273.0451 275.0659 276.749 278.047 278.6113 278.8198 276.7607 274.7065 272.7142 270.2685 266.4755 261.2407 258.5749 259.6975 263.7296 269.3216 270.9286 272.6203 274.4236 276.257 277.942 280.0982 282.4396 284.586 288.7229 290.826 292.8433 294.1808 295.3906 296.0517 296.2466 296.2433 295.6093 294.6587 293.4634 292.9264 292.1494 291.2621 289.9522 288.9702 287.1798 287.1938 285.099 284.1241 283.4654 282.7632 281.7311 280.1 278.4583 277.4445 276.4063 273.6283 271.7391 270.262 269.3091 267.5747 264.7406 -9999 +-9999 -9999 288.8383 286.7681 281.1608 285.8016 289.5705 296.5983 304.8686 307.0346 309.1244 309.8504 309.2145 310.6557 311.9812 313.1328 311.5343 307.2804 298.9152 299.2758 301.7749 306.6517 308.9094 312.4969 315.1101 317.0366 319.063 322.7087 322.7414 320.029 316.1059 311.657 305.4459 306.2019 307.0399 304.1929 302.2251 298.4923 295.3624 291.4012 285.817 282.6447 280.5074 284.9713 293.1891 299.2927 301.094 302.08 300.9524 302.2195 306.6544 308.9453 310.4243 308.4801 300.811 292.9146 286.4648 295.374 299.7361 297.6251 290.6469 285.4273 285.3353 296.125 298.3159 299.9933 301.1003 299.6863 296.9221 294.7388 291.1888 288.5378 286.8404 288.4532 292.2639 298.416 303.0562 299.1611 300.6089 301.7218 302.3459 304.9843 305.9945 307.0485 308.2282 309.6474 310.3954 310.342 306.8196 300.9255 304.7394 307.1641 308.3699 310.1792 310.8368 309.9604 308.3252 306.0795 302.977 303.3181 307.6094 309.8472 311.171 311.1933 311.4948 311.8004 309.8815 310.0558 311.8029 311.4384 312.9765 314.9931 314.9182 316.0632 317.3221 319.4726 320.1541 320.4954 318.4784 315.7887 314.576 313.4764 312.5992 314.1137 314.6554 314.7697 314.183 313.1575 311.1671 310.0194 311.2755 312.4647 313.0731 312.6215 311.1812 307.8581 305.5888 302.6557 299.1641 294.129 294.1341 296.2214 293.116 288.5811 290.8359 290.8444 291.6245 293.4883 295.4146 296.4484 297.2413 298.1047 298.4339 300.2227 301.8813 303.2501 303.6495 303.7484 304.1956 304.0322 304.5486 304.4967 302.5805 300.4484 299.2538 302.8571 306.832 309.2099 310.7604 312.4418 313.9297 315.6336 315.3741 314.5526 314.1003 313.469 312.2691 312.0679 311.7683 310.1168 307.1656 306.7209 307.619 308.9886 311.0115 312.4168 313.7769 313.6964 311.7237 307.9526 307.9806 308.2318 310.3057 312.8422 315.3647 317.5224 319.112 320.7809 321.2833 319.9486 319.6337 318.9981 317.9526 317.8859 317.5975 316.2935 315.201 313.6436 313.421 313.0266 312.8075 313.2722 314.3168 314.8316 314.4872 314.0123 312.4386 311.6202 310.9907 310.1259 310.2806 310.6946 310.8203 309.6775 308.7808 303.8069 302.8984 303.2132 303.428 303.5724 304.2107 304.8733 305.1838 306.1405 306.701 305.3687 303.5459 304.5094 305.4607 305.3261 304.4354 302.8285 300.1177 298.5107 300.6046 301.9725 301.7324 298.7136 294.3158 288.0147 280.5487 274.6112 274.1526 275.3013 277.1763 278.6681 278.2659 277.7279 277.1015 279.2877 277.3751 278.4753 278.4214 276.0742 269.0138 270.5646 270.0713 268.7466 265.8435 266.2249 272.4695 275.1822 278.051 280.8649 283.0998 285.5459 287.4174 288.0349 288.9781 292.8577 294.9052 295.2856 295.4672 295.783 296.4397 295.4361 293.2315 289.8843 285.7286 274.9553 278.5693 279.9354 281.4286 282.5902 284.5526 287.3566 289.0717 290.6667 292.972 291.7426 288.362 285.2346 284.0474 281.4052 277.6861 276.7758 276.5296 281.3078 282.4707 283.4484 283.3802 282.3137 282.4146 281.3964 279.3859 278.2266 280.4601 281.407 281.0218 278.9592 277.6633 276.5161 275.2967 274.1729 272.8732 270.1468 268.8576 267.8885 266.8579 265.4196 265.1873 265.2126 265.9777 266.1387 267.5752 267.3206 266.5485 265.8633 265.1795 264.8224 264.6853 263.8264 262.6584 259.4057 259.3236 259.3712 258.567 257.1696 254.9844 251.4801 249.2845 248.379 250.2204 253.4328 256.0323 258.2904 260.8074 263.1765 262.8173 258.8947 255.104 250.5829 245.8309 244.5965 244.309 244.4626 244.6978 244.8176 245.006 244.5825 244.706 245.0561 245.1147 243.6944 241.4563 245.1662 245.3048 244.8755 244.697 244.6636 246.8084 248.8637 251.6297 253.2324 255.3847 257.8334 261.0696 263.9806 258.4536 253.8246 250.0399 253.0571 253.0573 248.6507 246.4898 248.9615 251.0688 254.6953 257.2222 260.4857 263.7689 267.8526 272.486 275.7266 278.1664 280.3774 284.3771 285.5326 285.6279 285.3044 285.3267 285.0975 285.0556 285.2456 285.4362 286.3792 286.4601 285.3263 282.9335 281.3439 278.606 276.3785 273.3232 270.5487 261.9674 258.4384 256.2773 254.198 254.7798 256.387 258.6073 260.7862 261.4205 263.3724 263.0867 261.9836 260.3339 257.5246 254.8877 254.5949 259.478 263.1384 267.7469 269.1041 270.8186 273.0451 275.0659 276.749 278.047 278.6113 278.8198 276.7607 274.7065 272.7142 270.2685 266.4755 261.2407 258.0722 260.6186 264.9012 270.6506 271.7297 272.7681 274.456 276.123 278.1945 280.1727 282.2035 284.5211 289.0317 291.1254 292.5849 293.9181 294.7564 295.3781 295.3216 295.0851 294.4907 292.8593 292.1072 291.6356 290.8713 290.1193 289.1369 288.0829 286.7892 285.6584 284.7179 283.5964 282.8193 281.6159 280.6252 278.8519 276.7396 275.2034 273.7204 270.341 266.8073 264.5968 264.4757 264.2693 262.6345 -9999 +-9999 -9999 299.4837 299.7621 296.2376 286.8102 296.7657 302.2978 302.2108 308.1688 311.4566 312.4088 312.5929 311.9691 312.8635 314.1489 313.9866 302.1382 302.9294 300.7217 303.9937 305.6813 305.5594 309.3222 313.4728 316.3992 318.8213 323.1816 323.2799 320.8925 316.9229 311.9955 306.3552 301.1427 300.6235 301.8592 295.4129 291.7301 288.8379 286.1119 284.2491 281.9532 282.4945 287.6834 295.9118 303.8562 305.822 306.276 305.2056 302.2195 306.6544 308.9453 310.4243 308.4801 300.811 292.9146 286.4648 295.374 299.7361 297.6251 290.6469 285.4273 285.3353 296.125 298.3159 299.9933 301.1003 299.6863 296.9221 294.7388 291.1888 288.5378 286.8404 288.4532 292.2639 298.416 303.0562 304.5624 304.5739 304.7102 305.3539 307.8147 308.8302 310.1193 310.9777 311.2467 310.9433 309.1617 305.2474 297.5351 303.3964 306.0177 307.722 309.0211 309.3658 308.1682 305.8252 302.5829 299.9367 304.9222 307.5078 309.3075 310.376 310.3119 310.6945 309.4004 306.8011 306.8271 310.1683 309.8268 310.7691 311.9518 312.5012 314.0535 316.4264 318.8532 320.1966 321.0103 320.0908 318.0887 316.662 315.6888 314.6603 315.7021 316.0558 315.7589 315.1742 313.8391 312.5754 312.1375 312.9556 313.5482 313.3783 312.0641 310.1449 305.9985 304.0463 301.6793 298.282 293.0157 296.6766 298.4432 296.5955 289.2853 288.6727 289.3496 290.3623 292.1776 293.5908 294.7684 295.8706 296.1431 296.2762 298.3456 299.4812 300.9649 300.8928 301.168 301.8778 302.4164 301.9066 301.9093 298.5038 298.4587 300.8823 305.1353 308.0779 310.6372 312.1377 313.4732 314.6027 315.95 315.3509 314.2263 312.9347 312.3242 310.6451 309.8696 309.2039 309.0252 306.6625 305.7925 305.6426 307.0243 308.8928 310.2037 311.2327 310.4889 308.2999 305.6976 306.2714 307.1339 309.1318 311.6244 313.891 315.8388 317.6156 319.2518 319.072 318.8569 319.0517 319.0259 317.9014 317.1732 316.7165 315.8047 314.3336 312.1717 311.8116 311.0905 311.0329 311.9074 313.0348 313.8032 314.0739 313.5845 312.8735 312.0277 311.0089 310.0671 309.3273 309.7508 310.3801 310.3109 309.3098 305.3445 303.8842 302.4082 302.4279 302.4388 303.0981 303.5054 304.388 305.2555 306.2339 305.4922 302.7859 301.2936 303.1671 303.9764 304.3437 303.6899 301.0592 292.523 297.2044 298.1855 296.2011 292.4912 287.0023 279.2968 272.9189 278.1074 278.5514 279.5141 283.3661 284.8662 283.7825 282.4476 281.4114 281.6559 280.2498 281.6696 276.7152 277.0762 276.5833 275.225 272.9709 270.0538 268.3944 266.6962 270.9713 274.5522 277.96 281.7932 285.2337 286.5368 289.1671 289.5717 290.2953 293.5874 295.9189 297.6994 297.6909 297.3655 297.8633 297.0506 295.3694 291.9063 286.292 275.7349 278.5196 280.9488 282.9066 284.3551 285.7242 287.4307 288.9675 290.6451 293.3895 293.0275 290.8394 289.6141 287.1812 284.5134 280.5109 279.8399 280.2912 282.8176 283.9319 284.7045 284.5135 283.6473 282.668 281.1842 279.4083 279.2542 281.2055 282.0041 280.6156 278.8577 276.8852 275.3686 274.2699 273.0324 271.4893 268.4295 266.9439 265.6162 263.7426 262.804 262.8598 263.2194 263.8137 264.2392 265.2699 265.269 264.7868 264.1234 263.5063 263.1686 262.7166 262.1889 260.9518 258.334 257.2006 257.6185 256.6934 255.1794 252.0687 249.1782 248.6854 249.335 252.8646 255.847 258.462 260.5997 262.6286 264.2077 262.888 259.1985 256.8318 245.4747 244.3473 244.4939 244.5331 244.5342 244.5276 244.4888 244.5641 244.7188 243.1176 243.3035 244.4926 244.6571 241.6476 241.8408 244.4251 245.1193 244.8751 244.452 244.1936 248.8637 251.6297 253.2324 255.3847 257.8334 261.0696 263.9806 258.4536 253.8246 250.0399 253.0571 253.0573 248.6507 246.4898 248.9615 251.0688 254.6953 257.2222 260.4857 263.7689 267.8526 272.486 275.7266 278.1664 280.3774 284.3771 285.5326 285.6279 285.3044 285.3267 285.0975 285.0556 285.2456 285.4362 286.3792 286.4601 285.3263 283.8636 281.8714 278.7232 276.5121 273.1143 270.0744 263.97 260.8958 257.7182 254.9508 253.7183 254.6311 256.3962 257.9454 259.2728 261.1032 260.6354 259.5958 257.1143 254.473 253.123 257.5682 261.4155 263.4449 267.8059 269.5051 271.174 272.797 274.5979 276.3122 277.0665 277.3891 277.1925 275.6712 273.6172 271.0277 267.602 262.6897 257.5827 258.4969 262.2757 266.0359 269.4736 270.7312 271.9644 272.9459 275.0634 276.9854 279.4378 281.4036 283.6565 289.2659 290.8468 292.2075 292.8151 293.5726 293.9614 294.0613 293.6235 292.9539 291.4921 291.1487 290.4677 289.4211 288.5731 287.7716 286.8605 286.0179 285.2548 285.0833 283.5458 282.725 280.6705 279.1447 277.47 275.8759 274.7455 272.158 268.1211 264.9631 262.0439 259.4059 259.0404 258.2361 -9999 +-9999 -9999 306.6904 307.9167 306.2028 298.765 298.4158 306.5714 309.331 305.6815 311.401 315.7716 316.1492 315.6344 314.1753 315.1015 316.0491 305.7551 303.5967 304.045 306.7237 309.7226 309.9251 309.3222 313.4728 316.3992 321.3553 323.1816 323.2799 320.8925 316.9229 311.9955 306.3552 301.1427 300.6235 297.8521 295.4129 291.7301 288.8379 286.1119 284.2491 281.9532 282.4945 287.6834 295.9118 303.8562 305.822 306.276 305.2056 302.718 306.3307 308.3906 309.2735 307.7777 298.8826 292.9301 289.1567 297.8209 301.5079 301.9348 295.8508 290.291 287.0558 297.779 300.5101 303.5238 305.6148 304.8794 301.5398 298.4742 296.2715 293.8756 284.915 289.5917 293.8404 298.9299 303.4105 306.1711 307.0525 307.5563 308.6186 311.5855 312.7545 313.7371 313.7726 313.0552 311.2433 309.2348 306.1046 301.718 300.8208 304.4106 306.3538 307.0022 306.987 305.5436 302.7599 299.5401 298.9645 305.9056 307.7759 309.2224 309.2157 309.2368 308.9793 306.8949 305.3511 305.4415 305.3152 307.3792 310.6002 311.9009 313.6776 315.599 317.0475 319.0894 320.0478 321.1367 320.5013 320.063 318.6127 317.3347 316.4605 316.4707 317.1994 317.2766 316.4658 315.3735 314.0554 313.5173 313.7752 313.3343 312.2018 310.8707 309.1516 304.7663 302.09 299.8929 295.2382 296.9466 298.7464 299.5157 298.2188 293.0639 288.2774 288.2768 289.6579 291.726 292.9611 293.6354 294.1788 294.0807 295.1156 297.5831 297.9312 298.332 298.9529 299.665 300.4239 300.0504 299.2444 296.9145 298.8757 301.9096 305.2293 307.6034 309.4465 311.0237 312.3402 313.4671 314.5903 315.6649 315.103 314.0612 312.3864 310.4139 308.765 307.6386 306.8996 306.2508 305.1177 304.9499 304.3863 305.0578 306.388 307.9499 308.0571 307.2565 304.4263 305.5588 306.2365 308.0349 309.5487 310.9778 312.7611 314.339 315.5402 317.2595 318.894 318.6597 318.8408 318.8099 317.9496 316.7193 315.8985 315.3093 313.8634 311.6227 309.7297 308.4839 308.9403 309.5565 311.1809 312.4439 312.8911 312.7683 312.6508 311.4811 310.294 309.4892 309.032 308.6658 309.2683 309.5327 309.0881 306.5105 305.6639 304.1295 301.6154 300.912 301.4062 302.4371 303.1133 304.4009 305.955 305.6259 302.9323 300.2892 300.0064 301.1254 302.1743 302.4392 299.0567 289.4791 291.8256 292.3169 288.8919 284.0208 277.1092 276.6759 282.9702 284.7143 285.4676 285.0796 284.5313 288.2008 288.439 286.6443 284.9967 284.1489 283.1523 282.4978 281.7072 280.1707 280.0409 280.5004 278.9501 274.6478 270.9757 267.2521 269.8521 274.3746 278.1228 281.9836 285.6741 287.3934 288.4425 291.3401 292.2722 294.8822 297.1165 298.2417 297.9206 297.3585 297.975 297.3312 294.8075 291.814 281.5428 276.3995 279.6781 280.5441 282.6091 285.3243 287.2062 288.2485 289.9692 292.0152 294.4476 294.5631 294.0501 292.8752 292.007 289.6962 284.97 283.3647 283.5562 284.83 285.8105 285.9648 285.2872 283.9254 282.5302 280.4903 279.748 279.8859 281.485 281.1814 279.6983 277.3602 275.7322 273.89 272.5445 270.9582 269.5881 266.7802 264.9771 263.2789 261.8337 260.8864 260.6835 260.7879 260.5701 261.1069 262.2137 262.67 263.0057 262.1053 261.7477 261.1835 260.8563 260.2431 259.1693 256.8058 255.5952 255.2672 256.6934 255.1794 252.0687 249.1782 248.6854 249.335 252.8646 255.847 258.462 260.5997 262.6286 264.2077 262.888 259.1985 256.8318 245.4747 244.3473 244.4939 244.5331 244.5342 244.5276 244.4888 244.5641 244.7188 243.1176 243.3035 244.4926 244.6571 241.6476 241.8408 244.4251 245.1193 244.8751 244.452 244.1936 245.0382 246.3495 247.7678 250.2503 253.4799 258.9773 263.0711 259.4866 253.7075 248.9558 246.6059 253.7562 251.2502 247.2099 249.6326 251.8057 254.9419 257.5388 260.949 264.5616 268.2119 271.8768 274.9016 277.4767 279.7879 283.3937 283.8889 283.0031 281.0355 281.8011 282.2529 282.9192 282.1568 282.2947 284.6847 285.1218 284.9837 284.524 282.057 278.8596 276.9607 274.6428 271.6184 267.26 264.6857 261.5977 257.7826 254.3741 253.3231 254.1128 255.3136 256.5219 258.7242 257.5538 255.7632 254.0367 252.4768 255.8206 259.4185 261.6852 263.8633 268.7787 270.6831 272.3861 273.5792 274.5517 275.0878 275.3513 275.3828 274.842 273.7216 272.4844 269.5202 264.9552 259.1607 256.8547 260.1517 263.8345 265.7457 267.7159 269.3023 270.7691 271.7383 273.5711 275.926 277.5119 279.5874 282.2343 286.9248 289.4876 290.5186 291.6357 292.2627 292.306 292.2501 291.8781 291.445 289.8969 287.9233 287.0029 285.986 285.5782 284.9406 284.0664 283.6019 283.1353 283.2265 284.1366 282.9635 281.2422 279.593 278.5477 277.4857 275.9737 274.6238 269.4906 261.9453 261.5338 263.1678 262.7711 260.9669 -9999 +-9999 -9999 306.6904 307.9167 306.2028 298.765 298.4158 306.5714 309.331 305.6815 311.401 315.7716 316.1492 315.6344 314.1753 315.1015 316.0491 305.7551 303.5967 304.045 306.7237 309.7226 309.9251 307.5688 312.6133 315.7791 320.6758 322.3033 322.5361 320.3958 316.7846 312.1479 307.6811 302.5604 297.3701 293.2323 291.4243 289.2594 285.6955 287.9303 287.2196 284.2602 283.9096 292.0837 303.5443 306.8746 309.9068 310.1689 308.4738 306.9314 308.0051 309.0913 309.4129 307.844 299.595 293.9597 298.5939 301.1111 303.0975 303.9994 300.69 295.8403 290.1687 301.1406 303.9252 305.9514 308.3083 308.3705 305.3441 302.4876 300.7386 296.9099 289.7458 287.445 293.1591 298.0602 301.1875 303.7614 305.9091 308.1468 310.6332 313.456 314.1695 314.6995 314.1898 311.8117 311.0771 309.2659 307.1169 303.5262 301.021 302.3071 303.4394 304.4953 304.5245 302.939 300.0269 297.1368 300.2254 306.1495 307.8586 308.6818 307.4714 308.4246 307.0772 304.9544 302.9157 304.4487 310.6384 312.3265 313.7664 314.9105 315.8517 316.6921 317.635 318.9882 320.0417 321.8388 321.4125 321.255 320.4109 319.1978 318.3689 317.9645 318.1214 318.2966 317.7953 316.9801 315.7478 314.6239 313.7704 312.8093 311.5197 309.8064 307.6248 302.8631 299.2709 296.6798 299.2129 301.0605 300.2405 299.1461 297.0462 292.8185 288.2768 288.2768 288.2734 290.0501 291.2343 292.9139 291.8005 292.6818 294.2632 297.0101 296.4247 296.4616 297.4899 298.5856 299.2724 298.7431 294.3834 296.9264 303.7007 305.4471 306.9005 307.9779 309.5446 310.7892 311.9071 312.7811 313.9786 315.4935 314.9305 313.4271 311.4361 309.1331 307.5868 307.578 304.8727 304.1738 303.3679 303.1154 303.1263 303.292 303.7544 304.8052 305.3769 303.2632 303.192 306.1194 307.2157 308.2396 309.4385 310.2626 311.5558 313.2838 315.1645 317.4035 319.9783 319.5718 318.903 318.9844 318.1467 317.2143 315.8261 314.5764 313.1413 310.7676 308.1693 307.5255 307.2701 307.4728 309.3725 311.2317 311.9291 312.0466 311.2618 310.6784 309.8674 309.1237 308.4776 308.1933 308.1621 308.3982 308.4105 306.8675 306.2557 305.5566 304.5798 302.4584 300.0061 300.7381 302.1704 303.1265 305.2178 305.2129 303.4073 300.5124 296.9014 295.1861 296.0512 296.9071 293.8593 289.3561 286.7633 283.9604 280.0524 278.3499 280.4949 283.1518 283.737 286.5298 290.6797 290.2422 288.7917 290.1955 291.4588 289.6644 288.2057 287.0483 285.5869 284.8076 283.5744 283.6681 283.5257 283.4324 282.0376 278.3157 274.3061 268.3516 269.2273 273.9908 278.5528 282.2451 286.1115 286.6199 289.9799 291.8575 293.4064 294.5318 295.9906 296.2205 295.5707 295.6725 296.5014 295.4681 293.2724 290.4608 280.8409 279.4293 280.6921 281.2896 283.8956 287.052 289.0113 290.4167 292.0359 295.5465 296.4196 296.8468 296.1234 295.6058 294.1251 291.6011 287.3463 286.8722 287.314 287.6533 287.5407 286.7263 285.0956 283.9254 282.5302 280.4903 279.748 279.8859 281.485 281.1814 279.6983 277.3602 275.7322 273.89 272.5445 270.9582 269.5881 266.7802 264.9771 263.2789 261.8337 260.8864 260.6835 260.7879 260.5701 261.1069 262.2137 262.67 263.0057 262.1053 261.7477 261.1835 260.8563 260.2431 259.1693 256.8058 255.5952 255.2672 253.8961 251.7273 249.5046 248.8633 249.7258 251.9779 255.605 257.8199 260.5283 263.2938 265.122 265.4676 263.8983 259.1457 255.1602 244.2843 244.1372 244.2368 244.227 244.4616 244.6641 244.6503 244.5737 244.7339 244.867 244.9619 244.9532 244.9347 244.5795 244.3992 241.2453 243.6003 245.1322 244.4517 244.2234 244.3177 245.1422 245.0935 246.4904 251.7476 257.4918 261.1184 260.5241 256.6366 250.2408 244.7039 251.4163 249.309 251.2341 248.9594 250.5608 255.5688 259.5925 261.3983 264.4785 268.0979 270.8675 273.7673 276.6015 279.0208 281.6735 281.2819 278.9298 276.2088 276.7072 279.915 278.0423 278.197 279.2371 282.4982 283.6482 284.0807 284.6714 282.7747 280.9326 279.0275 276.6387 274.2032 270.3683 268.22 266.0349 263.1155 258.8604 254.4201 251.6806 252.9332 253.6962 256.2771 255.3627 253.3102 252.5639 253.364 257.5122 260.207 262.1836 264.4467 268.9271 270.6625 272.077 272.7164 272.6952 273.0848 273.2646 272.85 272.2709 270.4842 269.4406 266.3741 261.1342 256.7411 257.374 260.3143 262.0815 264.0774 267.5266 268.7523 270.3445 271.6039 272.6961 274.2135 275.6128 277.912 280.8036 285.2927 286.9201 288.5135 289.6773 290.3116 290.825 290.4351 289.8988 289.461 287.4124 285.5925 284.1207 283.4409 283.3168 282.9405 282.3925 281.6534 281.2834 281.5931 283.2319 283.0374 282.4689 280.877 280.0273 278.6999 277.6699 276.0571 264.35 270.4119 268.6188 266.7803 264.8149 263.6527 -9999 +-9999 -9999 306.0909 309.4557 310.2029 308.7421 304.1844 310.0784 314.5883 310.166 314.5807 318.3714 319.5722 319.0598 317.0976 316.6754 317.089 310.2441 304.5431 306.456 307.6102 309.6906 311.9006 311.4031 311.3552 313.6758 319.4428 320.8835 321.4989 319.3183 315.8408 311.3833 305.8812 303.4612 302.2442 295.2057 292.8295 296.0344 296.9942 296.4746 290.8108 286.0968 286.9817 292.1608 302.8051 307.4548 310.965 311.9134 311.6941 310.6324 310.889 311.442 311.428 306.301 301.4969 296.312 302.3404 304.5215 305.9538 306.5164 304.4087 301.0757 294.5351 300.5488 304.1588 306.5428 308.2505 309.3414 307.9462 305.6472 303.686 299.241 298.299 293.7768 288.0643 294.8707 298.9497 301.7234 304.2225 307.1386 309.5369 312.5891 313.319 313.2516 312.2087 311.1662 310.1494 309.4063 307.5847 304.2972 296.544 299.7283 302.6109 303.2611 301.7873 299.2977 296.8532 301.7265 303.189 307.3076 308.0753 307.5881 305.9102 306.946 304.8961 301.6782 304.3864 307.9559 313.3826 314.5286 315.18 315.6419 316.0928 316.4887 317.6603 319.1431 320.4199 322.2534 322.482 322.1819 321.6968 320.9697 320.5177 319.6234 318.8531 317.9405 317.8681 317.3389 316.2583 314.4778 312.709 311.4751 310.5634 309.202 307.5892 301.4155 298.3075 300.5061 302.6026 302.1748 299.7362 295.5759 292.9388 291.9456 288.2763 288.2758 288.2745 288.527 288.2455 288.5882 289.9916 291.069 292.4662 295.4763 295.1646 295.7 296.4834 297.811 298.1472 296.2515 293.9677 299.2126 305.998 307.0432 307.6943 308.0105 308.7929 309.7686 311.029 312.0876 313.3727 315.009 314.3929 313.3434 311.3412 309.7134 308.47 307.1662 306.1742 305.8017 302.7401 300.9045 301.889 301.7219 301.1758 300.7133 301.4775 302.5934 306.0879 307.2976 309.0078 310.0751 310.9702 311.1921 311.5182 313.4251 315.0998 317.023 320.4438 320.7854 320.0047 319.1805 318.2318 317.485 316.224 315.2949 313.7938 310.1765 308.1218 306.8512 306.208 305.7536 307.4068 309.617 310.8331 311.2963 311.2363 310.6758 309.7809 308.4771 308.0623 307.7447 307.6616 307.533 307.6893 306.4011 305.7184 305.5869 305.0047 303.291 299.5036 299.4906 299.943 301.9496 303.8888 304.5828 304.2945 302.1404 298.3653 294.4714 290.9504 288.93 285.7371 282.9427 281.293 283.4334 286.4544 289.5578 289.903 288.8471 290.4433 289.9736 293.6646 294.3578 292.7852 293.2794 294.2088 292.801 291.1513 289.4839 289.4955 287.2128 285.9878 285.7648 285.4795 284.6565 282.3056 278.6937 274.7687 269.7094 268.9725 274.1096 278.3535 282.0579 284.1695 287.7743 290.3936 292.2114 293.4064 294.5318 295.9906 296.2205 295.5707 295.6725 296.5014 295.4681 293.2724 290.4608 280.8409 279.4293 280.6921 281.2896 283.8956 287.052 289.0113 290.4167 292.0359 295.5465 296.4196 296.8468 296.1234 295.6058 294.1251 291.6011 287.3463 286.8722 287.8481 287.6533 287.5407 286.7263 285.0956 283.3948 281.5837 280.5676 280.8268 280.9823 280.8149 280.0139 278.5596 276.8117 274.9227 272.9466 271.4403 269.8572 268.2393 264.5991 263.0728 261.6334 260.0167 259.0971 258.9576 258.3776 257.936 257.791 259.1755 259.0429 259.1999 259.3621 259.6092 259.5617 258.9695 258.4096 257.7859 255.4655 253.7317 252.2405 250.9102 249.8522 249.4472 250.2979 254.0058 256.889 258.5681 259.681 262.4339 264.3588 265.3947 264.7534 262.7132 257.8914 252.8509 244.6261 244.2187 244.2725 244.3964 244.3046 244.3394 244.4682 244.6022 245.1157 244.9882 244.8467 244.8949 244.7525 245.0045 245.7568 245.0865 241.3901 245.0201 244.4749 244.2989 244.295 244.6915 244.3249 244.9498 248.6719 252.6835 255.9623 257.7608 256.0652 251.1617 244.9054 245.5829 250.5007 253.1104 249.6223 251.8385 257.7687 260.9891 264.2816 266.1074 267.4306 270.1866 272.5892 274.9132 277.3332 278.975 277.636 275.7689 271.1897 274.5157 275.3919 272.4344 272.7874 274.6824 280.3684 282.5108 283.5066 284.7046 284.1452 282.6044 280.4412 278.5921 276.731 273.4539 271.739 269.3914 266.5479 263.2086 259.2574 253.6703 252.3746 251.7394 253.0019 253.1678 251.8977 251.7226 255.6278 258.2957 260.3739 262.4572 264.8465 268.4898 269.7663 270.7274 271.0753 271.0033 270.9359 270.7056 268.8927 268.7335 266.8897 265.2036 261.2253 256.7713 255.2494 257.5426 263.1637 265.4722 265.2615 264.0192 266.1075 269.4928 271.9766 273.3929 273.7054 274.8749 277.2531 279.5264 283.2421 284.9333 286.5704 287.6317 288.2697 288.7978 288.4368 287.7561 286.7879 285.1401 284.0697 282.7231 281.8958 282.0004 281.7619 280.9728 280.064 279.8704 280.246 281.6055 283.9327 283.2638 282.6568 281.7804 280.4441 278.7716 277.1657 274.4452 273.0567 271.4461 268.8907 266.1026 263.7709 -9999 +-9999 -9999 307.3719 309.9587 313.2928 314.4092 312.971 312.2878 318.8891 316.1949 315.0008 320.9315 321.928 321.7932 320.2353 318.2827 317.7831 314.2949 308.5899 305.8748 308.81 310.6466 313.064 314.7271 314.5294 312.3016 318.0833 320.2507 321.0005 318.9647 315.8575 308.7353 310.0057 310.3372 307.9781 303.331 301.8479 301.4907 301.5876 300.5545 296.7839 287.5535 291.4767 298.0093 301.0728 305.9991 310.0708 312.1921 314.0369 313.9631 313.5712 314.3453 313.4475 306.9263 301.8217 296.8718 305.5212 307.2839 308.4796 308.334 306.9659 305.7484 294.6494 295.4578 301.5104 305.2395 307.2807 308.3676 309.0286 308.359 306.2229 304.2968 299.0573 300.8413 297.1262 290.0478 294.5101 299.3926 302.4406 305.4084 307.9633 311.149 311.4068 310.9581 310.0564 309.6726 309.308 309.1581 307.7514 304.8432 295.5754 296.974 300.6706 301.161 298.9782 296.1985 296.4819 301.6375 303.5779 308.1349 307.2937 306.7822 305.2426 304.0144 300.9057 304.2171 306.7771 309.5728 314.2875 314.9516 314.1821 314.2789 315.2823 315.8569 318.0294 319.6178 320.6589 322.4032 322.5976 322.2165 322.0026 321.6373 321.4473 321.0405 319.7638 318.133 316.7495 316.647 315.7336 314.1268 312.1264 310.1191 308.6362 307.3764 306.1818 300.1218 302.5426 304.5076 304.1969 301.8838 298.1137 297.632 298.2292 296.197 289.5439 288.2738 288.2718 288.2275 288.2177 288.1785 288.7928 290.6681 291.3673 293.3111 291.9208 292.12 294.1067 296.2969 296.5075 291.6581 295.5389 299.8746 305.9716 306.5052 305.9761 306.2105 306.808 308.184 310.1664 311.5326 312.8032 314.4331 314.071 313.2725 311.9856 311.2373 309.1813 308.2391 308.251 308.0434 302.6957 300.0623 300.3824 299.9832 299.4005 298.6073 303.0946 305.7397 308.8767 310.506 311.296 312.5647 313.0564 313.3652 313.3243 313.9966 315.1149 316.5565 320.0425 321.2188 320.9117 319.844 318.5895 317.6309 316.4262 315.6389 314.1546 310.341 307.2534 306.6534 306.097 305.1389 305.8636 307.603 308.8044 309.2104 309.942 309.6668 309.164 308.4599 307.4643 306.9887 306.8825 307.2237 307.1504 306.2093 305.2246 304.674 304.4303 303.1802 298.8112 298.7223 298.9537 300.3195 302.8109 303.9118 304.4088 303.4228 300.9981 297.2921 294.0669 291.0003 288.6745 287.7359 288.8159 289.3095 286.4544 289.5578 289.903 288.8471 290.4433 289.9736 293.6646 294.3578 292.7852 293.2794 294.2088 292.801 291.1513 289.4839 289.4955 287.2128 285.9878 285.7648 285.4795 284.6565 282.3056 278.6937 274.7687 269.7094 268.9725 274.1096 278.3535 282.0579 284.1695 287.7743 290.3936 292.2114 293.0845 292.6933 294.2527 293.4925 292.6374 293.2597 293.4582 292.7271 291.1502 288.3441 277.6248 281.4643 282.0647 283.1595 286.1137 288.9633 290.9596 292.7115 294.5149 297.1099 298.0197 298.3896 297.7701 296.8332 295.3687 293.4846 290.021 289.7863 290.3512 289.1279 287.7893 286.1336 284.0631 282.5565 281.807 281.5046 281.3472 280.9228 279.8878 278.3961 276.5435 275.1619 273.7956 272.3943 270.2667 267.3707 265.7986 262.2167 260.6399 259.5092 258.9796 258.2126 257.6623 256.9405 256.562 256.1528 256.156 256.1601 255.7814 255.8323 256.183 257.244 257.0336 256.0067 255.2314 252.0857 251.3472 250.4889 249.287 249.5997 251.2429 253.8775 257.0536 259.3385 261.483 261.7643 262.8483 264.3087 264.5459 263.2542 259.5555 256.1331 249.4881 244.9249 244.5045 244.3919 244.2959 244.2425 244.55 244.5456 244.7995 245.0079 244.6712 244.4965 244.7887 245.0699 245.255 245.541 244.889 241.406 244.8744 244.4714 244.36 244.5863 244.4726 244.2795 244.4771 244.7941 245.9308 248.0248 250.7029 251.8576 249.2729 244.4565 244.343 246.5689 253.3298 252.8518 251.9259 258.388 261.6285 264.1556 266.4987 268.39 270.1749 272.1027 273.511 274.7797 274.7184 273.1161 271.6266 268.5131 268.2953 267.7425 270.5333 274.065 276.0357 280.0269 281.7794 283.455 284.3524 284.7081 283.9877 282.6357 280.8636 279.5079 277.2709 275.7906 272.9362 269.5937 266.1833 262.4315 259.7854 256.2416 253.5843 251.0916 251.1685 251.1216 253.243 256.094 258.1479 260.3328 262.4553 264.4066 267.2446 268.2759 268.6003 268.8415 268.2893 267.8874 267.6283 266.4052 265.5151 263.0393 260.8002 256.2644 255.1754 256.9159 260.12 266.1356 270.4194 271.1612 267.295 265.433 268.2259 270.2352 271.403 272.4789 273.9998 276.0536 277.8242 281.9527 283.5225 284.9032 286.2723 286.9828 286.9695 286.3027 285.5128 284.6794 282.6144 282.6153 281.4668 280.5899 280.4526 279.9344 279.6825 279.1002 278.7897 279.9017 281.3747 282.8492 284.3343 284.281 283.5139 282.2204 280.4478 278.3398 276.4026 274.9673 272.2243 268.907 266.0236 264.0388 -9999 +-9999 -9999 309.4316 313.1047 316.307 318.3699 319.4523 319.0939 322.603 322.7258 321.4557 324.4664 324.7342 324.2706 322.4724 320.9134 319.4144 316.7867 314.5441 310.1137 308.3182 312.6103 315.1459 316.589 317.2511 317.1257 316.992 319.5327 320.4323 318.2248 313.3281 314.1698 314.6013 313.0832 311.211 306.9589 305.2419 302.3111 298.9593 295.9402 291.453 292.5061 297.879 302.9174 306.9841 307.2573 310.1416 313.0514 314.9962 316.6895 317.3228 317.1298 315.356 307.2626 308.4409 300.6594 306.2803 309.6036 310.4976 310.8309 310.0405 309.2038 305.2086 300.6911 297.9343 302.9963 306.4078 308.1048 309.4335 310.3065 309.4417 307.2417 304.6996 306.5461 305.0178 302.7965 297.2021 295.4156 300.6156 303.1332 305.7467 308.627 308.523 308.6118 308.1859 308.0716 308.1266 308.5291 308.1119 305.6367 297.7743 295.023 298.4099 297.8094 295.2547 294.7231 300.0236 302.7876 303.8094 305.7001 306.511 306.0089 305.2296 302.2805 301.478 305.4462 308.1517 309.9183 312.7758 312.376 311.8091 311.9506 313.7825 316.0071 317.653 319.2372 320.283 322.0594 321.5021 321.2875 321.0847 321.674 321.9686 321.289 320.3338 319.3084 315.7051 314.1109 313.235 312.501 310.8765 309.1828 307.3828 306.1881 304.0208 302.7355 306.1082 307.0385 305.6866 302.508 298.8531 301.6179 302.0945 300.4199 292.3429 289.0378 288.5925 288.2026 288.154 288.1104 288.0667 290.4232 291.527 290.9098 289.7099 289.92 290.9971 292.6712 291.7398 294.3516 296.0265 299.2374 302.8928 303.6999 304.0335 304.6759 305.7638 307.7253 309.7638 311.1161 311.9691 313.9274 314.0167 313.3418 312.6631 310.1286 310.1074 309.6503 309.3119 309.1295 302.2241 299.3104 299.0965 298.5648 298.7241 300.1651 303.7944 306.1815 309.1869 312.8875 313.3045 313.8605 314.9381 315.687 315.6271 316.114 315.8229 316.9435 319.5029 320.348 321.0296 320.1521 318.7646 317.8761 316.598 315.5187 314.8907 312.3666 310.4339 308.2188 306.0311 305.0811 304.3766 305.6999 308.8044 309.2104 309.942 309.6668 309.164 308.4599 307.4643 306.9887 306.8825 307.2237 307.1504 306.2093 305.2246 304.674 304.4303 303.1802 298.8112 298.7223 298.9537 300.3195 302.8109 303.9118 304.4088 303.4228 300.9981 297.2921 294.0669 291.0003 288.6745 287.7359 288.8159 289.3095 292.8917 295.2534 294.4821 294.2663 295.1783 295.0821 293.8014 297.8326 298.1766 297.9442 297.3345 296.0994 294.2799 293.342 292.3426 289.3158 288.4229 287.2318 286.2224 284.4298 282.1603 279.5904 276.2226 270.5252 269.6578 272.8419 277.9722 281.206 284.9678 287.8705 290.6302 291.817 291.3835 290.311 290.6504 289.9814 289.5958 289.6326 290.3326 290.6188 289.855 287.0781 282.1663 282.5074 283.1678 284.9232 287.3555 289.6638 291.5664 293.2525 295.1994 297.898 298.8275 299.4602 298.9986 297.8719 296.1344 294.1737 292.3726 291.4403 290.0946 288.8863 286.6558 285.1997 283.6878 282.6319 282.1228 281.8624 281.4687 280.4211 278.8488 277.1192 274.8577 273.4164 272.4247 271.2773 267.3109 263.655 260.4391 259.2939 258.4068 257.4989 257.5857 258.6456 261.7732 261.1493 258.9752 258.2416 256.2013 255.0594 253.6885 252.6683 253.4149 253.7866 254.1727 253.6874 252.413 250.566 251.4076 252.6979 253.9841 254.4567 255.4797 258.2977 259.5791 260.9193 263.9431 263.9584 263.8237 264.4806 263.4643 261.9535 258.7094 254.4239 248.4295 245.7192 244.845 244.5589 244.6862 244.3809 244.4522 244.6891 245.1094 245.2113 244.838 244.7227 244.4777 244.5865 245.8014 245.3466 244.5708 245.0635 241.3722 244.6262 244.6135 244.7761 244.7381 244.6989 244.5173 244.3455 244.4004 244.4712 245.6903 246.9544 245.6176 244.2222 244.0539 244.9234 250.6779 252.9321 252.696 257.712 260.4594 262.9539 264.674 266.7654 268.7537 269.5985 270.4379 270.4776 269.3588 268.4212 265.1641 263.8687 265.3499 269.7606 271.4938 272.9584 274.7714 279.2929 281.0897 283.2224 284.3034 285.1511 285.1131 284.3746 283.3999 282.361 279.9464 277.8056 275.7311 272.4318 268.7859 265.28 262.5248 260.8025 258.5428 250.6459 250.6722 250.8738 253.254 255.8285 257.9305 259.4941 262.3474 264.3699 265.9153 266.389 266.4209 266.0258 265.7868 265.4456 264.9189 264.3423 263.4579 260.7456 256.751 254.6583 256.9287 259.2845 262.1496 265.9213 269.4991 272.7944 272.7619 269.1927 266.2621 268.9653 271.2725 274.386 276.5156 277.7081 278.7131 280.437 282.2115 283.9689 285.6785 285.9446 285.5015 284.8925 284.2897 283.4756 281.0262 281.4283 279.8916 278.4675 278.2236 277.8412 277.6811 277.8727 277.907 279.5185 280.8664 282.6669 284.6632 285.5862 285.2197 284.0966 281.9819 280.1827 277.6387 275.2532 272.687 269.0623 266.8492 266.25 -9999 +-9999 -9999 302.8852 309.0019 315.1492 320.3389 323.186 324.8345 326.9307 326.9794 326.7134 327.4005 328.1968 327.4463 325.6607 323.8087 322.075 318.7874 317.0991 312.9776 308.895 311.7426 317.0434 318.7208 319.526 319.5807 316.3056 318.9101 320.7558 320.1249 318.8019 318.4012 317.6528 315.432 312.3781 305.8638 301.2485 296.458 293.6553 297.862 292.693 298.5559 305.3378 308.2914 311.5039 311.3987 312.373 314.809 317.576 319.8527 319.438 317.9519 316.4278 314.4386 313.3813 308.267 304.0624 309.8417 312.5745 313.5001 313.8026 312.9714 308.9718 305.8487 301.1717 301.159 306.8869 309.8598 311.2862 312.2166 312.7775 309.586 309.438 309.9034 309.2106 307.5391 305.7903 301.1094 300.4585 302.146 305.3798 306.9084 306.857 306.1263 306.6305 307.1885 307.0971 307.5656 307.1607 305.5899 299.3237 292.1838 295.9165 294.7096 294.5257 299.729 302.8157 303.2933 303.8733 303.3254 303.6779 304.8312 302.4392 299.5365 302.624 305.8333 307.4755 307.8211 308.2375 308.2139 309.7897 311.6684 313.7463 315.2 316.9046 318.4705 319.9763 320.2101 320.0027 320.2241 320.4404 321.1937 321.9601 321.8041 320.5465 319.1885 316.1488 314.9975 313.4128 310.6797 309.1251 307.9939 306.8976 306.4758 303.9409 305.249 308.2173 308.9725 306.5473 302.395 302.8988 305.0612 305.6446 303.6172 294.8047 291.3795 290.0689 288.1356 288.0804 288.0355 287.9924 290.1051 292.7913 289.7772 288.3815 288.8086 288.4218 289.9117 294.3629 296.021 297.2322 297.7801 301.847 304.1387 306.0004 306.9194 307.2393 307.8168 308.564 309.7554 311.4336 313.3401 313.6547 313.0808 311.2078 310.3508 309.8208 309.2177 308.9085 308.3677 302.487 298.7217 298.2824 297.6219 298.7241 300.1651 303.7944 306.1815 309.1869 312.8875 313.3045 313.8605 314.9381 315.687 315.6271 316.114 315.8229 316.9435 319.5029 320.348 321.0296 320.1521 318.7646 317.8761 316.598 315.5187 314.8907 312.3666 310.4339 308.2188 306.0311 305.0811 304.3766 305.6999 305.9787 306.526 307.9932 308.6071 308.3602 307.995 307.0505 306.123 305.6214 305.733 305.7478 305.3957 304.6792 304.0763 303.1667 302.4671 298.1525 298.0491 298.2547 299.2691 301.9502 303.118 304.1754 304.2178 302.9177 300.0918 296.8575 295.4776 298.3951 293.7229 293.8018 294.6016 293.9864 297.5416 297.6869 297.7722 298.8822 298.9386 298.1156 299.4022 302.6733 303.5457 301.2675 299.2656 297.5133 296.1313 294.3776 291.1377 289.2733 286.8607 285.8666 283.833 281.4235 279.6582 275.7986 269.1761 268.9563 272.3318 277.5745 281.8908 285.2495 288.0878 289.8705 290.766 289.4619 287.3196 286.3753 285.3888 286.5859 287.4128 288.403 289.1883 289.3521 287.7657 282.8468 282.478 284.0372 286.2513 287.3471 289.0983 291.1443 292.8082 294.6429 297.3886 298.6302 299.0167 298.8801 298.0394 296.4315 294.6674 292.6934 291.3483 289.3094 288.2171 286.6541 284.7598 283.6043 282.9175 282.2779 281.5691 280.8691 279.106 277.4017 275.3812 273.3722 271.8595 270.8662 268.0283 263.5535 261.2436 259.3261 262.6738 264.2545 265.1448 266.1088 266.4219 266.7712 267.5473 266.6861 263.7198 261.3181 259.1441 257.0371 255.104 253.895 252.9021 252.3363 252.1689 251.8392 253.0606 254.6031 256.1896 257.2292 259.0146 259.7843 260.9123 262.3814 263.9138 265.7474 265.5622 265.1818 264.6073 263.1938 261.0369 256.1308 252.4562 247.7446 245.7168 244.8078 244.6194 244.5307 244.7113 244.3835 244.5333 244.7699 244.8124 244.5851 244.5551 244.6169 244.7264 245.338 244.6481 244.4325 244.7129 244.947 241.8811 244.7496 244.8063 244.8299 244.8346 244.7564 244.4211 244.4457 244.1244 245.329 247.9107 244.8749 243.845 244.0001 244.9496 247.9034 252.6686 253.0113 257.8866 259.4202 260.9895 262.7636 264.676 265.8552 266.3444 266.0316 265.4065 264.3992 263.7221 260.6598 263.3158 266.6104 268.0699 269.6377 271.569 273.5731 279.403 280.6049 283.2472 284.3788 285.34 285.8107 285.6 285.0825 284.2754 281.6019 279.3658 276.7278 273.6421 270.3887 267.2813 265.1434 262.8999 260.6243 252.9458 249.7828 250.2295 251.7411 254.8721 256.9776 258.3295 261.4413 263.2264 264.1959 264.3095 264.1696 263.8994 263.444 263.0395 262.2459 261.5659 260.7725 257.2307 254.3463 257.8293 263.19 266.32 267.5027 268.4549 270.8592 274.4074 276.4481 276.3616 274.2579 272.7229 273.0348 275.5782 278.7593 280.3224 281.5816 281.9197 282.8722 284.4232 285.3751 284.6167 283.9981 283.1644 282.3246 281.8972 279.3474 278.1694 277.4547 276.7432 276.2336 276.0612 276.2677 277.021 277.6719 279.1959 281.1637 282.6068 284.5473 286.1797 285.4861 284.0428 282.5972 281.1445 277.8041 275.0764 272.2884 269.8552 267.9779 267.5667 -9999 +-9999 -9999 311.1666 313.0034 317.064 322.1472 326.16 328.4308 330.3344 330.529 330.4945 330.3838 330.5515 330.2552 328.6257 326.7712 324.8985 320.1656 319.6422 315.2597 310.2533 313.8886 318.1124 320.3826 321.3585 321.4413 318.1091 320.3873 321.9445 322.4254 321.3025 319.6177 317.3584 314.3937 309.3289 300.3524 296.434 296.2585 303.0664 304.2224 297.9878 304.3145 309.8955 312.5892 314.9001 314.7807 315.9792 318.0823 320.1816 321.7812 320.9397 319.2502 317.947 317.5013 316.8689 312.5078 306.2943 308.5157 312.6922 315.905 316.9651 316.6806 311.1989 307.9145 305.0503 299.275 306.6673 311.1548 311.8393 312.9253 314.1356 311.823 311.992 312.6387 311.7202 310.552 308.7645 306.3415 305.5992 304.8146 306.377 305.8506 303.9412 303.9666 305.2394 305.2984 304.814 305.4558 306.1249 302.4246 299.3078 293.7902 290.9962 293.9214 300.5704 302.8546 304.0309 303.8653 303.7419 303.7322 304.055 303.1137 299.6976 300.7821 304.1417 304.6659 304.967 304.2023 306.2831 308.3362 310.5804 312.0751 313.8671 315.0715 316.9034 318.3105 319.362 319.4404 319.1003 319.5684 319.9046 320.6663 321.6173 321.8871 320.9744 320.0267 317.9648 316.4366 313.7957 312.521 312.2312 311.0628 309.9034 307.288 304.5084 307.1643 308.9636 309.0775 306.5222 305.0879 306.3502 307.1521 307.0679 304.836 298.8108 295.3575 293.0946 290.146 288.0138 287.9613 287.9241 290.2861 292.3668 288.8344 288.3815 288.8086 288.4218 289.9117 294.3629 296.021 297.2322 297.7801 301.847 304.1387 306.0004 306.9194 307.2393 307.8168 308.564 309.7554 311.4336 313.3401 313.6547 313.0808 311.2078 310.3508 309.8208 309.2177 308.9085 308.3677 302.487 298.7217 298.2824 297.6219 297.3437 299.793 303.0663 306.0925 308.7707 313.3583 314.7913 315.762 316.6021 317.0287 317.051 316.9857 316.8477 317.0382 318.0521 319.1999 320.2242 320.4736 319.1336 318.1409 317.3148 316.2947 315.0865 313.0038 311.2708 308.6504 306.3551 305.4461 304.672 303.9345 303.5894 303.6664 305.7717 306.6242 307.3579 307.278 306.8319 305.9776 305.2358 304.0533 303.8897 303.4945 302.9248 302.7822 302.0927 301.4606 299.1922 297.2849 297.689 298.3821 301.0393 302.455 303.6019 304.5224 304.4211 302.4932 300.6571 300.0848 300.4331 295.5693 296.7459 298.2463 298.2543 297.9836 300.3447 300.3299 301.4354 303.0282 302.5959 304.2076 305.618 306.024 304.276 301.5838 299.9846 298.6756 296.2666 291.4873 289.6027 286.7903 284.6647 282.2989 280.3021 278.4218 274.638 269.3516 269.9235 274.0083 276.6686 280.7196 284.3274 287.0862 288.2743 288.0691 286.8 283.2687 282.395 283.3239 284.7573 285.6393 287.5976 289.3136 289.3667 289.0679 283.8284 283.2913 284.6908 287.1526 288.9238 289.9405 290.9209 292.1531 293.5942 296.4944 297.6943 297.9594 297.7248 297.2161 296.2748 294.3068 292.566 290.8802 288.4513 286.6128 285.2728 283.9413 283.1039 282.231 281.1171 280.1988 279.7395 277.956 275.7396 273.8504 271.3612 268.6208 266.5954 264.0833 262.027 261.4127 265.4713 267.2446 268.2909 268.7982 269.1124 269.6649 269.7565 270.1726 270.8914 269.0494 266.8413 264.9659 262.9836 260.1478 256.6324 254.0016 253.3774 253.1739 255.0184 257.3731 259.478 260.46 259.7086 261.3456 263.1227 264.3724 265.8349 266.7322 267.4721 266.781 266.4157 265.1266 263.1559 258.9265 256.6154 251.827 246.9448 245.466 244.4919 244.4472 244.732 244.87 244.4299 244.3986 244.5545 244.3971 244.2495 244.6597 244.6918 244.6604 244.6861 244.502 244.3782 244.4599 244.4652 245.239 241.3711 243.3723 244.8608 244.7224 244.6427 244.6925 244.5941 244.3548 249.2493 253.478 246.6794 244.1718 243.9458 245.0853 248.5704 251.0054 254.1033 252.9492 257.4194 258.6831 260.4069 261.8276 261.787 261.6888 261.4408 260.0935 259.9769 258.9062 259.8447 259.6446 262.2158 265.0487 269.1048 271.8575 274.7904 279.6216 281.2125 282.7391 283.9724 284.8934 285.4234 285.9458 285.8097 285.3094 281.9507 279.6791 277.117 275.0932 272.3527 269.3508 267.0294 265.2736 262.4775 256.3651 251.8215 249.245 250.139 252.6692 255.518 257.2577 259.5512 262.0553 262.6881 262.4961 262.1182 262.3524 261.7013 261.2419 260.3294 258.7667 257.7393 253.8054 256.4138 262.7156 267.623 271.9113 275.1484 275.5881 276.0369 276.7803 277.8381 278.7522 278.7083 278.0182 278.3881 279.3526 280.83 282.0128 283.1187 284.2477 284.6018 284.6272 284.1791 283.0023 282.2951 281.5318 280.6923 279.1396 276.71 275.2961 273.8886 274.243 274.7194 275.2213 275.4303 276.105 277.3008 279.4926 281.0962 282.6446 284.5917 285.0712 283.9739 282.4878 281.5081 280.6748 276.9774 273.9853 272.709 271.4401 270.1586 270.0273 -9999 +-9999 -9999 317.1819 320.5143 324.2325 326.4876 329.1517 330.3501 331.1425 331.8582 332.126 332.5133 332.6339 332.2859 331.3466 330.2843 328.2862 322.3522 320.0232 317.54 311.8607 314.042 317.9339 320.5841 322.5846 323.2697 321.0956 322.3566 323.4069 323.1928 321.0163 318.2637 313.8617 309.1181 304.1833 296.6303 299.7024 305.0235 308.659 307.9991 299.8304 303.0105 307.7499 311.5861 315.3499 316.4631 318.1495 320.7053 321.8431 322.5587 322.2175 321.6096 320.5116 320.65 318.7244 312.691 310.4218 313.8513 313.1061 317.8413 319.5779 319.8963 313.1706 312.1156 311.9215 308.3733 304.34 305.825 307.3892 311.3735 312.7828 314.1536 313.8119 313.6507 312.7508 312.1758 310.602 308.3417 307.5499 306.9082 304.8588 304.4413 303.1975 301.6784 301.968 302.0604 302.165 303.8331 304.805 302.0997 298.5621 293.7885 291.24 297.4148 303.0611 303.6283 303.7253 303.9134 302.794 302.6863 303.1784 300.9116 297.8143 300.9828 302.0731 302.3624 303.4746 303.4399 307.7988 309.9361 311.6848 312.4598 313.9467 315.0883 316.4652 317.6239 318.1938 318.5214 318.0273 318.9711 319.959 321.1673 321.7899 321.943 321.2875 320.0267 317.9648 316.4366 313.7957 312.521 312.2312 311.0628 309.9034 307.288 304.5084 307.1643 308.9636 309.0775 306.5222 305.0879 306.3502 307.1521 307.0679 304.836 298.8108 295.3575 293.0946 290.146 288.0138 287.9613 287.9241 290.2861 292.3668 288.8344 286.5638 287.4507 290.5655 294.2498 296.4857 297.5949 298.7808 300.0973 304.0179 306.3247 308.1351 309.0237 309.1797 308.7445 308.6205 309.7014 311.4719 312.6057 312.7912 312.5396 311.0384 309.3539 308.3553 307.9636 307.3832 306.8998 301.7303 297.8224 297.137 296.4935 296.842 298.3526 301.7049 305.1797 308.0529 312.6117 314.5221 315.9151 316.941 317.5838 317.6029 316.7882 316.0674 316.2551 316.5785 317.2731 319.226 320.386 319.615 318.5474 318.0691 317.1003 316.202 313.021 311.1146 309.4803 307.7179 306.494 305.2956 303.9384 303.0689 302.4486 303.1745 304.5403 305.1904 305.6096 305.4113 305.4261 304.266 302.6809 301.9308 301.5645 301.7942 302.3106 301.0105 299.5755 299.0254 297.6555 296.9155 297.7065 300.6622 302.0254 303.2173 304.6227 304.997 305.2372 304.3836 303.1532 301.8929 300.3216 301.7341 302.5518 302.0652 301.1673 302.1806 302.9237 303.2819 305.4077 306.226 306.6521 307.9182 307.2742 305.7182 303.2014 301.8215 299.8254 296.8242 291.5856 289.3007 286.0339 283.3979 280.7423 278.5816 277.037 271.911 270.2506 271.8205 274.3072 274.0044 277.9286 281.5926 284.0619 284.8318 284.7365 283.1176 281.5085 282.7744 284.1942 285.154 286.7496 288.654 289.3172 289.9269 290.1282 285.2678 284.287 284.8965 287.2894 288.9999 290.2009 291.2 292.3342 293.9472 295.9498 296.815 296.3905 295.5631 295.629 294.9873 293.3135 291.3416 289.6978 286.6109 285.1078 283.6471 282.6133 281.6904 280.9244 279.9748 278.6697 278.3336 276.4307 272.6766 271.3359 267.9214 265.7931 263.8847 262.7223 264.0397 263.6654 268.733 270.6267 270.9676 271.3026 271.7262 272.0205 271.9544 271.9283 272.8471 272.9098 271.6942 269.4395 266.6554 263.99 259.1725 254.8828 254.5332 256.0438 261.1708 262.0854 263.1983 264.055 263.1741 262.537 265.0338 266.9346 268.2646 269.6257 269.1399 268.2621 267.3654 265.5679 263.1728 260.2483 256.347 251.4395 248.8629 244.9054 244.5827 244.4619 244.7502 244.5297 244.7469 244.2209 244.1461 244.3535 244.1831 244.1666 244.2725 244.472 244.5682 244.4916 244.2147 244.1986 244.1963 244.0684 244.1782 244.0236 241.2984 241.549 245.4189 244.7092 244.5827 244.7228 245.5052 249.9345 248.1435 243.7074 244.2846 246.2059 248.3151 250.3946 251.3467 253.8466 253.5858 255.6886 256.3342 257.5052 257.434 256.8867 254.3519 253.1021 253.1407 255.2307 259.1824 265.5511 268.3083 269.3904 271.7998 273.9407 276.2193 279.2992 280.945 281.8945 282.784 283.7415 284.5408 285.2076 285.7059 285.0318 282.8055 280.8724 278.627 276.5772 274.6221 271.9719 269.576 267.6565 265.1902 258.5171 255.8209 251.7376 248.8976 250.1272 252.8116 255.0898 257.3334 259.9713 261.2092 260.7992 260.5611 260.7902 259.9453 258.6673 257.7913 255.8553 253.0302 258.8918 262.9886 267.0575 271.5118 275.639 278.7245 279.9341 279.99 279.3434 279.3326 280.1615 280.6849 280.7675 281.0321 281.7276 282.549 283.1783 283.6266 283.5566 282.9384 282.2581 281.2954 280.6637 279.666 278.7327 277.8874 276.8185 273.1768 272.5061 270.5645 269.0879 272.9711 273.5423 274.8564 275.9371 277.1115 279.4926 281.0962 282.6446 284.5917 285.0712 283.9739 282.4878 281.5081 280.6748 276.9774 273.9853 272.709 271.4401 270.1586 270.0273 -9999 +-9999 -9999 322.05 324.7113 326.6398 326.9375 327.4478 328.2289 327.268 329.1486 330.7032 332.0829 332.9123 332.8968 333.2005 332.937 330.858 325.2668 321.6449 319.4281 313.5488 315.2922 318.8708 321.2003 323.2845 324.5119 324.2987 324.4584 324.3305 322.4652 318.7281 314.3482 308.4643 304.2958 300.3439 305.3046 309.0743 311.3969 313.842 314.4809 309.1604 303.0126 303.1622 307.9803 313.4237 315.4391 317.6349 319.8922 321.8515 323.4413 324.5079 323.8853 323.0089 321.9591 317.8341 313.7149 317.3029 317.534 318.4247 318.732 321.329 322.0887 316.0462 315.5726 315.1341 312.163 307.5295 309.6235 310.6818 310.463 312.2354 315.261 314.7445 313.5003 312.4443 311.4422 309.5153 309.1453 308.9329 308.5144 305.908 305.3305 305.054 302.9032 301.2061 300.9198 300.3294 300.7107 302.2932 300.2722 297.7003 292.493 290.618 299.4193 303.7501 304.033 303.4897 303.9134 302.794 302.6863 303.1784 300.9116 297.8143 300.9828 302.0731 302.3624 303.4746 306.1384 307.7988 309.9361 311.6848 312.4598 313.9467 315.0883 316.4652 317.6239 318.1938 318.5214 318.0273 318.9711 319.959 321.1673 321.7899 321.943 321.2875 320.3341 318.703 317.7014 316.5446 315.4223 314.2289 313.329 311.7607 308.8614 305.2609 309.4534 309.4859 308.3622 306.2881 307.1689 308.3053 307.6786 305.9015 303.7782 298.7192 297.2156 296.3641 294.0087 289.0363 287.8761 287.8472 290.5479 292.2745 287.1669 286.741 289.1686 293.7046 297.0374 298.5606 298.9501 299.6991 300.9013 304.5902 306.9109 309.2758 311.4358 311.5075 310.5998 309.9247 309.6217 310.3977 311.0931 311.8333 310.865 310.6062 308.8302 307.4619 306.062 305.2247 305.069 300.81 297.3165 296.0894 294.9706 296.4299 298.0635 300.8553 304.0524 306.5036 311.4153 313.4148 315.1601 316.2556 317.0683 317.164 315.9577 315.203 314.3231 314.654 316.2422 317.6014 318.6782 319.2089 318.6296 318.2759 317.3203 316.1317 313.3254 310.9784 310.1101 308.8786 307.5277 305.9419 304.9483 303.8811 302.7376 301.6953 302.0234 302.6237 303.039 303.0065 303.7162 303.881 302.1965 301.1431 299.9175 300.0766 300.7771 300.6787 299.9403 299.4269 297.8534 297.2387 297.6689 300.0254 301.8706 302.9941 304.633 305.7646 306.4203 306.577 305.6144 304.4193 304.919 306.614 306.762 305.8345 304.5186 303.1114 304.8858 305.1656 305.8232 308.6944 308.9305 309.584 308.8077 306.4529 303.8894 301.9845 299.0755 296.3764 291.2007 288.0238 285.0004 282.3813 278.3188 275.3077 272.3605 270.3092 273.3506 275.3461 274.4599 270.6883 273.5565 276.3523 278.9963 280.2692 280.0572 279.8259 283.055 284.662 285.6145 286.682 288.0027 288.9292 289.6165 290.5067 290.8986 287.8619 285.4245 285.1729 287.5463 289.4312 290.4634 291.4019 292.3153 293.782 295.4488 295.7092 294.9087 294.1706 293.9053 292.6581 290.9897 288.8502 287.453 284.8968 283.6546 282.5703 281.5775 280.8416 278.4766 276.8938 275.9162 276.1566 273.7879 270.0319 266.8546 264.9789 264.1158 263.8426 266.2697 265.9638 265.6423 271.2575 273.5758 274.614 274.828 275.2191 275.3134 275.4077 275.0201 275.1895 274.2153 273.2552 271.2951 268.6113 265.3757 260.7259 255.9193 256.2361 258.6197 263.4043 264.9415 266.1601 266.8043 265.7137 265.4507 267.1542 269.2493 270.4172 271.1348 270.675 269.4128 267.8263 265.7993 263.3439 260.0146 255.1461 252.1243 252.8379 244.9279 244.6193 244.6005 244.6879 244.5913 244.381 244.1534 244.2954 244.2837 244.6992 244.3975 244.2651 244.285 244.3361 244.2625 244.1034 243.9162 243.8818 243.7766 243.6372 243.7265 243.9921 244.3349 242.1128 241.3831 243.4315 244.8198 244.2641 244.3684 245.061 244.0351 243.9955 244.7117 245.8213 245.6531 246.3707 254.253 254.449 254.5714 253.2256 251.7027 251.0828 251.0247 250.2743 256.6363 261.9446 265.0736 268.2539 271.1965 273.7514 275.469 276.8605 278.1622 279.4094 279.0411 279.9193 281.0142 281.9257 282.6862 283.4117 284.2499 284.7817 284.625 283.5222 282.0698 280.4933 278.6177 276.3171 274.0397 271.6946 268.9809 266.6435 260.6609 256.9908 254.8203 250.4371 248.9105 250.4247 252.3058 255.5008 257.5904 259.6723 258.9976 258.708 258.2437 256.9697 258.6673 257.7913 255.8553 253.0302 258.8918 262.9886 267.0575 271.5118 275.639 278.7245 279.9341 279.99 279.3434 279.3326 280.1615 280.6849 280.7675 281.0321 281.7276 282.549 283.1783 283.6266 283.5566 282.9384 282.2581 281.2954 280.6637 279.666 278.7327 277.8874 276.8185 273.1768 272.5061 270.5645 269.0879 272.9711 273.5423 274.8564 275.9371 277.1115 279.686 280.6838 282.3767 284.1022 284.7437 283.0927 281.6087 280.7068 280.0724 276.2437 275.2027 274.9643 274.0833 272.9625 272.1112 -9999 +-9999 -9999 323.018 322.8712 322.6439 322.9175 323.3846 323.7874 322.4925 325.4222 328.0692 329.5798 331.1536 331.8783 332.8534 333.9947 333.3987 327.2928 324.0862 321.2124 315.5682 316.374 320.639 323.0365 324.9995 325.915 325.9437 325.067 323.3393 320.5742 315.8948 309.4823 303.2704 300.1521 304.2614 313.9301 316.0653 317.5094 318.7809 318.9397 314.5987 307.7365 302.8237 305.3927 311.6964 314.681 317.1992 319.1895 321.4597 323.3051 324.3473 325.723 324.8131 321.8249 319.8699 318.8235 320.1672 320.6228 320.8867 321.2831 322.2483 322.9048 320.1748 318.5891 315.7075 311.2092 311.7047 313.215 313.7202 310.463 312.2354 315.261 314.7445 313.5003 312.4443 311.4422 309.5153 309.1453 308.9329 308.5144 305.908 305.3305 305.054 302.9032 301.2061 300.9198 300.3294 300.7107 302.2932 300.2722 297.7003 292.493 290.618 299.4193 303.7501 304.033 303.4897 303.5536 301.3707 301.2904 301.7829 297.4254 297.397 298.7799 301.1547 302.8044 303.8707 308.305 309.6969 310.9801 312.261 313.0837 313.4634 314.3395 314.9753 315.4919 317.2214 316.4868 317.4676 319.1355 320.3395 321.4156 321.9966 321.9394 321.4423 320.6106 319.2786 318.8349 318.1273 316.7539 315.8016 314.4684 313.577 312.9384 312.3278 311.433 310.0142 309.448 308.2066 308.3901 308.9837 307.9931 306.0249 303.9538 301.8157 299.9555 298.2482 296.2947 293.1714 287.5927 288.4427 287.5608 289.8078 284.21 286.7953 289.9171 293.997 297.3829 299.0985 299.5113 300.4247 301.5813 304.6766 306.5683 308.4827 310.5278 311.8225 311.899 310.933 309.8977 309.3618 309.2386 310.0955 310.3134 310.3298 309.1792 307.6688 306.0309 303.9725 302.6985 299.7615 295.8334 293.8167 295.2565 296.585 297.8867 300.0677 302.7166 305.7527 310.1102 312.3383 313.9973 315.4801 316.0811 316.1049 315.2081 314.0668 313.3374 313.7645 314.5283 315.8976 317.583 318.6073 318.6011 318.2078 316.8564 315.6881 313.3383 311.5611 311.5056 310.7799 308.7952 305.9958 304.5582 303.6845 303.4218 301.5234 300.9864 301 301.1033 301.5342 302.1813 302.8772 302.1501 301.1846 299.2259 299.1685 299.4022 299.3025 298.6621 299.309 299.6153 296.7587 296.6776 298.8474 301.4276 302.5588 304.0453 305.4745 305.7537 306.4755 306.7401 306.2581 306.5691 307.4876 308.8619 308.2961 306.9934 305.4543 305.5566 306.8942 307.488 309.5492 308.8824 308.8744 309.2144 306.7426 303.8927 300.9636 297.88 295.3506 290.048 287.6247 285.1753 282.8605 277.8565 273.1086 271.0151 275.0612 278.6815 277.5302 276.2488 273.8621 273.399 272.9808 274.0834 275.244 278.1686 281.0373 286.4476 286.4302 286.8325 287.8695 288.9445 290.0248 290.6768 291.0453 291.4807 289.2641 286.4602 286.0482 286.9355 288.363 289.2948 290.9381 291.8843 292.5372 294.7919 294.9402 294.2388 293.0869 291.0007 289.3393 287.244 285.4902 284.5165 284.0474 282.3461 281.1136 279.6591 278.4929 276.1652 273.7789 272.6793 272.2798 266.6621 266.4361 267.5097 266.9037 266.8884 267.1328 267.9414 267.3103 267.4069 272.5574 274.6686 276.8479 277.7079 277.5587 277.3984 277.5537 277.4506 276.5621 274.0703 272.6178 270.5226 268.1326 264.5758 260.1431 256.2794 257.1967 260.6727 264.2066 265.9935 267.8694 269.1437 268.7709 268.5869 268.7264 270.4047 271.9019 272.1375 271.1542 269.5811 267.676 265.6544 263.1528 258.2874 254.9373 254.46 250.5657 246.1816 245.0553 244.872 244.7625 244.6382 244.3689 244.2155 244.2489 244.0654 244.0469 244.035 244.6347 244.4024 244.101 243.9856 244.1287 243.9887 243.9258 243.7685 243.6928 243.7337 243.8855 244.1143 244.1131 244.9614 243.005 241.3629 244.513 244.2274 244.1456 244.0316 243.9479 243.7908 243.9775 243.9623 245.386 246.153 253.7304 255.4307 255.5904 251.5831 250.3763 254.6227 257.3106 259.6664 264.3584 267.1153 268.2539 271.1965 273.7514 275.469 276.8605 278.1622 279.4094 279.0411 279.9193 281.0142 281.9257 282.6862 283.4117 284.2499 284.7817 284.625 283.5222 282.0698 280.4933 278.6177 276.3171 274.0397 271.6946 268.9809 266.6435 260.6609 256.9908 254.8203 250.4371 248.9105 250.4247 252.3058 255.5008 257.5904 259.6723 258.9976 258.708 258.2437 256.9697 255.3179 253.774 252.6561 254.9665 264.1191 267.082 269.6529 272.6557 275.3832 277.5258 278.9125 280.3055 280.6625 280.8385 281.1655 281.4177 282.0244 282.4405 282.6819 282.7054 282.5095 282.098 281.0732 280.6103 279.8994 279.2155 278.6213 277.9398 276.8809 275.3315 274.4726 269.6342 267.8749 264.7441 269.7365 271.4406 272.0479 273.633 275.3521 277.3544 280.2349 281.0082 282.5713 284.1923 285.3028 283.7514 282.8118 282.1886 281.1778 278.1292 277.2468 276.3464 275.3979 274.7048 273.847 -9999 +-9999 -9999 318.7747 317.269 316.1472 316.7621 317.8447 316.98 319.7881 321.2003 323.4501 325.6009 328.8788 330.3204 332.5038 333.776 333.9358 328.6413 325.726 322.8463 318.7854 318.2242 322.4464 325.3687 326.2942 327.1606 326.1128 323.5092 320.5616 316.8781 312.6897 306.5245 302.4811 304.7961 313.9755 320.3123 321.9294 322.8687 323.9563 323.8045 321.5091 315.7003 302.8237 305.3927 311.6964 314.681 317.1992 319.1895 321.4597 323.3051 324.3473 325.723 324.8131 321.8249 319.8699 318.8235 320.1672 320.6228 320.8867 321.2831 322.2483 322.9048 320.1748 318.5891 315.7075 311.2092 311.7047 313.215 313.7202 313.9285 313.3254 315.0653 314.0162 312.2518 311.93 311.823 311.1814 308.609 309.2389 309.2866 308.6825 308.2174 306.5234 305.2574 303.3221 301.5794 298.8171 297.6234 298.7254 297.1924 295.1653 291.0645 289.7472 297.8594 302.5099 303.9501 303.6264 302.6584 300.0261 299.8641 298.5445 297.0988 298.782 301.7461 303.8479 305.5368 305.7731 308.465 309.8115 311.0442 311.8416 312.3755 311.926 312.9632 312.58 313.1907 313.6938 316.1129 318.035 319.1431 320.2417 321.3985 321.9631 322.096 321.6912 320.4927 319.7277 318.7109 318.4261 317.6806 317.1623 315.7397 314.7946 314.1856 313.8428 312.1973 311.3168 310.3606 309.6147 310.2289 310.6726 309.5296 308.1179 306.2699 303.6004 301.5936 299.9228 298.093 295.423 290.9275 287.7152 282.5037 284.6989 283.7779 286.2338 288.2539 292.6966 295.8629 297.5401 298.0262 299.3074 300.3523 303.6189 304.8502 306.264 308.3331 309.8918 311.1256 310.3191 308.6989 307.2256 307.5123 308.3095 309.3317 309.7111 308.6205 307.1764 305.9558 303.618 300.4297 296.5102 294.5187 294.5073 295.0464 296.4193 297.253 299.6284 302.895 305.4474 309.0932 311.2096 312.7338 314.1458 314.5902 314.3055 314.0283 313.0814 311.8014 310.8427 311.9172 313.773 316.0882 317.9435 318.7702 318.5313 316.9413 316.3247 314.4689 313.2419 313.3388 311.82 309.2917 306.1526 304.8654 304.3565 305.0875 302.7339 302.0228 300.6353 300.3625 300.5134 300.5644 300.396 300.6353 300.1136 298.5461 297.9268 297.8028 297.5669 297.6492 298.1139 298.6547 297.2007 295.5914 298.7999 299.4622 300.3608 302.1044 303.9105 304.7262 305.457 306.3151 306.2144 306.8886 307.4947 308.7895 309.1422 308.4747 307.2763 306.9574 308.0681 308.9284 308.7629 307.5489 306.4843 307.6916 305.6035 302.4522 300.0034 296.4913 293.7694 289.1521 286.6795 284.1056 279.8535 276.169 271.9326 273.6871 279.306 279.471 281.1182 277.1711 278.4739 278.0916 276.4052 277.1039 276.7248 280.5682 284.1203 289.9634 289.8281 288.8325 289.1895 290.2962 291.1295 291.4838 291.7382 291.9694 290.9179 289.6669 287.3879 287.4236 287.661 288.403 289.7048 291.3354 292.3932 294.9076 295.4808 294.1208 292.1455 289.931 288.3604 285.0152 282.2575 281.0135 280.5488 278.8515 277.7014 276.7665 275.6342 273.7873 270.6364 269.203 267.6591 269.5203 270.5402 269.0733 269.9292 270.4262 269.3983 269.8088 269.2484 269.4041 273.1102 274.8003 276.7034 278.1285 278.8651 278.6423 278.8869 278.2458 276.872 272.9665 270.9727 269.4366 266.6904 263.1212 258.3243 256.7821 259.1052 262.2218 266.0549 267.3469 268.2312 269.6537 270.5883 270.9473 271.3172 271.9351 273.068 272.4057 270.8817 268.9056 266.9509 265.2015 261.425 257.7757 256.5845 257.8871 253.0206 248.017 246.0931 245.3223 245.2396 244.9413 244.4958 244.2211 244.2269 244.1585 244.2544 244.4588 244.6347 244.4024 244.101 243.9856 244.1287 243.9887 243.9258 243.7685 243.6928 243.7337 243.8855 244.1143 244.1131 244.9614 243.005 241.3629 244.513 244.2274 244.1456 244.0316 243.9479 243.7908 243.9775 243.9623 245.386 246.153 253.7304 255.4307 255.5904 251.5831 250.3763 254.6227 257.3106 259.6664 264.3584 267.1153 270.0161 272.541 274.6131 276.8455 278.9193 279.7638 280.1282 278.2486 278.5858 279.6305 280.6104 281.4997 282.7425 283.684 283.9984 283.5462 283.6682 283.4654 282.4964 280.0175 277.5158 274.8254 271.868 269.2686 267.1918 263.0657 260.3049 257.2292 253.9415 249.5037 248.7168 249.7719 252.1196 254.1732 257.6092 256.0846 254.7114 253.3884 252.1183 251.9895 252.2213 255.5319 261.2449 267.3999 268.4137 269.5865 271.1108 273.1661 275.1568 277.5042 279.0222 280.4947 281.9973 281.9685 281.6287 281.4624 281.6978 281.6248 281.1158 280.6727 280.5192 278.4938 278.2273 277.1881 276.4663 275.8183 275.3001 274.585 273.3645 272.5026 267.6058 263.3616 267.9648 269.7265 270.7444 271.7628 273.679 275.92 277.9962 280.548 281.6895 283.1965 284.4473 285.7055 285.5939 285.0848 284.0492 283.0619 280.3727 279.0863 277.9097 277.2498 276.6682 275.4162 -9999 +-9999 -9999 312.3553 310.1125 312.7859 314.2538 316.3585 319.8761 324.8119 327.1377 328.5191 329.8444 331.3667 332.1661 332.9453 333.9992 333.9358 328.6413 325.726 322.8463 318.7854 318.2242 322.4464 325.3687 326.2942 327.1606 326.1128 323.5092 320.5616 316.8781 312.6897 306.5245 302.4811 304.7961 313.9755 320.3123 321.9294 322.8687 323.9563 323.8045 321.5091 315.7003 308.0167 303.2597 312.7019 314.5328 316.4712 318.1176 320.1248 322.0084 323.4001 324.2545 324.5638 324.2639 323.4828 322.799 322.4359 322.156 322.1344 322.3198 322.7593 322.8437 321.188 319.1893 316.6822 316.5414 316.4284 316.9532 315.7445 315.7362 315.677 315.1274 315.0242 314.5858 313.9381 312.4695 310.2661 307.7314 306.6803 307.3396 309.7131 309.7905 308.7499 307.5038 305.4904 303.7155 302.1883 299.3 296.3765 295.2889 291.7 290.2802 289.5439 291.64 299.2039 301.1804 301.6739 299.7896 298.4672 297.8362 296.0947 298.6851 301.5762 303.1499 304.5816 306.1176 307.5931 308.8868 309.7683 310.165 310.6949 310.0618 310.5042 309.1035 309.3474 312.6612 315.8145 317.5165 318.8168 320.1208 320.7211 321.5714 322.4314 322.589 322.142 320.9044 320.5441 319.757 318.3018 317.6684 317.4535 317.1419 315.6517 314.8698 313.531 312.8247 312.1339 311.0173 310.8558 311.6763 312.1364 311.5886 310.1381 309.1701 305.316 303.6447 301.6862 299.9556 297.3465 293.6467 290.071 283.6488 281.8557 284.8732 285.7602 285.5934 289.8522 293.6016 294.8484 294.8433 297.3598 299.0001 301.2676 302.0157 303.4504 305.1039 307.3744 308.9457 308.8922 307.269 305.2076 305.9262 307.3866 308.9079 309.1787 307.4131 304.8677 303.9182 302.6106 299.171 293.9857 292.2477 293.8898 295.0405 297.6381 298.7218 300.5363 302.5019 304.0706 307.5676 309.3496 311.4725 312.9134 313.2192 312.7272 312.2511 311.5653 310.3084 308.3557 310.1764 312.0457 315.2077 317.6189 318.6177 318.8525 318.1087 316.9683 314.8379 314.0728 313.4783 311.5247 308.5992 306.375 305.4411 305.0804 305.4547 304.297 304.3234 302.359 300.8762 299.2297 299.0173 299.18 298.8024 298.5345 297.4078 297.0751 296.7258 296.5993 296.5238 296.1062 296.7475 295.9851 294.9211 297.4294 297.9723 299.759 301.0107 302.0662 302.9964 304.4184 305.012 304.8646 306.5057 307.2873 308.4773 309.2326 308.6226 308.1659 307.9852 308.744 308.433 307.0298 305.8788 304.2066 304.4039 303.1118 299.8223 296.7177 294.0501 291.4518 287.1069 284.4064 280.5821 277.2166 274.0123 272.8002 277.2397 280.9689 283.8545 280.8803 279.4857 280.6753 282.5269 281.8176 281.5289 282.0522 281.3604 282.7528 288.6964 289.5011 289.6333 289.9717 290.6732 291.412 291.7454 292.1205 292.3249 291.6896 290.32 289.5491 288.2316 287.8335 287.9142 288.9422 290.6193 291.9142 295.4277 295.1384 293.9252 291.8026 288.9951 286.6958 282.5708 278.326 276.5246 274.8616 273.7699 273.1919 272.1811 271.174 270.4987 271.769 272.9312 274.1075 273.2284 273.9055 273.4749 274.3535 273.5307 272.156 271.7314 272.3974 272.3716 273.6825 275.3398 276.4837 278.3022 279.2498 279.3604 278.499 277.0104 275.4328 271.3723 269.3449 267.5779 264.9265 263.1212 258.3243 256.7821 259.1052 262.2218 266.0549 267.3469 268.2312 269.6537 270.5883 270.9473 271.3172 271.9351 273.068 272.4057 270.8817 268.9056 266.9509 265.2015 261.425 257.7757 256.5845 257.8871 253.0206 248.017 246.0931 245.3223 245.2396 244.9413 244.4958 244.2211 244.2269 244.1585 244.2544 244.4588 245.1334 244.5524 244.5393 243.9008 244.0219 243.9398 243.9124 243.9309 243.7685 243.7322 243.8801 243.9681 244.0747 244.117 244.3106 244.9826 244.8496 244.2269 244.1011 244.027 244.335 243.0086 241.3635 244.7831 244.1319 244.2899 245.4813 251.4254 256.5849 256.3195 256.0344 257.8238 260.529 262.2925 266.1363 268.5605 270.5817 272.2831 274.3929 277.3216 278.5931 278.8998 278.089 276.6817 277.4682 278.3542 279.3969 280.6801 282.0991 283.0478 282.8281 281.8675 283.0055 283.5241 283.0144 280.2049 277.3783 275.2823 273.7767 271.6036 269.3545 265.9876 262.0134 257.3346 255.2985 251.8523 249.1654 248.9071 249.6221 251.2148 254.3364 253.2975 251.0433 250.7528 251.5687 253.9285 257.7175 260.0501 263.2437 266.4115 267.5482 268.4205 269.5026 271.3149 273.8083 275.9131 278.0486 279.7155 281.1485 280.8409 280.1134 280.1492 280.3526 280.3002 279.7313 279.4102 278.6842 276.6601 275.6108 275.0057 273.6691 273.3068 273.3145 273.045 271.8286 270.4861 266.7119 263.8632 267.5818 268.7554 270.4632 272.3195 274.6877 276.658 277.8135 280.769 281.5604 283.0605 284.4592 285.7197 286.533 286.6535 286.0901 285.0311 282.0932 280.5414 279.4452 278.2965 277.0123 275.5967 -9999 +-9999 -9999 312.3553 310.1125 312.7859 314.2538 316.3585 319.8761 324.8119 327.1377 328.5191 329.8444 331.3667 332.1661 332.9453 333.9992 333.7185 329.9084 327.3539 324.5346 322.4832 319.8409 319.9856 324.1656 326.1073 327.2053 325.108 321.2346 315.7675 311.5067 307.5449 304.6775 305.2163 314.4829 319.9221 325.6158 326.5039 327.0988 327.7023 326.6025 323.3546 317.6223 311.6712 306.098 310.9048 312.7714 313.693 315.3399 316.7742 318.6043 320.5124 322.0985 324.413 325.8741 325.3248 324.5232 324.0189 323.4147 322.7067 322.2106 322.0585 321.5492 320.7648 320.252 319.2558 319.4663 319.0807 318.517 317.524 316.7911 316.8318 317.0507 316.7232 316.0332 314.1882 312.2625 309.9588 307.3512 304.9925 305.0748 308.8452 309.7202 309.7635 309.1267 307.5291 305.4433 303.6488 302.0671 299.5738 293.7082 293.054 291.993 289.487 289.4666 294.8141 297.4481 299.0605 298.9472 297.2984 296.1696 297.8293 300.8089 302.7259 304.1389 305.2355 306.0711 306.9437 308.5763 308.5117 308.2128 308.1935 307.6002 305.6271 308.799 312.4346 314.5766 317.2728 318.221 319.1837 318.8086 320.1366 321.7067 322.1181 322.1741 321.8543 320.9678 320.9037 320.2139 318.3795 317.6581 317.2818 317.0811 316.4879 316.1524 313.7115 313.0822 312.2331 311.9774 311.9093 312.69 313.4407 313.4267 312.0513 309.1253 307.1264 304.9948 303.0409 300.4915 297.5269 294.5756 291.5613 285.8221 281.672 284.0501 285.5073 284.2619 285.2085 289.2465 291.028 293.6275 295.3021 296.8336 298.8604 299.3423 300.5706 301.8692 304.0104 306.3809 307.2448 305.7351 303.2511 304.6175 306.5852 308.3087 308.861 305.1204 300.567 300.6864 299.9895 297.0937 293.0952 293.1341 294.4022 296.8128 298.5719 299.7242 300.5021 301.7254 302.9434 306.5715 308.4085 310.1679 311.2218 311.565 311.3286 310.4586 309.3832 307.7776 306.8594 309.3601 312.0622 314.8896 317.3157 318.3686 319.1105 318.3806 317.3253 314.824 313.7587 312.0024 310.1137 308.0816 307.0623 306.6528 306.0577 305.3588 305.6194 305.9723 304.8768 303.187 301.229 300.3212 299.8747 299.4197 298.7398 296.3324 295.7579 295.6711 295.5683 295.0647 294.9323 295.3729 295.0997 294.473 295.6832 296.4598 298.808 299.9196 301.4876 302.6002 303.0458 303.9882 304.1642 306.1626 306.9821 308.067 308.5508 308.1411 307.4917 307.4713 308.2829 308.3381 306.1368 304.3013 302.0448 300.0536 300.0625 297.4883 294.2389 289.9618 286.0238 282.9035 280.9261 278.251 273.3182 273.5305 276.5565 281.4316 283.0706 286.3864 284.2211 283.2228 283.4382 284.5157 285.247 285.6938 286.5815 284.9367 282.186 286.406 287.9698 288.8646 289.7409 290.3709 290.9913 291.5133 291.9425 292.2141 291.4547 290.8624 290.3586 289.3954 288.8341 288.2345 288.3438 289.3904 290.7166 293.5758 293.8319 293.131 291.4326 289.3765 286.6958 282.5708 278.326 276.5246 274.8616 273.7699 273.1919 272.1811 271.174 270.4987 271.769 272.9312 274.1075 273.2284 273.9055 273.4749 274.3535 273.5307 272.156 271.7314 272.3974 272.3716 273.6825 275.3398 276.4837 278.3022 279.2498 279.3604 278.499 277.0104 275.4328 271.3723 269.3449 267.5779 264.9265 261.3698 257.5903 259.0967 260.5932 263.988 267.7667 269.037 269.4191 270.3853 271.7347 272.6147 273.2501 273.8507 274.0138 271.433 269.7362 267.8276 265.9672 263.7547 260.2421 259.0381 259.9692 259.9697 255.0773 249.7319 247.6333 246.0987 245.9819 245.7509 245.0653 244.5479 244.5367 244.1978 244.208 244.3654 244.046 245.8624 249.7276 251.0946 246.0503 243.9738 243.9574 243.8362 243.5709 242.9732 242.9609 242.9762 243.1237 242.8037 243.1522 243.9012 241.3754 244.7891 244.2208 244.1558 241.6671 241.6918 244.6089 241.2397 243.8926 244.7769 246.2395 247.463 250.4521 257.0676 257.0309 257.4828 257.7459 264.3529 268.8358 270.35 272.0162 273.371 275.7056 276.9221 277.6877 277.2326 276.1727 275.1423 276.8387 277.667 277.7878 279.333 280.7556 281.1814 281.0778 280.1727 281.6962 282.6981 282.6543 280.6147 278.5912 277.0898 275.4486 274.2053 272.1057 267.6106 263.7194 260.6007 257.506 254.0808 250.288 248.3444 248.326 249.1589 251.0438 250.0453 249.5554 251.218 254.8507 258.4112 261.1012 261.9159 262.7996 264.2275 264.3088 265.2484 266.9182 269.8253 273.2384 275.0496 277.1894 278.9608 279.8387 279.1884 278.7988 278.8622 279.218 278.928 278.5255 278.2197 277.46 275.1423 273.5637 272.1959 271.6124 271.2546 271.2723 270.8279 269.281 267.3229 263.6218 263.9358 267.463 268.5487 270.2756 272.4872 274.8311 276.4807 278.3961 281.1656 282.4661 284.0617 285.0936 285.9676 287.4206 287.6057 286.7164 285.2002 282.3512 280.8334 279.7428 278.2509 276.7882 275.6962 -9999 +-9999 -9999 310.3304 315.7718 318.6604 321.2196 323.3297 324.9881 327.4279 328.5605 329.9456 331.6548 333.0695 334.5141 334.7601 334.9486 334.404 331.2047 329.038 326.3848 323.9861 322.5337 321.6714 322.6227 325.6632 327.0861 325.5484 322.8322 319.5086 314.2227 310.4232 306.7051 311.9522 318.5771 322.6392 329.8109 330.0561 329.6332 328.3601 326.1514 322.8911 318.4028 314.4944 308.2983 311.3876 312.4887 315.5777 316.3042 317.866 319.9084 321.8673 323.8534 325.248 326.5293 325.8797 324.8228 323.4148 322.822 322.0345 321.601 321.1178 320.8007 319.5059 319.312 319.5446 319.8132 319.7292 318.9648 317.4518 317.0415 317.2776 318.0534 318.0698 316.8884 314.1877 311.6855 308.4044 304.9423 303.0877 302.4923 307.0452 308.0668 308.9041 309.3458 308.707 307.0303 304.7909 303.6151 302.2101 296.6747 294.347 292.8614 289.4166 289.4273 290.2567 294.3064 297.3287 296.0983 297.1324 293.5822 296.4427 300.9132 302.5249 303.3268 304.2161 305.1373 306.3601 306.5757 306.8012 306.082 305.9823 304.5104 306.153 309.8213 312.8702 314.8098 317.1777 317.24 316.9562 317.0415 319.799 320.6927 321.4314 321.6633 321.2001 321.0756 320.8575 319.5448 319.1573 317.6209 317.0816 316.7018 316.1447 315.7238 313.5185 312.9289 312.5131 311.8704 311.9318 312.5832 313.5382 313.6966 313.3789 310.6698 308.256 306.1036 303.8954 301.8493 299.2164 295.3794 290.523 286.6014 281.2163 282.5331 283.1669 282.8969 284.1182 286.8197 288.9393 291.548 293.3029 294.6003 296.6401 297.3342 298.4331 299.76 301.3002 303.7402 304.6434 303.5602 301.059 303.6251 305.6774 307.1835 307.5296 304.321 298.3692 296.9043 296.5436 294.2897 292.3999 293.3873 295.6762 297.2304 298.3308 299.4331 299.925 300.7436 302.2013 305.9372 307.5014 308.6073 309.1875 309.3926 309.4789 308.5841 306.9361 305.8246 306.5643 309.4124 311.9804 314.3876 317.4342 318.2645 319.2845 318.6025 317.3154 314.4704 313.6682 311.4056 309.8565 308.5664 307.9975 307.8195 306.8456 306.721 306.8689 307.1769 305.9413 303.8695 303.9094 302.7449 301.6212 301.6585 302.147 301.4398 300.032 299.0274 296.7913 295.5898 294.5093 293.9907 293.8204 293.451 293.6214 294.9278 297.1031 298.6809 299.9114 300.6094 300.4735 301.9234 304.1404 304.8022 305.5575 306.4349 307.5025 306.9828 306.3406 306.3855 306.9938 307.16 305.4683 303.6872 300.9536 298.2615 295.2985 294.0793 291.1574 283.5174 278.2589 276.2031 275.9979 275.0541 275.1824 277.8557 279.7856 281.7472 284.6591 286.3864 284.2211 283.2228 283.4382 284.5157 285.247 285.6938 286.5815 284.9367 282.186 286.406 287.9698 288.8646 289.7409 290.3709 290.9913 291.5133 291.9425 292.2141 291.4547 290.8624 290.3586 289.3954 288.8341 288.2345 288.3438 289.3904 290.7166 293.5758 293.8319 293.131 291.4326 289.3765 287.8656 283.7139 279.4542 279.6318 278.6847 280.6299 280.6873 279.9045 277.9297 278.1919 278.0229 278.4972 278.4224 277.3963 277.8071 277.0816 276.9283 275.4784 274.2596 273.2544 273.8479 274.4337 275.8862 276.7172 277.464 278.7959 279.2169 278.4031 277.1568 275.3145 273.4806 270.2661 268.8599 266.2117 262.5501 258.1171 260.5583 263.2123 264.6383 266.2864 268.6576 270.585 271.613 272.4433 273.6337 274.2909 274.8168 275.1113 274.2863 270.3035 268.1359 266.1901 264.71 262.7667 260.0523 259.2746 259.461 258.7997 254.0105 249.6295 248.575 247.6081 246.7182 246.0639 245.8225 245.2778 244.7428 245.6539 245.9624 249.4666 254.2653 258.1831 261.2975 259.7849 254.8762 249.3563 245.6278 244.6538 244.4441 244.2601 244.075 243.9139 243.9314 244.1223 244.416 244.5123 241.3495 244.4486 244.5675 241.4161 241.5824 244.7579 244.4032 241.1944 244.4792 245.192 248.3642 251.1038 253.2548 255.2537 257.8365 258.0758 257.8516 258.496 267.8098 270.4704 271.756 273.1639 275.2582 276.1454 275.9374 275.0527 274.537 273.9883 275.0854 275.7263 275.887 276.9269 277.8788 278.2383 278.2924 278.0546 280.5012 281.7883 281.976 281.4928 279.9713 278.728 277.2837 275.6454 273.4517 268.2542 264.6107 261.5776 258.4978 254.9212 250.752 248.4026 248.1456 248.3226 249.4276 249.7777 250.8901 251.9574 253.9708 256.9459 258.8661 259.5325 259.9064 264.2982 265.6824 266.3603 267.972 271.1646 272.9445 275.1675 276.575 278.4445 278.9281 278.1457 277.532 277.4995 277.3479 276.8693 276.327 276.2437 276.0948 273.3174 271.4951 269.7284 269.4407 269.5802 269.3595 267.3706 265.2296 264.2735 262.3269 266.3127 267.5631 269.0149 271.0394 273.8797 275.2532 276.6872 278.2714 281.8974 283.5933 285.0279 285.872 286.3594 286.8368 286.4628 285.2746 284.1458 281.0402 279.9249 278.821 278.188 276.0556 274.2988 -9999 +-9999 -9999 316.012 319.8141 322.5254 324.8735 326.4743 327.87 329.4365 330.6038 331.2845 332.0554 333.5624 335.5099 335.6157 334.8511 334.4795 332.0014 330.3304 328.2593 326.0858 324.5129 324.5031 323.8337 324.3373 327.1514 326.1736 323.6284 319.547 314.1428 316.4003 308.6374 310.7441 317.7191 322.4268 330.2484 330.8557 330.054 327.8908 324.2488 321.2932 318.4533 315.432 310.6858 312.2265 315.866 317.6869 319.27 319.1082 321.909 323.2046 324.7264 326.1293 326.8485 325.5031 324.2048 323.2472 321.998 320.8765 319.8148 319.2036 318.7111 317.3367 317.3362 317.7393 318.0304 317.8599 316.799 316.0743 316.4489 317.3979 318.1484 318.0234 316.8479 314.7867 311.5397 307.4342 302.3763 300.2142 300.3948 304.2214 305.4928 306.27 308.3611 309.0061 307.9529 305.8379 304.5517 303.346 298.6669 296.1882 293.4758 291.1689 289.3771 289.3595 289.7406 293.4579 294.4959 295.5085 289.4557 293.3312 298.4017 299.0844 300.241 302.0341 303.9162 304.5362 304.9677 304.8383 303.8632 303.1366 301.8397 305.2232 309.4057 312.2956 313.7446 316.7336 317.0101 317.1935 317.0683 319.3327 320.0783 320.9613 320.8109 320.9744 321.014 321.2645 319.5172 318.3891 317.94 317.1141 316.4927 316.3339 315.2722 313.196 311.8762 311.6663 311.6215 311.1562 311.3593 312.381 313.3423 313.5034 312.4618 310.0525 307.5811 305.3197 302.7496 299.8451 296.6111 292.2662 291.8534 282.0617 280.3348 282.0864 281.7005 284.2746 286.3234 287.9072 289.4402 290.8553 293.6146 294.4946 295.0886 296.6345 297.9326 299.3289 301.2975 302.2104 301.243 299.4294 301.6832 304.0172 305.3813 305.7501 303.9368 300.7751 297.4494 293.5649 292.7726 292.8397 294.2015 294.7576 296.4583 297.4565 298.8115 299.7706 300.4593 301.9 305.0338 306.0918 306.6729 306.7077 306.5669 306.4517 305.6127 304.7467 305.0998 307.3188 309.8897 312.4274 313.9627 317.0035 318.2782 319.4785 318.9379 317.6836 314.5901 313.9391 311.9926 310.5779 309.8238 310.1168 310.7617 309.6719 308.499 308.2037 307.9607 307.0992 306.1267 305.8904 305.6182 304.7028 304.3934 304.5853 304.8817 303.2536 301.4424 299.4921 297.9224 296.6974 295.5575 294.0076 293.6512 292.9399 293.1209 294.3802 298.6809 299.9114 300.6094 300.4735 301.9234 304.1404 304.8022 305.5575 306.4349 307.5025 306.9828 306.3406 306.3855 306.9938 307.16 305.4683 303.6872 300.9536 298.2615 295.2985 294.0793 291.1574 283.5174 278.2589 276.2031 275.9979 275.0541 275.1824 277.8557 279.7856 281.7472 284.6591 287.9203 288.7848 287.7992 286.7584 286.6205 287.2671 288.2283 289.1974 287.9212 284.5616 284.8946 286.9005 288.1066 288.7172 289.2264 290.0661 290.6742 291.0502 291.5734 290.7999 290.216 289.8505 289.8658 289.5991 289.027 288.3992 288.6488 289.4628 291.8122 292.4524 292.41 292.1663 291.8096 290.2767 287.0696 284.4439 283.2167 282.795 285.4383 286.5725 286.3896 284.7397 283.6448 283.1449 282.6988 282.0519 280.6832 280.6825 280.4741 279.4522 277.721 275.6454 274.8621 275.0436 275.6853 277.7478 278.2282 279.2004 279.4028 278.8383 276.8849 275.5353 273.7227 272.3491 268.501 265.9593 263.4665 259.0765 259.704 262.5452 265.2746 266.9635 267.8206 270.6964 272.3503 273.5201 274.0151 275.3232 276.0471 276.2115 275.0129 273.6033 268.7272 266.7544 264.9442 262.5858 261.1303 259.7596 259.24 258.7224 257.2886 251.2084 250.8528 250.7927 250.908 250.3057 250.4717 249.9971 250.4395 249.3733 249.6868 253.3236 256.5928 260.2921 262.8368 264.6852 263.1058 260.293 256.6248 250.7047 248.492 246.9739 245.3536 244.4677 244.0292 244.3523 244.3993 244.4461 244.3117 242.9921 241.3768 241.379 242.5789 244.8509 244.4134 241.4652 241.2999 244.1482 243.6492 244.5144 249.6112 252.1826 255.5607 257.1954 259.9182 258.4672 258.9541 259.3241 262.9089 269.4454 271.7712 273.579 274.8637 274.5712 273.7031 272.8648 272.5085 273.1405 273.3696 273.4762 274.0755 274.6347 275.4662 275.8524 276.0778 279.1552 280.916 281.6054 281.3512 280.2272 279.1778 277.5031 275.8704 273.3205 267.5963 264.4817 261.5206 258.5786 255.7098 251.714 248.6543 247.9279 248.2263 248.5177 251.7373 255.2412 256.8165 256.4771 255.5135 257.4539 258.9841 262.1237 266.8094 268.7417 270.3097 271.3195 272.4522 274.1655 275.303 276.6209 278.375 278.7601 277.9318 276.6389 275.8492 275.1369 274.6426 273.6464 273.4973 273.681 272.3377 270.339 268.4843 268.0876 268.1029 266.1346 263.7493 262.3343 261.5189 265.1622 267.1865 269.3284 271.2502 273.0012 273.9228 275.4759 276.8024 278.6041 282.221 284.5084 285.6129 286.4322 286.3197 285.5552 284.8228 283.6029 282.2699 279.51 278.0426 277.2281 276.5127 275.354 273.1356 -9999 +-9999 -9999 319.1693 321.0515 323.001 324.5655 325.7227 326.8048 327.888 329.3279 329.5145 329.3034 331.1813 332.7577 333.5046 332.8535 332.5653 332.3242 330.8905 329.3035 327.5215 326.3474 325.3471 325.1241 325.2413 327.0123 327.4311 324.9494 320.5266 319.1597 321.1254 317.3615 312.1478 315.1201 321.9765 329.7316 330.6642 329.6204 326.9148 324.1024 321.1954 318.7998 314.4653 310.1573 313.9851 317.3697 319.4207 320.94 322.1605 322.8697 324.1984 325.5125 326.8356 326.5006 324.977 323.8526 322.5164 320.4464 319.1582 317.4055 316.603 316.3667 315.5528 315.2785 315.5815 315.233 315.3016 314.6528 313.8531 315.2061 316.5255 317.747 317.5223 316.9006 314.6146 311.6117 307.568 303.3463 299.9551 299.4764 300.2687 302.3565 304.9596 307.7379 308.5945 308.311 306.8519 304.4169 303.9902 300.3827 298.6042 294.9257 292.054 289.3181 289.3055 290.1827 288.8321 291.9272 290.6126 287.5673 293.5471 299.321 300.7188 301.0149 302.0851 302.0786 302.091 301.9087 302.3414 301.9394 298.6615 301.6955 302.9921 308.0322 310.3833 311.2719 316.6622 316.7993 316.9666 316.9704 317.9584 317.8254 320.3206 320.9303 321.01 321.5834 321.3367 320.65 319.3218 318.1964 317.2492 316.8377 315.7484 314.7308 313.8138 312.3076 311.3893 310.1593 309.7396 310.1718 310.9298 311.6134 312.618 312.9673 311.3242 308.7733 306.163 303.3849 300.1258 297.9731 296.9456 295.4566 287.9594 282.6928 280.3821 280.5274 283.1329 285.2126 286.5091 287.5329 288.3528 290.5433 291.3476 293.762 294.6369 296.0291 297.1225 298.4454 299.0927 298.492 297.6525 300.6136 302.5449 303.9614 304.2212 302.3602 300.2224 297.5511 294.9321 291.2888 294.0411 296.2073 297.5517 298.1128 298.3035 298.8621 299.8489 300.7903 302.0547 304.3061 304.4711 304.2924 303.9091 303.6297 303.5283 303.5082 304.1913 304.8441 308.8323 310.1916 313.1541 314.0767 316.91 318.3258 319.8126 319.5806 317.6836 314.5901 313.9391 311.9926 310.5779 309.8238 310.1168 310.7617 309.6719 308.499 308.2037 307.9607 307.0992 306.1267 305.8904 305.6182 304.7028 304.3934 304.5853 304.8817 303.2536 301.4424 299.4921 297.9224 296.6974 295.5575 294.0076 293.6512 292.9399 293.1209 294.3802 295.9987 297.2544 297.7684 299.5064 300.9262 303.5122 305.11 304.4308 304.8573 305.2547 305.5573 305.3461 305.4391 306.2065 307.1112 305.394 303.8338 302.2215 298.6847 292.8341 291.1974 287.4497 280.4975 281.7155 280.9811 278.4868 277.2366 277.3876 282.3674 282.8521 285.0165 283.9286 285.991 290.6532 290.8755 289.3036 288.8318 288.5218 288.7475 289.4561 288.6406 286.397 284.7202 285.949 287.1605 287.488 288.2308 288.8443 289.5757 290.134 290.4751 289.904 289.3055 288.7793 288.7702 289.0768 289.2286 289 288.7666 289.0518 291.8942 293.4696 294.7621 295.3069 294.6796 292.8993 290.9088 287.2824 286.5622 288.2501 289.7862 289.9625 289.8734 289.2873 288.4119 287.5699 286.7634 286.0709 284.1688 283.5959 283.2171 281.4636 280.1831 277.859 276.426 276.362 277.0205 279.3535 280.3551 280.4421 279.9141 277.9179 275.7081 274.1418 272.6145 271.1685 267.1738 264.2363 259.4384 260.8663 262.0698 264.4633 267.2917 268.2126 268.4017 270.9575 273.6292 274.7786 275.8888 276.4179 276.644 275.9815 274.449 272.5066 267.2135 265.8051 264.1762 261.8915 260.7802 259.8347 258.8468 257.1153 255.5559 251.2208 252.8275 253.1621 252.4916 253.183 253.5638 253.344 253.9612 254.5719 252.0921 254.5796 258.2886 262.0824 264.346 265.3231 265.0635 263.0815 260.5982 254.1359 251.8529 249.0136 245.5417 244.3744 243.9543 244.3163 244.4022 244.299 244.0648 244.4536 244.4598 244.6743 244.5919 244.1662 244.3205 243.1514 244.2407 244.0179 243.8303 243.3375 244.9858 250.2769 252.9351 255.4018 257.7291 258.6562 259.1826 259.9688 260.2562 260.1044 265.8247 272.2118 273.3764 272.3239 272.2291 270.8647 270.776 270.8968 270.6325 270.6626 271.1548 271.7895 272.2139 273.0465 274.2375 278.0435 279.6524 280.2074 280.5363 280.2268 279.2823 277.9627 276.2351 273.2816 267.1639 264.8513 262.6871 259.6693 256.4341 252.2758 249.322 247.1207 248.0926 248.7381 253.3416 256.9842 259.5692 261.2751 262.7775 263.995 265.2785 266.536 268.2889 269.7851 271.3918 272.4548 274.0982 275.2782 276.9394 277.605 278.6791 278.8585 278.0543 277.1292 275.5568 273.4742 272.159 271.4559 270.9212 271.2984 271.3811 269.3997 267.5056 266.7092 266.5052 264.1246 261.7034 260.6061 260.4386 265.885 268.5133 271.194 272.9982 273.8974 274.5517 275.6574 277.3629 279.3445 282.8713 284.5728 285.6925 286.3694 285.5948 284.2978 283.0841 282.0828 280.7359 277.3205 275.8447 275.2247 274.496 273.8951 272.8444 -9999 +-9999 -9999 318.0923 320.4168 320.8833 321.2239 321.8005 322.4823 324.795 325.8625 325.1244 326.6562 328.1637 328.8307 328.7075 328.6545 330.3367 332.6241 331.6299 330.7794 329.9353 329.6409 328.1293 326.4471 325.96 328.0493 328.7963 327.2415 325.4024 323.4287 323.147 318.8189 313.5703 318.447 323.0026 329.3176 330.6185 329.1238 326.2133 323.3173 320.6314 317.9022 313.3032 311.022 315.8383 317.4365 320.3905 322.1147 323.8941 324.3694 325.7504 326.3907 326.9026 325.8012 325.5533 324.7152 322.8853 321.6796 320.2482 318.9094 315.7694 313.8365 312.9868 312.5238 312.9843 311.995 312.0203 311.5878 312.1874 314.035 315.6431 316.7842 316.6595 316.1843 314.7587 312.802 309.7876 307.2155 304.0781 301.752 299.738 300.5521 303.9914 305.4197 307.3322 307.6182 306.2513 304.8774 303.6314 300.3452 298.9505 296.2336 292.7713 290.4291 289.2725 285.4962 287.5192 290.144 287.0056 288.3611 293.8573 298.7928 300.3105 300.7638 300.3333 300.1458 299.7306 299.5515 299.5658 298.2416 296.2251 300.1659 302.5248 305.5655 308.5934 310.386 314.1349 316.7022 316.7827 316.6832 316.5652 317.6114 318.2813 320.042 320.8777 321.0396 321.0723 320.6244 319.7225 318.4601 317.5648 317.006 316.2654 315.3679 313.6595 312.8899 312.0459 310.341 309.016 308.2961 308.3678 309.7573 310.8019 312.4435 312.4998 310.3065 306.9001 303.6578 301.5085 300.0536 297.3496 294.5896 290.9598 286.7489 282.2592 281.4606 281.1294 284.0054 285.4781 285.3162 285.3477 289.1336 291.684 291.2226 293.498 293.4085 295.136 296.2312 296.3982 295.6374 298.3116 300.3996 301.9955 303.4343 303.7066 301.5853 300.2224 297.5511 294.9321 291.2888 294.0411 296.2073 297.5517 298.1128 298.3035 298.8621 299.8489 300.7903 302.0547 304.3061 304.4711 304.2924 303.9091 303.6297 303.5283 303.5082 304.1913 304.8441 308.8323 310.1916 313.1541 314.0767 316.91 318.3258 319.8126 319.5806 318.0259 315.8129 314.4626 313.2092 311.7452 311.7858 312.4647 313.1063 312.5492 311.0672 309.6909 308.979 307.7492 306.9534 307.0184 306.8367 306.2698 306.0883 306.222 306.5102 305.3306 303.3692 302.2835 300.9076 299.696 298.4006 296.71 295.1187 292.4985 292.4147 292.8395 293.2428 294.7337 295.9906 298.3276 299.9234 301.9521 303.5027 303.231 302.7472 304.5468 304.6854 305.522 305.2215 305.9137 306.3292 305.4859 303.8785 302.0772 298.9557 295.9979 292.6431 290.9813 288.291 286.9 282.9279 281.3563 277.3183 279.2856 283.2809 286.1507 287.2427 287.6945 287.8549 290.6622 291.6547 291.1118 290.1321 289.521 289.3051 289.6107 288.7581 286.6218 284.3141 284.872 286.0743 286.7635 287.8721 288.7909 289.3259 289.6727 289.9505 289.1627 288.4408 288.0987 287.9665 288.0018 288.3604 288.8909 289.2696 289.3283 292.8696 294.8027 296.1836 297.461 297.5298 295.396 291.9186 292.1772 290.5988 292.5951 293.6807 293.5826 293.0533 292.8579 292.4383 291.9919 290.4713 289.5563 287.8087 286.1631 284.8226 283.6455 281.8665 280.3121 278.5272 277.9448 277.7391 281.0728 281.768 281.4085 279.871 278.2512 276.1819 274.0397 272.3443 270.5568 265.3049 261.2196 263.9323 265.668 266.1672 267.6734 269.3964 270.1194 270.5353 271.511 273.3457 275.1945 276.6588 277.0871 276.6028 275.3912 273.3461 271.8307 267.2 265.4309 263.3196 262.295 260.9978 259.697 258.2645 256.0504 254.1384 256.2676 256.4837 255.8081 254.8368 254.9493 255.1438 255.3584 255.7302 256.6666 256.1845 256.6362 259.3117 261.4352 263.6064 264.8828 265.8907 263.7749 260.4697 255.286 252.2183 248.9225 245.8471 244.5489 244.1122 244.1965 244.3825 244.312 244.2431 244.2209 244.3744 244.3622 244.5515 244.2268 243.9479 244.8012 243.2629 243.6132 243.7151 243.4865 243.1296 243.7379 246.0564 250.6683 253.4794 254.0854 259.9039 261.8689 260.3539 260.8318 261.3584 263.0356 271.261 271.2189 270.0379 269.1949 268.6649 268.3211 268.192 268.4505 268.5064 269.2905 270.0698 271.1345 273.066 276.7408 277.6374 278.5341 279.3942 279.8403 279.2786 277.3658 275.1762 272.8326 266.5974 264.6266 262.3279 260.1962 257.0747 253.0875 250.0742 247.6999 247.6593 248.0475 252.9568 256.3106 259.0933 261.3753 263.4991 265.1398 266.4194 267.2723 270.3621 270.9283 272.4563 274.4075 275.6064 276.7737 278.3097 278.842 279.2044 278.8599 278.3777 277.5772 276.2593 273.675 270.4317 269.6335 269.3206 269.4691 269.9421 268.5797 266.7869 265.7548 264.9506 262.432 259.604 259.5478 262.4394 267.5488 269.8782 271.9097 273.4073 274.4 275.5918 276.4961 277.4635 279.1563 282.9715 284.5054 285.3507 285.9882 285.197 284.0011 281.4848 279.9236 278.3558 275.5025 273.8802 272.9503 272.2036 271.804 271.2545 -9999 +-9999 -9999 314.776 315.8413 315.6317 315.548 315.8148 316.2234 320.3651 321.3211 321.3592 323.8021 324.5248 323.3658 323.5698 325.6138 328.0999 332.8277 333.3726 332.8235 332.0876 331.4655 329.7268 327.8467 327.6014 328.3511 330.4879 329.7936 326.5969 325.5144 325.0609 323.4208 319.2802 318.4919 324.3909 329.5609 330.3651 328.6416 325.7385 323.1901 320.4773 317.2549 313.233 313.8027 318.5913 320.6743 322.4176 323.808 325.0264 326.4778 326.8259 327.057 327.1325 326.3629 325.9106 325.2076 324.0037 322.4886 321.1841 319.7187 318.02 315.4416 310.3106 309.8973 309.7668 307.8422 309.042 309.8543 311.5777 313.3834 314.4847 315.4561 315.4847 315.3857 314.5816 312.9172 311.1979 308.5751 306.3611 305.1397 297.6719 297.0487 300.7291 303.1124 305.0255 305.6339 304.736 303.3416 302.3275 300.4264 297.4965 296.4037 293.4306 290.7873 288.5806 284.0546 285.9035 287.8495 285.423 289.636 294.1749 296.8676 298.1116 298.3488 298.0406 297.5698 296.5229 295.0244 294.624 295.1656 297.2027 301.3075 304.139 306.9641 310.1708 311.1594 311.6923 313.6818 316.2852 316.126 315.7953 316.3627 317.0716 318.7195 319.724 320.069 320.2433 319.5864 318.9086 318.2798 317.571 316.7483 316.7503 316.2063 314.2234 313.5892 312.559 311.7292 309.9123 308.6794 307.0249 305.999 307.3437 310.7886 311.9012 312.1075 308.9611 303.6578 301.5085 300.0536 297.3496 294.5896 290.9598 286.7489 282.2592 281.4606 281.1294 284.0054 285.4781 285.3162 285.3477 289.1336 291.684 291.2226 293.498 293.4085 295.136 296.2312 296.3982 295.6374 298.3116 300.3996 301.9955 303.4343 303.7066 301.5853 299.2213 296.475 292.5283 292.8089 295.1582 296.7737 298.3005 299.7245 300.4762 300.5828 300.7466 301.8394 302.6143 302.7235 302.3827 301.981 301.9524 301.5886 300.1294 301.9063 304.2883 306.1927 310.3427 312.2749 314.0323 315.2303 317.3856 318.5524 320.1388 320.0887 318.5714 316.0122 315.2526 314.4382 313.7643 313.7991 314.4751 314.8703 314.2406 313.5125 311.5398 310.3019 309.3183 308.0777 308.1371 308.5294 307.5471 307.9686 307.9595 307.9532 306.8647 305.6419 303.9534 303.1213 301.7393 299.9723 299.3663 298.0129 294.7743 292.1932 291.8315 292.0111 293.055 295.1549 297.489 299.4321 301.442 302.2769 301.7722 301.3072 301.8997 302.5615 304.2874 305.6221 305.9573 305.9653 305.7827 303.6986 302.2563 300.7289 298.2422 295.8943 293.7422 292.68 289.5696 285.9221 282.0319 282.5623 285.273 284.4256 285.0421 287.4588 288.7455 289.7993 291.4515 291.6894 291.2459 290.3107 289.515 288.7089 288.0454 287.3832 286.0474 284.6209 284.8277 285.7649 287.148 288.2375 289.0235 289.2452 288.8268 288.4373 287.8364 287.6501 287.5158 287.4419 287.2274 287.4119 288.3654 288.603 289.6914 293.0493 294.9414 296.4098 298.1554 298.8231 297.421 296.1654 296.0025 294.1341 294.8602 295.9553 295.8424 295.8313 295.0261 294.357 293.2592 292.2947 291.4829 290.2981 288.4643 286.2126 284.6436 283.6268 282.0037 280.673 279.4496 279.1746 281.7347 282.5626 281.5007 279.6692 278.108 276.4243 274.4983 272.2791 268.7701 263.6799 262.7414 267.6561 268.9735 270.2835 270.718 270.8694 271.2701 271.9066 272.7022 273.8428 275.643 276.7206 277.4975 276.4008 274.0944 271.4981 269.9084 266.5967 265.3583 264.6879 263.1462 261.045 260.0989 257.7491 254.5201 256.5683 260.3792 259.752 258.3661 257.0611 256.8353 257.3199 257.7704 258.7526 259.5987 258.9728 258.0821 258.9342 261.0362 262.6074 264.3311 264.5582 262.6319 259.666 254.3572 251.702 249.0409 246.3536 244.9057 244.3137 244.2216 244.4622 244.5179 244.134 244.1586 244.1002 244.234 244.2295 244.1851 244.0229 244.1457 240.9585 243.5558 243.5231 243.3999 243.2605 242.9974 243.0541 243.4373 249.4402 253.7013 259.3443 262.5883 265.1644 262.3388 261.51 261.9713 262.3501 267.1501 267.9974 266.7505 266.3817 266.2806 266.7679 266.7761 267.3208 268.4009 269.2976 270.1046 271.4198 274.0713 275.6673 277.2089 278.7273 279.1894 277.5327 275.908 273.6889 270.8824 266.39 264.4493 262.7957 260.7012 257.8627 254.3841 250.7639 248.5908 246.7294 247.4804 250.1391 253.4372 256.3546 258.5546 260.4977 262.1627 265.0936 267.2046 271.4699 272.9461 274.2639 275.2358 276.6375 278.085 278.9024 279.1537 279.1118 278.1397 277.5231 276.6832 275.0951 272.9848 270.489 267.8605 267.1637 267.4908 267.8032 266.6855 265.8575 264.8774 263.9481 260.0995 258.3931 260.4785 262.849 269.7443 271.378 273.2007 274.0992 275.3951 276.4924 277.5774 278.7052 279.6628 282.3336 284.1151 284.8948 285.4395 285.0129 283.8033 281.6092 279.1989 277.1536 274.6111 272.7697 268.6415 266.6419 269.0126 268.8709 -9999 +-9999 -9999 308.0761 308.9223 308.9575 309.2176 308.6095 310.408 313.1736 315.0149 317.2468 318.3728 320.2092 324.2873 326.5414 325.3353 328.4831 333.281 334.457 334.8349 334.2139 332.981 331.201 329.4968 328.2133 328.5463 331.1682 330.862 328.6838 327.6658 327.2143 325.5452 322.3782 320.195 324.4194 331.7165 330.3064 327.5322 325.1606 323.1462 320.3493 316.9659 313.7708 316.8906 322.8572 322.7285 324.4802 326.1083 326.8785 327.9004 327.8976 327.6747 326.3032 325.2749 325.1412 324.7744 324.0914 322.8624 321.6653 320.8556 318.9529 316.4128 310.369 308.0876 307.3091 306.5416 307.5339 309.133 310.905 312.0891 313.0005 313.8618 314.1168 314.2348 313.7269 312.4005 310.4093 307.9359 306.682 304.945 298.1003 293.1598 297.4528 299.7317 301.8166 302.994 302.5548 301.1164 298.9337 299.3937 298.1578 294.7713 294.0728 291.1973 289.3212 285.7668 284.7354 286.1601 285.3517 290.7026 293.4106 294.5546 295.5987 295.3437 294.9388 294.1309 294.462 294.652 295.161 299.2603 303.6707 305.168 305.2113 306.6456 310.1667 311.9552 312.0156 311.8156 316.2852 316.126 315.7953 316.3627 317.0716 318.7195 319.724 320.069 320.2433 319.5864 318.9086 318.2798 317.571 316.7483 316.7503 316.2063 314.2234 313.5892 312.559 311.7292 309.9123 308.6794 307.0249 305.999 307.3437 310.7886 311.9012 312.1075 308.9611 305.7759 303.3893 300.8867 299.1136 298.2232 293.3477 289.6625 285.5871 280.1573 280.8662 282.6423 284.4047 283.5523 282.1178 286.0936 287.0379 288.6761 290.3394 291.451 294.1499 293.9272 294.0409 295.5186 299.7766 301.0367 302.3177 303.523 303.4308 301.0977 298.1671 294.8302 290.9721 292.3234 294.9721 296.5497 298.1608 299.6161 301.4118 301.534 301.5652 301.9747 301.2239 300.1081 299.6474 299.634 299.2297 301.6029 304.4467 305.8447 307.6643 309.6973 312.4589 314.4019 315.8854 317.0486 318.28 319.5954 320.9983 320.6786 319.5877 316.509 316.4877 315.5463 314.8166 315.0569 315.5872 315.983 315.8025 315.4497 313.1706 311.5403 309.7212 309.3236 309.3656 308.5791 308.4274 309.0887 309.6136 309.2748 308.1501 306.8831 305.3406 304.5664 303.8679 302.0694 300.5704 300.4721 297.7212 294.4752 291.6938 291.4229 292.0335 294.6996 296.6547 298.8056 300.7287 300.5887 300.2785 300.7091 302.0582 302.8125 302.6956 305.0517 305.9786 306.1395 305.6255 305.1346 303.2903 301.1263 299.4659 298.374 296.7216 294.8754 292.8324 289.9241 288.0294 287.99 287.6418 288.0804 285.731 286.583 289.3196 291.1422 292.3541 291.7692 290.6787 289.6099 288.5691 287.7593 286.8253 286.3124 285.5557 284.9394 285.191 285.6058 286.4904 287.435 287.1895 287.192 286.928 286.3435 285.5206 285.3388 285.2053 285.3297 285.9393 286.6321 287.8049 288.7644 289.9858 291.7082 293.7134 295.7173 296.7158 298.0998 298.8097 298.4753 297.152 295.6101 295.555 296.324 296.1808 296.3528 295.2001 293.9045 292.901 291.9962 291.4512 289.9644 288.8804 287.1622 285.8471 284.6425 283.8933 282.4159 281.154 280.6304 282.6271 283.5515 281.7419 280.2807 279.5233 277.2266 275.4555 272.1615 268.6687 266.9406 268.4368 270.4039 271.3129 272.0605 272.775 273.2766 273.2411 273.3521 274.5157 275.129 276.6378 277.592 278.053 276.6407 275.0009 273.7733 271.4131 267.7596 267.2126 266.1367 264.3911 262.4119 261.9564 260.9392 261.1197 262.1621 262.3014 262.0132 261.035 259.7789 259.7682 260.0708 260.154 261.4969 262.528 261.6435 260.661 260.8306 261.4439 262.1015 262.3468 261.5663 259.9034 259.0388 254.1688 252.149 250.0212 247.5543 245.7601 244.7007 244.2227 244.1182 244.1387 243.9215 243.9089 243.9459 244.094 244.0888 244.0504 244.1633 245.0597 241.0418 243.6515 243.4645 243.4138 243.4123 243.3591 243.1056 243.5909 244.9338 250.2223 258.6243 261.8473 264.9239 266.9445 268.3513 265.1692 262.6455 262.9896 263.0308 264.2844 263.7882 264.3372 264.438 264.623 265.7354 266.9874 268.5526 269.5898 272.0805 274.5728 275.4926 277.4231 278.9552 278.306 276.045 272.8596 271.0138 268.6469 266.0195 264.376 262.52 260.4022 257.9991 255.8826 252.7772 250.0442 247.4511 247.2731 250.1981 252.0095 254.2915 256.5612 259.4612 262.832 265.5466 267.9494 271.834 273.4049 274.8627 276.3183 277.8717 278.4934 278.9858 278.5338 277.7624 275.7962 275.4839 274.5172 273.2683 271.4751 269.5506 266.8699 264.7243 265.4036 265.6219 265.0397 264.7628 263.8737 263.2716 258.5506 258.5282 260.4785 262.849 269.7443 271.378 273.2007 274.0992 275.3951 276.4924 277.5774 278.7052 279.6628 282.3336 284.1151 284.8948 285.4395 285.0129 283.8033 281.6092 279.1989 277.1536 274.6111 272.7697 268.6415 266.6419 269.0126 268.8709 -9999 +-9999 -9999 309.8004 310.8348 314.5787 317.474 321.2959 324.3765 324.0764 324.3531 324.8806 325.7548 325.1364 326.4406 330.023 331.0136 330.5295 333.3273 335.8661 336.546 335.9812 334.1676 332.2057 330.6787 330.1456 329.0583 330.8384 331.5338 330.996 330.4755 329.9417 327.7879 323.0274 326.9206 327.4646 330.5961 330.0222 327.6523 325.886 324.4359 321.385 315.7923 317.1844 320.868 324.4904 325.0781 326.1446 327.6374 328.4807 328.5454 327.8126 326.3599 325.3613 323.3938 323.5809 323.3759 322.9498 322.2719 321.2082 320.3407 318.6051 316.3639 308.1386 306.9508 305.5702 305.0176 305.3871 308.6326 310.15 311.0783 311.3211 311.6706 311.9165 312.0095 312.159 311.3216 309.1516 306.2104 300.9837 302.8857 298.2443 292.397 292.8275 295.6569 297.6978 299.6146 299.081 297.0342 296.1357 298.2499 298.1578 294.7713 294.0728 291.1973 289.3212 285.7668 284.7354 286.1601 285.3517 290.7026 293.4106 294.5546 295.5987 295.3437 294.9388 294.1309 294.462 294.652 295.161 299.2603 303.6707 305.168 305.2113 306.6456 310.1667 311.9552 312.0156 311.8156 313.1234 315.0117 313.1557 314.9711 318.4446 317.9004 318.1119 318.0563 318.3572 318.7404 318.1089 317.4853 316.6706 315.8677 316.1424 316.2956 314.5513 313.7685 313.4665 312.7983 311.2541 309.7565 307.9601 306.1113 304.7336 308.3553 310.2415 311.005 310.4157 307.6265 305.1669 302.904 301.7344 300.6004 294.8451 291.1809 285.8847 280.6333 280.2395 280.8567 282.3911 280.9995 284.082 288.0685 289.9599 291.478 292.4176 292.1725 292.0547 293.0264 295.0438 297.3082 300.629 301.8722 302.626 303.1561 302.6984 300.574 297.2456 294.0414 290.1097 292.6281 294.4471 295.9408 297.2893 298.9177 299.7704 299.9674 300.1252 300.4394 298.069 297.329 297.6422 300.1647 302.7177 305.8763 307.4987 308.6862 310.064 312.7558 313.9591 315.1581 316.5766 318.0155 319.2866 320.316 321.5376 321.4126 320.2443 317.8493 317.5152 316.6486 315.4173 314.8131 315.6556 316.1666 316.3181 315.9922 314.0744 312.7487 310.5006 310.0296 309.1081 308.5993 308.6174 309.0413 309.8098 310.2833 309.6242 308.5499 306.6035 305.7976 304.9405 303.1313 302.0282 301.2706 299.0447 297.4529 293.5613 290.8897 291.4504 293.5807 296.3266 298.2939 299.6284 298.8889 298.7873 299.916 302.5465 303.0019 303.0083 302.9624 302.7002 303.9397 304.1623 303.8309 303.9762 303.5898 301.8145 300.3052 298.6398 296.9702 295.3201 292.9134 292.446 291.2696 292.0355 291.3499 288.5448 289.1312 291.3351 291.7051 292.6963 291.5372 290.0216 289.1028 288.6475 287.4258 287.0101 286.3744 286.2839 285.9431 285.8146 285.1941 284.8332 285.5287 286.3073 285.5774 284.6052 283.5986 283.0229 283.4192 283.9026 284.393 286.1854 287.6925 289.4831 290.8096 291.1351 290.9474 292.4681 294.2311 295.6544 296.7391 298.326 299.2397 298.4363 297.4405 297.2207 297.4889 296.811 295.7789 294.2108 292.7148 291.276 290.5313 289.9963 288.4411 287.733 286.8926 286.2205 285.2853 284.4041 283.5025 282.459 281.6615 283.2104 283.9246 282.8001 281.5698 280.2953 278.7806 276.5226 273.2711 269.4418 270.755 272.473 273.4456 274.1253 274.0847 273.8433 274.819 275.5925 275.235 275.9794 276.9567 277.9662 278.6889 278.6216 278.0005 276.9043 275.2787 273.5632 270.4957 268.9644 267.466 265.8722 264.8814 264.5754 264.6425 264.7348 265.1375 264.9408 264.7734 263.1945 262.381 261.6782 261.7027 262.2534 262.7941 262.3441 260.7555 260.4647 260.071 260.5342 260.8011 261.0796 259.804 258.8795 257.3999 254.4582 252.7652 250.9384 249.2629 246.9753 245.3103 244.6103 244.5394 244.6695 243.7937 243.5809 243.7079 243.8746 243.985 244.0325 244.2689 244.7631 242.3353 243.876 243.6201 243.4848 243.517 243.2567 243.2277 243.3696 244.2737 249.788 258.3078 261.6121 264.8339 266.8724 267.5289 267.9969 267.4667 263.1381 263.5708 262.7631 261.7588 261.9998 262.2474 263.1326 265.0238 267.2306 268.7827 269.6172 273.6176 275.8627 277.4845 278.6795 279.0491 277.3646 274.1112 270.8821 267.8613 265.5706 263.1807 262.641 261.1091 259.2126 257.9991 255.8826 252.7772 250.0442 247.4511 247.2731 250.1981 252.0095 254.2915 256.5612 259.4612 262.832 265.5466 267.9494 271.834 273.4049 274.8627 276.3183 277.8717 278.4934 278.9858 278.5338 277.7624 275.7962 275.4839 274.5172 273.2683 271.4751 269.5506 266.8699 264.7243 265.4036 265.6219 265.0397 264.7628 263.8737 263.2716 258.5506 258.5282 262.2366 265.3452 270.4117 272.8268 274.0973 275.0531 275.8599 277.0373 278.4923 279.666 280.687 282.2736 283.8365 284.3978 284.8901 284.3878 283.5031 280.4626 278.8977 277.0959 273.9016 270.8296 269.0898 266.4928 260.2775 263.4796 -9999 +-9999 -9999 322.0354 324.3125 326.3474 327.9182 329.9942 332.2942 333.2007 330.5999 330.7816 330.975 331.0294 331.4597 331.9143 332.6481 333.902 336.3834 337.6018 338.1103 337.1854 335.1628 333.7424 333.2602 332.7167 331.1398 331.76 333.3943 332.848 333.0939 332.3101 328.623 326.2453 330.5274 331.3452 331.0021 330.0565 328.5543 326.9554 324.2466 320.3698 316.3927 320.4364 323.5616 327.5702 328.0023 328.0849 328.9313 329.4003 328.3705 326.5489 325.0522 323.8514 321.0645 321.6649 322.2325 321.9014 321.3537 319.9547 318.816 317.8488 316.0945 308.1386 306.9508 305.5702 305.0176 305.3871 308.6326 310.15 311.0783 311.3211 311.6706 311.9165 312.0095 312.159 311.3216 309.1516 306.2104 300.9837 302.8857 298.2443 292.397 292.8275 295.6569 297.6978 299.6146 299.081 297.0342 296.1357 298.2499 297.5544 296.2824 294.0403 291.2368 288.9071 287.354 283.3796 283.9588 286.7767 289.3419 290.3486 291.4319 291.4752 290.6443 292.4203 293.9102 294.5551 297.822 300.3463 304.8208 305.5138 305.7055 305.6877 308.5182 309.7787 311.3784 312.0761 312.0573 311.8221 311.2953 313.1157 318.1543 317.9215 318.0294 318.1554 318.0619 317.8447 317.5805 317.1816 315.0115 315.3414 314.0593 314.3957 314.7149 313.5763 313.0055 313.171 313.6494 312.3491 310.6927 308.7045 306.8235 305.0652 305.3002 307.0531 308.3639 309.1069 308.4345 306.1485 303.9407 302.3723 300.9221 295.2794 291.9052 288.0543 278.9798 278.9321 279.1533 278.4698 280.2115 282.9523 288.2285 291.7325 294.3625 296.0588 295.4821 294.4412 294.7474 295.9402 297.4717 300.3433 301.148 301.4176 301.1059 300.4382 299.1565 296.5881 292.9895 289.351 292.0656 293.174 294.6443 296.2243 297.1006 296.9198 297.1063 297.1118 296.6085 295.8033 297.4913 300.1095 302.6099 305.1401 307.0017 308.8578 310.4775 311.7813 313.7459 314.4417 315.8036 317.0719 318.3239 319.2444 321.005 321.9481 322.2408 319.7802 318.45 317.9347 316.9832 315.4507 314.3682 314.8387 315.5838 315.8506 315.6966 313.584 312.6274 310.8855 309.7379 308.4787 307.8139 307.3569 308.4059 309.2943 310.644 310.5276 309.147 307.5978 306.8874 305.7103 305.1685 303.9435 302.6053 300.1122 298.4713 294.7391 291.0012 290.7675 293.1342 296.2848 298.5077 299.0092 297.3562 297.9678 299.0829 301.3005 301.5283 302.7508 302.7291 302.9624 303.0384 303.7349 303.6578 303.1555 303.0743 303.2155 302.1088 300.5762 299.4912 298.8317 297.5325 295.8219 294.7973 294.8046 293.5587 291.3784 291.4453 292.7763 292.6922 291.8342 290.3617 289.5856 288.7751 288.1722 287.624 287.0627 286.8174 286.2933 284.7256 283.7202 283.1923 283.1786 283.856 284.079 283.0415 281.8799 281.3867 282.2374 282.4466 284.7916 286.8277 288.8295 290.0066 290.9519 292.2438 291.5511 291.9814 291.6216 292.7468 294.3219 295.4825 296.8719 298.4151 299.406 299.4966 298.46 297.8281 296.7628 295.0585 292.978 291.0566 289.4961 288.3801 288.3318 286.1288 285.7779 285.1868 285.2575 285.024 284.534 283.9983 283.0814 282.2647 283.9282 284.7553 284.4186 283.2405 281.9249 280.0201 278.7124 276.569 274.3805 273.9579 274.5924 275.3662 275.9969 276.1725 275.9523 276.347 277.1258 276.9888 277.0843 278.1117 278.7204 279.2327 279.0448 278.3049 277.285 276.1023 274.7014 272.6277 271.1163 269.0823 267.3154 266.6249 266.7993 267.4835 268.1093 269.0209 267.6442 266.2159 265.4783 264.1247 263.8596 263.9102 263.5595 262.4299 261.078 259.3547 259.0033 258.4311 258.517 259.0978 259.3247 258.7245 258.449 257.9369 255.0258 253.782 252.0511 250.7833 249.2755 247.7471 246.6961 246.7419 247.1693 246.8969 244.6541 243.4534 243.7162 243.7767 243.8396 244.1419 244.5142 244.3866 241.0246 243.6305 243.5633 243.517 243.2567 243.2277 243.3696 244.2737 249.788 258.3078 261.6121 264.8339 266.8724 267.5289 267.9969 267.4667 263.1381 263.5708 262.7631 261.7588 261.9998 262.2474 263.1326 265.0238 267.2306 268.7827 269.6172 273.6176 275.8627 277.4845 278.6795 279.0491 277.3646 274.1112 270.8821 267.8613 263.5663 263.1807 262.641 261.1091 259.2126 258.1958 256.5495 254.1479 251.6561 247.9299 246.9443 249.3832 254.1997 257.498 260.8086 263.2889 265.1212 266.8004 269.0634 272.2783 274.5492 275.8835 276.8771 277.8955 278.3866 278.4574 277.3845 276.4333 273.4396 272.524 272.0282 270.7293 268.6064 267.359 265.6276 263.5168 263.3651 263.1584 263.213 262.3911 261.8518 261.0071 256.565 259.4803 262.872 266.3244 270.6377 272.5498 273.6319 274.5019 275.6017 276.7303 277.8933 279.3287 280.4236 282.2178 283.0591 283.8207 284.1852 283.6153 283.0806 281.3774 279.7092 277.3906 274.9688 273.1042 270.9169 268.6923 266.2317 262.0305 -9999 +-9999 -9999 324.7097 327.0884 329.2376 330.9741 332.6765 334.3975 336.8019 336.046 335.8212 334.7979 334.0538 333.3852 333.1503 333.3231 334.4954 338.1273 339.5936 339.3531 337.9161 336.3137 335.405 335.2679 335.1659 334.2908 332.1881 334.0706 335.4065 335.9341 334.3996 333.1437 332.436 333.8129 335.2284 332.3938 330.0565 328.5543 326.9554 324.2466 320.3698 316.3927 320.4364 323.5616 327.5702 328.0023 328.0849 328.9313 329.4003 328.3705 326.5489 325.0522 323.8514 321.0645 321.6649 322.2325 321.9014 321.3537 319.9547 318.816 317.8488 316.0945 304.3044 302.3909 303.5511 302.8201 303.8837 307.3391 309.0897 309.4828 309.2076 309.7837 310.1086 309.5934 309.9426 309.0604 306.7514 301.8669 298.0103 298.3199 295.3267 291.1522 288.5405 290.8799 293.6699 294.4431 290.8066 291.0764 292.1832 296.6198 296.6889 295.7454 294.2025 290.9793 287.3658 284.1182 283.2812 283.487 283.9492 287.369 288.5218 288.3347 286.7894 286.2838 291.8853 294.6783 295.9726 300.0014 304.1754 304.1219 304.9558 305.7652 305.8752 307.9196 310.0255 311.5179 311.843 312.0437 311.5376 309.6438 311.1382 315.4872 317.9664 317.8275 318.0959 318.0101 317.7361 317.5378 315.3162 313.2846 313.0554 311.8327 311.688 312.419 312.1809 312.5506 312.9273 313.4993 312.8222 311.5623 309.8655 307.4561 306.0505 301.8969 303.426 304.9116 306.632 307.4958 306.0707 303.278 301.161 299.3477 295.4055 292.0628 288.6998 284.1642 281.4402 280.5082 277.9116 280.052 281.9316 286.8971 290.0168 292.8148 294.75 293.7485 292.0956 292.1179 293.7778 295.345 299.5228 299.9071 299.7757 299.4184 298.5717 297.139 294.5118 291.6611 286.9899 291.1744 291.0959 291.665 293.4697 294.1742 293.7899 293.6528 293.9406 294.2904 297.256 299.8456 301.3972 302.813 304.9569 307.1545 308.688 310.4298 312.1204 313.4816 314.2097 315.4248 316.748 317.8253 319.8668 321.188 322.0078 322.5504 320.6584 319.3732 318.0481 316.7424 315.5481 314.2831 313.9999 314.4519 315.0117 314.6983 312.8512 312.4279 310.9451 309.1714 307.9396 306.8353 306.7316 307.468 308.423 310.4424 310.7849 309.7348 308.4787 307.451 306.4466 305.4028 304.2564 303.4013 300.9602 298.7734 294.4223 290.849 290.0396 292.5017 295.3772 296.6401 297.1369 296.0934 296.895 298.1024 299.3492 300.1321 300.1859 300.405 302.4911 302.3799 303.6346 303.6693 303.1136 302.8327 302.9538 303.1262 302.6669 300.7816 300.1325 299.0791 298.1374 297.3063 296.9111 295.3789 294.2599 293.8374 293.2062 292.6107 290.9316 290.2065 289.2191 288.5591 287.493 286.8101 286.1146 285.9202 285.8421 284.1744 283.4001 281.2661 280.7116 281.3611 280.6803 280.2271 280.6411 282.108 283.7796 284.4719 286.3082 287.7964 289.1643 290.2443 291.434 292.6339 293.6378 293.4495 292.0583 292.0584 293.0316 294.7209 296.3538 297.7281 298.9635 299.672 299.1507 297.737 296.2473 294.5675 291.5063 288.9671 287.4422 286.7023 286.124 284.5232 284.1923 283.4708 284.2732 284.1179 283.2381 282.9056 282.8502 282.7637 283.6452 284.7476 284.9475 284.4563 283.4049 281.6846 280.2441 278.8174 276.4053 276.2999 276.3905 276.7818 277.5821 278.0921 277.9033 278.1037 278.8779 278.765 278.4288 278.9423 279.6816 279.7212 279.5681 278.5988 277.4796 276.6029 275.2787 272.4761 270.8857 269.2109 268.2663 267.5826 267.873 269.2154 270.2597 270.8515 268.7628 267.5782 266.6793 264.1247 263.8596 263.9102 263.5595 262.4299 261.078 259.3547 259.0033 258.4311 258.517 259.0978 259.3247 258.7245 258.449 257.9369 255.0258 253.782 252.0511 250.7833 249.2755 247.7471 246.6961 246.7419 247.1693 246.8969 244.6541 243.4534 243.7162 243.7767 243.8396 244.1419 244.5142 244.3866 241.0246 243.6305 243.5633 243.2568 243.2193 243.5066 243.866 244.9367 249.8836 257.4064 260.401 262.73 265.8511 266.9308 267.1342 266.2509 264.6776 261.4063 263.947 264.3747 260.9131 261.1357 263.2746 265.2729 267.566 268.7284 270.9286 275.1525 277.0744 278.795 279.887 279.1455 276.7221 273.8756 269.8584 267.9131 265.3499 263.6266 261.8158 260.2083 257.2062 255.9105 254.681 253.2362 250.424 246.5457 246.8147 249.3637 254.4368 258.2568 261.4297 264.4767 266.8618 268.7 269.7135 272.4794 274.6975 275.882 276.9338 278.0414 278.0728 277.1274 276.077 274.3613 270.8499 269.8703 269.3766 267.6507 266.1593 264.8414 263.0422 261.1021 260.976 259.9739 260.6935 259.2336 258.9308 257.8192 256.5341 260.6619 264.084 267.1795 270.3651 271.5793 272.8213 273.2346 273.8789 275.018 276.3701 277.4068 279.0856 281.0648 281.8094 282.1649 283.0081 283.5097 282.9051 283.0555 281.4146 278.6534 275.2478 273.3189 270.1907 269.2387 267.4136 265.3039 -9999 +-9999 -9999 320.0149 323.0023 325.3041 327.8453 330.1033 332.3915 335.7704 336.046 335.8212 334.7979 334.0538 333.3852 333.1503 333.3231 334.4954 338.1273 339.5936 339.3531 337.9161 336.3137 335.405 335.2679 335.1659 334.2908 332.1881 334.0706 335.4065 335.9341 334.3996 333.1437 332.436 333.8129 335.2284 332.3938 330.147 327.8702 325.1639 322.0878 318.1751 319.5808 321.1794 325.1037 330.6591 330.9555 330.0042 330.1765 329.2066 327.2937 325.3961 323.6228 321.2911 318.5599 319.911 320.3018 320.3394 320.0337 318.7452 316.3301 316.1824 315.6647 311.1776 308.1102 303.3273 301.1552 301.2575 304.5837 306.9532 307.9734 307.3562 307.7453 307.7488 307.4713 307.1043 306.0557 302.1985 296.3578 293.1871 294.1131 289.1862 287.2689 286.0302 285.105 285.8699 285.9053 285.4919 286.6017 289.5148 292.3633 294.2466 293.7629 292.7202 289.9951 284.4493 283.1177 282.9022 282.7183 282.4681 282.9275 285.6001 285.008 284.9888 290.7351 294.0438 295.9973 297.7952 301.3188 304.292 304.3781 304.3607 304.271 305.037 306.4443 308.3645 310.3603 311.1077 311.1807 308.6118 308.5446 311.3428 313.2698 313.7802 315.877 317.2504 317.3576 316.7487 313.3883 313.444 313.2657 312.953 310.8251 309.3202 310.265 310.6339 312.4012 313.1552 313.8282 313.2141 311.891 310.1693 306.1459 305.9034 301.2891 299.9447 300.8557 302.9083 304.4834 305.1232 301.1371 298.8099 296.7422 293.5231 290.7358 286.7776 283.4056 285.5502 282.4364 277.3453 278.5728 281.2509 284.9127 287.1021 289.8335 290.6801 289.6183 288.5862 289.3306 292.4909 295.1469 298.9477 299.645 299.0541 297.3331 296.1156 294.7036 292.1854 289.0997 287.4295 288.9445 289.3015 290.5009 291.1822 291.8195 293.774 295.3248 296.668 298.5925 300.5718 301.5097 302.3755 303.921 305.1781 306.0873 307.8864 310.008 311.2844 312.5462 313.7284 315.09 316.0208 317.9855 320.0861 321.266 321.8012 322.8059 321.4858 319.8761 317.5977 316.0221 315.1034 314.4144 313.9391 313.7406 313.8921 313.1708 312.2044 311.36 310.2209 308.9073 307.2679 305.6647 304.5994 305.9649 307.5393 310.4899 310.6011 310.2624 309.3278 308.1125 307.3291 306.1207 304.3076 302.9461 300.9021 297.9808 293.9254 290.0067 290.3761 292.5136 294.1308 294.8604 294.5709 294.7267 295.8327 297.3586 298.7929 299.5222 299.7599 300.0113 300.1752 300.1863 302.4209 303.3808 303.5245 303.7142 303.8743 303.7398 303.5029 301.9861 301.2183 300.5435 299.862 299.101 297.3878 296.9394 296.0254 295.6149 294.1314 293.5256 290.6042 289.8844 288.4924 287.7662 286.9122 286.0764 285.3506 285.0727 285.1071 283.9001 283.3794 280.4993 279.6497 278.9124 279.2554 280.4249 281.8864 283.4173 285.3001 286.5579 287.4998 288.4272 289.3818 290.7275 291.8398 292.6669 294.0197 294.0643 292.77 292.0064 292.2193 293.76 295.6209 296.8343 298.0085 298.6679 297.9981 296.6192 294.7991 293.2416 290.8703 288.1431 286.2328 284.9718 284.0127 283.2991 282.8163 282.0976 282.4188 282.3659 281.7876 281.37 281.2966 281.0829 282.4901 283.4016 284.0443 283.6192 283.4049 281.6846 280.2441 278.8174 276.4053 276.2999 276.3905 276.7818 277.5821 278.0921 277.9033 278.1037 278.8779 278.765 278.4288 278.9423 279.6816 279.7212 279.5681 278.5988 277.4796 276.6029 275.2787 272.4761 270.8857 269.2109 268.2663 267.5826 267.873 269.2154 270.2597 270.8515 268.7628 267.5782 266.6793 265.8005 265.2028 264.8564 263.6138 261.9981 260.4843 256.8004 255.705 255.7091 256.4247 256.7859 256.7221 256.4557 256.2771 257.0599 256.8685 254.4458 252.5515 250.6198 249.5972 248.9468 248.3615 247.6486 247.425 247.3892 246.6761 244.4493 243.6108 243.8205 243.6743 244.1487 245.1783 243.9198 243.9602 241.0018 243.6694 244.4262 243.3913 245.5196 247.5923 248.1652 250.3025 260.2451 261.9825 262.7946 265.8663 266.2846 266.1575 264.4017 262.538 258.7291 259.3926 261.9588 264.2232 264.798 263.3011 265.7702 268.106 269.5173 272.0573 275.4975 276.933 278.3234 279.0669 278.853 276.9259 274.0172 270.8315 270.2284 265.6828 263.6677 261.7936 259.986 257.3237 255.2034 253.5257 251.5981 249.7688 246.1351 246.8076 249.2943 253.5005 256.9603 260.2175 262.8362 265.3365 266.9991 267.9477 270.9809 272.433 273.9658 275.7019 276.3078 275.7451 274.8805 273.9705 271.8343 267.7244 267.2384 266.7641 265.5558 264.7159 262.9683 261.2529 259.1865 258.0575 257.5789 257.4926 256.3269 256.4807 255.6244 258.0916 259.922 262.9927 266.2686 269.4441 269.4628 270.5279 271.6057 272.6352 273.8254 274.5883 275.5601 277.0659 278.9308 279.7048 280.741 281.5735 282.4428 283.2201 283.3296 281.871 280.3095 276.8356 274.7548 272.7573 271.86 268.4523 268.7987 -9999 +-9999 -9999 320.0149 323.0023 325.3041 327.8453 330.1033 334.3866 335.7704 336.8998 336.2185 335.2642 334.196 332.6887 331.2383 331.3073 333.8866 337.6412 338.6803 338.1111 337.6633 336.2655 335.276 336.4205 337.1416 336.6465 332.5569 333.9222 336.6508 337.842 337.0302 336.1059 335.6583 336.0248 336.6018 332.6174 329.7879 326.0846 322.9004 321.2918 322.0085 324.8521 325.8374 327.0132 331.0604 332.2917 331.562 329.8715 327.7819 326.0803 323.7485 321.6651 318.493 316.5802 318.103 318.1421 318.4406 318.6913 318.4875 316.3099 314.1181 314.1649 313.6615 311.6855 308.3558 303.9267 298.0537 300.843 304.3868 305.6143 305.6333 305.8983 305.4388 304.4106 303.9821 302.0153 297.6537 291.3977 288.7556 289.1956 286.1767 285.4766 285.1022 285.5238 285.2956 285.1965 283.6924 284.7608 284.394 287.9309 291.3535 290.5462 289.3185 286.5852 283.141 283.0103 282.0516 282.7144 282.4688 282.3127 282.8356 285.1798 288.765 290.9097 292.7249 294.7427 296.5197 299.5145 301.0704 301.9987 303.7402 304.1133 303.499 304.8834 304.9497 305.3419 305.7664 306.3437 304.8204 308.3941 310.9366 312.2048 312.7104 313.0233 316.3611 313.0931 311.9181 312.2249 312.2166 313.0876 312.852 309.2763 307.5824 307.8828 309.8816 311.5596 312.4333 313.3143 313.3422 312.1147 307.5562 306.2436 306.2403 303.9534 301.1249 297.2194 298.9853 299.7711 298.1962 294.9031 293.5366 292.9571 289.9319 286.1606 284.7365 287.1596 286.2752 281.9989 278.0572 278.2432 281.5205 282.4503 283.7643 285.2184 285.8544 285.7256 286.7039 289.6505 293.3856 295.8781 298.1308 298.6722 298.0321 296.0802 294.0686 291.2234 288.941 287.0319 288.0176 290.766 291.8197 292.1215 293.9326 295.2162 297.7505 299.4539 301.1271 302.2236 303.4117 303.6557 303.7691 304.8393 306.1526 306.9298 307.3605 308.429 310.0268 312.2743 313.0494 314.3026 316.0415 317.3871 319.2951 320.8323 321.6147 322.5336 321.4348 319.5236 317.6553 315.6287 313.7689 312.8845 312.0705 312.0417 312.3558 312.1133 311.1258 310.9169 310.1658 308.3922 306.2871 304.5045 302.8213 304.3352 308.1759 309.6276 310.1265 309.7835 309.1529 308.3778 307.3031 305.5741 303.8631 301.8986 298.3679 296.2685 292.8781 289.446 288.635 290.8434 291.3449 291.977 293.2151 294.0016 295.5414 296.9612 298.576 299.2832 299.4178 299.587 299.6794 299.7025 302.1679 302.6317 303.2303 304.0876 304.9485 304.7301 303.7682 303.2957 302.5489 301.4378 301.3014 301.0714 300.2267 298.9142 297.4697 295.7321 293.877 292.4671 289.6511 288.7715 288.1815 287.3853 286.2646 285.1691 284.7904 284.0793 283.7375 283.5043 282.4205 280.0524 278.2378 277.9749 278.9676 280.0831 282.6824 284.6884 287.7907 289.1848 290.2648 290.6502 291.0183 290.9596 291.8398 292.6669 294.0197 294.0643 292.77 292.0064 292.2193 293.76 295.6209 296.8343 298.0085 298.6679 297.9981 296.6192 294.7991 293.2416 290.8703 288.1431 286.2328 284.9718 284.0127 283.2991 282.8163 282.0976 282.4188 282.3659 281.7876 281.37 281.2966 281.0829 282.4901 283.4016 284.0443 283.6192 283.0895 282.6588 281.3152 280.3305 279.5652 279.479 278.9078 279.1277 279.5973 279.8752 279.8002 279.8016 279.9376 279.7521 279.1859 279.6881 280.1144 280.2279 279.2954 278.2319 277.252 275.7485 274.4004 271.8306 271.1364 270.2504 269.4317 268.3533 268.1985 268.9353 270.0005 270.024 268.6646 267.9847 267.1356 267.2067 266.5741 265.0865 264.6466 264.7563 259.626 254.7846 252.5265 251.9415 252.2335 253.089 253.5485 253.6226 254.2937 255.4334 255.8777 254.6535 252.1511 249.8191 248.5706 247.8315 247.6763 247.6417 247.4307 247.4109 246.5833 244.7464 243.5104 244.3071 243.2387 240.9718 240.9849 241.1321 241.2912 246.3294 251.2042 251.5254 252.4522 254.1284 254.8105 255.7628 258.3059 263.0486 264.1413 265.1692 265.5267 265.9089 265.2872 263.6055 260.4962 255.7872 254.8467 256.976 261.3427 264.7297 264.6317 265.0832 267.7724 269.4196 271.2605 274.3891 275.3836 276.3618 277.4455 278.1544 276.7567 274.2402 273.357 271.1044 266.5714 265.4131 263.0534 261.6545 259.613 256.2664 253.3028 250.7098 248.9491 245.8304 246.4933 248.283 251.6352 254.4798 256.8337 259.3976 261.742 264.278 267.4489 268.3551 271.0155 272.9517 274.481 274.9045 273.4817 272.0216 271.2802 269.6992 265.2326 264.6962 264.8946 263.3919 261.6514 260.4001 258.6989 257.0591 256.039 254.8954 255.4147 254.2581 253.8736 255.5407 257.0449 258.2138 259.7005 261.6117 267.2299 268.0434 268.63 269.3 270.5983 271.6437 272.3407 273.179 274.2918 276.771 277.96 279.347 280.3723 281.3735 282.3322 282.9611 283.0251 282.1768 278.5001 277.1501 274.341 272.9807 272.4213 271.3381 -9999 +-9999 -9999 326.2135 325.8832 326.0029 326.6877 328.9751 333.4501 334.6302 334.6851 335.0041 333.3391 332.6211 331.2836 328.2184 328.9177 333.5699 334.2826 334.3609 334.8928 334.9778 334.2423 333.3555 335.3664 337.2441 337.9136 334.845 333.6766 337.5353 340.5587 340.4248 339.9149 339.4589 338.2928 335.8598 332.7943 330.1174 326.8228 329.0872 329.2809 329.3655 329.4228 329.0765 330.92 331.8245 332.9435 331.6161 329.0431 326.5825 324.3361 322.5314 318.9569 316.6208 314.3716 314.9391 316.5908 316.7266 317.3598 317.6744 316.9957 314.5751 311.8471 314.3177 313.4732 310.6522 306.4804 301.2248 298.5373 299.9286 303.028 303.6988 303.8043 303.0962 300.8207 299.7354 297.4193 292.7374 286.9087 286.6994 286.1654 286.228 285.9077 285.6228 285.8276 285.6848 285.6505 284.7576 284.4813 283.5831 285.5602 288.8406 286.6681 283.7159 283.084 283.2511 282.3885 282.4911 282.7265 282.5446 282.2556 282.4616 282.7102 284.2016 287.9018 291.0171 292.653 294.4575 297.7158 298.8755 299.3596 300.3933 301.2623 302.4532 303.1033 302.2412 300.5628 303.5605 304.137 303.3516 307.2336 309.3833 310.4557 310.7911 311.5963 311.1659 310.9737 311.1209 310.666 310.4499 310.381 310.4789 307.2581 305.7122 304.8701 306.6614 309.2216 310.7868 311.8823 312.4088 312.3079 306.3591 306.3563 306.3714 305.3443 303.4977 301.863 298.2478 295.8341 294.0792 292.4739 291.2954 289.9752 289.3563 292.2629 291.7589 290.5919 288.1441 282.1411 278.9137 277.7769 280.0349 281.8322 282.4286 283.0911 285.1795 287.4935 289.5416 291.0176 293.4335 295.2778 297.2262 296.4807 297.1017 295.1234 292.5171 288.4836 287.0309 287.401 288.3321 293.0359 293.6884 293.5106 295.4069 296.5255 298.4214 300.8832 303.0106 304.4217 306.3958 306.4442 306.2301 306.4767 307.127 308.3103 308.829 309.6816 310.3434 311.7305 312.7026 313.7733 314.8542 316.1961 317.675 320.0252 321.6693 321.814 322.0493 319.9125 318.0355 315.6635 313.6079 312.2213 311.3594 310.6821 310.6599 310.4477 309.7515 309.6199 309.2532 307.5106 305.4614 303.334 301.6355 303.2441 306.8051 307.7363 309.216 308.5952 308.2915 307.8956 307.1705 305.8108 304.3022 300.9119 299.0013 297.0665 292.1525 289.5054 288.7927 288.9908 289.5957 290.5901 291.722 293.5706 295.557 297.1696 298.4273 298.1729 297.4054 298.2364 299.3677 299.4545 301.7987 302.6375 303.8505 304.3632 304.965 304.8758 305.3888 305.8868 305.5909 301.4378 301.3014 301.0714 300.2267 298.9142 297.4697 295.7321 293.877 292.4671 289.6511 288.7715 288.1815 287.3853 286.2646 285.1691 284.7904 284.0793 283.7375 283.5043 282.4205 280.0524 278.2378 277.9749 278.9676 280.0831 282.6824 284.6884 287.7907 289.1848 290.2648 290.6502 291.0183 290.9596 292.1588 293.1279 294.3173 294.4942 293.5083 292.585 291.774 292.7032 294.909 295.9273 296.8403 297.8783 296.3919 294.6751 292.5753 291.1119 289.2365 286.2374 283.9402 282.9483 282.5127 281.0019 280.4583 280.0088 280.1151 280.2 279.5373 279.243 279.0492 279.1598 280.7145 281.7691 282.368 282.2356 281.7515 281.6956 281.7126 281.6821 281.5014 281.57 280.8111 280.2405 280.4284 281.1775 281.0778 280.9844 281.0818 280.7876 279.9895 280.0441 280.1902 279.439 279.3595 278.5125 277.7451 276.5845 275.1985 273.1046 271.969 271.3768 269.8633 268.7899 268.1343 268.4638 269.1753 269.1285 268.1432 267.4189 265.8019 265.1077 265.1501 264.9728 264.6205 264.7249 259.848 254.0772 251.3599 250.0706 250.0089 250.6306 251.4672 251.7573 252.3396 252.3791 252.8368 251.9025 249.8325 248.1927 247.0782 246.6636 246.7698 246.8441 247.0208 247.4878 246.5587 244.259 243.8115 244.5808 241.0475 241.5115 244.3477 244.3589 247.3349 252.8106 256.0543 257.8727 258.6084 259.0334 259.6978 260.5109 261.7453 264.2262 264.6526 264.6742 265.0845 264.9568 264.1717 262.455 259.0775 254.5707 254.1623 256.7029 259.2528 261.2859 263.9098 264.7496 264.9013 265.0295 270.3745 272.7854 273.6737 275.1773 276.7018 278.2375 277.9448 276.2888 274.1772 272.4761 267.9425 266.2771 265.331 264.9523 262.6334 259.0736 254.9879 250.1976 248.0632 245.8895 246.4355 247.9564 250.1956 252.9655 256.141 259.0397 261.3499 263.1951 265.3546 267.9895 271.0974 272.3621 273.8472 273.5653 271.7559 269.923 268.8524 265.6302 264.3947 262.6054 262.1307 260.8369 258.5076 256.4114 255.3357 254.6811 253.7764 252.9791 256.1848 259.9623 261.7022 262.196 262.1916 261.7792 258.9382 258.4458 263.1452 264.551 264.966 266.3289 268.7746 269.3522 269.4745 270.6823 272.3097 276.2227 276.844 278.5168 279.4437 280.1709 281.0567 282.8354 283.4112 282.8257 279.0237 276.8126 275.7238 274.7484 273.8313 273.4504 -9999 +-9999 -9999 327.1078 326.9718 327.2896 328.766 330.2998 333.3452 333.1255 331.9198 331.9425 331.1341 330.0164 328.7977 325.9168 327.1369 330.6923 330.806 331.2567 331.589 331.3555 330.989 331.0311 334.0478 336.1629 337.8262 336.5342 334.3367 337.1008 340.0473 341.3691 341.3318 340.5169 339.3622 338.1508 335.3713 333.5573 331.4297 332.9368 333.9094 333.3011 333.1197 332.8125 332.9464 333.1512 332.7581 330.6945 327.9074 325.4957 323.3289 320.6895 317.1345 313.744 312.3458 312.0309 313.7737 314.7156 315.9591 316.3018 316.2404 314.3801 310.4335 313.3998 313.3166 312.2454 309.4678 303.4344 297.566 297.2259 299.1917 301.1745 301.8747 301.3227 298.6007 293.8912 291.5121 289.1645 287.589 287.7469 289.5374 291.5093 288.7646 287.4655 288.0462 287.8674 287.2093 285.377 284.338 284.1673 282.9772 283.9945 283.8459 282.946 281.7436 282.333 283.0764 284.269 286.1082 282.2841 280.8913 282.1898 282.1417 282.1778 284.3022 287.6371 289.5067 290.7848 295.0019 296.0364 296.764 297.8838 299.9339 301.4619 301.0508 299.1794 299.8656 300.7536 301.2543 302.5242 305.8402 308.2697 309.265 310.3674 310.6033 311.2025 310.5852 310.1403 309.8049 309.8358 309.0024 307.457 308.1735 304.5827 302.4958 304.0465 306.3226 308.8662 310.317 311.1184 311.5879 310.3861 306.1191 306.4437 306.0789 304.7767 303.0034 302.1292 301.4059 299.7908 298.3866 296.9629 296.1499 295.4378 296.4153 295.0638 292.9044 289.1132 282.4648 279.261 277.5693 277.719 280.5601 282.003 284.2483 287.8082 290.3576 291.4667 292.128 293.5748 294.5227 295.9476 295.2694 297.4218 295.5669 290.6408 287.0248 286.6769 287.3291 289.7697 294.5617 295.5666 295.5695 296.0465 298.4777 299.2334 300.9005 303.0821 305.1549 307.1034 307.8657 308.2705 308.4306 308.7515 309.222 309.46 309.5859 308.9329 309.6388 310.5232 311.9468 313.4991 315.0524 316.5756 318.5559 320.1508 320.8502 321.7176 320.729 318.6958 315.9642 313.6415 312.226 310.8529 309.4669 309.3168 308.4088 308.2378 307.524 307.5222 306.1958 303.5618 301.6114 300.4882 301.3753 304.776 306.5895 307.6747 306.8181 306.9164 307.8956 307.1705 305.8108 304.3022 300.9119 299.0013 297.0665 292.1525 289.5054 288.7927 288.9908 289.5957 290.5901 292.4184 293.5706 295.557 297.1696 298.4273 298.1729 297.4054 298.2364 299.3677 299.4545 301.7987 302.6375 303.8505 304.3632 304.965 304.8758 305.3888 305.8868 305.5909 302.2665 302.4615 302.2404 301.5702 300.2256 298.4716 296.516 293.8182 290.6554 287.4305 287.2781 287.1136 286.8571 286.0122 284.7441 284.0266 283.0359 282.838 281.8832 281.7746 280.106 277.383 276.7702 278.7341 280.0834 282.6709 285.3737 289.0811 291.1649 292.7352 293.1617 293.206 292.9041 293.0111 293.7057 294.7626 295.3818 294.2731 293.1943 291.8331 291.8441 293.2007 294.5664 295.9556 296.7877 295.6584 293.6218 291.1387 289.1413 287.8469 285.0673 282.7002 281.1082 280.2414 277.9943 277.8032 277.4111 277.0985 277.5639 277.4402 277.134 276.8048 277.0822 279.3599 279.9308 280.493 280.4334 280.4496 280.4606 280.3146 280.6329 281.0742 281.9582 281.7043 281.2439 281.4066 281.7656 281.2004 280.9728 280.9315 280.7889 279.9074 279.41 278.9835 278.595 278.3981 278.2217 278.2439 277.5099 276.7214 273.7907 272.1649 271.1898 269.3339 268.0259 267.7654 267.9997 268.5396 268.2327 265.351 265.2068 264.9664 265.0116 265.0067 264.7296 263.5482 261.8553 259.8445 256.2107 253.2584 251.0741 249.6487 249.302 249.6632 250.0591 249.9673 250.0083 249.251 248.5569 247.4187 246.4475 245.9381 245.606 245.4652 245.7556 246.4203 247.0813 245.7423 243.7365 243.3952 242.5697 240.9049 243.9766 244.3665 244.3184 254.3747 256.7744 260.4458 262.1643 262.1514 262.2395 262.0859 262.5074 263.2322 264.0395 263.5911 263.9431 264.0586 263.8543 262.8492 260.7992 255.6478 252.6492 254.8983 257.4717 259.5213 260.881 262.5439 264.8509 264.4253 264.1719 264.7736 271.2765 273.2338 275.0142 277.4247 279.7865 280.1749 278.4588 276.1555 274.2564 269.8892 268.4935 267.6479 266.9896 264.3052 260.5049 256.6088 252.2078 247.4006 245.8466 246.0258 247.6257 250.6498 252.9875 255.0674 256.4797 258.2079 260.1579 265.1817 267.6213 270.2167 271.9787 273.0303 272.6472 270.4288 267.9526 267.1185 262.9701 262.3004 261.4256 258.8786 258.6333 256.5416 253.9978 251.3418 252.8837 256.2324 261.8675 264.1533 265.28 265.4352 266.1959 267.869 268.1818 267.0881 264.7162 259.5867 260.268 261.3526 263.2422 264.3578 264.7253 264.8806 265.7513 269.2649 274.5985 276.6605 277.6725 278.7769 279.6676 281.2818 282.6174 283.6511 282.4822 279.8064 277.8923 276.7991 276.2022 275.6145 275.9304 -9999 +-9999 -9999 324.0676 323.9216 324.8385 327.1426 329.332 330.3514 329.9373 329.5074 329.2811 328.7267 327.4897 325.4611 322.6921 324.0219 326.5901 326.6057 327.4061 328.7439 326.9058 328.9114 332.0215 334.8135 337.7559 338.111 337.0985 335.7185 335.3338 337.3654 338.8873 339.2101 338.9448 339.1973 338.9951 337.4241 336.0313 335.2036 335.3098 334.6833 334.0809 334.3088 334.4725 334.3961 332.9539 331.5711 329.2472 327.2482 324.7317 323.0253 318.8417 316.2404 312.5989 310.3497 310.3633 311.892 314.0616 313.9722 314.2573 314.3663 312.9143 309.7722 311.5899 312.0926 312.0757 310.6848 307.621 303.2148 299.4197 296.1269 297.1746 299.3293 299.2253 296.4662 292.532 287.2408 288.0986 290.1112 292.0693 294.5012 299.8765 299.003 296.0203 293.822 293.1471 291.6007 287.4182 285.1841 284.025 283.7352 283.8375 282.7847 283.4873 283.4885 283.5576 285.6651 289.3264 290.4731 282.2055 282.0034 281.6022 281.9037 281.8455 281.7034 282.9105 285.7985 287.6241 291.3322 293.7233 295.5321 297.5043 299.0519 300.2541 299.3658 295.9937 294.6931 298.595 299.021 302.6918 307.8275 308.3759 308.4385 310.1797 310.8591 311.2588 311.2936 311.0946 310.5307 310.0041 307.9036 309.4511 306.877 302.4502 300.026 301.1898 304.0999 306.8877 308.6694 310.1317 310.765 310.5724 308.9666 306.2788 305.455 304.9769 303.985 302.5697 303.1176 303.815 303.0612 301.2559 299.4676 298.2747 297.769 296.0225 291.9279 285.9624 282.9392 280.262 276.5272 276.2073 279.4192 281.747 284.3795 287.7761 289.7459 290.3166 291.0815 292.8929 294.2156 294.4874 293.7144 295.6666 294.4894 288.2443 286.4883 285.5903 288.1665 291.1714 295.5425 297.3151 297.6873 297.649 298.556 300.758 302.4274 303.7707 304.7094 307.0326 307.8101 308.4175 308.8152 309.4021 308.7213 308.1166 306.9665 306.5721 307.7226 310.5232 311.9468 313.4991 315.0524 316.5756 318.5559 320.1508 320.8502 321.7176 320.729 318.6958 315.9642 313.6415 312.226 310.8529 309.4669 309.3168 308.4088 308.2378 307.524 307.5222 306.1958 303.5618 301.6114 300.4882 301.3753 304.776 306.5895 307.6747 306.8181 306.9164 307.4034 307.3501 306.6278 305.211 302.1827 300.4538 298.0251 294.1527 289.882 288.5625 288.3705 289.1891 290.0359 292.0045 293.8393 295.3225 297.1732 297.3662 297.0388 296.275 296.8662 298.3414 301.4528 302.1935 302.7965 303.4862 303.7635 304.5356 305.1691 306.3711 307.3239 306.7718 304.012 304.0879 303.6356 303.2127 302.6781 301.0892 298.3378 294.7537 291.115 286.7176 286.0203 285.2484 284.8408 284.9559 284.2445 283.6203 282.3458 281.6049 280.2849 280.4031 278.3326 277.1108 278.196 279.3498 281.201 282.6914 284.7325 289.083 291.9486 292.7443 293.7502 294.3174 294.3995 294.5353 295.0211 295.4168 294.696 293.8962 293.1819 291.9633 291.086 291.8201 293.9012 294.6103 295.7645 294.9593 293.0451 291.0123 288.2191 287.3797 285.4374 283.4903 281.7758 280.0778 277.3775 276.1142 275.1037 274.3531 274.0683 274.2607 274.0976 274.322 275.5406 277.7606 278.2488 278.8993 279.261 279.3237 279.4772 279.338 279.6574 280.1317 280.9408 281.1114 280.8654 280.5167 280.6697 280.468 280.3094 280.288 279.7513 278.7558 278.4251 277.64 277.4779 277.399 276.939 276.7329 276.8545 275.8555 272.4679 271.3072 269.412 268.475 267.0385 266.2133 265.8952 266.2495 266.6276 265.0466 265.0443 264.9453 264.719 264.3933 263.416 262.1429 260.3258 258.8263 256.3761 254.1412 252.3607 251.0071 248.246 247.0219 246.955 246.5159 246.452 246.2406 245.8329 245.4594 245.1369 244.8913 244.7963 244.8875 244.9193 245.0616 246.1879 244.5664 243.4089 243.3941 240.8745 243.0723 243.979 244.5406 244.9312 256.0081 259.8232 261.0816 262.6416 262.7341 262.6387 262.867 263.4189 263.8549 262.6998 262.0402 262.3792 262.8151 262.6503 261.6225 259.297 254.1304 251.3145 255.195 257.6263 259.4928 261.4206 263.0603 265.0966 266.6781 263.8078 264.2838 264.4782 271.9727 275.0951 277.9092 279.5555 279.6161 279.1133 277.7812 275.5357 271.84 270.2685 269.3501 267.752 264.9732 260.6415 256.7437 252.3747 247.7238 245.7651 245.9804 247.6911 249.3634 251.0924 252.937 256.0294 259.5945 261.7667 266.8577 268.2488 270.1465 271.6725 272.4157 271.7495 269.2453 266.6794 264.8153 261.4158 259.3848 259.1848 257.3275 255.4688 252.7706 250.8044 254.7946 259.0454 263.2845 264.919 266.7436 268.0236 269.0515 269.8784 271.6487 272.4098 271.5771 270.3349 265.5574 264.5165 264.9552 265.6551 266.083 268.3238 270.6837 271.3332 269.8595 273.1748 276.0835 277.2859 278.7191 279.8685 280.9019 282.064 283.2429 282.291 280.9464 279.4801 278.2449 278.1403 277.6929 278.3582 -9999 +-9999 -9999 318.8651 321.2089 324.3292 327.4043 327.9472 326.7695 326.3184 326.5312 327.5857 326.2759 323.7959 323.6422 322.4753 318.423 320.1661 323.584 327.4584 327.5394 324.859 328.6252 331.6471 335.2196 337.2819 337.2835 336.0784 334.8959 334.4329 335.3689 336.198 336.2462 336.9227 338.7454 339.6254 338.1741 336.8407 335.6309 335.0128 333.7591 333.3676 333.1932 333.6034 332.6701 331.6463 330.3492 328.5801 327.0068 325.1372 323.3498 321.2916 318.1352 316.2032 308.1621 306.4859 309.2084 311.0721 311.108 311.3849 311.7794 311.2158 308.986 309.3651 310.5265 310.7262 310.4945 309.3954 307.3204 304.0753 300.0175 295.92 295.9238 295.688 293.3958 288.915 288.0911 288.0526 288.6588 294.8188 298.017 304.5932 306.1116 303.3679 300.7519 300.0407 299.0082 293.6628 288.5161 287.2497 283.7234 283.5704 283.3034 283.9426 284.393 286.0075 288.1829 292.1918 293.6674 283.2384 282.4756 282.0843 281.8223 281.9261 281.5738 281.8443 283.5462 285.6953 291.3184 293.8249 295.4586 296.765 297.6973 298.9884 299.1527 295.2504 292.1389 295.6706 296.0803 296.4536 302.4936 307.0453 307.5339 309.9267 310.6892 311.3901 311.4174 311.4123 311.2713 311.2206 311.0399 308.5822 306.6699 303.2465 299.4623 299.6871 302.7722 304.9362 307.5077 309.2527 310.4296 310.4258 310.0564 307.4646 304.5302 302.719 301.5218 301.3762 302.2318 303.9359 305.0656 303.9148 302.5711 299.5767 297.4557 293.8276 288.2286 290.1611 288.5962 286.6 281.9678 275.6977 278.0589 279.6704 282.0613 284.9792 287.2146 288.9536 290.3557 292.8929 294.2156 294.4874 293.7144 295.6666 294.4894 288.2443 286.4883 285.5903 288.1665 291.1714 295.5425 297.3151 297.6873 297.649 298.556 300.758 302.4274 303.7707 304.7094 307.0326 307.8101 308.4175 308.8152 309.4021 308.7213 308.1166 306.9665 306.5721 307.7226 309.2503 310.6538 312.2112 313.6522 315.0963 316.5845 318.6782 319.7978 321.0665 320.9886 319.1502 316.808 314.7818 312.8558 310.6131 309.2825 307.4975 305.5661 305.9901 305.2932 305.1096 303.2065 301.2966 299.273 298.235 299.6056 303.1 304.6814 305.506 305.4528 305.7686 306.616 307.0476 306.6716 305.4992 302.8258 300.748 298.0656 294.8271 292.4265 289.6422 288.2404 287.9775 289.1344 291.9948 293.8395 294.7859 295.22 295.437 295.4895 296.3173 297.3551 298.1409 300.2576 300.5343 301.1577 302.0196 302.7361 303.7224 304.6419 305.8949 307.5108 308.3784 307.4888 305.9665 305.0276 304.9716 304.954 302.588 299.4166 295.7516 291.9366 287.7943 286.1297 284.8039 283.5503 283.3058 282.9941 282.2958 282.0417 280.2992 277.9665 277.8163 276.6091 276.0509 278.5138 280.178 281.4048 283.6855 285.5045 287.9937 289.3946 291.0735 292.5499 293.5855 294.4379 295.3829 295.7705 295.7043 293.4812 292.7834 292.7603 292.0233 290.9466 290.9546 292.4792 293.3381 294.3296 293.9869 292.5186 290.873 288.9332 287.3392 285.341 284.2055 282.9799 281.166 277.987 276.5485 275.1595 274.3586 273.1363 272.1369 271.6826 273.1155 274.1205 276.3984 277.1238 277.7284 277.9429 278.1506 278.337 277.8825 278.2444 278.9232 279.992 280.1044 279.7177 279.1973 279.2477 279.7836 279.5203 279.4778 278.8872 277.3076 276.9338 276.4279 276.6487 276.0522 275.5179 275.2703 275.1283 274.2746 272.0262 269.8197 268.5664 267.106 266.1819 265.3197 264.1116 264.6385 264.8508 264.8076 263.9251 263.4133 262.9046 262.4871 262.4961 260.2518 258.0874 256.9962 253.9133 252.2281 250.6023 248.2983 246.641 245.5316 244.9722 244.9436 244.6646 244.3146 244.6083 244.432 244.0961 244.0909 244.2724 244.3398 244.3409 244.6397 245.1147 243.7841 243.3089 244.0342 240.8549 243.9002 244.1025 244.5729 244.579 252.9185 256.4407 258.8136 259.6698 259.5455 260.4368 261.2402 261.8009 261.8356 260.9777 260.7724 261.2731 261.6073 261.0573 260.4487 258.4038 254.0795 249.9073 254.6287 257.7926 259.8804 262.351 264.3794 266.0905 267.585 268.5734 266.321 263.2616 263.6757 268.0964 275.5508 276.0222 277.3248 278.5216 278.0806 276.2508 272.651 270.5793 268.885 266.6393 263.356 259.8528 255.8964 252.1672 248.3986 245.6104 245.6273 247.127 248.5828 248.9625 250.1492 255.5864 260.5152 263.4737 269.0809 270.6868 271.3526 271.6952 271.0142 269.4648 266.9451 265.0918 263.0488 259.9715 257.0513 255.3881 254.0024 251.6864 249.463 254.1916 258.7085 261.7547 266.5974 268.3645 269.5341 270.6089 271.6133 272.579 273.367 274.4462 274.3209 272.8605 272.0919 270.4957 269.3438 271.1597 272.3138 274.5063 275.8197 275.2051 274.287 275.405 276.6993 277.488 278.7858 279.9241 281.4942 282.1859 283.2799 283.6129 281.8286 280.4804 279.513 279.7732 280.134 281.5305 -9999 +-9999 -9999 321.3191 323.7112 325.3841 326.7397 326.7059 322.4729 323.6997 325.897 326.4327 325.5284 321.9963 318.9129 318.7917 314.923 322.2435 324.3691 325.5747 324.3253 323.795 327.4819 330.2736 333.5361 335.3707 335.4696 334.2799 332.9918 332.6647 333.5726 333.1941 333.8402 336.7223 338.164 339.0819 337.7569 336.5178 333.5943 330.8033 330.2982 330.3551 330.6899 330.9738 330.6568 329.9203 328.5051 327.4486 326.2492 325.0206 324.0305 323.035 321.5 318.3062 315.1978 312.0919 306.3537 304.7928 307.1487 307.5217 308.7402 308.6189 306.3049 308.3065 308.7935 309.0293 309.2556 309.4267 308.7812 306.776 304.2154 301.3794 294.0136 292.3649 290.2361 288.011 288.1455 288.3849 289.9169 290.3439 299.4476 308.2432 310.2547 309.8814 308.1669 306.5028 306.6155 302.9363 297.0404 294.2436 286.7833 284.1695 284.0624 286.4617 287.3932 288.5983 290.657 294.8453 295.6328 287.4989 285.0847 286.236 282.5916 281.509 281.7549 281.1975 281.8578 284.8845 291.324 293.4942 294.8202 295.7588 296.796 298.1305 298.4692 296.5098 291.972 293.6526 293.5182 292.43 294.3182 298.2689 302.1721 305.3811 310.3882 310.4481 310.4505 311.2697 311.2562 311.1459 309.6132 306.9857 305.9847 302.8885 299.1014 298.0029 301.2977 303.5685 306.2019 308.238 310.4296 310.4258 310.0564 307.4646 304.5302 302.719 301.5218 301.3762 302.2318 303.9359 305.0656 303.9148 302.5711 299.5767 297.4557 293.8276 288.2286 290.1611 288.5962 286.6 281.9678 275.6977 278.0589 279.6704 282.0613 284.9792 287.2146 288.9536 290.3557 292.2566 294.0747 293.035 290.6902 292.0808 291.1791 285.4269 286.5168 287.2414 289.2125 292.267 297.4613 298.8702 299.1931 298.9318 298.8853 300.686 303.4151 305.2777 306.3142 307.653 307.7948 308.2264 309.3556 308.7337 307.8232 306.6362 304.6563 304.2369 305.8449 307.6725 308.7459 310.0934 311.6453 313.2841 314.8343 316.4064 318.4484 320.417 320.9046 319.7652 317.4806 315.1495 312.8821 310.3789 308.8827 307.1114 304.7164 302.0216 301.9477 302.1205 300.2741 298.9531 297.0258 296.971 298.4043 301.6246 302.6165 303.907 304.4967 305.2102 305.983 306.1792 306.0858 305.143 302.7324 301.2657 298.591 294.7466 293.9889 289.2566 287.9958 288.0718 288.6771 290.8087 292.6789 293.1854 293.5873 294.0367 294.1169 295.3533 296.2446 297.2597 299.2036 299.7192 300.7219 302.0702 302.9652 303.8867 304.4574 305.6655 307.2828 309.4019 309.0676 307.3581 305.8273 305.0684 304.1601 302.7463 298.9604 295.4802 292.674 289.2159 287.4939 285.7005 284.1396 282.917 282.0836 281.842 281.2881 280.795 276.7074 276.0496 274.7277 277.6647 280.7124 281.835 282.8495 283.8676 285.1899 287.2399 288.4924 289.7968 291.0651 292.6514 293.8332 294.8661 295.1611 294.9229 292.7652 291.9111 291.8875 291.6829 290.8997 290.7479 291.1023 292.3521 293.0589 293.6138 292.1469 290.2365 288.4056 287.0986 286.7536 286.705 285.7791 284.4613 281.6443 280.2833 278.3456 276.268 274.0077 271.7356 269.4002 269.7684 272.2402 274.7841 275.5305 276.059 276.7312 276.8572 277.0238 277.0843 277.4045 277.8949 279.0493 278.9664 278.6361 278.3265 278.3852 278.9709 278.701 278.533 277.8643 276.158 275.9418 275.0273 275.1674 275.0381 274.875 274.2025 273.4155 273.0508 270.5667 269.2657 267.6089 266.2666 265.2057 264.2969 263.5403 263.2505 263.1343 263.5446 262.4864 261.7878 260.9465 260.0605 259.1292 257.7156 256.0559 253.8163 250.4926 248.7525 247.3425 245.5618 245.493 245.2285 245.1039 245.9608 248.1042 244.3597 243.9811 243.7888 243.6376 243.7145 243.6965 243.8095 244.2841 244.4777 243.8925 243.6558 243.7323 241.0838 242.7777 244.1846 244.5757 244.564 244.9387 250.9882 253.267 254.8636 256.1043 258.1965 258.7345 258.9885 259.8889 260.7415 259.5803 259.7258 260.2201 259.9803 259.6553 258.9785 256.7855 252.4178 249.6374 253.8238 257.5273 259.9474 262.1792 264.2379 265.2863 265.852 265.9656 264.6163 262.7817 262.9171 263.2033 265.0267 273.5933 277.1021 277.9163 277.1619 275.8393 272.0782 269.8199 267.3359 265.1037 261.9807 258.7264 255.2892 251.7037 248.2448 245.3953 245.2599 246.9791 248.1114 248.762 251.0553 255.1495 259.4035 263.0299 269.2265 270.7584 271.0743 270.1629 268.9105 267.1556 265.2807 263.6728 261.8565 258.2259 255.0881 251.8973 249.7162 250.7915 254.8074 258.3607 261.7981 265.1219 270.5416 271.8777 273.1858 274.0991 274.7694 275.0055 275.2815 276.0682 276.3964 276.27 275.6901 274.2034 273.046 274.1494 275.2155 276.5692 277.9158 277.9221 277.1987 277.3437 277.9184 278.692 279.5077 280.551 282.0885 282.9851 283.6313 284.0107 282.7432 281.8894 280.9042 281.332 283.111 283.7087 -9999 +-9999 -9999 320.33 322.7234 323.4218 323.3275 323.1386 320.5631 323.354 323.814 323.6552 322.5715 319.4201 314.6576 312.2227 313.9473 319.0616 322.1597 322.7956 320.9011 323.888 327.1219 329.7164 332.9508 334.3577 333.0214 331.9451 330.4134 330.8795 330.5007 332.5781 334.4966 335.9631 337.2051 337.5534 338.3662 336.9734 335.1028 331.5349 327.9444 326.7775 327.6216 328.3016 328.4245 327.6358 326.1871 325.588 325.4454 323.972 323.0804 322.8857 322.1705 319.4007 317.3529 315.751 312.5199 308.7371 301.9347 302.5472 302.9274 304.3004 303.0921 306.0874 306.6507 306.5524 307.0394 307.468 307.4303 306.1371 304.9532 302.6199 298.2981 295.7304 290.3644 288.4384 288.6996 291.7541 293.3598 290.2415 296.3813 307.1551 311.5576 313.7246 313.4082 311.5022 311.5616 307.5623 303.8145 300.5336 296.383 288.4539 289.7584 292.4885 291.2694 291.2584 293.3206 296.5747 297.2449 291.1371 288.7322 287.8425 283.9873 281.4639 280.3434 281.3424 281.5312 283.3349 290.5832 292.4958 293.4449 294.725 296.796 298.1305 298.4692 296.5098 291.972 293.6526 293.5182 292.43 294.3182 298.2689 302.1721 305.3811 310.3882 310.4481 310.4505 311.2697 311.2562 311.1459 309.6132 306.9857 305.9847 302.8885 299.1014 298.0029 301.2977 303.5685 306.2019 308.238 309.898 309.8699 309.671 308.7015 302.8136 301.2677 301.0229 300.9543 300.8513 302.0282 304.1978 305.5215 304.4273 300.0085 297.9318 293.4172 292.7269 292.9601 291.9529 289.8067 287.0108 281.7646 276.3551 279.0313 280.6421 283.4447 285.764 287.6849 289.8926 292.2517 293.2476 290.0708 287.7809 286.7935 285.5766 286.1696 288.1716 289.3341 291.3536 293.8719 298.4107 299.9395 301.0414 300.6798 300.4438 301.7573 303.311 305.5928 307.4127 309.5375 309.5113 309.7088 308.8217 308.7003 307.2072 305.8017 303.6906 302.1737 304.1654 305.0548 306.3214 307.8253 309.4128 311.4847 313.1729 315.1429 317.5341 319.8793 320.3308 320.2682 318.2779 315.2905 312.2259 309.8937 308.3383 307.1848 305.592 302.7481 298.9399 297.9236 297.0818 295.8627 295.5243 295.1989 296.5307 299.9132 300.9207 302.2827 303.5591 304.2065 304.6714 304.6765 304.9709 304.9384 302.5424 300.8948 299.5033 298.0283 295.3207 290.3481 287.8333 287.7365 287.3493 290.1905 291.5895 292.3552 291.8774 293.179 293.604 294.3302 295.1458 297.3205 299.8604 301.2039 302.4691 303.6595 304.0862 304.3875 304.3376 304.9975 306.1592 308.7174 309.3534 307.7513 306.0363 304.2195 302.4487 300.618 297.4829 294.8842 291.0442 289.604 288.1475 286.6086 285.4951 284.0787 282.6864 281.1342 278.8799 278.8696 276.014 275.0854 274.1984 279.7481 281.4286 282.3425 282.8132 284.2589 284.6884 286.7473 288.435 290.0384 290.9746 292.3635 293.3101 293.9546 293.8224 293.3452 292.1553 291.0037 291.1086 291.3416 290.9337 290.9936 291.0152 291.6937 292.7511 292.8283 291.4856 289.9584 289.4243 289.1073 289.4342 289.9316 289.5554 289.0854 284.661 282.458 280.5732 279.0889 276.3434 273.9969 271.7587 269.5976 270.0135 272.3146 273.1944 274.4268 275.4088 275.2328 275.7043 276.3466 276.6529 277.1663 277.7066 277.5889 277.4694 277.4732 277.7381 278.0973 278.2105 278.0125 277.0104 275.4221 274.922 274.1044 273.6251 273.3054 272.4268 271.8828 271.679 271.5474 269.9198 268.5141 266.5813 265.0648 263.9006 263.1627 261.8979 260.2754 261.8059 261.0288 260.3102 259.4728 258.5908 256.9152 255.8142 254.2115 251.7767 249.5833 246.1594 246.2976 246.0454 245.6624 247.0514 250.0396 251.6227 254.6438 256.7779 247.8346 244.639 244.0015 243.5457 243.4515 243.4855 243.6418 243.5941 244.0873 243.4649 243.4401 243.5121 240.7918 243.5839 244.5147 244.568 244.5585 244.9949 247.7741 249.7449 251.4402 253.4522 255.7722 257.0227 257.5575 258.2643 258.708 258.0216 258.3853 258.3935 257.9241 257.5222 257.2171 255.217 251.2957 249.5944 253.8958 256.8187 259.2698 261.3069 262.4305 262.8242 262.6804 261.6812 261.901 268.1459 262.7079 262.4612 262.3245 262.3382 270.8631 276.7702 275.8527 274.5588 271.1083 269.2826 266.8742 264.6169 261.1339 257.8005 253.5465 249.7484 246.8953 245.2901 246.368 251.536 253.9657 254.2086 251.7053 255.1705 259.0087 261.8299 267.1717 269.0893 269.6798 268.5524 266.8862 264.9328 263.5219 261.5946 259.5359 256.2411 252.2186 249.648 251.8091 255.9755 258.2926 259.4564 261.7981 265.1219 270.5416 271.8777 273.1858 274.0991 274.7694 275.0055 275.2815 276.0682 276.3964 276.27 275.6901 274.2034 273.046 274.1494 275.2155 276.5692 277.9158 277.9221 276.9326 277.3437 277.9184 278.692 279.5077 280.551 282.0885 282.9851 283.6313 284.0107 282.7432 281.8894 280.9042 281.332 283.111 283.7087 -9999 +-9999 -9999 319.3472 321.104 319.6289 318.8636 318.3424 320.6621 322.2496 321.3774 317.3223 317.4665 313.9964 310.4952 309.7766 311.2741 321.4518 322.7032 321.2975 319.9299 324.6606 327.2852 329.6107 332.1623 332.7336 330.8164 328.992 327.9267 328.0244 329.0856 330.7069 332.7727 334.9886 336.5202 338.2909 338.2982 337.3135 334.968 332.2253 329.3383 324.2182 324.728 325.7021 325.9777 325.7034 324.5403 323.7796 324.1249 322.8071 321.8496 320.7595 320.6566 318.9392 317.756 316.6741 315.6734 313.1544 310.2215 308.5492 305.9822 299.9968 302.5352 302.9645 303.6869 303.6945 304.0256 304.8109 304.7487 304.0659 302.5811 301.1231 295.8533 291.8889 288.2382 288.7437 291.5766 295.3896 295.3907 290.4597 296.5582 307.2696 311.8448 314.8523 313.4082 311.5022 311.5616 307.5623 303.8145 300.5336 296.383 288.4539 289.7584 292.4885 291.2694 291.2584 293.3206 296.5747 297.2449 291.1371 288.7322 287.8425 283.9873 281.4639 280.3434 281.3424 281.5312 283.3349 290.5832 292.4958 293.4449 294.725 295.7422 296.7805 297.3048 295.9183 291.6473 291 291.3353 290.1446 293.5736 295.8694 298.1787 301.1151 300.8676 307.6792 309.9355 311.2529 311.2249 310.5882 306.3455 304.3576 305.1703 302.1169 298.5425 295.8684 299.3505 302.2473 304.7691 306.8043 308.089 308.1411 308.5782 308.1466 303.6419 301.5377 300.733 300.8356 300.2639 300.4144 302.5847 304.6444 304.9734 301.1047 299.191 296.914 295.4182 293.8232 291.5812 289.0461 285.7868 284.868 275.9742 277.7226 279.0797 281.329 283.7982 286.5 289.4195 292.1046 293.4896 290.0993 282.6773 284.0937 289.6736 293.4539 294.5917 292.5031 292.2231 294.4016 298.8926 300.8228 302.4003 302.8042 302.6146 302.3029 303.1724 305.7682 307.7538 310.5372 310.5958 310.2939 309.5818 308.8722 307.7988 306.5049 303.9571 301.1365 301.6218 302.5488 303.7959 305.7122 307.8336 309.8424 311.7988 313.6468 315.958 318.7548 319.5555 320.0759 318.2863 315.1732 312.0616 309.1044 307.6678 306.5241 306.0581 305.2097 300.9931 296.3623 294.7953 293.8269 293.2161 293.2993 293.8 298.625 300.3741 301.3914 302.3994 302.3331 302.2418 302.8748 303.9177 304.7511 303.1716 301.9571 300.6614 298.6112 295.7156 292.0575 288.7963 287.6937 287.3962 289.0551 289.6674 290.3797 291.9276 294.6254 295.7786 296.2577 296.9334 297.94 301.0778 302.1497 303.5676 304.5246 304.7371 304.3196 304.1361 304.5531 305.0028 307.6719 308.4633 307.6963 305.6791 303.7859 301.7014 299.0305 297.3721 295.11 291.4225 289.9089 288.1764 286.7569 285.4472 283.6607 281.7925 280.4235 278.3173 275.7914 275.3828 274.4821 275.337 278.2594 280.6468 282.0417 284.2825 285.5323 285.9331 287.3189 288.5282 289.6052 290.9694 291.9795 293.006 292.703 292.3826 291.4437 290.5083 290.3145 290.8097 291.2433 291.2854 290.5315 290.0835 291.0851 292.154 292.5361 291.7753 291.4067 291.3186 291.34 292.1325 292.7101 293.0224 292.0022 287.7048 284.6079 282.0933 280.1685 278.2663 275.6472 272.3414 270.8178 268.7646 269.8981 271.1148 272.613 273.527 273.9527 275.2408 275.7263 275.6284 276.0154 276.6105 276.4263 276.2691 276.7931 277.3049 277.3869 277.8355 277.1955 276.5908 274.2386 273.4633 272.7495 271.739 271.6656 271.1511 269.9998 270.0606 270.4022 269.034 267.177 266.0322 264.4268 263.2686 261.3235 259.0836 259.1614 259.9912 258.9731 258.4908 257.5573 256.6487 255.1372 252.8151 248.6013 246.9654 247.0045 246.5425 246.2582 246.2772 248.6135 251.985 254.3349 256.8968 258.7389 260.4301 255.39 250.9484 246.433 244.1494 243.6277 243.3376 243.25 243.4274 243.5969 243.165 243.588 242.938 242.9369 244.4109 245.0168 244.5312 244.7794 245.3185 246.9639 248.9867 250.5728 252.0415 253.2124 254.8989 256.5459 257.0247 257.097 256.6278 256.6875 256.6459 256.3449 256.3023 255.9144 254.4382 250.4934 248.6479 253.4563 256.2003 258.127 259.8235 260.026 259.4563 259.4596 259.7072 262.7176 268.8215 271.989 263.7595 261.5862 262.3382 270.8631 276.7702 275.8527 274.5588 271.1083 269.2826 266.8742 264.6169 261.1339 257.8005 253.5465 249.7484 246.8953 245.2901 246.368 251.536 253.9657 254.2086 251.7053 255.1705 259.0087 261.8299 267.1717 269.0893 269.6798 268.5524 266.8862 264.9328 263.5219 261.5946 259.5359 256.2411 252.2186 249.648 251.8091 255.9755 258.2926 259.4564 262.5764 266.4536 272.6639 274.1466 274.8632 275.7715 276.3672 276.8749 277.1706 277.102 277.509 278.1582 277.4772 276.4114 275.87 277.2037 278.086 279.166 280.1753 280.446 278.8158 279.3041 279.9201 280.0842 280.9179 282.1473 283.1374 283.9177 284.1471 284.2091 283.8784 283.4754 283.2826 284.3337 285.5852 285.1019 -9999 +-9999 -9999 315.9861 318.0233 315.9002 313.2466 311.8615 319.5592 320.6076 318.9705 315.6445 310.6105 308.1481 306.1997 310.6877 316.9703 322.6004 322.904 317.9875 321.4803 323.6504 325.7105 327.8259 329.7704 329.2617 328.2627 324.6603 325.0354 327.1452 331.3354 333.4395 334.5419 335.4569 336.8994 336.8757 338.1136 337.1985 335.5653 333.7151 329.8497 324.0446 322.2626 322.8812 324.9014 324.3101 323.2467 323.3678 323.1704 323.0545 320.4234 318.2838 318.0096 317.4126 316.3193 315.2711 315.6734 313.1544 310.2215 308.5492 305.9822 299.9968 302.5352 302.9645 303.6869 303.6945 304.0256 304.8109 304.7487 304.0659 302.5811 298.8328 295.8533 291.8889 288.2382 288.7437 291.5766 295.3896 295.3907 290.4597 296.5582 307.2696 311.8448 314.8523 316.8234 315.4315 314.5081 312.9792 309.6573 306.4575 304.193 302.8254 299.134 296.6336 296.9123 296.5051 295.5638 298.1585 298.4095 293.4818 290.8059 287.8964 284.9985 282.433 281.3412 280.1801 281.3412 282.0392 288.08 290.3734 292.0557 293.2505 294.1351 295.6363 296.1112 294.5005 290.6943 287.8376 288.4853 292.8658 295.6052 296.1528 294.9038 294.3537 297.2903 299.5712 307.0864 310.3201 310.5527 308.1166 303.1562 302.3925 302.6962 300.516 297.0776 293.8266 297.8914 300.7495 302.9572 304.6582 305.4857 306.3964 307.3091 307.4272 304.0012 303.0891 300.131 298.4021 297.2715 298.7628 301.6769 303.5123 304.0496 302.0284 300.2303 297.9641 296.3888 293.6095 292.2117 290.3845 289.7488 289.4871 274.9529 276.1975 276.7581 279.9472 282.6418 286.1725 289.3138 291.838 293.2372 288.2593 282.1799 286.7021 292.2028 297.063 299.5602 298.1018 294.9435 295.1492 298.894 301.5544 303.4345 304.4107 304.5741 304.1252 304.1947 305.9482 307.9863 310.5456 310.7921 310.6407 309.6373 308.8093 307.4932 306.379 303.6794 300.4584 299.6863 300.4327 302.2911 304.7766 306.3782 308.5302 310.3768 312.2814 314.0826 317.3098 318.9118 319.4218 317.234 314.3922 310.5428 308.3518 306.733 305.2307 305.0931 305.4208 301.8089 294.9762 292.0309 292.2556 291.408 291.1137 292.1206 297.2895 298.572 299.4474 300.1936 300.3553 300.7588 301.622 302.9053 304.3627 303.1459 301.578 300.1881 298.1913 296.0034 292.8237 290.9048 288.4007 287.0882 287.0861 287.7742 289.2359 291.6942 294.6849 296.1933 296.959 297.4733 298.3922 301.0095 302.0926 303.5529 304.5765 304.3954 303.281 303.2153 303.8693 304.3801 306.1824 307.6918 307.6065 305.8773 304.2849 302.835 301.7359 300.0452 297.5019 293.8918 292.0945 291.0388 289.0579 287.2996 285.0703 281.2329 279.7587 278.3949 274.7531 274.1167 272.9698 275.2271 278.1755 280.5127 282.5468 285.0654 286.691 287.4217 287.9137 287.8218 287.9 289.7159 290.2638 290.8473 290.5635 289.8243 289.5714 289.2838 289.7256 290.5802 291.458 291.6185 290.9061 289.7652 290.1688 291.3103 292.5567 292.549 292.781 293.7906 293.9773 294.2606 294.6633 294.4964 293.7687 289.9804 286.8769 284.2138 281.9605 280.0148 277.9585 274.9384 272.2215 269.7434 267.9836 269.0019 271.2077 272.2721 273.4375 274.2657 274.6783 274.6791 274.8295 275.4614 275.3798 275.7875 276.4068 276.9165 277.2457 277.0021 276.7077 275.9631 273.0978 272.1138 271.4703 270.5219 269.9588 269.2328 268.7118 268.4219 268.9095 267.7516 266.5032 264.5482 263.6613 262.2957 260.7227 256.465 256.5916 257.3578 257.7811 256.8313 255.4052 254.5829 252.5139 247.2989 247.767 247.6208 247.8088 249.8931 250.6951 253.0526 256.3786 257.4845 258.4778 261.7145 263.6554 265.0899 261.6003 255.7016 251.5943 248.8396 246.4779 245.0976 243.6479 243.0649 243.2774 243.5001 243.7473 242.938 242.9369 244.4109 245.0168 244.5312 244.7794 245.3185 246.9639 248.9867 250.5728 252.0415 253.2124 254.8989 256.5459 257.0247 257.097 256.6278 256.6875 256.6459 256.3449 256.3023 255.9144 254.4382 250.4934 248.6479 253.4563 256.2003 258.127 259.8235 260.026 259.4563 259.4596 259.7072 262.7176 268.8215 271.989 263.7595 261.5862 261.2832 261.2067 268.895 274.5388 272.8546 269.343 267.8443 265.9996 263.4855 259.8428 256.5393 252.335 248.2105 246.053 245.276 246.5871 253.0986 255.2355 257.2975 257.8683 259.4013 261.3437 262.9509 266.7467 268.7567 268.2278 266.4826 265.0772 263.0853 261.9646 260.1277 258.1441 253.0952 248.4929 250.2047 254.4934 258.4311 260.9464 262.6879 263.6245 265.2543 270.678 272.8001 274.9373 276.8092 277.0379 277.5748 278.035 278.2094 278.3124 279.2844 278.5956 278.004 278.3177 279.6753 281.188 282.2314 282.4831 282.2184 280.1566 280.5678 280.9426 281.4628 281.8338 282.7389 283.6625 284.3869 284.8424 284.3892 285.1015 285.7976 285.9168 286.2948 286.2157 284.4318 -9999 +-9999 -9999 311.9409 314.4113 312.0181 308.412 313.6558 317.2062 317.5352 315.527 312.0043 305.9547 303.3337 310.2276 315.2736 318.4873 321.3977 320.9054 316.4992 319.6557 320.8463 322.6687 324.5496 325.9628 326.5143 324.876 322.1671 326.0129 330.5977 331.3354 333.4395 334.5419 335.4569 336.8994 336.8757 338.1136 337.1985 335.5653 333.7151 329.8497 324.0446 322.2626 322.8812 324.9014 324.3101 323.2467 323.3678 323.1704 323.0545 320.4234 318.2838 318.0096 317.4126 316.3193 315.2711 315.5635 314.0457 312.8807 312.5704 311.062 307.7641 296.98 296.725 299.384 301.6317 300.9854 301.9178 301.9561 300.632 298.8986 294.4432 290.5428 289.4864 289.3072 289.3403 293.5626 296.4201 292.6511 293.2708 303.1213 307.323 311.7002 315.314 317.8869 318.1967 317.9798 317.7993 315.5241 312.4329 308.0869 307.5182 303.997 300.0837 302.1448 300.9648 298.4762 299.8048 299.9549 295.137 292.4796 292.641 287.3062 284.4345 281.3111 281.2794 280.7816 281.6215 284.1624 287.224 290.0099 291.6095 292.6338 293.5778 293.865 292.3255 288.619 288.3606 291.6804 294.069 293.5687 292.8331 292.8833 294.203 294.5209 294.702 302.1408 303.3608 304.2052 303.0734 300.5 300.8558 300.7469 298.8118 295.1813 291.7901 295.431 298.9905 301.1472 302.2845 303.282 305.2499 306.145 306.3172 303.2359 301.4435 302.1109 297.1317 296.4586 298.0687 300.5508 302.3283 303.0871 302.854 301.0839 299.4805 298.2081 296.7414 294.9758 293.2857 292.2872 291.412 279.7485 274.5042 275.2239 277.5879 281.8757 286.0676 289.19 291.2206 291.5019 284.0106 281.7308 288.6764 293.9963 298.7231 301.6055 300.4566 297.2853 296.2739 299.3873 301.6842 303.7169 305.0462 305.8615 306.1709 306.4444 306.9833 307.9213 310.3104 310.783 310.1304 308.88 308.1303 307.205 306.2243 303.609 300.2317 298.5554 299.1888 301.2031 303.5196 305.5545 307.3204 309.0489 310.8706 312.6895 316.2738 317.9276 318.9189 317.7147 313.4289 309.3732 307.0049 305.5486 304.1755 304.3103 305.7477 304.7657 300.437 295.0363 291.0452 290.8375 290.7933 290.7212 294.9852 296.5826 297.5747 298.5166 298.588 299.1937 300.5451 302.048 303.8068 303.1032 301.4362 299.7322 298.2813 297.0764 295.8032 294.0844 292.092 290.0189 286.5858 286.8338 289.472 292.4771 293.8026 295.3377 296.0448 296.8221 297.4969 300.5051 301.4937 302.5567 303.1222 302.9254 301.9898 301.7498 302.7835 304.2129 305.6951 307.0951 307.8116 307.2703 305.6412 304.0479 302.6989 301.4202 299.3483 295.4012 294.2348 292.8326 291.1795 289.4246 286.6115 282.4456 279.1717 276.1524 274.7128 273.7552 272.4591 272.8951 275.5742 279.0905 281.8965 284.3078 285.8908 287.608 287.1325 286.4964 286.4681 288.0119 288.438 289.0804 289.1845 288.18 288.1654 288.3562 290.3195 291.2145 291.7722 292.2044 291.6156 290.2102 289.6237 290.5766 292.416 292.8321 293.9381 294.7498 294.7854 294.9702 295.3457 294.3097 292.9956 290.4505 288.0265 285.407 283.0259 281.3417 279.3946 277.4619 275.7675 272.0802 266.1703 268.3301 269.8954 270.9214 272.0068 272.659 273.2243 274.129 274.1916 274.6735 274.9103 275.0764 275.5145 275.8524 276.0605 276.0464 275.6757 274.9249 272.3098 271.1109 269.7693 268.7329 268.3099 267.7826 267.0539 267.0695 267.3055 267.0071 265.489 264.5482 263.6613 262.2957 260.7227 256.465 256.5916 257.3578 257.7811 256.8313 255.4052 254.5829 252.5139 247.2989 247.767 247.6208 247.8088 249.8931 250.6951 253.0526 256.3786 257.4845 258.4778 261.7145 263.6554 265.0899 261.6003 255.7016 251.5943 248.8396 246.4779 245.0976 243.6479 243.0649 243.2774 243.5001 243.7473 240.6696 244.3021 244.3396 244.5783 244.1126 244.2505 244.179 247.0205 247.9012 248.9327 250.7204 252.3494 253.4025 254.5085 255.012 255.4919 255.5565 255.3118 255.2254 255.1594 254.8683 254.2673 253.1296 249.9768 246.8026 251.5306 254.3035 256.0291 256.8669 256.1867 256.5207 257.6477 259.1597 262.1509 270.3643 273.8795 274.0622 264.4621 260.6555 260.116 260.247 267.011 271.5359 266.9735 265.8275 263.4867 261.2552 257.7069 254.7985 251.3758 247.6671 245.1338 245.0639 247.3096 251.4266 254.804 257.8385 260.0855 261.7637 263.0089 264.752 267.5348 268.3786 266.6509 265.3134 263.3611 261.5266 260.2992 258.4261 256.3486 249.4711 249.043 251.9222 257.6222 261.1251 264.0488 265.4644 266.3117 267.4377 272.1557 274.3299 276.249 277.6887 278.9003 279.63 279.9036 279.9597 279.9128 280.2328 279.8705 279.0985 279.9178 281.0606 282.5428 282.8018 282.541 281.7787 280.6143 280.5042 281.0036 281.6071 282.2863 282.6676 283.8368 284.2066 285.0873 284.4885 285.6643 286.325 286.5892 286.671 286.0986 283.9395 -9999 +-9999 -9999 311.9409 314.4113 312.0181 308.412 313.6558 317.2062 317.5352 315.527 312.0043 305.9547 303.3337 310.2276 315.2736 318.4873 321.3977 320.9054 316.4992 319.6557 320.8463 322.6687 324.5496 325.9628 326.5143 324.876 322.1671 326.0129 330.5977 334.2963 336.4955 336.8447 336.2272 334.8199 335.9965 336.9071 336.3825 334.5117 331.4857 328.4486 325.8976 319.7712 319.4491 321.6924 322.1205 320.8314 322.8487 323.0853 322.7094 321.271 319.3662 316.5128 314.8671 314.5761 313.6836 313.7654 312.8719 311.2239 310.2414 309.0497 307.0065 301.7696 296.4836 294.7561 296.5336 295.507 295.5865 294.8247 294.3802 293.273 290.04 289.8848 290.1093 291.9901 295.5365 297.1223 293.9821 292.0601 296.1407 303.9089 307.8846 311.8193 315.0301 317.3739 319.0661 320.5145 320.4289 319.042 312.9505 311.6848 311.1174 306.939 305.003 306.0125 304.3179 301.4611 301.2469 301.7112 296.3769 295.2982 292.98 291.7866 286.9466 283.5495 281.4499 281.2001 281.2239 282.61 285.6739 287.7191 289.5131 290.6156 291.7203 291.8661 290.508 286.7984 289.0391 291.6617 291.2961 289.8394 286.9854 288.2237 291.6651 292.5092 294.9111 298.2002 298.7978 298.9655 299.5091 300.0674 300.0981 300.1088 297.1398 293.2612 290.9037 294.5369 297.3384 299.1922 300.1522 302.5166 304.4321 305.2823 305.2382 302.6963 301.1305 299.2363 297.3129 295.8292 297.2428 299.301 300.8082 302.6362 303.4646 302.8008 301.3734 299.8759 298.3956 296.8452 294.9083 293.581 291.4811 282.6323 275.2278 274.7251 276.1909 279.8717 284.5374 287.6827 289.3488 288.6722 279.6959 283.2597 289.2459 294.793 295.0693 296.4124 298.3929 297.7735 297.5211 299.9083 301.6851 303.3731 304.6007 305.5271 306.5264 306.9651 307.2937 307.6652 309.4276 310.0341 309.154 307.1708 306.5323 305.9991 305.4155 304.2315 301.7565 297.7341 299.1223 300.9917 302.6434 304.3752 306.0797 307.6238 309.5936 311.6268 315.704 317.3828 318.4226 317.8859 312.6027 308.1133 305.4117 303.4674 302.1006 303.2196 304.8314 304.0623 301.8505 299.5802 292.1506 290.863 290.5196 291.5611 292.4449 294.6255 295.5585 296.2976 296.4201 297.5318 299.4738 301.3718 302.3524 302.982 301.9099 300.7921 300.0673 298.2954 297.1924 297.1198 296.9559 294.6417 286.7526 286.2318 288.2199 291.1809 292.5853 293.7796 294.537 296.0491 297.3621 299.0819 300.0698 301.0255 301.5905 300.8539 300.6047 302.3 303.3116 303.9551 305.4414 306.6835 308.0828 308.7856 307.1884 304.8075 303.0984 301.9825 300.7907 296.8406 294.9747 293.691 291.9115 290.2896 288.1796 284.8661 281.1943 279.0851 275.4942 273.5852 272.1898 272.5627 274.7693 278.3211 280.8851 282.8653 283.9229 286.8486 286.4085 285.4396 285.5024 286.3273 286.9531 287.0691 286.509 286.2552 286.5709 288.2016 290.1498 291.4569 291.8206 292.5023 291.6651 290.3249 289.1769 289.4773 291.6126 292.1886 293.426 293.4477 293.0231 293.4989 294.1102 293.0717 290.9909 288.8442 286.6696 284.8729 282.8009 281.3417 279.3946 277.4619 275.7675 272.0802 266.1703 268.3301 269.8954 270.9214 272.0068 272.659 273.2243 274.129 274.1916 274.6735 274.9103 275.0764 275.5145 275.8524 276.0605 276.0464 275.6757 274.9249 272.3098 271.1109 269.7693 268.7329 268.3099 267.7826 267.0539 267.0695 267.3055 267.0071 265.489 264.3131 262.8081 261.7332 259.3006 255.9474 254.1754 254.9534 255.1789 254.0181 252.5107 249.0824 248.1748 250.63 251.0994 253.6179 254.7608 255.4076 253.0531 256.3592 259.7865 261.875 263.1302 264.9661 266.4834 267.9196 265.9448 260.6828 257.4184 254.5107 252.5821 250.2307 248.2033 245.3459 242.9258 243.6067 243.9686 242.3547 244.0642 243.5276 243.28 244.2584 244.2136 244.0715 244.4487 246.9599 247.5469 248.6102 250.3223 251.428 252.4234 253.2638 253.8073 254.0924 253.9443 253.6315 252.9257 252.6805 252.2088 251.2099 248.8962 246.4072 250.0038 252.2001 253.342 253.9718 255.1612 255.962 257.1826 259.2339 262.5922 271.1329 273.9026 274.7346 274.6737 264.6434 259.6969 259.2806 259.5763 265.6484 265.8228 262.8555 260.9912 259.144 255.6138 253.2045 249.3206 246.4721 244.2895 245.1376 247.702 251.1712 254.4559 257.6501 259.9381 261.9427 263.7722 265.2793 267.5824 267.0295 265.4374 263.9484 261.2564 259.4548 258.5672 256.2786 252.9258 248.7667 252.6186 256.4329 260.1371 264.1414 267.5683 269.1909 268.7249 269.9173 274.472 276.4751 278.2094 279.4156 280.8934 282.2502 282.3843 281.8755 281.3674 281.3242 281.1329 280.5681 280.4397 280.8103 281.2999 281.419 281.1443 280.9312 281.4089 281.3549 281.3862 281.5204 281.4316 281.9875 282.8395 283.7449 284.5262 285.2123 284.6165 285.3257 285.7379 285.7802 285.0913 283.1869 -9999 +-9999 -9999 311.0899 311.1237 307.0396 308.0325 311.6947 314.8137 314.6654 311.7536 307.4941 301.2789 307.7304 312.2496 314.1756 314.7494 315.7065 315.1265 314.5634 315.2255 316.1911 318.168 320.3499 321.7785 322.3244 319.9778 324.3999 327.8768 332.1961 336.7539 338.7216 337.6133 336.2057 333.8301 334.0395 335.1385 335.5903 335.2888 333.6452 329.7901 325.9413 324.2068 320.2521 317.3745 319.0325 318.9283 320.441 321.398 321.1302 320.2964 318.699 316.5895 312.999 312.7153 311.82 311.7904 312.1404 310.7705 308.0477 305.438 303.3996 297.9798 295.859 293.4726 293.0457 292.4765 291.9929 291.5911 290.6376 291.2559 290.2204 291.9907 295.5067 299.5648 301.6624 299.8524 293.5591 291.7553 295.7032 303.6225 307.324 311.1267 314.5832 317.0868 319.5067 321.029 321.8185 319.8782 316.0663 314.7351 312.7002 309.8574 309.8254 308.9267 307.4931 304.5504 303.3663 301.7127 298.0309 296.3361 293.3378 292.2663 287.3484 286.5011 282.6361 280.9247 280.8867 281.4727 282.6315 284.5231 287.0616 288.8929 289.7859 290.1676 288.4847 285.3356 288.592 289.6884 286.8557 287.7484 291.4948 293.1364 294.0005 295.0317 296.1852 298.8829 299.1205 299.4493 299.7275 299.7667 299.674 299.4202 294.7927 291.3106 290.3593 293.4004 295.4963 298.3977 300.2677 301.9161 303.6928 304.3485 304.1912 302.2873 300.5336 298.1823 296.1078 295.4483 296.7166 298.7586 300.9215 302.9623 303.2155 303.3517 302.0285 300.3944 298.2833 296.9453 294.991 292.9746 290.9655 281.0293 280.2724 274.7116 274.6618 275.5732 280.3897 284.9396 286.3927 284.4729 278.376 284.517 288.2118 290.8377 293.5406 295.3752 295.7895 296.6049 297.5534 299.1017 300.3658 301.9314 303.7139 305.019 305.9529 306.1548 305.9842 306.4827 308.0389 308.9468 308.8041 306.2493 305.26 304.8798 304.38 304.0339 302.2167 296.7161 297.6408 299.5097 300.9098 302.2635 304.0562 306.1652 308.2864 310.7891 315.0415 316.9219 317.6295 317.4179 311.9865 306.2033 302.2799 300.2769 299.4751 299.791 301.03 301.0271 300.0108 299.312 292.58 290.8016 287.496 286.6775 289.8693 291.8845 293.4558 293.5241 295.3645 296.6673 298.8 300.1328 301.3851 303.4066 302.8499 301.8438 301.2229 299.9463 298.8533 298.9808 297.7774 296.0875 288.7275 285.8528 286.4998 288.5489 291.3259 293.9438 294.7905 295.8254 295.8707 296.7762 297.6949 298.6431 298.9907 299.4841 301.6167 302.9563 303.4201 303.7169 304.9001 306.1104 307.4188 307.914 306.7375 304.3284 301.9214 300.773 300.2701 296.1606 293.756 292.7026 289.9999 289.0922 288.1989 286.6493 283.3856 281.0981 275.4298 273.4011 271.8473 272.0999 273.8782 277.569 279.6671 282.8653 283.9229 286.8486 286.4085 285.4396 285.5024 286.3273 286.9531 287.0691 286.509 286.2552 286.5709 288.2016 290.1498 291.4569 291.8206 292.5023 291.6651 290.3249 289.1769 290.5798 291.6126 292.1886 293.426 293.4477 293.0231 293.4989 294.1102 293.0717 290.9909 288.8442 286.6696 284.8729 282.8009 280.6919 278.8277 277.3996 275.9142 273.1 267.9312 264.8662 267.7278 269.3506 270.7047 271.4446 272.0636 272.8352 273.2243 273.2445 273.2205 273.7251 274.1602 274.6306 274.9776 275.1236 274.6947 273.8844 271.6452 269.9814 268.5096 267.1674 266.5349 266.4981 266.0722 265.2834 265.4911 265.0988 264.1194 263.3381 262.4066 260.8263 259.4637 257.3945 254.8978 253.1672 252.6736 250.887 249.5305 249.1892 250.2592 253.8501 256.2172 258.6447 260.5678 261.5958 259.7416 260.1664 261.2825 263.7729 265.8537 267.636 269.1164 270.2742 268.6057 264.8765 260.7877 259.3995 256.1188 252.6305 251.2312 249.4165 244.8025 243.9177 244.3922 241.0868 243.7243 243.1684 242.9657 243.5701 244.0697 243.9721 244.3275 246.8211 248.1887 249.1632 249.3536 249.9913 250.6488 251.4798 252.1709 252.8492 252.214 251.0851 250.3208 249.9007 249.9322 249.1184 247.5974 245.7156 249.2742 250.4377 251.8765 252.9602 254.5778 257.0315 258.8889 260.6499 262.9639 268.886 271.4535 273.2209 273.8856 273.7112 264.5875 258.7341 258.5933 258.7324 264.6634 262.089 259.3996 256.7666 254.3855 251.9185 247.867 245.6275 244.3546 244.6743 248.5983 252.263 254.7822 257.2878 259.4249 261.8912 263.9057 265.3951 267.4177 266.3318 264.5043 262.4349 259.4369 256.0903 253.7652 251.8741 247.6312 251.567 255.6445 259.7348 262.9352 266.3672 270.4395 272.8039 272.9103 274.2169 277.8322 278.9615 279.8918 281.0294 282.1258 282.44 282.8315 282.6137 281.8686 280.7595 280.3765 279.4365 278.8587 278.7917 279.7747 280.2958 280.6258 280.8784 281.8502 281.3602 280.6244 279.8911 279.736 280.4607 281.398 282.4456 282.905 284.1617 284.0988 284.4199 284.6596 284.3797 283.5182 282.6391 -9999 +-9999 -9999 307.7767 307.6518 303.2833 307.656 310.0785 311.7558 310.738 307.1779 302.7999 302.2666 308.8305 309.1268 308.1818 307.5131 308.5326 310.0929 310.8283 311.7753 312.1214 313.2356 314.5726 316.937 316.8597 322.7571 327.3146 330.0699 333.4344 336.7823 338.6003 337.8713 335.4811 334.3127 331.951 333.3438 334.6241 334.9477 334.1746 332.6114 330.0302 328.0068 325.4056 318.9445 315.1346 316.179 317.5021 318.6382 319.2328 318.6498 316.871 314.2821 310.941 310.0504 309.8353 309.5706 310.8578 309.5664 306.6336 303.0555 299.4079 294.2285 293.4559 293.315 292.0906 292.0171 292.0197 291.9971 292.9724 292.9935 293.6946 297.0504 300.6155 304.1545 305.1095 303.3492 296.9205 292.3708 294.2107 302.9104 307.0907 311.3181 314.2843 316.5073 318.805 320.5786 321.1326 321.0894 318.6803 317.101 315.9214 314.3793 313.2203 311.8373 309.3036 308.0394 305.755 301.5818 297.7144 294.4598 291.8615 290.0775 288.2292 287.9078 285.2141 281.5567 280.9546 280.6064 280.5328 283.1619 286.0293 287.2 287.9144 288.2961 287.1217 284.2994 286.7162 285.9132 286.5179 290.3532 292.7153 294.1623 295.1103 296.6741 297.0858 298.9448 300.3247 299.5616 299.8775 299.559 299.0036 298.5623 294.0663 289.5296 289.4641 291.5163 295.7787 298.1412 299.6014 300.9037 302.4137 302.5193 302.4549 301.6372 299.7444 297.3018 295.2143 294.6705 296.0627 298.8904 300.9315 303.0146 302.9337 303.1352 302.1189 299.6815 297.473 295.3442 293.2106 291.0842 287.0694 287.8067 286.0454 282.3697 276.0703 272.739 275.777 280.692 282.8044 279.9805 280.1133 283.9317 285.9862 288.349 290.18 292.1848 293.9869 295.112 295.8491 297.7757 299.2734 299.8853 302.2866 303.7345 304.2634 303.9516 303.886 304.6017 307.2262 307.9704 308.0693 305.7008 304.0729 303.4924 302.9564 302.5782 301.325 295.5867 295.3808 297.7302 298.5827 299.4935 300.7081 303.2691 306.2544 309.1896 314.3623 316.4757 317.0934 314.9099 310.2304 304.5333 299.369 296.8449 296.3816 295.5645 296.3333 297.0154 296.9963 295.8205 292.0716 287.4118 286.3607 285.5335 286.6539 289.3986 290.5768 293.2523 295.7863 296.8535 298.1253 299.9047 301.8564 303.2266 303.2089 302.8802 301.9669 301.1181 300.1024 299.8575 298.4758 296.8705 290.8521 286.7233 285.028 286.9238 289.9529 292.9256 293.902 294.2953 293.3589 294.6884 296.0148 298.6431 298.9907 299.4841 301.6167 302.9563 303.4201 303.7169 304.9001 306.1104 307.4188 307.914 306.7375 304.3284 301.9214 300.773 300.2701 296.1606 293.756 292.7026 289.9999 289.0922 288.1989 286.6493 283.3856 281.0981 275.4298 273.4011 271.8473 272.0999 273.8782 277.569 279.6671 280.9116 282.1032 285.3156 286.1685 284.8066 283.918 284.3894 284.7558 284.3006 284.0869 284.3778 285.7122 287.8785 289.2841 290.6825 291.3058 292.0366 291.39 289.9622 288.8729 289.7235 290.6288 291.5055 292.4241 291.6725 290.2182 291.1426 291.7783 290.5662 288.2771 286.1708 284.0083 282.5615 280.9053 278.7477 277.0281 275.6468 274.3115 273.0438 268.1543 265.5536 266.059 268.1807 269.5329 270.2372 271.11 271.9178 272.1777 272.1782 272.0193 272.778 273.703 274.1222 274.3752 274.2874 273.8507 272.8062 270.3991 269.1091 267.2134 265.5297 264.7097 264.5223 264.5631 264.1345 263.9511 263.8227 262.8453 262.3686 261.1355 259.9855 259.1229 258.3808 255.5636 254.1061 250.5304 249.2173 250.982 251.8238 255.5513 257.1727 259.5285 262.1979 264.7051 265.3 264.4806 264.6843 264.7539 265.9843 267.1019 269.6814 271.3473 271.3038 267.5614 265.2725 262.705 260.2067 257.1377 254.3936 252.9634 250.6852 246.16 243.4319 244.1469 240.9877 242.9567 242.9916 243.2923 244.6857 244.1336 244.0219 244.2177 247.2739 248.8647 249.9566 250.0004 249.7963 249.6883 250.0921 250.7067 251.8326 251.1045 249.1056 248.2758 247.5241 247.2149 247.1525 246.1902 246.4943 248.5165 249.6943 250.8338 252.1308 254.7161 257.7149 259.8782 262.0085 264.4517 268.3644 270.8516 272.2902 272.0014 271.803 271.7722 263.889 257.9101 257.7527 262.6681 261.2387 258.4803 255.4617 252.7304 250.8538 247.8056 245.1763 244.3008 244.1974 249.097 252.9587 256.1075 258.2944 260.6592 262.2215 264.1792 266.1252 267.202 265.0878 263.1071 260.536 256.286 251.7425 249.8609 247.7036 248.1579 255.2773 257.9664 261.7431 266.0878 269.7383 272.5816 274.9893 276.2606 277.472 280.3005 280.1853 280.5283 280.8457 280.7899 280.7112 281.1591 281.4115 280.3495 278.5654 278.0686 277.0688 276.6139 277.1559 278.0988 278.6194 279.4874 280.6366 281.0083 279.3625 277.5651 276.3603 277.4544 278.4215 279.463 280.0697 280.511 283.1646 283.9465 283.928 283.7347 283.2063 282.5601 281.6602 -9999 +-9999 -9999 305.0957 303.9706 301.3077 303.9363 306.3325 307.4674 307.0354 303.6743 299.4608 304.0777 306.9326 303.3256 306.255 310.8515 315.3889 317.4287 320.3466 321.9375 321.2659 319.7507 318.1181 317.3376 318.8836 327.7981 330.2544 331.5482 333.7975 336.5851 337.8403 337.0909 335.1296 333.8586 330.9762 331.8792 332.9305 333.6029 333.4562 333.093 332.0268 329.9982 327.3632 320.7848 318.938 313.0274 313.0849 315.4163 316.9971 316.9931 315.2867 311.5397 307.4894 307.4976 305.9615 307.0821 307.5343 306.5998 303.4915 299.5027 296.0522 293.8982 294.635 297.564 296.0337 294.672 293.8205 295.4422 295.7017 296.7494 298.4273 300.5204 303.1388 305.4007 306.9174 304.7603 298.4401 293.0853 292.9501 302.525 305.9483 309.1519 312.0953 315.227 317.8289 318.9469 319.2352 319.741 319.8576 319.3241 318.4014 316.8458 315.2436 313.0897 310.1904 307.9785 306.3011 300.7343 298.0792 294.7618 292.8859 293.7146 291.3935 289.3474 287.8301 286.0361 280.3592 280.3958 279.297 280.8463 283.0637 283.9545 286.5323 287.2287 286.1505 283.485 283.3357 283.6711 288.358 291.2324 293.5967 295.0053 295.7352 295.3598 295.2216 297.5488 298.8809 300.5057 300.4848 299.1234 298.6408 297.7902 293.5473 289.8147 287.7751 290.4217 294.0384 296.7474 298.396 299.7372 300.9141 300.5504 300.8945 299.7637 297.9195 295.6919 294.0933 292.5172 296.2577 298.7712 301.2958 303.3118 302.5527 302.3748 301.664 299.6515 297.2991 294.8787 292.9573 291.7715 289.8054 291.3149 289.3751 286.1407 279.7909 273.5907 274.7834 275.4242 277.7611 274.2439 280.0048 282.6717 284.6754 287.0873 289.2324 290.1548 291.94 293.5042 294.3766 296.2238 297.1569 298.6493 300.0437 301.2355 302.0235 301.1531 301.5607 303.0334 306.2587 307.2312 307.7219 306.2939 303.2998 301.6001 301.1994 300.799 299.6595 294.2554 293.6959 294.8128 295.2143 295.9526 297.9424 301.8642 305.2505 307.966 313.4991 315.8779 316.6724 314.2786 310.1291 304.7954 298.9407 295.3835 294.3046 292.7218 292.761 290.6379 290.322 290.6661 288.9377 287.4118 286.3607 285.5335 286.6539 289.3986 290.5768 293.2523 295.7863 296.8535 298.1253 299.9047 301.8564 303.2266 303.2089 302.8802 301.9669 301.1181 300.1024 299.8575 298.4758 296.8705 290.8521 286.7233 285.028 286.9238 289.9529 292.9256 293.902 294.2953 293.3589 294.6884 296.0148 297.3784 298.8048 300.0777 301.543 302.4789 302.0899 302.2316 304.0767 305.0922 306.43 306.7944 305.5853 303.4054 301.2181 299.2702 298.345 293.7011 291.1823 288.548 285.73 284.5921 285.3853 285.7164 283.4625 280.9213 275.3882 273.4423 271.847 271.2714 272.4775 275.4261 278.0729 279.64 281.0386 283.831 284.2055 282.8742 282.7246 283.0372 282.408 281.2683 281.5551 282.6825 285.4247 287.2157 289.0527 290.3933 290.831 291.3099 290.893 289.2824 288.43 288.8818 289.9171 290.6213 291.511 291.0423 288.6245 287.7222 287.888 287.212 283.5083 283.3414 281.7926 280.2456 278.8456 276.8857 274.6798 272.5632 270.7664 269.4748 267.4464 265.9454 263.0589 266.5505 268.0661 269.1647 270.0505 270.7463 270.9586 271.0347 271.2551 271.9032 272.552 272.9883 273.0046 272.7864 272.7368 272.1272 269.6935 268.0182 263.6156 262.7303 262.9628 263.2555 263.2238 262.9218 262.5487 262.3251 261.9841 261.5177 259.5096 257.8211 255.5655 253.5938 251.6335 250.2576 250.0931 251.2573 252.4769 255.2966 258.2619 260.4495 262.6947 265.0437 267.56 268.1934 267.7192 267.8378 268.1322 267.4751 268.9256 270.1558 271.0832 269.8257 264.9978 262.8971 261.4184 258.9456 256.4575 253.8569 252.8836 248.7091 245.7157 243.2725 243.7972 244.1791 240.6308 243.6335 244.0198 244.3947 244.0005 244.104 244.8627 247.392 249.0065 249.4856 249.5986 249.2163 248.4711 248.6535 249.3147 250.9736 249.8052 246.6239 246.0395 245.9456 246.2717 246.1495 245.2687 245.8628 247.6876 248.5326 250.0577 251.5924 254.7364 256.6118 259.8755 262.9459 265.1829 269.0083 269.9362 269.7043 270.1294 269.9574 270.6999 271.4072 262.9417 257.1823 257.2881 258.9271 256.7425 254.9864 252.6291 250.0452 247.3516 244.5533 244.1866 245.8805 250.3998 253.8127 256.568 258.9506 261.2222 263.2878 265.0146 266.4408 266.3792 264.1367 261.4908 259.1302 255.5628 250.1524 247.6005 247.1405 249.9438 257.3447 259.463 262.6596 267.4237 271.4377 273.5701 275.6446 277.3134 278.2657 280.103 279.8065 279.0378 278.2067 278.2787 278.3134 278.6229 279.0107 278.2774 276.02 275.2403 274.9422 274.6258 275.3947 276.5835 277.702 279.1716 279.1429 278.2149 275.0322 272.4313 272.7372 275.0252 275.9612 277.1048 277.9955 279.0739 282.3448 283.1728 282.9793 283.2382 282.9369 282.1704 280.9634 -9999 +-9999 -9999 301.3781 300.6527 298.9224 301.6812 303.256 303.4987 303.0948 301.8393 298.4455 300.5802 300.1844 304.3393 309.9556 314.042 319.5619 322.4804 325.4256 326.8202 326.7643 324.9923 324.1656 321.4021 320.3911 327.7951 329.9661 331.4722 333.4798 335.8442 336.7424 336.1707 334.5165 333.0686 330.2414 329.6587 330.8646 331.7534 331.6035 331.3869 331.1639 330.1579 328.0306 325.2546 322.9305 318.8908 311.8733 311.4187 314.8755 315.0455 314.1783 311.4239 306.6187 304.8374 302.8619 302.2072 302.1435 302.3586 299.8956 296.8531 295.1257 294.5857 298.6703 303.6795 305.2603 303.4891 302.1101 301.1117 300.2988 298.4096 301.9723 303.7151 305.9503 307.4517 307.4453 304.8814 298.5954 293.4146 293.8643 301.0367 305.5431 308.9365 312.0194 314.6779 316.102 315.9173 315.9338 317.2262 320.3928 320.7183 319.7743 318.3928 316.0916 313.9821 311.4555 309.7895 308.0056 303.7031 298.9543 296.6958 298.1881 297.4202 295.6824 292.9579 290.4645 287.9832 284.5257 280.5232 280.2932 280.3884 280.1181 281.213 286.2755 289.1764 287.2274 281.6431 281.4849 285.1956 287.761 290.6244 292.4522 293.5855 293.2466 292.8627 293.5169 296.9376 298.3579 299.3076 299.6206 298.3459 296.1866 294.3934 292.0694 289.1375 288.5422 292.1012 294.8968 296.3718 297.715 299.0018 299.5744 298.7977 298.3815 298.1498 296.604 294.6323 293.045 292.4213 295.8492 299.0993 300.79 302.4138 301.8706 301.5306 301.6708 300.6916 298.5532 296.849 295.4234 294.1612 292.5848 293.4587 291.4368 287.9437 281.2321 274.2831 272.9993 273.5809 274.1776 273.4625 280.4557 283.065 284.7458 286.7227 288.6829 289.7889 290.7846 291.8689 292.2104 294.4461 295.1631 296.4144 297.5103 298.1287 297.7142 299.5654 301.2789 302.9797 305.7949 306.6486 307.1941 306.2939 303.2998 301.6001 301.1994 300.799 299.6595 294.2554 293.6959 294.8128 295.2143 295.9526 297.9424 301.8642 305.2505 307.966 313.4991 315.8779 316.6724 314.2786 310.1291 304.7954 298.9407 295.3835 294.3046 292.7218 292.761 290.6379 290.322 290.6661 288.9377 287.42 285.9584 284.968 285.6917 288.1794 290.5025 293.0287 296.0767 297.9241 299.5287 300.7486 301.9247 302.5559 302.5284 302.27 302.0988 301.5064 300.4985 299.4774 298.6086 297.0402 292.7699 288.4088 284.2715 284.3713 286.8694 289.6786 290.564 290.3576 291.7207 294.9892 296.1436 297.2938 298.2339 298.6267 299.1949 299.9835 300.4579 301.2486 303.8675 304.7593 304.9806 305.3554 304.344 302.4367 300.4111 298.4138 295.8889 290.5704 286.9436 284.1249 280.0754 280.1071 281.7173 281.911 280.6505 278.8313 275.7064 273.5582 271.5601 270.9563 271.7949 274.7217 277.4312 278.9921 280.5343 282.2193 282.2597 281.5449 281.3074 280.4797 279.4334 279.3028 281.5672 283.3897 285.7743 287.6862 288.8391 290.1206 290.0714 290.4676 289.8448 288.433 287.6048 288.9534 289.0226 289.7577 290.156 289.1962 287.3662 285.3659 283.8603 283.5659 281.6081 280.068 279.3598 278.4149 276.2074 273.8668 271.6058 269.4583 267.5934 265.482 265.2949 265.5262 264.2141 263.2156 265.9659 267.6061 268.2892 268.9085 269.3032 270.1184 270.5121 271.3063 271.7767 272.0761 271.4734 271.0499 270.9472 270.1421 265.6442 263.853 263.2809 262.9321 262.5319 261.6604 261.474 261.3008 261.1341 260.7507 260.7343 259.5873 257.3116 254.0945 250.9892 251.1156 251.7766 251.1769 252.535 256.1196 256.5308 255.9321 260.7285 264.0147 266.1447 267.6745 269.8198 270.4082 269.8432 270.2961 271.0266 270.4953 270.7011 269.9372 268.5796 266.6428 261.8294 260.3823 258.5756 256.9008 255.0651 253.3306 249.5709 247.1957 244.8048 243.1954 243.5792 244.055 241.8289 242.4049 244.2048 244.2335 243.9543 243.7379 246.0325 247.8422 248.6875 248.8346 248.5897 247.8994 247.147 246.8461 247.2594 249.5774 248.0055 246.0058 245.3612 245.2566 245.3642 245.3684 244.7877 245.2652 246.7869 247.7569 248.9199 250.6634 253.3207 256.1306 258.606 261.3939 263.8118 265.9597 265.5032 265.2822 266.2311 267.0477 268.7834 269.2743 267.4781 262.2316 256.3226 256.3947 255.185 252.7364 250.5192 248.0672 245.7186 243.9166 244.1177 246.9051 251.0325 254.6192 256.6511 258.8883 261.343 263.0204 264.4692 265.8054 265.477 263.3278 260.4969 258.3161 254.7816 248.622 245.8519 249.1004 253.6174 258.5042 261.0923 263.988 268.1131 271.3268 273.3257 274.6899 275.8317 277.2883 278.4554 277.9658 277.0356 275.8286 275.4178 276.0015 276.2308 276.105 275.382 273.1252 272.3146 272.1198 272.0272 273.5312 274.699 275.4372 276.2285 275.0965 272.6035 267.7812 267.0247 270.1782 271.7433 273.2934 274.699 276.5115 278.2304 281.4321 282.2057 282.8027 282.6832 282.5418 282.4985 282.086 -9999 +-9999 -9999 297.4102 297.429 296.8379 297.9803 299.9662 298.3367 297.7107 297.3297 296.9098 297.323 302.7864 308.4345 312.9064 316.0647 321.4551 323.9166 326.1028 328.4809 329.8762 329.1962 327.868 326.5874 323.7721 325.6552 327.6043 329.856 331.9896 334.1277 335.3688 335.2199 333.9702 332.2226 329.81 328.2725 328.4664 328.4744 328.9766 329.283 329.3322 329.0472 328.4781 327.6454 325.7939 322.1686 317.0458 309.8219 309.2254 311.0909 311.4698 311.5379 311.2829 310.6121 307.9283 304.6464 301.0985 298.0822 296.0775 294.5145 295.1658 300.2734 302.9933 308.1371 311.441 312.3678 310.0037 306.7327 303.8112 301.1209 304.8241 306.3817 307.6381 308.9974 308.0164 303.9559 298.1971 294.5756 293.7699 302.3402 305.5897 308.3977 311.259 312.8841 311.8787 311.9057 314.0677 316.2906 320.3988 321.0254 320.3936 319.228 317.2076 314.8265 312.9343 310.7118 308.6867 304.1304 303.1795 302.5287 301.0633 300.1523 298.246 295.3979 292.2799 288.9166 284.2119 281.1084 280.2175 279.9682 279.275 280.1675 285.923 289.1274 287.3293 281.3256 280.5794 283.3182 286.081 288.7223 290.377 290.7984 290.0552 290.956 294.4106 296.1231 297.5809 298.2944 299.0342 297.7503 295.3683 293.2565 290.5875 287.0456 286.8743 290.9603 294.119 295.5984 296.7304 297.7136 298.0058 297.3106 296.2926 296.2827 295.1954 292.9672 291.7532 293.0544 296.4228 299.0866 300.4281 301.0233 302.437 300.8857 301.2247 301.5738 300.2982 298.9569 296.9323 295.1929 294.8227 293.4587 291.4368 287.9437 281.2321 274.2831 272.9993 273.5809 274.1776 273.4625 280.4557 283.065 284.7458 286.7227 288.6829 289.7889 290.7846 291.8689 292.2104 294.4461 295.1631 296.4144 297.5103 298.1287 297.7142 299.5654 301.2789 302.9797 305.7949 306.6486 307.1941 306.719 303.7057 300.9414 299.5799 299.2287 298.0528 293.2315 292.5118 291.8487 293.2902 295.2328 298.1104 301.518 304.5892 307.3177 313.0503 315.3288 316.7952 315.4502 311.8899 307.0996 300.1917 295.8193 295.2332 299.0575 300.1037 298.0111 294.7668 290.1013 288.6053 287.2255 285.3583 284.3533 283.9548 285.909 287.95 292.1167 295.5049 297.5099 299.5454 300.3347 301.1552 301.6074 301.6626 300.9924 300.9673 301.2325 300.7007 299.3257 297.9037 295.9522 291.778 288.6028 284.2973 283.4317 285.1302 286.9722 288.1415 289.7395 291.1563 294.3431 295.797 296.6006 296.4477 297.2217 298.6377 300.3561 301.5001 302.3658 304.0714 304.4709 304.0886 303.9442 302.7381 301.0977 299.3169 297.4659 295.946 287.9189 285.5785 283.247 281.5974 279.7774 278.5077 276.2954 277.2189 276.8267 275.1194 273.1355 271.3383 270.7922 271.1079 273.9072 276.7237 278.484 279.6576 280.095 280.4565 280.1954 279.2465 278.0048 278.5536 281.2676 283.6635 284.6443 286.59 288.0162 288.6866 289.2971 289.1509 289.223 288.8416 287.6383 286.9273 288.6362 288.7936 288.3458 288.3478 286.7768 284.563 282.8026 281.1247 279.8905 277.7028 277.1155 275.6017 274.5759 273.0799 270.9722 268.3829 267.274 268.6829 267.5054 266.4377 265.2566 263.7869 262.528 264.3946 266.0239 266.5324 266.9932 267.5101 269.1633 269.463 269.776 270.1207 270.2661 269.9721 268.1683 267.0807 265.4765 263.9268 263.6011 263.1203 262.7257 261.9482 261.2077 260.2824 259.7681 259.4724 257.6889 257.9437 255.726 253.936 251.9734 252.6177 254.1982 256.3925 258.9333 261.7572 262.3116 261.6172 258.3164 262.8505 265.8805 267.6731 269.0627 270.4617 272.0568 272.3381 272.1005 271.3605 270.3014 269.6621 267.057 264.3762 262.3657 258.8687 257.4001 255.7826 254.2584 252.7245 251.0763 249.0699 245.5922 244.1414 243.3148 243.2251 243.6489 240.4924 241.0822 243.9794 244.0739 243.9434 243.8146 247.1298 247.7674 248.1068 248.2133 247.9269 246.9469 246.25 246.2775 246.6853 248.4538 247.7624 245.7122 244.7388 244.667 244.6725 244.5939 244.0405 244.7862 246.0063 246.8801 248.1877 249.2632 251.0514 254.0235 256.5475 259.1603 260.4171 261.1205 260.9973 261.5172 264.7502 266.8618 267.0473 265.9388 263.4601 262.7985 255.8134 255.777 255.3458 252.6699 249.3534 246.8138 244.8545 243.9009 244.1323 247.2809 250.345 253.3662 255.6909 258.4757 260.4055 262.2126 263.7451 265.2159 264.5619 262.8094 260.2314 257.2952 252.0124 245.0309 247.6604 251.949 254.6582 259.4477 262.2048 265.298 268.9039 270.2174 271.1286 273.0809 274.9309 276.2428 276.7289 276.255 274.7843 272.7666 273.352 273.735 273.8902 273.6767 272.8524 271.4899 270.6345 270.1952 270.5798 271.2874 272.0638 273.3461 272.4199 270.7985 266.2838 262.8788 266.9247 267.0278 268.4679 270.6017 272.9605 275.9927 278.2759 280.6973 281.0952 282.1163 282.1201 282.2673 282.2202 281.8862 -9999 +-9999 -9999 293.1757 294.3156 294.0653 295.9032 295.6172 293.6596 294.1094 295.2442 297.26 303.0069 307.4931 311.6513 315.2876 318.2724 321.7894 322.8392 325.3616 327.8008 330.1566 331.1311 330.547 328.9629 327.2761 327.8261 328.4607 329.0663 330.7757 332.7864 334.5805 334.4621 333.6383 331.7474 329.2446 328.7213 325.6344 324.3608 326.3958 327.0126 327.4635 327.5801 327.2907 326.5632 324.8516 322.6182 318.9488 314.0342 307.3922 306.2251 306.8431 306.6737 308.6317 308.0741 306.4383 304.2124 302.0368 297.9917 295.3737 295.9398 297.9285 307.032 308.9498 309.3304 312.4359 315.0544 313.433 309.7263 306.7095 306.1763 306.1278 308.6934 309.8773 310.4424 309.3065 305.3987 301.1426 296.6469 293.5804 299.8735 303.0536 306.8845 308.0002 308.2619 310.635 313.8772 316.1532 317.7797 320.4908 321.3979 321.4358 320.1352 317.7438 315.5819 313.7301 311.364 309.5352 305.7261 306.3344 305.5717 303.8072 302.007 299.8851 296.439 292.7228 288.7088 283.0972 282.1096 280.8605 280.2676 279.7071 279.8321 278.831 283.0529 282.0987 282.1193 280.0444 280.7794 284.0664 286.3979 287.722 287.4623 288.7176 290.7854 293.9348 295.5446 296.1734 297.2506 298.1902 297.7168 295.7084 293.9178 290.5875 283.6626 286.8743 290.9603 294.119 295.5984 296.7304 297.7136 298.0058 297.3106 296.2926 296.2827 295.1954 292.9672 291.7532 293.0544 296.4228 299.0866 300.4281 301.0233 302.437 300.8857 301.2247 301.5738 300.2982 298.9569 296.9323 295.1929 294.8227 293.8833 290.9825 287.6998 283.0298 275.8364 271.7173 272.5118 272.8074 272.7046 279.8374 282.987 285.5763 287.5938 288.5521 288.3029 288.3773 288.8564 289.8159 292.0081 292.8664 293.3207 294.0611 294.9847 297.9315 300.5059 302.0603 303.1054 305.2403 305.6543 306.0563 305.8043 304.183 301.6566 299.2518 297.9621 296.4825 292.1901 289.3157 292.57 294.6366 297.596 300.2783 301.4559 304.291 307.025 312.1892 314.5158 316.1228 316.0348 313.6601 310.1054 304.4315 298.1628 297.7259 302.0962 302.9818 302.2939 299.5628 296.2926 293.018 290.9514 288.0986 286.6263 282.8702 283.4617 286.3885 290.918 293.8909 296.227 297.9294 298.572 299.384 301.0007 300.6801 299.8032 299.5558 300.0033 300.2436 299.3214 298.2673 296.0625 290.6475 286.8944 283.5307 283.6164 286.0411 288.7057 290.875 292.3877 293.1371 294.6608 295.7079 295.1548 295.7494 297.4317 299.0805 301.3969 303.067 303.6246 304.7581 304.511 303.8862 303.1321 301.2969 299.7245 296.5409 294.7529 293.6652 287.1156 286.3212 285.2283 284.6716 283.6144 281.7606 280.9569 277.8161 275.1338 275.0779 273.2419 271.33 269.9352 270.1941 272.8494 275.941 277.6684 278.7545 277.8484 277.7136 277.5255 277.6534 277.6786 279.493 281.8156 284.175 286.332 287.4988 287.4417 287.3711 287.6776 287.716 287.7353 287.5176 286.8015 287.0585 288.635 288.9491 288.0284 287.0325 285.3772 283.8113 280.3554 278.5672 277.3857 273.7268 273.8273 272.3947 270.5466 269.9283 269.1408 271.2875 272.8167 272.8503 271.0083 270.5686 269.1386 266.6502 263.5507 262.3713 263.8921 264.2491 265.1217 267.0894 268.2014 268.0864 268.4159 268.6553 268.3324 267.9238 266.2771 265.7038 265.0118 264.2101 263.7815 263.3507 262.6931 261.6895 260.7112 259.5363 258.6861 258.0741 257.1989 254.4413 253.8063 253.8493 255.6515 259.0145 262.8953 265.727 268.2064 270.4007 269.4915 266.7201 262.8837 263.3958 266.6862 268.6135 269.166 270.5227 272.5681 271.9619 270.513 269.0484 266.8849 264.7762 263.351 260.8044 258.9608 255.4427 253.2647 251.4819 250.045 249.245 249.4077 246.7389 244.0747 243.4039 243.3801 243.0078 243.2998 240.6265 244.2784 244.6232 244.3249 243.9042 243.6547 245.6781 246.1145 246.443 247.3629 247.4946 247.2325 246.7294 246.3458 246.3847 247.4874 247.8143 246.3255 244.908 244.5067 244.1847 243.9776 243.4913 244.0726 245.2218 245.8033 246.6384 247.22 248.7039 251.6596 254.1668 255.3006 256.1133 256.7298 257.5278 260.2978 261.41 261.2726 261.2638 260.9965 260.1471 259.4424 257.1474 255.1753 255.153 250.7114 247.3216 244.877 244.6616 243.7145 244.0318 249.3815 251.6565 252.7099 254.9301 257.7895 260.0621 262.382 264.0144 264.7254 263.5935 262.4087 258.5427 254.1888 247.9223 245.6984 250.2212 253.2474 255.458 259.4734 261.6809 264.0562 267.1764 269.2153 271.7728 274.0479 275.3305 275.9418 275.0764 273.8597 272.5922 270.7939 271.3894 272.2778 272.0399 271.8214 271.1765 269.6522 269.1112 268.4859 269.2153 269.2045 270.0381 270.512 268.742 266.6216 262.0656 263.1785 263.9093 263.9876 269.6928 273.2093 275.2148 277.18 278.564 279.9013 281.0952 282.1163 282.1201 282.2673 282.2202 281.8862 -9999 +-9999 -9999 290.1023 291.1095 291.7793 291.1974 290.8401 292.3979 297.819 300.5328 302.8463 306.2297 309.7048 312.8985 316.189 318.5603 318.986 321.1942 324.0938 326.8577 329.2626 330.9298 331.5274 330.7191 329.3874 328.9854 329.2221 330.0979 330.8032 332.052 333.0679 333.7151 333.3784 331.1115 328.8257 328.2771 327.3201 322.7201 322.4206 324.1266 325.5958 326.2285 326.1932 324.7233 322.8579 320.087 317.6559 314.3487 308.2889 306.1936 304.8707 303.1304 302.3589 301.3931 300.8341 299.6035 297.9175 296.4521 296.4966 298.5329 304.2405 311.9211 313.8147 314.022 313.1353 314.9792 314.9377 311.8154 311.1716 310.5155 306.9686 309.7743 311.6066 312.351 310.6477 307.0463 302.9257 298.4163 294.6722 295.7733 299.9718 302.6088 305.2549 309.4199 312.658 314.8549 316.3681 317.7457 319.8764 321.1332 321.7097 320.634 318.1781 316.1053 314.1377 312.0649 310.5553 308.6203 309.043 308.4078 305.4404 303.0052 300.3015 296.439 292.7228 288.7088 283.0972 282.1096 280.8605 280.2676 279.7071 279.8321 278.831 283.0529 282.0987 282.1193 280.0444 280.7794 284.0664 286.3979 287.722 287.4623 288.7176 290.7854 293.9348 295.5446 296.1734 297.2506 298.1902 297.7168 295.7084 293.9178 290.8383 283.62 285.4879 289.6104 292.6188 294.3263 295.0313 295.7499 295.9048 295.3513 294.6411 294.0558 292.6429 290.9437 290.406 293.3555 295.6624 297.2581 298.4815 300.1766 302.3936 301.492 299.9192 300.1985 300.0187 298.6373 297.1088 295.4051 294.1996 292.4783 289.3822 285.3726 279.0477 274.8444 273.6917 272.1991 271.269 273.0522 279.4491 282.0766 284.7645 285.8001 286.0871 284.8376 284.2483 284.8001 286.5399 289.7728 290.8009 292.625 293.1693 294.795 296.7839 298.8077 300.3275 301.4706 304.6187 304.8493 305.149 304.8712 303.946 301.786 299.5377 297.7289 295.9067 290.9347 290.1971 293.7321 296.9423 299.8284 302.9693 304.026 305.0247 307.305 311.7466 313.4482 315.1611 316.3872 315.5874 312.2394 307.8242 301.9072 300.8635 304.6378 304.8512 303.8171 301.692 297.6452 297.6229 296.0163 293.014 289.679 284.364 281.2557 284.0066 288.6954 292.0254 294.3057 296.1525 297.0331 297.7437 299.9441 299.7449 298.7783 298.204 298.8031 299.3446 299.3044 298.7481 296.3578 288.4555 284.3443 282.9434 283.3311 286.3253 289.978 293.0725 294.7932 295.3932 295.4501 295.525 294.0834 294.0834 296.2665 299.0792 301.3383 302.6093 303.4658 304.0207 303.7314 303.0287 302.2805 301.7826 299.1471 297.2209 294.5655 291.1747 290.2357 289.4504 288.7838 287.989 286.335 284.913 283.5486 281.6917 277.806 273.1046 272.9663 271.3173 269.5746 269.5948 272.0816 275.1707 276.9256 277.4983 275.3436 275.9004 278.4158 279.6136 280.8864 280.8235 281.9306 284.0154 286.2651 286.6453 286.1447 285.9733 286.0955 286.258 286.0724 286.0566 285.847 287.2031 288.6421 288.8186 288.5139 287.451 286.1611 283.934 281.9054 279.4758 275.8632 273.5356 271.7095 272.4991 274.5036 274.9944 275.7805 276.1596 276.551 276.5322 274.5446 273.6987 272.049 269.3987 265.9328 264.0154 262.1298 261.565 260.3435 264.5853 266.3717 267.5334 267.3245 267.0048 266.9106 266.7297 266.2922 265.6581 264.9257 264.6808 264.0987 263.667 262.8689 261.678 260.4309 258.6852 256.3228 257.4374 254.617 253.7532 255.3359 259.7675 261.3466 261.8717 266.7135 270.9208 274.1267 277.1203 274.3519 270.9794 267.3609 265.976 266.6962 268.2362 269.2669 270.2249 272.1838 270.4217 268.42 266.365 264.0461 262.1545 259.8057 257.3712 254.8589 251.2102 249.4727 248.4314 246.885 246.7193 246.5665 244.3398 243.6701 243.2456 242.8554 242.6732 243.2291 240.6061 244.139 244.8215 244.633 244.0115 243.7172 243.9512 244.2799 244.5434 245.2083 246.5413 247.1873 246.8523 246.5429 246.2854 246.5733 246.9635 246.9608 245.4026 244.5403 243.7821 243.243 243.1276 243.682 244.5889 245.2496 245.8426 246.2655 246.6201 249.3968 251.2029 251.6424 252.1441 251.868 253.6623 253.6577 252.565 253.1013 254.4694 256.4019 257.0169 257.6569 255.249 253.2012 254.4568 254.5041 246.1516 244.0576 243.9678 243.4592 245.133 253.3959 255.4885 256.9117 258.3715 260.3421 261.8028 262.7586 263.2404 263.9574 260.9861 259.5133 256.524 251.0942 245.9288 245.6984 250.2212 253.2474 255.458 259.4734 261.6809 264.0562 267.1764 269.2153 271.7728 274.0479 275.3305 275.9418 275.0764 273.8597 272.5922 270.7939 271.3894 272.2778 272.0399 271.8214 271.1765 269.6522 269.1112 268.4859 269.2153 269.2045 270.0381 270.512 268.742 266.6216 262.0656 263.1785 263.9093 263.9876 269.6928 273.2093 275.2148 277.18 278.564 279.9013 280.1406 280.6133 282.0122 281.7016 281.8857 280.9891 -9999 +-9999 -9999 287.7684 287.4554 288.228 290.1241 290.9114 291.8741 296.4408 300.183 303.1612 305.6769 307.9654 310.984 314.0323 315.7942 317.5212 321.0754 323.909 326.1872 327.4938 328.7935 329.9186 329.9153 328.8958 328.8917 328.6203 329.317 329.8236 330.4098 331.8914 333.1862 333.0323 330.7448 328.7754 327.567 327.216 324.4011 319.8521 321.6664 323.4706 324.4513 325.1425 323.3833 322.2028 320.5023 317.8524 314.9424 307.7937 307.0133 307.0232 306.6683 304.7664 303.9983 303.2934 301.4828 299.2906 296.48 298.8323 303.2755 305.0546 313.2879 316.6866 317.7269 317.6978 317.5785 317.2748 316.493 315.3074 313.5541 311.507 312.0482 312.7987 313.3339 311.5051 308.1869 302.9257 298.4163 294.6722 295.7733 299.9718 302.6088 305.2549 309.4199 312.658 314.8549 316.3681 317.7457 319.8764 321.1332 321.7097 320.634 318.1781 316.1053 314.1377 312.0649 310.5553 308.6203 309.043 308.4078 305.4404 303.0052 300.3015 296.9657 292.9386 288.3286 282.1035 282.8171 282.4868 280.9077 280.2419 279.7038 279.5321 279.9319 279.387 279.5997 279.7967 279.564 280.317 283.5564 284.8353 284.9716 287.1619 288.9792 292.2679 293.911 294.6892 296.2404 297.1092 297.3365 295.8427 293.7307 291.1837 282.8376 284.6874 288.2909 291.3842 292.7564 293.3994 293.4351 293.6686 293.4485 292.0559 291.1196 289.8101 289.0205 291.2053 293.8794 295.7233 297.8657 299.643 301.1094 303.0251 302.7131 300.5093 298.0122 297.2847 296.8885 294.6701 292.8798 289.1721 287.7476 285.346 280.3754 277.2927 275.1992 273.6027 271.7602 271.6637 275.6539 277.6441 279.4924 280.9699 280.6962 281.1275 281.8461 283.4526 284.7994 285.7077 287.7959 289.4268 292.3265 293.4952 294.8509 296.046 298.145 300.4392 301.9991 303.8578 303.8644 303.3931 303.5298 302.8562 300.8632 298.627 296.128 293.9178 289.1536 289.9076 293.1716 296.8559 299.9081 303.0639 305.3924 306.1582 307.4309 311.0626 312.4167 314.4973 315.8022 316.2515 314.353 310.0677 306.2528 304.4832 306.1863 306.1204 304.8145 302.7074 301.5272 299.8902 298.8531 296.5598 293.7905 285.3703 282.3585 281.1538 285.3835 289.6782 291.9759 293.8176 294.8004 296.365 298.5104 298.5907 297.8117 296.9075 297.7335 298.3603 298.6863 298.0944 296.0766 288.4183 284.2874 282.4024 284.93 287.7964 290.5291 293.3148 295.1197 295.8182 294.978 293.8553 292.0809 293.5616 295.9548 297.7521 299.9044 301.3561 302.5567 303.1419 303.3343 302.8092 302.228 301.4407 299.8979 298.213 296.3895 295.1071 293.463 292.6788 291.6522 290.2451 288.8595 287.4993 285.5715 283.807 281.5519 273.5656 270.9298 270.2049 269.1519 269.0768 271.4304 274.4381 275.6504 275.1448 273.9539 277.2571 280.1041 282.4765 283.1883 282.6558 282.3269 283.674 285.0693 284.9229 284.5828 284.3681 284.4054 284.3933 284.3807 284.541 285.4416 287.0158 288.3939 288.6214 288.6472 288.2187 287.3524 286.2072 283.7996 283.1089 281.9694 278.1147 278.0595 277.7392 277.2787 277.964 279.088 279.4927 279.1747 278.5148 276.3574 275.2982 273.612 272.1853 269.3259 266.5565 264.5086 261.7788 261.2387 262.0266 263.7838 265.1984 265.7346 265.536 265.5365 265.779 265.6918 265.8741 265.2916 264.9472 264.4781 264.1892 262.7206 261.3505 259.4718 258.7308 255.9813 254.8342 254.6811 257.1481 261.5557 264.882 265.9576 266.59 267.3948 270.9158 273.0404 277.4136 276.6536 273.8985 272.0511 271.3346 271.8636 270.1942 270.6805 271.2435 271.712 269.2544 266.3455 263.8079 262.0211 259.8704 256.0149 253.6779 251.9342 249.4514 248.6389 247.4132 246.7733 245.756 244.4809 244.3985 245.5174 244.1217 242.8672 242.7096 242.7962 241.1385 243.9829 244.8736 244.6277 244.2639 243.8414 243.5498 243.644 244.1226 244.3447 245.5451 247.2996 247.3898 246.9047 246.5422 246.4525 246.4578 246.545 246.4178 245.5888 244.7016 242.9102 242.8651 243.0388 244.3094 245.3934 245.1932 246.2655 246.6201 249.3968 251.2029 251.6424 252.1441 251.868 253.6623 253.6577 252.565 253.1013 254.4694 256.4019 257.0169 257.6569 255.249 253.2012 254.4568 254.5041 246.1516 244.0576 243.9678 243.4592 245.133 253.3959 255.4885 256.9117 258.3715 260.3421 261.8028 262.7586 263.2404 263.9574 260.9861 259.5133 256.524 251.0942 245.9288 245.3083 247.9335 253.0019 255.7187 260.1489 261.7941 264.3488 266.9611 269.0974 271.1891 273.0779 274.5324 274.6814 272.2324 271.2646 269.8046 268.4496 269.6715 271.5122 270.5598 269.961 269.3547 268.2116 267.8418 267.0814 267.8582 267.7581 268.3656 267.7379 265.6411 262.9549 261.4792 265.1572 267.9347 270.1153 272.0114 274.3776 276.3341 278.0256 279.1544 279.5022 280.1634 280.7714 281.972 281.4883 281.4497 281.5 -9999 +-9999 -9999 288.3775 289.9885 293.3199 295.4955 295.3038 292.1852 294.2177 295.3249 297.4613 300.481 304.3763 308.4901 311.0145 311.5567 316.7729 319.5535 321.7156 323.5472 323.9478 325.0609 326.8806 327.1561 327.175 327.2149 327.0812 327.5394 328.1471 329.6169 331.1971 332.43 332.5579 331.582 328.7665 327.4902 326.3598 325.9648 321.5941 318.4422 321.294 322.7802 323.7611 322.373 321.0681 320.1332 319.2551 317.7121 307.7937 307.0133 307.0232 306.6683 304.7664 303.9983 303.2934 301.4828 299.2906 296.48 298.8323 303.2755 305.0546 313.2879 316.6866 317.7269 317.6978 317.5785 317.2748 316.493 315.3074 313.5541 311.507 312.0482 312.7987 313.3339 311.5051 308.1869 304.7625 301.0302 297.392 294.1389 297.4224 302.7971 307.3937 310.5423 312.4659 313.8683 314.8214 315.4764 318.5023 320.1237 320.9498 320.7311 318.7894 316.6273 314.6291 313.0535 311.5109 310.3776 310.1485 308.8169 305.6869 302.7673 298.8439 295.5917 292.29 287.5524 285.5463 288.3668 287.9711 284.6213 281.3316 281.0016 279.7029 279.0837 279.5488 278.023 279.4608 279.1671 279.2219 280.3196 281.4393 281.4357 282.5482 284.5704 289.7036 292.3478 293.3432 294.9396 295.9412 296.349 295.7307 293.4458 290.7941 283.7011 283.4386 287.2387 289.9456 291.4894 291.9346 291.1254 291.0051 290.7903 288.5915 287.8932 288.9291 291.362 293.8842 295.9984 297.3283 298.6709 300.6083 303.0707 303.6172 302.6361 299.87 298.8017 297.1074 291.5144 289.4177 288.3552 286.9364 283.1832 281.5772 282.2809 282.5215 276.7397 272.0279 270.4664 272.4901 276.3455 276.1494 277.057 278.3656 280.6463 283.2916 286.2188 287.6372 288.5083 289.0851 289.5948 290.1738 292.3443 293.9333 296.0148 297.4964 298.9856 301.1302 302.5944 303.2241 301.784 301.154 301.761 301.6478 299.731 296.76 293.8356 292.1316 287.3656 290.6489 293.9285 296.8167 299.511 302.6644 304.2928 305.4919 306.7935 310.534 311.3329 313.7269 315.3037 316.1019 315.5158 311.5721 308.7968 307.1941 307.416 307.263 305.3234 303.8286 303.5583 303.4525 302.4561 300.9173 297.8927 288.4377 284.0008 280.6115 282.2177 287.153 289.6789 291.3282 293.579 295.0499 297.0207 297.1295 296.1474 296.078 296.8388 297.5578 297.6474 297.257 296.1054 291.3351 287.1989 283.2597 283.0987 286.8087 289.3322 292.0742 294.1445 293.9798 293.0804 291.639 290.8008 293.2274 295.2145 297.1913 298.8649 300.3363 300.916 301.5675 301.809 301.9515 301.8014 301.2416 300.3196 298.7774 297.4228 296.8215 295.3258 293.7254 292.5082 291.6403 290.4438 288.667 287.0774 284.3573 281.937 276.676 274.4225 271.4993 268.655 268.6337 270.5938 273.8187 274.4827 272.6501 274.8872 277.8337 280.3612 283.2801 284.8624 284.2223 282.896 282.8752 283.6636 282.9246 282.6992 282.7885 282.5978 282.4846 283.3173 283.8835 285.601 287.2259 288.2206 288.6644 289.3193 289.1343 288.6069 287.4575 286.5446 285.4603 285.8531 282.8202 281.7053 281.0966 279.81 280.5044 281.1711 281.2281 280.6588 279.9408 278.078 276.4199 275.0079 273.5341 271.4887 268.0519 265.1258 264.3016 262.7999 260.6765 259.9277 262.387 263.331 263.8305 264.4696 264.1898 264.1481 264.1715 264.3143 264.8254 263.8875 263.6226 262.0074 260.5622 257.8975 255.7819 254.9584 255.2486 256.6559 260.6215 264.2163 267.8453 269.3367 269.9157 270.7919 271.3949 272.9842 276.2579 277.1018 276.5719 275.7311 274.8059 274.2415 272.6705 273.6052 273.4009 272.8279 270.6787 267.1306 262.9715 259.5617 256.4805 253.3557 254.6252 254.6121 252.7081 252.0245 247.4132 246.7733 245.756 244.4809 244.3985 245.5174 244.1217 242.8672 242.7096 242.7962 241.1385 243.9829 244.8736 244.6277 244.2639 243.8414 243.5498 243.644 244.1226 244.3447 245.5451 247.2996 247.3898 246.9047 246.5422 246.4525 246.4578 246.545 246.4178 245.5888 244.7016 242.9102 242.8651 243.0388 244.3094 245.3934 245.1932 245.3353 245.4119 245.9736 247.0752 247.4582 247.4025 247.3575 246.3229 244.4664 244.0674 245.6054 248.5987 251.7455 253.9176 256.3091 253.4526 249.3526 250.8661 253.43 253.1233 243.767 243.4843 243.3981 247.4141 256.0321 257.813 259.1086 260.3334 261.3598 261.9739 261.3326 261.0474 261.7198 254.7648 248.224 245.76 244.9358 244.39 244.966 249.011 253.9529 256.0274 260.5312 262.6653 264.7765 267.3912 269.6026 270.9565 271.4581 272.3606 271.7771 269.2738 268.2803 267.0107 267.3028 269.8833 271.0652 270.0378 268.7792 267.0289 266.4663 266.1676 265.8598 266.0056 266.4799 266.6267 264.8542 262.0437 257.5572 265.1302 267.7864 270.0275 271.8297 272.925 274.3338 275.8736 277.4537 278.3777 279.0455 279.9445 280.4468 281.333 281.0851 281.2546 280.971 -9999 +-9999 -9999 295.0432 295.8031 297.9895 301.1004 302.4315 293.7944 298.2204 299.1189 297.035 299.3177 301.7534 304.523 306.4159 308.3383 313.2963 314.7322 315.1304 316.0424 318.0859 320.6672 326.8806 327.1561 327.175 327.2149 327.0812 327.5394 328.1471 329.6169 331.1971 332.43 332.5579 331.582 328.7665 327.4902 326.3598 325.9648 321.5941 318.4422 321.294 322.7802 323.7611 322.373 321.0681 320.1332 319.2551 317.7121 314.7587 312.9779 311.9518 311.2806 308.7278 306.9197 304.5713 300.6743 297.6564 296.8496 301.0509 306.6001 310.0749 312.6975 315.7775 318.1154 319.9293 321.0396 320.7915 319.4852 318.4704 316.3312 314.8924 315.0409 314.8354 314.3068 312.2767 309.2397 305.748 302.6304 298.5502 293.8611 297.0931 302.987 306.4769 308.5733 308.7938 309.6135 311.783 312.6468 317.799 319.4677 320.1413 320.2215 319.4405 317.4879 315.4145 313.4457 311.941 310.7334 309.7128 308.0628 305.3275 301.3564 297.5765 294.1157 290.2989 285.7862 289.129 292.1433 292.4952 289.0622 284.6323 283.1155 282.3603 280.7886 280.2473 279.4398 277.6416 278.2778 278.7957 278.7321 279.1594 278.9558 279.4281 281.1198 289.3955 289.7753 291.2323 293.4525 294.4318 295.0576 295.2202 293.504 290.6619 282.8394 282.832 286.4733 288.7957 290.4447 290.5301 288.9669 287.73 287.0095 287.8776 291.0735 292.5596 294.1252 295.6927 296.908 298.7459 300.2137 301.5325 303.633 303.914 302.9635 301.4392 300.7057 298.9112 297.8622 295.9396 293.514 288.6907 288.356 289.0345 287.5485 283.6101 278.2669 271.1248 270.4749 271.7352 274.8426 275.3879 277.9906 281.9984 285.2769 288.2704 290.8134 292.1567 291.9288 291.83 292.6503 292.0959 292.7476 294.1336 296.6348 298.8067 300.2743 301.5475 302.8651 302.4 300.4529 299.5154 300.119 300.5057 298.5794 295.6312 292.7667 289.7746 286.5197 289.1631 292.6832 295.7571 298.2519 301.1396 303.0208 304.3966 305.9885 309.5679 311.3674 312.9839 314.4102 315.9493 316.0899 313.8621 311.4696 309.1596 308.0862 307.7373 306.1129 305.5107 306.0432 306.2482 305.2903 304.0207 301.0376 293.028 287.7758 281.9219 280.1517 284.0589 286.2206 288.5152 291.3125 292.4271 295.4294 295.3506 293.8242 294.7049 295.4565 296.1493 296.5262 296.7752 296.2429 293.6143 290.562 286.3187 281.0663 282.9488 286.3198 288.8877 290.145 290.2897 290.0496 289.6145 289.7538 292.4984 294.4351 296.542 297.4854 298.0886 298.9375 299.6409 300.2675 301.2446 301.178 301.124 300.0366 297.995 296.239 295.3041 294.2008 293.6963 292.7752 292.2879 291.0246 289.7005 287.2426 284.3514 282.1922 278.0925 275.6718 272.342 268.4242 268.0851 270.3402 272.7064 272.3723 271.9087 275.8451 278.8376 281.2161 283.5833 284.4703 283.5132 282.5356 281.4418 281.1829 280.582 280.1133 280.0912 280.3446 281.1211 282.4112 283.7723 285.6606 286.9853 288.6568 288.8737 289.4873 290.1504 289.5263 289.155 288.0173 286.8528 286.9061 285.1111 283.8453 283.1 282.2006 282.2742 282.653 282.2238 281.4957 280.995 279.6273 277.6332 276.2117 275.3008 273.4767 270.529 266.8285 266.0663 265.9223 262.5473 260.6843 258.2825 260.6836 261.1211 262.7266 262.9554 262.7144 262.1228 262.2092 262.047 261.5764 263.6226 262.0074 260.5622 257.8975 255.7819 254.9584 255.2486 256.6559 260.6215 264.2163 267.8453 269.3367 269.9157 270.7919 271.3949 274.6469 276.2579 277.1018 276.5719 275.7311 274.8059 274.2415 272.6705 273.6052 273.4009 272.8279 270.6787 267.1306 262.9715 259.5617 256.4805 253.3557 254.6252 254.6121 252.7081 252.0245 250.4064 247.5193 245.7604 246.242 248.211 248.61 246.7445 245.6437 242.6802 241.4879 243.6458 243.6791 244.8605 244.5857 244.2495 244.177 243.6459 243.6319 243.564 243.73 245.4866 247.5386 247.5053 247.2401 246.9588 246.6641 246.5052 246.0879 246.0831 245.9296 245.4777 244.085 242.7155 242.9599 244.9474 245.1801 244.9122 244.7206 244.51 244.3964 243.8047 243.72 243.7158 243.8722 244.1088 243.5501 243.295 243.7001 245.9281 249.1296 252.1525 253.6553 247.4649 244.2949 244.0748 252.545 252.7303 249.6954 243.3102 243.6528 247.1431 256.5512 257.9387 259.1857 260.4297 261.438 260.2623 255.4879 256.0356 253.0304 242.9755 243.3176 243.6127 242.9947 244.329 249.0681 252.6092 255.1868 257.7569 262.2195 264.3006 266.0898 267.3375 268.6959 268.8391 268.9053 269.2503 268.9397 267.028 266.2562 265.5249 266.995 269.5081 270.3978 268.9753 267.4532 265.8275 265.037 265.253 264.8434 264.7151 265.263 263.2282 260.4206 256.8922 262.2379 265.6154 268.3766 270.5298 272.513 273.4636 274.2009 274.9572 275.9229 276.4659 278.5229 279.0851 279.7125 280.3691 281.1456 280.9561 280.8605 -9999 +-9999 -9999 295.0432 295.8031 297.9895 301.1004 302.4315 293.7944 298.2204 299.1189 297.035 299.3177 301.7534 304.523 306.4159 308.3383 313.2963 314.7322 315.1304 316.0424 318.0859 320.6672 322.5122 323.2372 323.7956 325.1189 324.994 324.7927 326.1795 328.339 330.3275 332.487 332.1273 331.9248 328.4855 327.682 325.6387 325.3594 323.5309 318.8517 316.6039 319.0352 321.8715 322.0736 320.6449 319.5545 318.4805 317.9745 317.4948 316.4065 315.458 314.023 309.2368 306.303 301.3137 298.5002 297.5839 300.609 305.0089 308.7758 311.9105 317.0619 317.7905 318.2587 320.24 322.5148 323.7516 322.7867 321.1541 317.8625 318.108 317.4911 317.0294 316.1953 314.1216 311.1606 307.0206 303.9022 299.3607 293.8083 296.364 300.8614 302.6105 304.4491 308.4404 310.8299 312.8002 313.8435 316.9961 318.2699 319.1172 319.5043 319.186 317.5207 315.4908 313.3122 311.7605 308.9577 307.5817 306.4558 304.1361 299.3868 294.1111 290.9419 287.4192 285.5562 291.9799 293.2152 293.819 292.2251 289.2578 285.1003 282.8082 284.4483 287.7712 292.4107 290.5743 286.1342 280.5692 277.522 278.7042 278.7121 278.57 278.9935 286.0221 286.8574 289.7326 291.5437 292.8351 293.3693 293.6268 292.2433 289.7626 282.2916 281.9888 285.6084 287.7479 288.9162 288.7466 286.5851 284.4131 284.6728 291.2714 293.4432 295.349 296.8848 297.9654 298.4312 299.553 301.1631 302.6866 304.7614 305.0351 304.5373 303.3689 302.7707 301.0211 299.0206 297.2456 296.2313 292.5681 291.6491 291.1158 289.8577 287.7593 283.5924 274.183 269.9956 270.3474 273.8725 275.7587 278.2527 282.5102 286.1292 289.8914 292.6099 294.4427 295.282 295.3965 295.8093 294.2213 293.8502 294.5629 296.534 298.7985 300.3766 301.7562 302.4065 301.6995 299.9054 298.4178 297.9163 298.6946 297.5063 295.1136 291.9952 288.5332 286.1586 287.816 291.456 294.2224 297.2961 300.1651 301.5967 303.272 304.9274 308.7404 310.9639 312.7527 314.1779 315.9533 316.6801 315.9288 314.2987 311.8423 307.7516 308.15 307.429 307.1386 307.5259 307.7152 306.993 305.4079 303.2981 297.1151 291.6096 284.9829 279.5861 281.2884 284.0845 287.3223 286.0354 288.3378 292.5925 292.1313 291.8027 293.0609 294.6944 295.5498 296.3907 296.7577 296.555 295.0898 293.1712 289.4595 284.8786 279.4791 280.4677 283.7408 285.9532 288.6866 287.509 287.3425 288.7589 291.2872 293.4023 294.6487 295.6112 296.6872 297.7443 299.1215 300.0212 300.868 300.9054 300.4766 299.383 297.1747 294.6274 292.5836 291.5644 291.1553 290.7331 291.2441 290.8065 288.9847 286.6313 285.0718 283.3871 277.6892 274.7439 272.1339 268.3829 267.8705 269.4091 269.1902 270.7725 271.4651 276.5618 279.2289 281.1156 282.2639 281.9188 281.2596 280.6113 279.901 279.3022 277.9383 277.8998 278.2256 279.1856 280.4206 282.1187 284.3294 285.8421 286.7083 288.3454 289.3088 289.4238 290.0581 290.4922 289.155 288.0173 286.8528 286.9061 285.1111 283.8453 283.1 282.2006 282.2742 282.653 282.2238 281.4957 280.995 279.6273 277.6332 276.2117 275.3008 273.4767 270.529 266.8285 266.0663 265.9223 262.5473 260.6843 258.2825 260.6836 261.1211 262.7266 262.9554 262.7144 262.1228 262.2092 262.047 261.5764 260.7897 258.334 256.2478 255.4744 255.2766 255.2012 257.6426 258.7472 262.2766 265.9801 268.1753 269.8814 271.3304 272.6567 273.0349 274.6515 275.9265 277.3245 277.9951 277.5759 277.3609 275.5076 276.0241 275.4151 276.0146 274.1512 272.1767 266.4919 259.9197 256.6042 254.5504 258.052 258.1187 258.1765 256.5261 254.4279 251.3428 247.8475 248.8046 251.4451 252.6185 252.5585 251.3793 251.125 245.7046 241.2181 244.1524 243.3751 245.0016 244.6266 244.2733 244.1816 243.8719 243.7694 243.4854 243.3459 244.7269 246.8439 246.6954 246.4976 246.5866 246.0609 245.7936 245.4149 245.2247 245.2819 245.1976 244.6617 242.9734 242.8509 245.1366 245.1644 244.7481 244.0192 243.9165 243.6315 243.5208 243.3717 243.2227 242.8575 243.1171 243.07 243.0222 242.8629 243.0804 244.2691 245.8856 246.0672 243.1672 242.86 242.8909 244.847 252.2433 252.3544 245.8417 243.1595 243.7383 253.2342 255.6939 258.0066 258.8954 256.5219 253.2464 246.6818 243.1446 241.9122 242.5941 242.9814 243.3323 243.6572 244.7744 251.365 254.391 256.8415 259.1895 263.0443 264.5662 265.0233 265.7274 266.0494 266.0399 265.9322 266.5506 266.1991 264.9365 264.2549 263.5626 266.8296 268.2856 267.8295 267.3788 266.1493 264.4992 263.5876 264.387 263.8851 263.0464 262.9796 260.1903 256.02 261.4282 263.654 266.5509 267.5503 269.5198 270.6048 271.9436 273.2321 274.2232 275.0224 276.1914 278.0385 278.6637 279.2006 279.899 281.8133 280.9842 281.1857 -9999 +-9999 -9999 299.703 302.1521 304.0718 306.1191 307.2107 299.9504 301.9565 305.468 303.2073 300.9754 301.3048 300.4298 301.9402 303.6822 307.0762 307.0636 307.8992 308.8833 310.4757 313.3591 316.6776 317.8029 320.0981 321.9245 322.8127 322.8101 323.998 326.5078 329.1895 330.682 331.4662 331.6664 328.8475 327.513 326.415 324.3501 322.255 322.7636 320.2249 315.4191 318.0071 320.6243 320.5049 319.621 317.937 316.5304 316.3727 316.7062 316.7455 315.2813 310.1016 306.911 300.9538 297.4977 299.8132 303.509 307.4936 310.4714 312.4456 318.5751 320.2841 321.3557 322.5388 324.0228 325.8662 325.5376 322.1837 321.8544 321.5828 320.3194 319.0557 317.8232 315.9831 312.4877 308.7972 305.3121 300.7218 293.7481 295.5172 297.9977 300.2246 303.8243 307.4731 309.5833 311.7215 313.2721 316.3187 316.9876 317.8285 318.3181 318.2765 316.7877 314.5398 312.6776 310.6351 306.5835 305.0892 303.4439 300.9429 295.0612 289.7393 287.7676 286.2668 290.7142 294.5183 294.5372 293.239 291.1638 287.4964 284.6391 287.8398 290.6825 292.4775 299.7056 298.9392 295.4859 289.0114 280.4128 278.1389 278.4818 278.6797 278.2637 281.3817 284.3856 286.9298 289.2187 291.32 291.8618 291.7649 290.8803 288.2089 281.343 281.5378 284.5868 285.6245 284.898 284.0912 282.8939 284.4416 288.6937 293.6687 295.4433 297.0869 298.8962 300.1285 300.8711 301.4367 302.3588 303.0719 305.0294 306.2035 306.2631 304.9413 303.8549 302.2605 300.2137 297.951 296.6711 294.8915 293.4151 292.3027 292.2785 291.5578 288.5034 284.4701 277.0441 270.7754 273.487 275.2687 278.4221 282.052 285.383 289.1445 291.7912 294.4468 296.1913 297.3231 297.5995 296.5933 295.5477 295.3188 296.6194 298.5091 299.8275 300.6261 301.1025 301.0093 300.1045 298.0193 296.6264 296.4853 295.5055 293.9842 290.2919 286.6789 285.2052 286.8364 290.4433 294.7785 297.2626 299.3629 300.7271 302.2741 304.206 308.146 311.1681 312.8785 313.8577 315.7136 317.093 317.2586 315.7669 312.7461 307.5816 307.5816 308.351 308.2394 308.3382 307.759 307.2173 306.3792 305.4878 300.1961 294.9648 287.1229 280.0802 279.2461 280.8155 282.6666 282.8894 284.5014 287.8879 290.6998 293.2609 294.8995 296.227 296.7821 297.1111 296.746 295.8459 294.9565 293.4868 290.9486 287.0216 280.9916 278.6063 280.3112 285.7184 286.7808 284.7281 286.692 289.0849 291.2377 292.3983 294.1389 294.7913 295.4027 296.61 298.6743 299.3143 299.8858 300.2177 300.1075 298.4007 296.3019 294.2337 292.0612 289.3141 288.6221 288.8615 289.6592 290.5471 290.0931 289.3397 287.0699 283.3871 277.6892 274.7439 272.1339 268.3829 267.8705 269.4091 269.1902 270.7725 271.4651 276.5618 279.2289 281.1156 282.2639 281.9188 281.2596 280.6113 279.901 279.3022 277.9383 277.8998 278.2256 279.1856 280.4206 282.1187 284.3294 285.8421 286.7083 288.3454 289.3088 289.4238 290.0581 290.4922 289.2953 288.5174 288.3093 286.6259 285.2633 284.8908 284.36 284.0475 283.9664 284.0241 283.3928 282.4774 282.4519 280.9639 279.0048 277.631 276.4123 274.535 272.019 269.1815 267.6795 266.4297 263.0023 261.319 261.6577 259.8848 260.4846 258.2012 259.1496 258.8038 258.9322 258.6677 257.7146 256.9784 256.2059 256.0928 255.9492 255.6591 256.9418 257.0291 259.7181 261.2624 262.9272 265.274 267.4818 269.4053 271.2724 272.668 273.9521 275.4905 276.3497 277.4273 278.6956 279.656 279.5157 279.023 279.0026 278.5443 276.2532 272.5211 269.3729 264.9746 257.5547 255.9228 260.5904 261.6945 261.1713 260.3498 257.833 255.0886 250.6425 249.716 251.815 254.2148 256.1144 256.5052 255.8671 255.7817 250.3558 240.5058 243.7157 243.2639 245.0213 244.5607 244.3443 244.0929 243.8673 243.6636 243.4855 243.2753 243.3434 244.8021 245.5005 245.2922 245.0876 245.0068 244.8354 244.7631 244.7404 244.741 244.7975 244.748 242.7932 242.6921 244.8944 244.5149 243.6422 243.1189 243.1542 243.1478 243.2494 243.0763 243.0934 243.0533 243.1115 243.1092 242.9906 242.8811 242.7724 242.5893 242.6991 242.8148 242.7678 242.9045 242.9051 242.881 247.6146 251.4606 251.3647 242.9932 243.5974 249.9872 254.4965 256.2316 248.6969 242.5022 241.8569 241.8087 241.7773 241.6028 242.2541 242.8153 243.1622 243.0062 244.7399 250.4872 254.5409 257.0838 259.0161 262.1557 262.7389 263.0213 262.692 262.9306 262.9138 263.0743 263.7029 263.9745 263.2787 262.7325 261.5653 265.1705 266.0242 265.9751 265.0035 263.6903 262.6094 261.9927 262.5075 262.0281 261.0678 260.9442 255.3164 259.9893 263.3988 265.6769 269.1533 271.1477 272.5679 273.8016 274.686 275.3209 275.769 276.0905 276.5745 277.9271 278.7489 279.4989 280.0917 281.3051 281.1569 281.2654 -9999 +-9999 -9999 302.2126 306.3593 309.1337 311.2564 311.9505 307.9505 301.3274 300.8396 305.5239 305.8477 306.6744 306.292 306.0732 307.5424 310.6739 313.6093 316.1608 317.7863 318.7386 317.2554 317.3249 316.2522 315.7617 318.731 320.0415 320.4079 321.4819 323.9108 327.622 329.1367 330.4006 331.0813 330.0421 328.3643 326.6271 325.7466 324.7227 325.3834 323.3665 318.4414 313.9731 318.5831 319.5905 319.8161 319.2251 317.2474 314.7372 313.6548 314.8715 314.0497 309.1623 306.1901 300.7269 298.5393 302.3528 302.4137 306.9073 310.2888 313.2726 318.0183 320.2374 321.6188 322.0502 323.6666 325.2905 325.1673 324.1665 325.4777 324.4995 322.4233 320.671 318.6463 316.8832 313.153 310.0543 305.7039 301.1009 294.5846 295.5083 296.4077 298.5869 301.9398 305.7896 308.9419 310.5153 312.269 314.5204 315.2473 316.1663 317.6354 317.5372 315.8473 313.5565 311.0761 308.6069 304.8434 302.2845 300.2918 298.943 293.9996 289.909 288.3111 290.976 294.6657 296.4651 293.5287 290.7206 288.3944 287.1195 289.4138 292.9897 295.5115 296.3972 300.8815 302.1529 298.7921 294.5321 289.3206 283.039 276.852 278.4525 278.4917 278.8112 280.1472 284.1855 287.7452 289.4387 289.9178 289.7502 289.051 286.6607 280.2351 280.8392 282.025 281.0474 280.7326 282.6315 285.5307 288.612 290.8956 295.3101 296.9686 298.9134 300.4785 301.8029 302.829 303.8103 304.2746 304.7415 305.1552 305.5595 305.4524 305.7208 305.7125 304.384 301.7995 300.011 297.5824 296.9265 294.5664 292.8074 292.497 292.887 291.2722 288.0241 281.9132 271.5567 270.1117 273.1408 276.4735 279.6478 283.0945 286.8709 290.506 292.7517 294.6491 296.7626 296.4851 296.2274 296.4409 296.4191 296.6235 297.4685 298.0598 298.9969 300.0795 300.2322 299.5847 297.8144 296.3717 294.9267 293.0941 291.5022 289.3012 286.0346 285.162 286.6158 290.7704 294.4088 296.4074 298.1869 299.4385 301.3387 303.5319 308.1665 311.0821 313.7071 314.882 316.0911 317.2675 317.2986 315.6919 313.2237 307.3697 306.839 307.8991 307.8083 307.4238 306.8739 306.3716 305.949 305.2371 301.4884 297.1725 290.3774 283.0615 277.5427 278.802 280.6883 282.3167 284.6468 289.2185 291.9232 294.0334 295.7384 296.4936 297.1389 296.8991 296.2573 294.8778 293.4727 292.5087 290.9486 287.0216 280.9916 278.6063 280.3112 285.7184 286.7808 284.7281 286.692 289.0849 291.2377 292.3983 294.1389 294.7913 295.4027 296.61 298.6743 299.3143 299.8858 300.2177 300.1075 298.4007 296.3019 294.2337 292.0612 289.3141 288.6221 288.8615 289.6592 290.5471 290.0931 289.3397 287.0699 285.7599 278.5024 275.1382 271.2336 268.2533 267.5634 267.9557 269.6725 271.4271 273.3954 276.7501 278.5967 279.6851 279.9687 279.5777 279.3039 278.565 278.1429 277.9358 275.9879 275.738 277.6268 280.4298 282.895 283.9534 284.95 286.4155 286.9559 287.9199 288.3753 289.3869 289.5268 289.9282 290.0946 290.0611 289.2317 288.0158 285.0216 284.4704 285.0279 285.3095 285.5293 285.6709 284.4928 283.6208 283.4443 281.4477 279.5197 277.4043 275.7568 274.2099 272.2943 269.6809 267.0607 265.969 265.427 264.598 261.4517 263.0175 261.332 260.3645 259.407 258.4536 258.3449 257.5369 257.6084 257.1487 257.1562 257.5384 257.1725 257.543 258.9304 258.9345 259.5199 262.1859 264.2277 266.0876 267.8723 269.2914 270.628 271.6834 272.8147 275.4994 276.4446 277.5687 279.4945 280.9357 280.9972 281.5059 280.5076 279.7096 274.7649 269.9238 265.5321 263.2923 259.409 259.027 261.053 263.3501 263.1159 262.7102 259.0795 254.8106 253.0824 254.1287 256.0948 257.3789 259.2119 260.3958 260.4101 259.7948 254.4086 241.3514 242.4799 243.6275 243.7966 244.1782 244.413 244.3377 244.3388 244.1012 243.4657 243.2347 242.7555 242.8548 243.596 244.4221 245.0089 245.3154 245.474 245.441 245.5025 245.2642 244.8325 244.4511 243.1089 242.0384 243.1312 242.9127 242.9641 243.1118 243.1284 243.2177 243.483 243.4585 243.5739 243.518 243.2764 243.2302 243.1689 243.1459 243.0738 242.9756 242.9942 242.9418 242.7137 242.7701 242.7565 242.7455 242.8698 250.5978 250.9161 246.9374 242.9766 247.2351 250.5798 248.0169 241.7819 241.7895 241.7427 241.7113 241.5721 241.7377 242.1407 242.4323 242.5462 242.4933 242.821 244.4403 251.3868 255.4959 257.7269 260.0657 260.2868 260.2333 260.1098 260.3622 260.3582 260.7012 261.4279 261.8663 261.7297 261.1911 260.9799 263.1328 264.2324 264.0614 262.7924 261.6768 259.9914 259.1984 258.8589 258.993 258.8057 256.5316 257.8648 263.173 265.1924 266.812 269.7267 271.529 272.8274 273.9871 274.8864 275.0585 275.2584 275.2121 275.436 277.1649 278.5774 279.802 280.7226 281.5426 281.9038 281.7188 -9999 +-9999 -9999 302.9559 307.1916 311.0321 313.9563 315.8279 312.8242 308.1318 301.124 303.5091 306.9267 309.5999 311.4846 311.8965 313.4326 317.8159 319.4526 321.7443 322.9281 323.5026 324.3453 325.1314 324.6138 323.4327 320.2239 321.2072 321.469 321.3694 322.4359 325.3812 327.6853 329.4296 330.3112 331.1005 330.1581 328.6801 326.7129 324.6673 324.2495 324.3756 321.4388 315.7252 314.6308 316.9858 318.1164 318.8676 319.7267 317.1279 313.0718 310.524 310.7835 306.85 301.7654 299.1591 299.8178 304.6262 307.9072 306.7586 306.3585 309.6784 316.5984 318.4898 319.7536 321.2272 323.9247 325.7338 326.4927 327.1582 327.9792 326.2334 323.2299 320.5844 317.8607 315.9722 313.819 309.6848 307.5916 303.3121 296.0155 295.2119 296.0311 298.0251 300.4454 302.8597 305.8046 307.8215 308.9779 312.3468 314.4079 315.9333 317.6418 316.908 314.8131 312.6431 310.1687 307.5154 303.1791 301.7055 298.2953 294.8126 291.8365 292.4111 293.1276 296.9845 298.6953 296.9496 291.981 289.5669 289.0822 289.6061 293.6157 293.6758 297.6791 299.5077 301.894 303.3396 301.4482 298.313 293.6539 286.178 278.9295 278.6341 278.3305 278.1138 279.3326 282.7267 285.1446 286.9343 287.5292 287.687 287.2456 284.5347 279.2352 279.1179 279.8022 283.2823 286.0787 286.7095 286.9483 290.0639 292.1977 296.0378 297.7542 299.7045 301.7839 303.129 304.1071 304.8819 305.1313 304.951 304.1194 304.3498 305.5866 305.5716 306.0895 305.8548 304.4943 301.4144 299.1935 298.1816 296.5679 293.1631 291.5415 291.659 292.2457 290.0859 283.8927 274.1133 269.212 269.9027 270.6611 274.4043 279.4726 283.4315 287.1454 290.3747 292.4655 294.6807 294.7514 295.2652 295.3878 295.5136 294.9944 295.3109 295.5866 296.7564 299.6127 299.4332 298.9892 297.7215 296.4059 294.9757 292.5753 289.8539 287.961 285.4272 285.2126 287.9282 290.8339 293.6017 296.0284 297.9656 299.3537 301.1834 303.2708 308.3407 311.3694 314.2782 315.521 316.6884 317.2276 316.8259 315.6919 313.2237 307.3697 306.839 307.8991 307.8083 307.4238 306.8739 306.3716 305.949 305.2371 301.4884 297.1725 290.3774 283.0615 277.5427 278.802 280.6883 282.3167 284.6468 289.2185 291.9232 294.0334 295.7384 296.4936 297.1389 296.8991 296.2573 294.8778 293.4727 292.5087 290.5824 287.3519 281.4464 278.062 279.212 284.6227 283.6145 283.9939 287.2637 289.486 290.8353 292.1238 292.834 293.8865 295.2895 296.1574 297.297 297.913 298.9209 299.7702 300.0202 298.2002 295.4953 293.1347 290.8612 287.4054 287.2108 287.4513 288.14 289.9858 291.029 291.1788 289.7524 286.797 278.8983 275.4298 270.9538 267.9328 267.296 268.2648 269.881 271.4903 273.0179 275.7165 277.1362 277.6998 277.5694 277.5302 276.9277 275.9905 275.4625 274.1357 276.7064 278.9474 280.6581 282.7009 284.7896 285.4256 285.9685 286.5164 286.8223 287.4396 287.7907 288.1054 289.2539 289.265 289.8999 289.9869 289.4503 288.3206 285.8015 284.6462 284.3741 284.8391 285.1831 285.5798 285.1863 284.7632 284.7152 281.6129 279.4702 277.3765 275.4432 273.7521 272.2145 269.8107 267.6327 267.5274 268.1601 267.3732 267.0073 266.0715 265.5667 265.068 264.2034 261.7761 260.921 258.9971 258.9339 258.4869 258.6526 259.094 259.5279 260.2299 260.519 260.2132 261.0483 262.8167 264.8238 266.5651 267.81 269.0755 270.0516 271.7733 273.7122 276.2813 277.6155 278.8183 279.7905 281.1564 282.2152 282.562 281.8566 279.9914 272.1053 268.4023 266.0115 264.308 262.1561 262.1186 263.6157 264.9307 265.2809 262.4531 258.6526 253.8825 253.6196 257.2685 259.115 260.5357 262.4032 263.7106 264.7747 263.3031 256.5371 248.2915 240.3459 240.4044 240.4528 240.4936 240.5683 241.8196 244.1051 244.6905 244.2737 243.6444 243.2643 243.1259 242.703 242.7064 243.1314 244.8309 245.3897 245.6192 245.5975 245.3466 244.6941 244.3727 243.7371 243.1424 243.4119 243.4 243.6122 243.7275 243.7019 243.707 243.703 243.6716 243.7713 243.5213 243.6376 243.4921 243.3092 243.1672 243.1193 242.9959 243.0115 243.0455 242.983 242.7934 242.7142 242.6567 242.5746 244.005 250.5288 250.6427 243.306 244.0865 242.5864 242.0962 241.9179 241.8561 241.5764 241.6519 241.6936 241.7546 242.078 242.1684 242.2477 242.1553 242.2021 244.8131 252.2098 255.2155 256.5779 256.9246 257.0303 257.1051 257.305 257.2551 257.9934 258.0089 258.8326 259.6727 259.4332 259.0447 260.1974 262.3247 262.3307 261.6957 259.8809 257.9748 256.3953 255.8302 256.0325 256.3387 255.4788 255.2578 261.9028 263.1574 264.8515 266.6534 269.3538 270.5213 271.8651 272.9969 273.4201 273.4038 273.2787 272.9947 273.5976 276.8929 278.4478 279.9247 281.0375 282.0496 282.4698 282.3853 -9999 +-9999 -9999 301.676 306.5648 311.0464 314.4723 318.4261 316.9101 314.0661 308.2268 301.5341 304.2208 308.2829 311.8229 314.2201 315.7918 319.6194 321.6216 323.5398 325.2481 326.5399 327.706 328.6504 328.4794 327.1267 322.2474 324.0313 324.3113 323.9483 323.4487 324.5801 326.6655 328.3971 328.9213 330.342 330.1549 329.3176 327.7211 324.8289 323.4042 323.028 321.9544 319.2176 312.6458 312.4152 315.6406 317.129 318.0222 317.3651 314.6982 311.3759 307.6628 303.4888 301.2257 299.1884 300.0075 304.8786 310.1608 313.6852 314.2534 310.8935 314.0472 316.3993 318.3428 321.0455 323.6503 325.9878 327.2048 328.3611 328.9055 326.3456 323.3977 321.0292 318.5856 316.6891 314.8602 312.6997 309.4523 305.6677 296.3624 294.5967 296.0872 298.5634 302.1553 305.1029 307.58 309.3275 311.178 313.9875 315.2539 316.7081 317.9658 317.0407 314.8695 312.9629 310.8312 307.6406 300.0149 297.7399 294.2208 294.7706 296.1689 298.5823 301.0432 302.6407 302.9632 296.49 290.9073 292.0113 293.4363 295.2982 297.7723 296.6446 297.9305 301.2633 304.0609 304.4984 302.6345 300.2281 296.9758 290.9737 282.4315 278.2047 277.944 278.1196 278.4826 280.7483 282.5708 284.5051 285.2291 286.1637 286.0689 282.5978 278.2067 279.5773 284.8058 289.5327 292.0474 291.4185 290.3896 291.7627 293.0016 296.4122 298.0522 299.7825 301.2972 302.4014 302.9424 303.4195 302.7948 302.9969 302.71 303.5272 303.8206 303.3907 304.3055 305.7592 305.2619 303.3171 300.7267 298.0908 297.9158 295.0037 290.9554 288.3019 289.7568 289.1316 284.2497 275.7654 271.0579 269.5318 268.944 270.3974 274.5258 279.0926 283.7396 287.122 289.0446 292.6667 293.6013 293.985 293.6291 292.623 294.9944 295.3109 295.5866 296.7564 299.6127 299.4332 298.9892 297.7215 296.4059 294.9757 292.5753 289.8539 287.961 283.2567 285.2126 287.9282 290.8339 293.6017 296.0284 297.9656 299.3537 301.1834 303.2708 308.3407 311.3694 314.2782 315.521 316.6884 317.2276 316.8259 315.1563 313.1024 306.7194 305.7518 306.8017 306.4472 305.9293 305.1353 304.7353 304.1981 303.593 300.1218 296.8513 291.8003 286.3015 283.4406 277.9633 277.3894 280.2424 283.4498 288.342 290.4508 292.7271 294.3951 295.039 295.7385 296.094 295.7296 294.6612 292.3828 291.5176 288.8736 285.4293 280.7559 277.3529 281.2247 282.8676 278.6487 283.668 286.2556 288.0454 289.6656 290.5285 291.8813 293.2118 294.5258 294.8458 295.8942 296.8161 297.6194 299.108 299.6113 298.0879 296.0836 293.0552 290.1787 286.1851 285.3498 286.6159 287.8742 289.4801 290.5183 290.5756 289.0805 285.7616 279.755 274.9781 269.5702 267.5114 266.7783 267.4535 270.0146 271.522 273.2352 274.5807 275.1869 275.6939 275.0301 273.8927 272.7403 272.7763 273.8383 275.4907 279.7659 281.2295 281.8625 283.0628 284.4042 285.8488 286.3249 286.2903 286.3075 285.8164 286.729 287.4714 287.9461 288.7347 288.7924 289.228 288.9412 287.9531 286.3718 285.3063 284.0162 283.5892 283.7978 284.0517 284.4569 284.6427 284.2642 281.403 279.1307 277.4479 275.7973 274.305 272.2639 270.4245 268.5975 269.446 270.1877 269.7637 269.8511 272.5821 272.605 271.7275 269.9346 267.4311 266.0547 261.2163 260.3277 259.8311 259.8671 260.6459 261.6101 261.9748 261.2759 261.1588 262.6522 263.5188 264.2861 266.0601 268.0942 270.0646 271.9496 273.6707 275.2173 278.4404 279.0876 279.8292 280.7602 281.7276 282.4504 283.0204 282.3433 280.4553 272.7582 270.6191 269.3005 267.01 265.9258 265.7213 265.9852 266.3456 265.5926 261.2634 256.569 254.6169 258.6288 261.0541 262.9496 263.3849 264.7251 266.8333 269.2385 265.6348 258.7 251.0208 254.0586 254.876 251.1348 245.6452 244.6417 244.0427 240.4939 242.3522 243.9392 244.9031 243.9812 243.5101 243.0931 243.0104 242.7106 242.77 243.091 243.428 243.4945 243.3924 243.2564 243.0728 243.0873 243.1249 243.9509 244.0797 244.0722 244.0004 244.1584 244.4522 243.8945 244.5189 244.2447 244.029 243.8328 244.0911 244.0877 243.5671 243.2 243.0798 242.9249 242.9152 242.8453 242.8313 242.7901 242.6771 242.6455 242.6459 248.2896 249.9075 247.3725 242.7184 243.094 242.206 242.1451 241.8685 241.6574 241.6848 241.722 241.7773 242.0073 242.4691 242.3275 241.944 241.9947 243.2316 252.2371 254.4203 254.6616 254.4802 254.5163 254.2654 254.4916 254.6346 255.2259 255.8501 256.4858 257.296 256.4232 257.4281 259.3487 260.2138 259.9249 258.991 256.7145 254.5109 253.8435 254.1078 254.2163 251.6464 254.556 260.2747 262.2087 264.0064 265.6605 266.898 269.5433 270.4558 271.4183 271.6372 271.605 271.6501 271.4527 271.2482 272.742 276.8279 278.4846 280.013 281.1004 282.1048 282.7765 282.6196 -9999 +-9999 -9999 298.2704 305.0568 309.7912 313.5368 318.7549 319.2035 317.9628 314.3792 307.4434 302.8836 307.7799 311.4195 312.8549 313.2318 316.7857 319.13 322.03 325.3213 328.2676 330.17 330.4958 329.5537 328.0155 325.304 326.6942 326.7687 327.238 327.4746 326.7706 327.4424 329.0827 327.7133 328.3308 329.1106 329.1125 328.1372 326.0089 323.6653 322.2348 321.0777 320.9919 318.1609 313.3373 310.2122 312.4416 314.137 315.1908 314.5727 312.2979 309.2651 303.3792 300.9787 299.7423 300.0026 305.3391 311.1142 315.1021 318.275 318.8089 313.295 314.6597 317.5057 320.6842 323.1931 325.1176 326.8575 328.1223 328.1358 325.7264 323.2744 321.0018 318.4484 316.9874 315.4221 312.978 310.3502 307.5208 296.9323 295.9557 296.0801 297.9634 301.8377 305.0254 307.5912 310.2936 311.9885 315.1131 316.7755 318.1583 318.5427 317.9401 315.9252 313.9893 310.7702 306.3326 298.1971 295.3115 299.5601 301.6968 300.5294 303.3754 305.0494 306.5182 306.1851 297.0186 291.5259 295.9747 297.3725 298.6594 300.4588 300.7686 300.5084 302.895 304.8013 304.1843 302.7986 300.2435 297.435 292.348 284.6082 279.3967 278.0644 277.9781 278.284 279.5305 280.6703 282.2168 283.7885 285.5417 285.4135 282.8872 278.0552 283.1995 287.873 292.1558 294.5186 294.2033 293.4145 293.9691 294.8979 296.5259 297.6422 298.7112 299.1826 300.3974 300.9096 301.222 301.0226 301.5479 301.4901 301.771 303.8206 303.3907 304.3055 305.7592 305.2619 303.3171 300.7267 298.0908 297.9158 295.0037 290.9554 288.3019 289.7568 289.1316 284.2497 275.7654 271.0579 269.5318 268.944 270.3974 274.5258 279.0926 283.7396 287.122 289.0446 292.6667 293.6013 293.985 293.6291 292.623 292.6982 292.3184 292.7069 294.8603 298.7638 298.5054 298.3215 297.6385 296.2285 293.9861 290.4079 287.0436 285.8117 282.412 285.7062 289.3925 291.8769 294.4661 297.4135 299.0624 300.2625 301.732 303.6906 308.9107 311.5337 314.1198 315.3568 316.1667 316.9639 316.6484 313.9577 311.8753 306.173 304.6005 305.5035 305.8105 304.6759 303.1808 302.291 301.7285 300.3988 296.3924 293.7048 290.9767 287.6445 284.8814 282.0501 278.9798 277.7587 280.2367 285.3046 288.0275 290.4528 291.9972 292.7498 293.9709 294.4312 294.1927 293.4506 292.1204 291.7656 290.1808 287.531 283.4979 275.7845 277.833 278.7758 278.824 283.0844 285.4293 287.2288 288.7633 290.5224 291.0586 291.5406 292.3919 292.9203 294.4696 295.6773 296.8599 298.1734 299.6918 298.1286 294.9765 291.7069 288.7401 283.9445 283.4906 285.6487 287.9181 288.2886 288.9546 288.4293 287.1682 285.0478 280.5437 276.2968 271.7398 267.2696 266.4358 267.1412 269.0939 271.2244 272.0407 273.0845 272.3534 271.7717 272.1813 273.202 275.4141 276.6039 277.3025 279.4276 282.0546 282.6155 283.4901 283.721 284.896 286.4034 286.5969 286.2695 285.6781 284.3712 285.1543 286.3186 286.4402 287.4521 288.1632 288.4034 288.0792 286.4848 285.7531 285.3611 284.6255 283.5794 282.6372 282.7248 282.9431 282.937 282.8276 280.4635 278.3202 276.3762 275.0838 273.5604 271.5511 270.6963 270.9897 271.3336 271.0885 271.5433 273.5533 277.8726 279.3572 278.2991 276.6601 274.2392 269.902 262.0438 262.2713 262.0211 260.831 261.1389 262.3614 263.4361 262.2872 261.8787 264.5143 264.379 265.478 267.0787 269.0432 270.743 272.7677 274.5543 276.7461 278.6934 279.2749 280.4598 281.4302 282.0181 282.5394 282.8535 282.0776 280.8489 276.9632 275.8365 273.5407 272.3649 271.2614 269.7065 268.2843 266.7729 265.0203 260.1152 255.2936 260.4052 262.7044 264.2798 266.4234 267.2573 268.1812 270.3505 270.9142 268.3794 261.7653 257.379 260.7901 260.7875 257.7825 251.8075 245.9464 244.2801 243.5365 240.6107 240.4702 244.1721 244.7616 244.1543 243.437 243.2891 243.1073 242.8302 242.8802 242.9887 243.1974 243.1994 243.0972 243.1981 243.3122 242.705 243.9365 242.6163 242.2117 241.0645 240.9954 240.8123 240.8076 240.7485 240.6044 241.287 244.0874 244.153 244.1952 243.9227 243.3138 243.0346 242.9664 242.8935 242.9179 242.83 242.703 242.6865 242.6904 242.7905 243.0507 249.7049 249.6531 242.8961 242.2899 242.4741 242.0133 241.7253 241.7765 241.737 241.9184 241.8588 242.4088 242.3165 242.0322 242.4383 242.6008 244.3746 251.5431 252.3436 252.3081 251.9823 251.7721 251.7401 252.2347 252.9506 253.5359 253.7491 253.5602 254.7491 253.8895 256.4516 257.4174 256.8349 256.9374 255.5976 253.4944 252.1673 250.1365 250.9529 252.5278 258.6061 260.0752 261.6942 263.3588 264.6987 266.1033 267.2204 268.7294 269.2127 269.5215 269.5923 270.0172 269.6938 269.1735 270.3141 272.0421 276.9985 279.0524 280.6851 281.9743 282.8465 283.7036 283.5238 -9999 +-9999 -9999 301.9835 301.7166 308.1256 312.2738 316.6871 318.3828 319.2482 317.8255 314.0259 305.8954 306.0378 308.6553 311.7088 317.1954 319.6139 321.8769 324.0573 325.1941 327.8003 330.5158 331.0061 330.889 329.3952 327.7999 329.022 329.0763 329.7129 330.053 329.6709 329.1494 328.9548 327.4398 326.0649 327.3091 328.253 327.9608 326.7881 325.0466 323.5219 321.4942 319.8888 319.7494 318.1087 313.8059 309.9956 307.7874 310.418 312.4477 311.1456 308.5043 302.5809 300.6433 300.1917 301.3222 306.9157 311.3976 314.9135 318.4553 320.6913 321.4183 320.2381 320.8099 321.0457 324.2614 326.2069 327.7241 328.0109 326.1894 323.6029 321.4934 319.4649 317.0057 314.4852 313.5673 312.3277 310.1883 307.3956 297.069 296.3802 296.1378 297.1021 301.563 305.0822 307.875 311.609 314.275 316.7291 317.8159 318.9382 319.4596 318.4211 316.1697 313.3947 308.8952 304.079 297.7886 299.6381 303.1117 304.7975 303.8703 305.1186 307.9406 310.5422 308.6923 297.2932 293.8181 298.7335 300.3032 301.5281 302.8949 303.7645 304.1694 304.4372 303.9964 303.0985 300.8573 298.5435 294.656 288.9044 282.7382 281.6584 278.2648 277.9781 278.284 279.5305 280.6703 282.2168 283.7885 285.5417 285.4135 282.8872 278.0552 283.1995 287.873 292.1558 294.5186 294.2033 293.4145 293.9691 294.8979 296.5259 297.6422 298.7112 299.1826 300.3974 300.9096 301.222 301.0226 301.5479 301.4901 301.771 301.7245 302.0181 303.1302 304.882 305.2311 303.8512 302.3078 298.0724 296.973 295.5437 292.3231 289.7008 285.5369 284.9681 282.318 277.0449 274.3851 269.2227 268.2428 268.2981 270.4994 276.1715 280.9176 282.2151 285.6381 292.0601 292.7756 292.5307 289.1804 288.3945 289.3169 291.1443 292.1156 294.8567 297.8673 297.5793 297.4828 297.1734 295.9536 293.9879 289.4827 286.0886 283.9532 280.8304 284.477 289.1752 291.8401 294.1986 296.9167 299.023 300.2406 301.7585 305.9851 308.694 311.0868 313.3732 314.2437 315.1717 316.2841 314.7463 311.4534 309.0014 305.2752 303.6872 304.0081 305.0194 304.2943 302.9033 301.4077 298.9709 296.7868 292.4127 292.0219 290.8525 290.8666 289.3558 284.0696 277.1244 275.8114 277.8056 282.5749 285.8356 287.4483 288.216 290.1145 292.3228 293.4349 293.2803 291.7114 291.381 291.9096 290.8517 287.8715 284.0155 278.0666 276.4755 277.1565 280.8697 283.6964 285.8048 287.6921 288.9985 288.7928 288.4298 289.9671 290.7358 291.3126 293.3289 294.4297 296.0134 298.0465 299.909 298.3372 294.1692 289.991 286.9283 281.3494 281.4112 283.727 286.0567 286.3549 286.5146 285.9639 285.0062 283.6342 279.7513 276.9152 273.7115 268.0719 266.3585 266.8447 268.2209 270.3797 271.3131 269.8895 269.6389 272.574 274.6531 276.2535 277.797 278.64 280.6662 282.3788 284.8568 285.0681 285.2679 285.4628 286.0733 287.0405 286.804 286.0878 284.7903 282.9722 284.4139 284.4838 285.677 286.2582 286.9119 286.7478 286.6785 285.3652 284.4326 284.3221 284.1513 284.0524 283.0613 282.0837 281.5074 281.3786 280.9799 278.9281 277.328 275.3416 273.6492 272.6252 272.6179 272.7443 273.4017 273.7164 271.2143 273.0968 275.0825 280.4993 283.3027 279.6022 275.21 272.6526 268.7095 262.8745 263.1925 263.458 262.8166 263.9693 264.152 264.6709 264.0028 263.7114 266.3158 266.1896 266.7251 268.2916 269.5565 270.5892 272.5237 274.0023 275.1986 277.3055 278.4856 280.1811 281.8147 282.5354 282.4165 282.0979 281.3693 280.4578 278.0678 276.6154 274.9388 274.1458 273.617 272.3446 270.6424 268.0363 265.3174 261.1058 261.968 264.8084 266.9298 268.6403 269.8653 271.0814 272.3435 273.0538 273.9546 272.2113 269.0891 266.8213 266.1342 264.0329 260.5005 255.5394 252.4582 246.599 245.0658 244.1606 241.9638 240.4593 244.2194 244.39 244.8146 244.1707 243.5827 243.4726 243.5515 243.3037 241.5307 240.1999 240.2713 240.3429 240.3295 240.4162 240.9733 242.6705 243.6694 243.9041 244.4198 244.5432 244.4924 242.8869 242.8221 244.5811 242.1416 240.4445 240.1889 240.0434 243.3267 243.6915 243.2575 243.2061 242.9177 242.8837 242.7936 242.7625 242.8409 242.8655 242.7075 246.4859 248.8895 242.5607 242.7326 241.7771 242.2186 242.3358 241.9527 242.1598 242.4422 242.1426 242.3561 242.3535 242.6938 243.2327 244.0868 247.6612 248.5946 249.3916 249.6002 248.2461 247.6125 247.1781 248.2016 249.5465 249.9833 250.8196 250.7565 252.133 250.96 253.4117 253.9034 253.3372 253.3412 252.4668 250.5038 249.9482 251.8572 254.5052 256.823 258.3026 259.7107 261.5613 262.7762 264.0516 265.1892 267.2204 268.7294 269.2127 269.5215 269.5923 270.0172 269.6938 269.1735 270.3141 272.0421 276.9985 279.0524 280.6851 281.9743 282.8465 283.7036 283.5238 -9999 +-9999 -9999 308.7088 300.4245 302.9973 307.8797 315.0674 317.8932 319.6067 320.7488 319.8221 316.1426 308.0329 306.5362 310.3169 317.2216 320.5643 324.1254 326.63 328.2761 329.7705 331.1135 331.6754 331.7458 330.5168 330.3667 331.2262 331.555 331.6398 331.4163 330.5024 329.6672 328.1479 327.1215 324.793 324.9239 326.3259 326.7363 325.807 324.4426 323.1895 323.2209 321.5201 317.2916 317.1309 316.205 314.5008 311.4273 307.1407 306.472 307.2469 305.5189 301.0318 300.8537 300.3059 304.8977 305.8421 307.3667 310.3177 313.7193 318.0052 324.3367 325.6811 325.427 324.9317 326.2081 327.4583 328.6458 327.7545 325.7674 321.6407 319.717 316.416 313.675 311.0204 309.3025 310.0743 308.2664 305.8524 297.9738 296.5694 294.9758 296.2987 298.8588 303.1855 306.7159 310.6679 314.0958 316.9936 318.5947 319.6828 320.2322 319.0887 316.2931 313.0641 309.6458 304.079 297.7886 299.6381 303.1117 304.7975 303.8703 305.1186 307.9406 310.5422 308.6923 297.2932 293.8181 298.7335 300.3032 301.5281 302.8949 303.7645 304.1694 304.4372 303.9964 303.0985 300.8573 298.5435 294.656 288.9044 282.7382 281.6584 278.2648 276.1707 277.0999 278.7437 279.0092 280.2194 282.3734 284.1729 285.066 283.9232 277.6918 284.0974 288.1254 291.6927 294.4875 295.3268 295.3726 295.7097 296.4531 296.332 296.6606 296.8358 296.6065 297.7349 298.1766 299.649 300.2702 299.8806 300.1378 300.0571 299.9835 300.6599 302.1328 304.264 305.1077 304.516 302.9736 298.7268 296.3607 295.7699 293.0869 290.46 287.5517 282.6377 281.9907 281.9935 276.9525 273.9444 268.9093 268.18 268.7912 275.1123 277.737 279.7416 284.4413 289.2969 288.9258 287.8587 285.0611 285.3705 286.3423 289.3007 291.4709 294.0652 297.023 296.5706 296.6088 296.4835 295.8509 294.3486 290.5754 286.9642 284.0063 279.8698 283.1643 287.5328 290.8691 293.0337 295.4656 297.2753 298.8185 300.2848 304.6731 307.5211 309.6629 311.7578 313.3898 314.8022 316.2105 315.6184 312.6839 306.1992 304.2365 302.6003 302.1541 303.3038 303.2562 301.7838 301.224 300.7446 299.7437 296.6084 296.1878 295.9013 295.2179 292.3082 286.1171 279.3304 276.1331 276.3987 280.4597 283.1617 284.4616 287.0631 290.335 291.9121 292.9188 292.0133 290.3008 290.1921 291.2112 290.8202 287.8949 283.1864 276.6285 276.1069 280.4858 282.6911 284.0695 285.1836 285.2943 285.7904 286.4752 287.7869 288.9304 290.6064 291.4332 293.7917 294.6095 296.186 297.9486 299.9587 298.2047 292.8194 287.0606 283.9876 279.6078 280.0176 282.2482 284.2615 284.4173 283.9013 283.1733 283.1123 281.7998 276.0396 275.5975 273.8433 268.8554 265.6989 266.6519 268.2903 269.9229 269.5015 269.8336 271.7996 275.6259 278.6819 279.9231 280.1646 279.8232 280.7726 283.3812 287.4279 288.5924 288.1551 288.388 288.0355 287.6274 287.8734 286.0242 284.2885 281.9789 282.3409 282.7856 283.8266 284.4513 284.7842 285.0955 284.8987 283.5741 283.2708 283.2963 283.1438 283.2485 283.3549 283.1546 281.8081 280.4872 279.3902 277.4467 275.8281 274.5505 273.8273 273.9283 274.1001 274.2999 274.5344 274.627 271.1745 274.2407 275.988 282.1529 281.7358 275.8091 271.6935 267.6072 264.5879 264.6652 265.5074 266.4901 266.6746 266.5369 266.6606 266.3899 266.0681 266.9295 267.9448 267.7387 267.4888 268.498 269.8558 271.0316 272.1839 272.963 274.7015 277.3901 278.8034 280.3566 281.5242 281.815 281.2516 280.7693 280.4812 279.2198 276.7858 276.4434 275.5462 274.8157 274.1939 273.1309 271.5453 268.6127 266.3754 264.1888 265.7335 267.75 270.201 272.2224 273.2404 273.8895 274.1697 276.2494 276.9 276.1318 274.3242 271.776 269.8017 267.002 263.2598 259.3 256.5435 249.3281 250.1664 247.3142 243.6637 244.2484 240.4225 241 245.1374 244.6124 244.0697 240.5104 240.2657 241.1037 244.8685 244.1934 246.5513 245.4779 245.0747 245.3921 244.9223 244.8908 245.0538 244.7849 244.7481 244.7671 244.9507 244.5354 244.1514 243.8584 243.6008 244.0177 244.4216 244.394 240.706 240.1226 244.1542 243.297 242.9938 242.8357 242.9409 242.9251 242.9557 242.9586 242.9346 242.5651 248.8247 243.1752 242.4837 242.4451 242.1506 242.3358 241.9527 242.1598 242.4422 242.1426 242.3561 242.3535 242.6938 243.2327 244.0868 247.6612 248.5946 249.3916 249.6002 248.2461 247.6125 247.1781 248.2016 249.5465 249.9833 250.8196 250.7565 252.133 250.96 253.4117 253.9034 253.3372 253.3412 252.4668 250.5038 249.9482 251.8572 254.5052 256.823 258.3026 259.7107 261.5613 262.7762 264.0516 265.1892 265.7928 265.9845 265.4414 266.2875 267.3697 267.9917 266.5751 268.274 271.5026 273.6603 277.7528 279.6997 281.6259 283.1043 284.1465 284.8219 283.6526 -9999 +-9999 -9999 314.955 307.7148 303.0578 308.3869 315.4159 317.741 319.8314 322.3415 323.0436 321.5877 316.3363 308.7929 308.5558 315.8962 319.8897 322.5736 325.2159 327.6209 330.4856 332.3903 332.5541 332.1811 331.7905 331.6921 332.1867 332.537 332.7176 331.8091 330.9905 329.9662 328.9817 326.4568 325.0485 323.6848 323.8704 325.0381 324.6779 322.4418 321.2406 321.5336 320.9996 316.7134 315.1756 315.0907 314.3614 313.4456 311.1859 307.4814 305.8601 303.0241 301.2831 300.7208 302.2779 310.5378 313.3288 311.5156 314.3271 316.7384 316.5893 323.5684 325.3901 326.6339 327.6341 328.1943 328.8014 329.0543 327.7545 325.7674 321.6407 319.717 316.416 313.675 311.0204 309.3025 310.0743 308.2664 305.8524 297.9738 296.5694 294.9758 296.2987 298.8588 303.1855 306.7159 310.6679 314.0958 316.9936 318.5947 319.6828 320.2322 319.0887 316.2931 313.0641 309.6458 305.6681 302.7658 305.3224 306.5717 307.6268 307.1591 307.4982 308.9129 310.1946 308.2332 297.1551 297.5211 300.9203 302.178 303.9877 305.1454 305.8846 306.306 305.5544 302.8852 301.0017 298.7056 295.8839 290.5467 287.7261 290.1378 288.2773 282.8475 277.7015 277.7411 276.9952 277.5547 277.5051 277.9828 280.472 283.0294 284.5916 276.7266 281.1451 284.6455 288.0318 291.0987 293.8768 294.2892 295.0276 295.873 294.9204 294.5876 293.2026 293.894 295.864 297.265 298.1819 298.5118 298.7741 298.2323 297.9953 298.3826 300.1288 301.6619 303.249 304.432 304.3491 303.2954 300.1383 297.7461 295.6218 293.1807 289.7583 288.3686 287.261 288.0126 287.8435 285.1225 282.0156 277.1636 271.2471 267.1176 271.524 273.6192 275.4689 279.3157 283.7103 282.2813 281.4411 281.2264 283.6132 284.3402 287.669 290.4217 292.7724 295.5446 295.3472 295.4413 295.4998 294.8105 293.6386 291.2062 287.7256 284.0735 278.8926 280.7029 283.8637 288.2763 290.9818 293.2639 294.9377 296.9613 299.2597 303.6076 306.5494 309.3433 313.1054 315.0779 315.9233 316.7512 316.5117 314.9487 307.4811 303.1819 300.5355 299.6196 301.2834 301.5529 300.257 299.132 299.2499 299.7834 298.3403 297.2365 296.1994 294.8969 291.7905 287.5238 282.4837 277.7807 275.0024 279.0139 281.3106 284.7495 288.2144 290.5047 291.4289 291.9252 290.5718 289.0207 289.3424 290.7975 290.5143 287.9058 283.7665 277.4216 276.9753 280.7638 280.2088 281.7551 281.0016 284.9861 286.9704 288.7022 290.6898 291.8979 293.3161 295.0626 295.8544 296.1792 297.4636 299.0035 299.8805 296.9402 291.6479 284.7494 280.2952 277.4233 278.4447 280.7575 282.5901 282.8751 282.336 281.6577 281.3381 280.6801 277.371 275.3494 272.5644 268.6062 265.7967 266.0403 267.1257 268.2226 267.7678 269.3476 273.6111 277.2484 279.4337 281.9004 283.0558 283.3246 283.631 284.0247 287.1732 289.8274 291.231 290.6791 290.0101 288.5155 287.7371 285.7811 283.7791 280.0359 280.7371 280.8875 281.9039 282.3705 282.4194 282.8631 282.8831 281.8927 281.9153 281.5633 281.6673 282.4494 283.4295 283.3423 282.2377 281.2787 280.2138 277.2829 276.4127 275.8007 275.2497 275.2086 275.5334 275.7313 276.2609 275.8442 272.6337 275.2734 277.5344 284.1557 280.4729 275.1722 269.7924 265.5744 264.9402 267.047 267.907 268.291 268.498 268.5288 268.3631 268.2289 267.3787 267.4927 269.1249 268.9731 268.8133 268.8946 269.8349 270.7658 272.2006 272.8791 273.8908 277.0465 278.4415 279.3773 280.6387 280.624 280.1746 279.7793 278.722 278.0283 276.0944 275.0287 273.9846 274.0448 273.1462 273.0865 271.8398 269.6655 267.5713 266.9831 268.2576 269.7583 272.1761 274.3563 275.6416 276.3556 276.594 277.8873 279.1722 278.0917 276.1894 273.5567 271.2675 268.2776 264.3711 261.2937 258.3911 252.3008 253.1313 247.1602 243.8571 243.7368 243.1218 243.1941 240.7266 240.6535 246.6415 249.5219 253.7087 241.1037 244.8685 244.1934 246.5513 245.4779 245.0747 245.3921 244.9223 244.8908 245.0538 244.7849 244.7481 244.7671 244.9507 244.5354 244.1514 243.8584 243.6008 244.0177 244.4216 244.394 240.706 240.1226 244.1542 243.297 242.9938 242.8357 242.9409 242.9251 242.9557 242.9586 242.9346 242.5651 248.8247 243.1752 242.4837 242.4451 242.1506 242.2758 242.072 242.7246 242.057 241.6065 242.5067 242.8366 243.3603 242.6403 243.4645 243.6515 244.4618 245.0038 245.0448 245.9071 246.1936 246.2819 246.3927 246.7657 246.9103 247.6182 248.0419 248.3305 248.9016 249.024 248.8487 249.1048 249.2021 249.0056 249.2556 249.8697 250.6763 252.9569 253.8237 254.6482 256.1135 258.4068 260.4826 262.0609 262.5805 262.2123 262.1458 261.3174 262.5535 264.594 263.7893 265.7317 268.1265 270.436 273.1347 279.7436 281.5111 283.0162 284.5873 285.6072 286.1934 284.6313 -9999 +-9999 -9999 315.9059 308.542 304.6001 308.7865 316.1032 318.6872 320.7538 323.2941 325.2659 325.5394 322.3143 317.5219 311.9835 313.3952 316.4847 319.3578 323.0889 327.8112 330.951 332.0163 331.9888 331.2979 330.8474 331.2541 331.6418 332.2484 332.8406 332.4294 331.4671 331.2219 330.249 327.4413 325.931 323.9477 322.5562 323.2225 323.9653 322.5857 318.7013 321.5336 318.899 316.7134 315.1756 315.0907 314.3614 313.4456 311.1859 307.4814 305.8601 303.0241 301.2831 300.7208 302.2779 310.5378 313.3288 311.5156 314.3271 316.7384 316.5893 323.5684 325.3901 326.6339 327.6341 328.1943 328.8014 329.0543 327.4177 324.7006 320.6882 318.8491 316.6624 314.6261 311.7554 308.3271 306.2012 303.4526 301.3756 297.8313 297.1356 296.2751 296.3356 297.6709 301.0988 304.9941 308.7776 311.8249 317.0327 318.7942 320.383 321.1551 319.9995 317.3398 314.8618 312.5736 308.3819 308.1786 309.3451 310.1254 310.4592 309.4811 309.8945 309.7283 309.2145 306.5962 297.6264 300.9733 304.5015 305.9462 306.1142 306.7589 307.2867 307.6429 305.8776 299.5299 296.4884 295.5952 290.1155 292.4037 294.7157 295.6059 293.5908 288.9277 280.7045 277.4873 277.403 276.9413 275.727 277.2131 278.2227 279.6688 281.5704 276.0764 278.0238 280.4954 280.995 284.7138 289.6417 291.8721 293.3459 294.2157 292.3533 291.152 291.3826 293.2216 294.8774 296.5277 296.7943 297.5109 297.8453 296.0933 296.065 296.7577 298.6201 300.1555 301.4765 302.3523 303.1295 302.8223 300.5182 299.3784 297.3148 294.8855 293.1129 291.4143 289.3177 289.9888 290.8217 290.7437 287.9191 283.8412 276.3539 266.8719 267.3672 269.2841 270.3011 273.2893 277.1944 277.3424 277.3242 279.1307 280.9471 283.1705 286.4724 288.8933 290.6613 293.3612 293.9892 293.905 294.1299 293.8945 293.119 291.065 287.6359 283.6892 278.368 280.6156 282.4243 285.4232 288.342 291.6134 293.8614 295.8553 297.959 302.7292 306.3242 309.3851 313.0241 316.2226 317.0293 317.5504 317.4333 315.5766 307.5644 302.3787 298.4564 297.4767 298.0916 298.3845 298.4773 297.7714 296.524 297.6533 297.0048 296.0655 294.7433 292.9901 290.5791 287.5567 284.1766 279.3568 276.3703 277.2763 280.7463 284.5593 287.5339 289.7269 290.5112 290.4008 288.5959 287.7482 288.4129 289.8897 289.6906 287.0705 284.0613 278.8234 275.48 276.4823 277.6064 280.3776 282.0126 285.6502 286.793 289.532 291.1196 292.6769 294.6072 296.0779 297.4025 297.6948 298.9388 300.0898 299.37 295.8034 291.0501 285.2773 279.5269 273.6083 274.5875 277.8136 280.2191 280.9236 280.3648 279.4764 279.6478 279.4975 277.3246 275.4038 272.6818 268.2307 265.3287 265.6523 266.3679 266.4625 267.4305 271.5571 274.3857 277.6046 280.2891 282.6308 284.419 285.3127 285.6004 285.9961 288.1174 289.7205 291.3417 291.6372 290.8649 288.9746 287.6327 285.2153 283.1272 278.2135 278.6794 279.5235 280.1298 280.4195 280.5521 280.8045 280.7148 280.2022 280.1301 280.1281 280.7658 281.9086 282.732 283.1837 282.8405 282.0633 281.2998 279.0751 278.0684 277.5034 276.7809 276.3958 276.722 277.2384 277.6732 277.8083 275.3477 275.9954 279.7415 284.5162 282.3919 277.9851 273.879 271.0872 268.3475 268.8592 269.4069 269.8345 270.0822 270.4572 269.9041 269.3509 268.3008 267.9264 269.139 269.4048 269.6171 269.7501 270.3762 271.5262 272.4612 273.2826 273.8618 276.1587 277.2754 278.3368 279.2132 279.3939 278.9447 278.2563 277.5603 276.991 275.5497 274.4959 273.9846 274.0448 273.1462 273.0865 271.8398 269.6655 267.5713 266.9831 268.2576 269.7583 272.1761 274.3563 275.6416 276.3556 276.594 277.8873 279.1722 278.0917 276.1894 273.5567 271.2675 268.2776 264.3711 261.2937 258.3911 252.3008 253.1313 247.1602 243.8571 243.7368 243.1218 243.1941 240.7266 240.6535 246.6415 249.5219 253.7087 255.7776 257.114 256.1219 259.4534 258.1647 247.5312 245.266 245.1585 244.7047 244.5893 244.4552 244.4092 244.2368 243.6147 243.3641 243.5006 243.3281 243.2654 243.0896 243.3026 243.7027 243.8685 242.2612 240.1079 243.9872 243.0485 242.9752 242.9232 242.8839 242.8798 242.7965 242.763 242.2549 244.6135 247.8067 242.2249 242.4556 242.3497 241.9887 243.2794 242.4302 241.803 242.0882 242.662 243.3029 244.6714 246.2073 244.0371 244.0542 244.4677 244.7171 245.3071 248.0985 247.5701 246.7464 248.5484 247.5201 247.659 247.3823 247.8339 248.1162 248.0271 248.3159 249.0544 249.0276 248.7828 249.4706 250.7144 251.8076 251.8202 251.0605 251.1771 251.8634 253.8039 255.2894 256.9035 257.5956 258.4532 257.6473 256.7438 256.9572 259.2336 261.2213 260.9947 263.9957 267.5716 272.4128 275.6616 279.7577 282.9093 284.1542 285.5543 286.3245 286.6211 286.0407 -9999 +-9999 -9999 313.5913 314.9378 310.072 307.6574 317.0907 320.4303 322.5816 324.7027 326.1697 327.2214 324.8318 321.125 316.5696 313.3952 316.4847 319.3578 323.0889 327.8112 330.951 332.0163 331.9888 331.2979 330.8474 331.2541 331.6418 332.2484 332.8406 332.4294 331.4671 331.2219 330.249 327.4413 325.931 323.9477 322.5562 323.2225 323.9653 322.5857 318.7013 316.9027 316.1318 315.6549 314.2555 313.8727 313.5184 312.691 311.9651 310.5636 308.1226 302.8288 302.3435 304.42 306.5584 311.0476 314.0983 316.3341 316.5063 318.43 320.496 323.5359 325.0888 326.7667 328.8615 329.9081 329.937 328.7846 327.0009 324.544 319.3179 316.7289 314.2845 312.5893 306.5363 304.4247 302.9768 303.7809 303.6864 302.4203 299.5304 296.8512 296.916 297.7175 301.1313 304.83 307.9398 311.2594 317.1773 318.9181 320.6752 321.6574 320.9027 318.8708 316.491 314.4356 311.6226 311.3681 312.7506 313.4658 313.5148 312.2371 311.8707 310.8694 307.8368 303.647 300.399 303.6275 306.8877 309.3472 309.7309 309.4373 308.7909 308.5168 306.2294 300.7523 295.856 293.5463 293.6042 297.682 299.1717 298.5401 296.8768 292.9022 289.0382 281.8838 277.5313 277.3024 277.4586 277.298 275.851 277.0521 277.2829 276.5361 276.192 276.2787 276.1044 277.6267 283.417 288.3097 291.4463 292.5413 289.77 288.4879 290.7736 292.9322 295.372 296.7137 297.2171 297.6341 297.9023 294.6019 293.7178 295.6744 296.982 297.8208 298.3929 299.5338 301.6367 302.485 301.0768 300.1915 298.9568 297.5547 295.4935 293.5589 291.8965 291.1471 291.7701 293.2864 291.9405 288.02 281.4648 271.3672 266.86 267.1964 267.7573 269.0994 272.406 273.5627 275.256 277.2125 279.6673 281.976 283.8284 285.9859 288.6873 291.5857 292.6626 293.104 292.8088 292.4865 292.2153 289.8822 285.9296 279.5187 279.8345 281.1266 283.1893 285.7811 288.2308 290.8661 292.6755 294.5314 297.1133 302.7364 306.0379 309.1952 312.2292 315.3748 317.7511 318.3412 318.0456 316.4522 309.2958 303.33 297.3619 295.9813 294.6064 294.4856 295.1666 293.9306 292.8043 294.3265 294.3426 293.0536 292.0344 290.7327 289.9667 288.6203 285.8888 279.8079 274.1537 274.9571 278.1476 282.6689 285.7625 287.2991 288.214 288.1281 286.3731 285.87 287.3505 288.4128 288.0964 285.6086 281.5315 276.1664 275.6873 278.9866 279.1052 281.6231 283.0806 286.3187 287.762 289.9962 291.7835 293.8834 295.1913 296.7813 298.732 299.3078 300.5425 301.4647 299.3214 295.479 291.3669 287.0915 283.297 276.6783 273.6446 273.5083 276.9876 277.7618 277.9325 278.2029 277.4237 278.3137 276.2963 274.7104 272.2616 268.1662 264.8459 265.2876 265.6617 266.3987 268.6585 272.7884 274.3051 276.8279 279.3578 281.7854 284.4615 286.2573 287.3157 288.0779 288.8221 290.1213 290.992 291.0874 290.4773 288.4122 286.5565 284.5837 282.3541 276.2742 277.0815 278.3413 278.3658 278.4253 278.5772 278.5866 278.7133 278.4636 278.4902 278.897 280.3658 281.1252 281.5935 282.6974 283.3745 283.0995 281.5852 280.7469 279.8741 279.0108 278.0922 277.6024 277.7917 278.637 279.0846 279.019 276.5343 276.5995 281.0489 284.5162 282.3919 277.9851 273.879 271.0872 268.3475 268.8592 269.4069 269.8345 270.0822 270.4572 269.9041 269.3509 268.3008 267.9264 269.139 269.4048 269.6171 269.7501 270.3762 271.5262 272.4612 273.2826 273.8618 276.1587 277.2754 278.3368 279.2132 279.3939 278.9447 278.2563 277.5603 276.991 275.5497 274.4959 273.4343 272.4908 271.0974 271.0437 270.5848 269.9502 268.7838 268.591 270.7722 272.2258 274.1443 275.5302 276.2328 276.9123 277.9239 278.8457 279.3883 278.4083 277.0475 274.3521 272.2901 268.8451 265.8683 263.1126 260.3549 255.1304 253.9288 248.7889 244.4859 246.9462 249.2887 250.1464 249.5754 249.2994 258.807 261.019 262.4272 263.4254 263.8165 264.4437 264.9462 264.453 256.9712 244.2234 244.3833 243.7679 243.6343 244.1032 243.8391 243.703 243.3856 243.1739 243.0463 243.0448 242.9309 242.6716 242.6303 242.8974 243.1316 243.6284 241.1109 240.029 243.0006 242.8361 242.7471 242.7633 242.6524 242.5577 242.3204 242.1775 241.9822 248.3589 243.5932 242.3339 242.2295 241.8381 242.4476 241.6541 241.3709 241.8314 242.9768 244.8154 249.0344 251.7633 249.6786 246.4234 244.9037 245.3555 247.4264 254.4419 253.4578 256.2981 257.4367 256.636 255.1414 256.699 257.0327 254.4427 255.2781 255.2901 255.7883 256.2074 256.7673 256.7692 258.2492 258.9369 259.4992 257.9858 256.6433 255.5168 253.1196 252.647 253.4949 253.9795 253.8634 255.8958 260.3461 264.0023 267.2924 267.0422 271.2748 272.8008 274.8685 277.7183 280.0273 281.8143 283.5291 284.5819 285.4481 285.9646 286.0722 285.4917 -9999 +-9999 -9999 313.5913 314.9378 310.072 307.6574 317.0907 320.4303 322.5816 324.7027 326.1697 327.2214 324.8318 321.125 316.5696 311.331 316.2849 321.2386 325.1488 327.0335 328.6188 329.705 329.8201 329.4575 329.0992 329.1443 330.4937 331.9585 332.3792 332.1027 332.232 331.3478 330.5395 328.3931 326.7647 324.7838 322.2381 321.4532 323.1396 322.538 318.4099 313.7975 311.9202 311.9847 311.93 311.9798 312.3306 311.9247 310.7559 309.3342 306.7132 302.93 307.1504 310.8165 311.0044 310.6147 313.8793 317.6573 319.7521 321.614 323.4614 327.5854 329.1934 329.5119 330.2563 331.9682 331.1496 329.2675 326.8751 324.2321 318.266 315.868 310.594 308.35 305.7873 304.9683 306.9591 307.298 308.5367 306.1164 302.2379 297.2419 296.3778 297.2614 299.2691 304.4532 308.2157 311.1769 316.6647 318.5422 320.1381 320.7176 320.6435 319.9201 318.2977 316.3721 314.4915 313.9762 315.7142 316.1795 315.9557 315.094 313.2852 311.5351 308.0515 305.0285 304.9174 303.4391 307.7132 309.8211 311.6647 311.9795 311.0264 308.9995 306.6603 300.6087 298.8603 294.8493 296.6447 299.1719 300.1764 299.2552 297.2165 294.9393 290.5766 287.1346 281.8094 277.5204 277.2045 277.4017 277.3103 276.3376 277.8041 276.5583 276.4251 275.7886 275.2243 275.9553 279.9463 285.8743 289.5428 291.1865 285.8065 290.4656 293.3479 295.0079 296.7159 297.9434 298.3725 298.424 297.5176 294.0203 291.6694 293.3842 295.1272 295.5506 295.9436 297.9957 300.9428 301.9699 300.0995 299.8712 299.7441 298.4209 297.2003 295.8033 294.593 293.2562 291.9955 294.064 293.3167 289.8065 283.9169 277.9523 266.0421 267.0058 266.5987 267.2218 270.0716 272.3609 274.1103 275.2232 276.8154 278.6673 281.4523 284.3687 287.3104 290.5894 291.2495 292.1698 291.6582 290.0832 289.8752 288.8945 282.6854 277.3079 280.3756 281.4535 283.3191 286.0846 288.4419 290.2764 292.8479 295.0488 297.4277 302.1403 305.657 308.4486 311.0924 314.2009 316.9777 318.623 318.5541 317.0249 310.7478 305.6208 300.51 296.7331 293.9359 292.8222 293.257 290.7162 287.6258 289.7809 289.9468 289.3435 288.9145 288.2193 287.7499 286.9965 285.1601 279.7554 274.8676 273.8144 275.0876 279.318 282.2948 283.4645 284.8398 285.3639 284.8691 284.6155 285.6058 286.7164 286.0298 283.782 278.8611 273.1902 279.2823 282.1497 282.8729 284.8925 286.4251 288.0082 289.6888 290.9206 292.6521 294.2827 295.6115 297.0042 298.0227 298.445 299.756 300.7885 298.2109 295.2497 291.3802 288.3879 285.5632 278.6237 275.8597 274.1982 274.2576 273.7049 275.0841 276.3066 275.8521 277.6874 275.8661 274.0698 271.623 268.285 264.893 264.7486 265.075 266.714 269.4232 272.9522 274.657 276.6212 278.9074 282.0096 284.9038 287.0481 287.5303 288.2804 289.388 289.6813 289.7176 289.4026 289.6024 288.4122 286.5565 284.5837 282.3541 276.2742 277.0815 278.3413 278.3658 278.4253 278.5772 278.5866 278.7133 278.4636 278.4902 278.897 280.3658 281.1252 281.5935 282.6974 283.3745 283.0995 281.5852 280.7469 279.8741 279.0108 278.0922 277.6024 277.7917 278.637 279.0846 279.019 276.5343 276.5995 281.0489 284.0905 282.865 282.2068 278.9828 276.768 272.051 270.2744 271.1298 271.3885 271.5346 271.9138 271.7194 270.7838 269.5515 269.1964 269.632 269.7431 270.2418 270.6766 271.4076 272.4494 273.2147 273.6907 274.4809 275.8405 276.4524 277.025 277.546 278.0833 277.8123 277.3719 276.843 276.3242 275.1788 274.9702 274.3905 273.3098 271.4396 270.0681 268.9195 268.8922 268.8366 268.9628 271.0755 273.1796 274.6805 275.0755 275.6756 276.5871 277.5872 278.4157 279.0587 278.668 277.7213 275.3006 272.8711 270.987 269.2849 267.8221 265.1558 256.2903 253.1476 249.3194 245.3654 248.6343 253.1395 255.1704 255.2794 254.4962 262.9973 264.7077 266.0842 266.8824 267.6614 268.6288 268.8971 266.5878 261.8584 251.2025 244.384 243.8094 243.3865 243.5292 243.2124 243.21 243.0953 243.0094 242.6752 242.6214 242.5813 242.5111 242.5104 242.5738 242.7027 243.0227 244.2336 240.1262 243.1222 242.9313 243.0232 243.1934 242.8369 242.5723 242.3368 242.2064 242.1373 248.3075 248.0622 242.188 242.2075 241.9377 241.6815 241.7272 241.8293 242.0517 243.3633 250.89 255.1412 256.5501 254.3501 250.2132 246.4514 248.513 252.0105 256.9128 258.3123 258.3944 260.3649 260.0953 260.5321 261.7016 261.6236 258.5809 260.0703 260.4268 259.9814 261.2337 262.5558 264.0594 265.1213 265.7018 265.4703 264.7176 263.641 259.4863 261.1154 260.9095 257.9355 256.3255 254.1727 255.4527 263.4808 265.5667 268.9794 272.9626 275.9194 277.9576 279.4407 280.517 280.8805 282.1852 282.8943 283.6169 284.4301 284.9327 284.8954 284.0512 -9999 +-9999 -9999 319.0212 319.7594 315.6245 309.3162 316.2484 319.8503 322.0678 324.5883 326.8108 328.4557 327.1181 324.3683 319.5818 313.0962 313.9568 319.7182 323.0336 324.6544 326.1809 326.7513 325.9227 325.7191 326.7565 329.2512 330.692 332.8644 332.6337 331.4573 330.6526 330.1646 329.1541 328.055 327.083 325.773 323.1082 320.4449 320.9869 321.8754 318.3848 314.1507 309.8336 308.8858 309.1418 309.3416 309.644 310.567 310.3541 308.8474 306.972 305.2598 309.5721 312.6834 314.6723 316.2795 316.9919 318.2283 320.7003 323.1419 327.3988 329.5377 331.2676 332.2527 332.5872 332.3752 331.0201 328.8123 326.163 322.584 316.4652 312.4897 309.8265 308.9226 310.8242 311.511 312.1743 310.0154 310.8473 309.0252 304.61 298.6089 295.6268 297.217 298.6096 304.5872 307.9611 310.5649 315.5935 317.1651 318.4406 318.8502 319.442 319.9317 319.547 318.1564 316.5356 317.3018 318.126 318.4467 318.186 317.2093 314.2424 312.0232 311.0636 308.7468 307.5463 305.0025 307.4357 310.0599 311.7849 312.9203 311.6029 309.3667 307.0758 300.8878 299.2664 300.1087 299.5995 299.4999 299.2848 297.7669 295.9985 293.5473 288.3907 284.9567 279.0965 277.6897 277.5133 277.38 276.8283 279.8565 282.3496 275.894 275.7842 275.8405 275.6916 274.8749 277.7405 284.6893 287.7909 289.0396 284.5934 289.5927 292.4011 294.5888 296.9928 298.3918 299.0279 298.4243 296.7939 292.981 290.8012 291.0922 293.0348 292.3351 295.1859 297.6494 299.9821 301.3894 298.762 297.166 298.2512 298.5865 297.5942 297.086 296.3186 294.9984 292.9546 293.3185 292.638 289.715 285.0335 279.6436 273.4396 267.6742 266.8635 266.0682 267.7672 269.1653 270.567 271.957 274.4941 277.639 279.8289 282.7545 285.7705 289.3212 289.8405 290.567 290.5016 288.6057 286.6281 285.4161 278.5612 277.5764 282.0433 282.8301 283.7205 285.429 286.8519 289.361 292.5701 295.3908 298.1004 302.3226 304.507 306.9333 309.6473 312.6597 315.5902 317.8103 318.6841 317.7882 312.5115 307.8192 302.2755 296.2457 294.3876 294.5547 296.8135 296.6313 295.2484 285.1172 283.6466 284.3233 284.8256 285.0169 284.7323 284.0221 282.6172 279.9843 276.3737 274.6041 273.169 275.1321 277.0939 279.2238 281.1548 282.1901 282.9371 283.6992 283.6821 284.2079 284.0127 281.3806 277.6371 271.8051 278.9315 282.2952 282.764 285.9589 287.2083 288.6792 289.3846 290.5732 292.2637 294.0955 295.3251 296.4807 295.4124 296.3468 298.5893 299.6118 297.6474 294.7765 292.0563 289.743 285.5632 278.6237 275.8597 274.1982 274.2576 273.7049 275.0841 276.3066 275.8521 277.6874 275.8661 274.0698 271.623 268.285 264.893 264.7486 265.075 266.714 269.4232 272.9522 274.657 276.6212 278.9074 282.0096 284.9038 287.0481 287.5303 288.2804 289.388 289.6813 289.7176 289.4026 289.6024 287.4834 285.9267 283.7128 281.6776 276.2722 275.6412 275.6288 276.455 275.9957 276.2527 276.3719 276.6151 276.5856 276.9936 278.3175 279.4673 280.3622 281.4046 282.5175 283.1728 282.8473 282.2699 282.1867 281.212 280.5081 279.7971 279.0831 278.9989 279.9088 280.9879 280.816 278.2923 277.3219 277.7664 277.9998 279.9115 281.2047 281.8318 277.4961 272.5582 271.8326 272.6982 273.1687 273.2332 273.3081 273.4017 272.5022 271.327 270.8857 270.2169 270.3928 271.1466 271.5328 271.9189 272.4679 273.8904 275.2558 275.7241 275.5561 276.0396 276.6599 277.1435 277.111 277.0338 277.1525 276.8547 276.5083 275.794 275.1509 274.8172 273.7758 271.4836 268.7965 267.1094 267.7496 267.6461 268.5792 269.8765 271.2248 272.3016 273.0254 274.5175 275.8303 276.4756 277.4539 278.4777 278.7906 278.258 276.4241 274.5548 273.4576 272.7933 271.1924 267.0468 254.4694 255.5392 251.2581 251.6487 255.2544 255.5392 256.9046 258.3911 259.6247 263.6971 265.607 267.2158 268.3063 269.566 270.3247 267.1177 263.5116 258.9806 251.4697 246.9012 245.1668 244.095 243.8164 243.495 243.2094 243.1694 242.8993 242.5688 242.2988 242.2533 242.2517 242.2941 242.2787 242.1897 242.4279 242.9766 243.321 243.801 243.2364 243.2942 243.4354 242.6077 242.3026 242.314 242.2349 242.1583 247.4656 247.9074 244.4931 242.1647 242.0383 241.8676 241.932 241.8348 241.7332 243.9223 252.0346 256.9526 259.3846 258.3681 254.8557 248.3546 249.0778 252.9554 258.321 260.5382 261.0302 261.8177 263.4422 264.09 264.2678 264.137 264.1399 263.2581 263.5251 263.496 264.2328 266.4684 267.2687 268.8661 269.6184 269.8311 268.2798 265.1468 265.6135 267.8669 268.7667 268.4162 267.4337 265.7337 260.5901 259.8513 262.9195 267.3754 272.8192 276.1164 278.201 279.1588 279.3855 279.4386 281.223 281.8743 282.2188 282.7596 283.2935 283.2944 282.6898 -9999 +-9999 -9999 323.044 323.2304 318.4209 311.2921 315.9328 319.3679 322.3935 325.2406 327.5448 329.5281 328.7401 326.7543 325.1303 322.207 316.2807 314.1794 318.9319 321.1735 321.6594 321.7659 323.8457 325.3683 329.1058 330.472 332.348 332.9229 332.4694 330.6039 329.1813 328.1477 327.6587 326.2111 325.7773 325.4344 323.468 320.16 319.0367 320.3178 319.4015 316.8904 311.5747 309.1884 307.5141 306.9858 306.5168 306.327 306.0512 307.2714 304.9641 304.7659 309.4449 312.9173 315.4333 317.6852 319.5313 320.4388 321.5483 322.9749 326.0684 327.5509 328.9559 330.0203 330.4334 330.584 329.3456 326.8899 323.3927 315.9251 312.3085 313.2079 315.9389 318.1194 318.6484 316.3868 315.4484 311.888 314.4561 311.442 306.127 300.6295 297.0862 297.5219 299.0471 303.0324 306.8703 310.0621 314.6021 315.437 316.662 316.921 317.2341 318.5739 319.5443 319.5509 319.0994 320.0751 320.7099 320.8257 320.2716 318.4792 315.8573 314.5828 313.0754 311.6785 309.0172 307.802 308.383 310.4121 312.0515 313.0718 312.4007 310.4327 308.1987 303.4249 303.4835 301.8042 299.973 297.6252 295.9507 295.4719 293.7892 291.3997 285.5168 280.7957 277.9815 278.1519 277.9187 279.0378 280.6254 282.106 283.9968 277.1328 275.4683 275.3777 275.3521 276.2937 280.0682 283.8278 284.7362 283.4708 285.5161 290.0138 292.6295 294.5322 296.1792 297.4414 298.3458 298.0352 295.939 291.5549 290.1697 288.4356 289.0515 291.4143 293.6581 296.3131 298.013 300.4466 297.686 295.5883 296.1868 296.8182 296.8831 296.599 296.4766 295.7235 293.7234 291.7995 292.0378 289.3911 285.5616 281.0383 275.9525 271.7794 266.4044 266.0749 265.7018 266.4879 267.5795 269.1593 271.8722 275.4886 278.3382 281.0336 284.734 287.3849 287.7888 289.1768 289.0467 286.7121 284.1492 279.9856 275.0404 279.1786 280.7093 282.4546 283.9775 284.7126 285.6224 288.2813 291.6407 294.7936 297.4525 301.3716 303.5054 305.8303 308.5102 311.2586 314.1203 316.5337 318.3452 319.0521 314.3644 310.7044 306.1114 301.7956 298.575 298.2202 299.8179 299.2192 298.6115 292.2224 287.85 283.2514 281.3853 282.5359 282.4337 281.7847 280.8332 279.4869 277.1167 276.1635 273.5602 272.3126 277.0939 279.2238 281.1548 282.1901 282.9371 283.6992 283.6821 284.2079 284.0127 281.3806 277.6371 271.8051 278.9315 282.2952 284.0649 285.9589 287.2083 288.6792 289.3846 290.5732 292.2637 294.0955 295.3251 296.4807 295.4124 296.3468 298.5893 299.6118 297.6474 294.7765 292.0563 289.743 287.0815 281.05 277.6867 278.2525 275.4776 273.0487 273.3482 273.1552 275.2182 276.1405 275.2929 272.8414 270.5345 267.7542 264.3872 264.3568 264.9312 267.2107 269.6229 273.1648 276.2065 278.4735 279.9168 282.1337 283.723 284.998 286.4462 287.1513 287.652 286.8924 287.013 287.6383 287.4099 286.3926 285.335 283.1578 281.0541 275.6394 274.2672 273.838 273.5594 273.6937 273.591 273.6565 273.9738 274.4174 276.2495 277.2989 278.7616 279.9985 281.3861 281.4633 282.3883 282.3891 283.9457 283.7828 282.6774 281.8915 281.0151 280.3367 279.9366 280.6645 281.4434 280.8983 279.047 278.4937 276.8113 277.0734 276.1142 276.1976 276.1302 276.0659 274.7032 273.9841 274.6923 274.7359 274.8317 274.6258 274.5437 273.98 273.0252 272.2646 271.5456 270.9092 270.7109 270.3928 270.6266 272.2419 273.468 275.3094 276.2462 274.5783 274.9904 274.9925 274.9632 274.9839 275.594 276.2239 276.3987 276.3091 275.1112 274.2154 273.4786 272.3442 270.1695 268.0293 267.0013 266.1562 266.12 267.7061 268.6342 269.3372 270.336 271.8797 273.0486 274.2417 275.1474 276.1001 277.5015 277.9117 277.8218 277.4271 276.5777 275.9114 274.8539 271.841 268.1294 257.5476 260.1061 260.6685 260.0113 259.2892 258.1456 259.1238 261.0489 262.4138 264.742 266.4207 267.9755 269.0124 269.014 266.1631 260.9965 257.7043 254.903 249.478 247.9073 246.1369 244.9861 244.4639 244.5342 244.5908 244.2952 243.6839 243.1768 242.2139 242.178 242.0754 242.0175 242.1303 242.0478 242.0637 242.3849 242.3124 240.1196 243.5744 243.5999 242.765 242.5396 242.5315 242.2115 242.1181 242.0118 242.4288 248.0375 247.9761 242.0706 242.173 242.0114 241.4444 241.8735 241.6578 242.7605 249.9781 257.2725 259.8838 260.0885 257.5232 253.9378 247.4933 253.1928 259.6404 261.717 263.6244 264.6169 265.7765 266.2867 266.3742 266.3591 266.9875 266.2187 266.9282 266.7408 268.0386 269.3619 270.5562 271.62 272.6855 273.0302 270.4338 267.2742 270.5975 272.3511 273.0647 273.6086 273.756 273.0562 269.9966 257.7631 263.1913 267.5633 271.8154 275.3943 276.6322 277.5229 277.616 277.9518 280.144 280.865 281.0848 281.7168 282.0005 281.7305 281.9514 -9999 +-9999 -9999 325.7007 325.5938 321.3468 316.3695 315.1265 320.0089 323.6842 326.6213 328.7689 330.752 330.7956 329.3629 328.7243 327.6614 324.0131 319.0529 315.447 318.7321 321.641 325.1357 327.9062 329.1832 330.7379 331.8041 332.538 333.2706 331.2537 329.3664 327.5741 326.2288 325.3482 324.1199 323.756 322.6902 321.5697 319.5165 317.7593 317.2281 316.794 314.3498 309.0234 308.5931 309.2496 307.8394 306.0034 305.3864 304.9046 305.0093 304.4264 304.4429 309.3936 312.6117 315.4576 317.5529 319.2691 320.0753 320.5587 321.2896 322.5849 324.7395 326.6378 327.7153 328.9185 329.7379 328.9763 326.6952 323.8687 313.8771 315.4848 319.4984 321.0845 322.3684 322.2076 319.235 316.7427 314.9902 316.2465 311.4919 306.8098 300.9166 297.6949 297.7273 299.0082 303.2957 306.3054 309.2485 312.2475 314.1273 314.826 314.8471 316.2323 317.9581 319.3554 320.2864 320.373 322.1759 323.148 323.0761 322.0598 320.177 318.5737 317.1639 315.123 313.3258 311.1048 310.3634 310.713 311.7127 312.9008 313.6003 313.1696 311.4756 309.5655 306.5651 304.7874 302.7968 300.4471 298.2393 295.6732 292.551 289.443 286.6736 280.8306 278.5533 280.8668 283.5585 283.6533 285.4518 285.9513 285.1686 285.8894 282.2202 275.8532 275.1362 275.0522 277.3007 279.2714 279.3195 281.7535 280.9344 286.7406 289.2847 292.0173 293.8216 295.5379 296.61 297.5814 297.6886 295.5941 290.6363 288.6223 287.6031 288.3155 289.7315 291.7669 293.2633 295.3743 297.6024 295.2299 294.1843 293.671 294.3147 294.5031 294.745 296.1794 295.8452 293.9137 289.9975 290.7093 290.2462 287.1371 282.8158 278.1414 271.9452 270.376 267.5673 265.6882 265.3584 266.2828 266.8199 269.0604 272.8752 275.6889 279.7681 283.0179 284.9443 285.646 288.177 287.8288 285.1205 281.3633 275.7509 276.7159 279.5139 282.6828 285.6663 287.4154 287.6635 287.3935 289.049 291.3831 293.7686 296.2988 301.3716 303.5054 305.8303 308.5102 311.2586 314.1203 316.5337 318.3452 319.0521 314.3644 310.7044 306.1114 301.7956 298.575 298.2202 299.8179 299.2192 298.6115 292.2224 287.85 283.2514 281.3853 282.5359 282.4337 281.7847 280.8332 279.4869 277.1167 276.1635 273.5602 272.3126 273.4686 275.0142 277.8965 279.5258 280.5407 280.8022 280.6855 281.9439 281.6252 278.6559 275.3478 269.6848 276.3897 279.8093 283.0594 284.5796 285.85 286.7737 287.1494 289.2792 291.0742 292.2854 293.4397 294.0476 292.0378 294.0149 297.2708 298.3662 297.0424 294.5001 291.5155 288.8023 284.9955 280.0866 279.2195 278.737 275.4007 272.5835 268.2891 270.7112 273.5779 275.0121 274.2668 271.7166 269.7406 268.34 265.2111 264.0126 264.4964 266.7504 269.6681 274.7597 276.8636 279.0024 280.6473 281.8523 282.582 283.9676 284.752 285.9061 285.3222 284.2556 284.5935 286.0369 285.5225 285.549 284.9816 283.2007 281.1888 275.8607 273.7599 273.3235 272.5053 271.8455 271.7309 271.6158 271.7194 272.564 275.8417 277.3636 278.4377 279.3875 280.6243 281.1547 281.0344 281.1133 281.4151 284.2316 283.5204 282.9755 282.1833 281.3651 280.6219 279.94 280.2393 279.8755 279.3738 278.3365 277.1383 277.244 277.1233 278.1999 278.179 277.6242 276.8456 276.2768 276.3161 276.0263 275.4527 275.0977 274.2682 273.3857 273.1658 273.0284 271.7953 271.2081 270.3055 268.6434 268.7303 270.1022 270.3138 271.5689 272.2666 271.7961 271.7364 271.3589 272.044 273.2608 274.3096 275.3135 275.5823 275.4996 273.8911 273.025 271.7129 270.3252 268.4284 266.3691 265.3719 264.6216 264.1344 266.4806 267.0883 268.4203 269.7148 270.5824 271.9031 272.822 274.0182 275.0889 275.8842 276.4347 276.3543 277.4125 278.395 277.3215 275.3558 272.6133 268.9917 262.383 264.0745 264.3069 263.854 262.6762 261.2303 261.5727 262.883 264.1331 266.8757 268.0007 267.9889 266.0241 261.1305 255.4067 253.1432 250.3378 249.0851 247.0135 246.6755 246.244 245.7922 245.28 244.9958 244.8723 244.6831 244.3472 244.4914 244.1604 242.5235 242.0788 242.0331 242.212 242.1031 242.0245 242.0641 243.273 240.0388 242.2558 243.8198 243.1893 242.9312 242.5682 242.2989 243.8519 243.8984 243.5484 246.242 247.7154 245.7325 242.2005 242.0984 241.8671 241.9615 241.6526 242.3638 246.8409 256.7764 261.081 261.9404 260.6312 258.0479 250.2718 251.6081 259.897 262.2348 264.3374 266.1024 267.442 268.2949 269.0133 269.6919 270.3579 269.4792 269.7675 270.8668 271.3579 272.2807 273.4796 274.333 274.6909 274.8416 272.2387 272.0609 273.2563 274.743 275.7593 276.0449 276.4886 276.1217 274.1898 269.6526 270.2933 271.8441 274.2271 275.2914 275.5986 275.7568 276.1392 276.9583 279.1311 279.6199 279.7173 280.0962 280.1655 280.4809 281.5582 -9999 +-9999 -9999 327.0679 326.7004 323.3236 319.1738 313.7523 319.3601 323.6992 327.7465 330.3833 332.0801 332.7515 331.4618 330.4319 331.3812 329.0836 323.4283 318.125 317.2578 318.226 323.6602 329.0244 330.942 332.6078 333.237 333.6357 332.3659 330.1812 327.1036 324.4865 323.4853 322.0838 320.2046 319.6271 318.3159 317.4661 316.7976 316.0732 316.1805 313.1066 310.6796 312.7425 314.9023 316.2239 315.2486 313.3268 312.4484 311.9884 309.1863 305.6137 304.5309 307.5989 311.4609 314.198 316.0375 317.1633 316.8614 316.707 317.6048 321.8321 322.611 324.0042 325.6897 327.8259 329.058 328.9143 326.63 322.9591 316.7357 320.6537 323.0054 324.2592 324.4212 323.1152 320.5139 317.6256 317.5573 314.0058 310.6634 306.8401 301.0096 297.9313 297.3568 299.3521 303.9311 306.3222 307.7457 309.874 311.3483 313.7782 315.7008 316.7593 317.6815 318.2722 319.3528 319.976 322.5359 323.6061 323.731 323.3212 322.3647 320.6193 318.239 316.6765 315.6024 313.2405 312.6194 312.8973 313.5392 314.2333 314.1822 313.7383 312.4989 311.3524 307.723 305.1012 302.895 300.815 299.0221 296.7276 294.1428 291.3215 287.5853 278.441 284.5671 288.7909 290.488 289.0396 291.4491 290.6814 288.98 288.1177 285.6577 281.2678 275.374 273.3934 275.4679 275.3123 275.4689 277.4362 283.2154 289.6445 290.7221 292.5986 293.9673 294.9276 296.0261 297.0095 296.1289 294.8387 290.978 288.8351 286.006 286.4325 287.2375 288.3285 290.9298 291.968 293.7195 292.2303 292.265 291.1329 291.2019 292.3558 293.9949 295.6494 296.2263 294.3679 290.1247 288.022 287.5615 287.6668 284.6982 280.2835 271.9452 270.376 267.5673 265.6882 265.3584 266.2828 266.8199 269.0604 272.8752 275.6889 279.7681 283.0179 284.9443 285.646 288.177 287.8288 285.1205 281.3633 275.7509 276.7159 279.5139 282.6828 285.6663 287.4154 287.6635 287.3935 289.049 291.3831 293.7686 296.2988 300.2478 302.4538 304.984 308.1646 310.7051 313.1283 315.7637 317.8563 319.2123 315.6047 312.6887 309.0544 306.3196 303.4803 301.9657 301.6726 300.1636 299.4118 295.1623 291.1508 285.9014 281.6077 279.1138 278.5473 277.6216 277.6206 275.603 274.6089 274.1429 273.4766 273.2792 273.0742 272.4011 273.993 275.7264 278.3819 278.2056 278.6287 280.7437 279.6656 276.1287 271.1009 269.5618 272.2754 275.1657 281.3025 283.1896 284.0197 283.2475 285.8077 287.1092 289.4505 290.8193 291.0327 289.6037 290.0786 292.4369 295.8399 297.7402 297.3867 294.4437 291.9169 288.5853 285.0034 283.5863 283.2575 280.431 276.4073 272.4241 270.4113 267.4819 271.121 273.1218 273.6823 271.4734 269.168 267.9114 265.4362 263.7194 263.9733 266.28 269.8629 275.4541 277.0548 278.4002 279.8176 280.4624 281.2924 282.3752 281.7365 282.107 282.0399 281.699 282.269 283.2998 283.7569 284.9204 284.6966 282.9755 280.7276 276.9095 274.7563 272.7946 271.2816 270.6326 269.8967 269.822 270.4139 271.9237 276.1545 277.0813 277.9563 278.7785 279.7765 280.24 281.0393 281.2288 281.5006 282.6381 283.5627 283.377 282.8937 282.3105 281.5906 280.7699 280.151 279.0134 278.3889 278.0718 277.6464 277.3374 277.3731 278.0754 278.8311 278.8091 278.6287 278.1502 277.6801 276.8738 275.7411 275.5047 274.7762 274.5439 274.3177 274.3359 272.9869 271.8057 270.198 268.0838 265.9663 265.753 266.1754 267.5983 268.0435 268.6017 268.9646 269.4224 270.8491 272.209 273.5345 274.0192 274.1074 273.9449 272.6104 271.4648 270.3336 268.687 266.892 264.7088 262.875 261.8395 261.4477 264.8801 265.8615 267.7858 268.83 270.0129 270.8812 271.9699 273.0984 273.8618 273.4419 274.3862 275.4036 276.5399 276.7682 275.9834 274.622 272.4917 269.9553 266.6086 266.5642 266.6674 265.8882 264.697 263.9272 263.4292 263.7563 264.8351 267.2723 265.9444 261.761 256.6421 249.8747 245.1897 243.7266 244.0503 243.5515 245.0473 245.8195 245.9372 245.8772 245.7356 245.5553 245.4342 245.0878 244.5046 244.0675 244.2245 244.2252 243.8164 242.9465 242.1757 242.2977 242.485 242.2125 242.3588 243.6879 240.0624 243.6972 243.348 242.9747 242.6261 242.4538 244.2095 243.8818 243.8648 243.6847 247.9725 248.0188 242.6016 241.8765 241.803 241.1862 241.7735 242.1035 245.2664 256.1766 262.484 264.0527 262.7122 260.7132 257.077 248.6871 259.3294 261.9651 264.5829 267.0674 269.4193 270.8094 271.963 272.8251 273.7652 273.3265 272.7462 274.6188 274.6685 275.1677 275.5708 275.8441 275.7078 275.315 274.3372 274.4702 275.077 275.6085 275.7481 275.9836 276.3241 276.5189 275.8752 274.391 274.5227 274.5305 273.7562 273.6645 273.95 274.1295 274.8517 275.8923 277.7444 277.951 277.7692 278.2917 278.923 279.6953 280.79 -9999 +-9999 -9999 328.6866 327.3304 324.068 319.5215 315.4901 316.6279 324.8465 328.0653 330.4686 332.456 333.5558 333.3635 333.0184 332.9814 332.0766 328.1619 322.3497 319.2101 318.8654 325.9192 331.0903 332.3831 334.0095 334.4187 333.8014 331.8433 328.7255 324.2311 321.9494 320.207 318.8943 318.9428 319.6028 319.0345 318.6643 317.5114 316.0662 316.2872 313.1805 312.6708 316.6728 316.6731 318.6652 319.7547 319.2697 317.616 315.6059 312.7422 307.743 304.6817 305.6672 307.89 310.7277 312.156 312.6052 314.3622 317.6495 320.0935 323.5288 325.1285 326.4736 327.0713 327.941 329.1637 329.1085 326.5628 323.2476 321.2525 322.8127 325.621 325.9648 325.1563 323.2601 320.7476 318.2025 319.3741 313.9289 310.4023 306.1314 302.0012 298.5044 296.7927 299.005 303.599 307.4638 312 313.0348 314.1322 315.08 315.2484 315.5942 315.6312 315.8856 317.3519 318.7917 321.8631 323.01 323.9968 324.4126 323.8048 322.3374 320.5369 318.7058 317.7124 315.6588 315.0613 314.7708 314.8356 314.638 313.7833 312.7676 311.9707 311.4781 308.067 305.344 302.4507 300.2345 298.0338 295.6928 293.2665 289.2612 284.2671 280.9973 288.9419 293.3605 294.3043 292.9826 295.8144 294.6951 292.4119 290.8132 287.1066 282.7726 276.2918 275.1422 272.9091 273.0764 273.499 275.1395 281.5797 288.8374 289.7302 290.2354 291.0978 294.9276 296.0261 297.0095 296.1289 294.8387 290.978 288.8351 286.006 286.4325 287.2375 288.3285 290.9298 291.968 293.7195 292.2303 292.265 291.1329 291.2019 292.3558 293.9949 295.6494 296.2263 294.3679 290.1247 288.022 287.5615 287.6668 284.6982 280.2835 274.9112 271.9853 270.6091 265.6266 265.6646 265.3246 265.562 266.9135 268.1709 272.2996 277.7375 280.2205 282.3117 284.4452 287.6809 286.9349 283.188 278.403 273.8567 278.6127 280.9173 284.8061 287.4124 289.7033 290.5505 289.8754 290.6468 292.7752 294.8808 296.8932 299.8909 301.7581 304.6427 307.6936 310.2736 312.5252 315.0536 317.4289 318.7907 316.6187 313.7709 311.0445 308.9168 305.4835 302.1654 300.8323 300.0277 297.8036 293.0087 288.1026 283.0054 283.0037 282.08 281.2592 281.1242 280.5195 281.587 278.4437 277.2093 276.4938 277.1594 277.3392 273.4462 271.6801 271.5263 272.8737 275.0088 277.7406 279.352 277.5041 272.9647 268.9445 268.8607 271.7066 276.6599 281.2967 281.3895 280.9009 280.3108 283.6078 286.046 287.0864 288.3463 286.4904 288.084 290.4453 293.5229 296.4715 297.3523 297.2328 295.351 293.036 290.5172 288.5551 287.5645 285.6206 281.7242 277.3603 275.0316 271.9721 266.9059 268.3256 270.7503 272.7094 270.904 269.3305 268.0127 265.4569 263.4324 263.888 266.9697 270.8337 275.5258 276.538 277.4903 278.2174 278.5746 279.4543 279.8272 278.747 278.958 279.0186 279.8349 280.5699 281.5063 283.0974 284.4765 284.497 282.5282 280.398 276.7857 275.5478 273.0339 270.8907 269.6018 268.6834 268.9347 270.3501 272.6141 275.9084 276.7501 277.1454 277.902 278.7292 280.5995 280.7968 279.3719 281.1962 282.6408 283.0295 283.2778 283.0072 282.673 282.3794 282.0484 280.7034 279.7296 285.5083 284.8047 277.7825 277.2492 277.5077 278.3181 279.043 279.5138 279.7208 279.0544 277.9218 277.0489 276.0245 275.4121 275.1461 275.6106 275.8376 275.4144 273.8144 272.0453 270.1024 267.0237 262.6056 262.0168 262.2534 264.0426 265.2834 266.0352 267.9573 268.8081 270.4999 271.4891 272.491 272.8915 272.6668 272.0895 270.7923 270.3275 269.4667 267.3472 265.4323 263.1701 260.7065 259.5096 260.1441 264.2664 265.631 266.8828 267.8373 269.5619 270.172 271.2861 271.5999 271.9103 271.8808 272.7984 273.5795 274.2779 274.4931 274.0855 273.5346 272.6846 271.2981 267.4245 267.5753 267.8038 266.6427 265.0207 263.2295 261.6686 261.1247 262.3314 261.9969 257.0061 251.1187 244.9202 241.8219 241.864 241.7384 241.9697 241.989 242.9242 245.1436 246.1051 245.827 245.6375 245.2883 245.2713 245.2313 244.8138 244.101 244.0837 244.0668 244.2387 244.3404 244.1837 243.2437 242.2729 242.7986 242.8044 243.6911 240.0579 243.5807 243.1204 242.8435 242.9144 243.603 244.0258 243.4869 243.4426 243.4659 245.502 247.8148 247.0286 242.0605 241.8807 241.1699 241.7376 241.9669 244.8594 255.1839 263.4473 266.0666 265.5742 263.4595 262.2007 257.143 256.5183 261.6405 265.4344 268.1785 270.6479 272.7234 274.0551 275.1185 275.9942 276.2227 276.1321 276.8394 276.852 276.4409 276.273 275.7179 274.9378 274.4719 274.3237 274.5164 274.612 274.6452 274.6383 274.9881 275.0485 275.1078 275.0965 273.6262 272.757 272.0305 271.135 270.746 271.2914 271.3885 272.0177 272.9407 275.4464 275.5155 275.1491 276.4241 277.6742 278.7309 279.5231 -9999 +-9999 -9999 330.3874 328.6668 326.1472 325.2191 319.0285 319.5724 321.5639 324.158 326.7608 330.888 332.5668 333.951 334.5485 334.7859 333.545 329.9862 324.5185 319.6143 319.5758 326.0716 331.3708 334.1266 336.1282 334.7554 333.6809 330.8477 327.6815 324.2718 322.1056 322.226 322.0466 321.3778 322.2182 321.7696 320.2826 319.2079 317.9522 314.9697 315.7707 315.7404 319.756 320.0524 320.839 321.9115 321.4862 319.7228 316.9624 314.1418 309.9033 305.2437 305.3321 309.9978 312.1927 314.1321 315.9052 316.6938 318.414 320.3983 324.7696 326.4001 327.8089 328.9533 329.5013 329.9439 329.8192 328.5722 328.6488 326.6081 326.054 326.6521 327.5076 325.9231 323.4944 322.2993 321.9497 319.705 315.2503 311.9176 306.7949 301.5709 299.1597 297.9739 298.4528 301.1492 306.69 311.321 313.3403 314.426 314.5002 313.19 313.0906 313.9601 315.0807 315.8855 319.2353 321.1259 322.3729 323.802 324.5917 324.5092 323.0865 321.2815 319.966 318.5961 317.2178 316.2774 315.3152 314.4717 313.5647 312.5242 311.3597 309.7984 309.507 307.2031 305.2563 302.4507 300.2345 298.0338 295.6928 293.2665 289.2612 284.2671 280.9973 288.9419 293.3605 294.3043 292.9826 295.8144 294.6951 292.4119 290.8132 287.1066 282.7726 276.2918 275.1422 272.9091 273.0764 273.499 275.1395 281.5797 288.8374 289.7302 290.2354 291.0978 292.0013 293.9162 294.5555 293.3696 292.7026 291.4289 289.73 286.6579 284.261 283.5687 284.6577 287.3893 289.2024 290.0907 289.1488 289.1776 288.409 287.24 290.4571 292.3381 294.2972 295.6714 295.8814 292.1605 289.732 286.3779 282.5326 282.1784 277.555 276.6184 275.5142 274.8775 269.8134 265.6345 265.1979 265.0253 265.4783 267.8652 270.6375 274.7559 277.4921 279.4804 283.7705 285.9632 285.7112 281.9812 275.0553 272.9684 279.8413 282.5368 286.7788 289.0964 291.5789 292.958 292.7177 291.6937 293.4497 296.1001 298.7457 300.8819 301.8172 304.3102 307.2807 309.2842 311.5919 314.2509 316.8553 318.1714 317.5843 316.0379 312.8315 309.6239 305.8065 301.2594 296.8259 294.6364 292.387 287.7871 289.4258 290.4906 289.6083 288.8366 288.064 285.9481 285.2097 285.6096 281.0621 280.982 280.5147 280.752 281.8377 279.8935 275.3499 273.0706 270.4913 272.7672 275.6532 276.5506 273.5456 269.1386 266.9721 268.4989 276.163 278.6733 279.3731 278.0937 277.7406 279.9591 279.7908 280.2186 282.0786 282.8604 285.1869 289.5091 291.4594 293.5684 296.0941 297.5543 298.1919 296.0614 294.6072 293.8172 291.2509 289.3878 286.6068 282.606 278.9629 276.6772 272.8817 269.9716 266.1264 268.3349 271.4317 270.531 269.0712 267.7921 265.049 263.202 264.4405 268.5937 271.6991 274.523 275.1315 275.8885 276.0718 276.2977 276.2842 276.2292 275.9355 275.7647 276.7758 278.0015 279.4539 280.933 282.4384 284.608 284.0553 282.4392 280.0666 276.7866 275.5906 274.0507 270.9287 268.8111 267.8515 268.2209 269.3999 271.9147 275.2028 276.2408 276.4197 276.7324 278.451 278.3882 277.0376 277.4341 278.0152 280.3379 281.2691 281.8711 282.1482 282.1826 282.6058 282.775 281.6723 280.8459 285.3155 285.2838 277.4325 277.5351 277.6581 278.2105 278.8291 279.3364 279.7214 278.8319 278.0103 277.1756 276.4069 275.9817 275.9032 276.1813 276.5088 275.8946 274.0345 272.3836 270.4418 267.1449 259.8256 257.9507 258.3429 260.8503 262.5876 265.2728 266.2404 268.2107 269.6321 271.0179 271.4927 271.3708 271.0178 270.707 268.9273 268.6671 267.884 266.045 263.7856 260.7408 258.9922 258.3004 259.174 263.7162 265.0096 266.5416 267.9907 268.128 270.197 270.7443 270.6927 270.1936 270.0523 271.1695 271.8397 272.1215 272.2302 271.9373 271.7898 271.5246 270.8235 268.0056 268.2054 267.9619 266.7618 265.3374 263.5638 261.0635 258.2151 257.8616 252.1466 246.745 242.4597 241.6175 241.7838 241.421 241.7135 241.8116 241.9701 241.7473 242.8326 244.8533 245.6829 245.4382 245.2093 245.2167 245.2548 245.3816 244.3665 244.1281 243.9109 244.3312 244.6279 244.0415 243.2689 242.8655 242.8465 242.9933 243.607 239.9623 243.826 243.4861 243.749 243.9959 243.9867 243.8851 243.3678 243.3013 243.2503 243.1626 248.0167 248.1799 242.4509 241.7217 241.4003 242.1165 242.01 246.6535 258.1394 266.3081 268.6163 268.1226 267.4556 265.0827 260.3767 252.6768 259.8366 265.3158 268.4911 270.9309 272.4072 274.444 275.2169 276.2621 277.3728 277.243 276.9759 276.6006 275.8448 274.9621 274.4218 274.9378 274.4719 274.3237 274.5164 274.612 274.6452 274.6383 274.9881 275.0485 275.1078 275.0965 273.6262 272.757 272.0305 271.135 270.746 271.2914 271.3885 272.0177 272.9407 275.4464 275.5155 275.1491 276.4241 277.6742 278.7309 279.5231 -9999 +-9999 -9999 332.4327 331.2881 330.3845 329.4735 324.0039 324.2898 324.7258 328.7158 329.9753 329.7452 331.9228 333.3159 335.4698 336.4408 334.8635 332.034 326.5963 320.4904 321.2743 326.0711 330.7981 333.4577 336.2623 335.5667 333.8608 332.1129 330.0528 326.6424 324.2678 324.5935 324.6024 323.6507 323.373 322.7904 321.0943 319.4855 317.5571 314.8934 314.7058 318.064 322.2024 322.3101 322.7043 323.0277 322.7092 320.2799 317.1609 313.9529 310.2662 305.8354 307.2782 312.9355 316.5564 319.0909 320.5794 321.3867 321.9207 323.5036 325.3564 327.4445 329.0396 330.2608 330.9066 331.1078 331.0689 331.4975 331.9023 329.9034 329.0294 328.865 328.4591 327.2578 326.3505 325.7346 324.3025 322.3115 316.956 312.6013 308.1947 304.3979 300.9113 298.8902 298.4128 300.3229 306.3215 310.9962 312.4483 314.426 314.5002 313.19 313.0906 313.9601 315.0807 315.8855 319.2353 321.1259 322.3729 323.802 324.5917 324.5092 323.0865 321.2815 319.966 318.5961 317.2178 316.2774 315.3152 314.4717 313.5647 312.5242 311.3597 309.7984 309.507 307.2031 305.2563 303.0775 300.7292 298.1928 295.2278 291.5722 286.7982 282.2997 283.3648 291.7371 295.4309 296.178 295.6763 297.7633 297.7297 295.2788 292.158 287.447 282.9506 277.3697 275.5769 275.3813 276.1825 277.8856 273.5157 278.2388 285.3196 286.5027 286.2606 288.2591 290.3422 292.095 291.4518 290.4221 290.1766 290.1487 289.2931 288.2284 285.7658 282.9396 282.1755 283.4996 286.2539 287.0409 286.1883 284.9867 283.785 286.1014 289.6414 291.864 293.0161 294.5958 295.2735 292.7806 291.0003 288.5193 286.46 283.7246 283.4554 282.8527 281.0706 279.3658 275.8833 272.0745 267.1301 264.7491 264.7012 265.3664 268.2274 271.3899 275.3863 281.38 282.6992 283.1106 282.6738 279.2292 272.6898 275.7986 280.9994 284.3992 288.6065 289.9489 292.1482 294.2305 295.0976 293.9819 293.9796 295.3245 297.5594 300.6632 301.6801 303.5807 305.8266 308.2927 310.5167 312.9028 315.8517 317.6426 318.1302 316.7304 314.8062 310.7162 305.7903 300.4842 295.3066 291.9774 291.9261 295.4381 295.7423 295.5748 294.4796 293.3104 291.5388 290.0985 288.5476 288.5508 285.0323 284.0911 284.4312 285.3429 285.3226 283.5283 280.1073 277.3621 270.506 271.1703 272.4177 271.1303 268.7752 267.4877 267.6976 271.6934 276.3262 277.4489 277.172 274.9326 274.1355 274.0538 275.9165 279.5523 284.0951 287.7538 290.1138 291.9349 293.7358 295.8958 297.7613 298.8521 298.8746 297.0607 295.6372 295.1332 291.9626 289.8805 287.3457 283.8145 280.8999 276.7009 274.3014 271.6183 267.9485 267.672 269.4917 269.3324 267.9594 265.9137 263.5348 262.9841 266.2164 270.8091 271.9883 272.368 272.7295 272.8944 272.7993 272.8543 272.5205 272.7149 272.7454 273.5758 277.3182 279.1976 281.6147 283.4348 284.3001 285.3274 284.6081 282.3708 280.2914 277.679 275.8595 273.7284 271.1301 268.8903 267.4523 266.4669 269.6656 271.4732 274.8182 275.3704 275.3031 275.5671 276.8887 275.924 275.8605 276.8699 277.6404 280.2074 280.3709 280.7708 281.5685 281.6374 281.9757 282.0851 282.5655 281.5884 285.3666 285.8321 277.1683 277.1462 277.2808 277.4925 277.9583 278.4093 278.8642 277.893 277.3556 276.7732 276.5377 276.1472 276.3199 276.3471 276.3002 275.5008 273.4868 272.2231 270.4217 268.3554 265.2756 262.6977 258.018 256.5312 260.2118 263.1938 265.1575 266.8038 268.8306 270.0153 270.4768 269.8989 269.1649 268.7629 267.9932 267.4019 266.4509 264.4078 261.3873 257.5724 256.802 256.6068 258.089 262.7816 264.5209 265.9687 267.3407 268.3985 269.4096 269.8255 270.1505 269.5398 268.2718 269.1568 269.6093 270.0182 269.9227 269.9764 269.886 269.5159 268.7588 267.3356 267.5716 266.8905 265.8025 264.1169 262.2485 259.0801 254.7091 251.9627 244.0981 242.0146 241.4502 241.6129 241.6906 241.5692 241.5568 241.5767 241.7225 241.7201 241.6017 242.6716 244.3383 244.5653 244.9154 245.3925 245.5982 245.2727 244.8415 244.7009 243.8302 243.9481 243.9671 243.4619 243.1186 243.4711 243.0165 242.7683 243.447 239.8828 243.0593 243.4861 243.749 243.9959 243.9867 243.8851 243.3678 243.3013 243.2503 243.1626 248.0167 248.1799 242.4509 241.7217 241.4003 242.1165 242.01 246.6535 258.1394 266.3081 268.6163 268.1226 267.4556 265.0827 260.3767 252.6768 259.8366 265.3158 268.4911 270.9309 272.4072 274.444 275.2169 276.2621 277.3728 277.243 276.9759 276.6006 275.8448 274.9621 274.4218 273.5168 272.7572 272.756 273.2018 273.3553 273.1144 272.915 272.7096 272.7668 272.8038 272.4852 270.6606 269.0892 268.4009 268.2414 268.6753 269.2606 269.3917 269.7944 269.8932 271.1717 271.9257 273.4732 275.2117 276.6838 277.9605 278.8169 -9999 +-9999 -9999 333.6115 333.3068 332.9067 332.1205 329.9274 329.7924 328.7282 329.5733 333.165 334.4947 335.4074 336.2443 336.9258 338.0919 336.8855 334.3732 329.4638 322.9128 321.5669 327.1953 331.0757 333.0245 336.3561 336.023 334.7419 332.8679 331.0178 328.7114 327.0521 326.4726 326.4695 324.7609 323.7086 322.019 321.9152 321.3906 319.7552 315.8741 316.3354 318.9635 323.566 324.2959 324.7483 325.0735 324.004 321.1755 318.6777 315.6064 311.112 306.1348 309.2655 314.3638 318.1317 320.4966 322.0909 323.9778 325.7117 326.4271 327.5551 327.4445 329.0396 330.2608 330.9066 331.1078 331.0689 331.4975 331.9023 329.9034 329.0294 328.865 328.4591 327.2578 326.3505 325.7346 324.3025 322.3115 316.956 312.6013 308.1947 304.3979 300.9113 298.8902 298.4128 300.3229 306.3215 310.9962 312.4483 312.8265 311.8449 312.3582 313.7841 315.5225 316.775 317.6621 319.7965 320.9538 322.2773 323.4274 323.9375 323.4038 321.9492 320.6494 318.9256 316.7494 316.0222 315.1959 314.271 313.1169 312.2435 310.9015 309.4438 307.8971 306.6022 304.0787 303.6267 302.4044 300.6851 297.8901 294.3357 289.608 284.2491 282.0662 292.8051 297.5589 298.8268 298.5096 297.7119 299.4209 300.4942 298.1508 294.4488 285.4312 282.4997 278.6484 276.1417 275.687 281.4627 280.4139 275.0689 274.9309 282.3048 282.9425 283.4005 286.1725 287.9143 289.1412 287.9837 287.2766 286.7401 287.5485 287.1253 286.9276 286.9508 285.2493 282.2 281.1541 282.377 282.7952 281.537 282.6327 287.902 290.3303 292.21 293.575 294.5804 294.9918 294.8613 294.0524 292.7781 290.9986 289.1555 287.6024 287.1727 286.8138 285.4684 283.4336 279.0051 277.8842 274.2584 267.9584 264.7364 264.6523 265.7027 270.3286 274.5795 279.6756 281.0047 280.5333 278.6921 275.4809 271.839 276.364 281.2705 284.5789 289.8135 291.6151 292.9771 294.2879 294.6018 292.9655 292.2051 293.6291 295.9039 298.876 300.2171 301.7309 303.9085 306.8343 309.3947 311.6789 314.682 316.9244 318.4657 316.8604 314.8338 311.0837 306.6796 300.3341 293.4775 295.0591 297.9381 299.0433 299.5163 298.8296 297.769 296.3158 294.5928 293.1512 291.9858 291.7355 288.4277 286.7635 286.8477 287.7995 288.1611 286.0901 283.2772 279.193 272.5029 268.1509 267.3665 267.4442 270.6066 269.0847 265.2348 266.926 271.2934 271.9024 273.7121 271.6946 270.4703 275.8302 279.3762 282.5197 286.2552 289.3739 291.7621 294.2667 295.4795 297.3729 299.6031 300.4547 298.9634 297.3187 295.9179 295.5628 292.3837 290.0814 287.5062 284.6618 281.3134 277.9594 275.339 272.8221 270.2547 264.7397 266.2905 267.639 266.9318 264.6148 262.0862 265.01 268.7484 270.2344 270.5784 269.9764 269.0835 269.2529 269.308 269.4053 269.9417 271.222 272.2672 275.9444 281.5938 283.3937 285.8204 286.2763 286.1963 286.169 284.8965 283.9249 282.4109 279.0634 276.8105 274.0822 270.9253 268.965 267.0353 266.196 269.8928 272.188 274.2878 274.3061 274.1725 275.3257 274.7503 275.3138 277.7992 280.4016 281.315 281.1975 277.4953 277.3495 280.4294 281.1105 282.0711 282.0419 281.9183 281.8443 280.1195 278.8132 277.6234 276.8054 276.6306 276.5534 276.847 277.4453 277.618 276.4906 275.8908 275.4941 275.1425 275.3848 275.5147 275.3866 275.1508 274.6192 272.7986 271.4579 270.2094 268.5772 266.7943 264.1717 261.7507 255.6602 257.8741 261.6931 263.7553 266.2048 267.8062 268.855 268.8963 268.4952 267.8392 267.2763 266.4781 266.1678 265.2237 262.8138 258.8669 254.7398 255.0577 255.8688 258.433 262.4354 263.9276 265.2386 266.3476 267.31 268.0997 268.7984 269.0978 268.3799 266.818 266.9641 267.5329 267.878 267.7473 268.0424 268.1568 267.5582 266.615 266.7877 266.4854 266.8905 265.8025 264.1169 262.2485 259.0801 254.7091 251.9627 244.0981 242.0146 241.4502 241.6129 241.6906 241.5692 241.5568 241.5767 241.7225 241.7201 241.6017 242.6716 244.3383 244.5653 244.9154 245.3925 245.5982 245.2727 244.8415 244.7009 243.8302 243.9481 243.9671 243.4619 243.1186 243.4711 243.0165 242.7683 243.447 239.8828 243.0593 242.8141 243.2169 243.9568 243.8191 243.647 243.1896 243.1239 243.0815 243.0944 244.2173 248.1513 247.7838 241.6573 241.8596 241.9023 242.8156 253.5488 262.3425 268.4708 271.0302 270.5691 269.622 266.9116 263.8589 254.0126 259.3173 264.9954 268.1823 270.3916 272.2999 273.6206 274.4078 275.3611 275.8535 275.6569 275.5154 275.3466 274.4054 273.1795 272.1836 271.5079 270.9651 270.7765 271.248 271.067 270.8452 270.1025 269.8775 269.8396 269.957 269.3829 266.9035 264.5095 266.528 267.9461 268.7072 269.0991 269.9615 270.8751 272.0357 272.5634 272.3758 273.2172 274.7534 276.1213 277.5242 278.5418 -9999 +-9999 -9999 332.7151 334.2311 335.0199 334.5289 333.1599 333.5474 333.5722 332.4152 332.7137 335.8057 336.985 337.9119 338.6534 339.3853 338.2451 336.0555 331.8521 325.1902 322.5019 327.4144 331.6681 333.6201 337.0457 336.8097 335.1334 333.4759 330.8735 329.1799 328.9672 328.8604 328.0118 325.6528 323.7086 322.019 321.9152 321.3906 319.7552 315.8741 316.3354 318.9635 323.566 324.2959 324.7483 325.0735 324.004 321.1755 318.6777 315.6064 311.112 306.1348 309.2655 314.3638 318.1317 320.4966 322.0909 323.9778 325.7117 326.4271 327.5551 328.4605 329.9851 331.0875 332.0354 332.8424 333.1001 333.1977 332.3656 332.7027 331.9428 330.9058 329.965 329.064 328.0229 326.9876 325.1049 322.5817 317.0316 312.7267 308.6884 304.746 302.1446 299.7182 297.2962 300.3118 305.5185 309.6544 310.5054 309.7294 309.7886 312.3812 315.0526 316.6684 318.5283 319.546 321.4676 322.3565 322.6938 323.318 323.1185 322.0294 320.735 318.8909 317.7592 315.3035 314.0947 313.5891 312.0419 311.0721 310.1689 308.8925 306.8254 306.0957 302.3549 301.6168 300.4182 299.9745 297.7689 295.8565 292.3043 286.9429 283.1062 281.726 296.7462 300.1393 300.7014 300.4878 300.1115 301.4564 302.0896 300.0459 295.1656 289.168 288.9793 285.9906 283.1747 283.657 284.1772 282.5301 277.2516 272.7572 279.3193 280.2413 281.0574 282.407 285.0042 285.4671 284.7161 284.3207 283.9127 284.2393 283.7336 283.8607 285.0396 286.0778 284.0177 281.2735 279.8222 280.5165 285.6927 288.2044 290.315 292.3253 293.6075 294.0165 294.1492 294.0347 293.3697 294.9518 294.7966 292.8244 291.5443 289.3254 288.0295 287.8658 287.2149 284.5659 279.8199 280.8925 280.095 275.1808 269.109 263.5169 264.6129 265.7234 272.3292 278.9399 279.2558 278.4488 274.6404 270.572 271.0515 275.4698 279.844 283.0387 288.6105 290.7318 292.4371 292.9215 293.2236 291.7392 290.324 291.4657 293.6132 297.0906 298.503 300.3448 302.5913 305.3567 307.895 310.6942 313.6186 316.3732 318.5348 317.1595 315.562 312.1865 307.5986 302.266 298.1421 298.599 301.4312 301.7756 301.8412 301.1022 299.8112 298.1556 296.9314 295.9516 295.7489 294.6873 291.3373 289.5379 289.3603 289.7785 289.6972 287.5463 284.3607 279.3393 274.243 269.6292 270.9326 273.5163 275.6893 275.6593 271.1611 266.4947 265.2945 267.1765 268.7244 269.0895 273.1206 276.4276 280.1465 282.7032 286.0299 289.195 290.9194 293.5613 295.6237 298.1011 300.4196 300.6068 298.4331 296.232 294.2468 294.2358 292.2778 289.9524 287.1916 284.2234 281.4266 278.4895 276.6532 274.3152 271.927 264.1518 263.7068 263.9199 264.2698 262.915 262.6291 266.0766 268.0172 268.2272 266.3304 266.3206 266.8964 267.5642 268.4831 269.55 270.2702 273.6989 276.7144 279.7568 284.7126 286.061 287.9219 288.7482 287.6216 286.7728 286.2527 285.2834 283.2458 280.0407 278.0557 275.7238 271.8183 269.3397 266.7031 265.9936 270.1576 272.2903 272.9027 272.8509 272.4307 275.0868 274.7073 275.6655 278.8557 279.859 280.8015 281.6619 282.3574 280.5815 277.7757 276.4175 280.2038 281.514 281.6497 281.4094 280.746 279.8942 278.6183 276.9631 275.9415 275.1088 275.2786 275.5982 275.8021 274.831 274.2756 274.031 273.6689 273.6533 274.1593 274.2236 273.7468 273.4426 272.1034 271.0188 269.907 268.0965 266.7292 265.0001 261.5574 257.2072 254.6779 259.9416 261.9623 266.2048 267.8062 268.855 268.8963 268.4952 267.8392 267.2763 266.4781 266.1678 265.2237 262.8138 258.8669 254.7398 255.0577 255.8688 258.433 262.4354 263.9276 265.2386 266.3476 267.31 268.0997 268.7984 269.0978 268.3799 266.818 266.9641 267.5329 267.878 267.7473 268.0424 268.1568 267.5582 266.615 266.7877 266.4854 265.1781 263.6597 260.7663 257.2221 254.2856 250.791 246.3802 241.9421 241.6727 241.6329 241.7743 241.5393 241.7883 241.6625 241.6096 241.7248 241.6131 241.3885 241.8826 242.6355 244.2176 245.3913 245.6872 245.7456 245.3674 244.8605 244.7095 244.2828 243.4327 243.3602 243.4182 242.909 243.6183 242.9846 243.7685 239.9235 242.889 242.7814 242.3488 242.3562 243.3528 243.5835 243.346 243.0031 243.0365 243.0384 243.0194 242.5921 248.1199 248.3537 243.1172 241.7659 241.6616 246.0671 258.3469 266.0527 270.6055 272.74 272.3265 271.3442 270.4703 267.7329 263.3098 258.2551 261.9617 265.0188 268.0823 271.425 272.7242 273.4877 273.8135 273.8647 273.885 273.9866 273.5693 272.4068 271.1797 270.1822 269.2958 268.9523 268.4088 268.4649 267.7833 267.2566 266.8249 266.1766 265.9286 266.0045 265.253 265.1913 267.5972 269.8799 271.5503 272.4134 272.9875 273.5121 273.6761 273.6379 274.5981 274.7484 274.3599 274.659 276.222 277.7841 278.3334 -9999 +-9999 -9999 332.0195 334.2772 335.8486 336.1618 335.4976 336.1079 333.5722 332.4152 332.7137 335.8057 336.985 337.9119 338.6534 339.3853 338.2451 336.0555 331.8521 325.1902 322.5019 327.4144 331.6681 333.6201 337.0457 336.8097 335.1334 333.4759 330.8735 329.1799 328.9672 328.8604 328.0118 325.6528 324.2793 322.3647 324.442 323.6046 320.9864 317.3436 317.4907 319.7581 323.8343 325.0804 325.8852 325.9922 324.7621 322.7023 319.8481 316.3475 312.6449 306.5359 308.6682 313.5089 317.1596 319.3719 322.0327 324.6369 326.5832 327.5521 330.0579 330.4727 330.8144 331.5241 332.2583 333.1273 333.5209 333.7068 334.0336 334.0159 333.8152 332.4494 331.1563 329.3685 326.0438 322.4447 320.1157 317.3463 312.6343 310.1389 308.7495 309.084 306.9691 301.5511 298.8598 298.9402 301.8157 307.5789 307.1573 308.0467 311.1837 313.5073 315.8014 318.1325 319.6826 321.1138 323.1666 323.515 323.5371 323.0493 322.2231 321.0342 318.8955 316.4188 314.9689 313.2717 312.3114 311.2267 310.3139 309.1235 307.8552 306.264 304.4962 302.6905 298.3873 297.4331 295.9097 293.3513 287.8734 286.4016 286.5097 284.4684 282.9945 288.6081 293.029 297.1512 299.374 300.8894 301.8755 302.7358 302.7736 299.4359 295.0937 295.7983 294.1555 291.6508 289.7087 287.9045 286.1461 283.7929 279.0517 272.0482 277.1766 277.4448 277.4969 278.423 280.585 281.3743 280.5887 280.6754 281.1026 280.5851 279.6487 280.0758 282.6801 284.6189 283.866 279.6623 278.3571 280.0053 287.1246 289.8269 291.5695 293.1238 294.1607 293.518 292.0824 291.4311 292.3849 295.0578 295.5219 294.8533 293.2675 291.2083 288.7408 286.8784 287.0389 285.353 279.5984 279.7524 282.4331 280.6182 273.7141 266.4098 263.375 264.6455 271.1223 277.4643 278.4211 277.54 272.0475 269.4427 271.2127 274.7714 277.8174 281.4499 286.6855 289.2144 290.2707 291.1291 290.5784 289.9843 288.8112 289.8671 291.7606 295.2879 296.8325 298.9481 300.9496 303.8938 306.506 309.5248 312.6004 315.6006 318.1498 317.1756 315.9112 313.5921 309.929 305.392 300.8376 301.6463 303.4219 303.8152 303.7847 303.0225 301.9402 300.1043 299.3949 298.5565 298.3236 297.8922 294.6891 292.3226 291.3984 291.4796 290.4909 287.6298 283.7875 278.9872 274.0978 274.1071 276.5429 277.7708 279.3122 278.6495 274.9611 270.5152 265.0714 263.7051 266.4055 270.4619 272.4662 274.5742 277.2435 280.2303 284.7115 286.732 288.3958 292.7454 294.9531 297.4877 300.2077 300.2988 297.2896 294.1167 290.8919 291.2195 290.2377 288.6709 286.3678 283.8104 281.3451 279.2108 276.6142 274.0468 271.5167 265.9468 263.3757 262.272 262.0443 261.8148 261.5332 263.5756 264.4552 264.2892 265.4863 266.561 267.1003 268.591 270.816 272.1378 274.1319 276.5876 279.3304 285.9529 287.231 288.702 289.8439 289.6318 288.2075 286.9027 286.8036 286.0267 283.6348 280.8812 278.9312 276.9837 274.1447 270.0232 266.3862 265.9416 269.0672 271.0576 271.5951 271.7068 270.7271 274.0779 273.3945 277.1396 278.2478 279.1466 280.0416 281.8094 281.9979 282.4691 277.7757 276.4175 280.2038 281.514 281.6497 281.4094 280.746 279.8942 278.6183 276.9631 275.9415 275.1088 275.2786 275.5982 275.8021 274.831 274.2756 274.031 273.6689 273.6533 274.1593 274.2236 273.7468 273.4426 272.1034 271.0188 269.907 268.0965 266.7292 265.0001 261.5574 257.2072 254.6779 259.9416 261.9623 264.0359 265.9742 266.7225 266.8529 266.3966 266.0146 265.629 265.1417 264.933 263.9735 261.6197 257.4061 253.1989 253.397 254.6627 257.5307 261.5565 263.1707 264.2679 265.0199 265.6412 266.3543 267.0973 267.7138 267.9581 265.5703 264.9503 264.9424 265.5721 265.9922 266.2876 265.9539 265.6197 265.3392 267.0335 266.7833 265.0407 262.0887 258.3938 252.4796 248.732 245.4204 243.3899 241.5983 241.6862 241.7796 241.8789 241.9409 242.0509 241.754 241.7479 241.8079 241.6449 241.5385 241.7271 241.7716 242.307 243.7527 245.1631 245.7086 245.7026 245.1418 244.581 244.0182 243.5176 243.201 243.0844 243.2135 243.3841 243.1792 243.7965 239.8268 243.1069 243.3378 242.4328 242.5112 242.3898 243.2369 243.1364 242.9176 242.9814 242.924 242.697 242.2844 243.5647 248.6522 248.6503 241.6396 241.9631 248.0424 260.2875 268.0478 272.1298 273.6073 273.601 273.045 272.815 271.0193 269.8545 267.6601 265.7678 267.3727 269.7843 271.3625 272.2033 272.3795 271.9163 272.2606 272.5211 272.195 271.8106 270.8441 269.4496 268.7291 267.7739 266.6409 264.7178 264.1281 263.6986 262.8394 262.4497 261.6393 261.305 262.4699 265.0332 269.444 271.6777 273.2594 274.0724 274.7727 275.2329 275.6378 275.6794 275.1523 276.5917 277.362 277.872 278.0495 279.0478 280.2664 280.798 -9999 +-9999 -9999 332.0195 334.2772 335.8486 336.1618 335.4976 336.1079 336.3094 336.4743 335.8671 338.1584 338.1912 339.2377 339.8619 340.7534 339.4072 336.7967 332.9991 328.0794 322.604 327.161 331.897 333.6954 337.4101 337.2629 335.6327 333.4609 331.3037 331.6482 331.4622 330.4388 329.0684 326.0205 324.5208 325.9713 326.0925 324.6452 321.3618 317.9742 317.2148 319.8111 323.5523 324.8332 325.8134 325.9319 324.8471 322.8443 320.2811 316.4426 311.7574 307.4659 307.6833 313.1686 317.1109 320.1357 322.4912 324.4107 326.4485 327.2392 329.7484 329.8644 329.9778 330.076 330.5633 331.6433 332.7707 333.0493 333.7619 334.5585 334.6541 333.71 332.1952 330.293 328.4035 326.2437 323.8743 320.9246 317.1128 315.8156 313.9297 313.8136 311.1707 307.7756 302.8452 298.9066 299.6581 302.3613 304.2373 307.795 310.9574 313.9933 316.5021 319.0785 320.9913 322.7274 325.0223 324.8815 324.3477 323.2731 321.2999 318.876 316.5908 314.2199 311.4698 310.1455 310.2296 308.9911 308.2198 307.3075 306.0882 304.0013 301.2035 299.6752 295.7908 293.2798 290.7748 287.7063 286.3915 285.347 284.994 284.5855 289.3366 297.2192 297.0617 294.6264 298.2458 301.1218 302.6984 303.7337 303.0501 299.9384 301.2256 300.0551 297.7995 294.5302 291.023 287.6257 285.2095 282.9441 279.0572 273.7638 274.4404 274.3499 273.9485 274.0931 274.0301 274.5359 276.066 276.8736 277.285 277.9541 278.0647 278.4611 280.8987 283.1534 282.7456 278.6568 278.1134 279.4831 286.3577 289.2428 291.34 292.6873 293.0576 292.3875 289.8315 289.7643 291.4496 294.1813 295.1252 295.4289 294.1982 291.5692 288.9209 287.0047 284.6513 284.0758 279.3581 278.4129 279.2253 279.8684 274.1498 267.2201 263.5845 263.9537 268.6337 276.0385 277.9785 276.4475 271.5348 268.8473 271.0692 273.9382 276.6689 280.1723 285.9035 286.974 288.7879 288.2016 287.7002 287.4577 287.0152 288.4883 290.2247 293.5446 295.226 297.1402 299.2466 302.4083 305.533 308.3495 311.8309 314.6539 317.5361 316.9393 315.8103 314.6527 311.7723 307.8177 304.9747 303.0435 303.3276 305.1884 304.9593 304.3535 303.0436 301.9599 300.7066 300.4097 300.1571 299.1169 296.3298 294.6843 293.2005 291.8909 289.7023 286.1459 281.8596 277.4016 272.4282 276.6572 279.4622 280.8501 281.754 280.2993 277.135 272.1792 265.952 264.1941 264.7123 267.2065 270.9047 275.7513 280.3604 283.4008 286.0409 288.2433 290.746 295.5726 296.6042 298.3922 299.8946 298.5703 295.4674 291.9523 287.4358 288.1558 286.8214 285.479 283.9821 282.4365 280.5049 278.7408 276.3463 274.0787 272.066 268.0179 266.7768 263.4681 261.2408 261.3716 261.3538 262.0033 264.0869 265.7228 268.5671 269.6851 270.7901 272.4284 274.157 275.0574 276.1104 276.5876 279.3304 285.9529 287.231 288.702 289.8439 289.6318 288.2075 286.9027 286.8036 286.0267 283.6348 280.8812 278.9312 276.9837 274.1447 270.0232 266.3862 265.9416 269.0672 271.0576 271.5951 271.7068 270.7271 274.0779 273.3945 277.1396 278.2478 279.1466 280.0416 281.8094 281.9979 282.4691 282.9184 280.1574 278.2505 276.3523 279.8781 280.6471 280.7132 279.6466 278.5981 276.8766 276.1161 274.9556 273.9874 273.7371 273.602 272.9538 272.6635 271.8254 272.0836 272.175 272.222 272.3679 272.3993 272.2256 271.1604 270.437 269.2082 268.257 267.0037 266.1969 262.6259 257.7533 253.4041 257.5841 260.1215 262.2953 263.9717 264.855 264.9884 264.477 264.1635 264.0081 263.1711 263.0977 262.0317 260.4615 256.6962 252.4747 252.8842 253.51 256.5137 260.4339 261.6219 262.5866 263.2612 263.8666 264.6015 265.4333 266.3774 266.9902 265.0089 263.2069 262.8798 263.3965 263.8498 263.9526 263.9266 264.2836 265.3455 267.7623 268.1183 266.6822 263.7623 260.3138 256.8445 252.3755 244.7838 242.7428 241.6142 241.5705 241.6087 241.7495 242.0555 242.045 241.7547 241.8356 241.9563 241.728 241.5467 241.6457 241.7645 241.7473 242.2339 243.7831 245.5336 245.7314 245.5225 245.0787 244.1702 243.3973 243.1035 243.1785 243.2061 243.1255 243.1095 243.9223 242.2063 239.7345 242.6357 241.8455 239.391 239.2823 239.174 243.1272 242.8929 242.9893 242.7823 242.4543 242.1906 241.9345 246.8539 248.7942 245.4676 247.4708 251.7855 260.8132 268.0742 271.8354 272.8975 273.6443 274.2827 274.4012 273.529 272.5493 271.5362 270.627 270.3753 270.5452 271.0497 271.4036 271.1982 270.4126 270.7104 270.8076 270.6268 270.1037 269.3659 268.3134 266.9718 265.3146 263.8638 261.4089 260.738 260.2092 259.9536 262.2878 264.0827 265.9632 267.8744 269.7703 273.0025 274.602 275.7168 276.2212 276.6278 276.7471 277.0391 276.9403 276.9373 278.153 279.1812 280.2752 280.9802 281.7689 282.7554 283.295 -9999 +-9999 -9999 332.6335 334.0101 335.1277 335.403 337.102 338.4091 338.7182 338.7311 338.5979 338.6829 339.3658 340.3081 340.9631 341.2357 339.486 336.6539 334.2166 329.8605 323.5938 325.9051 331.075 333.4039 336.7083 337.3439 336.2525 334.0555 333.3647 333.5542 333.085 331.7713 330.1625 326.7366 327.9674 328.7109 327.6974 325.4221 322.227 318.4912 318.4493 319.6526 322.1515 322.8982 324.0226 325.089 325.1157 323.9417 322.3621 320.0865 315.4573 310.2648 308.5104 312.0937 316.0063 318.7105 320.7995 322.3969 324.5823 325.1674 327.5327 327.7881 327.9925 328.4655 329.0801 330.3611 331.2953 332.2325 333.4075 335.5664 335.5848 334.3656 332.881 331.1076 329.0333 326.9428 325.5538 323.827 320.3198 317.9928 316.6252 315.483 312.8757 309.6973 304.5196 299.8936 298.5895 300.4504 302.5186 306.3023 310.0751 313.0544 315.2443 317.5656 320.0287 322.2353 325.0129 325.2401 324.5934 323.2503 320.8602 318.4709 314.7959 311.933 309.2607 306.1435 305.7932 304.96 304.8637 304.713 304.2245 302.7106 298.995 295.8798 294.0102 292.0755 288.5469 288.1667 287.4311 286.5298 287.2577 290.3159 295.3056 301.6521 301.4876 297.8576 298.5727 301.793 303.6467 304.7243 304.5945 303.9001 303.4305 300.8322 296.9718 293.577 291.8444 291.2964 289.4507 286.7883 283.6176 279.7827 272.9261 271.4548 271.4457 272.3701 272.5681 272.3812 272.0902 272.2202 272.3388 275.736 276.4406 277.7066 280.116 281.719 281.1563 277.3448 277.5039 279.1582 284.9434 287.6852 289.6623 290.9763 291.3999 290.7336 288.5229 288.8771 290.1133 292.8133 294.5976 295.0569 293.9053 291.562 289.1679 286.8369 282.1526 282.9563 280.9227 277.8899 277.0438 276.2253 273.7641 267.7625 263.443 263.6849 264.7038 275.5749 277.6263 275.5789 271.4482 268.0487 269.7183 272.8037 275.7925 278.7378 283.8806 286.4506 287.2039 286.2085 284.262 283.987 284.0032 286.4763 288.5179 291.7205 292.9865 294.6709 297.1511 300.4522 303.9674 307.086 310.9505 313.901 316.7502 316.6601 315.6408 315.0275 312.7578 309.9524 307.735 305.4447 304.3038 304.6371 305.1504 304.7692 303.8197 302.7001 302.1524 301.4168 300.7758 299.8053 297.2949 296.0432 294.3339 292.0022 288.9405 284.9901 279.9063 273.9233 273.2396 278.6642 281.3262 283.2728 283.6496 282.3295 278.3215 273.2259 267.5145 264.4669 262.7894 264.8154 270.8625 277.4891 282.286 286.2156 288.4762 291.2016 293.7484 297.7279 296.6042 298.3922 299.8946 298.5703 295.4674 291.9523 287.4358 288.1558 286.8214 285.479 283.9821 282.4365 280.5049 278.7408 276.3463 274.0787 272.066 268.0179 266.7768 263.4681 261.2408 261.3716 261.3538 262.0033 264.0869 265.7228 268.5671 269.6851 270.7901 272.4284 274.157 275.0574 276.1104 276.902 280.0572 284.8392 287.2779 289.8074 291.0734 290.3862 288.7661 287.6179 287.8214 286.8761 283.8875 283.0057 281.417 279.2243 276.5817 270.8017 266.4521 264.835 268.0095 269.6058 270.8307 269.6416 269.4862 272.4668 275.5608 277.1507 277.8029 278.4415 279.1009 279.7016 281.146 281.9438 282.3993 282.8649 283.0253 281.2599 278.4412 277.9518 280.5133 279.346 278.5001 277.2121 276.0728 275.2677 274.8568 273.8797 272.6981 271.7713 271.2406 269.672 269.4474 269.926 270.2081 270.4783 270.7494 270.6781 269.938 269.2385 268.5184 267.8618 267.4378 266.3663 264.7659 260.3928 254.7643 255.3891 257.9943 261.2648 262.1888 262.6821 262.8039 262.5244 262.3356 262.6276 261.5671 261.2715 260.6749 259.3091 255.8628 252.49 252.3657 253.3063 255.8409 259.1383 259.7087 260.1993 261.0889 262.3766 263.3427 264.543 265.794 266.4427 263.7856 262.2195 261.7485 261.0799 261.0667 262.0656 262.5263 264.2528 265.8368 268.0522 268.8443 267.8808 264.6177 261.3222 258.3289 254.0367 244.3576 242.197 241.5446 241.6443 241.8051 241.8946 242.2313 242.0284 242.0048 241.8456 241.9768 241.7642 241.7855 241.7464 241.7145 241.8493 242.3359 242.3975 242.948 243.7148 246.0355 246.3927 245.8349 244.6355 243.299 243.1206 243.0829 243.119 242.9937 243.7299 243.9929 240.7878 239.5699 239.6115 243.495 243.7297 243.4418 239.1931 242.8124 242.4977 242.398 242.2835 242.1047 242.182 242.0324 249.2673 249.39 257.2334 259.9319 264.4996 267.8366 269.6729 271.0182 272.3464 273.579 273.8976 272.9687 272.6143 272.3938 271.7603 271.1625 270.7336 270.1476 269.9813 269.8095 268.659 268.9061 269.2007 268.985 268.4914 267.6618 266.2126 264.8372 262.7799 259.828 258.2809 261.0858 263.5963 265.5085 266.9516 268.379 269.8119 271.1758 272.6434 275.6751 276.5511 276.9896 277.049 277.3558 277.592 277.7424 277.8811 278.1675 279.8712 281.0061 282.1906 283.1003 283.9631 284.8347 285.3835 -9999 +-9999 -9999 331.859 333.2593 333.0539 333.4719 336.717 338.4996 339.3026 338.4922 338.3817 338.9274 339.5132 340.2369 341.1508 340.8896 339.5041 337.5899 335.0658 330.7278 326.0335 325.4798 329.1075 331.7686 335.9461 337.3905 336.7787 335.2738 335.3065 335.1858 334.6429 333.5389 331.9222 328.2264 330.5415 330.4491 329.1509 327.0477 323.4528 318.5574 320.0443 320.7378 321.2423 321.7723 322.9185 324.8563 325.7249 325.5472 324.7678 322.375 319.8112 312.308 310.1828 309.4 312.6838 315.26 316.857 318.8011 319.8938 320.727 322.8336 324.0816 324.7415 326.1833 327.9601 329.6901 330.2209 331.6856 332.7196 335.971 336.2581 334.9067 333.0763 331.5332 329.3717 327.1508 325.6617 324.411 319.9515 317.0379 315.5599 314.0997 312.0435 309.432 306.0076 300.959 300.1028 299.7698 301.0927 305.0099 308.7911 311.5361 313.6547 316.0255 318.1042 320.963 323.7595 323.956 323.9479 323.4496 321.8406 319.2168 317.0571 313.7766 310.2662 306.1833 305.1194 302.3975 300.4046 298.7412 299.7444 299.0954 297.1848 294.2424 294.6558 291.8646 290.0984 288.446 291.5054 291.6266 293.0262 291.4867 297.1243 303.3315 303.3035 301.7742 300.2052 301.9135 304.6881 306.0792 306.4789 306.6016 303.8903 300.4514 298.8685 298.8321 297.6705 295.9495 293.3565 290.3469 287.2704 279.9931 275.1839 275.0824 272.5132 271.276 272.3376 270.2661 271.9084 271.8497 271.6441 273.9893 275.6429 276.8702 278.1895 279.1279 279.7252 276.7693 276.5255 278.58 283.6193 285.5572 286.5182 287.4937 289.2399 288.6559 285.7208 288.1996 288.8242 292.1397 294.3256 294.9499 293.9835 291.7843 288.8057 287.1713 284.2595 280.4641 280.0419 280.6099 277.6912 274.9499 271.1618 265.8744 263.3405 263.5586 263.5051 275.0248 277.0428 274.4831 268.5018 267.3189 268.9198 271.5761 274.9995 277.5422 282.1993 284.943 285.5316 284.556 281.7856 281.9503 282.4766 284.1974 286.4609 288.147 289.9118 292.3755 294.3181 297.9004 302.0815 305.7148 310.0818 313.0752 316.1007 316.4464 315.6171 314.6439 313.0107 310.7161 308.5352 306.7516 305.749 303.6103 303.7929 303.6844 302.8451 302.3321 302.1524 301.4168 300.7758 299.8053 297.2949 296.0432 294.3339 292.0022 288.9405 284.9901 279.9063 273.9233 273.2396 278.6642 281.3262 283.2728 283.6496 282.3295 278.3215 273.2259 267.5145 264.4669 262.7894 264.8154 270.8625 277.4891 282.286 286.2156 288.4762 291.2016 293.7484 297.7279 298.9217 299.4918 299.2413 295.8452 293.1425 289.9045 284.9906 284.7982 282.5218 281.5443 280.6458 279.7096 278.7005 277.3096 275.6582 273.3862 271.2469 268.5508 266.7684 265.2963 260.8816 260.1838 260.9597 263.3535 265.9781 268.4692 270.8224 272.0044 274.5345 276.428 277.4384 279.0199 279.4414 278.5014 279.2613 283.1502 285.7578 288.577 289.5097 290.0125 289.3845 288.1187 287.885 286.7044 284.8245 284.031 282.2578 280.3172 277.3246 271.1671 265.854 264.3005 266.9032 268.4023 268.5733 268.3393 268.947 273.7362 275.2827 276.6348 277.3719 277.8996 278.6482 278.0996 280.6591 281.2965 281.6788 281.9424 281.6188 281.9924 282.3886 279.1216 280.0495 279.2466 278.4182 277.5068 276.1972 275.1883 274.85 274.6913 273.7361 271.0192 269.919 269.0066 265.7396 266.2924 267.1165 267.8487 268.565 269.041 268.601 268.2718 267.5026 266.6351 266.5703 265.859 264.8252 261.9824 257.5859 253.0496 255.8575 258.0784 259.6261 260.441 260.7377 260.7629 260.6527 260.6069 259.7469 259.881 259.6157 258.4386 256.0093 252.8354 252.6305 253.1798 255.3741 257.9776 258.011 258.8661 260.2214 262.02 263.6071 264.7448 265.7444 266.1931 262.7696 261.3956 260.2393 259.2756 258.5425 260.2879 262.3118 264.5798 265.3392 267.2793 268.3421 266.8198 264.1027 260.9371 257.0488 252.3427 245.3202 242.0901 241.5414 241.8833 241.9524 242.0577 242.1897 242.2416 241.6286 241.8513 242.0838 242.0071 241.9904 241.8541 241.8699 241.9894 242.4809 242.6926 242.8555 242.5133 245.3146 247.0397 246.957 246.3082 244.5371 243.1541 242.8448 242.7287 242.8876 243.4647 243.2208 243.1346 243.5242 243.175 243.1349 243.1077 243.0885 243.3079 242.7042 242.4073 242.2934 242.0619 240.9185 242.514 244.148 248.3253 249.4165 257.5634 258.5428 261.2032 264.5675 267.5115 269.2646 270.6903 271.7269 271.8659 271.7076 271.5553 271.4757 271.0891 270.3616 269.7413 269.4048 268.8007 268.3689 266.6912 267.008 267.0864 267.0466 266.3748 265.6093 264.3076 262.4528 259.9275 257.973 263.4337 266.1421 267.6744 269.0269 270.3218 271.5337 272.42 273.361 274.8339 276.3035 276.3235 276.0994 276.2189 276.8492 277.2499 277.6044 278.2752 279.0459 280.851 281.8841 283.3198 284.4907 285.4318 286.3193 286.94 -9999 +-9999 -9999 329.5711 330.6323 329.9606 331.3335 335.4778 336.9588 336.9515 336.4134 335.9159 336.6416 337.7756 339.8524 340.8747 341.7791 340.5351 338.5018 335.0804 331.129 327.0227 324.8635 328.5999 332.0911 336.507 337.8654 338.1537 337.185 336.8593 336.3716 335.621 334.3345 332.6136 330.3225 332.523 332.3201 330.5282 327.4812 322.5386 318.582 322.6062 323.2721 322.55 322.3192 323.6849 325.6353 326.8075 326.8814 325.9213 324.1506 321.7964 314.6796 310.8654 311.2476 312.2039 312.356 312.3654 312.6767 313.9457 316.9871 318.9389 321.2231 322.7108 325.2294 326.2438 326.9053 329.0333 330.5022 331.9615 335.4247 335.9091 334.53 332.4362 330.0712 328.4134 326.2943 323.7227 320.9492 315.2934 312.0723 310.915 309.534 308.0497 305.3256 302.1206 301.1353 300.2976 300.1506 300.2519 302.8571 306.216 309.2025 312.1002 314.2509 317.1395 319.3592 321.9557 321.3043 321.9437 323.0206 322.9807 320.2776 317.7872 315.5562 312.8439 308.6606 308.1756 306.9501 304.5626 301.8914 298.9957 298.2948 297.4576 296.2075 299.2708 297.418 293.9619 289.5899 295.1257 297.1827 298.1115 297.9292 297.3197 303.8142 305.3377 305.3563 304.2888 305.7076 306.4776 307.4832 308.2534 307.9736 303.5167 301.4985 302.4218 302.4626 301.2184 299.4071 297.0608 293.1977 289.7733 283.565 281.1396 278.5254 273.5757 272.5496 272.0455 271.7299 270.4321 271.5881 271.5925 272.3676 277.0148 276.9559 276.8121 276.724 276.4258 275.5507 274.562 279.0604 281.7484 282.8542 283.5564 285.2472 286.2669 285.7038 282.8118 285.929 288.8922 292.4936 294.1246 294.6811 293.9604 292.1951 290.4832 288.7501 286.2405 278.7565 281.2385 280.4853 278.1466 275.5362 272.5836 267.4937 262.6793 263.3018 263.5232 273.5819 275.8057 273.2755 267.166 267.1785 269.2992 271.3751 274.6873 276.5583 282.312 284.943 285.5316 284.556 281.7856 281.9503 282.4766 284.1974 286.4609 288.147 289.9118 292.3755 294.3181 297.9004 302.0815 305.7148 310.0818 313.0752 316.1007 316.4464 315.6171 314.6439 313.0107 310.7161 308.5352 306.7516 305.749 303.6103 303.7929 303.6844 302.8451 302.3321 300.9724 300.4924 299.7481 298.6949 295.9373 295.2538 293.6452 290.9793 287.7236 284.0279 279.8324 275.4857 275.282 279.7545 283.1595 284.888 284.7072 282.3694 277.8657 272.9937 267.7778 264.1698 262.4853 265.4565 272.1553 277.023 281.9999 286.4572 289.7565 292.5799 295.0247 297.9446 298.4809 298.4882 296.6404 293.1783 290.211 287.7059 284.1752 280.2697 278.6785 278.176 277.9089 277.3219 276.8697 275.7962 274.7119 272.3697 270.6773 267.5317 265.9957 264.2406 259.9524 260.314 261.0659 264.3477 267.9556 270.8242 273.8097 275.7925 278.4927 280.6473 281.6631 282.0893 282.7643 281.9841 281.3957 284.9486 286.143 287.6033 289.1917 289.5102 288.8448 287.8846 286.9605 285.8608 284.3059 283.507 281.8745 279.799 276.4794 271.0325 265.5068 264.0695 265.6531 267.458 267.8326 267.7896 268.9917 273.4397 275.7481 278.1806 277.2422 277.2529 278.0077 277.8767 280.4322 280.8633 281.1762 281.3837 278.0846 278.4083 278.5975 278.5376 279.3528 279.1838 278.7547 278.1064 276.1161 275.0506 274.4416 274.6683 274.0052 271.4533 270.1486 268.7536 266.0891 262.8066 263.5081 264.5938 265.6129 266.7284 267.0533 267.0761 266.6813 264.9846 263.9641 264.0283 263.0631 260.9472 258.2142 250.7986 252.8821 254.8129 256.5154 257.7259 258.2457 258.5494 258.5474 258.1606 257.9446 258.4149 258.3277 257.1647 254.0367 252.5782 252.4263 252.7496 254.6043 256.5048 257.317 258.5316 260.1829 262.2159 263.6686 264.708 265.6205 265.7968 262.1434 260.833 259.8586 257.4336 256.688 258.7277 260.9555 262.5501 263.5089 266.0252 265.3805 263.9865 261.7195 259.1243 256.2952 250.8698 244.1513 241.793 241.6652 242.0017 242.0241 242.1452 242.1477 242.3074 241.7347 241.9494 242.2912 242.3611 242.4191 242.4552 242.467 242.626 242.9133 242.8419 243.0424 242.9062 243.9595 246.2654 247.4555 246.8596 245.6602 244.6476 242.8328 242.6598 242.906 242.9923 242.9332 242.789 242.4552 243.0939 243.6404 242.9696 243.6094 242.254 241.4328 241.6664 242.1302 242.0497 245.8409 252.0976 254.0855 254.0116 250.0397 253.0354 257.5642 258.62 261.2257 264.0875 266.2816 268.4936 270.1651 270.5974 270.096 269.5387 269.4848 269.3612 268.9793 268.3691 267.8905 267.4828 266.5923 264.9153 265.2581 264.9856 264.4117 263.9908 263.3345 261.8048 259.6321 257.8525 261.4038 264.8304 267.4088 269.3579 270.9315 272.4278 273.5746 274.0545 274.2649 274.3327 274.3235 274.1443 274.4053 275.492 276.1504 276.4979 277.0901 277.9746 279.2276 281.6203 282.8692 284.2519 285.417 286.3495 287.2046 287.62 -9999 +-9999 -9999 325.9333 327.0152 327.3322 329.1301 333.1279 334.3162 332.9939 332.0983 333.222 334.8646 336.619 338.6039 340.9001 342.3707 341.4314 339.5789 337.891 333.459 328.1912 327.1185 329.1412 332.5583 337.4778 338.6777 339.4441 338.9183 338.513 337.3445 335.8771 334.9931 334.1604 332.1882 333.6312 332.3964 328.778 323.9063 319.8975 322.1645 324.5654 325.9184 324.6545 323.6873 324.5395 326.2356 327.1493 326.9189 325.5564 322.8827 320.9144 315.1099 311.4419 311.67 314.5138 316.313 316.3468 316.3011 315.6529 318.4093 318.3342 318.8925 319.8563 322.1768 324.9753 327.5434 330.3947 332.1627 333.2491 334.92 334.5881 333.5421 332.094 329.5079 326.0605 323.5102 320.7575 317.2443 311.2321 308.3065 306.5249 305.3621 305.5546 305.5373 305.6388 304.4641 301.5713 300.2209 300.1826 300.691 302.3442 305.6855 309.3239 312.386 314.7034 316.5435 317.7112 318.7361 320.721 322.6467 323.6785 321.4293 319.7331 317.0144 314.3841 312.7468 312.3877 310.3998 308.5302 306.1969 305.043 303.7877 302.3439 301.8736 301.982 300.476 294.9558 290.6789 295.877 299.2677 301.372 302.2237 302.6783 304.7851 306.7629 307.5962 307.7846 308.6139 309.2036 309.4038 309.1037 308.815 306.1913 305.5816 306.0016 305.6745 303.8886 302.1402 299.8743 296.0682 291.9021 283.4184 280.5542 277.0887 273.4753 274.0888 272.4368 272.3636 272.6474 270.541 271.1032 272.8938 275.9904 276.3201 275.3009 275.0547 275.0543 275.4189 273.6817 277.5779 279.1796 279.6712 280.867 282.9475 283.8373 281.8296 280.9646 285.929 288.8922 292.4936 294.1246 294.6811 293.9604 292.1951 290.4832 288.7501 286.2405 278.7565 281.2385 280.4853 278.1466 275.5362 272.5836 267.4937 262.6793 263.3018 263.5232 273.5819 275.8057 273.2755 267.166 267.1785 269.2992 271.3751 274.6873 276.5583 282.312 283.5636 283.3388 281.538 280.143 280.7415 282.4009 283.4211 283.2821 284.6705 286.0926 288.4089 291.0778 295.5298 300.0943 304.5831 308.7876 312.0059 315.1371 315.8914 315.5274 314.566 313.1655 311.2206 309.3062 307.5494 305.9322 303.2584 302.9519 302.1271 301.2161 300.6745 300.0115 298.9749 298.0884 297.1879 294.0313 292.7825 291.4838 289.2336 286.2485 282.7825 279.6762 278.7818 278.7877 281.9431 284.6708 284.8934 284.3069 281.3079 277.6159 272.8758 267.5041 264.3307 262.9943 265.3337 270.7221 276.0839 281.271 286.2301 289.1335 292.3901 294.3165 295.4266 296.4729 295.4737 293.8843 291.5235 287.539 285.0435 281.5468 278.3478 275.5693 275.1822 275.2814 275.1345 274.9445 274.6399 272.9104 271.2071 269.8643 266.6463 265.405 260.8105 259.7925 260.087 262.5273 266.911 271.5805 274.9431 277.4421 278.5083 280.9601 283.4137 284.6841 284.6671 284.3517 284.2253 284.6811 286.5604 287.513 288.0339 288.3669 289.2963 288.4835 287.4897 285.9423 284.9896 282.8813 281.9748 280.5352 278.5767 275.6937 270.2023 265.9417 264.1487 264.1709 266.6977 267.3235 267.3486 270.9595 274.5706 277.8688 279.2495 282.1057 281.515 277.5997 277.9545 279.4362 280.1682 280.8048 281.1827 277.978 278.1135 278.1722 277.9314 277.6297 277.6145 279.2134 279.1053 276.5999 274.8806 274.0435 274.4457 274.4993 272.1855 270.4936 269.0146 267.1762 264.4442 260.9771 261.075 261.9123 263.3416 264.8309 264.832 265.128 264.5985 262.4443 261.2877 261.1535 259.2744 257.3564 250.9156 250.2816 251.8666 253.2182 254.4992 255.3017 256.1525 256.4496 256.1617 256.4186 256.8995 256.932 256.2053 253.1348 252.3805 252.2977 252.2682 254.2228 256.0459 257.0909 258.1655 259.8961 261.6265 263.2536 264.437 265.5135 265.0478 261.4179 260.3248 259.6019 258.7755 255.9065 256.2072 259.1013 260.9046 261.8765 263.2185 261.8003 260.5453 258.5551 255.6215 252.6796 247.2244 243.2192 242.1013 241.8231 242.0402 242.0404 242.1349 242.1133 242.1824 242.1188 241.9733 242.2566 242.6839 242.9175 243.0024 243.2096 243.2274 243.1328 243.0119 243.0152 243.0926 242.7272 244.1944 245.8218 244.181 243.5733 242.6889 242.4856 242.4763 242.0943 242.0748 242.4574 242.2454 242.1791 242.2449 242.8069 243.081 242.3525 239.0054 247.0732 250.0644 252.2409 253.0833 253.958 255.4931 259.4957 259.9458 250.2237 250.3196 258.6503 264.6754 264.8773 265.9722 267.7951 268.7196 269.3741 269.3719 268.1388 268.0309 267.4263 266.9693 266.7537 266.2834 265.4011 265.384 264.8724 263.4499 263.0937 262.4228 262.0699 261.8165 260.58 258.6905 257.2527 257.002 263.14 265.1929 267.1353 268.808 270.7362 271.9261 272.1436 272.4616 272.8043 272.2602 272.2439 272.4705 273.5149 274.2535 274.8245 275.4651 276.419 277.4795 279.0514 281.3647 282.6256 284.0376 285.2261 286.041 286.3334 285.8481 -9999 +-9999 -9999 321.1882 322.1494 323.6431 324.2776 329.7633 329.2568 329.8128 332.9443 334.5098 336.419 337.6792 339.4924 341.08 343.2855 342.5994 341.2631 340.0378 335.8752 328.8094 328.5077 329.7967 332.8538 338.4175 339.5268 340.0552 339.9643 339.4876 338.2679 337.0679 336.1219 334.1059 334.5185 333.3743 329.6628 324.974 320.7381 322.741 325.2275 326.9015 327.6508 326.9515 326.1996 325.074 326.1597 327.0385 326.6797 325.0935 322.6195 319.9765 313.6772 311.9537 312.0022 314.4181 317.6311 319.2492 319.0216 318.9896 320.936 321.9128 322.3237 322.1977 322.1061 325.5519 328.1904 329.8538 332.505 334.0871 334.9689 333.7812 331.8021 329.8871 327.9142 325.0024 320.1654 317.6844 315.918 311.8907 309.5493 309.1818 311.5056 312.2027 310.4605 309.8227 308.0848 304.3729 300.3857 300.3854 300.4507 301.8191 304.6364 306.3143 308.6129 310.8181 313.569 319.6089 321.437 322.0799 322.8371 324.2444 322.7682 320.8028 317.9825 317.5974 316.2982 315.5371 314.1138 312.8772 311.1054 309.4639 307.2058 306.7123 305.1688 303.0288 298.8163 292.5479 295.2116 297.7547 300.6903 303.2378 304.9254 306.2634 307.6188 308.5454 309.9667 310.4272 311.0042 311.8887 311.6205 311.1953 310.4743 308.7355 308.1074 307.146 305.6971 303.2301 300.0414 299.8743 296.0682 291.9021 283.4184 280.5542 277.0887 273.4753 274.0888 272.4368 272.3636 272.6474 270.541 271.1032 272.8938 275.9904 276.3201 275.3009 275.0547 275.0543 275.4189 273.6817 278.0497 279.1796 279.6712 280.867 282.9475 283.8373 281.8296 280.9646 285.6866 288.6219 291.6962 292.8733 292.952 292.6068 291.9557 290.5429 288.6399 285.9923 279.6767 282.9427 282.4548 278.411 275.8024 272.8696 269.3998 262.5926 262.979 263.0221 270.6024 272.6031 269.6341 267.0815 267.8647 269.9294 272.6026 273.4621 276.6042 280.944 281.3951 279.7486 278.8283 278.7932 279.597 281.2072 280.8701 281.1548 282.9949 283.9594 285.4698 288.2971 293.1216 298.1031 302.7951 306.8116 310.2195 314.3147 315.2298 315.4774 314.7909 313.3191 311.3593 309.3847 307.5767 305.9264 303.5135 302.9912 301.973 300.3018 298.6957 297.0782 296.4732 294.506 294.5516 290.8191 288.9886 287.821 286.532 284.3318 281.3615 281.6643 281.3736 281.7811 283.0782 284.787 284.6012 283.5728 281.7226 278.3383 274.2738 269.0693 264.5029 262.6658 264.2477 270.5211 275.6622 280.6954 284.3853 287.8569 290.1652 291.6718 291.5506 293.297 295.0686 291.4043 288.8959 285.6216 282.1257 278.6215 274.1203 272.532 272.9034 273.6931 273.5446 272.8909 272.1614 271.0558 269.223 267.8515 265.6724 264.0085 259.6289 259.4709 260.7195 264.9841 270.1154 274.4697 278.5107 280.3047 281.3011 283.5411 285.2112 286.1786 285.9666 285.8425 286.0138 286.8654 288.4121 288.6575 289.2687 289.697 289.5341 288.0981 286.74 285.0389 283.7471 281.2393 279.9871 278.8654 277.2722 275.6975 271.1974 266.2259 264.352 263.0803 266.1118 266.0001 266.3127 270.715 273.8284 278.1457 282.951 284.4456 286.3851 282.4833 278.7399 278.9047 279.5799 280.489 279.1906 277.7899 277.7194 277.2887 277.3021 276.5298 276.6558 278.615 279.6091 278.7237 274.4571 273.6719 274.4248 275.0849 272.9844 271.4718 269.9249 268.789 267.0302 264.4894 261.9984 261.8164 260.719 261.385 261.7566 262.476 262.4803 261.6521 259.0863 258.8476 256.9931 254.0964 251.507 250.0651 249.2393 250.589 250.8765 252.1611 253.8139 254.4141 254.5222 254.86 255.574 255.863 255.1914 253.4518 252.5345 252.3911 252.3245 253.4214 255.4597 256.3839 257.7931 259.273 260.7236 261.9513 263.3583 263.8664 263.3004 260.6066 259.7065 258.8371 257.8823 255.2142 254.704 257.5361 259.222 259.4561 259.9077 259.2708 257.1058 253.5908 249.1019 248.011 245.4379 243.1617 242.3008 241.7677 242.0337 242.1936 242.1262 241.9724 240.5142 238.9413 238.8383 238.8335 239.0356 239.9608 240.3957 239.0429 238.8887 238.8943 239.3089 242.2065 242.8192 242.4534 241.9681 241.7177 241.5386 241.9509 242.3689 242.332 242.3839 242.5791 242.1627 242.0869 241.8071 241.9437 242.3667 242.6412 243.736 239.0348 242.5695 253.3445 256.7828 259.0569 260.29 260.05 259.5925 262.6794 264.5325 255.504 251.2381 252.9454 264.8318 267.7669 268.4884 268.6915 268.4198 268.1732 267.55 265.7953 266.0777 265.7669 264.6476 264.4297 264.1044 263.3774 263.1977 262.7126 261.5826 261.1547 260.7061 260.3262 260.0258 258.2137 256.6715 256.084 257.4486 263.1327 264.6173 266.0781 267.5096 268.8994 270.0622 270.4019 270.5742 271.0062 270.9196 270.7421 271.8676 272.7722 273.9107 274.2082 275.428 276.6324 277.6092 280.0991 280.4038 281.9045 282.753 283.857 284.252 283.9447 283.613 -9999 +-9999 -9999 320.9009 321.5483 322.179 321.8574 326.6653 327.294 331.2036 333.4972 335.3172 337.4717 338.8766 340.5558 341.9872 344.1238 344.2407 343.3758 341.5107 334.5754 330.2756 331.5359 333.7657 337.5196 339.7888 340.4944 340.6406 340.645 340.4344 339.406 338.0251 335.5718 336.0425 334.7773 328.7538 324.6045 322.4017 324.6186 326.392 326.7209 328.3675 329.4989 328.9133 328.0171 326.8348 326.7831 327.2221 326.726 324.4492 322.0871 318.7128 313.2817 311.8337 313.1212 315.8841 319.1829 322.0888 322.726 321.7369 322.3756 324.6039 325.087 325.6535 325.5038 329.0747 331.5805 332.3134 332.9685 334.6829 335.3542 334.044 332.1872 330.3809 327.403 325.0277 322.7832 320.6124 320.1429 318.9505 316.1573 316.8439 317.4119 315.5044 314.0288 312.7581 310.3689 306.8775 300.9211 299.8043 300.8118 301.3737 303.6584 307.7805 311.2946 313.8172 314.7838 321.7089 323.3034 324.2187 324.7265 325.0454 323.817 322.5703 321.7508 320.4241 318.7605 317.8453 316.4193 314.9462 312.9961 309.4639 307.2058 306.7123 305.1688 303.0288 298.8163 292.5479 295.2116 297.7547 300.6903 303.2378 304.9254 306.2634 307.6188 308.5454 309.9667 310.4272 311.0042 311.8887 311.6205 311.1953 310.4743 308.7355 308.1074 307.146 305.6971 303.2301 300.0414 296.9125 294.2613 290.4291 280.6566 278.734 275.0211 275.5816 276.227 273.227 272.8405 272.7247 272.448 271.0956 273.0622 276.1164 275.3174 275.1322 275.0596 275.1115 273.8095 272.1884 274.1683 275.7318 277.5743 279.5965 281.808 281.0229 277.9554 279.8085 283.3331 286.4783 290.8457 291.374 290.019 289.6018 289.748 288.9721 287.3525 285.2534 281.7195 279.7732 278.9943 276.6326 274.6131 271.4456 268.5513 261.7721 263.0053 264.1854 265.9106 266.0421 265.2346 265.1836 268.9013 270.5652 272.3811 273.6483 275.9543 277.2827 276.6233 276.8961 277.8076 278.4997 279.594 280.466 281.7363 281.8215 283.8976 284.5397 285.8131 288.44 291.9097 296.7272 300.9596 305.0028 309.0263 313.4241 314.7095 315.1209 314.9549 313.8991 312.2001 310.0141 308.3658 307.1568 305.0445 303.1432 302.0628 301.2503 300.2723 298.3408 295.6456 294.3171 292.0443 289.233 289.1213 287.5859 285.0946 284.5051 284.9732 285.4794 285.223 284.6954 284.8004 284.9933 284.3253 282.9475 281.6112 278.6039 274.3883 270.0574 265.4286 262.5308 262.5033 268.4177 273.7721 278.0722 281.9824 284.9749 286.9534 287.6438 288.545 292.1233 292.1337 289.5129 287.1671 284.5246 281.1147 277.405 272.3917 269.8481 269.8009 270.9185 270.9939 270.9029 270.7835 269.6856 268.0585 266.6507 265.1686 263.474 259.3545 259.4027 262.9778 267.1453 271.5517 276.0451 279.411 281.935 282.636 284.6788 285.7821 286.2042 286.2861 286.455 287.1539 287.9636 289.4642 289.9524 290.0324 289.945 289.0612 287.7183 286.3242 284.5047 282.9062 281.0932 279.0875 277.5568 275.5193 274.5664 271.8595 267.4744 265.2613 263.1106 264.8621 264.8003 264.7981 267.7726 271.8889 276.968 281.2527 284.8485 288.4383 289.344 286.6319 282.8951 279.5524 277.0669 276.9374 276.9605 276.9916 276.7002 276.1619 275.7747 275.8957 277.6767 279.5463 278.6877 274.632 273.1779 274.0074 274.8475 273.3563 272.1903 270.6708 269.7776 268.9346 267.2776 266.1043 264.602 262.4509 258.0301 257.8742 258.6621 258.5835 258.4252 257.6026 256.4527 254.104 252.1985 249.9815 250.4535 248.6385 248.6815 248.7985 249.7206 251.0387 252.2813 253.2712 253.5355 253.716 253.7832 253.8967 252.515 249.0034 249.0392 251.0122 252.2945 254.1404 255.453 256.7643 258.2074 259.3591 260.6317 261.5638 261.8561 261.5018 259.6312 258.7659 257.8628 255.6222 252.8768 254.8824 257.7185 258.4681 257.9523 256.7482 255.9144 253.642 248.8574 247.9318 247.8495 250.1863 245.9681 243.6064 244.0879 246.4464 242.2337 241.5637 238.8792 240.3864 242.542 243.3846 243.5361 243.2147 243.2486 243.1423 242.9665 242.8813 241.8172 241.0849 238.9309 240.4054 241.9626 242.1528 242.1053 242.2661 242.7991 239.611 238.9652 238.7415 242.5189 242.1949 241.8142 241.99 242.1954 242.3214 243.1862 240.2529 238.9555 244.7285 254.3049 257.8046 261.0221 263.4938 264.4729 264.9414 267.1558 267.9326 262.4418 251.6902 251.5732 258.3434 269.0407 269.1512 268.9702 267.8637 266.7853 265.3607 263.7827 263.9366 263.3435 262.3098 261.6965 261.1773 263.3774 263.1977 262.7126 261.5826 261.1547 260.7061 260.3262 260.0258 258.2137 256.6715 256.084 257.4486 263.1327 264.6173 266.0781 267.5096 268.8994 270.0622 270.4019 270.5742 271.0062 270.9196 270.7421 271.8676 272.7722 273.9107 274.2082 275.428 276.6324 277.6092 280.0991 280.4038 281.9045 282.753 283.857 284.252 283.9447 283.613 -9999 +-9999 -9999 330.3091 331.5359 332.6015 331.6711 326.3415 327.8852 327.9566 330.882 335.1512 337.7316 339.5406 341.3551 342.9729 344.8494 345.685 344.1891 340.8608 335.3543 331.6956 333.8954 336.7061 338.1624 341.0533 341.5442 341.2863 341.0928 340.7966 339.9672 338.4651 336.7443 338.087 335.1529 328.4944 325.7482 326.0168 327.8202 329.525 329.8881 330.1929 330.8733 330.6234 329.5722 328.7962 328.5712 328.3847 326.8632 324.9067 322.4845 319.122 313.8775 312.9957 314.407 317.4463 320.346 322.8918 324.9547 325.2341 324.6951 327.2611 327.8476 327.4664 327.3306 330.1747 332.5242 334.084 335.0807 335.7543 336.0585 334.7731 333.0537 331.4205 329.5284 326.4648 325.6344 325.3205 324.5467 322.1624 319.9181 320.8038 319.9066 315.5044 314.0288 312.7581 310.3689 306.8775 300.9211 299.8043 300.8118 301.3737 303.6584 307.7805 311.2946 313.8172 314.7838 321.7089 323.3034 324.2187 324.7265 325.0454 323.817 322.5703 321.7508 320.4241 318.7605 317.8453 316.4193 314.9462 312.9961 310.0831 308.6783 307.753 306.4176 301.9833 298.0369 294.3943 299.5081 302.1984 303.9789 305.4643 306.9918 308.0619 309.6808 311.362 312.5513 313.0326 313.4634 313.9752 313.1274 312.2336 310.9537 309.4462 308.3442 306.4262 303.517 301.0062 296.586 291.9147 288.9562 285.3321 279.2484 278.7368 278.2733 278.1825 277.1882 274.9137 272.9748 272.6365 272.3238 270.9587 275.4947 275.9716 275.1495 275.1036 275.1121 274.9333 271.7367 270.8211 271.6168 273.0008 273.9631 274.3921 274.801 275.1774 275.2463 280.9579 284.5912 287.9501 289.0752 289.1391 286.4572 285.4884 287.2886 286.541 285.3399 283.7432 282.3618 272.3878 272.83 271.433 268.3908 266.0983 263.9461 262.5349 262.3979 262.6757 263.8188 263.8073 265.5984 267.6236 270.043 271.2324 272.1155 272.4391 272.8503 277.429 278.4927 280.0867 280.2254 280.7284 281.8077 282.784 283.5479 284.7807 288.6129 290.1661 289.8493 290.5861 292.8091 296.191 300.1114 303.6736 307.746 312.722 314.0112 314.8661 315.1553 314.5534 313.4727 311.6379 309.304 307.3682 306.2379 304.8567 303.6681 302.0956 300.6121 299.0292 298.4104 297.6176 296.1072 294.1208 293.9167 293.4683 292.4693 290.6109 288.9747 288.6119 288.3777 287.0242 286.1486 285.2668 283.4866 281.9997 280.3481 276.8353 273.0616 269.5309 265.743 262.377 262.2311 265.4242 272.1472 276.3952 279.2711 281.4006 282.4495 283.309 288.0895 289.8593 289.3 288.3912 286.533 283.9852 281.3605 278.7808 276.064 265.5934 266.653 267.2995 267.9868 268.6722 268.5688 268.0741 266.4365 265.006 264.1574 262.1673 259.144 259.7229 264.4418 268.8036 273.3437 276.8445 279.037 280.3086 281.0659 283.2529 284.1825 285.1131 285.5149 286.1486 287.0445 287.9321 289.6629 289.6578 289.7061 289.3908 288.5417 287.2899 286.5003 285.2913 283.1901 280.6645 279.2834 277.6593 275.3532 273.0806 271.3637 269.0173 266.5093 264.5041 261.8664 262.7738 263.5773 263.7256 269.2612 273.8423 278.5809 282.2749 285.2127 290.4578 291.2838 290.8395 287.6711 284.6432 281.0386 277.435 276.5059 275.812 274.9262 274.8029 275.0733 275.7787 277.2879 276.8211 273.6562 272.659 273.15 273.9994 273.5757 272.6907 271.5242 270.7079 269.9434 269.1288 268.1342 266.36 262.5514 261.6329 259.2475 257.4189 255.3349 254.1877 252.9699 253.3274 252.5206 254.8296 256.3387 255.1216 253.3666 251.4486 248.7129 248.4683 247.8621 249.1063 250.1252 251.0351 250.4279 250.9364 252.0139 251.5655 247.6035 247.8876 249.6398 250.9821 252.7237 254.8295 255.7289 256.9546 258.3264 259.1849 259.9472 260.0165 259.9987 258.7773 258.0376 257.0673 254.468 251.8947 255.2132 257.1274 257.877 258.0943 255.5076 253.663 250.8333 248.2951 247.9221 249.3734 252.0563 252.8528 251.9285 252.4629 253.7504 242.6443 242.2025 238.8622 242.8308 243.3554 242.982 242.2876 243.0769 243.3252 243.1731 242.2489 241.7847 241.8309 242.0938 242.6697 238.9311 242.1038 242.2426 242.5957 242.2661 242.7991 239.611 238.9652 238.7415 242.5189 242.1949 241.8142 241.99 242.1954 242.3214 243.1862 240.2529 238.9555 244.7285 254.3049 257.8046 261.0221 263.4938 264.4729 264.9414 267.1558 267.9326 262.4418 251.6902 251.5732 258.3434 269.0407 269.1512 268.9702 267.8637 266.7853 265.3607 263.7827 263.9366 263.3435 262.3098 261.6965 261.1773 261.2636 261.4409 260.662 260.0008 259.4717 259.5056 259.376 258.5013 256.3734 255.0075 255.7719 258.4325 262.4176 264.2452 265.7338 266.8173 267.7606 268.5156 268.7592 268.8451 269.1176 269.9643 269.8802 271.5543 272.7271 272.9837 273.7837 275.3237 276.4615 277.1834 278.7917 279.7296 280.0765 280.6235 281.544 281.5635 281.2268 280.8478 -9999 +-9999 -9999 336.9516 338.5001 339.8277 336.5843 332.7703 332.4446 327.8835 329.976 333.1429 337.17 340.0986 342.4379 344.56 346.5465 346.6797 344.649 340.6003 336.6306 333.8761 336.0037 338.2143 339.1418 341.6833 342.4433 342.1846 341.8517 341.4895 340.4142 338.4486 338.2235 338.8696 335.7075 331.632 327.6231 328.5909 331.2176 332.3582 332.8203 332.7351 332.669 332.0116 331.2488 329.9056 329.2803 328.8531 328.051 326.1743 323.4023 318.8687 314.2602 313.524 314.8806 317.4463 320.346 322.8918 324.9547 325.2341 324.6951 327.2611 327.8476 327.4664 327.3306 330.1747 332.5242 334.084 335.0807 335.7543 336.0585 334.7731 333.0537 331.4205 329.5284 326.4648 325.6344 325.3205 324.5467 322.1624 319.9181 320.8038 319.9066 317.91 316.2853 314.1613 311.1381 307.6169 301.3077 300.4448 301.0594 301.1978 303.556 309.3376 312.9586 315.8563 317.703 320.7574 322.8484 324.627 326.1887 326.054 324.9467 323.8242 322.6425 322.3723 320.241 318.8368 316.9445 314.4703 312.4613 310.1131 307.8887 306.526 304.2437 300.188 296.6168 296.6633 299.4368 302.3547 304.6552 306.3138 308.4318 309.9483 312.1069 314.0172 315.7168 316.0128 315.44 314.6543 312.9246 311.1034 309.3298 306.8962 305.6677 303.4647 300.0771 297.1321 292.9408 286.3819 282.9698 279.8308 280.2452 282.4447 282.8598 280.3934 278.9276 276.0354 274.5689 272.7834 272.4809 270.0574 272.1203 275.8003 276.1216 275.082 275.8243 271.6073 270.1318 269.9443 270.2025 270.8054 270.6451 270.3789 271.6393 272.4033 275.1429 279.992 284.2132 284.6139 285.7679 286.3575 282.8541 282.2021 284.8046 284.4223 282.6855 281.9136 281.368 269.9522 268.8065 264.1762 262.8058 262.4356 262.5189 261.2876 263.5752 262.7872 262.9083 264.7519 266.2576 266.5946 266.9643 267.4939 267.4775 271.9359 275.6866 280.9212 282.6784 284.4582 286.2903 285.874 285.4987 285.4279 285.725 285.9188 290.14 292.25 292.2601 292.5167 293.9021 296.3501 300.2404 302.5704 306.7404 312.3372 313.4759 314.6243 315.1762 315.2902 314.664 312.794 310.0682 307.82 306.1319 305.6028 304.7863 303.0237 302.0129 301.0536 299.6657 299.0324 298.3066 296.6635 296.843 297.1296 296.6509 294.7265 292.662 291.5975 290.5604 289.3276 286.9862 285.6464 283.7403 281.0195 278.1273 274.633 271.6843 268.2217 265.1322 262.2875 261.9201 265.6956 271.1893 273.6626 276.4376 278.2614 280.3675 283.1417 285.9276 286.3144 286.2516 286.9471 286.4255 284.1699 282.1171 280.8784 277.8238 270.6499 265.4631 264.0892 264.9568 265.9437 266.7036 265.8397 265.2217 263.6094 259.5527 258.2718 259.8411 262.9609 266.2135 269.8047 273.4136 276.288 277.6473 278.3003 279.9891 281.7973 282.8048 283.5891 284.2528 285.3974 286.6263 287.4193 288.2724 288.2682 288.525 288.4654 288.0865 286.988 286.5008 285.5208 283.2588 279.7149 278.3446 277.0782 274.7394 272.4261 270.8068 268.6606 266.7251 265.4833 261.6578 261.0384 261.6461 262.3297 268.1322 270.4362 274.9655 279.315 281.7276 289.3742 290.1656 290.5806 290.3493 289.7853 288.6437 285.3208 282.5429 279.0952 272.6463 273.6096 273.7773 274.8701 275.1804 274.3358 273.0594 272.2935 272.2716 273.6443 273.6016 272.8144 272.1035 271.5266 270.5513 269.6813 268.9627 268.2516 265.9331 262.5421 260.6405 259.2145 257.6571 256.6355 255.5765 254.6479 256.1985 257.8475 259.117 258.9575 257.9159 256.3348 255.2108 253.5591 251.9919 247.5598 246.9525 247.7873 247.6217 248.0651 249.5262 250.5187 247.8731 246.7706 248.5867 250.0639 252.4673 253.715 255.0254 255.7663 257.0357 257.8928 258.3285 258.7194 258.8069 258.0436 257.1162 257.0673 254.468 251.8947 255.2132 257.1274 257.877 258.0943 255.5076 253.663 250.8333 248.2951 247.9221 249.3734 252.0563 252.8528 251.9285 252.4629 253.7504 242.6443 242.2025 238.8622 242.8308 243.3554 242.982 242.2876 243.0769 243.3252 243.1731 242.2489 241.7847 241.8309 242.0938 242.6697 238.9311 242.1038 242.2426 242.5957 242.3049 238.9598 240.3305 242.3562 239.4424 239.208 242.3431 242.0378 242.2943 242.2437 243.2042 241.1095 238.994 242.6293 245.1306 252.924 256.7566 260.5618 264.2151 266.8235 268.62 269.8059 269.6433 268.9363 251.8945 252.3351 253.023 264.3536 268.0989 267.5331 266.0668 264.9926 263.2784 261.6393 261.5147 260.826 259.4939 258.8626 258.1894 258.7339 259.1321 259.2102 258.8224 258.239 258.5328 258.1069 256.3347 254.9909 254.8348 256.5805 258.4963 262.0811 263.3414 264.4919 265.8552 266.7076 267.3834 267.0142 266.7647 267.6625 269.0836 269.0248 270.7904 271.5049 272.3672 273.4098 274.0452 275.1626 276.4882 277.8801 277.9465 278.233 278.9547 279.2178 279.2101 279.4257 279.3648 -9999 +-9999 -9999 339.8859 342.3206 344.6639 343.9223 338.9436 338.5598 336.356 334.09 331.8705 335.5868 338.7103 341.7319 346.4577 347.8048 347.8172 345.3032 339.9501 338.1473 337.0413 339.349 341.8514 342.8032 342.5392 343.475 343.1545 342.7163 341.4895 340.4142 338.4486 338.2235 338.8696 335.7075 331.632 327.6231 328.5909 331.2176 332.3582 332.8203 332.7351 332.669 332.0116 331.2488 329.9056 329.2803 328.8531 328.051 326.1743 323.4023 318.8687 314.2602 313.524 314.8806 319.0716 320.9405 323.3495 325.9522 327.1598 327.3039 328.8067 329.7151 329.7997 329.3216 330.0149 332.1885 333.5625 334.9926 336.7138 337.4066 336.299 335.2408 334.0125 332.8483 331.7812 329.502 327.8338 327.1894 324.3411 324.1426 324.1585 322.6311 320.5683 318.0751 315.4205 311.9153 307.7253 301.5082 300.9241 301.215 301.8715 305.1425 309.433 313.5111 317.0503 320.0514 323.106 324.2301 325.7375 327.1513 327.1637 326.1376 325.0638 324.8105 324.0951 320.0211 317.4119 314.8528 311.2966 307.8279 305.9081 304.1448 302.7227 300.3835 298.5265 297.4537 297.5329 296.748 300.4394 303.0594 306.2997 308.2361 310.2363 313.7985 315.573 317.213 317.4355 315.5362 313.3472 311.462 309.3922 306.4771 302.7833 299.0548 298.3104 294.5478 289.6298 284.6898 280.565 282.7539 286.7455 288.2456 286.1337 287.6438 284.713 280.6731 278.5132 276.3566 273.8871 272.4527 270.9491 270.2019 270.1053 271.9853 272.0251 270.777 270.2044 268.0591 268.4554 267.9456 269.6097 269.356 269.1392 269.303 269.6923 271.2505 275.0033 275.8351 277.6566 282.0445 282.9318 278.4587 281.1243 282.6871 281.1829 279.9202 278.7778 274.0035 267.7238 264.8169 263.1548 262.3294 262.0412 262.2333 261.8841 262.8826 262.0067 262.8303 263.7812 264.972 266.5599 267.2686 268.9189 269.7982 272.7326 275.8071 280.4695 282.5315 284.6313 287.1009 289.344 289.8163 288.9374 288.2065 288.2521 291.0042 294.0926 294.2442 294.9744 295.4974 297.3448 300.0616 303.2316 306.3773 311.6855 313.1765 314.4351 315.1462 315.5397 315.3055 313.5722 310.9675 308.8104 305.8195 304.9153 304.3664 303.9208 303.2096 302.3075 300.8018 299.5221 298.7405 299.0775 299.4625 299.8065 299.5913 297.6048 295.3205 294.0344 292.7651 291.0245 287.9951 285.9126 283.3596 279.9633 276.6678 273.7648 271.4401 267.9476 265.0655 261.7047 261.261 264.8662 269.8499 274.5587 277.6178 279.007 279.9129 280.5581 281.9429 283.0608 285.5257 285.6958 286.1743 284.3135 283.0959 281.5551 279.4295 272.9798 270.0508 264.4341 263.0004 262.949 264.7312 264.886 263.6122 262.5163 257.786 259.5359 263.694 265.5388 267.4594 269.6874 272.1719 274.1687 274.8468 276.9839 278.9301 280.4673 281.4044 282.0515 283.4636 285.078 285.9029 285.7177 286.6125 287.2512 287.2946 287.5251 287.5124 286.6871 285.4242 283.9933 282.4456 279.5975 277.7577 276.3434 274.2999 272.1191 270.4572 269.3655 268.0472 266.9373 263.7629 260.6903 260.3968 260.7734 261.7663 267.2758 270.5413 274.0996 278.4279 284.7193 288.3016 288.993 288.8237 288.1739 288.2533 287.1965 281.9937 274.9569 270.3397 272.0687 273.1022 274.1475 274.6619 273.8494 272.7538 272.0921 271.8636 272.5522 272.3616 272.5493 272.4011 271.8322 271.241 270.3305 269.5939 268.6568 267.4318 264.4302 263.2597 259.2145 257.6571 256.6355 255.5765 254.6479 256.1985 257.8475 259.117 258.9575 257.9159 256.3348 255.2108 253.5591 251.9919 247.5598 246.9525 247.7873 247.6217 248.0651 249.5262 250.5187 247.8731 246.7706 248.5867 250.0639 252.4673 253.715 255.0254 255.7663 257.0357 257.8928 258.3285 258.7194 258.8069 258.0436 257.1162 256.093 254.0973 251.1982 253.437 255.2152 256.6633 258.4803 256.702 254.5435 251.673 250.354 251.3607 252.5976 253.2962 254.5009 255.5566 256.5605 256.4489 251.6555 242.1614 240.962 239.2527 238.8125 241.2724 242.9543 243.7456 243.6292 242.1506 243.7542 246.1058 247.1308 246.5451 245.6931 243.058 240.7526 242.9237 240.6766 238.9436 240.4026 241.6862 242.2289 242.2413 238.9249 242.4529 242.3206 242.172 242.3282 239.5336 239.1976 242.5257 242.6333 243.5202 251.5588 256.1884 260.9158 264.5889 267.9089 269.91 269.036 267.773 267.3482 254.7274 252.9592 253.0128 258.5003 265.2087 264.7471 263.6932 262.6142 261.4991 259.5574 259.3958 258.1384 256.6103 256.0352 256.5286 256.9814 257.5456 258.1177 257.4799 257.2628 256.8011 256.1003 254.6808 253.671 255.0503 256.5728 258.1612 261.3425 262.3995 263.5212 264.7796 265.4147 265.3781 265.1438 265.4912 266.3705 268.0336 268.3294 269.8307 270.4987 271.5975 272.1974 273.5852 274.3813 275.0973 275.5249 276.1567 276.4442 276.7356 277.5782 277.7126 277.8031 278.3677 -9999 +-9999 -9999 339.8859 342.3206 344.6639 343.9223 338.9436 338.5598 336.356 334.09 331.8705 335.5868 338.7103 341.7319 346.4577 347.8048 347.8172 345.3032 339.9501 338.1473 337.0413 339.349 341.8514 342.0557 342.5392 343.475 343.1545 342.7163 341.9484 340.8997 340.0962 339.7185 338.6643 335.1962 331.7214 329.0845 330.9171 333.6087 334.9026 335.4716 335.257 334.8376 332.5511 331.006 329.479 327.7143 326.8117 326.6045 325.7283 322.8036 318.8868 314.5306 313.2828 316.611 319.3799 321.836 323.9693 326.426 328.1795 328.7767 330.6095 331.4742 332.0148 331.5854 331.3341 332.2287 333.6138 334.7627 336.3676 337.3308 337.9718 336.241 334.1624 332.9983 331.9965 331.0241 330.1752 328.743 325.9678 325.5729 325.2693 324.2822 322.081 319.2956 316.1734 312.8373 308.5376 301.7849 300.7238 301.4195 302.4215 305.9454 310.3403 313.7876 317.1346 320.9282 324.105 324.1668 326.2673 328.026 328.2124 326.7255 325.9199 325.497 324.2957 317.0653 314.1949 311.4082 308.308 305.1716 303.3636 304.9468 305.0825 305.0453 303.6759 302.385 301.2729 298.5356 299.558 302.5281 305.1915 307.8657 309.9818 313.9872 315.61 316.7775 316.2394 314.1045 311.5182 308.5264 306.0251 303.7204 296.5032 295.0865 291.886 287.9599 283.3112 282.6168 285.3799 288.921 292.8512 292.7053 290.2473 289.0236 285.9142 282.3173 280.554 278.4627 276.1711 274.6633 272.6944 274.1377 273.658 271.6915 270.1541 271.8919 271.9976 271.3973 270.397 269.7999 269.1782 267.1614 267.8793 267.2889 268.0086 266.3335 267.1705 267.386 265.6098 273.377 277.614 275.9038 276.6194 278.8017 277.1512 275.8339 274.6523 267.8466 263.8122 262.4959 261.9481 262.2799 261.8319 261.9113 261.2384 261.9044 262.0016 262.7495 264.2427 266.3564 268.1359 269.7697 271.4556 272.1645 273.6297 276.1301 279.7937 281.5471 284.2424 286.6979 289.2605 291.7089 291.955 290.9956 291.2828 292.4247 294.984 296.6103 297.1486 297.1857 298.3112 300.1247 302.6552 305.0656 311.0643 312.7646 314.1892 314.8681 315.4642 315.5715 314.4829 311.8583 309.3904 305.9172 305.2592 303.741 303.1998 303.2143 302.8333 301.6632 300.0392 298.6584 300.8592 301.6698 302.0851 301.6198 299.5508 297.4612 296.2384 294.2275 292.285 288.3748 285.7925 282.3703 280.2067 280.178 277.9286 272.9083 267.0723 264.5509 261.3611 260.5035 266.3358 270.9107 274.3498 275.3695 275.8615 276.7471 278.2922 280.3526 282.1421 285.8149 285.962 286.2969 283.9259 282.8951 281.4977 279.3214 273.5584 270.6629 267.5086 262.8818 261.562 262.7843 263.4672 262.7438 259.6376 258.6557 260.6253 263.9102 266.6581 268.6041 270.2602 271.4284 272.3551 272.9448 276.081 277.4219 279.0516 279.8721 281.3759 282.8027 284.2228 283.9752 282.8733 285.7962 285.7544 285.6802 286.5559 287.0071 286.4097 285.0008 283.6128 282.0218 278.7258 277.4051 275.6797 274.0982 272.3566 270.9742 270.2957 269.3492 268.1855 264.7714 262.4448 260.6628 259.5963 261.7663 267.2758 270.5413 274.0996 278.4279 284.7193 288.3016 288.993 288.8237 288.1739 288.2533 287.1965 281.9937 274.9569 270.3397 272.0687 273.1022 274.1475 274.6619 273.8494 272.7538 272.0921 271.8636 272.5522 272.3616 272.5493 272.4011 271.8322 271.241 270.3305 269.5939 268.6568 265.9263 264.4302 263.2597 260.9832 259.0549 257.4882 255.5542 257.7151 259.647 261.8055 262.8472 262.2624 261.6068 260.7655 258.4039 257.5816 256.6511 254.6147 252.0367 246.1676 246.2546 246.5299 246.8738 247.4915 246.551 246.7085 248.7356 249.9941 252.224 252.9578 254.1066 255.1608 255.7116 256.0611 256.3998 257.1638 257.6062 257.1807 256.458 255.5447 254.1368 250.0217 252.4893 255.2435 257.6797 259.1569 257.6572 257.1069 255.8024 254.7894 253.7172 252.9442 252.7327 254.0519 255.4618 255.8242 255.0051 253.5337 251.358 248.0979 242.6972 241.5511 238.8784 241.4425 243.774 243.4987 242.2862 243.7252 244.4354 247.0321 248.5919 249.0342 249.0761 240.6562 240.7367 241.98 242.5582 242.3759 242.3667 242.333 242.4304 242.5864 239.6492 242.8159 242.9868 243.0678 239.0078 243.3241 242.693 241.0443 242.1286 250.8263 256.6959 261.4124 264.9282 266.5861 266.4223 264.8387 263.8633 262.9477 261.611 253.1235 253.4901 253.9596 262.3165 261.1688 261.0278 260.3844 259.0284 257.3872 257.0558 255.2845 254.6814 255.1289 255.553 256.0588 256.8313 257.125 255.8723 254.7814 254.2905 253.4649 252.5984 254.0824 255.9659 257.3705 258.7001 260.8111 261.6206 262.8232 263.6703 264.0761 263.797 263.9698 264.5741 265.6023 266.4979 267.442 268.7322 269.6061 270.3369 271.5482 272.0208 272.7483 273.5112 273.8834 274.777 274.7242 275.4692 276.0879 276.2914 276.8736 277.449 -9999 +-9999 -9999 338.2393 341.6271 344.936 346.748 342.6007 342.7635 342.2552 341.2867 338.0999 334.2456 336.9406 339.3281 345.4799 347.5026 348.6389 346.9774 341.3839 344.6194 345.1104 345.0392 345.4825 344.4037 343.8132 344.4359 343.7406 343.1454 342.3262 341.7058 340.8337 339.4155 337.907 334.0426 331.5912 332.0809 333.0769 335.5197 337.117 337.6996 337.1585 336.0766 332.5736 330.5214 328.9097 326.9788 324.4187 323.6368 323.2409 320.3399 316.7481 314.3261 314.875 316.0136 318.6828 321.5052 323.9076 326.409 328.1289 328.9543 331.3154 332.1612 333.012 333.347 333.1821 333.5757 334.2783 335.4451 337.6037 338.5427 339.274 338.1442 336.6422 335.5109 334.2628 333.2767 331.9573 330.1784 326.9193 325.0747 323.8949 323.2267 321.9089 319.388 315.6102 312.2174 309.5507 302.1715 300.8544 301.5304 303.6995 307.0291 310.7763 313.5858 315.4962 318.6348 320.2339 322.6916 326.0115 327.6631 328.1835 327.4629 326.1683 325.0889 322.4618 312.8757 310.0885 307.9746 305.8532 306.7483 308.4878 309.9191 309.3074 308.3579 306.4457 304.4751 301.2202 299.1736 298.6855 301.2263 304.7034 307.5536 309.8923 313.941 315.0171 315.3333 314.0787 311.0343 308.2876 305.8516 302.3673 298.3756 294.1099 290.9153 287.7079 284.7495 288.3621 290.5656 291.7414 293.3792 295.7039 295.8033 292.6702 288.5826 287.0161 284.9986 281.5946 279.5128 278.0013 276.1396 278.7751 281.0597 280.8634 280.9731 282.9359 282.5378 279.2117 280.0036 279.1138 271.0703 270.9793 274.828 274.3168 272.3972 269.1861 268.834 269.3463 268.9446 266.969 266.0895 265.9073 269.153 272.2285 273.0559 270.3599 270.478 270.1429 265.9308 262.67 261.2981 262.4963 261.9094 260.5665 261.6443 261.8837 261.5814 261.522 262.995 264.1813 266.032 268.1471 270.5065 272.7423 273.9058 275.0209 276.7649 279.6216 281.2628 283.1431 285.6857 288.8961 291.6973 293.5307 293.7302 294.4077 294.1989 295.805 297.2815 298.3314 298.0115 297.4932 299.2079 300.7575 303.6386 309.3642 311.8032 313.2692 314.7024 315.1215 315.3306 315.1038 313.0095 309.8335 305.9819 304.9648 303.802 302.7079 302.8456 303.0875 302.3585 300.6225 298.6279 301.326 302.8296 303.4056 302.456 301.033 299.9148 298.45 296.0789 293.3504 288.8725 286.5068 283.5388 283.0231 283.3112 280.9185 275.3747 268.6047 264.4747 261.2383 260.7306 263.765 266.4865 268.3139 271.4916 273.702 275.3722 277.109 281.1445 283.1109 285.0662 286.4546 285.9291 283.6106 281.7891 280.2887 278.7065 273.9407 271.3942 268.756 265.4515 260.1591 261.473 262.261 261.1301 257.9574 258.2681 260.084 263.132 265.8146 268.0155 268.9064 269.6532 272.3551 272.9448 276.081 277.4219 279.0516 279.8721 281.3759 282.8027 284.2228 283.9752 282.8733 285.7962 285.7544 285.6802 286.5559 287.0071 286.4097 285.0008 283.6128 282.0218 278.7258 277.4051 275.6797 274.0982 272.3566 270.9742 270.2957 269.3492 268.1855 264.7714 262.4448 260.6628 259.5963 259.7115 261.6662 266.0575 270.269 273.8755 280.3842 283.7844 287.3436 287.1868 287.5829 287.1859 282.7815 276.1818 271.7423 268.0882 271.1247 272.2409 272.4382 272.9546 274.6502 275.4135 275.2294 274.8146 274.735 275.027 271.6837 273.0035 272.0978 271.4212 270.9078 270.1743 269.105 267.5933 265.9595 265.3837 264.6928 263.8554 261.2871 259.8949 260.6319 263.1245 266.0526 267.55 266.4687 264.9539 263.4266 262.302 261.3607 261.1088 259.268 257.0114 248.7192 245.8858 245.6207 245.3487 245.4162 245.3502 245.8143 247.8944 250.1019 251.1898 252.0809 252.7389 253.4479 253.8987 254.5473 255.3121 255.9146 256.5393 256.3099 255.3952 254.3766 253.6095 249.0385 253.6725 257.6534 259.4418 260.3086 259.971 259.0487 258.5327 256.6327 254.5008 252.9605 252.1975 252.8023 254.0018 253.431 252.7677 251.4902 250.25 247.8872 244.4029 242.4801 241.8402 238.8569 243.8606 243.8339 242.6244 243.386 242.988 244.7113 248.2856 250.5909 250.4467 242.0099 241.9173 241.9226 242.0911 242.0896 242.1814 242.1155 242.2478 242.5645 241.957 239.0903 238.9649 239.1664 243.2368 242.8324 243.0058 242.2283 240.7455 247.1352 252.6153 257.3144 260.393 260.3871 261.4687 259.7484 259.9048 260.3399 261.9968 257.189 254.3067 254.4872 258.4737 257.9111 258.0401 257.165 256.955 255.8539 255.955 254.0018 253.3557 254.3124 254.888 255.1101 255.9795 255.273 253.0415 252.7022 252.1904 252.0308 252.4844 254.1746 255.4283 257.7688 258.9135 260.1851 260.9406 261.8073 262.6024 262.9467 262.4512 262.9045 263.4678 264.2444 265.2723 265.9232 266.8476 268.1317 268.9936 269.7409 270.2002 270.9145 271.6651 272.8313 273.2289 273.3239 274.2924 274.6403 274.9051 275.5495 276.2855 -9999 +-9999 -9999 340.6551 342.5314 343.8007 347.742 346.436 346.1609 346.0343 345.2537 342.9771 336.7236 339.7713 342.317 345.1603 347.7358 349.8095 349.5388 344.7368 347.6112 349.2684 349.0197 348.2755 346.0992 344.7042 345.7498 345.0195 344.1266 343.8129 343.2067 341.7982 339.4914 334.8145 332.2859 331.4211 332.1452 334.9953 337.0201 338.4377 338.7581 338.392 336.8815 332.3776 330.3945 328.3187 325.7221 323.4281 321.9271 319.5633 317.1028 315.4358 317.8889 318.6418 316.5159 317.4429 319.8993 322.4871 324.3765 326.214 327.9336 330.4588 332.0794 333.2915 334.2749 335.083 335.6761 336.4103 337.4875 336.9302 337.5656 338.9765 339.5006 338.3804 337.0712 335.8557 334.6808 333.1747 331.9505 327.0347 325.2532 323.4603 322.2751 319.9139 318.309 316.8725 313.7163 310.0439 302.4054 300.4092 301.9207 304.0952 307.7577 310.258 313.813 316.6505 318.8924 322.1242 323.1256 325.3236 327.626 327.6759 327.4365 325.8905 324.3349 321.4443 313.6339 311.7567 311.163 312.1957 313.4074 313.2859 312.897 311.8236 310.4055 307.2739 305.2524 302.3419 299.6113 299.097 300.9915 304.5535 307.3469 309.8736 313.6711 314.2906 313.5883 311.6791 308.9589 304.9182 301.8956 300.0322 297.1088 290.1825 287.6944 285.7647 291.7547 294.6706 296.4799 300.0479 300.8968 300.5196 298.4052 293.8824 291.9302 291.6935 291.2198 288.2035 284.5426 280.7991 278.6725 283.4185 285.8109 285.9858 286.7593 288.511 288.417 285.8628 286.0962 285.1325 277.5113 277.631 277.5947 277.5432 277.2439 275.7623 272.1539 269.1369 268.8222 266.7712 266.8611 266.7809 266.3226 264.6328 263.6296 264.6773 264.924 263.4007 262.0225 263.1349 262.6912 262.1755 262.2426 259.8249 261.8925 261.4755 261.6706 261.3206 262.2924 264.2043 265.8285 268.1951 269.6363 272.0172 273.6081 275.1616 278.526 280.0488 281.3884 282.8064 284.9415 287.9668 290.6949 293.0937 294.1291 294.6033 295.6035 296.3603 296.9727 297.6691 297.2557 295.4526 296.3779 299.1446 301.7742 307.6878 310.5787 312.286 313.8617 314.2473 314.5312 314.763 313.8479 311.1451 306.0797 304.9069 303.4512 302.449 302.0635 302.3485 302.2827 300.7778 298.7102 301.2153 302.8791 303.8218 303.3579 303.0182 302.301 300.4971 297.2881 293.6237 289.4693 288.0069 286.8251 285.8762 283.882 281.118 276.5785 271.1944 267.5732 261.2521 260.9795 263.765 266.4865 268.3139 271.4916 273.702 275.3722 277.109 281.1445 283.1109 285.0662 286.4546 285.9291 283.6106 281.7891 280.2887 278.7065 273.9407 271.3942 268.756 265.4515 260.1591 261.473 262.261 261.1301 257.9574 258.2681 260.084 263.132 265.8146 268.0155 268.9064 269.6532 270.7516 271.7607 274.0323 275.4404 276.8908 278.5674 280.1205 281.4782 282.1819 281.1301 281.4859 284.0862 284.1247 284.5549 285.9427 286.493 286.1372 284.3334 283.0264 281.3986 278.1433 276.8133 275.5461 274.1644 272.9461 272.0299 270.9737 269.762 268.7409 265.4524 263.0953 261.7988 260.385 259.839 260.07 261.1176 265.2679 268.9901 275.5968 280.2024 283.3946 286.7683 287.0336 282.8271 276.6273 270.8618 268.5707 269.3166 270.7148 273.7467 276.8372 276.9098 276.3914 276.6414 277.7601 277.4454 277.3622 277.127 273.4386 272.6793 272.1436 271.2551 270.8148 270.5402 269.7908 268.1502 267.9426 267.9974 267.3897 266.4818 265.4438 263.5663 262.2884 264.5074 270.5205 270.6732 269.5275 267.6461 266.4992 265.7291 264.8094 264.674 262.7858 260.387 254.9409 251.216 247.8223 245.7198 245.1471 245.1584 244.8991 246.2796 248.9044 249.7912 250.2392 250.6924 251.4638 252.1711 252.9421 253.8994 254.7801 255.3713 255.3129 254.3507 252.633 251.728 248.7786 253.6913 257.9172 260.0019 261.4929 261.7732 261.0181 259.8104 257.8226 255.0597 253.2784 251.7973 251.5173 251.8671 250.9874 250.1997 248.6746 247.4905 246.4459 243.7819 242.485 242.9985 238.7824 243.4505 243.7004 241.8989 243.7129 242.1971 242.8804 245.7719 249.668 250.4026 241.9829 241.9669 241.9734 242.0236 241.9907 242.0294 241.9765 242.0314 242.5626 242.7231 242.5645 242.9185 242.665 242.6336 242.6938 242.9257 242.585 242.1771 242.7434 247.6648 251.8165 252.5457 257.5905 256.6803 257.4299 256.4655 256.6629 258.6284 257.6424 254.5875 254.695 255.0663 255.2086 254.9759 254.6041 254.5121 254.3328 254.2708 252.8477 251.9735 252.6112 252.5499 252.5698 252.3503 251.8092 251.2954 250.2153 251.4619 252.0231 252.671 253.1095 254.1199 255.1485 257.0506 259.4021 260.4966 260.6028 260.3185 260.2333 260.3641 260.4815 260.9645 261.8126 262.938 263.6615 265.1371 266.7568 267.4077 268.2881 268.3808 268.4347 269.4151 271.2619 271.2387 271.223 271.1926 272.0853 273.6113 274.6375 276.0855 -9999 +-9999 -9999 343.6523 345.5463 347.093 350.1255 350.1007 349.834 349.4787 349.2859 346.6195 339.5521 342.829 346.5613 349.2469 350.3056 351.6169 351.2437 348.5433 349.6225 351.5029 352.0515 350.9171 346.9384 346.1598 346.9757 346.5804 345.6377 344.7237 343.3114 341.4363 338.9528 333.0724 331.675 332.2164 334.7964 336.5676 337.894 339.0862 339.3116 338.7137 334.6407 332.0137 330.0114 327.9829 323.6337 320.5931 319.5889 317.449 316.479 317.4697 323.3821 323.4214 321.7303 319.977 317.794 319.2536 320.9052 323.1991 325.3604 329.7365 331.3514 332.7761 334.516 335.6964 336.5959 337.3808 337.2455 337.0782 336.3059 337.5744 338.6961 338.3435 337.3277 336.2592 335.2723 334.6644 333.313 327.6132 325.6738 323.631 322.7616 320.4832 318.232 315.8912 311.4101 308.8904 302.7791 302.0258 302.1098 304.1928 308.181 312.4274 315.7905 319.8357 322.0518 325.2935 326.9113 326.9584 327.04 327.4649 327.5302 326.0497 324.1493 320.6996 316.1141 314.1366 315.662 317.173 316.2385 315.7307 314.9761 313.6721 311.8561 307.493 305.6945 303.3318 300.0941 298.7238 301.3034 304.3698 307.0874 309.4295 313.0754 313.4543 311.0083 308.7269 305.2354 302.0043 298.4554 296.4043 293.3909 288.7155 290.3412 295.395 298.4138 299.4678 298.8655 303.1649 304.3275 303.7973 299.2036 296.3633 294.9607 295.8808 296.6963 293.088 288.2582 284.1893 280.8949 286.21 288.579 289.595 290.5898 292.3681 292.6738 291.6131 290.5864 289.091 283.4661 282.0443 280.8083 280.2341 278.6093 275.5234 271.1282 269.3615 267.7951 268.2881 267.6906 267.2485 266.9824 266.535 266.4637 266.3721 266.513 269.1351 270.6992 269.792 262.0264 261.8105 261.6946 261.1093 261.597 261.4417 261.5008 261.1955 262.2768 263.6553 265.4273 267.5197 269.4375 271.0262 272.7346 274.828 278.7152 280.3571 281.8539 283.9143 285.8235 288.0763 289.8626 291.573 292.9234 294.5283 295.3589 295.6108 295.5415 296.1303 295.5333 293.8044 294.4368 297.1344 299.4592 305.3536 308.5037 310.6707 312.2281 312.8339 313.037 314.763 313.8479 311.1451 306.0797 304.9069 303.4512 302.449 302.0635 302.3485 302.2827 300.7778 298.7102 301.2153 302.8791 303.8218 303.3579 303.0182 302.301 300.4971 297.2881 293.6237 289.4693 288.0069 286.8251 285.8762 283.882 281.118 276.5785 271.1944 267.5732 261.2521 260.9795 265.9004 271.8182 275.5237 278.7131 280.5471 281.3698 281.5325 283.5844 284.6995 285.6458 286.328 285.0983 283.175 280.9984 279.0605 277.294 273.737 271.4024 268.8945 265.8414 261.0066 258.8096 260.1589 257.414 257.4666 259.2693 259.8168 261.0481 263.5092 265.1758 266.4058 267.5053 268.4535 269.3591 272.1466 274.0558 275.322 276.2292 277.8346 279.3401 279.3672 279.5464 280.7372 282.5619 282.8983 284.0844 285.2713 285.9414 286.011 283.9524 282.5583 280.911 277.4606 275.9518 275.1135 273.8178 272.2178 271.2396 270.5156 269.4149 268.1136 264.7015 262.1602 261.6936 260.7546 259.5294 259.0277 259.1881 260.6539 265.1232 272.1358 275.7352 280.5124 283.9013 282.3738 276.8585 270.867 268.0155 264.1158 269.1379 269.7344 272.5954 276.4108 278.6952 280.3525 279.4467 279.6703 278.1694 277.6315 276.7349 274.1987 270.6628 271.9628 271.1093 270.815 270.9289 270.679 269.0207 268.6495 268.5916 268.7856 268.9185 268.061 266.887 265.3647 265.9578 269.7214 271.5833 271.4777 270.3639 269.7256 268.7879 268.2702 267.3386 266.287 264.6687 260.0615 256.8501 253.9135 250.0127 245.5892 244.9772 244.4027 244.768 246.6335 248.9289 248.3545 247.9957 249.513 250.6804 251.3448 252.3836 253.463 254.2468 254.2084 253.1574 251.1692 248.7448 249.9229 254.5944 257.9097 259.5517 260.6043 261.315 261.1256 259.4194 257.6465 255.8706 253.5328 251.7343 250.7291 250.4913 249.6162 248.3225 247.3005 246.1578 245.0754 242.8272 242.5661 243.0553 242.8911 242.439 242.9314 242.543 242.3689 241.7262 241.7162 243.7797 248.3935 250.677 242.1279 241.9585 242.0981 242.1881 242.002 241.9595 241.9789 241.8432 242.1661 242.2679 242.0937 242.1012 242.151 242.4401 242.6521 242.661 242.4717 242.0678 241.5449 242.4767 244.3533 250.5123 253.3457 253.0638 254.6564 252.1757 254.2319 254.8547 254.1846 253.5318 255.5515 255.8176 252.9431 252.4902 251.4458 251.8747 252.3803 251.7282 250.5453 249.8902 250.1483 250.1385 249.8375 250.5273 250.3361 249.8893 252.224 252.9962 254.3508 253.8238 253.3089 253.0029 253.2138 254.0129 256.0597 256.9683 257.5221 257.7483 258.2382 258.6489 258.2954 258.7519 259.931 261.6952 262.8375 264.2729 265.1173 265.6865 265.8849 265.958 266.7702 267.6875 268.9941 269.4933 270.0927 270.3773 271.0705 273.2549 274.9538 276.3845 -9999 +-9999 -9999 343.8506 346.6422 349.1178 351.5904 352.069 351.6227 351.2646 350.8177 349.5622 347.0339 348.4324 350.7755 354.025 354.9783 355.2148 354.9265 353.6296 353.014 353.2014 354.1752 352.6821 349.2415 348.33 348.5428 347.4057 346.6508 345.2727 342.4576 339.3598 335.9246 332.3246 332.9472 334.064 335.8932 337.2455 338.279 338.6203 338.5269 337.3013 334.0824 331.411 329.3162 326.8042 321.7101 318.2839 317.5145 317.6412 317.8821 319.9649 326.0141 326.2967 325.6893 324.6882 322.8658 319.2441 319.4883 320.442 324.4744 329.2624 331.0483 332.8854 334.2495 335.5234 336.7386 337.5644 337.5865 336.7475 334.5037 335.7969 336.5615 336.6424 336.3673 335.5071 334.8344 333.947 333.0963 328.802 326.55 324.7415 323.3085 320.8134 318.8144 316.7823 314.1555 310.9179 303.3427 302.7523 302.6325 304.6399 308.9569 312.3679 314.7719 317.7428 319.96 324.7054 325.7747 326.1977 326.1089 326.8067 327.4928 325.6357 323.605 320.7936 320.9488 319.9702 319.9508 319.8728 318.8725 317.355 316.3242 314.7404 312.6097 308.8798 307.1931 303.9586 300.1247 299.1256 301.5531 304.0865 307.2386 309.1075 312.4909 311.8113 308.6599 304.5249 299.8825 296.2188 293.2386 292.0433 289.8497 291.7569 295.8871 300.2979 302.2967 303.3971 301.989 305.4543 306.4584 305.9739 301.8457 299.3652 296.7518 297.4883 297.7005 293.98 289.959 286.7665 282.9398 286.4582 289.8623 292.0689 293.0964 294.7293 295.6465 295.5726 294.3546 291.9865 286.7805 285.0461 283.3038 281.1065 278.2417 273.2336 270.5283 269.5279 273.1943 272.2443 269.7159 268.2831 267.9466 267.94 268.4571 268.6512 271.3189 273.741 276.4529 273.5724 264.1635 261.3782 261.5385 261.8181 260.5305 260.5654 261.0896 261.8463 262.6414 263.4946 265.4273 267.5197 269.4375 271.0262 272.7346 274.828 278.7152 280.3571 281.8539 283.9143 285.8235 288.0763 289.8626 291.573 292.9234 294.5283 295.3589 295.6108 295.5415 296.1303 295.5333 293.8044 294.4368 297.1344 299.4592 305.3536 308.5037 310.6707 312.2281 312.8339 313.037 313.7366 313.5358 311.9519 306.5807 304.9171 303.3942 302.3117 301.4128 301.2507 301.6315 301.1671 299.1928 299.6324 301.9913 303.5647 304.4371 304.0183 303.0132 300.6958 297.5384 293.9586 289.3359 288.4632 287.6945 286.261 282.9845 279.4401 276.7823 273.4612 269.6373 261.5793 259.4413 267.2925 272.9738 277.4065 280.3048 282.6586 284.5942 284.9183 285.3458 283.6813 285.7964 285.8789 284.0339 282.4438 280.3391 278.2414 276.3792 271.8688 270.0085 267.8995 265.0976 260.0211 257.4778 257.1009 257.3581 258.8879 260.8725 261.4416 262.0667 261.996 262.6837 264.0043 264.9716 265.8436 266.3511 269.9795 272.2164 273.5113 274.9003 276.069 276.8839 277.1762 277.7178 278.9915 281.2685 282.3017 283.5661 284.7464 285.4843 285.8008 283.3951 281.8076 279.7312 276.53 274.6648 273.3096 272.4644 271.3412 270.0858 268.9229 267.1059 265.3454 264.8589 261.6061 260.6866 259.7874 258.9357 258.0484 257.8591 257.8309 260.0325 268.0321 272.3838 275.6079 280.6531 276.5859 270.7549 267.7523 263.5988 261.9435 267.5644 268.9166 270.4858 275.5894 278.0452 280.4062 281.1281 280.9257 278.8276 277.799 276.7941 274.0994 270.8098 271.4689 270.6955 270.553 270.9684 270.9149 269.6498 269.068 268.5196 269.1989 269.6961 269.3567 268.4316 267.4742 267.2931 270.9025 272.533 273.3652 273.8624 273.6027 272.4189 271.2855 270.3895 269.8031 266.2006 263.9408 261.3294 258.0664 254.1855 249.3764 244.6136 244.6576 244.0324 244.4425 247.5955 247.7157 246.8526 247.0231 248.1764 250.2532 251.306 252.1096 252.914 252.4812 251.4648 250.1096 246.3783 250.657 254.4581 257.1 258.6152 259.2439 259.7543 259.6918 258.081 256.3454 254.6071 253.1382 251.6587 250.1384 248.4828 248.4847 247.6741 246.1392 245.2471 243.7209 242.3284 242.634 242.9704 243.2924 240.4059 242.8438 242.8755 242.6631 241.9441 241.2173 241.5283 245.0795 248.9098 248.6031 246.3475 243.4489 242.2659 242.0679 242.0754 242.2177 242.1776 241.9778 241.8305 242.0145 242.0314 242.1699 242.3443 242.3232 242.3453 242.5446 242.8136 242.3261 243.0642 242.4976 245.7674 248.5477 249.8398 250.4938 249.4709 250.0751 250.5894 248.9744 248.8332 252.5984 256.0941 255.4846 249.0213 248.6203 248.57 248.5802 248.2145 248.3989 248.5012 247.6256 248.0871 249.8002 249.7051 250.3434 256.8858 256.2666 258.3263 259.33 258.2661 254.9963 254.9983 254.0915 255.313 254.6549 255.3439 255.6211 256.0432 255.5579 256.7184 257.2549 258.1866 258.9451 261.9332 262.801 263.2555 263.9214 263.072 264.1782 265.5454 266.8978 267.599 268.6587 269.1756 270.3262 271.1601 272.2555 274.1392 275.6987 276.9178 -9999 +-9999 -9999 340.9407 344.2599 347.8787 350.9854 351.4127 350.9923 350.9973 350.9487 350.7592 350.9069 351.6646 353.7235 356.2839 357.5481 358.2415 358.7041 358.1801 357.5716 356.8947 356.2988 354.9892 350.6274 350.1431 350.1048 348.3605 346.9472 344.562 340.7553 337.4499 335.3633 334.7669 336.0029 337.2204 337.2517 337.2455 337.0056 336.8935 336.3091 334.8277 331.6844 329.0018 326.6314 323.9776 319.158 318.8325 319.3405 319.2021 319.7339 322.6534 324.4931 326.8211 327.7426 327.4412 326.4781 323.7405 320.8557 321.6992 322.8672 329.1439 330.6564 332.2032 333.4814 334.9164 336.2933 336.8943 336.4924 336.2179 332.8376 332.8292 333.9602 335.0136 335.2711 334.6146 333.0762 332.4889 331.6857 329.8659 328.0601 326.3703 324.0889 321.9342 319.838 317.225 315.1708 311.3134 302.8322 302.4572 302.9367 304.7518 306.8443 309.2092 311.1385 313.2437 315.5646 319.6106 321.2137 322.2321 323.8781 326.1142 327.8786 326.8152 325.1313 323.9974 324.5169 325.0667 324.5186 322.468 320.2993 318.185 316.892 315.4009 313.9925 310.5727 307.7508 303.7558 300.1135 299.9898 301.2813 303.9851 307.0888 309.3563 311.8563 308.2861 303.823 298.9832 295.6283 292.2743 293.7533 294.5579 298.3942 295.1857 297.6027 302.9817 305.9187 306.5518 305.4211 307.8834 308.889 308.1323 303.3593 300.4091 301.0053 300.6983 298.8506 297.9514 294.9217 289.412 284.7624 287.2111 290.1573 293.2712 295.33 296.1639 297.0969 297.0075 295.238 292.9803 288.5347 285.0461 283.3038 281.1065 278.2417 273.2336 270.5283 269.5279 273.1943 272.2443 269.7159 268.2831 267.9466 267.94 268.4571 268.6512 271.3189 273.741 276.4529 273.5724 264.1635 261.3782 261.5385 261.8181 260.5305 260.5654 261.0896 261.8463 262.6414 263.4946 264.6408 267.0179 269.1503 270.8648 272.7614 274.5973 278.5335 281.1866 283.1307 284.3703 285.2981 286.6178 288.2737 289.6649 291.4272 293.8446 294.7413 293.7863 292.2617 293.772 293.7682 292.3992 292.8034 294.8482 300.2014 302.8717 305.9612 308.3476 310.3885 311.4679 311.8503 312.6915 312.8904 311.9448 307.3702 305.0591 303.2815 302.0032 301.1914 300.4973 300.3975 300.3947 299.8358 297.5573 300.5141 302.9966 304.3981 304.0706 302.5774 300.2795 297.2242 294.4405 290.343 289.1235 288.1544 286.3028 284.4662 282.9204 280.0467 275.9567 271.5436 263.6878 259.038 265.1071 270.5395 275.0279 278.8131 282.1342 285.0204 286.9052 285.4086 282.6174 284.7043 284.4613 282.2751 280.3985 279.0912 277.2953 275.5323 270.9671 268.5602 265.9012 263.0957 258.3276 256.6701 257.9902 259.8864 261.0064 263.6738 264.4364 264.7127 264.5608 264.7787 265.1593 264.5476 265.1465 265.7979 267.6654 269.2589 270.5957 272.1936 273.6028 274.5729 275.0445 275.8106 277.2144 281.163 282.308 283.5798 284.6656 285.4105 285.6481 283.63 281.1993 279.0356 274.8191 272.824 270.8395 269.9113 268.7755 267.47 265.404 265.2233 265.3572 264.3488 261.0096 260.7997 260.8723 261.5233 260.5042 259.1178 257.6872 257.2031 264.1369 267.9474 271.9648 274.4819 270.9734 265.5864 263.5993 261.694 264.6587 267.1754 267.685 269.0942 274.6739 277.4471 280.2018 280.9829 281.8907 279.2148 277.8141 277.4148 274.3677 272.0837 270.4803 269.9099 269.9417 270.3781 270.6642 270.6754 270.0466 268.7429 268.4373 269.5517 270.1105 269.6302 269.1205 269.0993 272.205 273.9388 275.1229 275.9045 275.7417 275.1944 274.0344 273.1638 272.2458 269.5622 267.213 264.7455 261.982 258.7279 254.5274 246.7153 244.3551 243.6108 243.4693 244.1737 245.58 246.1702 245.4659 247.0539 248.9402 250.13 250.9126 251.6221 250.7774 250.1317 249.2406 246.3271 250.7015 254.2147 256.2628 257.3265 257.5197 258.2003 257.5471 255.8152 254.4504 252.9057 251.8094 250.4001 248.9043 247.6152 246.9377 246.5156 245.231 243.3169 242.5159 242.3725 242.7 242.9219 243.0505 238.8451 242.7605 242.6435 243.0322 241.5465 241.1956 241.2916 241.6913 245.4081 250.5867 249.15 248.263 244.8447 242.7224 242.1879 242.1696 242.2784 242.3319 241.9894 241.8273 241.9835 242.1759 242.353 242.6394 242.8927 243.3907 244.6381 244.644 242.88 242.8626 243.2415 244.7087 244.6822 245.0322 245.5612 245.2183 245.7716 245.8526 245.8585 247.1645 256.8425 257.2346 250.7382 245.8982 246.6454 247.7376 248.1724 248.7996 249.3301 250.0606 250.9942 252.0585 253.9786 256.9875 259.7637 261.0907 262.0476 261.3775 259.5115 259.0015 259.7128 259.7258 260.2425 258.8142 256.8845 256.4856 257.0524 258.4503 259.1789 259.163 258.9483 257.8526 261.1976 261.4102 260.7842 263.567 264.4778 264.8444 266.7245 268.5098 269.4139 270.6393 271.1372 271.7945 272.7339 273.885 275.1243 276.0394 277.0783 -9999 +-9999 -9999 338.4125 342.9094 346.5781 348.0358 348.4664 347.7035 348.8778 348.7587 349.0502 348.6852 349.1565 351.3048 355.9126 358.09 359.7936 361.0749 361.5039 361.2316 360.1403 358.55 357.1099 352.8993 352.1136 351.0957 348.2777 344.7945 342.697 340.296 338.3967 338.9001 339.299 339.4454 339.1473 337.8594 335.7041 334.1864 333.4214 331.8102 330.8799 326.4594 324.7429 321.8909 319.9881 320.2397 320.6016 320.7953 322.6913 323.9968 327.3084 325.8644 325.9037 327.9694 329.0864 328.9154 327.1894 324.1563 323.3988 325.8714 328.0555 329.506 331.1671 333.1708 334.6808 335.9227 336.338 335.4468 334.3039 331.4241 331.0258 331.8625 333.4536 334.1348 333.941 332.0953 330.4749 329.7864 329.4307 329.1632 327.3319 325.3008 322.6077 319.5909 316.9946 314.8144 311.08 302.881 302.8327 302.7557 306.2434 311.623 312.3574 314.6657 316.867 317.9146 319.0273 321.8184 324.0464 324.8554 326.5603 328.5054 327.7263 326.9211 326.6042 326.3256 327.1876 326.296 323.9718 321.693 319.5479 317.9715 316.2348 314.7313 310.8163 307.9628 303.8912 300.5792 299.7549 301.7043 303.9256 306.817 309.2267 311.6003 307.321 301.08 294.7451 295.1068 297.4873 300.1718 304.4455 298.3942 295.1857 297.6027 302.9817 305.9187 306.5518 305.4211 307.8834 308.889 308.1323 303.3593 300.4091 301.0053 300.6983 298.8506 297.9514 294.9217 289.412 284.7624 287.2111 290.1573 293.2712 295.33 296.1639 297.0969 297.0075 295.238 292.9803 288.5347 286.1094 283.2871 280.4408 276.4035 269.9377 271.0771 275.2144 279.23 277.2923 271.7901 270.1347 270.5537 270.9518 271.2008 273.0941 274.7092 277.0958 279.39 276.0929 267.5311 261.5983 261.4355 261.4615 259.4304 260.1396 261.1607 262.6281 263.0473 263.8042 264.9947 266.6999 269.145 270.9437 272.6311 273.9959 276.9409 279.5343 282.4019 282.8811 282.9471 284.431 286.5367 288.8908 291.1306 293.9001 293.8302 290.8586 288.4308 291.6822 292.2105 290.4176 290.3931 292.4393 298.2179 300.7331 303.4144 306.7484 309.0779 310.4594 310.9516 311.5241 311.9922 311.2152 307.0445 304.8874 303.1099 301.841 300.8607 300.253 299.5137 298.8186 299.3045 296.7007 299.1727 301.778 303.2397 302.5218 299.6468 297.1487 296.2328 294.0156 291.1795 290.0489 288.8517 287.3062 285.7161 283.6131 280.5914 276.5318 272.4162 265.967 259.8376 264.1362 270.8489 275.8972 280.4997 283.7319 286.0461 286.3023 281.2823 281.4148 282.3514 280.9653 280.0616 278.7509 277.791 276.3327 274.5501 269.9395 267.791 265.2961 260.3687 257.7762 257.9627 262.2801 266.8771 267.8247 267.9765 269.0099 267.0878 267.2677 267.7835 268.5078 268.7679 268.5666 270.0909 271.6388 272.6678 272.0074 270.442 271.3584 273.91 274.5537 275.7191 277.9057 281.8558 282.9991 284.1881 285.4587 285.9206 285.9532 284.614 282.3573 280.3577 274.991 270.7834 269.8223 268.5087 267.4101 266.2457 265.2287 265.2754 264.9794 265.4929 264.8766 263.641 263.0262 262.6121 261.7549 260.2326 259.2885 257.1844 259.7856 263.4194 266.0698 269.3648 269.1577 264.225 262.2815 262.9754 265.8233 265.2688 267.984 272.1446 275.0005 277.586 279.6661 280.4979 281.7186 279.5034 277.5588 276.8781 274.6478 272.8916 269.2122 269.0697 269.257 269.6885 270.0857 271.1194 271.039 269.8183 268.1335 268.7456 269.8055 270.1783 270.4071 270.8304 272.766 274.2289 275.7843 276.7088 277.2401 277.1097 276.5815 275.7514 274.1441 271.0734 268.8382 266.6366 263.9297 259.0241 254.1513 249.3911 245.0022 243.8879 242.973 242.7588 243.512 244.4243 244.5746 246.3165 247.5738 248.8429 249.9539 251.2328 250.6302 248.9371 247.6286 246.5063 250.6307 253.7774 255.2426 255.319 255.4735 256.1638 255.2938 253.4681 253.155 252.1437 249.3524 247.8713 246.2516 245.3761 244.026 243.5706 242.7001 242.6336 242.228 242.5156 242.8232 242.7945 242.6977 238.9266 241.1419 242.7665 242.6178 241.6779 241.2978 241.1884 241.2596 242.6286 249.4372 251.3834 251.6101 249.0289 248.2856 245.9157 243.3535 243.2039 244.8665 245.7195 242.3102 242.0147 242.3873 243.1286 244.3666 246.2251 249.6848 252.2762 251.3321 247.1597 243.6081 242.7461 242.2652 242.4423 242.9831 243.2112 243.4689 243.8532 243.861 244.1671 245.8417 253.0718 257.5965 257.5587 249.3867 250.0502 251.794 250.7979 250.9035 251.5347 252.6457 253.7429 254.8618 257.8818 259.2842 261.3906 262.9142 264.1168 264.342 263.6667 263.3708 263.2295 263.5895 263.2816 263.2077 261.8416 260.4443 258.9464 258.9541 259.6384 260.6039 261.4051 260.0232 259.3553 258.2607 261.1707 262.3201 262.7454 264.6881 266.4766 268.2339 269.5416 270.6393 271.1372 271.7945 272.7339 273.885 275.1243 276.0394 277.0783 -9999 +-9999 -9999 340.4196 343.6427 344.3952 344.9096 345.4007 344.0759 345.6384 344.5511 345.5114 344.7484 348.0759 351.6017 356.0524 358.5804 361.1046 362.7858 363.8835 364.0817 362.7364 360.9675 358.8958 354.6374 353.5385 351.7625 348.8453 347.912 346.32 343.6989 343.097 342.5849 341.6901 340.6147 338.9259 336.4884 333.9464 331.8653 329.5579 327.3267 326.1498 325.8826 325.3943 322.998 322.8537 322.7527 322.3144 321.4818 324.3514 326.0001 329.4469 328.9908 328.3866 328.2094 329.6062 330.447 329.6181 327.7765 326.0581 326.573 327.701 329.9594 331.8452 333.5281 334.8203 335.727 335.5851 334.0494 332.7537 330.4688 330.3332 330.1006 331.3558 332.9869 333.1532 331.2654 329.4657 328.2294 327.3993 327.7303 327.1895 326.099 323.7995 320.4028 317.6859 314.9199 310.8639 303.4086 303.1215 302.8185 307.8633 313.0813 314.7892 317.7597 319.6216 322.5647 326.133 328.376 328.2469 327.2757 326.9947 329.2436 327.7263 326.9211 326.6042 326.3256 327.1876 326.296 323.9718 321.693 319.5479 317.9715 316.2348 314.7313 310.8163 307.9628 303.8912 300.5792 299.7549 301.7043 303.9256 306.817 309.2267 311.6003 307.321 301.08 294.7451 295.1068 297.4873 300.1718 304.4455 307.561 300.9096 299.198 305.4269 308.5249 309.6919 309.3775 310.3741 310.6942 309.4985 303.9634 303.487 303.7094 302.4197 301.0439 300.6158 296.6153 289.9167 285.7971 289.1222 292.3568 294.2113 295.8283 297.6129 297.9749 297.1854 294.8037 292.4752 288.2352 285.2953 281.8654 278.0267 273.5117 272.4305 276.4938 280.263 283.0291 280.3117 275.7803 274.3622 274.3572 274.2559 275.3355 275.7023 277.3813 279.2819 281.6273 278.6981 272.6905 262.9725 261.2425 261.1567 260.5735 261.1548 260.8487 261.8873 262.7134 263.9672 265.2888 267.219 269.1048 271.037 272.6176 274.9827 276.8535 278.3968 279.6921 280.4887 282.0968 285.0011 287.351 289.585 291.3967 293.5043 292.852 289.0679 285.9096 289.3241 290.4376 288.7511 288.2656 290.271 296.3088 299.2567 301.7622 304.9606 307.5232 309.3545 309.7957 310.3837 310.5821 308.9331 306.7436 304.5017 302.8922 302.0725 301.1964 300.1574 298.8395 297.3691 297.6707 296.5406 297.5813 299.9872 301.4608 300.4829 296.8007 293.8703 292.5052 291.9367 290.4675 289.2601 288.1412 286.6538 285.0685 282.9022 280.235 276.6964 272.7492 266.904 259.2748 264.2057 271.0526 276.4478 280.7606 283.6374 284.6952 282.5013 274.0331 277.6232 277.8932 275.2529 276.6671 277.3744 276.2615 274.9551 273.2329 268.7004 266.7435 264.3817 259.3418 255.9539 258.4576 265.3522 270.3256 271.8096 271.4597 272.8562 271.835 270.2879 269.8846 270.3632 271.4214 272.7068 273.8473 276.6735 278.1057 278.4384 277.5542 276.7792 276.9256 277.2673 278.5836 280.0969 283.18 283.8269 285.123 286.2295 286.8919 286.3117 285.5154 284.264 282.7769 278.2881 274.1046 272.0102 270.9623 268.5377 267.8513 267.5948 267.2235 266.753 266.2307 265.4625 264.6706 264.0558 263.2201 262.5576 261.634 259.8648 257.7592 256.0807 257.0623 262.7957 263.4676 265.162 265.7501 263.7056 263.4723 263.3515 267.4702 271.3949 275.4852 277.4859 278.8667 279.8415 280.3018 281.1282 279.3662 277.2885 276.4876 275.5067 272.5142 268.6144 268.4001 268.6292 269.1109 269.6053 270.6575 270.9707 270.3854 268.6011 267.8228 269.0784 270.0145 270.4366 271.2905 272.8219 273.8848 274.9118 275.3126 275.8848 276.3127 276.5197 275.7828 274.7327 271.3333 269.0718 266.6232 263.1043 257.7409 253.1194 250.8503 252.5748 248.5614 242.7742 242.621 242.2901 242.571 243.2463 244.4964 246.5589 248.1999 249.4603 251.2097 250.8143 248.1181 245.6763 245.877 250.3072 252.6633 253.3055 253.4776 253.9356 253.6514 252.3271 251.9869 252.2707 251.1954 248.1979 245.428 243.3377 242.8839 242.8282 242.6962 242.4151 242.1975 242.5989 242.7124 242.6692 242.4959 242.3641 242.5141 238.7318 242.3255 242.0999 241.4397 241.4122 241.3662 241.2037 241.5867 248.206 252.2801 254.363 253.4479 254.6609 254.3822 252.8822 249.3547 248.1519 255.9064 251.0351 245.5406 244.1064 246.3255 251.238 253.1966 255.5164 257.3105 255.6375 251.3967 245.6813 244.4778 243.3015 244.0931 247.2754 248.4698 248.6559 248.839 249.3037 249.7306 250.6508 250.7765 257.5965 257.5587 249.3867 250.0502 251.794 250.7979 250.9035 251.5347 252.6457 253.7429 254.8618 257.8818 259.2842 261.3906 262.9142 264.1168 264.342 263.6667 263.3708 263.2295 263.5895 263.2816 263.2077 261.8416 260.4443 258.9464 258.9541 259.6384 260.6039 261.4051 260.0232 259.3553 258.2607 261.1707 262.3201 262.7454 264.6881 266.4766 268.2339 269.5416 271.2522 271.5284 272.2817 273.1647 273.831 275.0479 276.7304 277.5821 -9999 +-9999 -9999 339.6866 340.572 340.4249 341.9226 341.7856 340.7098 341.4369 339.7112 340.8716 344.8815 348.7738 351.9435 354.9983 357.5665 360.2592 362.1038 363.1609 365.1093 364.7868 362.9962 360.6112 355.9994 355.1358 352.9888 350.7685 350.4643 348.9268 347.5521 345.9347 344.6708 342.1631 340.567 337.9651 334.6402 332.1425 330.4138 328.1732 328.2936 329.5915 331.9191 326.1377 323.0638 326.366 328.3513 326.7376 322.4342 323.6115 325.1043 330.0673 331.0722 331.2395 330.5247 330.4856 331.7219 331.9763 331.2265 329.8619 327.7276 327.9779 329.7151 331.7617 333.5308 334.5869 335.3636 335.0166 333.4454 330.5577 330.55 330.4811 328.6995 328.2833 330.7455 331.3282 331.2654 329.4657 328.2294 327.3993 327.7303 327.1895 326.099 323.7995 320.4028 317.6859 314.9199 310.8639 303.4086 303.1215 302.8185 307.8633 313.0813 314.7892 317.7597 319.6216 322.5647 326.133 328.376 328.2469 327.2757 326.9947 329.2436 329.1638 328.4902 328.3047 328.0549 327.9448 326.369 324.0538 321.7042 319.2426 317.6738 315.9041 314.1012 310.3655 308.0861 305.2357 301.6616 300.5589 301.7231 303.6686 306.828 309.1489 311.8886 307.6594 301.709 296.8385 299.6603 300.972 303.1336 306.0505 309.3028 303.4113 301.3864 307.486 310.7411 312.0844 311.7305 311.117 311.3265 310.126 307.3289 306.3102 305.412 302.8867 299.8796 296.898 292.575 288.7834 287.6857 289.7983 294.0109 296.5477 298.2871 298.5101 298.7707 297.3651 294.87 292.3231 287.3719 284.3296 280.2722 275.1916 272.8912 275.9586 281.5951 284.9046 286.7845 283.035 280.3986 278.9234 279.6714 277.1704 275.9925 278.5986 281.1873 282.9781 283.1859 280.6641 276.2523 268.075 261.1872 261.1854 261.2047 259.2147 260.9111 261.3608 262.7503 264.4967 265.8026 267.3631 268.8906 270.6998 272.2798 274.1094 276.2109 276.5507 278.0381 280.2823 283.058 284.8286 286.6761 288.6955 290.6371 292.888 292.0457 289.3422 283.9975 285.8572 287.9596 287.0144 285.7032 287.9171 294.4682 297.9452 300.0719 303.038 306.0487 307.8981 308.5332 308.6378 309.0285 307.1652 305.7431 303.9994 302.3187 301.662 301.5583 300.9129 299.5061 297.7137 296.5453 294.9047 294.2858 297.7881 299.4271 300.2007 298.9839 295.1941 291.2126 289.3108 288.3507 287.6766 286.8394 285.9928 284.2089 281.8264 279.289 276.1047 272.5765 266.1299 258.0842 263.9345 270.7845 276.1181 279.1422 280.1694 279.0086 276.4269 269.4707 272.8036 271.7271 271.8292 273.7078 275.7787 275.0173 273.8238 271.616 267.5999 266.1131 261.8255 258.148 255.4542 260.3261 266.4529 271.6405 274.3737 273.9979 275.3517 274.7532 273.2521 272.2255 271.8154 273.1917 275.287 277.0279 279.7383 281.4045 281.9684 281.186 281.2207 281.0589 280.7127 280.5756 281.9798 284.3885 285.321 286.4088 287.5156 287.9437 287.467 286.0824 285.8156 284.7777 281.5896 278.3029 276.2426 275.1267 273.275 271.7957 271.0648 270.5481 269.6462 268.9458 266.1285 265.2763 264.8213 264.1746 263.3102 262.7281 261.7242 260.4133 257.4146 255.5955 256.5983 259.2186 259.2062 256.9393 261.2048 261.1985 260.0063 265.4947 270.4723 273.0124 276.1374 278.5729 279.1288 279.4312 280.0668 279.6845 277.3003 276.6781 275.8809 272.9012 269.1472 267.7949 268.0444 268.5254 269.1367 270.312 270.6081 270.4095 268.9272 267.4099 268.148 269.2814 269.6526 270.6084 272.2497 272.5854 273.0591 273.4012 274.0474 274.822 275.3511 274.8926 273.9913 271.0079 268.7747 266.4211 263.5346 258.9049 254.8527 254.8699 256.8036 254.5248 248.4604 242.5372 242.5324 242.0881 242.0092 242.8085 244.9629 246.9774 248.7888 252.1012 250.4399 246.2644 243.5572 246.8165 250.6514 251.8533 252.3682 252.6019 252.8314 252.5966 251.1346 250.5272 251.703 250.4928 245.5468 242.4862 241.7784 241.0928 242.0472 242.3445 242.1549 242.2528 242.4463 242.3334 242.423 242.7091 242.8262 243.3285 238.8499 242.3255 242.0999 241.4397 241.4122 241.3662 241.2037 241.5867 248.206 252.2801 254.363 253.4479 254.6609 254.3822 252.8822 249.3547 248.1519 255.9064 251.0351 245.5406 244.1064 246.3255 251.238 253.1966 255.5164 257.3105 255.6375 251.3967 245.6813 244.4778 243.3015 244.0931 247.2754 248.4698 248.6559 248.839 249.3037 249.7306 250.6508 250.7765 258.0768 258.2139 254.1394 252.1014 254.2207 254.7175 254.5103 254.3693 255.3834 257.8471 258.5053 260.1941 261.2676 263.1781 264.5313 266.1251 266.9069 267.2652 266.8868 267.1276 266.9168 266.4273 265.9297 265.0077 263.7649 261.9534 260.201 260.7531 261.6875 261.699 261.3522 262.0914 260.7204 261.4688 261.7106 261.1844 262.6972 264.8614 266.4827 267.9876 270.312 271.248 272.1885 273.2741 273.9987 275.2825 276.8406 277.9001 -9999 +-9999 -9999 335.958 336.2669 335.9295 338.3339 337.9458 335.9922 334.7826 335.2917 339.452 343.4857 345.4133 347.5241 350.0695 353.4549 355.6551 358.804 361.938 364.7747 365.7896 364.408 362.0279 357.8581 356.4453 354.5726 352.7593 352.3225 350.7344 349.2228 347.9553 345.9651 341.3244 338.4568 335.2353 332.2056 330.7631 330.6108 332.6389 333.1905 333.7179 329.0047 328.143 327.6434 330.9941 332.0099 330.0673 322.4342 323.6115 325.1043 330.0673 331.0722 331.2395 330.5247 330.4856 331.7219 331.9763 331.2265 329.8619 327.7276 327.9779 329.7151 331.7617 333.5308 334.5869 335.3636 335.0166 333.4454 330.5577 330.55 330.4811 328.6995 328.2833 330.7455 331.3282 329.415 328.1311 325.7336 325.116 325.6689 325.7275 325.7325 324.7578 322.5105 318.9301 314.8441 310.4906 303.627 303.3524 303.1374 306.9111 311.8726 314.7254 316.1646 319.3079 321.0367 327.5826 330.0028 331.2616 330.6185 329.5571 330.0874 330.1277 329.8047 329.5507 328.1537 327.5347 326.0553 324.2166 321.5945 319.5261 317.6853 316.3005 314.7878 310.8263 308.1575 305.3928 302.5637 300.7636 301.8564 303.8288 307.0887 309.312 312.8116 309.8748 302.7819 298.7458 302.3975 304.1505 306.9753 309.4698 311.0255 305.0126 302.1546 307.8223 311.4868 312.6432 312.9082 311.9809 312.3287 310.7548 309.1017 308.0283 305.4736 300.4901 296.8804 294.3378 291.9356 291.3107 291.8191 292.6325 294.6715 297.788 299.3542 299.53 298.308 296.8147 294.3211 291.6595 284.6867 281.9849 277.9815 273.9748 272.1078 277.6373 283.7206 287.9826 289.87 286.8477 285.485 283.5558 281.0418 279.6218 279.1974 281.2021 284.006 285.6728 284.4811 281.4333 276.8636 271.6896 262.7427 261.1572 260.7947 260.9523 259.5219 261.048 263.8123 265.6677 266.5486 268.0383 269.4757 270.811 271.7553 272.66 274.6287 275.9611 277.5988 279.0805 281.2716 283.0711 284.4929 286.9872 289.9486 292.2854 291.5397 289.415 285.2107 281.0398 284.1962 284.0358 282.4253 285.0316 292.0156 296.1912 298.6713 300.4211 303.3037 306.4325 307.6797 307.2169 307.0798 306.4134 304.9782 303.354 302.1108 302.1079 301.6613 301.3945 300.5101 298.994 295.0083 293.3902 293.5461 294.942 297.2643 298.0952 297.6921 295.3166 290.9476 288.3641 285.1587 284.5746 284.4828 283.8552 282.9506 280.3091 277.9064 275.2477 272.2172 265.4949 261.2462 258.4705 267.4898 271.648 272.9101 273.7573 272.0291 268.1586 265.7375 266.5629 267.6264 269.9764 272.6947 273.8845 273.907 273.1468 271.2781 266.4026 263.7553 261.1827 257.1356 255.7344 262.0168 266.1508 269.252 271.0778 274.5096 276.7086 277.3118 276.1478 274.4706 273.7292 274.8647 277.0704 279.1131 281.1907 282.718 284.0744 284.6232 284.5799 283.3268 282.8715 283.0133 283.9639 285.8748 286.6938 287.7614 288.485 288.8342 288.2007 286.5985 286.4766 285.8712 282.9103 281.4296 279.432 278.1635 276.6054 275.0491 273.5898 272.9363 272.015 271.7901 266.7072 266.1732 265.4338 264.6218 263.7999 263.0988 262.0609 261.2021 258.6499 255.3461 255.5094 256.3243 256.7774 257.4506 257.1617 257.9949 258.7437 263.3868 267.0044 270.9209 274.6356 277.8307 278.3346 278.9667 280.0644 280.6216 278.1773 278.2752 276.2011 273.4478 270.263 267.1717 267.4078 267.9183 268.624 269.9243 270.3229 270.4102 269.3136 267.693 266.8051 268.105 269.291 270.0111 270.839 271.0936 271.5664 272.2696 272.8855 273.7384 274.0565 273.644 272.7337 270.3592 268.4591 266.2627 263.9074 261.1469 259.6066 258.8494 258.1614 256.4962 251.5044 248.0995 243.0841 242.0881 242.0092 242.8085 244.9629 246.9774 248.7888 252.1012 250.4399 246.2644 243.5572 246.8165 250.6514 251.8533 252.3682 252.6019 252.8314 252.5966 251.1346 250.5272 251.703 250.4928 245.5468 242.4862 241.7784 241.0928 242.0472 242.3445 242.1549 242.2528 242.4463 242.3334 242.423 242.7091 242.8262 243.3285 238.8499 242.3206 241.706 241.6405 241.3377 241.4224 241.2086 241.5046 247.9174 253.0881 256.0945 255.3245 256.4498 258.0639 259.3096 257.3495 253.5131 259.7534 260.3065 256.6161 250.9541 252.4853 256.6901 258.4961 259.929 261.5949 258.1899 252.5339 247.9159 245.9874 245.1914 243.4941 245.7319 248.5804 249.9428 250.9903 251.4831 251.931 252.6274 253.5652 254.4961 259.0923 258.9719 254.6606 254.7624 256.2803 257.5684 258.2546 259.1463 261.0207 262.1625 262.9717 263.4846 264.6529 266.1379 267.6727 268.9955 269.7321 270.0157 270.0265 269.8203 269.4903 268.7325 267.6736 266.7304 265.7465 264.3399 263.7204 265.2946 265.8145 263.5186 262.9564 263.2955 262.3826 263.9116 263.3922 264.3137 264.6739 265.2498 266.1342 268.6935 270.3919 272.1994 273.3853 274.4384 275.5203 276.7043 277.7783 -9999 +-9999 -9999 330.8918 332.363 333.4486 334.5444 333.351 332.1226 333.102 334.9681 337.5162 341.6931 345.7588 348.2405 353.0365 356.307 359.1787 361.3375 364.7109 366.6564 367.0878 364.408 362.0279 357.8581 356.4453 354.5726 352.7593 352.3225 350.7344 349.2228 347.9553 345.9651 341.3244 338.4568 335.2353 332.2056 330.7631 330.6108 332.6389 333.1905 333.7179 329.0047 328.143 327.6434 330.9941 332.0099 330.0673 324.486 326.4752 327.6275 329.6918 331.5728 332.6479 332.7997 332.3877 332.7482 333.6846 333.7158 332.5063 329.1095 329.2818 329.7484 330.7019 332.732 333.7762 334.7568 335.0063 333.944 329.2038 326.9822 327.1918 327.373 325.3717 326.6096 327.3185 325.8873 325.5339 324.1913 323.2562 323.3672 323.7879 324.2162 324.1933 322.5201 319.4204 315.3852 310.5717 303.6231 303.5789 303.4616 305.1888 313.1418 317.1956 318.5126 319.666 323.2644 327.2208 329.1654 331.5264 332.4293 331.9235 331.0945 331.2442 330.8111 329.6149 326.8668 326.7118 325.1213 323.8513 321.9091 319.7493 318.1913 316.6847 315.1063 311.2501 308.1454 304.6787 302.604 301.4774 302.5492 304.3659 307.4377 309.5255 313.2543 310.2149 302.2455 302.2491 304.876 306.5792 309.7907 312.9511 313.2555 304.2776 305.1523 308.7393 311.3756 313.4957 313.6992 313.3314 313.6727 312.6128 310.3615 309.8003 305.4583 301.5474 302.1671 301.0941 297.3635 296.7151 297.0349 296.0137 296.0855 297.8333 299.539 298.8233 296.5178 295.6981 293.628 290.6409 282.9196 278.6223 275.074 273.5658 276.0189 280.9047 285.7575 289.8928 292.6942 288.8473 289.0424 287.2576 285.5504 283.2788 282.3606 283.3932 285.3211 287.2732 285.5138 281.9178 277.7325 273.4889 266.9392 261.6876 261.2696 260.8069 261.0012 261.9645 265.1731 267.066 267.9809 268.4446 269.0651 270.1071 271.8354 273.1182 275.4962 276.8849 279.086 280.7885 282.3593 283.6061 285.5999 287.0879 289.0663 291.5665 291.2349 289.3958 286.575 281.1259 279.0273 279.817 279.0843 282.1623 291.5498 294.4246 295.9565 298.1597 301.5663 304.784 306.7134 305.5934 305.149 304.5243 303.7367 302.6687 301.3567 300.1659 300.2394 300.743 300.8507 299.5572 296.8009 294.1257 291.5858 291.8392 294.2686 295.3772 294.9597 293.3147 289.4235 283.3759 281.4382 280.4475 280.9829 280.369 280.085 278.0014 275.4941 272.9435 270.731 265.1036 261.6766 257.1019 262.3754 264.6696 264.8707 266.7223 265.6798 262.1801 262.96 261.6765 266.5321 268.1466 269.4111 271.543 272.5853 272.3107 271.0149 266.0705 263.162 259.8577 256.1721 257.4126 262.7393 266.1108 268.2303 270.1404 274.9971 277.7716 278.9246 278.1261 276.7295 275.4272 275.9905 277.8505 279.963 282.5227 283.2631 283.9462 284.6046 284.893 284.5809 284.5989 284.8319 285.5332 287.1768 287.65 288.6312 289.417 289.492 288.8219 287.2607 286.5709 286.4229 285.3906 283.7906 281.9583 280.6072 279.0751 277.8198 276.0309 274.884 274.503 273.1612 268.2281 266.9203 266.1436 265.5405 264.1027 263.1149 262.2411 260.7491 258.1954 258.4775 257.5317 255.4381 256.3052 256.0237 256.1774 257.2236 258.0837 261.0422 265.468 269.9012 273.3537 276.8516 278.0958 278.995 279.3474 280.3098 279.6143 279.0752 276.0967 273.4478 270.263 267.1717 267.4078 267.9183 268.624 269.9243 270.3229 270.4102 269.3136 267.693 266.8051 268.105 269.291 270.0111 270.839 271.0936 271.5664 272.2696 272.8855 273.7384 274.0565 273.644 272.7337 270.3592 268.4591 266.2627 263.9074 261.1469 259.6066 258.8494 258.1614 256.4962 251.5044 248.0995 243.0841 241.9992 241.9944 241.6924 243.6754 245.4042 247.6204 249.7406 248.7034 244.8786 243.5601 247.335 250.1089 251.0389 250.8284 250.9717 252.4402 251.839 249.5389 248.7691 249.732 249.3724 244.127 241.1985 240.9345 241.2539 241.6208 241.583 242.0066 242.4275 242.1842 242.6044 242.6794 242.6652 242.9035 243.2443 238.8252 241.8566 241.7123 241.5972 241.4934 241.4277 241.5313 241.5692 247.9637 253.8193 256.3621 257.4196 258.2507 260.2233 262.0165 262.2764 258.6927 260.551 263.1949 264.5979 263.6993 262.3669 262.9304 262.7625 264.3568 264.7673 258.399 253.5517 249.2717 248.0976 245.9544 244.3726 245.1546 248.4452 249.7043 252.1189 253.0138 253.8529 254.4921 255.0128 255.1768 258.3457 259.3501 257.9748 256.4292 257.4175 259.0576 260.5766 261.3364 262.9926 264.474 265.3071 265.6064 266.9504 268.2752 269.7375 271.0888 272.0284 272.6762 272.7637 272.6821 272.4954 271.245 270.7012 270.0694 269.241 268.9716 268.3885 268.2455 268.3019 267.2225 264.6092 264.5071 263.3696 264.0735 265.5817 266.3584 266.5377 266.6536 265.852 268.5551 269.7227 271.6143 273.751 274.6476 275.457 276.6211 277.6893 -9999 +-9999 -9999 330.8918 332.363 333.4486 334.5444 333.351 332.1226 333.102 334.9681 337.5162 341.6931 345.7588 348.2405 353.0365 356.307 359.1787 361.3375 364.7109 366.6564 367.0878 366.2432 364.2794 359.4594 357.6722 356.2977 355.1256 353.4062 350.9048 349.1093 347.3417 345.1552 340.1096 335.8679 332.6057 332.4003 335.7849 336.7941 336.3246 334.3759 331.5253 328.1035 328.7751 331.8925 334.7431 335.2402 332.4809 326.7096 328.4269 329.8105 328.6718 331.2471 332.8716 334.2026 334.3312 334.4097 334.9372 334.8171 333.6756 330.045 329.7579 330.0573 330.9225 331.4193 333.0793 334.6099 334.6313 333.8359 327.9314 324.2973 323.0641 322.9824 323.2445 322.8397 323.0373 323.0917 323.3871 322.9494 321.8328 321.2421 321.3624 321.885 322.0212 321.1865 319.2006 315.5613 304.7621 303.7624 303.925 303.5697 307.1775 312.0996 315.5152 318.8075 321.6296 323.5844 329.2509 332.2735 333.3765 333.8378 333.4346 332.1508 332.1717 331.0665 328.9197 325.5459 324.4777 324.4937 323.2325 321.6576 319.4752 318.1475 316.3747 315.5627 311.1331 307.7051 303.9156 302.5373 301.7973 303.3312 304.5042 307.3982 310.0182 314.1161 313.7925 310.151 310.9307 311.2036 309.0539 312.584 315.7411 315.1399 307.1119 309.6655 311.0856 313.9493 315.5982 315.8245 315.4223 314.8406 314.5387 312.3633 310.8911 308.8263 308.191 307.1519 304.7638 302.4586 301.2566 299.8916 298.6015 298.1091 298.4517 298.885 297.7124 294.9604 293.4861 292.3108 289.2423 281.6644 276.2733 274.8216 275.5397 278.2686 281.4354 285.9915 289.6523 293.0571 294.5556 292.8988 290.8827 288.2344 286.5443 285.9904 285.9386 287.3566 288.093 285.7275 282.1459 278.3582 274.1585 268.9708 263.4474 262.4489 260.5417 260.4129 261.2717 266.3693 270.4891 271.422 271.2194 269.8722 270.069 272.3163 274.7319 277.6037 278.7519 279.7913 280.7187 281.4531 283.2934 285.5252 286.6768 288.3369 290.3396 290.5924 288.1334 284.4948 281.9765 278.8955 275.9401 275.5052 280.2283 287.4989 290.3072 294.1069 297.6625 300.3376 302.1456 303.5716 303.1836 302.9846 303.2068 302.6246 301.5883 300.4218 299.4302 299.1123 299.836 300.2077 300.5401 298.4797 296.3822 293.161 291.6158 291.112 292.4965 292.4274 289.1128 287.1428 280.7419 279.3927 277.8088 276.9546 276.619 275.039 273.5134 271.5753 269.4569 267.3584 263.0387 260.6057 258.4118 258.6823 258.769 259.1484 259.8266 257.8814 256.0506 257.1084 260.2631 264.5177 266.1563 267.7389 269.606 271.0433 270.7826 269.7751 264.903 261.7999 256.9482 254.8566 258.2915 263.2337 265.6203 267.7851 270.2719 275.6761 277.787 277.9195 277.6199 277.8885 278.0791 278.1823 279.0708 281.0612 282.3428 282.7841 283.154 283.3834 283.8497 284.0166 284.2621 285.0912 286.1767 286.743 287.0991 287.8921 288.6236 289.1975 288.6758 286.8525 285.9213 287.1184 286.8693 285.762 284.3242 282.7976 281.2364 277.8198 276.0309 274.884 274.503 273.1612 268.2281 266.9203 266.1436 265.5405 264.1027 263.1149 262.2411 260.7491 258.1954 258.4775 257.5317 255.4381 256.3052 256.0237 256.1774 257.2236 258.0837 261.0422 265.468 269.9012 273.3537 276.8516 278.0958 278.995 279.3474 280.3098 279.6143 279.0752 276.0967 273.6076 271.1592 266.2476 266.8009 267.2411 268.0862 269.5199 269.8676 270.041 269.2913 268.2432 266.4098 266.5938 267.8005 268.5841 269.4242 270.0232 270.7292 271.407 272.0167 272.5599 272.8505 272.623 271.9009 269.4884 268.0947 266.2953 264.6561 262.8543 261.059 259.6475 258.2917 257.179 253.4398 250.5663 246.757 242.032 241.923 241.5045 241.448 243.0134 245.9847 247.7189 246.7539 244.1174 243.1724 245.665 248.7519 250.0494 249.4863 249.946 250.4666 250.082 249.8025 245.9608 247.0251 247.0571 243.8891 240.7845 240.8831 241.496 241.9445 241.785 242.3104 242.3598 242.5134 242.5382 242.2393 242.7087 243.0782 243.0845 239.0142 242.2267 241.5567 241.4172 241.4842 241.4319 241.509 241.9832 246.275 250.6057 253.0462 255.1571 257.5209 260.9306 263.5716 265.4586 265.4805 264.5974 264.5778 266.3911 268.2423 267.356 266.8534 266.9437 267.3274 265.282 257.9391 254 249.9084 247.8207 247.0337 245.1168 245.5438 248.4405 250.0504 252.6358 253.7902 254.4902 255.5875 256.5421 257.2803 257.964 260.6957 260.5891 259.3457 259.7907 259.7495 260.7728 262.2097 264.2691 266.1834 267.6586 268.644 270.1404 271.2414 272.1051 272.9917 273.9802 274.7313 274.8722 274.7841 274.4246 273.6626 273.1727 272.7002 272.1682 271.6826 271.1536 270.4933 269.7896 268.8588 266.2137 265.4268 264.8761 266.4402 267.8205 267.4993 267.8334 269.3993 270.353 267.7887 270.231 271.4885 273.3991 274.4448 276.2013 277.1631 277.7741 -9999 +-9999 -9999 326.667 328.224 329.1521 329.5972 329.7816 333.9321 337.9659 341.3247 344.5619 348.1424 351.0016 353.2415 357.9972 360.9029 364.0622 366.086 367.6934 368.8737 368.6404 367.7361 365.8537 360.3475 359.7454 357.9522 355.9202 352.4431 349.9865 347.6018 345.5339 342.8466 337.0698 333.7338 337.5757 339.3883 340.0907 339.8394 336.9728 332.2271 328.3188 328.9795 331.2535 334.9398 336.5907 335.8624 332.3246 328.2321 331.0618 332.7565 330.0537 330.3467 331.6536 333.3795 334.7428 335.7163 336.2328 335.7447 334.6822 331.566 331.4192 331.291 331.6996 332.029 333.7215 334.4789 334.3839 333.4885 327.6945 323.0867 321.4587 320.7639 320.1476 319.3499 318.2828 319.0128 320.1649 320.9703 320.5022 319.9142 319.6487 319.8978 319.8793 319.037 317.8346 315.1857 305.9487 304.4021 304.1685 305.1747 307.6281 313.3278 317.0791 321.2385 325.078 328.022 328.9561 331.953 334.3142 335.3134 334.804 332.7321 332.6133 330.8641 328.691 325.7451 324.031 323.0316 322.2913 320.8168 319.1299 317.1006 315.3815 314.7201 310.7904 307.1684 304.0359 301.5325 302.7007 304.6501 306.4007 308.2332 310.4519 314.959 317.0873 317.1053 316.1971 315.7647 313.4324 314.9112 317.8963 316.6804 309.7564 311.96 314.5653 316.1489 317.5565 317.6967 317.693 316.8917 316.5895 314.1561 312.3295 311.4729 310.0857 308.2858 306.3409 304.7462 303.2786 302.2971 300.2818 299.058 297.7471 297.4036 296.1844 294.2451 292.2277 289.5997 287.6523 281.0071 276.4371 275.2496 277.8056 281.0019 283.6961 286.5304 288.6806 292.961 295.6315 294.8604 293.1592 291.2749 290.5624 290.1066 288.9929 289.8755 288.9022 283.8129 280.5803 277.5782 274.3138 269.4865 264.0842 268.092 262.0744 260.4509 259.1869 262.8892 268.8882 274.041 273.75 271.221 269.4137 271.1454 273.8414 277.3858 278.6247 278.1384 278.993 280.0979 282.2973 283.209 285.0247 286.8284 288.927 288.9874 287.7368 284.1163 280.5232 278.6345 276.1035 272.4362 277.2329 287.7483 290.0043 293.0573 296.2229 298.8764 299.5016 300.1708 300.5282 300.2157 300.8767 301.0031 300.7715 299.6076 298.8132 298.3657 298.531 299.0695 299.2114 298.5256 297.1255 294.6625 291.4921 285.9381 287.0669 287.6529 285.7899 282.9759 278.2872 274.9145 274.8495 274.3675 273.4135 269.8226 267.7985 267.5449 267.3599 263.8896 261.3939 258.5029 256.8106 255.9927 257.5071 258.5063 257.0837 254.7661 254.5987 254.8772 255.7702 258.863 262.3619 265.1458 266.9761 268.6662 269.6569 269.0218 263.7854 258.7465 254.7939 255.1043 259.0691 263.6142 265.6197 267.7851 270.2719 275.6761 277.787 277.9195 277.6199 277.8885 278.0791 278.1823 279.0708 281.0612 282.3428 282.7841 283.154 283.3834 283.8497 284.0166 284.2621 285.0912 286.1767 286.743 287.0991 287.8921 288.6236 289.1975 288.6758 286.8525 285.9213 287.1184 286.8693 285.762 284.3242 282.7976 281.2364 279.486 278.094 277.1036 276.5571 274.9922 272.9919 267.7498 266.9892 265.4961 264.6937 263.2844 261.3741 259.8795 258.8526 259.2977 258.8814 256.9911 254.2078 254.334 254.6449 255.8853 256.7245 260.1065 265.2446 269.3866 272.9246 276.0005 277.7307 278.8322 280.0488 281.3075 279.584 278.2555 276.675 274.0581 270.9529 266.7495 266.3363 266.8791 267.5977 269.1648 269.532 269.4398 268.9173 268.1063 266.5706 264.9238 265.7816 266.6576 268.7534 269.4308 269.8378 270.2148 270.7332 271.3315 271.8412 272.2043 271.9539 269.4985 268.08 266.5129 265.0115 263.2419 261.3483 259.4448 257.6221 256.3101 254.3746 252.1491 249.5028 245.5546 241.7653 241.9782 241.3497 241.3446 243.3491 245.5065 245.1979 242.6142 242.8585 245.9834 247.9951 248.1092 247.8837 248.8719 247.1827 245.623 244.9977 242.9686 240.8701 240.9361 241.0362 240.9056 241.3863 242.0645 241.9865 241.8261 241.8148 242.1015 241.8151 242.0169 241.9055 242.7284 241.3634 240.6729 238.8369 242.0421 242.2258 241.7583 241.6768 241.7303 241.8408 242.3626 246.9245 250.0441 253.1076 256.7484 259.8792 260.3579 265.0314 267.8504 269.3418 268.3472 268.2303 268.2061 268.757 269.1399 269.2636 268.6704 266.4294 263.2297 255.8757 252.6021 249.5686 248.5849 246.8201 246.8987 245.5963 248.9713 250.8446 253.4214 254.2976 255.4966 256.1647 257.23 258.069 258.6642 259.6544 261.2783 261.3285 262.537 263.4654 263.195 262.2311 264.2322 267.058 269.7125 270.937 273.1465 273.9103 274.7137 275.706 276.4211 276.9268 277.0524 276.7834 276.3316 275.8423 275.4186 275.1841 274.8653 274.2544 273.3276 272.6253 271.871 271.2514 268.2245 266.9587 266.8422 269.3355 270.4303 270.3493 270.7218 271.5981 271.6937 272.4325 269.587 272.3868 273.4292 274.3258 275.2916 276.3944 277.7844 -9999 +-9999 -9999 322.7606 324.4991 325.2928 327.8044 332.4613 335.9512 339.2799 342.5612 346.2968 349.7817 353.3994 356.4028 361.5209 363.5904 365.6981 366.6661 367.9299 368.7765 369.1455 368.5011 366.5591 361.0984 359.4619 356.7717 353.2196 350.4779 347.2972 344.2071 340.9917 338.7952 337.4256 340.1157 341.7463 342.535 342.3702 340.7852 334.5933 330.4366 329.3318 331.6016 333.3882 335.864 338.6535 337.5412 331.6737 330.129 331.8693 333.9557 333.5043 333.2185 333.2829 333.5703 334.7198 336.3712 336.8802 336.4915 335.5485 333.566 333.1649 332.9075 333.3036 333.5955 334.2181 334.5335 334.4557 333.4434 329.4424 327.0338 323.0803 322.6999 321.3294 317.9879 317.5562 317.0799 316.9124 318.8929 318.9597 318.3135 317.8955 317.4606 317.6622 317.104 315.892 313.9337 306.5298 303.5423 304.5632 306.1262 308.6551 315.0106 319.8698 322.6844 325.2734 328.1825 330.5627 333.117 334.8547 334.9067 334.5643 332.7873 332.4435 330.6972 328.6983 325.1841 323.4803 321.5702 320.8327 319.7009 318.3479 316.7943 315.0059 312.9408 311.2385 308.6013 305.7089 302.2303 304.4811 306.223 308.5518 310.4169 311.8265 315.9576 317.869 319.0437 319.2722 319.1889 316.7339 317.1385 320.0273 319.0984 312.9749 315.335 316.2005 318.3907 319.4429 320.1009 319.8166 318.5377 317.6558 315.2567 313.1827 310.7304 309.2664 308.2468 306.7824 305.0433 303.5553 302.0183 299.5573 297.9608 296.4012 295.7406 294.8642 293.3332 291.2922 288.5892 285.4554 278.2877 275.4872 276.6274 279.3772 282.0269 284.5495 287.6331 291.1441 293.7853 297.0535 296.3795 294.9789 294.5894 293.8647 292.704 291.3494 290.5058 288.4423 281.537 277.3719 273.7802 270.4778 267.8084 271.0359 273.0296 269.8784 263.29 259.1973 260.4669 265.4957 270.4938 271.3593 269.7926 268.1917 269.3632 271.7119 274.6769 275.7857 277.795 278.9842 279.7737 279.8447 280.1217 282.5563 283.1623 286.5282 287.6367 287.0069 283.327 279.2842 276.5683 274.8673 269.2846 273.2869 285.6964 288.0401 290.6812 293.6191 296.1331 297.0715 297.1078 297.6514 298.2775 298.6879 299.5825 300.0784 299.0948 298.3038 297.9347 297.72 297.5412 297.6233 297.7052 296.4058 295.4347 291.7115 288.7752 283.8004 283.5401 282.2808 279.868 275.0231 273.52 272.1808 274.3675 273.4135 269.8226 267.7985 267.5449 267.3599 263.8896 261.3939 258.5029 256.8106 255.9927 257.5071 258.5063 257.0837 254.7661 254.5987 254.8772 255.7702 258.863 262.3619 265.1458 266.9761 268.6662 269.6569 269.0218 263.7854 258.7465 254.7939 255.1043 259.0691 263.6142 265.6197 267.5144 269.409 274.3505 276.004 274.9976 275.7577 277.503 279.2839 280.1734 280.9866 281.3207 281.2301 281.4519 281.4602 281.6291 281.981 282.2922 283.1686 284.0255 284.7393 285.458 285.7238 286.8243 288.0157 288.6271 287.8785 286.2929 285.4095 286.8848 287.9082 287.5166 286.3982 284.8559 282.9581 281.1032 280.0106 278.477 277.8339 275.6182 274.9177 272.1284 266.6888 266.0746 264.7354 263.7296 262.4453 261.7507 262.4037 260.3658 258.5605 258.8579 257.5384 253.6186 255.0505 255.1074 255.7626 260.4191 265.207 269.2412 271.6236 274.4791 276.7262 277.76 279.0578 280.6286 279.0921 278.3874 278.0587 274.723 271.9564 268.1818 265.893 266.6084 267.4956 268.6605 268.7929 268.6179 268.2192 267.2287 265.745 263.9939 264.3634 265.3416 267.6154 268.0911 268.3425 268.6869 269.2838 269.9085 270.7213 271.5105 271.7338 269.3577 267.6906 265.7505 263.8694 262.1987 260.6136 258.7402 256.9695 255.5776 254.3429 253.2436 251.344 248.4787 247.7014 245.5716 240.9943 241.0457 240.9889 243.193 244.0246 242.1512 241.7083 243.8776 246.8953 247.3101 245.9683 246.7214 241.1239 239.2251 238.9591 240.3931 241.7568 240.9753 239.4158 241.5398 241.7086 242.0145 242.2026 241.8109 241.9056 241.8946 242.4826 242.6142 242.2626 239.2157 238.8089 242.5902 242.9817 243.8865 245.9691 247.7077 244.9093 242.1963 242.4196 242.8796 251.6327 257.8044 259.0684 261.1797 264.1312 262.4814 266.4365 269.6871 271.4054 271.3872 270.4609 269.8499 269.397 268.7318 268.2224 266.4733 264.2188 260.7163 253.6321 251.573 250.5229 250.9676 247.3613 246.9077 245.3483 249.1601 251.9159 255.3442 255.9964 257.0613 257.7892 258.1068 258.5886 259.7071 261.0661 261.9373 261.609 263.9146 264.368 265.6278 264.2655 264.7488 266.2908 269.528 272.0758 275.0985 276.0613 277.2592 278.1839 278.9945 279.1373 279.2257 279.1428 279.0293 278.098 277.8436 277.6229 277.6552 277.0045 275.725 274.9177 274.5252 273.6761 271.2924 270.904 269.1227 269.518 272.1235 272.2226 272.9413 273.2187 273.3331 274.6755 273.5253 272.6035 272.8179 273.7777 274.9403 276.0405 277.7071 -9999 +-9999 -9999 322.2339 324.4834 329.1562 334.517 337.1564 338.791 340.8334 342.7752 345.506 349.2305 352.712 356.1188 361.3255 362.6102 363.2375 363.6593 364.1548 367.0534 368.0261 367.7431 366.072 361.023 357.9314 353.3452 348.5652 344.8977 342.8899 340.7826 339.8441 341.9117 343.3973 345.1302 344.8625 344.6734 343.1999 340.6632 336.1108 330.4882 331.2314 334.26 335.4617 337.1079 338.9725 339.1164 336.4872 333.9419 333.9521 333.425 336.3976 335.9272 335.8922 335.3323 335.3146 336.3681 337.3418 337.6724 337.0989 335.1085 334.6983 334.7834 335.1554 335.3649 333.83 334.3088 334.6809 333.8301 331.4497 329.5631 327.6936 327.1525 326.7117 325.2298 324.2076 320.444 316.2225 316.8294 317.2339 317.0677 316.8486 316.0862 315.934 315.3569 314.1981 312.3652 305.8662 305.132 304.881 306.7624 310.0529 313.5906 315.7336 318.2901 320.5418 325.8821 329.0357 330.5404 332.5032 333.7941 334.0532 332.377 331.6297 329.923 325.6125 324.5121 323.002 321.3841 319.6003 318.2362 317.0182 315.1395 312.675 310.4878 308.8089 306.5293 303.513 302.7124 305.6543 306.7469 309.4595 311.2687 313.0334 316.5859 318.448 320.3323 321.5705 322.1047 321.8675 321.9708 322.3065 321.3307 316.8874 318.0032 318.9818 319.5051 320.1922 320.9147 320.369 318.1679 316.092 314.0937 311.6776 310.0724 308.2544 306.7514 305.8393 303.5956 301.7524 299.9442 298.4901 297.1277 294.792 292.1821 291.074 290.2457 288.8685 286.5558 282.6971 276.0121 277.123 278.1022 278.1888 281.5008 284.3862 286.4622 289.8065 294.5432 297.9054 298.1567 297.7175 297.2563 296.0056 294.5478 291.5895 289.2068 286.7814 280.0875 275.4853 275.6427 275.8095 275.7568 274.8058 276.3919 275.1592 272.4523 261.1424 258.6634 261.8038 265.0575 266.694 266.9758 266.5644 268.0576 270.5745 273.7097 275.7141 278.0288 279.2112 278.0559 277.5958 277.839 279.5854 278.3874 284.262 285.8236 285.5103 280.5053 276.5532 274.8949 273.3311 266.9124 273.2869 285.6964 288.0401 290.6812 293.6191 296.1331 297.0715 297.1078 297.6514 298.2775 298.6879 299.5825 300.0784 299.0948 298.3038 297.9347 297.72 297.5412 297.6233 297.7052 296.4058 295.4347 291.7115 288.7752 283.8004 283.5401 282.2808 279.868 275.0231 273.52 272.1808 271.6192 270.1173 269.9501 269.5819 261.908 261.3253 259.8846 259.6636 260.1062 264.0209 266.8408 268.2425 268.252 266.1678 259.5063 254.2802 254.3632 253.2218 255.8752 259.6511 263.1414 264.5386 266.2245 267.7751 268.654 263.6892 259.9074 255.7324 254.7995 258.2725 262.4117 264.4316 265.9452 267.8546 272.3029 272.6413 271.9174 274.3358 277.3594 278.8606 279.8735 279.4401 279.4124 279.4233 279.2889 279.3471 279.3975 279.8494 280.3073 281.4338 282.5056 282.8748 283.4847 284.4171 285.8277 287.0506 287.8307 287.4653 285.966 284.8571 286.4646 288.1764 288.455 287.4612 286.1093 284.523 282.6354 280.8605 279.6762 278.6735 276.9215 275.8428 274.6513 272.2541 267.202 265.0342 264.6219 266.109 265.9893 262.2781 261.8747 261.0438 258.7833 259.1559 256.2552 253.2544 255.0196 255.1169 259.7189 263.7792 265.5969 269.0568 271.6996 274.2799 276.4512 278.1836 279.1973 280.2322 278.9935 278.7054 275.6288 272.9086 269.4861 265.3167 266.3331 267.2439 267.8817 267.8659 267.5788 267.0383 265.6809 264.3267 263.1077 263.2057 264.0235 265.9214 266.3715 266.6793 267.0515 267.7339 268.5076 269.2984 270.4947 271.0962 268.7393 266.79 264.7306 262.6385 260.4108 259.1136 257.2348 255.0401 253.9929 253.3654 253.9582 253.4222 254.0663 254.574 252.9423 246.6084 240.7986 240.7293 241.8579 242.599 241.9334 241.1381 242.5337 244.8638 244.9685 243.6258 241.877 239.612 242.0059 242.1472 241.8927 241.8535 242.1176 242.1165 240.4982 240.1677 240.809 241.6397 241.8451 242.0362 242.6398 241.6797 238.8324 239.1672 242.7142 246.7673 247.6939 247.0396 244.5153 245.5485 248.6443 250.8918 246.1281 243.6084 246.4767 257.9965 261.3345 263.062 264.952 267.2951 266.6192 267.7621 271.0386 272.5443 273.2357 272.4158 270.672 268.8964 266.3823 265.505 263.3394 261.1718 258.2048 252.6388 251.4945 252.0099 252.391 251.5048 248.3738 246.069 249.281 252.2981 255.913 257.3981 258.2791 259.4203 260.2729 260.3377 261.2189 262.7893 265.4646 262.3607 262.0578 267.4978 266.2726 265.9695 265.9452 266.3624 268.0091 270.9696 275.8701 277.5207 278.6801 279.9462 281.0678 281.4329 281.9445 281.8238 281.4912 281.1474 280.6434 280.5425 280.1559 279.6101 278.4825 277.7524 277.3068 276.7783 273.9067 273.0428 273.1242 273.5066 273.9016 274.1819 274.5648 274.4846 274.682 276.329 276.3762 274.2785 273.2365 273.3501 274.5274 276.3488 277.8462 -9999 +-9999 -9999 328.7719 327.8268 326.759 332.6743 335.328 337.6786 339.053 340.8802 344.0251 347.2253 350.3701 353.2034 357.804 359.11 359.2685 359.3072 361.6658 364.1108 364.066 364.4949 364.7428 360.4136 356.1003 349.6336 345.6072 345.6801 346.7653 347.4831 347.7184 348.381 348.4502 348.4625 347.091 345.366 342.4197 338.0089 333.4164 333.0541 333.7909 335.4777 336.8219 338.0969 339.9225 340.6805 340.0217 338.3902 337.2121 335.8419 337.7349 338.0786 338.0216 337.3106 337.0262 336.8191 337.7323 338.5598 338.5445 336.7761 336.5734 336.7037 336.4412 336.2415 333.9498 333.1679 334.119 334.6686 332.8219 330.9673 329.5697 329.3759 328.7063 328.2893 327.1253 324.3904 320.1623 313.9186 314.9857 315.963 316.2459 315.2559 314.0613 313.8581 312.7775 311.1911 304.2305 305.3723 305.2976 306.3555 310.6892 315.3148 320.1431 323.1295 324.7916 328.9281 331.0414 332.2592 333.3576 334.3077 333.3581 331.4693 329.8721 328.0168 323.9069 322.6741 321.1408 319.1431 318.01 316.5764 314.6432 312.8553 310.0532 308.0039 305.58 306.249 305.8254 304.6472 304.2776 308.779 311.7647 315.3663 316.653 317.6519 319.1142 321.1602 322.9473 323.6403 324.0499 324.2256 324.1525 323.0557 320.7703 320.4047 321.0439 320.9807 320.2274 319.4754 318.5251 316.4781 313.9809 310.7463 309.6956 308.0647 306.0613 304.1026 303.8426 301.7561 298.8756 296.9063 295.8754 294.3645 292.4424 290.3513 288.1919 286.3492 284.8099 281.6781 277.7043 280.0583 282.599 283.4177 281.5023 281.5588 284.2539 286.9034 290.0321 293.3067 298.0923 299.7574 299.6034 298.5494 297.341 295.3929 292.3784 288.642 284.8815 277.0951 278.5785 281.9358 281.0844 280.3179 274.8058 276.3919 275.1592 272.4523 261.1424 258.6634 261.8038 265.0575 266.694 266.9758 266.5644 268.0576 270.5745 273.7097 275.7141 278.0288 279.2112 278.0559 277.5958 277.839 279.5854 278.3874 284.262 285.8236 285.5103 280.5053 276.5532 274.8949 273.3311 266.9124 272.2202 283.1992 286.2186 288.7669 291.5937 293.6802 293.8604 293.8309 293.3559 294.062 299.1627 299.9009 300.1041 299.3132 298.2559 297.7703 296.7086 296.6342 296.7756 297.0392 296.1401 294.5902 292.2559 289.6389 288.0406 281.5025 277.9739 275.4253 276.0333 273.5518 276.4405 275.8823 276.5551 276.5799 276.9907 275.5394 271.0255 266.153 263.6435 264.3794 266.8674 270.8472 273.2955 272.6823 269.6884 262.0024 253.8602 253.9246 254.1404 254.1192 257.4108 261.1159 263.0856 264.6616 266.2211 267.6198 263.4028 259.967 255.4435 253.8915 256.8698 260.4155 262.1332 263.8018 266.6429 269.3844 269.2782 270.6577 273.9757 275.6278 276.9697 276.9112 276.9534 277.3482 277.2965 276.4676 276.5055 276.8683 277.1224 277.8909 278.99 279.807 280.745 281.8023 283.6268 284.8107 286.2071 286.8528 286.5997 285.5599 284.7016 285.9452 287.326 287.7081 287.3395 286.6207 285.2522 283.2419 281.5956 280.9803 279.4841 278.0091 277.1159 275.4889 273.76 272.0308 270.2758 265.9798 267.225 267.7416 263.0645 262.9827 265.2964 262.7852 258.9124 259.5434 255.1866 253.1361 254.0307 257.2205 260.5618 262.7525 265.1791 268.3896 270.89 274.3641 275.7573 278.2737 278.9622 276.9269 275.9352 275.3448 273.3307 269.6636 265.0906 265.9132 266.791 267.331 267.0677 266.6978 265.7007 263.8748 261.8821 261.8446 262.0354 262.7989 264.3573 265.1334 265.5501 266.1525 266.501 267.0639 268.0782 269.2375 269.8736 267.9446 266.1176 263.692 261.1364 258.6886 257.0333 254.8693 251.0202 250.3256 251.3492 252.8058 254.3806 254.416 254.9702 254.2526 249.4386 242.7199 240.6754 240.7762 241.2007 241.5648 241.0477 241.122 241.4 241.9285 239.0624 240.0658 241.6467 241.5438 241.6351 241.7313 241.688 241.9387 241.7136 241.7018 241.3518 240.8215 241.1168 241.0921 242.22 240.1181 238.8157 241.6337 241.7664 242.2272 249.7747 251.0829 251.7028 249.4658 246.7719 247.6648 250.2094 248.2284 244.2606 249.3779 257.7595 259.9641 261.2717 263.8434 266.337 267.6342 268.7024 270.5413 272.3358 273.4359 272.4894 270.2885 267.845 265.0788 262.817 259.6753 257.7412 255.1921 252.4158 252.9452 254.4418 255.1634 254.2095 251.0927 247.6347 249.7053 252.9617 255.1155 258.0818 259.6222 260.9162 262.527 263.9091 264.8349 266.4404 268.8074 263.5196 263.2218 262.8494 269.707 268.4045 268.2497 268.1721 268.5511 269.8787 274.7297 276.5784 278.2953 280.1143 281.9873 283.4087 284.0417 284.536 284.3045 284.1768 283.9963 283.5615 283.0674 282.4225 281.3843 280.6055 279.7958 279.2475 276.561 275.3366 275.9777 276.3664 276.2568 276.2401 276.4063 276.0364 275.7379 277.7471 278.1346 277.0294 275.3452 274.2811 274.9416 277.2116 278.3387 -9999 +-9999 -9999 333.7374 335.6015 336.3003 328.6262 329.8351 332.6183 336.0279 339.9153 342.178 344.312 346.5784 348.7611 351.7572 352.9063 353.7549 354.6303 357.1141 357.8564 359.2019 360.6177 362.464 360.8 356.8725 350.1267 351.6985 352.8932 354.1195 354.0431 353.2392 352.8445 351.4565 350.2694 347.5737 344.0838 338.9683 335.226 336.4466 338.7157 339.9037 338.9986 337.5145 339.4715 340.7318 341.8477 341.3174 340.0666 338.4046 337.3684 338.4319 339.7227 339.5586 338.9643 338.6747 338.187 338.6231 339.3719 339.6081 338.6234 338.3905 337.7127 337.7006 336.4727 333.7958 332.2842 333.1889 334.2681 332.9697 331.2299 329.8307 328.6619 327.9171 327.4144 326.8304 325.2752 322.6613 313.4612 312.3595 314.0493 314.2061 313.3841 312.1746 311.9084 310.0395 306.7504 305.3509 305.2251 305.8925 308.4238 312.0513 315.0924 318.7132 321.7496 324.9464 329.4379 331.2264 333.5806 334.8604 335.0749 333.2724 331.4683 329.2678 326.9847 322.5932 321.0143 318.4834 316.7022 314.8458 314.4219 313.8808 309.8975 310.3487 309.6182 309.9864 308.4796 306.5124 306.0092 304.6246 309.0965 314.0926 316.5902 318.4581 319.8076 321.2584 322.9454 323.9859 324.6628 325.3992 325.6725 325.357 324.675 323.0714 322.3179 321.6086 320.3589 318.4133 317.2924 315.8519 313.485 310.2783 306.2517 306.3052 305.1439 303.1653 301.2814 300.0832 298.4016 296.0131 294.2417 292.2948 291.22 292.4424 290.3513 288.1919 286.3492 284.8099 281.6781 277.7043 280.0583 282.599 283.4177 281.5023 281.5588 284.2539 286.9034 290.0321 293.3067 298.0923 299.7574 299.6034 298.5494 297.341 295.3929 292.3784 288.642 284.8815 277.0951 278.5785 281.9358 281.0844 280.3179 278.7792 279.6141 279.4105 277.0412 267.4103 260.994 257.8746 260.9176 263.0171 264.2424 264.6585 266.7784 269.1239 271.7583 273.2943 275.827 277.3456 276.3592 274.903 275.3838 276.9688 274.689 282.468 283.7295 283.6967 280.7191 275.5006 272.3107 271.2113 265.1428 270.5462 281.1268 283.4407 286.0088 289.1746 289.8572 289.3822 288.7839 291.3009 296.5053 301.1573 301.7916 301.5026 300.031 298.6718 297.4437 296.5062 296.5919 296.6115 295.8676 295.1887 294.2793 292.4821 289.4664 288.2853 286.2042 285.4619 284.3075 281.5059 281.0067 281.7885 280.5052 280.7411 280.6364 281.0033 280.4543 278.1224 270.4223 267.5377 267.9178 269.8976 272.7014 275.1928 275.7167 270.256 262.3069 253.8985 253.794 253.7283 253.8341 255.0739 259.2308 260.8082 263.017 265.2726 265.3599 262.9355 259.2654 254.486 254.0879 255.2774 258.6889 260.5941 262.4515 264.9533 266.7953 268.0984 270.3872 271.9539 273.7442 274.7636 274.8554 275.5244 275.4919 274.7155 274.225 273.975 274.1137 274.5052 274.6675 275.9637 277.3061 278.9098 280.9978 282.5985 283.8906 285.3094 285.736 285.5414 284.8984 284.1311 285.3964 286.4204 286.6368 286.5424 286.1892 285.1968 283.6461 283.1035 281.9702 281.107 279.1874 278.1259 276.3221 275.4346 275.3736 275.4724 272.1754 270.8687 269.2075 264.5439 264.7702 264.8281 264.6107 261.124 258.93 260.0825 254.1175 252.6973 253.7348 256.6024 259.5927 261.6368 264.9063 267.9906 271.3496 273.4825 274.9846 276.9 275.957 275.4045 274.8073 273.0407 270.457 266.5465 265.4032 266.0875 266.8799 266.4156 265.8632 264.8789 262.22 259.5852 260.47 260.9311 261.522 263.3076 264.1189 264.903 265.2727 265.5218 265.8568 267.0016 267.8199 268.2457 266.6272 265.2595 262.8542 258.1212 254.7833 253.5027 251.4147 247.9798 246.0429 247.6333 249.2457 251.1637 251.812 252.2652 252.5232 250.481 246.473 244.5824 240.3039 240.021 240.3638 240.4834 240.7964 241.4064 239.1283 240.9222 241.6113 241.3407 241.0772 241.3549 241.309 241.9321 241.6566 241.5773 241.9442 241.5243 242.1153 241.4941 241.7121 241.1065 238.8056 242.4493 241.3784 241.8006 244.1384 251.5566 253.3595 254.7619 254.8443 252.7525 251.8189 252.207 251.6309 245.7636 251.7021 255.2268 255.8027 259.4092 262.3129 264.1014 265.2787 266.8688 269.0485 270.949 272.2412 271.7182 269.9691 267.9651 265.4641 261.5616 256.9565 255.4518 253.7735 253.8846 255.6316 256.5788 256.6297 255.4984 254.3228 256.1586 255.3755 254.5357 255.3029 259.2065 260.534 262.4962 263.712 265.4786 267.0921 269.0333 271.177 268.5125 264.3335 264.1169 263.6889 271.1699 271.0432 272.0488 270.8047 270.4154 274.1442 275.8226 277.7475 279.3767 281.1968 282.991 284.5172 285.5141 286.117 286.3814 286.5822 286.1104 285.2822 284.9734 284.1025 283.1044 282.3437 281.2173 279.5796 278.189 277.957 278.0497 277.8879 278.2378 278.8195 278.4043 277.7412 279.4874 279.9381 279.4645 278.4541 277.2067 276.1367 278.3097 278.9434 -9999 +-9999 -9999 335.4671 337.8751 340.6651 337.3541 337.107 335.7816 333.0134 335.2211 337.4677 339.617 340.929 342.0194 345.0404 347.0427 348.9451 349.6899 351.2101 353.8236 355.0479 358.0587 361.5248 361.4217 354.993 356.5254 358.9505 358.2715 358.8638 358.2944 357.2765 356.7722 352.9985 350.4781 347.4238 342.5294 337.2559 338.2379 341.0993 341.8494 342.981 342.6784 339.8951 339.6664 341.3842 342.7474 342.0809 340.1008 339.8361 340.4224 339.0831 339.9669 340.7986 340.7397 339.9868 339.9845 340.4675 340.7368 340.6555 339.8117 339.0761 338.9753 338.029 336.3524 333.766 331.7443 332.4008 333.588 332.3949 330.4002 328.7735 326.6897 325.0729 325.0607 324.7735 323.7352 322.2767 315.756 311.5248 311.6955 311.314 308.9753 309.4587 308.503 306.8428 305.1111 306.0937 306.1537 306.9822 308.8289 312.2633 315.2047 318.3904 322.138 326.3201 331.7267 332.5245 334.43 335.3937 334.2728 333.5031 331.9315 330.2808 328.3127 321.3993 319.1436 316.4312 314.9568 313.9382 314.6538 314.7878 314.9625 315.536 314.7723 312.025 309.3938 307.279 306.059 304.9885 309.2097 314.274 317.0896 321.0786 319.8076 321.2584 322.9454 323.9859 324.6628 325.3992 325.6725 325.357 324.675 323.0714 322.3179 321.6086 320.3589 318.4133 317.2924 315.8519 313.485 310.2783 306.2517 306.3052 305.1439 303.1653 301.2814 300.0832 298.4016 296.0131 294.2417 292.2948 291.22 289.6772 287.5644 285.1506 283.2446 280.8492 278.0251 279.886 286.213 287.1812 288.0605 286.5608 282.1541 282.065 286.3865 291.1474 294.8961 299.8472 300.3021 300.5705 298.5734 296.3557 294.392 291.05 285.8475 280.2724 284.5819 284.535 285.3021 285.0832 284.599 283.0201 282.0767 281.4459 278.9785 271.1061 264.9924 260.3329 259.8248 262.0307 262.5548 263.3052 265.1703 267.4202 269.6797 271.6333 273.4988 275.4062 275.0134 272.8301 273.1076 272.0482 271.1544 279.6914 280.5405 279.5596 277.4506 274.8218 271.2892 268.607 263.6314 267.002 277.3286 281.1738 283.3224 285.3298 284.5441 284.28 289.9023 293.438 297.3149 302.9576 303.2571 302.5608 300.6415 298.6509 297.1172 295.8557 296.1681 296.1201 295.4041 294.9492 294.2622 292.4543 289.958 287.3082 285.8118 284.8811 284.8494 284.5715 284.5251 284.2436 284.1243 283.8713 283.8221 283.96 283.013 279.7295 272.808 272.7396 273.1087 271.6588 275.125 277.9144 277.838 273.2278 265.6053 254.1141 253.771 253.7383 253.1067 253.7044 256.2119 259.3586 261.4066 262.6974 263.5992 261.2678 254.6425 253.5138 253.887 254.6069 256.4391 259.2245 261.5106 263.8143 265.4249 266.9359 268.7455 270.7149 272.2152 272.7638 272.8929 273.2508 273.3981 272.1696 271.1284 270.9966 271.3682 271.0547 272.5065 273.5613 275.2773 276.7879 280.1864 281.502 283.1355 284.1266 284.5008 284.5401 284.1552 283.8493 283.9841 284.6522 285.3262 285.7851 285.3829 284.6331 284.3728 283.8392 283.0775 282.2491 280.1339 278.8966 277.9911 277.0908 277.0248 278.3964 277.2762 273.0526 270.4745 266.3532 265.6492 265.091 264.7187 262.5108 259.387 259.0992 259.1332 254.0454 252.4765 253.282 256.1674 259.9082 262.0716 265.6418 268.0934 271.903 273.7191 275.0263 275.5718 275.1327 274.5957 273.7832 271.1288 267.5743 264.585 265.2746 266.082 265.6595 265.2474 264.4545 262.3766 258.6643 258.4301 259.3098 260.4941 262.5131 263.075 263.7884 264.0281 264.2988 264.8281 265.7061 266.4464 266.679 265.5005 263.846 261.7415 258.2308 254.7955 251.148 248.0318 246.4898 246.299 244.4005 245.7913 247.8323 249.1694 249.8688 250.9122 251.6362 250.8745 251.2146 248.0473 240.432 240.2362 240.3358 240.713 239.075 241.6462 241.441 241.4022 241.1399 241.0786 241.453 242.1131 241.2956 241.3199 241.874 242.2418 242.4865 241.8724 241.8175 241.496 238.8273 241.6836 241.3998 241.6941 242.2702 246.481 252.9885 255.0301 256.7321 258.0401 257.6864 256.5875 255.9588 254.9067 251.4017 247.0373 251.0989 254.9665 257.7981 259.838 261.1662 261.8101 264.8932 267.647 269.3936 270.5012 270.2829 269.228 267.8795 265.2405 261.8157 257.0739 255.2142 254.3841 256.5807 257.6243 258.0831 257.6863 256.309 254.8738 254.838 254.8188 254.8389 257.058 259.9996 262.2951 263.7729 265.1837 266.3175 268.0676 270.4607 272.9575 276.0266 268.8558 265.1508 264.9137 264.536 272.7941 273.9446 273.2218 272.5965 274.1942 276.0645 277.2229 278.6267 279.9411 281.8029 283.6093 284.7491 285.9859 287.0778 286.5837 285.9784 285.8926 286.1017 286.0847 285.424 284.741 281.2173 279.5796 278.189 277.957 278.0497 277.8879 278.2378 278.8195 278.4043 277.7412 279.4874 279.9381 279.4645 278.4541 277.2067 276.1367 278.3097 278.9434 -9999 +-9999 -9999 341.5366 340.2677 342.0157 343.387 344.4072 344.1382 340.5497 337.1324 337.2133 340.4482 343.0274 346.4192 351.4829 353.5061 354.9869 353.7603 357.4213 360.0882 361.8636 359.6743 361.5708 360.7608 358.1896 363.4848 364.3115 362.945 362.5855 361.7074 360.2815 359.6571 353.1436 349.8291 345.5974 341.3025 339.0668 341.8661 343.541 344.4756 345.1479 345.0258 343.105 341.187 342.2145 343.4681 342.363 342.3495 342.8943 342.3636 341.3144 341.5989 342.1698 342.2803 341.7426 341.6021 341.5925 341.4999 340.5227 339.7574 339.2135 338.7861 337.7658 335.9004 333.2992 330.8717 330.9355 332.34 332.5668 331.0887 329.342 326.8998 324.6552 321.752 321.535 321.3615 320.8448 317.177 314.4526 310.3574 308.9243 308.1768 307.1625 305.0137 305.796 306.5052 307.127 307.2007 307.6634 308.0168 310.2417 313.0935 317.3629 321.5252 325.856 331.7267 332.5245 334.43 335.3937 334.2728 333.5031 331.9315 330.2808 328.3127 321.3993 319.1436 316.4312 314.9568 313.9382 314.6538 314.7878 314.9625 315.536 314.7723 312.025 309.3938 307.279 306.059 304.9885 309.2097 314.274 317.0896 321.0786 322.0384 322.4392 324.1525 325.1038 325.9524 326.9572 327.2269 326.803 326.479 324.2536 322.4036 320.1289 316.5665 313.9331 312.8031 310.7734 309.178 306.7768 302.8426 301.1059 301.9382 301.1725 300.0377 298.3207 295.9945 294.15 293.3387 290.7564 289.4093 287.3921 285.1279 283.2542 281.5776 278.078 280.383 281.5021 289.6669 291.169 292.1674 290.3406 286.9494 283.1245 284.3984 290.2354 295.1714 300.202 301.0591 301.0082 299.1601 296.0397 291.7864 288.6162 284.6223 284.7624 289.7347 288.9671 288.4752 288.2427 287.1394 286.0024 283.9495 281.5796 277.661 268.1309 264.3275 261.6113 258.6801 260.8754 261.5192 262.4056 263.3427 264.868 267.716 269.5972 271.6684 273.5816 273.377 270.2926 269.8687 266.7001 268.0421 275.6017 276.7894 275.7386 274.0122 273.5975 273.0779 269.4494 262.8157 265.6505 275.5583 278.2342 278.2773 278.5222 280.8458 286.2938 289.8624 293.6952 297.5105 303.9463 303.9374 302.6786 300.1475 297.4787 295.6382 294.7406 294.9739 294.3471 295.476 295.1797 294.1464 292.1181 289.8723 287.0384 284.8765 283.4771 283.3933 284.0121 284.4313 285.2457 285.9975 286.5542 286.118 285.2844 283.5236 280.1118 278.4264 278.1102 277.0248 276.5388 276.7661 279.1385 279.2395 275.3318 267.8757 256.7473 253.2485 253.4491 253.851 253.666 254.9441 257.6481 258.9543 259.9073 261.9675 260.5282 253.3441 253.2592 253.6082 254.4225 256.054 258.5685 260.8487 263.3737 264.2469 265.9303 267.8896 269.5052 270.6156 270.8708 271.024 271.2358 271.2277 269.3457 267.7927 267.6602 268.3436 268.9916 270.1403 272.7939 274.1235 276.0829 278.89 280.4211 282.1493 282.8217 283.5518 283.7367 283.5561 283.6581 283.1247 283.6364 284.3782 284.4245 284.2289 283.3435 283.1418 283.4097 282.6719 282.6718 281.1828 279.7244 278.9759 278.778 278.5877 279.5464 279.9142 278.1343 275.7187 269.3059 266.3179 266.7177 265.5021 262.5719 260.6783 259.1905 257.7659 257.4954 251.1521 251.8704 252.8042 255.9134 259.9498 262.4034 265.4793 268.8084 271.1633 273.5872 274.8737 275.6548 274.995 274.9625 271.9533 268.3792 263.9999 264.685 265.2609 264.8697 264.5308 264.0739 262.1936 257.9943 257.1279 258.0444 259.4082 261.9272 261.9496 262.5705 262.9775 263.2184 263.5589 264.1834 264.9422 265.2538 264.4706 263.2822 260.5645 258.2137 256.0348 253.8672 252.6953 252.3424 252.1942 246.3609 243.1984 245.0865 246.017 248.099 249.4163 250.8063 252.1349 253.6005 241.9664 240.1169 240.1852 240.5483 239.6904 240.6475 241.5284 241.5906 240.8904 241.0026 242.1401 241.9204 241.4995 241.9845 242.274 242.4879 243.4945 245.9571 240.8172 241.2956 238.7983 239.5035 241.8903 241.5003 241.963 243.1275 248.4382 253.6131 255.7576 258.0169 260.1278 260.7635 260.5053 259.8105 259.2344 257.6454 254.9255 250.5685 249.2329 252.2859 254.2956 256.4795 259.8886 263.9675 266.382 268.9214 269.5372 269.3012 268.3004 267.3127 264.7178 260.9816 257.6027 255.6684 255.8469 258.6466 259.239 259.4441 258.6435 256.309 254.8738 254.838 254.8188 254.8389 257.058 259.9996 262.2951 263.7729 265.1837 266.3175 268.0676 270.4607 272.9575 276.0266 268.8558 265.1508 264.9137 264.536 272.7941 273.9446 273.2218 272.5965 274.1942 276.0645 277.2229 278.6267 279.9411 281.8029 283.6093 284.7491 285.9859 287.0778 286.5837 285.9784 285.8926 286.1017 286.0847 285.424 284.741 284.2748 282.2021 280.6888 279.8118 279.4504 279.533 280.2477 280.7042 280.924 280.5336 281.4317 281.8667 281.0551 280.2701 279.6873 278.5441 279.3504 279.3527 -9999 +-9999 -9999 345.0946 344.1048 343.8351 347.031 348.6254 347.7289 345.0405 340.5883 342.3294 346.098 348.6877 351.8803 356.7448 357.5246 359.6204 360.4679 361.8869 363.6126 365.3168 366.624 365.1015 361.7313 363.9879 367.6621 368.2545 366.2952 365.7146 364.261 363.0188 360.635 351.941 346.8595 341.9189 343.371 342.8814 345.3829 346.535 346.8682 347.2122 346.6354 345.1224 343.1513 344.153 344.4555 343.8904 344.2512 344.7336 344.4866 343.624 343.1299 343.4192 342.7687 342.3442 341.5715 341.309 340.9955 340.1215 338.1626 337.377 337.9304 337.3817 335.6639 333.6155 331.1438 329.4588 332.34 332.5668 331.0887 329.342 326.8998 324.6552 321.752 321.535 321.3615 320.8448 317.177 314.4526 310.3574 308.9243 308.1768 307.1625 305.0137 305.796 306.5052 307.127 307.2007 307.6634 308.0168 310.2417 313.0935 317.3629 321.5252 325.856 331.3244 331.8145 333.6681 334.4514 334.1703 333.3124 331.8115 330.6654 329.4333 322.9728 319.2089 317.9427 319.0067 320.7638 321.2274 320.3139 319.5528 319.2153 316.7735 313.0034 309.4357 307.6414 306.3962 306.5114 309.9803 314.7036 317.6231 321.3026 322.619 323.67 324.4253 325.3523 326.5515 327.2319 328.0063 328.1034 326.5381 324.4555 322.2015 318.6404 316.8141 317.6668 314.9192 311.7544 308.6823 306.8112 306.9469 305.0895 301.7073 298.2338 296.564 295.2006 293.5811 294.4746 290.9931 289.8563 288.1486 287.0498 285.4485 283.6827 281.1031 280.3462 281.9402 283.6263 291.1019 293.9243 295.1262 293.4391 291.4419 288.6599 282.9394 289.8844 294.2986 299.5605 300.8867 299.8222 298.4321 297.0351 294.9146 290.9225 286.8802 287.1468 293.0591 292.5237 291.0551 289.7861 288.013 285.5593 282.2223 278.0783 273.6208 272.3736 267.4453 262.1959 257.8479 259.8806 260.6367 261.2353 261.2984 261.3072 263.7966 266.6892 268.4557 269.3991 269.6023 266.2794 264.8555 262.634 264.0253 271.9576 273.678 273.0926 271.0535 271.3552 271.114 266.6423 261.1458 266.3491 271.1973 273.0918 277.751 282.453 285.784 287.7991 290.4731 293.9682 297.6987 304.4825 304.2617 302.6173 299.7198 296.3923 293.5234 292.5378 293.8032 293.6282 293.1921 293.0821 293.764 292.201 289.387 286.3377 284.2497 282.4545 281.7717 282.0989 282.4795 283.5677 285.3715 286.96 287.0182 285.2773 283.7694 282.4523 282.6408 282.3897 281.7473 280.5712 280.1805 280.39 278.6646 274.0049 268.3263 259.0546 254.5523 253.1142 253.2724 252.517 253.5475 255.2356 255.9984 256.7663 259.7548 258.7567 255.9558 253.0023 253.384 254.3347 256.2666 258.7105 260.2116 262.8741 263.6113 265.8381 268.1121 268.7424 269.5981 269.4673 268.9925 268.9201 268.4893 265.9345 265.8572 266.7108 267.6568 268.4108 270.2527 271.4728 273.2136 274.5352 277.7555 278.9114 280.3634 281.7301 282.5831 283.145 283.3615 283.3565 283.009 282.5399 282.3673 282.5249 281.9696 281.3928 281.3613 281.4414 281.7921 282.3451 281.6393 280.4646 279.8299 279.6155 279.8225 280.5372 280.9673 280.7943 278.3319 271.5488 269.0443 266.5611 265.7368 265.1618 264.2371 261.8499 257.8306 256.6316 253.2923 251.21 251.6611 253.9558 256.0938 259.4769 263.2951 265.8424 270.086 273.044 274.2704 275.2271 275.1963 274.9821 272.2481 268.1962 264.7999 264.5822 264.5208 264.1273 263.7804 263.3467 261.428 255.9666 256.1931 256.7013 257.3844 261.4922 261.5092 261.4253 261.4542 261.9316 262.3184 262.7108 263.378 263.8872 263.8127 263.0828 261.3951 259.435 257.7976 257.1881 256.1761 255.4213 255.9146 253.2936 248.7241 242.5826 244.0381 245.0735 246.715 248.3817 249.4736 248.4788 240.7308 240.2389 240.4887 241.1225 239.0663 241.9526 241.7464 240.5309 240.6729 241.9842 241.5729 242.0354 242.2694 242.4295 242.1131 243.4938 246.7198 248.4671 241.9981 240.0711 238.7595 239.5035 241.8903 241.5003 241.963 243.1275 248.4382 253.6131 255.7576 258.0169 260.1278 260.7635 260.5053 259.8105 259.2344 257.6454 254.9255 250.5685 249.2329 252.2859 254.2956 256.4795 259.8886 263.9675 266.382 268.9214 269.5372 269.3012 268.3004 267.3127 264.7178 260.9816 257.6027 255.6684 255.8469 258.6466 259.239 259.4441 258.6435 256.3788 255.0641 254.9413 254.8769 254.8551 257.9977 260.7647 262.5325 263.8535 265.0334 266.3994 268.5598 270.4297 272.4355 274.3846 274.8181 270.1763 265.9091 265.55 265.2206 271.7949 274.8748 274.8136 274.758 276.0637 277.5309 278.9382 280.4575 281.189 281.619 283.0629 284.2404 283.8927 284.3644 284.0167 284.0091 284.3099 284.9209 286.0085 286.0169 285.9526 284.443 282.6784 281.5997 281.1412 281.4435 282.3565 282.9314 283.302 283.2915 283.5108 283.5177 282.8246 281.7569 280.8405 279.9229 280.1077 279.8865 -9999 +-9999 -9999 345.1644 344.8906 344.7562 347.9999 350.1328 350.4842 347.609 343.4665 348.3744 351.3399 353.9952 356.7719 359.4257 361.4442 362.9528 364.2323 364.5934 366.3618 369.6831 370.5592 370.0641 366.4537 368.9149 370.107 370.4402 370.0194 368.6028 366.4552 364.1049 359.8535 346.6761 347.9875 349.3096 348.9191 349.1162 349.2826 349.254 349.4395 347.2122 346.6354 345.1224 343.1513 344.153 344.4555 343.8904 344.2512 344.7336 344.4866 343.624 343.1299 343.4192 342.7687 342.3442 341.5715 341.309 340.9955 340.1215 338.1626 337.377 337.9304 337.3817 335.6639 333.6155 331.1438 329.4588 330.5985 331.9351 330.9831 329.4459 327.1537 324.5026 321.6808 318.6298 317.9199 318.5048 316.0453 314.572 310.2838 307.7998 307.4732 306.0266 306.9044 307.1944 307.5131 308.4148 309.4309 310.0224 309.4005 309.9655 314.8711 316.9329 319.2673 323.9166 328.1511 329.7913 331.4008 332.4709 333.197 332.9663 332.178 330.9345 328.8165 325.933 322.7428 320.2935 323.5898 325.3923 325.1266 323.5673 322.5244 321.8684 318.0017 314.6485 312.1289 308.6865 306.9487 307.003 310.0556 314.2462 317.2499 320.9825 322.1096 322.9394 324.1915 325.2838 326.4588 327.1911 328.2812 328.806 327.1964 326.2553 324.444 321.3877 321.942 319.9397 318.3703 314.2028 313.2245 314.174 309.7259 307.9474 305.902 304.4601 303.7402 303.3062 301.9145 300.5802 297.1099 289.4508 287.4642 285.9164 284.7282 283.9963 280.4819 282.9707 285.3625 284.9018 291.6751 295.481 297.6945 297.6767 296.0269 293.1049 286.0663 290.0224 293.5461 298.6928 300.0042 299.5015 298.7889 297.1841 294.7044 290.6694 291.4337 290.92 294.0729 293.9317 291.9736 288.751 285.7644 282.4637 276.4075 278.9609 279.8398 275.4667 269.8789 262.6829 259.5121 258.4813 259.8481 259.6604 258.9287 258.6085 259.2199 261.8248 265.0276 266.6745 266.1844 262.9993 261.0898 260.1095 260.9434 268.5759 269.9912 269.3712 266.858 266.8655 267.5366 262.2263 263.1786 265.7902 271.4052 274.1886 278.7183 282.8925 287.2198 289.3212 291.395 293.8711 296.8026 303.6771 303.4216 301.7487 299.1497 295.2206 292.2576 290.4045 292.1959 292.4476 292.385 291.0654 290.7036 291.413 288.8674 285.6482 283.2464 281.4225 280.511 280.3283 280.6086 281.8515 283.7835 286.2598 286.9881 286.6967 285.8906 285.117 286.9983 286.7209 285.9643 284.814 284.4362 283.2767 280.062 274.8091 269.1158 261.0088 256.3598 253.2326 253.0328 253.1301 253.4081 253.3328 253.1796 256.0301 258.4487 256.8361 254.0909 252.7888 253.1602 254.5226 255.6489 257.9579 259.1465 262.45 264.1071 265.5656 266.9653 267.8724 268.0066 267.4402 267.4711 267.0177 264.0896 264.5826 265.8152 267.1217 267.9916 268.5027 271.1948 271.7812 272.5076 274.2003 277.4462 278.7052 280.4256 281.9853 282.558 283.2063 283.2928 282.6721 282.5367 281.4809 280.4617 280.4804 280.4436 279.8655 279.4553 280.0163 280.5869 280.9602 280.7177 279.9756 279.7762 279.8741 279.6388 280.2409 281.2926 281.7754 280.8444 275.4618 270.1313 267.6771 266.7759 266.1755 266.3757 262.6186 257.3188 256.6176 256.1677 251.2608 251.3182 251.3861 253.3721 257.5796 260.5995 265.2443 267.9786 273.2799 273.7269 274.4437 274.377 274.7904 272.4731 269.8385 266.356 264.6361 263.8683 263.2301 262.9332 262.3813 261.1024 256.8406 254.8005 255.1781 256.9537 261.1604 261.2517 260.4642 260.4692 260.6275 261.0466 261.4504 261.7866 261.9778 262.1825 261.9086 261.3951 259.435 257.7976 257.1881 256.1761 255.4213 255.9146 253.2936 248.7241 242.5826 244.0381 245.0735 246.715 248.3817 249.4736 248.4788 240.7308 240.2389 240.4887 241.1225 239.0663 241.9526 241.7464 240.5309 240.6729 241.9842 241.5729 242.0354 242.2694 242.4295 242.1131 243.4938 246.7198 248.4671 241.9981 240.0711 238.7595 241.1165 241.7271 245.0798 243.9533 245.3678 249.0692 254.5529 256.7803 259.6852 262.2646 263.5416 263.9683 263.5634 263.3738 261.722 261.2809 259.8387 255.116 250.9765 253.1175 252.7771 257.7595 263.52 264.9877 267.7134 268.288 268.3098 267.8049 266.4301 264.5982 262.5707 259.9051 257.3397 259.012 260.4089 260.9453 260.3857 259.0551 257.2301 255.0801 254.955 254.8609 254.7748 255.8563 259.4308 261.4865 262.1778 263.4884 265.275 267.58 268.9874 270.6678 271.9572 272.9246 273.2524 271.9719 266.32 266.2126 266.3806 270.2906 275.8181 277.1223 276.7112 277.703 278.9468 279.6857 279.6257 280.8484 281.0111 281.667 282.544 281.7198 281.8213 282.0945 282.7833 284.1334 285.1102 285.6165 285.1689 284.6999 283.8775 282.891 282.4576 283.4358 284.4781 285.1947 285.7508 286.1082 285.4216 285.153 284.6322 283.66 282.3493 280.7383 280.9241 280.8076 -9999 +-9999 -9999 342.5197 342.3576 342.6797 348.47 351.7883 353.8353 352.1999 349.8857 352.1708 356.1633 357.3203 360.0207 359.4257 361.4442 362.9528 364.2323 364.5934 366.3618 369.6831 370.5592 370.0641 366.4537 368.9149 370.107 370.4402 370.0194 368.6028 366.4552 364.1049 359.8535 346.6761 347.9875 349.3096 348.9191 349.1162 349.2826 349.254 349.4395 349.5579 348.1589 346.1819 345.0356 345.4329 345.8866 345.8731 345.9803 345.5928 345.6843 344.6035 344.083 342.9929 342.4711 341.4098 340.3243 339.5959 339.6859 339.2863 336.4308 336.2501 337.1398 336.663 335.5558 333.2847 331.4857 328.7966 328.601 330.3353 329.8641 328.5032 326.8851 324.2083 320.914 316.9784 315.4344 315.1337 312.6333 311.0443 309.1112 306.555 307.6709 309.4587 312.9775 313.446 311.2515 311.0579 312.4162 312.8311 313.4841 313.0747 314.1584 317.1656 319.434 321.8932 327.4695 328.875 330.1067 331.0896 331.4138 332.0957 332.3475 331.2705 329.5269 327.6955 325.2613 323.2831 326.8515 329.0959 328.4181 326.213 324.347 322.508 318.9747 316.3733 313.7965 310.7779 307.9614 307.3688 309.4556 311.8332 314.4505 319.181 320.9212 321.6396 322.8684 324.5251 326.0471 327.5308 328.8272 329.53 328.7145 327.7886 326.2637 324.5621 323.1874 322.2927 319.7366 319.0617 318.3249 315.6346 313.395 311.6818 309.7182 308.027 307.6031 307.0142 306.0681 305.0143 302.4891 293.3539 288.1045 285.7032 283.8108 280.5291 283.2263 285.8985 287.793 286.9823 290.3729 295.125 297.8317 299.358 298.8615 296.7676 292.199 289.0616 290.6809 297.2939 299.0523 300.3032 299.2213 297.3883 295.0905 295.1964 295.682 294.8828 295.8452 294.739 291.7631 288.9078 285.6934 282.6741 282.4669 283.5144 283.3287 278.2406 273.0303 266.8165 260.8186 257.4033 259.1357 258.901 258.5402 258.3399 257.9181 258.532 260.3123 262.7775 262.9434 259.3349 258.2456 258.0708 258.1998 264.3028 265.6994 262.6082 260.5785 260.5265 259.8174 259.3914 261.4236 263.6356 270.2317 274.2467 278.3313 282.5206 286.1464 288.3148 289.8628 292.4352 295.2287 301.5282 302.2496 301.0738 298.5788 295.4045 290.997 288.6523 289.7706 290.9099 293.3042 291.6174 288.4478 289.7363 288.2339 285.3427 282.0009 280.6443 279.009 279.0429 279.2902 280.3827 282.6868 284.522 285.2889 286.6948 287.6105 288.0855 289.4808 290.169 289.2133 288.6696 287.0677 286.3867 283.6559 278.659 272.419 262.3139 259.0284 254.8144 253.3428 253.0242 252.8474 252.8679 252.869 252.8496 255.8785 255.5932 252.6063 252.576 253.1481 254.2088 256.0565 257.8727 259.1207 262.002 263.6672 264.9515 265.6524 265.8879 266.4333 265.9037 264.9437 263.1359 263.3969 264.9816 267.3172 268.8856 269.6491 271.5438 272.8394 273.9915 275.8002 276.9781 278.3348 279.6476 281.1606 282.0742 282.8755 283.5316 283.5529 282.7685 281.8564 280.7526 279.3435 277.9826 277.8692 278.049 278.2237 278.6696 278.9891 279.3216 279.3985 278.7597 279.0211 278.8019 278.8513 279.3577 280.1935 280.5215 280.4046 278.845 273.45 273.2995 274.2113 275.1574 270.4157 264.6869 258.4684 256.688 255.4734 252.3152 250.5639 251.3861 253.3721 257.5796 260.5995 265.2443 267.9786 273.2799 273.7269 274.4437 274.377 274.7904 272.4731 269.8385 266.356 264.6361 263.8683 263.2301 262.9332 262.3813 261.1024 256.8406 254.8005 255.1781 256.9537 261.1604 261.2517 260.4642 260.4692 260.6275 261.0466 261.4504 261.7866 261.9778 262.1825 261.9086 261.0451 260.2111 259.9544 259.519 258.5519 257.4499 257.1964 254.8454 251.0164 244.5549 241.8522 241.8688 243.1248 245.0322 245.7373 239.9727 240.1812 240.7071 241.1619 238.974 241.7524 241.7195 241.5529 240.1646 239.6306 241.6109 241.9279 242.1868 241.9849 242.0469 243.1201 246.6288 250.2175 250.5423 242.3195 238.6446 239.9754 246.4526 246.4587 245.563 245.6006 246.1146 248.3682 255.1478 258.1006 260.5598 263.1432 265.3004 266.713 266.8594 266.8659 265.5411 266.2042 265.7407 263.6382 260.8616 260.2095 260.4182 261.7645 263.3186 264.4347 267.0946 267.803 267.3904 266.9122 265.885 264.8611 262.3622 259.7738 258.3488 260.332 261.7519 262.0746 260.9493 259.4263 257.508 255.167 254.9277 254.8306 254.7628 255.3655 257.1105 259.9734 261.5897 263.3424 264.7768 266.2997 267.8541 268.9297 270.2018 270.3792 270.6281 271.1739 271.8163 267.1107 267.1929 267.3585 268.106 277.58 277.4514 277.1707 277.6356 278.1595 278.6035 279.3336 279.343 279.7708 280.4202 279.492 280.0387 280.7247 281.9 282.7302 283.681 283.5624 283.0976 283.7584 283.3064 284.3299 284.5636 284.7586 285.0908 285.8447 286.2905 286.5233 286.8958 286.6926 286.0504 284.9879 283.4609 281.919 281.7736 281.7811 -9999 +-9999 -9999 342.5197 342.3576 342.6797 348.47 351.7883 353.8353 352.1999 349.8857 352.1708 356.1633 357.3203 360.0207 363.14 364.8975 366.6717 368.3872 369.3771 370.7761 373.281 374.8022 376.4105 370.1571 371.5696 373.6937 372.8465 372.1715 369.9407 367.1107 362.9271 357.7588 349.6236 352.7778 353.1265 352.9528 352.3598 352.1312 352.039 351.8904 351.2675 349.4695 347.9763 346.9417 347.2454 347.5389 347.8779 347.1159 346.3845 345.7949 344.0103 342.3353 341.6723 340.9226 339.9002 338.2193 337.4687 337.8196 338.146 335.3516 334.6374 335.7583 335.7637 334.4281 332.5257 330.2806 327.8758 326.8514 328.3453 327.9835 326.8956 326.016 323.7552 318.3547 313.778 313.5143 312.9578 308.7815 307.338 308.4852 308.8561 312.2838 315.3927 317.4706 318.895 318.61 315.4797 315.119 315.4854 316.5475 316.8707 313.9171 315.4951 318.1931 320.1643 325.3116 326.7466 327.761 328.7903 329.5338 330.5598 331.8242 331.7351 331.2623 328.3149 325.8564 326.2201 329.4856 331.0764 330.4518 327.5909 324.9027 322.0453 316.8463 315.3633 314.3285 312.3491 310.0797 307.5942 309.6302 315.0087 316.3362 317.3204 318.4596 320.4386 322.7883 324.6788 326.4421 328.0751 329.4892 330.3675 330.0795 329.2181 328.0528 326.621 325.1587 324.1044 323.0232 322.0425 321.1384 318.5725 316.0209 313.891 312.2608 311.16 311.0609 310.8186 309.6187 307.6403 299.8861 292.9551 286.7266 283.4634 283.0862 284.6635 287.2484 288.9341 290.0605 290.6775 289.4228 294.5344 298.0133 300.2206 300.6868 299.6212 297.2966 293.1377 291.43 295.8492 298.9448 300.5339 300.8664 298.4897 296.8128 298.6394 299.4534 298.5409 297.2303 295.9892 294.2082 291.3845 288.9384 286.3279 287.3228 287.2091 286.5197 280.4814 276.1718 270.8061 264.4525 257.3078 258.9508 258.7509 258.5526 258.4458 258.2206 258.0767 257.9231 257.9492 257.719 257.7019 257.5443 257.5066 257.4109 260.3546 262.096 258.5393 257.4568 257.8686 258.4897 258.6392 258.2422 259.0616 268.0286 272.772 276.2631 280.2314 283.1736 285.7421 287.3326 290.0393 292.9812 299.9023 301.7077 302.1831 299.758 295.4328 289.8068 287.0493 286.8914 289.1482 293.3214 291.8979 289.8638 284.5564 286.4425 284.6378 280.927 278.7066 277.3723 277.1342 278.1683 278.7723 280.8581 282.4331 283.221 284.8293 286.508 288.5783 291.2121 291.7836 291.6887 291.1346 289.4496 287.9239 285.6352 279.2939 271.7159 263.3919 260.3737 255.4617 253.8424 252.8485 252.5513 252.5879 252.4707 252.1595 253.6257 253.3451 252.2861 252.6766 252.4458 255.002 256.3241 257.5724 258.7504 262.0641 263.4213 264.0178 263.5727 262.8801 263.3135 262.9394 261.3406 261.9542 266.2668 267.6948 268.4784 269.5097 270.6505 272.0878 273.3965 274.7014 276.2666 278.8384 279.5602 280.3648 281.105 282.1206 282.8993 283.5316 283.5529 282.7685 281.8564 280.7526 279.3435 277.9826 277.8692 278.049 278.2237 278.6696 278.9891 279.3216 279.3985 278.7597 279.0211 278.8019 278.8513 279.3577 280.1935 280.5215 280.4046 278.845 273.45 273.2995 274.2113 275.1574 270.4157 264.6869 258.4684 256.688 255.4734 252.3152 250.5639 250.6826 254.649 255.3983 259.4768 262.7451 265.6763 270.5358 270.9921 271.8299 271.7831 272.6895 272.6341 270.8569 267.2042 263.2562 263.3326 262.5128 262.08 261.2242 260.3386 256.6904 253.5575 254.3649 257.1097 260.6974 260.8272 259.5764 258.6787 258.9818 259.4364 259.595 259.8049 260.1237 260.3552 260.2219 260.5605 260.1193 259.9931 259.9711 259.4099 257.813 255.8 251.0275 246.9017 243.0913 244.2129 241.1464 240.8962 242.3443 242.8843 239.7288 240.4659 239.7229 239.828 239.0584 241.2494 241.5739 239.0107 242.8494 242.6822 239.9104 241.7221 241.6242 242.1903 244.2058 247.516 250.6069 252.3436 250.7999 242.8718 238.5586 245.7762 247.3827 246.8248 246.235 246.2417 247.181 249.581 255.6008 258.3405 260.8273 263.1237 265.7947 268.0003 269.1886 269.5488 269.1789 269.371 269.4003 267.6613 265.9935 265.4988 264.9884 264.6904 265.4661 265.1624 267.3224 267.3706 267.0006 265.7389 265.075 264.0821 262.4813 259.9804 259.3076 262.0821 263.0269 263.1891 261.7561 259.9098 258.6151 257.1158 255.3229 254.7658 254.7546 254.879 255.5708 257.5299 260.3428 261.8005 262.9372 264.2267 265.3128 266.3482 267.7692 268.2597 268.5183 269.5358 270.8632 271.7514 269.2572 268.0208 267.8945 273.461 276.8651 276.6188 276.7188 277.2664 277.2897 277.2473 277.5268 278.3046 278.4471 277.7808 276.8009 278.0543 279.3051 280.7354 281.9128 281.8912 281.4232 282.2518 282.198 282.7576 283.5291 284.0101 284.4827 284.9299 285.6279 286.3546 287.5008 287.4116 286.5262 285.0993 284.0038 282.9262 282.7097 282.9346 -9999 +-9999 -9999 338.0397 338.971 345.922 350.1844 354.0521 356.4544 357.498 357.1123 356.8596 358.8739 361.1905 363.5123 365.4127 366.0312 366.8173 368.3972 370.1672 372.0623 373.894 373.9665 375.1223 372.6693 372.7116 374.9631 375.4801 373.5458 370.6949 366.8414 362.5512 356.069 356.2261 356.7284 356.6702 356.6395 355.3324 354.9684 354.8286 354.0408 353.1839 350.5067 349.7599 349.491 349.3883 349.1058 348.3068 347.429 346.5169 345.2155 342.1096 340.7129 339.4928 339.8263 339.3776 337.6245 335.5849 335.495 336.3013 333.7896 332.9139 334.2835 334.0204 333.1396 331.3918 328.6426 327.1547 325.6682 326.4969 325.723 324.5928 324.226 322.2417 316.5326 311.896 310.835 311.2346 308.537 308.4563 309.196 312.1265 315.813 317.5771 319.8796 321.1108 322.2711 320.26 318.5669 318.2354 317.9569 318.9663 318.3963 315.0755 315.6224 318.066 321.8781 322.859 323.7749 324.8155 327.082 328.7039 330.6997 332.024 331.8349 329.4893 327.6113 328.4744 330.8513 331.81 330.3087 328.2166 325.3698 322.403 319.0432 317.7654 314.8611 313.1959 309.9713 307.9331 309.9801 314.2933 317.6844 320.4633 321.1846 321.5758 322.8106 324.9815 326.8636 328.6578 329.8569 331.1276 331.719 330.7234 329.5888 328.1786 327.2496 325.6234 324.3604 322.8794 321.1226 317.4247 315.566 313.6125 311.9398 310.9872 311.8988 310.9196 307.919 304.7241 295.1941 289.5934 284.5517 285.7115 286.0338 286.9774 289.5138 291.1541 292.8829 293.9423 289.3915 293.5509 297.9929 300.73 301.6776 301.4472 299.3677 296.5679 294.1052 296.2305 299.3896 300.5487 302.301 301.1301 300.1047 301.4191 302.3355 300.9904 299.1399 298.4474 296.3416 293.7504 290.3193 290.4618 290.2817 289.6168 287.9502 281.5424 277.4814 271.8928 265.812 259.4529 259.3287 258.5689 258.1987 258.0746 258.0698 257.9313 257.8566 257.8033 257.7797 257.764 257.7061 257.5988 257.4692 257.5486 260.2147 257.9669 257.1778 257.1687 257.3593 257.3357 257.082 257.5026 266.2654 270.2934 273.9242 277.0649 279.2846 281.7837 284.7282 287.3873 291.7898 300.1781 303.3664 304.1395 301.5786 296.3027 289.443 281.5212 284.5251 287.9807 293.3309 292.4412 290.2314 287.3416 281.6064 280.9885 279.8239 276.8968 274.9245 274.5755 275.3938 276.7229 278.401 279.8272 282.1296 284.0159 286.1795 288.7672 291.6811 293.0198 292.9706 292.6051 290.5485 287.9207 287.3463 282.5284 277.2993 270.1956 265.5746 260.6726 257.4236 256.0483 254.0385 252.4504 252.3357 252.2227 253.6257 253.3451 252.2861 252.6766 252.4458 255.002 256.3241 257.5724 258.7504 262.0641 263.4213 264.0178 263.5727 262.8801 263.3135 262.9394 261.3406 261.9542 266.2668 267.6948 268.4784 269.5097 270.6505 272.0878 273.3965 274.7014 276.2666 278.8384 279.5602 280.3648 281.105 282.1206 282.8993 283.316 283.4814 282.9098 281.1542 281.0396 278.6537 276.4875 275.6488 276.3537 276.6488 276.9627 277.2372 277.6776 277.5235 277.4905 277.9831 277.6013 277.5475 277.9369 278.5759 278.551 278.4078 277.813 277.1088 276.3661 275.8661 275.5061 272.1788 265.7625 259.7881 256.7124 255.5625 253.53 250.128 250.0631 251.3383 253.6307 257.406 259.8422 262.667 265.4433 266.8054 266.9206 267.4692 268.0444 267.8865 267.5452 266.9786 262.6102 262.5577 261.8559 261.3179 260.5042 259.9425 256.0748 252.2518 253.3641 256.1273 259.8838 260.3978 259.1657 257.9809 257.5251 258.1578 258.1466 258.0287 258.1798 259.373 259.1673 258.8464 259.0809 259.1767 258.8817 258.8641 257.7177 254.2419 245.8221 246.8599 252.5976 254.8413 248.9183 241.1805 241.3206 239.7414 240.0403 241.7213 241.6798 241.1696 241.5088 241.8584 242.7092 242.6315 244.1199 244.2141 241.4721 241.5662 242.7297 245.3716 248.6633 251.4683 253.0283 254.4165 251.5909 239.4787 238.7444 245.6298 246.4344 246.7912 246.9915 247.8534 248.9083 251.1352 256.4405 258.8895 261.1727 263.5859 265.951 268.2387 269.4239 270.0436 270.1362 271.611 271.8797 270.7796 268.7512 267.7123 267.6457 267.3522 267.2388 267.0961 267.1313 267.1671 266.4478 265.6099 264.5917 263.9106 262.8207 260.5829 260.1565 263.5665 264.4079 264.2363 262.735 261.0084 259.2849 258.6393 258.5497 258.2478 254.9748 254.914 254.963 256.3302 258.6524 259.8543 260.9637 261.9599 263.3269 264.449 266.1685 267.4291 268.6006 270.1768 271.3882 272.6298 273.0953 272.1346 268.6201 268.5844 270.0287 275.6635 276.012 275.8417 275.6712 275.6604 275.8848 276.2003 276.382 276.23 275.8538 275.9199 276.1573 276.1147 276.0029 276.4476 277.4355 279.6026 280.2403 281.5278 282.3079 282.6982 283.1464 283.7454 284.9538 285.9913 287.7505 287.9083 287.2701 286.1576 284.5117 283.5832 283.1366 283.4499 -9999 +-9999 -9999 333.9746 336.0482 343.878 349.7351 353.6446 355.6577 355.4245 357.1814 358.6122 360.0514 361.7651 363.0945 363.1118 362.6819 363.4708 365.8956 368.2095 370.203 369.5919 368.7507 371.9125 375.5851 373.9999 374.919 375.7768 374.5975 370.8946 367.6378 361.4166 356.9958 362.4102 360.678 359.8179 359.4525 357.874 357.7008 356.8992 356.1852 354.6615 352.5175 351.6456 351.2628 350.4278 349.6525 348.7724 347.5143 346.0206 344.3039 340.4133 339.2866 337.5839 337.5416 337.9842 336.5363 334.7635 333.0101 334.01 332.2871 331.0558 332.5847 332.0432 330.6642 329.713 327.9059 325.3759 324.5313 324.6985 323.5532 321.7339 321.5998 320.1061 317.9806 315.5452 312.4419 307.8722 308.9995 311.568 316.2853 319.2835 320.4594 321.2038 322.042 324.1153 325.0362 323.479 322.5327 321.9472 320.5548 320.5496 321.0657 319.824 316.0985 316.9718 319.7693 321.5867 322.9688 326.2293 326.8201 327.8302 329.7369 332.4647 332.8851 331.8642 330.9122 330.6646 331.7219 331.2911 328.9397 326.5184 324.2656 322.2805 320.8768 319.4535 316.6742 314.6514 311.2466 308.4988 310.1873 314.9073 318.2438 321.9659 322.8429 323.735 324.5364 325.3019 327.146 328.6426 330.1419 331.1318 332.7575 331.9605 330.2473 329.0899 327.0474 324.7533 323.6571 321.7756 319.8958 315.1224 312.7827 311.0323 309.0678 307.7192 309.2421 307.3958 302.0134 298.5276 289.7104 285.4467 287.2393 289.2605 289.5552 290.809 291.8091 293.4798 295.0805 295.3356 291.7999 292.368 298.5064 301.72 302.9403 302.8064 300.5348 299.0268 298.2126 295.7582 299.9525 301.7121 302.9498 303.671 303.1123 304.4254 304.1758 302.8172 301.5093 300.5389 297.9962 295.5823 294.623 293.9955 293.2834 291.6967 288.2885 282.5314 278.5722 273.7764 267.1774 259.1502 256.8568 258.9121 258.6327 258.2694 257.9676 257.8981 257.9914 257.9255 257.8286 257.7635 257.6731 257.5322 257.4703 257.2311 258.1718 257.526 257.1863 257.2459 256.7577 256.8323 256.7799 256.6976 265.0973 268.2004 271.0395 273.7467 277.141 281.4448 285.2215 287.9139 291.9508 300.4431 303.3968 305.1633 302.599 296.2145 288.892 281.9995 282.3599 286.9993 292.7958 292.6537 291.3654 288.6071 281.6064 280.9885 279.8239 276.8968 274.9245 274.5755 275.3938 276.7229 278.401 279.8272 282.1296 284.0159 286.1795 288.7672 291.6811 293.0198 292.9706 292.6051 290.5485 287.9207 287.3463 282.5284 277.2993 270.1956 265.5746 260.6726 257.4236 256.0483 254.0385 252.4504 252.3357 252.2227 253.0468 252.2385 252.4028 252.8948 253.1941 254.4129 255.9703 257.2127 258.877 262.0667 262.8865 262.6302 261.1498 259.5986 259.366 259.4075 260.5046 263.9684 266.9294 268.2979 269.3759 270.4103 271.7555 272.5994 273.609 274.8569 276.3116 278.8205 279.2199 280.2089 280.7403 281.5806 282.4449 282.6587 282.839 282.475 281.2047 280.5649 278.4273 275.8199 274.4379 274.1126 274.4516 274.5412 275.2491 275.6991 275.765 276.2638 276.4161 276.0368 276.1128 276.5037 277.0438 277.2172 276.6822 275.3937 275.1103 274.9781 274.2624 273.5034 272.6956 267.5157 260.8706 257.5305 258.6821 254.7158 250.6045 249.8028 249.6831 251.1592 252.5717 256.6743 259.4651 262.2069 262.7763 262.9793 263.0477 263.5471 263.502 263.14 261.8273 261.8734 261.8182 261.2695 260.5731 259.575 257.4177 253.9358 251.3333 253.1664 256.1058 259.3808 260.0232 259.1865 257.8281 256.8099 256.5326 257.2452 256.9253 256.4931 256.9962 256.7934 256.7535 256.9061 256.7254 257.1355 257.6228 257.2479 254.9682 248.8297 252.7866 256.1877 257.5183 250.3921 242.382 239.9581 241.1505 240.9648 240.9148 241.3561 241.3931 242.6806 243.9392 243.6298 242.1345 243.8164 243.6234 241.0757 245.606 247.9023 250.2696 252.5003 254.4481 255.6375 255.8329 253.1383 238.2833 239.8181 245.3861 245.862 246.4134 247.2759 248.3085 249.8998 251.7069 257.334 259.6309 262.0418 263.8799 265.5001 267.1837 268.1566 268.4029 269.181 271.9678 271.9365 270.7267 269.682 269.3248 269.0064 268.8168 268.6872 268.3447 267.1249 266.3442 265.6546 265.2565 264.3172 263.8456 263.011 261.6505 260.6866 264.1734 264.9201 264.1378 262.8533 261.3228 260.9319 260.7722 260.9382 261.3332 258.3608 256.0551 255.0209 255.8671 256.8308 258.9764 260.2925 261.8369 262.975 264.4884 266.0275 266.8508 267.8248 268.1884 268.7148 270.1388 271.4627 273.087 273.7844 269.3555 269.0373 269.0439 272.5755 274.2969 274.2497 274.4752 274.7331 274.8457 274.7722 274.76 275.7073 276.1954 276.4117 276.2991 276.3917 276.2617 276.1732 276.0115 277.933 280.4265 280.9975 281.219 281.8164 282.7309 283.8101 284.9378 287.2299 287.6099 287.365 286.7609 285.4167 283.4333 283.4517 284.0072 -9999 +-9999 -9999 337.7511 340.5849 346.1795 349.2315 351.5556 353.5963 354.9892 356.3367 356.7021 357.5977 358.8622 359.9128 358.9847 358.1674 361.04 362.7804 364.8558 365.0299 364.4128 366.1255 370.623 375.1778 375.4606 375.5554 375.8533 375.1958 371.0607 367.4261 359.5447 363.4114 365.8075 364.9168 363.5817 362.2148 361.1839 360.2169 358.9871 357.713 356.701 354.2095 353.3101 352.615 350.6926 348.8817 348.1052 347.176 345.4334 344.1504 340.1148 338.1285 335.9123 334.3884 334.7215 333.9463 332.5217 330.9182 331.6812 330.0656 329.5251 330.5144 330.0055 328.4115 327.4153 325.3323 323.3348 322.752 322.3551 319.1256 317.4883 317.3569 315.9263 314.7345 313.418 309.7432 309.6151 314.8929 320.4763 324.2668 326.1228 326.3808 325.7991 325.2269 326.9579 328.0705 327.0554 325.9504 325.3197 324.1994 322.2396 323.3857 324.2832 318.8772 317.1515 322.515 324.801 325.8748 326.8846 328.6407 329.6981 330.5345 332.9419 333.7644 333.9973 333.649 333.0135 332.9764 332.2964 330.1824 328.9947 327.0722 324.7725 322.533 321.1601 318.4898 316.5064 312.9931 309.7387 310.1007 313.725 316.8549 321.1228 323.3881 324.8119 325.6497 326.3568 327.35 328.9587 330.4551 331.5683 332.9997 332.7971 330.3151 328.84 326.5103 322.3889 320.6112 320.2286 317.8238 311.6284 309.6129 307.7507 305.4321 303.5019 302.151 297.8843 294.3567 292.4637 287.3196 288.8875 291.1794 293.5254 295.2357 295.7308 295.4847 295.5733 297.1026 297.6819 294.1359 298.6123 299.5566 303.0451 304.3054 304.0386 302.1923 300.2399 299.9894 296.8796 300.6485 303.2374 303.5216 305.582 305.5516 306.0606 305.7802 304.3336 303.2469 302.4435 299.7565 298.2622 297.0865 295.6887 294.3513 292.2885 289.7635 283.9195 279.0193 272.5905 265.6354 259.2688 259.274 258.7299 258.5097 258.2677 258.1133 258.1369 258.0768 258.0812 257.9372 257.9133 257.7731 257.571 257.394 257.2311 258.1718 257.526 257.1863 257.2459 256.7577 256.8323 256.7799 256.6976 265.0973 268.2004 271.0395 273.7467 277.141 281.4448 285.2215 287.9139 291.9508 300.4431 303.3968 305.1633 302.599 296.2145 288.892 281.9995 282.3599 286.9993 292.7958 292.6537 291.3654 288.6071 286.382 282.6776 279.0342 275.7894 272.3768 271.4953 272.5977 275.0519 277.6522 279.779 281.6093 283.5608 285.5716 287.8786 292.0294 293.782 294.3378 293.3393 292.4489 290.3455 289.6976 286.8336 282.0633 275.1183 270.7481 266.0438 262.2958 261.2124 259.3572 255.6884 252.4495 252.2077 252.7826 252.2741 252.6259 252.2469 252.2889 253.3237 254.23 255.5721 258.0793 261.3843 261.4501 259.8929 257.9853 257.82 260.0311 261.7057 263.5019 263.9456 267.3843 268.9749 270.3629 271.2728 271.9975 272.55 273.3334 274.5227 275.6893 277.5 277.4993 278.5052 280.4844 281.144 281.9969 282.1867 281.9692 281.7274 281.7264 281.0089 278.8239 276.3425 273.7896 272.0938 271.3531 271.4567 272.9351 273.9142 274.0943 274.6506 274.6683 274.3759 274.7039 274.8116 274.8877 274.8712 274.8795 272.4069 270.1168 268.3613 267.9462 268.0359 270.0536 269.3664 262.8045 257.4551 257.6975 254.1095 253.7892 250.4736 249.4922 249.9328 250.9352 251.3131 254.8557 258.0886 258.016 257.8002 257.3365 256.9083 258.0294 258.764 259.589 259.9977 259.7562 259.4674 259.39 258.3294 256.7668 253.5751 250.6944 252.1481 255.4558 258.5482 259.2845 259.0385 258.0845 256.8234 255.8291 255.799 256.5022 255.7832 254.8694 254.7936 254.6587 254.6233 254.7398 255.2706 256.2159 257.3501 256.4917 253.9856 254.3059 256.1946 255.7851 246.7739 241.1131 239.6555 240.8552 240.2336 240.8024 241.6049 243.6093 244.0798 243.6897 243.6722 242.1164 242.4001 241.438 242.7013 248.3328 250.4744 252.3529 252.6546 251.0057 248.8029 248.9384 250.1922 238.298 243.7986 245.5434 245.9143 246.5179 247.369 248.6243 250.3817 251.9621 257.4316 259.5044 261.3955 263.3345 264.9287 265.579 265.9995 266.5069 267.9683 269.9507 269.6177 268.9052 268.9116 269.5999 269.9123 269.9861 269.6497 268.7081 267.007 265.9341 265.1646 264.3974 263.8188 263.2973 263.0074 262.2875 261.7858 264.2681 264.6791 264.3514 263.3796 262.5522 262.5775 262.5489 262.9614 263.5745 262.6592 258.7894 257.3438 254.8051 255.6772 256.8502 258.306 259.6309 261.1227 263.9721 264.2999 264.8141 265.4964 265.347 265.2206 266.6322 269.8443 271.821 272.8994 273.6791 269.8314 269.9171 270.0594 269.7404 272.5605 273.0719 273.3707 273.029 272.8473 273.197 275.6465 276.3658 276.3002 276.27 276.2672 276.2273 276.0609 276.0642 276.1284 278.8939 279.7527 280.4861 281.0762 281.9328 282.7654 284.0647 286.6541 287.0023 287.1521 286.6038 285.3994 283.5656 283.5502 284.0571 -9999 +-9999 -9999 342.0878 344.2918 348.8246 351.1275 352.2543 352.9762 353.5306 353.5385 353.2511 354.1073 355.4546 355.9424 353.3521 355.8107 358.7539 360.188 359.3624 358.2458 361.3787 365.784 371.8043 373.7116 375.0024 377.3376 376.6439 375.736 372.5958 364.8315 366.4088 368.9019 369.2863 369.4274 367.8234 364.8705 363.2999 361.4895 361.3299 359.7082 358.2093 355.4333 354.2687 353.1561 350.8786 348.6908 347.6255 345.5313 344.3181 343.3758 339.493 337.7029 335.6 332.308 330.5612 329.209 328.4039 328.363 328.9278 328.1502 327.7276 328.5139 327.8132 326.7454 325.0447 323.0865 321.2224 320.7062 319.2374 315.9894 314.8956 314.3044 313.2082 311.3898 310.5632 310.2385 309.7815 319.5466 325.2628 329.2741 331.6566 332.4744 331.2568 328.8408 330.2626 331.2433 330.35 329.1126 328.3341 327.2405 325.1865 325.1493 326.1477 323.0623 318.6452 324.357 326.8306 328.3278 329.6416 329.6948 330.6447 332.8637 333.5911 334.5967 336.3643 335.7617 334.9908 334.6034 333.8954 332.7178 331.5976 329.8273 327.386 324.3885 322.4463 319.8506 317.8211 315.4336 311.3541 310.203 311.7639 314.8136 319.6989 323.5141 325.4779 326.6502 327.2957 327.7841 328.8049 330.0767 331.0108 332.7119 332.5699 330.4212 328.5426 326.1643 323.2077 318.6506 315.834 316.6254 311.3418 306.2117 303.6935 301.1199 298.5428 295.6138 292.196 289.5651 290.7901 298.0296 299.6253 299.592 298.4155 298.3007 298.9567 298.8683 298.1927 299.2738 300.4506 296.471 295.6398 299.1578 303.0977 304.8473 305.291 303.4876 301.7948 301.3871 298.6874 301.6857 304.1944 305.6205 307.2858 307.5384 306.0606 305.7802 304.3336 303.2469 302.4435 299.7565 298.2622 297.0865 295.6887 294.3513 292.2885 289.7635 283.9195 279.0193 272.5905 265.6354 259.2688 259.274 258.7299 258.5097 258.2677 258.1133 258.1369 258.0768 258.0812 257.9372 257.9133 257.7731 257.571 257.394 257.1975 257.1721 256.7355 255.2351 257.2977 256.2591 256.6624 256.686 257.3625 263.8913 266.7515 269.4169 272.2674 276.1229 280.1361 284.6827 288.4577 291.4908 299.6425 302.5462 303.8096 300.9344 294.9008 287.6974 280.7386 279.518 286.2336 292.2703 292.8262 291.7214 289.7271 287.2947 284.2921 280.8186 276.4153 271.0653 267.6022 271.6246 274.5508 276.6083 279.1971 281.0183 281.7838 283.1531 285.1106 291.3824 293.8255 295.082 295.2263 293.839 292.5319 292.0961 289.9255 286.1828 278.1017 274.505 270.9794 267.0504 264.8788 262.8841 259.7091 256.2095 253.6035 251.7729 251.8954 252.1162 251.8916 252.0169 251.9523 251.9091 254.2698 257.0392 259.4451 258.1433 256.058 256.8395 260.7606 262.1919 262.9231 264.3092 264.6645 267.8301 269.2224 270.0873 270.2356 270.7639 271.7719 272.53 273.0323 274.2302 276.0637 276.1762 277.6633 279.0973 280.1427 281.2329 281.5498 281.2463 281.0647 281.9464 281.5092 280.3413 278.2722 275.7111 272.8405 269.7086 269.1133 269.9496 272.6999 273.0919 272.9857 272.949 272.8646 272.5586 272.8073 272.7083 271.9979 272.3181 270.5822 268.6909 267.3727 267.0689 266.8497 267.6871 267.6664 263.4962 256.7087 255.0276 254.0996 253.2084 252.1457 250.2351 249.0294 249.4724 250.0311 251.9483 253.4207 254.3555 254.3649 254.908 255.4813 256.4082 257.029 257.7162 258.2369 258.2315 258.2684 258.1845 257.3998 255.9607 253.0369 249.9074 251.3381 254.2372 258.105 258.548 258.6134 257.895 256.7225 255.3841 254.3738 255.0327 255.5453 253.0962 252.6592 252.3523 252.2944 252.6118 253.6154 254.9057 256.1184 256.6957 256.3911 256.2386 256.8376 252.3816 242.4499 241.3818 239.9315 240.2995 240.0394 241.5069 243.6973 243.9942 243.4211 243.3844 242.9285 241.9366 239.7006 239.6336 243.7762 245.3638 248.6393 248.5873 244.0013 240.2354 239.8746 239.759 241.6977 238.092 248.5816 247.3003 247.1546 247.187 248.0318 249.203 250.4702 251.6111 256.8681 258.9575 261.1658 262.4456 263.3672 263.3625 263.0255 264.0773 265.8281 267.2769 268.3645 269.0822 269.8806 270.701 270.9633 270.6808 270.1961 268.9865 266.9622 265.5667 264.7859 263.7483 263.0385 262.6567 262.6471 262.6975 263.081 264.2804 264.8848 264.8681 264.2465 263.9396 263.7193 263.782 264.615 265.397 264.205 262.3535 260.6281 258.069 257.6183 256.5704 257.495 257.615 258.6994 260.7652 261.8139 262.9827 263.3872 264.1778 264.9558 265.7987 269.0959 271.0192 272.201 273.5632 272.5805 271.6737 270.6369 270.6859 270.9062 270.7446 271.6667 270.9536 270.3478 271.1717 275.675 276.3903 276.2305 276.2116 276.2172 276.1033 275.7875 274.8888 275.0377 277.8185 278.9732 279.6223 280.4628 281.0663 282.2662 283.5183 285.8292 286.3992 286.7502 286.4677 285.3437 283.3032 283.325 284.018 -9999 +-9999 -9999 344.7487 347.4134 349.1987 349.9599 350.2054 349.9651 350.5644 349.9331 348.6402 350.623 351.6859 351.0189 350.2027 353.7892 355.5189 355.1447 354.4271 357.7201 363.6616 367.2408 372.0843 374.3827 377.1351 379.0147 379.4003 376.7247 375.5942 374.4652 375.0917 373.1479 372.7531 372.8047 370.7884 367.6481 365.3098 364.5562 362.635 360.2589 358.781 355.2332 353.4755 352.49 350.7111 349.097 346.8307 344.6 342.767 341.2249 339.1367 336.7616 334.1335 330.4432 328.3322 326.9869 325.8301 325.6983 325.7035 325.5129 325.6605 326.1969 325.079 324.7476 323.5309 320.95 318.2976 317.1316 317.6114 316.5411 314.4033 313.2551 312.6504 311.4516 310.8328 309.4478 310.4868 321.5077 326.6617 330.3869 333.7835 335.2743 335.3052 334.1988 333.9138 334.2369 332.8529 331.8746 331.0797 330.1401 327.8382 326.2416 326.9164 325.686 322.8114 321.2894 326.0733 328.1875 331.0394 331.9688 332.5966 333.2737 334.4017 335.7317 337.7719 337.627 337.037 336.4967 335.9024 334.5353 333.4896 331.2153 328.7583 325.1588 323.2095 320.5803 318.4122 314.987 311.2109 310.8592 312.2729 314.0973 319.4985 323.683 325.6416 326.3617 326.7249 327.1326 327.9792 328.8872 329.8858 332.3538 332.4035 330.4593 328.0824 325.3522 323.0708 320.2041 316.7923 311.5919 309.5976 304.6518 300.5427 297.5853 294.3419 295.6138 292.196 289.5651 290.7901 298.0296 299.6253 299.592 298.4155 298.3007 298.9567 298.8683 298.1927 299.2738 300.4506 296.471 295.6398 299.1578 303.0977 304.8473 305.291 303.4876 301.7948 301.3871 298.6874 301.6857 304.1944 305.6205 307.2858 307.5384 307.5208 307.1666 305.9896 305.3235 304.3877 302.6894 301.5931 299.5743 297.394 295.2956 293.1064 290.5639 283.0284 278.0861 271.2675 263.452 259.9732 258.9119 258.8232 256.8745 258.6906 258.1082 257.4761 257.0225 256.1336 256.7924 257.6795 255.805 255.6845 256.7301 257.0726 256.026 257.8353 259.0729 261.4205 256.8643 257.3023 256.6043 256.9987 262.3465 264.3221 266.734 270.0396 273.5432 277.6136 282.6426 286.6846 289.7805 298.4023 301.4279 301.8488 298.8651 292.8005 285.9684 279.2037 278.605 283.9702 291.4835 292.1944 291.6537 289.8171 287.7193 284.3939 281.3441 277.8586 274.5752 267.2822 269.1546 272.7925 275.4898 277.4777 278.8874 281.0077 281.9516 284.0696 290.6479 293.6671 295.4417 295.4767 295.5245 294.5759 293.8648 291.8557 288.0347 280.1059 277.177 273.6534 269.8497 266.9044 264.3112 261.416 258.5754 255.5274 251.6863 251.6848 252.01 251.7106 251.6436 251.7363 251.8079 253.9058 256.8906 256.3759 254.6297 256.8662 258.7656 260.5378 261.6975 262.8066 264.1076 265.2665 266.6505 267.9582 268.6274 269.0997 269.9599 270.6555 271.1349 271.709 272.9842 274.3388 275.8084 277.2743 278.107 279.2292 279.9596 280.2414 279.9168 280.1259 281.7632 281.6532 280.778 279.5901 277.4116 275.2191 271.9178 268.0694 265.566 269.5703 270.6114 270.899 270.5712 271.0375 270.8628 270.6153 270.7876 270.1937 269.7779 268.8539 267.8806 265.6217 264.3089 263.0948 264.352 261.3048 258.6868 256.2275 254.8118 254.0037 253.3932 252.614 250.7316 249.8815 248.1345 249.3762 250.6455 252.4829 252.4105 252.6279 253.9371 254.661 255.4038 255.9891 256.4444 256.6953 257.1488 257.1046 256.9167 256.5706 255.2558 252.7404 249.5528 250.463 252.9393 257.0369 257.592 258.034 257.9515 256.7565 255.8819 254.2764 253.3419 254.4916 252.5209 250.8926 249.0968 249.6798 250.7918 251.4579 253.4445 255.0462 255.9065 255.2705 254.8468 251.3907 242.9016 241.3587 241.9059 239.7082 240.5612 240.2409 243.3519 244.1535 243.618 243.2981 243.1344 242.7907 239.0245 241.6284 241.8589 242.0141 241.8711 242.3822 240.821 239.9879 239.8143 240.0648 241.5834 241.1594 241.6674 250.7374 252.2709 251.1073 250.4491 249.6695 249.8501 251.2121 252.8395 256.6675 258.2011 259.7152 260.9108 261.3498 261.5254 263.0129 265.1809 266.4343 268.2737 269.0641 270.3746 271.1962 271.974 272.0346 271.1475 270.1026 269.0689 267.3369 266.2286 264.7487 263.3602 262.7112 262.233 262.1585 262.2711 262.9755 264.4862 265.0248 265.451 265.4631 265.4258 265.1079 265.0494 265.8333 266.9786 265.07 263.7161 262.7153 261.6623 260.8224 259.9071 257.7849 258.7807 259.0555 261.0145 262.0659 264.1568 264.8522 265.801 266.2384 268.5988 271.0889 270.9189 272.4325 272.1436 271.9218 271.3985 271.4911 270.7394 271.5071 271.6103 271.5782 271.7163 268.6144 269.7918 273.5694 275.5762 276.0635 276.1345 276.2174 276.1218 275.7588 274.7027 275.2461 276.6392 277.9858 278.7429 279.7391 280.5073 281.8045 283.0348 285.3822 285.9395 286.1021 285.3508 284.0178 283.0356 282.8393 284.1682 -9999 +-9999 -9999 344.9763 345.4147 346.5051 347.2008 347.0804 346.9156 347.4935 346.0908 344.5505 346.5011 346.7781 346.2117 347.5526 349.5764 350.2802 352.2421 356.2154 360.6207 363.5981 365.9196 371.5579 374.3333 377.6938 380.2125 380.7216 379.8122 379.816 381.5043 381.4372 377.6023 375.736 373.5685 371.5352 369.2374 367.2744 365.8076 363.003 360.7518 358.3926 354.7149 352.4131 351.3973 350.3233 348.1961 346.1341 343.4653 341.2108 339.9682 336.8939 334.2493 331.2572 328.4527 326.897 325.394 324.3846 323.6099 322.7129 322.4573 322.6135 321.5906 320.6163 319.9765 319.3372 317.7001 315.8074 314.8753 315.1772 315.306 313.6691 312.0734 310.5928 310.5893 310.9155 310.5242 311.1732 321.6679 326.007 329.9821 332.97 334.833 335.2166 335.5026 335.5631 335.8661 335.0099 334.5091 333.7102 332.6493 330.5637 328.7977 328.5483 328.4707 327.8562 322.0825 322.0223 327.4156 330.9325 333.0383 334.2301 334.2462 335.2066 336.8948 339.6801 340.5684 339.4824 338.3243 337.231 335.9052 333.8517 331.3467 328.917 324.5456 322.799 320.8035 318.4122 314.987 311.2109 310.8592 312.2729 314.0973 319.4985 323.683 325.6416 326.3617 326.7249 327.1326 327.9792 328.8872 329.8858 332.3538 332.4035 330.4593 328.0824 325.3522 323.0708 320.2041 316.7923 311.5919 309.5976 304.6518 300.5427 297.5853 294.3419 292.0595 296.1376 298.98 301.5666 304.8896 305.6403 304.9825 303.5469 302.4358 301.688 300.9528 300.2605 301.5936 301.4703 297.9922 296.1997 298.8916 303.284 305.0218 306.0969 305.5881 303.7359 303.1488 300.8125 303.77 305.0445 307.1157 308.1562 308.391 308.3381 308.5357 306.5145 306.0146 305.3355 304.6665 303.0783 300.8311 298.0439 295.3149 292.7832 289.272 282.0484 274.4086 266.8371 264.2655 260.2607 259.0268 258.7313 258.7263 258.6629 257.8857 258.294 258.0794 258.007 258.2303 259.2352 260.6455 261.5712 263.8583 258.6477 259.3033 263.5416 266.2913 267.3419 260.2376 255.2194 256.3797 257.3165 260.1184 261.5986 264.6707 268.1167 271.739 275.6595 280.6417 284.4514 288.3759 296.9429 299.9457 300.7534 296.7003 290.0598 284.3859 278.3541 276.6237 282.2378 289.7548 291.207 290.638 288.9221 286.0757 283.1436 279.8558 276.7205 275.0341 263.3676 267.9094 271.0509 273.6857 276.8061 278.6188 280.3613 282.9597 285.0492 290.1132 292.8032 294.6428 295.6171 295.58 295.8714 294.8499 292.6418 289.5251 280.3162 277.0583 273.5921 273.3566 271.3348 267.0231 263.428 260.9149 258.0205 252.5451 251.5385 251.305 251.702 251.6543 251.8336 251.4845 253.4157 255.9645 253.5028 254.9663 256.3633 258.4738 259.8648 261.2035 262.4294 263.4096 264.0816 266.1605 267.2138 267.4576 267.7236 268.9294 269.5679 270.2633 270.8237 271.8218 273.9128 275.3916 275.932 276.9215 278.1145 278.7898 278.6458 278.6728 279.5486 281.0655 280.6288 280.5453 280.0183 278.803 276.7569 274.2369 271.8473 269.303 265.4406 266.894 267.5519 268.0879 268.5125 268.9835 269.119 269.071 268.2853 268.1393 267.3733 266.7315 263.2082 261.2019 260.0356 258.8914 256.9722 256.0406 255.4022 254.6978 253.7701 253.1502 252.6154 251.9113 250.8779 248.7682 248.5328 249.9478 251.0982 251.7024 251.7857 253.0009 253.973 254.4994 254.7663 254.9877 255.2303 255.8031 255.5993 255.7043 255.5735 254.4529 251.8961 248.9238 248.9811 251.9448 255.4602 256.4091 256.9601 256.873 256.5134 255.6016 254.2033 252.3157 253.0229 252.7283 249.1286 247.0345 247.416 248.3997 248.4182 250.7549 252.1457 253.132 251.775 249.6013 242.2909 240.7467 241.3952 241.4752 239.7728 240.6366 241.3075 244.4814 244.1736 243.9441 243.9226 243.4753 243.1015 239.1841 242.0195 242.1971 240.8917 241.9739 241.0521 240.9125 240.9465 240.5434 240.7515 242.8963 241.9506 242.4229 251.5728 254.6555 254.1656 252.2203 251.6394 251.8577 252.1085 253.3987 256.1217 257.343 258.1915 258.8547 260.2461 262.2603 264.0838 266.4955 268.1253 270.1297 270.9705 271.9012 272.4689 272.5471 272.1722 271.2173 270.4484 269.6875 267.8188 265.9368 264.3875 263.4239 262.9781 262.5639 262.0909 261.8442 262.4838 264.1937 264.6799 265.1914 265.7793 266.3536 266.4363 266.2085 267.1266 268.1908 266.6987 266.0873 264.7738 263.9103 262.8381 262.2568 261.7821 260.7712 261.0946 263.6173 265.2126 267.0368 268.6851 269.0998 269.5077 269.1984 268.8213 270.1953 272.3998 272.6426 271.7167 270.286 268.4266 269.1378 270.0316 271.6103 271.5782 271.7163 268.6144 269.7918 273.5694 275.5762 276.0635 276.1345 276.2174 276.1218 275.7588 274.7027 275.2461 276.6392 277.9858 278.7429 279.7391 280.5073 281.8045 283.0348 285.3822 285.9395 286.1021 285.3508 284.0178 283.0356 282.8393 284.1682 -9999 +-9999 -9999 342.1696 341.7202 343.2657 343.9886 343.504 343.1775 342.6207 341.0272 340.348 340.7287 341.2628 343.4733 346.5715 349.6448 352.3702 356.3225 359.8871 362.0629 364.729 367.4836 372.6852 374.9067 377.7509 380.1631 381.7698 381.9791 382.08 382.9135 382.9787 378.2396 376.3022 374.7321 372.83 370.9295 368.1292 365.1505 362.4829 359.9777 355.8831 354.0894 352.0355 350.5599 348.5907 346.8082 344.8581 342.455 339.5591 336.8995 332.8906 329.311 328.8283 327.7465 326.0366 323.2062 323.5151 322.9118 322.0588 319.8886 318.7456 317.7495 316.2956 316.659 314.9496 315.9912 314.3545 315.3293 313.3714 313.2149 312.7756 314.1746 316.516 314.6981 311.3733 310.7259 311.0897 320.1042 324.2465 327.8593 330.4946 331.9249 332.1483 332.2571 332.6621 334.2377 336.2083 336.3799 333.7102 332.6493 330.5637 328.7977 328.5483 328.4707 327.8562 322.0825 322.0223 327.4156 330.9325 333.0383 334.2301 334.2462 335.2066 336.8948 339.6801 340.5684 339.4824 338.3243 337.231 335.9052 333.8517 331.3467 328.917 324.5456 322.799 320.8035 318.7194 314.399 310.7712 311.5961 314.6243 316.9599 321.4915 323.3259 324.6559 324.7798 325.5773 326.2913 327.0761 328.065 329.4428 332.0731 332.2089 330.3543 327.3331 324.6245 321.9493 319.3774 316.2008 312.0873 306.7126 302.9263 299.5915 294.7027 296.758 301.2964 302.5695 303.437 306.5343 309.4832 309.2262 308.3495 307.9884 305.9511 304.0813 302.401 301.8075 303.7504 300.5663 298.714 298.7571 298.7401 302.0768 305.207 306.9317 307.1636 306.7079 305.593 304.6902 305.5389 306.601 307.1942 307.7405 307.2452 307.4766 307.9406 305.9286 304.4253 303.986 303.3766 302.056 300.1064 297.2633 294.3212 290.8738 282.2947 276.1768 268.5435 271.5342 270.7582 259.4894 258.5531 258.3774 258.3573 258.2119 258.6517 259.9477 260.2108 261.7697 264.1932 265.0198 266.1798 266.7378 269.2943 268.4692 265.8275 267.1435 270.9087 269.6421 260.4371 256.8127 254.9064 257.1076 258.7968 260.2979 263.2624 266.8723 270.7312 274.8336 279.4858 283.2231 286.4994 295.3772 298.8651 299.7505 295.3762 288.4481 282.0239 277.4278 275.3684 281.3241 288.7416 290.1301 289.978 288.2585 285.634 282.5826 278.5509 276.289 273.6344 262.6299 266.546 270.3139 273.2242 276.084 278.8916 280.968 282.5147 283.6997 288.5727 291.1053 293.3161 294.5034 295.5663 295.4362 295.0636 293.5008 290.4966 279.9528 277.748 277.2475 277.6395 273.6295 269.2525 264.8007 262.1264 259.7441 254.9478 251.6947 251.7083 251.7442 251.3822 251.1966 251.624 254.0812 254.6863 253.2733 254.6748 256.1245 257.4922 258.773 260.3607 261.6176 261.8228 262.3185 265.7614 265.9009 266.3326 266.6991 267.5781 268.5795 269.0843 269.9089 271.2427 273.3434 273.9688 275.1475 276.138 276.9924 277.3264 277.6735 277.9527 279.0693 279.3638 278.7921 278.9722 279.6113 279.5378 278.1455 275.9263 273.7019 271.0547 265.1433 262.5772 265.0483 264.9694 266.6268 267.2345 267.468 267.7169 266.9871 265.1743 264.8397 264.3865 264.1019 260.7195 259.5553 258.5947 256.2764 255.5345 254.9692 253.8426 252.2183 251.3993 250.2735 249.6654 248.8539 248.4604 248.0374 247.3915 248.802 250.1057 251.1299 251.4685 252.9291 253.23 253.251 253.6518 254.3033 254.7797 254.4291 254.228 254.4684 253.5935 251.359 248.4513 249.0601 251.6365 253.9975 254.9422 255.5876 255.6729 255.6718 255.1739 254.1181 252.0892 251.4138 252.626 251.008 248.2552 244.8103 245.7877 246.4991 248.0026 249.149 250.0095 247.5844 241.0707 240.2772 240.8508 241.117 241.2237 239.843 241.9177 242.5129 244.5253 244.2988 244.204 244.0238 243.0019 241.6422 239.3479 240.6765 240.4324 240.6709 240.5208 241.2507 241.3882 241.5159 241.7122 239.417 240.682 241.8706 243.706 251.308 255.1515 255.1448 253.6173 252.4834 251.966 252.3172 253.295 255.7265 256.8223 257.9734 258.9888 260.2343 261.975 264.7004 266.7772 268.7135 271.4081 272.3605 272.9415 272.8752 272.2883 271.7236 270.7368 269.8349 269.3376 267.6178 266.0741 264.3742 262.8419 262.9781 262.5639 262.0909 261.8442 262.4838 264.1937 264.6799 265.1914 265.7793 266.3536 266.4363 266.2085 267.1266 268.1908 266.6987 266.0873 264.7738 263.9103 262.8381 262.2568 261.7821 260.7712 261.0946 263.6173 265.2126 267.0368 268.6851 269.0998 269.5077 269.1984 268.8213 270.1953 272.3998 272.6426 271.7167 270.286 268.4266 269.1378 270.0316 269.2237 271.2816 272.605 272.748 272.7609 272.2172 271.6205 272.5355 273.7382 273.7026 273.3751 274.5736 274.5854 274.5212 274.5871 275.7847 277.3436 278.9511 279.9628 281.7631 283.3648 285.0461 285.2899 284.9778 284.2487 282.9605 282.8459 282.2037 282.6612 -9999 +-9999 -9999 337.4447 336.3437 340.3881 340.6698 339.7288 337.8943 336.1636 334.6663 337.8337 341.8405 344.4557 349.8693 353.3314 355.9247 358.3001 360.457 362.8784 365.3856 368.3229 369.7638 373.9117 375.8239 377.7395 380.2522 382.5579 382.6381 382.8897 382.5943 381.6448 377.5403 374.2589 371.4644 369.9742 368.3063 365.9563 363.4327 360.8983 358.6233 354.8481 353.0309 351.6818 349.509 347.6234 345.0984 341.8907 339.3106 336.226 334.1079 332.1213 335.4182 336.8843 336.6083 334.6178 331.1686 327.7391 326.7183 326.5752 330.0183 318.7456 317.7495 316.2956 316.659 314.9496 315.9912 314.3545 315.3293 313.3714 313.2149 312.7756 314.1746 316.516 314.6981 311.3733 310.7259 311.0897 320.1042 324.2465 327.8593 330.4946 331.9249 332.1483 332.2571 332.6621 334.2377 336.2083 336.3799 335.7888 334.8875 333.5218 331.5124 330.7553 331.0043 330.1667 324.8546 323.3798 326.3222 329.4979 333.7722 335.1814 335.1276 336.0545 338.0004 341.108 341.6555 340.3989 338.6113 336.7271 334.9294 333.1536 331.1526 328.5368 323.7717 320.586 319.2966 317.0408 312.8462 311.1712 312.1761 314.417 316.3799 319.4253 321.0596 322.0025 322.8273 323.7528 325.0396 326.5581 327.7942 329.3267 331.5718 332.3659 331.1199 327.2629 323.9708 319.687 317.2403 313.5997 309.4765 300.5825 299.4827 302.4485 306.5932 307.1201 308.4465 308.9868 308.2899 309.4538 312.8392 312.9411 312.3037 311.3554 309.0429 306.8706 305.7032 305.0269 305.898 301.976 302.8856 302.0309 302.0143 303.4823 305.8208 307.537 308.2854 308.0246 306.7532 306.6402 306.3381 306.3524 306.0392 306.2811 306.0515 305.6205 305.9836 303.7735 302.3273 301.5665 300.5457 299.8306 298.0012 296.1822 293.8896 290.9159 280.5674 280.5544 280.7057 280.041 278.4445 268.4053 260.8351 258.4251 258.8786 260.1207 268.7572 267.8401 267.886 269.2078 272.4025 272.6807 270.814 270.5695 273.1679 275.7937 271.9744 271.974 274.458 273.0283 263.3771 256.4349 256.5583 255.918 257.3369 258.6754 261.9555 265.799 270.1837 273.9139 278.3662 279.541 283.7726 293.825 296.9168 296.3401 292.1893 286.9887 281.3911 275.0685 275.6181 280.7299 288.5128 288.9487 288.7807 288.1117 286.1434 283.9249 279.0795 276.0034 272.8416 263.1854 263.5958 267.8091 271.8513 275.2537 278.1198 279.4015 279.9746 281.5269 286.6043 289.0777 291.3975 293.4891 294.2623 294.1738 294.5776 293.6184 291.5109 286.7621 283.8997 282.4109 280.3206 275.7945 270.6662 265.6345 263.1876 261.0094 257.5019 254.1385 251.2816 251.3106 251.2658 251.1022 251.2799 252.4103 252.1329 254.8752 255.2191 255.5891 256.5692 258.2746 259.324 260.555 260.7483 261.7371 264.6378 264.6809 265.5232 264.9618 265.2461 267.8863 268.3609 269.2398 270.5475 272.8341 273.5541 274.6823 275.3488 275.6777 276.0088 276.4632 277.2127 277.9982 277.6322 277.2169 277.3886 278.0673 279.3107 278.8362 277.1521 275.0316 272.6031 267.1092 264.3526 261.1798 261.9871 262.9756 262.2776 264.7702 265.2637 264.8376 262.4696 261.7064 261.079 261.4407 260.543 259.7963 259.1523 257.3009 254.3446 252.512 251.7686 252.6482 252.3347 250.6699 250.0631 250.6875 250.7216 248.7907 247.9814 247.2064 248.7835 249.4897 250.4451 250.9817 252.0781 252.5383 252.634 253.0627 253.5635 253.0992 252.916 252.6885 252.2352 249.9767 247.6012 248.4134 250.5418 251.5664 252.585 253.5964 254.1062 254.0834 254.3155 254.2261 252.828 251.142 251.1094 250.461 248.2079 244.0176 243.588 244.5423 246.0759 246.2756 247.1387 240.4595 240.453 240.7618 240.609 239.7497 240.7489 242.0214 242.2031 243.8998 244.2079 244.0729 244.0044 243.1593 241.4518 240.3304 239.6254 240.8884 241.1687 239.5218 240.4066 241.2507 241.3882 241.5159 241.7122 239.417 240.682 241.8706 243.706 251.308 255.1515 255.1448 253.6173 252.4834 251.966 252.3172 253.295 255.7265 256.8223 257.9734 258.9888 260.2343 261.975 264.7004 266.7772 268.7135 271.4081 272.3605 272.9415 272.8752 272.2883 271.7236 270.7368 269.8349 269.3376 267.6178 266.0741 264.3742 262.8419 261.4621 260.7485 260.5812 261.3078 261.6405 263.5014 264.1627 264.8298 265.3785 266.2813 266.995 267.405 268.1258 268.6188 268.3794 267.6045 266.5033 265.8126 265.0109 264.4029 264.4653 264.1316 263.4641 265.586 267.422 268.8215 268.4807 270.1626 271.5028 271.6816 271.0708 270.5991 272.6704 271.5761 270.0012 268.8638 267.4767 268.002 268.9796 268.3145 268.4471 268.0966 272.4048 273.6497 273.272 273.8068 274.0555 274.3007 272.4891 270.2531 268.4 272.8415 272.9595 275.5416 276.3943 276.644 277.5109 279.2734 281.1948 282.9753 284.5687 284.6529 284.0262 283.254 281.9838 282.5318 281.1022 281.5549 -9999 +-9999 -9999 330.868 334.9619 337.194 336.2782 334.2908 332.0613 337.1215 342.0883 345.5919 348.3724 351.2452 354.4709 356.7012 358.8819 360.8108 362.4927 364.0172 365.5199 367.4887 369.7654 373.8581 375.4436 377.7611 380.6858 383.3752 382.9035 382.378 379.4717 377.9366 373.5152 370.022 367.4317 369.9742 368.3063 365.9563 363.4327 360.8983 358.6233 354.8481 353.0309 351.6818 349.509 347.6234 345.0984 341.8907 339.3106 336.226 332.2336 332.1213 335.4182 336.8843 336.6083 334.6178 331.1686 327.7391 326.7183 326.5752 330.0183 328.3919 323.989 321.4183 321.224 321.8378 321.2387 320.6406 318.6466 318.5583 321.9342 324.106 325.0432 323.9328 321.3585 317.252 311.1618 310.2767 317.6104 321.573 324.7341 326.4119 327.4133 328.035 328.4515 330.6367 332.3659 334.1981 335.0999 335.8094 335.7841 335.2474 334.119 332.8714 332.7525 332.6242 326.9758 325.0345 325.4334 329.4827 333.8427 335.9633 336.313 337.0531 339.0083 341.8215 341.4453 339.7562 337.6021 335.6502 332.8931 330.4865 329.7541 328.2062 324.4832 322.2005 319.3546 315.4134 312.9774 313.0481 314.1419 314.3814 315.1677 318.9375 319.8204 321.1526 322.5446 323.6855 324.6015 326.0133 327.4727 329.1906 331.6656 332.776 331.7576 327.063 321.4181 316.66 311.5735 307.6593 306.7271 304.7573 309.2178 311.369 312.2173 311.9006 312.7547 314.4542 312.7027 312.9461 314.857 315.2876 314.8475 313.2787 312.5436 311.0025 310.355 309.1102 308.012 303.4795 304.4464 305.4279 305.3398 306.2456 307.1421 308.2695 308.9595 308.4171 307.423 306.522 305.4424 305.2723 305.1382 305.1541 304.7098 304.211 303.5569 302.055 300.8278 300.1192 298.3599 296.8284 295.6242 292.7333 290.441 288.0448 288.1613 289.0411 287.5441 285.5824 281.5932 275.0493 274.1595 266.1925 265.3408 268.9694 274.9987 276.6599 276.9672 279.0772 279.7474 278.4772 275.6863 275.8544 276.6815 281.5986 278.9507 279.1629 277.9242 276.1771 269.2651 258.1018 256.2313 256.2991 256.4449 256.8063 260.7175 264.5527 268.5367 271.7326 273.5219 278.5955 284.5269 293.9227 294.6945 290.7069 287.217 282.8989 276.2946 270.946 275.7765 280.7807 287.5258 287.4126 287.5148 287.8409 286.0711 283.404 280.0132 276.0294 272.2106 260.5861 262.6055 265.9872 270.4534 274.0443 276.3628 276.5374 278.1226 279.7782 284.7476 287.5739 289.5446 291.5634 292.4115 292.9961 293.8737 294.0616 293.063 290.9845 288.3592 285.5172 282.9805 278.4747 272.9106 267.2069 261.7578 259.5599 257.3456 256.1374 251.3447 251.4807 250.8647 251.1463 251.4978 251.3945 254.6142 257.8909 258.9223 258.7704 257.9313 257.8982 258.1627 258.7537 259.9991 261.2711 262.9282 264.1864 264.2505 264.3791 264.4814 265.9413 267.7841 268.406 269.3163 271.9588 272.8736 273.6788 274.1667 274.6527 275.2488 276.3679 276.9566 276.7816 275.9521 275.6607 276.2607 277.6863 278.4761 279.2357 278.3622 276.6537 274.5699 268.8297 266.648 265.705 264.6356 259.8142 259.9433 257.9505 260.765 260.2197 259.0425 257.8902 257.6725 257.3516 257.0152 256.1897 252.7155 252.8777 254.4503 254.234 253.8283 253.2945 253.2499 253.6079 253.4672 254.3504 253.9044 253.6059 251.1309 247.6153 247.3405 248.8413 248.9614 249.8066 250.0018 250.4364 251.8954 252.0804 252.5589 252.1253 251.6736 251.3541 250.491 248.242 246.7141 248.1285 249.6689 249.0517 250.2918 253.5964 254.1062 254.0834 254.3155 254.2261 252.828 251.142 251.1094 250.461 248.2079 244.0176 243.588 244.5423 246.0759 246.2756 247.1387 240.4595 240.453 240.7618 240.609 239.7497 240.7489 242.0214 242.2031 243.8998 244.2079 244.0729 244.0044 243.1593 241.4518 240.3304 239.6254 240.8884 241.1687 239.5218 240.4066 241.1234 241.026 241.218 241.2507 241.6723 242.0368 241.7619 242.1099 251.4688 255.9422 255.9513 255.355 254.2299 253.2378 252.5793 252.909 254.238 255.0406 256.9093 258.9352 261.114 263.9909 265.8955 267.7789 269.3206 271.4262 271.6059 272.0549 271.1107 270.4468 270.0421 269.2904 268.764 268.4912 267.5846 266.1317 264.4441 262.2777 260.5986 260.0958 259.887 260.4175 260.7467 262.631 263.8438 265.2865 266.2371 266.8615 267.3797 267.5563 267.6541 268.067 268.5434 268.4262 268.0315 267.4691 266.9258 266.4676 266.8574 266.884 266.4565 266.1813 267.4877 267.9234 268.5834 270.1062 271.1917 271.8616 270.4358 269.5662 271.478 270.2214 268.7035 266.7765 265.9914 267.2175 267.2184 267.0348 267.0846 265.2359 268.3931 268.5871 268.8541 273.2873 274.8405 271.7071 274.8164 275.2202 275.5801 275.5559 276.743 277.9159 278.5858 279.0924 279.1915 279.6825 280.4918 281.5596 283.2315 283.3075 282.794 282.2643 281.5276 282.3802 279.7603 279.9951 -9999 +-9999 -9999 329.5532 331.3213 330.8826 329.7164 330.7177 332.0613 337.1215 342.0883 345.5919 348.3724 351.2452 354.4709 356.7012 358.8819 360.8108 362.4927 364.0172 365.5199 367.4887 369.7654 373.8581 375.4436 377.7611 380.6858 383.3752 382.9035 382.378 379.4717 377.9366 373.5152 370.022 367.4317 365.6761 365.1517 362.5567 360.6683 358.9173 356.7058 352.9245 351.7648 350.1741 348.5935 346.3444 344.3042 340.2664 336.9449 334.4625 334.321 337.5622 339.8264 340.415 340.0746 338.5937 335.8057 333.056 330.665 330.7706 333.377 333.6221 332.8352 331.5237 329.8676 327.5309 327.2531 325.7649 323.2787 322.4025 326.278 327.942 328.4984 327.0032 324.1058 320.4926 315.4816 311.439 312.0974 316.4063 319.7054 320.7007 322.0901 324.0953 325.8922 327.7898 329.3221 331.8755 332.9279 333.9076 334.4772 335.0119 335.4502 335.0084 334.4911 334.483 330.1921 330.5439 331.6737 334.0534 335.6159 336.9906 337.5686 338.6816 340.0291 341.4898 340.4602 338.8032 336.9962 334.817 332.5663 329.8621 327.9582 326.702 323.3289 321.7224 319.1434 314.8338 313.0244 314.1801 315.8649 315.854 317.4378 320.7298 322.194 323.3185 323.5553 324.222 324.2732 324.9628 327.0046 329.1956 331.9057 333.0327 333.1295 325.8161 316.5214 310.8886 309.2253 310.2054 308.9123 313.3924 314.9583 315.6774 315.964 315.5309 315.3956 317.3814 318.879 318.1873 317.7589 317.2156 317.0483 316.2135 314.7216 313.6217 312.4993 311.0952 308.9314 305.5545 306.5375 307.439 307.7262 308.1188 308.5789 308.9678 309.1489 308.527 306.4285 305.3335 304.2858 303.1121 303.3468 303.9966 303.9895 303.5566 302.8172 301.2689 300.1158 299.1563 297.0221 295.6747 294.0274 292.3686 292.731 292.6844 291.7915 291.8681 290.6693 289.579 284.5893 279.6701 279.2025 276.8353 271.2949 276.0763 279.7777 284.4953 288.5143 290.056 288.1843 283.9275 280.7419 280.7679 280.6337 284.1698 283.4991 283.2271 282.6316 279.6733 275.4944 264.9878 256.2796 256.187 256.3828 255.9716 257.9766 260.639 264.953 268.1055 273.9499 279.257 285.3512 291.8011 289.8409 285.8801 282.2803 278.565 273.8632 266.9424 274.3819 279.3539 285.6853 285.0961 286.4159 286.931 286.2964 283.6889 278.5624 274.9117 271.9073 260.1808 262.0912 266.0769 269.4431 271.5548 273.0564 275.2231 277.2961 279.1387 283.2878 285.7144 288.6871 290.4803 291.1538 292.4595 293.5476 294.2546 294.6495 293.4333 291.7178 288.8282 285.1727 280.674 274.8471 267.2656 261.4935 259.0087 256.7139 255.7164 254.1324 251.0217 251.5233 251.2792 251.4218 252.3578 256.2338 260.2561 261.0057 260.3693 260.4603 260.5437 259.6914 259.548 260.1442 261.2143 263.0757 263.6871 263.5221 263.0031 263.1558 264.0186 266.552 267.912 268.9146 270.6104 272.0748 272.5159 273.0181 274.5385 275.356 276.0458 275.9562 275.4171 274.1241 274.5832 275.6032 276.8075 277.717 278.5725 278.8099 277.9637 275.4262 271.9362 269.7873 268.14 266.8119 265.0983 263.6697 262.3425 262.8879 262.7315 261.0341 259.6167 258.669 258.1292 257.0152 256.1897 252.7155 252.8777 254.4503 254.234 253.8283 253.2945 253.2499 253.6079 253.4672 254.3504 253.9044 253.6059 247.8917 247.6153 247.3405 248.8413 248.9614 249.8066 250.0018 250.4364 251.8954 252.0804 252.5589 252.1253 251.6736 251.3541 250.491 248.242 246.7141 248.1285 249.6689 249.0517 250.2918 251.5492 252.0235 252.4514 253.1313 253.6521 253.3407 251.5847 248.3823 247.652 245.627 244.3678 242.3974 241.9237 242.0149 243.4919 240.9991 240.2474 240.4389 239.6868 240.5291 240.9141 241.1632 242.2382 243.9437 244.2699 243.6875 243.1647 242.1806 241.2368 239.4058 240.7576 241.4694 241.4277 241.068 241.2427 241.0162 240.7923 240.6825 240.6565 240.7832 240.8498 241.7651 241.3537 246.6724 255.1431 256.5766 256.0652 256.0134 255.5208 254.5794 253.0896 252.4254 253.4076 254.5995 256.6052 259.3219 261.098 262.9631 264.9324 267.1776 268.3992 269.8462 269.6749 269.0951 268.6294 267.7347 267.1612 266.7183 266.2988 267.2232 267.4334 265.6875 263.7608 261.9378 260.2146 258.642 258.766 259.7045 259.6671 261.9355 263.1436 264.3614 265.8553 266.6869 267.0116 267.0565 266.7985 267.1097 267.565 267.2581 267.0445 267.2303 267.5444 267.8542 268.0027 267.8722 267.6321 267.3547 267.4352 268.2398 269.0321 269.8484 271.0514 270.6833 269.1884 266.7508 268.2067 267.9218 265.6753 264.2069 263.9615 264.2651 264.5446 264.9906 265.0102 262.0189 263.334 263.462 264.9342 269.8004 271.1843 271.7637 273.712 275.1929 276.0891 276.0535 276.4695 276.6654 276.4884 276.6035 278.4221 280.4452 281.9459 282.4378 282.0815 281.5441 281.2706 281.4835 282.063 282.2515 279.6511 278.5409 -9999 +-9999 -9999 329.5532 331.3213 330.8826 329.7164 330.7177 335.7246 341.5236 345.1116 348.3729 350.6754 353.2881 356.99 358.5484 359.631 360.5558 361.7336 363.0625 364.5998 366.5954 368.7181 372.1097 374.6211 377.4296 380.5905 383.1359 383.3149 381.7594 377.8188 372.3152 367.8912 363.8645 360.9165 359.8305 359.7405 358.6466 357.9007 356.0542 354.2517 351.3354 349.9074 347.1387 346.4308 344.3651 341.6081 338.5807 334.4304 334.514 339.239 340.9564 342.135 343.1314 342.7216 341.0139 338.0875 336.0574 334.0331 331.549 334.9987 336.0827 336.4285 335.4633 333.2928 331.6313 330.5141 328.5331 325.1564 322.6168 326.4499 328.8292 329.5453 328.5205 326.0653 322.7651 318.5081 313.6942 312.0089 312.9738 317.1654 320.0569 320.5514 320.6885 321.7502 323.4493 325.5787 329.5082 330.7506 332.1898 333.7619 334.5376 335.7871 336.682 336.4876 335.9473 333.8366 335.5103 334.9327 337.4641 338.3521 338.6976 338.3531 339.3206 340.5294 339.8226 338.2153 336.8088 335.5794 333.559 331.4189 329.5222 328.0157 325.9899 322.3517 320.223 317.9257 315.1831 312.8409 316.1428 318.2112 318.4126 318.4227 323.1565 324.0775 325.7085 326.0713 326.4412 326.1646 326.1093 326.2158 328.7036 331.8664 332.91 333.7851 329.3418 320.5475 317.8139 316.2247 315.9431 315.0768 314.2404 317.2151 318.8861 319.6723 319.8352 319.1984 320.3148 320.4233 320.5435 320.1433 318.8743 318.2352 317.4234 315.9911 314.6013 312.9166 312.0009 308.6876 307.6234 307.8177 308.8602 308.8283 308.5825 307.9245 307.894 308.1268 307.5674 304.6353 303.2633 302.5997 300.8319 301.358 301.9227 303.854 304.032 303.7195 300.5227 299.6204 299.1519 298.026 297.1299 295.8678 295.2849 294.6245 294.4582 293.4385 293.616 293.9655 292.9843 287.1235 284.5271 282.0086 279.223 273.0225 279.5699 284.7417 289.7158 293.0848 294.006 292.4967 288.227 284.4492 281.8863 282.6021 284.41 285.1558 284.2591 283.3621 281.4486 278.39 270.9655 259.4833 256.1343 255.9767 256.1233 254.4855 257.5907 260.7472 266.1276 272.6943 278.8499 285.5403 286.5763 284.4003 281.6355 278.9216 276.1124 272.4635 264.9186 270.1468 276.7587 283.3592 283.1901 284.469 285.2539 283.8666 281.0633 276.215 272.3108 269.7379 260.0606 263.1277 265.3754 266.8675 269.6776 272.3319 274.1191 276.8138 278.1146 280.7729 283.7919 286.6309 289.9952 291.5089 292.838 293.1074 293.6951 294.2195 293.5974 292.9109 290.0881 286.6971 283.08 276.4431 268.5671 262.5056 261.1383 258.4814 256.085 252.9623 251.0158 250.8799 251.2921 251.0217 253.1235 257.3543 260.6183 262.7039 262.5998 262.8101 262.7872 262.4507 262.1262 262.3994 263.1635 264.445 264.0251 262.3248 261.2628 262.8752 264.857 266.552 267.912 268.9146 270.6104 272.0748 272.5159 273.0181 274.5385 275.356 276.0458 275.9562 275.4171 274.1241 274.5832 275.6032 276.8075 277.717 278.5725 278.8099 277.9637 275.4262 271.9362 269.7873 268.14 266.8119 265.0983 263.6697 262.3425 262.8879 262.7315 261.0341 259.6167 258.669 258.1292 257.348 256.2304 255.4115 254.9178 254.5788 254.1005 253.8581 253.7312 253.7009 258.0764 258.0273 256.8214 256.3122 255.5092 252.7364 248.1644 247.4838 246.9941 248.0284 248.6194 248.9696 249.3206 249.9772 251.4218 251.5027 251.2972 250.927 250.5454 250.0974 247.0888 246.1614 247.8588 248.6435 246.535 247.3988 249.2296 249.9987 250.6557 251.3918 252.5682 253.3135 252.6355 249.2031 247.7664 247.7558 249.1899 248.5667 246.95 242.3113 240.6176 240.3079 240.4332 240.7048 239.896 240.9496 240.8433 242.5012 243.6461 242.1736 241.8744 241.7651 241.2602 241.0216 239.7625 240.5762 241.046 240.8958 240.6635 240.9459 240.5362 240.7486 240.898 240.6972 240.141 240.3921 240.854 240.343 238.09 252.7573 256.8777 256.8798 255.9125 255.5554 255.5534 255.4352 253.7298 252.1954 252.7915 254.4922 257.0407 258.8303 260.2212 262.0927 263.9816 265.4832 266.4359 266.131 266.2915 265.9113 265.6234 264.4442 264.2579 264.1383 265.3262 267.3918 267.7977 265.6281 263.0179 260.6078 258.7702 257.7617 257.6729 258.7328 258.3793 261.0269 262.3901 263.8902 265.1092 265.5474 266.019 265.9852 265.401 265.9942 266.1013 266.2798 266.2928 266.8427 266.4987 266.8102 267.1427 266.6781 266.6311 268.1137 268.6565 269.4798 270.7404 271.3686 271.5884 270.2408 267.6187 265.3568 261.9374 263.7471 262.2496 261.6315 261.5478 261.6453 261.7445 262.3851 262.525 259.6819 261.7997 264.2264 266.9243 269.3747 270.8691 272.945 274.9199 275.2494 277.1549 276.5561 276.1267 276.7262 276.9488 276.8614 277.0697 277.1455 277.1258 277.6185 278.7445 279.4562 280.2047 281.157 282.2593 282.1732 281.75 279.7216 -9999 +-9999 -9999 322.6874 324.131 327.7234 331.9138 336.6643 340.324 343.4144 346.2168 348.9949 351.2446 353.3239 356.1768 356.6456 357.0809 358.6996 360.4151 361.8033 362.9508 364.8012 366.6605 371.3603 373.9953 376.8053 380.3095 382.8714 383.5553 382.5247 376.2226 370.3849 366.5589 363.5046 359.4321 355.6298 352.949 352.1816 352.3274 351.4927 350.013 349.0429 346.7556 344.6923 341.8989 339.282 336.4048 335.362 335.9308 337.0526 342.3393 343.5982 344.4169 345.2131 344.6359 342.7059 340.0104 338.1952 336.4764 332.8214 336.182 337.5935 338.051 337.2838 335.6487 333.847 331.9972 329.5394 325.2632 325.1587 325.6636 327.5247 328.3818 327.7839 326.0547 323.5468 320.1188 316.3801 312.0377 313.1045 320.7011 325.6772 327.8339 327.336 325.8412 323.1879 323.3615 326.7329 328.825 330.9732 333.1719 334.4731 335.7729 337.1566 337.7087 337.6502 336.658 338.478 338.5953 339.4387 340.0364 339.4914 339.146 340.016 340.4779 338.0785 336.3836 334.885 333.729 331.9971 329.5962 327.6098 326.4969 324.9706 320.1077 318.1933 318.4039 315.4809 315.166 317.6182 319.6175 320.8578 319.572 323.5532 325.562 326.4514 327.7209 328.2594 328.6093 328.372 327.785 328.7324 331.3024 332.2749 332.9016 331.9041 328.2409 322.7964 321.3114 319.0108 317.7343 312.6811 318.718 320.308 321.759 322.8494 323.1578 323.0208 320.9829 321.1328 320.7486 319.5958 318.5847 317.5854 316.4032 315.1548 313.4959 311.7019 309.2324 309.2239 308.7608 308.8377 308.0706 307.5031 306.5539 306.0643 306.2745 305.9175 302.7914 301.2617 300.1731 299.0827 299.428 301.8423 302.8978 303.851 303.3243 299.8317 298.6434 297.6633 296.6093 295.4683 294.9412 293.3865 292.463 292.2086 293.1822 292.0292 293.3025 293.788 291.2345 287.407 283.695 279.8409 275.045 280.6927 285.4955 289.4001 290.6345 290.2686 288.2011 284.5496 281.0161 278.4939 280.2723 282.2733 282.6441 281.3484 280.848 279.6356 278.0061 272.8172 263.4672 256.3291 255.8814 255.7161 255.6962 255.392 256.6012 262.4291 270.5757 276.9532 283.6205 281.4171 279.0276 276.6792 274.9531 273.9405 270.9673 263.2922 267.8055 274.4249 280.9855 281.2228 282.3605 282.0802 280.0864 276.352 272.0098 269.0571 266.515 260.4666 263.2267 265.9182 267.7719 270.0503 272.513 275.1434 276.1332 276.0375 279.3157 282.9418 286.0985 288.6221 290.9984 291.3945 291.4046 292.3579 293.6988 293.0365 292.9109 290.0881 286.6971 283.08 276.4431 268.5671 262.5056 261.1383 258.4814 256.085 252.9623 251.0158 250.8799 251.2921 251.0217 253.1235 257.3543 260.6183 262.7039 262.5998 262.8101 262.7872 262.4507 262.1262 262.3994 263.1635 264.445 264.0251 262.3248 261.2628 262.8752 264.857 265.5929 266.9088 268.1919 270.874 272.5971 273.6085 273.3445 274.6274 275.4529 275.0699 274.1152 273.2325 272.8206 273.5793 275.1075 275.9545 277.0283 277.5017 278.0967 278.4854 276.6843 273.1772 271.8189 270.476 269.1035 267.9413 266.0088 266.1734 266.5948 266.2548 265.0139 263.8701 263.7453 261.9586 260.1132 257.0232 256.0857 255.7415 255.3379 254.641 254.5066 254.6316 254.8333 259.4287 261.4197 259.991 258.9532 257.6031 254.1506 250.9803 247.7697 247.3056 246.7592 246.1415 247.7339 247.8709 249.0495 251.0029 250.9577 250.5949 250.5535 250.3701 249.6582 246.5839 245.7475 244.8998 247.2823 245.1796 246.002 247.7436 248.3238 248.9123 249.7352 251.1443 252.2774 252.3041 251.2792 250.6161 250.3161 250.9512 251.2997 250.6608 247.1369 240.7277 240.1958 240.6164 239.6632 241.1172 240.5034 242.4781 243.619 241.9507 241.3658 241.2782 241.1616 241.0039 240.6152 239.7684 241.4684 241.0376 240.9329 240.5224 240.7083 241.1513 240.8887 241.5149 241.7061 241.618 241.3289 241.2762 238.0655 238.5222 250.6931 255.5508 256.5755 255.7078 254.8238 254.8038 255.5772 254.6181 251.6831 252.2173 254.2172 256.3835 257.892 259.269 260.6554 262.2414 263.5227 263.9888 262.6335 262.4914 262.8941 262.1594 261.6142 260.8886 262.7047 265.4936 267.3897 266.9146 264.8513 262.5635 260.675 258.6326 256.9303 255.8066 256.4277 257.1282 260.0505 261.6016 263.3688 263.714 264.2213 264.6351 264.2092 264.2063 264.8652 264.7284 265.0073 265.3094 264.9665 264.7429 264.607 264.8246 265.5636 266.1293 268.6158 269.6479 271.1888 271.8484 272.3507 271.5587 269.9627 267.1517 264.3755 260.0468 259.8938 260.0014 259.4041 259.6762 259.4054 258.9278 258.7119 260.4651 263.8893 265.942 267.9587 270.2591 272.6574 273.8779 274.8953 275.937 278.0717 280.5393 279.4253 280.3877 280.228 276.5927 277.0515 276.9222 277.0387 277.2483 276.8778 276.937 276.3311 277.0379 279.5112 282.8733 281.1998 279.5707 278.2799 -9999 +-9999 -9999 324.2047 323.6924 326.5092 332.5861 337.1964 340.6714 343.3796 345.7106 347.6997 349.5893 351.5441 351.7774 353.2683 355.3156 357.7494 358.7074 359.6086 361.1662 363.6208 366.6022 371.132 373.8436 376.1425 379.0431 382.0539 383.5113 383.2087 378.0244 371.115 371.5446 369.0142 365.41 361.9281 358.1643 351.3777 349.9714 349.1422 346.7088 343.5703 342.3438 338.9877 337.8167 338.326 337.7962 338.7726 339.3766 339.5169 343.2022 345.0607 346.3055 346.5146 345.6186 343.644 341.6732 339.8298 338.0193 335.0127 336.8669 338.2116 338.8046 338.1654 336.5765 334.788 332.9213 330.7816 327.3785 327.318 326.1974 326.2539 326.42 325.8107 324.3146 322.3666 319.9845 316.4496 312.3851 314.3171 321.6037 326.7165 328.6441 329.6394 330.0889 329.6641 328.9954 329.364 329.9267 331.545 333.1961 335.1075 336.4272 337.8419 338.8445 339.1338 338.7507 340.2564 340.7872 340.9801 341.282 340.4339 340.2248 340.6105 339.7896 335.946 334.3907 332.4294 330.8958 329.4176 326.682 324.3504 322.8778 319.9991 318.2871 317.9235 317.9702 317.938 318.4618 320.9422 322.3352 322.8329 323.182 323.611 324.5504 326.2974 327.8702 329.1994 329.7048 329.7529 329.4134 329.7974 330.7115 331.584 332.284 331.9247 328.8921 325.9756 323.8127 321.8896 320.3727 315.0769 319.033 320.9276 322.7653 324.2584 322.7512 322.7195 322.3008 321.6808 320.6562 319.0054 318.0456 317.0046 315.799 314.7697 313.639 311.6252 310.7903 309.2853 308.8448 307.4197 305.8287 304.178 303.7646 303.8083 304.3066 303.8654 301.4719 299.8224 297.5992 296.4424 297.352 300.2432 301.8639 302.3279 302.067 298.8469 296.7857 295.0561 294.4419 293.8386 294.1669 293.6857 290.8637 288.93 290.8843 289.7747 289.9202 291.219 290.1767 287.5353 283.6797 279.7864 276.2364 280.1549 283.4926 285.7491 286.0849 283.7113 279.8992 275.6718 272.9921 273.4872 276.1623 278.004 278.0194 277.3339 276.7647 275.5511 273.9052 270.5634 265.3292 256.6361 256.4399 256.4023 254.6239 254.5046 255.6463 259.504 267.8319 273.9442 279.4686 274.8489 273.0898 271.0706 270.19 270.3945 270.9673 263.2922 267.8055 274.4249 280.9855 281.2228 282.3605 282.0802 280.0864 276.352 272.0098 269.0571 266.515 260.4666 263.2267 265.9182 267.7719 270.0503 272.513 275.1434 276.1332 276.0375 279.3157 282.9418 286.0985 288.6221 290.9984 291.3945 291.4046 292.3579 293.6988 293.0365 290.7136 286.9128 282.6332 280.953 275.0883 269.5091 265.2759 262.9124 260.0463 257.7143 254.7737 251.2276 250.7229 250.9843 250.4608 253.1606 255.9881 261.0565 262.7896 263.3618 263.4492 262.9545 262.6697 263.0306 263.4466 263.9234 264.5101 262.6862 260.2513 261.4782 262.9883 264.2458 265.1165 265.9349 267.1779 270.1558 270.9516 271.9759 273.4479 274.5869 274.6397 273.0043 271.1822 270.5195 271.7538 272.8329 274.1176 275.2576 275.6815 276.5722 277.2 277.9684 278.4781 275.0162 273.5199 271.7661 271.1063 270.2096 269.68 269.1057 268.9591 268.5865 268.0187 267.6147 267.3823 266.1667 265.2739 259.6458 257.8047 257.1462 256.4989 258.4081 260.7317 262.5011 264.359 264.9952 264.1694 262.6471 261.1991 259.5741 255.6934 252.3324 248.6236 247.9083 247.0076 246.7663 246.616 245.7884 247.4218 249.7167 250.2269 250.4811 250.3119 249.6992 246.2507 244.9862 244.8226 244.2003 244.673 243.8569 244.2336 245.1404 245.8837 247.2565 248.9635 250.1267 250.8194 250.9051 250.2879 250.0714 250.0742 250.5141 250.9425 251.459 249.4929 244.2405 240.3833 239.7526 241.2913 240.4906 240.6814 243.657 242.2168 241.587 241.7769 241.7173 241.0081 241.2327 239.0918 240.2582 241.2669 241.1208 240.9031 241.1988 241.2354 241.4755 240.9917 241.0911 241.431 241.4159 241.1881 241.3953 238.0776 240.3801 246.1178 252.1013 254.515 254.8076 253.8917 253.889 254.5389 253.95 251.2224 251.0798 252.8823 254.2125 255.6313 256.9351 258.7074 260.0048 260.3308 259.6267 258.992 259.0034 258.9748 258.2566 258.6274 259.2571 263.183 265.4077 266.8674 265.8458 263.5429 262.028 259.9891 258.0382 256.2551 254.8751 255.055 256.2303 259.0304 260.7692 262.0335 262.9052 263.3086 263.4515 262.8198 263.2702 263.1741 263.2701 263.5862 263.7678 263.3587 262.6115 263.0168 264.6602 265.5131 267.5316 270.1872 271.4928 272.6526 273.083 272.669 271.022 269.0072 265.4047 262.8631 258.3382 257.9108 257.429 257.1036 257.4876 263.0717 263.7743 264.1005 266.3641 268.3695 268.1304 271.2045 273.1609 274.6766 276.1466 277.3566 278.5504 279.5843 281.2934 282.2805 283.1598 282.4066 282.1383 283.4763 277.4304 278.2817 278.2896 276.3227 276.8416 276.8315 276.421 276.4646 276.3516 276.9687 277.5524 277.317 -9999 +-9999 -9999 327.7838 325.2025 327.3494 331.3832 335.6765 338.5967 340.9105 341.7202 344.9193 347.0324 349.1599 351.221 353.9185 355.0812 353.4809 356.6226 359.7267 361.8466 363.9597 366.2549 370.3896 372.288 374.3147 377.0995 380.2635 382.6445 382.7125 381.3071 378.5851 374.7721 371.8754 369.0955 366.687 364.5545 360.4724 356.0294 354.0889 350.6566 347.1917 345.574 344.7831 343.9253 344.1605 344.2 344.6271 344.1817 342.9604 343.6528 345.6227 347.1226 347.4275 346.2525 344.4631 342.7909 340.7774 339.4757 338.1595 338.0854 338.91 339.4327 338.8093 337.4734 335.8556 334.1923 332.791 329.7834 328.4089 327.1364 326.0522 325.6367 323.9971 322.0637 320.2688 318.2158 313.7928 312.7863 314.3744 320.3184 324.3658 327.3181 329.4009 330.8462 331.8861 332.2767 332.7918 333.0181 333.4689 334.5793 336.4794 337.8486 339.5911 340.4981 340.674 340.328 341.5766 342.3185 342.5706 342.4616 341.1656 341.0404 340.163 338.0182 334.093 331.1122 329.4224 327.3233 325.8794 323.0933 321.4705 322.9898 325.433 323.0916 318.2186 318.2089 318.3731 320.1807 323.7 324.7737 325.387 325.6966 323.2586 324.2502 326.2574 328.13 329.7017 330.7553 330.9492 330.8043 330.8803 331.4505 332.6273 332.5781 331.4546 330.4572 327.8853 326.1035 324.4002 322.7895 317.1841 318.9197 321.6688 323.429 324.6465 323.7964 323.3339 322.9556 321.8116 319.5928 318.5244 317.6395 316.9902 315.4634 314.3781 313.3002 312.2731 310.528 309.8484 307.0587 306.3307 304.5271 303.5828 301.1592 300.7745 301.3028 301.2867 297.2199 296.7307 295.3468 294.3746 295.9514 298.4429 299.6011 300.0129 299.9419 297.1714 295.5644 294.2096 292.0357 290.5341 292.4626 292.5425 290.4151 286.5804 286.1447 287.2395 287.1544 287.7094 286.8931 284.8275 281.8984 278.7645 276.9006 277.9332 279.6556 285.7491 286.0849 283.7113 279.8992 275.6718 272.9921 273.4872 276.1623 278.004 278.0194 277.3339 276.7647 275.5511 273.9052 270.5634 265.3292 256.6361 256.4399 256.4023 254.6239 254.5046 255.6463 259.504 267.8319 273.9442 279.4686 274.8489 273.0898 271.0706 270.19 270.3945 269.6063 261.876 264.0781 270.1903 279.0078 278.5452 277.9399 277.0438 274.552 271.3044 267.6735 265.9523 264.3188 261.0315 262.1478 264.5465 266.6323 269.0478 272.3461 274.5381 274.4881 272.7506 277.1964 281.3173 284.8027 287.6843 289.0877 289.3944 290.4791 291.6062 293.358 293.9396 291.791 288.9244 286.3273 282.62 275.8238 268.4843 264.4401 261.8951 257.7999 255.9053 255.1962 255.1293 250.9253 250.6367 250.9797 250.3366 253.3236 258.9366 260.9962 261.4627 262.0742 261.6564 261.2657 262.1382 263.005 263.5358 262.7933 260.1265 259.5598 261.8328 262.7173 264.0783 265.0104 265.7007 267.0338 268.5866 269.801 271.2136 272.5114 272.9295 271.8922 269.5639 267.5435 268.0202 271.2055 272.4613 272.9421 273.8351 275.1848 275.9149 277.1433 278.0867 278.6 276.7772 275.1386 274.4076 274.1365 273.4475 272.8133 271.3062 270.5685 270.7807 270.7156 270.539 270.8199 270.003 269.2396 264.6298 262.4926 262.3885 262.6147 264.6381 265.8048 266.9358 267.7812 267.0322 265.6268 264.615 263.4118 261.305 257.1542 254.2952 250.2282 249.6611 248.9695 246.9626 246.6306 246.5066 246.6329 246.2106 246.2608 246.4653 246.2019 245.6136 244.5659 244.4061 244.1649 243.2173 245.3224 242.3766 242.6458 242.8086 243.7588 246.3213 247.7485 248.5676 249.3302 249.4344 248.7718 248.506 248.6618 249.3664 250.0434 250.6509 251.0203 248.8689 247.5219 239.6303 240.7894 240.568 241.6672 243.1364 242.0758 241.9911 241.8634 241.9469 241.2537 241.0559 239.9618 240.7852 241.22 240.9565 241.0689 241.4275 241.2703 241.242 241.2756 240.6183 241.1608 241.1854 241.1485 241.2334 238.106 241.1079 242.6587 246.957 250.5392 252.6035 253.089 251.8563 252.3608 252.0056 250.0596 249.8647 250.9405 252.0928 252.7877 254.632 256.2473 257.1844 256.1688 255.7439 254.727 254.818 254.4855 255.0117 256.9627 259.7417 262.3334 264.3532 266.0117 264.5909 262.7143 260.6964 258.7507 257.1843 256.1927 254.181 254.2355 255.4474 257.9641 259.6424 260.8616 261.7111 262.0669 262.2782 261.732 261.3247 260.9262 262.2281 261.5986 260.6381 260.6383 262.0187 263.4762 265.2101 267.1411 268.2783 271.5519 272.9592 273.3416 272.7501 271.37 269.5572 266.5135 263.6391 260.0469 255.5299 256.7902 259.9392 263.0683 266.0171 268.1834 268.5842 268.466 270.5173 271.925 271.3918 272.1591 274.547 276.1539 277.5968 278.2392 279.1169 279.9758 281.0877 281.6347 282.1335 282.5241 283.3583 282.6874 285.5138 283.3219 279.0839 280.7394 279.8338 277.8964 276.7658 277.1573 277.1527 276.0213 275.5087 275.3909 -9999 +-9999 -9999 331.3264 334.1448 326.866 328.45 331.0831 332.9178 334.9138 337.618 340.4121 344.0853 345.7324 351.1259 352.7177 350.3693 353.841 357.852 359.5456 361.6648 363.5901 365.3647 366.9882 369.5857 372.4192 375.5811 378.4346 381.1971 381.8731 383.1225 382.0426 376.8604 374.0641 371.7727 370.401 368.7304 364.5164 361.5971 361.1369 357.9775 351.3495 350.1655 348.2827 349.3686 349.3414 348.662 347.9359 347.4664 346.0951 345.2407 346.3772 347.4228 347.9654 347.3991 345.6522 344.0685 342.3737 341.2482 340.2961 339.8924 339.6326 339.6153 339.1543 337.937 336.643 335.4849 333.9585 331.3183 329.6229 327.8824 327.3645 327.0535 325.3853 323.4764 321.0276 318.1994 313.5376 313.1316 313.4485 317.2285 320.8315 324.8191 327.6358 329.3072 331.1931 331.8501 333.5404 334.506 335.2843 335.9884 337.5449 339.1069 341.002 342.1484 342.1429 341.8434 342.4469 343.2733 343.5623 342.84 341.8944 341.3208 339.941 337.8493 331.37 329.5421 328.5596 328.3767 328.4853 329.5685 328.9823 328.7709 328.1637 321.0588 319.0367 318.8945 320.1539 320.9773 325.1184 326.8744 328.1453 327.3069 325.987 324.6859 326.3368 328.4444 330.0432 331.4283 332.1778 332.102 332.4427 332.4859 333.0984 333.2257 332.4634 331.4736 329.9142 328.0864 326.132 324.7921 319.5669 319.1109 321.2447 323.3645 323.7561 323.1909 322.2399 321.6122 320.9955 318.7086 318.0019 316.8716 315.928 315.1485 314.5698 314.168 313.3381 312.9362 310.2483 308.5297 306.5469 306.2303 304.9403 302.561 299.8771 298.2469 301.2867 297.2199 296.7307 295.3468 294.3746 295.9514 298.4429 299.6011 300.0129 299.9419 297.1714 295.5644 294.2096 292.0357 290.5341 292.4626 292.5425 290.4151 286.5804 286.1447 287.2395 287.1544 287.7094 286.8931 284.8275 281.8984 278.7645 276.9006 277.9332 279.6556 280.5085 279.1374 274.7954 270.7352 267.9447 268.3977 268.6897 270.7074 271.5368 271.4667 272.8586 270.9576 269.4745 266.6126 263.6837 260.1217 256.0186 256.8831 256.5376 256.2854 255.9506 254.6152 258.971 264.7228 270.783 271.2104 268.2762 266.0347 265.6368 266.0871 266.5944 268.4596 263.2275 260.4112 267.6193 275.7357 276.2156 272.6339 271.2939 268.3607 266.4233 264.8955 263.6969 262.9111 259.2324 261.3414 263.3835 265.3044 268.8333 271.7178 274.1181 272.7145 270.3763 275.5243 279.8045 282.8875 286.0014 286.3177 286.9228 289.0476 290.9594 292.5734 294.4808 291.7943 289.2153 286.9641 283.3089 277.8353 270.3017 265.9029 263.6415 259.6201 258.118 257.7231 256.2079 252.892 250.4178 250.4756 250.6288 250.5681 255.9937 257.8625 259.4007 259.7283 258.849 259.133 261.1313 261.8412 262.2278 259.8775 258.6541 261.8008 263.4626 264.2875 265.2856 265.656 266.5766 267.4037 269.6506 270.807 271.4946 271.9233 271.0789 268.626 266.9019 265.8321 267.065 270.4462 272.0867 272.7858 274.0107 275.8018 277.7361 278.9916 279.589 279.3922 278.5593 277.0732 276.1205 276.5084 277.8458 276.5168 274.209 273.4084 273.3522 273.2921 273.0298 273.2538 273.2755 272.6906 270.5846 268.5197 265.2342 265.0716 266.3816 266.7296 268.4335 268.6624 268.8812 267.2495 265.6896 264.0229 261.5848 256.8381 254.0346 251.3047 250.7842 253.0105 252.0977 247.373 246.9085 246.4624 245.2212 245.0298 244.8938 244.8784 245.0377 243.4938 246.0095 247.3609 249.7726 248.4792 248.1649 244.0558 242.5572 242.4031 243.503 244.0531 245.1494 244.6665 245.487 247.1857 246.9213 247.647 248.9239 248.8557 249.4225 250.1134 249.1105 249.4232 239.6549 240.4481 241.2964 241.2063 241.613 242.1177 242.0226 241.8856 241.9442 241.4012 240.6198 239.0231 241.5227 241.3822 240.8999 240.9932 241.1771 241.1738 241.2175 241.0674 241.0187 240.8955 240.9764 241.0135 241.4583 238.0218 241.3487 241.324 242.1392 245.3044 248.0321 249.4819 247.6857 247.305 247.285 246.8608 247.9815 248.5029 248.8524 249.0135 250.4685 251.9571 253.3394 253.166 250.433 250.7215 250.5828 252.2628 255.0542 257.4303 260.0935 262.2864 264.337 265.8568 263.5088 261.3462 259.4494 257.9594 256.6981 255.3876 253.5249 253.1481 254.1352 256.8246 258.466 259.6696 260.0551 260.7446 260.5636 260.7938 260.3449 258.5805 259.2587 258.5378 259.2053 260.4982 262.7492 264.8199 266.6708 268.3204 269.4996 271.7027 272.2922 272.0228 271.307 269.3579 267.1967 264.195 260.7834 257.4337 255.5236 260.183 263.2656 265.8058 268.2562 270.1296 271.3107 272.0133 272.7391 274.8985 274.7144 274.7836 275.8619 276.8351 277.1824 277.5317 278.5296 279.3701 279.9213 279.8352 279.7274 280.6228 281.3867 283.2622 283.2368 285.7622 285.9244 280.8304 280.9135 281.9674 283.7206 284.0246 283.387 280.4072 275.8424 274.6169 -9999 +-9999 -9999 331.2924 337.0151 329.3466 328.8654 329.4295 331.5211 331.9426 332.4353 335.9967 339.711 341.3846 349.2885 347.1244 351.3245 354.3879 356.0349 358.4031 359.8109 361.3898 361.624 367.2586 369.6327 372.1126 374.4365 376.5928 378.9742 381.0628 383.7436 382.621 377.0898 373.8867 371.2881 370.1309 367.6334 365.8264 363.2551 360.6274 357.8043 354.401 352.6979 352.1219 352.6338 352.8831 351.5079 350.0757 349.2474 348.2906 347.4047 347.4241 348.042 348.4253 347.993 346.6022 345.5785 344.2468 343.0179 341.3184 340.1069 338.4659 338.5557 339.0684 339.0113 338.0337 336.5686 335.3348 332.9214 331.7501 329.566 328.5746 327.891 326.1394 323.9379 320.234 317.2531 313.7955 311.6486 313.4104 315.1729 319.9322 325.1451 328.141 330.0365 330.7269 332.2804 333.4848 334.8335 335.698 336.4049 337.2251 338.7038 340.3334 341.2562 341.6809 342.9139 343.5118 344.1398 344.6678 343.7289 342.4792 341.9702 340.4392 338.5273 337.6597 337.7204 337.1762 336.1252 334.5311 333.0693 332.1827 330.7378 329.1234 318.4534 318.4653 320.9338 321.97 322.278 324.2536 327.7201 329.2438 330.07 328.0933 326.4946 326.6642 328.455 330.3012 331.5731 332.5734 333.3861 333.7131 333.6499 334.0663 334.3089 333.6463 332.6529 331.7713 328.0864 326.132 324.7921 319.5669 319.1109 321.2447 323.3645 323.7561 323.1909 322.2399 321.6122 320.9955 318.7086 318.0019 316.8716 315.928 315.1485 314.5698 314.168 313.3381 312.9362 310.2483 308.5297 306.5469 306.2303 304.9403 302.561 299.8771 298.2469 296.7982 294.5234 293.3479 292.541 292.1635 294.307 296.8966 297.7808 298.0566 298.0236 296.2972 293.9622 291.8291 290.831 287.6232 289.0227 289.3491 287.5305 284.304 284.4579 283.4132 282.993 281.6538 279.0901 278.4856 278.3423 276.9936 276.0714 274.6093 275.3145 273.9202 270.9722 268.5358 269.538 268.8447 268.2995 267.2899 267.124 266.8936 266.9872 266.2664 265.8345 263.1425 263.0782 264.0136 264.0983 258.3109 256.9039 256.5764 256.305 255.9467 255.5127 253.6743 260.6965 266.8188 263.6074 260.6534 259.3129 260.315 261.7537 263.5751 266.3054 265.5749 257.8277 261.6262 268.7504 270.2912 268.9321 265.7016 263.6964 262.6309 262.0417 262.1242 262.2863 257.6379 260.331 261.7611 264.2771 267.8218 271.0504 272.4803 270.9793 269.1432 273.9082 277.5695 280.8247 282.6065 284.9841 286.9428 288.3835 289.9036 291.7779 294.6793 292.7241 288.4388 285.8835 284.901 281.1932 275.8978 270.9919 267.9473 263.3315 260.9826 258.444 256.381 254.2012 250.5961 250.2537 250.5711 250.2856 252.4257 254.7666 256.6265 256.4554 256.6366 258.3535 259.6667 260.2491 260.6792 257.7372 259.3271 262.16 262.3557 264.6741 267.6503 267.4808 268.0957 269.6579 270.2459 269.8039 268.7911 268.842 268.2799 266.7829 265.0235 265.0288 266.522 270.1783 271.614 272.7827 273.9717 276.562 278.5429 280.2203 280.0959 278.9317 277.816 278.7361 278.1568 278.5567 279.5395 279.5667 278.4778 276.6927 276.0125 276.0781 275.3663 275.1347 275.2835 273.9777 271.4984 268.2709 265.9682 267.404 267.7631 268.3083 270.3376 270.0033 269.4429 268.0984 265.9367 263.5986 261.0753 255.9827 253.7958 252.8936 252.8241 253.2795 248.9347 247.9436 247.8126 247.2066 247.6895 245.9184 244.3552 244.1772 248.1816 249.6402 251.5979 253.0456 253.9785 253.1228 253.303 250.7811 246.748 242.3976 242.2457 242.2809 241.9783 241.6179 244.7616 245.2447 244.3918 246.034 246.9031 246.5584 246.9624 246.6723 245.9116 246.2289 239.7842 240.7292 241.3177 241.7042 241.2639 241.4102 241.6264 241.5445 241.6661 241.321 240.4168 239.0332 241.5801 241.5601 241.3843 240.898 240.744 240.7157 240.9448 240.8464 240.9651 240.7151 240.8044 240.8793 241.1268 237.9973 241.5456 240.8468 241.0356 241.2804 242.8862 243.6891 242.7221 242.2654 242.7386 243.9395 243.4661 245.7196 245.9914 246.9018 247.872 249.5992 250.2355 248.8789 247.3749 247.3875 246.1681 249.4175 253.9158 256.8916 259.7277 262.2534 264.5704 265.5543 262.5703 260.7885 258.7295 257.2803 255.8351 254.5418 252.8251 252.413 253.1564 255.9212 257.3973 258.5365 258.7557 258.9352 258.9465 258.9902 258.7932 257.7982 256.5608 257.505 259.9465 262.8058 264.7579 265.952 267.3841 268.6103 269.4325 270.5463 270.1559 270.1165 269.0843 267.273 264.8111 262.2421 258.3041 254.689 259.6008 262.1902 264.6274 266.7195 268.9187 270.8317 272.616 273.3839 274.2986 275.438 275.4368 275.4518 275.8465 275.816 276.0318 276.6033 277.1231 277.401 277.382 277.0525 277.4161 279.041 280.8315 282.6371 283.3789 283.821 284.7302 284.1738 283.8814 282.2448 282.8373 283.1249 283.5514 282.1637 280.5393 279.1015 -9999 +-9999 -9999 335.0342 335.6467 340.644 340.5176 340.0169 341.1313 342.3097 342.4264 341.3135 338.7214 337.8737 343.9909 346.0754 348.7349 350.8339 352.8606 354.8412 356.7351 357.7746 360.4091 366.0286 368.9751 370.8666 373.4431 376.1872 378.6047 381.0789 383.1082 382.4436 377.7407 374.85 372.8448 370.7732 368.2455 366.2675 364.2717 362.1105 359.5117 356.1668 355.1357 354.1596 354.2452 354.1113 352.759 351.2018 350.4818 349.2296 348.2685 348.1759 347.8866 348.4148 348.3412 347.6957 346.3964 345.0256 343.5421 341.1855 339.5006 337.6847 337.3402 338.1938 338.933 338.7633 338.0097 336.6173 334.4314 333.2221 330.9419 330.2272 329.396 326.8486 323.9835 319.5047 316.228 314.1318 313.5066 317.0339 318.9898 322.5256 325.6366 327.8195 328.8964 329.0255 331.9091 333.1443 334.3875 335.2662 335.9322 336.3235 337.0903 338.6509 339.5788 341.8985 343.2409 343.942 344.9224 345.3058 344.7834 342.9998 342.4672 341.9094 340.8232 341.1875 341.8991 341.7656 340.364 337.3103 333.0693 332.1827 330.7378 329.1234 318.4534 318.4653 320.9338 321.97 322.278 324.2536 327.7201 329.2438 330.07 328.0933 326.4946 326.6642 328.455 330.3012 331.5731 332.5734 333.3861 333.7131 333.6499 334.0663 334.3089 333.6463 332.6529 331.7713 329.8316 328.6284 326.7527 322.2661 322.0596 322.6883 323.3689 323.0622 322.1222 320.9264 320.5005 319.8299 318.1738 317.9622 316.4979 315.7938 315.2282 314.6346 314.0985 313.6443 313.364 310.6019 309.3067 308.5496 306.9125 306.4513 305.0522 303.511 302.6136 301.1461 297.2107 294.8138 291.4483 290.3938 292.2334 294.5334 295.3272 295.5836 295.9392 293.2961 291.2363 288.0488 287.6747 286.5812 284.1205 283.3231 281.8745 280.1641 277.9849 279.0178 278.4879 277.9382 275.4271 274.8605 274.5811 274.368 273.6986 272.3198 271.5548 269.7609 272.6146 275.8441 274.2574 270.3738 268.6624 267.5942 266.8437 267.0087 266.7282 267.0795 267.3297 270.6106 274.0362 275.2027 272.0538 261.1922 257.1654 256.5324 256.1922 255.9782 255.7817 255.7869 257.9427 260.8323 255.4938 254.9628 255.2838 256.6674 257.6808 259.9575 264.5554 266.1179 259.4051 255.8385 256.5674 258.4731 260.8612 260.1629 260.1703 260.4782 260.9233 261.544 261.7975 256.7638 258.8434 260.7606 262.9503 266.2467 269.3872 269.4799 268.3938 266.8735 272.0948 275.1227 279.712 283.5226 285.1898 285.3621 284.6136 287.8411 291.186 293.6769 290.8975 285.2275 282.9065 284.2305 282.0164 278.9391 273.7197 268.9478 264.1361 261.2335 259.0071 257.1081 254.9119 252.0263 250.5549 250.1745 250.3914 250.5242 252.6735 253.4394 254.9489 256.59 257.7505 258.0627 258.5495 259.0638 257.6575 259.3624 261.9272 264.3427 266.3851 267.4927 267.681 268.5999 269.3345 268.7862 267.9305 267.5166 267.4104 267.2302 265.8293 263.9992 263.3163 265.1636 269.0927 270.2975 271.0903 272.7657 275.0578 277.5405 278.8166 278.4142 277.8981 276.5078 277.629 278.979 279.3302 279.8323 280.3987 281.3 280.6899 279.4308 278.3907 277.0366 275.9926 275.1198 273.1203 269.7085 268.8935 269.7968 269.889 269.7747 270.392 270.4065 270.1507 269.5263 267.5099 265.0197 262.2263 260.3706 255.7476 254.9897 253.9062 254.0443 251.9162 248.6765 248.8688 248.4951 248.1438 251.0899 251.2549 249.8007 252.7068 253.4742 252.4261 254.098 257.5973 258.1132 256.5798 257.4149 255.2291 250.9548 244.8075 242.0031 241.6965 241.68 241.8313 242.7147 242.3595 241.7996 241.6704 242.3828 242.7556 242.6263 241.3639 240.7804 240.9938 240.663 239.8974 240.3996 242.2334 241.7048 241.479 241.3932 241.394 241.4032 240.8036 240.6122 239.0617 241.6529 241.5036 241.1223 241.8066 242.0826 241.7152 240.4792 240.6012 240.5723 240.8207 240.7384 240.5689 240.6174 238.1324 241.2735 241.0807 240.6993 240.3593 240.615 240.7164 241.0129 240.9815 241.0956 241.4033 242.2035 243.7421 243.9936 244.6977 245.7001 246.7723 246.8447 245.0606 243.6437 243.8443 244.5465 250.473 256.3452 258.9652 260.8904 263.1445 264.8438 265.364 261.327 259.7618 258.0921 256.6371 255.4442 253.7946 252.6005 250.2113 252.5959 256.1768 257.2247 257.7928 257.4699 256.4449 256.098 255.6308 255.216 254.6597 257.6971 259.9052 262.0367 263.9913 265.1663 266.1755 267.0698 267.5126 267.8573 268.2796 267.9788 267.7219 266.5843 264.8983 263.2431 262.2421 258.3041 254.689 259.6008 262.1902 264.6274 266.7195 268.9187 270.8317 272.616 273.3839 274.2986 275.438 275.4368 275.4518 275.8465 275.816 276.0318 276.6033 277.1231 277.401 277.382 277.0525 277.4161 279.041 280.8315 282.6371 283.3789 283.821 284.7302 284.1738 283.8814 282.2448 282.8373 283.1249 283.5514 282.1637 280.5393 279.1015 -9999 +-9999 -9999 338.2914 336.6213 344.8444 346.7776 347.5609 348.3275 349.1892 349.9088 350.5021 350.1544 348.1202 342.321 343.4479 344.4906 346.3383 348.8313 351.4742 353.6187 355.774 359.3723 364.8661 366.9215 369.3176 372.5745 375.4089 377.5353 380.4114 382.3127 382.4996 377.7847 374.6477 372.5195 371.0408 369.4683 367.5685 365.4568 363.1623 360.5474 357.4729 357.2482 354.6062 353.5159 352.6088 351.6133 350.6178 349.8474 349.149 348.5941 347.7029 347.2712 347.6571 347.9315 347.6277 346.3283 345.0133 343.4217 340.2693 338.7199 337.2038 336.0983 337.1871 337.9771 338.0779 337.8776 337.1693 335.3275 334.0192 331.8085 330.944 329.7146 326.6431 323.5405 318.6921 315.8517 314.1956 314.2553 317.6637 319.0682 319.459 325.6366 327.8195 328.8964 329.0255 331.9091 333.1443 334.3875 335.2662 335.9322 336.3235 337.0903 338.6509 339.5788 341.8985 343.2409 343.942 344.9224 345.3058 344.7834 342.9998 342.4672 341.9094 340.8232 341.1875 341.8991 341.7656 340.364 337.3103 334.7103 332.1369 329.5471 326.4078 318.5262 320.5806 322.7127 324.5009 324.2126 323.6625 326.0746 328.2614 330.2305 329.4583 328.7746 327.8177 328.6689 330.8839 332.0505 332.9262 333.9221 334.7983 334.9455 335.2607 335.3341 335.0022 334.3395 333.3889 331.4933 330.0258 327.8478 325.3918 324.8949 323.8375 323.1323 322.4302 320.9231 319.9137 318.053 317.8558 316.7154 315.6884 315.2021 314.4197 313.9279 313.6057 312.9985 312.6605 312.5845 310.9012 309.6447 309.0237 308.4061 307.1093 306.5673 305.8572 305.2095 304.5586 301.4573 298.978 295.0741 290.3431 289.7468 291.5622 293.1082 293.1025 292.9296 292.1832 288.4501 284.3922 282.739 280.087 279.2525 279.6668 277.2937 277.4798 276.0735 274.8273 274.5205 272.8862 274.8828 272.9369 272.2572 271.9239 271.5834 271.1684 271.1478 272.5059 278.5554 282.2089 280.8034 274.3238 270.6796 271.0844 270.5033 269.9564 270.9061 273.3902 276.7251 277.5128 278.1933 280.0784 278.5258 266.4759 260.2801 256.7529 256.055 255.6749 255.6953 255.4318 254.8298 255.1923 255.1586 255.1123 254.8273 255.1696 255.5663 257.3615 262.1318 261.3055 256.6024 252.3224 252.0935 251.8951 253.2096 254.9407 256.1599 261.3191 262.4169 262.2573 260.7922 255.5839 257.9788 260.579 261.1513 262.8542 264.8514 265.0769 264.9656 264.9701 269.2463 273.7339 278.754 282.833 283.0034 279.2928 283.9676 287.2422 290.1198 291.9448 287.6501 281.0297 279.0698 281.9273 281.5916 278.786 274.7925 269.9062 265.4953 262.9359 260.691 258.2956 256.2303 255.7228 252.1958 250.0294 250.0668 249.9456 251.0812 253.0679 254.6763 255.4397 255.4802 256.1007 256.966 257.4616 256.1684 258.083 261.0266 263.3683 265.8352 265.8593 266.0978 266.8886 267.2195 266.5039 265.6428 265.3661 265.4787 266.7565 265.4371 263.0373 262.2808 264.4685 267.4207 269.019 270.1143 271.5787 272.8375 274.6591 275.6377 275.4445 275.4344 275.1255 276.5918 277.9268 279.4066 279.8931 280.3331 280.2924 280.942 280.7752 278.8865 277.0362 274.6311 272.9425 271.0519 270.6791 272.03 272.1915 272.0529 271.7232 272.1323 270.4244 270.2019 268.9562 266.1117 263.5644 260.5226 258.7987 256.9188 254.8154 254.0989 254.3543 249.9686 248.5947 251.1192 253.074 253.6718 255.464 254.9775 257.2693 259.1796 259.0288 257.6149 255.1087 259.2113 261.7444 260.5093 260.2985 258.1023 254.7426 250.6879 247.1331 242.406 242.105 241.5781 241.7121 241.7009 241.7893 241.0547 240.6593 240.8864 242.1921 242.7728 242.1451 241.1547 240.6578 240.0453 240.2831 242.5553 241.9472 241.6821 241.5892 241.3953 241.5135 240.837 240.6616 239.1107 241.726 241.4391 241.793 243.153 242.9602 242.4703 241.2658 240.92 240.5317 240.4929 240.4694 240.3318 240.3219 240.4696 239.8099 241.4528 241.3173 241.0656 240.7332 240.6128 240.2579 240.3428 240.5424 240.3472 241.2479 242.3144 242.2462 242.4872 243.1891 243.291 243.4631 241.9489 241.7605 246.8438 252.0134 255.5275 256.3452 258.9652 260.8904 263.1445 264.8438 265.364 261.327 259.7618 258.0921 256.6371 255.4442 253.7946 252.6005 250.2113 252.5959 256.1768 257.2247 257.7928 257.4699 256.4449 256.098 255.6308 255.216 254.6597 257.6971 259.9052 262.0367 263.9913 265.1663 266.1755 267.0698 267.5126 267.8573 268.2796 267.9788 267.7219 266.5843 264.8983 263.2431 260.5164 255.8793 254.1805 260.825 263.4557 265.313 267.1782 269.2162 271.4738 273.1358 274.2614 274.4069 274.0704 274.1336 274.124 274.2738 274.5139 274.7172 275.4355 276.2796 275.8007 276.4712 276.9681 277.4493 278.8841 280.2307 281.2363 282.2273 283.2567 283.4212 284.2585 284.1001 284.0468 284.2186 283.9035 283.7374 283.1577 282.3665 281.1909 -9999 +-9999 -9999 340.7806 337.9813 346.5558 349.7794 352.2849 353.5107 354.6057 355.3774 355.8735 355.7251 353.7772 351.1621 350.55 347.089 347.0783 347.4223 349.0033 351.8452 353.161 356.3715 363.7429 366.2437 369.2245 372.2103 374.4731 376.9591 379.9361 381.4854 381.6578 375.7429 372.2244 370.598 369.3831 369.1526 367.5569 364.8061 362.9399 361.2119 357.7115 356.5377 354.0854 352.1326 350.1891 349.2009 349.0103 348.7109 347.9622 347.6197 346.8219 346.6451 347.4863 347.9315 347.6277 346.3283 345.0133 343.4217 340.2693 338.7199 337.2038 336.0983 337.1871 337.9771 338.0779 337.8776 337.1693 335.3275 334.0192 331.8085 330.944 329.7146 326.6431 323.5405 318.6921 315.8517 314.1956 314.2553 317.6637 319.0682 319.459 320.4256 323.7428 325.114 327.0046 329.757 331.6444 332.6761 333.645 333.8195 334.6192 336.3828 338.2954 339.5748 341.7921 342.7818 343.7367 344.8775 345.2907 344.708 343.9955 343.5012 343.0244 342.1726 342.588 342.6767 342.3335 340.6941 338.3954 335.0586 330.9295 327.7173 324.2226 320.358 323.408 324.2179 326.2576 326.5556 325.1174 326.7096 328.5622 330.26 330.8793 330.5104 329.6513 329.2288 330.6985 332.5004 333.8735 334.4425 335.1393 335.8688 335.9324 336.1445 335.912 335.6588 334.3819 332.5187 330.5162 329.0047 326.1628 325.9856 324.2284 323.0659 323.1422 321.7319 318.1643 315.9081 314.9355 314.5777 314.0255 313.3045 312.0849 312.0947 311.6723 311.2402 311.1788 310.9027 310.4809 309.8533 308.8415 308.4183 307.2975 306.9899 306.7105 306.4819 305.7943 302.8024 300.3465 297.3681 293.2159 288.1905 288.6965 290.6856 292.126 292.3647 291.3228 285.1045 281.4667 280.0208 279.459 279.4167 278.8256 280.138 282.4668 277.6395 276.692 276.3856 275.3639 274.5605 275.6271 272.9416 272.5983 272.7751 273.2538 272.8518 275.6758 281.4137 285.6631 286.1924 281.2856 275.6017 274.2796 275.3286 276.7832 275.8181 276.1481 280.5717 282.099 281.7611 282.8961 284.0531 271.3575 264.6849 259.5614 256.7427 256.1716 255.8264 255.4549 255.3216 254.4565 253.8544 254.8413 254.7837 255.0109 254.7884 255.6963 257.8155 254.1242 252.2961 251.3598 251.9785 252.0374 251.4279 251.7108 252.1708 259.9576 264.097 262.9049 254.0873 257.5606 259.2523 259.8021 259.7208 259.8589 260.66 261.2326 262.0067 262.8018 264.3517 269.5257 274.5712 275.5493 274.6927 277.9804 283.1766 286.6558 289.7274 288.7627 283.9002 276.91 275.5025 279.0731 279.3482 277.4122 274.4863 271.3893 267.203 264.8778 262.5457 260.207 259.8227 259.5645 258.8934 254.179 249.952 249.8844 250.7852 254.2741 254.6132 252.8325 252.8719 253.8477 255.2237 255.4487 254.6976 257.059 259.5371 261.6093 263.4501 263.7304 263.9698 264.8677 265.4749 264.9044 264.2226 264.4918 265.4371 266.817 265.9838 263.6932 261.0588 261.954 265.2401 267.1368 268.472 269.493 270.3751 271.4843 272.2279 272.6348 272.9325 274.8312 276.6577 277.9858 279.1707 280.0578 280.7081 280.579 280.4345 280.4266 277.5481 275.236 273.9415 273.1543 273.686 273.4114 273.9328 274.5122 273.9858 273.1494 272.6893 270.3801 270.1835 266.9221 264.2527 261.7779 260.5974 259.2713 257.1276 255.6645 254.2832 252.3662 250.0244 251.0425 253.5971 255.9833 256.5193 258.1588 258.0114 260.4115 262.7742 263.0079 262.3625 259.4963 259.1776 263.313 263.9787 264.5438 263.3203 258.8803 255.7362 251.3858 247.5719 244.4122 241.9099 241.4594 241.3458 241.0142 243.5275 246.1071 247.6981 249.4469 247.4761 242.4172 239.7124 239.7906 241 241.1475 242.757 242.5199 241.6835 241.8622 241.8733 241.9028 240.9223 240.4118 239.1107 241.726 241.4391 241.793 243.153 242.9602 242.4703 241.2658 240.92 240.5317 240.4929 240.4694 240.3318 240.3219 240.4696 239.8099 241.4528 241.3173 241.0656 240.7332 240.6128 240.2579 240.3428 240.5424 240.3472 241.2479 242.3144 242.2462 242.4872 243.1891 243.291 243.4631 241.9489 241.7605 246.8438 252.0134 255.5275 258.5264 260.9762 262.1812 263.5786 264.9779 265.0442 261.046 259.4519 257.8527 256.6199 255.202 252.9648 251.2726 249.3577 251.5779 255.5295 256.6525 257.0666 256.5516 254.8966 253.2729 251.0194 254.0905 257.0409 260.6849 261.9801 263.0846 264.188 265.1349 265.5932 265.7416 265.8989 266.1673 266.3163 265.797 265.2207 264.1331 262.5998 261.049 258.3144 253.3004 255.9567 260.2954 262.9854 266.0234 268.3137 270.1834 271.9807 273.231 273.737 273.2351 273.0977 272.8572 272.873 273.0363 273.2233 273.2813 273.7932 274.3236 274.6067 276.1177 276.8967 277.5719 278.3037 279.526 280.3998 281.1677 281.3421 282.8461 283.8073 284.2775 284.47 284.7176 284.2222 283.8799 282.1122 281.5224 280.9652 -9999 +-9999 -9999 345.82 340.0251 345.485 350.3367 353.8185 356.3868 358.8228 359.6073 360.1598 360.0453 358.3024 353.8 358.4492 358.9131 358.6484 358.3759 356.5503 353.6224 351.7379 356.3029 361.4825 364.4475 367.3985 370.295 374.6363 376.9591 379.9361 381.4854 381.6578 375.7429 372.2244 370.598 369.3831 369.1526 367.5569 364.8061 362.9399 361.2119 357.7115 356.5377 354.0854 352.1326 350.1891 349.2009 349.0103 348.7109 347.9622 347.6197 346.8219 346.6451 347.4863 347.465 346.6361 345.8441 344.3451 342.9671 339.504 337.7589 336.3939 335.0743 335.1159 336.0624 336.375 336.686 336.8046 335.3619 334.1404 331.8762 330.5613 328.8804 326.6808 323.7647 319.5403 316.0383 314.24 314.9592 317.9329 317.4209 318.0515 320.2721 322.0612 322.6708 324.9203 325.7802 327.4491 328.9974 330.8988 332.5343 333.8072 334.8419 336.9953 338.1511 340.3426 341.9504 343.2636 344.4636 345.2393 345.093 344.6643 344.6168 344.1207 342.0317 340.8308 340.1796 339.4815 338.0935 336.6553 333.6584 327.7684 322.422 320.2989 322.6159 325.6709 326.7529 327.7838 328.7376 327.8876 327.186 328.8715 331.3784 332.6575 332.2134 331.3641 330.9998 330.9259 331.6609 333.4381 334.8973 335.5914 336.0136 335.742 335.8602 335.464 335.0797 335.4315 334.2021 331.9402 330.0629 326.7114 326.684 325.1696 323.5397 321.9856 320.1337 319.248 317.6487 315.3228 311.6452 311.5137 311.0057 309.8636 309.5448 309.8847 308.9775 309.5486 309.3528 309.3381 308.3628 307.892 306.7207 306.0763 306.3329 306.573 305.9037 304.9113 302.3245 299.8899 297.0043 294.418 289.6803 286.7766 287.7752 286.1657 286.801 283.578 281.0783 280.4328 279.869 279.4224 282.9878 286.5391 288.541 287.792 283.5736 284.8512 283.0069 281.2802 278.3851 276.7354 276.5486 276.1485 276.8744 275.4972 275.9332 276.2168 281.8985 285.9881 288.4069 286.9938 282.9428 279.8389 278.4974 281.4524 281.1461 279.6793 281.548 285.3448 285.4429 284.8041 285.8277 275.292 267.8021 263.3881 260.8433 259.2726 258.0591 255.9564 255.8297 257.6222 259.9178 256.6328 254.5294 253.1709 254.5721 254.1815 250.8962 251.4651 252.6213 252.2287 252.2282 251.1144 251.8453 251.6723 252.9449 263.0087 263.3121 262.0811 253.9141 259.5958 258.8674 260.3692 262.074 261.9941 261.6719 261.2128 260.7766 260.3761 258.4416 261.9349 265.6481 271.0863 276.8616 280.8063 284.161 286.5104 288.6843 284.4388 280.0656 274.0089 272.3908 274.1619 274.1958 274.7534 273.1196 271.1586 268.9132 266.7856 264.363 263.4352 262.7997 263.4115 262.6964 257.6725 250.3407 249.9582 249.7819 252.8804 253.134 251.8086 252.0553 253.3575 253.9756 253.2024 254.5551 255.6051 258.4619 259.5666 260.9247 261.6344 262.6873 263.9386 265.5294 263.947 263.892 264.5661 266.157 267.4071 267.6389 264.8399 260.6556 261.0383 262.8575 265.0678 265.9077 266.7607 268.191 269.2173 269.7982 270.4661 271.6326 274.5729 276.0959 277.0647 278.522 280.0374 280.7987 281.323 281.0582 280.8201 278.7337 277.7811 276.7793 275.5135 275.886 275.5725 275.5933 276.1111 275.5469 273.8336 271.9803 270.4596 270.1567 265.2911 264.2374 264.0582 262.197 260.9602 257.2313 256.1621 255.0306 252.2851 250.481 251.0629 253.3176 256.393 258.3091 260.7485 260.1028 262.0739 262.7742 263.0079 262.3625 259.4963 259.1776 263.313 263.9787 264.5438 263.3203 258.8803 255.7362 251.3858 247.5719 244.4122 241.9099 241.4594 241.3458 241.0142 243.5275 246.1071 247.6981 249.4469 247.4761 242.4172 239.7124 239.7906 241 241.1475 242.757 242.5199 241.6835 241.8622 241.8733 241.9028 240.9223 240.4118 239.27 241.6436 242.1935 243.7127 244.1925 243.9552 243.8917 241.8713 241.1967 240.8257 240.7703 240.6524 240.3376 240.0357 240.8871 238.0131 241.3499 241.3022 241.2036 241.0483 241.2206 241.1353 240.9694 239.9442 239.5772 240.7123 240.8681 240.9295 241.4363 241.3196 240.8374 240.4652 240.1535 241.0355 248.9608 252.8291 256.9146 260.1925 262.625 263.584 264.8282 265.3046 264.968 261.4532 259.2019 257.3538 256.2427 255.0004 252.5598 250.3805 249.0603 251.2429 255.2174 255.9837 255.6901 255.1328 253.3367 250.6926 254.241 256.8533 259.0028 261.8132 262.5774 263.1767 263.6554 263.8051 263.7967 263.712 263.8312 264.5081 264.0801 263.8642 263.278 261.8985 260.1931 258.2438 255.8449 252.2907 255.1706 262.6685 264.1041 265.2168 267.9703 270.0233 271.5877 272.903 272.9745 272.4223 272.0202 272.2642 272.2034 272.2856 272.3864 272.6906 273.1119 273.422 273.5141 275.5196 276.735 277.0844 278.0524 278.6648 279.5408 279.1946 278.9049 278.6302 282.4637 284.1259 284.8708 285.3229 284.4245 283.323 281.4816 280.4137 279.661 -9999 +-9999 -9999 345.82 340.0251 345.485 350.3367 353.8185 356.3868 358.8228 359.6073 360.1598 360.0453 358.3024 353.8 358.4492 358.9131 358.6484 358.3759 356.5503 353.6224 351.7379 356.3029 361.4825 364.4475 367.3985 370.295 374.6363 376.3435 378.8216 380.7614 379.9992 375.4118 372.9006 369.6878 366.6725 366.1945 366.1671 364.0378 361.7249 359.7464 357.4261 355.5234 353.766 351.7794 349.9264 348.2191 347.2872 347.0478 346.881 346.3863 345.409 346.0715 346.8847 346.3651 345.0972 344.7908 343.7302 342.3852 338.9944 337.0724 335.2913 334.2933 333.588 333.6173 334.2543 334.697 334.9497 334.6003 333.305 331.0936 329.9109 327.8907 325.1998 322.6177 319.3133 316.4196 313.8746 315.2223 318.4568 322.2189 324.2098 326.5161 329.3506 331.9121 332.1071 332.472 331.2588 330.6946 329.1508 329.558 330.8073 333.0153 334.8163 336.2993 339.0903 341.1147 342.7764 344.1668 345.1073 345.5619 344.906 344.7012 343.833 341.2794 339.2873 337.2521 335.7291 334.2694 332.8672 330.001 324.3377 321.1255 323.588 327.4819 328.8049 329.5204 329.5285 330.579 330.7471 329.9152 329.0691 332.0073 333.8865 333.9917 333.0907 332.6489 332.4391 332.2901 333.8398 335.5292 335.9236 335.7413 334.7998 334.3055 335.2375 335.3426 335.2763 335.2008 333.3665 330.1029 327.4188 326.5896 325.1346 323.6797 322.5748 321.5446 320.7007 319.435 316.7527 313.0491 310.555 309.2361 307.6994 306.8609 306.7972 306.2648 306.6709 306.3925 307.2744 306.4677 305.6049 305.3844 304.4046 304.5139 305.0117 304.9866 303.3205 300.0522 297.2358 292.7932 289.2127 287.4565 285.1155 284.153 282.8353 282.3416 280.9761 280.8349 280.2134 282.0575 287.3142 290.005 291.2605 292.4239 290.8851 286.3115 288.4417 288.943 287.8659 284.6057 281.3322 280.3447 278.9519 278.07 277.6767 278.7502 277.8891 281.7966 285.4785 289.3005 289.6216 288.0005 284.8379 280.3679 283.086 284.7564 282.6615 281.7205 285.017 287.506 286.9918 285.7623 276.4162 270.1964 266.404 264.5066 262.0348 260.4687 260.7518 260.509 266.0523 270.4332 268.1068 259.0993 254.7177 254.6201 255.2906 260.9283 261.963 258.3863 253.9297 251.9799 251.6562 252.106 250.8566 252.7243 258.3056 261.6321 258.1582 257.1001 260.4559 258.2684 262.9793 265.7478 266.8951 265.9765 265.4426 264.5507 260.5137 256.4896 259.2915 262.5399 269.6746 275.2123 280.0558 283.7659 285.6661 285.9898 279.0836 274.4939 270.6776 269.4808 268.7327 269.0168 270.5551 270.3278 269.3663 268.8409 268.0666 266.7243 266.0141 265.6566 266.109 264.7681 260.3561 252.1032 249.7656 249.1169 249.7383 249.7945 251.0078 252.2975 253.0326 252.7599 252.4168 254.4646 256.5696 257.1819 259.0309 259.9467 260.9778 261.8415 263.3989 264.5718 262.19 261.9472 263.6928 265.2065 266.7568 267.2062 266.5591 262.9055 258.1176 262.3543 263.5945 264.0176 265.5049 266.7306 268.0096 268.8214 269.7704 270.9437 273.7696 276.2173 277.5709 278.5524 280.0374 280.7987 281.323 281.0582 280.8201 278.7337 277.7811 276.7793 275.5135 275.886 275.5725 275.5933 276.1111 275.5469 273.8336 271.9803 270.4596 270.1567 265.2911 264.2374 264.0582 262.197 260.9602 257.2313 256.1621 255.0306 252.2851 250.481 251.0629 253.3176 256.393 258.3091 260.7485 260.1028 262.0739 264.5281 266.0006 266.2436 262.4933 261.0448 265.2519 267.3706 267.4952 265.2356 261.715 259.5783 256.1503 252.8967 250.7866 246.5006 242.0144 242.135 245.0009 249.0468 252.1608 252.2337 251.1769 245.136 241.1737 240.5209 240.933 240.3895 240.321 242.8735 242.3784 241.9289 241.36 241.9348 240.7806 241.1278 240.1216 239.886 242.1358 246.5852 248.2817 248.5503 248.2705 247.9439 243.1249 241.0114 240.7465 240.7097 240.7712 240.3879 239.9879 240.8919 237.9645 241.5679 241.427 241.1864 240.9861 240.9812 241.2312 241.0463 239.8733 238.3094 240.0981 240.7517 240.571 240.4232 240.3824 240.2903 239.9361 239.7827 240.3063 248.3085 253.7358 257.7419 261.085 263.024 264.4196 265.5849 266.1698 264.2491 260.2787 258.7021 256.8096 255.3289 254.0606 251.885 248.1594 248.5678 251.1463 254.4163 254.6402 254.2412 253.605 250.5856 253.0524 256.3806 258.7025 260.2205 262.1309 262.1843 261.9871 262.0717 262.0722 261.9849 261.7262 262.4789 263.2673 262.4959 261.998 260.7025 259.8881 258.2761 255.925 252.9901 253.0944 255.4871 263.6212 266.5569 268.1282 270.0201 271.1638 272.1537 272.8254 272.3644 271.9773 271.5016 271.5564 271.4122 271.4359 271.8591 272.3336 272.1651 270.082 267.7382 267.5746 270.0682 273.3629 275.591 277.0038 278.1189 276.8726 276.2199 276.8438 282.5493 282.8138 283.774 285.17 284.3596 283.2368 281.7402 280.2186 278.7026 -9999 +-9999 -9999 349.2329 345.0915 348.9304 351.1525 352.9939 356.4084 359.3437 361.5179 362.8513 363.7761 362.769 359.998 362.3101 364.2423 364.5328 363.9794 363.5643 360.3872 356.9191 357.9812 365.7464 367.4572 369.2743 373.0219 374.4833 376.927 378.8057 380.6382 379.8807 374.0853 371.3416 369.2032 366.3945 363.4095 363.2458 362.0005 359.7829 357.8304 354.7915 353.543 352.3897 351.0239 349.7467 348.3336 346.2715 345.7156 345.796 345.1664 344.7213 344.3049 344.6613 344.1189 343.2625 343.1946 342.6186 341.8152 339.7467 338.558 335.8392 334.0127 332.358 331.3206 331.7556 332.2195 332.7655 332.8733 331.3528 329.5414 330.0901 329.3407 327.3593 324.1853 319.1913 316.3485 313.8952 315.3151 317.9265 322.3274 325.7775 328.3372 330.4885 332.6093 334.6342 337.4079 336.7953 338.0177 336.8849 333.034 330.6203 331.8774 333.7492 335.0773 338.6723 340.2198 341.7335 343.8195 345.1049 345.809 345.0939 344.7958 343.7245 340.9809 338.9227 336.3858 334.6884 332.2653 330.0881 327.2136 323.7511 323.4008 327.5389 330.7725 331.948 332.6325 332.1752 332.2159 332.4132 331.6986 330.3219 330.7065 334.5002 335.0788 334.7616 334.1802 333.9934 333.7486 334.772 336.0695 336.3105 334.8595 332.9672 332.3939 333.4018 333.938 334.2473 334.2496 333.0327 330.6534 327.4856 326.1853 325.0132 323.9449 322.5188 321.2582 320.7082 319.8015 316.9582 315.1331 313.4563 311.3398 309.6092 308.0055 305.664 304.6435 304.1361 303.7075 304.7672 304.0656 304.4774 302.8369 301.9775 302.4321 303.5857 303.7445 301.8697 296.7306 290.985 286.7941 285.2215 284.5324 284.1049 283.4984 282.8697 282.2392 281.7792 282.5128 285.3159 289.4272 293.0827 294.7028 294.9704 294.6864 291.5096 289.171 289.9358 291.5301 290.9653 287.8181 284.5435 283.1891 282.1722 281.1943 280.6554 280.7445 279.6284 281.3265 285.5832 289.6294 291.3316 290.638 287.7634 282.0179 283.7044 286.3362 286.583 286.0473 285.8763 288.8384 287.7405 284.4218 275.1191 270.3765 267.7653 265.0722 263.2414 263.3698 265.4669 267.4702 270.9563 278.5059 273.8728 264.875 255.0375 254.1475 258.6314 264.2548 267.2149 267.0503 267.513 259.1262 251.6569 251.6227 251.7071 251.7009 251.6676 253.674 252.2821 258.5791 257.436 259.6713 264.5059 268.0929 270.3075 270.8749 269.9753 268.6811 264.2316 260.4172 255.2712 260.8479 267.0521 272.875 278.3411 281.7636 282.2863 279.4826 271.7639 269.6725 267.3464 266.5581 265.3824 265.2026 265.9371 266.1759 266.0349 267.2876 267.7167 268.2346 268.4592 268.4965 268.1301 264.6208 259.5267 252.5561 250.1449 249.566 249.9613 249.4329 249.8135 251.7435 251.6841 252.7599 252.4168 254.4646 256.5696 257.1819 259.0309 259.9467 260.9778 261.8415 263.3989 264.5718 262.19 261.9472 263.6928 265.2065 266.7568 267.2062 266.5591 262.9055 258.1176 262.3543 263.5945 264.0176 265.5049 266.7306 268.0096 268.8214 269.7704 270.9437 273.7696 276.2173 277.5709 278.5524 280.0859 281.158 281.5999 282.0214 281.5182 280.3005 279.8047 278.7375 277.8145 277.9027 277.9796 277.7738 277.2139 276.461 274.2844 270.9219 270.0377 268.5457 266.425 265.7482 264.4387 263.2464 261.7925 257.2046 256.1926 253.461 251.8277 251.5283 253.6828 253.81 256.3909 259.154 262.4293 262.5185 264.6497 266.7237 268.7141 269.1881 265.0298 262.409 265.826 269.7967 269.8691 267.5583 265.1676 263.0459 260.2773 258.5854 255.92 251.6256 246.4707 246.7168 248.9497 250.8632 252.34 253.0626 248.6258 242.6998 241.0196 239.6326 240.5227 240.0656 240.1376 242.5646 242.1919 241.9729 241.7356 241.3488 241.3622 241.1143 239.6977 239.8559 245.0372 249.979 250.9966 251.0033 251.1125 250.565 245.1885 240.8356 240.4683 240.4724 240.6411 240.3496 239.6857 240.4676 238.124 241.3501 241.2663 241.2272 241.0243 240.0657 240.2383 237.669 240.5581 240.9261 240.4534 237.5798 238.364 240.8894 240.3088 240.0727 239.8409 239.8778 239.886 248.6397 254.9191 258.7978 261.0263 262.676 264.4348 265.6093 265.488 263.9059 260.0334 257.8064 255.6582 253.6553 252.1511 250.7105 247.6827 248.543 251.1284 253.8234 253.4872 253.5075 251.8243 250.4009 253.6934 257.0142 259.3526 260.5043 262.1092 261.548 260.8161 260.8412 260.5407 260.3478 260.7809 261.752 262.103 261.2173 259.6063 258.2247 256.9445 255.5438 253.1847 252.3713 254.6472 257.5873 264.4505 267.1505 269.0918 270.8203 271.9561 272.6913 272.4115 271.0054 271.2062 268.1408 270.8828 271.322 271.7228 270.5902 266.5028 265.1168 263.9056 264.5137 263.924 268.1684 271.5802 273.6512 274.5119 274.6743 274.6621 277.0847 278.5634 281.7295 282.8506 284.0085 283.8636 284.316 283.2761 281.7843 280.3247 279.0308 -9999 +-9999 -9999 351.9695 348.6903 351.4146 353.4562 353.9824 355.6426 358.7143 361.7664 363.9148 365.7419 366.2711 365.2038 365.7007 367.186 368.2429 367.8347 366.8788 364.9146 364.1566 364.4286 367.5132 369.6389 371.5453 373.3902 375.038 377.7602 379.54 380.7334 379.925 372.094 369.1358 366.3611 365.7873 362.4386 360.2397 359.1517 358.0074 355.982 352.8974 351.2213 350.0293 349.1551 347.9797 346.9165 345.2974 343.6059 344.2351 344.3735 343.5676 341.9737 341.2878 341.4875 341.2243 341.5666 341.4328 340.8643 338.9331 337.9756 336.6875 335.3075 332.4885 330.241 329.0752 329.3229 330.1187 330.597 328.5402 328.203 329.6602 329.4163 327.7443 324.8265 319.832 316.5506 314.7698 315.3498 317.5363 321.2886 324.0049 326.1084 328.6927 330.5298 332.5995 336.7081 338.1469 339.2498 340.7658 340.5473 337.3116 332.5009 333.807 335.4085 340.2453 342.4 343.4236 344.5703 345.6322 346.191 345.3839 344.4462 342.8172 339.9086 338.1758 336.0056 334.5027 332.1265 328.9233 325.1491 322.5558 326.2381 330.9509 333.4351 334.5983 334.5564 334.4679 334.1649 334.3105 333.8772 332.7701 333.0276 335.2783 336.2408 336.4284 335.8607 335.4971 335.3383 336.2 336.7007 336.1283 334.1931 332.3479 330.3211 330.3862 331.2549 332.6206 332.9339 331.0278 329.2871 326.698 325.2643 323.8666 322.3235 321.4284 320.2201 319.0564 318.4933 317.3822 316.8203 315.8787 314.0715 312.4891 310.1782 307.6304 306.1088 304.7845 303.8453 302.0636 302.0608 301.7156 299.8523 298.682 299.3949 301.2898 302.3418 299.845 292.5345 288.4428 284.6386 283.9213 284.5356 284.6184 285.5058 286.7547 285.774 286.7831 285.3053 289.2317 291.7594 295.0799 297.4135 297.9313 295.5969 289.8963 292.8735 292.9679 293.4619 292.6213 289.8843 287.3382 285.4745 284.5049 283.6966 281.4189 282.3802 282.5869 281.2671 285.2216 289.6154 292.4619 292.2263 290.127 283.9733 284.6411 287.3154 289.0758 288.9583 288.2362 289.5196 288.14 284.1571 275.753 270.0059 267.3941 266.5009 264.6813 265.0612 268.0324 271.3905 274.9432 282.8183 277.6778 268.6373 261.7171 257.0025 259.5962 265.8146 270.364 273.1592 275.6127 273.5457 264.8689 255.7131 251.0878 251.5204 250.2125 251.7539 251.3818 255.108 256.0253 261.1187 265.6539 268.8193 271.1637 272.5225 271.4708 269.1851 264.2786 260.305 255.2712 260.8479 267.0521 272.875 278.3411 281.7636 282.2863 275.7299 271.7639 269.6725 267.3464 266.5581 265.3824 265.2026 265.9371 266.1759 266.0349 267.2876 267.7167 268.2346 268.4592 268.4965 268.1301 264.6208 259.5267 252.5561 250.1449 249.566 249.9613 249.4329 249.8135 251.7435 251.6841 251.0807 252.4251 254.7379 255.579 257.3068 257.9554 259.6327 260.0503 260.8963 262.0743 262.8741 261.3078 261.3936 262.5229 263.5591 265.1104 266.1806 265.5658 263.7845 257.5981 260.5976 260.7413 263.3434 264.3632 265.8501 267.2797 268.8916 269.8211 270.891 273.5296 275.6026 277.6678 278.9139 280.1262 281.097 281.8414 282.3837 282.1436 281.4765 280.6344 280.1388 279.6116 279.4964 279.3892 278.9561 278.2866 277.3385 273.8109 272.8183 271.5029 269.7395 268.048 266.6704 265.4712 263.8751 261.8114 256.8427 255.1695 253.6993 252.8499 252.7619 254.6151 256.5814 255.3566 258.5421 263.1108 264.5557 267.1581 269.5821 270.6376 271.2098 269.2959 264.9281 266.6575 270.0829 271.2464 270.269 268.7582 266.8997 263.7583 262.5933 259.9174 256.2347 247.6005 249.3094 253.1342 253.6092 253.2316 251.5841 248.128 242.34 240.9176 241.1197 239.9027 239.7002 240.3289 239.9161 241.0511 241.7939 241.4044 241.389 240.9153 241.2144 240.0571 239.2339 241.8935 241.6514 241.6882 245.0408 250.5249 251.3982 248.7596 241.5514 240.1129 240.1053 240.3607 240.3701 239.718 240.0293 238.3967 241.4129 241.2031 240.9688 240.042 240.3136 237.7696 241.1053 240.9951 240.8131 240.6804 240.6375 240.1778 237.6195 240.4108 240.5805 240.3887 240.0456 240.0577 249.113 254.7715 257.0617 259.0317 261.6188 264.4104 264.9874 264.4744 263.1527 258.713 256.3286 254.2292 252.0387 250.242 248.6959 246.0908 249.4167 251.7507 252.5586 252.4908 250.9827 248.6751 251.222 254.3087 257.4546 259.4319 260.2664 261.1847 260.3665 259.2225 258.934 258.8434 259.3253 260.5987 261.104 261.0043 258.702 257.0156 254.9591 253.3908 251.9788 251.5974 254.8047 257.1371 259.5109 264.9155 266.7597 269.0666 270.6599 271.6105 271.7315 270.9503 269.7376 268.0358 265.5049 265.9167 265.8022 265.9891 264.8937 262.8846 261.9573 259.8638 261.3871 265.878 267.5652 269.2909 270.1414 271.7027 273.3225 274.9861 276.7034 278.3808 281.2952 282.0742 283.6253 284.6336 284.5128 283.023 281.932 280.7704 280.3663 -9999 +-9999 -9999 354.0191 352.9443 352.2079 355.5505 358.097 359.5215 361.2743 362.8199 365.3834 368.2992 369.0901 369.0543 368.6126 368.7807 369.9327 369.6535 368.4983 367.1973 367.1373 367.7304 368.7757 370.6436 372.0175 373.2195 376.0068 377.9844 379.7198 380.5846 378.8214 370.2286 368.0228 365.0078 360.7508 359.6723 357.673 356.4131 354.9442 353.7191 350.4841 348.7493 347.0147 346.1972 344.9827 344.6469 344.1802 342.1988 342.4482 343.2703 342.6706 340.9895 339.2166 338.5872 339.3485 339.9013 340.039 339.6728 337.7986 336.7448 335.9872 335.4168 333.6312 331.1473 327.6876 326.7959 327.3919 327.9215 326.4474 327.1826 328.7523 328.6564 327.5192 323.9585 319.1447 316.7665 315.5461 315.7922 317.0584 318.5963 319.4698 321.9816 325.0215 326.7904 328.9019 332.5175 334.0919 336.134 339.2676 342.1738 341.9913 338.5176 339.7503 341.4273 341.3514 343.4266 344.9046 345.6617 346.1981 346.5374 345.9919 344.6922 343.2954 339.1605 337.5956 335.63 333.6823 331.3322 327.7814 323.0991 326.6783 330.483 333.2001 334.3169 336.2132 336.6253 336.1343 336.2907 336.2826 335.6734 334.5967 334.0442 336.3797 337.3447 338.0682 337.827 337.17 336.9955 336.5589 336.1002 335.4609 333.7311 333.1238 330.4196 329.4442 329.3666 330.6932 330.9643 330.9661 330.643 326.1534 324.0772 322.9765 321.8066 320.0356 318.9952 317.8287 316.6688 316.0815 316.4768 316.3807 315.6724 314.1938 312.0613 310.2224 307.5435 305.3368 303.355 301.7591 298.7823 297.926 297.0401 295.5191 295.2358 298.2815 300.0473 296.5203 289.746 284.4482 285.779 285.7305 286.0758 287.9097 289.7459 290.4541 291.2069 291.99 289.2553 288.9695 293.3349 295.9742 297.8037 298.4647 294.8523 291.4864 296.6522 296.2733 295.4608 294.253 292.6897 291.8342 289.4709 288.042 285.8094 282.7617 283.9372 283.9645 284.0386 284.112 289.207 292.7055 293.5574 292.2144 287.9404 287.1649 288.4191 290.1662 290.7899 289.9768 289.7218 287.8851 284.4384 275.6019 271.3072 268.6419 267.9016 266.8871 266.9574 270.1125 271.3905 274.9432 282.8183 277.6778 268.6373 261.7171 257.0025 259.5962 265.8146 270.364 273.1592 275.6127 273.5457 264.8689 255.7131 251.0878 251.5204 250.2125 251.7539 251.3818 255.108 256.0253 261.1187 265.6539 268.8193 271.1637 272.5225 271.4708 269.1851 264.2786 260.305 253.4892 258.0867 265.273 272.0304 274.3953 275.4744 273.8163 266.7502 265.3524 263.9042 263.6593 263.8431 263.4273 262.0026 262.0168 263.0464 263.4772 265.1362 265.9419 266.9126 268.4556 268.4628 266.845 262.8366 259.3163 255.2846 250.0486 249.3866 249.3936 249.7304 249.2616 250.5906 249.7832 251.0319 251.9139 254.362 255.6241 257.3587 257.7745 259.2505 259.7246 260.4037 261.4105 262.2303 260.5199 260.542 261.0672 262.5385 264.4799 264.7147 263.8561 262.177 255.0438 259.1809 262.0699 263.3 265.1255 267.1114 268.2746 269.7196 270.6311 271.3181 273.3953 274.8237 276.4312 278.3707 279.286 280.3524 281.3769 282.4965 283.0724 282.423 281.9124 281.2744 280.7195 280.7166 280.3748 280.1415 279.0278 277.7564 274.8028 273.0976 271.797 270.0486 268.743 267.9576 266.1694 263.4081 261.4347 258.3281 257.5096 256.1307 253.4732 254.0807 256.174 258.2628 257.8809 258.9684 264.0303 265.6788 267.9012 270.4555 271.7921 272.6999 272.327 269.4702 268.4927 272.4208 273.7677 274.0702 273.0144 271.256 268.2989 264.3906 261.1614 256.6284 247.5817 252.5181 255.6624 255.5698 254.0509 251.2366 249.1225 243.3528 240.6964 240.2749 240.328 240.5116 239.9979 239.6003 239.9168 240.222 240.7082 241.5116 241.5913 239.9756 239.855 240.3166 241.3916 240.6641 240.2529 240.497 249.7792 252.6883 250.7203 244.711 240.2432 239.9443 240.1582 240.0446 239.5837 239.6128 239.4474 241.3123 240.7673 240.5762 240.95 237.8743 241.0072 241.065 240.8539 240.946 240.1947 239.7459 241.0644 240.9653 239.1968 237.5013 239.7599 239.9168 239.852 245.8151 250.3094 254.1241 258.1253 261.0287 263.7197 263.7676 263.3867 262.152 257.8521 255.2602 253.0706 250.7568 248.8284 247.117 247.3717 250.5179 252.0648 250.849 250.4121 248.289 249.1382 252.0049 255.297 257.7609 259.0475 260.0347 259.5624 258.9479 257.6133 257.4795 258.3907 259.4654 260.0997 260.2562 259.9538 257.411 255.0607 252.1252 250.683 252.3147 255.5207 258.724 260.4001 261.8301 264.7008 266.8658 268.7498 269.8302 269.8511 270.0078 269.0441 267.7219 266.7714 262.6478 262.6464 261.9212 261.5099 259.5742 258.927 261.1047 263.5804 265.9484 269.7709 270.4835 270.7311 271.1176 271.164 272.6448 275.0202 277.2931 279.0351 281.6195 282.9051 284.2492 284.7469 284.7145 283.8875 283.4544 283.0023 281.7458 -9999 +-9999 -9999 356.1113 355.8178 353.7382 355.8044 359.1339 361.7392 364.2733 366.2655 368.1161 370.7946 372.4583 371.5965 370.7444 370.2414 369.7303 369.2517 367.9965 366.6086 366.5422 366.5168 368.5205 369.5181 370.8373 373.0274 375.285 377.244 378.6025 379.3715 376.9566 367.6982 365.2296 362.5838 357.3637 354.9696 354.5851 353.0068 350.4812 349.4886 345.8857 344.2581 342.7338 341.5029 340.9485 341.5704 341.6759 340.9743 340.1396 341.9916 340.9266 339.8661 337.7589 336.0562 337.4456 338.5709 338.7726 338.0481 336.2816 335.2005 334.5875 334.192 332.798 331.3348 327.4964 324.8315 324.4824 324.8618 324.5729 325.3894 326.5549 326.1538 324.12 320.6724 317.8211 316.7972 315.8269 319.5096 322.4437 323.6368 322.7661 323.7089 325.4199 325.4072 325.8004 328.33 329.9708 334.7812 339.2653 342.6679 343.603 341.597 341.8903 343.4929 343.2258 343.7109 344.9559 346.3832 347.0628 346.921 346.175 344.6155 343.0361 337.8467 334.8836 332.6065 331.705 328.6786 325.0128 325.7869 330.441 333.7038 335.8423 336.4218 337.9428 338.3787 338.3477 338.6651 337.8844 337.4887 337.1427 335.58 336.7398 338.0298 338.6663 338.9636 337.7459 336.9025 335.5623 334.7533 332.8396 332.8316 332.7714 331.4233 328.9761 327.5306 329.0046 330.0892 331.0908 330.4763 326.3263 324.375 322.022 321.0591 319.4572 318.3803 316.1454 315.5038 314.1967 313.8572 314.8309 314.4379 314.1848 313.0151 311.3828 309.2148 306.53 304.097 302.8118 302.45 300.4139 297.9648 296.4081 293.4013 295.0597 296.3215 291.6298 287.4023 286.6754 288.6621 289.5179 288.5808 289.7727 291.146 292.704 295.1808 296.3188 293.9025 291.2896 292.5712 296.7793 299.2434 299.2333 294.9749 294.2238 299.7536 298.8119 297.5356 294.253 292.6897 291.8342 289.4709 288.042 285.8094 282.7617 283.9372 283.9645 284.0386 284.112 289.207 292.7055 293.5574 292.2144 287.9404 287.1649 288.4191 290.1662 290.7899 289.9768 289.7218 287.8851 284.4384 275.6019 271.3072 268.6419 267.9016 266.8871 266.9574 270.1125 274.0521 277.9631 285.8745 280.7469 271.9886 267.7991 265.9219 264.2423 266.5132 271.6198 275.4579 279.9714 281.1536 277.7395 271.1091 257.6906 250.9238 251.3549 250.9455 251.1685 252.0079 256.3034 261.8985 266.2626 266.9383 268.3217 270.0496 269.0639 266.4759 260.9667 258.6716 252.2617 255.4742 262.14 265.6938 264.1021 263.9986 262.9614 261.2275 260.4617 260.0429 260.4946 261.6596 261.2698 260.5717 259.2919 260.3438 262.3441 263.016 263.6244 265.3688 266.4296 267.1148 265.3204 262.1681 259.8161 257.4824 252.6778 250.864 249.3278 249.2557 249.4249 250.2422 249.1275 249.4903 250.7099 254.2234 255.3721 256.4518 257.8594 258.7654 259.5537 260.0145 260.7559 261.083 259.5883 259.1205 259.6971 261.163 262.8044 262.6698 261.853 259.319 254.6901 259.8435 260.9608 264.5211 265.9109 267.0069 268.5054 270.0868 270.9448 271.5881 274.2284 275.7413 276.7006 277.421 279.2294 280.2504 281.7393 282.6505 283.5789 283.2806 282.8277 282.5493 281.8834 280.948 280.6687 280.0142 279.7547 278.471 275.4872 273.883 272.3634 270.5948 269.7488 268.4965 267.2953 265.8877 263.9887 259.0963 257.7429 254.5876 254.0903 257.4626 259.4035 260.482 258.6234 258.5184 265.4897 266.4162 267.9195 270.186 272.3002 274.0739 274.4095 273.4844 272.1958 275.4528 275.6287 276.8201 275.9915 273.3441 268.6912 264.9464 258.8266 255.3798 253.443 254.7453 257.7481 257.3823 254.9474 253.3054 253.3006 246.2936 240.9423 239.9839 240.0948 239.8979 239.9904 240.0503 240.3957 240.2227 239.6249 239.6883 240.3439 240.3205 240.4779 239.373 240.8074 240.1901 240.0149 242.5058 249.5085 252.2326 252.165 249.7051 241.8506 239.781 240.071 239.7372 239.3736 239.7191 240.064 240.9402 240.9802 240.6902 237.9087 240.9779 241.0394 241.1148 240.9625 240.8832 240.4406 240.658 240.9163 240.7419 240.8253 241.1707 240.2346 239.1066 238.9937 241.9963 247.7487 252.3349 256.3286 259.9819 262.468 262.1529 261.8022 260.852 256.5596 254.4345 252.2127 249.6965 247.622 245.7204 248.1174 250.2835 250.9809 248.8119 247.4857 247.7911 251.569 254.8349 256.7383 258.2409 259.0007 258.8046 257.3178 256.5783 255.9476 257.7837 258.7637 259.2318 259.4117 259.4799 258.8283 256.1346 252.7486 250.9084 251.2238 255.934 258.4978 260.3038 262.2309 263.5222 266.093 267.1349 267.6097 267.8586 267.5444 267.4556 266.6669 265.3273 264.7386 260.9425 259.4738 258.3607 257.381 259.048 261.424 264.5214 267.4725 269.0166 272.8236 274.27 275.4415 276.3932 276.3487 276.9552 278.2714 279.4086 281.1725 282.9532 284.0946 285.2944 285.4683 285.1158 285.5197 285.5367 285.2181 283.9554 -9999 +-9999 -9999 356.9251 358.3024 358.4244 359.0271 359.2389 362.2237 365.5584 368.5052 370.7963 373.0514 374.6135 372.25 371.1858 369.7615 368.3146 366.9162 365.7465 364.9216 364.6998 365.0814 367.1555 368.0606 369.5741 371.4338 373.9684 376.1299 377.5771 378.2593 375.0969 363.5032 361.2548 359.0178 356.6667 354.6638 350.8594 348.9047 347.5471 345.4678 343.4769 341.2813 341.9287 340.4146 338.4681 338.3366 338.5368 339.0757 339.2931 339.2046 338.2198 337.9163 336.9245 335.2567 335.1086 337.0954 336.9373 336.0423 335.4759 333.4181 331.8313 331.1022 328.4879 327.4465 324.6721 323.7643 322.7408 321.9009 321.7093 321.6413 321.554 321.3931 320.0902 318.7308 317.1953 316.4763 318.3703 323.7357 326.5645 328.1845 328.4553 328.7366 330.0787 330.7624 330.7558 332.7911 334.3448 336.7043 339.9727 342.6562 344.1605 342.9174 342.7079 343.4021 344.6752 345.0372 346.3543 346.8741 347.4388 347.2412 346.3328 345.1073 343.8614 337.1823 332.606 330.7328 328.1467 327.3329 327.8413 332.288 335.2219 337.7547 339.0421 337.9976 340.0763 340.561 340.3148 340.2064 339.8079 339.2369 338.2495 337.1966 337.8201 338.2265 338.5949 338.4164 337.7548 336.0194 334.1195 332.7724 331.6598 331.3962 331.3636 330.2601 329.0108 326.6975 326.2884 328.8913 330.3905 330.4642 327.0823 325.0597 322.9408 321.1534 319.6965 318.0157 316.5937 315.7636 315.0798 310.6 310.906 311.9558 312.3603 311.9556 311.2396 310.1248 309.0292 307.3895 304.5486 302.45 300.4139 297.9648 296.4081 293.4013 295.0597 296.3215 291.6298 287.4023 286.6754 288.6621 289.5179 288.5808 289.7727 291.146 292.704 295.1808 296.3188 293.9025 291.2896 292.5712 296.7793 299.2434 299.2333 294.9749 294.2238 299.7536 298.8119 297.5356 296.6867 295.5244 294.0579 291.8148 288.8411 286.203 283.8504 285.8654 286.6107 284.9179 284.8469 288.2699 292.7132 294.4806 293.6324 290.9031 290.2086 289.3034 290.8463 292.0506 291.5772 289.9735 287.7789 284.9413 280.5476 274.3412 270.5673 268.3707 267.1246 268.055 271.5388 275.3715 279.6134 287.0224 284.6634 277.2262 271.1165 268.6479 267.3753 268.4141 272.8523 276.3508 282.3203 283.202 282.7745 277.8207 265.2422 253.1349 251.2728 251.2487 250.367 251.1265 254.5802 261.3541 264.1259 261.9133 264.0979 265.2976 264.9239 262.4405 254.6646 254.3905 250.7319 251.7131 254.6739 256.458 253.9784 253.7864 254.3146 252.8016 253.7214 254.6511 257.305 258.8979 259.1188 258.7867 257.4835 258.0705 260.8521 261.9405 262.3571 263.638 265.1134 266.4883 266.8822 265.0514 262.198 260.1922 256.1753 253.956 251.5202 249.7833 249.0712 251.3798 248.4206 249.2582 250.3935 254.2561 256.0431 256.5393 258.0971 258.2483 259.1865 259.1501 258.8066 258.9877 258.569 258.0939 258.0731 259.4288 259.744 259.6468 257.0901 253.1448 256.1763 260.0083 261.1705 265.0833 266.4443 267.9935 269.7899 271.5719 273.0092 274.0799 275.7469 276.4374 277.459 278.771 279.8369 281.1657 282.3892 283.3819 284.0566 283.9743 283.7266 283.6124 283.0935 281.9607 280.6594 279.9112 279.3977 278.706 275.8686 274.6504 272.835 271.9983 270.5719 269.661 268.5384 266.7971 264.2902 259.8872 259.9623 259.242 258.1321 259.4075 261.4787 262.5246 262.623 261.6868 265.7133 267.5805 268.996 270.1433 271.6976 274.4066 276.0355 275.9869 275.3253 277.5667 276.1192 275.8362 274.4507 270.1715 265.5121 262.0437 261.3282 262.7662 256.5761 257.6072 259.5603 257.6853 256.3877 255.4201 255.7585 251.1019 240.9564 239.9094 239.8198 239.6429 239.6154 239.7666 239.6231 239.6945 240.3085 240.006 239.5876 239.9088 239.2487 240.8138 240.3427 240.0616 240.6511 244.929 248.1627 251.0779 251.5497 250.2346 243.4068 239.7206 239.7707 239.1898 239.3411 239.5438 238.2322 238.4911 238.1359 238.3618 241.1479 240.9778 240.9755 240.7331 240.3858 240.8214 240.3912 240.4318 240.7912 240.8069 240.3191 240.8302 240.9317 241.0532 240.6785 238.0954 244.6634 249.9068 254.1906 258.6396 260.4135 260.5137 260.2845 259.7302 255.5745 253.1097 251.2148 248.7744 246.4725 244.8197 248.0774 249.493 247.9211 246.3276 248.7665 251.4603 253.307 255.7654 257.1245 257.994 258.443 257.8453 254.5777 254.6814 256.4071 257.822 258.5671 258.8266 258.287 257.9836 256.813 253.7286 249.8725 248.6167 255.0472 258.926 261.015 262.2158 263.1319 263.9475 265.1022 265.3995 265.7592 266.0304 264.9535 264.4024 263.9781 262.8132 261.4063 256.0014 257.9624 259.6938 261.6405 262.937 264.9236 268.3762 270.6446 272.0966 274.9359 276.6401 278.0924 278.607 279.8345 280.9411 281.3309 282.4882 283.7908 285.9521 286.6039 286.6943 285.9467 285.1085 285.8874 286.5246 286.0875 285.3245 -9999 +-9999 -9999 356.3278 359.6462 361.546 362.5818 363.0671 364.5699 367.1583 369.9641 372.5665 374.5479 375.0677 369.8681 370.2991 367.9323 366.1986 364.84 364.5472 362.4612 361.9142 363.3481 365.3124 366.6747 368.349 370.0386 372.2437 374.5432 376.2567 377.2676 374.9252 366.0805 367.1898 365.703 362.8227 360.9475 358.8304 356.0579 353.6499 353.6981 349.0571 346.3386 344.6322 341.1025 339.7638 338.1955 336.9168 335.8279 336.2515 335.7044 334.9683 334.868 333.9106 333.8409 331.8859 333.8354 334.5273 334.1381 334.1707 331.3315 328.5917 326.475 324.6213 323.6731 322.8661 321.7372 321.3299 320.4724 320.204 319.5365 318.6422 318.8213 318.5709 318.0963 315.902 315.8989 320.3313 325.2366 328.8603 330.833 332.0153 332.4901 333.2739 333.7721 333.8233 334.8082 335.9832 337.3668 339.3086 340.96 342.2996 341.9775 342.078 342.4965 344.9897 345.6322 345.9 346.747 347.9233 347.5479 346.8658 345.7853 344.2783 336.877 331.794 330.3227 330.2184 331.054 330.0613 335.9976 339.1301 341.7445 341.7783 340.7479 341.8361 342.683 342.1147 342.1835 341.6143 340.5333 340.073 338.8916 338.9834 339.39 338.3369 337.2232 337.1784 336.3053 333.7359 330.695 331.6598 331.3962 331.3636 330.2601 329.0108 326.6975 326.2884 328.8913 330.3905 328.9746 327.0823 325.0597 322.9408 321.1534 319.6965 318.0157 316.5937 315.7636 315.0798 310.6 310.906 311.9558 312.3603 311.9556 311.2396 310.1248 309.0292 307.3895 304.5486 303.981 301.631 299.7775 297.054 294.1303 291.1393 293.713 291.3797 286.9073 287.2647 292.7458 295.0343 292.3492 292.6379 293.3893 294.4269 297.3147 298.5929 296.322 293.014 293.2699 297.6158 300.2462 300.2973 297.1393 295.7305 301.8164 300.9452 299.5983 298.2794 296.9201 293.9198 292.6276 291.4283 289.3034 284.9654 286.7659 288.81 287.3675 285.9367 287.4598 291.9034 292.7214 291.6519 292.5767 292.0359 291.5004 291.5057 292.3245 292.5474 291.193 289.0783 287.6778 280.1359 275.4898 271.7379 269.3638 267.9156 268.7293 272.7663 276.564 280.4342 287.112 288.5819 280.0965 273.4626 270.1121 269.3428 270.2073 273.521 277.0683 282.2646 282.9476 281.8547 272.5531 263.1249 251.9948 251.2042 251.315 251.1164 250.6575 252.4068 257.4601 258.0987 256.7556 259.3141 259.6524 258.5547 255.8899 250.5623 250.8198 250.9432 250.5706 250.1301 250.1181 249.8552 249.5794 249.483 249.4601 249.4742 249.7141 252.4032 256.3342 257.1445 256.7636 256.1812 256.7651 259.3389 260.703 261.7292 262.3401 263.725 265.8438 267.307 266.7127 263.2757 260.5356 259.184 256.4088 254.509 252.2146 249.3441 251.2476 249.2407 248.8334 248.6892 254.1055 254.8547 255.4501 256.538 257.409 258.1586 258.1876 257.7664 257.9246 257.2781 256.6748 255.4663 255.8583 254.2719 252.6644 253.2218 255.8558 257.711 262.9014 264.0949 266.2321 267.1523 268.8096 271.034 272.7974 274.2516 275.2295 276.6512 277.5439 278.7165 279.9363 280.9342 282.1294 282.7779 283.4517 284.0783 284.1 284.5562 283.8227 283.9005 282.6955 281.2302 280.2706 279.5878 278.7364 277.0151 275.3549 274.6253 272.8919 271.7048 270.4058 268.5222 266.6449 263.8196 261.4868 261.9079 259.702 260.2739 261.6695 263.4807 264.2794 265.2823 262.6145 267.3709 269.0273 271.1674 272.4747 273.0417 274.206 276.611 277.9699 277.4931 279.1063 276.6589 275.96 272.1362 270.9968 269.2586 267.5844 267.42 265.879 258.586 261.4882 260.45 258.9717 257.8217 257.4225 257.2634 252.8548 240.6739 239.701 239.6455 240.577 242.0489 242.0923 241.2176 239.642 239.6943 240.5947 241.2905 240.0311 240.2448 239.9298 239.8876 240.7126 242.6113 244.6228 246.6181 250.1087 250.7773 249.9014 243.6225 239.5069 239.2167 239.4028 239.6725 239.7024 240.5069 239.1189 240.9527 245.0576 246.4661 247.6414 247.7903 248.0098 247.6588 246.8975 239.6571 240.2226 240.722 240.7799 240.2407 240.5811 240.9643 240.9006 240.468 238.47 244.7889 249.2075 253.0061 256.4859 258.6974 258.8433 258.3213 258.3634 255.0725 252.2835 250.1394 247.8341 245.1871 244.7057 248.6747 247.3686 245.5801 250.8496 251.6479 252.5877 254.0284 255.4059 256.2238 257.0202 256.7657 255.9983 253.201 255.0383 256.381 257.0685 257.9884 257.6199 256.4039 255.5236 254.5647 249.7386 249.1785 253.3554 256.5575 259.5535 261.0429 261.773 262.3891 263.1508 262.9317 262.935 263.0686 262.4231 261.8335 260.7861 259.5354 258.2789 256.9652 258.6171 260.5775 261.0856 262.7897 265.7125 267.3894 269.3459 271.5499 273.2219 275.7297 277.8026 278.9723 280.3488 281.3329 282.7609 283.213 284.015 285.4604 285.9521 286.6039 286.6943 285.9467 285.1085 285.8874 286.5246 286.0875 285.3245 -9999 +-9999 -9999 354.7432 360.0518 361.9552 363.7905 365.093 367.435 369.5115 371.8199 373.5645 374.0568 371.3824 369.922 367.9847 366.3166 364.9577 361.7079 361.9545 360.1386 359.6916 361.0531 362.751 365.0348 367.1958 369.0666 370.9363 372.9239 374.0121 375.8351 374.7243 370.796 370.9569 368.4712 365.8288 364.4579 362.7743 360.4757 357.7523 356.4763 351.3834 348.8904 345.2151 341.5943 341.1372 339.3839 340.0662 337.292 334.7805 333.5688 332.6547 330.6691 330.0419 328.333 330.0607 329.6726 330.5954 330.3651 331.273 329.6431 325.7932 324.777 323.1434 322.7599 321.9858 320.7585 319.4915 319.1717 318.7787 319.487 318.9426 317.8731 317.9449 317.5134 316.8799 316.4279 321.1898 325.0741 328.6277 331.5641 333.3866 334.244 334.3624 334.921 335.1631 334.5924 335.1635 336.14 337.1373 338.7102 339.6279 339.6203 339.8021 340.5377 343.0671 344.3007 345.0247 346.5643 348.0489 348.031 347.5659 345.7853 344.2783 336.877 331.794 330.3227 330.2184 331.054 330.0613 335.9976 339.1301 341.7445 341.7783 340.7479 341.8361 342.683 342.1147 342.1835 341.6143 340.5333 340.073 338.8916 338.9834 339.39 338.3369 337.2232 337.1784 336.3053 333.7359 330.695 329.4523 328.6267 329.416 328.5029 327.6147 325.713 324.6433 327.3869 328.5672 329.8764 328.5157 326.1251 323.7635 321.9446 320.0258 318.0617 317.3887 316.6511 313.5609 311.4928 308.6733 307.2939 306.4643 308.2211 308.8455 308.5107 308.4215 307.6922 305.4442 302.8574 301.0789 298.6806 295.1302 291.6077 290.0044 290.4173 289.5835 287.5915 288.5376 294.2541 297.2003 297.2246 297.3105 296.9334 296.0292 298.2119 300.446 297.0965 294.4886 295.7923 297.5876 300.27 301.3674 299.4164 296.4617 302.3141 302.1619 300.8884 298.5576 296.3227 296.6532 295.6433 293.2714 291.1624 287.8237 287.2778 289.6115 288.7546 286.1114 286.2451 288.2922 289.2969 290.4459 292.159 293.4043 293.146 292.4314 293.1862 293.5598 292.6378 290.3032 286.7187 281.3326 277.4176 273.55 270.5409 269.3201 269.7944 274.2825 277.637 281.0715 285.9977 288.8565 283.4082 274.3809 268.3716 267.2942 269.821 273.0864 276.5684 281.1559 280.6366 277.4037 268.4096 258.4022 251.2077 250.9217 250.6742 250.9597 251.1495 249.6038 251.1314 250.7031 251.4614 250.7044 252.1104 250.8732 250.9437 250.0375 250.5483 250.5484 249.5907 250.1509 250.3281 250.0271 249.8475 249.6219 249.4561 249.4908 249.4527 249.5463 253.6763 255.4037 254.9318 254.7497 255.5108 257.9294 259.3595 260.2779 261.8704 263.0618 265.2089 266.8084 267.5315 266.3784 263.451 262.4761 259.5243 256.6262 254.9945 251.189 250.7979 248.978 248.6302 248.5574 252.5205 252.8498 254.1828 255.3591 256.8396 256.7648 257.2944 256.6348 256.571 255.6547 253.7342 252.7584 252.8377 252.6342 255.6642 256.7941 259.1245 261.1441 264.007 265.7841 267.2452 269.0411 270.054 271.2923 273.1917 274.7276 275.9348 277.0139 277.6918 278.6862 279.8586 281.1879 282.258 282.9552 283.0339 283.4781 283.6842 284.0259 283.9202 283.232 282.2089 281.325 280.3682 279.7156 279.0163 277.392 276.8212 275.4629 274.0286 272.3777 270.4134 268.4229 266.0304 263.2961 263.6913 263.8846 264.6948 265.0475 265.6937 265.8338 266.4473 266.6281 265.4137 268.5334 270.8161 273.1229 274.8256 276.2922 277.1973 277.8145 279.1014 279.3116 279.4052 277.4834 274.8006 273.8472 273.0856 272.7131 270.9404 268.2372 264.2202 264.9034 264.1397 262.4697 262.1664 260.5951 259.4257 257.3969 251.0244 241.2173 239.7116 240.1496 240.7661 242.1992 240.6151 239.6437 239.8488 241.0503 240.6796 241.0537 240.6632 240.0349 240.7981 242.8237 243.4403 243.7224 245.6049 246.323 248.5272 249.6879 249.5126 244.9637 239.9463 239.5593 239.517 239.5684 239.8777 239.5189 239.603 243.1711 246.5971 248.0191 248.315 248.0735 248.4486 248.5971 242.6536 239.4253 239.9339 239.4612 240.3973 240.3533 240.2898 240.9754 241.0329 240.6721 240.3158 244.7237 249.6203 252.7071 255.262 256.2943 256.5919 256.4698 256.8243 253.6244 250.9179 249.1225 246.8579 244.1438 245.0636 246.6422 244.5263 248.9682 251.989 253.0038 253.6653 254.449 254.5618 254.7088 254.9825 254.7772 253.1424 252.7527 254.5704 255.3794 256.6888 257.1482 257.6199 256.4039 255.5236 254.5647 249.7386 249.1785 253.3554 256.5575 259.5535 261.0429 261.773 262.3891 263.1508 262.9317 262.935 263.0686 262.4231 261.8335 260.7861 259.5354 258.2789 256.9652 258.6171 260.5775 261.0856 262.7897 265.7125 267.3894 269.3459 271.5499 273.2219 275.7297 277.8026 278.9723 280.3488 281.3329 282.7609 283.213 284.015 285.4604 287.3231 287.843 287.2159 285.2072 284.319 285.4205 286.5094 286.3069 285.5643 -9999 +-9999 -9999 353.9189 359.0894 361.0148 363.7097 366.4774 368.6192 370.7611 371.9993 371.9298 370.9688 369.6342 366.7319 365.4639 364.199 362.3255 359.9047 359.7497 357.968 356.8004 359.8225 362.1722 364.787 366.8014 368.4327 369.8875 371.444 373.1469 373.9991 373.3786 371.8845 371.2734 369.5358 367.8883 366.325 363.7404 361.4669 359.0998 356.5081 350.6895 347.1434 344.7561 345.1678 346.2284 346.0467 344.9212 342.8244 340.5705 335.3631 336.7653 333.8683 330.3653 327.9443 326.8728 327.0092 326.6014 326.6064 325.7912 324.3401 323.5894 323.4231 322.7465 322.2859 320.5141 320.9774 322.2637 324.2626 324.1823 322.5543 320.6599 320.1059 317.6278 317.3144 316.8799 316.4279 321.1898 325.0741 328.6277 331.5641 333.3866 334.244 334.3624 334.921 335.1631 334.5924 335.1635 336.14 337.1373 338.7102 339.6279 339.6203 339.8021 340.5377 343.0671 344.3007 345.0247 346.5643 348.0489 348.031 347.5659 346.3842 344.7911 338.3003 333.5312 332.0336 332.7837 334.0926 336.2773 340.0706 342.1335 343.9423 344.6416 343.2851 343.2018 344.0345 343.9242 343.9871 343.2137 342.0608 341.4778 340.483 340.103 338.4006 336.4708 336.0366 335.7288 335.5194 334.2675 332.4785 327.4001 326.9741 327.5306 326.808 326.0392 324.5782 322.6397 324.2961 325.8152 330.0594 329.81 326.6002 323.223 321.3415 318.8584 316.7871 315.7829 315.7458 313.5708 312.0559 310.6118 309.3437 307.0765 304.3251 302.7819 302.3895 304.1678 305.8124 303.4002 300.7188 298.1148 295.6126 292.2748 289.8518 288.3327 288.0478 287.9694 288.3642 291.4593 294.9037 297.4517 299.6516 300.8435 300.8935 299.5561 299.2516 300.9197 296.5751 298.025 298.641 299.5916 301.2967 302.6005 301.2326 298.0257 302.7878 302.9422 301.5434 299.774 298.5911 297.9563 295.2914 292.9142 291.1898 288.9966 288.8467 290.497 289.2584 287.2824 286.3367 286.9372 288.5394 289.8228 291.8251 293.0251 294.0018 293.8318 294.55 295.0329 293.8687 291.364 289.1514 287.3108 281.1151 275.2852 272.4187 271.0065 271.5198 274.1639 276.96 280.8328 285.5495 287.5421 283.1854 275.3146 267.0023 264.0367 267.8456 270.5404 274.0103 278.2138 275.9688 272.4278 266.381 256.7038 251.2202 250.8813 250.9167 250.9342 251.0348 251.1235 251.54 251.2294 250.73 249.758 249.7646 250.0343 250.9228 250.1302 251.173 251.6974 250.0667 249.9977 249.8031 250.319 249.8004 249.6821 249.4331 249.7667 249.4928 249.5112 251.772 253.2324 254.2932 256.0981 257.0597 258.1425 259.0058 259.9473 260.9415 262.861 263.9746 266.2696 268.422 269.6446 266.0116 268.1699 263.9993 259.1509 257.3372 254.9884 250.3486 248.9179 248.8049 248.4353 249.6167 250.9317 253.1951 254.1804 255.3373 255.4595 257.0013 256.0083 255.3191 251.9508 251.8415 251.5856 254.5114 255.9633 257.6786 259.0899 260.6163 261.7514 264.4814 266.4322 267.4702 268.7589 270.1577 271.5448 273.1799 274.1682 275.2058 276.4612 277.3018 278.3808 279.5464 280.6907 282.087 282.6377 282.6294 282.7143 282.6973 282.7334 282.7479 282.443 282.0844 281.1269 280.3386 279.663 279.1734 277.9996 277.278 275.8987 274.5559 272.4419 270.796 269.4994 267.2712 264.8144 266.4032 266.6992 266.4019 266.7171 267.7025 268.5299 268.827 268.0289 266.7996 269.8733 271.5735 273.9644 276.2802 277.749 278.9249 279.9898 280.404 280.5206 280.1462 277.838 276.4775 274.9872 274.0646 271.7204 270.0963 268.0303 268.0632 267.1542 265.9359 264.6074 262.987 261.5359 260.8768 256.1964 256.4334 244.9055 240.0635 240.3295 240.3633 240.224 239.6453 241.1732 245.1188 242.9031 241.4896 241.5707 241.084 242.8223 244.8204 246.184 245.3262 245.0128 245.7824 246.6758 247.718 248.6696 249.3279 247.8956 242.8989 239.8302 239.4667 239.5066 240.2214 239.6194 240.8716 246.3832 247.1661 248.2169 248.3632 248.2459 248.0714 247.3237 240.9426 237.4313 237.0404 239.4612 240.3973 240.3533 240.2898 240.9754 241.0329 240.6721 240.3158 244.7237 249.6203 252.7071 255.262 256.2943 256.5919 256.4698 256.8243 253.6244 250.9179 249.1225 246.8579 244.1438 245.0636 246.6422 244.5263 248.9682 251.989 253.0038 253.6653 254.449 254.5618 254.7088 254.9825 254.7772 253.1424 252.7527 254.5704 255.3794 256.6888 257.1482 256.3924 254.6692 253.2853 252.5723 247.6476 249.2157 253.2032 256.5647 258.6999 260.0832 260.3617 260.3831 260.6148 260.515 259.5497 258.4456 257.7801 256.8656 256.4072 253.9682 254.1461 256.3727 259.423 262.2801 264.1848 264.7495 263.8911 265.4 266.2282 268.757 269.9613 273.8458 276.458 278.7568 280.8549 282.3255 283.6541 284.3191 284.9782 286.0836 287.797 287.5637 286.1864 284.7047 284.1307 285.1444 286.2822 286.2065 285.7337 -9999 +-9999 -9999 353.5075 357.9732 360.5459 363.7916 366.1766 368.246 369.557 370.0558 369.2045 368.2359 366.092 365.8863 364.7801 362.634 360.9872 358.7186 356.1 355.4656 354.4807 359.6614 362.0994 364.0012 365.844 367.1793 368.4601 370.3005 372.336 373.721 373.6377 371.0774 370.4927 369.997 369.2048 367.5921 365.3561 363.0767 361.0409 358.7515 353.182 349.7922 348.7722 348.378 348.5571 348.059 344.9212 342.8244 340.5705 335.3631 336.7653 333.8683 330.3653 327.9443 326.8728 327.0092 326.6014 326.6064 325.7912 324.3401 323.5894 323.4231 322.7465 322.2859 320.5141 320.9774 322.2637 324.2626 324.1823 322.5543 320.6599 320.1059 317.6278 317.3144 318.9306 317.8022 319.5399 323.7268 327.8971 331.1378 332.9487 333.4269 332.8741 333.0944 332.7271 331.7908 331.6967 332.6249 333.4216 334.7552 335.6178 336.4836 337.3965 338.7189 341.5119 343.9841 345.2458 346.9343 348.1014 348.8004 348.4937 347.4018 345.3978 338.4708 335.6739 337.4079 337.1158 337.8307 338.05 341.7219 345.1924 347.2181 347.9498 346.2644 345.4849 345.0016 345.2205 344.9088 343.9126 343.0767 342.3768 340.7421 339.3087 337.6635 335.8683 334.1422 333.3137 333.3303 332.734 331.9966 323.351 325.3214 326.742 324.803 324.475 323.3684 320.7162 321.2303 323.9866 328.0693 329.408 326.8875 323.0947 320.2244 317.8876 315.6045 313.3881 313.4297 311.4384 310.2256 309.0576 308.0471 306.8112 307.0012 305.0997 301.8863 301.577 301.9147 300.7181 297.3896 293.9539 291.6162 290.604 292.2361 291.9808 289.576 289.9271 292.0467 294.2553 297.3904 299.8881 301.8115 302.9817 303.759 303.2603 302.5515 300.592 299.7503 303.0405 304.4721 302.94 303.7865 303.4972 302.5729 300.0542 303.8526 303.8428 302.6088 301.0674 299.1943 296.58 295.2802 295.2083 293.6543 290.2449 290.4147 291.5483 289.6228 288.7925 287.2828 287.2949 288.3389 289.3781 291.9131 292.5864 294.3714 295.3449 296.4527 296.4475 295.9221 294.6129 293.6281 289.1873 284.502 277.7002 274.322 272.2429 273.2292 276.5973 277.7133 280.384 283.3419 284.4867 279.6949 271.9519 263.932 260.7625 262.4484 264.964 270.0032 272.6225 268.136 262.5154 260.2297 256.1017 251.3369 251.1542 251.1888 251.1495 250.9011 250.9258 250.6542 250.6022 250.7297 250.471 250.5723 250.1824 252.2709 254.2112 256.2302 257.1978 256.4324 254.3809 249.8785 250.0812 249.9004 250.3389 249.6496 249.3015 249.2725 250.2534 251.4369 253.6245 254.8382 255.8353 256.8016 258.2526 258.7247 259.7759 261.0256 262.1454 263.9236 265.9296 268.5524 270.5624 268.6974 269.7745 267.4346 263.2955 259.5447 257.3921 254.0113 249.7978 248.8387 248.4987 248.2462 249.3258 250.9946 252.8528 253.5391 254.4698 255.5187 254.7287 252.5921 251.2189 252.9083 254.7566 255.9978 257.7523 259.9456 261.3654 262.3709 263.3753 265.6331 266.2578 267.4634 268.8354 270.3499 271.2499 272.5765 273.8699 274.3898 276.4777 277.2196 278.3038 279.1943 280.114 280.6561 281.0504 280.6563 281.2374 281.6076 281.6974 281.52 281.447 281.8024 281.0961 280.4414 280.0232 279.0337 278.5354 277.7136 276.6479 274.9445 273.6158 272.1613 270.2104 269.5098 266.6479 268.5173 269.3201 268.5924 268.9438 270.1563 271.546 271.2687 270.2162 269.1367 270.4154 272.6206 274.6298 276.5607 278.6812 279.5266 280.3652 281.0013 281.0074 280.442 278.8429 277.5266 276.3376 274.4487 272.4135 270.7834 270.8103 270.7566 268.0869 266.6662 264.7663 263.5604 262.9358 262.5449 261.5617 259.5927 249.0488 240.2509 240.1345 240.3633 240.224 239.6453 241.1732 245.1188 242.9031 241.4896 241.5707 241.084 242.8223 244.8204 246.184 245.3262 245.0128 245.7824 246.6758 247.718 248.6696 249.3279 247.8956 242.8989 239.8302 239.4667 239.5066 240.2214 239.6194 240.8716 246.3832 247.1661 248.2169 248.3632 248.2459 248.0714 247.3237 240.9426 237.4313 237.0404 238.5552 237.0369 238.8962 240.0738 240.8242 240.7256 240.2395 240.3196 244.0869 248.2748 250.7315 252.0961 253.2812 254.1862 254.8729 255.1616 252.4168 249.5802 247.3181 244.6663 243.2845 243.2268 245.6582 247.7693 249.5854 251.4657 252.3611 253.2752 253.0065 252.3198 252.3774 252.8503 252.4531 251.6389 252.1921 253.8288 255.0359 255.8573 255.9385 254.568 252.7325 251.4765 249.606 248.4516 249.5214 252.0046 255.687 257.2756 257.6778 258.1752 257.7477 258.2323 256.0106 255.7407 255.1701 253.4109 252.3582 254.9173 255.6928 256.6171 258.1819 260.8074 263.846 266.1355 267.4229 268.1633 269.1694 270.3863 271.0865 271.1916 274.9921 276.2807 278.4784 280.8318 282.1253 284.0017 285.5455 286.3964 286.8696 287.3742 286.6387 284.9301 283.834 284.1178 284.6317 285.5976 285.9491 285.5923 -9999 +-9999 -9999 349.745 356.6417 359.7699 362.2659 364.5619 366.178 367.1424 366.9588 366.379 365.3606 364.6054 364.3632 363.2179 361.5852 359.7524 357.6028 354.8341 352.8435 354.4807 359.6614 362.0994 364.0012 365.844 367.1793 368.4601 370.3005 372.336 373.721 371.9099 371.0774 370.4927 369.997 369.2048 367.5921 365.3561 363.0767 361.0409 358.7515 353.182 349.7922 348.7722 348.378 348.5571 348.059 346.3299 344.6533 342.8748 337.3002 334.1368 333.8552 334.6965 332.1895 329.69 328.0423 326.9441 326.0165 323.783 323.6074 322.9742 322.9424 322.5911 322.5439 323.8828 325.3753 325.3307 326.2997 327.9895 328.8137 327.3564 326.1347 324.9215 323.4842 320.5499 319.1787 318.2531 321.6791 326.6898 329.774 331.1335 330.4901 329.1584 328.1332 330.8332 333.3727 334.5758 335.6857 337.2807 340.8389 340.765 337.6198 338.7893 340.3118 343.1267 345.1124 346.664 348.0616 349.2367 349.5194 349.3443 348.0961 346.3436 338.4079 338.2369 339.9261 341.2701 341.5268 341.1754 342.8863 346.48 349.7401 350.3429 348.4232 346.9885 346.7321 345.8261 344.9718 344.2039 343.1315 342.2403 339.4194 337.8412 335.6862 334.1304 332.4793 331.3845 330.9546 330.5078 329.9982 321.3902 323.8145 324.4561 322.3918 322.4112 321.4713 318.1809 319.6059 321.6509 325.7298 327.7432 325.7856 321.7054 318.2224 315.7576 312.9535 309.1133 308.2026 306.5767 306.5119 306.5253 306.5127 307.4778 306.3267 304.7347 302.7854 299.9363 297.5353 296.1126 293.1876 291.5268 290.8905 291.2479 295.574 297.915 297.2277 295.6023 293.1943 295.9691 297.764 299.6559 301.7478 303.8065 304.9891 305.401 304.8326 301.564 301.0796 305.2516 307.5543 306.7777 305.7689 304.8948 303.4041 301.276 305.1429 305.4213 304.35 302.6271 299.0752 297.3331 299.5623 298.7668 295.6593 291.5935 291.8881 292.7477 290.9549 289.8895 289.0931 287.9515 288.3182 289.581 291.0142 291.542 293.5727 296.3851 297.1032 297.293 296.5467 295.9342 295.3992 290.1052 286.7719 280.7292 275.8771 274.2701 275.8146 277.9199 279.2248 280.3748 280.3759 279.5011 274.7225 266.3517 258.4042 257.1144 256.4401 259.3856 264.6631 262.0524 256.1337 253.3924 252.6723 251.808 251.6 251.5354 251.3655 251.1038 250.8718 250.6563 250.4156 250.7016 250.4496 250.5371 250.5048 251.4013 255.3021 258.2933 258.8419 259.6217 259.4168 256.5619 252.0565 251.2292 249.306 249.4335 249.5771 249.9136 249.8816 249.3401 250.2175 250.3335 252.0311 254.3041 255.6154 256.8148 258.0931 259.0223 260.12 262.051 263.6963 265.9051 268.4567 270.3755 269.8239 269.8996 270.9507 268.5667 262.8473 259.9009 255.9173 252.6147 248.5722 248.8326 248.2309 249.0353 250.1954 252.1403 252.3586 253.7213 253.4776 251.5116 250.5224 252.1674 255.2068 257.5328 258.8495 260.9069 261.9703 263.141 263.9987 264.3677 265.6879 266.5033 267.5213 268.8636 269.8295 271.3112 271.9839 273.5563 274.6804 276.8818 277.7344 278.5391 278.6815 278.8837 278.9402 278.779 279.1093 279.5911 280.086 280.271 280.5258 280.5505 280.6664 280.4387 280.1203 279.7415 278.9028 278.5576 277.8783 276.9895 276.143 274.5738 272.4594 271.4902 270.1555 267.3744 270.7262 271.6993 271.146 268.9438 270.1563 271.546 271.2687 270.2162 269.1367 270.4154 272.6206 274.6298 276.5607 278.6812 279.5266 280.3652 281.0013 281.0074 280.442 278.8429 277.5266 276.3376 274.4487 272.4135 270.7834 270.8103 270.7566 268.0869 266.6662 264.7663 263.5604 262.9358 262.5449 261.5617 259.5927 249.0488 240.2509 240.1345 239.9692 239.6595 241.1571 248.2883 249.3175 247.316 242.913 244.026 243.0537 242.1738 244.8053 245.7882 246.9576 246.8102 246.9056 246.9402 248.067 248.8223 249.0661 248.4572 246.8485 243.7651 243.1971 243.5556 244.4354 245.4559 246.6596 247.5646 247.5716 246.1113 244.5832 243.1277 242.6734 241.9692 237.1047 239.9977 240.7964 240.3151 240.6469 237.1801 239.9206 240.2574 240.4068 237.3557 240.1204 242.0813 245.1091 247.532 249.6238 250.3853 251.5162 252.9094 253.3882 250.7014 247.5705 245.149 242.745 243.4103 245.3647 247.8154 249.0814 249.706 249.4844 250.004 250.509 250.0708 249.5398 250.3121 250.3528 250.4872 249.2152 251.1709 252.1585 253.2281 254.2327 253.9069 252.1329 250.5331 249.9438 246.9094 248.7289 249.4152 250.368 252.0233 254.1348 255.1346 256.0645 256.1182 255.96 253.6722 251.7219 253.3349 254.6504 255.546 256.6851 258.3731 259.3987 260.5616 262.8574 265.7708 267.8141 269.5475 270.756 271.4663 273.2039 273.8056 274.7307 276.1599 277.0819 279.0628 281.1142 282.5308 284.2779 285.4273 286.0797 286.482 286.5423 285.4824 283.8332 282.416 282.709 283.4851 283.8812 284.1889 284.6514 -9999 +-9999 -9999 349.745 356.6417 359.7699 362.2659 364.5619 366.178 367.1424 366.9588 366.379 365.3606 364.6054 364.3632 363.2179 361.5852 359.7524 357.6028 354.8341 352.8435 352.9703 359.1966 361.3851 363.247 364.2766 365.4548 367.3609 369.6957 371.7788 373.1884 371.6933 370.2137 369.9146 369.2855 369.324 368.5494 367.3956 365.3416 363.0083 361.0382 355.7417 353.3941 351.4966 349.956 349.0062 347.3661 344.8622 342.3069 339.6729 335.1686 336.4792 338.7327 339.8683 338.4529 335.0927 331.0458 329.1284 327.9166 324.7989 325.2127 324.9186 326.0515 325.6414 325.8396 326.7965 327.4303 327.6078 326.7716 329.4312 331.9316 332.4826 331.2706 328.8423 325.1473 321.6079 320.0619 316.9827 321.0081 325.5051 327.299 326.9792 325.9231 328.4463 332.8265 335.2634 336.9347 337.1744 337.7885 338.845 342.2639 344.8081 346.0475 345.7296 346.2231 346.439 347.6432 348.3236 349.8157 350.0061 350.6787 350.2825 348.5528 347.4785 342.6856 341.5665 343.0626 343.737 344.2383 344.1555 344.3371 347.2981 350.7061 352.2017 350.2812 349.5092 348.2998 346.5035 345.1698 344.2639 342.5656 340.2373 336.2819 335.226 333.6286 331.6889 329.9873 328.869 328.773 328.3072 327.3931 319.5207 320.0077 320.544 319.6271 319.825 318.8019 315.583 316.5664 318.3027 322.6556 325.1175 323.7982 319.8233 316.2228 313.4007 310.7814 307.1012 306.5276 306.5255 306.5251 306.5251 306.7935 304.964 303.4506 303.5806 302.521 301.24 295.8399 293.6107 292.185 291.7809 292.5237 295.2044 299.657 302.2604 303.16 300.4091 296.9602 295.4433 297.9198 300.2073 301.807 303.7981 305.5995 307.0245 307.1945 304.1152 303.7156 305.729 308.1683 308.6467 307.8138 306.034 304.0189 302.5276 306.3495 306.8932 305.9178 304.0477 301.0917 299.4837 302.3669 301.9136 297.581 294.507 295.03 294.1822 292.8278 291.5594 290.7146 290.262 289.6776 289.7472 289.2225 290.2343 292.6519 295.4116 296.4348 297.0279 296.0815 295.0182 294.5336 288.9444 286.5649 283.0669 277.9395 276.1427 277.519 278.5552 279.5906 279.3905 276.3207 274.6183 269.99 260.687 256.4862 255.4476 254.809 255.1344 256.4042 252.6576 252.5974 252.6514 252.5067 252.1039 251.8594 251.5527 251.4342 251.2789 250.9653 250.9657 250.6251 250.4094 250.7203 250.9181 250.9125 253.9359 257.605 261.5381 261.9853 262.5438 261.7582 260.097 259.7215 261.6715 259.2196 254.7644 249.4429 250.0632 249.6426 249.7181 248.9813 248.92 249.0147 252.8064 253.8689 256.158 257.2096 257.7759 259.1058 260.3796 261.9476 264.4691 266.7646 269.1604 269.2712 269.0602 270.0699 268.7041 263.643 259.4419 256.2527 252.8018 248.3491 247.9183 248.1989 249.0012 250.0096 250.8975 250.8307 250.8063 249.5161 249.6835 251.9307 254.1875 256.6713 258.9004 260.9543 262.5879 263.5018 263.8915 264.229 264.4513 265.8214 266.6889 267.5974 268.6883 269.7455 271.3112 271.9839 273.5563 274.6804 276.8818 277.7344 278.5391 278.6815 278.8837 278.9402 278.779 279.1093 279.5911 280.086 280.271 280.5258 280.5505 280.6664 280.4387 280.1203 279.7415 278.9028 278.5576 277.8783 276.9895 276.143 274.5738 272.4594 271.4902 270.1555 267.3744 270.7262 271.6993 271.146 271.2583 272.7952 273.7873 273.228 272.6201 270.5689 271.1748 272.9431 275.2912 276.2799 277.6711 278.8351 279.4855 280.1722 281.171 280.4217 279.6632 278.0393 277.0219 275.8947 275.0495 273.9521 272.5324 270.4438 267.5933 265.9615 264.2646 262.8083 262.551 262.727 261.8342 259.7975 254.1671 241.1402 240.9847 239.7526 243.2848 248.8808 249.4726 247.5086 243.605 242.2196 247.6453 245.3011 242.5167 246.1336 246.3614 247.4196 247.7394 247.5768 247.4732 248.7107 249.9806 250.5651 249.5907 248.462 247.2303 246.9534 246.8521 246.6549 246.2272 246.007 245.5424 243.1989 241.0098 240.7201 240.3899 240.5648 238.417 240.151 240.3008 240.0453 240.419 240.7229 240.8122 237.0254 238.7789 240.0742 237.5742 239.8965 240.8774 242.563 245.1978 246.5319 248.8764 249.7434 250.7842 251.4337 248.5428 245.7024 243.3814 242.3622 243.7824 245.6033 248.2047 248.7546 248.8164 245.6577 245.5892 246.591 246.4531 246.689 248.2783 248.1957 246.843 246.5377 248.4265 249.5619 251.4462 251.8945 251.4328 249.9562 247.2897 245.61 246.7733 248.0687 248.6245 249.2886 249.6831 250.9643 251.579 251.796 252.1309 251.0633 252.952 255.112 256.762 256.4797 258.9453 258.5764 261.9728 263.2467 264.0033 263.3844 265.5443 267.9249 270.1084 272.1366 273.6779 274.2798 275.8134 276.2249 277.7156 278.684 279.5462 280.8935 282.1811 283.376 284.2101 284.519 285.0768 285.2984 284.2752 282.7075 281.6687 281.5185 281.6368 281.9271 282.5028 283.3319 -9999 +-9999 -9999 353.8797 354.5731 357.8669 360.5038 363.0779 364.5961 363.9597 364.1433 364.0051 363.3649 362.3192 362.2395 361.2676 359.8999 358.3006 355.1332 352.4196 351.1531 351.7452 358.3454 359.8736 361.5741 363.6556 365.8594 367.9103 369.6928 371.3423 372.0737 370.2843 368.6447 368.064 368.2421 367.7975 367.9988 367.731 366.1062 365.1413 360.1459 357.3951 354.1897 351.7877 350.2116 348.3199 344.9886 341.0602 337.9833 337.2169 339.2298 340.2361 341.282 341.4458 340.2307 337.2674 332.1875 328.8532 327.818 326.3176 326.6309 327.1428 328.5877 328.6224 328.9524 329.567 329.3873 329.487 328.5313 329.5607 332.0307 334.0596 334.5811 332.5573 328.3731 324.1696 321.3755 318.5355 319.1843 322.993 322.8369 324.6448 328.5522 331.3651 334.8319 336.891 339.4482 339.9569 340.4421 340.813 342.439 344.8438 347.4859 349.6444 348.7499 349.36 349.5099 349.9681 350.964 352.0101 352.1113 351.4781 350.4363 349.6212 344.9179 344.3017 345.1944 345.7628 346.5805 346.7065 346.5488 349.1364 352.0725 353.807 352.3888 350.4124 348.574 347.1627 345.2917 343.3105 340.0863 338.2208 335.2993 333.1858 331.3145 329.1793 328.2247 326.5818 325.8158 325.8456 323.3584 316.7036 315.4756 315.8337 315.3638 315.2871 314.0908 313.4308 314.3114 314.9865 318.5043 319.8147 319.1496 316.4398 312.7032 309.61 307.3927 306.5284 306.5276 306.5256 306.5252 306.5251 307.1089 304.3316 298.1117 298.2974 298.0848 297.6369 293.8453 292.3886 292.8856 294.4601 296.941 300.2924 303.6796 306.177 307.4246 305.416 302.0576 299.2826 298.8347 300.7199 303.3036 305.2608 306.9078 308.2357 308.7843 305.8222 305.55 306.967 308.5388 309.4255 308.7096 307.0058 304.6026 304.5111 308.1052 308.3799 307.7793 305.2387 301.9389 301.7516 304.11 303.3669 301.3748 298.2148 296.8957 295.5321 295.0125 293.9702 292.2459 289.5481 287.9728 287.7118 286.7668 288.7416 291.1441 293.8792 295.0101 295.104 294.8501 293.5336 292.9422 288.2179 285.9959 281.6136 278.3702 278.6454 278.5149 278.9473 279.366 277.3263 272.9609 269.8582 266.2315 260.24 256.6556 255.4588 254.4032 253.9361 253.6744 253.1355 257.2458 260.7498 259.6946 255.886 252.5126 251.9508 251.7944 251.9732 254.9516 255.0412 251.9695 252.146 252.7559 251.4326 252.6879 255.6663 258.5491 263.8463 265.9304 266.6441 266.8062 266.562 266.601 268.2392 268.2714 263.3287 249.7429 249.0831 249.7347 249.3995 249.1157 248.9135 248.6599 250.0191 253.1517 255.2341 255.3468 256.2346 257.5656 258.4464 260.1607 263.4644 265.3784 269.1604 269.2712 269.0602 270.0699 268.7041 263.643 259.4419 256.2527 252.8018 248.3491 247.9183 248.1989 249.0012 250.0096 250.8975 250.8307 250.8063 249.5161 249.6835 251.9307 254.1875 256.6713 258.9004 260.9543 262.5879 263.5018 263.8915 264.229 264.4513 265.8214 266.6889 267.5974 268.6883 269.7455 271.1281 272.0845 273.3817 274.906 276.6599 276.9919 276.9409 276.8461 277.0033 277.1178 277.1457 277.4317 277.8203 278.8767 279.3377 279.477 279.4871 279.498 280.0435 279.8965 279.7897 279.1379 278.9484 277.9266 277.2343 276.3806 274.5422 273.614 272.0305 270.696 269.7542 271.8426 273.2297 273.8755 274.0853 274.9504 275.5712 274.9071 274.5614 272.3432 271.8984 272.8432 274.947 275.7782 276.645 277.6575 278.6508 279.7732 280.8385 280.7202 279.0426 276.8595 275.2133 273.0543 272.225 271.717 270.9804 269.0183 265.6778 263.3064 261.1223 259.9424 259.7609 261.2386 260.5334 259.0757 256.5547 249.9065 245.0786 249.4543 249.9238 247.5295 245.252 243.5718 243.0871 246.0666 249.7438 247.8229 243.5871 247.0263 247.0518 248.073 248.5838 248.3248 248.2704 249.6817 251.1161 251.739 250.4487 249.3596 248.5415 248.2633 248.0408 247.3186 244.8288 244.0142 242.1033 240.4676 240.2472 240.0928 240.347 240.448 237.0158 239.9134 239.9596 240.0766 240.2435 240.3252 240.2503 240.2833 237.3578 237.3013 237.9433 239.434 240.1646 240.9104 242.3142 243.9758 246.0332 247.809 248.2458 247.583 245.7746 243.4194 242.0653 243.0955 245.4097 246.9723 247.1456 247.5768 247.4569 242.99 242.7883 242.7155 242.95 243.2678 244.741 244.6578 243.9658 244.1272 244.7599 245.6731 248.1419 250.2615 249.5742 248.5725 246.6676 246.2875 248.0956 254.822 252.8397 250.4356 249.4244 249.9873 249.4988 250.4118 251.5313 252.8219 257.4028 259.7597 260.7717 262.1604 262.1146 263.6213 263.6442 265.2803 266.0302 266.6151 266.1672 266.9957 269.7402 271.9382 274.0284 275.1673 276.1161 276.4522 277.3915 277.8985 278.3959 279.1856 280.391 281.4881 281.6748 281.9759 282.8412 283.5849 282.6235 282.118 280.4695 280.2399 280.4858 280.9001 281.3593 282.2407 -9999 +-9999 -9999 356.3364 356.2926 356.7101 358.7829 361.3289 362.3289 362.7521 362.3521 360.9318 360.3431 361.2613 360.7681 359.237 358.1972 356.0196 351.8472 349.3138 349.4201 352.9996 356.5807 359.2071 361.7699 363.5388 365.2889 367.0405 368.9316 370.3073 370.7056 369.3114 367.7387 365.7685 365.9052 367.0815 367.4385 367.4002 366.1817 365.4769 360.4583 357.3051 353.8669 351.8011 349.9324 347.5504 343.5611 338.3013 340.0974 341.6107 342.0734 341.8914 341.6103 341.2744 339.9909 336.7769 332.0119 329.4561 327.5545 328.6759 327.2516 330.8562 333.128 333.5978 333.6586 332.6624 331.8421 330.902 329.0606 329.4337 331.4159 333.7571 335.4032 334.6513 332.2609 328.9358 325.4387 319.5629 318.2195 319.6085 322.8914 327.5602 331.4314 334.2119 335.8453 337.6068 340.507 341.5916 342.675 343.0856 343.9486 345.2932 347.6422 349.7548 350.7302 351.2074 351.4406 351.3443 351.7484 352.254 353.4954 352.8201 352.3822 351.7809 348.2642 347.9669 347.7315 347.7911 348.2971 348.7061 348.7442 351.6153 353.9006 354.4782 352.5356 349.9769 346.7583 345.6869 344.8356 342.5586 339.8051 335.752 332.6707 330.6671 329.2699 326.6558 325.3889 323.9332 321.9729 320.7753 317.5854 313.0409 312.1923 310.3134 311.0172 310.1916 310.2924 310.6081 311.083 311.2105 312.6324 312.9452 312.8252 310.9697 306.6456 306.5283 306.5282 306.5282 306.528 306.5253 306.5251 306.5251 307.2594 303.8312 295.5106 295.3264 295.1411 294.6293 293.9385 294.4659 295.1961 297.0275 299.4594 301.4797 304.6235 307.0357 308.909 309.0046 305.6378 303.5879 300.9015 302.317 303.8183 306.5079 308.2831 309.6107 307.7894 307.3068 307.6255 308.7413 309.291 309.8582 309.3539 307.9922 306.1534 306.1148 309.1891 309.6212 308.8721 307.3444 306.3221 305.5547 304.7792 304.394 303.1495 299.9139 298.4355 297.4887 296.6811 295.426 292.619 289.4217 288.0231 287.2265 285.1624 285.9731 288.3502 291.5576 292.841 294.8811 292.9791 291.6577 290.5257 288.0061 285.8729 282.3284 279.9561 278.78 277.5943 277.3598 276.9507 274.4753 269.7477 266.2279 263.3099 257.2109 256.5442 255.1914 254.1481 252.9597 255.5838 260.8363 265.8676 269.2154 269.9281 268.192 261.4601 260.313 258.5764 256.7386 257.9534 258.2366 256.7461 252.146 252.7559 251.4326 252.6879 255.6663 258.5491 263.8463 265.9304 266.6441 266.8062 266.562 266.601 268.2392 268.2714 263.3287 249.7429 249.0831 249.7347 249.3995 249.1157 248.9135 248.6599 250.0191 253.1517 255.2341 255.3468 256.2346 257.5656 258.4464 260.1607 263.4644 265.3784 266.8724 267.7378 267.7872 267.8089 266.8167 264.643 260.5766 256.7249 252.6244 248.4571 248.4281 248.2451 248.8042 249.5013 249.4841 248.887 248.841 249.233 250.0343 252.9997 254.9256 257.0561 260.2141 261.4935 262.6904 263.0905 263.2487 263.4302 264.7295 265.596 266.7469 267.5975 268.5382 269.8109 270.7981 272.2727 273.1752 273.9377 274.6251 274.7646 274.8461 274.7767 274.681 274.8293 275.1498 275.5095 276.2039 277.4415 278.0793 278.3467 278.5665 279.0297 279.4466 280.0334 279.8521 279.4805 278.5766 277.9611 277.4605 276.7771 276.1432 274.8055 273.1478 271.5576 271.2843 272.9082 274.3174 275.2968 276.1782 276.385 276.7194 275.9269 275.1442 273.4038 272.3939 274.253 275.4377 276.2681 276.827 277.7303 278.7604 279.8183 281.0461 280.4128 278.9325 277.0836 274.6302 272.6195 270.5293 268.556 267.6053 266.1131 264.0847 263.0576 263.0484 261.1772 257.7987 258.6089 259.4997 258.2865 256.9258 254.2036 252.4571 249.5142 246.463 244.4687 245.616 247.1823 246.1771 250.6697 251.1411 248.8712 244.4851 246.7666 247.6361 248.6112 249.3005 248.952 249.0733 250.673 251.3581 251.6228 251.0541 249.8805 249.0875 248.5659 247.7393 246.9872 244.1376 242.8127 240.5972 240.2237 240.2175 239.9734 240.2708 240.343 236.895 239.7856 239.7156 239.9637 239.8719 239.9303 240.3907 240.3459 239.7894 239.6983 240.2666 239.6326 239.9707 240.332 240.8846 241.2043 242.36 244.0555 245.4188 244.8949 242.8664 241.4498 242.2843 244.3437 245.5465 245.1501 244.8245 245.3103 245.4634 242.1015 242.2047 241.8335 241.85 242.1806 243.3121 243.1637 243.9296 243.9739 243.6911 244.3315 245.643 248.3878 247.7213 245.9398 246.0638 245.9579 251.0383 258.6667 257.8765 256.1978 254.6677 254.4419 255.6654 257.7799 259.14 261.4961 262.6321 261.7784 264.5879 264.3699 264.025 266.0921 266.6335 267.6742 268.6894 269.32 269.7001 269.5976 269.4561 271.1845 273.5622 274.6932 275.7668 276.3974 275.9015 275.7875 276.0828 277.4352 278.8068 279.2785 279.6164 280.1194 280.4266 281.6586 281.731 280.9751 279.4046 278.4351 278.4974 279.3799 280.4327 281.6781 -9999 +-9999 -9999 356.9253 358.1748 358.4257 359.6254 361.2433 361.3484 360.7234 359.5847 358.2646 358.2893 360.7588 359.5181 357.4485 356.4088 354.8731 349.8911 347.6025 349.3337 351.7593 356.774 358.791 361.0432 362.5012 364.1246 366.0168 367.3649 369.2464 369.5668 367.3616 366.45 364.5934 363.4857 364.9782 366.4267 366.2535 365.2409 363.6687 359.3209 356.2487 353.3378 350.9225 348.4147 344.8042 341.2277 342.161 344.4969 343.6554 341.2673 339.6901 339.3325 338.7306 337.3044 334.6186 331.4769 329.2456 327.1505 329.0833 328.0892 333.0172 335.8985 336.8371 336.8105 336.4 335.1791 333.7135 330.8891 329.8584 330.7383 332.5377 334.4005 335.5708 334.2125 331.8887 329.4178 321.8919 320.1405 318.7294 321.8335 326.9982 331.3407 335.0916 336.5543 337.4221 339.7715 341.3957 342.8307 343.6873 344.8272 345.0675 346.7888 348.1406 349.5509 351.132 351.327 350.2794 350.4264 351.5002 352.7628 353.804 353.5747 353.0595 351.1541 350.4102 349.4808 350.0708 350.4859 350.6322 351.4107 353.2047 354.8156 354.2028 351.755 348.2744 345.6806 342.7688 342.111 339.9685 335.8929 331.8325 329.2533 326.5763 325.1892 323.3264 320.8319 319.3602 317.3023 315.1011 314.5578 312.6397 312.246 310.7653 309.3876 308.9195 307.9762 307.8516 307.731 307.8807 306.7256 306.4568 306.5283 306.5282 306.5282 306.5282 306.5282 306.5282 306.5282 306.526 306.5252 306.5251 307.5698 303.1342 296.7738 296.0086 295.0495 294.0292 295.4711 296.4878 296.9165 299.3312 302.151 303.3765 304.1954 306.2775 308.6412 311.0997 308.7941 306.4707 303.6183 303.4249 304.1103 306.1915 308.8507 310.2536 309.2914 309.083 309.5367 310.6472 311.1968 310.8605 310.1285 309.7086 309.3003 309.1236 310.1626 310.0753 309.3566 308.4019 307.0242 306.1606 305.6303 304.8935 303.4301 300.3755 299.1096 297.7639 296.6966 295.7844 293.9421 291.4423 290.3511 290.0785 285.4726 284.1334 286.1088 287.2841 291.1407 291.7828 291.4942 289.8664 290.5257 288.0061 285.8729 282.3284 279.9561 278.78 277.5943 277.3598 276.9507 274.4753 269.7477 266.2279 263.3099 257.2109 256.5442 255.1914 254.1481 252.9597 255.5838 260.8363 265.8676 269.2154 269.9281 268.192 261.4601 260.313 258.5764 256.7386 257.9534 258.2366 256.7461 255.728 254.0725 252.5415 253.0801 256.7786 259.6408 265.098 268.3805 271.2841 271.8008 272.8885 273.2245 273.4118 273.3832 269.0492 249.5206 249.6283 248.5282 249.2644 249.03 248.7694 248.5496 250.1689 251.7743 253.4058 252.9128 254.7251 255.6613 257.2104 259.5241 262.0261 263.4774 264.5993 266.3194 266.8671 264.7054 263.3215 262.067 259.5744 256.4793 252.303 249.025 248.0512 247.9547 248.3749 248.3289 248.3521 248.6632 249.7633 250.8242 251.6965 254.7106 255.9237 258.5466 260.3546 261.2227 261.5901 261.7982 262.0259 262.7882 264.6132 265.6296 266.6544 268.0271 269.0315 270.1419 271.6213 272.1682 272.6664 272.7107 272.5132 272.7006 272.943 272.9896 273.1796 273.3475 273.4714 273.9347 274.7075 275.9561 276.6916 277.1324 278.0471 278.5233 278.8726 279.0168 278.829 278.3853 277.8862 277.6775 277.3702 276.9714 276.4597 275.766 274.5107 272.797 271.8314 273.637 274.5576 275.4538 276.2306 276.9692 276.622 276.583 275.3464 273.7427 273.1325 274.3362 276.0044 276.9696 277.8605 278.4983 279.2422 280.4098 280.7534 280.1777 279.0252 277.8781 276.5426 274.1829 270.5139 267.7672 267.4443 268.025 265.2575 263.6205 260.9697 260.1995 259.0188 256.1899 257.8951 257.3895 255.8394 252.8956 249.2718 245.9905 246.9976 249.3808 251.244 253.0773 253.2423 253.7093 251.9346 248.2583 246.452 247.3026 248.2058 248.4408 249.2983 249.5551 249.9887 251.968 252.475 252.2428 251.2315 250.419 248.9787 248.5646 247.9485 247.1939 245.7586 243.0851 240.0894 239.9925 240.102 240.0793 240.3184 240.2583 238.5137 239.2617 239.5887 239.7966 240.1207 240.0105 240.1567 240.4737 240.6567 239.6944 238.8927 240.0321 240.077 240.3994 240.2952 240.5005 240.7664 241.3185 242.1086 241.823 241.4795 241.7759 243.4132 245.1176 243.507 242.272 241.7653 241.615 241.565 241.9844 243.7811 249.8498 253.0582 254.5322 248.3551 244.7318 247.7401 251.5278 248.9816 244.0616 244.8793 245.2184 244.5011 245.5867 245.9057 248.9519 253.019 259.2199 259.8583 259.1713 259.1996 259.4016 260.359 262.6181 264.4075 266.3194 267.5688 267.7016 267.7955 266.5643 266.6264 267.7454 269.2272 270.1144 270.2244 270.8648 271.9452 272.2124 272.0074 271.7687 273.0815 274.6388 275.62 275.5822 274.4169 274.1624 274.7211 275.851 276.6815 277.1593 277.6255 278.0218 278.2888 280.1967 280.8901 279.3878 278.1089 277.5941 277.9141 278.4459 279.7341 281.6543 -9999 +-9999 -9999 357.0162 359.5817 360.0826 360.6918 361.3864 360.923 359.3139 357.7755 356.1931 357.8817 359.6299 358.434 355.7314 353.611 352.9598 347.1067 345.8847 348.2464 351.7787 356.4135 358.4143 359.8077 360.938 362.7926 364.4032 366.5197 368.1578 368.7598 365.6623 364.6291 363.3254 362.5381 363.5193 365.0689 365.9006 365.1454 363.4436 358.3406 354.8338 351.21 347.4417 344.8364 341.5334 343.5003 346.5555 345.9318 341.5519 339.1897 338.3058 337.3833 335.5206 334.174 333.1847 331.8486 328.9189 333.0308 329.7542 329.3954 333.1813 336.4702 338.6539 339.2156 339.0973 338.1504 336.3226 333.7462 331.5008 331.4612 332.0238 333.8299 335.6725 335.7633 334.4381 332.2241 322.974 320.6088 319.456 322.4339 326.0661 330.0014 332.9108 334.6012 335.5287 338.3055 340.2868 341.7705 342.8831 343.8301 344.0253 344.6147 346.4727 347.1846 349.953 350.0525 349.0859 349.1472 350.2652 351.9451 353.6637 354.4962 354.349 353.4689 352.7459 351.4527 351.9124 352.9413 352.5667 353.1834 354.6073 355.6048 353.1814 350.0483 347.3702 343.0659 340.1245 338.4692 335.6774 331.8056 330.9207 330.7028 327.875 323.8443 323.844 323.0575 317.9856 315.2247 316.4312 322.3644 324.258 321.5183 316.8338 314.3269 315.3093 312.1199 308.6103 307.3329 306.5315 306.5313 306.5312 306.529 306.5298 306.5292 306.4209 306.5287 306.5282 306.528 306.5263 306.5254 306.5251 307.496 301.537 299.3321 300.9754 299.5195 298.5501 299.3394 300.3687 299.5548 300.2308 302.192 305.1937 306.0234 306.5088 308.391 311.4939 310.549 308.8538 306.5179 305.1234 304.9945 306.3006 308.7432 310.4155 310.6628 310.4404 311.0574 310.6559 310.8557 311.8145 310.1285 309.7086 309.3003 309.5902 310.1626 310.0753 309.3566 308.4019 307.0242 306.1606 305.6303 304.8935 303.4301 300.3755 299.1096 297.7639 296.6966 295.7844 293.9421 291.4423 290.3511 290.0785 285.4726 284.1334 286.1088 287.2841 291.1407 291.7828 291.4942 289.8664 287.5369 286.7786 285.9749 282.769 279.9068 278.1448 276.4599 275.5433 274.747 273.1317 266.4486 263.0519 260.2107 263.3733 266.6886 262.5638 255.7019 262.2755 262.1905 262.5292 268.5743 271.9297 273.4383 273.5659 271.7706 270.1085 269.4195 266.406 261.1631 260.6631 259.5583 258.7566 257.4185 254.9167 253.2525 256.2704 260.2004 266.2572 269.1538 272.5287 274.8476 276.6377 278.5667 278.4587 276.4858 269.7779 249.6167 249.3648 249.4359 249.2099 249.1341 249.1133 249.0065 248.634 249.9522 248.7747 249.2001 251.1046 254.4008 257.1595 259.2014 260.7682 262.2975 263.1766 264.3827 265.9825 263.515 261.4153 259.9073 258.4489 256.5846 252.563 250.458 248.2551 247.3621 248.155 248.2606 248.7116 249.7906 250.9186 251.9422 253.1449 256.0083 257.4398 259.1273 260.3646 260.3916 260.5962 261.0042 261.6908 262.8055 264.9922 266.1586 267.3461 268.5779 269.8047 270.9247 271.2346 271.4213 271.3757 270.2765 270.3181 270.6963 270.984 271.4425 272.0831 272.0818 271.8819 272.4165 273.3375 274.7828 275.5967 276.2274 277.5211 278.1946 278.1173 277.6537 277.1252 276.9199 276.6797 276.8701 276.8383 276.8741 276.7235 276.37 275.2959 274.2513 273.3724 273.5215 274.2977 275.4623 276.0266 276.4958 276.7172 276.4931 275.2104 273.7654 273.2712 274.342 275.7901 276.9829 278.3211 279.2755 279.6766 280.038 280.1586 279.4688 278.1732 276.9877 275.0412 272.5097 269.6661 268.0341 268.7025 268.4126 264.695 262.2778 259.0406 257.0648 257.435 255.9854 254.8426 256.1027 254.3661 249.0836 246.7739 251.6578 251.543 253.7987 255.3203 256.0009 255.6687 255.0991 252.5477 250.5127 248.8322 248.2665 248.7747 249.7712 249.5258 250.2073 251.0974 253.7203 254.5286 253.5161 252.4735 250.7559 249.3733 248.6632 248.2719 247.6391 247.0327 241.9055 239.7109 239.5948 239.8666 239.9426 240.1159 240.0729 240.203 238.7722 239.4558 239.837 240.2228 240.3367 240.2674 240.0464 240.427 240.5123 239.4792 239.9886 238.3448 239.4498 239.1327 240.3934 240.5769 241.1647 240.8033 240.7634 241.4655 242.7772 244.4781 243.8542 241.6523 240.3059 241.1716 241.3698 241.686 243.4707 249.0913 253.4207 257.0284 259.3851 257.8317 253.7249 254.3876 258.5848 255.1407 244.5878 244.8969 244.9626 245.206 245.4702 248.1077 250.6133 252.9866 258.0555 258.9064 259.5598 259.8004 260.5061 261.417 263.576 265.2279 266.9861 268.2282 268.6237 268.9367 269.1742 269.6285 270.1032 270.4977 271.0499 271.0318 271.5369 272.1186 272.4632 273.1853 273.5563 273.7379 274.088 274.3202 273.8795 272.8367 272.9304 273.0063 273.7375 274.6109 274.7605 275.5254 275.8994 277.0202 279.3535 280.2296 278.4472 277.1886 276.566 276.9106 277.6668 279.0937 280.7576 -9999 +-9999 -9999 357.9931 359.2644 359.4795 360.4827 361.6075 361.5437 359.5922 357.1515 354.955 357.3405 358.6362 357.9114 356.1391 353.1718 350.9237 347.882 344.7245 347.7807 351.3745 355.5235 356.9824 358.0358 358.5855 360.6781 363.3763 365.0225 366.9062 367.1892 364.7437 363.2076 362.4315 360.985 361.6078 363.2054 365.0568 364.973 363.2658 358.3183 354.6676 349.4355 345.4887 343.2862 342.9689 346.2645 347.7646 345.3315 342.4512 342.2442 341.868 341.3235 340.49 338.6599 334.6406 330.8379 334.3179 334.8106 331.3304 329.993 332.9357 336.5467 338.7079 340.0826 340.6397 340.38 339.1901 336.3922 333.8869 332.2726 332.554 333.7218 335.731 336.8691 336.5018 334.1949 325.9947 321.6662 318.904 321.4934 324.2755 327.368 330.2152 332.1943 333.7258 336.8261 338.5779 340.2244 341.2985 342.3384 342.5136 342.1301 342.7564 345.0342 348.2654 346.8385 346.0157 346.8024 348.7948 350.9306 353.022 354.4784 354.9407 355.2926 355.2509 354.6732 353.9221 354.3183 353.8105 354.3128 355.3914 355.5814 351.2233 347.6965 343.9414 340.2714 337.5389 334.4959 334.9111 337.4489 336.8015 333.2367 329.2099 325.4254 323.9361 322.8457 320.1577 316.1026 321.602 326.231 328.7936 326.8314 322.7703 322.1338 320.9618 316.9813 312.4155 311.6416 308.3756 306.9406 306.9936 307.6357 310.9951 313.6539 314.6241 311.8818 306.8027 306.5282 306.5266 306.5157 306.4993 307.496 301.537 299.3321 300.9754 299.5195 298.5501 299.3394 300.3687 299.5548 300.2308 302.192 305.1937 306.0234 306.5088 308.391 311.4939 310.549 308.8538 306.5179 305.1234 304.9945 306.3006 308.7432 310.4155 310.6628 310.4404 311.0574 310.6559 310.8557 311.8145 311.1804 310.3122 309.912 310.0448 309.9936 309.827 309.0436 307.9635 306.547 305.2438 304.7627 304.5937 303.6458 300.0551 298.3398 296.9038 295.9476 295.5309 294.5462 293.687 293.0406 291.9272 287.25 283.9483 284.1994 286.4156 285.5389 289.1089 289.3648 288.3363 286.901 284.033 284.1721 281.2575 279.6166 278.0639 275.9223 274.1091 273.1328 271.5588 265.2682 261.1183 260.6224 269.2638 275.6318 275.2247 271.2616 268.8343 263.5645 262.47 267.3198 270.6881 273.2129 275.0857 275.4816 275.8558 275.5636 274.0611 266.8441 265.8088 264.3721 263.3371 261.6953 260.5624 253.0162 255.4721 259.7289 266.2213 269.274 272.3055 275.3529 278.0499 280.8219 281.5472 277.8426 269.0917 251.8433 249.1359 249.2112 249.4011 247.9871 249.5996 249.1529 248.7123 248.598 248.3126 248.1631 249.32 253.9315 256.1487 258.1826 259.7881 260.8964 260.8229 261.8994 263.154 261.7894 260.3775 258.9154 257.2589 255.5993 252.8747 249.7785 248.0312 247.8832 248.1407 247.7681 249.0057 250.3424 251.7511 252.6474 254.0666 257.219 258.5922 259.089 258.7285 260.1057 260.382 261.0594 262.0715 263.2026 265.3232 267.1947 268.3493 269.1921 270.2828 270.5218 270.503 270.1792 269.0962 268.7289 268.4697 268.7708 269.0894 269.8155 270.7334 270.8807 270.8493 271.3659 272.0896 273.1809 274.3144 275.8597 276.7722 277.3144 276.9918 276.2345 275.785 275.4129 275.2422 275.3293 275.8802 276.3203 276.7692 276.6779 275.9241 275.1846 274.5977 274.2747 274.5038 274.965 275.9114 276.087 276.0158 275.6274 274.8476 273.8295 273.4402 274.3552 275.5876 276.8875 278.1375 278.9754 279.0833 279.5096 279.6131 278.3924 277.2347 275.4846 273.5262 270.9501 269.2438 269.81 269.6999 268.3336 264.703 262.5613 259.9652 257.0268 251.1503 252.2404 249.5038 250.3011 251.0346 250.741 253.6519 256.0147 256.8333 257.3365 257.6336 257.4948 256.6714 255.6747 252.6306 250.7043 249.9562 249.7153 249.8786 251.6532 251.2514 251.4869 251.9051 255.3343 256.3143 255.1332 253.7943 251.881 250.1055 249.29 249.1287 247.5779 244.6389 240.9272 239.6224 239.4451 239.6422 239.6856 239.9974 240.067 240.0632 236.7645 238.1396 239.813 239.9618 239.8269 240.0899 240.5199 240.7523 241.0841 240.7306 241.2079 239.3987 239.4466 239.3709 240.511 240.3382 240.3209 239.9152 240.5834 242.1369 243.7762 243.6238 242.7343 240.953 240.9861 241.2172 241.1214 242.9461 247.7118 251.7329 255.0456 258.4086 261.5087 263.174 260.1531 259.9907 262.3907 262.2732 253.5922 247.953 245.7471 244.527 245.7536 247.4288 250.3404 252.06 255.7389 257.0568 257.6085 258.7917 259.9991 261.5347 263.1527 264.376 265.7363 265.9633 266.5275 266.5437 267.3644 269.069 269.397 269.8816 269.9168 269.8293 270.7681 271.5747 272.3498 272.6576 272.6815 272.5199 272.5655 272.1297 271.4759 270.1413 269.6475 270.6248 272.0347 272.7104 273.3975 274.3625 275.2029 276.5265 279.4447 279.8351 277.5271 276.1935 274.9847 275.5657 276.5084 278.1555 279.5795 -9999 +-9999 -9999 358.4932 358.0172 358.8041 359.8337 361.2189 360.7854 358.6371 355.5756 352.6438 353.8597 357.4508 357.4712 356.2274 353.8887 351.0737 347.3566 343.6557 346.1931 350.5936 353.6014 354.7471 355.9814 358.5336 360.6903 362.2786 363.865 364.47 365.0692 364.0528 362.535 361.3156 359.2973 359.9219 362.2105 364.4133 364.8618 363.681 357.6767 353.3789 349.3751 345.3917 345.7608 347.9113 350.2236 349.5977 347.7185 345.3051 344.3654 344.0981 343.1581 342.5519 340.5646 334.1184 333.6234 337.7151 336.8651 333.0309 330.6736 332.0289 334.6378 336.8892 339.2604 340.5803 341.3845 340.1548 338.4567 335.9522 334.1058 333.74 334.0709 335.7233 337.0274 338.08 336.8497 330.4687 325.6588 319.8689 321.4413 322.9091 325.4564 327.7914 330.201 331.5047 334.8103 336.6302 338.3722 339.7931 340.5303 340.6056 340.1338 341.623 342.8435 341.5686 341.6401 342.7434 344.8873 347.6454 349.8838 351.7114 353.7023 355.2403 356.2535 356.4986 356.6198 356.1974 355.8391 355.283 355.4796 356.1344 355.5337 350.6782 348.4404 346.3436 343.0024 340.5552 342.0596 341.6588 340.1214 337.9268 333.4069 329.2099 325.4254 323.9361 322.8457 320.1577 316.1026 321.602 326.231 328.7936 326.8314 322.7703 322.1338 320.9618 316.9813 312.4155 311.6416 308.3756 306.9406 306.9936 307.6357 310.9951 313.6539 314.6241 311.8818 306.8027 306.5282 306.5266 306.5157 306.4993 307.4647 303.6982 301.1385 303.6579 303.6739 303.9647 304.0402 304.511 303.8892 301.6736 302.1716 305.0179 306.365 307.4468 309.2435 312.1533 311.5906 309.9396 308.1002 307.7996 307.5584 307.9114 309.4137 309.6773 308.8312 309.2755 311.0637 312.3152 312.4551 311.847 311.1613 310.4484 308.7089 308.3579 308.0887 308.5114 308.3484 307.2152 305.6743 303.7737 302.0953 302.8312 302.6776 299.2772 296.9553 295.1993 293.76 293.9738 293.7415 293.9256 293.7035 292.5022 289.627 285.3684 282.8761 283.239 284.0997 284.4811 285.9259 285.4121 283.8121 280.7365 280.4231 279.2744 277.6235 276.7265 274.864 272.8919 271.4047 269.9652 264.5379 261.4687 261.1492 268.5573 277.3908 281.1306 278.0008 273.8395 268.7545 261.5163 264.1289 269.6447 272.117 275.1359 277.6465 279.3177 279.4471 277.3035 275.302 272.8729 269.9455 267.9825 266.1125 263.4947 256.7748 255.3667 259.4809 265.328 268.7694 271.9118 275.1199 278.0222 280.9681 283.0409 281.3161 277.7076 261.3728 253.7779 251.0688 249.1219 249.241 248.3349 249.291 248.7476 248.3945 248.4183 248.2363 249.198 253.6886 255.1114 257.14 258.4492 258.5515 258.7455 259.9007 260.3767 259.1955 257.5455 257.3802 256.0646 254.1597 252.8322 249.9472 247.5968 247.7941 247.0829 247.7169 248.5813 249.6096 250.9372 252.3411 253.7648 256.9275 257.844 257.4467 257.791 259.383 260.562 261.6038 262.8806 263.9649 266.3055 267.8264 268.8336 269.2985 269.2892 268.772 269.2237 268.3496 267.2328 266.5916 267.0281 266.8029 267.1485 267.6244 268.1886 268.7035 269.548 270.4657 270.7578 272.4266 273.6321 275.0573 275.818 275.5855 274.887 274.4547 274.1448 273.6501 273.7426 273.8279 274.1959 275.8556 276.2248 276.6434 276.2546 275.3882 275.3251 275.206 275.3801 275.4291 275.4124 275.3246 275.209 274.809 274.4784 274.2328 273.9886 274.32 275.2668 276.3093 277.1155 277.7645 278.1167 278.454 278.6982 278.0932 277.039 275.1471 273.0043 270.9337 271.1173 271.2354 270.0055 268.8704 265.6296 263.9853 262.5536 259.3633 258.6351 257.9769 256.1477 249.6925 253.6619 257.1034 257.8209 258.3712 258.4837 258.8651 259.0591 258.2621 257.2762 256.4286 252.7717 250.7631 250.2028 250.4706 251.7111 252.444 251.8157 251.7452 252.5839 256.8276 258.1902 257.7392 255.745 253.3364 251.2133 250.0854 249.7184 247.2748 243.8028 241.0545 240.015 239.5101 239.4791 239.4085 239.5763 239.9119 239.9132 239.9115 237.257 236.7694 240.2201 240.4855 240.5553 240.5315 240.509 240.8057 240.8355 241.0082 240.5978 239.6089 239.5771 239.2066 239.7529 239.784 239.5525 240.0307 241.2966 242.6327 242.0752 240.4083 240.7557 241.093 240.9603 242.1917 247.1927 250.6917 254.6285 257.6536 260.7447 264.0323 265.8969 265.1003 265.8485 267.8926 266.8122 261.7616 256.1844 252.8672 246.8734 245.861 245.4846 246.5806 248.2672 252.3601 254.3048 255.8805 257.6687 258.7603 260.4334 262.1768 262.9688 263.1604 264.1005 264.7568 264.669 266.2079 267.8471 268.3113 268.264 268.1469 268.4952 270.0543 271.4965 271.6978 271.263 270.9933 270.3456 270.0226 272.1297 271.4759 270.1413 269.6475 270.6248 272.0347 272.7104 273.3975 274.3625 275.2029 276.5265 279.4447 279.8351 277.5271 276.1935 274.9847 275.5657 276.5084 278.1555 279.5795 -9999 +-9999 -9999 357.4144 355.5092 356.0134 358.717 360.4007 360.2176 358.1671 354.7249 350.1427 350.6053 356.1339 356.1655 355.7881 353.9376 350.3312 345.1622 339.7667 346.2337 348.7048 352.2629 354.4667 356.1893 357.9365 359.6481 360.6659 361.1337 362.866 363.1681 362.6646 361.197 358.8979 356.9706 358.4434 360.7728 363.1651 364.2034 365.5185 360.0065 356.6635 348.7746 347.1927 351.8359 352.9928 352.9759 351.5836 349.99 347.3044 346.5514 346.0195 344.9897 344.2534 341.6074 335.4286 334.671 338.9097 337.3844 333.7083 331.5369 332.6854 334.0625 335.5882 337.4982 339.3006 340.6227 341.8395 340.6487 338.456 336.5111 335.2671 334.5536 335.674 337.0282 338.2838 337.1789 331.5157 325.9958 323.1484 319.7892 321.8921 323.4748 324.9527 326.7583 328.0214 331.9823 333.9499 336.2111 337.8633 338.6783 338.0977 337.8542 337.4511 337.7845 341.5686 341.6401 342.7434 344.8873 347.6454 349.8838 351.7114 353.7023 355.2403 356.2535 356.4986 356.6198 356.1974 355.8391 355.283 355.4796 356.1344 355.5337 350.6782 348.4404 346.3436 343.0024 340.5552 342.0596 341.6588 340.1214 337.9268 333.4069 330.7455 326.9797 325.0151 321.9986 319.1255 320.7534 324.9305 326.5912 331.2589 329.4269 327.3283 326.2585 323.248 318.1803 319.8015 319.4046 318.7202 317.424 316.5138 316.7653 317.6766 318.4756 318.8275 314.5346 306.7097 306.5282 308.5639 310.5565 310.6065 309.1371 306.6062 301.8618 305.0804 307.0894 308.0334 307.4587 307.516 306.9881 304.5475 302.8065 304.1465 305.9586 307.9279 309.6053 312.9821 312.4995 310.9999 310.1002 309.8814 309.3984 309.4273 308.8762 308.5361 306.2721 309.1205 310.6771 311.277 311.0848 308.8253 310.0004 309.1191 307.0066 304.9042 304.3247 306.0315 306.3923 305.567 303.7814 302.1669 300.2907 297.9492 300.334 298.2139 295.7987 292.972 291.6748 291.9333 292.3173 293.3776 294.0671 294.0916 291.108 287.4149 284.1415 282.4469 282.0211 281.268 280.6694 280.861 280.1019 279.5271 279.8539 279.1541 276.808 275.6989 273.8676 272.1019 270.3781 268.655 263.4746 261.5081 261.6601 268.0747 278.2548 284.821 285.7423 280.9447 276.1119 267.2347 264.813 266.7145 271.9856 274.64 277.0193 279.9616 281.7906 280.9202 281.7568 279.0204 274.3775 270.3224 267.3438 265.0153 260.9051 254.5636 259.8357 266.9495 270.707 273.3586 275.3093 278.0167 280.8378 283.2694 284.0966 281.8307 266.9859 259.581 255.7652 248.893 249.1199 249.1458 247.5793 248.8874 248.6029 248.2577 248.1436 249.8127 253.2368 254.6455 256.1187 256.7181 256.568 255.2172 257.4497 256.5757 256.0892 255.6034 255.1567 254.3189 253.4629 252.311 251.5126 247.4245 247.5043 247.8277 247.8105 248.4043 249.1799 250.2546 251.697 252.9791 255.0921 254.8719 257.0944 258.5986 260.1165 261.2176 262.8963 264.0988 265.2778 267.4536 268.1278 268.4091 268.5628 267.9428 267.3251 266.4738 265.8191 264.9908 263.9911 263.6705 264.088 264.6654 265.8682 266.9055 267.8524 268.7061 269.5005 271.0315 272.4704 273.339 274.1476 274.2668 273.7716 273.1345 272.9506 272.9122 272.3284 272.3213 272.9174 273.8166 274.9495 275.9942 276.1221 275.9982 275.8348 275.9267 276.1262 275.9845 275.6854 275.4887 275.3089 275.0727 275.0066 274.7817 274.4204 274.2266 274.4328 274.9077 275.5428 276.0515 276.4638 277.0893 277.4537 278.0634 278.0509 277.1341 275.3256 273.3038 273.1104 273.4617 272.4024 271.105 269.8011 266.8484 265.9666 264.1524 262.0705 259.6406 256.8464 253.8952 253.1178 257.9173 259.0821 259.4668 259.7571 259.4662 259.0321 258.4873 257.838 257.2136 256.3088 252.2646 251.1535 251.3866 252.1541 253.1404 253.276 252.7199 252.6959 253.4944 256.8592 258.4452 258.3342 256.8413 254.0737 251.798 250.7429 249.6424 247.28 244.8143 242.4904 240.5692 239.4868 239.646 239.5297 239.7575 239.8479 239.7467 239.6503 239.9761 238.276 239.7428 239.9141 239.5156 239.5955 239.958 240.2574 240.7505 240.9727 241.0127 240.3951 239.2393 239.2153 239.653 239.7097 239.8353 239.8306 239.8245 240.0431 240.7906 240.8049 240.6503 240.7328 242.35 243.8127 250.1015 253.3915 256.4 259.2189 262.3937 264.0323 265.8969 265.1003 265.8485 267.8926 266.8122 261.7616 256.1844 252.8672 246.8734 245.861 245.4846 246.5806 248.2672 252.3601 254.3048 255.8805 257.6687 258.7603 260.4334 262.1768 262.9688 263.1604 264.1005 264.7568 264.669 266.2079 267.8471 268.3113 268.264 268.1469 268.4952 270.0543 271.4965 271.6978 271.263 270.9933 270.3456 270.0226 269.9801 269.912 267.2081 266.8111 268.2333 270.0709 270.8786 272.4477 273.649 275.2392 276.6964 279.4109 279.4725 276.8724 275.1174 274.4163 274.5706 275.4012 276.8604 278.4193 -9999 +-9999 -9999 355.0692 352.4105 355.4663 358.2664 358.2308 358.8159 357.6357 354.124 348.9527 348.9149 354.2575 355.0998 353.9872 351.8409 347.9303 341.7998 341.5082 344.6915 347.372 352.3143 353.9547 355.3592 356.5945 357.4804 358.4526 360.5841 361.1678 360.8756 360.3125 359.6082 355.9877 354.9888 354.431 358.3269 361.5677 363.4608 365.182 365.4297 362.9028 358.8798 357.313 356.554 356.1657 355.0298 353.5398 351.693 349.2514 348.6229 347.7912 346.271 343.9655 341.187 336.1168 335.9308 340.257 337.3718 334.1817 332.2716 333.4337 335.427 336.8989 337.9786 339.4579 340.05 343.155 340.6487 338.456 336.5111 335.2671 334.5536 335.674 337.0282 338.2838 335.6574 331.5157 325.9958 323.1484 319.7892 321.8921 323.4748 324.9527 326.7583 328.0214 331.9823 333.9499 336.2111 337.8633 338.6783 338.0977 337.8542 337.4511 337.7845 345.7196 343.7615 342.4516 344.0338 347.4776 349.6167 351.7093 354.001 355.5543 357.007 357.1824 357.3996 357.5098 357.4028 356.8448 356.7886 356.4861 355.463 353.6355 351.4179 349.3377 346.2728 345.1166 344.6594 342.7728 340.3933 337.382 332.3247 329.7145 327.224 321.3141 319.7878 320.1244 324.9226 328.6298 330.3236 332.8947 331.5023 330.709 329.111 325.3213 323.5266 323.7358 323.9808 323.5121 323.0136 322.4296 322.124 322.6411 319.6828 317.6587 311.7422 306.524 306.5118 311.064 312.1268 312.1094 309.9704 306.5519 304.4418 305.4879 309.0095 310.4553 310.1458 309.8889 309.3429 306.8231 304.2398 305.683 308.114 309.1564 310.4803 313.4824 313.2875 312.0746 311.1446 310.1795 309.3449 308.5319 307.712 306.7701 305.617 307.8199 308.7828 308.9994 308.5638 305.9106 307.9912 308.3135 306.6276 302.4297 300.8889 302.7171 303.2143 303.1609 301.8117 300.7896 298.8452 296.2671 298.1702 296.8837 293.5735 291.6133 289.671 289.4394 291.1475 293.2691 294.0654 294.5615 292.1815 289.0699 283.2183 283.3101 281.5164 279.5409 277.4852 277.2211 277.4074 280.9704 281.2619 278.917 276.2874 274.623 273.2634 268.4133 269.2286 267.4494 262.3583 261.3328 262.5447 268.0984 278.2113 285.1651 290.652 288.2527 283.6812 273.7701 271.7695 267.7583 268.19 272.2638 275.493 279.1032 282.6706 283.99 285.7466 283.6496 278.33 273.465 269.0309 265.5859 262.3463 256.1084 259.312 267.3676 271.7097 275.1145 277.6103 279.2653 281.19 283.1906 283.9314 282.2527 266.8275 261.3618 258.8456 249.7277 248.9166 248.9483 248.9023 247.3911 248.6454 248.4353 248.2372 249.4386 251.7398 253.28 255.1507 255.2714 253.7319 253.6461 254.0439 253.4286 254.3843 253.5916 253.0797 252.8929 252.8923 252.2268 251.654 247.2698 247.2836 247.5218 247.4247 248.2621 249.2945 250.2409 251.1812 252.4503 254.954 257.0528 258.2769 259.259 260.9581 262.5129 263.8089 265.3765 266.2716 267.5381 267.7048 267.6207 267.2219 266.1808 265.7186 264.1813 263.1175 261.8705 261.0833 261.5025 261.942 263.0668 263.8882 265.5934 267.7395 268.2555 268.6887 271.2913 271.7297 272.5066 272.7845 272.6396 272.1266 271.8318 271.6129 271.5266 271.2576 271.7057 272.4259 273.532 274.6665 275.4532 276.3202 276.3809 277.0051 276.9364 276.6932 276.3107 276.0693 275.3008 274.9063 274.8466 274.2933 274.1133 273.8127 272.4421 272.7662 273.8206 274.639 275.356 275.935 276.0085 276.7024 277.5475 278.6581 278.2078 277.2624 276.0487 275.7604 274.9063 273.4583 272.3799 271.2014 267.9429 267.0977 264.8396 261.4492 255.5303 252.9455 253.7096 258.2717 260.3567 260.3496 260.4233 260.1609 259.4281 258.4604 257.6737 256.987 256.5772 255.7968 252.4882 252.2627 252.9699 254.0428 254.8956 254.9728 254.3557 254.4066 255.4625 257.9211 257.9445 256.3814 254.5426 252.9784 251.6973 250.1218 248.4727 247.142 246.5252 245.0967 241.5318 239.4868 239.646 239.5297 239.7575 239.8479 239.7467 239.6503 239.9761 238.276 239.7428 239.9141 239.5156 239.5955 239.958 240.2574 240.7505 240.9727 241.0127 240.3951 239.2393 239.2153 239.653 239.7097 239.8353 239.8306 239.8245 240.0431 240.7906 240.8049 240.6503 240.7328 242.35 243.8127 250.1015 253.3915 256.4 259.2189 262.3937 265.0641 266.6073 267.3233 268.1689 269.8264 267.4897 264.1272 260.4803 256.5865 254.7544 251.9458 249.0777 248.7224 247.3647 249.4732 252.306 254.47 255.748 256.7444 257.3934 259.8641 260.6725 261.0561 262.1261 261.0393 263.1428 265.3572 266.7227 266.735 266.5214 266.2535 267.2042 269.945 270.3119 270.0458 268.758 268.55 268.1196 268.3843 267.791 266.76 265.2911 266.3042 267.6743 268.6251 269.5963 270.2666 272.4934 276.183 278.1368 279.8207 278.5887 276.1847 274.6343 273.0757 273.1398 274.4777 275.9498 277.2906 -9999 +-9999 -9999 353.4685 350.155 353.5901 356.1081 356.6068 356.6057 354.5921 352.7496 352.6111 346.0228 351.5008 352.2361 352.1121 350.8011 346.8057 340.7086 340.8217 344.2944 347.0867 351.1642 352.5319 353.6559 354.7611 355.2427 356.729 358.8417 359.0445 359.0948 357.3961 356.2617 352.1805 352.07 356.0866 359.4445 361.1889 363.3686 364.9753 367.9562 362.9028 358.8798 357.313 356.554 356.1657 355.0298 353.5398 351.693 349.2514 348.6229 347.7912 346.271 343.9655 341.187 336.1168 335.9308 340.257 337.3718 334.1817 332.2716 333.4337 335.427 336.8989 337.9786 339.4579 340.05 343.155 342.4661 340.7836 339.2247 337.5582 335.8594 335.7478 336.9268 337.7612 333.0114 328.4101 324.8282 321.2876 324.9159 324.4937 322.2517 323.3764 321.5732 322.1316 327.1957 328.0152 330.805 334.3687 335.8439 335.3217 335.081 334.6344 340.2946 347.5471 348.5651 348.1396 348.5523 350.7608 352.7495 353.6586 355.0351 356.1839 358.3592 358.3424 358.0833 357.9327 358.3497 358.4369 358.1584 357.3914 355.5762 354.1417 353.0124 350.9261 348.5428 346.4658 344.9291 342.8544 341.5402 339.3525 332.5098 328.1398 322.8809 320.9587 321.9673 322.7225 326.611 329.4829 332.5614 335.2743 334.1772 333.3275 330.7782 329.3148 328.0463 327.2467 327.5496 327.0224 326.3047 325.2098 324.3979 321.6537 316.5121 311.8315 306.7365 307.5407 309.775 313.3572 314.2989 313.0299 310.4882 309.7193 307.7813 305.9713 309.806 312.4337 312.7432 312.5407 311.4986 308.9548 306.8081 306.3752 308.6818 309.7875 311.4012 314.0771 313.431 311.8886 310.8557 309.2946 307.1003 304.7738 304.9247 304.81 303.4742 305.6931 306.2733 306.1961 305.566 303.5642 306.087 306.5193 305.1876 301.4843 299.033 298.0681 298.3816 299.6888 299.5112 298.5428 297.183 295.0479 296.0207 295.4557 291.7937 289.5799 287.6781 287.2955 289.769 292.6202 292.9886 293.2297 290.3854 287.8946 283.711 284.2468 281.0011 276.7777 273.6217 275.2395 274.2854 279.6136 279.9007 278.4265 274.768 272.2192 271.3434 269.8189 267.7514 265.5752 262.1584 262.3324 265.5198 270.5787 278.3084 284.1527 289.4096 293.207 290.3698 283.6661 279.1415 273.0402 268.7548 270.1942 274.1787 278.0247 281.7011 285.1577 287.8865 286.1403 280.2136 274.9913 271.8631 268.0983 265.6544 257.51 257.7414 267.7003 271.8358 275.504 278.2746 280.1318 281.9164 283.2189 283.1136 281.1621 269.842 264.1076 261.756 256.3653 249.7136 248.7739 248.7459 248.8437 247.3168 248.4999 248.5133 248.5868 248.7536 249.5287 251.4879 251.8526 250.2486 250.4452 251.3382 250.9192 251.4226 251.7692 250.8972 250.8036 251.3994 251.403 251.6443 247.2532 247.2121 247.2677 247.364 248.1135 248.9538 249.838 250.5509 251.5852 255.2828 256.9357 259.1268 260.4417 261.4286 263.1429 264.1768 265.4043 266.2729 266.7859 266.9652 266.0216 265.0151 264.5527 264.0408 261.8551 260.4018 259.0534 259.3134 260.2384 261.1755 262.1775 263.755 265.1776 267.0673 267.4153 268.4902 270.391 270.593 270.6891 270.9008 270.7361 270.3602 270.02 269.8466 269.7795 270.8579 271.112 271.9327 272.9431 274.38 275.1235 275.8418 276.5391 276.8421 277.2268 276.6902 276.2733 275.4003 275.1297 273.801 273.4534 273.3736 273.3048 273.033 271.1158 272.0398 272.9781 273.333 273.7345 274.8006 275.0788 276.4501 277.4095 279.0729 279.1991 278.5 278.1801 277.6684 276.4944 275.305 274.2858 272.8384 269.2541 267.8918 264.8396 261.4492 255.5303 252.9455 253.7096 258.2717 260.3567 260.3496 260.4233 260.1609 259.4281 258.4604 257.6737 256.987 256.5772 255.7968 252.4882 252.2627 252.9699 254.0428 254.8956 254.9728 254.3557 254.4066 255.4625 257.9211 257.9445 256.3814 254.5426 252.9784 251.6973 250.1218 248.4727 247.142 246.5252 245.0967 241.5318 240.1931 239.7414 239.7084 239.6808 239.5448 239.6283 239.739 239.8614 239.098 238.3698 239.2343 239.5397 239.8597 239.6902 240.2599 241.0503 240.8358 240.5731 240.5575 239.5211 239.317 239.3548 239.5601 239.811 240.1639 240.2871 240.4831 240.8003 240.6045 240.8435 242.3116 244.3415 244.9069 250.6995 253.1362 256.2012 258.3719 260.7411 262.581 263.685 265.0219 266.6537 268.6627 267.6915 265.4035 262.6831 259.0822 258.8362 259.1249 258.236 257.4402 248.2385 248.3638 248.9516 250.4049 252.3215 254.4991 254.7514 257.3789 257.8189 255.681 259.9236 259.9495 261.6187 263.8697 264.6477 263.9697 259.6169 265.8821 266.6988 268.6802 268.6356 267.7845 266.9662 266.2486 265.5283 265.3311 264.2823 263.6542 264.852 265.3164 266.1917 266.857 267.6079 269.4096 272.7751 275.6478 277.425 279.2498 277.9494 275.8675 273.6868 271.4585 271.5072 272.4971 274.4644 275.9319 -9999 +-9999 -9999 351.1865 348.1401 351.0438 353.1854 353.0361 353.1888 352.5209 352.5427 349.7079 345.6497 348.0624 352.2361 352.1121 350.8011 346.8057 340.7086 340.8217 344.2944 347.0867 351.1642 352.5319 353.6559 354.7611 355.2427 356.729 358.8417 359.0445 359.0948 357.3961 356.2617 352.1805 352.07 356.0866 359.4445 361.1889 363.3686 364.9753 367.9562 367.5702 364.9337 362.1918 360.2714 358.7181 357.1151 355.9818 353.8571 351.3626 349.8701 348.3475 346.0324 342.9932 339.474 334.2149 338.3486 341.69 338.5071 335.4576 333.3116 336.2717 338.8358 340.4716 341.0979 341.1545 340.9293 344.2278 344.1073 342.7022 341.5221 340.2812 338.2142 336.4034 336.8069 337.5992 330.0862 325.7655 324.3951 324.5871 326.5512 328.09 328.1494 326.3307 326.1869 324.2411 323.1819 326.2756 329.3278 331.1251 331.4212 332.2621 335.401 338.4602 341.1231 348.1154 349.5953 350.7436 352.0355 354.0964 355.4718 355.795 356.6854 357.6618 359.6757 360.0656 359.8465 358.9371 359.1608 359.1143 358.2224 357.0836 355.4216 353.6361 352.2044 350.7044 349.2287 347.5381 345.1248 341.8752 339.2813 337.1055 330.4169 323.4306 322.571 322.0508 323.4633 325.208 327.924 331.4071 334.3551 337.728 336.7766 335.7379 334.138 332.924 331.9058 329.8416 329.0491 327.6006 326.1035 323.9716 321.7679 317.6973 310.4313 310.1573 312.6984 312.5405 313.9551 315.1504 315.9235 314.7733 312.3969 311.6954 310.6082 307.2412 309.8179 313.2574 314.9503 314.7381 313.4815 311.799 310.8482 308.9388 308.9592 309.7502 311.5396 312.8129 313.0391 311.6389 310.5435 308.1605 305.5449 302.9257 301.5443 301.8112 301.5854 302.6944 302.6984 302.3478 302.3748 302.1873 304.2759 304.7736 302.7948 299.9943 299.581 297.0339 294.9709 295.1482 297.0622 295.9938 294.9729 293.9674 290.1065 292.6922 289.9123 287.6637 286.2822 285.157 288.454 290.6084 290.1452 289.4707 287.032 284.4346 282.9549 283.534 280.8033 277.748 273.1202 272.3026 273.5333 276.5417 278.3006 277.1441 272.0615 267.4474 267.0021 267.1421 265.0372 263.7763 262.3807 263.5671 268.7933 273.9132 275.1775 280.5287 287.4987 292.1474 294.5369 289.3997 286.2129 279.3941 274.0109 272.7289 273.6461 275.778 279.9604 284.6064 289.1141 288.1752 283.833 278.4813 274.2386 270.2973 267.0615 263.1976 257.0736 267.4383 271.1521 275.0247 277.572 279.5649 281.3965 282.5233 282.2383 280.1992 271.6357 266.3366 262.5606 258.5581 252.5868 248.9088 248.6138 248.574 248.6871 248.0774 248.7607 248.5641 248.0711 247.8047 247.7349 247.841 247.7961 247.5737 247.4503 247.7945 248.4612 248.4271 247.9012 247.898 248.6851 249.8692 251.4988 247.9478 247.0979 247.1487 247.2473 247.5303 248.0248 248.3769 249.1167 250.4456 255.3291 257.4181 258.5638 260.022 261.0332 262.0329 263.4538 264.4763 265.2788 265.7374 265.1192 264.3605 263.8993 263.1357 262.0551 260.1404 258.6005 257.5129 258.3185 259.5839 261.4433 263.248 264.2723 265.5121 266.3834 267.2272 268.1718 269.1917 268.9943 268.8945 268.8559 268.656 268.6183 268.6383 268.662 268.3918 269.4895 270.064 270.8704 272.1832 274.38 275.1235 275.8418 276.5391 276.8421 277.2268 276.6902 276.2733 275.4003 275.1297 273.801 273.4534 273.3736 273.3048 273.033 271.1158 272.0398 272.9781 273.333 273.7345 274.8006 275.0788 276.4501 277.4095 279.0729 279.1991 278.5 278.1801 277.6684 276.4944 275.305 274.2858 272.8384 269.2541 267.8918 266.0598 264.1407 262.1179 254.5901 260.7878 261.2337 261.6759 261.5242 261.4207 260.8777 259.8162 258.614 257.5795 256.6296 255.8216 255.1223 253.6885 254.0538 254.2304 255.5319 256.2856 256.3344 256.2292 256.5712 256.8443 257.5743 256.6926 255.1825 254.104 252.6952 250.3274 248.029 246.7456 246.164 246.4906 246.3759 245.0934 240.1872 239.2961 239.2815 239.2959 239.3265 239.5609 239.6073 239.6006 237.2358 239.6735 240.4038 241.5673 241.1618 239.638 240.0855 240.5602 240.6095 240.6959 240.8673 240.8342 239.8983 239.4977 239.5146 239.6476 239.9922 240.0144 240.5222 240.6918 241.1002 241.047 243.0433 244.9018 246.1456 248.7442 250.8497 253.1696 255.3471 257.1989 258.9461 260.5871 262.5293 264.5206 266.8269 267.0981 266.4652 265.0219 263.0456 263.3433 264.5332 265.6215 264.4294 252.6466 248.9889 248.9586 249.1322 249.3323 249.8139 251.4155 252.1686 253.7137 254.7247 256.5764 257.3212 260.093 260.5439 261.8852 258.4422 262.6342 264.5712 265.7635 266.9413 266.3753 265.3997 264.5358 263.5638 262.8104 262.228 261.926 261.8301 265.3452 266.5475 267.3047 267.5862 268.281 270.5426 272.6818 274.6023 276.1876 279.0785 277.4283 275.7579 273.091 270.5419 270.0217 270.9424 273.1939 273.9068 -9999 +-9999 -9999 351.1865 348.1401 351.0438 353.1854 353.0361 353.1888 352.5209 352.5427 349.7079 345.6497 348.0624 349.0391 349.2643 348.7175 346.7999 341.8448 340.0051 343.6148 346.2566 349.4221 350.2074 351.5529 352.7881 353.3136 354.8969 355.5606 356.8175 356.3276 354.7771 351.8346 349.4009 350.5973 352.3948 354.3391 357.0684 360.6328 363.7015 368.3087 369.222 367.6886 364.9828 362.6272 360.6501 359.023 357.1386 355.4799 351.9782 349.8461 347.5197 344.2552 340.5046 338.2076 337.3346 340.5037 343.1804 341.5759 337.1293 334.4445 339.1662 340.2265 341.9281 342.9883 343.1318 342.4836 345.3851 345.7196 344.331 343.2053 342.4919 340.8631 337.9478 337.9094 338.0034 330.4969 326.2158 325.9802 326.7557 328.8216 329.8744 330.7677 328.9881 328.5218 326.9646 325.257 325.6955 327.7458 329.0228 332.0452 335.7871 338.5463 340.3831 342.7388 348.0631 348.5974 349.5218 351.2316 353.8901 356.2871 356.8663 356.6585 357.5534 361.4655 362.0358 361.6071 360.3314 358.915 358.2759 356.807 355.6151 354.2418 351.6515 350.573 348.7036 347.3286 348.3497 347.3198 343.8066 339.0525 334.9258 325.8471 324.5095 325.0722 323.4427 325.5885 327.9575 330.4792 333.1581 335.9377 339.9668 339.7137 338.3882 337.303 336.119 332.0038 326.4629 324.5067 322.8569 321.3852 319.0634 316.5049 312.6288 312.4614 311.9047 315.8593 315.4203 316.3684 317.5745 317.5853 316.6511 314.7342 313.6042 312.0505 309.0523 310.3154 314.1168 316.5585 315.9757 315.0824 314.1081 313.1108 312.2356 312.1482 313.1916 313.0401 313.5293 312.7891 311.5451 310.3082 308.695 307.0993 304.7343 302.6212 301.1749 299.2235 299.1584 299.2096 299.5157 299.8122 300.4018 302.7132 303.8678 301.7233 297.1647 298.5823 297.9957 295.0898 292.7423 295.2641 294.3538 292.584 292.3097 287.1102 290.092 287.9229 286.0051 284.2899 283.2583 285.1106 287.032 286.5211 284.6823 282.7501 281.0238 280.666 281.4216 280.7262 278.08 274.4026 271.3268 271.9641 274.0344 275.907 274.6912 270.7581 266.1368 264.8791 264.1221 263.5279 263.0779 263.8884 267.9449 271.8105 278.1701 281.7267 281.9362 284.3888 290.6069 294.1794 291.5502 290.5796 283.6658 277.3731 274.6153 274.606 276.0364 279.2211 283.8692 289.6523 289.693 285.6597 279.2481 274.1297 269.6916 265.7376 264.5494 258.0689 265.107 269.4524 273.1331 276.0411 277.8763 279.9325 280.8486 280.9357 278.6493 270.8103 266.5437 262.7104 259.0365 253.9217 250.3711 249.5518 248.9973 248.3331 248.689 248.875 247.6569 248.3068 248.4086 248.2121 248.0458 247.924 247.8906 247.6572 247.5124 247.4374 247.3817 247.3219 247.1165 247.3694 250.0999 251.2784 248.7894 246.9615 247.0593 247.1848 247.2816 247.3802 247.81 248.6972 249.7971 254.4765 256.209 257.656 258.5139 259.4322 260.9112 263.4538 264.4763 265.2788 265.7374 265.1192 264.3605 263.8993 263.1357 262.0551 260.1404 258.6005 257.5129 258.3185 259.5839 261.4433 263.248 264.2723 265.5121 266.3834 267.2272 268.1718 269.1917 268.9943 268.8945 268.8559 268.656 268.6183 268.6383 268.662 268.3918 269.4895 270.064 270.8704 272.1832 273.1159 274.3054 275.4808 276.2405 276.6981 276.7618 276.0722 274.9713 273.5247 272.7209 272.268 272.2007 272.1755 272.1192 271.294 270.1524 270.6316 271.6377 272.3877 273.5633 273.9214 274.6381 275.5345 277.0039 278.6085 277.8073 277.2484 278.0996 278.437 277.9023 276.7696 275.3973 273.5888 270.1231 269.0309 267.0699 265.3657 264.0376 262.6479 263.1584 263.2483 262.9664 262.6858 261.9171 260.9247 259.7996 258.6739 257.7357 256.7996 255.7934 255.1666 255.0503 255.3371 255.3129 255.9167 256.7265 257.1265 256.6643 255.3799 254.388 255.0493 254.4616 253.5093 252.3132 251.1366 248.5696 247.0383 246.3851 246.0464 245.6044 245.6177 241.9821 239.6612 239.0554 239.265 239.0888 239.0521 239.1082 239.5175 236.7567 239.3163 242.5755 243.3423 244.8777 242.0674 239.7217 239.7491 239.9614 240.1691 240.467 240.6848 240.6452 240.4747 239.7184 239.5394 239.6372 239.8013 240.0099 240.6964 240.9487 240.9725 241.6092 242.0473 243.8396 246.0265 250.7229 252.8912 253.0292 253.0589 254.295 256.2162 258.7612 260.9854 262.9237 264.5382 266.0551 266.5539 266.5498 266.8323 266.8311 268.3376 269.4491 268.7381 261.6014 253.1514 253.7352 254.8032 252.7029 248.8941 250.2205 251.4537 250.8165 251.1839 254.5703 254.9296 256.6038 257.2781 258.1268 257.7872 260.4221 261.7779 263.2995 264.6427 263.1095 261.9172 261.2779 260.6138 260.5389 260.611 262.9298 264.139 269.4883 271.9704 273.0045 272.1176 270.8029 271.5746 273.1791 274.632 276.0117 279.0566 276.9866 275.0266 272.8572 269.8257 269.2182 268.1761 270.7356 272.4451 -9999 +-9999 -9999 347.899 345.3948 347.2336 348.9509 349.2583 350.9763 351.3449 349.6269 348.1213 345.6912 346.0248 346.1399 346.8152 346.2495 343.9375 338.9646 338.108 343.0327 345.0629 348.6759 348.5229 350.2 350.5255 351.4045 352.4115 353.2729 353.3117 352.3278 351.4503 347.8688 349.3182 352.3883 354.2626 356.9995 359.9371 362.6371 365.3975 369.2083 368.786 368.6421 366.8367 364.8564 362.3915 360.2284 358.1689 356.5384 352.5347 350.2269 347.2525 344.906 341.1299 338.8194 339.0201 342.1217 344.5509 343.6206 339.6431 334.5615 339.0047 341.3148 343.4476 344.8489 345.1009 344.5082 345.8084 346.5453 345.8708 345.2571 344.4202 342.7065 339.2958 338.0123 338.0453 333.3662 328.2961 328.0188 331.0574 332.5408 332.639 333.035 333.9043 331.6816 330.22 330.0762 325.9438 326.1729 327.9318 330.7268 334.4084 337.4714 339.496 344.6391 346.2493 346.0268 346.4722 348.5544 350.6208 352.7158 353.8471 354.2404 357.3665 361.3011 361.8596 362.221 361.2644 359.8642 358.0161 356.1664 355.3308 352.3419 348.7905 347.7096 345.8592 345.01 346.7474 345.4254 342.1445 338.213 331.072 325.3907 329.3399 330.332 324.1281 327.7992 329.7931 331.506 333.5764 336.5734 341.0519 341.3091 340.1367 338.9775 336.0063 330.4384 324.7819 323.3389 321.8884 317.715 316.6928 316.7539 317.5277 317.6061 315.8435 315.9318 318.0686 318.5564 319.1803 318.8123 317.665 315.3149 312.4846 310.8431 310.3147 312.5397 315.5403 317.6771 317.4893 316.5165 315.6366 314.8542 314.1707 313.3411 312.7911 312.74 312.8177 312.2804 311.263 310.1018 309.5361 307.7338 306.5744 305.0429 304.222 299.8269 299.029 296.9748 296.42 297.1393 299.0662 300.8214 301.8938 299.5778 295.1146 297.5674 297.2163 294.8066 290.4945 293.2195 293.7704 291.597 289.8818 286.0894 286.6097 285.559 282.726 282.2534 280.9615 281.1327 282.2857 282.5239 280.0739 278.6604 278.2635 278.2599 278.5678 278.0443 276.5475 272.9448 270.4027 269.3058 270.0397 271.4923 270.6188 266.7114 264.9928 264.196 262.9813 264.197 264.4231 266.1156 269.1938 273.6775 277.4967 282.5095 285.554 287.8059 291.1974 294.0226 292.9741 286.8864 282.3314 279.3147 277.499 276.4274 278.1891 279.9061 282.5667 289.152 287.7125 281.8651 275.4621 272.6671 269.2318 267.1695 267.2695 266.1118 263.5793 268.185 271.0118 272.4069 274.8475 276.9629 279.0938 279.0964 275.3001 266.1338 263.1692 261.4867 258.1947 254.032 251.5871 250.4103 250.2556 249.5757 248.689 248.875 247.6569 248.3068 248.4086 248.2121 248.0458 247.924 247.8906 247.6572 247.5124 247.4374 247.3817 247.3219 247.1165 247.3694 250.0999 251.2784 248.7894 246.9615 247.0593 247.1848 247.2816 247.3802 247.81 248.6972 249.7971 254.4765 256.209 257.656 258.5139 259.4322 260.9112 262.2557 263.4689 263.7037 263.5668 263.9503 263.5287 262.7744 261.6483 260.2646 258.8965 257.0872 254.9528 258.2261 259.9097 261.6394 263.463 263.9969 264.9745 265.9294 266.9841 267.6835 267.865 267.3965 266.8152 266.6429 266.4263 266.6095 266.4891 266.5302 266.3586 267.8123 268.8125 270.3157 271.7924 273.5351 274.3197 274.5932 275.5488 276.003 276.2811 275.4897 273.4012 271.1711 269.4155 269.4801 270.1146 270.6675 270.4956 268.6314 268.7138 269.5636 270.1066 271.6701 272.9839 273.6693 274.3452 274.3608 275.3138 277.4398 278.3922 279.1177 279.0031 278.4537 277.8225 276.8836 275.856 274.2388 271.4464 270.3512 269.1506 268.6277 267.2513 266.6704 265.8565 265.027 264.0442 262.1198 261.2011 260.2291 259.2557 258.2966 257.6476 256.7847 255.9828 255.1638 254.5826 255.0589 255.2607 256.243 255.4454 254.9743 254.5377 253.2811 252.9352 252.8147 252.5725 251.7831 250.9556 249.6452 248.0612 247.1541 246.8524 246.5538 246.474 246.2884 244.7158 243.6327 244.067 241.2132 239.4659 238.9314 238.9328 236.6322 239.4887 241.9521 243.6625 244.8314 245.9451 243.2957 240.2277 239.8709 239.9592 239.9257 240.017 240.2983 240.3837 240.1157 239.9457 240.174 239.9148 242.3561 244.7783 245.1036 244.8581 243.8341 242.1569 241.9304 242.0169 244.0208 251.1112 253.8401 255.2644 255.5012 254.4093 254.9559 257.3072 259.9128 261.4802 263.3347 264.757 265.7964 266.2552 267.3202 268.7115 270.0582 271.5577 271.5806 264.2444 255.5602 257.6969 263.2091 261.8815 259.8947 256.2432 255.0106 254.4708 252.9458 251.9067 253.3182 254.1968 254.9259 256.2912 257.3766 258.097 259.3888 261.115 261.7477 260.356 259.3208 259.1492 259.1279 260.2998 263.3476 266.2299 269.0004 273.6278 275.3695 276.5398 275.6209 274.3356 274.2176 274.8106 275.8884 277.0168 278.4944 276.8915 275.3802 272.3632 269.1531 268.3163 267.5578 266.6356 270.3926 -9999 +-9999 -9999 347.6125 342.3239 343.1323 345.8424 348.2093 349.6037 348.8334 347.0889 346.36 346.2022 342.9904 343.8383 341.957 340.3816 339.623 337.4706 338.6673 342.0153 344.7162 346.6624 347.2802 348.1399 348.9085 349.5289 349.0685 349.1219 349.0149 348.843 346.6988 347.2737 349.0048 350.6025 353.659 357.5422 360.5414 362.5959 365.0091 368.5096 369.3169 368.5377 368.3017 366.1815 363.4965 361.0164 358.8483 357.3895 352.8984 350.6565 348.0766 344.7272 342.0039 340.23 342.0347 344.4388 345.6745 345.0299 342.0518 336.1436 338.7575 342.4248 345.0145 346.39 347.0113 346.9866 345.7211 346.6938 347.3843 346.9783 345.8754 343.4961 341.4136 339.0647 338.7715 332.0743 327.7848 333.1247 335.4914 336.5224 336.3013 335.9853 335.4025 334.0145 335.8409 336.2956 334.083 328.8733 327.2853 329.5298 331.0289 333.0276 335.1317 341.8598 342.8969 342.1862 343.0992 344.1391 346.1156 347.9749 349.9423 353.6859 357.4375 359.1646 358.945 360.4585 361.2214 360.8518 358.7518 356.0647 354.5431 351.3533 345.7587 343.2517 341.458 342.2953 342.2572 340.2587 336.6393 331.3688 328.8112 335.8396 336.0374 333.156 326.9896 329.055 332.7676 334.2319 334.8645 336.2821 340.8726 341.6807 339.9633 337.4225 334.1789 330.2672 326.6109 325.9124 325.0963 324.3973 323.9228 324.0772 323.5841 321.6272 318.1607 316.9517 320.3719 320.7253 320.9695 319.2334 317.1507 316.3132 314.3976 314.2058 314.4031 314.2713 316.3468 318.1622 317.8452 316.6109 316.1491 315.3214 314.3414 313.0138 312.1143 311.6362 311.3609 311.0449 310.6376 309.9615 309.2455 309.061 307.5791 306.9707 305.9403 303.4738 302.2272 299.9375 297.1106 295.1434 294.3695 297.4933 299.7241 298.8972 293.1067 295.3392 294.9882 293.0076 289.9529 289.2237 290.9882 289.6413 286.8211 285.0945 282.638 282.1 279.1297 278.1014 277.5383 277.3171 277.7434 278.1949 276.3803 275.2377 274.9392 275.1691 275.3222 274.4028 272.8243 270.9336 268.9583 267.8531 267.506 269.0548 265.571 264.8336 265.6846 265.1395 265.3565 266.222 264.8501 267.5806 270.6928 274.1603 277.2149 280.9575 284.8553 287.5571 289.7286 292.685 293.3684 287.4805 283.9014 282.1924 277.499 276.4274 278.1891 279.9061 282.5667 289.152 287.7125 281.8651 275.4621 272.6671 269.2318 267.1695 267.2695 266.1118 263.5793 268.185 271.0118 272.4069 274.8475 276.9629 279.0938 279.0964 275.3001 266.1338 263.1692 261.4867 258.1947 254.032 251.5871 250.4103 250.2556 249.5757 248.7884 248.4295 248.6817 248.332 248.6704 247.3968 247.8715 248.2254 248.0841 247.7641 247.5508 247.4663 247.411 247.3291 247.2546 247.0907 249.469 250.6814 249.5819 247.07 246.9496 247.0444 246.9955 246.4275 247.3535 247.8956 249.0472 253.347 254.7136 256.0079 257.3321 258.5829 260.2593 261.9917 262.7057 262.2764 261.177 261.7723 262.2514 261.7632 260.4657 258.6317 257.1828 255.1086 255.7762 259.4148 261.0018 262.5236 263.1064 263.3893 264.0274 264.6107 265.768 266.113 265.1428 264.3492 264.2783 264.4485 264.9198 265.028 264.8139 264.2054 264.8895 265.6274 267.9508 269.9958 271.4585 272.4202 273.0859 273.9352 275.3332 275.4391 275.6314 274.2912 272.026 267.9594 266.2809 266.5716 267.301 268.482 268.8062 266.9832 266.7567 268.1468 269.3888 270.8145 272.2808 273.305 274.1866 273.8804 274.0129 276.2686 277.2302 277.5338 277.4111 277.3567 276.7342 276.097 275.1793 274.3663 272.0602 271.079 269.8635 268.1535 266.8737 266.0289 265.5073 264.3125 263.3307 261.9437 260.9146 259.8013 258.8904 257.8372 257.1216 256.3519 255.5611 254.2128 253.2826 253.622 253.5762 253.6369 253.5287 253.1048 252.8397 252.5857 252.195 251.1973 250.8103 250.2899 249.7643 249.0986 248.5287 247.9659 247.5409 247.2733 246.5989 246.5487 245.8785 244.9462 244.3045 242.2054 239.1631 238.9775 238.3193 240.0941 240.6827 241.1315 242.6307 244.0211 244.3477 243.6192 241.0097 240.2004 240.0776 240.2392 240.2339 240.0842 240.155 239.9162 239.8788 240.5485 242.3302 245.2875 247.0452 247.5011 247.8418 247.5113 245.6886 241.8023 242.2803 242.2349 249.5647 252.3567 254.327 255.1035 254.8716 255.1491 256.7064 258.5103 259.0226 262.3589 263.4638 264.0339 264.8235 266.0321 267.6486 269.8885 271.92 273.0526 266.171 258.6852 261.5095 268.1163 267.2274 264.0178 260.3411 259.4182 258.4265 255.7292 255.2122 252.4104 252.7008 253.9609 254.3778 255.5057 256.338 258.0071 259.373 258.0572 257.6208 257.2963 259.9109 262.2315 264.6566 266.8236 269.1071 271.4521 275.7269 277.6031 278.5768 278.1933 277.6069 277.0815 277.1924 278.0641 278.5353 278.3638 277.3951 276.2521 272.4072 267.419 266.4749 266.1251 265.7789 269.5169 -9999 +-9999 -9999 348.3755 341.2217 340.2121 342.7307 344.7332 345.797 344.8177 344.1006 344.0057 343.8939 338.442 339.4603 336.9682 335.5959 335.4922 333.8997 338.9663 341.2839 343.058 345.0782 344.0541 343.13 342.5482 342.9419 343.4513 343.3797 343.424 345.8404 351.2487 354.3749 355.4793 355.4585 353.6305 355.5631 358.4563 361.3211 363.6233 367.9292 369.1372 368.3072 367.4082 366.0816 364.0471 361.3497 359.3565 357.9676 352.9209 350.5402 348.093 346.2247 343.0428 343.6465 346.1216 346.8733 347.445 346.1748 342.4217 337.2942 340.3368 345.2248 347.4026 347.9016 348.3824 348.5247 347.7702 347.5796 348.1063 348.1825 346.9099 345.0192 343.443 340.9856 338.5639 330.8992 330.8288 333.4455 337.9287 339.2687 339.3745 338.7322 337.5551 335.4276 338.1537 338.6849 338.3373 336.1679 331.8027 331.5518 331.7074 330.1618 330.6053 336.3798 336.7175 337.6766 338.8593 342.2561 345.0813 348.139 351.0308 354.242 356.7276 356.3218 359.1359 359.9538 360.7426 360.7291 359.2262 356.7594 354.1461 351.185 345.1346 341.3204 339.0977 337.8209 336.7959 333.1555 330.4393 333.9299 338.2704 342.6441 340.4508 334.5305 328.1248 332.6916 335.9281 337.0499 336.8122 337.1904 341.5115 341.7212 339.886 337.0287 334.5434 331.3225 329.0429 328.8561 328.7448 327.9222 327.6492 328.19 326.7107 324.0042 318.6563 321.1638 322.3512 323.2311 321.683 319.4617 318.8932 317.4236 315.7784 316.4944 317.2189 317.3317 317.6686 318.067 317.6111 316.1484 315.2864 314.6647 313.7089 312.1753 310.8247 310.1007 309.3992 309.3335 309.0544 308.9348 308.5108 307.9753 308.3868 308.0594 307.3087 304.6754 303.6786 301.6114 299.3459 296.9046 294.0439 292.8924 295.1852 296.2935 291.2271 293.4397 291.1826 290.0177 288.4221 285.49 286.8283 285.5662 283.8671 283.4531 279.3177 278.2867 276.5478 276.0013 275.9129 275.8032 275.0994 274.7339 273.4473 275.2377 274.9392 275.1691 275.3222 274.4028 272.8243 270.9336 268.9583 267.8531 267.506 269.0548 265.571 264.8336 265.6846 265.1395 265.3565 266.222 264.8501 267.5806 270.6928 274.1603 277.2149 280.9575 284.8553 287.5571 289.7286 292.685 293.3684 287.4805 283.9014 282.1924 281.6043 278.9923 280.9277 284.0812 285.5975 289.5565 287.6527 281.6543 275.5832 272.5 269.7767 268.2685 263.9015 263.0466 265.3833 268.0223 269.8641 272.2031 275.1769 277.1308 278.6477 278.5283 273.4903 263.1469 260.6727 258.5082 255.8323 255.2238 253.365 251.9852 250.9727 250.3528 249.3866 249.0849 248.4282 248.2268 248.1578 248.0274 248.4159 247.9561 248.1921 247.1494 248.1896 247.7133 247.5957 247.5848 247.4008 249.1502 247.392 247.4106 249.5581 247.5535 246.9705 246.8432 246.7926 247.2115 247.2893 247.1625 247.7754 253.3286 255.2702 257.435 259.4827 259.9162 260.7076 261.2005 261.3013 259.9073 258.5934 260.0059 260.6114 260.4487 259.3224 257.2091 255.2754 254.154 255.3042 259.657 261.1591 261.884 262.1861 262.5143 262.8737 263.1819 263.9654 264.2992 260.0038 260.9906 261.0693 261.3737 262.1174 263.2979 262.7018 257.7934 257.7906 266.4202 267.8226 268.718 270.4468 271.0099 272.1136 273.1563 275.1971 275.8637 275.3551 273.6743 271.2685 267.8071 265.4537 264.8811 264.6626 265.3548 266.3371 265.2279 265.5775 266.8647 268.7272 270.3804 271.7005 272.7639 273.3692 273.7527 273.9411 274.0449 274.7397 275.2052 275.434 275.6798 275.5707 275.4326 274.9576 274.3879 272.2113 271.1339 269.7208 268.5965 267.4308 266.5071 265.3084 263.8518 262.3504 260.8192 260.0108 258.9088 257.9171 256.9481 256.1456 254.7268 252.8631 251.6668 250.5261 250.3394 249.8293 250.6647 251.5343 252.0108 252.1362 252.1927 252.184 251.097 250.2234 249.4852 248.9861 248.2958 247.6435 247.4089 247.6045 247.9421 247.2303 246.5255 245.5711 245.4547 245.7504 245.3042 237.8461 236.5839 238.1185 240.6103 240.879 241.2385 242.0005 243.2599 243.813 243.582 241.846 239.8327 239.9189 240.1298 240.1282 240.1222 240.0937 239.9731 240.8058 241.8575 244.1446 248.0354 249.0979 249.8514 250.0146 249.8566 249.782 248.0458 245.3416 242.3474 246.811 249.7773 251.9281 252.488 252.7721 253.6544 255.2357 256.5091 257.3399 260.4023 262.0938 262.1785 262.8898 264.3907 266.5656 269.0958 271.2655 273.1405 269.0479 263.5815 265.941 270.8986 271.4767 268.8587 263.6153 262.6052 261.0984 258.5417 258.4787 260.1781 257.4662 254.3215 253.1277 253.9669 254.4164 255.6325 256.3548 256.2376 256.6594 258.6508 261.6485 264.7954 266.9767 268.1913 270.0579 272.2022 276.1321 277.731 279.0635 279.1882 279.3057 279.6037 280.0676 280.7913 280.5355 278.0801 277.1071 275.825 272.5948 268.492 265.392 265.1174 264.4892 266.3064 -9999 +-9999 -9999 351.2795 346.9774 342.0692 338.7839 340.5793 341.2369 341.292 341.2617 341.3642 342.1572 339.5332 335.9205 335.0807 334.1208 334.4012 335.1777 339.0821 340.8997 342.3508 340.4146 337.7323 341.3809 342.205 343.0132 344.5944 346.2651 349.4637 350.8297 353.7099 356.9317 359.0877 360.13 360.0269 359.1942 360.8701 362.9265 363.9908 368.2723 369.508 368.7884 366.9962 365.1719 363.9911 362.4409 359.8227 357.4413 353.0405 350.435 347.2823 346.6864 346.4369 346.8535 348.6451 349.0933 349.1754 345.6198 339.5186 342.2382 345.356 348.0685 349.8767 350.1716 350.2871 350.1793 349.4325 348.5344 348.3843 348.5345 347.8256 346.3792 344.5429 341.8216 338.1395 332.7416 333.1338 335.7987 339.3975 341.3452 342.0485 341.7309 339.6279 338.4146 339.3253 341.2286 340.6104 338.8299 335.5271 336.9948 337.2431 335.1047 333.5956 332.3874 332.774 334.1104 336.1279 339.8709 343.8389 346.95 349.6259 351.3562 353.777 356.654 359.1783 360.0719 359.4145 359.5908 359.3307 357.5253 355.2303 352.6838 347.3053 343.4915 340.0561 335.2605 333.2852 332.7215 336.8984 341.2252 344.3421 345.2057 341.0424 334.1335 329.4209 334.5171 339.3264 340.8871 341.2002 339.6208 342.3558 342.8786 340.9578 338.9936 335.864 334.2846 332.2395 331.5554 331.3162 331.0814 331.2634 330.7386 327.8383 323.4907 320.3674 323.0167 325.0035 325.7109 322.7843 320.4153 319.7836 318.8122 317.8546 318.0813 319.4104 319.3383 318.9849 317.5378 316.3099 314.196 313.1906 312.9874 312.509 310.9802 309.813 309.0012 306.4825 306.9767 307.0092 306.6054 306.4884 306.0408 307.4026 308.0594 307.3087 304.6754 303.6786 301.6114 299.3459 296.9046 294.0439 292.8924 295.1852 296.2935 291.2271 293.4397 291.1826 290.0177 288.4221 285.49 286.8283 285.5662 283.8671 283.4531 279.3177 278.2867 276.5478 276.0013 275.9129 275.8032 275.0994 274.7339 273.4473 272.6808 272.1035 271.7451 271.4646 271.2625 269.9426 269.0398 268.4895 267.3085 267.647 267.3033 267.6621 268.3818 268.0215 267.1623 267.2509 268.1341 267.3926 267.7688 270.6452 273.7948 276.3864 279.8177 282.7928 284.924 287.2671 293.4594 295.8249 293.967 290.88 286.8357 287.2171 287.0539 287.6387 288.3882 288.3625 290.7664 289.4648 284.996 279.6657 274.2575 271.3029 266.5852 263.3523 263.6502 267.32 270.3382 272.5509 275.138 276.8261 278.7807 279.8417 279.7788 277.0556 264.3333 260.6045 258.991 258.4465 257.3083 255.3382 254.742 253.275 251.9786 250.703 249.3943 249.0014 248.8555 248.6258 248.1068 247.8362 247.821 247.7934 247.3943 247.7768 247.8438 246.4383 246.6333 247.4899 248.5986 247.524 247.478 247.1613 247.0444 246.9759 246.9207 246.8169 246.7286 245.9015 247.1327 246.7773 252.6876 254.7821 257.1194 258.9529 258.612 259.0729 259.3244 258.9388 258.2376 256.5963 258.0054 259.2829 259.342 258.013 256.2492 254.1704 253.9031 254.8829 259.4281 260.6651 260.7819 260.9455 261.1826 261.485 262.0335 263.1871 263.655 257.3928 257.3568 258.1929 258.8232 259.7186 260.4089 258.7934 259.0755 262.069 265.537 268.1035 269.8783 270.9782 272.0129 272.816 273.5953 275.3894 276.3798 274.8188 273.1879 270.8718 266.7122 265.0549 264.1175 263.6396 263.6584 263.7494 264.2309 264.5809 266.6014 268.1574 269.9462 270.9559 272.353 272.4153 272.7697 272.9756 272.5329 272.8874 273.2624 273.7523 274.1151 274.6113 275.17 275.0227 274.5785 272.5211 271.2742 270.1721 268.6572 267.2048 265.9164 264.5048 262.8675 261.5672 259.3978 258.4966 257.4352 256.8615 255.8645 254.92 253.0602 251.3051 250.4235 249.616 249.5684 249.2257 249.5107 250.6629 251.3459 251.9117 252.4195 252.6793 250.9027 249.7368 248.9917 248.4048 247.4741 246.9342 246.9137 247.3208 247.6672 246.9983 246.0152 244.9691 244.6142 243.8757 236.5506 236.9176 240.27 240.1169 245.5498 245.7944 244.3786 242.6107 242.8208 243.6672 243.677 241.566 240.3836 240.1937 240.0007 240.0355 239.9698 240.0798 240.5581 242.5348 244.8346 246.4147 250.2434 251.3073 251.9253 251.9859 251.7707 252.7206 252.0561 251.8668 249.3182 244.9851 244.5486 248.0388 249.0248 250.3764 251.8363 253.9506 254.0285 256.0197 259.3366 259.9406 260.5805 261.7831 263.377 265.7997 268.3688 271.2881 273.3305 272.7891 269.5502 268.5677 272.9592 274.7968 272.4202 269.3085 265.3473 265.4348 261.4193 259.7998 262.8095 262.2208 261.6127 258.7425 255.4586 253.914 254.3371 255.3604 255.8507 257.0643 259.9223 262.8789 265.3336 266.7079 268.4213 269.9509 271.5884 275.1949 277.1255 277.3632 277.5577 278.65 279.4915 280.5073 281.1395 280.6801 277.1153 275.6054 274.367 272.1761 269.215 266.1747 264.5513 263.6458 262.2079 -9999 +-9999 -9999 352.9604 348.1014 345.3307 342.2536 337.7802 337.3302 337.2502 336.2608 337.9039 339.6482 339.1539 336.9235 333.6186 331.8078 332.2325 335.0922 336.8728 337.2083 335.9578 338.564 341.3823 344.2844 346.2364 348.0569 349.8304 351.292 352.7157 353.702 354.3369 357.6454 359.9731 362.15 363.0355 362.3824 363.3652 365.3045 365.8641 368.8091 369.7058 369.4443 367.4702 366.2595 364.2005 362.5396 360.9633 359.5642 355.5533 351.9412 348.0922 346.4164 348.0441 349.8897 350.7242 350.7448 349.691 342.3763 343.3932 344.9066 347.3553 349.4724 351.2949 352.2021 352.208 351.8894 350.4755 349.8572 349.698 349.276 348.8721 347.5943 345.4191 342.4265 339.3117 334.7226 335.4998 338.0674 340.1762 342.3304 343.5504 343.7354 343.5798 341.2576 342.5636 343.3695 342.9232 340.7589 339.326 341.1736 341.0707 340.2438 338.1567 335.8171 334.437 334.0621 336.6533 338.9846 340.8082 343.9884 346.8353 347.8281 352.153 354.1807 356.7328 357.3974 357.3199 358.6939 358.8715 356.7161 355.0088 350.6783 347.9065 345.6581 343.3443 338.987 334.6592 336.8637 340.1424 344.4725 347.6351 345.8527 341.8462 333.2745 330.8436 337.7964 343.1823 344.7147 344.762 343.2317 344.9787 345.0347 343.5532 340.6867 338.5755 337.2012 335.3579 334.3356 334.8922 333.7368 333.6909 331.6609 328.0169 323.0343 320.3674 323.0167 325.0035 325.7109 322.7843 320.4153 319.7836 318.8122 317.8546 318.0813 319.4104 319.3383 318.9849 317.5378 316.3099 314.196 313.1906 312.9874 312.509 310.9802 309.813 309.0012 306.4825 306.9767 307.0092 306.6054 306.4884 306.0408 307.4026 308.0653 307.4416 305.2877 304.0409 302.0467 299.8028 296.9708 294.4641 291.2734 291.165 292.6666 289.5604 288.1571 288.0847 289.2585 282.7884 280.6945 279.3126 278.7271 278.1356 276.4975 275.7048 276.2716 275.182 274.889 274.9085 275.462 274.6169 273.7558 272.655 271.2604 270.376 268.8833 268.1415 267.542 268.5797 268.4062 268.2269 269.2386 268.7785 268.5753 268.9842 269.2836 270.4869 271.0889 271.0374 270.8867 270.1341 269.8426 270.6698 274.0947 276.6726 279.3339 281.9483 285.4752 288.2216 292.7794 295.4358 297.4237 296.7838 295.4569 292.2344 295.6309 293.7045 290.8803 289.7878 291.5641 290.1506 286.2552 280.1617 275.7865 271.6376 267.3418 264.0508 266.3939 269.9245 272.7652 276.4311 279.1052 280.3322 280.7414 281.6678 280.3091 275.7436 263.0298 261.7489 260.8263 260.9948 259.9783 258.4058 260.0907 258.9095 255.764 251.0263 249.333 250.3264 250.7812 250.3633 248.1325 247.7095 247.7457 247.4933 247.4719 247.6665 247.4752 247.4064 248.1656 249.6012 247.7413 247.5875 247.7133 246.0697 246.8074 247.372 247.126 246.9255 246.812 246.8086 246.7738 247.183 251.586 253.1582 255.2825 256.2815 256.2858 256.8147 257.1293 257.2789 256.5717 254.3816 255.6947 257.9158 257.8917 256.1667 254.6407 254.1066 253.5872 254.8957 259.2336 259.7952 259.8667 259.963 260.2765 260.7114 261.4647 262.1433 262.4314 255.6732 255.7272 255.4774 256.5674 256.8256 255.4527 257.311 258.6285 261.533 265.3563 267.9738 270.2372 272.0172 273.5836 274.651 275.1181 275.6773 276.5574 274.8414 273.2949 271.2081 267.7007 265.1345 263.3744 263.2662 262.6108 262.4947 263.1903 263.8487 266.2489 267.6346 268.9562 269.9749 270.5714 271.8366 272.0549 272.7141 271.8748 271.528 272.2364 272.6753 273.4893 273.7712 273.9109 274.3078 274.2321 272.0321 270.7407 269.7526 268.3036 266.5958 265.2602 263.8399 262.0992 260.8038 259.0715 258.4153 257.4213 256.004 254.3776 252.6454 251.7417 248.6385 248.2923 247.3284 247.5143 248.5629 248.6308 249.5125 250.5115 251.3426 251.7455 252.0273 250.248 249.0854 248.2993 248.0523 247.4958 246.8806 246.8661 246.9041 247.2306 246.6414 245.6435 245.0404 244.8026 241.648 236.5546 239.6153 240.1103 240.5353 239.3873 239.3009 239.2826 240.9032 245.0397 245.5533 244.4743 242.9748 242.123 240.0507 240.3159 240.0496 240.2666 240.1368 241.6326 244.7919 246.884 248.5615 251.773 252.7397 253.5752 253.8502 253.9857 255.3608 255.4829 256.5185 256.9153 255.2001 249.8215 246.8867 247.3861 249.4187 249.6133 250.8929 252.0651 254.1499 257.277 258.5238 259.7189 261.4647 263.656 265.6678 268.1459 271.2667 273.4429 275.2432 274.1361 273.6337 274.6079 275.4138 274.4525 272.3359 270.7019 268.9026 263.1192 261.5483 264.793 265.9529 266.3269 265.5316 261.9433 258.5502 257.0739 255.8627 256.0666 257.4897 259.7766 262.6142 264.57 265.873 267.4209 268.9368 270.8912 273.9608 274.9707 274.7514 275.3787 276.6106 277.9792 278.7176 279.2985 279.1895 276.8861 275.369 274.1884 272.4774 270.5847 267.15 264.3796 263.2704 262.7639 -9999 +-9999 -9999 352.4843 348.8197 347.6027 344.4763 341.7654 337.7899 334.812 333.2135 334.6029 336.5504 334.961 332.8469 331.2944 330.109 332.5804 332.387 334.1026 335.3134 336.3604 341.5124 345.7158 347.6202 348.8966 350.7395 353.1454 353.987 354.5391 355.5906 357.1175 357.7964 359.6322 361.6398 363.3372 364.8333 365.7344 367.6523 368.0518 368.6336 369.4661 369.3611 368.2948 366.7348 365.1085 363.9535 362.8025 361.2792 356.6859 353.9431 352.7196 350.7015 351.7165 352.1632 352.265 352.0739 350.7518 343.5287 345.9378 347.5366 348.552 350.173 351.9092 353.3938 353.941 353.5565 351.505 351.0211 350.5394 350.1026 349.7362 348.0877 346.0406 343.4256 340.5055 337.0318 336.6064 338.9681 341.3534 343.0411 344.9942 345.9668 346.2736 344.7212 345.8012 346.2331 345.5564 344.8066 343.3654 344.3503 344.0763 343.5833 341.9843 339.3911 336.3537 335.4935 335.4478 338.8282 341.3272 342.6769 344.2086 345.3284 348.0186 351.0113 353.4178 353.9591 356.0255 357.9395 358.3809 356.7807 353.9132 349.9071 348.0486 345.2631 341.7166 338.987 334.6592 336.8637 340.1424 344.4725 347.6351 345.8527 341.8462 333.2745 330.8436 337.7964 343.1823 344.7147 344.762 343.2317 344.9787 345.0347 343.5532 340.6867 338.5755 337.2012 335.3579 334.3356 334.8922 333.7368 333.6909 331.6609 328.0169 323.0343 326.2874 327.4722 327.5546 328.154 323.8858 321.8647 321.4043 320.5833 320.039 320.3198 320.8333 320.3024 319.3622 316.4943 313.8361 312.6409 311.9093 310.4831 310.1888 309.297 308.306 307.4485 305.2809 304.7398 303.9449 302.9568 302.5249 302.331 305.253 306.9539 306.8792 305.1994 304.0113 302.0263 300.0298 298.1695 296.3344 293.4237 290.9409 290.0256 288.0883 288.0862 288.0847 287.9928 285.6587 285.5432 285.2108 283.7657 280.2679 279.4547 278.1526 274.5821 274.827 274.1396 274.1146 274.7441 275.2836 273.1516 270.857 269.2274 270.4208 270.1671 270.636 270.3863 270.3052 270.7662 271.2415 271.4697 271.3181 270.5926 271.5137 273.0709 275.7158 276.7813 276.5905 274.3275 273.0073 271.8465 270.4149 272.6595 275.6438 278.4991 281.4662 284.3061 287.8933 290.376 292.8922 295.9384 299.3871 300.0204 297.278 298.3275 296.2936 292.8839 291.1464 291.0659 289.6719 286.717 282.1461 276.0464 270.4161 265.1376 265.5383 268.8164 274.9604 274.3286 277.441 281.0834 283.2651 283.7836 284.215 281.5885 274.3943 265.218 264.3554 265.853 265.346 262.7455 260.5441 261.1259 260.8443 256.9722 250.4158 251.7876 253.0844 253.0771 253.1023 251.7044 250.1723 252.3418 252.696 247.6893 247.4566 247.3797 248.1481 249.6729 247.5458 247.2476 247.1544 247.0359 247.0285 246.9178 247.1091 247.5215 247.3989 246.5985 246.9899 246.1207 247.2874 249.5844 249.6263 251.4348 252.2171 254.5396 255.0192 255.2886 255.2211 254.7247 253.0501 255.4325 257.2958 256.6511 253.7504 253.6488 253.7101 253.5742 255.773 259.0818 258.9442 258.7052 259.2179 259.8847 260.3569 260.6483 260.7745 258.9411 252.722 253.5263 255.2259 255.4373 256.1727 258.2164 260.6523 261.7906 263.2113 266.4173 269.2622 271.7418 273.4799 274.5873 275.7081 276.3514 276.2619 276.6241 274.7713 273.3625 271.5262 270.1095 266.1803 263.866 262.7906 261.7867 261.2401 262.256 263.2618 265.6249 266.7484 267.6679 268.8653 269.675 270.5255 271.7466 272.4919 272.2552 271.3242 271.0692 271.403 271.8792 272.6155 272.9215 272.9295 272.9501 271.1809 270.1164 269.2224 267.6538 266.2445 264.9468 263.3052 261.3404 259.3658 257.873 257.3071 255.8756 253.6199 252.1598 251.2498 251.3762 252.0156 251.8834 246.4509 245.7693 247.2217 247.9333 248.0463 248.9238 250.0613 250.976 251.0405 250.6737 249.946 247.8948 247.6456 247.3161 246.9629 246.9467 246.8859 247.0533 246.761 246.0593 245.9725 245.1137 240.5409 236.4384 240.0721 239.5129 239.004 239.575 240.3883 240.7034 239.5931 240.3105 242.9808 244.7664 245.7381 243.334 240.7603 240.5527 240.6728 240.8404 241.5539 243.7153 246.5822 248.4394 249.931 252.4723 253.834 254.9295 255.8178 256.5007 257.89 258.67 259.5131 261.0541 260.5432 255.0757 247.1044 247.2729 249.1989 251.8475 252.1341 252.0205 253.6808 255.8471 257.6044 259.6317 261.1522 263.0597 264.9474 268.0237 270.1328 271.9575 273.8965 274.2918 274.8156 275.8167 275.9283 275.2299 273.899 272.0773 270.4716 265.7557 263.9612 265.2374 268.1024 269.4398 269.4349 266.5692 258.5502 257.0739 255.8627 256.0666 257.4897 259.7766 262.6142 264.57 265.873 267.4209 268.9368 270.8912 273.9608 274.9707 274.7514 275.3787 276.6106 277.9792 278.7176 279.2985 279.1895 276.8861 275.369 274.1884 272.4774 270.5847 267.15 264.3796 263.2704 262.7639 -9999 +-9999 -9999 350.5836 349.6541 347.9064 345.1003 342.7822 340.1067 336.3105 332.76 331.0451 331.3812 330.4554 330.2618 331.5451 334.2708 336.2009 337.1102 339.5026 341.4763 342.559 349.9936 350.9073 352.3226 352.9096 353.5031 355.0211 356.54 356.4813 357.1435 359.1091 359.7287 361.0355 362.4058 363.1719 365.549 367.1294 368.4271 368.8181 366.9054 367.6374 367.8039 367.7227 367.4135 365.9092 364.3311 363.2591 362.2765 358.9104 357.4875 356.1694 354.6949 354.8094 354.4352 354.2259 353.8631 352.0728 346.0277 347.086 348.9531 350.05 350.9633 352.0748 353.0793 354.6231 354.4882 352.9615 352.2903 351.812 350.92 349.5231 347.5321 345.3252 343.3511 341.5599 338.3811 338.2317 339.9097 342.7903 344.3369 346.2297 348.0412 349.1255 348.7477 347.8014 349.2278 349.3686 344.8066 343.3654 344.3503 344.0763 343.5833 341.9843 339.3911 336.3537 335.4935 335.4478 338.8282 341.3272 342.6769 344.2086 345.3284 348.0186 351.0113 353.4178 353.9591 356.0255 357.9395 358.3809 356.7807 353.9132 349.9071 348.0486 345.2631 341.7166 337.3735 340.1795 341.5411 342.123 344.6014 348.9207 345.1828 338.8982 332.9923 333.5308 339.9801 346.3137 349.3185 348.3239 346.959 347.1232 347.5579 345.8696 342.8995 340.856 340.0319 337.2182 335.8999 337.1047 336.3841 334.8536 331.7983 326.6178 326.4493 330.0406 331.2346 330.001 329.3434 324.5338 323.9903 323.3633 322.6395 322.136 322.1911 321.6881 321.383 319.5091 317.0841 316.2639 314.9268 312.2422 310.2037 308.8066 307.9836 307.6017 307.243 305.3311 303.2958 302.1965 301.7899 301.2591 299.4314 300.9041 304.3915 305.5602 303.8 303.1482 301.6608 300.0876 298 296.249 294.1601 290.6565 288.1246 288.0878 288.0877 288.0863 288.5298 289.0032 290.784 290.2428 289.0463 286.5979 286.049 283.3659 278.6615 276.7955 274.674 271.8222 271.8557 274.0267 270.4154 273.1704 271.2887 271.3506 273.5533 273.6108 273.568 273.8684 273.3607 273.5638 273.6381 273.1805 272.9132 274.5677 276.3732 278.6878 281.7519 282.3341 280.1371 275.837 275.4529 273.7393 271.6932 273.9653 277.3612 280.5328 283.064 285.9328 289.9802 291.7837 293.6863 297.8946 300.7774 300.3114 299.7678 297.2417 292.9177 289.0117 286.2101 287.4382 285.6359 280.679 273.5266 267.5475 266.6427 269.7474 272.8271 276.4425 275.3789 277.4735 281.8987 284.4664 285.9985 286.6903 285.0382 281.0287 269.9092 270.6568 270.7892 267.7603 265.7834 263.7638 263.2753 261.541 257.0211 251.7612 255.3513 254.619 254.726 255.006 256.0523 254.6209 255.2815 255.7512 247.3026 247.3403 248.4151 250.3972 249.0659 247.4852 247.427 247.1093 247.1048 246.8518 246.8476 246.7181 246.6834 246.8478 247.0368 247.1131 245.545 246.9159 246.5779 246.8361 247.4379 250.023 251.951 252.347 252.0417 252.5699 251.673 253.6173 255.5919 256.1778 255.16 253.092 252.0938 253.2245 254.8211 256.3639 258.2596 257.9029 258.2671 258.7825 259.0661 259.3933 259.0636 256.5392 253.7852 257.3626 259.307 260.2918 259.774 259.8105 261.8927 263.5394 265.3406 266.5267 268.2113 269.7335 271.6592 273.3776 274.3987 275.7259 276.6155 276.5458 276.861 275.4412 273.9728 272.579 270.4854 269.0932 266.2228 263.5718 261.5991 260.9922 261.495 262.2734 263.7778 265.756 266.6759 267.8403 268.882 269.4807 270.4736 272.0165 272.4564 271.9901 271.2213 270.3844 270.3282 270.586 270.7601 271.1514 271.758 270.8289 269.5236 267.9802 266.768 265.6652 264.0713 261.9127 258.8566 257.3643 255.6877 255.2341 254.064 253.5239 253.5744 254.5123 255.0273 254.9279 254.3532 249.0892 245.9406 244.3501 245.3778 246.7426 247.6566 248.6071 249.5072 250.0712 250.1663 248.8697 247.6127 246.8989 246.6028 246.8113 247.0993 247.0507 247.1465 246.8425 246.1151 245.0925 241.785 236.6312 237.9527 239.1505 239.562 239.7924 239.9772 239.627 240.7161 242.1191 242.5383 241.4263 242.5744 243.965 245.3905 243.1139 241.8242 241.5855 242.5793 244.2995 246.2441 248.331 249.6812 251.5188 254.0253 254.8228 256.2193 257.4815 256.5007 257.89 258.67 259.5131 261.0541 260.5432 255.0757 247.1044 247.2729 249.1989 251.8475 252.1341 252.0205 253.6808 255.8471 257.6044 259.6317 261.1522 263.0597 264.9474 268.0237 270.1328 271.9575 273.8965 274.2918 274.8156 275.8167 275.9283 275.2299 273.899 272.0773 270.4716 265.7557 263.9612 265.2374 268.1024 269.4398 269.4349 266.5692 262.1058 260.673 261.0576 257.6701 255.4392 257.6977 260.2751 262.3084 264.7494 266.0718 267.7291 269.6761 271.1509 272.0449 272.1298 273.5404 274.271 274.5629 274.952 276.7556 277.6867 276.5926 275.3957 274.3412 272.5926 271.3687 268.4969 265.462 263.4171 262.2341 -9999 +-9999 -9999 348.3817 348.1729 347.5665 345.5234 343.4296 340.1158 335.7922 331.7704 330.444 329.3408 328.83 330.7495 334.7067 338.945 340.7966 342.1796 345.1584 347.8514 350.8268 354.3541 355.7898 356.5815 356.3655 356.5874 357.7237 358.1505 358.5187 358.5505 359.5726 360.4029 362.0935 362.948 364.0608 365.6364 366.9982 367.1945 366.5507 363.7103 364.2004 364.6926 366.3682 367.1954 366.2958 364.6189 363.0405 362.9966 360.6162 359.3175 358.1172 357.281 356.988 356.4931 355.8018 354.8033 352.8583 349.7919 348.7194 350.0622 350.05 350.9633 352.0748 353.0793 354.6231 354.4882 352.9615 352.2903 351.812 350.92 349.5231 347.5321 345.3252 343.3511 341.5599 338.3811 338.2317 339.9097 342.7903 344.3369 346.2297 348.0412 349.1255 348.7477 347.8014 349.2278 349.3686 348.5977 348.1656 347.5596 347.4408 346.2963 345.3731 342.9594 339.56 337.1735 337.1237 337.048 340.7696 345.0853 347.6985 349.6004 351.5129 350.6104 350.6953 353.3034 355.9693 358.2706 358.7705 357.1412 355.7823 350.4756 346.0485 341.4818 340.1233 343.007 346.3013 345.6231 345.4322 345.8183 348.6548 343.0514 336.3419 337.4001 335.8308 340.22 346.4701 351.2103 352.1202 350.9254 349.8682 349.3285 347.3982 344.757 343.712 342.054 339.3484 337.8972 339.5771 337.6708 334.1669 329.8038 328.5395 331.0754 333.2659 333.2495 331.8776 330.4368 326.1611 325.8312 325.421 324.8037 323.867 323.4281 322.4833 321.5549 320.5804 317.5726 316.5088 314.3714 312.3594 310.8973 310.0004 308.7067 306.711 305.5673 303.9666 304.9661 306.2338 305.4156 303.2538 300.8287 298.4115 299.9024 302.5028 301.0037 299.3303 298.2782 298.1372 298.4296 296.4111 292.6176 288.0861 288.0878 288.0878 288.0878 288.5639 291.993 293.8316 293.9933 293.486 292.6031 291.2289 287.5568 283.6869 285.0463 280.2133 277.2851 273.1068 272.8643 272.4607 272.1376 275.1178 274.7815 276.8933 277.1563 277.3028 277.7877 277.8392 278.1049 277.3329 276.8871 278.1699 277.1684 277.0434 277.6693 279.9352 283.8954 286.7087 286.9092 283.0946 279.8351 277.5787 274.0801 272.3553 275.9686 279.4265 282.3293 285.3407 291.6491 295.4906 296.8025 297.4542 300.0061 301.9332 296.567 292.9826 287.963 285.0424 283.2773 283.825 282.3834 275.0928 268.6944 269.9568 267.3623 271.0811 275.1759 278.4677 277.9731 279.3607 283.2225 285.6216 287.6149 288.7115 288.2089 286.2974 278.0818 277.9002 274.7898 272.2701 269.2343 266.4172 263.0234 260.1897 255.1675 255.7436 257.9942 256.3404 256.3289 256.801 259.3194 258.4497 257.3345 257.1518 247.8391 248.008 251.8204 251.3705 250.4189 248.2097 247.7101 248.4523 247.3311 247.2987 246.9236 246.2973 246.7375 246.6852 246.6545 246.5591 246.7093 245.9046 246.8294 246.458 246.5224 246.9721 246.7651 247.6724 247.0279 247.3866 249.3352 253.1756 253.7801 253.0438 252.3319 249.871 252.8967 253.4642 255.0682 256.3319 257.2486 257.632 257.8856 258.2167 258.5695 258.0838 255.1128 252.4117 253.177 260.6158 262.1241 262.6634 263.1521 262.1089 262.6084 263.9487 265.2673 266.4775 268.3776 269.8559 271.0364 272.6438 273.9463 275.3344 276.3261 276.8233 277.2363 276.3169 274.9211 273.1559 271.2807 269.1996 268.0196 265.4545 263.2776 260.317 260.7091 261.4193 262.4355 264.5427 265.7003 266.8122 268.2708 268.854 269.7926 271.6725 272.711 273.1511 272.0905 270.6949 269.884 269.5408 269.8423 270.493 271.0631 270.0158 268.983 267.3446 265.7877 264.7631 263.3987 260.7137 257.6457 257.2232 255.0831 254.5416 253.9243 254.5376 255.7253 256.7207 256.7137 256.3261 256.0305 251.651 247.9779 245.556 243.1776 244.0966 245.8181 247.2684 248.4337 249.1902 249.7549 248.4338 247.6127 246.8989 246.6028 246.8113 247.0993 247.0507 247.1465 246.8425 246.1151 245.0925 241.785 236.6312 237.9527 239.1505 239.562 239.7924 239.9772 239.627 240.7161 242.1191 242.5383 241.4263 242.5744 243.965 245.3905 243.1139 241.8242 241.5855 242.5793 244.2995 246.2441 248.331 249.6812 251.5188 254.0253 254.8228 256.2193 257.4815 258.9685 259.9248 260.9549 262.5793 263.6622 264.2289 259.452 250.5058 246.7199 248.0527 249.1906 251.2218 253.2257 255.7052 256.1495 256.4078 258.3178 260.6747 262.4117 264.1841 266.2531 268.1605 269.6283 271.3117 272.3659 273.3585 274.1608 275.0537 275.2812 274.0495 272.7589 271.4174 268.3694 265.7617 265.5634 268.8089 270.592 271.6485 270.2034 267.1331 265.4492 267.4245 266.1265 263.2384 258.8346 259.2617 260.0178 260.7435 262.4298 263.1219 265.7891 267.4287 268.5555 270.2422 271.2989 273.523 274.1482 274.6275 275.1117 276.9552 276.7905 275.8011 273.709 272.5353 271.5772 269.8687 267.1609 264.8564 262.7198 -9999 +-9999 -9999 344.9566 344.8787 345.0432 344.394 343.0736 339.4372 333.8569 330.2176 329.5782 328.5269 331.8268 335.7755 338.6427 340.4839 342.541 344.978 347.0557 349.4832 351.9426 357.1054 360.1931 360.6163 360.0247 359.1804 359.1904 359.4671 359.1188 359.0381 358.8077 359.025 360.0863 362.948 364.0608 365.6364 366.9982 367.1945 366.5507 363.7103 364.2004 364.6926 366.3682 367.1954 366.2958 364.6189 363.0405 362.9966 360.6162 359.3175 358.1172 357.281 356.988 356.4931 355.8018 354.8033 352.8583 349.7919 348.7194 350.0622 351.0503 352.4272 353.5118 354.1522 354.9993 355.5236 354.3662 353.5862 352.5619 351.6405 349.5975 348.3958 346.9975 345.3625 343.5938 339.2631 340.0353 342.3091 344.4865 346.0538 347.4521 349.5499 351.2396 351.7509 350.1275 351.5338 352.67 352.4488 351.845 350.8959 349.9106 348.8813 347.9077 346.0469 344.5652 341.5006 339.9411 339.8267 340.0824 344.9952 348.5926 351.5381 354.5789 354.7689 354.4901 353.2354 355.2858 357.1917 358.7767 357.7634 355.8672 349.6527 345.6834 341.9677 340.8535 345.6092 350.3457 349.626 348.6721 348.5564 346.653 339.343 342.9112 345.1171 338.6636 341.419 347.4392 353.7128 356.5209 352.7891 352.2262 350.846 348.5527 347.2838 346.658 342.8386 340.7023 340.8975 341.4765 337.6104 334.9519 333.1559 331.3465 334.2637 335.8302 335.7421 334.4169 331.8544 328.728 327.9647 327.1335 325.8339 324.8553 324.6005 323.4896 322.0565 321.4884 319.015 317.4229 315.996 314.8971 313.7089 312.7112 311.8415 310.8214 309.6114 308.8524 309.3631 309.5824 308.7333 306.1855 302.162 298.2006 297.2569 296.7968 298.314 298.1031 297.6014 296.6779 294.6541 293.1162 288.0547 288.0894 288.0881 288.0878 288.0878 289.7776 293.191 295.315 296.662 296.9304 295.6701 294.1429 287.7611 289.3527 290.843 285.7057 281.2072 278.8307 275.073 274.4911 273.5631 280.1322 281.537 281.3975 280.7697 280.5946 280.9381 281.3695 282.4738 281.7019 278.6718 281.0078 280.072 278.0261 279.5019 280.8475 284.5742 288.7785 290.9413 287.147 283.6631 282.3292 279.0412 276.2066 273.4681 278.029 281.5122 284.6372 291.1301 295.6579 298.9298 301.7167 302.2187 302.4678 297.2319 290.2463 286.8319 281.29 278.9164 278.4739 276.2322 271.3705 278.4677 280.3293 279.3125 274.9062 281.4209 281.4691 280.0053 279.9607 282.183 285.1144 287.2422 288.6879 289.5254 288.1905 282.9976 279.8568 277.3187 274.4507 269.6107 266.2016 263.9957 260.183 254.1126 257.927 259.9582 259.8115 259.3287 258.7349 261.1567 261.6808 260.4292 259.3549 254.1667 254.0481 253.3572 253.1146 252.0077 248.1505 250.6392 253.4917 251.1021 249.6213 248.6381 247.4674 247.0495 246.6631 246.7108 246.5627 246.4022 246.5925 246.8421 246.6332 246.2738 246.2151 246.1164 246.0112 246.0509 246.2239 247.9021 249.4845 249.7326 249.4746 249.2203 249.5548 252.415 254.1652 254.8767 256.14 257.1069 256.8256 256.7924 256.7938 257.0949 255.298 251.374 254.0172 257.928 261.9232 262.7466 263.465 264.227 264.9714 265.4131 265.8657 266.0145 266.4478 268.9557 269.5018 270.9098 272.1559 273.8837 275.3282 276.8358 277.1657 277.4759 276.6299 275.297 273.5906 271.8253 269.8708 268.3688 267.2515 264.9832 262.1898 259.0514 260.9262 261.7631 263.9987 265.1015 266.0711 267.2222 268.1969 269.4006 271.1686 272.3809 272.9347 272.0905 270.6949 269.884 269.5408 269.8423 270.493 271.0631 270.0158 268.983 267.3446 265.7877 264.7631 263.3987 260.7137 257.6457 257.2232 255.0831 254.5416 253.9243 254.5376 255.7253 256.7207 256.7137 256.3261 256.0305 251.651 247.9779 245.556 243.1776 244.0966 245.8181 247.2684 248.4337 249.1902 249.7549 248.4338 247.3272 246.6022 245.9066 246.2073 246.6773 247.0455 247.2854 247.2112 244.7057 242.9248 240.2648 236.4682 239.5238 239.2695 239.1482 239.1778 242.7333 242.9802 242.2132 242.78 243.3658 242.6771 242.2918 243.3837 244.7728 246.0679 244.9854 244.2179 245.7259 246.8974 248.1384 249.6546 251.3328 252.5684 255.2641 256.1749 257.0773 258.561 259.8 261.2154 263.0689 264.4333 265.9355 268.1912 263.7843 257.9632 253.5846 248.6446 248.4327 248.3215 251.0755 254.4678 257.6725 258.3957 258.2066 259.5061 261.2188 262.7923 264.649 265.7735 266.9305 269.1127 270.2999 271.8939 272.4761 273.6359 273.9849 273.3372 273.0558 272.7252 270.7173 268.2995 267.2151 270.1492 272.6725 274.1131 273.4699 271.2607 269.5563 271.7285 272.6787 272.0414 267.066 260.439 260.093 260.0002 260.7524 261.0172 262.2908 263.7683 267.0295 267.8858 269.7776 272.9008 273.6676 274.2159 275.1342 276.9631 276.6675 275.9624 275.2615 272.5201 271.1908 269.6064 267.7032 265.4195 263.4973 -9999 +-9999 -9999 345.9352 343.0897 342.6688 342.041 343.0736 339.4372 333.8569 330.2176 329.5782 327.6933 331.8268 335.7755 338.6427 340.4839 342.541 344.978 347.0557 349.4832 351.9426 357.1054 360.1931 360.6163 360.0247 359.1804 359.1904 359.4671 359.1188 359.0381 358.8077 359.025 360.0863 361.4883 363.2539 364.748 364.9001 364.2074 362.0634 361.7154 362.084 363.0959 364.1367 364.8276 364.5433 363.5071 362.7709 362.1321 361.306 360.6054 359.9337 359.163 358.5903 357.7053 357.1274 355.7852 354.655 352.3351 351.9154 351.5559 351.9674 352.9131 354.3112 355.1207 355.6086 355.9067 355.0436 354.6978 353.559 352.4687 351.6275 350.1546 348.8246 346.9586 345.7999 341.5323 343.3766 345.0859 345.8001 347.5355 349.0328 350.6736 352.4082 353.6216 353.0988 353.3991 355.0628 355.929 356.4968 355.5238 353.2421 351.7302 350.3938 347.9128 346.7228 345.2517 343.8258 343.4562 342.1808 341.6737 346.7045 350.5919 354.8187 355.9267 356.2196 356.5357 357.1949 357.7924 359.2347 358.9568 356.8221 351.8326 345.862 343.595 343.3002 346.7089 352.4081 352.968 351.7784 350.7186 342.2359 341.8117 348.4768 349.2875 341.3651 342.9877 350.218 355.4008 358.7731 356.2276 354.7852 353.3231 351.2274 350.5854 348.5606 344.4792 344.1302 344.0804 343.5912 339.7609 337.9791 335.8351 334.8839 336.8552 337.9544 337.4351 336.1817 333.6489 330.4945 329.7861 328.3918 327.4044 326.2391 325.3599 323.8135 323.4969 322.9444 320.1271 318.8461 317.7413 316.4411 315.259 314.6371 313.5417 312.7329 311.7925 310.929 311.1991 311.2785 310.0674 307.9617 304.8162 301.3631 297.5002 296.9445 294.4812 294.3491 294.381 293.8841 287.8517 289.3806 288.0911 288.0907 288.0896 288.0642 289.8357 290.0079 295.0175 297.28 298.4034 298.8676 297.5687 295.5952 289.4297 291.6727 294.7137 291.6782 287.1935 284.3295 283.0063 280.0249 276.5674 284.3816 286.8023 287.9127 285.7482 285.5566 284.0806 283.5975 284.5001 285.1578 279.3206 280.8551 281.2132 279.8931 280.8234 282.6617 285.5265 289.0263 292.6476 292.6631 290.1131 286.7139 282.7569 280.8319 277.8381 275.7654 280.126 283.4693 289.6898 294.894 298.8106 302.4274 304.3367 304.6968 302.5778 296.3537 290.2834 284.7954 280.8972 277.0938 277.2759 281.169 283.4499 287.409 283.693 278.4125 281.0753 283.1823 281.0119 280.5112 282.1915 285.2455 287.3982 288.8508 289.2387 287.5028 281.8698 278.4971 276.2659 273.4215 268.9143 265.7231 261.6106 257.8139 254.0434 259.2004 261.6199 262.8304 262.2872 262.052 261.5016 262.3437 261.9801 261.956 256.9876 255.2068 254.5097 253.8677 252.8392 249.5927 254.0595 255.8879 255.3164 251.8795 251.0014 250.1521 247.8118 246.7969 246.9177 246.1538 246.4462 246.4387 246.165 246.1946 246.3019 246.1766 246.1565 246.0577 246.1891 246.0895 246.2025 247.7755 247.6398 247.5415 248.8345 250.6712 252.3519 252.5978 252.9315 254.4004 255.2352 255.2621 255.5228 256.0988 254.7905 251.5828 252.6976 255.9623 258.0487 262.2776 263.19 264.1873 265.1904 264.9714 265.4131 265.8657 266.0145 266.4478 268.9557 269.5018 270.9098 272.1559 273.8837 275.3282 276.8358 277.1657 277.4759 276.6299 275.297 273.5906 271.8253 269.8708 268.3688 267.2515 264.9832 262.1898 259.0514 260.9262 261.7631 263.9987 265.1015 266.0711 267.2222 268.1969 269.4006 271.1686 272.3809 272.9347 272.1438 270.8476 269.8297 268.454 268.1279 268.6917 268.9925 268.5071 267.9466 266.5782 265.3055 264.149 263.067 260.6191 256.8411 255.6618 254.9889 254.3022 254.964 255.5038 255.3933 255.3918 255.6657 255.2873 254.9005 253.1818 251.3243 249.9926 248.4349 245.5973 242.5822 244.3554 245.8196 246.8909 247.9394 247.7924 247.0144 245.5105 244.7669 244.9186 245.7262 246.6125 246.9046 244.1694 242.1014 240.7671 239.9495 236.48 239.5979 238.7578 239.1571 241.0331 245.1831 245.04 244.3822 243.9593 244.1482 243.8452 242.7426 242.9784 244.5434 245.7718 246.0706 246.908 247.5235 248.6364 249.545 251.2265 252.835 254.2196 256.734 257.6864 258.9503 259.6123 260.3165 262.0638 263.5738 265.3926 267.6007 268.3539 268.2402 262.0647 258.1185 254.7126 251.4877 248.789 249.7357 251.7279 257.1049 258.774 259.6592 260.2828 260.9009 262.1543 263.1942 264.5087 265.4321 268.1513 269.3889 270.3613 271.5983 272.3825 272.378 271.7873 271.8764 272.0778 272.1694 271.5267 270.1742 271.6936 274.5708 276.2676 276.2334 274.7958 274.1246 274.6029 275.3299 275.5141 270.3118 262.5134 259.8655 261.774 263.5996 264.1347 265.7746 268.8412 270.965 271.7052 273.1239 273.5389 273.795 274.2032 275.826 277.3596 276.9579 275.6476 274.0846 272.0371 269.549 267.4829 265.8593 264.1956 263.3401 -9999 +-9999 -9999 345.9352 343.0897 342.6688 342.041 340.8669 337.9864 333.0937 330.9961 329.1905 330.8495 335.033 338.2272 340.6312 342.7654 344.3037 346.338 348.2137 351.0149 352.8373 358.4312 360.3758 362.0563 362.0516 360.6596 358.8521 357.7374 357.4059 357.3318 356.6037 357.0672 359.1303 360.724 362.5069 362.6506 361.8477 360.1548 357.4622 359.7997 358.8796 359.0987 360.7509 361.8871 361.7188 360.4544 361.2423 361.28 360.1622 359.5613 359.6383 359.083 359.0238 358.6107 357.7691 356.8807 355.8126 354.1256 353.9215 353.4917 353.4857 354.3905 355.3848 355.5288 354.8144 355.1697 354.514 353.9994 353.6981 352.9016 352.1902 350.9366 349.6091 348.3032 347.7542 344.4322 344.3034 346.3355 348.2183 349.0346 350.3406 351.8221 353.0404 354.4832 355.7155 355.5087 356.3705 357.6496 358.8607 358.3335 356.9211 354.5693 353.0578 350.1342 349.445 348.9225 347.3215 347.4628 345.5667 342.6202 344.1681 348.6054 353.4186 354.9476 357.0346 358.5083 359.1617 359.4052 360.1043 360.2002 359.0026 353.8611 350.191 347.3521 347.649 348.1453 352.0068 354.0813 354.0839 352.0531 344.7296 346.4309 351.1187 352.6729 344.9324 344.5429 352.58 358.5265 361.9009 359.4512 357.6819 355.4681 354.1739 351.7136 347.1686 346.611 348.3419 347.5789 346.036 342.402 340.2269 338.6616 337.0805 338.2172 339.0352 338.4408 336.801 334.3708 332.1725 330.6225 329.367 327.816 327.0782 325.6616 324.2102 323.8891 323.3965 321.0195 318.8643 318.1359 317.2164 316.1588 315.225 314.0233 313.1017 312.3022 311.3774 311.1899 310.1378 308.5951 306.742 305.2107 303.3001 302.0618 299.1565 292.5942 290.1748 288.7274 288.1665 288.1424 288.1301 288.0907 288.6033 291.1114 294.6951 294.1816 292.3471 295.8518 299.4321 300.7012 300.115 297.9756 294.4276 292.3854 294.9538 297.6013 295.6224 291.1047 287.2827 285.1539 281.2625 279.7566 286.4234 290.1826 292.8712 293.3786 291.68 287.8552 286.5667 287.4266 288.1368 280.6241 280.2752 281.5565 283.5121 283.8187 283.574 287.1841 290.6816 293.7074 296.8357 294.0376 289.6029 286.7334 283.8279 280.5082 275.101 278.9467 281.9702 289.6805 292.2282 297.2278 300.7593 303.2257 304.3838 303.601 299.8578 293.4235 283.8398 277.8928 275.8459 279.9034 283.4124 285.2655 286.7245 285.4224 281.4836 281.048 283.5966 282.2077 281.078 283.4762 286.2954 288.4665 289.2168 288.7551 283.1011 279.1122 274.3856 272.6229 271.3528 267.3672 263.4932 259.2187 255.2626 255.0963 259.3238 261.9343 264.2183 265.1526 265.2776 264.2928 264.2372 264.8266 264.2891 259.5961 257.233 255.678 254.3111 253.2711 252.9695 255.716 256.8232 257.1732 253.291 252.5737 251.389 248.531 247.2344 246.7274 246.1538 246.4462 246.4387 246.165 246.1946 246.3019 246.1766 246.1565 246.0577 246.1891 246.0895 246.2025 247.7755 247.6398 247.5415 248.8345 250.6712 252.3519 252.5978 252.9315 254.4004 255.2352 255.2621 255.5228 256.0988 254.7905 251.5828 252.6976 255.9623 258.0487 262.2776 263.19 264.1873 265.1904 266.3805 267.4279 267.8157 268.3858 269.136 269.7548 270.3108 271.2044 272.8226 274.6097 276.167 277.3575 277.5489 277.9952 276.9949 275.4171 273.3558 271.4619 269.7771 268.803 267.5762 266.0053 262.6487 257.5673 259.8213 261.7847 263.9935 265.1321 265.9801 266.9864 268.0959 269.1366 271.1853 271.6979 272.4546 271.7919 270.7552 269.2951 268.3303 267.9147 267.7117 267.9213 267.7713 267.0826 265.9369 264.6997 263.585 262.3 260.4854 258.4063 255.7175 254.8362 254.9237 254.1871 253.2484 252.1298 251.7319 251.9782 251.647 251.1772 251.5009 252.0696 252.2725 251.9418 250.3268 247.8688 243.742 242.3024 243.9512 246.1351 246.1813 246.1234 245.0892 244.3676 244.5003 245.3122 246.0654 245.9522 241.8414 240.7326 239.9725 239.2872 236.5588 238.9311 239.276 241.1481 244.2751 248.3912 247.4252 246.2381 245.7659 245.4813 245.5152 244.7761 244.3085 244.1527 246.8424 246.7588 247.2681 247.9088 248.5277 250.4188 252.3329 253.9149 255.5225 258.0535 259.1945 260.0884 261.5407 262.1824 262.9908 264.521 266.6912 269.8028 272.1247 270.6453 266.3095 262.1946 259.4193 256.4605 252.5339 248.4065 250.0714 255.0308 257.5873 259.3433 260.9348 261.8624 262.3961 263.2955 264.4079 265.3959 267.7477 269.077 269.6191 270.1917 270.4927 270.0522 269.8523 270.8808 271.2176 273.006 272.9627 272.9814 272.9813 274.9501 277.0872 278.372 278.2478 278.1693 277.0133 277.2829 276.049 270.0319 261.49 260.4832 262.776 265.7813 266.5308 271.1871 273.3061 275.364 276.9944 278.2933 277.2114 275.6944 276.1557 276.7775 277.5755 276.9637 275.9856 275.0205 272.2219 268.6375 265.6776 264.5341 264.111 264.3626 -9999 +-9999 -9999 345.3019 343.2336 341.0679 339.1027 337.9101 337.0808 334.383 332.4566 328.7372 331.3947 335.7426 338.3867 340.8156 341.9408 342.3854 345.7191 349.447 353.2422 358.2203 358.6514 360.7032 360.7848 360.9643 360.0921 357.6191 355.4423 354.7838 355.3059 354.4923 356.2748 359.0486 360.7355 360.3848 359.3369 358.5425 356.2085 353.7263 357.8414 356.5388 355.9258 358.1375 358.3105 358.1096 358.053 359.6532 360.1361 358.822 357.8037 357.7238 358.1292 358.074 357.746 357.4688 356.8842 356.4301 355.7466 355.466 355.248 355.2364 355.1271 354.7933 354.4554 354.1778 354.0064 353.5957 353.2949 352.8625 352.387 351.95 351.319 350.8753 350.2722 349.5117 347.463 345.8678 346.6206 348.9556 350.674 351.4166 352.4333 353.7332 355.128 356.7173 357.2968 358.5048 359.6437 360.9768 361.4019 360.0113 357.724 355.9705 352.2616 352.001 351.5172 350.2299 350.0346 349.5971 346.9881 343.3865 347.0381 352.6802 355.5894 358.1038 359.7615 360.1995 360.3651 361.1526 361.6366 361.2681 355.8726 352.1386 352.0765 350.9336 352.366 353.9341 356.3085 356.2917 353.56 346.5836 349.2001 353.5656 353.738 346.5605 348.8989 355.7817 361.1072 364.7031 363.1827 360.8459 358.1525 354.6893 351.3652 350.6606 352.3945 352.374 350.8971 347.4193 345.416 343.6582 341.5674 340.1376 339.6448 338.9792 337.7235 335.929 334.6224 332.2533 330.588 329.5063 327.5764 325.9856 325.3072 324.2613 323.2395 322.6901 320.6047 318.5181 316.6699 316.2409 315.5476 314.7036 313.5457 312.3876 311.263 310.1808 309.3156 307.4537 305.5507 303.9236 302.5305 300.6174 299.6182 298.1924 291.2433 288.2775 288.2296 289.0511 288.628 290.3686 292.9543 294.0655 295.8386 299.7112 298.201 296.2603 297.9395 300.9872 302.0827 301.0832 298.9215 297.0429 295.1241 297.5786 300.3998 298.2202 293.7108 290.2001 288.0301 284.4268 283.1401 285.8215 291.0463 294.9242 297.2166 296.036 292.8173 290.665 290.5119 290.119 284.1841 281.187 282.7578 286.7654 287.7229 285.5986 287.7068 292.0768 294.7853 298.2331 295.3845 291.4774 289.3432 287.2014 284.2702 281.7342 276.9482 281.0231 288.2659 291.8336 294.8902 298.2935 301.1442 302.7397 302.9046 302.1229 297.3246 287.4158 282.6457 279.0723 280.8032 283.4024 287.2882 288.2749 289.4416 286.7731 284.3733 284.5473 284.006 282.1281 283.7146 286.2112 288.2764 288.5878 288.2921 281.5967 278.385 274.3856 272.6229 271.3528 267.3672 263.4932 259.2187 255.2626 255.0963 259.3238 261.9343 264.2183 265.1526 265.2776 264.2928 264.2372 264.8266 264.2891 259.5961 257.233 255.678 254.3111 253.2711 252.9695 255.716 256.8232 257.1732 253.291 252.5737 251.389 248.531 247.2344 246.7274 246.5677 246.3535 246.0801 246.3256 246.6114 246.7251 246.2763 246.0177 246.1559 246.3107 246.1902 246.1562 246.7046 246.9893 248.1856 248.8236 250.0807 251.2726 251.4012 251.7276 252.3641 253.933 255.115 255.851 254.5207 251.1503 250.3913 253.8421 256.7512 259.6415 263.2795 264.5126 265.7886 267.1108 268.3438 269.565 270.0208 270.3008 270.8054 272.4884 273.2703 273.6461 274.2758 275.9259 277.4578 278.2663 278.0188 278.311 277.1203 275.184 273.3881 272.4512 271.5215 270.2539 268.5041 265.5187 262.1394 257.2451 259.0634 261.5252 263.4308 264.7509 265.4458 266.7257 267.7214 268.6913 270.3058 270.6286 271.058 270.9478 270.3078 269.4351 269.0815 268.5004 267.2406 266.1461 265.9837 265.9659 265.1765 264.0991 262.9916 261.8277 259.2326 257.5425 256.1218 254.217 253.4202 251.6311 250.8645 249.6169 248.9467 248.0278 247.7924 247.3652 247.9993 249.2281 250.863 251.6311 251.6964 251.4874 249.6339 244.9887 241.4001 243.757 244.4756 244.8306 244.7542 244.1064 244.1286 245.1077 245.0299 244.6842 240.4641 240.8256 239.4071 237.014 238.782 239.1403 240.8374 243.7783 246.4396 250.345 249.783 248.7084 248.0862 247.3818 247.1429 247.302 246.6677 245.5726 246.7088 247.4213 247.7008 248.2259 249.5917 249.9036 250.9757 253.8793 255.281 257.9321 258.7652 259.9691 262.1063 263.2677 264.0223 265.5294 267.7907 270.5605 273.2821 272.2975 268.4673 265.1174 261.8052 259.4878 256.5481 253.6213 249.1772 251.9511 254.3883 256.7759 259.0676 260.4656 261.4254 263.133 264.1853 265.4046 267.5495 268.7373 268.7691 268.5489 268.5266 268.0688 268.8602 269.7442 271.0876 273.0746 273.5034 273.8675 274.6339 275.602 277.4864 278.9801 280.0867 280.3717 279.2964 278.2881 274.9432 268.791 262.7426 262.6048 264.7016 267.003 268.8247 272.6506 276.1978 278.2264 279.9165 280.8126 280.103 278.6676 277.3506 277.2691 277.6929 277.0547 276.4586 274.4843 271.2079 268.2198 265.0574 265.1668 266.5176 266.5518 -9999 +-9999 -9999 344.6961 341.7771 339.4708 337.9442 337.2562 336.1008 333.7689 332.1288 329.4447 330.9199 334.7974 337.0066 338.6062 339.3172 342.2744 346.3669 349.4314 353.5031 358.6949 359.0451 358.5709 357.7585 357.7973 357.6147 355.7647 353.5703 352.9584 352.9562 353.3564 355.9653 358.4484 359.308 357.7758 356.5287 355.2509 351.3597 351.4162 354.9074 353.8867 352.0477 354.0265 354.583 355.7255 357.1558 359.2763 359.1275 357.0588 355.8207 355.914 356.6957 356.7962 356.2132 356.2867 355.8333 355.6564 355.6132 355.6341 355.6712 355.5308 354.6433 353.9918 352.718 351.9888 351.2382 352.0029 352.3414 352.605 352.7213 352.4152 351.7677 351.486 351.0815 350.3947 348.6296 347.9565 346.7746 348.4847 350.9296 351.8732 352.361 353.3492 354.7225 356.6311 357.6886 359.2604 361.067 363.0277 364.6089 364.5049 362.5059 359.8474 354.9321 354.1855 353.6223 352.9564 352.3408 352.1018 349.6927 347.0273 345.6514 351.8152 355.2952 357.9964 358.9916 359.0037 360.0718 360.9105 362.6087 362.8116 356.4176 355.3022 356.2182 354.5927 355.6836 357.1435 358.7634 358.8758 355.6004 349.075 352.035 355.9681 355.1122 348.0037 350.5601 356.5823 362.5015 367.0843 365.7008 363.0314 359.5387 354.2511 353.7771 355.3563 356.7099 355.9084 353.9542 349.5008 347.3582 345.3269 343.6753 341.9028 340.2314 338.6059 337.0128 335.2028 334.4253 332.5816 331.804 329.6042 327.4806 325.6398 323.4062 323.2506 322.8776 321.2162 319.6468 317.6022 315.8241 314.6611 313.6316 313.0134 312.2763 311.6673 310.3445 307.808 306.6362 304.8193 302.354 300.2879 298.397 296.252 294.0132 291.2542 289.6363 289.0538 288.8361 289.946 292.3693 294.8356 296.8369 297.8728 300.2718 302.7115 301.1618 298.9092 301.122 301.9783 303.3095 302.464 301.3752 299.5238 297.2733 299.8224 302.0263 300.3729 296.9025 293.903 288.9427 290.3659 289.6616 287.4932 290.1749 294.3646 297.7565 298.9068 297.6853 295.3195 292.6862 290.9984 284.7945 283.2526 282.7019 286.7042 290.2209 288.7353 287.9366 290.5738 293.2554 298.2887 296.7593 293.5714 292.585 290.2801 287.031 281.7342 276.9482 281.0231 288.2659 291.8336 294.8902 298.2935 301.1442 302.7397 302.9046 302.1229 297.3246 287.4158 282.6457 279.0723 280.8032 283.4024 287.2882 288.2749 289.4416 286.7731 284.3733 284.5473 284.006 282.1281 283.7146 286.2112 288.2764 288.5878 288.2921 281.5967 278.385 274.382 270.2541 268.4079 265.8994 260.7249 255.9269 255.3314 259.89 259.3953 262.027 264.431 266.5662 267.4363 267.5375 267.1505 266.8971 263.5746 262.4081 258.6707 256.7009 254.8853 253.0744 254.4537 256.8401 259.9457 260.0297 256.2342 254.4114 252.5344 249.5859 247.8651 247.5889 247.5809 246.9238 246.787 246.56 246.4936 246.6214 246.2077 246.1458 246.0264 246.1611 246.1359 246.1244 246.2266 247.2977 248.1194 249.2197 250.0834 250.7195 250.5963 251.0113 251.8193 254.4043 255.6472 254.6362 251.7574 249.4985 253.5932 255.3235 257.3231 260.001 264.332 265.8812 267.3579 269.0913 270.032 271.0339 271.6796 271.9802 272.9266 275.1775 275.8656 276.2292 276.4626 277.3953 278.3131 278.8471 278.4843 278.3653 276.9976 275.5447 274.4568 273.4393 272.5736 271.3388 268.847 266.1953 261.3027 256.5827 254.972 260.4487 262.8791 263.9946 264.5803 266.0866 267.3128 268.3083 268.9571 269.1003 269.042 269.1073 269.2399 269.4689 269.4688 269.1271 268.0446 265.4484 264.8691 265.0632 264.7399 263.9677 263.3927 262.4709 260.9115 259.0116 256.9083 256.3492 255.5411 254.3821 252.4862 251.1496 250.3394 249.3333 248.3302 245.6367 245.2134 245.5877 247.0812 248.9435 249.9942 250.6722 251.2585 249.3979 243.7197 241.6955 242.106 244.0409 244.4363 244.2991 243.9868 244.4393 243.7101 243.4049 240.3461 240.3244 239.271 236.4014 239.2719 240.6275 243.992 247.0807 249.7722 252.2923 252.9248 251.1823 250.0758 249.6321 249.4907 248.998 248.8391 248.0761 247.062 247.8214 248.2314 248.4474 249.564 250.4666 251.3687 252.6369 254.0133 256.7596 257.7419 259.8559 261.7381 263.1837 264.6481 266.1758 268.214 270.9066 273.319 272.7923 270.1235 266.7325 265.5007 262.4946 259.7497 257.7678 254.1157 249.5376 251.7583 254.0447 256.6337 258.0908 259.8894 261.4057 263.0509 264.2588 266.9489 267.4723 266.5927 266.2003 266.2462 267.0942 268.7186 270.2221 271.2561 272.3935 272.6223 273.0348 273.8079 275.0275 276.4189 278.2174 279.1608 279.9685 280.2912 278.8625 275.5862 270.3964 265.6346 265.5788 268.7257 271.2777 272.4776 270.6161 274.8037 278.0319 280.2638 281.7011 282.4602 280.9268 278.5784 278.4558 277.6378 276.4048 275.4279 272.3628 270.0015 267.3455 265.8873 267.1709 268.0228 -9999 -9999 +-9999 -9999 344.298 342.236 338.81 337.874 336.6658 334.9395 332.8061 330.7132 329.1398 329.3454 333.0713 335.3152 336.1259 340.5299 343.7265 347.0583 350.594 353.8926 356.8941 356.4303 354.8856 354.4302 354.9409 354.5235 353.2646 351.2054 350.7816 349.9847 352.2901 354.6767 356.7831 358.1174 357.187 354.028 351.6527 347.731 348.0889 351.6197 351.1465 349.3535 350.5653 352.8361 355.9569 358.1642 358.4325 358.1672 355.4124 354.3261 354.2281 355.508 355.2621 354.7632 354.1811 353.6425 353.8196 353.8351 353.8632 354.7259 355.1427 354.5808 353.5049 351.9319 350.6901 349.713 349.3267 350.2311 350.603 351.1556 350.6958 350.7604 350.4261 349.5793 348.9622 348.723 348.2841 347.4631 347.9607 349.3509 350.4431 351.6105 352.301 353.5416 355.7405 357.0478 358.2707 360.2498 362.0906 364.1974 365.9935 366.8906 364.2131 357.7721 356.8894 356.3609 355.4134 354.6767 353.7303 353.0687 350.5059 346.2964 350.8395 353.1911 355.1181 356.7299 359.0277 360.3308 361.7462 363.1064 362.623 359.5919 359.7164 358.4659 356.9394 359.1823 361.2067 361.2853 359.9416 357.96 351.7231 354.0955 357.0125 355.2864 349.5322 355.5651 360.5311 365.1106 368.3669 366.6435 363.254 358.8449 355.8397 357.4118 359.0419 360.0497 358.7397 355.7253 350.6805 348.9135 346.1967 343.5775 341.7866 339.3186 336.9363 335.2666 333.8988 332.0867 331.8435 330.2567 328.8501 326.568 324.7501 322.7587 321.088 320.7842 320.2686 317.9091 317.2287 315.7187 314.2201 311.8847 308.9478 309.3775 309.0185 309.3375 304.2506 303.4947 301.4973 298.4325 296.1547 293.9806 292.0658 291.4571 290.9251 290.3689 290.9977 293.0742 294.6956 294.0423 298.3933 301.3006 301.4319 302.7092 303.9672 303.6153 302.4518 303.9971 303.6358 304.8508 304.3414 303.0066 301.2962 299.4159 301.206 302.0263 300.3729 296.9025 293.903 288.9427 290.3659 289.6616 287.4932 290.1749 294.3646 297.7565 298.9068 297.6853 295.3195 292.6862 290.9984 284.7945 283.2526 282.7019 286.7042 290.2209 288.7353 287.9366 290.5738 293.2554 298.2887 296.7593 293.5714 292.585 290.2801 287.031 285.0747 282.1232 281.6084 287.1276 290.6589 293.8608 296.0865 299.6879 301.3304 301.7738 302.3709 299.4957 289.2859 286.6325 284.2112 281.51 284.2421 288.9986 290.9662 291.2287 289.8441 286.5094 285.9604 285.3423 283.5375 283.1821 285.242 286.565 286.2415 285.3649 280.5332 275.7293 271.6511 268.6035 265.6173 261.3365 257.2059 258.4789 260.4878 263.8705 260.7717 262.558 266.9587 268.2622 268.8389 269.5551 269.2375 266.8617 266.4006 261.9016 259.8445 257.641 255.623 253.8586 255.8023 256.6928 258.9653 260.4742 257.9235 255.9873 253.5027 250.6759 248.8204 248.9288 248.0933 247.2633 247.7687 246.5927 246.2845 246.0077 246.0984 245.3369 246.2622 246.2114 246.1152 245.9999 247.4582 248.5107 249.2266 250.0286 249.7463 249.8467 250.6865 251.4631 252.5819 255.214 255.1913 251.0095 249.1615 251.1111 253.951 257.3824 259.313 261.5254 265.8727 266.938 268.0465 269.7639 271.3698 272.8891 273.7922 274.2341 274.8277 277.2903 277.8091 278.1051 278.2162 278.8683 279.4077 279.3625 278.6385 278.3034 277.298 276.1089 275.1645 274.6873 273.8677 271.2209 268.5648 266.6844 263.5016 257.5054 255.4812 259.2342 262.1621 262.7357 263.8221 265.2924 266.6269 267.4439 267.3153 267.202 268.0069 268.4018 268.7106 269.1237 269.0683 268.9546 268.155 265.4951 264.5844 264.3032 264.2 263.816 263.1992 262.5866 261.3256 260.3223 259.8645 259.2992 257.912 256.887 255.8452 255.2074 253.9339 252.665 251.5067 249.1598 248.6467 247.2923 244.9402 243.8968 245.2921 246.2942 247.4821 247.0463 244.535 239.6817 240.6817 242.3506 243.6746 243.7932 243.399 243.9352 242.7393 241.3292 240.1519 239.4354 236.3442 239.1541 240.9552 244.6862 247.6243 251.6371 254.6042 254.9494 255.0653 253.6396 252.498 251.9402 251.6649 251.0208 250.7142 249.8954 247.3084 247.4308 247.9217 248.7732 249.394 249.916 251.2609 252.4546 253.8873 256.0835 257.5068 259.4093 261.7267 263.6407 264.4706 266.0511 268.0319 270.1648 273.325 273.0179 271.1974 269.3872 267.6491 264.7501 262.3666 260.0969 257.7845 252.114 250.0828 251.937 254.1899 255.9218 257.8922 259.7172 261.4681 262.6808 265.2681 265.4867 264.4294 265.3862 266.7733 267.9239 268.5142 269.8961 270.1486 271.0923 270.9667 271.6621 272.7544 274.3249 275.8904 277.5915 278.3487 279.2164 280.1391 278.9275 276.4163 271.9834 267.727 270.4544 274.3365 276.6013 276.4822 273.0764 272.6495 276.0145 278.7316 281.2637 282.2451 283.2277 281.4875 279.6694 277.8533 275.9256 273.493 270.721 268.3272 266.7286 266.8453 268.6417 269.5152 -9999 -9999 +-9999 -9999 343.4741 342.2073 339.0045 338.1659 336.8253 334.6573 332.8036 331.168 328.9866 328.1743 331.1331 333.0091 336.8669 341.7626 344.3274 348.3825 351.254 353.5166 353.173 352.7751 352.2548 351.895 351.2659 350.479 350.3924 348.7884 348.1618 347.3732 350.0834 352.7504 355.0781 356.4552 356.2779 354.025 350.9763 348.0965 343.8212 347.07 345.8665 346.3941 351.1889 355.0474 357.5496 357.3919 357.1725 356.1938 354.1396 352.6519 352.9196 353.6963 353.3294 352.6592 352.0829 351.4161 351.9787 351.3798 352.581 353.9804 354.6249 353.7505 352.5525 351.2919 349.8434 348.8162 346.6216 347.6472 348.2947 349.2104 349.1455 348.8535 348.4391 347.5032 346.7288 347.06 347.5116 347.2992 347.2261 348.2841 349.6663 350.3906 351.3775 352.5977 355.1222 356.1164 357.3696 358.6886 360.7101 362.8173 364.9758 366.4072 366.3915 361.2294 359.3808 358.3727 357.5238 356.4875 355.7092 355.4866 353.6498 349.1587 351.2117 353.2434 354.4493 357.1581 360.0368 361.4211 362.3433 363.9126 364.0697 362.8205 363.0255 362.5322 359.9023 361.0202 363.8951 363.972 361.6466 361.9254 355.7047 355.5087 358.2705 357.4692 352.0755 354.9806 360.7942 364.7655 368.1628 368.7519 366.0604 362.6096 360.8761 360.6227 361.6834 360.4519 359.9903 358.0258 351.0746 348.5991 346.746 343.5213 340.6392 337.7596 336.0735 334.3049 331.0171 330.6926 329.6098 328.5067 327.4529 325.2905 323.7007 321.9504 320.1814 317.8749 318.2274 315.9987 315.9118 315.1639 314.0482 312.7189 310.2151 306.8408 304.0916 309.3375 304.2506 303.4947 301.4973 298.4325 296.1547 293.9806 292.0658 291.4571 290.9251 290.3689 290.9977 293.0742 294.6956 294.0423 298.3933 301.3006 301.4319 302.7092 303.9672 303.6153 302.4518 303.9971 303.6358 304.8508 304.3414 303.0066 301.2962 299.4159 301.206 303.4993 302.1497 299.2334 294.751 292.904 296.0963 294.9031 289.4017 289.9 293.5809 297.1437 299.8441 299.9432 297.1726 294.021 291.4363 287.1848 286.9442 284.1873 284.9619 289.0581 291.9181 292.3474 294.1887 294.5119 298.783 298.4171 295.877 294.2545 291.7562 289.1642 286.1731 284.1416 284.1893 286.6519 289.3282 292.7443 294.986 296.9651 299.3325 301.7484 303.2576 301.6212 293.2048 288.3883 285.0561 283.11 284.7129 288.6591 292.3759 293.2195 291.9921 288.3611 287.3721 286.3811 284.3283 283.1568 283.986 283.9787 282.7938 281.2237 276.671 272.709 268.4132 265.1548 259.7744 259.8627 262.549 264.0215 265.0107 266.3687 263.9579 263.4018 266.1998 269.3407 270.2985 271.2556 270.5097 269.0635 268.6905 262.6352 261.4319 259.8657 257.6177 256.6231 256.6519 257.8006 258.8499 260.5717 259.1982 256.8347 253.5495 251.915 250.018 249.5134 248.9498 249.0564 248.9902 249.3733 247.0244 245.9757 245.9058 246.0528 245.8599 246.5443 245.8531 245.7233 249.4088 251.3662 249.3981 248.591 248.9715 250.5767 251.0657 252.1988 252.9021 253.706 250.2469 248.4881 250.5264 252.0007 254.8938 258.0676 260.1597 262.8822 267.0249 267.6842 269.1354 270.7607 272.5866 274.0089 275.5038 276.5286 277.1563 278.9336 279.3617 279.291 279.1789 279.7942 279.9699 279.463 278.7387 278.0483 277.3094 276.8541 276.0752 275.1386 273.4023 270.5208 268.3378 266.8726 264.7584 258.4051 255.9295 257.9225 260.6132 261.8103 262.7951 264.3412 265.4845 266.1086 265.8836 266.1188 267.05 267.6745 267.815 268.0027 267.8953 267.5772 266.9908 265.0687 264.3201 263.9435 263.6065 263.3112 262.9015 262.2528 261.0326 260.3345 260.7921 260.6087 259.9874 259.6154 259.2158 259.1011 258.4431 257.5257 256.2038 253.8206 252.284 250.4083 248.369 247.2403 245.8941 243.8346 242.1538 241.7896 241.2653 240.03 239.6277 240.0375 242.476 243.4634 241.9659 242.259 240.9626 239.9741 239.9856 236.631 237.2307 240.7129 245.4264 248.2106 251.8793 255.9946 258.1022 256.6871 256.3733 255.4713 255.2635 254.5358 253.9749 252.9202 252.6535 251.7579 249.6492 248.2435 247.5898 248.068 249.0003 250.6075 251.4073 252.0019 253.2086 256.3136 258.2693 259.2898 260.9015 262.4953 263.3699 265.1284 267.4684 269.2782 272.6074 273.2736 272.364 271.3036 269.0691 266.8765 264.9531 262.6749 261.0849 256.7662 253.158 251.2651 252.5374 253.6365 255.0531 256.9112 259.0299 260.6566 263.1156 263.2365 264.2079 265.5662 266.1636 266.8382 267.6735 266.9115 269.082 269.0266 269.5692 271.1 272.687 274.432 276.5088 278.5734 279.9336 280.1791 280.4287 278.78 275.8491 271.5262 271.7963 275.1895 278.3596 280.0473 279.8553 276.2649 276.607 275.9114 277.937 280.8099 283.1122 284.0428 281.4268 280.539 278.1364 275.4845 272.7571 270.029 268.2274 268.1297 268.7325 269.5971 271.1182 -9999 -9999 +-9999 -9999 340.7704 340.3152 338.9212 337.9963 336.5668 335.7193 333.9161 331.7414 328.4696 326.7646 328.0751 329.9475 335.5835 340.6153 345.1088 348.7725 351.2859 352.7741 348.7585 346.8527 346.9397 347.3957 347.4277 346.2381 347.116 346.0738 345.3153 345.0708 347.929 350.6837 353.2634 354.9068 355.0007 352.6954 350.2981 348.1744 339.9675 340.6648 343.7768 348.266 352.2687 355.1943 356.7543 355.8911 355.084 354.1227 352.0984 350.8421 350.8968 352.2029 351.5956 350.3101 349.0017 348.7923 349.7948 349.7562 352.2157 353.7363 353.7475 352.8033 351.0145 350.0838 348.0973 347.6235 344.603 345.1216 345.8149 346.7203 346.9914 347.0103 346.7529 345.724 344.5883 345.0767 345.5991 346.0736 346.6882 347.4844 348.3805 349.3586 350.2457 351.6124 353.8421 354.8928 356.3517 357.2903 358.9756 361.041 363.0239 364.5194 365.7036 362.9989 361.6585 360.5729 359.5405 358.2176 357.544 356.9177 356.0216 353.2162 354.5658 356.5356 356.5987 358.049 359.9239 361.4978 363.9516 364.9057 365.9252 365.5661 365.0971 365.3241 363.8599 365.1528 365.915 366.6378 366.0894 364.6737 356.604 358.3392 360.4234 358.3423 355.1511 359.0392 361.7089 362.1024 365.3461 371.0557 369.9214 366.7325 365.1709 364.1136 359.9228 359.3184 359.9903 358.0258 351.0746 348.5991 346.746 343.5213 340.6392 337.7596 336.0735 334.3049 331.0171 330.6926 329.6098 328.5067 327.4529 325.2905 323.7007 321.9504 320.1814 317.8749 317.6949 315.9987 315.9118 315.1639 314.0482 312.7189 310.2151 306.8408 304.0916 306.288 302.606 299.1472 295.5808 293.8157 293.5052 293.1609 292.3697 291.8799 292.9731 298.6114 298.4199 298.3604 298.2441 296.5131 300.3518 303.4063 304.09 303.5618 305.6828 305.3275 304.7423 305.4735 306.1475 306.0724 305.6026 303.3983 303.1899 301.3875 303.0651 304.6508 303.4193 300.614 296.4147 295.6656 298.8139 297.5838 292.0808 290.8055 293.4559 296.7812 299.28 299.9872 297.8564 295.3609 293.3738 291.6759 290.3634 287.2064 285.0623 287.5098 291.9432 293.8477 295.987 297.6854 299.9769 300.2268 298.1899 294.7932 291.7309 289.0627 286.5842 285.7375 284.8138 286.2281 289.3376 291.8575 294.2081 296.1115 298.8484 301.3594 303.7671 304.2987 296.2838 289.828 286.8427 285.8665 286.4521 288.9504 293.1636 294.5555 293.9056 289.2892 288.1253 285.4944 283.357 282.1041 281.1397 280.1476 278.8036 276.5521 270.0591 266.183 262.5373 259.8516 261.2167 264.9137 264.6089 267.1413 268.5876 268.3095 267.5972 263.995 265.497 269.5254 271.4406 272.5287 270.8142 271.1882 266.8966 264.1402 262.6614 260.608 258.2071 259.0338 258.3916 258.9402 259.8082 260.8821 259.2299 253.6918 252.7522 252.7849 251.5355 250.8838 249.9163 250.8017 250.7484 252.4017 251.0456 246.5511 245.6778 245.6729 245.7807 246.0611 246.042 246.0912 247.5299 249.1438 247.9749 246.8639 248.9628 250.429 251.0891 251.5504 252.3867 249.3324 247.6166 249.9397 251.522 253.9394 256.7095 258.8428 261.4549 264.4369 268.9102 269.9048 270.7829 271.9585 273.39 275.3732 276.7233 277.8281 278.4844 279.2072 279.0833 279.0897 279.5455 279.8138 279.827 279.5727 278.4962 277.9873 277.0797 276.9087 275.7167 274.6828 272.8503 270.3375 268.5428 266.9358 265.4135 258.9461 256.3445 256.1024 258.6117 260.6493 261.8412 262.9171 263.8088 264.2881 264.3505 265.2891 266.2372 266.6314 266.7926 266.5673 266.354 265.8668 265.3473 264.3455 264.0529 263.5893 262.9732 262.7648 262.0184 261.3551 260.6895 260.8978 261.9144 262.3478 262.252 262.1745 262.2888 262.1136 261.9812 261.3976 259.7178 256.6188 254.1201 253.407 251.9939 250.4337 249.0625 247.9479 246.8404 245.2246 242.1858 240.6561 239.784 239.4171 240.5993 242.2829 241.1677 240.4379 239.6679 239.8785 238.8111 236.3572 239.834 244.591 248.3312 251.7751 255.2053 258.5336 258.0272 257.2184 256.732 256.3451 256.2968 256.2402 255.9554 255.4623 254.4671 253.3396 251.2673 249.8022 248.9211 248.4334 248.9102 250.6445 251.569 251.6398 252.1142 254.9866 257.0321 259.8692 260.6092 261.6619 263.833 266.4331 268.431 270.2073 272.8739 273.3223 273.5735 272.7591 271.15 269.4713 267.8474 265.5589 262.6664 258.9287 257.319 254.9126 252.5751 252.3045 253.5933 254.7059 256.8804 258.795 261.0589 263.1794 263.8426 264.035 264.1787 265.4215 266.2091 265.7794 267.325 267.205 268.3891 270.1962 272.1314 274.165 276.3928 279.208 281.2696 281.2887 280.4056 278.7341 275.4683 273.4005 275.369 278.6185 281.0368 282.5294 282.6221 279.9847 279.9266 278.4706 280.0104 282.1393 283.2696 283.2617 281.7971 279.5604 276.8949 275.1027 272.2874 269.7924 269.2438 269.7675 270.3265 271.355 272.4816 -9999 -9999 +-9999 -9999 336.5768 337.4689 336.4198 335.7287 335.3291 334.9944 334.4503 330.9276 327.3784 324.9232 326.9356 332.3778 335.2664 339.7492 343.8365 347.8092 350.0761 350.9413 345.9279 341.8731 341.5436 342.1638 342.7723 341.8568 342.8579 342.4937 341.9486 344.0685 347.0157 349.3109 351.8354 353.4948 353.9008 351.6341 348.8413 346.7021 338.2939 342.1573 346.6267 349.4883 352.245 354.2852 354.7698 354.0101 353.017 351.9125 349.1391 348.6511 349.5788 350.2099 349.7341 347.685 345.9407 345.7061 347.3473 349.3477 351.8714 352.9005 352.7428 351.4246 349.6842 348.5774 347.4292 345.7072 343.4019 342.5104 343.4248 344.1761 344.8933 345.2317 345.1227 344.2976 342.6349 343.1305 343.8626 344.3829 344.7743 345.8974 347.0692 347.9713 348.765 349.7267 352.1916 353.4538 355.011 356.59 358.2354 359.5754 361.0486 362.2575 363.741 364.7737 363.1778 361.9094 360.7896 359.878 359.363 358.6862 358.2279 357.0941 357.2693 358.7575 359.5469 360.516 360.52 362.2514 363.9516 364.9057 365.9252 365.5661 365.0971 365.3241 363.8599 365.1528 365.915 366.6378 366.0894 364.6737 356.604 358.3392 360.4234 358.3423 355.1511 359.0392 361.7089 362.1024 365.3461 371.0557 369.9214 366.7325 365.1709 364.1136 359.9228 359.3184 359.3977 358.2318 349.0055 346.7134 345.4814 343.432 340.5721 336.7327 333.5807 331.3087 328.8618 329.3463 326.2343 325.2301 324.7171 323.8096 322.2196 320.8477 319.7222 317.2061 315.1322 313.3518 314.3007 313.7783 312.6543 310.3638 309.5279 307.4129 303.7986 303.4397 298.9823 295.682 294.2673 293.9839 293.6751 293.3458 294.469 295.1711 298.0165 302.3144 303.9869 303.2679 302.2892 299.0897 302.1926 305.3656 306.5947 306.2637 306.9443 307.3824 307.3924 306.94 308.0405 307.6132 306.5148 304.3808 305.2015 303.8716 304.3403 305.129 304.3186 302.4579 299.0607 297.3709 299.8015 300.2013 295.977 294.236 294.0765 296.4242 298.9199 299.8184 298.8755 297.2289 295.35 294.9754 293.9301 291.288 287.0848 286.2523 289.2626 291.7052 295.9949 298.1121 299.8109 299.7067 297.9179 294.317 291.1789 288.9978 288.0449 287.6801 286.2439 286.7362 289.1615 291.3451 294.4382 295.7446 297.5706 299.4781 302.2344 305.5706 299.9813 293.0896 290.9219 291.33 290.862 291.3254 294.6942 295.771 294.4397 289.5862 287.9484 284.0658 280.4097 278.1026 276.9146 275.7025 273.9108 271.2456 266.1779 267.9318 269.287 268.3714 268.7843 269.6519 269.841 267.9252 271.0254 270.4347 269.3425 264.8432 266.8195 272.1653 272.7351 273.1289 272.6924 271.6599 268.0682 265.5949 263.2344 261.2186 260.5419 260.7754 260.0137 260.2129 261.292 261.6245 259.6382 258.5504 256.4835 254.7007 252.6084 251.3636 250.5967 251.4633 252.1371 254.6524 255.1987 251.5724 246.4085 245.6095 245.8902 245.7383 246.0651 245.7817 245.6966 245.4866 245.5242 245.5255 245.6913 248.662 250.2793 249.8842 248.6978 247.1981 249.4064 251.2614 253.6826 255.4472 257.183 259.3141 261.93 264.3375 268.6607 270.1958 271.3705 272.848 274.088 275.9388 277.2112 277.6923 277.4764 277.9413 277.7564 278.3788 279.0648 279.1989 278.9487 278.5635 277.9017 277.4085 275.9242 275.5597 274.7249 273.4887 271.6365 270.0159 268.6246 267.1145 265.1744 260.3511 257.7751 253.7861 257.0503 259.3278 260.4434 261.767 262.6264 262.5342 263.4769 264.6253 265.1522 265.2289 265.0358 264.9533 264.9159 264.7378 264.3064 263.5995 263.6004 263.2157 262.6127 262.2812 261.7593 261.1977 261.1829 261.7979 262.9539 263.3006 264.2956 264.7633 265.5818 265.174 264.9524 264.5524 262.7209 259.2079 254.6578 255.5109 254.7451 252.315 250.7518 249.5775 248.3076 247.6225 245.718 243.8442 241.9635 240.0633 238.7588 239.335 239.4946 239.7458 239.8744 240.4254 236.3383 239.3638 242.277 246.4754 250.7086 253.9657 256.3074 257.357 257.0378 255.8687 255.425 255.56 256.3503 256.9964 257.1767 256.9304 256.3595 254.7574 252.5557 251.8343 250.7437 250.4559 250.8648 250.9247 250.9819 251.1619 251.7494 253.9565 255.6658 256.9794 260.193 263.33 263.7629 266.4937 269.1062 271.1298 273.2874 273.9311 274.1862 273.9483 272.9467 271.6531 270.2059 268.1267 265.0948 261.6896 260.5156 259.1817 257.8356 254.2849 251.8121 253.8269 255.7854 257.5547 260.3635 261.1333 261.36 261.4023 261.8023 262.7275 266.2091 265.7794 267.325 267.205 268.3891 270.1962 272.1314 274.165 276.3928 279.208 281.2696 281.2887 280.4056 278.7341 275.4683 273.4005 275.369 278.6185 281.0368 282.5294 282.6221 279.9847 279.9266 278.4706 280.0104 282.1393 283.2696 283.2617 281.7971 279.5604 276.8949 275.1027 272.2874 269.7924 269.2438 269.7675 270.3265 271.355 272.4816 -9999 -9999 +-9999 -9999 334.5023 334.3864 334.2874 332.3535 331.8695 332.371 332.95 331.0182 327.0925 324.1026 328.0371 333.038 336.2198 338.6494 342.1358 345.1268 347.0991 347.9169 343.8222 339.7619 337.5148 337.9801 338.1618 338.0551 338.4192 338.8198 340.6326 345.7079 347.7839 349.3268 350.7716 351.7428 352.4051 350.6203 347.7729 345.1164 338.556 344.6643 348.5092 351.7541 353.6173 353.9031 352.7094 352.7574 352.0646 347.4304 347.3939 347.889 348.5048 349.1055 348.2004 345.3101 342.7604 343.2744 344.0958 348.3025 350.008 351.3522 351.525 350.3076 348.6906 346.3185 345.3976 343.9224 342.2621 340.3735 340.837 341.782 342.9518 343.3836 343.6964 343.2589 341.2599 340.7583 342.0076 342.5528 342.8436 344.4853 347.0692 347.9713 348.765 349.7267 352.1916 353.4538 355.011 356.59 358.2354 359.5754 361.0486 362.2575 363.741 364.7737 363.1778 361.9094 360.7896 359.878 359.363 358.6862 358.2279 357.0941 357.2693 358.7575 359.5469 360.516 360.52 362.2514 364.4111 365.9911 367.3914 367.8578 367.4745 367.4437 366.1356 367.3086 368.2936 368.0463 367.0976 364.7161 360.9466 361.571 361.6616 360.758 358.3524 362.3848 365.6119 366.7834 370.54 373.6094 372.2744 369.6514 366.8623 362.2169 357.7394 353.1363 354.9193 354.6242 347.3545 343.5757 342.1106 342.9749 339.5232 335.873 333.4719 330.9476 328.0716 328.26 326.4789 322.9279 322.4293 321.0959 319.8669 318.9876 318.6775 317.3517 312.1978 311.5097 312.5197 311.7944 310.8732 307.1809 304.6968 303.4484 303.4512 303.4387 304.1968 298.5986 294.6602 295.0833 296.2716 296.9976 298.1991 300.7769 301.882 305.4516 307.3948 307.1547 305.4986 302.2728 302.92 307.2251 309.3429 309.2173 308.3371 309.5135 309.7512 309.0129 309.9713 309.6785 307.9953 306.3132 307.0327 305.7797 305.1768 305.1381 304.4619 302.8712 301.1389 300.0183 300.3661 301.0142 298.4126 297.1367 295.4968 296.7061 298.9599 299.6179 299.0757 297.8461 296.4689 295.5813 295.5555 293.9522 289.5716 286.92 287.0257 290.8763 295.1095 297.2928 297.9804 298.0402 297.2692 294.388 291.2022 290.0105 289.7963 288.7742 288.8029 287.2943 289.6985 291.7285 293.2793 294.8202 296.9209 299.1313 302.1274 305.3525 302.6813 301.1891 298.9199 296.4641 295.7721 295.3617 295.8963 296.4764 294.341 289.7129 288.0339 284.5654 280.781 276.3739 272.1575 272.7534 269.968 271.6544 274.1259 276.7236 276.6538 276.5676 278.2979 275.2682 272.9802 270.2954 272.6265 273.5356 270.3786 266.2069 267.3265 272.2693 274.2429 273.7823 273.1896 271.5293 266.3259 263.9083 262.6552 261.992 262.5067 262.1283 261.4073 261.1671 261.7047 261.3194 260.6432 259.8422 258.9174 256.5022 253.8667 252.3087 250.5941 252.2838 253.3114 255.6308 257.63 254.6044 246.6987 245.6777 245.6542 245.6184 245.609 245.8199 246.3249 246.0024 245.6516 245.3682 245.358 245.8909 248.239 246.7975 246.7122 249.1112 250.9202 252.4859 254.4153 256.2343 257.6436 259.3589 261.7252 263.7946 268.0392 269.1593 270.449 271.9614 273.8379 275.1854 276.1852 274.7212 274.0733 275.8727 276.4251 277.1237 277.7175 277.7361 277.5567 277.6068 277.3964 276.1226 275.1142 273.8015 272.7601 271.4203 269.7032 268.4443 267.1614 266.0932 264.6544 262.0236 259.8496 256.5688 254.9562 257.3286 258.7862 260.5225 261.0672 261.2343 262.8743 263.4026 263.6409 263.6872 263.4342 263.1697 263.4179 263.2555 263.0217 262.5074 262.3829 262.9402 262.2337 261.7314 261.5652 261.4438 261.921 262.9227 264.964 265.5545 266.122 267.0425 268.4364 268.865 268.6163 267.6573 265.5904 260.022 255.7982 257.7633 255.9587 254.4569 252.1603 251.0825 250.1842 249.5537 246.6163 245.6636 244.8252 243.6381 240.6186 238.5391 239.5985 239.9221 240.9718 239.8365 238.968 240.6057 243.8625 247.7824 251.1827 253.2918 254.8347 254.4181 254.2898 253.1677 253.5799 254.5278 255.2093 256.2017 256.9516 257.7436 257.4922 256.5795 255.0352 254.3929 253.7858 250.4559 250.8648 250.9247 250.9819 251.1619 251.7494 253.9565 255.6658 256.9794 260.193 263.33 263.7629 266.4937 269.1062 271.1298 273.2874 273.9311 274.1862 273.9483 272.9467 271.6531 270.2059 268.1267 265.0948 261.6896 260.5156 259.1817 257.8356 254.2849 251.8121 253.8269 255.7854 257.5547 260.3635 261.1333 261.36 261.4023 261.8023 262.7275 263.0652 263.4454 264.2177 265.1124 267.4388 269.402 272.1507 274.2643 276.8423 279.6372 281.8882 282.9135 281.3645 279.2904 276.3855 277.5026 278.5493 279.717 281.4189 283.0442 284.3115 282.8415 282.4405 280.5472 281.9864 283.2966 283.533 282.4782 280.5249 278.8946 275.5302 273.9192 271.7329 270.4136 271.0812 272.1346 272.5022 272.6564 273.1969 -9999 -9999 +-9999 -9999 331.794 331.5819 329.8354 327.537 327.7851 329.3692 330.1934 330.1303 327.8608 323.3582 327.3159 332.5264 334.6167 336.7628 339.7639 342.0777 343.7731 344.2715 340.7228 337.8275 334.9879 333.9546 331.9812 334.9768 339.992 343.3151 344.1849 346.8123 347.295 347.9803 348.8581 349.8491 350.7601 348.9691 346.7252 343.5414 338.2483 345.1629 349.4387 351.5636 352.8465 352.3483 351.006 350.9635 351.1783 345.7949 344.8569 346.7326 347.4959 348.3682 347.5625 345.3101 342.7604 343.2744 344.0958 348.3025 350.008 351.3522 351.525 350.3076 348.6906 346.3185 345.3976 343.9224 342.2621 340.3735 340.837 341.782 342.9518 343.3836 343.6964 343.2589 341.2599 340.7583 342.0076 342.5528 342.8436 344.4853 345.5237 346.1372 346.7548 348.0678 351.5792 353.1955 354.7021 356.174 356.8435 357.9423 358.9248 360.514 362.0844 363.662 363.027 362.3003 361.4645 360.9236 360.4597 360.0449 359.7882 359.4056 359.849 360.565 361.7361 361.6486 362.9648 363.0323 365.0946 367.139 368.7006 369.3944 369.8956 370.4971 369.6161 370.2561 370.8282 370.0319 368.6359 367.2494 362.9776 364.5352 364.0161 363.3376 360.0818 364.8697 368.8474 370.9494 372.9741 374.7486 375.6012 373.2946 369.5748 364.4655 359.146 354.4417 350.1441 344.8549 343.3762 340.7565 337.8568 340.0382 337.5793 333.6964 331.7191 330.0044 328.3759 320.5262 323.7336 320.9871 318.8631 318.123 317.5526 315.3987 316.6463 315.7543 310.0583 308.5659 310.1099 309.0688 307.8606 303.7939 303.4643 303.4591 303.4537 303.4426 303.438 304.3345 299.0525 299.9232 300.0341 301.4263 300.7067 303.0016 304.9019 307.3148 309.0052 309.4883 307.8043 305.189 303.5146 307.4399 310.0783 310.5516 309.8259 310.4053 310.5082 310.4461 310.3893 310.0633 309.095 307.6366 307.2256 305.7314 304.7304 304.5388 303.3516 302.8614 301.5003 300.9175 300.0081 299.7834 298.1195 297.4977 296.5739 296.7476 297.845 298.8837 298.8083 297.523 296.15 294.2426 295.0175 294.8622 291.2189 288.5262 287.4766 288.9633 292.6356 294.569 295.1265 296.1703 297.0182 295.6755 292.5228 291.6014 292.057 291.6957 290.4714 288.1784 289.7599 291.427 292.9794 295.0207 296.5374 298.9352 301.5653 304.6091 306.6407 304.4471 301.1115 298.6359 297.7299 297.974 297.7343 297.3061 295.7859 290.5449 288.6254 285.7999 282.9121 279.1971 276.4512 277.0274 278.1405 278.2822 278.0076 280.7299 282.0676 281.9973 283.0765 279.923 276.3068 274.6993 274.1851 276.1169 272.6449 268.2042 268.656 273.2025 275.4187 275.1409 273.8351 272.1768 265.3233 263.5144 262.9317 263.633 264.1105 263.6612 262.649 261.8929 261.8858 262.7766 261.738 261.3188 259.8162 258.2005 256.7461 253.5666 252.1991 252.8527 253.9436 255.4883 257.2602 257.5729 250.8093 246.9729 246.0753 246.2222 245.8499 245.8095 245.7357 245.4176 245.5973 245.4464 245.4082 245.5121 245.7109 246.2178 247.2018 251.2285 252.3577 253.2969 255.0201 256.7888 258.1866 260.182 261.959 263.8376 266.7323 267.6971 269.381 270.6942 272.0379 273.9633 273.4905 270.7056 270.21 274.0567 275.3065 276.0782 276.1833 276.051 276.3393 277.2263 277.3124 275.8409 273.4511 273.0893 271.62 270.3215 269.0039 268.0454 267.0983 266.1684 265.203 262.7892 260.5499 258.2917 253.9953 254.8673 257.3427 259.0377 260.6552 260.8217 261.7891 262.2595 262.4388 262.3968 262.2491 262.0562 262.1104 261.9449 261.7333 261.5576 261.6309 261.9647 262.0732 261.3337 261.2129 261.7616 262.7738 264.0712 266.1771 267.0438 267.7861 268.8503 269.7768 270.8619 270.8295 269.4479 267.579 263.9469 261.6676 260.0044 255.9587 254.4569 252.1603 251.0825 250.1842 249.5537 246.6163 245.6636 244.8252 243.6381 240.6186 238.5391 239.5985 239.9221 240.9718 236.3231 238.968 240.6057 243.8625 247.7824 251.1827 253.2918 254.8347 254.4181 254.2898 253.1677 253.5799 254.5278 255.2093 256.2017 256.9516 257.7436 257.4922 256.5795 255.0352 254.3929 253.7858 253.8899 253.79 253.1911 252.6496 251.5423 251.7032 254.7206 256.1789 258.4864 260.3073 261.7806 264.6679 266.3342 268.5013 270.8099 273.2167 273.6751 274.0586 274.0418 273.9671 273.3613 271.2594 269.0001 266.6241 263.7496 262.3871 261.4905 260.5539 259.6019 257.5818 256.1031 255.2885 253.8408 256.4782 257.0776 256.4192 256.5975 258.2966 258.7447 258.1423 259.5526 261.6234 264.8326 266.2024 269.4781 272.5001 275.2776 277.6981 280.0505 282.2249 283.7634 282.6549 280.4077 279.1423 280.4476 281.1468 282.5018 282.7989 283.6628 285.0438 284.4026 283.5447 282.9805 283.1764 284.1248 283.8458 282.1469 281.2693 279.8247 276.4979 274.417 272.6559 272.161 273.1466 274.6295 275.1707 275.2817 275.4956 -9999 -9999 +-9999 -9999 328.5934 327.3059 327.3194 326.4676 325.089 325.3336 325.9318 326.9366 327.4878 324.4977 324.8014 329.2734 331.9998 334.6702 337.3808 339.2583 340.3367 340.5297 337.4023 335.6775 333.8879 330.6009 334.0246 338.8634 339.992 343.3151 344.1849 346.8123 347.295 347.9803 348.8581 349.8491 350.7601 348.9691 346.7252 343.5414 338.2483 345.1629 349.4387 351.5636 352.8465 352.3483 351.006 350.9635 351.1783 345.7949 344.8569 346.7326 347.4959 348.3682 347.5625 344.6838 341.1066 340.7696 343.6862 346.2103 348.0507 348.8629 349.7087 349.0355 347.3088 345.1159 342.9795 342.3 341.0586 339.1994 339.0438 339.818 341.1509 342.012 342.9054 342.7712 340.3156 338.3721 339.9871 340.3773 341.7548 343.2279 343.5446 344.7212 346.3517 348.1581 351.0067 352.3969 353.5113 354.1989 355.5752 356.1906 357.324 358.0836 359.5607 362.4708 362.4431 361.4732 360.5663 360.1398 360.1341 360.3538 360.6294 360.7222 360.9624 361.4732 361.8952 363.966 364.9219 365.7542 366.5726 367.7958 369.3187 371.1355 371.5493 371.746 371.6445 371.3933 372.0455 372.0493 370.8747 368.1736 366.9196 368.0067 365.8419 364.8127 363.7103 365.2923 369.7254 371.7769 373.5149 376.345 376.2112 373.3994 367.7877 362.4815 358.5438 354.8413 352.3542 349.0244 340.8874 336.0848 334.5111 337.2399 334.5375 331.0592 328.0452 327.3546 325.2139 320.0853 318.6486 318.2749 315.6646 314.4957 313.9244 311.9957 312.0427 310.6794 309.8878 307.3789 305.769 305.795 303.4607 303.4736 303.4684 303.4625 303.4572 303.4461 303.4405 303.4262 305.3559 304.9323 303.3688 303.9653 303.3713 304.9599 308.0146 309.0262 310.3223 311.0439 310.1042 308.6974 307.3701 308.5471 310.6426 310.9668 310.774 310.5681 311.2522 310.8667 310.0432 309.1501 308.3792 307.6036 306.9778 305.293 304.5715 304.3481 303.2258 302.2697 300.6214 299.4341 298.7343 298.0164 296.6568 295.8771 295.2572 294.7292 296.0143 297.28 298.173 297.2324 295.1054 293.3352 293.9293 294.9265 292.9402 290.4796 289.0196 288.9048 289.1745 290.4822 292.883 294.2651 296.1802 296.0602 294.4052 293.3276 293.8252 293.2173 292.1682 290.2729 290.1516 291.1173 293.03 293.9287 296.9232 298.3513 300.7225 303.9976 307.1394 306.0151 303.4677 301.232 300.2727 299.339 298.9898 297.7783 295.6407 291.2427 289.0207 287.1898 284.6018 282.09 280.2155 279.4914 281.9413 282.3636 281.4611 282.9954 284.9795 285.4716 285.7721 283.3032 279.9581 278.7896 276.4416 276.8434 272.6398 268.7707 269.2126 273.4793 276.5102 276.1795 275.1742 273.2327 267.3676 264.9597 265.1145 266.3235 265.6923 265.1707 263.9987 263.3625 262.7463 264.357 263.2923 262.3332 260.4528 259.2285 257.7376 254.5902 253.3217 253.4451 254.4081 255.7594 257.4254 259.26 257.399 253.8026 253.2615 253.3159 253.0146 252.4249 253.7773 246.1884 246.0474 245.4842 245.5204 245.5515 245.8693 246.0127 248.0108 251.8879 253.1483 253.9918 255.1599 257.0064 258.5941 260.2937 261.3428 262.916 264.4997 265.3883 267.1825 268.6593 270.6073 271.0591 269.3455 267.3373 268.4066 273.2531 273.9131 274.3657 274.6664 275.0548 276.2849 277.5441 277.3843 276.4514 272.8702 272.1989 271.1596 270.4138 269.8637 268.6264 267.5784 266.5649 265.5018 262.1233 260.1378 258.0545 253.9953 254.8673 257.3427 259.0377 260.6552 260.8217 261.7891 262.2595 262.4388 262.3968 262.2491 262.0562 262.1104 261.9449 261.7333 261.5576 261.6309 261.9647 262.0732 261.3337 261.2129 261.7616 262.7738 264.0712 266.1771 267.0438 267.7861 268.8503 269.7768 270.8619 270.8295 269.4479 267.579 263.9469 261.6676 260.0044 257.6749 255.61 254.147 252.3171 251.5824 250.5692 248.2609 247.9863 246.8592 245.0376 242.1713 238.0322 239.0836 240.6387 240.3401 238.5188 239.9417 241.0782 244.5815 247.5476 249.5889 251.2245 251.2519 249.7818 249.9054 251.3883 252.1682 253.0982 254.4171 255.6743 256.4915 257.5556 258.4549 258.472 257.0139 256.918 256.4806 256.512 256.2358 255.8434 254.4702 253.1619 252.9055 255.6281 258.4859 260.9991 262.1269 263.6259 265.4773 267.4189 268.3012 268.8258 271.6345 272.295 273.4512 274.011 274.1117 273.6905 271.6381 269.2556 267.3036 266.2622 264.7668 262.8816 262.5924 262.041 261.5276 260.6954 259.3271 261.3865 259.8051 259.5172 260.2602 260.1984 259.7984 260.8771 262.2986 263.8423 265.2228 265.8191 267.8978 271.5349 274.6346 277.1972 279.95 282.221 283.4211 284.8059 283.6256 282.5727 281.5023 282.2635 283.4419 284.4923 285.3593 285.7065 286.599 285.9425 285.405 284.3465 284.2701 284.7081 283.3754 282.224 282.5415 281.2334 278.2608 276.6103 275.823 274.8809 275.4718 276.4914 276.9324 277.1508 276.9114 -9999 -9999 +-9999 -9999 328.5934 327.3059 327.3194 326.4676 325.089 325.3336 325.9318 326.9366 327.4878 324.4977 324.8014 329.2734 331.9998 334.6702 337.3808 339.2583 340.3367 340.5297 337.4023 335.6775 333.8879 330.6009 334.0246 338.8634 342.1865 344.4525 344.7685 344.8993 345.3122 346.3023 346.5867 347.3387 348.3604 347.4782 346.0567 342.9702 336.6117 342.2785 346.3817 349.0164 350.6409 350.4411 349.5228 349.9322 349.1638 344.7428 343.1438 345.8667 346.9991 347.3282 345.0453 340.4533 337.4578 337.7898 341.5648 343.898 345.9482 347.0997 347.6838 347.4669 346.128 343.3978 340.9034 340.3412 338.806 337.0379 336.911 338.2726 339.4787 340.5331 342.0799 341.5713 339.1477 335.6676 337.4173 339.4771 340.7002 341.9572 342.7832 344.6002 346.1099 347.3671 349.8869 351.012 352.181 353.2917 354.2057 355.0512 355.2926 356.7466 358.5574 361.261 361.7214 361.0327 360.0004 359.0223 358.4722 358.8037 359.2722 359.4647 359.5487 360.6326 361.8394 363.5798 365.7067 367.0376 368.5408 369.6663 370.566 372.3629 372.8766 373.1316 373.3917 373.3483 373.6449 373.5801 372.1302 369.6481 369.2386 369.6601 368.142 367.3671 366.3117 367.2559 370.6003 371.0641 372.0547 374.5043 373.6863 371.032 364.8264 358.5179 354.7943 352.1013 350.7223 349.9012 340.2164 335.766 331.4956 329.8809 329.6334 327.1098 324.2946 323.1096 322.0023 318.6297 315.7901 314.4193 312.6651 311.0029 309.5563 307.959 306.8654 305.7365 305.7062 304.6524 303.5333 303.4883 303.4818 303.4768 303.4715 303.4663 303.4609 303.4474 304.299 305.8225 306.0543 306.745 306.2465 306.269 306.2451 306.5535 309.7119 310.8531 311.6847 312.0586 311.583 311.0887 311.1728 311.1027 310.9103 310.9011 310.8653 310.4002 309.8997 309.1873 308.4015 307.8662 307.8728 307.8235 306.9576 304.2997 302.6056 302.2561 302.1988 301.345 300.5142 298.6023 296.9149 296.0708 295.2103 294.2008 293.5111 292.8707 294.4368 296.2813 296.9854 295.8424 293.4865 291.4388 292.6551 293.6002 294.0609 292.0555 290.2157 289.6365 288.9919 288.6869 290.918 292.9961 294.4481 295.7116 295.6648 296.1273 295.8394 294.9211 293.7587 291.5537 291.0303 291.9665 293.1667 294.3381 295.7303 298.7253 300.2284 303.4105 306.1578 305.8857 304.3348 302.7274 301.1725 299.9753 299.3776 298.2229 296.5429 291.9301 289.8494 288.2945 286.4143 284.5739 282.8145 282.0262 283.5803 285.1209 285.1797 285.7914 286.953 287.6446 287.6136 286.0603 284.2316 280.6366 278.779 275.6574 271.975 269.2089 270.5574 275.0672 277.5173 277.5963 276.4304 274.0991 268.7797 267.2733 267.4828 268.1321 267.4972 266.6337 265.6254 264.4342 263.65 264.8542 264.3669 263.4412 261.8477 260.2553 257.8914 255.3251 254.2637 254.6319 255.9353 256.505 257.8365 260.2817 258.571 257.2801 258.0393 257.3014 258.2837 259.4297 257.2044 247.1846 245.8036 245.129 245.744 245.5241 245.5041 245.4997 246.1189 251.5316 252.8143 253.9746 255.0832 257.0064 258.5941 260.2937 261.3428 262.916 264.4997 265.3883 267.1825 268.6593 270.6073 271.0591 269.3455 267.3373 268.4066 273.2531 273.9131 274.3657 274.6664 275.0548 276.2849 277.5441 277.3843 276.4514 272.8702 272.1989 271.1596 270.4138 269.8637 268.6264 267.5784 266.5649 265.5018 262.1233 260.1378 258.0545 254.9194 252.5735 256.8155 258.4213 259.8638 260.3531 260.6059 261.2682 261.2612 260.9445 260.9098 260.3268 260.2712 260.1538 260.0647 260.4237 260.5777 261.0729 261.7254 260.9897 261.1264 262.0555 263.3172 264.7803 267.4371 268.6305 269.5026 270.7838 271.5024 272.0648 272.5919 271.5428 269.9448 265.5258 264.2195 261.6944 260.6777 257.5572 255.1516 253.8751 252.4584 251.9779 250.9338 250.7592 249.2063 245.5119 240.583 238.2944 239.3275 240.6657 237.2911 237.6845 238.9385 239.8934 242.5493 245.4744 246.2486 247.2524 248.8528 249.8793 249.0752 249.6946 251.5193 252.3666 253.9065 254.9715 256.2803 257.4106 258.4528 259.1394 258.7172 258.807 258.8393 258.89 258.6646 258.1319 257.2983 255.7606 254.3972 255.0273 257.2847 261.9004 262.969 263.962 265.9361 267.2583 267.625 268.6972 270.2203 270.7229 270.7706 271.5759 271.6859 271.4816 271.1725 269.3773 268.6241 267.1463 266.293 265.4624 264.3606 264.267 264.5258 265.0617 262.6546 263.3246 266.4402 264.6422 262.845 262.5409 265.01 265.4678 267.4065 269.2137 269.5969 267.6628 269.774 273.0821 275.4495 277.9821 280.81 282.3754 283.5939 284.6894 284.259 283.575 283.2509 283.7429 284.7461 286.2229 287.4479 287.8356 288.105 287.778 286.975 285.774 285.1256 284.1721 283.534 283.7177 284.0187 283.2781 280.3595 279.1989 278.0021 277.5407 277.8374 278.5451 279.0656 279.2441 279.1466 -9999 -9999 +-9999 -9999 337.8831 337.7214 336.5567 334.0443 329.8916 327.9823 324.007 323.4671 323.7692 325.4297 321.9959 326.1021 329.7776 333.0522 334.8674 336.2276 336.7098 336.8093 334.9997 333.0301 330.1493 328.4167 334.2482 339.0612 341.7266 344.0129 343.5277 341.5834 342.8858 343.3985 344.3321 345.8562 346.3129 345.4958 344.2579 341.3417 335.1036 340.4151 344.2402 346.5503 348.2788 348.15 348.5562 348.2312 347.0742 343.0108 342.2646 345.4877 347.278 346.7119 343.1384 336.7141 334.1275 334.6655 339.7608 342.2005 344.2881 345.3856 345.2837 345.3138 344.6011 342.6434 339.8706 337.4779 335.4983 334.7108 334.6566 335.3785 336.5911 338.2161 339.6333 338.9171 336.2981 331.5421 336.0666 337.5793 339.3154 341.5006 343.0947 344.4756 345.5859 346.2343 348.3357 349.6696 350.8936 351.9548 352.6693 353.0379 354.4021 355.8756 357.3786 359.3455 360.1964 359.9195 359.008 357.8983 356.5173 357.0417 357.5829 357.7581 358.2221 359.9895 361.5989 364.0256 365.3819 366.5587 367.8085 368.8539 370.3683 372.5862 373.497 374.5028 374.9935 375.5281 375.2177 374.5649 373.595 371.5387 371.873 372.4809 371.2871 370.0735 370.5287 370.3525 370.9374 368.8458 365.224 368.496 367.4143 364.0978 359.6183 354.0322 348.9888 346.509 345.0117 345.4305 333.042 328.7492 328.2456 325.1341 324.5117 321.4993 320.0511 317.9482 315.3336 311.021 310.8467 310.8812 309.7611 307.3818 305.7416 304.3274 303.7912 303.5594 303.5087 303.5029 303.4961 303.4895 303.4854 303.4801 303.475 303.4681 303.4579 305.6829 307.377 308.6108 308.7084 308.4351 308.1308 308.318 308.3649 308.9797 311.002 311.5455 311.6711 311.5581 311.3356 311.6573 311.0511 310.9736 311.0691 310.8745 309.1698 308.936 308.3503 307.2226 306.144 305.6168 305.9994 307.028 307.0832 303.8371 301.9942 299.6657 298.921 298.9382 298.6758 297.5356 295.6203 294.364 293.4778 292.294 291.5587 290.5987 292.3069 293.5681 293.5366 292.4445 290.5834 289.2128 290.8049 292.4736 293.5172 293.5202 293.0888 292.1909 290.5678 288.4399 289.1691 290.6522 292.3527 293.1737 294.7751 295.9587 296.9229 296.9482 296.0271 293.1358 292.7021 292.7645 294.1633 294.9448 296.3291 298.001 300.5767 302.4952 304.9678 304.7016 303.4198 302.1824 300.8254 299.3002 298.2518 297.3898 296.0572 292.6546 290.9363 290.0853 288.2201 286.5455 285.0393 283.7639 283.4376 285.8482 287.8956 287.8714 288.5332 289.1022 289.4394 288.3019 285.322 281.9797 281.6717 277.3226 273.4823 272.1211 273.1981 276.7162 278.8919 278.6677 276.9603 274.9502 270.8856 268.9323 269.9659 269.8041 268.9196 267.7718 266.4635 265.4926 263.65 264.8542 264.3669 263.4412 261.8477 260.2553 257.8914 255.3251 254.2637 254.6319 255.9353 256.505 257.8365 260.2817 258.571 257.2801 258.0393 257.3014 258.2837 259.4297 257.2044 247.1846 245.8036 245.129 245.744 245.5241 245.5041 245.4997 246.1189 251.5316 252.8143 253.9746 255.0832 256.6663 258.2911 259.6736 260.341 260.8713 262.6404 263.9599 266.0293 267.1984 267.2641 266.667 265.1125 266.0303 268.6562 271.2074 271.7072 272.4369 274.0141 275.3532 276.7596 277.7688 277.5386 276.593 273.0026 272.1485 271.4262 270.9114 270.2121 269.0703 267.8807 266.4735 264.8107 261.3246 258.2121 256.674 254.5224 251.5051 256.0252 257.9828 259.0425 259.092 260.0893 260.2979 260.1093 259.6835 259.398 258.23 257.5353 257.7951 258.584 259.5051 259.6257 259.7825 261.0202 260.7899 261.0738 262.1721 263.8165 265.1927 268.6494 269.7756 270.7379 271.8166 273.085 273.602 274.3026 273.334 271.5736 267.7073 266.1823 263.5052 261.4158 258.6508 255.8104 254.8261 253.8591 252.8693 252.5956 252.5871 249.1484 242.6179 239.507 239.1973 238.3271 240.2249 236.2941 239.7297 239.7279 240.6701 238.1185 238.6164 240.01 242.176 243.7879 245.131 247.1851 248.9171 251.0159 251.9957 253.5022 254.3153 255.8967 256.6822 257.6924 258.4236 259.3171 260.0018 260.5206 260.8811 260.7823 260.4206 259.7512 258.3082 257.0645 255.4147 256.3583 259.6048 261.5045 263.657 265.5018 266.8942 266.5735 268.8089 268.1516 269.0514 270.276 270.8538 270.5911 270.0168 269.8043 269.3623 268.5116 267.404 267.0263 266.0373 266.2659 266.942 267.6223 267.117 266.4505 265.4707 269.1907 268.5202 265.0069 265.745 269.6109 270.5591 271.1988 273.1498 273.9627 272.4155 269.7172 271.2218 273.4722 276.2923 278.1873 280.5107 282.6099 283.5698 283.5161 283.6298 283.6842 283.9586 284.889 286.6166 288.7456 289.6612 289.5434 288.777 287.7086 286.349 285.3083 284.1116 284.0659 284.7927 285.3004 284.711 283.2482 281.7002 280.3598 280.1536 280.2816 280.6176 280.8457 280.8619 280.5443 -9999 -9999 +-9999 -9999 341.3926 342.7817 340.7741 337.1342 333.7621 332.3587 328.8818 324.6692 322.0772 321.9118 321.055 322.3018 326.8823 330.3285 332.4895 332.9822 332.8736 333.821 332.0127 329.72 326.3723 328.6427 334.242 338.4295 340.1733 340.9781 339.5175 338.2775 339.6379 342.1131 343.8364 344.9978 344.4611 343.5361 341.7327 338.9139 334.1127 338.4145 341.2356 343.6255 346.016 346.2338 346.8886 346.7878 344.8352 339.6543 343.4139 346.6606 347.7602 347.093 344.5196 338.426 329.8055 331.4922 337.9691 340.3689 342.4998 343.3474 343.4505 343.9508 343.201 341.6356 339.8633 335.3224 333.9893 332.674 332.5571 332.3714 333.3988 333.6633 333.7161 333.032 331.9818 333.3346 335.3884 337.1352 339.3336 341.3666 342.8033 344.213 345.0417 345.6996 346.3409 348.1792 349.5833 350.6563 350.8559 351.6785 353.1912 354.0746 355.2854 356.9908 358.298 358.1504 357.0771 356.2144 354.6352 355.4958 356.104 356.3784 357.2238 359.4002 361.2617 363.1304 364.4167 364.775 365.8062 367.5162 369.2812 371.6803 372.3112 373.0966 373.8277 374.8063 375.2383 374.8604 374.1012 373.5693 374.0314 373.535 373.14 372.2474 371.2001 370.8957 370.4702 367.9435 364.3471 358.5049 358.8243 353.5833 351.7979 346.6408 339.648 337.6138 336.3688 335.431 327.4784 323.4365 320.9871 320.6743 320.8789 319.2685 317.375 315.3411 312.4943 310.4183 309.9538 308.1035 306.921 306.2929 306.2856 305.3943 306.3755 306.5475 303.5018 303.5118 304.3966 304.4068 304.0608 303.5041 304.6773 307.1644 306.4878 307.6307 309.6349 310.3832 310.2761 310.3759 309.9867 310.3327 311.3451 311.8511 311.6787 311.6119 312.4176 312.2468 311.5795 310.8799 310.0516 309.9924 310.2051 309.0632 308.013 307.5842 306.9159 305.6023 304.0543 303.1302 304.6392 306.5528 306.6778 304.1405 302.5499 300.7633 298.4344 297.0485 295.7709 295.4686 294.825 292.9685 291.0497 290.3049 288.7263 288.0634 288.2883 288.9877 288.7369 287.6321 286.8288 287.0033 288.532 290.496 291.8381 292.7228 293.2065 292.7176 291.2375 289.1413 288.595 289.0747 290.3156 291.6006 293.2358 294.6581 295.7955 297.1766 297.1687 295.3674 294.8284 294.4925 294.9772 295.9475 297.6886 298.6451 300.5481 302.1955 304.0894 303.0958 301.9409 300.4518 299.1907 297.8196 296.8839 295.8743 294.795 293.1718 291.9294 290.8508 288.2201 286.5455 285.0393 283.7639 283.4376 285.8482 287.8956 287.8714 288.5332 289.1022 289.4394 288.3019 285.322 281.9797 281.6717 277.3226 273.4823 272.1211 273.1981 276.7162 278.8919 278.6677 276.9603 274.9502 270.8856 268.9323 269.9659 269.8041 268.9196 267.7718 266.4635 265.4926 264.8304 265.4207 265.6591 264.2253 262.5756 261.2278 259.7366 256.7986 255.5816 255.4232 256.3518 257.1294 258.2086 259.9411 260.9088 260.5062 261.1689 260.8142 260.4269 259.8594 253.32 246.1077 245.6786 245.889 245.8327 245.4983 245.2979 245.27 245.4192 251.2152 252.7166 253.3232 254.5208 256.0569 257.2744 258.2119 258.4392 259.564 262.3925 263.9034 264.8882 264.3784 263.2354 263.269 264.739 266.5797 268.0483 268.8869 270.9986 272.8333 274.0354 275.2556 276.533 277.6193 277.4765 276.5206 273.3577 272.768 271.9944 270.8158 269.7767 268.3141 267.3745 266.1187 264.8557 261.0376 257.3654 255.5214 254.5607 251.2542 254.0424 256.0226 257.235 258.0132 259.2196 258.9306 258.5237 258.2036 257.7696 256.6267 256.0625 256.6013 258.0265 258.7888 258.7928 258.7577 260.3539 260.4086 260.8716 262.1624 263.8119 265.9798 269.4059 271.2025 272.3694 273.3195 274.1595 275.509 275.3868 274.0979 271.9008 268.4295 267.0854 265.1413 262.8517 259.7775 257.2718 255.4009 253.6355 252.6447 252.6375 250.5794 246.1175 240.165 239.0999 239.4927 239.0564 236.2908 239.97 239.3013 241.5625 244.9704 246.9684 247.0572 245.9027 242.3187 242.7714 243.9091 246.3547 248.2817 250.3355 251.4569 252.8815 253.612 254.8403 255.6678 256.5826 257.1302 258.8808 260.0081 260.8369 261.6501 261.8096 261.8533 261.3344 260.422 259.6774 257.976 256.7731 258.1652 260.4737 263.1191 264.3046 265.4814 265.3018 267.141 266.4661 267.7532 268.9648 269.6974 269.1421 268.1763 267.347 266.9778 266.6349 266.3326 267.1511 268.0488 268.2253 268.1065 268.7963 269.1742 269.0901 268.1956 270.4811 270.6046 266.7903 267.0862 271.333 274.2408 275.1548 276.0222 277.0107 277.452 275.4086 272.6138 275.0596 277.7633 279.6823 281.288 282.3148 282.4782 282.3659 282.3083 282.5828 282.9393 283.8259 285.4789 286.9903 288.1623 288.7011 288.8907 287.061 286.7997 284.6526 283.227 283.2578 284.1016 285.0543 285.3964 284.6986 283.944 283.0794 282.9252 282.7869 282.7061 282.4547 281.4025 280.5368 -9999 -9999 +-9999 -9999 343.1861 344.2134 342.0065 339.55 336.0901 333.2504 331.6505 327.6075 324.2166 321.3295 320.0151 320.9223 324.7377 327.9777 329.6109 329.7146 329.7591 330.8934 329.181 327.099 324.5635 328.6549 333.0602 335.5467 336.1016 335.3712 334.54 337.0397 340.7247 343.6703 345.0435 344.8244 343.143 340.9785 339.0153 335.901 331.7759 336.6248 339.9846 342.7738 344.8069 344.6484 345.8404 345.2916 342.8508 340.1076 344.373 347.0058 349.1327 349.5181 346.7446 340.8379 331.0157 329.6063 337.1844 339.2504 340.6823 341.5195 342.165 342.9095 341.9238 340.4025 338.4139 333.8022 333.0201 331.8577 330.714 329.9871 330.5034 331.0865 328.8265 326.3142 332.8611 334.7351 336.6237 338.5637 340.1893 341.7327 342.6669 343.9905 344.5755 345.2004 345.5402 346.4407 348.2966 348.9559 349.0164 350.0438 351.2928 352.0915 353.199 355.7415 357.0198 356.267 354.9356 354.3993 352.5472 352.4841 353.4357 353.7965 357.2796 359.1105 360.9654 361.6616 362.7207 363.9924 365.0925 366.1036 367.5199 370.1396 370.8911 372.25 373.0108 373.884 373.9089 373.4036 373.2592 373.5346 374.7779 375.4385 375.8015 374.4158 371.1924 369.1621 366.8929 363.0205 359.849 351.073 347.9145 344.7354 342.1016 338.5507 341.8806 340.1591 336.2537 330.6624 325.5886 324.9573 321.5078 321.6061 322.0962 319.4597 315.9952 315.068 315.2946 317.3801 313.4486 310.901 311.9839 312.3246 309.6112 309.9034 310.0423 309.0586 306.3192 306.4345 307.3588 310.2282 309.422 307.0522 310.0171 311.4461 310.5166 311.0136 311.0235 311.8539 312.2498 312.3647 312.1946 311.9692 311.7807 311.7397 311.3853 311.3441 311.1272 310.7858 310.2527 309.5801 308.7493 308.3688 308.9295 308.8225 307.4284 305.9229 305.2224 303.7132 302.3837 302.4378 304.2477 305.9593 306.2838 304.5704 303.4166 302.3209 300.9879 299.7542 298.1891 295.4995 293.6622 291.696 288.819 288.3488 287.039 286.2259 285.5789 282.1566 282.3098 280.5188 282.9582 284.4845 286.4992 288.4831 290.3202 291.2637 291.8737 291.8237 291.2375 289.1413 288.595 289.0747 290.3156 291.6006 293.2358 294.6581 295.7955 297.1766 297.1687 295.3674 294.8284 294.4925 294.9772 295.9475 297.6886 298.6451 300.5481 302.1955 304.0894 303.0958 301.9409 300.4518 299.1907 297.8196 296.8839 295.8743 294.795 293.1718 291.9294 290.8508 289.8188 288.5807 288.1227 286.9819 284.7611 285.561 288.8416 289.2911 289.8258 290.6032 290.4408 289.7194 288.0691 286.4638 285.4903 281.9693 279.1739 277.0911 277.3006 279.3924 279.9519 279.0027 277.8555 276.8481 274.799 273.3477 272.5775 271.109 269.7784 268.6316 267.4799 265.948 265.4118 266.5703 266.0414 264.9349 264.3395 261.9991 260.6707 258.1013 256.4301 256.408 256.97 257.5156 258.7807 260.3456 261.8231 262.2106 262.6454 262.6346 261.5108 252.9425 247.5524 245.1037 245.4412 245.6985 244.6839 245.6021 245.2981 245.2804 245.2596 249.8824 252.1598 253.0758 254.0944 255.2713 256.0888 257.3571 258.1016 259.3066 260.623 261.1395 261.7646 261.6569 261.3873 261.9133 263.111 264.2271 265.5553 269.3317 271.0335 272.6247 274.2647 275.1725 276.3187 277.3762 277.2949 276.168 273.6126 274.0424 273.1614 271.979 270.4451 268.9786 267.2407 265.5838 264.1681 260.8923 257.8018 255.5768 254.2407 252.6196 250.1499 253.623 254.7502 256.847 257.9002 257.1812 256.4853 256.4095 256.2781 255.3375 255.3134 256.3078 257.4769 258.3183 258.0131 258.0268 259.9311 260.1438 260.8906 262.2693 263.9303 265.8281 270.092 271.6234 273.2331 274.7954 275.8078 276.109 274.9363 273.4959 271.0602 267.8036 266.4518 264.5196 262.0135 259.6318 257.5102 255.0896 253.1539 251.2745 250.6399 247.5299 242.0792 239.1175 239.0082 240.1517 236.2264 238.5919 240.759 241.1599 244.2132 247.5773 250.8666 252.8115 251.5439 242.5994 242.6228 242.8189 245.7501 247.643 249.3988 250.6831 251.7901 252.5764 253.5085 254.7924 254.9656 257.0473 258.406 259.1877 260.0928 260.5388 260.7896 261.05 261.517 261.5757 261.394 260.2287 258.9718 258.0894 259.5044 261.5688 262.6952 263.9718 264.9102 265.0295 265.4391 266.5159 267.4326 267.6658 267.2254 266.4897 265.794 265.353 265.3334 265.6179 265.7581 266.6234 267.6535 269.0984 270.4193 270.3235 270.3018 270.313 272.754 272.9428 269.457 268.5512 271.8163 274.0815 276.4365 278.17 279.7712 280.3593 279.2567 276.2704 276.062 278.8954 280.5049 282.1408 281.8985 281.6534 279.5992 279.2847 279.6888 281.0821 282.6964 284.0214 284.8848 286.2835 287.571 288.1516 287.3595 285.5861 283.8808 282.4443 281.7301 282.1943 283.3318 284.3103 284.9969 284.8049 284.4419 284.7113 284.8142 284.5202 283.7308 282.3173 280.5453 -9999 -9999 +-9999 -9999 346.3149 346.4651 344.4293 341.5794 338.1868 333.6844 332.9407 328.3983 325.9186 321.436 320.4023 319.4098 322.5358 325.2361 326.19 325.7105 327.2589 328.308 326.1492 324.1891 323.5105 327.556 331.0146 332.1253 330.0082 328.3156 331.2446 338.9497 342.4152 344.9046 345.2202 343.1966 340.9724 338.4834 335.5699 331.8449 331.5899 337.8659 340.7569 342.5246 343.1086 343.4587 345.1609 343.4258 340.2689 340.5002 344.2906 346.8926 348.8614 348.7245 346.023 340.1979 331.7446 328.8336 335.8964 337.6257 338.9062 340.1349 340.9759 341.3389 340.6862 339.0381 337.5297 333.2562 331.6603 330.609 328.9111 328.2227 328.7273 328.7801 328.663 331.0106 335.2723 336.2167 337.2363 338.6589 340.0711 341.3726 342.439 342.8456 342.9008 343.0795 344.0443 345.2278 346.735 347.0274 347.5633 348.8622 349.7013 350.6398 351.9196 355.1473 355.8388 354.4616 352.8062 351.1277 349.8042 350.0659 351.5498 353.3876 356.6827 358.5753 360.2626 361.2275 362.2612 362.8159 362.8956 364.196 365.907 368.9598 370.7177 372.0974 372.9476 373.2975 372.6175 371.5065 371.4661 372.0614 373.2404 374.0726 375.5182 376.0743 374.4371 371.4685 368.2105 363.2507 362.1242 356.3104 356.5649 353.5673 351.331 352.9095 355.3622 354.9319 350.7427 344.679 330.2048 325.3164 325.4171 324.8967 330.3792 330.568 327.1286 325.7509 324.0438 321.2099 318.9769 315.3874 316.853 315.8422 314.1648 315.4084 316.4999 312.953 315.2608 315.138 313.2755 312.3293 313.6999 312.1441 313.9042 314.5073 313.8658 313.6665 313.3843 313.0562 312.515 312.118 311.676 311.1748 311.0497 310.2986 309.5266 309.4796 309.4593 309.2323 308.9184 308.4044 307.213 306.5125 307.3161 307.6397 307.0292 305.6285 303.5918 301.8165 302.3837 302.4378 304.2477 305.9593 305.9567 304.5704 303.4166 302.3209 300.9879 299.7542 298.1891 295.4995 293.6622 291.696 288.819 288.3488 287.039 286.2259 285.5789 282.1566 282.3098 280.5188 282.9582 284.4845 286.4992 288.4831 290.3202 291.2637 291.8737 291.8237 290.957 289.5421 285.9236 286.5527 288.6747 290.1479 292.4035 293.7375 295.2573 296.4152 296.6724 295.9797 295.5128 295.6095 295.7369 296.5657 297.8051 298.8071 300.2519 301.5635 302.2308 301.3985 299.8076 298.3654 297.1628 295.6485 295.0212 293.7841 292.9872 291.8672 291.3676 290.8775 290.304 289.7968 289.2623 288.3336 286.8897 286.2339 288.3556 289.1618 289.8779 290.6216 291.1269 290.8114 289.8555 288.5659 286.8752 284.0851 282.7595 281.5055 280.4954 279.9384 280.4965 279.497 278.4777 277.3554 275.5596 274.6754 273.3722 271.829 270.382 269.0574 268.207 266.7369 266.5661 266.8367 266.2185 265.7619 264.0993 262.5251 261.2206 258.9756 258.2011 257.5803 258.4391 258.0921 258.7866 259.923 261.2316 261.2657 261.2436 260.4966 259.2845 247.8576 245.4507 244.9688 245.1486 245.5743 245.2633 245.4878 245.3672 245.2775 245.2114 248.5318 251.2613 253.512 254.4287 254.9825 256.289 256.9918 257.998 258.2591 258.9214 259.1093 259.9573 260.7326 262.2525 264.4032 263.5193 265.5176 267.1612 270.1641 271.6742 273.0014 274.4641 275.2481 276.226 277.2096 277.3092 276.1176 272.0423 272.0975 272.5039 271.9605 270.5754 269.0634 267.0005 265.0528 263.3386 259.3311 256.8726 255.9097 254.6986 252.9631 251.5788 250.1916 252.8989 254.3222 256.2084 254.4865 253.6884 253.6184 253.6841 253.3947 254.4632 255.9815 256.4406 257.5895 257.3337 257.5592 258.8998 259.546 260.5434 262.2176 264.0922 266.2617 270.3554 272.0905 273.6471 275.0845 275.3507 274.9511 273.151 270.4831 269.9357 266.6982 264.4958 262.6054 260.591 258.4542 256.9941 254.0775 252.2567 250.606 247.738 244.8807 239.8453 238.8851 239.7369 236.2842 238.7345 241.1662 239.0382 243.9808 246.7672 249.5224 252.6931 255.7636 255.3871 246.2379 242.8089 242.8836 245.4792 247.0626 248.5455 249.7687 250.07 251.5217 252.3783 252.8799 253.2065 255.5097 256.618 257.8796 258.4382 258.5649 259.3491 260.1497 260.9073 261.1548 261.0501 260.2342 259.9232 259.3246 258.9413 259.6338 261.3737 262.1461 263.3586 263.0398 264.0703 264.951 265.7148 265.9341 265.5919 264.8312 264.3418 264.2283 263.881 263.9041 264.8039 266.3512 267.3374 268.7068 269.9713 271.3368 272.8794 272.6492 274.813 275.3191 272.635 269.4469 270.7258 274.2424 275.4339 277.9728 280.3928 282.1531 281.6504 280.2842 278.7964 280.0209 281.2575 281.6052 280.757 278.3475 277.6523 277.4404 278.4047 279.3171 280.2525 281.9126 282.9095 283.9449 285.1814 286.7664 286.5226 285.3326 283.1961 282.1043 280.2475 280.8537 281.8344 283.0287 283.9044 283.4153 283.3721 284.0936 284.4987 284.4352 284.183 282.8911 280.9106 -9999 -9999 +-9999 -9999 348.0277 348.4851 346.5649 343.3185 339.3431 334.1347 332.4839 328.8671 328.2692 323.7187 320.6253 318.884 319.4904 320.9577 321.9832 323.2041 324.848 326.0634 323.0672 321.1266 323.4084 326.261 328.3543 328.1112 325.0358 327.8795 332.8098 339.7632 342.753 344.0704 343.491 340.6743 338.0341 335.6337 332.384 328.032 333.8007 336.5363 337.7762 338.3803 340.2201 342.2082 342.9174 341.5547 337.8256 339.3525 343.1687 345.2794 346.2647 346.1505 343.9728 338.8686 330.6458 327.5379 333.1309 335.5668 337.8915 339.2736 339.6953 339.7405 339.348 338.2619 337.158 334.6584 331.6295 329.296 328.819 326.9018 327.4956 325.7988 330.5479 332.4394 335.2837 336.1221 336.9402 337.8086 338.1026 339.9571 340.9184 340.9136 340.9742 342.5323 343.7737 343.7386 345.0153 345.3102 346.0523 347.0034 347.8236 349.1768 350.6678 352.8007 352.5172 351.8415 349.9682 347.6762 347.4282 348.5222 351.1108 353.1634 356.4999 358.0515 359.2825 359.5883 360.0424 359.8485 361.9076 363.7705 365.4356 367.6659 369.3407 370.4848 371.6272 372.2533 371.903 369.8893 368.9254 369.7703 370.4821 373.4888 375.2077 376.8766 376.7031 372.9534 369.1898 366.4818 365.5259 363.2994 365.1637 364.6173 362.4299 360.9677 359.7003 355.7126 348.6691 339.1792 333.4008 331.3299 329.2834 330.3637 333.8124 334.922 333.9586 332.9179 331.3514 326.0986 327.6805 325.4986 321.5844 322.3139 322.8835 321.0923 321.1829 318.9031 318.6607 318.4588 313.2755 312.3293 313.6999 312.1441 313.9042 314.5073 313.8658 313.6665 313.3843 313.0562 312.515 312.118 311.676 311.1748 311.0497 310.2986 309.5266 309.4796 309.4593 309.2323 308.9184 308.4044 307.213 306.5125 307.3161 307.6397 307.0292 305.6285 303.5918 301.8165 300.0764 301.0842 303.2828 305.3187 305.4661 305.2027 304.7641 303.3702 302.515 300.9624 299.1875 297.1371 295.0907 293.4033 290.9287 289.5208 288.7807 286.9707 285.3117 284.0997 283.1187 279.7809 280.2207 283.3151 285.4978 287.9109 289.2569 290.3349 290.8307 290.7592 289.9736 288.8794 284.4577 284.6407 286.6838 289.094 290.9304 292.9526 294.0295 295.124 295.9673 295.8441 295.6577 295.6036 295.87 296.5226 297.4875 298.3878 299.5693 300.83 301.3218 300.0335 298.5565 296.5783 295.1958 293.6843 292.2908 291.4534 290.2218 289.483 290.0635 290.1242 289.6331 289.5253 288.9158 288.1704 287.9977 287.2171 286.2538 287.2591 288.4989 290.782 292.3484 293.1041 292.6179 291.4677 289.9205 285.025 283.9194 282.4672 281.8241 280.1041 280.1682 279.3298 278.543 277.3919 275.3965 274.4327 273.443 272.4636 271.0389 269.9034 268.7064 267.13 266.6485 267.3169 266.8632 266.1078 264.9726 263.1662 261.9672 260.8806 260.053 259.8014 259.98 259.4842 259.1773 259.9305 260.6627 260.5985 259.8049 259.1198 256.3724 248.495 245.5749 245.158 245.0569 245.4556 245.556 245.2177 245.4051 245.1919 245.5588 247.6255 251.6271 253.3253 253.6372 253.1954 253.4484 254.2281 254.9397 256.2889 258.5676 261.8109 263.554 264.2858 264.6743 266.1225 267.2653 268.1369 268.9371 270.5267 271.99 273.2916 274.6969 275.3045 276.1552 277.0931 277.5344 276.8797 272.8589 270.4359 269.9214 269.6006 268.7895 266.9667 264.9081 263.6259 261.8284 258.5788 257.4013 256.4666 255.3623 253.9608 252.5686 251.393 250.4772 251.6653 254.3555 252.8054 251.6226 251.5694 251.856 252.6435 254.0727 255.5602 255.595 257.055 256.8708 257.2935 258.4565 258.8983 259.8987 261.6427 263.3301 265.7537 269.8999 271.6839 273.0666 273.7921 273.4524 272.6036 271.1955 268.7528 267.2309 265.4683 263.4974 261.2808 258.2328 256.4342 254.2027 252.7171 250.8092 248.4353 245.7785 242.1435 238.9873 239.2346 238.0291 236.3358 241.2138 239.5774 240.15 246.0446 248.4265 250.7889 253.3851 256.0291 255.907 248.865 243.0424 242.992 244.0213 245.6874 246.9158 247.9251 249.514 250.3312 251.2318 251.0779 251.2535 253.8996 254.9869 255.6558 256.1099 257.2324 258.3918 259.2933 259.6687 259.98 259.6178 258.7168 258.66 259.5601 259.6659 259.3489 260.0538 260.5835 261.4468 261.4584 262.2838 263.3096 264.1334 264.5858 264.3763 263.659 263.2228 262.6097 262.1008 263.4249 265.0367 265.6274 266.76 268.1725 269.9352 271.761 273.1094 274.5989 276.6359 277.3735 276.087 272.9076 272.562 276.5248 279.0609 280.3867 281.3959 282.3986 282.1678 281.4192 281.3687 281.5899 281.06 280.0489 277.8778 276.2712 274.9069 274.7689 275.3665 276.3549 277.6567 278.9454 280.5584 282.3263 283.923 285.8871 285.8881 284.4666 282.5478 280.8806 279.4299 278.7805 280.1305 281.1697 282.5509 281.8262 280.8368 281.995 282.2865 282.2539 282.5338 281.7343 280.4388 -9999 -9999 +-9999 -9999 346.5789 346.8441 345.1196 341.5311 337.6411 333.7092 331.2666 331.7145 331.2677 331.6259 326.9156 319.783 318.165 318.7209 318.862 319.9238 322.6342 323.0357 320.4493 319.672 322.4809 324.5462 325.3211 323.3474 323.372 328.8049 332.1578 338.5894 341.1386 342.1524 341.6323 339.7433 336.0968 332.8817 329.5557 325.4373 330.4436 332.8814 335.5963 337.9362 339.4341 340.6549 340.9391 339.2203 334.853 337.6929 340.8388 342.5669 343.1689 342.9398 341.318 337.7337 330.668 326.7094 333.4659 335.4261 336.9665 337.8648 338.0026 338.0363 337.5926 336.5081 335.5905 333.779 332.1062 328.5615 327.0872 324.9907 324.6713 327.7357 330.5744 331.5632 333.1566 334.1105 335.4562 336.0735 336.7407 338.0278 338.8138 338.7193 339.7408 342.8475 343.7314 343.0193 343.2113 343.9015 343.8614 344.5868 345.9256 348.0901 349.8785 350.6471 349.349 347.8166 346.2668 345.7008 347.3126 349.0162 351.3283 353.3251 355.7988 355.2872 354.1169 355.8423 356.751 359.0821 361.066 362.5483 363.3554 366.242 368.0407 369.3188 370.653 371.3599 370.9003 369.1855 366.6563 366.8659 370.504 373.3109 375.0593 376.987 378.0755 375.1601 371.6347 369.789 367.7072 363.2994 365.1637 364.6173 362.4299 360.9677 359.7003 355.7126 348.6691 339.1792 333.4008 331.3299 329.2834 330.3637 333.8124 334.922 333.9586 332.9179 331.3514 326.0986 327.6805 325.4986 321.5844 322.3139 322.8835 321.0923 321.1829 318.9031 318.6607 318.4588 316.0286 315.7747 317.0129 316.5503 316.0472 315.4965 315.0653 314.2167 313.9855 313.5938 312.2907 311.2691 310.3635 309.5025 309.1913 308.4785 307.7348 307.5337 307.5601 307.4941 307.3159 307.368 306.325 304.9153 304.8193 306.0957 305.8562 305.4781 304.2764 302.0867 299.3216 300.506 303.1263 304.385 304.1465 303.8513 303.9973 303.6766 302.8878 301.1909 299.212 297.2062 295.6754 292.3123 291.0571 290.1166 289.393 287.0681 285.204 283.6139 282.8056 280.8792 276.2376 282.4966 285.0792 287.4763 288.6154 289.5864 290.0788 289.9491 288.7665 287.7938 283.1099 283.0621 284.673 286.9732 289.2101 290.8701 291.8705 293.2721 294.5357 294.8577 294.7904 294.6635 295.0553 295.7092 296.7018 297.7564 299.1908 300.2402 300.8348 299.6579 297.7815 296.1819 293.828 291.6151 289.9195 289.055 288.1097 287.893 287.4599 287.662 287.7632 288.0977 288.1826 287.7761 287.6118 286.9309 285.4844 286.0091 288.1656 290.2483 291.5545 293.2568 294.4538 293.4673 291.4905 285.7115 283.9876 282.4912 281.6149 280.5237 279.4871 278.6981 278.154 276.999 275.2585 274.4502 273.6917 272.476 272.0025 270.6317 269.2467 267.6341 267.1442 267.9767 267.1425 266.4714 265.9117 264.3151 263.1316 262.3506 261.8945 261.6651 261.2563 260.8513 260.4217 260.2497 260.4358 260.2442 259.6788 258.9968 256.5542 249.3244 245.8302 245.0626 244.9757 245.3242 245.6343 245.4042 245.3482 245.1526 245.2229 248.263 249.7042 250.4341 252.0675 254.3384 256.065 257.8859 259.1856 260.0165 262.1162 263.5223 264.569 265.6687 266.64 267.7879 268.8477 270.0999 271.2065 270.9492 272.1236 273.4463 274.5449 275.2525 276.359 276.7105 277.2971 277.0272 274.5322 271.7333 268.2127 266.9559 265.8691 264.585 263.4124 262.5426 261.2892 258.7774 258.0785 256.7249 255.1002 254.2758 253.6265 253.173 251.2273 250.2641 250.9553 250.7911 249.8424 249.7656 251.441 253.3526 254.4173 254.6812 255.1846 256.82 256.6147 257.0456 257.8233 258.5608 259.1798 261.0696 262.2865 264.9212 268.7776 270.6998 271.7741 272.4023 271.5555 269.0623 268.3118 268.063 264.9396 262.5531 261.3993 259.7293 256.9474 254.2025 252.3776 250.8498 248.8561 246.4533 243.2687 239.7075 238.4986 239.3545 236.2999 241.3018 241.1203 239.1055 241.3818 247.2072 249.4693 251.594 254.0344 256.3838 257.2893 252.775 244.5616 243.375 243.3558 243.7613 245.036 246.0539 247.0534 248.7344 249.2713 248.8904 248.5546 251.8195 253.1487 254.0111 255.6974 256.5907 257.2235 257.7444 258.0802 258.127 257.5387 257.1658 257.6855 258.7279 259.4066 258.9236 258.7424 259.4335 259.986 260.5268 261.0245 261.9309 262.7062 263.181 263.0845 262.3851 261.5868 261.1599 261.9417 263.3509 265.0931 266.0366 267.8443 269.2775 270.9512 272.3178 273.615 275.4549 277.5188 277.6109 277.9957 276.6546 274.1916 275.782 279.0438 280.9807 281.8541 281.0132 280.5533 280.7299 281.2701 280.2416 278.9538 276.9045 274.9265 273.0688 271.9969 272.3366 273.1753 276.184 277.5193 279.6282 281.2314 282.2745 283.92 285.5073 285.8514 284.0384 281.8844 279.6268 277.8691 277.5984 278.2742 279.7298 282.5509 281.8262 280.8368 281.995 282.2865 282.2539 282.5338 281.7343 280.4388 -9999 -9999 +-9999 -9999 344.0653 341.9918 339.8052 337.184 335.7581 334.9944 335.9084 335.0275 334.157 335.4805 332.7375 328.1262 323.2932 320.5719 318.1592 316.877 318.9443 319.8911 318.132 318.1507 320.9077 322.5448 321.844 321.4403 324.9685 327.9149 330.5513 336.3372 338.8057 339.4682 338.0664 336.0916 333.4892 329.8181 325.5672 325.2303 333.3711 335.8752 337.2315 338.4352 339.1272 339.0824 337.6332 336.3259 332.1077 336.5777 338.3248 339.2964 340.4754 339.9453 338.3739 335.8379 330.2231 325.5865 332.9083 334.4905 335.5663 336.2112 336.7483 335.8986 335.4192 334.5199 333.3804 332.0314 330.8062 329.0241 325.3038 323.7306 324.6834 326.4152 327.9149 328.3761 329.585 330.8004 332.5002 333.4254 334.9102 335.9668 335.5789 337.7885 340.1111 342.2631 342.6887 342.0646 341.5225 342.0064 342.2595 344.2793 346.1883 347.8011 348.7616 347.3399 344.2358 344.1197 346.22 347.6838 350.3442 351.9208 351.3283 353.3251 355.7988 355.2872 354.1169 355.8423 356.751 359.0821 361.066 362.5483 363.3554 366.242 368.0407 369.3188 370.653 371.3599 370.9003 369.1855 366.6563 366.8659 370.504 373.3109 375.0593 376.987 378.0755 375.1601 371.6347 369.789 367.7072 370.486 371.2702 368.7223 364.5768 362.7051 356.9279 348.629 340.9069 343.7228 344.9102 339.6117 331.4724 336.1351 338.296 339.4048 340.5453 340.438 337.3694 332.4893 333.5605 329.6508 325.5586 326.05 327.0291 325.6546 324.1034 321.7819 320.811 319.6807 318.3563 318.5943 318.8078 318.6443 318.5682 318.45 317.8496 315.881 314.55 313.3915 311.7932 310.1688 308.0375 306.2729 306.6973 306.1298 305.6706 305.7447 305.8984 305.795 305.8035 305.9225 305.3745 303.6639 302.4627 304.2337 304.4056 304.2429 303.3199 301.0661 297.9688 298.8005 302.2999 303.2608 301.7706 302.1622 301.9451 302.6182 302.3668 300.198 298.2515 296.62 295.0345 291.5514 290.4421 289.7199 289.089 287.1679 285.4392 283.8074 282.0416 280.5757 277.9966 281.2458 284.5269 286.3374 287.9823 288.9546 289 288.7097 287.3308 286.6326 281.9633 281.7627 282.9192 284.4315 287.0072 288.784 290.5253 291.687 292.9013 293.0382 293.2242 293.3546 293.8834 295.0417 296.1207 296.9199 297.8947 298.6358 298.9086 298.4393 295.8484 294.7874 292.6087 289.5635 287.42 286.5218 285.2487 284.7828 285.1009 285.2637 286.1044 287.0568 287.0572 286.5627 286.3393 286.4523 284.6934 284.9939 287.8185 289.1785 291.0259 293.0956 294.5794 294.0725 291.399 285.5171 283.082 281.585 280.1192 280.5495 279.3552 278.2054 277.2538 275.9671 274.652 274.4825 273.6613 273.5714 272.3882 271.436 269.927 268.2691 267.8289 268.6386 267.8986 267.057 266.3479 265.7061 263.8699 263.0685 262.8663 262.5535 262.5019 261.7206 261.2327 260.6088 259.8615 259.4177 259.1743 258.7292 257.0203 249.7205 246.6993 245.943 245.0922 244.9165 245.3348 245.3085 245.2031 245.0604 245.2599 246.6251 247.5449 249.4841 251.8106 253.9364 255.9334 257.6893 259.3773 260.9956 263.955 265.1674 265.5544 266.3128 267.1293 268.3981 269.9781 271.2051 272.275 271.8134 272.2426 273.1835 274.1677 274.512 275.8893 276.0356 276.5979 276.3725 275.1519 272.1038 270.0417 268.9289 267.2673 265.4166 264.2474 263.1905 261.5874 259.0051 258.1333 256.805 255.7955 255.4514 254.671 253.8459 252.5966 251.167 248.3211 248.6096 248.3273 249.0143 251.4856 253.1645 253.5335 253.6565 254.7073 256.1865 256.2569 256.5513 257.0366 257.6772 258.9162 260.1673 262.006 263.9914 268.2603 269.5407 270.6346 271.2349 270.2101 266.8755 264.7334 265.9587 264.6245 260.1366 258.9999 256.8928 254.6409 252.5723 250.7844 249.2836 247.233 244.859 240.7 238.676 239.3235 236.2921 241.2792 241.7793 239.377 239.7462 242.6427 247.925 249.9204 251.8617 254.4028 257.2095 259.4169 256.4142 251.8571 248.1711 243.5819 243.6298 244.0603 243.7283 244.476 245.4281 245.8171 246.2039 246.687 249.8411 251.5633 253.083 253.767 255.3002 255.5251 255.9724 256.6266 256.2638 256.031 255.8663 256.7019 257.8346 258.355 257.8156 257.3312 258.3053 258.5704 258.8381 259.9235 261.1805 261.7632 261.4811 261.5133 260.7373 260.0736 260.6751 261.9089 263.9488 265.3759 267.329 268.9917 269.2775 270.9512 272.3178 273.615 275.4549 277.5188 277.6109 277.9957 276.6546 274.1916 275.782 279.0438 280.9807 281.8541 281.0132 280.5533 280.7299 281.2701 280.2416 278.9538 276.9045 274.9265 273.0688 271.9969 272.3366 273.1753 276.184 277.5193 279.6282 281.2314 282.2745 283.92 285.5073 285.8514 284.0384 281.8844 279.6268 277.8691 277.5984 278.2742 279.7298 281.4666 280.3291 278.2437 279.3321 279.9013 279.8314 280.0667 279.8571 279.0226 -9999 -9999 +-9999 -9999 344.5891 344.2221 343.662 342.8478 340.8523 340.4268 339.0666 337.658 336.3687 337.1604 336.202 332.1444 329.5522 327.8129 325.1283 321.1485 315.7036 315.8839 316.1139 317.1718 319.4106 320.5746 319.3039 322.1005 325.0593 327.818 330.0291 334.5927 336.2008 336.0886 334.3562 332.1771 329.4746 323.8533 322.9844 328.878 336.1131 338.2668 338.7881 338.2406 337.7947 336.898 334.8865 332.8248 329.5689 333.33 335.3286 337.1159 338.0923 337.4326 335.6779 333.5745 329.8348 324.1159 330.8283 332.6915 334.1588 334.7667 334.7461 334.2776 333.4836 332.6285 331.2291 329.9906 328.3979 327.7097 324.1396 323.3484 324.6642 325.8135 326.0014 328.3761 329.585 330.8004 332.5002 333.4254 334.9102 335.9668 335.5789 337.7885 340.1111 342.2631 342.6887 342.0646 341.5225 342.0064 342.2595 344.2793 346.1883 347.8011 348.7616 347.3399 344.2358 344.1197 346.22 347.6838 350.3442 351.9208 352.8605 353.2768 354.5719 350.7938 350.5642 353.2501 355.4592 357.3578 359.0431 360.5544 362.2473 365.892 367.4775 368.8419 369.7172 369.6311 368.6748 367.5208 364.9611 364.7584 371.0884 373.4754 375.2333 376.8049 378.0853 377.1893 373.4787 371.6297 371.3599 372.7414 370.1218 367.4211 364.1836 359.311 353.3367 346.0251 351.7163 355.5509 353.3887 344.3271 334.5195 341.403 344.4586 344.7567 346.3322 346.6007 342.3958 337.6583 337.26 335.0084 330.9661 330.752 330.3716 329.3458 327.405 323.8972 323.6628 322.9231 322.0269 322.1144 321.6809 321.0777 320.2797 319.372 317.9044 314.814 313.2025 312.5389 311.1827 308.9858 305.9012 304.2212 303.101 303.02 303.7891 303.9516 303.979 303.962 304.173 304.1696 303.6545 302.9378 300.9489 302.4837 302.7713 302.7953 301.7122 299.5391 295.7177 298.1497 300.904 301.1794 299.6631 300.2214 300.5762 301.4812 301.7979 299.5537 297.385 295.6007 294.1609 290.8505 289.646 288.5585 288.0588 286.7725 285.3268 283.6035 281.2033 278.8442 277.5704 280.282 283.8056 286.0283 287.8055 288.5294 288.4293 287.5715 286.5333 284.5694 280.788 280.8962 281.6022 281.9 285.2834 287.1548 289.1811 290.4766 291.2481 291.2816 292.0295 293.2458 294.5285 295.519 295.8732 296.1364 296.6559 296.887 296.4679 295.1163 293.6656 291.9642 290.3949 287.6056 284.0643 281.7272 280.3366 281.8393 282.8383 283.2958 284.9645 285.6461 285.5034 285.0467 284.8443 284.9366 283.4557 283.4812 286.1053 287.5769 290.0421 292.0191 292.6395 292.1595 289.5107 284.6361 282.4921 280.6553 279.4167 279.6359 278.9735 277.9843 276.6608 275.7315 273.3706 273.1116 272.8164 271.248 271.6961 271.4989 270.2337 268.9307 268.4933 269.264 268.7812 268.0925 267.305 266.4649 264.9715 264.1932 263.7714 263.3725 263.0744 262.2584 261.7057 260.986 259.3979 257.9956 258.0008 257.39 256.1788 250.0564 246.5111 245.6317 245.3994 245.1737 245.3518 244.9171 245.1171 245.0684 244.9848 245.1828 245.4942 245.9809 250.4699 254.9405 256.6664 258.0475 259.6722 263.0434 264.4567 264.7886 265.586 266.543 267.4551 268.4557 269.8673 271.3583 271.9337 272.1208 272.321 272.7608 273.2504 273.8683 274.7378 275.1793 275.7165 275.7865 275.4588 274.1133 272.7936 272.2247 270.1427 266.0487 264.1726 263.5439 262.9248 258.9591 258.303 257.6903 257.1578 255.7172 254.3543 253.5588 253.02 252.5951 250.7992 249.8867 248.4272 247.8999 249.5777 251.3592 252.2388 252.8027 253.6755 255.1416 255.8816 255.8713 256.043 256.7641 257.6732 259.5042 261.2217 263.5026 267.1273 268.2578 269.1096 269.483 267.7808 265.4149 262.0886 263.6536 262.4678 257.439 256.3515 254.2065 251.764 250.4396 249.1065 246.7562 244.4435 243.094 239.1204 238.902 236.2863 240.6314 241.8695 240.6294 239.1891 240.3729 243.2918 248.0668 250.268 252.6617 254.8824 257.8984 260.4984 258.9807 254.7259 251.843 246.6741 245.1866 243.7616 243.7283 244.476 245.4281 245.8171 246.2039 246.687 249.8411 251.5633 253.083 253.767 255.3002 255.5251 255.9724 256.6266 256.2638 256.031 255.8663 256.7019 257.8346 258.355 257.8156 257.3312 258.3053 258.5704 258.8381 259.9235 261.1805 261.7632 261.4811 261.5133 260.7373 260.0736 260.6751 261.9089 263.9488 265.3759 267.329 268.9917 270.6119 271.9933 273.1765 274.464 275.9352 278.758 280.0456 279.9613 279.3547 278.7277 279.2826 280.1123 280.441 281.1107 279.4124 278.6312 278.8233 279.3034 277.5807 274.9695 272.8013 270.929 269.6547 270.4432 272.0781 275.6003 279.3495 281.5008 282.6621 283.3528 284.316 284.8463 286.2883 285.9486 283.6336 281.3476 278.4995 276.5629 276.2453 277.4822 278.6391 280.1761 278.7348 277.1555 275.9037 276.9397 277.7296 277.8641 277.7212 276.8305 -9999 -9999 +-9999 -9999 347.4962 348.4391 347.8255 346.1525 344.0645 343.1042 341.8086 340.591 338.4249 338.9244 338.3733 335.1972 332.4316 329.4752 326.175 323.2111 320.2403 314.712 314.8384 317.0149 319.6813 318.8927 318.368 322.0287 324.9994 327.1528 329.1401 332.8056 333.2878 332.9366 331.2251 328.3569 324.8732 320.95 324.8949 329.5975 335.5508 337.0313 337.0725 336.7053 335.0724 333.1949 331.8132 329.7532 329.5689 333.33 335.3286 337.1159 338.0923 337.4326 335.6779 333.5745 329.8348 324.1159 330.8283 332.6915 334.1588 334.7667 334.7461 334.2776 333.4836 332.6285 331.2291 329.9906 328.3979 327.7097 324.1396 323.3484 324.6642 325.8135 326.0014 326.1476 326.9133 327.3797 329.1228 331.1475 333.2558 333.3365 335.7102 338.1872 339.5529 340.1895 340.6459 340.5673 340.0084 340.4891 341.1929 343.4139 344.499 345.7437 345.3722 342.8259 342.1738 346.7875 349.9042 352.1593 353.3844 353.5654 352.4929 353.3058 351.7155 348.4076 348.8501 350.7636 353.2411 355.5238 357.5705 359.1648 360.5314 364.426 366.6111 367.9047 368.7521 367.985 366.6344 365.6011 363.8676 362.5309 369.1833 371.585 373.3624 375.0794 376.6887 376.8947 373.5183 370.9286 370.6005 374.3657 373.1127 370.9911 366.3157 359.7132 350.4725 353.0331 357.8735 360.8727 356.3618 345.081 341.1832 347.2419 352.5215 353.179 351.73 351.4582 347.7861 343.0688 341.3638 337.2518 336.2728 335.3153 334.0952 332.3504 330.0376 326.6472 326.1482 325.6022 324.9955 324.7627 323.4565 322.1304 320.2772 318.2291 316.5238 313.6512 312.0814 309.7372 308.9463 306.9037 305.6462 304.1484 302.4143 300.1045 301.2556 301.1701 300.8757 301.325 301.9532 301.6649 301.9203 301.5513 299.9119 300.8718 301.0077 301.082 300.2027 298.1589 294.7974 295.2125 298.1456 299.2665 297.367 297.177 298.3438 299.5301 299.9406 298.7425 296.5624 294.2215 292.8306 289.7555 288.4641 287.0832 287.1281 286.2533 284.4367 282.0385 280.3026 278.6375 276.6735 280.6883 283.4684 285.6345 287.6567 287.9941 287.4747 287.0085 285.3867 283.0563 279.7503 279.6521 281.1911 281.4935 283.8301 285.8057 287.4835 288.7043 288.5728 291.5485 293.8819 294.9099 296.1147 296.5492 296.4299 296.5171 296.4323 295.7319 294.4867 293.2173 292.2024 290.3739 289.0409 286.5923 283.0251 278.8499 277.3795 279.2579 280.7878 282.4232 284.1228 284.8578 284.1452 283.225 282.1347 282.0715 280.8492 282.1474 283.4687 285.7191 288.0527 289.3046 289.3605 289.4026 287.9033 283.5268 281.6058 280.0057 279.1878 278.8227 278.5959 277.9164 276.6872 275.1034 272.8214 271.7139 271.6572 271.3315 270.7647 270.4908 270.1334 269.5645 269.262 269.3755 269.3034 268.9583 268.1581 267.0804 266.4531 265.1381 264.7112 264.6215 263.5107 262.7143 261.8218 261.2615 259.6096 257.9507 256.7612 254.8342 253.4008 247.2957 245.0859 244.8969 244.7872 245.1021 245.4337 244.8662 245.1506 245.0139 244.9259 244.9626 245.0475 245.5727 250.629 255.9631 257.9123 259.3375 260.7562 262.6682 263.4011 264.3637 265.3847 265.9814 266.9514 267.7965 269.3432 270.0266 269.8233 269.9853 270.2882 271.1199 272.0667 272.7581 273.536 274.1165 274.7616 275.0255 275.2281 274.718 273.6612 271.8685 269.4921 266.2437 265.3094 265.702 264.1485 261.4813 260.6102 260.3027 259.6975 257.9892 256.7656 255.7452 254.9235 253.0171 251.239 250.4182 249.7424 248.144 247.8202 249.5032 251.105 252.5853 253.6729 255.4724 255.8015 255.375 255.1191 255.5963 256.4657 258.3878 260.5131 262.4719 265.7683 266.2175 269.1096 269.483 267.7808 265.4149 262.0886 263.6536 262.4678 257.439 256.3515 254.2065 251.764 250.4396 249.1065 246.7562 244.4435 243.094 239.1204 238.902 236.2863 240.6314 241.8695 240.6294 239.1891 240.3729 243.2918 248.0668 250.268 252.6617 254.8824 257.8984 260.4984 258.9807 254.7259 251.843 246.6741 245.1866 243.7616 244.3637 244.1738 244.5119 244.542 244.4799 244.5275 247.5265 248.8115 250.033 251.8318 252.844 253.2946 254.8893 255.0112 254.7951 254.8429 255.0279 255.7117 256.5782 256.7483 255.8487 256.0555 256.8731 257.3414 258.125 258.8733 259.6608 259.6855 259.6444 259.3166 258.658 259.6928 260.5912 261.5719 264.8588 266.1843 268.2888 269.9953 271.3347 272.6452 273.0732 273.9318 275.2332 278.2692 280.352 281.2003 280.2731 279.593 279.5782 279.368 280.1722 280.3288 277.456 276.598 276.869 276.4151 273.7232 270.6487 269.3411 269.0259 268.7122 272.2552 275.8115 279.6054 282.7906 286.2261 286.2359 285.8953 285.8081 285.8937 286.7662 285.8119 282.8441 280.4916 277.4516 274.4822 274.0632 276.2452 277.2449 278.522 278.7009 276.1252 274.7668 273.6703 275.4815 275.8503 275.3206 274.695 -9999 -9999 +-9999 -9999 349.9571 351.3345 350.8229 348.7388 346.516 345.7441 344.2946 343.106 341.4236 340.7513 339.7807 337.2571 333.8996 331.9134 329.9396 327.3315 323.5827 314.712 314.8384 317.0149 319.6813 318.8927 318.368 322.0287 324.9994 327.1528 329.1401 332.8056 333.2878 332.9366 331.2251 328.3569 324.8732 320.95 324.8949 329.5975 335.5508 337.0313 337.0725 336.7053 335.0724 333.1949 331.8132 329.7532 326.4654 331.0554 333.5618 335.6665 336.399 335.3856 333.5329 331.2673 328.33 323.3904 330.1769 332.2146 332.9306 332.758 332.4167 332.0688 331.7539 330.7463 329.1601 327.2384 325.9948 324.6476 322.2747 322.7923 323.6093 324.3064 324.1882 324.4839 325.6063 325.8262 326.7139 328.8719 330.5044 332.7127 335.3295 336.7688 337.6253 337.799 337.9196 338.2203 338.3523 338.967 338.8432 340.1681 341.9941 342.4492 341.3363 341.8644 342.5707 346.5327 349.4639 351.3763 352.8149 352.0321 351.7847 349.8955 347.3053 347.0352 348.755 350.9398 352.4428 354.0989 355.9233 357.297 359.8376 363.632 365.9346 367.9313 368.9489 367.6521 365.986 363.5662 362.7961 360.371 366.0947 367.3406 370.5303 373.1974 375.4291 374.8469 371.2361 368.6563 367.4948 373.3445 373.8781 371.7114 367.4612 360.6504 353.0731 355.3085 358.3159 362.5411 357.7181 346.2792 352.9901 356.9387 360.9421 362.5707 359.8576 356.0703 351.0571 348.8314 345.1721 340.0958 340.267 338.9857 337.4226 334.5677 331.581 330.4608 328.6609 328.1035 326.8619 325.6466 324.1288 322.4543 320.6116 318.9593 317.9832 314.1678 311.3395 309.8667 308.0019 305.6734 302.02 301.9772 301.3838 299.3362 298.8279 298.3103 297.5905 297.9529 299.4924 299.759 300.4494 300.7637 299.4501 298.6255 299.3381 299.8951 298.6687 297.0701 294.1083 292.0953 295.5154 296.7028 295.5469 294.6811 296.6213 297.7491 297.8678 297.144 295.475 292.5521 291.0604 288.4149 287.0569 285.8797 286.0473 285.55 283.8432 281.301 279.23 277.3928 276.6334 280.6718 283.0197 285.7447 287.4152 287.4277 287.2386 285.9802 284.4035 281.3932 279.2673 279.3969 279.7063 281.0966 283.0762 283.8966 285.8572 286.886 288.7976 293.4398 295.3207 295.9966 297.171 297.4562 296.6631 295.3651 294.5063 293.7025 293.413 292.1184 291.2028 288.2836 287.4369 286.0529 282.8062 278.2009 275.3437 277.1711 278.8201 281.5798 283.1678 283.8669 282.356 280.4354 279.1253 276.9893 278.5459 280.4201 281.4027 283.5472 285.062 286.3531 286.7246 287.1225 286.0019 281.6764 280.2357 278.9749 277.5453 276.9265 277.3922 277.1655 276.5923 275.0222 272.8065 271.3333 270.3629 269.8905 269.53 269.5337 269.1542 268.7141 268.6751 268.8475 268.7862 268.6116 267.7112 267.2574 266.6492 265.9335 265.7065 265.2017 263.681 262.95 262.1448 261.4886 260.2975 258.717 257.3808 254.5252 252.5839 245.9946 244.7498 244.8686 245.0236 245.1863 244.9381 245.0902 244.8613 244.793 244.8567 244.8204 244.9503 245.4432 251.0803 255.9019 257.8274 259.5114 260.7889 262.3029 263.0088 264.2401 264.4526 265.3259 266.1763 266.8359 267.086 267.2176 267.6953 268.3904 269.3395 269.8282 270.3361 271.461 272.2905 272.8355 273.8608 274.5831 275.1674 274.2864 273.0913 271.8685 269.4921 266.2437 265.3094 265.702 264.1485 261.4813 260.6102 260.3027 259.6975 257.9892 256.7656 255.7452 254.9235 253.0171 251.239 250.4182 249.7424 248.144 247.8202 249.5032 251.105 252.5853 253.6729 255.4724 255.8015 255.375 255.1191 255.5963 256.4657 258.3878 260.5131 262.4719 265.7683 266.2175 267.3754 267.4615 265.6229 263.7766 260.3242 259.5313 259.3166 255.9739 253.5404 252.1644 250.0658 248.9246 246.0271 243.4123 242.3461 241.0421 238.8657 236.2891 240.7717 241.6718 240.8532 239.4323 239.6409 240.537 243.3896 248.6649 250.8381 253.3862 256.0027 258.9326 261.6956 261.4661 257.3795 254.0785 250.4115 249.558 248.4583 247.5879 246.7803 246.0922 245.2181 244.6973 244.6611 245.524 246.2391 247.2065 248.8607 250.9331 252.0872 252.5778 252.9276 252.9768 253.6226 254.0454 254.3334 254.5676 254.0636 253.5053 254.5212 255.1246 255.6216 257.093 257.5963 257.7822 257.6411 257.3394 257.0123 257.7563 259.1117 260.0663 261.2437 264.8128 266.4933 268.2599 269.5716 270.6102 271.3418 272.0364 272.2291 272.7172 277.1098 279.8016 279.6848 278.2434 277.4011 277.2654 278.2814 279.0175 279.307 274.6544 274.4957 274.3383 272.9796 269.6547 268.7939 268.8082 268.8046 268.6824 274.35 278.3641 281.603 284.5303 288.1889 289.0808 288.3204 287.3727 287.308 287.3781 285.8879 283.3864 280.1532 276.2345 273.55 271.6755 273.4818 274.9954 276.5991 277.5621 277.0227 274.7788 273.1414 272.5561 273.7793 273.2588 272.9352 -9999 -9999 +-9999 -9999 349.9571 351.3345 350.8229 348.7388 346.516 345.7441 344.2946 343.106 341.4236 340.7513 339.7807 337.2571 333.8996 331.9134 329.9396 327.3315 323.5827 318.6287 314.1654 316.9421 318.1502 317.1405 317.3762 321.5099 324.0518 325.4621 327.7522 330.295 330.1161 329.4449 327.0838 324.1428 319.8078 321.9431 326.4887 329.3636 333.969 334.9594 335.1472 335.534 334.2202 331.5789 329.1768 326.0867 323.8771 329.8298 332.865 335.3263 335.5567 333.532 331.3226 328.7913 325.9291 321.6771 329.3478 330.7824 331.0958 330.1972 329.6859 329.464 329.3607 328.481 326.6071 323.0982 321.872 321.246 320.4241 321.4238 321.2325 322.1164 323.2143 325.1823 324.4199 325.7092 326.3097 326.9838 328.2858 329.2487 331.1526 332.1207 333.6834 334.6587 334.2927 334.6978 336.3014 337.2404 336.8813 336.8738 337.9901 338.3853 339.9487 341.131 343.3177 346.0054 348.1492 349.9617 350.5763 350.828 351.3429 345.8429 345.5557 347.0051 348.9884 351.4283 353.3877 355.5855 357.2249 357.789 359.2272 363.2668 365.6689 367.4968 368.1126 366.988 364.7805 362.2507 359.9123 358.0405 360.6611 364.4468 368.9775 371.9098 374.2478 373.8687 370.2954 366.9889 364.4658 371.1323 372.5897 371.2796 370.313 364.6477 360.3108 360.8372 360.816 362.1534 359.4466 354.3549 359.1347 365.0745 367.7779 369.308 367.2904 361.7545 357.5891 352.7957 348.4504 344.225 343.3014 341.8373 339.5643 336.9596 335.0922 333.937 330.9554 329.2516 327.7984 326.3012 324.7722 323.3029 321.5326 320.221 318.9625 315.1857 314.2603 312.034 310.4648 309.628 307.9951 306.3674 303.3655 301.5161 296.0214 295.4449 294.1647 294.0545 296.6429 298.0784 298.8904 299.5116 299.2217 297.3448 298.359 298.8646 297.4163 295.193 292.8737 291.5123 292.0789 294.0872 293.3154 292.9394 294.8903 295.7364 295.705 295.6452 293.9529 291.712 289.3861 286.578 285.851 284.7985 284.7313 284.9171 282.762 279.4544 277.3018 276.0678 274.4384 279.8364 283.2153 285.2756 286.2973 286.5067 286.1132 285.5771 284.1121 279.1699 279.3639 279.5789 279.7758 281.8666 283.0605 284.3619 285.7617 287.7388 290.0043 294.7623 296.9117 297.5746 298.6796 298.0712 296.5293 294.8798 293.5373 292.7404 292.5794 291.8094 289.8118 287.3177 286.228 284.6683 282.2203 278.2784 275.56 275.8451 278.3786 280.3738 281.2043 281.6768 279.743 276.6182 272.8029 273.7552 276.9926 278.748 280.8288 282.3986 282.3875 283.5173 285.326 285.5215 283.9716 280.7082 279.2358 278.7431 276.9029 276.0577 276.0348 275.804 275.1679 274.131 272.3605 270.6576 269.175 268.8681 268.0922 267.7571 267.8599 267.8055 267.4891 267.9994 267.9454 267.8105 267.3771 266.892 266.358 266.1803 265.6808 265.5638 264.3264 263.6162 262.579 261.6672 260.9623 260.3319 259.7171 257.6696 254.9719 245.056 244.7861 244.6838 244.9079 245.0797 244.888 245.0902 244.8613 244.793 244.8567 244.8204 244.9503 245.4432 251.0803 255.9019 257.8274 259.5114 260.7889 262.3029 263.0088 264.2401 264.4526 265.3259 266.1763 266.8359 267.086 267.2176 267.6953 268.3904 269.3395 269.8282 270.3361 271.461 272.2905 272.8355 273.8608 274.5831 275.1674 274.2864 273.0913 270.5372 267.5912 266.698 266.8665 267.1367 266.1297 264.0578 262.7344 262.1855 261.4939 260.0387 258.8467 257.3457 256.4447 253.623 251.198 250.4277 249.7503 248.8025 247.3123 247.6532 250.4652 252.0707 253.2583 255.1923 255.5898 255.0513 254.2755 254.4244 255.6826 257.6194 259.2527 261.2498 263.5403 264.4255 265.904 265.777 263.0147 260.7247 258.7969 257.3208 256.4663 254.2941 252.1597 249.6053 248.5009 246.3546 243.0726 241.4207 240.4911 239.8374 236.2621 239.9547 241.8234 241.5399 239.9461 239.2924 239.7859 240.5656 243.7218 248.7234 251.3483 254.4384 257.1846 260.0632 262.6795 262.6408 259.3516 256.3395 253.1555 252.8098 252.3441 251.791 250.784 249.5828 249.0504 247.4848 244.8022 245.3171 245.274 245.9306 246.9268 248.1744 249.2627 250.7084 251.6186 251.8533 251.9075 251.2043 250.871 250.645 250.8246 251.7531 252.6467 253.3226 254.4162 255.7645 256.11 255.9539 255.7916 255.7022 255.9446 256.9999 258.3925 259.5449 260.7073 264.6342 265.6601 266.8801 268.098 269.1767 269.6826 269.8686 269.457 270.2756 277.1556 278.951 277.1941 275.5421 274.6529 275.2853 276.7417 278.3749 278.3788 273.6648 273.0612 271.0999 269.3165 268.8514 268.7267 268.65 268.6493 268.893 276.41 278.66 282.2181 284.676 287.3592 289.5847 289.0803 288.2952 288.0597 287.8399 285.84 283.3595 279.7687 275.4707 271.9637 269.6783 270.9327 271.9751 274.5814 276.062 276.1147 275.0396 271.8503 272.2217 272.8092 272.8358 271.9814 -9999 -9999 +-9999 350.5475 352.2928 353.6494 353.308 350.5349 349.0514 347.6424 346.3622 344.7731 342.4923 342.7115 340.4712 337.3899 335.3285 333.7874 331.0195 326.561 322.2608 320.0594 314.0055 315.5428 316.9713 315.5656 316.6322 319.8097 321.5907 323.8923 325.6663 326.5906 326.4002 324.9863 322.1722 318.0842 322.1566 325.3317 327.2675 329.3092 332.2916 332.7823 333.544 334.2319 333.2874 330.8873 328.3961 323.8923 323.9187 330.1843 332.0804 333.8382 333.7997 332.2425 329.1996 326.8557 322.5858 320.6433 327.8751 328.8961 328.5427 326.9147 325.3185 326.0373 325.5945 324.7711 322.423 319.1432 320.7865 322.1101 322.6496 322.1955 324.2313 325.8379 327.6644 328.9992 328.5506 327.7504 329.0977 329.2152 327.4043 328.272 328.2848 328.2045 328.2966 329.4936 330.1663 331.0938 333.48 334.4918 334.6613 336.6513 336.9798 337.7632 339.8585 341.898 343.9401 346.2357 349.2825 349.8674 349.8956 350.6913 349.9477 344.1032 345.1328 346.9391 349.6685 352.6655 354.9443 356.4265 357.0518 358.3841 361.6268 363.0829 365.1508 366.4316 367.0698 365.8234 363.0985 360.2057 357.0684 355.2847 360.6429 364.4736 366.7636 368.3134 370.4199 372.9191 371.0528 366.3203 361.5027 366.5497 368.6235 368.5325 367.8965 367.882 366.9068 365.9379 365.5087 366.0259 365.8216 365.0245 361.6215 364.0668 370.1707 372.6847 370.8628 367.2498 363.4951 354.6239 350.8453 349.0475 346.331 344.2923 341.7076 339.6485 337.5916 336.0413 332.44 330.6073 328.9722 327.0028 325.4719 324.5432 323.0731 321.6035 320.1966 317.3678 315.915 314.789 313.5797 312.049 310.7518 309.3237 308.0275 306.7819 302.1551 299.5651 293.8472 291.8111 293.2368 295.8313 296.949 297.6179 297.4478 295.376 297.2512 297.6319 295.0681 292.4017 291.06 290.243 288.5435 290.6429 291.1438 292.0319 293.2852 293.6241 293.9814 294.4934 292.4258 290.0934 287.9973 284.7589 283.9782 283.0078 283.6193 284.1395 282.6099 279.1737 276.2108 275.0693 274.4312 278.4745 281.7983 283.5641 284.5907 285.1155 285.111 284.4506 282.9029 277.6596 277.679 279.2561 281.6996 282.6577 282.4137 284.1437 285.9894 288.4327 290.6443 295.2358 297.783 298.7402 298.74 297.5198 295.628 294.1866 292.9466 291.5813 291.5256 291.6718 289.8878 287.8352 285.8599 282.6876 282.4602 279.6837 276.041 273.132 275.922 277.7774 278.8771 279.0327 277.9749 275.4705 270.6111 271.1011 275.3036 278.0855 280.504 282.2059 282.0422 281.4188 282.4683 282.5444 282.193 279.2206 278.1985 277.6582 276.2283 275.2512 274.4984 274.1487 273.593 274.131 272.3605 270.6576 269.175 268.8681 268.0922 267.7571 267.8599 267.8055 267.4891 267.9994 267.9454 267.8105 267.3771 266.892 266.358 266.1803 265.6808 265.5638 264.3264 263.6162 262.579 261.6672 260.9623 260.3319 259.7171 257.6696 254.9719 245.056 244.7861 244.6838 244.9079 245.0797 244.888 245.1114 244.8119 244.6261 244.6731 244.7987 245.6877 250.2473 253.8802 255.6228 257.2981 258.2599 259.5743 261.5577 262.6038 263.6706 263.9975 264.288 264.6053 264.4969 264.0026 263.9594 264.9826 266.3093 267.0064 268.0052 268.9995 269.8596 270.981 272.1659 273.2798 274.368 274.8145 274.0401 273.0209 270.6813 267.9871 267.5408 268.4869 267.9005 266.9699 265.2065 264.7221 263.593 262.1393 261.2935 260.0465 258.9435 257.0751 254.6618 251.8493 251.0818 250.2287 249.1681 248.0749 246.4195 248.6759 251.7717 252.7951 254.7084 255.1145 254.8344 253.7408 253.6774 255.0092 256.3593 257.6734 259.7912 261.7524 263.4407 265.2682 264.8223 262.1938 258.6404 256.2382 255.2953 253.9095 251.153 249.554 247.5484 245.5867 243.7655 241.6893 240.3122 239.6442 239.7454 236.5813 240.7629 240.7591 239.9897 239.4405 239.4546 240.063 241.1669 244.0935 248.6432 251.5475 254.5403 257.5307 261.2527 264.275 264.0699 261.9217 258.6422 255.6239 255.5302 255.3941 254.8245 253.6802 251.5773 250.665 250.4284 250.2407 245.7584 245.6555 245.1378 245.7065 246.18 246.8354 247.5125 248.6738 248.9524 248.7455 248.2234 248.3028 248.6093 250.47 250.1471 250.7201 251.576 252.1374 253.3974 254.5752 254.3558 254.5953 254.9845 255.7522 256.5847 257.6713 258.898 261.5983 263.5009 264.5116 265.1143 266.175 267.0732 267.2789 267.601 267.4868 270.3119 277.1283 275.7192 274.7879 272.652 271.4162 274.0543 275.8397 277.1507 276.9233 272.9095 269.9379 269.1107 269.0572 268.6802 268.5938 268.5731 268.695 270.9812 276.5744 279.1702 281.1288 283.2183 285.7716 287.3736 287.968 287.8644 287.6222 287.6261 285.7957 282.7969 280.4276 274.9716 270.765 268.3386 268.1678 269.0283 272.3574 273.822 273.9023 272.8215 268.9105 269.3873 272.0834 271.999 272.1472 -9999 -9999 +-9999 352.6327 354.357 355.1206 354.3887 352.1225 350.7989 349.1733 347.5529 345.7473 344.5463 344.6827 341.5753 338.4864 335.9166 332.8026 329.7377 328.1767 326.5211 324.4615 315.9317 312.7353 313.9023 314.041 314.9218 317.4253 319.616 321.3948 322.6199 322.3221 321.0051 317.8553 315.725 319.1804 322.8368 324.8641 326.7248 328.2404 330.4107 331.4311 332.7516 332.9762 332.0557 329.6713 325.7607 320.9877 326.196 331.937 332.4144 332.1634 331.0756 329.6702 327.3132 324.7574 320.0591 319.886 326.3332 326.2242 325.2617 322.9567 321.4146 320.9023 320.7084 320.1343 318.1333 321.0573 323.8848 326.5213 327.3614 328.1151 328.9282 329.5676 328.9564 330.5877 332.6112 333.8307 334.543 331.8422 330.7951 330.6025 332.4814 332.9963 332.5616 331.5231 332.5956 332.3499 334.5466 336.2973 337.9188 339.0601 338.5727 338.3021 340.736 342.5509 344.2728 346.5867 348.2802 349.3989 348.3416 349.0041 346.3803 343.5151 345.1239 347.9809 350.7565 352.8996 355.1463 357.2043 357.9892 360.6023 362.5137 363.1912 364.7711 365.1407 366.0435 365.4118 363.1364 360.5284 357.3214 353.1991 358.059 361.6492 363.0562 363.3364 367.534 371.357 370.3191 365.3604 360.3958 362.0916 364.1911 364.3661 365.9976 367.243 365.9109 366.8674 368.8824 371.3661 374.3519 374.7047 372.2427 367.0175 371.6128 374.2771 374.2685 370.5982 366.4094 357.9182 354.6782 351.5369 349.1852 346.4183 344.2278 342.178 339.7863 337.6542 333.5717 331.7909 329.757 328.0324 326.7497 325.2596 323.4947 321.8142 320.7561 317.6495 316.3585 315.3612 314.3027 312.65 310.8033 309.342 307.937 306.9279 305.8236 304.6427 299.6415 294.4276 290.8345 293.5395 295.1182 295.8941 295.8737 293.8536 296.2443 296.5298 291.3538 288.3187 286.4893 286.3193 287.2026 287.5723 289.378 290.3589 290.9464 291.4041 292.3648 293.0699 291.1453 287.6861 285.8381 283.3688 282.4701 282.0788 282.6322 283.2481 282.5607 280.1414 276.871 274.2221 274.2669 276.609 279.257 281.7869 282.4528 283.9539 284.3329 283.5215 282.0805 275.9193 275.4467 277.9173 280.6003 281.4489 281.5504 283.774 285.7089 289.152 294.8319 296.5164 298.397 298.9889 297.654 296.6412 294.7173 293.2357 291.9628 290.7657 291.4322 292.0614 290.6366 287.8352 285.8599 282.6876 282.4602 279.6837 276.041 273.132 275.922 277.7774 278.8771 279.0327 277.9749 275.4705 270.6111 271.1011 275.3036 278.0855 280.504 282.2059 282.0422 281.4188 282.4683 282.5444 282.193 279.2206 278.1985 277.6582 276.2283 275.2512 274.4984 274.1487 273.593 272.8688 270.9944 269.9484 268.4619 267.3156 266.959 266.7589 266.4007 266.4182 266.2533 266.7849 267.1564 267.0254 266.4619 265.7902 265.7111 265.7554 266.1438 265.8717 265.186 264.1321 263.0614 262.2582 261.7005 261.3937 260.3546 258.5522 255.9677 246.6597 244.5955 244.6085 244.7471 245.1256 244.969 244.6897 244.7161 244.5265 244.7948 244.8499 247.7133 250.3645 252.9493 254.7744 255.7175 256.8935 258.1571 260.2829 261.06 261.6932 262.3365 262.3646 262.2416 261.2006 260.9564 261.2522 263.6287 265.2764 266.2824 267.5561 268.5171 269.6056 271.2365 272.4441 273.4311 275.3453 275.5265 274.7094 273.4825 270.4984 269.0565 269.9861 270.0775 269.0047 268.0527 266.4662 265.3717 263.8835 262.9333 262.1891 261.0535 259.5614 257.8827 255.8944 251.7277 250.9938 250.2694 249.4167 248.3138 246.9041 246.5194 250.1878 251.7994 253.7588 254.5947 254.778 253.3463 253.0637 253.9968 255.4115 256.8801 258.6575 261.099 263.192 264.4814 264.5067 262.9281 259.9151 256.9517 253.994 252.0658 248.615 246.7947 245.6055 243.1965 241.4022 240.4212 239.6973 239.3927 240.6698 240.4892 240.5234 239.9534 239.6036 239.2805 239.696 239.9857 241.2655 244.2066 248.5016 251.1949 254.1898 257.8113 262.098 265.2354 266.7181 264.9251 261.9803 258.5489 258.7018 257.9526 257.4447 256.2823 253.431 252.144 252.8387 253.3127 252.1283 251.9614 247.3939 245.8286 246.4633 245.7392 246.6105 246.7002 247.0051 247.6195 247.9985 247.7076 250.0867 250.1255 249.0421 249.7329 249.7625 250.0688 250.5382 251.6833 252.4875 254.0259 254.9643 255.9683 256.8717 257.5962 258.2898 260.455 261.6853 262.7232 263.4881 264.457 264.6914 264.5163 265.3116 266.8646 269.7534 274.2563 273.8715 271.5464 269.3784 270.6097 273.2466 274.8271 275.6942 275.3 271.6099 268.4377 267.0849 266.9614 268.8706 268.4654 268.5639 270.8898 272.2996 276.1871 277.7996 280.0417 281.966 284.0135 284.9406 285.7628 286.3346 286.7422 287.4846 285.7001 284.1196 280.0069 274.2393 269.0182 266.2022 265.7163 266.1164 268.5628 269.1071 269.6082 269.524 266.4292 268.1616 270.8987 271.3798 270.8042 -9999 -9999 +-9999 353.9415 354.9405 355.117 353.9606 352.0173 350.9559 350.0482 348.8249 347.8771 347.6539 345.195 341.2654 338.3393 336.2486 334.9561 333.7609 331.1167 328.0104 324.2547 320.0115 314.5826 312.2026 312.0917 311.8562 313.6641 316.0087 318.1268 319.2514 317.584 315.361 314.5344 317.3157 319.3339 321.3747 323.5647 325.2524 326.4546 329.9773 331.5159 331.9537 331.1343 329.8014 327.3653 323.238 322.5379 327.2374 331.2029 331.3133 329.9328 327.6706 326.843 325.63 323.1445 318.7553 319.7484 323.9612 322.5089 319.5545 317.5893 317.6572 317.4132 318.5483 319.6159 321.1411 324.3693 327.1868 329.1195 330.1155 332.1472 333.3485 333.6888 333.6575 334.5562 334.7067 336.6935 338.0796 334.8633 331.4189 333.9418 336.8277 337.6524 337.7293 336.883 336.8311 336.5107 335.487 337.0122 338.413 339.8502 340.2923 341.1263 343.416 343.962 345.4277 347.1843 348.6349 348.6912 346.5959 345.5384 342.8622 344.3223 346.6297 348.0546 350.542 353.0826 355.8279 356.0405 357.765 359.1883 361.8482 362.2419 362.5329 363.7814 365.4352 365.1836 363.1351 360.5054 357.4 352.4485 356.5324 358.7707 358.6386 363.0893 367.1751 370.4017 368.3515 363.2231 358.8836 357.7798 359.401 362.2504 366.4644 366.3654 362.1392 363.2388 368.5449 372.7277 377.7652 379.2717 378.2289 372.7981 375.6231 376.7627 376.0632 372.5126 368.4381 360.3716 356.8289 353.865 351.0706 347.9443 345.3648 343.269 340.863 338.5615 333.992 331.3696 329.7886 328.5718 327.2519 325.7903 323.8852 321.9813 320.4131 317.5976 315.756 314.6864 313.4937 311.805 310.1872 308.9517 307.5989 306.2206 305.1405 305.3015 304.1639 299.8863 294.4228 289.9854 292.0817 293.829 294.1842 292.7407 296.5405 296.5276 294.4968 290.6971 287.761 283.922 284.7435 285.5532 287.9521 288.1695 288.1919 288.9404 289.7252 290.3533 289.0278 286.4551 283.7353 281.7413 280.6806 280.3094 281.5707 282.1872 281.9635 281.054 279.1748 275.607 274.2669 276.609 279.257 281.7869 282.4528 283.9539 284.3329 283.5215 282.0805 275.9193 275.4467 277.9173 280.6003 281.4489 281.5504 283.774 285.7089 289.152 294.8319 296.5164 298.397 298.9889 297.654 296.6412 294.7173 293.2357 291.9628 290.7657 291.4322 292.0614 290.6366 288.9157 287.8091 286.9916 285.8388 283.313 279.2505 271.4444 272.4883 275.1711 276.1284 276.4192 275.5979 274.7266 268.8737 270.518 275.7459 278.5222 279.4999 280.4213 281.2195 280.3444 279.8987 279.9185 280.5963 278.5728 277.6363 276.4502 275.5281 274.5183 273.5444 272.9311 272.4055 271.8352 269.4931 268.8554 267.8484 266.2736 265.7794 265.4455 265.4612 265.0503 265.3713 265.8015 266.1959 266.275 265.6231 264.5816 264.918 265.3716 265.6489 265.9396 265.34 264.2901 263.4232 262.6818 261.6547 260.5359 258.0802 256.4305 254.2617 248.2186 244.5139 244.5032 244.6638 244.9895 244.0581 244.7012 244.5621 244.4986 244.696 245.0759 247.4431 250.2396 252.2459 253.2701 254.4563 255.4495 255.9917 256.491 257.8164 259.8155 259.5369 259.5013 258.4186 258.0746 259.1508 260.3875 262.9566 265.3192 266.9967 268.2395 269.2065 270.6965 272.1028 273.132 273.8698 275.4395 276.0408 275.5386 273.7221 271.5857 270.6519 271.3557 270.9738 270.1306 268.863 266.489 265.5468 264.6417 263.5245 262.3546 261.0454 259.4259 257.97 254.9852 251.6401 250.7377 250.1578 249.0934 248.0223 246.71 245.8598 246.9763 249.633 252.6004 253.6068 254.182 253.3236 252.0334 253.0183 254.7523 256.2834 257.7764 260.7372 262.091 263.5467 264.2269 263.951 261.2444 258.4368 255.6679 251.6148 247.1494 245.08 243.7686 241.6352 240.6787 239.9721 239.532 239.6114 240.9645 240.7566 240.1189 239.6077 239.3228 239.6313 239.6622 239.7667 240.9854 243.8006 248.139 251.4359 255.877 259.428 263.0876 266.0576 267.3925 267.0004 264.6976 261.4791 261.1877 260.3018 259.578 257.7039 254.2883 253.6784 255.7166 256.627 255.2125 254.1986 252.8868 251.7994 247.1518 246.7896 246.6507 246.4591 246.7005 248.3143 250.584 251.4206 255.0887 258.2997 256.5319 249.6997 250.1888 252.6143 252.8194 250.1085 251.5889 252.4358 253.5135 254.6447 255.4779 256.7072 257.8019 259.3955 259.6518 260.1938 260.792 261.0852 262.6703 264.5945 265.7382 266.7157 268.7781 272.3927 271.343 268.9468 267.1134 269.7893 272.5701 274.1754 274.1375 272.9371 269.8929 266.5435 264.8749 262.7253 264.9467 268.3579 270.7104 271.6995 272.6683 275.773 277.438 279.4499 280.931 281.5101 282.3937 283.4594 284.1172 285.757 287.6684 286.2494 284.6901 280.9801 276.5238 271.5714 268.1086 265.6908 261.864 264.3004 264.391 264.3009 264.1106 263.866 265.3513 267.0243 268.2763 268.5473 -9999 -9999 +-9999 353.9955 353.7729 353.6362 352.1862 350.5247 349.8906 350.09 350.1898 350.0326 348.3862 344.9425 342.3744 340.4583 338.4038 337.0226 334.0923 330.9016 327.6187 324.5214 323.0799 320.0411 314.0721 312.1667 310.403 310.907 311.9644 314.5961 315.7796 313.8387 312.8214 315.2786 318.0203 321.1611 322.0363 322.4762 324.4207 326.6724 329.7768 330.7014 330.2557 330.3588 328.4922 325.4171 320.9305 320.8914 325.0332 328.2752 328.5776 327.8444 325.7528 323.729 322.9257 320.9794 317.2988 318.4717 319.3657 317.1768 316.4223 316.4391 317.1601 317.859 321.7239 324.2177 325.3618 329.7081 331.8861 333.3441 333.6922 334.434 336.5255 336.9207 337.3408 338.0862 336.286 338.4478 339.8489 337.5062 334.2818 337.5025 340.8043 341.6989 341.5663 340.8954 340.3763 340.8409 340.5947 340.5623 341.2097 341.1883 342.4756 343.7016 346.3917 346.6466 346.9777 348.0405 349.1697 347.8652 346.1946 343.5289 340.7872 344.5197 347.4074 349.5175 351.5362 353.8047 355.9835 355.2306 358.1508 359.3825 361.0043 360.3388 361.7139 363.8692 365.3793 366.0136 364.0887 360.3694 356.9854 350.059 352.5141 356.2707 359.985 363.6207 366.8814 368.7893 366.3383 361.2036 356.3071 353.4474 357.0485 361.8431 365.0721 363.4127 357.8246 361.0461 364.3545 366.5263 371.765 376.8805 379.7431 379.1626 380.5594 381.3335 379.6939 374.6141 369.2815 362.1248 358.551 355.6394 352.4547 349.215 346.6183 344.0651 341.3884 339.3517 334.4795 332.4785 330.7357 329.5431 327.8484 325.6075 323.7249 321.9046 320.1267 316.5842 314.8308 313.1815 311.4343 310.1835 309.5655 308.0309 306.151 304.8835 303.2408 304.206 304.477 302.6893 299.5697 293.6112 292.0817 293.829 294.1842 292.7407 296.5405 296.5276 294.4968 290.6971 287.761 283.922 284.7435 285.5532 287.9521 288.1695 288.1919 288.9404 289.7252 290.3533 289.0278 286.4551 283.7353 281.7413 280.6806 280.3094 281.5707 282.1872 281.9635 281.054 279.1748 275.607 274.2723 275.3065 277.9707 280.4489 281.7292 283.2611 283.4535 282.6271 280.5618 274.5587 274.3546 276.3955 278.9879 279.8429 280.9828 283.5607 286.5392 289.666 295.8592 297.787 299.2723 298.8525 296.875 294.8207 293.2284 291.5145 289.6643 288.6426 292.6613 292.8292 291.6664 290.1322 289.3157 288.7662 288.0978 285.981 282.7463 275.1517 271.4256 270.7445 271.9042 272.2886 273.2062 270.3983 264.5564 270.7869 275.3964 276.0501 276.6217 277.9437 278.856 278.3285 278.4848 278.616 278.6619 278.0284 278.0265 276.2516 275.1543 274.3214 273.452 272.8721 271.788 271.1859 268.5458 267.0129 266.5376 265.1591 263.9623 263.5485 263.4761 263.5661 264.0697 264.5528 265.0533 265.2166 264.6552 263.778 263.8728 264.6391 264.763 264.9034 264.6889 264.0562 263.4581 262.5716 261.6151 260.4213 257.9855 255.3131 252.3015 246.0863 244.2966 244.412 244.7104 245.0072 243.7285 244.8289 244.6541 244.6492 244.6508 247.1699 249.6988 251.0384 251.5392 251.347 252.2157 252.2037 252.3631 253.0762 254.7191 256.3058 255.9157 255.9663 258.2253 258.41 257.6313 260.8028 265.9828 267.2221 268.4674 269.6741 270.5246 271.3823 272.9384 273.7726 274.3457 275.6429 276.3294 275.942 274.9162 273.3722 272.2375 271.8984 271.4211 270.7575 269.6255 267.186 266.0388 264.9772 263.7212 262.334 260.9961 259.2119 257.9707 255.7201 253.4374 252.2646 252.0007 250.5773 248.9848 248.048 245.8534 244.8868 246.1246 251.0279 252.2678 253.2629 253.0663 251.169 251.7769 253.762 255.3837 257.1486 259.9559 261.2131 262.7283 263.705 263.9941 262.2875 261.2314 259.1242 255.811 251.3204 247.6496 243.807 241.0874 240.3637 239.8056 239.8193 239.0651 236.7503 241.1157 239.9481 239.2507 239.729 239.7911 239.5745 239.7596 240.4382 242.9355 248.2541 252.0643 256.7331 260.6453 263.1307 263.9816 264.0787 265.3968 265.3541 263.6793 263.2028 262.2813 261.333 258.6621 255.8308 255.7371 258.2537 259.2819 258.2259 257.3378 255.267 253.9615 252.193 251.42 249.1551 248.5858 249.1014 251.1182 253.7721 257.1413 260.491 263.9682 264.6671 258.7596 256.8412 260.0244 261.8499 256.3171 250.8589 251.7232 252.0436 252.7867 253.6186 254.8225 256.0484 256.8297 257.9201 258.8138 260.8717 262.0134 262.9001 264.2826 264.4359 266.2478 270.3773 269.9059 267.9546 266.5865 266.252 269.8463 272.6721 273.8311 272.5458 270.7979 267.2125 264.5776 262.5976 262.9125 266.5906 271.4258 272.2367 273.1229 273.2639 276.0488 277.8007 279.026 279.8347 280.3666 280.9223 282.4018 283.5808 285.6776 288.2678 287.1248 285.505 282.5091 281.135 278.67 273.502 268.6887 266.4773 262.0938 260.3095 259.7879 260.2621 261.2458 261.6805 262.5804 264.3326 265.1144 -9999 -9999 +-9999 352.0834 351.9336 351.2687 349.9916 348.4507 348.63 349.5687 350.7639 351.4009 349.2993 346.5338 343.8658 341.1382 338.8705 336.6882 333.6876 331.2723 328.5951 326.6299 325.1645 323.8496 321.5453 317.2205 311.2077 309.3085 310.1358 311.2061 312.3075 311.0849 314.2355 318.0276 320.8592 322.9995 324.2993 324.8948 325.9296 327.4684 329.0974 328.588 328.4816 329.1129 328.5489 325.7711 322.424 318.2663 321.5493 325.484 325.8911 325.9394 324.9513 323.0025 320.0436 317.0526 315.761 317.1657 314.9524 314.9857 316.272 317.443 318.9544 322.91 327.4864 330.2286 329.2047 335.6224 337.4517 338.4497 338.3229 337.6914 338.677 339.8683 340.4118 340.63 338.7618 340.1934 341.1119 338.7676 337.0671 337.5659 342.2231 344.2362 344.9665 344.7901 343.976 343.7819 343.4123 343.2245 342.8124 342.1803 343.0838 344.9103 348.6749 349.067 349.0257 349.736 349.3951 347.6065 344.7818 341.5802 339.3134 344.9156 348.2302 350.3587 352.1846 353.706 355.528 356.9527 358.2583 359.6471 359.9144 358.4113 361.1642 363.7578 365.086 365.9616 364.6978 360.3768 356.6212 348.2872 354.3 358.7154 360.4712 361.2043 364.4019 367.3552 366.5848 362.004 350.0694 352.9783 359.6338 362.2234 360.2792 356.7012 356.0652 360.3694 364.7943 368.4237 376.7299 380.9037 385.8463 387.0156 388.041 386.8884 382.8582 377.073 372.9327 365.5883 361.5268 358.3306 352.4547 349.215 346.6183 344.0651 341.3884 339.3517 334.4795 332.4785 330.7357 329.5431 327.8484 325.6075 323.7249 321.9046 320.1267 316.5842 314.8308 313.1815 311.4343 310.1835 309.5655 308.0309 306.151 304.8835 303.2408 304.206 304.477 302.6893 299.5697 293.6112 288.7574 290.8955 292.5977 291.3511 294.7223 294.2013 293.8773 291.9035 288.9568 284.3693 281.9011 281.3242 285.16 285.3563 287.0252 285.8488 285.4212 286.5383 285.5287 283.6184 280.4416 279.2089 278.775 278.8753 279.1062 279.8009 279.7449 279.8763 279.5399 276.6828 273.5475 274.2759 277.0436 279.1937 280.8749 281.9661 282.584 281.5834 279.3387 273.6342 273.1237 274.8392 276.6277 278.4769 280.7025 283.3532 286.3481 289.4677 295.7834 297.7212 299.1492 298.6219 296.5511 294.039 292.0422 289.5927 287.0209 291.3351 293.2874 293.3246 291.9792 290.8119 289.9059 289.3263 289.3259 287.9828 285.5504 279.4041 275.6856 272.6011 268.4184 267.2453 267.9171 266.0616 265.1645 269.2822 272.7577 273.5755 274.5847 276.0516 276.3091 276.2995 277.0023 277.4243 276.8096 277.7956 277.4931 276.5638 275.5971 274.5983 273.26 271.8134 270.8861 269.2554 266.8145 265.8916 264.347 263.2784 262.4256 261.6021 261.276 262.1091 262.7008 263.6386 263.9659 263.7917 263.4623 262.788 263.0408 263.4853 263.3138 263.643 264.1038 263.6619 262.3359 261.4839 261.2675 261.0236 258.9933 256.4449 253.2289 244.6505 244.2747 244.3633 244.6198 244.916 244.0198 244.7411 244.8696 244.8325 245.0223 247.8045 249.7757 249.689 249.2893 249.6875 250.886 252.344 253.2297 256.096 255.4543 256.5608 258.7045 261.3341 262.2376 263.0343 264.3795 265.7762 267.8015 268.6112 269.7445 271.1244 271.7556 272.2851 273.7307 274.3751 274.9044 275.5081 276.0328 276.0829 274.7997 273.7786 272.959 272.6672 271.8169 270.7738 268.3208 267.1392 266.1437 265.0389 263.9762 262.9326 261.1979 259.6017 258.4077 257.0101 255.3013 255.1485 254.0261 251.3325 248.1649 247.4134 246.1725 245.5585 244.3532 248.8411 251.2218 252.3477 252.5149 250.4988 250.6912 253.278 254.8885 256.4789 259.0124 260.2063 261.9214 263.2878 263.7554 263.7998 263.5541 261.6587 259.1249 253.7583 249.4195 244.8644 240.7355 239.698 239.7241 239.7998 237.9029 236.2867 239.5814 239.0867 239.0973 239.1954 239.2772 239.6571 240.1419 240.6994 242.9174 248.2537 252.4335 256.5403 260.4335 261.4351 261.0841 261.7585 264.3107 264.3306 263.9028 263.8067 263.248 262.4215 259.3811 257.5369 259.1696 260.5074 261.4764 260.2032 259.7417 258.0959 255.8777 254.6532 252.3789 250.4666 251.2514 252.9583 255.7036 257.7874 260.4058 263.7681 266.8295 267.9779 265.091 262.0719 263.6732 267.3874 264.9984 256.6442 252.1409 251.8528 252.325 252.8101 253.6834 255.2052 257.2363 258.3176 259.1058 260.2923 261.101 262.2735 262.7975 262.4157 265.4705 267.7978 266.9193 264.7122 263.5887 265.3999 268.9929 272.0085 272.5894 270.3724 268.9396 264.6515 261.4608 262.1159 265.905 271.9539 275.6907 276.5793 276.8927 276.7666 277.2105 277.8766 278.3814 278.7199 279.1471 280.5674 281.9926 283.1277 284.8417 287.8407 287.1597 286.1009 285.7421 284.4511 282.5245 279.5284 275.5348 271.7374 265.1983 265.2376 263.9915 261.7294 259.0014 258.2646 259.33 260.2097 261.481 -9999 -9999 +-9999 350.4173 348.9137 349.2832 347.9861 346.8105 348.0688 349.2096 350.3911 351.304 349.2109 346.5086 343.7219 340.92 339.05 337.1936 334.5005 331.9668 329.8703 328.0842 325.325 322.8831 320.5232 316.2581 310.7653 309.6121 309.4377 309.7509 309.7885 313.9119 317.7944 319.9984 321.6131 323.3 324.5377 325.6839 326.2822 327.364 327.0888 326.4132 326.8039 327.8527 328.2404 326.8321 324.0014 319.0677 317.9554 322.9669 323.5357 323.162 322.3493 320.9833 318.192 314.7878 315.1007 314.1827 315.5915 317.6077 320.6181 322.8827 325.1869 328.8978 332.1979 334.7354 332.8046 339.6716 343.4148 344.5192 343.3083 342.0341 341.4471 342.4367 343.5526 343.4324 342.477 342.7296 343.1603 340.8477 336.8567 339.3086 343.6322 345.8199 347.16 347.6731 347.4802 346.6739 345.9716 345.2 344.1549 343.017 343.9678 345.4326 349.8046 350.7191 350.0424 350.3965 349.2778 347.485 343.6797 339.1394 338.7578 347.0184 348.682 349.8868 350.9312 352.0885 353.8492 355.3293 356.9782 358.3259 357.8396 356.8492 358.6288 361.5146 363.2904 364.0016 363.6015 360.1276 356.3632 347.1614 350.1582 358.7154 360.4712 361.2043 364.4019 367.3552 366.5848 362.004 350.0694 352.9783 359.6338 362.2234 360.2792 356.7012 356.0652 360.3694 364.7943 368.4237 376.7299 380.9037 385.8463 387.0156 388.041 386.8884 382.8582 377.073 372.9327 365.5883 361.5268 358.3306 355.1968 351.6247 348.7847 345.8871 342.758 339.9276 334.5579 332.2677 330.0744 328.1385 327.1848 325.3958 323.1949 321.6254 319.966 316.6837 315.2295 313.5305 312.08 309.8093 308.2771 307.7121 305.5126 302.251 300.7769 301.3693 302.344 302.4588 301.0488 296.5769 290.7623 288.667 290.7553 289.7526 291.716 291.1869 289.5743 286.7274 282.8532 281.0171 280.0633 279.564 282.1192 282.1287 282.6147 281.4386 279.2494 280.4565 280.1553 277.9968 275.4389 276.0198 276.2337 276.3778 275.7616 276.1879 277.0778 277.7379 278.1382 277.0326 271.3691 273.4816 276.0733 278.1142 279.7742 280.84 281.2117 280.5466 278.338 272.4768 273.1716 273.915 275.7231 277.9005 280.3188 282.7544 285.7456 288.8183 294.8397 296.7181 298.3452 297.9905 295.8252 293.1832 290.3397 287.6843 284.8381 291.0074 292.9585 292.7928 291.2552 289.8427 289.0512 288.3481 289.004 289.2174 288.2374 283.0116 279.6697 277.3256 274.8096 268.2112 263.8048 263.2232 264.5406 267.154 269.835 271.3822 273.0878 274.0099 273.8551 274.5914 274.7031 275.4455 275.9014 277.5701 277.3121 276.9386 276.2278 275.2123 273.7451 272.0116 271.0645 270.0475 264.9033 264.0386 262.9257 262.1753 261.4913 260.901 260.1678 260.2528 261.1226 262.1229 262.2274 262.0865 261.7868 261.4432 261.966 262.2137 262.1142 261.7895 262.9336 262.6304 261.5064 260.8443 261.124 260.6318 258.7204 255.9945 253.4638 244.5504 244.2029 244.3014 244.5382 245.0131 244.1896 244.5034 244.663 244.5118 245.2078 246.4155 247.7516 247.95 249.4033 252.9956 254.8839 256.1172 257.3694 258.888 259.3583 260.0851 261.5147 263.8746 264.3149 265.0582 266.8244 268.1077 269.9249 270.7984 271.7173 272.5385 273.491 273.7411 274.5929 275.0537 275.2886 275.291 275.2995 275.6184 275.0143 274.0963 273.2896 272.4728 271.8183 270.9001 268.4207 267.1302 266.1825 265.204 264.396 263.1544 261.9232 260.5151 259.0575 257.7645 255.6871 255.6242 254.2659 251.6795 248.8896 248.2334 247.486 246.9543 245.39 246.8817 249.5923 251.1693 251.6288 250.2647 249.8972 252.426 254.1304 255.7293 257.9416 259.12 260.7558 261.942 262.2786 263.0446 263.749 261.6706 260.0086 256.9424 251.5304 248.4184 241.9752 239.8613 239.7416 237.6812 236.2583 241.184 238.6076 238.7451 240.7528 240.0708 240.0424 240.3362 240.6962 241.4685 243.2176 248.1202 252.5491 256.9341 259.0413 258.3156 258.6306 260.4248 261.9128 262.2972 262.45 262.9682 263.635 262.8573 261.2646 260.7555 261.4883 262.3036 262.7795 262.2085 261.8143 260.0764 258.1822 256.7688 253.8849 252.1202 253.4573 254.3322 258.46 260.3275 262.788 266.0493 268.9518 270.1264 268.0386 265.2506 267.5391 270.8489 269.7462 264.0465 253.8616 252.4867 252.531 252.5834 253.1168 253.3128 254.689 256.185 257.2719 258.3197 259.8202 260.6178 259.405 262.0403 263.8569 264.9739 264.123 262.248 264.2939 266.7576 269.1013 270.6885 270.5081 268.7772 266.6819 262.2771 262.0958 265.3367 269.8888 273.964 277.2594 279.0242 279.138 278.789 277.0526 276.9263 277.0103 277.4746 278.884 279.8195 281.5123 283.1277 284.8417 287.8407 287.1597 286.1009 285.7421 284.4511 282.5245 279.5284 275.5348 271.7374 265.1983 265.2376 263.9915 261.7294 259.0014 258.2646 259.33 260.2097 261.481 -9999 -9999 +-9999 348.662 347.0062 346.9528 346.471 345.7314 347.1439 348.4839 349.545 349.7195 348.0663 345.8286 343.3716 340.8308 339.0429 336.5604 334.4685 332.7798 331.4374 328.3584 325.3764 322.8697 320.0696 316.8448 311.5101 309.0243 309.0245 308.5338 310.7182 313.3421 316.696 318.889 320.5518 321.7246 323.377 324.5835 325.7056 326.4628 325.5751 325.316 325.9282 327.0313 327.5774 327.4869 325.6009 321.9068 316.263 319.9799 320.641 320.1944 318.4815 317.712 315.2597 314.0445 313.6783 315.032 320.094 320.2413 322.2966 325.5476 327.4697 329.7684 333.1006 336.1323 336.8562 340.8694 346.1627 350.1653 349.048 347.0489 345.4628 345.4124 346.0697 345.8183 345.6594 345.3073 345.7134 343.1897 338.7927 338.854 343.3578 344.9605 346.4709 349.5848 349.7476 349.1199 347.9013 346.7875 345.3752 344.7278 344.6615 346.0746 350.466 350.7191 350.0424 350.3965 349.2778 347.485 343.6797 339.1394 338.7578 347.0184 348.682 349.8868 350.9312 352.0885 353.8492 355.3293 356.9782 358.3259 357.8396 356.8492 358.6288 361.5146 363.2904 364.0016 363.6015 360.1276 356.3632 347.1614 350.1582 354.8971 355.2492 357.3275 360.0322 363.4593 364.103 359.6774 347.3379 350.2112 356.3616 357.7555 351.485 352.008 354.7158 358.0499 361.3141 369.2201 375.6538 382.1884 388.1835 391.6183 393.5028 390.737 385.6275 381.6022 378.2776 370.9882 365.58 360.74 356.4717 351.0776 346.5612 344.0292 341.6815 339.0357 334.1136 331.895 329.774 327.7567 326.6546 324.7164 322.4138 321.0378 319.48 316.3761 314.9373 313.5577 312.0778 310.6241 307.1158 304.2634 303.6758 301.3003 297.1792 297.3335 297.7853 299.1449 300.2349 297.9086 290.9878 287.2298 288.7697 288.6536 287.7147 286.4459 283.8769 280.5084 281.0308 280.9178 282.1544 280.1046 278.383 279.8843 277.6168 276.5477 274.6896 274.6396 273.7949 273.0869 272.823 272.9378 273.3991 274.3381 273.901 273.3492 274.5154 275.5192 276.0918 275.9336 269.6663 271.938 273.9897 276.0705 277.2348 278.868 279.8527 279.0895 277.4529 272.8058 268.4706 272.2176 274.7946 277.3838 279.3206 282.0072 284.7684 287.5078 293.7681 295.5401 297.0104 295.9585 293.4952 291.2711 288.752 285.9115 283.7545 290.1377 291.8828 291.686 290.2687 288.9873 287.7121 286.9408 287.897 288.8819 287.7691 285.6275 282.2853 280.732 278.6529 274.097 269.2074 261.3578 259.0383 264.5135 262.7634 270.0422 271.6318 271.7379 272.3102 273.0161 273.6084 274.3594 275.9958 277.2427 276.9443 277.0211 276.9996 275.854 274.6642 273.1166 272.2601 271.5485 265.4778 264.3864 261.8716 259.4911 260.4398 259.0659 258.5387 257.4543 257.5914 259.4942 259.7226 260.0233 260.0863 260.0956 260.5802 260.9854 260.9438 260.5129 261.5627 261.3605 260.659 260.5219 261.339 261.08 259.1573 255.3077 251.8463 245.2575 244.1727 244.3893 244.4981 244.9951 244.7127 244.5856 244.4352 244.4315 245.1352 247.2826 249.2094 250.2751 253.2061 255.1242 256.5656 257.9669 258.9593 260.8526 261.4505 262.3776 263.8903 265.4254 267.1878 267.4888 268.1159 269.8144 272.5525 272.7265 273.3853 274.412 275.2295 275.5992 275.5743 275.6036 275.4271 275.0154 274.7444 274.9425 274.805 274.1951 273.2109 272.2296 271.5236 270.8356 268.9654 267.9758 266.4951 265.917 264.7733 263.8039 261.751 260.3856 258.9956 257.1004 256.2573 255.2998 253.6175 251.9374 249.4442 247.5314 246.2215 245.3999 245.16 244.7128 248.4108 249.8666 250.1731 250.2436 249.3331 250.8673 252.8936 254.503 257.3886 258.1974 259.521 260.2222 260.871 261.8607 263.3372 264.0873 264.1254 259.1661 256.4187 253.9104 245.9019 239.7941 239.6731 236.2695 241.0691 239.4468 238.3507 241.4368 241.8389 241.2431 241.1486 241.1837 241.905 242.6371 243.7901 248.7127 251.8463 254.9466 255.8459 255.702 256.9112 258.357 259.4469 259.8541 261.2291 262.4991 263.7437 264.2157 263.9624 263.491 263.5208 263.7318 264.2166 264.2176 263.3334 261.3391 259.3466 257.4646 255.4834 254.2128 254.696 256.2005 260.1704 261.9343 264.9633 267.9049 270.3624 271.5019 270.0813 269.3597 270.9183 273.9377 273.3676 269.1375 263.3538 252.4867 252.531 252.5834 253.1168 253.3128 254.689 256.185 257.2719 258.3197 259.8202 260.6178 259.405 262.0403 263.8569 264.9739 264.123 262.248 264.2939 266.7576 269.1013 270.6885 270.5081 268.7772 264.0468 262.2771 262.0958 265.3367 269.8888 273.964 277.2594 279.0242 279.138 278.789 277.0526 276.9263 277.0103 277.4746 278.884 279.8195 281.5123 282.614 284.4346 286.4678 286.5145 286.4069 286.8826 286.6583 285.7679 283.2493 280.3195 277.9805 273.3256 271.0033 268.014 267.605 266.272 263.4482 258.7082 256.33 257.9825 -9999 -9999 +-9999 348.0737 346.3583 345.2607 344.9237 343.9295 345.7137 347.3963 348.1749 347.5605 345.5838 344.0443 342.7314 341.6599 339.4196 336.5084 334.0572 331.5594 329.8718 327.0755 324.9 322.0346 318.8602 316.0798 311.2403 308.9563 308.8629 308.1172 309.9339 312.5666 315.138 317.0123 318.6721 320.0639 321.8391 323.5497 325.3098 325.8918 324.6821 324.3795 324.9243 325.7155 326.5178 326.8608 326.9027 324.379 320.5488 316.5269 316.8763 315.8638 314.2316 312.9206 313.6706 317.8376 321.6346 323.1569 325.0314 324.8965 325.6476 328.3076 330.4594 332.1007 333.747 336.5498 338.7931 341.4798 346.1627 350.1653 349.048 347.0489 345.4628 345.4124 346.0697 345.8183 345.6594 345.3073 345.7134 343.1897 338.7927 338.854 343.3578 344.9605 346.4709 349.5848 349.7476 349.1199 347.9013 346.7875 345.3752 344.7278 344.6615 346.0746 350.466 350.3651 351.9429 350.9207 349.0953 346.3754 342.3207 337.5392 340.4516 348.4013 347.365 347.4447 348.3718 350.3265 351.9624 353.7142 355.6486 357.233 358.3514 355.1449 355.3087 357.9872 359.1723 359.761 360.7482 358.9137 355.9277 347.8797 344.8964 348.1434 347.9886 351.9317 355.0965 358.5626 358.344 353.757 343.9977 346.6646 349.8055 349.1855 348.5467 351.4968 355.2264 360.0543 364.8116 372.415 377.4612 382.026 386.6805 388.848 390.0423 391.4438 391.0384 386.167 382.3867 373.4447 367.0595 361.1764 356.4551 351.7672 346.5724 342.7243 340.8586 338.9741 333.1964 331.2355 328.7933 326.7002 325.1055 323.8435 322.1043 320.4829 319.077 314.8124 312.5934 311.2363 310.1937 308.6838 305.9523 303.3343 300.3451 299.5879 296.5651 295.6729 294.9159 294.8828 297.0456 297.0543 292.1519 287.0408 286.4225 288.0225 285.4624 283.7473 281.656 282.773 282.731 284.6097 286.6723 288.3612 283.6963 281.9683 283.1811 281.9648 280.0111 278.8419 280.8805 277.0972 272.8361 271.8575 271.9982 272.1872 272.1322 272.3083 272.0314 272.8933 273.6842 274.0162 269.3921 270.9729 273.094 274.5977 275.8318 277.247 278.2174 277.4979 274.5463 271.0037 267.2933 270.9955 273.7137 276.2115 278.1534 280.8482 283.6804 286.5188 292.3189 294.3347 295.6334 294.0819 290.5259 288.6499 286.5406 284.1408 283.0142 289.6129 291.0452 290.4163 288.8949 287.1728 286.2491 286.0562 286.467 288.0983 288.1215 286.1335 284.5808 283.4354 280.4111 276.8849 273.1439 267.6544 258.9422 262.693 260.7559 263.549 263.587 269.2584 270.955 271.6637 273.1911 275.196 276.4871 277.0677 276.5212 276.6812 276.5096 276.2894 275.2153 274.2869 273.6379 272.9027 268.6036 266.721 263.4568 261.6689 260.2908 258.984 257.5787 255.0184 252.8681 256.1353 256.7957 257.4242 257.6986 258.0541 258.521 259.1601 259.7259 259.5466 260.2612 260.1602 259.9747 260.5446 261.6292 261.4718 259.3773 255.7504 253.1041 244.2193 244.2267 244.3005 244.5072 244.0794 244.6507 244.4926 244.6086 244.4215 247.0623 248.822 250.7862 252.5975 254.2831 255.8525 256.9575 258.1404 259.5104 261.6215 262.4904 263.6177 264.636 266.7427 268.2889 269.9318 270.8558 272.4889 275.4767 275.6253 275.7993 276.2282 276.6358 276.703 276.4146 275.8541 275.2047 274.387 274.2482 274.9416 274.5699 274.0201 273.2357 272.3397 271.2399 270.5945 269.0072 268.3633 267.6288 266.4713 265.4155 264.0435 262.393 260.5906 259.2642 257.5725 256.2905 254.7288 252.194 249.235 251.0461 250.9194 250.1651 248.3621 247.0974 242.0298 245.0409 247.6368 249.0726 249.4074 248.9699 249.9005 251.3912 253.1504 255.8956 257.4996 258.4961 258.6039 259.3848 261.2861 262.8065 264.0759 264.805 261.7744 259.088 255.5645 247.9189 239.4901 239.8521 236.9355 239.4386 238.6835 239.1351 242.0814 241.2927 241.433 241.7421 241.577 242.7602 243.8447 244.6673 248.3401 250.2665 251.9902 255.8459 255.702 256.9112 258.357 259.4469 259.8541 261.2291 262.4991 263.7437 264.2157 263.9624 263.491 263.5208 263.7318 264.2166 264.2176 263.3334 261.3391 259.3466 257.4646 255.4834 254.2128 254.696 256.2005 260.1704 261.9343 264.9633 267.9049 270.3624 271.5019 270.0813 269.3597 270.9183 273.9377 273.3676 269.1375 263.3538 258.8965 251.584 253.8663 254.5331 252.776 253.7295 254.1696 254.8226 256.1692 257.7735 258.6778 259.2524 260.4309 262.5904 263.0458 261.7399 262.3474 264.9485 266.9139 268.3274 268.215 267.4936 265.9218 261.5706 261.0589 263.713 266.9578 270.5674 273.5381 276.9485 278.9951 279.6442 278.4505 275.5325 274.9724 275.222 276.9665 278.2583 279.3615 280.993 282.5825 283.4784 285.4519 285.7501 286.79 287.6083 288.3555 288.2139 286.5286 283.8034 281.4418 278.9898 275.1519 271.3346 271.9705 270.7882 269.0915 264.6799 260.9603 257.5284 -9999 -9999 +-9999 346.7637 346.0503 344.0892 343.5588 342.6277 344.0666 345.9414 346.3138 344.6513 342.0501 340.7011 340.3753 340.5605 338.5347 335.7876 333.3125 331.0301 328.6423 325.5769 323.4208 321.2214 318.505 315.839 312.584 308.1359 308.094 307.8551 309.7963 312.0433 315.0622 317.7382 320.165 321.7515 323.0567 324.4523 325.2921 325.2613 323.9184 324.3795 324.9243 325.7155 326.5178 326.8608 326.9027 324.379 320.5488 316.5269 316.8763 315.8638 314.2316 312.9206 313.6706 317.8376 321.6346 323.1569 325.0314 324.8965 325.6476 328.3076 330.4594 332.1007 333.747 336.5498 338.7931 341.4798 347.1269 350.8304 352.4971 351.0045 349.8246 348.7496 348.8229 349.0646 348.5331 347.8782 348.0067 346.2565 342.3817 338.2623 341.8111 345.2232 346.9986 350.6915 351.5544 350.9793 349.6012 348.2249 346.9242 345.8803 345.442 346.4645 350.0066 352.0046 352.8433 351.8659 349.4648 346.6906 342.0503 336.8517 340.0891 345.4557 346.0028 348.5118 350.4957 352.4634 353.9226 354.8545 355.7072 356.7134 356.8691 354.0111 352.2936 353.7663 355.0621 355.6084 356.7253 355.7918 353.3146 349.2812 344.952 342.6734 343.8938 349.5943 352.4119 352.6285 350.0107 345.3794 341.6122 341.0271 342.4034 345.5699 349.3358 353.8422 358.8357 361.8472 363.0002 369.039 375.3775 380.3661 384.196 383.2787 387.0729 388.7114 386.5224 383.7639 380.1014 372.9268 366.6768 360.7524 355.2526 350.2422 345.561 341.4623 337.9068 337.9572 331.7041 329.3586 327.498 325.4843 323.8957 322.6837 321.4666 319.9014 318.465 314.0977 310.9329 309.4962 308.9984 306.58 304.0186 303.2144 303.4749 302.4907 298.7849 297.0521 294.4067 292.7966 291.865 293.2079 292.1108 288.6165 284.8115 284.2054 283.4366 283.2113 287.1144 288.6518 288.5738 288.6246 287.7697 291.6439 290.6499 287.8951 285.9288 286.4044 282.9549 284.1006 285.7576 283.3179 279.6893 269.3616 271.0839 271.0453 270.9577 270.6333 270.3221 270.3082 270.5967 272.1198 268.4104 269.2257 271.2661 272.7628 274.0519 275.162 274.1657 276.4423 274.8995 269.5327 266.6695 270.4628 272.6156 274.9933 277.1226 279.6191 282.4436 285.1475 290.9947 292.8298 293.3998 290.9129 286.9768 285.0088 284.4308 281.9867 279.8171 287.3887 289.079 288.5797 286.651 284.9135 284.6877 284.4869 284.7298 286.7235 287.8737 285.9007 284.4468 283.3627 281.5171 279.373 275.6742 270.4473 263.3107 257.7614 265.7142 267.6152 268.5999 268.7211 270.0981 272.2975 273.6909 274.7693 275.9514 277.6277 277.1863 276.2514 275.8038 275.7994 275.694 275.424 274.9259 273.9507 270.8196 269.0706 266.0353 264.1612 262.8859 261.668 260.4993 259.41 258.1407 253.9543 253.9781 254.6505 255.2468 255.5004 255.8898 256.9853 257.639 257.8493 259.1927 259.3488 259.4179 260.394 261.4903 261.2314 259.2983 255.7665 252.0394 244.4799 244.1155 244.3135 244.5164 244.2056 244.6126 244.3366 244.3335 245.2293 248.7564 249.549 250.7198 251.9502 253.7393 255.1416 256.1841 257.589 258.9708 261.5729 262.9148 264.3014 265.4643 267.1461 268.7793 270.351 271.3956 272.5035 274.9324 275.277 275.9591 276.6509 276.8969 276.7901 276.1578 275.3655 274.5833 273.7086 273.7197 274.3728 274.4193 273.7745 272.952 272.164 271.4754 270.7081 269.4548 268.8372 268.4276 267.2198 266.2036 264.8706 263.0803 261.5551 260.1335 258.8902 257.759 255.4922 252.7667 251.0255 253.201 252.6991 252.4955 252.321 248.6248 243.9827 242.4301 247.6368 249.0726 249.4074 248.9699 249.9005 251.3912 253.1504 255.8956 257.4996 258.4961 258.6039 259.3848 261.2861 262.8065 264.0759 264.805 261.7744 259.088 255.5645 247.9189 239.4901 239.8521 236.9355 239.4386 238.6835 239.1351 242.0814 241.2927 241.433 241.7421 241.577 242.7602 243.8447 244.6673 248.3401 250.2665 251.9902 252.9182 253.6052 254.2014 255.4126 256.3264 257.4413 260.9162 262.2317 263.8196 264.8509 265.1222 265.282 265.6952 265.9454 266.2465 266.0162 264.3006 261.854 260.5606 258.4853 255.8353 254.9467 255.5861 257.5286 261.5993 263.7791 265.5876 268.2963 270.4491 271.8675 272.3157 271.9895 272.7876 275.3644 274.8261 271.4521 266.8725 262.9663 258.824 256.452 256.714 255.395 253.5689 253.6422 254.0712 254.6315 255.4742 256.3701 257.4802 258.7051 260.0461 260.0599 260.5371 262.0566 263.3648 264.295 264.969 264.5154 263.7179 263.0545 259.9855 261.1668 263.3855 266.0272 269.7537 272.712 275.5388 277.6948 278.3418 276.6346 273.4507 273.5359 275.1998 276.5309 278.1191 279.3082 280.8302 282.1208 283.0783 284.6089 284.77 286.3663 287.6212 289.001 289.7231 288.7228 286.187 285.4161 281.6708 276.9211 275.1172 275.6117 274.4619 273.1577 270.3661 266.4342 262.016 -9999 -9999 +-9999 346.7549 345.1407 344.088 342.133 341.2681 342.7449 344.3245 344.9116 344.1802 339.1393 337.4204 340.3753 340.5605 338.5347 335.7876 333.3125 331.0301 328.6423 325.5769 323.4208 321.2214 318.505 315.839 312.584 308.1359 308.094 307.8551 309.7963 312.0433 315.0622 317.7382 320.165 321.7515 323.0567 324.4523 325.2921 325.2613 323.9184 323.7695 324.0074 324.641 325.2418 325.7953 325.9332 325.4023 322.2717 312.4682 312.6945 310.9117 313.1671 316.1906 319.5283 322.7072 326.5718 329.039 329.9072 328.7289 328.9819 331.0804 332.5092 334.1197 335.7334 337.6526 340.0031 343.2083 345.1663 349.2665 353.5867 354.5782 353.6809 352.3757 351.5962 352.1125 351.2859 350.9056 350.5301 348.2667 346.3576 342.3792 340.1045 345.198 348.112 351.6639 352.6786 352.3235 351.2472 349.8101 348.8664 347.6439 346.777 347.2658 349.8382 351.8554 353.631 352.8349 350.0253 347.081 343.1657 337.4247 336.8797 341.7288 346.8957 349.5686 351.3892 353.4993 355.2726 356.148 355.9637 355.5083 355.6657 354.1762 351.1098 350.0812 350.7781 351.0048 352.2669 351.9503 347.8803 348.157 346.8861 341.7834 339.3624 346.1265 347.3962 345.8758 340.8026 337.9453 338.5554 342.1877 344.4836 347.2876 351.5303 356.9824 362.287 366.6876 366.6194 371.5078 375.5137 374.903 376.6987 380.9804 385.5428 386.2851 382.3603 379.395 371.6976 368.2498 363.8506 358.5188 352.6206 348.1278 344.7451 339.2 335.0522 335.7271 330.9767 328.1035 326.3198 324.3002 322.5325 320.8989 320.4482 319.4392 317.7791 314.8433 314.1632 313.2978 312.3318 309.9387 308.7555 307.8531 306.6015 305.2866 302.2606 299.834 296.744 294.1115 291.763 289.5153 288.1145 286.1894 284.2579 284.1971 285.7976 287.6753 290.6826 292.724 292.5672 290.5669 289.7822 293.0167 293.253 290.6414 288.9715 288.2849 285.4598 287.0853 288.6228 287.1957 284.3653 270.6669 269.7244 270.3036 270.181 269.821 269.3078 269.0332 268.9733 269.4404 269.1046 268.1139 269.176 271.0606 272.0121 273.5301 275.3311 275.2593 274.1154 267.9148 266.3506 269.6686 271.3784 273.896 276.1071 278.4258 280.9764 284.0573 289.6537 291.2377 290.9843 287.4262 283.1168 281.3541 281.1847 278.5303 279.7464 286.0859 286.7964 285.8889 283.8042 281.5199 281.8087 283.0395 282.6136 284.0207 286.5045 284.8239 283.0891 282.2939 281.2587 279.8248 276.9172 271.2852 266.6855 260.0528 263.8939 265.3097 265.6516 268.3634 269.6868 271.413 272.8679 274.4321 275.7253 277.4164 277.4277 276.2638 275.2141 274.9471 275.1721 275.3029 275.4481 274.9864 271.5979 271.5518 268.5568 267.187 266.1682 264.9585 263.7885 262.4972 261.9838 258.1522 256.3075 254.2901 251.2245 252.8338 253.6729 254.7795 255.7929 256.9232 258.0774 258.3055 258.7415 260.2189 261.1481 260.7655 258.7466 255.5135 252.5038 247.2586 244.1044 244.2364 244.475 243.8734 244.7822 244.4869 244.2314 245.9573 248.884 250.1395 251.0232 252.3549 253.6687 255.1124 256.0835 257.2536 258.3509 260.8561 262.3738 264.1078 265.9451 268.0527 269.3851 269.7167 270.2036 271.0093 273.0866 273.9776 275.4203 276.0041 276.8969 276.7901 276.1578 275.3655 274.5833 273.7086 273.7197 274.3728 274.4193 273.7745 272.952 272.164 271.4754 270.7081 269.4548 268.8372 268.4276 267.2198 266.2036 264.8706 263.0803 261.5551 260.1335 258.8902 257.759 255.4922 252.7667 251.0255 253.201 252.6991 252.4955 252.321 245.0282 243.9827 242.4301 243.9326 246.6183 248.1178 246.8376 248.7635 251.0087 252.3669 254.7971 256.1428 256.3853 256.4358 258.1386 260.0749 261.1781 262.2378 263.3366 261.1599 258.1503 254.5442 245.7242 239.1954 240.3219 236.3277 239.3141 238.5313 240.851 241.5518 240.9368 241.1989 241.7687 241.4274 242.5864 243.8934 245.5253 248.0952 249.082 250.4914 251.2823 251.8216 252.6605 253.9476 255.6186 257.4081 260.677 261.9102 263.5381 264.8177 265.2649 266.1844 267.5853 268.1141 268.2747 267.4003 265.2418 263.7065 261.2837 258.7005 256.6535 255.859 256.909 258.8459 262.5705 265.4644 267.9451 269.3278 270.8431 271.7639 272.6534 273.1666 273.9364 275.5058 275.2113 272.9898 268.8806 265.8133 262.9023 260.6669 258.3379 257.2527 255.1982 255.4894 254.4037 254.1519 254.3529 255.0025 255.638 256.6462 257.6896 259.214 259.5782 259.5867 259.9194 260.5567 260.8705 260.8845 260.7708 259.9945 259.5861 261.0315 263.0654 265.0924 268.5733 270.3197 273.3564 276.2424 275.752 273.2491 270.6692 273.4203 275.3788 277.2085 278.6423 280.0482 281.5242 281.915 282.1696 283.1479 283.5789 285.5797 286.6877 288.4009 289.8328 290.4772 288.9887 287.7633 283.573 279.7028 278.9121 280.0576 278.5847 276.3244 273.8706 271.1537 268.2926 -9999 -9999 +-9999 346.7549 345.1407 344.088 342.133 341.2681 342.7449 344.3245 344.9116 344.1802 339.1393 337.4204 337.9856 338.0119 335.9953 333.2956 331.5449 330.0421 327.9798 323.0178 321.0433 319.1674 316.6302 313.9545 311.9228 308.7066 307.0627 307.3928 307.7661 310.1896 313.6899 316.7369 319.1991 320.8867 322.3319 323.9608 325.0063 324.7682 323.3817 322.8709 322.8393 323.2833 323.8513 324.1799 324.0151 323.4113 322.2073 313.3499 310.14 310.8504 313.2515 318.0984 321.4387 324.3977 327.125 329.4488 332.7614 332.8523 332.0042 333.2639 335.0595 336.7004 337.7878 339.2807 341.3547 346.6957 349.061 352.3334 355.3626 357.1736 357.2247 355.9821 355.1523 354.9053 353.8137 353.3593 352.3073 351.5364 349.4498 345.6404 340.9174 344.1959 347.6678 352.1614 353.6224 354.0064 353.2434 351.9789 351.1105 349.8254 348.7207 349.2266 348.9039 350.6052 353.6174 354.045 351.4342 347.5538 342.2525 336.6622 334.9123 342.4372 346.2714 349.2226 352.5389 354.6018 355.1764 355.0307 354.1956 353.3286 354.617 353.7173 351.8541 348.2254 346.1942 346.6539 348.0779 348.5367 346.4574 343.8683 343.6649 341.8158 336.3037 339.657 339.1622 335.7071 335.2329 335.2815 342.4087 345.2373 347.8803 349.0949 349.242 354.6676 359.1902 359.6858 361.4163 364.6686 368.6198 372.4323 374.4011 379.4127 384.1228 384.2693 381.4833 376.3611 369.9534 362.9302 356.9641 352.932 349.265 345.4659 341.7639 338.1964 334.2072 331.0013 329.2894 326.7049 324.7382 322.7531 320.446 319.0527 318.4651 318.5422 317.1149 313.599 313.0481 313.7882 313.5522 311.6753 309.994 308.4348 306.6266 305.0353 301.9353 299.5276 297.125 293.5944 291.1504 289.0612 286.5932 286.6105 286.7884 290.2635 290.0848 291.7126 293.8126 294.983 293.381 291.7277 292.7402 294.9477 294.8386 292.3771 290.4234 289.7126 288.1306 290.328 290.7066 290.5978 288.1189 277.6754 271.6417 269.7048 267.9805 268.8718 268.1025 268.1881 268.2659 268.1894 268.2895 267.2206 268.3749 269.6974 270.1363 271.7327 273.4567 273.4607 272.6366 267.1213 266.2682 268.4575 271.029 273.2055 275.3576 276.9666 279.6555 282.7212 288.5382 289.006 287.38 283.3906 280.0785 278.4234 277.6112 274.6587 280.5439 285.0486 285.167 283.4104 280.8178 279.7551 280.2348 281.9394 281.3163 282.1526 284.9612 283.3701 281.1402 281.2773 280.4048 278.6615 276.097 271.1603 267.3785 256.8202 261.9006 263.4868 266.4077 268.6651 269.1316 270.3666 272.5276 274.1097 275.4837 276.9867 276.8408 276.2202 275.1481 274.2717 274.1481 274.128 274.3172 274.7293 273.7088 272.0002 271.2342 269.624 268.3795 266.9778 265.8744 264.8981 263.6836 262.7444 261.4579 259.9379 255.2467 252.3812 251.5745 252.4375 253.9153 256.0354 257.8104 257.5893 258.0726 259.172 260.2165 260.5793 258.7466 255.5135 252.5038 247.2586 244.1044 244.2364 244.475 243.8734 244.7822 244.4869 244.2314 245.9573 248.884 250.1395 251.0232 252.3549 253.6687 255.1124 256.0835 257.2536 258.3509 260.8561 262.3738 264.1078 265.9451 268.0527 269.3851 269.7167 270.2036 271.0093 273.0866 273.9776 275.4203 276.0041 276.179 276.2256 275.3708 274.7098 273.8466 273.0073 273.4416 273.9214 274.1898 273.8322 272.9879 272.1208 271.5271 270.7503 269.7111 269.2493 268.4311 267.3744 266.2466 264.9214 263.7636 262.6312 261.0439 257.9583 256.4338 254.7248 252.2934 254.6591 256.0687 255.8603 255.0642 254.6921 249.9417 247.1734 242.7595 242.1625 243.6833 246.3683 245.2442 246.9957 249.7201 250.8596 254.153 254.3857 255.0366 255.9908 257.5572 258.7017 259.3811 260.9077 261.8237 258.001 255.2096 250.7555 242.2595 239.9403 240.8947 236.288 239.4234 238.288 241.4182 241.2954 240.9524 241.0447 241.5067 241.4445 242.4315 243.5751 244.9614 247.8764 248.4894 249.3255 250.3671 251.3983 252.969 253.8606 255.2279 256.747 259.1828 260.3868 261.7436 262.596 263.3806 264.5956 267.5284 268.5957 268.9633 267.3536 265.8637 264 261.1241 258.9999 257.8244 256.6871 258.2225 259.9982 264.0842 266.8363 269.4931 271.3488 271.7077 271.9587 272.2603 272.5744 273.2747 274.8019 274.9861 273.5038 270.3169 267.2603 264.8863 262.9482 260.5612 258.4203 259.1041 259.5821 258.3342 256.3177 254.9149 254.8295 254.824 255.6909 256.6591 257.0415 256.9249 257.25 257.6676 257.627 257.7135 257.9331 258.3153 258.8673 259.1176 260.5115 262.0286 264.0801 266.4984 267.7557 269.8562 272.4646 272.3766 268.0572 270.2571 272.6937 276.4604 278.1215 278.6751 279.42 279.5616 279.2498 279.3285 281.7745 281.7322 284.5006 285.6208 287.3275 288.8764 290.1093 290.9368 289.9507 286.4549 283.698 282.1017 283.2158 282.6501 279.7829 277.5323 275.2118 272.7355 -9999 -9999 +-9999 346.0654 344.8775 343.2564 342.3111 340.2971 340.8405 342.5116 342.9889 343.4106 339.27 336.9242 334.8463 333.6978 332.631 330.6016 328.3639 328.0837 326.7245 323.6326 321.9013 320.3795 318.3842 316.9267 314.6497 308.3449 307.4058 306.7744 306.531 308.9682 312.8711 315.7154 317.4675 319.1538 320.7383 321.7775 323.0302 324.0546 323.2694 321.805 321.2987 321.297 322.3015 322.4047 321.9163 320.9582 316.7806 312.5916 308.7175 309.3881 312.104 317.3397 320.5517 323.0991 325.5003 327.6203 331.217 333.0361 333.3316 334.211 336.2636 338.6488 340.0004 341.2684 343.1609 347.6417 349.9588 352.7268 356.073 358.4663 359.2575 358.1503 357.6806 357.4293 355.7987 355.7119 354.7228 353.8854 351.8062 348.3728 342.7063 344.1417 346.9811 351.8847 353.8263 355.3586 354.7506 354.1765 353.1951 351.9333 351.1277 352.2651 348.6591 348.5501 351.665 353.9969 352.2086 348.5578 342.9833 332.5667 334.6051 342.465 346.5114 349.5579 351.725 353.5975 354.3228 352.9247 351.3593 351.4201 353.4681 352.4389 352.2921 350.6825 346.6056 343.2545 344.7388 345.432 342.894 335.4188 336.6899 335.7201 332.9126 334.3387 333.213 332.5832 333.2515 339.4141 344.8845 348.2823 350.8743 353.1382 355.1958 356.9874 357.7871 360.5377 361.6267 368.1095 373.4933 378.0307 377.823 382.3646 384.9556 380.9317 376.7708 376.0345 363.3241 361.5628 354.0567 345.4915 343.7307 342.1261 338.6466 335.7021 333.5685 327.9163 326.9565 324.4286 322.3681 320.8205 319.5433 317.1205 316.1893 316.7388 316.732 312.493 310.8525 312.02 311.6904 310.4267 308.6427 307.0518 305.49 304.2505 299.5711 297.0016 294.698 290.7529 289.2739 288.5327 293.0726 294.4344 294.4499 295.209 293.4384 293.0886 295.4707 296.2238 295.2938 293.5846 294.8083 297.1187 296.264 293.8876 292.3389 291.1588 291.1779 293.9596 294.4055 293.8544 291.1304 282.8955 277.1001 270.69 269.1426 268.5857 268.2837 266.5498 267.6652 267.3756 266.921 268.2285 266.6587 266.45 267.4036 269.1811 269.8203 269.621 269.0516 266.5668 265.8335 267.1298 269.9252 272.1451 273.3684 275.1057 277.9486 281.5172 286.5764 285.2836 283.4375 278.6447 274.4116 273.9942 271.9691 275.7011 280.1662 283.0962 282.0858 280.4081 277.3793 276.6741 279.371 280.1507 279.0449 280.1936 282.3818 280.6383 279.3092 279.5087 278.7448 277.897 275.9066 271.4094 267.566 256.8878 259.3458 261.528 264.9585 266.4855 268.1635 269.952 272.4737 273.7766 275.2363 276.9867 276.8408 276.2202 275.1481 274.2717 274.1481 274.128 274.3172 274.7293 273.7088 272.0002 271.2342 269.624 268.3795 266.9778 265.8744 264.8981 263.6836 262.7444 261.4579 259.9379 255.2467 252.3812 251.5745 252.4375 253.9153 256.0354 257.8104 257.5893 258.0726 259.172 260.2165 260.5793 260.0617 258.1747 255.4743 248.8098 244.168 244.2149 244.4114 244.266 244.3606 244.1676 244.1874 246.7084 248.9996 250.2274 251.3403 252.7094 253.8606 255.1876 256.2364 257.3009 258.5037 261.1064 262.7015 264.5494 266.0413 267.2211 268.4165 268.7004 269.397 270.5099 272.6479 273.6983 274.8661 275.0311 275.3355 275.4138 274.8474 274.0729 273.2891 272.4037 272.9168 273.3269 274.1141 273.9055 273.212 272.5106 271.559 271.1776 269.3773 268.0608 266.8454 265.8138 264.3637 262.9136 261.5929 260.6098 259.1051 258.0304 258.0041 257.3805 257.2932 257.7575 258.2159 257.8255 257.1277 257.0919 252.6805 249.7565 244.6286 241.7175 241.9744 244.3904 243.8364 246.3323 248.8352 250.3777 253.1402 252.731 253.3677 255.3216 256.299 256.8008 258.1162 259.7431 260.3737 256.5367 253.0813 247.0326 239.8825 239.9728 240.6848 236.9916 238.6651 238.5281 241.7836 241.4622 241.1012 240.7265 241.1254 241.3608 242.2163 243.1312 244.7362 247.3299 248.3441 249.2673 250.4378 251.7502 252.8321 254.159 255.265 256.6832 258.93 260.026 259.4358 257.9098 259.6932 261.3322 264.2077 266.7885 268.3214 266.7948 265.6757 264.1109 261.5825 259.4573 257.9287 257.8342 259.0574 261.1151 266.09 268.5519 270.7498 272.0535 271.9086 271.1577 271.1833 271.0295 271.4199 273.6357 274.0811 273.0416 270.7041 268.1251 266.505 264.1536 262.3193 259.8272 260.876 261.3409 260.6266 259.9193 258.1316 257.7376 256.792 255.5668 255.5728 255.4835 255.5145 255.8616 256.5248 256.7834 257.0002 257.3531 258.0335 258.2332 258.7928 259.7091 260.6309 262.4659 264.3207 265.5374 266.7107 269.0831 268.1063 267.2987 270.6613 274.5904 277.4506 277.79 277.6496 276.8326 276.0657 274.0733 274.6027 279.225 280.4425 283.1675 284.5417 285.8329 287.1544 288.9338 290.1949 291.1086 288.4332 286.3076 284.7 284.8461 283.9076 282.5551 281.0287 279.0677 276.4742 -9999 -9999 +-9999 344.7658 344.1574 342.7222 341.5355 339.5632 339.2565 340.2557 341.2766 341.9355 338.8727 336.6015 333.5444 330.4283 329.0387 327.0778 324.4854 324.1847 324.378 322.479 321.561 320.8405 319.4191 317.601 314.9928 311.8428 308.8889 306.7437 306.1969 308.6369 311.8635 314.8173 316.3899 317.3525 318.3281 319.3941 321.3003 322.9675 322.3208 321.2349 320.8102 318.7898 319.6034 320.2524 319.5368 318.0565 314.5195 309.804 307.6663 309.4187 312.2227 315.9403 318.1562 320.3772 322.803 324.9545 328.8257 330.7639 331.9047 332.9595 334.8278 337.3393 339.5522 341.291 342.8216 346.4519 348.8686 351.1755 354.27 356.9862 357.9194 356.4617 356.3793 356.7516 357.5008 357.5246 357.0637 355.9986 354.6116 350.8418 345.0343 344.1414 347.5031 351.8017 353.3244 355.1211 356.2073 356.1101 355.5902 354.601 354.1999 353.1548 348.9277 348.1497 348.2008 351.2599 351.4519 348.6345 343.8495 335.8096 331.6882 339.9146 343.6357 346.3695 348.7248 350.8414 351.4994 350.1935 347.606 350.625 352.2811 350.8619 351.5202 350.8411 348.3912 343.3304 342.0593 343.725 341.6759 329.8106 329.3036 330.2914 331.7453 332.142 330.2803 332.6309 337.5313 341.9552 348.0896 349.4812 352.4081 355.1638 358.449 361.8895 363.8469 364.5302 366.9354 371.3647 374.5807 379.4408 382.1528 384.3804 383.4581 377.3411 369.2964 373.597 365.1412 357.1551 347.3843 337.07 335.1218 338.6471 335.6647 332.9762 330.1851 321.6798 324.5612 322.6643 320.4276 318.4441 317.8502 315.6863 313.9976 314.5927 314.8076 310.7892 308.4174 309.1722 309.6387 308.2688 306.4528 304.454 303.2264 301.9343 295.3624 292.9153 291.5344 290.044 289.8115 292.5863 296.0721 298.2895 298.8992 297.995 296.0087 294.1714 297.1482 297.8667 297.3557 295.7666 296.317 298.8666 297.9452 295.7964 294.0546 292.9226 293.6364 295.921 297.2745 296.47 293.7336 287.2709 282.6868 278.5604 273.5657 275.0569 272.378 270.3463 267.6245 266.4781 266.4026 266.0905 265.9571 265.4034 265.5484 266.0456 266.2817 266.498 266.4981 265.3194 265.3756 265.7314 268.2453 270.1953 270.9432 273.0555 276.1826 279.7762 284.0532 280.5303 277.4034 273.5268 270.0559 273.9942 271.9691 275.7011 280.1662 283.0962 282.0858 280.4081 277.3793 276.6741 279.371 280.1507 279.0449 280.1936 282.3818 280.6383 279.3092 279.5087 278.7448 277.897 275.9066 271.4094 267.566 256.8878 259.3458 261.528 264.9585 266.4855 268.1635 269.952 272.4737 273.7766 276.0883 276.2989 276.032 275.85 275.1977 274.187 273.337 273.14 273.085 273.0377 273.0289 272.6306 272.4647 270.2266 270.0568 268.9143 267.7175 266.421 265.0321 263.2182 260.9995 259.7405 257.1617 253.9227 251.6315 250.7214 251.5358 254.7312 257.3994 257.2386 256.886 257.6705 258.4322 258.8925 258.8535 257.6118 255.4186 248.5739 244.6086 244.1091 244.5765 244.5836 244.2271 243.9559 244.0687 245.6895 249.6754 250.7325 251.4232 252.6767 253.6692 254.7388 255.822 256.9542 258.2131 261.1841 262.6572 263.7677 264.9768 265.8726 267.8381 268.4235 269.4375 270.1918 272.1044 272.7369 273.4767 273.8655 274.3525 274.8015 274.2461 273.4753 272.5962 271.3979 272.0886 272.9861 273.6677 273.8453 273.3595 272.991 272.4635 271.2251 269.2452 268.0388 266.8799 266.2721 264.5873 262.7809 261.5421 260.8869 261.2489 261.5053 260.3165 259.396 259.2997 259.9352 260.2128 259.5092 259.0999 258.5413 254.4134 253.7337 248.9012 245.7991 240.4129 241.4043 243.6768 246.7024 248.1711 251.0804 250.6856 250.7086 252.6709 253.8647 254.6736 255.8851 257.3384 258.5746 259.1399 256.1498 252.573 244.974 238.7238 240.336 241.0028 240.8372 236.2627 238.6966 242.2481 241.7956 241.395 240.7904 240.6952 241.1656 241.9357 243.0371 245.074 246.683 247.7278 248.8223 249.8696 250.9233 252.1816 253.4457 254.8817 255.8732 257.8284 256.7327 255.4787 255.0002 257.326 260.2127 263.2328 265.9375 266.9687 265.774 264.7403 264.1436 261.9479 259.935 258.4616 258.2303 260.1311 262.8707 267.3421 269.4816 271.2699 271.9807 270.877 269.8207 269.4053 269.2437 270.0973 272.5973 273.0224 272.2731 270.4764 268.6613 267.189 265.5413 263.4443 260.8965 262.198 262.7376 262.8561 262.5827 262.5155 262.405 261.6736 258.3173 256.9782 256.9631 257.3078 258.4648 259.5706 259.3858 256.6076 257.7636 258.3521 258.7283 258.6349 258.925 259.3488 260.5045 261.7096 262.876 264.6345 264.9901 264.8563 267.6852 272.5776 275.6581 276.6003 275.7568 274.235 272.6697 270.7899 271.0396 272.4836 277.9054 279.983 281.824 283.6421 284.7728 286.1205 287.6597 289.2849 290.4687 288.8909 287.5491 286.9897 286.5226 286.1801 284.8402 283.3138 282.2108 279.4721 -9999 -9999 +-9999 342.616 342.7823 342.1283 340.8627 338.8932 338.6369 339.0834 340.1103 340.7408 337.5557 335.5608 333.4585 331.1417 328.382 323.607 320.3596 319.3409 321.5717 320.5919 320.1502 319.5815 319.146 317.123 314.4981 311.6951 308.5412 306.2108 306.1209 309.1526 312.1186 313.6905 314.5727 315.3721 316.4212 318.1581 319.8439 321.6167 320.6039 320.2115 319.6733 318.2518 316.7693 317.7992 317.3471 316.2846 311.8474 308.7648 307.6812 309.2888 312.3604 314.7825 317.4501 319.6787 321.8537 325.4095 327.57 329.6961 332.7457 335.0715 336.878 338.0218 339.1061 339.9982 340.6286 343.5921 345.5232 348.0871 351.2666 354.0531 354.7914 353.5162 353.3154 354.7959 357.204 358.1297 358.0147 357.819 357.0472 354.0374 347.161 346.4614 346.9793 353.079 355.3842 356.3635 357.1002 357.4962 357.8414 356.5156 356.0209 355.0404 350.088 349.6232 347.0582 345.825 348.9196 347.9623 344.6718 337.9695 330.6432 337.0496 339.5307 342.4277 345.3464 347.6032 348.0235 346.4235 346.7673 349.5525 350.3495 348.3065 348.6987 349.1865 346.6054 341.5687 340.0967 342.7645 341.8046 333.3677 326.9 328.3321 328.6164 329.1676 330.7103 334.4746 339.0578 343.0813 351.5638 352.8211 354.0851 356.5298 359.3508 362.5534 366.1273 369.8638 372.6125 377.5016 377.25 379.6245 381.3806 381.0739 382.4128 376.1293 367.7665 367.0485 359.7846 352.6943 345.3315 338.8916 331.2424 333.9908 331.3401 328.8483 326.945 319.6557 320.9529 320.0738 318.3589 317.2128 315.2262 314.167 312.1828 312.2716 312.2839 309.8651 306.0993 306.1239 306.8676 305.4012 303.5834 301.9922 300.7083 298.7403 291.0224 292.7397 291.0172 291.4151 294.6795 295.3843 298.1174 300.7298 301.793 300.2559 297.6861 295.6521 298.0098 300.2555 300.0156 298.6758 297.363 299.8858 299.7275 297.9849 296.1721 294.9459 295.0319 296.4207 297.4851 296.7767 294.9105 289.5017 282.6868 278.5604 273.5657 275.0569 272.378 270.3463 267.6245 266.4781 266.4026 266.0905 265.9571 265.4034 265.5484 266.0456 266.2817 266.498 266.4981 265.3194 265.3756 265.7314 268.2453 270.1953 270.9432 273.0555 276.1826 279.7762 284.0532 280.5303 277.4034 273.5268 270.0559 270.323 271.7354 277.465 279.953 279.878 279.0349 276.9627 274.465 275.4276 277.4617 277.8929 276.4731 277.4134 278.5951 277.6259 275.5501 276.7283 275.996 276.6405 276.5284 272.7566 268.0808 255.7767 258.0583 259.9247 263.0695 262.1519 267.9548 269.9385 272.2603 273.7079 275.0061 275.3061 275.0521 274.8844 274.6534 274.2508 273.2521 272.5829 272.2735 271.8875 272.0143 271.9958 271.8846 271.4871 270.8474 269.9422 268.851 267.5982 265.8189 263.8549 262.3803 260.4613 258.505 256.0944 253.8928 251.7661 250.0378 251.5642 255.8126 256.5981 255.94 255.6664 256.3322 256.8282 257.089 256.5253 254.7052 249.1519 244.3956 244.0958 244.1116 244.3476 244.2959 244.1277 243.9603 245.2931 249.3861 250.029 251.3247 252.2776 253.0858 253.9667 255.1615 256.7389 258.1277 261.1283 262.4915 263.8305 264.7377 265.5542 266.9303 267.7569 268.4085 268.7997 270.3698 271.3072 272.067 272.7418 273.4073 273.9852 273.5719 272.8717 271.967 270.5419 271.2318 272.1038 272.8305 273.2779 273.4193 273.321 272.5736 271.6105 269.4648 268.7491 268.0444 267.2808 266.4272 264.6729 264.1983 264.0949 264.3495 262.8083 261.7795 261.0492 261.0749 261.5687 261.5765 260.9724 260.0258 258.3307 256.7878 254.5644 251.1401 248.8324 246.0173 241.0569 241.9047 243.9688 246.9562 248.2688 248.7643 250.246 251.6866 252.4944 253.3333 255.4386 256.7109 257.7635 258.087 253.6621 249.2341 242.222 238.7594 240.0316 240.6245 240.8021 236.2354 238.9517 242.3577 241.7448 241.3473 240.7504 240.4145 240.8751 242.0982 243.3413 245.2061 246.359 247.3881 248.4072 249.3759 250.4846 251.5321 252.4494 253.621 254.1549 253.96 252.4507 252.217 254.784 257.8288 259.9192 262.7047 264.5491 265.7563 264.6654 263.6028 263.2249 262.4592 260.6286 259.0852 258.9556 260.8757 263.6115 268.4258 270.0184 271.3124 271.1195 270.0024 268.6781 267.9069 267.9918 269.4844 271.3221 271.1818 270.6886 269.5301 268.4486 267.0611 265.6938 263.7828 261.772 262.1111 263.8958 265.2246 265.8032 266.1728 265.8127 265.3926 264.4222 262.9898 261.5867 261.379 263.6405 264.0601 264.2269 263.1154 264.1659 265.2126 263.3492 262.178 259.4926 258.9874 259.5233 259.9314 260.57 261.2379 262.487 263.0412 266.62 270.9771 273.2708 272.6114 271.105 269.2589 268.2247 268.7232 270.3685 273.9737 276.8406 279.0131 280.9906 282.7405 283.9894 285.6409 287.2322 288.4869 289.668 289.5123 288.3058 287.153 286.4421 286.2508 286.0931 285.1537 282.8494 279.7805 -9999 -9999 +-9999 340.5518 341.0947 340.759 339.2393 337.2799 336.7451 338.028 338.8711 339.5322 337.1949 334.873 332.7912 330.3396 327.5295 323.4316 318.783 317.5065 316.9565 318.7033 318.3151 317.5216 317.2304 316.058 314.2909 311.6336 306.1368 303.7332 307.6151 309.233 310.7965 312.1112 312.9651 313.3688 315.0292 316.8176 318.0459 319.7303 318.8975 317.8771 317.9977 317.1687 315.0993 315.0293 314.8383 314.5912 309.6235 307.2701 307.2546 309.1466 311.7201 314.6397 317.9966 321.1746 323.4854 328.5757 330.2133 331.8206 333.6729 335.595 337.1497 337.7072 336.2117 337.2274 337.7032 339.7011 341.317 344.5268 347.96 350.3459 350.2681 349.0477 350.687 352.6655 356.8795 358.5294 359.9407 360.2608 359.5659 357.1347 352.5526 350.9102 353.0376 355.8347 356.9637 358.4028 359.2185 359.6063 359.4914 358.3128 357.7696 356.2661 351.5039 350.1125 348.043 344.7342 343.4461 344.8298 343.1859 338.3964 333.4333 331.7742 336.1819 337.837 341.6352 343.5698 343.3575 341.617 347.2987 348.2558 346.051 345.3933 346.9594 345.0403 339.528 337.931 339.5448 341.3563 340.2538 334.2375 326.9923 326.8163 328.7831 330.3548 333.3811 336.7514 339.6638 342.802 350.562 354.1594 355.7591 356.1109 358.5275 361.3363 365.0209 369.7481 374.035 379.7152 379.8795 378.619 379.0002 377.2707 373.8265 371.219 366.4166 360.3433 350.2097 342.5394 335.4631 333.0413 330.1065 327.8193 326.2691 323.3431 320.5734 317.5476 316.217 316.5667 315.3291 313.6506 312.3908 311.6763 310.4265 310.2811 309.0232 306.0972 303.7494 302.8293 303.0641 301.9669 300.2946 298.7183 300.7083 298.7403 291.0224 292.7397 291.0172 291.4151 294.6795 295.3843 298.1174 300.7298 301.793 300.2559 297.6861 295.6521 298.0098 300.2555 300.0156 298.6758 297.363 299.8858 299.7275 297.9849 296.1721 294.9459 295.0319 296.4207 297.4851 296.7767 294.9105 289.5017 285.352 281.7201 279.4796 277.4543 273.882 271.3523 270.4171 272.062 269.467 267.0589 265.2214 264.8671 264.6638 264.5197 264.818 265.0123 265.7806 264.7219 264.2708 264.8488 267.9017 269.6531 269.7216 269.5654 273.238 277.4685 278.9479 275.7104 268.8752 266.8184 267.0066 266.2471 271.8735 274.6783 275.4562 276.2502 275.77 273.3578 271.1566 273.0887 274.8598 275.84 274.4364 272.045 273.2948 273.3788 270.6419 272.7257 272.1307 275.1186 275.5762 273.0878 267.9766 257.8336 254.616 258.2235 262.561 260.8102 268.0262 269.678 271.001 272.3708 273.5927 273.9305 273.9576 273.8759 274.1168 274.0273 273.3931 272.5091 271.7722 271.1418 271.3662 270.8983 270.7106 270.6343 270.271 269.6041 268.7454 267.8658 266.7957 264.878 263.5751 261.968 259.9223 257.7735 255.3451 253.4009 251.9035 249.9447 254.0915 254.9858 255.557 254.7785 254.5361 255.0351 255.5612 255.2903 252.7904 244.0259 243.9838 244.042 243.9046 244.0261 244.111 244.0576 244.1519 245.8625 249.1638 249.5117 250.4646 251.2753 251.7876 252.939 253.6992 255.3536 257.6087 260.0859 261.5583 263.1362 264.0695 264.9089 265.4297 265.8401 266.5463 267.3061 269.2286 270.2684 270.9928 272.297 272.9797 273.2468 272.7168 272.3237 271.4227 269.6821 270.4721 270.9864 272.0349 272.5935 273.116 273.3515 272.9449 271.9606 270.2498 269.6974 268.7371 268.2452 267.9157 266.9274 266.8488 266.3463 265.2048 264.2039 263.1617 262.5482 262.8507 262.9733 262.3928 261.7321 260.8224 260.4179 259.3979 256.0383 253.0375 251.612 249.2746 241.4806 240.9234 242.7194 244.6008 246.8155 247.8946 249.155 250.7536 251.1195 252.7815 254.9828 255.9389 256.5251 256.6362 253.5611 247.7529 240.1281 238.5903 239.493 240.0437 240.4804 237.0241 240.0484 241.7453 241.7048 241.2317 240.5623 240.2272 240.6605 241.7911 243.7732 245.3932 246.4401 247.382 247.9731 248.6565 249.5937 250.3107 251.0708 251.687 252.3416 250.3257 250.0681 251.035 253.3383 256.7583 259.8871 262.8839 264.6234 264.5748 262.9893 262.7863 262.0844 262.1864 261.3606 259.879 259.668 261.2859 263.2838 267.9965 269.7545 270.0398 269.5822 268.9061 267.9716 266.696 267.2578 268.568 269.3806 269.125 269.0463 268.4383 267.9498 267.2309 266.2126 263.8718 262.4364 262.7584 264.019 266.5576 267.6625 267.9688 268.1268 268.1196 268.9341 269.4063 268.6965 266.8459 268.1371 268.5437 268.6425 269.9179 271.753 272.8455 272.5845 273.1306 271.1027 267.4137 263.0941 259.4791 260.1093 260.7785 260.9191 261.7797 265.9027 268.537 268.5031 267.2066 266.2371 265.8754 266.5295 268.4678 270.3469 274.6477 276.825 278.4885 280.0601 281.9345 283.6299 285.2267 286.7345 287.6397 288.3036 288.1774 287.2932 285.9475 284.5508 285.0361 285.0349 285.1383 283.5086 281.5028 -9999 -9999 +-9999 338.8374 338.8598 338.9838 338.2128 335.8286 335.3626 336.047 337.1105 338.4755 336.5373 334.2971 332.7247 330.2267 327.2053 323.2092 318.2501 316.6729 315.3693 314.5632 314.8942 314.7567 314.3054 313.6827 312.8134 311.4771 306.3251 303.6539 304.3927 306.7415 308.4661 309.0863 310.1857 312.4264 314.1289 315.2636 316.5671 317.9019 317.0687 316.5378 316.4592 315.5863 313.6879 313.1532 313.1471 309.7163 306.2133 306.4342 307.1289 309.1328 312.0225 314.9386 317.7865 320.3876 323.0146 328.476 330.7473 332.5437 333.1992 333.4097 334.5556 335.3224 333.5893 333.7274 334.4086 337.6774 340.6721 343.4409 345.2318 345.1346 344.6021 348.7628 353.1167 355.9246 359.7804 361.0661 362.5624 362.6844 361.9175 360.2581 358.2955 356.9197 357.3516 358.8143 359.659 360.7025 361.3026 361.7847 360.9023 360.4226 359.4608 357.5516 352.9017 350.584 348.1602 345.7228 342.3301 340.261 339.3153 338.0912 334.8833 327.2316 330.7872 334.4526 337.3392 337.1732 338.8644 342.7813 345.3816 345.1999 342.5276 344.1588 346.1949 344.1906 337.0699 336.565 339.2864 339.8177 337.3221 330.3708 324.9536 327.3144 329.9745 332.1903 334.4108 336.6501 338.9047 341.8999 345.436 349.086 349.909 352.7012 355.648 360.808 364.6247 368.912 372.5264 377.9601 378.4635 375.5861 373.4309 372.9192 369.6358 371.219 366.4166 360.3433 350.2097 342.5394 335.4631 333.0413 330.1065 327.8193 326.2691 323.3431 320.5734 317.5476 316.217 316.5667 315.3291 313.6506 312.3908 311.6763 310.4265 310.2811 309.0232 306.0972 303.7494 302.8293 303.0641 301.9669 300.2946 298.7183 297.5134 295.0153 292.0272 293.6774 293.4624 296.3332 298.3527 298.1275 299.2906 302.1517 303.5306 301.8315 298.8242 296.8064 300.1993 302.0907 302.0732 301.1026 300.2697 301.0823 302.0504 300.6375 298.9959 297.196 297.0175 297.5142 297.2386 295.5156 294.416 288.9232 285.0645 281.3543 278.7333 275.4414 272.7817 271.2951 272.3996 276.9912 277.7578 275.6691 273.2991 270.1927 266.0279 263.5593 263.6563 264.0055 264.0305 263.7843 263.4167 263.7306 265.5032 267.6206 267.9327 267.3802 269.1992 273.3015 274.7979 270.9362 263.6228 262.5945 263.7891 265.9208 268.8834 270.0158 270.6945 273.3669 273.5173 270.4396 268.8213 270.1857 271.8517 272.5917 271.1551 267.1577 267.8649 268.8377 267.8176 267.6125 272.0746 273.6784 273.8653 271.6505 267.3709 259.6173 254.2984 256.2103 260.9477 265.0151 267.0494 267.9325 269.7844 270.7766 272.2328 272.6331 272.9262 273.2883 273.8976 274.1049 273.8351 272.9144 272.0396 270.8781 270.8056 270.0288 269.6839 269.2974 269.1225 268.8963 268.3669 267.6873 266.8791 265.7119 264.7511 263.6545 262.0079 259.5096 256.8653 254.7252 253.1111 250.8583 250.4866 253.0087 254.2931 254.4381 253.6732 253.5629 253.8763 253.476 247.6758 243.9966 244.034 243.9906 243.3234 244.0543 243.9235 244.1512 245.026 245.9708 248.3862 248.9646 248.8123 249.3081 250.6362 252.0029 253.3394 254.6823 257.2138 259.1133 260.5601 261.7056 262.0197 262.0819 262.0656 264.1321 264.9949 265.9993 268.2264 269.1453 270.4772 271.3137 271.8832 272.1825 271.9908 271.6647 270.6288 269.0495 269.8664 270.4948 271.1089 271.6777 272.3939 272.939 273.1703 272.4588 270.8043 270.4059 269.5996 269.0037 268.7533 268.6029 268.1279 267.3884 266.471 265.5214 264.8411 264.262 264.0205 263.8137 263.3996 263.1027 262.6643 262.7472 260.3032 257.4829 254.7704 253.539 251.3505 247.9462 239.8605 240.9716 243.6019 245.6514 246.9053 247.9543 248.8714 250.0133 251.5802 253.6727 254.6909 254.8116 254.5644 252.6161 245.9485 238.9415 237.8631 238.473 239.8493 240.2117 236.2511 241.1531 240.8268 240.5401 240.1972 240.1684 240.0771 240.5091 241.3878 243.6514 245.5587 246.788 246.7456 246.8345 247.4476 248.347 248.8784 249.4333 249.5903 248.9246 247.796 249.4258 252.4954 255.977 258.8936 261.7722 263.0768 263.553 263.1112 261.4504 261.0783 260.6068 261.071 260.088 260.3378 260.2925 261.6476 263.3295 267.2116 268.0765 268.023 267.4293 266.8712 266.743 265.4522 266.0968 267.164 267.5288 267.3307 267.1806 266.7591 266.7898 266.6638 265.6671 264.1194 263.1761 263.4072 264.2764 266.6819 268.5899 269.9172 270.1662 269.919 271.1581 273.0812 273.1537 272.3688 271.3957 272.145 270.7707 273.5168 275.8924 277.7653 278.364 279.6652 277.9847 274.9138 271.951 268.5398 263.9201 260.4214 260.8837 261.1584 264.0519 264.4695 264.2309 264.2194 264.7184 265.95 267.5993 269.045 270.625 274.8052 276.649 278.1551 279.6198 281.2685 282.9507 284.3982 285.537 286.1693 286.4404 286.2996 286.0425 284.6939 282.4006 280.7176 282.3428 283.3447 282.9495 281.7224 -9999 -9999 +-9999 336.4403 336.4762 337.0116 336.9487 335.3697 333.8682 333.3554 336.2425 335.8945 335.7435 333.683 331.3387 329.9059 329.1147 325.6019 322.336 320.1961 317.1129 314.0086 312.051 311.2327 310.2313 309.2178 309.1876 309.4342 306.5657 303.921 303.3706 303.4118 305.6867 308.0974 310.4366 312.1053 313.2886 313.3932 314.7571 315.8216 315.197 315.0446 315.2266 314.1377 312.7866 310.3942 310.1091 306.2651 305.6624 306.5304 307.3874 310.2972 313.4299 315.927 318.3382 320.5486 322.8232 327.5622 329.3985 330.6959 330.655 329.2844 331.0499 331.9619 330.9898 329.1448 333.944 337.535 339.2598 340.359 339.5059 339.8712 344.3191 349.1396 353.757 357.771 361.8113 362.6435 363.7213 363.937 363.7601 362.3525 362.119 361.1252 361.3025 362.5639 363.082 363.6539 363.9323 363.7318 362.8976 362.3884 360.9402 358.1217 354.3069 352.1758 349.4927 347.4107 344.5185 341.3902 339.2556 335.9338 333.5261 328.5578 326.4031 328.9424 331.8878 334.3761 339.3914 342.1722 342.2981 339.508 340.8811 342.9231 345.2031 344.3658 337.0699 336.565 339.2864 339.8177 337.3221 330.3708 324.9536 327.3144 329.9745 332.1903 334.4108 336.6501 338.9047 341.8999 345.436 349.086 349.909 352.7012 355.648 360.808 364.6247 368.912 372.5264 377.9601 378.4635 375.5861 373.4309 372.9192 369.6358 363.5461 359.9678 355.7467 338.8136 333.4427 331.3262 328.3401 325.2416 324.725 322.8922 320.1587 317.3193 312.2079 312.0995 313.1123 312.6203 310.6439 308.9289 308.678 309.2487 307.3099 304.6024 301.482 299.406 299.1489 297.6641 295.3247 294.6487 295.3048 294.1243 295.9009 299.7566 300.8246 297.4376 299.8336 301.9262 301.7235 301.0267 303.0151 305.0289 303.7296 300.6893 299.0764 302.2168 303.8647 304.01 303.1713 302.2693 302.9133 303.2429 302.5916 301.0406 299.4277 297.3885 297.2702 295.8487 294.0428 291.8443 285.2704 282.076 279.63 275.0879 275.084 272.7747 272.4568 274.0781 279.3847 282.5107 281.4804 280.2156 278.5049 274.3018 267.8613 263.8117 263.5706 262.5438 263.1505 262.788 263.2455 263.197 264.2114 265.2857 266.1954 266.4649 269.1362 267.987 267.4349 264.4554 261.6874 260.0761 260.0502 262.7637 265.1222 265.6932 270.8129 271.1985 268.9771 265.1695 265.4631 266.8678 267.4422 266.3058 263.8562 265.9072 262.4061 265.6108 270.6458 271.5948 271.9356 271.7829 270.2495 268.2939 260.6241 256.2431 254.4335 258.081 261.5853 262.5307 266.156 268.5242 269.7337 270.0596 271.5496 272.5995 273.4045 273.6509 274.0507 274.1564 273.3225 272.2971 270.8788 270.4727 269.9072 269.377 268.7194 267.8851 267.6012 267.3088 267.0475 266.3364 264.8677 264.1579 263.5769 262.5186 260.1183 257.0034 254.6622 251.6746 252.106 247.3159 249.3977 252.3587 253.5064 252.873 252.2659 252.5025 252.1627 248.4063 243.9837 243.9643 244.1564 243.3658 244.1354 244.1309 244.4558 245.7715 247.1963 249.0023 250.0934 250.2296 250.8426 251.4403 252.2886 253.5904 254.9135 255.5508 257.7464 259.0099 259.6729 259.5264 259.5632 261.2878 262.9927 264.0555 265.0876 266.6264 267.9421 268.9455 269.6592 270.314 271.3372 271.3712 270.9589 269.7744 268.5258 269.0031 269.4947 270.2462 270.8397 271.5134 272.0165 272.374 271.9972 270.3032 269.8017 269.6169 269.2101 268.7415 268.5266 267.9444 267.6831 266.8735 266.5755 266.5249 266.2594 265.6842 264.8177 264.1784 264.035 263.817 263.9795 261.6747 258.1704 256.8767 255.7144 253.5148 250.7082 242.8166 238.9856 240.6191 244.6855 245.137 246.0554 247.1508 249.2303 249.9978 251.6035 252.5531 253.0222 253.691 251.3423 243.8481 237.9376 237.7847 238.1067 240.0564 239.7935 236.3963 240.6779 240.3081 240.3188 240.1281 239.9208 239.6571 239.4256 239.8221 242.4704 243.6783 245.5238 245.9483 246.2572 246.7005 247.2681 247.7758 247.9424 247.3571 246.0199 249.213 252.356 255.3223 257.4127 259.1263 260.7394 261.6313 261.4736 260.6526 259.6917 259.3994 259.4164 259.8348 259.193 259.3255 259.8648 260.8226 262.4858 265.2235 266.1287 266.2397 265.7141 264.9491 264.4887 263.4026 264.7371 265.4378 266.0872 265.7305 265.3933 265.2669 265.6851 265.8345 264.9204 264.2567 264.177 264.5786 264.7943 266.2868 267.6664 269.3795 270.6955 271.8452 272.2542 274.0832 276.0107 276.0141 275.7338 275.6789 274.4913 276.0703 278.6 280.8493 282.0381 283.5891 282.1758 280.8265 279.2403 276.1203 272.1504 265.5815 260.8837 261.1584 264.0519 264.4695 264.2309 264.2194 264.7184 265.95 267.5993 269.045 270.625 274.8052 276.649 278.1551 279.6198 281.2685 282.9507 284.3982 285.537 286.1693 286.3943 286.2996 286.0425 284.6939 282.4006 280.7176 282.3428 283.3447 282.9495 281.7224 -9999 -9999 +-9999 334.1269 334.2559 334.9226 335.5316 334.7146 332.7034 331.3855 333.6784 334.4486 334.3114 333.3258 331.4295 329.3482 327.2991 326.2322 324.2991 322.7453 321.1892 317.8007 315.6942 313.3541 312.4852 310.8181 308.7059 307.2867 306.0515 304.2218 302.6142 302.9286 303.6259 306.7116 308.6797 309.6619 310.5782 312.9596 313.9034 314.6826 314.0515 314.0385 314.057 312.5451 311.484 309.3576 306.7307 305.2652 305.6087 306.7068 308.181 311.8004 314.5671 317.669 319.3205 321.4657 322.6353 325.6491 327.3646 328.3017 327.7775 325.589 327.7455 328.2278 326.5032 324.9721 332.8196 334.8707 333.982 334.5446 335.1948 337.8951 342.3097 346.766 351.062 357.3235 359.5909 360.429 360.9474 362.0667 363.4876 364.4486 364.786 364.6705 364.9751 365.6587 366.436 366.4954 363.9323 363.7318 362.8976 362.3884 360.9402 358.1217 354.3069 352.1758 349.4927 347.4107 344.5185 341.3902 339.2556 335.9338 333.5261 328.5578 326.4031 328.9424 331.8878 334.3761 339.3914 342.1722 342.2981 339.508 340.8811 342.9231 345.2031 344.3658 338.1507 335.2346 338.4405 338.9126 336.1663 325.978 324.0863 327.0668 330.9236 333.7686 336.3109 338.8493 341.4023 344.6317 350.7203 351.4032 354.3865 355.9244 358.294 361.7093 365.8116 370.8208 373.4313 373.7156 374.6548 369.4399 371.7914 367.8698 368.807 362.2329 357.0317 357.4228 355.4382 350.0186 343.3 337.8407 333.247 326.7899 326.2164 321.7022 322.7734 320.9941 313.8663 309.2556 308.3792 308.2081 307.2009 306.3402 306.1665 304.9601 301.5697 299.6813 298.9262 297.8923 298.248 297.6745 296.8763 295.8883 295.6532 300.6965 302.9207 303.7709 301.1065 298.9182 302.6355 304.1681 304.0644 304.2075 305.9315 305.1092 301.7635 300.2433 302.1655 304.4054 305.1785 304.5114 303.6998 303.8081 302.1561 301.4854 300.6317 299.0533 296.4429 295.6218 293.5692 290.8642 288.8399 280.3055 276.8802 280.8375 281.8203 281.5229 276.4375 276.2492 275.5905 280.5221 285.9542 285.9955 284.989 283.0063 280.0696 275.6883 271.1858 266.0849 264.3349 262.8777 261.9725 262.2557 262.4792 262.2522 262.2265 262.8113 263.0787 263.6203 261.8195 262.703 260.3091 258.0018 257.7635 257.8849 258.1789 260.3383 263.2261 267.4514 267.5094 266.5071 262.602 257.1387 261.1699 262.0152 259.9049 257.7621 260.0901 260.5023 266.9058 267.584 269.5478 269.3435 269.2415 268.7937 267.9568 259.7674 256.0286 253.5977 255.4567 260.0072 262.9172 265.1728 266.5403 268.2017 268.9128 270.9201 272.0557 272.6371 272.8037 273.5128 273.8607 273.351 272.697 271.2321 270.5702 269.7462 269.1429 269.0245 268.309 267.2676 266.2632 265.6436 263.9284 263.2923 262.6684 261.8956 261.5308 259.9222 257.5423 254.5962 253.5668 252.4648 249.2333 247.5406 246.8284 251.4828 251.7131 251.3139 250.9917 250.1261 247.9272 243.9762 243.9161 244.0504 243.9192 244.1211 244.1251 244.3353 245.1649 246.8394 249.1288 250.0499 250.9777 251.7414 252.3037 253.1781 253.8083 253.7123 254.1491 255.7463 256.6058 257.3345 257.6795 258.6898 260.7074 262.2371 263.1859 263.9224 265.604 266.6001 267.58 268.5276 269.4878 270.823 270.8835 270.2596 268.8264 267.5675 267.872 268.3777 269.1508 269.6625 270.4603 270.9052 271.1045 270.7009 269.5443 269.139 268.9547 268.8056 268.5505 267.7583 267.2569 266.9513 266.8617 266.9784 266.9731 266.985 266.6231 265.759 264.9725 264.3845 264.0063 264.3044 262.4984 259.623 258.9361 258.6676 257.5029 254.3042 248.5069 242.3675 239.2354 241.849 243.9748 244.3887 246.151 247.6657 248.6837 249.5826 250.4047 251.3238 252.5221 251.077 243.1536 237.761 237.8905 239.6449 240.1597 236.2844 240.7312 240.584 240.5471 240.4637 240.4095 240.0308 239.2197 238.9456 238.8402 238.8306 240.8045 245.2422 245.401 245.3096 245.3477 245.0621 245.2459 245.7347 244.2144 244.1353 249.189 252.07 253.7804 255.5402 257.1271 258.5805 259.1329 258.9313 258.0299 257.5089 257.8491 258.4708 258.5999 258.149 258.2091 258.6755 259.9793 261.3894 263.7798 264.3749 264.333 263.9866 264.9491 264.4887 263.4026 264.7371 265.4378 266.0872 265.7305 265.3933 265.2669 265.6851 265.8345 264.9204 264.2567 264.177 264.5786 264.7943 266.2868 267.6664 269.3795 270.6955 271.8452 272.2542 274.0832 276.0107 276.0141 275.7338 275.6789 274.4913 276.0703 278.6 280.8493 282.0381 283.5891 282.1758 280.8265 279.2403 276.1203 272.1504 265.5815 261.3832 261.1199 261.9966 263.2027 264.1504 264.9064 267.2581 270.2381 270.2532 270.6689 271.6461 274.1487 276.1284 277.7198 279.4396 280.9364 282.4944 283.5349 284.381 284.8762 285.1933 284.5421 283.8645 282.8225 281.078 278.2499 278.6397 280.1331 280.8231 280.4354 -9999 -9999 +-9999 332.0831 332.4244 333.2151 333.9991 333.7667 332.3902 330.5649 330.3048 331.255 331.5606 331.7849 330.9939 329.2961 327.4075 325.0626 323.633 322.4645 320.8686 317.2384 315.1843 314.0811 313.9469 312.7635 311.3179 309.5638 307.7392 304.9198 302.8888 301.9347 302.4266 303.3595 305.9181 307.7781 310.5121 312.381 313.4647 313.5559 312.8071 312.867 313.0184 311.7192 309.7471 308.076 304.7961 304.703 306.1624 307.3634 309.2332 312.2896 314.7991 317.3695 318.6988 320.3684 320.485 322.6474 323.8965 324.4744 323.3731 325.589 327.7455 328.2278 326.5032 324.9721 332.8196 334.8707 333.982 334.5446 335.1948 337.8951 342.3097 346.766 351.062 357.3235 359.5909 360.429 360.9474 362.0667 363.4876 364.4486 364.786 364.6705 364.9751 365.6587 366.436 366.4954 366.4849 365.941 365.3056 363.5783 360.8416 358.5476 355.8177 353.7299 351.0141 348.1624 345.3862 343.6338 341.5227 338.8505 336.2965 329.9305 328.0215 326.2687 328.6689 332.1722 336.1695 338.8911 336.7973 335.7211 343.2239 345.4552 345.2957 343.1579 338.6646 332.7362 335.4442 336.9651 334.9899 323.0785 323.4208 326.2316 330.2939 333.6566 336.9113 339.5344 342.1809 345.8097 353.4323 354.6654 356.7858 358.5484 356.3562 358.6981 364.1638 368.5646 369.5556 369.604 369.3408 368.1164 363.4925 367.8939 369.0575 366.4422 362.0839 361.6466 363.8984 360.8229 353.5 346.7863 341.4955 337.8542 335.4245 332.7201 329.6681 321.0233 314.7126 309.4675 308.408 306.9997 305.6446 304.4569 304.3561 302.9244 301.6721 301.6966 300.0639 300.569 302.3457 302.0352 301.9928 302.8875 304.6036 301.6386 304.5913 305.3571 304.5629 302.5005 301.6869 304.5023 306.0511 305.7526 306.8558 304.737 302.8383 302.4246 302.7975 304.8974 305.7458 305.8068 305.0289 304.0366 300.8111 299.4694 298.2968 297.0491 295.2795 294.0113 291.454 287.5902 281.6088 283.1411 286.6646 287.6583 287.4653 286.2885 283.0198 279.8639 278.1259 281.0463 287.644 288.97 288.199 286.1017 284.551 280.5534 276.4866 272.7445 268.545 262.9354 262.4706 262.3914 261.3833 261.292 261.7664 260.2354 260.3695 260.0885 259.4645 258.3689 258.7981 259.289 261.2199 257.0945 256.3294 256.696 258.2603 263.4898 263.7124 262.4592 259.6277 254.9579 253.4367 251.4558 252.8219 252.9306 256.563 262.2036 264.4988 264.8212 266.424 265.9363 266.5619 267.1568 266.2219 259.4456 255.5471 253.3024 253.9374 258.0893 261.7204 263.8255 265.9924 266.4892 268.061 270.0123 270.7865 271.3769 271.7096 272.7056 273.1157 272.6515 272.3015 271.8048 271.0246 269.6845 268.8826 268.4531 267.9865 267.9111 267.4984 266.2143 264.8588 263.3374 261.8884 260.9001 260.2627 258.5882 257.3026 256.5458 255.7014 254.361 252.7865 250.1365 247.9316 246.3949 247.7466 249.5598 250.2809 249.945 249.28 243.8552 243.9012 244.1066 244.2889 244.0708 244.3146 244.3131 245.0645 246.2287 248.4829 249.5785 250.2858 250.2571 250.954 252.1869 252.4444 252.6295 253.2404 254.4602 255.8778 256.8175 258.8891 260.9503 260.9514 261.7796 262.3437 262.972 264.5337 265.6513 266.9016 268.0865 269.1328 270.4327 270.493 269.2698 267.8376 267.0088 266.9717 266.8633 267.912 268.7259 269.4826 269.9271 269.9492 269.1257 268.2367 268.0641 268.0645 268.2483 268.0742 267.3741 266.5757 266.1495 266.0859 266.6299 266.4914 266.3354 266.149 266.0025 265.3044 263.8835 263.2661 263.5115 263.1274 262.0835 261.3879 261.332 260.4534 258.3105 253.5318 246.1425 239.8882 239.4716 240.5922 241.1654 242.7187 244.7596 247.1105 247.3881 248.705 249.6627 250.5753 249.4826 241.5556 237.9372 238.5596 240.0025 236.2292 239.4725 240.4856 240.6168 240.4958 240.5862 240.4095 240.0308 239.2197 238.9456 238.8402 238.8306 240.8045 245.2422 245.401 245.3096 245.3477 245.0621 245.2459 245.7347 244.2144 244.1353 249.189 252.07 253.7804 255.5402 257.1271 258.5805 259.1329 258.9313 258.0299 257.5089 257.8491 258.4708 258.5999 258.149 258.2091 258.6755 259.9793 261.3894 263.7798 264.3749 264.333 263.9866 263.5978 262.6972 261.5455 262.9626 264.2292 264.5698 264.3936 264.1026 264.3828 264.8609 265.6243 265.5013 265.3928 265.1237 266.1083 266.2027 266.3906 267.1479 268.2849 269.1831 270.8418 272.5414 274.1718 277.2445 278.1469 278.6859 279.041 278.3442 278.596 280.4464 282.1849 283.8465 285.8746 285.4423 284.7703 283.6929 281.1466 277.5171 271.6975 264.5111 262.5749 263.5969 265.5146 266.7954 266.0345 268.3838 270.9203 271.9859 272.5338 273.3801 276.6641 277.5229 278.4152 279.8045 280.7598 281.805 283.1003 284.0414 284.8437 284.8952 283.6391 282.1256 280.8657 279.5778 276.4757 275.1941 276.9191 277.8485 278.1258 -9999 -9999 +-9999 330.2173 330.5084 331.523 332.7327 332.9243 332.0926 330.3168 328.5201 328.8156 329.3866 329.6653 328.8208 328.302 327.373 325.8013 323.8705 322.2522 319.8195 316.6086 316.4254 315.4962 313.9128 312.0214 311.0118 310.034 308.527 305.6297 303.1847 302.5221 301.8981 302.1255 305.9181 307.7781 310.5121 312.381 313.4647 313.5559 312.8071 312.867 313.0184 311.7192 309.7471 308.076 304.7961 304.703 306.1624 307.3634 309.2332 312.2896 314.7991 317.3695 318.6988 320.3684 320.485 322.6474 323.8965 324.4744 323.3731 321.6292 321.5265 321.7086 322.6034 325.8904 328.8557 329.2279 330.5267 334.6095 337.9213 338.2151 337.2811 341.6516 346.2602 351.4981 354.6 354.9882 356.1854 359.9958 361.0211 362.6113 364.8595 366.2013 367.1043 369.0639 369.886 369.061 368.7328 368.1285 367.3929 365.3305 362.4777 360.2187 356.9687 354.2303 351.0343 348.7259 347.6997 345.8022 343.4475 340.7777 337.6731 332.345 329.2365 324.6269 324.4097 326.024 330.4387 332.2125 330.6457 334.9258 343.2203 345.704 345.5196 343.0622 338.0967 330.2391 329.8033 332.0741 331.8739 320.7881 322.7553 325.0331 327.5307 332.4824 335.928 339.7649 343.1188 345.4031 351.3309 353.3777 354.986 355.0921 352.057 356.3064 360.743 363.3955 363.5545 364.6858 365.8189 365.4814 360.9481 364.9043 366.8313 367.6056 366.08 364.0768 367.3452 366.1093 360.8118 355.4387 349.8021 344.8487 340.8827 337.3427 332.0647 319.1858 315.6178 314.7038 311.9513 310.4363 310.0663 308.7566 307.5711 306.4399 306.7325 305.4612 305.0208 305.9909 305.9421 304.4749 304.7713 306.7871 307.2238 304.1602 306.1095 307.1005 306.6774 305.1638 303.4529 304.7606 307.0491 307.2911 307.4055 306.2386 305.5172 305.4266 305.2922 305.4207 306.429 306.5927 305.5558 303.9804 301.0049 299.0736 297.4193 295.5763 292.9931 290.3362 286.1926 284.0959 286.775 289.113 289.9631 290.6332 290.0856 288.3838 286.1813 281.1904 280.9646 282.1911 288.6172 290.4307 290.222 288.4692 287.3089 284.6876 279.7001 274.1793 271.3257 266.9382 265.4081 263.2589 263.1956 262.3662 262.1582 262.0645 263.0054 262.8933 260.9908 261.627 261.8971 265.0519 267.3757 265.3811 260.7909 257.5737 256.0415 260.5382 259.5115 259.3742 256.8182 251.489 251.2759 250.8419 249.9419 250.5028 255.0086 259.1133 260.5079 260.6147 261.9817 263.2793 264.3909 264.6367 264.6763 259.3362 254.3453 252.8125 254.1378 258.4828 261.2405 263.3812 264.5875 264.4575 266.6179 268.4548 268.8233 268.9335 269.7688 271.2276 272.0989 271.615 271.4534 271.532 271.1834 269.9691 269.5047 268.3925 267.4548 267.212 267.4887 267.2424 265.9067 264.1786 263.5273 262.1602 260.954 259.9218 258.9095 257.8391 256.5975 256.5078 254.5021 252.9716 251.0065 248.7061 246.6235 246.206 247.7556 249.3351 249.0169 243.8487 243.9264 244.2394 244.2264 244.2463 244.0965 244.3816 245.1395 245.6817 247.299 248.1065 248.9234 248.8472 249.8716 250.5338 251.6456 253.0455 253.364 255.1493 256.2281 257.7636 260.5548 262.9542 263.6564 262.0284 262.1862 262.7628 265.0519 266.2963 267.4599 268.4547 269.2232 270.0936 269.8577 268.6643 267.3485 265.5062 264.7661 265.4832 266.5176 267.4124 267.9394 268.1569 267.9649 267.4565 267.1009 267.2756 267.6112 267.8535 267.6328 266.815 265.8075 264.8536 265.0177 265.7682 265.5318 265.3087 266.149 266.0025 265.3044 263.8835 263.2661 263.5115 263.1274 262.0835 261.3879 261.332 260.4534 258.3105 253.5318 246.1425 239.8882 239.4716 240.5922 241.1654 242.7187 244.7596 247.1105 247.3881 248.705 249.6627 250.5753 249.4826 241.5556 237.9372 238.5596 240.0025 236.2292 239.4725 240.4856 240.6168 240.4958 240.5862 240.5602 239.4567 238.8153 238.6291 238.3581 238.4619 239.1897 244.3715 243.9127 244.028 243.8401 243.2553 243.6863 243.3356 242.7368 243.4032 247.8594 249.267 251.0711 253.6201 254.6401 255.6161 256.4786 255.346 254.7607 256.0151 256.6057 256.7988 256.9272 257.089 257.5512 258.7205 260.4904 261.9666 264.2915 263.8334 263.0304 262.2049 261.8789 260.3163 259.4075 261.7975 262.5459 262.5077 262.6283 262.8713 263.4846 263.8129 264.377 264.9313 265.569 266.0291 266.6076 267.2192 267.5637 267.5051 267.8239 268.8151 269.8202 271.248 273.2533 276.4941 277.9169 279.2816 280.4371 280.8158 281.0242 281.6036 282.7437 284.3698 286.7204 287.013 286.6131 285.4348 283.3693 279.6633 275.8234 270.3952 265.5948 263.4984 266.5113 269.7776 270.0127 269.2873 268.5904 269.2134 269.9081 271.4926 276.7135 277.9995 279.0421 280.7023 281.3245 282.0866 283.2713 284.2412 284.7894 284.7879 283.5835 280.9018 279.6075 278.2558 275.106 273.1613 274.9926 275.0287 275.5121 -9999 -9999 +-9999 329.1 328.5128 329.2987 330.8672 331.2499 332.0926 330.3168 328.5201 328.8156 329.3866 329.6653 328.8208 328.302 327.373 325.8013 323.8705 322.2522 319.8195 316.6086 316.4254 315.4962 313.9128 312.0214 311.0118 310.034 308.527 305.6297 303.1847 302.5221 301.8981 302.1255 303.1699 305.293 308.3463 311.1028 311.805 312.2115 311.595 311.3121 311.282 309.4812 307.1922 305.8242 304.372 303.4831 306.1539 307.2296 309.6278 312.6536 314.3947 314.861 315.1661 316.4202 317.205 317.3195 317.1545 316.6639 316.9671 318.5904 321.6308 322.3602 323.0188 323.9929 326.4116 329.1458 335.7948 339.9665 343.1573 345.5145 345.4135 342.8523 341.6517 345.6657 348.6813 352.0309 356.0444 359.3287 361.4676 362.8243 365.2102 367.1235 369.9397 371.5676 371.8131 373.0341 372.0086 370.9856 369.748 367.8435 365.2162 363.3193 357.8986 355.1775 353.2469 351.9008 350.7809 348.2603 345.3823 342.3403 339.8734 334.4467 332.378 328.7511 323.562 322.4932 323.9261 326.1132 331.0549 335.4465 342.5068 344.6812 345.289 343.0995 338.5811 333.4061 325.5965 324.63 325.2652 320.5757 322.539 323.5215 326.0704 331.4872 335.1616 338.2737 341.1229 342.2737 346.973 350.2084 352.9857 351.6227 348.8258 351.4604 354.8062 356.1647 355.9629 361.8389 363.7182 360.161 357.9341 360.7065 361.4668 364.9049 367.4869 368.3415 368.8973 368.212 366.0812 360.0075 353.4939 347.3177 341.9326 337.1494 330.6968 319.7784 318.2055 317.5012 316.9014 317.9333 317.0576 315.0543 313.0927 311.7431 309.2823 308.5884 309.1122 308.9692 308.4699 305.5797 306.712 308.3524 308.3202 307.195 307.4043 308.2025 308.1573 307.2123 305.4219 306.0199 308.0406 308.6893 308.4945 307.2484 307.1952 307.1583 306.9512 307.6358 307.2787 307.6081 307.0727 305.5625 301.544 299.6149 298.0181 296.1553 292.0255 289.8375 289.0618 291.6371 291.9774 293.1302 293.4029 292.893 291.0846 289.0092 286.0689 282.6494 282.0512 284.3006 289.2641 291.549 291.3568 289.5067 287.3231 283.5628 277.521 275.7568 275.1096 269.2688 265.8626 266.7965 266.3775 265.3623 264.1319 264.469 268.2414 271.5768 268.2269 266.3474 266.9796 268.7859 271.0886 271.1363 267.7453 263.3979 257.9231 255.1924 254.8526 255.6616 250.9127 253.294 254.1621 253.2149 251.3299 249.5317 249.94 252.2039 254.2337 256.463 257.957 259.9576 261.2516 261.49 262.4214 257.7476 253.3772 252.1733 255.6537 258.5713 260.7977 262.4955 263.2996 262.9735 265.0181 265.0494 265.9083 267.398 268.8951 270.1197 270.484 269.958 269.602 269.5128 269.6228 269.1774 268.7075 268.5457 267.2054 266.712 266.8871 267.4882 266.9809 266.0438 264.8588 263.6517 262.1714 260.7916 259.2686 258.282 257.507 255.8144 253.7927 251.3216 249.9643 248.4464 247.5051 246.4523 245.5256 246.1738 247.5952 243.7965 243.9148 244.2403 244.1516 243.9485 243.9621 244.3175 244.7594 245.3091 246.0841 246.551 247.2163 249.1197 249.6993 250.7879 252.1604 253.7975 254.8021 255.2797 256.2229 257.813 260.12 262.9542 263.6564 262.0284 262.1862 262.7628 265.0519 266.2963 267.4599 268.4547 269.2232 270.0936 269.8577 268.6643 267.3485 265.5062 264.7661 265.4832 266.5176 267.4124 267.9394 268.1569 267.9649 267.4565 267.1009 267.2756 267.6112 267.8535 267.6328 266.815 265.8075 264.8536 265.0177 265.7682 265.5318 265.3087 265.1566 265.0467 264.6653 263.4333 262.8004 262.6603 262.6834 263.2634 263.3062 263.4418 262.6718 260.7147 257.1615 250.5135 244.2647 238.6511 238.764 238.7483 239.5772 242.2955 245.1782 246.0433 246.8947 247.6068 248.6218 246.3029 237.9269 237.9069 239.2551 236.2655 238.0659 238.7032 239.9825 240.8076 240.5674 240.1864 240.3892 239.2235 239.023 238.8451 238.2314 238.2658 238.5107 241.0712 239.8302 240.1934 239.7804 239.9655 240.5883 241.2111 241.1409 245.002 245.3444 245.3501 246.5371 248.4383 249.3815 251.3331 252.8043 252.4421 252.2223 253.7308 254.6726 255.2883 256.3464 256.6457 258.3157 259.9575 261.3364 262.9674 263.2745 262.2649 261.3181 260.7783 260.1672 257.8699 259.205 260.5759 260.8034 261.2208 261.6032 262.1216 262.2753 262.5068 262.7374 263.6559 264.6296 265.2601 267.1855 267.6171 268.2304 268.8035 268.7837 268.7262 269.3952 270.5255 271.8817 275.4032 276.9067 278.0767 279.4675 280.1685 280.7523 281.5174 282.4221 283.5682 286.3366 287.169 287.0142 285.7971 283.6166 280.9692 277.3513 273.3914 267.9142 264.1087 265.4944 269.4925 272.6685 274.798 275.7537 275.0455 273.0537 272.3796 276.8133 278.7281 279.3634 281.0459 281.8361 282.9856 283.9039 284.2529 284.1977 282.9644 282.2762 279.2073 277.6128 276.4811 273.8412 271.5304 273.381 273.2418 273.6047 -9999 -9999 +-9999 329.1 328.5128 329.2987 330.8672 331.2499 331.1482 329.9989 328.4974 326.494 326.8007 326.6991 327.7331 326.7204 326.6138 325.5222 323.8513 322.4429 321.0499 318.5239 317.7341 315.4339 313.5833 312.3577 310.8719 308.8207 307.111 305.6485 303.4897 302.1248 301.6583 301.5964 301.7138 302.4374 306.1096 307.6807 310.9139 310.9522 310.0586 310.4211 310.0526 307.7285 304.8946 303.7774 303.5734 302.5425 305.5711 306.196 307.1913 309.4599 311.2487 311.6337 311.8194 312.3353 312.7379 314.653 316.8893 317.2299 318.7115 322.6387 324.0426 327.988 328.6954 328.5594 328.6709 331.5944 335.8713 339.2117 342.8341 345.339 347.3759 348.7046 350.1638 353.5565 351.5297 352.6976 357.664 361.6569 364.8407 366.7599 368.1474 370.3473 371.558 373.7489 374.9406 377.0533 376.0495 374.1683 372.4247 370.0107 367.6151 365.3818 360.2356 358.5655 356.352 354.3552 352.4877 350.2593 346.5707 343.7531 340.719 335.266 332.1359 329.6967 325.4554 321.7531 321.6458 327.198 332.2193 335.7129 339.9023 342.3575 343.2225 342.6441 340.3972 338.3203 335.1812 330.0246 322.8691 318.8944 321.2518 323.4919 326.5631 329.9501 332.5934 335.8477 339.6976 342.3315 347.0774 349.3018 349.7822 347.5678 346.0131 348.0408 350.9112 354.3302 357.1679 361.329 360.9624 356.8562 358.0701 356.2552 358.3615 364.2182 367.6896 369.7484 366.903 367.2955 365.1877 359.7186 352.3157 344.3724 337.1621 329.8181 326.7885 320.6847 322.3795 322.3843 322.0893 321.5963 320.5797 318.706 315.4038 314.9698 312.0977 311.5573 311.9588 311.6002 309.838 307.9931 309.2114 309.7951 309.8003 308.4431 308.3711 309.1895 309.2014 308.2466 306.9547 307.0282 308.6047 309.4019 309.3893 309.0401 308.9208 308.8103 308.4641 308.2506 308.4203 308.6418 307.7409 303.8295 301.6981 299.5636 297.6133 294.4321 291.7919 292.2842 291.3674 294.4712 295.2016 296.8632 295.9637 294.104 291.5552 288.873 285.5295 284.5749 285.5267 286.4823 289.5683 291.3447 291.3258 289.2091 285.7651 280.6917 280.6739 280.2702 278.309 269.2741 267.5837 268.5881 268.9403 266.8936 265.3788 268.9009 272.1314 275.4913 275.6208 272.5507 271.3352 271.7162 274.0809 275.3203 272.6241 268.0675 264.9325 256.9964 254.788 256.196 259.4343 261.8898 263.5081 263.234 261.611 254.5155 249.9111 249.0149 248.5836 251.2131 252.8227 255.6523 257.5096 258.8696 260.7346 256.8398 252.6175 252.6945 256.4539 258.2184 260.152 261.2906 261.799 260.8524 262.9018 262.9637 264.3504 266.3192 268.5569 269.6224 269.1016 268.7745 268.3165 267.8644 267.4359 267.4437 267.8336 267.4213 266.6224 265.9932 266.1569 266.9411 267.5697 267.0617 266.3052 264.5989 263.0893 261.5455 260.0804 258.282 257.507 255.8144 253.7927 251.3216 249.9643 248.4464 247.5051 246.4523 245.5256 246.1738 247.5952 243.7965 243.9148 244.2403 244.1516 243.9485 243.9621 244.3175 244.7594 245.3091 246.0841 246.551 247.2163 249.1197 249.6993 250.7879 252.1604 253.7975 254.8021 255.2797 256.2229 257.813 260.12 261.4765 262.5079 262.6654 263.1898 263.7747 265.7253 266.9246 267.5318 269.0661 269.5434 270.0459 269.5629 268.3472 266.8411 263.4052 263.0569 264.3515 265.0716 266.0446 266.5295 266.5547 266.2817 266.4255 266.38 266.8452 267.3864 267.4336 267.0937 266.4112 264.886 263.9236 263.9704 264.4659 264.2459 264.0174 263.7161 263.7086 263.5042 262.9214 262.5457 262.009 261.7513 262.7401 263.6608 263.9703 262.9737 261.6309 258.1596 252.6548 248.4543 237.892 238.4004 238.3887 238.3703 239.8682 241.8157 244.4909 245.8004 245.9134 244.8074 239.4702 237.977 238.3087 237.2769 237.204 240.37 240.0863 239.4627 240.8087 240.4913 240.0902 240.0529 239.5215 238.9244 238.4698 238.1476 238.0262 238.123 238.2576 238.1654 238.1449 238.2047 238.4202 238.8052 239.4871 240.9428 245.4535 245.3423 245.3295 245.5519 245.7566 246.9537 248.3361 248.7985 251.1163 251.4516 253.1605 253.839 254.7331 255.7727 257.4365 259.1162 260.6928 262.0502 262.8795 261.5234 260.1849 259.0466 258.6589 258.5122 256.2974 258.5161 259.2008 259.0446 259.5075 260.0189 259.6338 259.6982 260.0995 260.9307 261.9268 263.0611 264.5663 266.2727 266.9283 267.6957 268.4336 269.4074 269.7648 269.7025 270.2745 271.3313 273.934 274.9563 275.9106 277.1595 278.1295 279.068 280.2388 281.4417 282.524 285.5457 286.6898 286.7181 285.4012 283.4046 280.6893 277.8353 273.9632 270.3769 265.1064 265.7508 268.103 274.1674 276.9057 279.8154 281.8412 281.2452 278.5602 278.3306 279.5518 280.2162 281.174 282.4524 283.4908 284.3225 284.3448 282.4908 279.0688 277.2613 275.7585 275.0166 273.9294 272.0284 270.2855 271.2834 271.0694 271.4229 -9999 -9999 +-9999 328.1512 327.7102 327.3759 328.6208 329.7514 330.0161 329.3413 327.9763 326.355 325.6102 324.2316 324.3156 326.1858 325.5244 324.9225 324.4555 324.4939 323.3214 320.4747 318.9901 317.0408 315.1588 314.1608 312.3667 310.0292 308.8896 306.9094 303.3602 302.4393 301.7533 301.4733 301.4845 302.3212 305.5097 309.2517 310.3174 309.5879 308.3139 309.0111 308.5381 306.4255 303.5623 303.0272 303.8177 305.1085 306.431 307.0042 307.7175 308.279 309.2829 310.2522 312.5887 314.0062 314.814 318.7817 319.6931 323.2044 327.0205 329.6569 330.6557 331.5863 333.5379 335.5473 332.3951 330.1366 333.4408 337.0712 340.1558 342.0723 344.4793 347.5838 350.911 357.7237 358.4651 357.5374 358.1582 362.0504 365.5823 368.66 370.7143 372.5624 374.0952 374.915 378.1581 380.2205 380.2519 378.3286 375.8412 372.7103 369.9528 365.203 363.0355 360.6513 358.1344 355.41 352.5389 349.9129 346.5 343.8246 341.1956 334.7802 332.0606 328.7013 325.1847 322.0042 318.9218 324.8938 330.1335 332.4879 336.7666 339.5144 341.2402 341.1825 340.2537 339.7199 338.7575 334.2068 327.8066 319.0132 320.2013 322.1877 325.6279 329.5852 333.1295 336.3961 340.277 343.0567 344.9832 345.9845 346.0999 343.8711 344.1505 349.3419 353.6246 355.7419 355.8564 357.7843 356.1696 351.812 351.9937 354.9522 359.9618 365.0642 370.0976 370.5212 365.1862 362.8944 360.8852 353.4546 345.4587 338.757 337.4071 334.299 331.1854 327.0836 323.7345 325.345 324.8142 323.6232 322.4073 320.7337 318.5338 316.8585 314.62 314.9087 314.5892 313.1915 311.3523 310.6172 311.1313 311.4188 311.1282 309.9861 309.8083 310.264 310.2649 309.2711 308.9362 308.9195 309.8596 310.0641 310.4801 310.1557 310.0651 309.9638 309.732 309.3248 308.989 308.6969 307.451 304.8347 302.1561 300.2334 295.3794 296.1781 296.6068 295.5534 293.8482 294.6252 296.4915 298.3607 296.9178 294.4829 292.3511 290.2889 288.5833 287.0882 287.4497 288.459 290.1076 291.5046 291.6367 289.5935 285.505 284.4679 284.9816 283.901 281.5142 275.1273 270.92 270.5817 268.9368 267.753 268.6792 274.8162 277.3717 278.7476 281.7384 277.8666 275.6428 274.8964 276.9202 278.4832 276.6211 272.8014 269.8035 262.3898 260.6716 262.0971 265.3157 267.4576 269.444 270.4589 269.3791 264.2016 249.6493 249.1724 249.1845 249.0179 249.1798 251.8413 254.1492 257.1951 258.8387 255.5573 252.7856 252.6945 256.4539 258.2184 260.152 261.2906 261.799 260.8524 262.9018 262.9637 264.3504 266.3192 268.5569 269.6224 269.1016 268.7745 268.3165 267.8644 267.4359 267.4437 267.8336 267.4213 266.6224 265.9932 266.1569 266.9411 267.5697 267.0617 266.3052 264.5989 263.0893 261.5455 260.0804 259.0552 257.9554 255.2941 253.9178 254.0454 253.4253 251.9591 250.2429 248.6903 246.5455 245.0759 244.8908 244.0458 243.8895 244.2786 243.9846 244.1188 243.9415 244.2454 244.6296 244.8304 246.6374 247.6687 248.2702 249.4819 250.8558 251.369 252.0554 253.8717 255.7408 257.2623 257.7752 259.1175 259.9384 261.2274 262.1296 262.8679 264.2812 265.3381 266.4047 267.0355 268.0046 269.0522 269.8648 270.0667 268.9837 267.8884 266.2923 262.5723 262.202 263.4677 264.1451 265.0472 265.4496 265.6857 265.4691 265.4635 266.4157 266.7015 266.7185 266.5064 266.3569 265.6514 264.0045 262.9507 262.9942 263.1818 262.9725 262.8258 262.2294 262.3076 262.1763 262.3806 262.3819 261.9711 261.174 261.6763 262.9944 263.9734 263.6713 262.4445 258.5181 253.2142 249.948 245.0609 242.0524 239.1831 237.8336 238.5645 241.8605 244.1365 244.1517 243.3842 240.5508 238.2008 238.5606 236.4034 236.9855 240.2066 240.1548 239.9157 239.822 240.4304 240.2408 239.8725 239.6342 239.0716 237.7996 237.2814 237.5806 237.5397 237.9181 237.8361 237.7232 237.8379 238.1652 238.3463 238.9557 239.18 240.9133 244.6997 246.6172 247.4003 246.428 245.737 246.2551 248.4925 250.2094 250.7145 251.3552 253.0989 252.9008 254.838 255.9911 257.3666 259.4433 260.9457 262.1942 262.266 260.3854 259.0045 257.4819 256.7569 256.7039 254.6688 256.7192 256.656 256.3578 256.8671 257.3142 256.8328 257.6036 257.9439 258.6676 259.9688 261.9862 263.3155 264.6664 265.284 266.115 267.3337 268.4099 268.9498 269.3252 269.8047 270.6278 272.3042 273.0456 274.153 275.4845 276.8457 278.2394 279.6908 281.1544 282.6542 285.2171 286.5625 286.9941 285.9127 283.7329 281.5764 278.8619 275.678 272.376 266.5507 265.9289 268.9887 272.7039 276.8616 279.7009 282.3661 284.0016 283.6931 281.1144 280.5485 281.9249 281.5487 282.4172 283.6747 284.2854 283.7783 281.6033 274.128 271.9913 271.2939 271.0963 271.2099 270.2397 268.5397 269.6273 268.9696 269.4326 -9999 -9999 +-9999 328.4062 327.1913 326.7717 326.7707 328.2539 328.7934 328.5667 327.3853 325.5658 323.3983 322.7877 322.6577 323.3053 324.9182 324.977 326.1872 325.7474 325.6258 320.8951 319.234 317.4213 316.2343 314.6035 312.7958 311.2653 310.3663 307.8409 303.3193 302.6273 302.1374 300.9726 301.6237 301.7507 304.512 308.8159 309.2829 307.4874 306.9661 306.5468 305.3824 303.5422 302.5859 302.5193 304.0233 305.9333 307.9587 309.042 309.2918 309.9409 309.6332 313.3603 315.7457 317.5955 318.7075 321.6066 322.9885 327.1488 331.8174 334.0796 335.5494 335.9614 336.8123 339.132 341.0079 340.454 336.2433 334.5783 336.1485 340.2801 345.6487 349.9516 352.9483 359.4927 360.8971 361.1903 361.209 362.452 365.0901 368.5416 371.1703 372.9235 373.9155 376.4572 379.0216 380.9865 382.3342 381.995 380.4947 378.0273 374.3689 367.1187 363.7249 359.644 356.0906 352.7566 350.5897 347.2876 344.292 341.7058 339.7665 335.6329 332.3448 328.3331 323.563 320.5257 319.973 320.9274 326.1605 329.8044 334.632 336.8286 338.3269 338.9973 337.8582 338.4888 337.7264 333.5376 327.4946 318.3947 320.1239 322.1671 325.3365 329.4165 332.1998 335.155 338.0267 339.8739 342.5436 342.4586 343.0162 341.4002 343.3906 347.8596 350.8008 352.6012 350.7762 353.5186 350.5753 348.83 353.2888 357.9658 360.9178 365.7395 370.9833 371.3077 364.9508 362.0891 356.4505 354.0382 351.3136 347.6609 342.6382 338.8251 335.9538 330.2918 328.0596 327.7557 326.6274 325.1733 324.6544 322.7036 320.2795 319.1573 317.0349 316.8671 316.3779 314.8093 312.7131 311.7088 312.875 312.8774 312.3292 311.3569 311.05 311.2983 311.0331 310.6074 310.7725 310.9086 311.3229 311.3931 311.5977 311.3105 311.0518 310.8149 310.6511 309.3495 308.5316 308.3067 307.0414 304.398 302.0157 299.4675 299.4471 300.151 299.4403 298.132 296.4675 295.4224 297.1476 298.8111 297.6639 295.7326 294.2484 292.5487 291.348 289.9265 289.8417 290.619 290.8876 291.9987 291.8891 289.6024 288.745 288.5558 288.7405 287.5425 284.1594 278.2708 276.3311 274.1399 269.5351 268.4547 270.1411 274.8162 277.3717 278.7476 281.7384 277.8666 275.6428 274.8964 276.9202 278.4832 276.6211 272.8014 269.8035 262.3898 260.6716 262.0971 265.3157 267.4576 269.444 270.4589 269.3791 264.2016 249.6493 249.1724 249.1845 249.0179 249.1798 251.8413 254.1492 257.1951 258.8387 255.5573 252.7856 252.3035 253.8148 257.4186 259.6636 259.8954 260.2044 260.3087 260.8931 261.2845 263.3274 265.7975 268.0457 268.0782 267.5185 267.0051 266.5875 266.2216 265.6781 265.6309 266.2597 266.5623 266.087 265.1826 265.5083 266.0896 267.4007 267.1855 266.2771 264.653 263.5797 262.24 260.7925 259.7541 258.9383 257.5405 256.3083 255.7492 254.5957 253.3564 252.3669 251.2474 248.8353 245.8279 244.3194 243.9136 243.7313 244.0883 244.0521 244.3319 243.8864 244.5928 244.4997 244.9034 246.1523 247.169 248.2035 249.9794 250.9818 252.3376 253.2278 254.4502 255.5961 258.401 259.1368 259.6494 260.5519 261.6477 262.5808 263.3148 265.0394 265.4737 266.741 267.5551 268.2852 269.4226 269.9241 270.0658 268.8979 267.7438 266.2372 262.0307 261.6144 262.6624 263.3994 264.1391 264.6371 264.7532 265.0616 264.9808 265.2402 265.2291 265.3926 265.4625 265.211 264.401 263.4931 262.8356 262.4713 261.459 261.5878 261.0038 260.8109 260.4127 260.5354 260.8668 261.5891 262.2732 261.11 260.4418 261.3017 262.3708 262.5286 261.6675 257.8209 253.7327 251.8786 247.0568 243.1826 239.2461 238.1197 237.5148 241.1826 242.4244 242.8131 241.9247 238.3931 239.3306 236.2413 238.5214 240.202 239.9739 240.1257 239.9603 239.7159 240.3084 240.0709 239.7955 239.1651 237.9161 237.3973 237.5942 237.5663 237.4246 237.5391 237.509 237.5757 237.5645 237.944 238.153 238.1675 239.3311 243.2878 246.5052 249.1842 250.6065 250.0666 248.5223 247.6828 248.324 249.1951 249.8129 250.3657 251.9382 253.4302 255.6272 256.3911 257.9629 259.4699 260.3905 261.0613 260.3972 258.1972 257.3783 255.9525 252.0084 250.573 251.9863 252.9143 253.2991 254.1945 254.607 255.3586 255.7859 256.7415 258.3973 257.7142 259.0009 260.717 261.3827 263.3267 264.351 265.1481 265.9415 266.7168 267.4078 268.2182 268.8773 269.8947 271.3991 272.6864 274.3304 275.8863 277.3846 279.02 280.5847 282.1044 283.1551 285.6557 287.0371 287.7343 287.3254 285.784 283.5472 280.8182 278.4294 275.5255 271.1136 267.639 268.0321 271.2386 275.4138 278.3201 281.1616 283.3044 284.7578 282.1135 282.2995 282.1712 282.1796 282.9006 283.8358 284.0796 282.6359 279.6296 270.0651 268.1338 266.7297 266.3799 266.4501 266.6346 266.0783 266.8074 266.4685 263.6932 -9999 -9999 +-9999 329.105 326.5832 325.9974 325.3298 326.7159 327.3063 327.4275 326.9206 325.8294 323.1034 321.9087 321.3614 321.6335 322.7827 324.0241 325.1822 326.2174 326.4709 321.3998 319.8989 318.1812 316.0855 314.383 313.2645 312.223 310.9559 306.5852 303.3968 302.5574 301.3682 300.9878 300.6785 302.2368 305.8592 307.99 308.1298 305.9593 305.1021 304.4512 303.2176 302.4256 301.8347 303.1727 305.5884 308.0901 310.3269 310.9301 311.3672 312.6232 314.203 315.5806 318.3873 320.3636 321.7275 324.1854 325.4612 327.8963 331.885 334.9958 337.1645 339.0072 340.1515 341.8362 345.7961 346.5557 345.7179 344.4176 343.557 338.3762 343.5543 347.2773 350.5003 356.1101 356.5031 358.1163 360.2976 361.6007 363.0529 365.6019 368.6862 371.5609 373.7933 375.2025 377.5573 380.3419 382.8967 384.9017 384.9806 382.8644 378.4901 368.7331 364.3492 357.7859 352.782 347.3433 345.1687 341.2611 337.9789 337.2878 332.5869 330.6129 328.0197 326.9046 321.5244 319.1841 317.9152 319.85 323.9504 327.9114 331.5721 333.9012 335.9879 335.6329 335.3636 337.0394 336.5143 331.9903 325.4036 317.9392 321.1977 322.9598 325.627 328.3328 331.2829 334.3336 335.7014 337.8392 339.161 339.2225 339.7074 338.6388 342.0598 345.2571 347.18 346.8654 346.5038 346.5377 345.4774 347.9389 352.9904 356.0929 359.5953 364.6601 368.8604 368.9977 364.7915 365.3215 364.7382 362.3679 358.1629 352.8452 347.4898 342.9286 338.5588 335.1685 330.7009 330.1744 328.2903 326.7542 325.4713 323.313 322.2369 321.1298 318.8364 317.8971 316.3889 315.1964 314.1197 313.9186 314.0671 313.907 313.2053 312.272 312.024 312.0684 311.8339 311.7509 311.95 311.9944 311.9823 311.8676 311.4505 311.2416 310.9299 310.6652 310.4368 309.6792 308.6018 308.1371 306.7943 304.3638 301.5442 300.4651 299.4471 300.151 299.4403 298.132 296.4675 295.4224 298.1314 298.8111 297.6639 295.7326 294.2484 292.5487 291.348 289.9265 289.8417 290.619 290.8876 291.9987 291.8891 289.6024 288.745 288.5558 288.7405 287.5425 284.1594 278.2708 276.3311 274.1399 269.5351 268.4547 270.1411 275.5714 280.1689 282.7228 285.9177 282.8882 279.7843 278.6312 279.6407 280.908 280.0431 277.3632 274.3677 267.9956 267.9881 266.5523 269.048 271.9871 274.1612 275.4328 274.995 271.9062 258.538 249.5099 248.8458 248.8154 248.0058 248.6577 250.3961 253.57 257.1464 255.7125 252.7468 252.2498 252.1874 254.9324 257.7972 257.3439 257.6612 259.3455 256.8518 260.9669 263.9356 265.527 267.0762 266.9854 266.2738 265.654 265.2053 264.5909 264.1522 264.163 264.5177 264.376 264.7724 264.9923 264.593 265.1529 266.7236 266.9074 266.2276 265.2145 264.5466 263.591 262.2998 260.7876 260.1791 259.1425 258.1211 257.0657 255.5751 254.2332 252.9088 252.1129 251.6157 247.8443 244.0453 243.7748 243.6562 243.3407 243.8255 244.0079 243.9918 244.0216 244.706 245.2098 247.738 248.2306 248.9109 249.8889 251.3145 252.5755 253.3749 254.2227 255.4477 257.8989 259.1842 260.0341 261.2807 262.1326 262.9686 264.1832 265.6775 266.3914 268.0642 268.5525 269.4138 270.1913 270.2706 270.1425 269.1376 267.6114 266.3244 261.8529 261.0875 261.3795 262.4479 263.5708 264.1324 264.091 264.1678 264.183 263.8937 263.9787 264.3935 264.5582 264.4333 264.0529 263.7387 263.5544 263.2849 260.4163 259.7387 259.1226 258.8512 259.0685 259.2701 259.5331 260.156 261.0382 261.9396 260.7332 259.3359 259.6021 260.2163 260.3598 258.3776 255.8584 254.3332 249.0585 245.2414 240.2941 238.0332 238.0378 237.474 240.2974 241.3493 240.1246 236.1982 236.342 240.3323 239.7922 239.8038 239.8061 239.8638 239.932 239.5496 239.9719 239.7023 239.2643 238.9692 237.2795 237.2754 237.9334 237.9454 237.6115 237.4421 237.5569 237.6735 237.8491 237.713 237.9137 238.4778 239.8169 245.2571 248.1993 250.8628 252.1014 252.2593 251.9305 251.1439 250.9993 251.4228 251.8222 252.9642 253.6146 254.3336 255.8624 257.373 258.6823 258.7127 258.726 258.4593 257.507 255.921 255.2243 253.8031 249.0324 252.9733 255.7134 255.2803 255.1513 256.7654 260.1332 259.4834 259.2306 260.6297 262.5793 262.4097 259.1966 259.9817 261.2621 263.9126 265.2753 266.1292 266.8576 267.7181 268.8266 269.8435 270.4579 271.0673 272.1183 272.7988 273.4877 274.9223 276.5573 278.4725 280.241 281.7495 282.8428 285.4151 286.9143 288.0865 288.3275 287.2344 285.2283 283.3021 280.7065 278.6095 275.7317 270.31 267.9313 269.7982 273.5508 277.5052 280.0441 282.2428 284.1346 283.686 283.1642 282.6677 282.5794 282.8244 283.4432 283.5388 282.6078 278.927 268.5945 268.4301 266.2256 264.6344 263.695 262.9095 262.984 262.2574 259.4785 260.9422 -9999 -9999 +-9999 328.5565 325.887 324.9709 324.5558 325.2225 325.7124 326.1804 326.1801 325.774 323.5451 321.2984 320.6414 320.2594 320.6501 321.4473 323.433 324.4121 325.1355 321.6279 320.1544 318.3315 316.0115 314.1344 313.3578 312.515 311.2345 308.1753 303.3799 302.2852 300.713 300.8427 300.6426 303.6117 305.429 306.9312 306.9252 304.2091 303.6612 302.7648 301.6238 301.1173 302.3261 304.701 307.2553 310.2227 313.2014 313.9323 313.5981 313.3559 315.3914 316.6384 318.8415 320.8799 322.5045 325.6846 327.1344 328.6695 331.2605 335.0662 337.6287 339.4413 340.7902 341.9966 346.4301 349.2241 351.1143 351.5667 350.8086 345.7594 342.8691 345.246 347.6276 353.3875 357.7095 360.0603 362.6855 365.0279 365.5229 367.4834 371.1118 372.6898 375.5727 377.878 380.2364 382.6619 384.8064 386.4926 387.6087 384.5356 378.8098 370.0536 366.1354 360.1593 355.8468 355.4559 352.5637 349.4861 346.0742 343.2807 331.0777 325.1245 324.5501 323.1551 321.3645 318.3658 317.4446 318.0946 320.6859 324.2653 328.5403 331.5297 333.4046 332.8499 333.6735 335.6412 334.6431 331.0606 320.6283 318.0447 319.614 320.1118 323.7966 328.8596 333.1456 336.6227 338.2533 337.859 336.2372 336.29 335.5397 337.9868 340.9723 341.9686 341.7667 341.1819 341.5988 342.0612 343.4276 343.689 346.4863 349.5847 355.274 361.8079 365.5745 366.358 367.1132 368.1735 367.3339 365.6445 360.4355 355.341 350.6129 345.8446 342.7036 337.4374 333.8483 332.6345 330.2067 328.0215 326.4465 325.6299 323.9028 322.391 319.4702 317.8971 316.3889 315.1964 314.1197 313.9186 314.0671 313.907 313.2053 312.272 312.024 312.0684 311.8339 311.7509 311.95 311.9944 311.9823 311.8676 311.4505 311.2416 310.9299 310.6652 310.4368 309.6792 308.6018 308.1371 306.7943 304.3638 301.5442 300.4651 301.9821 302.4541 301.5486 299.9867 298.8234 297.1212 299.0956 299.4788 298.9562 297.6869 296.5514 294.9883 293.468 292.3677 292.2892 292.5019 292.4252 292.8058 292.2157 291.0892 290.6352 290.1015 290.3215 288.1707 284.9467 281.6311 280.3926 277.3724 271.3662 269.6977 271.6976 275.1884 279.9251 283.7369 288.3106 287.7328 284.0586 282.2869 282.387 283.2907 283.4979 281.7993 278.4607 274.6498 274.3326 272.8849 273.0893 274.7561 277.3803 279.093 279.702 278.0379 265.2079 255.6569 248.597 248.6223 248.5125 248.5748 249.5648 254.1187 256.1226 257.4232 253.3113 252.4731 252.3433 253.5543 256.3865 256.0902 257.5155 257.8841 258.8464 262.1442 264.4939 265.8048 265.9104 265.3551 264.7819 263.9704 263.3489 262.4877 262.6135 262.316 261.7147 261.8067 263.0936 263.5784 264.2251 264.5123 266.3094 266.5771 266.7283 266.5937 266.0979 264.8711 263.5301 262.1851 261.3143 259.9189 259.296 258.2442 256.4781 255.0016 254.0464 253.0511 252.0135 251.3271 244.7285 243.8249 243.7854 243.6931 244.176 243.9934 243.6194 243.4013 243.4621 244.6667 248.0415 248.8745 249.5821 250.6025 251.7387 252.6096 252.9427 253.6149 254.774 257.8642 259.5945 261.3162 262.5739 263.2952 264.1291 265.2032 266.3672 267.5031 269.5143 270.2128 270.7725 270.8654 270.6434 270.2898 269.2321 267.3734 266.0894 261.9515 260.5176 260.2255 260.2935 261.9724 262.6911 262.8004 262.9662 263.4128 263.1288 263.4652 264.0124 264.2945 264.2107 264.2154 264.1815 263.9167 263.4275 259.1865 257.3991 256.5209 256.4894 256.6313 257.3085 258.1398 258.9356 259.7468 260.9991 261.1957 259.9909 258.1494 257.4568 257.4844 257.5124 257.3458 256.3519 250.9418 247.5926 243.4029 239.3746 238.2861 237.8037 237.6065 238.6545 236.2606 238.8299 238.7411 239.8676 240.0559 240.1169 239.729 239.6248 239.5131 239.5549 238.8624 238.7218 238.5332 238.2031 237.2817 237.2634 237.8479 237.3577 237.1971 237.2941 237.7872 237.7648 237.7792 237.8482 237.8521 238.7092 242.5632 247.4667 251.0855 251.6418 252.5553 253.2257 253.2603 253.2261 253.2492 253.8106 254.1368 254.692 254.5921 255.3012 256.6945 257.6782 257.5831 256.8 256.1792 255.2807 254.5602 253.4835 251.6636 250.3897 249.7886 255.1163 257.0033 257.2516 257.5576 258.1572 261.1285 261.7258 262.2612 263.4637 264.9656 265.6382 260.9529 259.5711 260.4514 263.8264 266.1211 267.1657 267.7091 268.593 269.4665 270.8372 272.0846 273.357 273.7693 274.1296 274.2798 274.4381 275.6107 277.1699 279.0167 280.2819 281.4556 284.2496 286.0583 287.9018 289.1116 288.457 286.6527 284.7708 283.4283 281.5341 277.5736 274.5204 269.1501 269.6252 272.1511 276.3867 279.3474 281.4353 281.8399 283.2699 283.4795 282.727 282.2549 282.4819 282.9832 283.211 282.5989 280.4625 274.2922 273.8603 271.5684 270.7784 271.3964 271.9967 272.5448 269.6418 267.2313 259.8692 -9999 -9999 +-9999 326.7702 325.1238 324.4239 323.5249 324.0247 324.7203 325.1735 325.4761 325.4885 324.2187 322.791 320.9063 319.2813 318.9142 320.3221 321.7806 322.5835 322.8026 320.7517 319.241 317.5498 315.9919 314.6559 312.9031 311.7725 310.7433 308.9922 303.044 301.3496 300.7266 300.3539 300.42 302.5802 304.9454 305.8096 305.3433 302.9204 301.6382 301.2406 301.5317 301.9007 305.2487 308.2732 310.9857 313.2973 315.7763 316.6522 317.1232 317.732 317.7831 317.8416 317.996 319.24 321.1676 325.5461 327.3337 328.799 330.9269 332.5215 335.1109 336.6526 337.7666 340.0265 345.743 349.527 353.1892 356.0901 356.5255 353.4986 349.3815 348.9033 350.2649 358.5782 361.5239 364.0394 365.7588 367.8006 369.3185 370.653 372.6439 374.8312 379.2375 380.5472 382.5803 384.509 386.4561 388.1617 389.241 387.4145 382.915 371.8386 365.4446 364.2113 362.2207 358.6848 354.9957 352.544 349.2609 345.2813 332.7422 325.4712 324.191 320.5903 320.0099 318.7906 317.7907 316.971 317.928 320.7018 325.9305 328.0021 329.7041 329.7764 333.0308 334.546 333.9489 329.5869 318.5161 317.4528 317.3308 317.321 321.1171 327.2292 331.0107 334.6481 337.3817 337.0775 333.3267 333.1115 333.378 336.3506 337.1393 334.666 333.4913 341.1819 341.5988 342.0612 343.4276 343.689 346.4863 349.5847 355.274 361.8079 365.5745 366.358 367.1132 368.1735 367.3339 365.6445 360.4355 355.341 350.6129 345.8446 342.7036 337.4374 333.8483 332.6345 330.2067 328.0215 326.4465 325.6299 323.9028 322.391 319.4702 317.9716 317.1238 316.5226 315.194 314.1234 313.6989 313.317 312.8024 312.509 312.4084 312.1045 312.0236 311.8796 311.7677 311.8137 311.9323 311.7699 310.658 310.3422 310.1275 309.7945 309.7469 309.0215 307.8999 307.0328 306.0004 304.101 302.8035 302.9074 303.5393 303.7165 303.0822 301.7007 299.9897 298.9344 300.5016 300.3036 300.0636 298.9699 297.8106 296.5519 294.6519 294.1463 294.1051 294.4883 294.175 293.7385 293.2761 292.9986 292.0331 291.2225 290.2502 288.0724 286.5952 283.7962 282.5018 278.8227 273.9968 273.209 273.4901 275.4791 278.9293 283.2826 289.2039 291.1695 288.9311 285.59 284.6267 285.6986 286.1186 285.0459 282.3745 279.6729 280.3106 278.8438 277.6509 277.879 279.5096 281.4961 283.144 283.3605 270.8293 260.7048 252.5539 248.4829 248.3098 247.9948 249.5053 253.1492 254.7606 257.0012 254.5364 252.1369 252.0823 252.7406 254.585 255.3142 255.7192 255.5807 259.3747 261.9492 263.5786 264.33 264.0149 263.765 263.4739 262.5031 261.4935 260.2811 260.0053 258.8374 259.4204 260.097 260.8831 262.0916 263.0762 263.6942 264.8964 265.6192 266.4901 266.5313 266.274 265.3959 264.5163 263.3206 262.6505 260.7448 259.9367 258.7645 257.3092 256.0846 255.1563 253.9137 252.4907 251.0005 247.5076 245.0785 243.6745 243.0166 243.7442 243.8562 243.6298 243.4163 243.3368 246.0827 247.4683 248.2202 248.8586 249.5241 250.4922 251.3798 252.3613 253.349 254.8481 257.8603 259.7111 260.9803 262.2271 263.1127 264.0915 265.317 266.6648 267.7893 270.3259 270.8027 271.0299 271.1104 270.8756 270.2354 269.0527 267.3875 266.0272 263.7836 261.5874 259.4868 258.5625 259.6574 260.8933 261.4753 261.8153 261.7202 262.7952 263.3464 263.8921 264.141 263.9718 264.0074 264.1857 263.6588 262.6922 258.4905 255.8072 255.1297 254.655 254.3128 255.7346 256.5349 257.2684 257.8956 259.2778 260.2655 260.9057 260.0316 257.7221 255.7235 254.9186 255.3963 254.9726 251.0894 248.2629 245.3662 241.6545 239.4081 238.9777 237.5802 236.2308 240.096 237.3989 238.0159 239.0667 239.8625 240.053 240.2992 240.1184 239.3835 239.6102 239.3537 239.5458 239.0135 237.9013 237.2741 237.2164 238.1677 237.2622 237.5397 238.4147 237.8537 237.6454 237.8109 237.9727 238.222 240.4714 245.6642 248.0778 252.9347 253.4697 254.1572 255.1217 255.8266 255.2368 255.3947 255.7854 256.0435 256.0065 255.1124 255.1034 255.7038 255.7156 255.0368 253.8413 252.864 251.6525 250.5715 248.6678 247.7163 249.2229 249.8475 251.2989 252.2301 253.2975 254.8744 257.0123 260.0933 261.3589 262.5701 264.4772 266.3256 267.4284 264.381 259.8928 261.0117 265.1663 267.4753 268.7215 269.328 269.8553 270.796 272.3221 273.332 274.689 275.9745 275.9958 276.2928 275.2083 275.4197 276.2099 277.1628 278.3751 279.7161 282.9129 285.0682 287.5738 289.1544 289.3324 287.8248 286.2465 284.732 282.7435 280.0212 277.2202 271.8637 270.4965 271.5236 274.8536 278.2291 279.2701 281.925 283.449 283.3153 282.564 281.983 282.1338 282.5805 283.0996 283.2701 282.5728 279.8614 278.0835 277.0167 277.016 277.7473 276.5228 275.8112 274.8945 274.2957 265.7345 -9999 -9999 +-9999 326.4592 323.9984 323.5952 322.1434 322.3981 323.1092 324.1923 325.0928 325.5319 324.8407 323.7931 321.8212 319.2152 318.4409 319.0024 320.5713 321.1925 321.1867 319.9496 318.9936 317.3205 315.1586 313.8387 312.4628 310.644 309.5223 309.0502 302.9107 301.4509 300.6166 299.6824 299.9924 301.0098 303.2108 304.471 303.1088 300.4922 300.709 299.6304 301.6109 303.6684 307.3286 309.3628 312.044 314.6403 317.6037 317.7611 319.0996 320.4867 321.3313 321.5024 321.5143 321.6057 322.1997 326.758 328.7428 330.3997 331.4972 333.697 335.0811 336.7133 338.5785 340.4425 346.9041 349.8449 353.1751 357.226 359.2219 358.7463 354.3917 354.2873 356.6131 358.3137 362.5695 364.9922 367.1979 368.8033 370.3499 372.2508 374.6729 376.0823 380.0175 381.8849 383.1076 384.1034 385.5795 387.8802 389.615 389.7358 385.8335 373.9591 371.743 369.1359 365.2686 361.3709 357.1244 352.7959 348.2201 343.344 336.4665 332.4698 328.9806 324.5037 322.1437 321.5897 318.8805 316.971 317.928 323.2044 325.9305 328.0021 329.7041 329.7764 333.0308 334.546 333.9489 329.5869 318.5161 317.4528 317.3308 317.321 321.1171 327.2292 331.0107 334.6481 337.3817 337.0775 333.3267 333.1115 333.378 336.3506 337.1393 334.666 333.4913 335.9859 335.8691 339.9707 341.9814 343.3875 343.725 351.3331 357.2155 359.4277 362.6531 364.5072 367.347 369.0295 368.0844 364.6775 359.9939 354.9654 350.9131 348.0351 344.1056 339.3668 335.5697 332.7569 329.9235 328.4919 327.6759 326.4894 324.8071 322.8467 319.9157 318.4839 317.2659 315.7647 313.8532 312.2869 311.7487 311.5932 311.1462 311.2339 311.6117 311.6035 311.4983 311.2608 311.1111 311.0548 311.1227 311.133 309.9982 309.6145 309.465 309.4055 309.3563 308.7731 307.8515 306.9786 306.0073 303.6893 303.0448 303.0153 303.6993 303.9138 303.4151 302.6149 301.5449 300.6042 300.5102 299.9389 299.0507 298.7055 297.834 297.169 296.7123 296.3112 296.1794 296.4815 296.0118 294.4076 294.226 293.5286 292.7368 292.245 290.4681 288.1776 286.6567 284.7122 282.0443 278.2433 275.5475 276.3632 276.4408 276.1584 278.1812 282.8885 289.5741 292.0297 292.2075 289.5602 288.4299 287.4121 288.5962 288.0591 286.2328 282.5166 284.1471 283.5929 282.2819 281.2889 281.303 282.9227 284.7177 285.8874 274.6334 263.7177 255.2919 250.2656 248.2873 248.2756 248.4162 251.1525 252.7149 256.0479 254.7224 251.7687 252.1059 252.6268 253.0459 253.899 253.3454 253.6833 258.9667 260.8632 261.7377 262.2494 261.8094 261.5086 261.3509 261.0098 259.2673 257.2286 256.5927 255.5209 257.9026 259.3687 260.204 262.048 262.7857 264.2094 264.2533 264.6275 265.4982 266.0739 265.4606 264.9255 264.6908 263.9545 263.1783 261.4779 260.0605 259.0097 257.9319 257.0057 256.1745 255.5938 254.4983 253.0453 247.7448 244.1082 244.0372 243.5755 243.5138 243.6514 243.4879 243.3555 243.2305 246.0616 246.464 247.5183 248.3623 249.3517 250.2163 251.1537 252.2473 253.347 254.8237 257.4784 258.8904 260.1319 261.2799 262.5298 263.5345 264.9844 266.3241 267.3479 269.4435 270.2273 270.4677 270.6497 270.7701 270.1237 268.5007 267.4919 265.923 263.8072 262.6467 261.3682 259.9895 257.5484 258.1415 258.912 259.126 259.6877 262.204 263.1446 263.4337 263.3396 263.2439 263.7868 263.9465 263.64 262.77 259.6455 256.35 254.4647 253.4191 252.5486 253.7793 254.9425 255.8218 256.345 258.0883 258.967 259.9898 259.7563 258.5291 256.1461 254.4056 253.0002 252.9938 250.549 248.4848 246.2331 243.989 241.7781 241.754 237.8801 239.2411 239.4527 239.7183 239.7786 239.6607 239.0871 239.9425 239.5021 239.3194 238.9438 239.2149 239.2017 239.0273 238.8155 238.1352 237.7327 237.2714 238.7772 237.3828 237.5197 237.4292 237.8674 237.7919 238.0111 237.8405 238.7719 246.2485 250.7608 250.9037 255.6245 255.897 256.5925 257.4285 258.0534 257.8247 257.4744 257.3441 256.723 255.692 253.9397 253.5078 252.2007 251.8917 251.379 249.7377 248.0331 247.2305 247.1607 246.9378 247.7083 250.1145 250.2794 249.445 250.0376 251.1545 253.1132 254.6524 258.7894 260.4443 261.7666 264.0742 266.0761 267.9318 266.1247 262.3211 261.5932 266.5829 267.7471 269.1 270.1401 270.7756 271.5566 272.7343 274.0035 275.2987 277.1967 277.4298 277.9331 277.3979 275.8648 275.7199 277.1628 278.3751 279.7161 282.9129 285.0682 287.5738 289.1544 289.3324 287.8248 286.2465 284.732 282.7435 280.0212 277.2202 271.8637 270.4965 271.5236 274.8536 278.2291 279.2701 281.925 283.449 283.3153 282.564 281.983 282.1338 282.5805 283.0996 283.2701 282.5728 279.8614 278.0835 277.0167 277.016 277.7473 276.5228 275.8112 274.8945 274.2957 265.7345 -9999 -9999 +-9999 324.4524 323.2408 321.8508 321.6598 320.6225 322.8455 324.6973 324.8973 324.7475 324.1102 323.8113 322.1022 319.2999 317.8052 318.0236 319.1546 319.6916 320.0194 318.5909 317.7895 316.5047 314.1148 311.914 310.2208 309.6767 308.1178 306.9006 303.506 301.876 300.7108 298.8437 299.7378 300.2079 302.1644 303.1049 301.7751 300.4442 299.4229 301.6543 302.3311 303.991 308.2403 310.9649 312.704 314.7391 317.8932 318.6439 319.8846 321.339 322.5883 323.6041 324.0243 324.8881 325.6215 327.6851 329.4998 330.9971 332.2477 333.9845 336.862 338.9937 341.3925 343.2126 345.812 348.6465 352.2861 355.9506 359.4243 361.0894 361.6603 362.8567 362.0928 362.4305 363.9207 365.328 366.5292 367.6286 370.0908 372.2508 374.6729 376.0823 380.0175 381.8849 383.1076 384.1034 385.5795 387.8802 389.615 389.7358 385.8335 373.9591 371.743 369.1359 365.2686 361.3709 357.1244 352.7959 348.2201 343.344 336.4665 332.4698 328.9806 324.5037 322.1437 321.5897 318.8805 315.8987 315.969 319.3528 322.1598 324.8657 325.9684 329.604 332.4681 333.968 333.4681 330.3474 321.3008 316.1802 316.4866 317.035 321.6784 325.7665 329.0545 332.6031 335.1232 334.1484 329.554 329.9821 330.8454 333.2123 329.8274 331.3604 335.9474 339.5064 343.0158 348.2326 348.6362 347.3653 349.1456 353.8556 359.6622 362.1487 364.5144 363.0193 367.1303 368.2801 368.5229 364.861 359.4994 355.1227 350.9364 347.9206 345.3536 338.4396 335.1952 332.2511 330.2551 328.7034 327.8517 326.2132 324.7957 323.2624 320.3093 318.8472 317.1205 315.6106 314.2213 312.1449 310.536 310.6919 309.8098 309.9604 310.5317 310.6464 310.1472 309.8979 309.81 309.9276 310.1798 310.2519 309.0547 308.5119 307.6356 308.2922 308.9035 308.7309 307.9821 307.0996 305.9958 304.3914 303.8081 303.5451 303.6934 303.4823 303.0061 302.4402 302.1217 301.3112 299.7679 298.7357 297.9351 297.7484 297.5462 297.1636 297.6009 298.0035 297.8243 297.8867 297.1536 295.4753 295.0694 294.0901 293.6249 293.3725 291.3943 289.4445 287.2935 282.5161 280.0606 279.2129 278.8623 279.1971 279.0167 278.031 278.2866 282.3318 289.9224 292.5137 294.3367 292.5509 290.5153 289.2174 289.5319 290.2905 289.1041 286.4519 286.9015 287.1855 285.9738 284.1434 282.4654 283.1286 284.4518 285.3749 277.2155 267.953 258.3124 251.9536 248.4318 248.1406 247.6102 248.8665 252.074 254.3531 252.9407 252.9891 252.4515 252.3997 251.6911 251.9759 252.4041 254.3464 257.5164 258.6656 259.3752 259.4365 259.5049 259.3821 259.6328 259.0337 256.191 254.9895 252.0162 254.3039 257.4248 260.3746 261.5033 263.1567 263.1136 263.3891 263.039 264.0323 264.7042 265.3384 265.2299 264.1477 263.8477 263.5742 263.1699 261.4833 260.0872 259.0183 258.1897 257.5137 256.9532 256.3664 255.3563 253.8197 247.9512 243.518 244.2707 244.7183 243.4876 243.5306 243.2729 243.2944 243.2697 245.5009 246.7695 247.6177 248.7628 250.0251 250.8492 251.6575 252.3074 252.8693 255.4319 256.5198 258.1122 259.8391 261.1096 262.4788 263.5641 264.9912 266.1604 266.8778 268.7911 269.4504 270.1649 270.506 270.7401 270.0205 268.1946 267.263 265.8389 263.2403 261.8592 260.5945 259.2266 257.7668 256.1747 256.4291 257.0467 257.8312 261.0529 262.0361 262.1103 262.282 262.7679 263.0914 263.4019 263.5976 263.1575 260.5342 258.9355 257.9778 256.6995 253.9275 250.7948 252.6898 254.4709 255.1597 256.9706 257.9266 258.5853 258.4716 257.9873 256.2128 254.8773 253.3303 251.6536 248.7085 247.5496 245.6559 243.9966 243.3886 243.5349 241.2211 237.6667 239.4145 239.3892 239.5656 239.7492 239.1292 239.6934 239.3645 239.5385 239.3481 238.9051 238.5885 238.2201 237.9984 237.8873 237.5955 237.2394 237.7623 237.6767 237.6654 237.352 237.4561 237.8264 237.8541 237.9306 243.3255 250.1843 254.1941 254.6515 257.5782 258.2633 258.8053 259.2451 259.3126 258.4999 257.7386 256.819 255.414 252.6396 251.6616 250.2892 247.5955 251.8917 251.379 249.7377 248.0331 247.2305 247.1607 246.9378 247.7083 250.1145 250.2794 249.445 250.0376 251.1545 253.1132 254.6524 258.7894 260.4443 261.7666 264.0742 266.0761 267.9318 266.1247 262.3211 261.5932 266.5829 267.7471 269.1 270.1401 270.7756 271.5566 272.7343 274.0035 275.2987 277.1967 277.4298 277.9331 277.3979 275.8648 275.7199 276.2155 277.1042 278.3839 281.5619 283.974 286.2126 288.3332 289.1911 288.3299 286.7675 285.0048 283.7742 281.0145 278.1581 275.2769 272.6461 273.696 275.8494 278.0651 279.6557 281.2173 283.0576 282.9404 282.077 281.671 281.9205 282.2871 282.8207 283.2765 283.9209 283.0114 281.2074 280.4037 280.8546 281.1345 280.3841 278.9492 278.0884 277.7056 273.6648 -9999 -9999 +-9999 323.6916 321.5987 320.7286 320.5823 320.024 323.2009 324.3625 324.0251 323.3199 322.3476 322.2285 321.398 319.2705 316.2595 316.4703 317.9935 318.5545 318.8777 318.3907 317.6268 316.0861 314.4189 313.0111 313.1848 312.7256 311.4236 309.3065 306.8123 304.4832 301.2358 299.2663 299.7581 300.3298 301.7346 301.5233 300.7328 298.754 302.2759 305.7297 306.9364 304.0008 305.4925 309.0006 312.117 313.982 316.2519 317.1987 318.475 320.152 321.8103 323.6054 324.0243 324.8881 325.6215 327.6851 329.4998 330.9971 332.2477 333.9845 336.862 338.9937 341.3925 343.2126 345.812 348.6465 352.2861 355.9506 359.4243 361.0894 361.6603 362.8567 362.0928 362.4305 363.9207 365.328 366.5292 367.6286 370.0908 372.1508 374.37 375.7101 376.8261 377.6262 379.5794 382.1492 384.9579 387.2708 388.6195 387.7933 385.0457 376.2716 372.8669 370.537 366.5392 361.843 358.2589 354.0506 350.1788 346.2794 339.7138 334.6867 329.2882 327.38 327.7402 327.2398 322.8016 314.433 315.5896 317.1718 320.6283 322.0596 325.206 328.7581 331.2259 332.5513 332.5817 329.3417 312.9417 315.0224 315.1949 318.4448 321.7225 324.653 327.4002 330.331 332.1638 330.4156 325.7568 326.2452 326.532 327.929 333.129 339.1606 343.2679 347.7315 351.6577 354.4175 353.4305 352.7244 353.4114 354.7938 359.3973 362.0741 364.0841 362.3137 363.4757 367.1703 368.1525 364.3652 359.0344 354.6146 350.2978 346.2578 343.4205 338.2172 335.5461 333.3132 331.8174 330.2906 328.235 326.3171 324.4621 322.8202 319.819 318.3791 317.3002 315.8735 313.9994 312.4573 310.9391 309.2371 307.4547 307.9204 308.6787 309.6536 308.7559 308.4956 308.6136 308.8831 308.8685 308.9279 308.2872 307.6147 306.7824 307.1047 307.6516 308.2078 308.2588 307.6918 306.34 304.3983 304.1684 304.1532 304.3157 304.2063 304.0904 303.929 303.2938 302.1249 299.3838 297.6836 296.0652 295.7412 295.7034 295.7259 296.9506 298.2755 298.1538 297.4755 297.7234 296.4573 293.9113 293.2612 293.0966 293.7265 292.6343 290.7231 284.8701 282.5273 280.7159 281.8087 282.0658 282.0117 281.876 280.6169 279.0786 281.6042 290.321 292.7253 294.8598 295.2359 292.837 290.469 290.355 291.0206 291.4799 289.7526 288.5314 288.3817 287.6225 285.1333 282.5051 281.4899 282.3653 283.0156 277.7379 270.446 261.2219 253.9609 248.1496 247.8491 247.7681 248.756 250.4294 252.7556 251.8841 250.4748 247.6685 249.2386 250.3435 249.276 249.8127 249.9011 253.8133 256.246 256.7371 256.7405 256.9078 257.1306 257.3518 256.1809 252.271 250.8726 256.1227 258.8681 260.6815 262.2206 262.7567 264.4327 264.2097 262.634 261.583 263.1751 263.8612 264.2971 264.2446 263.4391 262.627 262.4748 262.0856 260.2239 258.7499 257.6644 257.2558 256.9062 256.6014 256.2756 255.4829 254.0844 247.7302 243.7163 243.0791 243.5357 243.2685 243.7079 243.2246 243.4028 243.1451 245.8585 246.8819 247.8536 249.1021 250.0076 250.8346 251.2357 251.227 251.1761 254.3933 255.633 257.4951 259.4052 261.2477 262.6591 263.8765 265.2593 266.0842 266.9432 268.6495 269.494 270.1431 270.5862 270.8362 270.0751 268.3826 267.4612 266.086 263.3846 261.21 260.1833 258.1313 257.2213 256.2172 255.0631 255.1496 256.0649 258.8989 260.2573 261.1376 261.5708 262.2272 262.8731 263.3591 263.4703 262.748 261.164 259.9744 259.2549 258.4274 256.7805 253.3994 251.3978 251.8607 253.2055 255.5954 255.9531 256.8935 257.0353 256.1716 255.1866 254.2234 253.1634 251.8043 249.6337 248.5073 247.1823 246.2632 245.4793 244.1239 242.6215 236.2874 239.7308 239.0324 239.2046 239.5286 239.1292 239.6934 239.3645 239.5385 239.3481 238.9051 238.5885 238.2201 237.9984 237.8873 237.5955 237.2394 237.7623 237.6767 237.6654 237.352 237.4561 237.8264 237.8541 237.9306 243.3255 250.1843 254.1941 254.6515 257.5782 258.2633 258.8053 259.2451 259.3126 258.4999 257.7386 256.819 255.414 252.6396 251.6616 250.2892 247.5955 246.7565 246.5856 245.3653 247.2992 248.3728 249.8157 252.3111 253.9454 256.5509 257.7256 257.9549 257.525 256.0811 252.204 252.041 256.5636 258.5112 260.26 262.623 265.1419 266.9622 267.2806 265.3221 266.6278 266.1024 266.254 267.6588 268.9114 269.1561 269.5263 270.6326 272.2233 273.5348 273.7258 274.7811 275.9206 276.2419 275.6844 275.5246 275.9748 276.606 277.5319 280.5414 282.4408 285.0252 286.6563 287.8596 287.5342 286.6072 285.3933 284.2637 281.6069 280.2617 279.4851 278.3544 277.6819 278.4925 278.5667 279.6407 281.3684 282.6189 282.1085 281.5599 281.5901 281.8812 282.2769 282.3112 282.8577 283.4939 284.1012 282.8794 282.6204 283.3796 284.1546 284.1015 282.253 281.6395 281.1401 279.2021 -9999 -9999 +-9999 321.9688 320.0643 318.8572 318.0841 321.2016 324.6978 323.5858 322.6064 320.7423 320.6686 320.868 320.1595 318.3572 314.7871 315.3688 316.1137 317.2621 318.3913 318.0135 317.2574 316.8034 315.2901 315.2143 315.8997 312.7256 311.4236 309.3065 306.8123 304.4832 301.2358 299.2663 299.7581 300.3298 301.7346 301.5233 300.7328 298.754 302.2759 305.7297 306.9364 304.0008 305.4925 309.0006 312.117 313.982 316.2519 317.1987 318.475 320.152 321.8103 323.6054 324.9939 326.2144 327.6712 329.4253 330.4748 331.6112 332.483 334.0997 336.3243 339.503 342.1585 344.7338 348.2914 349.6506 351.6953 354.7905 358.322 361.2562 362.6208 363.1583 362.6916 362.0954 363.0636 362.8174 362.9984 364.0939 367.1132 370.0143 370.9184 372.0976 372.5804 375.4515 377.5813 381.6405 383.8784 385.4097 386.0229 386.4755 384.0972 375.3977 371.872 367.7026 364.8752 361.5556 357.8233 355.3195 350.8403 345.661 338.952 336.2947 334.5333 333.5007 332.4056 330.7106 328.1537 320.9955 315.0739 315.5019 317.614 320.3975 324.8523 326.924 328.6483 330.8983 331.7479 328.5005 312.8953 313.8871 314.8955 318.4565 320.9487 323.8683 326.4304 328.5441 329.4221 326.2101 324.3769 326.264 329.774 333.7708 338.4833 341.1955 344.6653 348.1573 351.8098 354.4933 353.4912 353.5725 354.9012 357.7069 359.8206 362.0941 363.6099 360.6568 362.1748 365.8882 365.6979 361.7985 357.1936 352.8219 348.7717 345.0157 341.5282 337.8836 334.6576 332.4241 331.4366 330.2775 328.2231 326.5453 324.5706 322.861 319.1645 317.908 316.4478 315.4669 314.5041 313.3122 311.5475 309.8134 307.8631 305.3466 306.6083 308.1538 307.4745 306.916 307.2623 307.8602 307.7107 307.5429 307.0563 306.1162 304.8293 305.9255 306.5197 307.1595 307.6921 307.5802 306.7383 304.9262 304.5639 304.5927 304.8576 304.9327 304.71 304.3009 303.5998 302.0596 298.9246 296.4109 294.9673 293.7109 293.3157 294.0092 294.9735 296.2854 296.0221 295.8237 297.1946 295.7972 292.8677 292.3968 292.4942 293.4656 292.887 290.9491 285.3246 283.6013 282.2386 283.5637 284.543 284.6271 283.9596 282.5866 280.1494 281.066 288.8175 292.1446 294.4955 295.5487 294.3826 292.0038 291.3911 291.8429 292.3582 290.644 288.7421 287.7405 286.7723 284.3106 280.8961 278.843 279.466 280.186 275.3871 270.2524 263.0977 254.5283 248.3878 247.743 247.8026 247.8374 249.1791 251.1794 251.0532 250.9939 247.1322 248.3078 248.798 247.0793 246.3703 246.5453 251.0717 252.976 253.4815 254.5954 254.7698 255.1637 253.7077 250.8275 249.6708 255.9878 258.8919 261.2573 263.0093 264.3241 264.5301 265.23 264.4146 262.6206 260.8429 262.3734 263.3134 263.4494 262.4384 262.0153 261.7412 261.2393 261.049 258.7129 257.6211 256.05 255.8366 255.2813 255.2963 255.4986 255.3856 253.9781 247.5202 243.6625 243.6811 243.4298 243.2446 243.4625 243.1483 243.2633 243.3201 245.2715 245.93 246.8144 247.4226 248.5912 249.7581 249.6767 249.6134 250.1398 254.1831 255.194 257.281 258.9674 260.7656 262.0757 263.3757 264.9228 265.7104 266.7036 268.8056 269.6752 270.1528 270.5609 270.8755 270.3059 268.8156 268.0211 266.6313 263.8759 262.0157 260.4586 258.4653 256.8248 255.9672 255.0068 254.2592 254.4163 256.9894 259.0491 260.9067 261.5708 262.2272 262.8731 263.3591 263.4703 262.748 261.164 259.9744 259.2549 258.4274 256.7805 253.3994 251.3978 251.8607 253.2055 255.5954 255.9531 256.8935 257.0353 256.1716 255.1866 254.2234 253.1634 251.8043 249.6337 248.5073 247.1823 246.2632 245.4793 244.1239 242.6215 236.2874 239.7308 239.0324 239.2046 239.5286 239.0268 239.7029 239.3339 239.3857 239.2009 238.8576 237.5959 237.3667 237.3464 237.5944 237.2134 237.2929 237.7364 238.0404 237.4157 237.5282 237.4664 237.8135 238.295 239.2012 248.4209 253.0133 254.6779 256.1007 258.8007 259.4667 260.0512 260.1523 259.0554 257.4429 256.5349 255.5431 253.4332 251.4159 249.8244 246.9912 245.3214 244.3547 247.9178 249.5829 251.6726 250.9538 253.7798 253.882 257.0402 259.7094 262.0455 262.3894 262.1386 261.2869 260.3072 257.818 253.2864 254.3122 257.0458 260.4318 262.4546 264.6429 266.3109 266.864 266.1848 265.9879 266.1189 266.3151 266.3441 266.1949 266.4581 267.5079 269.0555 270.0309 270.1515 271.2325 271.8936 272.607 273.0214 273.484 275.1243 276.3814 277.0986 279.3882 281.5344 283.0965 284.7511 285.9051 286.423 286.3942 286.1764 285.6768 283.1909 282.1062 280.6132 280.7369 280.9279 279.6241 279.3228 280.6505 280.6309 281.6793 282.1328 281.701 282.2914 282.5216 281.9362 281.5369 282.3018 282.858 284.1677 284.1765 284.3295 285.0508 286.1561 286.6399 285.4949 284.3561 284.0975 280.6343 -9999 -9999 +-9999 321.9688 320.0643 318.8572 318.0841 321.2016 324.6978 323.5858 322.6064 320.7423 320.6686 320.868 320.1595 318.3572 314.7871 315.3688 316.1137 317.2621 318.3913 318.0135 317.2574 316.8034 315.2901 315.2143 315.8997 316.0318 314.6907 313.2865 309.5199 306.8911 302.8069 299.8563 298.3665 299.4995 300.7917 300.4997 299.9247 300.1713 305.5297 309.1854 310.8499 311.3337 310.8002 308.3317 306.4887 309.2258 311.4515 311.8344 313.5618 315.4597 319.3331 321.9596 323.6652 325.5437 327.2575 329.7083 330.2804 331.7497 332.7033 334.249 336.1241 338.545 341.2315 343.7104 347.7738 348.6704 350.6061 353.3646 356.1667 359.0683 360.5743 360.7122 359.6245 358.0284 358.482 358.0368 360.2079 363.6084 365.631 366.2275 367.3308 369.7382 372.4052 376.2628 378.7285 380.0611 381.2462 381.5618 382.4724 383.1009 382.55 376.2799 371.6515 367.5547 366.0383 363.2635 359.8913 354.4026 348.7224 345.6949 341.1717 339.3299 337.7723 335.9456 334.1516 332.4753 330.0564 325.8986 319.9724 313.2902 315.748 318.5024 322.4468 324.8282 325.8698 328.7577 329.9173 327.7642 313.2256 312.5008 314.4682 317.8599 320.871 323.0155 325.195 326.4552 326.1812 321.8959 326.0302 328.8279 331.5329 332.0151 333.3803 335.7269 339.9168 344.6318 348.4922 350.3698 349.7571 350.0714 353.4897 357.1977 359.2212 361.533 361.8831 358.7231 359.5946 363.3692 362.4243 358.5734 353.7786 349.9829 347.199 343.1074 340.5197 336.1078 333.4948 331.7269 330.0218 329.3982 328.5573 326.9525 325.1095 322.943 319.1807 317.3129 316.7484 315.8224 314.7183 313.0198 311.2368 309.2643 307.7023 304.7452 305.2381 307.182 306.6378 305.3737 305.4677 306.1212 306.2941 306.4454 305.5755 304.6233 303.5038 304.1093 305.4895 306.5038 307.1171 307.1563 305.9732 304.1169 303.5341 303.4172 303.9308 304.2336 303.7596 302.9722 302.7341 301.8856 298.7166 296.1765 294.0755 291.8813 291.2318 291.6687 291.8787 292.9344 292.775 293.2444 294.1528 293.625 291.9982 291.5109 291.9868 293.2249 293.3083 291.6926 285.8531 283.7428 282.9343 284.3847 285.8901 286.6663 285.6628 283.7749 281.3843 280.7585 286.5569 290.3433 293.4101 295.5012 296.3343 294.3208 293.2057 292.7565 292.368 289.2631 287.0862 284.6507 283.9436 281.2355 278.3556 275.6523 275.9848 276.3321 270.3854 266.3716 261.3601 254.2532 248.7343 247.5455 247.5301 246.9263 247.9116 249.1872 249.7928 249.3016 246.8688 247.2025 247.1462 246.7221 246.3482 246.2473 248.6824 249.6985 251.3767 252.572 252.1555 252.6826 249.6783 250.4356 254.1876 258.6694 260.853 262.654 264.548 265.9581 266.0104 265.6365 264.6398 262.6485 259.7831 261.3078 262.1954 261.7088 260.7946 260.1367 259.6502 258.9616 258.5707 257.0268 256.5634 254.8286 253.7091 252.9074 252.9718 253.6587 253.553 252.5777 244.2319 242.9389 243.3751 243.4392 243.4638 243.3662 243.3136 243.2821 243.3052 244.5552 244.6627 244.8674 245.3097 246.0505 249.7581 249.6767 249.6134 250.1398 254.1831 255.194 257.281 258.9674 260.7656 262.0757 263.3757 264.9228 265.7104 267.9696 268.8056 269.6752 270.1528 270.5609 270.8755 270.3059 268.8156 268.0211 266.6313 263.8759 262.0157 260.4586 258.4653 256.8248 255.9672 255.0068 254.2592 254.4163 256.9894 259.0491 260.9067 261.3401 262.0433 262.3718 262.5462 262.5104 262.1129 259.9588 259.1483 258.6339 257.71 257.1202 255.1451 251.8329 248.1757 251.3589 253.6613 254.2793 254.7193 254.4855 254.2271 253.7624 252.9931 252.3644 251.4899 249.4571 248.5933 247.802 247.3856 246.775 245.405 243.9805 236.5839 236.5387 238.6152 238.5128 238.6568 238.9537 239.4336 239.3333 239.1697 241.3186 240.0815 237.8237 237.3782 237.4789 237.3299 237.372 237.7227 238.2276 238.1615 238.0172 237.3067 237.5588 237.2933 237.6451 241.4202 249.1201 252.3914 254.3625 255.9073 258.4297 259.2122 259.2936 259.049 257.5579 255.8992 254.5142 253.3191 251.483 248.007 245.8809 243.4345 244.5647 248.0374 254.0074 256.8202 256.0376 254.9169 257.5772 257.9585 258.0201 262.7635 265.3227 266.3594 266.2125 265.9537 264.408 262.2675 259.3942 257.2432 256.3179 256.8884 257.7733 259.9033 263.5924 267.2115 268.1596 265.763 265.9059 266.0705 266.0138 266.1617 267.0164 266.4025 266.4035 266.8833 267.2616 267.5038 268.8817 270.2725 271.2535 272.6717 273.6721 275.017 275.8564 278.3112 279.6451 281.1213 282.6225 284.0053 285.3939 285.9718 286.4146 286.7931 282.8965 283.3607 282.595 281.8727 281.6113 281.0464 280.1947 279.7595 280.0139 280.732 280.9514 282.2275 282.7964 283.2285 282.2133 280.8534 280.7861 281.5329 283.6143 284.3893 284.9043 285.5546 287.0322 287.8504 287.6851 287.0755 286.6284 282.2858 -9999 -9999 +-9999 320.2173 318.2993 316.2105 320.1797 323.3881 325.703 324.159 321.8922 318.4742 318.4526 318.4627 318.4854 316.1699 313.5219 313.9448 314.8813 316.1352 317.2104 317.0538 317.2 317.6437 317.9476 317.9292 318.3361 317.928 316.2933 313.7755 311.1364 307.9159 304.5686 301.2499 299.0029 298.5254 299.1534 299.0956 299.1671 301.7623 308.4731 311.4021 313.2568 314.4352 314.8382 314.8847 314.6455 314.2623 314.258 314.9378 312.3401 315.7956 315.5018 318.5097 322.0199 324.1263 325.6757 327.9754 328.7762 330.6782 332.4825 333.9034 335.2791 337.056 339.3969 341.8356 344.6713 346.4812 349.0499 351.3676 354.1351 356.4234 357.6724 357.3707 357.899 353.3118 353.9526 357.3073 360.9949 362.664 361.0358 362.9785 365.3318 368.2698 374.0259 376.3763 378.454 377.6733 377.1467 377.0324 379.5288 379.8867 379.5401 375.8194 372.3276 367.9781 361.5885 358.3845 354.9127 351.4818 349.9922 347.0286 339.3479 338.2011 335.6494 334.294 332.4443 330.6534 327.6163 324.6021 320.8902 312.1661 312.106 314.2474 318.1198 321.693 324.2251 326.7888 328.2051 327.0347 314.3128 312.4242 313.6024 316.8831 319.1836 321.6717 323.3351 322.8903 320.8434 319.6169 322.338 327.6985 332.4814 336.7131 338.791 339.5607 341.5381 342.783 342.8712 347.0077 349.1821 353.257 356.4525 359.7987 360.7214 361.1564 358.7447 358.2031 354.7193 358.9276 358.8076 355.5652 351.3176 346.1567 343.3938 341.6824 339.2619 335.4431 333.6551 331.5396 329.6859 328.0012 326.9629 325.9293 323.8246 322.9356 317.5526 316.4165 315.1188 314.175 313.475 312.782 311.1438 309.3607 307.484 304.0073 304.13 305.5948 305.2252 304.2266 303.9898 304.9396 304.824 304.4687 303.5722 302.8035 301.9866 303.3164 304.4252 305.6344 305.9973 305.2527 304.6368 302.9345 302.4032 302.2707 303.0318 303.2207 302.7465 301.6621 301.1487 301.501 298.8149 296.3325 294.8117 292.8819 290.8518 289.6374 289.065 289.3806 289.7667 290.1054 290.4726 290.6136 290.599 291.0067 291.335 292.8004 293.4457 291.9947 286.3831 284.5474 284.5301 285.0968 286.6154 287.3899 286.6 284.6396 282.2455 281.4308 284.2783 288.1804 292.4761 295.161 296.4306 295.9273 294.1631 292.5839 291.1995 287.1748 284.4763 281.3462 280.4618 278.2148 274.765 272.1422 270.2929 271.5324 264.7551 260.2216 254.2105 249.7134 247.8798 247.6035 247.5319 247.465 247.4146 247.9361 247.5335 247.0105 246.9082 246.9441 246.7764 246.5404 246.2934 246.1895 246.1871 247.0722 249.9411 249.9338 248.9586 247.959 249.7561 253.7473 256.8922 260.1737 261.721 263.7397 264.9308 266.4336 266.1131 265.4515 264.5137 262.6485 259.7831 261.3078 262.1954 261.7088 260.7946 260.1367 259.6502 258.9616 258.5707 257.0268 256.5634 254.8286 253.7091 252.9074 252.9718 253.6587 253.553 252.5777 244.2319 242.9389 243.3751 243.4392 243.4638 243.3662 243.3136 243.2821 243.3052 244.5552 244.6627 244.8674 245.3097 246.0505 247.8029 248.2041 249.559 249.9468 254.3302 255.435 256.835 258.5264 259.7134 261.1197 262.8008 264.9709 265.6735 267.7237 268.7236 269.5992 270.1102 270.5168 270.632 270.1674 269.4062 268.5458 267.1235 264.5824 262.8149 261.6536 260.0322 256.8287 255.7665 254.5938 253.4927 253.6799 256.6475 258.4222 260.0027 261.0222 261.3453 261.5629 261.1415 261.1514 260.6951 258.1982 257.2772 256.8293 256.1705 255.7359 254.8927 253.1216 250.1012 247.325 251.8261 252.2745 252.7379 252.899 252.6278 252.3703 251.832 251.3239 250.7021 249.1479 248.6254 248.3434 248.0244 247.4323 246.8436 246.3176 244.1775 239.3853 237.3391 239.385 238.9211 238.7709 238.8655 238.8663 238.9617 240.8713 240.7117 239.5703 239.2405 238.6212 238.3035 238.1851 238.4278 238.3725 238.3025 238.2377 238.0111 237.8852 237.3464 237.212 240.8611 247.6631 251.248 253.1655 254.5358 257.0757 258.0791 258.2821 257.6778 255.9102 253.6573 252.4496 250.0906 248.5568 244.615 244.0547 247.1066 250.1496 253.5406 257.0416 259.8012 259.667 258.3535 259.9135 260.4132 259.4384 264.7367 267.6553 269.093 269.2232 269.3312 267.9862 265.9128 262.9015 261.6885 260.6993 259.3897 260.4834 260.4208 263.1091 267.1291 268.8606 269.9938 270.0391 269.7876 270.0047 269.7849 269.3742 269.7196 269.9792 270.5741 270.4571 271.5016 271.9034 270.8364 272.2036 273.1924 274.3876 275.2451 276.6824 277.7689 278.7284 279.8874 280.8526 282.404 283.8341 285.3681 286.1384 286.5273 285.4903 283.8587 282.8487 282.1924 281.8766 280.8567 279.9063 279.2867 279.5016 279.9129 280.9793 282.703 283.6154 283.3278 282.8102 281.4001 279.5025 279.9082 282.2599 283.5405 284.2923 285.4703 286.5626 287.388 287.4846 287.4482 288.1131 284.0687 -9999 -9999 +-9999 318.6159 316.4482 317.2948 320.7289 323.0681 324.5482 322.7271 321.0178 317.057 315.6494 315.689 316.4665 316.0186 311.8963 312.9248 313.34 314.6049 316.2049 316.5071 317.8182 318.9487 319.8376 319.3565 318.7745 318.274 316.5994 313.5901 311.3081 308.8231 306.3387 302.7565 299.0422 298.6728 298.9581 298.7978 297.5769 304.7882 308.6918 311.3725 313.4887 315.729 317.1312 318.1147 318.9349 319.8907 320.1605 319.9503 319.4944 317.2236 315.6607 316.2103 320.0005 322.3283 324.2847 326.012 327.8768 329.7968 331.7158 333.09 334.2319 335.6891 337.1829 339.577 343.4074 344.5953 346.8476 349.9142 352.4507 353.9348 354.7903 355.9562 355.3739 349.1906 349.6605 355.3658 358.6231 358.9362 358.1751 362.3406 366.526 370.0686 374.1912 376.5874 377.8666 376.7348 374.5977 374.4931 376.92 376.2773 377.2878 374.4291 371.9551 368.7197 366.4339 363.1913 358.532 354.2176 350.2985 346.6588 337.8087 334.2644 331.753 329.507 327.3349 324.0762 320.661 317.4776 315.6723 309.6796 311.295 311.1725 315.5032 319.6091 321.8542 324.4485 326.6021 325.4926 313.446 311.2688 312.6147 314.6489 316.312 318.0633 318.8796 317.0962 317.2682 321.7904 323.7213 328.8198 333.5355 338.2655 341.7522 342.9412 345.667 347.9455 348.4028 351.2235 353.6125 356.5506 360.1151 362.9455 363.3398 361.2889 357.0944 354.9432 348.292 353.5123 353.679 351.98 349.3227 344.5019 339.8137 339.7982 337.3311 335.2813 333.0753 331.5978 329.5794 327.3199 326.1706 324.0811 323.3495 322.5793 318.7821 316.7047 314.9688 313.4699 311.6755 310.8065 310.5663 309.5319 307.9256 303.4632 301.5634 302.5236 302.7425 302.4013 302.3283 303.392 303.336 302.6679 301.9033 301.6318 300.5406 301.7017 303.0808 303.9176 304.3476 302.9951 302.94 301.4933 300.8197 300.5876 301.3875 301.9982 301.5555 300.4631 300.1278 300.7599 298.9599 297.107 295.7001 294.1433 292.6976 291.2158 289.542 287.0414 286.7366 287.0938 287.3234 288.0171 288.3828 289.9503 291.0742 292.2668 293.0057 291.7253 287.2054 285.6258 285.299 286.0515 286.968 287.1937 285.5617 283.5862 281.3142 279.8743 282.2967 286.1547 290.8221 294.8026 295.9028 296.0248 294.1237 291.9817 289.7745 285.3929 281.6393 277.1939 275.8848 274.5482 270.984 267.8029 265.9147 266.7549 259.0643 252.3878 248.0473 249.7134 247.8798 247.6035 247.5319 247.465 247.4146 247.9361 247.5335 247.0105 246.9082 246.9441 246.7764 246.5404 246.2934 246.1895 246.1871 247.0722 249.9411 249.9338 248.9586 247.959 249.7561 253.7473 256.8922 260.1737 261.721 263.7397 264.9308 266.4336 266.1131 265.4515 264.5137 262.7162 258.6448 260.0016 259.919 259.4174 258.7218 258.4527 258.0695 257.8362 256.389 254.7787 253.7027 252.3562 251.3949 249.7399 250.5874 250.5334 249.95 248.8207 243.2943 243.287 243.2971 242.9875 243.2905 243.0881 243.1447 243.0577 243.9097 245.0972 247.0425 247.0136 247.55 246.6175 245.9862 247.3981 249.3801 250.4098 254.0382 255.9282 257.669 258.8224 259.9374 261.4633 262.9507 264.6963 265.7082 267.592 268.2849 269.1375 269.6289 270.3602 270.2723 269.8178 269.6553 268.8256 267.6422 265.3065 263.4507 262.2316 260.7736 257.5667 255.9896 254.5215 253.409 253.1965 255.8391 257.4877 258.9818 260.1371 260.1562 259.5504 259.5474 259.6012 259.0423 256.4967 255.5031 254.8778 254.6243 253.7291 252.9249 252.7013 252.9488 249.0844 249.58 250.5807 250.8588 251.3733 251.4798 251.3018 251.094 250.6627 250.1088 249.2492 248.7196 248.0117 247.6356 247.018 246.423 245.9871 244.5651 243.6441 239.4043 238.8948 239.3244 238.8065 236.8095 236.2424 236.2529 237.5289 239.9739 239.1248 239.2796 239.3294 238.7897 238.6087 238.6362 238.3102 238.1085 238.0781 238.2044 238.0826 237.645 237.225 237.8933 244.7353 249.7812 251.1266 252.4817 256.0227 256.9755 257.2163 255.7101 253.613 251.7407 250.2068 247.1776 245.4451 242.5912 247.3519 251.1291 254.2522 256.9491 259.3752 261.6309 261.9539 259.4395 261.5072 263.2016 261.283 266.1975 268.8149 270.5591 271.4106 271.7278 270.687 269.1543 265.3101 264.3927 263.8611 262.7882 260.978 262.6977 264.9023 267.4984 268.7822 271.9991 272.6793 273.2732 273.1208 272.6994 271.2607 272.4562 272.7187 273.9729 274.9885 275.7202 275.7341 275.61 275.866 276.1661 277.4258 278.4442 278.7369 279.2346 279.1711 279.3729 280.1097 281.1232 282.2669 283.4389 284.1389 286.472 285.1772 283.7471 282.8583 281.3607 280.8287 280.3189 279.5879 279.0958 278.9515 279.6182 280.9523 282.2085 283.3318 283.524 282.9904 281.5426 279.1945 278.7457 281.015 281.8196 283.1859 284.6143 285.046 285.4243 285.6598 285.8118 287.1628 286.2701 -9999 -9999 +-9999 316.1637 314.37 317.2358 319.6968 321.3038 321.7523 321.1328 319.9545 316.4709 314.3188 313.2434 314.8716 313.9732 311.2508 311.4662 312.3191 313.6554 316.4296 317.2427 318.8009 319.9891 320.9096 321.171 319.543 317.6036 316.2762 313.0499 311.5258 308.9802 306.5742 303.2851 298.9864 298.3959 296.715 297.4142 300.9251 303.9773 307.5905 310.8544 313.5897 315.8939 318.3512 320.4444 321.4178 322.364 323.14 323.3391 322.9064 321.8642 320.5367 318.1305 316.7929 319.2421 321.1527 322.3075 325.5265 327.8352 329.2917 330.9219 332.823 334.7049 336.8188 338.9243 343.4727 345.9193 347.8789 349.3693 350.5336 351.2543 352.0562 353.0245 352.1371 345.5647 351.0845 354.1196 355.9479 354.9142 353.9156 359.237 364.601 368.1666 371.4342 374.1867 376.6213 376.1778 373.9886 371.5258 372.9698 374.5345 375.6397 375.0736 372.7863 370.8001 366.8958 361.8747 356.7761 351.278 346.5052 343.3018 337.5811 333.9621 331.1276 327.1577 323.8566 320.969 318.2298 318.0858 321.123 314.9796 311.0941 310.2996 312.5871 316.5087 319.853 322.0493 324.3367 323.9985 311.0981 309.8045 311.2514 312.0027 312.8967 313.5793 314.4406 317.2795 320.7744 326.5294 325.3741 329.4726 333.5575 338.3353 342.4024 345.4004 347.4923 349.7312 350.1169 353.1681 356.2137 359.1026 362.0215 363.9768 362.7437 359.462 354.5054 352.6351 348.2537 347.333 349.2415 348.0316 345.6345 342.0075 336.6574 335.0312 335.4409 333.7487 332.0886 330.8234 329.4835 327.2175 325.4879 323.863 321.8855 320.4113 318.2397 315.7917 314.3618 313.4567 311.4368 309.44 308.3038 308.2153 307.6991 304.2723 302.12 299.5788 299.2608 299.4171 300.7667 301.7895 301.6448 301.1576 300.3867 300.3766 299.1085 299.6452 301.1592 301.9421 302.1496 301.4672 301.5481 300.3823 298.7666 298.6533 299.8035 301.0202 300.4209 299.6435 299.3731 299.5473 298.5164 297.1301 295.951 294.3825 292.96 291.7621 290.2892 288.1195 286.1816 284.5312 285.2042 286.7613 288.1095 289.3597 290.4972 291.4758 291.7753 291.7253 287.2054 285.6258 285.299 286.0515 286.968 287.1937 285.5617 283.5862 281.3142 279.8743 282.2967 286.1547 290.8221 294.8026 295.9028 296.0248 294.1237 291.9817 288.1751 285.3929 281.6393 277.1939 275.8848 274.5482 270.984 267.8029 265.9147 266.7549 259.0643 252.3878 248.0473 247.5881 247.8554 247.3934 247.7661 247.2656 246.8372 246.1221 246.0434 246.6132 247.0727 246.9988 246.8024 247.7658 246.4594 246.3633 245.8242 245.6196 247.1151 246.9473 247.3005 250.2091 253.2592 255.7322 258.3262 261.8183 262.814 263.6963 264.5757 265.3521 265.0558 264.8708 264.0881 262.4037 258.1212 258.0134 257.6543 257.1809 256.5053 256.5236 256.0858 256.0622 255.3592 252.777 251.2339 249.1496 247.8224 246.4008 245.7804 246.8329 246.1818 243.7793 242.7043 243.0076 242.9986 243.1354 243.1768 243.2395 242.9851 243.127 243.6111 246.2881 247.918 249.048 249.3951 249.7939 249.4337 247.9113 247.873 249.571 253.158 254.9272 257.4867 259.766 260.7854 261.6854 262.6897 264.33 264.962 266.6572 267.2843 267.8168 268.6666 269.4607 269.7013 269.416 268.7368 267.9937 266.2299 265.4769 264.0103 261.9037 259.7421 257.4284 255.9327 254.6569 253.4185 252.3875 253.5432 254.9231 256.7196 258.1267 258.1074 257.7672 257.7628 257.8531 257.6066 255.1242 254.3591 253.3488 252.4036 251.0073 249.411 249.2154 250.0854 248.8494 246.9171 248.6323 249.3199 249.7088 249.5045 249.7244 249.9634 249.9766 249.5435 249.2905 248.8365 248.0659 247.5415 246.9347 246.5258 245.1413 244.2486 244.2199 244.8381 245.4554 245.1764 241.6773 239.5551 239.1694 238.3998 236.5224 236.2735 238.9976 239.1921 238.9082 238.4543 238.3807 238.4077 238.0761 238.0033 237.9693 238.0393 238.0698 237.5754 237.2512 237.3549 241.5528 246.9201 249.4655 251.2975 255.1635 255.9485 256.1063 254.2561 251.9044 250.1552 248.668 245.6742 243.3927 245.827 250.1974 253.576 256.666 258.7569 260.5388 262.1063 262.8731 262.2968 262.4997 264.9556 263.9434 266.194 269.0401 271.1649 272.5437 273.2758 272.8466 269.5158 267.4747 265.8288 266.0279 264.8178 262.9605 264.6988 266.6886 268.5639 269.5653 272.9184 274.4598 275.3024 275.4131 274.7613 272.706 274.1828 274.9813 276.3714 277.7052 278.4246 278.8023 279.2932 280.0385 279.1586 279.9712 280.0825 280.3235 281.4011 281.229 280.2784 280.4362 280.8994 281.9436 282.9548 283.995 284.883 283.6735 282.2705 281.1205 280.3875 279.8918 279.5852 279.0381 278.4181 278.41 279.1547 280.5624 281.809 282.9409 283.4357 282.825 280.6888 279.5665 277.532 278.8311 280.6199 282.0846 283.2625 283.258 283.0038 283.0503 284.1541 285.7612 285.1628 -9999 -9999 +-9999 313.6936 313.2611 315.7654 318.2015 319.2992 319.9697 319.8209 319.51 316.1361 313.5303 312.0401 312.8968 313.4857 311.5197 310.4979 311.5332 313.4384 317.8636 318.6515 319.394 320.6122 320.9319 320.004 318.616 317.5009 315.4489 313.0129 311.4346 308.7894 305.8112 302.8821 298.6788 298.1313 297.1596 298.8244 302.3734 305.6515 308.6077 311.4706 314.2912 316.752 319.3119 322.054 323.7448 324.8413 325.8439 325.8365 324.715 324.5627 324.4374 322.984 321.5261 320.8264 321.5021 321.9442 325.373 327.6409 329.5658 331.6385 333.4749 335.087 337.0878 339.5182 343.2993 345.2424 346.497 347.6681 348.7957 348.2614 349.1302 349.8848 347.9264 345.228 347.4012 349.8634 351.3145 351.2404 354.6844 359.2063 362.4737 364.9404 370.0049 372.6855 374.7459 374.6566 372.9442 369.4812 369.3719 372.9825 374.1026 375.9626 375.3497 373.7546 369.5277 364.4162 358.3738 351.7751 345.145 337.4504 331.1793 327.3033 325.8557 322.388 321.6776 325.6782 323.9677 324.3004 325.6802 318.549 311.8831 309.5529 309.8355 312.6404 317.2226 320.012 322.3044 322.0973 309.7957 309.7535 311.1001 312.5755 313.875 316.2798 319.5045 322.5026 324.8164 332.0459 329.9925 328.8102 332.2437 336.4484 340.0265 343.7053 346.442 348.5497 351.2553 353.3117 355.3337 357.7738 361.208 362.6351 360.6676 356.9641 353.6736 350.6234 348.3979 343.2702 343.1862 343.3045 341.9134 339.9747 337.0703 332.2895 332.7203 332.1339 330.6114 329.0371 327.8873 326.5513 324.5932 323.4071 321.9823 320.1109 316.3806 314.304 312.8944 311.5644 310.4493 308.2361 308.0428 305.8598 305.6372 303.8311 303.0871 302.3293 300.0038 296.1523 298.869 299.6698 299.9325 299.4417 298.9734 299.0336 297.675 298.3119 299.7226 301.9421 302.1496 301.4672 301.5481 300.3823 298.7666 298.6533 299.8035 301.0202 300.4209 299.6435 299.3731 299.5473 298.5164 297.1301 295.951 294.3825 292.96 291.7621 290.2892 288.1195 286.1816 284.5312 285.2042 286.7613 288.1095 289.3597 290.4972 291.4758 291.7753 291.1769 289.1853 287.8641 286.8307 287.2089 287.2226 286.6429 284.352 282.3741 279.891 278.2879 280.6807 284.8139 288.8154 292.5386 294.9384 295.4888 293.7327 290.8912 286.358 283.9911 279.6625 272.4356 271.0752 269.8576 267.6461 264.9079 263.3663 263.0604 255.4789 248.542 247.9337 248.0272 248.2162 246.9856 247.6427 247.8581 247.7995 247.3734 247.183 247.1788 246.8833 246.892 246.9905 249.2082 246.9758 246.4786 246.1384 245.6673 245.7185 246.5835 248.197 251.197 253.3498 255.6298 257.6761 260.8987 261.3867 262.39 263.1013 263.7737 263.9058 264.0726 263.4275 261.6091 257.9165 255.6501 255.2973 250.8952 253.2507 254.5326 254.9669 253.2439 253.44 250.3284 247.8527 245.0059 243.5052 242.6367 242.6295 242.797 243.3267 243.5646 242.9823 243.0327 243.0854 243.3212 242.938 243.0681 243.2057 243.4053 244.0214 248.9472 249.9013 250.2673 250.4755 250.2597 250.7183 250.925 249.6981 248.9483 251.1975 252.4453 254.7399 256.9581 259.6249 261.424 262.4499 263.8732 264.2851 265.1506 266.4045 266.6781 267.5437 268.203 269.0207 269.0893 268.1434 267.1393 265.4839 265.3036 263.6878 261.8678 259.457 256.7403 255.6481 254.3942 253.3158 252.8497 251.6849 252.1941 253.9866 255.0164 255.5922 255.5331 254.9939 255.5273 255.603 253.0361 251.6357 250.0435 249.1801 247.5603 246.4554 245.7905 245.337 244.5668 244.3173 245.7695 246.3318 247.0287 247.5235 247.8309 248.1464 248.6843 248.526 248.1621 248.2166 247.978 247.5619 247.0772 246.4296 245.1928 244.535 244.6435 245.4287 245.8284 244.0391 239.7784 239.1672 238.8444 238.8042 238.8434 238.7155 238.9725 238.8505 238.3314 238.0901 237.9602 237.925 237.8771 237.8155 237.7666 237.8964 238.1183 237.5824 237.3207 237.5027 239.3737 244.6295 248.5404 250.5963 254.2764 255.1196 254.8843 252.6188 250.2613 247.8895 245.2573 243.2859 242.2519 249.024 252.1613 255.4 258.6182 260.7751 261.8952 263.0995 263.8949 263.701 264.6636 266.4883 267.2841 267.1588 267.7492 270.207 272.7867 274.3818 274.1922 271.6475 269.3266 267.7993 267.5838 266.1813 264.8765 266.4288 267.9826 269.8028 271.0973 273.5983 275.0883 276.4456 276.9219 276.8065 275.3969 274.8417 276.5433 277.8848 279.9505 280.3615 280.7072 281.0284 281.9087 282.6795 282.3126 282.2398 281.9118 282.9448 283.4808 282.5516 281.62 281.8487 281.9232 282.3886 283.9133 284.5138 283.8947 281.8567 280.6001 279.6786 278.8649 278.1852 278.0572 277.7833 277.7237 278.768 279.9528 281.2049 282.5214 282.9714 282.093 279.9768 278.1474 276.0674 276.4441 278.2078 279.8509 281.0322 281.323 281.0879 281.4944 282.4714 283.5977 283.0223 -9999 -9999 +-9999 313.5669 312.3572 314.1921 316.2448 317.5903 318.844 318.851 318.5789 315.7361 313.7486 311.2867 311.013 312.2373 310.6768 309.7601 311.0725 313.8741 317.6862 318.5106 319.6005 318.4481 319.6017 318.3956 317.2069 315.9114 314.7625 311.5543 308.6893 306.691 305.6012 302.2015 298.7067 298.1826 297.0889 298.9207 303.1824 305.7297 308.4428 310.9821 313.3778 316.8782 320.1031 322.8916 325.6696 327.0652 327.9619 327.2751 326.5651 326.1839 326.4908 326.6502 326.4426 326.4996 326.0774 327.1029 324.4615 325.4303 327.4998 331.1855 332.9902 334.8006 336.7518 338.574 341.6072 343.3769 345.4469 346.9247 346.8236 344.9917 345.5199 345.4967 341.745 346.7846 347.7605 348.8657 352.1962 356.6193 359.8861 363.2054 365.6299 368.2488 371.7115 373.0327 373.7115 372.4135 370.2913 368.1368 366.3036 369.8104 372.0184 376.4644 377.361 374.9413 370.5634 364.4665 357.4839 349.8167 341.3607 341.7408 333.6022 335.7559 332.8466 332.0079 331.5877 329.7559 328.3722 327.9225 327.2261 320.9839 315.9053 310.5474 309.1257 308.9388 314.3967 317.7023 320.0768 320.5318 308.4922 309.87 312.1782 313.6983 316.0273 319.438 322.7979 326.1268 329.1505 336.0312 335.8045 332.4514 332.4065 334.0952 336.7514 339.8921 343.5344 346.0927 348.6037 350.2459 351.2126 355.4276 359.3036 359.5796 357.0171 353.3642 350.7531 347.5283 346.0524 343.8161 340.3747 336.6814 336.5551 336.8256 335.4854 330.6198 329.7411 329.8526 329.189 329.0371 327.8873 326.5513 324.5932 323.4071 321.9823 320.1109 316.3806 314.304 312.8944 311.5644 310.4493 308.2361 308.0428 305.8598 305.6372 303.8311 303.0871 302.3293 300.0038 296.1523 298.869 299.6698 299.9325 299.4417 298.9734 299.0336 297.675 298.3119 299.7226 300.0137 299.825 300.124 300.559 299.6306 297.1604 297.416 298.5669 299.8149 299.5847 299.1377 297.5203 297.8374 296.8577 296.026 294.3816 293.2523 291.1246 289.7925 288.8519 287.8034 286.7672 282.7162 283.6971 286.1398 287.4752 288.1683 289.8879 290.0841 290.1135 289.8751 289.2124 288.5098 288.1698 287.759 287.1088 285.5518 283.9947 281.2871 278.5543 277.1516 279.2911 283.3818 287.0615 290.8129 293.9843 294.8685 293.161 289.6398 284.2392 281.6823 278.0275 272.903 265.1424 262.3741 261.9127 261.3059 260.1877 261.0196 252.0917 248.2686 248.5144 248.3876 247.3362 248.4289 247.9503 247.7834 247.5097 247.1498 247.0239 247.1272 246.9535 247.417 247.6417 250.2881 246.1709 246.2842 245.9999 245.7199 245.5737 246.5303 247.9764 250.2045 251.9458 254.003 255.6088 259.0654 259.9712 260.7038 261.5436 261.8595 262.3454 263.3047 262.9037 261.0879 257.2225 254.1166 251.3905 248.44 250.4733 252.0198 253.1575 251.6289 250.8677 248.8257 245.9351 243.7248 242.897 242.8417 242.845 242.8914 243.4713 243.5991 243.036 242.9581 243.1561 242.8233 243.0767 243.0923 243.4582 244.8887 246.8158 250.3878 251.5463 251.8882 252.0337 251.6432 251.808 252.0029 251.6115 250.6838 250.3495 251.5029 253.5083 254.6609 256.4502 258.8812 259.484 262.2319 262.5885 263.7659 265.2648 265.6845 266.6726 267.6935 268.5443 268.9819 268.2994 266.7325 264.8705 264.4926 263.4634 262.1396 260.5959 258.1187 255.9945 254.404 253.2532 252.5498 250.7411 250.5766 250.6379 251.3096 251.8203 252.1224 251.7595 252.4373 252.0649 249.5306 248.1637 246.5265 244.9697 244.2885 243.8073 243.7985 244.0962 244.014 241.9943 242.0728 241.3154 241.8797 244.1909 244.7505 245.708 246.6093 247.3672 246.813 246.8157 247.0525 247.3978 247.2193 246.2486 245.4467 244.894 244.9585 246.1427 245.1036 241.2963 239.0189 239.1073 238.8354 238.7302 238.8546 239.2051 238.8997 238.6116 238.1501 237.9677 237.7677 237.8728 237.7651 237.6096 237.7007 238.0613 237.9218 237.3758 237.3095 237.3117 238.3229 242.9464 247.9577 250.1834 253.5843 254.5619 253.2123 250.4092 248.1025 245.1425 242.6628 242.6023 244.9462 250.7564 253.6786 256.9685 259.9413 262.1352 263.7027 264.4199 265.337 265.0959 267.1567 268.346 269.2627 270.414 271.9293 271.476 272.9187 275.2047 275.4576 273.409 271.3979 269.7099 268.937 267.6261 266.0373 267.2375 268.6559 270.2266 271.8968 274.3397 275.3937 277.0912 278.1911 278.5535 277.3076 276.4732 277.3514 279.2306 281.6444 282.1372 282.6366 282.882 283.529 284.0985 284.3876 284.2661 283.8943 284.804 284.9496 283.7899 283.0694 282.9239 282.9821 281.8489 282.4671 283.3718 283.1781 282.1602 280.7305 278.5447 276.0376 276.3551 277.0623 276.8611 277.1518 278.2696 279.4236 280.7686 281.984 282.2108 281.1258 279.1921 275.2249 272.9498 273.1982 275.4664 277.2263 278.5344 278.6763 277.888 279.0822 281.033 282.2027 281.4662 -9999 -9999 +-9999 314.2854 311.9876 312.3741 315.2773 316.8303 317.7806 317.4348 316.8009 315.2837 313.8401 311.4322 309.7313 309.911 309.1524 309.5774 311.4434 313.4404 316.2287 317.4258 315.5602 315.3585 316.2078 316.6493 314.4196 312.8608 312.2931 310.1796 308.8217 306.1378 305.6906 301.895 299.7003 297.9047 297.541 298.635 302.5417 306.1187 309.3888 312.2058 315.14 317.6665 321.5476 324.8136 327.1585 328.5612 328.4932 328.0697 327.9073 327.8083 328.1248 328.7953 329.0831 329.2642 329.1991 330.4704 330.8541 329.4679 329.6633 330.9371 332.3892 334.6274 336.1302 337.8755 341.8708 343.3613 344.7473 344.979 343.9431 341.774 341.6094 341.0857 338.7715 349.5721 353.2541 354.7524 356.2554 358.6862 361.5196 363.6097 365.995 367.9252 370.4746 370.616 369.8339 368.7598 366.5321 364.8878 364.5545 369.8148 373.0566 375.5549 376.5962 374.9323 368.7496 361.0247 354.2452 352.9687 349.9893 347.9081 342.9552 341.4829 337.8907 336.032 334.0341 332.5416 331.0974 329.3579 327.1628 323.461 320.8531 314.315 309.8805 308.1655 310.1761 315.2039 317.3595 317.5078 307.6657 311.3746 314.0424 316.1234 318.4515 321.5058 324.6447 328.1199 331.728 338.1415 335.8045 332.4514 332.4065 334.0952 336.7514 339.8921 343.5344 346.0927 348.6037 350.2459 351.2126 355.4276 359.3036 359.5796 357.0171 353.3642 350.7531 346.7784 346.0524 343.8161 340.3747 336.6814 336.5551 336.8256 335.4854 330.6198 329.7411 329.8526 329.189 327.3862 326.5984 325.2629 324.1083 322.4535 320.9176 320.0689 318.4891 316.7658 314.2075 311.391 309.4274 308.2432 307.1944 305.4297 303.783 301.9303 301.0654 301.8803 302.236 297.5761 295.6037 296.4882 298.0549 298.0022 297.7874 298.0244 296.7221 295.4146 297.7233 297.7849 297.8 298.9793 300.0595 298.4592 295.747 295.9213 297.9153 299.023 298.5093 297.8593 296.731 296.0936 297.143 295.6894 294.0724 292.5424 291.2081 289.8913 287.9337 286.9984 284.848 281.0652 280.8261 284.4123 285.8412 286.7742 287.9436 287.9837 288.3119 288.0817 288.0447 287.865 287.952 287.7962 286.7988 284.9897 283.3171 281.2149 278.6068 276.5362 277.8439 281.3471 285.3773 289.2114 292.5918 293.9203 292.5586 288.6786 281.6369 277.772 269.0437 266.5742 268.4341 262.8133 259.4781 257.9226 256.3148 252.5577 248.7934 247.0049 248.6899 248.6615 248.3516 248.1136 248.3409 247.8048 247.6162 247.1208 247.1174 247.0068 247.736 249.1802 250.3307 251.042 249.3394 247.7521 246.0082 246.1599 245.1472 246.3969 247.2626 248.9435 250.9084 252.984 254.5124 257.2962 258.0593 259.1772 259.8097 259.691 260.5742 261.5935 261.8932 260.9947 257.2688 256.287 252.9018 250.3007 248.4667 248.9881 249.739 250.9558 249.2104 245.9632 243.9865 243.0102 242.9498 242.8345 242.8174 242.8315 243.5804 243.4513 243.2333 243.1711 242.9328 242.9439 243.2453 244.5895 245.9036 248.0061 248.9147 251.3194 252.593 254.1727 254.4413 253.7502 253.4412 253.2639 253.4697 252.8568 251.8227 252.743 252.7403 253.3156 254.3138 255.9341 258.0696 259.2015 259.8028 262.2761 264.5184 265.0625 266.0086 267.0713 268.0471 268.8922 268.0573 266.8758 264.5708 263.9803 262.9384 262.1443 260.4674 257.9824 255.6785 254.6686 253.5143 251.3835 251.4101 251.1997 250.7288 249.7177 249.1404 249.3199 249.3548 248.9801 247.7523 245.9802 246.3301 247.7139 248.7636 249.7334 250.9635 251.929 251.5822 249.5344 246.0546 245.7011 244.7829 243.8092 241.9355 240.6155 241.458 242.7395 243.533 245.0527 244.9098 245.0098 246.2089 247.0387 246.4214 245.6854 245.4066 245.6713 246.1557 243.4037 239.92 238.6319 238.4564 238.9339 238.7339 238.8753 239.4725 239.0359 238.4067 237.91 237.9862 237.4453 237.7871 237.8084 237.6194 237.7819 237.7903 237.5781 237.3865 237.2456 237.4114 237.9002 241.2989 246.7588 249.3069 252.7723 253.4598 251.1348 247.89 243.4053 241.3272 243.3197 244.9735 247.7696 251.9404 254.88 257.3882 260.7238 263.1721 265.3359 266.4651 266.9548 266.6829 268.8361 270.5576 271.67 272.7489 274.2391 274.9874 275.3249 276.4914 276.9006 274.9891 272.8166 271.0264 269.9139 268.6476 267.6981 268.4431 269.3665 270.5348 272.1236 274.7448 275.63 277.0244 278.5112 279.4585 278.9426 277.5977 278.4421 280.1903 282.9925 283.7346 284.3441 285.0673 285.7023 285.9947 286.0805 285.5732 285.5309 286.6595 286.4168 285.412 284.4888 283.7009 281.9518 281.1658 281.5141 281.8576 281.5924 281.2725 279.7618 276.2383 273.7947 273.9091 275.2144 276.4237 276.6754 277.6499 279.0317 280.1266 280.9835 281.2976 280.4614 278.6979 272.2426 269.2785 273.1982 275.4664 277.2263 278.5344 278.6763 277.888 279.0822 281.033 282.2027 281.4662 -9999 -9999 +-9999 317.1892 314.2256 310.6898 313.036 315.7771 316.1275 315.5359 315.3838 314.989 312.8773 311.0899 309.3383 307.1084 308.0679 310.0046 311.1617 312.6733 315.0399 315.1714 315.158 315.3806 316.6234 314.3735 312.5726 311.7477 310.5171 307.9623 307.1632 305.3461 303.6656 301.0451 299.1115 297.8975 297.3847 297.9205 303.0697 306.6092 309.668 313.1039 316.8263 319.9063 322.7457 325.2754 326.887 327.0695 327.1686 327.088 327.232 327.8636 328.7946 329.6446 330.3945 331.0183 331.026 333.0003 333.0667 334.3046 331.5992 332.3706 333.4987 335.5267 337.2021 338.7572 341.191 342.0107 342.1343 341.7852 340.1274 338.1411 337.5574 337.2757 338.4371 348.6092 352.0499 354.3188 355.5888 357.5489 359.3356 361.0891 363.8291 365.1585 366.9505 367.0058 365.3866 364.2836 362.2685 361.8971 362.4216 367.9462 370.4755 373.1048 374.7114 374.0811 369.4646 366.2491 363.5479 359.7021 355.6071 353.0348 342.9552 341.4829 337.8907 336.032 334.0341 332.5416 331.0974 329.3579 327.1628 323.461 320.8531 314.315 309.8805 308.1655 310.1761 315.2039 317.3595 317.5078 307.6657 311.3746 314.0424 316.1234 318.4515 321.5058 324.6447 328.1199 331.728 338.1415 339.0096 337.2441 335.9445 336.0089 338.0844 340.0522 342.2322 343.5814 345.3759 346.4948 349.6616 353.9982 357.4639 356.411 353.4165 350.6682 348.4718 344.7516 341.5755 342.1889 339.5499 335.9823 333.2689 333.243 332.848 330.1496 326.7716 327.932 326.243 326.0522 325.1169 323.9183 322.537 321.3098 320.0734 318.644 318.3551 316.837 314.8662 312.6806 309.4626 306.8706 305.4185 303.8968 302.5472 300.8683 299.4075 298.3948 299.5643 296.3474 294.5353 294.1018 295.9449 296.1894 296.7476 297.0492 296.0121 292.8014 295.2586 295.413 296.0265 297.8681 298.3635 297.4853 295.0739 294.8651 296.3575 296.9877 296.6724 295.9211 294.8956 293.9493 296.7793 296.2412 295.1226 294.3979 293.7559 292.5889 290.8412 288.9647 287.7189 282.8355 278.3898 281.8376 283.7945 284.6001 284.7964 285.3264 286.2484 286.223 286.4174 286.753 287.2279 287.1607 286.6225 285.0502 282.7406 280.9356 278.0956 273.8498 275.8432 279.4725 283.3472 287.2767 290.9009 292.8368 291.4088 286.8748 280.1837 277.5432 272.2162 263.6656 262.3748 257.8152 251.6192 252.4129 250.3626 248.996 253.1433 255.222 250.8906 249.0733 248.2102 248.1074 247.907 247.5982 247.9538 247.2416 247.5435 248.4125 252.2088 253.4337 254.8396 255.7637 256.2596 254.6228 246.7336 246.1556 245.739 244.982 245.9989 247.7397 250.2853 251.8666 254.0923 255.6118 256.2578 257.6402 258.0098 257.8497 259.1317 259.9814 260.881 260.709 256.85 256.4235 255.418 253.2344 249.5 247.8403 247.7527 249.4686 249.9738 244.9133 243.092 242.9107 242.8997 242.8372 243.1368 242.878 242.8447 243.3766 243.1461 243.1801 243.0721 243.2547 246.0033 247.657 249.1067 250.7001 251.2229 252.2699 253.6815 254.8783 256.0058 256.1252 255.8269 255.6487 255.542 254.792 252.2922 253.5831 254.9634 255.9542 255.7557 255.1416 257.0342 258.2274 258.6466 261.2912 264.0909 264.4034 265.5867 266.6492 267.5427 268.6935 267.8367 266.7705 264.5962 263.6504 262.8848 261.7697 260.3141 257.1433 255.5435 254.2235 253.3879 253.6421 253.3586 253.2256 253.9034 252.7471 251.0861 249.5595 249.4124 249.3391 248.2871 248.5001 249.6989 251.2668 252.5646 253.4416 255.34 256.8207 257.4421 256.8163 252.558 250.3533 249.7191 248.0417 245.9555 243.8767 242.2324 240.9539 239.8358 241.3211 241.7242 242.1268 243.6511 246.0044 246.7577 246.5182 246.1876 246.5389 246.4116 243.8384 239.682 238.7567 238.174 238.1249 237.8911 238.7523 239.2713 239.0526 238.3421 237.7169 237.6998 237.7815 237.631 237.7124 237.8018 237.8772 237.6882 237.3259 238.2548 238.3787 238.1354 238.0622 241.0093 246.1678 248.3866 251.7883 251.8981 249.1168 243.6519 241.0968 241.0337 243.5984 246.7841 249.0878 252.9196 255.2876 258.1945 261.6917 265.2714 267.0994 267.8687 267.9772 268.3333 270.9082 272.8429 274.1481 275.083 276.2508 277.1629 277.3784 278.2685 278.3968 276.1726 274.0805 272.1775 271.0108 270.1983 269.0931 269.3941 270.3232 270.6161 273.2343 274.4618 275.4645 276.3495 277.6638 279.4585 278.9426 277.5977 278.4421 280.1903 282.9925 283.7346 284.3441 285.0673 285.7023 285.9947 286.0805 285.5732 285.5309 286.6595 286.4168 285.412 284.4888 283.7009 281.9518 281.1658 281.5141 281.8576 281.5924 281.2725 279.7618 276.2383 273.7947 273.9091 275.2144 276.4237 276.6754 277.6499 279.0317 280.1266 280.9835 281.2976 280.4614 278.6979 272.2426 269.2785 270.2366 272.1797 274.1638 275.5602 275.2697 275.7274 277.694 279.2166 280.5681 280.1616 -9999 -9999 +-9999 319.5033 316.8596 311.291 309.8331 313.6128 314.5099 313.9657 313.255 313.2461 311.7999 310.2005 308.2624 307.143 309.3076 309.5097 310.2054 311.3204 315.1708 315.1954 315.4423 316.9396 316.5778 316.0462 314.6493 312.6717 310.4445 307.0328 306.1678 304.3251 301.282 299.0217 297.5581 296.0584 297.4697 297.5962 302.6936 306.4856 310.6971 314.4182 317.6221 320.4442 322.6713 324.0542 325.0313 324.4961 324.4435 324.8224 325.5314 326.076 327.4032 328.5883 330.1723 331.3112 333.6175 334.7785 335.2708 334.7354 334.0779 334.4833 335.1496 336.4214 338.1218 338.788 339.9642 340.2447 338.9593 337.1736 334.5088 334.045 335.0512 338.7932 338.4371 348.6092 352.0499 354.3188 355.5888 357.5489 359.3356 361.0891 363.8291 365.1585 366.9505 367.0058 365.3866 364.2836 362.2685 361.8971 362.4216 367.9462 370.4755 373.1048 374.7114 374.0811 369.4646 366.2491 363.5479 359.7021 355.6071 353.0348 347.7455 344.5775 341.4891 338.808 336.4182 334.1437 332.0874 329.553 327.3853 324.5087 321.3008 316.5234 312.1369 308.6645 307.9592 311.5086 314.2241 313.7923 307.107 310.3281 314.3206 316.1849 318.7198 321.6626 325.5395 328.1733 332.0606 338.2077 339.3694 338.3089 336.4298 335.2575 336.2606 337.7654 339.1693 340.3096 343.1162 346.4991 350.315 352.7029 355.2918 353.4184 350.7106 349.0528 346.5275 343.3832 340.1953 338.2221 338.1282 334.6187 331.674 330.3054 330.4541 329.2835 324.8931 325.1856 324.4418 324.1776 323.1709 322.2914 321.2746 320.481 318.8208 317.2973 317.7591 316.8177 315.491 313.359 310.9242 308.5282 305.6735 303.2317 301.6454 299.5841 298.6662 296.8261 294.4291 292.4138 291.8375 292.1313 292.8735 294.2938 295.4398 295.2525 294.7245 291.6718 292.0164 292.8322 294.7733 296.4026 296.6772 296.3104 294.146 292.5801 293.5563 293.9967 294.3648 294.2333 292.9359 292.9156 296.6821 297.1271 296.7042 296.4279 296.2856 294.6537 292.8632 290.7515 289.2471 284.5485 278.6267 278.6346 280.0816 281.7136 282.287 283.2099 284.377 284.6426 284.9099 285.6893 285.9203 286.2977 285.9593 285.2125 283.3474 280.6406 277.241 271.7668 273.7724 277.0949 281.276 284.9802 288.2893 290.4818 290.088 285.6224 275.9227 273.1404 268.7075 261.5702 253.3365 249.0517 249.0611 248.3788 250.4691 257.403 261.2571 264.1454 260.9099 256.0953 252.3407 249.8796 248.8139 248.9108 249.6216 249.5792 248.1687 250.6368 254.3342 257.1205 258.3924 259.4755 258.3011 258.8424 249.7578 245.301 245.182 245.3992 245.4082 246.0965 248.2094 250.0365 251.6749 254.2069 254.6368 255.501 255.4948 255.5046 257.4117 258.5477 259.6887 259.7862 256.0468 255.8642 255.9988 254.5258 251.8667 247.6916 245.2039 247.0026 249.1861 245.6463 242.8052 242.9403 243.1522 242.2978 243.1633 243.5586 243.8338 243.3879 245.3421 245.7592 246.0581 247.0022 249.3629 251.0593 252.2267 253.2076 253.9599 254.2713 255.4763 255.9692 257.1781 257.981 258.0383 257.9971 257.7499 257.1725 254.2949 255.1804 255.0824 256.0379 257.1841 258.2607 258.0496 258.5794 258.7378 261.4872 263.863 264.3377 265.2574 266.1557 267.3098 268.5416 267.6717 266.8413 264.8792 263.2675 262.0873 261.0646 259.8333 257.4893 255.8487 253.9147 253.5216 255.8246 254.6538 255.5021 256.3664 255.513 253.5445 252.499 252.3332 251.9952 250.565 249.2805 251.2537 253.3174 254.6879 255.9303 257.6085 259.5362 261.3294 262.2416 258.7482 254.9246 254.4456 253.7263 251.9744 249.6081 246.507 244.0973 242.5926 239.9684 238.8859 239.7151 240.7104 242.5019 244.7012 246.1838 247.1059 247.3617 246.7674 244.8578 240.3491 238.3979 238.2022 238.3062 238.0023 239.2248 239.3549 238.6854 238.322 238.1883 237.7952 238.0653 238.1314 237.9763 237.7734 237.971 237.6998 237.5596 237.9249 238.1856 237.9313 237.8655 241.4234 246.0167 247.9109 251.0445 249.8294 246.5548 243.6519 241.0968 241.0337 243.5984 246.7841 249.0878 252.9196 255.2876 258.1945 261.6917 265.2714 267.0994 267.8687 267.9772 268.3333 270.9082 272.8429 274.1481 275.083 276.2508 277.1629 277.3784 278.2685 278.3968 276.1726 274.0805 272.1775 271.0108 270.1983 269.0931 269.3941 270.3232 270.6161 273.2343 274.4618 275.4645 276.3495 277.6638 278.4522 278.8484 278.9193 279.1821 280.5687 283.5281 284.5667 285.5592 286.2056 287.0387 287.3346 287.6242 287.2208 287.025 286.9655 286.2037 286.1411 285.5127 284.0732 282.2457 280.8773 280.6332 280.5801 280.1237 279.5692 279.3574 275.916 272.7876 272.8837 273.7351 275.0876 276.1554 277.5058 278.7189 279.5278 280.3579 280.7379 280.5057 279.3085 274.9273 268.471 267.6097 269.8817 271.9725 272.1183 272.8035 274.783 276.0287 277.358 278.6197 278.7703 -9999 -9999 +-9999 320.049 317.0415 312.754 309.1457 310.8752 312.7082 312.0598 311.4406 312.153 311.1068 309.645 307.5368 305.23 306.4243 307.2638 310.2225 315.2474 315.1486 314.8174 316.9931 317.3517 317.3593 316.784 315.0687 312.8762 310.7849 307.0061 305.8166 304.1554 301.2342 298.6112 297.4341 297.095 297.4068 297.4074 301.9518 306.6398 311.7089 315.5299 318.4845 320.037 320.7758 321.493 321.5701 324.4961 324.4435 324.8224 325.5314 326.076 327.4032 328.5883 330.1723 331.3112 333.6175 334.7785 335.2708 334.7354 334.0779 334.4833 335.1496 336.4214 338.1218 338.788 339.9642 340.2447 338.9593 337.1736 334.5088 334.045 335.0512 338.7932 341.1326 345.804 348.3425 350.8211 353.6413 355.2192 357.2794 358.6595 362.1248 362.9202 363.321 364.2125 362.791 359.6021 357.7905 357.9558 362.724 365.7549 365.991 371.9138 374.7537 376.3896 376.5532 374.0971 370.8375 365.7401 359.8867 356.5153 349.9445 346.7054 343.2396 340.7772 338.3023 335.5437 333.1822 330.4919 327.5252 322.4832 320.6906 318.5292 314.0942 309.4976 307.1297 308.4141 311.4359 311.4375 307.1966 308.275 312.9994 315.8945 318.0032 321.0281 323.8097 326.364 330.0803 335.6147 336.1055 335.2476 333.2662 332.8338 334.1779 335.8669 337.7869 340.3181 343.9453 343.9217 345.4999 347.6898 350.9062 350.4292 347.139 346.4379 344.0119 342.0596 338.6365 335.598 334.6424 333.6916 330.2596 327.925 327.5621 326.5623 322.2788 322.6839 321.9706 321.9258 321.0572 320.6169 320.0016 318.94 317.5829 316.2753 316.7405 316.4317 315.2134 313.8472 311.8954 310.0634 307.7652 304.513 299.6643 297.7176 297.2825 294.7896 293.0121 291.9401 290.9272 289.1361 289.9537 292.525 293.4065 293.0608 292.4494 290.2918 288.7232 290.6219 293.4323 294.8248 295.7979 295.4645 292.9909 290.2928 289.9909 291.1342 292.0968 291.3411 291.6158 293.354 296.804 297.641 297.3335 297.3496 297.2669 296.242 294.1158 292.1551 290.8277 284.8397 279.0432 274.7279 276.181 278.7673 280.0065 280.9027 282.5176 282.9416 282.8754 284.1854 284.138 284.6195 285.1978 285.2003 283.4575 280.324 277.4496 271.0885 270.8531 274.1935 278.074 282.671 285.5188 287.9186 288.8959 286.0947 274.261 268.2636 262.1912 256.0904 248.3792 250.5597 250.0175 252.0913 256.5589 262.8707 264.3137 267.7442 268.15 263.3007 259.6654 256.8943 255.0747 254.3609 252.1143 252.4315 249.1626 251.1732 256.3897 259.1955 260.9178 262.5106 260.3503 263.9529 255.3837 245.6346 244.9451 245.0321 245.5604 245.3366 245.644 246.7767 247.898 251.5404 252.5195 251.8096 253.472 254.7478 256.7114 257.7883 258.7228 258.8962 255.1123 255.1418 255.4374 253.3582 249.886 246.6392 244.4613 244.2647 244.1775 243.101 244.7974 242.4224 243.2586 243.3045 243.533 243.2569 246.8508 249.1185 249.0005 250.4265 252.4218 252.9059 254.1767 254.9372 255.4067 255.87 256.315 256.7378 257.6764 258.2207 258.6764 259.5538 259.9857 260.1832 259.8592 259.3689 257.9937 256.8984 256.6618 256.6389 257.2692 257.927 259.0992 260.3004 260.4515 261.6135 263.8642 264.4429 265.1574 266.0812 267.1844 268.546 267.7065 266.85 264.3163 262.7841 261.4431 260.4656 259.1855 257.7997 256.3177 253.8996 254.9159 257.9437 257.9037 258.5336 258.9084 258.2925 257.6064 256.9417 256.2576 256.4805 255.639 251.3881 251.4988 254.1245 256.1663 257.7184 259.0078 261.6847 264.1039 265.9462 262.7214 258.8026 256.9062 256.4337 255.6941 253.8585 250.7453 248.001 246.4426 242.6816 241.6286 239.7151 240.7104 242.5019 244.7012 246.1838 247.1059 247.3617 246.7674 244.8578 240.3491 238.3979 238.2022 238.3062 238.0023 239.2248 239.3549 238.6854 238.322 238.1883 237.7952 238.0653 238.1314 237.9763 237.7734 237.971 237.6998 237.5596 237.9249 238.1856 237.9313 237.8655 241.4234 246.0167 247.9109 251.0445 249.8294 246.5548 241.58 240.6168 242.9944 244.8699 247.0549 249.891 253.6499 255.7667 259.1745 262.7617 266.323 268.5623 268.7724 268.9281 269.4041 272.4127 273.9852 275.2938 276.7277 277.931 278.6561 279.3967 280.0258 279.7559 277.1929 275.0085 274.104 273.1161 272.2018 270.56 270.8022 271.51 271.4531 272.2654 272.9863 273.8008 274.9925 276.3991 276.9743 278.0574 279.1613 280.0262 280.6047 283.1881 284.5317 286.9642 286.8481 287.7608 288.5708 288.8845 289.0487 288.0249 287.0441 285.2837 284.4274 284.0964 283.0299 281.7064 280.4749 280.2804 279.6545 278.7766 278.6266 277.9216 276.0857 272.0898 271.9285 272.9217 274.0536 275.397 277.4822 278.6389 279.6171 280.2881 280.5222 280.9585 280.0877 278.5546 275.4699 267.21 267.6344 269.2834 270.071 271.9034 272.554 273.6456 275.2566 276.7979 276.7813 -9999 -9999 +-9999 320.7162 319.13 314.1627 308.505 310.0596 309.0469 309.1903 309.3468 310.7943 310.4936 308.5004 306.4096 304.5455 305.4288 307.9208 310.0669 311.8812 315.1486 314.8174 316.9931 317.3517 317.3593 316.784 315.0687 312.8762 310.7849 307.0061 305.8166 304.1554 301.2342 298.6112 297.4341 297.095 297.4068 297.4074 301.9518 306.6398 311.7089 315.5299 318.4845 320.037 320.7758 321.493 321.5701 320.9476 321.4093 323.4756 325.534 326.5318 327.8271 328.7899 329.9588 331.281 334.135 335.411 336.6647 337.6176 336.5342 336.1261 336.839 337.8536 337.6882 337.1517 338.0779 338.4941 334.8272 332.6059 333.5306 340.5357 343.2066 345.3435 346.3916 346.5311 349.4098 351.8084 353.9605 356.1295 358.0759 359.1761 360.5625 359.7773 359.3712 360.6518 359.6202 355.8611 354.1593 358.5105 361.083 361.2039 364.1951 372.3931 374.9363 376.7406 378.3188 377.6278 375.0466 370.0505 364.4044 358.9365 352.8122 348.4226 345.048 342.6551 339.6657 336.7342 333.6022 331.0849 328.8656 325.2623 323.7201 320.6609 316.6924 311.7148 307.5865 305.9266 307.3753 308.3584 305.5421 307.0002 311.3035 315.1618 317.8363 319.686 322.633 324.5049 326.0628 328.2155 329.9779 330.5016 332.3108 333.8251 335.6577 336.5864 338.0567 340.7196 340.6932 338.4719 339.7731 345.9416 348.3689 347.4897 345.7381 343.9136 342.5938 340.4354 339.9871 336.9947 333.8996 331.0241 329.0407 326.7899 324.59 323.6835 321.6126 320.2383 319.3014 319.3718 319.1689 318.7831 318.1221 317.0556 316.1294 314.8893 315.2553 315.0345 314.0583 313.2473 312.1497 310.378 308.3745 305.7089 301.4404 295.3574 294.1333 293.9552 295.7619 296.3787 296.302 291.289 287.1167 290.6747 290.2029 290.2232 289.7188 287.9033 286.2024 289.7817 291.8336 293.4639 294.2157 294.0728 292.6176 288.3367 287.3839 288.6761 288.123 287.8984 291.5668 293.8049 296.801 296.3509 295.5527 295.3265 296.1782 296.0637 294.508 291.8886 290.0466 284.2101 278.6668 274.26 274.1275 276.8145 278.3 278.8678 280.4904 281.3238 281.6463 282.5154 282.5849 282.9323 283.8904 283.6926 282.0511 279.9739 276.7575 271.3313 269.0262 270.6478 275.0823 279.4818 282.788 285.4939 287.1255 284.7734 273.347 268.0123 261.2368 253.7639 248.2023 253.8388 257.6257 259.3658 261.2422 264.7704 267.6709 270.8719 272.572 270.7677 267.0991 263.6969 260.9172 259.1284 254.3992 255.0614 252.7415 250.9834 256.5054 260.2043 262.3831 264.271 264.4787 266.8657 260.1527 252.5106 244.7666 244.8619 245.1156 244.6856 245.1095 244.8726 246.0714 248.7119 250.5646 251.4409 253.3748 254.6915 255.8419 256.887 257.7503 257.905 254.2004 254.343 254.958 251.171 244.7302 243.9203 243.891 243.6619 243.3613 242.9822 243.0271 244.4828 243.1087 242.8266 242.9917 244.4666 246.8733 248.8168 251.1707 252.9694 254.7154 256.4246 257.7608 258.3636 258.7046 258.6717 258.8055 259.4287 259.8184 260.1892 260.7505 261.4924 262.0979 262.3413 262.4643 261.614 260.3463 259.8355 259.4232 258.8296 258.3502 258.6945 259.442 260.0591 261.4211 262.3365 263.6234 264.8868 265.8327 266.5971 267.6343 268.5348 267.3869 266.2482 263.2187 262.381 261.0561 259.8977 259.1855 257.7997 256.3177 253.8996 254.9159 257.9437 257.9037 258.5336 258.9084 258.2925 257.6064 256.9417 256.2576 256.4805 254.0984 251.3881 251.4988 254.1245 256.1663 257.7184 259.0078 261.6847 264.1039 265.9462 262.7214 258.8026 256.9062 256.4337 255.6941 253.8585 250.7453 248.001 246.4426 242.6816 241.6286 239.6855 238.8438 238.6757 239.4701 242.5186 245.7932 246.1027 246.7149 245.9764 243.5651 238.8378 237.7511 237.4125 237.548 239.1391 239.2569 238.7878 238.4126 237.8228 236.8754 237.8886 238.5654 238.024 237.4395 237.6695 237.83 237.948 237.4541 237.6165 237.9418 237.9779 241.3424 244.7348 247.0034 249.4063 247.3846 242.9054 240.3219 242.0466 244.4304 246.5302 247.7409 250.0407 254.057 256.1595 259.9425 263.3821 266.1016 266.9355 266.3476 266.4955 268.0644 271.4431 273.1884 274.9036 276.6875 278.468 279.3834 280.2444 280.8399 280.5106 278.3721 277.3175 276.8086 275.2052 273.9231 272.6374 272.7233 273.3844 273.9544 273.4878 273.8051 273.9842 274.8915 275.6647 276.6627 277.6843 278.9113 280.0244 281.9751 283.6304 284.8381 286.4778 287.0392 288.245 289.2181 289.7363 289.3566 287.846 284.9482 283.8308 282.6605 281.8939 281.8702 281.0848 280.5284 279.1183 278.3361 277.6943 277.3815 276.0318 273.8719 271.4328 271.3687 272.5044 273.8795 275.4384 278.0348 278.8359 279.5042 279.86 280.2096 281.2554 281.4589 280.8477 279.4655 268.0824 266.907 266.6902 268.3641 268.9584 269.6977 270.6662 272.3249 274.5865 275.1761 -9999 -9999 +-9999 320.7162 319.13 314.1627 308.505 310.0596 309.0469 309.1903 309.3468 310.7943 310.4936 308.5004 306.4096 304.5455 305.4288 307.9208 310.0669 311.8812 314.3833 315.4651 317.3316 318.1058 318.3882 317.7198 316.3817 314.4534 312.2556 306.4177 304.1986 303.0243 300.7895 299.4355 297.9039 297.2469 297.0318 297.3606 300.4287 306.7952 311.8459 315.0218 316.7183 316.1006 315.9296 315.8159 316.4067 322.3218 323.3276 325.1247 327.2567 328.4034 329.1599 330.3673 330.917 332.3123 334.3578 335.3954 336.7278 337.815 338.0331 337.5037 337.2985 337.5461 336.6596 335.0957 335.2386 333.6826 330.6913 331.2587 338.0189 344.9749 348.263 348.4439 349.6935 349.321 350.5576 352.5979 354.6241 356.1999 357.3663 357.4442 358.5814 357.7625 356.0349 356.4285 353.9866 351.9944 352.1442 355.8777 358.2293 362.5332 365.8259 371.0253 372.8711 374.9777 377.3523 378.6968 377.0221 373.2715 367.4389 361.9431 352.9964 349.503 346.3128 343.3531 340.0776 337.1849 334.3164 332.2033 330.1655 325.172 322.97 320.648 317.7263 313.3853 309.4287 306.3019 304.8934 305.2205 304.9079 306.0078 309.7006 313.6818 316.411 319.0119 320.6525 320.247 321.114 326.981 329.8947 333.8092 336.2498 335.0977 334.2064 333.8347 335.5848 339.1496 336.2737 335.0371 339.5352 343.141 343.6596 343.6863 343.5749 340.704 340.0235 338.9753 338.8511 336.4318 333.3806 330.7443 327.545 325.4572 324.1004 321.988 318.8302 318.1614 317.2402 316.9311 317.3123 317.1114 316.345 315.2914 314.7144 312.6614 312.6845 312.6935 312.3485 312.0615 311.3329 310.3129 308.9072 307.157 304.9144 298.571 300.1457 299.6399 299.1777 298.3621 296.9017 293.3973 287.6239 285.7544 286.1053 285.5685 284.9832 284.1134 284.6621 288.0857 290.7585 292.3817 293.0803 293.0149 291.7979 288.2261 284.8405 284.1286 284.2216 287.9158 291.4511 293.081 296.0979 294.6814 293.344 292.9343 294.2944 294.2821 294.1717 291.8164 288.7612 282.8618 279.5258 272.6727 271.9472 274.2331 276.4417 276.6588 278.0095 279.2598 280.6261 280.9601 281.0699 281.6463 282.3008 282.0257 280.5039 278.4916 276.1351 270.7686 268.1123 268.0175 271.9668 276.2881 279.9838 282.7894 283.9198 282.2478 270.5435 265.1794 258.3423 250.8114 250.2737 256.4221 261.0667 265.185 267.5081 267.587 270.294 273.3251 275.5851 276.4551 273.2638 269.4204 265.9638 262.8355 258.8207 257.9538 255.6701 253.1914 256.5602 260.7338 263.5812 265.8627 267.7051 267.6955 264.7898 259.4796 250.6477 244.7577 245.1102 245.2786 244.4003 244.973 244.7529 246.8005 247.8775 249.513 251.7993 253.0565 254.5235 256.0055 256.6725 256.5785 253.2826 253.5735 254.6541 248.7179 243.343 243.2247 243.3215 243.2031 242.8563 242.2817 243.3258 244.4685 245.2368 247.7541 249.7158 249.4735 249.4684 250.2987 252.6074 254.3661 256.4044 258.2749 259.7481 260.7374 258.7046 258.6717 258.8055 259.4287 259.8184 260.1892 260.7505 261.4924 262.0979 262.3413 262.4643 261.614 260.3463 259.8355 259.4232 258.8296 258.3502 258.6945 259.442 260.0591 261.4211 262.3365 263.6234 264.8868 265.8327 266.5971 267.6343 268.5348 267.3869 266.2482 263.2187 262.381 261.0561 259.8977 258.6588 257.0394 254.9911 255.7603 258.6834 260.0505 260.2583 260.4509 260.3732 260.6794 260.4433 259.8793 259.3151 259.5687 257.1842 254.9625 251.3265 254.7462 256.6894 258.9664 260.4996 262.5408 264.9703 267.1205 264.8445 261.5928 259.5613 258.608 257.2757 254.6504 252.2678 250.5612 248.9056 245.6439 244.8908 242.7702 238.9248 238.8579 238.0425 237.9316 239.7074 239.5169 245.0526 243.9134 240.9894 238.0336 236.9836 237.1404 237.6873 238.7745 238.854 238.1272 238.3584 239.4676 241.6466 243.4039 238.3755 238.3464 238.0969 238.042 237.5175 237.741 237.6408 237.724 238.0703 238.2683 240.2885 243.3943 245.7677 246.0127 242.7661 240.143 240.181 243.7169 244.0587 246.2108 247.4988 249.9681 253.9736 256.0549 259.282 261.6161 262.9159 263.0424 262.2982 264.6386 266.2242 269.218 271.3491 273.6818 275.847 277.7171 278.8693 279.7719 280.4653 280.5653 280.1702 279.3826 278.1187 276.992 275.523 273.7093 274.0332 275.4572 276.0276 276.7786 276.3392 275.7045 275.4826 275.7854 276.8412 278.2225 279.4122 280.5686 283.0097 284.3004 285.6443 286.9518 287.8108 288.8874 289.7327 290.0361 288.783 287.908 284.4669 282.6713 281.2749 280.3922 280.2751 280.3802 279.5818 278.5808 278.0795 276.9167 276.4612 274.8094 272.3871 271.3557 270.7393 272.0344 273.8444 275.6769 278.2502 278.5272 278.9376 279.4335 280.2213 281.2925 282.2554 281.4253 280.2995 272.1369 263.7028 263.9387 264.0606 265.7196 266.2079 267.5583 269.9467 272.0179 273.1657 -9999 -9999 +-9999 320.18 317.8357 315.6918 312.8037 308.7464 305.6486 305.5923 306.7525 309.5407 308.9508 306.7704 304.5721 303.5843 305.7691 308.7658 310.9947 313.7477 316.3398 317.6967 318.4886 319.2765 319.4114 318.2818 316.702 314.7231 312.959 307.943 304.1608 301.2502 299.6267 298.8926 298.1487 297.1541 296.1291 297.218 300.2947 305.9322 309.899 311.1953 310.4697 310.7711 313.2563 317.1618 319.9862 324.5035 326.1815 327.3817 328.4117 329.6904 330.2519 331.0895 331.878 332.8565 334.6983 335.711 336.0424 336.8549 336.7718 336.4877 335.3859 335.0253 334.6758 332.3813 330.6654 328.7654 329.4133 335.8647 341.5415 347.1922 349.1959 350.2684 351.063 350.396 350.7642 351.9863 353.5436 354.7309 355.1518 355.2785 356.6382 355.2182 352.9594 352.2242 351.8814 351.4056 351.7768 355.3708 359.8391 362.2056 364.0859 367.5094 370.6923 373.5429 375.7047 377.6249 377.5939 374.3291 368.7163 362.6441 353.9217 350.0482 346.5783 343.5504 340.8756 337.5391 335.0156 332.7708 330.7386 325.3673 322.9961 320.4647 317.8715 314.5925 310.9725 307.2521 305.3868 304.2581 305.1877 305.5437 309.1404 313.2158 316.3425 317.7485 316.8977 319.3895 322.616 328.545 332.5616 336.2975 337.8692 334.2896 329.9771 329.5649 332.4913 334.2764 331.7496 335.175 338.0668 338.9477 340.1667 341.7945 341.167 339.4207 336.5641 336.791 337.8844 335.9796 333.2368 330.6469 327.3312 323.9944 322.065 320.8322 317.4568 316.9576 315.0885 314.5938 315.137 314.734 314.5235 313.9442 313.4693 311.6443 310.5037 310.5229 310.2549 310.29 309.8183 309.4721 308.3979 307.4884 306.2748 304.5301 303.7985 302.789 301.3152 299.5284 297.2965 294.5235 290.5676 287.3459 283.4915 282.7444 283.9355 282.9142 281.6501 284.139 288.4759 290.0789 290.5102 291.7424 290.5529 287.2467 283.0258 280.6411 284.814 288.4896 291.335 292.5931 294.4063 292.2201 290.9799 290.6185 291.5152 293.3052 294.3369 292.7442 288.8546 281.8725 278.7704 274.9735 266.929 270.5342 274.0167 275.3141 276.4734 277.2911 279.5511 279.5594 279.9927 280.7957 280.7586 280.5901 278.7415 276.3954 274.835 270.2053 267.7481 266.8471 268.8677 273.0655 277.1884 280.0424 280.3333 279.0391 266.7868 261.8621 254.5315 248.8685 252.1167 258.8572 263.6571 268.0194 271.9533 272.2396 271.5539 275.2805 277.5652 279.3511 278.9825 276.1896 272.9176 266.3521 263.1567 262.1267 258.7785 255.6577 256.3028 261.3684 264.884 267.6536 268.9121 270.6345 268.0588 262.8212 256.2915 248.632 244.7928 244.9441 245.0873 243.9336 244.9296 246.8005 247.8775 249.513 251.7993 253.0565 254.5235 256.0055 256.6725 256.5785 253.2826 253.5735 254.6541 248.7179 243.343 243.2247 243.3215 243.2031 242.8563 242.2817 243.3258 244.4685 245.2368 247.7541 249.7158 249.4735 249.4684 250.2987 252.6074 254.3661 256.4044 258.2749 259.7481 260.7374 261.4459 261.4539 261.6796 261.7504 262.018 262.7348 263.3307 263.8678 264.4085 264.459 264.8569 264.5954 263.4126 263.0137 262.7944 262.789 262.1068 261.8161 261.9567 261.493 261.6884 263.0514 264.6087 265.8264 266.5172 266.9408 267.8961 268.7228 267.3561 265.6942 262.8866 262.0647 261.7752 259.5177 258.1585 257.0407 256.4469 257.3789 259.9017 261.9692 262.3354 262.5238 262.72 263.297 262.485 262.5546 262.7192 263.1497 259.3768 256.9521 252.5624 255.7279 257.7801 259.8669 261.8905 263.166 265.3502 267.352 266.4274 263.5419 261.8411 260.3162 258.049 255.2533 253.5537 252.3523 251.6192 248.2168 246.9255 245.928 244.7503 241.9675 240.1844 239.2481 237.8904 237.828 241.492 239.6322 238.8309 237.2262 237.1752 237.3018 237.8013 238.0725 238.7516 238.1559 239.2501 241.876 245.4375 247.6349 241.8881 238.0081 237.7604 237.8118 238.0912 238.0011 237.5894 238.0441 238.1048 238.236 238.7259 240.8941 242.4605 240.513 239.806 240.0599 241.5328 243.7594 243.9344 244.9034 246.4734 249.6321 253.0229 254.3488 255.5508 256.5669 258.0662 259.1014 260.5754 261.7777 262.4912 267.7968 270.7551 272.6801 274.4325 276.1053 277.4839 278.5598 279.0837 279.3415 281.0005 280.685 279.3428 278.125 276.6868 275.6292 275.852 276.4532 277.4762 278.9249 278.3037 277.0978 276.2771 276.291 277.3402 278.6365 279.9557 280.8778 283.4769 284.7974 286.2723 287.6372 288.7959 289.6455 290.4881 290.2675 289.0104 287.9973 283.2429 281.7097 280.4445 279.3461 278.9464 279.1969 279.2912 277.964 277.1596 276.3048 275.0661 273.3062 271.9974 271.304 270.5948 271.9671 273.7231 275.7875 277.2096 277.5085 278.0293 278.7886 279.7263 280.752 280.1821 280.2635 278.967 273.248 266.1169 260.0284 260.7622 262.3201 263.334 265.0701 268.3233 269.7314 271.0533 -9999 -9999 +-9999 318.7233 317.7807 317.0216 314.2975 310.0257 307.3432 305.0399 304.7834 307.4425 307.7099 305.9265 303.4049 302.3324 306.1818 309.7735 312.2603 314.597 317.9122 319.0492 319.9263 320.5092 320.2168 318.9278 317.4413 315.9611 314.5785 309.2248 305.6563 300.7691 299.4776 298.457 297.7769 297.1832 297.4755 297.5943 300.0326 302.4154 304.2267 306.214 308.3397 310.9417 313.7404 317.2128 319.83 324.1265 326.4116 328.19 329.6004 329.981 330.5328 330.7924 331.066 332.2911 334.0305 334.4844 335.1235 335.4395 335.6431 335.1961 334.049 333.2002 332.6117 328.9246 326.4966 329.1696 334.3832 338.4074 342.4095 346.4241 347.8513 349.3003 350.3049 349.3284 348.8191 350.3915 352.1513 352.8385 352.5843 353.9142 354.7073 353.8166 349.5924 348.2754 351.8872 349.6441 352.1959 354.6031 356.995 359.5406 362.4968 367.1388 370.8463 372.6473 373.5327 375.6197 376.6571 373.5553 368.8415 362.8038 354.3578 350.7461 347.2236 343.7551 340.2672 337.1253 334.3786 331.9732 330.1976 327.1873 325.3065 323.4279 320.1254 316.6834 313.2962 309.5698 306.1254 304.643 303.2238 305.5438 309.9994 314.4753 316.1663 315.3368 315.5119 319.993 321.8437 329.0508 332.5198 335.0207 335.8841 331.9274 328.169 325.056 326.2454 329.0656 329.9559 333.6697 334.6477 336.526 338.8903 340.1341 338.6614 337.3479 335.0762 335.0486 337.3667 336.3734 333.8559 331.1388 327.5177 324.4005 321.2481 320.197 316.4381 314.6967 313.3769 312.5628 312.6608 312.8533 312.7819 312.7866 312.5574 311.3582 309.5363 308.0635 307.8869 307.1189 307.0118 308.1559 308.033 307.2667 306.8471 306.1218 305.2304 303.8141 302.1921 299.8887 297.4085 294.4456 290.8651 288.5074 288.0428 288.6513 290.0214 290.0998 284.9092 279.9926 284.5928 287.072 287.6513 290.7264 289.8057 287.0546 282.6596 278.0244 283.8242 288.8013 293.0941 294.1743 293.5682 291.3609 288.0204 287.6457 290.1161 292.6962 293.6335 292.8676 289.252 281.1116 277.7994 273.5536 268.7256 268.1017 272.0445 273.5953 275.1447 276.031 277.7173 278.3228 279.0855 279.234 279.2414 278.9422 277.8116 275.5222 273.5782 270.2569 267.4464 265.8648 266.2238 269.8893 274.1398 276.6377 276.3988 274.7347 261.7891 256.3672 251.6824 249.1408 254.3767 258.8572 263.6571 268.0194 271.9533 272.2396 271.5539 275.2805 277.5652 279.3511 278.9825 276.1896 272.9176 266.3521 263.1567 262.1267 258.7785 255.6577 256.3028 261.3684 264.884 267.6536 268.9121 270.6345 268.0588 262.8212 256.2915 248.632 244.7928 244.9441 245.0873 243.9336 244.9296 245.3408 246.1852 248.5558 250.7897 251.8459 253.5399 255.1682 255.7946 255.2243 252.3521 253.002 254.5254 250.6823 244.0552 244.0435 245.6431 244.2292 242.7333 243.212 243.2002 243.284 245.8389 247.8977 249.8274 251.0571 251.7576 252.5801 255.2896 256.3084 257.4633 259.0933 260.5979 262.0586 263.4735 264.5937 264.5301 263.6521 264.2257 264.8869 265.491 266.1731 266.8164 266.9705 266.2727 266.9951 266.6496 266.9398 267.2893 267.6358 267.5803 266.8529 265.9438 265.8188 265.3698 265.1603 266.2132 267.6769 267.805 268.343 268.7075 269.0016 267.5091 266.0081 263.6124 262.6986 261.3282 259.3474 258.1881 258.1251 258.0051 259.0211 261.836 263.7159 264.1412 264.0489 264.5438 265.3332 264.9503 265.5852 266.1984 265.7691 260.7063 258.5466 255.5392 257.6808 259.2997 260.4434 262.5294 264.3172 266.0416 268.7986 266.8543 264.9557 263.6072 261.0836 258.6241 257.684 256.8039 254.9594 253.078 249.863 248.7359 247.3912 245.9768 243.5157 241.9123 241.1453 239.9938 237.8896 238.1275 238.563 237.4602 237.2334 237.192 237.416 237.8346 238.5759 238.8183 237.9992 240.2307 244.1834 247.411 250.4205 247.5627 237.8755 237.5765 237.7854 238.0515 238.15 237.9507 237.9972 237.968 238.3573 238.4561 239.0888 239.1876 239.4255 239.1954 240.5747 241.3759 242.2049 242.9146 244.5906 246.3585 247.9174 250.1191 251.3637 254.4861 253.9132 254.4705 257.5786 259.5829 260.4868 262.9781 265.2389 267.5502 269.7993 272.5388 274.1837 275.5889 277.0208 277.2967 278.8084 280.8766 280.2993 279.3077 278.4344 277.3566 276.6917 276.7079 277.0089 277.9188 279.0679 278.6873 277.951 277.355 277.2082 277.8145 278.8904 279.6806 280.9599 283.377 284.4106 286.1867 287.7373 288.898 289.879 290.1406 289.686 288.5219 287.4301 282.2262 280.5374 278.7689 278.1553 278.0435 277.9454 278.3428 277.9086 276.7878 275.5439 273.218 272.0915 271.4814 271.1924 270.9988 271.8353 273.6198 275.4276 276.1658 276.8787 277.6767 278.5269 279.1189 279.3591 279.1884 278.0925 276.5479 272.809 267.171 262.4542 259.0326 259.8942 261.2878 264.3043 266.794 267.3685 269.1265 -9999 -9999 +-9999 319.239 318.3179 316.433 313.7528 311.5996 309.4455 307.2184 303.94 304.6656 305.8564 304.8076 301.8323 303.1774 306.7758 309.2106 311.8283 314.4561 318.1457 319.2366 319.7733 320.4419 320.3692 319.5383 318.5967 317.6582 316.5599 310.9185 306.7883 302.6949 299.9738 298.1331 296.8351 296.7894 296.6257 297.2245 299.4579 301.1026 305.2957 307.9253 307.8207 309.3721 311.1917 314.6249 317.2361 323.2472 325.5624 327.3622 328.92 329.0861 329.4269 330.1154 330.6205 331.7055 333.0991 333.6719 334.2761 334.0931 333.8206 333.6608 332.2052 331.2634 329.8433 324.6726 327.3102 331.8685 334.756 336.9862 340.2237 343.1043 345.571 348.378 349.0733 347.7944 347.1295 348.5227 349.8713 350.8919 352.3853 352.5836 352.916 352.0284 345.6793 347.0797 346.893 351.5633 353.533 354.7304 356.5636 359.109 360.9897 365.5733 368.627 370.451 372.4444 375.0131 375.9012 373.0293 368.1339 362.5352 355.125 351.2317 347.4993 343.3815 339.7464 336.1705 332.7211 330.9295 329.1806 327.1415 324.7349 323.8373 321.6056 318.8885 315.8015 312.1577 308.6141 304.3925 302.5681 305.0949 310.1873 313.3022 312.5935 313.5917 316.5715 319.0139 321.0349 328.049 330.5375 332.3899 332.5583 328.9012 325.0428 321.7407 322.5405 324.6537 328.8386 329.9979 331.6678 336.1951 339.8481 339.0643 336.2762 334.1211 332.0638 335.5198 336.417 335.7034 333.7675 331.1174 328.2248 325.1038 323.13 320.5302 315.761 313.3646 312.0357 310.7781 310.8087 310.9055 311.5845 311.5719 311.5948 309.825 308.5351 306.5268 305.1474 303.7678 304.1998 306.2639 307.028 306.762 306.0305 305.9548 305.0184 303.8867 302.1862 300.058 297.6758 296.2987 293.5372 291.1343 292.2394 292.064 292.1898 291.3115 287.9225 279.8699 280.2686 283.5793 285.4835 288.8909 288.8282 286.2577 281.5897 276.0586 283.0435 287.6027 290.8747 292.1941 292.0446 291.3933 289.1927 285.6826 287.1331 289.826 291.036 291.0203 288.2675 281.1116 277.7994 273.5536 268.7256 268.1017 272.0445 273.5953 275.1447 276.031 277.7173 278.3228 279.0855 279.234 279.2414 278.9422 277.8116 275.5222 273.5782 270.2569 267.4464 265.8648 266.2238 269.8893 274.1398 276.6377 276.3988 274.7347 261.7891 256.3672 251.6824 249.1408 254.3767 260.3026 264.9362 269.0223 272.709 275.7521 275.7939 276.1843 279.117 281.4504 283.0533 281.6509 277.4541 271.7609 266.5842 265.1819 262.0805 257.9626 257.5154 262.2928 265.8457 268.0951 270.2253 271.9121 269.5123 262.7917 257.1254 252.4256 245.847 244.7767 244.7246 244.8117 244.1525 244.5833 245.3518 247.5559 249.626 250.9398 252.1306 254.3004 254.6771 254.4267 251.4232 252.1943 254.7309 254.4601 252.2287 250.4888 247.733 244.2271 243.1488 243.2289 243.2624 243.0992 243.3197 246.6765 247.6234 249.7479 251.243 253.1047 256.1084 257.873 259.0724 260.4987 261.4657 262.7515 264.3806 265.8307 266.2938 265.8508 266.3434 267.1022 267.9028 268.5837 269.1005 269.3495 268.6492 268.8695 270.0577 270.8114 271.9776 272.9385 273.1808 272.4171 270.9876 270.0187 269.1028 265.9213 266.9564 268.5075 269.4626 269.9634 270.0744 269.5531 268.2747 266.5518 265.033 262.4656 260.1715 259.3409 259.0735 259.162 259.5348 260.3589 262.9366 265.2881 265.6438 265.5604 266.1436 267.133 267.5871 268.5059 268.8005 267.4319 262.1557 259.6551 257.2654 257.5369 259.9433 261.57 263.4493 265.4232 267.225 269.2699 268.2198 265.9883 264.6097 263.0158 262.0573 260.0908 258.4301 256.8563 254.6288 250.4887 248.916 247.9053 246.2961 244.0022 242.5819 243.4245 241.2176 237.923 238.0536 237.7509 237.98 237.56 237.5192 238.3149 238.9723 236.2488 236.0242 239.506 242.0387 245.6978 249.289 252.2128 249.7833 237.4403 237.2887 238.224 238.1109 238.0882 238.0938 238.062 238.0799 238.2499 238.3306 238.4864 238.6834 238.7915 242.3349 243.2369 242.9144 243.1526 243.0541 243.466 244.8532 246.5082 251.6187 256.2509 259.4277 261.3734 261.5598 260.9223 261.424 264.3361 266.3355 269.3761 269.3087 268.6556 269.8824 271.3981 273.3235 274.8457 276.6145 278.7017 280.0507 279.3406 278.2603 277.6357 276.5707 276.2823 276.2056 276.7074 277.1579 277.5312 277.7893 277.834 277.9253 277.7855 277.9651 278.6449 279.5293 280.5702 282.5629 284.1451 285.8388 287.3807 288.6616 289.2545 289.1633 288.406 287.8484 284.177 281.7493 279.1671 277.6455 277.0385 276.6183 275.9677 275.7399 276.7496 276.5208 274.62 273.9296 271.9293 270.9667 270.9145 270.8137 271.6345 273.3831 275.0998 276.2217 277.206 278.1448 278.597 278.5287 278.1807 277.1171 276.0105 274.5374 271.289 268.6713 263.8543 259.8422 258.4812 258.8317 262.1402 264.3604 265.9102 267.777 -9999 -9999 +-9999 318.0161 317.2293 316.3396 314.4403 312.876 312.4583 311.2235 307.7703 302.0417 302.2987 302.3088 300.9416 303.2024 306.5313 309.3718 312.0377 313.9264 317.3751 318.0973 318.4458 318.9948 319.1667 319.1734 318.9251 318.4211 317.4908 310.8494 306.5453 303.359 301.1719 298.2679 296.3491 294.952 296.4159 297.1636 306.8789 311.3704 313.4089 314.7732 315.1398 314.7421 313.6967 314.4989 317.2868 321.7481 324.0451 325.9813 327.0179 327.7954 328.1135 328.949 330.1153 331.0357 332.437 332.6536 332.6405 332.7157 332.1732 331.145 329.9437 328.8827 327.217 325.2602 329.0999 332.6345 335.7888 338.895 340.7843 343.0153 345.0053 346.7751 348.2225 346.3123 345.5584 347.234 348.2585 350.2888 351.2461 350.9077 350.6078 344.8886 341.3986 345.0956 347.2205 350.0233 351.9168 353.9486 356.8482 359.4993 361.98 366.179 368.2137 370.2339 371.4523 372.9865 373.9182 371.897 368.1764 363.794 355.0811 350.8202 346.8142 343.0897 339.4592 336.3533 333.3224 330.7852 328.2735 324.5769 323.7224 322.0742 320.4888 318.6495 316.9767 314.3361 310.5302 304.4818 302.899 304.5122 308.3015 309.5444 311.9396 315.6525 317.6372 319.0956 320.6272 324.7986 327.6057 329.0222 329.5926 326.2006 321.5507 320.3056 321.1503 322.5995 327.4208 330.9429 333.9611 335.9974 337.1971 337.5134 334.8143 330.532 329.2538 334.5991 334.9054 334.3703 333.4255 331.8833 329.2225 325.6305 323.5345 321.1342 315.0399 312.6774 310.2976 309.4817 308.5836 308.8509 309.7006 310.9228 310.6216 308.4177 306.5172 304.7618 303.4636 301.984 302.2496 304.7291 305.9215 305.9933 305.3255 304.9536 304.5265 303.4816 302.5018 300.9661 299.8413 296.2987 293.5372 291.1343 292.2394 292.064 292.1898 291.3115 287.9225 279.8699 280.2686 283.5793 285.4835 288.8909 288.8282 286.2577 281.5897 276.0586 283.0435 287.6027 290.8747 292.1941 292.0446 291.3933 289.1927 285.6826 287.1331 289.826 291.036 291.0203 288.2675 279.3199 276.7027 273.6096 268.6675 266.6378 269.9134 272.4292 274.4956 274.9417 276.3576 277.3244 277.5491 277.757 277.7621 277.4464 276.3005 274.5382 272.1895 268.2846 266.8743 265.6377 264.4227 266.4303 270.3232 272.6287 271.9973 269.5586 255.1966 249.9453 251.0647 250.9596 257.0622 261.002 266.3563 271.3533 274.456 278.7158 278.8896 279.3011 280.246 281.9162 284.4802 284.7688 281.0233 276.384 269.7779 268.147 265.2914 260.6193 259.095 261.9529 265.791 267.8378 270.4243 272.6213 271.6985 267.5426 263.7995 257.9451 251.087 244.6077 244.6039 244.5958 243.8739 244.7265 244.3076 244.9346 247.0736 248.6589 250.8913 252.2103 252.2928 252.5287 250.2382 251.5019 253.2062 252.4057 251.0151 248.1636 244.0725 242.6843 243.2574 243.4046 243.2922 242.6866 243.3476 244.768 247.2537 248.414 250.4943 252.2621 256.3022 257.8823 258.9217 260.4917 261.6111 263.0479 264.651 266.0981 267.2306 268.0829 268.549 269.2484 270.0285 270.9089 271.7172 271.6339 270.9974 270.5278 272.9799 274.3349 276.4657 277.5543 277.7355 277.5111 276.1228 274.3287 272.5505 269.047 267.6028 267.5756 268.8106 269.8357 270.2578 270.1501 268.8513 267.8093 266.3656 263.5532 260.8004 260.0901 259.9829 260.2 260.6996 261.3825 263.7516 266.7254 267.2539 267.1753 267.4707 268.4509 269.8684 270.8178 270.7791 268.7977 263.1658 260.8837 258.935 258.6307 260.9214 263.156 265.119 266.2056 268.0622 270.3392 268.8379 266.8101 265.7776 264.7432 263.4772 261.4961 260.4807 258.1216 255.3577 250.988 249.4621 248.0606 246.6474 245.3601 245.1528 245.6829 241.4286 237.8632 237.8042 237.6591 237.6583 237.9941 238.8462 236.0211 236.0777 239.3216 238.5932 240.7699 243.8828 246.9947 249.9825 252.5867 252.7731 239.7755 237.3746 238.1173 237.97 238.2641 238.1435 238.2923 238.3349 238.4169 238.4843 238.5188 238.7057 241.9657 244.1181 244.8492 245.1082 245.088 246.0342 245.7126 247.1565 250.8885 256.1392 259.4508 261.5311 264.1979 264.778 264.6474 265.2294 265.7078 267.4966 270.7743 271.8073 272.9532 273.8308 274.1484 274.6537 275.8798 277.1707 278.3954 278.7636 278.0077 276.7116 276.149 275.1394 274.6955 275.2886 275.5629 275.3838 276.6519 277.084 277.3302 277.8188 277.89 277.4016 277.6852 277.7654 278.7677 281.5817 283.0506 284.7097 286.4404 287.821 288.1857 287.9317 286.8722 286.8174 283.6355 281.3561 278.5564 276.828 275.7927 275.5767 273.9911 273.5016 272.8531 274.9421 273.8042 273.0847 272.0774 270.87 270.7574 270.6766 271.1732 272.8395 274.6047 276.4175 277.5241 278.4889 278.3699 277.8962 276.473 274.9899 273.9748 273.0412 270.3873 268.6957 265.5394 261.4014 256.6171 257.3968 259.5061 262.0626 263.3412 265.9034 -9999 -9999 +-9999 316.9357 315.8163 315.2299 314.0924 313.8271 313.919 313.0876 309.8028 302.3178 300.8495 300.4279 301.1796 303.8909 305.9262 307.9764 310.9012 312.5404 315.7795 316.4088 317.2372 317.4657 317.7677 317.9139 317.5505 317.6387 316.5195 311.3455 306.8164 303.1931 300.728 297.3843 295.5527 296.1805 296.5299 298.5394 311.8449 315.2731 317.2007 318.2518 319.1853 319.4608 319.3922 320.3064 319.0696 320.6824 322.7661 324.5552 325.2919 326.0549 327.4396 328.7234 329.9046 330.434 331.5175 331.6249 332.3126 331.6066 330.3026 329.1446 327.8721 326.7658 324.1807 325.6224 330.9091 333.3995 335.829 338.4999 341.2523 342.9778 343.9822 344.4732 346.1294 344.0547 344.6251 346.4212 347.9536 349.6892 349.7824 348.5829 347.3012 339.6652 342.844 345.1728 346.7762 348.4224 351.2919 354.5367 357.4977 360.1129 362.5463 366.4608 367.4871 369.0978 369.9355 370.9805 371.5 369.7076 367.0555 363.0114 353.9465 350.786 347.2042 343.2911 339.4458 336.5483 333.7016 331.1857 328.5188 323.49 321.6679 320.1086 318.6171 317.314 315.4877 314.037 312.407 308.0106 301.1502 304.2194 306.7016 310.1445 313.9266 316.0515 316.9535 317.2238 318.4608 321.6109 324.0893 325.4921 326.3302 323.5186 317.8907 317.5182 321.8286 324.2579 328.4754 330.7935 333.1519 332.9789 334.1128 335.469 334.152 330.3988 328.4396 333.6199 333.4419 332.7472 332.3893 330.8244 329.2225 325.6305 323.5345 321.1342 315.0399 312.6774 310.2976 309.4817 308.5836 308.8509 309.7006 310.9228 310.6216 308.4177 306.5172 304.7618 303.4636 301.984 302.2496 304.7291 305.9215 305.9933 305.3255 304.9536 304.5265 303.4816 302.5018 300.9661 299.8413 297.888 296.313 294.8493 295.2344 294.2415 292.4539 291.1061 287.7083 282.7482 278.4208 281.1361 283.5721 287.0821 287.4298 284.4931 279.4411 275.2923 281.7998 285.0804 288.3297 290.1248 289.199 289.668 288.9017 285.3529 283.7047 284.9722 287.2001 287.3902 285.3705 276.608 273.8333 270.5753 264.5389 266.4741 269.9901 271.0729 272.5406 273.3238 275.0291 275.9593 276.5782 276.9299 276.0919 275.4603 274.934 273.007 270.2458 266.2899 265.7511 265.4108 263.7559 263.6949 265.8027 267.9203 267.2915 263.9184 251.22 251.4665 251.5372 256.9216 264.8213 267.5827 268.1657 272.7433 277.1033 281.1182 281.6065 281.2021 282.0705 283.14 285.3412 286.8642 284.8204 280.5043 273.0719 270.5381 268.6772 265.4117 262.0715 262.9008 266.1762 268.4536 270.6727 272.9182 272.9021 271.4006 266.3551 260.3077 254.4732 249.787 244.6149 244.572 244.5793 243.4869 243.9992 244.3248 244.0605 245.1519 248.1038 247.9684 247.3279 248.2388 248.0811 249.385 250.4537 248.0089 245.1512 243.08 242.4343 242.6234 242.0567 243.1589 243.4854 242.4856 242.6799 245.126 247.0163 248.4427 250.4204 251.0665 254.9116 256.2988 257.7133 258.9569 260.546 262.3635 264.38 266.4569 268.1882 270.2568 270.9598 271.4389 272.1393 272.8959 273.4882 273.8233 273.521 272.4211 274.6491 276.2015 278.0316 279.3136 279.9666 280.5944 280.1497 277.3791 275.6146 271.9449 269.5218 268.7993 268.9955 269.46 270.0562 270.7515 270.0681 269.1994 266.8388 264.388 261.915 261.1831 261.1446 261.8745 262.5682 263.2129 264.7134 267.9299 268.5785 269.1397 269.1915 270.2683 271.2299 272.3812 271.961 269.8043 264.9239 262.7836 260.6598 260.284 262.7944 264.8586 267.6033 269.4265 270.1407 271.1027 269.4303 268.5893 267.588 266.1624 264.7159 263.0762 261.2706 258.5616 253.7096 251.3961 249.3829 247.9264 246.5426 245.9257 246.7255 240.4768 237.9094 238.2893 238.1935 238.4198 238.7668 236.295 235.9099 238.8359 238.7952 238.8109 238.8448 241.5175 244.9671 247.8684 250.6286 253.2293 253.4561 241.1422 237.5533 237.5479 238.0391 238.2752 238.5102 238.4137 238.5589 238.6409 238.5641 238.5281 238.5099 243.3117 244.5149 245.7417 246.1391 246.4941 247.3393 248.5464 250.7672 253.8738 259.1815 261.1777 263.5376 265.3386 266.5176 266.6396 267.3976 267.8556 268.9273 271.6601 272.818 273.8018 274.9657 275.7402 276.047 276.7007 277.2821 277.8302 277.4549 276.8633 275.9387 274.5796 273.5251 273.0644 273.5703 273.7307 273.8372 275.055 275.7177 276.6474 277.0248 276.7248 276.1025 276.0414 276.5907 277.2164 279.9586 281.8976 283.4285 284.8953 285.9463 286.6 285.7233 286.431 285.1486 282.2316 280.9023 278.5085 276.4234 275.1831 274.6507 273.208 272.079 270.9881 272.0154 272.0442 271.4669 270.8593 270.804 270.7445 270.7121 270.7902 272.6174 274.2006 276.1498 277.0468 278.0198 278.1116 277.6838 275.8622 273.949 272.3108 271.1466 269.6539 267.5807 264.7312 261.6746 258.4562 256.4078 256.5667 258.9758 261.1621 264.5881 -9999 -9999 +-9999 315.4037 313.7686 313.4885 312.6098 312.278 312.7508 311.9452 309.7189 304.9899 303.336 300.3459 300.2582 302.5611 304.398 306.4862 308.4388 310.4846 313.5736 314.8241 315.7657 315.7273 315.6338 314.9452 315.6636 315.8736 315.103 310.3907 306.6874 302.6706 299.2314 296.3608 295.567 296.0861 298.8715 304.0813 314.8377 317.7844 319.7506 320.8659 321.5444 321.7899 323.1834 322.9745 322.7006 322.7981 323.5522 324.5184 325.6556 326.8167 327.9109 328.407 329.3406 330.1973 330.7297 329.4437 329.4828 329.0366 328.6017 327.4747 325.1378 322.9555 321.9889 327.843 330.7458 332.8177 334.9763 336.7391 338.5789 339.9315 339.7805 338.8549 341.4901 342.6049 344.2767 346.6037 348.4545 348.4863 347.3296 346.1192 344.7051 338.1853 341.1959 342.7178 344.8331 347.9254 350.7912 352.9631 355.6587 358.1914 360.6431 363.8206 365.5302 367.3909 368.6231 369.3275 369.6365 366.6972 362.9244 360.1731 353.3265 350.0345 346.751 343.5174 339.7546 336.8836 334.2334 331.5154 328.9336 323.9132 321.4209 319.1136 316.8195 315.2376 313.327 312.1885 310.5372 308.1613 301.8087 304.032 304.8839 310.1445 313.9266 316.0515 316.9535 317.2238 318.4608 321.6109 324.0893 325.4921 326.3302 323.5186 317.8907 317.5182 321.8286 324.2579 328.4754 330.7935 333.1519 332.9789 334.1128 335.469 334.152 330.3988 328.4396 333.6199 333.4419 332.7472 332.3893 330.8244 328.2576 326.5261 323.9126 321.1937 314.9086 309.6675 308.7171 307.8783 306.9156 306.501 307.8129 309.4244 310.0288 308.7222 307.1309 304.3164 301.7137 301.0093 302.0618 304.6012 304.7971 305.2363 305.0977 304.5511 304.0339 303.2975 302.3047 301.2527 300.4359 299.1993 297.92 297.3099 297.0432 296.2043 293.9884 292.4268 290.1275 286.108 278.996 277.959 281.4695 284.8208 285.7068 283.223 277.575 273.7328 279.9089 283.1277 286.2299 287.6629 285.3231 286.0804 287.1757 285.054 283.2302 281.5948 281.5194 283.6743 281.8213 273.3206 270.2096 267.6964 261.9512 266.5357 268.1105 269.053 270.4152 271.8604 274.1322 275.0693 275.841 275.7372 274.2733 273.408 272.4054 271.0984 268.3858 264.6816 264.2458 264.1943 262.9324 262.2855 261.5102 262.5863 262.2684 259.0114 250.9064 255.104 263.119 268.3732 272.4399 274.7646 272.1087 275.7022 278.4046 283.9344 284.1152 284.2972 284.313 284.8611 285.7328 287.6029 287.684 284.9557 276.6561 273.6609 270.4645 267.8364 264.2282 263.9481 266.5684 269.2509 271.7739 274.0046 273.3293 271.1394 266.4264 261.9441 256.761 251.726 249.003 244.8438 244.0987 244.2118 244.3369 244.2913 244.3131 244.0107 244.7699 244.1681 243.5387 244.5401 246.5488 247.4651 245.5188 242.7435 242.4707 242.3432 242.4478 242.4659 242.0105 242.7408 242.6559 242.329 243.7311 246.0019 247.7104 249.0674 250.6644 251.9584 253.5948 255.2788 256.6298 258.3788 259.8954 261.7884 263.9826 266.3306 268.648 271.7389 272.8804 273.7533 274.1984 274.7246 275.0384 275.3105 275.1784 274.1966 275.5002 276.7868 277.9568 279.1025 279.9485 280.6875 280.4999 279.7523 278.5298 274.3824 271.7398 271.0775 270.164 269.6259 270.2766 271.2998 271.0874 270.2756 267.7022 265.5099 262.6347 262.1775 262.4878 263.6382 264.5941 265.3209 266.0306 268.9389 270.0261 270.7834 271.3246 271.7693 272.8597 273.7584 273.8478 271.4626 266.5079 265.025 263.4438 263.1362 264.1221 266.1984 268.9162 270.9304 271.3863 271.7492 269.9344 268.972 268.0833 266.6118 265.2881 263.4319 261.8932 258.6774 253.8633 251.584 249.1729 247.8875 247.0888 245.3619 239.2548 237.8226 238.0743 238.3004 238.5223 235.9254 235.9776 239.1009 238.8307 238.7385 238.8081 238.569 238.4749 243.0882 246.2985 249.8539 252.3932 254.6319 253.0753 246.0077 238.1107 237.7849 238.0137 238.2323 238.4691 238.5883 238.6768 238.668 238.9896 238.7197 239.2754 243.4665 244.6346 246.0105 246.9095 247.6885 248.4337 249.4472 251.6389 254.6154 260.0734 262.3094 264.4946 265.6346 266.7188 267.4302 268.2645 269.1573 269.8262 271.8827 272.6426 273.453 274.3602 275.2384 275.8728 276.1951 276.5654 276.5156 275.4889 275.3481 274.6893 273.7693 272.0516 271.46 271.8376 271.7238 272.7806 273.4519 275.0019 276.0381 276.347 275.2867 274.9346 274.6458 275.4527 276.264 278.4541 280.1799 281.8717 283.182 284.448 284.9463 283.7238 284.6396 283.2692 281.3625 280.2436 277.876 275.6512 274.7319 273.929 272.5229 270.5779 268.7922 270.9876 271.042 270.6899 270.8063 270.5447 270.8311 270.8211 270.892 272.6174 274.2006 276.1498 277.0468 278.0198 278.1116 277.6838 275.8622 273.949 272.3108 271.1466 269.6539 267.5807 264.7312 261.6746 258.4562 256.4078 256.5667 258.9758 261.1621 264.5881 -9999 -9999 +-9999 314.7065 312.7062 311.4301 310.9611 310.3782 310.0316 309.9087 308.3577 305.7625 304.3785 302.0555 299.303 299.9185 301.7957 304.3133 306.3011 308.6093 311.4649 312.658 313.0478 313.2016 314.1446 314.083 314.8082 313.5739 312.9913 309.5147 305.8897 301.5568 296.626 295.8799 295.7758 298.5807 305.1432 309.4347 315.0221 317.7879 319.5921 321.5813 323.1937 323.9233 324.57 325.1809 325.0228 324.9015 324.9917 325.456 326.2833 326.9292 327.2157 327.7812 328.3358 329.4327 329.8719 328.3229 327.0745 326.7152 326.6059 323.4362 320.746 320.5058 322.2506 327.4985 329.9213 331.7101 333.6401 334.4119 335.0952 335.9089 336.3398 338.5027 343.6429 344.5323 345.5125 347.3924 348.5168 346.9579 344.9731 343.4479 341.769 336.8574 339.5182 342.8251 344.6105 347.4127 349.1596 351.4926 354.5217 357.2519 360.7454 362.5166 364.0268 367.3909 368.6231 369.3275 369.6365 366.6972 362.9244 360.1731 353.3265 350.0345 346.751 343.5174 339.7546 336.8836 334.2334 331.5154 328.9336 323.9132 321.4209 319.1136 316.8195 315.2376 313.327 312.1885 310.5372 308.1613 301.8087 304.032 304.8839 307.2297 311.6269 313.137 313.7607 314.7279 315.7338 319.0217 321.0131 322.8476 323.312 320.0019 315.3719 317.048 321.5944 322.8894 326.7764 328.7946 329.5842 329.5719 332.3723 332.9163 330.938 328.7621 327.3455 331.8352 331.3427 330.492 330.4357 329.7716 327.9387 326.0815 323.9227 321.2032 315.149 311.2698 307.4218 306.2291 305.839 305.275 306.4575 308.0504 308.9684 309.4574 308.4693 306.2795 303.2861 300.1091 300.8307 302.8094 303.1475 304.4424 305.1359 303.7641 302.9432 303.0256 302.402 301.3854 300.3996 299.7635 299.0645 298.9961 298.6562 297.7312 296.239 294.5125 292.1659 288.4384 281.3774 275.1729 278.2149 282.7985 283.4164 282.2647 275.8638 273.5385 278.1363 280.9522 283.7683 285.2286 282.4233 283.0481 285.0572 283.5188 280.5696 280.3569 276.4892 280.2744 278.6288 269.7158 267.313 265.9825 261.0703 264.3887 266.0693 267.3843 268.3829 270.2527 273.8401 275.0116 275.1866 274.4715 272.3678 270.3428 269.9432 268.8902 266.803 263.1808 262.4264 260.8225 260.4636 261.0987 261.8064 259.4211 257.4485 254.6425 250.9303 258.1121 265.8961 271.4514 275.7568 278.595 277.5841 278.0565 281.1036 286.175 286.3474 286.2006 286.1004 286.4411 286.7764 287.9616 289.3246 288.8187 279.9531 276.3528 273.8567 270.7068 268.5123 266.9395 267.8093 269.9449 272.4282 274.4865 272.862 271.0185 267.7759 264.3223 259.3516 253.9613 251.5212 249.1944 244.7558 243.8724 243.9796 244.0495 244.147 243.2125 244.0508 243.9148 243.5785 244.1036 244.2174 245.7188 242.7382 242.6023 242.4569 242.4929 242.4975 242.509 241.9138 242.5698 242.4589 242.6654 242.8374 243.9008 246.3608 247.8441 249.4928 250.9165 253.8282 255.1567 256.1663 257.733 259.1858 260.5078 262.4707 265.405 268.6143 272.5651 273.9348 275.101 275.9113 276.1704 276.0193 275.9067 275.9967 275.5737 275.8684 276.3075 276.944 277.657 278.7682 279.5719 279.9537 279.8614 278.8067 275.4181 274.431 273.3228 271.4718 270.3401 271.115 271.8477 271.915 271.6799 269.4697 266.3367 263.3293 262.9887 263.7052 265.3845 266.6139 266.9674 267.4686 269.7578 270.9988 271.9662 272.7268 273.336 274.1278 275.154 275.084 272.4209 267.7027 266.0335 265.1092 264.214 265.5114 266.7963 268.5851 270.4688 271.4899 272.2869 270.8823 269.7223 268.2007 266.0334 264.7022 262.8003 260.7693 258.2657 252.815 250.78 248.9156 248.1838 243.5638 238.1176 237.7686 237.8746 238.0703 238.4379 235.8266 238.8403 238.6529 238.1596 238.3409 238.5742 238.3311 238.5025 237.8815 243.3295 247.0795 251.0071 254.4633 256.2687 253.4364 249.0337 246.394 244.6828 237.9641 238.2274 239.2041 239.258 239.6875 239.0472 239.1898 239.2548 240.5986 244.2126 244.7107 245.9353 247.1071 248.1793 248.8617 250.7465 252.6365 255.1098 260.6748 263.5811 265.0117 265.463 266.318 267.0899 267.5859 268.3797 269.7243 271.5195 271.3826 271.8099 272.4072 273.7153 274.5915 274.8796 275.1828 275.0382 273.1819 273.1865 272.7073 272.1948 271.1207 271.46 271.8376 271.7238 272.7806 273.4519 275.0019 276.0381 276.347 275.2867 274.9346 274.6458 275.4527 276.264 278.4541 280.1799 281.8717 283.182 284.448 284.9463 283.7238 284.6396 283.2692 281.3625 280.2436 277.876 275.6512 274.7319 273.929 272.5229 270.5779 268.7922 270.9876 271.042 270.6899 270.8063 270.5447 270.8311 270.8211 270.892 272.1696 273.6703 275.6842 276.4763 277.2541 277.6326 277.4623 275.6413 273.7652 272.1998 269.219 267.7742 266.2353 264.0616 261.8055 258.9321 256.409 255.6334 256.7635 259.2632 262.4739 -9999 -9999 +-9999 314.658 312.971 311.3012 309.9545 309.3348 308.9929 308.1732 305.9373 303.4643 302.647 301.2475 299.7146 297.925 299.2298 301.9683 304.2362 305.7437 308.5487 309.4162 310.1062 310.9206 312.6822 313.8119 313.0883 311.7015 310.4484 307.5949 304.4851 298.6228 295.9321 296.0205 295.8778 300.808 305.2028 308.2423 313.8667 316.9479 319.6355 321.4921 323.0362 323.9556 324.807 325.5618 325.9183 325.8206 325.7332 325.8949 326.1581 326.1922 326.0032 327.0007 328.4101 329.0322 328.4386 326.9757 325.2874 324.7913 322.4489 317.9318 318.7613 321.8199 323.1773 326.4536 328.3771 331.7101 333.6401 334.4119 335.0952 335.9089 336.3398 338.5027 343.6429 344.5323 345.5125 347.3924 348.5168 346.9579 344.9731 343.4479 341.769 336.8574 339.5182 342.8251 344.6105 347.4127 349.1596 351.4926 354.5217 357.2519 360.7454 362.5166 364.0268 365.6547 367.0694 367.863 368.507 366.1804 361.9757 356.7175 350.2497 348.0398 345.4617 343.1492 340.3028 337.7187 334.9337 331.955 328.9353 323.6502 320.9352 318.4739 315.3137 313.1734 311.6234 309.8118 308.2653 305.2859 299.9896 302.3959 303.0134 304.5912 307.4137 308.945 309.3736 311.0239 313.8175 317.4465 318.7559 319.9619 320.4973 316.8472 312.8771 315.8186 318.4053 320.5957 325.1165 325.8183 325.7167 328.2382 330.0399 329.4459 328.4859 328.6728 328.3037 329.5155 329.4119 328.7454 328.7506 327.9539 325.5953 323.964 322.3927 321.101 314.4762 311.4632 307.0041 303.8642 302.7906 303.1211 305.0994 306.6849 307.423 308.1817 308.1784 306.7127 304.1068 300.0481 298.7386 299.6018 302.0581 303.9119 304.8245 303.3194 301.9946 301.8388 301.9927 301.5165 300.7367 300.0558 298.8712 299.1595 299.0954 298.1878 297.2983 295.6105 293.1906 290.188 285.1619 278.0969 279.5308 280.4597 280.7622 280.556 274.8484 272.0341 275.4817 277.8078 280.4198 281.5376 278.9769 281.4916 283.4742 281.7444 276.627 275.7758 272.1619 276.8811 276.0842 266.2519 264.1093 262.9133 261.6663 264.7353 265.304 265.7111 267.0533 269.1359 273.3456 274.3728 274.0347 272.6388 270.7282 269.1192 267.5415 266.274 263.3116 260.8059 259.7926 258.8211 258.7322 259.6187 260.9015 260.6924 257.5946 253.1976 252.5889 257.5266 264.1325 268.9678 273.49 276.754 278.3096 279.9951 282.4036 287.2106 288.043 288.2028 288.1731 288.4366 288.2665 288.7458 290.0677 290.0552 282.9706 279.0412 276.1103 273.7318 271.6929 270.2634 269.7824 274.328 272.3596 274.35 272.7406 271.0901 269.5111 263.6306 257.8505 254.4266 253.4386 251.5054 246.2767 244.1072 243.8071 243.8113 243.8254 243.7467 243.8493 243.0812 243.5578 243.1543 243.0609 243.0853 242.8247 242.7652 242.7518 242.6889 242.7479 242.5522 242.1677 242.8124 242.2901 242.5807 242.2393 242.4444 244.3563 246.6281 248.3662 249.9561 252.551 254.0177 255.5482 257.2845 258.8737 260.5329 262.1263 264.2328 266.8779 271.6303 273.1309 274.8676 275.9744 275.7572 275.0753 274.7423 274.6973 274.79 274.8628 275.3523 276.5689 276.6674 277.4278 277.8382 278.4566 278.7575 278.4404 276.9273 275.8947 274.6538 273.0004 271.2941 271.8448 272.4987 272.8001 273.2849 273.5738 270.3197 266.2901 266.4059 266.5203 267.5587 267.9168 267.666 268.3297 270.6118 271.7827 272.6786 273.6373 274.4405 275.5835 276.6018 276.1886 273.5381 269.1553 267.7192 266.7743 266.077 266.6963 268.4452 270.4414 271.0453 272.4443 272.6477 271.4399 269.7699 267.8036 265.8611 263.5397 261.8082 259.9272 257.1965 251.6419 250.1253 249.0263 242.9827 238.5385 237.6661 237.8041 238.1984 238.669 235.7443 238.7159 238.2321 237.6348 237.8886 237.7559 238.3469 238.2212 237.9513 238.1113 245.1111 249.5772 253.5687 257.314 258.1001 254.2246 250.8117 249.097 247.2176 245.4353 243.9718 242.2567 239.258 239.6875 239.0472 239.1898 239.2548 240.5986 244.2126 244.7107 245.9353 247.1071 248.1793 248.8617 250.7465 252.6365 255.1098 260.6748 263.5811 265.0117 265.463 266.318 267.0899 267.5859 268.3797 269.7243 271.5195 271.3826 271.8099 272.4072 273.7153 274.5915 274.8796 275.1828 275.0382 273.1819 273.1865 272.7073 272.1948 271.1207 270.482 270.2749 270.7777 271.3318 272.3528 273.7698 273.7902 274.3883 273.9055 273.1889 272.7226 274.3067 275.3031 277.2949 279.1161 280.3478 281.8725 283.0821 282.5152 283.7607 282.8435 281.8324 280.479 279.6924 277.6471 274.8838 273.0559 271.8162 271.0892 269.3416 267.9529 270.1799 270.4697 270.1428 270.2748 269.4741 267.0537 267.7957 269.8578 271.8654 273.5932 275.2162 275.9086 276.7104 277.2329 277.0615 275.4028 273.6272 271.4643 268.7771 263.5862 262.8826 261.7057 259.914 258.1213 256.9048 254.905 254.8135 256.3398 260.6674 -9999 -9999 +-9999 315.2343 313.1558 312.0866 311.0285 310.8164 310.2753 308.9197 307.8122 305.3063 304.1292 302.7097 300.2393 297.9111 298.0149 300.1205 302.6401 304.157 306.7654 307.6021 308.4455 310.3734 311.7709 311.908 311.5475 309.7882 308.3741 304.929 301.9632 297.5344 294.9855 295.4814 296.425 299.6807 303.1425 305.8768 311.9221 315.1189 319.6355 321.4921 323.0362 323.9556 324.807 325.5618 325.9183 325.8206 325.7332 325.8949 326.1581 326.1922 326.0032 327.0007 328.4101 329.0322 328.4386 326.9757 325.2874 324.7913 322.4489 317.9318 318.7613 321.8199 323.1773 326.4536 328.3771 330.0998 330.209 331.543 333.2675 334.9243 337.182 339.5472 344.4716 345.3808 346.7534 347.7992 347.3474 345.2183 342.3124 341.1115 338.4877 336.7286 339.2766 341.4121 343.32 345.7275 348.8597 350.7586 352.8303 355.7472 360.4859 361.6545 362.3963 363.6381 365.4595 366.3845 367.0686 364.9794 360.7406 352.1711 347.5625 344.045 342.4768 340.787 338.2563 336.0497 334.7084 332.2509 329.246 322.7814 318.6515 315.9384 313.3308 311.0506 308.85 308.3399 307.2586 308.9985 302.5671 300.8021 301.6527 301.8899 304.3031 305.124 308.7409 310.5727 313.5441 315.8479 316.0838 316.0931 316.3033 312.9562 311.2052 313.3738 317.3706 320.513 322.6516 323.9107 324.2388 325.7184 327.2246 326.7235 323.9709 322.9802 325.2791 327.0926 327.1648 326.9926 325.8188 325.9028 324.1532 321.8311 319.9954 318.742 314.8152 311.0917 307.7708 303.9477 301.2502 301.7421 302.9068 304.7744 306.0188 306.9178 307.3539 306.5004 304.4732 301.0983 298.1819 298.127 300.6487 302.2697 304.0836 302.7514 301.2573 301.0221 301.5455 301.1053 300.0147 299.2834 298.1045 297.5655 297.5291 297.2043 296.1681 294.1906 292.9058 291.2945 288.0045 281.3675 275.856 277.6577 277.7535 277.5973 274.2788 268.8206 272.9887 274.0504 275.3856 276.7173 275.738 277.7575 279.337 275.9694 270.3948 266.684 267.745 270.8763 269.9433 261.4825 260.8278 259.8604 262.1714 262.677 264.6808 264.1975 265.2801 267.6767 272.1829 273.3967 272.4114 270.1642 268.4065 266.5349 265.0498 261.8081 257.3032 254.9236 254.9651 256.0972 256.2342 256.7758 258.1487 257.3396 255.1049 252.7201 252.4696 259.4628 266.301 272.012 275.3953 277.4479 278.5031 280.5682 283.1305 287.745 289.0539 289.4549 289.5607 289.6395 289.5921 289.5059 290.2552 290.6561 284.9472 281.2902 278.1242 276.0287 274.4534 272.8246 275.5175 272.1093 272.9938 273.7181 272.1554 270.7314 268.8988 266.4095 261.7868 257.2669 254.0328 250.0241 245.8447 244.692 244.0394 243.4711 243.6095 243.6414 243.5569 243.5197 243.7891 243.3484 243.1395 243.0423 242.9623 242.9175 242.7917 242.71 242.6195 242.5634 242.8339 242.5464 243.0785 242.3225 242.1325 242.1507 243.148 245.3783 247.5986 249.3205 252.085 253.6168 254.9056 256.6039 258.2653 260.1394 261.6775 263.0765 265.2655 269.7126 271.7303 273.0987 273.6548 272.8351 272.157 272.3342 272.6186 272.9364 273.341 273.7402 274.3357 275.0878 275.7399 276.7187 277.38 278.2931 278.7091 278.351 277.2723 276.5278 274.6795 272.558 272.5443 273.7765 273.7269 275.1025 275.4539 273.3683 271.1675 270.1934 269.8365 269.7413 269.5444 269.052 269.7743 271.488 272.6765 273.6647 274.1208 275.4101 276.7333 277.7511 277.8071 275.2137 270.8338 269.3983 268.1204 267.4838 268.5186 270.1037 271.81 272.6903 273.2984 272.0846 269.9528 268.4267 267.8036 265.8611 263.5397 261.8082 259.9272 257.1965 251.6419 250.1253 249.0263 242.9827 238.5385 237.6661 237.8041 238.1984 238.669 235.7443 238.7159 238.2321 237.6348 237.8886 237.7559 238.3469 238.2212 237.9513 238.1113 245.1111 249.5772 253.5687 257.314 258.1001 254.2246 250.8117 249.097 247.2176 245.4353 243.9718 242.2567 241.4789 240.8862 239.8669 239.3705 239.5126 240.6098 243.1213 244.681 245.9403 246.6901 247.5129 248.8976 251.2634 253.0596 255.4471 261.0523 263.6372 264.5544 264.7626 264.785 265.1863 266.1132 267.5484 269.0172 269.9511 269.2653 269.4381 270.1849 271.9904 273.0134 273.4311 273.8568 273.8329 271.9207 271.174 270.3649 269.8608 269.131 268.0676 268.6423 269.1492 269.7391 270.5878 270.923 269.7969 270.4987 269.618 270.8399 272.1591 273.5854 274.702 276.8927 278.3423 279.7355 280.9612 281.5472 282.1355 282.1084 281.3284 280.5215 279.3264 279.0879 277.7483 276.2265 273.3711 270.527 269.5646 268.1345 268.0238 269.42 269.8735 269.8369 268.1945 266.2177 265.1729 267.2617 270.0562 271.9498 273.4589 274.9157 275.614 276.3875 276.8676 276.6251 275.3682 273.2206 271.4168 267.5167 261.0383 259.5649 258.6987 257.5446 257.0444 256.7905 256.7922 253.4999 254.0148 257.5918 -9999 -9999 +-9999 314.945 314.4128 314.1124 313.5617 313.3311 312.2296 311.109 308.527 307.9783 305.9489 303.7958 300.2393 297.9111 298.0149 300.1205 302.6401 304.157 306.7654 307.6021 308.4455 310.3734 311.7709 311.908 311.5475 309.7882 308.3741 304.929 301.9632 297.5344 294.9855 295.4814 296.425 299.6807 303.1425 305.8768 311.9221 315.1189 318.1355 319.7795 321.6339 322.5867 323.4338 324.3638 324.903 325.24 325.0401 324.6672 324.8307 324.21 325.1379 326.7961 327.2924 327.9893 326.4798 325.3191 324.23 321.9253 318.4972 319.2378 320.0824 322.5623 323.9514 325.3656 327.0376 327.6074 329.8426 331.6414 332.9936 334.9212 336.4342 338.2791 341.0429 342.896 345.8528 346.5913 345.6577 343.0873 339.7191 337.2996 333.6305 337.6588 340.8307 343.2061 344.367 345.7376 347.5413 350.295 352.5782 354.6421 358.9651 359.1479 360.3968 362.0897 363.475 364.6956 365.7773 364.6098 360.8214 349.8955 347.2113 342.3894 338.5415 336.1978 334.2747 332.9411 331.8899 330.8065 328.0945 320.9647 314.2629 312.5476 312.0738 310.4019 309.6287 311.9178 313.0879 313.0186 307.3143 302.5383 300.8185 300.4736 300.9031 302.5714 307.3841 309.9585 311.9625 312.7889 312.5785 312.4399 311.547 311.3477 312.7568 314.1096 316.1977 318.9792 321.3418 319.4744 320.3206 322.2986 322.53 320.9534 320.7131 322.7487 324.7527 324.4472 325.3318 325.2873 323.3167 322.7156 322.4588 320.8949 318.8475 317.1161 313.2223 310.7381 307.9185 305.1903 301.814 298.9677 301.0547 302.772 304.2469 305.9448 306.6978 306.3805 304.7787 302.0592 298.1981 296.556 299.0567 301.0141 303.3222 302.273 300.7661 299.8557 300.1163 299.9671 299.364 298.3294 297.2822 295.9607 295.8779 295.1138 294.0386 292.6187 291.026 288.8746 287.889 285.3146 272.6553 271.9691 273.4553 273.5897 272.1801 267.6725 268.526 266.8428 269.5694 273.1996 274.4587 271.2992 269.909 263.7172 260.27 261.7906 261.61 261.3235 260.2175 258.7888 259.2719 259.0702 258.6838 258.5929 258.325 261.0542 263.203 264.9738 270.5017 271.0971 270.3451 267.908 264.2032 262.3104 260.8664 257.5782 254.5309 253.9868 253.7356 253.7415 253.5938 253.2719 254.4016 253.4093 253.0063 252.5788 253.6226 260.5341 267.5649 274.379 279.2239 281.8031 281.9283 281.8155 283.3759 288.3271 289.3744 290.1064 290.2249 290.1833 289.7162 289.4326 290.0852 290.8938 286.1764 283.0706 279.995 278.0311 276.3672 276.9096 273.9245 273.9701 273.8445 272.5167 270.6859 269.056 267.2608 265.3106 261.3297 255.6056 251.0172 249.3069 248.4489 245.628 244.4177 244.0944 244.3752 243.413 243.4601 243.3752 243.5851 243.2734 242.4778 243.2024 243.229 243.2898 242.9954 242.8591 242.7323 242.6749 242.1385 242.5655 243.1474 242.2619 242.2411 242.2497 242.4539 243.8676 246.3 248.0267 251.2598 252.7001 254.0631 255.7226 257.3336 258.9949 260.4184 261.8419 263.3668 267.0674 268.4202 269.3335 270.2374 270.7356 270.662 270.5589 270.4224 270.6953 272.0055 272.8791 273.6509 274.1547 274.4647 275.6594 276.8665 277.8578 278.4513 279.5088 278.4969 277.7913 276.0978 272.558 272.5443 273.7765 273.7269 275.1025 275.4539 273.3683 271.1675 270.1934 269.8365 269.7413 269.5444 269.052 269.7743 271.488 272.6765 273.6647 274.1208 275.4101 276.7333 277.7511 277.8071 275.2137 270.8338 269.3983 268.1204 267.4838 268.5186 270.1037 271.81 272.6903 273.2984 272.0846 269.9528 268.4267 267.0769 265.3147 262.9407 260.3233 258.4961 256.2029 247.8244 245.5464 241.7111 237.73 237.6727 237.7972 238.0473 238.4121 238.9081 238.8403 238.0234 237.454 237.4823 237.2882 237.8493 237.8887 237.8658 237.7598 238.7246 247.264 252.0133 256.504 260.1545 259.6458 256.4475 254.0408 251.8113 249.7785 247.4607 245.7089 244.9346 243.2449 243.0166 242.3084 240.2045 239.6339 239.7374 241.5025 243.1475 244.3462 245.3444 246.8372 249.1965 250.7466 252.9898 255.7897 261.3735 262.8724 263.1164 262.7779 262.1584 263.3975 265.2073 266.4252 267.6953 268.0823 267.3651 267.5072 268.9247 270.1649 271.4739 271.9323 272.2445 272.3094 270.2638 268.9979 268.5197 268.179 267.7257 266.9746 267.5218 267.8735 268.1236 268.1054 268.3667 268.0934 267.8153 267.5293 269.2763 271.2738 272.8905 274.1331 276.649 278.6981 279.279 279.8487 279.6174 281.141 280.6033 280.1015 279.359 278.9266 278.5871 278.0566 276.5156 273.5611 270.409 268.3473 267.077 265.9844 268.33 269.0056 269.276 267.4329 264.4122 267.3124 267.4335 270.7409 271.8273 273.7776 274.4972 275.2443 276.0159 276.6562 276.1612 274.7361 272.8162 271.0794 267.5021 263.5718 264.0182 263.2638 261.5627 261.7544 262.8683 262.2822 258.7457 257.5315 252.4449 -9999 -9999 +-9999 314.945 314.4128 314.1124 313.5617 313.3311 312.2296 311.109 308.527 307.9783 305.9489 303.7958 300.8858 297.5719 296.984 299.0142 300.9903 302.763 305.3017 306.1215 307.4833 309.0468 309.9793 310.1108 309.4616 308.5952 306.8298 302.6966 300.6334 295.659 295.378 295.2115 296.4084 299.6936 302.4377 305.2589 309.5148 312.2972 314.5575 316.2021 318.0885 320.098 321.6843 323.9244 324.3915 323.851 323.1419 322.9672 323.2669 323.8431 325.7334 326.7531 327.4111 327.0226 324.5043 323.5517 322.1238 318.8706 317.0636 319.3218 320.1531 322.8697 325.4419 327.702 327.6157 329.1714 331.1314 332.4927 332.67 334.0229 335.0503 336.2734 339.3798 340.9683 343.5474 343.5421 342.003 339.2759 334.2946 331.0163 332.6338 340.2529 343.0479 345.5215 347.2589 348.0035 348.7661 350.1062 351.4066 353.2206 355.6808 358.0017 359.8493 360.8953 362.2647 362.9929 363.5421 362.7647 358.9369 349.1997 345.4023 341.8706 338.2194 333.9329 331.4655 328.7215 328.4391 327.4175 323.9643 316.4329 315.0281 315.7485 317.5758 315.8243 313.7946 316.152 317.1851 315.2021 309.784 305.6719 301.3159 299.6103 299.9047 299.9355 301.8082 307.1107 309.9906 310.5942 309.1916 308.6088 308.5067 306.9297 312.9583 317.1446 318.6615 319.1622 318.7798 315.8374 315.9932 317.3467 317.8628 320.0472 322.4166 323.2867 322.7629 322.2965 323.413 323.2907 321.3122 320.633 320.9412 319.0294 317.8846 316.6575 312.6886 310.7918 308.4597 305.5291 302.1918 298.9059 299.3634 300.9514 302.4906 304.8255 305.9682 306.5308 304.9422 303.0095 299.6056 295.0837 296.2515 299.4374 301.9952 301.2832 299.9421 298.7174 299.0491 298.9622 297.7357 296.7268 296.0188 293.4864 293.3277 292.3513 290.6379 289.1891 287.3507 285.6474 284.1745 283.9975 275.7269 271.729 269.7589 270.7552 268.1808 266.212 265.9708 266.4644 265.9584 268.5542 267.9792 262.6874 263.7046 265.2468 265.5645 264.2439 264.6673 264.683 263.1063 260.1609 259.2238 259.0565 258.939 258.8085 257.0087 257.9468 261.5628 262.3311 267.8452 269.0832 268.0194 264.3555 260.2668 256.9291 254.955 254.4081 254.2353 253.7296 253.3485 252.8912 252.2567 252.8715 253.2797 253.3318 253.2852 253.5777 255.0126 260.5906 267.2988 275.0997 280.9 284.6356 285.1286 284.8876 285.3456 289.1874 290.3603 290.7937 290.6728 290.3019 289.496 289.0001 289.5023 290.4232 286.929 284.2032 281.3676 279.1435 277.4879 276.3166 275.6163 274.8433 273.7589 270.2683 268.902 266.6848 264.1746 261.6007 257.2113 252.6471 250.8437 250.9302 250.0947 248.3386 248.2159 246.9069 246.4332 245.6977 244.1897 243.402 242.9109 243.0587 243.1236 243.3327 243.0801 243.0996 243.2173 242.9311 242.114 242.3184 242.4567 242.5714 242.8883 242.4175 242.2425 242.1311 242.2482 243.8676 246.3 248.0267 251.2598 252.7001 254.0631 255.7226 257.3336 258.9949 260.4184 261.8419 263.3668 267.0674 268.4202 269.3335 270.2374 270.7356 270.662 270.5589 270.4224 270.6953 272.0055 272.8791 273.6509 274.1547 274.4647 275.6594 276.8665 277.8578 278.4513 279.5088 278.4969 277.7913 276.0978 273.5341 273.2993 274.8877 274.6351 276.4069 276.7438 274.5023 272.6773 271.8093 271.5057 271.4208 271.2892 271.0952 270.7774 272.6119 272.6086 274.0142 274.8384 275.8952 277.1592 278.4384 279.0344 277.0367 273.5162 271.5401 269.8202 268.5659 269.6565 271.772 273.5398 274.9269 275.4447 272.062 268.2398 265.6862 264.4803 264.0152 262.2036 260.2848 258.0472 255.4829 251.3999 245.4147 238.3509 237.7858 237.5335 237.897 238.5712 235.7288 235.7874 237.9427 237.4952 237.36 237.3112 237.1975 237.4869 237.8632 237.4657 238.1227 241.2562 249.6042 253.863 258.3 261.5351 261.5997 258.9201 256.6575 254.2595 251.9881 248.17 247.7206 247.424 246.6381 246.0053 243.9239 241.7442 241.2165 240.0253 240.9758 242.1185 243.1782 245.386 247.4266 248.7313 250.0167 252.5678 255.604 260.4108 260.9849 261.0596 260.7558 261.146 262.8298 264.3102 264.7318 266.3012 265.9143 265.4533 265.8096 267.1121 268.2688 269.7852 270.2819 270.7429 270.3148 268.3402 267.4403 267.054 266.8539 266.403 265.8529 265.4142 265.6726 265.6546 264.7948 263.9217 264.573 264.9012 267.0269 265.6173 270.4112 272.7239 273.8284 276.5302 277.8177 278.9296 278.7795 279.9677 279.912 279.1601 278.8994 278.7296 277.807 278.1344 277.981 276.5664 274.0487 271.0726 267.9949 265.9915 264.9705 265.5588 268.4177 268.3536 264.4507 266.6097 268.2426 269.7285 268.1652 272.2417 273.5256 274.1606 274.6825 275.3978 276.2477 276.3275 275.1245 273.7472 272.1584 270.6841 269.9613 269.7662 269.0823 268.0672 267.8145 267.3737 264.9617 264.2339 262.3763 254.4906 -9999 -9999 +-9999 316.0501 315.9358 315.4548 315.0432 314.2967 313.339 311.8736 309.7039 309.507 307.4023 304.7243 301.7918 298.3412 296.3642 297.8494 298.9179 300.8579 303.5722 304.9923 306.5767 307.6756 308.309 308.0844 307.4063 306.3028 305.5657 300.9325 297.5163 294.583 295.2729 295.2626 296.1977 298.9799 304.0536 305.9074 311.6789 313.7877 315.1269 316.9263 318.7469 321.028 322.5195 323.5368 323.5439 322.1295 321.4156 321.5181 322.5563 324.3139 325.5304 326.4272 326.659 326.099 322.5437 321.2359 319.3006 314.8094 316.929 317.1829 319.2582 322.756 325.3318 329.1675 329.6852 330.713 333.0131 335.1777 334.7183 334.2103 334.5311 335.7495 338.0629 339.2824 340.4364 339.2186 337.2182 334.6428 329.9471 330.8165 334.4351 340.6235 343.2773 345.6146 347.395 347.9329 348.6448 348.6487 349.9026 351.6626 355.465 358.2986 359.2674 359.92 360.8382 361.1236 362.2557 361.8637 358.8343 350.3078 346.1749 341.9493 338.2189 334.1241 329.5906 326.9638 322.2818 323.2014 317.8934 318.9075 320.4335 321.3978 321.3266 320.1617 318.5566 318.1974 316.6695 315.1895 310.9707 307.9525 302.4815 299.7493 299.625 299.2351 299.4561 304.2758 307.6987 305.0937 304.8846 305.3433 304.3032 311.9651 317.306 321.8939 322.4974 320.0492 313.9393 312.8688 313.8883 315.4788 318.356 321.3866 322.7432 321.8303 321.0862 320.333 321.2468 321.0052 319.4456 319.1576 319.6558 317.6494 316.0239 314.4206 313.3363 311.3481 308.8701 305.8561 302.8836 299.0148 297.8354 298.8374 300.3644 303.6013 305.1602 306.0908 305.0627 303.2192 300.8156 297.3327 294.0885 296.9366 299.9174 299.812 298.9706 297.5689 297.5831 297.8887 296.3979 294.0452 293.9218 290.8571 290.2481 288.6148 286.8675 284.4917 283.2873 281.4773 278.8792 277.0869 268.8184 268.0617 267.6913 266.3153 268.245 268.1923 267.5353 267.7964 266.8117 265.1515 267.01 271.075 273.3877 272.2859 272.3383 270.8539 271.32 270.1928 268.7631 264.2505 260.134 258.9351 258.3871 258.1976 257.6491 257.8814 258.4518 260.0305 265.6201 266.9269 265.332 260.5465 256.1833 254.8608 254.6335 253.3888 254.5982 253.8174 253.8722 254.3823 254.3201 254.1645 256.2096 262.5379 261.125 261.1375 263.0067 263.7177 266.228 272.8211 279.8651 284.438 285.4236 285.4499 286.0148 289.2163 289.7906 289.798 289.2957 288.6835 287.5622 286.138 287.4168 288.612 285.687 282.948 280.4413 279.9179 278.4725 277.4958 276.2836 274.9268 273.533 269.0255 268.902 266.6848 264.1746 261.6007 257.2113 252.6471 250.8437 250.9302 250.0947 248.3386 248.2159 246.9069 246.4332 245.6977 244.1897 243.402 242.9109 243.0587 243.1236 243.3327 243.0801 243.0996 243.2173 242.9311 242.114 242.3184 242.4567 242.5714 242.8883 242.4175 242.2425 242.1311 242.2482 242.3967 243.8329 245.9375 249.9421 251.694 253.0484 254.7476 256.4635 258.1502 259.4369 260.3806 261.1409 263.8241 265.1729 266.2044 267.4336 267.6047 267.6929 267.5405 268.0277 267.9951 269.7167 270.1567 271.8265 272.5786 274.022 275.443 276.6336 277.6664 279.0455 280.3564 280.0472 278.5977 276.1598 274.3924 273.7552 275.6543 275.3835 275.7634 276.885 275.7417 274.5349 273.9009 273.5104 273.371 273.345 273.0388 272.598 274.0677 274.0759 274.6624 275.8665 276.9719 278.1086 279.1068 279.897 279.5868 275.3971 272.9664 271.3397 270.2664 270.7702 272.845 275.1534 276.6895 276.4348 271.9485 268.4146 265.2937 262.7805 261.2659 259.8916 258.9335 257.2501 255.0933 246.1372 237.8708 237.9765 238.1415 238.4322 237.9135 235.663 238.61 237.7072 237.409 237.38 237.2179 237.149 237.2155 237.2815 237.557 237.8834 239.4181 247.0216 251.3231 255.9065 260.101 263.4649 263.1019 260.0257 258.042 256.1501 253.4922 250.0911 250.2678 250.4556 249.544 248.2259 246.8801 245.0482 244.1338 242.631 240.5078 241.0402 243.2834 245.3739 246.6721 248.205 250.2657 252.1496 254.795 258.4586 258.8941 258.3581 258.541 260.643 261.0608 262.125 263.6617 264.7191 263.8869 264.3939 264.615 265.5631 266.8973 267.9607 268.715 269.2127 268.5483 266.0785 265.4841 265.5021 265.4922 265.0079 263.9408 262.6879 263.1403 262.8596 260.4927 262.01 263.2604 262.9622 262.8983 265.4569 268.5802 271.3492 273.8192 276.6059 277.5322 278.152 278.2548 278.6198 278.5618 278.0481 277.7623 277.6474 276.7373 277.3988 277.4113 276.6757 274.7015 272.9519 269.5864 265.5184 263.9731 266.0854 266.7788 266.5515 264.8921 267.235 269.2879 271.8135 272.7106 273.1082 273.6947 274.1282 274.3713 274.8857 275.5719 276.2625 275.9997 275.3306 274.3639 273.3809 272.8177 272.8763 272.2484 271.3612 270.5001 269.3914 268.0399 266.5289 264.0059 260.0353 -9999 -9999 +-9999 316.4783 316.2734 315.7254 315.4578 314.2525 312.7734 311.6974 310.0101 309.7029 307.7919 305.1085 302.8637 298.6243 296.3525 297.1331 297.2856 300.7259 302.7194 303.8286 305.5035 306.4494 306.4176 305.9379 305.1461 303.8132 301.8043 298.2292 295.9758 295.1388 295.0575 295.3118 295.978 300.3444 304.8954 308.593 314.7994 316.7414 318.1025 319.6116 320.6068 321.9966 322.6832 323.1273 322.3747 320.7811 319.7614 320.2242 321.805 323.3262 324.8633 325.5787 325.6318 325.3293 322.4405 319.8535 316.0391 315.4525 315.6854 315.7924 318.7218 322.5865 325.2923 328.6626 328.998 330.869 332.2493 334.2282 333.9868 333.8423 333.9656 334.6712 337.0025 337.6257 337.2656 336.0902 333.0379 329.1968 329.7372 332.4162 335.9495 340.2377 342.3225 344.2664 346.0451 347.4362 347.608 346.8023 348.4063 349.4134 354.5117 357.2219 358.0625 358.5529 359.4765 359.2762 360.2714 360.2115 357.9882 351.4115 346.1968 341.7456 338.4783 334.8282 330.6136 327.6626 325.5501 326.6146 324.2842 323.5993 323.5367 323.8212 323.0371 321.7937 319.8443 317.8698 315.7046 313.4859 308.244 305.667 303.522 301.2168 299.6102 298.8968 298.4662 300.8294 304.745 301.0089 302.2603 305.3839 310.6616 314.1122 318.6412 321.4374 320.97 318.5545 312.0925 311.6445 312.9536 315.7743 319.2892 321.3284 321.8879 320.9807 318.7669 317.9074 318.6589 318.9811 317.0949 317.3654 318.0388 316.498 314.316 312.1895 312.3401 311.6998 309.2156 306.3433 303.5842 298.9016 296.719 297.089 298.8083 302.4608 304.2795 305.4409 304.832 303.0774 301.2906 298.2942 293.842 294.3864 297.2669 297.3111 297.2326 296.4764 296.3386 296.8198 295.8097 293.2095 291.4143 289.4558 287.2636 285.5587 282.4943 278.9489 275.2945 273.8354 271.1812 268.9 274.1542 275.6926 275.7431 272.5515 274.9043 273.9741 272.2849 272.6038 272.108 268.4088 270.0712 273.9145 276.2765 276.7233 276.3178 275.5486 275.412 274.2877 274.3822 272.8315 268.1979 264.3311 260.1771 259.366 257.6832 257.2549 257.5963 257.9551 259.6253 262.4499 260.4482 256.4622 255.1519 255.2948 254.1407 254.572 258.681 259.8874 257.723 258.3109 256.6599 257.4728 256.2096 262.5379 261.125 261.1375 263.0067 263.7177 266.228 272.8211 279.8651 284.438 285.4236 285.4499 286.0148 289.2163 289.7906 289.798 289.2957 288.6835 287.5622 286.138 287.4168 288.612 285.687 282.948 280.4413 279.9179 278.4725 277.4958 276.2836 274.9268 273.533 269.0255 267.1244 264.0372 260.9341 258.3945 257.0501 254.3354 253.8501 254.3322 250.161 248.7368 248.7881 248.9397 248.5414 248.7136 247.3861 246.5165 245.1884 243.2964 243.4677 243.4392 242.8577 242.8759 242.8788 242.8659 242.7501 242.807 242.9105 241.4776 242.578 242.0469 242.1969 241.9926 242.306 242.133 242.8364 248.1497 249.8918 251.4281 252.733 254.3226 255.5789 257.0513 257.9521 258.8513 259.9206 262.1125 262.7356 263.2262 264.0482 263.9711 264.026 263.6388 263.784 265.2786 268.2717 269.6559 271.4911 272.5488 274.4641 275.6057 276.9852 278.3401 279.5125 280.4875 280.2979 278.6316 275.9912 275.0742 274.4614 277.1698 277.4258 275.8651 277.1462 277.2531 276.4586 275.8714 275.7278 275.6381 275.2231 274.8845 274.804 275.0022 274.9891 275.2253 276.228 277.9485 279.3229 280.2793 280.8948 280.6029 274.66 272.8011 271.4296 270.9169 271.7241 273.1747 275.1357 275.1566 273.5747 270.1534 268.9698 266.8524 264.4205 261.3494 258.9872 257.1749 256.1223 254.7437 242.1795 238.05 237.7952 238.0558 238.5941 235.7458 238.4573 237.8573 237.2147 237.3995 237.1388 237.3245 237.1624 237.1481 237.4738 237.4969 238.0391 241.2416 248.9777 254.0104 258.2068 261.9637 264.5616 263.2146 260.4219 257.5888 255.7014 253.7666 252.0256 251.55 251.6896 250.941 250.2351 249.3239 247.748 246.3529 244.8254 240.853 240.9185 241.8062 243.6775 245.853 247.2747 249.0786 251.6366 253.2592 255.9432 256.0033 256.117 257.28 258.4016 259.7488 260.2025 261.6369 262.331 262.5518 262.7035 263.0982 264.2748 265.474 266.0926 266.8499 266.6461 266.0919 264.3833 263.9981 263.8514 263.5759 263.1913 262.6923 259.8736 260.1475 258.5761 263.2291 266.6645 268.7485 268.6185 268.0448 268.036 270.6641 272.7831 273.7535 275.9957 276.8816 277.08 277.9008 277.3961 276.9455 276.6635 276.5758 276.6675 275.7743 276.2953 276.2728 276.4677 275.312 273.6325 271.87 266.7975 263.454 265.0628 263.7493 264.4911 264.4443 268.0396 270.6285 273.2379 274.4268 274.8163 275.0616 275.1459 275.063 275.0805 275.4264 275.8891 276.2167 276.7029 276.5435 276.0448 276.4169 276.2144 275.2448 273.7847 272.2265 271.2225 270.1373 268.0097 265.345 262.1527 -9999 -9999 +-9999 316.3465 315.9362 315.6177 314.7234 313.8228 312.1594 310.7876 309.036 309.649 308.6856 305.1788 302.8162 299.783 296.4308 294.9543 295.9311 300.037 301.7689 303.3726 304.786 305.3068 304.7486 303.5402 302.6133 300.936 299.9774 295.7366 293.5511 294.9561 295.1649 295.1696 297.2618 303.9138 306.7718 309.8405 315.6049 317.5067 319.3467 319.9146 321.1412 322.0419 322.6822 321.9561 320.8802 319.2018 318.307 318.6003 319.9926 321.4373 323.1319 324.6443 325.0002 324.9427 321.6939 317.6219 314.1137 315.0099 314.7751 315.0204 317.7398 321.7827 324.0989 326.9408 327.9951 329.7113 331.5323 332.2774 332.4947 332.5435 332.8232 333.2869 334.6261 335.2093 335.0471 332.9265 329.6739 328.6017 330.3353 334.3531 336.3907 339.765 341.6419 343.4213 345.0412 346.0464 345.8818 345.2001 346.1577 348.8971 353.8074 355.226 356.5526 357.4856 358.0535 357.2255 358.4363 359.2626 357.2026 352.1156 348.3298 344.7156 340.4734 336.8991 334.9916 333.1727 332.0572 330.7849 327.5531 327.0128 326.1089 324.664 323.1107 321.282 319.1956 316.9212 315.0143 313.6174 309.9074 307.1103 305.8546 302.8928 299.2676 298.3896 298.4716 298.6855 301.0609 303.2338 307.4391 309.9397 312.0823 314.3922 316.999 318.7408 317.9555 315.9171 309.3365 310.384 312.0976 315.0475 317.6724 319.4459 319.8619 319.0978 317.2665 314.6874 315.4694 315.9503 314.6006 315.9414 316.4136 314.8688 313.2436 311.1544 310.082 310.7863 309.3556 307.7557 305.4151 298.8071 295.0177 295.849 297.5405 301.2814 303.4393 304.841 304.1522 302.7086 301.2561 299.2969 294.8908 290.4725 293.969 295.2926 295.9578 295.8229 294.5228 295.7076 295.7169 294.1031 291.6703 286.8643 284.348 281.0213 278.1941 273.3697 271.6866 269.5764 273.0262 275.9523 280.8412 281.4555 280.0281 276.9391 279.4208 279.8243 278.3502 276.9646 276.6923 273.2829 270.2859 273.8232 276.2765 276.7233 276.3178 275.5486 275.412 274.2877 274.9582 272.8315 268.1979 264.3311 260.1771 259.366 257.6832 257.2549 257.5963 257.9551 259.6253 262.4499 260.4482 256.4622 255.1519 255.2948 254.1407 254.572 258.681 259.8874 257.723 258.3109 256.6599 257.4728 260.2528 267.0971 272.3786 272.0336 271.3507 270.8026 271.3821 271.6063 276.6945 280.3722 282.0606 283.5339 285.1352 287.9919 288.5679 288.697 287.3113 286.6172 285.3858 284.2696 285.01 285.7303 281.3325 281.5297 279.9671 279.3338 278.2901 277.5635 276.7516 275.5241 273.4706 268.9304 265.8633 263.6218 261.8771 261.7154 261.3835 259.6869 257.9334 256.0887 251.7206 252.0273 251.9701 251.7424 250.4936 251.0384 250.5051 248.8902 248.2346 246.5368 246.0286 245.1103 245.2539 242.6496 242.4731 242.6575 242.2398 242.7832 242.5776 242.75 241.2969 241.8123 241.9622 242.1712 242.2357 242.0577 242.7766 248.0521 249.4508 251.171 252.5991 254.162 254.7801 255.7644 256.4544 257.674 258.7239 259.1677 259.6745 259.9686 259.6454 259.3228 259.2189 259.0383 260.5824 263.4157 268.561 270.2408 271.5811 272.8095 274.2277 275.883 277.5678 279.1289 280.308 281.7698 281.0876 278.8686 276.8871 275.415 275.033 277.3108 278.6039 277.2744 277.1251 277.6391 277.4544 277.1277 277.1325 277.5649 276.8564 276.1874 275.9792 276.231 275.7972 276.0359 277.2763 278.9715 280.5523 281.7403 281.0603 279.3165 274.22 270.8754 268.6406 268.4369 269.5284 271.6589 272.9756 272.2606 270.475 267.3832 266.6464 265.9478 264.017 262.3837 259.4284 256.9754 256.0965 247.4583 240.1389 238.0432 237.586 238.2509 238.2141 235.7664 237.5612 237.9649 237.9249 237.4225 237.3702 237.5276 237.2349 237.1073 237.3317 237.8682 239.9538 243.123 249.4932 254.6297 258.9411 262.2804 264.2769 262.9569 260.0998 258.0063 256.7854 255.1826 253.3078 253.4776 253.6658 252.8477 252.1234 251.8369 249.9598 248.4465 246.5438 243.9872 241.6181 241.2739 242.3576 244.4603 246.2291 248.5405 250.9295 251.9851 255.4712 255.6559 255.775 255.9257 256.0356 255.862 258.0885 259.1894 259.8327 260.463 260.7044 261.6736 262.7281 263.2721 264.4333 264.4237 263.8671 262.5946 261.9448 261.7591 261.0388 260.1228 259.7805 258.9589 257.3503 260.7249 262.9669 268.5213 270.6261 271.724 271.842 271.4426 270.9909 271.2025 272.726 273.7825 275.7461 276.4676 276.7945 276.942 276.3986 275.7307 275.4467 275.5978 275.618 274.7564 274.8599 275.1378 275.1371 274.4478 272.9155 270.4489 265.9712 263.173 263.6668 261.7286 265.8149 265.3447 269.7473 273.2755 275.2456 276.746 277.5146 277.0962 276.8665 276.6414 276.2959 276.3341 276.1468 275.9971 276.9332 277.875 278.6069 279.3971 279.4986 278.1265 276.0589 274.1253 273.0095 271.4284 269.1072 266.585 263.4809 -9999 -9999 +-9999 316.202 315.8829 315.274 314.2683 313.0283 311.7117 309.677 307.1216 308.8873 308.9516 306.6627 303.4507 300.3723 296.6889 294.5504 295.0379 299.4721 301.0155 302.6864 303.7872 303.8788 303.1366 301.4927 299.6462 297.8066 294.6752 293.5068 294.8478 295.0629 295.281 296.7573 303.1231 306.9114 309.7698 311.7446 315.0992 317.0098 318.5615 319.9564 321.3966 322.0538 321.9603 320.9892 319.9475 317.7335 316.8741 317.1447 318.4662 320.2503 321.563 322.7601 323.5045 323.7855 320.6992 316.2371 311.97 313.2494 313.616 314.025 316.9798 319.9287 322.8975 326.9247 328.7838 330.3701 331.1334 331.0433 331.0841 331.4511 331.834 332.7205 333.5574 334.2677 333.9839 331.3526 327.383 328.0621 332.7939 336.5005 338.3958 339.3269 340.7928 342.3228 343.4008 344.0085 343.1071 343.3456 345.5267 348.3144 351.8373 354.1386 355.1154 355.171 356.1746 355.3283 354.5026 356.2451 355.935 351.3985 348.731 345.0658 341.8608 339.5494 337.4854 336.1673 334.416 332.8902 330.2979 329.1337 328.2026 326.2395 323.8023 321.8438 320.3224 318.3905 316.3358 313.8208 311.3448 310.2845 310.007 305.3354 300.5227 298.9593 297.8047 297.9042 298.1467 305.1106 309.7261 312.0353 312.7881 313.1702 314.5789 315.8089 316.0557 313.1898 306.9076 307.812 311.1329 313.9617 316.0121 317.9476 318.299 317.5194 316.5333 312.0499 312.4218 312.6714 312.9297 314.472 314.5367 312.7382 310.7568 309.359 307.6334 309.0014 309.6405 309.111 306.8707 301.0551 292.1315 293.1865 296.1752 300.2179 302.3144 303.4513 302.9538 301.8953 300.6326 299.6287 295.9326 290.4725 293.969 295.2926 295.9578 295.8229 294.5228 295.7076 295.7169 294.1031 291.6703 286.8643 284.348 281.0213 278.1941 273.3697 271.6866 269.5764 273.0262 275.9523 280.8412 281.4555 280.0281 276.9391 279.4208 279.8243 278.3502 276.9646 276.6923 273.2829 270.2859 273.8232 277.3663 279.4451 280.4691 280.5663 279.894 277.9983 280.6701 279.8686 278.7698 275.1201 270.8951 266.9184 264.0065 257.4239 256.9719 255.9814 256.5513 256.9187 256.0434 255.5405 255.1838 255.1257 254.482 255.7931 262.2291 267.385 264.8228 262.0659 258.8337 262.6963 263.8178 269.7609 276.3315 279.8901 280.3409 278.3698 276.6304 276.1479 277.8391 277.7729 278.9837 280.6855 282.9475 286.3636 287.5183 287.5346 286.2463 284.5686 283.5196 282.3955 282.1182 282.199 280.1922 279.1672 278.5611 278.0056 277.3991 276.9363 276.5147 275.4466 273.4681 270.0288 267.7231 267.0299 265.9594 264.479 264.8372 264.376 262.2338 259.019 254.7384 254.0441 253.1944 252.2191 252.1217 252.5143 251.9333 251.2214 250.3046 248.1643 248.7657 246.9377 248.1231 248.0871 246.1739 244.2103 243.4918 243.4911 243.3928 242.4659 242.6684 240.92 242.0908 242.0715 242.0426 242.2032 242.7138 247.7276 249.146 250.406 251.8631 253.0962 253.7926 254.1565 255.1569 256.218 256.4453 255.7928 255.8081 255.6714 255.7722 256.6699 258.5185 261.205 264.2646 265.1411 268.961 270.46 272.0946 273.3542 274.6515 276.0966 277.8266 279.5692 280.737 281.8129 280.9322 279.6791 277.8068 276.1281 275.6242 277.4129 279.2397 278.3732 276.5348 277.0267 277.1667 277.4678 277.8786 278.1869 278.0428 277.3994 277.2707 277.5859 277.1694 277.3997 278.6838 279.7571 280.8458 281.8884 279.3753 275.8134 270.0312 268.109 266.3233 266.0302 267.6347 269.2188 269.7582 268.6275 266.9859 264.8607 264.778 264.5921 263.2567 261.3376 259.8367 257.7533 246.7715 249.046 238.4003 237.6167 238.1214 238.4984 238.8752 238.5708 238.3329 236.1614 235.8803 236.6657 237.743 237.4926 237.4862 237.3722 237.4019 240.5129 242.5627 243.7138 250.2739 254.8517 259.3042 262.57 264.3904 263.0457 261.5642 260.4418 258.4302 255.4662 254.1112 254.5735 254.8541 255.0366 254.8026 253.5184 252.0457 250.7677 248.6561 246.1615 243.4498 241.6235 241.8592 242.5607 243.2246 246.4167 248.6935 250.4858 252.4732 252.9244 254.5807 255.4204 255.5427 255.5375 255.9734 256.7195 257.0177 258.7402 259.3086 260.392 261.0497 261.6842 262.4749 262.3256 261.2829 259.394 259.4466 259.0545 257.5294 257.1311 255.3498 256.8417 262.3376 266.1479 267.5876 270.5231 272.3767 273.7763 273.8155 273.1721 272.5277 272.5817 273.2063 273.9914 275.6093 276.1711 276.3615 275.7012 275.2392 274.7248 274.2151 274.3192 274.1991 273.9062 273.6208 273.7934 273.4572 272.899 271.8828 269.7508 266.6575 262.6734 263.1736 265.3969 265.9728 267.5947 272.3147 275.0801 277.1604 279.0338 280.0282 280.2787 279.4133 278.6506 277.8159 277.5504 276.9111 276.5527 276.527 277.563 279.5571 279.9339 279.4194 278.4102 276.9064 275.641 274.026 272.2595 269.9498 268.208 264.7737 -9999 -9999 +-9999 315.7865 315.6447 314.9337 314.2499 312.9651 311.7042 310.3678 306.5855 306.2377 307.1716 306.5289 304.4803 301.5062 296.1467 294.2176 293.9081 298.8485 300.2154 301.4414 302.132 301.8295 301.3007 299.1627 295.6199 294.2279 293.7145 294.5287 294.568 294.9666 296.9581 299.9473 303.1465 305.5274 308.2367 309.817 313.0982 314.6394 315.8662 318.4424 320.6053 321.2968 320.6457 320.1104 318.7752 315.4016 315.1279 315.4759 317.1586 318.8552 320.0242 320.8194 321.3366 322.0321 319.4984 316.1715 312.409 312.1555 312.6138 314.4073 317.6062 320.1403 322.3015 326.0284 327.7434 330.2109 330.4195 329.4736 329.5516 330.0484 330.9828 331.4387 333.3998 333.1893 332.136 329.8436 326.0218 328.4389 332.3673 335.4694 338.0754 338.6326 339.1163 339.8914 340.603 340.986 342.0733 343.4413 345.1356 346.7795 351.3834 353.2127 353.5007 353.6518 354.2666 353.8676 353.002 352.5241 352.7554 351.7404 348.6305 345.432 342.7339 340.5367 338.2751 336.0092 334.9186 333.1933 330.6145 329.8703 328.8266 326.9927 324.7403 323.1402 322.1508 320.5724 319.0874 316.1863 313.7429 313.1925 312.106 308.5876 304.5352 300.2519 298.3409 297.3346 296.865 303.4429 307.6816 310.0814 311.4064 310.4791 311.3484 313.0731 314.3821 311.879 305.4267 305.8815 309.5737 313.1472 314.9581 315.433 318.299 317.5194 316.5333 312.0499 312.4218 312.6714 312.9297 314.472 314.5367 312.7382 310.7568 309.359 307.6334 309.0014 309.6405 309.111 306.8707 301.0551 292.1315 293.1865 296.1752 300.2179 302.3144 303.4513 302.9538 301.8953 300.6326 299.6287 295.9326 288.5771 291.1345 292.9632 294.8595 294.3607 293.1833 294.5918 295.1961 294.3781 293.1682 286.437 283.1642 281.765 279.7239 273.73 269.9815 271.4583 274.813 278.2025 284.8723 284.8147 283.5806 281.2265 283.1082 284.4862 283.644 282.06 281.0587 278.7563 273.8054 273.4319 278.0388 281.0561 283.4223 284.8627 284.6846 281.9495 285.6707 285.3799 284.5591 282.1737 277.9128 272.9716 269.6835 261.9471 257.1458 256.8446 255.1622 256.3412 254.5424 255.8084 255.4488 253.542 255.5313 258.6484 264.6836 271.7989 269.7215 266.6682 263.8704 264.7743 268.1143 271.8571 278.5201 282.896 286.0711 285.1588 282.6114 281.1203 281.8575 282.3073 280.5873 279.8205 281.1273 285.0188 286.6355 287.1073 285.778 283.8005 282.2517 281.4546 282.1109 279.3684 277.1388 276.8481 276.6352 276.3883 276.174 276.2251 275.7723 275.5738 274.6413 271.1792 269.9544 269.1469 268.6221 268.043 268.5244 267.7796 264.8712 261.8991 256.9377 255.6358 254.8165 254.5704 254.3757 253.985 253.5876 253.1032 252.2132 249.3658 249.0858 248.6572 249.1738 250.5914 250.2581 248.894 246.6643 244.9358 242.6806 242.2627 242.2607 241.9815 241.7926 242.1015 242.0414 242.163 242.2449 246.2399 248.7587 250.3116 251.172 251.9419 252.1033 252.6001 253.6305 253.8875 252.3065 251.7399 251.8953 256.7302 259.0117 261.6388 263.5995 265.7606 266.719 267.9087 270.175 271.6594 273.0582 274.3932 275.3185 276.8137 278.5651 279.9655 281.1397 282.2854 281.2824 280.6124 279.5122 277.5753 276.2092 276.7621 277.7231 277.7623 275.3347 275.7075 276.2474 276.9221 277.2722 277.8866 278.2946 278.1846 278.1855 278.7048 278.7321 278.7693 279.1207 280.3253 281.207 280.3491 278.2065 275.2539 267.7689 265.0369 264.0174 264.2655 266.105 266.8452 266.9901 266.0071 264.1378 262.4002 262.1585 262.5732 262.4941 261.6793 259.6499 258.0432 253.3432 242.2734 237.8049 238.113 238.29 238.3311 238.334 238.3323 238.3664 238.3996 238.482 238.1076 235.7872 235.912 237.7209 237.4239 239.0349 243.5084 244.3707 245.3514 251.6897 256.3206 260.1248 263.1482 264.2767 263.2203 262.4318 260.7414 259.2214 256.0124 255.6335 255.918 256.3962 256.6622 256.8139 254.883 252.9719 252.126 251.19 247.9822 246.8271 244.2765 242.0741 242.3807 242.7183 242.9776 243.9519 246.9676 250.0007 251.5244 252.5103 252.707 253.06 252.9178 253.128 254.4417 255.6428 256.7769 257.478 258.0201 258.6081 259.4112 259.7037 258.8307 257.4886 256.0999 255.9596 254.2194 258.3597 261.2196 261.1951 262.1348 265.801 267.8824 269.2064 272 273.4152 274.9423 275.6198 275.094 274.5332 274.0206 274.2989 274.7879 275.913 275.7915 275.3033 274.8318 274.2372 273.4939 272.5286 271.9829 271.9634 272.2391 272.5506 272.6511 271.9836 271.1209 269.9487 267.9264 264.6295 261.4361 264.8983 267.3693 269.5227 270.6068 272.8811 275.2259 277.4891 279.4507 280.8715 282.4845 281.574 280.6797 279.4153 278.8574 278.2028 277.6868 277.0278 276.9226 278.7745 278.3321 277.997 277.3346 277.0178 276.342 274.9807 273.0975 271.0001 269.3836 264.8198 -9999 -9999 +-9999 314.7368 314.6851 314.5439 313.8553 312.5663 311.2013 309.7936 306.8471 305.161 305.0872 304.7553 303.7531 302.2595 298.9492 295.5683 294.0268 297.0288 298.788 299.8792 299.857 299.4964 296.4656 294.2463 294.1146 292.9167 294.2101 294.3597 296.5422 299.9134 301.3724 300.0917 301.3631 302.7726 304.5743 306.7877 309.9395 311.468 313.3712 316.0249 319.4221 320.0216 319.4079 319.0365 317.9591 313.3003 313.2279 313.6364 315.4945 317.2993 317.929 318.7008 319.3281 320.104 318.1656 315.1721 311.7346 311.2326 312.0816 313.9379 317.1192 319.38 321.3595 324.7528 325.9064 327.9948 328.1154 327.8508 327.9163 328.8917 330.2001 331.087 332.6167 331.6476 329.9563 327.3645 324.9785 328.0117 331.1819 333.2095 335.2728 336.0059 336.5125 338.1974 339.6833 341.5362 343.2675 344.6729 346.367 348.0641 350.82 352.2786 352.8521 352.9876 352.9203 352.0803 349.1458 349.2371 349.6693 350.0834 347.7766 342.802 339.1811 336.554 334.3556 333.2814 333.1918 332.0784 328.8397 328.2229 327.9442 327.1284 325.6095 323.1402 322.1508 320.5724 319.0874 316.1863 313.7429 313.1925 312.106 308.5876 304.5352 300.2519 298.3409 297.3346 297.9013 303.4429 307.6816 310.0814 311.4064 310.4791 311.3484 313.0731 314.3821 311.879 305.4267 305.8815 309.5737 313.1472 314.9581 315.433 315.6725 315.5714 314.2971 309.9663 308.7477 310.263 311.0283 311.9772 311.7681 309.7408 307.4859 306.4164 305.9841 307.0915 307.8724 308.3453 306.1094 301.0003 295.4748 291.5899 293.8413 299.3586 301.5311 302.2915 301.9388 300.6869 299.5124 299.3708 296.8795 289.7345 288.4847 291.5473 292.8104 292.1978 291.9866 293.06 293.6335 293.5552 293.078 288.2586 285.1729 283.4461 279.524 272.95 270.4606 271.2262 273.7758 278.317 286.0909 286.915 286.1757 284.057 284.9881 288.0205 288.3745 287.174 285.4834 281.5846 277.3535 274.7353 277.8011 281.7079 285.0169 288.0871 289.0209 286.7104 288.3839 289.4902 288.5902 286.5226 281.7777 276.5325 273.4798 267.2249 259.5731 256.8831 256.579 256.3246 255.9541 255.7689 255.7749 256.104 257.1495 260.7267 265.7098 272.2463 272.4189 269.6889 266.1674 266.7071 269.8687 273.2302 277.9879 282.3256 289.5509 289.2314 288.1925 285.1635 285.5901 286.5265 285.0198 282.7177 281.8577 284.3112 285.7951 286.6487 285.6256 283.5182 282.2499 280.7127 277.3453 275.865 273.751 274.1253 274.4953 274.2332 274.1004 274.0474 274.0983 275.2489 275.371 272.9811 271.4924 271.1646 270.6437 270.4 270.0326 268.2018 265.6099 262.8238 258.8991 256.3332 255.0617 255.5309 255.5657 255.3991 255.3023 254.4718 253.4388 249.9627 250.2672 250.2136 249.6589 250.9898 251.6938 250.7517 248.4816 245.8277 242.1043 242.2314 242.0567 242.6674 241.0122 242.3234 242.3605 242.0407 242.5593 246.8562 248.2362 249.2227 250.1734 250.3159 250.1414 250.0172 249.8824 249.1562 251.3361 252.6146 255.7566 258.5112 260.8781 263.0878 265.6886 267.0862 268.4812 269.5327 272.6731 274.1275 275.3398 276.2265 276.8208 277.8553 279.2541 280.5324 281.7505 282.9916 282.3831 281.6104 280.3946 278.8041 276.9691 276.1977 276.4409 276.3894 274.6623 274.5093 274.9021 275.9185 276.4329 276.9638 277.3315 277.8359 278.0522 278.592 278.2931 278.4475 279.4964 280.5952 280.0703 278.6988 276.6777 274.1696 268.3798 264.488 262.012 262.2488 263.9059 264.0647 264.2968 263.4389 261.4341 260.5462 260.7105 261.4558 261.4653 260.8565 259.2643 255.8888 242.2164 238.1818 237.7233 237.9944 237.9919 237.8522 237.6483 238.0975 237.807 237.9259 238.0121 238.1757 238.5047 235.668 237.7321 238.4853 241.0497 243.8929 245.3795 246.8338 252.1504 256.9792 260.9867 263.5039 263.2945 262.125 260.8071 259.7781 258.5891 255.8237 255.7834 256.9398 257.6311 258.0634 258.257 257.0576 254.8809 254.5807 252.8957 250.2993 248.653 246.1377 244.2294 242.8457 242.9391 244.9581 246.4214 244.8748 248.681 248.5049 249.1551 249.3396 249.6163 249.8337 251.2512 252.7525 252.5871 254.4067 254.6408 254.7305 255.253 255.5638 255.4782 254.6107 254.1262 253.9314 255.2155 260.4433 265.1007 267.1926 264.6468 265.366 267.0552 268.8102 270.039 272.9255 274.2433 275.5502 276.5235 276.4122 276.1052 275.5468 275.2586 275.5796 274.9343 275.0143 274.9259 272.9825 271.7389 270.3713 269.8077 269.4003 269.8697 271.4941 271.6133 271.0401 270.3335 269.7741 267.8114 265.578 264.6295 261.4361 264.8983 267.3693 269.5227 270.6068 272.8811 275.2259 277.4891 279.4507 280.8715 282.4845 281.574 280.6797 279.4153 278.8574 278.2028 277.6868 277.0278 276.9226 278.7745 278.3321 277.997 277.3346 277.0178 276.342 274.9807 273.0975 271.0001 269.3836 264.8198 -9999 -9999 +-9999 314.161 313.6979 313.908 312.7323 311.6933 310.4249 308.9672 306.2956 304.3795 303.5045 302.3463 301.4181 300.1515 298.029 298.1262 296.2397 294.2284 296.8094 296.3938 294.8736 294.5354 293.5101 293.8508 293.6067 293.8014 296.6718 300.0447 302.8057 303.7361 305.0847 305.6192 303.791 303.8492 305.8072 307.9638 309.1518 310.7329 312.3453 314.0913 316.5519 318.0951 318.7196 318.5309 317.554 312.4925 311.8916 312.0932 313.7686 315.6147 317.1886 317.5542 318.1395 318.513 316.16 313.0561 310.6568 311.3066 313.3607 314.4255 315.7162 319.3866 319.4167 321.9369 323.7076 325.1798 325.618 325.9588 326.9353 328.695 330.1512 331.0826 331.4861 329.6958 326.7401 323.8063 324.5825 327.1459 329.3582 330.585 331.8112 335.8605 337.8017 338.7727 340.3986 341.5362 343.2675 344.6729 346.367 348.0641 350.82 352.2786 352.8521 352.9876 352.9203 352.0803 349.1458 349.2371 349.6693 350.0834 347.7766 342.802 339.1811 336.554 334.3556 333.2814 333.1918 332.0784 328.8397 328.2229 327.9442 327.1284 325.6095 324.2828 323.6734 322.4737 321.3839 319.2862 317.905 316.5764 314.7817 311.6622 307.6487 304.4561 300.8218 297.9936 296.4996 298.4717 303.353 305.424 307.4589 307.1678 309.5324 310.6942 310.5655 308.6516 302.1795 305.5343 310.6269 312.9386 313.8613 313.6037 313.7863 314.0911 312.7992 308.4721 306.1638 307.6381 308.9276 309.1483 308.12 305.9319 303.3963 302.748 303.6044 305.005 306.078 306.6196 304.6234 300.823 295.4619 289.1852 292.186 298.3777 300.4929 301.3191 300.8564 299.2168 298.2915 298.2356 297.491 293.7083 286.1137 289.567 290.2885 289.2074 290.6056 291.2563 291.4048 291.6647 291.3663 287.1837 283.4914 279.3585 272.166 270.3331 271.8637 271.8106 273.9341 278.5586 286.4002 288.5897 288.3503 287.0564 286.2452 289.5978 291.6466 291.1983 288.9924 284.435 281.3661 278.4861 278.6321 283.4696 286.0221 289.3616 291.4927 289.808 291.0954 291.55 290.374 287.9846 283.1144 278.4571 274.2909 269.7108 262.7894 257.3932 257.0392 256.8232 256.289 256.4353 256.4376 257.0936 258.7456 262.1652 266.0345 273.3081 274.249 273.106 269.2143 269.3398 271.623 276.0992 279.6974 282.6042 290.5355 291.8388 291.3239 288.4254 289.2976 290.1853 289.3922 286.8366 285.3539 283.747 284.9883 285.6139 284.9613 283.5761 280.9192 278.4362 275.2127 273.3698 271.1474 271.551 272.0912 272.0845 271.8601 271.6818 272.5869 274.5843 275.5197 274.2684 272.8961 271.9346 271.5238 271.3862 270.4246 268.2755 265.811 263.3686 259.7168 257.3927 256.9774 257.58 257.5561 257.6689 256.3756 254.9172 253.4403 251.397 252.3357 251.511 250.175 251.4237 252.2852 250.7279 248.4877 246.5504 241.9753 242.0036 242.0499 242.287 240.8989 242.4644 242.177 241.9448 243.0633 244.9953 245.0238 245.6826 246.3937 246.5931 246.1035 246.224 248.6817 251.5406 253.5177 252.6736 256.3072 259.1595 261.8761 264.3696 266.373 268.0438 269.3998 271.1804 274.6515 276.4275 277.7442 278.6718 279.3199 279.7493 280.8018 281.718 282.5851 283.5688 282.6284 281.6203 280.5894 279.0545 277.5367 275.8513 274.8793 274.4434 274.0488 274.002 274.1703 274.5191 275.1424 275.9044 276.5764 276.8568 277.049 277.6538 277.5359 277.9267 279.0201 279.9309 279.4708 277.9751 275.8532 273.2972 267.8391 265.2947 262.8781 260.2466 259.8553 260.4849 261.0261 260.5629 259.2652 258.3093 259.0501 259.7318 259.5188 259.0424 258.2177 256.8832 242.5658 237.3147 237.6832 237.6844 237.5563 237.5573 237.3341 237.7162 237.5546 237.5011 237.4779 238.361 235.8616 238.0242 238.614 240.2014 241.8253 244.3275 246.1085 248.2852 253.7462 257.3416 260.1362 261.6525 261.77 260.3972 258.9343 258.4703 257.1333 255.2141 255.5407 257.2403 259.0269 259.4987 259.61 258.2476 257.5433 256.6599 254.7255 251.7403 249.9408 247.4621 246.5582 247.0041 247.0745 249.3762 250.9873 250.5972 246.641 247.8644 246.8238 247.1545 247.6477 248.6399 248.9073 248.9978 249.5428 251.0379 251.0322 251.2492 250.7398 255.5638 255.4782 254.6107 254.1262 253.9314 255.2155 260.4433 265.1007 267.1926 264.6468 265.366 267.0552 268.8102 270.039 272.9255 274.2433 275.5502 276.5235 276.4122 276.1052 275.5468 275.2586 275.5796 274.9343 275.0143 274.9259 272.9825 271.7389 270.3713 269.8077 269.4003 269.8697 271.4941 271.6133 271.0401 270.3335 269.7741 267.8114 265.578 261.903 260.0573 265.679 267.9822 269.9857 271.4325 273.2643 275.3849 277.1691 279.0839 280.7293 282.5125 282.8113 282.3319 280.8865 279.855 279.7119 279.3242 278.5197 276.7975 277.3062 276.9514 276.4107 276.1512 275.9545 275.6244 275.1188 274.2383 272.4873 268.1418 266.6704 -9999 -9999 +-9999 312.856 312.0805 312.3456 311.7262 310.0279 308.1857 307.3283 304.1896 304.0114 304.2063 302.8322 301.9534 300.9631 301.2692 300.0361 297.135 293.1903 293.2347 293.131 293.3835 292.8019 294.5351 295.368 298.0393 301.7514 305.5344 307.0333 307.8518 308.7869 309.2737 309.6468 308.1387 307.6442 309.4517 310.9616 312.8626 314.3153 314.0285 313.7308 315.1551 317.1767 318.2585 318.7133 318.386 312.475 310.9701 311.1009 313.3472 314.6909 315.8095 316.4684 316.5864 316.7901 314.2077 310.4716 309.5642 312.2826 313.3607 314.4255 315.7162 319.3866 319.4167 321.9369 323.7076 325.1798 325.618 325.9588 326.9353 328.695 330.1512 331.0826 331.4861 329.6958 326.7401 323.8063 324.5825 327.1459 329.3582 330.585 331.8112 335.8605 337.8017 338.7727 340.3986 341.8679 343.2039 343.9191 345.3956 347.4228 348.4841 350.0624 351.13 351.1089 351.4954 351.4052 347.0828 343.5683 344.7686 346.6567 346.1052 341.0524 333.3269 332.3322 331.0857 329.953 330.251 329.6111 327.6898 327.146 326.5004 325.77 324.58 323.4198 323.3138 322.9285 321.8677 320.2864 319.3795 317.8505 315.568 313.1745 309.9683 307.0825 306.0274 303.2166 294.403 295.758 297.5262 300.7091 303.2246 306.5546 308.3541 308.3074 307.059 304.5214 301.5912 305.9649 309.6123 310.7198 311.3858 311.8927 312.6378 313.0521 311.6276 306.3167 304.2016 305.1454 306.2174 306.6415 303.9497 299.7006 297.4755 298.5874 301.0516 302.6362 303.8544 304.2 303.1099 299.741 295.1847 290.192 290.5504 297.7221 299.3152 299.9684 299.7617 298.214 297.0157 296.572 296.4147 295.1559 283.8712 285.9594 287.0057 288.7243 290.3784 290.2029 288.3697 288.691 288.9755 285.7078 282.1978 276.6303 270.7842 272.126 272.0858 272.0899 273.8015 279.7241 288.6308 290.8445 290.844 289.5234 288.5703 290.1855 292.8223 294.0453 291.3011 285.9182 284.2316 281.3206 281.1705 285.7332 288.9405 291.4706 293.1516 292.5943 292.6997 292.0896 288.9878 285.4699 281.5715 278.3393 274.3205 270.3348 265.0363 259.0823 258.3669 257.3171 257.3372 257.7956 257.7968 258.6226 261.6589 264.6244 267.9332 275.8518 277.3838 276.3884 273.279 274.7713 276.0054 278.388 281.8965 285.8902 292.0348 293.6684 294.2299 291.5014 290.8344 292.2223 291.875 289.7114 288.0154 285.1835 284.9576 285.562 284.7403 283.6147 282.1604 280.6144 277.1357 274.2383 269.049 268.8401 269.5331 269.7428 269.8773 270.7124 272.3922 274.0825 275.3344 274.6306 273.5042 272.739 272.1992 271.5657 270.0058 267.8027 265.3447 263.3752 261.5576 259.4907 260.2071 260.1859 259.3035 258.9211 257.4128 256.1214 254.3214 254.132 253.9351 252.3785 251.2458 251.5224 252.8095 251.5458 248.9014 247.2736 242.5699 241.8954 241.9918 242.1062 242.432 242.3478 242.2895 242.5846 242.6211 243.905 244.0726 248.052 249.522 252.4738 254.7605 255.7423 257.1651 257.3929 257.0374 256.6299 257.721 259.8203 262.588 264.53 266.4244 268.5602 270.691 274.8014 276.6581 278.146 279.5829 280.5027 281.3567 281.7854 282.4465 283.3024 283.7592 284.1454 283.1995 281.9587 280.1875 278.9858 277.6661 275.7819 274.3076 272.9651 273.2802 273.3767 273.3351 273.4772 273.5889 274.346 274.9037 275.8017 276.1022 276.4106 276.5468 276.9204 277.8117 279.4698 280.191 279.5791 277.2067 273.9167 267.8865 264.2326 260.6946 258.3954 256.4352 255.7753 256.7981 257.9392 257.2049 256.3934 257.5305 257.7483 257.4609 257.0242 256.6674 256.0169 254.72 241.1783 236.9956 237.1091 237.114 237.11 237.2281 237.2386 237.3871 237.3515 237.5717 238.2984 235.6346 237.9203 240.2202 242.3323 243.048 244.8685 246.446 248.8905 253.9789 257.2805 259.9267 261.6525 261.77 260.3972 258.9343 258.4703 257.1333 255.2141 255.5407 257.2403 259.0269 259.4987 259.61 258.2476 257.5433 256.6599 253.3973 251.7403 249.9408 247.4621 246.5582 247.0041 247.0745 249.3762 250.9873 250.5972 246.641 247.8644 246.8238 247.1545 247.6477 248.6399 248.9073 248.9978 249.5428 251.0379 251.0322 251.2492 250.7398 251.1376 251.2206 252.4682 251.9473 252.4387 255.7742 260.2503 263.1425 265.4315 265.2594 265.7665 267.2165 268.8873 269.9799 272.9708 274.1122 275.1603 276.0956 276.4512 276.5039 276.2388 275.6469 275.3813 274.471 274.9242 274.7961 272.093 269.1578 267.5992 267.4577 267.2012 267.4453 270.6375 270.8218 270.0098 268.5765 268.0399 266.8281 263.2524 259.6479 261.3244 265.4433 267.8228 269.4637 271.1002 273.02 274.8344 276.4876 278.1099 279.3212 281.3407 282.0294 282.2414 281.4334 280.579 280.6739 280.0527 278.963 277.4724 275.5237 275.2984 275.0241 275.0697 274.1882 274.3439 274.3324 274.28 273.8331 270.846 269.7758 -9999 -9999 +-9999 312.2187 310.9058 311.1985 310.6296 309.1685 306.3413 304.0917 302.4376 303.0281 304.3966 304.2549 303.543 302.9636 302.5044 300.8701 298.1352 293.2052 291.5441 293.0021 296.1299 300.5674 303.6663 305.3521 306.9618 309.1677 311.114 312.0201 312.6519 312.8907 313.1997 309.6468 308.1387 307.6442 309.4517 310.9616 312.8626 314.3153 314.0285 313.7308 315.1551 317.1767 318.2585 318.7133 315.695 312.475 310.9701 311.1009 313.3472 314.6909 315.8095 316.4684 316.5864 316.7901 314.2077 310.4716 309.5642 312.2826 316.0955 317.9231 318.3088 319.3831 319.4969 321.0321 321.342 322.2938 323.5676 324.867 326.742 328.7578 329.7421 330.2634 329.5214 328.1749 323.558 322.3692 325.063 326.7272 328.3579 330.3272 332.0239 337.7933 338.475 339.2425 339.5549 340.0504 341.3944 343.146 344.9238 345.7429 346.5005 347.9076 347.8777 348.2307 350.0578 350.7386 348.092 341.5089 340.1457 343.7485 343.5276 340.0126 330.5282 327.2768 326.6351 327.1978 327.3369 326.8505 325.7376 325.0755 325.1312 324.7221 322.7601 321.9756 321.7961 321.5829 321.5829 320.2595 319.6958 318.2762 316.208 313.988 312.1027 310.4628 309.5339 306.9631 298.139 293.7318 295.7876 298.3899 302.7567 305.6225 307.0394 304.8468 301.9883 299.5543 302.4786 305.329 307.5657 308.6658 309.3987 310.5688 311.3122 312.0797 311.5604 303.7144 301.7394 301.7501 302.5457 304.947 303.9973 298.8347 294.7639 295.3391 298.3891 300.2827 301.34 301.9991 301.6476 299.5004 294.6635 290.1082 289.5422 295.8074 297.8619 298.3814 298.3174 296.6446 294.84 294.312 294.5624 294.7477 286.6555 283.8083 286.2559 287.8741 289.0444 287.6063 284.7169 285.001 285.8813 284.0245 280.903 275.543 272.6695 271.9944 272.5086 272.521 276.4723 281.3131 290.2029 292.1512 292.5443 291.1948 290.8726 291.5539 293.5134 294.6135 292.9665 288.8111 287.2566 282.9658 282.7276 287.0475 290.5698 293.0304 294.5962 294.941 291.6494 289.3061 286.0544 282.4472 279.144 276.376 273.0666 267.9534 264.1368 261.6107 260.297 258.3692 259.5742 261.0463 260.4131 261.5119 264.3231 266.7827 274.0814 277.7512 279.5247 279.1094 277.2328 278.3734 280.0807 281.6238 284.1371 287.7853 294.9791 296.6094 296.877 294.1468 292.737 293.4446 293.5762 291.6082 289.3531 287.3024 287.1668 285.7054 285.097 284.6398 283.4824 282.1733 281.0745 280.0114 267.2441 267.7304 267.7394 268.1118 268.3737 270.1214 271.5083 273.3867 274.4274 274.2255 273.0505 272.5172 271.7139 270.3573 268.4832 266.767 265.3329 264.2676 263.6366 262.4117 261.923 261.5489 260.7309 259.8283 258.6093 258.0635 256.7719 256.6701 255.397 253.8155 252.541 251.8195 251.7316 249.7785 248.3194 246.3776 245.322 244.8699 242.2757 241.8328 242.4378 242.0215 242.1919 242.3041 242.3252 246.3258 249.2695 252.132 255.9965 258.6529 260.8405 261.4796 262.4145 262.62 261.9161 261.3587 261.4933 260.7493 262.2599 264.252 266.0215 268.4255 271.0963 275.5195 277.4119 279.1291 280.3964 281.5215 282.4013 283.1392 283.6513 284.3362 284.9198 284.3965 283.2957 282.0592 280.2401 278.9193 277.1321 275.6072 274.153 272.3755 271.6613 272.0857 272.1277 272.3209 272.4159 272.553 273.1495 273.8262 274.1042 274.3084 275.1765 275.815 276.7315 278.5478 280.5972 280.5195 277.1362 273.8643 267.9802 265.2539 262.2332 258.3954 256.4352 255.7753 256.7981 257.9392 257.2049 256.3934 257.5305 257.7483 257.4609 257.0242 256.6674 256.0169 254.72 241.1783 236.9956 237.1091 237.114 237.11 237.2281 237.2386 237.3871 237.3515 237.5717 238.2984 235.6346 237.9203 240.2202 242.3323 243.048 244.8685 246.446 248.8905 253.9789 257.2805 259.9267 260.6271 260.5721 258.4644 257.6756 256.1779 255.4657 253.7247 254.9456 257.2531 259.2002 260.2346 261.0761 260.1808 259.5515 258.6811 255.4721 253.6305 250.9143 249.6551 248.1923 249.7607 249.3746 251.2171 253.8438 254.1362 250.4454 249.9056 249.7405 249.7536 248.9883 249.0397 250.8172 251.2882 249.8037 250.8558 253.5629 255.1741 258.0129 255.6015 254.6032 254.3923 252.5664 252.5932 253.4936 255.5497 258.1028 260.2495 262.4636 264.3313 265.9354 267.0507 268.4174 271.0267 272.8076 274.4088 275.2021 275.6364 275.6061 275.5767 275.0063 274.437 273.9586 275.335 276.821 276.5289 274.5531 270.7656 268.4085 267.1093 266.5666 269.2658 270.0133 269.5233 267.9296 265.0116 264.2284 260.3496 260.3349 261.6778 265.7665 268.3906 270.7293 271.1158 272.0901 273.4801 275.0232 276.4473 277.9197 279.9297 280.8792 281.7198 281.5373 281.0844 280.7046 279.9019 278.6331 277.2588 273.6318 273.5855 273.8931 273.2154 272.4937 272.5254 273.0854 273.1394 273.0945 273.191 272.2089 -9999 -9999 +-9999 311.3317 310.4542 309.5585 308.3571 309.1685 306.3413 304.0917 302.4376 303.0281 304.3966 304.2549 303.543 302.9636 302.5044 300.8701 298.1352 293.2052 291.5441 293.0021 296.1299 300.5674 303.6663 305.3521 306.9618 309.1677 311.114 312.0201 312.6519 312.8907 313.1997 313.4452 312.1477 310.4299 312.2321 314.3881 315.6344 317.4407 317.8194 317.4948 316.6404 318.3954 318.7735 318.9481 317.2784 314.7611 311.1761 310.9931 311.5846 313.4007 314.6486 315.1559 314.7465 314.5915 311.4033 308.996 309.2748 311.6787 316.8762 319.8725 321.8524 322.0447 322.7228 322.3065 322.0138 322.3612 324.0554 325.2681 327.4151 329.2684 330.332 330.0349 327.2347 324.6844 320.4757 323.3572 325.3829 327.5878 329.2231 330.9402 332.7264 336.5854 338.4314 338.5916 338.2888 338.5589 340.9529 342.5385 343.409 343.1458 345.03 344.9495 345.6625 347.8175 349.1346 349.7017 349.111 345.5745 339.3181 339.6119 340.886 340.1477 336.736 332.7282 325.7414 323.5393 323.8678 323.8927 323.4345 322.6766 322.9548 322.7259 321.8156 320.3669 320.2373 319.3842 319.7878 318.5804 317.9243 317.4888 316.1782 314.8838 313.8607 312.84 311.7472 310.5379 303.1751 297.0031 295.3469 296.2539 300.7832 302.3978 303.2058 300.0499 298.2575 303.8512 305.9103 307.3943 307.4515 307.2413 307.5978 309.4605 310.0306 311.3011 311.1188 306.7262 302.6042 299.6869 299.3561 303.4124 304.7755 303.3264 299.44 292.9152 294.675 297.0507 298.5484 299.2746 299.4884 298.4217 293.8421 288.2368 287.9935 294.1044 296.1363 296.4576 296.0455 295.0443 293.3693 292.241 292.2838 293.13 285.8346 282.2649 287.6378 288.4248 284.7372 282.5924 279.3999 279.7844 282.1211 283.3618 281.4852 279.6298 279.0805 275.6346 270.6976 273.1459 278.0164 282.3202 289.9187 291.5946 292.4898 292.2611 291.6028 292.6795 294.2305 295.3142 294.6882 292.0749 290.2071 286.7665 284.4269 288.1407 290.5174 293.169 295.1235 295.6231 290.9808 286.6733 283.7408 280.3397 277.7044 274.6572 271.355 267.9139 264.8871 264.9798 263.1957 260.3755 260.3638 263.0218 264.2636 265.7011 267.5295 270.3511 275.8367 278.8997 280.8282 281.2912 280.0393 281.2802 283.0059 285.2404 287.4778 290.3763 297.1114 299.0835 299.173 296.4256 294.5075 294.8054 294.7409 292.868 290.7077 289.0012 288.0936 286.0587 284.6134 284.1827 283.1416 282.7839 282.9565 281.8158 272.4548 266.7921 263.0088 265.1678 267.8937 268.7301 270.6506 272.1589 273.4497 273.1535 272.0982 271.442 270.8814 269.8468 268.4481 267.6235 266.5443 266.0024 264.8787 264.0432 263.4124 263.0822 262.2537 261.2508 260.3542 260.0445 259.5421 258.6637 257.1078 255.541 254.0173 252.3804 250.5794 248.9487 248.2504 248.5042 247.4006 246.1868 242.6286 241.9448 242.2693 241.0556 241.8791 241.7454 242.2216 246.2938 249.3889 252.3753 256.0285 259.8531 262.9917 265.2054 266.4 266.52 265.8968 265.3866 265.4744 265.6504 264.6326 263.2411 266.9449 269.0674 270.5068 275.3609 277.2032 279.0164 280.5051 281.6773 282.4013 283.1392 283.6513 284.3362 284.9198 284.3965 283.2957 282.0592 280.2401 278.9193 277.1321 275.6072 274.153 272.3755 271.6613 272.0857 272.1277 272.3209 272.4159 272.553 273.1495 273.8262 274.1042 274.3084 275.1765 275.815 276.7315 278.5478 280.5972 280.5195 277.1362 273.8643 267.9802 265.2539 262.2332 257.8713 255.2449 253.5333 252.6009 254.335 254.536 255.3448 255.4928 255.2334 255.5089 254.9673 254.7181 254.7414 254.9718 254.4397 248.2033 245.3128 241.405 236.859 236.9909 236.9827 236.8563 236.9388 236.9688 238.0772 235.5698 238.0873 242.6598 244.2532 245.1178 245.7629 247.0848 249.2556 253.7355 256.5676 259.4074 259.6649 258.2756 257.1348 255.8652 254.4613 253.6917 252.5931 254.6174 257.2463 259.3142 260.4926 261.7726 261.9202 261.2156 260.5566 257.0448 255.3044 252.8261 251.188 249.7546 250.4372 250.9457 252.2061 254.6037 255.7061 253.9737 253.1439 254.2016 254.376 254.7455 254.9022 255.0345 255.4499 255.6807 257.676 258.306 259.7562 263.4722 265.1523 262.3923 261.489 259.8363 256.3943 254.5235 253.6496 254.712 257.1474 259.4106 261.4171 263.6349 264.9698 266.6815 269.2904 271.4252 273.0677 274.0144 274.2295 274.3638 274.2084 273.7936 273.333 274.4634 275.6979 277.2266 278.8366 279.1844 277.2682 272.1944 265.6082 265.8422 267.2492 269.1241 267.982 266.3792 264.5177 260.5971 258.7643 260.7069 262.0696 266.6292 268.2732 270.0412 271.4526 272.5302 273.1519 274.1186 275.5999 276.9036 279.3486 280.6174 281.6724 282.0108 281.1501 280.3654 279.6325 277.1971 275.7957 272.8409 272.596 272.1017 271.1919 270.6643 271.3693 271.5324 271.6947 272.3296 273.3705 274.3623 -9999 -9999 +-9999 311.3317 310.4542 309.5585 308.3571 306.2476 304.3404 304.0243 301.474 300.6407 302.4572 303.3825 303.7028 302.8306 301.1435 298.5695 294.2086 293.5367 295.3648 297.1426 302.0903 306.6041 309.3563 311.0799 312.2299 313.2774 314.9456 316.1281 317.4352 317.805 317.7053 317.3934 314.7993 313.5965 316.8414 318.1093 318.4817 319.4934 319.8431 319.3866 319.1986 319.3256 319.4758 318.4143 316.3864 315.3037 311.8676 309.7945 312.1304 314.1306 314.545 314.0666 313.224 312.5338 308.5184 307.6265 309.6289 314.3552 317.4043 320.2018 323.2529 325.7866 325.8869 324.6337 324.4867 324.5961 325.9453 326.9919 328.3227 329.7172 330.3168 329.4508 324.9826 321.8786 319.9806 322.3736 325.3186 327.0392 328.4587 329.8094 331.5075 335.1443 336.7105 337.1138 336.87 338.1782 339.8664 340.5313 340.7587 340.5975 342.5502 342.3955 344.9766 347.0249 347.6136 347.8449 348.006 346.0368 342.4183 334.8761 336.5485 336.317 335.1541 332.157 327.0192 319.2609 320.1729 319.8793 320.6731 320.1396 319.9751 320.5674 319.2145 318.1896 318.3344 317.732 317.6866 316.3461 315.6263 315.9624 315.2949 314.2922 313.3596 312.5048 311.4682 310.3352 305.8831 301.6922 295.529 295.3541 296.4274 296.8182 296.344 297.5965 299.5806 304.1316 306.1954 307.3677 307.491 306.177 307.0126 307.9028 309.4116 310.0432 309.8363 306.6187 305.3621 302.279 299.29 301.6729 304.4003 305.6154 304.6203 300.6566 290.6335 292.5444 294.9248 296.6573 297.3216 296.6886 293.2765 289.3134 285.3684 292.5338 294.0724 294.2608 293.4607 292.1017 291.4471 290.4835 290.2053 290.8826 285.6736 282.1359 287.6105 285.7807 278.671 275.4339 275.027 275.3137 278.5136 280.2712 278.8361 275.9652 275.65 273.9525 272.708 273.2143 276.2471 279.4331 286.1776 289.2598 291.6799 292.7626 292.8686 293.5416 295.0587 296.0297 295.911 294.2219 292.4887 289.9711 287.1416 289.0608 291.6682 293.8212 295.5742 296.446 291.9088 287.8234 284.064 280.9474 278.1415 276.2416 274.2628 272.5807 270.0189 267.5014 266.0196 262.5868 260.7982 263.2515 265.6371 267.0406 268.9584 272.3582 278.5215 281.1525 283.1479 284.0102 283.2257 283.7402 285.2081 287.5666 290.012 292.8049 298.7343 301.0818 300.4942 297.8018 297.3456 296.4279 294.8691 292.6877 291.0905 289.897 288.2899 286.0181 283.5179 282.2835 281.7306 281.5547 282.3031 280.8687 273.9579 267.3044 262.7636 263.9593 266.2648 267.8735 269.1789 270.4993 271.9908 272.2854 270.6564 270.1304 270.0429 269.1222 268.4037 267.3972 266.7943 266.2284 265.4135 264.6026 263.8367 263.2091 262.5869 261.9979 261.8562 261.7969 261.6081 259.8617 258.1812 257.0993 255.5737 253.6613 252.2143 250.621 249.7772 248.5042 247.4006 246.1868 242.6286 241.9448 242.2693 241.0556 241.8791 241.7454 242.2216 246.2938 249.3889 252.3753 256.0285 259.8531 262.9917 265.2054 266.4 266.52 265.8968 265.3866 265.4744 265.6504 264.6326 263.2411 266.9449 269.0674 270.5068 275.3609 277.2032 279.0164 280.5051 281.6773 282.4374 283.037 283.7678 284.6827 285.3724 284.4591 283.0248 281.5667 279.8697 278.7109 276.673 275.3318 273.5336 272.5467 269.8464 269.8195 270.5526 270.8884 270.979 271.0165 271.3924 272.1928 271.9667 272.7448 273.4409 274.2162 275.6752 277.6515 280.1396 280.5793 277.5123 274.0885 269.3093 266.8751 263.6733 263.7979 259.5874 253.3666 250.9401 250.9581 251.05 253.0726 252.9306 252.8105 252.7861 252.8404 252.8805 253.5618 254.1808 253.6855 251.1521 247.0888 241.9925 237.2576 236.9206 237.0955 236.7685 236.7237 236.8727 237.839 235.6299 237.7473 242.7294 244.7896 245.5623 246.1144 247.3884 249.5795 254.6042 257.554 258.9726 257.8443 256.0706 254.8084 253.664 252.8489 252.6246 252.1968 255.159 257.828 259.5606 261.071 262.2796 262.7722 263.1358 262.502 258.7069 256.2969 254.8657 252.7445 251.8578 251.4886 251.8147 252.9793 254.6563 256.8484 256.7715 256.3858 257.2514 257.8023 257.916 257.8275 258.4671 258.4147 259.3537 261.9014 262.2332 263.0492 266.7824 269.2047 267.7385 266.4632 264.7254 262.2802 258.0624 257.0037 255.5701 254.9203 256.8304 259.0017 260.9113 262.8468 264.6362 268.1411 269.8335 271.8777 272.6186 272.8564 273.0354 272.9598 272.9961 272.7826 274.4427 275.7361 277.3596 278.9444 279.8557 278.4275 273.2714 264.68 263.7822 267.1878 268.1481 266.8133 265.1631 261.5415 258.8916 260.1913 261.059 262.7769 267.9692 269.3582 270.7222 271.8693 273.0529 273.8401 274.7338 275.6129 277.0585 280.0245 281.2821 282.4117 282.514 281.7932 280.626 279.194 277.3569 275.3683 272.3981 271.0532 270.574 269.9604 269.2911 269.4091 269.77 270.2797 270.4373 271.8894 274.2888 -9999 -9999 +-9999 310.4484 309.9814 308.1894 306.7627 305.897 306.2139 305.7007 302.1959 299.8455 299.6884 300.9979 301.2281 300.5649 298.7961 295.2016 291.7374 297.3334 299.0031 299.4645 303.6349 307.6494 311.2463 313.2733 314.2776 314.9075 316.559 317.6774 319.0136 320.2912 320.8254 320.5739 317.9563 316.3594 317.84 320.6088 321.0664 321.309 320.561 320.2989 320.2509 320.0565 319.4733 318.4844 316.6484 315.1028 312.1892 306.6589 310.1793 312.2401 313.6676 312.6231 310.1961 307.631 306.3465 309.0074 312.9567 316.394 318.5136 320.6093 323.6173 326.4643 328.4444 327.4746 326.6786 326.3164 327.2151 328.5737 329.5052 330.1035 329.9367 327.9197 322.4045 319.9467 319.6781 321.8763 324.524 326.1715 327.5787 328.5852 329.8829 332.9908 334.2651 335.0623 335.9421 337.3479 337.9187 338.4221 338.5147 339.6205 340.6678 341.4302 343.4872 345.2395 345.4167 345.7009 346.8636 346.5432 343.6786 333.5673 329.8958 330.1288 329.1667 326.1062 322.5853 320.4468 317.6826 317.1548 317.0581 316.6064 316.2281 317.0845 316.459 315.5882 315.8071 315.2856 315.2643 313.842 313.2002 313.6468 313.456 312.726 311.6833 310.5305 309.6553 308.7341 306.594 304.2593 300.4945 293.6681 294.0103 294.4991 294.8269 296.7475 298.3195 303.5285 305.5266 306.5258 306.1269 304.1938 305.6079 307.2138 309.2239 309.4302 308.7952 307.1157 305.5945 302.7999 299.2677 299.8236 303.2951 305.601 305.8252 304.322 294.2118 287.9719 291.0724 293.8856 294.8764 294.6174 291.898 288.0658 285.0354 290.3661 292.0043 291.8475 290.411 289.1248 288.4828 287.8533 287.7734 288.6571 285.1804 278.0981 282.8586 281.6001 276.2128 275.3806 274.2706 275.43 274.8062 275.7213 273.8864 273.1733 273.3338 273.2907 273.2536 273.1416 276.5035 278.8407 283.4494 287.4601 290.611 292.7085 293.6876 294.6677 295.9109 296.9727 297.6978 296.3588 294.3588 292.3932 290.6893 291.2548 292.568 294.3641 296.1542 297.2278 292.5371 289.0874 286.0258 283.6063 283.4694 283.0941 280.8943 278.2525 274.7971 269.5673 268.8062 265.1935 260.0069 263.4902 266.589 268.4452 270.3724 273.2959 280.6476 283.5977 285.4034 285.8772 285.3713 285.7404 287.0639 289.1834 291.7269 297.4383 300.3378 301.8225 301.4432 299.2893 297.9858 296.7909 295.1732 292.5247 292.0813 290.4579 288.3173 285.7205 282.9309 279.6229 278.2413 279.3976 279.1588 277.9001 271.7695 266.0658 262.7636 263.9593 266.2648 267.8735 269.1789 270.4993 271.9908 272.2854 270.6564 270.1304 270.0429 269.1222 268.4037 267.3972 266.7943 266.2284 265.4135 264.6026 263.8367 263.2091 262.5869 261.9979 261.8562 261.7969 261.6081 259.8617 258.1812 257.0993 255.5737 253.6613 252.2143 250.621 249.7772 250.5037 249.3548 246.6997 243.3395 241.802 242.1066 242.3212 241.5349 241.5535 241.9698 245.5339 248.6699 252.2049 253.1132 256.967 262.2769 265.3641 267.5084 268.5731 268.5037 268.0687 268.0395 268.6575 268.288 267.2919 267.9648 270.2034 271.5813 275.5866 277.1938 278.4514 279.748 281.0854 281.7946 282.3129 283.1346 283.8623 284.7365 284.3425 283.0317 281.1455 279.5902 278.5275 276.3484 275.2713 273.4745 272.5633 268.0051 266.0915 268.5561 268.9368 268.9809 269.1649 270.196 270.7418 271.5963 270.9161 271.6837 272.8765 274.0878 276.302 278.2755 278.8269 276.9082 274.6941 270.1111 268.3761 267.4383 266.858 263.5197 259.0751 254.0978 250.7529 249.4224 249.7826 250.029 250.2796 250.3146 250.7154 251.4115 252.6832 252.1582 251.46 250.4433 246.0387 240.1983 238.1283 236.928 236.9605 236.7999 236.6823 236.8456 237.7332 235.5498 238.1703 237.5687 244.6595 245.3648 245.9457 247.5852 249.5867 255.2111 257.8424 257.8557 255.6168 253.8668 252.3498 251.5774 250.7348 249.9775 252.2338 255.1952 258.1389 259.8123 261.3391 262.4955 263.2283 264.1397 263.4199 258.9728 257.0925 255.3723 253.6483 252.324 252.5718 252.5415 253.0558 254.3291 257.118 258.0771 258.6077 260.2764 260.8023 260.7779 261.0539 261.5964 262.1435 262.6834 265.9559 266.4256 266.425 269.8021 271.9723 271.7227 270.281 268.2119 266.318 262.5106 261.3155 258.9929 257.4524 255.4181 256.1795 258.2743 260.6051 262.6006 266.699 268.699 269.5894 270.3752 271.4341 271.8188 271.4594 271.6954 272.6376 274.059 275.1844 276.6455 277.9942 278.8945 278.0653 273.0117 264.4081 262.0689 265.8668 266.7186 266.0202 263.491 259.1784 258.8578 260.7986 263.5389 266.1596 269.3119 271.3202 272.837 274.3543 275.116 276.2084 276.1808 276.9804 277.7736 280.7206 282.0332 282.9442 283.4611 282.8064 281.6746 280.4748 278.8343 277.1751 272.5847 270.7169 269.5063 269.2434 267.5644 265.8539 267.4715 268.7409 268.975 268.4122 271.4261 -9999 -9999 +-9999 307.8875 310.4171 309.6178 309.4809 308.8698 306.3451 304.1991 300.6663 299.9408 297.6632 297.4704 298.3071 297.2834 295.0625 290.6083 293.252 302.0624 303.9126 303.3658 302.6555 307.6453 310.9521 312.8926 313.3118 313.6167 314.9472 316.0924 317.0241 318.6297 320.6475 321.6073 320.9357 318.9738 318.9433 321.5919 321.7301 321.0681 319.7947 318.8153 318.9231 319.0819 318.9266 318.3265 316.0913 314.9393 312.7731 308.5316 306.11 308.4171 310.0684 309.7041 307.4359 305.1122 306.8381 310.6889 315.2826 317.796 319.1707 321.0857 323.6082 326.447 328.6944 329.6809 328.9603 327.7235 328.2157 329.237 329.6486 329.6049 329.0251 326.6308 320.9506 318.8082 319.1792 321.8087 323.9088 324.648 325.5631 327.065 328.6602 331.3714 332.7879 334.3926 335.7059 336.1226 336.3458 336.1166 336.9552 337.3679 338.3213 339.9531 341.3746 342.4926 343.2467 344.3978 345.8744 346.5989 344.7766 338.0189 331.3082 330.6512 328.3894 327.9852 326.5425 324.7318 319.3656 316.3521 313.7174 313.006 311.7803 311.1956 312.3313 312.0878 311.7272 311.4888 311.8022 310.9183 309.6018 310.7383 310.5939 310.2023 308.8608 307.6846 306.5594 306.2729 305.5248 304.507 302.8174 298.7704 293.9074 292.512 293.3444 294.761 296.4987 301.9615 303.5952 304.9661 303.3649 303.9385 306.417 307.7586 309.0651 309.7029 308.9574 307.029 304.5158 302.1135 299.5417 299.1806 301.577 302.644 302.796 302.4296 299.8614 293.9503 286.6418 289.4399 291.6834 292.0013 290.3655 287.0856 283.9117 288.4153 290.0475 289.465 287.7125 286.363 285.8814 285.7419 284.9499 286.118 283.3282 278.1277 276.978 276.2192 275.5809 275.6858 275.5841 275.3317 273.2226 274.4724 273.9354 273.8441 273.3575 273.0059 271.7649 275.022 280.3295 282.9981 283.8061 285.0476 286.7333 289.5938 292.7265 294.3123 295.7761 297.7021 298.0705 297.7728 296.6233 294.924 292.9613 294.1468 294.4278 294.6722 296.8019 297.847 294.2285 290.6676 288.4188 288.1072 289.534 289.0208 286.2332 281.0149 275.9676 272.316 270.6963 267.5708 263.3167 262.656 266.6627 269.186 270.3724 273.2959 280.6476 283.5977 285.4034 285.8772 285.3713 285.7404 287.0639 289.1834 291.7269 297.4383 300.3378 301.8225 301.4432 299.2893 297.9858 296.7909 295.1732 292.5247 292.0813 290.4579 288.3173 285.7205 282.9309 279.6229 278.2413 279.3976 279.1588 277.9001 271.7695 266.0658 262.6234 260.1838 263.05 265.7118 267.8404 269.3346 270.0018 270.1909 269.2292 268.5818 268.5446 268.5254 267.7036 266.8743 265.5271 265.0349 264.6499 264.1115 263.4711 262.8847 262.5182 262.4883 262.9856 263.183 263.1477 262.3364 260.6128 258.7153 256.6214 254.97 253.4847 252.8961 252.2606 252.4542 248.4086 243.1157 241.4287 241.4099 241.8518 241.5454 241.5004 241.4443 241.9018 244.6634 248.4457 251.676 254.5028 257.6464 260.9964 264.5161 267.0753 268.9479 270.5012 270.0219 269.9039 270.0344 270.4845 270.5584 270.0534 271.3291 272.5269 275.5452 276.9182 278.2109 278.9693 279.5712 279.9957 280.8439 281.7337 282.7153 284.0651 283.9748 282.8698 280.7894 279.3892 278.2021 275.8859 274.9276 273.0976 272.535 268.5747 266.1178 264.8599 266.2114 265.5837 266.9781 268.746 269.5842 270.373 270.6847 270.6538 270.9462 271.842 273.8868 275.2479 275.4092 274.4865 273.1406 271.2704 270.3969 269.7433 268.2654 265.2739 262.4951 258.4916 254.6774 249.3256 246.841 246.6054 246.5916 246.7484 248.2929 250.3702 251.3217 249.6023 248.7298 248.4444 243.3397 239.1822 237.9268 237.1376 237.1409 236.8586 236.7925 236.8666 236.5683 235.6767 237.5 237.1116 243.6784 245.0275 245.8367 247.5628 249.9677 255.7042 257.812 255.5835 253.3151 251.6057 249.5779 249.0966 248.5602 249.1585 253.2321 255.3333 257.8928 259.691 261.4771 262.4497 263.0853 264.0588 262.1511 257.918 256.8283 255.6103 254.073 252.8029 253.354 253.8381 253.9182 254.5804 257.5407 258.5578 259.9311 261.646 262.5649 262.8062 263.8445 264.9574 265.3683 266.0177 269.2829 269.9347 270.6637 271.7079 273.0496 273.7378 272.9253 271.3491 268.9973 265.3786 264.2551 263.0057 261.021 259.1738 258.1479 255.7664 257.9123 260.7154 264.4138 265.8596 267.1756 267.9053 268.5821 269.5518 270.4054 271.2915 271.7599 273.857 275.026 276.2503 277.0771 277.7884 276.6219 271.9404 265.6366 261.6987 264.4498 264.8274 263.6031 260.8696 257.6047 258.9535 262.2025 265.1971 266.8331 270.3945 272.2888 274.3764 275.6416 277.3777 277.8219 278.1804 278.3885 279.0476 281.4673 282.7034 283.7784 284.3995 283.7765 282.7559 281.7499 280.1486 278.1955 273.358 270.9747 269.1352 268.1487 265.9536 263.767 264.3112 266.2074 267.0594 265.4412 266.5775 -9999 -9999 +-9999 306.9087 309.3733 310.5992 311.4323 309.7606 305.3419 302.3809 300.4045 298.4213 296.5569 295.1355 294.6291 294.172 290.6887 292.8202 297.4377 304.8463 307.0689 308.0033 306.8519 306.5706 308.1608 310.1748 311.1197 311.3246 314.1538 315.6906 317.3946 319.2788 320.7713 321.9226 322.2911 321.55 320.0485 321.3708 321.7953 319.435 318.2084 317.5585 317.1868 318.0729 317.4495 316.7311 314.4774 313.7406 312.9207 310.0929 304.3702 305.0919 306.4124 305.2824 304.4974 307.6725 310.7718 313.3239 315.33 317.8616 319.8984 322.3974 323.8344 326.0672 328.0652 330.1673 329.6407 329.299 329.2849 329.2487 328.8618 328.4464 328.1391 326.6062 319.9727 317.6551 318.4404 320.3501 322.7184 324.2153 325.8542 327.6795 329.211 330.6915 331.3709 332.7952 333.8662 333.6866 334.3181 334.0437 334.6741 334.5458 336.8766 338.3766 339.616 340.654 341.3871 342.8447 343.9223 345.1855 345.7314 341.1942 337.9785 336.5642 335.0814 333.0283 330.9094 328.4463 324.4446 317.1841 318.9991 317.8937 314.4705 312.5545 310.7016 309.2942 307.7976 307.769 307.007 306.089 305.5897 306.0546 305.5282 304.4029 302.1875 301.7582 301.3148 301.2929 300.8175 300.7507 300.8845 300.4545 297.2469 292.6588 293.1107 292.5644 294.3016 298.3526 301.3648 301.9495 300.5415 303.4337 306.0846 307.9871 309.4631 310.3086 308.6627 307.0124 304.2949 301.2206 296.3912 295.0086 297.5361 299.0302 299.6909 300.709 300.2763 297.8838 292.6233 285.6026 288.1901 289.5993 289.3545 287.2549 284.3559 287.7146 287.9274 287.2358 285.1795 284.3252 283.9056 283.5694 282.8692 283.5766 280.9307 277.4811 276.5775 275.9883 275.5754 273.8753 274.6879 275.2158 274.8286 273.6197 273.532 271.9421 273.3195 275.3832 279.8997 285.1208 288.1138 290.3745 287.1349 289.9111 292.0948 291.9922 292.7265 294.3123 295.7761 297.7021 298.0705 297.7728 296.6233 294.924 292.9613 294.1468 294.4278 294.6722 296.8019 297.847 294.2285 290.6676 288.4188 288.1072 289.534 289.0208 286.2332 281.0149 275.9676 272.316 270.6963 267.5708 263.3167 262.656 266.6627 269.186 272.0938 274.6358 281.6354 284.6823 286.4181 287.3109 287.344 288.0321 289.1281 290.2179 292.6437 298.4847 300.3949 301.4416 301.4123 300.1542 299.1342 297.2469 294.7151 293.45 292.3015 289.1439 286.0707 283.8394 281.6452 279.0918 277.2875 276.6243 275.0655 272.8194 267.9853 261.8345 260.7162 260.8663 258.9134 261.2978 263.7559 266.2459 267.8949 268.1845 267.451 267.049 267.4016 267.796 267.1241 266.2334 265.1727 263.9346 263.1057 262.6891 262.3508 262.1912 262.0509 262.4474 263.1115 263.8634 264.3692 263.6356 261.8222 260.0482 258.1439 256.609 255.0499 254.1965 253.8165 253.5096 247.9129 242.9038 241.6752 241.4332 241.6978 241.7729 240.3891 241.4635 241.8322 244.9255 248.0164 250.5298 253.3949 256.2755 258.9082 261.1172 264.1962 267.8645 271.1122 270.9187 270.5896 270.55 270.7758 270.934 271.0822 271.5005 272.112 274.6321 275.8145 276.8914 277.8954 278.0223 278.2891 279.2606 280.4719 281.0972 283.0202 283.3892 282.3291 280.4991 279.1589 278.0593 275.9452 274.5957 273.1145 272.6475 269.5174 266.6837 264.6753 265.2308 263.0142 264.9897 267.2843 268.5305 269.3816 271.0675 271.1934 269.6183 269.4375 270.8376 271.9007 272.2113 271.8481 271.1426 271.0304 271.4382 271.3193 269.8003 267.5674 264.7762 261.5448 258.7997 255.2738 245.4298 245.2067 244.6633 244.5339 246.0506 247.8903 247.6714 246.2462 244.3232 241.9805 239.4991 238.2049 237.618 237.2841 237.1428 236.7871 236.811 236.9627 235.5915 237.9009 237.4766 236.9486 241.4155 244.4797 245.3847 247.6765 249.982 256.2177 255.7626 252.4566 250.5949 248.4391 247.2165 246.8212 247.8903 249.1693 252.5557 254.3154 256.4272 258.9165 260.6471 261.0537 261.4447 262.2075 258.9352 254.9487 254.5588 254.5145 253.8351 252.6061 252.9451 253.6249 253.7904 254.431 257.376 259.3573 260.6707 262.4889 263.7382 264.4165 265.4462 266.5253 267.4903 268.6637 270.8235 272.3724 273.5268 274.2177 274.2483 275.4536 275.8462 274.2414 271.4045 266.9902 265.9456 265.2153 264.3248 262.9746 262.015 260.487 257.1608 256.7009 261.0482 262.6873 264.0903 265.3967 267.2876 269.0685 270.3813 271.9195 271.9 273.2879 273.8253 274.9051 276.2796 277.0148 276.5153 272.8383 265.6478 261.2222 263.3964 262.8529 260.7044 258.4725 257.9755 259.4044 263.421 266.359 268.3134 271.817 273.0279 275.2879 277.2955 278.4087 279.4977 279.8246 279.7325 280.5019 282.5439 283.5324 284.2353 284.9167 284.4618 283.701 282.5133 280.7934 278.4371 273.7554 271.3068 269.282 266.1724 264.1968 262.6903 261.8825 264.1324 264.5541 262.9283 262.5593 -9999 -9999 +-9999 306.5483 308.7964 310.5757 311.6782 309.3489 305.5802 301.515 298.3065 297.6541 295.6664 293.5336 292.1619 290.9998 292.0258 297.3232 300.6497 305.55 307.8102 309.3034 309.5143 308.124 307.5676 308.0983 309.5772 311.0898 314.5118 316.2029 317.9262 319.6292 321.1886 322.4887 323.3571 323.5794 323.1065 322.6214 320.2414 318.4671 317.6707 316.2572 315.9875 316.3145 315.8002 314.7919 312.0795 311.7371 311.369 309.4931 305.9486 302.5711 303.1244 303.4891 307.5697 308.8327 311.4217 313.4267 315.2993 316.5675 318.177 320.787 323.7598 325.4994 328.9243 329.9637 330.2955 330.3024 329.6369 328.6399 327.6826 326.4969 326.1636 325.4583 319.6462 317.1237 317.4442 319.2965 322.1908 323.6629 325.8111 327.3904 328.5669 330.0514 331.2481 331.7713 331.8786 331.933 331.8345 332.202 332.2801 332.0955 335.4316 336.6603 338.2633 338.8405 340.2152 340.5493 341.6691 343.014 344.2353 344.0719 341.2908 339.7656 337.8692 335.7341 334.3293 333.1392 331.1255 326.8589 321.4783 318.5585 317.8287 317.0145 316.06 316.0461 313.135 309.9867 308.6848 305.1834 303.7876 302.818 301.8267 301.8831 301.9706 300.7129 299.1945 298.0665 295.9167 295.8022 295.7984 295.5956 294.9161 293.463 292.7419 292.5618 292.0957 295.1852 298.3885 298.3494 299.0705 302.7265 305.1966 307.3953 309.031 310.1781 307.9309 305.5543 303.3527 300.8751 296.1643 292.015 294.0402 296.2985 297.8024 298.4793 296.7908 295.7429 294.889 289.4631 284.3119 285.5642 286.5236 285.6418 282.7974 285.9405 287.9274 287.2358 285.1795 284.3252 283.9056 283.5694 282.8692 283.5766 280.9307 277.4811 276.5775 275.9883 275.5754 273.8753 274.6879 275.2158 274.8286 273.6197 273.532 271.9421 273.3195 275.3832 279.8997 285.1208 288.1138 290.3745 287.1349 289.9111 292.0948 291.9922 291.7312 294.3393 296.3019 297.6228 298.4614 299.4647 298.3764 296.875 295.6012 296.3899 296.51 295.7611 297.8028 298.7554 295.8792 292.7426 292.4337 291.5598 292.4441 291.6864 287.5808 283.1385 278.6233 274.616 272.3534 269.9092 265.2055 263.5558 266.7041 269.755 272.2996 275.2709 282.2939 285.0592 286.6288 287.5255 287.9878 289.3811 291.0527 291.9067 294.2115 299.6599 300.6275 301.7852 301.7073 300.5445 298.695 296.778 294.7432 293.0662 289.8245 287.8724 284.6847 282.8569 281.0196 279.1786 277.3682 275.9221 274.2134 272.4055 267.4903 265.8518 263.9884 261.5155 261.5046 258.5224 259.2054 261.2471 263.345 265.32 265.2375 265.0066 265.977 266.5508 265.728 265.0122 264.2758 263.3168 261.4101 261.0163 261.0804 261.3691 261.4126 261.8354 262.5881 263.4886 264.2466 263.928 262.594 260.0248 258.3499 257.3305 256.1414 254.554 253.8958 253.5864 248.5435 244.0773 241.8286 241.2914 241.5028 241.8593 240.3644 241.3441 241.8094 244.668 247.6517 251.2531 255.3371 259.1324 262.4068 264.8376 266.5276 268.3521 270.2265 270.0198 269.6698 269.7606 269.9042 269.9578 269.6416 269.6587 270.8819 273.3598 274.3513 274.9154 275.6549 276.3514 276.741 277.7103 278.7315 279.9393 282.085 282.6006 281.6807 280.5429 279.1402 277.9304 276.0094 274.2327 273.1697 270.4173 269.1663 267.0248 264.8834 260.6805 261.372 262.8112 265.4205 267.5344 268.5609 270.9031 271.4462 270.2168 268.3242 267.9934 268.8293 269.6198 269.5557 269.6766 270.1476 270.9373 271.5794 271.1223 269.5235 266.5193 262.8567 260.0936 257.5902 249.7857 246.682 243.9693 243.5337 243.1291 244.0478 243.3884 241.2899 239.8297 238.7908 238.1521 237.9902 237.5677 237.2809 237.2379 236.9938 236.9149 236.6207 238.2168 237.3596 237.2812 237.0388 241.2346 243.8101 245.4267 247.5162 249.6981 254.766 252.6888 249.3372 247.7328 245.4469 245.0359 246.6288 247.5521 248.8239 253.3778 255.0082 256.6419 258.4487 258.5276 257.8623 258.9922 259.821 255.2608 252.3804 252.4598 252.3964 251.904 250.9222 251.3149 252.4871 252.5006 253.5252 256.6276 258.787 260.6018 262.211 264.1241 265.1579 266.4612 267.8721 269.3833 271.8979 272.7912 273.5276 274.7994 275.8972 276.2722 277.1418 277.9129 276.2054 273.3015 268.3801 267.8876 267.1979 266.7546 266.1949 265.7055 264.0523 259.6386 257.1538 260.2804 261.6919 262.9996 264.623 267.73 269.3718 270.6534 271.2711 271.6189 271.6425 272.4093 273.5951 275.1769 276.2037 275.8178 273.6499 268.0216 261.3928 261.1086 260.4092 258.4876 256.4869 257.8409 259.4185 264.2331 267.5484 270.3575 273.7615 275.0462 276.2609 278.0921 278.9275 279.328 279.2193 279.2471 280.2872 282.8912 283.5347 284.0836 284.7169 284.7201 284.312 283.1574 281.4559 278.9033 274.1552 271.7074 269.5456 267.9837 265.3147 263.023 257.5364 261.0766 262.3157 260.0164 261.4852 -9999 -9999 +-9999 306.7818 309.6735 310.5324 311.0828 309.2594 305.9677 302.6228 297.3764 295.1628 293.7806 291.885 290.8434 289.864 294.5183 298.251 301.1819 305.7587 307.7973 308.5454 308.9239 309.1286 309.515 310.1623 311.0386 312.2999 315.2309 316.8251 318.1488 319.487 320.7575 322.0404 322.9463 323.8613 324.2734 322.3537 319.7992 317.4279 315.9367 314.9024 314.0444 314.4724 314.3967 313.2337 309.9573 309.2104 309.2207 306.4994 303.9585 302.1965 307.0017 310.3532 311.2996 312.0238 313.3752 315.3902 317.418 319.2455 321.0163 322.4561 323.8489 325.8734 328.6076 329.1772 329.0747 328.7923 328.7521 327.3823 326.1374 325.0233 324.2014 324.6371 318.8199 316.4308 316.578 319.3053 321.6305 323.3041 324.9986 325.8779 326.6685 330.0909 330.2747 330.0761 329.6204 329.1908 329.4081 329.3033 329.533 330.4714 334.4647 335.3426 336.2297 337.303 337.877 338.8825 339.9641 340.7931 342.3815 343.9813 343.6165 342.9434 341.7536 339.1853 336.575 334.6061 331.875 328.187 323.7928 323.0833 322.2607 320.8191 319.8699 319.9986 319.2684 318.6994 316.9486 313.1801 310.1975 306.5116 303.4402 304.5214 305.0334 303.0589 300.9648 299.3577 297.1335 296.3856 295.6884 295.2757 295.1655 295.537 294.2516 292.7671 291.2211 295.1852 298.3885 298.3494 299.0705 302.7265 305.1966 307.3953 309.031 310.1781 307.9309 305.5543 303.3527 300.8751 296.1643 292.015 294.0402 296.2985 297.8024 298.4793 296.7908 295.7429 294.889 289.4631 284.3119 285.5642 286.5236 285.6418 282.7974 285.9405 285.2986 284.4233 283.0693 282.4136 281.617 281.0327 280.5593 280.6483 275.3078 276.8038 278.7343 280.7112 280.0405 281.0943 278.7806 276.5782 276.3897 274.7358 275.5457 278.5148 281.3592 281.7719 281.3835 288.1228 293.2607 295.5178 291.7231 292.9198 294.9567 295.5423 294.8953 295.9665 297.5536 298.8607 299.0291 300.5305 299.9007 298.2805 297.6151 298.5201 298.5664 297.5583 298.9342 299.7462 298.0549 297.3043 296.613 294.8245 294.2532 292.2033 287.9643 284.5094 281.9556 277.1073 274.5063 271.5436 266.4089 262.8945 267.0838 270.7981 273.0122 276.2917 283.0563 285.3204 286.5081 287.202 288.4699 290.3033 292.1972 293.9647 296.5104 300.8327 301.6536 302.1002 300.4141 299.1123 297.8314 296.4014 294.752 293.3585 289.8316 287.5335 285.0458 283.3908 281.7991 279.5726 277.9236 276.5334 275.1444 272.7684 268.9635 268.4753 266.6287 264.7682 262.6177 260.5435 258.9585 257.2776 258.2803 261.5341 261.9878 263.2928 263.9278 264.3854 263.8843 263.7837 263.6951 263.3025 260.4991 259.6575 259.6125 259.9757 259.7864 260.3409 261.3792 262.1462 262.9085 263.2404 262.5925 260.4871 258.2541 256.914 256.3844 254.5466 253.7324 252.8069 249.672 245.4286 241.8403 241.3294 241.4459 241.7868 240.5914 241.6895 242.0807 245.5625 249.3382 253.254 257.4922 260.582 261.6948 263.1734 264.877 266.2811 268.4995 268.2429 268.1378 268.1021 268.1557 268.1653 267.5432 266.6855 267.8469 269.878 271.0729 272.0924 273.0936 274.4189 275.6194 276.7315 277.8881 279.1901 281.3868 282.2221 281.7773 280.7806 279.3393 277.981 276.2457 274.5331 273.4744 269.9765 268.3684 267.1803 265.1369 261.9015 259.4815 259.9837 263.5869 265.6211 267.4075 269.1519 269.4339 269.515 267.9767 266.4033 266.2636 267.0167 267.4333 268.0618 268.9617 269.9289 270.2989 271.0169 269.6897 267.2 264.1208 261.2359 258.9901 254.5277 251.1043 246.2182 243.1986 242.3064 241.2478 240.274 239.0841 238.4946 238.0349 237.9959 237.8088 237.1118 237.0511 237.3344 237.5319 237.1573 235.5857 237.6914 236.8203 237.2433 237.2045 242.4818 243.5256 244.6696 246.903 249.3349 250.351 248.3635 246.4436 245.1517 243.4326 244.6465 244.9771 246.0195 247.8761 252.45 253.5935 255.9615 256.314 255.2149 254.3306 257.1483 256.397 253.1713 250.1024 250.1053 249.5028 249.3793 248.6047 250.47 250.6036 250.7639 251.9848 255.6805 257.4001 259.2112 260.9314 263.7316 265.4603 267.2491 269.0694 270.9097 273.8785 274.9603 275.6124 276.0949 277.1052 278.0146 278.8991 279.175 277.666 274.9547 270.3631 270.4622 269.8372 268.7663 268.2558 267.5432 266.5255 264.5077 262.389 261.8197 262.6825 263.929 267.5362 267.9987 270.1541 271.3433 271.0717 270.8592 270.7826 271.3229 272.5293 273.5635 274.4786 274.3731 272.9915 269.8736 264.3527 259.5225 258.7524 257.3702 256.3853 257.8018 260.5506 265.6213 268.9139 271.3894 274.719 276.728 277.6884 278.1248 277.7174 277.4853 277.1605 277.5879 278.9221 281.8218 282.104 283.0861 283.7898 284.012 283.9122 283.1059 282.2141 279.7848 274.2506 271.9558 269.8412 268.062 266.0869 263.7288 261.374 256.8269 259.1475 258.8821 261.4852 -9999 -9999 +-9999 307.6127 309.0134 310.0175 309.7731 308.62 305.7127 302.6096 297.8124 296.1129 292.8219 290.7958 288.7545 291.5685 295.0854 297.5356 300.9627 305.2221 306.4407 307.7448 307.8175 308.3783 309.3751 310.5402 311.1504 312.0901 315.0414 316.394 317.28 318.7569 319.7843 321.1404 321.78 322.7018 323.0372 322.7808 320.3666 317.8307 315.6784 313.2164 311.8771 311.8015 312.1502 311.6971 308.4324 307.0495 306.4103 303.3845 301.7093 302.8136 306.0057 309.4464 311.4438 314.0962 315.5334 317.0307 318.9289 320.5144 321.7478 322.5679 324.1971 324.9459 327.6824 327.9362 327.442 326.6076 326.6876 326.1197 324.6766 323.0716 323.0438 323.613 319.9396 315.6794 315.9572 317.5131 320.229 322.3878 324.2094 325.64 326.8664 328.822 328.3643 327.3232 325.9806 325.6984 327.106 328.1857 328.984 330.4723 333.2414 333.6774 333.8337 334.9265 336.1432 337.3407 338.0452 339.0865 339.9962 342.0313 343.4851 343.9992 343.0728 340.5301 337.6304 334.2113 331.875 328.187 323.7928 323.0833 322.2607 320.8191 319.8699 319.9986 319.2684 318.6994 316.9486 313.1801 310.1975 306.5116 303.4402 304.5214 305.0334 303.0589 300.9648 299.3577 297.1335 296.3856 295.6884 295.2757 295.1655 295.537 294.2516 292.7671 291.2211 292.5735 294.6136 296.1079 299.8398 302.1233 304.4063 306.5114 307.919 308.8245 307.436 305.2627 302.7046 300.6033 296.9214 291.9212 291.4869 293.4862 295.6943 296.067 293.4091 291.8065 290.2256 287.3763 283.8816 282.7424 282.3801 283.3388 281.5251 281.7155 281.4868 281.2509 281.0302 280.7172 278.6795 278.4 278.3784 278.4983 281.7781 285.0809 288.6938 290.5332 291.5979 291.325 287.8582 285.022 284.0801 285.2939 281.9949 283.1031 286.185 287.1465 283.5202 286.4765 291.2543 293.4863 292.9053 294.947 296.6091 297.5468 297.6515 297.9205 298.7814 299.7008 300.5598 301.422 301.0697 299.8883 299.1675 299.6764 299.2831 298.98 300.0128 300.9142 301.101 300.8116 299.8815 298.2408 295.6225 292.4606 288.7651 285.4326 283.9491 278.4814 276.1012 272.0341 267.9333 265.1668 266.6992 270.5032 273.5953 276.7115 282.56 284.1951 285.2667 286.8091 288.6895 290.7697 292.7897 294.8859 297.189 300.7256 302.1114 301.8422 300.254 298.8474 297.4044 296.7147 294.5545 293.1892 290.2149 288.3954 286.5688 284.8113 283.5306 283.086 281.9349 280.7374 279.9491 279.5935 274.8557 272.2091 270.3145 268.5938 266.5513 263.8744 260.9528 258.3694 256.8178 258.0164 260.1001 261.9625 262.3881 262.2589 262.1859 262.5103 262.5762 262.2306 259.438 258.3411 258.389 258.5504 258.6553 259.3935 259.9922 260.6732 261.271 262.2217 261.3524 260.2045 258.2404 256.7762 256.0458 254.5546 253.1483 252.2805 249.4815 246.4786 242.1559 241.1436 241.3215 241.741 240.6711 241.2878 242.0855 246.8005 249.8807 252.7743 254.631 256.5274 260.356 262.6395 263.9931 265.6385 266.8773 266.5447 266.4221 266.1295 265.6021 265.094 264.5778 265.0178 265.8453 268.4103 269.7175 270.5522 272.0766 273.7171 275.4346 277.3543 278.9904 280.2428 281.5548 282.308 282.1165 281.0278 279.4067 277.9909 276.3513 274.6218 273.5594 270.277 268.3537 266.7054 264.4409 261.8798 258.7913 258.5023 258.1043 262.2233 264.8338 266.9588 267.0174 266.6755 266.4684 265.6519 265.1843 264.7993 265.2997 266.211 267.6448 268.5396 269.0711 269.4614 269.007 267.585 264.8776 262.3241 260.5391 255.7955 252.2237 249.0536 242.6265 241.3737 240.4448 239.7309 238.9183 238.1648 237.8012 237.7274 237.1834 237.6559 237.809 237.7438 237.9899 235.7063 237.6729 237.7835 236.9912 236.8494 239.9021 241.9852 242.6169 243.9742 245.8825 247.0586 246.1891 244.5351 243.947 243.3345 242.7649 242.9219 243.6981 244.8381 247.076 250.9304 253.1719 253.6857 253.0385 252.0551 253.1561 255.8947 252.4998 249.7328 247.4229 247.5174 247.027 246.301 246.0658 246.8445 247.4386 248.1321 249.0033 253.7118 255.8715 258.2251 259.9391 262.4942 264.9575 266.841 269.0216 271.1256 275.0592 276.3567 277.2601 278.0246 278.4009 279.0446 279.9806 280.2268 278.4777 276.04 272.1272 272.4437 271.8007 270.8441 269.7784 268.667 268.1418 266.7596 265.3556 263.0782 264.5773 267.1306 267.9453 269.5937 270.7571 270.8739 270.4995 269.4646 269.9378 270.2996 271.157 271.6908 272.7083 272.6493 272.9915 269.8736 264.3527 259.5225 258.7524 257.3702 256.3853 257.8018 260.5506 265.6213 268.9139 271.3894 274.719 276.728 277.6884 278.1248 277.7174 277.4853 277.1605 277.5879 278.9221 281.8218 282.104 283.0861 283.7898 284.012 283.9122 283.1059 282.2141 279.7848 274.2506 271.9558 269.8412 268.062 266.0869 263.7288 261.374 256.8269 259.1475 258.8821 261.5146 -9999 -9999 +-9999 307.6939 308.8908 309.6646 309.0357 307.1588 304.3008 300.8038 295.2526 293.5906 291.6098 290.3542 289.6294 290.2916 293.0301 296.1927 299.5366 303.4334 304.7136 305.6115 306.7783 307.2154 307.923 308.6418 309.459 310.6496 313.8802 315.0734 316.1384 317.2877 318.5815 319.6711 320.3899 321.1642 321.1673 320.83 320.0268 318.5053 316.5583 313.08 310.8981 309.9372 309.5624 309.45 307.1646 305.8701 303.5318 300.9623 299.6831 302.3103 305.659 308.3667 310.1472 313.1562 315.2215 317.206 318.9561 320.093 321.2189 322.2 323.4494 324.2582 326.3214 326.69 326.1495 324.9471 324.9581 324.3022 323.7354 322.3594 321.0403 323.2991 321.3148 316.2731 314.3894 316.2631 319.376 322.5147 324.2094 325.64 326.8664 328.822 328.3643 327.3232 325.9806 325.6984 327.106 328.1857 328.984 330.4723 333.2414 333.6774 333.8337 334.9265 336.1432 337.3407 338.0452 339.0865 339.9962 342.0313 343.4851 343.9992 343.0728 340.5301 337.6304 334.2113 330.8958 329.3813 327.6588 326.9107 325.7879 324.507 323.4034 323.0323 322.6817 321.5243 320.3677 315.4782 313.0417 308.1053 306.1066 306.9295 305.8097 304.3994 303.0024 302.1237 298.7383 297.6938 298.2691 298.7899 299.3317 300.5024 299.7006 296.0339 293.2832 291.3762 291.9042 293.5811 296.2545 299.943 302.6616 304.8858 306.3904 306.6266 306.0924 304.6017 302.4973 299.8373 295.2368 290.897 289.133 291.0452 293.3618 293.623 292.3982 288.715 284.9026 282.8028 282.4204 282.2519 282.0327 281.8813 281.279 279.7667 279.7465 279.9978 280.1745 279.4876 280.69 284.025 280.2609 279.8683 285.3079 288.0805 291.464 294.7564 297.0345 297.858 296.3596 293.4604 291.1299 291.8705 288.7175 284.9839 289.4281 290.5124 289.3075 286.4819 287.5537 289.6737 293.8092 294.2959 296.7067 298.1828 298.9268 299.1871 300.2682 301.1613 301.5291 302.1943 301.794 300.8448 300.4062 299.8894 299.833 299.6649 300.2417 300.9616 302.0526 301.898 301.0521 299.2226 296.317 293.1136 290.2768 287.5576 285.3455 279.9219 276.7163 272.5373 268.8009 264.0166 263.8534 269.1407 272.3974 276.0244 281.9714 283.2956 284.3001 286.0598 288.2376 290.287 292.5477 294.7726 297.0544 300.3869 301.4846 301.0998 300.1205 299.3744 298.2711 296.6781 294.9015 293.2022 291.1783 289.2594 287.7548 285.8921 285.3134 286.3866 285.8537 284.583 283.2618 279.6648 276.8495 275.0155 272.3277 270.8134 269.6933 266.636 263.2125 263.1797 259.9304 255.393 254.2593 258.1157 258.9712 259.5057 259.6892 260.5065 260.6235 259.7884 258.1621 257.8254 257.3616 257.3382 257.0827 257.9109 258.4084 259.0663 259.4313 260.7764 260.3759 258.9008 257.3261 256.7046 255.714 254.1268 252.5669 251.8449 250.3645 246.9692 241.671 241.2919 241.251 241.816 241.7603 240.9987 242.202 246.9241 249.8101 253.0103 256.5859 259.6137 262.4895 264.9326 266.2146 266.6474 264.9744 264.4243 263.7575 262.7476 262.0202 262.6483 264.5611 266.2858 267.4096 270.1 271.6073 273.1486 275.0638 276.855 278.3372 280.0895 281.3644 281.5947 282.1458 282.2694 282.0612 281.1019 279.6056 278.0905 276.6588 275.7686 274.0168 271.3694 269.8641 267.9485 265.0193 261.8506 258.5421 258.502 259.4415 259.0415 263.3244 264.2467 264.2206 264.6939 264.819 264.6756 264.532 264.166 263.7304 264.4114 265.9479 266.6339 267.8271 268.1673 268.009 266.3387 264.8477 263.5488 262.2646 256.8107 253.0843 249.8117 242.7588 240.822 239.6755 239.1495 238.402 238.1519 237.3184 237.5334 237.2973 237.7094 237.2985 237.2326 237.6529 237.1533 235.5793 237.0887 237.2972 239.1167 240.789 240.9305 241.81 242.757 243.4755 244.1077 242.3104 241.7901 241.7678 241.5789 241.6757 241.5662 241.948 243.548 245.5817 248.7807 249.569 250.1915 249.5997 249.7273 252.4846 253.1634 250.0793 247.504 245.7305 245.5255 244.4173 243.6924 243.4338 244.817 246.0185 247.2387 249.826 254.0392 256.8505 260.5995 260.3762 262.4942 264.9575 266.841 269.0216 271.1256 275.0592 276.3567 277.2601 278.0246 278.4009 279.0446 279.9806 280.2268 278.4777 276.04 272.1272 272.4437 271.8007 270.8441 269.7784 268.667 268.1418 266.7596 265.3556 263.0782 264.5773 267.1306 267.9453 269.5937 270.7571 270.8739 270.4995 269.4646 269.9378 270.2996 271.157 271.6908 272.7083 272.6493 272.0909 270.4531 266.6981 258.4473 257.9811 256.9913 256.7682 259.8946 263.562 266.8107 268.403 271.5415 274.916 276.6303 277.1671 276.8016 276.3234 275.7309 275.4448 275.7805 277.1252 280.4662 281.2347 281.8801 282.6194 282.9472 282.8517 282.6165 281.929 280.2289 275.2611 273.5962 271.5255 269.7559 267.5141 264.7467 260.7383 258.2898 254.0016 257.9335 260.7256 -9999 -9999 +-9999 305.034 306.8185 308.6271 308.4505 306.9203 304 301.546 296.5545 296.4513 293.8259 290.0129 289.6397 289.5538 290.7765 293.9563 296.5941 300.8348 302.5294 303.6602 304.1983 304.44 305.4732 306.2652 307.5229 309.1345 312.2675 312.9972 314.4983 316.3093 317.1417 318.1346 319.2956 319.4843 319.1427 318.0181 317.5016 316.9858 315.9216 313.1075 310.6273 308.3944 306.8304 307.18 305.1593 304.715 301.4157 299.6431 300.1679 303.2178 305.9646 308.3667 310.1472 313.1562 315.2215 317.206 318.9561 320.093 321.2189 322.2 323.4494 324.2582 326.3214 326.69 326.1495 324.9471 324.9581 324.3022 323.7354 322.3594 321.0403 323.2991 321.3148 316.2731 314.3894 316.2631 319.376 322.5147 325.0291 326.6183 327.356 327.2094 325.9729 323.4356 322.2775 323.4987 326.3239 329.2466 330.9455 331.9276 331.6889 330.5923 331.2628 333.8143 335.3666 336.0362 336.7405 336.7278 337.6777 340.3092 342.5417 343.4733 343.4736 341.671 338.0016 334.3884 333.8978 333.912 331.6683 330.8691 328.8096 327.5687 326.5034 325.6295 324.9788 323.1363 320.1584 312.4072 308.5865 309.0912 309.0821 309.5998 308.8806 307.4328 305.4284 305.3118 302.9594 302.5741 303.0963 302.7403 301.9928 303.2775 303.2807 300.9308 296.877 291.1452 290.8611 291.1743 293.7766 298.4129 301.3214 302.9265 303.9484 304.8536 304.8306 303.5828 302.4836 300.1012 296.3631 290.4469 288.0624 287.9001 289.6128 287.4864 285.6913 283.8152 282.8628 282.5337 281.6525 282.0063 282.2594 280.3337 281.641 280.8625 280.8241 280.5906 280.3676 283.2405 284.3034 287.1002 287.9826 286.5184 284.6221 289.2653 292.5273 295.6782 298.836 301.2306 302.0146 301.0357 298.2048 295.7784 293.0349 288.7546 292.8671 294.285 293.778 292.1778 291.3112 293.9078 296.795 296.5672 296.7097 297.7231 299.3427 300.494 301.3977 302.2649 302.9434 302.5943 301.824 301.1139 300.2933 299.8161 299.5533 299.1219 299.4523 299.9966 301.1367 301.2657 301.0525 299.7868 297.218 294.217 291.3669 288.5669 285.8809 280.6745 277.422 272.8764 270.0061 267.4267 268.7777 266.1943 270.3414 272.6734 279.4233 281.0836 283.0211 284.9878 287.4219 289.7953 292.2104 294.8191 297.3076 300.1257 301.1383 300.4316 299.5384 298.4361 298.545 297.2352 295.4869 294.0867 292.0564 290.4628 289.2976 287.877 286.636 287.9969 288.2315 287.3966 285.7397 280.5014 278.1431 276.0465 273.9227 272.7875 270.6297 269.3306 268.7469 267.4388 264.6654 258.8114 255.7402 253.4444 255.3604 255.9422 256.694 257.568 257.7729 256.7554 255.7183 255.3751 255.3247 254.5263 254.9216 256.2097 256.656 257.1474 257.1148 258.7541 258.5163 257.3475 256.4825 255.5805 255.3127 253.8706 251.91 251.6065 249.7994 247.9236 242.7118 241.185 241.1776 241.9701 241.4889 241.0048 241.7935 246.9272 251.3693 255.3394 258.7599 261.0154 263.2085 265.243 266.5146 265.8849 263.2556 261.3452 260.2954 260.3947 261.4684 263.2803 265.0555 266.5063 268.1679 272.2088 273.5678 274.8991 276.4728 277.8656 278.7573 279.315 279.7963 279.8651 280.1347 280.4254 279.9292 279.7607 278.5306 277.348 276.699 276.097 275.0496 271.839 270.6734 269.4861 267.2699 262.8855 260.5976 258.8383 256.4906 256.0497 259.7713 260.096 260.8831 262.0476 262.5951 263.5444 264.4709 264.0682 263.0852 262.416 263.7845 264.7396 265.2791 265.6006 265.6547 265.5437 265.0031 263.9437 262.8634 256.4431 252.5618 249.5407 242.9713 240.4627 239.4185 238.5984 238.1529 237.8675 237.4558 237.1687 237.5011 236.5562 237.062 237.2978 237.4574 237.7289 237.7588 236.8789 237.2526 240.4382 240.789 240.9305 241.81 242.757 243.4755 244.1077 242.3104 241.7901 241.7678 241.5789 241.6757 241.5662 241.948 243.548 245.5817 248.7807 249.569 250.1915 249.5997 249.7273 252.4846 253.1634 250.0793 247.504 245.7305 245.5255 244.4173 243.6924 243.4338 244.817 246.0185 247.2387 249.826 254.0392 256.8505 260.5995 260.3762 261.2347 264.0792 266.3636 268.9732 271.5893 275.7549 277.167 278.304 279.2484 279.988 280.3815 281.0788 281.1566 279.4937 275.4839 274.9087 274.7681 273.6373 272.3219 271.2395 270.3562 269.571 268.8455 267.4302 264.5398 265.7017 268.3607 268.904 270.5182 271.2472 270.4034 269.4717 268.1892 268.5054 268.5611 269.1371 269.881 270.6583 270.7574 270.5618 269.2326 266.034 257.2838 257.1483 256.3939 257.3175 261.0837 263.8447 266.2516 268.2421 270.8165 274.4457 275.6908 275.7113 275.1172 274.6854 274.2125 274.0053 274.2257 275.7327 279.6937 280.4135 280.9517 281.4974 281.6771 281.7168 281.7469 281.1325 280.2219 277.1466 275.1174 273.4334 271.629 269.377 266.2356 263.3662 258.4576 254.1453 255.9359 258.4259 -9999 -9999 +-9999 302.765 305.4398 308.1209 308.4102 308.017 305.9406 303.4376 299.5858 298.6981 295.9328 290.932 288.3041 289.8455 289.4003 291.3827 293.359 297.7397 300.1189 301.015 301.2282 301.8116 302.9865 304.2332 305.5453 309.1345 312.2675 312.9972 314.4983 316.3093 317.1417 318.1346 319.2956 319.4843 319.1427 318.0181 317.5016 316.9858 315.9216 313.1075 310.6273 308.3944 306.8304 307.18 305.1593 304.715 301.4157 299.6431 300.1679 303.2178 305.9646 308.7314 310.5443 313.4563 314.7708 316.5294 318.3043 318.9848 319.7252 320.6796 321.7307 323.5846 325.5385 326.0688 325.4294 323.3886 322.4413 322.6281 322.0702 319.7461 320.1076 323.1274 321.8265 316.789 313.4761 314.5728 318.3819 321.9778 324.2885 325.8557 325.995 325.0672 323.1976 319.0263 321.4406 324.9175 328.622 330.5091 331.6169 331.6172 329.2498 328.949 331.2849 333.238 334.0425 334.2481 334.0355 334.175 335.9802 339.4726 341.0311 344.1563 344.1426 342.4122 339.0958 337.2389 338.4471 337.3711 335.963 333.8804 331.4726 329.7721 327.6298 324.9787 323.0161 319.751 315.3863 311.0294 313.6183 314.9331 314.848 312.9535 312.2051 310.4733 308.7335 309.1172 309.6587 308.6134 307.3111 305.9463 304.1416 305.273 305.974 304.1432 301.7851 291.2969 290.6467 290.4721 292.0107 295.2648 298.5225 299.7533 301.3394 302.9513 303.2717 302.7603 301.5878 300.1599 297.5528 294.52 290.5549 288.0795 286.2801 287.3292 287.9758 287.4614 284.1698 283.5945 283.627 284.0966 283.3245 282.4027 288.3169 285.0862 281.5721 281.7324 285.2881 289.2611 289.4989 288.5413 291.6353 289.5049 285.3223 289.4348 292.7936 295.7617 299.3377 302.3857 304.196 304.7966 303.2717 298.9606 296.3892 294.0284 293.6309 295.6359 296.3221 294.9598 294.4201 295.3391 298.3304 297.5708 297.966 299.1525 300.1123 300.9514 301.9994 302.9393 302.8265 302.0246 301.3168 300.4647 299.6935 299.2689 298.952 298.1221 298.0017 298.2247 299.4044 299.8172 300.3219 299.5573 296.9977 294.0555 291.2503 288.5393 285.9577 279.4075 275.6525 272.3525 270.4808 270.1241 271.46 270.1837 269.3327 272.4167 276.3156 278.3293 281.6379 284.472 286.9739 289.5366 292.2294 295.3953 297.7003 300.1335 300.1085 299.9546 298.5384 297.4508 296.8668 296.067 295.6418 295.1357 293.1358 291.86 290.5474 288.8552 287.8436 288.008 289.283 288.9508 287.2961 282.0215 280.3301 278.1308 276.1252 274.3403 273.3577 271.5502 271.5979 269.7054 264.8183 263.0089 258.7643 255.8146 252.943 252.9701 252.7927 253.2262 252.4521 251.7317 252.3111 252.688 251.6891 251.0554 251.6676 253.2091 254.3669 255.0582 255.0388 256.1158 256.3177 255.4243 254.7273 254.629 254.6124 252.7756 251.4343 250.6439 249.3619 247.2904 244.6346 241.2279 241.2129 240.704 241.2374 241.1613 241.5028 249.8444 253.8053 258.0357 260.271 262.2557 264.0324 265.4315 265.4081 264.4598 261.6691 259.9025 259.8078 261.0729 262.518 263.7518 264.6213 266.1267 268.3987 271.1192 271.9474 273.1312 274.1336 275.3315 275.7659 276.2389 276.8157 277.1391 277.3664 277.2913 277.2728 277.4635 277.0941 276.488 276.0501 275.2917 273.5208 270.7002 269.5883 268.5946 267.6062 264.5922 261.5022 259.7058 258.7765 255.6411 256.4348 257.2865 257.9012 259.4253 262.5951 263.5444 264.4709 264.0682 263.0852 262.416 263.7845 264.7396 265.2791 265.6006 265.6547 265.5437 265.0031 263.9437 262.8634 256.4431 252.5618 249.5407 242.9713 240.4627 239.4185 238.5984 238.1529 237.8675 237.4558 237.1687 237.5011 236.5562 237.062 237.2978 237.4574 237.7289 237.7588 236.8789 237.2526 240.4382 240.3859 240.4747 241.1638 241.6205 241.6418 241.1605 240.3484 240.1344 240.4785 240.2778 239.7888 239.5257 239.1716 239.5857 241.7171 243.8289 245.7404 247.2759 247.6925 248.1847 250.2173 248.3959 246.605 244.8397 243.7832 242.5819 241.6665 241.3999 242.2938 244.388 246.6815 248.865 252.9177 257.6667 260.1917 262.8658 261.6057 261.3087 262.9587 266.3881 269.7076 272.4617 276.6186 278.0226 279.1481 280.3371 281.1795 281.9285 282.3641 281.7746 280.1348 277.9916 277.2783 276.0122 274.7784 273.5676 273.2461 272.116 270.9876 270.239 268.9377 266.3384 266.7917 268.4008 269.619 270.9549 271.0989 269.7417 268.2971 266.6116 265.9283 266.3526 267.0461 268.179 268.4568 268.6119 268.535 267.6771 265.8332 257.0652 256.2901 256.1482 257.8615 261.6873 264.6933 266.9928 269.229 271.3531 273.8495 274.6247 274.0267 273.2109 273.0375 272.762 272.6253 273.4653 274.9965 278.6313 279.3558 279.601 279.7903 280.4016 280.6886 281.1385 280.3803 280.1987 277.5796 276.4669 275.7028 274.0725 272.411 269.5337 267.558 263.6614 257.179 251.0455 254.3636 -9999 -9999 +-9999 302.765 305.4398 308.1209 308.4102 308.017 305.9406 303.4376 299.5858 298.6981 295.9328 290.932 288.3041 289.8455 289.4003 291.3827 293.359 297.7397 300.1189 301.015 301.2282 301.8116 302.9865 304.2332 305.5453 307.4287 310.2904 312.1634 313.728 314.9765 316.3203 317.835 318.1399 317.78 316.8828 315.2063 314.088 313.7362 313.5865 312.6803 309.904 308.5041 306.1841 304.9331 303.0802 301.4846 299.5691 298.4435 299.3249 303.3591 307.4503 308.9436 309.6453 312.036 313.6296 315.1929 317.0763 317.5427 319.0149 320.8622 322.1953 323.3032 324.3 324.6284 324.1602 322.6584 320.5122 320.9906 320.7234 318.4838 319.8933 322.1688 320.4937 316.8821 312.9648 313.3059 316.3646 320.5286 322.2683 322.9224 323.493 322.7065 320.0457 318.8846 322.3229 325.4259 327.5031 328.8483 329.1071 328.0929 326.432 327.1575 329.8799 331.4572 331.0701 331.1251 331.4962 332.8138 335.6424 339.4096 342.0735 343.1831 344.8321 343.9272 342.6178 341.8441 342.247 340.7399 338.07 334.9608 331.3872 328.5766 325.3203 320.9216 317.5564 314.7075 314.4619 316.9147 315.9757 318.2135 318.1719 316.3334 315.1666 313.067 312.2613 312.3253 312.6444 312.282 311.3375 309.635 307.308 307.3405 308.1029 306.3355 303.4266 293.6749 290.0172 290.366 290.0584 291.5745 294.702 297.0918 299.5901 300.3921 301.139 301.1924 300.1802 298.4668 297.0704 295.4491 293.6592 290.8632 287.3389 291.2517 293.2323 291.2609 288.1292 288.5212 288.249 288.9697 289.4668 290.3978 294.0467 292.7739 287.1311 287.0272 289.3235 291.7463 291.7692 290.1323 293.312 292.3318 287.1646 289.184 292.9379 296.1888 299.9876 302.5952 304.3839 305.4819 305.2552 301.1756 299.261 296.3452 296.0603 296.9499 297.4503 297.591 296.6483 296.7941 298.767 299.0128 299.7244 300.326 300.996 301.5711 302.2899 302.7243 302.5198 300.6856 299.8845 299.5218 299.3112 298.6299 298.1106 297.5132 297.2034 296.9419 297.3025 298.1331 298.9654 298.7125 296.1057 292.4728 289.4546 287.1588 284.6968 278.1878 275.1145 272.4676 273.7235 273.656 274.5999 275.1407 275.7258 276.9874 279.654 279.0221 281.5009 284.0172 286.6267 289.7823 293.1334 295.6606 298.4088 299.3229 298.8841 298.3084 298.0648 296.5 295.1088 294.1137 293.8548 294.2948 292.7311 291.9976 290.9245 289.2376 287.1328 287.2533 287.7422 289.4232 288.4002 284.0508 282.347 280.3877 278.1976 276.309 274.9435 274.2157 271.7954 269.7588 269.8023 267.5076 264.7047 261.3502 258.6996 255.8103 253.4798 252.0873 251.311 250.4339 249.4586 249.0824 248.606 247.3992 249.4558 249.8324 251.3766 252.8591 253.336 253.9606 254.3252 254.1569 253.509 253.6317 253.3385 251.977 250.3732 250.2255 248.9408 246.2956 242.7414 241.4142 241.7031 241.6283 242.6901 244.6193 246.3042 252.4069 255.2569 258.7104 261.0053 262.5695 263.602 264.1755 263.5973 262.5022 259.2936 256.8375 259.5422 261.6962 262.5467 262.7207 264.6213 266.1267 268.3987 271.1192 271.9474 273.1312 274.1336 275.3315 275.7659 276.2389 276.8157 277.1391 277.3664 277.2913 277.2728 277.4635 277.0941 276.488 276.0501 275.2917 273.5208 270.7002 269.5883 268.5946 267.6062 264.5922 261.5022 259.7058 258.7765 255.6411 256.4348 257.2865 257.9012 259.4253 261.2258 263.1863 264.6113 265.3168 264.6755 261.1996 261.3753 262.22 262.8524 263.2695 263.3567 263.31 263.5055 262.9633 262.0424 256.6072 252.7963 249.0054 243.9907 240.4243 239.0863 238.3525 237.9508 237.6601 237.2072 237.0462 236.8782 237.6165 237.4249 237.7315 237.3303 236.5352 236.6207 235.8458 235.5441 240.1662 240.2933 240.2356 240.5717 240.6081 240.3882 239.9768 238.9696 238.732 238.6749 238.7635 238.525 238.3601 237.8036 237.6275 237.7012 239.1961 241.4509 243.2283 244.3272 244.2489 243.9296 242.9722 241.459 241.7455 241.6602 240.4784 239.9915 240.1782 241.3359 243.6239 246.7339 249.5361 252.9352 260.1943 263.8488 266.1377 265.2495 262.602 263.3727 266.6816 269.6307 272.666 276.9131 278.2285 279.4127 280.1872 281.2072 282.1463 282.2172 281.622 280.6174 279.9577 278.8134 277.1102 275.9701 275.3839 275.0159 273.9004 272.6454 271.5928 269.4465 269.3607 269.2473 269.5623 269.5775 270.4034 270.6964 267.621 264.9639 263.0814 263.2037 263.6779 265.2567 265.9927 266.7326 267.3098 267.0724 266.4026 265.1404 256.3282 255.6151 256.3 258.239 261.5289 264.1531 266.6209 268.9218 271.0448 273.568 273.4013 272.2538 271.3478 270.7386 271.1253 271.6957 273.1882 274.4544 277.2898 277.9311 278.0474 278.4024 279.5316 280.2787 280.5539 280.1237 279.8547 277.3005 276.9032 277.1319 276.4312 275.0245 273.3432 271.0515 268.5369 264.3708 256.751 250.2511 -9999 -9999 +-9999 301.2752 303.8896 306.3084 307.7678 308.186 307.2992 305.552 301.3701 299.0656 296.4013 292.629 287.9597 288.9961 289.3818 289.3162 291.7597 295.8321 297.6003 299.8298 301.7885 303.5196 305.2693 305.5461 307.2045 308.0191 310.6762 312.2879 313.6443 314.925 315.859 316.6918 316.5549 316.1597 314.3194 313.0939 311.4519 309.6596 309.9368 310.2165 309.1267 306.9868 304.9426 303.5552 299.6289 298.6248 297.9445 297.2776 298.5395 302.8908 306.9429 307.4359 308.447 311.7382 313.2611 314.4441 316.588 317.5618 318.8781 320.4039 321.6433 322.6011 323.0335 323.1878 322.6045 321.2255 319.2073 318.7436 318.5099 317.2061 318.2363 319.6766 319.0887 315.5315 311.9255 312.8065 315.1854 317.242 318.7721 319.3106 319.4823 319.2159 316.6558 318.7167 320.7632 322.5768 324.3145 325.5174 325.0419 321.7507 324.0504 324.1713 326.6035 328.4184 328.439 329.901 333.1297 335.3223 336.6357 340.9177 342.936 345.0166 346.343 346.6436 345.6336 345.1042 343.8698 341.4859 337.0568 333.6289 328.8203 323.8897 319.8232 317.1972 317.1635 318.5807 320.6841 320.1093 318.4576 320.1533 320.8601 319.2758 317.2625 315.5615 315.3865 315.1549 315.4055 315.4868 313.8705 312.2851 311.0316 309.8911 309.0768 307.1167 304.1977 295.6617 292.2473 289.5306 290.079 289.7602 291.46 295.9527 296.2531 296.3829 297.8642 298.7218 297.8199 296.1719 294.754 293.5529 291.2438 287.7347 283.9882 293.8015 296.9861 295.8324 293.2542 293.9219 293.8462 294.0815 294.4214 294.9373 298.4102 297.4838 293.8221 292.607 293.6814 293.8968 293.1213 291.9629 295.223 294.4213 288.9108 289.618 293.6443 296.4542 299.6736 302.391 303.6549 304.9268 305.5882 302.4841 300.5373 298.8514 298.9326 299.2055 299.1679 299.4029 298.9811 298.5308 299.4194 300.0078 300.5872 300.8418 300.9991 301.323 301.6891 302.2912 302.1357 299.9685 298.7069 298.0992 298.0595 298.6157 298.2539 297.2714 296.5971 295.9143 295.9917 296.8363 297.921 298.1549 295.605 291.5401 288.4354 285.9827 283.3969 278.7885 277.2507 277.2288 277.5791 277.1448 277.8728 279.3369 279.6453 278.626 280.7579 282.0972 283.4688 285.4761 287.4988 290.3072 293.5925 295.5025 297.4705 297.3965 297.3553 297.006 296.2791 294.2367 293.2273 292.0532 291.9646 292.6916 291.8428 291.2882 290.283 288.7366 286.6698 285.7865 287.6974 289.4217 288.8459 284.9106 283.3651 281.2496 279.2282 278.0696 276.2118 274.9899 274.6554 273.6784 273.0354 270.834 268.2218 265.0211 262.6614 259.6162 257.7555 256.1299 255.2826 253.9515 251.1739 251.6368 251.1016 246.3465 247.3587 247.1494 248.6707 250.2278 253.336 253.9606 254.3252 254.1569 253.509 253.6317 253.3385 251.977 250.3732 250.2255 248.9408 246.2956 242.7414 241.4142 241.7031 241.6283 242.6901 244.6193 246.3042 252.4069 255.2569 258.7104 261.0053 262.5695 263.602 264.1755 263.5973 262.5022 259.2936 256.8375 259.5422 261.6962 262.5467 262.7207 262.9938 264.328 265.9794 268.4021 269.6349 270.6428 271.3972 272.1416 272.7377 273.6873 274.143 274.6105 275.1623 275.3525 275.4446 275.649 276.6084 275.9778 275.4555 274.6249 272.3812 269.5461 268.237 267.2473 266.6851 264.4897 263.0966 261.628 260.3048 258.3974 254.9547 255.0513 256.6609 258.4181 260.6951 262.931 264.5569 265.358 265.2083 259.5791 259.2208 259.7267 260.5714 261.3503 261.7433 261.6341 261.7596 261.3607 260.6087 258.6017 254.8543 248.2164 240.1346 238.6875 238.092 237.4443 237.4072 237.304 237.8209 238.3031 238.5844 238.1717 237.9438 237.6064 237.5449 237.3464 238.1751 237.9416 236.2645 237.7966 240.1588 240.2534 240.291 240.0502 239.8003 239.4393 238.3445 238.0992 237.9872 238.0041 238.0052 237.7292 237.4203 237.2939 237.1972 237.0432 238.3326 239.8191 241.0133 240.5035 238.9747 238.3095 238.5943 239.864 239.6964 238.9468 238.8527 239.2926 240.5274 243.5776 246.828 250.3587 255.1823 263.0935 266.2079 267.3823 266.1724 265.0544 263.6702 265.6703 268.4977 271.8133 275.3999 276.854 277.7291 278.3564 279.5034 280.2676 280.5366 280.1601 279.9993 280.9721 279.7427 278.0982 277.0736 276.7978 276.0386 274.5274 273.2622 272.1962 270.1029 269.2361 269.2476 269.4932 270.0778 270.1592 270.7118 266.3911 262.628 261.9344 260.5257 260.7215 262.349 263.6334 264.2379 265.1725 265.2852 264.5909 263.0797 255.6637 255.4747 256.1786 259.0204 262.1548 264.0423 266.2919 268.467 270.4379 271.7969 271.6045 270.5202 269.8134 269.8566 271.0463 271.7058 272.8926 273.8277 276.1982 276.4494 276.6666 277.9373 279.261 280.1074 280.247 279.6938 279.3421 277.7537 277.748 278.2377 278.232 277.1356 275.5499 273.3449 270.7315 267.1141 261.624 256.3115 -9999 -9999 +-9999 299.5889 301.4902 304.1844 306.059 307.3723 307.5173 306.2621 301.5414 299.3638 296.5101 293.8326 290.9958 288.0507 289.3101 289.0753 290.6336 295.0423 297.7964 299.6819 301.8517 303.9222 305.3907 306.7412 307.3493 308.6924 310.6573 311.9778 312.997 314.1384 314.8501 315.0901 314.557 314.128 312.4591 310.742 310.4436 308.6493 306.3859 306.9101 306.6187 305.9714 304.3251 301.4109 299.063 297.5906 297.0082 297.585 298.6109 302.6458 305.7384 306.256 307.9256 310.5997 311.6803 313.2935 315.9296 317.2892 318.8459 320.4299 321.0177 321.5183 321.8914 321.561 320.8802 320.2553 318.6471 316.6696 316.4561 315.7829 316.8651 316.5266 315.6621 313.5325 311.5098 311.8212 312.6753 312.7901 312.8221 312.9878 313.9174 314.5277 314.9262 314.9793 315.933 316.9597 318.4398 320.0037 320.3305 322.1606 323.4709 324.8112 326.5109 328.0535 329.9797 332.596 334.9723 337.2467 338.3728 341.6794 343.8252 346.4055 347.0702 347.8926 346.9003 344.317 341.2725 337.3234 331.983 329.5734 324.9799 321.7452 319.6312 321.7345 323.0739 323.5969 324.3506 321.474 320.6944 322.613 323.1803 321.2555 319.2146 318.4698 318.1925 317.5276 316.841 316.935 315.0627 312.9473 311.5087 309.5166 308.0675 306.0918 302.5631 294.029 291.8931 291.6993 290.1378 288.4341 289.5207 291.0151 291.2882 290.9458 294.3395 295.7525 295.1348 293.5162 292.0092 290.64 287.1587 285.6704 286.7877 298.2675 301.0992 301.6276 298.9961 298.7109 298.4796 298.3363 298.5904 298.6953 301.5681 300.3564 297.5805 297.4044 297.5082 296.5782 294.3502 293.7302 296.3223 295.8143 290.8956 290.5737 293.6359 296.5185 298.0345 300.6337 302.7253 304.0113 305.5305 304.1535 302.6839 301.5175 301.0391 301.0342 300.9284 300.8336 300.4155 299.7758 299.2813 299.8641 300.3511 300.2505 299.7395 299.9442 300.7487 301.3776 301.4427 299.0584 297.8035 296.7364 296.8169 298.0119 298.2098 297.3878 296.9483 296.0565 293.9937 295.2847 296.6893 297.2396 295.3261 291.2853 288.0155 285.7661 283.8058 281.4098 280.6509 280.641 280.344 279.6883 280.081 281.3509 282.5569 282.0833 281.0095 282.6318 284.7808 286.6301 288.8956 291.2595 293.6248 295.2314 296.3232 296.3006 295.4106 294.9146 294.3984 292.6529 290.9795 290.5435 290.4544 290.8731 291.0112 290.2898 289.2133 288.4608 286.6698 285.7865 287.6974 289.4217 288.8459 284.9106 283.3651 281.2496 279.2282 278.0696 276.2118 274.9899 274.6554 273.6784 273.0354 270.834 268.2218 265.0211 262.6614 259.6162 257.7555 256.1299 255.2826 253.9515 251.1739 251.6368 251.1016 246.3465 247.3587 247.1494 248.6707 250.2278 250.6457 252.052 252.5879 252.5716 252.6752 252.6105 252.0431 250.5042 249.8077 250.162 248.8597 245.5396 242.3772 241.5754 240.4376 241.9258 246.5707 248.911 250.4534 255.8745 258.8873 260.31 260.6759 261.5402 262.2302 261.9634 261.1503 260.1792 257.3589 256.2093 259.4254 260.6955 260.928 260.223 260.3683 260.6987 262.1753 265.3423 266.7827 267.1582 267.3915 268.5706 269.505 270.9175 271.851 272.3901 273.3361 273.721 274.0736 274.7378 276.4626 275.9214 275.5318 275.0406 272.3727 270.5981 269.6721 268.2352 266.8876 266.0422 265.1811 264.4173 263.3234 262.1688 256.2952 254.7706 255.6367 257.502 259.3987 261.4702 263.127 264.0081 263.9932 259.7467 257.6007 257.5592 258.1507 258.4535 259.1499 259.6899 260.2009 259.8047 259.1883 255.8833 250.9673 244.4139 239.6405 238.2298 237.4631 237.4051 237.3178 237.6007 238.2816 238.2062 237.9403 237.714 237.2749 237.0871 237.3093 237.5066 237.4917 237.9584 235.7709 237.3333 238.1348 238.9297 240.2754 239.3592 238.8895 238.1331 237.8331 237.8539 237.8277 237.6993 237.694 237.6067 237.4682 237.2881 237.3384 237.1222 236.7946 237.8923 238.3623 237.5219 237.1467 237.3064 237.4632 238.2627 237.9038 237.7945 238.1187 238.5103 239.7293 243.8025 247.7287 251.686 255.9828 263.609 265.6886 265.3035 264.4684 264.5866 265.0937 264.9275 267.9987 270.2798 272.6443 274.3235 274.9158 275.9252 277.1805 278.2469 278.697 278.3857 278.9208 280.3085 279.3972 278.4976 278.0858 277.6454 276.3424 275.0046 273.9778 273.1734 272.6284 271.6555 270.6977 270.0076 269.9704 270.6168 271.0892 266.3353 262.1122 261.3942 259.8946 259.4034 259.0067 259.4867 260.2802 261.3103 262.7745 262.4463 261.0086 255.6479 255.4949 255.8904 258.6479 261.8006 263.4122 265.6725 267.418 268.7505 269.3649 269.2782 268.1651 268.6014 269.462 270.3824 271.5116 272.7136 273.3722 274.7188 275.3751 276.5227 277.8957 278.8705 279.6518 279.896 279.2491 278.637 275.8705 276.5522 278.3507 278.7436 277.9989 276.2068 274.3619 272.0464 269.4544 265.3666 263.4337 -9999 -9999 +-9999 298.0694 300.2897 302.7682 304.5771 306.3895 307.1924 306.4808 302.9336 300.939 298.9178 296.9636 294.6671 289.6654 289.1305 289.2453 290.4063 294.1252 296.442 298.8351 300.9365 302.8493 304.5452 305.9302 306.55 307.8327 309.9084 310.4748 311.3786 312.7557 313.3391 313.1363 312.1195 311.3994 310.1398 308.2323 309.1897 307.843 304.9966 303.1178 303.042 303.2861 301.577 298.4176 297.3242 295.832 298.9451 300.9462 299.8252 301.7448 303.5904 305.7271 307.3315 309.7714 311.5343 313.7458 316.3726 317.4572 318.4297 319.5523 319.476 320.0544 320.1547 318.8788 318.1569 318.2957 317.6941 315.9663 315.0584 314.2205 313.8004 312.5285 312.6106 311.2089 310.8412 311.3217 311.5518 312.0717 312.5027 313.0806 314.3893 315.0456 316.1207 318.098 319.8263 320.8252 320.3784 318.0298 320.1016 324.9544 327.4238 328.297 329.5698 329.7724 331.459 333.517 335.5903 337.6187 339.4955 342.5705 343.9159 346.2378 347.8547 348.7612 348.0304 344.6807 342.6924 340.5869 331.9554 327.3982 324.4977 322.5947 327.0916 327.7207 326.5314 327.0932 327.229 322.9468 323.1445 325.2383 324.6337 322.9692 321.43 320.7728 319.9337 318.8624 316.9445 316.0547 313.7453 311.3999 309.5045 307.7928 305.2578 302.9799 300.0545 293.0358 293.1535 293.0898 291.5859 289.7172 288.6322 289.2098 288.5269 288.1626 290.7284 292.7333 291.4473 289.9111 289.0894 287.1093 284.9898 286.8002 289.4731 297.1387 300.5948 304.5114 304.5886 303.2156 302.7831 302.1651 301.9974 301.9203 303.7117 302.9264 301.2255 300.5617 300.0735 298.2603 295.7942 295.9822 297.7034 296.8479 293.8658 291.605 294.6249 297.5661 299.5782 301.7003 303.5425 305.1128 306.0002 305.2186 303.8167 303.0576 302.3893 302.0593 301.8903 301.1803 300.1053 299.1169 298.313 299.0395 299.0211 298.607 297.9445 298.1842 299.0839 300.219 300.4095 298.7112 296.946 295.5341 295.7726 297.1101 297.4166 296.4012 296.2225 296.132 293.1989 293.3598 295.0317 296.4816 294.7786 291.8238 289.3098 287.0949 285.4791 281.4098 280.6509 280.641 280.344 279.6883 280.081 281.3509 282.5569 282.0833 281.0095 282.6318 284.7808 286.6301 288.8956 291.2595 293.6248 295.2314 296.3232 296.3006 295.4106 294.9146 294.3984 292.6529 290.9795 290.5435 290.4544 290.8731 291.0112 290.2898 289.2133 288.4608 286.9391 285.0674 286.3672 287.6166 287.8556 284.8477 283.5122 281.8689 280.408 278.7873 277.1467 276.4307 275.7817 275.4626 274.2599 271.9809 269.9563 268.2263 265.5514 262.8215 260.3483 258.9991 258.034 256.1699 255.4948 256.017 256.4686 255.4148 250.0013 246.3908 245.5898 246.2548 247.4524 250.3486 250.6806 251.0378 251.5398 251.2564 250.4687 249.4812 248.6116 250.0047 249.0406 245.9901 243.4396 241.2934 240.2409 244.9952 248.988 251.1194 253.1352 258.0946 260.6197 261.5987 261.6857 261.313 260.657 259.936 259.3518 258.1331 256.363 254.588 257.2984 258.2736 257.9709 257.1251 256.6043 256.4684 257.4207 260.9004 262.5182 262.8047 263.3701 265.0424 265.7255 267.4646 268.5103 269.5504 271.2643 272.0325 273.0895 274.3192 276.186 276.2054 276.0178 275.3127 273.8697 272.5793 271.0643 269.5325 268.2557 266.9568 266.069 265.6533 265.0358 264.2947 261.3098 257.8367 251.9919 255.9816 258.7726 260.3242 261.6455 262.5609 262.6044 261.6483 258.0631 256.6716 255.4255 255.0119 255.6523 257.4097 257.8311 257.8037 257.5911 254.622 248.206 240.955 239.3188 237.9905 237.2499 237.2241 237.4267 237.8429 238.0953 237.7081 237.5632 237.6284 237.0992 237.1737 236.9602 237.1602 237.3745 236.3652 235.5336 237.3554 237.49 237.2584 237.7198 237.6396 237.1499 237.4343 237.7762 237.7888 237.7373 237.7658 237.8321 237.4859 237.5803 237.7708 237.5235 237.243 237.2401 237.2102 236.8401 236.4911 236.4582 236.7373 236.8974 236.9591 237.2445 237.5847 237.8979 238.2769 239.6024 244.5444 249.4786 253.692 257.287 262.352 262.7714 261.4448 260.9423 262.1118 263.6561 263.9389 266.0022 267.3633 269.9337 271.3781 272.3919 273.7684 274.8358 275.776 276.3189 276.4148 277.5685 278.6504 278.7084 278.4094 277.8589 277.2451 276.4087 275.4082 274.4595 274.5933 274.2596 273.4723 272.1122 271.2716 270.4225 270.7923 271.3037 268.5059 265.3415 261.5703 259.9814 259.1627 258.3563 257.8955 257.4642 257.3894 259.0788 259.8775 258.1633 255.0453 255.0497 255.7323 258.1128 261.2603 263.1807 264.8841 266.0961 266.9031 266.4402 266.1788 266.3803 268.2708 269.1803 270.1021 271.2632 271.916 272.4789 273.9352 274.632 276.0133 277.4727 278.4615 278.8797 278.9867 278.7705 278.0256 275.1404 275.1873 276.8572 277.6157 277.1841 275.6873 273.7777 272.3843 270.8336 267.4252 266.1559 -9999 -9999 +-9999 294.9735 297.6402 300.1801 302.4417 305.5907 306.5955 305.328 303.5944 301.5916 299.7226 297.813 294.9802 292.3067 288.3685 289.8353 289.1025 291.3383 293.3474 295.7788 298.0222 300.4158 302.8482 304.1596 304.4897 306.7375 307.6241 308.593 309.4926 310.6749 311.7473 311.3414 309.9792 308.7606 307.335 306.6684 307.2713 306.5474 304.9483 302.7975 301.0392 299.5092 296.9649 295.8396 295.1004 296.3806 300.6841 301.3168 300.9391 301.614 302.9437 304.0142 306.7455 310.8836 312.1845 314.1486 314.9418 314.8303 317.3399 318.0164 318.0134 318.2451 318.4417 317.7387 316.2966 316.1917 316.4608 315.6909 313.7469 312.8101 311.8029 310.2719 310.3309 310.2873 310.8055 312.2055 312.9533 314.4079 315.5209 315.9332 318.4013 319.8547 321.0141 322.3742 322.4839 323.9661 323.9536 322.858 318.8733 325.5292 327.4972 329.9115 331.5518 332.7018 333.2142 334.5993 336.6398 338.8075 342.5348 344.1568 345.2616 346.9471 348.4611 349.5946 348.2184 346.1611 344.1237 341.3987 330.4754 329.3893 333.3546 332.3913 331.6321 331.3494 330.2428 330.2096 329.985 325.1672 324.7875 326.9044 326.123 324.5963 322.8839 320.9298 319.181 317.6563 314.7596 313.3545 311.2262 308.7577 306.4118 303.9125 301.8484 298.0938 295.4582 298.0627 296.8054 293.3687 291.6446 291.6505 291.7223 291.1521 288.9554 287.1095 287.7595 288.2643 287.9407 287.7466 287.2159 285.9393 285.2505 286.758 289.5328 299.9126 303.0165 306.6504 308.8322 307.1609 306.3502 305.5259 305.2805 304.8185 305.4324 305.0202 303.7337 302.5506 301.7332 299.3091 297.955 298.0707 299.1194 298.0148 295.3125 293.6341 295.9604 298.5274 300.7482 303.0187 304.8296 306.3613 306.5842 305.1701 303.9958 303.0827 302.3141 301.9602 301.8903 301.1803 300.1053 299.1169 298.313 299.0395 299.0211 298.607 297.9445 298.1842 299.0839 300.219 300.4095 298.7112 296.946 295.5341 295.7726 297.1101 297.4166 296.4012 296.2225 296.132 293.1989 293.3598 295.0317 296.4816 294.7786 291.8238 289.3098 287.0949 285.4791 282.8838 282.8861 282.2079 282.2373 281.7467 281.8724 283.2945 284.6397 284.9497 282.3641 283.0973 284.8887 287.1591 289.6096 291.0651 293.4332 294.9104 295.5749 295.1794 294.2532 293.1057 292.9451 292.0139 289.7508 288.8674 288.8001 289.5033 289.6751 289.4794 288.4065 287.8196 287.3567 285.78 284.4542 285.4394 285.4199 284.4358 283.5674 282.1852 280.6388 278.8592 277.8781 276.9496 276.1016 275.6216 274.056 272.6187 270.6654 269.2416 267.4607 265.2164 263.3424 261.7922 260.0797 257.9085 258.0992 258.3708 259.2973 258.8838 255.8097 253.1568 250.2105 245.7605 245.4655 248.6001 249.4921 250.0499 250.0859 250.1485 249.1856 248.1227 247.8559 249.311 248.756 245.9582 242.4166 241.5222 240.3348 243.1855 246.7072 249.1248 252.1461 257.5941 259.5938 260.4185 260.7568 259.7931 258.5103 257.3997 256.3751 255.5957 255.5275 253.0089 254.403 254.5836 253.9764 253.5981 252.2321 253.353 255.8395 254.9171 255.8581 259.6617 261.2553 261.6097 262.4387 264.6646 266.2531 267.1009 270.6819 271.7282 273.0502 274.6889 276.5999 277.5917 277.8536 277.0562 275.3174 273.9918 273.079 272.1409 270.6161 268.8127 266.8795 265.3629 265.9274 266.7374 264.6706 261.8156 255.0231 252.6759 256.1232 258.9467 260.0059 260.9086 261.2763 261.2717 260.7031 259.049 257.137 253.8522 253.0377 254.5015 255.4789 255.8907 255.2294 254.1653 249.5139 243.7527 238.8448 237.7302 237.2047 237.2444 237.5771 237.9013 237.909 237.5635 237.3731 237.2181 237.0863 237.0994 238.0394 237.3065 237.015 235.5764 237.8835 237.5883 237.4578 235.9813 235.4353 235.392 235.8442 239.4073 238.7502 238.6332 238.0523 237.8189 237.5984 237.217 236.8874 236.9986 236.8748 236.6342 236.7684 236.8199 236.7024 236.6156 236.5727 236.6576 236.5319 236.3428 237.464 237.5944 237.7266 238.1064 239.6044 245.6512 251.2193 254.3949 256.4474 258.088 256.9091 256.1707 257.6269 260.1851 262.0788 263.8589 265.2513 266.7136 267.6798 269.0054 270.3332 271.5815 272.3632 273.2964 274.0395 274.7252 275.5657 276.5971 277.0963 276.5087 276.3837 276.4693 276.0894 275.7125 275.7474 276.068 275.83 274.7431 273.5309 272.3864 271.302 271.0984 271.2758 269.942 266.9978 265.1777 261.0962 259.4976 258.8549 257.9044 257.118 256.7693 256.0607 255.6369 255.6624 255.0653 255.0522 255.6261 258.1182 259.7955 260.7392 262.5216 263.6448 263.3461 263.5517 265.6631 266.4257 268.1099 269.3392 270.298 270.8151 271.2376 271.4237 272.8886 273.9126 275.4765 276.8504 277.6324 277.6248 277.6393 278.4093 277.6772 274.7831 273.9059 274.513 275.5721 275.375 274.2248 273.2059 272.0645 271.0966 268.4314 266.9637 -9999 -9999 +-9999 291.6355 294.4645 296.9993 300.2949 301.8771 302.1586 304.8027 303.979 302.0224 300.7385 298.6284 296.2919 292.2386 289.2929 286.8878 287.8542 288.5533 289.726 292.4076 295.7098 298.8287 300.6595 301.3444 303.2772 303.9305 305.2463 306.4621 307.6723 309.2158 310.0421 309.4851 308.0848 306.1154 304.1912 305.5041 305.5119 304.7963 303.5829 301.4439 298.099 295.4822 294.3885 293.8741 295.3036 295.6491 296.3826 297.086 298.4453 299.8759 301.3712 303.7648 306.3066 309.3203 310.7248 312.4016 313.923 314.1815 315.3125 316.0061 315.4249 315.6803 316.2465 316.0668 315.1105 313.8385 314.1164 313.477 311.5762 309.834 309.6304 309.5938 310.4238 311.8283 312.9657 315.6316 317.3181 318.4114 319.7991 321.3162 322.9328 323.4195 325.4805 326.0967 325.4612 326.3194 326.1797 325.701 322.7267 322.8416 326.2835 329.7502 332.5129 332.7872 333.6115 335.2124 336.963 338.9034 342.6532 344.3833 345.9853 347.6552 348.6441 349.8918 348.0741 345.1858 343.3335 341.5085 331.1107 335.8872 338.2997 337.135 336.0923 334.6155 332.4068 333.5648 332.2569 326.8247 327.7578 329.0251 327.6455 323.8514 320.9962 319.3129 316.3229 314.0656 310.7301 308.0225 307.3164 304.5229 302.0876 299.8632 297.3463 298.182 300.9899 297.7343 294.6849 292.7232 290.9982 292.6785 293.6349 294.115 291.3018 288.1965 286.1226 287.4237 287.3049 286.1699 287.0756 286.9781 286.588 286.9323 288.2717 296.923 300.7958 303.3768 308.8322 307.1609 306.3502 305.5259 305.2805 304.8185 305.4324 305.0202 303.7337 302.5506 301.7332 299.3091 297.955 298.0707 299.1194 298.0148 295.3125 293.6341 295.9604 298.5274 300.7482 303.0187 304.8296 306.3613 306.5842 305.1701 303.9958 303.0827 302.3141 301.9602 301.1935 300.3215 299.0414 297.6475 297.6414 297.9448 297.8902 296.9147 295.796 296.2563 297.471 298.4978 299.0764 297.6 296.2598 294.7673 294.0733 294.9068 295.8036 295.0151 294.6815 295.1764 293.0062 291.9605 294.1678 295.0135 294.7268 292.6278 290.3556 288.2832 286.5595 284.9973 284.6419 284.6829 284.6708 284.4957 284.6196 285.2967 286.5298 287.1086 284.4492 283.9495 285.3173 287.532 290.2267 292.2054 293.7065 294.813 294.1379 293.1725 292.257 291.7844 290.7626 289.8573 288.9358 287.6253 287.3751 287.7156 288.4415 288.1834 287.5035 286.8692 287.4544 286.8046 284.6304 283.7391 283.151 283.8954 283.368 281.6475 280.0905 278.0367 276.3817 275.422 274.9571 274.3427 273.4596 272.1696 270.2569 268.8173 267.3652 265.931 264.1581 262.7032 261.4648 260.1044 259.9845 260.7138 261.4135 260.6296 258.0184 255.9684 254.3571 250.3404 245.8032 246.1891 246.6893 246.9787 247.3254 248.0635 247.7328 247.1047 247.1433 247.3212 245.2649 241.71 241.1293 241.4372 241.9775 242.1492 244.3929 247.9959 250.9045 255.8669 257.896 258.6885 258.9131 257.8615 255.9895 254.76 253.3608 253.3909 252.9943 251.696 251.4247 250.3664 251.0054 252.6616 253.7018 256.4766 259.0841 260.1105 260.3923 260.8521 261.9503 263.3491 265.1512 265.7777 266.0453 267.8839 271.5584 272.6855 274.0456 275.3843 277.3102 278.6962 279.5002 278.7742 276.9508 275.6587 274.5451 273.8539 272.9546 270.7038 268.2529 265.6943 264.9409 264.8672 266.6458 265.3979 260.4347 252.5782 253.3027 256.2868 258.5011 259.0956 260.0245 260.7715 260.8324 260.3999 259.5213 257.6326 255.2419 252.8874 251.93 252.7198 253.8652 252.5611 250.4276 246.5272 238.5612 237.7286 237.4515 237.3177 237.4151 237.8953 238.0744 237.764 237.3344 236.8833 236.7979 237.0243 239.3869 241.367 238.4062 235.8499 235.4862 235.4642 236.6248 238.0992 237.842 237.7325 237.4759 236.0305 237.3009 239.0156 238.9099 238.2166 237.7191 237.4734 237.2498 236.9502 236.7609 236.4255 236.6311 236.6554 236.4267 236.5818 236.7262 236.6428 236.5406 236.3331 237.2493 237.0973 238.2767 239.1845 241.6427 247.327 249.8865 251.553 252.1372 251.7839 253.4952 258.36 262.9668 265.8309 267.9559 269.3227 270.1108 270.0591 269.5828 269.0101 268.9153 269.6021 270.3981 271.4276 272.2067 272.5798 273.219 274.1501 274.5942 275.0327 275.0676 275.3182 275.699 276.3677 276.7204 277.1989 276.8324 275.6669 274.419 273.3708 272.2789 271.6872 271.2617 270.5529 269.0532 266.764 264.1064 261.7998 261.6226 259.9948 259.285 257.9777 256.5775 255.7995 255.0844 254.6301 254.7457 255.6764 256.7806 257.5238 258.3114 259.2202 260.4708 261.1565 263.6799 265.9943 267.2624 268.7358 269.8382 270.0123 270.0282 270.2831 270.7198 272.2271 272.7747 274.0814 275.3113 276.3559 276.0796 276.9746 278.2099 277.2386 274.3834 272.0641 272.0968 273.0891 272.8936 272.3937 271.926 271.0382 270.6802 269.4261 267.4568 -9999 -9999 +-9999 291.6532 292.9471 293.6639 296.2617 299.9094 300.7813 303.9344 302.9126 301.8374 300.9833 297.9392 294.7243 291.4967 288.9647 288.3712 288.2804 288.0252 288.0916 289.2568 293.6375 296.1927 298.0216 299.2063 299.3226 300.1978 302.9301 304.5802 306.801 308.3329 308.7705 308.0315 306.0574 303.6309 302.1129 303.4143 303.5966 302.8261 301.4646 299.3734 295.1893 293.787 297.1475 299.471 299.483 297.0365 295.6531 296.2216 297.5052 297.989 298.782 301.0492 304.8589 307.8327 308.5169 309.7692 310.4118 311.5557 312.2044 312.6071 312.2113 312.6948 313.5488 313.5602 313.1953 312.5845 311.2115 310.0473 308.1828 308.0354 308.8708 312.2684 314.5518 315.378 314.8047 318.4577 321.3664 322.8661 323.3263 325.0035 327.3146 327.604 328.3135 328.8662 329.1817 328.673 328.9595 328.7479 326.7176 322.7408 323.3286 326.839 330.7074 330.9767 331.5068 333.3956 336.0113 338.4828 341.7267 343.1603 344.683 346.1131 347.5353 348.2962 347.9077 345.4226 343.0135 339.2137 337.2476 341.7275 342.367 341.8293 339.7928 336.7665 335.7341 336.3466 334.8346 329.7884 332.3366 332.103 327.6474 320.3322 316.0666 313.8527 311.5937 309.2273 305.2849 308.0225 307.3164 304.5229 302.0876 299.8632 297.3463 298.182 300.9899 297.7343 294.6849 292.7232 290.9982 292.6785 293.6349 294.115 291.3018 288.1965 286.1226 287.4237 287.3049 286.1699 287.0756 286.9781 286.588 286.9323 288.2717 296.923 300.7958 303.3768 306.5961 306.4609 305.8765 305.8321 305.91 305.8078 306.194 305.9619 304.797 303.7413 302.3762 300.5046 299.3315 299.0587 300.0455 298.3845 296.1536 295.3804 296.9435 299.4565 301.7004 303.7057 305.975 307.3284 306.9501 305.0322 303.4908 302.3069 301.0785 300.4427 300.0647 299.4697 297.9924 296.679 296.9682 297.1811 296.8165 295.3575 294.0136 294.114 294.999 296.5426 297.1999 297.5584 295.9992 294.07 292.8924 292.6597 293.6638 293.6664 293.4962 294.1623 292.5779 290.3656 292.4309 294.3203 294.2775 292.8674 290.8383 289.5867 287.6704 287.6512 286.9001 286.6313 286.0858 285.5385 285.9086 286.7279 287.9178 288.7711 285.9167 284.5083 285.6286 287.6302 290.3472 292.5046 294.1496 293.0496 294.2429 292.656 291.3777 290.5534 289.3706 287.9458 286.655 286.205 287.0556 286.8031 287.6153 286.9687 286.2778 285.6793 285.8714 285.4832 283.6999 282.2935 282.4514 283.2516 282.2113 280.2348 277.7045 275.7674 274.4301 273.6138 273.1247 272.3602 271.6822 270.5798 269.3159 267.4795 266.5082 264.6299 264.1873 262.7247 261.1472 259.195 259.4448 260.7414 261.6222 260.3456 257.7589 255.8955 254.1973 252.3245 245.8162 244.0524 244.1467 244.7894 244.9512 245.2746 245.654 245.4727 245.479 245.0816 241.956 241.4958 241.4483 241.7148 241.9315 241.6856 243.7528 246.619 248.9773 254.188 255.7823 256.1661 255.9227 254.933 252.7292 251.0639 250.1472 250.4906 250.3643 250.3185 249.9826 255.5325 258.3013 259.6273 261.5764 263.6426 264.7521 264.4461 265.9736 267.241 268.1705 268.4393 269.0149 269.8639 271.4174 272.6695 274.4728 275.1536 275.6177 276.2 277.9195 279.638 280.5563 280.3576 278.5753 276.0352 275.1104 274.3618 273.1098 271.1923 268.7282 266.3526 264.4617 263.8486 266.442 266.7308 263.9266 256.648 249.9788 254.0958 256.964 258.2261 258.9026 259.5201 260.193 260.0637 259.748 259.3103 258.0416 256.3101 255.1047 252.3249 250.7778 250.9963 247.4343 242.9362 239.39 238.019 237.5771 237.4086 237.2829 237.61 237.7814 237.2975 236.858 236.8497 237.0568 237.2113 241.049 243.3056 242.9071 244.6415 244.04 245.9068 246.355 240.601 238.5338 238.5615 238.1441 237.7675 236.3285 235.2718 235.6223 238.9056 238.5012 237.9706 237.7772 237.4718 237.0626 236.7171 236.6857 236.6222 236.5107 236.6315 236.7392 236.603 236.417 236.4167 237.1022 237.8832 238.9781 241.2437 242.2202 243.1235 246.9844 252.6509 254.1939 254.9965 257.2269 261.8607 265.0512 267.3503 269.5443 271.1342 272.4312 273.3284 272.7715 271.7328 271.4025 270.0543 270.3974 270.6699 271.4948 271.8834 271.8952 272.8266 273.1844 273.2925 273.7092 274.0142 274.7201 275.3722 276.1512 276.322 276.7802 275.7893 274.9244 273.8769 272.9027 272.1464 271.251 271.2895 269.5394 267.0519 266.1636 264.9029 263.5154 262.4834 259.0884 256.8583 257.9333 257.6845 256.4579 253.271 255.1574 255.4059 256.4812 257.4381 257.669 260.0342 261.2369 262.6172 265.2947 266.8901 267.6065 269.0653 269.5711 268.6103 269.0246 269.8918 270.9877 271.5175 271.6052 272.662 273.8948 274.5692 275.2948 276.8769 277.8627 277.2169 274.3834 272.0641 272.0968 273.0891 272.8936 272.3937 271.926 271.0382 270.6802 269.4261 267.4568 -9999 -9999 +-9999 290.6847 291.4379 293.2282 295.4754 297.9987 299.738 303.2313 302.552 301.6369 299.5115 297.6009 294.9312 292.0009 288.7377 288.2763 286.8084 287.927 287.6352 288.9406 292.8624 293.8363 294.7352 296.7513 298.0159 298.9601 302.611 304.7763 306.3268 306.9475 307.1418 306.372 304.6935 303.0207 299.9197 301.2553 301.2165 300.6013 298.3534 295.4053 293.3911 298.5205 301.8259 302.8438 303.3104 302.8605 301.1283 300.6911 298.9829 297.5829 297.6736 298.8887 303.3169 304.9908 305.2979 306.0871 306.858 307.222 307.3813 307.8378 308.7335 309.6353 310.6639 310.6254 310.1243 309.5978 307.452 306.8459 307.9134 309.8037 313.3645 316.9906 317.9269 319.1219 318.7198 318.0473 322.0783 324.493 326.1492 327.774 331.2851 331.407 331.0816 331.5445 331.834 330.5989 331.788 332.0034 331.2867 326.5533 325.0034 324.4846 326.2466 327.9695 328.6054 330.8586 333.9236 336.3823 340.1428 343.1603 344.683 346.1131 347.5353 348.2962 347.9077 345.4226 343.0135 333.257 337.2476 341.7275 342.367 341.8293 339.7928 336.7665 335.7341 336.3466 334.8346 329.7884 332.3366 332.103 327.6474 320.3322 316.0666 313.8527 311.5937 309.2273 305.2849 303.1632 301.6984 300.0959 299.4811 301.855 303.1552 303.9301 304.7368 294.2463 293.2105 292.9067 295.3581 295.7159 296.1223 294.3096 293.4251 289.0026 287.5755 286.7698 287.3642 287.197 287.2156 287.4242 286.8177 286.765 288.8698 292.1088 295.9789 297.3733 299.9591 301.2548 301.7458 302.3329 302.675 302.9702 304.3805 304.902 304.5218 303.7392 302.6776 302.2589 301.5725 300.8718 300.5653 298.9004 296.9118 296.2438 297.9374 300.4504 302.6953 304.2639 306.0758 307.5248 306.5854 304.5321 302.5812 300.9906 299.5866 298.4323 297.8723 297.3681 296.8401 296.169 296.4809 296.8246 296.2323 294.6092 293.0855 292.1326 292.9258 294.2973 295.8816 296.6888 294.8874 293.3253 292.0096 290.4325 291.0607 292.1521 292.4383 293.4503 291.9968 289.7055 290.2102 293.3487 293.4424 292.2835 290.9006 289.711 289.126 288.3368 287.7988 287.5956 287.065 286.7648 287.3351 288.2933 289.0823 289.7208 286.7727 285.2807 286.054 287.7333 290.0791 291.4766 292.4896 293.3024 293.1651 292.0428 290.4139 289.0795 288.4709 286.4876 285.2957 284.7869 284.2759 285.3682 285.549 284.9922 285.3683 284.6327 284.1368 283.4206 282.0274 281.1354 281.5548 282.6899 280.8841 279.1194 276.4062 274.0197 272.4628 271.2346 270.1344 269.9761 269.0437 267.7007 266.6193 265.4859 264.2148 263.0395 262.2457 261.0873 259.9118 257.5857 257.914 259.417 259.5742 258.4369 256.6028 255.1167 253.4264 252.0212 246.9749 243.8034 243.2408 242.8552 242.993 242.69 242.7139 243.7132 244.7742 244.2501 241.4823 241.1974 241.3683 241.8819 241.865 241.5441 242.5059 245.0286 247.5485 251.8314 253.2273 253.0927 252.6787 251.5308 248.6425 247.4178 247.5271 247.8156 249.723 253.5383 258.0479 261.4384 263.2678 264.4886 267.005 268.9593 269.9053 267.1783 269.277 271.835 272.6109 272.8066 272.6293 272.9701 274.018 275.3986 277.3277 278.0215 277.7043 276.5015 278.1907 280.2013 281.5132 280.7668 278.8044 275.1798 273.5885 272.3666 271.2462 269.7545 268.3155 266.4714 264.3384 263.4432 264.4753 265.2287 264.1243 258.3011 252.1263 251.7742 255.5716 256.9761 257.4121 258.5098 258.9842 259.1277 259.3628 259.2655 259.4098 258.5167 257.6209 255.8429 252.3398 248.1536 247.2901 243.1416 241.4212 239.6571 238.9581 238.2224 237.4142 237.4376 237.0343 236.6409 236.6834 236.939 237.0237 238.5405 243.6519 245.8569 245.9366 247.7205 247.9573 247.9047 247.1622 245.5387 242.2174 239.7621 238.8025 238.1802 237.9691 238.1571 236.282 235.2456 237.6315 238.1975 238.1081 237.9126 237.603 236.9528 236.758 236.6026 236.7542 236.7811 236.7219 236.5741 236.4834 236.5115 237.4917 238.1795 239.2286 242.2323 243.9559 247.3099 252.8922 257.6051 259.584 258.7888 261.5758 265.8766 268.4641 269.6859 271.4346 272.7905 273.8976 274.167 275.0099 274.3717 273.1193 272.1834 271.818 271.6519 272.3832 272.6098 271.9197 271.3494 271.5666 271.7581 271.8771 272.6814 273.41 274.4198 275.1927 275.2346 275.8942 275.3289 274.7946 274.3882 273.6112 272.8992 271.251 271.2895 269.5394 267.0519 266.1636 264.9029 263.5154 262.4834 259.0884 256.8583 257.9333 257.6845 256.4579 253.271 255.1574 255.4059 256.4812 257.4381 257.669 260.0342 261.2369 262.6172 265.2947 266.8901 267.6065 269.0653 269.5711 268.6103 269.0246 269.8918 270.9877 271.5175 271.6052 272.662 273.8948 274.5692 275.2948 276.8769 277.8627 277.2169 273.7517 271.7616 270.0979 270.0239 270.2743 270.9443 270.0606 269.6195 269.6953 269.6935 268.3411 -9999 -9999 +-9999 290.2272 292.6202 293.9957 295.3994 297.1363 298.4621 301.1844 301.5671 301.1435 300.9191 298.8748 296.5777 293.9794 291.8 288.8229 287.4785 287.2096 287.1146 291.652 293.0185 294.961 296.3446 297.2769 298.3408 299.725 303.8671 305.2981 305.338 304.8767 304.8133 304.4728 303.4387 301.9447 300.0071 298.68 298.8113 297.6627 294.7194 292.8174 296.1351 300.2201 303.2082 305.2149 306.3306 306.7314 306.2801 307.6021 306.6935 303.7096 298.4846 297.7908 300.053 301.63 301.488 301.3555 301.9476 302.3175 302.9755 304.4174 305.17 305.8805 307.0551 308.4619 305.842 305.5692 306.6165 307.4684 309.6619 311.992 315.1915 316.9906 317.9269 319.1219 318.7198 318.0473 322.0783 324.493 326.1492 327.774 331.2851 331.407 331.0816 331.5445 331.834 330.5989 331.788 332.0034 331.2867 326.5533 325.0034 324.4846 326.2466 327.9695 328.6054 330.8586 333.9236 336.3823 340.1428 341.7193 343.2628 344.644 346.2668 347.3573 347.937 346.9675 345.3738 335.6557 342.4644 346.2954 346.4452 345.2607 342.5936 340.6191 339.5952 339.2681 337.7689 332.9833 334.9575 333.3842 326.4053 317.7436 313.7062 310.1297 308.4512 306.6179 305.7579 306.8494 306.661 306.7869 306.9627 306.9271 306.9474 306.8629 305.8936 293.962 295.1751 297.1246 298.7624 298.4611 297.2331 298.6557 295.719 292.7397 288.6496 287.9972 287.8987 287.6778 287.6667 288.7215 289.1813 288.0154 293.0552 297.4599 298.7407 298.9149 299.9346 300.2663 300.3723 300.4337 300.7572 301.2504 301.9101 302.3849 302.5928 302.7665 302.9612 303.0726 303.4856 302.6151 301.7529 299.1653 297.4415 297.1221 298.4614 300.7243 302.9636 304.4281 305.7044 307.2226 305.5323 303.4425 301.6762 299.8676 298.2311 297.251 296.7411 296.1483 295.6242 295.895 296.2943 296.5973 295.821 294.216 292.6796 291.2439 291.6246 292.7137 295.7004 295.3616 294.2341 292.7028 291.083 289.6615 289.113 290.5851 291.3216 292.6425 290.9191 288.4219 288.3967 291.9441 292.3125 291.261 289.8528 288.8359 288.0556 287.1929 286.744 286.5351 286.4742 286.7287 287.3165 288.0645 289.0926 289.6984 287.9534 286.4262 286.7794 288.6231 290.5062 291.2518 292.0563 292.1371 291.8383 290.3262 288.7683 287.7998 286.7796 285.316 283.8522 283.455 283.007 283.648 285.3034 285.6903 284.8689 282.9706 282.423 281.5944 281.1846 280.5892 280.3655 281.3327 280.2783 277.6985 275.071 273.103 270.4973 268.4229 267.1703 266.5041 264.6807 263.0677 262.478 261.5453 260.1112 259.7325 259.4296 258.4951 257.3738 255.1984 256.3991 256.7644 256.9032 255.7199 254.1055 253.0229 251.5361 245.8813 244.2485 244.6291 245.1063 243.3331 242.7499 242.5872 242.4624 242.1996 242.8841 242.9049 241.1683 241.0197 240.96 241.6492 241.4657 241.1763 242.3833 243.6989 246.2259 249.3196 249.8292 249.4404 247.8333 246.6567 245.7479 246.2785 246.1815 249.5364 256.6519 259.0468 262.7446 266.4307 268.7616 268.8764 270.7166 272.9226 274.1357 271.7004 269.6168 274.1517 276.818 277.3965 276.789 275.5278 275.5334 277.402 280.2365 280.5355 279.4066 276.0239 277.3242 279.6725 280.8041 280.0588 277.8647 273.1459 271.5755 270.4733 268.9662 268.0874 267.0555 265.7017 264.1661 263.2524 262.4999 262.6101 262.083 258.8368 253.2039 249.389 253.4051 256.0442 256.3357 257.5592 257.9492 258.336 258.8067 259.0304 259.2707 259.3434 258.9399 257.8836 255.2265 252.9568 246.3611 246.0577 244.0508 241.433 239.9776 238.4806 237.4853 236.7625 236.9561 236.9204 236.8635 237.0251 239.0529 242.9722 246.5335 247.7736 247.2309 246.68 246.3236 246.1198 245.3568 244.3898 244.0837 242.9133 241.2513 239.1575 237.7105 238.0699 238.2043 238.2334 236.4518 235.2168 237.7095 238.0105 238.0344 237.408 236.9379 236.6421 236.6708 236.9647 236.8169 236.902 236.4525 236.6811 237.5621 238.8182 241.6318 242.2323 243.9559 247.3099 252.8922 257.6051 259.584 258.7888 261.5758 265.8766 268.4641 269.6859 271.4346 272.7905 273.8976 274.167 275.0099 274.3717 273.1193 272.1834 271.818 271.6519 272.3832 272.6098 271.9197 271.3494 271.5666 271.7581 271.8771 272.6814 273.41 274.4198 275.1927 275.2346 275.8942 275.3289 274.7946 274.3882 273.6112 272.8992 271.8229 271.8057 269.923 268.3633 268.4428 267.3593 265.8221 265.011 264.1268 263.4546 262.7037 261.2498 259.1278 254.3883 254.0635 254.5692 256.6282 258.4618 260.217 261.5671 263.1768 264.4243 266.2686 267.3628 268.0589 268.702 268.332 267.8874 268.9417 270.3122 270.9877 269.4402 269.6581 270.4364 271.4572 272.5859 275.2606 276.8091 277.7495 277.308 273.8979 271.6543 269.7185 268.4477 267.8201 268.8942 268.6424 268.1316 268.6817 268.9566 267.96 -9999 -9999 +-9999 289.6653 292.1693 293.2341 293.619 294.1247 295.9974 299.3114 300.7192 301.8209 302.2068 300.1017 297.3063 294.2318 292.0807 289.3904 286.4678 287.0291 288.5451 290.2137 292.0588 294.4192 295.9141 296.4733 298.2226 302.4359 304.1254 305.2054 305.1946 303.6696 302.3321 301.7556 301.3498 300.0204 298.9008 297.0036 296.2763 293.7989 292.062 294.4104 295.8506 299.3801 302.1246 304.8393 306.3306 306.7314 306.2801 307.6021 306.6935 303.7096 298.4846 297.7908 300.053 301.63 301.488 301.3555 301.9476 302.3175 302.9755 304.4174 305.17 305.8805 307.0551 308.4619 305.842 305.5692 306.6165 307.4684 309.6619 311.992 315.1915 320.9736 321.6401 321.6259 322.0824 322.2157 321.8738 323.1875 326.5999 328.6736 333.1647 334.3041 334.5305 334.56 334.2094 332.4376 333.9353 335.4238 335.7153 331.7786 330.4967 329.7766 326.4444 326.2616 328.3245 330.0863 333.394 335.484 338.9885 340.731 342.2473 343.7991 345.5816 346.735 347.7269 346.7394 345.7437 338.9581 345.1328 349.5426 350.2865 348.3185 347.5579 346.0851 343.9273 342.3065 340.3271 334.3398 332.4485 330.8125 325.7456 319.5193 315.5991 310.9771 308.2337 311.3902 310.9337 311.8199 311.6763 310.6284 309.8921 309.525 307.8996 305.646 301.6255 297.2956 299.429 300.589 301.6124 300.476 300.8645 300.7035 298.3271 295.1259 291.0644 290.4117 289.691 289.3608 289.3008 290.6443 291.2393 295.6104 299.2318 304.6696 304.4095 305.4692 305.9718 305.1885 303.9921 303.0401 303.1057 303.0394 303.1154 302.5323 302.1905 302.2538 302.4096 303.0865 303.6358 303.2317 302.3474 299.4597 298.335 297.9034 298.9482 300.7008 302.4062 303.9713 305.5388 306.6348 304.3014 302.3659 299.9418 298.3834 297.0743 295.9809 295.3133 294.2139 293.322 294.9547 295.263 295.5926 295.2229 294.0476 292.1509 290.3985 289.7808 291.5382 294.536 293.959 293.2175 291.4846 290.2107 288.1171 287.7145 288.8507 290.4014 291.8852 290.5364 287.3019 287.1757 290.8103 291.4778 290.3251 289.2875 287.8847 286.8279 286.0571 285.7535 285.7133 286.24 285.9405 286.5181 287.1899 287.7712 288.4225 287.9095 288.5885 288.0817 288.5977 289.2958 290.0812 290.5402 290.7744 290.7692 288.9465 287.1231 285.9413 284.3225 282.976 282.0968 281.9009 281.1973 281.7234 283.7677 284.0081 283.3098 281.7405 280.8323 280.6081 280.7428 280.4261 279.6422 279.9483 278.1928 276.7554 274.6276 272.3565 268.475 266.1538 264.6388 263.6258 260.5143 260.1328 260.5613 260.2994 259.5991 259.1945 258.2078 255.491 253.5024 249.4653 252.2994 253.5421 254.1236 252.0202 250.2951 249.9 246.2945 245.9629 247.0931 247.3791 248.2921 246.9985 243.5454 242.8366 242.6487 241.9488 241.7627 241.7395 241.0648 241.0675 240.8931 241.3945 241.5436 241.0085 242.4996 243.8441 244.994 245.8471 245.4786 245.315 245.0298 243.9121 246.3572 250.3802 253.0008 255.7404 261.201 263.5609 266.695 269.3669 271.8095 273.2493 274.2326 276.1074 277.9489 275.3591 272.8893 274.5877 277.8701 280.5524 281.0815 280.2451 279.1525 279.3156 280.6214 279.9468 277.7711 275.4653 276.7298 279.1086 278.9919 277.5512 275.6013 271.1367 269.5353 268.18 267.4065 266.6515 266.1119 264.5125 263.6453 262.7444 260.9176 260.4546 259.9139 257.6653 254.1576 250.3974 251.3842 254.1853 255.5045 256.7732 257.4475 257.7648 258.1993 258.7665 259.3205 259.8294 258.3691 256.9073 254.6352 252.906 249.9925 245.7559 244.4447 242.4256 240.3316 238.6917 237.6723 237.0945 237.5195 239.4479 241.8704 237.0251 239.0529 242.9722 246.5335 247.7736 247.2309 246.68 246.3236 246.1198 245.3568 244.3898 244.0837 242.9133 241.2513 239.1575 237.7105 238.0699 238.2043 238.2334 236.4518 235.2168 237.7095 238.0105 238.0344 237.408 236.9379 236.6421 236.6708 236.9647 236.8169 236.902 236.4525 236.6811 237.5621 238.8182 241.6318 244.8771 248.8227 252.608 254.4478 256.5587 259.3332 262.5044 264.2835 267.9335 270.1393 271.9871 273.6689 274.6835 275.6533 276.0322 274.7822 273.6898 271.9738 270.8216 271.7785 272.5409 273.6249 273.4221 272.1988 270.3773 269.9026 270.1508 270.8812 271.5619 272.2996 272.9161 273.3703 273.763 274.6921 275.628 274.9569 274.8679 274.5732 273.7501 272.9867 272.6509 270.4702 270.7041 270.3682 269.1052 267.2072 266.5908 265.7654 265.0663 263.6965 262.0161 256.7754 254.3151 253.2588 253.9666 255.2562 258.5374 261.0459 262.9299 264.5576 265.6106 266.6543 266.8034 267.0589 267.6079 266.7011 267.7482 269.4975 270.6439 270.5794 268.5553 266.3774 267.4775 268.8598 270.411 272.396 275.3688 277.0295 276.8642 273.6253 270.9756 269.0041 267.2625 265.5441 266.1115 266.6371 266.7526 267.5099 267.5021 266.6621 -9999 -9999 +-9999 288.2447 290.9118 291.477 291.5906 292.7108 293.8374 299.5707 301.4657 303.0259 303.2798 300.9402 298.3499 295.0498 291.5994 288.5222 286.121 286.7725 288.5451 290.2137 292.0588 294.4192 295.9141 296.4733 298.2226 302.4359 304.1254 305.2054 305.1946 303.6696 302.3321 301.7556 301.3498 300.0204 298.9008 297.0036 296.2763 293.7989 292.062 294.4104 295.8506 299.3801 302.1246 304.8393 308.5881 309.4559 309.6213 310.5522 311.0204 308.5315 302.3027 298.4121 297.7224 298.9484 299.1491 300.2622 300.5353 300.5683 301.3392 301.4561 302.9724 303.158 304.2283 305.3985 308.679 308.8326 311.2357 313.4991 314.627 315.1185 317.4025 324.6614 326.0729 324.8848 324.2402 324.8158 325.0931 325.6348 326.3815 329.1503 333.6867 335.5849 336.9017 337.2938 336.2492 335.0984 335.2781 337.4048 338.82 334.9996 333.9745 333.3594 332.0552 328.2151 327.9078 329.6846 333.1567 335.2842 338.0321 339.3211 340.917 342.6328 345.081 346.3741 347.928 347.6076 348.0771 341.5388 346.4116 350.5873 352.7719 352.4168 352.4774 350.1236 347.2064 344.692 339.052 335.981 333.407 329.7748 324.7017 318.0902 314.3081 317.1454 318.9049 317.5843 315.8058 315.4756 314.8483 313.4018 311.4004 309.5346 305.4737 301.2227 297.1034 302.6764 303.7365 303.4318 303.7129 301.951 303.7797 304.1325 302.3476 300.3912 295.884 295.6296 295.0975 294.5788 293.5724 293.356 292.0317 295.9132 300.6399 305.5277 307.2032 309.4301 310.19 309.1829 307.6763 306.4344 306.1849 306.0935 305.6081 305.1611 304.1067 303.5797 303.0174 302.5858 302.3995 302.6784 302.1032 299.8043 299.0295 299.351 299.6276 300.6799 302.2388 303.6072 305.1376 305.1552 303.2076 301.6183 299.6434 297.9246 296.2005 293.9214 293.5157 293.1542 292.2207 293.8507 293.919 294.2714 294.3567 293.726 291.7627 289.6926 288.4396 290.2856 292.9304 292.769 291.6929 290.6812 289.3379 287.4901 287.2107 287.236 289.0843 290.6274 289.7679 285.3419 286.3867 289.45 289.8777 287.8818 288.5587 287.8713 285.3104 284.7674 284.0958 283.4863 283.7813 284.9776 285.736 286.6557 287.4715 287.7321 287.1927 286.9293 287.3181 288.4131 289.4384 290.392 290.5761 290.58 289.8799 287.6905 286.7794 284.9957 282.4279 280.5475 279.6148 279.8997 279.6005 279.5511 281.8021 281.7987 281.0868 280.1129 279.2122 279.4276 280.3354 279.4057 278.887 278.1752 277.5545 276.4115 274.6539 271.6526 268.4187 267.2521 267.8729 266.2642 265.3597 266.3911 266.4662 264.3563 262.2891 262.3034 260.8512 259.4292 257.6784 254.4531 252.1127 248.4375 249.0615 248.0717 247.3978 246.9402 248.7035 250.7174 251.2562 250.8711 251.46 250.577 246.7802 246.0337 244.0203 242.2333 241.8361 241.3223 241.0666 241.1576 240.7989 240.988 241.5905 240.9345 241.8365 242.907 243.1142 243.208 243.6373 243.0109 247.3085 250.0796 252.2224 253.9241 256.4444 258.5356 265.5609 267.8043 270.2269 272.9126 275.4018 277.1889 278.9082 280.549 282.0656 278.5419 275.5005 275.0786 278.7411 281.4769 282.5221 283.4182 282.257 281.5984 279.9264 278.0453 276.5135 274.7046 276.3257 277.4876 275.4858 274.2214 272.4849 269.1724 267.1168 266.1545 264.7189 266.6515 266.1119 264.5125 263.6453 262.7444 260.9176 260.4546 259.9139 257.6653 254.1576 250.3974 251.3842 254.1853 255.5045 256.7732 257.4475 257.7648 258.1993 258.7665 259.3205 259.8294 258.3691 256.9073 254.6352 252.906 249.9925 245.7559 244.4447 242.4256 240.3316 238.6917 237.6723 237.0945 237.5195 239.4479 241.8704 244.6616 246.3495 247.8209 248.6509 247.749 246.2592 245.5994 245.3217 245.0587 244.7014 244.0862 243.6279 243.6024 243.9572 242.308 238.1715 237.3797 237.1204 237.564 238.0247 237.5578 235.6573 235.1443 237.4913 237.97 237.7594 237.2671 236.795 236.7315 236.918 236.4198 236.7027 236.6222 237.945 240.6781 244.3015 249.2487 253.5516 256.5571 259.0451 260.1498 259.9464 265.7724 266.8249 268.2785 270.4597 272.7159 274.8736 276.4946 277.1901 276.286 272.8915 271.0426 269.7901 269.8007 270.9797 271.878 272.3697 272.0779 271.0897 269.2982 268.9368 269.1429 269.8898 270.2187 270.7957 271.3361 271.6101 272.4074 274.4037 275.3051 275.9826 275.6656 275.3697 274.6387 273.9268 273.4633 271.7928 272.6605 271.6263 270.432 268.7881 268.4464 267.0115 265.9305 264.3047 262.801 256.7424 254.115 253.513 253.8552 254.8886 258.4699 260.1539 261.9865 263.5782 264.2618 265.5409 265.4717 266.3509 265.908 266.0465 267.0862 268.9032 269.6765 269.4705 266.6434 264.1058 263.8402 264.5836 265.1281 269.9439 274.3452 276.0849 275.9096 273.1704 270.2717 268.1432 265.9302 264.2468 264.2956 264.7715 264.8432 265.5334 265.8168 265.0304 -9999 -9999 +-9999 288.2447 290.9118 291.477 291.5906 292.7108 293.8374 299.5707 301.4657 303.0259 303.2798 300.9402 298.3499 295.0498 291.5994 288.5222 286.121 286.7725 286.9366 287.9299 289.4987 292.1339 293.4339 295.9818 298.7466 303.4803 304.7194 305.1825 305.0755 303.8201 301.6328 299.4857 297.9262 297.7437 296.7979 294.0977 292.6898 291.8094 292.8325 296.4953 299.4579 301.6017 302.3612 303.6519 309.6843 311.6911 312.6686 313.0997 312.2826 311.7375 308.6741 302.0151 300.6932 302.4994 302.1939 302.1597 302.5454 303.197 304.6829 305.0993 305.9896 306.4699 307.1213 305.8885 307.3974 310.7119 313.2755 315.5767 317.6464 319.2158 320.5 327.0618 328.8974 328.2913 326.7917 327.6074 327.8806 329.0115 328.4667 328.7599 332.51 334.8834 336.6887 337.7316 337.6711 337.6761 338.0562 338.7291 340.1738 338.2258 338.3386 336.6162 336.2985 334.1234 331.7116 329.8367 331.1857 333.6616 337.3845 339.0529 340.5545 342.208 344.7025 346.4167 347.4952 348.9881 349.6599 343.0461 347.9102 352.1324 355.1355 355.9739 356.3681 353.9106 349.938 346.0077 339.8229 336.8211 333.6655 329.2212 324.306 323.0357 323.533 321.9745 322.7127 321.0796 318.429 318.0464 316.3928 314.0627 310.9187 306.3629 301.4789 299.3831 301.8263 307.6287 308.3557 307.5441 306.5155 303.0948 306.9724 308.1223 306.9948 304.2231 295.2446 295.1404 295.0874 295.7949 298.2491 296.1033 295.9572 295.7559 298.0342 304.4203 307.067 309.7551 312.2111 312.0367 311.0983 309.7153 308.8249 308.6491 307.2745 306.9761 306.3886 305.7938 304.8047 303.0166 302.0891 301.4435 300.7219 299.3093 298.9113 298.9354 299.8885 301.2748 302.4807 303.2299 303.8207 303.4564 301.6241 299.9877 298.6128 297.009 295.4646 293.1362 291.3416 291.8075 290.6854 292.4921 292.4392 293.0516 293.3896 292.9106 291.4255 289.4853 287.6592 288.0977 290.8422 290.8699 290.0366 289.6375 288.543 286.8451 284.2936 284.4417 286.4485 288.0555 288.3116 284.5917 282.7684 286.7621 287.5175 285.93 283.9498 286.5553 285.6857 283.7014 282.9094 282.4467 282.9663 284.1328 284.979 285.9942 286.22 286.0261 285.9979 286.2324 287.1119 288.4188 289.599 290.4289 290.6355 289.8852 289.2648 287.7915 286.5769 284.3508 280.659 277.6971 277.4293 277.4892 277.5894 277.623 279.6559 279.5771 279.1076 278.5071 277.8857 278.3883 279.2348 279.1345 278.3825 277.5889 277.4654 276.7985 275.7379 275.2727 272.3074 272.8388 272.4193 271.9483 270.6711 270.0753 269.8056 268.9592 267.6927 266.6716 264.3708 262.7741 260.6129 256.4333 253.219 251.5005 248.4434 249.6155 251.2592 253.5608 254.5539 254.8133 253.5774 253.2159 253.5475 253.0789 251.0692 248.9942 246.3408 244.1919 243.2244 241.3452 241.0746 241.1414 240.8091 241.023 241.4061 241.0621 241.399 241.5979 241.672 243.0901 244.3543 247.2873 250.277 252.3056 254.4449 253.9241 256.4444 258.5356 265.5609 267.8043 270.2269 272.9126 275.4018 277.1889 278.9082 280.549 282.0656 278.5419 275.5005 275.0786 278.7411 281.4769 282.5221 283.4182 282.257 281.5984 279.9264 278.0453 276.5135 274.7046 276.3257 277.4876 275.4858 274.2214 272.4849 269.1724 267.1168 266.1545 264.7189 263.8987 263.8215 263.3478 262.3261 261.1523 259.1751 258.7895 258.3525 257.6937 254.1562 250.4139 248.7767 251.1514 253.9289 256.4086 256.7087 257.0748 258.0572 258.8738 259.3396 259.3652 257.9701 256.2434 253.8441 252.2072 250.6025 248.5635 247.2988 245.869 243.3619 241.3808 238.9217 242.3685 243.9183 245.5219 246.3422 247.4941 248.1544 248.4886 248.2239 247.1726 244.9383 244.8377 244.8452 244.5087 244.5191 244.6301 244.3874 244.3618 244.4182 244.3934 239.8128 238.1747 237.1462 236.8202 236.9415 237.146 237.7721 238.6373 235.9968 235.236 235.8737 237.2859 237.7405 237.522 236.4558 237.0981 237.0932 236.9953 238.1033 241.7364 246.5403 251.0187 255.75 258.7342 261.4041 263.6463 264.4368 266.8777 268.6234 270.1044 272.1783 274.1956 276.3528 277.5047 276.8443 275.7508 270.9333 268.9517 267.6945 268.1291 269.2027 269.8643 270.7466 270.9059 269.8676 268.0694 267.9373 268.3767 268.7166 268.9706 269.5155 270.2253 271.0773 272.0093 274.2827 276.1505 276.9431 276.9446 276.8601 276.1338 275.1737 274.2744 273.0734 273.5781 271.7711 270.9019 270.465 269.6023 268.1853 267.6831 265.9563 263.6563 256.0923 254.2545 253.6939 252.9845 253.4005 255.556 258.9943 260.609 261.3982 261.6535 264.229 265.9627 265.7372 264.2056 265.7625 267.071 267.8724 268.4333 267.8235 263.7696 261.6649 261.7055 261.959 265.763 269.7021 272.5434 274.1042 274.6988 272.2079 269.6046 267.1767 264.2718 261.8008 260.8575 260.8802 262.6005 263.5899 264.1685 263.1848 -9999 -9999 +-9999 286.9299 288.891 290.1588 291.2493 292.4424 295.2882 300.3227 302.4603 304.1093 304.0826 301.9577 299.1023 295.8057 293.4566 288.2873 286.6967 286.6341 286.4364 286.0344 288.3293 289.8861 291.9722 294.1117 296.8945 301.7401 303.1868 303.6288 303.5354 302.546 300.4105 298.6217 297.1685 295.2791 292.2505 291.9545 291.5197 290.9188 295.8459 300.7389 303.4994 305.3098 306.4136 307.3431 310.3463 312.3292 314.2757 315.0635 314.7281 313.8525 310.8229 306.1019 304.2292 309.2872 305.9324 304.0527 304.9775 305.8935 307.1834 307.9728 309.1085 310.1482 310.6374 310.177 306.3695 309.3012 313.5834 316.3125 318.9924 321.0228 323.5001 329.0762 330.8125 330.2933 330.3626 330.5219 331.0738 331.8256 331.3702 331.9919 333.2349 334.1577 335.2524 337.0937 338.1941 339.1984 340.1703 340.9192 342.1274 343.2866 344.2607 342.0378 339.6394 337.8512 335.9696 332.7784 331.8705 332.7102 338.4669 339.7661 341.3175 342.5814 344.8074 346.4779 347.9271 349.9359 351.6194 345.7122 350.4462 354.0959 357.2804 358.7407 358.7704 355.3605 350.9951 346.4721 340.2438 336.6275 332.5304 328.6725 325.3632 326.159 327.0411 325.948 326.4419 324.2612 320.3661 318.6573 315.7663 312.2376 309.6918 304.8912 300.3818 302.6653 306.0599 311.3936 312.3965 310.9421 308.9739 306.6852 309.4827 310.1612 308.8958 304.7346 295.3662 294.9911 295.8827 297.4322 300.6472 299.6354 297.646 296.6646 297.1651 303.7078 306.4295 309.5862 312.9257 313.6374 313.3461 312.3092 311.0757 310.4392 308.9092 308.0683 307.4491 306.4861 305.4832 303.6867 302.3257 301.141 300.1776 299.6594 299.203 299.1414 299.6365 300.7273 301.718 301.6406 301.774 301.3718 299.8764 298.3799 297.0006 296.0843 294.8563 293.353 290.5429 288.8854 288.5859 290.5102 290.7488 291.5751 292.1126 292.3784 290.8203 288.7029 286.3316 285.32 288.6522 288.8801 288.2891 287.4228 286.6777 285.661 282.906 282.1648 284.286 286.3584 286.1015 282.9914 281.5468 282.9959 282.8418 284.4476 284.5089 284.1493 283.9025 282.4607 281.6381 280.7412 282.0824 283.0831 283.9989 284.6557 284.7615 284.915 285.1768 285.9398 286.8976 288.3989 289.8881 290.4434 289.8002 288.9221 288.4605 287.0761 285.4278 283.0274 279.282 275.3246 274.0399 274.4814 275.7779 276.2263 277.5151 277.2534 277.2603 277.3233 276.8086 277.7914 278.4591 279.0183 278.7811 277.1273 276.7923 276.8305 276.3787 275.1584 274.798 275.1345 275.3953 275.2144 273.6249 273.3076 272.7584 272.1732 270.4222 268.1834 266.1825 264.5424 262.8553 259.2554 253.219 251.5005 248.4434 249.6155 251.2592 253.5608 254.5539 254.8133 253.5774 253.2159 253.5475 253.0789 251.0692 248.9942 246.3408 244.1919 243.2244 241.3452 241.0746 241.1414 240.8091 241.023 241.4061 241.0621 241.399 241.5979 241.672 243.0901 244.3543 247.2873 250.277 252.3056 254.4449 256.1456 258.2923 261.104 267.8768 269.8515 272.449 274.7006 277.6385 280.1645 281.9692 283.7775 284.3036 281.2776 278.5516 277.5362 278.8823 280.5206 283.0526 284.0922 283.7355 282.8125 278.6005 276.6477 275.4022 273.8357 274.2855 274.4761 273.2653 271.0171 269.3302 266.6953 265.05 263.3191 261.8582 261.3857 261.7148 261.8018 261.3963 260.199 258.3506 258.201 257.7082 257.0258 255.2807 251.6577 249.3206 250.043 252.072 254.6288 255.7711 257.4306 258.4673 259.1409 259.0735 257.9046 255.9753 254.5428 251.5161 251.0188 250.1668 249.3224 248.0108 246.3438 244.4199 243.9899 243.3122 243.6402 243.2757 244.2295 244.9486 246.3536 245.9754 246.4324 247.0239 246.5409 244.902 244.741 244.759 244.283 244.0765 244.1388 243.7341 243.5286 243.4121 243.4093 243.5231 241.8632 239.1535 237.2546 237.0355 236.792 237.1604 237.5085 237.9426 237.2675 238.0549 236.2836 235.2082 234.7672 236.9613 237.4549 237.271 237.5265 240.2921 245.0692 250.1216 253.9027 256.6674 259.1086 262.0909 263.6958 265.7383 269.3956 270.9537 272.2769 274.5043 275.926 276.6144 277.4384 276.0119 273.9028 268.9406 266.823 265.6765 266.3664 267.3435 268.3092 268.8694 268.9347 267.7723 266.794 266.9474 267.1523 267.4952 268.4113 269.201 269.8352 270.7899 272.1345 275.153 276.8133 277.5186 278.3766 278.5255 277.8499 276.665 275.3661 273.933 273.7875 272.4044 271.3833 271.3257 270.5179 270.0243 269.2232 268.3342 265.8016 256.7841 254.7424 254.1432 253.0213 253.2101 254.1716 256.4969 259.4362 261.5599 262.6807 264.9865 264.8394 263.7213 264.1004 265.4908 266.1808 266.7081 266.7185 265.9888 260.3103 259.742 260.2056 264.0208 267.6148 269.6261 271.4283 272.6613 273.5844 271.4225 269.3821 265.5894 263.3679 260.7817 259.7252 258.7001 260.6294 261.1594 261.4999 261.0639 -9999 -9999 +-9999 287.1578 288.2244 289.6995 291.1924 292.9945 295.9084 299.8138 302.059 304.4149 304.7599 302.561 299.5041 296.3611 294.0624 288.6485 286.268 286.5843 285.9845 286.1442 285.7837 286.428 289.7774 292.2783 294.4737 299.6459 301.3876 302.3428 302.1461 301.159 299.1818 296.8584 294.6937 293.034 290.1769 288.9426 291.2837 294.7742 300.5259 304.73 306.8585 307.9915 309.0026 310.118 311.6278 312.774 314.9326 316.3151 316.4689 314.9634 311.3132 306.869 309.3297 313.692 311.627 307.5128 306.1913 308.8298 310.1423 310.6753 311.0963 313.5844 314.4939 313.8546 310.8341 308.7786 313.1503 315.9422 318.302 320.47 323.6172 329.0927 330.9636 330.5941 331.5296 332.2658 332.4893 333.1763 333.7077 333.958 335.1436 335.4217 335.9702 336.6851 338.2805 339.4314 340.4981 341.9867 343.0754 345.7878 346.7583 346.4773 343.4684 341.0558 339.5535 337.6568 334.9771 334.8789 337.5643 340.678 343.3024 345.0594 345.6165 346.8223 348.4485 351.0528 353.3421 347.6757 352.2169 355.8905 358.6415 360.3744 358.8241 354.6861 350.7574 347.3394 340.3579 335.3459 331.9604 330.5825 329.8149 329.7009 329.097 327.5337 327.0886 322.6661 320.3675 317.9019 314.2026 308.2096 305.3049 301.7964 305.3214 305.6631 307.0591 313.934 315.5282 313.9233 310.7033 308.7881 310.7155 310.1784 308.1411 304.6571 297.3987 299.8705 301.2754 301.3226 302.1487 301.5831 301.0972 298.7227 298.453 303.9057 306.3498 308.9325 311.1779 313.2078 313.9188 313.7141 312.5956 311.5382 309.6559 308.7746 307.7394 306.3323 304.933 303.817 303.1703 301.6639 300.1796 300.1361 300.3355 300.0137 299.0328 298.7126 298.8282 298.9349 299.0396 299.1869 298.1742 296.5074 295.1667 294.255 293.4555 292.2507 289.4583 286.9162 286.2439 288.2526 288.6358 289.6652 290.2018 290.5103 290.0646 287.502 283.3867 282.3873 285.6639 286.0604 285.8169 285.055 284.748 283.9871 280.4428 280.3585 282.2207 283.8005 283.6094 281.2283 279.3299 280.8252 283.0512 282.7824 282.2217 281.5807 281.7293 280.8195 279.7049 279.7469 281.3007 281.8879 282.4584 283.1194 283.2236 283.2556 284.0889 285.0946 286.6146 287.8074 289.1895 289.5682 288.8388 287.6115 287.1997 286.523 284.9608 282.8496 280.9668 275.0318 274.0399 274.4814 275.7779 276.2263 277.5151 277.2534 277.2603 277.3233 276.8086 277.7914 278.4591 279.0183 278.7811 277.1273 276.7923 276.8305 276.3787 275.1584 274.798 275.1345 275.3953 275.2144 273.6249 273.3076 272.7584 272.1732 270.4222 268.1834 266.1825 264.5424 262.8553 259.2554 255.6966 249.9234 251.9322 252.3951 254.4948 255.8134 255.9131 255.6057 254.6317 254.2819 254.1982 253.4206 251.8448 250.0157 248.4691 246.6293 243.29 241.2385 241.3164 241.0309 240.7261 240.767 241.5208 240.8069 241.2247 241.246 243.3415 244.7046 246.8257 249.6141 251.7674 253.8536 256.8389 259.5057 261.8535 263.9938 269.1637 271.4465 273.2409 275.245 277.9045 280.5544 282.8121 284.1322 284.7105 283.0853 281.4991 279.588 279.7308 281.2759 282.1459 282.763 283.1319 283.2459 278.8197 275.8688 274.4187 271.0983 270.9661 271.4693 270.6235 268.8775 266.6796 264.5287 262.0536 260.2063 258.013 257.6212 259.1258 259.3957 259.591 258.9168 257.1206 256.7456 256.6817 256.5916 255.683 252.7163 249.7274 247.0861 250.6776 254.6232 256.0638 257.1006 257.5977 257.9287 257.544 256.0288 254.482 253.1432 250.2775 249.2424 248.5344 247.9357 246.6853 244.8113 242.5392 240.8365 239.6885 239.2948 239.8566 242.3045 243.004 243.4225 244.1039 244.9352 245.8421 246.2457 245.2131 244.7501 244.5459 243.5491 243.3985 243.2063 243.3328 243.3022 243.3636 243.4631 243.4587 243.0325 243.3426 239.9501 237.5071 236.8337 236.7026 236.6286 237.0302 237.7855 237.6412 237.5153 237.6509 237.8619 235.3545 234.5604 236.9559 237.4254 243.1721 247.609 251.6219 254.854 258.6945 261.3148 263.3828 264.6736 266.8611 270.7496 272.3823 274.1025 276.0435 277.9987 278.5435 276.7369 274.2942 272.0231 266.3765 263.7865 262.9374 264.0509 265.5723 266.3604 267.2366 267.074 265.6959 265.3136 265.7463 265.8454 266.4995 266.9466 268.2701 269.3643 270.4317 271.6752 275.3378 277.2054 277.609 279.0174 279.4592 279.078 277.1586 276.0677 275.2534 274.2157 273.2439 272.6367 272.2847 271.8024 271.7484 271.405 269.4372 266.6501 259.5663 256.5269 254.9173 253.5911 252.5465 253.7871 257.7531 260.2913 261.1661 263.4122 263.6084 262.3387 263.1767 264.4377 264.7396 265.139 265.1345 264.3475 261.6176 257.5789 259.6963 262.6563 264.6554 266.6912 268.8096 270.3702 271.933 272.6737 271.7255 269.9659 267.6414 262.9907 259.6587 256.57 256.3217 257.8046 258.0836 258.6483 258.7702 -9999 -9999 +-9999 286.9493 286.9837 288.4972 289.8008 293.4813 295.5738 300.5859 302.3154 304.1973 304.2351 301.9555 297.7104 294.0963 291.4425 289.8945 286.031 286.158 286.4265 286.3537 285.906 285.5836 289.053 290.532 292.5043 297.5487 300.1391 301.3214 300.7258 299.7675 298.2301 295.6211 292.4456 290.4448 287.5814 289.1315 294.3921 297.7546 301.3607 304.3237 306.6593 308.5988 310.3043 312.8069 313.9336 314.6309 316.0119 316.8242 317.5038 316.2333 312.5169 308.8151 311.7228 315.6464 314.3214 308.9431 308.6654 309.872 312.1617 313.3599 313.5081 316.2928 317.6635 316.9475 315.1043 310.5339 310.8533 314.3194 317.3886 320.0292 322.3985 326.3528 327.5855 328.1939 329.2102 330.0822 330.8651 332.0598 332.8884 333.5978 334.1245 335.2097 336.6733 337.8369 337.5448 338.1815 339.9482 340.725 342.6695 346.3334 347.8235 348.1671 347.0105 345.1305 343.5734 342.2086 340.881 339.198 338.0973 341.1953 343.3539 344.8447 345.5869 347.7527 349.6156 352.3218 354.8084 350.2548 353.7408 357.1789 359.5966 360.7942 358.7254 354.6036 351.4506 347.5681 339.0404 335.8564 336.7215 335.8802 333.1453 331.0161 328.6652 326.1047 324.8908 321.1961 317.7474 314.1253 311.0341 305.1923 306.6635 307.1299 307.819 309.1678 307.0374 314.0473 316.2113 315.5306 312.1598 310.9296 310.8437 308.3528 305.3965 300.7793 301.4413 303.4618 304.9484 305.0204 304.8019 304.3892 303.0579 301.1891 300.8965 304.2823 306.4614 308.6642 310.3348 312.2681 313.7218 313.3174 312.219 311.0595 309.2172 308.5093 307.135 306.092 305.515 304.8017 303.8375 301.7088 300.1917 299.7896 300.2274 300.5945 300.4097 299.3411 297.8119 296.3294 296.1162 296.8499 296.7499 294.8378 293.3693 292.6424 291.8651 290.7894 288.8925 285.8651 284.6202 285.1715 286.6636 286.6421 287.0979 288.007 287.9653 287.3501 282.2051 279.919 282.2707 282.8888 283.1856 282.6083 282.5543 282.3135 278.6698 278.3696 280.0649 281.5031 281.6235 281.2283 279.3299 280.8252 283.0512 282.7824 282.2217 281.5807 281.7293 280.8195 279.7049 279.7469 281.3007 281.8879 282.4584 283.1194 283.2236 283.2556 284.0889 285.0946 286.6146 287.8074 289.1895 289.5682 288.8388 287.6115 287.1997 286.523 284.9608 282.8496 280.9668 275.0318 272.6463 271.1342 272.8719 273.9248 275.0787 275.1404 275.4773 275.9566 276.2036 277.1281 278.0794 278.7894 278.767 276.785 276.7502 276.4981 276.7851 277.0663 277.47 277.4404 277.5644 277.4068 276.7165 276.2242 275.6452 274.8771 272.4214 270.3879 267.9352 265.9955 264.3412 260.2092 257.3668 254.4184 254.2661 255.6523 256.8719 256.9474 256.8568 256.6822 256.1382 255.5237 254.7668 253.9004 252.899 251.2709 250.0801 248.4142 245.9376 240.898 240.8699 240.9025 240.7831 240.7902 241.7486 241.1838 241.0465 241.1111 243.4097 245.6174 248.2314 250.6781 252.8455 255.5114 258.752 262.6907 265.3266 266.9086 271.2138 273.4354 275.5979 277.0455 278.617 280.2512 281.7288 283.2493 284.0757 282.9183 282.2757 281.5582 281.1157 280.8833 281.3331 281.0192 280.9137 281.3399 279.1364 276.0783 274.0728 269.3119 266.18 267.078 266.9951 266.3521 265.3419 261.8307 259.7812 256.7064 254.5606 254.3281 255.013 256.4503 257.7572 257.8303 256.6142 256.2672 255.7875 255.9023 255.6542 254.3937 251.3555 249.078 248.9156 254.0789 254.8888 255.6645 255.9315 255.8938 255.7976 255.0942 252.554 250.6328 247.7151 247.3633 247.0896 244.8529 241.7906 240.0685 241.4081 243.7324 247.4129 246.9315 239.3903 238.4059 239.4299 240.9713 242.4367 243.7099 244.4556 245.0797 245.2273 244.8256 244.5249 243.6324 243.386 243.3653 243.4306 243.2358 242.9019 242.9247 243.3268 243.5289 243.9368 244.0006 240.3245 237.2897 236.6774 236.4124 236.4894 237.2616 237.3326 237.5002 237.0403 237.0628 237.7986 237.0841 234.4665 237.0136 244.7432 249.8508 253.6982 256.6241 259.5304 262.0212 264.521 266.6542 268.4073 271.9821 273.7798 275.6772 277.2212 278.3246 276.8493 275.2979 272.2897 269.7507 262.0776 260.2294 260.0869 261.7915 264.1531 265.3109 265.5628 264.3216 263.9207 263.922 263.9202 263.9374 264.6588 266.6136 267.8874 269.1224 270.2389 272.1115 274.9163 276.3151 277.2958 277.6981 278.1267 277.9496 276.9437 276.5627 276.0332 275.1652 273.8979 273.5766 273.8156 272.9224 273.7805 273.7451 273.3888 271.1685 263.1696 261.3307 258.4163 255.5788 252.472 252.2485 253.9698 259.1967 260.681 262.6595 262.7712 261.8336 263.0143 263.743 264.035 264.43 263.7298 260.8862 258.0193 257.5297 260.8574 263.685 265.4059 267.2868 268.5822 270.3178 271.5426 272.2164 271.2636 271.5134 270.2708 268.4604 265.0959 262.4926 257.0602 251.6802 251.6577 255.2657 255.7225 -9999 -9999 +-9999 286.817 286.9303 288.2772 291.0764 293.7996 296.7105 301.0557 302.8737 304.1335 302.9173 298.5475 295.8163 294.688 294.664 294.1045 285.8905 285.7876 285.933 286.2818 286.0788 285.5144 285.7045 288.8464 293.157 298.4308 300.1608 300.2144 299.3427 298.1696 296.7232 294.318 290.4884 288.4572 289.2082 293.3385 297.6353 299.8938 301.1985 303.1858 305.5894 308.0299 310.0454 313.1733 313.9602 315.2932 316.3274 317.2507 317.9076 317.243 314.3884 310.5022 311.6667 316.5569 314.8502 310.1192 310.8129 311.7878 312.9266 315.2023 315.1435 317.3701 320.1491 319.3667 317.079 313.9854 311.8197 311.4268 314.1164 316.8419 319.0239 324.8383 326.0483 325.3549 327.4702 328.0339 328.1019 329.5043 330.823 331.3836 333.2461 334.4779 335.4954 335.3281 335.8355 338.2847 339.6904 341.1599 342.7021 346.2519 348.1694 348.6984 349.0596 348.4316 347.6514 346.3398 344.2431 343.2964 340.2549 341.0926 341.6093 343.6301 345.4811 347.1144 349.503 352.5561 355.3875 353.2835 355.086 357.4446 360.1602 360.8997 358.6818 353.3919 349.332 346.0744 342.6244 340.793 339.2304 336.4498 333.0177 330.0603 327.2228 324.272 321.6919 317.6521 313.7373 310.6933 308.0188 310.494 310.507 309.3743 311.2881 311.5719 311.2865 314.1772 316.4473 316.0608 314.1141 312.1255 309.7893 306.0859 303.3649 303.3532 304.9813 305.1659 305.9308 306.6529 306.5674 307.515 305.9349 304.0323 303.6258 303.6225 305.4962 308.0836 310.7053 312.3116 313.103 312.3582 310.7553 309.8499 308.4589 307.5769 306.8693 306.2146 305.8435 305.2628 303.4542 302.028 300.0473 298.2742 298.8226 299.7669 300.1196 299.4041 297.9952 296.0533 296.1162 296.8499 296.7499 294.8378 293.3693 292.6424 291.8651 290.7894 288.8925 285.8651 284.6202 285.1715 286.6636 286.6421 287.0979 288.007 287.9653 287.3501 282.2051 279.919 282.2707 282.8888 283.1856 282.6083 282.5543 282.3135 278.6698 278.3696 280.0649 281.5031 281.6235 279.2706 278.0597 279.8525 281.3957 280.7678 280.0851 279.559 279.0375 278.5282 278.0612 278.9995 280.2411 280.6513 281.3731 281.9794 282.0243 282.0376 283.1968 284.5381 286.0505 287.2834 288.1708 288.3232 287.5128 286.6409 285.7095 285.554 284.8262 282.9048 280.8059 277.744 272.6208 269.6285 269.7724 271.8005 272.3354 272.8432 273.6403 274.4364 275.2729 276.2256 277.3185 277.8229 277.9108 276.7599 276.156 275.8401 276.8851 278.3952 279.7737 280.3162 280.7473 279.4686 278.9665 278.1905 277.6432 275.9315 273.7324 271.5992 268.6827 267.0718 265.2786 260.6624 256.918 256.0424 257.6699 258.5968 258.7014 258.5225 258.136 258.036 257.4756 256.331 255.4637 253.8512 252.6116 251.8643 251.4394 250.1573 247.9798 241.4234 240.7306 240.7275 240.8324 241.0907 241.3354 241.0043 240.8578 240.7936 243.0184 245.7656 248.4536 250.5222 253.1733 256.425 260.4549 264.4739 267.6889 269.3374 272.185 273.9573 275.8088 277.1005 277.6609 277.4968 278.9072 280.4261 280.6078 280.1469 280.4386 280.4603 279.9399 279.7073 279.2738 279.071 278.1986 278.6539 278.044 275.8807 273.8015 270.0623 265.439 263.5728 259.2474 262.3367 262.2874 258.5161 256.8755 253.1292 251.1572 250.8984 251.2469 252.6106 254.9179 255.7161 256.131 255.8371 255.0369 254.6909 254.5973 254.4395 253.5474 250.5325 247.4734 252.3421 253.4165 253.591 254.6948 254.5254 253.9513 252.3208 248.5406 247.0292 244.5587 243.6866 242.3868 241.2508 243.4669 247.8492 249.5946 251.6618 253.9196 253.3619 247.5475 239.8329 238.4371 238.5864 240.5433 241.7336 242.831 243.8987 244.6897 244.3621 244.1706 243.6992 243.2444 243.3431 243.5466 243.5476 243.4589 243.281 243.4926 243.5219 244.0524 244.6766 245.0735 241.3241 237.0897 236.5361 236.2475 236.7544 237.1411 236.9658 236.8858 236.5046 236.7389 237.9269 234.854 236.8342 248.9234 253.6945 256.9479 259.8835 261.3968 263.2468 265.0725 267.1803 269.2556 273.0082 274.6803 276.0818 277.2284 277.5689 275.8828 274.1166 271.2951 268.0009 259.8341 258.3386 258.2935 260.3915 262.736 264.1801 264.173 263.9931 263.0869 262.8508 263.6583 264.0313 265.3211 266.3891 268.3951 270.0772 270.9836 271.8761 273.6943 274.5469 274.8912 275.1356 275.3769 275.4458 275.5173 275.7592 276.2304 275.5899 275.1266 274.5952 274.4296 274.0162 275.2916 275.6642 275.5778 273.4332 267.604 265.2855 261.7805 257.6769 252.5135 252.2416 252.8019 258.0129 259.3571 261.3975 261.5245 260.5925 261.2487 262.4492 263.5937 263.3011 261.7915 259.0354 256.3056 258.5824 261.6149 264.0385 265.9072 267.5066 268.9431 270.175 271.3283 271.6619 270.7145 271.0996 271.7306 271.7892 269.627 267.1675 264.0392 260.028 255.3482 249.5793 250.9082 -9999 -9999 +-9999 286.171 287.7158 289.9215 292.5956 295.0448 297.6911 301.0899 302.5753 303.9135 303.8148 300.3496 300.0135 300.6305 299.9396 297.0979 293.2355 287.7394 285.4858 285.6044 286.1242 286.05 285.4759 287.3773 291.7465 297.9769 299.2212 298.7293 297.7423 296.7164 295.6836 291.8239 288.1883 287.6892 292.5546 296.0787 299.5121 302.4468 304.5481 305.8311 306.2964 308.0197 309.9986 312.9183 313.8407 314.8143 315.7932 316.7538 317.3048 317.3472 315.5323 313.1416 313.8014 317.4272 316.8459 312.789 312.9426 315.4456 316.0771 317.2264 317.9453 317.997 321.7488 320.6199 318.28 316.7914 315.3158 313.6237 312.9773 313.4815 315.7317 321.0664 322.5674 323.448 323.7629 322.7915 324.6188 325.9867 327.4815 328.6879 331.2186 332.9882 333.4507 334.4682 335.5913 337.9041 339.2179 340.9202 342.527 346.0938 347.4065 348.5432 349.7465 350.3401 350.3114 348.9077 347.1808 346.0601 343.4037 342.4923 342.3534 343.9437 345.8069 346.626 349.0649 352.8495 355.8183 355.9111 356.2507 358.7207 360.9155 361.6838 358.9335 354.9193 351.8115 349.9503 344.7588 342.0367 338.8446 334.9624 331.2464 328.409 325.2761 321.8793 318.703 313.1056 311.6194 310.2614 312.8737 313.2297 312.8737 312.4991 313.6709 313.6636 311.2343 313.3263 316.0296 315.7504 313.6019 311.2872 308.9071 305.5138 304.4012 307.145 307.9821 307.7031 307.7401 308.1402 308.3517 307.515 305.9349 304.0323 303.6258 303.6225 305.4962 308.0836 310.7053 312.3116 313.103 312.3582 310.7553 309.8499 308.4589 307.5769 306.8693 306.2146 305.8435 305.2628 303.4542 302.028 300.0473 298.2742 298.8226 299.7669 300.1196 299.4041 297.9952 296.0533 294.5576 294.4155 294.8986 293.7184 291.8375 290.7621 290.2714 289.7025 288.977 286.6767 284.197 282.7011 282.4557 282.2788 282.4319 283.8327 284.9506 284.683 282.8248 278.412 277.6183 278.6204 279.8677 279.7238 279.5644 278.5011 276.8969 275.9648 277.0354 278.6907 279.1004 277.5558 275.6045 279.6968 279.7609 278.9251 278.2701 277.4848 276.2713 275.8812 276.7876 278.2513 279.0791 279.422 280.1897 280.9942 280.6901 281.0278 282.7865 283.7024 285.2271 286.4741 286.9982 287.5079 286.1608 285.144 284.1101 283.5608 283.3143 282.2223 280.8293 278.9846 276.2257 272.8038 268.3963 269.1357 269.5899 271.0982 272.3922 273.2259 273.6154 274.2878 275.6059 276.5237 277.0235 276.6732 275.9721 275.1781 276.3355 278.591 280.518 282.2314 282.6921 282.0181 281.0602 280.7811 278.3703 277.872 275.3006 272.4969 270.084 268.0834 266.2323 260.8614 257.882 258.2723 259.557 260.419 260.253 259.9293 259.7839 259.4003 258.4505 257.2101 255.6261 254.0733 252.5471 251.6153 250.852 250.6339 249.4378 242.8371 241.0617 240.6199 240.6031 241.149 241.5816 240.8518 240.7048 240.7989 242.7104 245.663 248.4881 250.8385 252.8713 256.3542 260.6867 264.7533 267.8873 269.1072 270.5065 272.2372 274.0618 275.1443 274.6732 274.4349 275.8758 276.1429 276.3259 276.6085 277.2317 277.6599 277.6428 278.3169 277.0407 276.6165 276.697 276.8894 275.4687 273.9659 272.3914 271.8022 270.4046 268.9568 265.3872 257.2655 254.159 252.9149 251.9955 251.276 252.0082 248.6544 247.5156 248.7682 251.2976 253.1758 254.9918 255.6088 254.9706 253.5607 252.8086 252.8668 253.2786 252.9469 250.8995 248.3815 250.7406 251.9554 252.3212 252.4512 251.7977 250.9976 247.9379 245.5596 242.7597 241.8925 245.9022 248.6088 251.266 252.5637 255.1321 257.8433 259.3842 253.1836 248.5635 245.3885 240.9539 237.621 238.0141 240.2321 240.9217 241.9387 243.8881 244.2219 244.0647 244.0378 243.8686 243.866 243.942 243.9788 243.6834 243.4906 243.6096 243.8813 244.4101 245.0513 245.7444 246.0985 241.1568 237.0282 236.244 236.5364 236.6695 236.7901 236.5645 236.5444 236.3717 237.3757 236.675 237.5084 252.4912 256.7093 258.8615 259.5236 260.2753 261.8536 264.4719 267.1667 268.8548 272.8294 273.9152 275.1534 275.9416 275.2272 275.4985 272.8935 269.7918 266.6662 259.4035 257.2651 257.0135 258.4011 260.8148 262.1894 262.2917 261.6505 261.2731 259.9428 261.6612 264.2283 265.3784 267.8756 269.3929 270.7965 271.9241 271.7564 271.6891 271.7199 272.019 272.7195 272.8221 273.3521 274.1931 274.6307 275.2773 275.9159 276.5882 275.039 275.654 275.7403 276.9475 277.3734 276.8257 275.1874 269.9581 266.6858 264.2124 257.687 252.5312 251.0527 252.0891 256.1373 257.8115 259.1092 258.0205 257.6291 262.1878 263.4205 263.6529 262.3902 260.0577 257.1989 255.3904 259.9649 262.7969 264.5595 265.8091 266.9616 268.2198 269.4268 270.1741 270.7701 270.2477 269.8056 271.2523 271.7305 271.8823 271.2563 268.6527 266.2903 263.6321 252.253 248.6389 -9999 -9999 +-9999 287.9848 287.4613 290.4313 292.3672 294.2911 296.0792 300.1383 301.7501 303.2807 303.6395 304.0225 304.1889 303.9912 302.9516 301.1548 297.1366 294.4824 291.7816 286.9684 285.5152 285.4657 285.5829 285.9721 290.3125 296.2299 297.2902 296.783 295.991 294.5067 293.0564 288.7614 287.2419 287.3424 293.8735 296.7087 299.9148 303.4124 305.695 307.5866 308.4367 308.5289 308.5353 310.8209 312.2789 313.4183 314.3283 315.888 317.2837 318.9753 318.7101 317.187 318.6711 319.4539 318.6399 316.6234 315.9719 315.557 318.088 319.1602 320.4904 319.9027 322.802 322.465 321.0589 319.9471 318.0985 316.5606 314.6753 313.9704 315.1581 317.2534 318.9426 319.3903 320.3517 321.1396 322.1037 323.5455 324.6005 325.5232 328.842 330.1716 330.3017 332.6081 335.1415 336.8882 338.7143 339.7775 341.4064 344.764 346.3356 347.7667 349.2841 350.2979 350.9561 350.659 349.8017 349.3436 346.2686 344.9787 344.2579 345.0627 346.2751 347.3518 349.7657 352.8525 355.9665 358.6548 358.5824 360.1313 362.3387 363.3153 361.6803 359.9878 356.4566 352.929 345.8154 341.6996 338.6459 336.6355 331.2464 328.409 325.2761 321.8793 318.703 313.1056 311.6194 310.2614 312.8737 313.2297 312.8737 312.4991 313.6709 313.6636 311.2343 313.3263 316.0296 315.7504 313.6019 311.2872 308.9071 305.5138 304.4012 307.145 307.9821 307.7031 307.7401 308.1402 308.3517 309.445 307.2082 305.8505 305.722 304.8408 304.3259 306.852 309.2393 311.0958 311.6479 310.7479 309.5292 308.3801 306.5296 306.3302 305.6823 304.8057 304.6915 304.4935 303.2794 301.7338 299.889 296.1614 297.6137 298.5523 299.103 298.7313 297.5999 296.2094 294.2926 292.9939 292.5068 292.0893 290.437 289.4374 288.7687 287.6423 286.0488 284.6634 283.473 280.3636 279.799 278.5959 278.2398 278.6541 280.2354 279.1194 279.7705 278.3144 274.5428 273.8812 275.1477 275.6647 274.7534 273.3701 273.4532 274.0209 273.7888 274.8625 275.7474 274.8569 274.3453 278.3167 277.1493 275.9428 274.8077 273.6308 273.8501 274.4412 276.16 276.908 277.6628 278.3401 278.9983 278.7769 278.3629 278.4541 281.0326 282.8847 284.4615 285.3512 286.3839 286.294 284.6263 283.183 282.6215 281.6117 281.3399 280.9355 280.5057 278.9435 277.2113 274.2252 268.9608 267.1389 268.2016 269.3302 270.8134 271.6551 271.5748 272.0904 273.6687 275.463 276.3742 276.8781 275.968 274.6679 275.7744 278.0253 280.0132 281.0584 281.7847 282.6151 283.4568 283.147 281.7304 278.2958 276.8842 273.6329 271.048 268.5682 266.9098 262.8156 261.2032 261.3582 261.6914 261.9061 261.6505 261.1251 260.7762 260.3908 259.0394 257.7231 255.8208 254.3827 252.4033 250.7529 250.1842 250.2622 249.4938 244.2467 242.162 241.25 240.5391 240.5959 240.4001 240.6948 240.4178 240.5809 242.2192 244.8191 248.3559 251.3064 253.7835 256.7351 259.8858 262.8864 265.1155 266.3341 267.4966 268.9373 270.9721 271.4767 270.9735 271.6577 272.4333 272.6564 272.9175 273.8682 273.7843 274.4069 274.7367 275.3918 275.5009 274.7415 274.7375 275.2239 275.2112 274.2172 273.1353 271.4995 271.7041 270.8081 268.4363 264.8071 261.6265 259.8316 258.3954 255.8619 253.5294 251.8499 249.6154 246.6481 246.941 250.1544 254.191 255.1144 255.4102 254.3633 252.6339 252.0227 251.8917 252.007 252.389 245.6661 247.92 248.4645 249.4703 250.6444 250.2551 249.6577 247.5529 245.0069 245.1373 249.1967 251.261 252.972 254.4912 256.4517 259.1984 261.3197 260.7129 252.3195 249.6025 247.1828 243.4545 238.5119 237.1516 238.3122 239.3887 239.8986 243.0332 243.6009 243.992 244.0893 243.9203 243.8164 243.8632 244.3914 244.3918 244.0409 243.7843 243.7655 244.3176 245.3999 246.1895 246.46 246.0263 241.8105 236.5597 236.1348 236.4442 236.5362 236.45 236.8375 236.4943 237.3195 234.8942 239.5808 253.2959 255.9165 256.1537 256.0636 258.8172 260.9914 263.93 266.0626 267.7204 270.0654 271.8305 272.5395 274.4121 274.0911 274.4395 271.6531 268.6339 265.6768 259.9873 256.5819 255.7646 256.3198 258.3856 260.1263 259.8448 258.9973 258.5375 259.1884 263.1796 264.7498 266.5977 268.3715 269.7808 270.8735 271.4688 271.3968 268.4855 268.7067 269.6007 269.9978 270.7828 271.6079 272.6958 273.8851 274.6087 276.2056 276.2061 276.6981 277.3714 277.5776 278.3436 278.5847 277.3899 275.8584 270.2824 267.0642 263.69 257.9305 253.3856 251.6484 252.0028 254.241 256.003 256.8346 258.506 261.006 263.1014 264.0004 263.4285 261.3984 257.2643 257.1989 255.3301 259.9649 262.7969 264.5595 265.8091 266.9616 268.2198 269.4268 270.1741 270.7701 270.2477 269.8056 271.2523 271.7305 271.8823 271.2563 268.6527 266.2903 263.6321 252.253 248.6389 -9999 -9999 +-9999 286.4506 286.6129 289.5219 291.23 293.4442 295.4706 299.7538 301.1636 302.0364 302.3662 302.5314 303.4863 305.0859 305.0909 303.8615 299.5281 296.4923 293.0309 288.5996 285.3251 285.6008 284.8486 285.3465 289.6558 294.3883 295.2081 295.0222 293.9611 292.2115 290.4773 287.6809 285.9482 287.3435 295.5745 298.3317 300.8624 303.2541 305.3084 307.5141 307.7251 306.3577 307.1243 310.4546 312.069 313.2922 314.8536 316.6728 318.7 320.3641 321.0828 320.424 322.3693 322.2294 320.8294 318.8861 318.5424 319.7696 317.9593 320.3907 322.0284 322.2141 323.2392 323.7271 323.4435 322.261 320.9829 319.5291 317.2513 319.5758 320.2065 320.3873 320.5745 320.1257 321.7995 322.9245 323.0124 324.7971 325.2965 325.8966 328.776 330.1111 332.2304 332.5211 333.7412 335.7067 338.0559 339.8021 341.2496 343.5939 344.8385 346.6016 349.2841 350.2979 350.9561 350.659 349.8017 349.3436 346.2686 344.9787 344.2579 345.0627 346.2751 347.3518 349.7657 352.8525 355.9665 358.6548 358.5824 360.1313 362.3387 363.3153 361.6803 359.9878 356.4566 352.929 345.8154 341.6996 338.6459 336.6355 333.172 329.5446 324.704 319.1887 317.996 315.4525 313.5677 314.006 315.4256 315.6401 314.4328 315.2686 315.7309 315.4957 313.4118 312.862 315.5219 315.7036 313.5605 312.3739 310.8069 306.455 306.3388 308.5341 311.0023 310.655 309.6026 309.6489 310.1031 310.3412 308.6935 306.9949 306.6198 306.4673 305.2833 305.4842 307.3109 309.0515 309.9359 309.1582 308.0435 306.458 305.1486 304.8807 304.397 303.8964 303.8812 303.6172 302.7447 301.0844 299.7255 294.6679 295.3059 296.8601 297.7188 297.4735 297.0768 296.5597 295.118 293.1404 290.1049 289.8265 289.1849 287.8136 286.4867 283.9765 281.8558 281.0405 280.203 278.1418 277.5416 276.9398 276.2687 275.8111 275.0348 274.9966 274.4064 274.974 273.1761 272.5765 271.8681 271.973 271.7314 271.7062 272.023 271.5396 271.2415 270.2735 271.2723 272.6035 273.6831 273.9833 272.1472 271.7523 271.3058 270.5005 272.5123 274.4819 275.3355 276.0862 276.3976 276.4814 276.3282 275.5849 276.3247 278.6215 280.2733 282.0219 283.6709 284.9512 285.8258 285.1704 283.5597 281.8159 280.8485 279.7228 279.2626 279.0704 279.2997 278.745 277.4106 274.6432 270.4748 265.7419 266.9896 268.1731 269.6687 270.2258 270.5788 271.1914 272.6449 274.6242 276.1249 277.3629 275.9668 274.42 274.4116 276.7603 278.4792 279.8217 281.2553 282.5826 284.1245 283.4073 281.2621 278.6758 276.8482 274.0258 271.8528 270.7023 269.0553 264.3577 263.3983 263.0439 262.8842 262.924 262.6606 262.5208 261.7947 261.4675 259.6328 258.1264 255.9988 253.5531 251.8399 250.653 250.16 249.4475 248.9033 245.4191 243.6203 242.9049 241.0786 240.6786 240.1734 241.1663 240.2231 240.5539 241.5101 244.4342 248.9075 253.0542 256.4666 259.1955 261.8703 263.1869 263.1087 263.0714 264.1333 265.538 267.2248 267.43 267.1126 268.0969 268.7724 268.9064 269.5663 270.8004 271.8474 272.981 273.6654 274.2568 273.9708 273.0812 273.2026 273.8435 274.1991 273.489 272.4743 271.2569 271.1068 270.9525 269.3884 267.39 265.0345 261.4233 259.1952 256.5824 255.5811 252.7892 250.138 248.0966 243.8451 247.1474 252.4555 253.4219 253.6393 253.3735 252.4486 250.9958 250.1923 250.2669 251.3154 246.8802 245.0828 244.7913 246.1275 247.1906 247.603 246.3364 243.0776 243.2712 248.3619 252.1013 253.5729 255.1265 257.2973 259.0449 260.0117 258.9867 254.6852 249.6571 248.5213 247.2018 244.2267 240.6513 237.8791 237.326 237.7087 238.6429 242.1262 243.1867 243.9742 243.9218 243.886 243.5968 243.5894 243.5949 243.5615 242.2958 242.1342 242.7355 244.252 246.1001 246.6568 246.3824 246.5272 246.6057 243.4569 236.1647 236.2262 236.2751 236.1631 236.5739 237.4477 237.5242 234.4454 242.2122 250.6387 252.076 251.7383 254.69 256.6679 259.0735 261.4659 263.17 263.6379 266.2375 268.7736 271.0049 272.8544 273.2017 272.5653 270.7024 267.8736 265.154 260.2538 255.9411 254.8324 255.0564 255.9625 256.6199 256.1772 256.2321 256.8352 260.8546 263.7274 264.402 267.1186 268.4302 269.7808 270.8735 271.4688 271.3968 268.4855 268.7067 269.6007 269.9978 270.7828 271.6079 272.6958 273.8851 274.6087 276.2056 276.2061 276.6981 277.3714 277.5776 278.3436 278.5847 277.3899 275.8584 270.2824 267.0642 263.69 257.9305 253.3856 251.6484 252.0028 254.241 256.003 256.8346 258.506 261.006 263.1014 264.0004 263.4285 261.3984 257.2643 254.9149 257.7976 261.6007 264.3059 265.5539 266.3237 266.8288 267.2479 268.2285 268.8741 269.4674 269.6968 268.8898 269.1389 270.3734 271.0843 271.4854 271.4043 270.8958 269.2461 260.9757 256.8524 -9999 -9999 +-9999 286.7489 285.8026 287.0249 289.4302 291.7699 293.7805 298.4529 299.6684 299.6169 299.6996 300.0985 302.0945 304.6702 305.9958 305.7312 300.8873 297.7395 294.3934 291.4077 286.9846 285.3614 285.7119 285.5055 287.7124 292.8232 293.1034 293.3232 292.0974 290.2116 288.5548 286.7319 286.2463 286.9375 295.7464 298.7576 300.9361 302.6832 303.7375 304.3349 303.9263 305.4435 307.8354 311.1673 312.7204 314.5446 316.4282 318.0458 319.7777 321.4645 322.7346 323.4102 324.7845 324.7519 322.6946 321.0702 321.6698 322.4276 320.3438 321.2641 323.7098 324.1322 324.6367 325.1422 323.4435 322.261 320.9829 319.5291 317.2513 319.5758 320.2065 320.3873 320.5745 320.1257 321.7995 322.9245 323.0124 324.7971 325.2965 325.8966 328.776 330.1111 332.2304 332.5211 333.7412 335.7067 338.0559 339.8021 341.2496 343.5939 344.8385 346.6016 348.2603 349.5895 350.4439 350.63 349.2404 349.4215 348.416 346.8412 345.385 346.439 346.8249 348.4324 350.3631 353.7719 357.3321 360.8094 360.113 361.8767 363.9283 365.1172 364.6519 362.7868 358.8657 354.6696 347.0121 344.0012 341.2428 337.9798 335.0044 331.9941 328.0286 324.0953 322.8123 320.6343 319.0605 317.8871 317.7278 317.1662 316.7667 317.4778 317.5988 317.0637 315.1085 315.1369 316.3259 315.9803 314.4022 313.4848 311.941 308.6222 307.0983 311.7882 312.5626 312.4823 311.959 311.2977 311.7259 311.7531 310.4778 308.5222 307.9727 307.6221 306.752 306.0491 306.821 307.9344 308.3744 307.6262 306.6772 305.1828 303.5347 303.2549 303.2789 303.2067 303.084 303.1486 302.0521 300.5518 299.443 294.317 293.1346 294.9142 295.6016 295.5014 295.3236 295.7347 294.7767 293.1133 289.7036 287.9662 287.2141 286.2646 283.8949 281.6169 280.1367 279.6472 279.3014 277.8833 277.5781 279.1335 277.0134 278.2015 279.1218 276.7095 276.4487 275.0661 273.2235 272.1823 271.552 271.2595 270.987 270.6617 270.2404 269.1665 268.5795 268.18 271.2686 270.3866 271.7502 270.2599 268.8099 268.5956 268.5408 268.3232 272.2287 273.4815 274.4507 275.1894 275.2534 274.7829 272.4626 272.9861 274.5673 277.2281 279.1509 281.3808 283.3137 284.5855 284.4108 283.5175 282.3425 280.2816 279.1274 277.9893 277.5112 276.8604 277.0838 277.2271 276.8889 274.1171 269.8123 265.8842 265.3672 266.798 269.0044 269.8313 270.7174 271.8515 273.6916 274.6099 275.9161 277.2468 276.0845 274.2844 274.0814 274.8681 276.9248 278.3474 280.1937 281.6796 282.4774 281.1786 279.3192 277.5807 276.0006 274.3008 271.9038 270.8217 269.329 266.0508 265.0179 264.6591 264.3111 264.0851 263.8848 263.7467 263.3824 262.568 259.7305 258.0001 255.5568 252.2828 250.5519 249.401 248.7044 248.2998 248.204 246.129 244.926 244.1282 243.2734 241.8542 240.8313 240.9959 240.3474 240.2453 241.2585 244.8623 249.2204 253.8588 257.5055 260.6323 261.8739 261.262 259.5168 259.7475 260.9117 262.1301 262.3376 262.4377 262.9567 263.0429 263.7451 266.2153 267.5168 268.8848 270.5878 271.4904 272.3795 272.6266 272.3943 271.605 271.9492 272.7726 273.1187 272.4787 271.7713 270.7351 270.6619 270.6756 269.6152 268.0629 266.2821 262.5796 260.9508 259.4499 258.1279 256.4295 254.4867 252.2476 248.7733 244.5537 249.4807 251.4693 251.8481 251.6141 251.634 251.1022 250.1024 249.3429 250.1509 250.9791 249.7636 248.7006 247.1361 245.3682 245.1505 243.9473 245.2236 249.7435 253.0048 253.9652 255.5796 256.9262 257.2849 256.531 254.7186 252.2312 249.3965 247.4304 246.2355 245.2215 243.8674 241.93 239.7988 236.7037 236.7992 237.9144 241.8379 243.3101 243.9037 243.3871 243.456 243.3689 243.252 243.013 242.8689 241.6192 241.6682 242.2897 243.59 244.7817 245.4563 245.5428 245.6587 245.742 239.7528 236.4758 236.2813 236.121 236.1631 236.5739 237.4477 237.5242 234.4454 242.2122 250.6387 252.076 251.7383 254.69 256.6679 259.0735 261.4659 263.17 263.6379 266.2375 268.7736 271.0049 272.8544 273.2017 272.5653 270.7024 267.8736 265.154 260.2538 255.9411 254.8324 255.0564 255.9625 256.6199 256.1772 256.2321 256.8352 260.8546 263.7274 264.402 267.1186 268.4302 269.5488 270.1595 270.0085 269.0141 264.3477 265.2065 266.9387 268.9096 269.0968 270.0387 271.2188 272.704 273.7937 276.307 276.1645 277.6292 278.5528 279.1209 279.6086 279.7003 278.6148 276.8511 270.4576 266.6597 263.3135 259.288 251.527 250.6272 252.1767 253.0909 254.3529 259.2269 260.1234 261.3193 262.8167 263.049 262.0341 259.0411 255.3777 253.8097 258.4717 262.0421 264.3575 265.6184 265.8282 265.3109 266.0668 267.0945 267.5236 268.1412 269.2336 268.6684 268.1933 268.7864 269.857 270.5269 271.3594 271.903 271.8933 265.3083 261.5385 -9999 -9999 +-9999 286.5225 286.3643 285.9751 287.3696 289.7277 291.7785 296.6945 297.0772 297.0309 297.7095 299.1465 301.2639 303.4774 305.1133 305.6136 301.7106 298.5022 295.2061 292.3762 288.1996 285.1719 285.1724 285.5951 285.4209 289.8951 291.2896 290.8827 289.1997 288.178 286.7094 286.2496 286.4857 286.477 295.2028 298.096 299.4285 302.6832 303.7375 304.3349 303.9263 305.4435 307.8354 311.1673 312.7204 314.5446 316.4282 318.0458 319.7777 321.4645 322.7346 323.4102 324.7845 324.7519 322.6946 321.0702 321.6698 322.4276 320.3438 321.2641 323.7098 324.3464 324.6367 325.1422 324.8496 324.5976 323.968 321.8531 319.3582 322.7237 324.1697 323.5341 324.0388 324.7374 325.6201 326.694 328.4557 329.1439 329.4335 330.0706 330.2033 332.6714 335.1277 335.9967 335.7701 335.2582 336.806 339.1959 340.6316 342.5159 343.511 345.0471 346.6716 347.505 348.5039 348.571 348.7073 348.6013 348.5253 348.3161 348.0221 347.4968 347.4508 348.8425 350.4607 352.5752 355.6698 359.0232 359.8476 361.9855 364.3914 366.3964 366.5396 364.7561 361.1521 357.2746 349.8355 345.6825 342.1525 339.4526 336.174 333.4968 330.9436 326.5186 326.3152 324.8316 323.4784 321.8215 319.6647 318.3748 319.0589 319.7919 319.3787 318.6591 316.3628 316.2882 317.3916 317.21 315.6837 314.1398 311.7738 309.1902 309.4046 313.2238 313.9703 313.9667 313.6246 313.2737 313.4223 313.1243 311.5818 309.7571 309.8065 308.9425 307.9651 307.9488 308.6367 308.5219 307.9222 306.4185 305.278 303.9543 301.8456 301.9052 301.5447 301.6223 301.9479 301.8918 300.9559 299.5499 298.4496 292.4929 291.1478 292.3944 293.0762 292.8314 292.9517 293.7129 292.9854 291.3815 288.4894 287.5381 285.9111 284.0636 281.8211 280.5125 280.1007 279.971 279.7875 284.3889 283.7391 284.859 285.6652 284.7938 283.6904 280.2794 281.7906 282.5428 277.4994 274.9453 273.1028 272.8628 272.1949 271.8162 271.2583 271.2775 271.9707 267.4323 272.729 268.1931 267.8868 267.4009 266.9735 267.2964 267.3753 267.8104 271.7094 271.8602 273.1967 272.9802 271.7154 271.6668 270.9941 271.8631 273.6221 275.9989 278.5876 280.7825 282.648 283.5394 282.8773 281.5451 280.4061 279.0772 277.4616 275.1503 274.8281 274.4695 275.2974 276.0267 275.8487 273.6416 268.9294 265.4785 263.5683 264.4447 269.1984 270.1078 271.4345 272.7758 274.0401 274.9167 275.717 276.5215 275.8594 274.2627 272.8731 273.8801 275.6912 277.1374 278.1446 278.9827 279.4528 278.6186 277.363 276.0116 274.8349 273.5739 271.8583 270.5924 269.4535 267.8098 267.5126 266.9168 266.0457 265.5782 265.4255 265.0475 264.3029 262.9782 259.7911 257.8223 253.9283 250.6337 249.2309 248.3864 248.0022 247.6671 246.8919 245.9214 245.4339 244.8524 243.9285 243.323 240.7012 241.3929 240.2253 240.3112 241.0025 243.647 248.5407 252.1647 255.1111 257.0074 257.2845 256.9452 256.1028 254.186 255.7428 256.6499 256.2957 257.924 260.052 264.9739 266.2698 268.3213 267.8611 268.9586 270.3228 270.3226 270.9448 270.8633 270.5873 270.0752 270.4314 271.3123 272.4945 271.9422 270.7237 269.9145 270.1667 270.257 269.3513 267.7032 266.4334 263.5273 262.3101 261.1237 260.4313 258.9418 257.7545 255.9089 253.8806 250.459 241.9148 246.8676 248.0089 248.8222 250.2673 250.8511 250.233 248.5983 248.3293 249.6449 250.0286 250.6855 250.0505 249.2482 248.2403 248.5237 249.9568 251.911 254.1349 255.0986 254.4345 256.9262 257.2849 256.531 254.7186 252.2312 249.3965 247.4304 246.2355 245.2215 243.8674 241.93 239.7988 236.7037 236.7992 237.9144 241.8379 243.3101 243.9037 243.3871 243.456 243.3689 243.252 243.013 242.8689 241.6192 241.6682 242.2897 243.59 244.7817 245.4563 245.5428 245.6587 245.742 239.7528 236.4758 236.2813 236.121 236.3044 236.3102 237.4926 234.8348 236.9326 240.1653 246.6125 247.7983 249.3985 251.1495 253.5089 256.1356 258.4393 251.9324 259.4139 265.8717 268.2607 270.434 271.5838 271.5714 271.0089 269.4686 267.3987 264.9628 259.9931 256.9147 253.6559 252.9604 253.2757 253.53 254.9406 255.5644 256.6617 262.1951 263.5177 265.6248 266.9366 267.9245 268.2758 268.4181 268.2048 266.8604 261.8629 262.5144 264.8594 266.6194 268.3154 268.9307 270.4951 271.9024 272.4226 274.7785 276.7745 278.1187 278.9917 280.3924 280.7858 280.932 280.084 277.8774 270.7889 266.5462 260.8583 258.3332 250.2386 251.0623 251.6084 252.9007 254.7413 258.1164 259.3934 260.9382 262.1474 262.2852 260.1325 257.3897 254.1002 252.2533 259.4043 261.6091 263.6706 264.3867 263.9088 264.0565 265.2765 265.8884 266.0977 266.4661 268.56 268.2663 267.3542 267.6985 268.4453 269.2461 270.3448 271.1284 271.9907 268.0016 264.926 -9999 -9999 +-9999 289.7979 286.4297 286.1343 285.838 286.7354 288.7806 293.1723 295.0807 295.506 296.5489 299.1465 301.2639 303.4774 305.1133 305.6136 301.7106 298.5022 295.2061 292.3762 288.1996 285.1719 285.1724 285.5951 285.4209 289.8951 291.2896 290.8827 289.1997 288.178 286.7094 286.2496 286.4857 286.477 295.2028 298.096 299.4285 300.0403 300.5844 301.6014 303.2934 305.7422 307.3089 310.4369 312.1999 313.6901 315.9357 318.8134 321.2292 323.2112 324.6694 325.6197 326.132 326.4984 324.9367 324.1437 325.2088 324.8817 323.3631 322.3089 325.6758 326.2349 326.4786 326.5018 326.1539 325.8976 326.0316 324.1133 321.3195 324.7328 326.8477 326.722 326.0202 326.9201 328.1325 329.0805 331.5898 332.4971 332.6867 332.6873 332.6809 333.8828 336.648 338.4259 338.6661 337.6935 336.7935 338.0974 339.3557 341.7277 343.236 344.8012 345.9151 346.7007 347.1086 347.1132 346.782 347.0389 348.6156 348.7281 348.7196 349.3104 349.2474 351.3461 353.0342 355.901 357.5236 358.6508 359.3691 360.7357 363.955 366.3486 367.3309 366.2341 364.0316 359.8044 350.6013 346.0212 342.9381 341.588 337.7466 333.74 330.4899 329.6969 328.4163 326.5184 325.1875 322.697 321.1843 320.163 321.2021 321.9273 320.926 319.8741 317.2676 317.9013 318.496 317.8299 316.4234 314.1751 312.1232 309.5983 310.9126 313.6432 314.5331 315.2344 314.9921 314.8462 314.4826 313.8498 312.3127 311.0491 311.4169 310.165 309.4776 309.4421 309.3102 308.7156 307.5473 306.0551 303.8665 302.2944 300.659 300.2367 300.2408 300.1465 300.5241 300.0934 299.3072 297.0128 295.1801 289.5834 288.8038 289.6308 289.9913 290.3549 290.0074 290.2823 290.0227 288.2337 286.3193 285.7337 283.9201 282.0497 280.948 281.0755 280.9597 281.5009 283.2013 288.5195 288.0136 288.2738 289.192 288.224 286.1027 284.1353 285.7994 288.3551 283.7536 279.8173 277.2786 276.1398 275.9888 275.5889 275.7936 275.6601 276.4434 271.9799 268.1928 266.4386 265.7845 265.3316 265.3941 264.7545 266.0841 267.7881 269.7455 270.19 271.1455 270.311 269.0591 268.8647 267.8567 271.498 272.6126 274.3022 277.0855 280.1125 281.9745 282.6331 281.8954 280.169 278.6547 277.0562 274.7128 273.2102 272.6153 272.7049 273.5948 275.0635 274.7923 273.0281 268.9124 265.1478 262.8062 266.8237 268.4114 269.9464 271.4082 272.7381 273.5046 274.4343 275.4133 275.7045 275.1374 274.199 272.3362 272.8306 274.4772 275.5985 276.0774 276.5516 276.7479 276.1533 275.3174 274.2646 273.2336 272.835 271.3641 270.4006 269.8614 269.6466 269.63 268.4445 267.1836 266.6566 266.1616 265.4218 264.2656 262.5823 259.4513 257.4604 254.4889 251.3571 249.2923 248.6281 247.6343 246.1413 245.4045 244.2613 243.7568 242.9466 242.5217 241.4033 240.821 240.9913 240.1437 240.443 241.5264 242.97 246.4446 248.9428 250.8865 252.3536 252.2031 251.882 251.1999 255.554 257.5396 260.1308 262.2779 264.5845 267.8084 270.4074 271.1063 273.4948 270.4003 270.2441 270.2216 269.8337 269.1619 268.6707 268.5996 268.4623 269.4149 269.9447 271.2676 270.9282 270.1094 269.1559 270.1667 270.257 269.3513 267.7032 266.4334 263.5273 262.3101 261.1237 260.4313 258.9418 257.7545 255.9089 253.8806 250.459 241.9148 246.8676 248.0089 248.8222 250.2673 250.8511 250.233 248.5983 248.3293 249.6449 250.0286 250.6855 250.0505 249.2482 248.2403 248.5237 249.9568 251.911 254.1349 255.0986 254.4345 253.7445 253.2993 251.5195 249.1622 247.4501 245.9436 244.4876 242.9742 242.1053 240.7944 240.2762 239.1602 236.8578 236.6765 237.2541 241.9556 242.9288 243.2645 243.0185 241.8583 242.2033 242.7908 242.9332 242.0835 241.1902 241.3291 242.0907 243.4484 244.4338 244.5124 244.3059 243.9633 243.3386 237.6816 237.3309 236.4647 236.2763 236.0255 235.8486 237.5239 234.4859 237.3755 236.608 242.2327 243.7804 245.2965 246.1738 246.4647 249.354 248.3645 256.3683 258.607 265.4464 268.1047 269.1366 269.8244 270.5926 270.348 269.4617 267.6472 265.7399 261.1081 258.1402 253.4073 252.6378 252.5828 253.1251 253.4601 255.6621 257.6301 262.4132 263.1606 265.278 266.2612 266.6609 266.4078 266.2659 266.0941 264.7408 260.7473 261.6295 262.942 264.4574 266.1852 267.769 268.955 270.5256 271.9592 274.5511 276.9468 278.0913 279.6919 280.3782 281.3132 281.5457 280.3926 278.0991 271.4134 267.5009 264.0075 260.3964 251.3292 250.5788 250.8136 250.8411 251.7685 256.8791 258.7997 259.8237 260.4763 260.3843 258.6569 255.2603 252.4648 252.4319 258.9457 260.4701 262.0261 262.4486 262.161 263.4736 264.2292 263.7019 264.9809 266.687 267.7229 267.8679 267.2907 266.8818 267.1567 268.1146 269.0386 270.2407 271.3316 269.0392 266.632 -9999 -9999 +-9999 289.7979 286.4297 286.1343 285.838 286.7354 288.7806 293.1723 295.0807 295.506 296.5489 297.7888 299.8588 302.1151 303.8941 304.7114 302.3077 299.1604 295.7169 292.2937 289.8615 285.7456 284.912 285.0879 284.8554 288.2686 288.7963 287.7068 285.6802 285.521 285.6862 285.639 286.0764 287.1297 293.8828 295.8921 296.0945 296.7729 298.1779 300.2391 302.5081 304.2911 306.1413 309.748 312.3297 314.5673 316.6078 319.306 322.118 324.7048 326.7628 327.6024 327.6996 328.4526 328.0321 327.2186 328.114 327.3163 324.7142 323.4705 325.1934 328.4177 328.623 328.6798 327.9366 326.9501 326.6276 325.1614 323.6701 324.8586 327.24 328.8037 328.7075 329.0141 330.515 332.0119 333.4191 335.0566 336.0053 335.5476 334.8224 335.4203 337.7219 340.1107 340.8578 339.6968 339.0219 338.7528 339.7747 342.0612 343.4153 344.3225 344.7232 344.6572 344.8118 345.1586 344.9014 345.3314 348.3604 349.6269 350.1595 350.9852 351.9183 352.863 354.474 358.1334 361.3599 363.1566 363.1252 362.1017 363.1035 366.4 368.027 367.981 365.784 360.7485 350.2718 347.8639 345.2047 342.1387 337.4323 334.1954 332.7374 331.9763 330.7928 327.2145 324.6647 323.1946 322.0759 322.5121 323.1203 323.3986 322.3513 321.2456 319.6266 319.7227 319.4106 318.2624 316.6682 314.7969 312.5639 310.6544 310.7931 313.6438 314.8134 315.5971 316.0217 316.1759 315.4143 314.3242 313.4166 312.6856 311.7099 311.1044 310.2277 310.0434 309.1783 308.2141 306.9379 305.4021 303.5753 301.8593 298.9803 298.4264 298.5443 298.5771 298.1206 297.2348 295.8994 293.2971 290.6266 287.7592 287.1333 286.5585 286.166 286.3862 285.601 284.4146 284.505 283.4697 282.7872 282.2077 282.1554 281.9184 282.5756 283.3326 283.8586 284.943 285.0313 290.139 290.8642 291.13 291.614 291.1321 288.3492 286.6495 289.3135 291.4729 287.2481 284.0898 281.5918 280.1515 279.2421 278.0569 277.9184 277.9654 278.8608 275.4266 270.2956 267.039 266.3117 264.8379 264.6077 263.8679 263.8207 264.9784 267.0241 267.9812 267.921 267.6448 265.9487 268.8022 270.8921 271.4774 271.4221 274.183 277.7121 279.6905 280.8 281.0363 280.1411 278.3623 276.5265 274.9106 271.9451 270.4333 270.6295 271.4276 272.4117 273.5088 273.2057 271.7699 268.4942 264.4791 263.608 266.8919 268.1573 269.9517 270.9962 271.9418 272.7522 273.1328 274.0995 274.269 274.2107 273.6747 272.01 271.9451 273.394 273.6024 273.6498 274.0555 273.9781 273.6077 273.2244 272.7228 271.7363 271.383 271.1624 270.9117 270.671 270.503 270.2995 269.3266 268.5863 268.0241 266.7206 265.7947 263.6394 261.7361 258.5789 257.3211 255.3936 253.2757 250.1642 248.0566 247.5928 246.4106 246.2657 246.1971 245.5874 244.8639 243.7794 241.4852 240.9043 240.4332 240.1437 240.443 241.5264 242.97 246.4446 248.9428 250.8865 252.3536 252.2031 251.882 251.1999 255.554 257.5396 260.1308 262.2779 264.5845 267.8084 270.4074 271.1063 273.4948 270.4003 270.2441 270.2216 269.8337 269.1619 268.6707 268.5996 268.4623 269.4149 269.9447 271.2676 270.9282 270.1094 269.1559 269.657 269.2473 268.2211 267.1734 266.2523 264.7126 263.6297 262.9418 262.0314 261.2957 260.2018 259.3174 258.8788 257.4969 247.7065 241.8432 242.2671 244.8426 246.4054 249.5587 249.7626 248.4073 246.2086 246.9491 247.4698 248.765 248.7764 248.775 248.6996 249.2653 250.415 251.2638 252.1879 251.3693 249.8725 248.1774 247.9535 246.3874 244.6059 244.3502 242.4278 240.3381 239.7162 239.0636 238.1631 237.7026 237.3896 237.4097 236.4182 236.8678 240.259 241.5799 242.0878 242.1862 241.2128 240.9687 241.6583 241.2408 240.6681 241.188 240.8264 241.8084 243.1599 243.7247 243.388 242.7978 242.7221 241.4065 237.2073 237.1853 237.7827 236.3597 235.9872 235.9392 237.4664 234.4899 238.9791 244.6396 243.1237 246.3454 250.2632 252.7056 256.0214 257.3787 257.9082 259.0584 261.476 265.409 266.1583 267.0519 268.3284 270.0516 269.8232 269.5115 268.4907 267.9388 262.9824 259.9161 255.092 251.152 251.2559 252.0616 253.139 256.314 258.9573 261.9948 263.7164 264.4629 264.8932 264.7499 264.4224 264.1286 264.5387 262.6991 259.578 260.9559 262.369 264.1153 265.5245 267.0294 268.437 269.979 270.8596 274.2675 276.0464 277.4138 278.8842 279.7578 279.9001 279.2957 278.5493 277.0938 270.9212 267.6617 264.5216 261.6665 259.0718 249.4063 250.1555 249.9595 250.143 253.3617 255.0855 256.6631 257.4958 257.3994 256.2163 253.9167 251.5316 251.7466 258.3792 259.3335 260.0521 260.2641 261.3913 261.8816 262.0409 261.7779 263.9906 265.9969 267.3503 267.3717 266.7041 265.0041 266.0815 266.8226 267.501 268.6336 269.6756 269.4412 268.1805 -9999 -9999 +-9999 290.8276 286.5287 285.7226 285.9989 285.9262 286.0897 291.12 292.8738 293.4303 293.5959 295.3658 298.2469 300.0011 301.3975 303.4288 303.5574 299.9233 297.2415 294.625 291.9744 288.4952 284.9583 284.6174 284.8954 285.1069 284.7364 284.7741 285.2018 285.4162 285.406 285.8578 286.6858 287.8883 291.2654 291.3197 295.4867 296.8237 299.338 301.2762 302.9816 304.6435 306.6125 310.8741 312.884 315.0555 317.2612 320.0245 323.1615 325.9701 328.2135 329.7322 329.5743 330.1523 330.1974 329.7533 330.3002 329.4435 326.1284 325.4615 326.1392 328.6855 330.1946 330.776 330.5476 328.9384 327.4237 326.4513 325.5462 325.2099 327.8069 328.9492 329.9745 330.8988 332.4573 334.3354 335.562 336.9007 337.9951 338.1675 336.6815 337.1916 339.3599 341.5044 342.1098 340.9739 340.3513 339.949 340.9084 342.7805 343.5295 343.8582 343.5222 342.5208 342.3727 342.4902 343.077 345.1454 347.5438 349.3342 350.2584 352.6419 353.7628 355.7501 356.3673 359.3662 362.5524 365.3427 365.5424 364.5552 364.0734 366.7314 368.6894 368.9172 366.3835 363.0454 354.7667 350.92 347.197 343.2361 339.4962 337.3097 335.8438 334.2481 332.4006 327.6562 325.404 324.05 323.372 323.5443 324.9016 324.7566 323.8062 322.5833 321.3751 321.0105 320.2792 318.3511 317.1958 314.7026 312.7371 312.069 311.9937 314.3481 315.477 316.3297 316.8565 316.376 315.5399 314.5655 313.7644 313.3575 311.7218 311.0012 310.0875 309.1895 308.2027 306.7353 305.4267 303.9998 302.3206 301.4441 298.5136 297.3476 296.0633 296.4295 294.4747 292.8943 291.6261 289.9784 288.4754 286.3163 285.6344 285.2744 285.3795 285.6285 285.0211 284.483 284.2886 283.847 283.1269 283.1945 282.9836 284.0727 286.1822 285.7069 287.3136 288.7548 288.0492 290.4915 292.1724 292.947 293.5593 292.5617 289.9168 289.4128 291.6344 293.4097 289.4053 286.0921 284.0119 282.6866 281.8689 280.8477 280.5471 280.6753 280.6317 276.7361 275.167 271.7068 269.2846 268.3205 266.6016 265.2314 264.1777 263.3144 264.8159 265.5368 265.9314 266.1525 267.2244 268.9889 269.8438 270.0404 271.126 276.3743 277.9171 278.7417 278.9825 279.0284 278.1689 276.0418 273.7403 273.0663 268.742 267.3534 267.8222 269.0479 271.6078 272.3006 272.1268 270.5154 267.2715 263.1165 263.6996 266.1612 267.9296 269.746 270.7238 271.0347 271.1317 271.887 272.6091 273.0695 273.3539 272.8019 271.6405 270.8439 271.5486 271.2536 271.0134 271.9377 272.3542 271.8215 273.2244 272.7228 271.7363 271.383 271.1624 270.9117 270.671 270.503 270.2995 269.3266 268.5863 268.0241 266.7206 265.7947 263.6394 261.7361 258.5789 257.3211 255.3936 253.2757 250.1642 248.0566 247.5928 246.4106 246.2657 246.1971 245.5874 244.8639 243.7794 241.4852 240.9043 240.4332 240.0824 240.6196 241.7275 242.9278 244.292 246.479 247.9007 248.2438 248.8234 250.2189 254.9903 258.9118 261.3076 263.4642 265.0514 268.9541 272.169 274.6709 276.0071 276.9403 272.9731 270.9468 270.2469 268.2779 267.0887 266.5269 266.7963 267.5796 267.7841 269.0701 270.4843 269.677 269.101 268.7983 269.1904 269.1919 267.6248 266.865 266.0424 264.9472 264.6304 264.0795 263.6979 263.172 262.7649 262.2163 261.4844 260.5451 253.2731 247.1046 241.0358 241.4411 243.814 246.893 247.841 248.1475 247.9248 242.0184 244.9157 246.5221 246.7673 246.1508 245.3903 245.2517 245.6002 246.0866 245.0462 243.9692 242.6183 241.5912 242.2312 241.0041 240.4688 239.7659 239.1433 238.3167 237.5757 237.3074 237.1824 237.4446 237.7599 237.326 236.3531 236.8388 239.5451 239.9353 240.1334 239.9834 239.5611 239.7408 239.7025 239.6403 239.9562 240.1067 240.2726 241.4041 242.2289 242.446 242.5364 241.8328 242.0647 240.6421 237.2022 237.507 238.3555 236.3245 236.0798 236.7656 236.5452 235.0319 242.1085 249.6476 250.8525 253.1593 254.9809 256.0117 256.7693 257.608 258.0149 258.9579 260.0965 263.2081 263.5699 265.7108 266.8277 269.0503 269.6141 269.7549 269.7227 268.6064 263.6001 260.9681 257.9344 252.7756 250.4223 251.3246 253.4558 256.3261 258.981 261.1411 262.1087 262.7018 262.687 262.7014 262.8878 263.0628 262.834 260.4241 259.2131 261.1582 262.9114 263.9815 265.2341 266.5337 267.6289 269.3165 270.1398 273.19 274.5606 276.5301 277.4128 278.5337 278.909 278.3047 277.4867 275.7234 269.2223 266.4117 263.5211 261.8059 259.478 255.748 251.1172 248.6564 249.6335 249.8451 250.4933 251.6964 253.2236 253.5747 253.5493 251.1095 250.4835 251.6877 258.0025 257.8452 258.3937 258.6723 258.7392 258.0959 260.831 262.6435 263.7888 265.9057 266.3963 266.8428 266.9193 265.8359 263.9418 265.451 266.328 267.3586 268.3684 268.8307 268.2646 -9999 -9999 +-9999 290.0508 286.3004 285.8799 285.6605 285.9093 285.7768 288.4898 290.9813 291.5753 291.9955 294.3083 295.3745 296.6264 298.7834 302.2324 303.7913 301.5998 299.1439 296.2745 293.2573 290.0389 286.3334 284.5475 284.6601 284.8878 284.9359 284.8473 285.3026 285.2787 285.6357 287.4094 289.7401 291.2141 292.6367 293.3007 296.1993 297.6575 299.3811 301.3568 302.8435 305.0704 307.1927 311.407 313.75 316.1241 317.9132 320.3784 322.9456 325.6353 328.2574 330.2706 331.5099 331.7551 332.1178 331.9476 331.6687 330.6377 327.9718 328.2952 328.0998 328.1802 329.7852 331.2626 331.7822 330.6986 329.1062 327.5408 326.6052 326.8392 327.1988 328.4318 329.9681 331.5687 333.452 335.4215 336.5997 337.4294 338.287 338.9991 338.3694 338.7787 340.5379 342.1022 342.0098 341.6672 341.3743 340.9822 341.2999 342.4073 342.3513 341.4595 340.1474 339.6484 340.7542 341.7359 343.5281 345.2393 347.1739 348.7134 350.131 352.0825 353.7563 356.0037 359.0817 360.8343 363.1096 365.969 366.5621 366.3636 365.8282 366.9078 369.0737 369.6883 369.6208 366.7272 356.4184 351.9011 348.5234 345.1387 342.3978 340.0926 337.8114 335.7885 333.8737 329.4076 327.3449 326.0786 325.6602 325.8372 326.2353 326.1511 325.3292 324.2089 322.8129 321.8695 320.593 318.8116 317.5389 315.4044 314.3729 314.7952 314.4961 316.0598 316.9673 317.4481 317.356 316.4688 315.3447 314.3528 313.3234 312.5526 311.1122 309.9141 309.4011 308.0569 306.7029 304.9059 303.5006 301.7078 299.6767 299.6324 299.5869 297.7434 295.5532 294.57 292.1691 290.5193 289.7088 288.509 286.6714 286.8876 287.0134 287.1672 287.9202 287.8889 289.7862 288.6457 289.3762 289.7157 287.2173 286.6583 286.9074 288.1385 289.0433 287.6089 287.7366 290.2248 291.0971 292.7964 293.7275 293.9454 294.3617 293.6147 291.9991 291.9898 292.631 294.3337 291.3666 288.5043 286.6463 284.9463 284.2625 282.752 282.1853 282.227 280.9669 277.9744 275.6154 272.2653 270.2255 268.7426 266.962 266.0999 265.2757 263.7115 263.0793 263.836 264.784 264.233 266.2157 267.5849 268.313 269.3742 271.8261 275.6927 276.8961 277.0276 276.5584 276.3635 275.6467 274.3707 273.7403 273.0663 268.742 267.3534 267.8222 269.0479 271.6078 272.3006 272.1268 270.5154 267.2715 261.1183 263.6996 266.1612 267.9296 269.746 270.7238 271.0347 271.1317 271.887 272.6091 273.0695 273.3539 272.8019 271.6405 270.8439 271.5486 271.2536 271.0134 271.9377 272.3542 271.8215 271.1674 270.7622 270.3352 269.9805 270.2304 270.5006 270.6093 270.5229 270.0786 269.3828 268.5831 267.4258 266.4576 264.456 262.2736 260.4954 257.7276 256.8096 255.317 253.1764 250.2196 248.7532 248.2915 248.2676 247.9748 246.9715 245.9091 245.0417 244.1656 241.4511 240.6718 240.7404 240.1858 240.6615 241.8392 243.1519 244.5876 245.1906 246.2497 247.8825 250.286 256.4178 258.9116 262.2365 263.8166 266.0725 268.4294 270.7989 272.9359 275.4588 277.3274 278.2016 272.9308 270.2516 268.6568 267.0375 264.8743 264.3232 265.4505 266.4246 267.7323 269.0246 269.6899 268.3336 267.6155 268.1089 268.7151 268.6086 267.0736 266.4387 265.4461 264.34 264.3459 264.2079 264.2058 264.1548 263.5234 262.3312 261.2675 259.4032 255.7346 251.7328 246.7956 239.0488 240.142 241.8205 243.1727 244.136 245.4344 244.5849 240.9775 243.6034 246.2835 244.0751 240.9953 239.8413 237.3176 237.2632 237.3414 237.4802 237.3397 237.5181 237.8009 237.5392 237.6035 237.6149 237.479 237.3018 237.3539 237.2724 237.3692 237.5235 237.6472 237.8364 236.5242 237.37 238.1632 238.3657 238.3977 238.4912 238.3224 238.4555 237.9699 237.7023 237.6146 237.5255 237.7964 238.4342 238.9091 239.3391 239.4778 239.1039 238.487 236.8174 237.3574 237.9345 238.2884 236.4052 236.1346 237.2659 234.4356 236.6772 244.1686 251.216 253.5349 254.3112 253.7752 252.7737 252.7295 253.5028 254.8757 255.8428 256.8519 260.6401 263.0863 264.5582 266.5734 267.9971 269.29 270.1619 270.2864 268.5524 263.4947 261.3079 258.2705 253.5772 249.722 250.7379 253.7751 256.4281 258.2019 260.4176 260.8635 260.9716 261.2093 261.6377 261.7454 261.5041 259.1509 257.2199 259.216 261.6651 263.588 264.872 265.7244 267.0358 267.9763 268.9356 270.0754 272.9775 274.2446 275.627 276.7617 277.2847 277.3648 276.9173 275.6664 273.6125 267.3394 263.57 259.4015 257.5129 255.9881 253.2422 254.3461 252.1466 250.128 249.5574 249.0104 249.2548 249.6154 250.2832 250.7689 249.9284 250.2744 252.8566 256.8309 256.3792 256.6608 256.6133 255.078 255.8177 257.6096 261.4828 264.1097 265.3454 265.9778 266.0591 266.1878 265.077 263.6301 264.1461 265.0951 266.2985 267.0056 267.6901 267.1306 -9999 -9999 +-9999 291.9772 289.0299 286.5908 285.8011 285.4628 285.4153 285.9757 288.1539 288.5389 290.6057 291.8727 293.579 295.6616 298.3398 301.1682 303.8751 303.8063 302.7359 301.258 299.4959 295.6245 291.3537 286.7695 284.4092 284.1559 284.7653 284.6868 284.79 284.8889 286.5744 289.5964 292.314 293.797 294.807 296.8691 298.1613 299.1038 301.3636 303.1266 304.3182 305.5651 306.5464 310.3396 312.3647 315.1391 317.8488 320.201 322.3984 324.5047 326.6381 328.6055 331.9639 333.3343 333.5715 333.4081 332.8926 331.9231 330.11 330.6885 330.7704 329.8966 330.085 330.6631 331.4764 331.0202 329.4731 327.9598 328.1656 328.7232 328.6436 329.0194 330.1571 331.6318 333.2994 334.4949 335.3615 335.7412 336.7585 338.0029 338.6908 337.6023 339.2558 340.853 340.6817 340.89 341.1368 340.7778 340.7975 340.5826 340.2127 338.5572 336.6218 337.6387 340.0001 341.7894 343.0487 344.288 347.0574 348.5109 349.9865 352.016 353.508 354.6487 358.3547 361.0952 363.1181 365.63 366.5323 366.5419 365.5388 365.8748 367.8259 368.8305 368.5806 366.5409 356.2297 351.9718 348.3338 345.2223 342.487 340.3546 338.5436 336.6929 334.8642 331.5294 329.7163 329.0727 328.5205 328.137 327.7555 327.3795 326.2216 325.4502 323.7642 322.8173 321.145 319.7415 318.3852 318.0661 317.0854 316.9746 316.9969 317.8803 318.0904 317.8952 317.1317 315.9434 314.7744 313.5229 312.3386 310.9709 309.49 308.7038 308.0636 306.8964 305.2626 303.5014 300.7605 297.8305 296.3073 296.7538 297.0227 296.9229 295.0999 293.2153 291.4974 289.9395 288.5988 287.9969 288.1866 288.4153 289.853 288.7924 291.3242 295.189 295.3622 294.9188 294.8951 295.1503 292.8969 290.2665 290.3535 291.4612 291.6812 290.362 288.6369 290.3395 292.1152 294.9322 295.4574 295.2605 295.3706 294.8456 293.5399 293.0186 294.3184 295.679 292.5074 290.2503 287.9985 284.9463 284.2625 282.752 282.1853 282.227 280.9669 277.9744 275.6154 272.2653 270.2255 268.7426 266.962 266.0999 265.2757 263.7115 263.0793 263.836 264.784 264.233 266.2157 267.5849 268.313 269.3742 271.8261 275.6927 276.8961 277.0276 276.5584 276.3635 275.6467 274.3707 272.3231 269.5054 267.1238 265.5016 267.0388 269.7563 271.8941 272.1067 271.0726 268.6137 265.9246 259.4821 263.5982 266.0201 267.6616 268.9182 269.5413 269.4345 269.3089 270.3452 270.9095 271.6738 272.2827 272.2969 271.2117 269.717 269.991 268.477 268.3197 269.2591 269.9499 269.5138 269.1942 268.5113 268.4756 268.5556 268.9092 269.4135 269.7722 269.7604 269.5309 268.845 267.9673 266.3195 265.0618 263.7187 261.8409 260.2393 257.187 256.1491 254.731 253.4033 251.439 250.0904 250.1447 249.5489 248.6765 247.0535 246.2987 245.0531 242.6361 240.7173 239.3929 240.2921 240.0365 240.5055 242.1228 243.8325 247.1346 249.6016 251.3466 252.8868 255.2802 257.7131 260.2246 265.4951 267.3274 269.3107 271.4447 273.1291 274.7785 276.0623 277.0605 277.1787 272.3615 269.9415 267.9805 265.513 263.0749 263.0558 264.4412 266.0627 267.131 267.9096 267.8741 266.8426 266.2827 267.2462 268.2494 268.0316 266.4673 266.257 264.6583 263.6888 263.122 262.8923 263.1812 263.2497 262.3929 261.4479 259.0162 257.6502 255.9869 253.9133 251.2114 248.6671 242.4347 238.3336 240.3598 241.1105 241.9184 243.4335 240.9625 240.933 244.8268 244.5277 237.813 235.8022 235.8863 236.4349 237.126 236.9046 236.7313 236.8855 236.877 236.6961 236.7348 236.7947 236.7204 237.0526 237.5935 238.1174 238.4009 238.6499 238.9433 238.8129 237.0823 238.4137 236.8905 236.6863 236.7534 236.4597 235.879 234.4037 234.5664 234.7644 234.6308 235.3627 236.453 236.9666 236.9845 237.1727 237.2207 236.8052 236.9526 237.456 237.9264 237.896 238.0849 237.2614 236.7864 237.271 234.5517 237.478 241.3876 247.1093 249.2332 248.6358 248.8698 248.4302 248.1622 250.0979 252.7012 254.6794 257.3509 260.7468 263.0486 264.8829 266.4977 267.7928 268.8412 269.9556 270.2104 268.9615 264.7994 261.844 259.2707 252.4949 249.2457 250.3646 253.2317 255.5893 257.5791 259.2965 259.7634 260.1469 260.8352 260.9601 261.0973 257.8303 256.0488 255.7505 258.5049 261.7327 263.933 264.9369 266.2363 267.7435 268.4707 269.2854 270.5303 272.9788 274.0285 275.1519 276.258 276.3128 275.9293 275.3656 274.6189 272.588 266.4057 262.0187 257.7603 255.6155 254.5948 257.7985 257.6391 256.1232 252.72 250.4492 248.4545 248.6404 248.8487 248.8984 248.8387 248.6639 248.9844 250.1527 254.7275 254.5006 255.233 255.2162 252.194 253.3746 255.8464 260.1419 262.6149 263.9705 264.7405 265.1877 265.138 264.6415 263.3078 263.0445 264.3239 265.3811 265.7189 266.7493 266.2609 -9999 -9999 +-9999 291.8414 289.6774 289.3305 288.2378 285.7965 285.4042 285.2527 285.8791 287.9296 290.6124 292.9243 294.4251 296.0033 297.7434 299.5593 303.393 304.2405 305.0576 305.2249 303.3624 299.2641 295.0641 290.0257 285.0867 283.6703 284.4235 283.8002 284.703 284.7533 287.2794 290.0858 292.9937 295.4831 295.8064 298.0886 300.3458 301.8059 302.9148 304.4639 306.4185 307.8769 308.6678 312.1273 313.6372 314.904 315.8928 317.7145 319.5942 321.4751 323.5461 326.2759 331.3999 333.1271 334.428 334.5657 334.2007 333.3378 332.0737 332.4639 332.4796 331.7181 331.2147 331.0074 331.0147 331.0106 330.0403 329.4198 330.1979 330.9702 330.9458 330.6031 330.9517 331.6069 331.959 332.5858 333.1365 333.4742 335.0384 336.5652 336.6236 335.9451 337.0872 339.067 339.3499 339.6041 339.5134 339.3884 339.0872 338.7745 337.6732 335.8298 335.6463 338.2622 340.049 341.5052 342.9728 344.0787 347.109 349.0251 351.385 354.0234 355.5684 356.4402 358.273 360.4117 361.2739 364.3065 364.8778 364.6968 363.6755 363.8938 365.385 367.3596 368.0884 365.4056 354.0206 350.8012 348.038 345.6266 343.4461 341.3945 339.2034 337.3382 335.5367 332.7725 331.6614 330.528 329.5251 328.5194 327.5375 326.6799 325.8333 325.1093 323.7625 322.9759 322.3162 321.3797 320.6412 320.1546 319.5637 319.0399 318.8802 318.8011 319.1254 318.1057 316.7607 315.3903 314.2923 312.9741 311.3965 309.6943 307.8265 306.6906 306.0583 305.1441 302.3143 299.9316 297.1984 295.5971 294.384 293.2575 293.439 293.4715 292.6604 291.8698 290.9356 288.2711 289.3076 289.3345 289.5685 288.4153 289.853 288.7924 291.3242 295.189 295.3622 294.9188 294.8951 295.1503 292.8969 290.2665 290.3535 291.4612 291.6812 290.362 288.6369 290.3395 292.1152 294.9322 295.4574 295.2605 295.3706 294.8456 293.5399 293.0186 294.3184 295.679 292.5074 290.2503 287.9985 287.1223 285.6037 285.2064 283.8976 283.4431 282.6005 279.3729 275.2816 271.6745 270.1527 271.8929 268.4391 266.9522 265.9322 265.0882 262.867 262.5762 263.0157 264.1517 264.7825 265.6934 267.1864 269.33 271.5957 274.1552 275.1989 275.3196 273.7643 272.6403 272.2736 271.9664 268.9991 267.5858 264.7757 264.0659 266.4981 269.3766 271.2896 270.8874 269.5687 267.3671 263.448 261.5562 264.4925 266.1777 267.534 268.2288 268.2941 267.8071 267.894 268.5755 269.3374 270.7561 271.3588 272.0726 270.6598 269.0461 268.2378 266.2199 265.9872 268.3504 267.8712 267.0154 266.8598 266.2712 266.3423 266.813 267.5571 268.5132 268.0504 268.1001 268.1785 267.6639 266.5689 265.3523 263.9229 262.9906 261.6672 260.5322 257.7757 256.1521 254.681 253.143 252.433 251.1562 250.4255 249.4015 248.2619 245.1963 245.0376 243.9721 241.1895 240.4598 238.7984 240.4777 240.2952 240.7056 242.1695 244.929 247.7316 249.2482 250.7522 252.4346 255.7856 258.92 262.9391 267.6841 269.3149 270.9969 272.5251 274.0743 275.6055 276.4392 276.6822 276.0068 271.5168 269.6804 268.0686 264.7467 262.2116 262.1526 263.433 265.0145 265.8587 265.956 265.273 264.8874 265.015 266.355 267.7112 267.4336 265.9882 264.6935 263.6625 263.3243 261.7009 261.213 260.6369 260.8804 260.2842 259.1676 257.4008 255.783 255.005 253.6595 251.6599 249.4929 246.9697 242.4476 237.7202 238.7305 238.5271 239.7409 238.2759 239.7452 244.2262 245.676 235.8895 235.9606 237.0733 234.9784 234.6507 234.6958 234.4372 236.9301 236.9468 236.8917 236.9695 237.0622 237.1491 237.7005 238.4085 238.678 238.796 238.5071 234.9619 234.6578 234.3935 234.496 235.4438 235.4502 236.1983 237.2214 237.3366 237.0706 236.7149 236.7179 236.9768 236.9816 235.8419 234.6444 234.6078 235.7006 237.1797 237.2334 237.6872 238.1151 237.7543 237.681 238.0616 236.9078 236.9725 234.5385 237.6455 240.0308 240.0404 244.6898 244.7171 247.7215 249.4734 250.4457 251.1839 252.5311 255.4057 257.8218 259.9129 262.4102 264.4034 265.8363 267.3023 267.5916 268.3859 269.4152 269.6282 269.2281 265.835 263.2266 259.1116 252.6249 249.4792 249.6343 251.8208 254.1581 257.2713 258.5992 259.3215 259.8402 260.2956 261.1339 258.7563 254.3633 253.2731 254.6662 258.6254 261.443 263.9357 265.0782 266.3849 267.667 268.5289 269.5013 271.0249 273.9664 275.0636 276.005 276.4233 275.877 275.4601 273.8565 273.3097 271.4106 265.5459 261.5554 258.8224 257.2957 258.1275 259.995 259.9599 259.0503 256.763 252.2771 251.9493 249.7603 248.9772 248.4129 248.4158 248.2972 248.0948 248.2462 251.5074 251.7077 253.069 253.1563 250.382 252.0791 253.9576 256.5048 260.8287 262.3477 262.8851 263.4058 263.9872 264.0636 263.0362 263.4789 263.5334 264.0797 265.5067 265.9043 265.6307 -9999 -9999 +-9999 292.5987 292.8606 292.8781 291.8745 288.8882 285.8906 285.3029 285.1375 285.3766 287.7772 291.276 292.6295 294.1697 296.7213 299.0729 302.5175 303.1936 304.2207 305.2661 304.198 300.5577 296.5115 292.3256 288.1026 283.5134 283.8883 284.7476 284.6086 285.1006 288.0688 290.1136 292.8295 295.166 297.9182 298.951 301.0776 302.5387 304.2644 305.5283 306.8533 308.4656 310.1751 313.6046 315.5927 317.2723 318.7092 320.1375 321.8242 323.1857 324.5611 326.1927 330.3374 332.2469 334.1282 335.4365 335.4963 335.0469 334.8133 334.4043 333.5817 331.9485 331.3002 330.5145 330.3164 330.5128 331.2228 331.546 331.9893 332.4926 331.8756 331.1149 330.367 330.1744 330.2238 330.6734 331.1254 332.283 333.0841 333.9693 334.4641 334.8561 336.1325 337.409 338.399 338.2433 338.4627 338.349 337.5953 337.2 335.1767 333.6873 336.5338 339.6794 341.7767 343.3918 344.184 344.7653 346.8176 349.0568 351.1343 353.1692 354.9624 356.2612 357.5627 357.6485 358.4838 361.6266 361.8656 361.2772 361.783 362.0537 363.0916 365.2362 365.1415 362.7659 352.1487 347.9056 345.8974 344.3078 342.7544 340.811 338.9843 337.244 335.5762 332.7222 331.2559 330.2965 328.941 327.9576 327.1512 326.4719 325.1815 324.5215 323.1523 322.4655 321.9619 321.8134 321.3618 320.7233 320.4639 319.0399 318.8802 318.8011 319.1254 318.1057 316.7607 315.3903 314.2923 312.9741 311.3965 309.6943 307.8265 306.6906 306.0583 305.1441 302.3143 299.9316 297.1984 295.5971 294.384 293.2575 293.439 293.4715 292.6604 291.8698 290.9356 288.2711 289.3076 289.3345 289.5685 291.6019 294.2343 295.1352 295.0458 296.8918 298.4833 297.5791 297.1668 297.3609 296.3912 294.2562 293.9461 293.9972 294.0888 292.2474 290.2587 290.6755 292.6706 296.3532 296.9146 296.6179 296.365 296.101 295.0821 294.5915 295.9711 296.8331 293.863 291.3415 289.4435 288.3486 287.2179 286.0029 285.7662 284.7426 282.8324 278.9603 275.1377 271.8972 275.8679 276.3399 272.0776 268.2288 266.8489 266.1802 263.1426 262.6788 261.1489 262.6508 263.367 264.336 265.2328 267.987 269.7366 272.0059 272.9796 272.2698 270.9804 269.3639 268.6795 268.5672 266.8383 265.2438 260.2791 261.1414 265.6039 268.2026 268.3784 268.4649 267.6726 264.7429 260.3542 261.9622 264.8878 266.2996 267.2165 267.5601 266.8281 265.4075 265.4519 266.3501 268.0339 270.3947 271.2068 271.6586 270.5093 268.6972 267.0024 265.614 265.5244 267.3445 266.2103 265.3579 264.5522 263.3833 263.715 264.5736 265.9573 267.0676 267.8092 266.485 266.3182 266.0418 265.5333 264.4493 263.136 262.0849 260.9272 260.0881 258.0614 256.1891 254.7711 253.3199 252.4275 251.2471 250.3154 248.9936 247.6106 244.9297 243.1456 241.9213 241.0276 240.6427 239.2587 240.9626 241.4063 241.9501 244.3879 246.1192 247.6876 249.5256 251.3904 253.9099 257.8129 259.9796 261.2294 267.1386 270.9053 272.6562 274.3532 275.5828 276.118 276.189 276.0017 274.6203 270.0875 268.4311 266.7404 264.3139 262.1936 261.8682 262.4164 264.4433 264.6199 263.9066 263.7664 263.7765 264.3091 265.5817 267.1572 266.6303 265.5548 263.5141 262.0096 261.145 260.4955 258.557 257.7114 257.2063 257.0915 256.32 255.5225 254.5621 253.2532 251.7593 250.6208 248.4915 244.9183 239.3757 239.4843 239.8887 237.8733 236.0101 236.2113 235.6657 240.127 240.0035 235.3564 236.3343 234.4792 237.1308 237.2518 238.0839 237.2571 234.5538 235.7939 236.5241 236.4445 237.0859 237.4303 238.3763 238.4287 238.5589 234.3918 234.6862 237.1738 237.0399 236.9416 237.0123 237.0019 237.0067 237.1804 237.5492 237.6432 237.3607 237.3721 237.4389 237.4282 237.9619 237.2816 235.3917 236.8372 236.8071 235.7792 234.6598 234.4598 236.6778 237.7597 237.5607 237.1373 236.8972 235.8499 235.2735 244.083 247.4448 250.8708 256.0982 256.4793 254.1547 256.6865 257.3754 258.9548 259.6642 260.751 261.0847 263.7103 265.0584 265.9019 266.9121 266.9032 266.5431 267.4223 269.0529 269.5994 269.0807 265.5976 262.6298 258.5914 252.2026 248.743 249.1888 251.0266 253.1275 255.8647 257.4942 258.4574 259.5303 260.0855 260.7753 257.6152 253.1871 252.15 253.9353 258.5402 262.4306 264.088 265.356 266.6352 267.973 269.0147 269.7874 270.7998 274.2505 275.1619 275.6938 275.7536 275.5217 274.7692 274.2174 271.4388 269.4638 264.0089 261.0537 260.4666 258.9468 260.8003 261.4951 260.8737 259.2657 256.0256 254.7203 256.5119 256.1493 254.4824 250.6951 249.5281 248.4413 248.2464 247.7918 247.7931 249.0174 250.4425 249.7986 249.3613 251.7621 252.7416 257.3965 259.4255 260.6392 261.6933 261.6932 262.2261 263.3966 263.2782 261.3811 261.8082 262.4889 264.4881 264.9728 265.0918 -9999 -9999 +-9999 295.4987 295.7496 295.5259 295.1907 293.0735 289.1599 285.2754 283.9796 284.9883 286.717 288.8082 290.5292 293.0397 295.1667 297.1576 300.6665 301.3333 302.7138 303.3443 302.6256 299.9901 296.9922 293.4399 289.3932 284.0216 284.487 284.6234 284.3547 285.58 289.0307 290.9197 292.897 294.7805 298.2042 299.6786 301.6788 303.2462 304.8266 306.2117 306.9257 308.3263 310.1989 313.4307 315.3848 317.1227 318.5833 320.0212 321.8749 323.3759 324.7452 325.8461 329.11 331.0353 332.7205 334.547 335.8258 336.7455 336.6155 335.8314 334.3015 331.527 331.2494 329.9016 328.8377 328.9032 330.4651 331.8921 332.9287 333.2748 331.6721 329.603 328.2812 328.0312 328.1439 328.4005 328.9917 330.2657 330.9691 332.4415 333.2581 334.3471 335.1691 336.1127 336.7993 338.0563 338.2173 337.0606 334.9097 334.5527 333.3686 332.5874 335.549 338.3723 340.9522 342.1379 342.1906 342.423 344.8586 346.8413 349.3491 351.1985 353.451 355.3293 356.4167 355.1731 355.3361 358.4925 357.318 358.3408 360.5998 360.2617 361.7038 365.2362 365.1415 362.7659 352.1487 347.9056 345.8974 344.3078 342.7544 340.811 338.9843 337.244 335.5762 332.7222 331.2559 330.2965 328.941 327.9576 327.1512 326.4719 325.1815 324.5215 323.1523 322.4655 321.9619 321.8134 321.3618 320.7233 320.4639 320.0771 319.8431 319.5606 319.086 318.0288 316.5896 314.922 313.3341 311.5769 309.6811 307.9016 305.358 304.2942 303.6623 301.848 299.9176 297.6313 298.6591 297.9887 297.2403 294.926 293.9744 292.7123 291.9214 291.1879 290.0587 290.1287 290.1926 289.954 293.2951 294.6067 294.2198 294.018 293.3039 295.6411 297.0027 296.9836 297.6687 298.4995 298.4423 297.5041 297.04 296.6716 296.0051 294.6396 292.4299 291.1584 291.9004 296.6553 298.0843 297.9662 297.6422 297.5352 296.4555 296.1961 297.0411 297.7829 295.0383 292.5105 290.796 289.3773 288.1989 287.4229 286.4402 285.0991 284.2723 279.979 276.0565 273.9885 278.3596 278.7891 275.3668 270.4237 268.248 267.1166 265.5845 263.5101 262.2342 260.9449 262.4213 262.6855 263.3559 264.737 266.5837 269.4071 269.5744 267.8652 266.613 265.4043 264.7075 264.2891 263.1118 260.2927 257.0594 260.3955 264.0336 265.9515 266.345 265.8168 264.2599 261.7549 257.7332 262.241 265.0534 265.5096 265.8499 266.0005 265.0908 264.4686 264.898 265.9784 269.4797 270.0864 271.2603 271.2692 270.4053 268.5202 266.3979 265.2268 265.1006 266.1357 264.7352 263.8628 262.3231 261.4104 262.0954 263.5685 264.8128 265.3692 265.7523 264.179 264.1407 264.3371 264.2668 263.6635 262.6488 261.2198 260.2021 259.2366 256.4505 255.3219 254.3016 253.2353 252.0643 250.6412 249.3509 247.8179 246.7674 245.1649 243.91 242.1156 240.9501 240.8606 239.1602 240.6059 240.2498 239.9592 242.8806 246.7945 250.4789 252.9075 254.1655 255.539 258.7186 261.8207 264.6872 270.8676 272.5945 274.6404 275.795 276.0653 275.4365 274.1691 272.9324 271.6062 269.6059 267.7799 266.3611 264.8165 262.329 257.5634 260.1409 262.5455 263.122 262.1071 261.9843 263.3637 264.2607 265.6967 267.3762 266.3478 263.8876 261.9401 260.6847 258.3649 257.4319 256.8147 255.5251 253.719 253.2513 252.3017 252.069 252.4901 248.8061 247.1667 246.9161 244.4299 240.0029 242.2433 243.7336 244.1018 244.697 244.3568 242.2536 238.6726 235.4402 235.6247 236.1231 234.4333 237.3728 236.9813 236.9772 237.9095 237.4658 236.232 234.4387 235.5161 236.4334 236.2854 236.8686 237.7818 237.9607 234.4873 236.7136 236.0278 235.8713 235.9482 236.2845 236.4454 236.6254 236.7807 236.9275 237.0683 237.279 237.7306 238.0692 237.8544 238.2146 238.0369 238.1294 235.7078 238.0886 238.6779 237.5589 236.8565 236.1959 234.4753 236.9842 237.4616 236.731 235.3875 234.593 243.5017 249.4082 253.0842 256.021 260.0562 261.2339 261.8627 262.2576 262.3393 262.6863 263.7802 264.3243 264.6353 265.8448 266.4127 266.3908 266.2543 265.7177 265.6486 266.849 268.5997 269.9644 269.0269 264.846 262.1666 258.5984 252.5937 249.0909 248.7654 250.1779 252.2043 254.9973 257.8377 258.9964 260.1287 260.8292 260.474 257.1015 252.8944 251.6371 252.4798 257.8627 261.9357 264.4621 265.6656 266.0528 267.6288 268.7216 269.7382 270.3716 272.6943 273.9154 274.4236 274.3993 274.1025 274.1247 274.4496 272.4633 270.4035 264.534 261.9551 262.0109 261.7844 262.6962 262.3176 261.0419 259.2657 256.0256 254.7203 256.5119 256.1493 254.4824 250.6951 249.5281 248.4413 248.2464 247.7918 247.7931 249.0174 250.4425 249.7986 249.3613 251.7621 252.7416 257.3965 259.4255 260.6392 261.6933 261.6932 262.2261 263.3966 263.2782 261.3811 261.8082 262.4889 264.4881 264.9728 265.0918 -9999 -9999 +-9999 297.4205 298.2779 297.9476 298.2085 296.1303 289.8869 287.4648 285.1312 284.6564 284.9958 286.1664 288.5352 291.1055 293.0443 295.9282 298.5052 299.9584 302.1983 302.4304 301.0757 299.1581 297.2656 293.269 289.2938 283.9758 284.31 284.4002 284.7674 285.9723 288.3704 290.4525 292.4305 294.6903 298.5362 300.016 301.6024 303.1452 304.1325 304.8535 306.1425 307.8 309.5869 313.5324 315.4027 317.4101 318.5577 319.9959 321.3983 321.9427 322.7066 324.1177 327.9337 329.7803 331.2748 333.0789 335.3848 336.9272 337.3446 336.6234 334.5663 331.0258 330.1096 328.9309 327.9318 327.8083 328.8167 330.37 331.6306 332.2328 329.1403 326.9848 325.7993 325.558 325.6883 325.8683 326.6249 327.873 329.362 331.3097 332.2012 333.0659 334.2099 335.2776 336.7827 338.0563 338.2173 337.0606 334.9097 334.5527 333.3686 332.5874 335.549 338.3723 340.9522 342.1379 342.1906 342.423 344.8586 346.8413 349.3491 351.1985 353.451 355.3293 356.4167 355.1731 355.3361 358.4925 357.318 358.3408 360.5998 360.2617 361.7038 363.2401 362.2929 359.3322 351.6518 348.7373 345.9258 342.758 341.5124 339.7264 337.7913 335.8453 334.0197 331.7664 330.6571 329.6436 328.5962 327.7617 327.2235 325.8957 325.0205 324.2498 322.6291 321.7632 321.239 320.9647 320.2731 320.321 319.3839 319.1876 319.0729 318.7734 318.3777 317.5665 315.9902 314.345 312.2758 310.5152 308.8477 307.7179 303.9806 303.0674 302.0632 300.6085 301.7142 303.5824 303.6819 302.9114 301.4826 298.594 297.4992 296.4308 294.8699 293.0054 292.3072 293.4901 291.8449 292.0453 295.0413 294.5397 293.7512 294.6211 297.4514 296.319 295.7546 295.9262 296.6786 298.0219 299.8132 299.8433 299.2068 298.3188 297.6589 296.398 294.5348 292.6335 291.9836 296.7918 298.8475 299.3324 299.2106 299.0297 297.9818 297.3013 297.6921 298.4757 295.7278 293.9359 291.8816 290.521 289.3965 288.3406 287.0159 286.3316 286.5124 281.7241 276.4555 275.9702 280.0453 280.7818 277.9844 274.0327 271.3742 268.4979 266.1248 264.2996 262.8413 262.3404 261.0913 261.6492 261.9003 262.2507 263.0509 265.1408 264.9807 263.2182 262.1235 260.8456 260.4685 260.1552 259.2302 257.602 255.7279 257.8608 261.0049 262.51 262.9125 263.1818 261.5453 259.3951 256.7096 262.6146 263.3335 263.7102 263.6947 263.4669 263.8726 263.9706 264.5741 265.9907 269.3846 270.1476 271.1086 271.1703 269.8546 268.2928 266.3044 265.2659 264.8132 264.8718 262.9369 261.35 259.8997 259.2283 260.2673 262.6571 263.8517 263.4754 263.4933 262.0754 261.8727 262.334 262.6579 262.7466 262.4381 262.1672 260.768 259.5108 256.342 255.3784 254.3151 253.5705 252.4406 251.2574 250.1504 249.5901 248.7753 248.5411 245.0711 240.6631 240.2533 240.6203 239.3654 240.3631 239.9685 239.7525 244.3531 246.7605 250.0271 252.5966 254.9479 256.6586 260.3701 263.857 267.3069 273.3532 274.2881 275.7012 275.6558 274.1502 273.6788 272.7091 270.1997 268.795 268.1418 267.1873 265.6441 264.516 261.5077 256.4496 256.4012 259.2576 261.2792 260.8641 262.3673 263.4611 264.4413 265.5793 267.108 265.9615 263.8839 261.8961 258.143 253.281 248.7141 254.1862 254.6862 251.6659 249.3234 248.0963 248.3839 248.6698 244.8236 242.186 241.588 242.3761 245.3512 246.6127 247.9407 248.6997 249.4319 250.6494 248.9118 241.7651 235.7285 235.5077 234.4639 237.5108 237.274 236.4278 236.6231 236.4116 236.5198 236.8512 236.8246 234.6278 234.4371 236.3489 237.3311 234.9942 234.5007 236.3679 236.7209 238.7009 239.3639 239.1342 237.7331 237.5298 237.39 237.4725 237.7973 237.8615 238.1492 239.5878 239.05 238.9044 241.0475 238.91 238.5824 235.7863 237.4505 240.6209 241.7249 239.4885 237.7954 237.0751 235.0623 237.2779 236.2394 234.4428 241.9975 249.9129 254.1739 257.4895 258.8107 261.9811 263.1073 265.0215 265.2526 265.63 265.5953 265.7832 265.9992 266.321 265.7889 265.1567 264.7881 264.6073 264.5196 265.3366 266.9536 268.3529 269.5676 268.7546 263.6151 261.7789 258.8503 254.2895 249.0909 248.7654 250.1779 252.2043 254.9973 257.8377 258.9964 260.1287 260.8292 260.474 257.1015 252.8944 251.6371 252.4798 257.8627 261.9357 264.4621 265.6656 266.0528 267.6288 268.7216 269.7382 270.3716 272.6943 273.9154 274.4236 274.3993 274.1025 274.1247 274.4496 272.4633 270.4035 264.534 261.9551 262.0109 261.7844 262.6962 262.3176 261.0419 258.9551 258.8247 257.3447 258.4438 260.204 259.3071 257.8863 256.3417 254.5552 249.0746 248.6715 246.9643 247.4244 247.4306 247.7366 248.9872 252.0303 254.1665 256.3438 258.2654 259.3866 260.2221 260.8849 261.6825 262.3556 263.0898 261.8808 260.2375 260.816 263.7761 264.2812 264.4263 -9999 -9999 +-9999 300.2169 300.7174 300.2668 300.3688 297.4319 293.0529 290.0551 286.0959 283.9751 284.5386 285.2179 286.6815 290.9238 293.0141 294.5201 298.89 301.2743 301.47 301.2431 300.0517 298.3903 296.0051 293.306 289.3316 283.1684 284.3014 287.4961 287.9333 286.5164 286.7203 289.3542 291.743 293.9473 298.2535 299.8446 300.6091 301.4272 302.714 304.3902 305.8745 307.5585 309.3558 312.9273 314.8162 316.0618 317.4827 318.5838 319.1864 320.1065 322.1957 324.1064 327.4161 328.7459 330.1393 331.9653 333.9789 336.9272 337.3446 336.6234 334.5663 331.0258 330.1096 328.9309 327.9318 327.8083 328.8167 330.37 331.6306 332.2328 329.1403 326.9848 325.7993 325.558 325.6883 325.8683 326.6249 327.873 329.362 331.3097 332.2012 333.0659 334.2099 335.2776 336.7827 338.5515 338.0825 336.8008 333.6799 331.8958 330.3664 331.4322 334.7816 337.3963 338.7052 339.2537 340.4046 342.0712 345.9574 347.2305 349.4903 351.6145 353.2288 354.2276 354.6246 352.1941 353.865 354.0272 355.5144 358.6057 359.2693 358.0628 359.8175 361.3847 360.2998 357.8093 349.3116 346.4554 345.2375 342.2415 339.6437 338.8598 337.0945 335.1541 333.0378 330.4106 329.268 328.1846 327.0929 326.9862 326.0183 325.0869 323.9556 323.2751 321.8235 321.2585 320.5204 319.8813 319.543 319.3451 319.0447 318.7039 318 318.1966 317.7546 317.1372 315.6582 314.143 312.7218 311.2639 309.8729 308.5408 307.5592 306.6285 305.0162 305.2502 306.154 306.6876 306.5932 306.1062 304.9237 301.8839 300.5106 298.9552 296.2109 294.4338 293.8438 293.672 295.1466 294.8788 296.332 295.4692 295.2536 298.3321 299.8631 299.4518 298.0176 297.0119 297.0832 297.4779 299.9447 300.7873 300.8162 299.9668 299.1998 297.6446 296.0247 294.3546 292.7198 296.7453 298.8424 300.1184 300.8271 300.5334 299.7957 299.1564 298.6396 298.7793 296.1738 294.2502 292.3682 291.3722 290.3045 289.174 288.7486 289.2663 288.7646 283.3781 278.3556 275.8203 280.0629 281.69 279.5825 276.3369 274.4143 272.5919 268.8126 266.8622 265.1636 262.1728 261.6429 261.4812 260.1504 260.8571 261.0933 260.5761 260.0849 259.5448 259.433 259.6511 260.0094 258.3022 255.8125 255.7856 253.933 254.5029 256.8234 259.2856 260.1716 260.4578 258.9872 258.1829 258.0034 261.9064 261.4625 260.7948 260.5762 261.1243 262.079 262.5252 264.5725 265.9412 269.0796 270.5303 271.1776 270.8422 269.3963 267.8218 266.4417 263.9961 261.958 261.7524 259.2462 257.8153 257.5781 257.2976 257.0304 260.2251 261.444 261.8719 259.834 259.5148 260.3485 261.1164 262.0695 262.4726 262.8302 262.3053 261.3575 260.1146 257.7831 257.0139 256.6409 255.6862 254.2398 252.9713 251.5436 250.4955 250.175 249.2022 247.4829 242.3791 240.35 240.6193 240.7778 240.6147 239.8967 239.6153 245.7971 248.1111 250.5989 253.1189 255.4171 256.8904 260.7611 265.0451 268.6861 274.0059 275.1655 275.1596 272.5681 269.4376 269.6031 270.4584 268.6975 267.0087 266.3711 265.7391 265.0382 262.8829 259.1485 254.6218 255.4391 256.6653 253.8256 260.8766 262.6391 263.7667 264.9008 266.1491 267.1355 266.4973 264.5511 262.7461 260.4949 258.6547 256.1944 253.6698 247.2814 247.9978 249.1473 245.7802 244.1576 244.795 245.8382 247.6384 249.1618 250.0098 250.6758 251.2924 252.1499 252.6536 253.9211 255.1591 252.7451 243.3047 235.5184 234.4152 237.401 236.719 236.3117 236.8145 236.4137 237.3847 237.5604 237.9087 236.7531 237.0326 237.6852 237.7705 237.2299 237.4355 237.915 238.3717 238.9775 239.9395 241.015 241.1521 240.1301 239.1795 239.3047 239.0976 238.4896 239.0146 239.1423 240.0378 240.3794 239.2774 240.6227 240.1469 240.7684 238.3038 237.4505 240.6209 241.7249 239.4885 237.7954 237.0751 235.0623 237.2779 236.2394 234.4428 241.9975 249.9129 254.1739 257.4895 258.8107 261.9811 263.1073 265.0215 265.2526 265.63 265.5953 265.7832 265.9992 266.321 265.7889 265.1567 264.7881 264.6073 264.5196 265.3366 266.9536 268.3529 269.5676 268.7546 263.6151 261.7789 258.8503 254.2895 250.328 247.4017 249.0559 250.9017 254.3736 258.4182 259.9427 261.1496 261.2733 259.7387 256.4022 251.1161 250.6321 251.4981 258.1576 261.666 264.056 264.9251 264.7751 264.9503 266.0557 268.0443 269.5908 271.3071 272.2021 272.833 272.8633 272.9024 272.9583 273.1776 274.3933 271.741 268.1427 266.4843 265.7989 265.0552 264.1569 262.8533 261.3098 260.2992 260.7523 261.5664 262.4828 263.1607 263.2327 261.9109 260.4036 258.4991 256.6575 254.8472 248.7753 247.3386 247.2041 247.7043 249.4005 251.2592 253.269 255.3966 257.1229 258.7031 259.2577 260.0827 260.8467 261.7275 262.2993 262.4886 260.7608 258.8573 262.5479 263.2687 263.1947 -9999 -9999 +-9999 303.7062 302.6348 302.0786 301.6088 298.7872 295.4131 291.7174 287.608 284.7053 284.7184 284.5468 285.118 289.0542 292.1 296.4081 298.7465 300.809 300.9095 299.6373 298.859 296.3252 294.3339 291.9049 288.594 283.6512 286.6853 290.2717 292.117 293.0513 289.8511 289.3542 291.743 293.9473 298.2535 299.8446 300.6091 301.4272 302.714 304.3902 305.8745 307.5585 309.3558 312.9273 314.8162 316.0618 317.4827 318.5838 319.1864 320.1065 322.1957 324.1064 327.4161 328.7459 330.1393 331.9653 333.9789 335.5792 336.317 336.3088 334.5178 331.2024 329.1175 328.2976 326.8213 325.5364 326.3494 327.9958 328.821 328.8009 326.1294 323.0724 322.5767 324.3341 325.1595 326.7037 328.2379 329.2395 330.4312 332.1805 332.7101 333.8403 335.0372 336.3447 338.1172 338.3412 337.5389 335.8024 332.6632 330.0672 328.9639 331.7065 334.4582 335.6994 337.1984 339.5851 342.1613 346.325 347.5568 348.6273 349.5265 351.4444 352.1963 352.981 353.0783 350.1091 350.0138 353.5652 356.5124 358.0471 357.2444 355.9395 358.0969 359.1628 357.7581 355.1232 347.7013 344.536 342.4526 341.3763 339.186 336.3953 335.4657 334.1273 332.7769 329.5231 327.6471 326.5331 325.9664 325.1376 324.5508 323.6225 322.6985 321.9648 320.8547 320.1927 319.9176 319.1609 318.062 318.4862 318.9907 318.668 317.84 316.8109 317.2125 317.3614 316.4312 315.3341 314.2592 312.824 311.5749 310.1892 309.5469 309.1138 308.0354 308.371 308.7268 309.1738 309.0759 308.5673 307.2749 304.127 302.6253 301.2057 299.6313 297.0542 295.1196 295.127 296.4523 297.1198 297.6438 296.1007 295.8516 298.4819 300.5986 301.4679 300.6936 299.3092 298.1832 298.5848 299.5248 300.5816 301.4319 301.2052 300.3619 299.0467 297.959 296.3269 294.8973 296.5798 299.1618 300.6039 301.7517 301.8176 301.2262 300.3987 299.5444 298.996 296.1565 294.4059 292.3813 291.4011 291.0587 291.0848 290.7511 291.1409 290.0669 284.1555 280.7247 275.864 279.4952 280.7312 279.8115 277.6826 275.8953 274.5352 271.6991 269.9712 267.8282 264.4391 262.3817 261.4659 260.746 260.7694 260.8587 259.1883 259.0819 259.8832 261.2494 264.0226 265.5771 264.261 261.6899 259.5572 256.2572 253.64 253.4902 255.9988 257.641 258.5696 257.8598 255.566 257.9378 260.5078 259.9444 259.4333 260.0279 260.5319 261.1915 262.2999 264.8208 267.1932 269.62 271.0853 271.4089 271.2149 269.2355 268.0759 266.3878 264.5317 261.7151 257.6382 256.0941 255.3589 255.1634 255.1923 254.4847 257.1871 258.6051 259.5087 259.3337 258.9918 259.6725 260.2297 262.1048 263.2281 264.0436 264.4986 264.0536 262.1174 260.0526 258.8745 257.4142 255.9396 254.1844 253.1575 251.978 251.1816 250.482 248.3129 246.3784 241.1832 239.9258 240.3794 240.3873 238.9492 239.9983 239.6791 246.3008 249.3957 252.2152 254.5534 256.5871 259.1493 261.6199 264.2865 267.3346 271.8316 272.6219 271.1248 268.4114 262.9515 266.2534 267.8795 266.674 264.9594 264.8789 264.745 263.3239 262.0353 258.2609 255.3559 254.5513 257.3994 258.0889 260.6888 262.2848 263.7253 264.9407 265.8678 267.1237 267.2875 265.9941 265.0292 262.4106 260.9966 259.8707 257.7876 253.9414 250.3398 250.4988 250.1867 248.5757 249.0422 250.2942 252.2515 253.0028 253.1741 253.6662 254.268 255.9464 256.8058 258.0462 257.7088 251.6993 241.3618 235.5184 234.4152 237.401 236.719 236.3117 236.8145 236.4137 237.3847 237.5604 237.9087 236.7531 237.0326 237.6852 237.7705 237.2299 237.4355 237.915 238.3717 238.9775 239.9395 241.015 241.1521 240.1301 239.1795 239.3047 239.0976 238.4896 239.0146 239.1423 240.0378 240.3794 239.2774 240.6227 240.1469 240.7684 238.3038 236.284 240.5082 242.2636 242.0566 241.0029 240.4608 235.5806 234.4476 234.5706 240.2602 247.7802 253.1262 256.7549 259.0678 260.6237 262.6655 264.1262 264.8891 265.3866 265.2464 265.0388 264.8567 265.0376 265.2406 264.1335 263.7831 263.6252 263.8199 264.2198 265.1384 267.0542 267.8056 268.8512 265.9701 262.7782 260.7983 258.6313 255.7093 252.9934 248.92 248.7315 250.5265 252.7815 258.4074 260.4016 261.0016 259.5027 257.7291 254.149 249.714 251.1549 252.9155 259.233 261.151 262.6336 261.397 260.7293 262.1718 264.8494 266.7881 268.6308 270.08 270.6529 271.0633 270.9393 271.2214 271.8076 273.0011 273.6082 273.7599 270.3712 268.9041 267.981 266.9141 265.2484 263.8164 261.9141 262.0224 262.9802 264.4419 265.4158 266.0894 265.9891 265.5315 263.6437 261.7133 259.5797 257.2257 252.5461 250.345 247.6739 246.6566 246.7698 249.2406 252.6934 252.2394 255.7199 258.049 258.7715 259.4088 259.851 260.6979 261.2655 261.4525 261.3165 258.8708 261.043 261.714 262.0078 -9999 -9999 +-9999 307.8315 305.5907 304.4163 301.6088 298.7872 295.4131 291.7174 287.608 284.7053 284.7184 284.5468 285.118 289.0542 292.1 296.4081 298.7465 300.809 300.9095 299.6373 298.859 296.3252 294.3339 291.9049 288.594 283.6512 286.6853 290.2717 292.117 293.0513 289.8511 288.7633 287.5493 290.0593 296.2102 297.1027 299.3713 300.9756 302.9429 304.6097 305.9293 307.2317 308.7682 311.4089 312.9115 314.0618 315.3649 316.8247 318.579 320.623 322.2908 323.7269 325.7437 327.0803 328.8376 330.1508 332.2259 333.7188 334.2704 334.5218 333.4868 330.5654 328.8046 326.8725 326.3106 324.7731 324.0364 325.8564 326.5183 326.273 322.7658 321.061 321.5876 324.7708 327.3712 329.217 330.58 331.4281 332.4034 334.153 334.6979 335.2933 336.4692 337.7844 338.1343 337.8823 336.2881 334.4061 331.4064 328.3044 329.0235 331.2177 332.8752 334.6189 336.8297 338.5072 340.6886 345.3777 347.364 349.002 349.2577 350.5945 351.066 351.4669 351.7148 349.0652 347.3013 354.2753 356.4044 357.1181 355.2991 353.9124 356.2385 357.1518 355.2834 352.278 346.3532 344.1867 342.1475 339.8002 337.8461 335.6237 332.8288 331.4429 329.7663 328.6334 327.1833 326.1088 324.6584 323.6138 322.9773 322.1856 321.4007 320.7137 319.0979 319.0426 318.8304 318.2305 317.3932 317.1477 317.8005 318.0786 317.6033 315.8413 316.1812 316.7289 316.8123 316.3245 315.2883 314.2196 313.2434 312.4295 311.0695 311.044 310.5893 310.8772 311.8442 311.5488 311.4291 310.9871 309.349 305.9579 304.5692 303.1991 301.7165 300.1176 297.9145 297.1882 297.5156 298.569 300.0631 297.8346 296.5483 298.3253 300.4762 302.2749 302.5977 301.6777 300.4824 299.9529 299.8449 300.4141 301.0569 301.0721 300.8221 299.903 299.0226 298.3483 296.2471 296.8738 299.3279 301.1306 302.3441 302.4699 301.7378 301.0696 299.9745 298.9933 295.6358 293.7946 293.0909 292.6706 292.4326 292.0566 291.5735 291.5219 290.5328 286.2673 283.2276 277.9098 278.8442 281.0582 281.0377 279.5125 277.713 276.7802 273.4748 271.3008 269.7339 265.9036 264.1255 263.2933 261.4143 260.9436 261.4814 260.8455 260.5358 262.1457 265.1096 267.5603 269.0757 268.6613 266.9879 265.1411 258.2337 253.6198 253.1233 254.5311 255.8335 257.2856 257.23 255.153 258.7751 259.2217 258.8437 259.0511 259.4282 260.3943 261.9378 264.5854 266.3442 268.365 270.6028 271.4733 271.8485 270.7894 269.199 267.8055 266.2087 265.4666 265.098 260.6696 259.4486 257.7747 255.7158 253.4332 252.3098 255.0933 255.8697 257.3989 257.7659 258.2509 259.7726 261.4816 262.5659 263.3598 264.2162 264.9818 264.7543 263.4383 262.4395 261.0498 258.8897 256.5316 255.1952 253.4019 252.6775 250.9479 249.8421 245.9317 244.6512 241.0766 239.977 239.9541 240.0916 240.1857 240.131 240.0884 246.2846 250.8341 254.1978 256.9424 259.2622 259.9648 259.5216 261.7893 264.5634 269.2077 268.0492 266.6718 262.8213 258.9903 264.1455 265.625 264.0916 263.0507 263.3322 263.3796 262.8343 261.0103 257.7313 254.132 254.5513 257.3994 258.0889 260.6888 262.2848 263.7253 264.9407 265.8678 267.1237 267.2875 265.9941 265.0292 262.4106 260.9966 259.8707 257.7876 253.9414 250.3398 250.4988 250.1867 248.5757 249.0422 250.2942 252.2515 253.0028 253.1741 253.6662 254.268 255.9464 256.8058 258.0462 257.7088 251.6993 241.3618 234.5238 236.6377 236.0957 235.8192 236.0244 236.0819 237.3016 238.0481 237.8943 237.3927 237.3956 238.2006 238.2337 238.0022 237.6936 237.7849 238.2787 238.9793 240.1096 240.9568 241.6659 242.1453 242.0776 242.1778 241.2959 240.6001 239.5107 239.6251 240.0835 240.9555 241.0562 240.2384 240.642 242.5163 242.0033 238.8895 236.5377 240.2486 242.4768 243.7483 244.2461 244.24 243.6337 242.5851 244.9574 246.3858 247.0571 252.9563 256.7029 259.5453 261.0161 262.2775 262.2374 262.7579 263.067 263.1239 262.6504 262.7609 262.7435 262.6857 262.3451 261.9686 262.3077 263.1236 264.3137 265.5579 267.4156 268.3362 268.8065 265.0249 261.6766 260.1635 258.4088 255.7998 253.0762 248.6313 247.7703 249.0062 252.0488 257.3997 258.5918 258.7128 257.3798 254.4945 251.1998 249.5675 251.2773 254.1312 258.9695 260.0422 260.3562 258.6703 259.2061 261.4193 264.5669 266.3134 268.0413 269.856 270.4783 269.8596 269.9113 270.4495 271.4518 272.84 273.7265 274.2617 272.7236 271.38 269.961 268.1618 266.505 264.8981 263.5019 264.8715 265.571 266.5268 267.4789 268.5166 267.7673 267.8281 267.0398 265.1352 259.9144 261.188 258.282 255.0681 248.9268 246.0933 246.8136 247.8455 250.6498 251.9377 254.3053 256.0493 257.0291 257.9365 259.1201 259.5583 260.3975 260.5047 260.4784 258.778 259.1173 260.4475 261.3654 -9999 -9999 +-9999 307.8315 305.5907 304.4163 303.4275 301.6094 299.2521 294.118 288.2692 284.6265 284.376 284.2145 284.5783 287.8691 290.7101 299.7086 302.3072 302.4765 300.716 298.9236 296.8894 294.4166 292.2541 289.9649 287.591 283.9215 287.4214 291.5848 294.2265 295.6505 295.8397 293.8018 293.4082 293.0005 293.0201 297.2545 298.3864 299.7675 301.8115 303.4159 304.7436 306.287 307.5528 310.7138 313.5429 315.4071 316.7477 318.1578 319.5922 320.8168 321.778 322.3831 324.3965 325.9836 327.1803 328.6028 329.8518 331.268 331.6547 331.2861 331.1839 328.8072 327.4836 326.0356 324.4915 323.937 322.7997 323.6429 324.4692 324.2971 320.0021 319.7068 321.699 325.1581 327.3183 329.2553 331.1115 332.5575 333.5611 335.1473 335.0901 335.5343 336.5437 336.9528 337.2998 336.2896 334.8378 333.2807 329.8921 326.4405 328.8823 331.2765 333.3082 335.7935 337.7802 339.099 340.4451 343.9787 346.3926 348.4708 348.889 348.9262 349.4251 349.6719 349.1536 346.7592 345.9853 353.8391 355.1246 354.9706 353.0834 352.3483 355.1621 356.157 354.0479 350.5817 344.5551 341.2218 339.9826 339.5434 337.1407 335.1674 331.9662 329.9925 328.5404 326.9207 326.7978 325.363 323.7805 322.4455 321.4763 320.3645 319.7747 319.492 317.5335 317.5849 317.6754 317.3558 316.5607 316.0504 316.8311 317.2889 316.8519 315.187 315.5515 315.9635 316.0238 316.1564 315.8309 315.3702 314.577 313.8589 312.9876 312.3984 312.7013 313.5696 314.1095 314.0355 313.5611 313.032 311.3296 307.4866 306.2727 304.6699 303.4151 302.3099 300.7066 300.9687 300.6975 300.5547 300.527 299.6765 297.7631 298.4186 300.4208 302.1527 303.4877 303.3749 302.3124 301.9447 301.6526 301.4564 301.0389 300.8188 300.7296 300.5885 300.6435 300.1159 297.8862 297.1668 299.5959 301.493 302.4161 302.1564 301.1946 300.2549 299.211 298.3534 295.5581 293.8369 292.5705 292.2659 292.3897 291.8706 290.5257 289.8717 288.9418 286.4879 282.9829 277.4535 280.4352 282.2943 282.5835 281.0962 279.7504 278.3919 275.093 273.5144 271.1367 268.2148 266.8959 267.2031 266.2426 266.5794 266.7533 265.3611 266.5685 267.8141 269.2418 270.9255 272.1672 271.4658 269.9938 268.0066 258.6913 252.9982 252.7855 253.3981 255.3736 256.6445 254.1263 256.4356 258.3539 258.3907 258.2182 258.7964 260.5584 262.3206 264.0741 265.2565 267.0506 268.6586 271.0607 271.6822 272.0759 270.7115 268.9081 267.421 266.0895 265.2759 265.0275 264.4239 262.9514 260.7466 257.7927 254.5538 252.9883 250.9382 253.7959 254.8995 255.3704 257.4765 259.5957 260.4781 261.9643 263.2972 264.166 265.047 265.4654 264.9531 263.916 262.0728 259.5872 257.7121 255.7141 254.0581 252.6268 250.5688 249.8421 245.9317 244.6512 241.0766 239.977 239.9541 240.0916 240.1857 240.131 240.0884 246.2846 250.8341 254.1978 256.9424 259.2622 259.9648 259.5216 261.7893 264.5634 269.2077 268.0492 266.6718 262.8213 258.9903 264.1455 265.625 264.0916 263.0507 263.3322 263.3796 262.8343 261.0103 257.7313 254.132 254.1874 255.8736 257.04 260.0449 261.9082 263.1763 264.3546 265.8148 267.1402 267.8832 267.5125 266.6891 264.5246 263.546 262.1009 260.2168 257.929 255.3963 255.1659 254.4968 253.382 253.3427 253.6003 254.1479 254.7023 255.2959 255.8355 256.8464 258.5559 260.2167 261.4898 255.745 246.8543 236.9429 234.4717 237.1545 235.5994 235.7901 235.5507 236.7365 237.595 238.0967 237.978 237.5787 237.7498 238.2193 238.4293 237.9884 238.3668 237.8568 238.258 240.9026 243.2153 243.3349 242.9415 242.3851 241.7447 241.4442 241.4836 241.2557 240.2161 240.0642 240.7067 241.3993 241.6187 241.1699 241.2701 242.6748 241.5811 239.5808 237.6166 237.4646 240.9096 243.9007 245.552 246.1523 246.4977 246.8925 248.9651 250.824 252.7149 253.7106 256.5949 258.5287 259.3204 260.0224 260.0573 260.1866 260.2106 260.344 260.7291 260.4944 260.5194 260.4218 260.5522 260.8143 261.9823 263.2537 264.4974 266.2623 267.5309 267.9601 267.7129 263.8656 262.0834 261.5128 259.462 255.8954 251.0576 248.1535 247.2554 248.0529 251.1321 255.7226 256.8339 256.6177 254.2348 251.1878 249.3129 249.4732 251.6077 253.5188 256.595 257.2627 256.7849 257.6533 258.9857 260.8595 264.5512 266.7571 268.3161 270.2561 270.6454 269.443 269.3481 269.6649 270.2351 271.9994 273.1068 273.9017 273.4099 272.5596 270.9652 268.7909 267.1122 265.1958 264.9918 267.1958 267.4048 269.3049 270.0554 269.7589 270.1927 270.1475 268.5005 265.7874 264.4311 262.9502 261.0601 257.5862 251.6395 246.6471 245.1472 245.8269 248.1883 248.1204 249.38 253.097 254.9714 257.1729 258.1274 258.7393 259.0244 259.7253 259.9711 258.222 257.9958 259.2169 259.9829 -9999 -9999 +-9999 309.3959 308.9634 307.1978 304.652 303.9828 299.8204 296.5902 293.8187 288.2333 284.3876 282.8969 284.2343 285.752 290.829 298.1886 299.5922 299.9655 299.268 297.4621 295.5025 292.4436 290.7751 288.9137 283.1415 284.9127 289.0905 291.7457 294.4928 297.1031 298.3089 296.8564 296.5386 296.9866 296.8195 295.4001 299.0064 299.7485 301.0733 303.5718 304.6963 305.8343 307.1382 310.6875 313.3757 315.3281 317.4701 319.1306 319.508 319.4322 319.5109 320.052 323.4037 324.8274 325.8145 326.2881 326.9765 327.5221 327.6389 327.2058 327.2057 326.4323 325.7307 324.4268 323.2168 322.1348 321.2474 321.8816 322.609 322.4149 318.3912 318.2299 321.9944 325.1389 327.1409 329.037 330.3013 331.7242 332.735 333.5638 333.2417 334.0486 334.9191 335.7154 335.0076 334.4501 333.437 332.2674 327.4366 324.8835 328.5558 330.8974 333.2564 335.4502 337.3177 338.9457 340.5981 343.2267 345.179 346.9604 347.8419 347.1738 347.5754 348.3066 348.2488 345.4467 349.2676 352.1772 353.7662 354.0038 350.4241 352.7049 356.0305 356.1365 352.9498 349.3149 343.6161 340.7816 337.5393 336.9502 336.0411 334.2379 331.5725 328.5289 327.5683 324.4265 324.3285 324.0141 323.2259 321.9108 320.3373 319.2475 317.8905 317.5258 316.0521 315.9953 316.4049 315.895 315.661 315.6953 316.0543 316.3617 315.8604 314.1942 313.9387 314.3976 314.6367 315.0957 315.0606 314.7877 314.5768 314.635 314.5916 314.1058 314.2581 315.3179 316.0065 315.9651 315.6466 314.4531 312.6217 308.8811 307.6249 306.1193 304.7411 303.3832 302.3269 302.1626 302.2554 301.7536 301.3183 300.8401 298.8935 298.4748 300.5351 302.4733 304.0179 304.6614 303.833 303.4324 303.2706 302.8511 302.6628 301.6003 300.9182 300.839 300.964 301.3627 300.1469 297.2356 299.3779 301.7774 302.3433 301.7853 300.7329 299.2449 298.0265 297.2578 294.438 291.8946 289.6703 289.4441 289.9778 289.6622 288.7271 287.5657 286.303 282.8942 279.3828 281.7078 283.3732 284.6429 284.1487 282.7556 281.2579 279.9948 276.3517 274.8928 272.449 269.8426 268.9332 270.3796 270.1193 271.0141 271.3127 270.4583 270.8272 272.56 273.4686 273.954 274.4892 273.1547 271.8438 269.1634 259.1997 254.3254 252.6083 252.6507 256.1394 254.8043 254.4073 256.4641 257.2832 257.3565 258.3564 259.6648 261.7934 263.0947 264.4132 265.7823 267.4469 268.3131 270.628 271.517 271.4442 270.7115 268.9081 267.421 266.0895 265.2759 265.0275 264.4239 262.9514 260.7466 257.7927 254.5538 252.9883 250.9382 253.7959 254.8995 255.3704 257.4765 259.5957 260.4781 261.9643 263.2972 264.166 265.047 265.4654 264.9531 263.916 262.0728 259.5872 257.7121 255.7141 254.0581 252.6268 250.5688 248.9299 243.9521 241.2637 240.4926 240.2633 240.13 239.9339 239.8433 239.0715 239.9336 246.663 251.2795 254.7291 257.58 258.707 255.7695 257.3154 260.5981 262.9614 267.2664 264.1363 261.144 257.0826 255.2121 262.1454 263.4222 262.3927 261.3366 261.8533 262.1517 261.2529 259.9903 258.4635 254.2326 251.6955 253.7738 255.4683 259.334 261.3435 263.3465 264.5609 265.8022 267.3994 268.3292 268.7161 268.1948 266.386 265.2654 264.0146 263.051 261.7814 259.9273 258.223 256.9622 257.1429 255.5005 255.3705 256.3592 256.7565 258.0226 258.9619 259.4207 261.5128 262.5045 261.8181 249.8339 241.3539 236.4499 234.4139 236.7687 235.3849 235.5231 235.4887 237.0242 237.8225 237.9943 237.8353 237.2288 237.1472 237.7121 237.9102 237.7816 237.6743 239.5947 241.2282 243.1557 244.0459 243.7201 242.8738 242.2128 241.5682 241.153 240.8303 240.6266 240.247 240.4576 241.3461 242.4815 242.9528 242.717 242.0829 242.9724 242.9822 242.3243 239.5213 238.4154 238.7869 242.1636 243.698 244.9075 247.2253 248.4012 250.7586 252.7786 254.5765 255.3297 255.9287 256.5522 257.1448 257.764 257.4946 257.5014 258.2166 258.9412 258.9432 258.0548 257.7967 258.2271 258.894 260.607 261.8117 263.6404 265.026 266.3722 267.0067 267.2077 266.6657 263.7844 263.6941 263.2059 261.7451 258.5359 251.1047 247.7131 246.6855 247.2075 250.6468 254.625 255.0478 253.8138 250.4628 248.7664 248.9456 249.7225 250.4774 251.9848 254.2442 255.2635 256.5587 259.1064 261.193 263.531 266.1305 267.633 269.1599 270.6089 269.4608 268.7227 268.1866 268.7249 269.1245 270.0428 271.6163 272.2987 273.7948 272.7929 271.1 269.3828 267.6125 266.5367 266.7726 268.795 269.8791 271.6542 273.5099 273.4261 272.2596 271.5917 268.4056 266.6979 267.3084 267.266 262.1147 259.0646 256.1341 251.3722 245.956 244.5262 245.8028 246.6767 247.7437 253.5528 255.5044 256.6425 257.1364 257.6182 257.8061 257.9695 257.7681 256.2265 257.6071 259.1902 259.5616 -9999 -9999 +-9999 309.9738 309.7668 308.8355 307.6566 307.3505 302.5346 300.3051 298.6345 295.1964 291.3571 286.19 284.2284 285.4421 289.5113 294.3732 296.3582 297.3791 297.7057 296.0261 293.4232 291.5669 289.2066 285.9121 283.3824 288.1769 293.0577 295.2041 296.9283 298.2638 300.1514 300.6133 299.2966 299.4194 300.207 300.3849 301.5829 302.5168 302.4615 302.9726 304.3406 306.1241 307.6045 310.8038 312.7577 314.7852 316.5255 317.323 318.013 318.4793 319.6048 320.2523 323.4767 324.3589 324.3877 324.3448 324.631 324.8484 324.3019 323.8598 324.1957 323.8081 323.3203 322.4969 321.5655 320.557 319.5268 320.3676 319.3077 319.5611 316.9969 319.6778 322.8223 324.97 326.5577 327.8731 328.9536 329.8748 330.4342 331.1439 331.7285 332.7316 333.9852 334.2682 334.1719 333.4802 332.6084 331.5498 325.8208 324.3064 328.0834 330.8179 333.079 334.6433 336.1626 338.1228 339.2216 341.3685 342.8123 344.8878 346.2909 345.7366 345.6314 347.235 347.0296 343.3623 346.8148 350.8777 353.5053 352.9365 349.1492 351.9091 355.7994 355.2442 352.2572 348.5751 342.074 339.6707 337.4296 334.7488 331.7842 332.5074 330.7412 328.4765 327.0576 322.2993 321.6247 321.4753 320.9396 321.4075 319.7635 318.3309 317.156 315.8492 314.6343 315.3167 315.0495 314.4798 314.2033 314.5291 315.2967 315.7215 315.3213 313.539 312.4866 311.822 312.0373 312.842 313.3052 313.3355 313.755 314.0537 314.7623 314.5041 314.5672 315.2416 315.5784 316.4759 317.1903 315.8603 313.9022 309.8386 308.4728 307.1268 305.7827 304.7786 303.9601 303.3513 303.6704 303.3739 302.5684 301.4114 299.9858 299.0411 300.7181 303.1032 304.9119 305.6921 304.9722 304.8522 304.7687 304.5417 304.0965 303.2185 302.3417 301.651 301.454 301.3554 299.7925 298.3885 298.9743 301.7359 302.1263 301.1348 300.3622 298.9633 297.6293 296.1337 293.3783 289.9296 287.5036 286.1284 286.1251 285.1064 284.4008 283.1133 282.7341 284.7846 285.1207 285.0695 285.2596 286.0669 284.9637 283.1567 281.5286 280.1925 277.0406 275.3858 272.9424 270.58 271.1398 273.1447 273.608 274.5203 271.3127 270.4583 270.8272 272.56 273.4686 273.954 274.4892 273.1547 271.8438 269.1634 259.1997 254.3254 252.6083 252.6507 256.1394 254.8043 254.4073 256.4641 257.2832 257.3565 258.3564 259.6648 261.7934 263.0947 264.4132 265.7823 267.4469 268.3131 270.628 271.517 271.4442 270.7208 268.825 267.0736 266.0529 264.8729 264.709 264.7988 263.6229 262.5901 260.3029 256.7259 254.184 252.508 250.3646 251.841 254.9955 258.2717 259.8528 260.7469 262.1711 263.2296 264.2265 264.7317 264.9258 265.2531 264.7944 263.183 261.1802 259.0131 257.2896 255.4548 253.7951 251.1687 248.1333 241.7992 240.571 240.5645 239.6711 240.1597 239.9328 239.8467 240.0365 239.5775 244.8599 248.5909 251.5026 254.0737 254.2567 253.4927 258.4526 261.7461 262.7238 263.6265 258.79 255.2219 252.1623 251.9303 259.6945 261.7529 260.272 260.0974 260.7658 260.8264 260.0751 258.6729 255.727 253.3273 250.922 251.9127 253.6171 259.674 261.2344 262.9145 264.2035 265.6671 267.668 269.0258 269.5889 269.3478 268.0663 266.8404 265.9361 265.0999 263.5454 262.234 260.1906 259.3866 259.432 257.9235 258.597 258.998 259.343 260.0212 261.0034 261.748 263.1191 263.0131 255.8884 248.4368 238.653 236.453 235.1427 236.0725 235.3416 235.5211 235.8361 236.8618 237.8499 237.8776 238.179 237.875 237.0959 237.1186 237.6983 237.5689 237.3786 239.9257 241.8337 242.5419 242.6396 242.064 241.4657 240.8978 240.5403 240.3253 240.3493 240.5759 240.9682 241.8288 243.6421 244.6804 244.8451 244.4777 243.2906 243.2501 243.7688 243.5944 240.7914 239.845 239.2809 239.3208 240.3498 241.9242 246.4022 247.2162 249.0788 251.103 251.957 252.7598 253.6163 254.2716 254.7719 255.3364 255.4471 255.8947 256.0423 256.1531 255.9266 256.2911 256.383 257.1908 259.2109 261.0056 262.4203 264.0353 265.4797 265.7684 265.808 265.9925 265.9388 265.0652 265.4751 264.8765 263.1009 258.9596 251.8273 247.0125 246.3387 246.6959 252.4214 253.6502 252.4993 250.2535 248.452 247.8512 249.2338 250.6639 253.5518 255.479 258.6146 259.7326 260.9318 262.2519 263.4638 264.7351 266.8686 268.5834 269.6458 269.0905 268.541 267.6405 266.954 267.2505 268.4386 269.152 269.869 271.2347 273.0067 273.6148 272.0643 270.8661 268.8689 267.9786 269.5315 271.2118 272.2857 274.8304 275.9103 276.4945 275.5815 272.9496 269.5981 268.825 269.961 269.2049 264.6099 261.7833 258.9729 255.9315 253.1403 249.2343 247.3823 245.1371 245.3646 252.1172 253.6326 254.7194 255.5372 256.5452 257.0193 257.6161 256.1534 253.65 258.4059 258.9377 259.1402 -9999 -9999 +-9999 307.0727 308.4257 308.2955 307.8707 306.4057 304.2974 301.5476 300.156 298.2178 295.3389 288.6465 283.9099 284.884 287.6249 291.7711 293.7809 295.1089 296.2133 294.6544 292.3658 289.2813 285.9414 283.9592 283.8548 290.1127 294.1231 297.471 300.396 301.7287 302.869 303.0981 302.4379 302.5079 302.3961 302.3298 302.4565 303.3829 304.4204 304.2699 305.6213 306.3904 307.7549 310.8743 312.0077 312.9429 314.197 316.691 319.2444 320.6524 321.6984 322.5239 323.7099 323.4407 322.8025 322.1674 322.5802 322.7663 322.196 321.2042 321.3865 321.2828 321.1674 320.5013 319.5592 318.7002 318.0658 318.7547 319.127 316.4449 316.7029 319.4332 322.0093 323.931 324.6868 325.1934 325.9394 326.7061 327.5039 330.153 331.0589 332.2172 332.5979 332.5354 332.4811 331.9633 331.1822 330.5308 324.6592 323.7332 327.3649 330.0658 332.0861 333.9868 335.6579 336.4129 337.2286 339.9034 342.3193 344.1117 345.2617 344.5518 343.6934 345.9331 346.5255 344.0717 346.393 350.6419 352.4939 350.8713 347.5826 349.8604 354.1687 354.1413 351.3956 347.6679 341.2892 338.4179 336.1402 334.3162 330.8289 330.0716 329.7062 327.9478 324.633 321.1536 320.1939 319.3059 319.0255 319.4327 318.8533 317.1399 316.2612 315.1005 312.9622 313.7129 313.4358 312.9329 313.0163 313.6463 314.095 314.5905 314.5872 312.9822 312.0015 310.2921 309.2888 309.6486 310.8066 311.4602 312.4808 313.1855 314.3603 314.0107 313.3694 314.0392 314.6172 315.3423 316.4945 315.8768 314.191 310.8065 309.3678 307.8082 306.5698 305.7285 305.1858 304.8378 305.137 304.6985 302.8773 302.0085 300.9861 300.1738 300.779 303.0221 304.7991 306.0312 306.1741 306.31 306.1541 305.9958 305.3421 304.7598 303.5543 302.7754 302.6606 302.1252 300.2343 299.5988 299.2683 301.6608 301.9644 301.1348 300.3622 298.9633 297.6293 296.1337 293.3783 289.9296 287.5036 286.1284 286.1251 285.1064 284.4008 283.1133 282.7341 284.7846 285.1207 285.0695 285.2596 286.0669 284.9637 283.1567 281.5286 280.1925 277.0406 275.3858 272.9424 270.58 271.1398 273.1447 273.608 274.5203 275.3427 274.5414 275.0485 276.0836 276.8547 276.8825 275.9228 274.458 272.2032 269.2199 260.2592 255.8738 252.345 252.1256 252.871 252.9767 255.215 256.1174 256.2283 256.701 257.1272 259.8873 261.8131 263.0595 264.5369 266.1068 267.7336 268.3146 270.295 270.7551 270.7072 269.7986 268.5284 267.2181 265.7346 264.5362 264.2534 264.7099 263.8251 262.8964 260.8693 259.384 255.2113 252.7894 251.4064 249.4406 253.7713 257.0772 258.6303 259.453 259.941 262.2282 263.6332 264.024 263.9362 263.8902 263.8911 263.2543 262.1267 260.6472 258.6143 257.0542 254.4837 250.5656 246.4208 240.7739 240.1729 240.6288 240.2651 240.009 239.8568 239.794 239.6095 240.0315 240.9413 244.3806 246.7772 248.9512 249.3977 251.9558 255.5991 257.6053 258.4925 259.7784 256.5146 247.8869 245.494 254.6046 259.0443 259.5349 258.5654 258.3703 258.9644 259.3452 259.0016 257.6934 255.0789 250.3827 250.0083 251.5468 254.0408 258.8745 260.2149 262.1736 263.6248 265.2252 267.5814 269.2209 269.545 270.2422 269.2621 268.5258 267.1299 266.4951 264.6672 263.6496 261.9487 261.3112 260.9323 260.0205 260.3781 260.8725 261.6533 262.2478 262.4777 262.8377 262.8331 260.9799 254.3574 248.6847 238.5851 236.1055 234.9967 235.9559 235.4165 235.6647 235.9779 236.5201 237.3367 237.5015 237.9294 237.5851 237.2044 237.1055 237.5127 237.7635 237.4298 237.1867 239.022 242.2271 242.6201 241.8429 241.3537 241.0329 240.8392 240.9449 241.3398 241.9272 242.7137 244.2936 246.2207 247.0046 247.2129 246.754 244.9793 243.744 243.8413 243.9784 243.5846 243.4274 242.9418 241.1614 240.6676 240.6681 245.4555 246.3535 246.8002 247.7402 248.7226 250.0362 251.1004 251.6475 251.8375 253.015 252.8881 252.9802 252.6898 253.1305 253.8609 254.9224 255.4278 256.7783 260.6478 261.9099 263.3256 264.1649 265.9803 264.7663 264.579 264.7737 265.1808 266.2736 266.8514 265.9416 263.4999 259.7663 253.3125 246.8224 245.929 246.1644 251.9208 252.3008 249.7509 247.8219 247.6756 248.9155 252.3143 255.6866 258.6285 260.7982 260.6898 259.5754 259.4774 261.0262 262.8133 264.5966 265.924 267.09 267.844 267.9678 267.0325 265.8533 265.3076 266.755 267.7634 269.0822 269.6382 270.7595 272.332 273.4091 272.9945 271.8923 270.6295 269.3601 271.2909 273.7396 273.6743 277.2847 278.4206 278.529 277.5974 276.3849 273.7518 272.2939 271.8847 271.6653 267.8812 264.8636 261.8302 258.5392 255.2896 251.5176 250.0739 246.8857 244.3263 248.2069 251.0202 253.4996 254.2619 255.0766 256.187 256.2759 254.8794 254.4174 259.0355 258.5969 258.3062 -9999 -9999 +-9999 302.8249 304.2874 305.0313 304.9284 305.8044 302.8245 301.8123 300.1505 298.2903 295.5552 290.1819 284.2947 284.0732 285.4604 289.9627 291.8835 293.6113 294.9479 294.1142 291.1956 285.7852 283.3798 282.7567 285.6632 290.7971 294.5219 297.6137 300.9903 303.2795 304.6721 304.942 304.7244 304.7332 304.741 304.5223 304.0487 304.8944 305.8164 306.3265 306.806 307.1949 307.8991 310.2502 311.41 313.2895 315.3529 316.8625 318.2853 320.0058 321.6568 322.9388 323.5899 322.586 320.448 319.7311 320.3661 321.0026 320.1505 318.8074 318.2845 319.1559 319.4136 318.217 317.1564 316.5751 316.5977 316.0442 314.9602 314.9274 317.6438 319.5913 321.083 322.2976 323.1733 324.7555 325.8438 328.1555 329.3076 330.966 331.6198 331.7573 331.3232 331.1134 330.9289 330.6622 329.4078 328.126 321.8055 323.9952 326.8972 328.9048 330.8173 332.583 334.0578 334.7763 335.2571 339.5899 341.1897 342.7073 343.785 343.7571 342.0207 344.0847 344.5805 342.1242 344.6201 349.0858 350.4904 348.4544 344.0854 348.1964 352.3577 351.849 348.5263 342.6555 339.7277 337.0364 334.8441 332.9374 329.2536 326.4121 327.4874 326.2454 324.8145 320.7456 319.4042 318.5228 317.8662 317.1497 316.8935 315.9764 315.2547 314.0249 311.3436 311.7234 311.584 311.4783 312.0072 312.5518 313.0803 313.8368 313.5756 311.941 311.4467 309.7325 308.695 308.1949 309.2108 310.4075 311.296 312.4684 313.0705 313.1172 311.9911 311.9321 312.427 313.6335 314.7395 314.8391 313.8601 311.0459 309.9396 307.8082 306.5698 305.7285 305.1858 304.8378 305.137 304.6985 302.8773 302.0085 300.9861 300.1738 300.779 303.0221 304.7991 306.0312 306.1741 306.31 306.1541 305.9958 305.3421 304.7598 303.5543 302.7754 302.6606 302.1252 300.2343 299.5988 299.2683 301.6608 301.9644 301.5516 300.4668 299.0548 297.3518 295.8761 293.0252 291.461 289.4474 287.6265 288.5261 286.7577 286.7121 287.0115 287.0767 289.1172 288.5711 287.3224 287.1839 286.2428 284.9345 283.1713 281.5521 279.8286 276.4833 275.064 272.4267 271.608 273.0657 275.3923 276.6902 277.3284 278.6784 278.0974 278.2554 279.2093 279.3417 278.7057 276.8535 275.5664 273.7885 271.7618 265.4611 259.9877 253.3861 252.0088 252.2113 253.7844 254.8416 255.2098 255.3688 256.0318 257.4992 259.3733 261.212 262.9816 263.9684 265.5046 266.7382 268.3359 269.4268 269.3823 269.5096 269.2206 268.399 266.8286 265.546 264.1315 263.5864 264.1753 263.7663 262.8352 262.6068 262.4657 260.3797 255.9955 252.7644 250.8345 252.4445 255.3736 256.6213 257.1031 259.2948 261.7554 262.4472 262.9688 262.0552 261.5233 261.7868 261.5206 259.9139 258.6278 257.5772 256.6542 253.6203 248.9933 244.408 240.7785 240.9181 240.4315 240.1558 240.0325 239.8753 239.8535 240.0203 239.9149 240.262 240.9402 244.0802 245.8698 246.8108 248.6931 251.0933 253.3957 254.8729 255.4961 251.8526 242.9677 249.3828 255.498 257.7321 257.1972 257.1463 257.0367 257.2469 257.6771 257.0652 255.8118 252.3539 248.4251 250.1992 252.3888 254.5262 259.0156 261.3188 262.8833 264.5089 265.8985 268.1316 269.3473 270.0526 270.5825 270.4465 269.6982 268.5726 267.5908 266.197 264.7628 263.3873 262.3947 261.8673 261.8727 262.1098 262.1229 262.6905 263.1693 262.9137 262.4576 261.2479 258.8807 252.4913 246.719 238.5288 236.464 234.3551 236.2486 235.7101 236.2777 235.9011 236.0097 236.8169 236.9032 237.0818 237.0199 237.2744 237.2109 236.6278 237.6433 237.635 237.0049 237.5618 240.5679 243.0521 243.3425 242.9373 243.2335 243.4017 242.8685 244.1878 245.1505 246.762 247.915 248.9166 249.6086 249.3543 248.8402 247.4934 244.384 244.546 245.447 246.4402 246.0862 245.2623 244.7435 244.6685 244.8812 246.7203 246.5621 246.7969 246.8325 246.8725 247.0072 247.5042 248.3772 249.106 249.6697 249.8098 249.7742 251.0009 251.8141 253.3298 255.2634 256.5395 258.501 261.6045 263.5347 264.6514 265.4311 265.1716 263.8229 263.0934 263.5865 264.3268 265.5793 265.7637 264.6877 263.2783 260.1127 255.5448 247.164 245.8002 245.6802 249.3906 249.0287 247.3792 247.1096 247.8345 252.0435 255.1553 257.5938 259.1476 259.8409 258.0732 256.3937 257.5027 260.0294 262.3145 263.219 263.7406 263.7129 263.7173 266.2864 265.2059 264.3394 264.269 264.5966 265.0653 266.2827 268.0778 270.6029 272.0884 273.0612 274.2096 273.2154 271.7099 271.4354 272.9816 274.1976 276.7786 278.7373 278.8147 278.6236 278.2354 277.5294 276.0366 274.9127 274.4436 273.5975 267.4848 264.3868 261.254 258.1407 256.1118 254.8193 253.5388 250.6535 245.4805 246.5065 249.1556 251.6702 253.251 254.2787 255.7469 255.4371 252.453 254.0135 259.1502 258.5946 257.7129 -9999 -9999 +-9999 299.5442 299.742 300.739 302.1027 303.8922 301.5785 299.6196 299.0602 296.5655 294.3546 291.9968 287.2997 282.4231 283.9221 287.8096 290.452 292.1934 292.9355 292.4156 290.8243 283.3302 283.2037 282.9973 288.2931 291.7137 295.1569 297.7997 300.3983 302.9746 304.8443 306.5135 307.511 306.9582 306.6909 306.2992 306.0486 306.8096 306.8311 306.9081 307.4353 308.2763 309.0606 310.9715 311.7823 313.6027 314.4911 315.2106 316.0971 317.6529 320.13 321.5501 322.5157 321.9396 319.7826 318.4905 319.8863 319.9211 318.4715 317.1326 315.4308 317.2913 317.0452 316.1012 314.8769 314.5747 314.4542 313.6182 313.0526 314.5821 318.0146 319.7987 320.9398 321.9781 323.4586 324.9368 326.9713 328.7341 330.2727 331.7396 331.8723 331.4536 329.7841 329.28 328.8205 328.3911 327.1903 324.9406 321.4305 324.3277 326.7365 328.1759 329.8318 331.3502 331.9576 332.8639 334.2252 338.0746 339.665 341.3117 342.6137 343.243 340.8543 341.0807 342.2301 340.6165 340.8452 346.4024 347.6214 344.9518 340.9096 346.9154 350.7699 350.4294 345.2825 337.5011 338.5381 336.1618 331.1692 330.9474 329.3601 326.0874 323.4161 324.4421 323.4407 320.644 319.7655 318.6072 317.2763 316.1593 315.3466 314.9888 314.0366 313.3069 311.3436 311.7234 311.584 311.4783 312.0072 312.5518 313.0803 313.8368 313.5756 311.941 311.4467 309.7325 308.695 308.1949 309.2108 310.4075 311.296 312.4684 313.0705 313.1172 311.9911 311.9321 312.427 313.6335 314.7395 314.8391 313.8601 311.0459 309.9396 308.762 307.73 306.8237 306.0772 306.0659 306.262 305.128 303.4394 302.427 301.4954 300.9285 300.879 303.2207 305.6342 306.7164 306.9467 307.2835 307.2722 306.8737 306.1945 305.6023 304.587 303.8155 303.5101 303.5101 301.6141 302.0226 301.2852 301.0149 300.9791 301.0454 300.3571 299.26 297.7966 295.1878 294.3946 293.5424 292.881 292.7419 292.2442 291.585 290.6997 290.1129 289.8389 291.332 290.2745 289.2205 288.2751 286.0919 284.1938 282.1157 280.3543 278.5872 275.6669 273.9483 272.7675 273.248 274.916 276.9274 278.7287 279.6818 281.1109 281.1877 280.6105 281.3063 280.9504 279.661 278.6965 277.6192 276.8324 274.6562 267.3175 262.8294 255.9381 251.1985 251.8156 253.4563 254.7446 254.6716 254.9367 256.3358 257.9964 259.4626 261.0573 262.5526 263.9645 264.8316 265.4581 266.4253 268.1186 268.6135 268.6592 268.1082 267.0315 265.8044 265.2203 264.079 263.2972 263.8929 264.8166 265.0167 265.4209 265.3905 264.0589 261.4814 257.2187 251.8386 248.9156 252.2692 255.2231 257.7788 259.6273 260.8022 261.738 261.7398 260.6927 259.689 259.9785 259.578 257.4367 256.0297 255.6986 254.906 250.7071 246.6004 241.3165 241.5892 244.7444 243.7601 243.07 240.4972 239.8592 239.7142 239.6887 239.7744 238.6052 240.3853 242.3526 243.4372 243.4067 244.6301 246.3849 248.7079 251.8695 248.1679 242.8828 248.6788 252.5317 254.7622 255.683 255.2539 255.2795 255.019 255.7543 256.205 255.5775 254.0238 249.7574 248.1719 250.7556 254.5599 256.4961 260.7682 262.305 264.051 265.7293 267.4212 268.8139 269.7585 270.3784 270.5178 271.3375 270.4172 269.4966 267.8751 266.464 265.3588 264.3471 263.1545 262.7108 262.5197 262.2747 262.3952 262.6989 262.5715 261.6776 260.3054 258.7065 256.8616 252.0611 249.0427 242.9103 236.0041 234.3537 236.3921 236.1388 237.1589 237.3079 235.8842 237.0167 236.9354 236.7459 236.9291 237.0092 237.0763 236.6859 237.0776 237.1347 236.6658 237.0939 239.7827 241.8448 243.902 245.1778 245.7577 246.4206 246.5739 248.1009 249.1212 250.4039 251.686 252.7378 252.5188 251.9087 251.2826 249.6638 245.0741 246.1378 247.18 248.2903 248.1258 248.2903 248.7921 248.7092 249.0825 248.2887 247.2361 246.7709 246.7527 246.78 246.8379 246.9532 247.033 246.9959 247.3548 249.7883 251.004 251.7702 252.738 254.8663 257.1506 258.8431 260.2578 264.1452 265.6198 266.1904 266.0332 264.4911 263.1466 261.513 262.3234 262.5975 263.7356 264.0241 262.9864 261.5102 258.7775 255.5486 249.2062 245.2284 245.4666 246.5707 246.656 246.4385 246.9839 249.1018 253.6503 256.2304 257.7763 258.0061 256.763 253.515 253.4229 254.2894 256.5811 257.7812 258.9023 259.8557 260.7098 261.1093 263.9259 263.2374 262.3219 262.1362 262.597 262.5149 264.251 267.9987 271.0132 271.8755 272.6945 273.5327 274.5699 273.1066 272.5381 274.0218 275.4647 276.9265 278.0454 277.3738 276.8472 276.5751 276.4162 276.383 276.3798 275.7824 274.7108 269.0683 266.3269 262.5118 258.8511 257.3573 256.789 256.2143 253.3948 249.0334 243.9773 247.0029 249.731 251.4916 253.2663 254.3192 251.6837 248.5881 253.8087 258.9637 258.5946 257.7129 -9999 -9999 +-9999 297.686 297.5082 299.1623 301.9062 301.5679 299.1829 300.0073 297.902 296.4959 293.6435 290.7651 285.9733 283.5781 283.4422 286.0506 288.6568 290.5537 292.1038 292.1865 288.9998 282.9502 283.1459 282.9904 288.2857 290.9288 292.8978 295.782 299.0378 302.3091 304.569 306.7343 308.744 308.0825 307.1547 306.5274 306.2197 306.2354 306.3766 306.8704 307.195 307.4219 307.9883 309.8826 311.3425 312.7678 314.0418 314.6412 315.7784 317.3303 318.9287 319.8224 320.6368 320.0784 318.9822 317.4827 318.7609 318.2612 317.3716 315.7236 313.3317 313.9303 314.073 314.1161 313.5704 313.2173 313.2086 313.1863 313.0984 314.4816 317.8933 319.8989 322.0247 323.0804 324.22 325.5629 326.9885 328.6876 330.4158 331.7649 331.4077 329.9883 328.8878 327.35 326.7791 326.202 324.5443 321.7314 322.1809 324.5544 326.0204 327.0756 328.6213 330.0466 331.1996 332.4059 333.6952 337.1377 339.1503 341.3289 342.5999 342.5459 340.9978 338.3515 336.5024 334.8701 340.8452 346.4024 347.6214 344.9518 340.9096 346.9154 350.7699 350.4294 345.2825 337.5011 338.5381 336.1618 331.1692 330.9474 329.3601 326.0874 323.4161 324.4421 323.4407 320.644 319.7655 318.6072 317.2763 316.1593 315.3466 314.9888 314.0366 313.3069 311.088 309.2626 309.461 310.1331 310.834 311.3746 312.3291 313.2819 313.2997 311.579 310.8551 309.7707 307.4125 307.1005 308.0516 308.9712 310.2345 310.4933 312.5209 312.0049 310.7233 310.2474 310.7995 312.0211 313.1015 313.5883 313.1059 311.2972 310.4659 309.4601 308.6868 307.7135 307.3326 306.9027 306.4431 305.6091 303.6878 302.8051 301.8599 301.2122 301.3571 303.5479 305.5522 307.0123 307.4945 307.8896 307.6692 307.3626 306.6419 306.1099 305.6631 304.8732 304.627 304.3321 302.5763 301.8752 301.3226 301.2659 301.0996 300.7881 300.0488 299.7612 298.2027 296.7407 296.2294 295.1216 294.4438 294.367 294.3457 293.5784 293.0656 292.17 291.5803 292.9479 291.9387 290.0201 287.8282 285.6093 283.8514 281.9426 280.237 278.4654 274.3072 273.3459 273.4028 274.6428 276.191 278.2283 279.6948 281.0858 282.5965 282.255 281.5282 281.5991 281.1612 280.2983 279.4777 278.8155 278.0594 275.6482 268.4639 264.2584 258.2018 252.6293 250.9168 251.7464 253.6097 254.2235 254.3687 256.4115 257.8375 259.1886 260.5793 261.9751 262.9133 263.6912 263.905 264.398 266.4427 267.2679 267.3431 267.0891 265.7862 264.9275 264.7812 264.0818 262.923 264.2092 266.0057 267.0841 267.9313 267.9259 267.219 264.6023 260.8928 255.7893 247.8607 250.7209 253.9991 256.2686 258.2768 259.3703 260.591 259.6968 259.0236 257.4034 257.5083 257.6807 255.663 253.8782 251.947 250.5582 245.7377 241.1508 241.2463 243.2549 247.0226 248.3389 247.6211 245.3595 241.8364 239.9535 239.5229 239.5673 239.6037 238.5453 240.1533 239.7542 239.944 240.1438 240.6033 243.6504 244.5393 241.2386 247.2298 249.3468 251.1725 252.5492 253.0739 253.8904 253.7253 253.7484 254.7638 254.9187 254.3321 251.203 246.6651 249.3627 252.714 256.4288 258.2432 261.2264 263.2157 264.8544 266.6506 267.8196 269.1403 269.9667 270.4791 270.4125 271.468 270.7158 269.6656 267.5371 266.1426 265.2047 264.3389 263.1486 262.6719 261.8209 261.3856 261.2866 261.0492 260.1187 259.1309 257.9222 256.2195 254.188 249.9456 247.786 244.7002 237.0295 236.8496 234.3399 236.3844 237.5954 237.2118 236.0408 236.0618 236.8709 236.7991 236.5872 236.7483 236.5806 236.7193 236.9717 236.7656 236.4694 237.0015 238.5891 240.0907 243.9285 245.5471 247.3162 248.1716 248.9199 250.838 251.9394 253.9367 255.2118 255.2603 254.5757 253.5781 252.5066 249.9634 246.2909 247.1071 249.0179 250.123 250.499 250.6861 251.3794 252.1295 252.1679 252.4751 252.7448 252.0348 250.2436 248.4102 246.7629 247.0876 247.1089 247.146 250.706 253.1484 254.3165 255.5801 256.6103 257.7602 259.5103 261.0447 262.8714 266.1211 267.331 267.1113 265.7123 264.3379 262.6692 260.9369 260.4389 260.7007 261.5418 262.0187 260.9579 259.2967 257.2545 254.5174 249.4951 245.0243 245.3666 246.3282 246.067 246.5808 247.4845 250.0161 252.7076 254.7161 255.9053 253.2396 251.2994 250.5677 251.2567 251.7357 252.186 253.1053 254.5021 255.7308 257.1788 258.3057 260.4005 260.332 259.8564 257.7436 260.3979 261.4632 264.251 267.9987 271.0132 271.8755 272.6945 273.5327 274.5699 273.1066 272.5381 274.0218 275.4647 276.9265 278.0454 277.3738 276.8472 276.5751 276.4162 276.383 276.3798 275.7824 274.7108 269.0683 266.3269 262.5118 258.8511 257.3573 256.789 256.2143 253.3948 249.0334 243.9773 247.0029 249.731 251.4916 253.2663 254.3192 251.6837 248.5881 253.8087 258.9637 259.0143 257.8136 -9999 -9999 +-9999 296.1453 295.5092 297.088 298.758 298.3063 296.1021 298.0936 297.1967 294.9912 292.4065 290.1388 286.2979 283.6179 283.2053 284.0169 287.2292 289.5755 291.0558 290.2316 287.5802 283.4355 282.8338 282.5948 284.8142 287.4809 290.5005 294.6455 298.3551 300.8533 303.6537 306.269 308.3695 307.7085 306.5952 305.0087 304.3764 304.5771 304.1776 304.9274 305.2228 305.0807 307.6031 308.744 309.8173 311.8915 313.6476 315.2521 316.5098 317.5307 318.1086 318.5616 318.8189 318.2578 316.9787 314.456 316.0378 315.3078 313.5897 313.2121 311.8425 313.2794 313.1286 313.4993 313.7885 313.6514 313.3997 313.3766 313.2281 313.196 315.881 319.1277 321.5926 323.528 324.5189 325.4646 326.6834 328.2457 330.4158 331.7649 331.4077 329.9883 328.8878 327.35 326.7791 326.202 324.5443 321.7314 322.1809 324.5544 326.0204 327.0756 328.6213 330.0466 331.1996 332.4059 333.6952 337.1377 339.1503 341.3289 342.5999 342.5459 340.9978 338.3515 336.5024 334.8701 333.4654 339.833 342.529 340.7639 338.6423 345.3847 348.5715 347.465 343.5667 333.3462 335.0336 333.8215 329.992 327.6561 325.8358 323.3778 322.3312 323.2428 321.8114 319.5094 318.8428 318.2203 316.8808 315.7987 314.4676 314.2028 313.7623 312.7746 308.9927 307.9956 307.049 308.3177 309.2185 310.4707 311.7347 312.5597 312.8277 311.6913 310.3751 309.8657 308.3553 306.1821 306.7214 306.8996 307.6606 309.4093 310.722 310.1125 308.9368 308.4199 310.2255 311.0974 312.0339 312.6508 312.5153 311.369 310.4935 309.8225 309.3241 308.6131 307.8857 307.3674 306.4032 305.4668 303.9935 302.7351 301.9931 301.3363 301.7029 303.3669 305.2281 306.4223 307.6041 308.1121 307.8186 307.2102 306.6495 305.7076 305.4976 305.2536 304.2269 304.5003 302.7244 302.2631 301.9536 301.8513 301.7006 301.3634 300.7462 300.0917 299.696 298.6634 297.5659 296.9554 296.6306 296.2227 296.0219 295.5246 294.3953 293.4779 293.2005 293.498 292.215 290.1003 287.7644 285.6295 283.9603 281.8769 279.7025 277.3361 274.0079 273.9468 274.7099 275.9745 277.3152 279.1815 280.6875 281.6527 282.4073 280.0618 280.1233 280.393 280.0375 279.0804 277.8416 276.9296 276.1147 274.1086 268.2019 264.6575 261.09 256.6863 251.4541 251.3506 251.7725 252.8319 254.4182 255.3994 256.0173 257.4326 259.3731 260.705 261.5346 261.8583 262.3498 263.2958 265.1982 266.1366 266.3049 265.8819 264.985 264.1408 264.0768 264.1132 263.0566 263.8807 265.8871 267.6398 269.0452 269.1453 268.4657 265.8034 262.7383 258.9969 248.0692 247.2162 249.9598 253.9801 255.8159 258.2916 259.2211 258.6031 256.819 254.9248 255.6902 256.4918 253.7405 251.2493 249.2272 246.4231 242.0003 241.5408 241.2841 245.2611 248.7462 251.0791 251.9514 252.2483 252.0295 250.2424 248.192 240.7227 239.3333 239.3691 238.6292 239.7454 240.0676 239.7622 239.7978 239.5967 239.6563 241.9243 244.685 248.5776 249.8986 250.1042 251.1592 252.7573 252.829 253.1711 253.8944 253.4961 252.2244 249.0122 246.2041 250.7981 254.3366 257.6565 259.9878 262.7562 264.0907 266.1505 267.0193 268.0419 269.1884 270.1133 270.3868 270.0516 271.0683 270.4112 268.739 267.3168 265.6399 264.4791 263.8804 261.9685 260.8042 260.0218 260.0396 260.1616 260.3776 258.8801 257.0797 255.5711 253.4177 251.7782 247.8294 245.9299 242.5198 236.9787 236.1387 234.2482 237.1457 237.3328 237.1885 236.3065 236.242 236.4313 236.4643 236.3423 236.3229 236.5717 236.4523 236.3222 236.4117 236.3964 236.7101 237.6762 240.8965 244.3358 246.615 248.7094 249.7588 250.8716 253.823 255.3603 256.3705 256.9747 256.7438 255.9619 254.3244 252.6799 250.2316 246.9609 248.1116 251.0417 252.2619 252.7744 253.6404 256.0284 258.4953 256.3058 256.4789 256.5347 256.0103 255.9166 255.1312 252.6498 249.8669 248.7838 248.3613 253.0266 254.6055 256.2816 257.9337 259.0306 260.2897 261.3423 263.5221 265.5206 268.459 268.2953 267.3226 265.9272 264.3379 262.6692 260.9369 260.4389 260.7007 261.5418 262.0187 260.9579 259.2967 257.2545 254.5174 249.4951 245.0243 245.3666 246.3282 246.067 246.5808 247.4845 250.0161 252.7076 254.7161 255.9053 253.2396 251.2994 250.5677 251.2567 251.7357 252.186 253.1053 254.5021 255.7308 257.1788 258.3057 260.4005 260.332 259.8564 257.7436 260.3979 261.4632 263.0522 266.9523 270.7459 271.6686 272.4487 272.8791 274.4005 274.2626 274.6202 274.3887 275.8042 277.0404 276.3097 275.595 274.8587 274.2887 274.1996 274.8627 275.5018 275.5688 275.3349 271.0708 268.1774 263.2598 259.8337 259.5569 258.8894 256.9746 255.3875 252.3503 243.7427 243.6954 245.7014 247.6876 249.9582 251.6472 248.6407 249.9021 254.667 258.0195 258.6046 258.2461 -9999 -9999 +-9999 295.3724 294.469 294.4933 295.4962 294.3856 293.0656 294.9771 293.9249 291.8604 289.3011 286.4939 284.8728 283.4502 282.3702 283.0945 285.3445 288.1419 289.6709 289.2958 287.3637 284.431 282.6063 282.6021 282.7625 283.5638 287.7306 291.7636 295.9629 299.6112 302.6607 305.0095 306.5968 306.7011 304.6146 303.2236 302.1424 302.1096 301.9191 302.8748 303.3046 303.8711 306.4831 307.36 309.5314 311.6337 313.5506 314.986 316.5723 317.0561 317.2165 318.5616 318.8189 318.2578 316.9787 314.456 316.0378 315.3078 313.5897 313.2121 311.8425 313.2794 313.1286 313.4993 313.7885 313.6514 313.3997 313.3766 313.2281 313.196 315.881 319.1277 321.5926 323.528 324.5189 325.4646 326.6834 328.2457 330.1446 331.2823 329.8745 328.8977 328.0821 326.8546 324.9221 323.4251 320.4734 318.9646 322.7381 324.9156 326.3623 327.383 329.4301 330.9141 332.1495 333.2545 334.8023 337.7995 339.8983 341.6223 342.0531 341.753 341.4183 339.9315 337.2588 333.2106 331.0559 335.0648 338.3996 338.0274 335.4536 341.0115 343.3392 341.978 339.5906 333.1196 328.882 329.9152 327.0232 322.6982 320.9779 319.8346 320.2429 320.5957 319.1661 318.0789 317.5594 317.3832 316.1861 314.6726 312.9642 312.6829 313.2272 312.2215 306.6971 305.9539 306.1647 306.2151 308.5076 310.2378 311.2516 311.7134 311.5421 311.1185 310.2192 309.6711 308.8773 307.4525 305.5535 305.1769 306.9799 307.0573 308.1545 308.1608 306.7146 306.7455 308.1768 310.0815 310.9543 311.9242 311.8037 311.1379 310.3675 310.2456 309.2358 308.5559 307.6625 306.9276 306.2169 305.3904 303.9045 303.3994 302.6852 301.8615 301.8388 303.0424 304.7469 306.0618 306.9243 307.877 307.5194 306.8012 306.1353 305.644 305.2229 304.3772 303.8762 303.6311 303.1105 302.637 302.5482 302.4722 302.2963 302.0088 301.4518 300.5843 300.7161 299.9304 299.1137 298.8344 298.117 297.62 297.2462 296.4318 295.2463 294.4786 293.1964 292.5015 290.9861 289.5126 287.8882 286.2215 283.9382 281.513 279.153 277.2001 275.4775 275.691 276.1904 277.2871 278.7551 280.3354 281.1462 281.8936 281.1443 277.7804 277.6852 278.2744 277.5107 276.5896 275.6026 274.5713 273.1978 271.1094 267.2979 264.1896 261.8018 258.7654 253.9669 249.9436 251.1396 252.026 253.5184 254.1161 254.7134 256.4634 258.0674 259.4187 259.8765 260.2724 261.1637 262.2966 264.1086 264.917 265.099 264.5518 263.8378 263.441 263.372 263.7689 262.8623 263.5192 265.2171 267.0206 268.4509 268.2987 267.7776 266.3112 263.5895 260.586 253.0905 246.3065 247.5452 250.4918 253.2452 256.9336 258.8812 259.3932 257.4311 252.6647 254.3407 254.2665 250.9251 248.0798 245.652 243.1013 241.6783 241.4768 241.5911 246.7483 250.6005 253.9221 256.0869 256.9695 257.7825 256.2949 251.1736 245.9734 239.5794 239.3404 239.4271 240.0613 239.5085 240.1452 240.2636 239.8242 239.4001 242.702 246.7433 247.3695 247.5699 249.1231 251.2957 252.1325 252.1643 252.2436 252.2151 250.9011 249.0638 245.4666 248.192 250.5079 253.8027 258.317 261.3532 264.4274 265.4935 266.5049 267.416 268.2064 269.3293 270.2506 270.5348 270.1142 270.4636 269.9111 268.3062 267.0196 265.2911 264.2671 263.5558 261.4011 260.3499 258.9083 258.6412 259.4501 259.6057 258.6906 256.5499 254.5081 251.8604 249.556 246.2882 245.0456 241.5715 236.8779 235.9231 234.3673 237.2759 237.5884 237.0966 236.3183 236.0643 235.9885 235.9222 236.0589 236.0955 236.191 235.9363 235.9156 236.1562 236.288 236.5195 237.7532 243.3741 246.033 248.3047 250.5166 251.9167 252.3359 254.0265 255.4161 256.4628 256.9747 256.7438 255.9619 254.3244 252.6799 250.2316 246.9609 248.1116 251.0417 252.2619 252.7744 253.6404 256.0284 258.4953 256.3058 256.4789 256.5347 256.0103 255.9166 255.1312 252.6498 249.8669 248.7838 248.3613 253.0266 254.6055 256.2816 257.9337 259.0306 260.2897 261.3423 263.5221 265.5206 268.459 268.2953 267.3226 265.9272 264.0815 262.1127 260.5333 259.89 259.4484 259.4825 258.9189 258.1284 255.8831 255.2961 252.8915 248.1514 244.8402 245.0668 245.9463 246.0993 245.7381 246.5056 247.1376 247.8806 249.6562 248.4983 248.7197 252.8101 252.9254 253.3259 253.5245 254.3628 254.8451 255.3508 255.0198 254.0209 254.4004 255.9754 255.9637 256.148 259.2191 260.6098 262.9836 264.6375 267.7621 270.5326 271.8843 272.2954 273.1367 273.7841 275.2492 274.625 274.9615 276.1714 277.0789 275.0135 273.3782 272.8247 272.588 272.6436 272.7696 272.9908 273.2218 274.9495 271.7396 267.6938 263.552 261.6761 262.7876 262.0897 259.0663 256.7048 253.5693 243.6486 243.6219 243.573 243.4709 245.8114 248.4814 247.1223 250.9623 253.4926 256.5623 257.5518 257.8839 -9999 -9999 +-9999 295.2043 293.2329 292.8501 292.6848 291.134 289.2449 290.1414 289.3058 286.1936 284.6228 283.948 283.2484 283.3881 283.1957 283.1214 283.7097 285.5538 288.0652 288.7494 286.9598 283.7734 282.5446 282.5432 282.7625 283.5638 287.7306 291.7636 295.9629 299.6112 302.6607 305.0095 306.5968 306.7011 304.6146 303.2236 302.1424 302.1096 301.9191 302.8748 303.3046 303.8711 306.4831 307.36 309.5314 311.6337 313.5506 314.986 316.5723 317.0561 317.2165 317.1923 316.7026 315.6728 314.8989 312.995 312.1888 310.2122 308.691 309.4051 308.8474 313.1848 312.9503 313.7534 314.2447 314.2677 313.926 315.4349 316.3201 316.1454 317.0258 319.4175 321.5746 323.3568 324.6201 325.6493 326.6678 328.0002 329.4162 330.2029 329.044 328.2014 327.0954 326.1732 324.9034 322.1729 318.8781 318.1825 322.4221 324.4948 326.1613 327.2928 329.1878 330.9302 332.3214 333.5292 334.9781 338.0298 339.6345 340.0977 340.2508 340.5468 340.9971 340.5619 338.5641 334.2694 329.3069 332.1495 333.908 333.7686 331.5326 335.1829 336.3961 335.3831 335.0817 331.3872 328.9001 325.1696 322.686 319.0009 316.9888 316.7365 318.3809 318.195 317.5419 316.2017 315.896 316.3993 314.9692 313.3239 312.0156 310.9282 311.0431 310.9307 307.7195 306.2258 303.0262 306.2009 308.4223 309.8587 310.4517 310.2035 309.88 310.7281 309.9534 309.2791 309.0916 307.8402 305.5328 304.128 302.9473 303.4848 305.5279 305.7074 304.93 305.5161 307.4475 309.1888 310.4601 310.7353 311.0315 310.8748 310.6907 309.9082 308.9086 308.3828 307.4951 306.7858 305.9381 305.585 304.3921 303.8498 303.008 302.3401 302.1181 302.8094 304.5819 305.8133 306.5732 307.2754 307.2279 306.645 306.1208 305.7194 304.8137 304.0668 303.4807 302.9225 303.0045 302.8597 302.6936 302.8567 302.8542 302.4863 301.8711 300.8644 300.6284 300.7541 300.2562 299.775 299.2612 298.6067 297.3125 296.0575 295.1252 294.0412 292.0778 291.1003 289.3432 287.9944 286.9527 285.7165 283.5379 281.5757 279.9893 278.5756 277.1964 277.5258 277.8715 278.6037 279.7437 280.405 280.6852 280.7152 279.9536 275.5634 275.1432 275.256 274.2016 273.4257 272.8885 271.9501 270.4391 268.3503 264.9032 262.8588 260.7458 257.5783 254.1859 251.1138 250.1735 250.7952 251.9952 253.7187 254.7417 256.3255 257.5123 258.2655 258.8733 259.7346 260.4931 261.497 263.4489 263.9784 263.6693 263.0999 262.5341 262.3344 262.7668 263.1255 261.9642 262.616 264.3527 265.6286 266.527 266.9948 267.1926 265.8862 263.722 261.493 255.815 251.7675 245.9104 247.2518 250.0275 255.8376 257.798 258.4854 257.6561 252.0871 252.249 251.2537 248.1479 244.6178 241.528 241.8471 241.8467 241.6708 247.0248 250.1029 251.6837 254.3368 257.629 259.9252 260.4996 259.05 256.7413 252.0087 243.5121 243.0423 243.0231 240.6992 238.9074 240.1205 239.9636 239.9142 239.6558 242.7852 244.3093 245.1286 247.3613 249.3829 251.2903 251.723 250.3352 250.9742 250.5551 247.8384 246.1276 245.1555 249.471 253.2724 256.0714 258.9441 261.6017 264.9466 265.5105 266.3185 267.0795 267.8844 268.8363 270.0791 270.3752 269.4941 269.3516 269.3796 268.0528 266.549 265.2124 263.6281 262.3576 261.2254 260.0262 256.5786 256.0805 256.9045 257.143 258.6906 256.5499 254.5081 251.8604 249.556 246.2882 245.0456 241.5715 236.8779 235.9231 234.3673 237.2759 237.5884 237.0966 236.3183 236.0643 235.9885 235.9222 236.0589 236.0955 236.191 235.9363 235.9156 236.2166 236.288 236.5195 237.7532 243.3741 246.033 248.3047 250.5166 251.9167 252.3359 254.0265 255.4161 256.4628 257.2086 256.8901 256.1133 254.4247 252.9916 251.1711 248.474 249.9663 251.9829 252.9914 254.5997 256.0329 258.8616 258.1953 259.7207 259.8862 260.3003 260.3706 260.3135 258.4712 256.0094 253.7244 251.7604 250.8213 254.1627 256.1451 257.1698 258.8443 260.5174 261.8483 263.4985 265.2583 266.9744 269.0017 268.7803 267.5195 265.8968 263.7267 261.5289 260.2829 259.3481 258.2623 256.6545 256.5042 256.1205 252.5865 250.6987 247.5895 245.5081 244.8316 245.1601 246.0419 247.2488 247.9858 247.9077 247.9879 248.4988 249.1389 251.6481 253.8255 259.1212 260.5907 258.8985 259.1144 259.9546 261.084 261.7064 261.3314 260.4866 259.5432 258.9197 259.8818 259.2642 261.0257 262.359 264.63 266.2544 268.1568 271.292 272.5132 272.8324 273.5227 274.0086 275.6465 275.278 275.6347 276.6803 276.4248 273.364 271.9491 270.5393 270.6373 270.4849 271.3194 272.0707 272.11 272.7366 272.1027 269.6494 267.2917 265.2164 266.0303 265.1417 260.9106 259.4534 256.1284 246.7676 243.5692 243.5058 243.4478 243.4114 244.8148 247.0925 249.6613 251.9648 255.5097 256.588 256.8647 -9999 -9999 +-9999 295.2043 293.2329 292.8501 292.6848 291.134 289.2449 290.1414 289.3058 286.1936 284.6228 283.948 283.2484 283.3881 283.1957 283.1214 283.7097 285.5538 288.0652 288.7494 286.9598 283.7734 282.5446 282.5432 282.4736 282.8323 284.8457 290.1286 294.0124 296.916 299.8785 302.3302 303.4415 303.7169 302.9409 301.3549 299.7978 298.8199 298.9825 299.7693 300.5449 302.2649 305.0254 306.8628 309.2013 311.5256 312.9808 314.6165 315.6076 316.4812 315.9343 315.0463 314.0381 313.4833 312.9077 312.0182 309.3328 308.0318 305.2502 305.8478 304.7821 313.0237 314.2 316.1353 318.456 319.7444 318.4766 318.1433 320.0067 319.5045 319.7031 319.5405 320.4831 321.9867 323.5363 324.7803 326.1327 327.5858 328.7758 328.7515 327.2561 326.5853 326.097 325.2539 324.2725 321.018 317.915 317.6355 320.0779 323.2785 325.3854 326.965 328.531 329.8467 331.2806 332.7603 333.8668 336.5727 337.2721 337.2109 337.6326 338.7556 340.0364 340.5915 339.9271 337.1689 326.7237 326.8642 326.4716 329.55 330.8657 327.6992 326.2643 328.0438 329.5234 327.937 327.2582 323.8763 319.0851 315.7562 311.9911 313.4381 312.8274 315.9192 316.0993 314.6016 314.5352 315.2782 314.182 312.4618 310.8652 309.9407 309.3818 308.339 308.2764 307.5569 305.0718 304.787 308.1912 308.9822 309.3105 308.4263 308.8433 310.21 309.5094 309.0446 308.8031 308.3519 305.849 303.481 301.4245 300.8147 302.206 303.4379 303.2641 304.3299 306.3983 307.9936 309.1032 309.8337 310.6958 311.5214 310.8344 310.0118 309.2924 308.8647 308.144 307.2209 306.6247 306.168 305.3106 304.5965 303.8513 303.2203 302.6805 303.2171 304.5812 305.4578 305.9521 306.7057 306.4231 306.5616 306.1743 305.4789 304.7439 303.8508 303.0972 302.6741 301.9412 301.9488 301.7539 301.9848 302.8836 303.1452 302.4361 301.2277 300.6162 300.2322 300.1458 300.0601 299.3891 298.586 296.9256 295.0443 293.7224 292.911 290.6451 290.3128 288.6877 286.9615 285.6693 284.871 283.5203 282.483 281.3076 280.0508 278.5718 278.3133 278.254 278.5342 278.6558 278.5328 278.6179 278.2916 277.2182 273.7406 273.2893 272.2661 271.0923 269.6745 269.9029 269.0807 268.0835 265.7182 261.7841 259.3847 257.014 254.6994 253.213 252.0735 251.3635 250.0103 251.1267 253.4442 254.4886 255.628 256.5742 257.5244 258.2164 258.8049 259.4016 260.5175 262.5193 262.708 262.3719 261.58 261.2488 261.3776 262.3217 262.8558 261.8035 261.8819 263.3318 264.1553 265.0085 266.1984 266.6163 266.0778 264.4789 262.1994 257.3855 253.9792 248.4265 245.5008 246.9568 252.9109 254.5676 254.8658 254.3528 250.9164 248.8547 247.9882 243.6268 241.7799 241.8414 242.2747 242.0397 243.8002 250.9948 254.024 256.36 257.5245 259.1814 261.8146 263.0531 262.4446 261.5318 259.2416 251.3794 248.2748 246.2067 243.1522 240.8693 238.7259 239.9374 239.6473 239.5516 240.8559 243.9062 245.7087 247.7119 248.9827 251.0555 251.723 250.3352 250.9742 250.5551 247.8384 246.1276 245.1555 249.471 253.2724 256.0714 258.9441 261.6017 264.9466 265.5105 266.3185 267.0795 267.8844 268.8363 270.0791 270.3752 269.4941 269.3516 269.3796 268.0528 266.549 265.2124 263.6281 262.3576 261.2254 260.0262 256.5786 256.0805 256.9045 257.143 256.9093 255.4272 253.4819 251.0246 249.1519 244.835 243.7668 241.0339 236.7876 236.1259 234.0266 237.3524 237.4478 237.0792 236.2606 236.0016 235.9664 236.0089 235.8013 235.9393 235.9458 236.177 235.9078 236.1954 236.3606 236.7684 239.4488 244.6445 248.2909 250.8664 252.7305 254.3388 254.9943 255.0586 255.2802 256.0872 256.6045 256.1406 255.2881 253.916 252.7137 251.5605 249.3989 250.8503 252.4429 253.6532 255.3115 257.9966 258.9397 259.5764 260.2873 261.9559 262.4315 262.8005 262.9333 260.7676 258.1247 256.164 254.8542 253.9754 255.2835 256.9183 258.9652 259.9802 261.671 263.2965 264.8085 266.5911 267.7776 269.1767 267.9863 266.6689 264.7226 263.0139 261.5593 260.6286 259.2691 257.859 255.4672 254.9283 253.8952 252.5949 250.6927 246.104 244.5594 244.4933 244.2877 250.994 251.7739 252.5435 252.8148 252.9441 253.6039 254.6773 256.1564 258.3311 264.2991 266.3934 265.8598 264.325 266.1606 267.0411 267.0997 265.9622 266.1523 266.2106 265.8238 265.4271 265.3398 265.1593 265.8768 266.4011 268.0784 269.9983 272.0574 273.6848 274.1155 274.5964 275.2898 276.173 276.3007 276.6917 276.9634 275.3066 271.1009 269.451 268.5359 268.6838 268.8344 268.9876 269.4414 270.0167 270.7557 271.6893 271.4054 270.1983 268.5018 267.4251 265.3123 262.298 258.8361 254.8664 252.0829 249.8086 244.1587 243.3754 243.3322 244.0997 247.3932 248.2065 250.0515 254.1512 255.2936 255.8686 -9999 -9999 +-9999 291.9974 291.7515 289.8958 288.1419 287.0232 285.7983 285.2605 284.3232 283.5402 284.6885 287.3558 285.9836 282.9169 283.1797 283.1645 283.0443 283.6204 285.2354 285.3352 283.5531 282.9042 282.8932 282.2016 282.3571 282.4886 284.6081 289.6736 292.0551 294.7931 297.7045 299.4023 300.355 299.2141 298.8241 298.4286 296.8228 295.713 294.9499 297.7263 299.2265 300.8207 304.6604 307.0258 309.1346 311.0953 312.8506 314.2256 315.1825 315.372 314.9047 312.4898 311.1992 311.0786 310.217 309.1715 307.3063 306.1691 304.275 308.3499 309.8192 314.5307 317.7421 320.5406 322.5347 323.0305 322.2946 322.3431 322.4784 322.6314 322.3002 321.7773 321.386 322.1253 322.4385 323.5301 325.1698 327.1218 328.3626 327.8083 326.2249 325.2834 324.7426 324.1444 323.2368 319.0287 316.4414 316.1358 319.2588 322.1076 324.1331 325.5069 326.9995 328.311 329.761 331.0504 332.7547 334.1125 334.0276 334.4725 336.2614 337.8588 339.3105 340.0552 339.6035 339.5602 331.621 326.4861 322.9818 324.044 326.8774 329.155 325.4495 321.7283 321.9849 325.0216 324.737 323.1813 318.509 313.4713 310.4589 310.3239 311.2376 314.5638 314.7258 312.8665 312.8117 313.9247 313.0622 312.1982 311.1953 310.0721 308.8729 306.4358 306.4168 306.569 305.0984 301.0062 306.878 307.6658 307.2501 307.0224 308.4969 309.61 309.1013 308.1711 308.1411 308.1855 307.1205 305.238 302.8271 300.7674 299.2996 300.8677 301.7163 303.5616 305.6418 307.6522 309.405 310.5972 311.3866 311.9644 311.2163 310.4815 310.0774 309.4801 308.7546 307.9156 307.3486 306.7822 305.6389 305.2822 304.8905 304.4583 304.0023 303.771 304.0945 304.6218 305.101 305.7924 306.0465 305.9839 305.8544 305.6037 304.872 303.6801 302.9709 302.005 300.6761 300.5413 300.8471 301.3192 302.5664 303.4769 303.0436 301.7271 300.7363 299.6829 299.5204 299.4049 298.5385 297.3926 296.2591 294.6129 292.9897 291.5159 289.1173 288.688 287.7707 286.2241 284.592 283.4742 282.4859 281.7369 281.1518 279.0598 278.1648 277.2327 276.8789 276.597 276.0614 275.8307 275.6501 275.1961 274.0366 270.6833 269.8019 268.6018 267.4364 265.5528 264.7726 264.8337 264.2063 262.2497 257.5792 255.1555 253.8558 252.4768 251.9814 252.4324 250.6964 250.4816 250.4308 252.3241 253.4395 254.7362 255.3638 256.0777 257.0566 257.6944 258.4621 259.8858 261.6004 261.6578 260.9337 260.09 260.2161 261.2008 262.3123 262.7088 261.8402 261.1351 261.9059 263.2606 264.2636 265.33 266.2813 266.0731 265.1768 263.0738 258.9733 255.9884 250.8061 245.8516 245.6452 248.5098 250.6274 251.0601 250.1635 248.701 248.8547 247.9882 243.6268 241.7799 241.8414 242.2747 242.0397 243.8002 250.9948 254.024 256.36 257.5245 259.1814 261.8146 263.0531 262.4446 261.5318 259.2416 251.3794 248.2748 246.2067 243.1522 240.8693 238.7259 239.9374 239.6473 239.5516 240.8559 243.9062 245.7087 247.7119 248.9827 251.0555 250.7408 248.9082 249.971 248.8682 245.6376 244.7056 247.1816 250.9357 253.8777 256.3068 258.7145 260.7209 263.749 265.2488 265.3384 266.2159 266.9115 267.9662 268.9619 269.5127 268.9587 268.604 268.8251 267.2906 266.0012 264.7872 263.4817 261.5732 260.4559 258.3532 255.0353 254.0065 253.8411 254.1328 254.0698 252.9762 251.2625 248.628 246.0384 242.9726 242.4192 240.4328 236.8706 234.1532 236.3697 236.748 237.4861 237.229 236.4889 236.2705 236.1144 236.1635 236.0952 236.0519 236.0168 236.2197 236.1216 236.1615 236.5812 239.86 245.6971 249.6073 251.3052 253.2555 254.7749 255.9566 256.4607 256.1178 255.8823 255.7837 255.5758 255.0301 254.4175 253.182 252.1362 251.0677 249.1269 250.8019 252.7086 254.3098 255.957 257.9855 259.6325 262.2501 262.8759 263.0538 262.7813 263.0275 263.3307 262.8272 260.7582 259.1824 257.699 256.7386 257.1049 257.9627 259.6634 261.3463 262.959 264.3457 266.0373 267.3428 268.8408 268.492 267.1637 265.7811 264.1148 262.7966 261.9717 260.6627 259.7968 258.5195 255.0201 253.0486 252.8808 251.1927 248.0143 244.4811 244.0567 243.9184 246.8431 254.4175 256.8714 256.2992 256.4142 257.4436 258.3931 259.467 260.8911 262.9191 267.8198 269.9248 270.3685 269.7019 269.4868 270.4518 270.418 270.024 270.4102 271.1637 271.2086 270.6786 270.1442 270.2943 270.3919 270.5994 270.8529 271.9133 273.2031 275.3144 275.9705 276.2826 276.5827 277.2 277.2602 277.1762 275.5659 272.7563 268.5966 266.9913 266.3478 266.5317 266.7418 266.6777 267.4221 268.3913 269.0065 269.7621 269.8618 270.2181 270.1299 269.1503 264.2308 259.2626 259.0823 256.0712 255.1586 252.9477 250.9379 244.1767 243.2526 243.2279 243.519 246.4268 248.0336 253.1238 253.4786 254.2641 -9999 -9999 +-9999 287.5613 288.4208 287.2238 286.5921 285.8004 285.4971 286.834 286.3768 289.566 292.4895 293.9037 292.1208 286.0626 283.0225 282.7649 282.9586 282.5544 282.8797 282.7432 282.4038 282.2432 282.471 280.7878 282.6419 283.0427 284.9302 288.3336 290.955 293.1796 295.3188 295.7517 295.9118 294.0652 293.9092 293.2516 292.4821 292.9992 294.3388 296.2408 298.5495 299.8996 304.0938 306.67 308.8196 310.7651 312.2366 313.6026 314.7384 314.6041 313.4134 310.398 307.9387 308.2002 307.1671 305.0754 303.6773 302.6361 306.1697 310.6674 312.8873 315.3914 318.6697 320.9019 323.7609 325.4144 325.8468 326.3797 325.5652 324.8555 324.5447 324.0703 323.9911 323.8878 324.0745 324.0709 324.5783 326.2036 327.7922 326.8932 325.2738 324.0154 323.1865 322.4891 321.7038 320.0137 316.2039 314.5749 317.8459 320.571 322.1226 323.7262 325.3843 326.6495 328.2451 329.5468 330.9158 331.7013 332.6859 335.2539 336.7093 337.6994 338.6864 338.8437 339.068 339.206 336.7322 332.7023 327.8745 321.6413 320.1175 323.0973 323.0644 322.2924 321.6748 321.4384 321.8518 321.5483 319.5486 315.8503 309.7758 308.7096 310.2055 312.9602 313.5528 311.9144 310.7962 311.989 311.4843 310.8237 310.2741 309.5874 309.1079 305.9256 304.3888 304.1187 304.6547 299.6481 304.3837 305.0902 305.8396 307.0952 308.6116 308.8178 308.2721 307.7618 307.4947 308.2361 307.6787 306.9913 306.0769 304.3198 298.6278 298.4878 300.3563 303.1653 305.736 308.2306 310.0283 309.1037 309.8647 312.183 311.7614 311.0805 310.1942 309.411 308.8414 308.2736 307.6638 306.8906 305.4826 304.7649 304.3898 304.2513 303.7234 302.9626 302.8451 303.8122 303.985 304.9416 305.166 305.3908 305.2993 305.0626 304.5288 303.7186 303.074 302.3256 299.7985 298.7957 299.0407 300.3714 301.98 303.1137 302.9168 302.0024 301.107 298.9966 298.7164 298.6493 297.6208 296.1403 294.494 293.1174 291.6441 290.3331 287.5038 287.0292 285.8202 283.9677 282.7233 281.6424 280.3539 279.5409 278.6149 277.101 276.0433 274.963 274.3802 273.3607 272.6435 272.4673 271.9807 271.3351 270.6223 268.425 266.5983 264.8694 262.6366 260.1529 258.3465 258.5993 257.9386 256.5157 258.0118 254.2045 254.5334 253.7813 254.5893 254.5998 253.577 251.2978 249.5729 251.2781 252.5371 253.4019 254.2553 256.0777 257.0566 257.6944 258.4621 259.8858 261.6004 261.6578 260.9337 260.09 260.2161 261.2008 262.3123 262.7088 261.8402 261.1351 261.9059 263.2606 264.2636 265.33 266.2813 266.0731 265.1768 263.0738 258.9733 255.9884 250.8061 245.8516 245.6452 248.5098 250.6274 251.0601 250.1635 248.701 246.9353 244.3375 242.2023 241.9118 242.2758 245.2008 248.2519 249.2494 253.7403 256.8975 259.9319 261.6604 261.046 262.8724 264.7345 265.2448 265.2572 258.3723 253.5697 250.1766 246.7084 243.7451 240.8037 239.8199 239.9047 239.7496 239.4215 239.0379 240.5986 244.9184 246.4021 248.7114 249.9239 248.6023 246.2081 248.55 244.8156 243.5959 245.6824 248.0842 250.6289 253.7098 256.5611 257.6075 259.3279 262.5 263.9183 264.4202 264.8771 265.5862 266.3327 267.2131 267.6889 268.0546 268.3217 267.3954 266.7905 265.376 264.341 263.2868 261.4512 260.2878 257.6573 253.2448 251.8661 250.2399 249.8174 250.6373 249.8501 248.1716 245.9179 244.6204 242.1934 240.2458 238.8745 237.4109 234.035 236.8387 236.708 236.6278 237.2189 236.6689 236.537 236.3665 236.2853 236.2975 236.3219 236.1605 236.0522 235.8985 236.4903 236.8392 243.6578 249.4904 252.4337 254.2476 255.3454 256.3926 256.9022 256.6098 255.8691 255.6304 255.2074 254.8547 254.3568 253.7087 252.7756 251.5985 250.4686 248.2627 249.3206 250.6808 252.8175 254.8892 256.7984 258.5399 259.7431 260.5792 262.0911 262.8395 262.4761 262.929 263.4338 262.8511 261.7022 260.2336 259.2338 259.3205 260.1118 261.4174 262.718 264.2337 265.118 266.6104 267.5954 268.1818 267.0602 265.4418 263.7956 262.6208 262.2163 261.333 260.2959 258.8612 257.4203 254.1762 253.5014 251.3167 250.2936 247.5106 243.6435 244.1857 245.6129 248.1796 255.3132 258.2364 259.5256 259.7186 260.6945 262.8377 263.4889 265.1388 267.229 270.649 272.6671 273.461 273.2686 273.0342 272.9951 273.2935 273.786 274.2247 274.6133 275.072 274.7144 274.2243 273.6277 273.3583 273.4851 273.5557 274.0713 274.7499 276.7443 277.7204 277.721 278.0851 278.7993 278.3922 277.046 274.2094 270.9802 266.8136 266.0363 264.2718 265.1603 265.6828 265.2794 265.7371 266.8809 266.6072 267.7938 267.8378 268.4124 269.7583 270.2512 266.662 261.8324 261.7302 261.3992 258.026 256.083 253.2051 246.9855 243.163 243.1417 243.123 245.0873 247.6044 251.3728 251.8483 252.7056 -9999 -9999 +-9999 288.9366 287.8427 287.8018 287.3703 288.3338 289.9648 290.8349 290.0625 292.5912 295.2036 296.8233 296.1814 291.2252 283.7321 282.7271 282.6762 282.7369 282.876 282.2678 282.5683 282.3574 282.2207 281.7447 282.0497 282.1459 282.5229 284.9392 288.2108 291.1516 292.2299 291.6588 291.4796 289.5791 293.3328 294.7133 295.082 295.456 294.7588 295.8044 297.8233 300.1729 304.5876 306.7795 308.8267 310.6043 311.5868 312.9039 313.1302 312.8418 312.028 307.8139 306.498 304.8926 303.151 301.4416 303.177 305.5801 307.5226 309.3863 314.4631 316.6159 319.428 322.1363 323.6507 325.7744 326.8984 327.1603 327.1582 327.0818 326.6561 326.3932 326.0515 325.7614 325.9454 326.0245 325.8977 326.3018 327.3164 325.9755 324.5652 323.4893 321.653 320.0422 319.2997 318.1107 316.2808 314.5463 316.0789 318.0674 320.0015 321.6508 323.7336 325.4726 326.8238 327.8066 327.8329 330.732 332.5848 333.7588 335.1828 336.6566 337.8316 337.5897 337.5081 338.3449 337.2178 333.24 328.1542 323.0953 322.285 318.9522 316.5433 317.7543 316.2135 318.4218 318.8553 318.7997 317.7035 315.9782 310.5328 308.6932 308.971 311.6099 312.5056 310.9156 309.8432 310.0475 310.3186 309.2975 309.1801 309.181 308.5403 305.6331 303.5398 302.1989 301.5651 298.9636 301.5894 303.3711 306.4419 307.8257 309.0451 308.2839 307.5468 306.8135 307.1226 307.9029 307.8276 306.9954 306.278 304.9816 297.9861 299.2612 299.5671 301.8109 304.5848 306.7274 307.5631 308.163 310.6806 312.4969 311.6743 310.8742 310.2505 309.3816 308.5165 308.0509 307.5695 307.0964 305.2306 304.4308 303.741 303.4435 303.129 303.1394 301.9271 302.2432 302.918 304.366 304.4405 304.3311 304.0539 303.7225 303.1944 302.8754 302.365 301.7202 299.6951 298.1497 297.6615 299.2947 300.8427 301.858 302.6309 301.8582 301.1786 299.0002 298.2759 298.1505 296.9887 294.8221 293.3678 292.1777 290.7028 289.1914 286.15 284.563 283.6563 281.7972 280.0163 278.3783 276.9688 275.548 273.9378 273.0793 276.0433 274.963 274.3802 273.3607 272.6435 272.4673 271.9807 271.3351 270.6223 268.425 266.5983 264.8694 262.6366 260.1529 258.3465 258.5993 257.9386 256.5157 258.0118 254.2045 254.5334 253.7813 254.5893 254.5998 253.577 251.2978 249.5729 251.2781 252.5371 253.4019 254.2553 254.9983 255.981 256.9984 257.9658 259.0037 260.3959 260.3297 259.6728 259.0771 259.4662 260.8645 262.0014 262.4485 261.3937 259.5699 260.7333 261.8789 263.1853 264.6181 264.9436 265.4648 264.7892 263.6419 259.772 257.7237 253.6994 248.6797 245.6519 245.0963 246.155 247.0784 246.8529 246.626 243.0458 242.1199 242.0363 241.6932 244.6586 248.2944 251.404 253.789 257.1015 259.406 261.8246 264.6885 264.9909 264.7729 265.9877 266.8875 265.7039 258.2495 254.7011 250.4984 245.0156 240.8917 239.5284 239.8472 239.4305 239.5571 240.0023 238.9527 240.147 244.3584 246.266 247.4541 247.9689 247.0013 246.6548 246.0427 243.3098 245.2252 246.5605 248.3433 251.4975 254.1517 256.2518 257.1633 258.3599 261.0411 262.148 262.943 263.6476 264.3017 264.7409 265.2854 266.2055 267.2681 267.4773 266.9016 266.277 264.8632 263.6286 262.8125 261.7358 260.1651 258.2572 252.6485 249.9203 248.437 247.8015 247.578 247.2924 246.0359 244.9899 243.801 241.7249 240.8431 240.1183 239.1611 234.9605 237.0397 236.365 236.0116 236.7464 236.8038 236.5036 236.3688 236.355 236.3 236.2912 236.257 236.2758 236.4668 235.7139 235.3946 235.5358 249.1978 254.3491 255.2343 256.2182 256.2485 255.5681 254.0811 253.9436 254.2832 254.1544 253.8964 253.1399 252.5092 251.9354 250.9076 249.8265 247.7271 247.7209 248.9765 250.7312 253.087 254.904 256.1844 257.1704 257.7909 258.6903 259.4129 260.0206 261.5965 263.2256 264.1932 263.9855 262.5506 261.6983 261.5597 262.4075 263.9577 264.0714 264.1611 265.2545 265.9972 266.6696 267.3694 265.5006 263.6653 262.4262 261.1877 260.994 260.6555 259.4652 258.5807 256.0948 253.288 252.1215 251.3862 249.2738 246.3684 243.8689 243.8254 245.9193 249.4784 256.5111 259.0272 261.2552 262.1058 262.7794 264.6383 266.1904 267.6534 269.5062 272.2097 273.4745 274.8287 275.2879 276.0943 276.476 276.2957 276.7343 277.4839 278.326 278.8743 279.1815 278.4862 278.1025 276.8811 275.9685 275.364 275.2947 276.3361 277.5589 278.3077 278.6285 279.1414 280.5071 279.4182 277.5477 272.4149 266.3474 264.2944 263.9659 263.0322 261.9793 263.5374 263.2849 264.6361 264.8918 265.156 266.4047 266.3738 266.6436 267.7754 269.1602 270.6425 269.2557 266.6578 264.2603 259.6424 257.8064 254.0287 244.6841 243.0715 243.0521 243.0335 245.0685 246.9116 249.5237 250.4312 250.8961 -9999 -9999 +-9999 289.6226 291.9333 290.6677 290.8797 291.2736 291.8883 292.3413 292.5134 293.5272 296.0163 298.4757 299.4801 294.8202 289.6261 283.1509 282.7051 282.4902 282.3789 282.2743 282.4141 281.2297 282.4262 282.3647 282.0652 282.0381 282.189 282.6953 286.0438 287.9133 287.6746 286.7989 288.1778 295.8716 299.5237 300.3757 299.4954 299.5523 299.0881 298.8919 300.2774 302.0629 304.9283 306.8974 308.2437 309.5556 310.8446 311.1524 311.2381 311.1808 309.9462 305.5761 303.4177 301.8825 299.8675 301.2745 303.5716 307.2479 309.9935 312.1081 314.2615 315.9277 319.2443 320.9385 323.4602 324.8892 326.3436 327.313 327.3693 328.5428 328.6534 328.4387 327.8875 327.576 327.373 327.9413 327.8207 327.3894 327.8358 326.0573 325.1893 324.1163 322.5587 321.5331 320.0972 318.5326 315.3887 313.9231 314.0255 315.7532 316.9666 318.6636 321.1795 323.6255 324.9366 325.2555 326.5122 329.7265 331.0544 332.9491 334.7087 335.9049 336.4825 336.1112 336.5372 336.911 336.814 333.86 330.6997 328.9897 329.7165 329.6455 324.9488 316.0742 312.2308 313.9914 316.3876 315.7196 315.235 314.2316 310.6653 305.8878 307.1425 309.5631 311.4851 309.779 307.8197 308.2052 309.0077 308.5234 307.9846 308.2256 307.8277 305.2557 303.1748 300.6396 300.8949 296.7007 302.4404 305.4986 307.2069 308.5709 309.4594 307.8213 306.3724 305.766 306.3498 306.831 306.7491 306.4907 305.192 303.8596 297.2226 297.8525 299.4254 302.3553 303.7934 305.1996 306.449 308.3026 310.3753 311.5018 310.8759 310.1185 309.3997 308.9863 307.9472 307.2599 307.4164 307.269 305.4608 304.6296 304.2353 303.8457 303.074 301.959 300.901 300.9405 301.6377 303.2657 304.1224 303.8008 302.8903 302.1886 301.5818 302.8754 302.365 301.7202 299.6951 298.1497 297.6615 299.2947 300.8427 301.858 302.6309 301.8582 301.1786 299.0002 298.2759 298.1505 296.9887 294.8221 293.3678 292.1777 290.7028 289.1914 286.15 284.563 283.6563 281.7972 280.0163 278.3783 276.9688 275.548 273.9378 273.0793 271.8016 270.6554 269.8926 268.9541 268.378 267.7558 266.8676 266.0002 264.6961 263.3908 259.3063 258.9223 259.126 260.1182 262.2922 259.7025 260.5569 256.9319 256.5297 257.9979 259.4061 258.6309 257.6314 258.4664 258.4894 256.1245 250.9477 249.9195 251.2603 252.5788 253.2481 254.2332 255.0899 255.9513 257.0876 258.1737 259.531 259.172 258.4214 258.4753 259.2046 260.2464 261.3068 261.8496 260.9408 258.9577 259.2304 260.9981 261.9777 263.1071 263.5511 264.0397 263.9133 262.9066 259.5395 257.6735 255.1026 250.8812 246.8503 244.1778 244.3138 243.9127 243.7599 243.0268 241.9723 242.091 242.032 244.5822 247.9088 250.5977 254.1594 257.5793 261.6311 263.3874 265.7815 268.008 268.2668 267.6142 267.4819 266.6326 263.9666 255.923 252.2024 247.0922 240.3127 238.9904 239.0682 239.2938 238.4105 239.4024 239.4606 238.963 239.6707 242.664 244.5613 246.1282 246.6618 245.9693 244.0684 242.3795 243.8075 246.2457 246.6568 246.5219 250.2567 252.2871 254.2667 254.543 256.9494 259.5639 260.1862 261.7936 262.2894 262.9795 263.8466 264.498 265.3687 266.8053 266.9101 266.5569 265.3369 264.2313 263.2987 262.5748 262.0336 260.4345 258.8645 253.3703 250.4049 248.0881 247.1396 246.7089 245.587 244.9452 244.1899 243.0342 240.5463 239.6798 239.2251 238.8469 238.8659 234.0358 236.9088 235.8568 235.8869 236.9907 236.8345 236.7148 236.5579 236.4738 236.4557 236.1658 236.0074 235.6502 233.917 236.0791 236.2727 233.7728 245.075 253.9801 254.8445 254.1816 253.081 251.8079 251.7481 252.0055 252.0091 251.7379 251.1166 250.5402 250.5071 249.6348 248.1133 247.032 246.8593 248.0055 249.6944 251.2123 252.5858 253.5739 254.4257 254.8382 256.3557 257.4411 258.8836 261.2155 263.1723 264.6429 265.1121 265.0475 264.2101 264.4344 264.8094 264.9349 264.0626 263.7028 264.7005 265.5397 266.4172 266.2259 263.1962 261.6741 260.7883 260.0567 259.949 259.929 259.404 258.3735 256.2357 252.7286 250.5291 250.063 248.3307 243.3499 243.5918 242.912 245.9917 250.9598 257.7718 259.1384 260.473 261.7806 262.4206 263.1092 265.2565 266.603 267.5611 271.1794 272.5971 274.2479 275.667 276.7188 277.501 278.179 278.7327 279.3793 280.951 281.7529 282.1151 280.8705 281.3654 279.6555 278.0264 277.5904 276.9457 279.3441 279.7885 279.8857 280.6397 280.3368 281.7178 280.2327 277.8607 272.4797 264.7193 261.0352 261.5536 261.7989 260.545 260.2026 261.523 262.8312 263.7084 263.7506 264.1518 264.6168 265.4706 265.8313 266.8575 268.1219 268.484 267.9784 265.1822 261.0895 258.5512 254.8682 247.847 242.9889 242.9648 242.9378 242.9151 243.8111 247.2932 248.1629 248.8882 -9999 -9999 +-9999 291.7727 294.3993 292.0214 293.088 293.4029 293.8919 293.9275 294.6678 295.2567 296.4444 299.2982 300.7912 297.6989 293.3828 286.0353 284.7774 283.5187 282.8602 282.868 283.1699 283.279 282.9717 281.4796 282.2731 281.9658 282.1547 282.3734 284.8523 285.9595 285.8936 288.629 292.112 299.0677 301.2178 303.0836 303.3067 303.0203 302.3936 302.2627 302.4522 303.6096 305.3453 306.9658 308.5784 309.2847 309.8394 309.8763 309.7609 309.5107 308.1609 303.4474 299.8343 298.9117 300.494 303.0548 305.6319 308.8863 311.5355 313.5414 317.4901 318.007 318.114 320.3053 322.8554 324.446 326.7267 328.977 330.6393 331.2346 330.922 330.5121 330.1039 329.8023 329.7116 329.9095 329.5226 329.192 328.9352 326.5327 325.3709 324.3539 323.1936 321.8614 319.9434 317.9371 314.9789 313.8968 313.731 314.4233 315.6966 317.1669 318.9776 321.175 322.5961 324.001 325.615 329.0633 330.8381 332.6151 333.9516 334.9686 335.0861 334.6599 335.0219 335.2831 336.7298 336.0182 333.9842 331.3463 330.8216 327.8098 324.9628 323.1532 316.8766 310.3163 310.7544 312.0778 310.6138 310.166 309.1676 305.6325 304.8716 307.4186 310.3743 309.1188 306.2352 306.3579 307.2946 307.4825 306.7121 306.5509 306.5916 304.4293 302.7773 299.3735 299.6454 295.9762 302.1915 306.1736 307.7408 308.8306 309.0601 307.309 305.5891 305.0022 304.9855 305.1982 305.821 305.2625 304.0923 303.0047 296.5747 297.1159 299.6447 302.0569 303.7934 305.1996 306.449 308.3026 310.3753 311.5018 310.8759 310.1185 309.3997 308.9863 307.9472 307.2599 307.4164 307.269 305.4608 304.6296 304.2353 303.8457 303.074 301.959 300.901 300.9405 301.6377 303.2657 304.1224 303.8008 302.8903 302.1886 301.5818 301.4482 300.9651 300.3115 298.8518 297.3622 296.8793 297.6671 299.2187 299.9317 300.6206 300.4149 301.0614 299.0843 298.1719 297.6893 297.0974 295.5996 294.7417 294.3551 293.0802 291.6906 288.7219 287.0026 284.4847 280.8062 279.3375 276.5019 273.7343 272.8809 272.6693 273.2402 268.3277 267.171 266.4475 265.6857 265.0002 264.4475 263.4096 261.9656 262.8739 263.1024 263.799 265.2526 267.0461 266.5956 265.7336 267.0927 266.6712 265.6924 262.9715 262.2021 261.6938 260.7217 261.9943 262.3641 261.6323 258.4818 254.5293 249.8766 250.4532 251.5133 252.7775 253.2194 253.8509 254.9983 256.3247 257.318 257.9021 257.1812 257.4171 258.1314 259.0267 259.9661 260.9626 261.6207 261.11 258.3065 258.4514 259.2353 260.5513 261.741 262.3929 262.2059 261.9529 261.9761 256.8626 256.1653 255.3252 251.8259 248.9435 245.4941 243.5265 243.4526 242.9953 242.3166 242.2401 241.7491 244.2879 249.0205 251.6929 254.9166 257.7877 260.3933 265.81 268.0959 269.566 270.8478 270.1809 268.9867 266.5133 263.4968 261.023 252.8742 245.7743 239.6381 238.4987 238.7764 238.7748 238.7929 238.4446 239.2167 239.3089 238.7636 239.3631 240.0613 242.545 244.5157 243.7661 242.5668 241.7323 242.536 247.8411 249.1118 250.74 250.6868 249.0632 249.4716 251.3736 253.0104 253.0644 258.0785 259.3682 260.3831 261.3274 262.7671 262.9995 263.7096 265.1252 266.3827 266.6754 265.7455 264.0332 263.4498 262.951 262.8262 262.8529 262.6406 261.0334 256.4181 253.4093 249.9944 247.0587 245.5132 244.4545 244.4054 243.3478 242.3148 240.6703 239.3543 238.8532 238.4099 237.8202 235.1178 234.7756 236.3528 235.5203 235.501 236.0067 233.8729 233.8501 233.9254 235.9703 235.8973 233.94 234.5337 236.6076 236.3252 235.9489 233.7411 236.7033 247.365 252.1805 250.467 248.8418 248.3024 248.4127 248.9509 249.0886 249.0937 248.8657 248.2754 247.8727 247.2164 246.6367 246.1476 246.1306 247.0057 248.6012 249.8464 250.8028 251.8025 252.5054 253.0592 255.0045 256.9557 259.3218 261.5312 263.4858 264.916 266.0234 266.0909 265.302 265.1228 265.2534 264.8556 262.9575 263.3485 264.3549 265.3057 265.4849 264.3096 261.2203 259.7523 259.0766 258.7217 259.0653 259.1589 259.1054 258.5371 257.2994 253.5341 251.1394 249.0316 245.7092 243.2816 243.3421 244.4609 247.1303 252.0576 257.0042 257.8015 258.9679 258.9984 258.2882 258.6593 259.2777 263.326 263.2722 269.2969 271.2933 273.3427 275.1315 276.3363 277.5355 278.7206 279.6327 280.48 281.8897 283.0684 283.4445 283.6201 283.682 282.598 280.798 280.1364 278.9896 281.4799 281.6066 281.3626 282.2905 282.6098 282.7936 281.3109 277.781 273.0065 266.9743 261.2889 260.4995 259.8486 259.9961 256.6886 258.2558 260.1272 261.3651 260.6667 263.0743 263.6315 263.5916 263.6279 264.1282 264.8775 265.4455 265.7196 264.4709 261.0895 258.9337 255.893 250.9501 242.8755 242.878 242.8535 242.8245 242.7837 245.975 247.4017 248.5742 -9999 -9999 +-9999 294.8006 295.9345 293.695 296.1835 296.5058 295.903 295.9804 296.9034 297.453 298.3541 299.6686 300.9257 298.8124 295.5633 287.3127 287.6839 287.3228 286.9497 286.6455 286.864 287.0471 287.1923 284.7949 282.2318 281.9656 281.897 282.4891 283.2712 286.9659 288.0835 291.4233 294.1081 299.7728 302.3299 303.9383 305.5746 306.343 305.456 304.6816 304.807 305.2589 305.4716 306.7681 307.9018 308.9314 308.5013 308.6353 308.1956 307.3365 306.209 300.7793 296.631 299.8899 303.1754 306.3244 308.85 311.1217 313.1871 315.0099 319.2473 320.7128 321.3557 322.0941 323.5124 325.5515 328.1342 330.5434 332.2359 334.1592 333.8677 333.4091 333.2168 333.2794 333.4367 332.545 331.5073 331.3065 330.3181 326.9899 325.9461 324.8416 323.1551 321.2206 319.5346 317.0314 314.8007 313.8548 313.8455 314.0901 315.8466 316.9698 318.7365 320.6012 322.0296 323.5606 325.034 328.9992 330.5005 331.977 333.1547 334.0297 334.1261 332.9074 332.9338 333.3048 336.4109 336.5199 334.6568 333.4847 331.1982 330.8947 332.5238 330.4709 325.1314 310.5133 307.6292 307.0426 306.3022 305.611 305.0319 303.4253 302.176 303.607 308.925 308.6227 306.5298 306.3579 307.2946 307.4825 306.7121 306.5509 306.5916 304.4293 302.7773 299.3735 299.6454 295.9762 302.1915 306.1736 307.7408 308.8306 309.0601 307.309 305.5891 305.0022 304.9855 305.1982 305.821 305.2625 304.0923 303.0047 296.5747 297.1159 299.6447 302.0569 303.4177 304.3763 305.4619 306.7732 308.6358 310.2549 309.5469 308.9971 308.3233 307.8069 306.8526 306.4507 306.6277 306.8572 305.8948 305.1337 304.6894 304.2117 303.4074 302.1622 300.9826 300.1488 300.1496 302.1663 302.9549 303.1522 302.4208 301.5515 300.6043 300.6657 299.4493 299.0439 297.8211 296.6983 296.1521 296.6576 297.6978 298.1229 298.6543 299.3428 300.3625 299.1193 298.0448 297.4048 297.2542 296.8672 296.394 295.5526 293.7949 292.5411 290.5575 288.9095 286.4639 282.526 278.5535 276.0731 274.1329 272.8168 272.5645 270.4127 268.6375 267.7554 266.8636 265.7364 264.8293 265.4617 264.7582 266.1202 267.9198 268.4058 270.9456 272.0276 271.3528 270.6964 268.9306 270.7173 270.1974 268.8916 266.3621 266.1416 264.5553 264.5226 265.0074 265.0226 264.1255 261.1792 257.9138 249.2336 249.5332 250.246 251.2831 251.9937 253.1602 254.16 255.4618 256.0409 255.7612 255.9512 257.218 257.6964 258.2122 259.2931 260.1741 260.9195 260.916 257.8127 257.22 258.0089 259.0802 260.2319 260.6088 260.3627 260.1335 257.9167 254.5523 254.1887 252.8918 251.3316 249.5634 245.4413 243.1614 242.9998 242.8406 241.8041 244.1658 247.765 251.2425 254.594 257.7452 260.1091 262.8439 264.3913 269.6438 270.3904 271.797 271.9305 269.997 267.3059 264.3124 261.1593 258.9741 249.4012 240.6295 238.7245 238.7004 238.8748 239.0262 238.8825 238.1257 239.4279 238.7736 238.6753 238.8195 239.5098 240.6379 240.5839 241.0254 241.3191 242.988 245.9678 249.8445 251.2141 252.2518 253.653 254.009 253.201 253.4164 254.0712 255.4778 257.1588 258.3381 259.5584 261.0515 261.9073 263.5074 264.1162 265.1654 266.2496 265.7022 264.6534 263.03 262.4439 261.8871 261.2421 261.7026 262.4635 262.0843 258.1659 255.3703 252.1313 249.2531 246.1921 244.0671 243.4696 243.1359 242.4335 240.3395 239.2536 237.7015 237.0972 235.2507 236.8056 235.2205 233.9549 233.7193 233.8314 234.463 236.4819 235.9223 236.0753 235.9727 236.7826 237.0759 237.0303 236.9721 236.3422 234.9202 235.1736 246.0674 251.1701 250.0612 247.1257 244.6945 244.4486 245.1862 245.6035 245.9294 246.0318 245.9314 245.427 244.8377 244.2163 244.2351 245.4001 245.27 245.5866 246.9809 248.2954 249.5592 250.7858 251.1454 251.8552 255.0102 257.4131 259.582 261.4334 263.025 264.1793 265.2046 264.6577 264.8 264.2981 263.9188 262.8812 261.9671 262.7591 263.9806 264.7556 263.4815 261.7897 259.5786 258.5966 257.8417 258.0879 258.1486 258.289 258.8975 258.9365 257.9412 254.0911 251.5499 247.9547 242.1539 243.7374 242.6844 245.0002 248.297 251.7538 254.3719 255.6275 256.3993 256.0428 258.4475 260.9318 263.1945 265.4699 266.7669 269.4801 271.9854 273.5215 274.9076 276.3067 277.4734 278.7534 279.9992 281.3524 282.8767 283.5081 283.8002 284.4715 285.0193 285.2225 284.4524 283.179 280.2968 283.8491 283.7169 283.4352 283.7378 285.112 284.9438 280.3037 275.6246 272.4829 269.3386 261.9228 260.3905 259.5302 259.4464 255.9448 255.9343 256.5616 257.9665 259.5901 260.8338 261.4389 261.386 261.4207 260.8178 261.1045 261.6379 261.8211 261.3645 261.0895 258.9337 255.893 250.9501 242.8755 242.878 242.8535 242.8245 242.7837 245.975 247.4017 248.5742 -9999 -9999 +-9999 297.0035 297.3554 296.2915 300.3223 299.493 298.7914 298.9489 299.751 300.9938 300.6948 300.8272 300.0077 297.9192 294.6869 290.2323 291.0999 291.963 292.1228 292.1271 292.0833 292.6597 292.3313 289.2359 280.1293 281.9828 281.834 282.3752 283.1044 287.1407 289.3203 293.4108 295.6952 299.7219 301.7434 303.9986 306.1822 308.1367 308.0392 307.262 307.3793 307.1877 306.6624 307.1604 307.8292 307.4976 307.2509 306.7979 305.9218 304.3763 303.3833 296.4956 296.4685 299.3295 303.9338 306.4519 308.6063 311.6477 312.8559 315.5052 319.7031 321.5978 322.8672 324.2377 325.3957 327.1454 328.7651 330.836 333.0459 335.977 336.8837 336.8217 336.8941 337.4911 337.1591 336.2818 334.6864 333.3179 331.7229 328.2445 326.7204 325.1531 323.1667 321.2963 319.2499 315.7732 313.8128 313.8225 313.8199 313.8062 315.6172 317.5914 319.5609 321.7594 323.3517 325.0114 326.4378 329.2997 330.5005 331.977 333.1547 334.0297 334.1261 332.9074 332.9338 333.3048 336.4109 336.5199 334.6568 333.4847 331.1982 330.8947 332.5238 330.4709 325.1314 310.5133 307.6292 307.0426 306.3022 305.611 305.0319 303.4253 302.176 303.607 308.925 308.6227 306.5298 305.1411 305.4366 305.8931 306.1864 305.4644 304.7564 303.6967 301.5071 298.3221 298.0681 295.9655 301.8312 305.9477 307.3564 308.4295 308.4209 307.0134 305.3729 304.5956 304.6241 304.1023 304.315 304.3156 303.6012 299.3293 295.9255 296.3504 299.1128 301.4476 303.0696 304.8994 305.9323 307.1035 307.9189 308.8657 308.2504 307.7108 306.9689 306.6822 306.134 305.7149 305.7162 305.9366 305.613 305.6506 305.3174 304.5771 303.7122 302.2373 301.0467 299.8924 299.3192 300.7526 301.963 302.1122 301.4977 300.4546 299.1309 298.7518 298.4791 297.8493 296.9193 296.1699 294.9457 294.6351 295.4333 296.1512 297.1831 298.6233 299.5756 298.7813 297.4987 296.7422 296.7319 296.8623 296.59 296.136 294.4677 293.461 292.0977 290.4254 288.1419 285.4302 282.6907 279.3584 277.1029 275.1147 273.0564 270.8134 269.9218 269.1037 268.5708 269.7361 271.7914 272.6047 272.9262 272.3304 271.8612 272.6458 274.9861 275.0511 273.9326 273.5258 273.767 274.0703 273.3149 272.0452 269.3559 268.6653 268.0502 268.0453 268.7702 267.8074 266.1798 262.5313 259.4124 249.4824 249.2427 249.3717 250.0756 251.7632 252.6181 253.5167 254.375 255.0169 254.5288 255.8252 256.8595 256.1489 256.9737 257.8685 258.985 259.8341 259.9383 258.0212 256.6849 256.5622 257.8851 258.7707 258.9106 257.9152 256.8612 253.8919 250.5068 250.9241 250.2465 247.5827 244.9939 244.6147 242.9908 243.2151 243.1282 246.9153 250.0593 254.5827 257.5658 259.8041 262.6281 265.4684 266.8784 268.4209 272.2912 272.7139 273.2464 271.3698 267.5359 264.0655 260.6772 258.3523 255.9883 250.8048 241.0614 238.4902 238.5541 238.8041 239.0753 238.8887 239.4415 240.1007 238.7332 238.7264 238.9498 239.4207 239.6057 240.2283 241.725 244.059 246.3922 248.7024 251.1888 252.9049 253.9498 255.1044 255.5784 255.9571 256.0243 256.6725 257.3206 259.5768 260.0438 261.4447 261.7696 262.3939 263.3853 264.6535 265.6546 266.6354 264.9991 263.095 261.9728 261.066 259.9268 259.6718 259.9141 260.0417 260.14 256.5864 254.062 251.9503 250.0334 246.9417 244.081 243.1575 242.2727 241.9046 240.0914 239.0665 238.4427 235.5782 237.884 237.7773 237.6631 237.5025 236.8062 237.9244 237.8524 237.4774 237.0851 237.2506 236.6848 237.2204 237.1893 237.2234 236.1229 236.0873 233.7006 239.5984 248.7108 250.5293 248.7633 244.9772 241.8472 241.1881 242.2192 242.5813 242.5786 242.6405 242.3617 241.4364 241.2087 241.5169 243.5123 244.4569 244.228 244.244 245.1455 246.4527 248.2701 249.5837 249.6914 251.7416 254.9171 256.9604 258.8204 260.3641 262.0538 262.9999 263.3629 263.1245 262.8221 261.6962 260.8604 260.4581 260.9019 261.8263 262.9542 263.0099 261.4156 259.855 257.4765 256.9295 256.9094 256.9232 257.2268 257.5936 258.4905 258.9028 258.4029 253.6396 250.3257 245.4285 242.862 242.8727 244.4673 246.5831 248.5121 250.6577 253.5473 254.7123 255.6524 257.2439 258.7942 260.5746 262.7076 264.3365 265.5647 268.2661 272.3163 273.8492 275.527 276.8451 277.9366 278.7534 279.9992 281.3524 282.8767 283.5081 283.8002 284.4715 285.0193 285.2225 284.4524 283.179 280.2968 283.8491 283.7169 283.4352 283.7378 285.112 284.9438 280.3037 275.6246 272.4829 269.3386 261.9228 260.3905 259.5302 259.4464 255.9448 255.9343 256.5616 257.9665 259.5901 260.8338 261.4389 261.386 261.4207 260.8178 261.1045 261.6379 261.8211 261.3645 258.4949 257.0553 255.1518 251.2703 246.8771 242.7847 242.7586 242.6999 242.6425 245.4123 247.263 247.8564 -9999 -9999 +-9999 299.6744 298.1752 298.4096 302.0443 303.0658 302.1559 302.742 302.9257 303.4549 303.1835 301.9358 299.3065 296.5804 292.3391 294.885 295.3251 295.9586 296.8899 297.3562 297.6406 296.5012 292.6028 287.8725 281.7813 281.0658 281.5786 281.6169 283.4102 286.7598 289.3683 292.3918 293.7589 297.5111 300.2753 303.2669 305.9602 308.3657 309.6724 309.6074 308.692 307.7636 306.7685 306.88 305.9729 305.4247 304.9258 304.6988 303.4049 301.388 299.1225 295.7198 297.265 300.1151 303.0657 305.2453 307.6689 310.6955 312.9517 315.2607 319.6688 321.7492 323.1551 324.4049 325.3156 326.0838 327.2622 329.5421 331.7629 335.4255 337.0959 336.8217 336.8941 337.4911 337.1591 336.2818 334.6864 333.3179 331.7229 328.2445 326.7204 325.1531 323.1667 321.2963 319.2499 315.7732 313.8128 313.8225 313.8199 313.8062 315.6172 317.5914 319.5609 321.7594 323.3517 325.0114 326.4378 329.2997 330.5397 331.989 332.659 333.1895 332.9823 331.4045 331.7654 332.6407 335.7853 335.9858 336.0233 336.1261 334.686 334.6842 336.4349 334.0622 327.942 317.3538 314.1942 310.0579 305.9865 305.1293 302.4861 301.4198 300.8936 301.1017 307.282 307.5316 306.8807 303.9936 303.5536 304.2094 304.7188 304.507 303.3862 303.4605 301.6883 297.8188 296.8541 297.4019 302.7553 305.5422 306.7649 307.6118 307.4451 306.1849 305.1337 303.8798 303.0328 302.8174 303.0409 303.6191 303.2634 299.4899 295.8607 296.2368 298.412 300.8265 303.3499 305.2363 306.2217 306.4715 306.5916 307.8431 308.0292 307.3914 306.3778 305.728 305.3894 304.8891 304.8699 305.0917 305.3559 305.3723 305.0249 304.4936 303.6101 302.1669 300.9198 299.6067 298.5761 299.4004 300.5842 300.8013 300.0364 298.4133 297.0786 296.0979 295.9831 295.5899 295.852 294.3182 293.3333 292.8398 293.8789 294.7674 296.3743 297.8338 298.6458 297.8455 296.6681 295.7438 295.9841 296.214 296.5952 296.4016 295.8307 295.214 293.442 291.877 289.6703 287.4222 285.0925 282.6707 280.1624 276.4972 274.3545 273.1381 272.7793 274.6005 276.1058 278.0619 278.8238 277.7649 277.302 276.6341 275.7532 277.0656 277.5486 278.3638 276.6349 275.4552 276.528 277.5889 277.0683 273.0625 272.3732 271.717 270.8496 269.2845 268.9238 268.3738 266.0116 263.3123 260.1267 250.6402 249.313 248.2346 249.9294 251.0518 251.9911 252.869 253.7665 254.1837 253.9788 255.705 255.9106 254.8914 255.6517 256.9286 257.429 258.4552 259.0462 257.8521 256.4404 255.3846 256.6139 257.4846 257.3059 256.4983 255.4393 252.9786 250.5266 248.2639 247.3302 245.2558 243.9118 243.3429 243.1182 244.5762 247.2037 249.1025 251.5237 256.2575 259.5724 262.7813 265.6044 267.9599 269.1338 270.258 273.3115 274.2966 273.8734 270.3364 266.7342 262.8755 259.2295 256.3419 254.594 248.356 243.4783 238.9579 238.526 238.856 238.9907 238.7858 238.9721 239.3223 238.659 238.9427 239.1071 239.2514 239.5623 240.0678 243.1216 245.8746 247.4468 249.3433 251.7629 253.2616 254.1403 255.2087 256.6782 257.1764 257.7838 258.3376 259.5687 261.4186 262.0889 262.7656 263.4613 263.6158 264.5315 265.3561 266.1984 266.7916 264.6794 262.8418 261.5634 260.3697 259.1859 257.78 257.664 257.6855 257.5452 253.8838 252.2377 249.3023 246.7489 244.291 242.2734 241.5713 241.3246 240.2659 239.2306 238.7097 235.8627 238.0456 237.6984 237.5009 237.5485 237.248 237.3143 236.7771 237.6848 238.0334 238.3061 237.8653 236.7297 236.8932 237.1503 237.1928 236.1271 233.7623 237.7601 246.3921 249.3213 249.6775 248.0572 244.5335 240.0085 239.7132 240.356 240.8305 240.505 240.3932 238.7936 238.5049 238.7346 239.5123 241.6336 243.421 243.789 242.8983 243.5679 245.0276 246.4095 247.6695 248.9429 250.3771 254.3079 256.182 257.7422 259.4807 260.7628 261.8104 261.8235 260.4255 259.5417 258.607 258.8195 258.7931 259.7973 261.8263 262.9542 263.0099 261.4156 259.855 257.4765 256.9295 256.9094 256.9232 257.2268 257.5936 258.4905 258.9028 258.4029 253.6396 250.3257 245.4285 242.862 242.8727 244.4673 246.5831 248.5121 250.6577 253.5473 254.7123 255.6524 257.2439 258.7942 260.5746 262.7076 264.3365 265.5647 268.2661 272.3163 273.8492 275.527 276.8451 277.9366 278.7063 279.9091 280.8304 281.8986 282.8033 283.4139 284.2342 285.4303 286.1857 286.4116 284.5067 282.1431 286.1989 286.4653 285.8305 285.9878 285.8051 285.6835 283.0311 278.4205 275.216 272.188 265.0307 263.7122 261.2277 259.1328 255.9729 255.9189 255.8796 255.7459 255.2334 257.3286 258.0732 258.3702 258.2979 257.4265 257.5601 257.6369 257.6363 256.7954 254.8195 252.9877 250.4963 246.9701 244.3731 242.544 242.6801 243.0332 244.1095 245.436 246.4688 246.9916 -9999 -9999 +-9999 301.1358 299.7526 299.4756 303.8424 305.8861 303.9156 305.188 306.697 305.9383 304.4559 302.6664 300.6987 297.1382 293.5916 298.138 297.9348 298.6326 300.1726 300.2971 297.6674 294.5185 291.0787 287.3276 281.7052 281.0849 281.4975 281.4489 282.5971 285.0247 288.1978 290.3824 292.8737 297.4296 300.7078 303.619 305.7803 308.1824 310.0245 309.9396 308.9111 307.584 306.1678 305.0764 305.9729 305.4247 304.9258 304.6988 303.4049 301.388 299.1225 295.7198 297.265 300.1151 303.0657 305.2453 307.6689 310.6955 312.9517 315.2607 319.6688 321.7492 323.1551 324.4049 325.3156 326.0838 327.2622 329.5421 331.7629 335.4255 337.0959 338.5064 340.3016 342.4413 342.0964 339.8027 337.2805 334.9438 331.5246 329.4773 327.1818 325.1552 323.3404 321.7151 319.3402 315.0331 313.817 313.8168 313.8167 313.8132 315.1882 317.4058 319.9414 322.3087 324.3496 326.259 327.7302 330.2068 331.5099 331.9317 332.3266 332.4426 331.5604 329.8085 330.7952 332.4659 334.1835 334.933 335.4258 336.2115 336.5651 336.9767 337.6655 335.3047 329.7472 320.7022 317.7707 314.7077 310.9971 307.3134 306.8142 303.2837 299.5344 299.5149 305.2349 306.2568 306.1749 304.068 301.8023 301.8802 303.1773 303.6747 302.6704 302.7603 301.0716 297.489 294.7287 299.0076 302.9323 304.563 305.7305 306.9199 306.9826 306.139 304.3281 302.309 302.0221 301.9854 301.7853 302.5618 302.2316 299.3442 295.5337 294.1938 295.6676 299.1005 302.6702 304.2272 304.8 305.0507 305.6188 307.1269 306.587 306.3102 305.898 304.9096 304.566 304.4371 303.4673 303.8431 304.6346 304.659 304.3839 303.7549 302.9055 301.8075 300.6213 299.5412 297.983 297.5526 298.9507 299.0688 297.5866 295.2375 293.9795 294.1376 293.1629 292.3988 293.4187 291.5756 291.0345 291.3403 292.7893 293.9337 295.4313 296.7576 297.7492 296.5257 295.3409 294.5162 295.1147 295.4223 295.5211 295.8261 295.7993 295.7626 295.0911 293.8031 290.9271 288.6412 286.5249 284.0383 282.1777 280.3277 277.7065 278.0625 278.7438 279.7057 281.0073 282.6548 283.8054 282.1024 281.45 280.7469 277.6509 279.5042 281.4329 281.737 279.9903 278.9144 279.193 279.4713 278.7054 275.6736 274.377 272.4183 272.5453 272.053 271.5291 268.8998 265.4339 263.0342 261.0296 250.6304 249.3387 249.2047 249.0448 249.8229 250.5109 251.7378 253.0896 253.2739 253.5255 254.8083 254.5982 254.2973 255.2144 255.9258 256.6875 257.2856 258.0599 257.7664 256.1241 254.6795 255.6361 256.5354 256.4289 255.5747 254.3608 252.9582 248.8894 246.9267 245.7813 244.0137 243.6322 243.0514 244.752 246.2426 248.3729 250.9638 252.4263 254.8902 257.7355 259.6473 262.7711 265.0414 266.7262 268.5643 271.6947 273.7111 273.7975 270.0927 266.3422 263.386 259.8219 256.732 254.3173 248.7901 241.441 238.4111 238.3888 238.8626 238.7229 238.6794 238.7795 238.122 238.8067 238.841 239.2702 239.4003 239.9548 243.1279 245.6739 248.2645 249.4993 250.0507 251.2631 251.8524 253.1025 254.4709 255.697 257.3052 257.8284 258.3251 259.7964 262.1943 262.9323 264.213 265.0087 265.0201 265.1222 265.9359 266.6841 267.2501 265.2719 263.419 261.8895 260.217 258.9425 257.0005 256.2189 255.177 254.3044 250.7072 250.1701 247.2233 243.9151 243.0378 242.0466 241.2533 240.214 238.4818 239.047 238.9204 238.3757 237.8163 237.4902 237.2825 237.3981 237.3759 237.1012 236.5962 237.0286 237.559 237.1171 237.2544 237.4004 236.5374 237.1036 236.262 233.7501 236.5831 243.4952 247.3275 249.3213 249.6775 248.0572 244.5335 240.0085 239.7132 240.356 240.8305 240.505 240.3932 238.7936 238.5049 238.7346 239.5123 241.6336 243.421 243.789 242.8983 243.5679 245.0276 246.4095 247.6695 248.9429 250.3771 254.3079 256.182 257.7422 259.4807 260.7628 261.8104 261.8235 260.4255 259.5417 258.607 258.8195 258.7931 259.7973 260.3156 260.9655 260.7306 259.2947 257.6247 255.498 255.4736 255.9154 256.0723 256.0539 256.7341 257.4176 257.4179 257.0285 251.9757 247.6493 242.7943 242.1692 243.2168 244.4155 245.4282 246.9102 248.6239 251.5946 252.978 254.1123 256.2159 258.0232 259.9661 260.8177 263.9276 265.473 270.6771 272.8429 274.2114 275.6689 276.3497 276.7554 277.7795 279.2235 280.1116 279.6777 281.7224 282.2344 283.4187 284.6971 285.8694 286.9469 284.9697 283.0948 288.0076 288.8856 288.5132 288.2477 287.8884 286.5559 284.6145 281.7975 277.1693 273.4946 269.7201 265.2021 266.7455 265.4026 261.7699 256.9454 255.787 255.558 256.1412 252.1877 253.0513 254.546 253.5643 252.7543 253.2454 252.3399 251.6625 251.2284 249.6312 248.7143 247.0987 244.9755 243.6145 240.3151 240.1874 240.5061 240.4972 244.6046 245.3336 246.1751 -9999 -9999 +-9999 302.3537 300.7242 300.8625 304.9323 307.5656 306.739 306.5858 308.1903 307.403 305.5726 303.4783 301.5865 297.7664 295.6157 300.6475 300.8918 298.6326 300.1726 300.2971 297.6674 294.5185 291.0787 287.3276 281.7052 281.0849 281.4975 281.4489 282.5971 285.0247 288.1978 290.3824 292.8737 297.4296 300.7078 303.619 305.7803 308.1824 310.0245 309.9396 308.9111 307.584 306.1678 305.0764 304.1678 303.1656 302.9126 301.6353 299.718 297.2155 294.8858 295.7252 298.2684 299.4697 300.3723 302.2137 305.9853 309.658 312.8737 315.1863 319.1931 320.975 322.0863 322.6118 322.1669 322.3394 324.5078 326.4831 328.5989 333.4896 335.5827 337.8091 340.6219 343.235 345.0242 342.1886 339.2187 336.5104 332.7219 330.7809 327.7866 325.1888 323.0222 321.1144 319.3885 316.2572 313.8141 313.8141 313.8475 316.8006 317.9376 318.9509 320.3699 322.442 324.6967 326.4235 328.0439 330.5833 331.0423 331.1455 331.372 330.8491 330.3955 329.0557 328.2205 330.0804 333.377 334.0755 334.2021 335.0505 336.144 336.9202 337.0909 335.9013 331.3606 323.2288 320.1492 317.2118 313.9254 311.4854 309.4671 306.1864 300.5488 299.2306 300.4829 303.7429 304.7105 303.8439 301.4139 299.7004 301.2218 301.3929 300.4722 301.9394 299.8538 293.4322 293.8993 299.272 301.9657 303.7271 304.999 306.0268 306.2862 305.124 303.8892 302.2195 301.4932 301.2172 301.2769 301.136 301.5886 299.5838 295.8833 292.1569 293.8145 297.1533 300.0362 302.3434 303.0998 303.6314 306.0079 306.1606 305.1646 305.1238 305.1283 304.2836 303.1803 302.8141 302.7747 303.449 303.9919 303.8293 303.6107 303.0132 302.0085 301.0913 299.7931 298.6593 297.4268 295.4405 296.5299 297.1838 293.937 290.2375 290.0974 291.7156 290.4429 290.4641 290.2365 288.8015 288.8752 289.9589 291.1789 293.2445 294.8677 296.023 296.9196 295.4507 293.9746 293.6332 293.5441 293.9216 294.1925 295.0236 295.4161 295.6693 295.7547 294.6325 291.8982 289.4548 287.109 284.6902 283.2387 282.0803 281.0566 281.0823 282.1997 282.9969 284.0603 285.8671 286.4251 285.2951 284.8071 284.3431 280.9345 281.9058 283.702 283.9302 283.0891 282.196 282.0859 281.7652 280.5476 277.1909 275.8794 272.8086 271.7591 271.3662 270.8817 269.1995 266.5434 264.0022 261.5254 252.5421 250.6952 248.9434 247.8059 248.7803 248.9765 250.4831 252.6213 252.3964 253.1204 253.5106 252.8956 253.6581 254.5354 255.3594 255.6877 256.4943 257.0789 257.5863 255.8825 254.2729 254.1664 255.1927 254.9949 254.5019 252.7325 251.1696 248.3701 245.9305 244.1181 243.7004 243.6095 243.3161 244.9426 247.2648 249.0085 250.7034 255.0683 257.3252 258.4822 260.2766 262.1568 263.8722 266.3316 267.5976 273.088 275.1468 275.085 271.3155 265.9127 262.132 259.3289 256.0792 253.3124 247.0671 239.3077 238.3206 238.3841 238.7177 238.5171 238.6783 238.7688 238.0067 239.0134 238.8532 239.0605 239.3738 239.3093 243.5004 246.6331 247.8788 248.4187 249.2181 249.9605 250.4995 251.5564 253.2263 255.0812 256.261 256.4311 257.6628 258.4867 261.8026 263.3561 264.9163 266.1707 266.6303 266.4047 266.4793 267.0556 267.4832 265.707 263.8984 261.7884 259.6761 258.9425 257.0005 256.2189 255.177 254.3044 250.7072 250.1701 247.2233 243.9151 243.0378 242.0466 241.2533 240.214 238.4818 239.047 238.9204 238.3757 237.8163 237.4902 237.2825 237.3981 237.3759 237.1012 236.5962 237.0286 237.559 237.1171 237.2544 237.4004 236.5374 237.1036 236.262 233.7501 236.5831 243.4952 247.3275 248.937 248.1698 247.0928 244.6965 240.8939 237.1616 237.3907 238.7425 239.2439 238.454 238.082 238.0028 238.133 238.852 240.9652 243.1266 243.383 242.002 242.3577 243.6674 245.124 246.1358 247.4111 248.8277 252.8681 254.9493 256.7885 258.6632 260.0385 260.3554 259.3538 257.6862 256.2154 255.7626 256.8013 257.9195 257.8693 258.0514 258.0988 257.8344 256.9074 255.8693 254.3028 254.4047 254.6787 254.6835 255.1115 255.871 256.3117 256.264 255.1778 249.7688 244.3892 242.1096 242.58 243.6446 244.5018 245.2129 246.8434 247.3047 249.8262 252.3943 253.4666 253.5594 255.8813 257.7241 261.6151 264.0972 266.3013 270.2221 271.65 272.6949 273.6869 274.6997 275.6754 275.8401 276.0282 276.5005 277.423 279.7609 280.889 282.0195 283.4888 284.8044 285.9428 285.1116 284.0385 289.5153 290.8783 290.7887 289.4468 289.8797 289.1911 286.7393 283.1555 280.0345 272.0659 270.5482 271.9167 271.7748 270.9093 268.2523 264.6446 261.711 258.604 254.6737 249.4275 248.7291 247.9736 247.7941 248.5767 247.4453 245.6567 245.4835 245.6395 244.7577 244.7616 244.6887 244.5306 242.5007 241.0415 240.1882 239.4276 240.2959 242.2749 243.5672 245.5231 -9999 -9999 +-9999 302.3537 300.7242 300.8625 304.9323 308.2301 306.739 306.5858 308.1903 307.403 305.5726 303.4783 301.5865 297.7664 295.6157 300.6475 300.8918 300.7989 300.3685 298.8175 296.1178 292.3345 289.0831 286.0829 281.6131 281.1344 281.8698 281.3104 281.7156 284.0375 286.9595 289.6904 291.9379 297.8987 301.5063 304.0276 306.3383 307.6486 308.733 308.5954 307.9497 307.0525 304.5101 303.1589 302.5921 301.6086 300.1756 298.8312 295.1295 292.995 293.0948 296.4894 296.4689 296.9044 297.3581 298.8148 303.9731 308.5724 312.1213 314.5393 318.0708 319.4052 320.1719 319.3591 319.4524 322.3752 325.1233 328.2732 331.2693 336.8777 338.8073 340.6801 343.2481 345.5185 346.3082 343.3103 339.8718 337.0034 332.8616 330.5666 327.62 324.8347 322.5991 320.0671 317.7105 315.6836 313.8024 313.794 313.7899 316.8386 319.4911 320.7152 321.904 323.1642 324.6904 326.0368 327.4639 329.4852 329.974 330.1443 329.9196 329.318 328.9857 327.9028 326.9587 329.2773 333.1932 333.4696 333.3357 333.9072 335.4031 336.1546 336.1878 335.5793 333.2987 325.0955 322.2062 319.2863 316.5255 314.2249 311.0601 308.2532 303.2847 298.6299 297.673 299.465 300.9973 301.1762 299.707 298.1385 299.0278 298.8159 299.0106 300.747 296.7352 294.0604 294.2509 297.9916 301.1877 302.775 304.0645 305.1581 305.0089 304.0735 303.4198 302.0358 300.5902 299.596 300.3292 299.4572 299.5056 298.7918 295.1712 291.7289 294.3077 296.3932 298.193 300.4003 301.7394 303.3986 305.1287 305.4427 304.3523 304.225 304.0598 302.7656 302.2478 301.7807 302.4398 303.4859 303.5759 303.0776 302.8923 302.2721 300.8213 300.0676 299.076 297.6753 296.0432 293.6229 294.6232 295.6397 291.4677 288.4492 287.7545 287.764 287.6707 288.4551 287.6773 286.2956 287.2778 288.5882 291.0502 292.664 294.0553 295.3316 296.3684 294.4483 292.7901 291.5699 291.4417 292.2105 292.8575 293.8573 295.2119 295.9712 295.1619 294.5337 291.9711 289.8833 287.8253 285.9059 284.6768 283.7505 282.4799 282.9208 284.3093 285.4659 286.5336 287.721 290.0353 289.065 288.4769 287.5273 284.4674 285.0234 286.0794 286.3207 286.0107 285.2006 284.7035 284.2042 282.2915 277.6062 273.695 273.2917 271.2146 270.4938 270.5202 267.8427 265.7055 263.5452 261.765 257.7218 254.7843 250.4033 248.7152 247.4805 248.2549 249.9131 251.3761 250.6757 251.3941 251.5052 251.2415 252.675 253.4509 253.5183 254.4507 255.3657 255.9003 256.4364 254.7434 253.3772 252.8928 253.3881 253.271 252.3074 250.9789 249.8988 245.6021 244.235 243.8247 243.622 243.2685 245.9053 249.3545 249.5285 251.0709 250.5553 256.2352 260.3585 262.4299 263.237 264.37 266.9615 269.6964 270.8435 274.5773 276.5749 275.6844 271.1956 265.8156 261.1813 258.0011 255.6955 252.5326 245.9455 239.1123 238.0859 238.175 238.3417 238.4139 238.5711 238.7688 238.0067 239.0134 238.8532 239.0605 239.3738 239.3093 243.5004 246.6331 247.8788 248.4187 249.2181 249.9605 250.4995 251.5564 253.2263 255.0812 256.261 256.4311 257.6628 258.4867 261.8026 263.3561 264.9163 266.1707 266.6303 266.4047 266.4793 267.0556 267.4832 265.707 263.8984 261.7884 259.6761 257.8568 255.9984 254.6194 253.605 251.4164 248.032 247.161 245.4665 244.1631 243.4592 242.6626 242.2782 241.4863 240.7446 239.6594 236.738 238.427 237.9153 237.5474 237.2665 237.1947 237.3336 237.0871 236.3161 235.9988 236.7661 236.6288 236.8408 237.1846 236.1652 237.0727 235.7835 235.9005 242.2251 245.1624 247.407 247.3587 246.3284 245.9274 244.7145 241.7097 236.2399 236.364 237.7105 238.8899 238.3486 238.0904 237.8743 238.4282 238.1775 240.8612 243.1227 242.974 241.7059 241.5172 242.6168 243.5597 244.6754 245.97 250.4969 252.5019 254.4308 256.066 257.4011 258.7305 258.3824 257.3929 255.0971 253.7268 254.3988 255.4782 256.4196 256.3342 255.4333 255.7966 255.6151 255.0654 254.0925 252.7216 252.9815 253.4158 253.8283 254.4122 254.939 255.5488 255.1304 253.2852 246.5464 242.0764 241.4793 242.61 243.8761 247.2447 249.6026 249.7128 248.8482 249.0512 249.5078 251.7336 253.9416 255.6816 257.8701 260.914 262.6849 264.8145 266.3265 264.3766 268.0023 270.8496 273.4052 274.352 274.0594 274.4495 274.6044 276.2197 278.0776 279.9003 280.4661 281.7967 283.2788 284.4794 284.6489 284.4265 291.4331 292.2711 290.3965 291.18 290.8488 288.315 285.1297 281.8493 278.4063 273.4221 275.2673 274.7574 275.2289 274.2794 272.2805 270.1711 266.9982 264.1887 260.9489 254.4456 252.133 250.5158 248.7892 248.0161 247.8283 248.6237 248.7319 249.6178 250.1728 248.6481 246.3628 246.1181 245.1671 242.5709 241.0324 239.8499 239.6783 241.0423 243.0378 245.1393 -9999 -9999 +-9999 303.4617 301.3922 301.4036 304.6989 308.7849 309.5629 309.4811 309.4036 308.6361 306.3013 304.0378 301.6013 298.5147 297.1425 301.2645 301.0681 300.4087 299.2214 297.6425 295.0885 292.1167 288.2495 285.7378 281.4694 281.5985 280.361 281.4948 281.172 282.4472 284.9753 287.9081 290.3506 296.7856 299.9571 302.3419 304.4451 306.1579 306.9873 306.5683 306.1447 305.5521 303.5082 302.1579 300.5237 299.6274 298.3282 295.6996 292.3238 291.8163 293.4997 297.434 299.0478 299.9391 301.5046 300.2836 304.0592 307.9232 310.4189 312.5564 315.8764 316.4564 316.2328 317.2257 320.3373 323.5261 326.8736 329.8699 332.6542 337.6205 339.8853 341.877 344.0137 346.0161 345.9848 342.655 339.3239 336.7928 332.2612 329.5427 326.666 324.2232 322.0376 320.0298 317.87 315.8986 313.7409 313.7233 313.7071 315.0316 318.0537 319.9555 321.6659 322.852 324.1809 325.4486 326.8141 328.6189 328.9137 329.1049 328.4332 327.5826 327.2339 326.341 325.7726 327.6313 331.5701 332.7878 333.0848 332.6284 333.7954 334.5945 334.5561 333.827 332.4521 325.864 322.9014 319.8655 316.989 315.302 312.9787 310.6581 307.869 304.5902 296.6758 296.2838 296.3801 296.5691 297.4438 296.9087 297.2115 296.7443 297.472 298.6647 294.3888 292.7256 293.18 296.7034 300.0503 301.6714 303.0728 304.0369 303.4286 302.7245 302.4712 301.9877 300.9302 297.9628 298.8377 297.918 297.5486 296.954 293.3055 291.2908 293.909 295.7467 297.3346 299.0449 300.6018 302.2467 304.3214 304.5642 303.9354 303.3322 302.1021 302.0573 300.9245 300.942 302.083 303.1336 302.9481 302.47 302.2076 301.8928 300.622 298.8948 297.8874 296.9953 294.7846 291.6334 292.3903 294.1132 293.5503 289.9982 286.5301 285.853 285.5605 287.4401 289.4489 286.9253 285.9378 287.6746 290.474 292.0393 293.6017 294.7542 295.904 293.6844 292.0269 290.2756 290.3222 291.0864 292.4803 293.9096 294.9275 295.9096 295.9174 294.3258 292.8368 290.7527 288.5305 286.8289 285.7846 284.8632 283.8048 284.3626 285.8855 287.2536 288.7086 290.2035 291.4706 292.2172 291.5686 291.0197 288.2155 288.2167 288.3683 288.3286 287.6816 287.3511 287.2744 286.6849 283.7672 277.7824 275.2279 273.1365 270.6896 268.8946 267.1791 265.6037 264.2111 262.6985 259.9477 258.3908 255.872 252.9073 248.9864 248.5643 246.9221 248.1538 248.8967 249.1627 249.2672 249.8518 249.1834 249.4137 250.6064 250.9294 252.3508 254.0309 254.7047 254.7159 253.2952 252.3671 252.151 252.0641 251.7566 250.9196 249.5068 248.4046 244.8429 244.235 243.8247 243.622 243.2685 245.9053 249.3545 249.5285 251.0709 250.5553 256.2352 260.3585 262.4299 263.237 264.37 266.9615 269.6964 270.8435 274.5773 276.5749 275.6844 271.1956 265.8156 261.1813 258.0011 255.6955 252.5326 245.9455 239.1123 238.0859 238.175 238.3417 238.4139 238.5711 238.7834 239.2357 239.059 238.915 239.0601 239.1761 239.0917 241.4453 244.7321 246.4239 247.2663 247.72 247.8416 248.5773 249.69 251.321 253.5154 254.5817 255.2973 256.4478 258.3613 261.4046 262.6682 264.6249 266.5139 267.6754 267.6198 267.2229 266.8923 267.1191 265.9052 264.623 262.4612 259.6201 256.2964 254.5959 253.7219 252.5918 250.1129 246.987 246.1647 245.167 244.0008 243.3206 242.8329 241.9639 240.9958 240.2273 239.2644 238.8472 238.3464 238.0017 237.6936 237.3703 236.9868 237.0605 237.1083 237.0647 236.18 236.6192 236.885 236.2885 236.8667 236.6193 236.6283 233.7443 240.0067 245.0135 246.5529 246.2211 245.2876 244.6152 244.4257 243.8578 241.2827 235.7315 235.4959 235.7832 235.9947 235.8588 235.5088 236.245 236.8341 237.8719 242.0886 243.9943 243.7927 242.0982 241.2905 241.5363 242.8257 243.2081 244.8902 249.1579 250.941 252.8054 254.2136 255.6508 256.9946 256.8292 255.6232 253.7815 252.644 253.2529 254.0129 254.165 254.1878 253.9938 253.1776 253.5095 253.1695 252.5916 251.6774 251.8915 252.3456 252.7956 252.9841 253.5405 254.1748 252.8936 251.0243 242.4048 241.502 242.0649 243.0669 246.659 250.7859 252.5498 253.4603 251.9963 255.3596 254.7391 252.7748 253.6708 255.0378 256.1636 257.2864 259.1102 262.8657 267.4168 268.6964 269.7645 270.9026 271.2685 271.8123 272.4289 272.3785 272.7736 274.9846 275.988 276.8678 278.042 280.2023 281.9199 283.5651 284.6248 285.085 290.6582 292.4718 291.7156 292.5236 291.2323 288.8128 285.528 283.7493 282.3318 279.4296 278.1606 277.1239 276.8054 275.8897 274.7106 272.2443 269.2689 266.5957 263.6625 259.2007 257.291 254.2157 252.2007 252.3095 251.9926 252.936 255.409 254.8119 254.6254 254.6678 253.9652 251.0577 248.7914 248.8362 245.5256 242.718 239.9554 239.1982 242.2269 243.4664 -9999 -9999 +-9999 304.39 302.2651 302.7354 304.827 309.3024 310.4176 311.0921 310.7661 308.9942 306.7614 304.538 302.1101 299.7282 298.0349 300.6491 300.3256 299.2473 297.8139 296.1305 294.1027 291.6249 288.4651 286.271 281.416 281.3807 281.4396 280.7715 281.125 281.0757 281.6106 283.1603 285.8237 293.2874 296.2705 299.6288 302.6402 304.4625 304.3178 303.9595 303.7798 303.6222 302.554 301.5482 300.0963 297.6026 296.1259 293.9502 291.4574 290.8882 293.5021 297.8657 299.3067 300.4819 302.0308 303.8475 305.7082 306.7589 308.526 309.8851 312.0403 313.6443 316.2668 319.0097 321.2134 323.8596 326.816 329.8184 332.2393 337.1863 339.3242 341.2113 343.0481 344.7492 344.0219 341.0918 338.5021 336.1647 331.1651 328.8179 326.4858 324.2119 322.0391 320.0125 317.9976 315.7273 313.6789 313.6722 313.6676 313.7781 317.0424 318.7353 320.4646 321.6656 323.0214 324.3814 325.7207 327.37 328.0001 328.1356 326.8054 325.6668 325.579 324.0713 325.283 328.297 331.2604 331.6622 331.7758 331.4319 332.7312 333.1555 333.1614 332.2971 330.8857 325.718 324.0519 321.0812 318.3829 315.8734 313.6631 311.3493 309.2072 306.6992 299.1115 295.661 293.2014 294.8768 294.8307 295.2151 295.0491 294.393 296.0885 296.8487 292.6001 291.5558 292.4088 296.6709 299.0957 300.9821 302.3685 303.0193 302.2204 301.3804 301.2532 301.5039 300.826 298.2418 296.4717 294.5469 294.7255 294.7966 292.0995 289.9142 293.7105 295.3231 296.9258 298.4617 300.1852 302.2701 303.8647 303.7469 302.94 301.3319 301.8193 300.5642 299.8486 300.6234 301.7441 302.3564 302.4191 302.1303 301.8134 301.526 300.6305 298.8356 297.0913 295.5676 293.0421 289.7162 289.0912 290.8628 292.791 291.5858 287.0415 284.6107 285.4541 288.2635 290.3048 287.0247 284.4125 287.2562 289.8195 291.6721 293.552 294.8547 295.3477 293.0539 290.9308 289.6753 289.0757 290.613 292.2513 293.1296 294.2184 295.1052 296.0683 294.9581 293.6039 291.9152 289.8052 288.1272 286.8046 285.7978 284.9865 285.7567 287.3755 288.9399 290.4716 291.7874 294.0888 294.5883 293.9494 293.3021 291.4839 290.6847 290.7391 289.9489 288.9239 288.4111 288.3273 287.4441 283.9355 276.6938 273.6475 271.568 269.1045 266.4284 264.3301 265.6037 264.2111 262.6985 259.9477 258.3908 255.872 252.9073 248.9864 248.5643 246.9221 248.1538 248.8967 249.1627 249.2672 249.8518 249.1834 249.4137 250.6064 250.9294 252.3508 254.0309 254.7047 254.7159 253.2952 252.3671 252.151 252.0641 251.7566 250.9196 249.5068 248.4046 244.8429 243.9051 243.8279 243.6604 245.0712 250.6515 254.2458 253.8787 252.598 251.8334 258.5036 263.1853 265.5899 266.6623 268.3778 270.2234 272.8392 274.5555 277.3004 277.7516 275.1487 270.2845 265.6662 262.0438 258.7345 255.4061 252.497 244.0744 238.9655 238.3427 238.1036 238.1979 238.3186 238.5523 238.5379 238.993 238.8933 239.099 238.3605 238.8225 239.0697 239.8824 241.1232 243.4971 246.1007 247.0525 246.8939 247.1794 247.9371 249.1542 250.2252 251.8214 253.5135 255.7839 257.9019 261.009 262.4735 264.4963 266.1643 267.5358 267.8326 267.0759 266.413 266.575 266.0856 264.9865 263.0115 260.6977 256.6327 254.3777 253.3256 252.3356 251.1438 246.8286 245.9184 244.9844 244.4465 243.4001 242.4205 241.5738 240.2528 241.0017 240.2863 239.2857 238.7837 238.2494 237.837 237.5844 237.14 236.9016 236.4709 236.7842 236.5656 236.0696 236.438 236.3774 236.4326 236.9493 234.8177 234.4961 240.4185 242.5597 243.7027 244.5038 244.3152 243.6962 243.2648 242.9331 240.2466 235.8003 235.6001 235.5563 235.2649 235.0807 234.9165 235.6022 235.8952 239.0497 243.24 245.113 245.1594 243.4552 241.6895 241.0973 242.2117 242.5022 243.8432 247.5767 249.1933 250.4156 251.7676 252.9741 253.7039 253.7809 253.9109 252.8767 251.5 251.3707 251.4192 251.4978 251.772 251.7288 251.0031 251.1519 251.8357 251.4098 250.7601 250.9573 251.1218 251.8516 252.0724 252.6633 252.6111 251.3172 247.9179 241.3215 240.4771 243.1674 245.646 250.1644 253.3138 254.7363 255.6525 257.0708 258.6318 258.4568 256.2999 255.0341 254.9232 257.3006 258.6604 261.2782 263.8665 266.6811 267.5076 268.3351 269.1556 268.9687 269.6518 268.7014 271.4319 271.8245 272.1692 274.0417 275.6084 277.2198 279.2339 281.6441 284.0174 286.1326 285.8952 290.1922 290.868 292.0472 291.7274 290.3492 288.9673 287.0247 285.0836 282.7647 279.8125 278.5443 277.2043 276.1328 275.4495 274.7757 272.7084 270.4279 268.7466 264.1257 262.1229 260.9633 259.0541 258.2474 257.5078 257.0333 257.1305 259.6288 259.7293 256.5059 255.9986 254.2368 252.3487 252.3465 252.9489 251.5119 248.2828 242.3442 239.3127 238.6701 241.929 -9999 -9999 +-9999 306.2086 305.0549 304.0253 305.8077 309.2415 310.5968 311.531 311.3434 310.0357 307.584 305.2946 303.3087 301.5489 299.8311 300.0729 299.0267 297.5206 295.9899 294.455 292.5438 291.2034 289.028 287.4202 281.3395 281.4954 281.1962 280.9669 281.4701 281.0027 281.0843 281.6909 283.131 290.7768 294.7249 297.511 300.0816 301.3178 301.2608 301.0005 301.2509 302.0482 301.3066 300.4534 299.088 297.3242 294.5506 291.5876 288.7006 291.9935 293.726 297.8368 299.8301 301.6758 302.5894 303.7693 305.3016 306.376 307.9482 309.8243 313.7091 315.5558 317.6899 319.4309 321.2688 323.0732 325.1681 327.561 330.3154 335.2643 337.1375 339.0618 340.8795 341.9444 340.6771 339.0448 337.1521 335.2207 330.0972 328.0938 326.1211 323.8157 321.9639 320.302 318.3305 315.6661 313.6493 313.6433 313.6297 313.6527 315.7071 317.656 319.3297 320.8279 322.0533 323.2729 324.529 326.6261 327.1865 327.2819 326.6697 324.53 323.2785 322.685 323.8828 326.5096 329.6875 329.8125 330.5298 330.7595 331.0935 332.2953 332.1887 332.2247 331.4089 325.5444 323.7073 320.2083 318.442 315.9763 313.5441 310.9817 308.591 306.6924 301.9841 298.7462 295.4569 293.9601 293.4268 293.3481 293.2216 292.5865 292.9395 294.4432 291.126 290.2763 293.2516 296.9234 298.9376 300.5204 301.4167 302.2902 300.7823 299.7832 300.0829 300.6573 300.1665 298.5591 295.7221 292.9123 292.2871 293.5367 290.2238 289.5745 292.5028 294.42 297.1374 298.7569 299.932 301.0693 302.6997 302.8054 301.7857 300.6219 300.0071 298.7828 299.3707 300.4712 301.1187 301.2355 301.288 300.7314 300.8651 300.9681 300.278 299.0596 297.3288 294.5256 291.8967 286.6348 285.8421 287.8173 289.9742 291.4694 288.2241 284.743 284.5544 287.6225 288.786 284.7484 283.4753 286.4559 289.4445 291.6791 293.1885 294.4685 294.8442 291.6967 289.8297 287.8176 288.2707 289.601 290.7823 291.9553 292.9461 294.33 295.8691 295.2333 293.6039 291.9152 289.8052 288.1272 286.8046 285.7978 284.9865 285.7567 287.3755 288.9399 290.4716 291.7874 294.0888 294.5883 293.9494 293.3021 291.4839 290.6847 290.7391 289.9489 288.9239 288.4111 288.3273 287.4441 283.9355 276.6938 273.6475 271.568 269.1045 266.4284 264.3301 262.3879 260.9268 259.8812 258.3078 257.5035 255.2229 252.2963 250.6393 248.761 248.2503 246.9503 246.6671 247.5405 247.712 247.8035 247.8576 247.5621 248.3396 249.3576 250.6112 251.9914 252.4447 252.7038 252.1466 251.2854 251.2277 251.1451 250.381 249.433 248.8235 248.2536 244.2456 244.04 243.3281 244.9841 246.4639 247.6236 250.6668 251.855 254.4012 254.5399 260.7155 265.6441 268.2246 270.1772 271.2456 272.8031 275.0703 276.8251 279.5154 277.9242 273.2412 268.2629 264.7611 261.155 257.4659 254.9464 252.0084 244.0982 239.112 238.2017 238.0827 237.9963 238.2306 238.2718 238.4762 238.8075 238.4118 238.4825 238.444 238.6889 238.7643 239.6417 240.2271 242.9857 245.7262 245.5877 246.2328 247.6048 248.0774 248.8459 250.1799 250.5796 251.598 254.2549 258.7404 260.6259 262.2417 264.0694 265.551 266.4369 266.7285 266.0346 265.6116 265.7425 265.9461 264.6168 262.675 260.9133 258.2699 256.4191 255.2535 254.2164 253.0451 249.7127 247.6876 245.5798 244.1491 243.1398 242.4623 242.2087 242.0379 241.6822 241.0164 239.7151 239.2966 238.4799 238.2543 237.9169 237.776 237.7569 237.1959 236.4801 236.8991 236.6969 236.0707 235.5709 236.2258 236.2879 233.7335 237.0076 237.8943 239.1475 239.7891 240.9849 241.1978 240.1422 239.2363 238.2903 236.6555 236.5488 236.0464 235.3312 234.9563 234.7273 234.8476 234.6408 234.8706 238.3542 244.1222 244.871 245.1274 244.8405 243.2215 241.381 241.1787 242.2944 242.7051 245.7324 247.588 249.0734 249.3466 250.056 251.382 252.3197 252.2713 250.9357 250.9365 250.1732 249.9171 249.9634 249.8644 250.3104 250.0211 250.0428 250.3208 250.1787 249.7619 249.8011 250.5941 250.7136 251.2364 251.1289 250.5928 249.1843 242.9193 240.9383 243.0536 246.012 248.2008 250.6596 252.1806 254.3707 256.0105 257.7414 260.6549 260.9117 259.7018 257.8002 257.0628 257.49 258.7376 260.302 262.8851 265.6561 265.6361 266.4611 266.0107 265.4398 266.3373 266.1947 267.0243 267.8784 274.4856 276.3698 278.0861 279.7061 281.5981 283.6573 285.482 286.8314 286.0808 289.697 289.7464 290.653 289.9154 289.0863 287.7719 286.25 284.1856 282.0892 279.4112 278.0013 276.6942 275.2991 274.5116 273.869 273.1971 271.9992 270.0958 266.8475 265.3466 263.7966 262.65 261.2855 260.0928 259.5742 260.916 262.4279 261.8313 258.873 257.489 256.2534 254.8258 255.776 256.0358 255.1108 251.6594 247.785 238.7669 238.8604 239.3247 -9999 -9999 +-9999 308.2801 307.2282 305.7094 307.7579 310.5086 311.4668 311.8971 311.7787 310.6178 308.3078 305.9389 304.0573 302.2855 300.4621 299.4865 297.4743 296.1635 294.0975 292.3954 290.5993 288.8319 288.1352 285.766 281.7635 281.3736 281.3552 281.373 279.9844 281.3195 280.9736 281.1377 282.3792 289.7126 292.8235 295.391 297.3344 298.0557 298.45 298.6398 299.2998 300.0437 300.068 298.3234 297.3446 295.4697 292.5671 290.2886 289.8745 291.7764 293.3338 297.6683 299.4546 301.3503 302.9611 304.291 305.7709 307.2793 308.7813 310.3587 313.7077 315.6294 317.2803 319.2317 321.3653 323.1827 325.5244 327.2498 329.2585 330.9017 332.3388 335.8162 338.3497 339.1866 338.0246 336.6835 335.5775 334.0095 328.9157 327.0581 325.5206 323.885 321.8827 320.1366 318.0587 316.096 314.7852 312.7558 311.8812 312.468 314.7259 317.2898 319.2512 319.6743 321.3032 322.794 324.8891 325.7565 326.2411 325.8812 325.4433 323.7277 320.9899 321.4875 324.0556 326.6009 327.6411 327.7559 328.9204 329.7412 330.527 330.2749 330.8465 330.803 330.0913 325.4428 322.9053 320.7234 318.3668 316.0723 313.8229 311.8026 309.9786 307.5587 302.9771 301.9405 299.9499 296.3695 292.5478 291.9004 290.9981 291.0217 290.5581 291.3785 290.701 290.2198 293.6952 296.6126 298.3118 299.6953 300.8044 301.1541 298.8995 298.6634 299.3315 299.7828 299.5742 298.5662 297.3156 293.9308 290.9854 292.2197 289.1574 289.7939 291.42 294.0725 296.3474 297.8496 298.6439 299.4619 301.4312 301.2447 298.8262 299.2265 297.9966 298.5759 300.0847 300.1161 299.3863 299.4919 299.7575 299.4266 300.0461 300.3879 300.2484 299.4137 297.7313 294.9912 291.8967 286.6348 285.8421 287.8173 289.9742 291.4694 288.2241 284.743 284.5544 287.6225 288.786 284.7484 283.4753 286.4559 289.4445 291.6791 293.1885 294.4685 294.8442 291.6967 289.8297 287.8176 288.2707 289.601 290.7823 291.9553 292.9461 294.33 295.8691 295.2333 294.1875 293.2435 291.1699 289.3019 287.9147 286.8495 286.0158 287.0468 288.7598 290.2878 291.7964 293.1833 295.4774 296.1768 296.0258 294.8973 293.3675 292.5238 292.0247 290.6139 288.867 287.8147 287.2145 285.0642 281.4987 274.2021 271.3791 268.7156 265.3495 261.9892 259.4378 256.3522 255.3348 254.8235 253.7651 252.7672 251.4854 250.6392 249.8078 249.3905 248.649 248.0869 247.9832 247.6723 246.1236 247.0455 247.4442 247.2992 246.7152 246.8575 247.7849 249.4135 250.3869 250.8255 250.7195 250.5266 250.3083 250.4521 249.8497 248.7196 248.0531 247.1546 244.3098 243.9082 245.8909 249.0548 250.7369 251.4098 253.05 253.9474 254.9232 258.4142 262.3766 265.9342 269.3389 272.221 273.5707 274.8565 276.25 277.7979 279.4892 276.4196 271.8178 266.4655 262.4217 259.8096 257.0814 254.554 252.3277 245.4422 241.3431 238.8605 238.5844 238.1764 238.3723 238.4974 238.1977 238.191 238.5533 238.585 237.9251 238.4943 238.8486 239.4515 240.4416 243.1544 243.5423 245.67 247.7265 249.3301 250.3642 250.2194 250.1916 250.5494 251.7724 254.09 258.1543 260.1996 261.745 263.6653 264.136 265.1278 265.5487 265.083 264.5417 264.7512 265.499 264.6942 262.3831 261.0449 259.2752 258.1855 257.1335 256.2251 255.0241 252.1263 248.8102 246.4792 244.7611 243.8811 243.0837 243.044 243.2625 242.9068 241.4264 240.4438 239.9303 239.4827 239.2135 239.5874 240.6918 241.8797 239.4289 236.3649 235.9447 235.9182 236.3161 235.7068 235.7591 233.7702 235.6549 236.8718 236.3196 236.901 237.2085 237.4637 236.9901 236.8592 236.937 237.0945 236.3703 237.5288 237.6279 237.3003 236.7276 235.4218 234.5943 234.7219 234.8406 235.321 243.4502 243.8906 244.261 244.2102 243.5495 242.2194 241.0655 241.7376 242.1329 244.1592 245.8879 246.7483 247.9425 249.0547 249.7486 250.0704 250.3262 249.9148 249.5952 248.9403 248.0902 248.0287 248.0168 248.4685 248.7859 248.8101 248.9419 248.9357 248.4429 248.8441 249.3724 249.9849 249.5988 247.9377 246.2993 246.3385 241.5355 242.1011 244.0594 247.2341 250.3129 252.012 253.4584 255.1707 256.9818 258.6271 261.3755 262.4242 262.2737 261.8809 261.4981 260.9202 261.5197 262.2717 263.3403 263.9294 262.9671 262.8211 262.6323 263.7002 262.6539 266.1986 269.1647 271.6097 276.678 277.6267 279.4308 281.4625 283.5505 285.609 286.7906 286.7731 285.2883 288.1631 288.3168 288.8177 288.4702 287.4437 286.388 284.3005 282.7424 280.6496 278.6982 276.8162 275.5419 274.1322 273.202 273.0583 273.042 272.3765 271.2917 268.5966 267.2632 264.9486 264.5235 262.9518 261.9934 262.4799 263.7379 264.2276 264.1664 260.9355 259.1105 257.6039 257.8765 258.5092 258.187 256.6029 253.5681 249.4353 239.1671 238.8486 238.9582 -9999 -9999 +-9999 309.4501 307.9212 307.2035 308.0893 311.888 312.9567 313.2029 312.5568 311.0695 308.8601 306.9565 305.0765 303.2657 301.1906 299.2316 297.4475 295.4409 293.7581 292.2954 290.9438 289.2083 287.9803 285.3432 282.362 281.1965 280.954 280.8966 281.4395 281.3522 280.9541 280.7261 282.2289 288.9426 291.4922 293.9184 294.5809 295.2028 296.1409 296.5105 297.9828 298.7594 298.2467 296.6731 294.6467 292.8318 289.5845 288.9316 290.2015 291.3226 293.6068 298.5186 300.4198 301.6847 303.2898 304.3001 305.6728 307.1111 308.1021 309.3649 312.5645 314.6 316.7378 318.7452 320.7542 322.8007 324.6284 325.946 326.4677 329.8704 333.149 335.9427 336.6905 338.1193 335.8433 334.1376 334.4647 333.1177 327.773 325.4655 323.7177 322.4373 321.0226 319.3899 317.4413 315.3521 311.6786 306.3936 309.6511 312.7073 314.4588 315.9254 317.1663 318.8634 320.1718 321.4698 323.4308 324.4596 325.0663 324.4748 323.8008 321.5667 319.0583 321.14 323.7943 326.0397 326.6048 325.889 327.3814 328.7075 329.9086 329.1007 328.4064 328.4739 328.228 324.1736 322.7384 320.9669 318.7498 316.9518 314.4142 311.5878 308.8521 306.5457 305.0069 304.5545 301.8236 299.0682 296.3722 293.3321 291.4054 291.1768 290.8921 289.4254 288.8709 289.7647 292.7705 295.0776 297.3955 298.7259 299.3854 299.7927 296.8432 297.4153 298.7867 298.9329 298.687 298.0301 297.3156 293.9308 290.9854 292.2197 289.1574 289.7939 291.42 294.0725 296.3474 297.8496 298.6439 299.4619 301.4312 301.2447 298.8262 299.2265 297.9966 298.5759 300.0847 300.1161 299.3863 299.4919 299.7575 299.4266 300.0461 300.3879 300.2484 299.4137 297.7313 294.9912 290.7759 287.0715 285.8292 285.2604 286.7012 288.789 288.385 286.3191 283.1459 286.0993 286.7188 282.7994 281.8694 284.9975 288.4853 291.1062 292.8563 293.7774 294.212 290.2878 287.0473 285.9846 286.8515 288.3196 289.1274 290.2986 291.335 292.6178 295.226 295.1584 293.4178 293.284 292.6196 290.6299 289.0729 287.9305 287.0056 288.322 290.0622 291.6905 293.1128 294.7612 296.482 297.4612 297.3813 296.2076 294.3858 293.7382 292.4333 290.9975 288.3044 285.4298 283.9835 281.8231 277.5925 269.2229 266.2722 263.8748 259.8932 257.4845 258.4375 260.6828 261.7114 263.1592 260.6628 258.3739 255.8704 254.6039 253.627 252.8973 251.4545 248.5158 248.1531 248.0764 248.1302 247.5717 247.9309 247.2297 246.1514 246.7825 246.4231 246.5657 247.9799 249.092 249.4387 249.8164 249.0259 249.471 248.9256 247.6516 245.9219 244.4787 243.5475 246.1889 248.2822 249.5429 252.6979 255.9078 257.9455 259.1518 260.7396 260.9359 260.5188 265.0094 268.7956 271.6069 274.2604 276.2557 277.2252 277.6996 277.1802 274.3495 270.0701 266.1336 262.1228 259.1644 256.2344 253.4688 251.2861 246.7172 244.7085 241.6135 238.787 238.2117 237.8631 237.9602 238.0993 238.2535 238.5422 238.6505 238.5548 238.5424 238.8987 239.5777 240.3035 241.7894 243.9906 247.7602 249.0809 250.331 250.9834 251.6195 252.0643 252.7401 253.5433 254.8393 257.8751 259.4047 261.494 261.8847 263.5603 264.2863 264.6101 264.0122 263.2644 263.9039 265.0452 264.7286 264.0976 262.3213 260.8853 259.9535 259.1495 258.3003 257.2588 253.5494 250.7549 248.4354 246.0527 244.4972 243.9411 243.8038 244.0747 244.3619 241.9826 241.5047 241.4328 241.5914 242.3185 243.2469 243.3513 242.3092 239.9746 236.3466 235.7289 236.7856 236.1858 234.5698 235.7162 233.6651 236.8575 236.6093 236.0823 235.8223 235.5833 235.5363 235.4346 235.9633 235.9386 235.6963 236.2281 236.6406 236.8202 237.0238 237.255 237.0959 235.9078 235.7223 235.1842 235.105 241.1193 242.5785 243.4802 243.5578 243.1175 242.4607 241.0649 240.6897 241.7821 243.1674 244.4305 245.2701 245.9612 246.7965 247.3592 247.768 248.389 248.9437 247.6992 247.2969 246.7807 245.8536 245.8666 246.6831 247.345 247.4025 247.5511 247.3743 247.4747 248.0462 248.4097 248.6827 248.2195 244.2984 243.1656 242.0848 240.9576 242.7808 246.4076 249.1039 251.9787 254.0581 256.0151 257.0024 257.8456 259.5312 262.1712 263.4578 264.1608 263.8786 263.6158 263.1761 263.0325 262.9033 263.3389 261.8202 260.4871 261.3952 261.566 259.9855 264.3128 267.5247 270.4138 272.5776 276.9658 279.0439 280.6924 282.3887 284.1053 285.7049 286.8362 286.9127 285.0076 286.311 286.7841 287.264 286.1733 285.2927 284.4754 282.5404 281.1107 279.4493 278.714 276.208 274.331 273.0231 272.1243 271.6327 271.6694 271.3737 270.7124 268.6995 267.3618 265.4858 264.5201 263.9909 263.6726 263.8461 264.6168 265.4655 265.9796 261.9511 260.5559 260.0783 260.359 260.5339 259.9598 257.7755 253.8176 252.2514 242.9632 238.6599 238.6524 -9999 -9999 +-9999 310.5643 308.5745 307.4679 307.822 311.9799 313.1595 313.6097 313.0431 311.6377 309.7912 307.551 305.8177 304.6044 301.3495 300.5612 299.8159 298.0469 296.5145 294.6595 292.9084 291.1821 289.7317 286.7999 284.4221 281.5931 280.8037 280.7241 280.8581 280.4337 280.9998 280.819 282.058 286.796 289.2264 290.805 292.0529 293.6025 294.8409 296.1161 297.4668 298.3314 297.4187 293.8293 291.0149 289.0432 288.2574 290.2094 291.0569 291.3174 294.3397 299.45 300.4805 302.4718 304.0963 305.167 306.3742 307.6409 308.7551 309.7794 312.8784 314.5227 316.4438 318.23 319.7852 321.261 322.5622 323.3226 324.1815 329.5663 332.7995 335.1874 336.4141 335.7961 333.6875 332.7981 333.0645 332.0367 327.6483 325.0608 322.676 320.5917 319.2057 318.0037 316.6261 314.6008 311.9218 305.6023 308.5049 311.5892 313.2791 314.6971 315.9861 317.4953 318.6205 319.9353 321.9413 323.1134 323.8367 323.2217 322.0699 320.2468 317.8287 320.7918 323.113 325.1101 325.1016 324.6808 326.7971 328.279 329.1923 328.8509 326.9746 325.9044 325.9484 323.3861 322.1957 320.8095 319.4567 316.9518 314.4142 311.5878 308.8521 306.5457 305.0069 304.5545 301.8236 299.0682 296.3722 293.3321 291.4054 291.1768 290.8921 289.4254 288.8709 289.7647 292.7705 295.0776 297.3955 298.7259 299.3854 299.7927 296.8432 297.4153 298.7867 298.9329 298.687 298.0301 296.8624 294.6532 291.0642 289.4292 288.9519 288.9985 292.4114 294.1387 295.0676 295.835 296.9709 298.5884 300.6935 298.6362 297.3238 296.7898 297.4 298.5825 298.0035 296.6323 295.8506 297.585 298.0215 298.3456 299.3357 299.881 300.0425 299.4391 298.0989 295.7321 289.7862 288.4515 286.9906 285.6401 284.08 283.819 284.8583 285.3022 282.6399 282.9837 285.4695 281.2501 281.5039 284.5466 287.8648 290.0772 291.9938 293.0887 293.5409 289.6773 285.535 283.7142 283.6696 285.8269 287.485 288.6152 290.0628 291.3976 294.1241 293.7297 292.3833 291.6339 292.1761 292.1389 290.8178 289.2407 288.1914 289.2772 290.8969 292.8917 294.3217 295.8019 297.5493 298.1989 297.2348 296.1793 294.0121 292.7591 291.1048 288.5222 284.8134 282.205 280.0315 277.1349 272.859 264.9475 262.9323 259.9646 260.0193 262.2142 264.6575 266.15 266.1052 266.6949 265.2902 263.4702 259.9937 257.5488 256.3342 254.9037 253.5609 252.336 250.6652 249.2103 251.5442 253.0708 252.2047 248.6217 246.6411 246.6164 245.3087 246.071 246.1514 246.2117 247.7944 248.6498 248.1786 248.7646 247.367 244.8523 244.6727 244.7522 246.0574 250.9651 251.0256 252.8651 254.092 257.989 261.5018 263.0321 264.2063 264.4635 263.3771 263.2908 266.8572 270.3416 273.0736 274.6363 276.5138 276.6289 274.5252 271.0354 267.6113 264.5895 260.8755 257.8289 255.4598 252.991 250.8082 245.5683 243.6298 240.8071 239.372 238.345 237.9531 237.9876 237.9757 238.0738 238.5816 238.6016 238.4414 238.0051 238.6848 239.227 240.3416 243.4718 245.5944 248.636 249.8631 251.2951 251.9143 252.2516 252.7516 253.7743 254.7079 255.5593 257.946 259.1914 260.8122 261.4373 263.1316 263.1905 263.1284 262.6017 262.4309 262.8444 264.6367 265.1643 264.799 263.9977 263.1917 261.4965 260.6699 259.639 258.0828 254.2159 252.312 250.0565 247.3774 244.8521 244.7626 244.7047 245.2142 245.0926 242.6467 242.5725 242.3838 243.2215 244.1871 244.8714 243.8314 241.8947 238.9171 236.2716 238.8758 239.5374 235.9422 235.0506 234.0393 235.8277 236.2758 236.0775 235.6023 236.0125 235.5025 234.2245 234.1258 233.6426 233.6655 234.0278 234.4369 233.9475 233.7378 233.7822 233.7331 233.6931 233.6561 233.6712 233.6847 233.6703 236.9561 240.7468 242.4822 243.0337 242.7977 242.1795 240.63 239.4317 241.3623 242.8198 242.7788 244.1114 244.4037 244.9252 245.7787 246.5584 247.4646 247.9519 246.865 245.1491 244.2695 244.2381 244.5019 245.1684 245.968 246.0804 246.1135 246.4221 246.6913 247.1371 247.361 247.6443 247.6684 245.3118 242.3151 241.4736 240.7525 244.4498 247.915 250.1812 253.3646 256.008 257.8401 259.2988 259.8427 260.7404 263.1131 263.6282 263.9078 263.9019 263.3341 262.5457 262.2221 261.8254 261.7034 259.5544 257.9333 257.3254 259.7357 260.6068 264.8716 268.3322 270.5931 272.0927 275.7218 277.7084 280.0081 282.3386 284.3012 285.6103 287.7719 286.6564 284.9249 284.7844 284.4003 284.6174 283.962 283.5272 282.2426 281.3386 279.2158 277.4952 277.4364 275.3946 273.3502 272.105 270.9058 270.3055 270.4636 270.5173 269.9045 268.6995 267.3618 265.4858 264.5201 263.9909 263.6726 263.8461 264.6168 265.4655 265.9796 261.9511 260.5559 260.0783 260.359 260.5339 259.9598 257.7755 253.8176 252.2514 242.9632 238.6599 238.6524 -9999 -9999 +-9999 311.7753 310.0142 309.0332 309.0095 311.6581 313.1235 313.5158 313.332 312.2891 310.5317 308.6685 306.9632 305.0828 302.4536 302.0267 301.4142 300.4298 298.6311 296.6906 294.7536 292.7015 291.3738 289.4129 287.443 282.9133 280.7602 280.6742 280.6964 281.0115 280.9093 280.8103 281.2105 284.9798 287.6782 290.0184 291.5492 292.5991 293.6808 295.4786 296.8991 298.0104 295.8165 290.8743 288.3036 287.4672 289.2736 291.6731 292.6236 293.9363 295.189 298.8939 300.4608 301.8264 303.2961 304.5412 305.2642 306.4225 307.9815 309.5285 312.4677 313.795 315.2367 316.5029 318.3502 319.42 320.2898 321.0732 322.7692 327.6891 330.1492 332.2991 334.1576 334.0688 331.8423 330.8401 331.0185 330.838 327.4741 324.9948 322.6768 320.3714 318.2109 316.6983 315.3278 313.7661 311.3325 304.9832 307.1521 310.4402 312.1097 314.6971 315.9861 317.4953 318.6205 319.9353 321.9413 323.1134 323.8367 323.2217 322.0699 320.2468 317.8287 320.7918 323.113 325.1101 325.1016 324.6808 326.7971 328.279 329.1923 328.8509 326.9746 325.9044 325.9484 323.3861 322.1957 320.8095 319.4567 317.4418 315.2512 312.5869 309.6402 307.5981 306.543 306.3469 304.1085 300.9306 297.2707 294.3337 292.8219 292.2147 292.1289 289.254 287.523 288.4299 290.2167 294.6381 294.636 295.9091 297.2821 297.9124 294.42 296.459 297.6092 297.8441 297.8444 297.3227 296.6868 295.3182 292.8313 287.159 287.8718 287.4684 291.1726 291.991 293.6566 295.7315 297.4186 298.6292 297.7408 296.0818 296.0241 297.4782 297.0514 292.6982 291.618 290.3305 291.8112 295.1933 296.6346 297.7859 298.7794 299.3797 299.6055 299.2579 298.4208 297.3477 294.3929 292.5853 289.7096 285.9124 285.0029 283.4396 281.9898 280.9295 280.5937 280.1918 284.0785 282.0865 281.3292 284.6231 287.4638 289.2629 290.7293 292.1748 293.1345 290.0854 287.567 283.1179 282.4596 284.4939 286.0388 287.3773 288.7761 290.6556 293.0031 292.2661 291.0388 290.068 290.2248 291.1026 291.7626 290.8488 289.4823 289.8484 291.6534 293.2716 295.0573 296.6213 298.0175 297.8945 296.6665 295.5179 292.486 290.6363 288.6916 284.4756 279.3362 274.9098 273.482 271.787 268.9379 264.8676 261.029 262.4135 263.739 266.0852 267.7121 269.7552 269.2874 269.4019 267.756 265.3357 261.9394 259.7606 258.1864 257.2032 255.4696 253.5969 251.4793 250.0682 254.0852 255.6983 255.4215 253.0546 249.4063 248.1136 246.8349 246.1483 246.2454 245.4428 245.7668 246.3673 246.5916 246.9458 245.3069 245.0973 244.7354 244.6944 252.3424 257.908 254.6362 256.157 257.9682 262.9202 265.1877 267.2905 267.7278 267.6167 266.3546 266.0976 265.3082 267.9292 270.7322 273.2575 274.2771 275.1168 271.9741 268.8078 265.8142 262.8047 259.6396 256.7655 254.9925 252.6446 250.2254 245.3007 243.985 240.5929 239.2327 238.3244 237.9584 238.0044 238.0085 238.0413 239.0936 238.5212 238.3847 237.6328 238.6628 239.3802 240.6327 243.0029 245.0765 248.9269 249.9672 250.7571 251.1098 252.27 252.4157 253.5003 254.2557 255.4298 258.0967 259.0402 260.114 260.5504 261.0084 261.3929 261.5818 261.1944 261.4412 263.3045 264.1984 265.0395 265.5878 265.2411 264.4471 263.4106 261.9399 260.5216 258.1257 255.377 253.1733 249.9536 247.1804 244.6069 245.7657 245.7683 246.4816 245.7843 243.5133 243.4752 244.3342 245.023 245.1657 244.7259 243.2576 240.5008 237.9816 239.9278 242.2491 240.3075 235.6588 234.6994 233.7081 235.7496 235.2656 233.6966 233.6089 234.828 236.7869 237.0374 237.0648 237.1286 236.9138 236.4878 235.2632 234.9674 235.0768 235.3197 235.3483 234.9675 235.4708 236.0741 236.824 236.6624 233.6897 237.0175 241.9981 241.7312 241.7577 241.478 240.0715 237.6069 239.6259 242.3921 242.0982 242.8972 243.7338 244.3355 245.0322 245.9104 246.7526 247.0056 244.3363 243.0745 242.5846 242.7308 242.9661 243.6625 244.2786 244.7413 244.6808 245.0803 245.7525 246.1484 246.2049 246.6271 246.3831 243.589 241.5886 240.074 240.1876 247.2658 250.0922 252.3304 254.7947 256.5951 258.3566 259.798 261.1319 261.6827 263.7276 262.8472 262.4927 262.0257 261.4797 262.5457 262.2221 261.8254 261.7034 259.5544 257.9333 257.3254 259.7357 260.6068 264.8716 268.3322 270.5931 272.0927 275.7218 277.7084 280.0081 282.3386 284.3012 285.6103 287.7719 286.6564 284.9249 284.7844 284.4003 284.6174 283.962 283.5272 282.2426 281.3386 279.2158 277.4952 277.4364 275.3946 273.3502 272.105 270.9058 270.3055 270.4636 270.5173 269.9045 268.9347 268.4653 267.6564 266.6207 265.1493 263.9078 263.0747 263.1185 264.1574 263.9753 262.9985 262.6745 262.3895 262.3043 261.612 260.3203 258.7574 258.064 258.0433 250.0172 239.8448 238.4886 -9999 -9999 +-9999 311.7499 311.8032 311.1872 310.7189 312.7339 313.5879 314.0452 313.909 312.5717 311.2975 309.6056 307.5572 306.1595 303.4985 302.6531 301.7144 300.9142 298.7744 296.8542 294.5838 292.3661 290.9065 287.7735 286.3333 282.9075 280.815 280.554 280.5284 280.803 280.0632 280.6447 280.6209 283.5984 285.5907 288.4643 289.9901 291.8996 294.027 295.85 296.6519 296.1594 292.9082 288.7809 287.3439 289.0521 292.2037 295.0047 295.6635 296.9574 297.0445 298.3931 300.056 301.7338 302.8161 303.5699 305.1325 307.5266 308.7323 309.1829 311.1756 311.8062 312.9407 315.2007 318.3502 319.42 320.2898 321.0732 322.7692 327.6891 330.1492 332.2991 334.1576 334.0688 331.8423 330.8401 331.0185 330.838 327.4741 324.9948 322.6768 320.3714 318.2109 316.6983 315.3278 313.7661 311.3325 304.9832 307.1521 310.4402 312.1097 313.313 314.6461 316.4647 317.5652 319.0034 320.8645 321.8253 321.9289 322.0441 321.0311 318.265 316.4773 320.0923 322.1684 323.1963 322.8863 324.3533 325.8676 327.4935 328.7021 328.1503 326.8248 325.2194 323.2237 321.8924 321.1912 319.9245 318.5452 316.8768 315.2828 313.7519 312.1428 309.9506 308.818 307.4484 305.0104 302.2824 300.3878 298.0836 295.4133 292.78 291.0648 288.9093 288.2617 288.2139 287.7941 288.6233 289.9053 292.0271 293.8199 294.3124 293.9246 295.5475 296.3411 296.8248 296.7908 296.6076 295.9644 295.2386 293.7574 286.6038 286.4713 287.0208 290.6006 292.4465 294.4854 296.0631 296.9511 297.1924 294.8833 294.3454 296.3779 298.1298 294.8419 289.5424 288.2163 287.3368 289.7149 294.295 296.1621 297.4226 298.1746 298.6267 299.0252 299.2578 299.1792 298.6652 296.4695 294.9749 293.3406 291.4562 288.9074 284.4354 283.0907 283.2415 281.9532 281.3368 279.6548 282.0746 280.0807 283.2771 286.3311 287.986 289.6815 291.3824 292.637 291.002 288.9213 285.9063 282.017 282.2044 284.7264 286.2271 288.0784 290.1266 291.5187 290.9511 289.2136 288.8276 288.8824 289.6488 290.8412 291.3689 290.4923 290.5302 291.7607 293.4213 295.1103 296.4545 297.6651 297.334 295.8038 293.6863 289.7806 286.9156 284.6106 280.5093 275.4139 272.5116 269.765 269.5291 268.3524 262.4459 266.2773 266.7425 268.418 269.7423 270.9868 272.4364 272.6334 272.0711 269.4332 267.2226 265.0052 262.4229 260.51 259.1049 256.9783 254.6425 251.7142 252.7981 256.3305 257.5511 257.0193 256.0816 253.4125 252.9048 255.5332 253.2437 245.8018 245.4192 245.6955 245.1427 245.4453 245.193 244.4836 244.1586 245.2106 248.392 258.5038 262.2829 261.078 260.4237 261.7157 265.7308 268.8886 270.7944 271.6747 271.5952 270.901 270.4311 268.6295 267.211 269.1168 271.5315 273.2781 274.1567 270.6387 267.9029 265.1395 261.6024 258.4526 256.2321 253.9445 252.4864 250.5002 246.6395 244.2333 242.7401 239.2014 238.1309 238.054 238.0146 237.9497 237.9458 239.0742 238.3465 238.2184 238.1876 238.3665 239.1518 240.805 243.5177 245.3679 247.5052 248.3748 248.8678 249.9348 250.8886 251.7862 253.0308 254.0302 255.4637 257.9895 257.955 258.3452 258.9274 259.5403 260.0545 260.2642 260.2847 260.7717 263.3935 264.3638 265.2953 265.284 265.2061 264.8688 264.4438 263.2232 261.7959 259.5634 256.8469 254.6869 250.7968 247.7144 246.9358 246.5654 246.9972 247.8317 248.0679 246.5208 247.863 248.1893 247.537 246.8591 245.2487 242.4732 239.5705 237.9069 243.0701 244.5799 242.9903 237.5806 234.7205 234.9532 233.8816 235.4062 240.1787 236.4848 236.7981 236.8121 236.966 236.6044 236.4772 235.9881 235.3246 234.9443 235.5032 236.7536 237.5924 237.1561 236.412 236.4407 236.3064 236.5057 236.7898 236.1338 233.6896 237.4235 241.2312 241.2602 240.9528 239.2111 237.8605 237.463 241.1532 241.7382 242.7 243.7504 244.3355 245.0322 245.9104 246.7526 247.0056 244.3363 243.0745 242.5846 242.7308 242.9661 243.6625 244.2786 244.7413 244.6808 245.0803 245.7525 246.1484 246.2049 246.6271 246.3831 243.589 241.5886 240.074 240.1876 247.2658 250.0922 252.3304 254.7947 256.5951 258.3566 259.798 261.1319 261.6827 263.7276 262.8472 262.4927 262.0257 261.4797 260.2973 259.6588 259.8005 258.5935 255.0295 258.9631 260.5888 262.6667 263.3205 266.0521 268.1794 268.7107 270.7845 275.8673 278.5285 280.65 282.6891 284.1523 285.6003 286.3307 285.5226 284.5005 283.6786 283.1174 282.9748 282.6469 281.6561 280.5289 279.3059 278.1326 276.4423 274.7872 273.5919 272.3505 270.7412 270.1169 269.3106 269.3263 269.5227 269.4516 269.7018 269.2706 268.3537 267.1243 265.5637 263.7335 261.8857 261.3596 262.2274 262.9767 262.6198 262.7145 263.0184 263.0364 262.2142 261.611 260.8708 260.925 260.0971 254.5353 250.416 239.909 -9999 -9999 +-9999 313.217 313.5304 313.37 313.2527 313.9625 314.3983 314.5688 314.0697 312.8416 311.6682 310.0007 308.6877 307.0191 303.8162 302.3334 301.2899 300.4088 298.665 296.9606 295.1848 292.9008 291.1497 286.9339 284.4727 282.1877 280.9536 280.6824 280.5463 280.5098 279.2584 280.5768 280.8875 282.0102 283.7999 286.7738 289.0491 291.8996 294.027 295.85 296.6519 296.1594 292.9082 288.7809 287.3439 289.0521 292.2037 295.0047 295.6635 296.9574 297.0445 298.3931 300.056 301.7338 302.8161 303.5699 305.1325 307.5266 308.7323 309.1829 311.1756 311.8062 312.9407 315.2007 316.4913 317.9595 319.217 321.0403 322.8538 326.1732 327.9703 329.7281 331.6664 331.8331 330.059 328.4009 328.7849 329.0927 327.0351 324.6639 322.5193 320.5559 318.3359 316.1039 313.95 312.3896 310.6046 304.8059 305.3771 308.7909 310.8366 312.6682 313.9331 315.6496 316.6616 317.6886 319.1954 319.9345 320.052 319.9551 318.6176 315.7957 314.7425 316.58 317.6735 319.4412 321.287 323.4479 325.2972 326.8095 328.1932 327.4819 326.3329 324.303 322.0648 319.6679 319.5072 318.5405 316.9966 315.4484 314.2902 313.3209 312.3663 311.162 309.4572 308.023 305.7209 303.557 302.2316 300.2592 297.2753 292.3296 290.394 289.3231 288.634 287.571 287.3889 286.8363 287.0233 287.8431 290.2918 291.9268 292.2031 294.3427 295.2694 295.3527 295.0094 294.9381 295.1901 294.799 293.3402 287.4503 284.6454 286.9168 291.4357 293.9765 295.2416 295.5317 295.6043 294.9409 292.9048 293.0262 295.4659 295.4186 292.2621 287.9736 286.1374 286.9641 289.3818 293.8021 295.9231 297.0215 297.4965 297.8423 298.1998 298.6905 299.3165 299.4886 297.9549 296.7154 295.5219 293.7965 291.8402 288.6108 285.4307 286.0433 284.8094 285.4424 279.4202 278.1945 277.9667 280.9565 284.5942 287.0834 288.8138 290.2852 291.8978 290.5528 288.8539 286.8252 283.3247 280.401 283.7493 285.5543 287.4328 289.1744 289.9775 288.9287 287.5127 288.0227 288.231 288.9884 289.7356 290.8523 291.0696 290.7266 291.7486 293.1857 294.6664 296.2875 297.3526 297.1879 295.3263 292.3972 287.2681 283.9622 281.2366 277.4861 274.5682 275.5036 278.6836 279.8086 278.9096 272.1993 270.8995 270.5255 271.349 272.7493 273.8388 275.0482 275.2216 274.2446 271.104 268.8387 266.014 263.4296 261.4741 259.1617 257.7158 254.9594 251.0126 255.5564 258.2982 259.2138 259.1555 259.1188 254.935 258.1016 262.7361 263.8633 257.383 256.136 249.6019 245.4733 245.5142 245.3658 245.1703 245.5631 252.6885 255.1471 264.1135 266.9141 266.0539 265.065 266.1917 266.4802 271.0843 273.0752 274.4033 275.8481 275.2174 274.2242 271.7537 270.9276 270.2548 271.9043 272.5898 272.4808 269.7532 267.0887 264.5484 260.8842 257.9373 255.9252 253.8753 252.6332 250.5021 246.2115 243.6497 242.382 239.6466 238.6604 238.2488 238.0186 237.8459 237.9518 239.0249 238.2082 238.1156 238.2124 238.1837 238.4731 239.9967 242.6477 243.6961 245.246 246.2955 248.2808 249.2428 250.6995 251.4339 253.0628 254.1074 255.7618 256.5344 256.7878 257.1053 257.2185 257.9672 258.5959 258.7095 259.3007 260.3863 262.9302 264.1881 264.9077 264.6704 264.5605 264.8797 265.1787 264.5643 263.053 261.8079 257.771 254.8994 250.8779 247.2739 248.1469 248.2079 248.8871 250.9423 251.2906 253.0288 252.8152 251.5971 250.4383 248.1216 245.6378 241.9464 239.4165 237.7569 246.3061 247.3097 246.0466 242.6343 234.7205 234.9532 233.8816 235.4062 240.1787 236.4848 236.7981 236.8121 236.966 236.6044 236.4772 235.9881 235.3246 234.9443 235.5032 236.7536 237.5924 237.1561 236.412 236.4407 236.3064 236.5057 236.7898 236.1338 233.6896 237.4235 241.2312 241.2602 240.9528 239.2111 237.8605 237.463 241.1532 241.7382 242.7 243.7504 244.223 244.7664 245.5709 245.8525 245.8301 242.2789 241.4604 241.4099 241.638 241.9385 242.3178 242.3837 243.0297 243.6083 244.0201 244.5469 244.7868 245.0284 245.3205 244.7222 242.0354 238.909 240.1038 240.4971 247.0905 250.1098 252.5855 254.6052 256.3434 258.0783 260.0245 261.3883 262.0147 261.3574 260.9423 260.1404 259.6879 259.1962 258.6629 257.2796 256.7717 255.7185 258.1746 260.0372 261.8625 263.7329 265.2214 266.5343 268.2784 270.5951 272.9939 276.8726 278.5385 280.4052 282.0977 283.1941 283.8245 283.7057 283.2702 282.7574 282.3666 282.1828 282.0452 281.3112 280.8812 279.0253 277.4657 276.4976 274.842 272.3722 271.6999 270.9042 269.6844 269.2143 268.408 267.7865 268.0943 268.6235 269.5609 269.332 268.246 267.1744 265.1038 263.5096 261.2491 260.2362 259.8579 261.1679 261.3601 261.6312 261.9742 262.2576 261.7945 261.3323 261.3146 261.8381 261.5207 256.6576 252.4282 245.8005 -9999 -9999 +-9999 314.4009 315.0989 314.623 314.2534 314.3344 314.6173 314.4029 313.6119 312.4176 311.264 310.0007 308.6877 307.0191 303.8162 302.3334 301.2899 300.4088 298.665 296.9606 295.1848 292.9008 291.1497 286.9339 284.4727 282.1877 280.9536 280.6824 280.5463 280.5098 279.2584 280.5768 280.8875 282.0102 283.7999 286.7738 289.0491 292.479 294.0961 294.9252 294.2001 292.9421 289.1888 286.9556 288.9774 292.7523 295.8836 297.5543 300.5472 301.5986 301.2386 299.7369 299.7778 301.3598 302.6966 304.2046 307.1716 309.759 311.3702 312.5574 313.2926 314.2192 314.673 314.4232 315.2186 316.9976 318.8918 320.8906 321.8962 324.7498 326.1027 327.2376 328.4051 328.5269 327.7826 326.4024 326.3912 326.8029 325.7126 324.147 322.1971 320.1915 318.313 315.9267 313.5697 311.4299 309.3443 304.4572 304.798 308.2435 310.1521 311.8842 312.8823 314.3658 315.4456 316.0182 317.8315 317.8881 317.5283 317.1943 315.5914 312.9586 311.9034 313.6604 316.0737 318.2889 320.9292 323.4611 325.0261 326.5905 327.8592 327.2855 326.3634 323.6532 321.4825 317.9834 317.6513 317.0865 316.3644 314.3667 313.154 312.1673 311.1832 310.7026 309.1609 307.8092 306.0957 304.6553 303.1897 300.6266 298.1031 294.0699 291.0388 292.156 289.1566 288.1602 287.3759 287.0061 287.178 286.7054 286.7046 287.4897 290.1617 291.4847 292.6385 293.1896 292.9568 293.4732 294.3163 294.5007 293.2845 286.7949 283.696 286.1539 290.6604 292.7819 293.5199 293.6593 293.5439 292.721 291.2549 293.1568 294.563 291.6093 288.0809 286.1563 284.8721 286.1556 289.0179 293.5486 295.3188 296.2702 296.3362 296.489 296.9427 297.8752 298.4204 299.1452 299.2654 298.5354 297.2962 295.9698 293.9715 292.258 290.3093 288.999 289.9025 288.2687 283.8828 279.0888 276.8429 277.6136 281.7704 284.0784 286.2484 287.9252 289.5216 288.0037 287.9286 287.3025 284.1851 279.7074 282.8351 284.6093 286.8554 288.3062 288.3139 287.049 286.3964 287.0272 288.0179 288.753 289.1932 289.9146 290.7182 291.0248 291.8492 293.0276 294.7956 296.1852 297.4481 297.1584 295.6379 293.5097 288.3374 286.0594 282.7661 281.1751 281.3461 283.3356 284.7384 284.125 282.3475 275.896 274.5006 273.167 273.7371 274.5042 275.8884 276.2092 274.5364 273.2466 271.8167 269.034 265.5811 263.3924 261.3286 259.6746 256.9168 252.5159 251.7162 257.5492 259.5209 261.6549 262.6048 261.8882 257.6953 260.4849 265.615 269.0657 266.7784 265.039 259.4152 248.6681 245.9797 245.8737 245.9274 253.0321 258.8638 263.1133 268.0599 269.3991 269.6812 269.7229 270.4046 269.341 270.8014 274.203 276.4171 279.1029 278.7194 277.4499 275.872 273.9476 272.6563 271.3154 270.1759 270.3159 268.3275 266.0039 264.1122 260.6384 257.9268 256.1031 254.5559 253.1716 251.323 245.258 243.0481 242.1039 240.001 239.049 238.2702 238.3007 238.437 237.993 237.9713 238.113 238.0481 238.1477 238.1145 238.1569 238.8727 239.8838 241.0389 245.0381 247.4318 249.0549 250.6321 250.9495 252.4958 253.2236 254.4016 255.2912 255.1907 255.0897 255.0006 255.8309 256.572 257.0787 258.7095 259.3007 260.3863 262.9302 264.1881 264.9077 264.6704 264.5605 264.8797 265.1787 264.5643 263.053 261.8079 257.771 254.8994 250.8779 247.2739 248.1469 248.2079 248.8871 250.9423 251.2906 253.0288 252.8152 251.5971 250.4383 248.1216 245.6378 241.9464 239.4165 237.7569 246.3061 247.3097 246.0466 242.6343 239.2776 237.1163 238.4181 244.326 248.9637 238.8759 236.5886 236.1245 236.6421 236.6658 235.9916 235.4781 235.3292 235.5 237.2369 239.7721 239.6246 238.7682 237.8984 236.4345 236.2245 236.0676 236.403 237.1414 236.1224 233.692 236.064 241.3168 241.0297 239.025 237.4091 237.0307 240.9582 242.5126 242.9743 243.4182 243.6585 244.3566 245.031 245.2706 244.6085 240.8721 240.521 240.5358 240.7388 241.1182 241.1041 241.3691 241.9859 242.628 243.1898 243.4085 243.6261 244.0831 243.9891 241.8315 240.2515 239.8192 239.907 241.6929 247.3812 249.8206 251.8994 254.0773 256.7812 258.8077 260.3331 260.9902 261.2388 259.6227 258.8104 257.9174 256.8479 256.1926 255.4613 254.3692 253.7343 253.4641 258.6913 260.8075 262.1326 263.4002 264.7499 266.2108 268.3491 270.5895 272.3854 275.6946 277.4982 279.3101 279.8241 280.7814 281.6439 281.2473 280.973 280.8072 281.2679 281.0726 280.8634 280.1553 279.6502 278.2636 277.3204 275.5095 274.4225 271.2197 270.2444 269.4453 268.8611 268.031 267.3866 266.0756 265.1843 267.2341 269.1097 269.1121 268.5785 267.4152 265.4764 263.6722 261.6707 260.1111 258.9334 258.7016 259.3538 259.7519 260.3057 260.5023 260.2582 260.0882 260.2479 260.9952 261.7415 257.8976 254.1722 250.1623 -9999 -9999 +-9999 314.4009 315.0989 314.623 314.2534 314.3344 314.6173 314.4029 313.6119 312.4176 311.264 309.4193 308.2424 306.857 303.1087 301.7265 300.5889 299.4671 298.2631 296.8343 294.8405 293.0755 290.6727 286.652 285.1201 282.9228 281.3097 280.6911 280.5061 280.4832 279.4463 280.6386 280.2884 281.519 282.8369 285.4895 288.5149 290.8069 292.5655 293.1019 291.2327 288.734 285.6485 287.9066 292.3004 295.9242 298.0748 301.389 303.8915 305.2228 304.8746 302.8176 302.7665 302.8245 304.3724 305.7369 307.6348 309.207 310.6112 311.9147 314.5582 315.4701 316.4301 317.1757 318.0169 318.5301 319.1519 320.1747 321.6266 323.8516 324.1556 324.5436 325.323 325.8084 325.7424 324.6931 324.9262 325.0453 324.0687 323.1078 321.5999 319.5477 317.6521 315.7576 313.8189 311.8953 309.5211 304.243 303.6425 306.3138 308.9465 310.0251 311.2347 312.9855 314.4665 315.2659 316.5753 315.7189 314.7524 314.2026 311.2642 311.5857 315.751 318.7111 320.7725 324.9082 325.7926 326.1115 326.0645 326.7581 326.9843 326.5563 324.9646 322.5555 317.7362 316.7525 315.8109 315.8352 315.32 314.0361 312.627 311.417 309.7236 309.0945 308.4637 307.6248 306.4278 304.3461 302.3853 300.0724 296.8135 292.9458 291.7333 295.9777 293.955 291.1133 289.5388 288.7961 288.8083 286.9446 285.2455 285.6128 286.7864 287.3891 289.3682 290.4165 290.535 291.7762 293.1653 293.4962 292.539 285.1376 283.2847 284.2962 288.1965 289.9091 290.9553 291.9768 291.6528 290.7904 290.9591 293.1337 294.5458 293.1438 286.9885 284.8048 284.0248 286.4998 289.8228 293.3249 294.5114 295.2226 295.1083 294.9678 295.8752 296.5298 297.8062 299.0127 300.1316 300.1132 298.7402 297.1278 295.4871 293.897 291.6689 291.8991 292.0815 290.8277 288.1725 284.411 280.1505 275.8061 277.0441 280.104 283.0833 286.2917 287.1097 285.6359 286.2729 286.6107 284.0486 277.1902 281.0639 283.3073 284.9293 286.2443 286.4802 285.4374 285.5111 286.3763 287.7146 288.2025 288.5976 289.1693 289.8405 291.1027 292.002 293.3539 295.0863 296.4249 297.3914 297.4002 296.3721 294.6303 291.4409 291.2065 289.9677 286.0942 285.0769 287.2117 289.1476 288.5168 285.3632 278.8083 277.2821 276.1022 275.7053 276.0027 276.331 275.2725 272.7162 271.3032 269.256 267.641 266.2549 263.4427 260.6393 257.6419 254.5232 251.7637 256.7547 258.9206 260.989 263.2915 264.628 264.0991 260.3919 262.581 266.3963 270.1931 271.7866 269.7053 264.4006 256.0671 247.6499 247.659 250.3895 255.752 261.164 265.0071 268.436 269.8217 270.5663 271.7414 273.1858 273.6202 275.0334 275.8669 277.7988 280.5754 280.7277 280.0424 278.3904 276.6155 273.0894 271.885 269.4666 266.3858 266.8807 264.9832 262.8591 259.8745 257.9 256.3079 255.0062 253.1804 251.323 245.258 243.0481 242.1039 240.001 239.049 238.2702 238.3007 238.437 237.993 237.9713 238.113 238.0481 238.1477 238.1145 238.1569 238.8727 239.8838 241.0389 245.0381 247.4318 249.0549 250.6321 250.9495 252.4958 253.2236 254.4016 255.2912 255.1907 255.0897 255.0006 255.8309 256.572 257.0787 258.1945 258.9453 259.7933 262.6115 263.5075 264.0431 264.2267 264.0518 264.4829 264.415 263.6661 262.2021 259.7853 257.2534 253.7292 250.4805 249.2608 249.7978 251.8014 253.3346 254.761 255.8065 256.4211 255.0784 253.1623 252.0717 250.1434 246.1274 241.1922 239.1005 240.8027 248.799 249.732 248.9547 248.1517 245.904 244.8486 246.2082 249.7483 251.9089 241.5201 236.724 236.1274 236.0224 235.873 235.6659 235.409 235.4228 235.8151 238.2823 239.4581 239.5506 239.4405 239.7575 238.7599 236.2382 236.1586 235.917 236.8109 237.1584 236.7995 233.6902 237.6722 240.8588 238.4395 235.0641 235.6547 239.9144 241.1932 241.8124 242.0033 243.4438 244.1672 244.7291 244.2735 243.2212 240.0922 239.9945 239.9433 240.0799 240.2469 240.2555 240.9239 241.3613 241.5501 242.1817 242.1097 242.1056 242.8699 241.8201 239.9267 239.0702 239.6186 240.3102 243.4648 248.2302 250.254 252.2849 254.5386 256.898 259.0462 259.9235 260.1495 259.7709 257.8975 256.2529 255.4946 253.4513 251.7206 251.0424 251.1577 250.9586 252.6476 257.3169 259.3372 261.2534 262.2461 263.6133 264.5238 267.1825 269.1678 270.9937 274.755 276.0135 275.7471 275.9654 277.8109 278.5848 278.5122 278.7235 279.0261 280.6218 279.9773 279.2921 278.4519 277.7648 277.3515 276.3073 274.2925 273.3901 271.111 269.869 268.5703 267.1405 266.3565 265.2685 264.1075 263.3074 265.9607 267.6971 268.5304 268.517 267.9995 265.6829 263.5212 261.6298 260.276 258.7756 256.6446 257.3254 257.7687 258.2883 258.5107 258.4301 258.7296 259.1458 259.719 260.2966 257.8194 255.0654 252.2011 -9999 -9999 +-9999 315.8394 315.4387 314.9431 314.6934 314.4524 313.8522 313.4776 312.7861 311.7418 310.3177 308.5934 307.1241 305.67 302.6869 301.1501 299.5823 298.4958 297.2504 295.828 294.219 293.3428 291.8855 288.2322 285.733 282.7299 282.1912 281.4966 280.6821 280.5147 279.7562 280.6786 280.2972 281.353 283.1722 286.3614 289.0948 291.5092 292.1284 291.1515 288.0741 285.3296 286.0916 290.4103 294.0457 297.4302 300.1587 302.8146 305.2828 306.9709 307.2015 305.2902 305.1084 304.7458 305.2458 306.1251 307.5573 308.8018 309.727 310.8858 314.0634 315.3083 316.8102 318.11 319.3264 320.0047 320.5136 321.255 322.0603 322.0744 321.9216 322.2842 323.0681 323.2611 322.7728 323.1405 323.6385 322.9987 322.5734 321.7813 320.7674 318.9571 317.2221 315.6337 314.4259 313.2196 311.7617 304.7101 303.2499 304.1939 306.846 308.5381 310.4225 312.1712 314.1844 314.3197 314.2318 313.3069 310.437 309.255 311.1279 314.6922 318.0261 321.6897 324.3295 328.3688 329.3146 328.5213 327.2607 326.3386 325.2525 323.8914 322.2894 320.1217 316.0738 315.0157 314.3745 313.7123 313.7536 312.8094 311.8542 310.5058 309.5566 307.8249 307.1964 306.2704 304.9371 303.2303 301.4113 298.8943 295.3131 292.837 293.8475 299.2124 299.3024 295.1417 293.0995 292.1804 291.9464 292.2251 287.2341 283.8138 283.7648 284.4496 285.7312 286.9846 287.9811 289.7434 291.8154 292.7972 292.0348 285.5235 282.4594 281.4939 284.4918 286.6936 288.6977 289.9796 289.9464 288.3267 290.7139 292.9651 294.0203 294.2057 290.9223 285.5679 283.8121 287.2568 289.7479 293.3116 294.1894 294.2746 293.9624 294.1323 294.6644 296.153 297.9166 299.2329 301.0073 301.1613 300.1125 298.2947 296.8006 295.74 294.9558 294.4579 294.3082 292.8276 292.0263 289.7661 286.2112 281.0928 275.6403 275.1992 279.2723 283.4153 285.0823 283.4855 284.7715 285.3772 283.6532 278.0319 278.2218 280.792 283.1211 284.4399 284.2597 284.1089 284.9693 286.0504 287.5673 287.793 287.7961 287.9194 288.3616 290.1621 291.5988 292.9926 294.4665 295.6878 296.4412 296.7851 296.9485 295.8614 293.109 294.3554 293.0866 289.5164 287.6567 289.9627 292.0198 291.5717 287.6946 281.2795 279.6671 278.7299 277.8445 277.6898 277.216 275.5733 273.4946 271.9012 270.5299 269.3643 266.6897 263.5806 260.6427 257.2463 252.047 255.449 259.4612 260.0798 262.805 264.5752 265.8372 266.2064 263.7584 265.283 268.753 271.4229 271.6882 268.489 263.792 256.0671 247.6499 247.659 250.3895 255.752 261.164 267.3627 268.436 269.8217 270.5663 271.7414 273.1858 273.6202 275.0334 275.8669 277.7988 280.5754 280.7277 280.0424 278.3904 276.6155 273.0894 271.885 269.4666 266.3858 266.8807 264.9832 262.8591 259.8745 257.9 256.3079 255.0062 253.1804 251.2025 245.0528 242.7114 241.8911 241.6687 238.8247 238.2211 238.6411 238.4427 238.2106 237.6727 237.9734 238.0366 238.0362 237.9767 237.9734 238.484 239.2457 240.1069 245.3378 247.5183 249.6062 250.5408 252.0318 252.8312 254.5099 254.7481 254.2369 253.1327 253.6258 254.5826 255.9434 256.4213 257.5844 257.965 258.7011 259.0947 261.8303 262.7486 263.3261 263.7419 263.7387 263.9658 263.263 262.0563 260.7825 258.3611 255.0049 252.152 250.4852 252.0733 254.6215 255.9505 257.2636 258.4252 258.4277 257.3927 256.683 255.0615 253.7844 250.9639 247.3755 241.5078 239.6922 242.7484 249.5645 251.2592 252.0177 251.5532 250.4056 250.265 250.243 252.8622 252.0575 243.6342 240.7863 236.7635 235.7157 235.3143 235.2638 236.4165 240.6115 240.9993 238.7969 239.4083 240.195 239.3884 239.6205 239.3983 237.5511 235.5409 235.6285 236.8172 236.1389 236.6244 234.6487 233.6752 237.0729 235.6034 234.5552 235.1592 238.415 240.4587 240.7274 241.617 243.3142 243.9967 244.0064 242.9794 241.8078 239.7614 239.2669 239.2847 239.2409 239.2729 239.9179 240.6205 240.993 241.1104 241.1315 240.5599 240.4135 240.1205 239.7352 238.7487 239.4395 239.878 241.9787 244.5466 248.7132 250.6487 252.7042 254.7684 256.8556 258.1584 258.4187 258.3894 257.8361 255.4514 253.7417 251.1715 248.6252 249.8024 254.7676 257.6547 254.8924 251.3436 254.4547 256.1502 257.8585 258.9697 260.0808 263.3861 265.5593 267.5486 269.4048 271.6921 270.8656 270.771 271.6893 273.9471 275.946 276.8054 277.335 278.6772 280.1655 278.8598 277.5202 277.061 276.1264 275.0497 274.3621 274.119 272.7989 270.2143 269.0561 267.8237 266.6579 264.9854 263.1636 261.0697 260.9118 264.0397 266.3768 267.1374 267.616 266.9772 265.2274 263.247 261.0353 258.9385 257.3304 255.7948 255.676 256.3221 256.4704 256.6009 256.1232 256.5025 257.3607 258.2357 257.3174 256.3973 254.8099 251.5998 -9999 -9999 +-9999 316.0739 315.462 314.4187 313.9739 312.7016 311.4961 310.9381 311.4519 311.137 309.9407 308.7753 307.211 304.3867 301.2125 299.997 298.2137 295.861 294.72 293.6107 292.1867 291.6321 290.5473 286.0741 283.6588 284.8628 284.1064 281.9924 280.7708 280.4648 280.8225 279.2257 280.2889 281.7144 284.4395 287.6049 289.7704 291.9412 291.0986 288.4862 286.1004 285.745 287.0809 291.5519 294.9208 297.1901 300.8007 303.1083 305.4433 307.2193 307.5143 306.993 306.8929 306.4605 306.3038 306.6214 307.6826 308.9384 309.6869 310.6295 312.8236 313.9658 315.2924 316.9604 318.961 319.8464 319.689 320.0148 320.9247 320.4055 320.2455 320.4563 320.6867 320.4301 320.8765 321.8247 322.0348 321.2157 320.4512 320.1421 319.5792 318.2278 316.6258 314.8485 313.3447 312.6671 311.9519 306.9007 302.5057 303.4071 306.578 309.0916 311.1851 311.9482 312.0019 311.9569 311.2867 309.6352 308.3263 310.2699 313.2624 315.778 318.5753 321.3924 323.2787 327.559 328.9701 328.589 327.0836 326.0968 323.7555 320.6874 318.1138 315.9682 313.2529 312.4054 311.659 311.3064 311.0718 310.6042 310.0629 309.1292 308.4497 307.2523 305.5001 304.6208 303.613 301.7886 300.4706 296.5634 293.6208 294.0956 295.2399 300.5659 300.3821 298.1315 296.0341 295.9159 295.3542 293.7661 291.4462 286.5611 282.7249 282.8572 283.1288 284.3928 285.8768 287.5956 290.1889 290.1442 289.4496 285.805 282.6561 281.6127 281.8226 284.5641 286.3196 287.5811 287.8798 286.8912 290.3212 292.0204 293.3449 293.1437 290.7589 285.7556 283.239 286.6158 289.5271 292.7927 293.3563 293.0203 292.1837 292.7878 294.1858 296.062 298.0994 299.8526 301.7056 301.8373 300.7117 299.041 298.0366 297.2304 296.8763 296.1829 295.8641 294.8469 293.7198 292.4799 288.8848 285.7967 280.5023 274.9491 275.1458 279.7668 281.8995 281.2125 282.6878 283.6772 281.9273 278.0847 276.2929 279.1106 281.0725 281.9733 283.3925 283.8181 284.6144 285.8273 286.8627 286.7743 286.756 286.7057 286.9777 289.0903 290.4165 291.8586 293.3576 294.3099 295.2636 296.0367 296.6458 296.5767 294.6837 295.3176 294.4659 291.4113 289.9585 292.4614 294.4479 291.5717 287.6946 281.2795 279.6671 278.7299 277.8445 277.6898 277.216 275.5733 273.4946 271.9012 270.5299 269.3643 266.6897 263.5806 260.6427 257.2463 252.047 255.449 259.4612 260.0798 262.805 264.5752 265.8372 266.2064 263.7584 265.283 268.753 271.4229 271.6882 268.489 263.792 255.5389 248.2829 248.6125 250.7188 254.4685 257.4634 263.2188 265.7407 267.1082 268.2698 272.4677 274.4544 275.7314 276.6566 277.8518 279.0218 281.2849 281.9963 280.8785 278.909 276.8062 273.6473 271.8848 269.6054 266.5913 263.55 262.8096 261.0538 258.8831 257.2958 256.2193 254.5595 253.099 251.3746 246.9499 244.4218 243.2255 242.6596 242.1314 240.8393 239.8725 239.1278 238.5083 237.4816 237.9366 237.9044 237.9798 237.6424 237.9049 238.187 238.6801 239.187 244.8665 248.0093 249.3887 250.8924 252.7133 255.2084 254.1195 253.8431 253.2175 252.5724 253.6491 254.3232 255.9761 256.5777 257.3865 257.5385 257.6911 258.5742 261.7161 261.957 262.5823 263.0116 263.0625 263.291 262.5462 261.4562 259.9923 256.6622 253.399 250.3927 253.3938 256.1339 257.8195 259.3263 259.484 260.6922 260.704 258.181 257.3912 256.8583 254.7285 251.9548 248.0731 243.3523 240.0144 244.1469 250.4105 252.3913 253.7513 254.4122 254.4491 253.5423 252.1034 253.1936 252.8009 247.7424 245.7081 243.8837 244.5663 242.8829 243.6135 247.347 246.9846 245.5228 241.1155 239.7296 239.1389 238.7292 238.7133 238.3175 236.5396 234.9749 233.3566 234.1595 235.1821 236.6975 236.3937 233.6804 234.853 234.6095 234.9848 235.3719 237.2012 239.1846 240.1496 241.2766 243.1853 243.6372 243.2471 241.9877 241.0744 239.6945 238.8377 238.751 238.7943 239.0904 239.7485 240.0784 240.3679 240.5822 240.7595 240.2168 239.5638 239.8644 238.3333 239.3194 239.5013 240.5879 243.1699 246.9375 249.0558 250.3784 251.9656 254.0454 255.3058 256.2544 256.3434 255.7618 255.2998 252.7239 249.722 247.4529 250.7406 254.67 261.111 264.5016 263.2818 260.5851 252.9592 254.395 255.3939 257.1921 258.5622 260.226 262.1395 263.7938 265.5547 265.5013 265.5553 267.6389 269.709 271.9128 274.0378 275.4327 276.8206 278.3833 279.7133 277.9198 275.7868 275.6826 274.6292 272.0344 271.3372 272.0563 271.5892 269.0045 267.4919 266.5359 265.7075 264.4106 263.7287 263.0622 259.5417 261.7185 264.6857 265.3234 266.2323 265.8206 264.1093 262.2511 259.7011 257.6874 256.0994 254.4807 254.6427 255.6661 255.168 254.4306 253.4186 253.4076 254.1039 255.1304 253.6682 252.4601 250.7929 247.0956 243.1423 -9999 +-9999 314.9807 313.5543 312.8042 312.3892 310.2787 309.1566 308.4146 308.6695 308.8842 309.7466 309.075 307.8901 305.5102 299.6929 298.1292 296.2125 294.5142 293.1782 291.5425 289.0599 287.0717 285.88 286.6751 287.5259 287.5426 286.1024 283.4805 281.5559 280.521 280.278 280.4363 280.1512 280.8748 284.3553 287.5403 289.9512 290.8635 290.2154 286.6375 283.8007 287.4701 289.2942 291.9257 294.0051 296.8173 299.7556 302.4705 304.5601 306.1079 306.9187 308.096 308.1935 308.2368 308.078 308.028 308.4609 309.2046 310.0164 310.4984 311.4212 312.1937 313.7544 315.1643 316.5215 317.648 317.5024 317.4018 318.3409 318.5037 318.0379 318.3473 318.7377 319.2708 319.9154 320.3996 320.3635 319.5567 318.2642 318.163 318.0153 317.3503 315.7632 314.3186 312.5212 311.5978 311.5403 307.5226 302.129 301.8433 305.6259 308.0852 309.8275 309.7749 309.2721 308.9414 308.3166 307.0524 308.317 312.3952 314.6698 316.5589 318.3815 320.62 322.2527 326.2246 328.1908 327.9843 326.2331 326.1007 323.1336 321.892 320.5098 318.8369 310.3658 309.9187 308.6984 308.8455 308.7462 308.1008 307.704 307.3485 306.4828 304.5727 303.9006 303.1572 302.0949 300.1014 298.2062 294.8345 294.4567 295.6771 296.8837 300.7402 300.9556 299.5737 299.0012 297.9073 296.2166 294.9199 293.1273 289.8185 283.5319 282.8755 280.9272 282.4232 282.8689 284.7087 285.2323 285.2136 285.3944 284.6438 282.9473 281.6185 280.2797 282.8192 284.7784 285.824 284.8613 285.8806 289.5753 291.1181 291.9867 291.3093 288.7621 283.4839 283.4063 286.8677 289.931 292.0509 291.7326 290.882 290.8208 291.6418 293.5873 295.8408 297.7924 299.7129 301.8544 302.1593 301.3155 300.1974 299.1409 298.3452 297.9183 297.6794 297.4237 296.4385 295.9302 294.4129 291.6438 288.6669 284.0323 276.9633 273.6172 275.9769 279.4344 280.0288 281.508 281.7107 281.9273 278.0847 276.2929 279.1106 281.0725 281.9733 283.3925 283.8181 284.6144 285.8273 286.8627 286.7743 286.756 286.7057 286.9777 289.0903 290.4165 291.8586 293.3576 294.3099 295.2636 296.0367 296.6458 296.5767 294.6837 295.3176 294.4659 291.4113 289.9585 292.4614 294.4479 293.1797 289.645 283.7512 281.4899 279.9651 279.1707 278.8726 278.489 277.2268 275.5782 274.5705 272.2423 269.3879 266.6252 263.261 260.3537 255.2919 252.1874 256.455 260.2802 261.1705 264.3029 266.3003 267.2842 268.1032 267.494 267.4191 269.3196 271.2609 269.7047 266.9897 262.243 253.6331 249.808 251.3745 254.0816 253.3999 255.7749 261.2767 262.8294 264.5498 268.8744 272.728 274.5966 276.2934 277.6211 278.5717 279.634 281.3082 281.6949 280.2891 277.6448 275.7071 273.2433 271.1853 269.1776 266.4131 261.6803 259.7925 258.8773 257.3286 254.9389 253.4443 252.7258 252.0153 251.1211 248.4532 246.4232 244.6272 243.3784 242.7251 241.2777 240.634 239.7946 238.6242 237.444 237.8863 237.9158 237.9291 237.4015 238.0067 238.0932 238.3252 239.037 246.284 248.0299 249.4402 252.0721 254.707 255.1293 253.8515 252.2638 250.7899 251.8753 253.5793 254.1654 255.4941 256.1193 256.5121 256.7697 257.13 258.0423 260.5129 261.2485 261.7808 262.0545 262.2995 262.7424 262.3222 260.9616 259.0048 256.1184 254.8583 255.5874 257.1752 259.0859 260.7063 262.0352 262.2012 262.7066 262.2158 260.4212 259.3118 257.979 255.3889 252.9966 249.2141 244.7289 240.6236 244.7672 250.5308 252.7543 254.9303 256.2758 257.1051 256.9548 255.6336 255.1509 254.3388 251.214 250.8219 249.909 251.5275 251.4697 250.7541 249.3027 247.1454 244.7092 241.0228 239.7107 238.8148 238.769 238.5666 235.7216 233.4095 233.3711 234.8411 233.3992 235.6113 236.0292 235.084 233.6607 233.8118 234.66 234.7915 234.5653 237.3004 239.1898 239.5555 240.4184 241.4799 242.2972 241.453 240.6005 239.556 238.5605 238.0798 238.027 238.3335 238.4844 238.9838 239.452 239.7596 239.9738 241.0828 239.7784 239.398 238.4063 239.3693 238.9836 239.6014 241.3498 243.177 246.673 248.3799 249.5725 251.2882 252.8104 253.9102 253.9034 254.2132 253.0073 252.4514 248.3921 246.8845 250.3421 254.5756 256.8358 262.4818 267.3458 269.214 268.9597 261.3792 259.6564 258.6468 256.2989 255.3605 256.0431 259.0759 261.2961 261.745 261.4251 263.976 267.3047 269.5712 271.7717 274.3871 275.973 276.577 277.8779 279.242 276.1172 274.5988 272.7044 272.6979 271.6664 269.5441 268.229 268.3951 269.4094 267.7 265.3391 263.2068 262.2558 261.7087 260.9129 256.9177 259.4603 262.4781 263.5786 264.9284 264.9323 263.3544 261.4949 258.6512 256.2841 254.8675 251.4973 253.4084 255.0683 255.0648 254.1831 252.4727 250.4628 249.9995 252.1895 251.6 247.5025 243.5587 239.8118 237.4731 -9999 +-9999 315.8372 314.4304 312.5258 311.8233 310.0346 310.1662 308.942 307.6519 306.7793 307.7669 309.2423 308.1835 306.2677 297.1956 294.7236 293.1017 292.9974 293.6388 293.4203 293.0698 292.8557 292.0187 290.6523 290.3294 289.8412 288.0865 285.4644 283.8864 283.8454 282.2596 280.9227 282.7347 284.2452 284.9085 286.9908 289.7502 289.5993 286.959 283.9196 286.5229 291.2164 292.101 292.7074 293.8497 295.8203 298.347 300.6407 302.5719 304.6719 306.954 307.6367 308.0931 308.6959 308.7277 308.5354 308.3588 309.0595 309.3245 309.6043 309.8805 310.8645 311.8526 313.199 314.2387 315.3146 315.5237 315.6485 316.0282 316.1696 316.492 315.6828 316.1558 317.6863 318.3508 318.9048 318.6391 318.0846 316.355 316.0091 316.0711 315.9438 314.952 313.5671 311.5974 310.4988 310.1374 308.4999 302.7608 300.5031 303.2484 306.026 306.2797 305.6823 305.5816 305.5679 305.5782 307.517 311.2376 313.8674 316.0247 317.66 319.5226 321.3077 322.6951 326.6181 328.2537 327.7158 326.8112 325.9432 324.9825 323.848 322.9451 321.008 313.8794 308.9861 306.4734 306.3607 306.3593 305.8764 305.0177 304.1014 303.7911 302.6268 302.1419 301.0924 300.2626 298.767 295.281 294.4079 296.1084 297.6165 298.0092 300.3695 301.4142 300.9259 300.4428 299.1939 297.7542 297.2524 294.0339 291.7253 286.5623 284.5523 282.7178 281.8672 280.4071 281.9931 282.1782 282.2215 282.6912 282.5685 282.0063 280.9397 279.9541 281.0646 283.6195 283.7421 283.726 284.1232 288.4818 289.53 289.8528 288.8525 286.3094 281.4518 283.6929 286.9788 288.9907 290.7426 291.7326 290.882 290.8208 291.6418 293.5873 295.8408 297.7924 299.7129 301.8544 302.1593 301.3155 300.1974 299.1409 298.3452 297.9183 297.6794 297.4237 296.4385 295.9302 294.4129 291.6438 288.6669 284.0323 276.9633 273.6172 275.9769 279.4344 280.0288 281.508 281.7107 279.7939 276.0702 275.6168 278.9919 280.9886 282.9018 283.6208 282.7051 282.9587 284.4633 285.4253 284.8924 284.8714 284.7706 286.2226 287.8302 289.0679 290.6 292.0396 293.172 294.3255 295.0959 296.2906 296.8319 295.6925 295.213 293.869 292.4795 292.4966 294.3887 295.1645 293.1967 290.65 284.2711 282.5471 281.3177 280.8316 280.665 279.9041 278.445 277.0792 275.8228 272.0365 269.2525 266.3831 263.2257 258.4823 254.6865 252.6003 258.0641 261.1826 262.7184 265.4489 267.3126 268.5782 269.4048 269.6738 269.0577 269.84 270.5194 267.7111 264.6888 259.1505 251.3006 254.3689 257.112 256.6551 255.4875 253.1791 258.3196 261.8601 266.2288 269.4199 271.4926 273.8723 275.5183 276.4061 278.153 279.9685 281.0423 280.7795 278.872 276.7554 274.2039 272.2319 270.1229 268.4009 265.9286 261.3941 259.0344 256.6139 254.4034 252.3047 249.95 248.9878 249.3093 249.018 246.8216 245.1599 243.6018 241.4616 242.5791 242.5425 241.8304 239.9504 238.5692 237.3593 237.9433 237.8783 237.7495 237.7283 237.956 238.0425 238.2432 240.8516 247.058 249.0777 250.7343 252.2637 252.902 252.9168 251.9986 250.5482 249.8569 251.7411 253.2299 254.3465 254.8504 255.5246 256.0137 256.408 257.0788 257.8259 259.6664 260.3316 260.8189 260.8767 261.4623 261.9357 262.3423 260.5165 258.5745 257.2588 257.4048 258.5585 260.2537 261.8475 263.0309 263.658 263.4858 263.5448 263.3582 262.7778 261.6587 259.1596 257.2484 255.1831 251.7701 246.0742 241.1385 245.0826 250.5446 252.9886 254.7754 256.5167 257.7085 258.3262 258.0879 257.5044 256.3393 254.0939 253.2634 253.1712 253.6099 253.0371 251.5209 248.6222 245.9928 244.0287 241.6783 240.237 239.3543 239.0544 233.2447 233.3845 234.9104 235.991 236.1427 233.7011 233.4572 233.4484 233.4322 233.4951 235.929 235.9729 237.4724 234.5914 235.741 237.5609 238.2932 238.9787 239.8228 239.895 239.5414 238.7149 237.9523 237.7259 237.6864 237.6181 237.9317 238.1155 238.3658 238.7232 238.9917 239.3194 238.8564 237.8929 238.7556 238.6946 238.9871 240.7032 239.5805 240.1278 240.8487 244.6418 246.3575 248.8205 250.3362 251.0797 251.6601 251.1798 251.3035 249.253 247.4268 246.8546 250.935 255.6177 259.9162 262.4078 262.9229 267.9494 272.696 274.7788 267.1259 265.2602 264.5422 264.0114 263.1801 262.2413 263.8698 263.9733 261.7759 264.8728 266.545 269.91 272.177 274.7264 275.8254 276.2963 277.5025 278.264 278.4819 275.8792 274.1022 270.8814 269.5093 269.5625 268.6913 266.2285 265.316 268.5673 268.557 267.4712 265.558 262.6589 258.8406 257.7127 254.0603 257.1994 260.1053 262.2085 262.7191 262.4774 261.7065 260.1746 257.4427 253.2257 250.0154 250.5601 253.0586 253.6485 253.9273 254.3707 253.9398 251.1779 248.1903 249.803 246.6801 241.5556 238.5996 236.8255 236.3236 -9999 +-9999 316.4637 315.9235 314.7064 312.9173 311.8674 311.4981 310.5975 309.3251 307.5314 306.324 307.5887 308.0986 308.0891 300.1965 298.3658 299.2027 298.0764 297.1817 297.0113 296.5177 295.1856 294.7243 293.2591 292.2254 291.2423 290.0014 288.4985 287.7491 286.9005 285.322 282.8472 281.5896 282.9739 285.7517 285.4959 285.2032 287.9011 285.2235 284.6386 288.2235 293.1129 294.515 295.5552 295.3788 296.3893 298.11 300.1591 301.986 303.6047 306.1109 306.6635 307.3164 307.9057 308.1147 307.9011 307.926 308.218 308.5088 308.1317 308.534 309.1647 310.1769 311.7607 313.0409 313.9804 314.0994 313.9839 313.7416 314.7536 314.7515 314.0945 314.9645 316.3839 317.3546 317.6968 317.1003 317.0063 315.0198 314.2323 314.424 314.6368 313.6908 312.3021 311.1073 309.4367 308.7587 308.2784 303.1196 298.2845 300.7457 302.3386 301.437 301.2275 302.5955 303.4356 307.4764 311.479 313.9036 315.3264 316.6755 317.9766 319.5096 321.1254 322.8376 325.9094 326.8939 327.1638 326.5966 325.6451 326.4703 325.8766 324.5083 321.9318 316.5545 314.8435 312.5341 311.0031 308.2177 305.0153 302.278 302.5283 300.9701 299.8778 299.5711 298.0256 297.7406 296.8222 297.4828 298.1081 298.5944 298.9663 299.2825 300.1226 301.5591 301.7952 300.6206 299.5057 299.3938 298.0972 295.2613 291.7253 286.5623 284.5523 282.7178 281.8672 280.4071 281.9931 282.1782 282.2215 282.6912 282.5685 282.0063 280.9397 279.9541 281.0646 283.6195 283.7421 283.726 284.1232 288.4818 289.53 289.8528 288.8525 286.3094 281.4518 283.6929 286.9788 288.9907 290.7426 289.9675 289.9554 290.5024 292.0559 294.0366 295.9286 297.532 299.273 301.4225 301.7886 301.417 300.4792 299.8925 299.1971 298.6833 298.86 298.9689 297.9841 297.1622 295.5297 293.5683 290.8637 286.2111 279.6241 275.3635 272.9108 275.583 277.3113 279.1789 279.5109 277.1367 273.5894 276.859 280.2502 282.6623 284.4728 282.5222 281.0432 281.167 282.4072 283.0188 282.7089 282.4429 282.8286 283.9441 286.9774 288.3529 290.2317 292.3083 293.2407 293.8584 294.7132 295.5725 296.3462 296.1661 295.6336 294.7024 293.6309 294.5492 295.1709 293.9996 291.4945 289.1595 284.4234 282.952 282.0354 281.3653 281.2199 279.9077 277.6711 275.527 274.6109 270.756 268.2573 265.7669 262.7061 258.4648 255.0681 254.3122 259.5649 261.7104 264.216 266.5632 268.6486 270.0406 271.4275 272.1249 271.6457 271.3532 270.313 265.0163 260.025 254.2849 253.2975 258.2103 261.2462 260.9366 259.882 260.0962 259.8335 260.4363 264.847 268.1367 270.8132 272.7257 273.9099 276.189 278.097 279.4931 279.615 279.0596 277.8137 275.7239 273.5919 271.3169 269.5482 266.804 264.9737 260.3026 257.5829 254.6446 252.739 250.9404 249.0969 247.3857 246.7175 246.7164 246.1474 244.9207 244.2855 243.7748 242.421 241.0439 239.9458 239.1713 238.8473 238.2209 237.9499 237.8614 237.6637 237.9283 237.9495 238.2081 238.5282 241.5661 248.7018 249.9723 250.8241 251.1231 251.2892 250.8165 249.9132 249.3379 249.7487 252.2952 253.0728 253.7258 254.3075 254.7684 255.0701 255.6358 256.0683 257.0363 258.7198 259.1489 259.4885 259.6897 260.3196 261.1701 261.9847 261.1309 259.1787 258.315 259.2654 260.3046 261.7688 262.6872 264.6472 265.2752 265.3517 265.2014 265.3849 264.8879 263.5575 261.5981 260.0957 257.2771 253.2262 248.3938 241.7924 243.4629 249.8204 252.1407 254.0281 255.7832 257.3566 258.5688 259.0115 258.8596 258.1796 256.066 255.2688 254.8221 254.3939 253.1838 250.9096 247.5101 244.8834 243.1371 241.6757 240.5054 238.6926 233.358 233.2166 235.867 235.9618 236.2897 235.8357 235.6153 237.5226 242.0411 236.9525 235.3438 234.5495 242.4198 240.8168 239.4955 234.6752 235.2749 236.7148 238.5268 238.0153 237.8582 238.0653 237.5394 236.5928 236.8921 237.0866 236.993 237.4326 237.7021 237.9865 238.3702 238.5906 238.8833 238.2467 238.5648 238.5048 239.5758 241.6982 244.4703 245.1751 241.1858 239.5247 241.7334 243.5272 245.0761 246.4867 246.901 247.6062 247.3513 245.8775 245.1371 245.4381 249.5034 254.5192 259.1122 263.2825 266.4306 268.3289 269.8658 273.2029 275.6585 271.7508 269.1109 268.9426 268.7814 268.2158 268.8267 269.4713 269.8957 268.4678 271.4727 272.9367 274.6382 275.5698 277.0338 277.4595 277.9805 278.9404 279.5 277.9641 275.4607 272.5903 269.4274 267.004 267.3988 265.9433 263.8839 262.672 266.6307 267.286 267.5793 266.2055 264.33 261.5173 257.6572 252.6778 254.969 257.6477 259.652 260.2794 259.957 260.0072 258.4923 252.5722 251.1578 247.9415 249.4203 251.2175 251.5111 252.2684 252.6639 251.8105 250.1995 247.2422 246.8316 242.6089 237.8945 236.9487 236.9786 236.4096 -9999 +-9999 317.4654 316.5971 315.8094 314.6218 312.4832 311.5182 310.3949 309.4302 308.4753 307.2068 306.4516 306.3765 305.959 304.5479 303.5999 302.5542 301.5627 300.4872 299.5514 298.5291 297.8422 298.1326 295.8289 295.0838 294.5061 292.992 291.7325 290.7675 289.3066 287.1447 282.8006 280.4389 282.53 285.9482 289.1996 290.6295 287.8655 285.3185 285.9437 287.4269 293.2062 294.869 296.4978 297.236 297.6942 298.8409 300.2382 301.871 302.786 304.6776 305.752 306.7914 307.0755 306.9199 306.4766 306.3639 306.8608 306.927 306.1476 307.0852 307.6465 308.7585 310.0022 311.2459 311.9112 311.9101 311.8967 312.2608 313.3207 312.7213 313.0149 314.6458 315.687 316.0851 316.1907 316.1167 316.0444 314.5848 313.1695 312.6434 313.2093 312.9646 311.766 310.176 307.9225 306.6526 307.2373 304.5178 299.1135 298.7999 299.0625 299.8202 303.3369 305.8321 307.8852 312.382 314.2794 316.2058 317.3496 317.8012 317.9464 318.339 319.8977 321.3398 325.1204 326.7478 326.7418 325.8435 325.0766 326.261 326.3727 324.5083 321.9318 316.5545 314.8435 312.5341 311.0031 308.2177 305.0153 302.278 302.5283 300.9701 299.8778 299.5711 298.0256 297.7406 296.8222 297.4828 298.1081 298.5944 298.9663 299.4263 300.1226 301.5591 301.7952 300.6206 299.5057 299.3938 298.0972 295.2613 292.8154 289.5454 286.712 284.1107 283.105 281.9465 279.4272 281.6662 281.1273 281.0378 280.2826 280.2969 280.2492 279.322 279.3625 281.0187 281.8547 282.0016 282.2009 286.6578 287.1685 287.4477 286.818 283.3159 280.8037 283.3044 286.313 288.2108 288.7593 289.3407 290.132 291.3314 292.9073 294.2749 295.5892 296.8772 297.9672 299.9707 300.8593 300.7198 299.7689 299.2788 299.3463 299.3127 299.7139 300.2046 299.4821 298.2889 296.8912 295.3283 292.5499 288.4573 283.3939 279.0983 276.097 272.4593 273.6917 276.1594 276.4075 273.4453 274.3504 278.3472 281.0057 283.3465 282.5961 280.4596 277.8456 278.2738 279.6823 279.8664 279.9903 280.1851 281.0884 282.7934 286.0382 288.1168 290.6951 292.9212 293.6732 293.8653 294.0343 294.4926 295.1603 295.8132 295.4589 294.6747 293.9505 293.9672 293.4853 291.7946 289.3731 287.3385 283.2331 281.7652 280.7586 279.8421 279.223 278.0338 276.1431 274.3355 272.5742 269.1496 266.9223 264.7762 261.9229 257.2055 254.6357 255.4456 259.7633 261.5249 265.32 267.6611 269.7452 271.38 272.7502 273.9452 273.9534 272.8022 270.3114 263.159 259.3378 257.5264 258.8245 263.7921 266.0077 264.9168 263.8904 263.9747 266.2068 263.0941 263.5253 267.3791 269.4443 271.6939 273.4756 275.2352 276.2584 277.4145 277.6349 277.247 276.2524 274.752 272.4806 270.6423 269.2361 266.2493 263.0449 259.3448 255.904 253.2836 250.8 248.8993 248.8466 249.5549 250.3985 251.3725 250.0017 248.7646 247.2882 245.4069 244.0235 242.7082 241.2444 240.3012 238.8922 238.2272 238.2471 237.7248 237.6241 237.8436 237.9087 238.468 239.2846 244.5637 249.3637 249.3453 249.5831 249.7175 249.6018 248.9145 248.3922 248.5086 249.1698 251.8567 252.5799 252.855 252.7402 253.0204 254.2023 254.8052 254.9529 255.6711 257.0425 257.5251 258.1478 258.3549 259.2287 260.4381 261.4132 262.0306 260.5083 259.1085 260.9421 261.906 262.6361 263.4758 264.7658 266.6548 266.9375 267.187 267.0548 266.1374 265.3125 263.3648 260.8297 257.8408 253.4769 248.2676 242.2566 244.286 248.7414 250.9707 253.508 255.2457 256.7598 257.9651 258.8589 259.1703 258.584 256.7346 254.9769 254.1719 253.4411 251.6316 249.7565 247.0632 244.4631 242.9062 241.3194 239.2111 233.3602 235.1004 235.8336 235.753 235.9393 235.5306 235.1307 236.1535 238.8179 243.0935 244.1109 243.0582 242.4698 242.2589 242.1332 241.9176 235.0157 234.733 235.1259 236.5126 237.3134 236.869 236.894 236.6056 236.0261 236.529 236.7 236.6861 236.9648 237.4676 237.6176 237.9055 238.1722 237.8488 237.8612 238.0765 238.8247 240.1649 242.538 245.4825 248.3132 248.0191 241.9637 241.2563 241.3017 242.3151 242.8354 243.4245 243.8544 243.3733 245.047 246.9513 248.8683 253.4653 255.1111 259.5233 263.2152 266.4052 268.7679 270.7654 272.0648 273.3547 275.1169 273.5084 272.8361 272.7815 272.147 272.9169 273.1862 274.1384 275.5589 277.2325 277.8297 279.0418 279.6049 279.3513 280.0999 280.7724 280.9688 281.0435 278.0131 275.559 271.3256 267.5502 263.1548 264.0776 262.1895 263.8839 262.672 266.6307 267.286 267.5793 266.2055 264.33 261.5173 257.6572 252.6778 254.969 257.6477 259.652 260.2794 259.957 260.0072 258.4923 252.5722 251.1578 247.9415 249.4203 251.2175 251.5111 252.2684 252.6639 251.8105 250.1995 247.2422 246.8316 242.6089 237.8945 236.9487 236.9786 236.4096 -9999 +-9999 318.1774 316.8802 316.0383 315.0298 312.4509 311.1425 309.7404 309.0166 308.9193 308.5162 307.3294 305.4003 304.0651 304.5193 303.7236 302.9217 302.9441 302.054 301.4251 300.3986 300.2333 299.8888 298.1223 297.2904 296.3787 294.6217 293.7458 292.8182 291.1638 287.8777 283.5474 280.2981 281.2958 285.1675 288.1992 288.8454 286.0026 281.9009 284.7277 286.6421 292.5911 294.6338 296.0479 297.2956 298.1664 299.0569 299.5841 300.186 300.5127 304.3281 305.1843 305.7037 306.1998 306.1127 305.4739 305.2127 305.62 305.367 305.0753 306.1667 306.6464 307.4564 308.5539 309.2924 309.5312 309.7551 310.3929 311.0737 311.8487 311.1682 312.3707 314.1038 314.6712 314.7864 314.7945 314.5323 314.7883 313.9203 313.0208 311.5557 311.5965 311.7176 310.6573 310.176 307.9225 306.6526 307.2373 304.5178 299.1135 298.7999 299.0625 299.8202 303.3369 305.8321 307.8852 312.382 314.2794 316.2058 317.3496 317.8012 317.9464 318.339 319.8977 321.3398 325.1204 326.7478 326.7418 325.8435 325.0766 326.261 326.3727 325.2384 322.5217 317.5467 315.3844 313.5949 312.287 311.3381 308.7076 305.653 302.7757 302.431 299.9385 299.8891 299.4251 298.8693 300.3288 300.797 300.9662 300.9701 300.2291 300.0218 301.0225 301.8062 301.6753 300.9552 300.547 300.2389 298.1006 296.0332 293.9455 290.1335 289.5569 286.598 284.565 283.3867 281.6273 279.8033 280.8055 280.6106 279.7917 279.3315 278.6271 278.3122 277.8669 280.4586 278.9914 279.4529 280.7147 283.5366 284.7996 285.0359 284.5046 281.7319 280.4122 282.4601 285.8198 286.5162 287.99 290.1042 291.6496 292.4498 293.3472 294.2986 294.9785 295.7108 296.7951 298.6082 299.5259 299.2333 298.4447 298.2244 298.3937 299.3781 299.8339 300.5919 300.9833 299.8822 298.2426 296.7349 294.6666 291.4704 287.8241 284.7471 282.3115 274.3212 270.7109 271.6323 271.8615 271.0205 274.9653 278.5252 281.4525 282.952 280.9335 278.1494 275.1822 274.7447 276.7189 275.6583 276.374 277.4683 279.6539 281.5731 285.7 287.8121 290.3961 292.5423 293.7357 294.0331 294.0096 293.7145 294.1619 294.8075 294.208 293.3998 292.2288 291.8471 291.1864 289.6288 287.3813 285.3796 281.7198 280.4984 279.8506 278.3221 277.2222 275.7357 273.5172 272.1938 270.6617 266.9326 264.3551 261.6744 259.5189 255.8758 253.9192 256.8158 260.45 261.9033 266.2859 268.92 271.2173 272.9156 274.5895 276.0603 275.8309 274.3181 271.9476 267.3674 263.0974 262.7989 265.6459 269.4446 269.4993 268.3004 267.2654 267.4117 268.9144 267.9181 265.519 266.7213 267.3755 269.2964 271.5547 272.5883 273.5199 275.8222 275.9069 275.3476 274.3994 273.4853 271.8261 270.0151 268.9888 265.9037 264.1169 256.7709 255.5642 252.5513 255.6868 256.239 255.5637 256.3698 256.9966 255.0204 252.2566 250.2559 248.9659 246.5129 244.5123 242.5857 241.1983 239.7131 238.652 238.6826 238.6226 237.5887 237.5982 237.7618 238.0109 238.3745 239.2701 245.4544 247.916 247.7742 247.9614 247.6513 247.3282 246.9705 247.0785 247.0052 248.1258 250.7539 251.107 251.0638 251.1873 252.1255 252.8646 253.264 253.2184 253.8914 255.1673 256.2689 257.8395 257.9928 258.8496 259.8488 260.7754 261.9717 261.706 261.2677 261.9646 263.4083 264.0997 264.6243 265.8972 267.0339 268.6225 268.9525 267.9797 266.9121 264.8368 262.4724 260.5004 257.0916 251.6536 245.9877 243.2071 247.2725 251.2275 251.687 252.525 254.289 255.8978 257.0215 257.8543 258.5896 257.833 254.961 254.0215 252.2768 251.3035 249.6036 248.041 246.1108 244.4753 242.8475 241.3038 235.0835 234.0292 235.2642 235.0562 235.7234 236.0244 235.97 234.8238 236.0971 237.0445 239.9314 241.9415 242.2583 241.5467 241.2113 241.4624 241.806 238.5392 234.5615 234.7275 235.1605 238.4262 236.3511 235.9473 236.1485 236.319 236.5816 236.6517 236.8098 236.9211 237.0416 237.3586 237.5063 237.2965 237.784 237.8378 237.9293 239.0905 239.8584 242.0462 245.3831 248.6553 251.0179 248.5278 241.8559 241.8422 242.2971 242.7924 243.1544 243.8544 243.3733 245.047 246.9513 252.589 253.4653 255.1111 259.5233 263.2152 266.4052 268.7679 270.7654 272.0648 273.3547 275.1169 273.5084 272.8361 272.7815 272.147 272.9169 273.1862 274.1384 275.5589 277.2325 277.8297 279.0418 279.6049 279.3513 280.0999 280.7724 280.9688 281.0435 278.0131 275.559 271.3256 267.5502 263.1548 264.0776 262.1895 260.2565 260.1522 263.1579 264.757 265.3293 264.9527 263.9965 262.0447 260.0523 256.0893 252.4744 252.7799 257.0597 258.0317 258.2347 257.2908 255.7549 251.536 251.174 248.1724 246.2762 247.3882 247.3251 248.5082 248.1089 249.2839 248.3614 246.6595 245.2902 241.7982 237.5453 236.8666 236.407 236.2601 -9999 +-9999 318.2662 317.3196 316.4008 315.3486 312.9521 311.6214 310.3895 309.5011 308.017 307.7727 308.1483 308.068 306.7808 303.053 301.553 300.7928 300.7763 301.6001 302.0184 302.1847 301.7261 300.8255 298.9621 297.6803 296.3324 295.3463 294.3551 293.2343 291.2552 288.0139 283.7127 280.0702 280.297 283.5307 285.673 285.9531 283.1238 280.9516 283.1666 286.5443 292.0742 294.0395 295.3931 295.9635 297.0212 297.2007 297.7201 298.317 299.9924 303.0352 303.7041 304.5247 304.8481 305.0264 304.223 304.2361 305.62 305.367 305.0753 306.1667 306.6464 307.4564 308.5539 309.2924 309.5312 309.7551 310.3929 311.0737 311.8487 311.1682 312.3707 314.1038 314.6712 314.7864 314.7945 314.5323 314.7883 313.9203 313.0208 311.5557 311.5965 311.7176 310.6573 309.3668 307.3271 304.7659 305.6784 302.5316 299.3221 296.2668 297.7479 300.9871 304.519 306.9997 308.7798 314.385 316.4636 317.789 317.7491 317.3436 316.5314 317.0464 319.1352 320.9191 324.5089 324.9063 324.8112 324.0601 324.5854 325.2968 325.6227 324.8737 322.5757 317.9219 316.1902 314.592 313.187 311.2503 310.1595 309.4901 307.9139 305.542 305.576 304.4628 302.8884 302.0036 302.6464 302.8277 302.789 302.1497 301.2857 300.9276 301.9522 302.3539 302.7117 302.286 301.8961 300.0768 298.0512 296.6799 295.4611 292.4156 291.5888 289.9679 286.4262 285.9749 282.1528 281.1812 280.4951 280.1184 279.4059 279.2216 278.4644 278.0303 276.36 279.6432 277.4064 277.9925 278.7568 280.4452 281.3231 281.4153 280.766 279.5877 280.7725 282.7619 284.9504 285.3241 288.6946 290.3315 292.0776 292.9211 293.2829 293.5973 293.6382 294.278 295.0443 296.7144 297.5488 297.3976 296.3407 296.5153 297.3168 298.7425 300.1051 301.5494 302.2263 301.4426 299.9434 298.0029 296.4466 294.2059 291.1232 288.5086 286.7317 278.9926 273.1362 269.4802 268.9489 269.6138 273.4379 277.4596 279.7662 281.1032 279.2397 277.2525 274.4529 274.0004 274.5479 273.4719 274.4389 277.2684 279.1708 281.664 285.3631 287.3117 289.6355 291.3577 292.5991 293.876 294.5101 293.8546 293.2244 293.4834 292.9354 291.9668 290.9555 289.9999 289.17 287.5021 285.2456 283.7906 280.1458 278.5594 277.6332 276.0645 273.2422 272.9368 270.7287 269.257 267.7097 263.9871 261.3336 258.5359 255.6736 256.0837 255.725 257.7952 261.2293 263.0995 266.5846 269.5399 272.4473 274.4007 276.2694 277.6336 277.9447 276.4628 274.7504 271.444 270.1868 269.8173 270.6337 272.8311 272.4312 270.52 269.1881 269.1173 271.0918 270.3148 268.7483 267.5232 267.6288 267.976 269.5263 270.6627 272.2701 274.1974 274.0425 273.866 273.6122 272.2181 270.8587 269.5886 268.4022 267.3808 265.0794 256.981 257.1332 258.6958 259.2408 259.4938 258.8804 259.7832 259.7563 257.4118 253.277 251.547 250.8235 247.5656 243.8946 241.5071 240.4148 239.2176 238.5222 238.1189 238.5737 237.5636 237.4578 237.7608 237.8429 238.1295 238.4599 243.0371 246.2381 246.5599 246.6068 246.0798 245.7136 245.7671 244.4691 244.8551 246.0175 249.0809 249.5288 249.9149 250.3836 251.0685 251.4496 251.7667 252.4561 253.2366 255.1959 256.5385 257.8004 258.2534 258.7579 259.8133 260.7648 261.8539 262.673 262.423 262.195 264.1007 265.5352 266.5802 267.2257 268.1718 268.7609 269.7816 267.9352 265.7462 263.2265 260.8975 259.4154 255.876 251.6357 246.498 244.3851 252.422 255.0821 253.9803 252.8496 253.5274 254.699 256.2466 257.3789 257.4847 256.5311 255.4062 254.9071 253.4379 252.0589 250.5007 248.1854 246.5175 244.4967 242.9923 238.5227 233.3461 234.8694 235.1307 235.5781 235.8859 235.2682 235.3694 235.041 236.1923 236.3549 237.3602 239.6832 242.2583 241.5467 241.2113 241.4624 241.806 238.5392 234.5615 234.7275 235.1605 238.4262 236.3511 235.9473 236.1485 236.319 236.5816 236.6517 236.8098 236.9211 237.0416 237.3586 237.5063 237.2965 237.784 237.8378 237.9293 239.0905 239.8584 242.0462 245.3831 248.6553 251.0179 248.5278 241.8559 241.8422 242.2971 242.7924 243.1544 244.6011 247.9628 250.3456 253.6093 259.0851 258.433 258.428 260.0625 262.8287 265.1941 267.0285 268.6748 269.7761 271.5756 275.0027 276.9058 276.9192 276.4511 276.3023 276.7251 276.9275 278.3459 279.3336 281.1316 281.1393 281.973 282.0918 282.1795 282.5216 282.9063 282.7516 282.1121 277.8507 274.1701 270.4573 266.6576 263.1565 260.6752 259.4785 258.0621 256.6232 258.7012 260.3851 261.8938 262.1232 261.7628 261.571 260.6393 259.4443 255.617 250.1852 251.7251 254.3083 253.7527 252.0255 249.6364 247.9464 247.3319 245.2312 243.0749 243.4493 243.4941 242.8231 243.0496 243.5886 245.6207 244.8489 244.3851 238.7928 237.4521 236.8064 236.4978 236.1799 -9999 +-9999 317.4163 316.4991 315.9023 315.2965 313.6815 312.3668 310.8535 309.119 307.3645 306.361 307.6002 308.2831 308.2873 306.2931 304.9109 301.6964 299.6123 298.4503 299.6179 300.4037 300.5218 299.9824 298.365 297.3214 295.9611 294.7925 293.1735 291.7447 289.7704 288.0139 283.7127 280.0702 280.297 283.5307 285.673 285.9531 283.1238 280.9516 283.1666 286.5443 292.0742 294.0395 295.3931 295.9635 297.0212 297.2007 297.7201 298.317 299.9924 303.0352 303.7041 304.5247 304.8481 305.0264 304.223 304.2361 304.7009 304.2436 304.8643 305.6878 306.3982 306.6558 307.107 307.1361 307.2329 308.055 308.861 309.3579 310.0206 310.0189 311.201 312.8234 313.6791 313.857 313.4352 312.938 313.2696 313.1219 312.2382 310.801 310.2409 310.3315 309.5344 308.5675 306.9296 304.3245 302.5392 300.6642 296.8568 295.6299 296.9682 300.0915 303.9662 306.6583 308.8344 314.5141 316.3568 316.5271 315.9019 315.2487 315.5507 317.1609 319.2436 321.2362 323.5568 322.5011 322.8481 323.1632 323.8848 324.314 324.5887 324.2942 322.3085 317.6776 316.2209 315.0337 313.865 312.8378 311.6476 310.4589 309.1528 308.4753 307.0994 305.8129 304.023 303.2907 304.5788 304.9132 304.6035 303.5801 302.3546 301.9033 302.6263 303.1235 303.8218 303.7833 302.4775 300.6628 299.4354 298.585 297.4574 293.8632 291.2224 291.0192 290.3322 289.0148 286.853 283.7721 283.0508 284.2664 281.494 282.3161 279.1493 280.4149 281.7481 277.7114 276.6563 276.8524 277.0194 277.7052 278.1138 278.2054 278.2693 279.832 282.6628 283.8677 283.0707 285.1199 288.5707 290.0847 291.2624 291.9224 291.8646 291.2436 290.5306 291.1759 291.3448 294.6535 294.8743 294.199 294.496 295.7171 297.3501 298.5554 300.2898 301.6791 302.8484 302.0824 300.4375 298.9486 297.2018 295.7156 293.1652 290.9195 288.5864 281.2271 276.8902 272.8066 270.0898 267.6764 269.3071 273.9658 276.2757 277.7524 276.3817 275.0531 273.1173 273.317 273.085 272.4106 274.0784 277.5114 279.7561 284.1388 285.8349 287.6625 289.8608 291.3835 292.3891 293.8701 294.837 294.2907 292.8019 292.343 291.7415 290.8793 289.9422 288.4824 287.3092 285.8593 282.7331 280.3436 276.9699 275.7892 273.8671 272.1964 269.6051 266.7679 265.8548 263.4854 261.501 259.0496 257.214 257.8154 259.7783 261.7211 258.1438 257.8466 262.0089 263.5238 266.5874 269.2662 272.3493 274.8546 276.8615 278.5925 279.2881 279.194 277.9861 275.0214 275.0319 274.6085 274.2076 273.7142 273.1394 271.3013 270.2858 270.5387 272.4942 271.9621 270.8157 269.7202 268.7884 268.2424 267.9799 268.79 270.3197 272.0168 272.127 271.7872 271.7112 271.3593 270.3082 268.9652 267.6725 266.6794 262.665 261.7415 262.3087 261.7665 261.3144 260.9421 260.889 261.8997 263.0764 260.3646 254.2584 252.2623 251.4017 249.4476 245.065 241.9268 239.9481 239.0204 238.462 237.7215 237.9282 237.5006 237.5163 237.6299 237.7882 237.6984 238.1685 242.2059 244.7186 245.1958 244.564 244.2955 242.0165 242.2585 245.0719 245.6909 246.6531 248.3895 248.72 249.3188 249.6952 250.375 251.0578 251.9103 252.9313 254.1631 256.8431 257.9996 259.2745 259.3374 260.0649 260.5984 261.4674 262.1903 262.9359 263.2453 263.136 265.3745 266.3909 267.9503 268.4695 269.6108 269.8 269.8682 267.4628 264.5083 262.3909 260.1096 258.0462 255.876 251.6357 246.498 244.3851 252.422 255.0821 253.9803 252.8496 253.5274 254.699 256.2466 257.3789 257.4847 256.5311 255.4062 254.9071 253.4379 252.0589 250.5007 248.1854 246.5175 244.4967 242.9923 238.5227 233.3461 234.8694 235.1307 235.5781 235.8859 235.2682 235.3694 235.041 236.1923 236.3549 237.3602 239.6832 240.8159 241.7176 240.9091 240.8151 241.059 240.4131 237.3132 235.0153 234.9731 236.8869 236.15 236.0315 235.9967 236.0947 236.4168 236.7016 236.8896 236.9414 237.0536 237.155 237.1994 237.6363 237.5175 237.6388 238.0574 238.9866 240.3752 243.12 246.4447 249.4761 253.269 255.4518 246.8685 242.8067 242.672 244.565 246.5513 248.4799 250.7477 253.0802 255.1697 259.4738 261.1063 261.6479 262.1942 263.032 264.0566 265.9252 267.9189 269.6864 272.0971 275.4759 278.0641 278.5691 279.051 279.2788 279.3893 279.7332 281.5109 282.7879 283.8368 284.1758 284.2564 284.77 285.1815 285.1628 284.7352 283.8752 282.4841 278.1447 276.0169 272.0925 267.7851 264.1766 262.2149 261.4723 258.3872 262.554 256.8793 254.8097 256.7342 257.2914 257.2086 257.1987 257.5786 258.3389 257.4221 250.9888 248.287 248.4197 249.5125 247.4051 245.8642 243.7248 243.0764 242.4611 240.9642 240.7259 240.2701 240.4396 240.0952 239.6767 240.2903 241.7926 242.1315 237.9892 237.0927 236.8548 236.4186 236.3173 -9999 +-9999 315.7841 314.6852 313.9232 315.2965 313.6815 312.3668 310.8535 309.119 307.3645 306.361 307.6002 308.2831 308.2873 306.2931 304.9109 301.6964 299.6123 298.4503 299.6179 300.4037 300.5218 299.9824 298.365 297.3214 295.9611 294.7925 293.1735 291.7447 289.7704 287.6736 283.721 280.2217 279.61 281.038 282.5844 282.0042 280.4123 280.779 284.2918 287.6882 288.1843 292.156 293.3998 294.3958 295.0735 295.1115 296.2502 297.2761 298.7017 301.0748 302.4154 303.2876 303.3656 303.0812 302.8783 303.5769 303.6497 302.9215 303.8942 304.0823 304.6247 305.084 305.2885 305.1414 304.9242 305.6981 306.0692 307.609 308.2981 309.6407 311.3515 312.6599 313.5486 313.1298 312.2891 311.5795 311.5555 311.4402 310.9446 309.8168 309.2292 309.1277 308.5229 307.4536 306.2078 305.1409 301.7218 298.3664 296.0953 295.3141 295.9919 298.4646 302.3604 305.1783 307.9126 312.5509 312.9337 312.2879 313.1032 314.3462 315.5349 317.3655 319.1075 320.7516 321.5079 321.0619 321.5305 321.9695 322.9025 323.263 323.7043 323.9185 322.2008 318.4399 317.3096 315.7995 314.4271 313.3069 312.0374 311.0381 310.5513 309.5543 308.3453 307.6302 306.159 304.4772 306.4331 306.4386 306.0596 304.6019 304.1523 303.7835 303.1251 303.5579 304.2236 304.2083 303.2168 302.0047 301.5647 300.9579 297.0461 294.4126 294.0284 294.0948 293.2318 291.4312 289.318 286.7922 289.2738 288.984 288.7981 291.4769 286.564 284.6855 284.1057 284.0999 279.2099 276.359 276.2539 276.5463 276.6104 277.0287 278.5106 282.1618 283.5515 283.3576 281.792 283.8739 287.63 288.8774 289.4692 290.3727 290.2046 289.5591 287.9956 285.538 287.7628 291.5068 292.0529 292.6846 293.4393 295.3992 297.2573 298.4901 300.0935 301.706 302.9272 301.9992 300.9106 299.1389 297.5331 295.4117 293.5393 290.1884 286.7265 280.4866 277.4551 275.4503 272.0043 268.1278 267.1117 269.2647 271.8919 273.6157 273.4423 273.0923 271.0607 271.9007 269.9197 272.5111 275.6202 277.5393 279.9744 284.1545 286.1773 288.3701 290.5799 292.0359 292.9884 294.2481 295.1217 294.523 292.961 291.6191 290.8318 289.879 289.0439 287.7606 284.9002 281.9639 279.4402 276.7517 272.6958 271.2958 267.3627 264.7201 263.5667 265.6017 262.4284 263.2719 262.2343 264.0859 264.1691 264.1678 265.5471 266.7405 264.7115 255.9363 261.0183 262.9958 266.2869 268.597 271.6152 273.9453 276.0102 278.4849 279.5763 280.2092 279.7299 277.2773 276.6573 275.8301 275.2013 273.5266 271.8433 270.4495 270.0245 270.3222 270.6837 270.9261 270.569 270.1672 269.8788 269.5704 267.5602 266.7555 267.2653 269.6753 270.0137 269.9977 270.248 270.3146 269.5465 268.2611 267.003 266.0151 263.9859 263.7972 263.6175 263.6985 263.6304 263.2615 263.7563 264.8204 265.0009 262.0162 255.3 253.3033 251.7079 249.8234 246.4907 243.4344 241.0771 239.3581 238.3851 237.7393 237.2358 237.5296 237.5658 237.6295 237.8056 237.6569 240.0092 242.4234 243.6009 243.1523 241.7775 241.1854 244.4122 245.3618 245.0719 245.6909 246.6531 248.3895 248.72 249.3188 249.6952 250.375 251.0578 251.9103 252.9313 254.1631 256.8431 257.9996 259.2745 259.3374 260.0649 260.5984 261.4674 262.1903 262.9359 263.2453 263.136 265.3745 266.3909 267.9503 268.4695 269.6108 269.8 269.8682 267.4628 264.5083 262.3909 260.1096 258.0462 255.0061 251.4729 247.1232 246.5034 253.7131 255.0383 255.0319 254.0332 254.4738 255.4868 256.9228 257.5195 257.6783 257.5252 257.7653 257.2603 255.2252 252.9905 251.1436 247.9521 245.492 243.598 242.2249 235.0508 233.4746 235.055 235.3123 235.0933 235.7056 236.6317 235.7721 235.8321 235.6157 236.5553 236.4877 237.6497 238.6318 240.167 241.3658 240.9034 240.7801 241.7295 241.2999 235.9056 235.1017 235.4948 238.3433 235.6622 235.9028 236.065 236.2188 236.1899 236.4767 236.6385 237.0222 236.8202 237.429 237.237 237.4308 237.7524 238.5456 239.0957 240.7353 244.2034 247.6158 250.7683 255.0676 258.2063 252.4573 245.7682 243.0237 243.9484 247.1981 249.8432 251.8229 253.4124 254.6389 258.7368 260.1808 260.5981 261.0506 261.5999 262.7853 265.1316 267.4157 270.1787 272.8612 276.8769 278.3525 279.2851 280.2539 281.0084 281.6933 282.673 284.1564 284.127 284.9466 285.0309 284.9725 284.8616 285.0984 285.2822 284.7971 283.9216 282.613 278.2634 276.6232 274.0636 270.9179 267.1297 261.8678 263.7594 266.1996 266.0377 262.7495 259.405 256.1103 252.33 251.2698 250.6476 251.3838 253.3667 254.2336 252.8043 249.7435 247.1637 245.4142 244.6911 243.4292 242.8769 243.3826 245.7304 247.3955 247.7621 243.9952 244.9309 243.3749 239.6958 239.5413 239.1141 239.4375 237.5678 237.1411 236.5592 236.5309 236.1855 -9999 +-9999 315.7841 314.6852 313.9232 313.7079 313.4644 312.3836 311.1875 309.0449 307.3022 305.4203 306.0209 307.9261 308.9044 307.7932 305.9272 303.6908 301.7401 299.4434 297.6592 297.5381 298.5904 298.2169 297.1352 296.3678 295.1126 293.3462 291.2153 289.4133 287.2788 285.5541 282.7206 280.3943 279.7002 279.6113 280.0127 280.0374 280.0594 282.9983 286.1682 288.6581 288.7722 289.0793 290.9606 292.0527 292.5656 293.3271 294.5913 295.55 297.1324 299.4584 300.6042 301.6538 301.8044 301.5644 301.7654 302.0068 301.8412 301.7406 301.9592 303.131 303.8459 304.0001 303.3734 302.7705 302.7225 303.5085 304.9814 308.4469 309.7781 310.8257 311.3784 312.2489 312.6565 312.0802 311.5415 310.7159 309.9746 309.5685 309.0174 308.3169 307.9559 308.3275 307.5896 306.3944 304.8853 304.0086 300.8505 297.1324 294.9359 295.0151 296.8804 299.2756 301.2766 303.8894 305.8711 308.7729 310.3308 312.2524 312.8312 313.7871 315.3925 316.9172 318.4673 320.1737 319.9659 320.0842 320.2811 321.0518 322.0669 322.5143 323.4023 323.6237 322.4451 318.9113 317.4247 315.9882 314.6488 313.463 312.4654 311.9098 311.4375 310.5417 309.5337 309.1072 308.5809 307.967 307.7663 307.4313 306.7447 306.0417 305.4074 304.5153 303.9245 304.0612 304.3594 304.5015 304.0103 303.618 303.4663 302.4196 298.213 296.071 295.984 295.8323 294.7638 292.9857 291.6539 289.5885 291.4458 290.1349 292.0264 294.4373 292.816 287.1523 287.8745 289.5828 287.7131 278.7811 275.8148 274.2727 276.0827 275.7794 278.4659 281.3411 281.6564 280.0041 279.841 282.5398 286.2789 287.2119 287.9607 288.2352 287.7681 286.8831 284.5986 282.3648 283.6638 289.4659 291.8127 293.4671 294.5688 296.0305 297.2388 298.4134 299.337 300.2334 301.6374 301.5226 300.6084 299.3362 297.4812 295.9152 294.0464 292.1991 289.1097 283.3856 280.9667 278.5612 275.3012 271.2698 268.3801 267.7356 267.6505 270.4375 270.9565 270.9237 269.1089 268.9737 268.8794 271.9625 274.7406 276.9519 279.1294 284.1393 286.1764 288.2614 290.2632 291.9816 293.2793 294.6276 295.0922 294.3354 292.8929 290.8534 290.1289 289.0352 287.4114 286.4141 285.3056 281.8466 277.7483 274.8935 269.4908 268.9852 274.2486 273.8109 273.9031 273.8225 271.955 272.4581 270.166 267.9724 268.321 268.4674 269.932 271.3838 268.9122 263.3773 260.0439 264.5693 267.1039 268.1375 269.6045 272.0491 274.5436 276.9516 278.9886 279.5279 279.4348 277.1058 275.8602 275.3592 274.049 272.2434 270.3613 269.0418 268.011 268.3765 268.6605 268.7012 268.9518 268.9745 268.5951 268.7278 267.592 266.1171 265.8866 267.1281 267.982 268.188 268.1522 268.3167 268.2523 267.669 266.2535 265.2076 263.9859 263.7972 263.6175 263.6985 263.6304 263.2615 263.7563 264.8204 265.0009 262.0162 255.3 253.3033 251.7079 249.8234 246.4907 243.4344 241.0771 239.3581 238.3851 237.7393 237.2358 237.5296 237.5658 237.6295 237.8056 237.6569 240.0092 242.4234 243.6009 243.1523 241.7775 241.1854 244.4122 245.3618 246.2546 247.1836 247.6771 248.5419 248.6655 248.9734 249.628 250.5638 251.9715 253.8731 254.9352 255.6334 258.06 259.1424 259.9392 260.555 261.1061 261.6154 262.3935 263.3122 263.6917 264.1484 264.1339 265.5981 266.5144 267.8653 268.7968 269.5136 269.995 270.2997 268.5369 265.8857 263.2975 260.4231 257.9222 254.7415 250.0857 245.9817 248.1069 255.0113 255.9684 255.8771 255.2252 255.9995 256.9154 257.9644 258.7888 258.7985 259.3112 259.1761 258.2309 256.0661 253.499 251.162 247.8122 245.1524 242.9841 239.9045 233.2759 234.9272 236.1323 235.7556 235.4921 235.7082 237.0581 235.5797 235.7281 235.237 236.3673 236.4066 236.903 237.438 237.8392 239.1863 240.8633 241.2737 242.6335 242.5998 241.437 239.4798 238.7064 238.5785 238.9145 238.7467 236.8073 236.6085 236.0015 236.4335 236.5022 235.7598 237.3113 237.3884 237.4976 237.5602 238.5906 238.7028 239.1945 240.5634 244.6058 250.1596 254.6958 258.6884 260.6139 258.1258 252.2779 244.4433 243.51 245.2087 246.5104 248.5023 250.9575 253.4832 257.4917 257.927 257.727 258.7104 261.6652 263.3689 265.929 268.0851 270.2517 274.4037 276.1646 277.7495 278.6665 279.493 280.3667 281.1945 281.9684 283.3672 283.5062 282.4306 282.5243 282.2785 282.2258 282.9762 283.4415 283.4828 283.131 281.7832 277.911 276.2219 272.782 269.4153 267.7587 265.6136 267.709 268.2594 267.7054 265.751 263.4731 261.5119 259.4538 257.8084 256.4005 254.336 250.9214 249.7184 250.6612 248.9739 246.919 243.4337 245.4447 246.4798 248.7377 248.8736 249.0183 249.6574 249.2939 244.1155 248.4958 247.6364 246.7005 243.377 239.194 239.2121 237.5048 237.0567 236.7326 236.347 236.2629 -9999 +-9999 316.0562 314.0813 312.4176 311.5901 312.1758 311.6497 310.2209 308.7617 307.3136 305.0159 304.7597 306.4792 307.4442 308.1347 306.891 305.1203 302.8583 300.3043 298.3379 296.2602 295.5523 294.6453 293.9594 294.0673 294.2147 293.2976 291.469 290.2949 288.6846 286.3073 282.6577 279.0635 280.1603 279.412 279.5499 279.8394 279.3836 281.5925 285.0418 287.19 287.145 287.5449 289.9989 290.4337 290.3805 291.9715 293.2128 294.3684 295.0845 296.9856 298.4685 298.9723 299.063 299.235 299.2254 299.3059 300.1625 299.7978 301.7652 302.8271 303.1198 302.7992 301.1196 300.2095 301.5012 303.3344 304.9612 309.4514 310.8726 311.9029 312.2628 312.0222 311.4314 310.9048 310.3963 309.7325 309.1281 307.6331 307.4818 307.1736 307.3389 307.0249 306.8354 305.7655 304.4211 303.0153 298.2836 295.3112 293.6595 294.8639 298.2111 300.4991 301.7817 302.7496 304.2133 307.8738 309.4081 310.7926 312.375 313.5164 314.9488 316.5256 318.2903 319.43 318.7638 318.8952 319.0464 320.1562 321.462 322.358 322.8023 323.3946 322.2334 318.6655 317.0971 316.0588 314.8615 314.2015 313.2192 312.511 311.907 311.2862 310.4674 310.2278 309.5814 309.2302 308.755 308.3365 307.6021 306.685 305.7649 304.0428 303.267 303.5814 303.7118 304.057 304.2519 304.3869 304.1477 303.1145 299.1392 298.2261 298.2682 297.6692 295.9576 294.7643 293.2377 292.6333 292.1479 288.5079 292.0378 294.1994 293.0476 289.4023 290.6636 291.0815 290.0133 283.4579 277.5406 275.2948 275.3586 274.067 275.2185 277.0171 276.9652 276.7015 277.0605 280.4424 283.9892 285.3826 285.8859 286.0462 284.7399 281.9872 281.5111 284.8879 286.0405 291.5663 293.4736 294.7876 295.5747 296.1899 296.9656 297.5975 298.4686 298.8155 300.2879 300.6456 300.1149 299.3606 297.8802 296.6479 294.62 292.53 290.4074 285.1785 282.8672 279.7522 276.5049 273.887 271.3481 268.8057 266.2067 264.8837 268.7134 269.0968 267.3764 268.2679 269.7013 271.6346 273.5973 276.3839 278.809 284.4546 286.5721 288.5769 290.2116 292.0669 293.2725 294.6042 295.1038 294.4604 292.964 290.8301 289.7853 288.5591 286.4302 284.8597 282.5983 280.2796 277.0352 272.3064 270.5881 274.2312 279.0746 280.8052 278.5232 276.8618 275.0241 274.7918 274.0043 271.1832 271.2592 271.1879 271.9279 273.1852 271.1493 266.4104 258.9136 265.7842 270.0848 270.6458 271.5342 272.8635 274.5436 276.9516 278.9886 279.5279 279.4348 277.1058 275.8602 275.3592 274.049 272.2434 270.3613 269.0418 268.011 268.3765 268.6605 268.7012 268.9518 268.9745 268.5951 268.7278 267.592 266.1171 265.8866 267.1281 267.982 268.188 268.1522 268.3167 268.2523 267.669 266.2535 265.2076 263.5131 264.0732 264.9432 265.2545 265.2579 265.2944 266.482 267.1189 266.4334 260.8007 256.7364 255.7683 253.6231 250.6614 248.0316 244.1891 241.5759 239.1791 238.1032 237.7614 236.7755 237.8099 237.6743 237.7309 237.8296 237.8103 238.4371 240.0388 240.0046 240.7856 243.9068 245.1494 245.5684 246.2253 246.7922 247.3031 248.0917 247.9631 248.6803 249.5647 251.4316 253.0828 254.3798 255.6764 256.2858 256.8293 258.5853 259.7472 260.5994 261.3123 261.8651 262.5824 263.6947 264.5515 264.5515 264.6387 265.0897 265.2752 266.084 267.1893 267.867 269.2637 269.7919 270.3117 269.0803 266.8007 264.2167 261.5711 258.024 253.6365 247.4566 250.2505 252.5806 256.4398 257.3216 257.545 257.3198 257.7906 259.0127 259.503 259.9638 260.698 261.4643 260.5682 258.5676 256.9571 253.7443 250.7791 248.0203 245.4127 242.6511 237.2878 233.3263 236.2426 236.3193 235.4416 235.6875 235.7238 236.6438 235.3902 235.3882 235.5099 235.7972 236.2043 236.8343 237.4025 237.1711 237.8405 239.4132 241.5264 242.6095 242.5174 241.6755 240.2755 239.372 239.286 239.0208 239.0106 239.3483 240.1074 240.4351 239.9355 238.6573 239.0263 238.2994 237.8347 237.8149 238.4967 239.2565 239.2617 239.8508 241.4016 245.6288 250.7947 255.2876 259.5573 262.475 263.5381 259.3278 253.769 247.9614 244.2975 243.678 245.0891 246.8158 248.7935 252.5202 254.3395 254.5129 257.7533 261.0138 263.5339 265.1591 266.9911 268.8332 273.0703 274.7179 276.0795 277.0702 277.6883 278.1667 278.5179 279.2761 279.5035 279.7484 279.5237 279.8322 279.7807 279.8835 280.2259 281.2929 281.722 281.68 280.8185 277.7602 275.3303 273.2564 272.062 269.8859 267.5569 268.1484 269.0833 269.1639 267.5428 266.1086 264.2042 262.5562 260.9791 259.8559 257.3965 254.7442 252.1836 246.1805 245.5484 246.751 246.8843 248.3551 250.1742 251.744 251.9697 252.08 251.6242 249.7831 248.0364 250.5543 249.9159 249.046 248.0813 246.2068 240.7022 237.4038 237.0228 236.6518 236.3184 236.2019 -9999 +-9999 315.9591 314.2935 312.3219 310.5373 310.6664 310.823 309.5005 308.1746 307.0134 304.9216 303.5933 304.9643 306.0328 307.0328 306.5756 305.1006 303.0976 301.4757 299.9951 298.5203 296.2366 294.8244 292.6537 291.3769 291.751 293.1441 292.7341 291.61 290.43 288.3808 285.6254 280.2212 280.1402 278.0607 279.5557 279.3751 279.1508 279.9723 281.677 283.8633 285.4859 284.5766 285.2172 290.9294 289.0266 289.8633 290.427 291.277 291.9102 293.5845 294.6253 295.7416 296.4563 297.0055 297.8174 299.1765 299.2079 300.9213 302.7437 302.3561 302.0063 301.1149 298.6192 298.8772 299.634 301.5999 304.0933 308.1546 309.9232 311.3021 312.3258 312.4424 311.4751 310.1138 309.3933 308.2127 308.0032 306.1596 306.0285 305.6702 305.5969 305.527 305.3006 304.3481 302.9746 301.0056 297.4481 294.0232 293.5655 295.0324 298.3083 300.666 302.3543 304.2606 306.3957 309.3789 310.7217 312.0631 312.8436 313.5738 314.8364 316.436 317.6277 317.7805 317.658 316.8041 317.7907 319.3322 320.5824 321.9918 322.4284 322.7927 321.7124 317.9835 316.3778 315.8482 315.1229 314.2311 312.9994 312.1352 311.2983 310.2008 309.2159 309.62 309.7245 309.5394 309.4633 309.2411 308.5558 307.3842 306.4317 303.3971 302.1853 301.815 302.1343 302.9552 303.4871 303.9362 303.9021 303.2764 300.5397 300.3618 300.2467 299.214 298.084 296.5455 295.4909 295.3129 293.7808 290.7522 292.1458 293.6441 292.8646 293.4516 293.9812 293.0076 290.6372 287.6995 283.5051 275.8434 275.397 274.7433 274.2671 272.6985 274.3786 274.5931 274.9913 276.7532 281.8972 283.2485 283.7461 282.8525 280.9863 281.3755 285.248 287.2106 289.8539 293.2066 294.8957 295.5929 295.9367 296.2062 296.2337 296.4858 296.9865 297.7938 299.2625 299.7657 299.4384 298.9283 297.7344 296.6091 294.9313 292.4698 290.2695 285.7848 283.6898 281.5619 278.6078 276.911 275.0608 273.9839 271.6325 266.6822 265.9445 265.3377 266.0565 268.834 270.7101 272.1996 274.3375 277.1167 279.6573 284.4821 286.5293 288.5287 290.2425 291.8603 293.0213 294.3258 294.8764 294.4851 291.5174 290.8301 289.7853 288.5591 286.4302 284.8597 282.5983 280.2796 277.0352 272.3064 270.5881 274.2312 279.0746 280.8052 278.5232 276.8618 275.0241 274.7918 274.0043 271.1832 271.2592 271.1879 271.9279 273.1852 271.1493 266.4104 258.9136 265.7842 270.0848 270.6458 271.5342 272.8635 274.2519 276.8288 278.6198 278.7284 277.9827 275.6394 274.0219 273.5497 272.5412 270.9668 269.2515 268.2464 266.4445 266.0332 266.8081 266.8794 267.2551 267.2687 267.2115 266.8956 266.9048 265.7397 264.9944 264.9603 265.9999 266.6177 266.9693 266.9247 267.0425 266.6293 265.4047 264.3051 263.0995 263.5386 264.8885 265.9833 266.4415 266.76 267.3442 267.6578 266.9734 261.7346 258.5164 255.284 251.833 250.0555 248.4227 244.863 241.3334 239.4947 238.1654 237.5981 236.985 238.0479 237.7668 237.8731 237.8046 238.2056 240.0056 240.5505 243.9821 244.559 246.0585 246.1852 246.201 246.494 246.9951 247.4548 247.1352 248.9287 250.5064 252.0616 253.4609 254.4891 255.4677 256.3228 256.799 257.2694 258.5258 259.612 260.4763 261.6596 262.4461 263.1957 264.2693 265.2113 265.4528 264.7481 265.5602 265.7527 266.1867 266.4436 267.6013 268.3113 269.0523 269.3592 268.1453 266.1554 263.8845 260.9694 255.523 249.3637 251.994 254.8978 255.7325 257.2107 258.196 258.6561 258.813 259.5818 259.9977 260.6311 261.1622 261.9409 262.4281 260.3244 256.896 253.1725 250.6515 248.5342 247.2112 244.6551 239.272 235.7835 233.841 236.1987 235.1268 235.4285 236.3632 236.3649 236.0139 236.4194 235.966 235.9121 235.4731 235.9653 236.1755 236.8448 237.1668 237.6728 238.562 240.4809 242.64 242.439 242.046 241.9711 240.9824 240.2987 240.0783 239.6426 239.8471 241.0484 241.4953 241.3379 241.3006 240.6328 239.7343 238.9628 238.9495 239.2026 239.613 240.4339 241.3223 243.1461 246.2929 250.053 254.0283 257.9589 260.9604 265.354 263.8974 259.4161 254.3649 250.3649 246.7326 245.7275 245.6028 246.6851 249.6677 252.6322 254.8551 257.7932 260.1591 262.3116 263.7791 266.2178 267.5607 271.526 273.389 274.1621 275.134 275.6797 275.7305 276.297 276.2126 276.3179 276.4106 276.6846 277.026 277.2655 277.7854 278.2621 279.5673 280.6599 280.9861 280.0913 277.5828 276.043 274.3342 272.1622 270.5829 269.4193 269.0618 268.7189 268.6873 268.1232 266.7104 264.8928 263.5301 262.1044 259.6795 256.816 253.9539 250.7979 249.4197 249.129 248.9262 249.4749 250.1886 251.8341 252.9862 254.0763 254.6579 253.3539 251.2058 251.882 253.8342 252.5126 251.3131 249.6382 247.3961 242.542 237.3036 236.9575 236.7255 236.3825 235.9754 -9999 +-9999 316.2689 314.181 311.8697 309.129 308.1152 308.8863 308.3233 307.7975 306.2592 304.8733 302.7492 303.2365 304.5648 304.9185 304.9409 303.7198 302.7392 301.6345 300.484 299.2764 297.5666 296.2746 294.9279 292.9973 289.7117 290.1318 290.934 291.284 290.0081 288.746 288.6503 281.7644 280.3204 279.8629 279.4261 279.8175 279.3644 279.3117 279.8706 281.5033 282.443 282.9208 284.5386 286.5867 291.665 290.8941 292.1122 293.5467 295.6716 298.1921 298.6109 299.0231 298.8136 298.1929 300.3178 301.2408 301.023 301.5701 302.4645 301.6273 300.6198 298.5022 297.3863 297.0491 298.0843 300.9706 303.7134 306.7158 308.7454 310.4984 311.4704 311.9861 311.7515 310.5251 308.9235 307.3882 305.4853 304.137 303.6539 303.9938 304.2692 304.8344 304.3534 303.0283 301.6542 299.14 294.9283 293.8728 293.2798 295.111 298.4068 300.3907 302.1195 303.8518 306.0085 309.0072 310.3128 311.1336 311.8571 313.1585 314.9178 315.8095 316.2834 315.4832 315.0758 315.7174 317.1583 318.8168 319.8888 321.8839 322.2917 322.3649 320.9867 317.5704 316.3183 315.3085 314.5047 313.7014 312.8102 311.4394 310.3035 308.9559 307.4543 308.2082 308.5528 309.2956 309.2864 309.1321 308.3083 307.3222 306.5909 303.9731 302.2731 300.5333 300.3704 301.166 301.8963 302.6035 303.2393 303.3125 302.2789 301.8316 301.3028 300.4972 299.4801 298.4008 297.8134 297.1173 295.1134 292.657 294.3675 295.7611 295.0086 296.7682 297.4022 295.1498 293.1778 290.5212 285.6725 281.8477 280.2905 277.7629 276.4994 275.0949 273.9215 273.6825 273.0555 273.6041 278.7598 281.1565 281.4917 279.9359 277.3876 283.1616 286.7453 288.864 290.6559 294.2449 295.3235 295.8636 295.7395 295.4944 295.1174 295.3455 295.9014 296.6631 298.4424 298.9518 298.7523 298.425 297.6772 296.622 294.9313 292.4698 290.2695 285.7848 283.6898 281.5619 278.6078 276.911 275.0608 273.9839 271.6325 266.6822 265.9445 265.3377 266.0565 268.834 270.7101 272.1996 274.3375 277.1167 279.6573 284.4821 286.5293 288.5287 290.2425 291.8603 293.0213 294.3258 294.8764 294.4851 291.44 290.7263 289.9579 288.8526 287.2906 285.5409 285.1721 283.6777 279.6852 276.2659 276.2175 277.0461 280.3109 281.7926 280.6655 278.7351 276.7572 276.4173 275.9667 273.0537 273.3237 273.4338 273.2231 273.1595 271.2936 265.6201 260.3452 266.0164 271.6633 272.6326 273.8275 274.8907 276.1368 277.4714 278.3413 277.2875 275.9 273.6116 272.1103 271.9889 271.1855 269.3707 267.0502 265.8617 265.0501 264.2518 264.2007 264.7177 265.1955 265.5727 265.1523 264.7745 264.764 264.4503 264.0109 263.1304 264.2749 264.8597 265.4218 266.1136 266.1573 265.623 264.8253 263.5198 262.2542 262.8443 263.772 264.795 265.7733 266.4003 267.5762 267.997 267.4233 262.8431 260.4788 257.6707 254.6368 251.9766 249.4181 246.5114 242.7573 239.0242 237.7949 237.5902 236.9735 238.0615 237.9993 237.6525 237.998 240.3369 241.9499 242.9824 245.1601 246.3169 246.4125 246.4599 246.6784 247.1112 246.9668 246.6124 247.1568 250.5603 251.5289 252.6852 253.7699 254.754 255.5097 256.2167 256.3378 256.5805 257.5993 258.6144 259.5971 260.5432 261.9699 263.2565 264.3701 265.2548 265.924 265.0435 265.8674 266.3423 266.5228 267.0923 267.7146 267.9047 268.3377 268.8264 267.5441 265.8963 263.2361 260.7009 255.9266 249.6733 253.3192 257.0027 257.8881 258.8889 259.5466 259.7471 259.8767 260.6368 260.9508 261.2666 261.8409 262.2122 261.2534 259.5467 257.3038 255.5833 253.1381 250.4325 245.2168 240.411 236.5993 236.2773 235.4912 235.0004 235.9332 236.3306 236.3585 236.1792 235.5919 236.741 236.544 236.2162 235.4233 235.6626 235.7836 235.6724 236.0691 237.0468 237.5789 238.769 242.2632 242.2811 242.2325 242.9547 242.6253 242.1597 242.2401 241.5825 241.1502 240.9743 241.105 241.5154 242.2525 242.1833 241.2535 239.9769 240.0241 239.382 240.2491 240.9297 242.6449 244.254 246.7227 249.9909 252.975 255.6178 258.5059 263.7215 264.4847 261.9478 259.0047 257.1275 254.6205 253.2806 250.862 247.7084 248.3142 250.7831 254.3624 257.6446 259.9009 261.1072 262.8806 264.3835 267.2411 270.7709 271.8083 272.2599 272.5688 272.9328 272.9011 273.169 273.0076 272.5023 273.1891 273.6804 273.843 274.5789 275.7366 277.1439 278.7305 280.1861 280.8797 279.6748 277.7718 276.1515 274.4563 272.7193 271.0127 270.1973 268.9007 267.6719 267.2824 266.2454 264.7525 262.5561 260.4021 258.7816 256.2155 251.253 249.412 251.8846 250.4076 250.3851 251.9752 253.1039 254.1286 255.607 255.6993 255.1164 256.0049 255.1202 252.8565 254.5435 256.8076 255.5275 253.7296 251.5294 247.2305 242.2809 237.1628 236.8584 236.4889 236.374 236.0236 -9999 +-9999 316.9053 314.5879 312.5201 308.449 307.4261 306.6803 306.5251 306.08 304.1659 303.2042 301.3559 301.1159 302.3336 302.9917 302.7663 302.2441 301.1999 300.6253 300.2438 299.3911 298.0262 297.0255 294.7453 293.3462 291.7444 289.652 288.5037 287.3698 286.8488 285.5967 285.1863 283.7157 281.0974 280.1581 279.672 278.5346 279.4162 279.2815 279.4943 280.2971 285.5179 285.9572 286.2886 287.5046 289.2521 292.4727 293.8521 295.5512 297.7844 298.8716 300.2113 300.7534 301.444 301.6576 301.9492 302.0978 301.6985 301.8757 301.6041 300.4518 299.1034 296.7656 295.2054 295.5382 296.8278 300.5137 302.1734 305.8904 307.4082 309.0307 310.1675 310.723 310.9877 310.1325 308.3094 307.371 302.8559 300.9394 302.2264 302.9992 302.9448 302.4913 302.7825 302.0722 301.3052 298.7258 292.8679 291.9933 293.4477 295.6415 298.0321 300.2035 301.9229 303.5614 305.0794 308.474 309.0482 310.3081 311.7625 312.9617 313.564 313.6492 312.9491 312.894 315.8831 316.8973 318.3827 319.2351 320.2327 321.5759 321.9003 320.6801 319.1779 316.4915 315.4434 314.212 313.0928 312.4201 311.3978 310.4771 309.7278 308.4398 306.1495 306.7737 307.6279 308.7221 308.8221 308.4174 307.7622 307.0116 306.6595 304.5194 302.521 300.1448 299.1917 299.2238 300.078 300.8303 301.7957 302.5482 303.2137 302.8255 301.9858 301.4434 300.8847 300.2329 299.5264 298.8239 298.0749 296.5413 297.0715 298.1554 300.341 299.8792 300.1218 298.5238 295.5514 291.7772 289.9097 286.4283 283.7665 280.7122 276.4994 275.0949 273.9215 273.6825 273.0555 273.6041 278.7598 281.1565 281.4917 279.9359 277.3876 283.1616 286.7453 288.864 290.6559 294.2449 295.3235 295.8636 295.7395 295.4944 295.1174 295.3455 295.9014 296.6631 298.4424 298.9518 298.7523 298.425 297.6772 296.622 295.5605 293.5358 291.1721 287.3293 284.9322 282.3438 281.227 279.8274 278.613 277.1701 275.4644 270.7931 262.7623 265.3289 268.015 270.2074 271.7315 273.3424 275.3873 277.2019 279.8494 284.0387 286.309 288.3165 290.2573 291.9098 293.1181 294.3651 294.7586 294.3007 291.3111 290.4758 290.3258 289.5078 288.1339 287.0094 286.2637 285.5703 284.2178 282.7261 280.7966 280.5551 280.32 281.5252 281.3139 279.7328 278.3451 277.7279 277.0107 274.5844 274.0801 273.777 273.0515 271.9332 269.3033 263.6693 261.975 266.661 271.9147 274.1739 275.088 276.5222 277.4908 278.1796 277.4756 275.3959 273.8188 272.1476 270.869 269.181 269.2674 267.5709 265.2899 263.7983 262.2332 261.3515 261.503 262.5977 263.3074 263.5381 263.5662 263.4026 263.1979 262.499 262.4124 262.0462 262.6702 263.5862 264.1195 265.0567 265.625 265.1696 264.3808 262.9987 261.2235 261.5474 262.4598 263.5232 264.6602 265.9775 267.2242 267.7277 267.3772 263.5241 260.7665 257.7412 254.4849 252.4561 250.1506 247.6476 242.8087 239.4532 237.9567 237.5679 237.299 238.4721 237.9274 237.8886 239.002 239.6131 240.8683 242.4143 244.5622 245.5111 245.8495 245.8794 246.7418 246.9282 246.0231 246.7455 248.692 250.9155 251.776 252.6868 253.4264 254.3094 254.7543 254.8127 254.7625 254.7626 256.1312 257.289 258.2398 259.3018 261.3667 262.7482 263.7443 264.5156 265.0827 265.3817 266.0022 267.265 267.3891 267.8717 268.3365 268.8922 268.6349 268.6157 267.4417 266.0892 264.0031 261.4578 258.0103 255.3617 253.3195 259.1862 260.6111 260.7123 260.6587 260.2648 260.7795 260.8806 260.8359 260.7977 260.4727 260.2738 259.8277 258.6809 257.112 255.8867 254.4646 251.7094 248.845 240.3777 235.5175 235.2535 235.9602 236.2232 235.6456 236.554 236.1841 235.7731 236.3033 236.8914 236.6858 235.5352 235.6981 235.2661 236.0282 235.6543 235.5853 235.6761 236.8369 236.8348 240.4983 241.2455 241.3369 242.1599 242.3223 242.1913 242.1091 241.099 240.3635 239.6703 239.4839 239.8527 240.9355 242.4816 242.9946 243.3434 242.1621 241.9063 242.7671 243.27 244.2087 245.4312 247.7821 250.1834 252.9116 255.4978 257.9688 263.0464 264.7784 265.6417 265.137 264.2751 262.34 260.5551 258.4918 255.6733 248.0642 249.1844 252.5653 256.1848 257.7463 259.9616 262.9787 265.1834 267.1753 269.6865 269.9971 269.4781 269.2665 269.0771 269.3924 270.0852 269.5574 268.7187 268.8474 270.7166 271.7325 273.2867 275.5664 277.2598 278.8356 279.8974 280.0869 279.6754 278.4847 276.845 274.7551 273.4194 271.938 270.4677 268.7052 266.4464 264.8407 261.9003 260.0174 258.1546 255.6434 255.123 253.3069 256.8182 256.5531 256.0142 254.107 254.7581 256.3263 255.9544 257.0801 258.7595 258.8561 257.4615 256.6882 256.6788 254.1095 257.7938 258.8418 257.2472 255.3694 252.7132 250.0726 247.8114 237.7552 237.1525 236.6358 236.3787 236.4697 -9999 +-9999 317.7562 314.9827 311.6894 306.7073 305.7186 305.523 304.6291 301.9211 299.4141 298.5138 298.0373 298.8227 299.8033 299.8909 299.8883 299.1383 297.8457 298.7174 298.5667 298.2094 297.2952 296.4291 294.9055 294.0099 293.6288 293.206 292.7204 292.1344 290.8759 289.6159 287.8782 282.9648 281.4194 280.2576 279.5962 279.7146 277.7527 279.3185 279.0811 279.8762 289.9505 290.3532 290.7778 291.3204 291.4758 291.867 293.6876 295.2956 297.1268 298.8923 299.8347 300.4007 300.9706 301.0797 301.5076 301.1066 300.859 301.038 300.476 299.0424 297.5315 294.7758 291.8757 292.259 295.4876 299.2723 301.8004 304.735 306.1786 307.6407 308.3565 309.3452 309.4484 309.4844 308.2775 306.9484 301.519 298.8368 300.3893 301.124 301.7788 301.8145 301.3754 300.5912 299.643 298.3357 291.9993 292.1613 293.4446 295.9652 297.7542 300.0938 301.7699 303.2867 304.8191 307.7364 309.2682 310.2206 311.3088 311.4163 311.1182 310.8112 310.8723 314.4078 318.5556 318.8376 319.2002 320.0931 321.1587 321.6801 320.9598 319.3387 317.9659 315.7053 314.2885 313.8272 312.2575 311.3239 310.5132 309.7712 308.7184 307.4777 305.6709 306.287 307.2271 308.1357 308.4182 308.3936 307.7935 307.0995 306.8477 304.5997 303.2063 300.1448 299.1917 299.2238 300.078 300.8303 301.7957 302.5482 303.2137 302.8255 301.9858 301.4434 300.8847 300.2329 299.5264 298.8239 298.0749 296.5413 297.0715 298.1554 300.341 299.8792 300.1218 298.5238 295.5514 291.7772 289.9097 286.4283 283.7665 280.7122 282.0448 280.8004 276.1194 274.3221 273.8062 272.4934 276.0495 279.125 278.8553 275.6652 280.7147 284.1989 287.2009 289.1342 291.4193 294.5569 295.0659 294.6092 294.2764 294.1579 294.2681 294.1129 295.3601 296.3526 297.948 298.2104 297.895 297.9372 297.3999 296.377 295.4354 293.5089 291.501 287.7889 286.2682 284.7899 283.3809 281.8593 281.0951 279.568 277.1935 271.3882 261.1429 264.8392 266.8935 269.8051 271.6807 273.8933 276.0457 278.0035 280.0893 284.058 286.3304 288.3716 290.6676 292.4315 293.4474 294.3714 294.4703 293.7252 290.8163 289.9122 290.54 290.1938 288.4033 287.4124 286.8312 286.4757 285.4467 283.8385 282.1298 281.6093 281.5559 281.3923 280.56 279.41 278.2899 277.0051 276.6021 274.4789 273.3282 272.2491 271.6088 270.4501 267.4935 260.718 264.2068 268.0844 273.0647 274.9827 276.597 277.6372 278.3543 277.664 275.6806 273.8812 272.0296 270.1159 268.9835 267.2664 266.0335 265.0405 263.476 261.2886 259.4712 257.8891 258.9496 260.0085 259.9215 261.0804 261.7217 261.7703 260.9051 260.6641 260.435 260.516 262.0446 262.5556 263.1635 264.0956 264.7897 264.9045 264.1801 262.8217 260.662 260.6401 261.1366 262.0469 263.4832 265.0418 266.1943 266.6752 266.2721 262.4016 260.6176 258.119 255.1328 252.3533 250.2076 247.7524 245.6433 243.9414 237.5841 237.4347 237.6152 236.7728 238.0143 237.9252 239.2416 239.6373 240.954 241.9708 243.8523 244.6106 245.9072 246.2042 246.8078 244.8159 244.7844 247.3296 248.9522 250.9521 251.3636 251.8624 252.3603 252.914 252.1804 251.3341 251.2716 251.7298 255.1061 256.269 257.5215 258.694 260.7595 261.9063 262.4804 263.3339 264.2043 264.8266 266.0275 267.4529 267.777 268.6829 269.09 269.6084 269.5645 269.1345 267.437 266.1296 263.9192 262.1944 260.492 259.5672 260.4157 261.7802 262.3358 261.5652 260.9875 260.6966 260.0618 259.4224 258.5359 258.6338 258.2416 258.2724 258.652 258.0684 256.6542 255.7352 255.1179 254.4524 246.6658 235.1416 235.9036 234.9064 236.103 236.2571 235.5679 236.4568 236.1156 235.7497 236.2649 236.4855 236.605 235.3597 235.6157 235.4309 235.7144 235.7006 235.7459 235.6457 235.625 235.8058 238.5519 239.7115 239.9653 240.5225 240.779 240.5359 240.177 239.8498 239.5906 239.746 239.5754 239.5288 240.3643 241.8152 242.9995 243.9077 244.5735 244.6927 245.583 245.5381 245.8963 246.8268 247.988 250.673 253.9704 256.823 259.0856 263.2011 264.8682 266.063 267.6473 267.7965 266.9876 265.6599 262.6443 260.1284 252.7435 248.9202 251.4863 254.1215 256.1772 259.2787 262.0332 264.4452 265.7562 265.6241 265.989 266.0496 265.4519 265.4293 265.6596 265.4847 264.7479 264.0886 267.5596 270.0119 272.6379 274.8366 276.9999 278.5258 280.034 280.7219 281.3191 281.3867 280.2637 278.1191 276.2874 274.6496 272.9815 271.0824 268.9726 266.2885 264.1448 259.6064 257.6982 256.6092 255.6705 255.691 258.7341 260.0932 259.2887 259.3633 259.7817 260.1362 259.6156 260.0767 258.7298 260.6524 261.3993 259.9566 259.211 257.9223 255.4423 258.4575 259.4878 258.6352 257.0296 254.7322 252.9125 252.3425 244.3784 240.6994 236.6358 236.3787 236.4697 -9999 +-9999 317.5746 314.9889 312.0478 303.9997 303.07 303.276 302.5843 299.9524 297.2739 295.7969 296.2042 295.804 295.5834 295.3765 294.9961 293.8783 293.8387 294.7607 295.9776 295.5238 294.5385 293.4733 292.7747 292.7455 293.1279 292.7825 292.4398 292.2397 291.2205 290.4736 289.1366 282.6649 281.4011 280.2441 279.498 279.4399 279.4403 277.426 278.9733 279.4771 291.1446 292.8863 292.9924 292.6438 292.2424 291.9196 292.492 293.7455 294.5369 297.1093 297.8919 298.6795 298.8956 299.4698 299.6209 299.3934 299.4116 300.0317 299.2276 297.7044 296.1638 293.4116 289.6317 292.6393 294.9523 298.8419 300.9457 303.4081 304.5999 305.6396 306.2728 307.1377 307.7046 307.4977 306.6881 306.5684 302.6659 298.8671 298.6333 299.5546 300.707 301.6152 300.4132 299.0741 297.6767 293.193 290.5792 291.8375 293.5218 297.4955 299.4261 301.2203 302.3888 303.4415 305.1491 307.7507 308.389 309.2019 309.0653 308.9576 308.5819 309.0487 313.235 315.6057 318.5556 318.8376 319.2002 320.0931 321.1587 321.6801 320.9598 319.3387 317.9659 315.7053 314.2885 313.8272 312.2575 311.3239 310.5132 309.7712 308.7184 307.4777 305.6709 306.287 307.2271 308.1357 308.4182 308.3936 307.7935 307.0995 306.8477 304.5997 303.2063 301.7315 298.8571 297.1811 297.7492 298.8956 300.026 301.3974 302.8838 302.8496 302.5941 302.1423 301.9972 301.8675 301.2416 300.6671 299.515 298.3109 298.4158 299.0215 302.6856 302.0728 302.1358 300.3326 296.843 294.5401 289.9521 286.9425 284.1789 284.5441 285.3907 284.7563 283.3937 280.4755 277.2476 273.3184 272.9473 274.3609 274.7576 278.9337 282.2754 284.9149 287.3629 289.3991 291.1436 293.7807 293.8025 293.3188 292.786 293.0478 292.8156 292.9923 294.8941 296.0388 297.032 297.2009 297.1633 297.0807 296.8613 295.7701 294.3526 293.1052 291.6552 289.1448 288.4591 286.9915 285.2635 283.7708 282.2931 280.0566 276.7573 270.3736 260.3742 261.2625 265.8449 269.4673 271.3989 273.5984 275.5216 277.5445 279.7089 284.1162 286.3279 288.8509 290.9764 292.9361 293.6061 293.2321 293.4542 292.496 290.4383 289.6371 290.1336 290.5711 289.4381 287.7865 286.6394 285.7496 284.7298 282.7255 282.1877 282.0071 281.5471 280.4691 279.3182 278.2632 277.4889 276.431 275.3517 273.6463 272.255 271.5418 270.7701 268.9825 265.5409 260.6002 266.2797 268.6614 274.0613 276.0068 277.8086 278.6885 278.5162 276.9924 274.7665 272.4301 270.3746 267.7354 266.9955 265.8805 263.6247 261.3394 260.5712 258.9742 256.5817 254.7108 255.4718 255.8313 255.989 257.5816 258.7331 258.6835 259.4721 259.1841 258.6944 260.0226 260.7914 261.8389 262.3208 262.9783 263.7272 263.9447 263.5241 262.3367 259.9828 259.6895 259.8417 260.4154 261.4625 263.3833 264.9355 265.7575 265.2802 261.7422 259.5849 257.2934 254.8565 251.7177 249.187 247.637 245.0904 240.3879 237.6665 237.4493 237.4253 238.0711 238.0267 237.4812 239.5653 240.2435 240.9069 241.8385 243.3956 244.7715 245.9356 245.6782 245.4091 243.431 244.2276 245.9586 247.4536 249.9431 249.7771 249.3898 250.0674 249.4887 248.9124 248.8036 249.5844 250.6909 254.1776 254.9522 256.1393 257.6475 258.7818 259.2636 260.2524 262.0878 263.4041 264.6223 265.577 266.7057 268.0432 268.6036 269.2057 269.506 269.7946 269.5665 268.0353 266.6019 265.3916 264.4156 263.6808 262.8828 262.7199 263.2316 263.226 261.6301 260.1196 257.8209 255.8065 255.0073 253.6898 254.8208 255.9871 254.3329 256.5022 256.1258 254.9958 253.8424 253.8779 253.2218 241.9197 234.5081 235.9518 235.6103 236.1609 236.0132 236.0467 236.3181 235.8355 235.7027 236.2705 236.1665 236.4611 235.6524 235.6963 235.7353 235.3636 235.7768 235.3766 235.8278 235.6656 235.3481 238.1435 238.0271 237.9895 239.1498 239.3374 238.901 238.9035 238.988 239.1564 240.2152 239.9129 240.1374 241.0084 241.9837 242.3859 242.8945 243.7418 244.5464 246.2689 246.7022 247.2897 248.1205 249.1579 250.5072 251.9735 253.5539 255.0805 258.23 259.6162 261.0879 262.2393 263.2787 264.2843 265.1034 264.5717 262.8641 257.5313 252.6179 249.7855 251.0395 252.5907 255.1571 257.5318 259.3004 260.65 259.689 260.3837 261.7508 261.2247 260.691 260.8869 260.662 261.0988 264.1191 269.3448 272.3306 274.087 275.994 277.8081 279.6471 281.3765 280.7219 281.3191 281.3867 280.2637 278.1191 276.2874 274.6496 272.9815 271.0824 268.9726 266.2885 264.1448 259.6064 257.6982 256.6092 255.6705 255.691 258.7341 260.0932 259.2887 259.3633 259.7817 260.1362 259.6156 260.0767 258.7298 260.6524 261.3993 259.9566 259.211 257.9223 255.4423 258.4575 259.4878 258.6352 257.0296 254.7322 252.9125 252.3425 244.3784 240.6994 240.0739 240.706 239.4579 -9999 +-9999 318.5953 315.8586 313.593 306.9586 304.6106 306.3309 303.9678 300.494 299.1436 299.6815 298.4496 296.8679 294.6361 292.7672 291.9349 291.3706 291.2436 290.4142 290.7559 290.9425 290.5922 289.5255 288.5743 288.5347 288.4059 288.3979 288.5379 288.806 287.3285 285.3879 284.0784 281.7971 281.2278 280.4944 279.5146 279.4053 279.2852 279.3457 279.1473 279.2543 290.4707 293.455 292.2599 290.5191 289.3451 289.74 290.1346 292.3305 292.9078 294.9439 295.3683 296.4013 296.9091 297.4008 297.9789 297.8012 298.3836 299.0267 298.3008 297.1793 293.6957 291.0935 290.7663 292.7163 295.1893 297.9595 299.2489 300.7499 302.6605 303.373 304.7306 305.6658 305.6331 305.8347 305.6483 306.0299 302.6659 298.8671 298.6333 299.5546 300.707 301.6152 300.4132 299.0741 297.6767 293.193 290.5792 291.8375 293.5218 297.4955 299.4261 301.2203 302.3888 303.4415 305.1491 307.7507 308.389 309.2019 309.0653 308.9576 308.5819 309.0487 313.235 315.6057 318.8004 319.7088 320.6969 321.4605 322.0459 321.7693 320.0722 317.7018 316.0795 313.8544 312.4957 312.0037 311.2636 309.9363 308.8855 308.6941 307.7772 306.3703 303.7528 304.5631 306.0771 307.2168 307.7051 307.8661 307.0219 306.372 306.3387 304.4237 303.6558 302.6239 300.7155 297.3699 296.5445 296.9202 298.5358 299.9687 302.0928 302.6748 302.9768 302.8283 302.6799 302.4623 302.0312 301.4444 300.1955 299.2627 299.205 299.7131 303.0347 303.2698 302.6653 300.8329 298.7166 296.1526 291.7725 290.0703 285.6293 288.5472 289.1328 288.2218 288.0081 287.4669 282.3281 276.5013 272.2386 272.245 277.4977 280.9865 283.4192 285.5019 287.0333 288.7893 290.1245 292.0727 291.8685 291.3575 291.1198 291.4355 291.5184 292.2716 294.4538 295.1967 295.6916 295.988 296.0026 296.0872 296.0458 295.3303 293.9281 292.2539 291.4749 289.3591 287.6692 286.4985 285.2499 283.4728 281.4375 279.2896 276.0898 270.2589 261.7084 259.407 263.795 268.0175 270.7743 272.8148 274.5616 276.6395 278.9018 284.0277 285.8243 288.1936 290.3443 292.5183 291.9998 290.7096 290.769 290.7194 289.5605 288.9589 289.5412 289.9403 289.4203 288.331 287.3211 286.3065 285.2048 282.5296 281.8719 281.324 280.9192 280.4021 278.3519 277.4104 276.137 274.8636 273.9745 272.0252 271.233 269.7108 268.3757 266.7944 263.2989 265.4926 267.979 270.7438 274.2847 277.1067 278.8597 279.1593 278.0976 276.0281 273.5057 270.9702 268.4332 265.8257 264.9702 263.6252 261.3789 259.0471 257.5016 255.1909 252.8889 252.1519 250.0986 250.6462 253.0204 254.4793 255.7896 255.3585 257.2684 257.67 257.5301 258.7248 259.9197 260.8827 261.4974 262.2061 262.6554 263.1893 262.918 261.9028 259.3829 257.963 257.3231 257.9917 259.9949 262.1399 263.615 264.7011 263.97 260.4406 258.2827 255.904 253.7092 251.1473 248.2061 243.3561 239.9827 237.1935 237.4359 237.3961 237.5256 238.0083 236.8478 237.9503 238.5228 240.095 241.1433 241.4311 242.8463 243.7302 244.2648 243.3998 242.309 242.293 243.116 243.4584 244.6078 247.0643 246.5116 246.4032 246.5572 247.037 248.4911 249.4637 250.0991 250.6663 253.0823 253.7797 254.0378 255.3342 256.0268 256.3808 257.9293 260.9346 262.5671 264.6273 265.1703 266.299 267.5453 268.3093 268.8629 268.8608 269.0145 269.1116 268.8382 268.0588 266.9403 266.3848 264.9455 264.6958 264.7316 264.62 264.0249 261.7026 259.4821 256.5009 252.7791 247.6483 247.433 249.2346 252.1031 250.5274 253.7544 252.8473 250.1381 250.2647 251.4771 250.0561 238.9254 234.6661 236.0802 236.1295 235.6849 235.6183 236.1916 236.0752 235.6115 235.6631 236.2365 235.9921 235.9987 235.884 235.799 235.7001 235.5289 235.2079 235.4228 235.2521 235.357 235.3898 236.8045 237.3239 236.9696 238.2464 238.6353 238.8839 239.1151 239.5117 239.8348 240.9215 241.1264 241.6056 241.9747 241.7459 241.8352 242.2007 242.6222 242.9854 244.9755 246.1819 247.0707 248.5015 249.5616 250.5072 251.9735 253.5539 255.0805 258.23 259.6162 261.0879 262.2393 263.2787 264.2843 265.1034 264.5717 262.8641 257.5313 252.6179 249.7855 251.0395 252.5907 255.1571 257.5318 259.3004 260.65 259.689 260.3837 261.7508 261.2247 260.691 260.8869 260.662 261.0988 264.1191 269.3448 272.3306 274.087 275.994 277.8081 279.6471 281.3765 282.3955 283.3225 283.5355 281.7468 279.9615 277.4742 275.998 274.1277 271.943 269.755 267.8024 265.3287 263.2642 261.2619 259.1819 259.5543 260.3165 262.1435 262.7874 262.7321 262.5803 263.7393 263.4935 262.5417 262.528 261.5317 261.5003 262.8303 262.6456 261.2491 257.2596 259.2361 261.6422 261.3332 260.5681 258.4768 256.227 254.7737 252.4061 247.5722 246.3941 245.1534 243.0206 241.8893 -9999 +-9999 319.1781 318.1206 316.9861 311.92 310.0577 310.3998 309.9039 307.8055 305.3361 303.6131 302.6881 301.0125 296.9638 294.5881 293.1039 292.376 290.786 290.2233 289.8664 289.5781 288.6849 287.9706 286.8232 286.469 285.5562 285.0264 284.9973 284.306 284.4867 283.6666 282.8316 281.2216 280.7988 280.3235 280.2191 279.9689 279.1082 278.8622 278.6856 278.1847 285.7239 289.4864 288.3216 286.0924 285.827 286.5987 288.1306 288.762 291.0472 294.9439 295.3683 296.4013 296.9091 297.4008 297.9789 297.8012 298.3836 299.0267 298.3008 297.1793 293.6957 291.0935 290.7663 292.7163 295.1893 297.9595 299.2489 300.7499 302.6605 303.373 304.7306 305.6658 305.6331 305.8347 305.6483 306.0299 303.6248 300.5969 299.1718 297.5225 299.7449 300.7023 300.079 298.7303 296.5259 291.8875 290.6808 291.1451 293.7968 297.493 299.8811 301.7206 303.0558 304.3562 305.746 307.303 306.6706 306.0017 306.2982 306.4041 308.4388 311.7655 314.0401 315.67 318.9392 320.0424 320.9286 322.2031 322.559 321.9673 320.8881 318.4008 316.3889 312.5283 311.1205 310.1142 309.5891 307.7451 307.0199 306.7884 306.0707 305.2546 302.7282 303.6253 305.037 306.0969 306.3194 305.9992 306.0819 305.3062 305.0995 303.777 302.788 302.1075 301.5186 299.1 296.4135 295.839 297.1635 298.9031 300.8653 301.6293 302.4025 302.7593 302.4297 301.9238 301.4571 300.9388 300.5778 300.1591 300.1738 300.2569 302.2754 302.7317 303.0209 301.6808 299.2265 297.2487 293.1819 290.624 290.4412 291.8841 291.9386 291.4322 290.7634 289.6281 285.1154 278.7716 272.076 271.487 276.9871 280.5105 282.473 284.3287 285.8786 287.4409 289.1117 290.5571 290.1709 289.0149 289.4512 289.9409 289.1319 291.4735 293.0361 293.6658 294.6954 295.0296 294.9645 294.6997 294.7522 294.5547 293.1061 291.3593 290.0816 289.7884 286.6313 283.7403 283.4351 282.0302 280.0775 278.3498 276.1655 271.2519 262.564 259.8363 258.5308 267.8188 270.9638 271.7281 273.433 275.2505 277.4702 282.3296 284.7446 287.0334 289.4022 290.6644 289.4778 288.3929 288.1484 288.4548 288.0262 288.088 288.5269 288.9659 289.0099 288.2764 287.3481 286.688 285.102 282.3308 281.6298 281.0816 280.6329 280.1358 278.4416 276.5491 275.0058 273.8488 272.6295 271.0298 269.8865 268.3579 266.3387 264.0629 265.8461 267.7097 270.5278 271.6507 274.9385 276.9832 278.3182 278.2783 276.4637 274.7763 272.3535 270.1087 267.9619 263.9929 262.0177 260.5641 258.2631 255.7904 253.6834 252.8217 252.8151 257.1374 253.6507 251.4701 250.9061 250.3615 250.5653 253.3515 254.5362 256.1058 256.3773 257.7515 259.3604 259.9861 260.6538 260.9751 261.5899 262.4052 262.0755 261.6548 258.2777 256.6205 255.9839 256.5748 258.0967 260.9385 262.5905 263.56 262.6298 259.0512 256.8082 254.474 251.9818 249.274 245.7047 241.3026 237.243 237.2831 237.5115 237.3548 237.6232 237.5478 237.9687 237.8205 237.4864 237.3727 239.6981 241.0539 240.4348 240.4489 240.5036 240.7073 240.9712 241.4245 242.4532 242.8978 242.7226 244.3545 245.3129 246.8657 248.0799 249.6549 250.9332 251.6809 253.5533 254.1423 254.9185 256.5805 257.9761 257.5249 255.9341 256.0261 257.1571 260.2736 262.6983 264.7922 264.5547 265.561 266.6678 267.6771 267.837 267.8508 268.0322 268.7448 269.1543 268.8666 267.8995 267.3597 266.4045 265.9426 265.8578 265.5475 264.8087 261.8895 259.8035 258.4613 255.9631 251.7269 248.9902 246.0934 244.9161 245.9011 249.137 248.5779 248.3593 246.3551 249.5927 247.9423 237.7262 234.8883 234.7027 236.5187 236.2048 235.5738 235.7341 236.0752 235.6115 235.6631 236.2365 235.9921 235.9987 235.884 235.799 235.7001 235.5289 235.2079 235.4228 235.2521 235.357 235.3898 236.8045 237.3239 236.9696 238.2464 238.6353 238.8839 239.1151 239.5117 239.8348 240.9215 241.1264 241.6056 241.9747 241.7459 241.8352 242.2007 242.6222 242.9854 244.9755 246.1819 247.0707 248.5015 249.5616 250.4694 251.5412 252.6391 253.8495 256.5202 257.8915 258.7266 261.0941 261.5091 262.1032 262.8108 263.5429 264.727 261.9846 260.2549 257.0397 253.7978 250.759 252.1801 253.0333 253.0215 252.8213 255.4938 258.6999 260.0003 260.3248 260.1112 259.5654 263.2776 265.7588 270.525 274.1094 275.7539 276.7586 277.7894 278.9478 280.6539 282.6976 284.2065 284.7431 284.7362 282.6254 281.0081 279.4773 277.1255 275.526 273.953 271.7128 269.781 267.5955 266.5663 265.9711 264.4812 264.6712 265.6907 266.0216 265.7971 265.1169 265.0584 267.0175 266.6255 265.0157 265.2733 264.2657 264.6281 264.7424 264.2937 262.9884 257.5328 261.4482 263.3038 263.4725 262.3195 260.577 258.6587 256.2234 253.7411 250.4166 250.0457 247.4969 245.6915 245.2323 -9999 +-9999 319.4561 319.9203 320.4928 314.7788 313.2477 312.4213 311.7475 310.1311 307.6089 305.1468 303.0298 301.5416 301.4834 298.3228 296.3681 295.6799 294.623 294.0394 293.1067 291.6446 291.014 290.6626 286.8232 286.469 285.5562 285.0264 284.9973 284.306 284.4867 283.6666 282.8316 281.2216 280.7988 280.3235 280.2191 279.9689 279.1082 278.8622 278.6856 278.1847 285.7239 289.4864 288.3216 286.0924 285.827 286.5987 288.1306 288.762 291.0472 292.8439 293.3089 293.9287 294.7025 295.3569 296.0407 296.6827 297.2687 297.7651 297.1931 295.2985 292.1967 289.6779 290.9054 292.8366 294.8818 296.4561 295.2405 297.3123 300.1148 302.6916 303.4407 304.0283 304.1264 304.1165 304.4119 304.479 302.3698 300.4844 296.653 295.6468 298.0631 299.4874 299.3955 298.7517 297.2033 290.4846 289.2874 291.3905 294.629 297.4579 300.5234 301.2676 303.0448 304.7036 306.4655 305.1001 302.9327 304.6419 307.2887 309.1463 311.1651 313.2624 314.684 316.3623 318.7302 319.9502 321.3351 322.629 323.199 322.5873 321.5263 318.3372 316.1042 309.9772 308.5202 308.2504 307.6566 305.0424 303.675 303.6837 304.0164 304.1267 301.4282 302.0469 304.014 304.788 304.8932 304.7303 304.0976 303.6876 303.6059 302.5664 301.4843 300.4746 300.5141 299.7158 297.1378 295.506 295.708 297.499 299.8427 301.2861 301.9321 302.3126 301.8924 301.0606 300.47 299.7904 299.5037 299.4662 300.5423 300.5141 301.5641 302.0025 302.5001 301.474 299.9019 298.7077 295.9943 293.7696 295.6417 295.5225 293.9808 293.3622 292.536 290.4943 286.4551 273.2237 271.7137 269.8747 274.3471 278.229 280.7018 282.4601 284.609 286.4171 288.2741 288.5567 287.5529 286.8837 288.0537 288.2011 286.6265 287.9618 290.5824 292.0634 293.889 294.2308 293.5154 292.7488 293.1509 292.9275 291.7928 290.4299 288.9537 288.1735 284.5182 281.8344 280.005 279.085 276.5308 275.7671 274.6817 270.9641 265.6403 261.8131 257.3869 265.1371 268.942 270.0844 271.8699 274.0358 276.4644 281.1909 282.9792 285.0475 287.323 288.0076 286.515 285.5362 285.4677 285.9992 286.4311 287.5801 287.5306 287.5612 287.9316 287.583 286.8997 286.0006 284.9631 282.6195 281.6657 280.8676 280.2111 279.569 278.5637 277.2631 275.9078 274.7068 272.3603 271.275 270.3141 268.84 267.4114 268.2657 268.848 270.1711 271.2278 273.0928 275.2778 276.887 277.6028 276.7263 274.7819 272.8372 271.1199 269.6933 267.9929 261.8726 259.366 257.8006 255.8594 255.0141 258.9747 262.402 261.6166 261.9636 260.2622 258.2264 255.5553 251.9576 248.8582 250.7094 253.4295 253.8014 254.7445 255.9347 257.5405 258.4983 259.3414 259.8956 260.565 260.8928 260.973 260.8604 257.5564 256.3484 255.6542 256.2047 257.7065 260.478 262.016 262.7523 261.7738 257.6228 255.2922 252.9552 250.5111 248.5687 243.8656 237.463 237.11 237.3258 237.6033 237.3532 237.4559 237.4737 237.3819 237.1226 237.4033 237.1112 237.4203 238.1546 239.5579 239.6838 240.9207 242.3054 243.2672 243.7327 244.3471 245.2633 246.3949 248.7925 249.335 249.9782 251.3028 252.3745 253.604 254.8676 256.0598 256.6326 258.1309 259.4723 260.2051 260.0234 259.2658 257.1315 258.1847 261.3146 263.4377 265.0095 264 264.6617 265.6484 266.4744 267.837 267.8508 268.0322 268.7448 269.1543 268.8666 267.8995 267.3597 266.4045 265.9426 265.8578 265.5475 264.8087 261.8895 259.8035 258.4613 255.9631 251.7269 248.9902 246.0934 244.9161 245.9011 249.137 248.5779 248.3593 246.3551 249.5927 247.9423 237.7262 234.8883 234.7027 236.5187 236.2048 235.5738 235.7341 235.7647 235.6156 236.247 236.1138 236.0452 235.6678 235.9255 235.5497 235.5508 234.9477 235.1369 235.0955 234.9489 235.1131 235.2849 235.3742 235.7584 236.1748 236.9143 238.4395 240.1703 240.8127 240.8123 241.1789 241.7453 242.1738 242.1362 241.7185 241.6324 241.6526 241.5286 241.8601 241.6762 242.4649 243.7543 245.9781 247.4229 249.6236 250.6959 252.2958 253.226 254.1237 256.2992 257.5409 258.6956 260.9085 261.8482 263.377 264.7612 265.336 265.6313 265.6986 264.6224 262.5451 261.3065 259.0977 257.3957 257.4421 258.9425 260.499 259.8327 258.4679 259.8597 261.5659 263.7104 265.8428 268.2817 271.3234 274.3834 278.0269 278.3305 278.6952 278.9124 280.3653 281.7178 283.4764 284.396 284.3856 284.0594 282.8205 282.0338 281.0719 279.0791 277.0575 275.452 273.4117 271.36 269.8537 268.7927 268.9568 268.6127 268.2263 268.6452 268.6089 268.4248 267.5067 268.1364 269.6064 268.2719 267.7743 267.703 266.8875 267.5245 266.5999 265.5021 264.4116 258.7997 263.1819 264.6286 264.7607 263.2685 261.2548 259.0568 257.2814 255.1226 253.0912 250.8724 246.8091 243.3429 240.2466 -9999 +-9999 319.4561 319.9203 320.4928 314.7788 313.2477 312.4213 311.7475 310.1311 307.6089 305.1468 303.0298 301.5416 301.4834 298.3228 296.3681 295.6799 294.623 294.0394 293.1067 291.6446 291.014 290.6626 289.2246 288.3224 287.288 287.3576 287.5889 288.7542 289.4093 288.4658 286.2475 284.7362 282.8272 281.5202 280.5755 279.8104 279.3255 279.2627 279.0341 279.3261 279.8496 281.3527 282.0828 281.8145 281.8274 283.1878 285.1072 287.2369 288.5681 290.3408 291.9688 291.3826 292.9051 294.2546 295.0219 295.8628 296.0887 296.3858 295.8462 293.6791 290.6235 288.5615 290.5053 291.5455 293.0325 292.9153 292.3817 295.8592 299.4504 301.4152 302.2253 302.5079 302.6357 302.7811 302.9322 303.421 302.4155 300.3606 297.344 294.462 295.9932 297.891 298.1582 297.83 296.2909 290.0866 289.9251 291.7816 295.287 298.1631 300.1743 302.1671 303.2817 305.0854 304.9431 303.2499 303.2476 305.7058 307.8365 309.1332 310.7305 312.3313 314.0005 315.207 317.7649 319.929 322.2045 323.1778 323.3808 322.8731 321.8825 319.4738 317.6932 311.7035 307.8958 306.4162 304.6441 304.1397 302.3015 301.5787 300.8429 301.0674 299.8067 299.8353 301.9347 302.7939 302.6878 302.7661 301.9714 301.5128 301.9381 301.1366 300.0589 298.8852 299.0035 298.726 296.4657 295.0044 295.3341 296.3883 299.2254 300.5848 301.394 301.9167 302.1051 301.0618 299.5156 298.5179 298.297 298.3861 299.6432 300.9382 301.8326 301.927 302.4935 302.3557 301.0066 299.5732 297.9704 297.4066 297.5142 297.1302 296.146 294.4911 293.0092 290.5901 286.4097 273.8326 271.6974 271.4041 272.0225 275.3908 278.7123 280.492 283.1366 285.6163 287.582 285.6048 284.9477 284.9895 285.8768 285.176 284.4524 286.5801 289.6873 290.737 293.1098 292.9748 292.0756 291.6506 290.9642 290.9711 290.3634 289.5023 288.4579 287.3234 284.8819 281.1371 277.747 276.1754 274.3622 272.4388 269.7258 266.2523 264.1174 260.4648 257.1081 262.0262 266.6034 268.009 270.2855 272.9588 274.9735 278.9142 281.0075 282.7664 284.9853 284.9807 282.68 281.3551 281.7246 282.1279 285.8804 286.9623 287.11 286.1391 286.1894 285.8981 285.342 284.6044 283.6275 282.4637 281.5709 280.8736 280.0009 278.9612 277.9439 277.1481 276.2942 275.8032 273.9434 272.4268 271.3314 270.7778 270.3196 270.4406 270.5291 271.3126 272.3009 273.4789 275.8576 276.6628 276.4472 275.1025 273.1651 271.2885 270.0451 267.9139 266.2029 259.8229 257.4385 256.0996 256.217 260.2797 263.1992 265.2801 266.0261 266.3421 265.5079 263.5208 261.4815 259.0861 253.3829 249.1803 250.344 252.5514 251.9713 253.5334 255.3833 256.2366 257.5518 258.4973 259.575 260.0366 260.0016 259.7703 257.1669 256.0395 255.2295 256.1613 258.1249 260.472 261.8467 262.3014 261.2482 256.8522 254.0472 251.3346 249.5997 247.2394 242.326 236.9386 236.9597 237.0768 237.5224 237.3403 237.2583 237.2387 237.1605 237.1112 237.2958 237.1112 237.4203 238.5112 239.5579 239.6838 240.9207 242.3054 243.2672 243.7327 244.3471 245.2633 246.3949 248.7925 249.335 249.9782 251.3028 252.3745 253.604 254.8676 256.0598 256.6326 258.1309 259.4723 260.2051 260.0234 259.2658 257.1315 258.1847 261.3146 263.4377 265.0095 264 264.6617 265.6484 266.4744 266.8229 266.997 267.1191 268.0428 268.6462 269.0692 268.6512 268.113 267.7433 267.3015 266.7906 266.025 265.0237 262.001 261.1006 259.3651 258.2736 253.8738 252.1169 250.74 246.5853 243.6963 242.717 241.2685 242.5327 240.3382 241.0726 240.8829 235.3627 234.9481 233.2582 236.2939 236.2301 235.5053 235.4591 235.7484 235.6412 236.2869 236.1246 236.0255 235.911 235.9006 235.7788 235.4017 235.4686 234.8971 235.119 235.0176 235.2876 235.2416 234.8507 234.7131 235.566 236.4327 237.6136 240.1349 242.137 241.752 241.4006 242.0491 242.4156 241.9915 241.7338 241.8625 241.9793 241.1554 241.5487 240.417 240.5608 241.8997 243.9913 246.8513 249.0191 250.4056 252.1497 252.7919 254.1012 256.4471 257.7716 259.5793 261.2663 262.6486 264.7714 266.612 267.5322 267.5944 267.4902 267.486 267.1781 267.4714 267.0179 266.7889 266.9016 266.9258 266.3368 264.7743 264.163 264.2882 265.127 267.2801 269.0478 270.5762 272.9131 275.2678 278.7935 278.6477 278.7302 279.4399 280.6162 281.5287 282.588 282.8015 282.3964 281.5469 281.2309 281.2473 281.0289 280.2049 278.51 276.8695 274.7881 272.7548 271.2785 271.2469 271.2811 271.5196 271.2227 271.5003 271.2139 270.2332 270.3665 270.702 271.3137 270.0837 270.4116 269.9822 269.4105 269.5229 268.3711 266.9028 263.54 263.0154 264.9929 265.7998 265.9343 264.023 261.4802 259.7552 257.8301 255.7934 254.408 249.1612 242.0419 237.5771 236.2512 -9999 +-9999 319.738 320.0957 321.5113 318.0835 314.2869 313.3796 311.52 309.2266 307.0702 306.1372 305.1733 303.2825 304.5515 303.0041 301.3137 300.284 298.692 297.1973 296.1123 295.2643 294.052 293.1693 293.5825 293.023 291.7707 290.4418 289.696 292.3832 293.4092 292.8813 290.869 287.1984 285.5517 283.5644 281.7747 280.8287 279.8651 279.2307 278.9601 278.9164 277.1166 278.8918 278.6921 278.9567 279.6186 279.6964 281.2231 284.3062 286.1648 287.6167 288.6747 291.4377 292.0102 293.1251 294.0524 294.4573 295.0916 294.8289 294.1726 292.307 289.3366 288.1332 289.6714 289.8866 290.6571 290.4713 289.7056 296.5693 299.4909 300.6682 300.9207 301.0938 301.3159 301.57 301.51 301.4315 301.8375 300.5643 298.4129 294.1404 294.1044 295.7169 296.4254 296.1219 293.1927 287.9745 289.4659 292.5756 295.6562 298.3522 300.0625 301.9828 303.8021 303.8969 302.608 301.0449 303.2821 305.0387 307.238 307.996 309.1799 310.8094 312.5244 314.3068 318.2992 320.9898 322.7185 323.2189 323.1434 322.8907 322.0341 321.1238 319.4616 314.3813 312.0686 309.598 308.0964 305.5642 302.7467 302.136 300.4812 298.672 298.0759 297.1085 298.063 299.9149 299.876 300.6908 299.7209 299.1178 300.0992 299.9058 299.1994 298.0071 297.4464 297.3737 295.5138 294.5831 295.0221 296.6732 299.1751 300.6634 301.4297 301.962 302.376 301.9548 300.544 298.3191 297.3734 297.188 298.6745 299.7708 300.5031 301.1514 302.315 302.9499 301.9993 301.4791 299.6681 299.0583 298.8929 298.3154 296.8245 295.121 293.6333 291.4954 288.7138 279.6924 273.8602 271.394 269.522 271.9237 275.5068 278.6124 281.6501 284.3677 285.6944 282.5933 282.0134 282.0639 281.3098 284.0858 286.5476 288.1986 289.5938 291.0814 292.3709 291.8885 291.2288 289.6469 288.7713 288.2848 287.9957 287.915 287.8788 285.3466 282.91 279.8957 278.1208 278.7104 277.8562 277.7326 276.6069 272.882 264.2136 259.3488 256.8355 260.7994 263.4893 266.299 268.4393 271.0608 272.9364 275.7676 277.4762 279.0999 280.7112 279.9773 277.6426 277.2941 277.1552 279.2093 285.2098 286.5049 286.7894 284.9687 284.4239 284.0968 283.6963 283.1236 282.5324 281.2227 280.9255 280.641 279.9018 279.0871 278.2191 277.4532 276.8402 276.2413 274.9658 274.5356 273.7377 272.8558 272.43 272.1445 271.8712 272.3411 273.1855 274.2977 275.6829 275.3421 274.6649 273.3731 271.9834 270.143 267.8163 265.7759 264.6537 257.8141 255.9574 256.7197 259.9426 262.6563 265.212 267.1234 268.0731 269.0882 269.6008 267.463 264.943 262.5752 258.0089 252.9498 248.263 247.4774 250.0784 250.0474 255.3833 256.2366 257.5518 258.4973 259.575 260.0366 260.0016 259.7703 257.1669 256.0395 255.2295 256.1613 258.1249 260.472 261.8467 262.3014 261.2482 256.8522 254.0472 251.3346 249.5997 247.2394 242.326 236.9386 236.9597 237.0768 237.5224 237.3403 237.2583 237.2387 237.1605 237.1112 237.2958 237.188 237.3713 238.3732 241.5545 242.7053 243.0315 243.7881 244.5687 245.6408 246.6115 247.6973 248.8844 250.1971 251.2618 251.8458 252.5392 253.3236 254.4778 255.3537 256.6698 257.5117 260.1192 261.6115 262.2099 261.5884 261.2297 260.9422 261.3839 263.2187 264.4454 264.8837 263.6325 263.6382 264.2341 265.2721 265.6931 266.1222 266.4465 266.9284 268.026 268.4804 268.6351 268.4691 268.0305 267.5336 266.8058 266.1086 264.6152 262.1066 261.6145 260.0607 258.9749 257.4367 256.3238 254.4123 249.2847 246.4398 244.2788 241.6067 237.5846 236.4329 236.4171 235.2991 234.8203 233.2144 233.5591 236.056 236.238 235.632 235.8065 235.9118 235.423 236.09 235.878 235.6717 235.5799 235.7668 235.3105 235.2024 235.4163 235.7749 235.5014 235.1426 234.9229 235.3999 235.032 234.9371 234.5616 236.0785 237.1727 239.3029 241.5747 241.1243 240.4281 241.0333 240.6902 240.3055 240.6667 241.6357 241.6479 240.292 240.3687 239.4622 239.984 240.6229 242.551 245.5148 247.1049 249.6331 250.7013 252.2118 254.1952 257.4723 259.3458 261.093 263.0121 264.6594 266.4938 268.1677 269.4992 269.0641 268.566 269.2225 270.6851 271.734 272.7969 272.8768 273.2777 273.9524 272.972 270.3012 268.6066 268.1679 268.2729 268.489 269.5777 271.3262 272.6776 273.7126 275.7343 276.6459 277.5527 278.0924 278.8512 279.2943 280.0695 279.9421 279.6328 278.8285 279.1293 279.4255 279.1015 279.2637 278.0618 276.8751 276.7732 274.5571 272.8494 273.4513 274.1247 274.4367 273.8502 273.7792 273.0528 272.6591 272.8279 273.2874 273.4774 272.9754 272.6597 272.1552 271.9757 271.5481 270.0962 267.9737 264.5671 263.5227 265.4987 266.2092 265.8349 264.6819 262.6503 260.8024 259.3931 258.0496 254.9565 247.8873 237.8434 236.4848 236.3217 -9999 +-9999 319.2166 320.2284 321.3357 319.9897 316.3047 313.3416 311.4108 309.4912 308.2675 307.8416 306.1014 305.6419 307.0509 305.9203 304.6745 303.0516 300.988 299.761 298.7078 297.9609 296.4456 293.9487 296.1546 295.4807 294.3724 292.5488 291.8706 293.8335 295.322 294.9652 290.928 288.9622 287.716 285.0189 283.2752 281.8476 280.7124 279.9101 279.4327 278.9875 278.6134 278.1176 278.497 278.7389 278.5613 278.8648 279.0865 281.3916 284.0941 285.8523 287.2917 289.2685 290.7038 291.4622 293.0038 293.8703 293.9554 293.6518 292.4005 290.7547 288.2841 288.0298 288.451 288.7017 289.1112 287.9701 292.4949 297.6831 298.8558 299.4146 299.5944 299.6335 299.8347 299.9945 299.7556 300.0705 300.5303 299.9201 295.6738 294.9557 292.6261 292.8703 293.9228 293.5372 289.426 288.6148 289.02 292.2654 295.2667 297.1166 298.8294 300.4429 301.9753 301.6374 300.1231 301.0612 303.7531 305.9346 308.0743 309.7346 311.0502 312.1575 313.6762 315.3185 318.5283 320.6413 321.5881 321.1931 321.5266 322.6073 321.9875 321.446 319.8586 315.8003 313.8315 311.6328 310.2016 308.588 306.9719 304.7255 303.011 302.004 297.5292 296.1024 294.544 295.2946 296.5122 297.9129 297.7564 297.1901 298.185 298.7553 298.3524 297.4355 296.3246 295.9993 295.5366 294.7339 295.4277 296.9024 299.3825 300.1544 300.843 301.5464 302.0595 301.7272 300.1678 298.1978 297.1758 296.3764 297.3063 298.3243 299.2444 300.5229 301.8743 302.8969 303.1102 302.6987 301.1514 300.4412 299.6681 298.7397 297.3608 295.5836 294.2131 292.2296 290.2397 282.7653 278.9181 272.7243 270.9645 270.265 271.3722 275.0853 278.3317 281.0052 282.0789 279.9406 277.54 278.5245 282.5417 285.3598 287.707 288.8407 290.3149 291.3573 291.8039 291.3658 290.1776 288.9637 287.1277 285.8208 285.5643 286.0247 286.6254 287.0311 284.3811 280.9954 281.4915 281.1869 279.994 279.9805 278.5874 274.4345 264.6988 257.8429 255.8407 259.2996 261.4587 263.7695 266.1347 267.7137 268.99 271.4087 273.0744 273.3788 272.75 271.6713 271.8804 271.4691 272.4275 278.1535 284.3883 285.8131 286.2048 284.9177 283.7491 282.5136 281.876 281.4699 280.968 280.0535 279.615 279.4944 279.4123 278.8105 278.2587 277.5616 277.2104 277.1367 276.047 275.0487 274.3962 274.1313 273.5339 273.0617 271.8712 272.3411 273.1855 274.2977 275.6829 275.3421 274.6649 273.3731 271.9834 270.143 267.8163 265.7759 264.6537 257.8141 255.9574 256.7197 259.9426 262.6563 265.212 267.1234 268.0731 269.0882 269.6008 267.463 264.943 262.5752 258.0089 252.9498 248.263 247.4774 250.0784 250.0474 251.21 253.7959 255.7878 257.1541 258.0475 258.73 259.0613 258.7693 256.306 255.3051 255.0134 256.3797 258.3271 260.3332 261.5082 261.7097 260.584 256.7886 254.241 251.7435 248.9072 246.0003 241.4613 237.1075 236.8852 236.9763 237.0431 237.1444 237.3074 237.1282 237.0065 237.7843 236.8057 237.1806 237.2437 238.7179 241.7487 242.9957 243.6615 244.4623 245.7814 246.8521 247.6847 248.8383 249.9947 251.0317 251.3495 251.7588 252.6088 253.4335 254.5091 255.4286 256.6504 257.5367 260.3294 261.3307 262.3036 262.5875 262.8782 263.2117 263.7429 264.603 265.3527 264.3499 263.3284 262.7067 263.2952 264.3412 265.0747 265.4934 265.2886 265.8994 267.3517 267.8932 268.4527 268.537 268.3575 267.5407 266.5745 265.8925 264.4674 263.2519 262.2632 261.3083 259.0902 257.8338 256.1927 254.5313 250.1944 246.6395 249.7761 247.247 247.5839 246.5683 245.0542 241.966 234.5117 233.2483 236.6138 235.9711 236.1859 235.6068 235.888 235.6557 235.3547 235.7305 235.8404 235.7318 235.5582 235.2863 235.3044 235.0614 235.2069 235.8398 235.3247 235.3006 235.5829 235.4862 235.1499 234.9342 234.5041 235.1886 236.6 239.4758 241.4064 239.9093 238.4881 238.0347 237.7238 238.1164 238.9998 240.6111 240.8332 239.4965 238.7107 238.822 239.8004 240.1841 241.7639 243.874 246.2343 247.8875 249.9865 253.012 255.9157 261.1865 262.9047 265.1442 266.861 267.7858 268.5631 268.6413 268.0358 266.3354 267.271 269.3531 271.3978 273.6403 275.4448 277.4983 278.6293 278.4487 277.8875 274.9378 273.0913 272.392 271.2538 270.3814 271.2693 271.6596 271.1162 271.6181 273.4856 274.4518 275.2021 276.0846 276.3377 276.5806 277.0104 277.2902 277.3479 277.1852 277.395 276.8917 276.827 276.8589 276.4961 275.8811 275.9383 276.8456 274.638 275.6612 276.098 276.384 276.4658 276.2177 275.7509 275.483 275.9293 276.2259 276.0997 275.8886 275.25 274.5855 273.9525 272.9335 270.9185 268.6537 265.3824 263.9661 264.2242 263.7189 263.1046 262.312 261.0895 259.4754 258.2165 257.29 253.1959 247.3533 236.4725 236.4928 236.3651 -9999 +-9999 319.8464 320.8676 321.1745 320.5916 316.377 314.6665 312.5493 310.9489 309.9021 309.0131 307.9522 308.1921 308.3778 307.6266 306.4026 304.6128 302.8204 301.471 300.4348 299.6215 298.587 294.7294 296.234 296.1605 294.7022 293.7801 293.7424 295.538 296.5105 296.3228 292.8745 290.9459 288.4858 286.6009 285.2339 284.2842 282.5461 281.9044 280.9491 280.5673 280.1034 279.275 279.0247 276.7657 278.6291 278.5712 278.5256 279.5727 281.0477 285.0792 286.9887 288.6616 289.7784 289.8474 292.4247 292.888 292.7415 291.7934 290.1925 288.3812 286.7357 285.3935 286.5794 287.4935 288.1391 289.7466 293.1018 297.2952 297.7539 297.9852 298.2234 298.3105 298.5439 298.5272 298.293 298.5338 298.6435 294.9946 294.6508 294.3343 293.2368 289.9009 291.542 290.067 288.2517 288.6743 289.6713 291.2981 293.7408 295.4593 296.5616 298.1022 298.9478 298.5085 301.2205 303.7897 305.3641 306.7652 308.251 310.0576 311.7297 312.6516 313.5957 315.9081 317.7353 318.9202 318.916 319.5742 321.507 322.5482 321.8194 320.9647 320.1341 315.9049 313.9688 312.7427 311.6256 309.9525 308.4753 307.1378 305.9589 304.7031 301.006 298.9744 296.0757 294.4329 292.7758 294.8289 295.8225 296.1949 296.5757 297.4744 297.2682 296.8269 295.7042 294.859 295.3501 294.4916 294.5645 296.0145 298.9161 299.8074 300.5427 301.0288 301.3987 301.2431 300.1295 298.0659 296.1076 295.762 296.9912 297.6252 298.9341 300.824 302.2681 303.2956 303.6194 303.0953 301.7918 301.1307 299.9549 298.5596 297.1133 295.3948 293.8604 291.5941 289.3152 282.9129 278.9596 275.8024 272.2366 270.6626 270.5678 271.7622 274.7481 276.9577 277.4582 274.4739 278.3716 280.8686 282.7946 284.1617 286.5405 288.8748 290.4887 291.8134 292.0066 290.6926 289.9604 288.5471 286.5454 284.2334 283.1497 284.3297 286.2557 287.3767 285.6495 284.8899 284.3373 282.9499 282.0602 281.0488 278.9662 275.0013 265.448 256.6986 256.3225 258.5353 259.4042 260.0649 260.4093 261.2422 262.2689 264.1006 273.0744 273.3788 272.75 271.6713 271.8804 271.4691 272.4275 278.1535 284.3883 285.8131 286.2048 284.9177 283.7491 282.5136 281.876 281.4699 280.968 280.0535 279.615 279.4944 279.4123 278.8105 278.2587 277.5616 277.2104 277.1367 276.047 275.0487 274.3962 274.1313 273.5339 273.0617 272.9637 273.2508 273.9615 275.2415 274.9878 274.1576 273.0657 271.9217 270.5151 268.6127 265.9268 263.3 261.9034 256.0237 257.4479 260.3122 263.2635 264.9543 266.9911 267.5491 269.3537 270.7364 271.9077 270.8103 268.4638 265.0788 261.0556 257.4579 254.0909 248.8971 246.8757 249.851 249.353 251.2766 254.2638 255.577 256.6514 257.2673 258.217 257.5266 255.4982 254.8585 254.8944 256.3107 257.8355 259.6593 260.7291 260.9068 259.9938 256.5573 254.7275 253.0575 250.4466 246.3751 241.4091 236.9663 236.9569 237.0671 236.7706 236.96 237.1635 236.969 236.9676 236.9717 236.6724 237.3036 237.5538 241.9168 242.6718 243.1349 243.9895 244.6297 246.0061 247.2143 248.011 248.9367 249.6665 250.0321 250.6995 251.2794 251.6942 253.099 253.4895 254.8422 256.0422 257.6039 259.3321 260.1107 261.1729 261.9989 262.958 263.7583 264.5931 265.238 265.4836 264.0211 263.1534 262.3023 262.2655 263.5573 263.6618 264.536 264.7995 265.2362 266.8106 267.7492 268.5152 268.7406 268.7214 267.6676 266.646 266.086 265.3169 264.429 263.6769 262.2335 260.9525 258.5742 257.4618 256.5463 256.0044 255.1213 253.6097 252.5399 252.4038 251.3235 250.7615 247.3563 237.3228 233.2401 236.0278 235.9029 236.0951 235.5186 235.6099 235.8828 235.7137 235.2258 235.7988 235.6801 235.3997 234.8703 234.9959 235.1425 234.7571 234.9605 235.1418 234.9963 234.9675 235.1792 235.1278 234.8438 234.5946 234.9319 235.5778 236.4712 237.0383 236.6324 236.5485 236.3986 236.4418 237.0067 237.7417 238.6439 238.8869 238.6297 238.3321 238.667 240.2065 240.8886 241.35 242.8806 245.6509 249.1131 252.8547 256.4955 260.0218 264.0538 265.4427 266.309 266.2911 266.0248 265.4112 264.3319 263.1002 261.4789 265.2478 269.0369 271.4832 273.114 274.8979 276.8142 278.9865 280.3116 280.19 277.6906 275.8499 274.381 273.2066 271.8048 270.5692 269.5073 269.9045 270.5068 271.5589 272.3115 273.0989 273.6417 273.8505 273.978 274.1332 274.0441 273.8253 274.0406 274.0873 274.2254 274.2743 274.3372 275.1615 275.9872 276.9028 276.8539 276.9529 277.8105 278.4016 278.6779 278.9843 278.8145 278.1353 277.9591 278.6198 279.1922 278.2466 278.1226 277.3009 276.3979 274.9605 273.0033 270.8691 268.3407 264.7828 263.72 262.6232 261.1973 259.463 258.4153 257.3995 256.6843 255.7205 253.9636 252.0293 248.2108 240.0052 236.5428 236.4338 -9999 +-9999 319.4675 320.5279 321.0134 321.2007 318.2549 315.9361 314.0751 312.1118 311.224 310.5197 309.2953 309.9888 309.8486 308.8247 307.0207 305.4918 304.1064 302.46 301.1749 300.0322 298.5526 295.4615 295.6057 295.9806 295.7398 295.0848 294.9077 296.455 297.6109 297.5283 293.864 292.3253 290.7687 289.0426 287.8778 286.9482 285.3721 285.0454 284.1245 283.2166 283.5536 283.713 283.5363 279.5385 278.1579 278.5092 278.3463 279.0261 279.9607 283.4709 285.8212 287.4967 288.8064 289.3328 288.9839 289.4303 291.524 290.3818 288.1778 286.0167 285.3234 285.0248 285.8718 287.1191 287.8963 290.4887 293.3629 296.0744 296.3969 296.6613 297.0593 297.5131 297.7833 297.1889 296.6092 296.8339 294.5916 294.5765 294.4277 294.2381 293.5647 290.9656 289.9052 289.7939 287.7374 288.8904 288.9339 289.4702 292.0157 292.8638 293.3236 294.1847 295.8985 297.5439 302.5958 304.2936 305.5175 306.7278 308.0881 309.2815 310.6837 311.6165 312.9492 314.9705 315.5717 315.8901 317.4987 319.5405 321.2215 321.8238 321.1751 320.1268 318.8902 316.0434 315.0656 313.8404 312.263 310.8703 309.6284 308.3527 306.9479 305.5287 303.1983 301.5246 300.119 297.6017 294.0334 292.0945 292.9595 293.8354 294.8589 295.648 295.6538 295.5519 294.6931 293.7114 294.7194 294.4311 293.0185 294.0779 297.498 298.5088 299.2734 299.9286 300.488 300.2841 299.1508 297.2913 294.8633 295.011 296.6103 297.7557 299.543 301.467 303.28 304.074 303.8566 302.9074 301.5368 301.0349 300.1016 298.5294 296.8086 295.4307 293.0051 290.2626 287.2194 281.8983 279.7635 277.4847 273.3783 270.7146 269.6181 271.2655 272.8443 273.2003 273.0767 277.7962 280.8282 283.2364 284.9346 286.3137 287.6748 289.1419 290.4887 291.8134 292.0066 290.6926 289.9604 288.5471 286.5454 284.2334 283.1497 284.3297 286.2557 287.3767 285.6495 284.8899 284.3373 282.9499 282.0602 281.0488 278.9662 275.0013 265.448 256.6986 256.3225 258.5353 259.4042 260.0649 260.4093 261.2422 262.2689 264.1006 264.5617 265.2717 267.8738 270.7461 272.619 276.9373 280.3341 281.814 284.2857 285.6624 285.5112 284.477 282.9818 281.4604 280.3171 279.702 279.258 278.6976 278.3666 278.3564 278.4861 278.3454 277.7947 277.3199 276.8214 276.797 276.2263 275.2057 274.4012 273.7194 273.0163 272.4862 272.8174 273.2491 273.9638 273.9347 273.9029 273.7778 272.3604 270.7012 268.9031 266.7843 264.3289 260.8911 258.8574 256.7509 258.3847 262.6621 264.3993 266.4292 268.0636 269.1144 270.4272 271.9368 274.0173 273.2898 270.7716 266.827 262.812 259.9883 256.9768 253.9867 248.9019 247.3639 248.2144 249.3721 251.5542 253.0047 255.4467 256.6761 257.3608 256.649 255.1182 254.6287 254.4711 255.7316 257.5592 258.7646 259.7389 260.148 259.581 255.3723 253.2135 253.0218 250.8458 247.2301 242.8613 239.2354 237.1674 236.9755 236.9475 236.9207 236.9904 236.9212 236.9332 237.0044 238.1223 237.3095 238.2593 241.5666 242.7385 243.4027 244.0382 244.9565 245.8819 247.1477 247.891 248.1161 248.2777 248.5387 249.379 250.1985 251.3876 252.9172 253.4789 254.6663 255.2592 256.6637 258.3524 259.259 259.8854 261.2554 262.8451 263.9437 264.8878 265.2675 265.1859 263.5674 262.4742 261.981 261.7233 262.4051 263.1899 264.1794 264.5976 265.0939 267.0235 267.9799 268.6828 268.8707 268.4236 267.4323 266.6997 266.4332 266.2848 266.0423 265.0938 263.7662 262.0158 260.9604 259.7447 259.1002 258.5203 258.2809 256.7242 255.9356 255.5135 254.5502 253.612 251.2595 245.6865 233.2248 234.2892 235.6986 235.7672 235.6109 235.6646 235.6141 235.8777 235.584 235.4543 235.963 235.5061 235.3 234.9902 234.8137 234.8203 235.3011 234.985 234.6045 234.7536 234.6411 234.4658 234.384 234.0015 234.4048 234.6242 234.8018 235.0168 235.1807 235.3306 235.3179 235.8036 236.3791 236.8843 237.2747 237.6953 238.0233 238.4488 238.9661 240.6738 241.7605 241.7451 242.9843 244.5827 249.2486 253.2731 256.9066 259.5802 262.3055 263.7382 263.8735 262.6245 261.1388 260.1632 259.2024 258.1889 258.3203 263.5536 267.0341 269.504 271.7771 274.2205 276.1957 278.6797 279.4578 280.6135 279.2573 277.2894 275.5044 273.1335 270.1377 268.9987 268.2276 268.7596 270.1599 272.4001 273.7071 274.2175 273.0956 272.506 272.6012 272.6818 272.2239 271.6281 271.5966 271.702 272.2652 273.4247 274.6148 276.2834 277.7512 278.6525 279.0044 277.2976 278.5112 279.8088 280.5976 280.6691 280.7391 280.2917 280.0862 280.8926 281.7594 280.6341 279.9462 278.8449 277.476 275.6915 273.137 269.8538 266.8104 264.5398 262.7949 260.5106 258.692 256.3866 256.2016 253.7738 253.3938 252.3397 251.1778 246.5708 245.0988 241.9639 237.084 236.5336 -9999 +-9999 318.7364 320.4153 320.8266 320.4232 318.3174 317.0461 315.5641 314.153 312.3889 311.0709 310.7564 311.0574 310.541 309.4332 307.9656 306.2963 304.4606 303.1591 301.3201 299.4348 297.9181 297.0075 297.6613 297.8643 297.4405 296.594 296.1483 297.318 298.6862 298.2064 295.2841 294.6538 293.2847 291.2884 290.6538 289.9421 289.1859 288.0561 287.2784 285.8343 286.4251 287.4249 286.926 282.3836 278.7682 278.0358 278.4561 278.1841 278.7928 281.2302 284.4461 286.2639 287.9124 288.522 289.1711 288.7632 287.3872 288.4643 285.537 284.6436 283.4269 284.9883 286.8973 288.0269 289.9742 291.3156 292.587 294.7953 294.8419 295.1354 295.8602 296.7916 296.802 295.2078 294.9818 295.7474 294.462 294.5481 294.3735 293.8641 292.6442 290.7474 288.9447 287.9304 287.0417 288.536 290.142 293.378 294.6526 293.4358 293.8539 294.5743 295.9796 298.6531 302.0166 303.314 305.2076 306.457 307.9198 309.1768 310.6947 311.5713 311.7484 312.5727 313.3149 314.9005 317.1154 318.6489 319.9179 320.5616 320.3229 319.6299 318.5225 316.4442 315.8423 314.3545 312.9245 311.4329 310.0104 308.7527 307.6919 305.9697 304.699 303.1938 302.0755 300.6781 298.0184 294.268 290.8943 291.5263 291.665 293.434 293.6029 293.8466 293.1367 293.1487 294.631 294.4669 292.1156 291.9717 295.7999 297.2569 298.2021 298.8348 299.2765 299.1145 298.0149 296.1285 292.3935 293.7968 296.2561 297.8337 299.7487 301.6906 303.28 304.074 303.8566 302.9074 301.5368 301.0349 300.1016 298.5294 296.8086 295.4307 293.0051 290.2626 287.2194 281.8983 279.7635 277.4847 273.3783 270.7146 269.6181 271.2655 272.8443 273.2003 273.0767 277.7962 280.8282 283.2364 284.9346 286.3137 287.6748 289.1419 290.83 291.8825 291.9879 290.2953 289.2859 287.0744 285.0857 283.0468 281.045 282.3687 284.7557 285.8065 285.2369 285.4761 285.3338 284.4051 283.0582 280.5815 277.4518 273.5175 265.8525 259.1677 254.1946 257.946 256.0797 258.7906 260.5955 262.8037 264.0786 266.9888 269.4161 271.6369 273.3951 274.4536 276.5417 279.8957 282.7825 284.1599 285.1129 285.4858 285.4612 284.0771 282.0714 279.4456 278.2672 277.3278 276.5765 276.7409 276.313 276.9071 277.7236 277.4517 276.9413 276.4864 276.0608 275.684 275.7661 274.94 273.8157 272.4313 271.2141 270.9017 271.5892 272.6156 273.2345 272.5959 272.3711 272.127 271.2065 269.3455 267.3544 265.1013 262.7551 259.4616 257.9205 259.0718 261.6703 264.0631 265.7387 267.4528 268.8791 270.862 272.0288 273.7621 274.8518 273.1858 270.2615 266.6669 263.521 260.8834 259.1244 257.0757 252.9389 247.0935 246.2647 247.5958 248.6328 251.0281 252.2843 255.6658 256.7155 256.2036 254.9513 253.4754 253.6185 255.2183 256.8084 257.9187 258.9801 259.3652 258.8372 255.4981 252.0621 250.4385 250.3546 248.0759 244.3228 241.9413 239.8466 237.5234 236.9645 236.9026 236.7061 236.83 237.0197 237.3141 237.5235 236.95 237.8355 241.8713 242.6431 243.2257 243.8104 244.0209 244.579 246.0626 246.8948 247.3643 248.5598 249.7939 250.5928 251.7178 252.6681 253.5595 254.5965 255.3137 256.2846 256.5285 258.0648 259.5125 260.6765 262.0159 262.9827 263.9683 264.608 264.5794 264.122 262.3685 261.6921 260.9209 260.6603 261.3649 262.0312 262.9527 264.5354 265.0982 267.174 268.1966 268.8663 268.7467 267.9944 266.6118 266.2707 266.7745 267.2005 266.96 266.27 265.3185 263.5766 262.1162 261.7225 261.3288 261.1852 260.8674 259.3355 258.8828 257.9566 257.2649 256.6858 254.9053 250.9575 241.0319 233.1798 235.7063 235.3406 235.6208 235.6471 235.3724 235.7271 235.3971 235.0215 235.0824 235.4883 235.3261 234.9929 234.807 234.8662 234.577 234.3456 234.2592 234.1437 234.1853 233.9796 233.912 234.1481 234.2794 234.5999 234.81 234.9263 235.6278 235.5784 235.3095 235.5341 235.7952 236.0686 236.4309 236.9261 237.9992 239.6886 242.734 249.2639 249.6204 247.7034 243.8183 243.4039 244.7124 248.6114 252.6718 255.5616 259.7393 260.9969 259.3594 257.3 256.5018 255.5885 255.7437 256.6055 258.2483 263.8822 266.5434 269.1553 271.6773 274.0492 275.929 277.8503 278.307 278.9131 278.101 276.1419 273.892 270.9344 267.6014 265.8697 266.3959 267.3837 268.7865 273.095 274.8228 273.4442 271.2524 269.8967 270.5113 270.9522 270.3749 269.8142 269.8579 271.2553 272.6329 273.9118 274.9046 276.9714 279.071 280.309 280.95 279.459 277.7973 280.1096 281.6715 282.0978 282.3433 282.1393 282.1859 282.612 283.329 282.1611 281.1437 279.0697 278.5247 276.2251 273.394 269.9472 267.6913 265.9977 259.2922 255.3283 250.894 249.0425 250.7332 249.8289 248.1651 247.7125 248.6175 240.0413 239.6053 239.0372 238.0127 236.84 -9999 +-9999 318.4364 320.0712 320.6565 320.3069 318.8678 317.4351 316.0947 314.9987 314.0473 312.6793 311.8528 310.9974 309.1434 308.5565 307.2931 306.3487 305.2481 304.0648 302.6345 300.7036 298.81 299.0063 299.6924 299.8286 298.9243 297.8706 297.2684 298.8355 299.3479 299.3383 297.4522 296.3502 295.3053 293.4373 292.8793 292.6603 292.2541 291.0342 289.4238 289.0482 289.0446 289.8444 289.3001 284.864 278.6136 276.7827 278.4628 278.532 278.275 281.4196 284.0415 286.0372 287.3674 287.9417 288.66 288.3923 287.4527 286.3201 283.9653 282.7259 283.8708 286.1236 287.9051 289.6229 290.6025 291.5281 291.9713 292.9225 293.422 294.7177 295.0612 296.2978 295.7559 294.1438 292.9833 293.9541 294.4009 293.8193 292.2548 291.6501 291.6862 290.646 289.5021 288.2902 287.1151 287.7184 291.309 293.4846 295.6295 297.0574 296.3354 295.5605 297.8431 299.3167 302.3495 304.0462 304.9334 305.8276 307.1155 308.4908 310.2571 310.4271 309.4124 310.8819 312.6455 314.4099 315.6802 317.2206 318.7018 319.7191 319.6667 319.0936 317.048 316.3656 315.7701 314.502 313.5575 312.3505 311.014 309.8162 308.8255 307.3352 305.8481 304.6096 303.4618 300.6781 298.0184 294.268 290.8943 291.5263 291.665 293.434 293.6029 293.8466 293.1367 293.1487 294.631 294.4669 292.1156 291.9717 295.7999 297.2569 298.2021 298.8348 299.2765 299.1145 298.0149 296.1285 292.3935 293.7968 296.2561 297.8337 299.7487 301.6906 303.4355 303.547 303.6407 302.9959 300.8105 300.4284 299.7688 298.6256 296.9839 295.709 293.7495 291.2513 288.3395 283.2725 281.4536 279.4488 276.5786 271.5599 269.9833 269.8997 271.3239 272.5825 277.4419 280.3235 282.3915 284.5335 286.6577 287.8571 288.7837 289.7272 290.7811 291.3659 291.081 290.1225 289.2046 285.6907 282.791 281.0377 279.2477 279.9817 282.6563 283.5939 283.2102 284.1378 284.9745 284.9251 283.5495 280.9555 277.4253 274.1647 265.1001 259.4562 255.3103 255.2868 258.5762 261.6415 263.9333 266.1181 268.3268 272.087 273.6095 275.4247 277.4455 277.481 278.704 280.9906 283.8235 285.408 286.1001 285.7755 285.9028 283.9909 280.4677 278.243 277.1162 275.9029 274.8339 274.5985 274.3566 274.9151 275.1921 275.9211 275.892 275.506 275.3045 274.7853 274.2759 273.6273 272.5792 270.5602 268.8708 268.7131 269.8129 271.1092 271.9474 271.0838 270.6568 270.2218 269.4873 268.3949 266.7001 263.1132 259.9422 258.3794 257.6835 263.441 264.8354 265.9731 267.6974 268.7533 270.7469 272.2455 273.6725 274.7798 275.5943 272.95 269.5945 266.5761 264.1718 262.7968 260.5966 258.4409 256.0038 250.7998 248.84 245.8474 247.0183 248.2671 250.6703 253.7186 255.6723 255.9367 253.9413 253.2387 252.9872 254.627 255.7047 256.8258 257.6145 258.1924 258.162 256.017 254.0206 251.4781 249.26 247.1268 246.3079 244.4385 241.7516 239.1658 236.8465 236.9202 236.7467 236.7723 237.0134 237.2214 237.3198 236.1454 237.664 241.8185 241.9655 243.0053 243.5834 243.026 244.1547 245.1821 246.473 247.2508 249.8401 251.2574 252.2509 252.6943 253.3315 253.9546 254.8878 256.3946 257.4232 257.4427 258.755 260.0527 261.31 262.5551 263.283 263.8164 264.1436 263.7794 263.0312 261.5746 260.972 260.5666 260.0216 260.6874 261.7369 262.9467 264.4576 265.4433 267.9164 268.6139 269.014 268.4697 266.9612 266.01 266.2229 267.14 268.0167 268.2645 267.5703 266.3286 265.6014 264.518 264.2193 263.937 263.6984 263.2299 261.4931 260.9722 259.8385 259.3678 258.2901 256.0699 249.7071 238.7001 236.5753 233.9743 235.8662 235.5757 235.2215 235.1182 234.7343 234.4871 234.805 234.8873 234.6591 234.7052 234.6301 234.5055 234.3835 234.3246 234.1671 233.9358 233.8411 233.8073 233.8288 233.5769 234.0962 234.0391 234.4716 234.6938 234.6504 234.7124 235.2348 234.9819 235.1879 235.5167 235.8607 235.9984 236.5753 238.6721 243.6169 247.9357 255.3349 257.3371 257.7343 255.0103 249.8689 245.2109 244.8729 247.8661 251.1918 257.9442 256.9054 254.3883 253.6268 254.6061 255.6284 257.7814 260.16 262.7599 267.7567 269.9803 271.69 273.5468 275.174 276.7036 277.4025 277.6618 277.6845 276.0444 274.2527 271.4254 267.7638 263.2089 262.5948 263.7733 264.5957 267.0326 271.9583 273.2439 270.7191 267.3328 266.4357 268.2389 269.2458 268.5211 268.0258 270.4562 272.1614 273.612 274.5557 275.7241 277.283 278.8363 279.9683 281.2451 280.8946 278.6739 278.291 280.7547 282.2843 283.4109 283.6692 283.8647 284.3156 284.1324 282.1637 280.2593 279.2278 277.7357 274.6306 272.3762 269.3229 267.2925 265.9217 259.2922 255.3283 250.894 249.0425 250.7332 249.8289 248.1651 247.7125 248.6175 240.0413 239.6053 239.0372 238.0127 236.84 -9999 +-9999 317.4326 319.0461 320.1561 320.3834 319.1297 318.0773 316.7998 315.5792 314.5323 314.1779 314.1697 313.7102 311.5881 309.8888 308.3466 306.1584 305.2766 304.3798 302.9104 300.9302 299.953 300.7326 301.1407 301.1672 300.3559 299.4975 298.9133 299.4672 300.1567 300.1451 298.6681 298.2422 297.5313 296.2753 295.69 295.2254 294.4384 293.2308 291.1422 291.1626 291.3177 291.0169 289.3893 285.8264 280.9579 278.5011 278.3957 277.963 277.8209 280.6619 283.0598 284.6654 286.2993 287.261 287.0876 287.204 286.369 284.7556 284.068 284.0181 286.6627 287.8043 288.3909 289.4143 290.5528 290.8261 291.0723 292.089 293.0129 294.1928 295.6269 295.4253 294.6105 292.8783 293.0449 294.3326 293.6286 292.0983 291.0455 290.2442 290.2827 289.4701 288.1011 287.4405 287.1451 287.2982 291.0894 293.675 294.9515 295.8161 296.4503 297.4113 298.6248 299.843 302.5026 303.6735 304.4822 305.8276 307.1155 308.4908 310.2571 310.4271 309.4124 310.8819 312.6455 314.4099 315.6802 317.2206 318.7018 319.7191 319.6667 319.0936 317.048 316.3656 315.7701 314.502 313.5575 312.3505 311.014 309.8162 308.8255 307.3352 305.8481 304.6096 303.4618 301.6438 300.5609 297.7445 294.8934 292.896 290.0205 290.0298 290.575 291.5359 291.2895 293.3827 294.4509 294.3799 292.2534 291.2051 294.4828 296.2085 296.9879 297.648 298.0947 297.9839 297.1045 293.3879 290.8968 293.7454 295.8196 297.7845 299.0915 300.4354 301.9124 303.2717 303.6652 302.7672 300.3682 299.4763 299.1272 298.2335 297.201 296.0355 295.0618 293.5536 291.1479 284.8092 281.7435 279.6033 278.2695 273.8504 270.009 268.4586 269.8595 271.548 278.407 281.2307 284.0728 286.2603 287.7083 288.6068 288.995 289.4406 289.3724 289.4754 289.8629 290.1043 290.2385 284.5224 279.4134 278.731 277.5523 278.4195 280.1905 280.5484 280.6175 282.5995 283.9296 283.3824 281.742 279.6751 276.4902 273.4495 265.3595 258.7851 254.2445 254.7093 260.8376 263.3203 265.6566 268.0149 270.6747 275.8641 277.482 279.4303 280.1691 280.3627 280.8683 282.5346 284.1235 285.8939 287.4913 286.9283 286.6464 285.0059 282.3348 278.9415 277.1303 275.939 274.5503 272.3951 272.1438 272.1247 272.8663 273.4774 273.5697 274.1235 274.1115 273.8559 272.9186 272.5068 271.6423 269.4925 267.8754 267.3866 267.9972 269.3349 270.1343 269.6632 269.3216 268.4291 267.7925 266.3313 263.6335 260.4125 258.8803 258.4182 262.6014 265.2924 266.6003 268.1417 269.6573 270.7833 272.2872 273.2193 274.5783 276.405 277.0322 274.9168 270.8226 267.5425 266.091 264.3528 262.2278 260.1041 258.3317 254.5127 251.7763 248.2213 245.0656 246.3513 248.3796 251.4147 253.8123 254.569 253.385 252.7803 252.1267 253.4433 254.376 255.328 256.4709 256.6786 256.8956 256.0951 255.0574 253.8946 251.9485 250.8128 249.9041 246.3168 243.2567 241.6768 237.5279 236.9252 236.9498 240.4751 237.5355 237.0243 237.5626 236.2102 238.2995 239.4232 240.0812 241.0555 241.9005 243.1644 244.6921 246.3481 247.3549 248.3768 251.1476 252.4365 253.069 254.2949 254.672 255.2191 255.1311 255.5653 256.3748 257.1778 259.0687 260.2552 261.3961 262.4812 263.0991 263.6054 263.6135 262.7686 261.962 260.8583 260.2864 259.8336 259.4491 260.2414 261.4017 262.8752 264.2574 265.902 268.183 268.7633 268.8643 268.1101 266.6697 265.6769 266.3209 267.746 268.7546 269.4205 268.6811 267.9866 267.3117 266.3418 266.1075 265.8773 265.8138 265.1897 263.2344 262.478 261.7083 260.7203 259.0062 256.997 248.3217 236.7498 236.2588 233.1994 234.1181 235.7713 235.0626 235.4093 235.6537 235.4666 235.0308 234.5477 235.2103 235.0463 234.9221 234.7703 234.5889 234.4663 234.3346 234.2484 234.1349 234.0451 234.138 233.58 234.2055 234.3177 234.7074 234.7298 234.5249 234.417 234.4346 234.6358 234.7981 235.1409 235.3616 235.7162 236.394 239.1124 245.1576 250.2386 257.4953 260.38 262.7431 262.9556 259.2449 255.2518 251.1587 248.5364 251.3674 255.5059 252.5057 252.4413 253.2637 256.0059 258.562 261.0557 263.2424 265.7774 269.7644 272.4138 273.9284 275.2498 276.1684 276.6126 276.9048 276.7917 276.5399 274.3963 272.8103 269.5086 264.0823 260.5561 260.0628 263.7733 264.5957 267.0326 271.9583 273.2439 270.7191 267.3328 266.4357 268.2389 269.2458 268.5211 268.0258 270.4562 272.1614 273.612 274.5557 275.7241 277.283 278.8363 279.9683 281.2451 280.8946 278.6739 278.291 280.7547 282.2843 283.4109 283.6692 283.8647 284.3156 284.1324 282.1637 280.2593 279.2278 277.7357 274.6306 272.3762 269.3229 267.2925 265.9217 261.9569 260.5526 257.6305 254.0707 250.2134 248.1693 247.5093 247.3001 246.8956 245.2203 244.9908 244.0073 241.6362 237.4948 -9999 +-9999 316.4675 318.2828 319.6378 319.6967 319.0388 318.3761 317.4014 316.1317 315.1988 314.72 314.7891 314.1965 312.2168 310.6429 309.0997 307.4776 305.4691 304.0654 303.0402 302.1745 301.4693 301.6764 301.8747 301.5704 300.7782 299.8714 299.9129 300.2749 300.6929 300.4957 299.845 299.6888 299.0157 298.2796 297.4051 296.8002 296.1458 294.2858 293.2054 292.644 292.2388 290.3437 287.7898 284.8482 280.6952 278.29 277.8608 277.9803 277.8443 279.8784 280.8521 282.8635 284.5613 285.7051 286.0674 285.164 283.4211 282.3236 282.2477 285.9784 286.4589 287.1813 288.1674 287.8118 289.4823 289.9281 290.496 292.2712 293.3193 294.1928 295.6269 295.4253 294.6105 292.8783 293.0449 294.3326 293.6286 292.0983 291.0455 290.2442 290.2827 289.4701 288.1011 287.4405 287.1451 287.2982 291.0894 293.675 294.9515 295.8161 296.4503 297.4113 298.6248 299.843 302.5026 303.6735 304.4822 304.961 305.7121 306.9063 308.0232 307.5784 307.2758 310.2728 312.0296 313.6247 315.5256 316.588 317.3076 317.8071 317.6837 318.5879 316.3425 315.5919 314.9315 313.9456 313.3017 311.6481 310.2615 309.5874 309.168 308.5781 306.7153 305.2514 303.5705 302.1807 300.9981 299.6766 297.9153 296.3644 294.9557 290.4178 288.2517 289.1402 290.6236 292.138 293.1508 293.0914 291.8674 290.0887 293.2849 295.1326 296.0196 296.6682 296.7065 296.4893 295.2739 293.1163 290.0162 293.6958 295.8642 297.6075 299.1315 300.7007 302.407 303.6333 303.895 302.6475 300.1926 298.9158 297.8676 297.366 295.8896 295.755 295.4468 293.5941 291.0675 286.1296 283.8283 282.1133 280.0645 277.039 270.2052 269.7966 269.7493 271.4842 278.5269 281.0032 283.5541 285.7603 287.2509 287.7369 287.7336 287.643 287.4654 287.6843 288.3508 289.9485 289.9042 283.8369 276.2086 276.6563 276.2745 275.9039 277.5576 277.7522 278.9949 281.0291 282.1505 281.7688 280.2654 277.5625 274.4437 272.1423 265.5433 256.4048 253.6617 255.0056 260.4162 264.3715 267.6497 270.3728 273.1463 278.9177 281.1039 283.1249 283.4077 283.2121 283.9507 285.714 286.765 287.4957 288.4863 288.1602 287.3843 286.134 285.4928 283.3954 280.6477 279.2121 275.976 272.3614 271.2365 270.3375 270.1554 270.4416 271.3074 272.1898 273.0252 273.2318 272.3966 271.5946 270.8388 269.5898 267.8444 267.3254 266.9595 267.0892 267.6858 268.4426 268.0089 267.2919 265.9902 263.9386 260.609 258.7558 259.4424 260.5948 264.2565 266.7009 268.4973 269.6003 270.697 272.3779 273.4667 275.1391 276.5152 277.2981 277.9608 275.7856 272.2892 269.8222 268.3738 266.3001 264.259 261.9315 259.4038 255.7771 253.9714 250.0954 246.1203 244.895 246.4097 249.1129 251.7137 253.2533 252.7109 252.2995 251.4791 252.0644 253.0916 253.9346 254.6271 255.1807 255.3533 255.6119 255.9368 255.6187 254.9718 253.7699 249.9764 246.8013 245.2082 242.6479 237.3922 236.6733 237.8633 238.0901 237.1728 236.884 237.4602 237.3781 237.0017 239.6702 241.7596 242.935 243.8494 244.912 246.6071 247.7927 248.5397 249.691 251.8324 252.9249 253.9965 254.9016 256.0356 256.7721 257.0138 257.1499 257.6767 258.4764 259.3044 260.4374 261.3941 262.4677 262.764 263.1195 262.9747 262.1599 261.4361 260.2881 259.7671 258.6489 258.2766 259.6749 260.9896 262.3298 263.8775 265.8024 267.5229 268.3089 268.3552 267.6336 266.3514 265.4798 266.3451 267.9693 269.1935 270.2997 269.9733 269.2382 268.6503 268.2139 267.9705 267.5438 267.2702 266.336 264.4089 263.6353 262.3899 261.1977 257.2873 250.0583 241.4289 235.4681 235.3472 235.444 233.1799 235.491 234.9986 235.135 235.6667 235.4362 235.2211 235.09 234.9155 234.9061 234.829 234.7782 234.7324 234.5862 234.4298 234.3172 234.171 234.0161 234.1365 233.5896 234.4154 234.7698 234.7788 234.5305 234.3942 234.2241 234.007 234.3083 234.2868 235.0224 235.444 235.7162 236.394 239.1124 245.1576 250.2386 257.4953 260.38 262.7431 262.9556 259.2449 255.2518 251.1587 248.5364 251.3674 255.5059 252.5057 252.4413 253.2637 256.0059 258.562 261.0557 263.2424 265.7774 269.7644 272.4138 273.9284 275.2498 276.1684 276.6126 276.9048 276.7917 276.5399 274.3963 272.8103 269.5086 264.0823 260.5561 260.0628 260.6677 261.8919 265.3669 270.496 270.9543 267.2827 262.9042 263.1245 265.529 266.7417 266.6625 268.0744 271.6068 273.1831 274.3796 275.3655 276.771 278.0887 279.1775 279.9911 280.5682 280.0433 279.1494 277.2903 279.4322 281.6471 283.1052 283.7055 283.7154 283.4613 282.8234 280.3783 279.1757 277.5304 275.7542 273.3632 271.2089 269.4218 269.8405 268.6525 265.5117 263.676 260.6041 257.495 254.2631 253.4977 251.03 248.6991 250.0736 249.2921 249.5183 247.9245 245.1619 241.1033 -9999 +-9999 316.3528 318.0988 319.9745 319.4355 318.5855 318.1354 317.3879 315.7884 314.6589 314.1184 313.9459 313.3594 311.6136 310.1741 308.5321 307.3513 305.5648 303.8111 302.7539 302.2948 302.3407 301.4619 301.1782 300.427 299.1569 299.5785 299.407 299.4257 299.5593 299.6999 300.062 300.2035 299.6957 298.8494 297.9532 297.1185 296.5222 295.3151 294.2817 293.3078 291.7571 289.022 287.7898 284.8482 280.6952 278.29 277.8608 277.9803 278.4041 279.8784 280.8521 282.8635 284.5613 285.7051 286.0674 285.164 283.4211 282.3236 282.2477 285.9784 286.4589 287.1813 288.1674 287.8118 289.4823 289.9281 290.496 292.2712 293.3193 295.0067 294.8365 294.3717 293.2701 292.6899 294.4692 294.4773 292.5234 290.4324 289.7838 288.7122 288.0836 287.7511 286.6271 286.199 285.6358 289.909 292.3562 293.9841 294.382 294.668 295.3875 295.5375 296.7721 299.1502 302.0935 303.1306 303.4588 303.4529 303.7244 303.9352 304.5384 304.3626 305.1541 308.377 310.0426 312.4981 314.2145 315.0574 315.7555 315.8895 316.4996 317.9293 316.0333 314.6391 313.905 312.4931 311.8961 311.2098 309.5609 308.5236 308.3023 308.1151 306.2368 305.0854 304.1549 303.2458 301.8711 300.5787 299.4482 298.2598 296.7393 293.2678 291.485 288.5693 288.3273 289.1406 290.2864 290.8961 290.7523 289.2217 292.1763 294.1179 295.1895 295.4431 295.2229 294.9764 294.0886 291.4766 289.1646 293.7818 295.7422 297.5356 299.1853 300.8323 302.0603 303.2402 302.9999 302.2927 300.4211 299.0465 297.9565 296.6255 295.2286 294.1433 294.2319 292.7488 290.4844 286.8605 285.2819 282.6616 279.8224 277.4039 272.2674 269.7831 268.1396 270.7134 277.8706 280.6993 282.9611 285.2083 286.018 285.4831 285.2409 284.4257 284.535 285.911 287.0757 288.3287 287.6194 285.4353 281.3463 275.3641 274.3312 273.65 274.6391 276.1262 278.2703 279.9919 280.7055 280.4068 278.464 275.9857 272.8062 269.7564 264.8416 259.8673 253.8977 252.93 255.5649 263.3265 267.7972 271.5177 274.3125 280.1796 283.4646 285.4499 286.1982 286.1972 287.006 288.0179 289.1094 289.6565 289.6557 289.3232 288.2328 287.5384 286.4397 284.8364 282.5384 281.2614 277.978 273.3675 272.2845 271.7779 270.7054 268.9494 268.6126 269.6082 270.4121 271.1584 271.6622 271.0878 270.1617 269.2859 268.3313 267.2018 266.2869 266.1271 265.7792 265.9036 266.2465 265.8691 264.4409 261.0303 259.8465 259.9357 260.3925 261.7464 266.1828 267.8317 270.002 271.6987 272.4292 273.4777 275.2805 276.3647 277.4539 278.2645 278.6273 276.3565 274.0902 271.8592 269.8513 268.0103 266.1166 263.835 261.1992 256.5764 254.3517 249.2423 248.2885 244.8741 244.7104 247.3491 249.459 251.3132 252.2882 251.678 251.0366 250.3418 251.2 252.1765 253.2428 253.7061 254.2542 255.1748 255.9862 256.2419 254.8952 251.5866 248.6032 246.304 242.7549 239.291 236.3201 236.1466 236.3034 236.0965 236.2816 236.692 236.8951 237.1611 235.9971 239.348 240.7596 243.073 244.6303 246.1115 247.6171 248.8845 250.0128 250.5602 252.2366 253.306 254.7384 255.8522 256.9915 257.8362 258.331 258.7711 259.282 259.8856 260.2562 260.7899 261.5902 262.4586 262.6017 263.0408 262.932 261.692 260.5936 259.1662 258.8752 257.7404 257.8688 259.213 260.6096 261.9891 263.5735 264.6151 266.5684 267.1871 267.3491 267.0884 265.771 264.9135 265.8504 267.2445 268.4054 269.7303 270.3543 270.1724 269.634 269.2278 268.9823 268.8 268.3793 267.0403 264.8091 263.6312 262.4591 260.6726 257.2873 250.0583 241.4289 235.4681 235.3472 235.444 233.1799 235.491 234.9986 235.135 235.6667 235.4362 235.2211 235.09 234.9155 234.9061 234.829 234.7782 234.7324 234.5862 234.4298 234.3172 234.171 234.0161 234.1365 233.5896 234.4154 234.7698 234.7788 234.5305 234.3942 234.2241 234.2312 234.3083 234.2868 235.0224 235.444 235.8764 236.6358 239.5579 245.2797 250.585 258.2396 260.537 262.2802 263.6703 263.3699 261.6266 259.7588 258.2102 256.1042 251.3383 251.1888 253.0817 255.1762 257.694 259.6808 261.8897 264.12 266.4427 270.3171 272.6423 274.1717 275.4053 276.1248 275.8386 275.8203 275.7 275.2184 273.1608 271.2641 267.9128 263.2586 259.5483 258.9416 259.2548 261.8593 265.3592 269.2174 268.4822 263.9759 261.2655 262.0573 263.0637 264.546 266.188 269.1085 273.2705 274.3688 275.2389 276.0639 276.9264 277.8913 278.6542 278.9798 278.8541 278.4845 278.8227 277.4538 277.3948 279.7563 281.3725 281.3089 281.1196 281.4587 280.3606 279.3015 277.8015 276.0309 273.8732 272.012 271.0414 271.8206 272.9153 271.8941 268.4298 267.8215 265.6017 264.0008 261.4789 259.2877 256.897 254.9927 253.2337 252.2206 253.0183 252.0193 248.0615 245.7906 -9999 +-9999 315.5934 317.2973 319.0851 319.5456 318.1042 317.7789 317.1818 315.5083 314.0917 313.4121 312.5439 312.129 309.9034 308.5771 307.6054 307.0987 305.5648 303.8111 302.7539 302.2948 302.3407 301.4619 301.1782 300.427 299.1569 299.5785 299.407 299.4257 299.5593 299.6999 300.062 300.2035 299.6957 298.8494 297.9532 297.1185 296.5222 295.3151 294.2817 293.3078 291.7571 289.022 286.8424 284.1432 279.9695 278.1004 277.2907 277.9459 277.8062 279.3073 279.8524 281.1071 282.4583 283.4459 283.0108 281.9548 281.3831 280.5946 282.3403 284.0969 286.7326 286.9812 287.2884 287.8945 288.8412 289.6915 290.8002 293.2261 294.3508 294.4359 293.9357 292.7931 291.6093 290.9403 293.7941 294.0401 291.3274 289.6445 288.3354 287.1811 286.5391 286.2635 285.3191 284.8243 285.6716 291.2147 292.2533 293.4583 293.7441 293.5399 293.5762 293.9712 294.946 296.9683 300.6071 301.1728 300.7909 300.3029 300.4575 300.7924 301.7774 303.0613 304.1454 307.5054 307.8316 310.4314 311.8442 312.6246 313.593 315.2403 316.9711 317.8012 315.8725 314.3385 312.9545 311.061 310.1342 310.551 309.2294 307.9233 307.2938 306.162 305.8277 305.351 304.6634 303.4282 302.4305 301.6189 300.7288 299.492 298.2519 295.1748 292.7247 288.0716 287.3152 286.4199 288.0424 288.7171 289.0829 288.4481 290.6615 292.6751 293.4888 293.6305 293.4802 293.142 292.4808 289.6043 288.7792 294.6793 296.7962 298.5122 299.346 300.714 302.0982 302.133 301.761 301.0734 300.0739 299.1555 297.9391 296.4758 295.5441 292.9686 291.308 290.4249 288.6988 286.4071 284.8975 282.6306 278.8145 276.8835 273.2854 270.2569 269.3616 268.756 276.956 279.3603 281.8314 283.5099 283.6481 283.1461 282.9669 281.2274 281.1001 284.0751 285.5704 285.7091 284.6009 282.9236 280.487 278.1799 272.5074 270.5081 273.1349 275.1956 276.9133 278.6501 278.8436 279.2495 277.7877 274.3474 269.7499 266.4891 262.9592 257.6674 253.4117 252.1342 254.4396 261.7994 266.7143 270.5071 273.9807 280.8914 284.4294 286.8177 288.4081 289.0934 289.9353 290.5626 290.8608 291.3527 291.0178 290.262 289.2934 288.5822 287.2488 285.5145 284.3481 283.0182 281.1725 276.7716 275.3021 274.2211 273.6119 273.0694 271.3277 267.7118 264.5793 268.5104 270.012 269.1646 268.2767 268.004 267.9494 266.9861 266.0001 264.6863 263.9219 263.615 262.834 260.9191 260.4475 260.2094 261.0912 262.7875 262.0288 263.2064 267.757 269.4631 270.8475 272.4983 274.0497 275.7664 276.7294 277.3637 278.1765 279.0897 278.6103 276.6055 274.5335 272.8356 271.0021 269.1773 267.262 264.7278 262.2094 254.606 255.6107 252.1238 248.3485 245.5778 243.2077 244.8299 247.0449 248.9241 251.4153 251.1562 250.3387 249.3708 249.872 250.4735 251.4487 252.4965 253.0981 254.7049 255.6751 256.2893 254.3385 249.7648 245.0247 242.0644 238.4174 236.7052 236.1613 235.9689 236.0122 235.9914 235.9819 236.4353 236.8897 237.0201 236.8271 238.0683 239.631 243.0795 245.3233 247.2165 248.6965 250.1807 251.104 251.8191 252.9957 253.6255 255.0699 256.226 257.4076 257.934 258.3114 258.7477 259.3453 260.024 260.2538 260.7805 261.697 262.102 262.5835 263.0408 262.932 261.692 260.5936 259.1662 258.8752 257.7404 257.8688 259.213 260.6096 261.9891 263.5735 264.6151 266.5684 267.1871 267.3491 267.0884 265.771 264.9135 265.8504 267.2445 268.4054 269.7303 270.3543 270.1724 269.634 269.2278 268.9823 268.8 268.3793 267.0403 264.8091 263.6312 262.4591 260.6726 254.1691 246.4276 239.0708 235.4339 234.6042 235.6188 233.1801 235.1987 235.567 234.7032 235.0975 235.2361 235.0732 235.0594 234.7218 234.9058 234.7938 234.6972 234.511 234.3148 234.0854 234.1133 234.0832 233.8743 233.7693 233.6913 234.3924 234.8647 234.8637 234.4388 234.2298 234.178 233.8927 234.2273 234.5598 234.9373 235.3908 236.0813 237.0263 239.8121 244.6969 248.7787 254.825 258.2944 260.3663 261.6603 262.2675 261.9774 260.0276 256.8354 252.1629 250.5717 252.39 254.165 256.2102 257.9354 259.4708 261.3602 263.1197 264.7252 268.9681 270.8567 272.5333 273.938 274.5582 274.4487 274.3336 274.0749 273.5734 271.8902 270.17 266.9731 262.8171 258.9174 258.195 259.6839 263.5481 265.6452 267.7947 265.8351 261.4205 260.6684 261.6659 263.1609 265.4648 268.6481 271.6817 274.5002 274.5385 274.3274 274.5731 274.9061 275.7916 275.9229 275.9406 276.7289 277.0767 277.4254 277.0221 276.5651 277.6795 278.8214 280.1308 280.0146 279.6003 277.7498 276.9933 276.3604 274.5324 273.1703 271.3289 271.7438 273.2234 274.3768 273.969 272.4216 271.8664 270.0629 268.8246 266.2619 263.6886 261.6559 258.6516 255.9948 255.3803 255.9927 254.6187 249.7983 248.7507 -9999 +-9999 315.5934 317.2973 319.0851 319.5456 318.1042 317.7789 317.1818 315.5083 314.0917 313.4121 312.5439 312.129 309.9034 308.5771 307.6054 307.0987 305.1055 304.024 303.2348 302.8633 302.8673 302.7969 301.9817 300.8509 298.586 298.3216 298.5691 298.7613 298.0134 298.0708 299.1909 299.443 299.2 298.2982 297.7681 296.9569 296.2506 295.873 295.6724 293.2831 291.2078 288.931 286.671 282.9488 279.6648 278.0172 278.3127 278.1022 277.7588 278.8955 279.4478 280.0909 281.0455 281.6167 280.8375 279.9483 279.9363 280.9283 284.4784 285.3097 286.4425 287.4253 288.2745 288.6267 289.7616 290.6679 291.6425 293.7911 293.6792 292.6914 292.6857 291.6901 289.1608 288.5125 291.7536 292.9904 292.4275 290.7628 288.2085 286.0412 285.1016 284.3013 284.2036 283.4814 287.1091 290.9768 291.2811 292.0493 292.437 292.6395 294.0761 295.8876 296.3426 294.9652 297.7764 298.4476 298.3286 300.2355 303.0224 304.5087 306.1156 307.0089 308.3363 310.5039 309.4063 309.2839 311.3641 313.9743 315.3699 316.7176 317.6602 318.3311 315.7117 313.9059 312.3477 310.5862 309.1483 308.5396 308.0291 307.5844 306.6618 304.6614 304.4617 304.165 303.6033 302.8938 302.3259 301.7128 300.912 300.2236 299.0348 296.3262 294.3658 290.7364 287.8243 286.7256 285.7582 286.953 287.4749 287.9055 288.7987 290.7192 291.7466 291.9078 291.3235 291.219 290.5238 288.066 288.8793 294.8223 296.8792 298.2469 298.9543 300.2563 301.2906 301.3673 300.4977 299.4706 299.5264 298.743 297.6606 296.5039 294.8012 292.6584 290.7128 288.6783 286.1443 282.1649 280.9007 280.7273 277.6478 273.0193 271.3492 270.0948 269.0576 267.625 274.4589 277.5981 279.8369 280.0652 280.1307 279.2002 278.9699 276.9888 279.3046 282.1878 283.2173 282.4169 281.2175 280.2447 278.8031 277.1253 275.2104 271.365 271.2425 273.3879 275.1649 276.2738 276.0633 277.429 275.994 272.7601 268.5098 265.5017 259.3543 253.6736 251.9634 254.5347 260.6053 265.0087 268.9502 272.7312 276.8051 285.1672 285.4317 287.138 289.5594 291.3763 292.1872 292.2605 292.3228 292.2442 291.7899 290.9708 290.3073 289.4715 288.1042 286.7891 285.7831 284.3195 282.7235 278.7962 277.4892 275.7964 274.9529 274.2269 273.0989 271.5381 269.4008 267.8031 264.2977 264.9374 265.1411 265.5215 265.4502 265.0159 263.5396 262.1161 260.8792 261.5872 261.6146 261.6951 262.0049 262.5634 263.0211 263.4763 263.7761 263.8845 268.2192 270.3824 272.1113 273.6767 274.7045 276.4571 277.714 278.4125 279.0086 280.0089 278.5797 276.5399 274.289 272.577 271.0468 269.5089 267.3893 264.4419 261.6133 258.6581 256.744 253.5001 249.6505 246.0191 244.1324 243.6476 244.8557 246.1207 250.2839 250.506 249.64 248.6888 248.4782 249.0527 250.2863 251.62 251.9209 253.8745 255.1298 255.8742 253.717 248.2337 242.1931 239.1003 237.113 236.7052 236.1613 235.9689 236.0122 235.9914 235.9819 236.4353 236.8897 237.0201 236.8271 238.0683 239.631 243.0795 245.3233 247.2165 248.6965 250.1807 251.104 251.8191 252.9957 253.6255 255.0699 256.226 257.4076 257.934 258.3114 258.7477 259.3453 260.024 260.2538 260.7805 261.697 262.102 262.5835 262.9129 262.4583 260.8706 259.1728 257.9373 257.5403 257.0729 257.1174 258.7664 259.9596 261.5499 262.5992 263.6694 265.4585 265.9539 266.3173 266.3255 265.6166 264.1764 264.6271 265.6792 266.5096 268.3932 268.8592 269.1519 268.9588 269.0527 268.8623 268.583 268.2912 266.9049 264.4672 263.222 261.2666 257.4828 253.4394 249.9172 236.5971 235.5756 235.3646 235.5632 234.1859 233.2096 235.6378 235.134 234.7759 234.539 234.8244 234.5322 234.5939 234.7373 234.6862 234.597 234.4939 234.3975 234.1534 234.1205 234.1853 234.1414 234.0159 233.5197 234.2112 234.7753 234.9124 234.418 234.2088 234.0844 233.9797 234.0219 234.5973 234.899 235.4617 236.4037 237.646 239.9976 243.9952 247.0715 254.1389 256.6797 258.5384 259.2716 260.0901 260.085 257.0458 252.9982 247.9302 252.0087 253.3058 255.042 256.3988 257.9034 259.2437 260.0589 261.1037 262.3831 265.8386 268.0811 270.3648 272.6898 273.7583 273.1952 272.8497 272.4467 272.0334 270.0564 268.9569 266.3771 261.766 258.0771 257.5259 259.7216 263.4367 264.9662 265.9065 263.1029 259.5643 259.683 261.468 263.9538 266.656 269.2141 271.3152 272.8683 272.6321 271.9421 271.6107 272.2695 272.1917 272.0235 271.8148 272.2121 274.5173 275.1185 275.8684 276.1095 276.36 277.2978 278.2426 278.2348 277.5822 275.6348 275.2583 274.6277 274.0546 273.416 272.1932 273.3133 274.5469 275.8044 276.2069 276.0386 275.9563 274.8952 273.1777 270.5261 267.4066 264.7637 261.7653 258.8685 258.7036 258.7867 256.8666 252.9441 252.8812 -9999 +-9999 314.4232 315.9628 317.8924 318.5781 317.637 317.4845 317.1829 316.1995 315.1291 313.7237 312.3049 311.2783 309.842 308.8615 308.4248 306.695 305.4435 305.6839 305.3315 304.7094 304.6176 304.1626 303.2932 302.5599 301.2 299.36 298.1158 297.9419 297.1151 297.1001 297.6524 297.62 297.6189 297.0807 296.8284 296.5729 296.3758 296.0658 295.9793 293.5638 291.5034 289.3784 286.9015 283.2225 279.5092 278.0067 278.0239 276.1597 277.6287 277.6968 279.0419 279.3613 279.8397 279.9133 279.2862 279.4921 280.5645 283.6378 284.687 285.6393 286.7133 288.0044 288.6111 289.6074 290.6743 291.4807 292.2416 293.1807 292.337 292.3292 291.2467 289.351 286.9578 287.5945 290.7264 292.7075 292.9041 290.8271 288.1439 285.4585 284.0235 283.8641 283.6625 285.3528 286.6626 288.916 289.3721 291.3264 293.5414 295.8068 297.7739 300.4162 301.6023 300.5251 298.8184 300.0442 301.2398 302.8245 305.3581 306.7193 308.3322 309.8106 311.9525 313.4456 314.0072 314.556 316.5858 317.5526 318.3628 318.7312 319.0511 318.4683 315.469 313.8304 312.1249 310.5695 308.8932 307.6229 307.4152 306.4601 305.6492 303.2537 302.6576 302.3348 301.8688 301.4294 301.0633 300.552 299.7343 299.4641 298.8059 296.9624 295.3008 293.1768 291.0081 289.1407 286.7355 285.2802 285.4305 286.4458 287.128 288.4497 289.5655 289.729 289.5406 289.4654 288.2573 287.1761 289.3902 293.9026 295.6212 296.4521 298.1945 299.5087 300.2889 300.0315 298.9814 297.8677 298.1601 297.716 297.3601 296.2558 294.4529 292.8886 291.5659 289.6901 286.8187 281.7713 280.1094 277.747 273.5264 276.4616 277.7701 275.1164 272.0367 269.0387 271.2449 274.2966 275.671 275.7862 276.1047 275.639 275.8098 274.5224 276.2111 279.9372 280.3098 279.0998 277.9753 277.4089 276.2894 275.3917 275.3861 274.2526 267.8513 270.2953 272.1503 273.1085 273.4484 274.7102 273.4372 271.2778 269.2086 266.7779 258.4124 254.2959 252.5813 256.0682 261.6094 266.8291 270.5462 274.8348 279.4051 288.134 288.9866 289.1446 290.7354 292.1241 292.2381 292.0793 292.1089 291.8886 291.8945 291.1535 290.9742 290.2012 288.8287 287.6644 286.4003 285.1002 283.8632 280.3866 278.8654 277.0555 275.9327 274.6338 274.0653 273.2616 272.2397 269.5936 266.8232 265.9364 265.7867 265.5832 264.7866 263.8435 263.0598 262.9967 263.43 264.0711 264.4214 265.3288 266.5302 267.4926 267.0922 265.4847 264.997 264.4099 268.4846 270.4991 272.3535 274.1947 275.5668 276.6242 278.0313 278.8976 279.6974 279.6409 277.7118 275.6733 274.289 272.577 271.0468 269.5089 267.3893 264.4419 261.6133 258.6581 256.744 253.5001 249.6505 246.0191 244.1324 243.6476 244.8557 246.1207 250.2839 250.506 249.64 248.6888 248.4782 249.0527 250.2863 251.62 251.9209 253.8745 255.1298 255.8742 253.717 248.2337 242.1931 239.1003 237.113 236.0961 235.8821 235.7963 235.7569 235.8176 235.9003 235.7859 236.7239 237.0663 237.0417 237.373 239.8419 243.2679 245.5996 247.4331 249.2722 250.8513 252.0358 252.8497 253.5953 254.2738 255.3433 256.2717 256.8471 257.0043 256.9285 257.2176 257.7098 258.7385 259.1894 260.1128 260.8491 261.3937 261.923 262.1952 261.5594 259.8121 256.0341 256.4138 256.4279 255.7864 256.4021 258.4449 259.3141 260.2183 261.5427 262.3542 264.0203 264.5636 265.1358 265.1958 264.5643 263.0365 262.89 263.9359 265.1772 266.3591 266.978 267.3509 267.5215 267.9317 267.9578 267.7966 267.748 267.1068 264.3768 263.4467 262.3436 261.1848 255.5068 241.9622 236.4174 235.1343 235.3909 235.845 235.5999 233.1135 235.8315 235.0245 234.8413 234.8619 234.8507 234.7731 234.4659 234.3098 234.1821 234.0857 234.2399 234.2141 234.0416 233.8467 233.7184 233.8174 233.6746 233.4336 234.3911 234.787 234.8066 234.3874 233.9986 233.1381 233.9481 234.1848 234.5224 234.9233 235.6833 236.6366 237.9226 239.9935 243.068 245.8943 252.5657 254.5587 255.8714 256.7394 257.3145 256.302 253.1069 249.2896 245.4976 252.2474 253.8296 254.3911 256.7411 259.6222 260.5048 261.3646 262.1836 263.2188 265.7866 268.0316 270.1254 272.0305 272.5093 272.4211 271.8081 270.6616 269.6691 268.9309 267.6943 265.2382 261.0432 257.6044 256.9347 258.9058 262.2109 263.7133 263.7325 259.6854 258.0573 259.1416 261.6573 264.2413 266.8073 268.9007 270.2649 271.094 270.8627 269.0242 268.4487 268.4505 267.9631 267.4716 267.8762 269.0122 272.3048 273.1266 274.8157 275.4739 275.9797 275.1449 275.8211 276.0818 275.5382 273.3616 272.9002 272.8791 272.7006 272.6804 273.435 274.2653 275.5681 276.7749 277.683 278.9665 279.1942 278.5907 277.0134 273.9378 271.0547 267.8405 264.7212 262.9573 261.2199 261.6398 260.7869 258.6311 255.7296 -9999 +-9999 312.5574 314.3624 316.3282 317.0276 315.9929 317.0948 317.1316 316.7152 315.2562 314.1898 313.1689 312.7558 311.3889 310.2652 309.4584 308.6601 307.8544 307.353 306.9196 306.259 305.8445 305.0841 303.963 302.9472 301.9777 300.9701 298.335 296.2924 296.581 296.2616 296.4165 296.0002 295.8852 295.4407 295.3136 295.539 295.4665 295.333 295.135 293.787 292.2316 290.0093 287.0332 283.093 279.3823 277.8839 277.8757 277.9367 277.7304 277.6107 277.9031 278.4189 278.9692 278.8403 279.0154 280.1131 282.0495 284.0464 284.6748 285.1076 286.1794 287.5148 289.0258 289.696 290.0172 290.3516 292.2884 291.9307 292.0709 291.1243 290.05 287.7222 286.2662 287.4251 290.3516 291.8528 291.4709 289.4426 286.7932 284.3923 282.1804 283.9567 285.8701 286.0885 287.3687 289.2542 289.5126 292.1465 293.5427 295.494 297.5145 298.9924 300.681 301.1311 300.9536 301.7765 303.2015 304.7424 307.1011 308.8746 310.1855 311.9091 313.9655 314.5899 316.1226 317.2487 319.4282 320.9478 321.1523 320.7101 319.4731 318.1267 315.4794 313.5703 311.9548 310.3272 309.042 307.4609 307.0013 304.8473 304.475 301.051 300.5569 300.3046 299.9367 299.8367 299.3184 298.8098 298.5858 297.9131 296.5987 295.8463 294.4587 292.3739 289.1089 288.1311 287.2478 285.2534 284.4656 284.5347 285.8492 286.6431 287.1402 287.6006 287.8296 287.8215 285.7958 287.654 289.4436 292.9137 294.2912 295.6801 297.2864 298.6735 299.1087 298.3057 297.2256 296.0136 296.9896 296.4259 296.5132 296.4023 295.4009 293.6698 292.1293 290.2591 286.7441 281.8522 283.2751 283.5837 282.7705 281.5315 279.7189 277.0092 272.9207 269.3285 268.4425 268.4765 270.1837 270.5524 271.5121 270.5064 269.252 269.1986 271.8914 277.9937 277.351 275.9139 274.9767 274.303 273.2228 272.3416 273.1573 272.7467 266.6021 266.0771 268.9715 269.3982 270.5964 270.3519 268.8977 267.4794 267.0771 265.0578 253.4785 252.6435 251.9273 253.2058 260.9183 266.5198 270.951 275.9513 281.0591 288.4973 289.9427 290.3746 290.6616 290.1076 289.8517 290.2316 290.2968 290.3987 290.7079 289.8321 289.8483 289.8918 289.6331 288.745 287.5694 285.6588 284.1471 280.7384 279.1488 277.604 277.1007 276.3723 275.6208 274.909 272.2397 269.5936 266.8232 265.9364 265.7867 265.5832 264.7866 263.8435 263.0598 262.9967 263.43 264.0711 264.4214 265.3288 266.5302 267.4926 267.0922 265.4847 264.997 264.4099 268.4846 270.4991 272.3535 274.1947 275.5668 276.6242 278.0313 278.8976 279.6974 279.6409 277.7118 275.6733 273.3417 271.4381 270.0802 268.5262 267.0526 265.0872 263.4437 259.7133 257.3495 255.1967 251.658 247.3699 244.4821 243.6267 243.7166 244.4987 248.1795 249.496 249.4436 248.2603 247.5924 248.2292 249.6934 250.3983 251.3187 253.2255 254.3264 254.7282 251.485 245.5644 240.0009 236.9261 236.1301 235.8111 235.885 235.7558 235.7287 235.7835 235.9397 236.0412 236.1967 236.7166 236.9763 236.6734 240.4584 243.3242 245.6127 247.3213 249.1753 250.7827 251.9444 252.5386 253.0428 253.7999 254.8891 255.5186 255.3545 255.114 254.8086 254.9119 255.713 257.4171 258.3026 259.2507 259.9094 260.2768 260.7378 260.7061 259.6309 256.94 254.1166 254.2957 254.666 254.7869 255.3166 258.2552 258.2008 258.5198 259.3092 260.946 262.4395 263.2898 263.8774 264.0713 263.3407 262.202 262.0613 262.5685 263.4044 264.8666 265.2986 265.5837 265.9534 266.4916 266.5956 266.5251 266.7617 267.4247 265.5942 264.5926 264.3459 263.7812 261.3116 252.5031 243.8411 235.6094 234.3966 235.6158 235.891 233.152 235.4975 235.2331 234.7642 234.731 234.7723 234.7603 234.4033 234.3207 234.2062 233.9911 233.9223 234.041 233.9846 233.8051 233.6476 233.4114 233.2798 233.3084 233.6904 234.5303 234.5763 234.2804 233.2324 233.7247 234.2112 234.5812 234.6996 235.1754 235.8798 236.7641 237.7339 238.9556 241.7445 247.6463 250.7471 252.1042 253.9867 253.1894 253.0036 250.7518 247.8961 245.9973 244.817 252.7652 254.7773 257.1507 259.2681 261.5123 263.1509 264.5041 265.6144 266.527 267.7792 269.1022 270.2889 272.2409 271.6319 270.9944 270.1666 269.5014 268.7826 266.6427 265.5074 263.6972 259.8291 256.9656 256.375 257.7205 260.8857 262.4282 260.477 256.7179 257.1271 259.6949 262.8472 265.0255 266.9711 268.5328 269.0837 269.0956 268.127 266.2212 264.9804 263.8796 264.1275 264.0815 265.2593 266.4243 269.8527 271.5024 272.7662 274.363 275.873 274.604 273.4921 273.4622 273.1742 271.6722 271.1979 271.4389 271.4339 272.1415 273.0556 273.8192 275.1233 275.9904 277.1306 280.0063 280.8443 281.2736 279.6566 276.6132 273.0651 270.3611 267.3617 265.2134 263.8363 264.632 263.6494 261.204 259.424 -9999 +-9999 310.5273 312.2755 314.1486 313.8531 314.6432 317.0221 317.2193 316.8524 316.2879 315.393 314.7319 314.5456 313.1678 311.9783 310.718 309.5132 308.7769 308.3786 307.8106 307.1481 306.5103 304.8654 303.7459 302.7242 301.8551 300.8098 299.6447 297.8574 295.1637 294.2367 294.4363 294.2016 294.2977 294.1323 294.0782 293.8773 293.6427 293.6313 293.6565 292.9045 291.649 289.8199 286.9392 282.7484 278.9935 277.8195 277.6421 277.8581 277.6315 277.541 277.3449 277.7786 278.198 278.7299 279.4623 281.8294 283.7696 285.2057 285.6179 285.7655 285.7475 286.4919 287.8302 288.7271 289.164 289.6463 290.287 289.4148 289.4238 288.8927 288.5227 286.4603 285.2091 287.2325 289.4846 290.7224 289.5519 287.4391 283.7496 282.6436 282.8586 284.03 286.4732 287.9301 288.5096 291.0984 292.706 292.041 292.0065 292.5298 293.6057 294.8263 296.0055 298.412 301.9102 302.6208 304.3802 305.7629 307.9971 310.1474 311.7937 312.8763 314.6173 316.7902 316.9118 318.7339 320.6255 322.2875 322.1413 321.3162 319.8405 318.027 315.2794 313.6959 312.1638 310.6234 309.4659 307.4431 306.1899 303.5537 302.5612 298.7802 298.4737 298.2826 297.8387 297.7421 297.562 297.297 297.3187 296.6745 294.3399 293.6269 292.0788 289.9607 286.8409 285.689 285.7503 286.0051 284.4912 283.894 283.6508 284.6422 285.7027 286.0197 286.0345 285.3323 285.4014 287.6033 289.5255 292.9652 294.5206 295.6241 297.2425 297.8241 297.4978 296.6297 295.5523 294.478 294.7912 295.4995 295.4711 295.8044 295.8004 294.1084 292.2499 290.6518 288.7763 285.5779 286.2841 285.4973 283.8419 282.4532 281.6767 278.9171 275.7545 271.6914 268.109 267.3656 267.1496 267.5151 265.9157 267.0984 266.8426 266.8635 269.2074 274.5691 273.7318 272.8318 271.5955 271.2616 270.0555 269.5839 269.657 269.4687 268.0742 264.4137 264.7628 266.2056 267.3203 264.6451 259.6201 259.9455 262.7423 254.6251 251.9421 251.8805 251.9654 253.2058 260.9183 266.5198 270.951 275.9513 281.0591 288.4973 289.9427 290.3746 290.6616 290.1076 289.8517 290.2316 290.2968 290.3987 290.7079 289.8321 289.8483 289.8918 289.6331 288.745 287.5694 285.6588 284.1471 280.7384 279.1488 277.604 277.1007 276.3723 275.6208 274.909 273.7489 270.2999 268.1941 267.2223 267.0879 266.0114 264.9483 264.2452 264.035 264.7083 265.4106 268.8476 269.6568 270.3116 271.3926 271.5845 271.1061 269.4154 268.4941 266.3086 268.3636 270.7421 272.6891 274.5092 276.1228 277.2391 278.6183 279.861 279.8818 277.95 275.734 273.7038 271.7959 270.3928 268.8159 267.7469 266.8938 265.4453 263.5974 260.1797 258.1541 256.6644 253.5265 248.7513 245.4993 243.7063 242.9556 243.7618 247.2291 248.8811 248.9993 248.2352 247.0648 247.5761 249.0917 249.9447 250.7274 252.7783 253.7852 254.5529 251.7055 246.2579 238.2456 235.9431 235.7856 235.8162 235.8744 235.8531 235.7166 235.6983 235.7628 236.0063 235.9579 236.1114 236.9135 236.1965 240.7595 243.2187 245.2413 247.0006 248.3515 249.571 250.6703 251.2963 251.873 252.7885 253.3278 253.674 253.1805 252.7128 252.8244 253.3395 254.5237 256.199 257.0514 257.2111 257.3773 257.8504 258.6924 258.7809 257.2138 253.8362 252.8629 252.8995 252.2343 253.628 256.1148 258.0493 257.5226 256.7761 257.3192 258.7443 261.1451 261.5867 262.3003 262.7657 262.3938 261.3419 260.9227 261.4914 261.9223 263.0786 263.4405 263.7484 264.2666 264.7088 264.8969 265.2536 266.3293 267.2168 266.9296 266.0911 265.8453 265.5647 264.8439 263.171 256.9608 240.8729 235.3796 235.5522 235.7542 233.066 233.9928 235.8757 235.0764 234.6044 234.5882 234.4857 234.5368 234.3962 234.2641 234.1348 234.1133 234.0143 234.1232 234.0344 233.8858 233.5511 233.4628 233.4639 233.4166 233.6927 234.0133 233.4704 233.8353 234.1306 234.5951 235.1543 235.6882 235.9384 236.6038 237.2375 237.9464 238.7169 240.0226 245.4245 246.4949 249.3439 249.8775 249.4873 247.7888 246.0242 244.2261 244.6096 246.0387 253.6112 255.5428 257.8996 260.1863 262.3905 263.9933 265.8026 267.1157 268.4604 270.6188 271.1678 271.7675 271.341 270.8034 269.9534 268.864 267.9081 267.3955 265.1698 263.9417 262.0327 259.0899 256.1417 254.9 256.4278 259.6102 261.4707 257.7324 255.4294 256.4161 260.0614 262.7191 264.7151 266.2415 266.8951 266.4978 265.6312 264.0208 261.776 261.3727 261.1345 260.9716 261.6241 263.4739 264.6911 267.0179 269.6106 271.8997 273.695 275.8443 274.8563 273.4677 272.2186 271.294 270.5615 270.3184 270.3346 269.961 270.956 271.416 272.9398 273.5638 274.9132 277.8654 279.5131 280.4408 281.4162 280.7985 277.9196 274.8207 271.6407 268.6302 267.0337 265.7006 266.5518 263.8414 263.0493 263.1889 -9999 +-9999 308.4027 310.5151 311.5658 312.9954 314.8659 316.8964 317.262 316.8117 316.7537 316.3539 315.8356 315.1888 313.9977 312.5782 311.2274 310.2353 309.4553 308.759 308.0819 307.3496 306.4306 304.591 303.1352 302.0111 300.8638 300.4302 299.9377 299.3033 298.1109 296.3063 292.4914 291.8563 291.9211 292.0601 292.4015 292.0187 291.7398 291.783 291.652 290.6496 290.0128 288.4168 286.0884 282.3382 278.9056 277.8709 277.6996 277.7724 277.626 277.4348 277.3801 277.7222 277.9758 278.9613 281.0803 283.2727 285.1074 286.8701 287.0622 287.0518 286.8247 286.5816 286.8086 288.019 288.651 289.0865 288.3695 288.5647 287.0704 286.8995 286.8856 284.9875 284.4772 286.936 287.9806 288.9248 287.7652 283.9098 282.2286 281.8249 283.66 285.1568 286.8583 288.4993 289.933 291.1071 292.7453 294.8931 295.6138 295.8435 295.7471 295.0559 295.636 297.3093 301.0965 303.3915 304.8585 306.4114 307.9088 309.3798 310.1531 311.8805 314.2014 317.3636 318.4817 320.2763 321.817 322.8085 322.8426 321.5922 319.7412 318.5661 315.0366 313.156 311.093 309.7246 308.1917 306.4494 304.9915 301.5729 301.0164 298.2882 297.1117 296.2514 295.5146 295.4668 295.555 295.4738 294.4276 293.9936 291.5853 289.4294 288.3222 287.5202 288.3843 289.3131 290.0891 289.3133 289.105 286.519 283.0906 282.0574 283.2932 283.5669 283.932 283.8668 285.2593 287.2106 289.4808 292.626 293.8126 294.9284 295.5699 296.2279 296.3889 294.6341 293.394 292.7343 293.5583 293.9473 294.3332 295.0532 295.4691 294.621 292.7313 291.1331 289.7666 288.0267 288.0825 286.6368 285.5117 284.3257 283.0145 280.3314 276.6214 272.1061 268.109 267.3656 267.1496 267.5151 265.9157 267.0984 266.8426 266.8635 269.2074 274.5691 273.7318 272.8318 271.5955 271.2616 270.0555 269.5839 269.657 269.4687 268.0742 264.4137 264.7628 266.2056 267.3203 264.6451 259.6201 259.9455 262.7423 254.6251 251.9421 251.8805 251.9654 253.4101 259.3276 264.601 270.0173 275.6867 280.2263 287.5819 288.659 288.5721 287.9981 287.0659 287.4554 288.0075 288.0632 288.3248 288.2428 287.9712 288.1953 289.2253 289.8522 289.5875 288.2773 286.3947 284.7237 281.6059 279.9301 279.2758 279.037 278.2764 277.3941 276.8206 275.736 272.954 269.0179 268.0771 267.0689 266.3346 265.7993 264.9708 266.5569 267.0754 268.8437 271.9614 272.5743 273.0244 273.4901 273.8096 273.4513 272.742 271.1291 269.6907 268.1552 270.5175 272.8104 274.6726 276.2575 277.9 279.4678 279.704 278.0566 275.5832 273.7925 271.5962 269.7022 268.3727 267.146 266.1057 265.0934 264.3466 261.4283 260.08 259.0397 257.1838 254.9479 252.507 247.6267 244.3206 243.0417 241.8035 245.0898 246.9106 247.748 247.8721 246.6779 246.9525 248.0847 249.5173 250.3143 252.67 253.4075 253.6899 252.2513 247.0827 238.9265 235.9628 235.6918 235.9194 235.7793 235.872 235.8615 235.7634 235.7561 235.8256 235.9059 235.886 236.9209 236.8652 239.7133 241.7845 243.983 245.8729 246.7564 247.8229 248.9385 249.8702 250.9443 251.4279 252.4836 252.5509 252.2233 251.556 251.8213 252.9559 253.3702 254.7778 255.1793 255.4082 255.6208 256.7198 257.2059 257.3062 255.04 251.8769 250.5129 250.6956 252.8945 255.4252 257.4149 257.7608 257.8155 256.1159 255.6096 256.8584 258.9552 260.5237 261.4525 261.8595 261.644 260.4362 260.3256 260.5111 260.6159 261.2226 261.6618 262.137 262.7501 262.9336 263.3624 264.733 266.1234 266.9141 267.3583 266.6779 266.24 265.7481 264.8688 263.6254 261.0554 249.7345 236.9055 235.2378 235.1679 235.9328 233.1394 235.5608 235.4077 234.6457 234.2728 234.1599 234.2421 234.3999 234.3667 234.0533 233.8765 233.6777 233.518 233.2777 233.2809 233.3597 233.5052 233.4415 233.426 233.4614 233.5512 234.1218 234.3692 234.4418 235.1546 235.6163 236.245 236.819 237.5163 238.0804 238.3232 238.8568 239.819 243.0327 245.2122 244.9584 244.4839 244.6373 243.4784 242.3121 244.1116 246.2201 245.7248 254.2475 256.2021 258.4783 260.2251 261.7068 263.787 265.793 267.4559 269.1769 271.9049 272.2511 271.4644 270.6226 270.2655 269.3023 267.9493 266.7627 265.7645 263.8399 262.6248 261.0426 258.6994 255.3365 254.0973 255.017 258.2928 260.5049 256.9626 254.4508 255.8739 259.0182 261.3982 263.1642 263.8864 263.8307 263.4811 261.0566 259.6652 259.8549 260.8312 260.9369 260.9315 261.3361 263.2582 266.0571 267.5106 269.3315 271.2945 272.9712 275.5668 274.5109 273.5277 272.0975 271.014 269.2674 269.2558 268.9956 269.2544 268.8723 269.7584 271.4688 272.5218 273.8714 276.4609 277.4175 278.3087 279.9298 280.0533 277.7544 275.2123 271.718 268.9274 267.4241 265.8604 264.8261 264.7941 263.2945 263.2899 -9999 +-9999 307.564 309.4196 311.9934 315.3062 315.928 317.03 317.4441 316.599 316.2501 315.9696 315.5201 315.026 313.7407 312.2914 311.2568 310.2375 309.5276 308.596 307.8694 307.1119 305.8443 304.1427 302.8378 301.4646 299.9697 299.2065 298.9248 298.8929 298.7076 298.0997 295.0552 293.6905 291.7586 289.693 289.4174 290.3409 290.8205 290.3755 290.0297 288.6262 287.7679 286.7987 285.0277 282.2814 279.5046 278.036 277.6772 277.5887 275.6863 277.2673 277.3484 277.6973 278.7778 281.5692 283.7239 285.1161 285.9475 287.6643 287.6095 287.377 287.2766 286.5883 286.5897 287.3988 287.5538 286.8997 285.2708 285.3881 284.9806 284.9441 284.6667 283.6067 283.586 284.6055 285.305 286.3155 283.8678 281.8343 281.3402 282.3535 283.715 285.6244 288.3551 290.3497 290.6201 293.0225 294.0182 295.6967 297.7524 298.9422 299.2408 299.1318 299.1939 299.1868 300.7787 302.9987 304.8615 306.252 307.3001 308.9074 310.8546 312.7761 314.2784 317.2545 318.812 319.8625 321.6302 322.8986 322.8694 321.743 320.0617 319.0555 315.1574 313.7033 311.7594 311.0966 309.4433 308.5842 304.3518 300.2663 299.8348 297.0742 297.6289 299.3236 296.6411 294.7214 293.7576 293.042 292.908 291.9363 290.2412 289.1506 289.9869 290.7559 291.711 292.3667 292.5485 291.5815 291.3836 290.3234 285.9152 285.7027 283.5304 281.294 282.049 283.9797 283.295 287.2106 289.4808 292.626 293.8126 294.9284 295.5699 296.2279 296.3889 294.6341 293.394 292.7343 293.5583 293.9473 294.3332 295.0532 295.4691 294.621 292.7313 291.1331 289.7666 288.0267 288.0825 286.6368 285.5117 284.3257 283.0145 280.3314 276.6214 272.1061 268.8441 268.2956 267.8851 267.9384 267.8859 267.7366 267.377 267.2505 265.4169 268.3637 268.0343 268.304 266.668 265.9579 265.554 265.3973 265.1075 264.7193 265.1401 264.6947 262.258 262.2045 261.8786 257.619 255.4527 253.8986 254.5838 252.9414 252.3484 252.1755 251.7304 251.3677 251.7547 260.0953 268.8549 274.837 279.0865 285.3197 285.8227 285.2809 284.6035 284.481 285.2181 285.1772 285.2248 285.353 286.1536 286.4159 287.3412 289.0152 289.7351 289.6279 288.5808 286.6473 284.9701 282.857 281.4458 281.5297 281.2339 280.0232 278.6867 278.2495 277.3484 274.9361 270.3529 268.9211 267.7701 267.1347 267.0875 268.0678 268.1642 269.415 270.4363 273.2401 275.3365 275.7279 276.388 276.4641 275.8396 274.6585 273.3313 272.5024 268.6546 270.5738 273.2691 274.918 276.5057 277.963 278.7061 278.0456 276.623 272.7553 270.8016 269.0981 267.4931 266.067 265.1661 264.2973 263.7994 262.5943 259.8198 258.8675 257.7121 256.245 254.7001 252.7321 250.3054 246.3355 243.6351 242.7293 243.0358 244.1119 245.9315 246.4972 245.9987 245.8417 246.7074 248.4784 249.8107 252.0296 252.3788 252.1997 250.6649 248.2799 241.0108 235.4855 235.6253 235.7611 235.7376 235.8158 235.7545 235.7152 235.9613 236.0277 235.8979 235.7511 236.4444 235.9175 238.005 241.0849 243.0344 243.8912 245.3194 245.9554 246.865 248.068 249.9823 250.9581 251.5898 251.6736 251.1324 250.6275 251.0011 251.6092 252.1907 253.7996 254.078 254.4467 255.0272 255.4384 255.8903 255.829 253.3006 250.625 249.8485 252.5719 254.986 256.6385 257.5248 257.3415 256.6329 254.5813 254.1862 256.0092 256.9815 259.6577 259.9596 260.4355 260.1628 259.3426 259.0031 259.2256 259.4203 259.8257 260.4239 260.8131 260.7768 261.3716 262.5476 263.9572 265.1703 265.9543 266.9653 266.3359 265.2868 264.3091 263.4528 262.4035 261.0536 252.8523 243.2807 234.9366 234.3991 235.7387 233.9235 233.2726 235.7631 234.8675 234.744 234.2873 233.7716 233.7225 233.9113 233.9544 233.7609 233.6114 233.5089 233.2684 233.1405 233.3781 233.5305 233.5184 233.442 233.7569 234.1189 234.278 234.4424 234.6675 235.3865 235.6808 236.0894 236.3023 236.7118 237.1501 237.9171 238.6166 239.4237 240.8533 241.5803 241.6776 241.4865 241.7892 241.824 244.9285 246.1569 247.6224 248.4291 254.0034 256.1386 257.6597 259.31 261.3727 264.3835 265.9467 267.6338 269.327 271.041 270.6939 270.4805 270.339 269.9835 268.9713 267.9707 266.0626 265.0989 262.4562 261.4945 259.9133 257.9826 254.8743 253.4568 254.0974 257.3195 259.6951 255.5244 253.1407 254.3011 256.5018 258.7511 259.9887 259.9508 259.8954 259.1204 255.9679 258.2354 260.7983 260.8336 260.7529 262.7935 266.3339 268.9447 270.3581 270.8259 271.3919 272.7057 273.9438 275.2866 274.4728 273.4001 271.7726 270.9871 268.538 268.2647 267.853 267.6715 268.5962 268.5933 269.0577 269.9987 271.0953 273.1975 274.2102 275.3569 276.0035 276.4081 275.6847 275.0979 271.5716 269.5989 267.988 265.1878 264.4307 263.8461 262.753 262.3876 -9999 +-9999 307.1566 309.2291 311.9122 316.4088 316.6918 317.3765 317.2484 316.6193 315.6959 314.8929 314.2548 313.9144 311.9873 310.9409 310.0913 309.1886 308.4215 307.6993 306.9557 306.0584 305.0431 303.1675 302.3119 300.6899 299.3428 298.351 297.8947 297.8312 297.7622 298.0659 296.7724 295.6537 294.166 292.1288 288.4871 288.0756 288.6252 289.9265 289.2635 288.2854 287.0327 284.6165 283.7894 282.3932 280.4437 277.9352 277.8543 277.6472 277.324 277.002 277.1061 277.4197 278.5945 281.8361 283.8888 285.1339 285.677 286.5435 286.5971 286.1064 285.9307 285.5457 285.5655 286.0767 285.4163 284.521 283.102 282.5627 283.1405 283.0109 282.5233 280.5539 281.5061 281.6251 282.6971 282.7466 281.5544 280.8155 282.0576 282.4572 284.1274 286.705 290.5084 292.048 293.3928 293.7863 295.3742 296.8165 298.7263 300.4618 301.2059 301.1897 301.9884 303.1298 301.6537 302.1771 303.7552 305.6161 307.2657 310.5963 311.9645 313.5201 314.56 317.3578 318.5465 319.8711 321.1133 322.307 322.156 321.6546 320.3885 318.7905 315.2304 314.3083 313.5462 312.2276 311.3833 310.9301 304.3518 300.2663 299.8348 297.0742 297.6289 299.3236 296.6411 294.7214 293.7576 293.042 292.908 291.9363 290.2412 289.1506 289.9869 290.7559 291.711 292.3667 292.5485 291.5815 291.3836 287.7984 285.9152 285.7027 283.5304 281.294 282.049 283.9797 283.295 284.9906 287.6255 290.4873 291.3514 292.7027 293.0657 295.123 294.9165 293.4848 291.4747 290.9261 292.1303 292.3858 293.3942 293.8263 295.0573 294.8507 293.8298 292.0832 290.593 289.9034 289.4299 288.6665 287.2245 285.8603 283.8681 280.5092 275.0385 275.5429 272.5844 272.5703 272.3362 271.4848 269.8105 268.5838 270.8743 273.0027 273.4728 266.7412 264.0827 265.2148 264.7644 264.3474 262.8199 262.0536 261.7351 262.089 258.9464 259.1022 258.2456 257.7482 258.1741 257.658 257.0363 255.7674 255.6434 253.1621 252.4201 252.0352 251.5925 251.3881 250.0229 257.67 268.1376 274.4044 278.1911 282.0325 281.7041 281.3078 281.5595 281.4036 282.0482 281.6982 282.3294 282.8429 283.7253 285.5276 286.9194 288.6028 289.4868 289.7172 288.5615 286.7783 285.1295 283.2352 283.0373 283.0843 282.9217 281.4858 279.8501 279.7804 278.476 277.3134 272.199 269.612 268.4197 268.4873 268.2107 268.9327 268.7708 270.1841 271.2104 274.7787 276.4616 277.8088 278.6097 278.6342 277.1809 275.7809 274.6304 273.717 270.3059 270.9622 273.5148 275.3578 276.2862 276.875 276.6989 274.1725 273.0357 270.2139 268.3073 267.312 265.3679 263.8618 262.0627 261.7159 260.9822 260.3157 257.655 256.3373 255.3345 254.6435 252.8549 251.375 249.4027 247.9155 245.4129 243.8696 241.9773 242.3104 243.1944 244.8626 245.3511 245.0145 245.6596 246.7347 248.4032 250.2098 250.5909 249.9061 249.0094 248.3191 243.5608 236.5126 235.6516 235.6405 235.6533 235.626 235.6452 235.6138 235.5551 235.7401 235.9315 235.7828 235.9671 235.7429 237.715 239.9914 241.4862 243.9274 245.7194 247.1796 247.9993 248.5556 250.3515 250.7301 251.1206 250.9285 250.3118 249.7519 249.8852 250.3074 251.196 252.5773 253.3474 253.9071 254.3628 254.3749 254.438 253.3182 251.0159 249.6223 251.3389 253.5891 255.4442 256.5886 257.5705 257.0871 254.5949 252.4865 252.6647 253.3775 254.5854 257.0099 258.7557 259.2817 258.6754 258.1025 257.4792 257.5708 257.9027 258.4932 259.1145 259.1709 258.9513 260.0823 261.3536 262.4565 263.5874 264.4814 265.7547 265.9095 264.6444 262.7996 261.3089 260.6602 259.0081 255.7982 250.4414 238.5708 234.7297 234.5255 235.4316 233.1204 235.2019 235.0401 234.8443 234.1867 233.9582 233.9353 234.0683 234.1763 233.9075 233.6408 233.5138 233.459 233.4776 233.7614 233.5326 233.4258 233.56 233.8065 234.7179 234.6464 234.6249 234.7794 235.3279 235.5603 235.8678 236.1145 236.4977 237.0207 237.4988 238.2905 238.373 239.8155 240.5189 240.6719 241.24 242.561 244.6854 246.5923 248.1392 250.0335 250.097 253.6739 255.051 256.4636 258.7274 260.4857 263.1704 265.5641 266.9364 268.3333 269.9732 269.431 269.3911 270.1729 269.9915 269.0188 268.0573 265.8748 263.8779 261.396 260.2275 259.2106 256.9444 254.5836 253.1071 253.0353 256.555 258.6738 253.3164 251.9205 252.6576 253.187 254.7914 255.9444 255.6917 255.4285 254.0228 258.8683 261.4868 264.3542 265.5975 265.2837 266.8768 269.3237 271.0522 272.4214 274.8853 275.446 275.8925 276.1795 275.9861 275.0858 273.5701 272.0745 271.176 268.538 268.2647 267.853 267.6715 268.5962 268.5933 269.0577 269.9987 271.0953 273.1975 274.2102 275.3569 276.0035 276.4081 275.6847 275.0979 271.5716 269.5989 267.988 265.1878 264.4307 263.8461 262.753 262.3876 -9999 +-9999 306.6094 308.9622 314.5181 315.6314 315.7687 317.2639 317.4918 316.902 315.3015 313.7413 312.8553 312.0489 310.082 308.5141 308.1394 307.275 306.5842 306.0507 305.3219 304.3403 303.3986 301.7114 301.4984 300.5919 298.8646 297.497 296.5714 296.1341 295.621 296.7616 296.5297 295.4298 293.9889 292.1886 288.4011 286.5265 287.0757 288.2722 288.0869 287.6128 286.1241 283.4899 281.4702 280.4666 279.3032 278.6573 278.3467 276.9436 277.6317 276.4628 277.0318 277.3254 278.5564 280.6968 283.3477 284.3496 284.464 284.7708 284.5163 283.7779 283.5547 283.8815 284.4228 283.9833 281.9326 281.1193 281.2632 280.775 280.5359 280.2599 280.9775 279.5981 280.0396 281.21 281.4807 281.0679 281.0726 282.1613 283.7182 285.4597 287.3279 289.8199 291.7942 293.9243 296.1069 297.4866 296.6785 297.427 299.264 301.3479 301.2059 301.1897 301.9884 303.1298 301.6537 302.1771 303.7552 305.6161 307.2657 310.5963 311.9645 313.5201 314.56 317.3578 318.5465 319.8711 321.1133 322.307 322.156 321.6546 320.3885 318.7905 315.2304 314.3083 313.5462 312.2276 311.3833 310.9301 309.183 306.3636 304.9957 302.9327 302.478 302.0055 300.0596 296.2779 294.0852 293.1191 292.3775 291.9327 292.8412 292.8894 293.2369 293.1613 293.5684 294.4046 294.3931 293.3685 293.0563 291.4091 289.89 288.6353 287.2933 284.0971 279.949 281.6496 280.928 280.9779 284.1239 288.0533 289.4757 290.1886 291.9851 293.6974 293.2935 291.768 289.7306 289.9817 290.4142 291.4084 291.973 293.05 293.9042 295.0878 294.4628 293.0906 292.2274 292.0546 291.4406 290.0377 288.1928 286.2934 284.0151 281.2639 278.4258 278.618 278.0415 276.9184 276.1107 275.4816 272.5282 271.3611 276.1525 278.7695 279.6214 275.225 269.8532 267.5198 265.1438 265.5155 267.1103 268.9502 268.4378 264.7549 267.9776 269.4384 268.5652 268.143 268.7698 265.5803 262.709 262.087 261.6673 255.1101 253.3441 252.8423 251.4862 251.0369 249.8832 259.9192 267.503 272.3029 278.1992 277.6069 277.5771 277.4461 277.9936 277.9792 278.1287 278.117 278.3932 277.955 282.4962 285.228 286.8568 287.7728 289.2849 289.7986 288.8928 287.1464 285.836 283.8608 283.8723 284.3469 283.9996 282.7568 281.7 281.1097 279.8611 278.6375 273.9314 270.4686 269.7008 270.8084 270.6021 269.5328 269.9385 271.2851 273.3766 275.6339 277.1235 278.8159 279.5648 279.6043 278.2043 276.6237 275.8556 274.8391 271.4099 272.0128 274.3878 275.998 276.3008 275.7131 272.8462 269.5281 266.3495 266.3761 264.5517 263.4608 261.1859 259.8089 258.3909 257.0448 256.5561 256.4791 253.6588 252.3321 250.877 249.5486 248.3231 246.8099 244.9704 244.3287 243.6331 243.1084 241.9571 240.9426 241.9263 242.4159 243.8897 243.7056 243.753 244.6476 246.6399 248.4408 248.5348 247.6447 246.4249 246.3434 240.7816 235.5343 235.5175 235.6129 235.515 235.523 235.4893 235.4825 235.4814 235.5506 235.5896 235.5577 235.9843 236.0383 237.963 240.1005 242.5991 244.4733 246.2512 247.6338 248.4243 248.7598 249.6892 249.953 250.3106 250.1237 249.3794 248.7916 248.665 249.1001 250.3665 252.1536 252.0084 251.8894 252.0503 252.527 251.6564 250.4555 248.4632 248.6032 252.186 254.5069 255.7959 256.8607 257.8543 256.913 253.7257 251.5988 251.4706 251.9146 252.9281 254.8376 257.1351 257.6906 257.4976 257.1098 254.6627 253.9939 255.0643 256.1815 257.0515 256.6632 257.0091 258.8382 259.6269 261.0219 262.0978 262.7769 264.7025 265.1239 263.9602 261.8754 260.1839 257.5476 255.7238 253.4283 247.9114 236.6714 234.8276 234.3672 234.607 235.3601 233.0004 235.666 235.2218 234.8201 234.4745 234.346 234.2084 234.2141 234.231 234.2354 234.101 234.0826 234.3558 234.5152 233.7718 233.5295 233.5187 233.7728 234.3501 234.4973 234.7268 235.0843 235.8235 236.1073 236.2893 236.6547 237.3335 237.8721 238.2725 238.9271 239.4756 240.5537 241.2953 242.4911 244.2022 246.7404 250.2699 252.2882 253.17 253.5134 252.7502 253.5809 255.3693 256.8971 258.3115 259.4751 261.4399 263.5856 265.4555 266.7422 268.3004 268.3794 269.1866 270.052 270.1132 269.0188 268.0573 265.8748 263.8779 261.396 260.2275 259.2106 256.9444 254.5836 253.1071 253.0353 256.555 258.6738 253.3164 251.9205 252.6576 253.187 254.7914 255.9444 255.6917 255.4285 254.0228 258.8683 261.4868 264.3542 265.5975 265.2837 266.8768 269.3237 271.0522 272.4214 274.8853 275.446 275.8925 276.1795 275.9861 275.0858 273.5701 272.0745 271.176 268.9193 267.6659 266.6995 266.7825 266.6289 266.028 266.6656 268.2892 269.6562 271.6382 272.6122 273.3665 274.303 274.9311 275.0981 274.3835 272.8814 270.4368 267.9398 264.3519 262.0567 260.7268 261.014 260.9137 -9999 +-9999 305.9445 308.6058 312.7658 314.1343 315.413 316.8056 316.7708 316.6301 315.476 313.2559 310.8502 308.699 307.3856 305.4144 303.9903 303.3098 303.1468 302.8063 301.6383 300.5619 299.1589 299.8359 300.0564 299.4128 298.8535 298.0204 296.9484 296.4373 294.7046 293.9781 295.0677 293.8819 292.3939 290.5779 288.4515 284.5157 284.7822 285.5254 285.1945 283.5424 282.6225 280.8362 278.9468 277.8963 278.9479 278.6982 278.5654 278.682 280.0807 277.2332 277.0746 277.4885 278.5036 281.2539 282.142 282.4107 282.7361 282.2626 281.7272 281.1865 281.0809 281.8956 284.4228 283.9833 281.9326 281.1193 281.2632 280.775 280.5359 280.2599 280.9775 279.5981 280.0396 281.21 281.4807 280.1794 281.0726 282.1613 283.7182 285.4597 287.3279 289.8199 291.7942 293.9243 296.1069 297.4866 296.6785 297.427 299.264 301.3479 302.8987 302.9738 303.3662 304.8043 305.829 304.5971 303.7828 304.2172 305.6865 309.0595 311.3988 312.1074 312.9416 315.8812 317.7328 319.505 320.9657 321.6145 321.1681 320.5957 319.0348 318.7717 316.4912 315.7753 314.5821 313.6328 312.7258 311.7621 310.2799 307.9135 306.7026 304.5864 303.7795 303.4749 301.4688 299.0381 296.8802 295.5426 295.0957 295.8093 295.9266 295.6989 295.698 295.3869 295.3654 295.5769 295.1911 294.7724 294.5137 292.995 291.2914 290.0744 288.8842 285.797 283.8512 281.0768 280.0288 280.2741 280.4839 285.2691 287.3395 288.9595 291.0048 291.7032 291.4237 290.0587 288.5715 288.4672 289.4704 290.7186 291.8533 292.9668 293.7577 294.4258 294.9972 294.6681 294.395 293.9177 292.8884 291.4785 289.5014 287.1771 284.5483 283.188 281.7187 280.4932 282.5244 280.8448 279.4365 277.3536 272.8836 273.0665 277.8864 281.2436 283.2326 278.3244 276.4022 275.0051 270.9974 269.2059 272.3254 274.0736 272.9035 269.3547 272.6792 274.8801 274.2691 273.4301 272.8843 269.4311 267.1434 266.1809 264.6696 256.1264 254.0213 253.5004 250.9434 250.8056 251.0975 258.684 264.4943 269.2039 273.6947 273.1537 273.256 272.916 274.0386 273.2563 273.971 273.8763 273.8262 275.5945 281.7399 284.1337 285.571 287.3059 288.5058 289.6696 288.6985 287.4111 286.643 284.5087 284.519 285.6474 285.6311 284.159 282.8594 282.2444 281.0742 280.173 275.7094 273.6957 273.3449 273.5716 272.7322 270.9906 271.5703 273.1622 274.4766 275.7751 277.2991 278.2276 279.4419 279.9284 279.3956 278.0468 276.8656 275.828 272.7339 273.9388 275.3688 276.7028 276.463 273.5059 269.425 266.8787 262.917 260.2026 258.8383 258.4981 256.9008 255.1762 253.703 252.6983 250.3884 250.0432 247.9846 247.8129 247.1161 247.1725 247.7486 248.5625 249.8605 249.8819 249.6411 248.0882 246.1127 242.3982 241.1144 240.5988 242.316 243.0229 242.5042 242.8017 244.0523 246.0925 245.6189 244.9095 244.123 243.2245 240.1981 235.8955 235.7072 235.7134 235.5794 235.6014 235.6551 235.6313 235.6002 235.585 235.7413 235.7279 235.5664 236.6992 239.1301 240.0957 242.6758 245.0376 246.9238 248.5888 248.521 248.2131 248.8774 249.1212 249.2588 249.3959 248.8893 247.8532 247.1978 247.9657 249.9359 251.5161 249.2236 248.5295 248.8793 249.0633 248.6875 247.2338 247.8075 249.8036 253.7314 254.98 256.1232 257.2366 257.7445 256.7498 253.3364 250.4305 249.9309 250.7585 251.6681 253.7651 255.6424 256.7114 256.4865 256.1306 254.6093 252.3004 251.7402 252.8867 254.4036 254.862 255.7248 257.001 258.6403 259.3501 260.4492 261.1081 263.6736 264.1192 263.3023 261.4237 258.6384 255.1571 251.7703 249.7252 244.6884 235.9428 235.3523 234.4324 234.632 235.0968 233.1031 236.1063 235.0848 234.8664 234.5076 234.4328 234.187 234.1314 234.6006 234.8682 234.8369 234.6834 234.5059 234.1204 233.8506 233.6069 233.3245 233.5865 234.3501 234.4973 234.7268 235.0843 235.8235 236.1073 236.2893 236.6547 237.3335 237.8721 238.2725 238.9271 239.4756 240.5537 241.2953 242.4911 244.2022 246.7404 250.2699 252.2882 253.17 253.5134 252.7502 253.5809 255.3693 256.8971 258.3115 259.4751 261.4399 263.5856 265.4555 266.7422 268.3004 268.3794 269.1866 270.052 270.1132 269.0904 268.1589 266.0541 264.1168 261.3851 260.1399 258.6301 256.5807 254.2932 252.8537 252.1328 254.322 255.9355 251.5684 250.9051 251.1268 251.7951 251.786 252.1965 254.4933 255.8092 257.0931 261.5998 264.9442 266.7786 268.5844 269.6711 270.3759 271.2928 272.6953 274.4941 276.9779 277.8295 278.4106 278.0383 276.9803 276.6843 274.0889 273.4039 271.8734 268.761 267.0757 264.9138 265.3058 265.3404 265.1081 264.3432 266.1284 266.7697 269.4269 270.095 271.4483 271.7771 272.2068 272.7639 273.1385 272.1226 269.7195 267.2894 262.0087 259.0731 257.1782 256.131 255.8753 -9999 +-9999 304.8247 307.3372 313.2077 313.8677 314.4883 315.2438 315.9915 316.5267 315.3984 313.5007 311.4838 308.7413 304.4278 301.7588 299.8256 299.5614 298.6312 297.7032 296.2365 294.8535 294.0198 296.3075 296.821 296.6321 296.3657 297.0825 297.1093 296.8566 296.1577 293.2968 291.8246 291.6348 289.6413 287.0347 284.742 283.676 284.7822 285.5254 285.1945 283.5424 282.6225 280.8362 278.9468 277.8963 278.9479 278.6982 278.5654 278.682 280.0807 277.2332 277.0746 277.4885 278.5036 281.2539 282.142 282.4107 282.7361 282.2626 281.7272 281.1865 281.0809 281.8956 282.245 279.7066 278.0949 278.0823 278.8562 279.1962 278.8748 279.0243 279.2059 281.0964 279.5024 280.1324 279.9645 280.7841 282.5257 288.0926 288.859 288.9989 289.8388 291.7186 294.3295 296.4789 298.1271 300.1155 299.8136 298.7348 299.5235 300.0586 303.1317 304.1611 304.574 305.8032 307.7684 307.8491 307.8573 307.1911 305.9856 306.8755 307.6284 309.3687 311.1348 315.0568 316.875 318.4619 319.8527 320.3728 320.1035 319.643 318.7198 318.0051 317.2001 315.9026 314.7603 313.676 312.5341 311.5512 310.2456 308.6943 307.6237 305.581 304.7847 304.1216 301.9319 299.7464 298.3589 298.5995 298.4232 298.4223 298.0478 297.9763 297.6815 297.0986 296.8638 296.7769 296.5457 296.0308 295.7791 293.9717 292.5828 292.1005 290.3277 287.1387 283.998 281.7058 280.7807 278.5614 280.9921 283.4134 286.2025 287.1735 288.9509 289.614 289.378 288.6969 287.2363 287.3405 289.9703 291.3746 292.1982 292.652 293.4063 293.9406 294.7273 295.2201 295.511 295.1609 293.8442 292.5181 290.6344 288.8158 286.6796 285.8662 284.5071 283.1261 286.2761 284.7061 282.3065 278.1573 272.8976 276.2589 279.629 282.5309 284.785 281.8383 281.0776 279.0808 275.1738 273.283 275.3335 276.0047 275.3439 272.1105 275.0312 276.6261 276.9743 276.9628 275.8566 272.4351 270.4802 267.9923 265.2531 255.5415 253.5553 251.1324 249.4716 249.6166 250.6023 254.1564 259.8104 265.4156 268.345 268.3686 268.3955 267.9929 267.9421 267.8755 268.7798 270.4969 272.2887 275.4193 281.0572 282.5688 284.9057 287.0721 288.2719 289.1424 288.6926 287.3672 286.3059 284.5934 284.5138 285.2717 285.0288 283.8173 282.7375 282.1599 281.142 280.1662 276.0817 274.8891 274.8738 274.7456 273.8009 272.5598 273.4922 275.632 275.9188 277.7021 278.0112 278.4675 279.4039 280.091 280.0596 279.2131 277.9241 277.4792 275.436 275.7493 277.2014 277.7905 277.0379 272.779 265.3097 264.0039 266.8343 263.104 262.2455 258.8992 258.9384 258.3454 257.5258 257.7233 256.6475 255.1419 252.2941 252.2632 252.6475 254.0699 254.83 254.6535 253.6387 253.2219 252.6345 249.6248 247.5555 244.9243 241.9475 241.0961 240.605 242.0932 241.6105 241.6764 241.9292 241.9628 241.4893 241.0194 240.9236 240.8603 240.7661 236.1113 236.1819 236.32 235.7091 235.5916 235.7172 235.7146 235.5971 235.5701 235.5794 235.615 236.048 236.2856 239.0248 240.725 242.7564 245.1039 247.3208 248.6461 248.0051 247.3237 248.6227 248.5226 248.4989 248.5868 247.6369 246.4902 246.325 247.1862 249.4145 250.4859 247.7486 247.1103 247.4928 247.168 245.645 248.3752 250.3163 251.8749 254.7946 255.5544 256.347 257.1454 257.2243 256.2668 253.1491 250.0173 248.9457 250.3497 251.5187 252.7394 254.0047 255.38 255.6528 255.2974 254.7569 253.5294 251.4768 250.6539 251.9253 253.2995 254.4744 257.001 258.6403 259.3501 260.4492 261.1081 263.6736 264.1192 263.3023 261.4237 258.6384 255.1571 251.7703 249.7252 244.6884 235.9428 235.3523 234.4324 234.632 235.0968 233.1031 236.1063 235.0848 234.8664 234.5076 234.4328 234.187 234.1314 234.6006 234.8682 234.8369 234.6834 234.5059 234.1204 233.8506 233.6069 233.3245 233.5865 233.8869 234.103 234.7084 235.7569 236.4044 236.7058 237.1119 237.5425 238.1684 238.689 239.6212 240.7454 242.3996 244.1865 244.2579 247.6213 249.4783 252.304 254.7694 256.6168 257.0355 256.3326 255.6899 254.4479 255.0973 256.1254 257.4461 258.8965 260.0154 261.9405 263.4551 264.8697 267.2059 268.2691 269.3191 269.9326 269.4899 268.7559 267.7133 265.7031 263.7575 262.0623 260.5334 258.4047 256.0093 253.3201 252.1196 251.2673 252.7315 253.051 250.2933 249.6965 251.8262 252.9929 254.0994 255.2836 256.1765 256.5978 258.503 265.1009 266.9514 269.497 271.6703 273.8634 273.5525 273.8653 274.6975 276.1412 279.0792 280.0479 280.7407 280.5259 279.3758 277.776 275.483 273.9915 271.9999 268.4623 267.1448 265.0074 263.107 263.7238 262.276 262.9626 264.4208 264.6714 266.7786 268.4949 268.6421 269.2347 270.5766 271.0347 270.7861 270.3509 268.4001 261.9608 259.5906 256.1833 253.6443 252.0531 251.2998 -9999 +-9999 305.9694 306.7397 310.3952 311.1501 312.808 314.1584 315.1117 315.9055 315.3814 313.5007 311.4838 305.7764 304.4278 301.7588 299.8256 299.5614 298.6312 297.7032 296.2365 294.8535 294.0198 296.3075 296.821 296.6321 296.3657 297.0825 297.1093 296.8566 296.1577 293.2968 291.8246 291.6348 289.6413 287.0347 284.742 283.676 282.1166 281.6462 281.3685 280.4984 279.6255 279.962 280.0914 280.0452 280.171 279.7083 281.2586 282.3718 284.3963 281.303 275.922 277.271 278.0818 278.593 278.6512 278.9577 280.4533 280.3285 279.7376 278.4051 277.8001 278.1451 277.7669 277.5056 277.2859 277.5217 278.2926 278.5986 278.744 278.8603 279.3224 279.4811 281.367 280.6768 280.2122 282.5876 287.1898 289.8443 291.3564 291.3849 291.8156 293.4397 296.0367 297.8886 299.6877 301.7567 301.8096 301.3308 300.6306 301.1492 301.6557 302.9691 305.0181 306.6236 309.9178 310.2287 310.3015 309.7435 309.1855 309.2787 309.9094 310.0634 310.6959 314.666 316.5533 318.2777 319.1333 319.5801 319.35 318.425 317.1941 316.621 316.1954 315.0432 313.7023 312.4308 311.5524 310.2833 309.7415 308.6209 307.8767 306.3629 305.2304 304.3005 302.8232 301.0906 300.647 300.3958 300.1978 299.7859 299.1979 299.0005 298.7268 298.3897 298.0982 297.8633 297.7475 297.3339 296.8114 294.6966 294.2312 293.6147 291.7298 288.6483 285.9022 283.9983 281.6844 280.4029 278.8417 280.5816 283.2092 285.588 286.9002 287.0585 287.0429 286.6493 285.9537 287.1373 289.9476 291.0644 291.5194 292.2476 292.7406 293.5263 294.2983 295.1137 295.8548 295.685 294.3764 293.0961 291.1733 289.5897 288.9838 288.6259 287.4941 286.8965 288.7645 287.0844 283.1842 278.132 274.491 278.3494 280.9681 283.6733 286.0882 285.6455 284.2847 281.3383 277.7182 275.8153 277.5457 278.2292 276.648 273.8646 276.9886 278.3891 278.7506 278.9805 277.7153 275.0851 272.4405 268.9119 264.7768 254.9878 253.2547 249.4167 249.6833 250.2461 250.7775 251.9275 256.2893 261.0354 262.756 262.0294 262.9255 266.8793 269.008 269.978 273.9781 277.3036 277.8456 277.7622 282.6894 284.5727 286.1859 287.6842 288.9203 289.0802 288.5305 287.7044 286.5281 284.1564 283.7588 283.76 283.7889 283.0088 282.3608 281.8247 281.0113 279.7737 277.2935 276.4373 276.1046 275.5959 275.0547 275.1184 276.7921 278.3084 278.0888 279.4391 279.8767 280.0102 280.3201 280.9414 280.6863 280.2519 279.5272 279.4977 278.5533 278.0995 278.3583 278.8006 278.2228 274.1054 270.7227 272.6269 269.9345 268.9777 267.5187 266.2824 265.116 264.059 262.7116 261.3368 260.5141 259.4311 257.7773 258.8039 258.3768 258.6007 259.1389 258.1124 256.5643 255.9584 254.5565 251.1913 249.4751 246.4514 244.2928 240.9051 240.2554 241.1513 240.6437 240.525 240.2076 239.0526 238.7356 238.6349 238.6245 238.1359 238.312 237.6474 236.7052 236.5302 236.1394 235.9876 235.861 235.765 235.7508 235.6752 235.6118 235.592 235.7937 235.9659 237.4009 240.7424 243.102 244.7817 246.8665 247.8762 247.1298 246.405 248.4199 248.3773 248.2831 247.3938 246.1819 245.5173 246.325 247.1862 249.4145 250.4859 247.7486 247.1103 247.4928 247.168 245.645 248.3752 250.3163 251.8749 254.7946 255.5544 256.347 257.1454 257.2243 256.2668 253.1491 250.0173 248.9457 250.3497 251.5187 252.7394 254.0047 255.38 255.6528 255.2974 254.7569 253.5294 250.5345 250.6539 251.9253 253.2995 254.4744 255.8313 256.7017 257.3445 258.9997 260.243 262.8161 263.5625 262.4333 260.8185 258.7222 255.6216 251.3484 245.433 242.2288 235.8463 235.2993 234.8577 234.5334 235.2089 233.0856 235.6937 235.6885 235.224 234.7723 234.278 234.0965 233.8706 234.2961 234.5984 234.4435 234.2228 234.0426 233.9787 233.8501 233.6711 233.1134 233.5917 233.6849 234.1087 234.4394 235.0702 235.4073 236.2496 237.0666 237.5368 238.1107 238.8909 239.5011 240.8795 242.6553 245.1375 246.569 249.5273 252.3017 255.1449 257.5401 259.4294 260.2845 259.3856 259.176 258.7585 257.5201 257.4249 258.1835 258.9908 260.5604 262.0896 263.6678 264.6428 267.0153 267.9816 268.9791 269.3379 268.9159 267.9068 266.9177 265.2217 263.2256 261.4372 260.1965 258.1516 255.7513 252.8219 251.257 250.5627 249.9549 249.8469 248.6572 251.5333 252.8474 255.2314 257.308 259.7883 262.0071 263.0701 264.5595 267.7384 269.6407 271.2959 273.4981 275.5773 275.7243 276.1967 277.4994 278.8589 281.0644 281.7145 282.2939 281.3434 279.743 278.4335 276.7195 274.3477 272.1006 269.4312 267.9448 265.5511 262.5385 261.32 261.081 260.1299 261.1383 263.3542 265.4541 265.9547 266.5562 267.7982 268.158 269.3334 269.6995 269.0101 267.2744 263.7153 261.9344 258.8322 256.1425 251.2179 245.418 -9999 +-9999 305.9694 306.7397 310.3952 311.1501 312.808 314.1584 315.1117 315.9055 315.3814 314.0865 312.0633 304.7338 302.4029 302.1639 302.5755 301.7237 301.1964 301.2812 301.4304 299.7553 297.2853 295.1935 292.3337 293.6254 293.8246 293.998 294.3196 294.2026 293.9791 293.5558 290.1764 288.1046 286.9958 285.1071 284.8839 287.7665 285.8867 285.6728 286.5758 286.3144 288.7353 287.3551 285.7169 283.5788 283.1683 284.071 282.9377 284.6168 284.3046 279.0284 277.3326 277.1389 277.5943 277.3145 277.431 278.4356 280.0188 279.0266 278.193 276.971 276.6983 276.655 277.3562 277.5919 277.8389 278.1105 278.3653 278.5796 279.0934 279.5996 280.2359 280.9986 281.5876 282.664 282.9696 284.0493 286.5583 289.2621 290.7032 291.5894 292.7122 294.2022 296.2676 298.1148 301.197 302.2488 302.7847 302.7979 302.4418 303.7533 303.4182 303.4874 304.4192 306.4352 310.4173 311.0624 311.4748 311.4435 311.0197 311.593 313.0699 313.722 313.62 315.3786 316.7492 317.9854 318.8516 319.0182 318.649 317.5573 316.233 315.555 314.5261 313.8224 313.5572 312.4191 311.3873 309.7447 309.087 308.1074 307.1688 305.5886 305.4505 304.7029 303.6571 302.6954 301.953 301.4249 300.8452 300.0471 299.0289 298.8788 298.5961 298.4619 298.4274 298.5699 298.4133 298.0479 297.5294 295.7275 295.2596 294.2011 291.8799 287.2766 287.8836 285.3552 283.5453 281.1031 278.453 278.5457 280.4304 282.6683 283.5826 283.9313 284.2252 284.2159 285.0062 287.1159 289.5345 290.3791 290.8912 291.3798 292.1171 293.13 293.6255 294.5117 295.7325 295.8959 294.8387 293.5499 292.2413 290.8122 291.0905 290.9382 290.5784 290.1259 289.7049 286.4267 281.9379 277.3111 275.6653 279.1696 282.8506 284.9121 286.9437 287.6716 285.8332 282.8595 279.8636 278.5648 279.6151 279.5449 277.5399 276.0315 278.5738 279.563 279.8958 278.8464 277.1671 275.1763 272.6247 268.666 264.2305 255.8881 251.8662 248.9868 249.9667 250.1576 251.6635 252.9338 254.686 259.1029 259.9 265.4011 271.3843 276.5643 277.6118 275.8052 277.9785 280.8553 281.4285 281.317 283.7814 285.7663 286.988 288.4725 289.0529 288.4525 287.9605 286.9944 285.8401 283.2117 282.7778 282.633 282.6685 282.2993 281.6588 281.5456 281.5299 281.0601 279.4968 278.2299 277.8324 276.878 276.373 277.5945 278.6844 279.6713 279.7274 281.0365 282.0047 282.222 281.9172 281.8618 281.7742 281.1208 280.8795 281.2825 280.8662 280.4155 279.9421 280.1841 279.32 277.4768 276.23 275.7173 273.1823 271.4799 269.9712 269.1046 268.086 266.8228 265.1799 264.0724 263.6234 262.6965 262.5334 262.1614 261.7683 261.6148 261.6582 260.275 259.2755 257.8911 256.7249 253.4622 251.0167 248.4957 245.5435 242.4041 240.7024 240.6245 240.3183 240.2935 240.2076 239.0526 238.7356 238.6349 238.6245 238.1359 238.312 237.6474 236.7052 236.5302 236.1394 235.9876 235.861 235.765 235.7508 235.6752 235.6118 235.592 235.7937 235.9659 237.4009 240.7424 243.102 244.7817 246.8665 247.8762 247.1298 246.405 248.4199 248.3773 248.2831 247.3938 246.1819 245.5173 245.7557 246.4284 248.7254 247.5614 246.0733 244.8505 244.3181 244.7502 249.076 250.4429 251.9103 253.1985 255.2924 255.8481 256.2342 256.3448 256.2029 255.2879 253.7386 251.1343 249.0166 250.0183 251.019 251.7133 252.5822 253.7901 254.4055 254.5467 254.3045 253.9335 250.9047 249.5088 250.2033 251.2843 252.5411 254.0433 254.9639 256.4099 258.0279 259.7617 262.2969 262.9178 262.0547 260.0788 258.1866 255.5329 251.2276 245.5345 240.1037 235.549 235.0128 235.147 234.2598 235.2413 233.0412 235.2573 235.2398 235.093 234.6817 234.3721 234.1671 233.8329 234.1061 234.6596 234.4933 234.2549 233.9952 233.8401 233.6763 233.4456 233.2805 233.2694 233.4758 233.6151 233.7168 233.7219 234.2202 235.1729 235.5881 236.1872 236.7719 237.7883 238.587 239.9924 241.5967 245.4965 247.4084 249.9107 252.6455 255.6179 258.2611 260.3216 261.9432 262.571 261.8243 262.0005 262.1028 261.7495 261.2713 261.0562 261.4768 262.6445 263.7426 264.4081 266.0127 267.143 267.6011 268.1032 267.9995 266.9444 265.7587 264.123 262.8406 261.5493 260.3623 258.5164 256.0359 253.0239 250.9256 249.764 248.7198 248.577 250.7962 252.5849 255.5145 258.3239 261.2622 263.682 265.272 266.7356 268.1745 270.8218 272.1687 273.6121 275.1122 276.2711 277.3845 278.5118 279.6426 280.637 282.7204 283.8097 284.1479 283.8399 282.6105 279.534 277.6117 274.7251 272.3059 269.6284 267.4782 264.8996 262.1239 261.2771 255.6881 257.8008 258.0302 260.5984 263.4613 263.6048 264.5527 265.0616 265.9383 267.3174 267.4648 267.5132 266.5888 262.8725 260.9061 259.0308 256.7856 254.8528 251.7196 -9999 +-9999 309.1237 310.5744 309.4959 309.9134 311.5105 313.2528 314.8082 315.4425 315.8918 315.1628 313.5306 308.721 307.8371 306.6458 306.8742 306.6297 306.3163 305.8993 305.3097 303.0784 302.0173 297.3826 295.3232 293.1843 291.5296 289.4351 289.4062 290.4063 290.0307 290.4829 288.5404 286.5249 284.2937 287.7826 290.8183 291.0108 288.0272 290.3608 292.7557 294.0334 292.0336 288.9958 287.1084 283.0714 282.5658 282.8202 285.0525 286.4057 284.6727 280.1935 277.8598 276.7575 277.3375 277.264 277.2472 278.3941 279.1084 278.604 276.8649 276.1848 276.9202 277.3386 279.1405 279.7604 280.4164 281.9091 282.9198 283.5573 282.6075 282.8695 282.9809 283.3051 284.2068 285.6509 285.4209 283.4853 284.5388 287.5203 289.1852 290.689 291.9835 293.2774 294.9586 296.7057 300.291 301.6337 302.4658 303.4641 303.6566 304.3329 305.0101 305.6319 305.3956 306.9068 310.3515 311.2171 312.1897 312.6981 312.877 313.1938 314.9039 315.7817 315.7551 316.1823 317.3106 317.9284 318.0747 318.2593 317.2932 316.3518 315.6736 314.4461 312.9081 312.5981 312.3424 311.9375 310.993 309.8429 308.5771 307.2113 306.1027 304.3473 304.8167 304.7184 304.2627 303.4859 302.8586 301.8557 300.7467 299.7087 298.0028 297.7296 297.3856 297.4457 297.6745 297.7999 297.9399 298.0392 297.6646 296.2885 295.6651 294.0533 292.1506 288.4902 288.0281 288.5927 287.9903 282.589 279.5262 277.9051 278.4943 279.8283 281.0393 281.6012 282.7712 283.6275 285.235 287.0014 289.0835 289.6773 290.6916 290.8983 291.4554 291.9623 293.1263 294.1408 294.9455 295.4 295.4261 294.4905 293.2592 292.6923 292.7531 292.69 292.2964 292.1165 289.0203 283.6416 278.7227 277.8476 277.9416 280.5886 283.9088 286.4492 288.5505 289.7761 287.1564 283.959 282.4319 282.2515 281.6024 280.5156 278.6121 276.4547 279.5561 279.8237 278.9289 277.4355 275.8338 273.8818 271.2865 267.9338 264.3275 257.4993 253.2759 248.9669 249.7357 249.9371 250.8372 253.1991 259.6045 265.774 267.8242 270.8551 274.8697 278.6648 279.2577 279.2861 280.1215 282.1358 283.4308 284.05 285.1158 286.3929 287.4476 288.3048 288.1774 287.7138 287.0171 286.189 284.9812 283.1645 282.3588 282.0059 281.6869 281.0865 280.368 279.8224 279.9391 280.3557 280.6052 279.9808 279.6292 278.7605 277.8584 278.1212 279.4341 280.3048 280.7757 282.2964 283.1107 283.6462 283.8419 283.7742 283.3998 283.0659 282.8072 282.7332 282.5861 282.1087 281.8752 281.7251 279.32 277.4768 276.23 275.7173 273.1823 271.4799 269.9712 269.1046 268.086 266.8228 265.1799 264.0724 263.6234 262.6965 262.5334 262.1614 261.7683 261.6148 261.6582 260.275 259.2755 257.8911 256.7249 253.4622 251.0167 248.4957 245.5435 242.4041 240.7024 240.6245 240.3183 240.2935 239.1963 238.2736 238.1941 237.8848 238.3729 238.3188 238.1044 237.6235 237.2352 236.9852 236.6126 236.2972 236.1094 236 235.8023 235.678 235.4647 235.5641 235.5323 236.5231 238.6096 240.7648 242.2785 243.859 244.9445 246.085 245.1387 245.1296 247.6487 247.843 247.8103 247.8163 246.7747 245.1268 245.2218 246.7262 248.2322 244.6153 242.7046 243.3946 247.6308 249.1581 250.3408 251.7251 252.9936 253.8377 255.3018 255.4432 255.3096 255.2085 255.214 254.7184 253.5695 251.3835 248.4713 249.3369 250.1765 250.805 251.423 252.7254 253.4464 253.6046 253.6474 253.512 251.7754 248.8632 248.3917 248.833 250.7525 252.4695 254.037 256.0156 257.8464 259.5416 262.017 261.7073 260.5344 258.3947 256.1713 253.6563 249.1858 242.8671 237.2855 234.996 235.1184 235.0232 234.3082 235.2454 233.0813 235.4394 235.2491 235.2567 234.4215 234.3832 234.1992 233.926 233.8919 234.6912 234.8422 234.4286 233.9872 233.7217 233.5406 233.2328 233.4256 232.9496 233.4465 233.2994 233.2317 233.8282 234.3812 234.7485 235.3217 235.8324 236.9709 237.9362 238.7222 240.0868 241.5745 245.572 247.941 249.6167 251.7118 254.0477 257.0587 259.7286 262.1212 263.724 264.5195 264.5175 264.6342 263.9866 263.23 263.138 262.7565 262.5045 262.7051 263.9679 264.8663 265.8105 266.347 266.6183 266.3288 265.5851 264.6407 263.2272 262.0302 260.8968 259.9369 258.4574 256.7976 254.4853 251.3117 248.8269 248.0527 247.7137 251.6482 254.7931 257.755 261.0821 262.7683 265.4701 267.1972 269.2872 270.9128 272.8309 273.9194 275.3834 277.2448 278.9457 279.8208 280.2659 280.96 282.5881 285.0603 286.1727 286.1749 285.0489 283.3089 280.7788 277.9189 275.2053 273.5171 269.7963 267.3585 264.5599 262.5899 260.6372 258.9687 255.0528 255.8231 258.475 261.4014 262.2016 262.8784 263.5284 264.4623 264.9122 265.7572 266.1635 265.5498 261.5686 259.135 257.4129 255.6273 255.3086 254.3234 -9999 +-9999 310.7705 311.7873 312.2172 311.3351 311.3448 312.6515 314.182 314.9593 315.784 315.6983 314.9585 311.638 310.3158 309.39 309.1459 308.7917 308.1784 307.3889 307.1819 306.4208 302.5594 300.4642 299.7703 298.199 297.0155 295.9098 292.0723 287.5106 287.1678 286.455 285.4632 287.8494 290.4508 292.1339 292.6371 290.9976 289.4485 291.3044 293.6422 295.5766 293.9027 292.4169 289.4054 284.5871 283.1654 283.1022 285.5504 287.7813 288.0719 285.907 279.7439 276.8452 276.4695 276.8275 277.1675 277.2279 277.9412 277.8856 276.6093 276.6965 277.0027 279.7413 282.2886 284.2657 285.7742 286.0963 287.4887 286.6427 286.4635 285.558 285.413 285.9121 286.1482 286.9629 287.9435 287.2439 285.3985 285.3471 286.5423 288.2641 289.533 291.0655 292.5288 294.438 298.9473 300.6863 302.0323 303.2195 304.1516 304.9593 305.6696 306.1279 306.6183 307.268 308.8712 310.4475 311.6967 312.9147 314.2798 314.6628 316.0406 317.0643 317.3731 317.1078 317.5787 317.3874 317.4102 317.0957 316.2286 315.2737 314.0341 312.6213 311.0001 310.77 310.7323 310.8554 310.7694 309.9488 308.9487 307.1536 305.9768 303.8293 303.6141 304.2579 303.996 303.5812 302.9406 301.9052 300.5411 299.317 297.561 296.7164 295.8871 295.9846 296.5748 296.523 296.9714 297.3624 297.1098 295.9891 295.5502 294.2176 292.3776 290.3726 290.8033 292.1973 290.2755 286.2608 280.678 279.043 277.8672 278.9424 280.3083 281.7166 282.0157 282.8134 284.3663 287.0277 288.3015 289.447 289.8073 289.5318 290.3009 291.0622 292.1245 293.067 293.8037 294.1622 294.5274 294.802 294.9979 294.1631 294.1827 294.304 293.7151 292.4826 288.023 283.438 280.5648 280.6049 279.4977 281.0841 285.1977 287.9994 290.2721 290.9013 288.6074 285.9273 284.9595 283.3705 283.534 282.0236 280.0398 278.1728 280.5581 279.4658 278.0638 276.1054 274.4618 272.3647 270.0125 266.9046 263.4889 257.3042 253.4659 248.3477 249.666 249.7608 249.8992 253.3461 261.1145 267.0298 271.2333 272.6948 275.6516 277.2789 277.7534 278.9148 280.9781 282.8761 284.2351 285.9101 286.5304 287.1435 287.4336 287.325 287.1354 286.6606 286.3 285.076 284.9812 283.1645 282.3588 282.0059 281.6869 281.0865 280.368 279.8224 279.9391 280.3557 280.6052 279.9808 279.6292 278.7605 277.8584 278.1212 279.4341 280.3048 280.7757 282.2964 283.1107 283.6462 283.8419 283.7742 283.3998 283.0659 282.8072 282.7332 282.5861 282.1087 281.8752 281.7251 281.1219 279.6267 278.2833 277.5822 276.6226 273.3966 272.1296 271.3188 269.8285 268.4989 267.3008 266.4105 265.9347 265.6647 265.0494 264.9902 264.1135 263.7899 263.6106 262.5603 260.9032 259.3838 257.7349 253.1618 250.7082 247.7246 244.2362 240.3891 241.2657 240.8279 239.8121 240.3301 239.6684 241.9337 242.6465 242.6712 241.4609 240.1972 238.0049 238.3127 237.7944 237.7233 236.8125 236.4814 236.3143 236.1565 235.9717 235.7278 235.6691 235.5708 235.6921 236.0139 236.9068 238.8062 239.4802 240.1134 241.3816 242.0153 242.1977 242.9306 246.0659 246.548 246.6357 247.1006 247.2265 244.8049 245.5326 247.39 247.0598 242.963 244.0305 247.3651 248.7726 250.0015 251.5179 252.631 253.543 254.4251 254.4518 254.4221 254.2911 254.1791 254.0374 253.6357 252.7024 250.8188 248.1223 248.4718 249.4452 249.6934 250.6071 251.5744 252.4337 253.1966 253.1343 252.7761 251.6827 248.744 247.1953 248.115 249.7433 251.6829 253.5969 255.8071 257.6023 259.1232 260.9621 259.9153 257.6602 255.4816 252.5563 248.4145 245.0867 239.7936 235.8142 235.2224 235.1758 234.6798 234.4445 235.0267 233.1547 235.2482 234.6849 234.857 234.5102 234.4402 234.2983 233.9897 233.4459 234.4544 234.9304 234.2899 234.0377 233.9548 233.8398 233.3907 233.1601 232.8061 233.1266 233.0496 233.2564 233.5101 234.9254 235.3904 235.4231 235.6634 236.3171 237.6058 238.0845 239.2551 241.0153 244.9734 247.2635 249.3707 251.0179 253.3612 256.274 258.5787 261.2072 263.4065 265.8498 266.0092 265.6714 264.9623 264.4616 263.6364 262.038 261.4383 261.5793 262.6225 263.4583 264.0143 264.7925 265.1539 264.6568 264.1248 263.1095 261.8832 261.1754 260.1305 259.0528 257.6716 255.8408 253.7521 250.5988 248.7256 247.7744 248.3681 253.8601 257.4147 260.6275 262.7985 265.2354 267.4085 269.3476 271.43 272.9957 275.0391 276.4691 277.4022 278.9071 280.0619 280.6497 282.0373 282.6328 283.7011 286.7095 287.4478 287.3621 285.4079 283.0603 280.559 278.0756 275.5565 273.8432 269.1148 267.2159 265.9066 263.2097 260.7892 259.6536 257.2473 255.5898 254.9617 259.6835 260.8478 261.3777 261.8101 261.9211 261.959 262.3361 262.7247 263.0449 259.8728 257.3776 254.8159 252.3585 251.115 252.012 -9999 +-9999 312.6299 313.4929 314.0008 312.6136 311.7597 312.4272 313.801 314.9612 315.572 316.0872 315.5674 313.3029 312.1053 311.1278 310.6664 310.3638 309.8363 309.2166 308.0363 305.3814 303.5045 302.9352 301.7647 300.5312 299.0867 296.3319 292.942 289.8503 287.6125 288.4998 288.9083 291.7349 293.6588 294.3279 293.8905 292.5762 291.8456 292.564 294.018 296.8221 296.7003 294.9777 291.5222 287.0632 285.3351 285.4064 288.2387 290.3857 290.9493 288.3549 281.941 277.0387 276.8865 277.0145 276.6877 276.4357 275.1733 276.7133 276.3455 275.7587 276.5933 277.9145 280.9314 284.6795 287.6259 289.1703 290.051 290.0383 290.1575 289.1956 288.5533 288.8047 289.1242 289.1346 289.5475 290.192 289.8053 288.29 287.0948 287.3751 288.7618 290.2747 292.0227 294.5074 299.4845 300.6252 301.7406 302.6856 303.5297 304.4154 305.3316 305.9215 306.5864 307.5175 309.7551 311.2866 312.2649 313.8907 314.7255 315.5624 316.4193 317.1676 317.515 317.4482 317.3752 316.6505 316.4669 315.9073 315.4124 314.7963 313.3163 311.4525 309.3461 309.4179 309.2993 309.4536 310.0041 309.8931 309.1267 307.3857 306.1873 303.3705 302.2442 302.9441 303.2822 302.8454 302.567 301.603 300.5033 299.3941 298.0827 296.9632 295.337 293.771 294.1848 294.7533 296.0962 296.665 296.2798 294.9048 294.598 293.8205 291.492 292.1349 292.9714 293.1197 291.2482 288.4327 283.875 280.6837 278.3338 276.906 277.9156 278.7993 280.568 282.0348 283.4514 286.5564 287.8507 288.9523 288.8728 287.7878 288.5196 290.0691 291.001 291.5486 292.0551 292.9419 293.5962 294.4366 294.9664 295.4602 295.3887 295.5859 294.6422 293.3406 289.4206 286.4482 283.1004 282.8596 282.9185 284.449 287.4375 289.9908 292.442 291.9562 290.2538 288.0151 287.0757 286.1024 284.6196 282.7967 281.017 280.0511 280.6197 278.8946 276.8709 274.6812 272.8798 272.3647 270.0125 266.9046 263.4889 257.3042 253.4659 248.3477 249.666 249.7608 249.8992 253.3461 261.1145 267.0298 271.2333 272.6948 275.6516 277.2789 277.7534 278.9148 280.9781 282.8761 284.2351 285.9101 286.5304 287.1435 287.4336 287.325 287.1354 286.6606 286.3 285.076 283.6471 282.7487 282.0479 281.7792 281.3899 280.3108 279.028 278.7382 278.7979 278.6473 279.4315 280.1129 280.5011 280.2252 279.2899 278.6734 279.7025 281.2437 281.6917 282.6255 283.8565 284.9113 285.4656 285.5507 285.4502 285.0966 284.806 284.6225 284.4045 284.1343 283.7285 283.1617 283.1463 281.4821 279.8466 278.9499 278.2595 275.3564 274.0266 272.6007 271.1164 269.8755 269.2451 268.672 268.1933 268.0733 267.0726 266.6105 265.8983 265.2365 264.2327 263.0363 261.5074 259.5814 257.5593 251.8081 249.3076 245.6876 242.6219 243.183 244.8838 244.7765 243.5998 243.4136 241.5486 243.7301 244.8449 245.1026 245.0654 246.0773 247.2277 242.492 237.6328 237.8457 237.419 237.0277 236.4751 236.3089 236.0791 235.8651 235.6098 235.684 236.3367 236.4124 236.2182 236.9527 237.3092 238.0346 238.235 238.6507 239.6752 239.8733 245.104 245.6908 245.6158 245.9829 245.2919 244.2597 246.4606 247.6954 246.4453 241.0712 245.9684 247.7561 249.171 250.5987 251.9051 252.9267 253.9664 254.634 253.3451 253.1325 253.2052 253.1198 252.94 252.4645 251.8659 250.7424 247.806 247.7487 248.6971 248.5067 249.4404 250.6483 251.6444 252.7434 252.4722 252.154 251.0576 248.6367 246.7727 247.5307 249.6047 251.4163 252.9275 255.0076 256.867 258.9409 259.212 257.3135 254.6466 251.7253 249.5644 245.3111 241.5975 236.9093 235.1165 235.0461 234.6908 234.8529 234.7723 234.6945 233.2672 233.1925 235.0182 234.9485 234.5742 234.5694 234.3214 234.16 233.6941 234.5261 234.9126 234.2538 234.0218 234.2462 234.1114 233.7461 233.4274 233.0231 232.8441 233.2555 233.5178 233.608 234.9568 235.4863 235.2278 235.5638 236.2011 237.3491 237.8563 239.1157 240.4898 244.5145 246.1768 248.7251 251.1561 253.3826 255.1292 258.559 260.4055 261.8602 264.0131 264.6274 264.0898 263.296 262.7237 262.1287 260.3504 259.9347 260.1302 260.8216 261.9477 262.4986 262.8109 263.1482 262.5407 262.3755 261.7823 260.7741 260.1685 259.2166 258.1552 256.3987 254.6598 252.0492 249.4162 247.6294 246.7225 250.1067 256.6863 259.3166 261.4998 265.0447 267.2318 269.3833 271.2942 272.9976 274.3942 276.9348 278.0486 278.7454 279.5082 279.8426 280.5271 281.9536 283.5063 284.5714 287.4481 288.5332 288.2145 285.8238 283.2775 280.4549 278.7626 276.3029 274.1831 269.6359 270.0552 269.0583 266.0701 263.7051 262.2794 260.2156 257.6217 252.8046 257.8443 259.4538 260.414 260.951 261.5221 260.8328 260.439 260.2907 260.2888 257.4225 253.884 250.1704 246.5216 246.7752 244.6948 -9999 +-9999 314.1173 315.4375 315.2977 314.3361 313.2655 312.8851 313.3622 314.1796 315.1721 316.0182 316.0545 314.6383 313.1979 312.4045 312.0407 311.3968 310.5141 309.8115 308.1852 306.3908 304.3917 303.0651 301.4405 299.8478 297.481 294.2478 291.2454 289.5045 289.1402 291.9717 290.3401 292.3466 294.9704 295.8095 295.5566 295.0533 295.142 295.4613 296.5827 298.0129 298.7265 297.6272 294.7728 293.0767 291.981 291.7654 292.0961 292.8007 294.051 292.8439 288.6045 281.2771 277.6155 276.8914 276.6516 276.8191 276.8814 275.453 276.1857 276.2178 275.3603 276.4059 278.7006 284.0089 287.5616 290.074 291.4823 292.1646 292.2262 291.75 291.7001 291.235 291.1058 291.3904 292.0807 292.8644 291.7348 291.5373 290.0167 288.5877 288.357 292.6203 294.3532 295.0848 298.9681 300.1951 300.9303 301.1387 301.7357 302.9044 304.8281 305.7669 306.2347 307.993 309.9262 311.235 312.647 313.7763 314.406 314.8456 315.5539 316.2388 316.7294 316.802 316.479 316.055 315.6174 314.8499 314.5154 314.0415 312.647 310.8448 306.9312 307.2126 307.4964 308.2758 308.9273 309.2554 308.8754 307.5053 306.1989 302.9499 301.6141 301.2661 301.6472 301.953 301.7387 300.9147 300.0626 298.9405 297.8377 297.0288 295.9142 294.4503 292.4099 293.193 295.1994 295.8918 295.4786 293.8423 293.4351 293.3539 291.4198 293.788 294.3093 294.4596 292.5665 290.322 287.176 284.1836 280.1249 277.923 276.9185 276.5792 278.9065 280.8656 282.4468 286.0528 287.4901 287.8708 287.4882 286.2325 287.2197 288.5917 289.5767 289.8963 290.644 292.4156 293.1191 294.4366 294.9664 295.4602 295.3887 295.5859 294.6422 293.3406 289.4206 286.4482 283.1004 282.8596 282.9185 284.449 287.4375 289.9908 292.442 291.9562 290.2538 288.0151 287.0757 286.1024 284.6196 282.7967 281.017 280.0511 280.6197 278.8946 276.8709 274.6812 272.8798 270.2733 267.8006 265.7991 263.1953 256.4672 252.8223 247.7534 249.4954 249.5021 249.8532 254.6841 261.2765 266.3376 269.2021 271.0833 273.493 274.8909 277.3958 280.1587 282.0109 283.5538 285.0053 286.9478 287.5156 287.4849 287.0865 286.2734 286.3202 285.5927 285.7766 283.9185 281.9103 281.8198 281.7073 281.4995 280.9776 279.8789 278.5932 278.1054 276.9987 276.976 277.7692 278.6853 280.0485 280.853 280.8859 280.659 280.6454 280.8304 281.7165 283.1951 284.4468 285.5006 286.1714 286.7151 286.7017 286.6704 285.9615 285.8219 285.6076 285.2651 284.7561 284.6075 284.2349 283.6407 282.3434 280.834 279.3675 277.038 275.3755 273.4549 272.2442 271.2231 270.709 270.5922 270.4095 269.9117 268.4973 267.5936 266.597 265.1999 263.6668 262.1133 260.2672 258.7847 255.881 248.422 246.0197 244.2598 243.1875 245.9754 247.0616 246.4888 245.5192 244.9865 243.0112 246.6666 247.3135 248.3053 249.1054 250.4526 253.6098 250.0042 246.3482 241.8112 237.3497 236.7596 236.9933 236.4944 236.1583 235.9791 235.7783 235.7078 236.0263 236.6396 235.3211 236.4338 236.2532 236.9593 237.3631 237.8618 238.4225 239.2178 244.5405 245.0479 244.9284 244.9544 244.0619 244.434 246.6774 247.3805 246.459 241.0262 246.2572 247.9588 249.2549 250.4904 251.8275 252.4157 253.3323 253.6227 252.3627 251.7412 251.6461 251.6853 251.625 251.0149 251.0501 249.8521 247.3839 247.157 247.7941 247.3365 248.0831 249.4592 250.9333 251.8073 251.69 251.4218 250.4438 247.7805 246.5033 245.9984 247.8835 250.0927 252.0076 253.6016 255.2089 256.4798 256.5863 255.0721 250.9153 248.2391 245.337 241.6149 237.4389 235.5236 234.8222 234.5239 234.9393 234.992 234.8864 234.7301 233.9577 233.0466 233.0257 235.0734 234.5523 234.4784 234.4294 234.464 233.9684 233.8981 234.353 233.5205 232.7543 233.6133 234.1563 234.0034 233.635 233.221 232.8468 233.1115 233.2799 233.4953 233.898 234.3072 235.1327 235.6842 235.8731 236.879 237.7594 239.3774 240.9105 243.383 245.5153 247.7302 249.8149 252.0105 254.174 256.4445 258.5056 260.3694 262.5724 262.6873 262.5328 262.3278 261.3824 260.7579 259.6899 259.3206 258.9107 259.2118 259.6179 260.5087 261.4232 261.4307 261.1936 261.0386 260.5999 259.5285 258.785 258.6175 257.4037 255.6041 253.1869 250.4875 248.3493 246.9391 248.8431 252.3171 257.8045 260.0328 263.0467 265.4196 267.7718 269.8891 271.678 273.1161 274.2701 276.3746 277.0827 276.9492 277.5011 278.199 279.4918 281.1398 283.1482 284.8333 288.0078 288.8018 288.076 285.9689 283.4285 280.4309 278.8496 276.8092 273.6965 272.5373 271.57 269.0044 267.4734 266.2922 265.0033 263.072 259.596 256.7421 255.0075 257.8028 258.7491 259.531 261.1133 261.7936 260.5676 259.7991 258.4095 257.0346 252.6668 247.1689 246.4593 246.4973 246.8758 -9999 +-9999 314.1927 315.4881 315.6969 315.315 314.5716 313.311 313.1786 314.1175 315.2001 315.9107 316.0004 315.1396 314.218 313.4977 312.6774 311.5925 310.132 308.9588 307.6862 306.1326 303.4059 301.6884 300.0573 297.3311 294.4651 292.299 290.3368 291.0262 290.7399 291.2332 293.7766 291.4339 295.4414 297.6341 297.8799 298.0832 298.437 298.781 299.229 299.1868 300.1684 299.5546 297.9495 297.0191 296.0958 295.5669 295.5821 295.8384 296.5622 295.8339 292.749 288.8281 283.1425 278.761 277.4204 276.8917 276.6896 276.6221 276.6174 274.8485 276.8677 276.2789 276.8955 282.7514 286.7639 289.9517 293.0812 293.5022 293.9059 293.9699 293.9167 293.7467 293.2741 293.539 294.7283 295.3414 294.5151 294.4731 293.6251 291.5739 289.3445 291.3095 293.7207 294.9268 297.2865 298.6387 298.7872 299.851 301.674 303.5437 305.3181 306.2127 306.7877 308.3592 309.4599 310.7329 312.0693 312.9781 313.2096 313.5551 314.2866 315.0912 315.4626 315.9491 315.7698 315.3004 314.8312 313.6969 313.3422 312.8267 311.6503 309.9178 305.4225 305.266 305.6031 306.5793 307.5428 308.1114 307.7493 306.618 305.4814 302.6205 301.275 299.991 299.5146 300.0739 300.8022 300.4873 299.7214 297.9226 296.0716 295.9917 295.3132 294.3378 292.2347 292.3723 294.6376 295.4877 294.5732 293.8423 293.4351 293.3539 291.4198 293.788 294.3093 294.4596 292.5665 290.322 287.176 284.1836 280.1249 277.923 276.9185 276.5792 278.9065 280.8656 282.4468 286.0528 287.4901 287.8708 287.4882 286.2325 287.2197 288.5917 289.5767 289.8963 290.644 292.4156 293.1191 293.6101 294.3314 295.282 295.9106 295.9989 295.3502 293.8946 289.7512 287.1313 286.2486 286.1292 286.434 287.8564 289.491 291.5033 293.5129 292.9774 291.2711 289.0103 287.8032 286.6196 285.1235 283.821 282.7006 282.2856 280.573 278.8308 276.3026 273.7989 271.3868 269.1652 266.9315 264.2692 261.8829 257.0741 254.4925 247.6574 248.3132 248.8501 251.0143 255.1705 259.1206 262.6036 267.3769 270.1136 272.9021 275.3593 277.8091 280.3896 282.4573 283.7255 284.9061 286.5598 286.9767 285.9446 286.0971 285.2908 285.5861 284.6274 284.4958 282.2578 280.5179 280.8892 281.3814 280.6427 280.1096 278.7674 276.7798 275.1091 275.2051 275.3194 276.581 277.6959 278.7511 279.8275 280.9914 281.5076 281.2817 280.8691 281.3138 283.2722 284.3726 285.2779 286.1812 286.9853 287.6313 287.9443 287.3691 287.2255 286.6535 286.3861 285.7623 285.116 284.4481 283.7929 283.0813 281.3681 279.5214 277.4618 276.1053 274.7168 273.4747 272.6401 272.1346 271.9428 271.6921 270.6947 267.9727 266.6351 265.3315 263.9081 262.0504 259.8906 258.0765 256.3579 253.4414 245.1329 244.8003 247.4087 248.1738 247.9079 248.1054 248.1073 247.7872 246.1368 243.9998 248.2239 249.423 250.6728 251.7483 253.5857 256.0365 253.9187 251.076 247.4589 240.9847 240.7884 238.5979 237.4598 236.5583 236.6266 235.8123 235.6222 236.7941 236.6587 236.6906 236.3266 236.4802 236.7626 236.7925 237.3488 237.7008 238.829 243.7967 244.3573 244.4104 243.6703 242.7859 245.3518 246.8628 246.8455 245.4597 243.6458 246.049 247.9174 249.1309 250.0743 250.7728 251.5008 252.3136 253.0847 251.4528 250.595 250.0093 250.2058 250.0776 249.7983 249.6934 248.9077 246.6011 246.4971 246.1661 245.8354 246.9727 248.2266 249.611 250.9005 250.9407 250.6694 249.9549 248.8009 245.1757 244.2467 245.6193 248.6528 250.651 252.1729 252.988 253.0849 252.6559 250.2653 247.3333 244.3448 241.1158 238.2673 235.6205 234.7275 234.525 235.08 235.1356 235.1088 234.7125 235.1653 234.7083 235.3305 235.0929 232.8057 234.7348 234.3349 234.452 234.3776 233.9809 233.3048 233.607 233.443 233.4427 233.2319 233.784 234.013 233.894 233.2779 233.0325 233.2659 233.4514 233.3908 233.2847 233.8369 235.1819 235.5644 234.9599 235.4216 236.9692 238.4205 239.809 243.1109 244.9201 247.0257 249.2683 250.7401 252.9032 255.1611 256.8101 258.76 260.3552 259.8067 259.7473 259.6742 259.2695 258.7988 258.3496 257.8206 257.3443 257.5544 258.6607 259.1689 259.5472 259.5833 259.3234 259.128 258.7703 258.0063 257.8111 257.6653 256.3546 254.5109 252.3155 249.1345 247.1427 246.3915 250.2855 254.1534 258.8461 261.0005 263.1408 265.1632 267.1362 269.2933 271.1368 272.1458 272.8163 273.59 273.6227 274.1972 275.7953 277.3725 279.1705 281.3598 283.6003 285.1188 287.6937 287.4823 286.8144 285.2785 283.2043 280.3239 278.8643 276.8535 273.8947 273.4133 271.9138 271.5294 270.4743 269.0238 267.2964 264.9503 261.7265 257.3101 250.7812 254.8216 255.6642 256.7693 258.9408 260.6338 260.5009 259.2463 257.2349 255.3896 253.0222 247.205 248.5114 250.2497 252.2816 -9999 +-9999 313.2307 314.3768 314.3324 314.8664 314.5024 313.4941 313.1796 313.4603 314.65 315.2492 315.4926 315.0988 314.5577 313.7304 312.5327 311.4344 309.9069 308.1934 306.478 304.9405 301.3541 300.3783 298.3154 294.8804 293.2385 290.8062 291.7482 292.7442 293.1508 295.1001 296.5464 295.8911 296.2497 298.5657 299.7922 300.2294 300.8926 301.353 301.5156 300.9272 301.5807 301.0929 300.29 299.761 299.2053 298.6118 297.9882 297.7828 297.4853 296.0204 293.3285 290.3776 285.8933 281.8184 278.442 277.6066 277.0666 276.4357 276.5054 276.5208 276.489 274.9996 274.9243 281.527 285.9235 289.9607 294.4143 295.0787 295.6352 295.608 295.7514 295.5493 295.6587 295.7181 296.7446 297.5844 297.2203 296.7549 296.1136 294.2122 292.5266 292.7491 292.1744 292.9336 294.978 296.7284 298.1472 300.1267 302.4172 304.2815 305.2849 306.3507 306.782 307.3733 308.3421 309.9307 311.1347 311.671 311.5168 311.7186 312.2509 312.8702 313.6978 314.9219 314.8799 314.5587 313.891 313.0107 312.3048 311.3828 310.2805 309.9178 305.4225 305.266 305.6031 306.5793 307.5428 308.1114 307.7493 306.618 305.4814 302.6205 301.275 299.991 299.5146 300.0739 300.8022 300.4873 299.7214 297.9226 296.0716 295.9917 295.3132 294.3378 292.2347 292.3723 294.6376 295.4877 294.5732 292.5944 292.2475 292.8903 293.1183 294.3187 294.9339 295.0388 293.4512 291.8464 288.8179 285.8209 283.1014 281.2196 279.1694 276.1121 276.5537 278.5793 281.1953 284.6311 285.7781 286.0952 285.3451 284.7608 286.2935 287.4965 288.0155 288.9464 290.8981 291.6495 292.2729 293.194 294.1544 295.1774 295.7687 296.2072 295.6077 294.0636 291.0547 290.2987 289.476 288.793 289.0268 290.5509 291.3511 292.7977 294.0226 293.7315 292.3138 290.5091 288.6113 287.5226 285.8432 284.8291 283.4873 282.7456 279.6718 277.0739 275.0114 272.7294 270.6536 267.6706 265.5502 263.7899 261.8641 257.6176 254.4944 252.2634 249.1286 247.6417 249.2819 257.2733 261.4469 263.2132 268.2188 270.8356 273.4173 275.6693 278.021 280.2401 281.8872 283.1451 283.4041 285.1739 285.4664 285.0257 285.3182 284.4831 284.5914 283.9919 282.3085 281.0289 279.2194 280.2689 280.8789 280.0056 278.1217 276.7912 274.5627 271.7459 273.137 274.3243 275.1201 276.8819 277.2408 278.4733 279.9646 281.3953 281.8817 282.0775 281.5945 283.2095 284.2548 285.3576 286.1071 286.7916 287.5754 288.6089 288.9249 288.5819 286.903 285.9231 284.8402 284.0981 283.0051 282.2289 281.5755 280.708 278.9463 277.2054 276.4406 275.2536 274.3879 273.7502 272.716 271.6798 270.9136 269.6869 266.2968 264.3665 263.0408 261.543 259.6786 257.6026 255.3201 252.7432 249.0482 245.4373 247.5589 249.7932 249.4471 248.9804 249.1772 249.4146 249.1043 245.9642 245.7704 248.4926 250.6312 252.5453 253.9397 256.1117 257.2053 256.0241 253.2377 247.828 244.9246 245.5305 244.748 244.022 237.5419 236.7576 236.4196 236.7595 235.6258 236.6699 236.5143 235.3481 236.2618 236.1287 237.0824 236.6989 237.2631 238.8553 243.0432 243.7977 242.979 241.8613 243.9868 246.2681 246.7684 246.4426 245.0625 243.8094 245.5962 247.4453 248.491 249.0758 249.3913 250.8052 252.2224 252.5498 250.9497 249.8337 249.1108 249.0502 248.8357 248.3763 248.714 248.2184 246.0344 245.3669 244.5195 244.7796 245.2173 247.0326 248.1547 249.2738 249.7569 249.9755 249.1992 249.0732 245.8479 243.5166 243.5918 246.3377 248.9959 249.9419 250.3965 249.3486 247.4658 244.8439 241.915 239.4784 238.2151 235.666 234.5749 234.407 234.6068 235.0306 235.1541 235.1337 234.525 235.0734 234.5308 234.4261 234.9685 233.4008 234.8204 234.4861 234.5674 234.5184 233.9681 233.7026 233.9173 234.3671 234.0138 233.291 233.7681 233.9282 233.9479 233.3023 233.2078 233.2832 233.2177 233.2701 233.2505 233.2967 233.7013 233.6149 233.9358 235.3381 237.0358 237.6901 238.996 242.482 244.2151 246.4357 248.5181 250.4644 251.9966 253.4824 255.1071 256.498 257.6717 257.8631 257.6804 257.4919 257.2057 257.593 257.4644 256.7523 256.0103 256.6818 257.1519 258.1718 258.6233 258.438 258.3179 257.9269 257.2014 256.5886 257.5088 256.6364 254.7751 252.5387 250.2701 247.7943 246.6024 247.7891 251.8176 254.9573 259.7706 261.5096 263.6404 265.4693 267.3486 268.8179 269.6425 270.6664 270.4583 271.0099 272.3077 274.2408 276.6419 279.0672 281.2179 283.0627 284.8088 285.1188 287.6937 287.4823 286.8144 285.2785 283.2043 280.3239 278.8643 276.8535 273.8947 273.4133 271.9138 271.5294 270.4743 269.0238 267.2964 264.9503 261.7265 257.3101 250.7812 254.8216 255.6642 256.7693 258.9408 260.6338 260.5009 259.2463 257.2349 255.3896 253.0222 247.205 248.5114 250.2497 252.2816 -9999 +-9999 312.3531 312.9017 312.9814 313.3084 313.105 312.8502 312.6478 313.1017 314.2528 314.619 314.9698 314.7131 314.2541 313.5703 312.5193 311.0504 309.3508 307.5717 305.7009 303.9777 299.9275 298.5628 296.5427 295.7927 295.8881 295.2492 296.4413 297.5434 297.1352 297.3031 298.3773 298.2366 297.8336 299.1282 300.4563 301.1936 302.1978 303.0322 303.2787 302.4834 302.651 302.8604 302.6206 302.0324 301.8783 300.888 300.1478 299.1707 296.0469 294.006 291.0381 286.9357 283.3726 280.1079 279.0034 279.1788 277.6652 276.5182 276.4792 276.0983 276.2029 276.5102 274.4991 281.0692 285.7375 289.9875 295.7487 296.7846 297.3094 297.4218 297.5 297.7394 297.789 298.511 298.7539 299.7792 299.0294 298.7402 298.2589 296.7374 295.2685 293.9978 293.8653 292.9336 294.978 296.7284 298.1472 300.1267 302.4172 304.2815 305.2849 306.3507 306.782 307.3733 308.3421 309.9307 311.1347 311.671 311.5168 311.7186 312.2509 312.8702 313.6978 314.9219 314.8799 314.5587 313.891 313.0107 312.3048 311.3828 310.2805 308.9881 304.318 302.9655 303.1873 304.7992 305.7362 306.0637 306.039 305.2079 304.5104 302.3915 301.5951 300.0384 298.6461 298.2385 299.0116 299.3904 299.3557 297.8735 294.1524 293.9429 293.7603 292.6346 291.3595 291.695 294.1679 294.8916 294.351 291.5176 290.9088 292.1026 293.0297 294.0213 295.0716 295.5692 294.5622 293.462 290.5618 288.2531 286.3439 286.054 285.2598 281.7107 275.805 276.2719 278.8278 282.2914 282.844 283.1728 283.2211 284.1136 285.4635 286.6465 287.7323 288.7937 289.9278 290.3336 291.4094 292.8159 294.2285 295.0984 295.9489 296.6999 296.2594 295.4969 293.6093 292.6819 292.0602 291.324 291.6339 292.6646 293.7034 294.1956 294.5918 294.1107 292.6169 290.961 289.5039 288.364 286.7963 285.2246 284.165 283.02 280.1962 278.5197 276.7097 274.6747 272.5172 270.7301 269.2084 267.6299 265.3979 259.3267 255.4082 252.4553 248.9353 248.871 248.6002 254.7037 259.0933 262.2002 268.095 270.6956 273.5261 275.5885 277.3343 278.8377 280.3543 281.289 281.9626 283.7406 284.2911 284.2233 284.33 284.8006 284.1055 282.6097 281.5334 280.2919 278.0561 279.1001 279.7504 278.7765 276.712 274.5346 271.3682 270.5016 271.6946 272.9106 274.1503 275.2604 276.429 277.9897 279.4708 280.7821 282.055 282.4645 282.7771 283.0457 284.1189 285.3982 286.2635 287.0763 287.9964 288.5663 289.4108 289.1038 286.3302 284.3724 282.8907 282.0447 280.6131 279.7141 279.324 278.8011 278.3336 276.5865 275.4364 274.7576 273.9659 273.0958 271.4496 269.9463 268.7066 267.5781 263.9952 262.2381 260.0467 258.394 256.009 253.7368 251.0568 247.2446 245.5805 248.0618 250.5069 251.4448 250.6253 249.9035 250.1514 250.8424 249.1906 246.1529 247.7577 250.09 252.3287 254.4326 256.3667 258.3784 259.3847 257.9142 254.9749 248.5102 246.8958 248.1381 248.3059 248.9351 245.5554 240.836 239.136 237.9884 235.7108 236.3443 236.3552 236.4362 236.2759 235.6593 235.7587 236.6294 236.9881 238.8383 242.1794 241.4435 241.2204 243.764 245.6502 246.2428 246.5382 246.1621 245.19 242.062 244.4303 246.1418 246.9549 247.5764 248.8314 250.4657 251.6167 251.5141 249.8916 248.8121 248.1639 248.0282 247.8548 247.5559 247.4237 247.5617 245.9098 244.6102 244.2758 243.9308 244.1556 245.5869 246.895 247.7866 248.6161 249.1569 248.3039 248.3988 248.1546 244.4538 242.3324 244.1904 246.9325 247.903 247.9325 245.3066 242.603 239.2647 236.9165 234.866 234.5436 234.1245 234.4287 234.4484 234.5873 234.8675 234.8373 234.6982 234.6428 234.6295 234.1696 233.9529 235.211 232.6387 234.8891 234.5052 234.4668 234.0688 233.7973 233.8481 234.4467 234.8478 234.3967 233.3894 233.9725 233.7352 233.4329 233.2064 233.369 233.3155 233.203 232.949 233.2309 233.4496 234.9675 235.6449 235.0033 235.7771 237.3559 238.318 238.9158 241.7479 243.4191 245.7168 247.7437 249.7729 251.0092 252.4037 253.1869 254.6927 255.4075 255.5483 255.9593 256.2081 256.7275 256.9404 257.4644 256.7523 256.0103 256.6818 257.1519 258.1718 258.6233 258.438 258.3179 257.9269 257.2014 256.5886 257.5088 256.6364 254.7751 252.5387 250.2701 247.7943 246.6024 247.7891 251.8176 254.9573 259.7706 261.5096 263.6404 265.4693 267.3486 268.8179 269.6425 270.6664 270.4583 271.0099 272.3077 274.2408 276.6419 279.0672 281.2179 283.0627 284.8088 286.3024 286.2029 285.5432 285.0417 284.1182 283.0565 280.3543 278.8247 276.8947 275.5169 274.8662 275.0222 274.7435 274.0934 272.1957 270.0233 267.3833 264.1035 259.5104 253.7908 251.1591 252.3822 254.0053 255.9251 257.7174 258.7914 258.631 258.2105 255.4625 254.643 252.0301 256.0914 256.2878 255.8203 -9999 +-9999 311.1002 311.285 312.3137 312.116 311.622 311.3931 311.5125 312.0554 313.3256 314.1718 314.372 314.3846 314.1112 313.1563 312.1102 310.7858 309.036 307.4239 305.7553 304.2766 300.3769 298.8476 299.1471 299.8255 298.8897 299.4712 299.8664 300.3396 299.8329 299.4903 300.4297 300.3416 299.773 299.4839 300.5584 301.8824 302.9367 303.8051 304.1257 303.527 303.4854 303.6952 303.7806 303.4067 302.9999 302.0512 300.757 299.1649 295.4034 291.5581 287.1517 281.834 280.8539 281.536 282.8029 282.485 277.6652 276.5182 276.4792 276.0983 276.2029 276.5102 274.4991 281.0692 285.7375 289.9875 295.7487 296.7846 297.3094 297.4218 297.5 297.7394 297.789 298.511 298.7539 299.7792 299.0294 298.7402 298.2589 296.7374 295.2685 293.9978 293.8653 294.2525 295.4459 295.7162 296.6954 299.1529 301.5647 302.9018 304.4714 305.4036 305.5677 306.4181 307.1345 308.1505 308.773 309.17 310.1043 310.1313 310.265 310.6888 313.1472 314.1026 314.3723 313.9017 312.9469 312.6657 310.8625 309.8407 309.0952 308.0435 303.1137 301.4955 301.503 302.5296 303.667 304.7001 304.5432 303.9713 303.0764 301.2221 300.3888 299.3157 297.8885 297.4971 297.6334 298.2031 298.3716 297.6842 293.7569 292.0708 292.2991 291.5887 290.0579 291.3843 293.463 294.4281 294.3506 291.2974 289.9826 291.2807 292.3201 293.5128 294.4554 294.9967 294.6105 294.7496 292.8153 290.7461 289.6386 289.2469 288.1491 286.532 280.6159 274.9515 275.9677 278.9748 279.8243 280.3304 282.5603 284.3675 285.4512 286.7285 287.2741 286.7956 288.6245 290.3236 291.9949 293.4325 294.6038 295.6114 296.27 296.8895 296.5934 295.8214 294.6605 294.2761 293.997 293.5806 293.7339 294.1783 294.6784 295.2635 295.3531 293.5767 291.9923 290.6853 289.4456 288.2918 286.9293 285.2978 284.649 283.298 280.7573 279.2412 277.7646 275.2524 273.4489 272.8475 271.974 269.944 267.387 261.5585 258.9367 255.5725 250.4869 247.7643 248.3269 250.675 256.3521 260.716 266.5612 268.9093 271.6776 273.4199 275.0407 276.5606 277.9191 278.4612 279.9558 282.3946 283.8362 284.8788 284.7849 284.2724 283.5983 282.4039 281.0064 279.787 276.5658 277.4312 278.1368 277.8046 275.2211 273.7617 271.5074 268.8823 270.3119 269.9221 272.3606 274.2021 276.1008 278.1223 279.7193 281.3264 282.1977 283.2332 283.5215 283.3839 284.0761 285.0376 286.3871 287.3008 288.1953 288.9485 289.1603 288.1855 284.4691 282.2401 280.8094 279.5779 278.0468 277.5683 277.2994 277.0548 276.314 275.0187 274.2422 273.3892 272.2503 271.1778 269.7875 267.8289 266.3204 265.0807 261.4131 258.9323 256.685 253.4065 250.1434 247.7793 246.7519 248.1875 249.844 250.9835 252.1084 252.6398 252.0892 251.4999 251.5195 252.0062 248.6376 246.3816 250.4148 252.0249 253.7998 255.94 257.9 259.872 260.8909 259.3036 256.2298 249.5982 248.1158 249.9501 252.2534 253.2287 252.9214 249.2601 244.5828 241.4232 236.2353 236.1697 236.2149 235.9711 236.2771 236.1906 235.8243 236.5394 237.6692 239.5619 238.2767 237.4789 236.8632 236.8412 240.7439 245.9162 246.7522 246.4875 246.2752 240.2641 242.4138 244.2514 245.757 246.9306 248.6368 249.7238 250.3008 250.1784 247.9141 247.1655 246.8475 246.72 246.8976 246.978 246.9812 246.9011 246.2901 244.457 244.2484 243.6076 243.4761 244.0608 245.5582 246.3825 247.7465 248.572 247.3671 247.1956 247.864 245.6105 242.009 241.6076 243.7713 244.9093 244.1406 240.7972 237.9935 235.0095 233.9684 233.5509 233.6449 233.5648 233.8764 234.2898 234.3189 234.5597 234.6183 234.1477 234.378 234.3468 234.3729 234.3405 233.6802 233.0454 234.8275 234.3562 234.4095 234.1047 233.7973 233.8481 234.4467 234.8478 234.3967 233.3894 233.9725 233.7352 233.4329 233.2064 233.369 233.3155 233.203 232.949 233.2309 233.4496 234.9675 235.6449 235.0033 235.7771 237.3559 238.318 238.9158 241.7479 243.4191 245.7168 247.7437 249.7729 251.0092 252.4037 253.1869 254.6927 255.4075 255.5483 255.9593 256.2081 256.7275 256.9404 256.0858 255.3702 254.8975 255.2017 256.2955 256.676 257.0948 257.1994 257.1072 256.0392 255.3281 255.3859 255.8443 254.9114 253.2355 250.3357 248.666 247.0468 245.9398 249.2059 253.0175 255.1777 259.2485 261.3932 263.8353 265.4605 266.4156 266.9485 267.4215 268.3375 268.0343 270.3382 272.3402 274.7829 277.2931 280.3214 283.1241 284.7964 286.1018 286.9318 284.342 283.1973 283.0196 282.1447 281.0591 280.1869 279.6948 277.4695 276.6727 277.6303 277.5964 277.8078 277.188 275.957 273.1898 269.9846 267.1294 264.0122 258.0505 252.7742 251.5385 251.1149 252.7643 255.1347 256.7442 256.6496 257.0017 258.0379 258.2309 256.984 256.6588 257.5759 258.8041 -9999 +-9999 309.001 309.38 311.0388 311.3156 310.8809 310.6038 310.0189 311.0892 312.445 313.5079 313.9716 314.1684 314.0333 313.3477 312.2946 310.6871 309.166 307.9256 306.9911 306.1117 303.0168 302.9545 303.0691 303.0032 301.2571 301.3499 302.3611 302.3168 302.4014 299.4903 300.4297 300.3416 299.773 299.4839 300.5584 301.8824 302.9367 303.8051 303.7345 303.527 303.4854 303.6952 303.7806 303.4067 302.9999 302.0512 300.757 299.1649 295.4034 291.5581 287.1517 281.834 280.8539 281.536 282.8029 282.485 281.0694 276.89 275.9488 276.0143 275.9897 276.4519 276.0849 281.6566 285.7726 289.7821 295.3956 295.8445 296.7073 297.8399 298.8243 299.1467 299.5096 299.5919 299.9844 301.1515 300.7849 300.5686 300.4116 299.4063 297.9525 296.196 295.5727 295.4819 296.151 296.7258 297.5768 298.4875 299.8719 300.5691 301.8506 302.7607 303.42 304.3448 305.1641 306.0993 307.131 308.6528 309.697 310.2025 311.3267 311.1703 312.0592 314.2261 313.8341 313.3181 312.1166 310.9308 310.2366 309.1404 307.7591 307.1276 301.8349 300.6121 300.5557 300.8904 301.5874 302.4014 302.7102 302.3754 302.1499 300.7444 299.2845 298.2378 297.3856 296.086 295.4246 296.2915 297.0543 296.4801 294.1492 292.4327 290.9007 289.9687 289.2134 290.7926 293.3078 294.1905 294.3785 291.7334 289.6823 290.1237 291.4923 292.3939 292.87 293.2104 293.6344 294.559 293.8128 292.7095 292.3232 291.7386 290.6194 288.3504 283.8373 278.0979 274.5111 276.1422 277.2799 279.4383 280.6189 282.7171 284.4907 285.5559 285.18 285.3196 289.5686 290.8195 292.3678 293.7266 294.8174 295.4834 295.9451 296.402 296.3034 295.7754 295.1474 294.8364 294.7192 294.636 294.8066 295.2456 295.6697 296.1038 295.6705 292.6302 290.9085 289.1995 287.4104 286.888 285.8916 284.6602 283.0943 282.6759 280.683 278.666 277.3165 275.4382 274.6309 274.0837 273.1537 271.1046 268.2637 263.3378 260.6573 257.2762 253.4954 248.5494 247.3119 248.6 252.9543 257.774 265.5511 267.7013 269.798 271.0873 272.8017 273.8431 275.4219 276.8828 279.2354 281.6233 283.1289 284.2016 283.6291 282.8171 282.8503 281.8515 279.9116 278.9413 275.1132 274.6208 276.5559 275.8911 273.7675 272.3291 270.7461 267.5044 267.7607 267.3303 269.8534 273.2956 275.6677 277.7198 279.3574 281.1253 282.7294 284.0253 284.9326 284.633 284.56 284.7358 286.033 287.1222 288.0404 288.7712 288.233 286.5216 281.9517 280.2997 279.0956 277.2658 275.7045 274.7885 274.4279 274.8014 274.3531 272.9458 272.4274 271.6115 270.2266 268.7013 267.6638 265.9242 263.9869 262.2899 258.1408 254.0142 251.1405 248.5682 248.3841 249.8097 250.9016 252.5313 254.1057 253.9174 253.9691 253.4067 253.0854 252.8494 253.0542 252.7719 249.177 247.2465 251.1301 253.7426 255.4686 257.4316 259.6772 261.3957 262.3999 260.1333 256.5296 250.2798 250.5459 252.07 254.3024 256.2829 252.4268 251.7423 249.4051 242.42 236.0126 235.8382 236.1503 236.1045 236.0435 236.1051 236.0033 235.9665 236.25 235.9663 235.7997 236.2097 235.7962 235.4221 236.7766 242.9656 246.4706 246.4477 246.7046 239.1359 240.9727 243.0842 245.1908 246.3899 247.7461 248.509 248.9648 248.5976 245.9034 244.6624 244.7368 245.1501 245.4754 245.0712 244.9848 245.4475 245.8994 243.9296 243.5166 243.4556 243.0095 243.0533 245.5582 246.3825 247.7465 248.572 247.3671 247.1956 247.864 245.6105 242.009 241.6076 243.7713 244.9093 244.1406 240.7972 237.9935 235.0095 233.9684 233.5509 233.6449 233.5648 233.8764 234.2898 234.3189 234.5597 234.6183 234.1477 234.378 234.3468 234.3729 234.3405 233.6802 233.0454 234.8275 234.3562 234.4095 234.1047 234.0368 234.258 234.7971 234.8414 234.5446 233.0004 233.5052 233.1867 232.9914 233.2502 233.3177 233.3648 233.3209 233.1965 233.5109 233.4162 235.3388 235.8555 234.9734 235.9891 238.3748 239.6931 239.5986 241.1582 243.0605 245.2924 247.1325 248.9828 250.3473 250.9282 252.1449 252.6111 253.6288 254.2016 255.2044 255.9324 256.413 256.3727 255.1436 254.463 254.387 254.0565 254.8021 255.8039 255.965 256.1377 255.9067 255.117 253.9659 254.7983 254.0872 253.1473 250.9094 248.6122 246.5893 245.7763 247.4146 250.5089 252.9734 255.0405 258.6417 260.631 262.8411 264.2642 264.5816 264.9438 265.2118 265.7445 266.7226 270.6711 272.8155 275.942 279.3449 282.1497 284.5851 286.225 286.7406 285.9198 282.6942 280.7797 279.9367 279.9256 279.9185 279.8484 279.6291 278.2305 277.1308 279.4765 280.188 280.3518 280.4996 279.6336 276.7232 273.2714 269.2882 266.37 260.4475 255.8992 251.0999 248.9497 249.6582 251.6839 253.7622 254.8702 255.4682 257.9152 258.1371 257.6371 256.3642 256.5854 257.4213 -9999 +-9999 306.0064 307.3771 309.0851 311.3156 310.8809 310.6038 310.0189 311.0892 312.445 313.5079 313.9716 314.1684 314.0333 313.3477 312.2946 310.6871 309.166 307.9256 306.9911 306.1117 303.0168 302.9545 303.0691 303.0032 301.2571 301.3499 302.3611 302.3168 302.4014 301.4136 301.8891 302.2334 302.2873 301.8283 301.8733 302.3227 303.1317 304.0699 304.5372 304.2195 304.1387 304.1295 303.7567 303.3592 302.5875 301.6216 300.3246 298.2861 292.8298 289.098 286.0135 287.1895 287.2628 286.532 285.8155 284.834 283.1042 278.085 276.622 275.7452 275.8017 276.1951 276.435 280.3793 284.8102 288.1551 291.6765 293.1715 295.2621 296.7818 297.5363 298.3308 299.618 299.7472 299.6595 301.5708 301.7668 301.6022 301.2655 300.5326 299.4151 298.7008 298.252 297.6602 297.4899 297.5715 298.0711 299.1717 300.0092 300.9043 301.6189 302.4493 302.7477 303.9491 305.1385 306.5093 307.6686 309.0566 310.0606 311.1158 312.2361 313.371 313.8076 314.0954 313.4584 312.8445 311.5054 310.1459 309.7265 308.6908 307.1388 305.9123 303.211 300.5219 299.2473 299.1721 299.6656 300.7323 301.1713 301.3206 301.2773 299.9953 298.6502 296.9161 296.0443 295.263 294.5532 294.7547 295.269 295.1575 293.3918 292.2312 291.4951 289.9834 288.7612 289.9655 292.5979 293.5453 293.7582 291.6761 289.5271 289.0133 290.1968 290.6423 291.2093 292.4702 293.0621 293.9817 293.5418 293.069 292.9044 292.6582 291.2689 288.9194 285.8491 281.9695 276.0079 274.0645 274.2828 274.9422 278.219 280.6101 282.762 282.6666 283.4021 286.4924 289.8313 290.9052 291.9904 293.1313 294.4064 294.7901 294.9937 295.3229 295.2372 294.5683 294.553 294.8221 295.056 295.2473 295.5195 295.9077 296.4181 296.4112 295.1597 291.8781 290.9364 289.1639 287.6458 284.321 283.2141 281.7581 280.991 280.127 278.8417 276.8523 274.9921 274.176 274.1978 274.3466 273.2231 271.0175 268.8134 263.3705 260.1474 256.7695 252.5007 248.6164 248.1449 248.1185 248.4605 254.7914 263.5493 265.933 266.6122 268.0183 270.2532 272.6925 275.1458 276.9345 278.3846 280.4286 281.1831 282.4979 282.0686 281.8415 282.4818 281.7928 279.6761 278.4512 271.9212 272.1627 274.2249 273.5498 270.1535 269.0575 269.2925 267.9251 263.6223 266.7587 269.1397 272.0319 274.5879 276.7693 278.5859 280.4146 282.3707 284.011 285.4102 286.1891 285.6074 285.0886 285.1105 286.2059 286.9156 287.4726 286.7474 285.5508 280.8241 279.1596 277.5963 275.5344 272.1782 270.8719 271.9594 272.2383 271.8597 270.8448 270.3707 269.3976 268.2198 266.7797 264.9063 263.623 261.8407 259.9324 253.9609 250.1834 248.93 250.0742 253.0011 254.1529 254.9166 256.3748 256.841 256.0157 255.3763 254.6391 254.3849 254.3295 253.3813 251.6412 249.5105 248.7556 251.2076 254.5511 256.9331 259.4647 261.7729 263.3987 263.5814 260.0032 255.7249 253.3212 256.042 255.8753 257.6313 256.4555 257.4534 256.6058 252.2294 241.6937 236.0189 235.8401 235.863 235.9689 236.023 236.0103 236.236 236.4234 236.25 235.9663 235.7997 236.2097 235.7962 235.4221 236.7766 242.9656 246.4706 246.4477 246.7046 239.1359 240.9727 243.0842 245.1908 246.3899 247.7461 248.509 248.9648 248.5976 245.9034 244.6624 244.7368 245.1501 245.4754 245.0712 244.9848 245.4475 245.8994 243.9296 243.5166 243.4556 243.0095 243.0533 244.1319 245.3045 246.4385 247.6728 246.5304 245.9803 246.08 244.7794 241.2913 240.2907 240.5659 240.8945 239.7368 236.695 235.2315 234.3875 233.8289 233.3298 233.581 233.3132 233.4846 233.7109 234.3736 234.2548 234.2949 234.58 234.9229 234.5326 234.5582 235.3322 232.6215 235.5343 234.6895 234.3976 234.4468 234.2842 234.259 234.66 234.6883 234.8337 234.7894 233.2631 233.0347 233.2031 233.0989 233.1458 233.3905 233.4283 233.3987 233.2919 233.5991 233.4319 234.3644 234.7108 234.9034 236.0448 238.0844 239.6059 239.6636 240.6572 242.5884 244.2914 246.144 248.263 249.0825 249.6997 250.3415 250.7568 252.9541 254.1178 254.8291 255.7183 255.6043 254.578 254.2701 253.2469 252.8455 253.5456 254.079 254.6707 255.1222 255.2738 254.4501 253.4855 253.088 254.1254 252.5093 251.4067 249.3025 246.8728 246.0632 245.5727 247.8634 250.8714 252.9595 254.647 257.5451 258.613 260.7691 262.1925 262.2593 262.3353 262.8283 264.0794 265.414 270.5408 274.0434 277.5144 280.8649 283.2814 284.5278 285.3067 285.0479 284.0674 280.0748 277.8267 277.1205 277.2189 278.1048 279.2098 279.3641 277.9009 277.8868 280.1806 281.4216 281.7574 282.1875 281.0846 278.6734 275.4309 272.6926 268.8036 262.8102 260.0004 254.9792 250.6718 247.7704 249.2259 251.5286 252.7864 254.3534 257.3635 257.782 257.1641 256.4489 255.0936 254.983 -9999 +-9999 306.0064 307.3771 309.0851 309.795 308.9426 307.7982 308.5885 310.1832 311.6159 312.5319 313.423 313.6806 313.8018 313.3673 312.7686 311.4473 310.6783 309.9277 309.2752 308.5662 306.5568 306.0887 305.6601 304.899 303.598 302.9622 303.728 303.7306 303.9096 303.9265 303.6368 304.2162 304.6059 304.3893 303.3061 303.3003 303.8478 304.3983 304.8643 304.7343 304.6799 304.2498 303.5963 302.2706 301.4763 300.2115 298.1359 295.5122 289.7355 290.7456 290.0396 291.8401 292.2202 290.3401 288.2379 287.1367 285.5952 280.6969 276.7921 275.7018 275.6105 275.9285 274.2874 277.3119 282.0961 284.6515 288.478 290.7919 292.7043 294.382 295.3796 296.1343 297.1682 297.3887 297.9226 300.1566 300.9875 301.2714 301.1565 300.659 300.2623 299.7509 298.6902 297.7133 297.6009 298.2045 299.3286 299.6294 300.3502 301.1429 301.9287 302.5527 303.0387 304.5426 305.5103 306.4967 307.2296 308.2462 309.3009 310.5002 312.1012 313.9439 315.1144 314.4792 313.2438 312.3688 311.3666 309.6734 308.0913 307.5901 306.5923 304.1971 303.3953 302.7055 300.1024 295.9867 297.5512 298.3634 298.6304 299.3728 299.9266 299.0488 297.7135 294.8461 293.8724 293.8338 292.5223 293.1098 293.9602 293.6193 292.4862 291.5038 291.0103 289.6518 288.168 288.8552 291.2496 292.394 292.4843 290.4261 288.1908 287.4242 288.4796 289.7002 290.8756 291.5425 291.7764 292.6539 291.912 291.268 291.3285 291.5906 290.6949 289.2985 287.3907 284.2429 278.7624 274.0078 273.6697 275.0116 277.1576 279.1183 280.4528 282.5164 284.9321 286.5863 289.5703 290.0795 291.1291 292.1692 293.2718 293.4875 293.8774 294.0773 293.9655 293.3538 293.4597 293.927 294.6461 295.146 295.5965 296.0655 296.5013 295.9377 294.4773 291.143 289.9856 288.2514 286.4887 282.8445 279.3822 277.457 276.0481 275.5526 274.0144 271.7767 271.6071 271.7533 271.908 272.627 271.5558 269.5697 267.6339 263.4285 259.4482 256.1037 252.5065 249.0256 248.2686 248.0627 248.7779 252.8499 261.5349 262.843 266.5096 269.021 271.096 273.2128 274.6924 275.4437 276.2684 278.6219 279.7332 280.2489 280.5414 281.2521 281.7825 281.6762 279.926 278.1091 269.8714 269.0307 271.1818 270.6254 265.2776 264.6523 266.3643 266.8933 262.7194 266.8394 269.9691 272.5224 274.5797 276.2916 278.7093 280.0688 282.4522 284.3596 286.3911 287.7096 286.7187 286.4386 286.6978 286.4426 285.8304 285.6038 285.4354 283.6838 279.0751 276.5612 275.0349 273.4139 270.6897 267.5003 269.3492 269.6687 269.171 268.2819 267.9729 267.1472 265.8249 264.1659 261.9885 259.3378 257.2946 255.8242 251.3417 250.8366 252.4819 254.9766 257.1907 258.0456 258.1196 258.634 258.9175 258.0375 255.3763 254.6391 254.3849 254.3295 253.3813 251.6412 249.5105 248.7556 251.2076 254.5511 256.9331 259.4647 261.7729 263.3987 263.5814 260.0032 255.7249 253.3212 256.042 255.8753 257.6313 256.4555 257.4534 256.6058 252.2294 241.6937 236.0189 235.8401 235.863 235.9689 236.023 236.0103 236.236 236.4234 235.9841 236.1508 235.5639 235.44 235.2729 235.1325 236.0172 242.4354 244.9633 243.354 242.983 240.2754 238.6704 241.7703 244.9672 246.0828 246.6516 246.5619 246.4836 246.1269 243.6816 243.0739 243.1819 243.9695 243.9683 243.0912 243.0238 243.6541 244.5502 244.8004 243.9985 243.6183 242.9578 242.5113 243.0328 244.2545 245.6767 246.5079 245.5492 244.2507 243.4406 243.0307 240.6974 240.1447 238.4511 237.9046 236.9547 235.1476 234.4997 234.1327 233.7208 233.6359 233.3542 233.3596 233.5656 233.7559 234.1416 234.4386 234.511 234.6134 234.5671 234.4031 234.5982 235.232 232.6832 235.153 234.5664 234.3873 234.3981 234.3862 234.5381 234.718 234.6337 234.6801 234.7004 233.8695 233.3848 233.2339 233.3008 233.097 233.3691 233.3598 233.3474 233.3431 233.3121 233.4561 233.6547 234.1529 234.9543 236.8273 238.8115 239.871 239.4735 239.972 241.714 244.1317 245.2853 246.7295 247.5134 248.5202 249.389 249.7276 252.1603 252.8461 254.0079 254.1928 254.1395 253.2142 252.601 251.9055 251.6063 252.5521 253.467 253.6957 254.0488 253.7432 252.819 252.188 252.4846 252.7154 251.318 250.7704 248.0729 245.8176 244.429 246.3966 248.3941 251.448 252.7523 255.4926 256.3649 257.6673 258.4234 259.533 259.0062 259.9362 261.3591 262.1968 263.7916 269.7148 273.3535 277.7082 280.3291 282.1443 283.0626 283.0821 282.3004 281.0908 277.167 274.9912 274.4071 274.8257 276.6249 277.8751 277.8382 277.4264 277.8116 280.7001 281.7374 282.3669 282.4806 281.054 278.8 276.269 274.1 271.0873 267.1953 265.6256 261.0316 254.2258 249.359 246.6501 249.3531 250.6134 252.35 255.4053 256.1309 256.6398 255.9964 255.1994 254.1534 -9999 +-9999 304.4373 306.1952 307.027 306.6979 306.4891 305.5406 307.4444 309.0467 310.7525 311.727 312.9364 313.2082 313.531 313.3893 312.8325 312.5583 312.3909 311.7538 311.2785 310.1924 308.4638 308.0677 307.1796 306.3401 305.1789 303.9896 305.0298 304.8096 305.2527 305.644 305.4767 305.8519 306.1059 305.8857 305.1426 304.738 304.899 304.9791 304.6917 304.6998 304.519 304.0766 303.4575 302.1287 300.1624 296.8471 296.0756 295.5739 295.0445 294.0873 291.4036 294.2613 294.3424 292.4561 291.1099 289.5708 287.8489 280.5807 276.0343 275.6165 275.4943 275.5622 275.9475 275.8245 278.7484 282.0777 286.0563 287.9604 289.7374 291.3471 292.2067 293.4139 294.0624 294.1548 295.4614 298.8 299.4139 299.7865 299.7448 299.6783 299.5868 298.6497 297.1423 295.5961 296.1642 297.4894 298.1519 299.2021 300.7023 301.7026 302.4613 302.2779 302.5313 304.6865 305.7949 306.2528 306.7916 307.7242 308.8188 310.4058 312.1823 313.9224 314.9435 314.6548 313.2397 311.8654 310.5799 308.9598 306.8833 305.1635 304.9047 303.1815 302.231 301.5606 300.3445 298.027 296.4369 294.0962 294.8791 296.0652 298.065 297.8312 296.1836 293.4243 292.1201 291.8425 290.9071 292.3196 292.7888 292.3372 290.9086 290.1036 289.5136 288.9358 287.7321 288.0753 289.906 290.9036 290.9952 288.4172 286.6748 286.6699 285.3249 287.5395 289.2723 289.7043 290.1965 290.588 289.321 288.852 289.1098 289.5918 289.4948 288.2655 287.1986 284.9537 281.1104 273.9239 272.1855 274.616 277.5267 278.9318 280.5486 282.5959 284.2426 286.2176 288.1496 288.7727 289.9363 290.9825 291.704 291.9186 292.6009 292.7984 292.61 291.8079 292.3163 293.3685 294.2361 294.8698 295.3916 295.7948 295.8542 294.9347 293.3721 290.5288 289.4489 287.5753 284.6914 281.4897 280.007 278.7244 275.9025 273.1263 268.6844 265.6555 266.6243 268.2598 268.853 270.1328 268.9871 266.8882 265.6652 262.5177 259.1774 256.112 253.6174 250.6825 248.05 247.9588 249.095 253.7515 263.2901 265.3133 267.2117 269.7018 271.6039 272.8794 272.4372 271.8601 273.9399 276.733 278.0879 279.4922 280.8636 282.1281 282.4332 281.2237 279.2177 277.3355 271.2531 266.4205 268.4525 268.8204 263.6664 263.262 264.1015 264.7154 260.111 267.6847 270.4147 273.5279 276.2029 278.0731 278.9373 280.1385 281.8907 283.8099 287.3775 287.6818 287.8878 287.6052 288.0734 286.4426 285.8304 285.6038 285.4354 283.6838 279.0751 276.5612 275.0349 273.4139 270.6897 267.5003 269.3492 269.6687 269.171 268.2819 267.9729 267.1472 265.8249 264.1659 261.9885 259.3378 257.2946 255.8242 251.3417 250.8366 252.4819 254.9766 257.1907 258.0456 258.1196 258.634 258.9175 258.0375 256.6074 255.7418 255.3219 254.6277 253.6278 251.3648 250.4867 249.2244 251.9876 255.5584 257.7683 260.8462 263.8962 265.1985 264.6983 260.6249 255.7828 259.4623 261.6724 261.534 261.4736 260.118 261.244 259.6991 254.0612 242.8489 235.269 235.7686 235.8223 235.7217 235.8867 235.9637 236.1578 236.2434 236.3418 236.369 235.8703 235.6163 235.2048 235.1689 235.5143 238.8147 237.9354 235.7392 236.0456 239.4193 238.7211 241.9107 244.6 245.4172 245.5714 245.5326 245.1662 244.9316 242.6747 242.3239 242.4551 243.3388 242.9178 241.9285 241.8704 242.4761 243.3723 245.0429 244.9363 244.3719 243.4959 241.728 242.2717 243.5599 244.9776 245.2263 244.5242 243.5693 240.9616 239.5878 239.3141 238.7677 237.6126 236.9951 236.2098 234.8371 234.3022 233.9257 233.6202 233.6895 233.4341 233.8719 233.9515 233.976 234.198 234.3756 234.5066 234.5118 234.5542 234.5121 234.4725 235.3368 232.6515 235.1398 234.565 234.3469 234.2618 234.6461 234.8062 234.6784 234.5472 234.4505 234.4956 234.5886 234.2081 233.5961 233.4461 232.9755 233.2993 233.4288 233.5273 233.4422 233.4146 233.4527 233.5616 233.6498 235.4045 237.9978 238.575 239.6682 240.0011 240.8109 242.2702 243.7408 244.3978 245.1595 246.4561 247.0114 248.266 249.0018 250.504 251.4001 251.4732 251.734 251.8208 251.7141 250.9603 250.3323 250.7877 251.7258 252.9616 252.7516 252.9521 252.4189 251.8595 251.2771 251.4295 251.3012 249.9876 248.5509 245.96 244.4403 244.3028 246.5946 249.0758 251.4306 252.5674 254.7806 255.9373 256.3637 256.2909 256.9633 257.5356 258.7815 260.068 261.5207 263.8013 269.3515 272.3009 275.7297 278.3354 279.5599 280.2767 280.2316 279.7071 278.0244 274.6432 273.3627 272.9783 273.6935 275.5019 276.4676 276.8535 276.8542 277.4175 280.45 281.6463 281.8757 281.0929 279.7076 278.0145 276.1099 274.6805 271.9881 271.0695 270.6487 268.0064 262.9118 257.0739 251.1404 245.9576 246.7192 249.8473 252.6465 253.5727 254.6717 254.8115 254.5839 253.9069 -9999 +-9999 303.0822 304.0681 303.3711 302.7835 303.4799 306.0967 307.9754 309.7098 310.8282 311.9804 312.6837 312.8459 312.883 313.2491 312.893 312.8383 313.3089 313.0923 312.6895 311.6403 309.9045 308.9116 308.1823 307.2878 306.4076 305.7096 306.4265 306.5821 306.3935 306.5002 306.646 307.6041 307.6534 306.8978 305.8588 305.4584 305.0319 305.0683 303.8346 303.8665 304.135 303.6373 303.0045 301.955 300.5622 299.1293 298.3797 297.3371 297.3447 294.4622 293.5804 296.0714 296.4526 295.5318 293.8574 291.4843 289.2274 279.2457 276.1903 275.6927 275.4085 275.5923 275.3611 274.2883 276.4313 278.8506 282.2653 284.0146 286.3611 288.166 289.2303 290.1489 290.7689 291.9807 294.9028 297.3125 296.8484 297.5802 298.0493 298.0829 298.2425 297.4636 295.544 294.1114 294.8056 295.6579 297.086 298.2911 299.5844 300.7419 301.3243 301.1417 300.0245 304.5996 305.163 305.8349 306.335 307.1248 308.001 309.5993 311.7688 313.0705 313.3351 313.2325 311.7217 311.2044 310.3916 308.9664 306.8659 304.5255 303.2286 300.7402 299.8728 299.5321 298.682 296.0355 294.5534 293.39 292.803 293.9917 295.4699 296.0803 295.0707 292.7239 291.5483 291.0647 290.1123 290.1678 290.5381 290.146 288.88 288.3462 287.3889 287.2424 286.3944 286.4249 288.4826 289.0405 289.081 286.4059 286.1696 287.4827 284.7802 284.0653 286.9594 286.7239 287.891 289.1385 286.9711 286.584 287.1476 287.9411 287.8312 287.539 287.0429 286.3362 283.656 275.1052 272.9424 274.1463 275.3224 277.2357 279.3503 281.6171 283.2473 284.314 286.1109 287.0348 287.7823 288.999 290.0901 290.6425 291.4406 291.5922 291.4034 290.5456 291.8399 292.8845 293.8257 294.4695 295.015 295.2323 295.0077 294.1505 292.3469 289.9635 288.2698 286.756 286.0971 284.906 283.6593 281.4022 279.5883 279.1963 274.6036 266.2865 262.3651 262.948 264.8321 265.1251 264.9721 263.46 262.4602 259.86 257.9475 255.5271 253.4514 250.0332 248.0444 246.214 247.6082 252.2531 263.386 265.1806 266.9398 269.0998 270.1505 270.2523 269.9867 271.6263 274.0685 277.2057 278.0879 279.4922 280.8636 282.1281 282.4332 281.2237 279.2177 277.3355 271.2531 266.4205 268.4525 268.8204 263.6664 263.262 264.1015 264.7154 260.111 267.6847 270.4147 273.5279 276.2029 278.0731 278.9373 280.1385 281.8907 283.8099 287.3775 287.6818 287.8878 287.6052 288.0734 287.9927 286.8358 284.5856 283.9679 282.9449 278.2082 273.0263 269.7912 268.4523 268.8873 266.2191 266.3607 266.2766 265.9904 265.4168 265.2599 264.3062 262.2026 259.685 257.1067 254.8713 252.9491 251.6421 256.5634 256.9249 257.344 258.8282 259.4796 260.153 260.9041 261.1156 261.5379 260.0978 258.3046 257.0495 255.7883 255.8349 254.6049 253.6596 253.6243 252.5127 252.3331 256.8937 259.6892 262.6028 265.0849 266.0827 265.2982 262.2199 258.9655 259.3496 263.3358 265.1893 264.2768 263.3709 262.3139 260.3712 257.5276 251.1066 235.1681 235.2639 235.5017 235.7525 235.6405 235.8271 235.9658 236.1129 236.1079 236.2459 234.9552 235.6606 235.7753 235.4442 235.162 235.2287 235.0796 235.2366 234.9249 237.0161 239.2614 242.5294 244.4062 244.9215 244.4534 244.4727 244.5286 244.5955 242.8214 242.0595 242.1339 242.8815 242.3441 241.307 241.2189 241.5423 242.6645 244.6184 244.5629 244.7572 243.4445 241.8901 241.2394 243.0293 244.1958 244.2987 243.8386 243.0761 239.4083 237.8356 237.2305 236.9433 236.4973 236.4205 235.8209 234.6187 234.2778 233.8756 233.593 233.5893 233.4905 233.8447 233.5845 233.7707 234.1156 234.29 234.4702 234.5657 234.4506 234.676 234.7552 234.5553 232.6365 234.7436 234.3969 234.3462 234.3508 234.6362 234.8145 234.6191 234.3883 234.3686 234.4873 234.5467 234.6401 233.9595 233.4462 233.347 233.5268 233.6118 233.7663 233.7442 233.5803 233.6139 233.6809 233.6876 234.8784 238.9011 239.3595 240.2073 240.5245 241.8712 242.4407 243.0056 244.2537 244.738 245.5859 246.334 247.2871 248.2087 249.2412 249.7423 249.7874 249.9936 250.1173 250.0897 249.7667 248.869 249.5328 251.0588 251.6604 251.0826 251.5012 250.9616 250.4323 249.9768 249.6995 249.5583 247.5652 246.2655 244.3144 244.0196 245.1337 246.9659 249.4305 251.6801 252.5743 254.4538 254.3938 255.4343 254.0985 255.5384 256.7162 259.3407 262.2691 265.5303 266.6217 270.5269 271.9063 274.5941 275.9454 276.9878 277.6767 277.3181 276.359 275.319 272.8006 271.4788 271.7983 272.9727 273.9318 275.1167 275.5086 275.8197 276.8372 280.4311 280.7727 280.4806 279.3137 277.0001 275.8357 275.1712 274.6565 274.3592 274.121 273.9105 273.3711 269.8437 264.7392 258.6294 253.3939 248.3197 245.5532 249.1636 250.1932 251.3545 252.5915 253.2035 253.4983 -9999 +-9999 300.7403 300.9167 301.0173 301.1027 303.1315 306.9169 308.9412 310.1525 310.6779 311.6811 312.4126 312.467 312.3188 312.5639 312.5829 312.5762 313.1843 313.3004 312.9371 312.0078 309.8181 309.0338 308.6487 308.1987 307.8912 307.9399 308.142 307.7978 307.8382 307.7602 307.735 307.8977 307.9254 307.1381 306.1747 305.5293 305.155 304.463 303.2868 303.2974 303.8417 303.5927 302.8738 302.4993 301.5648 301.044 300.1001 299.0313 297.4721 295.7082 296.7309 297.4499 297.511 296.6243 293.3328 289.6779 286.677 280.6233 276.6488 275.4887 275.2635 275.7367 275.4095 275.7134 275.1065 275.6124 276.929 279.0578 282.9415 285.1538 286.1468 287.2207 288.1824 291.3211 293.9215 295.423 295.3993 296.0656 295.6934 296.2124 296.508 295.9024 294.2108 292.7308 292.7242 294.1411 295.8702 296.7608 297.6495 298.2505 298.6919 298.7913 298.2575 303.9897 304.9819 305.1946 305.6559 305.9132 306.881 308.2356 309.859 310.5661 311.3821 311.0941 310.683 310.4769 310.3015 308.7919 306.4212 301.9478 300.7578 298.6733 297.0459 296.3448 295.2179 293.894 292.7118 291.5635 290.4589 291.664 292.8878 294.0146 293.4652 291.9699 290.9075 289.7203 289.7971 288.9554 288.0162 287.8998 286.6396 285.1553 284.0427 284.1151 284.6568 285.2372 286.2746 286.6918 286.5077 283.9378 283.9237 284.9969 284.3248 281.6495 283.9959 283.9348 286.4453 287.3779 284.5783 284.277 285.4188 286.2564 286.1585 286.0742 286.5699 286.4134 284.546 276.7964 272.7834 272.9018 273.6484 274.5194 276.7564 279.4287 280.8652 282.3887 284.144 284.6085 286.4358 287.6487 288.8449 289.2073 289.6644 290.0745 290.1136 290.2764 291.2503 292.4926 293.2505 293.5809 294.3873 294.7956 294.4464 293.7899 290.7391 290.2672 289.8231 289.0236 287.3045 285.8278 283.5557 281.4022 279.5883 279.1963 274.6036 266.2865 262.3651 262.948 264.8321 265.1251 264.9721 263.46 262.4602 259.86 257.9475 255.5271 253.4514 250.0332 248.0444 246.214 247.6082 252.2531 263.386 265.1806 266.9398 269.0998 270.1505 270.2523 269.9867 271.6263 274.0685 277.2057 278.694 279.9611 281.3874 282.0494 281.4069 279.9772 277.8628 275.6965 270.9356 267.3727 264.9034 265.8778 261.5849 261.0684 262.5307 261.4447 263.328 269.3499 271.4592 274.0327 277.14 278.0388 277.7965 277.8518 280.0848 282.4892 285.8022 286.9726 287.1413 287.2648 287.8997 288.1051 287.2623 284.5363 282.1747 279.5317 275.1025 273.0466 269.7713 266.29 264.3579 263.8947 262.6596 263.0813 262.2524 261.0123 260.5709 259.3337 257.6895 255.4141 253.5361 252.7699 254.9381 257.175 257.3949 257.1058 260.9063 261.3532 261.933 262.4124 262.9605 263.0128 263.748 261.9645 259.6987 257.9394 257.2075 256.0867 255.7284 256.2938 256.7872 255.9474 251.9949 255.6956 259.6064 262.5113 264.5891 265.2174 266.0491 265.574 261.9067 261.5531 265.8487 267.0915 265.6783 263.6018 260.9539 257.9069 254.9908 252.0434 237.4269 235.2097 235.23 235.3747 235.7871 235.5505 235.6175 235.6223 235.7222 235.4763 235.7173 235.9953 236.0097 235.8437 235.4444 235.0786 235.0407 235.0129 235.17 236.4943 238.5958 241.2869 243.2304 243.586 243.7959 243.9008 243.7881 243.6212 242.9511 241.6771 242.0577 242.3368 241.3357 240.5017 240.7268 241.6997 242.6778 244.2374 244.3158 244.0303 243.0843 241.8774 241.1269 241.685 243.5117 243.8283 243.1546 242.53 239.7941 236.7536 236.1153 235.6957 235.5041 235.5777 235.2578 234.3174 233.9974 233.6452 233.6031 233.4286 233.308 233.5413 233.5112 233.6369 233.8614 234.1193 234.2838 234.381 234.4608 234.5313 234.5916 234.5575 234.9291 234.6885 234.3974 234.342 234.5286 234.4793 234.6386 234.5142 234.3993 234.3618 234.4716 234.6666 234.608 234.3738 233.5504 233.6934 233.687 233.6348 233.7015 233.6688 233.4803 233.5988 233.6218 233.5798 234.2092 238.8838 239.0871 239.401 239.6448 240.4672 241.0579 241.8038 242.4656 243.1873 244.13 245.1627 246.1932 246.6715 247.0453 247.3962 247.5569 247.6104 248.133 248.5634 248.352 247.9727 248.1407 250.1313 250.3143 249.9608 250.0116 249.6579 249.5125 248.8775 248.8366 245.907 244.9851 244.0836 243.0657 244.2282 245.1731 246.9314 249.4397 251.3294 252.2475 253.3707 253.0793 253.4193 254.1254 256.596 259.3096 261.4999 263.6866 265.8596 267.5247 270.183 271.6424 272.6045 273.5424 274.5629 275.5472 275.018 273.7506 273.0111 271.1842 269.8303 270.7431 272.0847 272.7637 273.2578 273.3373 275.0216 276.2596 278.764 278.7597 276.5885 275.0432 272.7138 271.941 272.7095 273.4499 274.2455 276.0276 276.9627 276.8846 274.4724 268.9397 261.9766 255.9438 251.6769 250.029 244.5822 244.7088 246.248 249.0925 251.0914 250.6032 -9999 +-9999 296.4658 298.7464 300.229 302.2375 305.1935 307.7176 309.4345 310.7016 311.7581 312.2711 312.5881 311.4443 311.5594 312.2511 312.1088 312.0483 312.3922 312.1336 311.8543 310.8797 309.1355 308.3818 307.6807 307.6842 307.7558 307.6657 307.9069 307.9383 308.21 307.5268 307.7284 307.9388 307.7384 307.0731 306.1611 305.5619 304.49 303.7287 302.4411 302.4872 303.2007 303.416 303.3056 302.9847 302.4031 301.856 300.949 299.4427 298.5923 298.4839 298.6101 298.3658 297.9198 297.2141 295.0136 291.6322 290.3942 283.9145 276.1165 275.34 275.4016 275.3843 275.6108 275.1833 275.717 275.571 275.1256 275.3227 279.0208 281.8724 283.193 283.9209 287.2577 290.1257 291.9865 293.31 294.1639 294.3841 293.3219 294.3017 295.0028 294.546 292.854 291.2362 291.4148 292.7584 294.3656 294.7182 295.0772 295.6613 296.3972 295.9594 297.1343 301.8447 302.647 302.9002 303.3129 303.9367 304.5707 306.0935 307.1651 307.7179 308.9171 307.9976 307.9599 309.7031 310.0665 308.5092 306.8178 302.327 300.0362 299.377 299.0982 296.7391 294.3269 293.932 292.813 291.9826 291.201 290.5298 289.2612 290.7681 290.1322 289.7052 288.8184 287.6964 287.248 287.0944 286.1122 285.5095 284.9681 283.708 282.7768 283.1201 283.715 284.0938 283.6508 283.5253 282.7275 282.2089 279.8017 279.0266 279.0969 279.5572 279.9913 280.5108 283.5224 284.2848 281.2839 280.8231 282.6323 284.4428 283.7943 284.0881 284.3358 284.1398 282.8849 278.384 274.2385 271.6615 272.1864 274.5194 276.7564 279.4287 280.8652 282.3887 284.144 284.6085 286.4358 287.6487 288.8449 289.2073 289.6644 290.0745 290.1136 290.2764 291.2503 292.4926 293.2505 293.5809 294.3873 294.7956 294.4464 293.7899 290.7391 290.2672 289.8231 289.0236 287.3045 285.8278 283.5557 282.7543 283.1001 282.5529 277.9684 274.4724 270.7086 266.0792 261.1348 258.2411 257.1949 256.3763 255.7576 254.03 253.0024 251.9764 251.5244 250.512 248.9081 247.7047 247.7073 248.0531 259.6839 261.7259 264.4156 265.8832 267.4503 267.9105 271.7397 274.2866 276.0148 278.8457 279.6556 280.2951 280.5156 280.8018 279.9765 278.2051 276.2971 274.7997 269.4722 265.5145 261.0041 263.4347 261.2874 259.3357 261.1855 260.0125 262.8477 269.2016 271.8468 274.5384 276.8601 276.2288 275.293 275.4405 278.2853 281.058 284.3088 285.1532 285.5763 286.2101 286.852 287.1811 287.0048 285.209 283.2367 280.4943 276.1521 272.6452 264.5714 262.7117 261.7393 259.9244 259.1854 257.8871 257.3127 256.7299 255.9229 255.1516 254.0196 255.3546 257.5439 260.394 260.1348 260.9413 260.4991 262.5831 263.4687 263.5554 263.9671 264.1714 265.3976 265.3805 264.4842 263.9396 260.965 258.8075 258.1264 258.2369 258.8559 259.514 259.2946 256.6761 251.4712 255.161 257.9368 260.9638 262.4299 263.9728 265.0745 265.8411 264.5433 265.4655 268.4048 268.2891 265.9392 262.9437 259.154 255.1517 252.576 249.0703 239.0127 235.311 235.1514 235.1778 235.2856 235.6576 235.4408 235.4294 235.0255 235.7624 235.5911 235.4836 235.5568 234.8144 236.1032 235.461 235.1362 235.1118 235.2136 235.8392 239.0583 239.9656 241.8057 242.2713 242.2815 240.8703 240.4568 240.3046 240.0118 240.1665 241.2231 241.0583 240.1076 239.9852 241.0634 242.0333 242.6299 243.8272 243.8671 243.3446 243.5962 242.1806 240.4362 240.8876 243.1113 243.4661 242.535 241.7216 238.3046 235.8321 235.0014 234.8845 234.752 234.5862 234.6868 234.2226 233.9889 233.6958 233.465 233.2648 233.3591 233.2862 233.3368 233.5319 234.0009 234.0222 234.075 234.1451 234.2035 234.3167 234.3061 234.5638 234.7813 234.866 234.5852 234.204 234.5368 234.5349 234.5345 234.3621 234.253 234.1901 234.1828 234.2005 234.2458 234.2356 233.3035 233.7414 233.771 233.6712 233.5629 233.5172 233.3654 233.5687 233.7196 234.0143 234.2957 237.5042 238.0332 238.0422 237.8532 238.8264 239.3281 240.3059 240.9332 241.7072 242.7536 243.3835 244.3105 245.0505 245.286 245.587 245.8551 246.0619 246.5464 246.9087 246.9459 246.9927 248.0188 248.6936 248.5251 248.9761 249.1313 248.7396 248.3283 247.3915 246.5775 245.0867 243.6471 242.2958 243.4839 243.6104 244.5065 245.8439 248.004 249.592 250.5348 251.581 251.0119 252.6708 254.4307 257.4905 258.5505 260.4909 262.2646 264.1839 265.582 268.0688 269.1599 270.2813 271.2239 272.6366 273.31 272.8985 271.4458 271.0816 269.822 268.8038 269.1403 270.1962 270.5904 271.2317 272.3835 274.6129 275.912 277.3866 275.4494 270.6319 269.1357 267.636 267.6542 269.6179 270.6342 272.9686 276.5368 277.5344 278.3164 275.4874 270.1951 265.8962 259.993 255.9933 253.3812 247.3049 245.9259 244.2442 242.2508 246.2535 246.7671 -9999 +-9999 298.4113 300.2424 304.0817 304.576 305.3938 307.207 309.3355 311.1021 311.9798 312.4174 312.2862 310.3624 310.6339 311.0736 311.5418 311.657 311.1048 310.9093 310.3743 309.8902 307.761 307.2747 306.8749 306.7937 306.765 307.0902 307.1225 307.1433 307.3032 306.7991 307.0326 307.3989 307.2018 306.8802 306.3083 305.4054 304.3615 303.2676 301.8271 301.6008 301.9317 302.5788 302.6724 302.5846 302.4092 301.8333 301.1352 299.4475 299.4998 299.8101 299.829 299.2281 298.9409 297.7981 297.3505 295.6795 290.0747 287.2232 278.9584 275.4107 275.3326 275.2589 275.4366 275.2334 275.2446 275.1579 275.3369 274.1223 275.996 278.1718 280.747 282.7289 286.2945 288.2003 289.6339 291.804 292.8665 292.2782 292.2354 293.1435 292.9165 292.0103 290.7015 289.309 289.6757 291.097 292.0063 292.2334 292.5129 293.8656 293.9791 294.0837 295.5474 298.3742 299.0316 298.9466 299.6355 301.2375 302.7489 303.4652 304.4504 304.4511 306.7765 306.5003 306.6433 308.9023 309.6765 309.5236 309.1889 306.9047 303.1107 303.1094 303.0672 301.8391 299.1435 297.0532 295.5699 294.2601 294.2374 292.9186 289.658 288.7533 287.7292 287.0757 287.0717 287.3309 286.5451 285.9201 284.9859 284.3593 283.3738 282.1448 282.7768 283.1201 283.715 284.0938 283.6508 283.5253 282.7275 282.2089 279.8017 279.0266 279.0969 279.5572 279.9913 280.5108 283.5224 284.2848 281.2839 280.8231 282.6323 284.4428 283.7943 284.0881 284.3358 284.1398 282.8849 278.384 274.2385 271.6615 272.1864 273.8508 276.5208 278.0331 279.7057 280.9695 282.2122 284.1326 285.5168 286.3511 287.1931 287.7305 287.973 288.183 288.5292 289.4235 290.1564 291.1337 291.4071 292.3899 293.8335 294.1403 293.9548 293.4601 292.2434 291.0933 290.5977 289.3867 287.4828 285.5933 284.4596 284.8342 284.9724 283.9655 279.597 277.0193 273.7908 271.7096 270.087 267.5558 264.0679 262.0932 261.523 260.8358 258.868 258.2884 257.7556 255.8878 251.7241 248.008 246.0332 247.3795 252.2347 259.5445 256.2501 261.7647 266.4212 269.3066 272.111 274.7573 276.7026 279.5037 280.588 280.0209 279.6027 279.4063 278.2615 276.4302 274.9669 273.5181 269.2417 265.0594 262.04 260.1136 260.4747 258.4558 256.3528 259.9584 262.1044 266.9594 268.8291 270.9752 272.7758 271.4736 270.9365 273.4441 276.6836 278.9767 282.1149 283.3813 284.6239 285.2419 285.9518 286.4232 286.2896 284.9418 283.7733 279.6837 277.8768 275.9319 272.8171 270.7799 268.3906 268.2203 266.3389 264.6947 261.5758 258.1903 259.1723 259.8944 260.4445 262.425 263.8517 264.4503 263.8488 263.2596 265.288 265.8833 266.0316 266.4731 266.6826 266.6769 267.0589 267.1618 266.5631 264.9616 262.34 260.6939 259.3396 259.9121 261.3034 261.6624 261.7657 257.3229 251.1488 253.4981 256.805 259.5544 261.4159 262.6288 263.8281 264.8352 265.8927 268.4862 269.8428 268.8583 266.1389 262.6428 257.9482 252.5284 249.2736 246.0467 238.0919 235.8062 235.2334 235.3272 235.171 235.206 235.6454 235.4198 235.4797 235.4045 235.4452 235.693 235.3923 235.4185 235.5284 235.5567 235.409 235.3555 235.2577 236.3741 238.955 238.8063 239.2158 239.8493 238.0436 237.3325 237.2793 237.0624 238.0406 239.1 239.8908 239.6061 239.3735 240.3662 241.2958 242.1544 242.854 243.5832 243.398 243.0384 242.8273 242.5805 241.1878 239.8399 242.6392 243.1573 241.4662 238.9742 235.55 234.7417 234.3398 234.2884 234.3775 234.0456 234.0708 234.3481 234.6417 234.4305 233.6822 233.1394 233.1763 233.1284 233.521 233.2982 233.8192 233.9048 233.9534 233.9515 233.7845 233.7588 234.0416 234.5326 235.3057 235.3415 234.4491 234.1586 234.2821 234.3801 234.1331 234.0604 233.9798 233.8373 233.8348 233.4829 233.5181 233.6829 233.6715 233.8208 233.8409 233.6131 233.2752 233.5478 233.8011 233.9713 234.0601 234.1906 234.586 235.9599 235.9783 236.3111 236.7602 237.8466 238.3093 239.13 239.6668 240.3814 241.1429 241.8689 242.8047 243.3987 244.071 244.3955 244.709 244.9681 245.3818 245.6295 245.424 246.0527 246.9881 247.2625 247.2141 247.7306 247.5396 247.4543 247.2119 246.5482 245.3506 243.6346 242.3873 241.9722 242.7578 243.9471 243.309 244.4048 245.4165 247.0597 247.8848 249.1658 250.6998 252.8194 255.1549 255.8583 257.5224 258.5588 260.0843 261.7292 264.4084 265.5854 266.8735 268.0304 270.0321 271.0444 271.7252 271.0438 270.0965 268.9019 268.8359 267.7217 267.5987 268.1387 269.4438 270.464 272.1538 274.2999 275.4666 275.78 271.855 266.8199 263.3695 263.1523 264.7935 266.2194 267.6875 269.8154 275.7391 277.8567 278.5579 276.0746 272.0013 268.129 262.4682 259.4794 256.0982 251.7605 249.1452 244.2442 242.2508 246.2535 246.7671 -9999 +-9999 302.798 303.5941 306.8737 307.6704 307.3491 307.9978 309.5805 311.1092 311.8495 312.4109 311.9764 309.4547 309.0656 310.1732 310.6892 311.3028 310.9384 309.8415 309.1219 308.4273 306.926 306.0071 305.562 305.3921 305.4276 305.6822 305.8636 306.1298 306.0812 306.1677 306.2234 306.4237 306.2306 306.1069 305.7656 305.3673 304.5717 303.5579 301.7553 301.0356 300.6172 301.0232 301.6578 301.7597 301.6742 301.4792 301.1347 299.6859 299.7456 300.0485 299.9934 300.0324 299.4724 298.7035 297.9624 296.6685 290.7702 287.9983 284.8963 280.9731 277.6348 275.4502 275.5854 275.6111 275.4151 275.1016 274.9424 274.8921 273.3095 276.2946 278.8929 282.0083 284.0913 285.829 286.893 290.5105 290.3393 289.0841 289.864 291.1393 290.1749 289.343 287.5533 286.7734 288.3613 288.9332 288.9866 289.3482 289.9877 290.6207 291.9423 291.899 292.4328 293.3491 293.7198 294.8479 296.5571 297.0276 298.0815 301.6152 301.6005 301.9689 303.3346 304.9165 306.6433 308.9023 309.6765 309.5236 309.1889 306.9047 303.1107 303.1094 303.0672 301.8391 299.1435 297.0532 295.5699 294.2601 294.2374 292.9186 289.658 288.7533 287.7292 287.0757 287.0717 287.3309 286.5451 285.9201 284.9859 284.3593 283.3738 282.1448 282.07 281.5301 281.5335 281.1848 280.7603 279.645 279.2815 281.7429 278.0537 278.1688 277.8062 277.7716 277.6369 276.9879 276.8556 276.8596 277.3333 277.6081 279.0962 280.1623 279.3488 281.01 281.9393 281.5334 280.3989 277.6872 274.2941 271.146 271.7619 273.2333 274.5339 276.5472 277.7383 279.29 281.7722 283.1332 284.485 285.14 285.795 285.4191 285.8419 286.8445 288.1775 287.2272 287.3705 288.3839 289.7191 291.4917 292.5995 292.8945 292.878 292.8351 292.6212 291.6358 290.611 288.645 286.9252 285.618 285.2854 285.6083 285.3777 284.4406 281.2085 278.2163 275.7187 274.6002 274.3022 273.1011 270.7943 268.3434 267.1395 267.1687 264.5997 263.8273 263.4651 261.8073 255.8574 248.7042 247.4848 247.6065 247.3959 251.7999 254.8727 261.9936 266.0813 268.9076 271.8492 274.2213 276.2437 279.2935 280.058 279.0418 277.8505 277.7094 276.7551 275.1404 273.1794 271.6353 269.7667 268.0237 265.7415 262.696 259.034 256.7191 255.9158 259.6819 261.0111 262.081 263.2918 265.0193 266.3064 267.8259 269.9919 272.4064 275.3554 277.0243 280.1487 281.9523 283.546 285.0885 285.5742 285.6095 285.2831 284.4901 283.4964 280.8275 279.2028 277.6501 275.4277 273.2211 271.642 270.8272 269.8279 268.2223 266.4201 263.6968 263.3925 264.627 265.393 265.9426 266.3529 266.7825 266.2412 265.7471 267.1853 267.8924 268.2248 268.6966 268.7139 268.5446 268.6647 268.8823 268.5063 266.6374 263.4392 261.4597 260.929 261.976 263.4181 264.1764 262.0625 257.0466 256.5561 255.3015 253.4347 257.8273 260.5125 262.0962 262.9436 264.1085 265.108 268.1266 269.3242 268.796 266.8695 263.2867 258.7946 253.8506 250.6142 247.1543 238.3073 236.6162 235.4381 235.1817 235.1385 235.1689 235.2728 235.3095 235.4419 235.1445 235.4288 235.3675 235.4016 235.5287 235.495 235.3955 235.3143 234.9264 235.4887 235.118 235.4242 236.0501 236.2931 236.3097 235.3715 235.4519 235.6643 235.8566 236.8121 238.1587 238.6473 238.6725 239.3329 240.1791 241.1465 242.2506 243.1721 242.9351 242.5183 242.3061 242.3642 242.6873 241.4456 239.6348 241.7695 242.3303 239.4988 236.0167 234.1538 233.9794 233.8275 233.5881 233.8301 233.787 233.7469 234.1626 234.5454 233.8282 232.7077 232.7834 232.8494 232.78 232.9977 232.8747 233.6562 233.5103 233.4178 233.5681 233.496 233.6287 233.7901 234.4646 235.0122 234.4235 234.7729 234.3158 234.2033 234.1361 234.2696 234.0569 233.9387 233.7129 233.4911 233.3997 233.4113 233.5351 233.2898 233.4896 233.7766 233.8451 233.9687 233.9252 233.9944 234.0829 234.2709 234.2733 234.481 234.4689 235.5628 236.0581 236.7085 237.3812 237.9022 238.5485 238.978 239.0607 239.5066 240.5884 241.4214 242.2626 243.3168 243.4749 243.1686 243.4481 244.0391 244.3528 244.4937 245.0572 245.0094 245.9927 246.2271 246.4321 245.9404 245.0265 244.4006 243.3762 240.9267 241.9123 245.7615 246.9613 247.3166 246.7763 245.9779 243.9847 244.1877 245.9931 246.1617 248.2467 249.0629 251.7052 254.2126 255.3789 256.2304 257.4549 258.5359 261.7292 264.4084 265.5854 266.8735 268.0304 270.0321 271.0444 271.7252 271.0438 270.0965 268.9019 268.8359 267.7217 267.5987 268.1387 269.4438 270.464 272.1538 274.2999 275.4666 275.78 271.855 266.8199 263.3695 263.1523 264.7935 266.2194 267.6875 269.8154 275.7391 277.8567 278.5579 276.0746 272.0013 268.129 262.4682 259.4794 256.0982 251.7605 249.1452 246.3115 244.3231 242.5758 241.796 -9999 +-9999 303.8606 304.872 307.9181 309.0365 309.3022 309.4708 310.3027 311.4278 311.8445 312.103 311.3159 308.3025 308.071 308.7223 310.2872 310.8531 310.9496 310.1909 309.0232 307.7553 305.7454 304.89 304.3842 303.9742 303.8418 304.2967 304.6525 304.9028 304.8206 305.33 305.1659 305.234 305.3454 304.9828 304.9994 305.0963 304.6197 303.9098 302.1566 300.9307 299.8218 299.6179 300.2182 300.465 300.819 300.6807 300.4733 299.4492 299.2874 299.4901 299.9138 300.0594 299.558 298.2748 296.9643 295.2057 289.2157 287.0275 285.2567 282.8092 280.5502 277.9368 276.8578 276.7726 276.1012 276.3825 274.8817 274.8476 274.8421 273.589 275.986 278.8069 281.0828 282.4317 285.1397 287.8624 290.3393 289.0841 289.864 291.1393 290.1749 289.343 287.5533 286.7734 288.3613 288.9332 288.9866 289.3482 289.9877 290.6207 291.9423 291.899 292.4328 293.3491 293.7198 294.8479 296.5571 297.0276 298.0815 301.6152 301.6005 301.9689 303.3346 304.9165 307.3833 308.4131 309.4021 309.9789 309.7516 308.8401 306.8617 304.9567 304.5874 303.2186 301.5719 300.1004 298.7464 297.7988 296.8319 295.522 294.5785 291.9682 289.4985 289.2765 289.252 289.6707 289.0405 288.1668 287.0809 286.2204 285.3748 284.1379 283.1809 282.8542 282.3569 281.5963 280.9814 280.8908 280.5164 281.8796 280.3287 279.9763 280.214 280.0755 279.1894 278.9671 277.7538 276.9499 274.7311 275.2293 274.8906 275.2215 276.4081 277.7032 278.3885 277.5294 276.5426 276.5818 275.0478 273.0914 271.5119 272.0194 273.4066 274.7532 276.137 277.9268 280.8474 281.9712 282.6305 283.1663 283.5547 284.908 285.8849 286.748 286.7276 283.1543 283.975 285.7182 287.9247 289.8446 290.6356 291.5059 291.8554 292.1725 292.1497 291.5562 290.3014 288.5101 287.5015 286.7336 286.0557 285.3123 284.3228 282.4187 280.2571 278.6928 277.1074 277.0002 276.7177 275.9521 273.8253 270.7773 270.3182 270.4044 268.3861 267.8659 267.3757 264.9781 258.4152 251.1352 247.1024 245.8019 247.0389 249.8266 255.8923 261.348 264.9257 267.61 269.8983 272.8387 275.2749 277.834 278.6412 277.6045 276.0112 275.5655 274.7917 272.7457 271.3788 270.0504 269.7442 268.6472 267.1393 264.9101 263.1655 258.8799 254.4467 257.968 258.3229 261.4547 262.9932 264.6754 266.0434 268.3006 270.7849 272.7406 274.3911 275.9511 279.1618 280.551 282.6387 284.4306 285.1589 284.9591 284.4929 283.8329 283.2159 281.7202 280.0644 278.3338 277.3225 275.195 273.7601 272.388 271.6814 270.5336 269.2756 267.8253 267.2371 267.7432 268.2668 268.283 268.7108 269.0996 268.8932 268.8524 269.5421 270.0501 270.3033 270.6525 270.6729 270.5642 270.4514 270.5335 270.0009 266.9095 264.849 262.5432 263.0611 264.6101 265.6281 265.1079 263.1053 259.1964 260.7074 260.3497 259.5374 257.9413 258.5538 260.6324 262.1099 263.3322 264.5782 268.1355 269.0372 267.8109 265.3232 260.1553 255.7936 254.2101 250.0847 245.1326 240.3058 238.0539 235.765 235.2726 235.3528 235.389 235.5888 235.4907 235.4967 235.4165 235.1973 235.2606 235.3414 235.1877 235.4476 235.7371 235.4124 235.3916 235.6679 235.3281 235.4866 235.12 234.9822 234.9748 235.1876 235.3029 235.4375 235.7984 236.9927 237.8586 238.1996 238.6788 239.2895 239.9875 240.7661 241.7837 242.0018 241.019 240.9538 241.1274 241.7141 242.3366 241.7557 240.3445 241.5776 241.2366 236.285 233.2267 233.0161 233.1493 233.112 233.138 233.1346 233.0955 233.2088 233.2123 233.7215 233.0735 232.6998 232.9701 232.7206 232.8563 232.8398 233.1304 232.9492 233.0459 233.1932 233.1684 233.1467 233.372 233.7099 234.1178 234.5287 232.4925 232.5616 234.6558 234.4045 234.1906 233.9371 234.0644 234.0204 233.7995 233.6076 233.4501 233.3575 233.5398 233.5959 233.2938 233.8789 233.9827 234.1285 234.0847 234.1591 234.4957 234.8041 234.6646 234.5262 234.6252 235.7818 236.3895 236.9288 237.2693 237.4543 237.7921 238.255 238.2539 239.5066 240.5884 241.4214 242.2626 243.3168 243.4749 243.1686 243.4481 244.0391 244.3528 244.4937 245.0572 245.0094 245.9927 246.2271 246.4321 245.9404 245.0265 244.4006 243.3762 240.9267 241.9123 245.7615 246.9613 247.3166 246.7763 245.9779 243.9847 244.1877 245.9931 246.1617 248.2467 249.0629 251.7052 254.2126 255.3789 256.2304 257.4549 258.5359 260.2877 263.0356 263.7267 265.5851 267.2151 268.5947 269.8907 270.159 269.6288 268.4044 267.052 266.7576 266.81 265.9264 266.6487 268.7795 270.059 271.8972 274.0684 275.1636 274.0133 270.0284 263.4732 259.536 260.0419 261.5627 264.8407 268.6922 271.5564 276.6113 278.3779 278.758 277.0501 272.9385 268.454 265.4738 262.5501 261.6737 257.4449 255.8726 253.4636 249.3266 247.7999 245.7399 -9999 +-9999 302.3155 304.1392 307.9251 309.2693 310.0068 310.284 310.5724 310.9656 311.129 311.1365 310.3918 307.2917 306.3615 307.6606 309.6874 310.6051 310.9666 310.0177 308.8222 307.7576 305.5041 304.3669 302.6572 301.9758 302.2097 302.7626 303.2099 303.4467 303.9352 304.2021 304.2516 304.3364 304.2184 303.9563 303.9686 304.0905 304.0589 303.5374 302.0001 300.7576 299.5564 298.9593 299.2662 299.1429 299.796 300.2023 299.8366 298.6111 298.3757 299.4901 299.9138 300.0594 299.558 298.2748 296.9643 295.2057 289.2157 287.0275 285.2567 282.8092 280.5502 277.9368 276.8578 276.7726 276.1012 276.3825 274.8817 274.8476 274.8421 273.589 275.986 278.8069 281.0828 282.4317 285.1397 287.8624 287.8171 286.9263 288.4422 289.1044 287.897 287.124 284.6375 284.377 285.6363 285.4 285.5406 285.5802 286.0234 286.5635 287.4825 291.7932 292.2996 294.601 295.5546 297.8644 298.8868 299.6658 301.1168 302.0125 302.4315 303.5489 304.62 306.3497 307.0699 308.2089 309.3648 309.9553 310.2652 309.3367 307.9804 306.6127 305.1021 303.6286 302.5471 301.532 300.631 299.0974 298.0824 298.4125 297.6947 296.7989 295 293.0603 290.633 290.422 291.8479 292.3746 290.814 288.9691 287.9468 286.3507 285.0988 284.2993 283.1893 282.433 282.7154 281.8133 281.5634 282.935 281.3647 284.1896 285.0622 284.2935 282.13 281.5293 282.8346 282.7108 276.0929 274.8172 273.3662 273.8003 273.3881 273.9892 274.2456 273.7925 273.7269 275.3667 276.2594 274.7872 271.1982 271.572 272.7434 273.6123 274.8654 277.7018 279.8592 280.0935 280.8979 281.7934 283.4435 284.8992 285.5918 285.6781 283.1862 280.9651 281.6912 282.6166 285.2858 287.6664 289.0519 290.1368 291.0306 291.4397 291.3257 291.1337 290.3935 288.7438 287.8191 286.767 285.7591 284.4479 283.1332 279.9705 278.6297 276.9153 276.0501 276.2833 276.501 275.3859 273.9313 272.0147 271.6813 270.7385 269.5659 268.8369 268.4874 265.4376 259.9171 254.0859 247.912 246.9442 246.6057 250.9141 255.5072 259.9944 263.0535 264.807 268.4194 271.9784 274.1817 275.2507 276.1247 274.817 273.5597 271.2263 272.1048 270.0504 269.776 268.8883 268.7439 268.1012 266.5616 265.3294 264.2293 259.7001 253.7262 257.0948 256.4954 260.1969 262.7043 266.1472 267.7667 269.1885 270.9282 273.5558 274.6259 275.6624 277.5915 279.3743 281.726 283.6043 284.5405 284.2027 284.0517 283.3838 282.2948 281.773 281.2205 279.7521 278.4971 277.5421 275.4892 274.1263 273.0657 272.1938 271.6506 270.2992 270.3151 270.879 270.6659 270.6341 270.7707 270.9427 271.4454 271.3539 271.6736 271.9385 271.9546 272.2523 272.3405 272.3073 272.1215 271.884 270.5623 267.4133 264.5352 263.534 265.3944 266.828 267.5025 266.2916 264.2538 260.6509 263.073 263.3093 262.5908 262.1333 261.4426 262.6723 263.3451 264.0652 265.3742 268.5688 269.6173 268.3775 264.4444 258.1025 252.4217 248.8883 246.5255 247.2273 244.8773 241.7293 238.4058 236.7782 236.0092 235.9713 235.9246 235.7105 235.6742 235.6206 235.4327 235.4742 235.5408 235.6913 235.6971 235.532 235.2615 235.2916 235.5273 235.3764 234.5547 234.8928 235.1935 234.6976 235.0194 235.1453 235.2609 235.3021 236.4926 237.0447 237.3911 238.1277 238.8153 239.5824 240.5159 241.0488 240.8458 239.3239 238.6983 239.6189 240.7422 241.4286 241.108 240.1429 241.026 240.3708 233.051 232.9137 232.8584 232.8302 233.0155 233.0829 232.8276 232.7351 232.7597 232.791 233.0601 233.0067 232.8558 232.8242 232.7674 232.7678 232.9316 233.0078 232.8689 233.288 232.8117 232.7443 233.1033 233.372 233.7099 234.1178 234.5287 232.4925 232.5616 234.6558 234.4045 234.1906 233.9371 234.0644 234.0204 233.7995 233.6076 233.4501 233.3575 233.5398 233.5959 233.2938 233.8789 233.9827 234.1285 234.0847 234.1591 234.4957 234.8041 234.6646 234.5262 234.6252 235.7818 236.3895 236.9288 237.2693 237.4543 237.7921 238.255 238.2539 238.704 238.9923 239.8654 240.3522 240.3901 240.5945 240.5358 241.2408 242.0655 242.7911 243.0256 243.4707 243.701 244.5947 244.7106 243.9245 243.0806 242.5359 242.1637 239.7348 241.6578 244.6815 249.0801 249.8185 249.6709 249.7474 249.9127 249.5934 249.0615 247.578 245.4028 247.0574 248.1291 250.2826 252.1107 254.052 255.2281 256.6295 257.8424 258.8244 261.5493 263.1917 264.8635 266.5114 267.1844 267.6001 267.8149 267.7685 266.366 264.8711 264.0157 264.0457 264.5822 266.3258 268.6843 270.6068 272.1959 273.8744 275.0081 273.7895 269.8845 262.4426 257.1145 257.1245 259.5201 263.0034 266.8355 270.0483 275.7161 277.5542 278.0415 277.1766 275.1895 272.6185 269.1059 267.3378 266.4881 263.8709 262.9235 261.9285 258.8606 255.1934 253.6645 -9999 +-9999 301.3998 302.9326 307.3685 308.7407 309.5492 309.5574 309.6597 309.9168 310.0962 309.7243 307.8872 304.8148 305.372 307.3447 308.7153 310.2318 310.7151 310.2981 308.7852 307.531 305.3055 304.0876 302.6572 301.9758 302.2097 302.7626 303.2099 303.4467 303.9352 304.2021 304.2516 304.3364 304.2184 303.9563 303.9686 304.0905 304.0589 303.5374 302.0001 300.7576 299.5564 298.9593 299.2662 299.1429 299.796 300.2023 299.8366 298.6111 298.3757 298.5817 299.2079 299.4654 299.053 298.1436 296.9237 295.523 289.9733 287.8984 286.1589 284.2222 281.9005 278.9283 277.6034 277.8521 279.1114 282.0289 278.9717 275.3964 274.7516 274.6727 273.1909 274.9948 275.4965 278.6622 282.5392 285.1024 284.7513 284.2771 286.4612 287.0365 285.6151 284.8658 282.8044 282.0462 282.118 282.6582 283.4572 284.1249 285.6111 288.767 290.4667 292.0285 292.1776 299.8954 300.7487 301.5439 302.3091 303.5256 305.1369 306.2127 306.8924 307.2442 307.7681 308.0707 309.2913 309.5307 309.6259 310.7915 310.9395 310.0349 309.0621 307.5505 306.5772 304.9225 303.5309 302.5784 301.5946 299.7524 299.6141 299.6382 298.6598 297.3751 296.4908 293.8086 291.6642 291.5423 293.7966 294.3431 293.6461 291.2036 290.2279 290.0869 288.9677 287.8284 287.4686 285.5203 283.313 282.0021 283.0877 286.8882 287.3921 289.2313 289.7769 287.4237 285.9489 284.3464 286.7219 287.369 280.2464 278.7056 276.7014 273.0392 273.4021 272.446 271.75 272.3269 272.1129 273.1898 273.8848 272.0048 270.5226 271.2428 271.951 272.7596 274.0074 276.1581 277.7643 279.0399 280.0506 282.1508 283.6372 284.9825 285.2099 284.8856 281.8383 279.8993 280.2885 282.1338 284.6627 286.6958 288.1102 289.3012 290.3488 291.0644 290.4102 290.4405 289.3714 288.4884 286.7983 285.7491 285.1464 284.1684 283.0453 278.6429 276.1789 274.4335 273.4287 274.4819 274.7687 273.572 272.4588 271.1072 270.8404 268.6276 267.1391 266.5781 265.556 261.9122 257.8012 253.0152 248.8133 246.7276 246.5214 249.8131 255.1057 257.7437 259.5255 262.5093 266.6831 269.903 271.1298 271.4678 271.9951 271.2915 270.6016 265.5534 267.2922 268.7072 268.5593 268.3862 268.1754 267.6707 266.7015 265.8289 264.9698 262.8242 256.8303 254.8578 256.5858 261.3723 263.8745 265.7451 267.2859 268.528 270.3449 271.7764 272.9862 274.3482 277.3877 279.4355 281.3845 283.2244 283.6059 283.4112 282.4746 282.3106 281.3227 281.6881 281.7545 280.8406 280.3692 279.3372 277.8883 276.0808 274.3336 273.7457 272.5861 272.9955 273.134 273.0767 273.0985 272.9247 272.9044 273.4188 273.7728 273.739 273.8145 274.4059 273.9065 273.971 274.045 274.0528 273.8104 272.9978 270.6611 266.4684 265.0377 265.8899 268.2176 269.6515 269.5477 268.0213 265.1859 262.2214 264.3126 264.5729 264.1331 264.0838 263.9296 264.2083 264.6704 265.5549 265.8849 268.9451 269.9025 268.1022 263.5785 258.3373 254.7903 252.2238 251.0963 251.1862 247.1853 244.9482 242.7813 240.7407 238.8012 237.9174 237.015 236.9794 238.4024 235.7605 235.6589 235.6611 235.8142 235.7947 235.5633 235.7886 235.6991 235.1652 235.2582 235.2251 235.4047 235.5834 234.3936 235.0529 234.9088 234.5878 235.06 234.7868 235.8106 236.4374 236.6606 237.3007 238.0648 239.5824 240.5159 241.0488 240.8458 239.3239 238.6983 239.6189 240.7422 241.4286 241.108 240.1429 241.026 240.3708 233.051 232.9137 232.8584 232.8302 233.0155 233.0829 232.8276 232.7351 232.7597 232.791 233.0601 233.0067 232.8558 232.8242 232.7674 232.7678 232.9316 233.0078 232.8689 233.288 232.8117 232.7443 233.1033 232.8795 233.2009 233.5572 233.913 235.0112 234.1106 232.7356 235.1802 234.5065 234.2998 234.1571 234.0237 233.9548 233.9268 233.6827 233.4597 233.4438 233.5345 232.948 233.4499 234.2044 236.3951 236.9906 234.4277 235.1559 236.2622 234.9284 234.9648 234.7273 234.9483 235.8471 236.9235 236.3811 236.4995 236.5054 236.6875 236.7645 236.614 237.1958 237.3443 237.4919 237.7892 238.0259 238.3273 238.8329 239.5718 240.9439 241.4282 241.5422 241.4929 242.2985 242.2852 240.9345 240.1454 240.1814 239.8669 243.9863 246.1669 247.7602 250.7652 251.0364 251.127 251.5889 252.3278 252.0471 251.6782 250.6173 249.65 246.5207 246.4743 249.2553 250.8314 252.3053 253.5856 255.2812 256.2393 257.5577 260.6077 262.2321 263.7119 264.5384 264.9317 265.4476 265.903 265.6391 263.593 262.3024 262.3759 263.1176 265.6992 267.8021 270.1541 271.5763 273.336 274.5454 274.9577 274.2858 271.2989 264.8939 257.3716 255.3704 255.7599 259.4041 262.4902 266.425 273.4797 275.119 276.4852 276.9399 276.4048 275.0629 273.6982 272.5443 270.2438 268.897 267.9182 266.3986 263.3289 261.5247 260.4283 -9999 +-9999 301.3998 305.3138 307.3685 308.7407 309.5492 309.5574 309.6597 309.9168 310.0962 309.7243 307.8872 304.8148 305.372 307.3447 308.7153 310.2318 310.7151 310.2981 308.7852 307.531 305.3055 304.0876 301.6103 300.4109 300.5549 301.234 301.8928 302.5332 302.9055 303.4218 303.3938 303.1933 303.1033 303.1552 302.9441 302.967 303.0247 302.6217 301.6088 300.5607 299.5969 298.8424 297.8734 297.8378 298.7509 299.0216 298.7126 297.9093 297.5661 297.5165 298.1137 298.7808 299.054 298.9602 297.6378 295.7793 290.6132 288.1337 285.3747 282.7892 279.7068 278.9313 278.9097 279.5785 281.2238 284.3999 283.1443 279.9765 277.9631 277.7063 274.9147 274.4491 273.9843 274.5541 278.3184 281.3308 281.1015 282.4848 284.207 284.6009 283.1468 282.3452 280.4351 279.5861 282.0315 284.4844 287.2978 289.1737 290.6203 293.0862 295.2235 297.1613 297.731 300.8291 302.3779 303.2807 304.2333 305.7549 307.2245 307.5681 308.2527 309.5201 309.7566 309.9691 310.3643 310.72 310.7444 311.2063 311.4255 310.731 309.4244 308.0264 307.1508 306.3692 305.1838 303.8094 302.3713 300.8349 301.2992 301.0121 299.1737 297.3001 295.493 293.6905 293.778 292.99 295.0397 295.5196 295.2451 292.7153 292.1928 291.8383 290.592 288.9062 286.9213 282.916 283.7568 283.6006 285.1221 289.2355 290.5546 291.7848 291.338 289.5025 287.7486 286.529 289.8348 291.5259 284.9144 282.5863 280.919 278.545 275.7455 273.5939 272.5671 272.2022 271.9166 271.4484 271.1768 270.762 269.7499 270.468 271.4133 272.2483 273.6949 274.6563 277.1282 278.5574 280.1833 282.108 283.3103 283.8059 283.8382 282.9951 279.5917 279.598 281.1615 283.0658 284.6035 285.9087 287.5992 288.9326 290.0866 290.7357 289.8758 289.5432 287.9142 286.6171 286.2245 284.942 283.7594 283.5766 282.5308 279.5847 277.3222 274.3279 272.1775 272.0455 272.4632 271.3532 270.0733 269.4095 268.8083 265.16 263.4949 262.5141 259.5523 255.2095 252.1905 248.7787 248.229 247.3628 246.689 247.0852 251.8902 253.7722 256.5573 259.7347 262.664 265.2157 266.6639 267.2027 268.0752 268.0026 267.7768 264.0504 267.0753 267.5783 267.8017 268.398 269.1162 268.3945 267.6313 266.9608 264.9256 262.4848 256.3082 255.4984 257.7894 261.2943 263.5363 266.1079 267.6991 269.7459 271.9588 273.4807 274.8226 275.9881 278.1388 279.5364 280.6834 281.567 282.212 282.0436 281.1372 280.9706 280.3097 280.4261 280.7157 281.0511 280.8574 280.4551 279.6172 278.142 276.3756 275.0295 275.1731 275.7079 275.7851 275.1107 274.9709 275.0723 275.3569 276.1822 276.4456 276.4751 275.8354 275.5967 275.7881 275.4199 275.5501 275.4453 274.8446 273.093 271.1526 266.1642 266.2127 268.5955 271.0217 272.8279 271.4427 268.4659 265.3875 263.541 265.3407 265.4388 265.0782 265.2635 265.678 266.1475 266.3159 266.813 267.565 269.2206 269.5535 267.531 264.214 261.0317 257.6781 256.8524 254.9268 251.1862 247.1853 244.9482 242.7813 240.7407 238.8012 237.9174 237.015 236.9794 238.4024 235.7605 235.6589 235.6611 235.8142 235.7947 235.5633 235.7886 235.6991 235.1652 235.2582 235.2251 235.4047 235.5834 234.3936 235.0529 234.9088 234.5878 235.06 234.7868 235.8106 236.4374 236.6606 237.3007 238.0648 239.3118 240.4006 240.7137 240.367 238.0213 237.7995 238.4201 239.5638 240.3259 240.2141 238.5933 240.0149 238.4901 233.2658 233.0148 232.9601 232.9067 232.9583 232.8433 232.735 232.7638 232.8132 232.7924 232.7679 232.9119 232.9367 232.9301 233.0208 232.7342 233.0294 233.1532 232.9081 232.7303 233.3343 233.3843 233.3048 233.1094 233.1213 233.4103 234.0681 234.1575 234.7167 232.4036 232.381 232.9115 233.3448 234.4742 234.1153 234.0811 234.119 234.0294 233.7428 233.6136 233.654 233.1252 233.7456 234.1614 235.4777 237.6801 238.7414 238.5282 238.2442 238.3186 237.9385 235.2265 235.2399 235.2585 235.5162 235.917 236.1097 236.1355 236.2163 236.2619 236.5121 236.7277 237.1212 237.2505 237.4581 237.7027 237.3585 237.901 238.8912 239.6747 239.816 239.5499 239.6606 240.0357 238.5508 240.2831 242.6428 243.5498 245.1905 247.2749 249.0893 250.1999 252.3539 252.6954 253.0035 253.1515 253.732 253.5424 253.4972 253.4988 253.021 251.3302 248.0616 247.6837 248.7755 250.0498 251.1738 253.0365 254.6638 255.9054 259.1141 261.0771 262.4098 262.7564 263.2473 263.8413 263.3541 260.9692 259.4211 260.628 262.051 264.314 266.9205 268.9291 270.5819 272.0471 273.2968 274.5499 274.6516 273.9897 270.939 267.0203 261.3117 255.8973 252.9549 255.4302 258.8413 263.3468 269.775 271.6699 273.5239 275.1087 275.9769 276.0418 275.734 274.9889 274.0684 272.3206 271.1378 269.9424 268.1594 267.056 265.2956 -9999 +-9999 303.8726 305.2253 306.9733 307.981 308.2773 307.7169 307.989 308.2578 308.6747 308.8738 305.6777 302.992 305.0698 307.0279 308.4451 309.9812 310.5298 310.2156 308.8156 307.551 305.2244 303.7443 301.3419 299.9196 299.1178 300.1573 301.1056 301.8027 302.4677 303.1005 302.7852 302.4086 301.8881 301.8389 301.9521 302.0036 301.9235 301.972 300.9829 300.6154 299.6927 298.8682 297.6166 296.9709 297.4194 297.9785 298.1424 297.6393 296.6755 296.3431 297.1831 298.4305 299.1466 299.1486 297.8843 296.3317 292.3317 287.1482 283.9246 280.7036 282.5671 283.9617 283.4834 282.2719 282.9698 286.6622 285.6884 283.0917 281.4645 280.5802 279.4798 277.5346 274.96 273.4509 274.5423 277.1332 278 279.835 281.0857 281.5229 280.8087 279.6607 277.5764 279.7893 285.3317 287.04 289.2409 291.1955 292.8512 295.1285 297.2778 299.5242 300.3159 301.1749 302.5344 304.3979 306.2398 306.9347 308.6642 309.9806 310.8465 311.5893 311.6614 311.3988 311.5089 311.7243 312.0714 312.2555 312.252 311.5371 310.1498 308.1686 307.2068 307.3875 305.9797 304.5503 303.1459 302.1935 301.9317 301.0089 298.134 296.342 296.0902 296.058 295.1813 295.0156 296.4369 296.9009 296.4965 294.4097 293.4569 292.236 290.704 286.2297 283.9801 284.2414 285.4459 285.9373 287.6521 291.5907 293.1474 294.5008 293.518 291.2847 290.1372 288.4855 291.7056 294.2514 288.0768 285.0684 283.4596 281.5698 277.8205 275.0688 273.3521 272.54 272.1904 271.8266 270.4734 270.8399 270.3612 270.2333 270.9844 272.3615 273.6357 274.3179 276.8308 278.621 280.2293 281.3534 282.2479 282.3292 281.785 279.9325 277.984 282.1057 283.9005 284.8699 285.7762 287.1864 288.3244 289.2666 290.1475 290.578 289.2117 289.5283 288.377 286.6815 284.6022 283.3671 282.7393 281.5407 280.7165 279.3539 276.9925 274.4944 272.36 269.0771 267.7972 268.4785 266.6617 266.5135 257.4274 259.5453 258.3713 256.7189 252.6034 251.311 251.8659 253.0348 254.6483 252.1259 246.7478 244.9711 247.1582 250.3851 252.5938 255.2476 256.6544 259.5946 263.0591 263.6648 264.7502 265.0636 264.1407 263.1216 265.7782 266.913 267.6206 268.9874 270.906 269.9241 268.0293 266.288 263.9951 260.3596 252.2066 256.3974 257.8757 262.2518 264.4892 266.7819 269.0096 271.1989 273.1377 274.6751 275.6454 276.5124 277.3502 277.7129 279.2423 279.8728 280.4311 279.8957 279.8543 279.9054 279.1417 278.7262 279.6798 280.1116 280.494 280.2766 280.0152 278.9905 277.3246 276.9798 276.7125 277.0928 277.1248 276.989 277.3059 277.526 277.7891 278.2191 278.6269 278.7023 277.7864 277.3356 275.7881 275.4199 275.5501 275.4453 274.8446 273.093 271.1526 266.1642 266.2127 268.5955 271.0217 272.8279 271.4427 268.4659 265.3875 263.541 265.3407 265.4388 265.0782 265.2635 265.678 266.1475 266.3159 266.813 267.565 269.2206 269.5535 267.531 264.214 261.0317 257.6781 256.8524 254.9268 252.368 250.5621 249.1136 248.874 247.4046 244.8392 241.9756 241.5739 243.0152 241.9368 235.9879 235.6835 235.8144 235.4005 235.612 236.2111 236.2451 235.9772 235.9619 235.6644 235.0378 235.0161 235.1983 235.1028 234.6564 234.741 234.773 234.6847 234.395 234.9047 235.7043 236.1545 236.3176 237.5235 238.7134 240.39 241.0441 240.2802 237.6558 237.3456 237.8713 238.5563 239.8401 239.718 237.2761 238.7238 234.9377 233.334 233.0572 232.8409 232.9853 233.0307 232.7787 232.6312 232.7923 232.8408 232.729 232.7178 232.9621 232.8761 233.121 233.3826 233.1735 233.0822 233.3642 233.0422 233.1369 233.4492 233.1839 233.4843 233.6586 233.3373 234.0497 234.4951 232.6213 232.4261 233.6668 234.394 234.8184 234.649 234.2274 234.6214 234.4633 234.3146 233.1481 232.2103 234.099 233.8479 233.3919 233.7856 234.0047 234.4411 239.325 240.0048 239.9214 239.5291 239.4659 239.1951 238.489 236.5347 235.3862 235.5291 235.3273 236.0657 236.0947 236.2283 236.2842 236.6008 236.7306 237.0062 237.984 239.9059 239.0999 238.8719 238.4246 238.6444 239.1428 239.3089 239.5012 240.0638 241.5253 241.9063 243.7529 244.8319 246.4081 248.2093 249.864 251.0485 252.3892 254.2612 254.7835 255.1346 255.3856 254.9755 255.1502 255.4455 255.6603 255.5265 254.4751 253.3832 251.6566 250.1395 248.5045 248.8657 250.1062 251.2326 252.679 256.7399 258.4806 259.5387 260.304 261.0646 261.022 258.261 256.8692 258.8802 261.6791 263.972 266.3927 268.1758 269.8328 271.7545 272.8747 274.1827 274.6724 274.2976 273.8419 271.203 267.7184 263.6076 256.9956 251.7516 253.1371 256.979 261.4913 266.8965 269.0985 270.4133 272.7908 274.316 274.9035 274.9146 274.8165 275.2156 274.0421 273.2123 272.0013 270.813 269.7121 269.2813 -9999 +-9999 304.2303 304.1171 305.7667 307.1241 306.8567 305.8131 306.2406 306.9861 307.3732 306.9054 303.7666 302.3258 305.0419 306.9269 308.7329 310.2804 310.9153 310.4941 309.2079 307.7787 305.0634 303.0422 301.329 299.7849 298.7011 298.9807 300.1854 300.7037 301.5853 302.0549 302.0327 301.7085 301.3834 300.6182 300.5425 300.7816 300.9778 300.9353 300.0287 299.9291 299.5903 299.0129 297.8028 297.131 296.6051 297.021 297.5431 297.158 296.3974 295.8422 296.3793 297.7854 298.8969 299.4561 298.7271 297.7125 294.5598 288.7501 285.737 286.9848 286.8576 285.641 285.2649 283.5393 284.3487 287.4851 287.696 286.4214 284.5707 283.744 283.0245 281.8045 279.5568 274.8227 274.3907 274.1166 274.51 274.9654 276.7964 278.1331 276.8426 276.1111 277.7264 281.2171 285.7682 287.808 290.3006 292.5421 294.5132 296.1608 298.0214 299.5983 300.6137 302.1768 303.4101 304.9198 306.5045 307.9745 309.2172 310.6475 311.926 312.5424 312.813 312.6917 312.7674 313.1004 313.334 312.9026 312.6322 312.3162 311.075 309.0982 308.4215 307.7072 306.6487 305.3782 304.1697 303.1192 301.8513 300.3274 297.3195 297.1409 297.3536 296.2992 295.6833 296.4104 297.9952 298.1776 297.721 295.2521 293.6861 291.399 289.4495 286.4132 284.2062 285.6521 286.877 288.1862 290.6132 293.944 295.7443 297.0049 295.0616 293.2637 292.0995 290.5206 292.8695 294.5378 289.5564 288.2596 288.071 285.2863 281.9871 278.6727 276.0647 275.5505 276.639 278.3215 276.5528 271.735 270.3281 269.3816 270.3875 272.2101 273.5232 273.8186 276.4384 277.9301 279.1395 280.3084 280.9645 280.7228 279.9001 277.5562 278.1152 283.529 285.1348 286.2751 287.3221 288.4326 289.2563 290.0701 290.4829 290.2202 288.5338 288.8264 288.3171 286.6077 284.7604 282.7813 280.572 278.4461 277.5098 277.3426 274.97 272.745 270.1679 268.9963 267.1504 262.9744 261.3482 258.9594 256.452 255.0129 253.7024 254.1278 257.2962 257.9972 259.2276 259.1557 258.3784 256.7274 251.8196 247.2384 244.988 245.8104 246.0873 247.4245 250.7719 254.7049 257.5286 260.2697 262.1181 261.8733 259.3937 262.0916 265.5689 265.8538 266.8849 268.4565 269.6917 269.0109 267.1476 264.3538 262.0053 258.2466 252.9059 255.4434 257.2016 262.9715 265.2422 267.2299 269.1286 271.0215 272.6729 274.6751 275.6454 276.5124 277.3502 277.7129 279.2423 279.8728 280.4311 279.8957 279.8543 279.9054 279.1417 278.7262 279.6798 280.1116 280.494 280.2766 280.0152 278.9905 277.3246 276.9798 276.7125 277.0928 277.1248 276.989 277.3059 277.526 277.7891 278.2191 278.6269 278.7023 277.7864 277.3356 277.0977 276.9736 276.7528 276.3261 275.0886 272.8683 270.2319 267.0898 268.7432 271.1649 274.0077 274.8768 271.7131 267.7965 265.2424 264.4619 266.4034 266.6439 266.8071 266.951 267.3944 267.6856 268.0726 268.3102 268.4087 268.3857 268.3032 266.7285 264.7686 262.3391 260.9047 258.6917 256.4945 255.7064 254.7154 253.3366 251.9384 250.105 247.3659 245.9767 247.6171 247.5356 243.1453 236.1588 235.9432 236.1676 236.4622 236.9782 237.0078 236.6309 236.6774 236.5305 241.3667 236.2632 234.8844 235.0374 235.1774 235.376 235.1368 234.643 234.5569 234.5008 234.4102 234.8819 235.3826 235.2922 235.853 237.4265 239.8836 240.8572 239.8325 237.7579 237.5623 237.6252 238.1039 239.0448 239.4821 236.8063 234.8446 233.8746 233.3211 233.0204 233.015 232.9916 232.9526 233.0153 232.8367 232.71 232.7449 232.6255 232.7949 232.9852 232.8438 233.1626 233.3769 233.4173 233.0345 233.3257 233.3464 233.5411 233.4062 233.2961 234.7083 234.3579 234.0812 233.9188 233.9812 234.5765 234.7281 234.7838 234.7283 234.7987 234.6729 234.5636 234.5289 234.3554 234.3816 234.5216 234.5306 232.2291 234.0552 234.0671 233.9055 234.0191 234.2804 238.9077 239.2894 239.785 239.8451 239.6604 239.0794 238.698 238.0217 236.2514 235.846 236.7321 236.9014 236.8819 237.0513 237.3082 237.9458 238.4911 239.0201 239.8044 240.8703 241.6252 241.4894 240.796 240.2674 239.9156 240.1436 240.407 240.9767 242.6222 244.4651 245.2644 246.1314 248.2372 249.8859 251.6384 253.2315 254.6889 256.7498 257.0918 257.2827 257.5555 256.9565 256.9258 256.5892 256.6732 256.9956 256.0663 255.7127 255.3115 254.5974 251.7607 250.4872 248.284 249.7466 250.8804 253.2847 254.5882 256.0892 256.962 257.2727 256.3121 256.8117 257.8562 259.2472 262.9016 265.4867 267.1107 269.8239 271.4996 273.1036 274.2883 274.8662 273.8373 273.8957 273.764 272.2647 269.6644 265.2806 258.8028 253.1975 251.9137 255.702 259.6523 264.5366 266.1313 268.2939 270.0397 271.6978 272.5008 272.4367 273.6216 274.0332 273.3828 272.5295 272.1636 271.5327 270.7011 269.4719 -9999 +-9999 302.3443 302.9564 304.8401 305.8173 305.6315 304.466 305.1307 305.938 305.6178 303.6167 300.011 302.8019 305.3814 307.6759 309.3546 311.3035 311.5861 310.9172 309.4278 307.9478 305.0608 303.2781 301.5375 299.3152 297.2665 297.8399 299.3989 299.9339 300.2917 300.6843 300.867 300.8516 300.4214 300.0643 299.603 299.6754 299.9106 299.7362 299.0189 298.87 299.0224 298.4833 297.6026 296.3397 295.7573 296.4317 296.9725 296.9251 295.6006 295.1904 295.8857 297.3609 298.8091 299.2063 299.3183 299.564 296.5862 293.3581 291.6514 290.1656 288.0671 286.9207 285.8261 285.4895 285.4135 288.3811 289.283 288.369 287.1866 286.5428 285.6216 284.385 283.7283 282.7195 273.2583 274.3567 274.0404 273.9957 274.2782 274.869 274.7072 276.1308 279.4686 282.3511 286.1274 288.2626 290.8835 293.2769 295.0559 296.5921 297.3911 297.845 298.7894 301.4976 302.6075 304.1356 305.1723 306.5912 308.32 309.868 310.7562 312.0338 313.3354 313.2649 313.2703 313.3546 313.1293 312.6511 312.184 311.729 311.0461 309.4614 308.8729 308.1367 307.3834 306.3126 305.0158 303.8397 302.6006 301.5382 299.6504 299.2495 297.774 296.7646 297.0244 298.13 299.038 298.8499 298.1461 295.1029 293.398 291.5889 288.5214 285.5309 286.2671 287.1879 288.2297 290.2169 292.788 295.9431 297.873 298.9141 297.0004 295.9749 293.9749 292.8046 294.7179 295.3407 291.7099 291.4879 291.5337 288.6664 285.2563 282.3812 281.0748 279.7861 279.5348 281.5814 281.396 277.4276 269.5991 269.8662 269.918 271.0754 272.8325 272.5909 275.5977 276.5327 277.3698 278.3316 278.7288 278.597 276.8529 276.9741 279.2751 284.0662 285.8232 287.0296 288.3066 289.3415 290.0618 290.1621 290.1289 289.6304 288.005 288.1166 287.5134 285.7606 283.8239 282.1489 277.3842 274.6584 272.3059 273.3826 269.8705 265.6289 260.3847 259.1867 258.8166 257.4837 260.1006 259.4565 258.1279 260.1644 262.6352 262.9371 261.7955 262.2375 263.4413 262.998 261.4914 259.7526 255.7543 252.873 244.988 245.8104 246.0873 247.4245 250.7719 254.7049 257.5286 260.2697 262.1181 261.8733 259.3937 262.0916 265.5689 265.8538 266.8849 268.4565 269.6917 269.0109 267.1476 264.3538 262.0053 258.2466 252.9059 255.4434 257.2016 262.9715 265.2422 267.2299 269.1286 271.0215 272.6729 274.0057 274.7298 274.5518 274.8234 275.6343 277.2415 278.1447 278.2185 278.2504 278.4174 278.5118 278.3497 277.4868 278.2491 278.9851 279.6053 279.645 279.4491 279.5684 278.2268 277.7973 278.5153 279.0112 278.8791 278.9032 279.3884 279.8884 280.2216 280.4945 280.6675 280.7091 279.4942 279.0462 278.8916 278.3925 277.7719 276.1104 274.5608 271.9417 269.7576 268.9477 270.9488 274.1752 275.2635 273.0413 269.6117 266.662 265.4317 265.7606 267.4455 268.1718 268.3723 268.723 268.966 269.1795 269.1686 269.0294 268.4457 266.9573 266.4145 265.6656 264.4367 262.9282 261.1458 259.9272 258.7826 258.7439 257.3866 255.9023 254.3937 252.5933 250.6228 250.8045 250.4481 248.1133 243.6622 236.993 235.8676 236.7331 237.4444 238.6005 238.366 237.8912 237.9677 240.0177 249.4174 250.511 241.6946 234.7448 235.0436 235.0204 235.4349 234.8233 234.4818 234.9265 234.5201 234.0388 234.3669 234.2356 234.3755 234.9302 237.9433 239.3424 239.2458 238.6283 237.7907 237.677 238.0333 238.5707 238.6436 237.8133 234.5886 234.0738 233.5402 233.317 233.3303 233.6019 233.4951 233.2475 233.0917 233.1331 233.1721 233.3117 233.8851 233.4977 233.2259 233.0113 232.5266 233.2028 232.8793 232.5927 232.3431 234.0156 236.4316 234.3349 232.1446 232.6348 232.2278 233.2528 234.4517 233.7595 234.5595 234.6365 234.5739 234.5591 234.5653 234.3539 234.3301 234.3817 234.1356 234.1928 234.3662 232.6368 234.4082 234.1689 234.0468 234.0859 234.4733 238.9445 238.6698 238.9252 239.2289 239.2939 239.2595 238.9388 238.2102 237.6394 238.1953 239.4034 239.0577 238.4189 238.7565 238.8345 239.1865 239.9037 240.3391 240.6238 239.903 240.7433 242.4204 242.7449 242.2056 241.385 241.1652 241.6822 243.0914 244.2442 244.7004 245.9557 246.8399 248.6075 250.9649 253.0444 255.1044 256.6354 259.119 259.8519 259.6534 259.8554 259.9626 259.3525 258.6296 258.7477 258.5574 258.5756 257.3247 257.6046 256.8374 256.1039 253.9934 251.3688 250.0237 250.3582 251.9669 252.7102 253.6748 254.1968 255.6544 256.4005 257.5618 259.0989 260.6275 264.5378 267.9526 269.6912 271.7592 272.8395 273.4584 275.2895 274.2512 272.8071 272.689 272.3929 271.3901 268.888 265.8545 260.9517 254.1201 250.6569 253.9874 258.524 261.2164 264.2014 266.3908 268.2112 269.4973 269.6611 269.3942 270.493 271.2752 270.8965 270.2267 270.5501 270.3993 269.401 268.9166 -9999 +-9999 299.2904 302.4637 303.9194 304.4055 304.4693 302.9973 303.5945 304.4646 303.2434 300.47 300.4646 303.8921 306.3351 308.3995 310.6713 312.7837 312.9059 311.5419 309.8902 308.2061 304.6522 302.9325 301.2314 299.6319 296.8896 295.9139 296.7977 297.8593 297.9203 298.5748 299.0329 299.0574 298.6159 298.4182 298.2755 298.9037 299.0814 298.8302 298.3877 298.378 297.9135 297.5057 296.4241 295.468 294.8779 295.7872 296.6429 295.8362 294.6312 294.1776 295.9078 297.3765 298.0647 299.6197 300.2691 300.3657 297.5177 295.6511 293.2122 291.852 290.0823 288.772 287.6312 286.2901 285.9223 289.1189 290.1613 290.0996 289.5797 288.7575 287.4504 286.3891 285.4102 284.9651 280.0753 274.6043 273.8525 273.5083 273.7786 273.8041 274.391 276.9551 279.9507 282.326 286.2274 288.9493 291.3016 294.2 295.1175 295.3648 295.5645 296.6511 298.4397 301.0787 302.6623 303.975 304.8539 305.8728 307.1107 308.3152 309.374 311.016 312.6346 313.2917 313.1115 312.5748 312.1482 311.3222 311.1191 310.7811 310.2781 309.1352 308.2146 308.1205 307.6547 307.0208 305.6753 304.6465 303.8319 303.0256 301.0854 299.8129 298.0776 298.3074 299.4525 299.9007 299.7613 298.9486 297.9428 294.993 293.6605 291.6834 288.5175 285.1458 287.8087 289.8369 290.8686 292.1382 294.5674 296.263 298.8551 300.713 298.7757 297.7113 295.5479 295.097 296.6618 297.4855 294.865 294.2666 293.203 290.2869 286.8112 285.9756 285.0301 283.5737 282.2636 283.3878 284.1165 280.1076 271.1003 269.9024 269.4538 270.4328 270.9091 272.1002 274.6997 275.3322 276.0562 276.324 275.8668 275.4758 276.1348 278.1667 280.5703 284.828 286.1569 287.7248 288.7773 289.6241 289.7967 289.2882 288.932 288.3264 288.005 288.1166 287.5134 285.7606 283.8239 282.1489 277.3842 274.6584 272.3059 273.3826 269.8705 265.6289 260.3847 259.1867 258.8166 257.4837 260.1006 259.4565 258.1279 260.1644 262.6352 262.9371 261.7955 262.2375 263.4413 262.998 261.4914 259.7526 255.7543 252.873 248.5629 245.8737 245.8727 246.0251 246.7655 251.4755 253.9047 258.0988 258.7122 258.1546 258.9502 262.8665 264.3691 264.3882 265.4336 267.1989 267.4655 267.0128 265.5273 262.8304 258.7535 255.0835 252.3043 254.9485 257.336 263.3252 265.2589 266.6859 267.9863 269.5161 271.1414 271.7173 271.6709 272.043 272.2607 274.0886 275.2115 276.0569 276.1298 276.347 277.0793 277.2156 277.2257 276.6026 277.0846 277.8744 278.3061 278.7111 278.9642 279.0774 279.5403 279.1888 279.6277 280.4938 280.5898 280.6936 280.8839 281.5861 282.1714 282.6196 282.5139 281.9276 281.1133 280.8166 280.2553 279.2766 277.4186 275.811 273.2431 271.5887 270.8008 270.6373 273.2475 275.2648 274.2067 271.323 268.1283 266.9762 266.5637 266.7935 268.7695 269.0813 269.6333 270.0824 269.8328 269.3141 268.8927 268.7804 267.8596 265.6004 265.314 265.0342 263.8096 262.9361 261.6259 261.0435 261.3937 260.9196 258.9704 257.3341 256.2655 255.0988 253.3716 251.486 248.5952 245.5199 239.5703 236.7642 237.0106 237.6982 239.6304 240.2785 239.9447 239.2359 239.9411 246.59 257.6861 259.7786 251.3401 236.7605 234.7518 234.7409 234.9259 234.6277 234.6714 234.7753 234.4374 234.2707 234.1752 234.0328 234.0915 234.2544 235.3355 237.1184 237.6842 238.3546 237.8124 237.7198 237.6686 238.1197 238.09 237.9663 236.5072 234.2316 233.6161 233.7275 233.7752 233.8286 233.6889 233.621 233.7632 234.0892 232.9888 233.4582 233.5281 233.1623 233.0993 232.895 233.1227 233.1375 233.4661 233.5043 236.1784 234.8146 234.9877 233.3617 234.3794 234.4503 234.5225 232.4641 232.2344 234.4199 234.3772 234.4246 234.3816 234.4125 234.2807 234.1969 233.9928 233.8776 233.9675 234.2513 234.2358 234.0437 233.8981 234.1138 234.0292 234.0701 235.8087 239.3607 238.642 238.4114 238.6195 239.0228 239.3445 239.4444 239.2451 239.1608 239.1943 239.761 239.7263 240.0649 240.6156 241.191 241.5483 241.8535 241.7657 241.2794 242.544 242.2313 241.7395 241.3253 243.4007 244.0795 244.5275 244.9783 245.4301 246.0017 246.8138 246.0404 247.415 248.9406 251.1046 253.3941 255.3306 257.3502 260.2025 261.3195 261.8944 261.8864 262.1589 261.8847 261.2473 260.116 259.7214 260.2925 259.6059 259.7584 259.0049 258.2473 257.3123 254.4223 252.2905 250.2782 251.7066 252.9232 253.977 255.2349 256.193 257.485 259.1631 260.4265 262.4898 266.036 268.1178 270.9814 272.7003 274.3984 275.2317 274.7732 274.0853 271.2047 271.0647 270.1357 269.2188 267.6098 264.9298 261.0749 255.61 248.9891 252.6496 256.6906 260.5537 262.88 264.6755 265.9734 267.0665 267.0618 266.8727 267.1035 268.6162 268.2242 267.4587 267.9521 267.6537 267.3775 266.7642 -9999 +-9999 296.7885 301.9229 303.3262 303.6211 303.0667 301.4747 301.078 301.5486 299.6926 296.528 300.6641 304.3325 307.412 310.0082 312.2209 314.1064 313.7409 311.6527 310.3172 309.0599 305.2403 303.2547 300.7175 299.232 297.1549 296.0137 294.9689 294.4398 294.808 295.3353 295.9593 295.8332 295.7269 296.5623 297.3151 298.0056 298.3295 298.1494 297.3628 297.1168 296.6675 296.7678 295.5549 294.9695 294.3624 294.8015 295.7339 294.2014 293.4759 294.4024 295.4686 297.0057 298.4201 299.4616 300.4109 300.7794 298.6771 296.7654 295.0425 293.6976 292.596 291.3079 289.1967 288.3375 286.9322 289.63 291.3888 291.7478 291.1055 290.7235 289.6118 288.2132 286.8327 285.6399 281.4512 278.1508 274.9391 273.114 273.5404 274.1813 274.4833 274.9583 277.7527 280.8694 285.6759 288.3185 290.1936 291.7432 292.2788 293.1642 295.127 297.0736 298.9641 302.2139 303.769 305.0788 306.401 307.7393 309.6316 310.8193 311.3959 310.9482 311.7629 312.3465 311.8421 311.1616 311.2426 310.7677 310.0668 310.0236 309.4114 308.2775 307.4586 307.0472 306.9848 306.6203 306.8515 305.8238 304.931 304.2662 302.1237 300.6934 298.9453 299.3354 300.8763 300.9926 300.4576 299.3569 297.969 295.5125 293.8035 291.4143 287.6266 286.4952 289.2619 291.5518 292.8622 293.7634 296.8593 297.7473 299.5782 301.1091 300.0908 298.1802 296.3265 297.9426 299.6632 299.9651 297.5025 296.0713 293.9566 290.8896 289.5863 289.4904 285.0301 283.5737 282.2636 283.3878 284.1165 280.1076 271.1003 269.9024 269.4538 270.4328 270.9091 272.1002 274.6997 275.3322 276.0562 276.324 275.8668 275.4758 276.1348 278.1667 280.5703 284.828 286.1569 287.7248 288.7773 289.6241 289.7967 289.2882 288.932 288.3264 286.3983 287.942 287.4569 285.7601 283.7083 281.092 279.6834 278.4832 276.9776 268.5258 266.8954 267.1333 265.903 264.4787 264.6323 260.1644 264.0969 262.5055 264.4064 267.593 269.7583 268.0226 266.0479 266.3091 267.1748 266.5401 264.5864 261.0253 257.282 254.0688 253.338 249.5612 244.5879 245.2956 249.9608 252.4254 251.283 254.8411 255.0681 253.1707 258.3259 260.9077 262.3598 262.7237 264.2102 265.3952 265.0522 264.9045 263.7616 261.3005 255.4458 250.9979 253.0538 254.6434 257.6237 261.6045 262.8081 263.6661 264.5645 265.7905 266.6372 266.7411 266.9773 267.846 269.4258 271.2122 272.9068 273.1942 273.814 274.5367 275.5555 276.4263 276.2534 275.4269 275.5643 275.9833 276.5337 277.0252 277.4259 278.5435 278.9217 279.6965 280.2639 281.3179 281.8072 281.9728 282.3123 282.9146 283.6725 283.8866 283.8371 283.026 282.4227 281.631 280.7791 279.1373 276.8181 274.992 273.2043 271.574 271.2675 271.3127 273.3658 272.9419 271.4585 269.781 268.0042 267.1874 267.024 267.2374 268.6931 268.7007 268.4152 268.0645 268.3474 268.1815 267.8112 267.7733 267.452 265.0378 264.5543 263.7428 263.3972 262.3059 262.1308 262.7567 262.6623 261.9754 259.1517 257.6732 256.2283 254.5001 252.4851 250.1558 247.5315 243.4243 241.8675 237.8046 238.4272 241.4171 242.4732 242.6689 242.8147 240.8586 241.1885 243.5941 252.4626 253.2109 244.3693 236.9099 236.8615 234.959 234.6851 234.6982 234.4672 234.2665 234.7158 234.1838 233.9583 234.0085 233.9844 234.0439 234.81 236.0999 236.7713 237.837 238.0104 238.2152 237.9402 237.6426 237.7469 237.406 237.5172 233.7867 233.7588 233.7765 234.0161 234.3881 234.4474 233.4753 232.9119 233.2501 233.2939 233.1796 233.1838 232.9457 232.8845 232.9989 233.0308 233.0165 235.2733 238.1759 238.4396 237.0529 232.087 234.4826 234.0307 234.3446 234.4746 234.6147 234.7048 234.1862 234.3659 234.3525 234.252 234.2647 234.2463 233.9962 233.6379 233.6723 233.7803 234.0182 234.1961 234.7737 233.4343 233.9272 234.0701 234.0126 234.7 238.1255 237.5292 237.5417 237.985 238.2027 238.3251 238.4488 238.7748 239.2134 239.5622 240.4792 240.2989 240.5621 240.8458 241.165 241.363 241.5651 241.8766 241.9984 243.0394 243.743 244.0322 243.5168 243.1531 243.0026 243.6973 244.8524 246.7156 247.9425 248.5648 248.1954 247.3797 248.6999 250.9238 253.1743 255.029 257.2168 260.4883 261.3759 262.2365 263.0108 263.8168 264.0916 263.2467 262.1683 261.2265 262.1005 261.7362 261.8834 261.5328 260.5031 259.2118 257.9362 255.953 253.1353 253.0709 253.7378 255.0747 256.4402 256.6971 258.5553 259.772 261.57 263.3484 267.9862 270.13 272.6698 273.8675 275.0362 275.1336 274.1703 272.5562 269.806 268.1127 267.8347 267.0153 265.4463 263.3237 260.2341 254.8441 249.3525 251.218 254.1532 259.2949 261.1231 262.8236 264.1114 264.3515 264.2192 263.179 263.9444 265.271 264.6101 264.1079 263.8379 264.151 264.4085 263.2355 -9999 +-9999 298.3698 302.1516 302.8199 303.2468 301.9139 300.0148 298.4433 298.416 295.4073 294.2754 301.3284 305.2806 308.0746 311.0345 313.3807 314.287 313.7058 312.0396 310.8927 310.0152 306.9078 304.4384 300.5629 299.8854 299.6492 297.9977 296.8623 296.5105 294.3576 293.4829 293.6531 293.2975 293.9677 294.8176 296.0032 296.9569 297.1734 296.7564 296.0309 296.1537 295.8075 295.2005 294.8873 294.3482 293.9306 293.9922 294.5475 292.9669 293.1773 294.2315 295.5509 297.0138 298.1393 299.2119 300.2137 300.6835 299.4493 298.2177 296.9153 295.9512 294.349 292.7374 291.6857 289.6649 288.6647 291.0858 292.243 293.1554 293.0055 292.1436 290.7649 288.7736 286.1868 283.7102 277.6927 274.6047 273.908 273.34 273.4323 273.5754 273.8947 274.5489 275.6332 280.3004 283.1852 285.8816 287.304 288.643 291.2576 293.2447 295.1869 296.5804 298.1919 301.4343 303.2492 305.4249 307.2415 308.82 310.5836 312.4328 312.9323 312.0265 312.1469 311.5556 310.336 309.6357 309.9821 309.8144 309.6826 309.9118 309.2954 307.3806 306.3959 305.73 305.6494 305.3375 306.4247 306.8153 306.0477 305.363 303.3592 301.6958 300.6618 300.5624 301.6366 300.9926 300.4576 299.3569 297.969 295.5125 293.8035 291.4143 287.6266 286.4952 289.2619 291.5518 292.8622 293.7634 296.8593 297.7473 299.5782 301.1091 300.0908 298.1802 296.3265 297.9426 299.6632 299.9651 297.5025 296.0713 293.9566 290.8896 289.5863 289.4904 288.074 286.2679 284.8292 284.2412 283.2602 280.052 273.6573 269.8934 268.4832 269.5146 270.1276 271.1206 273.1376 272.8284 272.9976 273.1842 274.8164 276.5006 277.977 280.0822 282.0844 284.7982 286.3657 287.7219 288.6832 289.1005 288.9563 288.0894 287.4055 286.5636 286.2821 287.7307 287.5753 286.1445 284.1139 282.8824 281.6659 280.3733 278.2516 276.0034 272.8314 269.7655 267.5812 267.1985 267.6353 262.7634 267.6328 268.4566 271.0705 272.9231 274.8036 273.083 270.1533 270.4195 271.0535 269.5666 267.2715 261.016 258.0192 259.3968 258.2281 255.4468 250.5888 245.1283 245.5519 246.3073 247.158 248.9405 248.7783 253.8091 256.7815 258.8656 260.5461 261.9933 263.1769 263.4277 263.3695 262.8069 260.8953 257.2989 251.2448 251.4201 252.8454 254.4112 255.0151 257.417 258.1853 259.2462 259.9288 260.4222 259.7321 259.777 260.9394 261.6398 265.2303 269.877 271.9377 272.4924 273.2896 274.1351 275.45 275.5461 275.186 273.8396 273.9744 274.0732 274.2148 275.264 275.6202 276.9781 277.8738 278.7529 280.3797 281.1171 281.8823 282.4955 283.0928 283.5825 283.8162 284.0107 283.7926 283.0504 282.4442 281.1735 279.5706 277.5948 275.3069 273.782 272.5672 272.2862 272.8707 271.1539 271.3524 269.9086 268.7437 267.9135 267.6421 266.8158 266.0984 266.4367 267.6094 266.9464 266.0838 265.9272 266.3574 266.522 266.4078 266.6702 266.5712 264.6624 263.7772 262.8381 262.076 261.0955 260.9638 261.9897 262.078 261.3773 258.4626 256.6664 254.7718 253.1048 251.4225 248.8172 245.367 241.8725 241.8822 241.8835 243.057 246.0647 246.8504 245.5136 245.8658 242.7359 243.5117 244.2195 248.8333 250.768 248.1423 243.3645 243.4701 245.3969 241.7157 235.961 234.4609 234.5494 235.2374 234.6747 234.2092 233.9746 234.1615 234.1688 234.2115 235.5821 236.0861 237.5562 237.9514 237.789 237.5768 237.738 238.0097 236.9568 235.7518 234.0019 234.2404 234.5998 234.6735 232.8808 234.4054 233.5699 233.2663 233.1079 233.0069 233.0774 233.0888 233.0494 233.2051 233.3017 233.0519 236.1648 238.9798 240.423 241.1565 237.5192 232.0051 234.2325 234.0122 234.0755 234.2262 234.0769 233.9483 234.1682 234.1808 234.157 234.0951 233.8487 233.563 233.4463 233.3982 233.5098 233.8138 233.9719 234.1455 233.6109 233.6644 234.1173 234.0734 234.0727 233.9785 237.8406 237.5331 237.3234 237.5002 237.9726 238.1211 238.3533 238.4003 238.9837 239.7617 240.0414 240.3136 240.663 240.9497 241.2624 241.5532 241.9546 242.3478 242.462 243.1323 244.1867 244.75 245.292 245.4185 244.823 244.3427 243.8521 244.7092 248.4711 249.1439 249.519 249.2238 248.6545 249.8458 252.0723 254.7391 257.0903 259.243 259.9251 261.1858 262.4496 263.7364 264.3378 264.2821 263.1949 262.8667 263.8121 263.7288 263.5633 263.4422 262.5906 261.4354 259.7827 258.1888 254.6599 253.7133 254.5587 256.423 257.9123 257.4554 259.2029 260.8668 262.3848 264.2907 268.4898 271.1339 273.5589 274.5948 275.4368 275.1191 273.7854 271.0711 268.1609 264.4314 264.9643 263.5273 262.2025 260.0906 257.091 252.362 247.683 249.3695 251.1636 257.2698 261.1231 262.8236 264.1114 264.3515 264.2192 263.179 263.9444 265.271 264.6101 264.1079 263.8379 264.151 264.4085 263.2355 -9999 +-9999 300.3331 301.8971 302.9347 302.1566 300.3282 298.7229 297.4887 295.2522 293.4688 294.0417 302.1834 305.9116 309.1245 311.3549 312.972 313.6973 312.9753 311.9405 311.2335 309.6601 308.5102 307.4284 305.4265 304.7426 303.6996 301.7306 300.2638 299.298 297.69 294.2879 292.6271 292.5744 292.5184 293.4273 294.4387 295.3174 295.3209 295.0441 295.0769 295.6633 295.7354 294.8436 293.8435 293.5638 292.9299 293.3882 293.5021 292.6184 292.9174 294.0822 295.526 296.765 297.7317 298.615 299.0455 299.7002 299.4123 298.4906 297.5917 296.7074 295.9343 294.3625 292.9145 291.5501 290.331 292.1667 293.4268 294.2475 293.9268 292.2133 290.2303 287.7861 284.8954 281.6057 274.5918 273.6137 272.88 273.4781 273.2488 273.8203 274.8059 275.2529 276.2222 279.8747 280.8697 283.6723 286.6407 288.8356 290.3113 292.0729 294.3533 295.7523 298.481 301.9331 303.2455 304.8678 306.3313 308.82 310.5836 312.4328 312.9323 312.0265 312.1469 311.5556 310.336 309.6357 309.9821 309.8144 309.6826 309.9118 309.2954 307.3806 306.3959 305.73 305.6494 305.3375 306.4247 306.8153 306.0477 305.363 303.3592 301.6958 300.6618 300.5624 301.6366 302.1833 301.0001 300.0857 298.6155 295.9531 294.1479 291.3733 287.8878 288.3933 291.4344 293.28 294.4717 295.6306 298.991 299.9508 301.8924 302.3983 301.059 298.9438 298.0156 299.5921 301.8024 302.0332 299.4593 296.9872 294.7142 293.42 292.9604 291.9432 290.2066 287.9896 286.099 282.3394 280.2376 277.7885 273.4247 269.9708 267.9532 269.2396 269.2133 269.9304 270.5129 271.6653 273.7455 276.7689 279.1203 279.9145 281.1725 282.2773 283.4739 285.201 285.9754 287.0868 287.9856 288.2665 287.8144 286.7735 286.1208 285.1474 285.7557 287.0995 287.8078 286.9037 285.5907 284.2107 282.8627 281.2163 281.1618 278.3221 275.5365 274.51 272.7791 270.8817 269.7567 263.975 269.566 271.4736 275.1492 276.8495 279.0663 277.8288 274.7724 274.5891 274.5918 272.3991 269.0059 262.4706 262.9366 263.7467 263.412 261.5432 257.5991 251.8466 245.2449 245.3795 245.7977 248.2566 252.4637 253.3837 255.2454 256.8564 259.6736 261.0168 261.2839 261.0924 259.8312 258.9449 255.8849 251.5198 249.2166 252.5495 254.6452 254.95 256.2144 253.3708 253.8006 255.0729 257.2309 261.235 259.8261 261.5233 263.4245 265.3239 271.1918 274.2043 274.6502 274.6956 274.8744 275.2608 275.4896 274.7107 273.6057 272.2275 271.7852 271.8766 272.5822 273.3188 274.2486 275.6699 277.0057 277.4493 279.7574 280.93 281.4113 282.3655 282.8336 283.0258 283.0161 282.6907 282.2915 282.0091 281.667 279.9543 278.3757 276.2918 274.3915 273.6393 273.5652 273.9243 273.8201 270.8868 270.049 268.7232 266.9742 265.151 264.9287 265.082 265.0617 265.4291 265.8717 265.109 264.3636 264.0799 264.0363 264.0779 264.469 265.2271 265.369 263.824 262.9345 262.2625 261.1097 259.7728 259.234 260.1723 260.105 259.3182 257.136 255.384 252.2897 250.6167 249.0272 246.4471 242.2923 241.8994 241.8964 243.188 247.3392 250.2784 250.7627 249.0232 248.4422 249.8235 247.8584 249.3861 249.4181 252.3766 251.718 246.1115 250.3492 249.8267 245.7026 240.3715 236.7243 234.3403 234.5609 234.6581 234.9637 234.8853 234.0342 234.1022 234.5676 235.1416 235.9045 235.996 235.6663 234.3555 234.2472 234.4081 235.5302 235.8774 234.801 234.6734 233.8129 234.1921 234.3632 233.8847 233.767 233.534 233.2522 233.1309 233.1349 233.0447 233.0626 233.0872 233.0899 233.1706 233.8593 238.0201 240.548 242.3128 242.4116 235.5707 232.0341 234.0601 233.8763 234.0518 232.7165 232.9081 233.7542 234.2896 233.8427 233.562 233.4164 233.2096 233.6671 233.9595 233.8389 233.6734 233.8024 234.2 234.0588 232.1115 234.2853 234.1336 233.8935 234.1857 233.9061 237.4696 238.8342 239.613 239.5152 239.3422 238.7392 238.7059 238.8358 239.884 240.3131 240.0284 240.1948 240.6742 241.1049 241.4931 241.7813 242.0665 242.2656 242.5399 243.683 244.3022 244.9129 245.451 245.9172 246.2248 247.015 247.0149 247.344 248.3799 248.5517 248.955 249.407 249.4314 249.6181 251.3329 253.5061 255.4556 257.3893 258.4452 259.9773 261.3512 262.6472 263.4944 264.4207 263.1949 262.8667 263.8121 263.7288 263.5633 263.4422 262.5906 261.4354 259.7827 258.1888 254.6599 253.7133 254.5587 256.423 257.9123 257.4554 259.2029 260.8668 262.3848 264.2907 268.4898 271.1339 273.5589 274.5948 275.4368 275.1191 273.7854 271.0711 268.1609 264.4314 264.9643 263.5273 262.2025 260.0906 257.091 252.362 247.683 249.3695 251.1636 257.2698 259.089 260.1259 261.3333 261.9685 261.7101 260.6688 261.1673 262.4371 261.2097 261.3065 260.0915 261.0295 260.9641 258.7179 -9999 +-9999 301.5943 302.4564 301.7666 300.3662 298.5504 296.6141 294.532 292.7878 293.5722 295.9585 302.5419 306.4955 308.7362 310.8421 312.1799 312.7204 312.537 311.8703 311.0703 310.6992 310.2305 309.5149 308.3308 307.3243 306.1774 304.3075 302.6702 301.6165 300.6167 297.2018 295.3333 294.1924 292.279 292.581 292.362 292.2492 292.9779 293.4727 293.6128 294.3055 294.71 294.5687 293.0262 292.4662 292.1953 292.3571 291.9409 291.5873 292.6397 293.897 295.1757 296.24 296.6244 297.2787 297.1622 297.9987 298.5551 297.6252 296.998 296.0489 295.5406 294.8374 293.6435 292.3771 291.8847 293.4477 294.2436 294.636 293.6801 292.2133 290.2303 287.7861 284.8954 281.6057 274.5918 273.6137 272.88 273.4781 273.2488 273.8203 274.8059 275.2529 276.2222 279.8747 280.8697 283.6723 286.6407 288.8356 290.3113 292.0729 294.3533 295.7523 298.481 301.9331 303.2455 304.8678 306.3313 307.7234 309.5019 312.3913 314.2666 313.4274 311.025 310.1512 308.5524 307.7458 308.4039 308.5433 308.9481 308.9574 308.3745 307.5688 305.8643 303.8466 303.9786 304.9919 305.3773 306.0135 306.6232 306.3411 304.2007 303.3987 303.0901 302.5457 302.7368 302.8148 301.9813 300.4807 299.0156 296.1829 293.8412 290.6054 289.0495 288.5804 291.9282 294.2693 295.7182 296.8086 300.666 302.5915 304.3381 303.9334 302.3809 300.3779 299.1089 300.226 302.4343 302.6068 300.4273 298.4298 297.0044 296.4623 295.2731 292.9618 290.5916 288.2783 285.5612 278.5906 274.7401 272.8667 273.3936 271.0521 269.2352 268.1086 268.8071 268.6458 270.4013 273.4565 276.4718 279.3067 281.3343 282.6662 283.9319 283.7917 284.0865 284.346 285.5549 286.2596 286.9106 287.1136 286.3553 285.7732 284.7956 284.3427 285.3982 286.6497 287.5876 287.5739 286.4727 284.7587 283.2498 282.6826 282.8037 279.7891 277.3896 275.783 273.7959 271.9072 268.6483 270.7152 272.268 273.6076 278.384 280.3106 282.3547 281.5905 278.7248 278.1591 277.7617 275.0488 270.8129 268.2322 267.5491 267.6718 267.6649 266.1796 262.2024 256.1426 250.048 243.7262 245.0861 245.7342 249.2523 252.5897 254.6932 257.0454 258.9105 259.1554 259.1519 258.5898 255.9881 254.3205 249.8264 249.7341 252.1135 255.4419 258.0213 259.2245 260.2433 262.4503 263.2339 263.9208 264.9013 266.4328 266.9105 266.3 265.9633 268.1797 274.332 276.2237 276.4329 276.5208 276.2258 275.6743 274.997 273.6629 271.8913 269.4709 269.1662 269.5905 271.0366 272.4321 273.1889 274.5531 275.9129 276.2765 278.6371 279.8575 280.6825 281.5381 282.3227 282.6342 282.0963 281.5118 280.8563 280.3938 280.1689 278.9585 276.9973 275.6924 274.9735 274.8327 275.4755 274.9479 272.1023 270.1313 268.1941 267.2008 264.426 261.1875 259.7821 260.6537 262.4543 263.4584 263.1567 262.5262 262.1732 262.1139 262.1555 261.878 262.2534 263.4376 263.9087 263.2453 262.5129 261.2635 259.9449 259.0609 257.6355 257.9247 257.8478 257.4166 255.5277 253.9027 251.6326 249.379 247.1169 242.1477 241.9188 241.9121 241.9062 248.2121 251.4999 254.8451 255.5286 253.8313 250.4971 254.7867 255.3282 252.2572 252.9156 253.5018 254.3361 251.4815 251.138 250.2381 245.5843 245.261 235.0255 234.3716 234.4393 234.5012 234.1678 234.7516 234.5414 234.7105 234.6825 234.7628 234.3065 234.2347 234.1642 234.3824 234.2628 234.1984 234.4214 234.8285 234.8581 232.8565 234.3882 233.999 233.6823 233.4258 233.376 233.3348 233.223 233.1307 233.226 232.9621 233.0405 233.1685 233.2493 233.0279 236.3586 240.3322 242.7525 244.4163 243.0268 236.8367 231.8154 233.463 233.6107 234.0659 231.5911 231.7794 231.6134 233.9206 233.7558 233.7967 233.6366 231.7758 232.1353 232.2293 231.935 231.756 232.4213 232.0312 233.2419 234.2645 234.2551 233.9658 233.9305 233.7793 233.1465 238.8768 238.9965 239.4775 239.7981 239.3966 239.1061 238.7059 238.8358 239.884 240.3131 240.0284 240.1948 240.6742 241.1049 241.4931 241.7813 242.0665 242.2656 242.5399 243.683 244.3022 244.9129 245.451 245.9172 246.2248 247.015 247.0149 247.344 248.3799 248.5517 248.955 249.407 249.4314 249.6181 251.3329 253.5061 255.4556 257.3893 258.4452 259.9773 261.3512 262.6472 263.4944 264.4207 264.6057 264.2302 265.0162 264.9096 264.9776 264.968 263.7485 262.5785 260.8194 259.0205 255.9994 254.8213 255.878 257.1973 258.8252 259.2358 259.7109 260.9624 262.4719 265.5189 269.6281 270.8571 273.4486 274.7687 275.6673 274.903 273.853 269.9568 267.0615 260.6584 260.577 259.6148 258.068 256.2073 253.4201 251.0565 249.1635 247.0675 247.7325 252.7975 255.2089 256.9776 258.094 258.5449 258.4713 258.2924 258.1411 259.0057 257.0477 258.156 255.8948 257.028 255.9893 254.5497 -9999 +-9999 303.1967 301.8369 300.4413 298.4721 296.2004 293.6998 291.6711 293.0765 297.3375 300.3249 304.4737 306.9045 308.7455 310.2186 311.2768 311.5514 311.6414 311.4677 310.7927 311.3586 311.2806 310.7542 309.7907 308.8007 307.6274 306.9509 304.7723 303.7173 302.5535 299.0055 297.5676 296.7659 294.0044 293.0884 292.0645 290.8024 289.8673 290.533 291.5971 292.7562 293.1661 293.0887 293.0262 292.4662 292.1953 292.3571 291.9409 291.5873 292.6397 293.897 295.1757 296.24 296.6244 297.2787 297.1622 297.9987 298.5551 297.6252 296.998 296.0489 295.5406 294.8374 293.6435 292.3771 291.8847 293.4477 294.2436 294.636 293.6801 291.456 289.2438 287.3078 284.2698 280.8613 273.8573 273.5109 273.4518 272.662 274.7725 276.7089 277.1465 279.374 281.2474 284.7263 285.5928 286.3508 288.5035 291.6438 293.5967 295.5398 298.027 299.4976 300.7265 303.6933 305.172 306.5706 307.1527 307.7841 308.8192 311.1597 312.5486 312.2759 309.4584 308.4877 306.9337 305.8988 306.8151 307.7773 308.238 308.0287 307.5053 306.8379 305.2122 303.5056 302.7069 303.1897 304.8275 305.2327 305.9183 306.3561 305.3991 304.846 304.6063 304.6084 304.1076 303.0768 302.2564 300.4835 299.0228 295.7775 292.8638 290.0389 288.7007 289.7181 292.1143 295.2117 297.0891 298.1745 301.6697 304.1579 305.8343 305.13 303.553 301.9517 300.594 300.809 302.1383 301.8271 300.5332 299.1874 297.9743 296.9463 294.9656 292.4413 289.8216 286.9496 277.7896 275.947 279.5689 280.5352 280.1031 276.7147 275.1731 274.2109 268.5068 268.6882 270.1348 272.3385 274.8084 278.2018 280.9888 283.0558 283.67 283.6277 283.2102 282.7149 284.2016 285.1172 285.5547 286.0468 285.3675 283.9286 283.3364 282.498 285.0993 286.5613 287.6341 287.7163 286.261 284.8087 284.0192 284.323 283.8209 280.194 277.9692 275.6513 273.3948 271.4524 273.3906 274.7716 274.6691 275.8577 280.6422 282.585 284.5353 284.2138 282.1526 281.1932 280.4727 276.7752 272.3054 271.7967 270.8114 270.2354 269.671 267.2252 262.8773 257.8209 252.4494 246.7031 244.9772 244.665 247.3565 251.6256 253.5966 255.7802 256.9045 257.4424 257.196 255.8177 252.314 251.5529 247.5571 250.7351 253.1684 256.3107 258.6717 260.7252 262.0558 264.6485 266.4612 267.8406 268.9126 269.7133 270.9204 271.4682 271.6452 272.4643 276.3132 277.6618 277.9694 277.7593 276.6677 275.3696 273.9333 272.752 269.7669 267.2188 266.96 268.2234 270.2299 271.3312 272.6184 273.3701 274.5267 275.201 277.3865 278.4612 279.9178 280.7786 281.4182 282.0106 281.844 281.1329 280.068 280.2304 278.225 277.478 276.3449 275.7693 275.865 276.5464 276.4243 275.5432 271.7458 269.9141 268.502 267.0414 263.9119 260.3977 257.1534 256.4014 258.5812 260.1612 259.8726 260.3561 259.8568 260.11 260.2089 259.5796 260.0486 261.4033 261.9818 262.2156 261.9909 261.1028 259.6277 257.8053 256.8129 255.9506 255.8278 255.1225 254.6363 252.8945 250.1385 247.4922 243.0638 241.9359 241.9306 241.8946 244.285 251.1994 255.0005 258.3066 259.8339 258.4895 253.0972 254.625 259.0151 257.864 256.1635 255.4301 255.8162 252.3859 254.6007 253.1765 250.6968 247.3904 234.8165 234.2139 234.2453 234.3122 234.2504 234.4877 234.3707 234.2046 234.5165 234.5498 234.6619 234.6465 234.5779 234.6151 234.5065 234.2596 234.4722 234.0754 235.4187 234.2711 233.7685 233.7835 233.3859 233.4395 233.3448 233.2784 233.228 233.1764 233.0773 233.1751 233.1812 233.2406 233.2129 233.4159 236.3586 240.3322 242.7525 244.4163 243.0268 236.8367 231.8154 233.463 233.6107 234.0659 231.5911 231.7794 231.6134 233.9206 233.7558 233.7967 233.6366 231.7758 232.1353 232.2293 231.935 231.756 232.4213 232.0312 233.2419 234.2645 234.2551 233.9658 233.9305 233.7793 233.1465 238.8768 238.9965 239.4775 239.7981 239.3966 239.1061 239.2939 239.6876 240.392 240.5602 240.2278 240.3636 240.6584 241.0739 241.3594 241.3736 240.8311 240.5863 240.8636 242.8962 244.1288 245.024 245.8858 246.4896 246.9957 247.8642 248.8165 248.6258 250.3638 249.5318 249.0247 249.1891 249.6364 250.4768 251.2297 252.622 253.6656 255.8959 257.0961 258.4913 259.8615 261.0857 262.7086 264.0692 265.2178 265.4672 266.0341 266.0493 266.0651 266.0233 264.7536 263.4349 261.5699 259.1812 256.6308 256.7226 257.5023 259.1977 260.3429 260.4033 260.0241 261.414 262.7396 264.9643 269.2991 271.2829 272.9803 274.5523 275.5181 274.7564 272.9219 269.6463 265.7772 258.9095 254.3011 254.1818 251.8049 250.1078 250.4405 248.9718 247.1214 246.2486 246.4943 248.3163 250.7908 252.5961 253.169 254.0351 254.6284 255.241 254.2062 255.5831 253.7144 253.6573 251.9739 252.0525 250.5707 250.6415 -9999 +-9999 302.931 300.9508 299.4166 296.6411 292.6113 289.4443 292.7112 296.6454 299.8309 302.5696 305.5194 307.1806 308.5981 309.6241 310.0681 311.5514 311.6414 311.4677 310.7927 311.3586 311.2806 310.7542 309.7907 308.8007 307.6274 306.9509 304.7723 303.7173 301.0375 299.0055 297.5676 296.7659 294.0044 293.0884 292.0645 290.8024 289.8673 290.533 291.5971 292.7562 293.1661 293.0887 291.675 291.6596 291.8467 290.6216 290.5345 290.7522 291.915 293.3231 294.5185 295.7064 295.9793 296.2473 296.2359 296.8303 296.7215 295.8 294.7177 294.6389 294.0693 293.8892 293.347 292.7303 292.756 294.1852 294.4038 294.1946 293.3642 291.3112 289.267 287.4762 285.1763 282.3842 274.8623 273.3594 273.2725 273.1231 277.289 279.5255 280.7451 280.9164 283.4306 286.8233 288.9506 289.1141 291.2274 293.4178 295.3552 297.2341 298.929 301.0735 303.897 304.767 306.6538 307.8635 308.3159 308.326 309.3072 309.8613 310.7197 310.3328 308.2074 306.5542 304.9689 304.7917 306.0728 306.6806 306.884 306.6367 306.1234 305.8261 304.5837 303.3893 301.8066 301.5668 303.0365 304.8097 305.127 305.6732 306.4175 306.2067 305.7676 305.2316 304.1465 303.1919 302.0826 300.4367 298.8255 294.4656 291.8619 291.0471 292.1712 292.14 294.3548 296.4854 298.2377 299.5674 303.0352 304.9613 306.1755 306.3197 305.1237 303.428 302.102 301.7161 301.9008 300.0515 299.3364 298.026 296.4546 294.973 293.0864 290.7967 288.2693 283.9387 279.4189 282.5362 283.8785 284.4119 283.6137 281.508 281.4045 280.7661 276.1299 268.4 268.2678 269.1774 271.6034 275.6606 279.6575 281.0568 281.4945 281.3543 280.7128 281.0159 282.6892 283.8032 284.4486 285.0901 284.7165 282.9918 281.7794 281.7093 285.6177 286.5987 287.4187 287.5749 287.0179 286.0393 285.7486 285.3534 284.071 279.9741 278.3913 277.4257 274.3101 274.7885 276.5818 277.4051 277.22 277.787 282.0626 284.2915 286.7493 286.2418 284.9808 283.6964 281.5678 277.4653 276.277 274.3582 272.9302 271.4669 269.3835 266.0711 262.4 257.8763 253.0445 246.7554 244.707 244.411 245.5797 249.568 251.8546 253.6508 254.8011 255.8387 255.3152 253.5826 250.1484 247.8984 248.9346 252.1299 253.6543 255.5417 258.4348 260.7393 262.5288 265.7818 267.5723 269.5467 271.1893 272.4542 273 273.9695 274.5675 275.7195 278.8655 279.2532 279.1202 277.6641 276.39 274.321 273.0871 271.7239 267.2205 265.5868 265.6866 268.2306 269.9001 270.7127 271.4127 272.6304 272.8439 274.2676 276.4189 277.1721 278.2518 279.651 280.3303 281.1632 281.4942 281.2053 280.3135 278.7518 278.0209 276.9889 276.4765 276.7616 277.2753 278.1599 277.2359 275.5505 271.5024 270.3662 268.8635 266.741 264.272 259.9992 256.6182 254.9255 254.2909 255.138 256.6021 257.0858 257.2271 257.1688 258.2054 257.0734 258.4233 259.3489 260.4415 260.7576 260.8598 260.4066 259.2173 257.3493 255.575 254.4106 253.9372 253.6475 252.924 251.5576 247.4856 242.7802 241.958 241.9501 241.9344 244.7374 246.8878 253.0373 256.5936 259.1904 261.6003 261.0995 255.5869 260.0171 262.0528 261.9249 259.8779 258.3357 257.9289 255.6001 259.3802 256.9552 256.4614 247.3904 234.8165 234.2139 234.2453 234.3122 234.2504 234.4877 234.3707 234.2046 234.5165 234.5498 234.6619 234.6465 234.5779 234.6151 234.5065 234.2596 234.4722 234.0754 235.4187 234.2711 233.7685 233.7835 233.3859 233.4395 233.3448 233.2784 233.228 233.1764 233.0773 233.1751 233.1812 233.2406 233.2129 233.4159 236.7335 242.3871 244.3695 245.8737 245.0099 240.7767 231.7156 233.6759 233.7123 233.9709 234.043 233.8428 233.9402 232.064 231.7899 232.78 234.3669 234.211 234.146 234.1042 234.0815 234.2105 233.8766 233.8933 233.9472 234.0338 234.1336 233.9448 233.8666 233.4983 234.7196 239.1825 239.21 239.239 239.5637 239.6889 239.6747 239.9557 240.3012 240.08 239.9623 239.7224 239.9089 240.1905 240.6873 241.1003 240.7935 240.1518 240.0849 240.2273 241.7386 243.1475 244.4333 245.5297 246.4038 247.0628 247.8328 248.8585 249.562 251.8011 252.1321 251.3607 249.5596 249.3277 251.2393 252.0291 253.0269 254.0221 255.3503 256.6176 257.7206 259.0373 259.9968 261.5345 262.8193 263.77 264.5646 265.3116 265.6865 265.8983 266.0118 265.5048 264.2132 262.2573 259.1648 256.7964 258.2301 259.6069 260.3715 261.5656 262.0706 262.1874 261.7436 263.9204 265.6621 269.019 270.9174 272.471 273.7708 274.6459 273.665 272.6942 269.6953 265.1974 256.7474 255.6309 255.8638 255.5923 256.7537 256.6627 255.8707 255.0581 253.5231 252.0999 244.7942 245.6882 246.9006 247.9104 249.0593 249.8686 250.6578 251.5592 252.0901 250.0966 249.1647 247.9665 246.8073 245.6447 245.7395 -9999 +-9999 302.931 300.9508 299.4166 296.6411 292.6113 289.4443 292.7112 296.6454 299.8309 302.5696 305.5194 307.1806 308.5981 309.6241 310.0681 310.0115 310.0363 310.2907 310.2453 311.0967 311.5497 311.5265 311.0514 310.1876 309.0096 307.9505 306.5423 305.3121 301.7926 299.7726 299.7858 299.3073 297.6013 296.244 295.2102 294.0475 290.9131 288.3384 289.053 290.5396 291.8214 290.8622 290.4855 291.4979 291.3756 289.2003 288.3514 289.3889 290.5926 292.4726 293.7118 294.5771 295.0095 294.6818 293.9181 294.7425 294.6655 293.9531 293.3568 292.8075 292.6228 292.3433 291.9174 292.1033 292.731 293.9994 293.7249 293.0703 292.5123 291.6032 290.1325 288.2501 285.8936 283.0647 275.4026 272.4243 273.328 272.6434 277.2 280.9411 283.0928 284.4164 284.5623 289.4413 291.2822 291.9295 292.2349 294.4616 296.6384 298.6056 300.2843 302.3368 304.7475 304.9741 306.2563 307.6348 307.7952 307.3415 307.4867 308.2337 308.4359 307.4545 306.0378 305.0038 302.3203 303.7001 304.6182 305.0341 305.2349 305.0439 305.4697 304.4318 303.1974 302.1743 300.9955 300.5456 303.0081 303.7933 305.0883 305.5856 306.5622 306.7793 306.0888 305.2041 304.256 303.1333 301.5045 300.1159 298.4336 293.755 292.2526 292.425 293.4397 293.821 294.5822 296.8817 298.3768 300.0699 303.163 304.6104 306.4074 307.4437 306.8496 305.0548 303.2405 302.3316 301.092 298.59 297.361 295.8581 293.7763 291.4641 290.4862 290.3116 288.4747 284.3579 285.3287 286.2301 286.8099 287.1455 286.8097 285.4589 284.7028 284.0298 281.1495 274.2961 267.1351 267.8735 268.6729 273.1003 275.985 277.2971 277.9505 278.1527 277.707 278.934 281.2439 283.0522 283.8794 284.06 283.2676 281.3752 279.9292 282.1205 285.7009 286.3831 286.8055 286.9672 286.9682 286.6833 286.1849 285.2737 284.1771 280.6001 278.4447 274.8943 276.3 277.3625 278.8579 279.3513 279.5676 279.6223 283.1583 286.1059 287.7186 287.6417 286.695 284.0934 282.7697 279.8477 278.6692 275.4096 273.1638 270.8434 268.2348 265.9684 261.6277 257.1378 251.3462 246.7346 244.0021 244.4335 245.0034 249.9283 250.9975 252.1331 253.6758 254.4916 253.7127 250.5705 247.4104 248.0637 251.8323 254.4323 255.6898 256.0956 257.5706 259.7483 262.0221 266.8196 268.3067 270.2882 272.4283 274.1813 275.2983 276.2278 277.0919 277.7959 280.295 280.4411 279.3241 277.4694 276.1165 274.351 272.8551 271.196 266.8403 263.6054 265.3627 267.1583 268.8084 269.8511 270.7491 271.4549 272.3393 273.2212 275.4303 276.0447 277.1558 278.1679 279.3564 280.1665 280.8903 281.1478 280.6419 279.3055 277.9953 277.6505 277.4442 277.6653 278.6958 278.5457 277.4789 275.5986 271.6543 270.5284 268.8435 266.5944 262.7294 259.2846 258.0065 257.6817 255.261 252.3999 251.7611 252.2633 253.074 253.6344 254.6535 254.7946 256.5663 257.7076 260.4415 260.7576 260.8598 260.4066 259.2173 257.3493 255.575 254.4106 253.9372 253.6475 252.924 251.5576 247.4856 242.7802 241.958 241.9501 241.9344 244.7374 246.8878 253.0373 256.5936 259.1904 261.6003 261.0995 255.5869 260.0171 262.0528 261.9249 259.8779 258.3357 257.9289 255.6001 259.3802 256.9552 256.4614 249.7293 237.1152 234.1987 234.1019 234.0608 234.1221 234.1062 234.1051 234.0954 234.2511 234.0686 233.9177 233.8917 233.5261 233.4373 233.8734 233.8777 233.9076 234.3389 236.6911 233.9968 233.6925 233.5635 233.4752 233.3472 233.1756 233.2177 233.1704 233.2346 233.2467 233.3132 233.3503 233.3628 234.4718 235.7361 239.24 242.7045 245.0678 247.2563 247.724 238.5586 233.2188 231.847 233.8672 233.8188 232.6289 233.5556 233.5703 233.7698 233.8607 233.7986 233.9604 233.8953 233.9768 233.8202 233.9141 233.9125 233.6639 233.737 233.8124 233.9117 233.9919 233.7883 233.4452 234.0408 238.3678 239.6576 239.5535 239.6281 239.923 239.7428 239.5668 239.7644 239.8772 239.2785 239.4239 239.2266 239.3244 239.5621 240.0813 240.4646 240.3384 239.9163 239.9644 241.0091 241.7146 242.7562 243.883 245.0767 246.1957 247.3924 248.1919 249.2602 249.7467 251.269 251.8011 252.7792 252.6454 251.1976 249.8926 249.8247 251.651 253.2541 254.6622 255.1262 256.3786 257.9098 258.7294 259.7094 261.0675 262.2772 262.9146 264.0679 264.3614 264.6674 264.9518 264.6519 263.8427 262.4449 259.7576 257.8079 259.7162 261.3755 262.004 262.5258 263.3235 264.0515 264.3419 265.1081 266.4618 269.2013 270.5234 271.8778 273.2077 274.0777 273.2433 272.4093 269.6843 265.9251 260.0243 261.7657 261.8369 261.3164 261.3817 261.2179 261.9518 261.4706 261.0369 257.1946 253.9759 250.2934 244.3109 244.8178 245.1059 245.4574 246.9469 247.391 247.0933 246.2072 245.0793 243.3405 242.4966 241.0159 241.2418 -9999 +-9999 302.041 299.843 297.6138 293.1667 288.1508 291.3767 295.78 298.7914 301.5202 303.8239 306.3198 307.4917 308.4285 308.7986 308.7261 308.7004 308.5961 308.9836 309.4789 310.6787 311.1731 311.6891 311.7477 311.1801 309.9486 308.7472 307.3847 305.9785 302.3563 302.2179 301.901 301.0855 300.0191 299.0464 297.0898 296.2096 293.9731 290.5991 287.7681 288.2664 288.8498 289.5411 290.3842 291.7261 292.1557 290.4455 287.7339 288.5765 289.61 290.9485 292.6432 293.3797 293.6194 293.0174 291.5044 291.7175 292.638 292.4274 291.8041 291.5327 291.1772 290.6288 289.6379 290.9714 291.9151 292.6732 292.499 291.6426 290.9268 290.5175 289.0166 287.175 284.0302 281.1035 273.2611 271.7365 272.9251 272.7346 277.2214 282.571 284.8628 286.7272 287.8844 290.7296 293.355 293.9541 294.6957 295.4312 297.3302 298.896 300.7958 302.0965 302.9093 302.9854 304.5315 305.9051 305.9262 305.3175 305.7082 306.3014 306.0089 305.3124 304.197 302.4151 301.3914 301.4524 303.1706 303.6035 303.5948 303.5329 303.482 302.3749 301.3717 300.4446 299.3377 300.008 301.9131 303.3774 304.4308 305.4299 307.0347 306.6405 305.8562 304.9677 303.5704 302.4953 301.3702 300.0466 298.64 294.795 293.4331 293.0153 294.0197 294.9419 295.5894 297.0594 298.5566 300.5332 305.5064 306.0246 307.3231 308.2262 307.5627 305.5911 303.9888 302.2082 300.7061 297.5149 296.2346 293.3514 291.431 289.9137 288.3597 286.4214 284.7997 283.8391 289.6662 289.5973 289.6281 289.5939 289.4201 288.0913 287.3519 285.9106 283.3669 280.0168 269.0915 268.0726 267.1126 269.3771 271.5634 273.4179 274.1535 274.67 274.6402 279.679 281.319 282.8412 283.3715 283.2012 282.0258 279.4338 280.4403 283.2072 285.5068 285.9349 286.011 285.9541 286.0226 285.8737 285.3748 284.4937 283.7815 281.0431 277.6061 279.2232 278.7322 279.3847 280.7525 281.8187 282.2924 282.1422 285.0654 287.7402 288.4196 287.9417 286.8871 285.6093 283.3788 281.3351 280.3147 276.3756 273.0792 269.8441 266.5611 264.0154 260.7567 255.3962 251.0054 247.8134 244.6649 244.5471 246.1849 250.2795 249.9789 250.7995 252.4693 253.3702 251.5345 247.9962 247.0808 250.6086 253.9521 256.2882 257.8724 258.2375 259.1743 260.6235 262.7107 267.5406 269.5917 271.5341 273.5088 275.1889 276.5258 277.7738 278.705 279.8812 281.5214 281.4648 279.7944 277.7707 275.9977 274.1531 272.1289 270.0555 267.854 262.2078 264.3106 265.4089 267.1606 268.7024 269.8263 270.8665 271.3163 272.5703 274.353 275.4856 276.56 278.1679 279.3564 280.1665 280.8903 281.1478 280.6419 279.3055 277.9953 277.6505 277.4442 277.6653 278.6958 278.5457 277.4789 275.5986 271.6543 270.5284 268.8435 266.5944 262.7294 259.2846 258.0065 257.6817 255.261 252.3999 251.7611 252.2633 253.074 253.6344 254.6535 254.7946 256.5663 257.7076 258.9761 258.9611 259.1211 259.2512 258.1422 256.5202 254.3246 253.051 251.7588 251.9506 250.8674 249.2227 244.2478 241.9743 241.9685 241.9636 243.6748 246.4079 248.3114 252.9545 255.8709 258.3235 259.7932 261.9738 262.6887 263.3291 265.3495 264.6312 263.568 261.2548 260.7927 259.0198 262.0417 262.0405 261.0855 256.0298 245.1043 234.1365 233.9969 234.1435 234.1002 234.0533 234.0781 234.0032 233.9883 233.9028 233.8709 233.4181 233.9037 233.7598 233.4353 233.912 233.9877 234.0892 236.3792 233.618 233.6772 233.5916 233.3662 233.4325 233.6231 233.3723 233.2531 233.3282 233.3468 233.1493 233.3456 234.7087 237.8458 239.8247 241.6039 245.1826 247.0576 248.8678 247.6921 233.1476 231.4945 231.5321 232.8857 231.8843 233.6946 233.6198 233.6136 233.6958 233.6766 233.7146 233.6916 233.7187 233.7736 233.7247 233.6851 233.6523 233.6172 233.7501 233.8479 233.802 233.9169 233.7406 233.6149 235.3272 239.5694 239.8309 239.9815 239.7139 239.5197 239.4196 239.4017 239.5717 239.3986 238.7804 238.8979 238.7456 238.9492 239.2993 239.606 239.696 239.8079 239.9837 240.0422 241.119 241.7268 242.8592 244.0228 245.2321 246.3498 247.54 248.78 249.216 250.7684 252.3614 252.8042 253.4407 253.8294 254.4659 254.4149 253.3426 251.4308 251.1574 252.3136 253.9008 255.2205 257.1917 257.8134 258.6095 259.6771 260.5634 261.1317 262.266 262.7383 263.0727 263.3442 263.4314 263.0974 261.8648 259.6308 258.7251 261.3109 262.592 263.4928 264.285 264.8148 264.7981 266.0416 266.3769 266.5777 269.4736 270.1777 271.1129 272.7227 273.3384 272.5454 271.6679 270.3689 269.4714 267.3074 266.7229 265.6889 264.4748 265.0208 266.241 267.0284 267.3333 266.5235 261.777 258.8192 256.3806 253.6251 250.9719 247.7448 244.5341 242.9644 244.0957 243.4578 242.5045 241.9232 241.8083 242.696 242.3232 241.845 -9999 +-9999 300.1752 297.5347 295.1532 289.7226 287.6093 293.3581 296.3009 299.4893 302.312 304.7871 307.0609 307.7009 308.0201 307.647 306.9448 306.6571 306.8614 307.746 308.6122 310.4893 311.1432 311.826 312.0487 311.4292 310.1711 308.8692 307.7473 306.1055 303.8343 303.9899 303.3503 302.6321 301.3748 300.7226 299.6124 298.0663 296.6528 294.4085 288.2938 287.5223 287.7892 288.679 289.7431 291.2619 291.7019 291.3405 289.4059 286.5417 288.0058 289.3979 290.8994 291.8011 291.9233 291.1829 290.3784 290.6405 290.7611 290.2938 289.578 290.1466 289.6057 288.233 287.8701 289.7233 290.1974 291.1768 290.5511 289.9657 288.9008 288.5021 287.262 285.1617 281.5685 277.0474 271.2666 272.8642 272.4869 273.4604 279.3639 283.3981 286.7706 288.8929 290.5519 291.0891 292.4824 294.6645 295.748 296.8967 298.1468 299.3813 300.7801 301.2888 301.2281 301.7452 302.4026 302.822 302.9698 303.2166 303.3129 303.3087 303.2209 303.0419 302.0079 300.8852 300.7332 299.6228 301.3051 301.7564 303.0566 303.894 303.8382 300.8747 299.3537 298.8929 298.8511 299.5691 301.2454 302.589 303.7752 304.8384 306.4176 306.1345 305.6264 304.9289 303.8018 302.9019 301.7674 300.5212 299.016 296.0075 294.5409 294.0195 293.7856 294.7872 296.1385 297.8772 299.2275 301.0289 306.3806 307.2616 307.9959 308.4565 307.5763 305.8221 304.2102 302.3524 300.8581 298.2438 297.3264 296.75 296.2958 294.0189 291.2391 291.4875 288.2961 287.662 292.099 291.6311 291.4792 291.5771 290.9717 289.626 288.9162 287.9346 286.0867 279.2542 274.4788 268.6264 267.8364 266.2714 267.6893 268.9348 270.505 271.2487 274.501 279.3772 281.1235 282.059 281.9893 281.865 279.5729 278.3214 281.2174 283.4567 284.8453 284.9987 284.5009 284.1902 284.767 285.1038 284.8223 283.9348 283.2697 281.7873 281.4203 281.518 281.4891 281.0633 281.9551 283.7777 284.6229 285.0793 286.799 288.5361 288.8573 288.4127 287.6157 286.1947 284.1793 282.0006 280.0947 275.7546 271.811 268.012 264.4231 260.6225 257.8842 254.611 251.7597 246.8836 244.4954 242.8776 244.2524 246.3329 248.4584 249.8567 251.6401 252.2369 249.6568 247.0682 248.4802 251.2433 254.6392 257.1702 258.7894 260.3759 261.7632 260.6235 262.7107 267.5406 269.5917 271.5341 273.5088 275.1889 276.5258 277.7738 278.705 279.8812 281.5214 281.4648 279.7944 277.7707 275.9977 274.1531 272.1289 270.0555 267.854 262.2078 264.3106 265.4089 267.1606 268.7024 269.8263 270.8665 271.3163 272.5703 274.353 275.4856 276.56 277.0977 277.9713 279.0814 279.7727 280.1316 280.8605 279.8323 278.8883 278.2604 278.4878 278.6882 279.6203 278.7263 277.6463 275.7126 272.1604 271.0563 269.195 267.1699 265.7782 264.5309 263.3566 261.3314 259.3998 256.1664 254.9344 252.9995 250.2601 250.0728 251.3017 252.4496 253.5025 254.7071 256.0472 256.5662 256.9827 257.641 256.399 254.4441 252.8735 250.9789 250.2684 249.8426 248.3573 246.4809 241.9468 241.988 241.9861 242.7937 245.9596 248.2225 249.803 251.1149 253.2909 255.0028 257.4503 260.2824 263.1258 265.3714 266.9174 268.0244 265.9054 264.3084 263.777 261.7474 263.5835 264.2888 261.9058 258.0153 255.0502 241.9691 235.555 234.0739 233.8532 234.0395 234.0517 233.9422 233.8887 233.8723 233.9549 233.8676 233.8808 233.9583 233.9458 233.9377 234.0345 234.2189 235.3857 233.7103 233.6868 233.485 233.5688 233.5845 233.8772 233.5824 233.47 233.4695 233.5257 233.6852 234.1288 235.2675 238.5412 242.8016 245.4262 247.977 249.7408 251.1773 240.8995 231.5198 234.1682 233.9721 233.9272 233.8983 233.4647 233.5734 233.6172 233.6278 233.5398 233.4713 233.3577 233.536 233.6433 233.6319 233.504 233.431 233.6347 233.7574 233.8294 233.7953 233.6701 233.5838 233.5797 234.1878 238.2568 240.1113 239.9514 239.424 239.3216 239.3671 239.2881 239.3922 238.8086 238.6201 238.4795 238.6767 238.9623 239.4344 239.5433 239.9309 239.9562 240.0045 240.2332 241.2885 241.8819 243.0507 244.3083 245.5016 246.4503 247.66 248.6756 249.5441 250.6917 251.9011 252.5629 252.9951 253.3664 254.4333 255.3078 255.5454 255.3053 255.678 252.7993 255.2074 252.7377 253.4881 254.7701 254.7469 256.8271 257.8917 258.4582 260.1761 260.6492 260.8122 261.101 261.4878 261.9541 261.8619 260.4701 260.0713 262.7713 263.4991 264.7266 265.9099 266.3602 266.5469 266.9463 267.8752 268.2493 269.4954 270.6371 271.7465 272.5862 272.5788 271.912 270.762 270.968 271.3454 271.4814 270.1575 268.8232 268.8932 269.3336 270.5501 270.8207 270.1166 267.991 263.9009 262.6496 260.7365 258.0882 256.1935 254.4096 253.3981 250.2838 246.7073 247.4865 245.6788 246.0105 246.8073 248.0166 247.6363 248.5745 -9999 +-9999 297.8223 294.938 291.2907 286.5337 287.6487 293.3615 297.4734 300.5384 303.0448 304.7249 307.1779 307.4713 306.8243 305.5741 304.8586 304.9165 305.3915 305.5258 306.8961 310.3289 311.2831 311.9818 312.0989 311.5413 310.3395 309.0298 307.8972 306.4526 305.2936 305.0344 304.5046 303.6053 302.291 301.5624 300.4938 299.2823 298.1646 294.4423 291.6618 287.3961 288.4827 286.5028 287.5235 289.1268 290.3997 290.4748 289.7878 284.9217 286.5894 287.914 289.278 289.9585 289.9053 289.2528 288.2534 289.2664 288.8905 288.2108 287.6921 288.5762 288.6628 286.8608 285.7994 287.6074 288.6477 290.316 288.869 288.3528 287.304 285.9817 284.9296 282.823 279.9124 274.7055 272.354 274.2972 274.8857 279.9831 283.6444 286.721 288.4142 289.6326 291.2615 291.9283 293.0154 294.7196 296.4002 297.8212 298.7814 299.4852 300.3002 300.5149 299.5471 299.6263 299.9449 300.0909 300.2119 301.066 302.3227 302.8345 302.7427 301.5088 299.0433 297.7725 297.1678 297.7485 300.1142 301.4744 302.3759 302.8348 302.6223 298.3385 296.8949 297.1106 296.9442 299.0278 301.0188 302.9272 304.0085 304.8956 305.9738 306.0869 305.6464 304.6992 303.8905 302.9711 301.8477 300.2857 298.7163 296.1488 296.0808 297.1251 296.9708 294.6883 295.746 297.9718 299.5463 301.3629 305.3547 306.1657 307.114 307.7952 307.3256 305.7913 304.2252 303.1425 301.6922 299.8488 299.0324 298.3399 296.9233 295.8502 294.674 292.5547 289.6555 291.3473 293.8885 293.1672 292.6026 292.592 292.2072 291.3649 290.689 289.9525 288.2709 282.6262 279.5734 275.1047 269.4083 267.507 266.8624 267.2821 268.119 271.1966 274.2302 278.4699 280.3117 280.6588 280.358 280.0127 277.1794 278.2314 281.4096 282.9844 284.5143 282.9212 281.024 282.1314 283.703 284.0951 283.7488 283.5703 283.4962 282.6593 282.7585 283.0778 283.4123 283.8514 284.3597 285.401 286.3435 287.115 288.3319 288.6469 288.3062 287.9513 287.6157 286.1947 284.1793 282.0006 280.0947 275.7546 271.811 268.012 264.4231 260.6225 257.8842 254.611 251.7597 246.8836 244.4954 242.8776 244.2524 246.3329 248.4584 249.8567 251.6401 252.2369 249.6568 247.0682 248.4802 251.2433 254.6392 257.1702 258.7894 260.3759 261.7632 262.6126 264.6019 268.1222 270.3193 272.599 274.1979 275.3125 276.778 278.231 278.7885 279.915 281.4902 280.7725 279.3595 277.8129 275.962 273.7125 271.474 269.0614 267.2393 258.4083 262.8835 264.1814 266.6827 268.046 268.9362 269.9307 270.5309 271.1533 273.8554 274.777 275.2203 275.3549 276.3894 277.2889 278.9316 279.5646 280.3655 280.4106 279.9116 279.2027 278.9046 279.8946 280.0378 279.1574 277.6623 275.9589 272.4579 271.4849 270.4971 269.8435 269.3652 268.0966 266.845 266.0347 264.9626 262.3723 260.1747 258.5791 255.1517 251.7407 248.2037 249.0321 249.6471 250.6609 252.1638 253.4098 255.0777 255.5572 254.1993 252.6565 251.4488 249.7569 249.0783 247.4476 244.2108 241.9813 241.9897 241.8801 242.4489 244.0318 247.9104 249.9783 252.4183 253.4341 253.821 254.9358 257.0766 259.8026 263.0873 266.473 268.917 269.6973 268.145 267.3399 266.0168 264.8384 265.2424 265.1709 263.1691 260.3181 256.3609 246.04 241.8466 237.9279 235.1491 234.0864 234.0118 233.8476 233.9922 233.9734 233.9883 233.8938 234.0413 234.118 234.0437 233.9719 234.2785 234.1656 234.6465 234.1024 233.9407 233.9267 233.6764 233.8112 234.136 234.0674 233.7543 233.9604 234.064 234.1689 235.8729 238.1775 241.6782 245.245 248.1963 250.2318 251.6271 252.7864 238.9628 231.5143 234.0448 233.6431 233.5448 233.5425 233.4987 233.4019 233.3717 233.469 233.3441 233.3689 233.6207 233.5092 233.7143 233.5646 233.5748 234.2493 233.9747 233.9477 233.7834 233.5987 233.7 233.7763 233.5801 233.4733 236.0919 239.486 239.3196 239.0905 239.0552 239.1502 238.9573 238.8323 238.5276 238.2393 238.5325 238.8085 239.0306 239.3258 239.5987 239.8483 239.6768 240.2419 240.4209 241.6997 242.5018 243.3712 244.1852 245.2532 246.1494 247.0502 247.9666 248.7448 249.4072 250.9388 251.4613 251.9266 252.5443 253.4681 253.8461 254.5793 255.3754 256.3911 257.1256 257.0476 256.3555 255.8339 256.1948 257.3278 258.0048 258.3794 258.4641 258.8904 259.2619 259.7651 260.2251 260.5505 261.4795 261.6456 261.8104 262.2709 264.044 264.7615 265.3369 266.4309 267.8556 268.0992 268.4598 269.2179 269.9337 270.0815 270.8285 271.898 272.3111 271.761 271.3036 270.1495 270.7725 272.1371 272.7404 272.1477 271.8233 271.8875 272.1027 272.3192 271.7094 270.2025 268.3905 265.9091 265.4041 263.3164 261.0606 258.8387 257.9184 257.4924 256.488 254.7329 252.4466 250.2556 249.973 249.8222 250.9623 251.8369 253.0224 -9999 +-9999 294.7552 290.2657 286.2708 287.3146 290.1783 293.8817 297.7199 300.5909 302.8345 304.9366 306.9246 307.1089 306.003 304.0682 303.7117 303.747 303.8762 304.3303 306.1936 310.2682 311.4213 312.1296 312.3033 311.6992 310.4778 309.238 307.8718 307.0268 305.1985 304.6946 304.1293 303.6314 302.5317 301.5787 300.5205 299.6643 298.5885 295.5771 294.0162 289.4795 285.2013 284.9764 284.5836 285.7267 287.8054 288.5999 288.1577 284.1748 285.663 287.5803 287.977 287.3206 287.839 287.3439 286.7616 287.6739 287.1555 285.5025 285.9285 287.7011 287.3291 284.7582 283.633 284.7228 287.1058 289.124 287.3366 286.1242 285.3505 284.3214 282.2029 280.2644 277.2428 272.1618 275.0142 279.1384 281.9917 284.0648 286.7238 289.3558 290.4247 291.0196 292.3801 294.1951 294.7473 295.8051 296.9354 298.1949 298.8943 299.5332 299.8485 299.413 297.9137 297.5126 297.3827 297.3251 296.646 299.2301 300.7462 301.5584 301.2063 300.1605 297.3418 294.8185 293.8237 296.7773 299.4742 300.8252 301.088 300.8644 301.029 295.4647 294.6534 295.0553 295.8913 298.8864 300.9889 302.9073 303.806 304.4095 305.1828 305.6085 305.8644 304.9604 304.3058 303.638 302.3069 300.8024 299.05 297.4811 298.5855 298.6611 298.2909 296.0997 295.9374 297.2406 298.3857 300.2621 303.529 304.9061 306.2545 306.9911 306.7761 306.0559 305.0059 304.2527 303.0786 300.8461 300.1146 298.9341 297.8477 297.0783 295.8303 294.4861 293.846 293.9381 294.2434 293.2167 292.4613 292.3204 292.0939 291.7982 291.6796 291.2076 290.0361 286.1989 284.1422 280.8376 276.8213 270.3073 266.9261 265.8443 266.9491 268.7068 272.1094 275.7163 280.3117 280.6588 280.358 280.0127 277.1794 278.2314 281.4096 282.9844 284.5143 282.9212 281.024 282.1314 283.703 284.0951 283.7488 283.5703 283.4962 282.6593 282.7585 283.0778 283.4123 283.8514 284.3597 285.401 286.3435 287.115 288.3319 288.6469 288.3062 287.9513 287.2784 285.9112 283.9182 281.9615 279.7035 274.4719 272.5371 269.8429 267.2162 263.9651 261.4358 258.6752 255.4409 251.1399 244.4427 244.437 244.2999 244.3327 246.2533 249.7077 251.2886 250.9235 248.3099 248.796 250.6369 252.8232 255.7299 257.8273 259.7295 261.5181 263.435 264.8213 266.0908 269.6324 271.2951 273.2538 274.7607 275.9867 277.2778 278.1888 278.5552 279.6396 280.0746 279.2131 278.3461 276.8442 274.7464 273.1291 270.0711 267.1602 265.1909 257.0445 261.8018 264.0896 265.9427 267.223 268.3882 268.8376 269.477 270.8266 272.7079 273.5786 273.6 274.0435 275.2712 277.0027 278.4445 279.4986 280.0562 280.0141 280.1558 280.0751 280.0149 280.5392 280.4965 279.2407 277.8683 276.2958 273.1272 272.2848 271.801 271.8496 271.5698 270.9405 269.9807 268.405 267.1158 264.4391 263.2622 262.5758 260.2621 256.1667 250.5356 247.8661 246.8352 246.8165 246.9742 249.9692 251.2007 251.4369 251.021 249.9136 249.2634 247.5701 246.554 245.3533 242.1919 242.1296 243.4353 247.7569 245.8162 243.2362 247.9009 251.5716 253.8149 256.411 257.6735 258.8177 258.0043 260.3406 264.1048 267.4983 269.7845 271.4467 271.0078 269.6609 268.2089 267.5164 266.7495 266.0974 263.9838 260.8292 257.7978 249.0509 245.7931 238.622 236.5258 234.4604 233.9645 233.8858 233.888 234.072 234.0087 233.9809 234.138 234.1754 234.3564 234.3835 234.1112 234.0832 234.7578 234.6812 234.2368 233.9236 234.0325 234.4456 234.5845 234.8727 234.4472 234.2766 234.293 237.6049 240.8705 241.9267 242.7021 246.7101 250.0309 252.059 253.2281 253.9876 237.551 231.511 233.5195 233.7453 233.3566 233.3586 233.364 233.5971 233.5705 233.277 233.3392 233.4531 233.4638 233.5177 233.2611 233.2467 233.6576 234.37 233.946 233.8568 233.7456 233.6418 233.7411 233.5791 233.596 232.8231 235.2511 239.5686 239.2181 239.2279 239.2572 239.1921 239.2034 239.4652 238.8348 238.5211 238.9019 239.1956 239.556 239.7265 239.3269 238.96 240.5486 240.5639 241.2116 242.4095 242.5766 243.5754 243.9407 244.5997 245.6066 246.3467 247.1718 247.5274 248.3872 249.9696 250.3326 250.3918 250.8828 251.8272 252.7158 253.6605 254.498 255.2612 255.5878 255.4082 255.2061 255.9223 256.6997 257.7016 258.3625 259.2194 259.9934 260.3215 261.8605 262.9005 262.7851 262.6692 262.0649 261.7319 261.8251 262.1544 264.2933 265.4029 266.5747 267.3365 268.3841 269.6355 270.1629 270.7958 270.9692 271.1541 271.5747 271.8013 271.8642 271.0435 270.6084 270.0868 270.7753 271.8125 272.6651 272.1307 271.5787 271.5558 271.507 271.1779 270.9232 270.0575 268.8563 267.7254 267.3892 265.4285 263.4767 261.709 261.3238 261.3347 260.7689 258.9854 255.8182 253.162 252.2148 251.4671 253.068 254.5822 256.4376 -9999 +-9999 291.3122 285.3091 287.5539 290.7494 293.4316 296.163 298.3036 300.3896 302.4954 304.444 306.4147 306.6874 305.7961 303.6358 303.1702 303.279 303.7499 304.5553 305.9713 310.1272 311.5511 312.2412 312.2459 311.6494 310.3624 309.0497 307.9719 306.8272 304.2941 303.2253 303.3395 302.9034 302.0016 300.9319 300.0486 298.9891 298.059 295.2546 293.6907 290.7968 287.8831 285.4894 282.6637 283.2162 283.8525 284.2306 284.3698 282.4276 284.1534 285.9737 286.252 285.6511 285.3244 285.1051 284.8599 285.545 285.0123 284.116 285.6037 286.6668 286.241 283.8173 282.8747 283.9456 286.0053 287.3434 286.2686 284.1953 282.9176 281.3377 279.2242 277.4629 274.3195 271.6892 277.8991 281.5086 284.0682 286.7965 289.0219 290.894 291.9522 292.9085 293.5716 295.3099 296.1293 297.0865 297.9432 297.9597 298.2774 298.1855 298.3969 298.4113 295.5619 295.2485 293.8378 293.3156 295.3747 297.9004 298.9871 299.3262 299.5061 299.0957 296.0248 291.0967 294.0937 297.1571 298.8308 299.7392 299.9386 299.2213 298.9464 295.3152 293.2075 293.876 295.813 298.8026 300.716 302.6826 303.1414 303.4099 303.9703 304.7883 305.4076 305.5468 304.9337 304.0605 302.8275 301.575 299.8344 299.7693 300.1879 300.0155 299.4793 298.4945 296.5941 297.8257 300.34 301.4686 303.0107 304.5827 305.9725 306.9732 307.2116 306.5385 306.351 304.868 303.0786 300.8461 300.1146 298.9341 297.8477 297.0783 295.8303 294.4861 293.846 293.9381 294.2434 293.2167 292.4613 292.3204 292.0939 291.7982 291.6796 291.2076 290.0361 286.1989 284.1422 280.8376 276.8213 270.3073 266.9261 265.8443 266.9491 268.7068 272.1094 275.7163 277.3159 278.0869 278.4117 277.9365 276.3721 278.7349 281.1464 282.6519 283.2447 279.8477 278.9536 281.1381 282.9291 283.1877 282.651 282.2513 282.2483 282.7047 283.1775 283.7046 284.3043 285.0009 285.6799 286.5497 287.3126 287.9573 288.3552 287.5556 286.894 286.4737 285.9789 284.7392 283.5361 282.0425 280.688 277.4695 275.3576 272.5641 270.8068 268.5691 266.0201 263.1008 259.0644 255.8688 248.483 244.8086 243.8213 244.1591 243.8503 247.5852 248.6066 247.1136 244.6665 250.3832 252.404 254.3105 255.9761 258.3636 260.2853 262.2799 264.182 266.1626 267.5667 270.8862 272.8435 273.8691 275.4761 276.8024 277.9564 278.9352 279.4113 279.4731 278.5487 277.3707 276.7871 275.5338 273.6864 271.4127 268.9403 265.061 262.164 259.1798 259.9923 263.0774 265.2705 266.7292 267.0285 267.014 268.1194 269.5151 272.1924 271.9755 272.9042 274.2706 276.105 277.6714 278.6337 279.3387 279.2638 279.3818 279.7921 280.3845 280.5159 280.5639 280.3229 279.2183 277.7675 276.3789 274.1103 273.6562 273.1548 273.3368 273.3842 272.6893 271.3741 270.0132 268.8745 265.9286 265.3615 264.8836 263.2585 260.8179 255.1956 249.6314 248.3681 247.0688 246.2383 245.2966 245.3366 245.3754 245.4958 245.0365 244.6368 243.2971 243.0001 242.7988 242.366 243.647 249.7043 252.2767 251.2354 244.8495 245.7868 250.166 252.5998 256.3033 259.1935 261.1374 260.7055 262.4127 265.7659 268.093 270.2369 271.9053 273.0037 271.956 270.3131 269.25 268.6395 267.3882 264.9173 262.1521 259.1783 251.7086 242.9407 241.8391 238.0789 235.0542 234.3212 234.368 234.6843 234.3532 234.2747 234.1062 234.2929 234.3399 234.5929 234.5876 234.4711 234.4403 235.0517 235.1821 234.7489 234.6755 235.0089 235.4051 235.3192 235.3671 235.0342 234.8854 235.7607 243.3967 244.8718 245.224 245.209 246.8869 250.5794 253.489 254.4094 253.5282 239.423 231.4594 233.0913 233.372 233.94 233.738 234.1684 234.0386 234.0628 233.6659 233.536 233.2574 233.8323 233.8148 233.4328 233.5774 233.5389 234.102 234.0495 233.8909 233.8037 233.5905 233.8607 233.4777 233.7285 232.5519 235.0691 238.6893 238.2729 239.0316 239.6916 239.652 239.7146 239.879 239.6117 238.4922 238.3909 238.7778 239.3814 239.3363 238.8866 239.7595 240.7043 241.762 241.9636 242.9477 243.1422 243.3855 243.7692 244.2417 244.877 245.8808 246.6093 246.9797 247.3693 248.5833 248.8338 249.0959 249.5506 250.2215 251.2511 252.657 253.2851 253.5387 253.6338 254.3295 255.1352 256.4694 257.2613 257.7955 258.0048 258.2437 259.6464 262.7125 264.0453 265.1414 265.3727 265.2266 264.2591 263.4813 262.8794 262.5446 263.5238 264.9716 266.7272 267.6248 268.5175 269.5352 270.4388 270.9162 271.3098 271.3423 271.2933 271.091 271.1727 270.5507 269.9036 269.2055 269.9225 271.2665 271.714 271.1601 270.7021 270.3875 270.0796 269.747 269.7468 269.6938 269.5536 268.988 268.6998 267.6475 265.4655 264.1353 263.7111 263.3821 261.7003 259.2898 256.699 256.0115 254.3698 253.4178 254.8603 256.4346 258.4066 -9999 +-9999 286.8128 289.6882 292.0177 293.0399 295.4728 297.3361 299.2976 301.1035 302.7804 304.2941 305.8545 306.4597 305.9345 303.7445 302.8496 303.0843 304.4867 305.3352 306.5014 309.877 311.3371 311.898 311.7843 311.4128 310.4278 309.0492 307.6861 306.3701 303.355 302.2548 302.1564 301.7482 301.1238 300.0195 299.1059 298.2788 296.9374 294.0731 292.7517 291.3909 289.6352 287.3048 284.3234 282.555 281.404 281.5839 281.1183 280.4852 280.5829 281.9784 282.4384 282.631 282.8152 282.6492 282.2093 283.0008 282.8864 281.9307 283.6568 284.7544 284.2649 282.3468 279.7886 282.8837 284.4309 284.7024 284.0976 281.7367 279.8335 278.5243 276.8422 274.3653 270.3759 271.9446 281.1657 284.5172 286.2459 288.3374 289.7606 290.9439 291.8896 293.3687 294.0151 295.4928 296.4936 296.9149 296.3951 295.9253 296.1023 296.0597 296.3698 296.0533 292.8193 292.9076 291.068 291.2055 294.0759 296.028 297.1256 297.4976 298.1472 298.5896 294.6709 289.3326 293.0782 295.7947 296.9177 297.7758 297.9893 297.4859 295.5391 293.6056 291.2402 292.4648 295.3659 298.5805 301.3215 302.0265 303.1414 303.4099 303.9703 304.7883 305.4076 305.5468 304.9337 304.0605 302.8275 301.575 299.8344 299.7693 300.1879 300.0155 299.4793 298.4945 296.5941 297.8257 300.34 301.4686 303.0107 304.5827 305.9725 306.9732 307.2116 306.5385 306.351 304.868 303.8636 301.7341 300.9156 299.7169 298.2845 297.2907 296.3134 295.3932 294.9911 294.6676 293.7452 292.6382 291.9576 291.5509 291.1722 291.0664 291.3949 291.2759 290.8066 288.4531 286.9088 284.6457 281.4564 277.1315 270.2251 266.7728 266.1758 266.9735 270.829 272.9482 273.8828 275.4795 276.6514 276.4638 275.348 277.8091 280.0575 281.7211 282.2316 278.281 277.7086 279.8833 281.4982 282.2703 281.6694 280.7897 280.7197 281.6965 282.6386 283.5188 284.6679 285.6986 286.5528 287.6121 288.7079 288.8376 287.5981 286.7852 285.8264 284.2213 284.1069 284.1839 284.4007 283.3116 282.2709 281.1675 278.2346 276.3179 275.0942 272.8265 269.9066 267.1816 263.7518 259.5277 252.4323 248.1896 244.1058 243.2155 243.9224 243.8172 244.0896 244.1721 245.2409 250.5291 253.1076 255.1506 257.0294 258.1911 259.4971 261.7435 264.4248 265.9741 270.1112 271.6799 273.1973 274.2584 275.4893 276.7545 277.6459 278.3689 278.8015 279.3735 277.643 276.2459 275.3602 274.2876 273.2038 270.2963 267.4135 264.0126 260.6365 256.6158 259.1095 261.2669 263.4293 265.0555 264.7819 265.1217 266.702 268.4572 270.4466 272.0642 273.6314 275.3138 276.8767 277.97 279.0255 279.4176 278.7018 278.7872 279.2133 280.3098 281.271 281.1415 280.6391 279.4962 278.2773 277.1669 275.2585 274.421 274.0849 274.3003 273.8842 273.03 271.7598 270.2619 268.8165 266.683 265.8188 263.98 262.7288 259.9205 256.0947 251.2324 249.3638 248.0177 246.1182 245.5348 244.8831 244.1335 243.7801 243.511 243.2675 243.2688 243.0323 243.226 243.5065 249.631 256.6105 257.5541 256.3615 252.2547 245.0861 245.0866 249.0676 255.881 257.8353 260.4409 263.6713 265.4213 265.9666 267.2403 269.2619 271.2569 273.9071 274.204 272.8638 271.3228 270.0272 269.2725 267.1821 265.046 262.8371 252.3964 245.1572 246.3566 244.2736 241.7996 241.1388 243.4568 243.9321 241.0359 236.6925 236.1631 240.047 241.7123 236.0195 235.5033 235.4421 235.0473 235.5712 236.0395 235.7299 238.0135 237.4756 237.3726 236.9615 237.6833 237.4818 237.3145 242.5084 244.5145 246.435 248.1156 249.6762 249.9806 251.1054 253.7425 253.5739 251.8419 242.2635 232.2437 231.7263 233.275 233.7255 233.2819 233.4804 233.6494 233.6844 233.6985 233.5882 234.0426 233.813 233.6297 233.3913 233.7566 233.6115 233.7393 234.0538 233.9046 233.8188 233.609 233.7413 233.5154 233.7264 232.9625 233.5395 234.2569 235.2774 237.3287 238.3203 238.4344 238.3591 238.8985 238.376 237.397 236.8457 237.3992 238.6175 238.5935 238.4245 239.699 240.3568 241.2458 241.4846 242.6794 243.0953 243.5223 243.9909 244.5638 245.2395 245.9812 246.3194 247.1438 248.508 248.7075 249.1661 249.6763 249.8624 250.1028 250.4864 250.9444 251.5131 252.2262 253.6965 254.8495 256.069 256.8885 256.5603 256.0139 256.0282 256.7082 258.5718 262.7293 264.3886 265.7373 267.0072 267.1169 266.8499 266.1695 265.421 264.3803 263.3253 264.1375 265.5958 266.7209 267.7808 268.4835 269.1948 269.9519 270.6521 270.553 270.4265 270.5115 270.4565 270.0226 268.7579 268.4352 269.1977 270.1388 271.714 271.1601 270.7021 270.3875 270.0796 269.747 269.7468 269.6938 269.5536 268.988 268.6998 267.6475 265.4655 264.1353 263.7111 263.3821 261.7003 259.2898 256.699 256.0115 254.3698 253.4178 254.8603 256.4346 258.4066 -9999 +-9999 281.6698 291.7296 292.7626 293.6406 296.3789 298.114 299.6126 301.1387 302.5861 303.2951 305.3526 306.1774 305.5541 302.6708 301.7603 302.1586 304.5539 305.3304 306.5546 309.6241 310.6628 311.0468 311.1405 310.9022 310.0025 308.5444 307.1498 305.4694 302.5028 301.4134 300.5789 300.062 299.39 298.6275 297.7552 296.9518 295.8634 293.175 291.6401 290.7123 289.0907 287.5674 284.5576 282.6815 281.3568 281.3669 279.7058 279.2735 279.2721 278.7795 278.6509 278.8247 279.2843 279.4621 279.6122 279.5663 280.0675 280.6928 281.7388 282.5156 281.7039 279.2535 278.4475 281.3295 282.1459 282.5456 281.5416 278.8361 275.624 274.1508 272.8154 270.4567 272.118 277.6226 283.3679 284.7202 284.868 287.1292 288.8008 289.6252 290.5057 291.4436 292.0377 294.6958 295.6837 295.702 294.9924 294.7607 293.6432 294.1668 296.3698 296.0533 292.8193 292.9076 291.068 291.2055 294.0759 296.028 297.1256 297.4976 298.1472 298.5896 294.6709 289.3326 293.0782 295.7947 296.9177 297.7758 297.9893 297.4859 295.5391 293.6056 291.2402 292.4648 295.3659 298.5805 301.3215 302.0265 301.6532 301.5703 302.468 303.6882 304.5102 304.9221 305.2013 304.5709 303.2596 301.9301 300.8927 301.3015 301.5952 301.3414 300.5331 298.4928 297.7463 299.4011 301.4289 302.5551 304.6274 305.4383 306.2066 307.131 307.5272 307.5727 306.8431 306.1068 304.3717 302.4837 301.3778 300.0425 298.4897 297.4622 296.7993 295.5602 294.828 294.076 292.8809 291.5577 290.7755 290.1494 289.6243 289.7146 290.2502 290.5978 290.8038 289.2104 287.4978 285.8998 283.3642 279.4137 273.7927 267.51 265.9265 265.9891 268.7304 270.677 272.5244 274.949 275.3404 275.0449 274.7711 277.521 279.7431 281.2025 281.2706 278.7062 276.7314 278.0746 280.7618 281.5247 280.5991 278.9754 278.9233 281.0157 281.9853 283.3996 285.1046 286.3026 287.5887 288.5182 289.4696 289.278 286.7764 285.7547 285.118 281.5168 280.0191 282.0416 282.6948 283.2076 284.0565 283.3801 281.062 279.5262 279.4293 276.6596 273.3663 270.0486 265.8542 261.693 255.1887 250.7651 245.0467 243.9593 244.1905 243.7856 243.3151 244.5155 248.3854 252.9612 253.7714 254.6912 256.6433 258.8311 260.6317 262.1629 263.6234 265.9488 270.4917 271.651 272.7921 273.7031 274.8128 275.9747 276.5166 277.1686 278.1802 278.2387 276.8307 275.4638 274.4517 273.697 272.9796 271.1974 267.1943 262.0307 257.9601 255.2306 258.4805 260.4472 263.0527 263.2918 263.523 264.8644 265.8504 268.1772 271.0387 272.461 274.0876 275.7918 276.9602 278.1619 279.1628 278.83 278.1048 278.224 278.7704 279.8289 281.2436 281.3386 280.569 280.1645 279.1382 277.4959 276.1924 275.6285 274.9203 275.3318 275.041 273.867 272.5346 270.7858 268.7916 266.1912 264.894 262.7321 259.7479 256.3802 252.8941 250.5111 248.4567 247.865 247.3253 247.2245 246.2928 245.3214 244.6295 244.6051 244.5328 244.7607 246.0092 246.4432 247.8186 253.7918 259.4588 261.6485 263.3189 260.9227 255.6724 246.9921 247.9593 254.7233 257.6829 261.317 263.7834 264.0666 264.8611 266.6486 268.7989 269.8 274.0515 275.7685 274.7084 273.2702 272.2045 270.5453 269.6251 268.4317 265.5071 258.0357 249.042 252.2819 254.3428 252.113 251.1124 254.5427 255.3978 253.6291 248.9288 250.5409 250.6244 250.1667 245.8138 239.2909 236.7381 236.3123 236.6909 237.3855 236.9206 238.5138 237.497 237.4894 237.4627 238.6749 240.611 239.9206 242.5864 244.7551 247.2459 249.1928 251.2541 252.9144 254.1562 254.2915 252.3939 250.0773 240.8641 233.5529 231.5078 233.3398 233.6846 233.7834 233.4288 233.5411 233.6167 233.3806 233.4821 233.7469 233.5699 233.674 233.4505 233.9396 233.9712 233.622 233.7878 233.8075 233.7251 233.5959 233.7242 233.5275 233.4097 232.6239 234.5876 234.2151 233.6286 234.9734 235.359 236.175 236.2853 236.5114 236.2736 236.9134 237.0548 237.1192 237.6356 238.2378 239.036 239.5239 239.9773 240.7071 241.2941 242.1953 243.0408 243.5284 244.0391 244.6906 245.5332 245.5471 246.8715 248.0354 250.6585 251.5042 252.206 252.3127 252.0867 251.6087 251.6671 250.9444 251.5131 252.2262 253.6965 254.8495 256.069 256.8885 256.5603 256.0139 256.0282 256.7082 258.5718 262.7293 264.3886 265.7373 267.0072 267.1169 266.8499 266.1695 265.421 264.3803 263.3253 264.1375 265.5958 266.7209 267.7808 268.4835 269.1948 269.9519 270.6521 270.553 270.4265 270.5115 270.4565 270.0226 268.7579 268.4352 269.1977 270.1388 270.2731 270.0546 269.4134 269.0455 268.4591 267.9596 268.0501 268.0892 268.4074 268.3895 268.5783 268.1281 267.2194 265.651 264.9004 264.0184 262.0483 260.4352 258.6882 257.0105 255.3314 254.648 256.3248 257.8814 259.7113 -9999 +-9999 284.8602 288.0578 290.2079 293.104 296.03 297.9757 299.2236 300.0648 300.8823 302.2816 304.9253 305.78 305.3519 302.463 300.279 302.8667 304.856 305.4806 306.462 309.331 310.0143 310.204 310.1059 309.8256 309.2263 307.9633 306.3541 304.9821 302.1934 300.6871 299.0547 298.1171 297.2714 296.3564 296.044 295.3369 294.221 291.4762 289.7003 288.6147 287.2056 285.3098 282.9719 282.9216 282.3254 282.4547 281.9904 281.6693 280.5576 279.45 278.3995 277.2986 277.8993 277.2236 276.4093 275.9124 276.8284 277.1289 274.9613 277.9037 277.0226 275.8644 278.4475 281.3295 282.1459 282.5456 281.5416 278.8361 275.624 274.1508 272.8154 270.4567 272.118 277.6226 283.3679 284.7202 284.868 287.1292 288.8008 289.6252 290.5057 291.4436 292.0377 294.6958 295.6837 295.702 294.9924 294.7607 293.6432 294.1668 294.3469 294.0167 289.002 289.6666 288.0473 289.5779 293.1048 294.8446 295.7625 296.3943 296.9736 297.7755 294.5586 288.864 290.3554 293.5973 295.008 295.936 296.2188 295.0846 293.3528 291.8192 289.4366 291.0251 294.3363 297.3998 299.2077 299.601 299.1402 299.5749 300.7995 302.0894 303.0212 304.2904 304.8815 305.1172 304.1349 303.2893 302.0682 302.3693 302.846 302.4747 301.3148 299.1768 299.5164 301.343 302.3941 302.9856 305.5946 306.5677 307.3712 307.7736 308.3007 308.5016 307.6485 306.6298 305.7438 302.7426 301.4125 299.9426 298.5624 297.6608 296.9344 295.5169 294.4006 292.9239 291.3718 290.4786 290.0706 289.3894 288.3703 288.041 288.7045 289.2969 289.6679 288.5606 286.5478 284.6359 282.1668 278.5723 274.7717 270.0745 264.8216 265.8452 267.5377 269.6036 271.8981 273.7933 274.1238 273.2928 275.6088 277.5836 279.5828 280.1872 279.976 277.7522 275.5526 277.6942 280.3559 280.6666 279.8428 277.8069 277.588 280.2422 281.9099 283.3689 285.3019 286.8326 287.987 288.9955 289.5467 289.1596 286.2355 284.9192 282.9433 280.3691 276.8051 280.3994 280.8947 281.6335 282.8687 283.2737 282.1017 282.3398 281.7834 279.0901 275.37 271.2548 266.6764 263.6294 257.3556 253.6754 250.1494 246.3348 243.3807 243.4616 243.6523 243.5414 245.0345 252.8017 254.769 256.1357 257.6242 259.335 261.1924 263.1293 265.1053 267.0277 270.0445 270.7766 271.587 272.9157 273.6789 274.3506 275.0333 276.3346 276.5777 277.2675 275.6122 274.0601 273.7809 272.7876 271.9572 270.8754 268.0911 264.4636 261.809 254.4344 257.8814 258.8376 260.7039 261.7108 263.5248 265.9138 267.57 268.6491 270.8846 272.2372 274.0619 275.8296 277.1801 278.4169 278.9113 277.8039 277.1508 277.3175 278.055 279.8276 280.3143 279.9969 280.1541 280.189 279.4394 278.4656 276.9325 276.7808 275.884 275.7361 275.6503 274.3795 272.0751 270.1071 267.4959 264.4708 263.1274 260.5146 256.4385 251.4127 251.5551 251.4525 250.7215 248.0876 251.3784 251.003 249.64 246.7227 246.1338 245.9377 245.174 249.4041 252.4672 251.9514 247.4173 253.7562 257.3253 262.8749 267.7248 267.8865 265.0324 254.6504 245.699 253.8746 257.4273 259.9518 260.3783 259.6443 262.4794 264.8587 265.466 268.2445 274.4026 275.8237 275.5735 274.853 273.7764 273.336 272.1436 270.6884 268.3268 263.7556 262.2933 260.7296 261.4468 260.0171 260.3734 261.6794 262.1733 262.2867 257.9942 257.2614 255.8633 253.0579 248.2051 241.858 237.3528 238.382 238.9639 239.164 237.881 238.1836 237.7209 237.5054 237.5656 239.7946 240.517 240.2682 243 244.8574 247.1307 249.6143 251.9909 253.8137 255.058 254.6191 252.6169 250.4211 245.2175 238.193 231.4866 231.4771 233.6607 233.6947 233.7648 233.4787 233.3762 233.3053 233.4361 233.5215 233.4754 233.3565 233.5071 233.7745 233.9461 233.9016 233.5558 233.5934 233.6096 233.6173 233.5408 233.5275 233.4097 232.6239 234.5876 234.2151 233.6286 234.9734 235.359 236.175 236.2853 236.5114 236.2736 236.9134 237.0548 237.1192 237.6356 238.2378 239.036 239.5239 239.9773 240.7071 241.2941 242.1953 243.0408 243.5284 244.0391 244.6906 245.5332 245.5471 246.8715 248.0354 250.6585 251.5042 252.206 252.3127 252.0867 251.6087 251.6671 252.0028 252.5903 252.9774 255.2517 255.8979 255.7185 255.0405 255.0131 254.4906 255.9773 257.0137 258.667 262.8154 264.9314 266.4075 267.6717 268.5247 269.2048 268.4578 267.6299 266.7807 264.9228 264.2189 264.4668 265.5149 266.5565 267.641 268.5717 269.1189 269.019 269.0642 270.1332 269.8597 269.5764 269.2193 268.7083 268.278 268.4057 268.9194 268.7924 268.4532 268.0753 267.6491 267.2164 266.7383 266.7503 266.9478 267.0983 267.1056 267.5099 267.3768 267.3441 266.6367 265.5307 264.6431 263.503 262.6881 259.5242 258.3079 257.345 255.8177 257.5327 258.7748 260.6843 -9999 +-9999 287.7482 290.6364 292.1551 293.083 294.1657 295.7045 298.0571 299.7591 300.8662 302.5511 304.0178 304.198 303.5728 301.674 300.8148 302.4147 305.0513 305.7627 306.7676 309.0507 309.3212 309.4643 309.1336 308.3578 307.781 306.5607 305.343 303.9227 301.0591 300.1487 298.242 296.4061 295.0699 294.6681 294.4914 295.3369 294.221 291.4762 289.7003 288.6147 287.2056 285.3098 282.9719 282.9216 282.3254 282.4547 281.9904 281.6693 280.5576 279.45 278.3995 277.2986 277.8993 277.2236 276.4093 275.9124 276.8284 277.1289 274.9613 277.9037 277.0226 275.8644 278.1713 279.2741 280.2069 280.0139 278.6973 275.2596 272.0313 271.4706 270.0084 274.0417 277.1826 278.9484 282.3384 282.7659 282.7451 282.8591 283.4949 284.4358 286.1432 286.9437 288.7901 293.4501 295.152 294.6557 294.0607 293.6504 292.1019 292.3949 292.1178 291.234 286.6446 283.1492 286.8584 290.5594 292.804 293.9641 294.3249 294.8066 295.7938 296.8844 293.1618 288.0081 289.0075 291.9992 293.6767 294.2987 294.0394 293.3568 291.4525 288.619 288.5564 290.3508 293.2215 294.6109 296.2533 295.6438 295.7787 296.8239 299.3831 301.1338 302.5779 303.7126 304.6883 305.3402 305.1861 304.1161 303.253 303.5868 303.6754 303.5526 302.3518 300.3241 300.4453 302.0909 303.2604 303.6682 306.6531 307.6528 308.4009 308.5928 309.0533 309.4521 308.6126 307.4456 306.2648 303.2174 301.7401 300.2879 299.0457 298.1152 297.3545 295.8657 294.8822 294.2378 291.6071 290.5395 289.7133 288.6432 287.0291 286.5626 286.294 287.0949 288.2361 286.9622 285.1961 283.1696 280.4854 277.5666 274.4346 270.1221 266.9 265.8223 266.7882 269.3002 271.924 273.6324 272.0339 273.5688 275.7758 277.3686 278.7166 278.3557 278.0512 275.4533 275.4127 277.9656 279.7825 279.7969 278.9583 277.011 276.7363 279.8109 281.4036 283.1435 285.0655 286.6667 287.9057 288.6876 288.7268 288.0117 285.6382 282.5879 280.851 278.5297 273.1905 278.2833 278.6476 279.8309 280.6928 281.4798 281.6588 282.1675 281.2761 278.9279 275.4835 271.4375 267.3618 264.8473 259.0901 255.2558 251.056 244.6903 243.552 242.4371 243.4853 243.1406 243.0726 251.9288 255.3423 256.9124 258.478 260.0089 261.6142 262.8306 264.2238 265.8687 268.3134 268.9046 269.7281 270.0189 270.8983 273.0234 274.214 275.2803 276.4102 276.3119 274.2015 273.1746 272.4095 271.5141 270.3556 269.6334 267.7007 264.6623 261.2104 253.9484 255.9365 257.7672 258.3591 260.4554 263.0666 265.7441 267.1526 268.4365 271.1604 272.5193 274.558 276.3719 277.5251 278.356 277.9138 276.6562 276.2162 276.1422 277.3261 278.7348 278.9636 279.0951 279.5793 279.6008 279.1972 279.1845 277.7784 277.644 277.0149 276.582 276.4157 275.3551 272.8202 269.7839 268.2003 263.2269 260.462 258.1706 255.7932 253.806 253.7481 255.0201 252.8327 251.0584 256.0134 256.6335 255.0298 251.917 248.8831 247.3024 246.4393 252.0345 255.2859 255.7057 248.9742 251.4608 256.4579 262.9232 268.4181 272.9322 270.0547 260.6602 252.0008 251.0516 255.0846 255.0815 258.0625 261.6088 263.5636 264.8806 267.236 270.4069 273.6637 274.4438 274.8073 275.2049 274.9876 274.8191 274.3457 273.3125 270.9812 267.8506 267.2827 266.4297 265.6757 265.2126 265.2643 264.5612 263.594 263.1133 259.345 257.3694 254.6579 250.212 244.8727 239.4901 238.8312 240.4025 240.315 241.0384 241.0549 240.9196 240.9111 241.1515 241.0268 239.7946 240.517 240.2682 243 244.8574 247.1307 249.6143 251.9909 253.8137 255.058 254.6191 252.6169 250.4211 245.2175 238.193 231.4866 231.4771 233.6607 233.6947 233.7648 233.4787 233.3762 233.3053 233.4361 233.5215 233.4754 233.3565 233.5071 233.7745 233.9461 233.9016 233.5558 233.5934 233.6096 233.6173 233.5408 233.3161 232.8464 234.9659 238.2278 238.3584 237.0758 234.9433 234.9174 234.6094 234.8197 235.0382 236.5916 237.1905 237.4854 237.2815 237.7397 238.6935 239.0262 239.424 240.0584 240.5305 241.0533 242.0014 242.7935 242.9641 243.4827 244.1695 244.824 245.5343 246.7505 248.1363 250.724 252.0717 252.8253 253.3609 253.3214 252.9043 252.5354 252.9439 253.6198 254.2446 254.2233 254.2027 254.4491 254.366 254.184 255.4409 256.6774 257.839 259.6507 263.0527 264.882 267.0027 268.4832 269.715 270.6267 270.4846 269.5797 268.6639 266.5731 265.7953 265.4484 265.2543 266.3645 266.7906 267.5749 268.0863 268.1403 268.7575 269.0894 269.6076 269.2745 268.4526 267.6155 267.251 267.4742 268.1744 267.5932 267.0566 266.678 266.127 265.5503 265.3146 264.8967 264.78 264.792 265.4667 265.8732 265.8237 265.6751 265.4904 265.0083 264.6778 264.1753 263.5974 261.0396 259.2583 258.1349 257.9192 258.3806 259.6791 261.0845 -9999 +-9999 286.275 291.3112 294.376 295.9182 297.1065 298.3823 299.4478 300.6842 301.6534 302.5511 304.0178 304.198 303.5728 301.674 300.8148 302.4147 305.0513 305.7627 306.7676 309.0507 309.3212 309.4643 309.1336 308.3578 307.781 306.5607 305.343 303.9227 301.0591 300.1487 298.242 296.4061 295.0699 294.6681 294.4914 293.538 292.7692 289.2396 287.7208 286.4325 283.8523 284.0531 284.5767 284.8476 284.5464 284.9637 284.7729 285.2311 285.4756 284.7065 283.8415 284.1763 283.9267 283.7541 283.4824 276.8303 275.0754 274.9696 274.8521 274.1035 274.7156 274.8526 274.8319 275.8353 277.0183 276.7834 275.0744 271.3451 270.1898 271.8279 273.9023 274.0746 272.9714 272.9956 276.9033 277.4588 278.2883 277.0105 275.0605 278.0291 282.9407 286.3423 288.5209 293.0132 294.4331 293.6836 292.9729 292.5078 291.1786 289.5858 289.117 287.9416 282.2016 284.614 288.1736 290.8478 291.8513 292.5047 292.4033 293.4765 295.0813 295.1053 290.735 286.1352 288.0178 290.4061 291.7242 292.2658 291.5807 290.6178 289.4225 286.7087 287.6367 287.9274 289.8871 290.9328 291.3473 290.7815 291.8278 297.0758 300.0366 301.4512 302.8096 303.8385 304.8173 305.3369 305.743 305.4171 304.6556 304.3057 304.5089 304.3544 303.7266 302.4839 302.7532 303.0476 304.1647 304.7763 307.7354 308.5094 308.9183 309.3312 309.5596 309.6433 308.9553 308.1304 306.5869 303.5945 301.9922 300.3083 299.1116 298.0367 297.0302 295.9014 295.127 294.2313 292.4719 291.9799 290.9284 289.5724 288.1033 286.9754 286.0669 285.1262 284.9295 285.4398 284.0596 282.2452 279.8247 277.3383 274.3734 271.4575 267.6748 265.0579 266.0736 268.9655 270.7521 271.4401 271.3171 273.2715 274.891 276.3523 277.5215 276.0981 276.2062 273.8014 275.2692 277.4739 278.8513 278.7532 277.774 276.0749 275.4636 279.1219 280.985 282.8774 284.7697 286.4379 287.5287 288.0709 287.7661 286.9854 284.2485 282.4162 277.9221 274.8627 268.1452 274.9613 276.6583 277.382 277.9304 279.3987 280.2225 279.3812 278.82 276.1569 273.2957 270.1652 267.8352 264.9017 258.5365 252.9312 246.3708 243.5846 243.4642 241.9524 243.4766 243.1543 242.8613 249.5535 254.4655 256.5699 257.7464 258.7369 259.3616 260.8176 261.7585 263.2859 264.8553 265.7819 266.7844 270.1966 272.4955 273.5072 274.1848 274.9111 275.1914 274.7414 273.1602 272.3785 271.5332 270.5659 269.5073 267.9135 266.2702 264.2199 259.4719 253.4776 255.4823 256.0441 258.7473 260.9512 264.1618 266.321 267.9127 269.0642 272.2461 273.1945 274.8224 276.306 276.5728 276.8694 276.7119 275.6027 274.6716 275.0589 276.7325 277.4059 277.9149 278.2012 278.4378 278.4352 278.3368 278.8466 278.8434 278.5189 277.962 277.2901 277.5415 276.242 273.1687 270.4285 269.3783 262.8515 259.9298 255.0381 256.0106 255.2837 256.597 256.6086 250.3731 253.1653 258.9418 259.5539 258.2447 255.9122 253.1678 248.9987 247.8533 253.6049 257.1411 257.6844 252.0617 256.7469 263.1917 268.111 271.3115 274.7736 272.8286 265.0587 257.1465 249.1242 251.9702 256.1254 259.4342 261.3443 262.6961 265.0771 267.236 270.4069 273.6637 274.4438 274.8073 275.2049 274.9876 274.8191 274.3457 273.3125 270.9812 267.8506 267.2827 266.4297 265.6757 265.2126 265.2643 264.5612 263.594 263.1133 259.345 257.3694 254.6579 250.212 244.8727 239.4901 238.8312 240.4025 240.315 241.0384 241.0549 240.9196 240.9111 241.1515 241.0268 240.6946 240.4289 240.7485 243.7184 245.8474 248.2368 250.1848 252.0194 254.1698 255.6075 255.1701 253.7751 251.6664 244.7076 239.2821 233.8564 231.4099 231.4717 234.3677 233.7183 233.5518 233.4972 233.2639 233.2673 233.3348 233.2715 233.279 233.6904 233.8002 233.7935 233.8853 233.7777 233.5951 233.4478 233.573 233.4283 233.0516 233.1584 235.7148 239.5659 239.4895 238.162 237.5065 237.131 237.0046 236.3577 236.188 235.7777 236.0121 236.4603 237.149 237.7023 238.2847 238.9099 239.5258 240.0292 240.6873 241.1928 241.9849 242.4758 242.547 242.7182 243.4383 244.6032 245.1603 246.342 247.929 250.2272 251.3879 252.3351 252.9533 252.7878 252.6288 252.2373 251.473 251.3647 252.278 252.6725 252.1913 253.1007 254.3847 255.388 256.9378 258.3266 259.547 260.6778 262.8974 264.908 267.0961 268.9963 270.3677 271.5627 272.0242 271.5798 270.4656 268.7398 267.8632 267.4073 266.6753 266.3122 266.2802 266.5167 267.0218 267.3633 268.3841 268.774 268.7768 268.224 267.9422 267.1025 266.3601 266.2058 266.1735 266.2557 266.0625 265.6638 265.0948 264.3686 264.0078 263.454 262.7559 263.1581 263.3977 263.5819 265.0446 264.244 263.9154 263.669 263.6825 263.5504 263.2425 261.6848 260.2429 259.5201 258.704 258.5858 259.7059 261.0726 -9999 +-9999 286.275 291.3112 294.376 295.9182 297.1065 298.3823 299.4478 300.6842 301.6534 302.6311 302.6006 301.4227 300.161 299.0567 301.3378 304.206 306.1686 306.9034 307.2712 309.0977 308.9912 308.8796 308.1694 307.0699 305.8571 304.4899 303.7912 303.0651 300.0205 298.5669 296.2733 294.8882 293.41 292.7013 292.3379 291.5089 291.3459 287.1386 285.3113 285.1332 286.2092 287.5109 287.4828 287.4856 287.9539 287.9028 288.0501 289.4938 290.1758 289.6682 289.6185 289.8947 290.163 290.2776 289.1436 283.0646 278.9525 276.5633 277.0917 278.1395 274.6527 272.5937 272.7718 273.6142 272.9796 273.24 272.2903 273.1384 271.9923 271.5118 270.8127 268.2066 268.0045 268.9978 267.3054 268.88 269.3904 269.7911 274.7304 282.3607 286.3215 288.2411 290.6161 293.5212 294.433 293.2778 291.926 291.2937 290.1777 287.8001 285.8684 284.9372 281.8009 285.022 287.7635 289.5814 290.2105 290.174 290.4735 292.326 293.8827 293.2148 288.2606 284.5757 286.8749 289.3749 290.0879 290.0929 289.1884 288.0829 285.8501 284.9266 288.1774 287.8484 289.1014 290.9271 293.2709 294.6806 295.8367 299.2404 301.9221 303.6942 304.375 304.9371 305.5456 306.2581 306.2491 306.4059 305.7483 304.9807 305.1507 305.1137 304.4297 304.1284 303.9025 304.3629 305.2555 305.9755 308.9333 309.4784 309.6487 309.4307 308.8511 309.0663 308.8638 307.765 306.641 303.109 301.1384 299.7593 298.4439 297.1865 296.0593 294.8336 294.3242 293.6668 292.4628 291.9327 290.9916 290.2951 288.6277 287.345 286.2231 284.3117 282.1092 284.1497 283.5527 282.7235 280.6972 278.2907 275.1058 272.5132 269.139 265.5016 265.5819 267.2365 268.5992 269.508 271.0774 272.2995 274.2324 275.9768 276.4152 274.9019 273.9947 273.0586 275.0334 276.9345 277.548 277.4435 276.166 274.5759 274.7498 278.334 280.5722 282.5439 284.8478 286.5198 287.3964 287.5467 286.6266 285.4362 283.7817 282.3597 279.2357 275.3477 271.9051 268.8356 272.1239 273.7591 274.7993 277.4431 278.9055 278.3907 276.5327 273.976 271.1436 268.9179 267.5273 264.1836 256.4336 252.3503 247.3507 243.376 243.1242 242.9262 243.4837 242.6237 242.7741 250.6191 253.4884 253.8882 255.9705 254.8184 255.7201 257.771 261.1694 261.3533 264.906 266.817 268.891 271.0639 272.9182 273.8445 274.84 275.1451 274.6052 272.758 272.109 271.4898 271.196 270.1632 268.7204 266.6693 264.8741 262.2921 258.4995 253.5598 255.748 257.6216 259.2297 262.0625 264.712 266.1252 267.9898 269.3782 272.296 273.0494 274.2507 274.9203 275.0749 275.674 275.3825 274.0858 273.377 274.4223 275.3453 276.3212 276.7186 276.8449 276.9627 277.1998 277.8867 278.9273 280.1684 279.5683 278.9904 278.3212 278.1547 276.8721 274.3821 271.62 269.8976 265.1386 259.9298 255.0381 256.0106 255.2837 256.597 256.6086 250.3731 253.1653 258.9418 259.5539 258.2447 255.9122 253.1678 248.9987 247.8533 253.6049 257.1411 255.8627 252.0617 256.7469 263.1917 268.111 271.3115 274.7736 272.8286 265.0587 257.1465 249.1242 251.9702 256.1254 259.4342 261.3443 262.6961 265.0771 267.8413 269.6721 271.9577 272.6915 273.6605 274.834 275.7238 276.0712 275.8922 274.6517 272.4954 268.4231 266.9638 265.2279 264.8806 264.1602 263.2014 262.063 261.0099 260.3142 256.7035 254.3217 250.3105 245.2988 240.8808 240.0872 241.5512 242.101 242.3186 243.7675 244.523 244.9056 245.18 244.4388 243.6354 241.4827 240.41 240.3166 244.3588 246.2558 248.5697 250.7679 252.7374 254.7364 256.0322 256.1749 254.7335 251.3178 247.4575 242.9873 235.6796 233.5201 231.5273 232.6302 233.7862 233.459 233.1716 233.2501 233.2697 233.3238 233.3893 233.2147 233.4082 233.5118 233.6204 233.7004 233.6398 233.652 233.5202 233.5489 233.1064 232.322 233.4475 235.2532 238.7616 239.2767 238.8622 238.2296 237.7157 237.7581 237.2158 237.2129 237.1718 237.0365 236.9948 237.1653 237.2575 237.447 238.6068 239.5611 240.2078 240.8854 241.2718 242.07 242.3934 242.6473 242.7551 243.291 243.9531 244.6673 245.8092 247.2514 249.2673 250.3911 251.2335 251.2573 250.9918 250.5647 249.4706 248.5216 249.0218 250.8842 252.3693 253.0497 254.0017 255.4686 256.6927 257.7538 258.6929 259.8426 260.8456 263.2623 264.5488 265.8987 267.8434 270.016 271.35 272.4856 272.9395 272.4624 271.0282 269.7204 268.455 267.1776 266.6724 266.4207 266.3292 266.5673 266.753 267.7101 268.1085 268.0938 267.6867 267.5421 266.8495 266.0193 265.4861 265.0804 264.8793 264.489 264.4204 263.7331 262.8614 262.1991 261.6584 261.6579 261.491 261.1921 261.8095 262.318 262.0721 261.9219 261.937 262.0574 261.0882 261.7573 261.5729 261.1139 260.2185 259.4066 259.0446 259.1667 260.1793 -9999 +-9999 287.0127 292.9641 295.6923 297.0169 298.0523 299.147 299.975 301.007 301.5313 301.9674 300.9764 298.7861 297.8054 300.9236 303.7356 306.0231 307.4186 308.183 308.6097 309.2833 309.0512 308.4517 307.4248 305.7776 303.8759 301.4417 300.7164 299.9128 296.8697 295.5544 293.6444 292.7112 291.759 291.7305 291.504 290.3956 288.1789 287.3462 288.03 288.689 290.4596 291.4308 288.9855 290.1206 291.7783 290.4619 289.9193 291.8327 292.7422 292.9571 292.7082 293.1715 293.825 293.4041 292.4867 287.5602 283.6447 278.8719 279.4876 280.4885 279.8521 277.1985 271.5487 271.8296 272.0281 271.2206 270.8995 271.0141 270.8707 268.9579 271.0052 272.121 271.877 272.2542 271.3675 269.7787 267.9688 268.9299 276.4281 281.5371 286.8064 288.4591 290.8208 293.4424 293.7354 292.5945 290.7251 289.555 288.6667 285.7485 283.8837 281.8778 279.6186 284.0385 286.3165 287.1885 287.6897 288.3727 289.7883 291.7281 293.0806 292.269 288.1646 283.065 284.8155 287.5793 288.4776 287.7317 286.9681 285.5809 283.3723 283.5943 286.3696 288.0158 290.892 292.7743 295.1019 297.4894 299.0928 301.716 303.3191 304.8732 305.9729 306.6373 307.103 306.9198 306.8174 306.6888 306.5971 305.6327 305.9742 306.2211 305.6673 305.1527 305.1286 305.6804 306.0515 307.2007 309.4495 310.1277 309.7945 308.7125 307.9064 307.7727 307.494 306.8018 305.4568 302.2159 300.5225 298.8273 297.4744 296.2758 294.9033 293.9471 293.0261 292.4443 291.3888 290.9604 290.4264 290.1117 288.4128 286.6956 285.0873 283.9447 282.3736 281.9929 283.0521 282.2036 281.0514 278.4324 275.0622 271.5167 267.8332 265.3772 265.6259 266.7766 268.2313 270.7321 270.6877 270.997 272.8058 274.5452 274.9714 273.3991 271.4801 272.4628 274.8026 275.5567 276.0649 275.8489 274.5268 273.3682 274.0284 278.1508 280.2422 282.2632 284.8336 286.6748 287.155 286.6948 285.6804 284.3698 282.945 282.8524 281.7829 279.0778 274.6413 264.6984 267.1086 269.1894 270.8905 275.5612 275.8477 275.2147 273.9905 272.9216 270.9123 269.1803 267.4142 265.1628 259.9016 256.1467 249.4555 243.8702 243.0403 243.1028 242.2111 242.7949 244.139 248.1537 249.3524 250.7218 252.4229 256.6268 260.7267 263.544 265.3889 266.6646 268.4611 269.8625 270.8151 272.202 273.5443 274.4662 275.0052 274.9758 274.2742 271.5283 270.9802 270.7537 270.5331 269.4924 267.6692 266.3117 264.6544 262.2729 258.3628 253.0185 254.561 256.8974 259.5873 262.0625 264.712 266.1252 267.9898 269.3782 272.296 273.0494 274.2507 274.9203 275.0749 275.674 275.3825 274.0858 273.377 274.4223 275.3453 276.3212 276.7186 276.8449 276.9627 277.1998 277.8867 278.9273 280.1684 279.5683 278.9904 278.3212 278.1547 276.8721 274.3821 271.62 269.8976 265.1386 262.8259 262.0477 260.4518 259.96 258.9347 254.9128 253.7228 256.1724 261.1811 261.4269 259.9924 257.5384 254.6622 249.963 248.2968 253.932 258.5181 257.6222 254.7478 257.9229 264.5527 270.0934 273.4322 275.4267 272.1525 266.1162 259.8641 248.6757 249.1672 253.4146 256.4932 258.2874 260.3522 263.1181 265.6278 266.9413 269.7881 271.1245 272.6985 274.2449 275.5869 276.5026 276.1614 274.9809 272.7179 268.0321 265.5772 263.8883 261.678 259.717 258.2426 257.3646 256.1892 255.8408 252.6875 249.2964 244.9936 240.0501 240.8054 242.7337 243.2607 243.5915 244.7859 246.0744 247.5882 248.6207 247.7631 247.3468 246.8253 245.3326 241.7677 240.6506 243.8503 246.2336 248.8247 250.9317 253.0796 255.2027 256.7171 257.7126 257.6522 251.627 247.9989 243.7233 238.289 233.2287 233.6208 231.4827 234.3857 233.5154 233.5055 233.1302 232.9265 233.1513 233.2149 233.1233 233.1821 233.1413 233.0603 233.3235 233.5832 233.5328 233.4193 233.4851 232.799 232.1919 233.4157 234.3512 236.6801 239.6859 239.1073 238.6774 238.3882 238.1602 237.7153 237.2332 237.424 237.1721 237.1967 237.3343 237.5421 237.7347 239.0699 239.5292 239.8251 240.4751 240.759 241.5284 241.857 242.4318 242.8455 243.7502 243.6879 244.4794 245.4322 246.611 248.469 249.1876 249.3326 249.0506 248.8647 248.2604 247.3211 248.3931 249.8657 252.4006 253.218 254.1293 255.2527 256.6656 257.5003 258.3505 259.2293 260.0836 261.2231 263.3083 264.5375 265.7477 266.9728 268.2721 269.6617 271.6993 272.6438 273.0289 272.2289 271.5555 269.8853 268.7852 267.9976 267.6418 267.444 267.0877 266.7662 267.0056 267.2681 267.2491 267.0356 267.2074 266.5764 265.9015 265.0876 264.0891 263.2853 262.9009 262.5981 262.2519 261.1363 259.9515 259.5106 259.1101 259.2708 259.4155 259.9918 259.8837 259.5836 259.5075 259.929 259.4141 259.5145 259.5986 260.7007 260.8509 260.2993 259.8025 259.1091 258.8259 258.736 -9999 +-9999 288.9058 293.6907 295.942 296.7916 297.4286 298.2438 299.2175 300.1902 300.3816 300.5312 298.5839 296.2484 297.6434 301.2704 304.2744 306.333 307.744 308.3084 308.6735 309.4591 309.2837 308.3075 307.2841 305.1147 302.1501 299.872 298 296.8097 293.8405 292.8013 292.2435 291.9389 291.7965 291.6518 290.801 291.7241 290.3634 291.5618 292.3876 293.0557 293.9215 293.8539 292.8586 293.5719 293.3499 291.8083 291.3288 293.0927 294.2929 294.5831 294.1907 294.5365 294.8069 294.1188 293.5438 289.2938 285.3326 280.0563 281.7838 283.7199 282.9419 280.3821 275.0859 272.0462 271.7258 271.1476 270.1052 270.4054 270.7701 271.4334 275.0901 275.8649 276.0243 275.4768 272.1566 270.837 267.7778 271.157 281.683 284.3222 286.926 288.4342 290.3047 292.3335 292.0755 290.8232 289.1921 287.5979 287.7778 284.6389 279.3046 278.6293 280.9391 283.1069 283.3445 285.1469 286.7938 287.7869 289.2598 291.2331 292.3703 291.8934 288.6841 282.484 283.8118 285.9801 286.3239 285.7861 284.4423 282.2543 284.2913 287.5662 289.5841 292.9593 295.0062 296.625 297.5519 298.0772 300.0413 302.9078 304.2601 305.7255 306.9672 307.6611 308.165 306.792 306.808 306.7769 306.6028 305.7906 306.0208 306.4992 306.4153 306.0344 306.0952 306.1572 306.8943 307.6157 309.7403 310.2863 309.9847 307.8514 305.9076 305.723 306.115 305.6473 303.8971 300.5903 299.341 298.2981 296.7739 295.5294 293.9572 292.8229 292.4681 291.76 290.363 290.0996 289.6757 289.2508 287.9185 286.0588 284.5026 282.9139 281.9008 279.7235 281.2142 281.2978 280.7276 278.4803 274.597 270.5923 266.9633 265.3488 264.8235 265.267 266.3241 269.6589 269.8698 269.083 271.0964 272.5828 272.8786 271.6257 269.5561 271.0499 271.5962 273.5983 274.7019 274.3173 273.1077 273.1338 273.456 277.7115 280.0066 282.0804 284.6818 286.6278 286.8152 286.0497 284.9099 283.4926 281.8362 282.1176 281.747 279.5991 275.3513 269.4396 262.4428 265.3263 267.0979 272.0704 272.1593 272.2352 271.9733 271.5209 270.5258 269.5176 268.1659 267.2115 260.2911 256.8714 252.0016 245.3187 242.864 242.7256 242.8943 243.1161 244.0238 248.1537 249.3524 250.7218 252.4229 256.6268 260.7267 263.544 265.3889 266.6646 268.4611 269.8625 270.8151 272.202 273.5443 274.4662 275.0052 274.9758 274.2742 271.5283 270.9802 270.7537 270.5331 269.4924 267.6692 266.3117 264.6544 262.2729 258.3628 253.0185 254.561 256.8974 259.5873 262.5796 264.394 265.8994 267.8195 268.9215 271.4993 272.2204 272.3904 273.3552 273.9323 273.7782 273.5029 272.7975 272.4526 273.5169 274.1587 274.8177 275.3891 275.9616 276.2359 276.7097 277.6373 279.0338 281.0596 281.1535 280.4977 279.5222 278.5628 276.7311 275.0446 272.631 270.4742 266.9045 265.449 264.4107 263.1092 262.3659 259.3328 254.7503 255.902 258.6425 263.373 263.4613 261.5283 258.8044 255.933 252.0138 249.1487 254.2803 259.1546 260.6927 259.616 256.8298 259.7567 265.121 268.6702 270.6711 270.1743 265.8768 261.8371 251.2518 248.4336 249.2441 251.2577 254.0456 257.0976 260.2281 262.3423 263.987 267.98 270.3926 271.833 273.7263 275.221 276.1995 275.5207 274.5153 272.3907 267.6439 265.0054 261.8542 257.747 254.1885 252.7272 250.9499 250.0244 248.5043 246.5319 243.5412 240.827 242.5584 243.7639 245.1536 245.5726 245.0093 247.3778 247.5478 250.301 250.3949 249.2084 249.4537 249.9407 248.8894 246.5882 242.6049 243.4558 245.6861 248.3873 251.0741 253.7507 255.9632 257.8436 259.1138 257.9421 251.4381 247.6305 243.6323 238.9324 234.898 232.9754 231.499 234.0665 233.9233 233.4714 233.1899 233.1733 233.2034 233.0564 232.818 233.0249 233.1054 233.0001 233.113 233.2859 233.2831 233.3395 232.9254 232.7123 233.0556 233.3141 233.8584 235.8967 240.1601 239.5838 239.2238 239.0507 238.5686 238.1331 237.7647 237.4773 237.7335 237.6994 237.4339 238.0987 238.2298 239.0234 239.5186 239.6452 240.282 240.8121 241.6074 242.0593 242.4415 242.8896 243.7855 243.7475 244.4298 245.3246 245.8846 247.0975 247.2978 246.7552 246.1543 246.8987 247.4622 248.0602 249.0254 250.2168 253.371 254.2681 254.8558 255.2092 256.4789 257.2258 258.6161 259.0136 259.585 260.4903 262.6785 263.7077 264.8084 265.5619 266.6949 268.5482 270.1959 270.8563 271.8049 272.3611 272.1683 271.1018 270.3355 269.8561 269.3153 269.1057 268.569 267.6986 266.8026 266.7215 266.6801 266.7184 267.2845 265.8299 265.3886 264.7774 263.6673 261.8015 261.5223 260.4966 259.9919 259.3897 257.9278 257.1561 256.4806 256.5634 257.4976 257.8144 257.7203 257.5006 257.7242 258.2162 257.8562 257.2443 257.702 259.2321 259.4767 259.8256 259.8579 259.4073 259.0005 257.9543 -9999 +-9999 290.3912 293.0681 294.9605 295.7357 296.1152 296.7014 297.6871 298.1616 298.3075 298.8043 295.2359 294.6646 298.3068 301.5018 303.9649 305.677 306.7556 307.208 307.7117 309.2701 309.4436 308.5345 307.6207 305.3439 302.1338 299.5451 298.439 297.0398 296.4629 296.0457 294.5336 294.2158 294.4317 293.8529 293.2064 293.726 294.4846 296.2546 296.5129 296.7766 296.7095 295.9689 295.1005 295.3467 294.3052 293.158 293.0472 294.7762 295.3546 295.3858 295.0412 294.0195 293.5404 292.9029 292.4939 287.994 284.5855 282.3631 284.7579 285.7966 284.534 281.708 276.3415 272.1387 271.3569 271.3884 271.54 272.2677 273.2783 275.3815 277.9397 278.7251 278.9755 278.5504 272.6637 270.2367 266.4148 273.8584 279.3617 283.046 285.5812 288.7519 289.668 290.9514 290.6399 289.1243 287.6104 285.5327 285.9219 284.8038 280.5273 275.1723 279.9442 281.5144 282.8693 284.7101 286.5211 287.4822 289.1529 290.378 290.869 290.7599 288.7801 282.652 281.7456 283.7279 283.4407 281.9466 280.6696 282.0003 288.0436 289.7213 290.3307 294.0587 295.8848 297.6732 299.0985 300.2603 300.7639 303.3074 304.8232 306.1411 307.1189 307.8075 307.7012 306.6111 306.6419 306.6891 306.045 305.85 305.3762 305.4706 306.0088 306.0371 306.0229 306.2747 306.9585 307.6953 309.0466 309.0805 308.7317 306.9662 304.4778 303.9345 304.3518 304.1182 302.3112 299.2997 298.2098 297.1175 295.7709 294.4193 292.9027 291.814 291.2556 290.725 288.4823 288.1911 288.3789 288.0317 287.2569 286.0629 284.6868 283.0767 280.5201 277.9833 279.1298 280.2214 280.3053 278.5559 275.2445 270.4569 267.0691 265.8145 264.6495 264.6526 265.7101 267.3072 266.6266 266.9965 268.8141 270.5474 270.611 270.1134 267.939 267.3209 270.1196 272.4723 273.1669 272.8545 271.6298 271.3452 273.344 277.0319 279.2302 281.3503 283.7169 285.8038 285.992 286.0497 284.9099 283.4926 281.8362 282.1176 281.747 279.5991 275.3513 269.4396 262.4428 265.3263 267.0979 272.0704 272.1593 272.2352 271.9733 271.5209 270.5258 269.5176 268.1659 267.2115 260.2911 256.8714 252.0016 245.3187 242.864 242.7256 242.8943 243.1161 244.0238 248.8615 251.0014 253.4559 255.913 258.729 261.8507 264.9883 267.1841 268.2373 269.6309 270.376 271.519 272.8876 273.5701 274.2766 274.488 274.0745 273.4375 270.8347 270.2695 270.2227 270.0175 268.8343 267.0929 265.7328 263.4947 260.65 257.4579 251.6662 253.4483 256.2495 259.3429 261.6823 263.469 265.5068 266.7857 268.0512 270.0967 270.4656 271.6454 272.3928 272.1523 271.3225 271.2751 271.3669 271.4348 272.5614 273.0518 273.6045 274.1045 274.7513 275.6677 276.3207 277.3501 278.5651 281.4375 282.2656 282.1029 280.937 279.3507 277.8021 275.8325 273.1282 271.5525 268.1988 266.5033 265.4095 264.5274 262.3057 258.5528 258.2474 259.9319 260.9093 264.3739 264.4832 261.9398 259.1479 255.6926 250.8808 249.1573 254.3772 259.4885 263.5169 263.9398 263.6797 262.0403 260.5355 264.5382 267.304 267.8551 266.3022 263.3755 252.3529 253.6016 253.1502 253.6488 251.6562 254.5973 257.7891 259.8403 261.9434 267.527 270.2534 271.596 273.5956 275.2205 275.5412 274.7534 273.1524 271.3757 267.1711 264.64 261.5829 256.6033 253.4254 252.8728 250.7832 247.0433 246.0613 243.9393 242.5577 243.9538 244.8817 245.2849 246.3841 247.7457 247.2206 249.8108 249.5165 252.2115 252.1564 251.0045 251.334 252.3143 251.4408 248.6737 244.9136 243.6224 246.1999 249.3998 252.3981 254.6444 256.87 258.7707 259.5186 257.9857 250.7163 246.3596 242.125 238.1488 235.4929 233.8717 231.4495 232.7697 234.136 234.0177 233.2717 233.1002 233.1331 233.0798 233.0022 233.0728 233.0463 232.8236 233.0237 233.0879 233.2316 233.1902 232.6263 231.8584 233.2282 233.278 233.6222 235.312 240.2276 240.0158 239.6394 239.4003 238.926 238.4409 238.214 237.9173 237.7141 237.5729 237.7295 238.0648 238.6277 239.0832 239.3209 239.7066 240.2725 240.8948 242.0296 242.4374 242.7566 243.2703 243.6786 243.9249 244.3329 244.9182 245.1879 244.5889 244.7635 244.7612 246.3624 247.7599 248.7793 249.3498 250.0797 250.7581 253.9297 255.3655 256.3746 256.8994 257.27 258.3213 259.3111 259.5059 259.7187 260.1979 262.054 263.0198 263.8127 265.1159 266.6283 267.8329 268.8407 269.6569 270.5446 271.1368 270.9801 270.8524 270.4384 269.943 269.6197 269.3958 268.7797 268.1033 267.3507 267.0795 266.7688 266.599 267.3982 265.6326 265.1378 264.5312 263.4128 261.5273 260.5327 259.8668 259.1003 257.8796 256.4845 253.499 254.8166 254.3051 254.9153 254.8472 254.7431 254.9132 255.2383 256.1229 256.1871 255.6055 256.5138 257.2801 257.8042 258.5155 258.8917 259.0078 258.7487 258.3563 -9999 +-9999 287.4631 291.1333 293.3429 294.6678 294.4902 294.7613 295.3823 295.3911 295.7362 296.0814 292.6319 295.9016 298.2021 300.0777 302.0399 303.7718 304.4664 305.1744 306.5129 308.9089 309.2549 308.3706 307.7257 306.4539 304.388 302.6744 302.3211 301.2303 300.8628 299.7926 298.8394 298.2492 297.7866 296.745 296.6169 296.091 296.7803 298.111 298.6944 298.7343 298.3802 298.0174 296.4846 296.5493 296.168 295.5649 295.4241 296.2181 296.1806 296.0471 295.1901 293.5177 291.6784 290.7182 289.084 285.1105 284.0656 285.6727 287.2867 287.818 285.9265 283.3355 278.9271 273.2018 273.2887 274.1607 276.5103 277.7003 278.0256 277.5302 278.8286 279.1369 279.8564 279.436 272.5664 268.5136 268.6834 275.4146 282.2456 285.9258 288.1841 288.5508 288.6663 288.4647 288.5473 287.4539 286.25 284.8663 282.985 283.1288 279.6293 273.5316 279.1713 281.4254 282.8433 284.5071 286.2782 287.4276 288.7881 289.3451 289.1247 290.0314 288.7423 282.8538 279.9824 282.0159 280.2325 279.186 281.1883 285.0445 289.3446 290.7531 292.5211 293.7321 294.9505 297.4969 299.5644 301.3999 302.7159 303.7176 304.8639 305.9693 307.161 307.5894 305.8793 305.5433 306.0231 306.4553 305.6826 305.5059 305.3782 304.9555 304.8816 304.9808 305.4649 305.4628 306.2999 307.0592 308.2366 307.6812 307.3192 305.7096 303.3377 301.8396 301.864 301.6483 300.3796 297.4765 296.7929 295.8926 294.6645 293.3992 291.8887 290.8189 290.0563 289.2754 287.2289 286.5805 286.5592 286.6653 286.2178 285.5189 284.4499 283.0957 281.1997 276.926 276.8343 278.0147 280.3053 278.5559 275.2445 270.4569 267.0691 265.8145 264.6495 264.6526 265.7101 267.3072 266.6266 266.9965 268.8141 270.5474 270.611 270.1134 267.939 267.3209 270.1196 272.4723 273.1669 272.8545 271.6298 271.3452 274.8779 277.0319 279.2302 281.3503 283.7169 285.8038 285.992 285.3787 284.2554 282.7647 280.5712 281.3304 281.5757 280.4298 276.2049 267.54 260.718 260.7351 261.4197 267.3574 267.2202 269.9946 270.2332 269.2035 269.2482 268.4557 267.1249 265.6318 259.6994 255.3601 250.7393 245.5928 242.7462 242.7103 242.4769 242.4891 243.2108 249.4981 251.8079 253.607 256.0475 258.6833 261.8751 264.8734 266.547 266.9301 268.1062 269.5514 270.5874 271.8371 272.9514 273.5531 273.1072 272.3127 271.1335 269.5997 269.3967 269.8582 269.8251 268.6469 267.0145 265.8069 263.7213 260.5451 252.7853 250.0963 253.2351 254.451 256.8935 259.4902 261.4272 263.7825 266.4061 267.3183 269.2402 269.9616 270.8777 270.0898 269.5086 269.0304 269.2931 269.724 269.7609 271.914 272.4379 272.8993 273.2461 273.9278 274.9393 276.073 277.0101 278.3181 281.532 282.4412 282.6396 281.8344 280.1398 278.3922 276.5757 275.4153 273.6497 269.5586 268.3799 267.3261 266.1268 262.5298 260.2844 260.6651 262.3283 263.4955 265.8549 265.1455 261.5458 258.5681 253.839 253.5269 249.738 253.6684 259.0478 264.8924 266.5865 267.4623 266.2533 265.3318 263.8872 265.1796 266.2687 265.6872 260.2122 256.117 255.5417 257.2726 257.0167 257.5064 259.6169 261.3547 256.6037 261.0222 268.2516 270.8476 272.1786 273.8837 275.1649 275.4332 274.0597 272.3648 270.4482 266.9177 265.0373 261.616 257.6398 257.2469 256.641 253.4617 252.286 252.1341 250.625 247.7993 244.9758 246.3014 246.98 247.7728 248.8813 250.3747 252.8354 252.1188 254.3292 253.6615 252.7254 252.8909 253.7946 253.0282 251.7168 249.9294 244.0659 247.0635 249.1384 251.9631 255.0312 257.0774 258.5375 258.3795 256.2491 250.0559 246.0059 241.2454 238.149 235.4733 234.3208 233.2817 231.4002 233.4837 233.7743 233.6772 233.4079 233.1392 232.958 232.9579 232.9208 233.0119 233.118 233.1654 232.7217 232.9135 232.6598 232.5245 232.4676 233.1017 233.101 233.5112 235.0268 239.0777 239.1592 238.8289 238.7154 238.7169 238.9848 239.0895 237.9775 237.7754 238.2586 238.2558 238.3479 238.8791 239.2939 239.4562 239.8084 240.5802 241.5252 242.847 243.0275 243.3042 243.3332 244.1879 244.421 244.3596 243.8389 243.0858 244.6573 244.9672 245.6645 246.7823 248.1262 249.0251 250.4076 250.8451 251.282 254.5798 256.2123 257.362 258.1102 259.0389 260.0026 260.9235 261.4845 261.6939 261.5845 262.1621 262.7402 263.6684 264.7032 266.2616 266.9099 268.0366 268.6394 269.0731 270.1836 270.178 269.6709 269.0912 268.9606 268.8493 268.4017 268.2 268.5096 267.8115 267.4579 267.2628 266.8716 267.4364 265.3857 264.4423 263.9383 263.5043 262.1613 261.6677 260.6533 259.2411 258.2569 256.5313 254.5025 250.1745 251.3819 252.9029 252.8689 252.8107 253.0426 253.2392 253.9071 254.5872 254.3637 254.9623 255.3788 255.8002 256.3929 256.741 257.2063 257.3018 257.586 -9999 +-9999 288.5061 290.537 291.558 292.8306 292.6509 292.532 292.127 291.8012 292.2244 291.9872 291.7089 295.2465 295.6173 297.0995 299.8594 301.1412 303.5237 305.2246 306.4237 308.794 309.0932 308.3389 307.4332 307.1471 306.3586 306.5009 306.278 305.5598 303.9854 302.6303 301.7167 300.9147 299.7356 299.0462 298.9826 298.5013 298.7327 299.7881 299.9573 299.9833 299.4398 298.7655 298.2899 298.0809 297.7453 297.6177 296.6024 297.1391 296.9369 296.1677 294.8905 293.0293 291.3162 291.0818 291.1374 287.9747 287.8161 289.6198 289.6731 289.3127 287.4151 284.8701 281.2595 276.7205 275.9613 277.2082 279.3167 280.4311 281.0512 281.361 281.0739 280.1902 280.2168 279.1761 272.894 265.9021 268.7796 274.3828 281.4058 285.1471 286.5632 287.5521 286.3749 285.9664 286.014 284.9574 284.0583 282.9998 281.7609 280.3177 278.1182 273.7526 278.9424 280.4006 281.7235 283.747 286.0116 287.6199 288.3278 288.0413 288.0461 288.6385 287.3614 284.1729 277.3875 279.5215 277.883 279.7232 283.0909 285.8258 288.2715 289.226 290.9513 293.0147 295.2652 297.531 299.8559 302.0484 303.7955 305.0652 305.7339 306.2639 306.8192 307.2244 307.0947 305.0328 304.7446 305.0321 305.2842 305.2948 305.0713 304.6933 304.4946 304.5639 304.1296 305.0383 305.4615 306.5807 307.1508 307.6812 307.3192 305.7096 303.3377 301.8396 301.864 301.6483 300.3796 297.4765 296.7929 295.8926 294.6645 293.3992 291.8887 290.8189 290.0563 289.2754 287.2289 286.5805 286.5592 286.6653 286.2178 285.5189 284.4499 283.0957 281.1997 276.926 276.8343 278.0147 278.4598 276.9558 274.5586 270.427 266.3879 265.0418 264.3719 264.3589 264.319 263.9667 263.7356 264.3593 266.5834 268.3236 267.3572 265.9899 265.7726 267.6968 270.5567 271.6042 272.272 272.2614 271.0349 270.7112 273.8494 276.028 278.2985 280.1873 282.7636 284.5839 285.1404 284.74 283.757 282.0829 279.2302 280.0045 280.7403 280.5675 278.1607 273.9528 269.7772 259.6578 252.4663 259.3676 264.7519 266.2304 267.3872 267.3747 267.5841 267.0115 265.6865 263.6872 257.6579 253.4618 250.5834 246.0975 242.974 242.6596 242.2276 241.9037 242.5425 248.1573 250.623 252.6426 255.3036 258.0359 260.9366 263.1972 263.9839 264.5468 265.6809 267.3128 269.1407 270.7258 271.3921 271.1215 270.6045 270.198 269.565 268.2354 268.4429 269.0969 269.4935 268.5688 266.8292 265.3419 263.2899 259.9836 251.8982 251.1227 252.8039 254.4815 255.9786 257.4803 259.2742 262.1213 265.9178 266.2 267.3152 268.3146 268.1687 266.6012 266.2188 267.2805 268.1054 268.1556 269.4713 271.5749 271.6096 271.7262 272.7116 273.6315 274.6295 275.8148 277.2152 278.6186 281.792 282.5598 282.4033 282.1231 280.5265 278.8541 277.5024 276.1892 274.0469 271.1195 269.6892 268.6896 267.5291 265.2029 264.3705 260.7382 265.0717 266.0199 267.6223 266.3147 263.575 259.8009 257.7388 255.5509 251.2005 252.2748 258.2245 265.5189 268.4141 269.5668 268.4819 268.132 266.8969 267.171 267.7596 267.4037 263.6076 260.2059 256.9334 260.4142 261.2143 260.252 263.6837 265.099 265.1468 265.0062 270.2143 272.1023 273.957 275.169 276.0211 276.2639 275.4659 273.4766 271.1191 266.7459 264.6862 261.2845 260.8676 260.3384 256.8101 257.6891 257.0705 256.871 253.4258 250.1481 247.9295 248.6224 249.1549 249.2674 249.6845 253.0951 254.9056 254.1894 256.1639 255.6852 255.5977 255.371 255.481 254.7732 253.7022 251.8432 242.9947 247.9964 249.232 251.934 254.7292 256.7724 258.1255 257.8569 255.8917 250.0034 245.8273 240.9249 238.1072 236.2475 235.6855 234.2572 232.6427 231.4909 233.606 234.0103 233.807 233.3472 233.2647 232.9571 232.8945 232.9542 233.0351 233.0539 233.0235 232.8735 232.4472 232.5759 232.7951 233.0852 233.2104 233.6073 234.5803 238.5779 238.8542 238.9511 238.7471 238.944 239.9398 240.2847 240.298 238.6811 238.5746 238.7418 239.0371 239.4162 239.6545 239.859 240.4295 241.2548 242.1388 242.9258 242.7874 243.0107 243.3149 244.0723 243.2228 242.8342 243.5974 244.7372 245.8172 246.45 247.3052 248.1176 249.2211 250.7152 251.4432 251.9527 252.7379 255.5323 257.2068 258.0268 259.5046 260.5665 261.7129 262.4 262.9454 263.379 264.2677 264.5037 264.7007 265.6811 266.0339 266.2569 266.8703 267.2667 267.3895 268.0014 268.9347 268.8629 268.0634 267.6136 267.1527 266.9196 266.9586 266.9154 267.6535 268.2074 268.1696 268.0076 267.5886 267.5462 266.3885 265.6995 264.902 264.3675 263.116 262.7606 262.3803 260.8398 259.4387 257.495 255.8412 254.8382 253.5028 251.0361 250.5039 251.0226 251.167 251.2087 251.6967 252.5461 253.2596 253.4463 254.1683 254.3499 254.5152 254.251 254.9308 255.003 255.2001 -9999 +-9999 287.2484 288.722 289.1187 290.1175 289.0945 288.3901 287.0096 287.3233 288.1375 291.5772 291.6517 295.3846 294.8835 295.5796 298.3466 301.0018 304.1142 306.1029 307.3158 308.8095 309.1201 308.0355 307.4863 307.1956 307.3282 307.5293 307.8813 307.6771 306.0151 304.8048 303.9088 302.7999 301.8916 301.2828 300.8348 300.508 300.36 301.452 301.2166 300.9118 300.1415 299.5344 299.466 299.112 299.1679 299.1576 298.1418 297.9268 297.2174 296.3827 294.7912 292.2699 292.8005 293.4352 293.0945 291.2924 291.2374 291.615 290.8942 289.5406 287.7255 284.5775 280.9392 278.5862 279.0243 281.0325 282.4328 283.207 283.2952 283.2941 283.7948 281.9124 281.2058 279.5526 274.2627 268.4737 267.0935 272.9295 279.3584 283.4974 284.6792 285.1544 283.7144 283.4308 282.885 282.2243 281.5619 281.6515 280.404 278.1653 276.3972 272.8418 278.273 279.9291 281.684 283.9967 285.8242 286.9908 287.2014 286.8806 287.1854 287.0368 286.1363 283.1048 277.7078 276.9651 277.2196 281.4091 283.0412 283.5655 285.9965 289.226 290.9513 293.0147 295.2652 297.531 299.8559 302.0484 303.7955 305.0652 305.7339 306.2639 306.8192 307.2244 307.0947 305.0328 304.7446 305.0321 305.2842 305.2948 305.0713 304.6933 304.4946 304.5639 304.1296 305.0383 305.4615 306.5807 307.1508 306.8814 305.4919 304.0218 302.2899 299.5522 298.4167 298.7354 297.9155 296.2003 295.4367 294.0813 293.087 291.7665 290.5874 289.468 288.4586 287.8215 285.9245 285.1069 284.4135 285.0343 284.5294 283.6848 282.7422 281.2401 279.708 277.2265 274.2514 274.3641 274.9807 274.6338 272.7442 269.1581 265.8477 265.228 264.867 264.4804 263.8599 263.2661 264.0894 263.688 263.1559 263.3764 263.0891 265.433 267.5909 268.7905 270.1069 270.9727 272.0247 272.0983 270.8354 270.0302 271.7841 274.1148 276.2441 278.8689 282.1492 283.5663 284.1623 283.6294 282.7997 281.329 278.5528 278.5581 279.031 279.8868 278.8951 275.8744 272.8975 268.6027 261.199 253.6233 259.5873 262.5165 263.3615 265.5325 266.0734 266.019 264.1701 262.3667 256.5378 253.4785 251.0362 247.6354 243.3132 242.6207 242.2016 242.6666 242.5708 247.3375 249.2048 251.6633 254.5663 256.7356 259.2016 260.3532 260.4164 261.1552 263.5079 265.7285 268.0999 268.9993 269.2309 268.6214 268.0908 267.6373 267.32 266.9153 267.2603 267.9608 268.8794 268.6651 266.8404 264.3864 262.0799 259.8019 251.0421 249.9893 252.5089 254.1797 256.1323 258.5374 260.7949 263.9236 265.3977 265.1376 265.7972 266.427 265.1572 263.6193 264.826 266.5722 267.1839 269.115 269.9268 270.4529 270.3859 271.3027 272.1408 273.4562 274.9094 276.3294 277.7762 279.1247 281.9059 282.3962 282.1091 281.709 280.9248 279.3078 277.8118 276.271 274.7597 272.5733 271.2359 270.8383 269.0771 267.9363 267.399 263.9419 266.8411 268.0172 269.5848 267.871 264.8483 261.2523 260.1321 258.0941 252.4878 251.205 257.034 265.024 268.2839 268.7105 268.9946 269.7434 269.7146 270.036 269.7868 268.7399 265.2508 263.0621 259.0991 262.5214 263.6376 262.5784 264.1917 266.8621 268.3712 269.5393 272.5166 274.7207 275.9742 276.6768 277.2723 277.5684 276.1939 273.87 271.8286 267.7745 265.4776 264.3125 263.0524 260.2528 259.6893 260.7534 259.2052 257.3806 253.0156 251.1873 250.5636 250.558 250.3213 250.5744 251.424 254.871 256.9947 256.2601 258.2064 257.3215 256.9282 257.1073 257.1125 256.0436 253.8586 252.0208 243.7388 247.4348 248.8529 251.4681 254.412 256.1208 257.1591 256.733 255.127 249.4521 244.2831 240.9367 238.8685 237.3771 236.0527 234.6152 233.7991 234.0581 231.4818 233.6195 233.9423 233.811 233.3583 233.2196 233.0402 232.9606 232.9084 232.8796 232.8931 232.8547 232.9685 232.8549 231.9708 233.0143 232.904 233.0743 233.4335 240.0453 240.364 240.4804 240.2733 239.9938 240.3864 240.8225 240.6182 239.5452 238.8646 238.9497 239.1254 239.4557 239.9043 240.4367 240.9644 241.7397 242.4044 242.6759 242.6391 242.8475 243.5609 241.7813 243.2858 244.2952 244.7958 245.2005 245.9745 246.9406 247.6685 249.1278 250.6202 251.242 252.0947 253.0129 253.8985 256.354 257.5875 258.9428 260.1694 261.3196 262.2984 263.5565 264.5402 264.5903 266.0431 266.2689 266.5034 266.7529 266.783 266.6508 266.5746 266.4555 266.0811 266.6043 267.8154 267.534 266.9246 265.9767 265.7763 265.9639 266.5185 267.6364 267.6535 268.2074 268.1696 268.0076 267.5886 267.5462 266.3885 265.6995 264.902 264.3675 263.116 262.7606 262.3803 260.8398 259.4387 257.495 255.8412 254.8382 253.5028 251.0361 250.5039 251.0226 251.167 251.2087 251.6967 252.5461 253.2596 253.4463 254.1683 254.3499 254.5152 254.251 254.9308 255.003 255.2001 -9999 +-9999 285.0741 285.6087 285.2267 284.7189 283.5906 283.0965 287.8264 291.2803 293.1508 296.2237 295.2721 296.0738 295.8162 296.3419 298.4464 301.2169 304.5099 306.7052 307.9646 309.1787 309.0901 308.1878 307.3162 307.0772 307.0667 307.5479 308.0707 308.2438 307.127 306.2833 305.2206 304.2526 303.7419 303.369 302.6011 301.9765 301.9369 302.5508 302.163 301.644 301.1034 301.0546 301.065 300.8611 300.6313 300.0481 298.1609 297.464 296.8733 296.1571 294.0973 294.2273 294.9406 295.047 294.5822 293.4287 292.8634 292.5052 291.2516 289.9696 287.253 283.1535 280.9409 279.0255 282.2363 283.3246 284.9461 286.2938 286.1532 285.3881 285.1204 283.4105 281.2993 276.4086 273.8209 269.0597 266.2202 270.4864 278.355 282.4379 282.471 281.7481 280.9324 283.4308 282.885 282.2243 281.5619 281.6515 280.404 278.1653 276.3972 272.8418 278.273 279.9291 281.684 283.9967 285.8242 286.9908 287.2014 286.8806 287.1854 287.0368 286.1363 283.1048 277.7078 276.9651 277.2196 281.4091 283.0412 283.5655 285.9965 288.1789 290.9783 292.6691 295.3244 297.7215 300.2869 302.8047 304.4309 305.9588 306.3583 306.5688 306.4915 306.3034 306.318 305.6172 304.3499 303.3495 303.8893 304.8966 304.9639 304.3052 304.059 303.9044 303.6005 304.1241 304.9846 306.0288 306.0557 305.1908 303.6402 302.0149 300.697 299.0941 296.3061 295.6959 296.1104 294.3446 293.3801 292.2732 291.0724 289.7405 289.3238 288.1261 286.6358 285.6957 284.4826 282.8802 283.0627 283.1331 282.4641 281.762 280.5085 278.5887 276.5419 273.7022 272.79 271.6387 272.0225 271.7169 269.5239 266.5992 265.9746 265.8239 265.6778 265.9719 265.7744 265.4651 264.2173 263.2108 262.979 263.3293 262.8025 264.7684 266.3406 267.5796 268.337 269.7112 271.2552 271.165 270.1978 268.6193 269.2283 271.415 273.9127 276.9851 280.7079 282.3469 282.2517 282.0141 281.6011 280.5577 276.6733 276.0913 277.5074 278.71 277.8946 275.8906 274.2078 272.1058 267.6627 248.8032 255.7294 259.0699 260.3414 263.4091 264.6241 265.0718 263.53 261.3369 257.1101 254.9335 252.3328 249.5822 245.5839 242.5787 242.2598 242.2785 241.0951 245.5164 247.563 250.2853 252.9046 255.1623 256.3755 257.0464 257.0114 257.5311 263.0234 265.0915 266.2684 266.8495 266.5768 265.9188 264.9055 264.4487 264.5293 265.3733 266.3395 266.752 267.8926 267.7831 266.1863 263.7776 261.3538 258.5508 250.569 250.2851 253.2794 255.5367 257.9534 260.695 262.8496 263.9573 264.0024 263.7853 264.1047 263.9729 262.5674 260.6968 263.7943 265.9152 268.3169 269.5032 269.0558 269.1218 269.8906 271.692 273.1729 274.1711 275.6615 276.9335 278.3177 279.3885 281.2641 281.8972 282.0394 281.4616 280.7151 279.7944 278.5762 277.7423 276.917 274.48 273.8555 272.624 271.4397 270.0494 268.8133 268.3378 268.4796 269.4711 271.3477 269.9434 267.0137 262.4901 263.0486 262.8708 260.4745 255.5348 254.8122 263.549 265.7429 266.5961 267.8452 269.4227 271.0032 271.5965 271.2548 269.799 266.5763 264.0324 260.3908 264.184 266.6266 265.0861 267.6837 267.9483 270.0138 271.294 274.6441 276.2433 277.3304 278.0176 278.5335 278.2003 276.6815 275.0448 273.1049 269.3175 267.0604 263.9986 262.2372 261.9036 262.3822 261.1798 260.0428 258.3535 255.3799 254.4964 253.2736 252.6386 251.6797 252.2512 254.3457 256.678 258.6028 259.2492 259.8499 259.1793 258.8867 258.8282 258.1848 256.1848 254.3033 253.4393 247.5622 247.9364 248.5508 249.1222 252.5934 255.3787 256.462 255.9213 254.0322 248.676 245.728 242.8239 240.4997 238.4672 236.4956 235.3655 234.0441 233.8141 234.3003 231.4529 231.9437 233.6195 233.9039 233.3673 233.1138 233.0511 233.0462 232.9382 232.685 233.0953 232.5712 233.1509 233.1508 233.1588 232.8785 232.6943 232.7521 239.8576 241.4442 241.2854 240.9937 240.7769 240.5549 240.2731 239.6573 239.0451 238.6745 238.816 238.9561 239.4666 239.9927 240.4272 240.9774 241.5333 242.073 242.2421 242.4866 242.5088 241.5997 242.9741 243.4373 244.2952 244.7958 245.2005 245.9745 246.9406 247.6685 249.1278 250.6202 251.242 252.0947 253.0129 253.8985 256.354 257.5875 258.9428 260.1694 261.3196 262.2984 263.5565 264.5402 264.5903 266.0431 266.2689 266.5034 266.7529 266.783 266.6508 266.5746 266.4555 266.0811 266.6043 267.8154 267.534 266.9246 265.9767 265.7763 265.9639 266.5185 267.6364 268.1699 269.5843 269.2479 268.925 268.5522 268.2414 267.7765 266.7412 265.8271 265.0653 263.6979 263.2088 262.8106 261.5985 260.1495 257.9828 257.1767 256.5202 255.5644 251.6141 249.6725 246.911 247.5323 248.966 250.114 251.3551 251.2935 251.2145 252.374 252.005 252.1358 252.3286 252.6606 252.8396 253.0382 -9999 +-9999 280.5072 280.895 281.748 286.797 287.8668 287.0873 290.396 293.7744 294.82 298.0733 298.3955 297.2772 296.6807 298.9113 302.0636 304.1148 305.4825 306.8449 308.0183 309.1907 308.9967 308.0529 307.302 306.4834 306.2878 306.8765 307.6065 307.8247 306.7694 306.2434 305.7941 305.3678 305.2104 305.0356 304.069 303.5262 303.2498 303.4317 302.9824 302.5612 302.3377 302.1171 302.188 301.9668 301.5659 300.4524 298.4961 297.8179 296.8469 296.2445 295.5145 296.0195 296.368 296.2858 295.9868 293.4287 292.8634 292.5052 291.2516 289.9696 287.253 283.1535 280.9409 279.0255 282.2363 283.3246 284.9461 286.2938 286.1532 285.3881 285.1204 283.4105 281.2993 276.4086 273.8209 269.0597 266.2202 270.4864 278.355 282.4379 282.471 281.7481 280.9324 280.3102 280.2831 279.5717 279.6138 278.8602 278.1899 276.8284 274.8123 270.9363 277.6186 279.287 281.3033 283.0888 284.7231 285.5865 285.1131 285.6146 285.9487 285.047 284.3666 281.1871 276.9708 275.8169 277.2307 278.9905 281.0899 282.7338 284.9442 287.8987 290.4646 292.4863 294.7404 297.9641 300.3979 302.573 303.9828 305.6497 306.12 306.2023 305.4624 305.2994 305.1963 304.2307 303.2712 302.1313 302.3763 304.1254 303.1277 303.9584 304.1876 303.3155 303.4265 303.2338 304.4286 305.0745 304.2471 303.4081 301.9377 300.2611 298.5971 297.5493 295.4273 292.9427 293.2272 292.1761 290.5066 289.64 288.5143 287.7289 287.5087 287.1078 285.6115 284.0289 282.869 281.8721 280.7522 281.2571 280.4759 278.8287 277.172 275.4631 273.0207 270.915 270.9271 270.0976 269.579 267.9839 266.7845 267.3231 268.1095 268.2104 268.0694 267.5812 268.1343 267.857 267.5456 265.2775 264.5112 263.2011 262.2941 262.6531 264.1376 264.3532 263.9456 266.7411 269.123 269.3491 268.7276 267.7101 266.5427 267.8352 270.9849 274.9557 279.0817 280.6327 280.1184 279.7284 279.9228 276.9988 275.5915 273.9498 276.0598 276.638 275.6328 274.0515 274.1728 273.4229 270.3625 254.365 251.4643 254.3666 257.4208 260.7251 263.1811 264.3909 263.8338 261.7339 257.7684 255.4544 253.3443 250.2938 245.175 242.5742 242.3336 242.0301 242.07 244.6767 246.8988 248.8387 251.0733 252.4438 252.7077 253.3777 254.4263 257.0098 262.3127 263.4581 264.4055 264.692 264.5306 263.6402 260.5269 260.0171 261.3132 263.6188 265.0256 266.254 267.364 266.9245 265.3387 262.9957 260.972 257.9909 249.5265 250.9487 253.6554 256.3922 258.8371 260.5633 261.6161 262.3684 262.7495 262.2688 260.8807 260.1337 258.6684 261.2654 263.1214 266.5576 267.6865 267.4301 267.2594 268.7589 270.2847 271.8485 273.3153 274.5325 275.8838 277.3115 278.7642 279.6187 280.6682 280.9203 280.9279 280.7027 280.2693 280.4399 280.0148 279.2938 277.9247 276.8238 275.7515 273.9211 273.5466 271.3018 270.4624 270.651 270.8911 271.3182 272.774 271.7588 267.6327 264.2907 266.2955 266.2577 265.1036 262.2412 256.4286 260.9668 262.8852 264.0291 266.7271 269.0417 270.9616 272.0862 271.98 270.5486 267.8353 263.4055 263.9266 266.9904 268.8081 267.8172 269.9058 270.2482 271.1201 272.7018 275.7152 276.9179 278.2124 279.1108 279.3147 278.6248 277.5344 275.3635 273.4539 270.5678 269.0152 266.8879 264.3326 264.6953 263.8961 262.6805 261.725 259.9133 257.7149 256.366 255.6328 254.7423 254.0328 254.0201 255.3388 257.5051 259.1947 261.3261 260.9913 260.7462 260.4174 259.9879 258.6315 257.3871 256.6104 255.0519 249.49 249.803 251.183 248.0517 252.3315 255.2564 255.8897 255.3508 253.4736 248.4733 246.665 245.0017 242.2518 240.6278 237.3762 235.7948 234.6712 233.6237 233.6884 233.9276 232.5004 231.4875 232.6803 233.6147 233.1138 233.0511 233.0462 232.9382 232.685 233.0953 232.5712 233.1509 233.1508 233.1588 232.8785 232.6943 232.7521 239.8576 241.4442 241.2854 240.9937 240.7769 240.5549 240.2731 239.6573 239.0451 238.6745 238.816 238.9561 239.4666 239.9927 240.4272 240.9774 241.5333 242.073 242.2421 242.4866 242.5088 241.5997 242.9741 243.4373 244.4717 244.9468 245.4675 246.5685 247.3977 248.1454 249.6618 251.1345 252.2146 253.0324 253.6486 254.5416 256.2003 257.5557 258.9056 260.6172 262.2858 263.5539 264.3404 265.0551 265.8632 266.9135 266.6198 266.3653 266.0802 265.9365 265.6398 265.2809 264.7536 264.5204 265.9081 266.3266 266.2123 265.588 264.8668 264.9572 266.1896 267.0679 268.2571 269.705 270.483 270.2799 270.1275 269.8128 269.2949 269.0262 267.9491 266.4816 265.7964 264.2752 263.5419 262.6657 261.9366 260.3357 259.5205 258.6275 258.1762 257.2753 254.9783 253.1009 251.7317 249.7048 246.3834 246.1942 248.8278 250.4237 249.2713 249.3148 249.4657 249.8391 250.0563 250.6333 250.5352 250.8763 -9999 +-9999 281.5338 283.4959 286.9485 290.8231 292.9578 292.8632 293.6448 295.8465 296.8882 300.0729 301.0486 300.5483 298.7538 300.2502 302.4584 304.162 305.6115 306.6882 307.4091 309.0572 308.8425 308.0544 307.1039 306.1953 305.6767 306.0086 306.7117 306.9964 306.7694 306.2434 305.7941 305.3678 305.2104 305.0356 304.069 303.5262 303.2498 303.4317 302.9824 302.5612 302.3377 302.1171 302.188 301.9668 301.5659 300.4524 298.4961 297.8179 296.8469 296.2445 295.5145 296.0195 296.368 296.2858 295.9868 295.2649 294.3582 294.0466 292.9191 291.0187 288.1555 284.2267 282.7043 284.7069 285.3642 284.6809 286.6533 287.8243 287.984 286.8213 285.7997 283.5763 281.3465 276.0993 273.2478 267.8587 266.2665 269.502 276.7914 280.2102 280.0273 278.2524 277.9462 277.3883 277.5495 276.9212 276.0877 275.9635 274.9865 274.2506 273.5255 270.3543 276.3516 278.4823 280.2953 281.759 282.8109 282.9233 283.2646 284.495 284.8071 283.0432 281.5002 278.0134 274.1797 276.4771 278.015 280.6791 283.5802 285.7903 286.3426 289.0948 291.0721 293.4617 295.8279 298.2497 300.5692 301.8752 303.1078 304.5822 305.3917 305.2563 304.3814 303.9988 303.6953 302.7926 301.6218 300.2619 300.569 301.8315 302.308 302.7946 303.6763 303.5632 302.7757 302.5276 303.0959 303.7079 302.3987 301.0678 299.7437 298.7367 297.0511 295.098 293.6206 291.0974 290.1101 288.3571 286.3142 285.0606 284.3754 284.8183 284.6414 284.3539 283.8868 282.6749 280.8106 280.4412 279.7062 277.8967 276.5703 274.8407 273.9515 273.7113 273.6743 279.5539 278.1742 274.8985 270.4003 269.1251 270.1642 270.9979 271.6594 272.5346 271.0471 269.2852 270.1562 270.1302 269.6064 267.3421 267.0545 262.7746 262.7857 262.3192 261.9749 262.4803 262.1552 264.5713 266.7829 266.8518 266.2823 266.0363 265.3506 265.9897 269.3139 273.7461 277.7036 278.8293 277.8914 276.5893 277.3696 274.8788 273.6884 271.1886 274.1151 274.0354 272.3542 271.4089 271.7139 270.9219 268.792 259.1366 248.5533 251.8414 254.828 259.8151 262.4957 263.398 263.1602 261.6395 258.4 256.5035 253.9858 250.6466 246.4283 243.6441 242.0914 241.7575 242.0172 245.3199 246.9002 247.8065 249.3264 250.171 251.8972 254.0386 256.0803 257.564 259.8686 261.3984 262.1332 262.1397 261.8914 261.5237 259.7907 259.0926 261.2366 263.0495 264.1359 265.9438 267.0327 266.3097 264.742 262.59 260.269 256.9914 248.6856 250.983 253.8675 256.9057 258.5833 259.3985 259.3913 259.4178 259.3408 258.607 258.055 257.3103 258.0828 260.0912 264.5822 266.0523 265.6479 265.8214 266.5055 269.7452 270.9582 271.9518 273.477 274.741 276.2234 277.4099 278.5781 279.1208 279.5143 279.5525 279.6548 279.5723 279.4705 280.1593 280.1795 279.5973 278.8124 277.6536 277.6326 277.1004 275.2165 272.4586 271.4678 272.0526 272.749 273.3564 274.3934 272.9565 269.6207 269.2997 269.6117 269.9207 269.0067 266.079 262.4785 256.5153 259.4761 262.6682 265.2995 268.07 270.0727 271.599 272.1842 271.5923 268.648 264.8062 265.1404 268.2054 270.1252 270.1167 271.3827 272.1127 272.7084 275.6497 277.0831 278.373 279.0717 279.4162 279.0363 278.3256 277.4944 275.9729 274.8718 272.3271 270.9792 269.047 267.9364 267.0045 265.7338 264.8169 263.9887 261.6038 258.8078 258.2331 258.1003 256.9061 255.2685 254.8103 255.3388 257.5051 259.1947 261.3261 260.9913 260.7462 260.4174 259.9879 258.6315 257.3871 256.6104 255.0519 249.49 249.803 251.183 248.0517 252.3315 255.2564 255.8897 255.3508 253.4736 248.4733 246.665 245.0017 242.2518 240.6278 237.3762 235.7948 234.6712 233.6237 233.6884 233.9276 232.5004 231.4875 232.6803 233.6147 233.6028 233.6371 233.7587 233.4371 233.1905 233.3286 232.9503 233.2963 233.2712 233.32 233.3332 232.7587 232.4834 232.9777 237.1962 240.7504 240.8805 240.3158 239.9647 239.5352 239.0092 238.631 238.5236 238.7498 239.0343 239.8768 240.2296 240.1634 240.3704 240.8026 241.3439 241.6234 241.1432 240.9897 242.3795 243.2552 244.2235 244.7583 245.278 246.2046 247.9153 248.2713 248.8298 250.4333 251.8388 252.4942 253.3595 254.6813 255.1507 256.7417 258.0718 259.3744 261.2157 263.1166 264.7779 265.9921 266.797 267.2198 265.6427 264.7771 264.4438 264.244 264.0446 263.623 263.1558 263.1463 263.9993 264.8249 264.7456 263.8501 263.8708 264.459 265.7298 266.7303 267.9337 269.6369 270.5195 271.7319 271.6097 271.5687 271.29 270.4926 269.9027 268.6441 267.3847 266.4813 264.918 263.9359 262.9024 262.2819 260.9265 260.4256 260.0634 259.5805 259.1373 258.0709 257.3646 255.2729 252.1203 249.7512 248.0678 245.8832 244.6153 248.077 247.6466 245.8123 245.5385 246.5455 247.5611 247.1359 247.5618 -9999 +-9999 285.7822 288.0808 286.9485 290.8231 292.9578 292.8632 293.6448 295.8465 296.8882 300.0729 301.0486 300.5483 298.7538 300.2502 302.4584 304.162 305.6115 306.6882 308.6216 309.0572 308.8425 308.0544 307.1039 306.1953 305.6767 306.0086 306.7117 306.9964 306.0281 305.5161 305.4029 305.4884 305.4646 305.3643 304.9067 304.4315 304.0994 303.8308 303.4597 303.2325 303.0901 303.1418 302.9652 302.7119 301.861 300.8228 298.9976 298.2501 297.1526 296.3814 296.5354 297.2524 297.5497 297.4984 296.9412 296.5651 296.353 295.4803 293.7009 291.9012 289.2379 286.4655 288.3929 289.4027 287.4749 286.7558 288.0314 288.599 288.3271 286.5907 285.2917 283.2113 280.9131 274.58 271.5999 267.0018 267.0804 268.8074 273.7385 276.0095 276.5915 275.0529 274.3652 275.1501 274.7395 274.4355 273.6055 272.9476 271.9477 271.6722 270.9741 269.863 275.3282 276.7725 278.1707 279.5078 280.4263 281.0941 281.676 282.6359 282.8263 279.9063 277.4477 273.6599 275.0352 279.5894 281.8765 282.7869 282.9468 284.3888 287.657 290.1819 292.6041 294.2748 296.0072 298.0951 299.812 300.6877 301.78 303.8127 304.4189 304.1316 303.0579 302.3266 302.2085 301.1844 299.9136 298.6155 300.4865 300.6553 301.441 301.726 302.3524 302.2241 301.9359 302.5574 302.5162 302.4436 301.0316 299.2498 296.976 295.5276 295.105 293.1992 290.7809 288.0594 287.3496 283.7452 283.0673 281.6737 281.1451 281.3151 280.204 278.8673 279.7608 279.454 277.8003 276.9467 275.7252 274.8636 274.2488 273.7178 274.4803 275.7358 278.6309 283.225 283.8012 282.571 278.8959 276.0851 275.1982 275.3154 274.7168 275.9255 272.1959 270.1719 272.442 272.0078 271.2922 269.4992 269.5428 264.0158 262.5732 262.9582 262.7065 262.6503 261.4291 262.178 264.1144 263.067 263.332 264.3853 263.6307 265.7552 269.1623 272.8193 276.4621 276.7031 275.5479 273.3779 274.472 272.7749 271.4021 268.7088 271.8339 271.0896 268.7372 268.6282 267.9156 266.3201 264.3404 259.5233 250.6805 249.4912 254.8884 258.6881 260.6703 261.9106 262.3256 261.5507 259.5659 257.9269 254.7803 251.2433 248.33 246.3338 242.0763 242.0101 241.7519 243.7503 246.81 247.0131 249.1176 250.4397 252.1902 253.8166 255.2967 255.8434 258.3587 259.0596 259.6539 259.7863 259.9303 259.7265 259.533 259.1796 260.6638 263.2566 264.3654 266.0496 266.3446 265.2138 263.2576 260.9623 258.8293 255.3932 247.8056 250.3116 252.9491 256.2394 257.3898 256.8563 255.7947 255.3625 255.6067 254.8477 254.074 256.3069 257.4056 259.3874 261.354 262.0751 264.1565 265.4486 267.3656 270.1853 271.2641 272.3124 273.6023 275.1056 276.2171 277.0189 277.5061 277.7198 277.8251 278.1184 277.8308 278.2252 278.964 279.4147 279.6354 279.3523 279.2067 277.5443 277.6991 277.3831 275.8501 273.3025 272.4943 273.0665 274.3063 275.2622 275.6697 274.4312 272.7527 272.6489 273.2858 273.3662 272.1079 269.1779 266.0851 256.6208 255.8615 258.0844 262.9179 266.6882 269.3585 271.2479 272.3171 271.5923 268.648 264.8062 265.1404 268.2054 270.1252 270.1167 271.3827 272.1127 272.7084 275.6497 277.0831 278.373 279.0717 279.4162 279.0363 278.3256 277.4944 275.9729 274.8718 272.3271 270.9792 269.047 267.9364 267.0045 265.7338 264.8169 263.9887 261.6038 258.8078 258.2331 258.1003 256.9061 255.2685 254.8103 255.2573 257.7407 260.0105 262.0367 262.4567 262.6504 262.1851 261.144 260.1832 259.3947 258.2409 256.641 251.7871 250.7752 251.9512 248.0513 253.1587 255.7399 255.7028 253.9129 252.5655 248.9236 248.1191 247.1292 246.0954 243.534 240.2654 237.2545 235.3205 234.3811 233.6106 233.8538 233.7768 233.8724 233.5685 231.4585 231.4182 231.4398 231.4384 231.4883 231.6147 231.5459 231.5378 231.5767 231.5187 231.4346 231.4546 231.4305 231.3975 231.4 231.4404 235.0115 239.9942 239.8298 239.4702 239.2355 238.723 238.3362 238.5517 238.7372 238.6587 239.5297 239.539 239.3818 239.5283 240.0587 240.2742 239.201 241.4016 242.1307 243.1799 244.0923 244.8581 245.3553 245.722 246.6591 248.303 248.9582 249.9428 251.5931 252.6497 253.7166 254.8423 255.4963 256.1827 258.1757 258.9491 260.2268 261.5638 263.4647 265.1409 266.1706 266.731 266.377 264.0484 263.3103 262.7831 262.3273 261.8482 261.8531 261.9413 262.4414 263.2382 263.7311 262.9838 262.6329 263.6586 264.9809 266.1364 267.4405 268.4635 270.0602 271.4304 273.2617 273.5241 273.243 272.5633 271.8661 270.5882 269.9319 268.2279 267.5025 265.379 264.6428 264.1157 262.9753 262.3738 261.9 261.637 261.0125 260.8648 259.6309 259.0191 257.0311 254.9635 252.9282 250.7881 249.408 247.5407 244.9852 242.9333 242.8672 242.0548 243.3259 244.4582 245.8396 245.689 -9999 +-9999 285.7822 288.0808 289.6224 292.4431 294.8683 296.3524 297.1359 297.9156 299.2619 301.7093 302.6184 302.6367 301.863 301.4844 303.5733 304.9003 306.0376 306.7467 308.2539 308.7569 308.7534 307.8991 307.2715 306.124 305.3534 305.1546 305.4866 305.882 305.479 304.9223 304.6594 304.3399 304.3738 304.5041 304.3422 304.0651 303.9789 303.789 303.6012 303.5266 303.5344 303.6726 303.5581 302.8938 302.0716 301.1256 299.1069 298.3458 297.5706 297.0125 297.3597 297.8781 298.4239 298.543 298.2459 298.106 297.4434 296.5298 295.5739 293.4873 290.914 288.783 292.0635 293.4966 289.9554 289.6953 289.82 288.6494 287.6932 286.3563 285.0673 283.269 280.1823 272.7459 269.2003 266.1635 267.1701 268.5281 271.9701 273.774 273.104 270.4356 271.2913 272.835 271.6204 271.1083 270.6827 270.3849 269.2575 268.93 269.284 268.3833 273.1892 275.1857 276.7 277.4076 278.4286 280.0393 280.9507 281.7402 281.4411 276.4574 273.3608 273.914 278.4803 281.1241 283.5386 285.7595 286.739 285.7348 287.2531 290.196 292.1721 293.9795 295.6768 297.5743 298.4283 299.2193 300.3649 302.9004 303.4586 303.1731 302.107 300.7877 300.3669 299.4075 297.9415 296.9127 300.2484 300.6136 301.2461 301.6408 301.396 301.1302 301.2223 301.755 302.2832 301.4668 299.6327 295.7631 292.5622 291.5869 291.5559 290.0733 287.5324 284.7877 283.5328 282.9421 282.1963 281.5432 281.5986 282.3636 281.8545 281.2889 279.795 278.4551 276.6411 275.2845 277.0117 277.361 275.7888 276.9343 277.0571 279.0113 281.1817 285.2248 286.1277 285.626 282.6646 280.3747 278.9415 278.3105 276.843 277.4078 273.8926 272.3952 274.4576 273.7043 271.2159 271.5304 272.5543 269.2739 265.836 265.1537 263.6756 262.3741 262.205 262.0374 261.8026 259.9771 262.128 262.7028 263.0356 265.5684 268.4703 272.0305 274.9784 274.1362 272.6993 270.7841 269.8389 270.2615 268.9034 266.0141 269.2788 267.1636 264.9381 264.007 262.5187 258.5519 257.7443 257.1149 249.0681 249.2424 255.3312 257.6221 259.0304 260.5215 260.9473 261.2022 259.8344 258.2516 256.396 254.5036 251.734 249.0883 241.8939 241.7321 241.7529 242.5876 244.8844 246.4215 247.5328 249.3289 250.5637 252.0824 253.5322 253.8203 257.0233 257.2859 257.4657 256.3554 254.739 259.5132 259.4587 259.0979 259.7565 263.3926 264.9158 265.9548 266.107 264.8 262.4734 259.9478 257.2546 253.4484 247.4935 250.3689 253.6348 254.1435 253.7359 253.1433 253.0853 252.4657 250.9378 254.3385 258.1962 261.6133 263.1062 260.4792 259.7874 260.9223 263.1232 265.3627 267.7671 269.7559 271.4709 272.8781 273.9277 274.8186 275.3835 275.7597 275.7539 275.8109 276.2574 276.4991 277.8308 278.2252 278.964 279.4147 279.6354 279.3523 279.2067 277.5443 277.6991 277.3831 275.8501 273.3025 272.4943 273.0665 274.3063 275.2622 275.6697 274.4312 272.7527 272.6489 273.2858 273.3662 272.1079 269.1779 266.0851 256.6208 255.8615 258.0844 262.9179 266.6882 269.3585 271.2479 272.3171 272.4452 269.5741 267.2263 268.2376 268.1063 270.4947 271.6799 271.9586 273.3928 274.1695 276.7755 277.6804 278.5931 279.0918 279.1129 278.4333 277.7872 276.9702 276.4261 275.836 274.0264 272.6218 271.1364 269.9905 268.8744 268.1923 267.1139 266.0513 263.8261 259.6061 259.5607 260.1358 258.3428 257.547 255.7272 256.0946 258.7416 260.6804 262.886 263.1489 264.1707 264.0167 262.8471 262.08 260.6258 259.3413 257.5992 253.1701 251.8552 252.9497 250.5279 253.1604 256.0557 256.0324 255.032 253.6265 252.578 252.4003 251.131 249.359 246.6808 243.7003 240.6454 236.2785 234.25 233.6215 233.8846 233.6862 233.9169 234.0993 234.0897 233.8006 234.0032 234.017 233.9766 233.8616 234.1199 233.8808 233.913 233.6008 233.7514 233.8208 233.6897 233.8319 233.774 233.3234 231.4262 239.0793 239.2636 239.2332 239.4538 238.8773 238.4151 238.9207 238.713 238.3584 238.9742 238.677 238.6702 238.5594 238.2611 238.8145 241.0941 241.8777 242.8227 243.8073 244.7179 245.167 245.7266 246.2722 246.7381 248.6091 249.7181 251.1094 252.3733 253.9044 255.2489 256.2526 257.2298 257.9714 259.3954 260.4955 261.2927 262.0969 263.5904 264.928 265.6405 265.4521 264.666 262.417 261.7786 260.9825 261.0349 259.9727 260.5936 261.1334 261.6361 262.065 261.8676 261.7749 262.6547 264.2494 265.6224 266.955 268.1598 269.5142 270.3875 272.223 274.4418 274.9387 275.052 274.1741 273.0439 271.8096 270.7957 269.8415 268.404 266.1762 265.8163 265.0827 264.5594 263.9024 263.5078 262.9757 262.8677 262.4607 260.9879 259.3759 257.5971 255.087 253.9287 253.0074 251.4209 250.3237 248.7431 247.738 245.1634 243.15 241.6099 240.8781 242.1038 242.0754 -9999 +-9999 286.7866 289.1584 291.1452 293.5674 295.7387 297.2777 298.6298 299.5219 300.4969 302.848 303.8052 304.1816 304.0972 304.3826 305.2203 306.2336 307.0822 307.6003 308.7317 308.89 308.6046 307.5891 306.9018 305.9625 305.0835 304.5839 304.5638 304.3908 304.2952 303.906 303.496 302.9612 302.7567 302.9947 303.0278 302.8387 302.9364 303.1914 303.0258 303.0253 303.0728 303.2006 303.1469 302.7035 301.9865 301.1434 299.4243 298.679 298.1679 297.8766 297.7031 297.968 298.6914 299.2919 299.3424 299.0917 298.0175 297.3539 296.5277 294.7373 291.7587 291.1523 293.7123 295.3017 292.6239 291.6542 290.3901 289.1559 287.4538 286.1057 284.353 281.7121 277.6124 271.6205 267.1398 265.0362 266.9838 266.8611 269.0062 269.4969 267.1709 266.82 267.0598 268.8231 267.1763 267.0614 267.3341 267.5922 267.219 267.6435 267.9229 266.3188 270.8379 273.2697 274.5009 275.9439 277.0604 278.7413 280.0459 280.5038 279.5632 273.7862 272.1341 276.2582 279.3344 282.1726 285.0398 286.8832 288.5281 288.9586 288.0485 289.1083 290.6301 292.6989 294.7757 296.28 297.0965 297.8197 299.3872 302.0504 302.4359 302.1399 301.1317 299.6715 298.7028 297.5341 295.3492 294.9918 300.4164 300.5063 300.7498 300.4756 300.2671 300.6324 299.5913 300.9697 302.3734 301.3659 300.1319 296.2894 292.743 290.187 288.4459 287.339 286.7792 285.7549 284.9123 284.7014 284.1269 284.8751 285.3698 285.1523 284.7798 284.5146 283.9384 283.3395 281.83 281.852 280.2043 280.7613 279.9306 280.5859 280.3325 280.3066 282.5816 286.3506 287.8279 287.9458 285.7716 283.5352 281.9674 280.4525 278.8555 279.7542 277.0991 274.2393 275.6728 275.0956 272.1635 274.1615 275.6234 273.2251 270.5069 270.3851 268.395 265.3023 263.3528 262.517 261.8015 261.7168 261.158 259.8113 262.166 264.4998 267.1021 270.1397 271.8666 271.2213 269.3135 266.5922 265.5519 267.6593 265.9805 261.5934 262.474 261.4573 259.682 257.6453 254.8321 251.1345 253.7719 253.5375 245.7935 249.0671 254.0089 255.8908 257.7264 258.5205 259.0396 259.7512 259.7324 259.3021 259.5103 258.1525 255.0445 249.222 243.8026 241.6996 241.6958 240.7701 242.3334 244.983 246.7576 248.1616 249.2281 250.6116 251.9513 253.3939 255.0906 255.0152 253.0115 249.7919 253.8365 256.222 258.7843 259.4785 260.8111 263.4803 264.6962 265.4565 265.3788 264.0441 262.0553 259.9478 257.2546 253.4484 247.4935 250.3689 253.6348 254.1435 253.7359 253.1433 253.0853 252.4657 250.9378 254.3385 258.1962 261.6133 263.1062 260.4792 259.7874 260.9223 263.1232 265.3627 267.7671 269.7559 271.4709 272.8781 273.9277 274.8186 275.3835 275.7597 275.7539 275.8109 276.2574 276.4991 276.5084 276.9711 278.0497 278.9832 279.6368 279.125 278.375 277.2193 276.8673 276.8663 276.1563 273.9936 273.0958 273.8484 275.0989 276.6276 277.4204 276.1782 274.7714 275.1788 275.6475 275.5579 274.1286 271.239 268.9232 261.2718 256.9923 261.3383 262.6488 264.6775 266.7339 270.3566 271.8515 272.773 271.9821 270.3403 271.2772 270.8373 271.4997 272.39 272.9331 273.7805 275.1081 276.6562 277.5031 277.9146 278.4491 278.1903 277.7162 277.1619 276.7613 276.4986 276.1766 275.5042 274.5878 273.5028 272.3989 271.6282 270.3517 268.6843 267.6542 265.2159 262.3107 262.0386 260.5819 259.8038 258.4518 256.6316 257.6034 259.9441 261.4207 263.5429 263.8615 264.8235 265.1625 264.8636 263.0756 261.6484 259.964 259.0157 253.7933 253.0022 253.5778 251.853 253.3701 256.581 257.1737 256.4617 255.3003 256.1137 255.8286 254.067 251.4058 248.5554 246.3711 243.1935 237.4752 234.296 233.5626 233.7137 233.7998 233.7689 233.8154 233.985 233.7076 233.9035 233.8925 233.8425 233.8139 233.8314 233.6451 233.5748 233.667 233.5011 233.871 233.7188 233.5142 233.2604 233.6888 231.4111 238.4177 238.5945 238.6694 238.7502 238.6958 238.481 238.8936 238.8231 238.2883 238.1192 237.9183 238.059 238.0871 238.941 239.9454 241.2588 241.8104 242.829 243.9315 244.5544 245.4142 246.1889 246.8992 247.2878 249.3643 250.7534 252.0952 253.1679 255.0263 256.3856 257.613 258.7157 259.4664 261.2325 261.6557 262.6367 263.3445 263.7188 264.3328 264.463 263.5782 262.6329 260.4124 259.8207 259.3794 258.8397 258.8538 259.2206 260.031 261.1411 261.1598 261.171 262.0704 263.8836 265.0481 266.4078 267.5583 269.0482 270.3669 271.5592 272.7757 274.9167 275.5327 275.6536 275.2987 273.9408 273.5349 271.5835 270.7333 269.5893 266.9658 267.0747 266.7668 266.4164 266.2746 265.4756 264.6222 264.1312 263.7917 261.1717 259.1749 258.1317 256.9352 255.9057 254.6051 252.8102 251.2758 250.5678 248.7499 247.3274 245.5974 244.1245 242.8226 241.7755 240.6785 -9999 +-9999 286.2987 288.4675 290.3203 293.1019 295.4764 297.3851 298.8127 300.0273 300.8531 302.5183 303.7587 304.4783 305.1435 305.7733 306.2108 307.0017 307.7437 308.502 309.3164 309.0176 308.3608 307.3185 306.5181 305.5553 304.8657 304.2813 304.0473 303.2149 302.873 302.7838 302.2119 301.2634 300.6791 301.1247 301.2792 301.4811 301.8485 302.195 302.208 302.1097 302.0671 302.2176 302.3151 302.2438 301.428 300.8831 299.9829 299.2503 298.8072 297.989 297.5436 297.6584 298.361 299.1642 299.774 299.616 298.7534 298.1516 297.4346 296.2439 294.4687 293.1326 294.956 296.0881 294.4014 293.0244 290.9637 288.8879 286.8886 284.4283 281.5364 279.3654 276.6613 272.1831 269.503 267.4649 266.2285 266.5378 266.4645 266.284 266.1946 266.0303 265.9492 265.853 265.5609 265.5966 266.1183 266.6477 266.4388 266.5847 266.2982 265.6187 269.5427 271.7603 272.9404 274.1545 275.8059 277.1947 278.6809 278.683 276.7354 270.4954 272.5508 277.5732 280.6802 283.2996 285.4144 287.5695 289.3334 290.6993 291.0842 290.729 290.6352 291.8535 293.5018 294.6856 295.4301 297.0286 298.9532 301.1313 301.2448 300.9137 300.0772 298.5557 297.8864 295.9374 292.9015 293.9943 299.9724 298.7499 299.2371 299.249 298.3289 298.2792 298.5729 300.5552 301.791 301.3258 300.1659 298.0072 295.5309 294.4626 291.2356 289.8992 288.0645 288.9655 291.1655 293.0098 289.3799 288.3737 287.9434 286.548 286.6677 288.0844 288.064 287.8112 285.8404 284.994 283.0934 284.1283 284.2589 284.6004 283.7042 281.9185 284.0205 287.483 288.8936 289.5989 288.3672 286.2028 284.4958 280.9789 282.0725 282.2043 280.1046 277.6316 277.215 276.1109 273.1728 275.5688 277.9689 276.6255 273.8905 274.0255 271.4379 268.2453 266.416 265.3586 263.494 261.4603 261.6222 261.3899 259.5842 262.2253 264.212 266.4146 267.527 267.5925 266.5247 261.8462 260.776 264.521 261.7362 258.7579 253.5209 254.3187 250.6815 249.4268 247.3892 245.3941 245.3502 247.3738 244.6591 247.2285 251.0569 253.7449 254.9804 256.2962 257.2007 258.0941 258.4988 258.663 259.5103 258.1525 255.0445 249.222 243.8026 241.6996 241.6958 240.7701 242.3334 244.983 246.7576 248.1616 249.2281 250.6116 251.9513 253.3939 255.0906 255.0152 253.0115 249.7919 253.8365 256.222 258.7843 259.4785 260.8111 263.4803 264.6962 265.4565 265.3788 264.0441 262.0553 259.5935 255.4192 250.6352 248.0886 251.0754 251.5249 250.9441 250.952 251.1828 250.8427 251.6562 254.1889 258.7817 262.5424 264.3324 265.874 265.2887 264.7944 263.3274 264.3747 265.6648 269.5779 270.6888 272.0646 272.4675 273.2627 274.4511 274.9608 274.7534 274.9093 274.7329 275.1088 275.3654 275.6605 276.4705 277.7942 278.6443 278.8373 278.7558 278.7358 277.1818 276.4663 276.2747 276.0249 274.6006 274.0741 274.8712 275.705 277.0511 278.6044 277.6467 277.5169 277.2139 277.6317 277.4473 276.3176 274.3144 272.1164 263.279 262.9431 263.5681 264.8183 265.993 267.5372 269.1908 271.7791 273.1165 274.1385 273.5797 273.6363 273.4317 273.2238 273.3492 273.5832 274.1846 274.7794 276.1189 276.732 277.2641 277.2313 277.1392 276.632 275.8384 275.4494 275.4022 275.4113 275.5917 275.4332 274.8868 274.2066 273.1212 271.8054 270.2268 268.9604 267.1152 264.6906 263.2504 262.2687 260.6031 258.885 257.6137 258.4395 260.9874 262.5242 264.6436 264.7026 265.331 266.1911 265.8693 264.1988 262.4931 261.2482 260.1036 255.1652 253.8441 254.2155 252.7729 254.595 257.4572 258.381 257.3423 257.2552 258.547 257.8142 255.0491 252.4441 250.4977 248.2727 244.7317 239.5794 234.6015 233.5212 233.7583 233.9922 233.9766 233.8849 233.8356 233.5636 233.7764 233.6574 234.1713 234.0755 233.965 233.5569 233.6075 233.4567 233.4129 233.5354 233.5781 233.1517 233.4369 232.3452 231.8121 237.7955 238.1164 238.4032 238.4825 238.5302 238.5056 238.6966 238.6457 238.0402 237.2266 237.3482 237.7979 238.5608 239.5291 239.9794 241.08 241.9564 242.8495 244.0998 244.6027 245.4171 246.1226 246.7136 247.9904 250.7156 252.2662 253.5076 255.08 256.026 256.9976 258.7064 259.5595 260.5923 262.4307 262.9238 263.1824 263.2745 263.0757 263.3118 262.6837 261.5819 260.4716 258.732 257.8599 257.1083 257.5709 258.056 258.5765 259.5738 260.2069 260.4277 261.0717 263.0034 264.2572 265.7264 267.0759 268.302 269.7227 271.0607 272.2166 273.2897 274.7399 275.2696 275.4146 274.9182 274.0026 273.4509 271.5444 271.7439 270.3774 267.4873 268.0107 268.5247 268.3907 268.0802 267.3257 267.296 266.4516 264.5316 261.7791 260.6334 259.8022 258.4994 257.3604 255.3463 254.3009 254.4173 253.1476 251.5128 250.5471 249.6867 247.8922 245.9404 245.0568 243.7803 -9999 +-9999 284.3423 287.6829 289.8569 292.8918 295.5631 297.1983 298.0229 298.8904 299.1873 301.5732 302.8322 303.9977 305.2811 306.2567 307.0786 307.611 308.425 309.1996 309.5034 308.8821 308.1776 307.0897 306.4118 305.5691 304.7499 304.1825 303.9097 301.1861 300.9186 300.8382 300.6378 299.8519 299.4192 299.4968 299.5945 299.9741 300.6703 301.2463 301.1677 301.0048 301.01 301.3769 301.3027 301.1159 300.6896 300.2896 299.6242 298.9178 298.2935 297.4588 297.0715 297.3019 298.0883 298.9276 299.5938 300.3446 299.9786 299.346 298.6937 297.6577 295.8684 296.144 296.7976 297.1817 295.9559 293.6292 292.105 290.6363 288.9613 286.4214 284.1925 282.0598 281.6199 278.9948 274.5674 272.4966 267.087 265.8292 264.0423 265.7084 266.3195 265.9743 265.8327 265.7794 265.4407 265.3709 265.2308 265.1939 265.1237 265.2987 265.1891 264.3665 267.8793 269.5927 272.0977 274.4297 275.3776 276.567 276.6625 275.2844 272.2042 268.374 274.0738 278.5202 281.5982 283.9945 286.3903 287.7292 289.571 291.1227 292.8122 293.4193 293.5291 293.9796 294.4392 294.5257 295.2858 296.5988 298.0596 299.6909 300.2455 300.3955 298.8922 297.704 295.0449 292.9919 291.4457 291.7058 296.9258 297.6958 297.8264 296.9804 295.679 296.3809 297.9872 300.1435 301.3984 301.995 301.5297 300.0275 299.204 297.1578 295.8625 294.2947 293.8979 293.6419 294.306 294.2684 291.6355 290.0786 289.2111 288.5315 289.7128 289.4433 289.7367 289.4463 287.2409 287.078 284.5586 285.1945 286.1908 286.2393 285.8135 284.2509 285.4195 288.8015 290.2164 290.3748 289.4004 287.7678 285.1656 283.7862 284.511 284.6124 282.3316 280.0006 279.5266 277.062 274.7432 277.68 279.7368 279.5013 277.953 275.9755 273.4148 270.6823 268.3284 268.4336 268.6869 265.2773 261.3268 261.3899 259.5842 262.2253 264.212 266.4146 267.527 267.5925 266.5247 261.8462 260.776 264.521 261.7362 258.7579 253.5209 254.3187 250.6815 249.4268 247.3892 245.3941 245.3502 247.3738 244.6591 247.2285 251.0569 253.7449 254.9804 256.2962 257.2007 258.0941 258.4988 258.663 259.9686 259.7002 258.1647 257.2466 250.1924 242.8105 241.4976 241.9317 241.7601 243.3972 246.3491 246.5988 248.6444 250.2718 251.4235 252.1226 252.5428 250.9573 246.8489 251.865 253.3825 255.4646 258.092 259.6728 261.0532 263.7578 264.413 264.3709 263.732 262.8788 260.8417 257.2716 252.5615 248.1189 249.0757 250.0281 249.8247 248.1052 249.2136 252.614 255.0338 256.4078 257.6035 261.4234 264.2198 265.3714 266.3778 266.868 267.19 267.5191 267.8018 269.1623 269.6814 271.1736 271.801 272.6431 273.6501 273.6859 273.4993 273.0254 272.4633 272.3337 273.1437 274.2994 275.2506 276.5951 277.7106 277.9005 277.7788 278.2253 278.7041 277.6105 276.7763 275.9316 275.5587 275.8218 275.6404 275.9411 276.4547 277.6129 279.2751 279.4261 279.2161 279.0947 279.0877 279.1552 278.7762 276.7655 274.3836 271.1743 269.7243 268.0911 269.312 267.7611 269.7386 271.5821 272.3362 273.2854 275.2192 275.2639 275.1574 274.9534 274.8312 274.6599 274.3195 274.2455 274.4716 275.4312 275.749 275.8313 275.7884 275.7603 275.2892 274.8929 274.8712 274.7818 274.9753 275.2694 275.186 275.1435 274.6927 273.9889 273.0598 271.9275 270.3877 269.0324 266.3536 264.574 262.7926 262.6888 261.4225 258.718 259.935 261.518 263.0153 265.638 265.8794 266.4867 267.1284 266.4848 265.0583 263.8969 262.5108 261.3244 257.2953 255.7711 255.293 253.937 255.8248 258.143 259.0362 258.7983 259.4324 260.39 258.5686 256.476 254.5437 252.8383 249.8383 246.3092 242.0127 236.5327 233.747 233.7636 233.7702 233.7462 233.7476 233.7001 233.4634 233.7261 233.4242 233.6649 233.7992 233.92 233.6435 233.6359 233.2983 233.3455 233.4037 233.3068 232.9408 231.6949 231.5022 235.4527 236.8041 237.9315 238.4995 238.6889 238.6082 238.689 238.4739 238.4744 238.0615 237.0009 236.3697 238.588 239.398 239.4599 239.8612 241.4965 242.0944 243.0796 244.1567 244.8401 245.4247 246.1037 247.1464 248.6683 252.1906 254.1714 255.9543 257.2907 257.9375 258.0912 259.1609 260.0485 260.8737 262.4632 262.8062 262.7861 262.6565 262.0576 261.3716 260.8522 259.7693 258.9764 256.5774 255.942 255.8654 256.0587 257.3926 258.5325 258.7145 258.8534 259.5581 261.3843 263.0522 264.4358 265.9246 267.5016 268.6223 269.4439 270.3826 271.3656 272.1794 274.0728 274.6579 274.5891 273.9633 272.5271 272.2886 271.3186 271.1512 270.5136 268.0829 268.4969 269.7023 269.7795 269.5262 269.124 268.5332 267.8907 266.7596 263.6302 262.8288 261.6637 260.017 259.2704 256.6122 256.3126 255.8455 255.1719 254.0323 252.7037 251.8979 249.6804 246.685 246.2727 245.8233 -9999 +-9999 285.5477 288.1629 290.6435 293.0902 295.3711 296.4808 296.8719 297.0418 297.1277 300.4954 302.0091 303.6163 304.8369 305.9257 306.9756 307.6965 308.3944 308.8337 308.9927 308.5068 308.0403 307.0525 306.4574 305.5198 304.6179 303.9603 303.2946 299.9659 298.8055 298.5511 298.2708 297.7681 297.7325 297.8655 298.2382 298.0575 299.0302 300.3353 300.2307 300.0402 300.1592 300.5275 300.2779 299.992 300.0337 299.4461 298.8368 298.4716 297.4069 296.8284 296.7017 297.1355 297.9957 298.8008 299.4351 300.3181 300.3411 299.8343 299.2908 298.3266 297.251 297.6304 297.9474 298.3006 296.9379 295.0195 293.4769 292.1615 290.3596 289.0523 286.6685 284.9685 285.2604 282.2739 278.1351 279.1738 271.3946 267.751 266.4738 266.1502 265.8774 265.0935 265.6672 265.7821 265.5397 265.6771 265.3356 265.525 265.1828 265.0448 264.8395 264.8336 265.9673 270.5526 272.5466 273.4869 274.075 274.2029 272.1859 269.74 267.2534 271.5004 275.4347 278.4921 281.3589 283.6085 285.2879 287.2162 288.9875 290.5357 293.3548 294.3045 294.9258 295.5918 296.2104 296.4672 296.6078 297.3584 298.1717 299.6699 300.0613 299.2591 298.5872 296.1403 292.7153 290.0461 289.3515 290.3789 296.0469 296.0115 294.2489 294.8709 295.4413 295.9174 298.2863 300.3664 301.9519 302.4524 302.171 301.8571 300.6317 299.8687 298.6778 297.3998 296.5967 296.0355 294.1174 294.327 292.2025 290.4096 290.4872 290.9504 290.3764 292.2156 292.4398 292.0201 289.7991 289.1018 287.7275 286.8641 288.6725 286.2393 285.8135 284.2509 285.4195 288.8015 290.2164 290.3748 289.4004 287.7678 285.1656 283.7862 284.511 284.6124 282.3316 280.0006 279.5266 277.062 274.7432 277.68 279.7368 279.5013 277.953 275.9755 273.4148 270.6823 268.3284 268.4336 268.6869 265.2773 261.3268 261.3438 260.9792 260.5726 260.2569 261.5535 262.6159 263.5595 263.364 259.8764 259.5359 259.3417 255.2958 251.566 248.5264 246.2934 246.0816 245.7195 245.1489 244.5074 243.9866 243.0824 243.6944 243.6524 247.397 251.0774 253.0304 253.9124 255.2988 256.0639 257.6938 257.7446 259.4033 260.7422 260.9479 260.8216 257.7119 253.8279 243.968 241.5641 241.0766 241.7327 244.0676 245.9474 247.7983 249.4354 250.119 250.3896 248.0159 245.9366 251.4079 252.8627 254.5309 256.2514 258.0544 259.6095 261.3478 263.7131 264.0828 263.406 262.3722 260.8161 257.9522 252.5667 248.563 247.1375 248.1294 247.83 248.1329 249.9043 253.7468 256.0009 257.7942 259.1606 261.0001 263.9271 265.6953 266.5775 267.3974 268.6844 268.9312 268.8483 269.0577 269.8349 269.977 270.9516 271.5273 272.021 272.2917 272.4381 272.016 271.2129 270.4895 270.5891 271.9574 273.2324 274.7037 276.615 277.0753 276.7041 276.9066 277.4135 277.8325 277.9005 277.1289 276.0973 275.2358 275.0714 275.1589 275.7614 276.7867 277.4607 279.7949 280.3495 280.2448 280.4638 280.6652 280.7746 280.3391 278.3693 276.4652 274.1523 273.2056 272.2325 272.2025 270.7528 271.7283 273.4897 274.405 274.8932 275.8452 275.8792 275.5176 274.95 274.4372 274.3945 274.0647 273.9113 274.0194 274.8117 274.9042 274.9183 274.7861 274.2394 273.6968 273.7332 273.8839 273.896 274.1816 274.5913 274.6334 274.4956 274.2428 274.2101 273.8668 273.0789 271.8462 270.6455 267.3142 265.6671 265.2586 264.9456 263.4549 260.7997 260.4164 262.0229 263.7181 266.4991 267.0791 267.4544 267.5661 267.4392 266.3191 264.8543 263.4451 262.4754 258.9148 256.3871 255.6321 254.4248 257.0967 259.1917 260.2096 260.9015 261.959 261.3987 259.7831 258.5046 256.0206 253.1217 250.0947 246.2457 243.1455 238.95 234.1467 234.0259 233.5306 233.6258 233.6655 233.4111 233.6036 233.6278 233.4163 233.642 233.6889 233.7449 233.5653 233.3633 233.1544 233.2054 233.2298 233.1483 231.361 231.7009 237.4849 239.4665 239.322 238.7561 238.6577 238.8233 238.7967 238.7177 237.9756 238.0426 237.0537 236.3376 237.3833 238.5672 239.0502 238.8039 239.7686 241.5917 242.7405 243.7214 244.2483 244.8276 245.4627 246.3362 247.8734 249.4376 252.9584 254.8568 256.8618 258.3636 258.8846 259.465 259.7489 259.8404 260.4227 261.4773 261.8713 261.7422 261.6849 260.5338 259.7092 259.1432 258.4727 257.4178 254.7982 254.9402 255.6863 257.283 258.3543 257.6809 257.7994 258.473 259.1352 262.0011 263.451 264.5407 265.8226 266.7793 267.6312 268.3923 269.3141 269.8865 270.7387 273.0622 273.5939 273.3636 272.5635 271.1837 270.9211 270.7939 270.2973 269.9129 267.9778 268.4701 269.63 270.8855 271.0499 271.0925 270.421 269.5027 268.3405 265.2198 263.9586 262.5648 261.6948 260.0772 257.4503 258.2267 257.8963 257.7476 256.2333 254.2192 252.4153 250.8526 250.0512 248.6661 247.9407 -9999 +-9999 286.4985 288.3224 290.3491 292.567 294.5837 294.8673 294.2891 293.1577 293.507 298.6242 300.9185 302.5834 303.8098 304.5911 305.8958 306.9148 307.5839 307.9715 308.0887 307.8293 307.8547 307.1566 306.2581 305.2478 304.3199 303.689 302.8447 299.6131 298.4035 297.8723 297.478 297.1006 296.7955 296.6768 296.6156 296.3775 296.5771 298.4705 298.8943 299.061 299.263 299.6554 299.1956 298.8009 299.2955 298.588 297.7883 297.3677 296.4454 295.8881 296.4079 297.3072 298.1327 298.7966 299.1805 299.8226 299.5414 299.3395 299.1815 298.5146 298.422 298.1319 297.9903 298.1649 297.4737 296.1009 295.1464 292.9838 291.2616 290.7535 289.1159 287.3152 287.5162 284.0033 281.075 282.4362 281.2625 279.5139 275.4189 273.8208 271.5337 268.0706 265.4247 264.4826 263.4418 263.733 264.2282 265.5657 265.2985 262.9105 264.0565 262.7307 265.3777 267.4362 268.0531 269.3039 270.5017 269.4444 266.9918 266.2195 266.0135 272.6815 275.083 275.7907 278.1194 282.1052 284.1528 286.8493 288.6791 290.3436 292.7614 293.7506 294.4365 295.0536 295.4471 295.5729 296.1713 296.8554 297.8285 298.1011 298.4787 298.6209 297.1734 293.6915 288.5383 287.3389 289.4672 292.0559 294.562 293.5312 293.9999 294.4857 295.4413 295.9174 298.2863 300.3664 301.9519 302.4524 302.171 301.8571 300.6317 299.8687 298.6778 297.3998 296.5967 296.0355 294.1174 294.327 292.2025 290.4096 290.4872 290.9504 290.3764 292.2156 292.4398 290.9655 289.7991 289.1018 287.7275 286.8641 288.6725 289.0149 288.1208 286.2073 286.3771 290.1245 291.0753 291.138 290.1753 288.7212 287.6555 287.2336 287.034 287.0361 283.2843 282.0371 281.594 279.255 276.0183 279.5538 281.524 281.5849 280.0041 277.0622 275.3553 272.7082 269.5909 270.4732 271.6068 269.6163 266.2078 263.8926 261.1879 260.92 260.652 260.1049 258.7884 259.2996 260.1352 260.0038 259.8058 255.3987 251.5417 253.4328 254.0878 253.2762 255.1432 254.547 251.6718 246.779 245.1414 243.7089 242.6547 243.3736 244.8546 248.219 250.6585 252.4319 253.4135 253.973 256.427 256.6274 258.1482 260.2336 261.8886 262.9689 261.2984 257.1249 249.6324 241.223 241.3754 241.4337 242.1364 245.17 247.4501 248.6062 247.9266 245.5495 249.5912 251.7071 253.0044 253.974 254.2719 254.8935 257.4475 259.6093 261.5289 264.0839 263.7099 263.0216 260.9822 259.28 256.6891 251.0218 246.8942 246.2508 245.8927 248.9238 250.7152 252.3444 254.3978 256.7743 259.1449 260.9004 262.3284 265.2844 266.3661 267.8196 269.0956 270.3064 270.4427 270.3925 270.5711 270.6545 270.739 270.0079 270.7422 270.6641 270.7281 270.921 270.1796 269.3243 268.9266 268.6002 271.1505 272.3148 273.7238 275.6134 275.7515 275.5093 275.5141 275.9461 277.1158 277.8538 277.469 276.2021 275.239 274.5355 274.6981 274.6965 275.6203 276.8898 278.9675 279.4481 280.2731 280.733 281.3534 281.6937 281.3295 280.2562 278.9144 276.4358 274.9355 274.0937 273.8727 273.389 274.0988 275.2077 276.1842 276.4285 276.2409 275.7036 274.9099 274.0736 273.5675 273.1751 272.8597 273.0843 273.2495 273.7269 273.724 273.5845 273.5754 272.596 272.3989 272.692 272.9266 273.1768 273.4947 273.9865 274.1049 273.6473 273.8002 274.0824 274.2051 273.7137 272.8011 271.9585 268.4185 267.8743 267.6714 266.6686 264.9243 262.2675 261.0004 262.8978 264.2901 267.3838 268.661 269.2385 268.9401 268.3562 266.8459 265.7379 264.4601 263.3152 259.8008 257.5551 255.8616 255.3887 257.8756 259.6351 261.4264 263.1581 264.1597 263.037 261.8035 259.4171 255.9858 252.2449 248.9917 246.387 243.9232 240.5541 235.5439 234.6459 233.4926 233.3508 233.3724 233.2936 233.6297 233.6048 233.3595 233.5117 233.6258 233.357 233.3737 233.1978 233.19 233.2159 233.2044 232.8044 233.7423 233.6426 237.3817 240.1944 240.1959 239.2661 238.7266 238.5574 238.5439 238.4278 238.4588 237.4123 236.0124 235.2589 236.9027 237.9205 237.8266 237.9977 239.5034 241.7882 242.6353 243.7464 244.2187 245.053 245.8997 246.7907 248.4067 250.3249 254.2914 255.8569 257.2492 258.0745 258.2736 258.7555 258.5864 258.1089 259.1341 260.511 260.6926 260.1716 259.4679 258.8736 258.0583 257.5886 256.6767 254.7119 254.1777 254.95 256.5963 257.2547 257.1825 256.3538 257.72 258.8929 259.5711 261.5734 263.0984 264.0657 264.9377 265.9204 266.809 267.5895 268.348 269.4205 271.6326 272.0007 272.2713 271.7229 270.8447 269.8541 269.549 269.4221 269.6674 269.4094 267.8421 268.6319 269.7132 270.8922 272.4395 272.2017 272.0447 271.1209 269.577 266.8212 264.9323 262.7591 261.6438 261.0715 259.9931 260.1789 260.5384 260.0863 257.4554 255.5297 253.8409 250.8526 250.0512 248.6661 247.9407 -9999 +-9999 285.2158 286.3887 287.7769 289.3638 290.6827 290.9155 290.0717 289.8333 291.2126 296.8903 299.4986 301.2988 302.4108 302.9776 304.3774 305.4133 306.1897 306.602 306.8445 307.2131 307.5166 307.17 306.2216 305.0504 303.9619 303.3759 302.5771 299.4171 299.0809 298.4435 297.9417 297.3525 296.7285 296.7634 296.9848 295.4526 295.3088 296.5067 297.3491 298.0111 298.3135 298.4341 298.1139 297.6565 298.2394 297.8703 296.7932 296.1278 295.4773 295.0948 295.9519 297.1554 298.0552 298.4136 298.5888 298.68 298.3235 298.3113 298.5877 298.3574 298.0209 296.9707 296.829 297.0756 297.2987 296.874 296.2137 294.0554 292.621 291.3396 290.797 289.8 289.1574 285.565 283.6499 284.424 285.1072 284.2802 281.3094 278.7351 274.9976 276.0978 273.0815 268.9747 266.4808 265.3523 265.2752 265.054 265.0557 264.7747 264.9006 263.6564 264.9401 264.1616 264.1171 264.528 265.1058 264.8851 265.1516 265.3425 266.5468 274.3675 276.9951 275.7907 278.1194 282.1052 284.1528 286.8493 288.6791 290.3436 292.7614 293.7506 294.4365 295.0536 295.4471 295.5729 296.1713 296.8554 297.8285 298.1011 298.4787 298.6209 297.1734 293.6915 288.5383 287.3389 289.4672 292.0559 294.562 293.5312 293.9999 294.4857 295.0356 295.5457 296.0068 299.7937 301.338 303.2396 303.4414 302.6992 302.4383 301.7798 301.087 299.9683 298.3972 297.907 294.634 295.9537 293.5335 291.11 291.8537 292.9507 293.2791 293.8109 294.0729 292.8 292.4461 291.3373 289.3038 289.2134 290.4757 290.8832 290.1567 288.9357 287.7986 290.9305 291.7124 291.7386 290.8993 290.5473 290.0935 289.3226 288.9187 288.6356 284.1778 283.5293 282.5932 280.4966 277.4298 280.8311 282.7025 282.7165 281.5171 277.5995 275.8692 273.0509 270.7077 273.0133 273.5284 273.2242 271.3428 269.2313 261.65 260.7502 260.491 260.1718 260.0633 260.103 259.9224 259.6127 258.5746 260.834 262.5879 263.3664 262.5138 260.8233 261.7569 260.433 258.5377 255.0663 244.0362 243.6804 243.1255 242.7462 243.3715 246.3942 249.6227 250.8338 251.8327 254.5256 255.3551 256.2287 257.6535 259.5559 261.4319 263.174 262.6078 259.5242 255.5523 241.1364 241.5767 241.8406 241.2789 244.2257 246.3725 246.2567 242.5826 246.6848 250.8798 251.6675 252.2128 252.2967 252.1226 253.9705 257.3529 259.5123 261.2662 263.4416 263.7016 262.3151 260.4775 258.174 255.6798 250.312 246.2596 245.6353 250.0763 251.702 252.8597 254.0971 255.3445 257.2208 259.2331 260.9001 263.3012 266.9018 268.2555 269.1244 270.3549 271.0648 271.6588 271.4881 271.8558 271.6983 270.5441 269.3276 269.6276 269.7108 269.2585 268.9854 268.3683 267.901 267.4893 266.9786 269.1199 269.915 271.131 273.1886 273.5846 273.6329 274.8178 275.2429 276.4814 277.8185 277.6871 277.0575 275.4496 274.3806 274.0617 274.3394 275.2091 276.442 278.7108 278.9568 279.9648 280.6171 281.0657 281.3378 281.4928 280.9113 280.2282 277.7682 276.7373 276.1964 275.7557 275.5457 276.1818 277.005 277.5386 277.4438 276.3223 275.5853 274.7128 273.9345 273.1213 272.5497 272.1924 271.8235 272.1285 273.079 273.0781 272.4026 272.0802 271.5072 271.0925 271.2229 271.4583 271.9986 273.0786 273.184 273.1124 272.862 273.317 273.7736 274.1783 274.0978 273.5842 273.0298 270.2289 269.8853 269.5163 268.2017 266.1818 263.2312 263.5356 263.9723 265.2785 267.7901 269.1927 269.8689 269.3746 268.506 267.6009 266.2763 265.0139 263.5375 260.0678 257.7188 256.0746 256.2275 258.5549 260.6869 262.5165 264.4791 265.7393 264.8969 262.9657 259.8406 255.7856 251.86 248.9021 246.9358 244.7647 242.3181 237.4334 235.1048 233.3649 233.1797 233.2116 233.3175 233.2059 233.3578 233.4598 233.5081 233.2915 233.0667 233.2366 233.1508 233.2587 233.2927 233.144 231.3581 233.3415 233.4729 236.4044 239.4136 240.1039 240.0289 239.4186 238.4226 238.265 238.3321 238.2731 235.8505 234.7991 236.5304 237.4561 238.2641 238.9325 239.299 239.7435 241.5813 242.3035 243.4647 244.1653 245.0899 246.1367 247.4497 249.5072 251.4568 254.939 256.0163 256.7172 256.5341 256.312 256.6863 256.3007 256.6176 257.4827 259.0988 259.1148 258.5452 257.7254 257.6097 256.447 256.1984 254.9285 252.8557 254.1857 255.6733 256.0356 255.6732 255.2715 256.6761 258.357 259.4844 259.5711 261.5734 263.0984 264.0657 264.9377 265.9204 266.809 267.5895 268.348 269.4205 271.6326 272.0007 272.2713 271.7229 270.8447 269.8541 269.549 269.4221 269.6674 269.4094 267.8421 268.6319 269.7132 270.8922 272.4395 272.2017 272.0447 271.1209 269.577 266.8212 264.9323 262.7591 261.6438 261.0715 259.9931 260.1789 260.5384 260.0863 257.4554 255.5297 253.8409 252.8737 251.3574 250.5736 249.6306 -9999 +-9999 280.6545 281.9809 282.8018 286.952 290.2922 291.7041 291.7831 291.3788 291.86 295.9137 298.1576 299.7629 300.2704 301.0374 302.4482 303.4171 304.1113 305.0446 306.1238 307.0055 307.4235 307.1557 306.3954 305.2607 303.9611 303.2832 302.3574 300.7741 300.3018 297.8001 296.0747 297.7615 297.8778 297.5429 297.7539 296.7894 293.3531 294.6011 295.7074 296.6496 296.89 296.8624 297.1269 296.9647 297.2336 296.9836 295.7744 294.8655 294.4139 294.3857 295.3115 296.4828 297.3006 297.7453 297.7118 297.1047 296.811 297.294 297.8548 297.7818 296.7191 295.5959 295.6118 295.866 296.003 296.5167 296.4322 294.9182 293.4193 292.4801 291.6178 291.0143 289.1362 287.0704 286.5836 286.7647 285.1072 284.2802 281.3094 278.7351 274.9976 276.0978 273.0815 268.9747 266.4808 265.3523 265.2752 265.054 265.0557 264.7747 264.9006 263.6564 264.9401 264.1616 264.1171 264.528 265.1058 264.8851 265.1516 265.3425 266.5468 274.3675 276.9951 279.5584 281.0241 282.6628 284.1298 286.2184 287.9708 289.3981 291.196 292.1585 292.9296 293.311 293.4111 293.9114 294.9488 295.5797 295.9486 296.7574 296.7562 296.7826 295.3275 292.57 287.6116 286.6807 289.0836 290.978 293.4687 293.1307 293.5465 293.8861 294.5043 295.1567 295.704 296.4815 300.6551 302.917 303.9018 303.8943 303.6344 303.2805 302.658 301.5397 300.4134 299.7802 298.5227 297.1128 294.56 293.9591 293.4653 293.867 295.0594 295.7475 295.8726 294.8368 294.1479 293.0725 291.291 289.6854 291.5529 292.2917 291.8028 291.2081 290.2284 292.3195 293.0795 292.9108 292.7442 292.5273 291.5489 290.7097 289.4589 288.6685 284.9448 284.2578 283.6704 281.449 279.0743 282.0895 283.7303 283.4094 282.6597 277.0406 274.7904 272.4815 273.5777 275.567 275.7424 274.947 274.4717 272.3172 265.7062 261.7948 261.0302 260.8623 260.5453 260.4292 260.2856 260.0934 260.0999 265.0641 268.241 269.1808 267.5523 265.1329 265.512 265.7034 262.4903 257.3839 246.883 244.5174 243.8079 242.6735 243.5134 246.2717 247.6501 249.2018 250.0328 252.9472 253.8942 255.2749 257.0848 258.426 260.9221 263.7412 264.9528 263.0973 259.2735 242.5739 241.4148 240.0026 241.1708 242.5656 243.731 241.4328 245.298 247.7902 249.1239 250.3492 251.0613 250.7172 251.636 254.3712 256.6534 259.2272 260.4974 262.8255 263.1621 261.6271 259.7361 257.3951 254.1959 249.6456 245.5455 244.375 250.7415 251.3017 251.6024 253.3201 255.7738 258.3766 260.0688 262.0867 264.5748 267.627 268.791 269.5755 270.3847 271.1512 271.9689 272.6173 272.7198 272.2491 269.7412 268.5138 267.862 268.108 267.6814 267.2915 267.0707 266.3634 265.6434 264.6159 265.7336 267.0008 268.7149 270.7072 273.0453 274.4034 275.7263 276.4811 277.2762 278.0869 277.8873 277.4283 275.9664 274.4717 273.7683 273.8008 274.6004 275.6026 277.1703 278.3174 279.4022 279.9502 280.3447 280.7899 280.9906 280.8127 280.4345 279.1771 278.7357 278.4705 278.3902 278.3818 278.3681 278.2787 277.9731 277.5075 276.0634 275.2136 274.3187 273.4041 272.7237 272.2664 271.8948 271.3645 271.1777 271.5856 271.6143 271.6817 270.7828 270.3562 270.4334 270.2355 270.7537 271.7432 272.1966 272.3321 272.1109 272.528 272.903 273.4273 273.8515 274.1725 274.2322 273.8312 271.9395 271.9043 271.1587 269.095 266.7609 264.1615 263.9597 264.4198 265.7501 268.6754 269.5666 269.9241 268.8589 268.3306 267.0525 266.1079 264.6131 263.4822 260.1422 257.544 256.4507 257.4937 259.2475 261.4326 263.3949 265.0117 266.3359 266.3505 263.6005 259.9537 255.3422 251.2029 249.0735 247.4379 245.1067 242.8098 237.2936 234.0397 233.3097 232.9328 233.1386 233.1743 233.1553 233.3175 233.2354 233.1575 233.1935 233.416 233.1635 233.2065 233.4453 233.5532 232.1521 231.4659 232.936 233.3445 236.2227 238.9895 240.3238 240.9725 240.7 239.2911 238.1661 238.2296 235.9227 234.5499 236.8899 237.6709 238.0043 238.3964 238.9325 239.299 239.7435 241.5813 242.3035 243.4647 244.1653 245.0899 246.1367 247.4497 249.5072 251.4568 254.939 256.0163 256.7172 256.5341 256.312 256.6863 256.3007 256.6176 257.4827 259.0988 259.1148 258.5452 257.7254 257.6097 256.447 256.1984 254.9285 252.8557 254.1857 255.6733 256.0356 255.6732 255.2715 256.6761 258.357 259.4844 260.7082 262.1261 262.4569 263.3727 264.4095 265.3862 266.0984 267.2248 268.5738 269.7565 270.7968 271.1213 270.743 270 269.3507 268.5897 267.9325 267.6975 269.1963 268.6224 266.9943 268.1798 269.4318 270.7954 272.1649 272.6461 272.6638 272.1954 270.9751 267.5405 265.6786 263.3869 263.4547 263.4984 262.3536 262.4868 262.5205 261.8729 258.7472 257.125 255.8304 254.0958 252.4082 251.6098 249.942 -9999 +-9999 281.8599 285.1572 288.2074 291.3992 294.5336 297.1068 297.7039 296.7001 295.193 295.8268 296.6938 297.6702 298.5095 299.5201 300.3329 301.3318 302.6782 303.8636 305.6124 306.7047 307.5234 307.2767 306.515 305.6165 304.6378 303.8481 302.9204 301.641 299.8907 297.3354 295.2429 295.0145 295.8882 296.2651 296.9519 295.6431 292.3915 293.6492 294.5772 295.1607 295.4914 295.5828 296.0115 296.2169 296.1223 295.8403 294.3348 292.7554 294.4139 294.3857 295.3115 296.4828 297.3006 297.7453 297.7118 297.1047 296.811 297.294 297.8548 297.7818 296.7191 295.5959 295.6118 295.866 296.003 296.5167 296.4322 294.9182 293.4193 292.4801 291.6178 291.0143 289.1362 287.0704 286.5836 286.7647 286.8455 285.3831 283.0772 280.0509 279.8692 279.4023 277.5106 275.9917 272.2758 266.8083 265.0669 264.9696 265.216 264.903 264.7228 264.3897 263.2454 264.1978 264.1194 263.9772 264.1245 264.0812 265.0598 267.3631 271.8614 272.8781 274.855 277.3833 279.5997 280.9034 282.164 284.3291 286.049 287.0943 288.6509 289.8933 290.7001 290.9671 291.3738 292.4242 293.6735 294.345 294.1661 294.4684 294.7185 294.3047 293.0583 289.9878 286.0535 284.6141 285.7699 288.1032 291.7008 290.9748 290.514 293.1598 293.759 294.6808 295.4479 295.998 297.1793 301.8071 303.0353 304.1056 304.5971 304.2292 303.7548 302.562 302.1411 301.5965 299.8561 298.603 296.9936 296.2713 294.9793 295.5918 296.2862 296.748 297.1377 296.7722 296.3062 294.67 293.4189 291.6094 292.4824 293.823 293.6807 292.9267 292.2189 293.7129 294.5189 294.4582 294.1284 293.8473 292.3501 290.7172 289.6483 288.6785 286.085 284.9688 284.0859 281.9221 280.0728 282.8073 284.3186 283.9779 281.9022 277.0877 276.0847 275.7833 275.1436 277.0354 277.2501 276.7518 275.5845 273.8824 268.2342 264.8974 261.6436 261.5974 261.2793 260.873 260.6981 260.9471 260.9371 267.5039 270.8148 271.8785 271.1285 269.034 268.7901 267.6032 263.5766 258.3234 248.5449 246.5773 244.1063 243.103 243.1273 244.4435 245.6821 246.9489 247.9888 250.3749 251.7092 254.1721 255.8415 257.461 260.2734 263.7077 265.9323 264.2646 257.5992 245.5574 241.2823 241.4805 241.4183 240.7464 241.5486 243.1465 245.7768 247.2754 249.1586 249.1574 249.7385 250.8812 252.7593 254.1201 256.6482 258.7088 260.537 262.7326 262.3719 260.5538 258.3307 255.7555 253.0967 249.0474 244.7918 245.7367 248.4622 249.9094 251.6685 254.7928 257.05 259.1871 260.7011 262.9593 264.8965 267.1458 267.7446 268.4329 269.2961 270.3608 271.1873 271.8591 271.3962 270.8709 268.7568 267.8803 266.1696 266.1988 265.9738 265.2025 265.0295 264.279 263.1577 262.5531 264.0352 266.6747 270.7463 273.3747 275.3938 276.6584 277.7598 277.9217 278.285 278.567 278.0794 277.4297 276.4149 274.993 273.7794 273.3187 273.4323 274.3624 276.4228 277.473 278.4806 279.4667 279.6092 280.1589 280.5749 280.7787 280.572 279.8654 279.5485 279.3593 279.3336 279.9088 280.3599 280.3926 279.8509 278.9528 277.2221 275.705 273.8947 272.6191 271.5233 270.9258 270.6856 270.3703 269.8345 270.1034 270.3064 269.8753 269.7404 269.299 268.8954 269.5746 269.8924 270.4068 270.5968 270.7846 271.2828 272.2138 272.4585 272.9955 273.5237 274.1854 274.5749 273.3872 273.2661 272.9434 271.4418 269.2342 267.432 265.0657 264.6414 265.6516 267.102 269.3269 270.0374 269.9769 268.5931 267.0131 266.2652 265.2647 263.8358 261.9994 258.6657 257.4333 257.0533 258.0861 259.738 262.0412 263.7 264.97 266.0328 266.6194 264.4586 261.0606 257.238 253.2439 250.3465 247.4379 245.1067 242.8098 237.2936 234.0397 233.3097 232.9328 233.1386 233.1743 233.1553 233.3175 233.2354 233.1575 233.1935 233.416 233.1635 233.2065 233.4453 233.5532 232.1521 231.4659 232.936 233.3445 236.2227 238.9895 240.3238 240.9725 240.7 239.2911 238.1661 238.2296 235.9227 234.5499 236.8899 237.6709 238.0043 238.3964 239.2365 240.1025 240.612 241.9901 242.7673 243.5473 244.1501 244.9099 245.8277 247.6961 250.0151 251.976 254.8788 255.4299 255.1836 255.0337 254.7549 254.4219 254.9239 255.5933 256.9264 257.7955 257.5809 257.0318 256.1375 255.9901 255.302 254.3923 252.8379 251.9404 254.0066 254.6404 254.7659 254.6613 255.2393 257.1841 258.8991 259.7915 260.797 262.4484 263.462 264.426 265.4445 266.2532 266.8589 267.9829 268.905 269.182 269.4317 269.7651 269.2094 268.2152 267.6516 266.9823 266.5741 267.1927 268.0922 267.8897 266.8163 267.6481 269.0685 270.8979 272.1754 273.3588 273.6727 273.0015 272.032 268.7797 266.9687 265.6288 265.0648 264.4421 263.7246 263.5351 263.4158 262.8438 260.0877 258.7503 257.1662 255.2837 254.6103 252.5746 250.9579 -9999 +-9999 284.1906 286.6745 289.4853 292.1952 294.9591 297.704 299.3212 299.0959 298.819 299.2852 299.6339 300.2263 300.8867 300.8944 301.6273 302.6429 303.7736 304.4785 306.1392 307.1128 307.5862 307.5364 306.515 305.6165 304.6378 303.8481 302.9204 301.641 299.8907 297.3354 295.2429 295.0145 295.8882 296.2651 296.9519 295.6431 292.3915 293.6492 294.5772 295.1607 295.4914 295.5828 296.0115 296.2169 296.1223 295.8403 294.3348 292.7554 292.4851 292.7639 294.2244 295.4581 296.0468 296.6153 296.5815 295.5651 295.3507 296.0492 296.0549 296.1722 295.412 294.5707 294.3672 294.2005 294.2757 295.0276 295.5653 294.7569 293.237 292.351 291.6774 291.3231 290.0116 288.0771 287.5414 286.9082 286.9239 286.4452 284.5397 282.7014 282.405 281.2625 279.2238 277.1435 273.1255 266.7827 264.9626 265.0637 265.2586 264.5017 264.2406 264.3342 264.4854 262.3245 262.8909 263.8673 263.3751 263.9546 264.0761 265.4579 272.9889 275.6789 277.99 280.0176 281.0479 281.6703 282.635 283.5316 284.5215 286.058 287.0654 287.758 289.5127 290.6301 291.7074 292.1938 292.8444 292.7873 291.6291 291.9377 292.1115 292.1272 290.9535 287.0268 283.3457 281.0472 284.3006 286.3141 289.5912 289.489 288.8617 288.8873 289.5458 291.3602 294.1482 295.2138 296.5048 298.3498 301.0011 303.0858 304.7236 305.4403 304.9454 303.5334 303.637 302.9137 301.1775 300.1111 299.1406 298.4092 296.9591 297.0723 297.4684 297.7637 297.9936 298.3141 298.243 296.5744 295.0977 293.3226 293.7054 294.6807 295.0755 294.5278 294.1876 295.0287 295.9324 296.065 295.5013 294.5433 293.0846 291.6255 290.5069 289.776 286.4745 284.7262 283.2122 281.8329 280.8188 283.3202 284.5326 284.7195 282.3645 278.3527 278.5152 277.7164 277.2754 278.0192 278.7078 277.5979 276.2545 274.6512 269.0497 265.2085 262.4784 262.3974 262.1439 262.2361 262.5597 263.0969 264.6715 269.6971 272.1022 273.3271 272.2676 270.502 269.4056 266.9417 262.5675 257.5298 250.2633 248.6669 245.3055 243.0472 242.023 241.4262 241.5034 243.7217 245.4925 249.7059 251.1071 253.3159 254.8991 256.9713 259.4525 262.8718 265.1834 265.8735 261.692 251.8856 243.2977 241.5452 241.4418 241.0078 242.7055 245.4445 246.8697 248.4599 250.8595 251.3747 252.415 253.536 254.2926 255.2871 257.4922 258.7277 260.8415 262.2386 261.666 260.3589 257.222 254.2641 250.6931 246.1957 244.4846 245.4744 248.0456 251.352 254.3402 256.3289 258.4625 260.2164 261.2089 262.869 264.0687 265.7023 266.4568 266.541 268.1598 269.2138 269.968 270.3705 269.845 269.4594 267.7762 266.2341 264.9354 264.0964 264.0631 262.7567 261.7323 261.3517 260.5216 262.2166 264.6828 269.902 274.6846 277.1609 277.873 278.3722 278.8182 279.4807 279.4984 278.4926 277.7556 277.2223 276.3294 275.4014 274.0175 273.1719 273.2139 273.9498 275.3591 276.2963 277.6135 278.2459 278.5367 278.9855 279.5103 279.7895 280.1382 280.3892 280.2741 280.1078 280.5221 281.3456 281.8279 281.8137 281.2107 279.5462 277.2832 275.4048 272.974 271.0663 270.1452 269.8232 269.4789 269.5963 269.1169 268.2615 269.2309 269.5394 269.1934 268.7235 268.4723 268.3935 268.8351 270.0469 269.6887 270.4537 270.822 271.0393 272.0452 272.581 273.2334 274.1854 274.5749 273.3872 273.2661 272.9434 271.4418 269.2342 267.432 265.0657 264.6414 265.6516 267.102 269.3269 270.0374 269.9769 268.5931 267.0131 266.2652 265.2647 263.8358 261.9994 258.6657 257.4333 257.0533 258.0861 259.738 262.0412 263.7 264.97 266.0328 266.6194 264.4586 261.0606 257.238 253.2439 250.3465 248.9547 247.6804 246.0636 236.5107 233.7123 233.0175 233.1507 233.0406 233.152 233.0641 233.0867 233.102 233.0747 233.1863 233.0299 233.3302 233.3037 233.4289 233.6455 231.3338 233.718 232.8105 233.1807 233.8282 234.6824 236.3686 239.2223 240.6039 239.5654 238.0204 235.9979 235.0923 235.8296 235.8609 238.6988 238.8031 239.2399 239.5458 240.1424 241.0351 242.2318 243.1096 243.5812 244.0882 244.8694 245.8506 247.8559 250.0361 251.5722 253.605 253.9198 253.4286 253.1461 252.9072 253.0765 254.0102 255.264 256.6325 256.7726 255.9412 255.571 254.8302 254.5251 253.2691 252.3372 250.4888 250.1693 252.9903 253.116 253.483 254.1573 256.1356 257.903 259.3284 260.3159 261.2115 263.2648 264.3254 265.0588 265.5104 265.9887 266.6657 267.6453 267.8992 267.6264 268.0771 268.1682 267.8771 267.1556 266.8203 265.955 265.5182 265.9369 266.4171 267.2328 266.2539 266.8937 268.5503 270.1392 271.774 273.5798 273.788 273.6692 272.7501 269.5985 268.4384 267.6288 266.2256 265.2934 264.3445 262.9506 262.09 262.1967 260.9134 259.5383 258.2325 257.6024 257.0066 254.4459 253.772 -9999 +-9999 284.1906 286.6745 289.4853 292.1952 294.9591 297.704 299.3212 299.0959 298.819 299.2852 299.6339 300.2263 300.8867 300.8944 301.6273 302.6429 303.7736 304.4785 306.1392 307.1128 307.5862 307.5364 306.7616 306.1166 305.4182 304.476 303.5882 302.0867 300.1979 298.3794 296.3062 295.2184 293.8098 292.8972 292.7523 292.3432 290.8855 292.3914 292.9781 293.8452 294.1942 294.2003 294.5337 295.076 295.0725 294.2599 293.0161 291.7087 291.4523 291.9338 293.1508 294.2855 295.2933 295.5374 295.6078 293.9423 293.9422 294.4741 293.9342 294.4193 293.5983 293.2162 292.7179 292.9197 293.2112 294.056 294.2454 293.3009 291.7466 291.1864 290.8041 290.1086 289.9508 287.7877 286.5918 285.3634 286.2254 286.3139 285.2655 284.0408 283.0034 280.7163 278.3871 276.8853 272.8223 267.9099 265.8559 265.0747 264.4734 264.1725 264.0965 264.2942 264.2529 264.1552 263.063 263.6337 263.8641 263.6389 264.0189 266.2193 274.8399 276.5422 278.8239 280.8295 281.8617 282.6161 282.7427 283.0312 283.6077 284.54 284.8563 286.9363 289.1567 290.8958 290.7513 292.1321 292.8633 291.114 289.2556 288.5196 289.1714 289.9549 289.0356 286.047 282.2979 281.688 284.9673 286.5085 286.5798 286.1877 286.445 287.9753 290.7593 290.2688 291.4389 291.7905 293.8073 298.0889 302.0091 303.6738 304.7987 305.9351 306.5051 305.163 304.762 304.4289 302.2613 301.425 300.5433 299.7028 298.887 298.4467 298.6301 298.8122 299.0609 299.6752 299.1996 298.162 296.7214 295.1351 295.1765 296.0733 296.6072 296.0963 295.604 296.2633 296.8885 297.0792 296.521 295.3539 293.7187 292.3003 291.2386 290.1981 286.1885 284.5269 283.304 282.744 282.7338 283.9423 285.0258 284.5389 282.8148 280.6758 280.788 280.17 279.511 279.1916 279.4493 278.1636 276.1132 274.3163 268.4485 264.1297 263.1004 263.9503 265.4272 266.1378 264.8743 265.9562 267.5838 271.5974 273.4974 273.6457 272.4288 270.3508 267.8832 263.7308 259.7773 256.8449 252.2732 250.6902 246.7098 244.0561 243.7929 242.836 242.4203 241.6388 242.6216 249.1584 250.6834 251.6194 253.5804 256.0609 258.8296 261.6188 263.7189 264.0387 257.9886 253.3723 248.4491 241.7278 241.2272 240.8997 241.1356 244.8739 247.1587 248.1894 250.1903 251.5921 252.8087 254.3591 255.435 256.3487 257.4481 258.5633 260.4551 261.6495 260.9582 259.9463 256.9752 253.5143 249.9123 244.4659 244.7065 246.7922 251.7403 252.8742 255.737 257.9615 259.1595 260.0612 260.943 262.0492 262.7943 264.6142 264.5643 265.8248 266.738 267.8985 268.6026 268.9544 268.4926 267.44 266.5235 264.6847 263.8549 261.2524 260.7728 259.7688 259.3129 258.3777 261.1075 266.5067 269.4179 273.1245 276.0981 277.882 278.8826 279.9973 280.3425 280.6433 280.1329 277.9234 277.289 276.6596 275.6426 274.936 273.8733 273.0217 273.3367 272.3993 274.375 275.5739 276.3061 277.1175 277.6184 277.7521 278.2344 278.4909 279.218 280.3892 280.2741 280.1078 280.5221 281.3456 281.8279 281.8137 281.2107 279.5462 277.2832 275.4048 272.974 271.0663 270.1452 269.8232 269.4789 269.5963 269.1169 268.2615 269.2309 269.5394 269.1934 268.7235 268.4723 268.3935 268.8351 270.0469 269.6887 270.4537 270.822 271.0393 272.0452 272.581 273.2334 273.8895 274.2939 273.9496 273.8644 273.2431 271.7807 269.3167 267.7833 266.1793 265.7042 266.7856 268.127 269.7678 270.979 270.2154 268.9446 267.4078 265.9458 264.321 263.3798 262.1554 260.648 259.0126 257.5539 258.6463 260.1152 261.9884 263.3275 264.1817 264.7533 265.705 264.6875 262.1181 258.5672 255.5683 253.474 251.4432 251.7784 250.4245 236.4955 233.0148 232.9738 233.1366 232.95 232.8592 232.8769 232.8406 232.9067 232.9973 233.1031 233.1982 233.1281 233.3298 233.4082 233.897 231.3445 233.5625 232.8751 232.9178 232.7611 233.156 233.2752 235.2074 238.3724 237.9641 236.3129 234.3304 235.5478 237.0105 238.011 238.6419 238.9008 239.0661 239.419 239.9546 240.7549 242.0317 242.8814 243.4654 244.1163 244.8488 245.7605 246.9524 248.6305 250.2126 251.938 251.9064 251.3194 251.0515 251.5247 252.6072 254.0461 255.5164 256.2974 255.4812 254.5764 253.9842 253.7983 252.298 250.4589 250.1248 250.3387 251.1014 252.0876 252.7877 254.346 255.9199 258.0414 259.5327 260.5661 261.7395 262.7228 263.8747 264.4071 264.7002 264.8176 265.1258 265.8221 266.7431 266.9773 266.2508 266.87 266.5948 266.4006 266.2284 265.4733 265.201 265.0552 265.0438 266.0444 267.5471 265.8059 266.2383 267.9231 269.6409 271.1239 272.4839 273.2241 273.5139 272.7561 270.4362 269.3253 267.884 265.9388 264.4606 263.4218 262.1993 260.6461 260.162 260.2137 259.6975 259.4097 258.7146 257.6832 256.2766 255.7794 -9999 +-9999 283.2278 285.6975 288.682 291.5776 294.4935 296.8213 298.0395 298.0954 298.1473 298.9676 300.1759 301.5593 303.0132 303.2338 303.3952 304.1759 304.8694 305.7678 307.0328 307.6256 308.0521 308.0584 307.2654 306.5307 305.7098 304.8684 304.2859 302.8338 301.7769 300.3544 298.9956 296.9691 295.6465 294.0281 292.8061 292.3249 289.7592 289.1071 291.3507 292.2599 292.9364 292.9803 293.2359 293.5357 293.7076 292.9875 292.2735 291.155 290.5592 290.2008 291.2075 292.9269 294.2075 294.8774 294.8719 293.218 291.8307 292.5163 292.6555 292.7372 292.3988 291.5502 290.8641 291.5211 291.4105 291.8971 291.9175 291.2126 289.2603 288.6224 288.451 288.4538 288.4797 286.7997 285.1853 284.112 285.2862 285.4016 284.9181 283.8653 282.8686 281.3281 276.8349 274.7306 273.2899 270.3526 267.2977 265.1922 264.6217 264.26 264.0367 263.9133 264.1075 264.0444 261.8352 263.6066 263.6162 263.5078 263.6584 266.2344 275.3767 276.9364 278.2522 279.5455 280.1351 280.3848 280.2841 280.7529 279.8647 280.5889 283.7475 286.2355 288.8332 290.2519 292.1154 293.0158 291.6317 287.8141 283.7468 284.0501 285.8249 288.0616 287.6456 286.0968 282.1601 281.4112 284.1078 284.0331 282.5008 285.0985 287.939 291.1749 293.3225 294.3813 296.4262 298.2077 298.9459 300.1062 303.1773 305.5265 306.4672 306.4341 307.4207 307.1682 306.52 305.7139 303.8268 302.4336 301.3219 301.4022 300.3862 299.8245 299.403 299.2028 299.3213 300.1568 299.8233 298.981 297.9524 296.9156 296.8108 297.4245 297.8127 297.5835 296.826 296.8199 297.6352 297.8659 297.0965 295.8339 294.7107 293.3841 291.7336 290.0381 286.6291 286.0611 284.7269 283.7822 283.4676 284.7115 285.9262 285.5655 284.2412 283.0459 283.0528 282.6222 280.5372 280.3234 279.4024 278.1627 276.0892 273.9334 267.064 263.7077 264.9385 266.6834 268.1109 269.1151 269.8044 269.0295 270.1145 273.2799 274.0116 273.754 271.8151 269.5409 265.6412 263.5094 262.0557 258.8795 254.7144 252.2717 247.852 246.6435 245.1668 243.4426 242.2471 241.1996 242.0986 246.8214 249.3642 250.7404 252.0184 254.8391 257.137 259.7438 261.1345 260.9262 258.2722 254.7749 247.8395 241.1255 240.7035 240.8573 240.7657 243.1445 245.3846 247.0032 249.1798 251.1891 252.5014 253.9881 254.9255 255.8535 256.7239 257.9178 259.4016 260.8909 260.5357 257.7188 254.3872 251.2543 247.5277 244.1767 244.6951 247.5925 253.0744 255.2228 256.7087 257.9328 258.7794 259.4397 259.8442 260.768 261.7573 262.8259 264.1104 264.8421 265.7343 266.9671 267.8125 268.1978 266.5308 265.1503 263.3239 263.4846 261.2924 261.2524 260.7728 259.7688 259.3129 258.3777 261.1075 266.5067 269.4179 273.1245 276.0981 277.882 278.8826 279.9973 280.3425 280.6433 278.8324 277.9234 277.289 276.6596 275.6426 274.936 273.8733 273.0217 273.3367 272.3993 274.375 275.5739 276.3061 277.1175 277.6184 277.7521 278.2344 278.4909 279.218 280.0813 279.86 279.9026 280.784 281.6635 282.3529 282.5748 281.9334 280.361 277.3792 274.619 271.3067 268.0264 267.2285 267.4962 267.8462 267.3857 266.8545 266.9728 268.2355 268.7009 268.3137 267.5814 267.2744 267.7622 267.9245 268.4805 268.655 269.5229 270.2456 271.2413 272.0803 272.6189 273.1334 273.446 273.7917 273.7383 273.5915 273.0175 271.2401 269.2508 268.4544 267.4627 266.8028 267.953 268.7952 270.5826 271.0062 270.9253 269.5075 267.9687 266.6254 265.4236 264.3369 263.553 261.376 259.3704 258.1489 259.0815 260.0645 261.5427 262.4829 263.3537 263.4981 263.9261 263.5426 261.7689 259.2363 256.4992 255.8801 255.7492 255.7085 255.6128 236.4109 232.8504 232.6916 232.9683 232.9168 232.8564 232.8257 232.8726 232.8249 232.8924 233.0661 233.0585 233.3085 233.0792 233.4134 233.878 231.2554 233.4844 232.7494 232.876 232.7053 232.4054 232.9476 233.104 234.5926 233.9736 233.4979 235.0921 236.5331 237.8649 238.7379 238.7828 238.6987 238.2549 238.6573 239.2174 240.1315 241.637 242.5162 243.1785 243.8991 244.8328 245.7305 246.8716 247.7701 248.9343 249.6804 249.7377 250.2009 250.509 251.4829 252.6862 254.2625 255.2987 255.7746 254.2266 253.3569 252.396 251.4166 249.3745 250.256 249.4492 250.0645 251.1282 251.7271 253.5973 255.594 257.5778 258.7909 260.2724 261.5853 262.6749 263.4847 264.1559 264.0431 263.8236 263.4939 264.0153 264.5205 265.6794 265.4554 265.3131 265.7822 265.4864 265.1141 264.7725 264.657 264.6571 264.0483 264.6821 265.9919 266.6045 265.5591 265.6661 267.0387 268.8211 270.3456 271.8022 272.725 272.8721 272.3753 270.1216 268.6403 266.7961 265.9513 265.5919 264.1042 263.0431 262.0878 259.9248 259.4416 259.8483 260.2218 259.5754 259.0763 258.2329 257.412 -9999 +-9999 281.9923 285.0658 287.6254 290.3999 292.9247 294.9908 295.1478 295.9227 296.1449 297.4822 299.2843 301.1402 303.1018 304.3207 304.6488 305.4487 306.2732 307.0556 308.1112 308.4381 308.5326 308.2798 307.6303 306.8564 306.2376 305.4126 304.8705 303.3113 302.3531 301.1311 300.5663 299.0711 297.9016 296.8301 295.9894 294.3074 290.8185 289.262 288.2084 289.3806 291.0371 291.5238 291.9396 292.0785 292.1873 291.7382 291.4147 290.8248 289.4734 289.2595 290.1922 291.9411 293.2506 293.9195 294.1174 292.2756 290.9221 291.041 291.2621 291.3059 291.1699 289.9594 290.2076 290.9302 289.2923 289.5189 289.1063 288.894 287.5024 286.7643 287.0916 287.0033 287.5757 286.3405 284.3208 282.5729 283.0388 283.9356 283.176 282.56 282.3956 281.7809 278.3545 276.9301 276.2518 274.7455 271.4015 267.5038 265.6763 265.2054 264.2285 263.7527 264.0055 264.1438 262.0057 263.7145 263.5597 263.5428 263.5476 265.7219 273.6352 274.7449 275.8712 276.2279 275.9473 274.8432 276.1184 276.3575 278.9005 282.7164 285.9226 288.927 289.0886 290.61 292.0371 293.0175 291.0244 285.4121 282.4964 282.3391 284.7349 285.8711 285.6695 283.9259 280.0844 280.3781 281.8474 281.3457 286.1477 288.6836 290.453 292.3919 294.2056 296.3588 298.0901 300.2362 302.3538 303.2318 304.8992 306.8224 307.9747 307.8425 308.5564 308.7413 308.0173 306.2691 304.936 303.4843 302.4413 301.3965 300.7062 300.1901 299.6475 299.3677 299.0409 299.2403 299.1947 298.8678 298.1665 297.6399 297.6274 297.83 298.2341 298.2106 297.2688 297.874 298.4587 298.2355 297.4139 296.2433 295.0512 293.6877 291.8706 290.2861 288.8473 287.6687 285.8485 284.4647 284.526 285.6209 287.0219 286.4485 285.3737 284.3164 284.0495 282.9506 281.2707 279.9799 278.1381 276.7302 275.1434 272.3578 265.671 264.9819 267.8148 269.0878 270.0678 271.3033 272.4042 271.3928 271.8751 274.62 275.0178 273.903 272.03 270.0711 269.9255 267.125 263.2627 260.1172 256.7216 254.2146 252.6572 250.2328 250.5691 249.0785 243.5685 242.0364 241.1812 245.7976 247.4291 249.0876 251.1948 252.5916 255.1311 257.3383 257.939 258.0183 256.9794 253.9777 245.943 240.9885 240.3423 240.8016 240.6634 242.1971 243.9194 244.6078 247.4783 249.5232 251.4442 252.5746 253.6473 254.4735 255.1302 257.9178 259.4016 260.8909 260.5357 257.7188 254.3872 251.2543 247.5277 244.1767 244.6951 247.5925 253.0744 255.2228 256.7087 257.9328 258.7794 259.4397 259.8442 260.768 261.7573 262.8259 264.1104 264.8421 265.7343 266.9671 267.8125 268.1978 266.5308 265.1503 263.3239 263.4846 261.2924 258.7331 257.9356 257.4421 258.93 262.5674 265.9242 270.0439 271.9843 274.2177 276.013 277.8962 279.3648 280.6089 281.1868 280.6322 278.1322 276.7956 276.4574 275.325 274.3654 274.0366 273.4878 272.8503 272.0953 271.9714 273.2442 274.3507 275.1136 275.6961 276.0411 276.3278 276.9124 277.3801 278.2693 278.975 279.0993 279.6165 280.4663 281.2675 282.0934 282.4857 282.0153 281.0106 277.2583 275.1894 271.1732 266.9492 265.1524 264.9238 265.0847 264.5699 264.0218 265.4067 266.8763 267.966 267.7681 266.7798 266.4672 266.6893 267.0975 267.2751 268.5452 269.2204 270.3208 271.3544 272.216 273.0118 273.3719 273.3051 272.9572 273.0794 273.1192 272.4922 271.3237 269.951 269.3719 268.9319 268.4445 268.4286 269.0642 271.0737 271.6278 271.1597 270.1158 269.1447 267.5371 266.4657 265.5127 264.2449 262.1613 259.719 258.8575 259.5322 260.0963 261.3702 262.0086 261.7556 261.4727 262.3757 261.8741 260.9149 259.3151 257.7132 257.4854 258.1166 258.1695 257.2804 236.5973 232.9458 232.772 232.8428 232.8869 232.8621 233.0193 232.9098 232.8973 233.0912 233.1478 233.1881 233.2243 233.1768 233.5116 232.9417 231.3292 233.385 232.7418 232.7823 232.8607 232.3961 232.6347 232.9815 233.0847 233.1671 234.1193 236.8387 237.4622 238.3651 239.3197 239.3629 238.6387 237.9591 238.2162 238.7122 239.3014 240.8039 241.6876 242.7768 243.6698 245.2377 247.1478 247.7843 248.05 247.9135 248.0522 248.4006 249.1781 250.1627 251.075 252.5748 253.9051 254.6363 254.7974 252.7413 251.3583 249.6549 248.8294 247.1413 245.9467 249.0832 250.3758 250.085 252.58 254.8222 256.5912 258.1818 259.7687 260.6885 261.7744 262.7213 263.0724 263.2586 263.0652 262.8849 262.2838 262.8584 264.0335 264.5086 264.5739 264.0874 264.0905 264.1458 264.1724 263.0492 263.0347 263.1994 263.6484 264.7409 266.2612 266.6362 265.5402 265.3446 266.1779 268.0668 269.5645 270.8762 271.6017 271.9418 272.0052 269.7592 268.1507 267.2089 267.0602 265.8662 265.0217 263.6682 262.1504 259.7687 257.9907 258.5385 259.3693 259.5909 259.7905 258.9133 258.0346 -9999 +-9999 280.3317 282.9379 284.7378 287.0661 289.2857 290.736 290.3296 290.1221 291.554 295.3835 297.3036 300.5059 302.3134 303.8235 304.6162 304.9555 306.204 307.3166 308.6418 308.9301 308.487 308.047 307.6484 307.1782 306.5323 305.9279 305.2753 303.8086 303.1214 302.0588 301.4502 300.7334 300.0533 299.0057 297.0479 295.5509 292.5411 291.0478 290.098 288.1942 287.3123 288.7604 290.1698 290.5384 290.7774 290.9856 290.6631 290.0858 289.0049 288.6305 289.1666 290.7641 292.0223 292.6503 292.4824 291.1696 289.8152 288.8019 289.811 289.8961 289.286 288.1611 289.0271 290.0168 287.7474 287.4881 286.7916 286.1666 285.0932 284.652 284.9335 285.3912 285.0061 284.9348 283.5765 281.9862 280.8273 281.7133 281.4473 281.3306 281.4291 280.1203 278.6349 278.6628 278.3773 277.1008 274.4727 270.9936 268.5854 267.4019 264.8331 263.9211 263.4892 263.9255 261.9701 263.7018 263.4544 263.8604 264.4023 266.2976 267.9083 268.4408 269.1635 271.1426 275.055 277.9359 280.7564 282.1372 283.0953 287.0718 288.6685 290.0636 290.9798 291.7494 292.6665 293.1651 292.1928 288.8286 285.471 279.7363 282.1329 283.8196 283.1492 280.0726 276.261 279.0904 279.7604 281.6201 289.2599 290.9166 292.4116 294.1085 295.7706 297.1062 297.8347 299.5887 302.5038 305.0481 306.3604 307.9469 308.8488 308.6177 309.1901 309.4155 308.982 307.6186 305.7099 304.346 303.115 301.8997 300.8371 300.1756 299.7384 299.8133 299.4669 299.3688 299.1841 297.8595 297.7618 297.7031 297.5618 297.4778 297.5945 297.557 297.8251 298.6036 298.5647 298.3843 297.9739 297.1619 295.6703 294.0578 292.6036 290.28 288.9337 287.5622 285.9206 285.4096 285.5406 286.9234 287.6008 287.4601 286.543 285.508 284.3565 282.7117 280.8434 279.1742 277.3292 275.8367 273.3294 270.2239 265.6653 267.86 269.4706 271.4724 272.3762 273.0383 274.3833 274.241 273.9466 276.6214 276.386 275.5138 273.0412 270.5318 270.3041 269.8604 264.5844 262.7783 259.1589 258.0203 255.3257 252.0737 250.5691 249.0785 243.5685 242.0364 241.1812 245.7976 247.4291 249.0876 251.1948 252.5916 255.1311 257.3383 257.939 258.0183 256.9794 253.9777 245.943 240.9885 240.3423 240.8016 240.6634 242.1971 243.9194 244.6078 247.4783 249.5232 251.4442 252.5746 253.6473 254.4735 255.1302 256.3715 257.4681 259.446 258.7321 255.4306 252.0051 247.618 243.8424 243.693 246.762 249.2062 253.4729 254.7249 255.5625 256.6883 257.0222 257.4866 258.3683 259.5055 260.3225 262.4619 263.2151 265.1014 265.6423 266.9763 267.9908 266.2442 264.349 262.3862 261.4259 260.4544 258.5421 257.3236 256.1855 258.2777 262.156 265.3536 267.676 272.2787 273.8275 275.722 277.4195 278.7579 279.8956 280.7951 280.5676 279.658 276.7482 275.5574 274.7292 273.9242 273.2425 272.9183 272.6921 271.5011 271.4467 271.1648 272.5733 273.4091 273.8913 273.9876 274.4218 274.9299 275.8096 276.6477 277.1648 277.5754 277.9641 279.3405 279.9446 280.678 281.4069 281.8471 281.6175 281.1985 277.3377 275.2871 272.5567 268.599 265.1384 262.5225 263.1404 262.8228 262.6591 263.4758 265.8412 267.0601 266.7647 265.7401 265.9015 266.0517 265.9246 266.3385 269.0549 269.6623 270.8456 271.5507 272.6001 273.1912 273.5124 272.8817 272.3139 272.4019 272.2299 272.1999 271.8769 271.4078 270.8013 270.4106 270.009 269.2806 270.4704 271.2113 271.7773 270.7453 269.6996 269.192 267.7028 266.4215 265.3362 264.2503 261.1654 260.4532 260.0021 259.7395 260.2789 260.938 260.8392 260.266 259.6453 259.8171 259.7038 259.0139 257.3947 256.6234 256.6295 256.5934 256.8644 254.753 236.7944 232.6695 232.743 232.8415 232.539 232.6339 232.7228 232.8106 232.6852 232.8222 232.8516 233.0722 233.2001 233.1944 233.4839 232.4277 231.4775 233.191 232.2505 232.6028 232.7326 232.4884 233.2963 233.1194 234.0348 235.9813 236.6185 237.5625 238.0514 238.864 239.2769 239.2351 238.5105 237.8979 238.0975 238.2958 238.9742 240.4576 240.9666 242.1524 243.0399 244.7159 246.5841 247.7838 247.5206 246.7531 246.9612 247.5833 247.956 249.0017 250.1952 251.4613 252.3969 252.9747 252.9832 249.8656 248.1092 247.33 245.8963 246.2963 247.7085 248.9505 249.7388 250.4519 253.7301 255.3328 257.0751 258.5815 260.0916 261.1538 261.8146 261.9655 261.9421 261.7408 261.5774 261.5374 261.5961 262.3441 263.039 263.4608 263.1871 263.2918 263.1583 262.9326 262.3976 261.8026 261.7554 263.0188 263.9189 264.8501 266.1975 267.0856 265.5957 264.9542 265.2819 266.9316 268.6975 269.752 270.4634 270.8869 271.3259 270.0819 269.1264 268.0583 266.9371 265.7606 264.4633 263.1194 260.6763 258.8687 257.6984 257.9948 258.3241 257.9613 257.4277 256.8159 255.9576 -9999 +-9999 276.2589 278.2571 278.012 279.6568 284.2109 288.8641 292.1958 294.7668 296.4038 298.8476 299.5813 299.7992 301.6776 303.6553 304.3844 305.0358 305.5026 306.707 308.5318 308.5768 308.1404 307.4294 307.2744 307.2732 306.8736 306.2574 305.7538 304.7529 303.9319 303.4543 303.2367 302.6829 300.7057 299.3544 297.303 296.8762 296.687 295.3529 293.8914 291.4381 288.7857 287.2582 286.6583 287.6756 288.3675 289.5872 289.4455 289.4395 288.777 287.7267 287.6159 289.4292 290.6514 291.0978 290.6751 290.5473 289.4686 288.1615 288.2585 288.4229 287.4316 286.9366 286.9968 286.863 286.5103 284.6093 284.0964 283.4985 283.1578 282.2477 282.9546 283.9637 283.4564 283.2331 281.9215 280.566 279.3313 280.1702 280.5172 278.9574 279.2516 278.5779 276.8844 277.7406 277.853 276.9885 274.8931 271.5909 270.2814 268.8705 266.2146 263.3249 263.5916 261.4366 263.643 263.4535 263.4429 263.7705 264.8607 268.0745 271.5275 273.3391 274.5084 277.1762 278.8013 280.213 282.6305 284.6661 286.2899 289.7808 289.6935 290.8831 291.9043 293.0598 293.5544 293.8071 292.9306 291.1828 288.8619 281.5593 278.909 281.6445 279.8768 277.3501 278.7039 282.0071 283.8957 286.463 291.305 292.7881 294.2277 295.9114 297.781 299.3306 299.8381 300.6025 301.2234 303.9614 306.1964 308.726 309.5194 309.4089 309.6669 310.0386 309.0486 308.6687 306.3698 304.9709 303.408 302.3364 300.9836 300.2146 300.0214 299.0226 298.3392 298.8044 298.7697 298.4103 297.6646 297.2226 296.7328 296.6942 296.6697 296.599 297.7893 298.141 298.3942 298.3721 298.1941 297.6599 296.4962 295.218 293.6497 290.9661 289.6867 288.0898 286.674 285.8706 286.5556 288.0612 288.7173 288.6299 287.778 285.508 284.3565 282.7117 280.8434 279.1742 277.3292 275.8367 273.3294 270.2239 265.6653 267.86 269.4706 271.4724 272.3762 273.0383 274.3833 274.241 273.9466 276.6214 276.386 275.5138 273.0412 270.5318 270.3041 269.8604 264.5844 262.7783 259.1589 258.0203 255.3257 252.0737 253.543 251.5628 246.0887 242.0454 241.1671 241.9438 242.7308 247.1959 248.6228 251.0028 253.561 254.8134 254.7448 255.1078 254.1193 251.19 245.9739 241.0311 239.517 240.7412 240.621 240.8627 242.3188 243.133 245.408 247.4805 249.352 251.1322 251.8025 252.5001 253.2445 253.9148 255.829 258.1506 256.8629 254.5184 249.3211 243.774 243.1784 246.4667 248.3043 250.641 253.7223 254.5049 254.9001 255.3009 256.3469 258.115 259.2569 259.2257 260.6369 263.3527 264.42 265.1271 266.3391 267.4 267.8707 264.9337 263.5533 260.4649 257.7162 257.2689 256.5931 256.0444 254.0424 259.1613 261.559 264.3641 267.996 273.6231 274.7218 276.6741 278.5281 279.9244 280.5073 280.545 280.0201 278.293 275.2386 274.4468 273.2229 272.8221 271.9009 272.094 271.8293 270.981 270.2089 270.7032 271.8087 272.5135 272.9236 272.9022 273.4438 273.825 274.747 275.5317 276.0771 276.542 277.758 278.1821 279.0312 279.9057 280.5246 281.0163 281.0475 280.4459 277.6242 275.6217 273.4366 270.9424 267.9604 264.8191 260.9661 261.9458 261.7132 261.6642 263.4302 265.1481 265.0095 264.9392 264.9945 264.5771 264.6287 266.1007 268.728 269.8564 270.7769 271.6929 272.677 273.2401 273.0388 272.2363 271.4358 270.9718 271.1793 271.6993 272.0612 272.2787 271.8073 271.6581 271.3681 270.7101 270.6942 271.1575 271.2351 270.3535 269.7977 268.1429 267.184 266.1251 265.086 264.1524 261.6711 260.6179 260.4831 260.5165 260.9512 260.8106 259.2817 258.3246 256.7093 256.3674 256.8017 256.7434 255.3084 254.5208 254.3691 253.9352 253.3734 252.132 235.9336 232.7648 232.6751 232.6712 232.7909 232.7511 232.8584 232.9729 233.0334 233.0244 233.167 233.2278 233.3363 233.4539 233.5452 232.8445 231.616 232.1523 233.0051 232.9003 232.7483 232.6917 232.9771 234.0889 236.0204 238.2291 238.4419 238.2912 238.2717 238.6158 238.6621 238.7479 238.2762 237.7631 237.7566 238.0808 238.7104 239.3508 240.4841 241.25 242.4567 243.7699 244.8189 245.6808 245.4859 245.3531 246.1735 246.6261 247.4156 247.8497 248.7878 249.9467 250.7782 251.183 250.289 246.2658 245.5398 243.836 245.6665 246.933 247.9423 248.9864 250.6215 251.7132 254.5547 255.6164 257.5952 258.8477 259.9661 260.5492 260.9496 260.9789 260.7738 259.544 259.7278 259.9378 260.8841 261.9551 262.3978 262.1958 261.8624 261.8084 261.741 261.4853 260.4919 260.6695 261.469 262.7901 264.1095 265.2834 265.9689 267.536 265.5987 264.0936 264.3481 265.7817 267.385 268.0625 269.0548 269.8018 270.279 269.4362 268.8213 267.7982 266.5382 264.6485 262.8369 261.3331 260.2112 259.4124 256.5885 257.2053 257.0446 256.6434 256.3267 256.0201 255.8271 -9999 +-9999 271.9951 275.8285 281.8568 286.7178 290.6942 294.1856 296.5148 297.8474 299.414 301.4963 301.6912 301.2043 302.276 303.9051 305.061 305.4864 306.109 306.7255 307.8949 307.9922 307.5825 306.6334 306.4792 307.1642 307.1336 306.7314 306.0485 305.555 305.2658 304.9862 304.5435 303.2465 301.6381 299.7646 299.1418 298.9186 299.4488 299.2714 298.188 295.6856 292.8215 290.3898 288.3531 286.459 285.9033 286.8017 286.7405 287.3172 287.1271 286.6375 287.183 289.063 289.6772 289.0786 289.275 289.1066 288.2218 287.144 286.7194 286.9848 285.6546 284.7197 284.0329 282.5998 283.9845 283.2691 281.5994 280.2464 280.2842 279.1635 280.3898 281.6703 281.7253 281.0235 280.4377 278.8351 278.8262 278.7676 277.8501 276.9886 277.157 276.3735 275.5267 275.8427 276.1591 275.3455 273.6584 271.613 270.7078 269.6205 266.9505 263.1251 263.2691 262.1851 263.6487 263.352 263.3727 263.5514 268.3876 272.2456 275.8 276.1427 277.5963 280.1696 281.409 282.4184 284.3484 285.9516 287.6753 291.4201 291.5924 291.3453 292.5719 293.5844 294.2589 293.7206 292.416 291.1603 289.4944 283.471 278.5008 278.1401 276.658 278.2913 281.4369 284.1333 286.3983 288.6025 291.6926 293.8094 295.6347 297.7536 299.2317 300.5488 301.7548 303.2059 304.3071 304.6073 305.6659 308.0588 309.8153 310.3088 310.3918 310.4359 309.7009 309.0007 306.5028 304.6285 303.4525 302.3506 301.6396 300.3601 300.0049 299.3015 298.3392 298.8044 298.7697 298.4103 297.6646 297.2226 296.7328 296.6942 296.6697 296.599 297.7893 298.141 298.3942 298.3721 298.1941 297.6599 296.4962 295.218 293.6497 290.9661 289.6867 288.0898 286.674 285.8706 286.5556 288.0612 288.7173 288.6299 287.778 285.4997 283.5791 281.5659 279.564 278.1651 275.9422 273.2146 270.1194 267.3229 269.4729 270.6464 271.848 273.4904 274.3555 275.0384 275.7596 276.4762 276.3791 278.3883 277.9572 276.6742 274.7884 273.1082 270.1411 269.7921 267.5832 265.9089 259.4909 256.6262 256.721 257.0301 256.7295 253.9416 248.6464 245.5888 241.9055 241.1612 241.5249 242.7506 246.1457 249.3264 250.7485 251.0081 251.561 251.9604 250.9952 248.2138 243.7426 241.1992 239.9205 240.8095 240.7223 240.8011 241.6299 242.6816 243.3172 244.607 246.6635 247.8499 248.0307 248.5543 250.2588 252.0559 253.5868 255.2498 254.2151 251.1048 243.9625 242.9013 245.0113 247.0609 248.5011 250.2756 252.0933 252.5719 253.7205 255.3658 256.4418 257.3608 258.9762 259.4625 260.7021 263.8398 265.4113 266.3097 267.0753 267.655 266.895 264.5735 261.5283 259.4391 255.6329 255.1778 254.4401 253.7669 257.3775 260.6665 264.8539 268.4196 270.8071 274.7247 276.661 277.8155 279.1692 280.0225 280.1248 279.5568 278.9773 277.1978 273.8831 273.201 271.9295 271.2063 271.3843 271.0985 270.9145 270.1028 268.9484 269.6819 270.788 271.4609 271.9829 272.5377 272.515 272.7226 273.5247 274.4279 275.0881 276.267 276.9142 278.1219 278.5182 279.0657 280.1329 280.683 281.0558 280.293 277.2827 275.6975 273.3478 271.7048 270.1213 267.6337 265.0984 262.357 259.5115 260.6976 261.8186 263.2259 263.3385 263.7581 263.4143 263.5626 264.6713 265.8095 268.673 269.9708 270.5321 271.3347 272.0711 272.7888 272.2609 271.508 270.7543 269.9996 270.3733 271.1409 271.8934 272.3694 272.5826 273.0083 272.8615 272.2694 270.543 270.7032 270.4279 269.7096 268.9586 267.4342 266.6277 265.3826 264.2909 262.9233 261.5966 260.8387 260.8578 261.5656 261.7376 260.9141 258.7646 255.4987 253.4463 253.0674 254.1849 253.8665 252.6948 251.6369 251.1953 250.638 250.2146 248.9841 235.3253 232.624 232.5653 232.4817 232.3524 232.3799 232.6091 232.6096 232.5512 232.7319 232.8141 232.8306 232.9919 233.139 233.3292 233.3738 231.3995 232.9326 233.0305 232.6194 232.4627 232.4997 233.0852 235.0679 237.5792 239.1005 239.0776 238.9621 238.629 238.514 238.3526 238.3263 237.7883 237.4651 237.6588 238.2487 238.985 239.3273 239.5531 240.0761 241.7081 242.0266 243.4415 243.9397 244.2715 244.7551 245.6255 246.1062 246.6581 247.311 248.158 248.9663 249.0995 248.992 246.8702 243.6128 243.5703 245.708 247.5245 249.0007 249.5914 250.8862 252.2986 253.7136 255.2854 256.4234 257.858 258.8317 259.4501 259.7031 259.6874 259.5487 258.9984 257.7327 258.421 259.3773 260.3976 261.2691 261.3313 260.8615 261.1184 260.6678 259.9507 259.3713 259.1588 260.1229 261.4763 262.8112 264.2867 265.1672 267.087 267.6681 265.8504 264.1308 263.5592 264.2756 265.8722 267.0506 268.2315 268.6855 268.5725 267.8293 267.6276 267.3085 266.0745 264.8377 262.6243 262.304 261.1326 259.4864 255.855 256.0284 256.1675 256.0853 256.1847 256.2719 255.9377 -9999 +-9999 271.1902 279.6536 284.2569 288.2525 291.9034 294.2311 296.4169 298.433 300.534 303.1352 303.6668 303.5077 303.4709 303.902 304.9991 306.0456 306.8269 307.1288 307.2655 307.1478 306.6336 305.6925 305.9459 306.9167 307.4327 307.1627 306.4979 305.8679 306.2288 306.2018 305.925 304.5174 302.7661 301.8256 301.3513 301.2368 301.3576 301.0174 300.4301 299.5405 296.791 294.5193 291.7747 289.5204 286.2879 284.7674 284.9991 284.9793 285.3955 285.2641 285.7748 287.2031 287.5404 286.8556 286.224 286.3751 286.0274 285.3308 284.3682 284.9949 284.0181 283.4029 281.9042 280.9814 280.7876 280.8106 279.6679 277.0888 276.4668 275.8652 277.6704 278.3896 279.5974 278.8036 278.459 278.233 276.1875 276.0406 276.1351 275.7603 274.508 273.6661 273.1294 273.3635 273.1425 272.9153 272.2507 271.4385 271.1314 270.1795 266.4473 263.0369 263.6116 263.2374 263.157 263.4042 263.1483 265.7949 270.2116 273.8694 278.2786 279.2898 279.8635 281.4046 283.9091 284.9407 286.3817 287.718 289.1897 292.6207 292.9764 293.2155 293.4881 294.482 294.3385 293.4016 292.0602 290.1978 285.6372 283.4754 281.5761 276.9843 275.0576 280.2413 282.7851 284.1333 286.3983 288.6025 291.6926 293.8094 295.6347 297.7536 299.2317 300.5488 301.7548 303.2059 304.3071 304.6073 305.6659 308.0588 309.8153 310.3088 310.3918 310.4359 309.7009 309.0007 306.5028 304.6285 303.4525 302.3506 301.6396 300.3601 300.0049 299.3015 298.3383 296.3439 296.0569 296.674 296.4822 296.838 297.2445 297.3199 295.9193 295.9737 296.5258 297.4336 297.2946 297.5688 298.064 297.7138 296.7663 295.8794 295.3986 292.103 290.6299 289.1179 287.7495 286.508 287.2552 288.8589 289.3612 289.0179 288.2811 284.7745 282.6744 280.5322 278.315 275.9924 272.5916 270.1812 268.006 269.2367 272.1465 272.9301 275.001 275.8749 276.3002 276.9835 277.6509 278.0209 278.3711 279.5316 279.0198 277.6326 275.9388 274.1439 272.9356 271.4566 268.7857 265.3435 261.4318 260.4498 260.4651 259.5828 259.7462 257.1095 252.4268 249.4402 246.6098 241.5935 240.8349 241.3612 242.0158 245.6015 247.6105 248.089 248.64 248.7395 247.9847 246.6635 242.9816 242.1379 240.4522 242.3352 240.8768 240.5503 240.8017 241.5547 241.9483 242.4098 243.3536 243.895 244.5664 245.2013 245.7435 247.9306 250.0632 251.91 249.5776 244.7912 243.9877 242.9153 244.0013 245.1858 246.2363 247.5998 251.5439 252.8083 253.0862 253.9375 256.2881 256.4124 259.1675 260.6745 262.1788 264.3972 265.7552 267.0369 267.6493 267.5623 266.3166 263.9924 260.5068 257.7989 253.8115 253.3671 251.9309 255.594 258.2077 262.6985 266.7078 269.2157 271.3322 274.908 276.5831 278.2054 279.1253 279.7521 279.3553 278.6016 277.4734 275.6836 273.0099 271.5692 270.5598 270.2746 270.3181 270.2102 270.0456 269.0755 268.1494 269.1589 270.0065 270.4756 271.5239 271.8151 272.058 272.2035 272.3245 273.2323 274.2796 276.5061 277.4892 278.7054 279.4694 280.1262 280.3293 280.7509 281.3494 280.0723 276.988 275.353 273.55 271.8135 269.9611 268.0465 265.5663 262.1354 259.6291 259.6992 260.9001 262.0561 261.9503 262.2909 262.2827 263.0049 264.238 265.4536 268.5141 269.7838 270.745 270.7263 272.1906 272.1144 271.1548 270.2552 269.9116 268.8705 269.7888 270.6713 271.5831 272.3081 273.1089 273.5037 273.5782 273.1919 271.0717 270.299 269.6865 269.1227 268.8011 267.4954 266.2525 265.2297 264.4355 263.736 261.8367 261.1297 261.4726 262.2943 262.6155 261.4013 259.3563 255.2064 251.4383 248.4654 248.9584 248.4792 247.4972 246.3903 246.8542 247.1795 246.6397 245.7093 234.615 232.5167 232.1028 232.1564 232.2469 232.3212 232.4789 232.5781 232.7496 233.2005 233.1218 232.8439 232.9642 233.0297 233.1481 233.7114 231.285 233.1173 232.7615 232.5772 232.3379 232.4568 232.9655 235.6105 238.9521 239.577 239.2579 239.1658 239.1241 238.6578 238.1647 237.9745 237.3294 237.6933 238.1123 238.6653 238.7561 238.694 238.7715 239.741 240.2388 241.4602 242.6593 243.1378 243.4789 244.5789 245.1401 245.6143 246.0049 246.4989 246.6945 246.9684 247.0956 245.6612 243.4557 244.2168 245.3198 247.4454 248.7001 250.0277 250.7613 252.0542 253.1653 254.6302 256.9502 257.5557 258.2746 258.725 258.8721 258.5888 257.7851 257.2757 257.0518 257.4446 258.6234 259.6103 260.2377 260.1124 259.9041 259.5509 259.3167 258.7189 258.2079 257.8737 257.9756 258.6047 260.0062 262.4717 264.2416 265.2614 266.867 267.5256 265.9241 264.4073 263.2256 263.2654 264.8906 266.0775 267.1497 266.9276 266.4933 266.1428 267.6276 267.3085 266.0745 264.8377 262.6243 262.304 261.1326 259.4864 255.855 256.0284 256.1675 256.0853 256.1847 256.2719 255.9377 -9999 +270.4673 270.3462 279.5419 283.534 286.2482 289.0148 291.5764 294.9955 298.0083 300.3378 303.3593 304.2118 304.4565 304.5501 304.6038 305.5893 306.5502 306.744 306.9113 306.2469 306.1361 305.472 304.5885 305.5785 306.1607 306.2974 306.9704 306.7273 306.4286 306.6675 306.9583 306.8639 306.0068 304.9404 303.9525 303.2375 303.0029 302.8527 302.3504 301.8047 300.9319 299.4364 297.2708 294.8919 291.7805 289.256 285.7376 284.7952 283.9425 283.2353 283.253 283.3708 283.544 284.0135 284.406 283.642 284.2957 283.7598 282.961 282.5329 282.2339 280.8457 280.2536 280.2413 280.2422 280.2393 280.2591 276.0696 275.8643 275.2512 273.1913 274.1253 274.7022 276.3098 276.0995 276.1538 275.0117 274.4265 274.3081 273.0907 271.8505 271.7543 270.0914 269.3196 269.3594 269.1938 268.9099 268.7421 268.8197 269.413 268.9127 266.3882 263.1383 263.2773 261.0653 263.2756 262.9813 263.1483 265.7949 270.2116 273.8694 278.2786 279.2898 279.8635 281.4046 283.9091 284.9407 286.3817 287.718 289.1897 292.6207 292.9764 293.2155 293.4881 294.482 294.3385 293.4016 292.0602 290.1978 285.6372 283.4754 281.5761 276.9843 275.0576 280.2413 282.7851 284.53 285.725 288.3419 291.1147 293.1585 295.3583 297.4732 299.3493 300.8796 302.1802 303.8568 306.1176 307.3184 307.042 308.584 310.7016 311.4933 311.1553 310.7863 309.7445 308.817 305.2759 303.4337 302.4422 301.7978 301.3738 300.3529 300.4338 299.7525 298.387 296.6 294.9939 294.3461 294.8567 295.35 296.645 297.0667 296.6958 296.1403 295.2407 295.8276 295.9921 296.0942 296.692 296.4414 296.121 295.7565 295.0683 292.393 291.2906 289.9247 288.5403 287.1805 287.9197 289.3442 289.9329 289.2233 286.1649 283.9975 281.655 279.357 277.2018 274.5915 271.2632 270.1814 271.2348 271.8546 274.6295 275.9672 277.4551 278.1085 278.4415 279.1477 279.7586 279.9393 280.2834 280.652 280.1773 278.8369 277.3984 276.6383 275.5006 273.1287 269.3372 268.5222 261.9786 263.4448 262.5938 261.991 262.1465 259.7062 255.8721 253.7548 250.588 241.706 241.3441 241.3 241.3922 241.6155 244.6793 245.755 245.9427 245.7894 244.1525 242.8213 242.2126 240.5006 240.8071 240.6348 240.2628 240.1807 240.3729 241.2712 241.3065 241.5771 242.129 242.2239 242.4944 243.0069 243.862 243.9631 244.3414 243.9014 244.0134 242.2315 242.0839 243.9501 245.3338 245.654 245.4614 246.9043 250.5969 251.25 252.1478 254.2989 254.2074 258.7179 259.921 261.3416 263.058 265.1956 266.6125 267.7113 267.981 266.5066 265.1886 262.2882 260.5601 256.6099 252.3626 251.3303 254.9434 256.8951 260.8092 264.2568 266.6536 269.1913 271.1459 274.592 276.3359 277.6521 278.6637 278.6265 278.2609 277.6036 276.5068 275.1534 271.2347 269.8551 269.3488 269.467 269.0394 268.8347 268.9061 268.2581 267.6195 268.051 268.4553 270.0023 270.8606 271.4326 271.5354 271.479 271.7941 272.2136 272.9987 275.9199 277.1411 278.4399 279.2394 280.3415 280.8732 281.0631 281.299 280.2979 276.8662 274.8027 272.7865 270.9258 269.5272 268.013 265.5264 261.9896 259.2286 258.584 259.8234 260.4661 260.5261 260.9085 261.2766 261.8155 263.5368 265.3381 268.5759 269.4683 270.4218 271.1123 270.1729 271.0961 270.3477 269.3209 269.0533 267.5826 268.6802 269.8381 270.9503 271.8902 272.6983 273.2305 273.2055 272.7196 271.4941 270.5001 269.983 269.4068 268.6847 268.2133 266.6808 265.8725 265.2825 264.4953 262.1432 261.5815 262.0634 263.0768 263.5215 262.9224 260.7346 257.722 252.9622 250.827 249.1326 246.6561 244.1078 241.6417 241.2916 242.0306 241.1185 241.5609 234.4381 232.895 232.2763 231.9109 232.2477 232.4265 232.6402 231.7048 231.2122 231.1985 231.3928 231.2062 231.2 233.4133 233.0667 233.323 231.356 231.7422 232.5701 232.5243 232.4101 232.3873 233.1522 235.7863 238.8855 239.8809 239.7738 239.1321 239.1066 238.6255 237.9049 237.4968 236.9175 237.6916 237.9514 237.8094 237.7359 238.355 238.8279 239.3111 239.9563 241.253 242.0636 242.7649 243.7105 244.0798 244.6686 244.8956 244.9331 244.8512 244.8633 245.0266 243.3852 242.1415 242.0413 245.6387 246.7845 248.0544 248.7064 249.6516 250.6568 251.949 253.1653 254.6302 256.9502 257.5557 258.2746 258.725 258.8721 258.5888 257.7851 257.2757 257.0518 257.4446 258.6234 259.6103 260.2377 260.1124 259.9041 259.5509 259.3167 258.7189 258.2079 257.8737 257.9756 258.6047 260.0062 262.4717 264.2416 265.2614 266.867 267.5256 265.9241 264.4073 263.2256 263.2654 264.8906 266.0775 267.1497 266.9276 266.3033 266.1428 266.2442 266.1547 264.5722 264.1694 263.3883 262.4695 261.326 259.8399 256.7007 254.1359 254.7469 255.1939 255.7586 255.7461 255.339 -9999 +268.6732 273.9957 279.1604 282.0007 285.122 288.9382 291.9929 295.1085 297.9347 299.8087 302.5512 303.3435 303.6614 304.4749 304.9322 305.6442 305.9819 306.1988 305.9783 305.1345 305.4122 304.491 303.7579 303.9135 304.5667 305.3054 306.0283 306.6319 306.538 307.0124 307.4032 307.9769 307.5678 307.0315 306.1563 305.2493 304.8606 304.1097 303.4668 302.7115 301.5456 299.8915 297.9559 295.9194 293.0966 291.0643 289.6104 288.1915 286.0595 285.0453 284.3213 282.9851 282.3202 281.6476 281.4315 281.3692 282.1815 281.1279 280.3449 280.2702 280.2428 280.2453 280.2425 280.2422 280.2416 280.2396 280.2529 279.5613 281.3116 280.2001 273.1913 274.1253 274.7022 276.3098 276.0995 276.1538 275.0117 274.4265 274.3081 273.0907 271.8505 271.7543 270.0914 269.3196 269.3594 269.1938 268.9099 268.7421 268.8197 269.413 268.9127 266.3882 263.1383 263.2773 261.0653 263.2756 262.9813 263.5779 268.0102 270.718 274.5638 279.57 281.281 282.6682 283.6505 284.5859 286.3471 287.6657 289.5258 290.3914 293.1427 293.4661 293.9321 294.3055 294.1808 293.7291 292.9865 291.1459 289.7296 286.7713 285.084 282.2031 276.928 273.9206 279.3665 281.0481 283.5724 287.4088 289.1689 293.1557 294.3262 295.0602 296.3293 298.4131 300.3532 302.1688 303.6718 305.2346 308.0779 309.3312 310.2701 311.5743 312.7057 312.0549 310.9505 309.3403 308.1456 304.3583 302.6336 300.7144 300.467 300.3034 300.4913 299.8998 298.7738 297.8321 295.6692 294.3756 292.6917 292.8387 294.0332 295.4278 295.9695 296.0816 296.0183 295.6499 295.0937 294.4364 294.384 294.2189 294.1896 293.8416 293.6571 293.4076 291.5204 290.5256 289.971 288.6424 288.1218 288.7881 289.8613 290.5157 289.6829 285.7996 284.1369 282.3232 279.6033 276.017 273.6693 272.5869 273.5857 272.6587 274.4083 277.3536 278.8201 279.9933 280.8758 280.6971 280.7652 280.7464 280.7334 281.1552 282.0283 281.4783 280.3956 278.6196 277.7128 276.3646 274.1248 273.0721 271.7949 265.3934 265.8034 264.5111 264.1697 264.2766 261.7863 259.3283 256.719 252.4331 243.0142 241.621 241.3104 241.0241 240.7944 241.0231 243.3189 243.1293 242.8605 242.2276 242.6244 241.6932 240.3384 240.7501 240.6694 240.3063 240.1538 240.2042 240.6595 240.9971 241.1451 241.2618 241.5717 241.8189 241.9184 242.2585 242.5898 243.2672 242.3231 241.7301 241.9333 242.6011 244.4553 246.7916 248.9392 248.3535 248.2215 251.3773 252.1378 253.3547 252.6558 256.2227 259.0998 260.5538 261.9816 263.5367 265.8816 267.0091 267.5867 266.6762 265.1767 263.7577 261.5872 258.2579 255.1579 250.2346 254.756 257.4466 260.0844 262.5008 264.6903 266.9625 268.7137 270.4673 274.0926 275.5413 276.6457 277.2779 277.3326 277.1949 276.8146 275.9779 274.4139 270.4983 269.1119 268.1846 267.5398 267.4792 267.5066 267.696 267.7423 266.8052 267.0338 267.6172 268.6746 270.3733 270.8745 271.0171 271.1689 271.1046 271.8344 272.7072 275.2458 276.4265 277.3696 278.5387 280.0982 280.994 281.2336 281.0716 279.8532 276.9002 275.2537 273.2069 271.8778 270.7767 269.3833 267.37 263.3169 258.4353 257.9641 258.6883 259.0363 258.9559 259.5176 260.2218 261.2122 263.0399 265.0695 267.8877 268.9042 269.59 270.2588 270.2099 269.2231 268.844 268.3921 268.3434 266.8571 268.1874 269.2226 270.2897 271.3032 272.2455 272.2039 272.1582 271.7743 270.9908 270.362 269.608 269.2115 268.6234 268.4669 266.7588 266.5674 266.1313 263.8377 262.6248 262.1794 262.6944 263.534 264.4646 264.1573 262.4481 259.6833 258.1398 254.6978 251.6285 251.3724 250.5271 248.9684 245.3345 241.4582 238.7842 236.7647 234.64 233.4439 232.516 232.1758 232.2186 232.2909 232.6498 231.206 233.1023 232.5753 232.5117 232.8042 232.6486 231.2338 231.984 233.3207 232.945 231.8675 232.0778 232.7222 232.4335 232.5464 234.8239 238.4416 238.8855 239.8809 239.7738 239.1321 239.1066 238.6255 237.9049 237.4968 236.9175 237.6916 237.9514 237.8094 237.7359 238.355 238.8279 239.3111 239.9563 241.253 242.0636 242.7649 243.7105 244.0798 244.6686 244.8956 244.9331 244.8512 244.8633 245.0266 243.3852 242.1415 242.0413 245.6387 246.7845 248.0544 248.7064 249.6516 250.6568 251.949 253.1015 254.5422 257.1548 258.1785 258.4821 257.9858 256.9171 256.6322 255.789 255.5229 255.7009 257.7467 258.7728 259.2334 259.0048 258.442 258.1901 257.8389 257.0916 256.1649 256.6369 257.0765 257.3391 258.2393 260.0576 262.3611 263.9549 265.0811 266.3847 267.3484 266.1572 264.6304 262.8931 262.5405 263.688 264.9413 265.517 265.4458 264.4562 264.5952 264.2794 264.2772 264.244 263.8647 263.282 262.0201 260.8532 259.6122 256.7949 254.3288 252.3297 252.8319 252.7556 253.8833 253.4944 -9999 +269.0867 275.8199 281.518 285.2251 287.6976 289.9295 292.2772 294.8527 296.8835 298.312 301.0145 301.7106 302.3286 303.6682 304.4389 304.9417 305.1088 305.5951 304.6256 303.2422 304.069 303.3759 303.1648 302.402 303.1133 304.0488 305.3661 305.6205 306.6868 307.1557 307.8608 308.6823 308.9303 308.4611 307.7506 306.9512 306.46 305.2892 304.3046 303.1236 301.614 300.2195 298.2005 295.9194 293.0966 291.0643 289.6104 288.1915 286.0595 285.0453 284.3213 282.9851 282.3202 281.6476 281.4315 281.3692 282.1815 281.1279 280.3449 280.2702 280.2428 280.2453 280.2425 280.2422 280.2416 280.2396 280.2529 279.5613 281.3116 280.2001 272.9487 272.4921 272.2024 273.0905 272.1313 271.9813 271.9535 271.8762 271.4418 269.7017 268.9637 268.1923 267.491 265.8991 265.659 265.1282 265.8344 265.1778 265.2142 265.7475 265.7523 264.0524 262.9256 263.2552 262.2735 262.9925 264.243 269.0417 271.9821 274.497 275.6915 280.4648 282.2484 283.4835 282.2845 286.2982 287.5522 288.4939 289.5941 290.6963 292.4395 292.2224 292.6183 292.9654 293.3421 292.9892 291.4382 289.968 287.8198 285.4765 283.6326 280.0147 274.7137 274.4536 278.8849 282.8077 285.4399 288.1631 290.6438 294.4127 295.7049 297.7253 298.8801 299.9366 301.1743 302.302 303.9923 305.6151 308.3784 309.0356 309.9992 311.0871 313.485 313.0056 311.2827 309.3808 307.7931 304.111 302.19 300.4659 299.9323 298.9057 299.1194 298.5839 297.1223 296.6653 294.2674 293.0943 290.8256 290.0378 292.9435 294.286 294.6849 294.7659 295.4648 295.6479 295.4458 295.2271 294.7729 293.8713 293.1921 292.4377 292.5032 292.3307 290.7154 290.0122 289.7064 289.1339 289.0325 289.9609 290.8333 291.5256 290.7292 286.7883 285.1178 283.2469 281.2598 279.198 277.7737 276.9519 276.1157 274.2514 276.0573 278.8726 279.4841 281.5392 282.4984 282.4818 282.5073 282.3157 282.0365 282.5471 283.3971 282.8689 281.7655 280.5298 278.8615 277.9488 276.8939 275.4333 273.4565 268.7099 267.0176 265.7908 265.7583 266.2598 264.6266 261.7079 258.0136 253.9043 247.0234 243.3318 241.4557 241.028 241.1581 242.7439 241.9516 240.8888 240.8652 240.5831 241.4717 240.3141 240.3353 240.476 240.6499 240.5425 240.4081 240.0475 240.3413 240.456 240.4487 241.0021 241.0256 241.0341 241.1671 241.5719 241.7142 241.3088 241.1949 241.5197 242.4459 243.54 244.382 244.6075 246.9508 249.3066 249.5373 253.0574 254.1127 255.5207 256.3445 257.6049 259.0601 260.6246 262.1501 263.6822 265.9016 266.8556 267.119 265.9223 264.1015 262.0814 260.4739 257.2751 253.2393 254.19 257.5554 259.4763 260.8289 262.6496 264.5747 267.0275 268.4317 270.1738 272.7592 273.6849 274.917 276.1738 276.0243 275.9259 276.0203 275.4065 273.4781 269.2781 267.9492 267.5839 266.9871 265.6664 266.3713 266.4505 266.6475 266.482 265.9319 266.4193 267.6759 269.163 269.601 270.1332 270.7419 270.6921 271.2698 272.408 274.5472 275.7067 277.0166 278.4875 279.9941 280.8915 281.2729 280.9758 279.6676 276.4468 275.2052 273.6362 272.6545 271.8099 270.8404 268.9802 264.7194 258.5014 254.5009 257.9427 257.702 257.8701 258.3849 259.2821 261.1561 263.076 264.7444 267.3504 267.9744 268.6539 269.0948 269.0309 268.3393 267.8865 267.4651 266.6179 267.1382 268.339 269.3977 270.4086 271.1174 271.1595 271.0943 270.8483 270.7175 270.5692 269.8606 269.1374 268.8908 268.5946 268.6506 267.7262 267.3802 266.7259 264.7336 263.0442 262.5046 263.3139 264.3803 265.2571 265.2051 262.4481 259.6833 258.1398 254.6978 251.6285 251.3724 250.5271 248.9684 245.3345 241.4582 238.7842 236.7647 234.64 233.4439 232.516 232.1758 232.2186 232.2909 232.6498 231.206 233.1023 232.5753 232.5117 232.8042 232.6486 231.2338 231.984 233.3207 232.945 231.8675 232.0778 232.7222 232.4335 232.5464 234.8239 238.4416 240.1085 240.3975 240.3011 239.2562 239.0259 238.3433 237.6485 237.0884 236.4447 236.9314 237.44 237.3305 237.7577 237.9853 238.9495 239.2021 240.0074 240.8592 241.9378 242.6566 243.2538 243.39 243.8035 243.6171 243.5985 243.2128 243.1548 242.3854 241.4622 242.0707 243.0729 246.493 247.8251 248.5115 248.507 249.0457 249.9196 251.3158 252.6625 253.7881 256.6025 257.4563 257.7628 257.3743 255.8759 254.8385 254.9297 255.222 255.7504 258.0519 258.1941 258.2294 257.2032 255.9875 255.824 255.2216 253.7544 253.4062 255.0253 256.8366 258.6804 259.7456 260.9255 262.4121 263.5254 264.8675 265.5866 267.0848 266.3171 264.1408 262.6012 261.8818 262.4498 263.6831 264.6189 264.2606 262.8576 263.2256 262.3482 262.4337 262.7818 262.8228 262.2248 261.1252 259.8854 258.3499 255.4497 254.0765 252.6602 251.0097 250.7441 251.0043 251.6141 -9999 +269.9691 275.1813 280.8374 284.9311 284.9282 288.88 291.1257 293.1466 294.2215 297.0464 298.6327 299.5515 301.0465 302.407 303.0342 303.6016 305.1088 305.5951 304.6256 303.2422 304.069 303.3759 303.1648 302.402 303.1133 304.0488 305.3661 305.6205 306.6868 307.1557 307.8608 308.6823 308.9303 308.4611 307.7506 306.9512 306.46 305.2892 304.3046 303.1236 301.614 300.2195 298.2005 296.0599 294.5932 294.255 291.8384 290.4295 288.4504 288.3594 287.2863 284.8297 283.6694 282.9794 282.277 281.8669 280.8735 280.5927 280.7799 281.6886 281.6198 280.2152 280.2311 280.2024 280.2414 280.2403 281.247 283.0947 283.9333 284.0849 281.3151 277.1261 272.9532 272.0223 271.0538 270.4582 269.6776 270.0845 269.1657 269.243 269.8583 269.5937 268.907 273.0001 273.6286 272.4167 270.1284 265.2923 264.2531 263.8617 263.4111 263.0435 262.9104 262.7677 261.0788 263.7679 269.3054 272.8784 275.7454 276.0727 278.2464 280.1458 279.7701 280.8578 284.2039 285.0612 286.8577 287.8334 288.2255 288.834 289.4541 289.1292 291.1971 292.3871 292.4196 291.7303 290.737 289.1481 286.8657 284.0525 281.6452 277.6312 272.9621 275.946 278.6541 282.3951 286.0907 289.3129 294.0788 295.5186 296.8276 298.6361 300.3706 301.7401 302.8738 303.7697 305.3966 307.4237 310.6499 311.4969 310.8235 312.534 314.1435 313.1083 310.828 309.2366 307.3685 303.6939 302.2443 300.0099 297.2824 297.1272 297.7312 297.1039 295.4408 294.2497 292.8214 291.8701 288.9887 289.1467 291.6787 293.2057 293.2387 293.6255 294.3363 294.6272 294.9276 295.307 295.2714 294.7894 293.8555 293.4168 292.8014 292.0551 290.6071 290.6309 290.4172 289.8264 289.8239 290.7431 291.8452 292.4934 291.5548 287.7194 286.1716 284.4533 283.0775 281.1858 279.4828 278.2089 276.9109 275.6192 277.0185 279.8413 280.0651 282.8548 283.9946 284.1531 284.4191 284.3307 283.9523 283.8966 284.6722 284.478 283.3853 281.4326 280.0826 279.6227 279.0305 277.6178 275.0008 269.7892 268.5454 267.4569 267.1729 266.9958 265.3564 263.0211 259.6292 256.3324 249.2886 247.1637 245.4863 244.2533 241.3839 241.1484 241.2071 241.1259 240.3715 239.5845 239.5104 240.0368 240.1951 239.7454 239.1476 240.1985 240.0808 240.0427 239.7368 239.8346 240.1433 240.3278 240.4785 240.3415 240.5794 240.8727 241.1314 240.7473 240.8725 241.318 243.0902 244.7047 246.2518 246.6841 248.5418 249.3371 250.4342 252.5392 253.4965 254.9646 256.3647 257.6112 258.9535 260.6775 262.0201 263.7298 264.9767 265.9011 265.4561 265.2536 262.9824 261.4897 258.9872 255.612 250.827 255.2562 257.9439 259.4929 261.0635 262.52 264.251 265.8563 267.2386 268.6317 270.7867 272.4574 273.4144 274.182 274.6829 274.7956 274.9184 274.5829 273.2075 268.617 267.009 266.8885 265.5488 264.3928 264.1195 265.147 266.0322 266.279 265.4496 265.6683 266.8664 268.0211 268.8661 269.8686 270.6423 270.4698 270.7694 271.568 274.226 275.7957 277.1136 278.4041 279.6894 280.4343 280.5478 280.265 278.7046 275.7881 274.9974 273.5224 272.5132 271.6743 270.3614 268.2673 263.972 257.4349 254.1426 257.2875 257.068 257.1117 257.4063 259.1693 261.0003 263.076 264.7444 267.3504 267.9744 268.6539 269.0948 269.0309 268.3393 267.8865 267.4651 266.6179 267.1382 268.339 269.3977 270.4086 271.1174 271.1595 271.0943 270.8483 270.7175 270.5692 269.8606 269.1374 268.8908 268.5946 268.6506 267.7262 267.3802 266.7259 264.7336 263.0442 262.5046 263.3139 264.3803 265.2571 265.2051 263.866 262.0158 260.3715 256.2742 255.3159 255.0159 254.2848 252.0948 249.1209 245.4772 244.6292 241.9871 234.3626 233.4275 232.9843 232.486 232.2441 232.1847 232.2492 231.201 232.8408 232.4251 232.6845 232.7718 232.8038 233.7227 231.3413 232.6387 233.3262 232.9595 231.6992 231.283 232.8582 233.1064 237.1681 239.8776 240.5412 240.7807 240.7743 239.5902 239.2125 238.3216 237.5924 237.02 236.4637 236.1775 236.9424 237.3106 237.966 238.2337 238.8719 239.1966 239.7471 240.653 241.5518 242.035 242.0219 242.4256 242.8213 242.8854 242.2105 241.5782 241.1011 240.5111 241.2892 242.3971 244.1 247.5716 248.6339 248.3971 248.249 248.7291 249.5096 250.954 252.1431 253.5088 255.7467 256.2309 256.1363 255.6618 254.7082 253.3329 253.795 255.1058 256.0425 257.2 257.1334 256.5886 255.1176 253.9769 252.9846 251.7072 252.8927 254.8645 258.1508 259.4236 260.7271 261.8627 262.3585 262.9192 263.504 264.9681 265.6389 266.9509 266.7907 264.9059 262.5449 261.8547 261.6415 262.3586 262.5027 262.0363 261.1279 261.1287 260.4082 260.8885 260.7008 261.0504 260.8941 260.53 259.1893 257.6848 254.095 252.853 251.7322 251.4546 249.539 249.6483 250.173 -9999 +269.9691 275.1813 280.8374 284.9311 284.9282 288.88 291.1257 293.1466 294.2215 297.0464 298.6327 299.5515 301.0465 302.407 303.0342 303.6016 303.8518 304.0711 303.046 302.1377 301.571 301.4073 300.2503 300.1409 301.5388 302.3762 303.8578 305.3553 306.9485 307.3758 308.3365 308.9571 309.4494 309.4361 308.8451 308.055 307.3377 305.8554 304.6433 302.9026 301.6691 300.5942 298.6659 297.6678 296.8882 296.0863 293.6694 291.8943 290.5269 290.1987 289.4809 288.1444 286.5661 285.3246 284.9663 284.159 283.9214 285.0915 284.9144 284.2922 284.4072 283.1465 282.6278 284.065 280.8221 281.8588 283.3813 283.7924 285.3587 285.8217 283.3839 280.1293 277.8175 275.6004 273.7049 277.0456 275.5204 274.7422 274.1871 274.2203 273.7823 272.5046 271.1188 276.5715 278.6485 277.9442 276.8717 273.2795 268.7719 265.3502 263.978 263.5433 262.9984 262.3028 260.7893 263.3275 268.9973 273.0284 275.4868 277.0141 277.1632 275.3011 278.2394 280.1582 281.756 283.325 284.8719 285.6067 285.6157 285.4112 286.819 288.3527 290.683 291.5131 291.6469 290.9308 289.6416 287.8872 286.1259 281.5046 278.7414 274.6529 273.4615 276.4813 279.675 282.6439 286.0934 289.287 293.7805 295.4833 297.3883 299.2887 300.8517 302.3748 303.6352 304.8065 306.2618 308.5585 311.7964 312.9194 312.6963 312.8133 313.2038 311.7802 309.9309 308.3104 306.366 302.9955 301.2149 299.4507 296.8906 295.1235 296.1995 295.2892 293.7601 291.7817 290.6609 289.6226 287.0682 288.0609 290.4202 291.6263 291.4564 292.046 292.8713 292.5946 293.6167 294.2859 294.9913 295.0356 294.5752 293.8428 293.2814 293.0917 291.2216 290.8372 290.339 290.1545 290.1528 290.0644 290.6548 291.4383 290.7831 288.0667 286.9055 285.6253 284.427 282.3574 280.7525 279.3257 277.9208 276.618 278.3733 281.3224 282.0244 283.1975 285.0261 285.0343 285.5408 285.6364 285.5496 285.7871 285.9993 285.875 284.9513 283.0312 281.4491 281.1839 281.1295 279.2822 276.3357 271.0562 269.5577 268.1371 267.2198 266.285 264.9112 262.3435 259.5906 256.3556 250.189 245.5376 243.7223 242.0023 241.662 244.1944 240.8875 240.6602 240.823 240.6418 240.5023 240.496 240.4406 240.2036 240.152 239.1958 240.1571 239.9503 239.6994 239.7498 239.8438 239.8074 239.8331 240.0562 240.4733 240.4196 240.1196 240.3886 240.8289 241.8539 243.4739 245.7604 247.1538 248.0531 248.4095 248.8193 249.5035 250.1562 252.0697 254.5149 256.1368 257.6958 259.1172 260.4112 262.0552 263.3056 264.419 264.0186 263.3524 262.8132 262.2879 259.1915 256.2107 251.0269 250.0268 257.0963 258.0092 259.3559 260.5511 261.7957 263.1035 264.3487 265.8297 266.8411 268.8259 270.5234 271.9982 272.8648 273.7975 274.13 274.81 274.5136 272.8766 268.1036 266.3613 265.7621 264.8084 263.2107 263.1724 264.3222 264.9797 265.2835 265.0462 265.6683 266.8664 268.0211 268.8661 269.8686 270.6423 270.4698 270.7694 273.2484 274.226 275.7957 277.1136 278.4041 279.6894 280.4343 280.5478 280.265 278.7046 275.7881 274.9974 273.5224 272.5132 271.6743 270.3614 268.2673 263.972 257.4349 254.1426 257.2875 257.068 257.1117 257.4063 259.1693 261.0003 262.9472 264.546 266.4536 267.0574 267.9309 267.921 267.7741 267.1881 266.511 266.5015 265.6628 266.8243 268.4702 269.7075 270.0343 270.2757 270.1442 269.8253 269.6366 269.6204 269.7944 269.3546 268.8116 268.4583 268.7661 268.8329 268.3793 268.1104 267.4126 265.1593 263.3369 262.9165 263.6524 264.8638 266.0142 266.3892 265.0694 263.6288 262.4862 259.2405 258.664 258.5953 257.3666 254.836 251.7786 249.9615 248.901 247.8289 236.8615 233.4222 232.879 232.791 232.589 232.5731 232.7667 231.1932 232.0612 232.4995 232.5843 232.7093 232.6287 232.6564 233.6151 231.2368 233.0202 233.1038 233.1067 232.1309 232.025 236.2502 239.8049 240.9429 240.5025 240.5075 240.6643 239.4016 239.0125 238.4875 237.8568 237.0909 236.6842 236.0166 236.8265 237.1593 238.1117 238.8484 239.0296 239.4859 240.006 240.8068 241.1239 241.3192 240.7244 241.5841 242.3241 241.8606 240.6274 240.0748 240.396 240.9118 242.1599 243.4815 245.1525 248.2258 248.9908 248.1278 247.5463 247.9351 249.2162 250.3468 251.7534 252.978 254.8087 254.6378 254.0594 253.6998 253.2903 252.2017 253.2941 254.8204 255.3748 255.1344 254.6802 254.2532 252.8804 251.3029 250.7375 252.1334 254.5146 256.5993 259.4464 260.8573 261.9606 262.9452 263.8669 264.5734 264.8831 265.531 266.2898 267.2458 266.8577 264.8102 263.9538 262.5222 262.0208 260.9539 261.1852 261.3564 259.8244 259.3949 259.1644 259.5406 259.3197 259.3753 259.0218 259.2714 258.3783 257.1524 254.2116 252.8638 251.5603 250.5119 249.1305 248.4521 248.3596 -9999 +269.4902 271.5455 278.537 282.4044 284.8138 286.5629 289.2482 290.5136 291.8882 293.9786 295.9767 298.0455 299.9375 300.9232 301.9568 301.9846 302.5285 302.3269 301.6613 299.3899 297.4386 297.0816 298.8616 299.4404 301.4775 302.7373 303.7871 305.0464 306.8419 307.5535 308.4168 309.0172 309.4642 309.6079 309.2277 308.5111 307.8313 305.9732 304.8328 303.4758 302.5557 301.67 300.5674 299.5632 298.6136 297.8189 295.3078 293.9516 292.7107 291.8309 291.5651 291.3392 290.687 289.5001 287.4612 287.0606 288.4561 288.8842 288.281 286.7569 286.2925 285.1211 285.0829 285.9745 282.8275 283.5291 284.4859 285.1765 286.4946 286.6545 284.3936 281.4599 279.6859 274.5747 275.0767 279.4674 280.7884 279.1479 278.079 277.8479 275.9739 275.1176 272.669 279.541 281.6003 281.9621 280.7917 277.6823 273.2271 269.1847 266.0993 264.5982 263.6621 263.2966 263.3338 262.9912 266.7472 270.6679 272.563 273.9543 271.6052 274.2286 276.0737 277.4404 279.3947 280.5363 281.9017 282.6782 282.8396 282.6007 285.7276 287.8279 289.1373 289.641 290.3493 289.6675 289.0883 287.5121 285.0112 280.1665 277.35 272.9578 273.2696 277.3624 280.6528 283.805 286.5863 289.291 293.4327 295.3033 297.2834 299.0208 300.6054 302.1983 303.2816 304.3395 305.632 308.4264 312.9729 313.7503 313.9867 313.3404 311.8279 310.2793 308.9659 307.4332 305.3855 301.4757 300.079 298.5125 296.1773 293.5467 294.8354 294.3195 292.305 290.0594 287.1479 285.3608 285.3022 287.91 288.9628 290.3364 290.2161 291.0758 291.5312 291.1167 292.4995 293.3224 293.9734 295.0369 295.1933 294.9598 294.8185 294.5486 292.8799 292.6232 291.6016 291.1219 290.8672 290.4364 289.4321 288.8994 288.6365 287.4164 286.767 286.3723 285.0644 283.4163 281.7193 280.3369 279.1607 278.9127 281.2283 282.3957 283.1527 284.2148 285.5031 286.3739 286.7664 287.0898 287.5131 287.5261 287.2573 286.9858 285.776 284.3582 283.0259 282.3081 281.4303 278.6321 274.6858 270.6052 268.6754 266.8506 265.0893 263.5809 261.5141 259.2994 257.3159 255.0032 248.0054 245.2945 242.3528 245.2664 250.8551 251.8859 252.9109 251.5513 247.9486 243.4104 240.318 240.3952 240.0743 239.7867 239.7983 239.7245 239.9129 238.5244 239.6313 239.6533 239.4152 239.7188 239.695 239.8881 240.0502 239.7838 239.8253 240.2786 241.4797 243.2274 244.5149 246.1358 246.7655 246.765 247.4849 247.3576 247.7126 249.1019 250.974 253.8329 255.5471 257.3843 258.7985 260.3269 261.6043 263.1947 261.8383 261.1941 261.3863 261.4034 262.2879 259.1915 256.2107 251.0269 250.0268 257.0963 258.0092 259.3559 260.5511 261.7957 263.1035 264.3487 265.8297 266.8411 268.8259 270.5234 271.9982 272.8648 273.7975 274.13 274.81 274.5136 272.8766 268.1036 266.3613 265.7621 264.8084 263.2107 263.1724 264.3222 264.9797 265.2835 265.0462 265.2053 266.5047 267.5667 268.5506 269.5876 270.1985 269.9321 269.766 272.4391 273.8888 275.5555 277.1321 278.3931 279.0903 279.4778 279.7794 278.8709 277.475 275.1043 274.5255 273.1332 272.1741 271.3709 269.3582 266.2565 261.6617 257.0816 254.5814 256.0602 257.2523 256.3599 257.0368 259.0863 260.9889 262.662 264.2035 265.9558 266.2554 266.5375 266.8427 266.6424 265.5626 265.4127 264.7669 265.299 266.1738 267.536 268.8555 269.1206 268.9624 268.8914 268.6666 268.2962 268.6551 268.9587 268.4723 267.8588 268.0177 268.5556 268.7517 268.4987 268.3596 267.8102 265.5413 263.5863 263.3018 264.0912 265.0772 266.2527 267.3876 266.7505 266.0385 264.377 261.5331 261.1682 261.4041 260.0299 256.9856 254.8814 253.9194 252.0258 250.0434 241.7566 233.716 232.525 232.4087 232.5873 232.5161 232.6603 231.226 232.4831 232.4607 232.0856 232.0725 232.3607 232.9023 233.3002 233.3993 231.2549 232.9248 232.6586 231.4686 234.3443 238.7468 240.292 240.0936 239.9435 239.8749 239.7643 239.2785 239.0219 238.6129 238.5404 237.6152 236.4256 235.654 236.4038 237.3834 239.3387 239.6737 239.8271 240.1733 240.434 240.7143 240.6872 240.4656 240.0693 240.8524 240.8748 240.1303 239.2769 238.5283 240.4572 241.7774 243.5893 244.7435 246.1877 248.6716 248.7149 247.6412 247.1919 247.8948 248.7853 250.2047 251.1927 252.3458 253.7899 253.143 252.3304 252.177 251.5182 251.6947 253.6036 254.0747 253.7552 252.514 251.7339 250.6912 250.0186 250.1989 251.5497 253.5594 256.209 257.6599 260.1574 261.7405 262.9884 264.2924 265.1784 265.7639 266.4868 266.2393 267.1472 267.6282 266.7706 265.2463 263.2218 262.0894 260.6858 260.3076 259.6792 259.6783 258.8092 258.1387 257.8541 257.6623 257.5392 257.3726 257.5762 257.9374 257.6351 256.5982 253.291 251.9894 250.9541 249.6018 248.8615 247.1965 246.7047 -9999 +269.2602 269.7202 276.0029 280.3611 283.6108 283.4217 284.8566 286.8132 288.5587 292.162 294.4547 296.9457 298.5085 299.4924 300.2716 300.6253 301.1357 301.3288 300.4543 296.5674 294.0687 296.4978 298.6675 299.675 301.1594 302.3297 303.2363 304.1417 306.3324 307.3186 308.2826 308.984 309.3 309.4155 309.0619 308.3326 307.3847 305.8649 305.2621 304.1644 303.3485 302.7161 302.1248 300.9069 300.1133 299.191 297.0801 295.792 294.7733 293.6397 293.0882 293.0565 292.2471 290.1419 288.2306 288.799 290.1206 290.0523 288.8666 287.662 287.4044 287.1851 287.0243 286.7361 284.2878 285.3286 285.8304 286.6432 287.773 287.8946 285.9713 283.1013 281.0482 277.4027 278.4909 280.4131 282.6356 282.0579 280.752 279.9106 277.7331 279.8165 278.8157 282.891 283.9496 284.1942 282.575 279.0401 275.1412 271.2101 268.4576 265.8471 264.2845 263.5268 262.8307 261.0422 263.4222 266.5087 268.0078 268.1606 270.0046 272.1765 273.6725 274.9202 276.166 277.4677 278.804 279.1502 278.6216 280.8017 285.4677 287.3415 287.7872 288.6537 289.4364 288.9625 288.4595 287.1059 285.0551 278.692 274.4855 271.2921 273.219 277.6778 280.7669 283.6953 286.6172 289.0909 293.6855 295.4333 297.2163 298.8798 300.1453 300.8947 301.5916 302.7689 304.5872 307.3491 312.3653 313.1954 312.8885 312.4804 311.2054 309.5637 307.8403 306.1897 304.2443 300.4076 298.0521 296.4586 295.7908 292.3008 293.0856 293.3564 292.0256 289.0832 282.649 281.9169 284.5965 286.3706 287.313 288.4186 289.3811 290.1076 289.8408 289.598 291.0687 292.171 293.0687 294.5815 295.2168 295.5536 295.4065 295.2073 294.0851 293.2214 292.8237 292.3767 292.2126 291.7498 291.6173 290.2192 288.4277 286.6891 285.6322 285.009 284.2728 283.0022 281.3865 280.7277 280.5468 280.9818 281.96 283.3293 284.2144 285.1302 286.3887 287.4407 287.841 288.0039 288.4269 288.6819 287.983 287.1458 285.9895 284.5095 283.2008 281.9125 280.2001 277.8274 275.4679 270.7816 268.3812 266.629 264.3709 262.6908 261.151 259.4233 257.3538 254.8964 248.1027 243.7643 243.2521 249.8712 253.3626 255.4949 257.0245 257.043 255.9795 252.2496 249.8743 244.7568 240.1531 239.867 239.8457 239.7741 240.0766 239.5415 239.6313 239.6533 239.4152 239.7188 239.695 239.8881 240.0502 239.7838 239.8253 240.2786 241.4797 243.2274 244.5149 246.1358 246.7655 246.765 247.4849 247.3576 247.7126 249.1019 250.974 253.8329 255.5471 257.3843 258.7985 260.3269 261.6043 263.1947 261.8383 261.1941 261.3863 261.4034 259.9483 257.8102 253.7383 248.31 251.9718 256.5951 257.4301 258.873 259.9661 261.0241 261.9492 262.8594 264.2839 265.4601 267.6896 268.9413 270.4086 272.0521 273.3686 274.2482 274.7711 274.3011 272.7329 267.4212 265.0782 264.3118 262.7998 262.159 262.5694 263.5557 264.4803 264.1046 263.4432 264.9403 266.1645 267.0324 268.0873 269.0789 269.6718 269.3128 269.3531 271.3997 273.3707 274.8371 276.3858 277.2101 278.0495 278.6447 279.1775 277.574 276.5251 274.4907 273.4634 272.4427 271.6533 270.7875 269.2811 266.5412 262.3031 257.6237 254.277 253.5791 255.9632 255.843 256.5482 259.3807 260.8576 262.3041 263.6356 265.0284 265.4366 265.6532 265.6459 265.3779 264.5098 264.0801 264.1171 263.1078 265.9898 267.1703 267.7037 267.7834 267.7094 267.6971 267.3395 266.6505 266.915 267.7639 267.4377 267.3479 267.9742 268.6186 268.6664 268.3518 268.2025 267.976 266.038 263.9203 263.7006 264.6097 265.4873 266.7076 268.0445 268.616 267.9093 264.6758 263.4623 263.2809 263.4686 261.9471 259.2698 258.1415 257.179 254.7908 251.9467 245.2435 236.9229 233.3146 232.7892 232.5282 232.5991 232.4536 231.1843 232.9423 232.2527 232.2269 232.4988 232.9933 233.2092 233.1211 233.2031 232.7204 231.2637 231.2579 232.1941 233.6085 236.7529 238.6102 239.2105 239.5298 239.4423 239.2975 239.3377 239.1449 238.6441 237.9547 237.1934 235.4864 235.7347 236.3804 237.2486 239.4353 239.9018 240.058 240.2687 240.4817 240.3248 240.3388 240.0326 239.6911 239.6821 239.1751 238.3447 238.6508 240.1553 242.169 243.1693 244.8285 246.3395 247.6888 248.7112 247.7828 247.0104 246.976 247.4624 248.5827 249.8219 251.0222 251.9909 253.1329 252.0976 251.1713 251.0632 250.2072 251.4934 252.3696 251.56 250.4938 248.9462 248.5773 248.7678 250.5648 252.4263 253.3214 255.1206 257.0832 258.5328 261.3008 262.5703 263.85 265.3776 266.3286 267.0063 267.5172 267.1605 268.3129 267.762 266.8097 265.3717 263.7419 262.1998 261.0067 260.0821 259.6919 258.3619 257.1752 256.7047 256.3915 255.4886 255.8809 255.4193 255.9915 256.5352 256.7371 254.1012 252.8358 252.0853 251.4005 249.9707 248.7508 247.9134 246.6079 -9999 +269.3536 271.56 275.1517 277.4627 278.775 279.8351 283.5533 286.4597 288.8867 292.5003 293.9999 296.2001 297.4477 297.8885 298.5267 299.593 300.2969 299.9463 296.0849 293.9895 292.8476 295.6262 297.0029 298.1977 299.4629 300.9644 302.1634 303.0765 305.6533 306.6123 307.6424 308.5285 308.9388 309.1124 308.9395 307.6699 306.5385 305.2672 304.89 304.5876 303.9979 303.4297 302.5364 302.0284 301.1494 300.5066 298.6298 297.2909 296.1791 295.287 294.316 293.3557 292.1772 290.6969 290.3681 290.5082 291.1028 290.464 289.6651 289.0404 288.7844 288.5677 288.055 287.326 285.9564 286.7708 287.414 288.0803 289.0945 289.2478 287.7357 285.5828 282.9398 280.5365 281.0923 283.3282 284.4379 284.4639 283.151 281.1982 279.9692 282.7807 283.0009 284.5049 286.5233 286.6503 284.9317 281.278 277.1021 272.9132 269.7472 268.3599 264.6615 263.9041 263.2784 263.1842 262.9927 265.6371 265.946 264.734 265.9663 269.935 270.7155 272.0246 273.3461 274.4053 275.3705 275.2111 277.3474 280.0466 283.9976 285.7424 287.7163 288.453 288.6732 287.9854 287.5754 286.239 284.1611 277.26 272.3928 271.0291 273.6595 278.0179 281.0811 283.9638 286.8737 289.5487 293.575 294.7433 296.4746 298.271 298.9837 299.0937 300.3386 301.7246 303.5276 309.0649 312.3552 311.462 311.5116 311.8237 310.2451 307.6488 306.2573 304.4334 303.1629 299.7851 297.6519 294.4563 293.4879 291.4202 290.8966 291.9317 291.0428 289.6282 281.6858 280.4809 282.874 285.0456 286.5546 287.839 288.8069 289.2681 288.7463 288.9013 289.3617 290.9061 292.526 293.7156 294.598 295.575 295.5407 295.2452 293.9154 293.4296 292.8877 292.5556 292.126 291.9671 292.1305 291.4584 289.1804 287.2884 286.397 285.3149 283.6706 282.5844 282.6318 282.7358 282.2619 282.0377 282.915 284.4428 285.6204 286.8468 287.7373 288.4005 288.7968 288.7131 288.3427 288.2817 287.5942 287.4339 285.8858 283.6386 282.0919 281.9125 280.2001 277.8274 275.4679 270.7816 268.3812 266.629 264.3709 262.6908 261.151 259.4233 257.3538 254.8964 248.1027 243.7643 243.2521 249.8712 253.3626 255.4949 257.0245 257.043 255.9795 252.2496 249.8743 244.7568 240.1531 239.867 239.8457 239.7741 240.0766 239.5415 239.1925 239.6399 239.4644 239.5592 239.5581 239.5164 239.6608 239.4653 239.6448 240.6738 241.7194 242.8174 243.8665 244.8295 245.1932 245.6274 246.1622 247.4176 248.1039 249.059 251.1262 254.0909 255.211 256.6124 258.4681 259.894 261.7342 262.2789 260.0536 259.3151 259.5696 259.2788 258.1867 255.9859 248.4946 249.7753 252.1463 255.9992 256.58 258.4125 259.2706 260.4996 261.5147 262.7617 264.4688 265.7696 268.15 269.7241 271.5581 272.548 273.5452 274.4041 274.9349 274.2885 272.5967 266.2415 263.4706 261.7684 261.2362 261.3997 262.176 263.3449 263.6616 263.4924 262.9708 264.4923 265.5197 266.8073 267.756 268.8797 269.7644 268.9038 268.6356 270.9835 271.9907 273.6794 275.0845 276.5422 277.1809 277.8407 278.4127 277.1715 276.1187 273.9366 273.0335 271.5938 270.4796 269.8902 268.6374 266.7365 264.0551 259.7643 254.4293 253.5782 251.8863 253.0822 256.2364 258.3489 260.1649 261.7539 263.0659 264.4763 265.1717 265.1989 264.869 264.3426 263.4192 262.7888 262.6167 262.0355 264.419 266.1438 266.1889 266.1188 265.5427 265.7599 265.7964 265.468 265.6755 266.0646 266.3524 266.9247 267.9579 268.8733 268.939 268.4404 268.0067 267.8872 266.3694 264.371 264.1291 265.24 266.0496 267.3457 268.7749 269.7218 268.7556 266.148 264.8678 264.6042 263.8109 262.5591 261.0465 260.3027 258.9232 256.437 252.7678 245.7544 237.175 234.6212 233.362 232.8257 232.3569 232.4606 231.0194 232.2262 232.3832 232.8193 233.1817 233.313 233.0123 232.9557 233.0895 233.0242 233.1944 233.427 233.1515 233.3827 233.8479 235.1703 237.7182 238.8528 239.1539 239.0334 239.4523 239.5158 238.8785 238.0764 236.9384 234.2918 235.626 236.9239 237.462 238.1657 238.6586 239.2124 239.5544 239.923 240.209 240.2392 239.6745 239.7022 238.6362 237.9304 237.9778 239.3705 241.1837 242.978 243.5836 245.4623 246.7117 248.144 248.2419 246.7661 246.3722 246.0303 247.1125 248.1015 249.2015 250.3831 251.3891 252.4677 251.0855 249.9135 249.559 249.2948 250.1629 249.2305 248.5374 248.4541 248.5088 249.0147 252.3354 253.791 254.6032 255.4485 256.3711 257.5142 259.0868 261.8551 263.0843 264.2077 265.815 267.0544 267.9093 268.5458 268.3322 268.9749 267.5201 266.9771 265.4894 263.9454 262.4023 261.0369 259.8783 259.4084 258.8412 255.7686 255.5611 254.7646 253.7334 253.623 253.8737 254.8291 255.1964 255.4143 254.3315 253.8888 252.6091 251.811 250.7852 249.2356 247.623 246.558 -9999 +269.4743 270.7257 273.3439 276.6989 278.774 281.6722 284.3483 287.1093 289.1568 291.6782 292.7632 293.7715 294.8693 296.5543 298.5548 299.3681 299.2094 297.7725 291.566 289.7591 290.9683 292.4648 292.8776 295.087 297.4455 298.9069 300.8771 301.6566 304.5763 305.5521 306.7505 308.06 308.6688 308.8456 308.7053 307.6263 306.1408 304.4479 304.3841 304.2285 303.9312 303.2451 302.5552 302.0105 301.9004 301.4717 299.637 298.5917 297.4111 296.1752 295.4386 293.3327 293.0275 293.2243 292.7127 292.1724 292.2068 291.606 291.1379 290.7047 290.6443 290.2231 289.4439 288.5323 287.6877 288.3407 288.8123 290.0067 290.2975 290.2715 289.1096 287.0187 284.5444 284.164 283.3403 285.6642 286.8185 286.6161 285.1941 282.2881 283.5453 285.0421 285.6168 286.0221 287.5439 288.2528 286.5559 282.9341 278.7349 275.0738 272.1296 269.3923 265.7131 265.3931 264.6309 263.417 265.2439 263.0055 262.9904 263.1299 263.6651 265.8477 267.5536 269.0963 270.6151 271.1828 271.4576 273.8875 276.7602 279.7475 284.4784 286.6549 287.8457 288.1693 287.3784 287.4123 286.4351 285.2151 282.2655 274.3707 268.2512 270.7547 273.6736 277.3286 280.4086 283.9591 286.8683 289.0961 292.6025 293.6243 295.2439 296.5794 296.7888 297.4713 299.2671 301.0543 302.9574 308.2236 309.6666 309.5434 310.0214 310.9354 309.339 306.9608 305.3532 303.4665 302.0014 298.6397 296.0255 293.2563 290.9228 289.7298 289.3141 290.2905 289.7243 288.8001 282.8381 279.2752 281.8882 284.6929 286.1904 287.7733 288.6337 288.6293 287.6429 286.8517 289.1242 290.5868 292.3558 293.4722 294.1876 295.1215 295.4647 294.9273 293.7188 293.2565 293.0167 292.5556 292.126 291.9671 292.1305 291.4584 289.1804 287.2884 286.397 285.3149 283.6706 282.5844 282.6318 282.7358 282.2619 282.0377 282.915 284.4428 285.6204 286.8468 287.7373 288.4005 288.7968 288.7131 288.3427 288.2817 287.5942 287.4339 285.8858 283.6386 282.0919 280.4074 278.2672 276.106 273.6644 268.7286 266.8077 264.5197 262.6237 261.0787 259.7392 257.8975 256.2923 254.2041 247.6312 243.7906 248.5564 252.9798 256.2814 258.8369 260.6131 261.3824 261.4383 258.3193 254.5773 250.9742 243.1176 242.5201 245.9797 244.4123 241.9382 240.5533 239.4371 239.548 239.5412 239.4412 239.5006 239.4161 239.4544 239.3025 239.3085 240.2074 241.7613 243.3801 244.3699 245.4728 246.0339 246.4218 246.8069 247.9486 249.1378 250.3382 252.1717 254.4776 255.8977 257.3184 258.7548 260.0636 260.9106 261.7566 260.4483 258.748 257.9444 257.6674 256.4045 252.6269 246.5447 248.9958 251.4491 255.9868 257.7739 258.5327 259.4236 260.381 261.5748 263.5336 265.0644 266.4424 269.5227 271.4221 272.2873 273.246 274.1425 274.8209 275.237 274.4359 272.2281 264.1493 260.9053 259.9989 259.9467 260.6541 261.5992 262.5267 261.9876 262.1199 262.48 263.5953 265.0587 266.0343 267.3063 268.9923 269.892 269.2892 267.7846 269.7482 271.3553 272.5616 273.9995 275.2987 276.3596 277.1748 277.8184 277.4596 276.5207 274.3475 272.673 271.4146 269.7149 268.557 267.1973 265.4104 263.0196 260.1688 255.3613 253.6438 252.9385 254.062 255.2252 256.6542 258.6911 260.6437 262.2163 263.8055 264.3028 264.4861 263.6996 263.178 262.2228 261.2362 261.0184 262.0739 264.6815 264.1084 264.1282 264.007 263.7067 263.7298 263.8729 264.1616 264.5683 265.8806 266.7273 267.482 268.2518 269.2841 269.2387 268.7748 268.0233 267.5027 266.5229 264.7104 264.6998 265.6825 266.5391 268.0396 269.4936 270.2562 269.5033 266.0346 264.6047 262.8261 261.1173 259.1187 259.009 257.739 257.2743 255.6205 252.7004 246.2773 242.7273 236.8795 234.0092 233.0588 232.3366 232.073 232.6445 230.8981 233.2339 232.938 233.2341 233.3633 233.2635 232.967 233.0305 233.4202 233.4488 233.3734 233.6958 233.3368 233.4488 233.3915 234.4099 237.4966 238.5255 239.051 240.0116 240.0103 239.6399 238.8206 236.6441 234.6451 236.8 237.797 237.8287 237.7241 238.2467 238.9799 238.971 238.9697 239.4843 239.9371 239.328 239.6836 237.7314 237.3456 238.2405 239.6447 241.5869 243.0472 243.8072 245.5884 247.213 248.5205 248.1685 245.8087 244.7326 244.9486 246.1606 247.4862 248.7098 250.054 250.9541 251.2497 249.8204 247.2334 248.3918 248.879 248.595 248.4992 248.4685 248.4048 250.6033 253.0125 253.7825 254.895 256.0185 257.3384 257.8029 258.3639 259.6146 262.4673 263.8451 265.1123 266.6013 267.6084 268.5243 269.0002 268.7874 268.5353 267.4872 266.8773 265.8191 264.2894 262.5502 261.1247 259.7269 259.0531 259.0127 255.8986 254.5741 253.1588 252.0977 251.4155 252.1387 253.167 253.9432 254.2787 254.7113 254.6396 253.7635 252.3305 251.1063 249.6599 248.1046 246.507 -9999 +268.9848 270.3961 276.1884 278.8732 280.9321 282.9122 284.4885 286.4023 287.8297 289.1549 290.4574 291.3605 293.619 296.5033 298.4043 298.4797 297.013 293.721 289.5373 289.4846 289.468 290.0077 292.2177 294.3696 296.5028 298.1188 299.8122 301.3444 304.2615 305.473 306.6267 307.8046 308.4811 308.6174 308.1609 307.5676 306.3435 303.8687 303.2955 303.1404 302.8165 302.4919 302.1214 301.7547 301.775 301.6056 300.3224 299.3773 298.3201 296.9162 295.6309 294.9725 294.7796 295.3181 295.0928 293.8542 293.7411 292.7566 292.4978 292.4895 292.4776 291.86 291.0881 289.8977 289.0984 289.8214 290.3135 291.5554 291.4975 291.0772 289.4247 287.4396 287.6414 287.0928 285.0505 287.1887 288.4014 288.4154 287.2217 284.9236 286.2438 286.9799 287.6153 288.7392 289.3057 288.9478 287.0246 283.5851 279.8481 276.6962 273.9637 271.8398 267.8013 266.1526 266.6629 265.56 260.9555 262.6773 262.5359 262.4622 262.383 263.1975 264.2029 265.9985 267.2391 268.8084 270.7547 272.3587 276.0188 279.3082 284.7555 286.6299 286.8306 286.4906 286.3465 286.7886 286.007 283.5116 280.595 271.662 269.4348 271.4655 275.4 278.3843 281.0373 283.6196 285.74 287.5747 290.1721 291.1658 292.4224 294.2368 295.8517 297.7278 299.4482 301.0901 302.6913 306.9532 307.643 307.0798 308.5413 309.9124 308.6928 306.5267 304.9749 303.7281 302.5909 298.6397 296.0255 293.2563 290.9228 289.7298 289.3141 290.2905 289.7243 288.8001 282.8381 279.2752 281.8882 284.6929 286.1904 287.7733 288.6337 288.6293 287.6429 286.8517 289.1242 290.5868 292.3558 293.4722 294.1876 295.1215 295.4647 294.9273 293.7188 293.2565 293.0167 292.4848 292.1324 291.8745 291.5694 290.4738 289.4912 288.0206 287.3768 286.8102 286.1651 284.8859 284.4857 284.8618 284.3843 283.6239 285.4504 285.8707 286.4593 287.8141 288.9054 289.5555 289.1696 288.2146 287.3522 286.5031 285.717 285.2449 283.7548 281.7 279.7768 277.0865 274.5819 272.4937 270.3553 265.5687 263.9176 261.9868 260.5234 259.7124 258.2924 256.4288 254.5001 252.9752 244.5486 245.8294 251.4123 255.5063 259.5919 262.5594 264.4593 265.502 265.9421 262.3396 259.252 255.8695 252.3965 250.4671 247.4184 244.8036 246.4772 245.4643 239.3743 239.1993 239.5259 238.7128 238.7089 239.2674 239.1675 239.1485 239.0955 240.2297 242.5209 244.5465 246.1629 246.3735 246.7004 247.5076 248.0415 248.9899 251.8144 253.1859 254.3909 255.4872 256.5463 258.0048 258.925 259.4 260.3003 260.9615 260.4023 259.2339 257.5018 255.9415 253.3482 249.9599 246.6557 248.7094 251.4254 255.2003 255.5702 256.072 257.099 258.663 260.6786 263.3498 265.5401 267.1428 270.5824 272.1093 272.9534 273.8533 274.5152 275.2753 275.1634 274.0571 271.6395 261.8426 259.1557 258.6884 258.893 260.1064 260.7939 260.3867 259.5039 259.9776 261.0284 262.6795 264.022 265.5352 267.2243 268.3839 269.3642 268.693 267.2204 269.4901 270.2712 271.5517 273.4933 274.4359 275.3354 276.0756 276.931 276.9971 275.1508 274.2481 272.4451 270.8239 269.3457 267.8797 265.686 262.6041 261.1537 259.8293 255.894 254.5397 253.4054 250.5915 254.1108 255.3102 257.2507 259.5065 261.1783 263.3008 263.6771 263.3876 262.9055 261.8728 261.4578 260.0323 261.1309 262.5933 262.5597 262.1455 263.862 263.0949 263.1563 263.4858 263.5938 264.5415 265.4645 267.1221 267.8266 268.41 268.9299 269.6991 269.5562 268.9308 268.1974 267.4481 266.3543 265.126 265.4774 266.1737 267.0952 268.5155 269.8944 270.873 269.974 266.6784 265.4407 263.1942 261.005 257.7382 255.2931 253.4191 252.5819 252.1081 251.1032 245.0757 242.9637 239.7482 235.9393 234.0359 232.9502 232.0739 232.2519 230.9125 233.7449 233.4088 233.4922 233.2466 233.2515 233.1695 232.8786 233.2468 233.2153 233.5007 233.5652 233.4314 233.1258 233.3239 233.1143 234.2372 235.8138 237.6872 239.8228 240.2622 240.3162 238.9105 235.4668 234.8237 237.0426 237.7801 237.7417 237.5753 237.8163 238.4951 238.8051 238.8078 239.2631 239.41 239.099 238.8665 236.3525 237.4892 238.87 240.4404 241.6429 242.4979 244.0536 245.8231 247.4166 248.9623 247.2533 244.7266 243.2598 244.153 245.7675 247.798 249.1815 249.9104 250.2735 249.2497 247.6767 246.6823 249.1265 248.8195 248.576 248.4472 248.4077 250.1003 254.7059 255.562 255.9957 256.4457 257.2373 258.1652 259.0618 259.7469 260.3316 262.5532 264.5477 266.4 267.3519 268.2726 268.697 268.3938 267.89 267.637 267.0129 266.5881 265.915 264.3868 262.6873 261.6401 260.1954 258.995 258.5497 256.6786 253.5303 251.7846 250.7618 250.0182 250.0849 251.4305 252.3813 252.9505 254.4247 254.632 253.9419 252.3295 250.7796 249.6692 248.0476 246.9865 -9999 +268.9707 272.498 276.1208 279.8299 281.2742 281.7851 282.9849 283.7917 285.0404 286.6038 288.2311 290.4231 293.4153 295.5339 296.7515 295.9498 294.4506 290.1673 288.3993 288.6248 289.3548 291.4764 294.4795 296.8711 298.9669 300.4627 301.417 302.1284 304.7919 305.5196 306.9686 307.5155 307.5247 307.619 307.4004 306.8776 305.8493 303.3453 302.3901 301.7179 301.5396 301.2413 300.9472 301.1378 301.132 301.0448 300.5923 300.0509 298.7323 297.1995 296.3554 296.0826 296.4675 297.0679 296.9201 295.5033 294.8922 294.3414 294.2053 294.1552 293.5612 292.827 291.9119 291.0917 291.4016 291.7819 292.1376 293.0664 292.9598 291.8907 290.2418 289.4578 289.0628 288.8048 287.006 288.9013 290.0281 290.1169 288.6269 286.4646 288.5038 289.7364 290.5612 291.0699 290.7539 289.5594 287.638 284.2245 281.0482 277.6539 275.6061 273.3526 270.1368 268.2132 269.2438 269.1094 263.3056 261.2596 261.7372 261.7463 261.9188 262.0847 262.639 263.5125 264.8475 266.1624 268.0854 271.6074 275.6612 278.6174 284.5844 285.4381 285.0928 285.3134 286.1217 286.6567 284.8153 281.769 280.595 271.662 269.4348 271.4655 275.4 278.3843 281.0373 283.6196 285.74 287.5747 290.1721 291.1658 292.4224 294.2368 295.8517 297.7278 299.4482 301.0901 302.6913 306.9532 307.643 307.0798 308.5413 309.9124 308.6928 306.5267 304.9749 303.7281 302.5909 299.5917 297.2365 294.9948 292.3448 289.609 287.1036 288.1229 288.58 288.2032 281.893 277.9889 281.3843 283.8017 285.4052 286.7784 287.6583 286.4239 284.1708 287.3816 289.594 291.2253 292.5048 293.5388 294.1868 294.7245 294.6976 294.7276 293.4421 293.0459 292.4531 291.7925 291.4224 291.54 291.4113 290.1185 289.3068 287.9889 287.701 287.263 286.8002 286.539 286.2556 286.2256 285.9086 285.7917 286.0637 286.183 286.2742 288.8934 290.0336 290.449 289.6952 288.0765 286.6675 285.0589 283.937 282.5921 281.2434 279.2027 277.0081 274.0726 270.8197 268.0476 264.9565 261.0029 260.0482 258.7226 257.9835 257.1017 255.9544 253.9075 251.9325 249.0189 246.8569 249.9873 253.5693 257.7408 261.7668 265.5002 268.2427 269.1563 269.098 265.5068 262.6563 258.5912 255.705 253.0695 248.5481 247.6571 249.4658 248.7515 242.0529 240.4615 239.4438 239.1973 239.4536 239.6208 239.1948 239.0253 238.9359 239.5446 242.3156 244.9456 246.8521 246.914 246.7913 247.3222 248.0321 249.3362 252.627 253.684 254.8096 256.0834 256.8476 257.2371 257.7653 258.5762 259.639 260.1861 259.5134 258.2894 256.8646 254.8151 251.8051 247.9276 246.1622 248.327 250.8195 252.315 252.9541 253.8734 255.416 257.3013 259.753 263.2151 266.0206 268.0848 271.5981 272.4198 273.4081 274.2885 274.8036 275.4623 274.8529 273.0544 269.8665 260.2953 257.8515 257.6765 257.9873 259.2328 258.7112 257.8806 258.8163 257.5103 260.5953 262.2522 264.1479 265.7549 266.8427 267.8706 267.7809 266.5851 266.3494 268.9506 269.7309 271.192 272.2003 273.5464 274.2146 275.4662 276.0803 276.4666 274.8136 273.5009 272.3295 270.8687 269.8905 268.9756 267.719 266.2489 264.2533 262.7178 258.1117 255.8848 254.0312 250.5179 252.7591 254.0068 256.4736 258.778 260.2975 262.2109 262.4396 262.3961 261.6289 260.9466 259.6 259.6899 261.5567 260.6694 261.0685 261.5295 262.8004 264.342 264.0492 264.7536 265.5108 266.0136 266.7274 268.2553 268.904 269.5268 270.0853 270.1429 269.8629 269.2951 268.2435 267.5363 266.2011 265.3874 265.681 266.8274 267.6608 268.9388 270.514 271.5133 271.0409 268.0899 266.5173 264.4849 262.4832 261.0511 258.5933 255.8071 252.4872 249.4338 247.0844 241.9218 240.8859 239.2241 237.2112 234.7238 233.0909 232.2432 231.7069 230.8925 233.9552 233.9124 233.7761 233.4836 233.4152 233.366 233.0099 233.006 233.1894 233.3247 233.3949 233.2677 233.3468 232.906 232.981 233.0028 233.3335 234.0938 235.3507 236.2527 236.7818 236.724 233.6452 234.2874 236.3868 237.5458 237.9087 237.5116 237.9593 238.8093 239.0039 238.9006 239.6196 239.2633 238.6938 237.9014 235.5412 237.1487 238.6849 239.9121 241.0818 242.4501 244.3171 246.0931 247.8133 247.9378 245.7747 243.0052 242.7276 243.4697 246.1269 248.0228 249.1803 249.5334 248.4355 246.5725 246.1288 245.6248 245.9468 249.2568 248.3089 249.5756 252.0596 254.2809 257.6064 258.5467 258.7705 259.1451 259.4783 259.9293 260.804 261.5403 261.575 263.8108 265.1909 266.5087 267.6774 268.2759 267.9713 267.2682 266.5353 266.2697 266.3953 266.5881 265.915 264.3868 262.6873 261.6401 260.1954 258.995 258.5497 256.6786 253.5303 251.7846 250.7618 250.0182 250.0849 251.4305 252.3813 252.9505 254.4247 254.632 253.9419 252.3295 250.7796 249.6692 248.0476 246.9865 -9999 +268.9096 271.7652 274.0245 275.1622 276.219 277.6053 279.5361 281.4686 283.1823 286.5984 288.3842 290.4364 292.9581 293.8851 294.013 292.7467 290.5126 286.0381 286.2237 289.519 291.9198 294.3293 296.4443 298.4261 300.2436 301.6433 302.7657 304.5595 305.3689 306.2236 307.4117 307.2378 306.9614 306.2696 306.068 305.3924 304.9352 303.0245 302.2238 301.494 300.6574 300.3631 299.9308 299.9386 299.9807 299.9504 300.2633 299.875 299.1031 298.4001 298.1815 298.2427 298.8139 298.8804 298.4419 296.9307 296.2815 295.9253 295.88 295.6526 294.4393 293.2448 292.1841 291.9789 293.2039 293.8727 294.184 294.1668 293.9213 292.9409 291.7233 291.0246 290.8622 290.5143 288.8236 290.0415 291.2138 291.4474 289.9704 288.3809 290.3189 291.4637 292.7456 292.4575 291.2441 289.269 286.9262 283.9253 281.6176 278.8271 275.6061 273.3526 270.1368 268.2132 269.2438 269.1094 263.3056 261.2596 261.7372 261.7463 261.9188 262.0847 262.639 263.5125 264.8475 266.1624 268.0854 271.6074 275.6612 278.6174 284.5844 285.4381 285.0928 285.3134 286.1217 286.6567 284.8153 281.769 278.5248 270.15 269.9699 274.2178 276.0094 277.6548 279.252 281.3312 282.7867 284.5516 288.061 290.5533 293.2889 295.4835 296.4913 297.7267 298.916 299.9068 301.2482 304.7233 304.7079 305.7937 307.97 309.4639 308.2216 306.8907 306.0434 304.5857 300.9624 299.0507 296.9615 294.9469 293.0961 291.666 288.5465 285.0399 287.1636 287.4756 283.1052 276.6275 279.5665 282.1255 283.7815 284.8368 286.0143 283.2398 281.8416 286.7967 288.7577 290.6429 292.1476 293.4539 293.975 294.0862 294.1961 293.7307 292.1369 291.604 291.1768 290.5044 289.8445 289.6079 290.4197 289.2185 287.4901 286.4864 286.8016 286.7048 286.2285 286.0143 285.5925 286.0858 286.4518 286.6139 286.1588 286.5175 287.6008 288.7195 289.4312 289.8674 289.0271 287.4505 285.1488 283.4131 281.9359 279.5176 277.6135 275.7504 273.0015 270.0986 266.8983 263.7249 260.0949 255.6383 254.3791 253.772 252.9716 252.7299 250.2915 247.8947 247.6511 247.9577 250.9708 253.542 255.6561 258.9893 262.6331 266.1643 269.7506 271.2466 270.0399 265.1127 262.5608 259.0646 256.0018 252.4117 248.1259 250.6064 251.4221 250.6931 246.8518 242.8343 241.7982 240.7806 240.1654 239.6525 239.5199 238.9328 238.8623 239.1241 240.9788 244.9156 246.1354 246.3341 246.0133 246.5314 247.9775 249.4924 252.0414 253.7561 254.687 255.2851 255.659 256.7657 257.2064 257.8683 258.7582 259.5983 258.4429 257.5507 254.9392 251.6024 248.9284 246.3439 246.9352 248.2517 251.021 253.1975 253.6686 254.6791 256.6524 259.9901 262.7134 264.7316 266.8864 268.7245 271.6295 272.8566 273.7596 274.4978 275.0053 275.329 274.5606 272.0097 268.0351 258.0746 256.6967 256.5637 256.3753 257.9274 257.3847 256.0245 257.5024 258.1269 260.9739 262.8845 264.6375 265.6476 266.2324 266.5421 265.5939 264.6686 265.7455 267.9674 269.5892 270.1608 271.5528 272.3392 274.2195 274.5539 275.4205 276.0525 274.4581 272.8427 272.4228 271.6451 271.1768 270.62 269.7375 268.3156 266.6295 265.0632 259.5198 257.173 254.6997 252.5723 251.7788 253.2999 256.0225 258.4802 259.8328 261.2213 261.106 260.8241 260.5695 259.6756 258.5325 259.4001 259.0099 259.892 261.8407 262.8507 263.6231 264.7963 265.4954 266.1584 266.9461 267.4149 267.9606 269.0296 269.7256 270.2574 270.5989 270.5391 270.3203 269.4578 268.5 267.7838 266.3571 266.0231 266.4208 267.107 268.2053 269.6491 271.1993 272.0509 271.9327 268.7782 267.3358 266.2656 264.5521 262.3619 259.6335 256.7647 254.1407 251.3416 248.6036 244.6758 242.5806 239.5507 236.2229 233.8019 232.5654 232.1524 231.9043 230.9555 233.1505 233.3023 233.7366 233.1252 233.0922 233.5921 233.7173 233.4264 233.1315 233.124 233.2379 233.1956 233.1971 233.0749 232.7667 232.8135 232.7456 232.9013 232.6485 232.8017 232.7725 232.618 232.4735 233.6187 234.7392 234.6626 235.0703 237.0616 238.3246 238.6112 238.6734 238.9566 239.376 239.0869 238.8089 237.1828 235.7765 236.979 239.028 240.3862 241.4836 243.35 244.3262 246.6017 247.8133 247.9378 245.7747 243.0052 242.7276 243.4697 246.1269 248.0228 249.1803 249.5334 248.4355 246.5725 246.1288 245.6248 245.9468 249.2568 248.3089 249.5756 252.0596 254.2809 257.6064 258.5467 258.7705 259.1451 259.4783 259.9293 260.804 261.5403 261.575 263.8108 265.1909 266.5087 267.6774 268.2759 267.9713 267.2682 266.5353 266.2697 266.3953 266.2877 266.028 264.3104 262.843 261.9434 260.568 259.1622 258.1734 257.9377 255.5706 251.892 250.0278 248.928 248.3115 249.841 250.6488 251.6754 253.2413 254.102 253.8473 252.2641 251.1655 249.6787 248.1696 246.8775 -9999 +267.0186 269.7008 272.6456 273.4968 275.1637 277.8529 279.9561 282.6647 283.7653 287.5019 288.8406 290.4234 291.6178 291.6088 290.498 288.7861 284.4684 284.6519 290.0399 292.2237 294.3824 296.4134 297.8414 299.3552 300.7804 302.1512 303.6349 305.2929 306.2677 307.1212 306.9471 307.3003 306.8248 305.9347 304.9008 304.2618 303.5317 302.1759 301.8222 301.1608 300.5694 299.6389 298.5858 298.5432 298.7259 298.7564 299.2545 299.1219 298.5921 298.8039 298.902 299.707 300.1877 299.8189 299.2582 297.2828 296.7111 296.9803 296.7571 296.3537 295.5814 294.4824 293.3188 291.9789 293.2039 293.8727 294.184 294.1668 293.9213 292.9409 291.7233 291.0246 290.8622 290.5143 288.8236 290.0415 291.2138 291.4474 289.9704 288.3809 290.3189 291.4637 292.7456 292.4575 291.2441 289.269 286.9262 283.9253 281.6176 278.8271 276.4961 274.8504 270.5958 269.0501 271.7462 272.8555 270.7554 268.7304 265.9514 262.6566 262.4709 262.3921 261.8816 262.0351 262.9168 262.9006 265.5732 270.7516 274.1334 277.0907 283.5511 282.4103 282.6074 284.8479 285.8162 286.0231 284.195 281.1647 278.3293 268.7254 270.1536 273.2702 275.6578 277.5707 280.1498 282.299 284.333 285.9249 290.6096 292.3595 294.096 294.8871 295.2722 295.9273 296.5286 297.6735 299.007 302.5137 304.6512 306.3478 307.9212 308.8481 307.7182 306.1465 306.3369 305.1065 301.3349 298.7985 296.8759 294.4428 292.4278 291.1975 289.8755 286.038 283.06 284.876 283.6423 277.9026 275.9669 279.3206 281.3481 283.3844 283.7772 279.894 281.7161 286.1017 288.4926 290.9313 291.8542 293.2284 293.3653 293.6886 292.7757 292.5394 290.7878 289.778 289.5331 288.7656 288.0136 288.5328 289.3327 288.7787 287.2746 285.3353 285.4889 285.5987 285.1557 284.527 284.0867 285.2932 286.4978 286.5559 285.7163 285.9876 286.5913 287.3038 288.2785 288.8356 287.8708 285.5159 282.8656 280.012 278.8751 276.3166 273.8899 272.1095 269.761 266.2773 262.0243 259.8721 256.714 254.5855 254.6856 254.4648 254.6425 254.3898 253.981 253.9182 253.1618 250.8781 255.1437 256.7452 257.2768 260.1652 263.5681 266.8184 269.5496 270.9119 268.6977 262.6973 259.78 256.5435 252.8982 249.9029 252.7518 253.9703 253.3535 252.5908 248.6018 245.9515 244.8042 243.2693 241.6116 239.2477 239.009 239.0288 238.7488 239.0502 240.6142 243.5377 244.7913 245.0145 245.2943 246.3893 247.6053 249.2773 252.4502 252.8838 253.6484 254.1307 255.1798 256.2219 257.0359 257.6747 258.5028 258.8198 257.8758 256.4626 253.98 249.1028 246.0522 245.067 247.6058 251.6187 253.8966 257.0868 258.1022 259.1674 260.7047 262.4145 264.3302 266.0472 267.7631 270.0121 271.9677 272.8614 273.821 274.4498 274.8719 274.5105 272.8458 269.6381 266.5747 256.8213 255.3689 254.9529 254.9472 256.5881 254.3614 256.1029 257.1793 258.3626 261.8292 263.1628 264.0667 264.9209 265.4453 264.8378 264.1333 263.9376 264.2299 266.5326 268.4025 269.834 271.2902 272.5542 273.7284 274.4849 275.4106 275.7012 273.3741 272.2966 272.2211 271.6497 271.832 271.3979 270.9212 269.7607 268.1287 265.9759 260.9268 258.1059 255.2381 253.2803 249.6116 252.712 255.4118 258.0616 259.3134 260.1589 259.4947 259.1519 258.9131 257.5778 257.5112 258.1278 259.0521 260.5736 262.877 264.0118 265.0477 265.7727 266.6456 266.8279 267.9256 268.165 268.7675 269.5492 270.2502 270.8772 271.0906 270.9867 270.624 269.771 268.7425 268.0253 265.7029 265.6945 266.3845 267.717 269.0269 270.2971 271.4187 271.696 271.659 269.2279 268.316 267.026 264.8997 261.9899 259.0601 256.2914 253.7523 251.4694 246.5417 243.5865 240.1898 237.1633 236.1606 232.9032 233.1394 233.274 233.7877 231.9352 232.6815 233.1942 233.4205 233.3273 233.1801 233.0748 233.7173 233.4264 233.1315 233.124 233.2379 233.1956 233.1971 233.0749 232.7667 232.8135 232.7456 232.9013 232.6485 232.8017 232.7725 232.618 232.4735 233.6187 234.7392 234.6626 235.0703 237.0616 238.3246 238.6112 238.6734 238.9566 239.376 239.0869 238.8089 237.1828 235.7765 236.979 239.028 240.3862 241.4836 243.35 244.3262 246.6017 247.6269 246.2072 243.7232 241.6953 242.1528 243.0234 246.3455 247.9639 248.9029 248.3619 246.2807 244.578 244.5201 244.1718 242.5955 245.0874 249.1702 252.7069 254.5076 256.4275 260.4023 260.6094 261.3647 261.7212 261.9311 262.355 263.1484 263.3092 263.3788 265.0346 265.8415 266.5307 267.1352 266.9758 266.5959 265.8408 265.1995 264.7884 265.5523 265.7382 265.8484 264.2889 262.9325 262.0441 260.7365 259.5299 258.4811 257.728 254.5343 250.1845 249.0861 248.504 247.63 247.3778 248.8712 250.7463 252.2156 252.9602 253.1354 252.9345 252.1953 250.3616 249.0749 247.0139 -9999 +266.2268 268.5055 269.631 273.1459 277.0932 280.0963 282.8812 284.6798 286.1348 288.5984 289.8464 290.6479 290.1643 289.0603 286.5744 283.7895 283.684 285.6008 291.5021 293.378 295.1448 296.7061 298.5012 299.9167 301.5743 303.0085 304.2785 305.9212 306.5109 307.0592 307.1746 307.5077 306.9515 305.942 304.6053 303.5169 303.5317 302.1759 301.8222 301.1608 300.5694 299.6389 298.5858 298.5432 298.7259 298.7564 299.2545 299.1219 298.5921 298.8039 298.902 299.707 300.1877 299.8189 299.2582 297.2828 296.7111 296.9803 296.7571 296.3537 295.5814 294.4824 293.3188 293.3822 294.1662 295.319 295.7668 295.3644 295.2464 294.3933 294.0566 293.0525 292.5684 292.1774 290.2445 291.1439 292.4395 292.7393 291.4635 290.3448 291.5861 292.9887 293.4005 292.3539 290.6945 288.3768 285.7628 283.3594 280.9268 279.3089 277.4997 273.2586 271.4227 271.5338 273.9356 275.5405 275.0294 273.9774 272.0328 266.3055 262.7239 262.6162 262.0418 261.7268 261.7285 262.1798 262.506 267.201 271.7311 274.9309 280.1227 279.9517 282.8265 284.4684 285.8017 284.8413 282.6841 280.159 277.4611 266.299 269.1657 273.0206 276.0298 278.9341 281.0296 283.7555 285.8778 287.7484 290.2836 291.1094 292.0507 292.8146 293.5132 294.0942 295.4454 297.4468 299.532 303.2705 304.6926 306.3137 307.6101 308.0509 306.0086 304.3961 303.7974 302.9595 300.0471 298.5891 296.3402 293.9587 292.1888 290.0833 288.1439 287.4044 284.0691 281.1033 282.6681 278.9791 275.1182 276.2936 279.096 281.1623 279.7088 278.8109 281.3984 285.4725 287.9417 290.0945 291.777 293.0374 292.9682 291.7842 291.2724 290.8553 288.7668 287.8032 287.8608 286.993 285.735 287.1008 287.9452 287.8619 287.033 284.598 283.6894 284.5946 284.2212 283.3195 282.9659 284.7398 286.1267 285.694 283.761 283.8652 285.3237 286.6293 286.8736 286.8772 286.074 283.7877 279.12 273.9688 274.2436 270.4387 268.5747 266.4706 264.6199 259.005 255.3585 257.0685 258.2078 260.9189 263.5832 263.2531 262.101 260.9102 258.9731 257.3019 255.7449 249.3542 255.8572 257.8831 259.2102 261.5536 264.3728 267.4212 269.7331 270.2486 266.7126 258.2052 255.0079 252.858 255.1623 256.957 256.8972 256.3815 255.3003 254.4305 250.5369 248.3805 246.4698 245.067 243.2154 239.5824 239.1826 238.4278 238.8121 239.1328 240.5184 243.1737 244.3579 244.6067 245.1678 246.1812 246.9517 248.0615 251.0125 252.0096 253.0317 253.5026 254.6411 255.6686 256.5551 257.3168 257.9324 258.4476 257.6635 256.248 252.7065 247.3734 244.7768 245.906 248.9223 252.4647 254.7153 258.3318 259.9358 261.1915 262.5 263.8585 265.7739 267.3399 269.0488 270.0907 272.0299 272.6812 273.3203 274.0291 274.604 274.2137 272.9565 270.2534 265.5685 255.4238 253.996 252.6841 254.6395 251.426 254.9735 255.9026 257.0659 259.2012 261.5854 262.244 262.3781 263.3135 263.8131 263.123 262.4311 262.5555 263.2774 265.9129 268.0088 269.4961 271.2335 272.8286 274.4192 274.9905 275.4514 275.2113 272.1878 271.6063 271.1932 270.9187 270.6325 270.8097 271.0653 270.1882 268.4046 266.2742 262.4165 259.4296 256.3216 253.5325 251.2817 251.9712 254.7091 257.1698 258.3703 256.8863 256.4717 256.9756 256.9845 256.7519 257.5981 258.8154 260.3615 261.6357 263.982 265.0606 266.013 267.132 267.9637 268.5215 267.9879 269.4368 269.5858 269.3228 269.9869 270.5927 270.9171 271.0435 270.8422 269.8776 268.7425 268.0253 265.7029 265.6945 266.3845 267.717 269.0269 270.2971 271.4187 271.696 271.659 269.2279 268.316 267.026 264.8997 261.9899 259.0601 256.2914 253.7523 251.4694 246.5417 243.5865 240.1898 237.1633 236.1606 232.9032 233.1394 233.274 233.7877 231.9352 232.6815 233.1942 233.4205 233.3273 233.1801 233.0748 233.4618 233.4357 233.584 233.1056 233.1375 233.1941 233 232.9732 232.6065 232.7705 232.6406 232.7463 232.6043 232.6246 232.2061 231.785 231.8418 231.9193 231.9026 231.3604 231.879 232.3742 233.1801 235.1217 236.895 238.701 239.0079 238.9845 237.7181 236.1175 235.7306 236.9486 239.0408 240.3019 241.9091 242.9861 243.5279 245.9502 246.1619 244.6811 241.9971 241.1781 241.1826 243.2933 245.9062 247.665 247.975 246.4527 244.5862 242.8678 242.7127 241.3824 246.2933 249.9938 252.0099 253.9185 255.8867 257.9523 262.2543 263.3597 263.6612 264.0635 264.3012 264.5644 264.5942 264.6293 264.7729 265.175 265.4119 265.6049 265.3977 265.048 264.7616 264.1947 263.7649 263.1986 264.7584 264.9512 265.5258 264.2522 263.3306 262.248 261.0865 259.7616 258.7801 256.7142 256.6031 252.8515 249.3472 248.4151 247.7522 246.5818 246.9555 249.2806 251.0119 251.6725 251.8892 251.7603 251.5544 250.6475 249.1616 246.9891 -9999 +266.0634 268.3647 269.3919 272.5669 276.8946 280.6199 283.6492 285.9944 287.7445 289.8683 289.8464 290.6479 290.1643 289.0603 286.5744 283.7895 283.684 285.6008 291.5021 293.378 295.1448 296.7061 298.5012 299.9167 301.5743 303.0085 304.2785 305.9212 306.5109 307.0592 307.1746 307.5077 306.9515 305.942 304.6053 303.5169 302.6314 301.1813 300.8767 300.5331 299.7231 299.0346 298.24 297.6584 297.5503 297.8224 298.2551 298.1839 297.5755 297.5526 298.419 299.1401 299.5423 299.2543 298.5926 296.8871 296.497 296.6583 296.928 296.4605 295.8257 294.8531 294.4527 294.3585 295.0609 295.826 296.4052 296.5305 296.3155 295.5484 294.9579 294.3236 294.3176 292.9312 292.3976 292.8216 293.3652 293.9549 292.9088 292.2161 292.1841 293.7941 292.6913 291.0507 288.7083 286.9962 285.2493 283.8818 281.7199 279.1365 277.637 273.3124 272.0846 273.679 276.067 277.3493 278.0402 277.3516 274.7841 271.08 264.908 261.2527 262.2202 261.7333 261.722 261.5555 262.0579 264.1326 269.4669 272.7118 278.4572 279.9338 282.7 284.2238 285.373 284.3438 281.8378 279.6543 276.768 266.0716 268.8179 272.2273 275.6928 278.8945 281.1303 283.3327 284.6352 286.5792 287.7038 288.6434 290.0613 291.5401 292.9632 294.1436 295.9541 297.4707 299.4415 301.9057 303.7907 305.6702 306.7216 306.5146 304.5546 302.3995 300.8283 301.0673 298.5011 297.0945 295.4664 293.1961 291.8869 289.9772 287.1468 284.7674 282.265 279.6703 280.8703 275.3688 271.9058 272.097 275.2311 276.3302 275.4595 276.5734 279.3256 285.5628 287.7874 290.1947 291.7577 292.8003 292.8612 291.1586 289.6209 288.6598 286.8207 285.8643 286.004 285.0912 284.1934 285.4175 286.7152 286.7378 285.6144 283.8169 282.3979 282.902 282.6548 281.6884 281.6995 283.7555 284.2076 283.3521 281.3702 281.6041 282.9523 284.8534 286.6571 286.5232 286.2611 284.0703 279.8599 269.3651 266.9495 264.924 264.7555 266.8594 267.5044 267.4776 267.2333 269.3633 271.054 270.0782 269.3379 268.2889 266.5515 264.6295 262.3963 260.0037 257.4561 250.8037 258.0482 259.5997 260.8544 262.6718 265.6118 268.4403 270.0209 269.1582 265.3962 256.7974 258.2528 259.4778 259.5747 259.6384 259.2611 258.5178 257.1989 255.3482 251.0751 248.3324 247.3835 246.3084 243.4898 240.1221 238.8033 239.0218 238.4775 238.6897 241.0214 244.0223 244.8998 245.0359 245.2752 245.6899 246.1815 247.3251 249.9988 251.0448 252.1584 252.7228 253.8771 255.1171 256.1476 256.7853 257.2192 258.1104 257.7541 255.8743 251.7586 245.7594 244.6319 246.6614 250.1915 253.2281 255.1313 259.1942 260.6807 262.6412 263.4466 264.9576 266.2039 267.3679 268.5416 269.6165 271.5124 272.1578 272.8387 273.5898 274.0883 274.0723 273.1019 270.4601 265.6025 254.3539 253.1148 251.6412 251.1311 254.2794 254.8913 255.4089 257.0231 258.543 259.5221 258.9713 259.4449 259.8994 260.7583 261.2285 261.315 261.3174 261.781 266.1064 268.3893 269.6258 271.6364 273.8481 274.8504 274.9496 274.6785 273.7801 271.3504 270.7509 270.0843 269.9954 269.5452 270.1681 270.6412 270.2408 268.8087 264.6212 262.4165 259.4296 256.3216 253.5325 251.2817 251.9712 254.7091 257.1698 258.3703 256.8863 256.4717 256.9756 256.9845 256.7519 257.5981 258.8154 260.3615 261.6357 263.982 265.0606 266.013 267.132 267.9637 268.5215 267.9879 269.4368 269.5858 269.3228 269.9869 270.5927 270.9171 271.0435 270.8422 269.8776 269.0616 268.0764 265.5555 265.0478 266.2093 267.834 269.4168 269.9799 270.6868 271.0579 270.7119 268.7199 267.7715 266.196 263.7625 260.9718 257.5307 254.88 252.1472 249.5917 243.6154 236.0669 238.6792 240.5436 234.2398 233.3918 237.0996 240.9518 242.1869 238.7438 230.918 230.8125 233.5668 233.2147 233.5731 233.3796 233.0508 233.0564 233.075 232.9193 233.1054 232.6285 232.9172 232.5248 232.8092 232.9544 232.6972 232.7121 232.5394 232.3291 231.8826 231.6259 231.3548 231.3766 231.4644 231.3857 231.5506 231.6504 231.6694 232.4696 235.0896 238.6717 238.9696 239.0122 237.7543 235.631 235.4191 236.6079 238.2636 239.4917 240.6666 241.6758 242.2962 243.4174 243.9825 242.3016 240.6166 240.5036 241.3826 243.9034 246.0094 246.6064 245.9778 245.0487 243.5491 241.5719 243.9732 247.7355 249.7365 252.3018 254.2077 255.5334 257.0998 258.9113 262.8775 264.2553 265.2306 265.6974 265.489 265.4558 265.5594 265.1201 264.6875 263.9289 263.9646 263.5392 263.7092 263.193 263.0689 262.6696 262.2995 262.1577 263.4578 264.5852 265.1021 264.652 263.875 262.5326 261.5845 260.3497 259.2183 256.661 256.3285 255.3315 253.4384 251.7537 250.105 247.5224 244.6498 246.9982 249.7027 250.4031 250.4823 250.3796 250.4909 249.9429 248.8314 246.8827 -9999 +266.0634 268.3647 269.3919 272.5669 276.8946 280.6199 283.6492 285.9944 287.7445 289.8683 290.308 289.1458 287.2604 285.5677 281.4745 283.6488 286.5573 287.2774 289.94 291.4709 292.8815 295.6334 297.6837 299.4635 301.2672 302.7014 304.002 305.2722 305.6275 306.2926 306.5327 306.5435 306.8008 305.9477 304.7328 303.6461 301.2795 300.304 299.8971 298.4474 297.7194 297.6914 297.932 297.2767 297.0017 295.8482 297.0748 297.1525 296.5345 295.8503 296.7377 297.6092 297.9143 297.9413 297.5845 296.3289 295.972 296.0824 296.3363 296.0165 295.5842 294.7121 294.564 294.0963 294.6878 295.4546 296.1935 296.5403 296.394 295.9942 295.56 295.1292 295.0616 294.4049 294.0748 294.1884 294.5714 294.9363 294.5139 293.7909 293.6713 293.7932 291.9333 290.6185 288.5418 286.3092 285.1629 283.5485 282.2838 279.7891 277.9633 273.3893 273.9976 275.8352 277.7479 278.9354 280.4264 279.2885 277.2047 274.1956 269.053 261.9889 261.6431 261.8765 261.6666 261.4508 261.5111 261.8255 266.4681 270.763 281.2827 282.7819 283.7289 285.5685 285.4359 284.0869 281.5067 278.8092 275.3386 265.6005 269.1343 272.3557 275.3363 278.1945 280.2316 281.6162 282.9785 283.4211 286.2941 287.4156 288.6281 290.251 292.5869 294.7754 296.4281 298.4755 300.9762 303.2762 304.7434 305.6171 306.0989 305.4412 303.4302 301.8857 299.7404 298.05 296.6999 295.6104 294.8444 292.9747 291.6995 289.8794 288.227 286.2856 284.4892 279.4837 275.5536 272.1666 271.0655 269.9781 270.7541 273.8619 275.5153 276.3362 278.7567 285.507 287.9386 290.2433 291.899 292.4186 292.0098 290.5048 288.678 286.5391 284.7594 284.2459 283.8548 283.2221 282.5146 284.0861 285.3846 285.2526 284.6363 281.9998 281.3342 281.1429 280.8047 279.9888 279.706 281.5664 281.7733 280.7839 279.2345 280.269 282.1007 284.4339 286.4784 287.0328 286.4247 285.7216 282.956 278.5706 272.5606 274.2588 273.3575 274.3231 276.2604 276.4862 276.5586 275.7994 276.5453 274.3578 272.8173 271.7917 270.3157 267.3027 264.3053 261.1667 256.4755 252.9954 260.5583 261.0667 263.0876 264.3087 266.204 268.3092 269.5652 268.7489 266.6437 261.8102 261.7686 263.5117 262.7122 261.9268 261.3307 259.6414 257.8986 256.0988 251.1659 250.7774 249.7374 247.7239 244.8095 241.1159 238.7838 238.6958 239.171 238.6501 239.866 243.4846 244.9926 245.5896 245.4236 244.486 245.152 247.1306 249.4481 249.8527 250.3972 252.2895 252.9342 254.3056 255.2028 255.6099 256.0615 256.9099 256.7509 254.1122 248.6431 244.49 244.7169 248.5402 251.9466 254.2064 255.8752 259.059 260.4452 261.9731 262.942 263.9164 265.3267 266.3906 267.7879 269.2016 270.7517 271.5655 272.3095 272.9631 273.6966 273.9236 273.0205 270.8083 266.3919 254.1515 252.4328 251.6412 251.1311 254.2794 254.8913 255.4089 257.0231 258.543 259.5221 258.9713 259.4449 259.8994 260.7583 261.2285 261.315 261.3174 261.781 266.1064 268.3893 269.6258 271.6364 273.8481 274.8504 274.9496 274.6785 273.7801 271.3504 270.7509 270.0843 269.9954 269.5452 270.1681 270.6412 270.2408 268.8087 265.4492 263.2761 260.456 257.3774 253.8472 250.8991 249.2457 254.0273 256.4399 256.1049 254.2693 254.7986 255.2503 255.8306 256.86 258.7038 259.8474 260.4795 262.048 264.5249 265.6395 266.7909 267.8709 268.5386 269.2756 269.7242 268.6687 269.4004 268.5602 269.5386 270.2873 270.7115 270.7863 270.7724 269.9542 269.0394 268.2393 265.8367 264.885 265.5727 267.1803 268.6953 269.313 269.5929 270.2883 269.7928 267.3781 266.204 263.9369 262.1093 259.4524 256.7608 254.0042 250.2548 246.2512 237.9744 242.791 241.753 244.8439 238.9385 237.8767 241.9348 245.2312 245.7336 244.4286 240.959 232.3297 230.8636 231.6972 233.2193 233.5759 233.3316 233.2873 232.6317 232.713 232.6487 232.5004 232.5742 232.476 232.5988 232.7564 232.6086 232.6217 232.3303 232.1779 231.7305 231.5345 231.3913 231.3497 231.3646 231.4417 231.59 231.5802 231.5384 231.4848 233.0932 236.9674 239.2201 238.9719 237.9294 236.0819 234.795 236.0424 237.7354 238.1764 238.717 239.5009 240.4469 241.0385 242.0031 240.1808 239.9561 240.0982 242.5622 244.6835 245.3803 244.6766 244.4211 243.6373 240.2568 243.2339 246.9721 249.0517 251.3308 253.6344 254.9016 256.5761 258.3308 260.1156 262.8614 264.1417 264.6231 265.0151 264.8748 264.873 264.5344 263.9154 263.455 262.2417 262.3169 261.6603 261.7446 261.5477 261.0309 260.8091 260.6754 261.2845 262.5732 263.8458 264.6049 265.083 264.5338 263.3348 262.1462 261.2307 259.7377 256.465 255.486 255.5467 255.291 253.7639 251.9091 249.3829 245.9058 243.521 247.6361 248.0438 248.66 248.701 248.9351 248.602 247.3615 246.114 -9999 +265.6912 267.7812 269.6216 273.5496 277.5456 280.8628 284.5538 287.6119 289.0201 290.1453 289.0948 286.9314 283.9731 280.1817 282.4026 286.8606 289.9143 292.1666 294.1936 294.1021 292.9221 293.9441 296.2861 298.4339 300.2661 301.8898 303.4017 304.009 304.1322 304.9333 305.7983 306.1705 306.5533 305.9336 305.0345 303.934 301.671 300.4159 298.5404 296.9172 295.8201 295.5302 295.8844 296.3788 295.7418 294.156 295.1665 295.6407 295.4661 295.2135 295.2067 295.6659 296.65 296.4311 296.3717 295.116 295.3936 295.5279 295.6324 295.5362 294.7871 294.5714 293.7684 293.2186 294.0464 294.8512 295.4298 295.8458 295.706 295.5318 295.3015 295.1701 294.8145 293.9283 294.0799 293.9756 294.2216 294.8751 294.7365 294.5095 293.9569 293.0954 291.5904 290.0052 288.709 286.2571 284.2098 282.7494 280.4947 279.4168 276.9929 274.4937 276.0837 277.7394 279.4429 281.1724 281.5864 280.8909 279.2054 275.996 272.6656 264.5823 261.6476 261.4977 261.7989 261.526 261.3771 261.5306 262.1193 267.9479 282.3434 283.6054 285.0147 285.7901 285.9076 283.9856 280.6307 277.0789 273.2745 266.2892 268.6723 270.7169 272.1715 273.8803 276.1909 278.2005 279.9671 281.756 284.8496 284.9012 286.0521 290.0988 292.8658 294.6172 296.6983 299.1923 301.5444 304.4348 305.0142 305.1254 305.2115 304.8189 303.2474 301.2835 299.0802 296.631 295.2193 294.002 293.2942 292.3278 291.1522 289.2044 287.2924 285.596 283.8409 280.3625 277.7367 273.8133 270.9532 268.3372 272.9107 277.3727 280.2517 280.3696 281.3899 285.6195 288.1736 290.1847 291.2741 292.1698 290.8688 289.0618 287.3261 285.3442 282.4561 282.4278 282.049 280.9023 280.9845 282.8661 283.7403 283.6888 283.2102 280.8397 277.7997 279.745 279.1634 278.2025 277.477 278.7069 279.2368 278.0966 278.8055 280.4395 282.4629 284.341 286.1253 287.4329 287.2165 286.1091 285.3005 281.3764 279.4806 281.1266 279.8259 278.4386 279.4505 280.1049 281.2614 280.5216 279.327 277.0663 275.1371 273.0701 270.8423 268.0416 264.9902 262.1057 256.8975 252.9918 260.7789 262.2727 264.3756 265.6161 267.0427 268.4637 269.9928 270.7281 269.2967 265.1337 266.2601 266.5936 265.5227 264.154 262.184 261.3538 259.2215 257.0445 252.6822 252.8779 252.3389 249.9727 246.8752 242.7571 239.3211 238.5275 238.5302 238.6718 239.6605 242.8345 244.4925 244.6645 243.9105 243.0661 244.8718 245.8422 248.0894 248.8155 249.959 251.4934 252.6422 253.6144 255.2028 255.6099 256.0615 256.9099 256.7509 254.1122 248.6431 244.49 244.7169 248.5402 251.9466 254.2064 257.5309 259.059 260.4452 261.9731 262.942 263.9164 265.3267 266.3906 267.7879 269.2016 270.7517 271.5655 272.3095 272.9631 273.6966 273.9236 273.0205 270.8083 266.3919 254.1515 252.4328 251.5356 253.1877 253.7877 254.5994 256.0334 257.0473 256.8735 256.2667 256.0382 256.827 257.8224 259.1273 259.5882 259.4463 260.143 263.6256 267.8489 269.0763 269.4212 271.2681 273.8099 274.456 274.3108 273.2806 272.2304 270.3359 269.423 269.085 268.7225 268.724 269.5999 270.1716 269.9084 268.8749 265.5331 263.5462 261.0699 257.5139 253.7154 251.0404 248.6825 254.2793 255.831 253.3885 256.007 256.7558 257.2054 257.6717 258.7464 260.4659 261.7875 261.9766 262.6103 264.6581 265.7452 266.802 267.4624 268.4561 269.0192 269.2007 268.9432 268.4881 268.1434 269.1459 269.8787 270.3505 270.4027 270.3918 269.7139 269.0864 268.4785 266.4286 264.9625 265.0367 266.3741 267.7564 268.8125 269.1288 269.6611 268.849 266.2028 263.9375 261.4567 259.5535 258.2961 255.8687 253.3575 250.3688 245.6506 244.976 244.8777 244.2174 245.2694 238.4798 242.1935 244.2053 247.3023 248.7234 248.6192 246.1328 241.7218 233.231 230.8715 230.807 233.1957 233.3414 233.6375 233.3848 232.614 232.0972 232.3794 232.5069 232.483 232.3269 232.6839 232.738 232.5422 232.2612 232.1453 231.6207 231.3236 231.4383 231.5555 231.6197 231.7453 231.771 231.7755 231.6281 231.6209 231.7084 235.5144 236.3882 235.6018 235.3486 236.1024 234.3203 235.798 236.3336 236.6613 236.4428 237.1886 238.3682 238.4582 238.8107 239.2297 239.3632 241.373 243.5397 244.0649 242.5745 241.6633 241.1108 240.6862 241.1124 246.1216 248.1421 250.3029 252.1254 253.6248 255.0897 256.6976 258.2186 259.9079 261.8773 262.612 262.8719 263.3719 263.3652 262.8961 262.1693 261.8676 261.2782 260.5811 260.0904 260.036 260.0037 259.4102 259.1104 259.4009 260.0132 261.0193 262.7898 263.9072 264.9148 265.3251 264.9167 264.1457 263.0587 261.5794 259.778 255.7334 255.066 255.0049 255.3656 254.5861 253.0849 250.6561 247.5607 245.0858 244.2981 245.0762 246.1334 246.8165 247.4207 246.9892 245.7802 244.2355 -9999 +266.0275 267.5842 273.4763 277.7387 279.5182 281.8849 284.7039 287.657 289.3404 289.1652 287.1652 284.299 279.6029 280.9536 285.4156 288.3986 291.2877 293.8401 296.9417 296.9821 296.2667 295.4769 296.1813 297.9691 299.6264 301.0854 302.114 302.2008 302.8372 303.4293 304.5745 305.4379 305.8152 305.9568 305.3672 304.0289 302.1093 300.5594 297.6868 295.4442 294.7243 293.8557 293.4345 293.2945 294.2542 293.0787 293.3835 294.427 294.2962 293.8681 293.9171 294.6789 294.9274 295.2118 295.0139 293.3959 294.2153 294.7189 294.9404 294.6708 294.6579 293.6568 292.7787 291.977 293.5471 294.1182 294.4413 294.5992 294.5976 294.2397 294.5678 294.4682 294.185 293.0253 293.5498 294.2162 293.2437 293.619 294.0244 293.6889 293.3825 292.417 290.4581 289.5773 288.2242 286.5594 284.615 282.5003 280.2289 278.2512 276.4247 276.3786 278.5739 279.8295 281.3456 282.4851 283.4827 282.4784 279.6504 277.2539 269.6749 264.3083 261.7852 261.6976 260.1531 261.4524 261.2248 261.2962 261.9793 271.8648 282.7113 283.7158 284.89 285.7689 286.0747 284.2722 280.7355 276.2681 271.0103 267.0551 271.7924 274.0499 275.9737 277.0535 278.7312 280.7318 281.933 283.8448 287.2637 288.6697 290.6061 293.0421 294.277 295.6448 297.4182 299.3016 301.6505 304.2303 304.1261 303.8911 303.9128 303.3137 301.3109 299.4802 298.0838 295.4043 293.4455 292.8228 291.5154 290.5936 290.3405 289.1249 286.9547 284.8942 283.3511 279.9732 277.968 273.5677 269.515 267.8281 274.2278 278.388 280.8898 282.1131 283.081 286.6353 288.5284 290.128 291.6263 291.6765 289.7358 288.5145 286.1044 283.9098 280.778 280.9938 280.3428 279.2241 279.7459 281.1307 281.8954 281.8396 281.7839 279.2006 275.5947 275.8005 276.7794 275.8476 274.6825 276.6523 276.8808 276.8658 279.6803 281.5139 283.4743 285.2778 287.1291 287.8792 288.196 287.4178 286.1571 284.7036 284.7303 285.0775 283.8608 281.504 281.6963 282.5578 283.3387 283.1543 280.073 277.8703 275.2853 272.8137 270.7003 268.2429 265.3441 262.1111 257.6766 254.8409 261.9855 263.7922 265.4158 267.1261 268.1385 269.6003 270.4343 271.9211 271.6934 269.3953 266.2601 266.5936 265.5227 264.154 262.184 261.3538 259.2215 257.0445 252.6822 252.8779 252.3389 249.9727 246.8752 242.7571 239.3211 238.5275 238.5302 238.6718 239.6605 242.8345 244.4925 244.6645 243.9105 243.0661 244.8718 245.8422 248.0894 248.8155 249.959 251.4934 252.6422 253.6144 254.1652 254.6384 255.389 256.6835 254.483 251.6854 246.4771 243.6894 245.3513 248.5582 251.9494 254.2206 256.7978 258.279 259.8844 261.0126 262.2334 263.1057 264.4121 266.165 267.1343 268.3391 270.3059 271.2708 272.1095 272.6958 273.2579 273.483 272.6654 270.2253 266.2824 254.4478 251.8024 249.938 252.8092 254.1904 255.2319 255.4322 255.5484 254.4388 254.8305 255.665 255.8851 256.476 255.5918 257.2414 261.5193 264.6668 267.3823 270.1393 270.3105 270.4534 270.499 272.8336 273.5702 273.0263 272.0648 271.1488 269.2269 268.5312 267.9141 267.9631 268.4328 269.4719 270.0368 269.8021 268.5535 264.3786 262.944 260.8023 257.103 253.0874 248.1637 251.839 254.7424 254.7828 253.0189 255.9852 257.0475 257.9527 259.1217 260.2228 261.4431 262.6101 263.307 263.2294 264.6497 265.4062 266.2438 266.9073 267.8543 268.0104 267.8149 267.5418 267.2702 267.6357 268.7116 269.5191 269.9807 270.1843 269.908 269.2166 268.7018 268.3289 266.8101 265.2523 264.4604 265.4143 266.7427 267.4717 268.2806 268.9201 268.1412 264.8232 262.733 259.4253 255.6044 251.979 248.8427 248.8821 246.107 242.4359 247.5152 247.2581 245.3422 246.147 243.0766 241.771 246.1057 249.8072 251.2614 250.586 248.1031 244.8509 240.826 233.755 231.4711 230.8344 233.5829 233.61 234.1133 232.4843 232.059 232.0899 232.0925 232.2705 232.1874 232.37 232.4516 232.3439 232.2218 232.2641 232.1243 231.6951 231.6499 231.7804 231.8598 231.9381 231.8839 231.9933 231.7797 231.8418 231.2564 233.3371 233.7508 233.5331 233.2819 233.6543 233.9563 234.7276 234.6378 234.6198 234.8028 235.5145 236.7445 237.2648 237.4832 238.9188 240.4428 242.0117 242.6831 241.6531 239.4244 239.1076 238.6063 239.2201 244.0476 246.8241 248.7555 250.5506 252.2065 253.4952 254.7487 255.75 257.3057 258.8598 260.346 260.603 261.0628 261.7026 261.135 260.6412 260.0213 259.5495 259.1192 258.8103 258.1115 258.0398 257.567 257.0493 257.507 258.2442 259.6747 260.9466 263.4321 264.4886 265.3096 265.385 265.3405 265.0693 263.7372 261.6447 259.8354 255.4644 254.5647 254.1765 254.8011 255.1855 253.5631 251.9814 250.2414 247.8892 243.6188 242.2346 243.0235 244.8977 245.4682 245.2214 244.322 243.3374 -9999 +267.4691 269.3742 277.122 280.3477 282.5107 283.4518 285.0342 286.7957 287.4288 286.7497 284.4506 281.0949 277.7457 281.6867 286.1523 288.8153 291.3698 293.9403 297.7526 298.5473 298.6666 298.0528 297.5918 298.1083 299.0689 299.8302 300.4345 300.8369 301.3715 302.3042 303.6912 304.7822 305.4898 305.9538 305.4865 304.297 302.2573 299.6462 296.1783 293.6302 293.0059 291.8419 291.2404 291.036 291.8165 291.8767 291.8336 293.2586 293.3935 292.8661 292.6404 293.5303 293.5251 294.0564 294.0058 292.3115 292.9312 293.804 294.3635 294.4611 293.786 292.9787 292.0773 291.1107 293.0684 293.6104 293.5896 293.3093 293.0681 293.1394 293.8315 293.8426 293.9086 291.3596 291.5453 290.6722 291.3976 292.4046 292.1172 292.2303 292.9336 291.4135 289.5422 288.9528 288.3263 286.7469 285.7624 284.5002 281.9642 280.457 277.9698 277.9562 280.4585 281.5107 282.6667 284.3012 284.9538 282.9771 280.1735 277.1186 268.4332 264.688 261.7068 261.5266 262.05 261.4044 261.097 262.0135 268.9831 274.8396 281.59 283.216 284.4422 285.4369 285.5833 283.6345 279.632 274.302 269.0571 266.2303 270.9355 273.4736 275.873 277.4297 279.9707 282.2597 283.6945 285.0558 288.4063 289.8149 291.4395 293.1547 295.0647 296.1969 298.1945 299.8566 301.9153 303.5381 302.6181 302.5454 302.6283 300.5084 297.2607 297.3359 295.7508 294.0286 291.0427 291.114 290.2404 289.1956 288.5972 288.111 286.2854 284.012 282.3444 279.7254 277.6487 273.3726 266.9569 268.9182 274.4219 277.8704 280.3854 281.4318 283.472 287.3415 288.8973 290.5639 291.8631 291.3569 289.216 287.3459 284.6261 281.7701 279.2712 279.888 278.7047 277.8203 277.5722 279.0096 280.2989 280.1351 279.7345 278.5711 275.3776 271.7865 273.5619 272.5359 272.9038 275.4141 275.5568 277.2155 280.3314 282.1286 283.7359 285.5477 287.097 288.3051 288.4933 287.4178 286.1571 284.7036 284.7303 285.0775 283.8608 281.504 281.6963 282.5578 283.3387 283.1543 280.073 277.8703 275.2853 272.8137 270.7003 268.2429 265.3441 262.1111 257.6766 258.994 261.9855 263.7922 265.4158 267.1261 268.1385 269.6003 270.4343 271.9211 271.6934 269.3953 268.9402 269.0039 267.3619 265.4437 263.4048 262.133 260.9726 258.3544 254.6661 255.4298 254.1525 251.6256 249.334 246.515 243.5312 238.723 238.595 237.9634 239.1062 242.1059 242.9282 242.5153 241.1873 240.3158 240.9258 242.3971 245.9056 248.0132 250.2991 250.4161 252.2441 252.8696 253.5568 254.5108 255.3031 254.5595 252.7332 248.6779 244.5857 242.2869 245.6706 248.3164 250.8036 252.5644 257.2396 258.8836 260.3899 261.7061 262.8955 263.7236 264.7169 265.7403 267.0233 267.7724 270.2672 271.3866 271.9641 272.2439 272.4994 272.509 271.4456 269.239 265.7518 255.5845 251.7031 249.3009 252.6144 253.2262 251.7287 253.4832 253.0002 252.9392 257.249 260.5759 262.4101 263.4304 264.347 264.1901 266.3095 268.38 269.6551 271.8321 271.3841 270.2175 268.6762 270.7221 271.7096 271.1664 270.7045 270.3047 268.3645 267.7024 267.1215 267.5318 268.7913 269.7899 270.4156 270.2858 268.6263 263.9961 261.1263 258.3008 256.3976 253.3142 247.6195 251.9476 252.909 251.9899 251.9661 255.6843 257.2517 258.4267 259.6837 260.9549 262.1655 263.2211 264.0729 263.8906 264.4028 264.8914 265.7708 266.1336 266.8417 266.7811 266.2238 266.0005 266.0092 268.3199 268.722 269.2431 269.6296 269.8378 269.3548 268.5767 267.955 267.6608 266.7612 265.4121 264.315 264.7812 265.6484 266.711 267.4911 268.1826 267.6469 263.6265 261.7324 259.0646 255.9327 254.3038 249.5368 244.3568 244.827 249.9289 249.7551 248.3573 246.8214 247.9409 245.5005 246.46 246.5107 251.6852 254.1038 251.8431 249.6183 245.7968 240.4824 234.9298 232.7941 232.5317 230.8301 232.5678 233.963 232.6796 232.2363 232.1561 232.1293 232.0117 232.066 232.0154 231.9762 232.299 232.3314 232.4163 232.0766 231.8792 231.941 231.9784 231.9721 232.0077 232.125 232.076 231.8372 231.8607 231.2536 232.2686 232.6133 232.7327 232.8948 232.6545 233.5311 233.5318 233.5212 233.7311 234.4091 234.5975 235.6696 236.8284 237.4907 239.693 240.9062 241.8618 241.1671 238.1831 237.7649 239.3701 240.5154 242.1027 245.6359 247.2597 249.0206 250.4396 251.6157 252.3116 253.6855 255.1458 256.456 257.5621 258.3928 258.8949 259.1102 259.2105 259.0832 258.0771 257.8576 257.06 256.9617 256.9918 256.1488 255.3798 255.166 255.6735 257.0227 258.4114 260.2393 261.5189 264.2471 265.233 265.63 265.128 264.9146 264.4928 263.4915 261.7762 260.2459 255.2375 254.0142 253.5182 253.7273 254.6931 254.218 252.7913 251.7215 250.3806 247.241 244.62 241.4532 241.5902 242.6205 242.9757 242.7369 242.0261 -9999 +268.8915 274.4018 278.0048 280.7695 282.7211 283.9089 284.9991 285.0308 285.0678 284.2698 281.9182 276.6341 280.2359 283.0123 286.1161 288.4655 291.2451 293.7681 297.7532 298.8549 299.2366 298.8807 298.6127 298.5253 298.1538 298.2004 297.4808 298.6906 300.3677 301.8654 302.9973 304.2218 304.6349 305.0534 305.3238 304.593 301.7232 299.5563 298.3923 296.9724 295.1696 293.0542 291.5099 290.4824 289.3407 289.9988 290.1283 291.251 292.3879 292.364 291.402 291.7819 292.4157 293.0096 292.9272 291.6429 291.8846 292.9584 293.7295 293.6283 293.017 292.2084 291.4198 290.6029 291.9234 292.2871 292.3604 292.1932 292.6181 293.2244 293.9936 293.6793 292.6581 289.7442 290.026 289.1201 289.9942 290.7739 290.4743 291.3024 291.4499 290.7948 288.1383 288.0862 287.9738 287.4679 286.5852 285.1122 284.1437 281.7541 279.9896 279.9502 280.9549 282.5302 283.9309 285.537 285.4943 282.2811 279.2794 275.4582 267.1386 263.5404 261.3972 261.4187 261.6912 259.9258 262.1801 267.6917 272.3225 275.9711 282.4951 283.0095 283.9509 284.4871 284.189 281.5103 276.0284 270.0884 266.8847 265.8536 269.5577 271.8071 274.6857 277.0517 280.1679 281.9537 283.7318 284.55 287.8588 289.4046 291.2006 292.8725 294.1501 296.0407 297.9522 299.9121 301.7978 302.5822 301.0702 300.953 301.7454 299.7941 296.4198 295.3095 292.6966 291.8978 288.3506 287.8461 288.6641 287.7657 286.3566 286.112 284.3322 282.4235 280.6856 278.4469 276.403 271.368 265.9212 268.5378 272.6169 275.9914 279.0333 280.594 283.5524 287.3233 289.6301 291.1092 291.6194 291.3569 289.216 287.3459 284.6261 281.7701 279.2712 279.888 278.7047 277.8203 277.5722 279.0096 280.2989 280.1351 279.7345 278.5711 275.3776 271.7865 273.5619 272.5359 272.9038 275.4141 275.5568 277.2155 280.3314 282.1286 283.7359 285.5477 287.097 288.3051 288.4933 287.8679 287.0583 286.0351 285.7208 284.0951 284.0216 282.8989 282.3309 282.5314 283.5172 282.9167 280.113 277.841 275.0823 272.5447 270.105 267.9931 265.2014 261.9016 259.6884 261.0487 264.1168 265.7464 267.0258 268.3739 269.6873 270.5326 272.1468 273.3049 274.0545 271.9272 271.4913 270.6216 268.809 266.0677 264.8977 262.9767 260.376 257.4523 258.2554 257.5164 255.4536 253.586 251.0878 249.0521 246.5077 242.0606 239.3778 238.5261 237.9851 238.5712 238.452 238.5281 238.7472 238.6797 238.5917 239.2851 247.7631 249.2468 250.4337 250.4853 250.2716 252.8026 253.1088 254.3429 255.2767 253.3602 251.1617 246.2654 243.1264 244.0862 245.0609 247.5695 249.4942 250.9344 255.7142 257.7647 259.3053 261.143 262.0689 263.2309 264.0561 265.5789 266.1287 267.5294 269.5688 270.5628 271.2317 271.5912 271.7326 271.3524 270.1628 267.9522 265.2019 255.5159 251.2322 250.2875 250.7442 249.6987 251.6214 253.3893 255.5143 257.2898 261.6744 263.8481 265.5305 266.5793 267.9383 268.2516 268.8977 270.3076 271.4496 272.817 271.7576 269.4399 267.3488 268.4233 269.5907 269.1528 268.8938 268.7115 267.4953 266.8431 266.6185 267.5673 268.9012 270.1183 270.9005 270.9431 269.5722 265.6245 262.6029 259.0578 254.5668 250.1608 247.3956 250.5585 250.2763 251.2227 254.4764 256.2341 257.8641 259.2498 260.2267 261.3857 262.7061 263.612 264.2466 263.7567 263.0953 264.0773 264.4866 265.1047 265.3613 265.2121 264.8143 264.7995 265.0613 267.3316 268.4795 268.8704 269.2718 269.3961 268.7686 267.8291 267.2281 266.8367 266.3218 265.1674 264.3672 264.2985 264.9029 265.8149 267.1064 267.377 266.8038 263.0329 260.8674 257.9138 250.4735 249.326 251.9162 254.168 254.6538 253.6971 249.7155 249.4092 249.8953 250.7152 247.5273 248.8023 249.3457 253.0879 255.1671 252.1627 249.5024 245.637 241.0652 234.0039 231.9294 231.9389 232.0978 230.8213 231.386 232.9518 232.7307 232.3346 232.0721 232.0247 232.1925 232.0907 232.0369 232.1936 232.4758 232.5724 232.4246 232.2041 231.985 231.9457 231.883 232.01 232.1305 232.2057 231.8637 231.81 231.4194 231.9822 232.1245 232.2737 232.3033 232.3185 232.754 232.97 233.0187 233.2492 233.7383 234.3059 235.0224 236.4537 237.3975 239.5994 240.8184 240.1284 237.849 238.1593 239.0619 241.0549 242.8553 244.0018 245.9837 246.9663 248.1599 249.0105 250.0557 251.225 252.6089 254.1132 255.3222 255.6536 256.7921 256.9061 256.9864 256.9686 256.3534 256.0499 255.4935 254.4234 254.5648 253.4501 252.8127 253.0758 254.4666 256.3368 258.2256 259.6877 260.9505 262.106 264.9914 265.749 265.7221 264.8203 264.1368 263.6395 262.847 261.8397 259.987 254.9841 253.6346 253.0621 253.0461 253.7737 254.6096 253.526 252.0775 251.4492 249.2845 247.4831 245.5489 241.6025 239.8377 240.369 240.6168 241.084 -9999 +269.0202 273.4699 277.0174 279.2474 281.1145 282.4382 283.1858 282.2733 281.9453 281.1285 278.3285 277.7473 282.2075 284.9388 286.594 288.2911 291.2685 293.7074 296.9335 298.0344 298.3397 297.7573 296.9254 296.554 296.0952 295.3486 293.718 296.0306 296.2395 299.5191 301.7508 302.8994 303.7276 304.5518 304.9869 305.1361 303.0821 301.848 300.7453 300.1543 298.759 296.8999 295.2418 293.3535 290.9977 287.3411 288.0172 288.6334 290.1542 291.5385 290.9853 290.2738 291.1716 291.632 291.8888 290.8389 291.3574 292.0283 292.6083 292.7914 292.4361 291.3318 290.5648 289.9073 290.9945 291.4724 290.8933 291.19 292.384 293.3483 293.7605 293.4294 292.3936 288.9375 288.3537 288.536 288.7628 288.5204 288.8365 289.9456 290.048 289.971 287.158 286.4487 287.3737 287.2957 286.6923 285.6103 284.3248 283.5268 281.242 280.2712 281.3241 282.7523 284.0842 284.8471 284.0677 281.4807 277.6129 273.772 265.5643 262.8934 261.5393 261.3996 261.8207 260.7272 262.5645 268.6373 271.8143 275.3559 280.3279 281.8459 283.0515 283.4544 282.7461 280.1122 273.0122 266.4875 264.5761 267.7035 270.7312 273.6323 275.7995 277.9195 279.9148 281.5304 282.2753 283.4561 286.5735 288.3242 289.9757 292.4694 294.0387 296.0086 297.4239 299.2338 301.1657 302.051 299.9626 299.9217 301.7454 299.7941 296.4198 295.3095 292.6966 291.8978 288.3506 287.8461 288.6641 287.7657 286.3566 286.112 284.3322 282.4235 280.6856 278.4469 276.403 271.368 265.9212 268.5378 272.6169 275.9914 279.0333 280.594 285.4286 287.3233 289.6301 291.1092 291.6194 290.7923 288.8848 286.4773 281.9308 278.1579 276.8406 277.15 277.3123 276.3917 276.7886 276.7918 277.866 277.4617 277.9038 277.6384 275.6384 271.4135 269.8859 269.5932 272.5365 273.6913 275.1292 276.5464 279.8926 281.9247 283.5883 285.4353 286.812 287.8825 288.1574 287.8905 287.2084 287.2925 287.1466 287.1594 285.0117 282.5321 281.6436 281.1888 281.2467 280.6441 279.4936 277.33 274.8818 271.8181 269.5955 267.9378 265.37 263.4906 257.7565 262.9068 265.2184 266.8813 268.2556 269.978 270.7076 272.3905 273.837 275.0153 276.1452 274.3607 273.5408 271.4068 269.2251 267.5401 265.8531 264.5143 263.1203 259.7238 260.4722 259.2694 257.0968 254.8075 251.8269 248.4264 242.9238 244.3872 244.6333 240.3924 240.2726 237.9686 238.2886 238.3056 238.018 238.0265 237.8686 238.1422 248.0948 249.309 249.3443 250.4468 250.5028 251.6466 253.1624 253.412 254.6454 251.4109 248.7307 243.8425 242.5982 243.8143 245.6491 247.3972 250.1401 252.0632 255.2157 256.8568 258.8156 260.3908 261.4472 262.6122 263.5226 264.4675 265.6181 266.4422 269.0231 269.7212 270.2609 270.2732 270.016 269.0794 268.0558 266.3304 263.6324 254.3113 250.6421 250.1006 249.4377 252.0869 254.9501 257.1559 258.6951 260.2624 263.49 265.4851 266.9801 268.7192 270.0661 271.008 271.2885 272.2761 273.017 273.6317 272.0542 269.1581 265.6916 266.0345 266.9521 267.0097 267.1029 267.0425 266.3183 266.4197 266.3593 267.3686 268.6456 270.0186 271.2646 271.1542 269.6289 265.3951 262.1137 257.937 252.5786 246.4669 248.9294 249.4802 251.4285 252.8911 255.4709 256.7762 258.218 259.6221 260.4981 261.5166 262.2227 262.8087 263.1701 262.9369 261.8895 262.4641 263.5423 263.6103 263.6808 263.5446 263.3667 264.0635 264.5047 266.5833 268.1563 268.5817 268.8365 269.0036 268.5515 267.4372 266.754 266.2889 265.5484 264.3021 263.5185 263.4969 264.1368 265.319 266.6125 267.0351 266.1661 262.6678 258.8114 257.1066 257.8087 256.0778 257.3139 257.9969 256.8552 254.519 251.0499 252.374 252.8359 252.8263 252.4839 249.2885 251.4685 253.6559 255.5998 251.1694 248.1899 244.8582 239.5432 233.9013 231.9257 232.8258 232.8203 232.4507 230.8059 233.1157 233.1104 232.8685 232.5359 232.4366 232.2631 232.2116 232.1393 232.2808 232.4315 232.4105 232.3291 232.1604 232.1721 232.186 232.1729 232.1187 232.2012 232.2481 231.9979 232.0165 231.7805 231.8269 231.8943 232.1421 232.0968 232.2 232.2971 232.3188 232.7034 233.2992 233.7533 234.2846 235.0083 236.0596 236.6314 238.6017 238.8564 236.9658 237.7779 238.86 240.5633 242.1811 242.9794 244.067 245.573 246.2419 247.0151 248.1682 249.1046 251.0162 252.0831 252.8422 253.3204 254.1797 254.9565 255.1143 255.5008 254.9017 254.0726 253.8041 252.3061 251.3013 250.9263 247.9612 251.36 253.5924 255.0369 257.2852 259.2433 260.5852 261.7482 263.1391 265.4768 266.2404 265.6796 264.66 263.3627 262.4563 262.0471 261.36 259.9312 255.069 253.3608 252.6448 252.456 253.1754 254.1916 254.7411 253.7068 253.5638 251.0226 249.8457 247.9108 244.773 241.4951 240.0121 239.4694 239.4333 -9999 +267.0937 269.7527 274.0144 277.0695 278.9579 280.7712 280.6715 279.3733 278.3756 275.4688 273.9826 279.0404 284.1133 287.2362 289.2748 290.8551 291.9353 294.1515 296.5016 296.809 296.7183 295.8891 295.0583 294.0795 292.6377 291.6678 290.972 292.9261 295.3545 298.0628 299.8271 301.1361 302.2573 303.1424 304.9714 305.0876 304.4431 303.658 302.8655 302.2258 301.2126 299.7432 298.2371 296.1158 293.1045 290.9136 288.391 285.3687 287.2598 288.4687 289.7047 289.1786 289.596 290.1282 290.2519 289.1572 290.113 290.9063 291.4357 291.7099 291.1908 289.6522 289.7752 288.5829 289.453 289.4461 289.7285 290.724 291.7097 292.722 293.0238 292.7609 291.7007 288.4072 287.119 286.4675 286.4512 286.4187 288.0429 288.7525 289.1933 288.977 285.5805 284.6637 285.2979 286.1695 286.3829 286.044 284.77 283.5128 281.9336 280.183 280.3253 281.5839 282.3781 283.066 282.022 279.711 275.9999 272.9219 265.0323 263.11 261.8128 261.2932 261.5682 260.0987 263.373 269.5326 273.5285 276.2263 279.7808 281.8459 283.0515 283.4544 282.7461 280.1122 273.0122 266.4875 264.5761 267.7035 270.7312 273.6323 275.7995 277.9195 279.9148 281.5304 282.2753 283.4561 286.5735 288.3242 289.9757 292.4694 294.0387 296.0086 297.4239 299.2338 301.1657 302.051 299.9626 299.9217 300.9505 298.9442 296.0567 294.2381 290.9751 288.6314 287.1055 284.5642 287.0899 286.1414 284.5717 283.6385 282.4346 280.843 278.7661 275.7048 274.2804 269.7968 263.2417 268.1793 272.6553 277.2764 280.0684 282.0397 285.8187 287.7792 290.0509 291.426 291.1606 290.1895 288.8467 286.9376 282.5079 275.6556 274.4745 273.9798 274.5143 274.914 275.1467 274.2425 275.0187 275.8947 276.6866 276.6454 275.5162 272.4424 268.3304 269.2055 271.4279 272.355 273.9817 275.475 278.9299 281.2295 283.0995 284.8357 286.2591 287.472 287.9483 287.8635 286.8644 286.6051 287.0114 287.0337 286.0248 284.1436 281.9976 280.6615 279.8765 279.0364 278.1505 276.3237 274.2282 272.1183 270.9286 269.2545 267.2836 264.1549 262.7806 264.8674 266.6936 268.2185 270.0797 270.8955 272.3016 273.1536 275.0266 276.9609 278.1164 276.576 274.3614 272.5317 271.0692 268.6831 267.559 266.6519 265.6743 263.7856 262.1149 260.1415 256.3237 253.4699 248.9407 243.9625 246.9382 249.3109 250.9642 250.6976 246.637 239.9945 237.1763 237.9591 238.0246 237.7624 237.8186 237.9853 245.2876 247.4959 247.5639 248.5854 249.6131 250.9326 252.3901 253.0536 251.5094 247.819 243.92 241.9064 242.941 243.7912 246.9255 251.2365 253.1465 254.3949 256.1613 257.2009 258.7099 259.5319 260.9634 262.1741 262.9115 264.0876 265.4202 267.9679 268.5166 269.1785 269.4908 269.0724 268.1716 266.6509 265.2552 264.2708 261.1685 253.3761 250.5418 248.4914 250.4323 254.4516 256.8162 258.7821 260.3029 261.5433 264.6609 266.3201 268.1272 269.7486 271.4259 272.4462 273.1804 273.9622 274.1754 273.5671 271.6416 268.3667 264.3445 262.7362 263.4037 263.782 264.4295 264.8096 264.8074 265.3481 266.0555 267.2079 268.675 270.301 271.3849 270.9458 269.2395 264.6555 261.3307 256.604 250.5726 246.1943 249.7605 252.2568 253.4061 254.2735 256.5592 257.4345 258.361 258.9305 259.7813 260.5718 261.0811 261.4268 261.9565 261.5981 260.611 261.0213 261.9901 262.0337 262.121 262.1875 262.7104 263.9532 264.6877 266.9269 268.002 268.7532 268.613 268.5747 268.3531 267.2427 266.0461 265.1922 264.4825 263.6319 263.0293 263.1111 263.5375 264.8051 266.3956 266.6335 266.3408 263.175 261.6631 262.2654 261.5046 259.6949 260.2348 259.3104 257.6488 255.1016 252.8131 254.4381 254.7262 254.6068 254.3154 252.3203 253.5806 254.4914 254.4901 250.2574 247.8505 244.6354 239.416 233.2475 232.4642 233.1642 233.0813 232.4983 232.0813 231.9785 232.9491 232.9639 232.881 232.8203 232.7162 232.5669 232.4858 232.4042 232.5556 232.4427 232.5063 232.6358 232.6335 232.5971 232.6028 232.5525 232.3752 232.2982 232.1389 231.9552 231.4818 231.5737 231.7501 231.9822 231.9406 232.1971 231.9416 232.4266 232.8045 232.9312 232.9829 233.7017 234.5345 235.447 235.9721 236.3456 236.036 236.8867 237.8792 239.2636 241.1711 242.445 242.4931 242.9276 244.6182 245.2216 245.9116 247.5245 248.6857 249.5815 250.2338 251.2612 252.4305 253.0753 253.6071 253.5646 253.1624 252.1795 250.4502 250.1106 249.1161 248.4419 248.3651 247.9612 251.36 253.5924 255.0369 257.2852 259.2433 260.5852 261.7482 263.1391 265.4768 266.2404 265.6796 264.66 263.3627 262.4563 262.0471 261.36 259.9312 255.069 253.3608 252.6448 252.456 253.1754 254.1916 254.7411 253.7068 253.5638 251.0226 249.8457 247.9108 244.773 241.4951 240.0121 239.4694 239.4333 -9999 +266.6573 266.9048 269.5969 274.2889 277.2159 277.6264 277.5084 276.5628 273.9897 272.8984 276.8166 281.176 283.9117 287.2404 289.6632 291.6878 293.1334 294.373 295.112 295.0033 294.6462 293.6717 292.1682 290.4891 289.2592 288.6295 291.317 295.6801 297.9102 299.3558 300.8637 301.711 302.6352 303.7097 304.7166 305.266 304.7387 304.0662 303.1993 302.7148 301.793 299.9665 298.0564 295.7374 294.2237 292.281 289.03 286.7455 285.6997 285.6336 286.9249 287.5756 288.0209 288.5769 288.1846 287.6508 288.8275 288.817 288.1104 289.1942 290.2825 290.0652 288.6428 287.6164 287.9311 287.9151 289.0343 290.3529 291.5247 291.828 291.7971 291.851 291.3324 288.5741 285.7777 285.5265 285.2204 285.6213 286.5981 287.3176 287.5417 287.8069 284.8148 284.6637 285.2979 286.1695 286.3829 286.044 284.77 283.5128 281.9336 280.183 280.3253 281.5839 282.3781 283.066 282.022 279.711 275.9999 272.9219 265.0323 263.11 261.8128 261.2932 261.5682 260.0987 263.373 269.5326 273.5285 278.5216 279.7808 281.0175 281.864 282.1545 281.7396 279.4915 273.7814 267.6013 263.679 268.2737 271.1204 273.4862 274.7666 276.6695 278.5569 279.5333 280.3531 282.3333 286.6241 288.4627 290.3877 292.1673 294.2585 295.286 296.9642 298.9117 300.3437 300.3339 298.8259 298.9391 299.2325 296.9113 294.6019 291.7301 285.8376 285.414 283.6418 284.0425 285.8321 284.8598 282.843 281.8076 280.7462 279.6511 277.6724 273.2897 271.2777 266.4763 262.9568 268.4439 273.0441 277.7219 280.6496 282.5248 286.2823 287.8545 289.6425 290.3914 290.5427 289.9351 289.1627 287.9194 286.0256 282.0268 272.0561 271.7775 272.5879 272.8256 272.3165 271.717 271.623 274.2043 275.2778 275.3421 275.0893 273.8413 268.7896 266.4653 268.7232 271.0375 272.2808 273.9222 278.446 280.724 282.6539 284.1999 285.9088 287.1792 287.3761 286.7935 286.0074 285.2605 285.5171 285.7337 284.7985 283.42 282.3835 281.8364 280.7698 279.0466 277.9948 276.7734 275.536 275.0904 272.98 271.6917 269.8107 268.0973 267.2533 266.5634 268.3279 269.9852 271.6943 272.5201 273.2111 274.8442 276.5733 277.842 278.9649 278.0758 276.2188 274.4751 272.403 271.0133 269.9101 269.5399 267.3357 266.3995 263.2631 260.6053 255.8375 248.1487 246.2679 250.2155 252.6728 253.8886 256.4015 255.5896 249.9029 242.3429 238.4408 238.4581 238.1451 238.0026 237.8187 237.6198 240.9033 244.6976 246.0941 247.0409 248.4807 250.0535 251.1466 252.2165 251.8217 244.4803 243.7591 244.0289 244.093 246.1461 249.3001 251.8341 254.0354 255.5908 257.3484 258.1749 258.9647 260.0488 261.9934 262.5289 263.5813 264.9666 266.081 267.8304 268.343 268.7623 268.6939 267.7913 266.2058 264.7629 262.869 261.3286 258.2728 251.7156 249.7714 247.4599 252.8325 255.5377 257.4169 259.4886 260.8105 262.0386 264.8671 266.2659 268.6493 270.2767 271.8313 272.8582 273.7706 274.9873 274.7256 272.7744 270.5061 267.1341 263.9373 261.2333 260.5447 260.7713 261.3312 261.8357 263.1779 264.4703 265.5833 266.5891 268.4233 270.0617 270.9207 270.4747 268.9172 263.7351 260.7955 256.0323 249.1332 246.3421 249.7359 251.951 253.3758 254.4702 256.3206 256.806 257.2067 257.4776 258.4859 259.1108 259.1331 260.0916 260.2073 259.9022 258.9867 259.5487 260.3669 260.6256 261.0393 261.8149 262.7501 264.2213 265.077 267.5615 268.2105 268.7676 268.4758 267.9515 268.0082 267.0586 265.9674 265.0595 263.7389 262.9969 262.6625 262.6541 263.138 264.539 266.0742 266.4442 266.9236 264.8986 264.4246 263.9812 263.1716 261.6852 261.2335 260.1489 258.7305 257.3099 255.784 256.7196 256.6722 256.2696 255.4608 254.517 255.3241 255.0436 253.5433 249.4672 247.2924 244.1039 240.307 234.9029 232.615 233.9846 234.1497 234.8582 233.4163 230.7839 232.6981 232.8295 232.968 232.7477 232.5501 232.5205 232.4908 232.474 232.5097 232.5993 232.1423 230.9239 230.4812 230.4682 230.3405 230.4166 230.3804 231.9872 232.4021 231.121 232.2482 231.7412 231.5776 231.8642 231.9406 232.1971 231.9416 232.4266 232.8045 232.9312 232.9829 233.7017 234.5345 235.447 235.9721 236.3456 236.036 236.8867 237.8792 239.2636 241.1711 242.445 242.4931 242.9276 244.6182 245.2216 245.9116 247.5245 248.6857 249.5815 250.2338 251.2612 252.4305 253.0753 253.6071 253.5646 253.1624 252.1795 250.4502 250.1106 249.1161 248.4419 248.3651 251.4317 253.092 255.1078 257.0623 257.9789 259.8595 261.3326 262.6167 264.0962 265.8732 266.0751 265.6187 264.5366 263.3804 261.8422 260.7792 260.5719 259.5537 254.9575 253.434 252.1654 251.2591 251.9095 253.0583 254.3339 254.8158 254.7439 252.7162 251.2445 249.3355 247.1789 244.8595 242.9134 240.6592 238.5598 -9999 +266.5929 266.5428 266.7807 270.7881 273.5478 274.052 273.7391 271.2151 269.4648 276.3795 278.0931 281.1016 284.2473 286.843 289.5952 291.6315 293.2188 293.9522 293.3319 292.9019 291.7231 289.8431 287.7607 287.025 290.6123 293.1968 295.3297 298.373 298.9812 300.0754 301.8729 303.0528 303.9246 304.8937 305.2922 305.3982 305.0753 303.9788 303.1324 302.1023 300.7281 298.2142 296.131 295.524 295.5855 293.3867 289.6049 287.114 286.1995 285.7192 284.3598 285.0366 285.8614 286.3819 286.6871 286.5866 288.8275 288.817 288.1104 289.1942 290.2825 290.0652 288.6428 287.6164 287.9311 287.9151 289.0343 290.3529 291.5247 291.828 291.7971 291.851 291.3324 288.5741 285.7777 285.5265 285.2204 285.6213 286.5981 287.3176 287.5417 287.8069 284.8148 283.9569 284.4066 285.2381 285.721 285.7568 284.7949 283.1057 281.5733 278.9468 278.7285 279.3531 280.0744 281.0169 279.9695 277.0314 274.0158 271.375 265.97 263.4936 262.1599 261.082 261.4398 260.8853 265.0183 269.5432 273.3829 276.8896 278.7065 279.6832 280.4239 280.7953 280.3105 277.5572 272.9746 266.5284 262.5651 267.2784 270.0216 272.7978 273.5981 275.2196 276.8436 278.3462 280.8892 283.1813 287.0997 288.6682 290.2939 292.6171 293.2292 294.7023 295.6646 297.5657 299.2512 298.6871 297.6537 297.7202 296.7947 294.9496 292.3404 288.5507 285.0122 281.7722 280.7419 282.5842 284.0927 283.2416 281.7592 280.2525 278.8175 277.6977 276.3199 271.5468 268.8095 265.0424 262.7678 269.2969 273.8048 277.795 280.5054 282.3435 285.5569 286.6477 287.7181 288.6576 289.7343 290.1713 289.7629 288.5128 286.6458 283.5509 272.6024 271.5828 271.6702 271.6081 271.6693 271.1609 270.8142 272.3736 273.5222 274.3583 274.1287 273.5671 270.563 266.1625 265.5836 267.6099 269.697 273.0587 277.5635 280.1249 282.3624 284.5064 286.3335 286.7837 286.1783 285.8669 284.2988 284.0253 284.3043 284.4528 284.036 282.934 282.3226 281.7094 280.8954 279.8668 278.455 277.295 276.772 276.0914 274.1607 273.634 272.5686 271.5241 269.9714 267.8936 270.1585 271.1801 272.5365 273.3262 274.8681 275.6869 277.263 278.5244 279.9717 279.5809 277.9952 276.4942 274.5956 273.76 272.1854 271.6025 269.5492 268.0784 264.4189 262.323 256.3769 248.1962 250.3789 254.6088 256.6358 258.4237 259.7169 255.8508 252.8491 246.7553 239.8762 237.3876 238.1051 237.9308 237.8517 237.7908 238.1646 241.3552 244.2781 245.2113 246.9673 248.6165 249.7604 250.2303 248.8102 242.4835 241.2363 242.011 243.6755 247.0231 250.5179 252.127 254.0327 255.747 257.7224 258.827 259.6525 261.4346 262.1402 263.3371 264.6371 265.2796 266.374 267.6314 268.3035 268.3026 267.3737 265.9059 264.7724 262.8643 261.1296 256.5427 254.6845 250.6563 248.9404 248.9534 252.9935 255.7702 257.7583 259.5711 261.1479 262.5315 264.9731 266.5079 268.1252 269.6566 271.5729 272.5406 273.731 274.8291 275.1414 272.2837 269.7037 265.7548 261.6048 258.8175 257.3768 258.0754 259.1994 260.1245 262.499 263.555 264.6367 265.7509 267.6158 269.2747 270.0197 269.4494 268.071 263.128 260.1851 256.5325 249.1779 246.5742 248.9039 250.91 252.7476 253.6124 255.3757 255.6379 255.7185 256.4905 257.0482 257.2072 257.5969 257.9995 257.8 257.3422 257.4413 258.4944 259.1884 260.111 261.1021 261.8647 263.0977 264.5075 265.0683 267.6088 267.9909 268.506 268.1741 267.6055 266.8113 266.7418 266.0857 265.1963 263.0636 262.6801 262.3499 262.3545 262.7307 264.2491 265.7671 266.2607 266.7819 265.4847 265.4257 264.838 263.5929 263.1491 262.6454 261.6802 260.4807 259.076 258.3955 258.911 258.5562 257.7755 256.6974 256.2011 256.1441 255.0436 253.5433 249.4672 247.2924 244.1039 240.307 234.9029 232.615 233.9846 234.1497 234.8582 232.0794 230.7839 232.6981 232.8295 232.968 232.7477 232.5501 232.5205 232.4908 232.474 232.5097 232.5993 232.1423 230.9239 230.4812 230.4682 230.3405 230.4166 230.3804 231.9872 232.4021 231.121 232.2482 231.7412 231.5776 231.8642 231.5405 231.6839 231.9197 232.1921 232.2979 232.3061 232.6662 233.3633 234.13 235.0896 234.9354 235.7786 236.6807 237.4135 238.1256 239.6537 241.091 242.1073 241.9225 242.3708 243.9991 244.8327 245.8489 246.8281 247.7799 248.6577 249.3578 250.2582 250.8302 252.1853 252.2365 251.5907 250.5787 248.9288 248.1072 247.2685 244.5741 245.2903 249.6019 251.8118 254.812 257.6466 257.461 258.8864 260.2017 261.7925 263.3564 264.4327 265.7171 265.489 265.0851 264.4879 263.0327 261.5172 260.1702 259.5277 258.8595 256.0362 253.936 251.9985 250.9404 250.9314 251.9364 253.0482 253.8605 254.2303 253.4765 251.973 250.2984 248.2621 246.1366 244.469 242.5392 239.8457 -9999 +266.4234 266.462 266.4177 267.1869 268.7228 269.6497 269.0743 270.133 273.4536 280.5727 282.3218 282.9644 284.9059 287.2372 289.5431 291.2354 292.1173 292.4174 291.5671 290.4634 288.5777 285.6833 286.6329 290.6182 293.227 295.188 297.4162 300.4084 301.2277 300.0754 301.8729 303.0528 303.9246 304.8937 305.2922 305.3982 305.0753 303.9788 303.1324 302.1023 300.7281 298.2142 296.131 295.524 295.5855 293.3867 289.6049 287.114 286.1995 285.7192 284.3598 285.0366 285.8614 286.3819 286.6871 286.5866 287.1372 287.6454 288.9428 289.3995 289.489 289.1725 287.7845 286.7115 286.7066 287.8748 289.3522 290.3675 291.0646 290.6118 290.4892 290.9681 290.7073 288.225 286.1902 284.1049 283.9917 284.3139 284.9099 285.6742 286.5397 287.0835 284.1577 282.8522 283.2204 283.9736 284.7384 283.6666 283.2142 282.985 280.7182 277.9544 277.7836 276.3501 277.3048 278.1483 278.0324 276.2376 273.9416 271.1313 266.05 262.8501 261.8601 261.2094 261.2961 260.3948 262.2891 267.0111 271.4648 276.0199 277.0642 277.6096 279.1137 279.3415 278.2688 275.0648 271.831 265.327 262.2837 268.1706 271.5743 273.6726 275.4724 276.7431 278.2591 280.1658 282.0539 283.8945 287.6114 289.1927 290.9579 291.6414 291.5843 293.2049 294.1075 295.7733 297.2773 296.591 296.0752 295.8814 295.0723 293.0786 290.0568 286.6374 282.3143 279.5255 277.0252 281.6159 281.6547 281.1798 279.9585 278.86 277.7522 275.8994 273.7681 269.8705 267.2107 263.8414 261.9884 268.9287 273.6603 277.1531 278.9893 280.25 284.0935 285.6532 286.554 287.8729 288.5901 289.3367 290.0013 289.1081 287.2078 285.1704 279.2347 277.062 272.9289 271.7165 271.7516 271.0202 268.9471 271.6821 271.4893 272.1155 271.9127 271.4432 268.5892 265.5484 262.9189 266.4367 270.0941 272.4092 277.2462 279.6145 282.1337 284.4678 285.4523 285.589 285.3304 283.539 283.3137 281.8452 282.3567 283.2052 283.1585 282.8252 281.9685 281.3934 280.5897 279.6664 278.9612 277.7654 277.1436 276.5185 276.0838 275.2004 274.216 272.9039 271.8565 269.8439 270.7659 272.1961 272.8704 273.98 274.9303 276.1438 277.3812 278.9387 280.8303 281.0804 279.7182 278.11 276.7039 275.5133 274.4181 272.4323 271.6046 269.82 267.0604 263.7383 260.4799 253.4525 252.9878 257.3499 259.3459 261.2108 262.7569 258.1562 256.9012 250.9381 243.0332 239.0085 238.585 237.8744 237.6703 237.6659 237.9047 239.9406 242.4496 243.9708 245.743 247.2195 248.1961 248.3099 246.2106 240.9296 241.9729 243.1835 245.5191 248.9565 251.5474 253.1153 254.3165 255.3168 258.1544 259.2646 260.9151 261.4456 262.9672 263.863 265.1009 265.3292 266.373 267.0626 267.3676 267.0648 265.7757 264.529 262.9334 261.5766 259.506 256.9641 253.2097 249.5135 247.3723 250.4859 253.3948 255.6655 257.7564 259.6167 261.1144 262.658 266.069 267.2625 268.5559 269.5866 270.941 272.3073 273.5664 274.5081 274.854 272.2347 269.758 266.3617 262.935 259.8952 256.4974 255.8971 257.76 259.4441 261.536 262.7726 264.0798 265.3578 267.1064 268.4855 268.6876 268.1657 267.0202 262.824 260.6008 257.1473 250.2072 246.0641 248.537 250.3423 251.9296 252.3644 253.7885 254.0222 254.4538 255.0187 255.0081 255.3154 255.3289 254.7483 254.8315 255.2956 257.158 258.3097 259.3662 260.3028 261.4271 262.4838 263.5381 264.5075 265.0683 267.6088 267.9909 268.506 268.1741 267.6055 266.8113 266.7418 266.0857 265.1963 263.0636 262.6801 262.3499 262.3545 262.7307 264.2491 265.7671 266.2607 266.7819 265.4847 265.4257 264.838 263.5929 263.1491 262.6454 261.6802 260.4807 259.076 258.3955 258.911 258.5562 257.7755 256.6974 256.2011 256.1441 254.8076 252.6855 248.8474 246.7608 244.3544 241.6817 238.172 233.7107 235.2521 237.0961 238.5866 237.573 232.7921 230.7732 232.8023 232.5547 232.77 232.6988 232.6689 232.7703 230.7948 231.3936 231.573 232.4674 232.9226 232.7505 232.911 232.7145 232.5835 232.5992 231.7098 230.3887 231.2065 231.7778 232.3542 232.0549 231.8573 232.5944 232.2551 231.8108 232.0249 232.3609 232.5335 232.9359 233.4503 233.9109 234.3074 234.7476 236.0011 236.8762 237.727 238.7295 239.6083 240.5613 241.4905 241.8512 242.0636 243.8211 244.4926 245.4617 246.5768 247.1106 248.2197 248.7802 248.8159 249.4646 250.1412 250.2766 249.9064 247.8758 245.9467 244.3683 243.6433 246.222 249.0304 250.0636 253.2263 255.6635 256.7906 257.1872 259.6129 260.9473 262.2246 263.4283 264.2854 264.75 264.8675 264.6272 264.0314 262.346 260.7138 259.8384 258.502 257.5551 256.2686 254.6143 252.5817 250.9533 249.9976 251.1221 251.8167 252.5146 252.9876 252.9299 251.7158 250.4793 248.5456 246.6828 244.5542 242.8157 240.9079 -9999 +266.5078 266.2909 266.3373 267.1869 268.7228 269.6497 269.0743 270.133 273.4536 280.5727 282.3218 282.9644 284.9059 287.2372 289.5431 291.2354 292.1173 292.4174 291.5671 290.4634 288.5777 285.6833 286.6329 290.6182 293.227 295.188 297.4162 300.4084 301.2277 302.0056 302.912 303.8235 305.0236 305.5682 306.1247 306.0868 305.0004 303.5964 302.8618 301.4992 299.5072 298.2031 297.421 297.4526 297.1093 294.7616 291.3202 287.8764 286.576 285.3103 284.5748 283.0328 284.2424 285.7896 285.2312 285.0791 286.1485 287.0078 287.0875 288.0034 288.353 288.2645 287.2756 285.8658 286.8109 287.9118 289.5362 290.1131 290.3472 289.9504 289.6159 290.0827 289.9536 287.8217 286.6128 285.2446 281.7266 282.4519 282.6149 283.2292 284.6417 285.8929 283.8495 281.5344 282.0504 282.4655 282.8246 282.4402 281.6941 281.614 279.9765 276.8127 275.3409 274.3346 274.4265 275.5825 275.2771 274.128 271.6536 270.1825 266.9791 262.2907 261.256 260.9265 261.0957 261.4589 261.8415 267.1781 271.4967 274.5444 274.3575 275.7278 277.3309 277.7372 277.1684 274.1814 271.12 265.4922 262.247 267.8152 270.7763 273.762 274.9463 277.3627 279.1412 280.5928 282.3015 283.7604 287.1315 288.5452 290.0804 290.0674 290.3218 290.6267 292.9637 293.9435 295.2446 294.6329 294.0009 294.7796 293.786 291.3667 288.1994 282.9859 275.1638 276.0507 275.9918 278.8539 278.1832 278.1557 277.0327 276.4967 276.3852 275.9099 274.3396 269.8794 265.183 261.1263 262.5 268.1287 273.0279 275.6689 276.5621 278.6862 282.3774 283.6967 285.2861 286.6169 287.6032 288.4752 289.6438 289.3924 287.7334 283.975 282.7284 278.7047 275.7884 273.6784 271.8695 270.0869 264.1864 266.8615 269.8969 269.9921 270.1594 268.7381 265.3413 262.6274 265.7019 269.1844 269.6188 271.2897 276.1499 278.8052 281.2166 283.3362 284.5806 285.0057 283.5347 283.0291 281.3495 280.0816 281.3784 282.0021 282.2191 281.8142 280.9469 279.9807 279.3372 278.5493 277.8145 277.2691 276.4081 275.812 275.3341 275.1684 275.4384 274.9998 273.4088 271.5836 272.1143 273.0274 274.3721 274.7894 275.0684 275.8156 277.3831 278.8562 281.5143 282.0081 280.8002 279.5055 278.3724 276.6559 275.1235 274.2611 272.546 271.7412 267.8528 264.7062 262.0374 255.8257 258.3736 260.9896 262.1303 263.3416 264.034 258.8899 258.5662 253.3589 247.0203 241.0713 237.9944 238.0828 237.7105 237.5499 237.544 239.7055 242.5846 243.8281 244.6515 245.7254 246.8828 245.9946 242.4592 240.7496 241.7752 242.7865 245.6226 249.8225 252.0038 253.1565 254.2 255.5211 257.7316 258.8022 260.1318 261.593 262.8687 263.8471 264.5029 265.2755 265.4018 266.5252 266.5733 266.3543 264.5546 262.7107 261.5344 260.7285 258.6092 253.3581 251.3099 248.5012 246.0044 250.273 253.2073 255.3792 256.8459 258.757 260.5732 262.2718 265.5204 266.9936 268.8181 270.0325 271.4718 272.2967 273.4054 274.0636 274.1458 271.478 268.7731 266.2291 262.8636 259.1115 255.7173 254.1408 256.9109 258.4084 261.536 262.7726 264.0798 265.3578 267.1064 268.4855 268.6876 268.1657 267.0202 262.824 260.6008 257.1473 250.2072 246.0641 248.537 250.3423 251.9296 252.3644 253.7885 254.0222 254.4538 255.0187 255.0081 255.3154 255.3289 254.7483 254.8315 256.5657 257.158 258.3097 259.3662 260.3028 261.4271 262.4838 263.5381 264.9159 265.82 267.613 268.2622 268.2661 267.7445 266.8828 266.4044 266.1071 265.5475 265.1772 263.6434 262.783 262.0775 262.0191 262.4224 263.9327 265.3271 265.823 266.3926 266.211 266.0068 265.0721 264.4322 264.3622 264.2465 263.2406 262.0594 260.4084 260.2492 260.4493 259.3901 258.4704 257.7852 257.2113 255.8829 253.6964 251.3612 248.1061 246.5841 244.3541 239.7747 235.27 235.7643 237.5509 239.3782 241.345 243.3865 240.0693 235.224 231.3129 232.461 232.5712 232.384 231.2684 230.6759 232.4185 232.7774 232.7032 232.6107 232.5093 232.5546 232.6535 232.5007 232.367 232.2262 232.3526 232.167 231.5883 230.4128 232.5963 232.7561 232.6928 232.9377 232.6725 231.8723 231.9452 232.1362 232.6794 233.1749 233.6206 233.9501 233.519 234.7569 236.3489 236.9172 237.7816 238.6762 240.7852 242.1902 243.2559 242.8921 242.5774 243.7246 244.2012 245.0238 245.9535 246.7827 247.241 247.5139 247.8969 248.4361 248.8175 248.7004 246.6545 244.6888 242.0043 244.8888 247.6802 249.6922 251.2119 253.0416 255.2364 256.6206 257.0497 259.1355 260.2947 261.4511 262.1493 263.0541 263.5651 263.7795 263.8932 263.8885 263.978 261.9544 260.4821 259.0303 257.4424 255.5385 255.2509 254.5327 252.9609 250.931 248.8233 249.7081 250.3762 251.7719 252.013 251.8636 250.9355 249.3557 247.8917 245.6631 244.2418 243.0121 241.1267 -9999 +266.5078 266.2909 266.3373 266.647 266.9731 267.4154 270.5998 274.3406 276.2211 280.5215 283.1085 284.8443 286.2534 287.6567 289.0768 289.6808 289.8573 290.0575 289.2123 287.6166 285.0902 285.6832 290.2238 293.2361 295.0574 296.3705 297.7054 301.7888 302.7848 303.6475 304.6865 305.1741 306.0489 306.5908 306.9258 306.7617 305.2551 303.8539 302.8353 301.5862 300.8974 299.9686 299.8427 299.1705 298.4754 295.6283 292.9006 288.4151 286.9649 285.0473 285.143 284.2415 285.6358 281.6157 283.0101 283.524 284.14 285.1808 286.487 286.9545 287.2979 287.4883 287.3279 285.8031 285.5714 287.5644 288.7311 289.0793 288.8929 288.65 288.9362 289.1 288.7353 286.6516 285.3788 283.9755 280.228 280.3192 281.2728 282.4328 283.8593 285.3961 283.8232 280.877 279.4789 280.8697 281.8734 280.8751 280.65 280.4263 278.9833 274.7677 273.1428 272.2719 271.7047 272.3392 271.3377 270.5487 267.854 265.951 263.9211 262.0309 261.5185 260.7941 261.2598 261.1484 261.5135 266.7017 271.1036 271.5094 272.3303 273.5092 274.67 275.997 276.6808 273.4248 270.0407 264.9503 261.6142 266.4471 270.0981 272.8947 274.5828 276.823 278.5029 279.5792 281.1666 282.8294 286.389 287.5938 288.1554 288.4865 287.9893 289.6328 290.5536 292.4266 294.1061 293.9576 292.8412 293.1665 292.8806 291.2857 288.2468 282.9979 276.1402 273.9272 272.358 274.8849 274.3481 275.5249 274.7265 274.401 274.0788 273.722 272.4369 270.0472 265.649 258.7362 261.2191 266.9551 271.1979 273.4966 275.1587 277.5662 280.1077 281.8908 283.6604 285.3377 286.6667 287.8961 289.3152 289.4654 288.7149 284.9836 283.4485 280.8228 279.472 278.3421 277.3839 273.9421 267.7103 261.2695 261.9107 266.8649 267.4835 266.108 261.3336 262.0721 268.3979 268.7044 268.4735 270.0775 275.126 277.2523 279.8973 282.3157 283.1855 282.9193 282.6173 281.233 280.2918 278.4983 279.8557 280.9325 281.1436 280.0581 279.3939 278.9781 278.822 278.079 276.4647 275.9966 275.3212 274.3574 273.6329 273.3864 273.4868 274.102 274.4142 273.9589 273.7838 274.6024 275.1609 275.5681 275.4267 275.9759 277.473 278.606 280.9918 281.6812 280.9041 280.0293 278.9243 277.5038 276.3826 275.0065 274.0852 272.2379 269.3349 266.2398 263.5437 258.5609 262.0467 263.6681 264.2933 264.6459 265.6036 263.1207 259.6467 255.7913 250.4754 245.1948 239.9999 238.4135 237.8593 237.5247 237.3489 238.4124 240.9205 241.7381 243.285 244.357 245.412 243.1473 240.4083 242.5 244.6803 244.5735 247.2319 250.3839 252.393 253.641 254.6644 255.0584 257.0258 258.3637 259.8367 260.8941 261.8898 262.9052 263.8661 264.0899 264.6807 265.6391 266.1484 265.5595 264.5546 262.7107 261.5344 260.7285 258.6092 253.3581 249.4313 248.5012 246.0044 250.273 253.2073 255.3792 256.8459 258.757 260.5732 262.2718 265.5204 266.9936 268.8181 270.0325 271.4718 272.2967 273.4054 274.0636 274.1458 271.478 268.7731 266.2291 262.8636 259.1115 255.7173 254.1408 256.9109 258.4084 260.3915 261.8583 263.1264 264.5798 266.1359 266.8233 266.9697 266.6848 265.5683 262.5949 260.548 256.8074 249.4789 245.6371 247.8782 249.651 250.3923 250.2748 251.981 252.7677 253.0571 252.7678 252.4975 252.8172 252.9129 252.0127 253.8347 256.067 257.1419 258.2608 259.4935 260.9973 262.0346 263.0785 264.235 265.5174 266.3922 267.7569 268.0148 267.7657 267.4075 266.7072 265.886 264.5887 264.9031 265.109 264.4301 263.0017 261.7939 261.7516 262.3807 263.6216 264.7007 265.3 265.7116 266.1492 265.8983 265.4995 265.4865 265.5038 265.5326 264.6754 263.8649 262.5856 261.721 261.0536 259.9407 259.1797 258.9276 257.225 254.6157 252.2387 248.295 246.0841 243.8118 240.2933 236.4427 237.0663 238.8971 240.1058 241.9796 244.3548 245.5074 242.9246 239.5564 235.7188 231.943 230.5288 230.5771 234.5582 234.6847 232.3522 232.9555 232.9462 232.8878 232.6983 232.7558 232.8974 232.9176 232.9197 232.8763 232.3081 232.1259 232.3826 230.6103 232.4979 232.5194 232.6166 232.6894 232.7364 232.0504 231.9682 232.3148 232.6095 233.1566 233.3199 233.8391 234.0887 234.772 236.3656 237.1188 237.342 238.3815 240.9682 242.6296 243.7916 244.0228 243.3006 243.715 244.2495 244.9425 245.5844 246.0538 246.5385 246.5467 247.0487 247.4114 247.0247 246.4362 244.0133 240.8523 243.8894 246.8483 248.8465 252.5166 253.8382 254.6982 256.7864 257.7049 258.5711 259.4232 260.2529 261.1987 261.5081 262.0188 262.5313 262.5936 262.6602 263.2772 263.3558 261.7663 260.1851 259.2034 256.8554 254.1936 253.5685 253.7748 252.5766 250.8421 249.5401 248.9776 249.2119 249.5456 250.4125 250.7755 249.8963 248.7004 246.261 244.6547 243.4817 242.0197 240.8204 -9999 +266.3482 266.1972 266.1486 266.463 266.6571 272.3451 275.8194 277.6941 279.2205 282.1946 283.8797 285.5486 286.447 287.4213 287.8788 288.0808 287.8781 287.0095 284.8868 283.5784 283.5415 287.5537 291.7143 294.455 296.4672 298.1574 299.5058 301.8308 303.1054 304.6089 305.681 306.2578 307.138 307.4122 307.5288 307.4099 306.0306 305.3611 304.1042 303.2528 302.0026 301.5326 300.9326 300.2393 299.2971 295.7795 291.6059 286.2929 287.1854 286.1594 287.2453 287.0532 286.0121 284.5387 281.7589 280.9515 282.9511 283.5242 285.034 285.6633 285.9965 286.5957 286.5431 284.2114 284.7384 286.3771 287.6616 287.6724 287.5816 287.1655 287.6459 287.5596 287.2341 285.4558 284.342 281.757 278.8689 278.1059 279.9651 282.5091 283.7596 284.4059 283.3291 280.946 278.096 279.4592 280.8845 279.9782 279.4427 279.6768 276.6897 272.3637 270.901 269.3985 268.8602 269.098 267.2978 265.2467 262.7525 261.7509 261.2033 260.7914 261.2741 260.8548 261.0352 260.8812 261.3333 265.8117 268.5685 268.895 270.436 271.5847 273.1509 275.5558 276.2999 274.4698 269.9079 263.8963 261.0972 264.6044 268.8664 272.1774 274.7031 275.4446 276.8465 278.8911 280.5247 282.1773 285.134 285.9112 286.0101 286.1826 286.0073 287.6435 289.0584 290.1377 292.1689 292.513 291.8672 292.0378 292.6707 291.3454 291.8013 286.7804 276.345 273.6158 269.6867 268.1467 269.0206 269.878 270.975 271.6819 271.3927 270.7232 269.3507 268.6443 263.3576 256.9857 261.7353 266.246 270.7082 272.6266 274.2717 275.2377 277.324 280.2934 283.2053 285.2263 287.002 287.9819 289.2823 289.5957 289.221 286.3366 284.4141 283.2025 281.3296 279.8986 278.8381 275.567 271.7277 269.382 266.9696 259.2359 262.2134 263.1695 259.3621 264.7477 267.1649 267.576 266.5998 268.3551 273.3193 275.8336 278.2349 280.5315 281.1445 280.6481 280.0746 279.5087 278.9076 277.7307 278.7955 280.0649 280.363 279.4529 277.8519 277.4901 278.0189 277.4167 275.3039 274.7947 274.2414 272.5698 272.1371 271.9265 272.4133 272.4956 272.3848 273.507 274.0833 274.4082 275.0071 275.3639 275.2555 275.4641 276.235 277.616 279.7368 280.4006 280.1783 278.9138 278.2123 277.2085 276.2528 275.6238 274.2409 273.0794 269.7271 268.1852 265.1966 261.7561 264.6167 266.2204 266.451 266.8525 267.3735 264.5036 260.8823 257.2351 252.9443 249.1676 243.5105 238.8902 237.8593 237.5247 237.3489 238.4124 240.9205 241.7381 243.285 244.357 245.412 243.1473 240.4083 242.5 244.6803 244.5735 247.2319 250.3839 252.393 253.641 254.6644 255.0584 257.0258 258.3637 259.8367 260.8941 261.8898 262.9052 263.8661 264.0899 264.6807 265.6391 266.1484 265.5595 263.3522 261.9884 261.0524 259.4623 257.8882 253.6417 248.194 246.6028 247.4397 249.3275 251.5646 253.8488 256.449 258.5319 259.9263 261.5377 264.854 266.2914 268.0504 269.6039 271.0669 272.1028 272.5053 273.2788 273.4982 271.7987 269.5886 266.9114 262.757 257.8553 254.4267 253.2144 256.0506 257.4293 259.3374 260.5915 261.8926 263.3392 264.6148 265.0538 264.9453 264.6523 263.6624 261.5229 259.7746 256.6313 249.7939 245.4279 247.4971 247.9704 248.1599 248.4915 250.8992 251.8105 251.1031 250.7671 251.0357 250.5818 252.4441 252.92 255.1196 257.3903 257.9051 258.9235 260.2023 261.4766 262.7286 263.5723 264.5365 265.7833 266.6632 267.5815 267.6124 267.2096 266.6086 266.4016 265.5921 264.3542 263.7805 264.2741 264.7121 262.9872 261.507 261.5163 261.8815 262.9421 263.9732 264.789 265.2496 265.7041 265.6738 265.6175 265.767 265.9397 266.0092 265.4648 264.8735 263.4721 263.2563 262.4302 261.5201 260.6596 259.0663 255.5593 251.6198 249.0388 247.274 242.5896 239.8436 236.8226 238.3873 241.7566 242.9206 243.0662 244.3903 246.3109 247.5237 244.9137 241.7165 239.4709 237.5625 237.1682 237.7729 239.1908 237.7474 233.5234 232.3769 232.4445 232.641 232.6082 232.4739 232.3763 232.4751 232.564 232.5548 232.6881 232.2544 232.0663 232.4614 230.3866 232.6244 232.5833 232.5255 232.3976 232.1373 232.2876 232.6226 232.6763 232.4682 233.1347 233.5942 234.2853 234.4623 236.164 237.4619 238.0586 238.928 241.0953 242.9183 244.2304 244.3602 243.7271 244.0206 244.5368 244.7703 245.2719 245.5301 245.6237 245.4119 245.2945 245.0176 243.9795 241.9419 240.2886 245.1595 247.4493 248.6924 251.9111 253.8435 254.9807 256.2831 257.2417 257.6755 258.0848 258.7028 259.4372 260.259 260.298 260.791 261.1658 261.3982 262.0324 263.418 262.9236 261.5128 260.2003 258.4624 256.5516 254.1062 252.1585 252.2527 252.2074 251.22 249.4769 247.5056 248.1546 248.493 248.6211 249.0024 248.8683 247.2392 245.4257 243.5998 242.1349 241.0854 240.5272 -9999 +265.9618 265.7016 266.0797 266.2302 268.8494 274.8652 277.7645 279.4422 282.3881 283.2116 284.5742 284.9776 285.047 285.3438 285.4385 285.4532 284.842 282.3829 280.8125 283.1544 285.1012 288.0583 291.5395 294.8165 297.1542 299.0746 300.8395 303.5937 304.5219 305.5511 306.4863 306.9927 307.3394 307.5381 307.7066 307.8303 306.5883 305.4408 305.0526 304.0443 303.2857 302.4889 301.5736 300.6485 299.7127 292.702 289.3137 287.872 288.426 289.2079 292.005 291.5739 289.9919 289.2497 284.7119 282.0291 280.1005 281.4715 282.6728 283.4509 283.8546 284.9354 285.3621 283.6024 283.8961 285.744 286.3116 286.1765 285.7309 285.7094 285.7384 285.5678 285.7412 284.3366 283.0841 281.713 278.3976 277.0185 279.7458 281.6425 282.8819 282.8448 282.1748 280.4727 277.7346 277.4332 278.9412 278.4263 276.9138 276.7658 274.5811 269.4475 268.2069 265.7432 265.2392 263.9207 262.5231 262.9109 265.3064 267.7936 267.4199 263.2608 260.8376 260.4171 260.8784 260.1891 260.8722 263.7979 264.6906 266.1449 267.8383 270.0805 272.6118 274.7613 274.5829 273.7381 269.1639 262.7285 260.6194 265.3545 268.7875 271.1416 274.2061 275.3211 277.476 279.6673 280.9392 281.9423 283.5864 282.7728 281.2934 283.0723 282.7955 284.5225 287.4502 289.6642 291.763 290.6248 290.5833 291.6188 292.6721 292.6185 292.8326 289.2222 283.198 280.2464 278.8254 273.7598 265.6399 263.5835 265.6672 267.2312 267.6313 267.9374 266.8271 266.4555 261.3977 258.1486 261.9931 266.6578 269.2669 271.2681 272.6962 273.609 277.9159 280.5039 282.6185 284.6257 286.4149 287.8279 289.4706 289.9785 289.6079 286.6901 285.4404 284.2162 283.0621 281.1991 279.3156 276.2127 273.6402 270.8484 268.1849 259.7453 256.7482 258.1668 259.4933 263.9074 265.0685 264.561 263.9363 266.1229 271.825 274.6466 276.3655 278.8653 279.4394 278.6535 278.3163 278.412 278.0496 276.2865 277.8979 278.8596 278.2518 277.5078 276.0212 275.3191 276.6757 276.4296 274.3651 273.9009 272.8433 271.9194 270.3104 270.1253 270.3438 270.4355 271.3146 272.0116 271.4891 272.7621 275.0071 275.3639 275.2555 275.4641 276.235 277.616 279.7368 280.4006 280.1783 278.9138 278.2123 277.2085 276.2528 275.6238 274.2409 271.5826 269.7271 268.1852 265.1966 261.7561 264.6167 266.2204 266.451 266.8525 267.3735 264.5036 260.8823 257.2351 252.9443 249.1676 243.5105 238.8902 238.1916 237.696 237.479 237.275 237.8332 238.665 240.7793 243.0379 242.7909 239.9096 239.8508 243.1534 244.2836 245.4386 248.4916 250.6949 252.3885 253.2274 253.6913 253.6649 255.1879 257.0964 259.0114 260.1329 261.2014 261.9336 262.2766 262.6703 263.3339 264.985 265.0463 264.8851 263.4706 261.778 259.8808 257.8065 254.9816 252.7598 247.4846 246.0386 247.3128 249.0356 250.7912 253.4667 255.9633 258.3542 259.4228 260.8937 264.4008 265.9951 267.3169 268.9097 270.1234 270.4393 271.0461 271.7502 272.9141 271.5042 269.5621 266.918 263.1992 258.6618 254.6484 251.8759 254.8067 255.9951 257.7937 259.0372 260.4154 261.9142 262.8766 263.2294 263.0955 262.4872 262.0464 260.3305 258.2234 254.9257 249.1069 245.1754 246.8041 246.827 246.958 247.7696 250.1887 250.2293 249.8116 249.6915 251.2475 253.262 254.6396 255.3708 256.8603 258.5002 258.8172 259.6517 260.8574 261.8481 262.9433 263.8475 264.932 265.8136 266.6111 267.5247 266.9507 266.5544 265.8906 265.921 264.9958 263.9909 263.1209 263.5862 263.848 262.7431 261.3864 261.3684 261.4543 262.1653 263.2911 264.1563 264.9137 265.1677 265.4423 265.3376 265.4312 265.8778 265.9283 265.7675 265.4506 265.3993 265.115 264.5171 263.0739 260.8519 258.649 256.7722 253.7077 251.1209 248.4354 240.458 237.6386 240.1116 243.0488 244.9074 245.9599 246.5753 247.1831 248.3071 248.1443 246.3517 244.6743 243.3933 242.8791 241.3709 241.0936 241.4555 238.9664 232.9699 233.168 232.7894 232.5075 232.3867 232.3353 232.2763 232.1923 232.2284 232.4336 232.6593 232.4097 231.995 232.3948 230.698 232.3331 232.4898 232.4549 232.3883 232.2691 232.4888 232.7745 232.7456 232.5884 233.0641 233.7199 233.9456 234.303 235.9647 237.4234 238.5469 240.2916 241.8201 243.1902 243.7447 243.3763 243.2448 243.9295 244.2046 244.0004 244.2481 244.3497 243.9535 243.8734 242.6913 242.2369 240.2863 242.0703 245.2091 247.3736 249.9545 251.3771 252.542 253.5217 254.7197 256.1039 257.0069 256.7116 256.7233 257.4625 258.1656 258.6137 259.1372 259.5268 259.8026 261.4438 262.3842 263.8977 262.3588 261.3127 259.4918 258.5372 256.7252 255.9197 251.7428 251.3293 251.0815 250.6407 248.6664 247.3126 246.7407 247.0117 247.1557 246.9032 246.8424 246.3206 243.8469 242.2509 241.3273 239.9357 239.1216 -9999 +265.7296 265.7769 265.9088 265.9898 269.9681 273.861 275.5667 277.8793 281.019 282.1562 282.9901 283.0905 282.8923 282.9504 282.197 281.6374 280.942 279.162 283.1192 286.2656 287.6624 289.3444 291.2813 294.5903 297.2835 299.4858 301.4867 304.304 305.5864 306.4868 306.8504 306.814 306.3556 306.4218 306.8673 307.3602 306.936 306.1572 305.3219 304.5866 303.646 303.0094 302.1761 300.5986 299.4468 290.6941 289.2523 289.711 290.675 293.0479 294.1627 293.5323 292.658 291.0657 288.0879 284.3438 280.8852 279.5317 279.727 280.8477 282.2555 282.8786 283.3922 282.3654 282.9986 284.5815 285.11 284.1598 283.5694 283.5498 283.5138 284.2548 284.6129 283.0398 280.8313 279.0454 276.562 275.7334 278.6682 280.1316 280.9415 280.953 279.5183 278.9749 277.215 275.8257 276.9742 276.0775 275.3484 273.3693 271.6503 267.3572 265.6071 264.4873 263.0776 264.6384 267.9675 269.6626 271.5115 273.9842 271.5792 265.3835 260.9662 260.5525 260.7487 260.0266 261.0974 261.2361 261.1468 264.1607 266.7227 269.3097 271.4886 272.3508 271.0286 269.7414 262.9232 260.1515 260.0408 264.146 269.4129 272.0951 274.0278 275.3894 277.4661 279.3578 281.2507 281.0154 280.0409 275.6023 278.0854 279.5246 283.2474 285.9277 287.6149 290.1775 291.6433 288.8718 289.3645 291.5468 292.1466 292.1774 290.7954 288.2984 285.2587 282.9153 281.7679 277.9201 272.6748 266.8518 261.2444 261.6641 263.5648 264.6132 263.6131 263.1463 260.482 255.8664 262.3781 265.6534 268.6414 269.5106 270.2947 271.5043 276.5591 279.7782 282.132 284.1993 286.4023 287.9954 289.466 290.0694 289.5632 288.0125 286.7389 285.3401 283.4036 280.799 278.2348 276.0058 274.7537 272.5108 264.9787 262.6033 260.7364 254.6114 257.5431 261.6806 261.8575 260.5854 261.2494 264.1583 271.825 274.6466 276.3655 278.8653 279.4394 278.6535 278.3163 278.412 278.0496 276.2865 277.8979 278.8596 278.2518 277.5078 276.0212 275.3191 276.6757 276.4296 274.3651 273.9009 272.8433 271.9194 270.3104 270.1253 270.3438 270.4355 271.3146 272.0116 271.4891 272.7621 274.2574 274.9944 275.0544 274.8733 275.0555 275.7669 277.8544 278.7153 278.5045 277.2794 276.3859 276.1458 275.5735 275.1375 274.7749 272.6879 271.364 268.5678 266.2426 264.5027 266.3606 267.5696 268.0644 268.873 269.1267 264.7452 261.3052 258.0688 254.416 250.7019 246.4539 241.1917 237.2168 237.6888 237.3742 237.4758 237.4402 237.568 239.8255 241.856 239.5763 239.4514 240.0198 242.4592 243.4811 245.9062 248.3417 250.2745 251.5286 251.9267 251.866 251.4701 252.5892 255.3916 258.1231 259.2119 260.2631 260.7329 260.9133 261.3852 261.8694 264.0486 264.8153 264.5931 263.6752 261.4951 259.5059 255.6009 252.547 250.3942 244.7978 246.9966 248.3669 250.0625 251.4757 253.5309 255.963 258.3178 259.6519 261.4418 264.5334 265.9862 267.0699 268.4327 268.9738 268.6624 269.7077 271.0871 272.4786 271.6415 270.1959 267.1243 264.2863 261.5529 257.2052 251.4661 252.7077 255.1727 255.4373 256.2939 258.4801 260.0929 260.8469 261.2503 261.0073 260.6997 260.0393 258.6292 256.8911 254.1962 248.3444 244.4442 245.9903 246.7626 247.3897 247.9825 249.291 248.475 249.5355 250.4652 253.5663 254.8886 255.9226 256.7275 257.633 258.7103 258.976 259.6173 260.673 261.6165 262.6271 263.4269 264.5779 265.3757 266.1603 266.8442 266.5414 265.5658 264.8882 264.6091 264.2429 263.4783 262.4258 262.6841 262.0842 261.4827 260.6933 260.6181 261.4836 261.9298 262.9746 263.8235 264.4004 264.7615 265.0576 264.9227 265.0591 265.4573 265.9988 266.523 266.9784 267.4443 266.9043 265.4924 264.3043 262.4681 259.7878 257.0631 254.8465 251.9301 249.6183 241.5222 241.5836 245.5034 245.9046 247.9285 249.0543 248.9994 250.0792 250.8348 249.8937 249.02 247.9531 247.3092 245.5032 244.1185 243.6647 241.9946 237.0414 235.4503 233.4267 232.8312 232.6767 232.5579 232.5481 232.3175 232.0354 232.0357 232.0807 232.4845 232.4882 232.0126 231.9888 232.4732 230.3169 232.9021 232.4481 232.2814 232.0725 231.6254 232.3355 232.3253 232.3892 231.9982 232.8251 233.3999 233.917 236.14 237.157 238.7835 240.1717 241.1561 242.2345 242.3678 242.0598 241.8202 242.404 242.4061 242.2581 242.6704 242.4283 241.8455 240.9634 240.3658 239.9945 242.5813 245.6524 247.6238 249.4949 250.3824 251.2072 252.0864 252.7124 252.9269 253.3212 254.1824 254.5757 255.0067 256.1722 256.8225 257.7351 258.8053 259.5829 260.3673 261.9756 262.9284 263.855 262.5848 261.3045 259.3706 259.013 257.1337 255.2656 251.924 250.4786 249.8367 249.6562 248.6531 247.3545 246.2911 245.3538 245.6556 245.5491 245.4811 244.6593 243.1474 241.4321 239.9987 238.9512 238.2863 -9999 +266.0844 266.0205 265.8629 265.832 267.2842 270.8505 273.506 275.5687 279.4072 280.2553 280.1465 279.6624 280.7823 280.3983 278.4436 277.2337 278.2919 280.606 286.8344 289.0766 290.598 290.2626 292.8715 295.5402 297.566 299.9235 301.9198 304.9645 305.8523 306.341 306.2127 305.4584 304.52 304.8398 305.5912 306.2978 306.8051 306.189 305.6624 305.2262 304.3901 303.0719 301.7604 300.4482 297.6273 290.7311 290.9029 292.3178 293.5383 295.0161 295.6437 294.8836 293.4014 292.6843 291.1043 287.3852 283.346 280.6339 279.4238 277.8639 280.0412 280.3007 281.1772 281.1976 281.4419 283.1967 282.9338 281.1234 281.0154 281.5887 282.0845 282.6285 282.9831 281.8166 280.3908 279.098 277.3362 275.4113 276.2077 277.4435 278.4397 278.5031 277.3348 276.2654 274.7207 273.2052 274.0202 273.6258 273.5193 271.0541 266.9605 266.455 265.4438 267.0717 269.8251 270.5654 273.5106 275.8012 276.7004 277.5551 273.9626 266.8342 260.7613 260.4644 260.3975 260.8156 260.8242 260.5348 260.7381 261.3 264.3717 267.5804 268.5231 269.3015 267.9307 261.2902 259.6215 259.5642 260.7168 264.5968 268.457 271.2015 273.214 274.9583 276.3003 277.9331 278.9285 276.7875 274.3477 274.0482 279.198 282.4259 285.0718 286.8504 288.9826 290.1819 290.6918 288.3087 289.7775 291.087 291.9449 291.5486 291.0107 288.8568 286.9244 285.1459 283.1775 279.3969 275.5126 271.5514 266.0439 259.6565 258.4312 259.5552 260.2215 258.4361 255.7242 256.3039 261.6501 265.1047 266.1732 266.2484 270.2947 271.5043 276.5591 279.7782 282.132 284.1993 286.4023 287.9954 289.466 290.0694 289.5632 288.0125 286.7389 285.3401 283.4036 280.799 278.2348 276.0058 274.7537 272.5108 264.9787 262.6033 260.7364 254.6114 257.5431 261.6806 261.8575 260.5854 261.2494 264.1583 270.0663 272.2875 275.3367 277.221 278.1245 277.0907 276.6451 276.5674 275.8528 274.6472 276.6891 276.894 275.9057 275.4285 274.2365 273.2738 274.9454 274.5548 273.2233 272.2529 271.7093 270.2381 269.1361 267.3633 267.9155 268.6227 269.9974 269.6678 269.7083 271.3111 272.8874 274.2614 274.939 275.6221 274.9616 274.6903 275.4343 275.9263 275.924 275.3555 274.2571 274.4629 274.4245 274.4559 274.469 272.7842 271.9222 269.5241 267.3547 266.4126 267.9347 268.5139 269.4615 270.1492 269.8374 265.1644 262.3009 258.5538 254.712 251.7092 247.5678 242.5309 238.6854 238.1251 237.2641 237.3045 237.48 238.0479 240.4365 240.8679 239.0722 239.166 240.4838 243.8605 245.5594 246.569 248.06 249.6017 250.2109 249.576 250.0215 251.419 252.2515 254.7459 257.3376 257.96 258.2693 258.5164 259.0733 260.0205 261.3222 263.6001 264.3806 264.3401 263.0335 260.6523 256.9084 252.1151 249.4767 247.9887 244.7923 247.7991 249.5797 251.3475 253.1584 254.8495 256.5125 258.0645 258.9612 260.3396 262.4584 264.5375 265.5522 266.1127 266.9233 267.6363 269.2677 270.778 272.4371 272.5037 270.8328 268.0587 265.4557 263.1997 258.4102 253.1143 250.664 252.5512 252.5114 253.4922 255.8732 257.9161 258.9636 258.9627 258.5148 258.7059 258.584 256.9928 255.3923 251.7749 246.4835 243.5056 246.4237 247.5415 247.7989 247.3344 246.0582 248.5609 249.9601 252.0346 253.5978 254.8656 255.3544 255.8241 256.3531 257.4778 258.3096 259.2305 259.967 260.7046 262.0878 263.3293 264.3666 265.2457 266.2188 266.4123 266.5812 265.7233 264.743 264.3953 263.6893 263.0196 262.2796 261.6432 261.5983 260.9215 260.1825 260.2253 260.6936 261.6471 262.502 263.4567 263.7668 264.0633 264.4901 264.5809 265.0209 265.2328 265.6619 266.5817 267.1293 268.0679 268.0063 266.9127 265.3094 263.4257 260.324 257.5755 254.9345 252.1596 248.9183 241.9694 246.5487 248.5521 248.7698 250.5042 251.8702 250.8556 252.1038 253.3237 252.9551 252.5864 251.0783 248.9009 246.8519 245.8195 244.6328 240.4715 235.3589 236.6857 233.9809 233.5061 233.4161 232.9941 232.66 232.5454 232.298 231.495 231.9664 232.3424 232.5295 232.2799 232.0025 232.1481 230.3147 232.9138 232.5004 232.3222 231.7654 231.9775 232.1123 232.1884 232.2754 232.305 232.5614 233.1564 233.6959 236.1531 236.8018 238.1842 239.3269 240.1619 240.2373 240.1407 240.4013 240.3857 240.3387 241.0119 240.4472 240.4726 239.8952 237.7413 236.4314 238.9864 241.2773 245.0455 246.9548 247.7765 249.1465 250.052 250.9895 251.0402 251.6012 252.3781 253.7054 254.7578 255.2142 255.8114 256.2711 256.8563 257.7879 259.4196 260.7234 261.6797 262.9746 263.945 263.4706 262.3262 260.4608 259.9864 259.2119 257.3734 256.1141 253.2152 251.272 249.9073 248.8162 247.4078 246.6872 245.4206 243.7899 244.1134 243.983 243.5586 243.343 242.6394 241.0782 240.137 239.3485 238.1069 -9999 +266.1223 265.9355 265.7354 265.8035 266.5367 268.7709 272.0258 274.5439 277.3413 276.7595 275.7903 275.4345 276.4787 273.6772 274.9394 278.5656 280.7718 282.8921 287.8102 289.7704 291.7873 293.0838 293.6427 296.0552 297.9688 300.1113 301.554 304.3487 304.9693 304.9121 304.6411 304.2099 303.2645 303.5463 304.6037 305.5935 305.9409 305.4669 305.5144 304.9475 304.2794 302.8879 300.9882 297.5087 293.8686 293.7893 293.8773 293.9807 294.8905 296.0678 296.6113 295.8149 294.6308 294.3213 292.7656 290.788 287.9326 285.8712 283.5328 280.3187 279.5225 277.192 278.3698 279.294 280.4019 280.819 279.7013 277.4659 278.0241 279.4671 280.0262 280.8075 280.3911 280.1014 279.234 278.5553 277.8557 276.4338 274.1459 273.9165 274.1096 275.2086 274.1361 273.1584 272.0146 270.993 270.8682 270.9329 270.6186 267.8305 266.1747 267.5294 269.0169 271.6143 274.3891 276.6263 278.4916 280.4103 281.482 281.7499 276.575 270.2478 264.2503 260.2642 260.1735 260.3159 259.7298 258.9101 259.5734 260.0304 261.0443 263.1713 264.87 265.6741 263.2889 259.5953 259.7268 259.7216 258.9703 262.3051 266.597 269.2262 271.0856 273.4597 275.1825 275.1107 272.7518 270.9308 276.2423 280.4363 283.1041 285.2233 286.5947 286.8504 288.9826 290.1819 290.6918 288.3087 289.7775 291.087 291.9449 291.5486 291.0107 288.8568 286.9244 285.1459 283.1775 279.3969 275.5126 271.5514 266.0439 259.6565 258.4312 259.5552 260.2215 258.4361 255.7242 256.3039 261.6501 265.1047 266.1732 266.2484 268.2397 270.7602 276.6939 280.0476 282.767 284.7266 286.6778 288.311 289.0823 288.8591 288.4959 287.9227 286.7662 284.2793 282.5567 280.8852 280.1784 278.1486 275.8336 273.3189 266.6531 262.1553 259.5658 258.024 253.5109 258.1929 258.9042 258.5821 261.4599 263.3306 268.2075 270.5352 273.3808 275.8279 276.8695 276.3557 275.0778 274.4935 273.4978 272.7126 274.3992 274.0562 273.4726 273.4227 271.9507 271.6403 272.8409 273.0245 272.1035 270.7854 269.7539 269.2567 267.8042 266.0019 265.4636 266.8058 268.7059 267.6387 268.6003 270.1342 271.7771 273.5037 274.5711 275.4583 275.8511 276.2221 273.8569 273.1283 273.2916 273.1482 272.9525 272.9276 273.0336 273.3523 273.4931 272.2585 270.9228 269.4179 267.8156 267.6659 268.6027 269.8181 270.5413 271.0015 270.8698 266.1518 262.8269 258.979 255.9283 252.5004 248.9794 244.6863 241.1498 238.0214 237.1989 237.2875 237.4879 238.1388 239.4833 238.5863 238.788 239.1227 241.8322 245.5861 246.3843 246.9712 247.4272 247.5167 247.6508 248.8182 250.2312 251.2348 253.3388 254.5041 256.2845 256.8282 257.205 258.2037 259.5605 260.6915 261.5386 263.461 264.2261 263.7879 262.2067 259.6262 255.9188 251.9395 248.7263 246.3572 247.4922 249.4629 250.9323 251.5871 253.1927 254.8976 255.8996 256.9277 258.8434 261.1715 262.3735 263.3453 265.4146 266.3065 267.7078 268.731 270.0139 271.0226 272.2037 272.7788 271.2877 269.2587 267.4495 264.7369 260.6877 253.9441 249.5111 249.7572 250.6771 251.4962 252.6115 254.1573 255.5197 256.0135 256.0455 256.6996 256.5333 255.3735 253.411 250.1803 244.5443 244.7296 245.8926 246.1756 245.8434 246.5376 248.2294 249.5531 250.5936 251.4355 252.3389 253.4742 254.0433 254.6814 255.3288 256.8671 257.8459 258.6295 259.4557 260.6245 261.8023 262.8492 263.9402 264.7419 265.801 266.1149 266.3828 266.0901 265.2006 265.0912 264.3083 263.7761 263.015 261.7662 260.3159 260.4222 260.1208 259.6807 260.0153 260.7826 261.512 262.5752 262.9442 263.6926 263.9066 264.1772 264.2328 264.2745 264.8844 265.6625 266.455 267.54 268.6393 267.9721 266.0437 263.5143 260.2855 258.6579 255.6851 253.773 251.4974 250.6959 250.7112 251.0362 251.6417 252.3169 253.9272 252.6192 254.3792 255.625 255.3598 254.3168 251.7461 249.2984 248.5849 247.4678 243.4986 238.6773 236.7358 240.6861 238.4783 237.494 237.4366 236.3194 235.1939 234.4104 233.1196 232.2479 231.6085 231.8829 232.2987 232.3957 232.137 232.1248 231.0448 232.7616 232.6669 231.5694 231.9041 231.8196 231.9772 232.1051 231.9662 232.1727 231.9348 233.5762 234.7309 236.4845 236.8875 237.422 238.6644 239.1557 239.1145 239.5603 240.7549 240.1901 238.7873 238.6642 238.3378 235.8182 237.6592 240.1492 241.1345 242.3639 243.2547 245.4475 246.2044 247.4366 248.757 249.1151 249.9781 250.3795 250.4965 251.8086 254.2731 255.2034 256.3814 257.4525 258.0349 258.2695 259.2053 259.9927 261.0447 262.1491 263.8409 264.1678 263.1579 262.065 260.3055 259.5862 259.0894 257.3933 256.6246 253.5696 251.877 250.3457 248.3721 246.5645 245.0979 244.4072 244.3112 242.0665 242.7484 242.591 241.9467 242.6394 241.0782 240.137 239.3485 238.1069 -9999 +266.3372 265.8853 265.6572 265.6906 265.8819 266.7731 269.3423 272.814 274.3193 271.3438 272.2807 276.1202 276.8068 278.6776 281.0258 283.3549 284.6652 286.6832 288.187 290.6555 292.8753 293.9342 295.1113 296.7776 298.3483 300.2577 301.5625 303.1006 303.3669 303.1034 302.6264 302.26 302.2847 302.6781 303.4852 304.1363 304.5995 304.4832 304.7285 305.2084 304.4067 302.2416 299.0943 295.744 294.9035 296.2231 296.013 295.9517 296.1036 296.9855 297.1237 296.9966 296.1085 295.8405 293.9146 292.3635 291.3847 289.8349 286.8718 283.403 282.8758 279.6299 276.6335 277.7106 278.7717 278.8477 278.2079 276.5332 276.1071 276.8716 277.8062 277.6508 277.0794 276.6234 276.4898 276.1234 275.8813 275.7345 274.8814 272.8829 271.8429 271.7028 270.7056 269.6014 269.0263 269.131 268.2319 267.8586 267.6401 266.1938 266.6526 270.4446 272.0172 274.2402 276.3831 279.1781 282.1544 284.6839 286.088 286.117 278.9821 273.2354 268.6718 262.3219 260.1735 260.3159 259.7298 258.9101 259.5734 260.0304 261.0443 263.1713 264.87 265.6741 263.2889 259.5953 259.7268 259.7216 258.9703 262.3051 266.597 269.2262 271.0856 273.4597 275.1825 275.1107 272.7518 270.9308 276.2423 280.4363 283.1041 285.2233 286.5947 288.5448 289.1648 289.7959 289.9102 286.7374 288.6164 290.5018 290.3804 289.977 289.6584 288.535 287.3381 286.6021 283.2032 280.2887 277.2797 274.0483 270.3341 264.8627 261.1653 257.6602 255.3611 254.3141 255.1696 258.2636 259.8788 260.9694 262.1822 264.2509 267.2114 271.0532 278.8227 281.1215 283.0935 284.9645 286.6299 288.0109 287.8912 286.795 286.2977 286.6652 286.3286 285.0948 283.5158 282.9308 282.498 279.9839 277.2857 275.8621 270.4718 265.8649 260.3441 257.042 253.032 255.9289 256.7992 259.1231 259.9397 260.8555 264.2976 269.7281 272.3361 275.1643 276.4183 276.0818 274.362 272.6103 271.3725 270.4189 271.3166 270.8554 271.1869 271.9489 270.4591 269.3672 270.9309 271.3571 271.0788 268.8968 267.762 267.5758 266.8577 264.7701 263.7261 266.2422 266.5651 265.3953 266.8202 269.0609 271.2299 272.6247 273.7201 274.4706 275.3243 276.1529 274.8791 273.291 271.5311 270.8119 270.9901 271.3227 271.4733 271.6955 271.7105 271.1724 270.3302 269.969 268.0703 268.1057 269.5484 270.6555 271.5451 271.619 271.7015 267.0132 263.2971 260.8456 258.2007 253.4477 250.4887 247.8232 243.8051 241.3971 237.2738 237.3127 237.5203 237.7692 238.2048 238.5051 238.4897 239.0501 240.4867 244.2778 244.5493 245.4515 244.7927 245.5133 247.791 249.0803 250.5921 252.0905 253.6278 254.1391 255.5638 257.0193 257.8952 259.0623 260.248 261.1181 261.8548 263.3817 263.9101 262.8609 261.1405 258.6383 255.0248 251.4159 248.1284 244.2795 247.8561 249.8591 251.5446 252.7878 253.7106 255.0862 256.4411 258.166 259.4473 262.1362 263.5892 264.6533 266.0792 267.1798 268.2296 269.1541 270.1038 271.1043 271.9796 272.8226 271.452 269.6044 267.9774 265.2907 262.3441 257.6676 253.0577 250.8647 249.1454 249.6426 249.4803 250.0794 251.0694 252.4097 253.4229 254.2055 254.4928 253.9031 251.988 248.3232 242.6934 243.7962 244.6145 244.9464 245.0161 246.0354 249.125 250.052 249.8989 250.1709 251.0356 252.2192 253.1012 254.1455 255.159 256.6101 257.8584 258.7138 259.5803 260.7959 262.018 262.9289 263.79 264.2421 265.4596 265.834 266.1559 265.7393 265.4338 265.1272 264.4921 263.6358 263.071 261.6988 259.7948 259.7427 259.593 259.6058 259.4847 260.0143 261.1021 261.9657 261.983 262.2972 263.0141 263.341 263.3695 263.2913 264.1624 264.9698 265.635 266.7635 268.4705 268.4423 266.6728 264.2159 261.8335 259.4206 256.7266 254.4315 252.1094 251.4541 252.7769 253.5611 254.4595 254.58 255.6144 255.4794 255.9642 257.3148 255.7191 253.3769 251.526 250.4886 249.7816 246.6687 241.4479 239.6858 240.0586 243.27 242.9176 242.1476 242.4479 241.4025 240.965 241.3975 239.5862 233.5983 232.1981 231.6971 232.0404 232.1999 232.2895 232.1403 232.0824 231.0044 233.1549 232.6559 232.2198 231.9525 231.7192 231.7698 231.8524 231.6891 231.9681 232.4722 234.0885 235.7496 236.4356 237.1706 237.7832 238.9771 239.591 240.3513 241.3344 241.3097 238.4726 236.4237 235.0047 237.7052 239.4729 241.2136 242.0419 242.5872 243.4339 245.4475 246.2044 247.4366 248.757 249.1151 249.9781 250.3795 250.4965 251.8086 254.2731 255.2034 256.3814 257.4525 258.0349 258.2695 259.2053 259.9927 261.0447 262.1491 263.8409 264.1678 263.1579 262.065 260.3055 259.5862 259.0894 257.3933 256.6246 253.5696 251.877 250.3457 248.3721 246.5645 245.0979 244.4072 244.3112 242.0665 242.7484 242.591 241.9467 241.3102 240.7318 239.9681 239.5127 238.4075 -9999 +265.1078 265.948 265.6039 265.6649 265.8219 266.4674 267.7781 270.5436 270.2003 272.3871 277.0341 279.9746 281.7591 283.1115 285.1518 286.5315 286.724 288.112 289.2863 290.9286 293.3829 294.2625 295.4115 297.0026 298.6341 299.9694 300.8901 300.878 300.8708 300.9878 300.6823 299.7112 300.0897 301.6326 302.578 302.8376 302.6284 302.8505 303.5591 304.8735 304.9829 303.235 300.489 299.11 298.6745 297.7999 298.3343 298.2474 297.9711 297.9612 298.348 298.4747 297.389 297.0023 294.3513 293.264 292.0783 289.77 287.3086 286.886 285.7435 282.5634 279.4685 275.2741 276.9617 277.4867 277.1167 275.933 274.6717 274.6557 274.5674 274.2109 273.3542 272.7823 272.3983 272.4359 275.8813 275.7345 274.8814 272.8829 271.8429 271.7028 270.7056 269.6014 269.0263 269.131 268.2319 267.8586 267.6401 266.1938 266.6526 270.4446 272.0172 274.2402 276.3831 279.1781 282.1544 284.6839 286.088 286.117 278.9821 273.2354 268.6718 262.3219 260.1424 260.1254 260.1238 260.1357 260.3384 260.0809 259.9917 260.5121 261.235 261.5042 259.5778 257.5584 259.7642 257.9019 259.1751 259.5434 263.25 267.6473 270.0177 271.8818 272.2737 271.2007 267.9234 277.6452 280.1245 282.7446 285.1117 286.4332 288.2238 287.8044 287.2793 288.2323 288.6639 284.3964 287.0016 288.0775 287.507 287.2841 287.0786 286.6497 286.3225 285.7609 282.9039 281.1159 279.1592 276.447 273.1218 268.5164 265.2292 261.9455 258.7447 252.8944 254.4315 254.9001 256.1584 261.3933 265.6845 266.4357 268.1101 272.5648 279.885 282.5677 283.7542 285.0031 285.8453 286.6258 285.1133 284.7188 283.5899 285.4023 284.6647 284.2504 283.2769 282.5514 282.552 281.7881 280.0453 277.9471 272.2997 268.2845 264.3998 258.9581 255.6984 252.4767 256.7991 256.9792 257.8688 257.9665 263.7016 268.6381 271.8297 274.7068 276.251 275.0161 273.1417 271.1801 269.1188 266.3816 267.7596 267.6927 269.8808 270.4816 268.7938 266.4404 268.1871 269.5956 270.2972 267.5547 265.564 265.4303 264.452 261.3644 262.2966 265.0094 265.419 264.5688 266.1967 268.5338 270.3034 271.7023 272.279 272.9381 273.9473 274.1164 274.2854 273.2514 271.9473 270.4389 269.811 269.5467 269.9698 270.2302 270.2919 270.0724 269.8138 269.5533 268.8252 268.7209 269.7248 270.4284 270.6714 270.804 269.6348 267.5061 265.2206 261.1247 258.3 254.9431 251.8992 249.0061 246.2086 242.366 237.7448 237.4562 237.5842 237.8049 237.9986 238.2786 238.6492 239.1752 239.6797 241.6914 241.7645 243.0445 244.9198 247.6049 249.1883 250.2578 251.3982 252.2218 254.27 255.1922 256.8345 257.6236 258.8929 259.8297 260.5222 261.4803 262.4453 263.6686 263.5436 261.904 259.5754 256.3284 252.477 249.5559 246.4145 243.6326 248.1693 249.9772 251.5407 252.0782 253.5971 254.8913 256.0106 257.2099 258.4149 261.4943 263.1341 264.7903 266.0518 267.0532 267.7718 268.5267 269.5633 270.6433 271.75 272.6153 271.7137 270.2441 268.4857 265.8507 263.3226 260.6461 258.0625 255.4544 248.3346 248.3206 248.2952 248.2696 248.2407 248.745 250.0169 250.8196 251.3993 252.0541 250.776 247.2584 242.4529 243.1851 243.9902 244.4874 245.5857 246.5882 248.1218 249.1498 249.2757 249.8568 250.9412 252.2083 252.7675 254.0521 254.7815 256.7807 258.0773 258.9518 259.8759 260.7554 261.6827 262.5944 263.5465 263.7412 265.0786 265.3003 265.038 265.1638 265.0357 264.9199 264.0175 263.1746 262.5206 261.4081 259.0697 259.1159 259.1089 258.8101 259.3388 259.9236 260.9406 261.3963 261.1594 261.443 262.0309 262.4458 262.5048 262.7567 263.7186 264.5212 265.1812 265.9973 267.9532 267.8322 266.3549 264.8667 262.9753 260.7455 257.7996 255.3918 251.7917 253.6384 255.3876 256.6856 257.6143 257.1474 257.0547 257.6684 257.7064 258.7296 255.7785 253.5004 252.1228 251.2823 248.3164 242.9248 242.3665 242.4386 243.058 244.7771 244.8594 245.6605 246.4431 246.0829 245.6146 245.8426 239.5862 233.5983 232.1981 231.6971 232.0404 232.1999 232.2895 232.1403 232.0824 231.0044 233.1549 232.6559 232.2198 231.9525 231.7192 231.7698 231.8524 231.6891 231.9681 232.4722 234.0885 235.7496 236.4356 237.1706 237.7832 238.9771 239.591 240.3513 241.3344 241.3097 238.4726 236.4237 235.0047 237.7052 239.4729 241.2136 242.0419 242.5872 243.4339 244.9053 245.8694 246.9206 247.7327 248.7198 249.019 249.2144 251.009 252.8764 255.9495 257.2633 258.4618 259.7813 260.099 260.4231 260.8251 260.7528 261.8721 263.9719 264.2717 264.0136 262.726 261.2399 260.1765 259.3835 258.8416 258.0677 256.9995 253.8476 251.9967 250.2434 248.1945 245.7863 244.3099 243.5443 243.5652 243.0157 241.9926 241.8695 241.3878 240.49 239.8771 239.7126 239.2913 238.4524 -9999 +262.9816 265.8901 265.6398 265.6133 265.8985 268.39 269.1667 268.6933 270.5836 274.6949 277.7121 279.8843 281.1411 282.4676 284.3459 285.6535 286.1412 288.6729 289.9799 291.109 292.6208 294.1442 295.2739 296.4738 297.4813 298.4577 299.1407 298.9756 298.9949 299.0053 298.8392 298.135 298.5321 300.1297 300.7196 300.3386 300.6629 301.9142 303.252 304.5117 305.2996 304.7887 303.1709 301.8353 300.8958 299.1736 300.1009 300.1257 300.0062 297.9612 298.348 298.4747 297.389 297.0023 294.3513 293.264 292.0783 289.77 287.3086 286.886 285.7435 282.5634 279.4685 275.2741 276.9617 277.4867 277.1167 275.933 274.6717 274.6557 274.5674 274.2109 273.3542 272.7823 272.3983 272.4359 272.3908 272.3759 271.4037 270.7201 270.1765 269.7531 268.4745 268.1584 268.4015 267.5115 267.1127 266.8762 266.6239 267.848 270.2287 273.6254 273.8567 275.3543 277.6186 280.3971 283.1082 285.1932 286.6252 286.6566 280.3283 275.0916 269.2274 260.7657 260.3147 260.049 259.9381 259.7653 259.6847 258.3809 260.0351 259.6902 258.4557 259.4975 259.8658 259.54 259.2739 259.1943 258.9744 258.6872 260.7389 266.3171 268.6214 270.7364 269.3302 267.126 267.6023 278.5861 282.2737 284.2905 286.016 286.6378 286.9038 285.8474 284.8725 286.2531 287.3111 282.152 285.3362 284.9942 284.6892 284.7543 284.3313 284.1918 284.3968 283.4154 281.2389 280.4771 279.6784 277.6124 274.2615 271.3417 268.3151 265.377 262.8734 252.8004 252.8641 253.6976 259.3607 264.6094 268.9273 271.7918 273.3236 274.9738 280.4602 282.9094 283.997 284.3167 284.5779 284.6227 283.0426 282.3487 280.7465 283.0337 282.6835 282.2812 281.2399 280.7852 281.0252 282.0119 280.8007 278.9678 273.2604 269.191 265.4503 260.8565 256.0433 253.1947 253.1042 252.946 256.1463 261.6454 265.1357 268.7047 271.4787 274.1267 275.9117 273.7485 271.264 268.3291 266.3137 262.9141 264.3278 264.7 266.9723 267.6772 265.188 263.6298 265.9482 267.5829 268.7878 267.3836 263.6573 263.7988 263.0495 261.0223 258.9667 262.1722 263.791 263.4084 265.7543 267.3632 268.9569 269.9876 269.9788 270.9099 271.8444 271.8932 272.6941 272.7427 271.6994 270.4439 269.3082 268.8301 268.754 268.5283 268.3445 268.5939 268.6398 268.6974 268.8052 268.8803 270.0615 270.9791 271.6582 271.8928 269.8852 267.2207 265.195 262.5416 259.1802 256.0804 252.9965 249.7892 246.6739 242.2982 237.2757 237.3238 237.5048 237.693 237.6326 238.2026 239.431 241.4396 242.7622 242.5864 243.9704 246.9771 248.5758 249.8661 251.0077 252.3003 253.1023 253.2292 254.6758 255.7117 256.6599 257.881 258.6467 259.7702 260.8113 261.959 263.0305 263.7976 262.9435 260.5569 258.0262 256.1348 252.2149 248.6799 244.963 244.0055 249.9956 251.1798 252.2328 253.7021 254.6961 255.5538 256.0823 257.2966 258.5615 261.4805 262.8209 264.2512 265.2802 266.0916 267.0049 267.7914 268.6504 269.5966 270.6809 272.0357 271.6083 270.4988 269.04 266.774 264.2619 262.0031 259.631 258.3543 251.6793 248.4959 248.2781 248.2558 248.2287 248.2037 248.153 247.8849 247.4876 249.2482 248.6014 245.9345 243.0222 243.3041 244.384 245.6482 246.9363 248.0647 248.9443 249.3548 249.9893 250.526 251.9947 253.246 254.2794 255.1983 255.7854 256.7913 257.8655 259.1172 259.9488 260.848 261.6632 262.5944 262.5446 263.584 264.6339 264.7011 264.3901 264.259 264.4345 264.1203 263.5023 262.6759 261.9338 261.2045 259.2226 258.2528 258.3042 258.5279 258.5773 259.4819 260.3694 261.0652 260.4865 260.694 261.3979 261.8615 261.8174 262.331 263.5692 264.5212 265.1812 265.9973 267.9532 267.8322 266.3549 264.8667 262.9753 260.7455 257.7996 255.3918 251.7917 253.6384 255.3876 256.6856 257.6143 257.1474 257.0547 257.6684 257.7064 258.7296 255.7785 253.5004 252.1228 251.2823 248.3164 242.9248 242.3665 242.4386 243.058 244.7771 244.8594 245.6605 246.4431 246.0829 245.6146 245.8426 243.1143 237.3349 232.0802 232.0789 231.8862 232.0097 232.1104 232.0611 231.9446 230.4361 232.5434 232.6012 232.1522 232.1396 231.9261 231.6817 231.5957 231.5249 231.4627 231.378 232.2204 234.4995 236.4019 237.4636 237.7296 239.5133 240.4674 240.3771 240.7966 240.8179 234.2416 235.7843 237.1022 236.0676 238.9016 240.9846 242.4177 243.6962 243.9693 245.1867 246.2069 246.5912 246.9007 247.5009 248.0395 249.9603 251.88 253.8269 256.9703 258.4153 259.5491 260.7794 262.3755 261.8289 262.2356 262.4925 262.7102 264.3812 264.5311 263.5775 262.4827 260.6998 259.7986 259.1498 258.2836 257.1673 256.2428 253.5424 252.1497 250.2767 247.5745 244.7414 243.412 242.7357 242.3553 242.1524 240.3022 241.0062 240.6919 240.2966 238.8714 238.1113 238.0036 237.3967 -9999 +262.9427 266.2188 266.3539 266.7113 266.4872 266.0154 267.1509 268.8744 273.5759 275.7456 278.9361 281.0625 281.2945 282.307 283.2806 284.7413 286.6696 289.118 290.6828 291.8923 292.9737 293.6098 294.5159 296.4738 297.4813 298.4577 299.1407 298.9756 298.9949 299.0053 298.8392 298.135 298.5321 300.1297 300.7196 300.3386 300.6629 301.9142 303.252 304.5117 305.2996 304.7887 303.1709 301.8353 300.8958 299.1736 300.1009 300.1257 300.0062 299.2497 299.0765 299.313 299.1249 297.6866 294.782 292.7417 290.7663 289.9664 290.0066 289.9308 287.92 285.6078 282.552 277.1927 275.1323 276.279 275.7755 275.0143 273.7115 273.2206 273.8628 273.9669 272.6801 271.5587 271.8357 271.365 271.2089 270.2869 269.1642 268.6969 269.8297 269.7627 270.9797 274.3123 275.7407 274.8016 272.8229 272.6412 271.2874 270.3426 273.3116 276.6912 277.3115 277.3058 278.7357 280.0772 282.7919 284.6791 286.4297 287.0733 279.0267 275.9681 271.4794 261.745 260.2541 260.7115 260.3251 259.8817 259.4392 259.874 260.1164 260.0011 260.1615 259.7241 259.5738 259.3749 259.3647 259.1234 257.6274 258.9745 258.0376 259.8795 263.1645 265.2254 262.8985 263.0324 269.0599 278.0896 281.8091 283.7426 285.1534 283.924 283.2347 282.4219 281.5573 284.508 284.1682 279.149 282.0172 282.7275 282.0476 282.5753 281.8706 281.3748 282.1735 281.548 279.4055 278.395 278.585 277.1854 275.3223 272.9178 269.9433 267.7537 265.508 256.2558 250.7465 252.6629 259.5318 264.053 268.3592 272.5601 274.532 276.4863 281.0042 282.3276 282.2284 281.4594 281.7655 281.6206 280.3817 279.7747 278.1667 280.4165 280.3648 279.7765 279.1793 278.1684 279.3199 280.654 280.5561 279.5529 274.2495 270.2375 265.983 262.4106 256.8656 253.4011 250.2047 257.567 260.3681 263.3751 265.9908 268.9754 271.3934 274.0501 275.5206 273.0121 269.408 265.7886 262.723 260.8144 260.8019 261.5556 263.5189 264.193 261.5334 262.581 263.4087 265.2228 266.806 266.1243 264.3798 262.4955 260.635 259.0738 257.3543 260.8806 261.6942 261.2328 263.7073 265.2334 266.6435 267.4335 267.7999 268.9762 269.2576 269.4282 271.0457 271.7029 270.946 269.7488 268.5977 267.3639 266.6666 266.7596 266.8202 267.7381 268.2122 268.2153 268.2538 268.6368 269.8695 270.728 271.3505 271.5814 269.3608 266.9807 264.8409 262.5233 260.2711 257.0202 253.5384 250.2988 246.9552 243.9616 237.4849 237.6505 237.4853 237.4092 237.4823 238.3396 239.8964 241.8157 243.9456 246.7621 247.8296 249.2886 250.2285 250.9235 251.8201 252.6937 253.1755 253.4457 254.8436 255.7249 256.7606 258.1836 258.8908 259.992 261.2007 262.4264 263.4144 263.536 262.3166 259.1707 256.8279 254.6167 250.8375 246.9411 243.1511 244.1629 250.2241 251.6356 252.3518 253.9666 255.5018 256.2834 257.4935 258.8569 259.3833 262.0276 263.3604 264.6539 265.5934 265.8676 266.1837 267.1733 268.1127 268.7861 269.6161 271.0368 270.5936 269.8967 268.8557 267.086 264.4038 262.3137 261.1956 260.627 257.5526 254.9544 251.6577 248.3224 248.2177 248.1915 248.0745 247.6628 247.232 245.3587 245.4609 243.9405 242.3819 242.1801 244.4259 245.4485 247.2703 248.9118 250.2596 250.5033 251.068 252.2312 253.7552 254.9785 255.8004 256.4329 255.7854 256.7913 257.8655 259.1172 259.9488 260.848 261.6632 262.5944 262.5446 263.584 264.6339 264.7011 264.3901 264.259 264.4345 264.1203 263.5023 262.6759 261.9338 261.2045 259.2226 258.2528 258.3042 258.5279 258.5773 259.4819 260.3694 261.0652 260.4865 260.694 261.3979 261.8615 261.8174 262.331 263.5692 264.3177 264.6583 265.3105 267.1726 266.7972 265.6882 264.2554 262.1814 259.4909 258.2884 257.1541 252.6535 255.9667 257.8888 259.124 259.5761 259.19 259.5395 259.8663 259.345 259.5075 256.6179 254.5378 252.7239 249.9666 245.9175 241.6978 242.4016 243.7787 245.1653 246.0157 246.8442 248.5565 249.7719 250.5503 250.2623 248.9601 245.4434 240.0902 231.9412 231.8403 231.9523 232.0381 232.0675 232.2135 232.1119 230.1794 232.5931 232.5159 232.2065 231.9703 231.9456 231.7009 231.5392 231.4315 231.3879 231.1087 231.5413 232.7211 235.5692 237.7357 237.9002 240.2898 240.4191 239.8708 239.6183 237.8784 234.2312 236.8307 238.5177 238.9345 238.9291 239.7468 242.1828 243.4874 244.6402 245.2542 246.0659 246.5157 247.1741 248.93 250.1063 251.4311 252.8694 254.8151 257.9701 259.281 260.8205 262.2811 262.6201 263.7845 263.7778 263.7184 263.6858 264.5755 264.2028 263.0247 261.9276 260.5286 258.9227 258.1558 258.1817 257.4615 256.3103 252.6627 250.8121 249.0538 246.6214 244.4824 242.974 241.5407 241.1837 240.9535 238.506 240.061 240.0372 239.8113 239.6336 237.8322 235.6836 232.9822 -9999 +262.9427 266.2188 266.3539 266.7113 266.4872 266.0154 267.1509 268.8744 273.5759 275.7456 278.9361 281.0625 281.2945 282.307 283.2806 284.7413 286.6696 289.118 290.6828 291.8923 292.9737 293.6098 294.5159 295.7357 296.6922 297.299 297.4796 297.1814 296.851 297.1458 296.908 296.5192 297.6429 298.5392 298.9398 298.3616 301.006 302.5602 303.7041 304.7806 305.4176 305.4005 304.3155 303.4757 302.3278 300.97 301.4125 301.5475 301.5262 300.4157 300.7121 300.3005 299.3128 298.3273 295.1861 292.7611 292.2122 292.1928 291.9567 291.281 289.4015 286.9749 284.5162 278.3297 277.2852 274.4123 274.1957 273.481 275.0826 275.0999 276.7368 278.5033 279.8997 278.2099 275.7791 274.4692 273.3336 271.4768 271.0631 270.4414 271.1087 272.4361 275.7621 277.6532 278.6966 278.9984 277.5562 276.1554 273.2878 273.5141 276.7083 277.9819 279.5168 280.1137 281.1816 281.4205 283.6178 285.3266 286.5822 285.9975 279.8852 277.0248 272.9234 267.2629 265.901 262.1983 261.1405 260.0313 259.7135 259.8046 259.6592 259.643 259.5508 259.5308 259.5903 259.3224 259.2653 259.1502 258.9443 258.779 258.8925 258.8067 258.0713 257.2651 256.7706 258.403 262.3118 273.9727 278.4491 281.5376 282.4271 280.0469 278.619 278.2148 279.1968 283.0564 282.4785 277.3892 278.6228 280.0105 280.2718 280.5275 279.9026 279.2164 281.6282 280.5045 276.7909 275.6626 276.041 275.0585 273.0359 271.1259 268.7779 266.8846 265.2453 258.7088 251.6691 249.9469 255.5392 253.842 259.9279 268.728 272.2066 274.8026 279.9283 281.0431 279.0167 277.3229 278.6041 278.418 277.0588 277.795 276.3337 278.1059 277.3571 276.6526 276.5786 275.8026 277.8409 279.6499 280.1216 279.441 275.3158 270.9786 266.6945 262.4278 257.2759 253.28 249.4406 257.9204 260.2271 264.5272 266.8072 270.1484 271.2846 273.6914 275.2243 273.4723 271.6343 267.4366 261.1185 257.1618 257.9481 257.4544 258.0556 259.7968 258.1649 260.6675 260.3902 262.3075 264.2888 264.5408 264.5362 262.8981 259.264 255.6072 254.7156 258.8007 258.7122 259.13 261.5084 262.7686 264.3181 265.1054 265.8943 266.5348 266.7521 267.9145 269.5707 270.4726 270.6408 269.6576 268.2729 266.8981 265.659 265.1715 264.8761 265.868 266.5192 266.8569 267.0998 267.9501 269.1812 269.8592 270.9316 271.379 270.2101 268.1008 266.0196 263.1779 259.2802 256.7035 253.7199 251.772 248.2496 244.2299 237.5436 237.7349 237.3767 237.3586 237.4998 239.0417 240.4322 242.3853 244.1917 247.7742 249.1239 250.2913 250.8118 251.335 251.8377 251.9721 252.0737 252.4888 254.2557 255.1941 256.4044 258.4108 259.1628 260.5078 261.7676 262.9568 263.8589 263.0593 261.8477 259.1207 256.2029 252.3361 248.5961 245.308 242.9166 244.7216 250.5522 251.9417 253.0694 254.3459 255.9609 257.1715 258.4361 259.6263 260.7454 262.1441 263.0183 263.647 264.3171 264.9209 266.0326 266.9395 267.2685 267.5828 268.4641 271.0368 270.5936 269.8967 268.8557 267.086 264.4038 262.3137 261.1956 260.627 257.5526 254.9544 251.6577 248.3224 248.2177 248.1915 248.0745 247.6628 247.232 245.3587 245.4609 243.9405 242.3819 242.1801 244.4259 245.4485 247.2703 248.9118 250.2596 250.5033 251.068 252.2312 253.7552 254.9785 255.8004 256.4329 257.0933 257.5462 258.2291 259.0802 259.6662 260.6296 261.337 261.5862 261.9361 262.5729 263.962 264.199 263.6476 263.3497 263.5533 263.1709 262.9279 262.3275 261.5596 260.1443 259.4286 258.0731 257.3821 257.7607 258.1901 259.0487 259.5302 259.8329 259.5425 259.6309 260.5058 261.3159 261.5566 262.2867 263.27 264.3091 264.14 264.5014 266.0827 266.1498 265.6095 264.2232 262.5014 261.0275 261.1591 259.2782 254.5083 256.4644 258.5628 260.0749 260.7742 261.213 261.416 261.5811 260.6636 260.2608 257.2965 254.6805 252.0232 247.6123 243.5978 242.3158 243.7325 245.0132 246.4576 248.272 248.6922 250.5836 251.9968 253.1345 253.2249 250.7021 246.5771 241.3031 232.0721 232.0669 232.0319 231.8866 231.9283 232.0545 232.2 230.425 232.3293 232.3407 232.2262 232.0042 231.996 231.8369 231.5938 231.4494 231.3127 231.2484 231.0926 231.3784 232.3825 236.973 237.5444 239.5598 239.3132 238.4623 236.853 233.9904 235.9314 236.9833 238.4798 240.2467 238.7345 240.1262 240.9693 243.3898 244.8857 244.9808 245.4354 246.2037 247.9724 249.3318 250.7064 251.7357 253.1306 254.7818 258.3559 259.6963 261.0015 262.2994 263.8503 264.7566 265.2302 265.4865 265.2414 264.6752 263.661 262.9823 261.4824 260.2787 258.263 257.282 257.241 257.0197 255.9296 252.726 251.0991 247.741 245.4536 244.2991 243.2503 241.7814 240.4746 240.32 239.4791 238.9342 239.2725 238.9511 239.0041 237.5925 233.0735 232.2503 -9999 +263.0077 265.7308 265.4736 265.6144 265.3242 266.3376 270.372 271.9638 275.1903 278.03 280.6225 280.0104 280.3514 283.1911 285.0689 286.3955 287.8831 290.2758 291.0641 291.3324 291.1953 291.4693 292.7032 294.5654 295.7376 296.2812 296.2527 295.2874 294.4948 293.51 293.8281 294.7976 296.1213 296.6031 296.937 298.1717 301.84 303.0872 304.4094 305.2009 305.6639 305.7477 305.4484 304.3474 303.6514 302.646 302.621 302.6229 302.5739 301.7603 301.4806 301.0964 300.2787 298.3506 295.3823 294.1051 293.3013 292.7901 292.2574 290.8242 289.3217 287.117 284.8585 279.9695 277.7832 276.3254 276.1801 276.8268 277.532 278.7582 280.1758 281.512 283.3629 281.736 280.359 278.4108 275.1725 273.136 274.5595 273.4931 275.9177 276.6983 279.1992 280.4439 281.2518 281.8226 280.124 276.7458 275.8598 277.903 281.6824 280.3532 281.4324 281.3901 282.3932 283.4486 283.8756 285.0921 285.6241 284.6798 278.0226 275.2849 271.4712 267.7032 265.6096 267.1884 262.451 261.0703 260.7666 266.3456 260.618 260.3785 262.7822 262.1304 259.2232 259.3199 259.1559 259.7334 261.9711 263.5172 263.7293 262.4614 261.1163 260.5226 260.1544 258.9383 258.148 261.6802 269.8606 276.7676 278.0302 276.1432 274.116 274.0052 278.2834 281.7245 281.395 276.7856 273.8601 275.4242 278.0225 278.6516 277.8536 277.5443 279.399 278.1747 273.2365 271.1319 270.9068 270.8934 268.8154 266.8817 264.7091 264.0635 260.8429 258.8868 252.7009 249.3186 248.9551 248.3455 248.4746 257.1454 266.9747 270.4061 277.6787 278.0786 275.1186 273.1483 274.6593 274.7034 273.9402 275.6548 273.8313 275.6349 273.975 273.4298 272.6582 273.532 276.3525 277.5757 278.101 278.4782 275.7144 271.4461 267.4327 262.1615 256.2091 253.0771 250.5557 257.6375 259.8495 265.052 267.1755 270.3005 271.0478 273.7283 275.3586 273.4062 272.1663 268.7628 263.1771 261.7374 255.5459 254.2873 254.0338 253.5615 254.3241 256.0651 257.0096 259.0485 261.9517 262.5143 262.6817 262.275 260.5031 254.7281 255.9863 256.6051 256.2588 254.7143 258.6062 260.5993 262.2039 263.1975 264.0889 264.0938 265.2234 265.7946 268.3803 269.6377 269.7281 268.6952 267.8092 266.5975 264.8705 264.5347 264.4347 264.264 264.6167 265.2902 266.1826 267.2545 268.5039 269.3636 270.2194 270.8616 270.2195 268.7472 266.5867 263.9876 261.2928 258.653 256.2898 252.6474 248.7516 244.1949 237.7388 237.1364 236.2997 237.2637 237.2165 237.6312 239.6722 242.2903 243.6801 246.8456 248.3496 249.5628 250.0201 250.1986 250.3217 250.4807 250.6251 251.7632 254.6415 255.7832 257.063 258.3676 259.1628 260.5078 261.7676 262.9568 263.8589 263.0593 261.8477 259.1207 256.2029 252.3361 248.5961 245.308 242.9166 244.7216 250.5522 251.9417 253.0694 254.3459 255.9609 257.1715 258.4361 259.6263 260.7454 262.1441 263.0183 263.647 264.3171 264.9209 266.0326 266.9395 267.2685 267.5828 269.5361 269.7168 269.4908 268.9413 268.2061 266.2749 263.661 262.0914 262.1066 262.3203 261.1235 259.11 256.5272 251.3944 249.4482 248.185 247.7949 247.467 247.0354 242.7402 242.2539 242.1235 241.987 241.2744 243.6784 245.1971 247.7656 249.544 250.8761 251.5637 252.3567 253.3563 254.4711 255.7093 256.4447 257.3519 257.8691 258.6073 258.8527 258.5551 259.2712 259.8836 260.4596 260.4248 260.8421 261.2236 263.0163 263.0054 262.8062 262.4175 262.5867 262.316 262.0374 261.838 261.3259 259.9391 259.2458 258.2467 257.144 256.6603 257.3889 258.4314 259.0045 259.0489 258.7243 260.3437 261.2677 261.9496 262.6226 263.0077 263.6305 264.0413 263.9155 263.9214 265.0291 265.2404 265.079 264.2672 263.283 262.4121 261.3972 260.3 257.4539 255.81 258.2585 260.0405 261.8206 262.7002 262.5353 262.1739 261.2896 259.9211 256.6011 253.7816 250.3802 246.7443 242.9434 244.8014 246.8347 247.602 247.3809 249.995 250.9477 252.3123 253.5756 254.5016 252.9798 249.9176 246.483 241.7809 232.9533 232.1602 232.5355 231.8035 232.0061 231.8419 232.1416 231.7728 231.079 232.436 232.5777 232.1546 231.9174 231.9356 231.6364 231.6212 231.4297 231.2816 231.1461 231.2641 231.1746 232.6832 235.4237 236.1184 236.5072 235.8999 232.9165 232.6631 235.9907 238.8291 239.0183 240.3318 241.9285 240.7516 241.573 242.3468 243.0272 244.4476 244.9306 245.9396 247.9428 249.111 250.5333 252.0248 253.755 255.5814 258.7715 259.883 261.8648 262.8192 264.1119 264.9438 265.6081 265.5205 265.8828 264.475 263.4332 262.5084 261.1627 259.3726 257.8901 256.834 256.4817 255.8677 254.7208 252.2298 250.5384 247.7752 245.8029 244.5801 243.229 241.6078 240.8018 239.6199 238.5697 238.185 238.5796 238.4463 238.1617 235.5561 232.0159 232.1597 -9999 +263.8491 265.8369 265.2756 265.1191 265.3427 265.4809 267.8068 271.7674 275.253 276.0063 277.4131 280.3238 283.697 285.1785 286.6928 287.9022 289.329 291.0717 291.0161 289.8106 288.8063 290.5691 291.8335 293.0724 294.0474 294.6133 294.2802 293.3662 291.7301 289.7661 291.6374 292.6186 294.2711 295.5352 298.3262 299.9166 302.4355 303.5399 304.5749 305.0102 304.9366 305.0357 305.5138 305.4113 304.7346 303.8642 303.9705 303.6798 303.5424 303.088 302.3555 301.5316 300.3361 299.1075 295.7063 294.5913 293.3312 291.8626 290.933 289.8885 288.0516 285.8752 283.4022 278.3057 277.0698 276.4293 277.3706 280.1075 281.2202 281.9717 282.8121 283.8975 285.756 284.3861 282.2351 278.9887 274.2002 274.2082 277.2585 279.2805 280.4571 280.9765 281.8176 282.8416 283.8657 283.3972 281.2261 277.065 276.3669 279.7144 284.084 283.7543 283.5881 283.5067 283.7398 284.3896 285.5277 285.9054 285.1671 283.8683 279.6305 276.9379 275.7693 273.0483 267.439 270.7764 272.7912 266.54 268.7664 269.4099 268.3375 265.7913 268.7274 268.9936 266.004 260.7797 262.7684 265.6095 266.6471 266.8542 266.4899 264.9843 263.7989 262.3628 261.4181 261.3402 260.5257 257.9292 257.6929 265.6211 271.4797 271.3081 267.6711 272.2763 276.4936 279.513 280.6694 276.831 271.8172 273.9466 275.855 275.6228 274.8445 275.0752 276.3469 275.4074 271.3793 266.5117 263.6035 264.5052 263.4507 260.2629 259.2416 258.408 255.9249 252.6377 251.0256 246.7061 245.8957 247.0903 245.7123 247.3696 257.181 263.7541 271.7858 271.4784 269.2824 268.0152 269.0819 270.9988 272.945 272.8162 270.8737 273.8877 269.9281 269.2475 270.4011 272.7982 273.4334 275.549 275.2496 276.7474 275.643 270.9809 267.2637 262.1194 255.7385 252.0878 250.614 257.8416 260.0671 263.7204 266.2831 268.7526 270.6724 272.2536 273.9221 274.2614 273.0192 271.0219 268.4917 265.4839 262.3419 257.7383 253.6599 252.7718 253.0264 252.3077 253.9533 256.9992 259.8523 260.2523 260.5891 260.6732 260.07 257.1217 251.0583 252.7613 253.293 251.5549 256.2932 258.6956 260.4022 261.9489 262.2811 261.644 262.1464 263.4256 267.4255 268.6025 268.7738 268.0755 267.152 265.831 264.201 262.772 262.3554 262.9748 262.3914 262.4363 264.093 266.2074 267.2541 268.2951 269.3173 269.804 270.2195 268.7472 266.5867 263.9876 261.2928 258.653 256.2898 252.6474 248.7516 239.7315 237.7388 237.1364 236.2997 237.2637 237.2165 237.6312 239.6722 242.2903 243.6801 246.8456 248.3496 249.5628 250.0201 250.1986 250.3217 250.4807 250.6251 251.7632 254.6415 255.7832 257.063 258.3676 259.4912 260.6985 261.8557 262.8842 263.6122 261.8351 260.3201 257.7606 254.7631 250.3044 246.9992 244.3101 241.8022 246.0694 250.6099 251.9683 252.8324 254.4543 255.8345 256.7357 257.785 258.9028 259.9274 260.2853 261.5537 262.5192 263.5886 265.0211 265.7903 266.1057 266.0825 266.4855 268.1138 268.2753 267.9292 267.768 267.1612 265.3687 263.227 261.7509 262.263 263.6736 263.9115 261.7018 260.0331 255.911 252.3338 252.4325 252.0977 249.0483 247.6964 245.4727 244.3638 242.3714 241.5257 240.4507 242.7328 244.9582 247.5503 248.9747 250.9116 252.2883 252.9448 253.7235 254.5288 255.8053 256.9933 257.861 258.4479 258.5706 258.4303 257.7536 257.7714 258.5549 259.0497 259.3377 259.2819 260.4706 261.5508 261.9262 261.6641 261.381 261.5862 261.4793 261.1844 260.9328 261.0331 259.8555 258.8405 257.8036 257.0629 256.4804 256.1406 257.2959 257.6169 257.2384 258.3604 260.217 261.1272 262.2146 262.7304 263.2955 264.1426 264.0459 263.7278 263.2419 264.0976 264.2181 264.5013 263.7465 262.7704 261.6719 260.6021 259.3119 257.0325 256.7958 258.9896 260.3864 262.4714 263.4924 263.8246 262.5838 260.3181 258.4794 254.832 251.754 246.0069 245.7357 244.7298 249.4212 249.7634 249.7909 249.7377 251.8707 252.7784 253.6267 254.4338 254.1528 251.5811 248.1335 245.1105 242.1447 235.0122 233.2493 232.56 231.3888 231.7372 231.7258 231.6877 232.2755 230.1371 232.4576 232.8757 232.3535 232.0747 231.9086 231.7199 231.4715 231.4734 231.4787 231.1698 231.7189 231.4601 231.5026 233.0559 234.3644 234.3516 232.6727 232.4106 233.8192 236.5205 239.0088 240.4857 240.5742 241.2202 241.2117 241.6183 241.989 242.6852 243.4619 244.3549 245.2238 246.4838 248.6009 250.7561 252.5926 254.4088 255.4025 258.7297 260.3849 261.422 262.5435 262.9632 264.0961 264.842 264.7121 264.6977 263.9158 262.696 261.9498 260.5531 258.7817 256.7749 255.7103 256.0671 255.3871 254.063 250.9347 249.7465 248.5258 246.9921 245.3497 243.5108 241.68 239.97 239.556 237.883 237.2566 237.6027 238.0408 237.7946 234.9722 232.7304 232.3602 -9999 +265.9444 263.3679 264.834 265.0756 265.0286 264.9117 265.7526 272.8425 277.8804 279.3961 280.8472 282.8181 284.8507 286.5607 287.9359 289.3023 290.3525 291.0394 290.4511 288.4048 287.7546 289.9216 290.8145 291.2532 291.508 292.2772 292.2947 291.4923 288.8719 289.2603 289.564 290.2525 293.9214 297.5318 299.5134 300.8302 302.8466 303.7021 304.1538 304.023 303.6275 303.9088 304.8535 305.648 305.5395 305.2839 305.0353 304.9586 304.6752 303.6286 302.7028 301.7271 300.1834 298.7208 295.9719 293.7168 292.8528 291.4513 289.9113 288.3371 286.6046 284.4803 281.4155 277.4515 279.7036 278.4938 279.3179 281.6059 283.1652 284.4301 285.0014 286.2703 287.0132 285.3267 282.3222 277.352 274.8939 275.8928 279.1074 281.9364 284.0288 285.1086 284.7435 285.1451 285.839 284.5551 281.2003 276.8743 276.6414 281.1457 284.4662 286.0548 285.8495 285.6703 285.2276 285.7195 286.7342 287.2614 287.0338 286.0457 282.2563 280.5348 278.9859 276.4306 268.6006 274.8345 274.0314 269.705 272.22 272.4132 271.643 269.8786 272.0529 272.7273 271.6777 269.4083 268.5016 269.0262 269.4952 269.2636 267.7533 266.2733 265.0211 263.7052 262.4154 261.5007 261.1658 259.1602 257.9811 257.6096 262.7735 263.9957 265.4962 269.0069 274.0977 277.7454 280.5685 277.4959 269.3725 271.5477 272.886 272.8148 272.1282 272.0325 273.5738 269.8274 267.9641 263.3055 258.6256 254.0199 255.3464 253.5197 252.8612 250.9968 248.1402 246.7527 249.2717 250.7581 253.1484 252.9409 250.1163 246.149 245.599 253.4017 263.4395 262.809 262.6004 262.9424 268.7762 272.0099 273.0038 270.563 269.6656 269.6537 264.3151 266.2434 269.9453 270.5816 270.9504 271.58 272.9754 275.5426 274.3574 268.88 265.3385 261.4352 256.3851 251.972 249.2765 256.2085 258.2577 261.7685 264.3383 267.0928 269.2285 271.182 273.3285 274.152 274.1181 272.4178 268.2169 265.8833 263.7208 260.8527 256.7484 253.4704 248.9217 250.0762 252.0978 254.1321 256.9128 257.6658 258.3522 258.6606 260.07 257.1217 251.0583 252.7613 253.293 251.5549 256.2932 258.6956 260.4022 261.9489 262.2811 261.644 262.1464 263.4256 267.4255 268.6025 268.7738 268.0755 267.152 265.831 264.201 262.772 262.3554 262.9748 262.3914 262.4363 264.093 266.2074 267.2541 268.2951 269.3173 269.804 269.8071 268.7894 267.3153 264.7814 262.0972 259.2806 256.8473 253.5922 249.9668 240.665 238.0669 237.1005 237.4497 237.4205 237.0605 237.256 238.6978 241.1392 242.4944 245.3004 246.5789 247.5581 248.3459 248.7426 248.6261 249.361 250.7707 252.2156 255.1292 256.3979 257.5033 258.5558 259.1784 260.5071 261.4711 262.2924 262.7437 260.3225 258.8944 256.2442 252.2545 248.366 245.4727 242.2485 242.8451 246.5333 250.3661 251.8272 252.8549 253.3489 253.4758 254.5494 255.6801 256.9421 258.1348 261.2869 262.6268 263.8746 264.7451 264.9344 264.9186 264.7784 264.9562 265.1014 266.3261 266.6137 266.4267 266.5096 266.5537 265.5048 264.0121 261.867 262.4332 264.623 266.1785 264.3041 262.37 260.3058 258.0623 256.1174 255.0119 253.3517 250.2437 248.1614 247.6054 244.9256 241.7387 240.8809 242.4728 244.5911 246.6424 248.4585 250.777 252.2337 253.4615 254.1741 255.0221 256.0413 256.9501 257.7402 257.7139 256.7933 256.7861 256.3516 256.7739 257.2107 257.4983 257.8115 258.0857 259.4047 259.9611 260.4569 260.8314 260.0438 260.2152 260.2236 260.2184 260.609 260.9638 259.8875 258.951 257.7686 256.3818 254.7899 254.9862 256.6614 256.3316 256.8355 258.1274 259.7894 261.0467 261.9852 262.686 263.2143 263.7167 263.6739 263.2977 262.8741 263.4784 263.8283 263.8112 263.3021 262.4824 261.2025 259.6814 258.5385 257.0883 258.2076 259.8106 261.4637 262.6453 263.6865 263.9724 262.5849 260.0582 257.8073 252.3906 248.8364 249.9681 251.0661 251.7029 251.904 252.1755 252.6493 252.4067 253.798 254.5913 255.1001 254.5436 253.5168 251.2775 248.7199 245.69 242.8379 237.6308 235.4269 233.9939 232.5367 232.0263 231.6806 231.1392 231.2078 231.2722 231.3017 232.5648 232.6152 232.3402 232.0074 231.9184 231.5197 231.5255 231.5102 231.4004 231.4033 231.4165 231.4581 232.288 232.8759 234.2274 231.8405 233.0485 235.152 238.4165 240.7366 241.7039 242.2357 241.4644 241.6098 241.7445 241.9917 242.2847 243.7834 244.2897 245.5181 246.8062 248.7294 250.8472 252.5786 253.9514 255.5452 258.1003 258.9508 260.1677 260.5845 261.511 262.6119 263.2467 262.5246 263.8923 262.903 261.5703 260.2845 259.2187 257.8997 256.8994 255.4212 254.6069 254.5521 251.8521 250.1651 249.0502 247.9032 246.8858 245.5653 243.4788 240.5626 238.5963 238.6271 237.3482 236.7255 236.675 237.4516 237.2634 235.1874 232.8595 232.2866 -9999 +265.6169 263.2422 264.9602 264.884 264.9467 264.7742 266.2543 273.6489 279.1657 281.3758 282.9825 284.3943 285.8482 287.5995 288.9172 290.3041 290.5665 290.0386 288.627 286.3955 287.0771 289.1019 289.727 289.7891 289.4507 289.8056 288.4034 286.147 286.2911 287.0505 289.3613 291.5083 295.0566 297.927 299.3717 300.3854 302.0758 302.6161 302.9623 302.6622 301.7764 302.5626 303.7534 304.8527 305.7468 306.2516 306.0616 305.8103 305.3353 304.0827 302.7318 301.1665 299.9134 298.7116 295.4814 293.389 290.8788 290.0345 288.8759 286.677 283.5802 281.071 279.3814 282.6517 281.5372 278.2198 280.5493 282.8632 285.0698 286.3965 287.6649 287.9156 287.4348 285.6668 282.7709 277.1605 275.7342 278.4123 281.2902 283.4892 285.813 288.7234 288.2342 287.3817 287.2461 285.3409 281.9384 278.2489 277.6609 281.9535 286.732 287.3121 287.8006 287.6391 287.5103 288.0114 288.356 288.9883 289.1694 288.1244 284.0229 282.2852 280.8329 275.4923 276.0602 278.0701 275.4391 275.6497 275.3686 274.7638 273.3651 271.6751 273.5196 274.9283 274.8359 273.2738 272.1738 272.276 271.4354 270.48 268.1864 267.047 265.7621 264.5932 262.7717 260.8041 260.3538 259.3045 258.7657 257.0455 258.302 263.8547 266.6377 269.9196 274.1774 277.5623 279.2739 278.9196 275.3591 268.0698 267.9005 269.4839 269.3984 269.8538 270.4207 264.2365 261.7841 256.8322 250.3311 247.8321 247.4267 247.5433 246.8513 248.6965 251.1986 254.111 254.4193 253.7329 256.3353 255.7973 254.1369 251.4664 246.2204 244.3837 250.9319 258.2907 256.621 265.0657 268.9838 269.9841 268.0269 266.3918 267.0112 262.9276 263.0055 266.7152 267.7217 266.8279 268.0307 269.2032 272.7604 275.1056 274.7471 270.7255 265.3385 261.4352 256.3851 251.972 249.2765 256.2085 258.2577 261.7685 264.3383 267.0928 269.2285 271.182 273.3285 274.152 274.1181 272.4178 268.2169 265.8833 263.7208 260.8527 256.7484 253.4704 248.9217 250.0762 252.0978 254.1321 256.9128 257.6658 258.3522 258.6606 259.2321 258.6213 256.584 252.0311 250.2948 253.6649 256.2805 257.538 258.881 260.0851 259.6184 259.8903 260.2657 262.0384 266.1942 267.332 267.0388 265.459 264.3535 263.118 262.2029 260.6605 261.2698 260.6432 261.6398 262.0626 262.4863 264.562 265.9863 267.1542 268.4077 268.6259 269.3158 268.5051 267.52 265.0258 262.5192 259.8263 257.8378 255.8099 252.8255 245.9822 239.3785 237.6706 236.8869 237.2999 237.0352 237.0243 238.1837 239.6406 241.5256 243.9706 244.8961 245.5852 246.7696 247.4374 248.069 250.0294 251.6064 252.8961 255.0103 256.1832 257.2687 258.1639 259.1269 259.7206 260.5501 261.2008 261.3335 258.6027 257.3718 254.692 250.6931 246.6345 244.2461 241.0982 244.2673 246.8121 249.7595 251.0487 251.5633 252.3581 254.7817 256.9826 257.9588 259.4503 260.5924 262.4951 263.1592 263.8749 264.028 264.2986 263.9103 263.1872 263.2085 263.4506 264.8785 264.7697 264.8683 264.936 265.9 265.5363 264.4717 261.9274 262.202 264.7503 267.1956 265.9602 263.9269 262.262 260.3853 258.8316 257.4165 256.239 254.946 251.3053 249.93 246.9998 242.2763 240.3011 242.0217 243.8263 246.2062 247.9319 250.5094 252.0205 252.9901 253.8938 254.8117 255.6495 256.5804 256.7195 256.1079 254.5995 254.7144 254.8491 255.6339 255.8993 256.1247 256.3741 257.4708 257.9142 258.5521 259.3115 259.0087 258.7524 259.1531 259.8464 260.544 261.0775 261.2849 260.3954 259.5604 258.6817 256.906 254.1854 254.7578 255.6249 255.554 257.0332 258.1361 259.3661 260.7928 261.6339 262.367 262.9553 263.3873 263.4575 262.8525 262.6018 263.3059 263.497 263.3309 263.1619 262.7762 261.7896 260.6424 259.131 258.7134 258.8359 260.64 261.851 262.7933 263.2898 263.4813 262.4508 259.8586 256.8215 251.0572 252.0491 253.0173 253.393 253.9484 254.4145 254.8306 254.8215 254.8172 255.6478 255.9291 255.8732 254.3677 252.532 250.2953 248.1113 245.6949 243.1873 239.6415 237.0994 235.7597 234.0219 233.3432 233.0834 232.5556 232.2227 232.1035 232.778 232.1152 232.7039 232.2358 231.9893 231.6046 231.7068 231.5599 231.4429 231.404 231.0622 231.6641 231.3135 231.3315 231.3854 231.5135 234.5312 235.1414 237.5042 240.9516 241.6707 242.273 242.4349 242.826 242.1999 241.8204 242.3603 242.9611 243.1622 244.3775 245.7743 247.5235 248.9782 250.1862 251.4061 253.4104 254.7152 256.3373 257.1012 258.0687 258.9809 260.051 261.247 262.1053 262.7386 262.7475 262.0877 260.6421 259.2571 258.3137 257.2669 256.0601 255.0466 254.2288 253.8091 253.2543 252.12 251.2096 249.8671 248.0023 245.2299 241.5734 239.6717 237.8612 236.8727 237.0916 236.0465 235.102 236.5979 236.6774 235.2191 233.092 232.2888 -9999 +265.1922 262.8802 264.9989 264.6763 264.744 265.0783 269.7723 274.6707 279.5157 281.3075 283.4495 285.364 286.7373 288.0291 288.899 289.2985 289.3888 288.0141 286.3386 284.7095 286.8101 287.8094 287.8784 287.1625 285.9062 285.2968 284.0457 285.8979 290.1057 292.9454 294.0737 294.9794 296.382 297.7752 298.4858 300.4359 300.7148 300.9959 300.6702 300.2849 299.7465 302.0371 303.7698 304.7662 305.5904 306.3556 306.386 306.134 305.3802 303.8237 302.2573 300.6172 299.2055 298.1267 294.573 292.0443 290.5407 288.3604 285.5762 283.9136 281.2617 280.4091 283.165 284.4551 281.7907 279.4202 281.0361 283.9146 286.6009 288.2807 289.5328 289.8574 287.9454 285.7689 283.5103 279.9909 276.9106 279.1354 282.5672 284.5055 286.2849 289.5555 290.579 290.1139 288.9365 286.6646 284.061 281.2083 279.3187 281.7442 287.616 289.1703 289.8233 290.1427 290.0456 290.9059 290.856 290.6213 291.2203 289.8426 286.6057 284.6405 282.5522 278.5992 281.3635 279.8677 278.6952 278.4519 277.8992 276.3549 274.4991 273.8488 275.2277 276.4335 276.4927 275.8053 275.3984 274.0943 272.5248 270.7056 269.0436 267.3158 266.4227 264.5428 262.5318 259.9795 258.2432 258.6252 258.7919 256.9027 257.8608 257.8078 262.0691 267.9409 273.5826 276.4829 277.052 278.3354 276.6403 271.8098 264.3429 265.1111 266.3836 267.1024 266.1604 259.3701 255.0578 251.1214 248.2019 251.1334 253.0085 253.0641 254.9931 256.6989 251.1986 254.111 254.4193 253.7329 256.3353 255.7973 254.1369 251.4664 246.2204 244.3837 250.9319 258.2907 256.621 265.0657 268.9838 269.9841 268.0269 266.3918 267.0112 262.9276 263.0055 266.7152 267.7217 266.8279 268.0307 269.2032 272.7604 275.1056 274.7471 270.7255 266.3658 261.808 255.2116 250.5523 248.3302 254.1449 256.5761 262.3631 265.2627 267.8766 270.2581 272.633 274.7698 275.0613 274.5735 272.2448 269.6109 267.8586 266.0343 262.2336 259.3353 255.4503 248.2722 248.4488 248.5412 249.9472 253.5964 255.9879 256.4893 257.9861 258.5519 258.3059 257.1883 254.2751 249.8396 251.4384 253.631 254.9962 255.9154 256.5028 256.7555 256.8784 258.4387 261.6204 265.7164 267.0518 265.8619 263.7434 262.9282 261.901 259.8441 259.3013 259.6329 257.8929 259.5029 260.629 260.7458 263.4371 264.1052 264.7118 265.8463 266.9172 268.3098 268.3892 267.117 264.6615 262.5192 259.876 257.7898 255.8571 253.4449 245.6523 242.2401 238.2279 236.8671 236.847 236.3945 236.8758 237.2399 238.6127 239.683 241.7408 242.9523 244.3701 245.349 246.7252 248.7432 250.0585 251.1673 251.8744 254.3549 255.5774 256.5536 257.4293 258.3178 258.8994 259.3804 259.8503 259.9395 257.2526 255.0121 252.5119 248.9246 245.4619 242.0294 241.9973 243.7489 246.2713 248.2686 249.6273 252.0437 253.9614 255.8009 257.425 259.1504 260.187 261.2046 262.6673 262.8727 263.6858 263.4108 262.8105 262.7275 262 261.3391 262.0073 263.4937 263.1514 263.1116 264.3881 265.0273 264.7731 264.16 261.6873 261.4315 264.0096 266.4348 266.0576 265.1919 263.7633 262.4897 261.0929 259.4027 258.3152 257.0875 254.043 252.7658 249.0686 243.0959 240.2791 241.0743 242.6674 245.5806 247.3332 250.3095 251.4588 252.2735 253.2453 253.71 254.6146 254.9014 254.5824 253.0162 251.8523 251.939 253.3304 254.3957 255.0373 255.1132 255.4953 255.9206 256.7074 257.4339 257.5889 257.6464 258.6689 259.666 260.4526 261.1063 261.4024 261.5257 260.6967 259.6544 258.6534 257.7402 254.6536 254.068 254.5536 256.3788 257.3917 258.5982 259.6023 260.0882 260.8345 261.8126 262.2443 262.5438 262.602 262.3077 262.3017 262.6487 263.026 263.0844 263.0233 262.6423 262.2261 261.5973 260.7924 260.1426 259.4763 260.637 261.954 262.6199 263.0495 262.4519 261.4846 259.3058 256.8474 253.4094 253.826 255.1806 255.9086 256.3546 256.9224 257.7617 257.9345 257.6454 257.4006 257.3353 255.9656 254.101 252.3127 249.8405 247.2346 244.5933 242.3157 240.1913 239.8292 238.823 236.3627 235.285 234.5272 233.1172 232.259 231.9732 230.1331 232.384 232.623 232.5519 231.802 231.6214 232.0666 231.9841 231.7472 231.6783 232.1349 231.5488 231.2258 231.2625 233.0319 236.2566 236.6374 237.7975 239.6277 240.2593 240.2173 240.7115 241.3256 241.7495 242.1214 242.2953 242.3927 242.5973 243.7614 244.6185 245.9357 247.8008 248.976 250.0388 251.0074 252.2037 253.746 255.2522 256.2369 256.9647 257.7769 259.1438 259.8374 260.5421 261.0918 262.3086 261.9818 261.0517 260.086 259.0294 257.3034 255.6888 254.6282 253.8923 253.1853 254.2375 253.6126 252.4783 250.5274 248.5169 246.0136 242.5987 239.4489 237.9108 236.9252 235.5583 236.0166 234.949 234.8555 234.792 233.8392 233.2856 232.3679 -9999 +265.1238 262.7856 264.7097 265.0105 269.4953 272.2672 274.5637 276.7006 281.0765 282.821 284.4615 285.7333 286.7786 287.2728 287.7584 286.9995 287.6032 285.6295 283.4772 283.4983 285.1311 285.5248 285.0405 283.2022 282.108 281.4787 287.365 290.5758 293.273 294.6483 295.4339 296.0999 296.743 297.0055 297.0381 297.9559 298.2513 297.859 296.1087 296.7079 299.5868 302.143 303.5577 304.4904 305.1385 306.4402 306.32 305.9727 304.3832 302.9251 301.1075 299.5815 298.5177 296.3124 291.8387 288.5774 286.3958 285.4384 283.3404 282.0148 282.2697 284.6473 287.5472 284.3494 282.8748 280.1917 280.4654 283.9232 286.4281 288.9769 290.3294 291.1896 288.7711 287.22 285.5999 280.8656 278.5062 280.0605 282.6379 285.1147 286.631 289.5626 290.9452 291.7648 290.4977 288.6058 286.8371 285.5394 282.2358 283.076 288.2223 290.0829 291.3472 291.7558 292.26 293.5951 294.3422 293.2581 293.2195 292.0208 288.0467 287.0932 285.8138 282.6576 283.5223 282.1163 281.2505 281.7512 280.9818 278.0585 276.1188 275.6575 277.2266 277.5263 277.6766 277.6366 276.6841 275.596 273.51 271.8956 270.3398 268.3162 266.685 264.285 261.7253 259.9795 258.2432 258.6252 258.7919 256.9027 257.8608 257.8078 262.0691 267.9409 273.5826 276.4829 277.052 278.3354 276.6403 271.8098 264.3429 265.1111 266.3836 267.1024 266.1604 259.3701 255.0578 251.1214 248.2019 251.1334 253.0085 253.0641 254.9931 256.6989 258.2179 258.885 257.9341 256.1979 257.9545 257.5341 256.4881 255.0803 251.2108 246.7493 243.6518 249.9747 255.9646 263.1552 264.5412 262.5798 262.1002 261.4435 260.7057 258.7012 262.7158 262.2625 261.7707 264.1846 268.4285 270.2532 272.4648 274.3988 273.5741 269.9365 266.4035 262.7195 256.3647 249.0301 248.4464 252.8916 255.7095 262.755 265.13 268.3523 271.3352 273.871 276.8788 276.8464 275.7044 272.9953 271.4034 269.8142 267.7197 265.5134 262.4749 258.9015 251.8377 246.2266 246.0795 246.5558 250.924 253.1426 255.9813 257.6792 258.3893 258.2949 257.132 254.4142 250.8365 249.4684 250.1013 250.801 252.4567 253.5836 254.6924 254.9101 258.2717 261.5033 265.8799 266.3184 264.8436 262.9514 261.942 261.0417 258.3422 258.1839 258.9931 256.116 257.1691 257.8058 259.9945 262.7155 262.9175 263.4945 264.4418 265.0981 267.1453 267.6102 267.119 265.2233 262.6431 260.4267 258.3469 256.0468 254.5172 251.0006 247.2702 240.9499 237.0029 236.6655 237.2279 236.532 236.7779 237.1768 237.6093 240.879 243.6689 245.2237 246.3568 247.4476 248.2562 249.17 250.018 250.9903 253.8832 254.9054 255.6959 256.3916 257.1764 257.5553 258.2785 258.6776 258.9603 256.5074 254.0184 250.6888 246.7992 243.6467 242.1995 241.9905 244.2526 246.4782 250.1355 252.1382 253.633 254.7599 256.0837 257.8162 259.2412 259.8897 260.7714 261.5483 261.9781 262.2365 262.1439 262.1392 261.0558 260.5463 260.2701 260.9677 261.7947 261.0432 261.6136 263.4223 264.2472 264.3211 263.5254 262.1026 260.1591 263.7899 264.5784 265.147 265.1097 264.8708 263.8567 262.2474 261.0105 259.8859 258.8836 256.3556 255.0559 249.7911 242.9698 240.3669 239.8832 242.2495 244.6125 246.6945 249.6423 250.4363 251.5582 251.6445 252.2462 253.0927 252.8158 252.1519 250.0557 249.7926 251.3581 252.4595 253.2526 253.6111 254.0053 254.1542 254.586 255.2751 256.0728 257.2141 258.1812 259.304 260.3438 261.0196 261.2715 261.5537 261.5241 260.6987 259.3207 258.1623 256.9333 255.0353 253.4916 254.1786 256.0203 256.8341 258.0177 258.9339 259.6917 260.4442 261.1652 261.4615 261.6067 261.896 262.0056 261.6675 261.7619 262.4158 262.5889 262.4385 262.0911 261.8074 261.6143 261.6092 261.6825 260.6378 261.4837 262.1394 262.7347 262.8072 261.2122 260.2235 258.6393 257.0885 254.3526 255.0699 257.4301 258.2584 258.7921 259.5407 260.9046 261.4618 260.6596 259.3348 258.2722 256.3915 254.088 251.5607 248.4923 246.5023 245.4255 244.1459 241.5047 240.4194 238.6957 237.9503 238.5934 237.2201 233.9999 232.6343 232.0397 230.2543 231.3425 232.1455 232.4554 232.1118 231.3367 231.6223 231.8728 231.6254 231.5292 230.0675 230.0659 231.3349 231.893 232.3398 233.5754 234.7952 236.0334 237.381 238.2121 238.7802 239.498 240.4051 240.9568 241.4051 242.0268 242.4695 242.9881 244.3254 245.2632 246.2233 247.3955 248.8299 249.38 250.5204 251.7201 252.6735 254.6343 255.5764 256.586 257.3822 257.8278 258.4676 259.3356 260.7161 261.2024 261.2679 260.5063 259.8153 258.7845 257.7376 256.0715 254.6135 253.4448 252.2254 253.9142 254.36 252.7198 250.5274 248.5169 246.0136 242.5987 239.4489 237.9108 236.9252 235.5583 236.0166 234.949 234.8555 234.792 233.8392 233.2856 232.3679 -9999 +265.0854 263.299 264.8419 265.4852 271.2667 274.0586 275.7581 277.9688 281.6459 282.9965 284.411 285.5979 285.5482 285.3377 285.6361 285.0669 285.2074 282.9866 281.3966 281.0859 281.815 281.0781 279.9763 279.2621 283.4783 286.796 290.075 291.7903 293.2755 294.4946 295.2173 295.5156 295.703 295.3952 294.9127 293.0873 293.4178 293.0544 294.8722 297.4066 299.2629 301.071 302.0687 303.1718 304.5175 306.2921 306.4992 305.3618 303.644 301.6183 299.819 298.5824 297.3889 295.3035 290.5848 287.544 285.098 283.813 285.4059 285.4406 284.8556 288.1247 290.164 285.8301 283.7837 280.9725 282.2076 284.0991 286.9656 288.9756 290.3434 291.7083 290.6008 289.2531 287.5715 284.42 282.4701 283.304 282.4604 284.1887 286.8489 290.3151 292.0589 293.3062 292.0855 290.8499 289.296 288.3607 286.9972 285.2361 289.1303 290.6991 292.269 293.3846 293.6351 294.9186 295.6865 293.2581 293.2195 292.0208 288.0467 287.0932 285.8138 282.6576 283.5223 282.1163 281.2505 281.7512 280.9818 278.0585 276.1188 275.6575 277.2266 277.5263 277.6766 277.6366 276.6841 275.596 273.51 271.8956 270.3398 268.3162 266.685 264.285 261.7253 259.0198 257.4897 257.6498 257.916 256.5625 257.8265 257.252 257.289 265.495 272.678 275.1409 274.9976 276.0819 275.4108 272.5882 267.9191 263.3542 263.1101 262.8147 261.5955 256.4511 252.6127 251.6889 250.0611 251.0424 256.8569 259.941 261.1244 261.7704 262.5062 261.6531 260.4633 259.1571 259.3298 258.4265 257.2134 255.8015 253.7952 251.791 245.7451 243.4585 249.0531 256.4555 257.1278 255.0901 255.725 254.8835 254.7118 253.5925 254.3925 254.0843 260.4764 265.1746 268.4541 269.8154 271.0987 272.5208 272.1189 269.2705 266.1568 262.4362 256.9179 250.1719 248.093 251.0451 254.7839 261.651 264.6903 268.0219 271.1467 274.0747 276.9271 278.0179 277.2758 275.317 272.7702 272.1357 270.075 267.3243 264.8337 260.6925 256.4166 251.8847 246.2831 246.3936 249.4013 252.7695 255.6993 257.1843 257.4261 257.4087 256.5487 254.7358 251.6791 248.5151 247.9559 248.4314 249.9169 251.229 253.0616 256.2216 259.1893 262.0903 265.3445 264.6857 264.014 262.5091 261.1524 259.9666 257.2215 255.8198 257.3122 253.9451 255.0104 258.2689 261.1156 261.7246 262.0471 262.455 263.2654 263.8398 265.6481 266.1849 266.0823 264.7064 262.1773 260.1826 258.911 257.4438 256.4492 252.9468 249.8857 244.1703 237.4222 236.7473 236.8425 236.0301 236.8551 236.935 237.7666 238.506 241.0395 243.6259 245.7985 247.4457 248.1847 249.0172 249.887 250.9858 253.4102 253.9048 254.5056 255.1196 256.0601 256.6714 257.39 258.0602 257.9506 255.4571 252.969 249.1943 244.7131 242.68 240.8049 241.0348 246.0725 246.4988 251.4855 252.6488 253.3806 255.2495 256.1585 256.9276 257.6703 258.4042 259.2391 260.2784 260.9945 261.1335 260.8482 260.29 259.2469 258.5906 258.9567 260.3975 260.7377 260.2536 260.9719 262.4803 263.2644 263.5425 262.876 261.7281 260.8255 261.631 262.8195 263.1973 264.3817 264.7749 264.3858 263.2976 262.4486 261.2192 260.3428 258.399 256.1581 251.2208 243.7836 240.8686 239.7505 241.4254 243.7396 246.6315 248.9321 249.8512 249.8632 250.065 251.2724 251.1984 250.1188 248.5567 246.9181 249.3999 250.7468 251.7151 252.45 252.7065 253.081 253.2882 253.9794 254.9089 257.5067 258.2139 259.1094 260.0123 260.6992 261.2832 261.4209 261.265 261.0115 260.1377 258.6753 256.8454 255.2995 254.3122 253.2976 253.2655 255.0739 255.6875 257.7337 258.4966 258.961 259.7184 260.5597 260.9929 261.3824 261.0708 261.2837 261.1672 261.1423 261.5441 261.8563 261.8379 261.3306 260.9983 261.031 261.0059 261.4867 261.8235 261.7459 262.2071 261.8874 261.6949 260.9226 260.1273 258.4527 257.2867 256.2532 258.2224 259.8037 260.4546 261.4378 262.8613 264.4782 264.6107 262.4252 259.5829 258.0587 256.1909 253.8659 251.8612 250.2204 248.47 246.5482 245.0086 242.4465 241.266 240.3164 241.1575 241.0634 240.2671 237.9025 234.4254 232.9548 231.8305 230.1042 232.5592 232.2789 232.2899 231.8539 231.6373 231.531 231.6363 230.0839 232.3846 229.8734 230.1417 233.2558 234.6013 235.4702 234.0217 233.4044 237.381 238.2121 238.7802 239.498 240.4051 240.9568 241.4051 242.0268 242.4695 242.9881 244.3254 245.2632 246.2233 247.3955 248.8299 249.38 250.5204 251.7201 252.6735 254.6343 255.5764 256.586 257.3822 257.8278 258.4676 259.3356 260.7161 261.2024 261.2679 260.5063 259.8153 258.7845 257.7376 256.0715 254.6135 253.4448 252.2254 253.9142 254.36 252.7198 250.9505 248.6998 246.4326 243.813 241.1252 238.8063 237.4166 235.5057 235.0431 235.0049 234.4057 233.828 233.1489 232.801 232.763 -9999 +264.9765 265.2122 262.6466 264.7512 268.761 272.8761 275.1866 277.1869 279.5846 280.9718 282.1462 282.7533 282.9059 283.3412 283.2159 282.3405 282.6819 280.9362 279.8586 278.559 278.1292 277.041 278.2885 281.7578 285.4831 287.074 290.5088 291.579 292.2004 292.6286 293.2269 293.5371 293.7616 293.5317 293.0573 288.636 289.7376 291.3941 293.9492 293.4979 294.5744 296.9842 299.3163 301.4127 303.8029 305.8734 306.1764 305.5098 303.8828 302.7429 300.8776 298.8936 296.6644 295.3124 291.9117 288.9726 285.6149 284.8753 289.1196 288.3096 286.0421 289.1579 291.0916 288.7849 285.2027 283.3931 283.3059 283.965 287.0026 288.9756 290.3434 291.7083 290.6008 289.2531 287.5715 284.42 282.4701 283.304 282.4604 284.1887 286.8489 290.3151 292.0589 293.3062 292.0855 290.8499 289.296 288.3607 286.9972 285.2361 289.1303 290.6991 292.269 293.3846 293.6351 294.9186 295.6865 295.1527 294.7355 291.8585 289.9472 289.0871 288.1649 285.4897 285.4341 284.2296 284.3023 284.3307 282.6463 279.2851 278.5043 277.7828 277.911 278.7521 279.0936 278.5512 277.9026 276.7932 274.325 273.2122 271.1039 269.1964 266.8872 264.6459 261.919 258.1039 256.9131 257.6291 257.8589 256.1068 257.6649 257.185 258.3896 266.2721 271.8545 273.138 271.4292 272.9703 273.9078 272.6158 270.0329 266.9526 262.9162 260.7798 258.4948 255.995 255.2328 254.5569 250.6518 249.1679 256.9937 264.1027 265.4586 265.9515 265.3669 263.9319 262.3563 261.2198 259.1775 256.6079 254.7612 252.7479 251.2024 249.1934 247.4339 246.2549 244.0463 244.5949 247.2584 247.6284 249.268 248.8052 248.9338 247.8327 247.9396 253.1374 260.4734 264.4994 265.8057 266.9751 269.1578 270.5678 270.3383 268.9826 266.1555 262.469 256.8316 249.1596 247.8349 250.1812 253.0013 261.1823 264.7787 268.1707 271.0368 273.7245 276.8238 278.6985 279.1063 277.6474 274.58 273.5337 271.702 268.5166 266.2505 262.5117 259.0024 255.7476 251.1346 244.9573 248.7444 252.1486 254.712 255.8382 256.0622 256.1142 255.7325 254.2907 252.1233 245.5922 245.9769 247.2414 250.8483 253.6008 255.8263 257.9948 260.5854 261.8677 263.5397 262.9903 262.4442 261.2798 260.1448 259.2976 256.4527 253.7971 255.1783 252.4156 256.1663 258.3368 259.9152 260.6519 261.0541 261.6642 262.152 262.4599 263.7472 264.6551 265.3795 264.0369 262.2909 261.0749 260.4757 260.1943 258.4751 254.9157 251.5783 247.6562 242.7981 237.3813 237.3635 237.3308 235.9779 237.013 237.0553 237.6301 242.3109 244.7423 246.1663 247.6559 248.4667 249.6722 250.6547 251.6084 252.8345 253.1558 253.57 254.3529 255.2493 256.2689 257.008 257.1077 257.1904 254.4633 250.9611 246.8031 243.8869 241.4869 239.1586 242.888 245.5916 247.6318 251.3338 253.0148 254.0057 255.4101 255.7915 255.9462 256.4597 257.4577 258.1694 259.4659 259.861 260.087 259.3293 258.3157 257.4148 257.3228 258.3253 259.4677 259.1307 258.9262 260.6687 261.628 262.1098 262.7575 261.8933 260.6989 258.758 260.0732 261.0495 262.4376 263.052 263.975 263.9313 263.1534 262.6118 262.0591 261.5473 259.4813 256.7807 252.5094 246.3599 240.4005 239.4268 241.2755 244.6466 246.7639 248.2617 248.2329 248.2914 249.2591 248.9446 247.7446 247.2936 245.9728 244.3431 249.1618 250.4371 251.4216 251.6867 252.2695 252.9008 254.1778 255.4479 256.2945 258.3187 259.0395 259.7155 260.3583 260.8661 261.0854 261.0463 260.2216 260.0666 259.4904 258.1325 256.1665 254.4321 253.495 252.1878 252.8889 254.6014 254.9211 257.4128 258.0235 258.4494 259.3022 260.0319 260.5883 260.6508 260.6595 260.6128 260.4082 260.7289 261.1066 261.2025 261.2184 260.8921 260.6226 259.9465 259.8536 260.5753 261.0731 261.2636 261.0557 260.7233 260.6183 260.5385 260.0198 259.3088 258.5173 258.9003 260.3792 261.8367 262.7432 263.3447 264.1866 264.9508 264.6107 262.4252 259.5829 258.0587 256.1909 253.8659 251.8612 250.2204 248.47 246.5482 245.0086 242.4465 241.266 240.3164 241.1575 241.0634 240.2671 237.9025 234.4254 232.9548 231.8305 230.1042 232.5592 232.2789 232.2899 231.8539 231.6373 231.531 231.6363 230.0839 232.3846 229.8734 230.1417 233.2558 234.6013 235.4702 234.0217 233.4044 236.405 237.1815 239.0372 239.3828 240.2485 240.5282 240.6382 241.2065 242.4063 242.9511 244.6749 245.4754 246.4557 247.3644 248.3186 248.9504 249.5483 250.6742 251.71 253.7633 254.672 255.4359 256.17 257.1635 258.6446 259.5412 261.403 260.4356 260.7647 259.8156 259.122 258.4089 257.2388 255.416 253.9244 253.0552 251.5117 252.9269 254.0352 252.6086 250.7015 248.7096 246.64 244.5778 242.0655 240.0435 237.7924 235.4051 234.5793 234.0619 233.7559 233.2877 233.1442 232.6233 232.416 -9999 +264.8558 264.9419 263.1146 265.4402 264.3262 267.0035 271.9865 274.7617 276.695 278.1661 279.1512 279.9394 279.9529 280.7873 280.4682 279.5978 279.5904 278.104 276.8555 275.8394 275.1772 276.8723 280.8199 284.0685 285.126 286.8966 289.9062 290.4554 290.2437 290.2608 290.8524 291.1588 291.2581 291.2592 289.2558 287.3352 289.6041 291.5313 293.7304 293.5273 293.7031 295.1208 299.3163 301.4127 304.8038 305.8734 306.1764 305.5098 303.8828 302.7429 300.8776 298.8936 296.6644 295.3124 291.9117 288.9726 285.6149 284.8753 289.1196 288.3096 286.0421 289.1579 291.0916 288.7849 285.2027 283.3931 283.3059 283.965 287.0026 289.0112 290.9323 291.9767 292.3145 291.221 289.6968 287.8133 285.48 285.6628 285.7984 284.2254 286.4248 290.747 292.5093 293.9262 293.7348 292.9449 291.1726 290.1027 288.1502 288.0616 290.8762 292.5439 293.5596 293.9575 294.2996 294.5874 294.5345 294.0815 293.728 292.584 291.4411 290.4761 288.9442 287.5515 287.1125 286.3637 286.2167 286.0372 283.9516 280.4881 279.6229 279.0637 278.6646 279.2432 279.8541 279.3512 278.3143 277.3476 274.9949 273.2384 271.3049 269.295 266.6049 263.5398 259.1966 256.7768 256.9472 257.6685 257.9562 257.367 257.3264 259.5623 267.542 270.0326 269.5533 270.5092 268.2372 269.3581 271.4366 271.9312 270.0769 267.2244 264.5554 262.9759 262.0023 260.5513 258.5452 255.7083 252.0854 248.3725 256.6914 266.5147 269.0987 269.3968 267.4966 265.4316 263.466 259.931 258.8512 252.1342 252.6819 250.8068 249.4933 251.1255 250.1628 248.3845 246.5024 245.8992 244.6103 243.1838 243.7564 245.4288 245.2028 245.5303 245.5954 247.6339 254.1143 259.2352 262.873 265.4436 267.0781 267.873 269.1328 267.2827 264.7248 261.6036 256.0569 248.6965 247.2645 250.7396 253.615 260.3854 264.3588 267.929 270.741 274.06 277.3484 278.9916 279.2501 277.4767 274.7021 274.5417 273.0875 270.2051 267.2169 265.3315 261.9887 258.6098 253.6964 243.7785 246.1299 250.2069 252.9591 253.7919 254.4927 254.6796 254.4646 253.2073 250.3098 244.1291 245.6464 249.2229 252.0818 254.5075 255.8673 257.477 259.775 260.8646 261.7111 261.1467 260.6219 259.4686 258.6384 257.8545 255.882 252.493 251.5092 252.1306 256.3605 257.7597 258.5137 259.1335 259.7779 260.3586 261.2343 261.4467 261.8032 262.9847 264.4195 263.7264 262.7048 262.0132 261.6714 260.3953 258.6317 255.436 252.7813 248.6738 244.8658 240.9047 238.7327 241.1049 237.7936 237.2139 237.0961 237.5374 241.5647 243.8004 245.3775 246.8225 248.3542 249.1973 250.1307 250.71 251.388 251.8229 252.677 254.2256 255.4161 256.3308 256.6513 257.0088 256.4403 252.225 250.4522 246.291 243.3053 241.0336 239.0772 242.149 245.0866 247.2431 251.4577 252.5385 253.4523 254.7685 255.0884 254.791 255.0092 256.1745 256.5983 257.8893 258.3072 258.5276 257.7258 256.6221 256.3311 256.4398 257.1047 258.2841 257.6273 258.7039 259.8919 260.722 261.2516 261.6922 260.5371 259.6803 257.6891 259.2031 259.962 261.2145 262.243 262.5052 262.9947 262.4653 262.0372 261.7311 261.5509 259.741 256.9326 253.0728 248.0341 241.2638 238.7855 240.2584 244.0105 245.6323 246.8396 247.0087 247.3836 246.3905 245.5612 244.6393 244.1614 243.6002 244.5295 249.2923 250.2417 250.5773 250.9427 252.1049 253.3176 254.9819 255.8942 256.915 258.7381 259.5558 260.1384 260.5639 260.7139 260.4615 259.8031 259.3185 258.9844 258.5523 257.4628 255.7703 253.717 252.3845 251.3131 252.893 254.6014 254.9211 257.4128 258.0235 258.4494 259.3022 260.0319 260.5883 260.6508 260.6595 260.6128 260.4082 260.7289 261.1066 261.2025 261.2184 260.8921 260.6226 259.9465 259.8536 260.5753 261.0731 261.2636 261.0557 260.7233 260.6183 260.5385 260.0198 259.3088 258.5173 258.9003 260.3792 261.8367 262.7432 263.3447 264.1866 264.9508 264.2116 261.9467 258.9899 257.6902 256.0184 254.211 252.6374 250.8366 248.7369 247.276 245.5737 242.6887 241.5775 241.8097 242.2157 241.7179 240.8865 239.5629 236.4596 234.3594 232.3182 231.6888 230.0144 232.7239 232.4292 231.9166 231.6386 231.1852 231.6995 230.235 231.8668 230.7298 229.8528 233.7702 236.1655 238.2187 239.6857 239.0394 236.3248 235.9164 236.8707 237.5673 237.9849 238.3304 239.5126 240.6806 241.3182 242.1786 244.4571 245.3905 246.3857 247.065 248.1162 248.8978 249.2773 250.1234 251.0648 253.2485 254.1762 255.5436 257.3771 258.4818 259.0225 260.7436 260.9302 261.182 260.1504 259.1547 258.5251 257.5979 256.7663 254.9722 253.2491 251.7213 250.9275 252.7726 253.6304 251.9296 249.5788 247.9783 246.3381 244.4302 242.3616 240.5834 236.7693 235.6464 234.3179 233.5193 232.8603 232.79 232.5095 232.6219 232.3289 -9999 +264.7621 264.8849 265.095 262.4787 265.1762 264.2609 264.7275 267.661 274.2714 274.7571 276.0007 276.6984 277.295 278.2032 277.9417 277.395 279.5904 278.104 276.8555 275.8394 275.1772 276.8723 280.8199 284.0685 285.126 286.8966 289.9062 290.4554 290.2437 290.2608 290.8524 291.1588 291.2581 291.2592 289.2558 287.3352 289.6041 291.5313 293.7304 293.5273 293.7031 295.1208 298.7686 301.0122 304.291 305.2913 306.3064 305.8878 304.5171 303.0786 301.4737 299.6201 297.9806 295.9159 290.105 287.0075 287.1648 290.7404 292.14 290.1919 287.9565 290.3077 291.9419 289.7742 286.2751 283.7795 284.1016 285.8181 286.8528 289.217 291.2602 292.4552 293.6302 292.7843 291.5867 289.6568 286.6359 288.7275 288.8851 286.3143 286.6217 290.6031 292.1256 293.5811 293.972 293.893 292.9366 291.5388 290.0812 290.9213 292.7209 293.611 293.8474 293.3285 292.7204 292.6534 292.4572 292.31 292.2531 292.1735 291.5809 290.3608 288.9592 288.7835 288.2705 287.8553 287.5234 286.3011 284.7375 281.3325 280.2672 279.969 278.9981 279.3276 279.9844 279.2534 277.5493 276.084 274.3602 273.688 271.3496 268.6397 265.4149 261.8714 257.1567 256.9263 257.3517 257.2256 255.9252 258.1471 264.4425 268.6219 269.1362 267.1528 266.4233 266.9978 265.3897 266.014 269.2972 270.0139 268.4514 265.6187 262.3924 260.7166 260.3715 260.7362 258.8531 255.9137 252.4323 248.4385 258.8652 266.7622 270.2808 271.098 268.2447 266.0106 261.9226 259.9722 259.7213 260.4999 261.8137 260.1137 255.4264 254.9562 254.5741 254.2104 251.9651 251.7165 251.0689 248.7785 246.1534 245.0277 242.9664 242.5713 244.0409 244.4732 246.5854 256.8392 262.7904 263.8943 264.228 265.4449 267.8311 266.0251 263.4371 259.5222 254.663 248.2925 247.5351 252.0756 254.8175 260.6593 264.2247 267.9628 271.3306 274.8491 279.2033 279.16 277.0316 274.3734 273.2885 273.4809 274.1074 272.3799 269.9264 267.522 264.6941 261.1318 256.7544 243.9372 244.2906 247.5605 250.106 252.4071 252.4424 252.7575 252.4548 251.7216 248.2482 243.2506 246.5337 250.2121 252.7523 254.9799 255.8215 257.0305 258.8989 259.6949 259.9957 259.6771 258.2009 257.7697 257.3685 256.778 255.0676 252.0743 249.9718 252.8088 255.612 256.7278 257.3815 257.8598 258.7252 259.4124 260.5375 260.6959 260.6454 260.957 262.5003 262.509 262.1921 261.8979 261.6039 260.2735 258.4799 254.7558 251.156 246.7832 243.0838 243.6455 246.0014 247.4158 238.1223 236.4002 237.1821 237.1245 239.9682 242.072 244.2634 245.8824 247.1722 247.8651 248.1386 248.5994 250.8343 251.6643 252.9069 254.2394 255.3215 256.3282 256.7081 256.6396 255.7011 252.531 250.4733 245.4191 242.05 240.2962 240.2797 241.8466 244.7108 246.4121 249.9898 251.9979 252.8804 253.7812 253.8596 253.7779 253.9484 254.5415 254.9206 256.3785 256.3877 256.885 256.1934 254.7787 255.0444 255.7548 256.4068 256.6855 257.4199 258.4244 259.1295 259.6037 260.2717 260.2045 259.4189 258.4278 256.8224 257.9886 259.3591 259.5735 260.5829 261.4275 261.2894 260.6803 260.2855 260.5709 261.022 259.6857 257.1404 253.4926 248.5633 241.5442 239.0001 239.1079 242.1832 245.6323 246.8396 247.0087 247.3836 246.3905 245.5612 244.6393 244.1614 243.6002 244.5295 249.2923 250.2417 250.5773 250.9427 252.1049 253.3176 254.9819 255.8942 256.915 258.7381 259.5558 260.1384 260.5639 260.7139 260.4615 259.8031 259.3185 258.9844 258.5523 257.4628 255.7703 253.717 252.3845 251.3131 252.893 253.821 254.4886 256.1262 257.11 258.5004 259.1214 259.8211 260.3672 260.4276 260.0615 259.9091 259.6933 260.303 260.4969 260.5656 260.6764 260.2887 259.641 259.6712 259.6699 259.5248 260.4708 260.4332 260.0187 259.6512 259.5366 259.4147 259.1591 259.0487 258.5354 259.9333 261.5535 263.0034 263.8767 263.8705 263.2601 262.7606 262.0531 260.0177 257.4286 256.9021 255.0981 253.1654 252.2172 250.7169 249.2823 247.7504 245.9365 243.6572 242.7276 242.752 242.9701 242.5498 241.2006 239.9612 238.1594 235.5283 232.7039 232.1015 231.3111 230.1318 232.8133 232.2708 231.6269 231.9901 230.0729 232.47 232.256 231.8736 229.7786 231.9825 236.3597 238.4932 238.9261 239.9026 239.6607 237.9092 238.2415 237.663 238.7645 239.8087 239.8753 239.356 240.4543 241.6327 243.6698 244.884 245.6714 246.6506 247.5629 248.8165 249.7245 250.4729 251.695 254.8872 256.1342 257.4835 258.7279 260.2465 260.9911 261.5722 262.0025 262.0642 259.9973 258.62 257.6856 256.709 255.7234 254.4436 252.9408 251.2289 249.3135 251.365 252.3849 251.6137 249.4251 247.2389 245.5423 243.9962 242.0821 240.0428 237.0988 235.373 233.9375 232.923 232.4807 232.3195 232.422 232.1286 232.2866 -9999 +264.7621 264.8849 265.095 262.4787 265.1762 264.2609 264.7275 267.661 274.2714 274.7571 276.0007 276.6984 277.295 278.2032 277.9417 277.395 276.0605 273.796 273.2134 273.4694 277.6888 280.8799 282.568 284.7309 286.4378 287.6798 289.2003 289.1507 287.7469 288.0114 288.4689 288.2732 287.8937 285.7319 282.7635 292.706 295.3138 296.5807 295.6384 295.7682 296.2499 297.4638 298.6833 300.5542 304.2316 304.7581 305.6657 306.2256 304.9806 303.2932 302.2887 299.8778 298.2991 296.1678 294.5121 292.9773 292.1375 294.6595 293.8551 291.4526 290.5194 291.8656 292.7783 289.864 286.8553 283.5288 285.508 288.2772 287.5412 288.3962 290.5973 292.535 294.371 293.8967 292.5988 290.8266 288.4356 291.0348 291.0624 289.4147 287.0201 290.1363 291.6332 292.3975 293.3464 294.2786 294.4276 293.6003 292.4695 292.5947 293.0558 293.1394 292.3799 291.5884 289.9666 290.8431 291.1939 290.7156 290.6993 290.5945 290.9444 290.2195 289.294 288.0925 287.6272 287.7442 286.9802 285.9984 284.7737 281.554 280.5134 279.8767 278.9208 278.7976 279.1326 277.88 276.5875 274.9685 272.7599 272.8082 271.5908 268.8284 266.4423 262.4877 257.221 257.2604 255.4509 261.6921 264.3011 266.197 268.3469 267.6204 266.4589 264.4028 263.1204 262.8129 262.124 262.9695 265.2279 265.1096 264.7992 262.1394 259.5103 257.4146 256.3756 257.1534 256.7636 254.5505 251.2582 249.965 259.4217 266.9414 270.6753 272.0429 268.0273 264.5411 259.9336 259.5641 259.3916 262.9777 265.4452 265.3909 262.6981 260.166 260.6196 261.7818 259.5136 257.3705 257.4069 255.9505 254.1293 252.3941 250.2429 244.7096 244.3682 244.2258 242.0425 247.024 257.5154 259.882 262.1474 264.9178 266.7368 264.1818 262.2743 258.3492 253.8589 246.8195 247.8525 251.7758 254.8076 260.8514 264.5324 268.2735 271.6878 275.4035 278.5333 276.6713 274.0788 270.8283 269.7943 271.0728 273.4064 272.9436 270.9839 268.9798 267.1117 263.112 258.0797 244.6583 242.7819 245.6751 248.2397 249.955 250.1076 250.3513 250.0407 249.0468 244.9651 243.2849 246.4249 249.5155 252.1912 254.4461 255.5636 256.4473 257.6249 258.3733 258.155 257.5013 256.6612 255.4763 255.3979 254.9366 252.9876 251.1803 248.3905 253.6631 254.9756 255.6516 256.4127 256.9204 257.8053 258.6497 259.9701 260.1575 259.9097 259.3497 259.8073 260.5856 260.8315 260.851 260.7629 260.1413 258.9527 254.4298 250.8426 250.7941 248.2569 247.124 249.9423 249.8924 244.6562 237.3231 236.4297 236.4596 238.4446 240.3263 243.0123 243.8885 245.2796 246.4945 246.928 247.6138 250.8842 252.2807 253.8183 255.0292 255.5779 256.6161 256.6759 255.9156 254.534 251.5889 249.5129 245.4028 242.1554 238.2596 240.1451 241.9995 244.6431 246.3007 249.8626 251.3114 252.1749 252.5271 252.4183 252.2166 252.8282 252.8731 253.0062 254.0605 254.6023 256.885 256.1934 254.7787 255.0444 255.7548 256.4068 256.6855 257.4199 258.4244 259.1295 259.6037 260.2717 260.2045 259.4189 258.4278 256.8224 257.9886 259.3591 259.5735 260.5829 261.4275 261.2894 260.6803 260.2855 260.5709 260.7646 259.6857 257.1404 253.4926 248.5633 241.5442 239.0001 239.1079 242.1832 244.4895 245.4491 245.4961 244.161 242.4332 242.0334 241.9701 242.2806 244.4072 246.0913 249.2601 249.5135 249.9548 251.5268 252.4275 253.8635 255.0782 256.0891 256.9929 258.8904 259.8251 260.3813 260.4145 260.297 260.0991 259.2851 258.2994 257.7594 257.3386 256.1019 254.2229 252.552 251.8424 250.6165 252.2029 253.067 253.9144 255.963 257.4571 258.4526 259.0828 259.6528 260.0804 260.1385 259.4094 259.289 259.1726 259.5586 259.7531 260.0298 259.7382 259.5746 259.2614 258.5712 258.4295 258.6536 259.8736 260.0908 259.8979 259.4379 258.9387 258.7487 258.5739 257.6425 257.7349 259.8752 260.8697 262.0695 262.7937 262.5279 261.0608 260.0236 259.1623 257.618 255.8298 255.154 253.8438 252.4263 251.0836 250.0418 248.8345 247.2706 246.0037 244.6491 243.7325 243.4718 243.6558 242.9273 242.413 240.2905 238.9285 237.3331 233.4938 233.0763 232.2047 231.5588 230.0853 231.2699 232.1895 230.7301 231.4063 232.4511 232.2066 231.8862 230.1883 231.6901 232.9325 237.9415 238.2729 238.8574 239.3775 239.2804 240.0366 240.4886 239.9162 240.6373 241.6828 241.6676 241.5916 240.64 243.3461 244.7831 245.044 245.9986 247.1697 248.4658 250.3397 251.125 252.1724 255.3846 256.8164 258.2777 259.9961 261.1104 261.585 262.2654 262.8289 262.2883 259.8323 258.121 256.9999 255.727 254.8834 253.8256 252.4243 250.4388 248.198 250.571 250.8965 249.9662 248.2067 246.3734 244.6914 243.1616 241.7714 239.7686 236.1452 234.441 233.4691 232.4336 231.9245 232.0429 231.9301 232.0313 231.8481 -9999 +265.9719 264.6289 264.8377 265.0518 264.2875 265.0327 264.3397 264.2581 266.4295 267.6807 270.523 272.5091 275.9992 275.1341 274.5471 273.3761 270.2635 276.1845 279.3944 281.5405 282.4376 283.6658 283.5925 284.8632 286.2313 287.2967 287.8085 287.1114 285.8215 285.4791 284.6339 283.0124 280.9472 283.2576 287.8431 296.7845 296.3261 296.8071 297.9096 298.1815 298.617 299.9204 301.4334 302.2274 304.6892 305.5988 306.3452 306.7227 305.7445 304.1967 303.0676 301.4548 299.7686 298.328 296.5117 295.5486 296.7418 296.6883 295.5422 293.2475 293.1826 293.5688 293.4279 290.3727 289.7624 288.7628 289.0919 290.8973 290.3638 289.3304 289.9743 291.9162 294.716 294.5676 293.7374 292.4019 291.2191 292.3484 293.2053 291.862 290.479 288.4296 289.7302 291.4347 293.2647 294.3268 294.4344 293.7364 293.4568 293.1577 291.7656 291.3188 290.5063 289.4669 287.7973 288.4547 288.8068 288.8686 289.1256 289.3888 289.7006 289.1176 287.8149 286.6276 286.2639 286.3465 285.9044 284.9829 283.2273 281.0056 280.0394 278.9931 277.8969 277.7345 277.7103 276.8355 274.9237 273.5555 271.0893 271.2231 270.6519 268.4014 265.7437 261.4391 256.4836 257.8363 258.171 261.9026 264.5623 266.8092 265.6815 264.2797 262.8745 260.787 259.7534 259.5686 255.2288 255.1433 255.7522 256.3555 257.5449 255.5621 255.596 254.0567 254.7567 252.3802 251.6787 249.8496 250.5245 258.7212 265.8252 270.0536 272.0352 272.6019 266.1998 260.4622 259.251 259.6098 262.3576 264.6966 267.3989 268.7542 267.5584 263.0726 264.1467 265.6262 263.442 261.6921 261.5148 259.5802 257.1108 254.6263 252.2102 246.8083 246.2818 245.7726 244.191 242.4527 251.8889 257.3761 261.5298 264.3726 264.9016 262.6423 260.451 256.8194 252.6003 246.4908 246.4438 250.7591 254.6391 261.936 264.8298 268.1788 271.4133 275.058 275.9065 272.5136 269.7893 267.7711 266.2827 269.1074 270.9825 271.3753 269.6391 269.2172 267.0624 263.2921 258.4048 246.2547 242.106 243.6898 245.5024 247.1229 246.6927 246.5276 246.4397 245.5817 240.8602 243.0599 245.6206 248.2557 251.6222 252.9614 254.5271 255.5404 256.0641 256.6503 256.229 255.7042 253.9627 253.1869 253.0182 251.3401 250.0932 248.8152 247.7598 253.058 254.1487 254.6845 255.127 256.2753 257.2934 258.4076 259.4825 259.6364 260.0252 258.705 258.5371 258.7013 259.2462 259.4865 259.4132 259.2383 258.7554 255.815 254.5517 253.5493 250.5981 248.7618 249.1198 245.9559 240.1274 236.688 236.5549 236.6564 238.2265 240.4762 241.7121 242.6465 245.2796 246.4945 246.928 249.2104 250.8842 252.2807 253.8183 255.0292 255.5779 256.6161 256.6759 255.9156 254.534 251.5889 249.5129 245.4028 242.1554 238.2596 240.1451 241.9995 244.6431 246.3007 249.8626 251.3114 252.1749 252.5271 252.4183 252.2166 252.8282 252.8731 253.0062 254.0605 254.6023 254.264 253.2343 252.9697 253.3707 255.3183 255.322 255.3579 257.0222 257.8015 258.4849 258.5027 259.2681 258.8258 258.1301 257.2168 255.8459 256.7043 257.5809 258.5188 259.064 259.9817 259.7554 259.1253 259.3074 259.6241 260.0865 258.9585 257.1336 253.9999 249.815 244.1654 239.1154 239.0556 239.7494 241.7093 243.4697 242.6252 240.2567 241.1196 242.3563 244.0068 245.0766 246.3482 247.1736 248.8472 249.2965 250.7299 251.7188 252.9179 254.3103 255.3384 256.3323 257.1841 258.9033 259.5196 259.9605 260.1289 259.853 259.4532 258.8648 258.085 257.2168 255.437 254.321 252.2766 251.2125 250.8112 250.1289 251.2607 252.8701 253.4662 255.4726 257.0595 258.0418 259.0887 259.5282 259.6279 259.4246 258.9598 258.6861 258.5734 258.9876 258.8312 259.0568 259.2131 259.1355 258.4745 258.0749 257.7077 257.9556 259.0168 259.9858 260.4476 259.6702 258.9908 258.3121 257.3192 256.6698 257.1915 258.8304 259.4399 260.0504 261.0355 260.8264 259.5604 258.4945 257.9344 256.8354 254.3722 253.6998 252.6205 251.5013 250.3035 249.5943 248.7495 247.0816 246.9697 245.6843 244.4519 244.3083 244.342 243.9469 242.8373 241.8555 240.0008 238.5531 235.3909 233.9881 233.3184 233.817 233.6719 231.3981 230.5672 232.089 232.5601 232.5306 232.3962 232.2369 230.3168 231.4196 232.2004 234.171 237.0463 238.136 238.9559 240.4968 240.5714 242.0814 242.0905 241.9554 241.9849 242.836 243.3361 243.2806 243.6237 244.6498 244.813 245.7917 247.2988 248.0511 250.3201 251.9167 253.2942 255.3861 257.0261 258.7044 260.1465 261.3494 261.6812 262.846 262.8489 262.3543 259.282 257.2475 255.6079 254.6156 253.8526 252.9029 251.9875 250.1317 247.7144 248.8129 249.6496 248.8365 247.0197 245.2809 243.4889 242.1882 240.7913 239.0104 234.9883 233.7867 232.6832 232.0308 231.5542 231.6889 231.8168 232.0683 232.1351 -9999 +275.0569 264.9683 264.5313 264.9113 262.3883 265.1861 264.7394 264.5284 264.3215 264.26 265.3516 269.6994 273.7504 272.3967 269.9391 267.2886 272.2504 279.2797 281.5152 283.5706 284.7741 285.8161 284.8871 283.6493 284.0188 284.5587 283.631 282.6857 281.4255 280.5185 279.1681 280.0858 281.8567 284.6287 289.4409 296.6064 298.2941 298.4422 299.0741 299.5785 300.2311 300.9102 302.0445 303.2604 304.5738 305.5251 306.0956 306.6141 306.7198 305.605 304.4266 303.1915 301.5012 299.599 298.8975 298.1996 298.8383 298.4828 297.3084 295.3008 295.3413 295.4893 295.1374 293.282 292.8098 292.5508 293.041 293.0569 292.3589 291.7852 290.905 291.7059 295.0912 295.6695 295.1484 294.3916 293.308 293.4028 294.3573 293.8877 292.8323 290.2664 289.962 291.0684 293.0056 294.2908 294.4278 294.0604 293.2787 291.6536 290.1481 289.342 288.7359 287.771 285.9629 286.175 286.5505 287.2393 286.5404 287.6422 287.9223 287.1212 286.4435 285.4657 285.0142 284.7493 284.2569 283.6392 281.2411 280.223 278.9539 277.8628 276.6816 276.8336 276.7107 275.3093 273.7456 272.4036 268.8469 269.4402 269.4169 267.2965 264.3643 258.4861 255.2085 253.5376 257.2308 258.3895 261.9078 262.7761 261.8453 261.2065 260.0672 257.5209 256.1649 256.6587 253.0724 253.1046 253.0969 252.8826 252.482 252.0776 252.3042 252.1658 251.8306 249.9966 252.4371 254.9105 257.8112 262.9843 267.3945 271.6626 272.9492 272.9525 263.0452 260.0053 261.9007 264.6179 265.7121 266.7781 269.0753 270.6092 270.3656 266.1349 265.8768 266.6041 265.8077 264.0423 263.1891 261.0152 258.1923 255.3651 252.565 247.861 246.6528 245.2717 244.2964 242.6001 247.7898 255.8427 260.4503 262.7829 262.8205 260.18 257.5526 254.4557 250.3027 245.9107 246.0242 250.8932 254.9245 261.3954 264.3638 267.6175 270.6854 273.4875 274.0097 269.0083 265.7356 265.8673 264.2594 266.2357 268.0751 268.5686 265.7104 265.3958 264.3526 261.1058 256.9471 245.058 241.3579 241.1857 241.2099 241.7549 241.3726 240.6914 241.2151 241.865 241.0713 244.5794 246.7812 248.3553 251.1649 252.8802 253.726 254.5264 254.6731 254.9974 254.531 252.4656 251.9639 251.6402 250.2128 248.2878 247.2313 247.1219 247.1374 250.2181 254.1487 254.6845 255.127 256.2753 257.2934 258.4076 259.4825 259.6364 260.0252 258.705 258.5371 258.7013 259.2462 259.4865 259.4132 259.2383 258.7554 255.815 254.5517 253.5493 250.5981 248.7618 249.1198 245.9559 240.1274 236.688 236.5549 236.6564 238.2265 240.4762 241.7121 242.6465 244.4365 246.0456 247.4523 250.2582 251.2846 252.5612 254.1802 255.3904 256.0422 256.7923 256.3424 255.291 254.0313 250.3153 248.1741 245.0534 241.8435 238.3557 239.6767 241.6227 244.4629 246.2101 249.6321 250.8248 251.1077 251.2029 251.2817 251.3974 251.6253 251.414 251.0515 252.603 253.033 251.541 252.2778 252.8674 254.01 254.6316 254.2684 254.5995 255.933 256.6978 257.3 257.519 257.9818 257.5975 256.8535 256.0788 255.0881 255.6164 256.1019 256.9153 257.9288 258.5834 258.5626 258.0843 258.1438 258.8045 258.8466 257.8028 256.2737 254.0103 250.7781 246.0025 238.4864 237.9955 238.7571 239.2683 241.0089 239.9553 240.1223 241.769 243.0688 244.5657 245.4955 246.3494 246.8169 248.764 250.061 251.5048 252.2704 253.3924 254.7757 255.5672 256.5446 257.5573 258.746 259.4432 259.6354 259.4816 259.1123 258.7577 258.2571 257.5992 256.9001 253.8599 252.4449 250.9887 249.6348 250.1073 249.7767 246.842 252.2628 253.054 255.1807 256.6252 257.8243 258.667 259.2252 259.3632 258.8272 258.4969 258.014 257.9165 257.7458 257.9825 258.3054 258.6115 258.5062 258.1318 257.3586 257.2792 257.5813 258.7163 260.029 260.7725 260.6414 259.5127 258.0162 257.1106 256.3981 256.4831 257.6457 258.0325 258.5388 259.1147 258.7801 257.8222 257.1454 256.4004 255.3944 253.6431 253.2342 252.2271 250.8618 250.1347 249.256 248.0485 247.4563 247.0434 245.5322 245.3069 244.9956 244.6155 244.1466 243.4203 242.3252 241.4542 239.8507 237.3519 235.3041 234.8114 234.8236 234.5589 233.9219 233.2753 232.4577 232.4576 232.6362 232.3551 232.4925 230.9792 230.5907 231.765 233.2923 237.9128 238.9803 239.0697 240.6707 241.5221 242.6801 243.8617 243.6662 243.0647 242.905 243.8057 244.6858 242.5941 244.5059 245.1268 245.6124 246.8046 248.1932 250.1454 252.1542 253.529 255.8268 257.3103 259.0852 260.5494 260.8423 261.9818 262.235 262.3891 262.0166 258.7869 257.1249 255.5471 254.0655 252.9035 251.4922 250.9236 249.1829 247.5943 247.112 247.8726 248.0336 246.5731 244.5482 242.5506 240.9076 239.0412 237.5069 234.2036 233.0677 232.5838 231.9293 231.697 231.7059 231.78 231.8452 232.0524 -9999 +277.6201 268.3843 264.8453 264.6163 262.9784 263.0952 262.9272 262.4558 264.7682 264.4178 264.2255 266.666 270.1509 267.3035 265.8166 272.049 275.635 279.8185 281.5056 282.6053 283.314 283.7199 282.802 281.042 281.129 280.5454 277.352 276.0814 278.7283 282.055 284.1405 284.332 285.9529 289.0082 291.1861 297.0346 299.0908 300.3827 300.6576 300.8108 301.1443 301.5504 301.8835 302.7017 303.8698 304.5256 305.3471 305.9534 306.6718 306.5271 305.5301 304.0747 302.9345 301.2167 300.6559 299.7861 300.1423 300.1913 299.2494 297.615 297.3542 297.2999 297.2054 295.7958 294.9532 295.0073 295.4821 295.0791 294.2645 294.0735 294.0638 293.4893 295.4515 296.1273 296.3456 295.9271 295.0328 294.364 295.4333 295.0629 294.0789 291.2433 291.9615 292.8046 293.971 294.5201 294.7285 294.0064 292.7985 291.3216 287.9994 287.5678 287.1974 286.5821 284.8058 283.2651 284.2481 284.8329 284.7213 286.0251 286.2961 286.1149 284.7191 283.7249 283.7037 283.0783 282.51 281.7384 280.1233 279.0029 278.1931 276.8081 275.9067 276.3683 275.9197 273.9573 272.2679 270.8221 266.7067 266.8482 267.3842 265.3988 261.5854 257.5889 256.6529 254.0711 254.3329 255.872 258.3619 258.915 258.8115 258.4715 257.5735 254.0483 253.8645 253.5772 253.0968 253.2001 253.0788 252.841 252.2845 251.718 250.6538 249.0489 249.7767 259.1745 262.9839 265.1203 266.5616 269.1199 271.9756 273.1994 275.1106 273.5836 263.5757 263.9651 266.2308 267.5024 268.7108 269.6772 271.2829 272.5698 272.1752 268.608 267.3784 267.3007 266.3243 264.2542 262.8988 260.5734 257.3606 254.2964 251.6693 247.9145 245.8115 244.4556 243.9796 243.5337 244.2602 253.3106 258.1246 260.568 259.2675 256.6154 254.2882 251.6985 247.5121 245.5115 245.7333 250.6879 254.2505 260.7144 264.1187 266.6498 269.165 271.0294 271.7325 266.4995 261.8135 262.6671 261.3052 262.9503 264.3337 265.2469 261.2766 259.3284 259.5635 261.1058 256.9471 245.058 241.3579 241.1857 241.2099 241.7549 241.3726 240.6914 241.2151 241.865 241.0713 244.5794 246.7812 248.3553 251.1649 252.8802 253.726 254.5264 254.6731 254.9974 254.531 252.4656 251.9639 251.6402 250.2128 248.2878 247.2313 247.1219 247.1374 250.2181 253.2513 253.2609 253.5989 254.479 256.2142 257.3919 259.0194 259.2661 259.4675 258.7892 258.0565 255.7322 256.3153 257.6086 258.2814 258.0785 257.6304 256.0841 254.9324 253.4882 251.7041 250.3291 247.1487 240.8223 236.2751 236.4464 236.9235 237.4193 238.2168 239.6156 241.7105 243.6393 245.3881 246.339 247.4079 250.369 251.4771 252.8705 254.6657 255.6892 256.4179 256.8266 256.2661 255.358 254.0056 250.5242 248.4502 244.8398 241.1344 239.1142 239.35 241.6459 244.1778 245.9303 249.2016 249.7382 250.1902 250.0766 250.5538 249.95 249.5239 249.4594 249.4801 251.1061 251.4117 250.3123 252.3107 253.065 253.4027 253.7572 253.4503 253.8291 255.0796 255.6275 256.314 256.5813 257.1866 256.776 255.8513 255.3979 254.3907 254.8397 255.0659 255.771 256.7379 257.5472 257.7213 257.6074 257.4953 257.6943 258.0758 257.1181 255.5343 253.3568 250.3335 245.4222 239.3307 237.9538 238.1787 238.5359 238.6488 239.2472 240.8077 242.2258 243.6555 244.7672 245.4541 246.6101 247.5808 249.2456 250.4362 251.6958 252.986 254.0074 254.8521 255.6604 256.7563 257.3235 258.6161 258.9982 259.1015 258.8673 258.3311 257.6324 257.4336 257.3153 256.7411 253.6931 251.7499 249.3172 248.2521 249.0289 249.3826 246.803 251.534 252.6677 254.9224 256.3277 257.3295 257.8303 258.7439 258.8887 258.4672 257.9297 257.2972 257.0669 257.3779 257.2732 257.7178 257.7935 257.8813 257.7238 257.1618 257.1438 257.3713 258.6177 259.9814 261.0071 260.92 259.3492 257.5529 256.3852 255.8632 255.9091 256.2551 256.6231 256.7426 256.8083 256.3539 255.4344 255.406 254.4021 253.6219 253.31 252.3876 251.3102 250.1923 249.6127 248.3893 247.8319 247.0938 246.0819 246.0293 245.4128 244.9967 244.774 243.9771 243.2205 242.6618 241.8547 240.9761 237.8218 236.2987 237.1332 235.9557 235.1149 234.4145 234.1294 233.4021 232.2263 232.374 232.1721 232.1231 232.2518 229.6092 231.837 232.2731 234.974 237.5893 238.4827 240.6656 241.6562 242.8608 243.7271 244.1718 244.1456 243.6694 244.0614 244.9055 245.3444 244.6628 245.0625 245.5627 246.9029 248.6797 250.1299 252.293 253.3597 255.6804 257.4741 258.9688 260.2438 260.4998 261.1373 261.4814 261.82 261.6425 258.4654 256.6468 254.5818 252.7456 251.5189 251.0697 250.1764 248.9205 247.7583 245.2377 246.3804 246.3474 244.9609 243.3564 241.2939 239.4283 238.0969 236.5467 234.2649 233.5649 232.5751 232.0414 231.575 231.5241 231.8637 231.9085 231.8332 -9999 +282.1915 275.5482 265.7168 264.3226 264.4909 264.2088 265.041 265.0448 264.9487 264.3716 264.1327 263.8706 265.0602 264.8922 269.9045 272.9961 274.8979 278.2182 279.2504 279.9375 279.9458 280.2955 279.3561 278.0942 276.5076 275.3753 274.982 277.6912 282.8526 284.6765 286.356 286.8731 286.9891 289.1528 291.4555 296.3029 298.7661 300.8265 301.6844 301.4043 301.1675 300.7706 301.0699 301.1503 302.2282 302.9439 304.5974 305.2764 305.9623 306.2427 306.1192 305.2238 304.1573 302.7703 302.9375 301.8342 300.8661 301.0972 301.037 299.7138 299.4185 299.0746 298.8104 297.4904 296.8668 296.9048 297.0705 296.5532 296.3189 296.0762 295.9037 295.6442 295.8515 296.7685 297.2845 297.1498 296.2924 295.486 296.0974 296.1949 295.1092 293.4104 293.7449 294.0889 294.7259 295.1026 294.7455 294.0262 292.9373 291.9696 288.3659 286.4917 285.7928 285.1711 281.9436 280.3876 282.176 282.9396 283.0355 284.3242 284.652 284.5931 283.8132 282.4509 281.6744 281.0468 280.7285 280.235 278.8082 277.5229 276.5638 275.7569 273.9442 274.7332 273.4415 271.8038 270.2012 268.6847 264.5127 263.4131 262.7853 260.7979 258.9468 256.9973 257.7057 259.7705 256.0044 252.63 254.6719 254.6263 254.2729 254.0732 253.9405 253.8927 253.7568 253.6331 252.4356 250.8738 250.2755 251.4603 252.4789 252.6644 252.0612 251.794 253.0386 263.5243 266.232 269.398 272.2311 273.7409 275.7668 276.613 276.9855 275.1561 266.8351 265.8402 267.9214 269.7069 270.9634 271.9653 273.459 274.3215 273.5599 269.8864 268.2885 267.1911 265.4646 262.7157 260.8987 259.0732 255.6066 252.5784 250.1328 246.6992 245.328 244.6075 243.9796 243.5337 244.2602 253.3106 258.1246 260.568 259.2675 256.6154 254.2882 251.6985 247.5121 245.5115 245.7333 250.6879 254.2505 260.7144 264.1187 266.6498 269.165 271.0294 271.7325 266.4995 261.8135 262.6671 261.3052 262.9503 264.3337 265.2469 261.2766 259.3284 259.5635 256.7181 253.2224 241.356 240.1982 240.8392 240.5458 239.8438 239.2577 239.1845 239.3367 239.2676 239.4393 239.9899 240.7958 243.4621 247.953 251.4654 253.3271 253.1256 253.1311 253.1759 252.6467 251.0283 249.657 248.772 247.9633 246.4524 245.6817 246.0883 245.2941 250.9709 252.1513 250.973 251.7799 252.8725 254.8932 256.4245 258.0708 258.7937 259.2949 258.6824 258.186 255.0025 252.4058 254.2813 256.5832 256.965 256.5028 256.3524 255.9268 255.6355 253.5204 250.127 244.5526 237.409 236.2127 236.2289 237.0512 236.8864 237.7512 239.0591 241.1251 243.5803 245.4578 246.6055 247.6514 250.5882 251.7327 252.861 254.3028 255.2498 256.0017 256.1459 256.1049 255.3303 253.9092 250.0161 248.5311 245.2542 242.4364 238.9883 238.0663 241.1243 243.5018 245.2414 248.1214 249.1329 249.1015 248.826 248.6322 248.5526 247.7004 247.8398 248.2257 249.5684 249.1644 250.3774 251.7446 251.9822 252.1769 252.8433 252.9916 253.3613 253.8712 254.5027 255.2087 255.4432 256.1151 255.8667 255.0329 254.4355 253.2285 254.0239 254.3669 254.6796 255.5552 256.231 256.5616 256.6285 256.8717 256.6831 256.9588 255.928 254.3641 251.6139 248.6378 243.629 239.6712 238.0756 237.9957 237.9457 238.7054 240.1537 241.892 243.6621 244.9186 245.5066 246.4755 247.1817 248.359 250.031 250.8409 251.5541 252.8926 254.3645 255.1354 256.0269 257.0106 257.3614 258.1587 258.4529 258.5616 258.1667 257.6359 257.2 256.3343 256.4803 256.2371 253.7731 251.5566 248.9857 247.2086 247.4283 247.6113 248.2285 251.224 252.296 254.08 255.2511 256.3426 257.148 257.8861 258.2561 257.5748 256.239 255.8143 256.2921 256.7092 256.9399 256.848 257.1392 257.4149 257.3428 257.0493 257.1651 257.4934 258.9603 259.7692 260.7597 260.5357 259.2637 257.2924 255.996 255.5132 255.6121 255.2206 255.1534 255.1532 255.0558 254.7375 253.8652 253.5314 252.9995 252.2502 251.9169 251.59 250.8047 250.2014 249.8283 248.3399 248.0664 246.7607 245.8829 244.7048 244.3512 243.9935 243.6975 243.0987 242.4751 242.0009 240.3443 239.0081 239.0343 238.8038 237.8888 236.4871 235.5617 235.1052 234.4541 234.0106 232.8659 232.348 231.876 231.7673 232.1682 229.7586 231.7395 231.489 232.4052 233.8077 235.9179 240.6413 242.2747 243.5307 244.12 245.1028 245.2309 244.9198 244.8109 245.14 246.0224 245.9609 245.123 245.7506 246.6754 248.3033 250.1537 252.1841 253.8799 255.5062 256.7146 258.1019 259.0649 260.1908 260.9156 261.2445 261.4814 261.3365 258.6053 255.7557 254.319 251.7748 250.5908 249.6994 249.2829 248.9214 247.1735 244.2261 244.2637 244.979 243.6533 241.7136 239.9324 239.0552 237.9845 236.2421 233.6227 232.9031 232.66 231.9759 231.7459 231.6248 231.5421 231.6891 232.0534 -9999 +283.9612 277.6346 271.893 265.333 264.7202 264.5159 264.4337 264.2808 262.148 263.594 264.2475 264.0248 264.0019 264.6642 268.4059 270.5381 270.3437 275.0766 276.8508 276.8133 275.8245 275.6023 274.1287 271.5639 273.0154 274.9489 281.4055 284.0561 286.1567 286.9968 287.3229 287.7436 288.5363 289.5956 290.9516 295.9843 298.6119 300.8023 301.2046 300.3731 299.301 298.8088 298.7981 299.0083 300.0858 301.9167 303.0442 304.1416 304.8252 305.5435 305.9038 305.7764 305.1575 304.2782 304.6729 303.7187 302.4521 302.7583 302.3383 301.5439 300.9823 300.7292 300.2182 298.8884 298.5733 298.0531 297.9733 297.9319 297.6302 297.4922 297.4435 297.0515 296.8385 297.3625 297.9594 298.3613 297.3766 296.5339 296.5828 296.7717 296.5203 295.1532 295.1332 295.2443 294.8274 294.5515 294.3228 293.5254 292.9033 292.131 288.6949 286.7001 283.4714 281.8371 279.9872 278.0421 279.2397 280.7517 280.4253 282.6859 283.193 282.9414 282.0092 280.9964 279.7438 278.7781 278.7031 278.5584 277.4158 276.17 275.0287 273.559 272.1333 272.0445 270.4917 268.7141 267.3924 265.8873 260.6239 259.7507 258.0709 256.689 257.8306 256.9666 261.478 263.4619 261.4094 254.1947 252.9106 253.7325 254.3287 254.171 253.115 251.077 251.0851 252.517 253.3073 252.7315 252.7408 252.464 252.1566 252.0873 252.1644 252.5911 254.8917 265.7405 268.0957 269.398 272.2311 273.7409 275.7668 276.613 276.9855 275.1561 266.8351 265.8402 267.9214 269.7069 270.9634 271.9653 273.459 274.3215 273.5599 269.8864 268.2885 267.1911 265.4646 262.7157 260.8987 259.0732 255.6066 252.5784 250.1328 246.6992 245.328 244.6075 244.2373 243.6022 241.6132 249.5918 255.426 257.5497 255.4843 252.638 250.2668 249.3589 245.705 245.1434 245.5259 249.42 252.9684 259.5014 262.4058 264.9848 266.9419 268.813 268.2766 261.9979 257.8722 258.5661 256.962 259.0051 261.2196 261.3153 257.6191 253.2731 253.0785 252.6186 249.7293 239.9146 239.8357 240.472 240.3303 240.3478 239.4046 239.2769 239.2842 239.5198 239.253 238.765 238.9565 240.4641 246.2402 251.2979 252.0711 251.2718 251.4152 251.3 250.3935 249.7532 247.8141 246.6181 245.9891 245.1143 244.334 244.0952 244.1563 250.506 250.6799 249.2982 250.4285 252.5683 254.5771 256.0612 257.5012 257.8334 259.3032 259.3747 258.4919 256.8808 253.5081 250.669 253.9924 255.4068 255.4763 254.971 255.5154 255.4575 253.4406 249.6109 243.8358 237.1625 235.852 236.0823 236.2863 236.8363 237.085 238.5626 241.7681 244.0416 245.2021 246.1965 247.3442 250.3918 251.6414 252.5792 253.8298 254.3458 254.8797 255.3425 255.7587 254.706 253.5058 250.7732 248.9516 245.4589 241.1422 238.8777 237.9766 240.5786 243.3423 244.8358 247.1925 247.9644 247.8916 247.3686 246.7004 246.4361 246.6094 247.9876 248.2472 248.3403 249.1094 250.6505 250.6366 251.4112 251.3209 252.0867 252.3692 252.6599 253.1762 253.7256 254.1895 254.5372 254.771 254.447 253.9005 253.2016 252.2536 253.1381 253.493 253.6627 254.1583 254.7928 255.3632 255.6812 255.2927 256.1697 256.1851 255.1831 253.2514 251.2954 248.8397 245.5877 240.5511 237.8368 237.6368 237.5354 239.4955 240.6636 242.4891 244.0925 245.659 246.8994 247.3506 248.5285 249.5575 251.3614 252.0528 252.8343 253.5678 254.3481 255.0904 255.94 256.6429 256.8158 257.1868 257.411 257.8497 257.979 257.3164 256.4669 255.4879 255.5557 255.6383 253.1346 251.17 247.989 246.3001 246.2085 245.3906 249.4872 251.1587 252.0488 253.6511 254.7321 255.5552 256.1214 257.1131 257.5475 257.3596 256.2462 254.1093 255.4278 255.9547 256.2662 256.6882 256.6377 256.9285 256.9877 256.7793 257.2681 257.9678 259.2202 259.8509 260.5418 260.559 259.6546 257.8859 255.9567 255.5297 255.414 254.8067 254.273 253.8778 253.6991 253.5903 253.1225 252.5948 252.5383 252.2658 251.3229 250.8309 250.5949 250.4069 250.1463 248.5327 248.2741 247.2942 246.1242 244.4542 244.0959 243.1601 242.7305 242.3394 242.0081 242.0332 241.4602 241.8054 241.9249 241.1122 239.416 236.5712 235.4751 235.2948 234.6506 234.1949 233.0779 232.5546 231.9802 231.0273 231.0594 229.5679 232.0719 230.9323 231.2954 232.4915 237.2159 239.9758 241.6534 242.6707 244.2823 245.244 246.2443 246.1774 245.7334 245.9664 246.5966 246.6785 246.6839 246.388 246.7912 249.0118 250.7558 252.6007 254.4291 256.1149 256.1982 256.5652 258.8059 259.7699 260.4566 261.1461 261.5148 261.269 257.9657 255.78 253.1126 251.6302 249.1652 248.784 248.4576 248.4135 246.8311 244.5885 243.2862 242.567 241.6575 240.8532 239.9948 239.0267 237.3067 236.1461 233.1933 232.5114 231.9273 231.6355 231.5494 231.8278 231.6408 231.6672 231.9868 -9999 +280.6943 274.2328 268.4248 267.4353 267.3437 264.5912 264.1801 264.4273 264.4096 263.7809 261.6761 264.2695 263.9312 263.8227 264.0155 264.0372 264.2088 271.0793 273.945 272.6706 268.804 270.9315 274.7227 278.2767 279.5255 279.4352 282.9474 285.0197 287.5338 289.0524 289.9693 290.0064 290.9302 291.528 292.2543 295.1523 296.6653 298.3581 299.136 298.3074 297.4178 296.9087 296.8427 296.8769 297.2881 299.4948 301.3736 301.7879 302.4149 303.9321 305.4882 305.9262 305.8187 304.8549 305.3561 304.3399 304.145 304.4873 304.0822 303.0395 302.2807 301.6241 300.4949 300.0163 299.5905 299.1348 298.8644 298.6971 298.2166 297.9473 297.8004 297.5781 297.4752 298.3205 298.4093 298.1814 297.7754 297.6115 297.4794 297.2923 297.1316 295.5247 294.9103 294.6909 294.2794 293.4119 292.9492 292.8145 292.3319 291.399 288.3906 286.8174 284.988 282.6768 280.3145 277.4338 277.1492 278.0692 278.3432 281.3709 282.0685 281.5977 281.0743 279.7599 278.2182 276.2954 275.7059 276.6169 275.7503 273.7824 272.461 271.4302 269.3203 269.7552 268.4764 265.9793 263.2279 259.7039 260.6239 259.7507 258.0709 256.689 257.8306 256.9666 261.478 263.4619 261.4094 254.1947 252.9106 253.7325 254.3287 254.171 253.115 251.077 251.0851 252.517 253.3073 252.7315 252.7408 252.464 252.1566 252.0873 252.1644 252.5911 254.8917 265.7405 268.0957 271.7082 275.3414 277.8523 279.1592 279.7424 278.5811 276.1695 268.3381 268.5492 269.1073 271.1137 272.5883 273.8116 275.0547 275.7845 274.3004 269.5934 267.5597 265.5834 262.7925 259.9557 256.7825 255.2209 252.0651 249.9585 247.7633 246.8392 245.6616 244.7316 244.0749 243.6195 242.9304 243.774 250.5618 253.4331 247.9998 245.6476 244.5567 245.4701 244.7813 244.4815 244.9415 248.0429 251.3907 257.2249 260.0117 262.5029 264.4425 266.4043 264.8801 257.6091 254.3983 254.5106 254.5132 256.0717 258.1661 257.2506 254.1947 252.406 247.2755 248.1719 245.6795 239.4693 240.311 240.4776 240.1062 239.4517 239.5862 239.3185 239.3153 239.0004 238.6116 238.5985 238.3893 241.3771 246.5877 250.1509 250.0492 249.9701 249.5279 249.2738 249.2718 247.9636 246.6021 244.9799 244.1966 243.8322 243.4137 242.8855 245.2102 248.8863 249.36 248.3795 249.6035 252.4648 254.0973 255.4803 256.8217 256.8858 259.1885 259.4381 258.187 256.5257 255.4588 249.7764 249.6492 253.0607 254.2165 253.7339 254.0246 254.0915 252.4095 249.1614 243.0081 238.2785 235.8504 235.6534 235.2662 236.5773 237.4999 239.7729 242.1528 244.0889 244.9932 246.306 247.7626 250.0855 250.9231 251.4988 252.4713 253.0152 254.0379 254.8009 255.4111 254.3027 252.1466 249.983 248.8067 244.5686 239.4345 237.8287 237.8188 240.3705 243.8932 245.4495 246.3015 246.9331 246.8846 245.9175 244.9392 245.211 246.5909 247.4602 247.8653 248.0721 248.6777 249.6358 250.1043 250.4232 250.5316 251.4049 251.5758 251.4408 252.2423 252.8289 253.3311 252.9829 253.3053 252.7839 252.0383 251.6213 251.3738 252.3565 253.0095 252.762 252.9205 253.5216 254.0031 254.2126 254.2698 255.6688 256.4672 255.3385 253.7159 252.1702 249.5099 245.9494 240.8994 237.6327 236.785 238.7127 240.1831 242.0249 243.4229 244.9792 246.2621 247.3294 248.3086 249.1166 250.2614 252.3311 252.8278 253.3936 253.9961 254.1279 254.6093 255.1979 255.8522 255.9012 256.3025 256.7019 257.0052 256.8955 256.6375 255.7959 254.9911 254.6455 254.8285 252.1703 249.2579 246.9543 245.7641 245.7987 245.8334 248.3701 250.1627 251.6952 253.4292 254.1043 254.7867 255.6669 256.3624 256.64 256.7168 254.6369 253.0258 255.6742 255.0796 255.4541 255.8941 256.3726 256.3914 256.4191 256.9411 257.4684 259.0338 259.4852 260.0714 260.5786 260.4516 259.5417 257.4196 256.5975 255.295 254.5143 253.9556 253.7549 252.8561 252.3556 252.3266 252.1931 252.0466 251.9573 251.8724 250.831 250.1586 249.9654 249.6619 249.1555 248.2975 248.4298 247.2965 246.2898 244.1102 243.8362 243.9115 244.0128 243.7145 243.1782 242.5997 242.251 242.3038 242.947 242.272 238.5936 236.1739 235.2511 235.0927 234.8849 234.5947 233.6375 232.0059 230.7135 229.539 229.6759 231.9271 235.8456 236.8174 234.8145 231.2629 234.2468 237.3092 241.1798 242.5743 243.596 245.4859 246.3842 247.3647 247.2215 247.1008 247.6002 248.0312 247.9704 247.5721 248.9917 249.8689 250.7058 252.7949 254.7956 256.1999 256.1233 257.4852 258.5865 259.0035 259.9174 260.9077 261.2549 260.86 257.4157 255.7183 253.1126 251.6302 249.1652 248.784 248.4576 248.4135 246.8311 244.5885 243.2862 242.567 241.6575 240.8532 239.9948 239.0267 237.3067 236.1461 233.1933 232.5114 231.9273 231.6355 231.5494 231.8278 231.6408 231.6672 231.9868 -9999 +273.7421 272.13 273.4261 273.212 269.6896 264.7343 264.0596 264.265 264.2339 264.1722 264.2813 261.8619 262.6193 264.0075 263.8442 263.6853 263.6256 264.9465 267.3564 267.2703 273.0247 277.3894 280.2627 282.3753 283.4416 283.4741 282.6964 286.0593 287.556 289.4482 291.5976 292.748 293.0074 292.9734 292.5945 293.0814 294.5052 295.3248 295.7782 295.7794 295.3074 294.5845 293.2969 293.3718 294.9479 297.2421 299.5061 299.8934 301.7462 303.5235 305.0933 305.9853 306.434 306.1803 305.5268 305.0544 305.4796 305.644 305.136 303.9854 303.0502 302.3312 301.1525 300.2388 299.6015 298.7989 298.5958 298.0348 297.7991 297.6315 297.6295 297.8495 298.4809 298.7239 298.5905 297.4713 297.1869 297.0071 297.1132 296.8478 296.5349 295.0452 293.8345 293.4364 293.2659 292.5361 291.6266 291.1212 291.2539 290.6868 288.3906 286.8174 284.988 282.6768 280.3145 277.4338 277.1492 278.0692 278.3432 281.3709 282.0685 281.5977 281.0743 279.7599 278.2182 276.2954 275.7059 276.6169 275.7503 273.7824 272.461 271.4302 269.3203 269.7552 268.4764 265.9793 263.2279 259.7039 257.9134 256.8319 257.3953 258.0315 259.8526 264.0836 265.525 266.4704 263.9689 254.6527 254.4383 254.0611 252.6836 252.2804 256.7326 259.0784 257.4802 256.3094 255.616 253.3943 254.4248 255.9753 258.6848 259.0096 256.5036 254.1995 259.105 270.0763 273.2987 274.9547 277.9882 280.5029 280.7858 281.1197 279.8282 277.2374 270.5856 270.7925 271.0717 272.4971 273.8686 275.145 275.9003 275.5746 273.1427 267.6262 264.6483 262.2863 258.999 255.6091 251.4693 251.7039 251.3195 252.4535 249.8187 247.6716 245.6352 244.8388 243.4588 243.4295 243.5205 240.988 244.693 246.9834 242.8688 242.6468 242.6451 242.802 243.3581 243.1213 244.514 246.3706 249.4017 254.5316 257.3754 260.0876 262.29 264.3762 261.8863 253.4948 249.3752 250.9776 251.7006 253.2929 253.9919 252.1758 250.0287 249.6967 245.3832 243.829 242.1902 239.022 239.3779 238.9234 239.7232 239.5977 239.5737 239.2753 238.9217 238.8199 238.8009 238.8378 238.3379 239.3781 241.3486 244.5888 248.4518 249.1346 247.5644 247.9077 247.6611 246.4787 245.1472 244.053 242.9055 243.0564 242.565 243.7621 244.7362 247.3232 248.0407 247.4412 249.0308 251.0836 253.3308 254.9224 255.9895 255.2911 258.185 258.8524 258.0408 255.4026 254.0117 253.2044 247.275 249.1434 252.072 252.8132 252.4621 252.3242 250.975 247.883 242.6774 238.2623 235.708 235.5802 236.1659 236.5001 237.826 240.749 242.801 244.1627 244.933 246.4732 248.5793 249.7579 250.0931 250.3766 251.476 252.1027 253.3168 254.2672 254.9455 254.4988 252.2815 249.8643 246.8415 244.106 241.2845 238.432 236.9269 239.5188 243.6954 245.551 246.0822 246.2494 245.7882 244.8204 244.2884 245.1849 246.153 246.3185 246.1469 247.7364 248.2085 248.7457 249.1626 249.1337 250.0524 250.7391 250.686 250.9512 251.5407 251.6118 251.784 251.2976 251.9406 251.3231 250.6456 250.4748 250.3594 251.5235 252.4311 252.6698 252.1722 252.4237 253.113 253.436 254.0447 255.0924 256.3525 255.6649 254.4042 252.585 250.0548 246.0327 241.0498 237.5255 237.5042 238.361 241.2748 243.8239 245.0119 246.0222 247.3815 248.3691 249.4397 249.8707 250.407 252.753 253.5389 253.8546 253.9495 253.4338 253.7817 254.385 255.2112 254.6114 255.2549 255.4688 255.9712 255.9665 255.6454 254.7949 254.3209 253.9178 253.6648 250.7041 247.513 245.9293 245.1289 244.4118 246.7749 247.7408 249.9576 251.0787 252.1829 253.2154 254.3375 254.8593 255.4841 255.7201 255.6696 253.3766 251.9603 252.7772 253.2517 253.7609 254.9426 255.6747 256.0564 256.6119 256.8853 257.9811 259.4389 259.8852 260.3771 260.6049 260.0647 259.0318 257.9052 256.7683 255.4055 254.325 253.2545 253.0216 252.4346 251.6988 251.1498 250.6822 250.7343 251.0346 250.979 250.0192 249.377 249.2701 248.5094 247.9477 248.1514 247.3752 246.6068 246.1165 243.6298 243.921 243.8344 244.4192 244.4352 243.4711 242.7621 242.4188 242.4927 243.3971 242.2038 239.2273 235.8019 235.1023 235.1347 234.8455 234.4897 233.6375 232.0059 230.7135 229.539 229.6759 231.9271 235.8456 236.8174 234.8145 231.2629 234.2468 237.3092 241.1798 242.5743 243.596 245.4859 246.3842 247.3647 247.2215 247.1008 247.6002 248.0312 247.9704 247.5721 248.9917 249.8689 250.7058 252.7949 254.7956 256.1999 256.1233 257.4852 258.5865 259.0035 259.9174 260.9077 261.2549 260.86 257.4157 255.7183 252.4948 250.5791 248.7057 248.1587 247.8163 247.0689 246.1969 244.8761 243.2688 242.2478 241.8339 241.0173 240.5861 239.1555 237.4717 235.6903 232.7614 232.1337 231.8269 231.5871 231.6574 232.0068 231.5872 231.9869 232.517 -9999 +283.226 284.2796 281.37 276.2461 269.1891 265.0353 264.5506 264.0978 263.9653 264.08 264.1211 264.1851 264.2133 261.4752 263.2562 263.9176 263.7861 263.6863 265.2172 270.8288 274.9903 278.3123 281.3426 283.6156 285.3207 285.5852 284.8315 286.4354 288.9106 290.3302 291.7758 292.845 292.9075 292.256 291.2347 290.9962 292.2163 292.3119 292.6047 291.8437 290.3021 289.6396 289.7754 291.4574 295.3882 297.706 299.0654 300.419 301.9612 303.3063 304.8705 306.0487 306.4605 306.9662 306.8283 306.4733 306.0287 305.6264 305.1717 304.3593 303.7369 303.0981 301.4739 300.2388 299.6015 298.7989 298.5958 298.0348 297.7991 297.6315 297.6295 297.8495 298.4809 298.7239 298.5905 297.4713 297.1869 297.0071 297.1132 296.8478 296.5349 295.0452 293.8345 293.4364 293.2659 292.5361 291.6266 291.1212 291.2539 290.6868 287.9474 286.5542 284.9923 282.7973 280.1347 277.6432 275.8432 275.6558 277.3204 280.8358 280.7173 280.2366 279.5603 278.4115 276.8044 274.6875 273.6589 275.2909 274.8478 272.9825 269.2611 269.7969 268.1758 266.3062 264.5742 262.4352 259.7885 258.3087 257.7823 257.7007 258.0705 261.2997 263.9839 266.9429 268.2657 268.443 265.9836 255.6865 254.3288 254.2133 254.0558 254.8508 260.1861 263.3571 263.546 262.7346 263.4845 261.1061 257.0186 259.8509 265.2733 268.4217 265.8156 261.942 259.9717 271.2607 275.5102 277.538 280.2781 281.0654 283.18 282.4507 280.7402 278.2033 271.6593 273.2184 273.4903 274.5493 275.4442 275.7787 275.2173 273.2773 269.7815 262.6175 259.6831 257.2203 256.7852 257.4662 259.0008 260.1724 258.4059 256.3018 253.228 249.9172 244.804 244.0361 243.033 242.8079 243.1595 243.394 240.8734 243.3893 243.0222 242.7184 242.533 242.5539 242.6802 242.6665 243.7508 245.6661 247.6073 251.6717 254.8307 257.38 259.4843 261.506 259.1212 250.2026 242.0171 242.6525 246.3628 248.1084 248.5784 247.6014 246.1379 245.1402 241.4118 240.1094 239.1279 238.1119 239.7247 239.697 239.9275 239.6958 239.4418 239.6034 239.9854 238.9244 238.813 238.5842 238.6441 238.2462 238.5763 240.428 247.4383 247.5398 246.713 247.4335 246.6856 245.6891 244.1495 242.8487 242.8057 242.7036 242.6643 243.1999 245.4951 246.9574 247.1709 246.817 248.2347 250.5564 252.753 254.0696 254.763 253.5198 257.2507 258.0563 257.8677 255.3621 251.616 251.825 251.9511 244.5155 246.7884 251.2338 251.1375 250.7494 248.9752 246.4071 243.1228 240.3732 237.1916 235.3389 236.7333 236.5463 236.5328 239.0887 240.8179 242.4507 243.7582 246.2326 248.148 248.8402 249.2589 249.552 250.5869 251.3002 252.5278 253.4008 254.3055 254.6667 252.7115 251.467 248.4064 244.5031 240.8656 237.958 236.9588 239.6301 243.1018 245.1342 245.8277 245.7325 245.425 243.5188 243.3638 244.7224 244.9624 245.3488 244.5352 246.8131 247.3398 248.1278 248.6432 248.8783 249.2055 249.6504 249.5778 249.7834 250.144 249.9784 249.8544 249.8759 250.2098 249.9474 249.7829 249.7691 249.5554 250.8343 251.6693 252.6808 252.25 251.6652 252.082 252.6618 253.5468 254.478 255.2063 254.9392 253.7818 252.1741 249.9666 246.8503 242.5985 239.1749 237.334 238.388 240.8937 242.8559 244.6399 246.2366 247.6841 248.4771 249.787 250.3907 251.1864 253.0018 253.5522 253.719 253.3719 252.7636 253.0426 252.9842 253.5911 253.8963 254.4958 254.7563 254.623 254.8496 254.5661 253.6474 253.044 252.7352 252.4421 249.6257 246.8253 245.6493 244.3708 243.0612 245.8932 248.1574 249.3592 249.9115 251.3638 252.4852 253.3099 254.0748 254.3567 254.4955 253.7806 251.8445 250.59 250.6985 251.5052 252.7049 254.5674 255.3174 255.5528 256.438 257.3181 258.6566 260.3194 260.698 260.9131 260.6013 259.6475 258.377 257.2057 255.9459 255.4055 254.325 253.2545 253.0216 252.4346 251.6988 251.1498 250.6822 250.7343 251.0346 250.979 250.0192 249.377 249.2701 248.5094 247.9477 248.1514 247.3752 246.6068 246.1165 243.6298 243.921 243.8344 244.4192 244.4352 243.4711 242.7621 242.4188 242.4927 243.3971 242.2038 239.2273 235.8019 235.1023 235.1347 234.8455 234.4897 234.5278 229.5252 230.7788 231.7056 231.8091 236.1051 240.6127 241.1922 241.4743 240.9482 234.2001 236.5649 239.4449 240.9335 243.0016 245.2989 245.9213 247.3111 248.2017 248.6393 248.4526 248.8177 249.1429 249.2573 249.5115 249.6342 250.5547 251.3298 253.5367 256.347 255.9986 257.2863 258.2183 258.7509 259.7932 260.0699 259.9557 259.6341 256.9967 254.8945 252.204 250.1236 248.8744 247.4499 247.0791 246.5524 245.6099 243.5956 243.3501 241.843 241.3625 240.2601 239.7194 238.0349 236.6555 233.8227 232.392 232.0629 231.8778 231.9128 231.8914 231.8689 231.5018 231.5882 230.3625 -9999 +288.9315 289.0522 284.2197 278.1732 270.8403 266.2202 264.9429 264.5203 263.8877 263.7331 263.7425 263.8344 263.8937 264.1129 263.8588 261.4823 263.6008 263.9198 265.3238 270.2594 274.1248 276.7869 278.6501 280.7234 282.4725 283.9771 287.8977 288.2537 289.6093 290.4834 291.437 291.7625 290.6987 290.1111 290.0921 289.1374 292.2163 292.3119 292.6047 291.8437 290.3021 289.6396 289.7754 291.4574 295.3882 297.706 299.0654 300.419 301.9612 303.3063 304.8705 306.0487 306.4605 306.9662 306.8283 306.4733 306.0287 305.6264 305.1717 304.3593 303.7369 303.0981 301.4739 300.3657 299.4471 298.4952 297.5117 297.1261 296.4095 296.2015 296.7632 297.5862 298.5968 298.6181 297.9634 297.3224 296.3642 295.8465 295.678 295.4121 295.077 293.945 292.7149 291.9695 291.8023 291.5251 290.6712 290.1975 290.2913 290.0799 287.431 286.1921 284.9716 283.5949 281.4465 278.7312 276.469 274.6995 276.4331 279.6316 279.0919 278.4502 278.1458 276.8751 275.4946 273.5826 273.1396 273.8171 273.314 272.1271 269.0781 266.4365 266.897 264.6213 261.0302 260.3189 261.1 259.5489 258.4276 258.588 259.6209 263.4209 265.6414 268.4156 269.6054 269.218 266.7007 259.0681 255.2766 254.4247 254.6059 259.4223 264.3853 266.9467 267.4786 267.5287 269.1612 267.7596 262.0254 262.4217 270.0406 275.2589 273.3867 269.2449 267.6135 268.3366 272.2287 275.321 279.3006 281.6893 283.6963 283.0279 281.693 279.3555 272.9471 275.2305 275.7482 276.5311 276.8456 276.4672 275.2862 272.5842 266.6674 261.4724 260.6464 261.5685 262.2789 262.9433 262.8947 264.4129 262.2795 259.6022 256.6122 253.9185 248.6417 244.8236 244.1196 243.7454 243.0844 243.1877 243.5202 241.3858 243.3018 243.0545 242.9435 242.5838 242.4633 242.4782 242.256 243.062 245.3164 248.2122 251.5648 254.2704 256.0777 258.2439 255.9845 245.1055 239.9786 240.0759 238.2622 240.364 241.7422 241.9775 241.1375 240.1214 237.7798 239.7715 241.2888 240.8292 238.7854 237.6108 239.7201 239.6599 239.5758 239.5976 238.9916 238.9476 238.5872 238.5293 238.4877 238.3758 240.9881 245.3211 247.5723 246.0935 246.3207 246.3776 245.7502 245.0585 243.6201 241.9957 241.6507 243.0171 242.5173 243.3261 246.3061 247.3615 246.2566 246.2187 247.4068 249.3305 251.0013 252.6169 253.5583 252.5324 256.1126 257.2487 257.4129 255.3658 251.1854 249.836 250.8361 249.3865 241.6735 248.2726 248.6847 248.0711 245.9059 244.6899 242.5234 240.2569 237.0034 235.3766 236.511 236.6553 236.1936 237.333 239.6457 241.0015 242.8145 244.9492 246.8128 247.4727 248.3045 248.9127 249.8733 250.483 251.3103 252.3965 252.9741 253.2734 252.3529 250.8363 248.3002 244.8698 240.0594 236.824 237.0048 238.8445 242.1226 244.4262 245.1006 245.7596 244.8652 242.408 241.6535 243.5363 243.8933 244.2943 243.3183 245.9541 246.4133 246.8657 247.1602 247.315 247.8175 248.399 248.6404 248.7007 248.7484 248.6097 248.573 248.1561 248.5226 247.6276 248.1311 248.7736 248.6791 250.1557 251.3396 252.2238 252.5555 251.519 251.4821 251.5857 252.5959 253.3466 253.8248 253.2426 252.4093 251.5241 249.4553 247.0964 243.4033 239.5901 237.2901 238.057 240.7714 242.93 244.4124 245.5546 247.2963 248.3313 249.3092 250.3219 251.3195 253.0507 253.265 252.9821 252.5493 251.964 251.8545 251.9341 252.3773 252.8964 253.5414 253.6243 253.7288 253.5301 253.3183 252.4 251.939 252.7352 252.4421 249.6257 246.8253 245.6493 244.3708 243.0612 245.8932 248.1574 249.3592 249.9115 251.3638 252.4852 253.3099 254.0748 254.3567 254.4955 253.7806 251.8445 250.59 250.6985 251.5052 252.7049 254.5674 255.3174 255.5528 256.438 257.3181 258.6566 260.3194 260.698 260.9131 260.6013 259.6475 258.377 257.2057 255.9459 254.7868 253.9151 252.9751 252.4103 251.8356 251.4986 250.9986 250.4071 250.1585 249.6825 249.7809 248.9979 248.5728 247.9223 247.565 247.6605 246.8182 246.6106 246.5831 244.9371 242.4881 242.9491 243.5321 243.7748 244.0423 243.685 242.9062 242.5005 242.3384 242.9301 241.6575 238.9826 235.5919 235.0427 235.1326 234.6387 234.2376 233.8477 231.5032 231.6597 231.4959 231.7586 236.2896 241.8067 243.9339 244.351 245.5428 235.9543 235.8413 238.1429 241.3064 242.5505 244.4372 245.7656 246.8833 248.3426 248.8571 249.8649 250.5014 250.5894 250.5826 250.5845 250.4176 250.6661 251.388 253.3021 255.6571 256.1564 256.9901 256.9934 258.0097 258.2035 258.8117 258.6746 258.0777 256.1895 253.7934 252.3293 249.9993 249.0121 247.1635 246.4425 246.1407 245.5511 243.6751 242.6408 241.7198 240.7347 240.2406 239.0144 237.4668 235.7835 233.8924 232.2845 231.865 231.7882 231.8724 232.1666 232.1347 231.5691 230.2878 232.0899 -9999 +290.3739 288.7136 284.5325 278.6728 273.0524 267.2512 265.837 264.5063 264.0046 263.7331 263.7425 263.8344 263.8937 264.1129 263.8588 261.4823 263.6008 263.9198 265.3238 270.2594 274.1248 276.7869 278.6501 280.7234 282.4725 283.9771 287.8977 288.2537 289.6093 290.4834 291.437 291.7625 290.6987 290.1111 290.0921 289.1374 289.4441 289.0303 287.3295 286.1151 288.2609 292.513 294.7909 297.0797 299.251 300.1506 301.4786 302.2527 303.3131 304.2036 305.211 305.9205 306.3755 306.9776 307.013 306.6271 305.9416 305.2226 304.1874 304.1919 303.5565 302.4955 300.4134 299.4871 298.5612 297.8092 296.8835 295.6567 295.3884 295.0616 295.7891 296.9607 298.2271 297.9203 296.9905 295.9616 295.3584 294.6846 294.2929 293.7188 293.6064 292.7558 291.5037 290.5684 290.334 290.2436 290.1879 288.9773 289.3285 289.3799 286.4926 285.4272 284.4152 283.3157 281.9762 279.7079 277.2605 273.8444 275.3672 278.1039 277.2827 276.7029 276.7174 275.7532 274.5088 272.6714 270.438 272.1176 271.7542 269.7626 266.4277 263.5647 262.871 261.0432 260.7777 263.1111 266.3665 264.1601 263.563 261.9571 263.4497 265.1778 266.9755 268.9532 270.2461 269.7542 267.1847 259.9467 254.8953 255.0125 256.2336 262.6759 267.4427 270.6428 270.8441 271.7404 273.0819 272.8506 268.0024 263.1696 270.9904 277.2675 277.8753 276.5593 274.4324 275.5178 276.1857 276.5656 278.1257 281.4887 283.0716 283.6215 282.5425 280.8925 275.21 277.192 278.0284 278.417 278.1307 276.7524 274.9673 273.2259 269.894 263.7593 264.1909 264.7718 265.5618 266.2248 265.9948 267.1045 265.4556 263.6532 259.9773 258.0629 253.8767 249.0219 245.9684 244.5426 243.6886 242.8696 242.8784 242.6495 242.2685 242.7059 243.0055 241.9501 242.2408 242.2204 242.021 241.9348 241.6149 244.1651 247.6951 250.546 253.6461 256.7403 255.8318 245.2951 239.8665 240.1144 241.0823 240.1357 238.7623 237.7356 237.5833 241.0988 244.8405 247.3649 248.8847 244.0733 240.1972 239.2451 239.3587 238.2427 237.4727 238.8986 239.9888 239.2966 238.6256 238.3839 238.2915 237.946 241.5696 245.9132 246.1597 245.2438 246.2134 244.1917 245.2319 244.3647 243.3501 241.8418 240.8028 239.3441 242.1488 244.7469 246.3559 246.7931 245.6811 245.6554 245.9007 247.8739 250.0436 251.4856 252.6939 251.4223 254.8006 256.3308 256.9147 255.0101 251.5734 248.7041 247.8883 247.2151 240.1488 241.6267 242.5318 242.6261 240.3865 239.4491 237.2992 236.5153 235.5754 235.3355 235.6946 235.4404 235.9493 236.1476 238.5498 239.8292 241.6592 243.3962 244.7106 246.5213 247.538 248.3754 249.0391 249.3496 250.0451 251.0683 251.8681 252.1404 251.1058 249.4487 247.7657 243.4232 238.0988 236.6735 236.6582 239.1962 241.7704 242.9879 244.1815 244.4838 244.2737 242.4902 240.7343 242.1017 242.8307 242.5583 242.7523 245.2166 245.7833 246.1922 246.4196 246.7294 246.9615 247.3574 247.4889 247.9586 247.9127 247.4022 246.3348 245.8927 245.6315 245.7986 246.9293 247.9336 247.9246 249.378 250.5622 251.6165 252.1063 251.4688 250.1271 250.7251 251.4508 252.1029 253.8248 253.2426 252.4093 251.5241 249.4553 247.0964 243.4033 239.5901 237.2901 238.057 240.7714 242.93 244.4124 245.5546 247.2963 248.3313 249.3092 250.3219 251.3195 253.0507 253.265 252.9821 252.5493 251.964 251.8545 251.9341 252.3773 252.8964 253.5414 253.6243 253.7288 253.5301 253.3183 252.4 251.939 251.8889 251.5054 250.1091 247.6821 245.6481 244.1117 242.07 244.6594 248.1382 248.5213 249.0981 250.9018 251.5409 252.5137 253.0623 253.5154 252.8551 251.4188 250.5634 249.1073 249.7375 251.0544 252.4337 253.6494 253.6227 255.3129 256.3759 257.4325 259.1424 261.263 261.8542 261.8304 260.9789 259.8632 258.4491 256.4365 254.2741 253.2669 252.8565 252.12 252.2666 251.9472 251.7257 251.3295 250.8275 250.4839 250.0773 249.6138 247.8459 248.1294 246.9399 246.9619 246.2843 246.1237 246.328 245.5323 244.5934 241.1617 241.7629 242.5056 243.0357 243.0984 242.9201 242.3414 242.0719 241.5792 241.0667 240.6944 237.6904 235.5781 235.0909 234.9846 234.4342 233.9939 232.8451 232.1911 231.6334 231.5826 232.1048 235.693 241.3468 245.2912 247.4159 248.252 243.298 235.8667 237.9282 239.4751 242.7891 245.2955 246.8248 247.7214 248.1367 249.2915 250.4871 251.8985 252.2645 252.6052 251.892 251.4388 251.4159 251.7226 253.1115 254.8836 255.7397 255.7389 255.8446 255.5443 255.8917 255.8711 256.0638 255.9375 255.6841 254.2544 251.6463 249.9049 249.067 246.8183 245.936 244.7019 244.0709 242.4435 241.9107 240.8917 240.4201 238.8512 238.0192 237.4411 234.4938 233.1615 232.2319 231.9564 231.5912 231.4998 231.8157 230.7345 230.2551 232.2134 232.0371 -9999 +290.3739 288.7136 284.5325 278.6728 273.0524 267.2512 265.837 264.5063 264.0046 263.8435 263.6887 263.5932 263.6376 263.6695 263.7452 263.9793 263.7955 263.5088 264.0717 268.8578 271.517 275.1022 278.6929 281.2904 284.4016 286.3986 289.5826 289.5334 288.91 289.2556 289.2462 289.863 288.7635 287.6591 286.8049 285.431 285.6673 284.1372 286.9577 291.8105 294.4209 296.2116 297.7466 299.129 301.4236 301.5984 302.8435 303.2199 303.9026 304.5078 305.1977 305.9677 306.1189 306.4565 306.6274 305.8278 304.7599 304.4348 303.1489 303.1222 303.1145 302.8073 301.1186 300.5678 299.2795 297.9805 296.1021 294.57 294.3305 294.0707 294.6617 297.4475 297.4784 296.9164 296.0343 295.0241 294.3752 293.4456 292.8895 291.6405 291.1012 291.4558 290.2531 288.8783 288.564 288.5954 288.7902 288.1204 288.325 288.4338 285.5751 284.1795 282.9104 281.6141 281.0926 279.4319 276.958 273.3829 273.6726 276.4872 275.8575 275.5773 275.5699 274.5308 272.8432 271.5855 270.0694 269.1917 269.7409 267.5854 263.297 261.6406 261.4785 261.137 261.268 267.0944 270.6474 269.2822 267.4793 265.1744 266.6537 266.9536 268.2375 270.1163 270.9859 269.5642 263.3469 259.558 255.056 254.2669 259.4255 264.4298 268.8882 272.4046 273.441 274.5503 276.6276 276.2275 273.0575 263.5667 271.4104 277.7054 280.4767 282.031 281.6412 280.4388 280.3909 280.2172 281.3408 281.8022 282.8526 284.3434 283.4942 282.2689 277.6528 278.6937 280.2383 280.1035 279.0776 277.5449 275.4595 273.0997 270.2185 267.2062 267.8694 267.9991 268.3429 268.6942 268.5613 269.1935 268.8116 267.163 262.3779 260.204 255.9923 251.5823 246.9554 244.702 245.1229 245.5118 247.34 245.3358 242.5785 242.2133 242.2706 242.6343 242.1604 241.8888 242.2066 241.743 241.8744 241.6043 244.4126 247.6287 250.8157 254.9707 255.4668 249.1863 242.1361 240.0691 242.2189 245.7302 246.6453 244.59 242.6037 247.8584 252.2303 253.154 254.1387 249.9406 242.7066 239.7456 238.9818 238.9528 239.1127 239.5562 238.4182 236.7625 239.4041 238.4508 238.2133 238.1849 237.9265 241.4814 243.612 243.382 242.0493 241.8948 243.8793 243.9534 242.377 241.2605 239.3256 239.2728 241.9773 244.0524 246.2039 246.2102 244.2833 243.9307 245.0757 247.3751 249.4723 250.6621 251.9655 250.9581 253.2259 254.804 255.772 255.0152 252.433 249.7786 245.6633 243.6409 237.365 235.7916 235.7497 235.8915 235.6415 235.3893 235.3298 235.3311 235.2849 235.4132 235.4909 235.354 236.2133 236.8724 237.2101 238.1366 240.3844 242.0969 243.1487 245.1686 246.5218 247.6864 247.9052 248.0311 248.2839 249.7906 250.4324 251.0781 249.4593 248.1151 246.1088 243.1332 237.8558 236.569 236.3351 237.9734 240.4071 242.2645 242.4884 243.2129 242.6355 242.4902 240.7343 242.1017 242.8307 242.5583 242.7523 245.2166 245.7833 246.1922 246.4196 246.7294 246.9615 247.3574 247.4889 247.9586 247.9127 247.4022 246.3348 245.8927 245.6315 245.7986 246.9293 247.9336 247.9246 249.378 250.5622 251.6165 252.1063 251.4688 250.1271 250.7251 251.4508 252.1029 251.9293 251.4659 251.2597 250.6998 248.9006 246.8 242.3728 239.4684 237.6505 237.18 240.2711 243.9382 245.9573 247.2606 248.1816 248.9328 249.8102 250.6284 252.1158 252.4156 252.7289 251.861 251.1902 250.9909 250.8823 251.0812 251.1862 251.4312 252.3018 252.5584 252.9275 251.8198 251.6187 250.9207 250.7691 250.6682 250.5669 250.2744 249.1966 246.0006 243.9566 242.3739 245.815 247.3003 247.9752 248.7586 250.8422 251.3806 252.1188 252.6897 252.907 251.4623 250.205 249.8353 247.8649 250.0541 251.6061 252.3999 251.8338 253.7416 255.0502 256.721 258.1266 259.1617 262.6024 263.1869 262.9509 261.8765 260.2604 258.7126 256.0344 253.7295 252.7645 251.6188 250.8566 250.6464 250.8525 251.2241 251.094 250.582 250.2139 250.0927 250.3574 247.9832 247.5562 246.5936 245.5041 245.6797 245.7905 245.3757 244.642 243.9418 240.5018 240.0487 240.8729 241.5354 241.3454 241.3928 241.4059 240.4277 240.091 239.522 238.5033 236.4286 234.8933 234.5441 234.2444 234.1069 233.7132 230.356 231.9156 231.4539 231.5323 232.4254 235.3061 241.15 245.8909 249.009 250.2147 245.6993 242.1584 236.7974 239.3937 242.6131 245.2716 246.6332 248.2314 249.2707 249.8248 251.8386 252.2554 253.9013 254.055 253.8043 253.0249 252.5134 252.4724 252.7126 255.028 254.6949 254.6637 254.7212 255.3953 256.0835 256.0778 255.9914 255.8568 255.0033 252.7521 251.4319 249.9131 248.815 246.3834 245.5098 244.6439 244.0706 242.2851 241.5723 240.8144 239.7574 239.0208 237.6747 236.1641 233.9707 232.7719 231.7487 231.652 231.6362 231.463 231.6222 230.1785 231.9505 231.6286 231.4751 -9999 +289.2706 286.5172 282.2253 277.0778 272.4975 266.6899 266.1154 269.1138 266.0036 264.5307 265.1929 267.0546 266.2034 264.348 263.351 263.5695 263.8765 263.6531 263.5714 266.4561 270.2924 274.2808 279.4159 283.1067 285.2452 287.2084 289.2613 288.2945 286.7279 286.2132 287.0747 287.2478 286.3735 284.5543 283.2031 281.4567 282.9702 286.8244 290.8631 293.78 295.8628 297.6005 299.156 300.3834 302.3773 302.699 302.8301 303.0964 303.4737 304.0157 304.771 305.6519 306.1374 305.6405 305.8902 305.8854 304.6504 303.1336 301.9087 302.1166 302.4229 302.2946 300.9953 299.6356 298.638 297.6973 297.0352 295.4955 293.6505 293.0996 293.4057 296.1088 296.3362 295.7286 294.821 294.3772 293.206 292.4758 291.5473 290.3756 289.5765 289.9352 288.7294 287.4266 285.8739 286.726 287.3974 286.2948 287.4318 287.3618 284.5274 282.9808 281.0237 279.7426 279.127 278.3405 276.9849 274.3615 271.9677 275.4512 274.4941 273.4084 274.1115 272.7104 271.3507 270.6209 268.9351 267.1365 266.7361 264.0218 261.6698 260.5065 261.1189 263.6103 268.7477 272.2974 274.8964 273.4258 271.3908 267.6996 270.0623 268.9649 269.7947 271.7531 271.7046 269.4829 262.9911 258.1552 255.3831 255.6758 260.9532 265.1016 267.9218 271.4951 273.6401 275.9185 279.1783 279.1121 277.4435 269.2142 271.5519 278.7101 281.3271 284.1615 286.0688 284.5347 284.7305 284.2497 284.3962 284.7818 284.974 285.0706 284.8222 283.3036 278.6559 279.9731 281.8026 281.4403 280.0642 278.0129 276.1402 272.9584 270.8124 271.6308 270.9209 271.0303 270.9763 270.8668 270.9374 271.1804 271.454 269.9801 263.9825 260.3455 256.8866 252.7443 247.1916 245.8507 247.0994 249.7649 252.331 252.8296 243.3448 242.8447 240.5798 242.2631 242.2621 242.2185 241.7452 241.8407 241.7968 241.9095 241.2235 242.5178 247.0124 251.8228 253.9201 251.6266 247.6257 242.6881 239.8447 246.369 251.2725 251.3022 249.652 249.0736 254.2829 256.7672 257.6199 254.5699 248.228 242.273 239.5843 238.8283 238.8363 239.1161 238.979 239.1792 239.5068 238.1771 236.7375 238.5996 238.4184 238.2507 240.8515 239.6739 239.3423 238.5115 239.771 241.6982 241.4662 238.746 238.0774 238.7207 240.4729 242.6463 244.1813 244.0434 243.0242 243.2515 244.9448 247.5033 249.2944 250.3447 251.0838 250.1696 251.4433 252.6036 253.8391 253.383 250.6254 247.6262 243.186 237.4706 235.4081 235.4635 235.3545 235.2996 235.2577 235.3205 235.5451 235.3392 235.2849 235.4132 235.4909 235.354 236.2133 236.8724 237.2101 238.1366 240.3844 242.0969 243.1487 245.1686 246.5218 247.6864 247.9052 248.0311 248.2839 249.7906 250.4324 251.0781 249.4593 248.1151 246.1088 243.1332 237.8558 236.569 236.3351 237.9734 240.4071 242.2645 242.4884 243.2129 242.6355 241.875 240.0988 240.6871 240.708 240.8908 242.7181 244.7214 244.9621 245.1067 245.3499 245.988 246.334 246.559 246.4844 246.8001 246.6566 245.7881 244.7179 244.4174 244.6145 245.1092 246.3754 247.1457 247.3558 248.6811 249.4065 250.242 250.8827 250.7163 249.654 249.5703 250.3715 250.7953 250.8935 250.3943 250.1964 249.398 248.0112 246.1917 243.2927 240.3509 237.7285 237.1789 241.3434 245.0392 246.7006 247.9074 249.4185 250.205 250.6037 251.0505 251.858 252.1019 251.3852 250.7539 250.3889 250.0129 249.9835 250.1509 249.9932 250.2368 251.2244 251.6456 251.6896 251.0535 249.941 249.8068 249.7559 249.6376 249.8694 249.7433 248.5472 245.659 243.4594 242.3052 244.0152 245.1357 246.2173 247.7041 250.1387 250.3822 250.7324 251.5428 251.8994 250.4102 248.7446 247.2522 246.4361 249.7882 251.2426 251.0295 252.7211 254.6015 255.2955 257.3909 258.4465 260.3032 263.1866 264.231 264.334 263.0513 261.3896 259.4854 257.2461 254.8942 253.5845 251.9141 250.2115 249.8715 249.7778 250.1863 250.4673 250.4468 249.9683 249.5066 249.1719 248.3846 247.4889 246.561 245.2247 244.8015 244.1903 244.1481 244.0361 243.626 241.5074 240.2918 239.4255 239.6568 239.8578 239.6292 239.8432 238.9446 238.6774 237.7827 236.6167 235.4757 234.4701 234.1823 233.8483 233.9221 233.4087 229.455 231.8204 231.2633 231.8584 232.354 236.3142 242.7343 247.5554 250.1479 251.1996 247.4845 244.2798 238.3691 239.0756 243.4026 245.8332 247.3187 248.557 249.598 251.857 252.0895 253.5902 254.7316 255.4532 255.0891 254.9481 254.3663 253.9218 253.4855 255.2419 253.7523 253.7486 253.511 252.9714 253.5695 254.5139 255.4505 255.9081 253.3823 252.2266 250.8809 249.774 248.1517 246.1574 244.4918 243.9831 243.5749 242.0731 240.7793 240.1275 239.0202 238.3546 237.7168 235.4104 233.7619 232.8179 231.7488 231.4954 231.4277 232.0855 230.4438 230.3864 231.4664 231.1583 231.1716 -9999 +287.2439 283.6927 279.4314 273.2588 267.0377 267.4661 271.1984 271.4634 271.1684 274.1371 275.2779 275.6247 274.3909 272.1841 264.041 263.4135 261.363 263.7663 263.4088 264.4288 268.3043 273.2342 278.121 281.4134 282.4757 284.7829 287.5181 285.8033 283.7235 283.5143 284.1447 284.1287 282.8844 280.7181 278.3553 283.7231 287.1584 289.729 291.8644 294.28 296.2558 298.1045 299.7202 300.9088 301.6446 301.6164 301.1819 301.4539 302.5198 303.2294 304.0619 304.9777 305.6443 305.6912 305.5636 305.4178 304.6365 303.1939 301.6506 300.6513 300.7614 301.0932 300.1917 299.4859 298.5186 297.4147 296.3152 295.209 293.2968 291.2745 292.0251 294.2906 294.5862 294.1519 293.6625 292.887 292.3568 291.6512 290.7392 289.5807 288.0953 288.8922 288.0123 286.1221 284.9177 285.3467 285.5718 285.1339 286.5828 286.1949 283.4444 282.1341 280.616 278.7654 277.4229 277.0665 275.6526 274.5966 271.2562 273.5084 272.919 271.6418 271.7632 269.5412 268.4525 267.9694 267.2414 266.2767 263.4566 262.0511 260.7789 261.6413 264.4494 268.0067 272.9312 276.5106 278.3625 276.7317 274.1401 270.6768 271.2029 271.8239 272.1125 272.8783 271.3967 268.9048 262.9457 257.7913 255.4706 257.0468 261.9977 266.3166 268.8244 271.4488 273.9741 276.7791 280.5356 281.9017 280.9084 274.7352 271.6746 276.2183 280.5823 282.7276 285.4969 286.0764 286.7084 287.0443 287.1297 287.2243 287.2748 286.0876 285.8861 284.395 280.5296 283.0503 283.294 282.7382 280.9946 278.7593 276.7644 274.3634 273.9815 274.2019 273.3106 273.8127 273.6714 273.2976 272.9796 273.0051 272.9966 270.6094 263.8564 260.9123 257.54 250.6901 246.466 248.4295 250.7627 251.0864 254.2435 254.1271 244.1647 242.4721 242.2815 241.1496 240.9882 241.8363 242.1149 241.9294 241.8509 241.6067 241.3657 241.2153 241.6197 248.3644 252.4685 248.3467 243.2171 242.0373 238.419 243.0853 250.4855 254.3772 254.8582 253.61 255.5574 257.8406 259.889 258.6262 251.874 245.6179 241.3895 239.0275 238.9558 238.8282 238.8951 238.9736 239.0948 239.0116 238.9012 239.1329 238.194 236.8033 237.7798 239.1563 238.7718 238.214 238.199 240.2503 241.4662 238.746 238.0774 238.7207 240.4729 242.6463 244.1813 244.0434 243.0242 243.2515 244.9448 247.5033 249.2944 250.3447 251.0838 250.1696 251.4433 252.6036 253.8391 253.383 250.6254 247.6262 243.186 237.4706 235.4081 235.4635 235.3545 235.2996 235.2577 235.3205 235.5451 235.3392 235.3181 235.4428 235.7409 235.4839 236.4194 236.3715 236.0906 235.731 236.5435 239.3508 239.8558 244.1652 245.6928 246.7373 247.2168 246.7234 247.0467 248.0537 248.8087 248.4515 247.2164 246.7188 244.6201 243.5002 239.5761 236.2864 236.1917 237.6086 239.4133 240.434 241.9211 241.9711 241.1435 238.8295 239.3184 239.6946 240.3163 241.9174 242.7293 244.3648 244.1807 244.3226 245.2505 245.543 245.7286 245.3443 244.5926 244.9681 245.4889 244.9098 243.8037 243.703 243.4892 244.6632 246.0996 246.7273 246.7054 247.8137 248.5047 249.1464 249.6481 249.6845 248.9864 248.6774 249.3628 249.6287 249.9749 249.3764 248.8608 248.136 247.0775 245.1812 242.5217 239.3294 236.7982 237.366 241.4036 244.4821 246.022 248.6251 249.8564 250.7846 251.2344 251.5285 251.4819 250.9987 250.1667 249.932 249.7055 249.3983 249.0517 249.1586 249.4241 249.4107 250.3568 250.6926 250.5225 250.0905 249.3352 249.0213 248.9385 248.9886 249.529 248.1228 246.4483 244.7721 242.2873 240.3794 243.1398 243.6254 245.7955 247.4395 249.8449 249.8984 249.9505 250.7917 251.103 249.0893 247.6465 245.4578 246.4572 250.9166 250.3987 252.0228 254.3152 255.8349 256.8422 257.6378 258.8724 260.4671 262.6263 264.3645 264.9663 264.2424 262.619 260.88 258.9557 257.1753 255.7714 253.1067 250.7141 249.6195 249.2743 249.3325 249.7242 249.939 249.676 248.9924 248.6636 247.8128 247.1277 245.6697 244.5123 244.3053 243.6566 243.4868 243.2793 243.6535 242.0245 241.5113 240.6397 238.9906 238.7153 237.4576 238.6692 237.5707 237.0894 236.2737 235.547 234.7095 234.1529 233.723 233.6551 233.6676 232.8661 229.4991 231.6144 231.4355 231.7731 232.7403 236.8701 243.2321 248.2191 250.9855 251.7846 249.1354 246.885 242.9786 238.0403 242.9508 244.9622 246.752 248.1737 249.1382 251.5966 252.8402 253.4599 254.4748 255.5615 256.139 256.5011 256.5652 256.3813 255.1289 254.6212 253.2527 252.5142 252.11 251.2556 250.9787 251.5533 252.2419 252.3613 251.7874 250.4271 249.5293 248.9042 247.5505 246.0245 244.3298 242.8294 242.3129 240.5363 240.4821 239.2855 238.1033 237.817 236.4605 235.4316 234.3112 233.1145 232.0447 232.3852 231.7449 232.031 230.1337 231.5865 231.4429 231.2175 231.621 -9999 +284.831 280.2962 275.3349 268.5251 269.7114 272.943 276.8185 273.8214 276.6534 280.1674 282.7206 282.5949 281.6909 276.8043 269.0833 263.437 262.7807 263.441 263.3488 263.9485 267.7666 272.1004 275.3161 278.4254 280.9606 283.4427 284.9531 283.135 280.5258 280.6863 280.551 279.4216 277.2501 277.0532 278.5917 285.602 288.6085 290.8575 292.8847 294.779 296.9873 298.6647 299.6475 299.8846 300.1779 299.6692 299.7631 300.415 301.379 302.8206 303.8324 304.5186 304.3756 304.9999 305.1413 304.7465 303.579 302.5299 301.0265 299.4142 299.0039 299.4027 299.8013 299.423 298.7537 297.2483 295.8054 294.7114 293.1658 290.222 289.8229 291.798 292.5258 292.3898 291.9271 291.7657 291.7178 291.1542 290.0356 288.9688 287.2921 287.7959 287.8117 286.1897 284.554 283.2189 283.2287 284.8656 285.9857 285.4809 282.1778 280.8352 279.0608 276.9236 275.7451 275.7963 274.9993 273.5895 271.0244 271.062 269.522 267.8795 266.6125 265.7881 265.433 265.2523 264.8538 263.8969 262.3106 261.1654 262.0559 266.5969 269.8176 272.3988 275.3212 277.9444 280.1009 277.7959 275.2638 273.9095 273.1931 274.4472 274.058 272.4161 270.5932 268.4333 262.8887 257.3553 255.5453 258.1972 262.7498 265.4656 268.1035 270.8787 273.774 276.4842 280.5346 283.2209 283.4005 280.7433 276.4557 274.9476 276.054 279.8202 282.2066 285.8183 288.386 288.8499 289.0054 289.0762 288.8521 287.2119 286.5559 284.4348 282.2297 283.9937 284.6033 284.1268 281.9799 279.7361 278.4659 276.1845 277.2084 277.3267 275.5798 275.5842 275.7093 275.2478 274.2476 273.0213 271.4996 269.093 261.9745 258.5623 255.0702 248.4844 249.3515 252.3467 252.9111 252.9444 255.134 256.7453 249.2038 241.8943 242.3917 242.2461 242.5102 241.1222 240.2899 241.7533 242.0779 241.6095 241.3731 241.1911 241.1076 245.3516 249.7196 242.4707 240.741 242.0373 238.419 243.0853 250.4855 254.3772 254.8582 253.61 255.5574 257.8406 259.889 258.6262 251.874 245.6179 241.3895 239.0275 238.9558 238.8282 238.8951 238.9736 239.0948 239.0116 238.9012 239.1329 238.194 236.8033 237.7798 239.1563 238.7718 238.214 238.199 240.2503 238.4423 237.5982 237.8235 238.5817 239.1108 241.3972 241.8838 241.3954 242.6863 244.2968 245.7207 247.0991 248.6642 249.7536 249.7878 248.9751 250.4481 249.9023 251.3313 250.6268 248.1278 243.7024 238.1549 235.6898 235.5303 235.4111 235.3648 235.2265 235.3225 235.4035 235.3671 235.5679 235.3997 235.3411 235.7064 236.1746 235.6062 236.2261 235.9452 235.8266 235.8068 236.0422 239.2546 243.1338 244.4436 245.7306 246.2054 244.8625 245.08 246.2694 246.1482 245.5933 244.451 244.3403 243.2558 241.3104 238.746 236.1763 236.0343 236.5757 237.8712 237.9434 239.3484 239.4826 237.2814 237.6859 240.4887 241.7213 241.6352 242.4446 242.8781 243.7684 243.6145 243.5918 244.1503 245.0382 244.4348 243.7459 243.0657 243.379 244.5587 244.3554 243.2707 243.1325 242.8851 243.978 245.2798 245.861 245.7413 246.9894 247.8844 248.4314 248.6948 248.8027 248.2859 247.9756 248.4789 249.0224 249.3155 248.4924 247.6294 246.9421 245.2182 241.9994 239.9236 238.2827 236.1568 236.9236 240.6752 242.9231 246.5257 248.2538 249.5565 250.6178 251.1344 251.4177 250.6866 249.9325 249.2881 249.5268 249.4882 248.9823 248.3155 248.2496 248.6801 248.8225 249.8015 249.532 248.4282 248.4644 248.6615 248.0789 248.2602 248.4366 248.9348 245.9089 243.6867 243.2086 242.8242 240.1327 242.3177 243.5268 245.8479 247.9995 249.7721 249.5503 249.0262 249.3485 249.4361 247.7838 246.0621 244.5315 248.1051 247.8683 250.7581 253.4004 255.398 257.0421 257.3178 258.1564 259.2466 260.9854 263.0515 263.9681 264.8644 264.9573 263.9129 262.2103 260.1845 258.857 257.6494 255.0639 252.5432 250.318 249.0918 248.7019 248.6142 248.8379 249.0323 248.8383 248.2801 247.4425 246.7083 245.1267 244.1727 243.6994 243.0051 242.6411 242.619 242.2584 241.3867 240.9118 240.4839 239.2439 238.334 237.2776 236.3988 235.9603 234.9787 234.1537 233.5667 233.2045 232.7751 232.547 233.1683 233.3667 232.6011 229.4959 231.5458 231.8343 231.7019 232.2113 235.9018 242.0713 247.0592 249.8749 251.5792 251.2897 249.5335 246.6613 240.1332 239.0726 241.8411 244.3714 247.1134 248.2127 250.6466 251.6229 252.617 253.7647 254.1045 255.2524 256.5122 257.2798 256.9434 255.8774 253.8932 252.7624 252.082 251.359 249.8457 249.1478 249.3573 250.0519 250.2582 249.4159 249.0188 247.8096 246.9609 246.3248 245.4735 244.2978 242.4732 240.8154 239.8144 239.2968 238.7502 237.8342 236.4218 235.7023 235.2345 234.4172 233.8428 233.0867 232.259 231.8579 230.8589 230.949 231.1363 231.3042 231.4516 231.9552 -9999 +281.5323 275.764 270.4866 272.1919 276.1128 278.7568 279.206 278.1595 280.9549 283.4665 286.1069 288.186 286.5282 281.2438 274.5138 266.6133 263.3076 262.848 263.2615 263.7852 265.359 269.4844 274.4473 277.9922 280.7864 280.8376 281.3528 280.1187 277.9086 276.611 274.9123 275.0397 276.9428 278.7621 281.2136 286.8665 288.9551 291.1033 292.8312 294.9946 297.3505 298.8268 298.5536 298.3871 298.349 297.6208 298.4691 299.1894 300.4704 302.238 303.063 303.3863 303.6046 304.65 304.7985 303.6821 302.6325 301.3474 300.0182 298.5634 297.7901 297.6812 298.9983 298.8583 298.4892 297.4911 296.0543 293.9929 291.919 289.4631 288.576 289.3484 290.4707 290.6506 290.7457 290.4117 290.1917 290.2278 289.1606 288.1783 285.357 286.2949 286.5434 285.7038 284.0669 282.6205 282.1438 283.2619 284.6029 284.7723 282.1147 280.0333 277.8541 276.1125 274.3161 273.3711 273.028 271.1959 269.7529 266.6474 265.5959 264.8774 265.0504 264.6125 264.2688 263.9308 263.567 263.2169 262.4764 262.5248 264.8886 270.1251 273.1645 274.3115 277.8423 279.5349 281.3216 280.8799 279.2407 276.8974 275.6282 275.8396 274.7498 272.7999 270.6548 268.2706 262.2905 258.8407 255.714 257.3762 262.214 266.6989 270.8234 275.2394 278.8699 283.3909 284.219 284.3082 285.9884 286.6228 284.3421 279.609 275.7304 275.8689 278.8285 285.1007 287.9663 290.0097 290.5417 290.6701 290.1187 288.3958 287.4771 286.3419 284.2163 285.2763 285.4911 284.9749 283.0414 281.2682 280.2378 278.6515 280.0898 279.8749 277.7488 277.3906 276.763 275.5161 273.8338 273.0213 271.4996 269.093 261.9745 258.5623 255.0702 248.4844 249.3515 252.3467 252.9111 252.9444 255.134 256.7453 249.2038 241.8943 242.3917 242.2461 242.5102 241.1222 240.2899 241.7533 242.0779 241.6095 241.3731 241.1911 241.1076 245.3516 249.7196 242.4707 240.741 240.6382 238.6651 243.0765 248.5715 252.669 255.3074 256.9678 257.6389 259.7169 261.3459 260.389 254.3466 248.806 244.7407 240.0255 239.3373 238.9408 238.9647 238.7564 238.6609 238.5081 238.6202 238.7287 238.6965 238.6671 239.4881 239.1035 238.9874 237.8201 238.7164 238.2823 237.8023 237.7133 237.7168 238.2034 239.0494 240.1333 240.6387 240.4527 242.1917 243.4659 244.1051 245.9489 247.8064 248.8591 248.9573 248.5184 249.6386 247.5024 248.2319 247.9955 245.7873 237.8821 235.4886 235.6962 235.6319 235.4379 235.4807 235.5257 235.4113 235.2305 235.404 235.466 235.356 235.6764 235.6467 235.8496 234.6892 236.2615 235.7771 235.6949 235.8443 235.6004 235.9374 240.9622 243.1929 244.7612 245.0709 243.8582 242.7986 243.1676 242.4585 241.7012 241.2113 240.5255 240.6484 240.2866 238.1162 235.8078 235.5532 235.4968 235.2133 235.3082 236.0056 236.4566 238.2968 241.5684 242.827 243.093 243.2206 244.1535 243.7673 243.0646 243.0055 242.4859 243.3628 244.1609 243.7382 243.1336 242.2224 242.4546 243.5418 243.3438 242.9855 242.5001 242.6405 243.3518 244.3385 244.9593 244.8257 246.2119 247.1795 247.4782 247.5136 247.777 247.5458 247.4057 247.801 248.5249 248.901 248.0046 246.9264 245.0414 242.4233 240.2605 238.5577 237.2814 236.0242 236.0111 238.5681 243.5752 245.8818 247.8814 249.3983 250.4572 250.975 250.9923 249.6434 248.7638 248.5995 249.1399 248.9898 248.288 247.6952 247.4263 247.6221 247.8119 248.8114 248.2062 247.4311 247.2524 247.3521 247.2665 247.4495 247.9703 248.0434 243.6355 242.0364 242.1832 241.8573 239.6843 241.3147 244.3219 246.9636 248.5645 249.7303 249.1936 248.1088 248.0561 248.1433 246.6088 244.3043 246.121 249.0443 249.7502 251.6038 253.5023 255.391 257.2037 257.7674 258.4565 259.9704 261.2456 263.013 263.7482 264.1031 264.1363 263.8756 262.9161 261.385 260.3656 259.2182 256.5389 254.5667 252.1501 250.6155 249.0076 248.1522 248.1221 248.3118 248.4109 247.934 247.3225 246.9654 245.7126 244.7214 244.0099 243.2477 242.5345 241.8354 241.0882 240.2234 239.6955 239.071 237.9044 237.7532 238.097 238.554 237.6361 236.5901 235.8719 235.5331 234.1529 233.4144 231.8391 231.3781 232.5661 232.7049 229.4901 231.5307 231.5655 231.6226 232.4197 236.0767 241.0172 244.4479 246.1573 248.5214 250.8719 251.1879 249.7456 247.7286 243.7983 240.2254 242.479 244.8697 246.3967 248.7887 249.5198 250.3177 251.8543 253.893 254.2696 255.3301 256.4196 256.5751 256.3631 254.3935 253.5719 252.0916 251.0461 249.9507 249.0244 247.8327 247.3 246.6413 246.8157 247.1975 246.5155 245.6378 245.2972 244.5284 243.9054 242.1692 239.9104 239.2343 238.9477 238.3379 237.6448 235.9256 235.001 234.5419 233.9494 233.7282 232.1764 231.5103 231.8609 230.3557 231.3531 231.4146 231.5333 231.7885 232.338 -9999 +278.1988 272.158 275.1579 279.7748 282.2625 282.0456 282.2212 280.8868 284.123 285.6246 287.5174 289.1646 288.9784 284.8146 278.1686 272.4082 263.429 261.3614 263.4771 262.9851 263.1618 265.0091 271.6392 275.8982 277.9632 276.0206 276.377 275.7522 272.6122 273.1112 275.4974 279.1845 281.4566 282.54 283.9758 287.521 289.5852 291.9988 293.6407 295.4552 296.7854 297.5732 297.0724 296.5078 296.0528 295.6021 296.7717 298.3276 299.2574 300.5199 301.2164 301.4431 302.1832 304.4685 303.7903 302.7283 301.4226 299.9379 299.0586 297.4102 295.486 296.4535 297.7933 297.7106 297.6939 297.2759 296.3018 294.492 291.5428 288.4941 287.4631 286.7993 288.4511 288.8698 289.2778 289.3172 288.4799 288.4152 288.0157 287.0863 284.0194 284.6858 284.9472 284.7694 283.2585 282.2013 281.7138 281.4234 282.981 283.3263 281.8143 280.0373 277.8231 275.4429 273.2585 271.326 270.4478 268.5097 267.0923 265.9771 268.437 266.6156 265.486 265.9548 264.7997 263.7693 263.4286 263.3119 263.1738 264.1366 268.1905 272.4662 275.568 277.1163 279.2622 281.545 282.1002 282.1588 281.354 279.5364 277.9486 277.0865 275.1623 273.0243 271.0831 268.2816 260.0149 257.9385 256.9723 258.0182 264.3961 268.4059 272.7204 277.1353 280.7807 286.4168 287.8491 287.053 288.0306 289.37 284.3421 279.609 275.7304 275.8689 278.8285 285.1007 287.9663 290.0097 290.5417 290.6701 290.1187 288.3958 287.4771 286.3419 284.2163 285.2763 285.4911 284.9749 283.0414 281.2682 280.2378 278.6515 280.0898 279.8749 277.7488 277.3906 276.763 275.5161 273.8338 271.1942 268.9048 266.6748 260.054 254.9495 250.9478 249.7856 254.6838 256.1419 256.6854 256.4489 256.2259 258.8818 256.5285 247.6249 243.587 241.8873 242.0843 242.421 242.4417 240.8715 241.7454 241.4519 241.4026 241.123 241.0346 242.3867 246.6105 241.4697 241.1844 241.318 238.3798 241.6078 245.7147 250.0966 254.1961 257.7596 259.7861 260.9328 263.1241 260.4538 255.2625 251.0571 247.4896 243.6821 240.6273 240.4235 239.7766 238.9873 238.6524 238.4977 238.4194 238.3896 238.3938 238.6479 240.8305 238.4269 238.3911 238.3482 238.8432 236.0639 237.2056 237.7671 237.558 237.8266 238.5478 238.1927 238.4598 239.268 241.124 242.425 243.801 244.8865 247.0822 248.4925 248.3316 246.0639 246.6958 248.3097 245.0213 245.05 242.3248 236.0155 235.9367 235.8804 235.8325 235.5688 235.63 235.612 235.5262 235.4886 235.5941 235.3746 235.483 235.6246 235.6474 235.6747 234.829 236.2975 235.7775 235.5597 235.5449 235.5768 235.5404 236.0354 240.2279 243.7141 243.6873 241.9563 239.8368 238.873 238.1439 237.5882 236.7999 236.5662 237.241 239.4075 237.9851 236.7899 235.3855 235.4102 235.1108 234.9458 235.4985 236.349 238.4499 239.9067 240.3257 240.8008 241.8928 242.845 243.1724 241.8706 242.3349 241.8033 242.594 243.588 243.2543 242.7342 241.6458 242.144 242.4295 242.1978 242.2062 242.027 242.6116 243.1881 243.9743 244.2449 243.9107 245.6558 246.3673 246.6346 246.5793 246.7927 246.8883 246.7514 246.8525 247.5744 248.2367 247.2652 246.0355 244.5788 242.3392 239.2738 237.2555 236.4437 235.6152 236.295 239.2968 243.4415 245.838 247.8023 249.4269 250.3364 250.5747 250.1053 248.3429 247.8143 248.0063 248.3799 247.8927 247.4157 246.8624 246.6717 246.9237 246.8206 247.6889 247.2753 246.8633 246.4014 245.9921 245.8241 246.1663 247.0821 246.9759 241.5643 240.994 240.7137 240.6403 239.1952 241.9844 245.6477 247.5992 249.0909 249.117 248.2725 247.7138 247.0419 246.4457 244.2091 243.5106 246.2035 248.0959 249.9802 251.8206 253.5181 255.3093 257.0997 257.6056 258.1934 259.544 260.9735 262.6783 262.8896 263.2523 263.326 263.1695 262.4633 261.5328 260.8243 260.1876 257.1847 255.2388 254.0813 252.3545 250.0697 248.8517 247.8118 247.6561 247.8508 247.5155 246.8237 246.4985 245.5871 244.6727 243.9813 243.6141 243.5411 243.5837 243.2493 241.8503 242.1411 241.9337 241.8977 242.0698 241.6152 240.6262 239.0577 238.1446 236.7678 236.1489 234.8318 233.6226 232.9554 231.8152 231.5517 233.1045 229.4705 231.3593 231.4695 231.5098 232.4912 236.8847 241.8519 242.6143 242.7875 243.1287 249.7753 251.3288 252.3002 251.5335 248.3266 246.202 243.3379 241.3868 244.0904 245.6316 247.4305 248.9823 250.0077 251.6981 254.3274 254.8891 256.0753 256.763 256.5452 257.4171 255.928 254.0247 251.7897 251.117 249.9696 248.5711 246.9462 245.5552 244.4503 244.791 245.0115 244.6075 244.2106 243.7394 243.1476 243.0013 239.6405 239.1214 238.3634 237.8053 236.8387 236.4503 236.2521 236.1304 233.4315 232.3292 231.1929 231.3491 231.8448 230 231.07 231.2354 231.2897 231.7241 232.6506 -9999 +274.7771 276.1759 282.024 285.0473 285.1111 285.4007 285.0187 283.7163 285.1875 287.8505 289.7688 290.9083 290.8447 288.1342 281.9268 275.601 263.9805 262.2379 263.508 263.2619 263.1055 263.0995 268.0877 272.3253 273.1199 267.8602 270.1304 272.4238 274.8333 277.6496 277.4663 277.7228 280.094 282.1189 284.1299 288.0842 289.8791 291.653 293.5496 294.3879 295.453 295.5071 295.0673 294.5097 294.1624 293.9687 295.6334 296.2848 296.6752 298.7022 300.2471 300.9124 302.3864 304.1258 303.3364 301.7071 300.4553 299.3903 297.759 295.9325 293.7442 294.1353 296.6852 296.6815 296.587 296.4711 296.119 295.2571 292.9986 289.8779 286.6709 285.4118 286.4657 287.111 287.374 287.1412 286.4705 286.7224 286.4159 285.7984 283.1116 282.6317 282.6884 283.4282 282.7687 281.6013 280.2284 279.2915 281.3107 281.731 280.1073 278.9295 276.1136 271.8633 269.668 268.8965 267.8509 266.9248 267.3168 268.7621 274.4395 274.5598 271.8791 273.6312 271.7612 269.0847 267.8528 265.9881 265.0841 267.0363 269.6768 272.4662 275.568 277.1163 279.2622 281.545 282.1002 282.1588 281.354 279.5364 277.9486 277.0865 275.1623 273.0243 271.0831 268.2816 260.0149 257.9385 256.9723 258.0182 264.3961 268.4059 272.7204 277.1353 280.7807 286.4168 287.8491 287.053 288.0306 289.37 289.4523 288.1214 286.6735 283.9597 282.8057 286.2942 288.292 290.4273 291.1837 291.4608 291.0875 289.6816 288.9316 287.7536 285.7818 285.9872 286.4997 286.0447 284.6995 283.5192 282.2555 282.0995 282.4339 282.6748 280.2238 278.3756 276.309 274.3075 271.7282 268.8268 264.9086 263.1731 254.4831 251.003 252.259 255.021 257.1064 260.1457 260.0217 258.8164 258.9145 260.4119 258.8416 255.4638 253.2634 250.6906 242.0227 242.0192 241.9541 241.9933 240.5769 241.6276 241.5323 241.2051 241.0098 240.9562 243.7705 241.6606 241.3837 241.06 238.563 241.1739 247.6511 252.6834 255.9908 258.3845 261.1894 262.9642 264.562 260.684 256.7368 252.4821 248.9936 245.2576 242.0074 242.9108 243.3146 242.7559 238.3689 238.5453 238.3155 238.4475 238.5255 238.2275 242.7187 241.5709 241.0224 243.4926 238.9561 238.3935 238.4712 236.2565 237.5481 237.2302 237.7209 237.7956 237.8535 238.8988 241.1053 242.5404 243.5639 244.1698 246.5607 248.2214 248.2375 248.2748 243.0385 246.2063 245.8531 241.2564 236.0317 236.1906 236.0787 236.0235 235.9548 236.031 235.9053 235.7901 235.8092 235.6961 235.525 235.5871 235.7063 235.6003 235.8703 235.8722 235.979 236.2032 235.8244 235.5699 235.4109 235.2601 235.2403 235.2546 238.0183 241.1782 240.3579 238.0523 236.194 236.109 235.8976 235.726 235.5981 235.3651 235.6884 237.3533 235.8546 236.0491 236.6182 235.1909 234.9942 234.552 234.8835 235.8245 237.802 237.8914 236.9409 236.741 237.8912 240.1323 240.2795 240.5533 241.7203 241.3973 241.6341 242.778 242.6357 242.2818 241.3633 241.6927 241.8427 241.9445 241.7587 242.3481 242.9138 243.3542 243.6657 243.5096 243.5106 245.0373 245.5163 245.9908 246.1674 246.3453 246.4225 246.2882 246.1519 246.6702 247.4384 247.0699 246.4341 244.5875 242.9957 239.8411 237.0039 236.0248 235.3359 235.5283 239.8399 243.2228 245.3076 247.2724 248.7644 249.5205 249.5238 248.6327 247.4393 247.2011 247.243 247.2045 246.8616 246.5962 246.2984 246.0222 246.3079 245.9186 246.2705 246.1335 245.5924 245.0812 244.2708 244.0896 244.4329 246.597 246.433 240.5797 240.2318 239.5712 238.9824 240.1444 242.48 245.0995 247.3263 248.4039 248.2463 246.9306 246.2514 245.9919 244.9861 242.1503 243.6867 245.9992 245.432 250.1864 251.7982 253.3676 255.2893 256.897 257.2758 257.4251 258.6553 260.3694 262.0514 262.3994 262.1988 262.1006 261.5959 261.495 261.1291 260.6345 259.8718 257.6647 255.5912 254.0736 252.7195 251.3413 249.3073 248.2662 247.1838 247.0552 246.8069 246.5575 245.934 245.1278 244.3306 244.129 244.3106 244.9344 245.3101 245.1685 244.1691 243.6411 243.6891 243.8761 243.5723 243.0773 241.9286 239.7307 239.2047 237.7899 237.9123 235.8118 234.2084 232.7861 231.8432 231.3413 232.4754 229.4459 231.3006 231.3809 231.6002 232.823 237.7116 242.2024 242.5869 242.8204 243.2102 249.6964 251.6702 253.2225 254.1974 253.0073 251.5688 249.6579 247.6045 248.285 246.2867 249.1281 251.1569 250.7647 250.921 252.7659 254.9153 255.7836 256.994 256.9012 258.1061 255.928 254.0247 251.7897 251.117 249.9696 248.5711 246.9462 245.5552 244.4503 244.791 245.0115 244.6075 244.2106 243.7394 243.1476 243.0013 239.6405 239.1214 238.3634 237.8053 236.8387 236.4503 236.2521 236.1304 233.4315 232.3292 231.1929 231.3491 231.8448 230 231.07 231.2354 231.2897 231.7241 232.6506 -9999 +274.1458 280.3134 284.7782 287.4381 288.532 288.5207 288.2436 286.0408 285.9774 288.5821 290.4429 291.5445 291.9938 290.1909 284.3504 277.8168 263.3429 263.8889 261.4076 263.4001 263.0655 263.1584 263.9473 266.2654 265.2297 271.9901 275.9727 279.1083 280.7114 282.4149 282.335 282.8331 282.5172 283.5256 285.8053 288.491 290.1458 291.5825 293.0509 293.5888 293.6255 293.3412 292.5939 292.4775 291.3958 292.9157 293.515 295.0404 297.7938 300.5694 301.3266 302.6188 303.3862 304.1044 302.9672 301.5605 299.5711 297.9385 296.4733 294.7234 292.4527 292.3977 295.3999 295.4192 295.682 295.4069 295.4492 295.4094 293.5952 291.7007 287.9093 284.0701 284.5494 285.5609 285.8864 285.8791 284.8026 284.4407 284.0945 284.1176 281.7414 280.1971 281.0463 283.4282 282.7687 281.6013 280.2284 279.2915 281.3107 281.731 280.1073 278.9295 276.1136 271.8633 269.668 268.8965 267.8509 266.9248 267.3168 268.7621 274.4395 274.5598 271.8791 273.6312 271.7612 269.0847 267.8528 265.9881 265.0841 267.0363 269.6768 273.4608 276.5204 278.5685 280.6275 282.4359 283.7177 283.5469 283.3046 281.5952 279.7676 277.9309 275.6587 273.8763 271.74 268.6268 258.6457 257.2264 262.1432 263.5667 266.7663 270.619 274.3904 278.3187 281.6911 286.0742 287.8349 289.187 290.0122 291.4265 292.7522 293.3356 293.2737 292.2348 289.4534 286.7325 289.2189 291.5187 292.3134 292.3892 291.9127 290.8427 290.2339 289.311 286.2767 286.7021 287.5587 287.1828 286.1988 285.0566 283.6729 283.7392 284.2533 283.8638 280.7112 278.032 275.3433 273.0841 270.337 266.0624 262.4078 257.891 253.0547 250.5048 256.1648 258.2411 259.0876 262.4393 262.7801 261.2598 260.4617 262.3991 260.5453 259.4527 256.4115 250.5064 244.6828 242.4822 242.7465 241.8956 240.9157 239.881 240.4374 240.8609 240.815 240.8357 241.2346 241.2923 240.6034 240.1957 240.9238 242.7441 249.4362 255.0515 258.705 260.8266 263.1719 264.368 264.8552 260.1576 256.9065 254.2023 251.0881 247.4774 243.0811 245.2755 246.7966 247.133 242.368 238.6475 238.7442 238.8392 239.7537 242.7705 245.0235 249.485 250.3856 247.2104 243.3642 244.099 248.7213 239.0234 237.3817 237.1126 237.3849 237.3316 237.4347 238.1927 240.8227 242.993 242.7482 243.8568 245.6017 246.634 247.3833 248.5793 247.5536 241.0058 239.7353 237.7433 236.4794 236.3324 236.2609 236.1986 236.3656 236.2849 236.2357 236.1505 235.9284 235.7778 235.6977 235.6404 235.6586 235.615 235.8871 235.8753 235.9132 236.0529 235.9875 235.6681 235.4697 235.3481 235.3016 234.9663 235.0304 235.7952 235.6813 235.0486 234.9541 234.7777 235.4025 235.7032 235.6709 234.9449 234.8973 234.5305 234.6061 234.6843 235.1502 236.552 235.1205 234.6153 234.5701 235.9112 236.6774 236.4147 235.2002 235.0269 234.5136 235.4905 237.5096 239.2488 240.8839 241.1155 240.9793 241.6071 241.5087 241.369 241.035 241.0199 241.9574 241.5488 241.9598 242.8529 242.9132 242.9673 243.1714 242.9008 243.0928 244.2125 244.5308 245.2725 245.6941 245.7912 246.0979 246.0789 245.6018 245.7104 246.8392 246.9024 246.2025 244.7941 243.1316 241.1215 237.8536 236.4542 234.7065 235.4893 239.0765 242.4152 244.6499 246.8386 248.0811 248.4369 247.9433 247.5259 246.657 246.4604 246.3688 246.1519 245.9754 245.8892 245.8157 245.5808 245.8156 245.1112 244.8629 244.8488 244.4784 243.4711 243.0572 242.9309 243.5007 245.335 246.6662 240.7225 239.492 238.5078 239.0666 240.512 242.9083 244.7606 246.8407 247.504 247.3809 245.074 244.0309 244.3582 241.4763 242.42 241.7346 242.6483 245.5796 250.9354 252.4987 253.7537 255.4871 256.9749 257.0717 256.6883 257.8333 259.5473 261.2266 261.4269 261.3862 260.9058 260.5584 259.9822 260.3796 260.1553 259.4568 257.0408 256.2114 254.6881 253.8514 251.8834 250.6065 248.839 247.206 246.795 246.2666 246.3038 245.6764 244.7555 244.1755 244.0468 244.8055 245.3219 245.7865 245.4721 244.2165 244.0585 244.1591 244.2717 243.9364 243.2926 242.2886 240.3921 239.2047 237.7899 237.9123 235.8118 234.2084 232.7861 231.8432 231.3413 232.4754 229.4459 231.3006 231.3809 231.6002 232.823 237.7116 242.2024 242.5869 242.8204 243.2102 249.6964 251.6702 253.2225 254.1974 253.0073 251.5688 249.6579 247.6045 248.285 246.2867 249.1281 251.1569 250.7647 250.921 252.7659 254.9153 255.7836 256.994 257.1478 258.1061 258.1773 256.6125 254.7052 252.8863 250.7243 249.2179 248.071 245.4711 243.2594 243.0966 243.3595 242.6866 242.4089 242.3051 241.9652 240.8598 239.2672 238.8003 238.4344 237.6675 236.9897 236.8692 236.6692 236.4237 236.2607 233.0278 231.0781 231.3907 231.6786 229.9617 231.5892 231.7719 231.7839 232.1536 233.0669 -9999 +279.4421 282.9968 286.0444 288.6733 290.5482 291.3065 291.057 288.6346 287.4499 289.4645 291.1198 291.4691 290.4228 289.4871 285.346 279.8234 265.6128 263.2229 260.9305 263.5273 263.1389 263.1013 263.2941 263.9136 268.9056 274.8909 276.5511 280.7735 284.3615 285.8394 285.9722 286.3284 286.1712 287.1709 289.9144 290.1835 290.386 291.1375 291.5845 291.7309 291.464 291.2287 289.7079 291.0809 290.0892 291.2004 291.6158 292.2806 296.1776 300.1798 301.9218 302.6268 303.4414 303.9645 303.0272 301.519 299.5711 297.9385 296.4733 294.7234 292.4527 292.3977 295.3999 295.4192 295.682 295.4069 295.4492 295.4094 293.5952 291.7007 287.9093 284.0701 284.5494 285.5609 285.8864 285.8791 284.8026 284.4407 284.0945 284.1176 281.7414 280.1971 281.0463 282.1524 282.0364 280.827 279.2621 278.5645 278.6955 279.363 278.0623 275.6232 271.2901 268.8169 268.3542 268.1395 268.4262 273.4347 275.9595 274.2652 275.371 277.2681 276.1104 276.5726 275.067 272.8649 270.3744 267.5678 267.0755 268.7116 270.4983 273.5301 276.599 278.8204 280.8261 282.5073 284.2278 285.1635 284.3859 281.6312 279.9441 277.8017 275.7784 274.2022 271.7488 268.8412 258.7349 259.1826 263.3646 266.0319 268.4946 271.7417 274.8831 277.9346 281.027 285.625 287.5548 289.3152 291.3999 293.1068 295.0052 296.2359 296.8607 296.1234 291.45 289.8404 290.9069 292.9752 294.0663 293.7849 293.1232 292.0759 291.5068 290.4983 287.2272 287.2576 288.311 288.2757 287.5976 286.6201 285.6913 284.5428 283.7578 283.2008 280.3836 277.4344 274.6888 271.0493 268.7825 263.5934 256.7033 259.0323 253.9286 258.4106 260.4523 260.8657 260.726 262.0845 264.7944 263.8284 261.6736 263.8295 263.0576 261.4957 258.375 251.2484 251.3604 251.5601 251.7669 249.4997 241.3144 241.7724 240.1874 241.1154 241.4208 239.9914 239.1118 241.8864 240.9255 240.7444 242.9572 246.7611 250.5992 256.0353 260.5102 263.6967 265.1899 265.9244 265.2367 261.1541 258.9848 256.0558 251.5728 250.5168 249.326 250.3611 250.0251 250.4591 248.5559 245.707 243.7245 241.3025 242.3032 246.5239 247.256 254.3049 256.1421 250.91 248.7031 249.9667 252.4508 246.1734 238.0783 238.282 236.4071 237.5107 237.1586 237.5464 241.3261 242.2969 240.8262 240.8831 241.8294 243.1024 245.4987 247.18 246.568 245.3419 243.7707 238.6486 236.4816 236.5218 236.3378 236.3633 236.3833 236.3325 236.1644 236.0942 236.0486 236.1303 236.0223 235.8668 235.7863 235.7825 235.7409 236.0209 235.9606 234.0934 235.981 235.896 235.6294 235.5316 235.2652 235.0778 235.0982 234.9457 234.8881 234.9645 234.9321 234.9283 234.6175 234.5657 234.6451 234.7943 234.9129 234.7163 234.9499 234.9462 234.978 235.466 235.105 234.746 234.8538 235.0009 234.8362 234.9874 234.152 234.3578 234.1368 234.1763 237.3198 238.8472 239.6876 239.6958 239.2218 239.5216 239.5988 239.8605 240.107 240.6777 241.7858 241.4598 241.9955 242.1517 242.1762 242.3493 242.4539 242.5559 242.8251 243.0499 243.3419 244.4894 245.2161 245.2815 245.5981 246.0415 245.4477 244.7799 245.9078 246.2759 246.2292 244.8338 243.651 242.6016 240.6993 237.2506 234.7197 234.9325 237.7881 240.7195 243.4525 245.437 247.0466 247.3568 247.0022 246.6272 245.8543 245.752 245.7225 245.462 245.2386 245.3572 245.2699 245.1748 245.307 244.3037 244.03 244.0914 242.9525 241.9885 241.3891 242.2266 243.2353 245.1586 246.4783 245.1287 241.2991 238.1242 238.8876 240.891 243.054 244.5624 246.1877 247.1664 246.0805 243.8384 242.6155 241.5162 239.7694 242.7739 244.127 246.3039 248.004 251.2773 253.1396 254.0703 255.9347 256.5095 256.8159 256.2983 257.8333 259.5473 261.2266 261.4269 261.3862 260.9058 260.5584 259.9822 260.3796 260.1553 259.4568 257.0408 256.2114 254.6881 253.8514 251.8834 250.6065 248.839 247.206 246.795 246.2666 246.3038 245.6764 244.7555 244.1755 244.0468 244.8055 245.3219 245.7865 245.4721 244.2165 244.0585 244.1591 244.2717 243.9364 243.2926 242.2886 240.3921 239.0646 238.5464 238.9554 236.4904 234.4755 232.9707 232.0059 231.4818 230.473 229.8883 231.2862 231.3106 231.6959 234.5569 240.7428 245.1168 247.5086 247.351 247.477 250.8636 252.9126 255.0033 256.1024 256.2414 254.3295 252.9479 251.458 250.3762 251.179 252.1668 252.9727 252.8843 252.0319 252.5354 254.6137 256.0545 257.1016 258.9193 260.0869 259.9036 258.6316 256.6148 255.0005 252.5215 249.6689 248.0371 245.9862 242.4595 241.7649 241.5775 241.327 240.6042 240.3018 240.5103 240.4706 238.8199 238.7255 238.1969 237.6877 237.4675 237.2487 237.0638 236.8564 236.6033 236.333 231.2128 231.0222 231.5873 229.9766 231.3778 232.0308 232.0852 232.2368 233.069 -9999 +281.6254 284.3268 286.9371 289.3425 291.3886 293.0736 293.2386 290.6386 289.9618 290.2515 291.061 290.7662 289.8701 287.2025 284.31 278.7734 271.1257 264.4433 260.5712 263.3156 263.0373 262.9135 263.1218 264.4448 270.6128 278.0802 280.8474 281.6755 285.6602 285.8394 285.9722 286.3284 286.1712 287.1709 289.9144 290.1835 290.386 291.1375 291.5845 291.7309 291.464 291.2287 289.7079 291.0809 290.0892 291.2004 291.6158 292.2806 296.1776 300.1798 301.9218 302.6268 303.4414 303.9645 303.0272 301.519 299.4404 298.0801 295.5225 293.0794 291.5067 291.2649 294.0448 294.4505 294.1742 294.4539 294.7528 294.6707 293.333 291.1772 287.9479 283.7481 283.1948 283.8476 284.8318 284.9969 284.3518 283.4649 282.2258 281.7597 279.8611 279.0055 280.1844 281.2234 281.2991 280.6347 279.0093 277.9077 277.0252 276.5552 274.2078 270.9159 269.3 267.9251 269.149 270.6472 274.3589 275.7259 278.2903 277.0664 278.069 279.176 278.7887 278.4867 276.9406 274.2805 271.7959 269.0259 269.3124 273.4027 273.5241 274.261 276.5884 279.0394 280.6877 282.272 284.0703 285.4439 284.0468 282.0175 279.5988 277.4259 275.2287 273.0154 270.7162 268.1913 258.0258 259.5848 262.8005 265.6536 268.7112 272.0445 274.8311 277.4342 280.2409 284.775 287.3488 289.4886 291.6847 294.1475 296.6548 298.2868 299.2195 297.8749 293.4798 293.0465 293.5616 294.8386 295.7688 295.2144 294.5332 293.3925 293.0634 291.874 289.0335 288.561 289.0205 289.2155 287.9273 286.7085 285.4054 283.7224 282.5628 282.5738 279.5373 276.3893 273.7191 269.9917 264.437 259.6934 258.5899 264.9667 264.9619 263.939 263.5744 263.8359 263.3171 262.2994 265.0793 265.7369 263.6448 264.8018 264.1356 262.9589 258.857 257.153 257.7726 257.5745 255.3737 250.8505 241.3604 241.3415 241.3239 241.2531 241.0974 241.0233 241.4457 248.7891 249.3222 246.0088 244.7134 245.5336 250.9916 255.2552 258.2068 261.7479 264.1617 265.7004 266.7112 263.6417 260.7482 258.2773 255.5992 250.5318 249.8429 249.2945 253.1597 254.7115 254.6251 252.5179 251.618 248.382 244.4098 246.3609 249.2984 256.1238 258.7397 253.4698 252.7428 254.3889 256.3038 252.667 243.494 237.9149 237.9747 235.4659 237.167 237.2683 240.2572 240.4612 239.4222 239.3839 239.5681 240.6659 242.0446 245.0431 242.7111 241.6689 240.6515 236.7511 236.6996 236.6234 236.5803 236.5141 236.4826 236.4857 236.3129 236.2078 236.2083 236.2626 236.1741 236.0881 235.9581 235.8937 235.83 235.8431 236.0573 236.5088 235.1122 235.8263 235.8912 235.4839 235.7809 235.855 235.4898 235.1725 235.33 235.3154 235.7171 235.2618 235.1845 235.2702 235.0627 235.2506 235.0187 235.0353 234.9962 234.8984 234.9575 234.8154 235.9122 235.4205 234.9812 235.2123 234.9372 234.7364 234.7778 234.263 234.0868 233.8931 236.6016 238.19 238.6042 238.507 238.2004 238.0595 237.682 238.0629 239.115 240.0468 241.1991 241.2805 241.7998 242.0001 241.7236 241.9603 241.8521 242.0399 242.0528 241.6358 242.2375 243.7538 244.7217 244.9035 245.1543 245.6584 245.493 244.5512 244.6827 245.5689 245.8986 245.3634 244.4601 243.6016 241.6544 238.569 234.8975 234.4221 236.7081 239.7346 242.5334 244.3027 245.7567 245.7879 245.2949 244.9398 244.2749 244.0029 244.1 244.1637 244.2053 244.3248 244.3473 244.3081 245.307 244.3037 244.03 244.0914 242.9525 241.9885 241.3891 242.2266 243.2353 245.1586 246.4783 245.1287 241.2991 238.1242 238.8876 240.891 243.054 244.5624 246.1877 247.1664 246.0805 243.8384 242.6155 241.5162 239.7694 242.7739 244.127 246.3039 248.004 251.2773 253.1396 254.0703 255.9347 256.5095 256.8159 256.2983 257.2689 258.5573 259.9877 260.9797 261.4633 260.3662 259.308 259.0307 259.2281 258.8532 258.74 257.5731 256.652 256.0008 254.2645 253.1143 251.307 249.7591 248.4439 246.2729 245.7705 245.9577 245.6699 244.6621 243.9729 243.9081 244.8347 245.7342 245.8534 245.6768 244.2054 243.8801 243.8448 243.9065 243.5286 243.3281 242.4231 240.8874 239.3811 239.0554 239.3308 237.2496 234.8375 233.1718 232.2405 231.9698 230.8924 231.271 231.0494 231.3489 232.7122 237.8676 244.3885 247.7869 249.2261 250.1511 250.3548 252.8406 254.8475 256.7859 258.4955 258.4 257.0456 255.4921 254.1154 252.2269 253.084 253.8974 254.474 254.8964 254.5229 253.3411 255.0668 256.3965 257.1653 260.4673 261.5131 261.5869 260.2889 258.5244 255.743 253.6272 250.7337 248.2142 246.5487 242.815 241.3354 240.6086 239.8459 239.5013 238.9093 239.1758 239.6636 238.5929 238.6452 238.0146 237.4431 237.7713 237.6548 237.4033 237.1667 236.9291 236.6889 233.0076 232.4657 231.0649 230.17 231.5788 231.4879 231.7459 231.6636 232.5733 -9999 +282.4805 284.3845 286.922 289.3425 291.3886 293.0736 293.2386 290.6386 289.9618 290.2515 291.061 290.7662 289.8701 287.2025 284.31 278.7734 271.1257 264.4433 260.5712 263.3156 263.0373 262.9135 263.1218 264.4448 270.6128 278.0802 280.8474 281.6755 285.6602 288.6472 289.3518 289.2509 289.4167 290.2076 290.3773 290.2218 289.9954 289.9189 289.754 289.3987 288.5836 288.7084 287.0373 287.1632 287.545 290.4354 293.3406 294.4351 297.2322 299.7272 301.289 301.8737 302.8682 303.8634 303.1226 301.2059 299.2848 297.4071 296.3805 293.2414 290.856 289.9468 291.398 292.6032 293.3224 293.1757 292.9459 293.3313 292.5193 290.6952 288.6952 283.2881 283.1819 282.7304 283.3622 284.3793 284.4012 283.0821 281.9001 281.0812 278.6807 278.3739 279.1445 280.4402 280.1338 279.3016 277.9316 276.7147 275.2491 274.3217 271.5871 269.5834 268.9025 270.7951 273.9245 275.0894 277.2677 278.7207 280.0896 279.1698 279.5513 280.9578 280.2268 279.5963 277.547 275.1105 274.0328 269.9941 270.6882 274.1549 277.0434 275.563 276.472 279.2802 281.4025 282.9312 284.7046 285.4268 283.6862 281.9673 279.6928 277.0553 274.9859 272.7919 270.2279 267.5157 260.1018 259.9229 263.7967 267.0776 270.0508 272.576 275.2351 277.482 280.2848 284.4669 287.2541 289.3109 291.4679 294.3004 297.3027 299.5592 301.395 301.0323 296.675 296.8803 296.6915 296.9015 297.3529 296.6077 295.8683 294.648 293.9269 292.6107 290.3714 290.0132 288.928 288.6457 287.5611 285.7781 284.1399 282.5466 281.0833 281.4242 277.8479 273.7778 269.2223 266.7637 261.5872 261.6215 263.1321 267.1752 270.0804 268.7753 267.6019 266.7878 266.2113 264.3919 265.7704 267.0915 266.1311 265.5454 265.2657 264.388 263.7797 261.0749 258.954 256.6321 253.6718 247.4755 242.0888 241.7758 241.2839 241.009 240.9364 240.8311 242.7221 251.8457 257.0959 254.0272 252.3007 248.3554 248.7849 253.9349 258.2628 260.8487 263.4462 265.5929 267.4968 266.1271 263.9731 261.9356 258.2935 255.0966 249.4164 249.6924 253.6636 256.5058 259.4665 258.0728 254.9236 252.3474 248.5934 246.1406 251.1178 255.5732 258.5584 256.4151 255.3727 257.3137 258.8077 255.6792 249.3512 244.2081 240.0561 238.197 237.9348 237.5624 239.2477 239.2554 238.6681 238.4363 238.7357 239.2076 239.8436 241.8487 239.2098 237.5401 237.1204 237.1378 236.9205 236.7615 236.6305 236.6523 236.7498 236.5875 236.4761 236.5999 236.4751 236.3847 236.0315 236.3907 235.7936 235.7043 234.5035 235.3242 235.3225 234.4776 234.3894 234.4972 234.1409 234.5187 234.4637 235.02 234.9369 235.1137 235.4823 235.5748 235.5584 235.5223 235.2755 235.7645 235.6375 235.6151 235.5609 235.6477 235.5607 235.3712 235.3918 235.387 234.8182 235.3158 235.147 235.2032 234.5195 235.0215 234.6998 234.4032 233.8503 234.0089 237.1949 237.4827 237.1123 236.9986 237.1735 237.0502 236.9353 236.9477 237.1009 237.0838 238.642 240.7954 241.0959 241.3731 241.4171 241.4557 241.2183 241.2672 241.0049 240.8498 242.2375 243.7538 244.7217 244.9035 245.1543 245.6584 245.493 244.5512 244.6827 245.5689 245.8986 245.3634 244.4601 243.6016 241.6544 238.569 234.8975 234.4221 236.7081 239.7346 242.5334 244.3027 245.7567 245.7879 245.2949 244.9398 244.2749 244.0029 244.1 244.1637 244.2053 244.3248 244.3473 244.3081 244.3809 243.6647 243.0112 242.5967 241.5138 240.6697 240.9535 242.0808 243.4507 244.3473 245.6918 246.0998 242.1477 237.9597 238.5984 240.4797 243.027 244.2004 245.0555 245.1819 243.7446 241.8579 240.1553 240.1716 241.9403 243.4139 245.135 247.4977 248.7873 251.726 253.3831 254.388 255.6783 256.2031 256.7385 255.8724 256.471 257.5663 259.2577 260.2556 260.4619 259.7612 258.5977 257.9672 258.0804 258.0913 256.9868 257.2744 256.4802 255.7834 254.7397 253.4865 251.9505 250.8107 248.9095 247.2105 245.2847 245.4666 245.4151 244.6281 243.8409 243.6082 244.6496 245.5878 245.9943 245.9305 244.4584 243.7991 243.5551 243.0399 242.8415 242.2272 242.1285 241.0416 239.6116 239.4464 239.34 238.2751 236.3139 233.224 232.2377 231.8354 232.3044 232.2084 230.9821 231.0899 235.737 242.9233 244.0249 245.1548 247.822 249.6236 250.5938 253.3853 255.9258 258.6273 260.2953 260.6492 259.7124 257.9718 255.9581 255.3622 255.4191 255.9516 256.7992 257.3831 256.4118 255.5525 255.5455 256.9496 258.0388 261.2274 262.6649 263.2096 261.9453 258.9833 256.9823 253.8428 251.6388 248.6835 246.447 243.4365 241.8045 240.5164 239.3053 238.3259 238.2432 238.0401 239.0186 238.2539 238.8282 237.7891 237.2487 237.5134 237.6402 237.4967 237.4938 237.2796 236.9819 234.3932 233.2985 230.7886 230.9569 231.5938 231.3013 231.2278 231.7019 233.2566 -9999 +282.4805 284.3845 286.922 289.6934 291.6543 293.8864 294.6348 292.563 291.1898 290.9867 290.9915 289.9818 288.7044 286.3794 283.6039 278.6914 269.4087 263.8943 260.7081 263.567 262.9637 262.6309 263.1913 263.3032 270.7131 279.8475 282.4556 284.3908 286.4525 289.296 290.9405 291.6285 291.4048 291.1056 290.5767 289.6203 288.2792 288.3099 287.3011 285.8118 284.7507 284.1454 284.0923 285.0643 292.4061 294.3625 295.6923 296.8211 297.4213 298.4016 299.4964 300.6871 302.3434 303.9923 303.0382 301.4839 299.6148 298.2675 296.1842 292.9591 291.3463 289.5619 289.384 290.4318 290.8204 291.359 292.054 292.0132 291.2199 290.0897 288.2127 284.8694 282.6225 282.4744 282.4539 283.637 284.3158 283.7429 282.3897 281.2618 278.2945 277.8239 277.5154 277.6427 277.7257 276.828 275.8884 275.0116 274.0069 271.0126 269.4543 270.0585 272.4422 275.5575 277.7263 278.4089 279.2003 280.9494 282.3424 281.0602 280.5753 281.6103 281.1335 280.4087 277.7226 277.3514 274.9862 269.5683 270.2143 275.6423 278.2278 277.8107 277.7889 280.3445 282.1193 283.0081 284.7086 284.4859 283.2018 281.5589 279.5331 277.0704 275.1035 272.7111 270.0407 267.0935 258.9082 261.259 265.361 268.6108 270.8531 273.3667 275.9128 278.7939 280.9721 286.0145 288.0363 290.362 292.4289 295.0566 297.7298 300.6798 303.027 303.814 301.0138 300.2783 300.4717 299.5966 298.998 297.8823 296.6844 295.6365 294.3463 293.1422 290.3646 288.9822 287.6085 286.786 286.6311 285.183 283.2334 281.3286 280.115 279.6372 275.6219 270.0969 267.5999 266.9165 266.758 266.1955 266.668 267.3798 273.4119 272.8631 271.0647 269.54 268.979 266.9999 268.3955 269.1801 268.2641 266.6992 266.98 266.2199 265.8371 262.6001 258.5901 255.1845 250.6917 246.8155 248.6707 245.2246 244.4752 243.6146 241.5811 243.5618 249.4819 255.8838 262.7491 260.3568 257.5599 254.0409 249.3672 251.4563 258.3479 263.4796 266.4346 267.3542 269.4244 268.7454 266.3153 263.9325 261.4731 258.3419 254.5605 249.5927 255.8056 258.1982 263.3776 263.0084 259.0994 255.8943 252.2234 249.3364 252.3986 255.5206 258.4445 256.307 256.2373 257.9973 260.2988 260.0212 254.3867 248.5691 245.0666 241.5764 237.2391 235.3695 237.4969 237.6467 237.7607 237.431 237.3981 237.9547 238.6446 238.6032 236.9666 237.3618 235.7823 234.8295 234.9909 234.8024 235.3366 236.1373 234.8689 234.8374 235.6757 235.665 235.6222 236.6025 236.2939 236.3763 236.3582 236.2745 235.9999 236.078 235.8456 235.624 235.2105 235.1664 235.317 235.5605 235.2793 235.7838 235.3568 235.2807 235.3512 235.2097 234.8671 234.9151 234.7133 234.8063 235.1907 235.0473 234.9132 234.7778 235.5607 235.3712 235.3918 235.387 234.8182 235.3158 235.147 235.2032 234.5195 235.0215 234.6998 234.4032 233.8503 234.0089 237.1949 237.4827 237.1123 236.9986 237.1735 237.0502 236.9353 236.9477 237.1009 237.6826 238.642 240.7954 241.0959 241.3731 241.4171 241.4557 241.2183 241.2672 241.0049 240.8498 241.3604 243.0428 244.2117 244.4187 244.7097 245.0412 245.1752 244.6618 243.6418 244.4319 245.4223 244.8729 244.2717 243.4479 241.6935 238.9337 235.0959 233.9081 235.7164 238.1638 241.1651 243.2733 244.6581 244.8048 244.2453 243.89 243.2248 243.0074 242.7942 242.995 242.8073 242.4667 242.4016 243.0739 243.3128 243.154 242.568 241.3394 240.6551 240.0951 241.2655 241.5878 241.8195 243.8141 245.0342 245.1847 241.6308 237.4859 238.1764 239.778 242.6845 242.9866 243.7666 244.0654 241.2882 239.4514 240.1022 241.3424 242.7995 244.3164 246.832 248.1376 248.8192 251.7692 253.0485 254.296 255.0344 256.0681 256.6418 255.5192 255.5692 256.6067 258.7887 259.3424 259.3183 258.6199 257.5319 256.6511 256.5961 256.738 256.7753 256.0843 255.6672 255.1523 254.0219 253.2495 251.4459 250.5928 248.7221 247.3041 244.7554 244.9359 244.8197 243.9031 243.4558 243.3171 243.929 245.2195 245.7408 245.6389 244.8543 243.7186 242.8157 242.4647 241.5904 241.2088 240.5087 240.3577 239.634 239.4179 238.9859 237.9061 236.827 234.8384 232.863 232.0129 231.9283 232.6084 230.948 231.5348 237.6508 241.0144 243.1516 244.3909 245.9938 247.9305 249.9462 253.1741 254.9259 258.5386 259.2829 259.3207 259.0329 258.6625 258.1935 257.9906 258.5981 259.2733 259.8261 259.478 258.2415 257.5032 256.5023 257.7003 258.9311 262.476 263.9162 264.3297 262.4045 260.5099 257.3732 254.9074 251.8129 248.9867 246.6481 243.8534 243.0132 241.6412 239.0303 237.919 237.3673 236.0618 238.4919 237.5292 238.0163 237.6598 237.2389 237.1375 236.6349 236.6885 236.6029 236.7235 236.5995 233.4152 232.3565 229.8658 231.3172 231.2305 231.1703 231.2144 233.1352 232.4247 -9999 +284.1273 285.2562 287.2794 290.149 292.2369 293.9334 294.47 293.3275 292.4459 291.1604 290.4455 289.5341 287.8579 284.7263 280.231 276.5696 267.6252 263.1509 260.6795 263.4566 262.4732 262.8972 263.0465 262.8405 268.6707 277.7687 279.4432 283.3678 286.0795 288.4662 290.2345 291.0985 290.8232 290.4868 288.9982 287.3411 286.2319 285.1099 284.1515 282.1373 281.3464 284.5366 288.2991 291.7343 293.5526 294.7138 295.5112 295.2797 295.57 297.0212 298.861 300.7223 302.3571 303.6527 303.0568 301.3472 300.1743 298.5917 296.6595 294.9057 292.7949 290.5115 286.3002 287.0215 287.4168 288.8168 289.7021 290.1275 289.4732 288.9877 288.0694 285.3236 283.2486 281.3786 281.6258 283.1123 283.6224 283.9262 281.8723 281.8537 279.6852 278.821 275.7197 274.429 275.0564 274.0801 273.1515 272.3647 272.2173 269.8421 270.0002 272.3448 276.3352 278.3994 280.2044 280.841 281.4178 282.4363 283.4333 283.7515 282.2282 282.7149 282.2159 280.5038 279.5431 278.3971 274.7789 270.2823 271.6376 276.1532 279.1476 279.5856 279.1385 281.0306 282.9094 283.5477 284.6463 283.7664 282.5709 280.9681 278.7106 276.661 275.2403 272.811 270.0694 267.0053 260.1929 263.2636 266.5036 268.1039 271.3684 274.1634 276.6584 279.2436 281.9095 287.047 289.6091 292.226 293.7555 295.6744 298.5344 301.3485 303.8296 305.404 304.1425 303.4412 303.3828 302.5632 300.4825 298.7946 297.3178 296.2015 295.1359 293.217 290.1191 287.7557 284.8987 283.651 284.6805 283.5609 282.1438 280.5068 278.8127 279.1774 272.5215 267.3025 266.7036 266.7006 270.5498 271.2625 269.867 268.7147 274.9164 276.0785 274.5811 273.2416 272.023 270.1513 271.18 271.3458 270.4471 268.4381 268.1461 267.7119 266.5789 262.5194 258.5954 254.7075 251.203 256.6649 255.9251 252.4292 250.867 246.9298 242.7435 249.4028 253.7089 258.6588 265.4572 265.3873 261.6494 258.7228 255.3857 252.0289 259.7794 265.4892 269.5804 270.2032 271.0273 271.0856 268.9822 267.0688 264.8609 260.9413 259.0101 254.3573 253.6483 259.5682 264.1086 263.9762 261.6235 258.0132 255.377 250.8386 252.9772 255.3765 257.1425 257.0236 256.7493 258.5198 260.9421 260.2216 255.4494 251.4129 248.7982 244.7681 237.9729 237.6776 235.2591 237.8198 237.456 237.3864 237.1984 237.2034 237.4785 237.2818 235.0454 236.2795 236.9987 235.5728 237.0216 236.7869 236.6162 236.2362 234.8689 234.8374 235.6757 235.665 235.6222 236.6025 236.2939 236.3763 236.3582 236.2745 235.9999 236.078 235.8456 235.624 235.2105 235.1664 235.317 235.5605 235.2793 235.7838 235.3568 235.2807 235.3512 235.2097 234.8671 234.9151 234.7133 234.8063 235.1907 235.0473 234.9132 234.7778 234.7943 234.8883 235.0483 235.0804 235.056 236.1839 236.1815 235.0344 234.7775 233.2707 234.7333 234.8409 233.978 235.6044 236.3707 236.071 235.8769 235.988 236.0428 236.2202 236.3123 236.6193 235.7052 236.1712 236.949 238.974 240.7613 241.0447 241.0098 240.8395 240.649 240.6967 240.4212 240.4474 240.884 242.4962 243.5464 243.8522 244.1401 244.4018 244.46 244.2937 242.6369 243.4413 243.6171 244.3916 243.4176 242.0461 240.6824 239.157 237.6321 233.3214 234.7856 236.6285 240.0237 242.6518 244.0506 243.9397 243.6726 243.6412 243.4141 242.817 242.6276 242.4933 241.7388 240.7325 240.3914 240.732 241.5642 242.114 241.5889 240.086 239.4699 239.7734 240.2904 240.3046 241.1636 243.0971 245.81 244.4546 241.6924 237.619 237.3533 238.8526 241.7691 242.7506 242.748 242.7551 238.5809 238.4511 240.6463 241.5459 243.2497 244.9601 246.1219 247.8062 248.9477 251.3237 252.3718 253.6521 254.394 255.4727 255.6605 255.2262 254.9788 256.0348 257.5153 258.4524 258.3105 257.3036 256.39 255.7964 255.0773 255.2959 254.8888 254.8518 254.0901 254.0498 253.2194 252.0177 250.6632 249.3971 248.3137 246.8281 244.1949 244.2333 244.2698 243.6379 243.1605 242.9438 243.1434 244.2801 244.6067 244.8183 243.5414 242.4287 241.611 241.2414 240.9028 240.3022 239.8917 239.6041 239.4651 238.5302 237.646 236.9335 235.5888 235.1959 234.7961 233.3095 231.9379 232.4563 230.8745 232.018 237.008 238.6447 242.104 243.1971 244.9239 247.0983 248.3095 252.1469 253.7147 255.754 256.5295 256.6661 257.0508 257.062 258.0971 258.8629 261.156 261.8535 262.0766 261.2984 259.9168 259.0763 258.1601 258.6286 260.0969 263.9368 264.7785 265.0676 263.2647 260.3194 258.21 255.4499 252.3448 249.9566 247.2081 243.1298 241.545 240.5587 238.6863 237.8654 236.6667 236.0389 237.1368 237.359 237.8788 237.673 237.4368 236.7098 236.7444 236.6355 236.5643 235.3669 234.6291 232.4294 230.5092 230.6334 231.1601 235.5575 233.2106 233.1028 234.706 237.2225 -9999 +286.7734 287.0542 287.6857 289.3683 291.5327 293.0054 293.7824 292.8073 291.5216 290.05 288.6272 287.0767 285.7302 283.0518 279.349 275.2436 274.433 265.0272 262.7755 262.2201 263.0204 262.7456 262.7656 263.1302 264.9983 276.2207 279.7949 282.941 285.4336 287.1795 288.8885 289.6439 288.2649 287.9217 286.4724 284.7135 283.1183 282.9799 280.46 279.8341 283.5328 287.6454 290.3048 292.6475 293.2267 293.4816 292.8177 293.7806 295.424 297.2097 298.7599 300.1631 301.5282 303.251 303.6801 301.9474 299.889 298.5023 297.4845 295.1895 294.232 290.6813 286.3229 283.8632 285.2411 286.04 287.4187 287.4998 287.1904 287.4193 287.1201 285.9352 284.0977 281.9321 280.5558 281.2643 282.6072 282.7735 282.6178 280.2858 280.6262 279.8393 276.7144 273.8318 273.0806 272.6334 271.7689 271.1368 269.8795 272.5407 271.4294 274.4496 278.2485 280.1344 282.212 283.415 284.4495 284.4687 285.6024 285.4227 283.9666 283.8061 282.5415 281.9476 280.9584 278.4619 274.2445 269.4193 272.6923 277.6624 280.9984 280.9713 280.8706 281.7152 282.9933 283.7485 284.8757 283.7868 282.213 280.3768 278.4115 276.2844 274.3448 272.1272 269.6306 266.8482 260.9383 263.2128 267.8076 271.7123 273.6408 274.5216 277.673 280.145 282.7219 288.1642 290.0912 292.2906 294.1217 296.4784 299.0028 301.699 303.9922 305.7795 306.1602 305.4883 304.8209 303.9143 301.6459 299.3584 297.5917 296.0924 294.755 293.4417 288.4696 286.4647 285.1626 282.0403 278.9591 279.9005 279.4023 277.7997 275.5012 274.4202 267.4637 266.4594 268.9165 271.7265 275.007 274.7115 271.5622 272.4428 275.8654 277.8066 277.8868 276.5541 275.1973 272.7342 273.6855 273.2608 271.8339 270.0283 269.439 268.6475 265.6229 259.8068 254.3949 255.3685 256.646 260.9061 259.1759 256.2414 253.4994 249.1266 244.5985 251.5769 256.1261 261.4551 268.2803 267.9011 263.157 260.6786 258.134 256.2797 261.3126 264.9951 268.4844 269.9403 271.1339 272.5595 271.6546 269.6923 266.6923 263.6819 260.32 258.309 255.8088 258.6794 265.0804 264.778 262.4031 259.9813 255.377 250.8386 252.9772 255.3765 257.1425 257.0236 256.7493 258.5198 260.9421 260.2216 255.4494 251.4129 248.7982 244.7681 237.9729 237.6776 235.2591 237.8198 237.456 237.3864 237.1984 237.2034 237.4785 237.2818 235.0454 236.2795 236.9987 235.5728 237.0216 236.7869 236.6162 236.2362 235.7472 235.685 235.7992 235.5415 235.598 235.9054 235.7814 235.7967 235.7627 235.7018 235.744 235.7262 235.5725 235.4835 235.2142 235.431 235.5745 235.0495 235.4259 236.0499 237.6483 237.0248 235.6217 235.1208 234.9538 234.8038 234.7487 234.8133 234.6796 234.6013 234.5656 234.5651 234.6382 234.7499 234.8089 234.7962 238.1994 240.0839 240.6137 238.2907 234.5444 234.8914 233.2532 234.8592 234.4351 235.0816 234.5699 234.2945 234.235 234.6491 235.4741 235.7909 236.0105 235.857 235.1459 234.9073 235.5343 236.4588 238.5681 240.9403 240.6551 240.283 240.1873 240.4481 240.2856 240.3108 240.7694 242.2762 243.0736 243.185 243.511 243.7778 243.7871 243.8689 242.3439 241.8631 242.5537 243.5532 241.8794 239.9924 239.1792 238.4919 237.372 233.3869 233.5222 234.6187 237.974 241.1214 242.1004 242.3079 242.1961 242.7643 244.3379 244.3766 244.0109 243.2256 242.1698 240.5717 239.6896 239.7954 240.8528 240.912 240.6119 239.2209 238.7054 238.6867 238.9184 239.27 240.8598 242.8691 245.4581 244.6857 240.221 237.3571 236.6199 238.1718 240.9609 241.4584 241.612 240.1554 237.8854 239.7152 241.6503 243.097 244.0157 245.8218 247.165 248.5141 249.1297 250.6001 251.5636 252.7172 253.7843 254.5976 255.021 255.1223 254.3954 255.0465 256.6381 257.2093 257.2788 256.5181 255.4869 255.0981 254.4752 253.5559 253.3662 253.2224 253.0857 252.8566 252.0659 251.6662 250.3795 249.1613 247.8708 245.7019 243.6244 243.3844 243.6101 243.2996 242.9532 242.8507 242.6027 242.7675 243.0379 242.4003 241.0576 240.3336 239.8835 240.1579 240.0479 239.3617 239.1688 239.1471 239.174 237.9806 237.4117 236.417 236.0059 236.3156 235.8454 233.3734 231.6586 232.3817 230.7745 232.2518 234.3907 237.2535 239.6577 242.1119 243.7222 245.4056 246.8969 249.1847 250.9701 251.9376 253.3268 254.1866 254.583 255.4821 257.1866 258.6671 262.6806 263.4442 263.4488 262.7218 261.5872 260.5176 259.2104 260.0828 261.0702 264.016 264.6639 264.2662 262.83 260.245 257.6895 254.671 252.748 250.0323 245.9048 243.5888 241.4857 240.4924 239.2863 238.0176 236.9003 235.6651 234.724 235.5869 237.7832 237.7963 237.6801 236.598 236.8948 236.8102 236.6909 235.3053 233.1159 231.6613 229.8267 231.3318 234.3964 237.1586 235.5834 237.0783 239.2786 240.8307 -9999 +289.7723 289.8922 289.8275 289.6189 290.7357 292.1417 292.7627 292.1566 290.9189 289.3787 287.7713 286.0517 283.9334 280.9502 278.6524 279.0623 277.1618 271.3762 263.1589 260.3431 263.0815 262.754 262.7049 263.2989 265.0754 274.8586 278.5464 282.7074 284.0111 285.3439 287.816 288.0524 286.1985 285.1231 284.0004 281.9295 279.5862 279.2933 279.3829 281.3933 285.4636 287.544 289.6851 291.6373 290.3756 290.6591 291.7296 293.6747 295.5816 297.3719 298.8486 300.407 301.8964 303.5919 304.0368 302.8585 301.1931 299.3508 298.4462 297.6606 296.312 292.2745 285.8091 284.8151 283.0343 283.5224 284.4419 284.4737 284.4264 284.801 285.0631 285.0458 284.6883 283.2351 280.7788 279.915 279.9783 281.0673 280.7592 279.1383 277.2453 277.8217 275.2714 273.463 272.4906 272.0933 271.0447 271.9118 272.7697 278.6401 278.0401 273.0766 278.1055 281.1556 283.0996 285.4558 286.325 286.6328 286.8542 286.4179 285.4421 284.836 284.9727 284.0981 281.6582 278.0368 274.1265 269.8956 273.6603 278.0719 281.2252 281.787 281.7159 282.7318 284.0501 284.2595 285.4488 283.1854 281.8078 279.7645 278.1177 276.3884 273.4457 271.3771 268.7598 266.2229 261.8948 265.1335 270.9656 274.5644 276.4358 276.7174 277.6256 280.4799 283.2315 288.1632 290.3451 292.5368 294.5541 296.5472 298.743 301.2823 303.4886 305.1843 306.1468 305.8157 305.348 303.9167 301.4527 299.9424 298.094 295.725 294.0278 291.1522 289.37 287.9059 286.0813 284.1558 280.649 277.5133 275.1199 273.6505 272.3225 268.4297 267.2008 269.3536 269.8378 273.0083 275.7601 276.2358 273.554 274.8826 276.1964 278.8508 279.7513 278.8396 277.5007 275.6622 275.1954 274.5643 273.3167 271.5647 270.2338 267.8489 264.552 263.0368 263.6195 261.9883 262.0451 263.7325 260.803 256.2414 253.4994 249.1266 244.5985 251.5769 256.1261 261.4551 268.2803 267.9011 263.157 260.6786 258.134 256.2797 261.3126 264.9951 268.4844 269.9403 271.1339 272.5595 271.6546 269.6923 266.6923 263.6819 260.32 258.309 255.8088 258.6794 265.0804 264.778 262.4031 259.9813 257.2074 253.8643 253.9627 254.9215 257.5388 258.6801 258.2643 259.4484 261.0047 260.4343 256.771 252.9175 248.4157 243.026 237.6263 237.547 237.6155 236.6913 235.5334 236.157 235.6045 235.5702 235.7489 236.8173 237.2016 237.1035 236.7345 238.3631 238.6069 236.5275 236.5565 236.2652 235.8799 235.9123 235.7644 235.5381 235.559 235.3867 235.3951 235.4055 235.6009 235.5892 235.81 235.5343 235.3269 235.422 235.2586 235.2619 235.178 235.1205 235.3817 237.4447 238.8227 239.8547 239.1029 235.2798 235.0694 234.5468 234.6137 234.5659 234.668 234.3632 234.5008 234.5426 234.6149 234.5873 234.522 235.134 241.9667 242.7917 243.3376 243.5788 239.9459 234.7586 234.5009 233.7311 234.6418 234.4298 234.1296 234.0133 233.7958 233.815 234.2481 235.3282 235.7332 235.1781 234.699 234.9088 234.4024 235.6494 236.9626 240.4645 240.3517 239.8657 239.7131 240.5 240.4998 240.5306 241.0784 242.2356 242.5728 242.4936 242.8745 243.1508 242.9892 243.1977 242.7089 241.112 241.3716 241.8722 239.9425 238.6099 237.903 237.6609 237.0868 233.2907 232.6946 233.3574 235.4048 238.5957 239.8269 240.1532 240.426 240.9983 242.0453 242.4436 243.2347 244.101 243.1727 241.8263 240.0223 238.8444 241.1204 240.1004 240.0268 238.6541 237.9447 237.8814 238.2307 238.4769 240.0326 242.4307 245.3334 244.6814 241.4236 236.1963 235.8419 237.7205 240.2937 239.0251 238.4418 236.4063 239.5138 241.6355 242.9229 244.3523 245.4864 247.0032 248.1825 249.2826 250.2343 250.5856 250.9587 251.8666 253.1259 253.7192 254.8118 254.4689 253.974 254.285 255.9617 256.4447 256.2988 255.8891 254.8433 254.0393 253.3636 252.4613 252.0321 251.6658 251.6306 251.756 251.4791 250.5067 248.5779 248.7641 247.6429 245.2142 243.0087 242.8652 243.7316 243.168 242.4759 242.0482 242.1926 242.0533 241.8331 240.6986 239.6531 238.4997 238.3811 239.0405 239.0208 238.5121 238.9243 238.9741 239.2005 237.9458 237.261 236.5176 236.4012 236.1721 234.2726 232.521 231.7786 231.9777 230.2936 231.9214 234.5354 237.1047 238.6992 240.2343 241.6927 243.3442 244.1254 246.7859 248.3913 249.4287 250.5626 251.3631 252.7865 254.5714 256.2251 258.2729 262.1201 263.2137 264.2407 264.0514 263.3011 262.1262 260.3309 261.0553 262.573 264.1334 264.0949 262.9417 261.6078 259.1532 256.7432 254.5711 252.1977 249.9789 246.1275 243.9348 242.0109 240.4712 239.6067 238.9553 237.8204 237.2692 235.4992 234.2268 235.7262 236.7439 237.1466 234.1277 234.1612 233.6596 232.956 232.8431 232.0921 230.0514 231.1411 232.7 236.5482 236.5518 239.309 240.0924 241.064 242.807 -9999 +292.1597 292.6852 292.0119 291.5198 291.1693 291.175 291.4276 291.2822 290.4681 289.4147 287.3463 285.2523 283.5475 282.3417 281.6875 282.0612 279.9493 274.7547 264.7393 261.5333 262.9369 262.6794 262.8271 266.7849 271.4507 276.9669 278.6691 281.4377 283.6273 285.2569 286.4572 286.3958 284.5483 283.1451 280.2592 277.3206 275.0855 277.3062 279.5555 281.2856 284.4868 286.2995 287.6737 289.1246 288.1381 289.2178 291.8975 293.8787 295.627 296.9988 298.4245 300.1505 301.684 303.4496 304.1577 303.6455 302.292 301.2588 300.3941 299.3191 297.895 296.2167 290.6843 287.341 285.0336 283.1823 282.512 282.2748 282.4895 282.0213 282.2135 283.0033 283.8214 283.9206 282.2151 279.6176 278.9788 278.6752 278.034 276.4703 275.7628 275.2374 274.0295 272.472 271.9825 273.7055 277.7868 279.3147 279.4857 280.1138 280.6851 274.9457 277.2252 280.9431 283.67 285.8829 287.4473 288.2726 288.2906 287.9095 286.2361 286.6504 286.3604 284.9706 281.6915 278.6032 274.9469 271.103 272.59 276.0124 278.8088 280.6989 282.2887 284.1257 285.1319 285.4035 285.7494 283.2138 281.4749 279.1156 277.095 274.2338 270.6341 267.5504 263.8199 262.0905 262.3829 267.181 272.5791 276.5069 278.3629 279.0455 278.9464 280.73 282.9365 288.105 289.9955 292.5279 294.3861 295.909 297.5725 299.9201 302.3503 303.8181 304.5296 304.4452 304.0044 303.5729 302.5206 300.6042 298.8928 296.3057 295.157 291.3735 288.9314 286.8116 284.6146 281.422 278.7097 275.6617 273.3192 270.2394 272.3225 268.4297 267.2008 269.3536 269.8378 273.0083 275.7601 276.2358 273.554 274.8826 276.1964 278.8508 279.7513 278.8396 277.5007 275.6622 275.1954 274.5643 273.3167 271.5647 270.2338 267.8489 264.552 263.0368 263.6195 261.9883 262.0451 263.7325 260.803 257.7578 254.1141 249.4581 245.6291 252.1488 257.1468 263.0175 269.1646 268.4011 264.9302 264.064 262.056 260.7796 260.7816 263.6114 267.5787 268.9971 272.2028 272.9999 272.5755 271.2774 268.1896 265.1487 262.7306 260.955 257.1409 258.4351 263.9169 264.0918 262.6494 260.594 257.2628 255.1335 254.4679 254.7887 257.1385 259.5374 260.1478 260.7971 261.3251 260.8417 257.7577 254.4804 249.8393 245.3236 237.3457 237.3605 237.2856 237.1988 237.1978 237.5236 237.0299 236.7569 236.8933 236.8974 236.98 236.3612 238.4502 242.251 241.0739 236.5233 236.2251 236.0777 235.7763 235.8913 235.7911 235.4224 235.4961 235.5765 235.3138 235.3399 235.3458 235.6331 235.4297 235.2468 235.2744 235.4656 235.6613 235.4966 235.3289 235.4157 235.7961 237.8732 237.4577 238.2675 237.8462 234.825 235.0764 234.6955 234.6293 234.4762 234.4949 234.1812 234.5151 234.4424 234.3601 234.5728 236.5178 240.7663 246.5985 246.9168 245.9313 244.141 239.9804 235.2575 234.5593 234.6888 233.5874 234.5938 234.0222 233.5579 233.5529 233.6361 233.6992 235.0662 235.2586 234.8427 234.1727 233.9535 234.4617 234.9358 236.1015 238.6519 239.2787 239.3773 239.1006 240.0875 240.9021 241.2539 241.547 241.9983 242.0606 241.8942 242.1724 242.5179 241.8831 242.432 241.6485 240.4127 240.6989 240.4043 239.1795 238.0941 237.3948 237.0138 236.6224 233.2669 233.0184 233.3972 234.0079 235.6316 236.7908 237.4168 238.17 238.1616 238.3104 239.0386 241.5201 243.5101 243.0091 241.7481 238.8038 238.4436 241.1944 239.5511 239.3508 238.2666 237.2914 236.9663 237.4703 238.3658 239.7381 242.0722 244.7835 243.8276 240.6191 236.3483 235.7393 237.0228 237.9694 236.6084 236.5737 237.2473 241.2662 242.5853 244.1813 245.218 246.7841 247.8963 248.8124 250.0152 251.0994 251.9462 251.3613 251.2173 251.9181 252.9783 253.6078 253.7511 254.0168 253.6943 254.8483 255.1855 255.2479 254.8874 253.868 252.7542 252.163 251.7273 250.7159 250.0061 250.1483 250.1982 249.8618 249.3718 248.5666 247.3958 246.7323 245.302 242.6158 242.5565 243.1439 243.6729 243.5307 242.0699 241.5546 241.4563 241.1514 240.0038 238.7474 237.7942 237.5419 238.2289 238.366 238.2626 238.4854 238.8528 238.9962 238.2406 237.5862 237.0358 236.7632 234.136 232.6818 231.5438 231.9609 232.0862 229.5134 231.4553 233.677 234.8357 237.397 238.6717 241.1359 242.1223 243.5309 245.746 246.5575 247.3379 248.091 249.3837 250.8292 252.7705 254.9641 257.1985 260.2741 261.6618 263.6107 264.4466 263.97 262.7349 261.1323 262.4054 263.6049 263.1162 262.4868 261.2993 259.5869 257.6636 255.578 253.9039 251.6844 249.435 245.7086 243.7265 241.9402 240.5988 239.7079 239.1429 238.6645 238.8912 238.4286 237.1744 233.5325 233.7294 234.0676 233.2104 232.6461 232.5889 232.8565 232.2074 231.6395 229.8316 231.3299 233.7227 236.8225 238.8543 239.7047 240.4454 241.7113 243.86 -9999 +293.5099 293.6478 292.4415 291.7472 290.1685 289.5421 289.9498 289.4254 288.7427 287.9872 286.5068 284.8791 284.2771 283.5283 283.3889 284.1991 281.7108 275.382 266.7066 262.4281 262.9561 262.7275 262.7337 267.4879 271.0892 275.0478 278.1317 280.632 282.5885 283.5757 284.4434 284.2513 282.254 280.7061 274.3857 274.2487 277.499 279.4411 279.8964 279.8375 281.3211 282.1071 284.2104 286.4631 287.3719 290.7545 292.6556 293.7229 295.153 297.1597 298.6616 299.987 301.5019 303.5241 303.9375 304.136 303.527 302.9244 302.0005 301.1577 299.2557 298.0883 294.4072 291.9976 287.4713 284.1237 283.5062 282.2266 280.7604 280.4031 280.2332 280.9878 282.1106 283.3738 283.2107 281.4575 279.2357 278.1818 276.2805 275.3695 274.5533 274.3147 274.3424 271.5387 273.5963 276.6239 279.9434 282.0807 282.8773 282.1915 282.222 278.0422 277.5081 280.902 283.8174 286.0227 287.88 288.959 289.8773 289.6762 288.096 287.2644 286.9804 284.5901 281.7585 278.7086 275.424 271.9141 272.0741 277.1257 280.2683 281.5541 282.8782 284.3976 285.3642 286.0029 286.0986 283.5286 281.3679 278.9004 275.5325 271.7958 271.8691 270.6158 270.5226 268.6942 261.5015 265.9202 271.2749 275.5712 278.1419 279.6144 278.9464 280.73 282.9365 288.105 289.9955 292.5279 294.3861 295.909 297.5725 299.9201 302.3503 303.8181 304.5296 304.4452 304.0044 303.5729 302.5206 300.6042 298.8928 296.3057 295.157 291.3735 288.9314 286.8116 284.6146 281.422 278.7097 275.6617 273.3192 270.2394 269.1562 267.801 269.2384 271.9409 273.4372 272.2219 275.1172 276.9198 276.5208 276.6032 277.9084 279.1692 280.6449 280.9242 279.7697 277.8423 277.1455 275.9401 274.7065 272.417 270.0243 268.4153 266.8961 267.7828 267.4702 266.3753 266.04 266.0607 260.1873 257.7063 254.5039 250.3054 245.4762 252.1792 257.0685 262.5049 266.3479 266.6812 266.1969 266.1934 264.8817 264.6903 264.0638 264.9169 267.3998 269.2557 272.4565 273.2853 273.1049 272.0206 269.9346 267.2355 265.1033 263.2411 258.8467 260.4679 263.9501 263.6357 262.8469 260.1823 257.7495 255.4022 254.6186 255.3122 257.2257 259.3183 259.2428 259.5342 258.3243 257.9038 257.2165 253.9851 250.5913 246.2947 237.1203 237.2762 237.3091 237.2993 237.2724 237.1189 237.001 236.8612 236.8938 237.2787 236.5569 236.445 239.8565 245.1789 244.1958 236.7459 235.8515 235.8204 235.8391 235.6809 235.2987 235.2964 235.2613 235.5461 235.3667 235.471 235.4537 235.7406 235.508 235.4812 235.3862 235.7517 236.0498 235.996 235.8266 235.7939 235.9237 238.5384 237.3087 236.9404 236.1787 235.0442 234.8526 234.4484 234.4215 234.5073 234.4323 234.4142 234.5205 234.9898 234.9513 236.4025 243.2417 243.9691 247.2115 250.2023 247.8729 246.7 247.225 240.0069 234.3651 234.2486 234.4982 233.2733 234.1473 233.752 233.6433 233.5814 233.4062 233.6865 234.4774 234.4098 233.9031 233.6934 234.1117 234.5172 235.5293 236.9936 237.5184 237.7785 238.0993 239.2285 239.8027 241.1753 241.4035 241.6068 241.4422 241.3377 241.6221 241.8574 240.7668 241.3475 241.8991 239.2538 240.0033 239.6676 239.2552 238.2589 237.2778 236.5265 235.8461 233.7849 232.8124 232.7104 232.9616 234.1449 235.5546 236.0931 236.4469 236.6408 236.2174 235.8697 237.0035 240.1694 241.8908 241.0325 236.5343 239.3059 241.1853 239.5649 238.6643 237.6205 236.4035 236.33 237.0753 238.4794 240.5008 242.047 244.6483 243.0305 239.7569 235.4921 235.2834 235.8555 235.2752 235.8532 237.2483 239.1636 242.2233 243.6916 244.8323 246.2494 247.1845 248.2726 249.3041 250.5247 251.5252 252.7381 252.8633 252.2618 251.6857 252.0267 252.4713 253.3316 253.0585 253.4789 253.7995 254.2423 254.1705 253.607 252.9896 252.0523 251.1577 250.8047 250.1224 249.076 248.686 248.7628 248.4736 248.0879 247.5727 246.9259 245.9862 244.5914 242.9116 242.1674 242.4328 242.8341 243.0265 242.3184 241.1406 241.1165 240.9395 239.5692 238.7683 237.674 237.456 237.8082 237.5245 237.7316 238.5473 238.7498 238.8858 238.9654 238.2537 237.7482 234.3458 232.1454 231.7999 231.413 231.8443 232.4453 229.3062 231.2077 232.5352 233.3459 235.046 237.5507 238.5595 240.7362 241.6183 244.4635 245.4016 245.9522 246.8428 248.1069 249.7596 251.7042 253.7968 255.3123 258.9552 261.2685 262.8908 264.1037 264.0123 262.5905 261.6427 262.6973 263.0267 261.866 260.6388 258.5514 256.326 254.5729 252.7966 251.5258 250.9428 249.3459 245.9641 243.7543 242.215 240.6342 239.782 238.6861 237.9104 237.475 237.0893 236.4667 232.7273 232.6435 232.5476 232.6646 232.1475 231.9235 231.8967 231.6799 231.7827 231.4418 231.6383 234.3204 237.4688 238.8543 239.7047 240.4454 241.7113 243.86 -9999 +293.145 293.3332 291.7135 290.5405 289.3387 288.3232 288.7754 287.9031 286.9102 285.8108 284.5588 283.3156 283.1042 283.5271 283.9014 284.3707 281.1019 275.8559 266.4093 262.9676 260.439 262.6587 262.3264 263.0896 267.4669 274.6007 277.4081 279.4102 280.2375 281.1737 281.5483 281.0155 280.0211 277.6935 271.5965 274.8031 279.3925 282.8005 284.6383 285.1837 284.6507 283.9622 285.5757 290.46 290.0125 291.0738 293.2695 294.4716 295.8395 297.2398 298.6086 299.8394 301.6965 302.5802 303.2573 303.9936 303.9159 303.8011 303.5063 302.7739 300.9864 299.4064 295.5123 293.8015 290.2962 286.6353 284.8022 283.2132 282.9955 282.0945 281.2693 279.1354 278.5034 282.0943 282.9959 281.3961 280.4844 279.3637 277.506 276.0913 273.7693 273.5263 273.2585 274.4456 277.1466 280.0537 281.4783 283.4416 284.7723 285.2641 284.4711 280.7824 277.6491 281.0571 283.4283 285.4383 287.241 289.6781 290.4505 290.393 289.3683 288.248 287.4254 285.7264 281.7585 278.7086 275.424 271.9141 272.0741 277.1257 280.2683 281.5541 282.8782 284.3976 285.3642 286.0029 286.0986 283.5286 281.3679 278.9004 275.5325 271.7958 271.8691 270.6158 270.5226 268.6942 261.5015 265.9202 271.2749 275.5712 278.1419 279.6144 280.4113 281.6222 283.5304 287.4388 289.695 291.9157 293.4605 294.89 296.3921 298.307 300.3534 301.5238 302.3384 301.8784 302.6818 303.5574 303.3337 301.4942 299.1454 297.0885 295.0754 290.5969 287.4111 285.0988 284.4944 282.4785 275.7619 273.9578 270.0132 270.5779 269.8338 272.6228 273.1678 274.9959 275.4936 274.2685 276.6384 278.0988 278.6252 278.7144 279.8205 279.9322 280.7714 282.0775 281.9116 280.3969 278.869 277.1914 275.2062 272.7972 273.021 269.4566 270.243 270.6481 270.4496 269.5743 268.729 267.4354 262.4041 259.0548 255.8978 251.318 247.1387 249.6585 254.9103 259.4653 260.8249 263.7114 264.2091 265.428 266.5823 267.0686 267.6776 268.2992 268.774 270.1749 272.7484 273.5208 273.7403 272.7218 271.6819 269.6873 267.6597 265.3806 262.9712 263.6058 263.8148 263.3228 262.5408 260.1965 258.0065 255.9931 254.9832 255.6321 256.7065 258.3609 258.0415 256.68 255.634 255.2211 254.5783 252.2461 249.1868 244.426 237.2603 237.0337 236.9373 236.9119 236.8757 236.86 236.7387 236.6703 237.0585 237.2084 237.1184 236.6151 242.2235 246.9322 242.5666 236.2906 235.798 235.6145 235.5771 235.4504 235.2701 235.2171 235.1725 235.3811 235.377 235.7118 235.6956 236.0059 235.812 235.4615 235.677 235.9868 236.3683 236.3968 236.036 236.3591 236.9698 239.0746 237.4971 236.5825 236.3505 235.1767 234.5895 234.5892 234.3088 234.402 234.3492 234.5379 234.5085 235.2223 236.0227 238.6243 244.0416 248.5431 249.1416 251.095 251.53 252.0358 252.2077 246.9421 243.2957 235.8046 234.2586 234.317 234.234 234.0732 233.8501 233.7598 233.4847 233.4424 233.3105 233.8553 233.7075 233.6549 234.0725 234.1595 234.9554 235.9271 236.3848 236.6551 237.3513 238.2641 239.0684 240.5188 241.0926 241.1489 240.8232 240.7615 241.1676 240.6736 238.2824 238.7604 241.0223 239.0938 237.9993 239.1712 238.8355 237.9253 236.7238 235.6073 234.8351 234.1186 234.0979 232.5439 232.7884 233.2451 234.752 235.2656 235.7163 236.0003 232.6473 231.9845 232.4155 235.9385 238.015 235.7676 237.8172 241.2407 241.2861 240.0739 239.6707 237.3671 236.256 235.9613 237.4273 239.4684 241.2225 242.6955 244.4323 242.5452 238.9385 234.5176 234.504 235.1305 235.338 237.4729 239.7481 241.3559 243.3981 244.129 245.3817 246.4613 247.2278 248.3514 249.6833 250.6364 251.5663 253.1216 253.6619 253.6763 252.8307 252.6757 252.5307 252.3845 252.5023 252.5713 252.9445 253.5634 253.4928 252.7894 251.9344 251.0785 250.4243 249.9078 249.4636 248.1778 247.6722 247.3487 247.1076 246.927 246.6924 246.2719 245.4005 244.5432 243.0838 242.6695 241.6057 241.8043 241.3521 240.8766 240.6388 240.5047 240.3746 239.8412 238.6993 237.8704 237.3619 236.761 237.201 237.6706 238.3529 238.6422 238.8087 238.8525 238.5947 235.6546 232.9461 231.766 231.2997 231.3477 231.766 232.3565 229.2952 231.6036 231.6217 232.6419 233.5 235.0817 237.1553 238.2603 240.5415 243.5845 243.7475 245.1524 245.7499 247.1356 248.728 250.4403 251.5506 253.717 258.6588 261.2685 262.8908 264.1037 264.0123 262.5905 261.6427 262.6973 263.0267 261.866 260.6388 258.5514 256.326 254.5729 252.7966 251.5258 250.9428 249.3459 245.9641 243.7543 242.215 240.6342 239.782 238.6861 237.9104 237.475 237.0893 236.4667 232.7273 232.6435 232.5476 232.6646 232.1475 231.9235 231.8967 231.6799 231.7827 231.4418 231.6383 234.3204 237.4688 239.554 239.8493 240.1604 240.9129 244.2086 -9999 +290.5546 290.5551 289.9695 288.4876 287.4501 286.8255 287.3268 286.9343 285.768 284.4716 282.5559 280.4012 279.9324 281.0574 282.4081 283.3152 281.3591 276.8257 267.0418 262.8419 262.368 262.3355 262.6157 262.2885 264.1417 272.9986 275.4165 277.2252 277.2939 276.702 278.4581 277.8852 276.1264 273.4879 271.9297 275.5769 279.8235 282.8506 285.4664 287.3729 287.8485 287.5923 287.0152 291.2374 292.1591 292.288 293.6191 294.6353 295.8461 297.024 297.8958 298.9541 300.3214 300.9315 302.1325 303.3785 303.7817 303.6895 303.4553 302.6512 301.1725 299.5906 294.128 290.8147 288.5804 285.4695 285.4798 285.8807 285.6839 285.1734 284.4271 281.3417 278.9614 277.4884 280.9825 280.199 280.4844 279.3637 277.506 276.0913 273.7693 273.5263 273.2585 274.4456 277.1466 280.0537 281.4783 283.4416 284.7723 285.2641 284.4711 280.7824 277.6491 281.0571 283.4283 285.4383 287.241 289.6781 290.4505 290.393 289.3683 288.248 287.4254 285.7264 282.723 280.0605 276.8206 270.2011 272.3238 277.025 279.4619 281.1103 282.8654 284.4557 285.9468 286.4064 286.7454 283.6082 281.5257 278.6974 276.4061 277.7712 277.8936 275.9343 273.8286 272.0063 265.0021 264.532 269.6497 272.6453 275.3733 277.4915 279.3946 281.0261 283.0497 286.8239 288.4047 290.711 292.2477 293.6673 294.947 296.1563 297.4238 298.4186 299.6473 299.756 302.2272 303.3012 303.0384 301.3251 299.8553 297.5829 295.1242 291.4682 288.9063 287.3032 286.6536 284.7235 279.7351 275.8687 276.8309 274.8532 275.3902 276.4831 276.3328 278.2133 278.4207 276.3427 277.891 279.4304 280.3726 280.687 280.7882 281.28 281.6465 282.8929 283.2521 281.5154 279.1012 276.8503 275.433 274.1629 274.2404 271.3301 272.2905 273.1364 273.0152 272.4237 271.8945 270.1719 264.4826 262.1584 258.5416 254.998 253.4983 248.9232 251.0707 255.3969 257.6739 260.6709 261.6916 263.0184 264.7657 267.6642 268.7141 269.6078 270.6136 271.6167 273.5239 274.1588 274.61 273.3586 271.6485 269.0406 267.5906 266.192 264.7895 263.6439 263.4782 264.1947 262.2844 259.7155 257.8059 256.4906 255.6186 254.9531 255.2513 256.1567 255.4386 254.3619 251.4086 250.7917 252.3969 249.7899 246.5048 240.7618 237.2572 237.1942 237.3586 236.9887 236.9852 237.1804 236.8142 237.1137 236.8567 237.2223 236.8248 238.1227 244.2876 247.6891 242.0016 236.1505 235.6079 235.595 235.5674 235.3448 235.2414 235.3051 235.2936 235.6764 235.5954 235.8706 235.8807 236.1972 235.9957 235.9296 236.1434 236.4396 236.8038 236.4878 236.9367 237.2018 237.672 239.6829 237.851 237.1941 237.167 237.0469 235.1083 234.609 234.44 234.3967 234.536 234.3941 234.786 238.6082 239.0405 239.3251 245.0135 250.367 252.5959 253.5183 254.7551 255.1324 253.5705 249.855 247.8309 239.4904 233.8299 234.1224 232.8139 234.2099 234.1497 233.9118 233.8024 233.4796 233.4718 233.6306 233.5662 233.5006 233.57 234.1267 234.4503 235.1242 235.6789 236.0311 236.5445 237.5121 238.4086 239.0813 239.131 239.7526 239.9073 240.1283 240.223 236.4706 234.2727 234.2716 238.8622 239.0648 236.8648 237.0788 238.0752 237.441 236.1199 235.3763 234.636 234.4478 234.3737 232.4316 232.4588 232.7375 234.2111 233.8983 234.1691 234.9716 232.3397 232.0947 232.0282 231.963 232.4788 238.1419 241.0651 240.9473 240.9575 240.7214 239.9579 236.9439 235.7958 235.825 237.8115 239.5178 241.3409 242.3437 244.0188 241.9047 237.3864 234.1047 234.3948 234.717 236.0534 239.0936 238.7834 243.4341 244.2629 244.9542 245.6509 246.1421 247.0032 248.1798 249.2373 250.1868 250.9822 252.9936 253.6691 254.2065 254.1959 253.5143 252.8386 251.8909 251.6431 251.8986 252.3283 252.6502 252.4119 251.9257 251.0839 250.2072 249.5356 249.1656 248.6801 247.2614 246.9585 246.4968 246.2358 246.037 245.8004 245.5714 245.1889 244.439 243.4757 243.0658 242.4067 241.6492 240.9263 240.2623 240.077 239.6355 240.3746 239.8412 238.6993 237.8704 237.3619 236.761 237.201 237.6706 238.3529 238.6422 238.8087 238.8525 238.5947 235.6546 232.9461 231.766 231.2997 231.3477 231.766 232.3565 229.2952 231.6036 231.6217 232.6419 233.5 235.0817 237.1553 238.2603 240.5415 243.5845 243.7475 245.1524 245.7499 247.1356 248.728 250.4403 251.5506 253.717 258.6588 260.519 261.4693 262.8922 263.1874 261.8416 261.6821 261.8266 261.5381 260.8148 259.2004 256.948 254.3848 252.0652 250.5241 249.5048 248.7517 247.7391 246.5328 244.4148 241.8992 240.5861 239.3533 237.0948 234.6292 233.5262 232.7481 231.949 231.9149 232.0973 232.0914 232.2367 231.0099 231.7759 231.6952 231.9315 229.8147 231.2355 232.6768 235.3288 238.6647 239.5694 239.9864 240.9915 244.9562 248.6613 -9999 +287.0222 287.2701 288.1108 286.716 285.6016 284.8077 285.8048 286.153 285.7915 284.6091 282.4915 279.9972 278.1404 277.3755 280.1698 281.4035 279.9618 277.1114 272.3081 263.942 262.5412 261.2505 262.5699 262.3409 262.3099 269.6549 273.0805 274.3935 273.9923 273.814 274.8837 274.0642 271.7277 270.0659 273.3451 275.1391 279.5102 282.7401 285.712 287.7661 289.0782 289.3289 289.3129 291.735 293.1743 293.8565 294.0649 294.9205 295.6056 297.024 297.8958 298.9541 300.3214 300.9315 302.1325 303.3785 303.7817 303.6895 303.4553 302.6512 301.1725 299.5906 294.128 290.8147 288.5804 285.4695 285.4798 285.8807 285.6839 285.1734 284.4271 281.3417 278.9614 277.4884 280.9825 280.199 279.5953 278.8348 277.7992 276.1647 273.0576 273.3175 273.7618 275.8383 277.7598 281.6421 283.3621 284.8946 286.4267 287.0502 286.7853 284.1468 279.2541 279.3772 281.6147 284.4778 287.0294 288.6411 290.9905 290.623 289.5542 288.7268 288.3084 286.4376 283.6132 280.5573 276.4485 271.5464 270.7827 276.2663 278.635 280.5566 282.134 283.8026 285.5021 286.929 287.4966 283.948 282.3478 279.8131 280.1117 281.4168 280.9235 279.2737 276.7428 274.9629 267.539 264.3472 267.1668 270.3506 273.4923 276.1162 278.4129 280.5838 282.1 285.7298 287.7676 289.6707 291.5878 292.7535 292.6605 292.5605 293.9239 294.7701 297.7216 299.4893 301.7197 303.0193 302.1756 301.3987 300.2563 298.0056 296.1631 293.196 291.3503 289.8057 288.3269 286.4962 285.1135 282.7882 278.8629 280.313 281.8906 280.1727 280.1965 280.3104 280.1653 279.8995 279.173 280.0889 281.9466 282.1084 282.4507 282.7529 283.3603 284.1319 284.1749 282.2215 279.7024 277.7476 277.1761 275.6883 275.0493 273.348 273.929 275.2627 275.1044 274.5982 273.5896 271.9659 266.6483 263.4729 260.8844 257.7304 255.5351 253.0793 249.5931 250.5551 254.3068 258.9122 260.9727 263.5573 267.5548 268.9558 270.3998 271.3474 272.1763 273.0915 274.6237 274.7369 272.9477 271.6918 270.6294 269.2488 266.9462 264.2683 263.3405 264.6005 264.8397 263.8633 261.645 259.2302 257.6879 256.7161 255.5211 254.1587 253.9798 253.9104 253.4508 252.4528 248.3962 246.7406 249.1359 245.7943 240.6227 238.1662 237.4171 237.6505 237.6994 237.657 237.9996 237.8293 237.554 237.2896 237.0404 236.9615 236.6607 238.9815 245.3704 248.4595 243.4603 236.8589 235.6927 235.6165 235.4801 235.6058 235.3414 235.5448 235.4952 235.8773 235.7552 235.9619 236.1748 236.3786 236.4276 236.6147 236.8916 237.1163 237.7727 237.6377 237.6283 237.4707 238.0253 240.6601 238.4779 238.0249 237.9081 238.0695 236.9094 234.5225 234.5815 234.7518 234.6 234.8447 239.8904 247.9569 247.6231 241.3663 244.9955 251.8481 255.4542 256.2037 257.6153 256.6853 252.693 250.4911 244.4701 236.401 233.9951 234.0832 234.3609 233.0482 234.2818 234.1066 233.9039 233.7233 233.6033 233.5621 233.5778 233.5327 233.5296 233.6097 233.9003 234.6261 235.2412 235.4831 235.9944 236.8587 236.0095 234.9382 234.9483 236.2596 237.639 237.9709 237.2711 232.6946 232.6214 232.579 236.5758 236.333 234.8686 235.8699 237.1573 237.4168 236.3053 235.4295 234.8392 234.8651 234.6572 232.5663 232.4238 232.449 233.1181 233.1714 233.266 233.1484 232.3211 232.0676 232.0002 231.993 235.826 240.823 240.8128 240.2041 240.3757 240.8339 238.9331 235.6908 233.8662 236.3698 237.9274 239.6707 240.8474 241.988 242.9479 241.044 236.6947 233.8313 233.8872 234.7454 236.2348 239.1302 241.3711 243.9035 244.6254 245.1802 245.234 245.3274 246.2048 247.483 248.4086 250.1868 250.9822 252.9936 253.6691 254.2065 254.1959 253.5143 252.8386 251.8909 251.6431 251.8986 252.3283 252.6502 252.4119 251.9257 251.0839 250.2072 249.5356 249.1656 248.6801 247.2614 246.9585 246.4968 246.2358 246.037 245.8004 245.5714 245.1889 244.439 243.4757 243.0658 242.4067 241.6492 240.9263 240.2623 240.077 239.6355 239.7874 239.6347 239.2388 238.5168 237.5099 237.1062 236.7396 237.6989 238.5201 238.8546 238.7915 238.8261 237.4179 232.9424 231.2821 231.9436 231.7138 231.5929 231.6585 232.1465 229.4399 231.8711 231.3849 232.2531 232.942 234.2111 235.5476 236.866 238.332 240.5202 241.442 242.732 243.6469 245.4513 246.7186 247.7293 248.9291 251.9965 257.335 258.6947 260.3966 261.6781 262.204 261.6088 260.7796 260.4809 259.5706 258.7571 257.635 256.9375 255.6214 253.3484 251.0134 249.2661 248.5815 247.16 245.3975 243.9137 241.1103 239.5725 236.449 232.769 231.8498 231.5436 231.3316 231.252 231.4453 231.7401 232.1237 231.4937 230.9749 231.4264 231.9152 230.4421 231.8418 231.0875 233.8288 236.2915 239.8534 240.0063 240.1358 246.9741 247.6505 248.7776 -9999 +282.9814 283.8461 283.549 284.3391 283.437 282.9735 284.5457 285.8224 286.7473 285.7232 283.4207 281.0973 278.5242 275.1759 276.8114 279.1252 276.9295 274.3752 269.9515 263.0274 262.9365 260.8021 262.5699 262.3409 262.3099 269.6549 273.0805 274.3935 273.9923 273.814 274.8837 274.0642 271.7277 270.0659 273.3451 275.1391 279.5102 282.7401 285.712 287.7661 289.0782 289.3289 289.3129 291.735 293.1743 293.8565 294.0649 294.9205 295.6056 296.1865 296.7659 297.5144 298.97 300.7828 302.1007 302.9808 303.55 303.3316 302.6974 302.2419 300.0917 297.8536 291.0196 288.2964 286.9518 288.951 288.957 288.248 288.2311 288.1307 287.3318 283.6647 280.3626 277.847 277.1347 278.7792 277.9399 276.2509 275.0112 273.5282 273.7003 273.7944 274.2697 275.0004 278.0441 281.3904 283.2883 285.4545 286.8695 289.3016 288.909 287.0545 282.4392 281.2352 284.3503 286.8495 288.5167 290.3727 291.6874 291.316 290.0626 289.2033 288.3384 286.2603 283.7011 280.7552 276.532 271.9577 271.8448 272.6907 276.5165 279.6431 281.5667 283.3268 284.972 287.1344 288.2776 285.4615 283.7666 281.7237 282.9431 284.4982 283.4255 281.4511 278.8577 275.9897 269.5119 264.357 265.9988 269.7442 273.1281 276.2525 278.3228 280.0112 281.686 284.3258 286.06 287.2367 290.1192 290.1909 288.4471 288.1591 290.1446 293.6623 298.5947 299.6505 300.6404 301.4541 301.1694 301.4514 300.7699 298.6826 297.2758 294.9038 293.4841 291.7007 290.3241 288.4724 286.9799 284.7362 280.0359 283.5608 284.5273 283.457 283.1719 283.1602 282.6144 282.3953 280.8514 281.7407 283.0583 283.2493 284.4951 284.3793 284.4833 285.3407 284.9902 283.3403 280.453 279.5911 278.9052 276.9836 276.8008 276.0092 276.855 277.1007 277.0792 276.5977 275.6925 274.2998 268.1367 265.1618 262.6466 259.496 256.4077 255.4091 253.4733 251.0326 253.2707 258.8261 261.9268 265.1476 269.8635 271.4707 272.7009 273.7742 274.5184 274.8529 274.2041 273.7484 274.2604 273.2091 271.3323 270.4314 268.5147 267.0034 266.2934 266.5932 265.7528 263.6971 261.4098 259.4586 258.0742 257.6462 255.7894 254.196 253.2985 251.1949 250.6936 249.5106 248.5517 242.5986 242.8282 238.5073 237.6841 238.6302 238.1441 237.9953 237.7724 237.6852 237.8131 237.6411 237.4921 237.1672 237.0944 236.9225 236.6983 241.9694 247.0284 248.5092 244.4018 237.8474 236.1501 236.0206 235.891 235.7187 235.5186 235.6611 235.5981 236.0974 236.1376 236.4115 236.5464 236.5278 237.5338 237.6649 239.0221 239.216 238.7039 238.0866 237.8969 237.8013 238.3395 241.6022 239.7733 239.0428 238.9457 238.8919 235.6709 234.6886 234.7729 234.9486 234.7178 237.4527 246.1994 252.2952 252.1776 244.483 246.9164 252.7094 257.2115 259.2849 259.9471 257.0086 251.1657 244.7115 242.4538 234.8902 234.0574 234.1273 234.1172 234.3284 233.1883 234.1146 233.924 233.768 233.7462 233.8284 233.622 233.5775 233.5691 233.6561 233.8045 234.2367 234.6862 235.1068 235.4068 235.6512 235.0287 234.1753 233.9996 234.4374 235.3509 234.3365 233.5159 232.429 232.2151 232.2007 234.3299 233.4113 233.3598 233.8374 234.1874 236.8262 236.385 236.0417 235.9391 235.4121 235.4348 234.4435 232.0546 231.8416 232.4356 232.7609 231.8304 231.7769 232.3211 232.0676 232.0002 231.993 235.826 240.823 240.8128 240.2041 240.3757 240.8339 238.9331 235.6908 233.8662 236.3698 237.9274 239.6707 240.8474 241.988 242.9479 241.044 236.6947 233.8313 233.8872 234.7454 236.2348 239.1302 241.3711 243.9035 244.6254 245.1802 245.234 245.3274 246.2048 247.483 248.4086 249.466 250.5867 252.585 253.6525 254.4378 254.8089 254.4647 254.0061 253.3173 251.7567 251.5829 251.6428 251.8244 251.8116 251.5151 250.7312 250.1814 249.3355 248.8675 248.2743 246.5384 246.0112 245.9032 245.4469 245.1582 245.2377 245.291 244.7314 244.4727 243.2444 242.915 242.732 241.9685 241.1954 240.7835 240.2133 239.2735 239.1303 239.1315 238.4482 238.7125 237.6998 236.5008 235.8396 236.4299 237.8841 238.1239 238.1782 237.9759 234.6929 231.0917 231.6054 231.7062 231.6094 231.5886 231.624 232.2234 229.6356 230.9283 230.4052 231.0733 232.6151 233.5821 235.0436 234.8585 236.5136 240.8052 241.0583 241.1893 242.1548 243.2828 245.407 246.0087 247.55 250.0222 254.9601 257.3089 259.2406 260.8859 261.8305 260.3254 259.6214 258.6638 257.5161 256.795 256.0428 255.3127 253.9138 252.5159 250.9507 250.0498 248.8255 247.2098 242.502 241.2382 239.5195 237.1748 234.4801 232.3588 231.5496 231.2903 231.1049 231.2739 231.2729 231.6711 232.1968 231.7714 231.3907 232.1136 230.0894 230.269 231.4385 233.2349 234.8355 236.5796 240.0536 240.7663 243.0411 246.6485 250.7777 249.9913 -9999 +282.9814 283.8461 283.549 284.3391 283.437 282.9735 284.5457 285.8224 286.7473 285.7232 283.4207 281.0973 278.5242 275.1759 276.8114 279.1252 276.9295 274.3752 269.9515 263.0274 262.9365 260.8021 262.5094 262.4001 262.4261 265.0286 269.8323 270.4294 269.9556 269.6325 269.1037 268.2932 269.2203 272.0721 277.6428 279.6223 279.1648 283.0543 285.5231 286.9879 288.2549 289.3697 290.3536 292.1618 293.5785 294.157 294.4247 294.188 293.549 293.599 294.3 295.918 298.6187 300.5048 301.9136 302.9099 303.0162 303.2952 302.6501 301.5517 298.9623 292.108 289.5994 288.8571 290.474 292.0712 291.6595 291.3383 290.8607 290.3021 289.3108 286.4453 283.4737 279.8853 277.292 275.0049 274.7181 274.1225 274.6767 274.5047 274.3622 275.4651 275.7371 275.4104 276.6947 280.6035 282.877 284.2401 286.0749 289.896 290.762 289.5452 285.0697 284.371 286.8104 288.7659 290.274 291.6964 292.5827 291.8461 290.4785 289.5638 287.9289 286.0822 283.4761 280.3726 275.7712 273.5128 275.0294 273.82 274.3028 276.6928 279.9671 282.3377 284.9117 287.6902 288.8899 286.2735 285.155 282.9022 284.5386 286.3296 285.0039 282.82 279.8681 277.4066 271.814 265.9605 264.238 268.0226 272.4216 275.0253 276.7246 279.1532 280.5929 281.9475 282.8813 284.6047 286.6328 286.8929 286.2417 289.3648 291.4903 293.9297 298.995 299.6045 298.9021 299.0946 300.2304 301.4008 301.3492 300.0522 298.8922 295.7374 294.319 292.8777 291.5502 290.2237 288.2807 284.7734 283.5232 284.8724 286.8159 285.9302 285.8886 286.0021 285.2552 284.6385 282.304 283.3374 284.7885 284.9374 285.4818 285.8696 285.5931 286.1542 285.7854 284.0159 282.3722 281.0751 280.0772 279.0547 279.1618 278.3722 277.9482 278.733 278.6563 278.4498 278.3596 275.5552 270.1152 267.4654 262.9333 260.3215 260.1241 259.4723 257.1923 254.7767 255.2967 259.1506 262.1234 264.9578 268.3279 270.9809 273.6347 274.7931 275.179 275.9108 276.8556 275.6839 274.5465 273.2225 271.7893 270.8445 270.0778 269.5323 268.4879 267.1902 265.6717 263.8331 261.7249 260.5041 260.2406 258.9891 256.8684 255.2451 254.7119 247.8563 248.3882 247.4626 247.1655 241.2824 239.3167 238.7206 238.6392 238.4366 237.9145 237.9638 237.8685 237.6873 237.6221 237.4734 237.4864 237.1922 236.9728 236.7937 239.725 246.9461 249.9811 249.3315 244.8253 239.4856 236.8863 236.6764 236.4862 236.1349 235.859 236.1798 235.9647 236.5787 236.4568 236.7622 236.6991 238.1902 238.4024 239.092 240.1001 240.5781 240.0965 239.2213 238.9939 238.7059 239.8469 241.8617 241.598 240.697 240.2297 240.1612 237.084 234.7918 234.4196 234.5158 235.8726 241.8278 249.2618 254.4441 254.1628 248.8354 246.8659 251.6019 257.639 262.1897 260.9948 257.6206 252.9411 243.882 236.8409 234.0056 234.0976 234.1862 233.9613 234.042 234.0393 233.1929 234.0896 233.8971 233.7267 233.7039 233.3163 233.7663 233.5419 233.6561 233.8045 234.2367 234.6862 235.1068 235.4068 235.6512 235.0287 234.1753 233.9996 234.4374 235.3509 234.3365 233.5159 232.429 232.2151 232.2007 234.3299 233.4113 233.3598 233.8374 234.1874 236.8262 236.385 236.0417 235.9391 235.4121 235.4348 234.4435 232.0546 231.8416 232.4356 232.7609 231.8304 231.7769 232.5434 232.4742 231.9568 231.8472 233.0292 236.3867 236.0544 235.0076 237.132 240.451 237.7935 234.6141 234.1265 237.9504 239.0797 239.4545 240.09 240.9378 241.6586 240.0344 235.8131 233.3027 233.7876 235.215 236.8363 239.3172 240.4852 243.4796 244.2438 244.5083 244.365 244.7558 245.6504 247.093 247.8409 248.7453 249.9676 252.1691 253.2213 254.204 254.7852 255.0343 254.772 253.7473 252.7477 251.3173 251.1452 251.2224 251.3807 250.8388 250.5591 250.2303 249.7102 249.4242 248.8618 247.3169 246.0202 245.4128 244.9908 244.7232 244.5454 244.8324 244.776 244.371 243.7733 243.1106 242.9069 241.5131 240.969 240.7326 240.4118 239.5421 238.8924 238.0388 237.6492 237.6014 236.6841 236.4627 235.4509 233.7163 236.6881 237.3023 237.1565 236.5321 232.2161 231.6241 231.6542 231.8129 231.6515 231.5312 231.6295 231.882 229.6925 233.0314 232.2712 231.2818 232.2687 233.0616 234.4817 237.2675 241.8831 248.5818 247.7391 246.6795 247.5125 248.8683 249.3649 249.3846 250.1111 251.9587 256.4886 258.0836 259.385 260.9411 261.9411 259.4283 258.4311 256.6137 255.4119 255.1414 254.3112 253.599 252.3089 251.1181 249.1538 248.4407 247.1108 245.7612 241.8198 240.3644 238.3995 235.9417 233.7522 232.1991 231.5769 231.3429 231.0147 231.2261 231.4023 231.6932 231.6503 231.5843 231.8806 229.7188 231.9127 231.5718 230.8998 234.5482 235.6328 237.2819 239.7154 241.6359 243.1935 250.8915 250.4519 249.8049 -9999 +284.8731 282.4202 280.3925 280.8246 280.4578 280.629 283.8968 285.4733 286.4685 284.7111 283.6771 281.4131 278.9357 275.1059 272.5437 275.3147 274.5 271.4657 267.3136 262.4923 262.7806 260.3071 262.4915 262.4256 262.5745 262.8931 265.5322 264.6086 264.7225 266.341 270.1954 269.9719 272.0564 274.6892 278.0887 280.9576 282.2387 282.0175 284.1161 285.6513 287.0227 288.4275 289.9425 292.3882 292.8293 292.9014 292.6566 291.6614 290.7813 290.7525 293.1963 294.4794 298.6506 300.2686 301.6121 302.349 302.5835 302.5753 302.542 300.9063 298.9989 293.1066 293.2241 293.4904 293.7124 293.5927 293.7707 293.4008 292.6847 291.8146 290.8277 288.5635 285.4654 281.8647 278.7382 276.5797 275.9246 274.4844 274.8394 275.831 279.9052 280.456 279.6901 277.2565 276.8145 276.1411 279.0005 281.55 284.4077 287.8173 290.0839 290.4413 288.1207 285.3452 288.3399 290.2033 292.0107 293.1469 294.0681 292.2052 291.1229 289.2198 287.362 285.6842 282.7506 278.7779 275.9753 274.2319 276.7043 278.0168 277.1564 275.018 276.3932 280.244 283.8249 287.2823 288.9578 286.9479 285.5687 284.8041 285.6657 286.8154 286.0972 283.8867 282.6199 279.9224 273.6472 269.1931 265.4248 266.862 271.1279 274.2404 276.986 278.2934 279.0713 278.2153 277.9497 279.8397 282.0352 283.5228 286.2389 288.41 288.8539 290.3109 295.8007 297.2156 296.9492 297.7059 298.9524 301.2198 301.5099 301.1515 300.0769 297.4617 295.7336 294.1079 292.6579 290.8761 288.5273 287.4117 287.1846 286.8664 288.4917 287.8796 287.9389 288.0345 286.8422 285.2959 283.2943 284.8369 286.1613 286.4742 286.2841 286.5918 286.3927 286.4334 285.8175 284.5723 283.1116 281.6665 280.6953 280.2319 280.413 280.4067 280.0428 280.4134 280.428 280.4794 279.5838 276.8484 271.793 268.9304 265.9924 263.9625 263.6501 261.7134 259.2863 258.6587 257.7438 260.5185 262.4552 264.6841 267.6487 270.5694 273.1562 275.3442 277.0763 277.7992 278.2215 276.391 274.323 272.7226 271.5781 270.8643 270.0106 268.9348 267.1002 265.5907 265.7934 265.0289 263.6586 262.9639 262.1113 261.0573 258.9806 257.0465 255.2585 248.8333 244.3082 244.7263 244.2535 239.3141 239.4596 238.8855 238.5275 238.2706 238.121 238.0917 237.8683 237.8784 237.6889 237.6042 237.5302 237.1285 237.1906 237.1175 243.9146 249.1037 251.1095 248.8758 244.9908 240.417 237.704 237.2435 237.1859 236.6455 236.5787 236.5929 236.5542 236.8481 237.0027 236.9888 237.0745 239.1882 239.7305 240.3787 241.1684 241.9034 242.3794 241.6013 240.4706 238.3619 240.3298 241.6621 243.1436 242.555 241.8521 242.2074 237.084 234.7918 234.4196 234.5158 235.8726 241.8278 249.2618 254.4441 254.1628 248.8354 246.8659 251.6019 257.639 262.1897 260.9948 257.6206 252.9411 243.882 236.8409 234.0056 234.0976 234.1862 233.9613 234.042 234.0393 233.1929 234.0896 233.8971 233.7267 233.7039 233.3163 233.7663 233.5419 233.3488 233.3809 233.4506 234.0953 234.7739 234.8459 234.7329 234.4843 233.8502 232.9563 232.8091 232.731 232.4199 232.4598 232.4107 232.351 233.4679 232.9218 232.583 232.4978 232.602 233.5702 235.4605 236.4531 236.3123 236.5134 235.9038 236.512 235.762 232.6206 232.1703 232.4132 231.1543 233.02 232.7287 232.5321 232.9433 232.1043 231.3076 232.6457 232.1618 232.8881 233.0082 234.708 237.0076 234.6378 233.12 237.1527 240.4973 240.2878 239.9987 239.9774 239.8285 240.642 239.2878 236.1631 232.8412 233.61 235.3506 236.8112 238.853 240.3864 243.2672 242.7925 242.8132 243.1721 244.4174 245.3582 246.0491 247.0459 248.1413 249.0409 251.4863 252.5659 253.6287 254.533 255.0251 254.9395 254.2794 252.9068 251.3619 250.8734 250.5227 250.742 250.2609 250.134 249.7402 249.3596 248.9442 248.8017 247.8319 247.0228 245.9146 244.8736 244.2517 244.1074 244.1366 244.1132 243.9052 243.637 243.5821 242.2668 241.3218 240.7829 240.2918 240.0773 239.3556 238.9922 237.9345 237.3489 237.3121 234.3146 233.4022 233.4843 233.7019 232.2596 235.817 236.5589 233.9511 230.9596 231.496 231.8196 231.7852 231.5142 231.4421 231.57 232.1264 229.2428 232.7396 232.2595 231.4858 232.2347 232.7761 233.9571 238.9266 244.7378 249.9378 250.7912 251.3618 252.2841 253.0889 252.5553 253.1947 254.3456 255.8694 259.6968 261.0863 261.4829 261.6744 260.563 258.8804 258.2417 257.04 255.3339 252.6131 251.7497 251.1308 250.8473 249.3761 247.1632 246.3413 245.8711 244.5701 241.0383 238.8076 236.6686 234.3796 233.3347 232.9037 232.3557 231.5266 231.0602 231.1801 231.3382 231.6141 231.6804 231.8173 229.5901 231.913 231.7714 231.654 231.1253 234.419 236.9451 238.1851 239.7 241.6803 241.6751 242.9297 249.257 249.6264 -9999 +288.9354 285.8639 282.892 279.3428 278.0892 278.9478 282.2037 283.8364 284.4565 284.1664 281.7516 281.1695 278.7479 276.3867 272.0353 271.6183 271.7673 268.4251 262.6697 262.5417 262.8143 260.2267 262.6903 262.2131 263.702 263.81 264.8303 266.5572 271.9683 274.3578 275.6338 275.9932 276.0715 277.1161 280.2787 281.5339 283.4838 285.0187 285.5945 287.4855 288.9456 290.1152 290.6566 291.0609 290.8588 290.2833 289.4725 288.9738 289.0201 291.6373 293.7456 295.1955 298.405 299.5967 300.5458 300.9489 301.1695 301.3144 302.2071 301.9441 299.6903 297.4987 296.5535 296.0142 295.8112 295.71 295.8195 295.2375 294.2041 293.4586 292.3648 289.1549 286.4295 283.9197 280.3591 277.9573 275.7312 275.0701 275.3073 277.5778 282.2725 283.991 284.8213 283.5441 281.3051 279.7078 278.7296 277.1783 279.4191 285.5956 287.4356 290.15 289.838 287.5483 287.9711 290.3656 292.5916 293.8517 294.335 292.9849 291.3344 288.9549 286.9218 284.3737 280.7207 277.6024 276.5629 275.5901 277.0858 280.652 281.4448 280.2892 276.1252 277.24 282.013 286.626 288.6418 287.9391 286.5184 285.825 286.0193 287.2533 286.5873 285.2378 283.3788 281.0817 275.6705 271.0366 266.8359 265.2814 270.0501 273.6167 274.6426 273.9654 273.6687 277.6976 280.023 279.5488 281.1884 283.0998 285.2579 286.2707 288.2276 290.1241 292.9536 295.6875 297.6929 298.249 298.7164 301.0189 301.677 301.6542 300.4859 297.9257 296.3956 294.5571 292.8944 291.5702 290.4416 289.4092 288.7827 288.9312 289.9153 289.7275 289.7509 289.0616 287.7334 286.0179 285.4219 285.6933 286.7513 287.2983 287.1667 287.1333 286.4749 285.9316 285.2687 284.4294 283.3411 282.3546 281.8946 281.6734 281.7481 281.6274 281.4914 281.5669 281.3232 281.0025 280.2867 278.0367 273.7259 271.0217 268.8882 267.508 266.402 263.8345 262.3979 261.5247 260.2054 260.6771 262.8489 265.0145 267.526 270.0431 272.1551 274.0092 275.4886 276.7796 279.6091 276.3026 272.8889 271.0806 269.7055 269.1131 268.8009 267.5678 265.4858 264.8144 265.862 265.8618 265.1706 264.2458 263.3277 261.2996 258.6817 256.6997 254.3057 248.6681 246.5913 243.644 240.8867 239.0373 241.0233 240.7811 240.6059 239.049 238.6798 238.3372 238.1744 238.3222 238.298 237.9442 238.3331 238.8922 237.7331 243.8574 243.9146 249.1037 251.1095 248.8758 244.9908 240.417 237.704 237.2435 237.1859 236.6455 236.5787 236.5929 236.5542 236.8481 237.0027 236.9888 237.0745 239.1882 239.7305 240.3787 241.1684 241.9034 242.3794 241.6013 240.4706 238.3619 240.3298 241.6621 243.1436 242.555 241.8521 242.2074 241.3562 235.3988 235.0293 235.3224 240.2784 245.9077 253.3048 256.987 256.8932 254.3131 251.4286 250.2012 254.5153 261.3391 259.8104 256.1295 250.1518 241.2936 234.278 233.8827 233.8534 234.0119 233.9571 233.7824 233.8484 234.0727 232.9632 233.8941 233.8323 233.8339 233.3434 233.6628 233.7906 233.5098 232.8079 233.5318 233.9226 234.6104 234.5713 234.3138 233.3491 232.5513 232.613 232.2255 232.2315 232.3716 232.3484 232.4773 232.3972 232.0031 232.1228 232.3003 232.0705 232.0827 232.4282 235.0759 236.4696 236.226 236.027 237.0472 236.9754 235.3441 232.3188 231.4988 232.5968 233.1713 232.6579 232.5632 232.9847 232.2828 232.6382 232.7642 230.9777 232.0918 231.8995 232.7539 232.7599 233.9587 232.5329 234.0766 238.6784 240.4756 240.6186 240.2246 239.4584 238.7441 240.1326 238.4687 235.4558 232.6322 233.0074 234.27 235.547 237.5573 239.8589 240.815 240.314 240.5301 241.3224 242.8932 244.2867 245.3579 246.1274 247.0178 248.4433 251.149 252.0968 253.1213 254.1127 254.6505 254.9148 254.6399 253.4965 251.3389 250.6346 250.0995 249.9577 250.0004 249.6763 249.1646 248.7698 248.2508 248.3165 247.7397 246.9966 245.7256 244.8324 243.8947 243.533 243.5709 243.2636 243.1626 243.0593 242.6826 241.9402 241.0606 240.5961 240.5013 239.9977 239.3436 239.2483 238.4136 238.1681 238.3375 238.4877 237.6943 236.9289 236.1399 233.4056 232.5601 236.3527 231.828 231.4 231.5392 231.9552 231.6913 231.2598 231.2991 231.5128 232.2501 229.2172 232.6847 231.4911 231.5948 232.4568 233.3516 234.6779 239.5439 244.6582 248.0227 249.3676 250.986 252.4131 253.1403 254.5282 255.9664 257.1783 258.7369 262.1969 262.2358 262.3787 262.1577 260.5766 258.4568 258.0715 256.9075 255.7017 253.1132 251.1901 249.7492 248.6543 247.3596 245.3401 243.8301 243.4992 241.864 239.7844 237.3423 235.3419 233.0683 232.5204 232.3401 231.9803 231.4517 231.237 231.1304 231.3045 231.5281 231.9616 229.5724 231.8132 231.1561 230.8062 230.8468 231.3911 232.6998 235.2513 237.2819 238.9424 240.6152 241.6937 242.0631 245.6581 248.4273 -9999 +289.6847 287.0214 283.7421 281.6874 280.9073 277.1921 277.347 279.0565 281.4763 281.7098 280.8106 279.3985 277.7088 274.794 270.728 269.4571 268.9066 264.0819 262.2471 262.489 262.5395 262.849 260.5126 262.1345 265.0463 269.6596 271.8012 272.6158 274.6399 277.7306 278.9164 279.0172 279.9123 281.0088 282.6033 283.3484 284.9132 286.4826 287.7493 288.9362 289.8448 290.0598 289.4897 289.4967 288.1869 286.8217 285.508 287.511 289.9793 292.1094 294.0975 295.2412 297.5019 298.338 298.899 299.0213 299.43 300.4803 300.9004 302.1736 301.5835 300.006 299.1829 298.1207 297.8745 297.9168 297.4427 296.6754 295.2372 293.7592 292.3049 288.6118 286.4056 283.6486 281.1014 278.3352 275.8826 275.2502 276.6548 279.6096 283.1261 284.9019 286.4176 286.9295 285.6211 284.4832 283.8148 283.1487 281.6384 280.5324 285.0739 288.116 289.2549 289.1988 288.7431 289.761 291.6627 292.8422 294.5103 294.4134 292.7146 290.1305 286.3862 281.653 279.6781 283.0833 282.7906 277.7626 277.2177 281.1035 283.1243 283.4168 280.4666 276.7239 280.5265 285.2468 288.4568 288.303 287.573 286.8022 287.0225 287.6393 287.5105 285.9184 284.7928 283.1542 278.7052 273.6105 268.8736 266.1865 267.3938 269.7381 271.38 272.4433 272.7786 282.7958 285.7515 286.9803 286.6388 284.8619 285.3775 285.9377 287.8699 289.5198 294.4126 296.6862 299.0207 300.0183 300.5316 301.1013 301.5066 301.2587 300.177 297.5343 296.4937 295.4318 293.9042 292.272 291.4149 290.9708 290.7386 290.6667 290.9925 291.1382 290.8288 290.1687 288.2821 286.9086 285.9548 286.5606 287.4251 287.8555 287.3449 286.9055 286.1393 285.308 284.9173 284.1728 283.5209 282.4913 282.0045 282.4137 282.6031 282.3198 281.9983 281.6024 281.0493 280.4247 280.0822 278.5168 275.3309 272.7114 270.7477 269.7646 269.43 267.2469 264.9308 263.2532 262.2308 261.1942 262.9858 264.8683 267.5561 269.5504 270.9354 272.3427 273.7917 275.4615 278.161 275.4111 269.6194 267.0997 266.1817 265.3618 268.8009 267.5678 265.4858 264.8144 265.862 265.8618 265.1706 264.2458 263.3277 261.2996 258.6817 256.6997 254.3057 248.6681 246.5913 243.644 240.8867 239.0373 241.0233 240.7811 240.6059 239.049 238.6798 238.3372 238.1744 238.3222 238.298 237.9442 238.3331 238.8922 237.7331 243.8574 247.5786 250.5638 251.452 249.197 245.8998 242.5672 239.2586 238.306 237.9327 237.8878 237.7389 237.9029 237.4713 237.2616 237.3724 237.3696 237.4286 240.4425 241.4648 241.9178 242.5255 243.2519 244.0697 244.2243 242.9734 241.7334 240.642 242.1205 243.7173 244.4469 244.3507 244.9733 245.4288 240.4865 236.2435 236.8252 243.8081 250.705 252.6693 257.0192 259.9618 258.5497 256.5002 254.8583 257.807 258.4035 254.5815 252.4349 246.545 238.5332 234.1846 234.139 233.8572 233.8918 233.8562 233.6467 233.5721 233.8176 233.9784 232.8576 233.9099 233.7396 233.5047 233.3691 233.7017 233.1215 232.963 233.0871 232.8216 233.0381 234.2905 233.8358 232.8953 232.5007 232.4122 232.3801 232.3447 232.388 232.3339 232.2621 232.5275 232.7387 233.4289 232.0813 232.2202 232.0882 232.0026 234.7648 235.6754 236.1651 236.1531 236.6256 235.1357 231.4889 231.8963 233.0925 232.992 232.8361 232.5531 232.5563 233.4038 232.4597 232.4558 232.5538 232.0778 231.099 231.9506 231.8744 232.1451 232.4268 233.2826 237.29 239.1405 239.245 239.5888 239.9879 238.353 238.027 239.621 237.6531 234.0719 232.4239 233.0161 233.99 234.9356 237.0397 239.1232 238.1906 238.7591 239.6596 240.926 242.0931 243.297 243.9844 245.8777 247.1477 249.4109 250.5907 251.6634 252.8015 253.5228 254.2152 254.6471 254.4748 253.5979 252.009 250.2169 250.0687 249.5287 249.5723 249.0819 248.7293 248.3184 247.8257 247.6593 246.9456 246.0659 245.0355 244.1632 243.704 243.0177 242.8047 242.8094 242.4419 242.4487 241.3588 240.6293 240.0584 239.9617 239.9547 239.7885 239.439 238.1135 237.7318 237.7516 238.2477 238.3387 238.0145 237.3994 236.9185 234.4678 231.4236 233.4409 230.9574 231.2733 231.6071 231.8918 231.4821 231.1276 231.2255 231.83 231.844 229.9166 232.0618 231.3644 231.9157 233.0083 234.1178 236.4191 239.124 242.4378 246.772 249.6515 252.0861 254.0173 255.7609 256.7992 257.8535 259.2521 260.5051 262.4878 262.9435 262.9317 262.1616 259.8464 257.9885 257.5008 255.3904 254.4546 252.1243 252.0011 251.1558 248.7787 247.4052 246.6056 244.9516 243.2108 240.9861 237.6654 236.1149 233.4676 232.1199 231.7611 231.5278 231.2033 231.1124 230.8458 231.0342 230.9371 231.9096 229.5409 231.5448 231.598 231.5333 231.1777 231.3541 231.5909 232.3552 233.2615 234.2458 236.6792 238.5821 240.415 241.9458 243.8497 246.0067 -9999 +289.9205 287.6338 285.7128 286.1265 286.4988 282.681 275.5562 275.8889 275.5027 277.7693 277.6559 276.0617 274.3646 271.6832 268.3662 269.5587 267.9048 263.6694 262.057 262.313 262.3328 262.5992 262.9383 261.3167 261.7715 268.8048 272.0113 273.7831 275.646 277.0714 278.7418 280.1529 281.8076 282.2856 283.0648 283.6274 284.7559 286.3463 287.3508 288.3078 288.947 288.2366 287.9452 287.6522 286.1385 283.8091 286.0846 289.133 291.351 292.9321 294.3785 295.2161 296.4166 296.2379 296.4255 296.7269 297.3277 298.5084 299.5558 301.6282 302.669 302.0208 301.5319 300.3773 299.858 299.6788 298.622 297.1181 295.4639 293.8493 292.1126 288.1094 285.431 282.9714 280.5972 277.9085 275.933 275.725 278.9556 281.9228 284.0586 285.3982 287.0199 288.3103 288.0378 287.2613 286.7468 286.5429 285.967 283.2981 281.2937 285.3509 287.9619 289.5861 289.8173 289.5476 290.2668 291.4973 293.9418 294.7694 293.6774 290.8415 284.4981 281.7058 285.3519 286.772 285.7313 280.5673 277.9348 281.2493 283.8429 284.9398 283.5747 279.2843 279.8535 283.4425 287.3998 288.3719 288.6148 288.2446 287.9627 288.4561 288.709 287.4976 286.5205 284.9003 279.2532 274.9001 269.8863 267.0951 268.6121 273.9697 277.7848 277.8673 277.4902 283.8093 285.6389 287.0349 288.6495 288.3807 287.9912 287.1863 286.8502 288.2589 293.599 296.351 299.6381 300.7189 301.0606 301.3132 301.0866 299.9879 299.0193 296.9949 295.8162 295.4936 294.3765 293.1443 292.4506 292.1459 291.8853 291.7805 291.881 292.0739 291.7831 290.7013 289.3788 288.2647 287.0957 287.1507 287.7724 287.381 286.7459 286.0543 285.294 284.979 284.7297 284.153 282.9052 281.3684 280.2346 281.6741 281.8074 281.8369 281.9983 281.6024 281.0493 280.4247 280.0822 278.5168 275.3309 272.7114 270.7477 269.7646 269.43 267.2469 264.9308 263.2532 262.2308 261.1942 262.9858 264.8683 267.5561 269.5504 270.9354 272.3427 273.7917 275.4615 278.161 275.4111 269.6194 267.0997 266.1817 265.3618 266.8199 266.8415 265.1663 263.9604 265.0315 264.7399 264.2328 264.1044 262.9068 260.171 257.2856 253.9683 250.9507 247.1705 246.5472 244.4938 242.4668 240.0628 245.1193 246.9703 245.9509 243.7806 239.2345 238.1624 238.1947 238.02 237.9789 240.2452 239.4554 242.3062 243.8059 247.5452 249.9624 251.8246 251.5834 249.1805 246.2977 243.724 240.6567 239.5073 239.5858 239.3695 239.3757 238.8573 238.0166 237.817 237.7567 237.5092 237.889 242.1943 243.4169 243.3317 243.811 244.6535 245.2434 245.5459 245.2356 243.7041 240.9123 242.2427 243.7212 245.2578 245.9751 246.7216 247.6542 248.8204 242.4179 239.0461 248.1109 253.5655 259.01 258.5594 260.6239 262.218 261.7192 260.1921 260.9727 252.8746 247.7206 246.3203 241.6688 236.9567 235.1982 234.2551 233.9076 233.8094 233.8264 233.6104 233.5529 233.3814 233.7149 233.7912 232.9587 234.1468 233.8556 232.9889 233.065 232.8189 232.8221 232.8436 232.8548 232.8993 233.0023 233.3085 233.0919 232.5936 232.5323 232.4214 232.411 232.3314 232.3631 232.4393 232.6418 232.2001 232.1426 232.1724 232.1002 232.501 232.4871 234.3782 235.3864 234.7499 234.9869 232.1932 231.4969 233.103 234.3718 233.3868 233.2085 233.3901 233.4893 235.9137 236.7535 232.2556 232.2111 232.2356 232.2993 231.0623 231.8819 232.1815 232.039 232.0873 235.9082 238.2552 239.3856 239.3395 239.5071 239.3861 238.089 238.4138 239.8372 237.9081 236.2513 232.2343 232.5153 232.9972 234.5622 235.6773 236.2422 237.6717 238.3884 239.6026 241.8216 242.7003 244.0792 245.2048 245.7025 246.7416 248.8315 249.8741 251.1224 252.0244 253.1546 253.776 254.1918 254.0163 253.3542 251.8063 249.7494 249.6909 249.4928 248.8583 248.6594 248.5711 247.8197 247.2786 246.8297 245.9933 245.3093 243.7385 242.9957 242.8596 242.7156 242.3134 241.9178 241.9567 240.805 240.229 239.5952 239.3335 239.2626 239.1082 238.8531 237.9522 237.111 236.4899 236.9585 237.2684 237.4555 237.4709 237.7647 237.3957 236.3641 233.1018 231.0735 230.7827 231.7392 231.7865 231.8001 231.2465 231.1189 231.3463 232.035 229.249 232.3777 232.1269 231.321 231.7816 232.8949 234.3791 236.5843 240.2472 243.9708 248.0358 250.1442 253.076 255.471 257.3963 258.7512 259.3157 259.9267 261.1502 264.1968 264.2988 262.4274 261.8099 259.2821 257.5036 256.6155 254.702 253.1319 251.9888 252.0832 252.2865 249.9698 248.6364 247.4651 245.6445 243.4809 241.3276 236.1285 234.3539 233.0378 232.1864 231.6389 231.1351 230.8299 230.8319 230.7889 231.0211 231.5072 231.5625 230.5047 231.3707 231.2723 231.4031 231.3247 231.3519 231.758 232.9184 233.1548 235.2899 235.1695 235.0734 235.3837 237.3553 238.3203 238.9313 -9999 +291.6012 289.0994 287.9916 288.4101 289.2511 286.2175 273.6767 273.174 273.5516 273.9999 273.7527 273.1453 270.6159 266.661 264.6171 264.4604 264.2378 263.479 262.2476 262.1493 262.2339 262.2676 262.2997 259.8193 262.1062 266.4004 269.763 271.6635 273.2383 275.7505 277.0159 278.2614 280.2613 280.6645 280.3164 281.0765 282.6513 284.9639 286.4105 287.4839 287.5672 286.7268 286.073 285.4365 283.0841 283.5105 286.781 289.5479 291.5147 292.8675 293.8132 294.4397 293.1941 291.9459 292.1304 293.108 295.7414 297.6447 299.5679 301.4478 302.72 303.5958 303.2039 302.4128 301.4258 300.1625 298.7666 297.2653 295.4382 293.5879 289.7332 287.966 286.0687 282.9576 280.215 277.4191 275.4081 277.0142 281.2233 284.08 286.1411 287.0534 287.8333 288.9575 289.608 289.1682 288.7305 288.4813 287.8576 286.5992 285.9887 283.7545 285.0049 288.3886 289.8383 290.5365 291.1844 291.3911 293.8432 294.4738 293.7221 291.1522 287.2932 284.9456 288.103 289.4243 287.704 282.2766 279.1932 280.9245 284.2775 285.1531 284.6976 282.1113 279.3507 282.1636 286.3663 287.7792 288.6399 289.0251 288.8733 289.1432 289.851 288.7012 287.0374 285.2621 279.7712 276.4088 272.074 267.4052 268.5933 272.31 275.1643 277.8421 278.472 282.6381 285.0949 286.6413 288.3054 289.568 290.2297 290.5667 289.1739 289.0262 292.6389 295.732 298.596 300.8266 300.5357 301.1967 299.6077 298.5582 297.809 295.9862 295.8162 295.4936 294.3765 293.1443 292.4506 292.1459 291.8853 291.7805 291.881 292.0739 291.7831 290.7013 289.3788 288.2647 287.0957 287.1507 287.7724 287.381 286.7459 286.0543 285.294 284.979 284.7297 284.153 282.9052 281.3684 280.2346 281.6741 281.8074 281.8369 281.6714 281.211 280.9035 280.3282 279.3392 278.1234 275.0795 274.0056 272.3391 272.0495 271.1895 269.0409 266.4652 264.913 263.9492 263.5385 263.5154 264.5376 266.1564 267.7436 269.2209 270.6187 271.994 274.082 277.485 275.9378 269.3087 265.4139 263.0413 263.5247 264.6374 265.6991 263.968 262.827 262.8352 262.6179 261.8774 262.2219 261.4076 259.5185 256.5776 253.4237 248.1553 245.969 245.3246 242.2311 239.8258 240.2989 246.493 249.5699 250.2266 248.775 242.3504 239.1307 240.6083 241.3228 242.7501 244.1026 241.7861 244.2143 246.737 250.8656 253.4623 254.3627 253.3976 250.5459 248.0173 245.5044 242.0948 240.9941 241.1722 241.1741 241.2833 240.1678 239.0595 238.341 238.2139 238.1974 239.1644 244.136 245.162 244.8337 245.2625 245.559 246.362 246.8409 246.8133 245.3925 241.7222 242.3935 243.8321 245.59 247.0136 247.9414 249.5676 251.6366 253.7428 255.4082 253.5074 256.8504 261.434 263.6477 263.8407 264.4176 264.7263 263.3359 262.1275 250.2695 250.4766 245.3925 240.2418 237.2854 235.3643 234.3018 234.2615 233.9514 233.6728 233.495 233.4999 233.5689 233.7149 233.6736 233.6475 233.1289 234.0601 233.3522 233.3837 233.3427 233.2043 233.4417 233.3634 233.5555 233.5118 233.4069 233.2146 232.6133 232.6674 232.8695 232.9191 233.0448 232.8889 233.0704 232.8474 232.4925 232.5101 232.5051 231.9752 231.8138 232.1136 232.0616 232.1365 231.632 232.496 232.05 237.8046 238.7393 238.0191 236.2469 235.468 236.4268 237.6077 242.8319 245.2986 235.5732 231.8185 231.8618 231.9774 232.265 230.5509 232.0575 231.9946 232.3636 235.6084 238.2119 239.0885 240.1118 240.4109 239.6012 238.8141 239.1063 239.4889 238.0221 236.8321 233.1843 231.8611 232.4039 232.8942 233.9871 234.5185 234.7948 236.9182 240.6287 242.2444 242.9945 244.0413 245.188 246.1673 247.2121 248.9745 250.1027 251.2571 251.9337 252.8866 253.6595 253.8469 253.7653 252.9547 251.8106 249.9447 249.3235 249.181 248.9343 248.2271 247.8594 247.3261 246.6704 246.2141 245.1317 244.1031 242.5695 241.7845 241.6573 242.0495 241.9058 241.4458 241.3539 240.1786 239.6935 239.4909 239.1993 238.6303 237.8625 237.4635 236.9622 236.7197 235.0711 235.6156 236.1776 237.0122 236.9302 237.4035 237.7476 237.0864 236.3504 229.9398 230.9458 231.6474 232.0548 231.3855 231.1962 231.1477 231.5684 231.8892 229.3697 232.5563 231.8375 231.4498 231.7182 232.6088 234.1786 238.519 243.0854 247.8779 251.4669 253.8108 255.3441 256.8775 258.6249 260.3386 261.0804 261.5085 262.9434 264.4704 264.3513 261.4291 260.7588 258.2422 257.0272 256.1389 253.9103 252.4851 250.6814 250.5653 249.8181 249.2529 248.4499 247.0191 245.1755 242.84 241.0484 234.2395 233.0502 232.4956 231.9816 231.6314 231.388 231.0276 230.598 230.7833 231.0993 231.297 229.9883 231.1324 230.5834 231.1869 231.3052 231.2704 231.1819 231.9192 234.2294 235.8776 237.7151 239.0495 239.6364 239.867 241.8656 242.2977 243.9901 -9999 +291.7425 289.5008 288.165 287.9698 288.4467 286.3349 277.3611 272.2677 269.5788 269.2707 268.7748 268.056 270.8064 270.5979 265.6236 263.7745 263.507 263.0751 262.6045 262.2151 262.1051 262.0573 262.1403 262.1973 260.0112 264.1592 265.9496 269.7701 271.7921 274.3531 275.1854 275.9193 277.2455 277.8202 278.3677 280.3715 282.6656 284.6171 285.8244 286.1858 285.4076 285.1218 284.0371 282.1771 280.1312 283.2579 286.1993 288.2728 290.3581 291.4403 291.837 291.9488 288.5775 289.0969 292.7209 293.2717 295.51 297.956 299.337 301.0501 302.7111 303.9408 304.0353 302.9696 301.4134 299.9881 297.9124 295.8395 293.9231 291.8119 289.4622 287.4701 285.8759 283.4442 280.658 277.3084 276.0706 277.4682 281.7494 284.887 287.3931 288.4491 289.2345 290.3118 290.6591 290.6339 290.6634 290.5987 290.5438 289.6385 289.1511 289.0156 285.9086 285.3322 287.7375 290.029 291.5618 292.6944 293.5113 294.2558 294.0535 292.502 290.5746 289.4781 289.9268 290.32 288.4969 282.8114 280.0786 281.1037 284.2459 285.7673 286.0002 285.0387 281.8228 280.4314 285.986 287.9046 288.6237 289.2872 289.5974 290.0361 290.3484 288.594 286.2436 282.8448 279.7712 276.4088 272.074 267.4052 268.5933 272.31 275.1643 277.8421 278.472 282.6381 285.0949 286.6413 288.3054 289.568 290.2297 290.5667 289.1739 289.0262 292.6389 295.732 298.596 300.8266 300.5357 301.1967 299.6077 298.5582 297.809 295.9862 295.0363 294.4263 293.5997 292.64 292.3003 291.9917 291.4838 291.4159 291.6104 291.6862 291.7018 291.1621 290.1023 288.9355 287.9853 287.9079 287.8265 286.6608 285.6544 284.5562 283.9597 284.0038 283.7479 283.0525 281.883 280.0318 278.1849 279.8693 280.2793 280.8977 280.5364 279.7264 279.1209 279.3414 278.7642 276.5312 273.9072 272.7303 272.599 271.9482 270.7751 269.4819 268.08 266.6865 265.7152 265.2416 264.4198 264.2197 265.0618 266.3855 267.649 269.1381 270.7846 272.7576 276.2308 276.4186 271.2693 265.7527 262.0344 260.861 262.6594 263.2963 262.6756 260.5649 260.4734 259.8242 258.6096 259.4572 258.5265 257.4037 255.5951 253.3417 247.4159 245.0874 243.5201 240.5504 240.2743 243.057 245.8269 248.2754 251.4995 252.75 251.5333 250.8113 247.055 246.7439 247.2337 246.8228 243.2796 245.2612 249.2629 254.101 256.1866 256.4398 254.9965 251.7278 248.8595 246.3599 244.3854 243.0504 242.3492 242.9006 243.057 242.1094 241.002 239.351 238.6205 238.6837 239.6611 245.5012 246.9177 247.1656 246.6974 247.2983 247.676 247.9405 248.3765 247.4092 241.3886 242.3157 244.07 246.0515 247.5212 248.935 250.8306 253.3879 256.5893 260.721 259.7212 259.9679 263.6183 265.48 267.199 267.3457 266.7051 264.896 261.9056 252.1052 253.7343 247.9846 241.5831 238.4241 236.0377 235.3995 234.6006 234.1773 234.4287 233.493 233.4648 233.5312 233.6054 233.6485 233.6851 233.8614 233.9609 233.6829 233.5637 233.6107 233.4226 233.697 233.4993 233.5168 233.1811 233.2775 233.389 233.0372 233.0601 233.0668 233.079 233.106 233.1939 232.7944 232.609 232.5038 232.6388 232.4663 232.2608 232.1929 233.8136 233.3666 232.9101 232.7043 232.9749 237.4053 241.725 243.3226 244.485 244.2719 243.7901 244.5212 245.3291 251.3053 255.159 248.5791 238.1884 231.6729 231.399 231.8049 232.221 230.6596 231.8564 232.0972 234.4287 236.009 235.9025 237.6779 238.4936 239.1271 238.9828 239.177 238.9198 238.3811 237.2995 234.2119 231.7269 232.1021 232.2216 233.0509 233.2573 234.1066 236.8607 240.6599 241.8948 242.506 243.5416 244.7958 245.9913 246.7372 248.9052 250.2034 251.2471 252.3427 253.1195 253.8025 254.1279 254.0148 253.4075 252.3293 249.9088 249.0906 248.8379 248.4686 248.0747 247.504 246.9295 246.2945 245.9328 244.0384 242.7215 241.854 241.1633 240.8965 241.4671 241.4681 241.1346 241.017 239.9709 239.3118 239.2144 239.0137 238.6164 237.8904 237.3129 236.886 235.9336 234.3058 234.2312 234.3116 236.0352 236.2538 236.9627 237.7489 237.8083 236.3244 229.7439 230.7635 231.1999 231.4458 231.2824 231.2776 231.3503 231.4314 231.1465 232.1202 231.8665 231.5412 231.5082 231.8874 232.7161 236.7338 243.4326 249.8646 250.7883 256.557 257.0784 257.8797 258.1612 259.4699 260.3698 260.8095 261.1144 262.1494 263.5107 261.5548 261.2066 259.4319 257.1873 256.3505 255.8292 254.2971 252.4927 249.6474 248.1485 248.0292 248.1212 247.6391 246.1481 244.459 242.4388 239.7247 232.8293 232.1086 231.502 231.3102 231.1671 231.0346 230.7755 230.6571 230.8303 231.1464 231.4535 229.4833 230.8206 230.5834 231.1869 231.3052 231.2704 231.1819 232.9926 234.2294 235.8776 237.7151 239.0495 239.6364 239.867 241.8656 242.2977 243.9901 -9999 +290.4591 287.9359 286.3461 285.4978 285.2696 283.5555 277.565 272.6783 270.4347 268.2567 267.5899 266.9167 270.3107 273.8615 275.2956 268.322 267.5486 265.6408 263.0568 262.3113 261.9877 261.98 261.9433 261.9595 260.7966 261.7173 261.9088 263.4311 268.1678 270.7263 273.1701 273.6523 275.1223 275.4222 278.5891 280.9787 283.511 284.0966 284.8321 284.55 282.8107 282.7492 282.5909 279.5928 278.3227 282.1474 283.9857 285.4811 287.1923 287.3437 286.7517 286.0028 289.819 292.9035 295.575 296.6439 296.4792 298.9121 300.7445 301.7468 302.7579 303.7576 303.5356 302.8907 301.4586 299.6026 297.6888 295.1215 292.8972 291.2067 287.6307 286.2279 284.6711 282.8177 279.7744 277.3312 276.9662 278.8206 281.0991 283.3261 286.9157 288.6531 290.0975 291.4372 292.2154 292.6275 292.3792 292.692 292.2825 291.6832 291.7921 291.9492 291.0507 288.792 287.5434 287.8863 290.6429 292.6944 293.5113 294.2558 294.0535 292.502 290.5746 289.4781 289.9268 290.32 288.4969 282.8114 280.0786 281.1037 284.2459 285.7673 286.0002 285.0387 281.8228 280.4314 285.986 287.9046 288.6237 289.2872 289.5974 290.0361 290.3484 288.594 286.2436 282.3531 280.3084 277.2132 272.1418 268.0993 267.8495 274.4646 277.8871 279.3623 280.8592 282.4951 283.0133 285.3458 287.0819 288.9717 290.3093 291.3045 291.3111 290.5406 294.3287 296.3568 298.1205 299.6996 300.0356 299.8014 298.5496 297.1137 296.5433 294.4547 294.1056 292.873 292.109 291.2767 290.8754 290.7033 290.3199 290.1366 290.226 290.613 290.8489 290.6914 289.7699 289.0041 288.4521 287.7786 287.0073 285.3632 284.788 283.4636 281.8295 281.9655 282.0114 281.453 280.6955 278.4947 276.9175 278.1071 278.6076 278.9095 278.7891 277.9581 277.4296 278.0836 277.0165 275.4929 272.9008 271.522 271.0459 270.419 269.7654 269.0098 268.0914 267.1896 266.8286 266.7866 266.287 265.4345 265.1213 265.7016 266.6796 267.8488 269.2204 271.3112 273.8038 274.398 271.3678 267.2277 261.7938 258.8178 260.4993 261.7265 260.6396 256.7072 257.2923 256.0962 254.7678 255.6222 255.5425 255.1481 254.4085 252.3475 246.2681 244.3428 243.3209 239.8021 244.7762 247.0681 248.2466 251.7564 254.3679 256.4837 256.185 254.7653 251.0045 249.8805 249.0783 248.057 244.5422 247.5981 250.9032 255.8429 258.0876 258.4311 256.6479 253.8724 250.513 247.9811 246.3022 245.1324 243.5687 244.3127 244.7588 244.3286 243.1451 240.652 239.0361 238.8256 240.473 246.1126 247.7465 248.4915 247.9786 248.2206 248.7751 249.6676 250.1966 249.0692 241.6577 242.6131 245.2517 247.4773 248.8727 249.7611 251.3277 254.2505 257.4969 262.6868 262.3166 262.974 265.2639 267.8935 269.3407 269.391 267.5359 264.618 260.9075 253.7326 252.3194 247.3657 245.8994 239.8214 237.4182 235.6777 235.3149 235.0895 234.7066 233.7632 233.4572 233.3647 233.416 233.3941 233.5915 233.7111 233.4297 233.1677 233.0496 233.0754 233.3956 233.3434 233.1319 232.8409 232.6649 232.7805 232.9395 232.7629 232.7569 232.7564 232.921 232.7091 232.6994 232.6687 232.5546 232.2531 232.1745 232.1798 232.2529 232.6245 235.6393 236.4882 236.6144 237.0598 236.8644 238.6691 242.9118 245.7037 248.6715 249.9427 251.4611 251.9729 252.2548 254.9853 259.3336 256.5707 249.8656 241.2276 231.9301 231.4175 232.0672 232.1946 231.0411 232.0745 233.4733 231.6196 232.1562 233.0725 234.5505 237.1011 237.5452 237.2891 237.9744 237.7102 237.2164 234.5265 231.49 231.6477 231.9559 232.4056 232.5349 233.7155 236.3132 239.8269 240.8775 241.1891 242.4494 243.7271 244.7126 246.186 248.668 249.666 250.7514 251.9101 252.8936 253.9053 254.5947 254.2837 253.8955 252.7898 250.0816 248.5665 248.2845 247.8619 247.2447 247.1285 246.4922 246.1024 245.6792 244.2878 242.9246 241.7308 240.8331 240.4344 240.7629 240.867 240.7477 240.3175 239.012 238.8829 238.7855 238.7112 238.2689 237.7686 237.4254 237.125 236.156 234.1944 233.657 233.3692 234.4875 234.9606 235.6203 236.263 235.8572 232.4406 230.24 230.7684 231.3051 231.2928 231.2092 231.4754 230.984 229.2214 229.8711 232.1685 232.2417 231.3504 231.9645 232.4341 235.4971 243.206 250.9057 256.2957 257.1688 256.557 257.0784 257.8797 258.1612 259.4699 260.3698 260.8095 261.1144 262.1494 263.5107 261.5548 261.2066 259.4319 257.1873 256.3505 255.8292 254.2971 252.4927 249.6474 248.1485 248.0292 248.1212 247.6391 246.1481 244.459 242.4388 239.7247 232.8293 232.1086 231.502 231.3102 231.1671 231.0346 230.7755 230.6571 230.8303 231.1464 231.4535 229.4833 230.8206 231.0802 231.0727 231.0277 230.942 230.8958 232.3356 234.1004 236.0558 236.799 238.8062 240.7025 242.2227 245.2396 247.823 250.8126 -9999 +290.0508 287.2616 284.6071 283.0987 282.1994 280.0269 275.1144 272.364 270.9657 268.0121 267.5777 268.0959 273.8241 277.47 279.7747 276.0721 274.2821 269.8478 266.0096 264.7489 262.25 262.1792 261.8691 261.8161 260.1546 262.321 261.9673 261.6967 262.5804 268.6179 270.284 271.6391 272.7461 274.1936 279.534 282.2192 283.8576 284.0464 283.3808 283.1558 281.443 280.502 280.1039 277.6449 276.9405 279.7043 280.7015 281.2718 282.1203 281.292 282.1713 285.798 293.0838 295.3043 297.7165 299.1569 299.1709 299.3093 300.9984 302.5815 303.3239 304.0939 303.2849 302.5542 301.1582 299.1681 297.2176 295.24 293.1711 291.2067 287.6307 286.2279 284.6711 282.8177 279.7744 277.3312 276.9662 278.8206 281.0991 283.3261 286.9157 288.6531 290.0975 291.4372 292.2154 292.6275 292.3792 292.692 292.2825 291.6832 291.7921 291.9492 291.0507 288.792 287.5434 287.8863 290.6429 292.7796 294.2909 294.5804 294.5724 293.7858 292.6663 291.8752 291.5228 290.4633 287.7371 281.7315 281.6631 281.5739 283.8921 285.8121 287.4438 286.8932 285.2831 282.3004 285.3929 287.5211 288.6202 289.4279 290.3024 290.8069 290.8905 289.1859 287.5985 283.0612 280.4564 277.197 271.7159 268.5215 268.5564 275.4549 278.9243 280.8818 282.374 285.4348 286.9589 287.9465 287.9904 287.9273 289.1335 290.3884 291.6062 291.5974 295.5883 297.5947 298.3032 298.9938 298.4127 297.9451 297.3077 295.9113 295.288 293.0914 292.4955 291.7346 290.7194 290.0145 289.4446 289.1212 289.0172 288.867 288.9156 289.5365 289.9401 289.8353 289.1467 288.4088 287.4968 286.4103 286.0179 283.9222 283.3238 282.7232 281.3092 280.5923 280.6719 280.2708 278.8388 277.5327 275.7702 276.377 276.7852 276.9915 276.7823 276.2558 275.5171 276.396 275.5701 274.2697 271.6182 270.4537 269.4562 268.8505 268.4985 267.8709 267.1648 267.0055 267.2193 267.6393 268.0315 268.0325 267.017 265.7533 265.8853 266.9144 267.8826 269.5719 271.6169 271.6338 269.0059 265.5042 261.2802 257.0206 257.6203 259.5342 258.2228 253.0187 253.4999 251.5759 251.0074 251.6822 252.5836 253.2172 252.8557 251.658 246.1049 242.7024 241.8679 245.8164 250.6545 251.601 252.2899 254.2568 257.8862 259.9193 259.1613 256.7675 254.6199 252.1941 251.2277 248.3995 245.4814 250.2113 252.7311 257.3676 259.4467 259.6714 257.5826 254.8276 252.3514 249.4255 247.6227 246.5778 245.5575 245.6285 246.5157 246.445 245.6769 241.795 239.1865 239.0524 241.0008 247.0618 248.7741 249.7351 249.7562 249.599 249.2924 250.4657 251.705 250.971 242.7992 243.146 246.1213 249.24 250.6053 250.8198 251.6541 254.0228 257.0486 263.2693 264.0377 264.8298 267.2272 269.483 271.0948 270.2442 267.7322 265.5899 260.3573 257.4511 254.7415 253.3761 256.2621 249.4356 242.6571 239.2097 236.1224 236.0911 235.1426 234.4567 233.6534 233.6277 233.3976 233.4372 233.1519 233.4566 233.1805 232.9892 232.9012 232.8945 233.1157 232.9739 232.7984 232.7212 232.7609 232.911 232.6949 232.7685 232.9929 233.284 233.0266 232.6634 232.674 232.5357 232.8303 232.4195 232.3946 232.0199 232.858 233.5275 234.1254 238.1856 238.7155 238.3792 238.8218 241.3687 244.1029 246.8236 249.7664 252.4487 253.6541 255.9723 257.391 258.463 260.6787 259.4152 254.3574 248.8993 242.3161 234.481 231.6499 232.1085 231.6744 231.9199 231.8324 231.4973 231.0999 231.3446 233.5138 233.9227 234.1151 234.6607 234.106 234.4016 234.6825 233.6028 231.5173 231.2354 231.7824 231.9939 232.2331 232.7556 234.6032 237.6781 238.6671 239.0853 240.766 242.3851 243.8514 245.5325 247.897 248.6687 249.6544 250.8402 252.3681 253.8077 254.7421 254.9066 254.1423 253.5682 250.0792 248.6938 248.0157 247.8678 247.6655 246.99 247.0331 245.4025 245.0766 244.3085 243.0291 241.9657 240.8413 240.0669 239.9064 239.825 239.7215 240.3175 239.012 238.8829 238.7855 238.7112 238.2689 237.7686 237.4254 237.125 236.156 234.1944 233.657 233.3692 234.4875 234.9606 235.6203 236.263 235.8572 232.4406 230.24 230.7684 231.3051 231.2928 231.2092 231.4754 230.984 229.2214 229.8711 232.1685 232.2417 231.3504 231.9645 232.4341 235.4971 243.206 250.9057 256.2957 257.1688 258.8407 259.1739 258.8451 258.005 258.2757 258.9929 259.4474 260.3602 261.3255 262.0716 259.4266 259.8051 257.853 256.5009 256.1366 255.5287 254.0899 252.0338 248.7363 246.1777 245.7028 246.4746 246.546 245.8227 244.3476 241.9875 238.5633 232.5258 231.7968 231.0365 230.8268 230.8404 230.8168 230.4774 230.758 231.0647 231.188 231.7907 229.5928 230.8292 230.8049 230.9262 230.7636 230.8201 231.1682 233.2684 236.2633 238.4669 239.0206 239.4007 241.3373 243.1648 246.1505 250.5936 253.4367 -9999 +289.2527 287.2718 284.6046 281.1055 279.1148 277.1418 271.9362 270.44 268.1511 270.9388 271.7316 276.0019 277.7303 278.4728 280.0503 280.8813 278.905 277.2345 272.7813 266.7651 263.872 263.4832 264.2298 263.7931 261.8082 259.5477 262.223 261.6321 262.8567 267.3596 268.5558 269.262 270.5975 274.2359 279.1201 281.2571 283.1211 282.1994 281.3648 280.5398 279.3577 278.2917 280.1039 277.6449 276.9405 279.7043 280.7015 281.2718 282.1203 281.292 282.1713 285.798 293.0838 295.3043 297.7165 299.1569 299.1709 299.3093 300.9984 302.5815 303.3239 304.0939 303.2849 302.5542 301.1582 299.1681 297.2176 295.24 293.1711 291.4545 288.0122 286.6111 284.5668 281.872 279.5293 277.0891 277.9864 280.4947 283.5382 285.6205 287.6385 289.1658 290.9034 292.3636 293.6872 294.3182 294.1199 294.8141 294.6749 293.5171 293.98 293.6294 293.7235 292.1187 290.5001 288.1633 289.532 292.3891 295.0353 295.6264 295.8806 296.0398 294.6944 293.3614 291.7489 288.1007 283.3788 283.3253 285.9472 285.4755 284.8815 285.8234 287.763 288.295 287.8061 285.7358 284.9384 287.1591 288.749 289.7204 290.5338 291.0092 290.914 289.1216 287.8698 284.3889 281.7855 278.0439 271.661 269.0916 269.5868 275.3623 278.8493 281.4781 283.3349 286.6057 288.6172 289.8906 290.2054 290.763 290.3923 291.1302 291.7415 292.307 295.3446 297.4167 298.1383 298.4501 296.7963 295.7983 295.2012 294.2228 293.8857 292.1469 291.2693 290.4467 289.6926 288.8277 288.4348 287.7759 287.56 287.396 287.9163 288.325 288.6871 288.4413 287.4453 286.6064 286.0992 285.1865 284.5614 282.6623 281.6558 281.4659 280.5937 279.477 278.256 277.9215 277.3984 276.0513 273.895 274.3934 274.9239 274.9625 274.909 274.0175 273.5806 274.5168 273.6742 272.2521 269.0744 268.4261 267.8036 267.0508 266.9786 266.3991 265.3791 265.5314 266.0238 267.4716 268.7786 269.4367 268.3554 266.4544 265.2849 265.4117 266.3049 267.6991 269.4076 269.1368 265.999 262.4064 258.7358 254.8782 253.8631 255.0837 254.0398 249.3998 247.9652 246.4251 245.4737 245.3101 247.2158 250.6932 250.9879 250.6032 246.8598 241.3002 241.8768 245.7594 252.843 254.5572 255.8054 257.235 260.2554 262.7997 261.5978 259.3361 257.7231 255.5607 253.2054 250.215 247.1546 248.5062 253.0907 257.5994 259.4538 259.2944 257.6065 254.8426 253.1439 250.7068 248.7775 248.1372 247.1919 247.0582 247.3976 247.1492 245.7057 240.9091 239.4059 239.1874 241.4398 247.5523 249.5451 251.1398 251.5197 251.086 250.8588 250.7979 252.4145 253.1218 246.3007 243.0764 245.6718 249.2022 251.2006 252.2655 252.6203 254.2156 256.6708 263.3224 265.1554 266.5674 268.5711 270.4187 271.4001 270.3617 268.1886 265.8584 262.8991 265.0473 263.7232 262.6448 260.6521 256.1525 253.064 251.1033 241.481 236.9488 235.9867 235.0803 234.4801 233.9104 233.4871 233.3689 233.231 233.1281 233.1118 232.8805 232.8545 232.797 232.7774 232.725 232.6533 232.6971 232.8871 232.7771 234.3183 233.6175 233.4374 233.7943 234.4247 232.6676 232.7698 235.6388 236.4633 234.945 234.0204 235.2318 235.9602 239.045 236.9466 235.8473 239.1667 239.2689 239.7988 240.8447 244.4289 247.3629 249.9961 252.9215 254.2874 256.9073 258.8845 260.4806 262.455 261.5347 258.5927 255.4586 249.1581 239.4262 232.0407 231.9724 232.1203 231.1679 231.6281 231.6045 231.257 231.1259 231.8002 232.7828 232.7126 232.5561 231.979 232.0188 232.6228 231.6778 230.6607 230.8835 230.8856 231.5026 232.2331 232.7556 234.6032 237.6781 238.6671 239.0853 240.766 242.3851 243.8514 245.5325 247.897 248.6687 249.6544 250.8402 252.3681 253.8077 254.7421 254.9066 254.1423 252.0561 250.0792 248.6938 248.0157 247.8678 247.6655 246.99 247.0331 245.4025 245.0766 244.3085 243.0291 241.9657 240.8413 240.0669 239.9064 239.825 239.7215 239.7149 238.4587 238.544 238.2296 238.0332 237.763 237.6421 237.4663 236.9555 235.8448 235.1544 235.3049 235.1707 232.5891 232.88 233.1571 233.7502 232.1937 231.0543 231.0153 231.2775 231.0769 231.3946 230.1787 229.2374 230.4195 232.5633 232.3298 231.7127 231.8895 231.3112 231.6266 232.3562 237.6306 245.6821 253.0476 256.1852 256.8862 255.995 257.117 256.8776 256.7831 256.8213 257.3582 258.2965 259.1343 259.84 260.1996 258.3446 257.861 256.0788 255.1375 255.0812 254.4908 253.1433 251.4667 247.0455 244.0503 243.2686 245.1542 245.0095 245.039 244.7624 242.69 238.5527 232.4239 231.9709 231.2328 230.5925 230.5849 230.878 230.7851 230.958 230.9103 231.3 230.4509 231.2691 231.1013 230.7986 230.8711 230.6739 231.2588 232.0547 239.078 241.881 241.5916 241.8055 241.3913 242.9658 244.3169 246.5044 250.9404 254.4608 -9999 +288.321 286.2464 284.0533 280.5544 277.1229 273.847 270.2855 268.3744 269.5334 272.0587 276.7214 279.269 280.9488 282.6919 282.6985 284.7797 278.905 277.2345 272.7813 266.7651 263.872 263.4832 264.2298 263.7931 261.8082 259.5477 262.223 261.6321 262.8567 267.3596 268.5558 269.262 270.5975 274.2359 279.1201 281.2571 283.1211 282.1994 281.3648 280.5398 279.3577 278.2917 278.1293 274.5945 273.9304 274.6639 275.7585 279.1338 283.5462 285.8586 288.9726 291.3761 296.6291 298.8518 300.1886 301.1493 301.5377 301.5784 301.8271 303.0646 303.9638 304.5429 303.4981 302.7253 301.4591 300.2878 298.1369 296.439 294.3807 292.7285 288.2035 286.0139 283.8023 281.8703 278.6798 277.6711 278.1758 282.3567 285.1316 288.1879 289.2249 290.5315 291.7231 293.11 294.6823 295.5003 295.937 296.0477 296.4579 295.1308 294.7716 295.057 295.2524 293.6694 292.6947 289.9373 290.4174 292.4213 294.951 295.8555 296.4941 296.2684 295.3867 293.6159 290.1021 286.0063 284.7224 288.2931 288.7825 288.2908 288.1455 287.118 288.4369 289.4116 289.4563 287.8852 285.2419 287.3987 288.8053 289.8234 290.5106 290.4831 290.1128 288.5047 286.7578 283.4467 281.3401 278.7797 273.0381 269.6202 269.8407 274.1654 278.8849 281.9149 284.2477 288.3699 289.7658 290.787 291.6799 292.4547 292.2196 292.4431 293.0015 293.3698 294.9247 296.5038 297.6926 297.7733 296.7625 294.9303 293.2286 292.3395 292.0053 290.6833 289.9291 289.052 288.3954 287.6605 287.0139 286.7231 286.5011 286.0252 286.8738 286.6821 286.6309 286.7161 285.7557 285.3061 284.6758 284.1736 283.1682 281.8683 280.787 279.7379 279.4966 278.6537 277.5731 275.5519 274.6136 273.8536 271.8297 273.0139 273.0779 272.7529 272.6648 271.9399 271.6025 272.3308 271.7317 270.179 266.4558 265.6363 265.0861 264.2892 263.5264 263.3664 263.208 264.2896 264.4654 266.7828 268.054 268.1384 267.3221 265.888 264.3033 263.9963 264.6254 265.2848 266.76 266.4517 263.3022 259.5563 254.4486 249.9685 249.3795 248.4038 247.6775 248.5606 248.7888 246.0995 245.2366 244.5549 245.4128 248.0565 248.6712 248.6723 245.7874 241.1423 242.3091 247.665 253.4431 255.595 257.7082 259.9897 262.0314 264.5284 263.8657 262.04 260.8759 258.6501 256.7123 253.9542 251.2811 248.789 252.0092 258.4126 259.1177 258.8909 257.3933 255.6405 253.9393 251.6321 249.9422 249.4251 249.4911 248.9879 248.7392 247.8019 245.5615 239.8798 239.798 240.0956 242.0919 248.2928 250.3627 252.3974 253.1577 252.9508 253.013 251.7052 252.6964 254.0428 248.0616 243.9347 245.6093 249.5742 252.5318 253.2182 254.1964 254.9539 256.4036 262.4043 264.9734 266.6658 268.1351 269.5609 270.3052 269.7793 268.4316 267.9025 267.6156 267.3105 266.5048 264.1832 260.4912 257.0944 253.5487 249.8693 244.0908 237.9713 236.165 235.8673 235.0038 234.3877 233.4278 233.4087 233.2486 232.8999 232.9831 232.8885 232.7239 232.7027 232.886 232.8973 232.7551 232.7239 233.9947 239.0817 244.5194 237.7952 233.6161 234.1472 237.5346 236.7609 236.7977 237.5173 239.0993 242.1066 243.547 242.4244 239.1103 241.6127 242.386 238.4002 237.1869 240.9478 243.2336 240.8447 244.4289 247.3629 249.9961 252.9215 254.2874 256.9073 258.8845 260.4806 262.455 261.5347 258.5927 255.4586 249.1581 239.4262 232.0407 231.9724 232.1203 231.1679 231.6281 231.6045 231.257 231.1259 231.8002 232.7828 232.7126 232.5561 231.979 232.0188 232.6228 231.6778 230.6607 230.8835 230.8856 231.5026 232.0144 232.1335 232.995 233.9781 235.0428 237.6601 240.2067 241.3724 242.758 244.7564 246.7653 247.5062 249.3123 250.9219 252.4506 253.6455 254.6267 254.8867 254.6268 252.2389 251.0826 249.2152 248.4924 248.8871 249.1868 248.6101 247.299 245.7725 244.7289 244.139 243.1205 241.8033 240.8694 240.0176 239.3317 239.1873 238.6229 238.1832 238.2763 238.1116 237.8601 237.3053 237.4261 237.3053 237.0172 236.3798 235.8999 236.6015 236.3033 235.6913 234.2385 235.1874 232.8669 230.5704 230.5437 230.9788 231.465 230.0585 229.179 229.1749 230.4421 232.5109 231.9902 232.1183 231.8693 231.8547 231.3455 231.3226 231.6446 232.7692 238.3267 246.5657 250.7123 252.4031 253.2357 251.881 253.7988 254.2318 254.282 255.0565 256.0612 257.0504 257.6005 258.0172 258.0649 257.9009 256.5212 254.8572 254.4189 254.2189 253.0972 252.1989 250.4128 246.2397 241.2822 240.813 243.6133 243.0779 243.456 242.0882 239.1728 236.3518 230.6824 230.6649 230.5458 230.669 230.8899 230.5353 230.8441 230.9382 231.1438 230.9495 230.6763 231.0458 231.4542 231.2138 231.2112 230.9056 232.0404 237.0976 244.3814 245.4052 247.2776 246.6334 244.9608 246.253 248.1376 247.932 249.8881 253.0014 -9999 +288.321 286.2464 284.0533 280.5544 277.1229 273.847 270.2855 268.3744 269.5334 272.0587 276.7214 279.269 280.9488 282.6919 282.6985 284.7797 282.2275 279.9113 276.1383 271.502 266.3265 264.4401 263.3427 263.0629 263.6436 263.9877 259.6346 262.0424 264.8903 266.4448 266.7989 268.1231 271.0039 274.8312 276.3463 278.9207 279.9696 279.0499 279.0385 277.9523 275.5256 275.1136 274.1997 270.9116 273.9705 278.6249 281.502 284.9363 288.5651 292.0075 294.6841 296.8957 301.1361 303.2944 303.7932 303.9466 303.7421 303.3203 303.076 303.8751 304.2206 305.1286 303.1982 302.6631 302.687 301.0532 299.0552 297.4907 295.3051 293.8234 289.4109 286.6941 282.554 280.2914 278.1064 278.1745 280.775 283.5127 285.6795 289.0253 290.1976 291.2178 292.4453 293.6122 294.9494 295.8268 296.5381 297.0587 297.3636 296.9926 296.6239 296.2029 295.8406 295.4095 294.9634 292.3152 290.1763 290.8827 294.5106 296.0443 296.7429 296.78 295.5589 293.6984 291.4875 288.544 287.0491 290.8521 291.0668 290.971 290.5969 289.3602 289.5955 290.6209 291.1814 290.2293 284.1966 287.2755 289.1398 290.1933 290.5102 290.0581 288.7958 287.2448 285.1799 282.2868 280.1805 276.2155 271.994 270.4744 270.8975 275.5815 278.6027 282.1805 287.2594 289.0764 290.7474 291.9361 292.3407 293.0554 293.8211 294.0208 294.5026 294.8202 294.9956 295.8645 297.2122 297.1013 295.7069 294.0428 292.3009 289.987 289.3454 288.9088 288.3825 288.2645 287.1573 286.3028 285.4642 284.9731 284.9963 285.217 285.2995 284.8953 284.7262 285.2399 285.1225 284.4627 283.6117 283.1689 282.3525 280.8842 279.9518 278.6095 278.1666 277.7975 276.7892 275.5089 273.3109 271.9238 269.7603 271.1366 271.074 270.5443 270.4485 269.8185 269.7529 269.4876 268.6777 267.8516 263.8266 262.4935 261.9482 261.3787 260.9086 260.6452 260.9446 261.8175 263.0429 265.1975 265.7508 265.8531 265.6766 264.6629 263.1741 262.262 262.7197 263.2198 264.773 263.7967 261.4419 257.9449 250.4856 253.0753 255.1245 255.6713 254.1625 255.3477 255.1491 251.5792 244.4587 244.5297 244.4041 244.92 245.4061 245.192 243.1785 241.4063 242.3972 248.6459 254.4048 257.8773 259.1092 260.9216 262.8643 266.1212 266.0215 264.4362 262.993 260.9398 258.5801 256.8446 254.3004 249.657 251.7838 258.3703 259.0477 258.7953 257.7364 256.3151 254.5501 252.1616 251.2927 251.9362 251.7307 251.241 250.4428 248.1967 245.3399 240.1805 239.9517 241.1188 242.9252 248.9084 251.4195 253.6416 254.9952 255.3823 254.4303 253.448 253.4267 254.3717 249.8727 245.6268 244.1682 247.6626 251.8862 254.396 255.6398 255.6095 256.2844 261.2254 263.5706 265.2103 266.4472 267.5844 268.663 269.1232 268.8085 269.6447 268.83 267.0851 264.6283 261.0998 257.8708 253.0682 247.5783 242.7574 238.4312 240.5026 238.1358 235.5921 235.0795 234.3877 233.4278 233.4087 233.2486 232.8999 232.9831 232.8885 232.7239 232.7027 232.886 232.8973 232.7551 232.7239 233.9947 239.0817 244.5194 237.7952 233.6161 234.1472 237.5346 236.7609 236.7977 237.5173 239.0993 242.1066 243.547 242.4244 239.1103 241.6127 242.386 238.4002 237.1869 240.9478 243.2336 241.8821 244.1854 247.5419 249.8201 252.4665 253.7541 256.5681 259.1385 261.2936 264.1623 264.9828 263.6205 260.8845 255.2027 245.3387 236.0844 231.6238 231.8865 232.1171 230.5174 231.473 231.2646 231.097 231.3673 233.2387 232.3822 231.5179 230.9821 230.6816 230.6768 230.5399 230.8102 230.7665 231.0128 231.5514 231.7796 232.0709 232.7333 233.1311 235.098 238.7448 240.2366 240.5809 242.0187 243.7479 245.621 247.129 249.0434 250.5425 251.9393 253.0024 254.3505 254.8995 254.5735 252.4115 250.857 249.9385 249.2591 249.5435 250.0712 249.6043 248.4683 246.6763 245.0701 243.185 242.7784 241.7651 240.6261 239.9701 239.1394 238.5834 236.7721 236.8725 237.3383 237.3683 237.4636 237.1109 236.8371 236.7805 236.5174 235.8018 235.7345 236.6175 236.7583 236.3501 235.2623 235.8935 233.3015 230.7375 230.1492 231.0277 229.1941 231.2824 232.3642 232.3004 232.1688 232.0539 232.1739 231.7805 231.7064 231.3575 231.1177 231.1755 231.2548 232.0026 236.209 241.5292 245.5994 248.4133 249.6668 249.7881 250.1719 250.736 251.6681 252.6485 253.8732 254.9014 255.6051 256.3491 256.2888 256.7249 255.1134 253.6561 253.0786 252.7137 252.0704 250.9002 249.5311 245.1147 239.2899 238.5165 241.0715 239.3485 236.9494 234.9619 232.8856 231.5454 230.6929 230.6629 230.6154 230.6757 230.717 230.6482 230.6777 230.9401 231.2115 230.0417 230.8485 231.0191 231.0461 231.2779 231.4264 231.3552 237.0308 244.5547 250.2222 249.0195 250.961 251.0743 250.1451 249.4081 250.4886 251.6459 250.9376 251.1021 -9999 +287.2177 283.8959 281.938 277.6052 272.4835 270.8286 269.3558 270.2099 270.4265 272.7705 276.1787 279.6103 283.7095 286.2655 285.7828 285.976 283.8729 280.9751 276.3912 272.2277 270.0673 266.5645 264.5392 263.4253 262.0798 262.2404 261.149 262.5124 263.6405 264.6113 264.4817 266.2315 269.0824 272.5083 273.5489 275.5171 275.0118 274.9738 275.942 274.5345 272.2357 271.3877 270.2393 274.368 277.3909 280.8255 284.4529 286.2401 289.9154 293.1015 295.7834 298.4583 302.5425 304.3764 304.1526 304.1756 304.2179 303.9811 303.2968 303.0192 303.282 304.7985 303.4146 301.9691 301.4418 300.6216 299.027 297.6117 296.4797 295.0876 290.7699 287.7839 283.0396 280.5275 276.9265 279.2462 282.1005 284.3228 286.4626 289.4355 290.5629 291.3236 292.5309 293.4236 294.2804 295.6056 296.3451 297.3537 297.8228 298.4702 298.256 297.8996 297.7367 296.4164 296.1993 294.0465 290.6953 290.2025 294.057 295.2843 296.6141 296.8036 295.6248 294.6946 292.2671 288.9407 290.4994 293.0898 292.9995 292.8754 292.4735 291.9895 291.7153 292.0231 292.4659 291.5976 284.3969 287.6651 289.4395 290.5539 290.6495 289.9245 287.9272 285.7709 283.8805 280.3174 277.9546 274.3044 272.2722 271.2231 271.2549 276.2888 279.6598 282.9431 287.6793 288.8359 290.5008 291.926 293.0529 293.9105 294.6185 295.3781 295.9549 296.4842 295.7829 296.0883 296.9109 295.5927 294.078 291.5466 288.8801 287.9769 286.9197 286.2408 285.9339 285.9122 285.4135 284.5181 284.1352 283.7449 283.0005 283.0154 284.0297 283.73 283.505 283.6408 283.8896 283.1935 282.6761 282.3846 281.3992 279.0212 278.5283 277.3716 276.5876 276.3886 274.619 272.6099 272.5496 271.5291 268.2062 268.7143 267.8063 267.6594 267.5671 267.0427 267.3304 266.411 264.9613 263.5902 260.5698 259.7083 259.03 258.8295 259.6049 259.6752 259.4921 259.8838 260.617 262.7177 263.0001 263.1451 263.0904 262.657 261.5519 260.3788 260.6137 261.2452 262.8041 261.8805 259.9337 256.3913 251.0135 253.2748 256.7655 259.2336 259.3644 259.2553 258.6227 254.7119 247.8956 244.3857 243.9576 243.6782 243.485 243.2926 241.599 242.3786 243.2932 249.1574 252.7946 255.9191 258.2696 260.1122 262.6595 267.3517 267.5425 266.2777 264.3745 262.5211 260.6017 259.1861 257.6341 250.9332 255.1506 257.3239 259.1961 259.1455 258.0408 256.7666 254.9288 254.0062 254.2868 254.7248 254.2767 253.3185 251.4993 249.4321 245.9303 240.5283 240.3517 241.4018 243.9923 249.5659 252.1394 254.822 257.0058 257.5612 256.4752 255.838 253.4267 254.3717 249.8727 245.6268 244.1682 247.6626 251.8862 254.396 255.6398 255.6095 256.2844 261.2254 263.5706 265.2103 266.4472 267.5844 268.663 269.1232 268.8085 269.6447 268.83 267.0851 264.6283 261.0998 257.8708 253.0682 247.5783 242.7574 238.4312 240.5026 238.1358 235.5921 235.0795 234.2906 233.6108 233.4019 233.3551 233.2685 232.9314 232.6958 232.7226 239.2892 242.837 236.4263 235.4991 236.1325 244.3457 245.0442 249.9651 238.1427 234.1138 234.0744 237.9744 238.0307 237.9901 238.977 240.9745 246.6451 250.0152 247.7744 243.7885 242.94 244.3125 243.951 238.747 241.7994 245.5582 245.4364 243.901 245.5428 249.4216 253.199 255.4293 257.9075 260.3061 262.3371 266.2702 267.2568 266.4852 263.8963 259.0791 255.2426 247.623 235.8933 231.3485 231.8705 232.0001 230.2611 231.6857 231.5693 231.1635 231.1225 231.3602 231.2687 230.7805 230.7912 230.6084 230.6812 230.8442 230.5885 231.2825 231.6217 231.7074 231.7829 232.2852 233.1453 236.0767 238.4796 239.3276 240.1187 241.6139 243.1882 245.3249 246.9462 248.0195 249.3566 250.8037 252.2357 253.4604 254.2833 254.5011 253.0324 251.7376 249.9851 249.1115 249.6366 250.853 250.4895 249.3017 247.4367 245.4273 243.4155 242.2773 241.692 240.6492 239.4977 238.7615 238.0685 236.6233 236.1945 236.265 236.2197 236.3681 236.2426 236.3628 235.9985 235.8837 235.5859 235.5837 236.3468 236.835 236.8633 236.2853 234.5569 231.0343 230.6432 231.0291 229.2328 231.5394 231.9121 231.6971 231.8872 231.7194 231.9089 231.7435 231.4272 231.5099 231.2968 231.1595 231.0983 231.0437 231.3317 232.9765 235.7676 240.8731 243.5251 245.9126 246.2487 246.7946 247.3548 249.0097 250.7885 252.1846 252.9944 254.2297 255.5168 255.5042 255.3511 253.8806 251.7166 251.7013 251.25 250.3042 249.3884 248.3433 245.3569 242.8629 235.7069 236.2401 233.6578 232.1155 231.5169 230.8242 230.4991 230.6913 230.8815 230.8613 230.9881 230.6427 230.4614 230.672 230.8492 231.4882 231.1049 230.9257 230.7691 231.3418 231.4463 231.9195 234.0471 242.6068 249.0732 254.0996 254.9061 255.4923 255.2658 254.611 253.5432 253.5451 253.9268 254.8327 252.9017 -9999 +284.8664 281.5235 278.4786 273.7552 271.2988 269.8012 271.8233 271.2381 273.0188 276.9555 278.9984 281.8007 284.2862 287.257 288.8822 286.9142 284.708 281.0335 277.7731 277.339 274.1151 270.6942 268.5935 266.0886 262.3917 262.0645 261.9535 261.984 259.5406 261.9987 262.9301 263.2817 264.425 268.7833 270.451 271.2964 271.0591 272.7258 270.5216 268.2115 267.2765 272.5193 270.8077 277.6176 279.5069 281.5966 285.3859 287.8242 289.8835 292.4337 294.7834 297.1771 300.6602 301.8103 301.6488 301.9736 302.772 302.6498 301.903 301.4609 302.6614 304.0545 303.7346 301.9339 300.7752 299.9004 298.5893 296.6467 295.3241 294.5038 291.5111 288.9921 286.2292 281.8953 278.0833 280.1313 282.549 284.7292 285.8859 287.9016 289.6613 290.6218 290.8755 291.2876 292.4683 293.8777 294.9538 296.7001 297.9928 299.7944 299.179 299.475 298.9246 298.3253 297.3062 294.9749 293.2074 291.1646 293.5179 295.4981 296.3381 296.8604 296.1952 294.3951 291.5046 292.3376 294.0089 295.2816 295.3627 294.9305 294.3547 294.0233 293.8248 293.8705 293.5394 292.6931 285.1018 288.2684 289.9577 291.1519 290.8168 289.8408 287.3013 285.1512 282.638 277.2369 274.9727 272.7533 273.8251 273.0057 270.211 274.9461 278.9702 282.7783 287.5672 288.937 290.4984 291.6787 292.7818 293.7852 294.509 295.0704 295.8083 296.6741 297.1977 296.9106 295.8397 293.5435 290.5028 288.2026 287.1665 286.6702 287.1946 285.2601 282.9561 283.0871 282.7638 281.6294 281.1328 281.7646 281.7876 281.5334 282.4981 282.1505 281.733 281.894 282.0068 281.9596 281.2636 280.9275 280.3828 277.4487 276.3577 275.2513 274.2441 273.7834 271.6814 269.544 268.9233 268.3979 267.2061 266.5571 265.1087 264.3811 263.8947 263.7567 263.2087 262.5642 261.2503 259.8517 258.7814 258.2813 258.211 258.1765 257.9995 256.6786 257.267 257.4036 257.9569 258.8913 260.4801 260.858 260.8666 260.5859 259.3107 258.2455 258.7302 259.1826 260.4169 259.1931 256.226 253.3926 251.7022 252.407 255.7255 260.7602 262.116 261.7418 259.8933 256.7086 252.1837 245.0956 244.3899 243.0032 242.4688 242.2781 243.0775 243.595 247.2475 251.3008 254.1703 255.862 258.3082 260.5322 262.7732 266.8857 267.2849 267.048 264.3745 262.5211 260.6017 259.1861 257.6341 250.9332 255.1506 257.3239 259.1961 259.1455 258.0408 256.7666 254.9288 254.0062 254.2868 254.7248 254.2767 253.3185 251.4993 249.4321 245.9303 240.5283 240.3517 241.4018 243.9923 249.5659 252.1394 254.822 257.0058 257.5612 256.4752 255.838 255.1753 255.0704 252.4673 248.6319 246.5768 245.8813 248.9502 252.5775 255.2393 256.8057 257.2689 259.4427 261.8736 263.1238 264.3152 265.7263 266.4241 267.5294 268.7036 270.3092 267.6378 264.5913 261.0295 257.6596 253.5604 248.4434 242.3629 238.7643 246.3033 249.6526 240.3773 234.9229 234.4655 234.0507 233.7771 233.6834 233.7306 233.5633 233.1744 232.987 234.9091 247.946 248.1871 242.7883 242.795 245.7254 251.6994 251.6506 250.7195 243.5947 235.0823 233.9877 237.3416 240.4658 240.5978 241.1461 242.6003 247.1334 250.2142 250.6351 246.9191 244.4734 246.6541 248.4819 242.7292 241.5721 247.2763 247.9852 246.1673 247.8951 251.9329 255.0531 257.1597 259.2805 260.9745 264.8467 267.3792 267.4948 266.3734 264.7054 261.2946 258.1083 252.2281 240.9045 231.5545 231.6627 231.3786 231.6818 230.6535 230.9605 231.7665 231.8162 231.4281 230.9882 230.7762 230.7569 230.5684 230.6113 230.6625 230.8022 232.1156 231.8484 231.098 231.3894 231.8726 233.5141 236.1361 237.6495 238.668 239.9224 240.9628 241.797 244.4118 246.2842 247.8293 248.557 249.728 251.2782 252.6566 253.46 253.9018 252.7866 251.3826 249.3028 248.4176 250.2978 251.2058 250.5822 249.2312 247.369 245.8933 243.4444 242.6047 241.8494 240.8779 239.2749 238.4273 237.9653 236.9671 236.5083 235.1506 235.1193 235.3405 235.653 235.4393 235.0437 235.0836 236.0586 235.9871 235.9885 236.8122 237.2942 236.5768 231.5992 230.8428 230.9999 229.3339 230.2256 231.2281 231.7772 231.6671 231.5072 231.7948 231.9594 231.6941 231.4625 231.45 231.316 231.3896 231.0414 230.9424 231.1371 231.848 233.8043 236.4056 239.2273 243.1584 242.9554 244.0951 246.0267 248.1147 249.887 251.0395 252.5499 253.6145 254.5319 254.9605 254.3228 253.2715 251.1483 250.5874 249.7304 248.56 247.3616 246.8349 245.0672 243.0999 238.965 233.6331 232.4798 231.5679 231.198 230.8571 230.5275 230.4465 230.5966 230.7788 231.078 230.6534 230.475 230.547 231.4251 229.1581 231.6755 231.2973 230.8299 231.1927 231.8508 233.4085 235.8857 240.5367 245.8248 254.367 256.6237 258.1666 258.4837 258.2675 257.1806 256.4191 256.0275 255.5746 -9999 -9999 +280.3324 276.1857 275.0498 273.1502 270.0677 272.9516 274.3328 273.649 277.1812 280.008 282.4501 282.6386 283.7056 288.0493 290.4702 287.8031 284.7132 282.7323 283.3458 281.5547 277.739 274.2834 271.1179 267.4361 262.5583 262.2823 262.009 261.4738 261.0014 261.6777 261.7313 261.5649 261.6294 263.1691 264.7575 265.3787 266.0324 268.4882 265.0346 264.1302 270.8236 274.7167 274.2307 281.1116 282.7835 283.36 285.3509 287.0181 288.9942 291.5171 293.4471 295.3163 298.0349 299.0715 299.1174 299.3096 300.1991 300.3885 299.8411 301.1767 302.2939 303.1257 303.1182 301.8198 300.4069 299.1703 298.2217 295.8943 294.5609 293.092 290.9908 289.384 287.044 283.0815 279.7669 280.5698 282.1163 283.1775 284.4738 285.6377 287.0261 287.8755 289.772 292.2564 293.7041 294.8997 295.6909 296.8699 299.1711 300.6195 300.8757 300.8469 300.2171 299.7858 298.6453 296.8444 296.1642 294.8047 294.0668 295.5138 296.2711 297.0653 297.0699 294.5736 294.9346 296.3735 295.0209 297.2648 297.3078 296.9302 296.2102 295.9346 295.6296 295.1122 294.1916 292.5331 286.0201 288.8068 290.6364 291.6819 291.4666 289.5247 286.8261 285.2822 283.9164 276.8304 275.1804 279.4677 279.6218 274.8989 271.6307 275.1047 278.5584 281.6539 286.4371 288.088 289.4313 290.709 291.8931 292.9928 293.3383 293.6298 294.764 296.0938 297.9378 297.3147 295.899 293.2794 290.0439 289.5848 289.7747 289.6059 290.8258 290.5707 287.8623 285.6351 284.7981 281.8518 279.8416 279.5865 279.5164 279.6208 280.0912 279.4178 279.0374 279.5925 279.6085 279.641 279.5588 279.0519 278.769 275.6393 273.8758 272.3748 270.9417 271.1174 269.0821 267.3444 266.6083 265.67 264.9872 264.6232 264.1331 263.6035 263.3802 262.9123 262.278 260.1811 260.1811 262.1645 261.3083 259.616 259.7856 259.4142 257.9466 257.7555 257.0236 255.2356 254.9416 256.6155 257.8557 258.0882 257.8466 257.433 256.1863 255.494 256.0331 259.1826 260.4169 259.1931 256.226 253.3926 251.7022 252.407 255.7255 260.7602 262.116 261.7418 259.8933 256.7086 252.1837 245.0956 244.3899 243.0032 242.4688 242.2781 243.0775 243.595 247.2475 251.3008 254.1703 255.862 258.3082 260.5322 262.7732 266.8857 267.2849 267.048 265.7321 264.0064 262.1394 260.6455 255.7034 252.1386 257.5318 258.7601 259.8339 259.7067 258.9251 257.2786 256.4133 256.0712 256.844 257.2381 256.6866 255.0594 252.8961 250.6858 246.4838 240.8094 240.9576 242.2996 245.3802 250.4308 253.007 255.7283 258.3833 259.4791 259.0829 257.157 256.9093 256.5288 256.0896 254.9267 251.3869 249.1624 245.8933 248.869 252.2202 254.9642 257.5949 260.3466 261.1073 261.3779 262.4834 263.9326 264.8245 266.5003 268.6681 268.8736 263.4366 261.478 257.2035 252.4915 248.7378 244.4144 240.0056 245.6727 252.5495 253.8972 243.9361 236.0632 235.0058 234.4223 234.5404 234.5327 234.5357 234.375 234.1835 233.556 242.8952 251.8248 251.0188 248.5021 249.4034 252.5903 255.3696 255.395 249.9321 241.6501 235.2225 236.813 241.3053 242.4025 243.3304 243.924 244.8085 248.6371 250.9053 251.1384 247.605 245.9753 249.352 250.8463 246.0889 242.4473 249.6703 251.2943 250.9956 250.7732 254.4539 255.8479 257.8134 260.3772 261.9661 265.6943 266.9533 264.9527 262.2408 261.1897 258.5904 254.9252 249.8024 242.6774 232.2972 231.3961 231.5276 231.6083 231.6585 231.8806 230.7818 230.0999 230.8487 230.9864 231.4407 230.7352 230.7558 230.748 230.6142 231.0198 231.8962 231.0022 230.69 231.243 231.956 234.0196 236.2883 237.4898 238.646 239.4049 239.611 241.3681 244.9587 246.3552 246.8725 247.4688 248.9098 250.4926 251.9094 252.8668 253.4365 253.1317 251.4543 249.252 247.6722 248.0018 249.3315 249.1099 248.1371 247.1525 245.7423 243.2411 242.1568 241.7164 241.0554 240.0852 238.7402 238.0241 237.7442 236.1288 234.9028 234.3074 234.6264 235.186 234.6447 234.8421 235.9729 236.64 236.9847 236.315 236.7149 237.092 232.0216 230.7607 230.8562 231.4769 229.1749 231.4025 231.69 231.759 231.9646 231.8414 231.5896 231.4973 231.6723 231.5023 231.4379 231.0975 231.3299 230.9851 230.9681 231.0953 231.9374 232.8224 234.5742 236.9781 240.5791 241.7926 243.1268 244.7147 246.8731 248.4999 249.655 251.0674 251.9458 253.0749 254.0226 253.4385 252.4445 250.4087 249.8418 248.3608 246.997 246.022 245.3942 242.8351 239.5155 235.3708 232.5003 232.1173 231.4063 230.9688 230.7718 230.6907 230.318 230.4877 230.5739 230.8414 230.7791 230.6485 231.3884 229.261 231.1417 231.0691 231.0015 231.4605 231.9071 231.9548 233.2859 238.8032 241.6934 242.4492 251.6472 255.1349 258.0902 259.7415 260.2467 259.5229 258.2336 256.9486 255.163 -9999 -9999 +275.5677 274.2148 273.5507 271.196 274.2583 275.9802 277.0339 278.491 281.4279 283.5391 285.3469 286.9247 285.915 287.2 289.7368 288.5205 285.8577 285.1909 285.6818 283.4688 279.423 276.52 274.1544 270.2562 263.7004 262.675 262.3036 262.8969 261.8138 261.9507 259.5472 261.6857 261.5938 261.4158 261.6933 262.3586 263.2425 263.3878 265.3503 268.6058 270.7635 274.3734 274.4447 281.6531 283.6689 284.193 285.1302 286.4439 288.1578 289.7032 291.1399 292.6873 296.2119 296.7221 297.0675 296.4544 297.1638 297.8757 298.9502 300.2507 301.0046 302.4632 302.5571 301.5066 300.418 298.4276 296.187 294.6488 294.0992 292.7894 290.2317 288.9581 286.9848 284.4294 280.7009 280.1874 282.2176 284.7622 286.654 288.5467 289.1713 290.1585 290.7545 290.562 292.7666 294.9022 296.0566 297.231 299.243 300.8034 301.7822 302.0279 301.7386 301.2157 299.998 298.8546 297.8232 297.0199 293.8994 295.6107 296.6145 297.3608 298.0128 295.035 297.1086 297.8092 297.7812 298.6325 298.7042 298.4249 297.6825 297.2663 296.7888 295.7934 294.2725 292.5301 287.7296 289.9351 291.7409 292.672 291.6966 290.313 288.5758 286.7036 284.1474 276.662 278.4981 282.864 283.4475 278.8405 274.4318 275.2988 278.1376 280.6819 286.1022 288.05 289.1862 290.4485 291.3948 291.2078 292.1186 292.8711 294.6781 295.9613 298.0563 297.9483 296.9659 295.5452 293.7679 293.15 292.745 293.2357 292.9859 291.8574 290.4921 288.9787 287.5487 285.6436 281.6632 279.0203 278.1593 278.157 277.2686 276.9328 276.6697 276.5187 276.6787 276.7852 277.2928 276.5975 275.7335 272.2663 270.6333 269.693 268.6894 268.67 269.0821 267.3444 266.6083 265.67 264.9872 264.6232 264.1331 263.6035 263.3802 262.9123 262.278 260.1811 260.1811 262.1645 261.3083 259.616 259.7856 259.4142 257.9466 257.7555 257.0236 255.2356 254.9416 256.6155 257.8557 258.0882 257.8466 257.433 256.1863 255.494 256.0331 256.8314 256.2859 254.8799 252.6855 251.324 251.68 254.6876 257.4506 261.128 263.2848 262.6901 260.8528 257.7367 253.9359 251.7886 250.957 247.0606 245.6908 245.104 242.9516 246.8993 249.8168 253.1943 255.3716 258.3244 259.3938 260.6179 262.2111 264.9495 267.1212 267.3633 266.9738 265.1959 263.659 261.7612 257.959 254.8163 260.8405 260.6943 261.0206 260.5359 259.7385 258.8364 258.2378 258.4562 259.003 258.8779 257.847 256.8772 254.6747 251.6311 246.5071 241.0801 240.8219 242.6268 245.8648 251.1406 253.5542 256.0544 258.7848 260.0666 260.3636 258.2722 257.9627 257.2726 256.918 256.6638 255.4665 252.3175 250.833 247.9311 249.2808 251.9943 255.622 259.7597 260.7673 261.101 261.3701 262.3416 264.331 265.7081 267.0369 267.6837 263.9686 260.6736 255.904 251.9031 248.5604 243.4192 240.4674 250.1774 255.0127 256.7106 248.0338 240.8003 238.493 236.4017 235.8037 235.8768 235.7144 235.6637 236.9943 243.5592 252.4196 257.3029 256.4209 254.2738 256.5948 257.5415 257.6623 256.4712 248.6683 241.0081 235.1639 239.852 242.8005 244.6079 246.1997 247.0008 248.0372 251.2413 252.7687 252.3707 249.9446 249.9108 252.2089 252.2973 246.7935 243.254 251.9212 254.6662 254.7266 254.3279 255.0246 256.4511 258.3204 260.0848 261.6742 265.5592 266.4515 265.3337 260.214 256.6949 253.5003 249.5054 245.3319 241.2759 233.6972 231.0247 230.9466 231.1147 231.1541 231.548 231.535 231.4623 231.2117 231.1273 230.743 230.1945 231.4743 231.6464 231.315 230.8645 230.5413 230.4251 230.5515 232.6643 233.7817 234.9306 235.6355 236.6195 237.2199 237.9292 239.6546 241.5214 244.7432 245.4706 246.2438 247.7134 248.9333 250.1418 251.3602 252.3183 253.1089 252.9682 251.5425 250.067 247.6739 246.683 246.9395 247.3691 247.228 246.3949 243.9835 242.9107 242.1313 241.3125 240.969 240.5696 239.4364 238.5191 237.5406 236.2649 234.9749 234.4825 234.1037 233.4585 234.1182 235.6424 236.8846 237.5246 238.2635 236.947 234.5337 231.648 230.6858 230.8668 231.4439 230.2009 230.4212 230.725 231.2194 231.4207 231.6409 231.9465 231.796 231.613 231.4513 231.4417 231.2733 230.9883 231.2 230.9668 230.9155 231.1298 231.8363 232.757 234.7086 236.5912 239.654 241.524 243.4169 244.4475 245.4865 247.2142 248.6666 250.1766 251.5381 252.5313 253.1762 252.5376 251.1252 249.9534 248.8492 247.0928 245.9652 244.851 244.0179 239.2632 234.7529 232.0397 231.6406 231.1556 230.6569 230.5494 230.6534 230.7541 230.3368 230.3174 230.3497 230.921 231.0169 230.6465 229.0947 230.783 231.0808 230.6303 231.1333 231.9337 232.7505 232.9949 235.3126 243.5595 248.4972 248.618 249.6766 252.1951 255.7175 258.3354 259.9661 259.7171 258.1846 257.0395 255.199 -9999 -9999 +278.513 276.4207 277.4923 279.2896 279.0165 278.7824 280.2515 282.2195 283.662 285.7246 287.8495 289.0359 288.6233 288.1649 289.334 288.8806 287.4399 287.6991 286.0324 283.6556 281.9207 279.0561 275.7616 272.6652 266.0966 265.6529 267.1479 264.3254 261.6847 261.7191 261.791 259.1657 260.368 261.3949 261.2632 261.2672 261.2142 261.7462 261.5231 261.771 266.311 268.7634 272.5643 277.3774 280.1836 281.0686 281.9912 284.272 285.6017 286.902 288.751 291.6432 293.4005 293.8949 293.708 295.3025 297.9211 299.328 300.3039 300.7924 300.7036 301.5378 301.5795 301.4728 300.7534 298.7249 295.8005 294.0056 291.0815 289.0127 288.4477 286.6619 285.0998 283.0724 281.9904 279.616 281.3775 284.9272 287.2794 290.5295 291.5318 292.1553 292.4426 292.8906 292.7961 294.2574 295.5968 296.7466 299.5879 300.8352 301.5974 302.1902 302.5321 302.4597 301.3807 300.1527 299.7084 298.2907 293.6331 295.6442 297.755 298.6104 298.2181 297.3506 297.9926 298.5618 299.4833 299.4254 299.692 299.7496 298.8329 298.0493 296.8925 295.602 294.0071 291.6427 288.5746 290.577 292.4282 293.3998 292.4281 291.1701 289.5965 287.5619 284.4882 279.4491 280.6573 284.2813 286.0211 284.0667 277.8693 273.4978 277.8019 280.2277 285.423 287.4613 288.9545 289.7042 289.5957 290.1499 292.0367 293.4277 294.6299 296.7018 297.9681 298.6168 298.0869 295.5452 293.7679 293.15 292.745 293.2357 292.9859 291.8574 290.4921 288.9787 287.5487 285.6436 281.6632 279.0203 278.1593 278.157 277.2686 276.9328 276.6697 276.5187 276.6787 276.7852 277.2928 276.5975 275.7335 272.2663 270.6333 269.693 268.6894 268.67 267.0152 267.1021 267.8536 269.1616 268.1176 265.1736 265.2784 266.0427 267.8026 268.4226 268.4307 268.5604 266.3708 265.8748 265.2177 264.2682 263.8907 263.7942 262.8159 262.1729 262.6154 261.5498 258.3748 254.9416 255.6356 255.6059 255.3002 254.8721 254.4374 254.2905 253.9512 253.3891 251.8348 251.79 252.1556 254.7855 257.8018 258.7667 260.915 261.8775 264.0174 264.0483 261.565 258.2497 254.9398 255.0238 254.7258 251.5774 248.7643 247.9693 244.2937 247.4963 250.9172 253.6006 255.9588 257.4563 258.6496 260.0296 261.5856 264.8774 266.5419 268.0605 267.8493 266.5754 264.6982 264.2991 261.0168 258.0667 261.7651 261.7882 261.9665 261.682 260.7884 260.6615 259.8243 260.1749 259.9874 260.3641 258.0685 256.6306 255.2893 252.5013 248.205 241.7505 241.3595 243.1786 246.0998 251.3273 253.3995 255.7327 257.6063 259.0363 259.6088 259.7119 259.0902 258.5509 258.0491 257.616 256.7997 253.9127 253.9382 250.5094 248.3282 249.6182 252.1669 256.5306 258.1631 259.3763 260.708 261.2288 262.6237 263.8728 265.5372 266.2742 265.1134 260.9787 254.5039 249.442 247.0844 245.2267 243.3963 254.4986 256.9484 258.9435 252.5004 246.5196 244.164 239.8984 239.0575 238.3667 237.2512 237.3544 242.902 253.7141 258.1904 261.211 261.3435 260.5433 260.4084 259.0527 257.7523 255.4987 246.1849 239.2874 235.1823 243.0073 245.0371 246.7699 248.4389 249.7098 250.8431 254.1478 255.8988 256.1118 253.8034 253.7395 254.0712 251.0168 243.6895 246.1333 253.4025 255.8445 256.7626 256.486 256.4847 257.0451 257.8438 259.0537 261.5027 264.6646 266.0689 266.6727 265.1002 261.4974 254.6979 249.5234 248.7527 245.5145 238.28 230.9876 231.0673 230.9159 230.9745 231.0042 231.3141 231.2716 230.9875 230.703 230.7203 231.2437 231.2792 231.0921 230.5186 229.7871 231.2907 230.8577 230.6145 232.1856 233.5291 233.877 234.8398 235.5705 236.664 238.1187 239.2861 240.8231 243.2164 244.7731 246.0092 247.3846 248.6501 249.8349 250.6533 251.2937 252.5146 252.882 251.8867 250.7062 248.2708 246.7957 245.859 245.7302 245.7531 245.1463 243.4801 243.1071 242.1886 241.5237 240.7081 240.2257 240.0781 238.989 237.6081 236.4318 234.9954 234.7172 233.5549 231.4967 234.6132 236.0297 237.2926 238.1961 238.0799 233.6404 231.0249 230.6341 230.8966 231.1235 231.5951 229.458 230.8849 230.6116 232.1301 231.537 231.3677 231.6963 231.5282 231.3761 231.4611 231.2986 231.1653 230.9775 231.1595 230.7178 230.9081 230.9402 231.4481 232.172 233.1214 234.5098 238.614 241.0309 243.1903 244.4143 245.7868 247.1683 248.2352 249.4741 250.3763 251.7126 252.4658 251.508 250.5441 249.3288 248.1853 246.6025 244.1541 243.1779 242.7003 235.7352 231.9058 230.6632 230.7596 230.5029 230.3765 230.3368 230.3582 230.5544 230.3164 230.4967 230.6957 230.75 230.8843 231.0378 229.6035 230.871 230.649 230.8146 231.2458 232.264 233.652 234.5637 239.3627 244.2862 246.3831 248.9652 253.3675 253.5426 255.7871 258.007 259.7355 259.1243 256.9675 255.2835 253.5237 -9999 -9999 +284.9169 283.3773 282.1271 282.5199 283.4973 282.2081 282.9237 284.7004 286.2624 288.3264 290.8033 291.7586 291.9278 290.2601 290.9585 290.5479 289.3965 289.0991 287.5102 285.9844 283.7198 279.7696 277.2424 274.5674 269.0178 268.6103 268.6129 268.2098 263.6248 261.3225 264.0298 261.4023 261.466 261.209 261.4314 261.1208 261.1619 260.9734 261.1658 260.8673 260.8344 262.8621 272.9654 276.6659 278.3393 279.2805 281.1965 282.6955 285.0771 287.1389 288.8522 290.0743 290.7082 290.9751 293.0294 295.9197 298.1486 299.4233 300.1892 300.4765 300.0122 300.2593 300.1678 300.5444 300.5521 299.1552 297.8784 296.0283 293.8267 290.8201 286.8117 286.0796 285.8531 285.899 283.4507 281.2496 281.37 283.4992 285.7217 290.5501 292.1297 292.8832 293.6384 294.1288 294.4857 294.7139 295.8068 296.7462 299.6948 300.9217 301.5591 302.1512 302.7372 303.0349 302.553 301.689 300.6382 299.0546 294.5359 297.041 298.853 299.7198 299.9637 299.1336 298.6548 299.495 300.3777 300.7549 300.6994 300.4597 299.5195 298.5637 297.0259 294.8997 291.5741 288.4235 288.8294 290.2964 292.4282 293.3998 292.4281 291.1701 289.5965 287.5619 284.4882 279.4491 280.6573 284.2813 286.0211 284.0667 277.8693 273.4978 277.8019 280.2277 285.423 287.4613 288.9545 289.7042 289.5957 290.1499 292.0367 293.4277 294.6299 296.7018 297.9681 298.6168 298.0869 297.6681 295.9112 295.0232 294.582 295.29 294.8141 293.5922 291.9596 290.4851 289.6398 288.2036 285.4739 282.456 279.4965 279.3667 280.5761 280.4088 276.6916 273.9135 273.7156 273.1876 272.7397 272.5768 272.3602 269.7434 269.7511 268.7643 268.3719 268.2141 268.4211 269.128 271.6778 272.8125 270.5439 268.7852 267.4873 269.201 270.3645 271.0623 271.3615 270.5092 269.7621 267.2962 267.9706 268.0297 268.0522 267.9535 267.0603 265.8804 264.5793 264.6935 263.1293 257.621 255.4474 254.2944 252.9583 253.6729 253.635 253.5492 253.3723 253.2429 251.8269 253.062 253.8445 256.7985 259.8444 262.0527 262.9164 264.2516 264.9651 264.406 261.2376 258.7892 257.9977 257.4818 256.7472 254.5337 252.1411 249.5088 243.6353 246.8546 250.9082 253.3421 255.0823 256.9064 258.2801 260.3003 261.854 265.3484 266.9109 268.7658 268.9044 268.0332 266.378 264.9716 263.2667 260.2326 263.1557 263.2567 263.3573 262.7051 262.2138 261.5536 260.889 260.788 260.6186 260.1755 257.4902 256.0873 254.4745 252.1259 248.8221 242.241 241.7025 243.6794 245.4576 251.3075 252.6328 254.6672 256.1345 257.3224 258.5735 259.458 259.8776 260.0087 259.3328 258.6483 255.9532 258.2342 257.3321 255.1401 251.3715 248.7672 249.7809 254.1473 256.187 257.3067 258.4284 260.5846 261.6332 262.873 264.012 264.9846 265.3175 262.7212 258.8369 254.4323 251.471 246.5944 245.848 256.2816 258.7841 259.3031 253.4585 253.4073 251.9103 247.7469 243.8462 239.7895 239.0163 239.6208 245.7138 258.059 261.2088 262.1886 261.9454 260.928 259.1702 257.14 255.4167 253.1687 243.0848 235.8938 239.7289 244.9469 247.0146 249.0098 250.8927 252.5408 253.9147 257.3496 259.3651 260.2977 258.5985 255.6095 255.5166 250.6758 246.1786 249.0787 254.753 257.5024 258.9953 259.4005 258.5511 257.7172 258.1036 258.7908 260.8925 264.0664 265.9593 266.6994 266.9657 264.5069 259.8972 256.8748 255.4655 250.5328 243.8658 236.159 236.0493 233.3864 232.3008 230.8753 230.9877 231.0806 231.0069 230.9832 230.6351 230.8486 230.8386 230.5517 231.0476 231.4155 230.3604 230.7269 230.8689 230.8648 231.5932 232.0063 233.0022 234.3491 235.7943 236.5083 238.471 240.144 243.5267 244.5737 245.6625 246.8503 247.8867 248.852 249.4679 250.2048 251.227 252.6929 252.0357 250.6105 248.7851 246.9622 245.2893 244.4349 244.3238 244.0307 242.8478 242.2085 241.4487 240.4572 239.9027 239.6986 239.6217 239.3043 238.0826 236.7573 234.9969 234.4767 233.9465 230.7911 234.5593 235.8814 236.9409 237.1848 234.9818 230.5436 230.5915 230.708 230.8065 231.2783 231.735 229.5173 230.6354 231.5436 231.8007 231.8008 231.4744 231.6004 231.8312 231.4409 231.1585 231.1487 231.061 230.869 231.0706 230.8166 230.8789 231.0175 231.2888 231.7374 232.4639 233.3746 237.7146 239.6942 241.1155 243.1192 244.8424 246.7781 248.1416 249.5031 250.4054 253.0939 252.997 252.3945 251.4931 249.88 248.1272 245.3749 243.8616 241.4489 240.0143 233.4639 230.5619 230.3456 230.1771 230.283 230.2581 230.3925 230.4196 230.3966 230.4666 230.7977 230.5519 230.75 230.8843 231.0378 229.6035 230.871 230.649 230.8146 231.2458 232.264 233.652 234.5637 239.3627 244.2862 246.3831 248.9652 253.3675 253.5426 255.7871 258.007 259.7355 259.1243 256.9675 255.2835 253.5237 -9999 -9999 +287.6557 288.3696 287.4126 286.4817 286.3073 284.1981 285.0872 287.4463 288.7973 290.4132 291.7859 293.4484 294.0529 293.2988 293.2614 291.8497 290.925 290.5123 289.429 287.2513 284.8965 282.4972 278.9167 276.4472 273.6512 273.1425 273.4183 273.2495 271.0225 268.1322 263.9311 262.7005 263.5578 259.0966 261.7466 261.323 260.835 261.035 260.9338 260.7012 260.9318 261.3235 270.3394 273.86 274.2739 278.4384 280.5745 282.9322 284.1243 285.2154 286.6126 287.5084 288.5466 291.7519 294.0968 295.5283 297.1885 298.3981 299.0584 298.8398 298.4565 298.3585 298.4119 299.1716 299.7116 300.0014 298.7307 297.5438 295.9621 293.468 289.9046 290.1957 289.2858 288.2188 284.869 282.4608 281.0906 282.4213 284.6566 289.7601 291.7232 292.8534 293.9281 294.4781 294.8717 295.3036 295.939 296.9357 299.4944 300.5158 301.5591 302.1512 302.7372 303.0349 302.553 301.689 300.6382 299.0546 294.5359 297.041 298.853 299.7198 299.9637 299.1336 298.6548 299.495 300.3777 300.7549 300.6994 300.4597 299.5195 298.5637 297.0259 294.8997 291.5741 288.4235 288.8294 290.2964 292.9109 293.6962 293.0789 291.6577 289.8808 287.8755 285.9539 281.5605 284.4027 285.9018 286.9761 286.5951 281.1541 274.7749 276.0288 278.4398 283.2666 285.2229 286.4319 287.0562 288.054 290.4276 292.1638 293.0192 293.3846 296.0474 297.7581 298.9276 299.0025 298.6758 296.9753 296.4022 296.6021 296.7434 296.622 294.7901 293.3927 292.4221 291.5317 289.7241 287.8264 286.6063 284.3278 283.6155 284.3255 284.1909 282.3402 278.561 276.1526 273.9821 272.7791 271.6509 270.4945 270.9578 271.9753 274.2182 272.9981 273.3016 273.3958 274.5655 274.9106 275.3041 271.9503 271.098 269.7682 269.8472 272.2664 272.9913 273.5461 273.1208 271.8573 269.7191 270.7211 270.7716 270.6539 270.3163 269.1022 267.5068 266.6704 266.271 263.7557 261.2617 259.6037 257.6159 255.8986 254.7212 254.1386 253.8979 254.4079 253.0822 253.8472 254.6938 256.3189 259.113 261.4118 263.8092 265.0811 266.254 266.6349 265.5687 263.2357 261.2407 260.1007 258.5242 256.8708 255.2867 253.5941 250.3825 245.562 246.9519 251.5751 254.0069 255.0629 256.8474 258.0196 260.1878 261.6159 265.3333 267.388 269.0443 269.9783 268.6872 267.2878 266.3783 264.8892 262.1662 264.6622 264.5627 264.563 263.8793 262.8523 262.3455 261.1664 260.2758 259.7546 258.9321 256.3958 254.9768 253.6095 251.4716 248.6876 243.1559 241.6837 242.7965 245.7921 251.8227 253.4944 255.0654 256.7529 258.289 259.2296 259.9983 260.6975 260.8271 261.0722 260.3076 259.2725 259.6969 259.8474 259.4145 256.4666 252.132 250.3766 251.5329 253.4275 255.3183 257.6818 259.024 261.283 262.5474 263.3631 264.5541 265.3749 263.2254 260.0384 255.951 251.4154 243.1803 253.3508 258.4193 260.9843 259.9007 256.6515 258.3777 255.482 251.5087 244.0305 241.233 240.9031 243.4448 249.4943 260.1888 261.8516 261.5895 259.9015 258.0353 256.1294 254.0279 252.0097 249.8575 237.3464 237.151 240.371 245.1425 248.0898 250.9707 253.5854 255.5177 256.7545 260.7674 262.5374 264.038 262.4294 258.2366 255.6472 253.4673 248.7665 250.9919 256.4271 259.0692 261.1459 261.5973 261.7629 260.0001 259.1168 259.5003 260.8978 263.9582 266.0613 266.8987 267.8053 267.0275 264.5601 262.0623 258.9609 254.3771 251.4872 245.6863 244.0953 243.2864 239.7609 232.0926 231.3692 231.084 230.9461 230.8384 230.6046 230.75 231.0576 232.8045 235.6803 237.1196 235.1402 231.249 230.473 230.157 230.4491 230.9883 231.2989 232.8312 234.0096 235.4128 237.4859 239.2066 242.2542 243.2114 244.3721 245.2597 246.346 247.5193 248.0529 249.3022 250.2308 251.3787 251.4374 250.4702 249.1987 247.2323 245.4746 244.1306 243.5934 243.3537 242.421 241.4031 240.444 239.2115 238.6679 238.5092 238.6997 238.8259 238.277 236.6734 234.7293 234.0168 232.9356 230.4263 233.3112 235.7416 235.4184 231.467 230.4146 230.3797 230.6711 231.0546 231.0513 230.7991 231.3209 229.2016 232.2576 231.8929 231.5234 231.6014 231.5399 231.5141 231.5515 231.3806 231.0965 230.8683 230.9431 230.869 231.0706 230.8166 230.8789 231.0175 231.2888 231.7374 232.4639 233.3746 237.7146 239.6942 241.1155 243.1192 244.8424 246.7781 248.1416 249.5031 250.4054 253.0939 252.997 252.3945 251.4931 249.88 248.1272 245.3749 243.8616 241.4489 240.0143 233.4639 230.5619 230.3456 230.1771 230.283 230.2581 230.3925 230.4196 230.3966 230.4666 230.7977 230.5519 230.889 231.3542 229.3741 231.2346 230.9213 230.6913 231.1005 231.6384 235.3924 239.8435 239.2034 236.5778 240.3336 245.5399 250.6162 253.2577 253.0957 253.0595 253.2464 253.3348 253.5976 255.1989 253.3498 251.1662 -9999 -9999 +290.0552 291.9298 291.6264 289.8562 288.5432 285.2613 288.3235 290.7258 291.7131 292.7934 293.2321 294.4453 295.2673 295.3641 295.0326 293.0296 292.0996 291.579 290.6095 289.0338 286.8574 284.291 282.2908 280.5204 277.0907 275.442 275.1049 273.9439 270.5763 266.6616 268.4967 271.2802 271.3145 262.5471 261.0202 261.2444 261.1153 260.8331 260.6559 260.56 261.7282 262.3459 270.5032 270.5538 275.0429 277.4222 279.8494 281.6316 282.4772 283.6931 284.4578 285.1427 290.1629 291.477 292.7749 294.5667 295.4592 296.9713 297.0575 297.0203 297.0463 296.622 296.9772 299.1716 299.7116 300.0014 298.7307 297.5438 295.9621 293.468 289.9046 290.1957 289.2858 288.2188 284.869 282.4608 281.0906 282.4213 284.6566 289.7601 291.7232 292.8534 293.9281 294.4781 294.8717 295.3036 295.939 296.9357 299.4944 300.5158 301.4189 301.8428 302.4508 302.8669 303.1125 302.7849 301.213 295.1729 295.9152 297.985 300.032 300.7286 300.9319 300.6165 299.748 300.007 301.2073 302.0468 301.7855 300.7777 299.7632 298.0999 295.3446 292.4601 290.0314 292.6087 290.3897 291.3062 293.2501 293.9576 292.9341 290.485 288.2651 287.2978 285.5796 282.3777 284.4368 287.7949 288.4156 288.1849 283.7649 278.115 274.8598 277.0132 283.3121 284.3572 285.1333 286.4449 288.4062 289.7339 290.359 291.5094 292.7636 295.472 297.4369 298.7438 299.6581 299.6685 297.8156 298.0648 298.6742 298.6537 298.3957 296.5111 295.3415 294.393 293.2385 291.5348 290.2865 288.7912 288.0003 287.2458 285.8925 285.3149 283.6249 281.1696 279.1982 277.1327 274.2104 272.1516 271.8567 277.9363 279.7687 280.4663 279.3344 277.5447 277.3922 277.2472 277.0682 276.5237 273.5821 272.1317 270.6 272.1432 273.8127 274.6863 275.8627 274.98 274.2597 271.2829 273.0753 273.2499 273.1067 272.4486 270.8297 269.3338 268.6783 268.1794 265.5254 263.1646 261.487 260.1425 258.9269 256.9644 256.0659 255.3085 254.2957 252.9633 255.1761 257.5932 258.8781 260.8378 263.5079 264.8888 266.9324 268.0953 268.492 267.4845 265.5137 263.6187 261.3799 259.3659 258.4077 257.2895 255.1451 252.2617 245.4738 247.7568 249.9913 252.9684 254.4213 256.0388 257.9662 260.239 262.0419 265.7159 268.1075 269.2264 270.2128 268.9872 268.5597 267.4653 265.65 263.4422 266.185 265.3907 265.4526 264.1947 263.5908 262.4101 260.5625 259.4786 259.1685 257.5266 255.0345 253.6006 252.422 250.7039 248.2134 242.8291 241.771 242.324 245.384 252.1646 254.0428 255.5562 256.7877 258.2959 259.5965 260.8069 261.8704 261.2853 262.6608 261.9488 260.6566 260.7951 261.243 261.8197 261.0278 257.9388 254.4949 251.3906 252.3141 253.8746 255.9993 258.725 261.2331 263.1646 264.1441 264.4084 264.8849 263.0771 259.0579 248.0525 246.9219 249.4019 257.2289 260.7999 262.8495 262.2724 261.1169 259.9675 256.7722 251.8431 240.8893 245.6954 246.4246 248.7087 254.9443 260.6951 260.3379 258.5352 256.6954 254.2737 251.6071 249.2853 246.6777 244.1302 238.406 237.7802 240.3392 241.3172 246.0839 250.7825 254.5343 257.2907 259.1448 263.3642 265.6773 267.6448 264.8061 261.1663 258.1272 256.6501 252.8596 253.8337 257.3581 259.7779 261.6081 262.8083 263.0008 262.6243 261.842 261.2346 261.5092 263.9812 265.8276 267.0615 267.7719 267.9053 267.1258 264.8982 261.3416 258.661 255.9676 252.4693 249.8597 248.4072 242.775 234.4445 232.0466 231.9156 231.4975 231.0004 230.6494 230.9938 232.6254 236.1292 239.9376 242.1083 241.9513 240.9996 237.2542 235.0548 231.7781 230.917 229.7192 231.217 231.1281 233.4651 236.1188 237.3387 240.5879 241.7289 242.8523 243.6666 244.705 245.5982 246.5894 247.2568 248.1098 249.6475 250.0954 250.1414 249.1772 247.4825 245.6572 244.2351 243.3234 242.9131 242.421 241.4031 240.444 239.2115 238.6679 238.5092 238.6997 238.8259 238.277 236.6734 234.7293 234.0168 232.9356 230.4263 233.3112 235.7416 235.4184 231.467 230.4146 230.3797 230.6711 231.0546 231.0513 230.7991 231.3209 229.2016 232.2576 231.8929 231.5234 231.6014 231.5399 231.5141 231.5515 231.3806 231.0965 230.8683 230.9431 230.9173 230.8385 230.8186 230.9146 230.8555 231.2422 231.7211 232.0803 232.8736 237.9411 240.5409 242.0828 243.8655 246.2229 247.972 249.56 250.7971 251.5174 253.1202 253.5662 253.6897 252.9319 250.5922 249.0014 245.989 244.1792 240.4662 237.2804 232.2263 231.1931 230.3901 230.261 230.1828 230.3514 230.4177 230.3628 230.3789 230.5928 230.5928 230.8134 231.1106 229.0762 230.8924 231.0251 230.9632 230.8378 233.0891 238.3049 244.6892 248.8098 245.8227 238.7348 240.8925 246.2603 251.0284 253.2504 253.0703 253.0352 253.0918 253.1406 253.0679 252.8484 252.1341 249.7555 -9999 -9999 +291.8445 293.9391 293.7738 291.8908 289.093 286.711 290.5958 292.4143 293.5333 294.7092 295.3444 295.9112 296.0167 295.2993 294.5315 292.105 291.1906 290.88 290.8 289.907 288.8445 286.6984 285.3585 283.4544 278.795 276.9218 274.4671 272.1086 268.2679 267.3782 271.6082 275.0288 275.3523 264.978 258.9098 261.3095 261.1153 260.8331 260.6559 260.56 261.7282 262.3459 270.5032 270.5538 275.0429 277.4222 279.8494 281.6316 282.4772 283.6931 284.4578 285.1427 290.1629 291.477 292.7749 294.5667 295.4592 296.9713 297.0575 297.0203 297.0463 296.622 296.9772 298.112 298.9377 300.1183 299.504 298.9408 297.4439 295.4365 292.9889 291.8912 291.4597 290.2552 287.1848 283.8151 281.9658 282.2266 283.5847 288.7082 290.5035 292.3828 292.6236 293.1088 293.478 294.2408 295.3733 296.308 298.3979 299.1896 300.0359 301.2919 301.9855 302.5281 303.0975 303.1312 301.9428 297.0901 296.6218 298.8221 300.5168 300.9952 302.0544 301.9978 301.6274 300.741 301.8319 303.3793 302.499 301.3833 299.7274 296.174 292.7309 291.1156 294.529 294.8922 291.1896 291.9526 294.1441 294.3045 292.7068 290.2023 290.1826 289.0157 285.1841 283.154 285.7345 289.2207 290.5966 289.4383 286.7268 281.4195 277.9378 276.2984 281.5285 283.7832 284.0902 284.5615 285.9063 287.1575 288.4176 290.0762 292.3994 296.1903 298.3406 299.3984 299.9276 300.2589 299.6789 299.7283 300.3847 300.3535 300.0539 298.4884 297.5616 296.0574 294.382 293.3277 292.4795 290.8875 289.6984 288.4791 286.7538 285.7751 284.3162 282.2995 280.1947 276.9793 273.3894 273.017 276.7094 281.9808 283.0788 284.0328 283.3756 281.1866 280.2221 279.8474 279.3051 278.3534 274.8619 273.4308 272.1102 274.2691 275.3587 275.8758 276.6444 276.3445 275.9606 273.8633 275.2572 275.6297 275.0658 273.9014 272.8091 270.9101 270.8796 269.5968 266.5091 263.9888 262.7451 261.3675 259.9204 258.6622 256.7762 254.5921 254.0782 253.8848 257.4493 258.6733 260.3625 262.2817 264.6422 267.2536 268.3462 269.8543 270.3038 268.1499 265.8301 264.14 262.6189 260.7401 258.8158 257.734 255.4521 252.9879 247.4633 249.9012 253.1961 253.4846 254.4918 256.4235 258.2686 260.2469 262.157 266.004 267.6489 269.0757 270.0572 269.9308 268.6635 267.8155 265.8481 265.7024 267.0575 266.4775 265.4602 263.977 263.0259 262.1249 260.289 259.093 258.4002 254.3614 253.1671 252.1273 250.7069 248.6705 245.4977 242.3132 242.2138 242.7518 244.249 251.52 253.6204 255.1342 256.2249 257.6755 258.9092 260.2117 261.2326 261.4987 263.0389 263.0518 262.3419 261.7517 262.529 263.238 263.4064 262.745 261.1592 254.1274 253.034 253.8473 256.0442 260.1353 261.7776 263.8083 265.0935 265.6935 265.339 264.4442 262.5574 258.951 252.8157 248.1574 260.2667 262.3615 264.4019 264.0088 263.751 260.2247 255.4021 247.1497 246.0693 252.3524 251.454 251.4782 256.3342 260.06 257.8946 253.4915 251.7224 248.1774 244.8346 241.3588 239.9647 240.4724 242.1905 240.1086 242.1464 245.187 241.7473 248.0152 253.3376 257.109 260.5026 265.8965 268.2738 268.6978 265.1941 262.3498 261.1215 259.4898 257.6129 255.7299 258.8606 261.9972 263.2001 264.7707 265.6853 265.3073 264.8828 263.9568 263.4154 263.9709 266.0003 267.443 268.027 268.4748 267.8455 266.6961 264.6365 262.6224 260.0394 256.1809 251.7083 246.8099 241.2326 234.6814 235.6077 237.4726 234.9857 231.0004 230.6494 230.9938 232.6254 236.1292 239.9376 242.1083 241.9513 240.9996 237.2542 235.0548 231.7781 230.917 229.7192 231.217 231.1281 233.4651 236.1188 237.3387 240.5879 241.7289 242.8523 243.6666 244.705 245.5982 246.5894 247.2568 248.1098 249.6475 250.0954 250.1414 249.1772 247.4825 245.6572 244.2351 243.3234 242.9131 242.2292 241.0495 240.0588 238.7918 237.6951 237.2761 237.4143 237.8058 238.0461 236.4771 234.6389 234.239 233.9593 232.4379 230.1233 231.4488 230.2688 230.1484 230.3391 231.1696 231.0243 231.0988 231.282 229.7895 229.1891 231.0444 231.9323 231.5648 231.5376 231.4687 231.5416 231.4645 231.5241 231.3858 231.2795 231.1995 231.1208 230.8754 230.8038 230.7327 230.8839 230.8619 230.8272 231.2326 231.5096 232.9059 239.0701 240.9473 242.6979 244.4157 246.5851 248.6124 249.7802 250.574 251.5001 252.7845 253.4101 253.5312 251.8112 250.1369 248.1638 246.2075 242.964 239.2216 235.9091 231.1809 230.9193 230.3149 230.26 230.2484 230.336 230.3485 230.4643 230.523 230.6215 230.4708 230.9491 230.0021 230.686 230.846 230.8372 230.5666 230.7474 238.0437 240.6305 245.367 249.3978 250.0579 243.3876 240.3734 244.9739 248.0634 253.0483 252.8525 252.8993 252.9204 253.0382 252.8644 252.2482 252.104 251.8575 -9999 -9999 +291.8283 293.7786 294.3578 293.2582 291.1973 290.1862 292.6593 294.1979 295.3233 294.7092 295.3444 295.9112 296.0167 295.2993 294.5315 292.105 291.1906 290.88 290.8 289.907 288.8445 286.6984 285.3585 283.4544 278.795 276.9218 274.4671 272.1086 268.2679 267.3782 271.6082 275.0288 275.3523 264.978 258.9098 261.3095 260.9934 260.8264 260.8355 260.7257 262.1824 264.1498 266.9834 270.3939 274.2653 276.8693 278.2731 278.5388 279.3013 281.7358 283.5705 285.347 288.5105 290.0847 292.1058 293.3189 293.6783 294.037 294.6417 294.2742 294.5048 294.9031 296.1451 297.0167 297.9137 298.8311 300.107 299.6152 298.7685 297.6342 295.5724 294.3321 292.7812 291.4452 289.3686 287.2288 283.7107 281.355 283.4619 285.9269 287.9924 289.6356 291.6982 293.0457 294.4275 296.0526 297.4334 298.6781 300.6217 300.9226 300.6299 301.3079 302.3503 302.7624 303.3193 303.4565 302.331 298.9976 299.9494 299.5813 301.5472 302.644 303.304 303.4088 303.1217 302.4718 301.7589 303.6278 303.455 301.9109 299.7946 294.3847 292.2763 294.6984 297.0683 296.7313 291.9643 293.4826 294.9241 294.3928 292.9536 293.3972 292.4718 290.7903 286.1082 284.1022 285.8083 289.0787 291.2537 290.6399 288.6798 284.0389 280.4789 279.4977 278.2704 280.4218 280.9619 281.6785 282.9359 285.2061 289.3933 290.7686 292.1247 296.04 297.8578 299.4812 300.5288 300.8602 301.2211 301.5092 301.928 301.9356 301.0747 300.2007 298.9403 297.3761 295.8048 294.7885 293.6301 292.6508 291.1504 289.6441 287.2012 285.7235 284.0364 282.2954 279.2868 275.921 273.6662 275.858 279.2876 283.4932 285.0422 286.1464 285.7054 283.8237 282.2057 281.1075 279.9616 278.9653 276.4289 274.9006 273.8615 275.336 276.701 277.4908 277.9692 277.8315 277.5688 275.8142 276.9795 277.4402 277.1811 276.4035 274.7645 273.0815 272.9304 271.2042 267.4258 265.7114 264.5408 262.4641 260.4117 258.1136 255.7884 254.8577 253.5467 257.1003 259.6735 259.4894 262.0823 264.7149 267.1163 268.5127 269.4571 270.8145 271.7086 268.7797 267.6435 265.8529 263.2486 261.6374 260.357 258.0447 255.8483 252.9896 247.1001 249.1174 253.2806 254.8014 255.6991 257.1204 258.8645 261.053 263.0472 266.7533 268.1428 269.4665 270.1758 270.363 268.883 268.5228 268.0617 267.8663 267.7924 267.1004 265.4385 263.6765 261.7781 260.9391 260.048 258.9973 257.5625 253.7592 252.0404 250.3737 247.6819 245.2637 243.2384 242.2988 242.8251 243.1412 243.7551 249.5569 252.1152 253.6575 255.007 256.1805 257.6023 258.7277 259.5729 260.972 262.1946 263.101 263.5759 263.141 263.1305 264.0122 265.129 265.7587 265.2624 257.6109 255.5113 257.0804 259.7579 261.8485 263.3965 265.2963 266.6246 267.0768 266.1408 266.0941 265.0161 261.0083 251.6788 252.5441 262.394 264.262 265.845 265.1796 263.8125 259.6082 254.7731 245.347 253.8542 256.6046 256.6744 256.6176 258.8524 257.6925 252.9458 247.8293 241.4808 241.3979 241.3071 245.5305 247.5474 250.4298 250.2612 242.2985 239.8607 245.958 247.8595 244.5859 250.7927 256.2747 260.871 267.078 268.2738 268.6978 265.1941 262.3498 261.1215 259.4898 257.6129 255.7299 258.8606 261.9972 263.2001 264.7707 265.6853 265.3073 264.8828 263.9568 263.4154 263.9709 266.0003 267.443 268.027 268.4748 267.8455 266.6961 264.6365 262.6224 260.0394 256.1809 251.7083 246.8099 241.2326 234.6814 235.6077 237.4726 234.9857 233.3081 230.8598 235.0413 236.9502 239.6368 242.3947 244.9121 244.9166 243.4103 240.5006 235.3267 232.4155 231.4555 231.3011 231.0338 229.8935 230.0636 232.2728 234.5359 238.7948 239.6846 240.2798 241.4811 242.5665 243.202 244.21 245.2457 246.1668 247.6513 248.4307 248.9392 248.5436 247.6863 246.1348 244.4031 243.2831 242.804 241.9219 241.0732 239.9316 238.8127 237.5616 236.9994 236.4786 236.4697 236.3507 236.6967 235.8249 235.3631 234.8908 234.2994 229.6167 230.3425 230.5171 230.5821 229.0563 229.0166 229.3073 229.4474 230.3504 231.3822 232.0635 230.1784 230.5098 231.3055 231.6259 231.6496 231.5987 231.6037 231.6706 231.5459 231.4848 231.4297 231.3571 230.845 230.7089 230.7608 230.7575 230.9409 231.0062 231.1 231.4148 232.4897 239.9843 242.1473 243.7927 245.8382 247.0773 248.3792 249.0926 250.2663 251.1938 252.5582 252.8517 251.6467 250.1402 247.4623 246.0309 243.7943 240.8178 237.0636 233.8167 231.3167 230.7169 230.1807 230.1321 230.2553 230.1293 230.6005 230.3784 230.4537 230.5497 230.7216 231.1506 229.5594 230.4835 230.4683 230.3768 230.6881 232.9264 243.9985 246.858 247.8388 249.7632 251.2801 248.3297 245.5798 243.522 243.0388 247.9567 250.6785 252.1993 252.0242 253.1851 252.9509 252.3037 251.7624 251.5322 -9999 -9999 +291.8283 293.7786 294.3578 293.2582 291.1973 290.1862 292.6593 294.1979 295.3233 295.9902 296.5971 296.0159 295.3031 294.1678 293.4072 290.8556 289.9021 289.2623 289.3615 289.0974 288.5984 287.4398 285.4174 282.6214 277.5768 274.9424 271.7193 269.3142 267.8572 270.3174 273.3594 276.5359 277.8547 264.0771 261.6886 259.0589 260.9078 260.6804 260.7548 261.2157 261.8486 265.2184 270.8282 271.8558 272.4384 273.8264 275.8118 278.7465 280.322 281.7386 283.2729 285.4559 287.0757 288.9311 290.2614 291.4001 291.7508 292.0692 292.0082 292.2407 293.1773 293.9445 295.6081 296.1573 297.5853 298.6205 300.2195 300.1477 299.718 298.9106 296.9643 295.8615 294.9294 292.9322 291.9081 290.2753 287.6391 283.9433 283.1604 286.0837 288.7375 290.2701 292.1133 293.8194 295.9341 297.2874 298.5551 299.5817 302.1459 302.4534 302.4617 302.3494 302.4803 302.9324 303.3044 303.5879 302.3345 300.8508 301.9273 302.3284 302.4236 303.4179 304.1137 304.4054 304.226 303.5283 302.8621 304.3323 304.1786 302.6812 300.7871 295.8456 295.8093 297.6434 298.4821 298.0182 294.2709 295.6589 295.9828 294.8087 295.0923 295.1802 293.8972 292.2275 289.1165 285.2987 285.49 288.9858 291.2229 292.0425 291.2468 288.4464 285.2522 282.9571 278.0942 280.673 281.897 284.1136 284.2323 288.5445 291.0001 292.8721 293.979 296.5965 297.7738 299.7888 300.9495 301.6435 301.8631 303 303.4641 303.7668 302.505 300.774 299.5609 298.2361 296.6135 295.5615 294.5409 292.8009 291.2521 290.1695 287.0368 285.5201 284.2572 280.7353 277.953 273.3609 275.4593 277.9236 280.0899 283.7698 285.6572 287.3227 287.0353 285.4914 284.328 282.0985 281.0365 279.3183 277.1957 275.6878 276.4714 277.5729 278.334 278.911 279.3062 279.4712 279.2419 277.6567 278.908 279.2724 279.2782 278.361 276.8507 275.4586 274.1984 272.22 268.5414 267.3582 265.342 262.6324 260.7889 258.9905 257.2263 254.9612 255.7438 260.0822 262.4631 260.9383 262.9611 266.8736 269.4648 269.8292 270.8099 271.7261 272.3788 270.6792 268.9445 267.6177 265.8438 263.9315 261.6095 259.18 256.5631 254.0259 247.7441 249.7354 251.9992 252.9817 254.0772 257.0011 258.9378 261.2525 262.6528 266.4242 268.1635 269.7539 270.6266 270.9826 269.8278 269.0262 268.3413 268.646 268.2195 267.1677 265.253 263.3582 261.4785 259.5093 259.1478 258.32 256.8487 253.7054 251.638 249.6239 245.3881 243.9102 242.856 243.317 245.3653 246.0671 244.144 245.7371 248.6056 251.0806 252.5084 254.6619 256.1335 257.1562 258.4317 259.8734 261.9107 263.1283 263.8681 264.3274 264.3194 264.7953 266.1199 267.5778 268.3184 263.2422 258.5435 258.2969 260.3683 263.5556 265.3695 266.9464 267.9961 268.533 267.2347 266.8303 264.6956 258.4698 251.6788 252.5441 262.394 264.262 265.845 265.1796 263.8125 259.6082 254.7731 245.347 253.8542 256.6046 256.6744 256.6176 260.1799 257.6925 252.9458 247.8293 241.4808 241.3979 241.3071 245.5305 247.5474 250.4298 250.2612 242.2985 239.8607 245.958 247.8595 244.5859 250.7927 256.2747 260.871 267.078 269.8173 269.2809 265.9784 264.3253 263.3145 262.2314 260.1571 258.212 260.7961 263.3668 265.6246 267.0017 268.3676 268.915 268.762 268.3988 266.8625 264.8234 266.6234 267.8929 268.55 268.8067 268.511 267.7624 266.7751 265.6783 261.8536 256.6409 250.9212 244.8301 237.4172 238.2953 244.6298 245.4098 244.3862 242.5336 240.315 241.668 242.1068 241.9052 244.1723 246.0476 245.4602 243.3715 240.5407 235.3976 233.1994 231.5509 231.1786 231.2666 231.0568 231.2757 229.7321 230.6555 236.641 237.2085 238.4657 239.4663 240.3658 241.1815 242.0818 243.1424 244.1284 246.0143 246.8722 247.3741 247.4001 246.9517 246.3667 244.4219 243.0649 242.6766 242.1232 241.0754 239.8766 238.5677 237.4748 236.9546 236.2696 235.8342 235.4322 235.5221 236.3755 236.3376 235.8954 232.8405 229.2643 228.8818 229.0969 230.679 232.0524 232.2444 231.5836 231.6113 231.9527 231.9178 231.9118 231.2933 230.367 231.0672 231.077 230.7318 230.8803 230.753 230.918 231.3762 231.3236 231.3625 231.5242 231.5938 231.7009 231.6581 231.59 231.4054 231.2994 231.6743 232.3645 234.0558 240.4144 242.7114 244.5863 246 246.5886 247.5872 248.5492 249.843 250.8665 251.3145 250.5356 249.608 248.0284 246.3042 243.8655 240.4912 236.2616 232.5784 231.7607 230.7446 230.6923 230.1547 230.0968 230.2209 230.384 230.173 230.3247 230.3881 230.5563 231.1386 229.0021 230.4446 230.2892 230.8388 231.0202 231.3971 237.6955 247.4272 250.7264 251.6159 251.9708 252.1042 250.9654 249.0896 248.1534 247.539 250.2434 250.3355 249.428 251.4623 251.7544 251.9821 251.9216 251.4321 251.2523 -9999 -9999 +292.8578 294.2348 294.3646 293.2432 293.0521 291.9494 294.7573 296.2754 297.1713 297.4815 296.8934 295.6714 294.0638 293.2057 291.8185 289.4072 288.1093 286.7074 286.6085 286.4641 286.7866 285.5978 283.5087 280.8464 275.117 272.5967 269.614 268.3441 271.0248 272.4488 274.119 276.8297 277.2726 261.4589 261.4086 258.8018 260.9785 260.6404 260.6799 260.8728 261.2693 264.5521 270.3718 272.0525 273.6855 275.2545 277.0944 278.4753 280.0822 281.0043 282.082 284.7126 286.2207 287.3135 288.4013 288.938 288.9109 289.8876 290.8847 291.1311 290.6905 293.0349 293.6086 295.4836 297.3662 298.7319 299.7601 300.5045 300.3736 299.3074 297.642 296.8882 295.9506 294.5091 293.4721 291.9148 289.0825 285.0168 283.601 284.5092 287.3697 290.1855 292.2442 294.2495 295.6846 297.6923 299.567 301.0878 303.0767 303.3621 303.3436 302.9316 302.7551 302.9174 303.4182 303.7643 303.5121 302.1979 303.2983 303.8464 303.86 304.0507 304.7368 305.2771 305.1003 304.6735 304.2622 304.8326 305.3452 304.1276 302.7275 299.4749 298.0182 299.3052 299.1888 298.1527 296.7174 297.0933 296.6954 296.8113 296.706 296.2366 295.0971 293.1228 290.6656 286.0667 286.9656 289.6532 292.0704 293.2148 293.6586 291.9919 289.2353 287.0764 279.0142 282.1551 285.5388 288.5858 289.883 291.0819 292.3738 293.7028 295.1772 297.7308 298.43 300.098 301.4161 302.0846 302.2868 303.5738 304.594 304.8148 303.0136 301.4695 299.5072 298.4147 296.8226 295.8767 294.3809 292.4632 290.545 289.2963 286.0461 284.5945 282.2789 278.6346 275.5457 274.7392 277.5099 277.8079 280.3856 284.8224 286.2737 287.55 287.8841 286.1484 284.4914 283.0923 281.6258 280.0396 277.4954 277.9386 279.0461 279.1364 279.5067 280.4095 280.5379 280.701 280.9925 279.8181 280.3322 280.8439 280.5575 279.6178 277.7157 276.5078 274.5184 272.3755 268.2208 266.877 264.8371 263.6622 261.9138 259.2242 256.0395 254.9416 257.6981 265.5901 264.2377 262.5215 265.5428 268.7119 270.2602 271.7605 272.6677 273.3582 273.6241 272.0349 271.1324 269.4155 267.6689 265.146 262.7051 260.3419 257.9793 254.929 248.2104 249.3215 249.3806 250.9758 253.4781 256.1852 258.1728 260.3068 262.5059 266.5712 268.0211 270.0844 271.1866 271.5786 270.9513 269.7372 269.499 269.7721 268.1552 266.9584 265.1165 263.2943 261.3234 259.2937 257.6558 256.8056 255.785 253.2766 251.5344 248.7973 245.0429 243.5437 242.6502 246.959 251.1065 252.5398 244.144 245.7371 248.6056 251.0806 252.5084 254.6619 256.1335 257.1562 258.4317 259.8734 261.9107 263.1283 263.8681 264.3274 264.3194 264.7953 266.1199 267.5778 268.3184 263.2422 258.5435 258.2969 260.3683 263.5556 265.3695 266.9464 267.9961 268.533 267.2347 266.8303 264.6956 258.4698 247.6094 257.8772 264.1783 265.9088 266.9959 266.1675 260.4855 256.6319 257.4623 251.7835 253.4111 258.2747 259.6481 258.788 259.7435 254.2258 247.9644 242.6012 246.2487 250.0537 253.0293 254.6313 255.5809 256.029 254.221 244.6605 241.7337 245.641 249.7247 248.3407 246.5781 253.3468 258.4505 266.489 269.5129 269.8229 268.0059 266.1797 265.3622 264.9929 263.0302 260.7668 261.4215 264.3598 266.3721 268.1202 269.3977 269.8175 269.9403 269.6002 269.0044 266.3001 267.6845 268.496 269.015 268.5889 267.7629 267.104 266.3954 265.2974 261.6958 255.8519 249.1976 242.0566 237.7654 245.7551 247.9931 250.7391 250.3795 249.1116 246.5763 246.4506 247.3164 246.5843 245.9906 247.0102 245.6683 243.9642 242.7372 236.5757 232.8595 231.0073 230.645 230.9799 231.3058 231.0568 231.3199 229.6388 232.7308 235.0642 236.5539 237.5303 238.4448 239.3652 240.4414 241.2193 242.4614 244.3201 245.0779 245.573 246.1781 246.2369 245.7419 244.129 242.9093 242.3767 241.9928 240.7156 240.2963 238.7378 237.3788 236.7804 236.4782 235.6854 232.3594 235.1864 235.2057 234.2935 230.8454 228.8121 231.2351 231.5195 231.8821 231.8163 231.4982 231.3499 231.354 231.2944 231.4551 231.3224 231.3018 231.1451 231.1714 231.1598 230.6894 230.8535 231.032 230.7976 231.0372 231.174 230.8235 230.6334 230.1362 230.1744 230.4819 230.3101 230.4081 230.6258 230.9469 232.2693 234.4516 235.5876 240.8179 242.718 243.6433 245.1134 246.0544 247.4336 248.2407 249.6453 250.5269 249.7293 248.8607 247.7852 246.2385 244.1515 242.3349 239.7795 233.4547 231.321 231.1774 230.5018 230.4533 230.2237 230.0485 230.171 230.5578 230.126 230.3425 230.4652 230.7715 229.0436 230.8836 230.3271 230.5871 232.2771 232.3227 233.1112 239.4254 247.9161 249.7404 250.9745 250.9275 251.4037 252.0583 252.1806 252.5836 251.6318 251.2983 252.0307 251.2977 250.9615 250.7828 251.3281 251.3442 250.968 251.3177 -9999 -9999 +294.7672 294.8508 296.7159 296.5353 294.8943 297.3268 297.6671 297.9273 298.7746 298.1435 297.0432 295.8005 293.9563 292.3554 290.7862 287.8526 286.3247 285.4711 283.6752 283.775 283.9636 283.1202 281.0146 277.3414 271.0054 270.8297 271.2431 272.7483 275.3569 274.5912 274.4032 276.6415 275.7685 261.2252 261.0764 258.7554 260.8789 260.6819 260.9277 260.5717 261.816 264.2595 269.549 271.3895 272.2565 274.3813 276.4707 278.9341 280.44 281.2317 281.5113 283.3847 284.2556 284.7178 285.4644 284.615 285.9308 286.9802 288.0661 289.237 290.5102 292.7535 293.8148 296.1009 297.1707 298.3399 299.7679 300.7035 300.9081 300.5317 298.4184 297.4716 296.5803 295.1313 294.1129 292.4986 290.9499 288.4793 284.8426 284.2929 286.4554 289.5737 291.5625 293.8818 295.2324 297.3524 299.6556 301.056 303.3722 304.0912 304.3216 303.9375 303.5132 303.786 304.166 304.2885 304.0579 303.691 304.4595 305.0894 305.4569 305.3258 305.5287 305.8265 306.002 305.8807 305.1912 306.0143 305.9427 305.5771 304.3202 302.6705 300.9714 300.3413 299.9077 298.349 297.7639 297.8921 297.4623 297.6653 297.5122 297.4342 296.1063 294.3844 292.7008 286.7643 287.9025 290.6533 292.5964 294.4924 295.4779 294.1292 291.7542 289.5821 282.9113 279.8168 284.2344 287.8405 290.2942 291.2404 292.4056 293.9223 295.5611 298.0419 298.9503 299.8125 300.8285 301.9679 302.7484 303.8518 304.8791 306.0126 303.8 301.5492 299.739 297.7585 296.0796 294.9199 293.2831 291.7666 289.9018 287.8878 284.2669 282.6077 281.0612 278.5139 274.6205 276.3636 279.3636 280.9059 281.2028 285.0516 286.6603 287.7693 287.7758 286.9203 284.9554 283.8057 282.1642 281.0027 278.9885 280.2 281.0156 281.0109 281.3429 281.7885 281.6607 281.9071 282.1431 281.8414 281.8706 281.9038 281.6415 280.28 278.4038 276.1374 274.1023 272.0976 268.749 267.9354 265.8734 263.7412 261.8326 259.7782 255.9903 255.4836 261.1165 267.1291 266.4152 264.8 266.9187 269.4688 271.4458 273.3611 274.5547 274.959 275.1177 273.9513 272.446 270.9559 268.8086 265.5031 262.7382 260.0562 257.8974 255.4683 247.4728 252.0991 252.8021 250.6364 253.4781 256.1852 258.1728 260.3068 262.5059 266.5712 268.0211 270.0844 271.1866 271.5786 270.9513 269.7372 269.499 269.7721 268.1552 266.9584 265.1165 263.2943 261.3234 259.2937 257.6558 256.8056 255.785 253.2766 251.5344 248.7973 245.0429 243.5437 242.6502 246.959 251.1065 252.5398 251.0377 244.9515 247.245 249.7645 251.8704 253.5433 255.7307 257.3243 258.469 259.6937 261.6598 262.7373 263.7446 265.0212 265.8208 266.2047 266.6449 267.6659 269.0242 266.8802 261.8037 260.2809 261.226 264.4715 266.2671 267.6173 269.0569 269.961 269.047 267.2519 263.0604 252.2963 261.7419 260.0445 264.0471 267.5981 268.7343 267.485 262.2151 264.343 262.6896 258.6418 254.9061 260.5846 262.0469 262.4334 259.3597 254.2355 246.4804 246.6439 252.2707 253.2015 254.8075 256.5655 258.5739 259.3754 255.9901 251.0898 244.6458 244.4771 250.1828 252.3313 248.2574 249.8704 255.3928 265.604 268.9538 270.1438 269.2303 268.5424 267.9448 267.5412 266.0224 263.6921 262.7435 264.6607 266.401 267.8013 268.5514 269.0959 269.5317 269.476 269.2215 267.2616 268.2913 269.5077 269.4294 268.2097 266.6118 265.6662 265.1035 263.4184 259.5281 254.091 245.9088 238.4905 244.1584 248.6509 251.943 254.3554 254.1395 252.6853 249.8001 249.9425 250.0242 248.6558 248.2734 248.3797 246.7705 246.6084 246.6399 242.3659 234.4253 230.7523 230.5647 230.5213 230.4898 230.8798 231.0878 231.2243 231.1606 230.5765 232.6811 234.1547 235.3783 236.9909 238.3657 239.592 240.5459 242.675 243.3956 244.0527 244.7442 245.3154 245.1268 244.2487 242.9979 242.0809 241.5814 240.9057 240.259 239.0956 237.7574 237.1915 235.6505 234.0557 234.4848 230.976 230.3068 229.2442 228.8446 231.1396 231.5826 231.3646 231.526 231.3987 231.2137 231.1108 230.7572 231.2484 231.6106 231.7126 231.044 230.8895 231.1251 231.096 231.2063 230.9247 230.9646 230.6775 231.0634 230.5911 231.138 230.8833 230.4153 230.5102 230.5251 230.7022 230.0893 230.8081 230.8541 231.4094 233.1864 236.105 240.2731 242.0055 243.5775 245.537 247.0941 248.5156 249.4205 249.9744 250.0623 247.7633 246.7321 245.4427 243.6465 241.5791 239.9145 236.2858 231.7595 230.3111 230.5078 230.2603 230.3404 229.8899 229.9587 230.3014 230.1943 230.1632 230.3167 230.4962 231.0596 230.2765 230.3619 230.361 232.3709 236.2914 235.9473 235.7913 238.7006 244.7614 246.1531 247.1881 248.3053 249.778 252.4327 252.9783 253.1594 253.127 252.9033 252.6535 252.2128 251.7706 251.1795 250.3438 250.6275 250.8335 251.0616 -9999 -9999 +295.9814 297.7856 298.6065 298.3992 298.8502 301.8046 301.7251 300.7242 300.0236 298.8778 297.4214 296.185 294.1469 292.0795 290.4829 286.5412 284.5088 283.6561 281.718 280.7967 281.0102 279.909 276.7629 272.9238 276.0073 277.4018 277.1958 276.2274 277.0561 276.0648 276.2631 277.1001 276.1052 260.8096 261.1901 258.3827 260.8488 260.4925 260.7458 260.9223 265.085 267.4321 268.626 269.5699 270.1685 271.2752 273.9478 277.159 279.2042 279.8614 280.0802 281.4676 281.3368 281.0346 281.4226 286.0829 288.4048 289.1169 290.2115 291.1693 292.1996 293.8307 294.7626 296.1163 296.7127 297.9137 299.3972 300.7772 301.3586 300.716 298.798 297.9436 296.246 294.3321 293.0048 292.2709 290.7893 288.8757 285.9685 284.3954 285.5973 288.5959 291.4951 293.3912 295.3835 297.1514 298.996 300.4147 303.3791 304.5565 304.989 304.8625 304.6055 304.933 305.133 305.0995 304.8525 304.6477 305.2928 306.0739 306.7263 306.5598 306.348 306.3448 306.9197 307.0523 305.5539 305.8127 306.4117 305.9924 304.9635 303.2147 302.1805 300.9853 300.3646 299.3232 299.0318 298.7007 298.1772 298.2766 298.4059 298.111 296.8037 295.1098 293.274 287.6672 288.6299 291.671 293.6635 295.0984 295.8738 295.5213 293.5763 291.4153 285.645 280.1112 283.6718 287.4821 289.7805 290.5588 291.7791 293.6041 295.1696 297.3807 298.2923 298.7541 300.1448 301.4781 302.7864 303.906 305.2361 306.2526 303.513 301.0434 299.2471 297.2009 295.5625 293.9092 291.7751 290.3934 289.3891 288.0597 285.3841 283.6058 282.1416 279.4568 276.9129 278.6569 280.9221 282.5894 283.1997 285.2948 286.7529 287.847 288.3379 287.2262 285.8445 284.4505 283.0708 281.3316 280.4443 281.5009 282.4793 282.6441 282.9787 283.2866 283.1818 282.9891 283.7126 283.2802 283.0824 282.7307 281.8664 280.5828 278.6487 277.2047 275.6271 273.9829 270.8951 267.9354 265.8734 263.7412 261.8326 259.7782 255.9903 255.4836 261.1165 267.1291 266.4152 264.8 266.9187 269.4688 271.4458 273.3611 274.5547 274.959 275.1177 273.9513 272.446 270.9559 268.8086 265.5031 262.7382 260.0562 257.8974 255.4683 247.4728 252.0991 252.8021 250.6364 253.84 255.2804 257.7383 261.0111 263.6362 267.4057 269.1422 270.68 272.031 272.1435 271.6387 270.3652 270.5206 270.3764 267.6495 266.4246 264.6978 262.3551 260.8215 258.7771 256.9201 255.0216 254.6283 252.3739 250.6084 247.4523 244.5474 243.4549 247.0662 251.8648 252.8039 256.3225 256.7878 246.7431 245.4997 247.7294 250.498 252.766 255.153 256.1583 257.8417 259.7299 261.7318 262.7815 263.8359 265.263 266.5479 267.4533 268.1999 268.5657 268.9901 268.1067 263.7831 262.188 262.7539 265.6256 267.833 269.1777 269.9018 270.9396 270.5705 268.1022 263.4286 250.276 259.3631 266.6783 268.4644 269.4941 270.4373 268.2541 267.6039 267.0188 265.2626 260.9611 256.3159 260.2839 262.6943 263.4746 257.2488 251.1503 244.152 251.1134 254.4995 255.6085 257.4793 259.7117 261.1188 262.1793 260.5744 256.7148 249.4059 246.4626 249.3572 253.3647 253.2403 246.5298 251.9876 264.2198 268.1586 270.0366 270.1783 269.8506 269.5232 269.6722 268.9675 266.464 264.127 265.3239 266.1702 266.9409 267.4777 268.248 268.6235 268.6457 267.9792 267.8321 268.3598 268.9858 269.9111 268.2623 266.1289 263.7476 262.357 260.6911 255.6801 251.1716 241.5175 244.9857 248.382 250.9733 254.6141 256.5169 256.9626 254.0883 252.4613 252.0162 250.7929 250.1568 249.8433 249.7926 248.629 249.7772 251.4085 249.1722 241.9256 232.7337 230.3718 230.6738 230.4494 230.6731 230.6485 231.1511 231.0771 231.1094 230.7746 230.3189 232.1836 233.8373 236.5624 237.3543 238.717 240.7995 241.8797 242.96 243.6989 244.2866 244.2453 243.7705 242.992 241.9651 241.4539 240.9361 239.4366 239.0333 238.9593 237.2705 236.1107 235.9658 235.6585 235.6941 232.3818 228.6465 231.2568 231.6739 231.5103 231.4386 231.2986 231.1469 231.3661 230.8616 231.0672 231.2317 231.7682 231.1453 230.8217 230.8304 230.9967 231.1144 230.8357 231.0856 230.5253 231.0707 230.5986 230.7354 230.8087 230.2518 230.7638 230.1979 230.7052 230.42 230.6292 230.5134 230.5652 231.2342 232.0238 234.5164 239.5853 241.6582 243.7634 245.5319 247.3083 248.6414 249.3706 249.8077 249.4473 246.5652 245.5774 242.8404 240.2458 238.4188 235.9763 233.173 230.9174 229.9118 229.9812 230.0186 229.8357 229.7683 229.8968 230.1833 229.9356 230.2622 230.4253 230.4164 229.2229 230.1355 230.565 231.5067 235.4652 238.177 239.6992 240.5412 240.443 242.2182 243.5972 245.7501 248.2451 252.8587 253.5685 253.4377 253.5114 253.6082 253.2172 252.9955 251.9817 251.311 249.7631 248.3083 247.1286 248.1964 250.2274 -9999 -9999 +297.5978 299.2909 300.56 301.0206 302.5009 304.9254 303.9038 302.1771 300.6776 299.1411 297.5269 295.6569 293.4118 291.3321 289.5481 285.4108 283.3719 280.9273 279.3478 278.3347 277.4935 275.3954 274.7137 276.9694 279.1974 280.4033 280.5928 279.6256 278.6779 277.8957 278.2281 278.0306 276.2997 260.6782 260.9215 258.3736 260.5771 260.5843 260.5295 261.5915 265.733 267.6673 265.7722 266.551 266.8272 267.0398 270.0034 274.0378 275.7857 276.2657 277.2274 277.3651 277.7585 278.0908 278.7651 281.8853 285.2621 287.2604 288.3988 289.5132 290.6586 291.5355 292.9077 294.4589 296.2573 297.2888 298.8945 300.5816 301.3962 300.9581 299.6255 298.3701 297.3527 295.7486 294.7542 293.4206 290.7697 288.8011 288.2282 284.0154 285.5919 287.9098 291.2209 293.0994 295.4496 297.1031 298.869 300.5113 303.5536 304.5783 305.3164 305.2515 305.2717 305.5134 305.6286 305.7357 305.5503 305.5923 306.2619 306.9104 307.2482 307.3543 307.0573 307.0838 307.4284 307.6378 306.3973 306.1353 306.59 306.547 305.1956 303.7067 302.8196 301.425 300.8083 299.6056 299.5898 299.1106 298.8909 298.9975 298.8208 298.1518 296.8045 294.9684 292.9868 288.5494 289.8218 292.4989 293.7944 295.2792 296.3596 296.2517 294.5472 292.5095 287.5236 283.6519 280.5899 283.0017 285.8727 288.0159 290.3743 292.2457 293.8594 294.8123 296.2186 298.2052 299.8709 301.3321 303.0598 304.3517 305.4754 305.8685 303.4725 301.4338 298.8773 296.762 295.4151 294.243 292.9517 291.8609 290.9671 285.5076 282.5613 281.7838 280.8423 277.2578 278.5462 281.5776 282.5242 282.5894 283.1997 285.2948 286.7529 287.847 288.3379 287.2262 285.8445 284.4505 283.0708 281.3316 280.4443 281.5009 282.4793 282.6441 282.9787 283.2866 283.1818 282.9891 283.7126 283.2802 283.0824 282.7307 281.8664 280.5828 278.6487 277.2047 275.6271 273.9829 270.8951 268.8979 266.4607 264.1399 261.9341 258.8411 255.0137 259.3567 264.7197 268.2774 268.3705 266.9685 267.7554 269.7946 272.3215 274.4219 275.8549 276.4071 276.8143 275.5763 274.0094 271.7572 269.2639 266.1884 263.3387 260.636 258.659 255.4299 249.5112 253.5216 254.6406 254.5071 254.1378 255.1346 258.0045 261.3742 264.4817 267.7331 269.472 271.0089 272.4943 272.6548 271.6669 271.4145 271.4697 270.7624 267.3965 265.7244 263.9684 261.6855 260.166 258.1042 255.9325 254.2971 254.0264 251.2527 248.0553 245.2107 243.8686 245.2164 251.4894 256.4789 257.103 258.3883 260.1901 256.2611 249.1678 246.1932 247.331 250.823 252.7414 255.7322 257.9403 259.6429 262.5547 263.3745 264.6584 265.9304 267.1405 268.4382 269.6097 270.5241 270.5483 269.033 266.8396 264.3509 264.2561 266.6194 268.9557 270.6519 271.383 271.9897 272.3798 269.8378 264.2919 252.159 263.9491 269.1963 270.1289 271.3907 271.8785 270.8137 270.0987 268.7859 266.5655 265.1359 261.0668 260.0482 263.7732 263.9343 255.1599 246.0552 250.9852 255.6414 257.4583 258.9795 260.6977 262.0025 263.3468 268.7437 264.7244 262.0664 255.643 248.0291 249.884 253.2316 254.8242 249.6832 250.3937 261.6977 266.3529 268.4756 270.3121 270.7526 270.7516 270.883 270.9729 267.0629 264.9231 265.1373 265.4505 266.1017 266.2245 266.582 266.7024 266.2249 265.6979 267.4182 269.2108 269.7708 268.6286 268.3962 266.6258 263.5182 261.4879 257.6174 250.496 243.2139 245.9069 248.7527 250.0355 253.7625 256.2916 258.3412 259.2144 255.5443 253.8415 252.6404 252.0378 252.3854 252.3754 251.9352 250.7908 251.562 254.6407 252.8376 245.9609 237.1823 231.2988 230.4478 230.5075 230.4795 230.5027 230.6778 231.0784 230.8222 230.105 230.8304 230.3196 230.9634 233.1072 233.2223 234.6655 239.073 240.3074 241.6363 242.439 243.0629 243.2916 243.1514 242.8682 242.1258 240.9179 240.7453 239.1282 237.3084 236.8756 236.864 236.5296 236.2314 236.1815 236.4778 231.4101 229.3511 231.403 231.179 231.195 231.1446 231.0207 231.175 231.0004 231.0494 231.073 231.3317 231.4152 231.146 230.9783 230.6985 230.7447 230.9909 231.2021 230.5725 230.8347 230.6936 230.5592 230.9176 230.3538 230.6476 230.6528 230.6414 230.2877 230.7923 230.4728 230.5054 230.6466 230.9655 231.6303 233.0844 238.7304 241.3324 243.2995 244.8321 247.05 247.9426 248.2612 249.2168 248.6546 245.8352 244.1089 239.9977 235.8793 234.4715 232.4282 231.2554 230.0894 229.8414 229.7928 229.8086 229.8821 229.8818 229.9744 230.29 230.1249 230.1278 230.2347 230.652 230.4708 230.5739 231.5172 233.0523 236.1899 238.3843 241.304 243.0902 244.4678 246.5773 248.3892 250.962 253.3808 253.5134 253.563 253.494 253.517 253.5943 253.532 253.9209 252.8359 251.4978 248.9729 247.6301 245.1384 245.9408 246.6194 -9999 -9999 +298.5923 300.6075 302.1016 303.1005 304.371 305.932 303.823 301.4587 300.0106 298.8877 297.2421 295.3086 292.9741 290.8092 287.6356 281.5272 280.0372 278.287 276.8486 277.8906 278.4779 279.528 279.9642 280.8424 281.5702 282.8636 282.4958 281.2176 280.0808 279.3406 278.9922 277.8499 275.4119 260.5415 260.6263 259.3355 260.4709 260.3982 260.757 261.1715 262.2309 263.2678 265.1824 267.7645 268.2985 267.6104 267.1119 268.5384 269.6237 271.1662 271.083 273.4905 274.9714 278.5605 281.6834 284.8173 287.4363 288.2067 288.9993 288.8868 289.0967 290.0444 291.2834 293.071 295.9487 297.4885 298.8364 300.3845 301.6087 301.4816 299.9626 298.643 298.0717 296.0702 294.436 293.1747 291.0423 289.1591 288.8673 286.1123 287.7978 289.7103 290.888 292.3184 294.882 297.3748 298.8071 300.1514 303.6691 304.5806 304.7801 304.6109 304.5515 304.9058 305.5421 305.8683 305.9799 305.9837 306.5255 307.3806 308.0106 308.2828 308.0519 307.9493 308.0878 308.2028 307.1455 307.0677 307.1647 307.0243 306.2319 304.2952 303.3723 302.1962 301.0721 300.2401 300.1851 299.7361 299.1997 299.0127 298.346 296.9341 295.6929 294.3261 291.8418 289.3401 290.7436 293.0078 294.3241 295.8293 297.2382 296.6907 295.1831 293.2534 288.626 285.4007 281.8911 282.2935 284.9094 289.1633 290.3743 292.2457 293.8594 294.8123 296.2186 298.2052 299.8709 301.3321 303.0598 304.3517 305.4754 305.8685 303.4725 301.4338 298.8773 296.762 295.4151 294.243 292.9517 291.8609 290.9671 285.5076 282.5613 281.7838 280.8423 277.2578 278.5462 281.5776 282.5242 284.0321 285.1554 286.7198 287.4247 288.0624 288.8178 288.0129 286.6532 285.5777 283.6467 282.3024 282.5739 283.1526 284.3906 285.1066 285.1168 285.0543 284.7377 284.2687 284.521 284.0664 283.3996 282.5126 281.3773 279.9305 278.3875 276.7411 274.9385 272.5959 269.3661 267.7504 265.8914 264.3749 262.2619 259.3651 255.7585 260.1667 264.1482 267.9503 269.7626 268.7 268.2956 269.8549 272.625 274.635 275.9911 276.9886 277.5374 275.1886 273.4843 271.4563 268.5246 266.1157 263.2114 260.8099 257.8149 254.172 250.7148 253.8842 255.7542 257.2941 256.4146 256.278 258.8604 261.3766 264.1384 268.1518 269.6815 270.81 272.1291 272.3572 272.282 272.6464 272.2727 271.215 267.1483 264.8434 262.6826 260.4931 258.5898 256.6691 254.9646 253.6639 253.5086 249.6151 246.2575 244.641 244.7202 249.6138 254.684 258.8691 260.7613 261.3363 264.4918 262.727 257.8977 251.4384 246.785 248.5749 250.262 253.3391 255.9925 258.8289 262.8437 264.0042 265.3953 266.7003 268.2435 269.5103 271.1516 272.5725 272.5999 271.5226 270.0078 267.9495 267.1078 266.9506 269.8239 271.2285 272.7617 273.0673 273.899 271.1779 261.0811 259.2024 269.6657 270.8269 271.6237 272.9334 273.3322 272.2936 271.3843 270.1399 267.632 265.9679 263.7712 263.7782 264.7437 263.539 250.7512 249.0643 256.9677 258.9808 261.3929 262.5016 264.9198 266.0859 267.4911 271.4612 268.2444 265.318 261.0586 255.1918 251.3849 254.5324 255.5746 254.4007 249.518 260.5534 264.3395 266.6381 268.9286 270.4872 271.2837 271.3708 270.9519 268.5403 265.4765 264.577 264.2126 264.1774 264.4309 264.4519 264.3156 263.9711 264.2998 266.6209 268.4854 269.0895 268.9686 268.0728 267.0705 265.0703 262.8219 259.3031 244.0161 248.6785 251.371 253.2612 253.4032 254.7791 257.672 259.6472 260.5688 257.3043 255.7184 253.9314 253.8246 253.6376 254.2033 253.6559 252.5073 252.377 254.9249 253.5844 247.5254 240.9178 232.7361 230.5332 230.4488 230.4607 230.9686 230.5161 230.3695 230.875 230.2594 230.9274 230.6087 230.3788 230.1269 229.967 232.3491 236.0497 238.4 239.5607 240.8242 241.9525 242.625 242.5747 242.3029 241.8876 240.5494 240.3831 239.4175 237.4409 236.5753 236.4173 236.2746 236.4361 236.4576 237.0749 235.0915 228.5748 231.1934 231.0318 231.0683 230.9691 230.9405 230.8879 230.9765 231.0941 231.1451 231.9194 231.2131 231.2295 231.0171 230.6796 230.5918 230.965 230.8563 230.7108 230.7826 230.1982 230.7865 230.4675 230.4771 230.7107 230.215 230.5395 230.8758 230.7045 230.3747 230.271 230.7392 230.7858 231.4975 232.8802 238.759 241.2227 242.8659 244.5226 246.1926 247.2897 247.6529 249.0239 247.6569 244.7474 241.2145 237.179 233.8511 232.2808 231.3167 230.6529 229.9661 229.8149 229.7695 229.7043 229.876 230.0582 230.4829 230.3037 230.3966 230.4961 230.4333 228.9112 230.4858 230.6422 231.2232 234.0613 237.5829 237.9623 240.0719 241.8977 244.0937 248.1171 250.4704 251.3984 253.1926 253.3847 253.3905 253.3179 253.3334 253.4764 253.6882 253.9268 253.3469 252.0696 249.9148 247.2748 244.7107 244.9386 245.5155 -9999 -9999 +300.1177 301.9199 303.9736 304.6372 305.5536 305.6916 302.9076 300.4223 298.8407 297.4664 296.1048 294.6872 292.7172 290.3014 287.0482 279.7269 279.0604 280.3119 281.8301 282.6203 283.3062 283.7946 284.0954 284.2563 284.4422 284.8864 283.2745 281.6236 280.4413 279.5078 279.3152 278.0861 274.9903 260.4263 260.439 259.8717 260.2563 260.7336 260.907 261.0079 263.4433 266.1382 269.4137 271.5891 273.7578 274.705 274.4554 274.2645 274.006 272.772 273.5962 277.1761 279.1493 283.2804 285.5883 286.6388 289.1253 291.0834 291.5185 291.6853 292.3028 293.1949 293.0532 293.608 295.9361 298.8523 299.9195 301.2775 301.8713 301.7602 300.4111 299.4916 298.1512 297.4012 296.0982 294.4003 291.8271 291.2953 291.1381 286.909 285.3093 286.7819 288.7966 292.4897 295.1405 296.0959 297.0861 298.503 302.6499 303.2311 303.3928 303.1524 302.9118 303.7014 304.6578 305.0051 305.4971 305.8383 306.044 306.94 307.3662 307.6688 307.9976 308.1385 308.2117 308.4545 307.8845 307.6703 307.6497 307.4474 306.4294 304.2952 303.3723 302.1962 301.0721 300.2401 300.1851 299.7361 299.1997 299.0127 298.346 296.9341 295.6929 294.3261 291.8418 289.3401 290.7436 293.0078 294.3241 295.8293 297.2382 296.6907 295.1831 293.2534 288.626 285.4007 281.8911 282.2935 284.9094 289.1633 290.7246 291.8156 291.592 295.8555 297.3546 298.8627 300.3801 301.7111 303.3154 304.6183 305.4935 305.8419 303.3781 301.6934 299.8542 298.0757 296.9751 295.0677 294.1891 293.1336 291.2975 284.9388 281.5979 281.0122 279.9367 278.6858 280.4125 283.209 284.9077 285.6862 286.4677 288.1603 288.6931 289.2997 289.6467 288.8755 287.8344 286.0612 284.5322 283.1982 284.8282 285.1103 285.3159 286.135 286.0029 285.785 285.1545 284.4649 283.7476 282.5888 282.1051 280.969 280.4502 279.2285 277.7698 276.4351 275.278 273.1521 270.7455 268.4753 266.0098 263.3148 260.9299 258.5528 255.8622 261.0823 264.815 268.2617 270.3351 270.4325 268.9097 270.1601 272.2161 274.2223 275.7021 277.1515 277.4212 274.1386 272.3493 271.067 268.5869 266.4087 264.0505 261.6792 258.0253 252.6992 253.7744 254.2413 256.0464 258.8653 259.4605 259.3135 259.5805 261.3781 264.3102 268.363 269.8677 271.1668 272.3224 272.8822 273.2668 273.74 273.0823 271.3361 266.7255 264.3387 262.0821 259.6316 258.1788 256.9878 255.4798 253.4714 251.6079 248.605 245.8826 245.2716 246.9991 252.7253 257.6576 260.9155 263.0501 264.0166 266.0427 265.9114 262.8071 258.5039 255.4131 249.9167 247.9062 249.188 251.755 256.3198 262.9373 264.833 266.3467 267.9083 269.1052 270.5839 271.2612 272.0645 273.8897 273.5612 272.5603 270.7104 270.1 269.1385 270.0424 271.3625 272.7538 273.7579 274.2055 271.6474 261.7366 258.3383 269.0268 272.2573 273.2306 274.2405 274.7307 273.2451 271.5462 269.9872 267.9005 265.4189 263.6436 265.4976 265.2396 262.0005 247.8974 253.552 262.1294 263.2813 264.5279 265.7894 269.6651 270.1085 270.9589 271.3822 270.0745 269.4276 267.9315 265.4502 261.5049 258.7104 256.9296 257.0156 253.2163 259.8082 263.0125 265.7657 267.9504 269.82 271.0797 270.9886 269.2067 268.3517 265.3428 263.822 262.9198 262.3065 262.1334 262.0697 262.2672 262.4861 262.915 265.5057 266.886 267.7084 267.477 267.4381 267.2699 265.8217 264.3875 262.3525 255.5439 256.1909 255.2241 257.1409 258.0088 259.3324 260.4236 261.5066 261.8539 259.2752 256.8582 255.3918 254.9639 254.7463 254.6064 254.4946 253.6815 252.7362 254.514 251.8667 246.4308 240.5724 234.2683 230.9599 230.5355 230.8255 230.9469 230.5366 230.1734 230.1717 230.532 229.0874 230.8817 230.6159 230.3199 229.9555 229.8038 234.2871 236.6375 238.0485 239.3221 241.1637 242.3793 242.5327 242.5116 242.1682 240.5818 240.0345 239.7055 238.3091 236.5121 236.2034 236.2662 236.7171 237.0307 238.0351 239.1105 228.3458 230.3628 231.108 231.0771 230.9723 230.8636 230.9104 231.1139 231.0226 231.6876 230.9911 231.1062 231.1918 230.8895 230.6817 230.7398 230.7317 230.6179 231.1325 230.3738 230.6192 230.5191 230.1128 230.7031 230.3608 230.3279 230.6468 230.9166 230.6039 230.2264 230.8137 230.4514 231.0072 231.7525 233.3108 238.5155 240.7289 241.8742 243.3669 244.9657 246.0266 247.0404 248.6714 246.6597 242.9299 240.1199 235.5599 232.1094 231.2695 231.033 230.3371 229.8211 229.5775 229.6471 229.7934 229.9562 230.0582 230.4829 230.3037 230.3966 230.4961 230.4333 228.9112 230.4858 230.6422 231.2232 234.0613 237.5829 237.9623 240.0719 241.8977 244.0937 248.1171 250.4704 251.3984 253.1926 253.3847 253.3905 253.3179 253.3334 253.4764 253.6882 253.9268 253.3469 252.0696 249.9148 247.2748 244.7107 244.9386 245.5155 -9999 -9999 +301.6169 302.3122 303.9195 305.2768 306.39 304.0667 301.694 299.3285 297.6741 295.807 294.2945 293.5934 291.752 288.8591 281.8433 280.7075 281.2987 284.6574 285.8995 284.8278 285.7372 287.1002 287.5994 287.2704 286.8295 285.7923 283.4663 281.4696 279.5806 278.0033 277.0151 276.9293 275.2065 260.5315 260.1973 259.8824 259.992 260.3065 260.3511 260.9201 263.1447 266.4687 270.7886 273.1225 275.713 278.2101 279.3383 278.819 278.1212 277.6495 277.2475 281.2266 283.2398 285.9562 288.1959 289.2503 290.0881 291.1615 291.3669 291.8492 296.1055 299.6892 299.724 299.0008 299.5676 300.4857 300.9762 301.5872 302.203 302.2473 300.5319 299.6585 298.2361 297.2262 295.3631 294.2748 293.8248 293.1602 292.1089 288.4448 285.6787 286.7888 289.2446 292.4897 295.1405 296.0959 297.0861 298.503 302.6499 303.2311 303.3928 303.1524 302.9118 303.7014 304.6578 305.0051 305.4971 305.8383 306.044 306.94 307.3662 307.6688 307.9976 308.1385 308.2117 308.4545 307.8845 307.6703 307.6497 307.4474 306.4294 305.0549 303.7093 302.8071 301.7512 300.7486 300.3175 299.777 298.773 297.639 296.6976 295.013 293.6407 292.2096 290.5583 291.1304 292.487 293.604 294.8716 296.0381 296.9081 296.6128 295.2567 293.4425 288.7723 284.9925 282.5161 285.7521 282.4223 286.4938 289.2556 288.65 290.4412 295.818 297.8729 299.5685 300.9254 302.8105 304.1727 305.373 305.9365 305.8981 303.4758 302.3102 300.329 298.651 297.2686 296.0813 295.1017 293.7657 292.7484 288.4943 285.9795 284.4512 281.1245 280.2822 282.6545 284.7561 286.506 287.5452 287.8149 289.1524 290.0744 290.4874 290.7299 289.1842 287.8595 286.2983 285.0466 284.9883 286.3015 286.4914 286.2746 286.5832 286.2592 285.6033 284.7002 283.5554 281.9554 280.5996 280.1093 278.8035 278.318 277.588 276.4634 275.7606 275.2856 274.6659 272.0711 268.862 265.6912 262.5036 259.9766 258.2785 257.5399 260.5622 264.1205 269.1802 270.9759 271.6985 270.4744 270.9678 272.8303 274.6073 275.9629 277.2202 275.8799 274.1628 272.0242 269.9461 267.933 266.49 264.5157 261.4091 256.075 252.4528 254.0171 255.5847 258.1559 260.8007 262.9236 263.3158 263.0229 263.1935 265.1265 268.9544 270.8446 272.4026 273.2224 273.8281 274.1486 274.0886 273.3264 271.6097 266.1125 263.4948 260.79 258.1265 256.5025 254.8857 253.6788 251.4544 249.4477 246.0022 245.0974 246.9459 250.516 255.1676 259.4248 261.5831 262.9906 264.5876 267.5291 268.1342 266.6947 263.0976 260.3006 256.0495 250.9433 249.1646 249.9604 254.519 261.6772 263.681 265.4356 267.5623 269.7452 271.7738 272.903 274.5994 275.5132 275.4018 274.5692 272.7536 272.2902 271.7752 271.3127 270.0798 271.0613 272.6757 273.5803 272.2311 268.0251 256.7725 268.3559 273.0768 274.6846 275.5634 275.4176 273.0534 271.08 269.6118 268.5261 267.4638 267.0532 266.0187 263.7029 259.0282 254.0132 261.6974 265.4126 267.0985 268.0829 269.8443 269.9979 270.7984 271.3875 272.5348 270.1682 270.3514 268.958 267.6765 265.4862 263.3747 261.4272 259.8911 257.2678 259.0763 261.0693 262.4659 267.0191 268.7864 269.7462 268.7771 268.5885 267.4915 264.3476 262.8055 261.5142 260.3264 259.3943 259.8235 260.28 261.0568 261.3705 263.1406 265.3332 265.9765 266.3565 266.5547 266.5794 266.6745 266.3107 264.3544 261.2378 260.4395 258.6161 260.8489 261.8559 262.4529 262.6089 262.7169 262.5998 259.7818 257.4762 256.3234 254.749 253.1117 253.144 252.795 251.5377 250.5981 251.5212 248.7131 244.6376 239.1815 234.6133 232.6744 231.6351 230.4779 230.4793 230.6584 230.3864 230.2165 230.2544 230.8282 230.4176 230.7858 230.4356 230.1432 229.9207 232.3591 235.5655 236.8679 238.073 239.8036 241.3198 241.9479 242.237 242.2894 241.0899 240.3908 239.7415 239.0041 237.1962 236.1286 236.031 236.7163 237.3703 238.2895 238.8227 237.7065 228.5488 228.3544 230.8631 230.797 230.7796 230.9905 230.9612 230.9724 230.8548 230.8538 231.1362 231.1084 230.8464 230.8287 230.4228 231.0419 230.6179 231.1325 230.3738 230.6192 230.5191 230.1128 230.7031 230.3608 230.3279 230.6468 230.9166 230.6039 230.2264 230.8137 230.4514 231.0072 231.7525 233.3108 238.5155 240.7289 241.8742 243.3669 244.9657 246.0266 247.0404 248.6714 246.6597 242.9299 240.1199 235.5599 232.1094 231.2695 231.033 230.3371 229.8211 229.5775 229.6471 229.7934 229.9562 229.9923 230.4079 230.2854 230.3928 230.5435 228.8627 230.8684 230.239 230.5792 231.4594 237.1777 241.2442 243.3709 243.6832 242.6369 242.5345 246.836 249.3701 250.6171 251.6957 252.8353 253.4226 253.3263 253.348 253.3766 253.6038 253.5346 252.6842 251.3173 248.9951 246.6528 244.1189 243.2172 243.241 -9999 -9999 +303.2988 304.2153 305.9037 306.673 306.5622 302.5921 300.2827 298.1032 296.5235 295.1103 293.0836 290.8219 290.1358 286.1501 285.8605 287.2495 287.6025 286.4121 288.3948 287.5404 288.714 289.44 289.9228 288.6415 288.1797 285.8557 283.2562 280.6956 277.7119 276.2476 275.3703 273.4587 271.9945 261.9518 260.249 259.8911 259.8448 260.4676 260.2792 260.8127 263.4831 266.5922 269.875 272.9247 275.9102 278.313 280.5952 281.0175 280.512 280.2821 278.9591 282.1648 285.4441 288.0021 289.8403 291.2747 290.0881 291.1615 291.3669 291.8492 296.1055 299.6892 299.724 299.0008 299.5676 300.4857 300.9762 301.5872 302.203 302.2473 300.5319 299.6585 298.2361 297.2262 295.3631 294.2748 293.8248 293.1602 292.1089 288.4448 285.6787 286.7888 289.2446 292.4851 294.8557 296.5381 298.1784 299.6589 301.1948 301.2924 301.7898 302.0293 302.0735 302.7527 303.6205 304.2586 304.5342 304.9197 305.3857 305.862 306.2823 306.7761 307.0773 307.2871 307.7043 308.1316 308.068 308.2887 308.2816 307.4736 306.3855 305.0941 303.9268 303.0829 302.4051 301.0906 300.2682 299.0269 297.2547 295.2995 294.7226 294.4704 293.1277 292.1495 291.2292 292.9142 293.555 294.9776 296.0433 296.8578 296.8324 295.9111 293.859 292.3098 285.2722 286.9128 286.7448 286.5981 288.1769 285.671 283.9393 286.725 289.3566 295.7875 297.8203 299.55 301.1579 303.2683 304.8543 306.414 306.417 306.3315 304.4976 302.6111 301.5388 299.8674 298.5463 296.6565 295.6974 294.315 293.2177 289.7564 287.177 283.7767 281.5273 282.6507 284.3811 286.6154 288.1588 289.1456 289.5359 290.3253 291.1036 291.2845 290.9964 289.8318 287.8442 287.5135 287.1403 286.9888 287.4226 287.0275 286.1422 285.6075 285.0189 283.8093 282.9956 282.1929 280.9709 279.2607 277.8836 276.5205 275.9223 275.7028 275.2355 274.7696 273.7284 273.9577 271.8112 268.8899 264.007 260.5895 258.5488 257.2097 257.054 259.7703 263.1024 269.2415 270.8692 271.6768 272.1253 272.2624 273.442 274.7234 275.7961 276.3296 275.687 273.8212 271.9559 269.7204 267.8838 265.7248 263.6678 260.3372 254.9622 252.7612 256.8737 259.0766 261.0822 263.451 264.9896 265.8628 266.2956 266.2142 266.5002 269.82 271.5886 273.2654 274.2622 274.3016 273.8582 273.3326 272.7063 270.0701 264.4904 261.9673 259.1879 256.4785 253.7175 252.1447 250.0235 248.3356 246.5324 246.1075 246.1905 249.0594 251.3251 253.6759 256.351 256.9754 259.2657 262.731 268.2853 269.6648 269.1531 266.4216 263.9788 260.4815 255.6032 253.4613 250.1127 254.3237 260.0302 262.216 264.7088 266.851 269.17 271.3502 274.1781 276.216 276.8182 276.9625 275.751 275.0381 274.7117 274.2717 273.1823 271.0863 270.7953 271.589 272.9933 270.6937 265.9583 262.9974 266.1018 272.5536 274.7618 275.8079 275.6802 272.7568 271.1769 269.9402 269.4055 268.4998 267.5481 265.2351 261.3936 255.7406 256.2524 262.0372 267.5634 269.7238 270.4413 271.5239 271.1284 271.3894 271.9802 273.0328 272.1469 271.1648 269.8311 268.3287 266.9466 265.2674 264.0298 261.2737 259.815 259.1271 260.9814 261.9791 265.0052 267.2092 267.8855 267.6305 266.8911 266.0795 262.878 260.9739 260.2094 258.0845 257.4677 257.8383 258.4861 258.7743 259.1673 261.3694 262.7427 264.4274 265.55 266.4313 266.7915 267.0313 267.2079 266.763 264.6224 263.3651 261.782 263.3149 265.1743 265.3352 264.5155 263.8619 263.3084 259.4946 257.9853 255.9287 253.9822 251.8193 250.5354 249.6763 248.4224 248.5501 247.96 245.0606 241.1957 236.4373 233.0598 231.6179 230.4338 230.6906 230.5093 232.1682 230.3276 230.6032 230.4339 230.3208 231.2771 230.8835 230.4455 230.21 229.9207 232.3591 235.5655 236.8679 238.073 239.8036 241.3198 241.9479 242.237 242.2894 241.0899 240.3908 239.7415 239.0041 237.1962 236.1286 236.031 236.7163 237.3703 238.2895 238.8227 237.7065 228.5488 228.3544 230.8631 230.797 230.7796 230.9905 230.9612 230.9724 230.8548 230.8538 231.1362 231.1084 230.8464 230.8287 230.4228 231.0419 230.9906 230.7548 230.6542 230.723 230.0941 230.4551 230.4005 229.985 230.7091 230.8471 230.6573 230.5213 230.6227 230.3724 230.7561 231.0961 232.1428 234.1115 239.2005 241.1765 242.3591 243.1698 244.4949 245.5153 246.7887 248.1404 246.5042 242.1834 237.8261 233.871 231.627 230.5626 230.2688 230.2244 229.9523 229.5427 229.5886 229.8037 229.7757 230.0705 229.9186 230.5256 230.6797 229.8804 230.702 230.1918 230.5751 231.1653 233.6454 237.9386 242.0732 245.2814 246.1504 246.2077 245.404 245.4437 246.9808 248.1906 249.3381 250.3587 250.5177 249.2628 249.293 251.1148 252.9487 252.3524 250.2986 249.1539 247.8368 245.393 242.2909 241.8887 242.3834 -9999 -9999 +304.7259 306.347 308.3448 308.7511 307.2475 303.045 301.2067 299.574 298.0222 295.7853 291.8988 288.109 287.2873 285.819 291.6054 293.4302 294.2061 292.8168 291.3045 290.628 291.3002 291.2591 290.9862 290.429 288.0465 285.5975 281.2348 278.1973 275.6007 276.2476 275.3703 273.4587 271.9945 261.9518 260.249 259.8911 259.8448 260.4676 260.2792 260.8127 263.4831 266.5922 269.875 272.9247 275.9102 278.313 280.5952 281.0175 280.512 280.2821 278.9591 282.1648 285.4441 288.0021 289.8403 291.2747 292.7532 294.3091 294.886 294.9774 299.6552 299.6964 299.5453 299.72 299.9457 300.6133 301.8942 302.145 302.2148 301.6153 300.5673 299.4575 298.3635 296.9037 295.8993 296.2837 295.2337 293.8837 292.0492 287.7202 286.0791 287.1399 289.9182 291.9294 293.6432 295.8031 297.7242 299.0082 300.1245 300.0298 300.1657 300.5319 301.4121 302.0305 302.6406 302.7978 303.3858 303.7259 304.0554 304.5692 305.3757 305.7804 305.8823 306.2819 306.8404 307.5275 308.0064 308.328 308.14 307.1831 306.485 305.0252 304.0414 303.1306 302.6338 301.1226 299.6246 298.166 297.5072 296.6029 295.9769 295.2127 294.5096 294.1261 292.8021 293.8938 294.5546 296.048 297.0315 297.3264 296.8401 294.6471 290.914 289.655 289.1778 291.0847 290.032 289.1112 290.5712 289.8974 288.8886 286.4843 288.5468 296.2789 297.8917 299.5118 301.0274 303.1683 304.8653 306.6261 307.1433 307.059 304.6361 302.9358 301.7273 300.3069 299.2491 297.4176 295.8066 294.4006 293.0018 287.808 284.7365 281.941 282.4959 284.4686 286.47 288.2881 289.3116 290.3783 291.274 291.5586 291.5187 291.5382 290.6784 289.4027 288.679 288.2037 287.7158 287.3088 287.1254 285.9621 284.9514 284.2976 283.72 282.6648 280.8431 279.3874 278.7356 277.5427 276.4016 274.8497 273.8411 273.9144 273.3337 272.934 272.2266 271.6307 269.7825 265.8436 261.6521 257.0783 260.013 260.8065 260.5324 258.1849 260.8102 267.7271 269.065 270.7319 271.4694 272.3712 272.8937 273.8123 274.8567 275.4068 274.7894 272.9785 270.9148 269.0626 267.509 265.1383 262.5774 259.0217 254.9332 254.3092 259.3163 261.1669 263.0242 264.5577 265.8889 267.1135 268.1821 268.7507 269.4991 270.8426 272.4853 273.8202 274.3975 273.3969 272.2231 271.4922 269.7762 268.0828 262.7975 260.052 257.5318 254.3364 250.2987 248.5705 246.9798 247.683 247.6868 247.1203 247.1118 246.9994 250.9677 254.7285 259.519 260.2717 262.0246 263.4567 268.932 270.9965 271.187 268.963 266.5585 263.2231 259.4014 256.4804 250.3736 257.4673 260.2185 261.7219 264.0406 266.5341 269.1817 271.8478 274.8621 277.58 277.6669 277.8768 277.2432 277.0002 276.6076 275.9385 274.5671 273.3976 273.3518 273.4111 273.7257 271.4072 268.4697 266.3219 264.6263 270.7071 273.8229 275.1211 275.3946 272.7876 271.6853 270.6808 270.319 269.107 267.1643 264.254 260.7105 255.5132 258.5364 259.1516 263.6275 265.7205 269.3845 272.1233 272.5802 272.7873 273.2851 273.2346 272.8943 272.1236 270.9691 269.8868 268.5405 266.9025 265.3762 263.356 262.27 259.3554 260.9852 261.726 263.865 265.5892 266.0391 265.504 264.6253 263.9342 261.0677 259.4244 257.9933 255.6156 255.0267 255.6483 256.2495 256.9725 257.8897 259.4948 261.324 263.3511 264.9503 266.0097 266.4442 266.6792 267.1578 267.6042 264.6224 263.3651 261.782 263.3149 265.1743 265.3352 264.5155 263.8619 263.3084 259.4946 257.9853 255.9287 253.9822 251.8193 250.5354 249.6763 248.4224 248.5501 246.9828 245.0606 241.1957 236.4373 233.0598 231.6179 230.4338 230.6906 230.5093 232.1682 230.3276 230.6032 230.4339 230.3208 231.2771 230.8835 230.4455 230.21 229.9694 230.8454 233.9797 235.7283 237.2739 238.6481 239.917 241.0098 241.7176 241.787 240.9293 240.4996 239.8578 239.4501 238.2466 236.5206 236.209 236.6539 237.2038 238.4871 238.309 238.489 238.7141 234.845 229.4643 228.5295 230.9712 230.8664 230.7992 231.0573 230.917 230.8137 230.7785 231.0431 230.8892 230.6941 230.7586 230.4437 230.6613 230.4071 230.8902 230.3143 230.4283 230.5367 229.9664 230.4823 230.2594 230.5167 230.5303 230.3871 230.4436 230.5324 230.7366 231.2998 232.9657 235.3027 239.2597 241.42 243.3331 244.2533 245.6748 245.8048 247.1375 248.0583 246.8338 242.3829 236.2024 233.168 231.7266 230.5548 230.2293 230.285 230.1469 229.9539 229.5145 229.6879 230.0963 230.0735 229.7914 230.3971 230.7165 228.9355 230.6278 230.8193 230.9216 232.8664 236.6552 240.3914 243.7812 246.0518 246.9426 247.0961 247.1368 247.012 247.2862 247.7006 248.0512 247.7665 247.1307 246.7151 247.1827 248.4412 252.0525 251.4327 249.1871 246.759 245.7373 243.7684 241.44 241.5231 241.9722 -9999 -9999 +305.794 307.7368 310.0305 308.7511 307.2475 303.045 301.2067 299.574 298.0222 295.7853 291.8988 288.109 287.2873 285.819 291.6054 293.4302 294.2061 292.8168 291.3045 290.628 291.3002 291.2591 290.9862 290.429 288.0465 285.5975 281.2348 278.1973 275.6007 273.6524 272.3598 270.3434 266.9332 261.0005 260.4766 258.8968 260.3379 260.4063 260.4171 260.9204 263.2691 265.9054 270.0553 273.0872 275.9072 278.0579 280.6909 282.0449 282.4508 282.2646 280.8401 283.0916 285.9373 288.8734 290.5413 292.1888 294.2634 294.6234 295.0254 295.0929 299.8272 299.7385 299.7316 299.7562 299.8998 301.1516 301.6674 301.6626 301.9399 302.4207 300.5694 299.743 299.0684 297.0737 296.7547 297.0569 296.4529 295.4321 291.116 290.1688 288.3951 286.8694 288.9099 291.3882 293.4892 295.4429 297.1031 298.3762 299.1474 299.046 299.219 299.7971 300.5808 301.0582 302.087 302.0084 302.4586 303.0827 303.7445 304.1055 304.267 305.0958 305.2432 305.7424 306.4197 306.9523 307.4174 307.505 307.2422 306.6286 305.8925 304.8868 304.1339 303.3916 302.8463 301.3271 299.6853 299.0056 298.4682 297.9464 297.2196 296.0023 295.9034 295.2554 294.6601 294.9799 295.6564 296.7682 297.794 297.9099 297.1972 294.801 294.0187 293.2342 293.0925 293.3821 292.4568 292.1301 292.3883 292.0985 291.416 289.25 289.1772 296.2226 297.7885 299.098 300.8839 302.891 304.7725 306.7664 307.0781 306.9468 304.515 303.2922 301.523 300.1482 298.7826 297.4633 295.5955 294.5126 292.8204 285.2113 282.0709 282.9163 285.4314 287.0102 287.5299 289.4814 290.685 291.3645 292.0067 292.0348 292.0566 291.5827 290.7683 289.4591 288.8448 288.2278 287.593 286.9442 285.543 284.4396 283.3363 282.9329 281.9279 281.0474 279.5813 277.8295 276.976 275.3235 274.1563 273.3536 271.8605 271.5193 270.8845 270.8219 270.4716 269.2453 267.2164 262.3442 259.3931 260.6051 261.5226 261.9806 262.6686 260.4849 259.3496 264.7007 266.4106 267.9873 269.5214 270.9432 272.0949 273.0688 273.9593 274.6571 273.8343 272.1981 270.8087 268.9839 267.3518 265.5811 262.5635 257.9061 253.6567 254.3761 260.1079 261.6946 263.1547 264.6433 265.9726 267.5187 269.3025 270.3746 271.1589 271.945 273.2948 274.0154 272.8566 271.3632 269.9503 268.9769 268.0247 265.6474 260.6413 257.3667 253.4374 250.1662 248.2692 250.0316 250.9531 250.6472 250.3391 248.7872 247.6617 246.7647 249.1691 254.0742 259.8945 260.3228 262.9686 265.0487 269.6479 272.1122 272.767 270.9285 268.2228 265.8932 262.4803 260.4535 252.7216 256.3194 260.2418 262.5628 264.5697 266.9052 269.752 272.4897 275.4008 277.6553 278.3593 279.1953 278.7159 278.509 278.0583 276.7892 275.9354 275.4878 275.1166 275.4464 275.2864 273.8877 270.9809 270.1478 270.4727 268.7057 271.7727 274.1629 275.3004 273.3021 272.3381 271.7911 270.7886 269.5045 266.5457 262.0474 257.982 255.2486 258.6713 261.569 264.2832 266.9128 269.1988 271.0123 272.6595 273.6831 274.6942 273.463 272.9709 272.6255 270.9691 269.8868 268.5405 266.9025 265.3762 263.356 262.27 259.3554 260.9852 261.726 263.865 265.5892 266.0391 265.504 264.6253 263.9342 261.0677 259.4244 257.9933 255.6156 255.0267 255.6483 256.2495 256.9725 257.8897 259.4948 261.324 263.3511 264.9503 266.0097 266.4442 266.6792 267.1578 267.6042 266.2744 265.8389 264.9016 266.2332 267.508 267.2721 266.3284 264.7712 263.8447 260.0219 257.3668 254.5502 251.4291 247.9832 246.8229 245.3878 244.9487 244.1964 241.9862 240.1632 237.3781 234.2565 232.3739 230.6089 230.5484 231.0915 232.2224 237.4784 232.5428 230.4674 230.4799 230.243 230.0536 229.5118 230.7371 230.2322 230.0124 229.3858 231.7839 233.926 236.072 237.6364 238.8879 240.0027 240.7825 241.094 240.5489 240.1501 239.8169 239.3596 238.6137 237.4202 236.8106 236.6928 237.0702 238.8309 238.6779 237.9538 237.5474 234.3367 231.3253 230.4596 228.3627 231.0432 232.0651 230.9962 230.7202 230.718 230.5744 230.752 230.8974 230.6179 230.5945 230.3441 230.1071 230.6532 230.487 230.2065 230.6199 230.2347 230.2632 230.3243 230.0313 230.4442 230.2254 230.6199 230.3752 230.7623 230.9393 231.8121 233.2012 235.5132 241.1017 242.8587 244.239 245.8115 246.0965 247.1158 247.792 248.1682 247.2823 242.5661 236.2368 232.9473 232.3578 230.5141 230.0077 230.033 230.2366 230.33 229.5524 229.6219 229.8575 229.9302 229.7503 229.9805 229.9078 230.231 230.1092 230.8004 231.3544 233.7189 238.6805 242.3157 245.8338 247.2488 248.2059 248.3441 248.0854 247.915 248.4476 248.9521 248.8666 248.1289 246.6868 245.6795 246.8253 249.0577 250.8678 250.6425 249.0254 246.9771 244.4575 242.3593 241.1722 239.1176 241.4669 -9999 -9999 +305.794 307.7368 310.0305 310.8571 308.8367 305.2283 303.5068 301.1327 298.9943 296.3672 291.6754 289.8662 289.6126 290.5913 294.6827 296.2263 297.6226 295.7408 293.1155 292.2967 293.3754 292.6955 291.5946 288.0154 286.0076 283.8745 279.3633 273.6636 271.5237 270.0739 268.9455 267.858 270.4197 265.7867 260.6104 258.0886 260.3517 260.2003 260.4834 261.1587 262.5167 264.8632 269.9592 272.6649 275.2788 277.8223 280.3696 282.171 282.8362 283.1433 283.1216 283.7692 285.8548 288.2869 289.951 291.3136 294.2209 294.6627 294.9651 295.4134 299.6372 299.6529 299.7522 299.7348 299.7705 301.2679 301.3382 301.303 301.6008 302.6428 300.7501 299.4999 299.3803 298.218 297.9729 297.6241 297.5621 296.886 293.9793 293.1918 290.5307 287.8926 287.7853 290.0058 292.3422 294.5141 296.1743 296.8693 296.8942 296.5114 296.5778 298.0307 299.0617 299.8356 300.1682 300.7084 300.8195 300.8739 301.6994 303.3394 304.1732 304.8723 305.3577 305.7282 306.0562 306.4885 306.6915 306.4812 305.9773 305.6545 305.2389 304.4551 303.8973 303.7018 303.1692 301.6792 301.1182 300.3987 299.4191 298.3558 297.616 296.8665 296.5992 296.7422 296.5411 296.1908 296.4618 297.4317 298.1202 297.9585 297.0663 295.8694 296.5934 296.1343 295.4787 295.2072 294.6007 294.4136 294.1596 293.8232 293.2069 290.3359 289.1913 295.9589 297.724 299.4248 301.2379 303.1892 304.6105 306.0784 306.5989 306.3934 304.0442 302.524 300.8068 299.0918 297.8565 296.6697 295.2288 293.5647 292.2652 285.0028 283.1611 284.7334 287.1407 288.5735 289.2007 290.2751 291.713 292.5039 292.8423 292.6618 292.0886 291.2694 289.8851 289.3196 288.0277 286.9449 286.1286 285.2741 283.7063 282.4465 281.2999 280.0203 279.4471 279.2096 278.1071 276.6328 274.9499 273.1601 271.395 270.2365 269.4415 269.0711 268.4466 267.6997 267.2367 266.893 264.1619 261.7758 259.985 262.9707 262.9611 264.0907 264.001 262.7187 261.2729 263.7672 264.9672 266.0208 267.644 269.1142 270.8256 272.0927 273.1566 273.9333 273.1355 271.5942 269.8591 268.1613 266.198 265.0733 261.1107 256.039 255.2998 255.7392 259.8895 261.7306 263.3901 264.4322 265.8291 267.5576 268.8821 269.688 270.5398 272.2048 273.1437 272.4456 270.9501 269.0869 267.8099 266.4555 264.5197 261.8203 256.5043 253.2015 249.3937 248.2851 251.5218 253.5804 254.1343 253.4383 253.3163 252.6845 250.5915 247.8944 250.3063 254.0751 257.6405 260.5499 261.3818 264.399 269.7206 272.8494 273.8549 272.3876 270.9328 269.339 267.2386 263.9455 259.067 253.199 258.4798 262.5614 265.4633 267.861 270.0003 272.315 274.7692 276.8742 278.6403 280.2788 280.5724 280.2255 279.3077 278.8674 275.9354 275.4878 275.1166 275.4464 275.2864 273.8877 270.9809 270.1478 270.4727 268.7057 271.7727 274.1629 275.3004 273.3021 272.3381 271.7911 270.7886 269.5045 266.5457 262.0474 257.982 255.2486 258.6713 261.569 264.2832 266.9128 269.1988 271.0123 272.6595 273.6831 274.6942 273.463 272.9709 272.6255 272.1254 271.2784 269.7061 267.6989 265.951 264.5786 263.6955 261.6204 261.2406 261.862 263.2432 264.2783 264.5476 263.4639 262.394 261.4729 259.3322 258.4956 255.2696 252.7185 252.0217 252.5205 254.584 256.0765 256.3977 258.3793 259.982 261.5248 263.7435 264.5725 265.3875 265.4181 266.197 267.4066 267.4191 267.1615 267.116 267.8021 268.4222 267.8396 266.6244 265.7787 264.2398 259.6138 256.7527 253.6038 249.878 245.5511 243.3045 241.4223 239.9496 239.1907 235.9368 234.8665 233.3327 232.8504 231.7244 230.6227 230.7295 231.0755 237.4398 243.3088 243.9798 238.0974 235.9105 235.1301 233.2417 230.4044 229.7213 230.3189 230.0419 229.5929 230.0299 231.6821 234.4653 236.5143 237.9004 238.7486 239.2579 239.9752 240.1997 239.8099 239.7269 239.696 239.0973 238.2883 238.0934 237.8432 237.4853 238.5741 238.5682 237.0686 233.7669 231.7266 231.0306 231.2996 228.5339 229.2979 231.0222 230.8778 230.7813 230.5791 230.4415 230.6604 230.4132 230.7891 230.1339 230.7324 230.4537 230.538 230.0125 230.5233 230.4046 230.0555 230.4185 230.1248 230.3828 230.2178 230.7625 230.3713 230.8397 230.915 231.2556 232.5551 234.1376 236.2167 242.2208 243.9508 245.7475 246.7505 247.3958 247.6243 248.7368 248.0378 247.4456 242.0141 237.8136 233.3734 232.5846 230.8964 230.2455 229.842 229.8157 229.9 229.588 229.6736 229.9979 229.9928 229.8208 230.3383 228.7824 230.1046 230.1339 230.8241 232.0381 234.4701 239.2016 242.7768 245.1795 247.1319 247.9958 246.784 246.4944 247.2901 247.8666 247.9907 247.263 246.264 244.7827 244.2379 245.9152 249.2615 250.6895 249.2111 247.9793 246.2043 243.69 241.6164 240.7686 237.9178 240.2045 -9999 -9999 +307.3472 308.7548 310.873 312.2086 310.277 306.4193 304.236 302.3236 300.0077 297.0895 293.9233 293.4366 293.773 293.7957 298.1041 299.6563 300.125 298.3933 294.8343 293.7053 294.1646 292.2203 290.4955 286.5105 282.9131 277.62 276.9452 274.5598 271.854 271.5474 272.3294 273.8956 274.6458 266.8306 260.4231 260.7755 260.5615 260.161 260.3745 260.8619 262.4912 264.489 269.9592 273.0085 275.3158 277.6299 279.529 281.0002 281.3305 281.8042 282.8278 284.41 285.3694 286.7584 288.096 289.8311 294.3659 294.647 294.8273 295.3835 298.2249 299.2004 299.6785 299.3958 300.103 300.7547 301.0917 301.3143 301.7852 302.757 301.7512 299.91 299.6977 299.8853 299.545 298.9433 298.4061 298.1602 297.119 293.6055 291.0818 289.3678 288.5769 288.6445 289.8407 292.2469 293.3687 294.1584 293.0125 293.4177 294.155 295.1793 296.4897 297.1166 297.5732 298.2125 297.6367 299.2352 300.7233 302.4418 303.3255 304.8039 305.5386 305.9926 306.703 306.831 305.9086 305.5677 305.3129 304.5215 304.2139 304.2762 303.9269 303.4127 303.1361 301.9037 301.4007 300.6547 300.3446 299.8246 298.765 298.4107 298.2535 298.2983 297.8841 297.6695 297.1625 297.6725 298.3503 297.9478 297.5951 298.0715 298.4154 297.7728 297.0488 296.54 295.954 295.9174 295.7461 295.4275 294.5994 293.1146 290.3827 294.3232 296.402 299.3995 301.1335 302.6521 304.3949 305.1587 305.8618 305.5311 303.5597 302.2503 300.1227 298.2191 296.7038 295.3921 293.7509 292.1456 290.8842 285.0069 286.3624 287.0531 289.6545 290.7293 291.3558 291.1857 292.6152 293.471 293.5743 293.0154 291.0619 289.5185 288.6006 287.3575 286.2192 284.8525 283.7933 283.1498 280.5368 280.2885 278.1128 276.5897 275.5323 276.0096 275.3476 273.9288 272.6556 269.8307 268.8202 268.213 267.2008 266.8581 266.085 265.5285 264.6543 264.3623 262.149 260.3823 265.497 267.0069 264.5651 266.2301 266.3673 265.3979 264.3312 262.6365 265.0699 266.1017 266.5589 267.701 269.1773 270.804 272.1942 273.0894 272.4468 270.8638 268.9209 266.9149 265.1748 262.5787 257.3756 255.8361 257.3976 256.1271 260.8138 262.2855 263.8193 264.7627 265.5505 266.9625 267.9189 269.4039 270.5865 272.9997 272.8665 270.8341 268.8545 267.1012 265.2875 263.8975 261.2877 257.7077 250.8077 250.4664 252.0815 254.0392 254.6587 256.0641 256.6566 256.0488 256.0599 255.2655 250.5915 247.8944 250.3063 254.0751 257.6405 260.5499 261.3818 264.399 269.7206 272.8494 273.8549 272.3876 270.9328 269.339 267.2386 263.9455 259.067 253.199 258.4798 262.5614 265.4633 267.861 270.0003 272.315 274.7692 276.8742 278.6403 280.2788 280.5724 280.2255 279.3077 278.8674 277.9985 277.2987 277.2847 277.4503 276.7759 275.4235 273.9001 273.503 273.1089 270.2954 271.2832 273.6567 274.3033 274.1725 274.0228 272.9131 272.0519 270.3945 267.7366 262.8719 257.1977 262.6829 258.7225 262.6914 264.6703 267.0207 269.5487 271.5518 273.6732 274.9697 275.2929 274.2471 273.717 273.4173 272.7315 271.112 268.633 266.9208 265.7044 264.9725 264.1836 262.827 262.1412 262.0927 263.4602 264.3548 263.186 261.8497 260.6404 259.5463 257.511 256.1648 254.0888 251.5153 250.7178 251.0827 253.4075 254.7704 253.9936 256.2221 258.0597 259.8074 261.1588 263.2079 263.7268 264.2752 265.4128 266.5707 267.6486 267.4753 267.2759 267.2585 266.9591 266.3302 265.7044 264.8717 263.7275 260.6801 257.8282 255.2075 252.048 248.6004 245.2933 239.9074 237.7917 236.7023 236.2837 234.798 234.1147 232.1443 230.9918 230.9804 230.8252 232.7537 239.202 245.5259 251.3911 249.5895 245.9046 243.5924 240.9693 237.16 232.0723 230.6259 230.0645 229.6042 229.4014 231.2815 233.7419 235.6968 237.2072 237.6752 237.8934 238.6711 239.7163 239.668 239.4565 239.3195 239.1014 238.4928 237.8252 237.671 237.9811 238.5032 238.1546 235.873 231.8652 231.1658 231.1548 231.2416 231.1005 228.3992 230.7914 230.6658 230.7123 230.5199 230.4272 230.2078 230.7394 230.1955 230.5235 230.3134 230.7741 230.1637 230.4537 230.5005 229.9144 230.4733 230.032 230.5645 230.3437 230.3936 230.3953 230.6776 230.7696 231.5759 233.2674 235.8891 238.3238 240.0914 243.2127 245.5771 246.7067 247.8105 248.4423 248.9811 249.4771 248.4041 248.212 242.8417 240.1087 234.8325 232.7372 231.5213 230.6177 229.9066 230.1302 229.8909 229.6267 229.8626 229.7818 229.8077 229.8543 230.2635 230.3307 229.8944 230.0398 230.7594 231.9613 234.4726 238.4035 241.3053 243.3616 245.3258 246.0679 243.0508 241.9869 240.8963 241.229 242.5052 244.3391 244.3838 243.5249 243.6466 245.4318 245.9185 248.0379 247.0954 244.1948 241.6694 241.5558 241.4269 237.7513 235.8192 234.7997 -9999 -9999 +307.6732 308.7038 310.8868 312.2148 310.1762 306.1309 303.9595 301.6881 299.4699 297.8506 297.4359 298.6262 298.1489 297.4939 301.7079 303.844 302.7296 299.5217 296.282 294.6838 294.0733 291.7952 289.1809 284.2618 281.2292 282.3088 279.6287 276.0254 274.8368 277.0042 277.1304 277.2039 277.044 267.0331 260.2393 260.5121 258.2296 260.204 259.9307 260.547 262.2502 263.8082 269.5501 272.357 274.1259 276.1395 277.8894 279.1187 278.8257 279.9414 281.1276 283.5218 284.2932 285.6418 287.7648 289.6319 292.7571 294.2435 294.5818 294.9076 295.1663 298.5186 298.6637 299.0237 299.7218 300.2184 300.7888 301.2748 302.0191 303.4728 302.8358 300.745 300.1917 300.3251 300.4407 300.2732 299.2426 298.7694 297.8694 291.9642 291.1525 292.1133 290.4429 289.6721 289.4179 290.0541 290.7867 291.3025 293.8862 295.2646 296.3537 295.9816 295.7023 295.3765 296.7922 296.6952 297.1174 298.8747 299.7311 300.4464 301.6713 304.2681 305.9966 306.5216 306.7282 306.5751 305.5228 305.1696 304.536 304.0819 304.2626 304.1324 303.7856 303.5099 303.2565 302.4945 302.022 301.5708 300.8624 300.3802 300.2699 300.1888 299.8695 299.262 299.0257 298.7801 298.0609 298.0799 298.7253 298.7782 298.6866 298.856 299.2948 299.0374 298.4369 297.8621 297.6806 297.1197 296.8019 296.4171 295.8692 294.8321 292.3018 296.9806 298.2797 298.7582 300.7532 302.0802 304.281 305.118 305.6833 305.4272 302.9012 301.7119 300.4189 298.861 297.4323 296.0309 294.6032 292.2762 289.7892 286.5648 289.5899 290.6874 291.7312 292.9687 293.3239 293.2418 293.4397 293.9703 293.5077 292.1897 288.6819 285.4694 284.0326 283.0717 281.6309 280.6895 279.7998 279.6521 276.6563 276.0874 273.2667 272.5735 271.5507 271.3624 270.7097 269.9545 269.2325 267.5611 267.0111 266.4103 266.0107 265.3279 264.8394 264.0537 264.725 264.7908 264.1735 264.3651 267.6461 269.1713 267.0093 267.8419 269.4109 268.0202 267.4259 262.9015 262.9293 265.299 267.3341 267.6486 268.6095 270.3555 271.8738 273.0015 271.9418 270.0067 267.0814 264.4315 261.5145 258.4775 257.3756 255.8361 257.3976 256.1271 260.8138 262.2855 263.8193 264.7627 265.5505 266.9625 267.9189 269.4039 270.5865 272.9997 272.8665 270.8341 268.8545 267.1012 265.2875 263.8975 261.2877 257.7077 250.8077 250.4664 252.0815 254.0392 254.6587 256.0641 256.6566 256.0488 256.0599 255.2655 253.5073 248.1377 250.5813 254.1063 255.964 261.0472 261.8009 265.4913 270.4956 272.7731 274.4404 273.9799 273.3846 271.7593 269.9376 265.6869 262.4208 253.7656 254.7223 262.2591 266.5377 269.2722 271.3597 273.5218 275.1994 276.9002 278.3667 280.7158 281.4841 281.5575 280.362 280.0907 279.6984 279.0202 278.8565 278.929 277.8701 276.603 276.0129 274.86 274.6143 272.9857 273.4723 273.3564 273.4174 273.6962 273.905 273.803 272.8981 271.1801 269.259 261.9534 265.9266 267.0318 265.7108 263.5128 265.841 266.8077 269.6114 271.6131 273.7833 275.5568 276.7098 275.2888 274.7344 274.1783 273.3146 272.3787 270.559 268.3165 265.2805 265.7514 264.6271 264.4744 264.3569 264.1212 263.3199 262.8785 262.2667 260.7593 259.4766 257.6067 255.068 252.6642 250.8456 249.5307 250.1177 250.2859 252.4545 252.8831 251.9655 253.6039 255.9029 257.1574 258.9954 260.3539 261.9896 263.2919 264.3584 265.6206 266.3604 266.3636 266.0532 266.003 266.0955 265.8377 265.4057 265.0387 264.3833 261.318 259.7245 256.8126 253.9232 252.5533 250.6576 248.1511 247.8477 246.9322 241.8649 240.1546 237.4657 233.0702 230.8089 230.7278 230.9246 232.8645 238.5094 244.1765 253.5465 255.8249 253.6719 250.9597 248.9062 244.8768 235.8922 229.2853 230.4868 229.7686 229.4781 229.3269 231.9821 233.4532 234.7029 235.4027 235.9309 237.1767 239.0209 239.5635 239.2976 238.78 238.3981 238.2834 238.6972 237.9697 237.1355 239.0133 238.1372 234.5003 231.0452 230.8626 231.1716 231.0664 231.2218 229.2609 230.4413 230.366 230.4569 230.5285 230.4395 230.3305 230.3032 230.1956 230.548 230.6615 230.3356 230.3191 230.612 230.0792 230.3589 230.1996 230.4017 230.2997 230.2495 230.3328 230.4112 230.8487 231.6491 234.4263 238.0549 241.4086 242.8918 243.6524 245.8683 247.3589 248.4897 249.5524 250.0908 250.2589 249.9372 249.0885 248.7448 244.3595 240.2228 235.3023 232.702 232.2623 230.8877 230.4192 230.2113 229.9873 229.9862 229.639 230.092 230.0457 230.074 228.4754 229.9681 229.8372 230.1639 230.9068 231.8204 233.5609 236.4844 239.1941 240.3983 241.1769 240.7163 237.8543 237.633 233.2798 233.511 233.885 235.4972 238.5125 242.7763 244.5117 245.471 244.8346 241.8837 242.5085 240.8514 240.0796 240.461 238.9397 236.1614 233.9032 233.7274 -9999 -9999 +307.3361 308.4055 310.0811 311.0972 309.695 305.2132 303.1433 301.7161 300.4268 301.3889 301.8188 301.8855 301.0266 299.2994 305.3328 305.6165 303.7544 300.3644 297.2754 294.767 292.3495 289.8199 287.3022 286.6102 286.4969 284.905 282.2038 280.4817 280.4906 280.4919 280.1994 279.8755 279.0806 271.019 264.5472 260.2876 258.3614 260.3412 259.8756 260.2235 261.3536 263.9378 269.3219 270.9718 272.4812 274.2335 275.6246 276.4858 277.2107 278.1402 279.5133 281.2998 282.239 282.6855 284.7533 286.5413 290.5186 293.9888 294.2659 294.4793 295.2925 297.8147 298.5175 299.6431 299.8914 300.2949 300.9319 302.3492 304.3736 304.3564 303.3275 302.0104 301.1545 301.5485 301.5292 301.0991 300.1271 299.2044 296.6867 295.3495 294.0024 294.1887 291.4301 291.3744 290.9829 290.578 291.7369 292.6706 295.0212 296.8023 298.332 297.8997 297.6056 297.0394 297.9009 298.7511 298.3734 301.0535 302.4014 302.6682 303.9858 305.4259 306.33 306.8376 306.816 306.7338 306.123 305.1482 304.0366 303.4455 303.5875 303.9895 304.1907 304.2327 303.6777 302.3602 302.1349 301.9944 301.5732 301.3494 300.9283 300.8266 300.75 300.3299 299.911 299.4008 298.8969 298.6594 299.1906 299.4883 299.4907 299.6895 299.9658 299.8961 299.2747 299.0579 298.8443 298.358 298.2414 298.2701 297.9227 297.2089 296.1726 298.7026 300.0916 301.2633 301.9903 302.4572 304.3501 305.0281 305.4475 304.9644 302.9227 301.4016 300.2604 298.8546 297.7039 295.799 293.6014 290.8705 288.6125 289.043 290.7697 292.1298 293.4245 294.3854 294.8747 294.8398 294.9661 294.8499 292.5394 291.2049 288.1826 284.2842 282.0903 280.5476 279.8805 280.0107 279.8406 279.3289 275.8921 275.0887 274.8368 273.1465 272.3566 271.7044 270.9019 270.1139 269.4149 267.7629 268.7347 266.4103 266.0107 265.3279 264.8394 264.0537 264.725 264.7908 264.1735 264.3651 267.6461 269.1713 267.0093 267.8419 269.4109 268.0202 267.4259 262.9015 262.9293 265.299 267.3341 267.6486 268.6095 270.3555 271.8738 273.0015 271.9418 270.0067 267.0814 264.4315 261.5145 258.4775 257.6538 259.5067 262.1667 257.116 258.5728 260.9021 264.3049 266.454 267.5084 268.1265 269.3373 270.9806 272.1755 273.9038 272.6146 269.9429 267.5585 265.5975 260.8952 258.3526 256.2519 253.672 252.7352 255.654 257.1804 257.7921 257.7761 258.8056 258.8912 259.0332 258.9126 257.499 255.7124 252.2582 250.7854 252.5901 256.3232 260.1664 262.0299 266.5168 271.1578 273.6423 275.0503 275.2748 275.2419 274.5249 272.1356 268.5685 266.4808 256.1987 254.3853 261.3925 266.4286 269.3716 271.5479 273.5099 275.4337 277.0351 278.5243 280.6509 281.1303 281.0594 281.4686 281.01 281.0647 280.6958 280.2703 280.0909 279.1752 277.881 276.8754 276.4633 275.3763 274.9498 274.2079 273.5735 272.9485 272.8972 273.2387 273.6828 273.2848 272.0378 269.602 269.4048 270.1656 269.0966 268.9805 268.7166 270.136 270.5985 270.8933 272.5577 274.6008 276.347 277.0313 276.9014 276.2261 275.0326 273.6478 271.6969 268.468 266.1327 267.0508 268.7955 267.8304 266.7527 265.0441 263.8186 263.8149 262.6106 261.5549 260.1742 258.4367 255.9441 252.6877 251.4029 250.5406 249.2632 248.4199 249.8754 251.2287 251.9361 251.0563 251.1159 252.1918 253.5907 256.6705 257.7506 259.5082 261.7624 263.4104 264.3613 264.9805 265.0028 264.8555 265.09 265.2295 265.106 264.6065 264.4599 264.2368 263.1568 261.638 258.9702 257.248 255.6883 254.3367 252.1203 251.7325 248.9708 243.0673 240.4673 236.0536 231.5533 231.0683 231.1062 230.7596 232.2968 237.4137 242.8034 253.5023 257.5406 259.3353 258.2383 256.2036 252.4754 244.0549 234.1759 229.2357 229.7425 229.61 229.0917 230.1991 230.8518 231.6845 232.6949 233.4218 234.7819 237.9933 239.0546 239.2612 238.6078 237.9648 237.9427 238.3479 238.6655 238.2503 237.2102 236.3639 231.8127 230.6847 230.5453 230.9646 230.9751 231.3867 231.1889 230.2389 230.329 230.3383 230.5155 230.2166 230.375 230.0018 230.5228 229.9507 230.3389 230.0012 230.5542 230.3287 230.2399 230.2441 229.6362 230.1893 230.1604 229.8709 229.974 230.7952 231.7279 234.7564 238.487 241.6455 244.8873 246.164 246.7537 249.5052 250.3101 250.9116 252.2869 252.9908 251.578 250.5231 249.7248 248.3944 243.7562 240.4542 234.7047 232.3715 231.8852 231.5407 230.0259 229.7866 229.8264 229.7981 229.6139 229.6177 229.5668 229.9888 228.8297 229.8486 230.0272 230.348 231.2415 231.7873 232.5452 232.9468 234.5363 235.9652 236.0181 234.3715 233.8744 232.2778 231.139 231.9139 232.7045 234.3659 237.4763 241.4253 243.882 244.5102 244.0832 239.8548 238.9057 238.2829 238.8291 238.7267 238.2097 233.848 233.3593 233.0877 -9999 -9999 +306.9803 308.2061 309.5286 309.6978 308.8173 305.5213 304.6065 303.4359 304.1835 304.1476 304.892 304.8717 303.3634 302.4961 306.8791 305.5989 302.7014 299.4234 296.8702 294.2653 292.7637 292.1918 291.71 290.8318 289.077 286.9322 285.2743 283.8183 282.9869 282.8789 281.8379 281.323 279.4806 273.4755 268.8023 260.0787 259.1202 260.1589 259.749 259.8943 261.075 265.8154 268.7033 269.3127 270.3274 271.479 272.5709 273.6499 273.4563 273.7484 274.697 277.3524 279.0417 280.8953 282.7775 285.6842 288.8676 291.7244 293.897 295.1598 297.7461 299.0962 299.783 299.92 300.0162 300.0779 300.6241 302.9198 304.2902 304.3453 303.7261 303.3931 302.474 302.4488 302.5489 301.7565 300.8399 299.9041 298.0236 297.4336 295.484 292.9247 292.3784 293.0644 293.5483 295.1978 295.69 295.838 298.0697 298.5908 299.7091 299.1394 298.0548 298.5214 299.5091 300.985 301.2063 301.9593 303.6302 304.5039 305.1661 305.7733 306.3985 306.5685 306.466 306.7783 306.3646 304.9055 303.46 302.0233 301.9755 303.0088 303.6402 303.922 303.7687 302.2036 301.8543 301.7222 301.2017 300.9973 300.7824 300.4633 300.1202 300.0701 299.9583 299.5888 299.313 298.9707 299.3432 299.3 299.1252 299.4572 299.9934 300.3899 300.4967 300.3291 300.1097 299.2221 299.0514 299.5193 299.6187 298.7731 298.6055 300.4129 302.3391 302.986 304.0585 304.2595 304.5759 304.9464 304.7894 304.2812 302.439 301.1595 299.7422 298.5382 296.8626 295.0394 292.344 290.4044 288.8351 289.6735 290.7697 292.1298 293.4245 294.3854 294.8747 294.8398 294.9661 294.8499 292.5394 291.2049 288.1826 284.2842 282.0903 280.5476 279.8805 280.0107 279.8406 279.3289 275.8921 275.0887 274.8368 273.1465 272.3566 271.7044 270.9019 270.1139 269.4149 267.7629 268.7347 269.221 270.4999 270.0876 271.106 271.0199 270.9383 269.7284 265.7554 266.0315 268.8946 270.4188 272.1305 272.6712 272.1031 270.8436 270.5565 266.7252 264.5706 263.3839 266.4528 268.6067 269.2034 270.6062 271.6779 272.9967 271.8292 269.1859 265.3807 260.8692 257.7772 259.8989 261.5973 263.7879 265.2499 260.6039 258.6153 262.1323 265.1693 268.0038 269.4057 270.7502 271.5949 272.6508 274.1399 273.9352 271.8008 269.3448 266.5198 262.7061 259.1979 256.1657 253.8742 251.904 255.2009 259.1501 259.8939 260.6489 261.0182 260.7867 260.7864 261.2926 261.5794 259.6718 257.2215 254.3612 250.8339 250.607 254.3155 258.8909 261.6923 265.3419 270.77 272.826 274.5049 275.3062 275.9524 275.9739 274.5344 272.7532 270.1137 260.453 254.9313 259.5299 264.4461 266.7915 269.882 272.8576 275.249 277.0158 279.0567 279.5995 280.3219 280.5264 280.6759 281.0509 281.2749 281.0559 280.7294 280.5056 279.4213 279.1491 277.8491 277.4489 276.8257 276.0815 275.4778 274.046 273.2838 272.1611 272.436 273.0753 272.8879 272.6338 272.4636 272.801 272.7735 272.3604 272.5966 272.5048 273.0316 273.5178 273.8937 274.6984 275.4165 276.8304 277.4473 277.4131 276.5696 275.3958 273.3283 271.5421 268.455 270.6448 271.444 271.4303 269.7878 267.8641 265.6039 264.647 263.0917 262.8422 261.7028 259.3933 257.6397 255.8968 253.4265 251.7847 249.8926 248.8306 247.8295 247.9197 249.8047 250.7077 250.6633 249.5272 249.8709 251.1502 252.8479 255.0531 257.7792 259.8673 262.0373 262.6847 263.8746 263.963 263.6658 263.9885 264.5406 264.6304 264.3082 263.8936 263.9119 263.8033 262.6464 261.3173 259.9616 258.5964 256.3737 254.4065 252.6968 249.3645 243.1875 240.3221 236.4106 232.841 231.0203 231.0128 230.5267 231.7142 235.8944 246.8609 251.5668 255.5805 259.6904 262.2097 262.1326 259.1333 252.292 243.1967 232.6419 229.9349 229.9602 229.3076 229.2448 229.1707 229.8433 230.7877 231.4481 232.7328 237.0314 237.7361 238.2158 237.9977 237.5385 236.9611 237.0852 237.6941 238.6969 234.7802 232.2135 230.8088 230.4062 230.3792 230.4416 230.737 231.1467 231.2392 230.8845 230.0991 230.2825 229.9083 230.3668 229.9017 230.2708 230.1008 230.1651 229.9494 230.3955 230.3776 229.9447 230.4258 229.7803 230.2791 230.1156 229.9266 230.4119 230.5426 231.0368 232.8153 237.218 240.7517 243.3877 246.0281 247.6163 249.3706 252.7966 254.3632 254.243 254.8038 255.0742 254.2833 251.0553 250.3667 248.6749 243.8033 240.4533 233.9898 232.2875 231.8994 230.9685 229.8229 229.7775 229.8443 229.7932 229.5702 229.6692 229.6679 230.4243 230.5101 230.0675 230.3559 230.3503 230.4145 230.3786 231.121 231.4529 231.4734 231.617 231.9652 232.2393 231.3948 230.8486 230.9524 231.3036 232.189 233.9307 238.3922 241.1229 241.8466 241.0352 241.0365 237.6313 237.3287 236.421 235.4226 234.3657 233.3687 232.9875 231.9606 232.9878 -9999 -9999 +307.1323 308.6024 310.5148 311.1369 309.5589 307.6611 307.2405 306.6542 306.5956 306.8275 307.3593 306.994 305.2254 305.1254 307.5553 305.4865 302.5925 300.9327 298.4864 296.1841 295.4925 294.9793 295.1113 292.9965 290.5574 288.918 287.6053 285.7302 284.5124 283.0084 281.3468 279.7267 274.741 271.4037 267.4098 260.0941 258.9316 260.1609 259.6989 260.2763 260.9458 263.4271 263.776 264.4958 265.6526 266.8546 269.7234 270.8385 271.4999 272.7416 274.2892 277.6584 276.9995 278.3526 280.1232 285.681 289.5417 292.8621 296.9992 297.8116 299.229 299.4377 299.6907 299.8357 299.9897 300.136 300.8568 301.6313 303.6546 303.841 302.9163 303.3526 303.3115 303.3466 303.4104 302.6573 301.4709 300.5756 299.5228 298.077 294.1187 293.2254 293.3802 294.5198 295.9129 297.7842 298.6034 298.9181 300.5517 300.4348 301.2118 301.1668 299.1999 298.5013 299.8583 301.3025 302.4911 302.7387 303.9155 304.8981 305.5986 306.0518 306.3061 306.2743 305.3169 305.8905 306.0434 304.8712 303.2137 301.0788 300.504 301.8877 302.7498 303.2012 302.8779 301.0163 300.7547 300.5859 300.3485 300.1823 299.7149 299.0757 298.9578 299.4639 299.3241 299.6042 299.0849 298.1785 298.2925 298.4082 298.2902 298.689 299.9934 300.3899 300.4967 300.3291 300.1097 299.2221 299.0514 299.5193 299.6187 298.7731 298.6055 300.4129 302.3391 302.986 304.0585 304.2595 304.5759 304.9464 304.7894 304.2812 302.439 301.1595 299.7422 298.5382 296.8626 295.0394 292.344 290.4044 288.8351 289.6735 291.4297 293.0246 294.2202 295.342 296.2671 296.2116 295.8234 295.2994 292.5338 289.9715 286.8471 284.3159 282.5453 281.0196 279.9792 280.0061 280.8152 281.3311 280.3951 278.879 276.3963 275.9237 275.3943 273.9667 272.6353 271.9899 270.7334 273.8691 275.1247 275.3561 274.186 273.9662 275.0596 275.1845 274.1732 272.5058 266.0938 268.7363 269.978 272.1229 273.8433 274.6823 274.3181 274.3843 273.9284 271.1327 268.7275 264.3107 265.92 268.4699 269.6077 270.7238 272.0202 273.2103 271.2555 267.1367 262.7499 259.6019 261.6902 264.2537 265.3289 266.6612 267.7525 262.2869 261.85 263.3878 266.7678 268.2939 270.1372 271.7952 273.0036 274.1285 274.9874 274.1306 272.5417 269.2988 266.8093 262.1393 255.5829 254.1837 253.0586 255.5249 261.3021 262.0152 262.3325 262.8451 263.9373 264.3601 263.4426 263.2193 263.7459 261.366 259.0396 256.4962 252.9089 249.9547 253.3905 257.6804 261.5451 263.7602 269.3727 271.0606 273.063 274.3309 275.4284 276.2847 276.364 275.2778 272.9929 266.28 259.0913 258.0867 262.3481 266.8261 270.5415 273.2621 275.2547 276.8213 278.2979 278.5395 279.2885 279.3573 279.7574 280.4319 280.5111 280.7345 280.7102 280.6268 279.4809 279.0915 278.2477 277.7748 277.4353 276.6842 275.9862 274.8861 273.5892 272.4268 271.6987 271.873 272.5054 273.3122 274.134 275.2697 275.1187 274.6989 274.8888 275.0694 275.007 275.3935 275.6344 276.0833 276.9889 277.357 277.7114 277.3222 276.5118 274.4059 272.9628 271.7758 271.6321 272.008 273.522 273.3944 271.3908 269.2452 265.713 264.7219 263.4594 262.8512 260.694 258.8841 257.4396 255.8167 252.8202 251.2277 249.4449 247.9058 247.1035 246.7938 247.3282 250.0224 249.789 248.0999 248.529 249.3295 250.5983 252.838 255.79 257.9022 259.8277 261.4151 262.2927 262.2056 262.1154 262.7489 263.6252 263.8681 263.7656 263.7211 263.8784 262.5686 262.242 261.5637 260.7625 259.2548 257.2752 255.062 253.3783 250.1076 244.4181 241.8213 237.5937 232.657 230.9212 230.9563 230.6488 231.011 234.7839 244.8726 248.9981 252.9716 257.1752 260.526 262.6748 261.5502 257.801 250.2925 241.3699 229.5422 230.3134 229.7907 229.7482 229.755 229.6992 229.1319 229.7873 230.8203 232.7856 234.1063 234.4685 233.3708 233.6617 235.4604 235.7197 237.1611 238.1164 234.7357 231.4568 230.4822 230.1046 230.0587 230.3838 230.5222 231.0797 231.0983 230.5899 230.2533 230.2445 230.3259 230.1107 230.1642 230.1766 229.7889 230.351 230.2769 230.4247 229.9299 230.3219 230.0163 230.3481 230.2226 230.1861 230.2055 230.2293 230.3614 231.3827 234.8682 239.4338 243.0443 245.964 247.7407 248.8625 250.8114 255.1717 257.4409 258.0721 258.2721 257.8759 256.0612 251.6018 251.2065 249.4744 243.9951 240.7941 235.1617 232.0883 231.5124 229.9962 229.6952 229.6919 229.8018 229.7164 229.5614 229.7245 229.6883 228.5636 230.6327 230.0641 230.229 230.4629 230.3458 230.3521 230.2236 230.2952 230.4042 230.4592 230.4184 230.4759 230.9329 230.9608 231.1137 231.2087 231.596 232.0219 232.5316 234.4656 235.8467 235.9985 237.2944 235.3934 235.8419 233.3131 232.4113 232.438 233.3687 232.9875 231.9606 232.9878 -9999 -9999 +307.3462 308.748 310.5079 310.868 309.4768 307.7419 307.2196 307.411 307.7217 308.1959 308.5968 307.9644 306.8568 307.2992 308.5305 306.7632 304.9565 303.5221 301.3525 299.258 297.8481 296.7987 295.9113 292.9565 291.4896 289.8685 287.8298 286.1781 284.317 281.9024 279.2907 277.2776 273.1202 268.9819 264.5063 260.0722 260.4474 259.4466 259.9365 260.5324 261.2914 263.3464 269.4459 270.1016 268.9973 270.3888 272.999 275.189 276.368 277.7202 279.8431 282.9272 284.0169 284.5244 285.5874 287.1275 289.9411 292.6605 295.2771 297.2248 299.1588 299.3848 299.5722 299.8021 299.9018 300.037 300.3351 301.0035 301.2683 301.9599 302.3098 302.2324 303.2968 303.829 303.8791 303.9217 302.6594 301.407 299.9195 298.9479 296.5831 294.3908 294.2878 295.6234 296.781 298.7201 299.2776 300.5455 302.0188 301.7361 301.5543 301.7665 300.2221 299.2108 300.5439 301.8168 303.1071 304.1341 304.5755 305.3399 305.9053 306.4084 305.3222 304.5097 305.3169 305.8905 306.0434 304.8712 303.2137 301.0788 300.504 301.8877 302.7498 303.2012 302.8779 301.0163 300.7547 300.5859 300.3485 300.1823 299.7149 299.0757 298.9578 299.4639 299.3241 299.6042 299.0849 298.1785 298.2925 298.4082 298.2902 298.689 299.7369 300.3262 300.7026 300.7109 300.6672 300.332 300.2222 300.4757 300.6976 300.2261 299.9087 300.7445 302.352 303.5707 304.6339 305.5511 304.7559 304.9689 304.5904 303.746 301.4881 300.1753 298.7045 297.6554 296.54 295.4504 293.6824 293.1294 292.8561 291.6297 292.2503 294.1487 295.1641 295.8043 296.8217 297.0045 296.2529 295.2051 291.2354 289.6469 287.1557 286.2737 285.8477 285.6793 284.2641 284.1946 285.02 284.3213 282.1663 278.9261 278.2711 278.5443 277.1906 275.2945 273.9649 272.2549 271.0431 278.6096 280.0335 280.0289 277.3933 277.3891 278.2674 278.796 277.0284 273.6848 267.5357 269.4475 272.1975 272.8242 274.8245 276.4259 276.6292 276.8315 276.6411 273.3968 270.9507 266.7394 265.7357 267.2741 269.854 271.2038 272.2201 273.2534 270.2854 265.2862 260.7709 262.4208 267.0248 268.9055 269.5437 269.9909 269.7192 262.4513 261.565 262.4345 267.2663 268.9619 270.7583 272.2812 273.9944 274.5782 275.5725 274.5866 273.1262 270.1386 267.3734 261.0865 257.6047 254.8013 254.0846 258.6726 264.6443 264.8042 265.2161 265.2487 265.9702 267.1058 266.39 265.5068 265.4536 263.0189 260.9844 259.0732 255.6252 252.4401 252.0494 256.5976 260.4171 262.1863 267.2485 269.9088 271.7014 273.517 274.4422 275.813 276.8545 276.7679 275.0822 269.9375 267.0508 262.6258 258.5157 264.25 269.3516 273.3011 275.0852 276.5277 277.4789 277.9451 278.4409 278.7607 279.0919 279.2974 279.8444 280.0168 280.1759 280.3074 279.5932 279.0506 278.4962 277.7903 277.4157 276.5966 275.7453 275.1194 274.1525 271.6985 271.3402 271.4829 271.709 272.6907 274.4116 275.9331 276.2761 276.2216 276.2821 276.4086 276.499 276.861 277.052 277.4435 277.7094 277.9246 277.6793 277.2862 277.1537 276.7354 276.4861 275.768 275.0425 274.315 274.8365 274.7537 272.1702 269.8648 267.1906 265.3949 263.9904 263.0562 260.9821 258.6777 256.9847 254.9735 250.3108 249.2964 248.3823 247.6051 246.3692 245.9347 246.5323 248.6345 249.2749 247.1233 247.3965 248.2356 249.4046 251.8823 253.9023 255.7034 257.3221 259.0788 260.3008 260.6236 260.969 261.7704 262.0793 262.6187 262.9255 263.5669 264.0845 262.5785 262.0812 260.6357 259.8803 258.7559 256.8028 254.9946 253.4801 250.5625 245.3468 242.5449 237.2392 232.7003 231.1594 231.1818 230.7811 231.4001 234.0905 243.4452 246.9887 251.2321 255.0078 258.076 260.6583 262.168 261.0041 257.7005 251.7596 236.2569 231.228 229.4263 230.3581 230.0361 229.9244 229.7155 229.3674 229.0451 229.1385 229.1588 229.0773 229.1986 229.3233 230.388 232.7386 236.4346 237.7409 235.1116 231.7795 230.1269 229.9193 230.0184 230.5515 230.7321 230.8521 231.0295 230.9864 229.9796 230.0708 230.2492 230.0568 230.4187 229.7701 230.1769 229.9894 230.4329 230.104 230.1889 230.0452 229.7854 230.1041 230.1077 229.8623 230.3151 229.9851 230.7657 231.5095 235.364 240.1229 243.3796 246.2191 249.0867 251.1392 252.416 255.9115 259.1635 260.5801 260.5323 258.8604 256.4693 252.0755 251.4095 250.3626 244.838 240.8891 235.1617 232.0883 231.5124 229.9962 229.6952 229.6919 229.8018 229.7164 229.5614 229.7245 229.6883 228.5636 230.6327 230.0641 230.229 230.4629 230.3458 230.3521 230.2236 230.2952 230.4042 230.4592 230.4184 230.4759 230.9329 230.9608 231.1137 231.2087 231.596 232.0219 232.5316 234.4656 235.8467 235.9985 237.2944 235.3934 235.8419 233.3131 232.4113 232.438 231.4748 232.0796 232.1252 233.337 -9999 -9999 +307.1199 308.371 309.5303 309.6797 308.2048 306.399 306.0208 305.1372 305.5023 306.9576 308.4694 308.988 308.7782 309.4662 310.3911 309.3591 307.7719 305.685 303.7917 301.4379 299.2621 297.9767 295.9607 292.4866 289.7164 287.2827 285.2698 283.5771 284.5175 283.0082 280.4721 279.32 275.2524 270.8947 263.8468 260.1304 260.0977 258.3692 259.8282 259.8761 260.3893 264.0961 270.665 271.9999 272.3415 272.3966 275.1645 277.0472 279.0724 280.7679 281.9395 284.6512 285.9054 287.4448 288.1451 289.1306 290.588 292.2528 294.9484 298.534 299.0281 299.2154 299.5029 299.6319 299.8888 299.8385 300.4143 301.0197 301.528 302.3412 302.5868 302.6059 302.4011 303.5318 304.2752 303.7656 302.6594 301.407 299.9195 298.9479 296.5831 294.3908 294.2878 295.6234 296.781 298.7201 299.2776 300.5455 302.0188 301.7361 301.5543 301.7665 300.2221 299.2108 300.5439 301.8168 303.1071 304.1341 304.5755 305.3399 305.9053 306.4084 305.3222 304.5097 304.4304 304.9663 305.101 304.3694 303.093 300.8221 299.5307 300.7386 301.8288 302.1035 301.2769 300.0445 299.9116 300.0501 299.5251 299.061 298.9528 298.2217 298.0677 298.1606 299.4708 299.3148 298.6613 298.1417 298.2271 297.6693 298.1726 298.7718 299.3663 299.5866 299.7041 300.0647 300.4228 300.2421 300.3427 300.5989 300.7635 300.7696 300.7558 301.2465 301.9033 302.9589 303.6465 304.4323 304.4406 304.4523 303.9347 302.9557 301.1702 300.1426 299.4257 298.4612 297.5934 296.6035 295.554 295.3868 294.7691 293.6465 293.7322 295.1887 296.4826 297.1516 297.7123 297.4632 296.6568 295.1293 292.5981 291.1702 289.4129 290.3535 289.8235 288.9687 287.9323 286.9305 287.1497 286.7851 283.6851 281.2211 281.2879 280.1646 279.3719 278.8184 276.0101 272.4821 277.1418 281.7894 282.8705 282.7887 280.7494 281.4727 281.9487 281.862 279.9116 275.3349 269.9762 269.7899 274.2198 275.7998 276.0201 277.2657 278.5552 278.8478 278.6651 275.0455 272.8495 268.9888 264.4537 267.1974 270.0851 272.4385 272.7388 273.5316 269.645 264.9814 261.517 265.8912 269.4221 271.7443 272.8279 272.8645 271.6331 262.7701 262.4808 263.0033 267.6739 269.4475 271.1025 272.9161 274.3346 275.2302 275.6913 274.4184 272.4322 270.2523 267.4479 262.5067 258.0143 255.5376 256.8878 262.4185 266.9645 267.1865 268.1523 268.3903 268.4105 268.5862 268.222 266.5748 267.166 265.0139 263.5802 261.382 259.135 256.7015 251.8696 255.2266 258.5934 262.1178 266.1104 268.7864 270.9907 272.9314 274.2205 275.7717 276.8454 277.4551 276.6945 272.1855 269.5426 265.4998 259.4678 265.413 270.2535 273.14 274.7932 276.3509 276.8152 277.2179 277.8253 277.9578 278.1133 278.4535 278.9373 279.1424 279.3394 279.8848 279.7985 279.6113 278.7057 277.4342 276.5256 276.2311 275.1406 274.1913 273.749 271.6374 270.6531 270.4068 270.4819 271.7427 273.2515 275.1 275.8573 276.2646 276.4964 276.5269 276.7341 276.7713 276.9589 277.272 277.5681 277.6764 277.9462 278.2521 278.1932 278.1493 278.0075 277.6796 276.8974 276.2999 276.1315 275.4305 272.6201 270.4967 268.3134 265.7863 263.6037 261.0322 259.4383 257.8629 254.4603 251.1132 249.6913 248.5811 247.7252 246.8006 245.8513 245.2004 245.7984 247.261 247.3419 246.6259 246.4759 247.1706 248.4812 250.3485 251.7904 253.1735 254.9313 256.5799 258.9197 258.9559 259.6993 260.3881 260.9308 261.7578 262.9889 263.7357 263.8481 262.6766 260.6409 260.0621 259.1111 257.2386 255.1438 253.509 252.4882 250.4471 245.4142 242.1652 237.0023 231.9431 231.3304 231.2954 231.2056 231.6385 234.7308 242.8295 246.444 249.9304 253.3667 256.0996 258.0976 260.6912 262.7717 263.9985 260.3128 247.4776 244.3733 239.0865 231.3173 229.136 230.2095 229.9288 229.5536 229.5282 229.0805 229.1846 229.1407 229.0399 229.3211 229.5831 231.1136 236.3759 237.0375 235.4932 232.2282 230.1027 229.9383 230.3089 230.2321 230.7578 230.6231 230.5808 230.9864 229.9796 230.0708 230.2492 230.0568 230.4187 229.7701 230.1769 229.9894 230.4329 230.104 230.1889 230.0452 229.7854 230.1041 230.1077 229.8623 230.3151 229.9851 230.7657 231.5095 235.364 240.1229 243.3796 246.2191 249.0867 251.1392 252.416 255.9115 259.1635 260.5801 260.5323 258.8604 256.4693 252.0755 251.4095 250.3626 244.838 240.8891 236.0364 231.7245 230.2228 229.8813 229.6142 229.6765 229.838 229.5625 229.5852 229.9992 230.0203 228.5315 230.5818 229.985 229.9066 230.3058 229.8731 230.0663 230.1823 230.2648 230.3505 230.4942 230.6031 230.6692 231.2886 231.0476 231.0814 231.0304 231.2925 231.2828 231.5872 231.7625 231.9825 232.253 233.2754 230.9203 230.9599 231.803 232.0957 232.3884 232.1749 232.2991 232.7949 234.1431 -9999 -9999 +306.7057 307.3531 308.4542 307.9697 306.3848 305.0052 304.0558 303.7649 304.0565 305.5568 307.1904 308.8952 309.8192 310.8131 311.8173 311.1751 309.8957 308.3423 306.3489 304.0927 301.6498 298.8613 297.3172 293.5329 291.5088 288.9816 285.8523 282.0359 282.0735 281.2227 279.7701 278.733 273.3248 269.1767 261.6172 259.7714 260.2119 257.6157 259.918 259.694 260.3196 264.5125 269.7459 271.3014 273.3357 274.7198 275.3416 277.3582 279.2042 280.7679 281.9395 284.6512 285.9054 287.4448 288.1451 289.1306 290.588 292.2528 294.9484 298.534 299.0281 299.2154 299.5029 299.6319 299.8888 299.8385 300.4143 301.0197 301.528 302.3412 302.5868 302.6059 302.4011 303.5318 304.2752 303.7656 302.7889 302.0316 300.2405 300.1473 299.0974 297.3353 295.4275 297.071 297.8577 298.9872 300.462 302.4974 303.2386 303.0432 302.4348 302.2321 301.1563 300.8159 301.1244 302.3716 303.7205 305.3068 305.6095 306.1987 306.1461 305.7298 304.789 303.3485 302.8116 303.6349 303.7983 303.3795 302.4363 300.1009 298.7225 299.4989 300.6187 301.1687 300.1506 298.7216 298.3659 298.3041 298.3774 298.2521 297.8636 297.2069 296.662 297.4278 298.9784 299.0362 298.7464 297.3616 296.6953 296.81 297.3664 297.9761 298.258 298.8171 299.1863 299.3148 299.4907 299.4311 299.7311 299.9001 299.8513 299.8892 300.041 300.3766 301.0187 301.7649 302.5491 303.1987 303.8947 303.6663 303.04 302.8015 301.1377 300.5314 299.8297 298.6287 298.1204 297.5525 296.9785 296.5835 296.3299 295.5199 294.9902 296.335 297.6328 298.656 298.9207 298.3589 297.4876 296.4692 294.9398 294.3107 293.8447 292.8319 292.153 291.256 290.356 289.3447 289.2784 288.6941 286.9889 284.0518 283.3029 282.6386 281.8196 280.6255 276.644 273.3132 279.1766 283.174 284.6046 284.5782 283.5902 284.6135 285.1273 284.6487 282.4664 278.6495 269.7849 271.8527 276.2063 277.9027 278.4246 279.1286 279.9156 280.425 280.2247 276.7813 274.7309 271.4555 267.2685 267.283 272.2598 274.4282 274.1383 273.7759 268.9916 263.4981 265.6174 269.6008 272.7539 274.6909 275.1617 274.0769 272.7781 265.0657 263.3645 263.0046 265.8293 269.303 271.8748 274.0863 275.4134 276.2713 275.5057 273.804 271.8798 270.1038 267.7068 263.4879 258.1825 255.9941 258.9261 264.583 268.6095 269.3088 269.7248 270.7712 270.6342 270.3761 269.8886 268.011 268.6307 267.5944 265.9763 263.6614 261.9976 258.6375 255.3678 253.6345 257.9062 261.487 265.5966 267.7845 270.493 272.0491 273.8549 274.9215 275.836 276.8574 276.799 273.754 270.8346 266.3428 263.4671 266.1905 268.7496 271.4954 274.2458 275.8795 276.6936 276.6936 276.9653 277.1094 277.4064 277.619 278.2852 278.7971 279.3708 279.5899 279.9002 279.7003 278.7945 277.6087 276.9734 276.2763 275.5717 274.0209 272.9756 271.5365 270.3018 269.7575 269.557 270.1792 272.3876 274.3936 274.9975 275.2022 275.3875 275.4553 275.5293 276.0269 276.2816 276.6395 276.7684 276.9629 277.333 278.3832 278.7427 278.9199 278.993 278.5024 277.9143 277.2162 276.6449 275.5806 272.5428 270.2124 268.2336 265.959 262.3038 265.1295 264.1653 258.5794 254.8385 251.3482 250.0268 248.9275 248.0251 247.0623 245.8256 244.7828 244.6651 245.6191 245.1335 245.3537 246.2274 246.3173 247.4187 248.7779 249.9629 250.9028 252.1322 254.0561 256.564 257.7822 258.2659 259.1905 260.7414 261.8139 262.9842 263.2238 263.3019 262.3469 260.8363 259.1305 258.2436 256.3747 254.376 252.2269 251.3044 248.4787 244.3313 241.617 238.4309 232.1478 231.5124 231.5724 231.5184 232.435 235.713 242.8295 246.444 249.9304 253.3667 256.0996 258.0976 260.6912 262.7717 263.9985 260.3128 247.4776 244.3733 239.0865 231.3173 229.136 230.2095 229.9288 229.5536 229.5282 229.0805 229.1846 229.1407 229.0399 229.3211 229.5831 231.1136 236.3759 237.0375 235.4932 232.2282 230.1027 229.9383 230.3089 230.2321 230.7578 230.6231 230.5808 230.779 230.1604 230.4035 230.0148 230.4027 229.9527 230.1237 230.1241 229.6598 230.16 230.1271 230.2956 229.8753 229.9789 229.96 229.6406 230.2197 229.6209 230.3683 230.9408 232.5493 236.7915 240.9299 244.1214 246.4143 248.9426 251.3358 253.1119 257.0723 259.212 260.1618 259.5914 257.7587 255.8353 252.1762 252.3501 251.6997 246.7145 241.4078 233.4614 231.4792 230.019 229.764 229.7835 229.6366 229.6735 229.5615 229.7029 229.793 230.3128 229.0476 230.5275 230.2063 230.1819 229.7423 230.304 230.2178 230.3424 230.5319 230.4623 230.6032 230.8866 230.8991 230.2947 230.9292 230.5615 230.2977 231.3632 231.4451 231.4988 231.6217 232.1401 231.6286 231.6943 235.1958 232.4418 232.3364 232.3617 232.5009 232.6431 233.088 235.8114 235.3077 -9999 -9999 +305.6535 306.679 307.9441 306.8091 305.1946 303.4566 302.8883 302.4827 304.4106 306.1635 307.5588 308.9121 309.9263 311.095 312.6296 312.5388 311.3086 309.9012 307.7367 305.4012 302.3236 299.345 297.3172 293.5329 291.5088 288.9816 285.8523 282.0359 282.0735 281.2227 279.7701 278.733 273.3248 269.1767 261.6172 259.7714 260.2119 257.6157 259.918 259.694 260.3196 264.5125 269.7459 271.3014 273.3357 274.7198 275.3416 277.3582 279.2042 281.0426 282.1114 285.1462 286.4463 287.4752 288.664 289.4672 290.4098 291.7722 294.2775 298.1306 298.9083 299.024 299.2544 299.2806 299.0141 299.152 300.4708 301.1259 301.2696 302.5248 302.805 302.7776 302.7715 302.5245 303.851 304.502 303.5677 302.7911 301.0367 300.5507 300.6234 299.2804 296.1714 297.1962 299.5307 299.8245 300.76 302.9366 303.3618 304.2747 303.9696 303.2682 302.5848 302.3285 302.1787 302.9514 303.9573 305.8703 306.3852 306.7009 305.5428 304.4564 303.8293 302.6888 301.4371 301.4685 301.8804 301.6978 301.2895 299.3615 298.3681 298.8257 299.7043 300.204 299.6651 297.5166 297.1488 297.0602 297.1497 297.31 297.1307 296.2784 295.9052 296.5619 298.4775 298.6552 298.1616 297.3177 296.287 296.2245 296.7538 297.1034 297.4663 298.1059 298.4603 298.5989 298.7026 298.6446 298.6928 298.826 298.8889 298.9763 298.8094 299.4513 300.11 301.2265 302.3146 303.1075 303.5778 303.6316 303.4755 302.8299 301.4612 301.0219 300.3332 299.675 299.399 298.8554 298.1821 297.9537 297.7184 296.1407 296.2717 297.5944 298.894 299.8336 300.1874 299.9118 299.2218 298.3521 296.8795 296.5793 295.752 295.0313 293.8692 292.9869 292.1753 291.0818 290.864 288.7313 286.3701 284.4964 285.8356 284.3044 283.1206 280.8269 276.6574 277.3193 283.4436 284.8542 285.9088 285.9739 286.1341 286.7421 287.2486 286.5005 284.6062 281.2921 272.369 275.5981 278.4859 279.9755 280.7249 281.2342 281.4883 281.719 281.7181 278.1802 275.93 272.8738 268.7164 268.426 273.7672 276.2788 275.7824 273.9883 267.5944 264.0162 269.7007 273.1711 276.0664 277.7488 276.9173 275.8765 273.3841 268.8092 267.6403 263.5172 266.3294 270.2297 273.2929 275.7252 276.3961 277.4277 275.5309 273.5994 271.8011 269.6634 267.4225 262.0099 257.7771 259.243 263.2824 267.3603 270.2635 271.6868 272.4073 273.2605 273.1569 272.7345 271.682 270.3723 270.2201 269.6971 268.086 265.5414 263.3411 262.3253 259.7164 254.8234 255.5348 259.9173 265.4696 267.5906 269.7699 271.8075 272.8837 273.6592 275.3922 276.6562 277.0771 274.768 271.7144 267.4118 265.7213 268.9164 270.9034 272.3775 274.4726 275.5498 276.2434 276.1373 276.2103 276.3568 276.7914 277.4634 277.8632 278.3014 278.8455 279.4284 279.5435 278.9013 278.3611 277.9914 277.3574 276.7538 275.5999 274.1238 272.7289 270.7563 269.7935 268.9753 268.6175 268.6067 270.6812 272.4142 271.8897 273.612 273.9396 273.6904 274.3844 274.7741 274.9871 275.2574 275.4234 275.7231 276.318 277.3324 277.9335 278.4673 278.4572 278.3808 277.8749 277.2589 276.2894 275.2824 271.6975 270.8814 268.9746 266.7193 262.7714 266.1567 265.8687 262.6538 260.2845 256.0994 253.0486 250.2394 249.4748 248.4673 246.7642 245.3636 244.1942 243.9417 244.054 244.5125 246.2274 246.3173 247.4187 248.7779 249.9629 250.9028 252.1322 254.0561 256.564 257.7822 258.2659 259.1905 260.7414 261.8139 262.9842 263.2238 263.3019 262.3469 260.8363 259.1305 258.2436 256.3747 254.376 252.2269 251.3044 248.4787 244.3313 241.617 238.4309 232.1478 231.5124 231.5724 231.5184 232.435 235.713 242.8315 245.7065 248.504 251.1178 252.9184 255.7267 259.7372 262.5229 264.7624 264.4657 257.2294 253.5961 249.5344 243.5062 237.1226 229.9227 228.7935 230.0188 229.751 229.3164 229.2166 229.1771 229.1239 229.1776 229.701 230.4305 233.6081 235.7432 234.2272 232.5669 229.8446 230.1069 230.0379 230.0867 230.5123 230.8579 228.3823 229.8056 230.4812 230.0463 230.247 230.1073 229.9592 230.2359 229.8088 230.0843 229.7186 230.3742 229.935 230.1566 229.9885 229.9275 230.0003 230.1078 230.1084 230.5613 232.2014 235.0135 238.5017 241.4295 244.0231 246.652 248.825 250.8784 252.8568 257.4678 258.9099 258.9515 257.8267 256.3399 254.3889 251.5907 252.35 252.5219 247.1752 241.0571 232.071 230.7327 230.1191 229.7103 229.7862 229.739 229.5697 229.8413 229.8557 230.4267 230.2323 229.6867 229.6066 230.283 229.6203 229.7613 229.4806 230.8952 231.8335 231.996 230.6037 231.2529 232.5388 235.6665 234.9797 236.2391 232.0172 232.6128 232.3854 230.3589 231.1008 231.2354 230.9851 231.2898 231.9735 234.2394 232.3363 232.5228 232.5204 232.6303 233.0278 234.0918 235.4338 237.7232 -9999 -9999 +305.6535 306.679 307.9441 306.8091 305.1946 303.4566 302.8883 302.4827 304.4106 306.1635 307.5588 308.9121 309.9263 311.095 312.6296 312.5388 311.3086 309.9012 307.7367 305.4012 302.3236 299.345 297.4606 293.0698 289.7234 286.8222 284.0948 279.0404 276.4126 276.4814 276.5853 275.3827 268.6525 263.2199 260.8038 259.8991 259.8987 258.1947 260.0005 259.5246 260.0559 267.2393 270.4313 273.0961 274.8188 276.1046 277.1631 278.2343 279.4316 280.682 281.5427 284.7282 285.5888 285.9493 287.5254 289.4458 291.0094 292.1134 293.7305 296.4472 298.5943 298.706 298.237 297.2576 297.6027 299.9683 300.5559 301.0934 301.2068 302.3759 302.5737 302.7761 302.85 302.7615 303.9773 304.5287 303.9888 303.9928 302.2837 301.5288 301.2719 300.9777 299.054 297.2226 299.2272 300.8518 301.3837 303.2898 304.3055 305.0728 305.1638 304.6804 304.2698 303.9653 303.5783 303.9179 305.2577 306.5223 307.0324 306.5327 303.8162 301.3293 300.5681 299.6962 298.6915 299.0181 298.9941 298.3957 298.6874 297.5406 297.239 297.7877 298.9106 299.0216 299.1049 296.7885 295.7806 295.6973 295.7591 296.2247 296.1068 295.6005 295.0585 295.8851 297.9335 298.2157 297.5657 296.6811 295.9263 295.5908 295.5464 295.9959 296.535 297.9989 297.8064 297.6321 297.2058 297.0537 297.2177 297.8291 298.6609 299.0607 298.695 299.2144 300.214 301.0959 302.1773 303.0135 303.3705 303.1979 302.6984 302.6229 301.7003 301.391 300.8578 300.4615 300.2958 300.1297 299.5483 299.4179 299.1091 297.4022 297.7209 299.3717 300.3148 301.2891 301.5532 301.5774 301.2363 300.7603 299.4984 298.3707 297.9522 297.0655 296.0845 294.9583 293.847 292.7496 292.2456 288.6279 287.2228 287.8661 287.6272 285.9596 284.0568 281.2646 280.4305 281.057 284.9593 285.9274 287.1776 287.9428 287.6146 288.0854 289.0263 288.6504 286.3901 282.61 278.3239 278.0287 280.4349 281.6671 282.2697 282.6104 282.6705 282.8102 282.6195 278.9096 276.6963 273.6669 267.5965 270.8618 274.7649 277.1061 276.3642 273.8182 266.5847 269.6322 272.2264 275.1181 277.4713 279.0007 278.0844 276.1377 274.1616 273.8222 272.6252 270.8068 266.8924 271.4069 274.6289 277.1069 278.1719 278.0367 275.5136 273.6331 271.0154 269.1819 264.6665 259.7885 258.4819 262.7608 266.8519 268.8298 273.1314 273.823 274.4652 275.6434 275.5858 274.6819 274.0598 272.9631 272.0993 271.6905 269.7635 267.4517 266.7231 264.7217 262.7765 257.8653 254.3928 259.6098 264.5755 267.6461 269.1196 270.372 272.2531 273.7661 275.5555 276.7293 277.5632 275.7684 271.863 267.9351 266.7793 269.9994 272.3008 274.2617 275.5335 276.0276 275.9524 275.2119 275.3157 275.5193 276.209 276.6373 277.0566 277.5473 278.0199 278.4831 278.3528 277.8185 277.4305 277.7663 277.2615 276.3128 274.9325 273.7863 272.649 270.9886 270.2355 267.9183 266.6394 267.2672 267.5517 269.6186 270.5294 271.6675 272.1374 272.4103 272.5876 274.7741 274.9871 275.2574 275.4234 275.7231 276.318 277.3324 277.9335 278.4673 278.4572 278.3808 277.8749 277.2589 276.2894 275.2824 271.6975 270.8814 268.9746 266.7193 262.7714 266.1567 265.8687 262.6538 260.2845 256.0994 253.0486 250.2394 249.4748 248.4673 246.7642 245.3636 244.1942 243.9417 244.054 244.5125 244.3502 245.424 246.1243 246.8814 248.0707 249.5027 250.254 251.2776 254.3479 255.6962 257.8554 259.1809 260.9804 262.3252 262.4441 262.4388 262.4702 261.7071 260.171 258.4073 257.3028 255.8102 253.741 251.8215 250.1466 247.2359 243.3986 241.2413 239.0652 233.8956 231.4459 231.6048 231.2052 232.9386 236.1259 242.0914 244.8975 247.538 250.4975 252.5828 256.1041 259.3152 262.0628 263.9402 264.4947 261.1902 258.756 254.3521 249.3163 243.7997 234.8026 229.4767 229.3584 228.0803 229.6096 229.2897 229.2776 229.1094 229.0489 229.4231 230.9189 232.0267 236.0489 232.9003 231.8589 230.8017 229.937 229.9627 230.1997 230.6037 228.2301 230.1698 230.4765 230.3101 230.139 230.3216 229.6792 230.3062 229.9797 229.9859 230.1458 229.9668 229.8876 230.2315 230.2111 230.1474 230.07 230.2266 230.1726 230.2459 231.3651 232.7477 236.0273 238.0289 240.7412 243.1907 246.5867 249.369 251.2322 253.4822 257.4211 258.2671 257.6866 256.3864 254.4317 252.8445 250.7758 251.2255 250.6836 245.9555 240.2244 232.154 230.9595 230.3181 229.9484 229.726 229.6385 229.8264 229.5013 229.6297 230.5893 232.8222 231.6113 230.3497 228.3012 229.7246 230.1545 232.1829 239.0576 243.5045 244.8746 240.5981 238.423 239.8467 244.4612 243.7959 237.7867 233.6287 237.4523 237.5415 235.7847 233.2519 232.923 232.2863 231.827 232.1075 233.0477 232.7686 232.7395 232.803 233.0408 233.4603 234.5957 237.6677 240.7239 -9999 -9999 +304.1371 305.2452 306.5169 305.8302 304.0799 301.4688 301.463 301.0955 303.5039 304.8267 306.627 309.0979 310.9498 311.6547 313.4146 312.787 311.3527 309.8421 308.0108 305.46 303.0201 300.1101 297.7151 293.6074 291.7327 289.2801 285.5739 282.8815 279.2583 276.3613 273.4191 270.2319 271.4698 271.0076 264.957 259.639 259.6606 257.9434 259.9459 259.4547 259.6341 267.1671 269.9073 272.5088 274.2241 275.2773 275.9044 277.6997 278.631 279.4562 280.5168 282.143 283.3586 285.4878 287.1491 289.338 290.8809 292.5741 293.3128 294.0661 295.4568 294.9153 294.0922 296.4449 298.3124 300.3621 300.6418 301.2369 301.8734 302.0363 302.7098 302.8005 302.7435 304.2051 304.2895 304.2198 303.7419 303.1137 303.1987 302.9359 302.0847 301.4307 301.202 298.7403 299.1152 300.5027 301.904 304.05 304.7502 305.4026 305.9392 305.7644 305.4901 305.4157 305.531 305.0844 305.568 307.3827 307.6049 306.7083 303.6305 301.8725 301.1988 299.9566 298.4882 297.7964 296.4814 295.7567 295.5629 296.0928 295.7466 297.3264 298.0925 298.0236 297.9921 296.7747 294.8995 294.0453 294.779 295.1355 294.915 294.2456 294.3273 295.1865 297.1341 297.5424 297.083 296.1974 295.549 294.8885 294.5454 295.2366 295.7325 297.5005 297.079 296.7244 296.6619 296.4311 296.4512 296.9365 297.2191 296.7171 297.3746 298.9116 299.8701 300.3254 301.5613 302.1011 302.3513 302.0689 301.4987 301.6407 301.0553 300.363 300.007 299.63 299.7567 300.5649 300.9599 300.9965 300.65 299.7677 300.069 300.8295 301.8241 302.7076 303.2259 303.4206 303.3521 303.1084 302.0369 301.239 299.9456 298.8068 297.3282 296.0988 295.249 294.4079 293.1481 288.6714 289.9346 290.2175 289.7127 287.9096 285.3081 282.1545 281.4954 281.6302 286.0444 287.2814 289.1217 289.9679 288.9171 289.4794 289.9563 289.2211 287.2079 284.05 278.7623 281.6518 281.9128 282.8274 283.1992 283.4459 283.4958 283.6274 283.2816 279.5284 277.1891 273.472 267.4819 271.9442 275.223 276.6855 276.4313 273.4008 268.6112 272.1512 274.0743 276.1685 278.0446 279.0934 278.8368 277.4736 276.2356 277.2091 275.8862 273.2812 268.5877 273.3632 277.3024 279.1188 279.3666 278.3686 275.7365 273.8119 271.8618 269.3273 264.4666 260.8481 260.3686 264.5139 268.5215 270.919 274.6831 276.0269 277.0911 277.6811 277.833 276.8912 276.2827 274.7304 273.9031 273.087 271.0168 270.6353 269.8958 267.1429 265.0431 261.4351 256.1463 258.4755 262.5795 266.3908 267.6062 269.8016 272.1195 273.8017 275.6643 276.8585 278.1259 277.2576 274.1293 271.319 270.6538 272.4914 273.9969 275.4432 275.5335 276.0276 275.9524 275.2119 275.3157 275.5193 276.209 276.6373 277.0566 277.5473 278.0199 278.4831 278.3528 277.8185 277.4305 277.7663 277.2615 276.3128 274.9325 273.7863 272.649 270.9886 270.2355 267.9183 266.6394 267.2672 267.5517 269.6186 270.5294 271.6675 272.1374 272.4103 272.5876 273.0379 273.6335 273.8366 273.6627 274.179 274.7473 276.3641 277.1918 277.3632 277.519 277.5256 277.1339 276.4731 275.8188 274.9352 272.3618 270.4971 268.8004 266.9365 266.7065 267.5455 267.5538 265.5111 262.6497 257.6985 255.496 254.0249 252.4418 251.0044 248.4948 246.694 244.9981 243.8444 243.1279 243.8041 243.3597 243.5666 244.1397 245.7101 247.6568 248.3878 248.7828 249.4587 252.6244 254.7569 256.287 258.1957 259.9335 261.223 261.3576 261.1077 261.3231 260.6312 259.3844 257.5434 256.6554 255.3651 253.2269 251.2656 249.3073 246.2812 241.7448 239.614 237.7836 233.4889 231.7324 232.1213 231.728 232.9482 235.6081 242.7946 246.2728 249.3081 251.9731 254.7429 257.1163 259.0006 261.6191 263.1112 263.8578 262.2956 260.1003 256.2263 250.4234 245.6465 240.7161 232.5711 229.58 229.5236 230.1619 229.4953 229.351 229.1214 229.1395 229.1725 229.9118 231.3514 232.1405 231.1709 230.2144 229.7962 230.2575 229.5225 228.5919 228.2549 230.6254 230.6243 230.5681 229.9894 230.5235 229.8744 230.2401 230.1483 229.8232 230.0714 229.8051 229.9249 229.8011 229.8855 230.0204 230.114 230.373 230.3212 230.5732 230.5518 231.4427 232.6588 237.0704 240.8765 244.3842 245.2819 245.4952 248.374 251.3588 253.7338 257.2946 257.6042 256.5939 255.02 252.8729 251.5768 249.9272 249.9483 248.7133 244.0635 238.953 233.1526 230.9801 230.3596 230.6183 232.3355 230.8566 229.5925 229.4969 231.0089 233.5381 233.9957 232.2699 230.3082 230.4111 229.1983 229.929 239.8359 242.2337 246.5903 250.4778 250.6755 248.5492 245.9193 247.1072 245.8353 238.2854 235.75 240.0535 239.3337 238.2435 237.2065 235.5584 235.5767 236.3566 235.1754 233.9293 233.2839 233.1473 233.4699 234.4159 235.4174 236.4926 241.0428 244.3632 -9999 -9999 +302.9273 304.0013 305.1483 305.5619 304.023 299.5164 299.4676 300.46 302.0983 304.029 306.2563 308.5322 310.2189 311.321 313.1861 312.4903 311.1868 309.6086 308.0089 305.5238 302.4768 299.6842 297.508 292.9329 291.4893 289.1483 286.5935 284.5811 283.2316 280.9353 278.662 277.2138 277.6968 274.6369 267.4792 259.7597 259.7256 259.9476 259.6297 259.3851 259.58 266.4638 268.2101 269.7065 270.5995 272.2352 274.127 273.6893 275.3429 278.2466 279.3358 283.1609 285.108 287.2966 288.6711 289.3586 290.3286 291.2901 292.039 291.7102 291.0365 291.82 293.9993 296.3853 298.7675 300.5045 300.7356 301.0558 302.0499 302.6267 302.5582 302.3944 303.3429 303.2362 303.1033 303.0377 302.6441 302.6399 303.1878 304.1891 303.2675 302.6538 301.9262 300.9488 299.9114 300.1527 302.091 304.0648 304.8116 305.552 306.35 306.684 306.2573 306.2915 306.4019 306.5087 306.8755 308.242 308.1661 307.0745 306.2742 305.4108 305.0421 304.1243 303.0161 301.5563 299.5741 296.6748 294.9732 294.1423 294.1363 294.965 296.49 296.7288 296.7606 296.1662 294.9715 293.0289 293.6872 293.8121 293.721 293.283 293.9212 294.9207 296.6263 297.0269 296.7473 295.5694 295.0574 294.4716 293.9282 294.0747 294.9169 296.4355 295.9842 295.5652 295.3316 295.3141 295.7096 296.0839 295.9091 295.1996 296.8979 298.3375 299.5956 300.6882 301.2912 301.7917 301.2994 301.0572 300.6821 300.4123 300.1775 299.4456 298.6352 298.492 298.6414 299.2317 300.3293 301.0633 301.5565 301.273 301.9745 302.2435 303.1327 303.6841 304.5202 304.8012 304.844 304.7335 304.0484 303.1242 301.9319 300.2385 298.1058 297.2511 295.9266 294.854 291.9233 290.7934 292.5267 292.1352 291.2054 289.6938 287.932 284.4416 281.5994 281.6425 286.8252 288.4019 289.9644 290.5378 290.2461 290.3937 290.3588 289.5019 286.618 281.4978 281.4213 282.1186 283.933 283.9947 284.3549 284.5726 284.231 283.7763 282.9412 278.3866 275.5896 272.1557 268.7666 272.8184 275.1557 276.6966 276.7255 274.3847 268.4297 272.3429 274.594 276.3385 277.8441 279.0944 279.712 279.6309 278.5628 279.0367 278.3917 275.1323 270.4266 275.3927 279.7064 280.9599 280.5406 279.1097 276.0738 274.5599 272.7092 268.6785 262.6505 260.9941 262.3087 266.4381 269.4842 273.9882 276.0963 277.659 277.0911 277.6811 277.833 276.8912 276.2827 274.7304 273.9031 273.087 271.0168 270.6353 269.8958 267.1429 265.0431 261.4351 256.1463 258.4755 262.5795 266.3908 267.6062 269.8016 272.1195 273.8017 275.6643 276.8585 278.1259 277.2576 274.1293 271.319 270.6538 272.4914 273.9969 275.4432 275.9254 276.6268 275.9406 274.7031 274.4519 274.9351 275.2284 275.8185 276.5562 276.7368 276.9452 277.6381 277.5261 277.1446 277.1635 276.983 276.3775 275.9333 275.5723 275.0488 274.1721 271.7865 270.7212 267.4186 265.8198 265.5443 266.4281 267.1712 268.2919 268.9307 270.068 270.5071 270.5932 271.9266 272.1779 272.067 271.8958 272.9158 273.9456 275.45 276.0912 276.2631 276.7542 276.5061 276.0593 275.4978 274.9319 274.1292 271.3292 269.8332 268.1307 267.3468 267.4871 268.5363 267.769 265.7468 263.196 258.3483 256.5959 255.4408 254.0968 252.4588 249.7674 248.0301 246.5974 245.275 243.8409 242.3821 242.3835 242.5583 243.1958 245.5127 247.3378 247.6523 247.7979 248.2817 251.0622 253.123 254.8362 256.3554 257.6823 259.1676 259.7163 259.9838 259.8692 259.3837 258.2254 256.716 255.009 254.1844 253.2888 251.257 248.5791 245.1196 239.9662 237.736 236.2938 233.534 231.7801 231.2844 231.6819 233.9943 238.2378 244.6181 247.4017 250.5206 252.9553 254.9655 256.8646 258.4532 260.3774 261.2381 261.9676 261.178 259.7167 254.9274 251.1464 249.7955 246.3184 241.6092 236.4943 231.2089 229.3493 229.8503 229.22 229.1778 229.1361 229.2542 229.7896 231.7735 230.8898 231.8723 229.9008 228.1342 228.3976 229.2335 230.2439 231.1459 229.8653 230.2676 230.0784 230.5418 230.1585 230.2364 230.2932 229.7262 229.9622 230.0213 229.8885 229.6106 229.8963 230.0652 230.0196 230.0725 230.336 230.5952 230.5872 230.69 231.3735 232.9434 238.6208 243.2508 247.3154 249.5979 249.579 248.3404 250.3293 253.4194 256.4644 256.5419 255.4831 253.5335 251.469 250.4611 249.0661 248.5062 247.4632 243.6622 241.3683 238.0235 233.4567 231.955 234.57 236.304 234.0872 230.5539 232.7972 234.618 235.0317 233.8461 231.7854 230.2619 230.0759 228.3092 235.052 245.863 247.797 249.7033 252.3472 252.3305 252.0349 251.1979 249.5135 246.1706 237.8994 237.6451 240.4775 239.7972 239.869 238.6789 238.1835 237.5387 237.4749 235.203 235.4115 234.6591 234.4614 236.8844 237.8262 240.5692 241.2317 239.7228 243.8096 -9999 -9999 +301.5899 303.2811 304.1229 304.8834 303.7668 298.7979 297.714 300.1086 302.9095 304.9787 307.1122 309.0782 310.5296 311.6811 312.1052 311.4819 309.4525 305.8402 305.4669 304.5686 301.1993 298.2884 295.862 291.6057 289.6734 288.2962 287.3868 286.195 285.6905 283.4991 281.4424 279.97 280.3895 277.2074 269.8627 259.8773 259.4514 259.9567 259.468 259.1743 259.3974 263.5581 264.9561 269.2271 271.2605 274.0366 276.7461 278.1351 278.0858 280.7476 282.889 285.3583 286.3698 287.3175 288.7915 289.257 288.9877 289.18 289.5161 288.9984 289.4629 291.5359 291.9711 295.7749 298.7463 300.5168 300.8325 300.968 301.2804 302.4612 301.8218 301.7714 302.0044 301.8528 301.6257 302.0164 302.0805 301.8844 302.489 303.6113 304.211 304.0264 303.2539 302.439 301.6844 300.6838 301.4816 303.9994 304.7 305.4562 306.1592 307.1006 307.3273 307.2596 307.5404 307.8733 308.1883 308.623 308.6387 307.893 307.4902 306.889 306.2331 305.3467 304.3797 303.4518 301.3109 300.2829 298.6658 295.5446 293.5808 293.2205 293.2511 293.4498 293.18 293.8434 293.8701 292.9368 292.8227 292.4303 292.1455 292.5448 293.7489 294.67 295.5157 296.0488 295.7056 294.7422 294.4539 294.1772 293.5113 293.344 293.8452 294.7527 294.7023 294.4579 294.2693 294.5828 294.5614 294.2491 294.0583 294.1623 297.0384 298.2602 299.2181 300.1208 300.8239 300.8199 300.1433 299.2836 298.354 298.643 299.278 298.7907 298.1628 298.1149 298.2574 298.6617 299.4845 300.6016 301.4273 302.4965 302.8014 303.5953 303.7696 304.3154 304.705 305.0032 305.0168 305.0228 304.8673 304.192 303.4309 301.598 299.6982 298.1666 296.8487 294.949 292.756 293.664 293.7487 293.2077 291.9632 290.9258 288.6815 284.6093 281.0614 282.1854 287.3494 288.6515 290.0861 290.9112 291.0836 291.3226 291.0109 289.8728 287.0302 284.4847 284.9554 283.9141 285.7333 285.3514 285.3769 285.1075 284.0379 282.3153 280.3593 273.0606 271.0091 269.0846 270.5459 273.1649 275.0236 276.7062 276.7255 274.3847 268.4297 272.3429 274.594 276.3385 277.8441 279.0944 279.712 279.6309 278.5628 279.0367 278.3917 275.1323 270.4266 275.3927 279.7064 280.9599 280.5406 279.1097 276.0738 274.5599 272.7092 268.6785 262.6505 260.9941 262.3087 266.4381 269.4842 273.9882 276.0963 277.659 278.5879 279.4937 279.7375 279.2991 278.1295 276.7308 275.6706 274.5411 273.8186 273.4941 272.3779 270.1964 267.6437 265.2854 260.0282 257.2315 262.0922 265.0047 267.4068 269.9505 272.1927 274.2861 276.522 277.8078 279.0728 278.7812 276.5604 274.9528 274.6389 275.0611 275.8773 276.4616 276.8348 277.0443 275.843 274.2319 274.1333 274.163 274.4473 274.9428 275.1384 275.3981 275.9792 276.7434 276.4816 275.925 276.5027 275.8867 275.1235 275.1938 275.5154 275.506 274.7881 272.6482 271.1812 268.3144 265.9294 264.4103 264.5392 265.5611 266.0961 267.0628 268.7493 269.0175 269.5635 270.3209 270.4961 271.2628 270.6982 272.3041 273.4553 274.8786 275.1388 275.3508 275.3854 274.9275 274.4456 274.1085 273.7542 272.4455 269.6444 268.4446 267.9833 267.7988 268.5506 268.4219 266.9418 264.9417 262.4656 258.7709 257.4426 256.0624 255.2004 253.324 251.3111 249.3752 247.5406 246.5951 243.964 242.6389 241.9439 241.0705 242.8267 245.6342 246.6964 246.6855 247.0213 247.1144 249.3618 251.1002 252.5064 254.1316 255.2372 256.5194 257.2559 257.8517 258.5261 258.5693 256.89 255.2403 253.6644 252.5928 251.4624 249.9214 247.7571 244.8649 239.8039 236.0628 233.3449 232.2145 232.25 231.2964 231.7458 236.6621 240.3415 245.6392 247.7424 249.8222 251.9001 253.9793 255.7078 257.284 258.535 259.2307 259.9337 259.2087 258.3113 256.9284 254.6544 251.8578 248.3316 243.683 238.4257 232.4355 229.392 229.4265 230.0141 229.3061 229.114 229.0189 231.2699 231.0006 230.5696 228.1683 228.1654 229.7807 229.8004 231.3205 232.3504 229.9523 230.1987 230.1153 230.0908 230.172 229.8192 230.1029 229.7208 229.9171 230.0783 229.5825 230.1367 229.9968 229.9666 230.2647 230.344 230.0775 230.3029 230.5655 230.6728 230.6527 231.5241 234.474 241.7749 246.8527 250.3929 252.563 253.2368 252.2157 250.5303 252.2561 256.0609 255.9485 254.9034 253.8224 251.5597 249.663 248.1639 247.5986 246.1648 243.7158 242.3609 241.3595 239.9932 238.6703 238.7602 236.9981 234.7089 232.8743 234.6947 235.1931 234.1641 232.4866 230.8315 229.7917 229.9852 230.5242 236.821 246.4087 248.4306 251.0626 252.2983 252.4397 252.375 252.0168 249.3439 245.5059 237.7611 239.7487 239.8255 240.4364 241.5669 241.4803 240.0097 239.7173 238.4495 235.9676 237.2062 238.6475 239.7334 240.3726 240.1947 241.8948 241.7656 240.317 242.8209 -9999 -9999 +-9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 288.6815 284.6093 281.0614 282.1854 287.3494 288.6515 290.0861 290.9112 291.0836 291.3226 291.0109 289.8728 287.0302 284.5977 284.9554 283.9141 285.7333 285.3514 285.3769 285.1075 284.0379 282.3153 280.3593 273.0606 271.0091 269.0846 270.5459 273.1649 275.0236 276.7062 277.4295 275.6736 269.9262 270.4759 273.6632 276.672 278.7368 279.7322 280.6707 281.3485 281.0009 280.248 278.9713 275.683 272.9971 276.9097 279.8702 280.3065 280.4883 279.8407 277.1077 275.059 272.4152 267.0853 262.3064 262.899 264.5977 268.4032 270.203 274.7712 276.8712 278.5222 280.0931 281.1438 281.6549 281.356 279.8585 278.4784 277.2322 275.6199 275.667 275.4221 274.452 272.5054 270.2809 268.0204 264.5493 258.4858 260.6311 262.8111 267.1206 269.6184 271.9101 274.2495 276.7763 278.8129 280.7171 279.4414 278.4354 277.711 277.4854 277.3493 277.1055 276.9416 277.2262 276.8329 275.4977 273.9194 273.9247 273.8911 274.184 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 +-9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..ba2a75f0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("UnitTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("UnitTest")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("f033ac24-8018-4d3e-b9d1-d45be0de267d")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/Source/Test.cs b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/Source/Test.cs new file mode 100644 index 00000000..fef1b731 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/Source/Test.cs @@ -0,0 +1,641 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using NUnit.Framework; +using System.Diagnostics; +using System.Xml; +using System.IO; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + + +namespace UnitTest +{ + [TestFixture] + public class Test + { + + + string omiPath = null; + string config = null; + DiffusiveWave.Source.Wrapper wrapper; + + [TestFixtureSetUp] + public void SetUp() + { + Debug.Write("\n Test Fixture Setup... "); + + omiPath = System.IO.Directory.GetCurrentDirectory() + "../../../Data/2dDiffusiveWave.omi"; + //config = System.IO.Directory.GetCurrentDirectory() + "../../../Data/2dDiffusiveWaveConfig.xml"; + + omiPath = Path.GetFullPath(omiPath); + //config = Path.GetFullPath(config); + + wrapper = new DiffusiveWave.Source.Wrapper(); + + Debug.WriteLine("done. \n"); + + } + + + + [Test] + public void Initialize() + { + Debug.WriteLine("\n\n---------------------------------------------------"); + Debug.WriteLine("Running the 'Initialize' Test"); + Debug.WriteLine("---------------------------------------------------"); + + //create input argument hashtable + System.Collections.Hashtable args = BuildArgs(omiPath); + + //Initialize Model + wrapper.Initialize(args); + + Debug.WriteLine("Initialize has completed successfully"); + + //Teardown the component + wrapper.Finish(); + + + + } + + /// + /// Tests how the model hanels stage input. This is what can be expected from river overflow + /// + [Test] + [TestCase("X and Y Slope", 7, 7, 0.1, 0.1, .1, .1, 1, 0.007, 1, new double[7] { .03, .03, .03, .03, .03, .03, .03 })] + // ID ROWS COLS SOX SOY NX NY CELL WEIR DT-hrs INFLOW + public void StageInput(string id, int r, int c, double sx, double sy, double nx, double ny, double cell, double hw, double dt, double[] InStage) + { + Debug.WriteLine("\n\n---------------------------------------------------"); + Debug.WriteLine("Running the 'Stage Input' Test, ID: " + id); + Debug.WriteLine("---------------------------------------------------"); + + //create input argument hashtable + System.Collections.Hashtable args = BuildArgs(omiPath); + + //set the number of rows and columns (for this test) + + wrapper.nx = nx; + wrapper.ny = ny; + wrapper.hw = hw; + double[] stage = InStage; + //Initialize Model + wrapper.Initialize(args); + + //set stage values + IValueSet Stage = new ScalarSet(stage); + wrapper.SetValues("Stage", "SmithBranch", Stage); + + //run timestep + wrapper.PerformTimeStep(); + + ScalarSet excess = (ScalarSet)wrapper.GetValues("Excess Rainfall", "Smith Branch"); + + //get number of rows and cols, assuming a squar matrix + int elem = Convert.ToInt32(Math.Sqrt(Convert.ToDouble(excess.Count))); + + StreamWriter sw = new StreamWriter(id + ".csv", false); + + //Write the output results to the screen + Debug.WriteLine("Excess Rainfall Results"); + Queue s = new Queue(stage); + double sum = 0; + double riverVolume = 0; + for (int i = 0; i <= excess.Count - 1; i++) + { + + if (i % (stage.Length) == 0) + { + double ss = s.Dequeue(); + if (ss != 0) + riverVolume += (ss - wrapper.hw); + Debug.Write("\n" + excess.data[i].ToString() + "\t\t"); + sw.Write("\n" + excess.data[i].ToString() + ","); + } + else + { + Debug.Write(excess.data[i].ToString() + "\t\t"); + sw.Write(excess.data[i].ToString() + ","); + } + + sum += excess.data[i]; + + } + + Debug.Write("\nTotal head on floodplain = " + sum.ToString() +". \n"); + Debug.WriteLine("\nStage Input Test has completed successfully"); + sw.Close(); + //Teardown the component + wrapper.Finish(); + + + } + + /// + /// Tests how the model handels just excess rainfall input. This is what is expected for overland flow + /// + //[TestCase("Excess_Complex", "../../Data/elev5meter_test.txt", 0.05, 0.05, 0.01, new double[15]{.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0})] + [TestCase("Excess_Complex", "../../Data/elev5meter.txt", 0.05, 0.05, 0.01, new double[15] { 0.01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 })] + public void ExcessInput(string id, string elevTxt, double nx, double ny, double hw, double[] InExcess) + { + Debug.WriteLine("\n\n---------------------------------------------------"); + Debug.WriteLine("Running the 'Excess Input' Test, ID: " + id); + Debug.WriteLine("---------------------------------------------------"); + + + //get xllcorner and yll corner for output file + StreamReader sr = new StreamReader(elevTxt); + string line = sr.ReadLine(); line = sr.ReadLine(); line = sr.ReadLine(); + string xllcorner = line; line = sr.ReadLine(); + string yllcorner = line; line = sr.ReadLine(); line = sr.ReadLine(); + string NoData = line; + sr.Close(); + + //create input argument hashtable + System.Collections.Hashtable args = BuildArgs(omiPath); + + //set elevation file in omi + args["SurfaceElevation"] = elevTxt; + wrapper = new DiffusiveWave.Source.Wrapper(); + wrapper.nx = nx; + wrapper.ny = ny; + wrapper.hw = hw; + //Initialize Model + wrapper.Initialize(args); + + int num_rows = wrapper._sox.GetLength(0); + int num_cols = wrapper._sox.GetLength(1); + double inexcess = 0.001; + StreamWriter results_output = new StreamWriter("flood_results.csv",false); + results_output.WriteLine(wrapper._elevation.GetLength(0).ToString() + "," + wrapper._elevation.GetLength(1).ToString()); + for (int time = 1; time <= 3642; time++) + { + //inexcess = 0.01 / 3652; + //double supplied_excess = InExcess[time-1] * num_cols * num_rows; + + //create stage array with values of zero + double[] stage = new double[wrapper._sox.GetLength(0) * wrapper._sox.GetLength(1)]; + + //create excess array + double[] excess = new double[wrapper._sox.GetLength(0) * wrapper._sox.GetLength(1)]; + for (int i = 0; i <= excess.Length - 1; i++) + excess[i] = inexcess; + //excess[i] = InExcess[time-1]; + + //set excess and stage values + IValueSet Excess = new ScalarSet(excess); + wrapper.SetValues("Excess Rainfall", "SmithBranch", Excess); + IValueSet Stage = new ScalarSet(stage); + wrapper.SetValues("Stage", "SmithBranch", Stage); + + //run timestep + wrapper.PerformTimeStep(); + + //get result values + ScalarSet result = (ScalarSet)wrapper.GetValues("Excess Rainfall", "Smith Branch"); + + + //create output file and write some header data + //StreamWriter sw = new StreamWriter(id + "_" + time * wrapper.GetTimeStep() + ".txt", false); + //sw.WriteLine("ncols " + wrapper._sox.GetLength(1)); + //sw.WriteLine("nrows " + wrapper._sox.GetLength(0)); + //sw.WriteLine(xllcorner); + //sw.WriteLine(yllcorner); + //sw.WriteLine("cellsize " + wrapper._cellsize); + //sw.WriteLine(NoData); + + + //get number of rows and cols, assuming a squar matrix + int elem = Convert.ToInt32(Math.Sqrt(Convert.ToDouble(result.Count))); + + //Write the output results to the screen + Debug.WriteLine("Excess Rainfall Results: current time= " + (time*wrapper._dt).ToString() + "seconds"); + double calculated_excess = 0; + + results_output.WriteLine((time * wrapper._dt).ToString()); + + for (int row = 0; row <= num_rows - 1; row++) + { + for (int col = 0; col <= num_cols - 1; col++) + { + calculated_excess += result.data[row * num_cols + col]; + + string value = null; + if (result.data[row * num_cols + col] == 0) + value = "-9999"; + else + value = result.data[row * num_cols + col].ToString("F7"); + + + //Debug.Write(value + " "); + //sw.Write(value + " "); + results_output.Write(value + ","); + } + + //Debug.Write("\n"); + results_output.Write("\n"); + //if (row != num_rows - 1) + // sw.Write("\n"); + + } + //double initialExcess = InExcess[time-1] * result.Count; + //Debug.Write("Total excess on floodplain = " + calculated_excess.ToString() + ". Initial excess = " + supplied_excess.ToString()); + //Debug.WriteLine("\n Stage Input Test has completed successfully"); + //Debug.WriteLine("----------"); + //sw.Close(); + inexcess = 0; + + } + + results_output.Close(); + + //Teardown the component + wrapper.Finish(); + + } + + [TestCase("Discretization Test", "../../Data/elev5meter_test.txt", 0.05, 0.05, 0.01, new double[5] { .01, 0, 0, 0, 0 })] + public void Discretization(string id, string elevTxt, double nx, double ny, double hw, double[] InExcess) + { + StreamReader sr = new StreamReader(elevTxt); + string line = sr.ReadLine(); + + int cols = Convert.ToInt32(line.Split(' ')[line.Split(' ').Length - 1]); line = sr.ReadLine(); + int rows = Convert.ToInt32(line.Split(' ')[line.Split(' ').Length - 1]); line = sr.ReadLine(); line = sr.ReadLine(); line = sr.ReadLine(); + int cellsize = Convert.ToInt32(line.Split(' ')[line.Split(' ').Length - 1]); line = sr.ReadLine(); line = sr.ReadLine(); + double[,] elevations = new double[rows, cols]; + int i = 0; + while (!String.IsNullOrEmpty(line)) + { + string[] elev = line.Split(' '); + for (int j = 0; j <= elev.Length - 2; j++) + if(!String.IsNullOrEmpty(elev[j])) + elevations[i, j] = Convert.ToDouble(elev[j]); + + line = sr.ReadLine(); + i++; + } + + sr.Close(); + + DiffusiveWave.Source.Discretization euler = new DiffusiveWave.Source.Euler(cellsize, 0.083, rows * cols, elevations); + //create a new instance of the euler class + //DiffusiveWave.Source.Euler euler = new DiffusiveWave.Source.Euler(cellsize, 0.083, rows * cols, elevations); + + //create excess + double[] excess = new double[rows*cols]; + for(int e=0; e<=rows*cols-1; e++) + { + excess[e] = 0.01; + } + euler.Sox = new double[rows, cols]; + euler.Soy = new double[rows, cols]; + euler.Head = new double[rows* cols]; + //run CreateStiffness + euler.CreateStiffness(new double[rows], excess, new double[rows * cols], new double[rows * cols], 0); + + StreamWriter sw = new StreamWriter("./Stiffness.txt"); + double[,] A = euler.A; + for (int r = 0; r <= A.GetLength(0) - 1; r++) + { + for (int c = 0; c <= A.GetLength(1) - 1; c++) + { + sw.Write(A[r, c].ToString("F7") + " "); + } + sw.Write("\n"); + } + sw.Close(); + + sw = new StreamWriter("./Source.txt"); + double[] q = euler.q; + for (int r = 0; r <= q.GetLength(0) - 1; r++) + { + sw.Write(q[r].ToString("F7") + " "); + if((r+1) %(cols) == 0) + sw.Write("\n"); + } + sw.Close(); + + } + + [Test] + public void TestSuccessiveOverRelaxation() + { + Debug.WriteLine("\n\n---------------------------------------------------"); + Debug.WriteLine("Running the 'SOR' Test"); + Debug.WriteLine("---------------------------------------------------"); + + //DiffusiveWave.Source.Engine engine = new DiffusiveWave.Source.Engine(0.02); + DiffusiveWave.Source.Engine2 engine = new DiffusiveWave.Source.Engine2(0.02, 0.083); + //create A matrix + double[,] A = new double[4,4]{ + {10,-1,2,0}, + {-1,11,-1,3}, + {2,-1,10,-1}, + {0,3,-1,8} + }; + + //create B matrix + double[] b = new double[4] { 6,25,-11,15 }; + + //define known results + double[] x_known = new double[4]{1,2,-1,1}; + + engine.A = A; + engine.q = b; + + //call SOR + double[] x_calc = engine.SuccessiveOverRelaxation(); + + + for (int i = 0; i <= x_known.GetLength(0)-1; i++) + { + Assert.IsTrue(Math.Round(x_calc[i], 3) == x_known[i],"Known value = "+x_known[i].ToString()+ + ", calculated value = " + Math.Round(x_calc[i], 3).ToString()); + } + Debug.WriteLine("SOR Input Test has completed successfully"); + } + + [Test] + public void Finish() + { + + + } + + [Test] + public void BuildElementSet() + { + Debug.WriteLine("\n\n---------------------------------------------------"); + Debug.WriteLine("Running the 'BuildElementSet' Test"); + Debug.WriteLine("---------------------------------------------------"); + + + string elevationTXT = "../../Data/elevation.txt"; + DiffusiveWave.Source.Engine engine = new DiffusiveWave.Source.Engine(0.02); + ElementSet e; + double[,] sox, soy; + + engine.BuildElementSet(elevationTXT, "none", "test element set", "test", out e, out sox, out soy); + double ElementCount = sox.GetLength(0) * sox.GetLength(1); + Assert.IsTrue(e.ElementCount == ElementCount, "Element count equals " + e.ElementCount + ", not "+ElementCount.ToString()); + Assert.IsTrue(e.ElementType == ElementType.XYPoint, "Element type is " + e.ElementType + ", not XYPoint"); + + + Debug.WriteLine("BuildElementSet has completed successfully"); + + //Teardown the component + wrapper.Finish(); + + + } + + + [TestCase("complexTerrain_compact", "../../Data/elevation_compact.txt", 0.05, 0.05, 0.007, .011)] + public void ComplexTerrain(string id, string elevTXT, double nx, double ny, double hw, double InStage) + { + //create input argument hashtable + System.Collections.Hashtable args = BuildArgs(omiPath); + //set elevation file in omi + args["SurfaceElevation"] = elevTXT; + + //get xllcorner and yll corner for output file + StreamReader sr = new StreamReader(elevTXT); + string line = sr.ReadLine(); line = sr.ReadLine(); line = sr.ReadLine(); + string xllcorner = line; line = sr.ReadLine(); + string yllcorner = line;line = sr.ReadLine();line = sr.ReadLine(); + string NoData = line; + sr.Close(); + + wrapper.nx = nx; + wrapper.ny = ny; + wrapper.hw = hw; + //Initialize Model + wrapper.Initialize(args); + + //create stage input array + double[] stage = new double[wrapper._sox.GetLength(0) * wrapper._sox.GetLength(1)]; + for (int i = 0; i <= wrapper._sox.GetLength(0)-1; i++) + stage[i * wrapper._sox.GetLength(0)] = InStage; + + for (int time = 1; time <= 2; time++) + { + + //set stage values + IValueSet Stage = new ScalarSet(stage); + wrapper.SetValues("Stage", "SmithBranch", Stage); + + //run timestep + wrapper.PerformTimeStep(); + + ScalarSet excess = (ScalarSet)wrapper.GetValues("Excess Rainfall", "Smith Branch"); + + //get number of rows and cols, assuming a squar matrix + int elem = Convert.ToInt32(Math.Sqrt(Convert.ToDouble(excess.Count))); + + //create output file and write some header data + StreamWriter sw = new StreamWriter(id + "_" + time*wrapper.GetTimeStep() + ".txt", false); + sw.WriteLine("ncols " + wrapper._sox.GetLength(1)); + sw.WriteLine("nrows " + wrapper._sox.GetLength(0)); + sw.WriteLine(xllcorner); + sw.WriteLine(yllcorner); + sw.WriteLine("cellsize " + wrapper._cellsize); + sw.Write(NoData); + + //Write the output results to the screen + Debug.WriteLine("Excess Rainfall Results"); + Queue s = new Queue(stage); + double sum = 0; + int c = 1 ; + for (int i = 0; i <= excess.Count - 1; i++) + { + string value = excess.data[i].ToString("F7"); + + if (excess.data[i] == 0) + value = "-9999"; + + Debug.Write(value + "\t\t"); + sw.Write(value + " "); + + if (c == wrapper._sox.GetLength(1)) + { + //write a new line + Debug.Write("\n"); + sw.Write("\n"); + //reset c + c = 1; + } + else + { + c++; + } + + sum += excess.data[i]; + + } + + Debug.Write("\nTotal head on floodplain = " + sum.ToString() + ". \n"); + Debug.WriteLine("\nStage Input Test has completed successfully"); + sw.Close(); + + } + //Teardown the component + wrapper = null; + + } + + + + //[TestCase("complexTerrain_compact", "../../Data/elevation_compact.txt", 0.05, 0.05, 0.007, .011)] + [TestCase("complexTerrain_medium", "../../Data/elevation_med.txt", 0.05, 0.05, 0.03, .035)] + public void ComplexTerrain_RefactoredCode(string id, string elevTXT, double nx, double ny, double hw, double InStage) + { + //create input argument hashtable + System.Collections.Hashtable args = BuildArgs(omiPath); + //set elevation file in omi + args["SurfaceElevation"] = elevTXT; + + //get xllcorner and yll corner for output file + StreamReader sr = new StreamReader(elevTXT); + string line = sr.ReadLine(); line = sr.ReadLine(); line = sr.ReadLine(); + string xllcorner = line; line = sr.ReadLine(); + string yllcorner = line; line = sr.ReadLine(); line = sr.ReadLine(); + string NoData = line; + sr.Close(); + DiffusiveWave.Source.Wrapper2 wrapper = new DiffusiveWave.Source.Wrapper2(); + wrapper.nx = nx; + wrapper.ny = ny; + wrapper.hw = hw; + //Initialize Model + wrapper.Initialize(args); + + //create stage input array + double[] stage = new double[wrapper.rows * wrapper.cols]; + for (int i = 0; i <= wrapper.rows - 1; i++) + stage[i * wrapper.cols] = InStage; + int print_num = 10; + int print_count = 1; + bool print = true; + for (int time = 1; time <= 300; time++) + { + + //set stage values + IValueSet Stage = new ScalarSet(stage); + wrapper.SetValues("Stage", "SmithBranch", Stage); + + //run timestep + wrapper.PerformTimeStep(); + + ScalarSet excess = (ScalarSet)wrapper.GetValues("Excess Rainfall", "Smith Branch"); + + //get number of rows and cols, assuming a square matrix + int elem = Convert.ToInt32(Math.Sqrt(Convert.ToDouble(excess.Count))); + if (print_count == print_num) + print = true; + + if (print) + { + //create output file and write some header data + StreamWriter sw = new StreamWriter("../../Data/model_output/" + id + "_" + (time * wrapper.GetTimeStep()).ToString("F2") + ".txt", false); + sw.WriteLine("ncols " + wrapper.cols); + sw.WriteLine("nrows " + wrapper.rows); + sw.WriteLine(xllcorner); + sw.WriteLine(yllcorner); + sw.WriteLine("cellsize " + wrapper._cellsize); + sw.WriteLine(NoData); + + //Write the output results to the screen + //Debug.WriteLine("Excess Rainfall Results"); + Queue s = new Queue(stage); + double sum = 0; + //int k=0; + int c = 1; + for (int i = 0; i <= excess.Count - 1; i++) + { + //string value = (excess.data[i] + wrapper._elevation[k,i - k*wrapper._elevation.GetLength(1)]).ToString("F7"); + string value = excess.data[i].ToString("F7"); + + if (excess.data[i] == 0) + value = "-9999"; + + //Debug.Write(value + "\t\t"); + sw.Write(value + " "); + + if (c == wrapper.cols) + { + //write a new line + //Debug.Write("\n"); + sw.Write("\n"); + //reset c + c = 1; + } + else + { + c++; + } + + sum += excess.data[i]; + + } + sw.Close(); + if(time != 1) + print_count = 1; + print = false; + } + Debug.WriteLine("Time Step " + (time).ToString() + " completed..."); + print_count++; + } + //Teardown the component + wrapper = null; + Debug.WriteLine("\n--------------------------------------------"); + Debug.WriteLine("Stage Input Test has completed successfully"); + } + + //TODO: + //Test that inputs can be applied to specific elements in the calculation grid! + + private System.Collections.Hashtable BuildArgs(string omi) + { + System.Collections.Hashtable args = new System.Collections.Hashtable(); + + //read arguments from omi + XmlDocument doc = new XmlDocument(); + doc.Load(omi); + + //get root + XmlElement root = doc.DocumentElement; + + //get arguments + foreach (XmlNode arg in root.ChildNodes[0].ChildNodes) + { + + //get argument name + string key = null; + string[] element = arg.OuterXml.Split(' '); + foreach (string e in element) + { + + if (e.Split('=')[0] == "Key") + { + key = (e.Split('=')[1].Remove(0, 1)).Remove(e.Split('=')[1].Length - 2, 1); + //string value + } + else if (e.Split('=')[0] == "Value") + { + string value = "../../Data" + (e.Split('=')[1].Remove(0, 1)).Remove(e.Split('=')[1].Length - 2, 1); + args.Add(key, value); + break; + } + + + } + } + return args; + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/UnitTest.csproj b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/UnitTest.csproj new file mode 100644 index 00000000..b6341e0e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/DiffusiveWave/Test/UnitTest.csproj @@ -0,0 +1,96 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {39E2ACDB-3B4B-4097-ADA8-171FC781F03A} + Library + Properties + UnitTest + UnitTest + v3.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\..\..\..\..\..\Program Files\NUnit 2.5.7\bin\net-2.0\framework\nunit.framework.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Sdk.Backbone.dll + True + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + True + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Sdk.Wrapper.dll + True + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\OpenMI.Standard.dll + True + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + {EB47C62A-9858-418C-BC83-0122BD082064} + DiffusiveWave + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/GreenAmpt.omi b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/GreenAmpt.omi new file mode 100644 index 00000000..06da6434 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/GreenAmpt.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/Help.txt b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/Help.txt new file mode 100644 index 00000000..7e186cab --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/Help.txt @@ -0,0 +1,16 @@ +To test the functionality of this component run the GreenAmpt Test.cs. +This supplies sample input values and outputs the result to the Output window. + + The finish method utilizes the new functionality of the SMW.Utilities class, by loading the +results into ODM. The default properties required to load into ODM are: + _server = "CE-51\\SQLEXPRESS" + _database = "OD" + _user = "sa" + _password = "sa" + _file = "" + _log = "log.txt" +Change these to reflect your system, by setting them within Finish(). + + + Two addtional projects are included for debugging purposes, Numerics and SMW. +The purpose of the Numerics project is to assist in solving the Infiltration equation. \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/config.xml b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/config.xml new file mode 100644 index 00000000..1d76d376 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/config.xml @@ -0,0 +1,64 @@ + + + + + + Testing Green Ampt + Example 6.15 in Water Resources Engineering, David A. Chin + .\elements.shp + 1 + + + Pe + Excess Precip + + + Length + 1 + + + + mm + millimeters + 1 + 0 + + Scalar + + + + + Test + Example 6.15 in Water Resources Engineering, David A. Chin + 1 + .\elements.shp + + + P + Rainfall + + + 1 + Length + + + + mm/h + millimeters per hour + 1 + 0 + + Scalar + + + + + 05/29/2009 1:00:00 + 05/29/2009 2:00:00 + 600 + + + GreenAmpt Infiltration + none + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/elements.dbf b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/elements.dbf new file mode 100644 index 00000000..5881acd8 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/elements.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/elements.sbn b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/elements.sbn new file mode 100644 index 00000000..8d8160da Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/elements.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/elements.sbx b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/elements.sbx new file mode 100644 index 00000000..0ec902e0 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/elements.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/elements.shp b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/elements.shp new file mode 100644 index 00000000..6348db60 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/elements.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/elements.shx b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/elements.shx new file mode 100644 index 00000000..3735b8d7 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/elements.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/output.csv b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/output.csv new file mode 100644 index 00000000..ea6fb4c3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Data/output.csv @@ -0,0 +1,7 @@ +DataValue,ValueAccuracy,LocalDateTime,DateTimeUTC,SiteCode,SiteName,Latitude,Longitude,LatLongDatumID,Elevation_m,VerticalDatum,LocalX,LocalY,LocalProjectionID,PosAccuracy_m,SiteState,County,Comments,MethodDescription,MethodLink,QualifierCode,QualifierDescription,VariableCode,VariableName,Speciation,VariableUnitsID,SampleMedium,ValueType,IsRegular,TimeSupport,TimeUnitsID,DataType,GeneralCategory,NoDataValue,OffsetUnitsID,OffsetDescription,QualityControlLevelCode,Definition,Explanation,Organization,SourceDescription,SourceLink,ContactName,Phone,Email,Address,City,SourceState,ZipCode,Citation,TopicCategory,Title,Abstract,ProfileVersion,MetadataLink,SampleType,LabSampleCode,LabName,LabOrganization,LabMethodName,LabMethodDescription,LabMethodLink,OffsetValue,CensorCode +0,1,5/29/2009 1:00:00 AM, 5/29/2009 5:00:00 AM,1 ,GreenAmpt Infiltration,41.718473,-111.946402,2,0,NGVD29,421276.323,4618952.04,105,,SC,Richland,none,Component Modeling,http://www.campbellsci.com,,,3,Streamflow,Not Applicable,35,Other,Field Observation,1,30,102,Incremental,Hydrology,-9999,,,0,none,none,Universit of South Carolina,Continuous,none,unknown,unknown,unknown,unknown,unknown,unknown,unknown,none,inlandWaters,none,none,none,,,,,,,,,,nc +0,1,5/29/2009 1:10:00 AM, 5/29/2009 5:10:00 AM,1 ,GreenAmpt Infiltration,41.718473,-111.946402,2,0,NGVD29,421276.323,4618952.04,105,,SC,Richland,none,Component Modeling,http://www.campbellsci.com,,,3,Streamflow,Not Applicable,35,Other,Field Observation,1,30,102,Incremental,Hydrology,-9999,,,0,none,none,Universit of South Carolina,Continuous,none,unknown,unknown,unknown,unknown,unknown,unknown,unknown,none,inlandWaters,none,none,none,,,,,,,,,,nc +0,1,5/29/2009 1:20:00 AM, 5/29/2009 5:20:00 AM,1 ,GreenAmpt Infiltration,41.718473,-111.946402,2,0,NGVD29,421276.323,4618952.04,105,,SC,Richland,none,Component Modeling,http://www.campbellsci.com,,,3,Streamflow,Not Applicable,35,Other,Field Observation,1,30,102,Incremental,Hydrology,-9999,,,0,none,none,Universit of South Carolina,Continuous,none,unknown,unknown,unknown,unknown,unknown,unknown,unknown,none,inlandWaters,none,none,none,,,,,,,,,,nc +2.2154262584145,1,5/29/2009 1:30:00 AM, 5/29/2009 5:30:00 AM,1 ,GreenAmpt Infiltration,41.718473,-111.946402,2,0,NGVD29,421276.323,4618952.04,105,,SC,Richland,none,Component Modeling,http://www.campbellsci.com,,,3,Streamflow,Not Applicable,35,Other,Field Observation,1,30,102,Incremental,Hydrology,-9999,,,0,none,none,Universit of South Carolina,Continuous,none,unknown,unknown,unknown,unknown,unknown,unknown,unknown,none,inlandWaters,none,none,none,,,,,,,,,,nc +4.85453454042243,1,5/29/2009 1:40:00 AM, 5/29/2009 5:40:00 AM,1 ,GreenAmpt Infiltration,41.718473,-111.946402,2,0,NGVD29,421276.323,4618952.04,105,,SC,Richland,none,Component Modeling,http://www.campbellsci.com,,,3,Streamflow,Not Applicable,35,Other,Field Observation,1,30,102,Incremental,Hydrology,-9999,,,0,none,none,Universit of South Carolina,Continuous,none,unknown,unknown,unknown,unknown,unknown,unknown,unknown,none,inlandWaters,none,none,none,,,,,,,,,,nc +0,1,5/29/2009 1:50:00 AM, 5/29/2009 5:50:00 AM,1 ,GreenAmpt Infiltration,41.718473,-111.946402,2,0,NGVD29,421276.323,4618952.04,105,,SC,Richland,none,Component Modeling,http://www.campbellsci.com,,,3,Streamflow,Not Applicable,35,Other,Field Observation,1,30,102,Incremental,Hydrology,-9999,,,0,none,none,Universit of South Carolina,Continuous,none,unknown,unknown,unknown,unknown,unknown,unknown,unknown,none,inlandWaters,none,none,none,,,,,,,,,,nc diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/GreenAmpt.sln b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/GreenAmpt.sln new file mode 100644 index 00000000..b01610b6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/GreenAmpt.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GreenAmpt", "Source\GreenAmpt.csproj", "{296AB03F-179E-438D-AB7F-C89C625CF828}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GreenAmptTest", "Test\GreenAmptTest.csproj", "{1AEA7599-7CB7-47A2-8EE0-F4D6C1552A05}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {296AB03F-179E-438D-AB7F-C89C625CF828}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {296AB03F-179E-438D-AB7F-C89C625CF828}.Debug|Any CPU.Build.0 = Debug|Any CPU + {296AB03F-179E-438D-AB7F-C89C625CF828}.Release|Any CPU.ActiveCfg = Release|Any CPU + {296AB03F-179E-438D-AB7F-C89C625CF828}.Release|Any CPU.Build.0 = Release|Any CPU + {1AEA7599-7CB7-47A2-8EE0-F4D6C1552A05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1AEA7599-7CB7-47A2-8EE0-F4D6C1552A05}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1AEA7599-7CB7-47A2-8EE0-F4D6C1552A05}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1AEA7599-7CB7-47A2-8EE0-F4D6C1552A05}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Source/GreenAmpt.csproj b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Source/GreenAmpt.csproj new file mode 100644 index 00000000..8fa5604e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Source/GreenAmpt.csproj @@ -0,0 +1,115 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {296AB03F-179E-438D-AB7F-C89C625CF828} + Library + Properties + GreenAmpt + GreenAmpt + + + + + 3.5 + v4.0 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + False + ..\..\..\Utilities\SharpMap\SharpMap.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + {41D16632-EC8E-4F82-8CB2-0346481959C3} + Numerics + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Source/GreenAmptMethod.cs b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Source/GreenAmptMethod.cs new file mode 100644 index 00000000..91d02b5c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Source/GreenAmptMethod.cs @@ -0,0 +1,296 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Text; +using System.Xml; +using SMW; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using SharpMap; +using Numerics; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using System.Collections; +//---------------------------------------------------------------------------------- +// NOTES: +//This algorithm was developed from the derivation of the Green-Ampt method supplied +//within "Water-Resources Engineering" David A. Chin (2000) Prentice-Hall Inc. Upper +//Saddle River, New Jersey +//---------------------------------------------------------------------------------- + +//---------------------------------------------------------------------------------- +//---------------------------------------------------------------------------------- +// Input parameters included within elements.shp: +// 1.) saturated hydraulic conductivity[[mm/h] +// 2.) average suction head [mm] +// 3.) porosity +// 4.) field capacity +// 5.) wilting point +// 6.) depression storage [mm] + +// Input exchange item needs to be in mm/hr + +//---------------------------------------------------------------------------------- +//---------------------------------------------------------------------------------- + +namespace GreenAmpt +{ + public class GreenAmptMethod : SMW.Wrapper + { + public DataTable _elementValues = new DataTable(); + double _dt; + double[] _F; + double[] _cumStorage; + double _T, _tp1, _tp2, _infil, _Excess; + float _Ks, _n, _FieldCap, _Wilting, _Phi, _DepStor, _theta; + bool[] PondingCalculated; + ArrayList _DateTimes = new ArrayList(); + ArrayList _Vals = new ArrayList(); + string _outDir = null; + + public override void Finish() + { + SMW.ODM odmUtils = new ODM(); + //Utilities utils = new Utilities(); + string outputPath; + + if (_outDir != null) + outputPath = _outDir + "/GreenAmpt_output.csv"; + else + outputPath = "../GreenAmpt_output.csv"; + + //------ Create ODM csv ----- + + if (_Vals.Count > 0) + { + //Set Datetimes + odmUtils.DateTimes = _DateTimes; + //Set Values + odmUtils.Values = _Vals; + //Set Variable + odmUtils.VariableName = "Streamflow"; + //Set Corresponding Variable Code + odmUtils.VariableCode = "3"; + //Set Site Name + string siteName = this.GetModelID().ToString(); + odmUtils.SiteName = siteName; + //Select a Unique Site ID + odmUtils.SiteCode = "40"; + //Set CSV Path + odmUtils.CSVPath = System.Environment.CurrentDirectory; + //Write CSV file + odmUtils.CreateODMcsv(); + Console.WriteLine("ODM .csv has been written"); + //Write BAT file + odmUtils.CreateBat(); + Console.WriteLine("ODM .bat has been written"); + //Load CSV into ODM by executing the BAT file + odmUtils.LoadIntoODM(); + Console.WriteLine("Data has been loaded"); + } + + + } + + public override void Initialize(System.Collections.Hashtable properties) + { + string configFile = null; + + //set the config path and output directory from the *.omi file. + foreach (DictionaryEntry p in properties) + { + if (p.Key.ToString() == "ConfigFile") + configFile = (string)properties["ConfigFile"]; + else if (p.Key.ToString() == "OutDir") + _outDir = (string)properties["OutDir"]; + + + } + + SetVariablesFromConfigFile(configFile); + SetValuesTableFields(); + + + // --- setup elementValues DataTable to store element attributes from elements.shp + _elementValues.Columns.Add("Watershed", typeof(int)); + _elementValues.Columns.Add("Ks", typeof(float)); + _elementValues.Columns.Add("SuctionHead", typeof(float)); + _elementValues.Columns.Add("Porosity", typeof(float)); + _elementValues.Columns.Add("FieldCapacity", typeof(float)); + _elementValues.Columns.Add("WiltingPoint", typeof(float)); + _elementValues.Columns.Add("DepressionStorage", typeof(float)); + _elementValues.Columns.Add("F", typeof(float)); //Cumulative infiltration + + //Get shapefile path + XmlDocument doc = new XmlDocument(); + doc.Load(configFile); + XmlElement root = doc.DocumentElement; + XmlNode elementSet = root.SelectSingleNode("//InputExchangeItem//ElementSet"); + string shapefilePath = elementSet["ShapefilePath"].InnerText; + + //Get watershed properties from elements.shp + SharpMap.Layers.VectorLayer myLayer = new SharpMap.Layers.VectorLayer("elements_layer"); + myLayer.DataSource = new SharpMap.Data.Providers.ShapeFile(shapefilePath); + myLayer.DataSource.Open(); + + //initialize cumulative infiltration + _F = new double[myLayer.DataSource.GetFeatureCount()]; + //initialize cumulative storage + //_TotStor = new double[myLayer.DataSource.GetFeatureCount()]; + _cumStorage = new double[myLayer.DataSource.GetFeatureCount()]; + for (uint i = 0; i < myLayer.DataSource.GetFeatureCount(); i++) + { + SharpMap.Data.FeatureDataRow feat = myLayer.DataSource.GetFeature(i); + DataTable att = feat.Table; + + object Watershed = feat.ItemArray[feat.Table.Columns.IndexOf("Id")]; + object Ks = feat.ItemArray[feat.Table.Columns.IndexOf("Ks")]; + object SuctionHead = feat.ItemArray[feat.Table.Columns.IndexOf("Suction")]; + object Porosity = feat.ItemArray[feat.Table.Columns.IndexOf("Porosity")]; + object FieldCapacity = feat.ItemArray[feat.Table.Columns.IndexOf("FieldCapac")]; + object WiltingPoint = feat.ItemArray[feat.Table.Columns.IndexOf("WiltingPt")]; + object DepressionStorage = feat.ItemArray[feat.Table.Columns.IndexOf("DepStorage")]; + _elementValues.LoadDataRow(new object[] { Watershed, Ks, SuctionHead, Porosity, FieldCapacity, WiltingPoint, DepressionStorage }, true); + _F[i] = 0.0; + //_TotStor[i] = 0.0; + _cumStorage[i] = 0.0; + } + // dt in hours + _dt = this.GetTimeStep() / 3600; + _F = new double[myLayer.DataSource.GetFeatureCount()]; + + + PondingCalculated = new bool[myLayer.DataSource.GetFeatureCount()]; + + } + + public override bool PerformTimeStep() + { + //reading the input exchange items Quantatiy and ID + ScalarSet precip = (ScalarSet)this.GetValues(this.GetInputExchangeItem(0).Quantity.ID, this.GetInputExchangeItem(0).ElementSet.ID); + double[] Fp = new double[precip.Count]; + //double[] F = new double[precip.Count]; + double[] Runoff = new double[precip.Count]; + double[] cumulative_infiltration = new double[precip.Count]; + + for (int i = 0; i <= precip.Count - 1; i++) + { + + //Get input values from elementValues datatable + _Ks = Convert.ToSingle(_elementValues.Rows[i]["Ks"]); + _n = Convert.ToSingle(_elementValues.Rows[i]["Porosity"]); + _FieldCap = Convert.ToSingle(_elementValues.Rows[i]["FieldCapacity"]); + _Wilting = Convert.ToSingle(_elementValues.Rows[i]["WiltingPoint"]); + _Phi = Convert.ToSingle(_elementValues.Rows[i]["SuctionHead"]); + _DepStor = Convert.ToSingle(_elementValues.Rows[i]["DepressionStorage"]); + _theta = (float).5 * (_Wilting + _FieldCap); + + //Calculate infiltration capacity + Fp[i] = _Ks + (_Ks * (_n - _theta) * _Phi) / _F[i]; + + + //Determine how much rainfall will infiltrate + if (precip.data[i] <= _Ks) + { + //All rainfall will be absorbed + _F[i] += precip.data[i] * _dt; + _Excess = 0.0; + //Console.WriteLine("Cumulative Infiltration: " + _F[i].ToString()); + } + else + { + if (PondingCalculated[i] == false) + { + //Calculate the time ponding occurs + calculatePonding(precip.data[i], _F[i]); + PondingCalculated[i] = true; + } + + + Numerics.Numerics solver = new Numerics.Numerics(); + Dictionary Results = new Dictionary(); + + double x1 = 0; + double x2 = 50; + + double fx1 = fval(x1); + double fx2 = fval(x2); + double e = 1; + + while (e > 0.000001) + { + Results = solver.SecantMethod(fx1, x1, fx2, x2); + e = Results["error"]; + x1 = Results["x1"]; + x2 = Results["x2"]; + fx1 = fval(x1); + fx2 = fval(x2); + } + + + _Excess = _F[i] + precip.data[i] * _dt - x1; + _F[i] = x1; + } + + //Determine how much rainfall will become depression storage + if ((_DepStor - _cumStorage[i]) > 0.0) + { + if (_Excess >= (_DepStor - _cumStorage[i])) + { + _Excess -= _DepStor - _cumStorage[i]; + _cumStorage[i] = _DepStor; + } + else + { + _cumStorage[i] += _Excess; + _Excess = 0.0; + } + } + + Runoff[i] = _Excess; + cumulative_infiltration[i] = _cumStorage[i]; + + //Add values to DateTimes and Vals, for ODM writeout in Finish() + _Vals.Add(_Excess); + TimeStamp t = (TimeStamp)this.GetCurrentTime(); + DateTime T = CalendarConverter.ModifiedJulian2Gregorian(t.ModifiedJulianDay); + _DateTimes.Add(T); + + + } + //Console.WriteLine("{0:F2} \t\t {1:F3} \t\t {2:F0} \t\t {3:F2} \t\t {4:F2} \t\t {5:F2} ", _F[0], _dt, precip.data[0], precip.data[0] * _dt, _cumStorage[0], _Excess); + + + //set the excess rainfall values as runoff output + string q1 = this.GetOutputExchangeItem(0).Quantity.ID; + string e1 = this.GetOutputExchangeItem(0).ElementSet.ID; + this.SetValues(q1, e1, new ScalarSet(Runoff)); + + //set the cumulative infitration storage depth + string q2 = this.GetOutputExchangeItem(1).Quantity.ID; + string e2 = this.GetOutputExchangeItem(1).ElementSet.ID; + this.SetValues(q2, e2, new ScalarSet(_F)); + + _T += _dt; + this.AdvanceTime(); + return true; + } + + + double fval(double x) + { + return x - (_n - _theta) * _Phi * Math.Log(1 + x / ((_n - _theta) * _Phi)) - _Ks * (_T + _dt - _tp1 + _tp2); + } + + void calculatePonding(double i, double cumInfil) + { + //Potential Infiltration (f) + double f = (_Ks * (_n - _theta) * _Phi) / (i - _Ks); + //Equivelent Infiltration time (corresponding to the potential infiltration) + double t_prime = (f - cumInfil) / i; + //Time at which ponding occurs + _tp1 = _T + t_prime; + //Time it takes for the potential infiltration to infiltrate + _tp2 = ((f - (_n - _theta) * _Phi * Math.Log(1 + f / ((_n - _theta) * _Phi))) / _Ks); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Source/GreenAmpt_LC.cs b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Source/GreenAmpt_LC.cs new file mode 100644 index 00000000..95ef250f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Source/GreenAmpt_LC.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Oatc.OpenMI.Sdk.Backbone; + +namespace GreenAmpt +{ + class GreenAmpt_LC : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + public GreenAmpt_LC() + { + _engineApiAccess = new GreenAmptMethod(); + } + protected override void SetEngineApiAccess() + { + _engineApiAccess = new GreenAmptMethod(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Source/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Source/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..c076d57e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Source/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("GreenAmpt")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("GreenAmpt")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("4e7fb425-bec4-4df4-a9a7-ceffcb9444f5")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Test/GreenAmptTest.cs b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Test/GreenAmptTest.cs new file mode 100644 index 00000000..389934ed --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Test/GreenAmptTest.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Text; +using NUnit.Framework; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard; + +namespace GreenAmpt.UnitTest +{ + + [TestFixture] + public class Test + { + GreenAmpt.GreenAmptMethod engine = new GreenAmpt.GreenAmptMethod(); + + [Test] + public void Initialize() + { + Console.WriteLine("\n ----- Beginning Initialize -----"); + + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "./configTest.xml"); + engine.Initialize(args); + + Console.WriteLine("\n ----- Initialize finished Sucessfully -----"); + } + + [Test] + public void PTS() + { + + Console.WriteLine("\n ----- Beginning Perform-Time-Step -----"); + + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "./configTest.xml"); + engine.Initialize(args); + + //Precipitation values in mm/hr, on 10 min intervals + double[] p = new double[6] { 10, 20, 80, 100, 80, 10}; + + + Console.WriteLine("F \t\t\t dt \t\t i \t\t\t i*dt \t Cumulative_Storage \t Runoff"); + for (int j = 0; j <= p.Length-1; j++) + { + double[] P = new double[1]{ p[j]}; + IValueSet Precip = new ScalarSet(P); + engine.SetValues("Rainfall", "Test", Precip); + engine.PerformTimeStep(); + ScalarSet Excess = (ScalarSet)engine.GetValues("Excess Rainfall", "Test"); + + } + + Console.WriteLine("\n ----- Perform-Time-Step finished Sucessfully -----"); + + } + + [Test] + public void Finish() + { + engine.Finish(); + } + + } +} \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Test/GreenAmptTest.csproj b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Test/GreenAmptTest.csproj new file mode 100644 index 00000000..9cf7e53d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Test/GreenAmptTest.csproj @@ -0,0 +1,125 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {1AEA7599-7CB7-47A2-8EE0-F4D6C1552A05} + Library + Properties + GreenAmptTest + GreenAmptTest + v4.0 + 512 + + + 3.5 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\GreenAmpt.dll + + + False + ..\..\..\Utilities\NUnit\nunit.framework.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Backbone.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + False + ..\..\..\Utilities\edu.SC.SMW\bin\Debug\SMW.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + Designer + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Test/GreenAmptTest.sln b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Test/GreenAmptTest.sln new file mode 100644 index 00000000..94bfa243 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Test/GreenAmptTest.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GreenAmptTest", "GreenAmptTest\GreenAmptTest.csproj", "{1AEA7599-7CB7-47A2-8EE0-F4D6C1552A05}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1AEA7599-7CB7-47A2-8EE0-F4D6C1552A05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1AEA7599-7CB7-47A2-8EE0-F4D6C1552A05}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1AEA7599-7CB7-47A2-8EE0-F4D6C1552A05}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1AEA7599-7CB7-47A2-8EE0-F4D6C1552A05}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..60028373 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/GreenAmptMethod/Test/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("GreenAmptTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("GreenAmptTest")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e679fc90-80ea-4658-86fb-ed68f6b1d5dc")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HM_Components.sln b/Source/Plugins/Plugins.HydroModeler/Components/HM_Components.sln new file mode 100644 index 00000000..1302e8b5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HM_Components.sln @@ -0,0 +1,262 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbWriter", "DbWriter\Source\DbWriter.csproj", "{1CBE4440-985E-405B-BFBE-01F0E26AD2C5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbReader", "DbReader\Source\DbReader.csproj", "{F7FC143A-18E5-428A-B79F-FC20BFFE6266}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Water_adv", "ConcentrationAdvection\Water_adv.csproj", "{26A7DA2A-53EA-4CF9-8422-F883AD3CE242}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sediment_Diff", "ConcentrationDiffusion\Source\Sediment_Diff.csproj", "{A80DE9AE-F258-4336-8697-18CBD8B4B30F}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GreenAmpt", "GreenAmptMethod\Source\GreenAmpt.csproj", "{296AB03F-179E-438D-AB7F-C89C625CF828}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoadCalculator", "LoadCalculator\LoadCalculator.csproj", "{2672B7C8-BDAC-413A-AA08-6666D5B3BC64}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "edu.SC.MuskingumMethod", "MuskingumMethod\Source\edu.SC.MuskingumMethod.csproj", "{DAB855FC-F8F0-4066-BA84-E443A4B8640A}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MuskingumDotNet", "MuskingumMethodDotNet\Source\MuskingumDotNet.csproj", "{8D8DE917-5FA3-4E7A-B167-2FD433EE6B5A}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PotantialEvapotranspiration", "PenmanMonteith\Source\PotantialEvapotranspiration.csproj", "{3A350631-7A44-47AD-8CBC-03CD4BB9176D}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PrecipitableWater", "PrecipitableWater\Source\PrecipitableWater.csproj", "{C2D86473-5017-450D-8115-5C44F55FA347}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "sourcePTPET", "PriestleyTaylor\source\sourcePTPET.csproj", "{B588386B-E1CC-4B4B-ADDD-E8A10AC1682C}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RandomInputGenerator", "RandomInputGenerator\Source\RandomInputGenerator.csproj", "{94DF6D80-6740-4DA6-A1E9-B7B6BDE1C3B2}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleComponent", "SampleComponent\SampleComponent\SampleComponent.csproj", "{B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SCSAbstractionMethod", "SCSAbstractionMethod\Source\SCSAbstractionMethod.csproj", "{4F93F5FA-C161-4FA8-B313-DE2E51418EF1}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SCSUnitHydrograph", "SCSUnitHydrographMethod\Source\SCSUnitHydrograph.csproj", "{0C53478E-B10B-4D30-A416-0D415940B713}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SolarRadiation", "SolarRadiation\source\SolarRadiation.csproj", "{D4F30A35-8C6C-45CF-B439-8C318C6C2A98}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wtmpReader", "wtmpReader\Source\wtmpReader.csproj", "{14CC9A9C-DD25-438A-9A08-B0F6B2B274DA}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiffusiveWave", "DiffusiveWave\DiffusiveWave.csproj", "{EB47C62A-9858-418C-BC83-0122BD082064}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hargreaves", "Hargreaves\Hargreaves.csproj", "{7EF6F087-E4F2-4F65-9805-DCCA45F67E25}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TopModel", "TopModel\TopModel.csproj", "{870615F2-EBC2-4F4F-B8EA-DE21E3415FB8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PhillipEquation", "PhillipEquation\PhillipEquation.csproj", "{42C235DC-95C4-4DCD-A47D-FE3317DB09E2}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMW", "..\Utilities\edu.SC.SMW\SMW.csproj", "{96C23728-CA20-47F8-A85C-AE76A31085FB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Numerics", "..\Utilities\edu.SC.Numerics\Numerics.csproj", "{41D16632-EC8E-4F82-8CB2-0346481959C3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleComponent2", "SampleComponent2\SampleComponent2\SampleComponent2.csproj", "{1F2EBAE9-51A9-4A5F-A468-2C12BFCF89EF}" + ProjectSection(ProjectDependencies) = postProject + {96C23728-CA20-47F8-A85C-AE76A31085FB} = {96C23728-CA20-47F8-A85C-AE76A31085FB} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Debug|x86.ActiveCfg = Debug|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Release|Any CPU.Build.0 = Release|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Release|x86.ActiveCfg = Release|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Debug|x86.ActiveCfg = Debug|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Release|Any CPU.Build.0 = Release|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Release|x86.ActiveCfg = Release|Any CPU + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242}.Debug|x86.ActiveCfg = Debug|Any CPU + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242}.Release|Any CPU.Build.0 = Release|Any CPU + {26A7DA2A-53EA-4CF9-8422-F883AD3CE242}.Release|x86.ActiveCfg = Release|Any CPU + {A80DE9AE-F258-4336-8697-18CBD8B4B30F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A80DE9AE-F258-4336-8697-18CBD8B4B30F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A80DE9AE-F258-4336-8697-18CBD8B4B30F}.Debug|x86.ActiveCfg = Debug|Any CPU + {A80DE9AE-F258-4336-8697-18CBD8B4B30F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A80DE9AE-F258-4336-8697-18CBD8B4B30F}.Release|Any CPU.Build.0 = Release|Any CPU + {A80DE9AE-F258-4336-8697-18CBD8B4B30F}.Release|x86.ActiveCfg = Release|Any CPU + {296AB03F-179E-438D-AB7F-C89C625CF828}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {296AB03F-179E-438D-AB7F-C89C625CF828}.Debug|Any CPU.Build.0 = Debug|Any CPU + {296AB03F-179E-438D-AB7F-C89C625CF828}.Debug|x86.ActiveCfg = Debug|Any CPU + {296AB03F-179E-438D-AB7F-C89C625CF828}.Release|Any CPU.ActiveCfg = Release|Any CPU + {296AB03F-179E-438D-AB7F-C89C625CF828}.Release|Any CPU.Build.0 = Release|Any CPU + {296AB03F-179E-438D-AB7F-C89C625CF828}.Release|x86.ActiveCfg = Release|Any CPU + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64}.Debug|x86.ActiveCfg = Debug|Any CPU + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64}.Release|Any CPU.Build.0 = Release|Any CPU + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64}.Release|x86.ActiveCfg = Release|Any CPU + {DAB855FC-F8F0-4066-BA84-E443A4B8640A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DAB855FC-F8F0-4066-BA84-E443A4B8640A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DAB855FC-F8F0-4066-BA84-E443A4B8640A}.Debug|x86.ActiveCfg = Debug|Any CPU + {DAB855FC-F8F0-4066-BA84-E443A4B8640A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DAB855FC-F8F0-4066-BA84-E443A4B8640A}.Release|Any CPU.Build.0 = Release|Any CPU + {DAB855FC-F8F0-4066-BA84-E443A4B8640A}.Release|x86.ActiveCfg = Release|Any CPU + {8D8DE917-5FA3-4E7A-B167-2FD433EE6B5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D8DE917-5FA3-4E7A-B167-2FD433EE6B5A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8D8DE917-5FA3-4E7A-B167-2FD433EE6B5A}.Debug|x86.ActiveCfg = Debug|Any CPU + {8D8DE917-5FA3-4E7A-B167-2FD433EE6B5A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8D8DE917-5FA3-4E7A-B167-2FD433EE6B5A}.Release|Any CPU.Build.0 = Release|Any CPU + {8D8DE917-5FA3-4E7A-B167-2FD433EE6B5A}.Release|x86.ActiveCfg = Release|Any CPU + {3A350631-7A44-47AD-8CBC-03CD4BB9176D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A350631-7A44-47AD-8CBC-03CD4BB9176D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A350631-7A44-47AD-8CBC-03CD4BB9176D}.Debug|x86.ActiveCfg = Debug|Any CPU + {3A350631-7A44-47AD-8CBC-03CD4BB9176D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A350631-7A44-47AD-8CBC-03CD4BB9176D}.Release|Any CPU.Build.0 = Release|Any CPU + {3A350631-7A44-47AD-8CBC-03CD4BB9176D}.Release|x86.ActiveCfg = Release|Any CPU + {C2D86473-5017-450D-8115-5C44F55FA347}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2D86473-5017-450D-8115-5C44F55FA347}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2D86473-5017-450D-8115-5C44F55FA347}.Debug|x86.ActiveCfg = Debug|Any CPU + {C2D86473-5017-450D-8115-5C44F55FA347}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2D86473-5017-450D-8115-5C44F55FA347}.Release|Any CPU.Build.0 = Release|Any CPU + {C2D86473-5017-450D-8115-5C44F55FA347}.Release|x86.ActiveCfg = Release|Any CPU + {B588386B-E1CC-4B4B-ADDD-E8A10AC1682C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B588386B-E1CC-4B4B-ADDD-E8A10AC1682C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B588386B-E1CC-4B4B-ADDD-E8A10AC1682C}.Debug|x86.ActiveCfg = Debug|Any CPU + {B588386B-E1CC-4B4B-ADDD-E8A10AC1682C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B588386B-E1CC-4B4B-ADDD-E8A10AC1682C}.Release|Any CPU.Build.0 = Release|Any CPU + {B588386B-E1CC-4B4B-ADDD-E8A10AC1682C}.Release|x86.ActiveCfg = Release|Any CPU + {94DF6D80-6740-4DA6-A1E9-B7B6BDE1C3B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {94DF6D80-6740-4DA6-A1E9-B7B6BDE1C3B2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {94DF6D80-6740-4DA6-A1E9-B7B6BDE1C3B2}.Debug|x86.ActiveCfg = Debug|Any CPU + {94DF6D80-6740-4DA6-A1E9-B7B6BDE1C3B2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {94DF6D80-6740-4DA6-A1E9-B7B6BDE1C3B2}.Release|Any CPU.Build.0 = Release|Any CPU + {94DF6D80-6740-4DA6-A1E9-B7B6BDE1C3B2}.Release|x86.ActiveCfg = Release|Any CPU + {B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}.Debug|x86.ActiveCfg = Debug|Any CPU + {B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}.Release|Any CPU.Build.0 = Release|Any CPU + {B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}.Release|x86.ActiveCfg = Release|Any CPU + {4F93F5FA-C161-4FA8-B313-DE2E51418EF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F93F5FA-C161-4FA8-B313-DE2E51418EF1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4F93F5FA-C161-4FA8-B313-DE2E51418EF1}.Debug|x86.ActiveCfg = Debug|Any CPU + {4F93F5FA-C161-4FA8-B313-DE2E51418EF1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F93F5FA-C161-4FA8-B313-DE2E51418EF1}.Release|Any CPU.Build.0 = Release|Any CPU + {4F93F5FA-C161-4FA8-B313-DE2E51418EF1}.Release|x86.ActiveCfg = Release|Any CPU + {0C53478E-B10B-4D30-A416-0D415940B713}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0C53478E-B10B-4D30-A416-0D415940B713}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C53478E-B10B-4D30-A416-0D415940B713}.Debug|x86.ActiveCfg = Debug|Any CPU + {0C53478E-B10B-4D30-A416-0D415940B713}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0C53478E-B10B-4D30-A416-0D415940B713}.Release|Any CPU.Build.0 = Release|Any CPU + {0C53478E-B10B-4D30-A416-0D415940B713}.Release|x86.ActiveCfg = Release|Any CPU + {D4F30A35-8C6C-45CF-B439-8C318C6C2A98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4F30A35-8C6C-45CF-B439-8C318C6C2A98}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4F30A35-8C6C-45CF-B439-8C318C6C2A98}.Debug|x86.ActiveCfg = Debug|Any CPU + {D4F30A35-8C6C-45CF-B439-8C318C6C2A98}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4F30A35-8C6C-45CF-B439-8C318C6C2A98}.Release|Any CPU.Build.0 = Release|Any CPU + {D4F30A35-8C6C-45CF-B439-8C318C6C2A98}.Release|x86.ActiveCfg = Release|Any CPU + {14CC9A9C-DD25-438A-9A08-B0F6B2B274DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14CC9A9C-DD25-438A-9A08-B0F6B2B274DA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14CC9A9C-DD25-438A-9A08-B0F6B2B274DA}.Debug|x86.ActiveCfg = Debug|Any CPU + {14CC9A9C-DD25-438A-9A08-B0F6B2B274DA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14CC9A9C-DD25-438A-9A08-B0F6B2B274DA}.Release|Any CPU.Build.0 = Release|Any CPU + {14CC9A9C-DD25-438A-9A08-B0F6B2B274DA}.Release|x86.ActiveCfg = Release|Any CPU + {EB47C62A-9858-418C-BC83-0122BD082064}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB47C62A-9858-418C-BC83-0122BD082064}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB47C62A-9858-418C-BC83-0122BD082064}.Debug|x86.ActiveCfg = Debug|Any CPU + {EB47C62A-9858-418C-BC83-0122BD082064}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB47C62A-9858-418C-BC83-0122BD082064}.Release|Any CPU.Build.0 = Release|Any CPU + {EB47C62A-9858-418C-BC83-0122BD082064}.Release|x86.ActiveCfg = Release|Any CPU + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25}.Debug|x86.ActiveCfg = Debug|Any CPU + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25}.Release|Any CPU.Build.0 = Release|Any CPU + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25}.Release|x86.ActiveCfg = Release|Any CPU + {870615F2-EBC2-4F4F-B8EA-DE21E3415FB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {870615F2-EBC2-4F4F-B8EA-DE21E3415FB8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {870615F2-EBC2-4F4F-B8EA-DE21E3415FB8}.Debug|x86.ActiveCfg = Debug|Any CPU + {870615F2-EBC2-4F4F-B8EA-DE21E3415FB8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {870615F2-EBC2-4F4F-B8EA-DE21E3415FB8}.Release|Any CPU.Build.0 = Release|Any CPU + {870615F2-EBC2-4F4F-B8EA-DE21E3415FB8}.Release|x86.ActiveCfg = Release|Any CPU + {42C235DC-95C4-4DCD-A47D-FE3317DB09E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42C235DC-95C4-4DCD-A47D-FE3317DB09E2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42C235DC-95C4-4DCD-A47D-FE3317DB09E2}.Debug|x86.ActiveCfg = Debug|Any CPU + {42C235DC-95C4-4DCD-A47D-FE3317DB09E2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42C235DC-95C4-4DCD-A47D-FE3317DB09E2}.Release|Any CPU.Build.0 = Release|Any CPU + {42C235DC-95C4-4DCD-A47D-FE3317DB09E2}.Release|x86.ActiveCfg = Release|Any CPU + {96C23728-CA20-47F8-A85C-AE76A31085FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96C23728-CA20-47F8-A85C-AE76A31085FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96C23728-CA20-47F8-A85C-AE76A31085FB}.Debug|x86.ActiveCfg = Debug|Any CPU + {96C23728-CA20-47F8-A85C-AE76A31085FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96C23728-CA20-47F8-A85C-AE76A31085FB}.Release|Any CPU.Build.0 = Release|Any CPU + {96C23728-CA20-47F8-A85C-AE76A31085FB}.Release|x86.ActiveCfg = Release|Any CPU + {41D16632-EC8E-4F82-8CB2-0346481959C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41D16632-EC8E-4F82-8CB2-0346481959C3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41D16632-EC8E-4F82-8CB2-0346481959C3}.Debug|x86.ActiveCfg = Debug|Any CPU + {41D16632-EC8E-4F82-8CB2-0346481959C3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41D16632-EC8E-4F82-8CB2-0346481959C3}.Release|Any CPU.Build.0 = Release|Any CPU + {41D16632-EC8E-4F82-8CB2-0346481959C3}.Release|x86.ActiveCfg = Release|Any CPU + {1F2EBAE9-51A9-4A5F-A468-2C12BFCF89EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F2EBAE9-51A9-4A5F-A468-2C12BFCF89EF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F2EBAE9-51A9-4A5F-A468-2C12BFCF89EF}.Debug|x86.ActiveCfg = Debug|Any CPU + {1F2EBAE9-51A9-4A5F-A468-2C12BFCF89EF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F2EBAE9-51A9-4A5F-A468-2C12BFCF89EF}.Release|Any CPU.Build.0 = Release|Any CPU + {1F2EBAE9-51A9-4A5F-A468-2C12BFCF89EF}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Hargreaves.csproj b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Hargreaves.csproj new file mode 100644 index 00000000..26fe933b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Hargreaves.csproj @@ -0,0 +1,83 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25} + Library + Properties + Hargreaves + Hargreaves + v4.0 + 512 + Client + + + true + full + false + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Buffer.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + + + + + + + + + + + + + + Designer + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Hargreaves.sln b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Hargreaves.sln new file mode 100644 index 00000000..50154d68 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Hargreaves.sln @@ -0,0 +1,32 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hargreaves", "Hargreaves.csproj", "{7EF6F087-E4F2-4F65-9805-DCCA45F67E25}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.csproj", "{4A71A9F5-751C-4BCE-9202-1C0FD1FB8E4A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbWriter", "..\DbWriter\Source\DbWriter.csproj", "{1CBE4440-985E-405B-BFBE-01F0E26AD2C5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25}.Release|Any CPU.Build.0 = Release|Any CPU + {4A71A9F5-751C-4BCE-9202-1C0FD1FB8E4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A71A9F5-751C-4BCE-9202-1C0FD1FB8E4A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A71A9F5-751C-4BCE-9202-1C0FD1FB8E4A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A71A9F5-751C-4BCE-9202-1C0FD1FB8E4A}.Release|Any CPU.Build.0 = Release|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..f9f7757c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Hargreaves")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("Hargreaves")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("60f13ae8-5207-4b0e-b804-d1cac6b886b9")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..243475a3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Test/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("Test")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("5d703417-bc04-4810-b107-fb398d6cc052")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Test/Test.csproj b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Test/Test.csproj new file mode 100644 index 00000000..42803f85 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Test/Test.csproj @@ -0,0 +1,83 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {4A71A9F5-751C-4BCE-9202-1C0FD1FB8E4A} + Library + Properties + Test + Test + v4.0 + 512 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\nunit.framework.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.Backbone.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\OpenMI.Standard.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + + + + + + + + + + + + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25} + Hargreaves + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Test/TestClass.cs b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Test/TestClass.cs new file mode 100644 index 00000000..57695f05 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/Test/TestClass.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Hargreaves; +using NUnit.Framework; +using SMW; +using Oatc.OpenMI.Sdk.Wrapper; +using System.Diagnostics; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard; + +namespace Test +{ + [TestFixture] + public class TestClass + { + Hargreaves.Engine hargreaves; + + [TestFixtureSetUp] + public void Initialize() + { + //---- create instance of the hargreaves model + hargreaves = new Hargreaves.Engine(); + + //---- define input arguments + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "../../../data/config.xml"); + + //---- call the initialize method + hargreaves.Initialize(args); + + Debug.WriteLine("Initialize has completed successfully"); + + } + + [Test] + public void PerformTimeStep() + { + Debug.WriteLine("\n\n---------------------------------------------------"); + Debug.WriteLine("Running the 'PerformTimeStep' Test"); + Debug.WriteLine("---------------------------------------------------"); + + //---- put data into IValueSets + IValueSet temp = new ScalarSet(new double[1] { 19 }); + IValueSet mintemp = new ScalarSet(new double[1] { 17 }); + IValueSet maxtemp = new ScalarSet(new double[1] { 21 }); + + //---- set values + hargreaves.SetValues("Temp", "Climate Station 01",temp); + hargreaves.SetValues("Min Temp", "Climate Station 01", mintemp); + hargreaves.SetValues("Max Temp", "Climate Station 01", maxtemp); + + //---- call perform time step + hargreaves.PerformTimeStep(); + + //---- read calculated results + double[] pet = ((ScalarSet)hargreaves.GetValues("PET", "Coweeta")).data; + + double chk = Math.Round(pet[0], 2); + Assert.IsTrue(chk == 1.16, "The calculated value of " + chk.ToString() + " does not equal the known value of 1.16"); + } + + [Test] + public void CalculatePET() + { + Debug.WriteLine("\n\n---------------------------------------------------"); + Debug.WriteLine("Running the 'CalculatePET' Test"); + Debug.WriteLine("---------------------------------------------------"); + + double Pet = hargreaves.CalculatePET(19, 17, 21, 0); + + double chk = Math.Round(Pet,2); + Assert.IsTrue(chk == 1.16, "The calculated value of " + chk.ToString() + " does not equal the known value of 1.16"); + } + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.dbf b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.dbf new file mode 100644 index 00000000..0fbe2102 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.prj b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.prj new file mode 100644 index 00000000..155f5ded --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.sbn b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.sbn new file mode 100644 index 00000000..a2b2de85 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.sbx b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.sbx new file mode 100644 index 00000000..d899efb2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.shp b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.shp new file mode 100644 index 00000000..f9a2977c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.shp.xml b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.shp.xml new file mode 100644 index 00000000..fb9ae587 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.shp.xml @@ -0,0 +1,3 @@ + + +2011060912300000TRUEProject C:\Temp\weather_stations.shp C:\Temp\weather_stations_Project.shp PROJCS['NAD_1983_UTM_Zone_17N',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]] #{22B652FD-59C5-438A-AFCA-1D6FD56C9F55}file://Local Area NetworkDataset copied.20060329Dataset copied.2011060808375400Dataset copied.2011060808514700Dataset copied.2011060912300000 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.shx b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.shx new file mode 100644 index 00000000..e7f6becd Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/climateStation.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/config.xml b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/config.xml new file mode 100644 index 00000000..b8e86214 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/config.xml @@ -0,0 +1,122 @@ + + + + + + Coweeta + Coweeta watershed, NC + C:\_Code\_HD\hydrodesktopHG\Source\Plugins\HydroModeler\Components\Hargreaves\data\coweeta_18.shp + 1 + + + PET + Potential Evapotranspiration + + + Length + 1 + + + T + -1 + + + + mm/day + Millimeters per day + 0.000000011574074 + 0 + + Scalar + + + + + + Climate Station 01 + Climate Station 01, near Coweeta watershed 18 in NC + C:\_Code\_HD\hydrodesktopHG\Source\Plugins\HydroModeler\Components\Hargreaves\data\climateStation.shp + 1 + + + Temp + Daily Averaged Temperature + + + Temperature + 1 + + + + Celsius + Degrees Celsius + 1 + 0 + + Scalar + + + + + + Climate Station 01 + Climate Station 01, near Coweeta watershed 18 in NC + C:\_Code\_HD\hydrodesktopHG\Source\Plugins\HydroModeler\Components\Hargreaves\data\climateStation.shp + 1 + + + Max Temp + Maximum Daily Temperature + + + Temperature + 1 + + + + Celsius + Degrees Celsius + 1 + 0 + + Scalar + + + + + + Climate Station 01 + Climate Station 01, near Coweeta watershed 18 in NC + C:\_Code\_HD\hydrodesktopHG\Source\Plugins\HydroModeler\Components\Hargreaves\data\climateStation.shp + 1 + + + Min Temp + Minimum Daily Temperature + + + Temperature + 1 + + + + Celsius + Degrees Celsius + 1 + 0 + + Scalar + + + + + + 05/29/2009 1:00:00 + 05/29/2009 2:00:00 + 3600 + + + Hargreaves PET + Potential Evapotranspiration Calculated Using the Hargreaves-Samani Method + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.dbf b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.dbf new file mode 100644 index 00000000..ad8aa44d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.prj b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.prj new file mode 100644 index 00000000..8e8ddec5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_UTM_Zone_17N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.sbn b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.sbn new file mode 100644 index 00000000..c0304f96 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.sbx b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.sbx new file mode 100644 index 00000000..f0b5ef9e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.shp b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.shp new file mode 100644 index 00000000..2df5fca4 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.shx b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.shx new file mode 100644 index 00000000..a5a3b468 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/data/coweeta_18.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/source/Engine.cs b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/source/Engine.cs new file mode 100644 index 00000000..f3b099d6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/source/Engine.cs @@ -0,0 +1,166 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using SMW; +using Oatc.OpenMI.Sdk.Wrapper; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using System.IO; + +namespace Hargreaves +{ + public class Engine : SMW.Wrapper + { + public string[] input_quantity; + public string output_quantity; + public string[] input_elementset; + public string output_elementset; + Dictionary _output; + string output_path = System.IO.Directory.GetCurrentDirectory() + "/output"; + + public Engine() + { + _output = new Dictionary(); + } + + public override void Finish() + { + if (!System.IO.Directory.Exists(output_path)) + { + System.IO.Directory.CreateDirectory(output_path); + } + + StreamWriter sw = new StreamWriter(output_path + "./hargreaves_output.txt", false); + + //write header line + sw.WriteLine("Simulation Time, PET[mm/day]"); + + //write all values + foreach (KeyValuePair kvp in _output) + { + sw.Write(String.Format("{0:MM/dd/yyyy: hh:mm tt}", kvp.Key)); + for (int i = 0; i <= kvp.Value.Length - 1; i++) + sw.Write("," + kvp.Value[i]); + sw.Write("\n"); + } + + //close file + sw.Close(); + } + + public override void Initialize(System.Collections.Hashtable properties) + { + //---- get configuration data + string config = null; + + if (properties.ContainsKey("ConfigFile")) + config = properties["ConfigFile"].ToString(); + else + throw new Exception("A configuration file must be supplied for the Hargreaves component!!!"); + + if (properties.ContainsKey("Output")) + output_path = properties["Output"].ToString(); + + //---- set smw parameters + this.SetVariablesFromConfigFile(config); + this.SetValuesTableFields(); + + //---- get exhange item attributes + //-- input exchange items + int num_inputs = this.GetInputExchangeItemCount(); + input_elementset = new string[num_inputs]; + input_quantity = new string[num_inputs]; + for(int i=0; i<= num_inputs-1; i++) + { + InputExchangeItem input = this.GetInputExchangeItem(i); + input_elementset[i] = input.ElementSet.ID; + input_quantity[i] = input.Quantity.ID; + } + + //-- output exchange items + int num_outputs = this.GetOutputExchangeItemCount(); + OutputExchangeItem output = this.GetOutputExchangeItem(num_outputs - 1); + output_elementset = output.ElementSet.ID; + output_quantity = output.Quantity.ID; + + + } + + public override bool PerformTimeStep() + { + //---- get input data + //-- temp + double[] temp = ((ScalarSet)this.GetValues(input_quantity[0], input_elementset[0])).data; + //-- max temp + double[] maxtemp = ((ScalarSet)this.GetValues(input_quantity[1], input_elementset[1])).data; + //-- min temp + double[] mintemp = ((ScalarSet)this.GetValues(input_quantity[2], input_elementset[2])).data; + + //---- calculate pet for each element + //-- get the number of elements (assuming that they're all the same) + int elemcount = this.GetInputExchangeItem(0).ElementSet.ElementCount; + double[] pet = new double[elemcount]; + for (int i = 0; i <= elemcount - 1; i++) + { + pet[i] = CalculatePET(temp[i], mintemp[i], maxtemp[i], i); + } + + //---- save output values + DateTime dt = CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)this.GetCurrentTime()).ModifiedJulianDay); + _output.Add(dt, pet); + + //---- set output values + this.SetValues(output_quantity, output_elementset, new ScalarSet(pet)); + + //---- advance to the next timestep + this.AdvanceTime(); + + return true; + } + + /// + /// Calculates the potential evapotranspiration using the Hargreaves-Samani method + /// + /// Averaged daily temperature + /// Minimum daily temperature + /// Maximum daily temperature + /// element index + /// PET in mm/day + public double CalculatePET(double T, double Tmin, double Tmax, int eid) + { + + //calc Ra from http://www.civil.uwaterloo.ca/watflood/Manual/02_03_2.htm + + //---- calculate the relative distance between the earth and sun + //-- get julien day + TimeStamp ts = (TimeStamp)this.GetCurrentTime(); + DateTime dt = CalendarConverter.ModifiedJulian2Gregorian(ts.ModifiedJulianDay); + int j = dt.DayOfYear; + double dr = 1 + 0.033 * Math.Cos((2 * Math.PI * j) / 365); + + //---- calculate the solar declination + double d = 0.4093 * Math.Sin((2 * Math.PI * j) / 365 - 1.405); + + //---- calculate the sunset hour angle + //-- get latitude in degrees + ElementSet es = (ElementSet)this.GetInputExchangeItem(0).ElementSet; + Element e = es.GetElement(eid); + double p = e.GetVertex(0).y * Math.PI / 180; + //-- calc ws + double ws = Math.Acos(-1 * Math.Tan(p) * Math.Tan(d)); + + //---- calculate the total incoming extra terrestrial solar radiation (tested against http://www.engr.scu.edu/~emaurer/tools/calc_solar_cgi.pl) + double Ra = 15.392 * dr * (ws * Math.Sin(p) * Math.Sin(d) + Math.Cos(p) * Math.Cos(d) * Math.Sin(ws)); + + //---- calculate PET (From Hargreaves and Samani 1985) + //-- calculate latent heat of vaporization (from Water Resources Engineering, David A. Chin) + double L = 2.501 - 0.002361 * T; + double PET = (0.0023 * Ra * Math.Sqrt(Tmax - Tmin) * (T + 17.8)) / L; + + return PET; + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/source/LinkableComponent.cs b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/source/LinkableComponent.cs new file mode 100644 index 00000000..2a780ccf --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/Hargreaves/source/LinkableComponent.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Hargreaves.source +{ + class LinkableComponent : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + public LinkableComponent() + { + _engineApiAccess = new Hargreaves.Engine(); + } + protected override void SetEngineApiAccess() + { + _engineApiAccess = new Hargreaves.Engine(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_1.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_1.xml new file mode 100644 index 00000000..87e00d63 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_1.xml @@ -0,0 +1,79 @@ + + + + + 0 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0.15 + 0.25 + 0.25 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_10.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_10.xml new file mode 100644 index 00000000..5f3be8b9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_10.xml @@ -0,0 +1,79 @@ + + + + + 9 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.15 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_11.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_11.xml new file mode 100644 index 00000000..ab537cf5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_11.xml @@ -0,0 +1,79 @@ + + + + + 10 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_12.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_12.xml new file mode 100644 index 00000000..d158ae98 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_12.xml @@ -0,0 +1,79 @@ + + + + + 11 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.15 + 0.25 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.25 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_13.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_13.xml new file mode 100644 index 00000000..88189300 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_13.xml @@ -0,0 +1,79 @@ + + + + + 12 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_14.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_14.xml new file mode 100644 index 00000000..436dc888 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_14.xml @@ -0,0 +1,79 @@ + + + + + 13 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_15.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_15.xml new file mode 100644 index 00000000..24c91610 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_15.xml @@ -0,0 +1,79 @@ + + + + + 14 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0.15 + 0.25 + 0.25 + 0 + 0 + 0.25 + 0 + 0 + 0 + 0 + 0 + 0 + 0.25 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_2.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_2.xml new file mode 100644 index 00000000..6a59709f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_2.xml @@ -0,0 +1,79 @@ + + + + + 1 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_3.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_3.xml new file mode 100644 index 00000000..c25c888f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_3.xml @@ -0,0 +1,79 @@ + + + + + 2 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0.15 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_4.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_4.xml new file mode 100644 index 00000000..173358e9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_4.xml @@ -0,0 +1,79 @@ + + + + + 3 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_5.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_5.xml new file mode 100644 index 00000000..7dbb5d1b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_5.xml @@ -0,0 +1,79 @@ + + + + + 4 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_6.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_6.xml new file mode 100644 index 00000000..0864f346 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_6.xml @@ -0,0 +1,79 @@ + + + + + 5 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_7.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_7.xml new file mode 100644 index 00000000..bf06a7fb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_7.xml @@ -0,0 +1,79 @@ + + + + + 6 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_8.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_8.xml new file mode 100644 index 00000000..d681fc4a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_8.xml @@ -0,0 +1,79 @@ + + + + + 7 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0.15 + 0 + 0 + 0.25 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.25 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_9.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_9.xml new file mode 100644 index 00000000..b93ab4e1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/SmithBranch/siteid_9.xml @@ -0,0 +1,79 @@ + + + + + 8 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0.15 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.25 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.25 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/rocky_branch_stage/NWIS_02169506_NWIS_00065_2008-00-10_12-07-00_2008-00-14_12-07-00.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/rocky_branch_stage/NWIS_02169506_NWIS_00065_2008-00-10_12-07-00_2008-00-14_12-07-00.xml new file mode 100644 index 00000000..5623ff7e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/rocky_branch_stage/NWIS_02169506_NWIS_00065_2008-00-10_12-07-00_2008-00-14_12-07-00.xml @@ -0,0 +1,573 @@ + + + + + NWIS:02169506 + NWIS:00065 + + + All data are provisional, and subject to revision + http://nwis.waterdata.usgs.gov/nwis/uv?format=rdb&date_format=YYYY-MM-DD&&site_no=02169506&parameter_cd=00065&date_format=YYYY-MM-DD&begin_date=2008-07-10&end_date=2008-07-14 + + + + + + + 00065 + Gage height, feet + Instantaneous + international foot + + + minute + Time + min + + 15 + + + + 1.32 + 1.29 + 1.29 + 1.27 + 1.26 + 1.24 + 1.24 + 1.23 + 1.22 + 1.22 + 1.21 + 1.20 + 1.20 + 1.19 + 1.19 + 1.19 + 1.18 + 1.17 + 1.17 + 1.16 + 1.16 + 1.16 + 1.16 + 1.16 + 1.16 + 1.17 + 1.17 + 1.16 + 1.15 + 1.14 + 1.13 + 1.13 + 1.13 + 1.13 + 1.13 + 1.12 + 1.13 + 1.12 + 1.12 + 1.12 + 1.12 + 1.12 + 1.11 + 1.11 + 1.11 + 1.10 + 1.10 + 1.10 + 1.11 + 1.10 + 1.22 + 1.14 + 1.11 + 1.10 + 1.09 + 1.13 + 1.10 + 1.09 + 1.09 + 1.09 + 1.09 + 1.08 + 1.09 + 1.08 + 1.08 + 1.08 + 1.08 + 1.08 + 1.08 + 1.08 + 1.08 + 1.08 + 1.08 + 1.08 + 1.07 + 1.07 + 1.07 + 1.09 + 1.09 + 1.09 + 1.09 + 1.09 + 1.08 + 1.08 + 1.08 + 1.09 + 1.09 + 1.09 + 1.08 + 1.08 + 1.07 + 1.07 + 1.08 + 1.07 + 1.08 + 1.07 + 1.07 + 1.07 + 1.07 + 1.07 + 1.07 + 1.08 + 1.07 + 1.07 + 1.07 + 1.07 + 1.07 + 1.07 + 1.07 + 1.07 + 1.07 + 1.07 + 1.07 + 1.07 + 1.07 + 1.07 + 1.07 + 1.08 + 1.08 + 1.08 + 1.08 + 1.07 + 1.07 + 1.07 + 1.07 + 1.07 + 1.07 + 1.06 + 1.07 + 1.07 + 1.07 + 1.06 + 1.06 + 1.06 + 1.06 + 1.19 + 1.09 + 1.07 + 1.07 + 1.06 + 1.06 + 1.06 + 1.06 + 1.06 + 1.06 + 1.07 + 1.10 + 1.10 + 1.10 + 1.08 + 1.07 + 1.06 + 1.06 + 1.07 + 1.06 + 1.06 + 1.06 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.04 + 1.05 + 1.05 + 1.05 + 1.05 + 1.04 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.04 + 1.05 + 1.05 + 1.04 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.04 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.04 + 1.05 + 1.05 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.05 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.05 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.03 + 1.04 + 1.03 + 1.03 + 1.03 + 1.04 + 1.03 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.05 + 1.04 + 1.04 + 1.05 + 1.05 + 1.04 + 1.04 + 1.04 + 1.05 + 1.04 + 1.05 + 1.05 + 1.05 + 1.04 + 1.05 + 1.05 + 1.04 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.05 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.03 + 1.04 + 1.04 + 1.04 + 1.03 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.03 + 1.04 + 1.04 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.04 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.04 + 1.03 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.05 + 1.05 + 1.05 + 1.04 + 1.04 + 1.04 + 1.04 + 1.05 + 1.05 + 1.05 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.03 + 1.03 + 1.04 + 1.04 + 1.05 + 1.05 + 1.05 + 1.05 + 1.20 + 1.27 + 1.35 + 1.28 + 1.29 + 1.26 + 1.21 + 1.17 + 1.14 + 1.11 + 1.11 + 1.11 + 1.10 + 1.09 + 1.08 + 1.08 + 1.07 + 1.07 + 1.06 + 1.06 + 1.05 + 1.05 + 1.05 + 1.04 + 1.04 + 1.04 + 1.04 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.02 + 1.03 + 1.02 + 1.02 + 1.02 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.04 + 1.03 + 1.03 + 1.03 + 1.03 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.05 + 1.05 + 1.06 + 1.05 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.04 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.03 + 1.02 + 1.02 + 1.03 + 1.03 + Provisional data subject to revision. + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/usgs_streamflow_sites/NWIS_02087183_NWIS_00060.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/usgs_streamflow_sites/NWIS_02087183_NWIS_00060.xml new file mode 100644 index 00000000..851cd31b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/usgs_streamflow_sites/NWIS_02087183_NWIS_00060.xml @@ -0,0 +1,369 @@ + + + + http://waterdata.usgs.gov/nwis/dv?&site_no=02087183&agency_cd=USGS&date_format=YYYY-MM-DD&begin_date=2000-01-01&end_date=2000-12-01&parameter_cd=00060&format=rdb + + NWIS:02087183 + NWIS:00060 + + 2000-01-01 + 2000-12-01 + + + + + + NEUSE RIVER NEAR FALLS, NC + 02087183 + + + 35.94 + -78.5808333 + + + + + 00060 + Discharge, cubic feet per second + cubic feet per second + + + 211 + 211 + 209 + 209 + 206 + 191 + 641 + 911 + 911 + 914 + 920 + 921 + 920 + 922 + 1160 + 1770 + 1960 + 1900 + 1060 + 172 + 171 + 172 + 172 + 172 + 175 + 173 + 173 + 173 + 174 + 176 + 177 + 178 + 1100 + 2010 + 2010 + 1990 + 1990 + 2060 + 2040 + 2040 + 2200 + 2490 + 2480 + 1840 + 502 + 500 + 1960 + 2630 + 2690 + 2750 + 2740 + 2740 + 2730 + 2710 + 2300 + 1190 + 962 + 959 + 951 + 949 + 944 + 964 + 635 + 477 + 476 + 474 + 312 + 223 + 225 + 225 + 226 + 227 + 201 + 159 + 159 + 159 + 161 + 161 + 162 + 163 + 163 + 1120 + 2550 + 2740 + 2700 + 2660 + 2520 + 2280 + 1290 + 829 + 824 + 820 + 814 + 426 + 170 + 169 + 168 + 178 + 185 + 183 + 183 + 185 + 185 + 185 + 579 + 1010 + 1010 + 1030 + 1030 + 1760 + 2540 + 2500 + 2510 + 2480 + 2080 + 1940 + 1560 + 969 + 609 + 331 + 328 + 1210 + 2030 + 2000 + 1320 + 543 + 551 + 561 + 544 + 526 + 529 + 505 + 409 + 363 + 359 + 357 + 334 + 287 + 214 + 153 + 153 + 153 + 155 + 154 + 155 + 156 + 156 + 153 + 152 + 153 + 159 + 163 + 165 + 166 + 165 + 164 + 164 + 165 + 164 + 165 + 166 + 164 + 165 + 165 + 149 + 127 + 129 + 127 + 131 + 132 + 133 + 133 + 131 + 131 + 130 + 130 + 131 + 131 + 129 + 128 + 128 + 129 + 129 + 130 + 128 + 127 + 128 + 129 + 131 + 131 + 131 + 130 + 129 + 129 + 130 + 130 + 130 + 130 + 131 + 129 + 129 + 130 + 129 + 130 + 127 + 117 + 122 + 127 + 350 + 1200 + 1800 + 1800 + 1830 + 1880 + 1890 + 1870 + 1800 + 1600 + 1610 + 1610 + 1590 + 1610 + 1390 + 835 + 839 + 839 + 509 + 183 + 162 + 162 + 163 + 95 + 389 + 336 + 128 + 128 + 129 + 130 + 130 + 130 + 131 + 135 + 138 + 141 + 143 + 144 + 144 + 127 + 131 + 133 + 357 + 291 + 145 + 147 + 148 + 148 + 149 + 139 + 137 + 137 + 137 + 138 + 139 + 139 + 139 + 140 + 141 + 142 + 141 + 141 + 139 + 137 + 137 + 141 + 142 + 138 + 138 + 145 + 144 + 144 + 143 + 141 + 141 + 139 + 138 + 133 + 124 + 125 + 124 + 124 + 123 + 127 + 126 + 125 + 125 + 126 + 127 + 126 + 132 + 131 + 131 + 131 + 130 + 128 + 127 + 127 + 128 + 124 + 121 + 139 + 145 + 144 + 144 + 146 + 142 + 138 + 135 + 133 + 128 + 125 + 125 + 129 + 128 + 127 + 125 + 125 + 126 + 127 + 126 + 128 + 130 + 129 + 128 + 129 + 130 + 130 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/usgs_streamflow_sites/NWIS_02087500_NWIS_00060.xml b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/usgs_streamflow_sites/NWIS_02087500_NWIS_00060.xml new file mode 100644 index 00000000..95cfd7ff --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Data/db/usgs_streamflow_sites/NWIS_02087500_NWIS_00060.xml @@ -0,0 +1,369 @@ + + + + http://waterdata.usgs.gov/nwis/dv?&site_no=02087500&agency_cd=USGS&date_format=YYYY-MM-DD&begin_date=2000-01-01&end_date=2000-12-01&parameter_cd=00060&format=rdb + + NWIS:02087500 + NWIS:00060 + + 2000-01-01 + 2000-12-01 + + + + + + NEUSE RIVER NEAR CLAYTON, NC + 02087500 + + + 35.6472222 + -78.4052778 + + + + + 00060 + Discharge, cubic feet per second + cubic feet per second + + + 483 + 464 + 474 + 523 + 789 + 617 + 541 + 1150 + 1340 + 2660 + 3770 + 2210 + 1830 + 1650 + 1540 + 1890 + 2480 + 2510 + 2460 + 1180 + 807 + 644 + 635 + 850 + 1100 + 1060 + 891 + 834 + 758 + 902 + 3040 + 2270 + 1710 + 2920 + 3360 + 3340 + 3160 + 3060 + 2970 + 2880 + 2850 + 3090 + 3490 + 4310 + 2810 + 1540 + 1750 + 3100 + 3710 + 3950 + 3790 + 3640 + 3550 + 3480 + 3440 + 2740 + 1590 + 1480 + 1660 + 1610 + 1530 + 1480 + 1440 + 963 + 910 + 869 + 843 + 612 + 583 + 571 + 558 + 832 + 646 + 542 + 488 + 531 + 1280 + 723 + 582 + 623 + 1350 + 938 + 2310 + 3240 + 3340 + 3310 + 3280 + 3540 + 2960 + 1590 + 1360 + 1290 + 1260 + 1230 + 693 + 537 + 512 + 503 + 517 + 1050 + 720 + 591 + 574 + 562 + 740 + 1470 + 1770 + 1620 + 2160 + 1950 + 2810 + 3150 + 3060 + 3000 + 2940 + 2520 + 2500 + 1890 + 1550 + 1480 + 1610 + 1030 + 2280 + 2580 + 2490 + 1340 + 901 + 895 + 879 + 843 + 824 + 819 + 769 + 661 + 614 + 604 + 589 + 540 + 524 + 436 + 363 + 380 + 652 + 608 + 447 + 407 + 377 + 378 + 348 + 548 + 525 + 413 + 386 + 366 + 356 + 912 + 616 + 493 + 428 + 402 + 373 + 357 + 349 + 339 + 332 + 407 + 849 + 460 + 381 + 395 + 467 + 406 + 407 + 373 + 359 + 333 + 314 + 313 + 306 + 309 + 664 + 579 + 381 + 389 + 329 + 309 + 381 + 436 + 344 + 380 + 302 + 327 + 308 + 339 + 377 + 350 + 935 + 956 + 614 + 523 + 374 + 344 + 331 + 354 + 326 + 1360 + 1390 + 862 + 612 + 812 + 2400 + 3130 + 2690 + 2980 + 4130 + 4060 + 3280 + 3500 + 2780 + 2320 + 2110 + 2030 + 2040 + 1580 + 1180 + 1190 + 1160 + 640 + 434 + 383 + 387 + 414 + 337 + 649 + 473 + 318 + 300 + 302 + 336 + 308 + 389 + 389 + 452 + 679 + 739 + 556 + 1440 + 1430 + 2610 + 1070 + 715 + 863 + 585 + 441 + 414 + 393 + 381 + 390 + 863 + 429 + 371 + 374 + 506 + 458 + 403 + 382 + 1030 + 1210 + 769 + 4040 + 1750 + 917 + 682 + 546 + 491 + 465 + 436 + 415 + 406 + 393 + 376 + 359 + 354 + 353 + 352 + 347 + 340 + 327 + 324 + 325 + 326 + 324 + 328 + 322 + 315 + 315 + 318 + 313 + 316 + 313 + 314 + 310 + 309 + 308 + 305 + 303 + 313 + 307 + 305 + 313 + 330 + 329 + 337 + 342 + 348 + 342 + 331 + 333 + 389 + 556 + 383 + 353 + 353 + 356 + 534 + 476 + 386 + 361 + 336 + 379 + 1160 + 682 + 504 + 433 + 398 + 376 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/HydroLink-debug.omi b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/HydroLink-debug.omi new file mode 100644 index 00000000..24275af5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/HydroLink-debug.omi @@ -0,0 +1,6 @@ + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/HydroLink.cs b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/HydroLink.cs new file mode 100644 index 00000000..88b7602e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/HydroLink.cs @@ -0,0 +1,580 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using System.IO; +using System.Xml; +using System.Xml.Serialization; +using System.Diagnostics; +using Oatc.OpenMI.Sdk.Spatial; +using Oatc.OpenMI.Sdk.Wrapper; +using WaterOneFlow.Schema.v1; +using Oatc.OpenMI.Sdk.Buffer; +using System.Linq; + +namespace CUAHSI.HIS +{ + public class HydroLink : ILinkableComponent + { + + private Dictionary _links + = new Dictionary(); + private List _inputExchangeItems + = new List(); + private List _outputExchangeItems + = new List(); + private double _earliestInputTime; + private double _latestInputTime; + private string _dbPath; + private SmartBuffer _smartBuffer = new SmartBuffer(); + + //dictionary that contains a smartbuffer for each link + private Dictionary _buffervalues = new Dictionary(); + + private string _fullPath; //path to the .dll + + + + #region ILinkableComponent Members + + public void AddLink(ILink link) + { + _links.Add(link.ID, link); + SmartBuffer sb = new SmartBuffer(); + sb = CreateBuffer(link.SourceElementSet.ToString()); + + _buffervalues.Add(link.ID, sb); + //AddToBuffer(link.SourceElementSet.ToString()); + + } + + private SmartBuffer CreateBuffer(string elementSet) + { + Dictionary dict = new Dictionary(); + SmartBuffer smartbuffer = new SmartBuffer(); + + //Move to the .dll directory + try + { + Directory.SetCurrentDirectory(_fullPath); + } + catch (System.IO.IOException) { } + + + elementSet = _dbPath + "\\" + elementSet; + string[] files = Directory.GetFiles(elementSet); + + + + //read all files within element set + foreach (string file in files) + { + + //load the first file in the directory as an XML document + XmlDocument xmldoc = new XmlDocument(); + + // load the first xml file in the directory + StreamReader sr = new StreamReader(file); + + //deserialize + XmlSerializer xml_reader = new XmlSerializer(typeof(TimeSeriesResponseType)); + TimeSeriesResponseType tsr = (TimeSeriesResponseType)xml_reader.Deserialize(sr); + + + ValueSingleVariable[] values = tsr.timeSeries.values.value; + + foreach (ValueSingleVariable value in values) + { + DateTime dt = value.dateTime; + double v = Convert.ToDouble(value.Value); + + //check to see if time/value combination has been already added + if (dict.ContainsKey(dt)) + { + ArrayList a = dict[dt]; + a.Add(v); + } + //Add key to dictionary + else + { + ArrayList a = new ArrayList(); + a.Add(v); + dict.Add(dt, a); + } + + } + + } + + //put values in oder, starting with the earliest time (from http://dotnetperls.com/sort-dictionary-values) + var items = from k in dict.Keys + orderby dict[k] ascending + select k; + + //load values into the smart buffer + foreach (KeyValuePair kvp in dict) + { + ITimeStamp time_stmp = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(kvp.Key)); + double[] valueset = (double[])kvp.Value.ToArray(typeof(double)); + smartbuffer.AddValues(time_stmp, new ScalarSet(valueset)); + } + return smartbuffer; + + } + + public string ComponentDescription + { + get { return "HydroLink 1.0"; } + } + + public string ComponentID + { + get { return "HydroLink"; } + } + + public void Dispose() + { + + } + + public ITimeStamp EarliestInputTime + { + get { return new TimeStamp(_earliestInputTime); } + } + + public void Finish() + { + //clear all values in the buffer + _smartBuffer.Clear(this.TimeHorizon); + } + + public IInputExchangeItem GetInputExchangeItem(int inputExchangeItemIndex) + { + return _inputExchangeItems[inputExchangeItemIndex]; + } + + public IOutputExchangeItem GetOutputExchangeItem(int outputExchangeItemIndex) + { + return _outputExchangeItems[outputExchangeItemIndex]; + } + + public IValueSet GetValues(ITime time, string linkID) + { + + // covert time to a DateTime data type + TimeStamp timestamp = (TimeStamp)time; + DateTime dt = CalendarConverter.ModifiedJulian2Gregorian( + (double)timestamp.ModifiedJulianDay); + + // write datetime to log file + StreamWriter sr = new StreamWriter("hydrolink_log.txt", true); + sr.WriteLine("get values request for time: " + dt.ToLongDateString() + + " " + dt.ToLongTimeString()); + sr.Flush(); + + //get scalar set + IValueSet values = _buffervalues[linkID].GetValues(time); + + // write value set to log file + ScalarSet ss = (ScalarSet)values; + sr.Write("values set: "); + sr.Flush(); + for (int i = 0; i < ss.Count; ++i) + { + sr.Write(" " + ss.GetScalar(i).ToString() + " "); + sr.Flush(); + } + sr.Write("\n"); + sr.Close(); + return values; + } + + public void Initialize(IArgument[] properties) + { + + // The code loops through the WaterMLdb and builds OpenMI exchange items based on + // the folder contents. It is assumed that the WaterMLdb has the following directory + // structure: + // + // - db [Folder] + // - exchange_item_1_name [Folder] + // - watermlfile1.xml [File] + // - watermlfile2.xml [File] + // ... + // - exchange_item_2_name + // - watermlfile1.xml + // - watermlfile2.xml + // ... + // ... + // + // All WaterML files within an exchange item folder must have the same quantity because + // OpenMI defines an exchange item as being for one quantity and one or more locations. + // A WaterML file contains only one "time series", that is measurements of one variable + // through time at only one location. + + + //extract argument(s) from OMI file + foreach (IArgument property in properties) + { + if (property.Key == "WaterMLdb") { _dbPath = property.Value; }; + //default value for relationFactor is 1; + if (property.Key == "Relaxation") { _smartBuffer.RelaxationFactor = Convert.ToDouble(property.Value); }; + } + + _fullPath = Directory.GetCurrentDirectory(); + + + + string[] subdirs = Directory.GetDirectories(_dbPath); + foreach (string subdir in subdirs) + { + try + { + OutputExchangeItem exchangeitem = buildExchangeItemFromFolder(subdir); + if (exchangeitem != null) { _outputExchangeItems.Add(exchangeitem); }; + } + catch (Exception ex) + { + Trace.WriteLine("Could not read exchange item directory " + subdir + ". " + + "Error message: " + ex.Message); + } + } + } + + public int InputExchangeItemCount + { + get { return _inputExchangeItems.Count; } + } + + public string ModelDescription + { + get { return "HydroLink"; } + } + + public string ModelID + { + get { return "HydroLink"; } + } + + public int OutputExchangeItemCount + { + get { return _outputExchangeItems.Count; } + } + + public void Prepare() + { + + } + + public void RemoveLink(string linkID) + { + _links.Remove(linkID); + } + + public ITimeSpan TimeHorizon + { + get { return new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(_earliestInputTime), new TimeStamp(_latestInputTime)); } + } + + public string Validate() + { + return "Validate is not implemented"; + } + + #endregion + + #region IPublisher Members + + public EventType GetPublishedEventType(int providedEventTypeIndex) + { + return EventType.Other; + } + + public int GetPublishedEventTypeCount() + { + return 0; + } + + public void SendEvent(IEvent Event) + { + + } + + public void Subscribe(IListener listener, EventType eventType) + { + + } + + public void UnSubscribe(IListener listener, EventType eventType) + { + + } + + #endregion + + private OutputExchangeItem buildExchangeItemFromFolder(string folder) + { + //The routine will construct an OpenMI exchange item from a folder of WaterML files. + //assumptions: (1) all files within the folder are waterML files + // (2) all files within folder have the same variable element + // + // --- MAPPING BETWEEN OPENMI AND WATERML + // Qunatity <-- from the first file in the directory + // ID [REQUIRED] = WaterML's variableParam element inner text + // Description [optional] = WaterML's variableName element inner text + // ValueType [hard coded] = Scalar + // Unit + // ID [optional]= WaterML's units element attribute unitsAbbreviation + // ConversionFactortoSI [optional] = not in WaterML + // ConverstionOffsettoSI [optional] = not in WaterML + // Dimension + // Power [optional] = not in WaterML + // ElementSet + // ID [REQUIRED] = folder name + // Description [REQUIRED] = folder relative path + // ElementType [hard coded] = XYPoint or IDBased + // Element + // ID [optional]= WaterML's SiteCode element inner text [changing to locationParam] + // Vertex + // X = WaterML's longitude element inner text + // Y = WaterML's latitude element inner text + // ... + // TimeHorizon <-- union of all file-level time horizons + + //get list of files within the folder + string[] files = Directory.GetFiles(folder); + + //load the first file in the directory as an XML document + XmlDocument xmldoc = new XmlDocument(); + + // load the first xml file in the directory + StreamReader sr = new StreamReader(files[0]); + + //deserialize + XmlSerializer xml_reader = new XmlSerializer(typeof(TimeSeriesResponseType)); + TimeSeriesResponseType tsr = (TimeSeriesResponseType)xml_reader.Deserialize(sr); + + Quantity quantity = new Quantity(); + Unit unit = new Unit(); + Dimension dimension = new Dimension(); + ElementSet elementset = new ElementSet(); + OutputExchangeItem outputexchangeitem = new OutputExchangeItem(); + + //Quantity ID -- REQUIRED + try {quantity.ID = tsr.queryInfo.criteria.variableParam;} + catch {throw new Exception("waterML document must contain a variableParam element"); } + + //Quantity Description -- optional + try { quantity.Description = tsr.timeSeries.variable.variableName; } + catch { quantity.Description = ""; } + + //Quantity Variable Type -- hard coded + quantity.ValueType = global::OpenMI.Standard.ValueType.Scalar; + + //Unit ID -- optional + try { unit.ID = tsr.timeSeries.variable.units.unitsAbbreviation; } + catch { unit.ID = ""; } + + //Unit Converstion Factor to SI + //TODO WaterML does not include conversion factors to SI + //unit.ConversionFactorToSI = 0; + + //Unit Converstion Offset to SI + //TODO WaterML does not include conversion offest to SI + //unit.OffSetToSI = 0; + + quantity.Unit = unit; + + //Dimension Powers -- optional + //TODO WaterML does not include dimension info for units + //Examples below ... + //dimension.SetPower(DimensionBase.Length, 3); + //dimension.SetPower(DimensionBase.Time, -1); + + quantity.Dimension = dimension; + + //ElementSet ID -- folder name + elementset.ID = new DirectoryInfo(folder).Name; + + //ElementSet Description -- folder relative path + elementset.Description = folder; + + //ElementSet ElementType -- hard coded + elementset.ElementType = ElementType.XYPoint; + + // ------------------------------------------------------------------- + // The remaining objects require access to all files in the directory. + // ------------------------------------------------------------------- + + foreach (string fileName in files) + { + //load the first file in the directory as an XML document + sr = new StreamReader(fileName); + tsr = (TimeSeriesResponseType)xml_reader.Deserialize(sr); + + Element element = new Element(); + Vertex vertex = new Vertex(); + + //Element ID -- optional + try { element.ID = tsr.queryInfo.criteria.locationParam; } + catch { element.ID = ""; } + + //Vertex X and Y -- optional + //tsr.timeSeries. TODO fix this. + //if (xml_location != null && xml_location["longitude"] != null && xml_location["latitude"] != null) + //{ + // vertex.x = Convert.ToDouble(xml_location["longitude"].InnerText); + // vertex.y = Convert.ToDouble(xml_location["latitude"].InnerText); + //} + //else { vertex.x = double.NaN; vertex.y = double.NaN; elementset.ElementType = ElementType.IDBased; } + element.AddVertex(vertex); + + elementset.AddElement(element); + + //TimeHorizon -- REQUIRED +//if (_earliestInputTime == 0.0) +// { + string beginDateTimeString; + try { beginDateTimeString = tsr.queryInfo.criteria.timeParam.beginDateTime; } + catch { throw new Exception("waterML document must contain a beginDateTime element"); } + + string endDateTimeString; + try { endDateTimeString = tsr.queryInfo.criteria.timeParam.endDateTime; } + catch { throw new Exception("waterML document must contain an endDateTime element"); } + + DateTime beginDateTime = Convert.ToDateTime(beginDateTimeString); + DateTime endDateTime = Convert.ToDateTime(endDateTimeString); + double beginDateTimeDouble = CalendarConverter.Gregorian2ModifiedJulian(beginDateTime); + double endDateTimeDouble = CalendarConverter.Gregorian2ModifiedJulian(endDateTime); + + //update time horizon to be inclusive of this time horizon + if (_earliestInputTime == 0.0) { _earliestInputTime = beginDateTimeDouble; } + if (beginDateTimeDouble < _earliestInputTime) { _earliestInputTime = beginDateTimeDouble; }; + if (endDateTimeDouble > _latestInputTime) { _latestInputTime = endDateTimeDouble; }; + // } + } + outputexchangeitem.Quantity = quantity; + outputexchangeitem.ElementSet = elementset; + + // add data operations and return + return addDataOperations(outputexchangeitem); + } + + private OutputExchangeItem addDataOperations(OutputExchangeItem outputexchangeitem) + { + //Add dataoperations to outputexchangeitems + ElementMapper elementMapper = new ElementMapper(); + ArrayList dataOperations = new ArrayList(); + dataOperations = elementMapper.GetAvailableDataOperations(outputexchangeitem.ElementSet.ElementType); + bool spatialDataOperationExists; + bool linearConversionDataOperationExists; + bool smartBufferDataOperationExists; + foreach (IDataOperation dataOperation in dataOperations) + { + spatialDataOperationExists = false; + foreach (IDataOperation existingDataOperation in outputexchangeitem.DataOperations) + { + if (dataOperation.ID == existingDataOperation.ID) + { + spatialDataOperationExists = true; + } + } + + if (!spatialDataOperationExists) + { + outputexchangeitem.AddDataOperation(dataOperation); + } + } + + IDataOperation linearConversionDataOperation = new LinearConversionDataOperation(); + linearConversionDataOperationExists = false; + foreach (IDataOperation existingDataOperation in outputexchangeitem.DataOperations) + { + if (linearConversionDataOperation.ID == existingDataOperation.ID) + { + linearConversionDataOperationExists = true; + } + } + + if (!linearConversionDataOperationExists) + { + outputexchangeitem.AddDataOperation(new LinearConversionDataOperation()); + } + + IDataOperation smartBufferDataOperaion = new SmartBufferDataOperation(); + smartBufferDataOperationExists = false; + foreach (IDataOperation existingDataOperation in outputexchangeitem.DataOperations) + { + if (smartBufferDataOperaion.ID == existingDataOperation.ID) + { + smartBufferDataOperationExists = true; + } + } + + if (!smartBufferDataOperationExists) + { + outputexchangeitem.AddDataOperation(new SmartBufferDataOperation()); + } + + return outputexchangeitem; + } + + private IValueSet buildScalarSetFromFolder(string folder, DateTime datetime) + { + string[] files = Directory.GetFiles(folder); + + //create array list to store location values + List locationValues = new List(); + + //loop through all files in directory to create element set + foreach (string fileName in files) + { + StreamReader sr = new StreamReader(fileName); + + //deserialize + XmlSerializer xml_reader = new XmlSerializer(typeof(TimeSeriesResponseType)); + TimeSeriesResponseType tsr = (TimeSeriesResponseType)xml_reader.Deserialize(sr); + + //load the first file in the directory as an XML document + DateTime dt; + double value; + for (int i = 0; i < Convert.ToInt32(tsr.timeSeries.values.count); ++i) + { + dt = tsr.timeSeries.values.value[i].dateTime; + if (dt == datetime) + { + dt = tsr.timeSeries.values.value[i].dateTime; + value = Convert.ToDouble(tsr.timeSeries.values.value[i].Value); + } + } + XmlDocument xmldoc = new XmlDocument(); + xmldoc.Load(fileName); + System.Xml.XmlNamespaceManager xmlnsManager + = new System.Xml.XmlNamespaceManager(xmldoc.NameTable); + xmlnsManager.AddNamespace("wtr", "http://www.cuahsi.org/waterML/1.0/"); + + //lookup the values from the waterml file + XmlNode xml_value = xmldoc.SelectSingleNode( + "//wtr:values//wtr:value[@dateTime='" + datetime.ToString("s") + "']", + xmlnsManager); + + if (xml_value != null && xml_value.InnerText != null) + { + //convert to a double. use -999 for missing values. + double num; + if (xml_value != null) num = Convert.ToDouble(xml_value.InnerText); + else num = -999; + + locationValues.Add(num); + } + + } + + return new ScalarSet(locationValues.ToArray()); + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/HydroLink.csproj b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/HydroLink.csproj new file mode 100644 index 00000000..b372dfc7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/HydroLink.csproj @@ -0,0 +1,98 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {988CE0B1-C125-424D-87CE-1CF02C6C7FD3} + Library + Properties + HydroLink + HydroLink + v3.5 + 512 + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Backbone.dll + False + + + False + bin\Debug\Oatc.OpenMI.Sdk.Buffer.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + False + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Spatial.dll + False + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Wrapper.dll + False + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + False + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + False + ..\..\..\Utilities\WOFSchemas\WofSchemas.dll + False + + + + + + + + + PreserveNewest + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/HydroLink.omi b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/HydroLink.omi new file mode 100644 index 00000000..bc23be3b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/HydroLink.omi @@ -0,0 +1,6 @@ + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/HydroLink.sln b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/HydroLink.sln new file mode 100644 index 00000000..7721d97e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/HydroLink.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroLink", "HydroLink.csproj", "{988CE0B1-C125-424D-87CE-1CF02C6C7FD3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroLinkTest", "..\Test\HydroLinkTest.csproj", "{BDA8AEEF-67CA-4D4A-8C79-518365A9394B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {988CE0B1-C125-424D-87CE-1CF02C6C7FD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {988CE0B1-C125-424D-87CE-1CF02C6C7FD3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {988CE0B1-C125-424D-87CE-1CF02C6C7FD3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {988CE0B1-C125-424D-87CE-1CF02C6C7FD3}.Release|Any CPU.Build.0 = Release|Any CPU + {BDA8AEEF-67CA-4D4A-8C79-518365A9394B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDA8AEEF-67CA-4D4A-8C79-518365A9394B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDA8AEEF-67CA-4D4A-8C79-518365A9394B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDA8AEEF-67CA-4D4A-8C79-518365A9394B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..ececec47 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Source/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroLink")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HydroLink")] +[assembly: AssemblyCopyright("Copyright © 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e782db3f-469d-43d3-9947-33e8e53caa6e")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Test/HydroLinkTest.cs b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Test/HydroLinkTest.cs new file mode 100644 index 00000000..61bf4e06 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Test/HydroLinkTest.cs @@ -0,0 +1,243 @@ +using System; +using System.Collections.Generic; +using System.Text; +using NUnit.Framework; +using CUAHSI.HIS; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Gui.Core; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Buffer; +using System.Collections; + +namespace CUAHSI.HIS.Test +{ + [TestFixture] + public class HISOpenMIComponentTests + { + [Test] + public void GetComponentDescription() + { + Console.Write("Begin Get Component Description Test..."); + HydroLink his = new HydroLink(); + IArgument[] arguments = new IArgument[1]; + arguments[0] = new Argument("WaterMLdb", @"..\..\..\Data\db", true, "WaterML Database"); + his.Initialize(arguments); + + Console.WriteLine("component description: " + his.ComponentDescription); + } + + [Test] + public void GetModelDescription() + { + Console.Write("Begin Get Model Description Test..."); + HydroLink his = new HydroLink(); + IArgument[] arguments = new IArgument[1]; + arguments[0] = new Argument("WaterMLdb", @"..\..\..\Data\db", true, "WaterML Database"); + his.Initialize(arguments); + + Console.WriteLine("model description: " + his.ModelDescription); + } + + /// + /// This method tests hydrolinks ability get values + /// + [Test] + public void GetValues() + { + Console.Write("Begin Get Values Test..."); + //create the his component + HydroLink his = new HydroLink(); + IArgument[] arguments = new IArgument[2]; + arguments[0] = new Argument("WaterMLdb", @"..\..\..\Data\db", true, "WaterML Database"); + arguments[1] = new Argument("Relaxation", "1", true, "Time interpolation factor, btwn 0(linear inter.) and 1(nearest neigbor)"); + his.Initialize(arguments); + + //create a trigger component + Trigger trigger = new Trigger(); + trigger.Initialize(null); + + //link the two components + Link link = new Link(); + link.ID = "link-1"; + link.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + link.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + link.TargetComponent = trigger; + link.SourceElementSet = his.GetOutputExchangeItem(2).ElementSet; + link.SourceQuantity = his.GetOutputExchangeItem(2).Quantity; + link.TargetComponent = his; + + //run configuration + his.AddLink(link); + + //prepare + his.Prepare(); + + DateTime dt = Convert.ToDateTime("2009-08-20T21:40:00"); + + while (dt <= Convert.ToDateTime("2009-08-20T22:20:00")) + { + + ITimeStamp time_stmp = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(dt)); + ScalarSet scalarset = (ScalarSet)his.GetValues(time_stmp, "link-1"); + Console.WriteLine("GetValues: " + dt.ToString("s")); + int i = 0; + foreach (double d in scalarset.data) + { + Console.WriteLine(link.SourceElementSet.GetElementID(i).ToString() + " " + d.ToString()); + ++i; + } + dt = dt.AddMinutes(5); + } + Console.Write("done. \n"); + } + + /// + /// This method tests hydrolinks ability to construct a time horizon by reading the waterml database + /// + [Test] + public void GetTimeHorizon() + { + Console.WriteLine("Begin Get Time Horizon Test..."); + //create the his component + HydroLink his = new HydroLink(); + IArgument[] arguments = new IArgument[1]; + arguments[0] = new Argument("WaterMLdb", @"..\..\..\Data\db", true, "WaterML Database"); + his.Initialize(arguments); + + //get earliest and latest times + Console.WriteLine("start: " + CalendarConverter.ModifiedJulian2Gregorian(his.TimeHorizon.Start.ModifiedJulianDay).ToString()); + Console.WriteLine("end: " + CalendarConverter.ModifiedJulian2Gregorian(his.TimeHorizon.End.ModifiedJulianDay).ToString()); + } + + /// + /// This method tests Hydrolinks ability to read elements from the waterml database + /// + [Test] + public void GetElements() + { + Console.Write("Begin Get Elemtents Test..."); + HydroLink his = new HydroLink(); + IArgument[] arguments = new IArgument[1]; + arguments[0] = new Argument("WaterMLdb", @"..\..\..\Data\db", true, "WaterML Database"); + his.Initialize(arguments); + for (int i = 0; i < his.OutputExchangeItemCount; ++i) + { + IElementSet es = his.GetOutputExchangeItem(i).ElementSet; + for (int j = 0; j < es.ElementCount; ++j) + { + Console.WriteLine(es.GetXCoordinate(j,0).ToString() + ", " + + es.GetYCoordinate(j,0).ToString()); + } + } + Console.WriteLine("model description: " + his.ModelDescription); + + } + + + + /// + /// This method tests the implementation of the linear interpolation algorithm (part of the smart + /// buffer) within Hydrolink. Values are added to the smart buffer in 10min intervals, then are + /// requested at 5min intervals. + /// + [Test] + public void LinearTimeInterpolation() + { + Console.Write("Begin Linear Interpolation Test..."); + + //create the his component + HydroLink his = new HydroLink(); + IArgument[] arguments = new IArgument[1]; + arguments[0] = new Argument("WaterMLdb", @"..\..\..\Data\db", true, "WaterML Database"); + his.Initialize(arguments); + + //create a trigger component + Trigger trigger = new Trigger(); + trigger.Initialize(null); + + //link the two components + Link link = new Link(); + link.ID = "link-1"; + link.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + link.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + link.TargetComponent = trigger; + + + link.SourceElementSet = his.GetOutputExchangeItem(1).ElementSet; + link.SourceQuantity = his.GetOutputExchangeItem(1).Quantity; + link.TargetComponent = his; + + + //Spatial interpolation + IDataOperation dataOp = (his).GetOutputExchangeItem(0).GetDataOperation(7); + link.AddDataOperation(dataOp); + + + //run configuration + his.AddLink(link); + + trigger.Validate(); + his.Validate(); + + //prepare + his.Prepare(); + + DateTime dt = Convert.ToDateTime("2009-08-20T21:40:00"); + + SmartBuffer _smartBuffer = new SmartBuffer(); + + //Add all values to buffer in 10min intervals + Console.Write("Storing values in the smart buffer (10min resolution)... "); + while (dt <= Convert.ToDateTime("2009-08-21T02:00:00")) + { + + ITimeStamp time_stmp = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(dt)); + ScalarSet scalarset = (ScalarSet)his.GetValues(time_stmp, "link-1"); + + if (scalarset.Count == 0) + { + int f = his.GetOutputExchangeItem(1).ElementSet.ElementCount; + ArrayList zeroArray= new ArrayList(); + for (int i = 0; i <= f - 1; i++) + zeroArray.Add(0.0); + + double[] zeros = (double[])zeroArray.ToArray(typeof(double)); + + scalarset = new ScalarSet(zeros); + } + + _smartBuffer.AddValues(time_stmp, scalarset); + + dt = dt.AddMinutes(10); + } + Console.WriteLine("done.\n\n"); + + //request values from the smart buffer at 5min intervals + dt = Convert.ToDateTime("2009-08-20T21:40:00"); + while (dt <= Convert.ToDateTime("2009-08-21T02:00:00")) + { + + ITimeStamp time_stmp = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(dt)); + + //Get values at requested time + ScalarSet scalarset = (ScalarSet)_smartBuffer.GetValues(time_stmp); + + Console.WriteLine("GetValues: " + dt.ToString("s")); + + + //loop through interpolated values + int i = 0; + foreach (double d in scalarset.data) + { + + Console.WriteLine(link.SourceElementSet.GetElementID(i).ToString() + " " + d.ToString()); + ++i; + } + dt = dt.AddMinutes(5); + } + + Console.Write("done. \n"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Test/HydroLinkTest.csproj b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Test/HydroLinkTest.csproj new file mode 100644 index 00000000..f07a5778 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Test/HydroLinkTest.csproj @@ -0,0 +1,86 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {BDA8AEEF-67CA-4D4A-8C79-518365A9394B} + Library + Properties + HydroLinkTest + HydroLinkTest + v3.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Utilities\NUnit\nunit.framework.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Gui.Core.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Backbone.dll + + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + {988CE0B1-C125-424D-87CE-1CF02C6C7FD3} + HydroLink + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Test/HydroLinkTest.sln b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Test/HydroLinkTest.sln new file mode 100644 index 00000000..5115bcbf --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Test/HydroLinkTest.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroLinkTest", "HydroLinkTest.csproj", "{BDA8AEEF-67CA-4D4A-8C79-518365A9394B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroLink", "..\Source\HydroLink.csproj", "{988CE0B1-C125-424D-87CE-1CF02C6C7FD3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BDA8AEEF-67CA-4D4A-8C79-518365A9394B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDA8AEEF-67CA-4D4A-8C79-518365A9394B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDA8AEEF-67CA-4D4A-8C79-518365A9394B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDA8AEEF-67CA-4D4A-8C79-518365A9394B}.Release|Any CPU.Build.0 = Release|Any CPU + {988CE0B1-C125-424D-87CE-1CF02C6C7FD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {988CE0B1-C125-424D-87CE-1CF02C6C7FD3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {988CE0B1-C125-424D-87CE-1CF02C6C7FD3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {988CE0B1-C125-424D-87CE-1CF02C6C7FD3}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..b7ca4abc --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/HydroLink/Test/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroLinkTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HydroLinkTest")] +[assembly: AssemblyCopyright("Copyright © 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("4e6d8b95-ce1e-4392-83af-bd2a28809cd6")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Data/LoadCalculator.omi b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Data/LoadCalculator.omi new file mode 100644 index 00000000..3a4f77f3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Data/LoadCalculator.omi @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Data/LoadCalculatorOutput.csv b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Data/LoadCalculatorOutput.csv new file mode 100644 index 00000000..9fcde005 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Data/LoadCalculatorOutput.csv @@ -0,0 +1,16 @@ +55131.3541666667,166.205751075, +55144.3541666667,87.571557636, +55154.3541666667,46.75678272, +55175.3541666667,235.24506306, +55202.3541666667,84.74666868, +55223.3541666667,149.475589758, +55250.3541666667,152.738823552, +55272.3541666667,76.272001812, +55285.3541666667,77.587036326, +55286.3541666667,57.861518616, +55311.3541666667,36.090391662, +55312.3541666667,30.538023714, +55321.3541666667,22.501701684, +55340.3541666667,34.702299675, +55341.3541666667,27.396552375, +55362.3541666667,294.738198573, diff --git a/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Data/Testcomp.opr b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Data/Testcomp.opr new file mode 100644 index 00000000..c28c337e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Data/Testcomp.opr @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/LoadCalculator.csproj b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/LoadCalculator.csproj new file mode 100644 index 00000000..f02583a9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/LoadCalculator.csproj @@ -0,0 +1,88 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64} + Library + Properties + LoadCalculator + LoadCalculator + v4.0 + 512 + + + 3.5 + + Client + + + true + full + false + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Buffer.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + ..\..\Utilities\SharpMap\SharpMap.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/LoadCalculator.sln b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/LoadCalculator.sln new file mode 100644 index 00000000..58bca915 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/LoadCalculator.sln @@ -0,0 +1,44 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoadCalculator", "LoadCalculator.csproj", "{2672B7C8-BDAC-413A-AA08-6666D5B3BC64}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.csproj", "{F69B1608-D115-47F4-8E23-A8D1EBC9E850}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbReader", "..\DbReader\Source\DbReader.csproj", "{F7FC143A-18E5-428A-B79F-FC20BFFE6266}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbWriter", "..\DbWriter\Source\DbWriter.csproj", "{1CBE4440-985E-405B-BFBE-01F0E26AD2C5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "hydrodesktop", "..\..\..\..\Main\hydrodesktop.csproj", "{31AA4F21-4E7E-413D-ACCF-0D0B78DC3764}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64}.Release|Any CPU.Build.0 = Release|Any CPU + {F69B1608-D115-47F4-8E23-A8D1EBC9E850}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F69B1608-D115-47F4-8E23-A8D1EBC9E850}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F69B1608-D115-47F4-8E23-A8D1EBC9E850}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F69B1608-D115-47F4-8E23-A8D1EBC9E850}.Release|Any CPU.Build.0 = Release|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Release|Any CPU.Build.0 = Release|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Release|Any CPU.Build.0 = Release|Any CPU + {31AA4F21-4E7E-413D-ACCF-0D0B78DC3764}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {31AA4F21-4E7E-413D-ACCF-0D0B78DC3764}.Debug|Any CPU.Build.0 = Debug|Any CPU + {31AA4F21-4E7E-413D-ACCF-0D0B78DC3764}.Release|Any CPU.ActiveCfg = Release|Any CPU + {31AA4F21-4E7E-413D-ACCF-0D0B78DC3764}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..6abd4360 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("TimeMatcher")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("TimeMatcher")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("356190e6-7030-4205-9be2-d6471f3ddf41")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Source/LoadCalculatorEngine.cs b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Source/LoadCalculatorEngine.cs new file mode 100644 index 00000000..7ae0b228 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Source/LoadCalculatorEngine.cs @@ -0,0 +1,1060 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Buffer; +using Oatc.OpenMI.Sdk.Wrapper; +using System.Collections; +using System.Xml; +using System.Diagnostics; +using SharpMap.Layers; +using SharpMap.Data.Providers; +using SharpMap.Data; +using SharpMap.Geometries; + +namespace LoadCalculator +{ + + public class LoadCalculatorLinkableEngine : LinkableRunEngine + { + public Dictionary _links; + private List _inputExchangeItems; + private List _inputExchangeItemsTransformed; + private List _outputExchangeItems; + private double _earliestInputTime; + private double start; + private double end; + private double _currentTime; + private int _timeIncrement = 300; //in seconds (should be specifiec by the user) + + public LoadCalculatorLinkableEngine() + { + _links = new Dictionary(); + _inputExchangeItems = new List(); + _inputExchangeItemsTransformed = new List(); + _outputExchangeItems = new List(); + start = -999; + end = CalendarConverter.Gregorian2ModifiedJulian(new DateTime(2011,01,01,00,00,00)); + _earliestInputTime = end; + _currentTime = -999; + _timeIncrement = 20; + } + + public override IInputExchangeItem GetInputExchangeItem(int index) + { + return _inputExchangeItems[index]; + } + + public override IOutputExchangeItem GetOutputExchangeItem(int index) + { + return _outputExchangeItems[index]; + } + + public override int InputExchangeItemCount + { + get { return _inputExchangeItems.Count; } + } + + public override string ModelDescription + { + get { return "Calculates the loading by matching time series data"; } + } + + public override string ModelID + { + get { return "Load Calculator"; } + } + + public override int OutputExchangeItemCount + { + get { return _outputExchangeItems.Count; } + } + + protected override void SetEngineApiAccess() + { + _engineApiAccess = new LoadCalculatorEngine(_timeIncrement, this.ModelID); + } + + public override void Initialize(IArgument[] properties) + { + //create a new instance of the Engine Class + //_engine = new testEngine(); + + System.Collections.Hashtable hashtable = new Hashtable(); + + int option = 0; + string configPath = null; + for (int i = 0; i < properties.Length; i++) + { + if (properties[i].Key == "ConfigFile") + { + configPath = properties[i].Value; + + XmlDocument doc = new XmlDocument(); + doc.Load(configPath); + XmlElement root = doc.DocumentElement; + XmlNode timeHorizon = root.SelectSingleNode("//TimeHorizon"); + this._timeIncrement = Convert.ToInt32(timeHorizon["TimeStepInSeconds"].InnerText); + doc = null; + + option = 1; + break; + } + else if (properties[i].Key == "StartDateTime") + { + this.start = CalendarConverter.Gregorian2ModifiedJulian(Convert.ToDateTime(properties[i].Value)); + this._currentTime = this.start; + } + else if (properties[i].Key == "TimeStepInSeconds") + { + this._timeIncrement = Convert.ToInt32(properties[i].Value); + } + else if(properties[i].Key.Contains("Input")) + { + hashtable.Add(i.ToString() + ":" + properties[i].Key, properties[i].Value); + } + else if (properties[i].Key.Contains("Output")) + { + hashtable.Add(i.ToString() + ":" + properties[i].Key, properties[i].Value); + } + } + + + //initialize the IRunEngine class + SetEngineApiAccess(); + this._engineWasAssigned = true; + //_engineApiAccess.Initialize(hashtable); + + if (!_engineWasAssigned) + { + throw new System.Exception("The Initialize method in the SmartWrapper cannot be invoked before the EngineApiAccess is assigned"); + } + + _initializeWasInvoked = true; + + + //initialize this the LinkableRunEngine class + if(option == 0) + this.Initialize(hashtable); + else if(option == 1) + SetVariablesFromConfigFile(configPath); + } + + public void Initialize(System.Collections.Hashtable properties) + { + Dictionary> groupItems = new Dictionary>(); + Dictionary> OutputGroupItems = new Dictionary>(); + + //extract argument(s) from OMI file + foreach (string Key in properties.Keys) + { + if (Key.Split(':')[1] == "InputTimeSeries") + { + if (groupItems.ContainsKey(properties[Key].ToString())) + { + groupItems[properties[Key].ToString()].Add(Key.Split(':')[1] + (groupItems[properties[Key].ToString()].Count + 1).ToString()); + } + else + { + List l = new List(); + l.Add(Key.Split(':')[1] + "1"); + groupItems.Add(properties[Key].ToString(), l); + } + } + else if (Key.Split(':')[1] == "OutputTimeSeries") + { + if (OutputGroupItems.ContainsKey(properties[Key].ToString())) + { + OutputGroupItems[properties[Key].ToString()].Add(Key.Split(':')[1] + (groupItems[properties[Key].ToString()].Count + 1).ToString()); + } + else + { + List l = new List(); + l.Add(Key.Split(':')[1] + "1"); + OutputGroupItems.Add(properties[Key].ToString(), l); + } + + + System.Collections.Hashtable hashtable = new Hashtable(); + hashtable.Add("OutputExchangeItem", properties[Key]); + + //pass this info to the IRunEngine, via Intitialize + _engineApiAccess.Initialize(hashtable); + } + } + + //create input and output exchange items from the groups defined above. + int group = 0; + foreach (KeyValuePair> item in groupItems) + { + group++; + for (int i = 0; i <= item.Value.Count - 1; i++) + { + string seriesID = item.Value[i]; + string[] details = item.Key.ToString().Split(':'); + + Unit u = new Unit(); + u.Description = details[1]; + u.ID = details[1]; + + Quantity q = new Quantity(); + q.Description = details[0]; + q.ID = details[0]; + q.ValueType = OpenMI.Standard.ValueType.Scalar; + q.Unit = u; + + ElementSet eset = new ElementSet(); + eset.Description = seriesID; + eset.ID = seriesID; + eset.ElementType = ElementType.IDBased; + + InputExchangeItem input = new InputExchangeItem(); + input.Quantity = q; + input.ElementSet = eset; + _inputExchangeItems.Add(input); + } + } + + foreach (KeyValuePair> item in OutputGroupItems) + { + for (int i = 0; i <= item.Value.Count - 1; i++) + { + string seriesID = item.Value[i]; + string[] details = item.Key.ToString().Split(':'); + + Unit u = new Unit(); + u.Description = details[2]; + u.ID = details[2]; + + Quantity q = new Quantity(); + q.Description = details[1]; + q.ID = details[1]; + q.ValueType = OpenMI.Standard.ValueType.Scalar; + q.Unit = u; + + ElementSet eset = new ElementSet(); + eset.Description = details[0]; + eset.ID = details[0]; + eset.ElementType = ElementType.IDBased; + try + { + int elementCount = Convert.ToInt32(details[3].Split('=')[1]); + for (int k = 0; k <= elementCount - 1; k++) + { + Element e = new Element(); + eset.AddElement(e); + } + } + catch (Exception) { } + + OutputExchangeItem input = new OutputExchangeItem(); + input.Quantity = q; + input.ElementSet = eset; + _outputExchangeItems.Add(input); + } + } + } + + public override ITimeSpan TimeHorizon + { + get { return new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(start), new TimeStamp(end)); } + } + + public override void AddLink(ILink link) + { + base.AddLink(link); + + //save the link + // + + //get the id of the target element set + string id = link.TargetElementSet.ID; + + //get the corresponding input and output exchange item index + int inIndex = 0; int outIndex = 0; + for (int i = 0; i <= _inputExchangeItems.Count - 1; i++) + { + if (_inputExchangeItems[i].ElementSet.ID == id) + { + inIndex = i; break; + } + } + for (int i = 0; i <= _outputExchangeItems.Count - 1; i++) + { + if (_outputExchangeItems[i].ElementSet.ID == id) + { + outIndex = i; break; + } + } + + //update input and output exchange item elementsets and quantities + //Unit u = new Unit(); + + //u.Description = link.SourceQuantity.Unit.Description; + //u.ID = link.SourceQuantity.Unit.ID; + + Quantity q = new Quantity(); + q = (Quantity)link.SourceQuantity; + //q.Description = link.SourceQuantity.Description; + //q.ID = link.SourceQuantity.ID; + //q.ValueType = link.SourceQuantity.ValueType; + //q.Unit = link.SourceQuantity.Unit; + + ElementSet eset = new ElementSet(); + //eset.Description = link.SourceElementSet.Description; + //eset.ID = link.SourceElementSet.ID; + //eset.ElementType = link.SourceElementSet.ElementType; + eset = (ElementSet)link.SourceElementSet; + + //HACK: Right now this assumes there is only one outputexchangeitem! + //HACK: Also assumes that the output elementset will contain the same elements as the element set of the first link + //check to see if the output exchange item has been defined yet + if (_outputExchangeItems[0].ElementSet.GetElementID(0) == "Empty") + { + OutputExchangeItem Output = (OutputExchangeItem)_outputExchangeItems[0]; + //Quantity OutputQ = (Quantity)Output.Quantity; + ElementSet OutputE = (ElementSet)Output.ElementSet; + OutputE.ElementType = eset.ElementType; + + //int min = 100000; + //int index = 0; + //for (int o = 0; o <= _inputExchangeItems.Count - 1; o++) + // if (_inputExchangeItems[o].ElementSet != OutputE) + // if (_inputExchangeItems[o].ElementSet.ElementCount < min) + // { + // min = _inputExchangeItems[o].ElementSet.ElementCount; + // index = o; + // } + + + Element e = OutputE.GetElement(0); + e.ID = eset.GetElementID(0); + Vertex v = new Vertex(); + e.Vertices[0].x = eset.GetXCoordinate(0, 0); + e.Vertices[0].y = eset.GetYCoordinate(0, 0); + //e.AddVertex(v); + + for (int o = 1; o <= eset.Elements.Length - 1; o++) + { + e = new Element(eset.GetElementID(o)); + v = new Vertex(); + v.x = eset.GetXCoordinate(o, 0); + v.y = eset.GetYCoordinate(o, 0); + e.AddVertex(v); + OutputE.AddElement(e); + } + + Output.ElementSet = OutputE; + //_outputExchangeItems.Add(output); + + } + + //generate an output exchange item based on the input its getting + OutputExchangeItem output = new OutputExchangeItem(); + output.Quantity = q; + output.ElementSet = eset; + if (!_outputExchangeItems.Contains(output)) + { + eset.Description = "Time Matched: " + output.Quantity.ID; + output.ElementSet = eset; + _outputExchangeItems.Add(output); + } + + //create a link to reflect the info we're getting from the source component + Link l = new Link(); + l.ID = link.ID; + l.SourceComponent = link.SourceComponent; + l.SourceElementSet = link.SourceElementSet; + l.SourceQuantity = link.SourceQuantity; + l.TargetComponent = link.TargetComponent; + l.TargetElementSet = eset; + l.TargetQuantity = q; + + //get the earliest time (this will determine a start time based on source component, unless one is provided in the omi) + if(this.start == -999) + if (_currentTime < l.SourceComponent.TimeHorizon.Start.ModifiedJulianDay) + _currentTime = l.SourceComponent.TimeHorizon.Start.ModifiedJulianDay; + + //add updated link instead of the placeholder one + _links.Add(link.ID, l); + + //Subscribe to events + + + System.Collections.Hashtable hashtable = new Hashtable(); + if (link.SourceComponent != this) + { + ////get the exchange item info + //string value = link.SourceQuantity.ID + "," + link.SourceElementSet.ID; + //hashtable.Add("OutputExchangeItem", value); + + string value = link.TargetQuantity.ID + "," + link.TargetElementSet.ID; + hashtable.Add("InputExchangeItem", value); + + //add the time horizon info + hashtable.Add("TimeHorizon",link.SourceComponent.TimeHorizon); + + //add the link info + hashtable.Add("Link", link); + + //pass this info to the IRunEngine, via Intitialize + _engineApiAccess.Initialize(hashtable); + + //set the time horizon for the LinkableRunEngine + Oatc.OpenMI.Sdk.Backbone.TimeSpan timehorizon = (Oatc.OpenMI.Sdk.Backbone.TimeSpan)link.SourceComponent.TimeHorizon; + if (timehorizon.Start.ModifiedJulianDay > start) + start = timehorizon.Start.ModifiedJulianDay; + if (timehorizon.End.ModifiedJulianDay < end) + end = timehorizon.End.ModifiedJulianDay; + } + else + { + //get the exchange item info + string value = link.SourceQuantity.ID + "," + link.SourceElementSet.ID; + hashtable.Add("OutputExchangeItem", value); + + //add the link info + hashtable.Add("Link", link); + + //pass this info to the IRunEngine, via Intitialize + _engineApiAccess.Initialize(hashtable); + + //lc = link.TargetComponent; + } + + + + } + + public override void RemoveLink(string LinkID) + { + base.RemoveLink(LinkID); + + Link link = (Link)_links[LinkID]; + Quantity q = new Quantity(); + q = (Quantity)link.SourceQuantity; + + + ElementSet eset = new ElementSet(); + eset = (ElementSet)link.SourceElementSet; + + InputExchangeItem input = new InputExchangeItem(); + input.Quantity = q; + input.ElementSet = eset; + + //generate an output exchange item based on the input its getting + OutputExchangeItem output = new OutputExchangeItem(); + output.Quantity = q; + output.ElementSet = eset; + + //remove link + if (_outputExchangeItems.Contains(output)) + _outputExchangeItems.Remove(output); + + if (_inputExchangeItems.Contains(input)) + _inputExchangeItems.Remove(input); + + _links.Remove(LinkID); + } + public override IValueSet GetValues(ITime time, string LinkID) + { + Link l = (Link)_links[LinkID]; + if (l.TargetComponent.ModelID != "Oatc.OpenMI.Gui.Trigger") + { + string quantity = l.SourceQuantity.ID; + string elementset = l.SourceElementSet.ID; + + ScalarSet ss = (ScalarSet)EngineApiAccess.GetValues(quantity, elementset); + + return ss; + } + else + { + return base.GetValues(time, LinkID); + } + } + + /// + /// Reads the Configuration file, and creates OpenMI exchange items + /// + /// path pointing to the components comfiguration (XML) file + public void SetVariablesFromConfigFile(string configFile) + { + //Read config file + XmlDocument doc = new XmlDocument(); + doc.Load(configFile); + XmlElement root = doc.DocumentElement; + XmlNodeList outputExchangeItems = root.SelectNodes("//OutputExchangeItem"); + + foreach (XmlNode outputExchangeItem in outputExchangeItems) + { + OutputExchangeItem o = (OutputExchangeItem)CreateExchangeItemsFromXMLNode(outputExchangeItem, "OutputExchangeItem"); + _outputExchangeItems.Add(o); + string Key = o.ElementSet.ID + ":" + o.Quantity.ID; + System.Collections.Hashtable hashtable = new Hashtable(); + hashtable.Add("OutputExchangeItem", Key); + + //pass this info to the IRunEngine, via Intitialize + _engineApiAccess.Initialize(hashtable); + } + + XmlNodeList inputExchangeItems = root.SelectNodes("//InputExchangeItem"); + foreach (XmlNode inputExchangeItem in inputExchangeItems) + { + InputExchangeItem i = (InputExchangeItem) CreateExchangeItemsFromXMLNode(inputExchangeItem, "InputExchangeItem"); + _inputExchangeItems.Add(i); + } + + XmlNode timeHorizon = root.SelectSingleNode("//TimeHorizon"); + this.start = CalendarConverter.Gregorian2ModifiedJulian(Convert.ToDateTime(timeHorizon["StartDateTime"].InnerText)); + } + + private IExchangeItem CreateExchangeItemsFromXMLNode(XmlNode ExchangeItem, string Identifier) + { + XmlNodeList dimensions = null; + //get the Dimensions node by iterating through some nodes. + foreach (XmlNode child in ExchangeItem.ChildNodes) + { + if(child.Name == "Quantity") + { + foreach (XmlNode node in child.ChildNodes) + { + if(node.Name == "Dimensions") + dimensions = node.ChildNodes; + } + } + } + + //Create Dimensions + Dimension omiDimensions = new Dimension(); + + //XmlNodeList dimensions = ExchangeItem.SelectNodes("//Dimensions/Dimension"); // You can filter elements here using XPath + foreach (XmlNode dimension in dimensions) + { + if (dimension["Base"].InnerText == "Length") + { + omiDimensions.SetPower(DimensionBase.Length, Convert.ToDouble(dimension["Power"].InnerText)); + } + else if (dimension["Base"].InnerText == "Time") + { + omiDimensions.SetPower(DimensionBase.Time, Convert.ToDouble(dimension["Power"].InnerText)); + } + else if (dimension["Base"].InnerText == "AmountOfSubstance") + { + omiDimensions.SetPower(DimensionBase.AmountOfSubstance, Convert.ToDouble(dimension["Power"].InnerText)); + } + else if (dimension["Base"].InnerText == "Currency") + { + omiDimensions.SetPower(DimensionBase.Currency, Convert.ToDouble(dimension["Power"].InnerText)); + } + else if (dimension["Base"].InnerText == "ElectricCurrent") + { + omiDimensions.SetPower(DimensionBase.ElectricCurrent, Convert.ToDouble(dimension["Power"].InnerText)); + } + else if (dimension["Base"].InnerText == "LuminousIntensity") + { + omiDimensions.SetPower(DimensionBase.LuminousIntensity, Convert.ToDouble(dimension["Power"].InnerText)); + } + else if (dimension["Base"].InnerText == "Mass") + { + omiDimensions.SetPower(DimensionBase.Mass, Convert.ToDouble(dimension["Power"].InnerText)); + } + else if (dimension["Base"].InnerText == "Temperature") + { + omiDimensions.SetPower(DimensionBase.Temperature, Convert.ToDouble(dimension["Power"].InnerText)); + } + } + + //Create Units + Unit _omiUnits = new Unit(); + XmlNode units = ExchangeItem.SelectSingleNode("Quantity/Unit"); + _omiUnits.ID = units["ID"].InnerText; + if (units["Description"] != null) _omiUnits.Description = units["Description"].InnerText; + if (units["ConversionFactorToSI"] != null) _omiUnits.ConversionFactorToSI = Convert.ToDouble(units["ConversionFactorToSI"].InnerText); + if (units["OffSetToSI"] != null) _omiUnits.OffSetToSI = Convert.ToDouble(units["OffSetToSI"].InnerText); + + //Create Quantity + Quantity omiQuantity = new Quantity(); + XmlNode quantity = ExchangeItem.SelectSingleNode("Quantity"); + omiQuantity.ID = quantity["ID"].InnerText; + if (quantity["Description"] != null) omiQuantity.Description = quantity["Description"].InnerText; + omiQuantity.Dimension = omiDimensions; + omiQuantity.Unit = _omiUnits; + if (quantity["ValueType"] != null) + { + if (quantity["ValueType"].InnerText == "Scalar") + { + omiQuantity.ValueType = OpenMI.Standard.ValueType.Scalar; + } + else if (quantity["ValueType"].InnerText == "Vector") + { + omiQuantity.ValueType = OpenMI.Standard.ValueType.Vector; + } + } + + //Create Element Set + ElementSet omiElementSet = new ElementSet(); + XmlNode elementSet = ExchangeItem.SelectSingleNode("ElementSet"); + omiElementSet.ID = elementSet["ID"].InnerText; + if (elementSet["Description"] != null) omiElementSet.Description = elementSet["Description"].InnerText; + + try + { + //add elements from shapefile to element set + string _shapefilepath = elementSet["ShapefilePath"].InnerText; + omiElementSet = AddElementsFromShapefile(omiElementSet, _shapefilepath); + + } + catch (Exception) + { + try + { + //add elements from shapefile to element set + int numElements = Convert.ToInt32(elementSet["NumberOfElements"].InnerText); + omiElementSet.ElementType = ElementType.IDBased; + for (int i = 0; i <= numElements-1; i++) + { + Element e = new Element(); + Vertex v = new Vertex(); + e.AddVertex(v); + omiElementSet.AddElement(e); + } + } + catch (Exception) + { + Debug.WriteLine("An Element Set has not been declared using AddElementsFromShapefile"); + + //make sure that all output exchange items have at least 1 element + if (Identifier == "OutputExchangeItem") + { + //create at least one element + omiElementSet.ElementType = ElementType.IDBased; + + Element e = new Element("Empty"); + Vertex v = new Vertex(); + e.AddVertex(v); + omiElementSet.AddElement(e); + } + } + + } + + + if (Identifier == "OutputExchangeItem") + { + //create exchange item + OutputExchangeItem omiOutputExchangeItem = new OutputExchangeItem(); + omiOutputExchangeItem.Quantity = omiQuantity; + omiOutputExchangeItem.ElementSet = omiElementSet; + + return omiOutputExchangeItem; + + //add the output exchange item to the list of output exchange items for the component + //this._outputs.Add(omiOutputExchangeItem); + //if (!this._quantities.ContainsKey(omiQuantity.ID)) this._quantities.Add(omiQuantity.ID, omiQuantity); + //if (!this._elementSets.ContainsKey(omiElementSet.ID)) this._elementSets.Add(omiElementSet.ID, omiElementSet); + } + else if (Identifier == "InputExchangeItem") + { + //create exchange item + InputExchangeItem omiInputExchangeItem = new InputExchangeItem(); + omiInputExchangeItem.Quantity = omiQuantity; + omiInputExchangeItem.ElementSet = omiElementSet; + + return omiInputExchangeItem; + + //add the output exchange item to the list of output exchange items for the component + //this._inputs.Add(omiInputExchangeItem); + //if (!this._quantities.ContainsKey(omiQuantity.ID)) this._quantities.Add(omiQuantity.ID, omiQuantity); + //if (!this._elementSets.ContainsKey(omiElementSet.ID)) this._elementSets.Add(omiElementSet.ID, omiElementSet); + } + else + { + throw new Exception(" \"" + Identifier + "\" is not a valid exchange item identifier"); + } + + } + public ElementSet AddElementsFromShapefile(ElementSet omiElementSet, string shapefilePath) + { + //this uses the free SharpMap API for reading a shapefile + VectorLayer myLayer = new VectorLayer("elements_layer"); + myLayer.DataSource = new ShapeFile(shapefilePath); + myLayer.DataSource.Open(); + + //set spatial reference from shapefile + SpatialReference sprf = new SpatialReference(); + sprf.ID = myLayer.DataSource.SRID.ToString(); + omiElementSet.SpatialReference = sprf; + + //add elements to elementset from shapefile + for (uint i = 0; i < myLayer.DataSource.GetFeatureCount(); ++i) + { + + FeatureDataRow feat = myLayer.DataSource.GetFeature(i); + string GeometryType = Convert.ToString( + feat.Geometry.AsText().Substring( + 0, feat.Geometry.AsText().IndexOf(' '))); + + Element e = new Element(); + + if (feat.Table.Columns.IndexOf("HydroCode") != -1) + e.ID = feat.ItemArray[feat.Table.Columns.IndexOf("HydroCode")].ToString(); + + if (GeometryType == "POINT") + { + omiElementSet.ElementType = ElementType.XYPoint; + Point p = (Point)feat.Geometry; + Vertex v = new Vertex(); + v.x = p.X; + v.y = p.Y; + e.AddVertex(v); + } + if (GeometryType == "POLYGON") + { + omiElementSet.ElementType = ElementType.XYPolygon; + Polygon p = (Polygon)feat.Geometry; + LinearRing lr = p.ExteriorRing; + + //Only loop until lr.Vertices.Count-2 b/c the first element is the same + // as the last element within the exterior ring. This will thrown an error + // within the OATC element mapper, when trying to map elements. Also this + // loop arranges the vertices of the exterior ring in counter clockwise order + // as needed for the element mapping. + for (int j = lr.Vertices.Count - 2; j >= 0; j--) + { + Vertex v = new Vertex(); + v.x = lr.Vertices[j].X; + v.y = lr.Vertices[j].Y; + e.AddVertex(v); + } + } + if (GeometryType == "LINESTRING") + { + omiElementSet.ElementType = ElementType.XYPolyLine; + LineString ls = (LineString)feat.Geometry; + //Point endpt = ls.EndPoint; + //Point startpt = ls.StartPoint; + for (int j = 0; j < ls.Vertices.Count; j++) + { + Vertex v = new Vertex(); + v.x = ls.Vertices[j].X; + v.y = ls.Vertices[j].Y; + e.AddVertex(v); + } + + } + omiElementSet.AddElement(e); + } + return omiElementSet; + } + + } + + + class LoadCalculatorEngine : IRunEngine + { + //private Dictionary _links; + private Dictionary> _inputExchangeItems; + private Dictionary> _outputExchangeItems; + private Dictionary _values; + private Dictionary _links; + private System.Collections.Hashtable _properties; + private double _earliestInputTime; + private double start; + private double end; + private double _currentTime; + private int _timeIncrement; //in seconds (should be specifiec by the user) + private string _modelID; + private List _results = new List(); + + public LoadCalculatorEngine(int timeIncrement, string modelID) + { + _inputExchangeItems = new Dictionary>(); + _outputExchangeItems = new Dictionary>(); + _values = new Dictionary(); + _links = new Dictionary(); + + start = CalendarConverter.Gregorian2ModifiedJulian(new DateTime(1900,01,01,00,00,00)); + end = CalendarConverter.Gregorian2ModifiedJulian(new DateTime(2011,01,01,00,00,00)); + _earliestInputTime = end; + _currentTime = -999; + this._timeIncrement = timeIncrement; + this._modelID = modelID; + } + + + #region IRunEngine Members + + public void Dispose() + { + } + public void Finish() + { + System.IO.StreamWriter sw = new System.IO.StreamWriter("./LoadCalculatorOutput.csv"); + for (int i = 0; i <= _results.Count - 1; i++) + { + sw.WriteLine(_results[i]); + } + sw.Close(); + } + public string GetComponentDescription() + { + return "ComponentDescription: Test"; + } + public string GetComponentID() + { + return "ComponentID: Test"; + } + public ITime GetCurrentTime() + { + if (_currentTime == -999) + { + _currentTime = start; + } + return new TimeStamp(_currentTime); + } + public ITimeStamp GetEarliestNeededTime() + { + return new TimeStamp(this.start); + } + public ITime GetInputTime(string QuantityID, string ElementSetID) + { + return new TimeStamp(this._currentTime); + } + public double GetMissingValueDefinition() + { + return -999; + } + public void Initialize(System.Collections.Hashtable properties) + { + //check if the input arg are and Input or Output Exchange Item + if (properties.ContainsKey("InputExchangeItem")) + { + //get the input quantity and element set ids + string value = properties["InputExchangeItem"].ToString(); + //save them + if(_inputExchangeItems.ContainsKey(value.Split(',')[0])) + _inputExchangeItems[value.Split(',')[0]].Add( value.Split(',')[1] ); + else + _inputExchangeItems.Add(value.Split(',')[0], new List(){value.Split(',')[1]}); + + ////get the output quantity and element set ids + //value = properties["OutputExchangeItem"].ToString(); + ////save them + //_outputExchangeItems.Add["OutputExchangeItem + + //get the time horizon info + Oatc.OpenMI.Sdk.Backbone.TimeSpan timehorizon = (Oatc.OpenMI.Sdk.Backbone.TimeSpan)properties["TimeHorizon"]; + //adjust the start and end times + if (timehorizon.Start.ModifiedJulianDay > start) + start = timehorizon.Start.ModifiedJulianDay; + if (timehorizon.End.ModifiedJulianDay < end) + end = timehorizon.End.ModifiedJulianDay; + + + Link l = (Link)properties["Link"]; + //get the link info + _links.Add(l.ID, l); + + ////get the link info + //_links.Add(value.Split(',')[0] + ":" + value.Split(',')[1], (Link)properties["Link"]); + + } + else + { + //get the quantity and element set ids + string value = properties["OutputExchangeItem"].ToString(); + + if (value.Contains(':')) //output defined in omi or config file + { + + string elementSet = value.Split(':')[0]; + string quantity = value.Split(':')[1]; + //save them + if (_outputExchangeItems.ContainsKey(quantity)) + _outputExchangeItems[quantity].Add(elementSet); + else + _outputExchangeItems.Add(quantity, new List() { elementSet }); + + + } + else //ouput defined by links + { + //save them + if (_outputExchangeItems.ContainsKey(value.Split(',')[0])) + _outputExchangeItems[value.Split(',')[0]].Add(value.Split(',')[1]); + else + _outputExchangeItems.Add(value.Split(',')[0], new List() { value.Split(',')[1] }); + + Link l = (Link)properties["Link"]; + //get the link info + _links.Add(l.ID, l); + } + + + + } + } + public IValueSet GetValues(string QuantityID, string ElementSetID) + { + string key = QuantityID + ":" + ElementSetID; + //check to see if value exists + if (_values.ContainsKey(key)) + { + return _values[key]; + } + else + { + //if no value exists, then return nothing + return new ScalarSet(new double[0]); + } + } + public bool PerformTimeStep() + { + //request values for all input exchange items + List invals = new List(); + List inIds = new List(); + Dictionary invalues = new Dictionary(); + List links = new List(); + + bool setvals = true; + foreach (KeyValuePair link in _links) + { + Link l = link.Value; + + //get data from all incoming links + if (l.TargetComponent.ModelID == this._modelID) + { + + string quantity = l.SourceQuantity.ID; + string elementset = l.SourceElementSet.ID; + + ScalarSet ss = (ScalarSet)this.GetValues(l.TargetQuantity.ID, l.TargetElementSet.ID); + + if (invalues.ContainsKey(quantity+":"+elementset)) + { + invalues[quantity + ":" + elementset] = ss; + } + else + { + invalues.Add(quantity + ":" + elementset, ss); + } + invals.Add(ss); + links.Add(l); + + if (ss.data.Length == 0) + setvals = false; + } + } + string outstring = null; + //Perform Loading Calculation + if (setvals) + { + outstring = this._currentTime.ToString() + ","; + double[] loading = new double[invals[0].data.Length]; + //loop through the lesser of invals[0].data.length and invals[1].data.length + int max = 0; + for (int i = 0; i <= invals.Count - 1; i++) + if (invals[i].data.Length > max) + max = invals[i].data.Length; + + for (int i = 0; i <= max - 1; i++) + { + try + { + //string id1 = links[0].SourceElementSet.GetElementID(i); + //int id2 = links[1].SourceElementSet.GetElementIndex(id1); + + loading[i] = invals[0].data[i] * invals[1].data[i] * 86400; + + //check to see if either input value was unknown (i.e. zero) + if (loading[i] == 0) + loading[i] = -1; + + //HACK: Convert from m3/s to ft3/s + //loading[i] *= 0.02831685; + + outstring += loading[i].ToString() + ","; + } + catch (IndexOutOfRangeException) { } + } + + //set output values + foreach (KeyValuePair link in _links) + { + Link l = link.Value; + if (l.SourceComponent.ModelID == this._modelID) + { + string quantity = l.SourceQuantity.ID; + string elementset = l.SourceElementSet.ID; + string out_quantity = l.TargetQuantity.ID; + string out_elementset = l.TargetElementSet.ID; + + //if (_inputExchangeItems.ContainsKey(quantity)) + if (invalues.ContainsKey(quantity + ":" + elementset)) + { + try + { + this.SetValues(quantity, elementset, invalues[quantity + ":" + elementset]); + } + catch (Exception) { } + } + else + { + this.SetValues(quantity, elementset, new ScalarSet(loading)); + } + } + + } + } + else + { + foreach (KeyValuePair link in _links) + { + Link l = link.Value; + if (l.SourceComponent.ModelID == this._modelID) + { + string quantity = l.SourceQuantity.ID; + string elementset = l.SourceElementSet.ID; + + this.SetValues(quantity, elementset, new ScalarSet(new double[0])); //set null + } + } + } + + //save the results locally + if (outstring!=null) + this._results.Add(outstring); + + //advance time + DateTime newTime = CalendarConverter.ModifiedJulian2Gregorian(_currentTime).AddSeconds(_timeIncrement); + this._currentTime = CalendarConverter.Gregorian2ModifiedJulian(newTime); + + return true; + } + public void SetValues(string QuantityID, string ElementSetID, IValueSet values) + { + string key = QuantityID + ":" + ElementSetID; + + //check to see if value exists + if (_values.ContainsKey(key)) + { + //replace existing value + _values[key] = (ScalarSet)values; + } + else + { + //create a new entry + _values.Add(key, (ScalarSet)values); + } + } + + #endregion + + + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..01cc5704 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Test/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("Test")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7281894e-35bb-4109-82c2-b6aa8b2f21a7")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Test/Test.csproj b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Test/Test.csproj new file mode 100644 index 00000000..d8bc21a4 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Test/Test.csproj @@ -0,0 +1,89 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {F69B1608-D115-47F4-8E23-A8D1EBC9E850} + Library + Properties + Test + Test + v3.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\..\..\..\..\..\Program Files\TestDriven.NET 3\NUnit\2.5\framework\nunit.framework.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Sdk.Backbone.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\OpenMI.Standard.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + False + ..\..\..\..\..\..\..\..\..\Program Files\TestDriven.NET 3\NUnit\2.5\TestDriven.Framework.dll + + + + + + + + + {2672B7C8-BDAC-413A-AA08-6666D5B3BC64} + LoadCalculator + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Test/Test_Class.cs b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Test/Test_Class.cs new file mode 100644 index 00000000..c012c0f8 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/LoadCalculator/Test/Test_Class.cs @@ -0,0 +1,146 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using NUnit.Framework; +using OpenMI.Standard; +using System.Collections; +using LoadCalculator; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using System.Xml; +using System.Diagnostics; + +namespace Test +{ + [TestFixture] + public class Test_Class + { + LoadCalculator.LoadCalculatorLinkableEngine _engine; + + [TestFixtureSetUp] + public void Test_Setup() + { + + } + + [Test] + public void ExchangeItemsDefinedByConfig() + { + _engine = new LoadCalculator.LoadCalculatorLinkableEngine(); + + ArrayList componentArguments = new ArrayList(); + componentArguments.Add(new Argument("ConfigFile","./config.xml",true,"none")); + _engine.Initialize((IArgument[])componentArguments.ToArray(typeof(IArgument))); + int in_count = _engine.InputExchangeItemCount; + int out_count = _engine.OutputExchangeItemCount; + + for (int i = 0; i <= in_count - 1; i++) + { + InputExchangeItem ie = (InputExchangeItem)_engine.GetInputExchangeItem(i); + Debug.Write("Testing Input Element Count...");Assert.IsFalse(ie.ElementSet.ElementCount > 0);Debug.WriteLine("done."); + Debug.Write("Testing Input Conv2SI...");Assert.IsTrue(ie.Quantity.Unit.ConversionFactorToSI >= 0);Debug.WriteLine("done."); + Debug.Write("Testing Input Offset2SI...");Assert.IsTrue(ie.Quantity.Unit.OffSetToSI >= 0);Debug.WriteLine("done."); + } + + for (int i = 0; i <= out_count - 1; i++) + { + OutputExchangeItem oe = (OutputExchangeItem)_engine.GetOutputExchangeItem(i); + Debug.Write("Testing Output Element Count...");Assert.IsTrue(oe.ElementSet.ElementCount > 0);Debug.WriteLine("done."); + Debug.Write("Testing Output Conv2SI...");Assert.IsTrue(oe.Quantity.Unit.ConversionFactorToSI >= 0);Debug.WriteLine("done."); + Debug.Write("Testing Output Offset2SI...");Assert.IsTrue(oe.Quantity.Unit.OffSetToSI >= 0);Debug.WriteLine("done."); + } + + Assert.IsTrue(_engine.TimeHorizon.Start.ModifiedJulianDay == CalendarConverter. + Gregorian2ModifiedJulian(new DateTime(2009, 10, 27, 08, 30, 00))); + + _engine.Finish(); + + } + [Test] + public void ExchangeItemsDefinedByOmi() + { + _engine = new LoadCalculator.LoadCalculatorLinkableEngine(); + + ArrayList componentArguments = new ArrayList(); + componentArguments.Add(new Argument("StartDateTime", "10/27/2009 8:30:00AM", true, "none")); + componentArguments.Add(new Argument("TimeStepInSeconds", "86400", true, "none")); + componentArguments.Add(new Argument("InputTimeSeries", "Discharge:[cms]", true, "none")); + componentArguments.Add(new Argument("InputTimeSeries", "Concentration:[mg/l]", true, "none")); + componentArguments.Add(new Argument("OutputTimeSeries", "GillsCreek:Nitrogen Loading:[kg/day]:NumElements=1", true, "none")); + + _engine.Initialize((IArgument[])componentArguments.ToArray(typeof(IArgument))); + + int in_count = _engine.InputExchangeItemCount; + int out_count = _engine.OutputExchangeItemCount; + + for (int i = 0; i <= in_count - 1; i++) + { + InputExchangeItem ie = (InputExchangeItem)_engine.GetInputExchangeItem(i); + Debug.Write("Testing Input Element Count..."); Assert.IsFalse(ie.ElementSet.ElementCount > 0); Debug.WriteLine("done."); + Debug.Write("Testing Input Conv2SI..."); Assert.IsTrue(ie.Quantity.Unit.ConversionFactorToSI >= 0); Debug.WriteLine("done."); + Debug.Write("Testing Input Offset2SI..."); Assert.IsTrue(ie.Quantity.Unit.OffSetToSI >= 0); Debug.WriteLine("done."); + } + + for (int i = 0; i <= out_count - 1; i++) + { + OutputExchangeItem oe = (OutputExchangeItem)_engine.GetOutputExchangeItem(i); + Debug.Write("Testing Output Element Count..."); Assert.IsTrue(oe.ElementSet.ElementCount > 0); Debug.WriteLine("done."); + Debug.Write("Testing Output Conv2SI..."); Assert.IsTrue(oe.Quantity.Unit.ConversionFactorToSI >= 0); Debug.WriteLine("done."); + Debug.Write("Testing Output Offset2SI..."); Assert.IsTrue(oe.Quantity.Unit.OffSetToSI >= 0); Debug.WriteLine("done."); + } + + Assert.IsTrue(_engine.TimeHorizon.Start.ModifiedJulianDay == CalendarConverter. + Gregorian2ModifiedJulian(new DateTime(2009, 10, 27, 08, 30, 00))); + + _engine.Finish(); + } + [Test] + public void IdBasedElementSet_DefinedInConfig() + { + _engine = new LoadCalculator.LoadCalculatorLinkableEngine(); + + System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); + doc.Load("./config.xml"); + XmlElement root = doc.DocumentElement; + XmlNodeList outputExchangeItems = root.SelectNodes("//OutputExchangeItem"); + foreach(XmlNode exchangeItem in outputExchangeItems) + { + XmlNode elementSet = exchangeItem.SelectSingleNode("ElementSet"); + XmlNode numelem = doc.CreateElement("NumberOfElements"); + numelem.InnerText = "10"; + elementSet.AppendChild(numelem); + } + + doc.Save("./config_temp.xml"); + + + + + ArrayList componentArguments = new ArrayList(); + componentArguments.Add(new Argument("ConfigFile", "./config_temp.xml", true, "none")); + _engine.Initialize((IArgument[])componentArguments.ToArray(typeof(IArgument))); + + int out_count = _engine.OutputExchangeItemCount; + + for (int i = 0; i <= out_count - 1; i++) + { + OutputExchangeItem oe = (OutputExchangeItem)_engine.GetOutputExchangeItem(i); + Debug.Write("Testing Element Count..."); Assert.IsTrue(oe.ElementSet.ElementCount == 10); Debug.WriteLine("done."); + Debug.Write("Testing Element Type..."); Assert.IsTrue(oe.ElementSet.ElementType == ElementType.IDBased); Debug.WriteLine("done."); + Debug.Write("Testing Element Conv2SI..."); Assert.IsTrue(oe.Quantity.Unit.ConversionFactorToSI >= 0); Debug.WriteLine("done."); + Debug.Write("Testing Element Offset2SI..."); Assert.IsTrue(oe.Quantity.Unit.OffSetToSI >= 0); Debug.WriteLine("done."); + } + + Assert.IsTrue(_engine.TimeHorizon.Start.ModifiedJulianDay == CalendarConverter. + Gregorian2ModifiedJulian(new DateTime(2009, 10, 27, 08, 30, 00))); + + doc = null; + + System.IO.File.Delete("./config_temp.xml"); + + _engine.Finish(); + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/Config.xml b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/Config.xml new file mode 100644 index 00000000..dbfaefba --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/Config.xml @@ -0,0 +1,68 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + .\StreamNet.shp + 1 + + + Streamflow + Streamflow + + + Length + 3 + + + Time + -1 + + + + cfs + cubic feet per second + 1 + 0 + + Scalar + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + 1 + .\StreamNet.shp + + + Excess Rainfall + Excess Rainfall + + + 1 + Length + + + + in + inches + 1 + 0 + + Scalar + + + + + 08/20/2009 00:00:00 AM + 08/20/2009 12:00:00 PM + 3600 + + + Muskingum Routing Xml.Rpc Web Service + Python script that calculates that returns the stream flow at the outlet of a stream network + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/Muskingum.omi b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/Muskingum.omi new file mode 100644 index 00000000..ef3ff0fd --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/Muskingum.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.dbf b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.dbf new file mode 100644 index 00000000..e3892edd Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.prj b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.prj new file mode 100644 index 00000000..f7f2e098 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.sbn b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.sbn new file mode 100644 index 00000000..404a67b9 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.sbx b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.sbx new file mode 100644 index 00000000..8c5724d6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.shp b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.shp new file mode 100644 index 00000000..d4fe4f22 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.shp.xml b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.shp.xml new file mode 100644 index 00000000..bdcaa41a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.shp.xml @@ -0,0 +1,3 @@ + + +{B235146B-5BA8-4F42-83B0-7C6967BA65B5}2009031715453300FALSE20090317154533002009031715453300Dissolve StreamNetwork C:\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shp ARCID "GRID_CODE FIRST;FROM_COMID LAST;TO_COMID FIRST;K SUM;LENGTHFT SUM;X LAST" MULTI_PART DISSOLVE_LINESMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.StreamNetStreamNetvector digital data\\CE-51\C\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shpREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770StreamNetenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20090317ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://\\CE-51\C\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shpLocal Area Network0.000ShapefileVectorSimplePolylineFALSE0FALSEFALSEString0GCS_North_American_1983NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_IntlLambert Conformal Conic32.50000034.833333-81.00000031.8333332000000.0000000.000000coordinate pairinternational feet0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl0StreamNetFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.ARCIDARCIDNumber195FIRST_GRIDFIRST_GRIDNumber195LAST_FROM_LAST_FROM_Number195FIRST_TO_CFIRST_TO_CNumber195SUM_KSUM_KFloat1911SUM_LENGTHSUM_LENGTHFloat1911LAST_XLAST_XNumber19520090317 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.shx b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.shx new file mode 100644 index 00000000..8ebe4f3b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet2.dbf b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet2.dbf new file mode 100644 index 00000000..f04543a6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet2.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet2.prj b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet2.prj new file mode 100644 index 00000000..3a0cd51a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet2.prj @@ -0,0 +1 @@ +PROJCS["Lambert_Conformal_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["standard_parallel_1",32.5],PARAMETER["standard_parallel_2",34.83333333333334],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],UNIT["unknown",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet2.shp b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet2.shp new file mode 100644 index 00000000..d9f03b1e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet2.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet2.shx b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet2.shx new file mode 100644 index 00000000..95ad59a9 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/StreamNet2.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.dbf b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.dbf new file mode 100644 index 00000000..9afb29d4 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.prj b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.prj new file mode 100644 index 00000000..f7f2e098 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.sbn b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.sbn new file mode 100644 index 00000000..8d2221ff Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.sbx b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.sbx new file mode 100644 index 00000000..d1fb4ec7 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.shp b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.shp new file mode 100644 index 00000000..64627f61 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.shp.xml b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.shp.xml new file mode 100644 index 00000000..ceeb1bbb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.shp.xml @@ -0,0 +1,3 @@ + + +2009101215052500FALSE20090317154533002009031715453300Dissolve StreamNetwork C:\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shp ARCID "GRID_CODE FIRST;FROM_COMID LAST;TO_COMID FIRST;K SUM;LENGTHFT SUM;X LAST" MULTI_PART DISSOLVE_LINES{D4BEF9BC-203E-4B04-AC27-D3F62C99F441}Microsoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.StreamNetStreamNetvector digital dataREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770StreamNetenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20090317ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://Local Area Network0.000ShapefileVectorSimplePolylineFALSE0FALSEFALSEString0GCS_North_American_1983NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_IntlLambert Conformal Conic32.50000034.833333-81.00000031.8333332000000.0000000.000000coordinate pairinternational feet0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl0StreamNetFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.ARCIDARCIDNumber195FIRST_GRIDFIRST_GRIDNumber195LAST_FROM_LAST_FROM_Number195FIRST_TO_CFIRST_TO_CNumber195SUM_KSUM_KFloat1911SUM_LENGTHSUM_LENGTHFloat1911LAST_XLAST_XNumber19520090317Dataset copied.2009100113311100Dataset copied.2009100814163900Dataset copied.2009101215052500 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.shx b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.shx new file mode 100644 index 00000000..e5db286b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_2Reach.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.dbf b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.dbf new file mode 100644 index 00000000..1b7e5434 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.prj b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.prj new file mode 100644 index 00000000..f7f2e098 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.sbn b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.sbn new file mode 100644 index 00000000..56522e26 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.sbx b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.sbx new file mode 100644 index 00000000..7c93f793 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.shp b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.shp new file mode 100644 index 00000000..0ffea81a Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.shp.xml b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.shp.xml new file mode 100644 index 00000000..aa8070aa --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.shp.xml @@ -0,0 +1,3 @@ + + +2009101414343300FALSE20090317154533002009031715453300Dissolve StreamNetwork C:\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shp ARCID "GRID_CODE FIRST;FROM_COMID LAST;TO_COMID FIRST;K SUM;LENGTHFT SUM;X LAST" MULTI_PART DISSOLVE_LINES{A40A9554-426D-4B32-AC5C-D68CECF5C827}Microsoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.StreamNetStreamNetvector digital dataREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770StreamNetenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20090317ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://Local Area Network0.000ShapefileVectorSimplePolylineFALSE0FALSEFALSEString0GCS_North_American_1983NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_IntlLambert Conformal Conic32.50000034.833333-81.00000031.8333332000000.0000000.000000coordinate pairinternational feet0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl0StreamNetFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.ARCIDARCIDNumber195FIRST_GRIDFIRST_GRIDNumber195LAST_FROM_LAST_FROM_Number195FIRST_TO_CFIRST_TO_CNumber195SUM_KSUM_KFloat1911SUM_LENGTHSUM_LENGTHFloat1911LAST_XLAST_XNumber19520090317Dataset copied.2009100113311100Dataset copied.2009101414343300 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.shx b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.shx new file mode 100644 index 00000000..a291e6d3 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Data/UnitTest_3Reach.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Muskingum Routing.sln b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Muskingum Routing.sln new file mode 100644 index 00000000..f12e7480 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Muskingum Routing.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "edu.SC.MuskingumMethod", "Source\edu.SC.MuskingumMethod.csproj", "{DAB855FC-F8F0-4066-BA84-E443A4B8640A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Muskingum.Test", "Test\Muskingum.Test.csproj", "{839C65D0-32FD-4DFB-91B4-89F8BA872B12}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DAB855FC-F8F0-4066-BA84-E443A4B8640A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DAB855FC-F8F0-4066-BA84-E443A4B8640A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DAB855FC-F8F0-4066-BA84-E443A4B8640A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DAB855FC-F8F0-4066-BA84-E443A4B8640A}.Release|Any CPU.Build.0 = Release|Any CPU + {839C65D0-32FD-4DFB-91B4-89F8BA872B12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {839C65D0-32FD-4DFB-91B4-89F8BA872B12}.Debug|Any CPU.Build.0 = Debug|Any CPU + {839C65D0-32FD-4DFB-91B4-89F8BA872B12}.Release|Any CPU.ActiveCfg = Release|Any CPU + {839C65D0-32FD-4DFB-91B4-89F8BA872B12}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Main.py b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Main.py new file mode 100644 index 00000000..c35a476e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Main.py @@ -0,0 +1,22 @@ +import Muskingum +import xmlrpclib + +#Implement Service Methods +s = xmlrpclib.ServerProxy('http://localhost:8000') + +c = Muskingum.Engine() + +stream = "20414204240.120.520416204140.130.220418204160.110.220422204400.10.320424204220.150.220426204300.170.220428204180.20.220430204280.30.320432204260.20.420434204320.40.420436204340.30.520438204360.50.320440204580.40.320458215280.220.321528220620.30.222062221500.30.322150221920.340.222192245860.350.424582529000.370.324584245900.40.524586245840.290.224588245820.20.224590245880.110.2360006/21/2008 1:00:00 AM06/21/2008 2:00:00 AM" +#stream = "20414204240.120.520416204140.130.2" + +c.initialize(stream) +##timestep +inflowVals = "107" +c.performTimeStep(inflowVals) +##timestep 2 +inflowVals = [2000, 0] +#c.performTimeStep(inflowVals) +##timestep 3 +#inflowVals = [4200, 0] +#c.performTimeStep(inflowVals) + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Muskingum.cs b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Muskingum.cs new file mode 100644 index 00000000..49f29089 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Muskingum.cs @@ -0,0 +1,371 @@ +#region MetaData +//----- Component Description ----- +//This component computes the routed streamflow through a channel network. + +//----- Input Files ----- +// This component requires 2 input files, a config.xml file and an elementset.shp that is referenced within +//the configuration file. All input parameters must be included within one shapefile. Each row of the +//attribute table represents an individual reach and must contain the following columns. +// +// GridID = The id of each reach. Used to ensure that element sets align properly. This value should +// correspond with the ID's of the input element set. +// FROM_NODE = The start point ID of the reach (same as GridID) +// TO_NODE = The end point ID of the reach +// K = the Proportionality Coefficient approximated as the time of travel of the flood wave through the reach +// X = Wedge storage weighting factor, X = 0 for reservoir-type storage, X = 0.5 for 'full' wedge storage. 0.0 <= X <= 0.5 +// +//----- Additional Notes ----- +// This model compontent is currently designed for elementset.shp's that contain only 1 outlet. The main +//computations occur within the Muskingum Routing Web Service. This script mainly manages sending input +//values to the web service, retriving results, and outputing results. The Muskingum Routing web service +//is written in python and utilizes an XML-RPC type web service. +#endregion + +#define DEBUG +//--- System Assemblies ---- +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.IO; +using System.Collections; +using System.Xml; +//--- OpenMI Assemblies ---- +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Wrapper; +//--- Project Assemblies ---- +using SMW; +//--- Web Service Assemblies ---- +using CookComputing.XmlRpc; +//--- SharpMap Assemblies ---- +using SharpMap.Layers; +using SharpMap.Data.Providers; +using SharpMap.Data; +//--- Debugging Assemblies ---- +using System.Diagnostics; +//--- SQL ---- +using System.Data.SqlClient; + +namespace edu.SC.Models.Routing +{ + public class Muskingum : Wrapper + { + + //--- GLOBAL VARIABLES --- + public DataTable elementValues = new DataTable(); + public string input_quantity; + public string output_quantity; + public string input_elementset; + public string output_elementset; + MuskingumPY model = XmlRpcProxyGen.Create(); + private Dictionary routed_outflow = new Dictionary(); + ArrayList vals = new ArrayList(); + ArrayList Datetime = new ArrayList(); + System.IO.StreamWriter sw; + string _outDir = null; + Dictionary reachOrder = new Dictionary(); + + double[] transformedInflow; + + //System.IO.StreamWriter sw2; + + /// + /// This method performs specified actions upon the closure of the model + /// + public override void Finish() + { + sw.Close(); + //sw2.Close(); + } + + /// + /// Used to Initialize the component. Performs routines that must be completed prior to simulation start. + /// + /// properties extracted from the components *.omi file + public override void Initialize(System.Collections.Hashtable properties) + { + //--- GET MODEL ATTRIBUTES FROM SMW --- + string config = null; + + //set the config path and output directory from the *.omi file. + foreach (DictionaryEntry p in properties) + { + if (p.Key.ToString() == "ConfigFile") + config = (string)properties["ConfigFile"]; + else if (p.Key.ToString() == "OutDir") + _outDir = (string)properties["OutDir"]; + + + } + + //lookup model's configuration file to determine interface properties + SetVariablesFromConfigFile(config); + SetValuesTableFields(); + + //input exchange item attributes + int num_inputs = this.GetInputExchangeItemCount(); + InputExchangeItem input = this.GetInputExchangeItem(num_inputs -1); + input_elementset = input.ElementSet.ID; + input_quantity = input.Quantity.ID; + //output exchange item attributes + int num_outputs = this.GetOutputExchangeItemCount(); + OutputExchangeItem output = this.GetOutputExchangeItem(num_outputs-1); + output_elementset = output.ElementSet.ID; + output_quantity = output.Quantity.ID; + //timehorizon attributes + ITimeSpan time_horizon = this.GetTimeHorizon(); + string start = CalendarConverter.ModifiedJulian2Gregorian(time_horizon.Start.ModifiedJulianDay).ToString(); + string end = CalendarConverter.ModifiedJulian2Gregorian(time_horizon.End.ModifiedJulianDay).ToString(); + //get shapefile path + string shapefilePath = this.GetShapefilePath(); + //get timestep + string timestep = this.GetTimeStep().ToString(); + + //this uses the free SharpMap API for reading a shapefile + VectorLayer myLayer = new VectorLayer("elements_layer"); + myLayer.DataSource = new ShapeFile(shapefilePath); + myLayer.DataSource.Open(); + + //initialize array to hold the transformed inflow values + int size = myLayer.DataSource.GetFeatureCount(); + transformedInflow = new double[size]; + + + //--- BUILD XML STRING TO INITIALIZE THE WEB SERVICE --- + + string reaches = ""; + for (uint i = 0; i < myLayer.DataSource.GetFeatureCount(); ++i) + { + FeatureDataRow feat = myLayer.DataSource.GetFeature(i); + + //TODO: eliminate this, by spatially referencing the elements + //Get the correct ArcID to ensure that the elementset will align correctly + + //This routine, ensures that the reaches are added to the XML stream such that the the elements + // align with the subwatersheds.shp. In order to do this I had to assign ArcID's that match the + // corresponding Subwatershed.shp elements. + bool IsCorrect = false; + + uint j = 0; + while (!IsCorrect) + { + feat = myLayer.DataSource.GetFeature(j); + if (feat.ItemArray[0].ToString() == (i + 1).ToString()) + IsCorrect = true; + else + j++; + } + + //Add the FROM attribute of each reach, in the order that + // ---> they are established within the xml string + ArrayList attributes = new ArrayList(); + attributes.Add(feat.ItemArray[feat.Table.Columns.IndexOf("TO_COMID")].ToString()); + attributes.Add(feat.ItemArray[feat.Table.Columns.IndexOf("FROM_COMID")].ToString()); + + //Add i to the reachOrder array. This will index the order in which values are retrieved + // --> from the upstream component. + reachOrder.Add(Convert.ToInt32(i), attributes); + + //Add shapefile attributes into the xml string + reaches += ""; + reaches += "" + feat.ItemArray[feat.Table.Columns.IndexOf("FROM_COMID")].ToString() + ""; + reaches += "" + feat.ItemArray[feat.Table.Columns.IndexOf("TO_COMID")].ToString() + ""; + reaches += "" + feat.ItemArray[feat.Table.Columns.IndexOf("K")].ToString() + ""; //TravelTime in hours + reaches += "" + feat.ItemArray[feat.Table.Columns.IndexOf("X")].ToString() + ""; + reaches += ""; + } + reaches += ""; + reaches += "" + timestep + ""; + reaches += "" + start + ""; + reaches += "" + end + ""; + reaches += ""; + + + //--- INITIALIZE THE WEB SERVICE --- + + bool init = model.initialize(reaches); + + if (init == false) + throw new Exception("The Muskingum Web Service Failed to Initialize"); + + + //Create a streamwriter to save results from Perform Time Step + if (_outDir != null) + { + try + { sw = new System.IO.StreamWriter(_outDir + "/MuskingumRouting_output.csv"); } + catch (SystemException e) + { + throw new Exception("The Muskingum (Python) Component was unable to create the desired output file. " + + "This is possibly due to an invalid \'OutDir\' field supplied in " + + "the *.omi file", e); + } + } + else + { + try { sw = new System.IO.StreamWriter("../MuskingumRouting_output.csv"); } + catch (SystemException e) + { + throw new Exception(" The Muskingum (Python) component failed in writing it output file to path " + + System.IO.Directory.GetCurrentDirectory() + ". This may be due to " + + "lack of user permissions.", e); + } + } + + + + } + + public override bool PerformTimeStep() + { + //--- GET INPUT VALUES --- + + //Get input streamflow + ScalarSet streamflow = (ScalarSet)this.GetValues(input_quantity, input_elementset); + + //transform streamflow to double[] + double[] inflow_vals = streamflow.data; + + + //--- TRANSFORM INPUT VALS TO BE APPLIED TO THEIR DOWNSTREAM CATCHMENT --- + + //initialize array (to hold transformed values) to zero + int index=-999; + for (int j = 0; j <= transformedInflow.Length - 1; j++) + transformedInflow[j] = 0.0; + + //object to hold any input values that are applied directly to the outlet (i.e. no routing) + double outlet = 0.0; + + for (int j = 0; j <= inflow_vals.Length - 1; j++) + { + //determine the "TO_COMID" for the reach corresponding to the first input element + string toID = Convert.ToString(reachOrder[j][0]); + + //determine the index of the reach corresponding to this "TO_COMID" + + //This checks the case where their is no downstream element (reach outlet is dennoted as TO_COMID = -1) + if (toID.ToUpper() == "-1") + { + //save outlet value + outlet += inflow_vals[j]; + } + else + { + //search for a "FROM_COMID" that matches this "TO_COMID" + foreach (KeyValuePair kvp in reachOrder) + { + if (Convert.ToString(kvp.Value[1]) == toID) + { + index = kvp.Key; + break; + } + } + //Transform this value, by adding it to the index of the "TO_COMID" + if(index != -999) + transformedInflow[index] += inflow_vals[j]; + } + } + + ////TODO: Remove + //foreach (Double inflow in transformedInflow) + // sw2.Write(inflow.ToString() + ","); + //sw2.Write("\n"); + + //Build inflow xml stream to send to the Web Service + string inflow_stream = ""; + foreach (Double inflow in transformedInflow) + inflow_stream += "" + inflow.ToString() + ""; + inflow_stream += ""; + + + //--- PERFORM COMPUTATION BY CALLING THE WEBSERVICE --- + + //Send xml stream to web service, and Perform Computation + string outflow_stream = model.performTimeStep(inflow_stream); + + //Parse outflow_stream into double[] + double[] outflow = FromXML(outflow_stream); + + //add values that are applied directly to the outlet + if (outflow.Length == 1) + outflow[0] += outlet; + else + throw new Exception("Error on line 253 of Muskingum Routing, resulting from multiple outlets"); + + //Save calculated values so they can be retrieved by a downstream component + this.SetValues(output_quantity, output_elementset, new ScalarSet(outflow)); + + + //--- PRINT RESULTS --- + + TimeStamp tt = (TimeStamp)this.GetCurrentTime(); + DateTime TT = CalendarConverter.ModifiedJulian2Gregorian(tt.ModifiedJulianDay); + sw.Write(TT.ToLongTimeString() + ","); + foreach (double Out in outflow) + { + sw.Write(Out.ToString() + ","); + vals.Add(Out); + //get current time and convert into UTC time + TimeStamp t = (TimeStamp)this.GetCurrentTime(); + DateTime T = CalendarConverter.ModifiedJulian2Gregorian(t.ModifiedJulianDay); + Datetime.Add(T); + } + sw.Write("\n"); + + //Advance time + this.AdvanceTime(); + return true; + } + + #region Auxilary Methods + + /// + /// Extracts the output values from the Web Service's XML stream + /// + /// the output stream from the Web Service's PerformTimeStep method + /// an array containing the values calculated by the Web Service + public double[] FromXML(string xml_stream) + { + XmlDocument xmldoc = new XmlDocument(); + xmldoc.Load(new StringReader(xml_stream)); + XmlElement elements = xmldoc.DocumentElement; + XmlNodeList children = elements.ChildNodes; + double[] vals = new double[children.Count]; + int i = 0; + foreach (XmlNode child in children) + vals[i] = Convert.ToDouble(child.InnerText); i++; + + return vals; + } + + #endregion + + + } + + + + /// + /// This routine initializes the webservice and defines the three methods within it. + /// + [XmlRpcUrl("http://localhost:8000/RPC2")] + public interface MuskingumPY : IXmlRpcProxy + { + [XmlRpcMethod("finalize")] + bool finalize(); + + //Returns true if it has completed initialization + [XmlRpcMethod("initialize")] + bool initialize(string XmlStream_reaches); + + //TODO: return the outflow at all reach outlets in the system + //Returns the outflow at the reach outlet + [XmlRpcMethod("performTimeStep")] + string performTimeStep(string inflow); + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Muskingum.omi b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Muskingum.omi new file mode 100644 index 00000000..9d7b87ef --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Muskingum.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Muskingum.py b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Muskingum.py new file mode 100644 index 00000000..18a81555 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Muskingum.py @@ -0,0 +1,253 @@ +import Muskingum +import networkx as nx +import time +import math +from StringIO import StringIO +from lxml import etree +from networkx import * +import matplotlib.pyplot as plot +from sys import stdout + +class Reach: + def __init__(self, uid, From, To, travel_time, x): + self.uid = uid + self.K = float(travel_time) + self.X = float(x) + self.Inflow = {} + self.Outflow = {} + self.C1 = 0 + self.C2 = 0 + self.C3 = 0 + self.From = From + self.To = To + +class Engine: + + def __init__(self): + # Create and output file for the reach flows + f = open('../MuskingumRouting_reachFlows.csv','w') + f.close() + print("Service started.") + + #def initialize(self, configfile, network_relat_path, stream_att_path): + def initialize(self, elementset): + stdout.write("\n--- Muskingum Web Service: Initialize Begin \n"); + + #---- Initalize global variables ---- + self.timestep_sec = 0 #time_step + self.current_time_sec = 0 # current_time + self.G = nx.DiGraph() + self.reaches = {} #Create reaches dictionary + + #---- Parse FROM, TO K, and X from the XML stream ---- + stdout.write(" Parsing FROM, K, and X from XML stream ... "); + elements = StringIO(elementset) + xmltree = etree.parse(elements) + #loop through all of the elements within the elementset + + for element in xmltree.getiterator('element'): + #loop through all throughhe child nodes of each element + for child in element.iterdescendants(): + if child.tag == "From": + From = child.text + elif child.tag =="To": + To = child.text + elif child.tag == "K": + K = child.text + elif child.tag == "X": + X = child.text + uid = int(From) + self.reaches[From] = Muskingum.Reach(uid, From, To, K, X) + # self.G.add_edge(self.reaches[From], self.reaches[To]) + uid += 1 + stdout.write("done.\n"); + + #---- Parse TIMESTEP, START TIME, and END TIME from the XML stream ---- + stdout.write(" Parsing start time, end time, and time step from XML stream ... "); + time_format1 = "%m/%d/%Y %H:%M:%S" + time_format2 = "%m/%d/%Y %H:%M:%S %p" + for element in xmltree.getiterator('TimeHorizon'): + for child in element.iterdescendants(): + if child.tag == "TimeStepInSeconds": + self.timestep_sec = float(child.text) + elif child.tag == "StartDateTime": + try: #timeformat 1 assumes no AM/PM + start_datetime = time.mktime(time.strptime(child.text, time_format1)) + except: #timeformat 2 assumes AM/PM + start_datetime = time.mktime(time.strptime(child.text, time_format2)) + elif child.tag == "EndDateTime": + try: #timeformat 1 assumes no AM/PM + end_datetime = time.mktime(time.strptime(child.text, time_format1)) + except: #timeformat 2 assumes AM/PM + end_datetime = time.mktime(time.strptime(child.text, time_format2)) + stdout.write("done.\n"); + + #---- Add edges to DiGraph ---- + stdout.write(" Building graph ... "); + for i in self.reaches: + try: + self.G.add_edge(self.reaches[i], self.reaches[self.reaches[i].To]) + except: + pass + self.n = nx.topological_sort(self.G) + stdout.write("done.\n"); + + #write header for output file + writer = open('../MuskingumRouting_reachFlows.csv','w') + for i in self.n: + writer.write('reach: '+ str(i.uid) + ',') + writer.write('\n') + + + #---- Calculate C1, C2, C3 from K and X ---- + stdout.write(" Calculating C1, C2, and C3 for reaches in graph ... "); + for i in self.n: + k = self.reaches[i.From].K + x = self.reaches[i.From].X + self.reaches[i.From].C1 = (self.timestep_sec /3600.0 - 2*k*x)/ (2*k*(1-x) + self.timestep_sec /3600.0) + self.reaches[i.From].C2 = (self.timestep_sec /3600.0 + 2*k*x)/ (2*k*(1-x) + self.timestep_sec /3600.0) + self.reaches[i.From].C3 = (2*k*(1-x) - self.timestep_sec /3600.0) / (2*k*(1-x) + self.timestep_sec /3600.0) + + c1 = self.reaches[i.From].C1 + c2 = self.reaches[i.From].C2 + c3 = self.reaches[i.From].C3 + + #initialize Inflow and Outflow dictionaries for reach to Zero. Key is time in seconds + t = 0 + while t <= (end_datetime - start_datetime): + self.reaches[i.From].Inflow["%f" % t] = 0.0 + self.reaches[i.From].Outflow["%f" % t] = 0.0 + t += self.timestep_sec # convert timstep in hrs to timestep in seconds + + stdout.write("done.\n"); + + stdout.write("--- Muskingum Web Service: Initialize End \n\n"); + + + + return True + + def performTimeStep(self, inflow_stream): + stdout.write("\n--- Muskingum Web Service: Perform Time Step Begin --- \n"); + + #Open the output file to append the calculated flows + writer = open('../MuskingumRouting_reachFlows.csv','a') + + #---- advance current time by time step ---- + previous_time_sec = self.current_time_sec + self.current_time_sec += self.timestep_sec + stdout.write(" Previous time is %f seconds.\n" % previous_time_sec); + stdout.write(" Current time is %f seconds.\n" % self.current_time_sec); + + #---- parse XML stream to set inflow values for reaches ---- + stdout.write(" Get inflow values from XML stream ... "); + elements = StringIO(inflow_stream) + xmltree = etree.parse(elements) + inflow = [] + for _inflow in xmltree.getiterator('inflow'): + #loop through all the child nodes of each element + for child in _inflow.iterdescendants(): + if child.tag == "reach": + inflow.append(float(child.text)) + stdout.write("done.\n") + + #---- route flows for each reach using network topology---- + stdout.write(" --- Route flows --- \n"); + outflow = [] #Array that holds the outflows for all outlets, at the current timestep + e = 0 #input element within the inflow array + for i in self.n: + stdout.write(" for reach " + str(i.uid) + "..."); + + #extracting reach properties C1, C2, C3 + c1 = self.reaches[i.From].C1 + c2 = self.reaches[i.From].C2 + c3 = self.reaches[i.From].C3 + + + #get inflow from previous time step + try: + In1 = self.reaches[i.From].Inflow["%f" % previous_time_sec] #In1 = inflow from last timestep + except: + stdout.write ("PROBLEM GETTING PREVIOUS INFLOW FOR REACH " + str([i.From]) + "\n") + #add inflow to In2 + try: + #self.reaches[i.From].Inflow["%f" % self.current_time_sec] = inflow[e] #In2 = inflow from this timestep (inflow) + #Infow for this timestep equals flow being passed to this reach plus any additional inflow from a runoff hydrograph + + #In2 = inflow from this timestep + 'inflow' + self.reaches[i.From].Inflow["%f" % self.current_time_sec] += inflow[i.uid-1] + + #make sure that the reach inflow is never negative, even when instablitiy occurs + if self.reaches[i.From].Inflow["%f" % self.current_time_sec] < 0 : + self.reaches[i.From].Inflow["%f" % self.current_time_sec] = 0 + + except: + #There is no inflow from the watershed into the reach + self.reaches[i.From].Inflow["%f" % self.current_time_sec] = 0.0 + stdout.write ("PROBLEM SETTING CURRENT INFLOW FOR REACH (Inflow = 0) \n") + + #get inflow from current time step + In2 = self.reaches[i.From].Inflow["%f" % self.current_time_sec] + + + + #get outflow from last timestep + Out1 = self.reaches[i.From].Outflow[ "%f" % previous_time_sec] + + #---- Check to see if flow is negative ---- + + #Muskingum routed outflow + f = c1*In2 + c2*In1 + c3*Out1 + + #This loop check to see if the solution of the Muskingum equation is unstable (i.e. calculation of negative flows) + if f < 0.0: + stdout.write("Reach " + str(i.From) + " is unstable. \n \t Flow of "+str(f)+" will be set to 0.0 \n") + #f = 0.0 + + #Write the calculated flow value to the output file + writer.write(str(f)) + writer.write(',') + + #Set Outflow from this reach + self.reaches[i.From].Outflow["%f" % self.current_time_sec] = f + + #Write Outflow to Console + stdout.write(str(self.reaches[i.From].Outflow["%f" % self.current_time_sec])) + + #add this outflow to downstream reach's inflow + if self.G.successors(i): + #self.reaches[self.G.successors(i)[0].From].Inflow["%f" % self.current_time_sec] += self.reaches[i.From].Outflow["%f" % self.current_time_sec] + self.reaches[self.G.successors(i)[0].From].Inflow["%f" % self.current_time_sec] += f + else: + successor = "outlet" + outflow.append(self.reaches[i.From].Outflow["%f" % self.current_time_sec]) + + #Set the current inflow for this reach, equal to the inflow from the previous timestep + self.reaches[i.From].Inflow["%f" % previous_time_sec] = In2 + + + #Next inflow element + e += 1 + stdout.write(" done.\n"); + + #close the writer + writer.write('\n') + writer.close() + + #---- Return outflow at the outlets ---- + outflow_stream = "" + for q in outflow: + outflow_stream += ""+ str(q) +"" + outflow_stream += "" + + stdout.write("--- Muskingum Web Service: Perform Time Step End --- \n\n"); + return outflow_stream + + def finalize(self): + # todo: set object to null + return True + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Muskingum_LC.cs b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Muskingum_LC.cs new file mode 100644 index 00000000..ba9b0d34 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Muskingum_LC.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace edu.SC.Models.Routing +{ + public class Muskingum_LC : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + public Muskingum_LC() + { + _engineApiAccess = new Muskingum(); + } + protected override void SetEngineApiAccess() + { + _engineApiAccess = new Muskingum(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Muskingum_Py_Backup.txt b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Muskingum_Py_Backup.txt new file mode 100644 index 00000000..e0e97ae8 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Muskingum_Py_Backup.txt @@ -0,0 +1,250 @@ +import Muskingum +import networkx as nx +import time +import math +from StringIO import StringIO +from lxml import etree +from networkx import * +import matplotlib.pyplot as plot + +#wrap as webservice: and call from main()\ +#remove configfile from Engine __init__ +class Reach: + def __init__(self, uid, From, To, travel_time, x): + self.uid = uid + self.K = float(travel_time) + self.X = float(x) + self.Inflow = {} + self.Outflow = {} + self.C1 = 0 + self.C2 = 0 + self.C3 = 0 + self.From = From + self.To = To +## +##class FlowProperties: +## def __init__(self, c1,c2,c3): +## self.Inflow = {'0':0} +## self.Outflow = {'0':0} +## self.C1 = c1 +## self.C2 = c2 +## self.C3 = c3 + +class Engine: + + def __init__(self): + pass + + #def initialize(self, configfile, network_relat_path, stream_att_path): + def initialize(self, elementset): + self.timestepMIN = 0 #time_step + self.t = 0 # current_time + self.G = nx.DiGraph() + + #Create reaches dictionary + self.reaches = {} + #Parse FROM, TO K, and X from the XML stream + elements = StringIO(elementset) + xmltree = etree.parse(elements) + #loop through all of the elements within the elementset + uid = 1 + for element in xmltree.getiterator('element'): + #loop through all throughhe child nodes of each element + for child in element.iterdescendants(): + if child.tag == "From": + From = child.text + elif child.tag =="To": + To = child.text + elif child.tag == "K": + K = child.text + elif child.tag == "X": + X = child.text + + self.reaches[From] = Muskingum.Reach(uid, From, To, K, X) + # self.G.add_edge(self.reaches[From], self.reaches[To]) + uid += 1 + + #Add edges to DiGraph + for i in self.reaches: +# f = self.reaches[i].From +# t = self.reaches[i].To + try: + self.G.add_edge(self.reaches[i], self.reaches[self.reaches[i].To]) + except: + print self.reaches[i].To + " is an outlet since it has no downstream reaches" + + #Add edges to DiGraph +# for edge in self.reaches: +# f = self.reaches[edge].From +# t = self.reaches[edge].To +# self.G.add_edge(self.reaches[f], self.reaches[t]) + + #I could not get this line of code to work, it always returned a text + #value of "NONE", so I'm extracting the TimeStep in the same manner + #as above (looping through all of the decescendants of Time Horizon) + #etree.Element("TimeStepInSeconds").text + + #Parse TIMESTEP, START TIME, and END TIME from the XML stream + time_format = "%m/%d/%Y %H:%M:%S %p" + for element in xmltree.getiterator('TimeHorizon'): + for child in element.iterdescendants(): + if child.tag == "TimeStepInSeconds": + self.timestep_hrs = int(child.text)/3600 + elif child.tag == "StartDateTime": + start_datetime = time.mktime(time.strptime(child.text, time_format)) + print child.tag +" "+ child.text + elif child.tag == "EndDateTime": + end_datetime = time.mktime(time.strptime(child.text, time_format)) + print child.tag +" "+ child.text + + + + +## #elements = {} +## #for child in xmltree.getiterator(): +## # if child.tag != xmltree.getroot().tag: +## # elements[child.tag] = child.text +## #self.timestep_hrs = int(elements["TimeStepInSeconds"]) / 3600 + + +## #Parse the configuration file to fine time_step +### xmltree = etree.parse(configfile) +### elements = {} +### for child in xmltree.getiterator(): +### if child.tag != xmltree.getroot().tag: +### elements[child.tag] = child.text +### self.timestep_hrs = int(elements["TimeStepInSeconds"]) / 3600 +### time_format = "%m/%d/%Y %H:%M:%S %p" +### start_datetime = time.mktime(time.strptime(elements["StartDateTime"], time_format)) +### end_datetime = time.mktime(time.strptime(elements["EndDateTime"], time_format)) +## #num_time_steps = math.floor( (end_datetime - start_datetime)/ self.timestep_hrs) + + + #Create reaches dictionary from attribute file +### f = open(stream_att_path, 'r') +### lines = f.readlines() +### self.reaches = {} +### for i in lines[1:]: +### line = i[0:-1] #selects all values before "\n" +### uid = float(line.split(',')[0]) #selects all values before "," +### tt = float(line.split(',')[1]) #selects all values after ", " and before "," +### x = float(line.split(',')[2]) #selects all values after ", " +### self.reaches[uid] = Muskingum.Reach(uid, tt, x) +### f.close() +# +# #read network file and create DiGraph +# f = open(network_relat_path, 'r') +# lines = f.readlines() +# self.G = nx.DiGraph() +# print "Edge Network: " +# for i in lines[1:]: +# line = i[0:-1] #selects all values before "\n" +# From = float(line.split(',')[0]) #selects all values before "," +# To = float(line.split(',')[1]) #selects all values after ", " +# self.G.add_edge(self.reaches[From], self.reaches[To]) +# print "%s to %s" %(From,To) #print edges for debugging +## +# #Calculate C1, C2, C3 from K and X +# for i in self.n: +# k = self.reaches[i.uid].K +# x = self.reaches[i.uid].X +# self.reaches[i.uid].C1 = (self.timestep_hrs - 2*k*x)/ (2*k*(1-x) + self.timestep_hrs) +# self.reaches[i.uid].C2 = (self.timestep_hrs + 2*k*x)/ (2*k*(1-x) + self.timestep_hrs) +# self.reaches[i.uid].C3 = (2*k*(1-x) - self.timestep_hrs) / (2*k*(1-x) + self.timestep_hrs) +# +# #initialize Inflow and Outflow dictionaries to Zero +# t = start_datetime +# while t <= end_datetime: +# self.reaches[i.uid].Inflow[t - start_datetime] = 0 +# self.reaches[i.uid].Outflow[t - start_datetime] = 0 +# t += self.timestep_hrs + + + + + #sort digraph + self.n = nx.topological_sort(self.G) #sort edges in self.G + +# draw(self.G) +# plot.show() + + #Calculate C1, C2, C3 from K and X + for i in self.n: + k = self.reaches[i.From].K + x = self.reaches[i.From].X + self.reaches[i.From].C1 = (self.timestep_hrs - 2*k*x)/ (2*k*(1-x) + self.timestep_hrs) + self.reaches[i.From].C2 = (self.timestep_hrs + 2*k*x)/ (2*k*(1-x) + self.timestep_hrs) + self.reaches[i.From].C3 = (2*k*(1-x) - self.timestep_hrs) / (2*k*(1-x) + self.timestep_hrs) + + #initialize Inflow and Outflow dictionaries to Zero + t = start_datetime + while t <= end_datetime: + self.reaches[i.From].Inflow[(t - start_datetime)/3600] = 0 + self.reaches[i.From].Outflow[(t - start_datetime)/3600] = 0 + t += self.timestep_hrs * 3600 # convert timstep in hrs to timestep in seconds + + +# # Print edges for Debugging +# print "Sorted Nodes:" +# for i in self.n: +# print "%s" %(i.uid) +# +# print "Sorted Edges:" +# for i in self.n: +# if (self.G.successors(i)): +# print "%s to %s" %(i.uid,self.G.successors(i)[0].uid) # this assumes that each reach only has one successor + + print "#--- Muskingum.py has been successfully initialized ---#" + return True + + + def performTimeStep(self, inflow): #'inflow' comes from another component + self.t += 1 #move to end ?? + + e = -1 #input element within the inflow array + # loop over all reaches in sorted graph + for i in self.n: + e += 1 + + #extracting reach properties C1, C2, C3 + c1 = self.reaches[i.uid].C1 + c2 = self.reaches[i.uid].C2 + c3 = self.reaches[i.uid].C3 + + #get inflow from previous time step + In1 = self.reaches[i.uid].Inflow[self.timestep_hrs * (self.t - 1)] #In1 = inflow from last timestep + + #add inflow to In2 + self.reaches[i.uid].Inflow[self.timestep_hrs * self.t] += inflow[e] #In2 = inflow from this timestep + 'inflow' + #get inflow from current time step + In2 = self.reaches[i.uid].Inflow[self.timestep_hrs * self.t] + + Out1 = self.reaches[i.uid].Outflow[self.timestep_hrs * (self.t - 1)] #Out1 = outflow from last timestep + + self.reaches[i.uid].Outflow[self.timestep_hrs * self.t] = c1*In2 + c2*In1 + c3*Out1 #Muskingum routed outflow + if self.G.successors(i): + self.reaches[self.G.successors(i)[0].uid].Inflow[self.timestep_hrs * self.t] += self.reaches[i.uid].Outflow[self.timestep_hrs * self.t] + self.reaches[i.uid].Inflow[self.timestep_hrs * (self.t - 1)] = In2 + + #output flows for debuging + if self.G.successors(i): + successor = self.G.successors(i)[0].uid + else: + successor = "outlet" + + print "Flow from %s to %s equals %s" %(i.uid, successor, self.reaches[i.uid].Outflow[self.timestep_hrs * self.t]) + + + def finalize(self, test): + #write out results + print "I have been accessed by C#" + print test + return True + + + +################################################## + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Service.py b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Service.py new file mode 100644 index 00000000..1e8d149f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/Service.py @@ -0,0 +1,16 @@ +from SimpleXMLRPCServer import SimpleXMLRPCServer +from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler +import Muskingum + +# Restrict to a particular path. +class RequestHandler(SimpleXMLRPCRequestHandler): + rpc_paths = ('/RPC2',) + +# Create server +server = SimpleXMLRPCServer(("localhost", 8000), + requestHandler=RequestHandler) +server.register_introspection_functions() + +server.register_instance(Muskingum.Engine()) + +server.serve_forever() \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/edu.SC.MuskingumMethod.csproj b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/edu.SC.MuskingumMethod.csproj new file mode 100644 index 00000000..4fbb0054 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/edu.SC.MuskingumMethod.csproj @@ -0,0 +1,133 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {DAB855FC-F8F0-4066-BA84-E443A4B8640A} + Library + Properties + MuskingumMethod + edu.SC.MuskingumMethod + + + + + 3.5 + false + v4.0 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + False + ..\..\..\Utilities\CookComputing\CookComputing.XmlRpcV2.dll + False + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + False + + + False + ..\..\..\Utilities\SharpMap\SharpMap.dll + False + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + False + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + true + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + false + + + False + .NET Framework 3.5 SP1 + false + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/reachFlows.txt b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/reachFlows.txt new file mode 100644 index 00000000..8d59db58 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/reachFlows.txt @@ -0,0 +1,29 @@ +0.0,0.0, +0.0,271.698113208, +0.0,1177.64328943, +0.0,2700.62131827, +0.0,4454.75215009, +0.0,4886.11804623, +0.0,4019.96894601, +0.0,3008.67748751, +0.0,2358.98174458, +0.0,1850.50840064, +0.0,1350.02877739, +0.0,917.926157211, +0.0,610.448650408, +0.0,276.063131155, +0.0,15.626214971, +0.0,0.88450273421, +0.0,0.0,0.0, +0.0,0.0,0.0, +0.0,0.0,0.0387687278107, +0.0,0.0,0.165974536151, +0.0,0.0,0.418789176343, +0.0,0.0,1.50615174547, +0.0,0.0,4.06154574385, +0.0,0.0,7.96239334035, +0.0,0.0,11.5237069024, +0.0,0.0,13.7308582271, +0.0,0.0,14.3217213315, +0.0,0.0,13.4391869553, +0.0,0.0,11.9661081934, diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/readme.txt b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/readme.txt new file mode 100644 index 00000000..0450a17a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Source/readme.txt @@ -0,0 +1,5 @@ +You must start the service by double-clicking on start_python_service.bat before adding the Muskingum.omi to an OpenMI Configuration. When you done running the model, simply close the command window running the Python service to terminate the service. + +This Python service requires Python version 2.5 with NetworkX installed. Both are freely available online (http://www.python.org, http://networkx.lanl.gov). + +NOTE: We have only tested this having the service run on the local host. \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Test/Muskingum.Test.csproj b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Test/Muskingum.Test.csproj new file mode 100644 index 00000000..76e1026a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Test/Muskingum.Test.csproj @@ -0,0 +1,120 @@ + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {839C65D0-32FD-4DFB-91B4-89F8BA872B12} + Library + Properties + Muskingum.Test + Muskingum.Test + + + + + 2.0 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Utilities\NUnit\nunit.framework.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Backbone.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + False + ..\..\..\Utilities\edu.SC.SMW\bin\Debug\SMW.dll + + + + + + + + + + + + False + .NET Framework Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + true + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + false + + + False + .NET Framework 3.5 SP1 + false + + + + + {DAB855FC-F8F0-4066-BA84-E443A4B8640A} + edu.SC.MuskingumMethod + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Test/MuskingumTest.cs b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Test/MuskingumTest.cs new file mode 100644 index 00000000..1511cd6e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Test/MuskingumTest.cs @@ -0,0 +1,254 @@ +#define DEBUG +using System; +using System.Collections.Generic; +using System.Text; +using NUnit.Framework; +using edu.SC.Models.Routing; +using SMW; +using Oatc.OpenMI.Sdk.Wrapper; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using System.Diagnostics; + +namespace Muskingum.Test +{ + /// + /// This class was developed to test the functionality of the Muskingum Routing component, under varying + /// circumstances that result from various stream networks. + /// + + [TestFixture] + public class Test + { + Process p = new Process(); + + /// + /// This method starts the web service running locally. + /// + [TestFixtureSetUp] + public void StartWebService() + { + Debug.Write("\n Test Fixture Setup... "); + + //Get the current directory + string currDir = System.IO.Directory.GetCurrentDirectory(); + + //move to directory containing the web service + System.IO.Directory.SetCurrentDirectory("../../../Source"); + + //start the python web service by calling this .bat file + p.StartInfo.FileName = "start_python_service.bat"; + p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; + p.Start(); + + //wait 5 seconds for the web service to start up before moving on + System.Threading.Thread.Sleep(5000); + + //reset the current directory + System.IO.Directory.SetCurrentDirectory(currDir); + Debug.WriteLine("done. \n"); + } + + /// + /// This method terminates the web service. + /// + [TestFixtureTearDown] + public void EndWebService() + { + Debug.Write("Test Fixture Teardown... "); + + //End the web service process + Process[] webservice = Process.GetProcessesByName("cmd"); + webservice[0].Kill(); + + //End the python process started by the webservice + Process[] python = Process.GetProcessesByName("python"); + python[0].Kill(); + + Debug.WriteLine("done. \n"); + } + + /// + /// This method tests that the Initialize method of the muskingum component works properly. + /// + [Test] + public void Initialize() + { + Debug.WriteLine("\n\n---------------------------------------------------"); + Debug.WriteLine("Running the 'Initialize' Test"); + Debug.WriteLine("---------------------------------------------------"); + + //create instance of the Muskingum class + edu.SC.Models.Routing.Muskingum Routing = new edu.SC.Models.Routing.Muskingum(); + + //define input arguments + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "ConfigTest_2reaches.xml"); + + //Call initialize within the muskingum component. If everything executes successfully, this + //--> test method should pass here. + Routing.Initialize(args); + + Debug.WriteLine("Initialize has completed successfully"); + + //Teardown the component + Routing.Finish(); + } + + /// + /// This method tests the Perform Time Step function of the Muskingum Routing component. It is + /// designed to emulate the computation performed in Example 9.3.2 of the 2005 edition of the book + /// "Water Resources Engineering" by Larry Mays. It utilizes an input file containing two reaches. + /// + [Test] + public void PTS_2ReachNetwork() + { + + Debug.WriteLine("\n\n---------------------------------------------------"); + Debug.WriteLine("Testing the Perform Time Step Method for 2 Reaches"); + Debug.WriteLine("---------------------------------------------------"); + + //initialize the component + edu.SC.Models.Routing.Muskingum Routing = new edu.SC.Models.Routing.Muskingum(); + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "ConfigTest_2reaches.xml"); + Routing.Initialize(args); + + + //Begin Perform Time Step Procedures + + //define the input hydrograph. + double[,] p = new double[16, 2] {{0.0,0},{800.0,0},{2000.0,0},{4200.0,0},{5200.0,0}, + {4400.0,0},{3200.0,0},{2500.0,0},{2000.0,0},{1500.0,0}, + {1000.0,0},{700.0,0},{400.0,0},{0.0,0},{0.0,0},{0.0,0}}; + + //define known muskingum routed vals, from example 9.3.2 + double[] vals = new double[16] { 0, 272, 1178, 2701, 4455, 4886, 4020, 3009, 2359, 1851, 1350, 918, 610, 276, 16, 1 }; + Queue KnownAnswers = new Queue(vals); + + //loop over all hydrograph values + for (int j = 0; j <= p.GetLength(0) - 1; j++) + { + Console.WriteLine("TimeStep " + Convert.ToString(j + 1)); + double[] Array = new double[p.GetLength(1)]; + for (int k = 0; k <= p.GetLength(1) - 1; k++) + { + //create array to hold the input hydrograph values for this timestep + Array[k] = p[j, k]; + } + + //Save input values to the Simple Model Wrappers DataTable using "SetValues" + IValueSet Precip = new ScalarSet(Array); + Routing.SetValues("Excess Rainfall", "Smith Branch", Precip); + + //Call Perform Time Step within the Muskingum routing component. + Routing.PerformTimeStep(); + + //Retrieve the calculated outflow from the Simple Model Wrappers DataTable, by calling GetValues() + ScalarSet Outflow = (ScalarSet)Routing.GetValues("Streamflow", "Smith Branch"); + + //Write the output results to the screen + for (int i = 0; i <= Outflow.Count - 1; i++) + { + Console.WriteLine("Outlet: " + i.ToString() + "\t Outflow [cfs]: " + Outflow.data[i].ToString() + "\n"); + } + + //Check to see if the computed values equal the known ones + Assert.IsTrue(Math.Round(Outflow.data[0], 0) == KnownAnswers.Dequeue()); + } + + //Teardown the component + Routing.Finish(); + } + + + /// + /// This method tests the web services PerformTimeStep method, for an input file containing three + /// reaches. The resultant values are checked with thoughs produced by the HEC-HMS model, for the + /// same stream network. + /// + [Test] + public void PTS_3ReachNetwork() + { + Debug.WriteLine("\n\n---------------------------------------------------"); + Debug.WriteLine("Testing the Perform Time Step Method for 3 Reaches"); + Debug.WriteLine("---------------------------------------------------"); + + //initialize the component + edu.SC.Models.Routing.Muskingum Routing = new edu.SC.Models.Routing.Muskingum(); + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "ConfigTest_3reaches.xml"); + Routing.Initialize(args); + + + //Begin Perform Time Step Procedures + + //define the input hydrograph. + double[,] p = new double[13, 3] { {0,0,0}, + {0,0.235733,0}, + {0,0.711618,0}, + {0.438576,1.377104,0.174021}, + {3.081694,2.348495,4.341684}, + {8.084392,3.419044,13.786119}, + {13.492319,4.193174,21.125838}, + {15.109068,4.572254,20.66142}, + {13.640105,4.594348,15.781394}, + {10.458048,4.369926,9.388822}, + {6.77479,3.962268,5.85001}, + {4.549214,3.452857,3.737803}, + {3.124193,2.795561,2.306243} }; + + + + //define known muskingum routed vals, from example 9.3.2 + double[] vals = new double[13] { 0.0, + -0.0, + 0.0, + 0.3, + 4.8, + 15.3, + 25.2, + 28.6, + 27.3, + 23.1, + 20.2, + 17.2, + 14.3}; + + Queue KnownAnswers = new Queue(vals); + + //loop over all hydrograph values + for (int j = 0; j <= p.GetLength(0) - 1; j++) + { + Console.WriteLine("TimeStep " + Convert.ToString(j + 1)); + double[] Array = new double[p.GetLength(1)]; + for (int k = 0; k <= p.GetLength(1) - 1; k++) + { + //create array to hold the input hydrograph values for this timestep + Array[k] = p[j, k]; + } + + //Save input values to the Simple Model Wrappers DataTable using "SetValues" + IValueSet Precip = new ScalarSet(Array); + Routing.SetValues("Excess Rainfall", "Smith Branch", Precip); + + //Call Perform Time Step within the Muskingum routing component. + Routing.PerformTimeStep(); + + //Retrieve the calculated outflow from the Simple Model Wrappers DataTable, by calling GetValues() + ScalarSet Outflow = (ScalarSet)Routing.GetValues("Streamflow", "Smith Branch"); + + //Write the output results to the screen + for (int i = 0; i <= Outflow.Count - 1; i++) + { + Console.WriteLine("Outlet: " + i.ToString() + "\t Outflow [cfs]: " + Outflow.data[i].ToString() + "\n"); + } + + //Check to see if the computed values equal the known ones + Assert.IsTrue(Math.Round(Outflow.data[0], 1) == KnownAnswers.Dequeue()); + } + + Routing.Finish(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..5ae1bf1d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethod/Test/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Muskingum.Test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("Muskingum.Test")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("3d4c6a31-deda-4fa2-b053-7d3ed187e033")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/Config.xml b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/Config.xml new file mode 100644 index 00000000..c4d716ce --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/Config.xml @@ -0,0 +1,68 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + >..\Data\StreamNet.shp + 1 + + + Streamflow + Streamflow + + + Length + 3 + + + Time + -1 + + + + cfs + cubic feet per second + 1 + 0 + + Scalar + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + 1 + ..\Data\StreamNet.shp + + + Excess Rainfall + Excess Rainfall + + + 1 + Length + + + + in + inches + 1 + 0 + + Scalar + + + + + 08/20/2009 09:40:00 PM + 08/21/2009 10:00:00 AM + 300 + + + Muskingum DotNet + Dot Net version of the Python Muskingum component + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/Muskingum.omi b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/Muskingum.omi new file mode 100644 index 00000000..9fe975fe --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/Muskingum.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.dbf b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.dbf new file mode 100644 index 00000000..072d7b9d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.prj b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.prj new file mode 100644 index 00000000..f7f2e098 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.sbn b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.sbn new file mode 100644 index 00000000..404a67b9 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.sbx b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.sbx new file mode 100644 index 00000000..8c5724d6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.shp b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.shp new file mode 100644 index 00000000..d4fe4f22 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.shp.xml b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.shp.xml new file mode 100644 index 00000000..bdcaa41a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.shp.xml @@ -0,0 +1,3 @@ + + +{B235146B-5BA8-4F42-83B0-7C6967BA65B5}2009031715453300FALSE20090317154533002009031715453300Dissolve StreamNetwork C:\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shp ARCID "GRID_CODE FIRST;FROM_COMID LAST;TO_COMID FIRST;K SUM;LENGTHFT SUM;X LAST" MULTI_PART DISSOLVE_LINESMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.StreamNetStreamNetvector digital data\\CE-51\C\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shpREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770StreamNetenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20090317ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://\\CE-51\C\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shpLocal Area Network0.000ShapefileVectorSimplePolylineFALSE0FALSEFALSEString0GCS_North_American_1983NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_IntlLambert Conformal Conic32.50000034.833333-81.00000031.8333332000000.0000000.000000coordinate pairinternational feet0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl0StreamNetFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.ARCIDARCIDNumber195FIRST_GRIDFIRST_GRIDNumber195LAST_FROM_LAST_FROM_Number195FIRST_TO_CFIRST_TO_CNumber195SUM_KSUM_KFloat1911SUM_LENGTHSUM_LENGTHFloat1911LAST_XLAST_XNumber19520090317 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.shx b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.shx new file mode 100644 index 00000000..8ebe4f3b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet2.dbf b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet2.dbf new file mode 100644 index 00000000..79163c4c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet2.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet2.prj b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet2.prj new file mode 100644 index 00000000..3a0cd51a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet2.prj @@ -0,0 +1 @@ +PROJCS["Lambert_Conformal_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["standard_parallel_1",32.5],PARAMETER["standard_parallel_2",34.83333333333334],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],UNIT["unknown",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet2.shp b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet2.shp new file mode 100644 index 00000000..d9f03b1e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet2.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet2.shx b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet2.shx new file mode 100644 index 00000000..95ad59a9 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/StreamNet2.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.dbf b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.dbf new file mode 100644 index 00000000..cb9ffd1e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.prj b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.prj new file mode 100644 index 00000000..f7f2e098 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.sbn b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.sbn new file mode 100644 index 00000000..8d2221ff Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.sbx b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.sbx new file mode 100644 index 00000000..d1fb4ec7 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.shp b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.shp new file mode 100644 index 00000000..64627f61 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.shp.xml b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.shp.xml new file mode 100644 index 00000000..ceeb1bbb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.shp.xml @@ -0,0 +1,3 @@ + + +2009101215052500FALSE20090317154533002009031715453300Dissolve StreamNetwork C:\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shp ARCID "GRID_CODE FIRST;FROM_COMID LAST;TO_COMID FIRST;K SUM;LENGTHFT SUM;X LAST" MULTI_PART DISSOLVE_LINES{D4BEF9BC-203E-4B04-AC27-D3F62C99F441}Microsoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.StreamNetStreamNetvector digital dataREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770StreamNetenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20090317ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://Local Area Network0.000ShapefileVectorSimplePolylineFALSE0FALSEFALSEString0GCS_North_American_1983NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_IntlLambert Conformal Conic32.50000034.833333-81.00000031.8333332000000.0000000.000000coordinate pairinternational feet0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl0StreamNetFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.ARCIDARCIDNumber195FIRST_GRIDFIRST_GRIDNumber195LAST_FROM_LAST_FROM_Number195FIRST_TO_CFIRST_TO_CNumber195SUM_KSUM_KFloat1911SUM_LENGTHSUM_LENGTHFloat1911LAST_XLAST_XNumber19520090317Dataset copied.2009100113311100Dataset copied.2009100814163900Dataset copied.2009101215052500 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.shx b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.shx new file mode 100644 index 00000000..e5db286b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_2Reach.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.dbf b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.dbf new file mode 100644 index 00000000..a7d925c9 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.prj b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.prj new file mode 100644 index 00000000..f7f2e098 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.sbn b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.sbn new file mode 100644 index 00000000..56522e26 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.sbx b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.sbx new file mode 100644 index 00000000..7c93f793 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.shp b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.shp new file mode 100644 index 00000000..0ffea81a Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.shp.xml b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.shp.xml new file mode 100644 index 00000000..aa8070aa --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.shp.xml @@ -0,0 +1,3 @@ + + +2009101414343300FALSE20090317154533002009031715453300Dissolve StreamNetwork C:\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shp ARCID "GRID_CODE FIRST;FROM_COMID LAST;TO_COMID FIRST;K SUM;LENGTHFT SUM;X LAST" MULTI_PART DISSOLVE_LINES{A40A9554-426D-4B32-AC5C-D68CECF5C827}Microsoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.StreamNetStreamNetvector digital dataREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770StreamNetenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20090317ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://Local Area Network0.000ShapefileVectorSimplePolylineFALSE0FALSEFALSEString0GCS_North_American_1983NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_IntlLambert Conformal Conic32.50000034.833333-81.00000031.8333332000000.0000000.000000coordinate pairinternational feet0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl0StreamNetFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.ARCIDARCIDNumber195FIRST_GRIDFIRST_GRIDNumber195LAST_FROM_LAST_FROM_Number195FIRST_TO_CFIRST_TO_CNumber195SUM_KSUM_KFloat1911SUM_LENGTHSUM_LENGTHFloat1911LAST_XLAST_XNumber19520090317Dataset copied.2009100113311100Dataset copied.2009101414343300 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.shx b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.shx new file mode 100644 index 00000000..a291e6d3 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Data/UnitTest_3Reach.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/MuskingumDotNet.sln b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/MuskingumDotNet.sln new file mode 100644 index 00000000..5bf0d732 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/MuskingumDotNet.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MuskingumDotNet", "Source\MuskingumDotNet.csproj", "{8D8DE917-5FA3-4E7A-B167-2FD433EE6B5A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.csproj", "{8E7A7014-C9D9-4994-9A0A-98811E882D52}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8D8DE917-5FA3-4E7A-B167-2FD433EE6B5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D8DE917-5FA3-4E7A-B167-2FD433EE6B5A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8D8DE917-5FA3-4E7A-B167-2FD433EE6B5A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8D8DE917-5FA3-4E7A-B167-2FD433EE6B5A}.Release|Any CPU.Build.0 = Release|Any CPU + {8E7A7014-C9D9-4994-9A0A-98811E882D52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E7A7014-C9D9-4994-9A0A-98811E882D52}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E7A7014-C9D9-4994-9A0A-98811E882D52}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E7A7014-C9D9-4994-9A0A-98811E882D52}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/Config.xml b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/Config.xml new file mode 100644 index 00000000..c4d716ce --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/Config.xml @@ -0,0 +1,68 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + >..\Data\StreamNet.shp + 1 + + + Streamflow + Streamflow + + + Length + 3 + + + Time + -1 + + + + cfs + cubic feet per second + 1 + 0 + + Scalar + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + 1 + ..\Data\StreamNet.shp + + + Excess Rainfall + Excess Rainfall + + + 1 + Length + + + + in + inches + 1 + 0 + + Scalar + + + + + 08/20/2009 09:40:00 PM + 08/21/2009 10:00:00 AM + 300 + + + Muskingum DotNet + Dot Net version of the Python Muskingum component + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/Muskingum.cs b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/Muskingum.cs new file mode 100644 index 00000000..8e98a52a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/Muskingum.cs @@ -0,0 +1,577 @@ +#region MetaData +//----- Component Description ----- +//This component computes the routed streamflow through a channel network. + +//----- Input Files ----- +// This component requires 2 input files, a config.xml file and an elementset.shp that is referenced within +//the configuration file. All input parameters must be included within one shapefile. Each row of the +//attribute table represents an individual reach and must contain the following columns. +// +// GridID = The id of each reach. Used to ensure that element sets align properly. This value should +// correspond with the ID's of the input element set. +// FROM_NODE = The start point ID of the reach (same as GridID) +// TO_NODE = The end point ID of the reach +// K = the Proportionality Coefficient approximated as the time of travel of the flood wave through the reach +// X = Wedge storage weighting factor, X = 0 for reservoir-type storage, X = 0.5 for 'full' wedge storage. 0.0 <= X <= 0.5 +// +#endregion + +//--- System Assemblies ---- +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.IO; +using System.Collections; +using System.Xml; +//--- OpenMI Assemblies ---- +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Wrapper; +//--- Project Assemblies ---- +using SMW; +//--- SharpMap Assemblies ---- +using SharpMap.Layers; +using SharpMap.Data.Providers; +using SharpMap.Data; +//--- QuickGraph Assemblies --- +using QuickGraph; + + +namespace edu.SC.Models.Routing +{ + public class Muskingum : Wrapper + { + + //--- GLOBAL VARIABLES --- + public DataTable elementValues = new DataTable(); + public string input_quantity; + public string output_quantity; + public string input_elementset; + public string output_elementset; + double _ts; + private Dictionary routed_outflow = new Dictionary(); + ArrayList vals = new ArrayList(); + ArrayList Datetime = new ArrayList(); + System.IO.StreamWriter sw; + string _outDir = null; + + Dictionary reachOrder = new Dictionary(); + + Dictionary _output = new Dictionary(); + + + IEnumerable _topoSort; + + double[] transformedInflow; + + AdjacencyGraph> g = new AdjacencyGraph>(); + + + /// + /// This method performs specified actions upon the closure of the model + /// + public override void Finish() + { + + //intialize streamwriter to write output data. + if (_outDir != null) + { + try + { sw = new System.IO.StreamWriter(_outDir + "/MuskingumRouting_output.csv"); } + catch (SystemException e) + { + throw new Exception("The Muskingum Component was unable to create the desired output file. " + + "This is possibly due to an invalid \'OutDir\' field supplied in " + + "the *.omi file", e); + } + } + else + { + try { sw = new System.IO.StreamWriter("../MuskingumRouting_output.csv"); } + catch (SystemException e) + { + throw new Exception(" The Muskingum component failed in writing it output file to path " + + System.IO.Directory.GetCurrentDirectory() + ". This may be due to " + + "lack of user permissions.", e); + } + } + + + + // current time + TimeStamp time = (TimeStamp)this.GetCurrentTime(); + DateTime current = CalendarConverter.ModifiedJulian2Gregorian(time.ModifiedJulianDay); + Double step_sec = this.GetTimeStep(); + //get the last time + current = current.AddSeconds(-1*step_sec); + + sw.Write("Date,"); + for (int i = 1; i <= _output[current].Length; i++) + sw.Write("Element " + i.ToString() + ","); + sw.Write("\n"); + + + foreach (KeyValuePair kvp in _output) + { + sw.Write(kvp.Key.ToShortDateString() +" "+ kvp.Key.ToLongTimeString() + ","); + for (int j = 0; j < kvp.Value.Length; j++) + sw.Write(kvp.Value[j].ToString() + ","); + sw.Write("\n"); + + } + sw.Close(); + + } + + /// + /// Used to Initialize the component. Performs routines that must be completed prior to simulation start. + /// + /// properties extracted from the components *.omi file + public override void Initialize(System.Collections.Hashtable properties) + { + //--- GET MODEL ATTRIBUTES FROM SMW --- + + string config = null; + + //set the config path and output directory from the *.omi file. + foreach (DictionaryEntry p in properties) + { + if (p.Key.ToString() == "ConfigFile") + config = (string)properties["ConfigFile"]; + else if (p.Key.ToString() == "OutDir") + _outDir = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), (string)properties["OutDir"]); + } + + //lookup model's configuration file to determine interface properties + SetVariablesFromConfigFile(config); + SetValuesTableFields(); + + //input exchange item attributes + int num_inputs = this.GetInputExchangeItemCount(); + InputExchangeItem input = this.GetInputExchangeItem(num_inputs - 1); + input_elementset = input.ElementSet.ID; + input_quantity = input.Quantity.ID; + + //output exchange item attributes + int num_outputs = this.GetOutputExchangeItemCount(); + OutputExchangeItem output = this.GetOutputExchangeItem(num_outputs - 1); + output_elementset = output.ElementSet.ID; + output_quantity = output.Quantity.ID; + + //timehorizon attributes + ITimeSpan time_horizon = this.GetTimeHorizon(); + string start = CalendarConverter.ModifiedJulian2Gregorian(time_horizon.Start.ModifiedJulianDay).ToString(); + string end = CalendarConverter.ModifiedJulian2Gregorian(time_horizon.End.ModifiedJulianDay).ToString(); + + //get shapefile path + string shapefilePath = this.GetShapefilePath(); + + //get timestep + string timestep = this.GetTimeStep().ToString(); + _ts = Convert.ToDouble(timestep); + + //this uses the free SharpMap API for reading a shapefile + VectorLayer myLayer = new VectorLayer("elements_layer"); + myLayer.DataSource = new ShapeFile(shapefilePath); + myLayer.DataSource.Open(); + + //initialize array to hold the transformed inflow values + int size = myLayer.DataSource.GetFeatureCount(); + transformedInflow = new double[size]; + + //--- BUILD NETWORK --- + // loop through all features in feature class + for (uint i = 0; i < myLayer.DataSource.GetFeatureCount(); ++i) + { + FeatureDataRow feat = myLayer.DataSource.GetFeature(i); + + + //This routine, ensures that the reaches are added to the XML stream such that the the elements + // align with the subwatersheds.shp. In order to do this I had to assign ArcID's that match the + // corresponding Subwatershed.shp elements. + //bool IsCorrect = false; + + //uint j = 0; + //while (!IsCorrect) + //{ + // feat = myLayer.DataSource.GetFeature(j); + // if (feat.ItemArray[feat.Table.Columns.IndexOf("GridID")].ToString() == (i + 1).ToString()) + // IsCorrect = true; + // else + // j++; + //} + + + + string to_comid = feat.ItemArray[feat.Table.Columns.IndexOf("TO_NODE")].ToString(); + string from_comid = feat.ItemArray[feat.Table.Columns.IndexOf("FROM_NODE")].ToString(); + string k = feat.ItemArray[feat.Table.Columns.IndexOf("K")].ToString(); + string x = feat.ItemArray[feat.Table.Columns.IndexOf("X")].ToString(); + string id = feat.ItemArray[feat.Table.Columns.IndexOf("GridID")].ToString(); + + Int64 v1 = Convert.ToInt64(from_comid); + Int64 v2 = Convert.ToInt64(to_comid); + + + g.AddVertex(v1); + g.AddVertex(v2); + + var e1 = new TaggedEdge(v1, v2, new Reach(Convert.ToInt64(id), Convert.ToDouble(x), Convert.ToDouble(k), Convert.ToDateTime(start), Convert.ToDouble(timestep))); + g.AddEdge(e1); + } + + //sort the graph topologically + _topoSort = QuickGraph.Algorithms.AlgorithmExtensions.TopologicalSort>(g); + + + + } + + public override bool PerformTimeStep() + { + //Get input streamflow + ScalarSet streamflow = (ScalarSet)this.GetValues(input_quantity, input_elementset); + + //transform streamflow to double[] + double[] inflow_vals = streamflow.data; + + //initialize the flow at the outlet to zero + double flow_at_outlet = 0.0; + + + //get the current time + TimeStamp time = (TimeStamp) this.GetCurrentTime(); + DateTime current = CalendarConverter.ModifiedJulian2Gregorian(time.ModifiedJulianDay); + + //get the time when calc's will be performed + + current = current.AddSeconds(_ts); + + //round to the nearest 5min interval + current = new DateTime(((current.Ticks + 25000000) / 50000000) * 50000000); + + //get enumerator of source nodes for the topologically sorted graph + IEnumerator topoEnum = _topoSort.GetEnumerator(); + + + + #region Set Inflows + + //loop through all of the reaches in the order they are sorted + while (topoEnum.MoveNext()) + { + //loop through all of the edges in the graph + foreach (TaggedEdge edge in g.Edges) + { + //check if the source node (unsorted graph) of the edge equals the current source node of the sorted graph + if (edge.Source == Convert.ToInt64(topoEnum.Current)) + { + int sourceID = 0; + + //loop through all of the edges of the graph again + foreach (TaggedEdge downstreamEdge in g.Edges) + { + //find the edge in which the source node equals the current edge's target node + if (downstreamEdge.Source == edge.Target) + { + //get the index of the target (based on the unsorted graph)to determine the input value + // corresponding with the edge.Target edge. + int index = 0; + foreach (TaggedEdge r in g.Edges) + { + if (r.Source == edge.Source) + break; + index++; + } + + //apply the inflow to the downstream edge + if (downstreamEdge.Tag.inflow.ContainsKey(current)) + { + //HACK: This assumes that reach ID's are 1-based + //downstreamEdge.Tag.inflow[current] += inflow_vals[edge.Tag.id - 1]; + + downstreamEdge.Tag.inflow[current] += inflow_vals[index]; + } + else + { + //HACK: This assumes that reach ID's are 1-based + //downstreamEdge.Tag.inflow[current] = inflow_vals[edge.Tag.id - 1]; + + downstreamEdge.Tag.inflow.Add(current,inflow_vals[index]); + } + + //break the loop + break; + } + sourceID++; + + //if no downstream edges are found, this edge must connect to the outlet + if (sourceID == inflow_vals.Length) + { + //get the index (based on the unsorted graph)to determine the correct input value + int index = 0; + foreach (TaggedEdge r in g.Edges) + { + if (r.Source == edge.Source) + break; + index++; + } + + //flow_at_outlet += inflow_vals[edge.Tag.id-1]; + flow_at_outlet += inflow_vals[index]; + + break; + } + } + + //break the loop + break; + } + + //index++; + + } + + } + #endregion + + #region Route Flows + + //reset the sorted graph + topoEnum.Reset(); + + while(topoEnum.MoveNext()) + { + //---- ROUTE THE FLOW DOWN THIS REACH ---- + TaggedEdge e = null; + + //find the edge that correspondes to this source node + foreach (TaggedEdge edge in g.Edges) + { + //get the source node + if (edge.Source == Convert.ToInt64(topoEnum.Current)) + { + e = edge; + break; + } + } + + //no downstream edge found (outlet condition) + if (e == null) + break; + + #region Muskingum Computation + + //get inflow from previous time step + double In0 = e.Tag.inflow[current.AddSeconds(-1.0 * _ts)]; + + //check that this inflow is not negative + if(e.Tag.inflow.ContainsKey(current)) + { + if (e.Tag.inflow[current] < 0) + e.Tag.inflow[current] = 0; + } + else + { + e.Tag.inflow[current] = 0.0; + } + + ////////check that this inflow is not negative + //////try + //////{ + + ////// if (e.Tag.inflow[current] < 0) + ////// e.Tag.inflow[current] = 0; + //////} + //////catch (KeyNotFoundException) + //////{ + ////// e.Tag.inflow[current] = 0.0; + //////} + + //get the inflow from the current timestep + double In1 = e.Tag.inflow[current]; + + //get outflow from previous time step + double Out0 = e.Tag.outflow[current.AddSeconds(-1.0 * _ts)]; + + //TODO: write to log if the calculated flow is unstable + //calculate outflow for current time step + double Out1 = e.Tag.C1 * In1 + e.Tag.C2 * In0 + e.Tag.C3 * Out0; + + //store calculated outflow in the Reach class + e.Tag.outflow[current] = Out1; + + #endregion + + #region Add this flow to downstream reach + + Int64 targetNode = e.Target; + + TaggedEdge outEdge = null; + + //get outflow edge + foreach (TaggedEdge edge in g.Edges) + { + if (edge.Source == targetNode) + { + //set the out edge + outEdge = edge; + + //break the loop + break; + + } + } + + //if outEdge == null then the current reach has no successors + if (outEdge != null) + { + //HACK: this is taken from the other Muskingum component + //outEdge.Tag.inflow[current] = In1; + + //apply outflow to downstream reach + if(outEdge.Tag.inflow.ContainsKey(current)) + { + + outEdge.Tag.inflow[current] += Out1; + } + else + { + outEdge.Tag.inflow[current] = Out1; + } + + ////////apply outflow to downstream reach + //////try + //////{ + + ////// outEdge.Tag.inflow[current] += Out1; + //////} + //////catch (SystemException) + //////{ + ////// outEdge.Tag.inflow[current] = Out1; + //////} + } + //downstream must be the outlet + else + { + flow_at_outlet += Out1; + } + + //Set the current inflow for this reach equal to the inflow from the previos timestep + //save the previous inflow value + e.Tag.inflow[current.AddSeconds(-1*_ts)] = In1; + + } + #endregion + + + #endregion + + #region Save the Outflows + //Parse outflow_stream into double[] in the order of the input file + topoEnum.Reset(); + + double[] outflows = new double[g.EdgeCount]; + while (topoEnum.MoveNext()) + { + + //find corresponding edge index + int index = 0; + TaggedEdge edge = null; + foreach (TaggedEdge e in g.Edges) + { + if (e.Source == Convert.ToInt64(topoEnum.Current)) + { + //set the edge + edge = e; + break; + } + index++; + } + + if (index == outflows.Length) + { + int index2 = 0; + TaggedEdge edge2 = null; + + //find the reach the goes to the outlet + foreach (TaggedEdge e in g.Edges) + { + if (e.Target == Convert.ToInt64(topoEnum.Current)) + { + //set the edge + edge2 = e; + break; + } + index2++; + } + //HACK + //outflows[index2] = flow_at_outlet; + } + else + { + try + { + outflows[index] = edge.Tag.outflow[current]; + } + catch (SystemException) + { + throw new Exception("Stop"); + } + } + + } + #endregion + + //HACK: Negative values should be reported so that the modeler knows that the simulation is unstable + //set any negative flow values equal to zero + for(int o = 0; o<=outflows.Length-1;o++) + if (outflows[o] < 0) { outflows[o] = 0; } + + //set the values + this.SetValues(output_quantity, output_elementset, new ScalarSet(outflows)); + + + + //--- save values to output them in the Finish() method --- + + //get current time and convert into UTC time + TimeStamp currenttime = (TimeStamp)this.GetCurrentTime(); + DateTime modTime = CalendarConverter.ModifiedJulian2Gregorian(currenttime.ModifiedJulianDay); + _output[modTime] = outflows; + + //Advance time + this.AdvanceTime(); + return true; + } + } + + class Reach + { + public Int64 id; + public double x; + public double k; + public double C1; + public double C2; + public double C3; + public Dictionary inflow; + public Dictionary outflow; + + public Reach(Int64 ID, double X, double K, DateTime start, double timeStepSec) + { + this.x = X; + this.k = K; + this.C1 = (timeStepSec / 3600.0 - 2 * this.k * this.x) / (2 * this.k * (1 - this.x) + timeStepSec / 3600.0); + this.C2 = (timeStepSec / 3600.0 + 2 * this.k * this.x) / (2 * this.k * (1 - this.x) + timeStepSec / 3600.0); + this.C3 = (2 * this.k * (1 - this.x) - timeStepSec / 3600.0) / (2 * this.k * (1 - this.x) + timeStepSec / 3600.0); + this.inflow = new Dictionary(); + this.outflow = new Dictionary(); + this.inflow[start] = 0.0; + this.outflow[start] = 0.0; + this.id = ID; + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/Muskingum.omi b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/Muskingum.omi new file mode 100644 index 00000000..fd70a740 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/Muskingum.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/MuskingumDotNet.csproj b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/MuskingumDotNet.csproj new file mode 100644 index 00000000..b242cc69 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/MuskingumDotNet.csproj @@ -0,0 +1,129 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {8D8DE917-5FA3-4E7A-B167-2FD433EE6B5A} + Library + Properties + MuskingumDotNet + MuskingumDotNet + v4.0 + 512 + + + + + 3.5 + false + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + False + ..\..\..\Utilities\QuickGraph\QuickGraph.dll + + + False + ..\..\..\Utilities\SharpMap\SharpMap.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/Muskingum_LC.cs b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/Muskingum_LC.cs new file mode 100644 index 00000000..ba9b0d34 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/Muskingum_LC.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace edu.SC.Models.Routing +{ + public class Muskingum_LC : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + public Muskingum_LC() + { + _engineApiAccess = new Muskingum(); + } + protected override void SetEngineApiAccess() + { + _engineApiAccess = new Muskingum(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..81400315 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MuskingumDotNet")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("MuskingumDotNet")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("86829639-9bc1-4066-944a-8d243e6355c6")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/TestComp.opr b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/TestComp.opr new file mode 100644 index 00000000..06054b57 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Source/TestComp.opr @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Test/MuskingumTest.cs b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Test/MuskingumTest.cs new file mode 100644 index 00000000..e5944ff4 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Test/MuskingumTest.cs @@ -0,0 +1,274 @@ +#define DEBUG +using System; +using System.Collections.Generic; +using System.Text; +using NUnit.Framework; +using edu.SC.Models.Routing; +using SMW; +using Oatc.OpenMI.Sdk.Wrapper; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using System.Diagnostics; + +namespace Muskingum.Test +{ + /// + /// This class was developed to test the functionality of the Muskingum Routing component, under varying + /// circumstances that result from various stream networks. + /// + + [TestFixture] + public class Test + { + //Process p = new Process(); + + /// + /// This method tests that the Initialize method of the muskingum component works properly. + /// + [Test] + public void Initialize() + { + Debug.WriteLine("\n\n---------------------------------------------------"); + Debug.WriteLine("Running the 'Initialize' Test"); + Debug.WriteLine("---------------------------------------------------"); + + //create instance of the Muskingum class + edu.SC.Models.Routing.Muskingum Routing = new edu.SC.Models.Routing.Muskingum(); + + //define input arguments + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "ConfigTest_2reaches.xml"); + + //Call initialize within the muskingum component. If everything executes successfully, this + //--> test method should pass here. + Routing.Initialize(args); + + Debug.WriteLine("Initialize has completed successfully"); + + //Teardown the component + //Routing.Finish(); + } + + /// + /// This method tests the Perform Time Step function of the Muskingum Routing component. It is + /// designed to emulate the computation performed in Example 9.3.2 of the 2005 edition of the book + /// "Water Resources Engineering" by Larry Mays. It utilizes an input file containing two reaches. + /// + [Test] + public void PTS_2ReachNetwork() + { + + Debug.WriteLine("\n\n---------------------------------------------------"); + Debug.WriteLine("Testing the Perform Time Step Method for 2 Reaches"); + Debug.WriteLine("---------------------------------------------------"); + + //initialize the component + edu.SC.Models.Routing.Muskingum Routing = new edu.SC.Models.Routing.Muskingum(); + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "ConfigTest_2reaches.xml"); + Routing.Initialize(args); + + + //Begin Perform Time Step Procedures + + //define the input hydrograph. + double[,] p = new double[16, 2] {{0.0,0},{800.0,0},{2000.0,0},{4200.0,0},{5200.0,0}, + {4400.0,0},{3200.0,0},{2500.0,0},{2000.0,0},{1500.0,0}, + {1000.0,0},{700.0,0},{400.0,0},{0.0,0},{0.0,0},{0.0,0}}; + + //define known muskingum routed vals, from example 9.3.2 + double[] vals = new double[16] { 0, 272, 1178, 2701, 4455, 4886, 4020, 3009, 2359, 1851, 1350, 918, 610, 276, 16, 1 }; + Queue KnownAnswers = new Queue(vals); + + //loop over all hydrograph values + for (int j = 0; j <= p.GetLength(0) - 1; j++) + { + Console.WriteLine("TimeStep " + Convert.ToString(j + 1)); + double[] Array = new double[p.GetLength(1)]; + for (int k = 0; k <= p.GetLength(1) - 1; k++) + { + //create array to hold the input hydrograph values for this timestep + Array[k] = p[j, k]; + } + + //Save input values to the Simple Model Wrappers DataTable using "SetValues" + IValueSet Precip = new ScalarSet(Array); + Routing.SetValues("Excess Rainfall", "Smith Branch", Precip); + + //Call Perform Time Step within the Muskingum routing component. + Routing.PerformTimeStep(); + + //Retrieve the calculated outflow from the Simple Model Wrappers DataTable, by calling GetValues() + ScalarSet Outflow = (ScalarSet)Routing.GetValues("Streamflow", "Smith Branch"); + + //Write the output results to the screen + for (int i = 0; i <= Outflow.Count - 1; i++) + { + Console.WriteLine("Outlet: " + i.ToString() + "\t Outflow [cfs]: " + Outflow.data[i].ToString() + "\n"); + } + + //Check to see if the computed values equal the known ones + Assert.IsTrue(Math.Round(Outflow.data[1], 0) == KnownAnswers.Dequeue()); + } + + //Teardown the component + Routing.Finish(); + } + + + /// + /// This method tests the web services PerformTimeStep method, for an input file containing three + /// reaches. The resultant values are checked with thoughs produced by the HEC-HMS model, for the + /// same stream network. + /// + [Test] + public void PTS_3ReachNetwork() + { + Debug.WriteLine("\n\n---------------------------------------------------"); + Debug.WriteLine("Testing the Perform Time Step Method for 3 Reaches"); + Debug.WriteLine("---------------------------------------------------"); + + //initialize the component + edu.SC.Models.Routing.Muskingum Routing = new edu.SC.Models.Routing.Muskingum(); + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "ConfigTest_3reaches.xml"); + Routing.Initialize(args); + + + //Begin Perform Time Step Procedures + + //define the input hydrograph. + double[,] p = new double[13, 3] { {0,0,0}, + {0,0.235733,0}, + {0,0.711618,0}, + {0.438576,1.377104,0.174021}, + {3.081694,2.348495,4.341684}, + {8.084392,3.419044,13.786119}, + {13.492319,4.193174,21.125838}, + {15.109068,4.572254,20.66142}, + {13.640105,4.594348,15.781394}, + {10.458048,4.369926,9.388822}, + {6.77479,3.962268,5.85001}, + {4.549214,3.452857,3.737803}, + {3.124193,2.795561,2.306243} }; + + + + //define known muskingum routed vals, from example 9.3.2 + double[] vals = new double[13] { 0.0, + 0.0, + 0.0, + 0.3, + 4.8, + 15.3, + 25.2, + 28.6, + 27.3, + 23.1, + 20.2, + 17.2, + 14.3}; + + Queue KnownAnswers = new Queue(vals); + + //loop over all hydrograph values + for (int j = 0; j <= p.GetLength(0) - 1; j++) + { + Console.WriteLine("TimeStep " + Convert.ToString(j + 1)); + double[] Array = new double[p.GetLength(1)]; + for (int k = 0; k <= p.GetLength(1) - 1; k++) + { + //create array to hold the input hydrograph values for this timestep + Array[k] = p[j, k]; + } + + //Save input values to the Simple Model Wrappers DataTable using "SetValues" + IValueSet Precip = new ScalarSet(Array); + Routing.SetValues("Excess Rainfall", "Smith Branch", Precip); + + //Call Perform Time Step within the Muskingum routing component. + Routing.PerformTimeStep(); + + //Retrieve the calculated outflow from the Simple Model Wrappers DataTable, by calling GetValues() + ScalarSet Outflow = (ScalarSet)Routing.GetValues("Streamflow", "Smith Branch"); + + //Write the output results to the screen + for (int i = 0; i <= Outflow.Count - 1; i++) + { + Console.WriteLine("Outlet: " + i.ToString() + "\t Outflow [cfs]: " + Outflow.data[i].ToString() + "\n"); + } + + //Check to see if the computed values equal the known ones + //Assert.IsTrue(Math.Round(Outflow.data[0], 1) == KnownAnswers.Dequeue()); + } + + Routing.Finish(); + } + + + [Test] + public void Test_TimeStepping() + { + + Debug.WriteLine("\n\n---------------------------------------------------"); + Debug.WriteLine("Testing the Perform Time Step Method for Timestepping error"); + Debug.WriteLine("---------------------------------------------------"); + + //initialize the component + edu.SC.Models.Routing.Muskingum Routing = new edu.SC.Models.Routing.Muskingum(); + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "ConfigTest_2reaches.xml"); + Routing.Initialize(args); + + + //Begin Perform Time Step Procedures + + //define the input hydrograph. + //double[,] p = new double[16, 2] {{0.0,0},{800.0,0},{2000.0,0},{4200.0,0},{5200.0,0}, + // {4400.0,0},{3200.0,0},{2500.0,0},{2000.0,0},{1500.0,0}, + // {1000.0,0},{700.0,0},{400.0,0},{0.0,0},{0.0,0},{0.0,0}}; + + //define known muskingum routed vals, from example 9.3.2 + //double[] vals = new double[16] { 0, 272, 1178, 2701, 4455, 4886, 4020, 3009, 2359, 1851, 1350, 918, 610, 276, 16, 1 }; + //Queue KnownAnswers = new Queue(vals); + + //loop over all hydrograph values + for (int j = 0; j <= 10000 - 1; j++) + { + Console.WriteLine("TimeStep " + Convert.ToString(j + 1)); + double[] Array = new double[2]; + //for (int k = 0; k <= p.GetLength(1) - 1; k++) + //{ + // //create array to hold the input hydrograph values for this timestep + // Array[k] = p[j, k]; + //} + + Array[0] = 1; + Array[1] = 1; + //Save input values to the Simple Model Wrappers DataTable using "SetValues" + IValueSet Precip = new ScalarSet(Array); + Routing.SetValues("Excess Rainfall", "Smith Branch", Precip); + + //Call Perform Time Step within the Muskingum routing component. + Routing.PerformTimeStep(); + + //Retrieve the calculated outflow from the Simple Model Wrappers DataTable, by calling GetValues() + ScalarSet Outflow = (ScalarSet)Routing.GetValues("Streamflow", "Smith Branch"); + + //Write the output results to the screen + for (int i = 0; i <= Outflow.Count - 1; i++) + { + Console.WriteLine("Outlet: " + i.ToString() + "\t Outflow [cfs]: " + Outflow.data[i].ToString() + "\n"); + } + + //Check to see if the computed values equal the known ones + //Assert.IsTrue(Math.Round(Outflow.data[1], 0) == KnownAnswers.Dequeue()); + } + + //Teardown the component + Routing.Finish(); + } + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..17895bc6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Test/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("Test")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b9ee6da9-8832-4df9-a86b-2e9d43fc5c20")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Test/Test.csproj b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Test/Test.csproj new file mode 100644 index 00000000..241bd926 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/MuskingumMethodDotNet/Test/Test.csproj @@ -0,0 +1,127 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {8E7A7014-C9D9-4994-9A0A-98811E882D52} + Library + Properties + Test + Test + v4.0 + 512 + + + + + 3.5 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Utilities\NUnit\nunit.framework.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Backbone.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + False + ..\..\..\Utilities\edu.SC.SMW\bin\Debug\SMW.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + {8D8DE917-5FA3-4E7A-B167-2FD433EE6B5A} + MuskingumDotNet + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Evapotranspiration.sln b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Evapotranspiration.sln new file mode 100644 index 00000000..12f8c155 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Evapotranspiration.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PotantialEvapotranspiration", "Source\PotantialEvapotranspiration.csproj", "{3A350631-7A44-47AD-8CBC-03CD4BB9176D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PETTestClassM", "Test\PETTestClassM.csproj", "{45CF62DC-C931-4B71-9037-2D47955572BE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3A350631-7A44-47AD-8CBC-03CD4BB9176D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A350631-7A44-47AD-8CBC-03CD4BB9176D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A350631-7A44-47AD-8CBC-03CD4BB9176D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A350631-7A44-47AD-8CBC-03CD4BB9176D}.Release|Any CPU.Build.0 = Release|Any CPU + {45CF62DC-C931-4B71-9037-2D47955572BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45CF62DC-C931-4B71-9037-2D47955572BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45CF62DC-C931-4B71-9037-2D47955572BE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45CF62DC-C931-4B71-9037-2D47955572BE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/ET.omi b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/ET.omi new file mode 100644 index 00000000..d23f2e2a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/ET.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/Et_linkableComponent.cs b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/Et_linkableComponent.cs new file mode 100644 index 00000000..4ced95b5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/Et_linkableComponent.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace eT_LC +{ + class et_linkableComponent: Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + protected override void SetEngineApiAccess() + { + _engineApiAccess = new Evptrnsprtion.eT(); + } + public et_linkableComponent() + { + _engineApiAccess = new Evptrnsprtion.eT(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/PET.cs b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/PET.cs new file mode 100644 index 00000000..7382adab --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/PET.cs @@ -0,0 +1,446 @@ +// Purpose: Evaluate ASCE Standardized Evapotranspiration and Potantial Evapotranspiration in mm per day. +// Author: Mehmet Ercan (mehmetbercan@gmail.com) +// Advisor: Jonathan L. Goodall (goodall@sc.edu) +// History: Created (02-23-2010), put in OpenMI(03-11-2010) + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using System.Xml; +using System.Data; + + +using SMW; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace Evptrnsprtion +{ + public class eT : SMW.Wrapper + { + public DataTable _elementValues = new DataTable(); + + List inputs = new List(); + List outputs = new List(); + + + ETworks In = new ETworks(); + Dictionary> output = new Dictionary>(); + + //defining data storage list + double[] Net_Radiation; + double[] Temprtr; + double[] TemprtrDew; + double[] TemprtrMax; + double[] TemprtrMin; + double[] WindSpeed; + + string _outDir = null; + + public override void Finish() + { + //intialize streamwriter to write output data. + System.IO.StreamWriter sw; + if (_outDir != null) + { + try + { sw = new System.IO.StreamWriter(_outDir + "/output.csv"); } + catch (SystemException e) + { + throw new Exception("The ET Component was unable to create the desired output file. " + + "This is possibly due to an invalid \'OutDir\' field supplied in " + + "the *.omi file", e); + } + } + else + { + try { sw = new System.IO.StreamWriter("../output.csv"); } + catch (SystemException e) + { + throw new Exception(" The ET component failed in writing it output file to path " + + System.IO.Directory.GetCurrentDirectory() + ". This may be due to " + + "lack of user permissions.", e); + } + } + int i = 1; + foreach (KeyValuePair> val in output) + { + if (i == 1) + { //Write Station IDs + sw.Write("StationID:"); + for (int st = 0; st < val.Value.Count; st++) + { + sw.Write("," + val.Value[st][0]); + double[] sdfj = val.Value[st]; + } + //Write Latitudes + sw.WriteLine(); + sw.Write("Latitude:"); + for (int st = 0; st < val.Value.Count; st++) + { + sw.Write("," + val.Value[st][1]); + } + //Write Longitudes + sw.WriteLine(); + sw.Write("Longitude:"); + for (int st = 0; st < val.Value.Count; st++) + { + sw.Write("," + val.Value[st][2]); + } + //Write Elevation + sw.WriteLine(); + sw.Write("Elevation:"); + for (int st = 0; st < val.Value.Count; st++) + { + sw.Write("," + val.Value[st][3]); + } + //Write first line of date and Standartized ET + sw.WriteLine(); + sw.Write("Date:"); + for (int st = 0; st < val.Value.Count; st++) + { + sw.Write(",ETsz"); + } + } + //Write daily standartized ETs + string time = String.Format("{0:MM-dd-yyyy}", CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)val.Key).ModifiedJulianDay)); + sw.WriteLine(); + sw.Write(time); + for (int st = 0; st < val.Value.Count; st++) + { + sw.Write("," + val.Value[st][4]); + } + i++; + } + sw.Close(); + } + + public override void Initialize(System.Collections.Hashtable properties) + { + string configFile = null; + + //Get Config file directory from .omi file + if (properties.ContainsKey("ConfigFile")) + configFile = (string)properties["ConfigFile"]; + if (properties.ContainsKey("OutDir")) + _outDir = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), (string)properties["OutDir"]); + + //Set variables + SetVariablesFromConfigFile(configFile); + SetValuesTableFields(); + + //get input exchange item attributes + int num_inputs = this.GetInputExchangeItemCount(); + for (int i = 0; i < num_inputs; i++) + { + inputs.Add(this.GetInputExchangeItem(i)); + } + + + //get output exchange item attributes + int num_outputs = this.GetOutputExchangeItemCount(); + for (int i = 0; i < num_outputs; i++) + { + outputs.Add(this.GetOutputExchangeItem(i)); + } + + + // --- setup elementValues DataTable to store element attributes from elements.shp + _elementValues.Columns.Add("Gauge_IDs", typeof(double)); + _elementValues.Columns.Add("Longitude", typeof(double)); + _elementValues.Columns.Add("Latitude", typeof(double)); + _elementValues.Columns.Add("kc1", typeof(double)); + _elementValues.Columns.Add("kc2", typeof(double)); + _elementValues.Columns.Add("kc3", typeof(double)); + _elementValues.Columns.Add("kc4", typeof(double)); + _elementValues.Columns.Add("kc5", typeof(double)); + _elementValues.Columns.Add("kc6", typeof(double)); + _elementValues.Columns.Add("kc7", typeof(double)); + _elementValues.Columns.Add("kc8", typeof(double)); + _elementValues.Columns.Add("kc9", typeof(double)); + _elementValues.Columns.Add("kc10", typeof(double)); + _elementValues.Columns.Add("kc11", typeof(double)); + _elementValues.Columns.Add("kc12", typeof(double)); + _elementValues.Columns.Add("RefVegType", typeof(double)); + _elementValues.Columns.Add("Elevation", typeof(double)); + + //Get shapefile path + XmlDocument doc = new XmlDocument(); + doc.Load(configFile); + XmlElement root = doc.DocumentElement; + XmlNode elementSet = root.SelectSingleNode("//InputExchangeItem//ElementSet"); + string shapefilePath = elementSet["ShapefilePath"].InnerText; + + //Get watershed properties from elements.shp + SharpMap.Layers.VectorLayer myLayer = new SharpMap.Layers.VectorLayer("elements_layer"); + myLayer.DataSource = new SharpMap.Data.Providers.ShapeFile(shapefilePath); + myLayer.DataSource.Open(); + + for (uint i = 0; i < myLayer.DataSource.GetFeatureCount(); i++) + { + SharpMap.Data.FeatureDataRow feat = myLayer.DataSource.GetFeature(i); + //DataTable att = feat.Table; + + object GaugeId = feat.ItemArray[feat.Table.Columns.IndexOf("GaugeIDs")]; + object Longitute = feat.ItemArray[feat.Table.Columns.IndexOf("X")]; + object Latitude = feat.ItemArray[feat.Table.Columns.IndexOf("Y")]; + object Kc1 = feat.ItemArray[feat.Table.Columns.IndexOf("Kc1")]; + object Kc2 = feat.ItemArray[feat.Table.Columns.IndexOf("Kc2")]; + object Kc3 = feat.ItemArray[feat.Table.Columns.IndexOf("Kc3")]; + object Kc4 = feat.ItemArray[feat.Table.Columns.IndexOf("Kc4")]; + object Kc5 = feat.ItemArray[feat.Table.Columns.IndexOf("Kc5")]; + object Kc6 = feat.ItemArray[feat.Table.Columns.IndexOf("Kc6")]; + object Kc7 = feat.ItemArray[feat.Table.Columns.IndexOf("Kc7")]; + object Kc8 = feat.ItemArray[feat.Table.Columns.IndexOf("Kc8")]; + object Kc9 = feat.ItemArray[feat.Table.Columns.IndexOf("Kc9")]; + object Kc10 = feat.ItemArray[feat.Table.Columns.IndexOf("Kc10")]; + object Kc11 = feat.ItemArray[feat.Table.Columns.IndexOf("Kc11")]; + object Kc12 = feat.ItemArray[feat.Table.Columns.IndexOf("Kc12")]; + object RefVeg = feat.ItemArray[feat.Table.Columns.IndexOf("RefVeg")]; + object Elevation = feat.ItemArray[feat.Table.Columns.IndexOf("Elev")]; + _elementValues.LoadDataRow(new object[] { GaugeId, Longitute, Latitude, Kc1, Kc2, Kc3, Kc4, Kc5, Kc6, Kc7, Kc8, Kc9, Kc10, Kc11, Kc12, RefVeg , Elevation }, true); + + + } + + } + + public override bool PerformTimeStep() + { + + //Retrieve values from another component + ScalarSet _NetRadiation = (ScalarSet)this.GetValues(inputs[0].Quantity.ID, inputs[0].ElementSet.ID); + Net_Radiation = _NetRadiation.data; + ScalarSet _Temprtr = (ScalarSet)this.GetValues(inputs[1].Quantity.ID, inputs[1].ElementSet.ID); + Temprtr = _Temprtr.data; + ScalarSet _TemprtrDew = (ScalarSet)this.GetValues(inputs[2].Quantity.ID, inputs[2].ElementSet.ID); + TemprtrDew = _TemprtrDew.data; + ScalarSet _TemprtrMax = (ScalarSet)this.GetValues(inputs[3].Quantity.ID, inputs[3].ElementSet.ID); + TemprtrMax = _TemprtrMax.data; + ScalarSet _TemprtrMin = (ScalarSet)this.GetValues(inputs[4].Quantity.ID, inputs[4].ElementSet.ID); + TemprtrMin = _TemprtrMin.data; + ScalarSet _WindSpeed = (ScalarSet)this.GetValues(inputs[5].Quantity.ID, inputs[5].ElementSet.ID); + WindSpeed = _WindSpeed.data; + + + + ///////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////EVAPOTRANSPIRATION CALCULATION///////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////////////// + + //get current time + DateTime currTime = CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)this.GetCurrentTime()).ModifiedJulianDay); + double current_time = Convert.ToDouble(Convert.ToString(currTime.Month) + Convert.ToString(currTime.Day) + Convert.ToString(currTime.Year)); + string month = Convert.ToString(currTime.Month); + string Kcm = "Kc" + month; + + //Get data from saved attribute table + int n = _elementValues.Rows.Count; + double[] _gauge_ids = new double[n]; + double[] _lon = new double[n]; + double[] _lat = new double[n]; + double[] _kc = new double[n]; + double[] _refvegtyp = new double[n]; + double[] _elev = new double[n]; + for (int i = 0; i < n; i++) + { + _gauge_ids[i] = Convert.ToDouble(_elementValues.Rows[i]["Gauge_IDs"]); + _lon[i] = Convert.ToDouble(_elementValues.Rows[i]["Longitude"]); + _lat[i] = Convert.ToDouble(_elementValues.Rows[i]["Latitude"]); + _kc[i] = Convert.ToDouble(_elementValues.Rows[i][Kcm]); + _refvegtyp[i] = Convert.ToDouble(_elementValues.Rows[i]["RefVegType"]); + _elev[i] = Convert.ToDouble(_elementValues.Rows[i]["Elevation"]); + } + + //Setting values for the stations + List StIDET = new List(); + for (int i = 0; i < n; i++) + { + //Setting crop coeficient + In.kc = _kc[i]; + + //Setting Conditional for vegetation referece (0:short, 1:tall) + In.RVC = _refvegtyp[i]; + + //setting Net Radiation(MJ/m^2/d) + In.NetRadiation = Net_Radiation[i]; + + //Setting watershed elevation(m) + In.Elev = _elev[i]; + + //Setting Temperature(C) + In.Temp = Temprtr[i]; + + //Setting Dew Point Temperature(C) + In.Tdew = TemprtrDew[i]; + + //Setting Maximum Temperature(C) + In.TempMx = TemprtrMax[i]; + + //Setting Minimum Temperature(C) + In.TempMn = TemprtrMin[i]; + + //setting wind speed (m/s) + In.WindSpeed = WindSpeed[i]; + + //Getting Calculated Evapotranspiration(mm/d) + double[] PET1 = new double[7]; + PET1[0] = _gauge_ids[i]; //StationID + PET1[1] = _lat[i]; //Latitude + PET1[2] = _lon[i]; //Longitude + PET1[3] = _elev[i]; //Elevation + PET1[4] = In.StandardizationofReferenceET(); //result ETsz + PET1[5] = In.PotantialET(); //result PET + PET1[6] = current_time; //Date + StIDET.Add(PET1); + } + + + + //Get an array result for exchange with SMW + double[] PET = new double[StIDET.Count()];//Potantial ET + double[] ETsz = new double[StIDET.Count()];//Standartized Referance ET + for (int i = 0; i < StIDET.Count(); i++) + { + PET[i] = StIDET[i][5]; + ETsz[i] = StIDET[i][4]; + } + + + //set values + this.SetValues(outputs[0].Quantity.ID, outputs[0].ElementSet.ID, new ScalarSet(PET)); + this.SetValues(outputs[1].Quantity.ID, outputs[1].ElementSet.ID, new ScalarSet(ETsz)); + + output.Add(this.GetCurrentTime(), StIDET); ; + + //set advance model trough time + this.AdvanceTime(); + + return true; + } + } + + + class ETworks + { + //Setting Temperature value(C) + double _temp; + public double Temp { get { return _temp; } set { _temp = value; } } + //Setting Max and Min Temperature value(C) + double _tempmx; + public double TempMx { get { return _tempmx; } set { _tempmx = value; } } + double _tempmn; + public double TempMn { get { return _tempmn; } set { _tempmn = value; } } + //Setting Dew point temperature(C) + double _Tdew; + public double Tdew { get { return _Tdew; } set { _Tdew = value; } } + //Setting wind speed(m/s) + double _u; + public double WindSpeed { get { return _u; } set { _u = value; } } + //Setting vegetation coefficient, Kc + double _kc; + public double kc { get { return _kc; } set { _kc = value; } } + //setting Net Radiattion(MJ/m^2/d) + double _NetRadiation; + public double NetRadiation { get { return _NetRadiation; } set { _NetRadiation = value; } } + //setting elevation(m) + double _Elev; + public double Elev { get { return _Elev; } set { _Elev = value; } } + //setting reference vegetation condition + double _RVC; + public double RVC { get { return _RVC; } set { _RVC = value; } } + + public double PotantialET() + { + //info from TOPNET: Kc:Vegetation crop coefficient thaat varies by month to represent growing seasons, is determined based upon land cover. + double Kc = kc; //Kc:Vegetation crop coefficient//average crop coefficient should be determined over the watershed or the python codes can be used with ETsz to determine PET over the watershed.(http://grg.engr.sc.edu/mehmet/scripts.html) + double ETsz = StandardizationofReferenceET(); + double PET = ETsz * Kc; + return PET; + } + + public double StandardizationofReferenceET() + { + double ETsz, Rn, G, T, u2, es, ea, D, Gama, Cn, Cd, Lamda, qw;//ETsc:Standardized reference crop ET (mm/d) + //Rn:Net radiation((MJ/m^2/d)//G:Soil heat flux density at the soil surface(MJ/m^2/d). G = 0(dailyTimestep)(MJ/m^2/d) + //T:Mean daily air temperature(Kelvin)(will be converted from C to K)//u2:Mean daily wind speed at 2m height(m/s) + //es:Saturation vapor pressure (kPa)//ea:Mean actual vapor pressure(kPa)//D:Saturation vapor pressure-temperature gradient(kPa/C) + //Gama:Psychrometric constant(kPa/C)//Lamda:Latent heat of Vaporization(MJ/kg)(2.45 is recommentded by ASCE)//qw:Water density(1000kg/m^3) + //Cn:Numerator constant that changes with reference type and time units(K mm s^3/Mg/d) + //Cd:Denominator constant that changes with reference type and time units(s/m) + u2 = WindSpeed; + double Tdw = Tdew; + qw = 1; //(Mg/m^3) + Lamda = LatentHeatofVaporization();//(Mj/kg) + D = SaturationVaporPressureTemperatureGradient();//(kPa/C) + Rn = NetRadiation; + G = 0; //(Mj m^-2 h^-1) + //Defining Cn and Cd values depending on short or tall vegetation reference + if (RVC == 0) { Cn = 900; Cd = 0.34; } + else { Cn = 1600; Cd = 0.38; } //(K mm s^3/Mg/d) and (s/m),respectively + Gama = PsychrometricConstant(); + //ea = 0.6108 * Math.Exp((17.27 * Tdw) / (Tdw + 237.3)); ; //(kPa) Equation 2.14 (R.Burman and L.O.Pochop)look example at page 196(vapor pressure e) + ea = 6.107799961 + 4.436518521 * Math.Pow(10, -1) * Tdw + 1.428945805 * Math.Pow(10, -2) * Math.Pow(Tdw, 2) + 2.650648471 * Math.Pow(10, -4) * Math.Pow(Tdw, 3) + 3.031240396 * Math.Pow(10, -6) * Math.Pow(Tdw, 4) + 2.034080948 * Math.Pow(10, -8) * Math.Pow(Tdw, 5) + 6.136820929 * Math.Pow(10, -11) * Math.Pow(Tdw, 6); //(in mb) Vapor pressure is determined from the dew point temperature using the polynomial provided by Lowe (1977). + ea = 0.1 * ea; //mb to Kpa convertion. + T = (TempMx + TempMn) / 2;// Temperature(C) + es = SaturationVaporPressure(); + ETsz = (((1 / (qw * Lamda)) * D * (Rn - G)) + (Cn * Gama * (u2 / (T + 273)) * (es - ea))) / (D + Gama * (1 + Cd * u2)); + return ETsz; + + } + public double LatentHeatofVaporization() + { + double Lamda, T; + T = Temp;// Temperature(C) + Lamda = (2501 - 2.361 * T) / 1000; //Lamda:Latent heat of Vaporization(Mj/kg)//ASCE recomments 2.45 MJ/kg for Lamda. + return Lamda; + } + public double SaturationVaporPressureTemperatureGradient() + { + double D, es, T; + T = (TempMx + TempMn) / 2;// Temperature(C) + es = 6.107799961 + 4.436518521 * Math.Pow(10, -1) * T + 1.428945805 * Math.Pow(10, -2) * Math.Pow(T, 2) + 2.650648471 * Math.Pow(10, -4) * Math.Pow(T, 3) + 3.031240396 * Math.Pow(10, -6) * Math.Pow(T, 4) + 2.034080948 * Math.Pow(10, -8) * Math.Pow(T, 5) + 6.136820929 * Math.Pow(10, -11) * Math.Pow(T, 6); //(in mb) Vapor pressure is determined from the dew point temperature using the polynomial provided by Lowe (1977). + es = 0.1 * es; //mb to Kpa convertion. + D = (4098 * es) / (Math.Pow((237.3 + T), 2)); //D:Saturation vapor pressure-temperature gradient(kPa/C)(Shuttleworth,1993) + return D; + } + + public double PsychrometricConstant() + { + double z, P, Gama, cp; + z = Elev;//z:elevation(m) + P = 101.3 * Math.Pow(((293 - 0.0065 * z) / 293), 5.256); //P:Atmospheric pressure (kPa) + cp = (1.013) / 1000; // Specific heat of moist air (MJ/kg/C) + double Lamda = LatentHeatofVaporization(); //(Mj/kg) + Gama = (cp * P) / (0.622 * Lamda); //Gama:Psychrometric constant(kPa/C) + return Gama; + } + public double SaturationVaporPressure() + { + double es;//es is calculated for daily time steps as the average of the saturation vapor pressure at max and min air temperature + double T = TempMx; + double esMx; + //esMx = 0.6108 * Math.Exp((17.27 * T) / (T + 237.3));//(kPa) Equation 2.14 (R.Burman and L.O.Pochop) + esMx = 6.107799961 + 4.436518521 * Math.Pow(10, -1) * T + 1.428945805 * Math.Pow(10, -2) * Math.Pow(T, 2) + 2.650648471 * Math.Pow(10, -4) * Math.Pow(T, 3) + 3.031240396 * Math.Pow(10, -6) * Math.Pow(T, 4) + 2.034080948 * Math.Pow(10, -8) * Math.Pow(T, 5) + 6.136820929 * Math.Pow(10, -11) * Math.Pow(T, 6); //(in mb) Vapor pressure is determined from the dew point temperature using the polynomial provided by Lowe (1977). + esMx = 0.1 * esMx; //mb to Kpa convertion. + T = TempMn; + double esMn; + //esMn = 0.6108 * Math.Exp((17.27 * T) / (T + 237.3));//(kPa) Equation 2.14 (R.Burman and L.O.Pochop) + esMn = 6.107799961 + 4.436518521 * Math.Pow(10, -1) * T + 1.428945805 * Math.Pow(10, -2) * Math.Pow(T, 2) + 2.650648471 * Math.Pow(10, -4) * Math.Pow(T, 3) + 3.031240396 * Math.Pow(10, -6) * Math.Pow(T, 4) + 2.034080948 * Math.Pow(10, -8) * Math.Pow(T, 5) + 6.136820929 * Math.Pow(10, -11) * Math.Pow(T, 6); //(in mb) Vapor pressure is determined from the dew point temperature using the polynomial provided by Lowe (1977). + esMn = 0.1 * esMn; //mb to Kpa convertion. + es = (esMx + esMn) / 2; // Saturation Vapor Pressure (kPa) + return es; + } + } + +} + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/PotantialEvapotranspiration.csproj b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/PotantialEvapotranspiration.csproj new file mode 100644 index 00000000..56df455b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/PotantialEvapotranspiration.csproj @@ -0,0 +1,93 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {3A350631-7A44-47AD-8CBC-03CD4BB9176D} + Library + Properties + PET + ASCEPenmanMonteith + v4.0 + 512 + + + + + 3.5 + Client + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + ..\..\..\Utilities\SharpMap\SharpMap.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + + + + {96C23728-CA20-47F8-A85C-AE76A31085FB} + SMW + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..3d638e4f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ClassLibrary1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("ClassLibrary1")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("9a4be134-662c-4b4d-be18-0da7393a76bf")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/config.xml b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/config.xml new file mode 100644 index 00000000..d35b53b1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Source/config.xml @@ -0,0 +1,234 @@ + + + + + + SC_NC Study + Potantial Evapotranspiration + ../../../data/PeTgauges.shp + 1 + + + PET + Potantial Evapotranspiration + + + Length + 1 + + + time + -1 + + + + mm/d + millimeters per day + 1 + 0 + + Scalar + + + + + SC_NC Study + Standardized Reference Evapotranspiration(ASCE-Penman-Monteith) + ../../../data/PeTgauges.shp + 1 + + + StandardizedET + Standardized Reference Evapotranspiration + + + Length + 1 + + + time + -1 + + + + mm/d + millimeters per day + 1 + 0 + + Scalar + + + + + SC_NC Study + NetRadiation + 1 + ../../../data/PeTgauges.shp + + + NSR + net radiation + + + 1 + Megajoule + + + -2 + meter + + + -1 + day + + + + MJ/m^2/d + Megajoule per square meter per day + 1 + 0 + + Scalar + + + + + SC_NC Study + Temperature of the gauge + ../../../data/PeTgauges.shp + 1 + + + Temperature + Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Dew Point Temperature of the gauge + ../../../data/PeTgauges.shp + 1 + + + Dew Point Temperature + Dew Point Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Maximum Temperature of the gauge + ../../../data/PeTgauges.shp + 1 + + + Maximum Temperature + Maximum Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Minimum Temperature of the gauge + ../../../data/PeTgauges.shp + 1 + + + Minimum Temperature + Minimum Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + wind speed of the gauge + ../../../data/PeTgauges.shp + 1 + + + wind speed + wind speed + + + Length + 1 + + + Time + -1 + + + + m/s + meter/second + 1 + 0 + + Scalar + + + + + 01/01/1982 + 02/28/1982 + 86400 + + + PET: Penman-Monteith + This component calculates PET(potantial evapotranspiration) and ETsz(Standardized Evapotranspiration) using a variation of the Penman-Monteith algorithm, defined by ASCE + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Test/PETTestClassM.csproj b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Test/PETTestClassM.csproj new file mode 100644 index 00000000..2c8812fa --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Test/PETTestClassM.csproj @@ -0,0 +1,95 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {45CF62DC-C931-4B71-9037-2D47955572BE} + Library + Properties + ClassLibrary2 + ClassLibrary2 + v3.5 + 512 + + + + + 3.5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\nunit.framework.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.Backbone.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\OpenMI.Standard.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + {3A350631-7A44-47AD-8CBC-03CD4BB9176D} + PotantialEvapotranspiration + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..eb0dff26 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Test/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("TestProject")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("TestProject")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6a0c290b-7456-48a2-a43a-0940edf66226")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Test/Test.cs b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Test/Test.cs new file mode 100644 index 00000000..5f3d44c3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/Test/Test.cs @@ -0,0 +1,69 @@ +using Evptrnsprtion; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System.Collections; +using System; + +using Oatc.OpenMI.Sdk.Backbone; + + +namespace TestProject +{ + + [TestClass()] + public class eTTest + { + + + private TestContext testContextInstance; + + public TestContext TestContext + { + get + { + return testContextInstance; + } + set + { + testContextInstance = value; + } + } + + [TestMethod()] + public void InitializeTest() + { + Evptrnsprtion.eT component = new eT(); + + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "../../../Source/config.xml"); + component.Initialize(args); + + } + [TestMethod()] + public void PerformTimeStepTest() + { + Evptrnsprtion.eT component = new eT(); + + //Initialize Component + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "../../../Source/config.xml"); + component.Initialize(args); + + //Define Inputs + double[] NetRadiation = { 4, 5, 6, 7 }; + component.SetValues("NSR", "NetRadiation", new ScalarSet(NetRadiation)); + + + + //Call perform timestep in the component class + component.PerformTimeStep(); + + //retrieve values from the compenent class + ScalarSet OutputValues = (ScalarSet)component.GetValues("PET", "pet"); + ScalarSet OutputValues3 = (ScalarSet)component.GetValues("StandardizedET", "ETsz"); + double[] PET = OutputValues.data; + double[] ETsz = OutputValues3.data; + + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.dbf b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.dbf new file mode 100644 index 00000000..5b09a3eb Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.prj b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.prj new file mode 100644 index 00000000..2d456db1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609600.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.sbn b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.sbn new file mode 100644 index 00000000..213ab8fd Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.sbx b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.sbx new file mode 100644 index 00000000..5d010438 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.shp b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.shp new file mode 100644 index 00000000..794e4f1c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.shp.xml b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.shp.xml new file mode 100644 index 00000000..83706310 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.shp.xml @@ -0,0 +1,3 @@ + + +2011050412375900FALSEFeatureClassToFeatureClass PeTgauges_Layer "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data" PeTgauges.shp # "GaugeIDs 'GaugeIDs' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,GaugeIDs,-1,-1;X 'X' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,X,-1,-1;Y 'Y' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,Y,-1,-1" # "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp"DefineProjection PeTgauges GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]] PeTgaugesFeatureClassToFeatureClass PeTgauges "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data" PeTgages.shp # "GaugeIDs 'GaugeIDs' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,GaugeIDs,-1,-1;X 'X' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,X,-1,-1;Y 'Y' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,Y,-1,-1" # "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgages.shp"Project PeTgages "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgages_Prjctd.shp" PROJCS['NAD_1983_StatePlane_South_Carolina_FIPS_3900',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',609600.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Standard_Parallel_1',32.5],PARAMETER['Standard_Parallel_2',34.83333333333334],PARAMETER['Latitude_Of_Origin',31.83333333333333],UNIT['Meter',1.0]] # GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]]20110504123646002011050412364600{EF570522-7F48-4B98-8EFA-F2853B5F611C}Microsoft Windows 2000 Version 5.2 (Build 3790) Service Pack 2; ESRI ArcCatalog 9.3.1.3000enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.PeTgagesPeTgagesvector digital dataREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows 2000 Version 5.2 (Build 3790) Service Pack 2; ESRI ArcCatalog 9.3.1.3000PeTgagesenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20110504ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://Local Area Network0.000ShapefileVectorSimplePointFALSE0FALSEFALSEEntity point0GCS_North_American_1983Decimal degrees0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222GCS_North_American_19830PeTgagesFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.GaugeIDsGaugeIDsFloat1911XXFloat1911YYFloat191120110504Dataset copied.2011050412375900 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.shx b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.shx new file mode 100644 index 00000000..368f99c1 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/PenmanMonteith/data/PeTgauges.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Data/PPT.csv b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Data/PPT.csv new file mode 100644 index 00000000..d3e3cfed --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Data/PPT.csv @@ -0,0 +1 @@ +9.66,9.12,8.69,8.3,8.18,8.67,7.93,7.59,7.39,7.27,6.98,6.8,6.69,6.59,6.67,6.5,6.22,5.93,5.75,5.72,5.61,5.41,5.2,5.02,4.93,4.79,4.74,5,4.6,4.48,4.37,4.3,4.19,4.17,4.01,3.87,3.79,4.74,3.98,3.83,3.67,3.56,3.44,4.51,4.01,3.68,3.54,3.39,3.31,3.24,3.16,3.18,3.09,3.02,3.21,3.03,2.95,2.82,2.73,2.71,2.69,3.13,2.74,2.63,2.57,2.5,2.47,2.56,2.47,2.47,2.45,2.59,2.51,2.37,2.32,2.24,2.2,3.05,2.64,2.27,2.2,2.14,2.1,2.08,2.03,2.08,2,1.97,2.08,1.98,1.92,1.91,1.87,1.8,1.79,1.79,1.77,1.76,1.72,1.93,1.77,1.72,1.68,1.67,2.78,2.18,1.79,1.75,1.96,1.79,1.68,1.66,1.63,1.62,1.6,1.57,1.55,1.56,1.66,1.7,1.61,1.69,1.77,1.63,1.55,1.52,1.49,1.46,1.45,1.46,1.45,1.42,1.41,1.38,1.37,1.37,1.35,1.33,1.28,1.29,1.3,1.29,1.28,1.28,1.28,1.27,1.27,1.26,1.25,1.47,1.3,1.27,1.47,1.31,1.24,1.23,1.21,1.19,1.16,1.18,1.36,1.24,1.17,1.17,1.17,1.17,1.17,1.17,1.17,1.12,1.13,1.14,1.17,3.91,1.62,1.4,1.31,1.41,1.72,1.82,5.24,2.2,1.84,1.71,1.64,1.6,2.46,7.37,3.29,2.62,2.37,2.25,2.13,2.05,2.03,2.1,2.01,2.04,1.97,1.89,1.85,1.85,2.61,2.09,1.96,1.96,1.96,2.53,12.2,6.79,5.38,5.68,5.64,12.27,10.64,9.09,8.78,8.93,7.85,7.43,7.3,6.72,8.36,7.62,7.91,7.2,6.77,6.77,6.58,6.32,6.15,6,5.86,6.16,6.82,5.99,5.81,5.68,5.59,6.42,6.87,6.46,6.2,5.98,5.77,5.81,8.13,8.12,7.08,6.71,7.42,7.36,7.29,6.86,6.65,6.48,6.36,6.3,6.7,6.38,7.64,6.76,6.44,6.56,6.26,6.39,9.63,7.43,7.04,6.78,6.57,6.45,6.39,6.34,6.23,6.13,6.01,5.97,5.83,5.63,5.5,5.38,5.28,5.24,5.21,4.98,4.83,4.74,5.04,4.69,4.58,4.85,4.69,6.37,4.95,4.62,4.45,4.42,4.3,4.29,4.21,5.02,5.22,4.54,4.34,5.89,6.73,12.65,8.86,7.55,6.93,7.39,6.78,6.4,6.19,6.57,9.33,7.61,7.15,6.78,6.6,6.46,6.37,6.24,6.19,6.44,6.17,5.96,5.82,5.72,5.64,5.61,5.53,5.41,5.34,5.32,5.11,5.14,5.67,5.15,4.91,4.79,4.68,4.74,5.28,7.96,5.69,5.24,5.07,4.92,5.35,4.97,4.77,4.62,4.52,4.7,5.12,4.53,4.35,5.45,5.29,4.83,4.63,4.8,4.96 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Model/Configuration.xml b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Model/Configuration.xml new file mode 100644 index 00000000..3d159390 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Model/Configuration.xml @@ -0,0 +1,199 @@ + + + + + + Coweeta infiltration + Coweeta watershed, NC + ..\..\data\gis\weir18.shp + + + Infiltration rate + infiltratin rate in the watershed + + + L + 1 + + + T + -1 + + + + mm/day + millimeters per day + 1 + 0 + + scalar + + + + + Coweeta runoff + Coweeta watershed, NC + ..\..\data\gis\weir18.shp + + + runoff rate + runoff rate in the watershed + + + L + 1 + + + T + -1 + + + + mm/day + millimeters per day + 1 + 0 + + scalar + + + + + Coweeta water table + Depth to the water table + ..\..\data\gis\coweeta_18.shp + 1 + + + Z + Depth to the water table + + + 1 + Length + + + + m + meters + 1 + 0 + + Scalar + + + + + Soil moisture storage + soil moisture storage + ..\..\data\gis\coweeta_18.shp + 1 + + + S + soil moisture storage + + + 1 + Length + + + + m + meters + 1 + 0 + + Scalar + + + + + Coweeta surface hydraulic conductivity + soil water hydraulic conductivity at surface + ..\..\data\gis\coweeta_18.shp + 1 + + + K_surf + soil water hydraulic conductivity at surface + + + 1 + Length + + + -1 + time + + + + m/day + meters/day + 1 + 0 + + Scalar + + + + + Coweeta + Coweeta watershed,NC + ..\..\data\gis\coweeta_18.shp + 1 + + + P_surf + Porosity at the surface + + + 0 + Length + + + + unitless + unitless + 1 + 0 + + Scalar + + + + + Coweeta + Coweeta watershed in NC + ..\..\data\gis\coweeta_18.shp + 1 + + + air-entry + Air entry pressure + + + 1 + Length + + + + m + meters + 1 + 0 + + Scalar + + + + + 01/02/2006 12:00:00 AM + 10/31/2009 12:00:00 AM + 86400 + + + PhillipEquation + infiltration Model + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Model/PhillipEquation.omi b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Model/PhillipEquation.omi new file mode 100644 index 00000000..6539970a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Model/PhillipEquation.omi @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/PhillipEquation.csproj b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/PhillipEquation.csproj new file mode 100644 index 00000000..a1d5f0ac --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/PhillipEquation.csproj @@ -0,0 +1,89 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {42C235DC-95C4-4DCD-A47D-FE3317DB09E2} + Library + Properties + PhillipEquation + PhillipEquation + v4.0 + 512 + Client + + + true + full + false + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Buffer.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + ..\..\Utilities\SharpMap\SharpMap.dll + + + False + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + + + + + + + + + + + + + + + + + Designer + + + Designer + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/PhillipEquation.sln b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/PhillipEquation.sln new file mode 100644 index 00000000..5a04c5a1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/PhillipEquation.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PhillipEquation", "PhillipEquation.csproj", "{42C235DC-95C4-4DCD-A47D-FE3317DB09E2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {42C235DC-95C4-4DCD-A47D-FE3317DB09E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42C235DC-95C4-4DCD-A47D-FE3317DB09E2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42C235DC-95C4-4DCD-A47D-FE3317DB09E2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42C235DC-95C4-4DCD-A47D-FE3317DB09E2}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..976bdf2a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("PhillipEquation")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("PhillipEquation")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("75d556f7-f7f6-4a37-b1d2-340bf655e8ed")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Source/LinkableComponent.cs b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Source/LinkableComponent.cs new file mode 100644 index 00000000..44eba3bb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Source/LinkableComponent.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace PhillipEquation +{ + class LinkableComponent:Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + protected override void SetEngineApiAccess() + { + _engineApiAccess = new PhillipEquation(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Source/PhillipEquation.cs b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Source/PhillipEquation.cs new file mode 100644 index 00000000..791ff028 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PhillipEquation/Source/PhillipEquation.cs @@ -0,0 +1,263 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using System.Collections; +using System.Xml; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Buffer; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Wrapper; +using SMW; +using SharpMap.Layers; +using SharpMap.Data.Providers; +using SharpMap.Data; + +namespace PhillipEquation +{ + + public class PhillipEquation : SMW.Wrapper + { + # region Global Variable + //input parameters + double Z; //Depth to water table[m] + double S; //soil moisture storage + double m_z;// deacy factor of conductivity with depth + double p; //porosity deacy parameter + double Pa_entry; //air pressure entery. + double Pa_f;//air entery profile. + double Ksat_surf; //saturated hydraulic conductivity at surface[m/day] + double K_sat;//saturated hydraulic conductivity of soil profile[m/day] + double P_surf; //porosity at surface + double porosity; // porosity profile + double theta; + double tp; //time to pond + double Sp;//Sorptivity + double duration;//time step in hrs + List PPT = new List(); + string[] _output_elementset; + string[] _output_quantity; + bool isSoilSaturated = false; + + //output parameters + Dictionary outputValues = new Dictionary(); + string[] _input_elementset; + string[] _input_quantity; + double infltration; + double runoff; + ArrayList q_infltration_outputs = new ArrayList(); + ArrayList Q_runoff_outputs = new ArrayList(); + ArrayList _DateTimes = new ArrayList(); + Dictionary infltration_outputValues = new Dictionary(); + Dictionary runoff_outputValues = new Dictionary(); + string outputPath = System.IO.Directory.GetCurrentDirectory() + "/output"; + # endregion + + public override void Finish() + { + if (!System.IO.Directory.Exists(outputPath)) + { + System.IO.Directory.CreateDirectory(outputPath); + } + + //System.IO.Directory.CreateDirectory("wateroutput"); + StreamWriter swa = new StreamWriter(outputPath + "/Infiltration.csv"); + swa.WriteLine("Daily infiltration...."); + DateTime start = CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)this.GetTimeHorizon().Start).ModifiedJulianDay); + DateTime end = CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)this.GetTimeHorizon().End).ModifiedJulianDay); + swa.WriteLine("StartDate: , " + String.Format("{0:MM/dd/yyyy hh:mm:ss}", start)); + swa.WriteLine("EndDate: , " + String.Format("{0:MM/dd/yyyy hh:mm:ss}", end)); + swa.WriteLine(); + swa.WriteLine("Time [0:MM/dd/yyyy hh:mm:ss], Infiltration"); + + + foreach (KeyValuePair kvp in outputValues) + { + + string time = String.Format("{0:MM/dd/yyyy hh:mm:ss}", kvp.Key); + swa.Write(time + ","); + + swa.Write(kvp.Value.ToString() + ","); + + swa.Write("\n"); + + + } + swa.Close(); + } + + public override void Initialize(System.Collections.Hashtable properties) + { + //Get config file path defined in sample.omi + string Config = (string)properties["ConfigFile"]; + + //read topographic input file + string PPT_input = (string)properties["PPT"]; + + //read model input parameters + m_z = Convert.ToDouble(properties["m_z"]); + Pa_entry = Convert.ToDouble(properties["Pa_entry"]); + Z = Convert.ToDouble(properties["Z"]); + S = Convert.ToDouble(properties["S"]); + Ksat_surf = Convert.ToDouble(properties["Ksat_surf"]); + P_surf = Convert.ToDouble(properties["P_surf"]); + p = Convert.ToDouble(properties["p"]); + + //set OpenMI internal variables + this.SetVariablesFromConfigFile(Config); + + // initialize a data structure to hold results + this.SetValuesTableFields(); + + //save input exchange item info + int num_inputs = this.GetInputExchangeItemCount(); + _input_elementset = new string[num_inputs]; + _input_quantity = new string[num_inputs]; + for (int i = 0; i < num_inputs; i++) + { + _input_elementset[i] = this.GetInputExchangeItem(i).ElementSet.ID; + _input_quantity[i] = this.GetInputExchangeItem(i).Quantity.ID; + } + int num_outputs = this.GetOutputExchangeItemCount(); + + _output_elementset = new string[num_outputs]; + _output_quantity = new string[num_outputs]; + for (int i = 0; i < num_outputs; i++) + { + _output_elementset[i] = this.GetOutputExchangeItem(i).ElementSet.ID; + _output_quantity[i] = this.GetOutputExchangeItem(i).Quantity.ID; + } + if (PPT_input != null) + { + //read input Ux,Uy,and concentration matrix + StreamReader sr = new StreamReader(PPT_input); + string line = sr.ReadLine(); + + while (line != null) + { + string[] vals = line.Split(','); + for (int j = 0; j <= vals.Length - 1; j++) + { + + PPT.Add(Convert.ToDouble(vals[j])); + } + line = sr.ReadLine(); + } + } + } + + public override bool PerformTimeStep() + { + //Identifying the current time step & the start time and detrimine the current time step + TimeStamp time = (TimeStamp)this.GetCurrentTime(); + DateTime curr_time = CalendarConverter.ModifiedJulian2Gregorian(time.ModifiedJulianDay); + _DateTimes.Add(curr_time); + TimeStamp times = (TimeStamp)this.GetTimeHorizon().Start; + DateTime start_time = CalendarConverter.ModifiedJulian2Gregorian(times.ModifiedJulianDay); + System.TimeSpan tspan = curr_time - start_time; + duration = tspan.Days ;// Days conter + int k = Convert.ToInt32(duration); + + + //infiltration for unsaturated soil + if (S < 1 && Ksat_surf > 0) + { + if (m_z > 0) { K_sat = m_z * Ksat_surf * (1 - Math.Exp(-Z / m_z) / Z); } + + else { K_sat = Ksat_surf; } + + if (p < 1000) { porosity = p * P_surf * (1 - Math.Exp(-Z / p)) / Z; } + + else { porosity = P_surf; } + + theta = S * porosity; + + //Estimate Sorptivity + Pa_f = 0.76 * Pa_entry; + + Sp = Math.Sqrt(2) * K_sat * Pa_f; + + //calculate ponding time using Green & Ampt method + if (PPT[k] > K_sat) { tp = K_sat * Pa_f * ((porosity - theta) / (PPT[k] * (PPT[k] - K_sat))); } + + else { tp = duration; } + + //calculate the infiltration + double t = duration - tp; + if (duration <= tp) { infltration = PPT[k]; } + else {infltration = Sp * Math.Pow(t, 0.5) + K_sat * 1.5 / 3.0 * t + tp * PPT[k];} + infltration_outputValues.Add(curr_time,infltration); + } + + else {infltration = 0;} + if (isSoilSaturated) + { + double _dt = this.GetTimeStep() / 86400; + Z = Z - (infltration /_dt); + if (Z <= 0) { isSoilSaturated = true; Z = 0; } //need to add a moisture content function with time + } + + //calculate the runoff using water balance + runoff = PPT[k] - infltration; + runoff_outputValues.Add(curr_time,runoff); + + //set the basin infiltration and runoff as outputs + double[] infiltration_save = new double[1]; + infiltration_save[0] = infltration;// set the infiltration as an scalar output; + string q1 = this.GetOutputExchangeItem(0).Quantity.ID; + string e1 = this.GetOutputExchangeItem(0).ElementSet.ID; + this.SetValues(q1, e1, new ScalarSet(infiltration_save)); + + double[] runoff_save = new double[1]; + runoff_save[0] = runoff; + string q2 = this.GetOutputExchangeItem(1).Quantity.ID; + string e2 = this.GetOutputExchangeItem(1).ElementSet.ID; + this.SetValues(q2, e2, new ScalarSet(runoff_save)); + + this.AdvanceTime(); + return true; + } + # region to read input ruster + ///// + ///// Reads an input raster ascii file containing topographic index to produce topographic index and topographic frequency arrays + ///// + ///// ASCII raster file containing topographic index values + ///// output topographic index array + ///// output topographic frequency array + //public void read_topo_input(string topographicIndex, out double[] ti, out double[] freq) + //{ + // //---- begin reading the values stored in the topo file + // StreamReader sr = new StreamReader(topographicIndex); + + // //-- read header info + // string line = null; + // for (int i = 0; i <= 4; i++) + // line = sr.ReadLine(); + + // //-- save the cellsize + // double cellsize = Convert.ToDouble(line.Split(' ')[line.Split(' ').Length - 1]); + // line = sr.ReadLine(); + + // //-- save the nodata value + // string nodata = line.Split(' ')[line.Split(' ').Length - 1]; + // line = sr.ReadLine(); + + // //-- store all values != nodata in a list + // List topoList = new List(); + // int lineNum = 0; + // while (!String.IsNullOrEmpty(line)) + // { + // lineNum += 1; + // string[] vals = line.TrimEnd(' ').Split(' '); + // for (int i = 0; i <= vals.Length - 1; i++) + // if (vals[i] != nodata) + // topoList.Add(Convert.ToDouble(vals[i])); _watershedArea += cellsize; + + // line = sr.ReadLine(); + // } + + //} + #endregion + } +} \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.dbf b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.dbf new file mode 100644 index 00000000..f07942df Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.prj b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.prj new file mode 100644 index 00000000..f45cbadf --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.prj @@ -0,0 +1 @@ +GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.sbn b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.sbn new file mode 100644 index 00000000..42d5c892 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.sbx b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.sbx new file mode 100644 index 00000000..24c590bd Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.shp b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.shp new file mode 100644 index 00000000..b1044f56 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.shx b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.shx new file mode 100644 index 00000000..6cfda009 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Data/elements.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/PrecipWaterTest/PrecipWaterTest.cs b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/PrecipWaterTest/PrecipWaterTest.cs new file mode 100644 index 00000000..04e686b2 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/PrecipWaterTest/PrecipWaterTest.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Linq; + +using NUnit.Framework; +using SMW; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Wrapper; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using OpenMI.Standard; +using PrecipitableWater; + +namespace PrecipWaterTest +{ + #region Test1 + //[TestFixture] + //static class PrecipWaterTest + //{ + // /// + // /// The main entry point for the application. + // /// + + // static PrecipitableWater.PrecipMethod engine = new PrecipitableWater.PrecipMethod(); + + // [Test] + // static void Main() + // { + // //Initialize + // Console.WriteLine("\n ----- Beginning Initialize -----"); + // System.Collections.Hashtable args = new System.Collections.Hashtable(); + // args.Add("ConfigFile", "./configTest.xml"); + // engine.Initialize(args); + + // Console.WriteLine("\n ----- Initialize finished Sucessfully -----"); + + + // Console.WriteLine("\n ----- Beginning Perform-Time-Step -----"); + + + // //temperature values, celcius, on 60 min intervals + // double[] t = new double[6] { 8.17, 23.5, 24, 26, 27, 25 }; + + // //Use the engine + // Console.WriteLine("Precipitable Water for Different Surface Temperature"); + // for (int j = 0; j <= t.Length - 1; j++) + // { + // double[] T = new double[1] { t[j] }; + // IValueSet temp = new ScalarSet(T); + // engine.SetValues("T", "Temperature", temp); + // engine.PerformTimeStep(); + // ScalarSet Excess = (ScalarSet)engine.GetValues("P", "Precipitable Water"); + + // } + + // Console.WriteLine("\n ----- Perform-Time-Step finished Sucessfully -----"); + + // Console.ReadLine(); + + // //Finish + // engine.Finish(); + // } + //} + + #endregion + + [TestFixture] + public class Test + { + PrecipitableWater.PrecipMethod engine = new PrecipitableWater.PrecipMethod(); + + [Test] + public void Initialize() + { + Console.WriteLine("\n ----- Beginning Initialize -----"); + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "../../../Source/config.xml"); + engine.Initialize(args); + + Console.WriteLine("\n ----- initialize finished sucessfully -----"); + } + + [Test] + public void Process() + { + Console.WriteLine("\n ----- Beginning Perform-Time-Step -----"); + + //temperature values, celcius, on 60 min intervals + double[] t = new double[6] { 8.17, 33.0, 32.6, 32.2, 27.5, 29.8 }; + + //Use the engine + Console.WriteLine("Precipitable Water for Different Surface Temperature"); + + for (int j = 0; j < t.Count(); j++) + { + double[] T = new double[1] { t[j] }; + IValueSet temp = new ScalarSet(T); + engine.SetValues("T", "Temperature", temp); + engine.PerformTimeStep(); + ScalarSet Excess = (ScalarSet)engine.GetValues("P", "Precipitable Water"); + } + + Console.WriteLine("\n ----- Perform-Time-Step finished Sucessfully -----"); + } + + [Test] + public void finish() + { + Console.ReadLine(); + + engine.Finish(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/PrecipWaterTest/PrecipWaterTest.csproj b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/PrecipWaterTest/PrecipWaterTest.csproj new file mode 100644 index 00000000..c45f72e7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/PrecipWaterTest/PrecipWaterTest.csproj @@ -0,0 +1,90 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {BB00F1AE-5475-41E3-9F98-773B7DB72393} + Exe + Properties + PrecipWaterTest + PrecipWaterTest + v3.5 + 512 + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Backbone.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + False + ..\Source\bin\Debug\PrecipitableWater.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/PrecipWaterTest/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/PrecipWaterTest/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..af9ed082 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/PrecipWaterTest/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("PrecipWaterTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("PrecipWaterTest")] +[assembly: AssemblyCopyright("Copyright © 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("10e337aa-ebd8-4dfd-8a12-7981a52dea51")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/PrecipWaterTest/StartTest.cs b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/PrecipWaterTest/StartTest.cs new file mode 100644 index 00000000..f41b15ad --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/PrecipWaterTest/StartTest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace PrecipWaterTest +{ + class StartTest + { + static void Main() + { + PrecipWaterTest.Test test = new PrecipWaterTest.Test(); + test.Initialize(); + test.Process(); + test.finish(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/PrecipMethod.cs b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/PrecipMethod.cs new file mode 100644 index 00000000..7c446307 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/PrecipMethod.cs @@ -0,0 +1,239 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Text; +using System.Xml; +using System.IO; + + +using SMW; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using SharpMap; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using System.Collections; + +//---------------------------------------------------------------------------------- +//---------------------------------------------------------------------------------- + +// Input parameters included within elements.shp: + +// 1.) cloud height [km] +// 2.) surface pressure [kpa] +// 3.) area [km^2] //Not in use till now + +// Input exchange item needs to be in celsius + +//---------------------------------------------------------------------------------- +//---------------------------------------------------------------------------------- + +namespace PrecipitableWater +{ + public class PrecipMethod : SMW.Wrapper + { + public DataTable _elementValues = new DataTable(); + double _cloudh, _surfp, _area; + ArrayList _DateTimes = new ArrayList(); + ArrayList _Vals = new ArrayList(); + string _outDir = null; + private int _featureCount; + public double[] Precip; + + public override void Finish() + { + string outputPath; + + if (_outDir != null) + outputPath = _outDir + "/PrecipWater_output.csv"; + else + outputPath = "../PrecipWater_output.csv"; + + StreamWriter writer = new StreamWriter(outputPath); + + writer.Write("Precipitable Water (mm)" + "\n"); + writer.Write("Time, "); + + for (int i = 0; i < _featureCount; i++) + { + writer.Write("element " + (i + 1).ToString() + ","); + } + + writer.Write("\n"); + + for (int j = 0; j < _DateTimes.Count; j++) + { + writer.Write(_DateTimes[j] + "," + _Vals[j * _featureCount]); + + for (int k = 1; k < _featureCount; k++) + { + writer.Write("," + _Vals[j * _featureCount + k]); + } + + writer.Write("\n"); + } + + writer.Close(); + + #region Previous Create ODM csv code + //------ Create ODM csv ----- + + //if (_Vals.Count > 0) + //{ + // //Set Datetimes + // odmUtils.DateTimes = _DateTimes; + // //Set Values + // odmUtils.Values = _Vals; + // //Set Variable + // odmUtils.VariableName = "Precipitable Water"; + // //Set Corresponding Variable Code + // odmUtils.VariableCode = "5"; // What's the VariableCode? + // //Set Site Name + // string siteName = this.GetModelID().ToString(); + // odmUtils.SiteName = siteName; + // //Select a Unique Site ID + // odmUtils.SiteCode = "40"; + // //Set CSV Path + // odmUtils.CSVPath = System.Environment.CurrentDirectory; + // //Write CSV file + // odmUtils.CreateODMcsv(); + // Console.WriteLine("ODM .csv has been written"); + // //Write BAT files + // odmUtils.CreateBat(); + // Console.WriteLine("ODM .bat has been written"); + // //Load CSV into ODM by executing the BAT file + // odmUtils.LoadIntoODM(); + // Console.WriteLine("Data has been loaded"); + //} + #endregion + } + + public override void Initialize(System.Collections.Hashtable properties) + { + string configFile = null; + + //set the config path and output directory from the *.omi file. + foreach (DictionaryEntry p in properties) + { + if (p.Key.ToString() == "ConfigFile") + configFile = (string)properties["ConfigFile"]; + else if (p.Key.ToString() == "OutDir") + _outDir = (string)properties["OutDir"]; + } + + SetVariablesFromConfigFile(configFile); + SetValuesTableFields(); + + // --- setup elementValues DataTable to store element attributes from elements.shp + _elementValues.Columns.Add("Watershed", typeof(int)); + _elementValues.Columns.Add("Pressure", typeof(double)); + _elementValues.Columns.Add("CloudH", typeof(double)); + _elementValues.Columns.Add("Area", typeof(double)); + + //Get shapefile path + XmlDocument doc = new XmlDocument(); + doc.Load(configFile); + XmlElement root = doc.DocumentElement; + XmlNode elementSet = root.SelectSingleNode("//InputExchangeItem//ElementSet"); + string shapefilePath = elementSet["ShapefilePath"].InnerText; + + //Get watershed properties from elements.shp + SharpMap.Layers.VectorLayer myLayer = new SharpMap.Layers.VectorLayer("elements_layer"); + myLayer.DataSource = new SharpMap.Data.Providers.ShapeFile(shapefilePath); + myLayer.DataSource.Open(); + + //initialize cumulative precipitable water + _featureCount = myLayer.DataSource.GetFeatureCount(); + Precip = new double[_featureCount]; + + for (uint i = 0; i < _featureCount; i++) + { + SharpMap.Data.FeatureDataRow feat = myLayer.DataSource.GetFeature(i); + DataTable att = feat.Table; + + object Watershed = feat.ItemArray[feat.Table.Columns.IndexOf("Id")]; + object Pressure = feat.ItemArray[feat.Table.Columns.IndexOf("Pressure_s")]; + object CloudH = feat.ItemArray[feat.Table.Columns.IndexOf("CloudHt")]; + object Area = feat.ItemArray[feat.Table.Columns.IndexOf("Area")]; + + _elementValues.LoadDataRow(new object[] { Watershed, Pressure, CloudH, Area }, true); + + //Set the initial _precipwater for each watershed = 0 + Precip[i] = 0.0; + } + + } + + public override bool PerformTimeStep() + { + //GetValues - Receiving Data + ScalarSet temp_s = (ScalarSet)this.GetValues("T", "Temperature"); + double[] Temperature = temp_s.data; + + //loop through all elements + for (int i = 0; i < _featureCount; i++) + { + //Get input values from elementValues datatable + _surfp = Convert.ToSingle(_elementValues.Rows[i]["Pressure"]); + _cloudh = Convert.ToSingle(_elementValues.Rows[i]["CloudH"]); + _area = Convert.ToSingle(_elementValues.Rows[i]["Area"]); + + //Calculate the precipitable water + double Dz = 0.3; // Unit: km + double Alpha = 6.5; // Unit: K/km + double g = 9.81; //Unit: m/s^2 + double Ra = 287; //Unit: J/kg-K + + //Define input parameters + double T = 0; + if (Temperature.Length != 0) + { + T = (Temperature[0]) + 273.15;//in Kelvin + } + + //Define calculation Parameters + double qa1, qa2; //air density + double e1, e2; //Saturation vapor pressure + double qv1, qv2; //Specific humidity + double Dmp = 0; + + double zinc = 0; + + while (zinc < _cloudh) + { + + qa1 = (_surfp / (Ra * T)) * 1000; + e1 = 611 * Math.Exp((17.27 * (T - 273.15)) / (237.3 + (T - 273.15))); + qv1 = 0.622 * (e1 / (_surfp * 1000 - 0.378 * e1)); + + _surfp = _surfp * Math.Pow(((T - (Alpha * Dz)) / T), (g / ((Alpha / 1000) * Ra))); + T = T - (Alpha * Dz); + + qa2 = (_surfp / (Ra * T)) * 1000; + e2 = 611 * Math.Exp((17.27 * (T - 273.15)) / (237.3 + (T - 273.15))); + qv2 = 0.622 * (e2 / (_surfp * 1000 - 0.378 * e2)); + + Dmp = Dmp + ((qv1 + qv2) / 2) * ((qa1 + qa2) / 2) * Dz * 1000; + + zinc = zinc + Dz; + } + + Dmp = Dmp / 25.4; + + Precip[i] = Dmp; + + _Vals.Add(Dmp); + } + + TimeStamp t = (TimeStamp)this.GetCurrentTime(); + DateTime Time = CalendarConverter.ModifiedJulian2Gregorian(t.ModifiedJulianDay); + _DateTimes.Add(Time); + + //Set Values in array + this.SetValues("P", "Precipitable Water", new ScalarSet(Precip)); + + this.AdvanceTime(); + return true; + } + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/PrecipitableWater.csproj b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/PrecipitableWater.csproj new file mode 100644 index 00000000..584cfb1e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/PrecipitableWater.csproj @@ -0,0 +1,120 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {C2D86473-5017-450D-8115-5C44F55FA347} + Library + Properties + PrecipitableWater + PrecipitableWater + v4.0 + 512 + + + + + + + 3.5 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + ..\..\..\Utilities\SharpMap\SharpMap.dll + + + + + + + + + + + + + Designer + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + {96C23728-CA20-47F8-A85C-AE76A31085FB} + SMW + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/PrecipitableWater.omi b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/PrecipitableWater.omi new file mode 100644 index 00000000..7c38fb82 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/PrecipitableWater.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/PrecipitableWater.sln b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/PrecipitableWater.sln new file mode 100644 index 00000000..73dbe322 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/PrecipitableWater.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PrecipitableWater", "PrecipitableWater.csproj", "{C2D86473-5017-450D-8115-5C44F55FA347}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PrecipWaterTest", "..\PrecipWaterTest\PrecipWaterTest.csproj", "{BB00F1AE-5475-41E3-9F98-773B7DB72393}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C2D86473-5017-450D-8115-5C44F55FA347}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2D86473-5017-450D-8115-5C44F55FA347}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2D86473-5017-450D-8115-5C44F55FA347}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2D86473-5017-450D-8115-5C44F55FA347}.Release|Any CPU.Build.0 = Release|Any CPU + {BB00F1AE-5475-41E3-9F98-773B7DB72393}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB00F1AE-5475-41E3-9F98-773B7DB72393}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB00F1AE-5475-41E3-9F98-773B7DB72393}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB00F1AE-5475-41E3-9F98-773B7DB72393}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/Precipitable_LC.cs b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/Precipitable_LC.cs new file mode 100644 index 00000000..9f6593a2 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/Precipitable_LC.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Oatc.OpenMI.Sdk.Backbone; + +namespace PrecipitableWater +{ + class Precipitable_LC : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + public Precipitable_LC() + { + _engineApiAccess = new PrecipMethod(); + } + protected override void SetEngineApiAccess() + { + _engineApiAccess = new PrecipMethod(); + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..0851a982 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("PrecipitableWater")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("PrecipitableWater")] +[assembly: AssemblyCopyright("Copyright © 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("1c756568-32db-474d-a9aa-89e5086a015e")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/config.xml b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/config.xml new file mode 100644 index 00000000..cd62afa3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PrecipitableWater/Source/config.xml @@ -0,0 +1,64 @@ + + + + + + Precipitable Water + + ..\Data\elements.shp + 1 + + + P + Precipitable Water + + + Length + 1 + + + + mm + millimeter + 1 + 0 + + Scalar + + + + + Temperature + + 1 + ..\Data\elements.shp + + + T + Temperature + + + 1 + Thermo + + + + C + Celsius + 1 + 0 + + Scalar + + + + + 06/26/2010 00:00:00 + 07/1/2010 00:00:00 + 86400 + + + Precipitable Water + none + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/PTPET.sln b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/PTPET.sln new file mode 100644 index 00000000..7dbd98ca --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/PTPET.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "sourcePTPET", "source\sourcePTPET.csproj", "{B588386B-E1CC-4B4B-ADDD-E8A10AC1682C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "testPTPET", "test\testPTPET.csproj", "{B7E24B61-44DE-4BAB-8234-CF79BAC7B7F5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B588386B-E1CC-4B4B-ADDD-E8A10AC1682C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B588386B-E1CC-4B4B-ADDD-E8A10AC1682C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B588386B-E1CC-4B4B-ADDD-E8A10AC1682C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B588386B-E1CC-4B4B-ADDD-E8A10AC1682C}.Release|Any CPU.Build.0 = Release|Any CPU + {B7E24B61-44DE-4BAB-8234-CF79BAC7B7F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7E24B61-44DE-4BAB-8234-CF79BAC7B7F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7E24B61-44DE-4BAB-8234-CF79BAC7B7F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7E24B61-44DE-4BAB-8234-CF79BAC7B7F5}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.dbf b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.dbf new file mode 100644 index 00000000..d7a03310 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.prj b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.prj new file mode 100644 index 00000000..5ded4bca --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.sbn b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.sbn new file mode 100644 index 00000000..9a4177d8 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.sbx b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.sbx new file mode 100644 index 00000000..3baa3de3 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.shp b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.shp new file mode 100644 index 00000000..148af331 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.shp.xml b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.shp.xml new file mode 100644 index 00000000..8581c6c1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.shp.xml @@ -0,0 +1,3 @@ + + +2010073011350500TRUEFeatureVerticesToPoints NCDCStations "C:\Documents and Settings\ERCANM\Desktop\OpenMI\DataPreperation\workspace\GISwork\work1\NCDCgages.shp" ALL{25CFC97B-424C-4B37-BD20-7E913D2345A1}\\CE-57\C\Documents and Settings\ERCANM\Desktop\OpenMI\Components\PETPriestley-Taylor\data\NCDCgagesfile://\\CE-57\C\Documents and Settings\ERCANM\Desktop\OpenMI\Components\PETPriestley-Taylor\data\NCDCgagesLocal Area NetworkDataset copied.C:\Documents and Settings\ERCANM\Desktop\OpenMI\DataPreperation\workspace\GISwork\work1\NCDCgages2010073011350500 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.shx b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.shx new file mode 100644 index 00000000..884125e2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/NCDCgages.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/PT-PET.set b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/PT-PET.set new file mode 100644 index 00000000..a77711dd --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/data/PT-PET.set @@ -0,0 +1,4 @@ +Hydrodesktop Priestley-Taylor Potantial Evapotranspiration Component Coefficients. +This file gives flexibility to determine some coefficients. +Kc=,0.85,//Average Crop Coefficient over the watershed. +Alpha=,1.3,//Coefficient = 1.26 for humid and 1.74 for arid areas.(http://www.iiasa.ac.at/Admin/PUB/Documents/WP-94-064.pdf explanations is on page 9/33) \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/output.csv b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/output.csv new file mode 100644 index 00000000..46e39039 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/output.csv @@ -0,0 +1,1828 @@ +StationID:,0,1 +Latitude:,NA,NA +Longitude:,NA,NA +Elevation:,296,661.4 +Date:,ETsz(mm/d),ETsz(mm/d) +01-03-2005,1.16696620301458,0.95893236932379 +01-04-2005,1.2560080524719,1.03329013269169 +01-05-2005,1.36095200164746,1.16382311593529 +01-06-2005,1.2271705178662,1.09057951890173 +01-07-2005,1.07439376973655,1.23283718041692 +01-08-2005,1.06943653903145,0.899102525174319 +01-09-2005,1.3529499259914,1.15488084742387 +01-10-2005,1.04262170791613,0.898945122151209 +01-11-2005,1.16100782288645,0.993236855822565 +01-12-2005,1.26229424062483,1.03297119267081 +01-13-2005,1.40434697351465,1.14142888408124 +01-14-2005,1.59265466441235,1.14757327098831 +01-15-2005,1.3043783597143,1.03167128210357 +01-16-2005,0.77859118185936,0.767412828526534 +01-17-2005,0.819019418982205,0.814580415230039 +01-18-2005,0.630240528294509,0.536319436415159 +01-19-2005,0.554956985986991,0.525898300505315 +01-20-2005,0.64885529996951,0.649856004479965 +01-21-2005,0.924886813271706,0.859586812137447 +01-22-2005,1.13995768804575,0.973117917527529 +01-23-2005,0.879065366755544,0.896379881028807 +01-24-2005,0.718234508025197,0.599135558122339 +01-25-2005,0.708237021549624,0.630328390001908 +01-26-2005,0.927059112564655,0.776954847919476 +01-27-2005,1.17739903783606,1.194143333284 +01-28-2005,1.07845719289519,0.992952742753356 +01-29-2005,0.776270308638202,0.753754437321501 +01-30-2005,0.656600335413209,0.496313861191149 +01-31-2005,0.993008408088265,0.99945434988962 +02-01-2005,1.04271758271639,0.790544542671691 +02-02-2005,0.927746181594963,0.843807966633937 +02-03-2005,0.303956245157947,0.879079184377562 +02-04-2005,0.820498129862991,0.77977943069142 +02-05-2005,1.31584009757914,1.11447359978287 +02-06-2005,1.39673918949918,1.29280307672703 +02-07-2005,1.41851213166291,1.25794980072492 +02-08-2005,1.33063820398161,1.31338905251073 +02-09-2005,1.69080038774789,1.66185219700392 +02-10-2005,2.14070689981722,1.80870042188788 +02-11-2005,1.63439274621256,1.47281752977312 +02-12-2005,1.18686274398374,1.07906392263792 +02-13-2005,1.42582898322503,1.44355008141541 +02-14-2005,1.70475436094795,1.41315203563836 +02-15-2005,1.19518840919877,1.53675642451789 +02-16-2005,1.1535917109873,1.71062000065592 +02-17-2005,2.49163792448998,2.21484444945355 +02-18-2005,1.69739133041551,1.32098061905501 +02-19-2005,1.47683202933762,1.27803279657756 +02-20-2005,1.6782640234328,1.48132606125374 +02-21-2005,1.73995404220562,1.61774320651013 +02-22-2005,1.51820076942499,2.08687337146358 +02-23-2005,2.43619299429189,2.22898657662657 +02-24-2005,2.30037178404639,2.07318342159537 +02-25-2005,2.22098705944747,2.11703352455444 +02-26-2005,1.86742256151506,1.73040989224614 +02-27-2005,1.87083120537022,1.87031994699743 +02-28-2005,1.83029940419614,1.88706184517811 +03-01-2005,0.834096231137271,1.22500183014399 +03-02-2005,1.38919954031597,1.03308056653129 +03-03-2005,1.68965031925013,1.36171870916681 +03-04-2005,1.92146309507053,1.7658625061442 +03-05-2005,1.98727281685958,1.84949585700296 +03-06-2005,2.43861938287454,2.07801994698617 +03-07-2005,2.37188792087568,2.26564557172449 +03-08-2005,2.6214782708341,2.3402143414541 +03-09-2005,2.41700857153468,2.12200426977859 +03-10-2005,1.94079527532758,1.77492462175831 +03-11-2005,2.2140757294061,1.98933006243208 +03-12-2005,2.55843212799503,2.20555566706857 +03-13-2005,2.45030453922421,2.45155859959223 +03-14-2005,2.97615763806904,2.83740805653592 +03-15-2005,3.09012787038235,2.81861066378506 +03-16-2005,2.44009401273577,2.17480715963393 +03-17-2005,2.05269867519692,2.19357940119869 +03-18-2005,1.68863227485172,1.15080327128474 +03-19-2005,2.56027059517651,2.24410603986509 +03-20-2005,2.82395460847448,2.55525280633211 +03-21-2005,3.22790861372631,2.88656278622886 +03-22-2005,3.01615466805328,3.01548165911919 +03-23-2005,2.06178529752637,2.76846349305545 +03-24-2005,3.3715974505973,3.38677296245223 +03-25-2005,3.51263782916567,2.73434486430048 +03-26-2005,3.69600136385609,3.38474915378356 +03-27-2005,3.59129569729688,3.66407456682263 +03-28-2005,3.04104634752688,3.40193223655498 +03-29-2005,1.3090010804789,0.746113866230451 +03-30-2005,3.66990739590648,3.37226789876845 +03-31-2005,3.97964680997907,3.69895406545407 +04-01-2005,4.02237435739295,4.02255947423451 +04-02-2005,1.75527580194865,2.90364498466185 +04-03-2005,2.7244005532192,2.74786117451929 +04-04-2005,3.3953180851806,2.63012662545277 +04-05-2005,3.94534533746189,3.80389635180145 +04-06-2005,4.28729165924036,4.01720208535675 +04-07-2005,4.31062295730431,4.28633455760213 +04-08-2005,4.05623242327812,3.90924334859071 +04-09-2005,1.85911341662089,2.21523650667339 +04-10-2005,3.65234387668059,3.73519152936159 +04-11-2005,4.35568935822891,4.43914460546301 +04-12-2005,4.81280531070103,4.72439960530888 +04-13-2005,4.66377152452829,4.50051286062431 +04-14-2005,1.35426316930337,1.48877192477575 +04-15-2005,3.37784925457221,3.50953210082321 +04-16-2005,3.96586003280073,4.12853964805093 +04-17-2005,3.86249102304702,3.91689460271971 +04-18-2005,4.18643147580297,4.05320070343616 +04-19-2005,4.83300207466365,4.58928658775579 +04-20-2005,4.99951095430482,4.87154727563314 +04-21-2005,5.06465026398155,4.93698305212997 +04-22-2005,5.11119085979634,4.82875652216695 +04-23-2005,5.23133012207543,4.96747349507973 +04-24-2005,3.77899154619959,3.31980295340074 +04-25-2005,3.78908233881945,2.44428301555926 +04-26-2005,4.14828114485264,4.04664971689846 +04-27-2005,4.34644678584137,4.00253926365619 +04-28-2005,4.5977324687855,3.82893653164302 +04-29-2005,3.8082725577722,4.0240541807167 +04-30-2005,4.1105091817109,4.95422247833002 +05-01-2005,4.76001833847481,4.64090002151037 +05-02-2005,4.60289921522666,4.01002428995877 +05-03-2005,4.70718120291895,4.25908678392212 +05-04-2005,4.55424558648135,4.24733182798901 +05-05-2005,4.17581693926817,4.34545405727771 +05-06-2005,3.84601008611582,4.24481958474808 +05-07-2005,4.11913550352481,4.79090730131572 +05-08-2005,5.21447071804517,5.10685594539857 +05-09-2005,5.82597772823999,5.52489671818402 +05-10-2005,5.93195420115624,5.75553137264272 +05-11-2005,5.85542331220927,5.71955102287852 +05-12-2005,5.88563522016019,5.4963199558452 +05-13-2005,6.37781776680713,6.06865518222718 +05-14-2005,6.18169427659515,6.07470448823673 +05-15-2005,4.43536479791103,5.37335982811612 +05-16-2005,5.58249005505855,3.64326858953482 +05-17-2005,5.45618981276586,5.00330294218737 +05-18-2005,5.34578379460569,5.43313123755685 +05-19-2005,5.08386952976231,5.96278204102513 +05-20-2005,5.23723080653133,5.62386134449317 +05-21-2005,5.5236999014497,5.06493409690647 +05-22-2005,4.42995698432622,3.29847199534072 +05-23-2005,4.31200793597281,5.076068249501 +05-24-2005,5.92695935390897,5.79783991533999 +05-25-2005,6.04547251415713,5.52997159930833 +05-26-2005,5.49084459371815,4.14179789942666 +05-27-2005,5.93194941832749,5.47824991875075 +05-28-2005,6.32713075951672,5.92230118273811 +05-29-2005,6.38621943301346,5.85388204740864 +05-30-2005,6.03643962072415,5.40748065853352 +05-31-2005,5.84849707294433,5.07650864718557 +06-01-2005,4.81122841753998,4.82181326002914 +06-02-2005,3.51585200037539,4.81958696911642 +06-03-2005,1.54459153257106,1.43879138476866 +06-04-2005,0.56438785909274,1.91840942675672 +06-05-2005,6.36591847364239,6.20495723976328 +06-06-2005,6.7860790334748,6.72671695186899 +06-07-2005,6.89303210826534,6.65885490977862 +06-08-2005,6.48774631612574,6.29898878215086 +06-09-2005,6.27962549666822,5.83896644641955 +06-10-2005,4.8710929151904,5.18528483728219 +06-11-2005,4.53288133882482,4.90849184637328 +06-12-2005,4.09342143118348,1.79049787233685 +06-13-2005,3.57659859563165,1.60296442587095 +06-14-2005,5.99687503071088,6.16512632675188 +06-15-2005,7.07407068468911,6.96501664645536 +06-16-2005,7.3022388660932,7.10063212411497 +06-17-2005,6.869591503865,6.4164123304339 +06-18-2005,6.06354603023428,6.07619367630755 +06-19-2005,5.54919077796472,5.86662564562478 +06-20-2005,5.10716584101817,5.7327768865938 +06-21-2005,5.47693309286409,3.06396638992861 +06-22-2005,5.75826800278621,5.01427624615164 +06-23-2005,6.72385935614151,6.26416445982819 +06-24-2005,6.57103062805268,6.53539813746401 +06-25-2005,6.14311398925032,6.45621955467589 +06-26-2005,6.06925298060139,6.3768775324176 +06-27-2005,5.18643951219309,5.72574616819012 +06-28-2005,5.73306722864961,4.99837235121706 +06-29-2005,5.07200813275537,4.58382035210577 +06-30-2005,4.62683175423197,5.40024231089053 +07-01-2005,6.77387727784496,5.9462261187713 +07-02-2005,7.08962552631619,6.5873368996754 +07-03-2005,6.75545129502388,6.32504978383655 +07-04-2005,5.6262444874661,4.09085007297857 +07-05-2005,3.84637838562228,4.2496676656534 +07-06-2005,6.06462497757097,5.66523048624438 +07-07-2005,6.4014736881106,6.58428586107553 +07-08-2005,6.2480058918499,5.52598369907775 +07-09-2005,6.41235209700795,6.07462846517625 +07-10-2005,6.84909593786215,6.58703460693791 +07-11-2005,6.34908296850765,6.78009111791048 +07-12-2005,4.96201830803507,4.80983478140839 +07-13-2005,4.50524064103924,5.49509412706021 +07-14-2005,5.28224497478915,5.23766847239412 +07-15-2005,5.17507953672672,4.92096790123465 +07-16-2005,3.87293886939197,4.4815070108122 +07-17-2005,3.80965035265347,4.41744071417429 +07-18-2005,5.60618584661665,5.89482795861538 +07-19-2005,5.80382954012183,5.78094206072606 +07-20-2005,6.45069915396146,5.78882015762761 +07-21-2005,6.43786313534182,5.57227049946656 +07-22-2005,6.56095743043143,6.03765038881773 +07-23-2005,6.68414542228992,6.18502282675219 +07-24-2005,6.56662358684836,6.71107674825044 +07-25-2005,5.74886910205017,6.68288744734603 +07-26-2005,6.80243300239921,7.09347212786504 +07-27-2005,7.39977109442421,7.14445581569753 +07-28-2005,7.3386543120673,7.09405674177159 +07-29-2005,7.07915911427067,6.44840725320184 +07-30-2005,6.09251275532393,4.4658875927513 +07-31-2005,3.32949925349505,3.4345669968594 +08-01-2005,3.20607386918952,4.05767533156181 +08-02-2005,4.11725471170431,5.15971667933813 +08-03-2005,5.641751189313,6.1185248735424 +08-04-2005,6.22684102594994,6.34314654981336 +08-05-2005,6.57657116447042,6.41168830731391 +08-06-2005,6.38254555954794,6.17828208736253 +08-07-2005,5.9181428400595,5.71045316828196 +08-08-2005,5.01182149529051,4.94828998681167 +08-09-2005,3.67533093675531,1.82248974851427 +08-10-2005,4.85089175508771,4.08486138987108 +08-11-2005,5.48105393626347,4.25779821711591 +08-12-2005,5.78434572316862,6.23479559464248 +08-13-2005,5.85954247513342,6.20889190042465 +08-14-2005,5.8184930928443,6.31874110152608 +08-15-2005,5.98755830234199,5.69752396572737 +08-16-2005,6.14805477094818,6.11361192914842 +08-17-2005,6.05467228805593,6.05408114694908 +08-18-2005,5.81324329802064,5.78846594398657 +08-19-2005,3.58096235844144,4.86388778441437 +08-20-2005,5.66662010506443,5.30823505020658 +08-21-2005,6.2991293402635,5.8474621932562 +08-22-2005,6.38028865251882,5.8947108813314 +08-23-2005,4.59533434126295,5.68299218515163 +08-24-2005,4.83661356194712,4.53467903341058 +08-25-2005,3.54651940286726,3.57450855173857 +08-26-2005,4.27559970044645,3.80876211497995 +08-27-2005,4.81097549161916,3.5810931965461 +08-28-2005,5.11575320785375,4.36818455875619 +08-29-2005,5.35977221165805,4.78058928433278 +08-30-2005,4.32514551820144,4.13548868042004 +08-31-2005,4.25497863960411,3.94409085956931 +09-01-2005,5.04249595351951,4.97366246610796 +09-02-2005,5.21295111391159,5.06292098986599 +09-03-2005,5.36086147458869,5.11103402094664 +09-04-2005,5.14811851101732,5.13120728738593 +09-05-2005,4.75213452870805,4.88682219431239 +09-06-2005,4.77021380638517,4.8223467290934 +09-07-2005,4.38318865130831,4.41065546384211 +09-08-2005,4.47045653650975,4.6909794677208 +09-09-2005,4.82205066302295,4.62711690569665 +09-10-2005,4.76046387431264,4.71567136156819 +09-11-2005,4.78523815642037,4.64957027778113 +09-12-2005,4.74862077941625,4.69357340524213 +09-13-2005,4.553717066148,4.58815823416977 +09-14-2005,4.69100444701086,4.64453141932894 +09-15-2005,4.90548403109645,4.62163988939098 +09-16-2005,4.83067752458458,4.68332019512448 +09-17-2005,5.06430604968829,4.6600181238588 +09-18-2005,4.90924718608863,4.65435396726641 +09-19-2005,4.51315006635518,4.35352535594738 +09-20-2005,4.50496878002816,4.35405144604925 +09-21-2005,4.73643517219181,4.44363167259801 +09-22-2005,4.5170257855864,4.44362120025144 +09-23-2005,4.54946735756413,4.30692130420514 +09-24-2005,4.55772442396458,4.29535207783137 +09-25-2005,4.46753561482437,4.20173480427871 +09-26-2005,4.38014842516303,4.03717170554627 +09-27-2005,3.53739760590434,3.04858560276601 +09-28-2005,3.84129711504033,3.67513347353601 +09-29-2005,3.80034969411495,3.68333267336582 +09-30-2005,3.88915988349901,3.61791127083672 +10-01-2005,3.11956610577987,3.10659891918827 +10-02-2005,3.11536931377785,3.40330691962718 +10-03-2005,3.43719822288884,3.51216878520439 +10-04-2005,3.26225694494529,3.42715178067503 +10-05-2005,2.99988107880929,3.36700951429181 +10-06-2005,2.94533984599934,3.47038337656618 +10-07-2005,2.14310580215261,2.37923864633073 +10-08-2005,0.0363568105578378,1.10808899611601 +10-09-2005,2.97208907241559,1.88493296798418 +10-10-2005,2.9624171133393,1.34924807539374 +10-11-2005,1.74347970698231,0.862165093582402 +10-12-2005,1.46982093077755,2.09746911673466 +10-13-2005,1.87817563288822,2.20356418834923 +10-14-2005,1.96012599083024,2.9105035702865 +10-15-2005,2.90210881459615,2.47347804105005 +10-16-2005,2.76815838794774,2.43746673761452 +10-17-2005,2.39800358839085,1.94110602778069 +10-18-2005,2.33723634588636,2.16022536314963 +10-19-2005,2.56143884648344,2.32915916648621 +10-20-2005,2.87591008583382,2.63844370401757 +10-21-2005,3.00387639137615,2.68557625581178 +10-22-2005,2.79064183199014,2.6114651969367 +10-23-2005,2.66560256791137,2.43676124214283 +10-24-2005,2.03806443866368,1.91216574010244 +10-25-2005,1.88941719708739,1.66545571168947 +10-26-2005,1.53378903563591,0.917613642692933 +10-27-2005,1.64698030738614,1.42982756428054 +10-28-2005,1.61647001055055,1.53280836779616 +10-29-2005,1.65400114684158,1.6113584000694 +10-30-2005,1.65256396489497,1.46306021917422 +10-31-2005,1.68141369757302,1.44973007221994 +11-01-2005,1.79790231098022,1.53218063790319 +11-02-2005,1.77495714034662,1.61335742479764 +11-03-2005,1.78989480573845,1.71510659101217 +11-04-2005,1.52767416617833,1.41179793910293 +11-05-2005,1.78698209036467,1.54941994345376 +11-06-2005,1.98314722279822,1.88177107261581 +11-07-2005,1.83553060211502,1.97968334263407 +11-08-2005,1.93491128833607,1.67179622848487 +11-09-2005,1.79718513837185,1.51155450052824 +11-10-2005,2.08647380489361,1.7355251355256 +11-11-2005,1.38366494831074,1.23275540593208 +11-12-2005,1.06503317001407,0.950973609154031 +11-13-2005,1.14215409091772,1.01278845945796 +11-14-2005,1.35240994161281,1.29108508547321 +11-15-2005,1.40460894237762,1.49669113294077 +11-16-2005,1.66822049116522,1.74948708925082 +11-17-2005,1.99075301612244,1.75574456739363 +11-18-2005,0.910813353336629,0.732325221707396 +11-19-2005,0.766446391182214,0.707948117671797 +11-20-2005,0.768967777685525,0.739140204031545 +11-21-2005,0.823006285648999,0.810404729204816 +11-22-2005,0.946801128656844,1.03719779103217 +11-23-2005,0.950000685512688,0.839414368684769 +11-24-2005,0.708896050828408,0.386788840307697 +11-25-2005,0.910405722585717,0.84678596876032 +11-26-2005,0.601128667833465,0.601326530410667 +11-27-2005,0.821606687503034,0.741364361300872 +11-28-2005,0.838647956124924,0.813944555940837 +11-29-2005,0.480875866896873,0.929222453288742 +11-30-2005,1.42871685097764,1.38012681540757 +12-01-2005,0.803814226323773,0.675974578442727 +12-02-2005,0.78544343669266,0.71080261041124 +12-03-2005,0.662471558497045,0.575549366584439 +12-04-2005,0.655060517271215,0.595204127559677 +12-05-2005,1.08016160569769,1.02757678381309 +12-06-2005,1.10151387953176,0.892903950000446 +12-07-2005,0.715878500982699,0.637914149401568 +12-08-2005,0.625395782869615,0.575351761349188 +12-09-2005,0.66877426158913,0.62220196412754 +12-10-2005,0.670581490710009,0.598108827979981 +12-11-2005,0.620310965872175,0.582631248355738 +12-12-2005,0.70087132483706,0.644414546898819 +12-13-2005,0.665443744707475,0.623629117841203 +12-14-2005,0.613216654028181,0.569378543752946 +12-15-2005,0.519199881073204,0.504638288954451 +12-16-2005,0.108758020650049,0.2213882668938 +12-17-2005,0.673464197024015,0.621453661601903 +12-18-2005,0.664711607917127,0.593427061871402 +12-19-2005,0.629745961436313,0.604002129795802 +12-20-2005,0.643377047516078,0.553041640826579 +12-21-2005,0.540728127064594,0.512811180155424 +12-22-2005,0.507635414572745,0.466002420622923 +12-23-2005,0.49457480014082,0.454445782455223 +12-24-2005,0.49670524479248,0.450850217802322 +12-25-2005,0.574542333984126,0.475014120873098 +12-26-2005,0.915583571612686,0.698478650354492 +12-27-2005,0.751096647300442,0.663057552946368 +12-28-2005,0.616731530993085,0.583141583044796 +12-29-2005,0.894527154321445,0.814384029678017 +12-30-2005,0.906802087399412,0.792158879067788 +12-31-2005,0.77673230781713,0.685430651930454 +01-01-2006,0.864293980616144,0.715350163249073 +01-02-2006,0.659046010418108,0.565062466957771 +01-03-2006,0.964239114118065,0.939007364538838 +01-04-2006,0.985405525199526,0.778937792275375 +01-05-2006,0.86892502204039,0.812449347689183 +01-06-2006,0.932415307871075,0.827784200401013 +01-07-2006,0.702344256858888,0.626073176327147 +01-08-2006,0.634991113417171,0.588470866656128 +01-09-2006,0.687215277079486,0.621733484145099 +01-10-2006,1.01798595303972,0.957354158075427 +01-11-2006,1.19806917856908,1.04350925130577 +01-12-2006,1.25057589944972,1.15768454100862 +01-13-2006,1.17576304844691,0.832417143815529 +01-14-2006,1.25869611026553,1.08877917656643 +01-15-2006,0.776559527109185,0.721525055192155 +01-16-2006,0.687284091868761,0.637375221801194 +01-17-2006,0.800436969867477,0.753642747849476 +01-18-2006,1.23851002830986,0.996291423123065 +01-19-2006,0.975328653748229,0.926041892942548 +01-20-2006,0.841115666204837,0.78483087486804 +01-21-2006,0.986755383813749,0.959575337552976 +01-22-2006,1.34440987203522,1.37504974850502 +01-23-2006,1.23965060344084,1.00219496604039 +01-24-2006,1.04758113884794,1.13318427334356 +01-25-2006,1.35684669044833,1.2072936177013 +01-26-2006,0.884570604952497,0.843016176859967 +01-27-2006,0.923336549255476,0.816793697702741 +01-28-2006,0.940074627692796,0.903185636757778 +01-29-2006,1.02260458186611,0.94471661342782 +01-30-2006,1.63724303639756,1.33290172182233 +01-31-2006,1.628822075898,1.29237736161313 +02-01-2006,1.26961092304998,1.15376637055574 +02-02-2006,1.14357783336567,1.07085510345151 +02-03-2006,1.06615494872248,1.17624027993563 +02-04-2006,1.63963746210774,1.62342351374642 +02-05-2006,1.63848701648287,1.48917784856142 +02-06-2006,1.06838717478724,0.66266673009723 +02-07-2006,0.86604694294507,0.837658950525329 +02-08-2006,1.23469676822115,0.90999356199272 +02-09-2006,1.10835323782862,0.904049400832157 +02-10-2006,1.29491908820334,1.01031645353884 +02-11-2006,1.2320768444412,1.15772816599225 +02-12-2006,1.51746968347854,1.41561581683396 +02-13-2006,1.11273082056072,0.916646445759458 +02-14-2006,1.01595714377122,0.799686559109972 +02-15-2006,1.34381555188387,1.31619625941111 +02-16-2006,1.55680719506681,1.58962004582333 +02-17-2006,1.83862410543437,1.7625194279248 +02-18-2006,2.27700059112639,1.73766455334787 +02-19-2006,1.84815679804596,1.55575232729669 +02-20-2006,0.831098850587024,0.458870230743952 +02-21-2006,1.07890326053681,1.16805022381488 +02-22-2006,1.71485731776479,1.41599491882678 +02-23-2006,1.83215027799131,1.69247088751493 +02-24-2006,2.16286417716336,1.86852070036536 +02-25-2006,1.85755116178528,1.5997439442222 +02-26-2006,1.99055741827312,1.82290496478298 +02-27-2006,1.71705129129834,1.68298816824102 +02-28-2006,1.44175739871688,1.5314218945333 +03-01-2006,2.00110304975942,2.10901261995584 +03-02-2006,2.45779341880786,2.4911200324348 +03-03-2006,2.91522243755547,2.86678528160103 +03-04-2006,2.31660048284729,2.08794186917261 +03-05-2006,2.00869396781902,1.75988490871347 +03-06-2006,1.96983102960769,1.9825952481648 +03-07-2006,2.45760810933573,2.49038460066481 +03-08-2006,2.20827863848893,2.01931571073385 +03-09-2006,2.4232512409526,2.08743798448186 +03-10-2006,2.08596116154547,1.82756551167656 +03-11-2006,2.56213518932947,3.07271282638078 +03-12-2006,2.93750909353016,2.92816665311858 +03-13-2006,3.47761572367826,3.47644707414795 +03-14-2006,3.62071195419208,3.60049613590065 +03-15-2006,3.019598744551,2.74245194870557 +03-16-2006,2.56636906720256,2.35161851115499 +03-17-2006,2.79351323224416,2.48197237647539 +03-18-2006,3.19406810225728,2.76736823039823 +03-19-2006,2.53979883052753,2.07416153672606 +03-20-2006,2.46271825532465,2.09032136066519 +03-21-2006,1.86405690234812,2.05504622748138 +03-22-2006,1.42550199688863,1.7516037319338 +03-23-2006,2.45097856082271,2.04113804382603 +03-24-2006,2.26092225931028,2.47238305848051 +03-25-2006,2.22363812565949,2.50450438764423 +03-26-2006,2.50173692453205,0.830624224823451 +03-27-2006,2.67878191932034,2.01469221371082 +03-28-2006,2.94636406754957,2.55708659962543 +03-29-2006,3.06340610600857,3.00359867695138 +03-30-2006,3.652825619885,3.47210333615641 +03-31-2006,3.58559690650335,3.42886617404827 +04-01-2006,3.03163527487633,3.26678881547541 +04-02-2006,4.42781883014867,4.29420931079856 +04-03-2006,4.32624340699963,4.08578556523417 +04-04-2006,4.88958565804447,4.48840622939781 +04-05-2006,3.67098326911688,2.72344909099063 +04-06-2006,3.59025312691812,3.21425005253521 +04-07-2006,3.42684479446886,3.01716691557337 +04-08-2006,3.98778654087516,3.79366533348294 +04-09-2006,4.8023461111816,4.52648216043738 +04-10-2006,3.76017579220346,3.44487190104957 +04-11-2006,3.85505249391358,3.77147910162973 +04-12-2006,4.22138641078932,4.10976166281485 +04-13-2006,4.43637944677183,4.20866411672252 +04-14-2006,4.86269491259673,4.63037951769024 +04-15-2006,5.07339670272602,4.85838379524327 +04-16-2006,5.29409595977328,5.13826853531122 +04-17-2006,5.0082613944866,5.12165985176065 +04-18-2006,5.57218552897012,5.22804790278101 +04-19-2006,4.83709927999318,4.74259906113658 +04-20-2006,3.52535845583578,4.22318979074565 +04-21-2006,4.92265189551264,4.39810997898495 +04-22-2006,4.76019664675668,4.266416710968 +04-23-2006,4.37217413819264,4.05236452611056 +04-24-2006,5.21224644844037,4.82557261785346 +04-25-2006,5.3707272765471,5.25760762757575 +04-26-2006,5.45654049663042,5.28687786781065 +04-27-2006,5.39670230490869,4.90030639725586 +04-28-2006,3.99801582695929,3.64497298605742 +04-29-2006,4.76628534865048,4.58520528338148 +04-30-2006,4.45427806106975,4.51426534023997 +05-01-2006,2.1245068530157,1.88801415884726 +05-02-2006,4.41529568035948,4.51186138436209 +05-03-2006,5.0745049978086,5.01100065877595 +05-04-2006,5.9868364000736,5.60299893269845 +05-05-2006,5.63731243567831,5.39262196076761 +05-06-2006,6.02137699148272,5.6705446904836 +05-07-2006,5.50294608544152,4.44651981369663 +05-08-2006,4.67754598909079,4.53863288109252 +05-09-2006,3.16630708972212,2.42873724873857 +05-10-2006,1.76097206742781,2.6220331012448 +05-11-2006,1.07117722721391,1.68868142241458 +05-12-2006,5.39448391077514,5.24787968507632 +05-13-2006,5.08716775717066,4.89134355436238 +05-14-2006,5.12264037110994,4.93390095282378 +05-15-2006,5.69402356424285,5.45179196939357 +05-16-2006,5.29715229476273,4.82184565633065 +05-17-2006,5.16698777548471,4.52733927580043 +05-18-2006,5.51831663328797,4.76265531622935 +05-19-2006,5.75591852830636,5.14665092179763 +05-20-2006,5.26788586764694,4.91034525571555 +05-21-2006,5.61062710577344,5.20635549483019 +05-22-2006,5.54072161517498,5.34165620036052 +05-23-2006,4.64758353233589,4.13345512974658 +05-24-2006,5.43161691092675,5.63105107816279 +05-25-2006,5.83641078666379,5.74482813188935 +05-26-2006,6.46852735851657,6.10529972230468 +05-27-2006,6.69106620767377,6.58742396337062 +05-28-2006,6.80582048343145,6.2217858165853 +05-29-2006,6.61824417960984,6.40947673473748 +05-30-2006,6.70229118740436,6.71509242324503 +05-31-2006,6.96017832937213,6.7637958823505 +06-01-2006,6.5284111763526,6.43365011176811 +06-02-2006,6.68513307328599,5.61215175734262 +06-03-2006,6.64365027900814,6.19358521886859 +06-04-2006,5.4709355753604,6.13418671703628 +06-05-2006,6.14391056335473,5.74597761677682 +06-06-2006,6.00835614277466,5.66126726679112 +06-07-2006,6.08429725053995,5.79067133928014 +06-08-2006,6.42170609873296,6.09719263014079 +06-09-2006,6.73283101170176,6.47024144467289 +06-10-2006,6.63048569083822,6.19548362566135 +06-11-2006,7.04585100969804,6.71980541933677 +06-12-2006,7.42907806478407,6.92446904646289 +06-13-2006,7.25569368641119,6.56259226884615 +06-14-2006,6.60129206675223,3.98321090261493 +06-15-2006,6.32193554674898,5.61307840382502 +06-16-2006,6.24242103448348,6.26693332106191 +06-17-2006,6.02079661466464,6.41265472940166 +06-18-2006,6.226396555275,6.64075032744007 +06-19-2006,6.10833699632604,6.41744290174534 +06-20-2006,6.44945938437837,6.36245160284024 +06-21-2006,7.13566611365597,6.93508575773223 +06-22-2006,7.12423975596335,6.82941147837177 +06-23-2006,7.39000761063816,6.93933938198353 +06-24-2006,7.43866686294112,6.90220819036994 +06-25-2006,5.32820649107788,5.6478012481791 +06-26-2006,6.22169942997372,5.41565904039804 +06-27-2006,5.75718520086641,3.92697953220143 +06-28-2006,6.2339500140969,5.7549523337725 +06-29-2006,6.48894474930949,6.46887378933019 +06-30-2006,6.64624748697096,6.41573780647979 +07-01-2006,6.50831269518422,6.44035964844764 +07-02-2006,6.64339954943758,6.67956828965317 +07-03-2006,7.42465374739056,7.06541664029499 +07-04-2006,7.53697246163691,7.01870924053441 +07-05-2006,7.09995882100539,6.98277642440281 +07-06-2006,6.83978802481354,6.56144810709543 +07-07-2006,6.53252076567109,5.31656473373506 +07-08-2006,5.20144642802045,5.7563190530742 +07-09-2006,5.34203636887756,5.70070430686699 +07-10-2006,5.91560010177954,5.79060004370863 +07-11-2006,6.83858100723519,6.72530350888512 +07-12-2006,6.50396604701989,6.35787359950073 +07-13-2006,6.6788538870608,6.3723862789712 +07-14-2006,6.83137067541243,6.54967250826481 +07-15-2006,6.83097485642565,6.43392846760333 +07-16-2006,7.16879681245442,5.37881059679558 +07-17-2006,7.10059608236511,6.88410105276541 +07-18-2006,6.75929113264498,6.73042487245587 +07-19-2006,7.0780643747803,6.97880249129441 +07-20-2006,7.22644921296169,6.71369208078005 +07-21-2006,7.09673743992925,6.17833214335331 +07-22-2006,6.9332911827832,6.09073927544096 +07-23-2006,7.05117796677574,6.54823535398691 +07-24-2006,4.81840275966992,6.18436030948155 +07-25-2006,4.01878292038246,5.70355956114069 +07-26-2006,5.20823843914442,1.31108204252122 +07-27-2006,6.51479275221998,6.12893640234574 +07-28-2006,6.49490421503728,6.10939288554058 +07-29-2006,6.71025963652554,6.08931440804248 +07-30-2006,6.63324382838443,5.17115340108245 +07-31-2006,6.54789681854454,5.58926622424294 +08-01-2006,6.67421136019435,4.60755398554625 +08-02-2006,6.85441508564552,6.2421032225827 +08-03-2006,6.92217918091798,6.04949964604648 +08-04-2006,6.90258721849897,5.66115269195132 +08-05-2006,7.00870636189147,6.6647539663875 +08-06-2006,6.89856511741491,6.479164849461 +08-07-2006,5.23570391374541,5.75409801983239 +08-08-2006,6.78707355013178,6.36091695335703 +08-09-2006,6.76434212015667,6.55861487442203 +08-10-2006,6.6337951118308,6.4586739527537 +08-11-2006,6.53675324166769,6.57437254618122 +08-12-2006,4.7878320621266,6.213620561212 +08-13-2006,5.4797579341296,5.54834869322178 +08-14-2006,4.50430702984684,4.75228784014702 +08-15-2006,5.26880160894667,5.75218206786469 +08-16-2006,5.70152909376203,5.56333426086241 +08-17-2006,5.03082544733117,4.94180369636877 +08-18-2006,4.92047364481975,5.29530582390748 +08-19-2006,5.01548598042843,5.5804016682453 +08-20-2006,5.72903420990003,5.94799134820764 +08-21-2006,6.30521446592536,5.65435859763098 +08-22-2006,6.07197311273998,4.61050475471564 +08-23-2006,5.61174208866015,5.09362882399818 +08-24-2006,3.68775610844927,4.78943178635109 +08-25-2006,4.86338324424378,4.26823262290408 +08-26-2006,5.27897682922158,5.10789101139764 +08-27-2006,5.50648912683231,5.34736592896699 +08-28-2006,5.51051543647046,5.41768868107065 +08-29-2006,4.92958472058874,5.57544355370088 +08-30-2006,5.49869013831498,5.8998007346872 +08-31-2006,4.46970532635684,5.31439507058803 +09-01-2006,4.63059611324943,4.36689477802526 +09-02-2006,3.34282327928944,2.82232886522139 +09-03-2006,3.30254830283163,2.847939068607 +09-04-2006,4.06646612817263,3.85550970030348 +09-05-2006,3.94207672758971,3.87192234237916 +09-06-2006,3.85653853317828,1.80916982142593 +09-07-2006,4.08001973570395,3.69964914040414 +09-08-2006,4.16873633166682,3.56585326255547 +09-09-2006,4.28291128997745,3.88701978886195 +09-10-2006,4.28790098491022,4.50740289455224 +09-11-2006,4.6260761154515,4.51333126498621 +09-12-2006,4.50892060891665,3.32626830251667 +09-13-2006,3.63250555134272,2.90191211594144 +09-14-2006,2.97630096456816,1.02741403704377 +09-15-2006,4.18246656469058,3.431017479801 +09-16-2006,4.0141538178565,3.96927462390064 +09-17-2006,4.4031713443828,4.13766370481923 +09-18-2006,4.35776635256781,4.10543491781263 +09-19-2006,4.29686412757453,4.32175492524294 +09-20-2006,4.93019112019617,4.54043730606411 +09-21-2006,3.94021522967685,3.58351210921838 +09-22-2006,3.54014268435077,3.30152508774516 +09-23-2006,4.01887544180423,2.214294240666 +09-24-2006,4.26308899372886,3.45144631226432 +09-25-2006,4.32577538563624,3.96414831111646 +09-26-2006,3.85336836548413,2.79415725339764 +09-27-2006,3.38861074147819,2.3264023607725 +09-28-2006,3.30717172160329,3.38168185940539 +09-29-2006,3.75091823281278,3.41614716678801 +09-30-2006,3.15188319936049,2.50139285006387 +10-01-2006,3.15247390606858,2.98504805197074 +10-02-2006,3.65282726231377,3.46742495727078 +10-03-2006,3.37733524091808,3.2546057274498 +10-04-2006,3.44328544313564,3.36408961854526 +10-05-2006,3.48277746510838,3.34183186921383 +10-06-2006,3.52802749116507,3.43328911475329 +10-07-2006,3.56485094758714,3.34801995930747 +10-08-2006,2.8165783728885,2.25974707143098 +10-09-2006,2.11539894393262,1.8087738824724 +10-10-2006,2.77702039621173,2.9878911405532 +10-11-2006,3.0098187663296,2.89250310132133 +10-12-2006,3.12800169314345,2.95234030296463 +10-13-2006,2.81001352872837,2.6372804599303 +10-14-2006,2.30736037867689,1.80763800835918 +10-15-2006,2.05759704470308,1.89277234144385 +10-16-2006,2.07741311118618,1.95951376274341 +10-17-2006,2.24758054856565,2.16447498793203 +10-18-2006,1.3886571305574,0.597373191880565 +10-19-2006,2.828107543804,2.31525254100346 +10-20-2006,2.68444010050602,1.98312235766439 +10-21-2006,2.56276809457944,2.40023986402127 +10-22-2006,2.03990425511656,1.88972148516983 +10-23-2006,2.29463727720454,2.12249123412457 +10-24-2006,1.78815836562712,1.51962002066597 +10-25-2006,1.45655334987168,1.1056090747385 +10-26-2006,1.49062819009013,1.27891187048642 +10-27-2006,1.81394245147965,1.44786891663364 +10-28-2006,1.52067916216105,1.26828421004668 +10-29-2006,1.994330612098,1.39644187283161 +10-30-2006,1.71229289526914,1.56783937669474 +10-31-2006,1.92120276559952,1.66035111190435 +11-01-2006,1.85944774010149,1.78633105997401 +11-02-2006,1.95621732102305,1.82465073731392 +11-03-2006,1.74303770687525,1.588799061335 +11-04-2006,1.12535851532711,1.03048362343877 +11-05-2006,1.08333832922226,1.06436046261992 +11-06-2006,1.08477083215059,1.10645814095967 +11-07-2006,1.1287297680794,1.03765715112495 +11-08-2006,1.17747248520148,0.183417366320741 +11-09-2006,1.57133449999487,1.15587725472161 +11-10-2006,1.56287069912206,1.51872978820209 +11-11-2006,1.5992379834231,1.42397690268089 +11-12-2006,1.85184854561718,1.59944547293351 +11-13-2006,1.2270519113823,0.912014122074521 +11-14-2006,1.13278193265872,1.07578491247998 +11-15-2006,1.26793926529186,1.13550548727824 +11-16-2006,1.40443094315918,1.19815814790231 +11-17-2006,1.33204153865588,1.08704886061139 +11-18-2006,1.08522905795213,0.932308918425811 +11-19-2006,0.996265084250042,0.954713732893089 +11-20-2006,0.9986961889829,0.927959456923682 +11-21-2006,0.906186149759872,0.774921271440926 +11-22-2006,0.796481017893926,0.43892626672212 +11-23-2006,1.16243135805818,0.812953564336049 +11-24-2006,1.12829506699188,0.857727142405667 +11-25-2006,0.98863533100195,0.877073842384744 +11-26-2006,0.867474416795942,0.818317348623154 +11-27-2006,0.855177451801493,0.819308264720184 +11-28-2006,0.903607550175548,0.805607724570455 +11-29-2006,1.02253936330725,1.01665061774477 +11-30-2006,1.21399124986652,0.94825953169623 +12-01-2006,1.40140690332837,0.896770194655249 +12-02-2006,1.51470739852577,1.38640134293156 +12-03-2006,0.604321025369013,0.645709232446427 +12-04-2006,0.725052287770076,0.73019848244744 +12-05-2006,0.643207984818355,0.534640410301942 +12-06-2006,0.551483912078866,0.520171591739485 +12-07-2006,0.615466407592938,0.58489102662101 +12-08-2006,0.687075877409326,0.63911416396745 +12-09-2006,0.478300686879411,0.362581650234425 +12-10-2006,0.523118558464107,0.42949217177156 +12-11-2006,0.500865303254027,0.457327992465631 +12-12-2006,0.416792880720495,0.523165749185499 +12-13-2006,0.531947162247794,0.520724311020934 +12-14-2006,0.762852564701457,0.824320195480711 +12-15-2006,0.935293143605553,0.689373670365323 +12-16-2006,0.977899009512095,0.714545773806919 +12-17-2006,0.777178692339985,0.662533129119045 +12-18-2006,0.80555210965646,0.647670013380911 +12-19-2006,0.879609542739652,0.691041201869773 +12-20-2006,0.873459441916109,0.772137755865278 +12-21-2006,0.600045782644874,0.735059980975449 +12-22-2006,0.198245733347818,0.72230943777348 +12-23-2006,0.898397706323516,0.834301059092689 +12-24-2006,1.29112470607249,0.90442811185101 +12-25-2006,0.762908872368425,0.692694380724528 +12-26-2006,0.692566320050192,0.756578028037653 +12-27-2006,0.775225626154601,0.745367215912966 +12-28-2006,0.65310082635749,0.612649664179108 +12-29-2006,0.675031495968594,0.599509445748625 +12-30-2006,0.779767597713841,0.602522771336755 +12-31-2006,0.958383602635068,0.768973993744418 +01-01-2007,0.698979580738651,0.346846222930648 +01-02-2007,1.22236186811068,1.11678252309692 +01-03-2007,0.672075194212199,0.582286621525703 +01-04-2007,0.776555895187931,0.701524997083958 +01-05-2007,0.969607757843132,0.991144254993003 +01-06-2007,1.33106488388442,0.988719336848241 +01-07-2007,1.20833551993994,1.10730119477906 +01-08-2007,1.11445231187069,0.955690522560587 +01-09-2007,0.980108780361632,0.909520552738423 +01-10-2007,0.597721161113708,0.612353064120722 +01-11-2007,0.607997228133272,0.608648909540946 +01-12-2007,0.62237669148828,0.593694075390566 +01-13-2007,0.886378258763532,0.801831319601448 +01-14-2007,1.26416067878809,1.17876662545402 +01-15-2007,1.33226073243367,1.0724907543351 +01-16-2007,1.53788475520421,1.26129239188266 +01-17-2007,1.39750413574019,1.05944971420041 +01-18-2007,0.526067607406162,0.592362513961281 +01-19-2007,0.453038355473086,0.511316857357501 +01-20-2007,0.972220269075769,0.804196460657584 +01-21-2007,0.734888755928707,0.685911812431397 +01-22-2007,0.837798586829006,0.696662638218317 +01-23-2007,0.800053076569893,0.783787296238303 +01-24-2007,0.907309547826261,0.698681968367208 +01-25-2007,0.943458463026054,0.781895603708971 +01-26-2007,0.987176591113366,0.835419666201237 +01-27-2007,0.855604094803352,0.821226380716311 +01-28-2007,1.01277480400244,0.916985802536083 +01-29-2007,1.17983160268969,1.02911749621026 +01-30-2007,0.772693195409684,0.708791540319977 +01-31-2007,0.97702786311332,0.914539231693688 +02-01-2007,0.867545691847336,0.808373325628025 +02-02-2007,0.613463132772096,0.768210880587411 +02-03-2007,1.08226683995982,1.0368706041766 +02-04-2007,0.900825784412874,0.894340801468178 +02-05-2007,1.04031114168197,0.887176558591317 +02-06-2007,0.982961974376771,0.803524384273784 +02-07-2007,0.800762185264468,0.732424641079185 +02-08-2007,1.35691254485541,1.2378848645464 +02-09-2007,1.22736208697176,1.05149457667051 +02-10-2007,1.17087938759724,0.938202511227656 +02-11-2007,1.1044179625311,0.908645398328964 +02-12-2007,1.15978158351689,1.11870229227195 +02-13-2007,1.48634395818477,1.38716657728946 +02-14-2007,1.80815095982303,1.74358656606553 +02-15-2007,1.57882865337154,1.49833352796594 +02-16-2007,1.13911716449935,0.999746238882845 +02-17-2007,1.07042634862711,0.929752238914888 +02-18-2007,1.06526027866135,1.17584065914799 +02-19-2007,1.48036631278972,1.28230038658101 +02-20-2007,1.50704556358375,1.41466872925648 +02-21-2007,1.51691387573713,1.66211939441333 +02-22-2007,1.7186185223612,1.95212381701515 +02-23-2007,2.25604366396045,2.02085349987932 +02-24-2007,1.54065240456093,1.57429819352609 +02-25-2007,1.72917728816113,1.58419282415682 +02-26-2007,2.09477058252186,1.39079455234285 +02-27-2007,2.089347867769,1.98610567065322 +02-28-2007,2.08762417114754,1.94119545494904 +03-01-2007,2.19244400563358,2.06869946031628 +03-02-2007,2.23090600697119,2.24780477218849 +03-03-2007,2.40713018784295,2.07236890149558 +03-04-2007,2.14971602051246,2.04041772219695 +03-05-2007,2.04162457004668,1.61698256470469 +03-06-2007,2.01950372669742,1.69699633660033 +03-07-2007,2.23224587441513,1.97307487090704 +03-08-2007,2.39889561004076,2.34605330569628 +03-09-2007,2.57368103334595,2.51550749371487 +03-10-2007,2.46804444529775,2.48144586446243 +03-11-2007,2.74497257053856,2.56504146300809 +03-12-2007,3.16606109933776,3.00970470959271 +03-13-2007,2.34704211115563,2.62363778554036 +03-14-2007,3.02108364771085,2.87166572229493 +03-15-2007,2.99268922285725,3.2454078963628 +03-16-2007,3.50194549401911,3.4397014504999 +03-17-2007,3.51428836507968,3.34776006657732 +03-18-2007,2.04307592285385,1.21446886900399 +03-19-2007,2.0866127435198,1.88650225221369 +03-20-2007,2.77597608260271,2.59488613726876 +03-21-2007,3.62396389315875,3.35736485156439 +03-22-2007,3.81447424895744,3.31871041363862 +03-23-2007,3.36622714704698,3.41940080404244 +03-24-2007,3.94537493812829,3.75934268975169 +03-25-2007,3.96865944773544,3.90196327301163 +03-26-2007,4.29741484687879,4.11728646483527 +03-27-2007,4.06679373071954,4.17830939381017 +03-28-2007,4.03403514190184,4.11744281503711 +03-29-2007,4.48305022644994,4.27646604547028 +03-30-2007,4.09170340985745,2.9078236241409 +03-31-2007,2.4133376191289,2.65558882377332 +04-01-2007,3.30221217110674,3.78755186637643 +04-02-2007,3.13318530395108,3.93427429037729 +04-03-2007,4.16457374374079,4.24294937944538 +04-04-2007,4.41377771166836,4.21621140434478 +04-05-2007,4.66300088584384,4.39463623231157 +04-06-2007,3.40334666749222,2.56009425123844 +04-07-2007,3.2036016310838,2.61405415885244 +04-08-2007,2.86795828180944,2.48227558381627 +04-09-2007,2.86588422692828,2.53621719040673 +04-10-2007,3.26567938456395,2.94453511811727 +04-11-2007,3.10502338923951,2.67623759471408 +04-12-2007,1.16585294284325,1.24050222889598 +04-13-2007,4.07219130662768,3.88675322110188 +04-14-2007,4.04502247970087,3.60623342597588 +04-15-2007,4.29732068275352,4.00555147542155 +04-16-2007,3.95578201152232,3.39460730662385 +04-17-2007,3.50905249519746,2.64973744145406 +04-18-2007,4.09036338691367,3.40071842071528 +04-19-2007,4.14938549729339,3.64235746750123 +04-20-2007,4.3796291388867,3.91316379669049 +04-21-2007,4.25349206860434,3.88441365269429 +04-22-2007,4.53147907018206,4.50410233464202 +04-23-2007,4.83803296764949,4.68019130597105 +04-24-2007,4.8088711821646,4.81350482072209 +04-25-2007,4.30433647428908,5.18442621628989 +04-26-2007,5.06144844115863,5.24198071209962 +04-27-2007,5.15280602736554,5.2164075381651 +04-28-2007,4.66595201702939,4.29342794586339 +04-29-2007,4.59049913149608,4.37549066030575 +04-30-2007,5.10932476481479,4.83633798830333 +05-01-2007,5.32053131548608,5.1959741958679 +05-02-2007,5.58705972796425,5.49268524379982 +05-03-2007,5.75786989966123,5.54954229072103 +05-04-2007,6.17670179735887,5.92541083760157 +05-05-2007,1.51056393555774,0.96926038669855 +05-06-2007,0.85108585101113,1.64893524601542 +05-07-2007,5.28956383612673,5.43453597265725 +05-08-2007,4.702008459324,4.77874007499605 +05-09-2007,5.13709589592646,5.18755665529269 +05-10-2007,5.14578823742255,5.51271692721817 +05-11-2007,5.39865154491566,5.74083985718416 +05-12-2007,5.8186936959692,5.81587964178927 +05-13-2007,5.90814291429283,5.59189272436078 +05-14-2007,5.48249007016181,5.59541769669056 +05-15-2007,5.43442247493997,5.5536564093732 +05-16-2007,5.71769305616488,5.64313921509241 +05-17-2007,6.1044738052417,5.96175915219336 +05-18-2007,4.72355456508077,4.37245697428855 +05-19-2007,5.27213062472261,4.50142004109298 +05-20-2007,5.13808447125476,4.75622430628665 +05-21-2007,5.67810577663193,5.33822704440088 +05-22-2007,5.8973070125918,5.46754264174281 +05-23-2007,6.16474012025115,5.92822549330966 +05-24-2007,6.36549767126165,6.14030145105652 +05-25-2007,5.71116090566971,5.97277465050439 +05-26-2007,6.03102181383208,5.82497606427266 +05-27-2007,6.35192884681205,6.12961678507713 +05-28-2007,6.39427314961004,6.15583772903944 +05-29-2007,6.21288837268189,6.36818230357153 +05-30-2007,6.38377396163412,6.31742439101091 +05-31-2007,6.40611872562944,6.2489020281649 +06-01-2007,6.66348725767965,6.29203214968935 +06-02-2007,6.65891433264252,6.28878279544068 +06-03-2007,6.05176666916036,6.09052584097024 +06-04-2007,5.02052074728463,4.60562393906175 +06-05-2007,6.55451876419021,6.22085801376542 +06-06-2007,6.53140777837537,6.30872098813211 +06-07-2007,6.63016276061163,6.30299829502706 +06-08-2007,6.91926280011524,6.54185261888655 +06-09-2007,7.25850858349885,6.88046852717517 +06-10-2007,6.88667863160471,6.6790802067433 +06-11-2007,6.37210273620097,6.35353125253367 +06-12-2007,6.34133514280501,6.52982106417057 +06-13-2007,5.7992740355899,5.53691574087165 +06-14-2007,6.03358184107924,5.50854484036701 +06-15-2007,6.11776364672112,4.89251273530946 +06-16-2007,5.73613171236924,5.20171170016867 +06-17-2007,5.38881710250972,5.9285889934508 +06-18-2007,6.80510684464373,6.64105360553138 +06-19-2007,7.07453193537899,6.79764370928832 +06-20-2007,7.2168103496576,6.93647431165606 +06-21-2007,6.87869609593901,6.68810761914782 +06-22-2007,6.53112537456408,6.34366900678929 +06-23-2007,6.73976710030605,6.3337127993674 +06-24-2007,6.87812632133286,6.71029399555176 +06-25-2007,6.72299444629673,6.7142109189919 +06-26-2007,6.75340531927634,5.75989709872067 +06-27-2007,6.58509202297079,6.01905179671622 +06-28-2007,6.70514072513637,6.53716246312365 +06-29-2007,6.77197171201154,6.44915663223346 +06-30-2007,6.87525002782606,6.30962366983398 +07-01-2007,6.89461032255629,5.72143096258841 +07-02-2007,7.14894623248305,5.40260408274802 +07-03-2007,6.09937455386638,5.7966085157262 +07-04-2007,4.68365140980204,5.34216880922414 +07-05-2007,5.84570794221491,6.53851825993902 +07-06-2007,6.67606708516192,6.80906342026037 +07-07-2007,6.96127429252201,6.86379550097261 +07-08-2007,6.75690339580002,6.46938712323863 +07-09-2007,5.38317346359702,6.75157523704765 +07-10-2007,6.4226526013333,6.84039909025768 +07-11-2007,6.99885760408414,6.84339503105642 +07-12-2007,6.98338209549549,5.21708677943616 +07-13-2007,6.67141759115744,6.08828022815122 +07-14-2007,6.36366030354453,6.04703008961146 +07-15-2007,5.50533282791399,6.02905267621314 +07-16-2007,5.43996240548344,6.04715580976898 +07-17-2007,6.71496915194896,6.61760209446896 +07-18-2007,6.84232226458806,6.54268212388183 +07-19-2007,6.29440478673631,6.18391401816861 +07-20-2007,7.01021573726594,6.47355223742263 +07-21-2007,7.01978439168286,6.86590712015274 +07-22-2007,5.93085268999461,5.96912554532692 +07-23-2007,5.16368284185557,6.00653106197463 +07-24-2007,5.82494882199681,5.6274104890388 +07-25-2007,6.26097291347181,5.30473566204443 +07-26-2007,6.40815713056863,5.48541920002967 +07-27-2007,6.48645928783176,5.67248390512754 +07-28-2007,6.74171013863419,5.55947450317433 +07-29-2007,6.43324238734944,4.94221269209394 +07-30-2007,2.97219376271069,2.80270072751806 +07-31-2007,5.56618750184014,3.80645489375185 +08-01-2007,5.89645881203302,5.60208976480464 +08-02-2007,6.06001249592178,6.04132770053811 +08-03-2007,6.57055545438546,6.04494299349698 +08-04-2007,6.45534112207571,6.05133960882879 +08-05-2007,6.74673054115814,6.50143337641023 +08-06-2007,6.86222235806574,6.36679984147034 +08-07-2007,6.71955071925669,6.44447361499592 +08-08-2007,6.83483203692188,6.48489602060148 +08-09-2007,7.04784677125166,6.74232332662131 +08-10-2007,7.04004396669859,6.70313860185174 +08-11-2007,6.97194614201786,6.75412073479216 +08-12-2007,6.76182854112012,6.40936379760068 +08-13-2007,5.67650111819304,6.33009987593181 +08-14-2007,6.50114188405788,6.35490483594247 +08-15-2007,6.24060075143919,6.18466189190562 +08-16-2007,6.29919051788165,5.99414881924544 +08-17-2007,6.60079762336754,6.44250611752931 +08-18-2007,6.59153258573667,6.37264397110985 +08-19-2007,6.25286783428259,6.091227356241 +08-20-2007,5.88047498953899,6.18245614232063 +08-21-2007,6.1072706717097,6.23473556575238 +08-22-2007,6.36762826482023,6.1475441354017 +08-23-2007,6.41278884358629,6.19399845274834 +08-24-2007,6.34023156117214,6.12016861803476 +08-25-2007,6.13847476492939,5.81346625888855 +08-26-2007,6.02323405470472,5.54402751599246 +08-27-2007,5.93782316330658,5.66318032758805 +08-28-2007,4.73900901715884,4.26521052170697 +08-29-2007,5.41692303812446,5.22954899327623 +08-30-2007,5.93615374272524,5.29579726049849 +08-31-2007,5.69988871314464,5.32571986319291 +09-01-2007,5.24597701247582,4.13194676855893 +09-02-2007,4.70309072856765,3.84298361445374 +09-03-2007,4.55671328656746,4.2378864789681 +09-04-2007,5.25428298735199,5.58286714852797 +09-05-2007,5.35570523692471,4.98353415836469 +09-06-2007,5.16512604545164,4.93477300744846 +09-07-2007,5.41852097074646,5.13792843574906 +09-08-2007,5.1894434331721,5.11062655234131 +09-09-2007,5.22556676870814,4.98058260133615 +09-10-2007,5.08375181399045,4.93838685213598 +09-11-2007,5.14025419249839,5.1687983963328 +09-12-2007,4.95171580750134,4.75911793620064 +09-13-2007,4.92252178353464,4.61951356241601 +09-14-2007,3.77420084072109,2.52012842318937 +09-15-2007,3.03300778874649,2.94906276582517 +09-16-2007,4.65046560479139,3.60042090256766 +09-17-2007,3.82303051195584,3.71283565440219 +09-18-2007,3.56277697145224,3.81747556836447 +09-19-2007,3.74310695384038,3.84792628589359 +09-20-2007,3.8566871299415,3.96534358355095 +09-21-2007,3.92207696177523,3.9985595741159 +09-22-2007,2.80444676079089,3.30158284830263 +09-23-2007,4.33029353813434,4.26711430388667 +09-24-2007,4.6073621980754,4.37295004462885 +09-25-2007,4.54079518230839,4.2474475805887 +09-26-2007,4.42529127988613,4.17678372030072 +09-27-2007,4.10707718337537,4.10809995850529 +09-28-2007,4.05847702884245,3.82752054171521 +09-29-2007,3.98375758140648,3.85423769433196 +09-30-2007,3.2112240707883,3.17365630173253 +10-01-2007,3.14256104860812,3.13682433236173 +10-02-2007,3.19258056000393,3.15312093698596 +10-03-2007,3.36224684517285,3.03008559809922 +10-04-2007,2.95761068052695,2.1755406443986 +10-05-2007,1.04149463385296,1.97454176540392 +10-06-2007,2.16246859352554,2.36473301570412 +10-07-2007,2.89046011114526,3.11589435607175 +10-08-2007,3.32316248476534,3.426779425106 +10-09-2007,3.56673256208959,3.34089450058461 +10-10-2007,3.50580082984019,3.4104215119446 +10-11-2007,3.31702067192769,3.1846231916146 +10-12-2007,2.42093995813435,2.01002381736881 +10-13-2007,2.3846480557518,2.17325980147449 +10-14-2007,2.47589784360855,2.38766203643249 +10-15-2007,2.66685919326448,2.53258449705186 +10-16-2007,2.73910909226501,2.68575814920062 +10-17-2007,1.8887835235439,2.68337152548145 +10-18-2007,2.32384886364125,2.50021397407257 +10-19-2007,2.22012250225615,2.10914514593148 +10-20-2007,2.78940381250984,2.72311871468591 +10-21-2007,2.47449259109145,2.25483059055566 +10-22-2007,2.28098361603553,2.11194900785861 +10-23-2007,2.43412793435741,2.16901687055206 +10-24-2007,2.6946074893365,1.94454520027019 +10-25-2007,2.60844250378364,2.16726894554805 +10-26-2007,2.15932000278816,0.776163387983689 +10-27-2007,2.03452563951218,1.67701234511704 +10-28-2007,1.98479207401622,1.67519855054541 +10-29-2007,1.90905207821126,1.76873501664708 +10-30-2007,1.63064941278661,1.6035131335898 +10-31-2007,1.57416114422091,1.49256324143116 +11-01-2007,1.74033261243186,1.52148463108031 +11-02-2007,2.11729806021018,1.75764617797845 +11-03-2007,1.51530681331648,1.71443797119255 +11-04-2007,1.51577507596863,1.40719414187501 +11-05-2007,1.41227888065981,1.33756271276285 +11-06-2007,1.41400918453142,1.34105742050736 +11-07-2007,1.49297633166258,1.41110945150223 +11-08-2007,1.09779951525184,0.992562835780856 +11-09-2007,1.13578911865246,1.02925875716618 +11-10-2007,1.25037465607415,1.212906769096 +11-11-2007,1.33161403175833,1.24233061971974 +11-12-2007,1.15104130665004,1.06697772556007 +11-13-2007,1.32761085920047,1.24680717763003 +11-14-2007,1.51763809329513,1.41785227656165 +11-15-2007,1.83919841752871,1.60263749992966 +11-16-2007,1.48075565016335,1.22837595612045 +11-17-2007,0.899133917984734,0.778629165015196 +11-18-2007,0.951921380565671,0.841167584362737 +11-19-2007,1.23113421797581,1.0429174373004 +11-20-2007,1.417608616676,1.31465183354103 +11-21-2007,1.35668745280016,1.28569634642993 +11-22-2007,1.35874343195859,1.22087969988371 +11-23-2007,1.66484254309026,1.4818035040288 +11-24-2007,0.838010408504755,0.693625845132125 +11-25-2007,0.717506167499884,0.468077392387063 +11-26-2007,0.735324287918693,-0.0538287309003914 +11-27-2007,0.417264164152555,0.916383420398538 +11-28-2007,1.08885958347879,0.956051628384344 +11-29-2007,0.783163139429335,0.757088133912171 +11-30-2007,0.818862648119465,0.795749616719364 +12-01-2007,0.779456850970787,0.790020906268951 +12-02-2007,0.652713345383053,0.665538363807247 +12-03-2007,0.759601541322111,0.846783181591425 +12-04-2007,0.920253967459368,0.943843151938999 +12-05-2007,0.535771673931459,0.497855549702378 +12-06-2007,0.592591446219987,0.578741838304485 +12-07-2007,0.590436568338905,0.537416892904939 +12-08-2007,0.650247332456545,0.636213052999884 +12-09-2007,0.97399455962479,0.956228197090433 +12-10-2007,1.44135968402056,1.14653733572196 +12-11-2007,1.32324584750933,1.23617043762182 +12-12-2007,1.24496638700373,1.06708457128751 +12-13-2007,1.23721212203863,1.13912175931771 +12-14-2007,1.27646796027173,1.12997301146957 +12-15-2007,0.975249137205486,0.866318519240676 +12-16-2007,0.791680541602748,0.737162980791327 +12-17-2007,0.695201777580056,0.678232778464155 +12-18-2007,0.521940230042855,0.490790249825396 +12-19-2007,0.529954147573689,0.523748534636977 +12-20-2007,0.727510719382235,0.693390023266473 +12-21-2007,0.752488862676115,0.644974637045129 +12-22-2007,0.647312307445426,0.431949705961341 +12-23-2007,0.379310264200194,0.289863931401765 +12-24-2007,0.936643031812551,0.920157176828514 +12-25-2007,0.538317781285407,0.426411130308325 +12-26-2007,0.606618114047651,0.605895788528896 +12-27-2007,0.737101020246689,0.706964959463271 +12-28-2007,0.846770371135556,0.862859804155181 +12-29-2007,0.780283740153628,0.872121678930337 +12-30-2007,1.00329396831439,0.918492233559996 +12-31-2007,0.854622413911824,0.762734454482942 +01-01-2008,0.847839156513909,0.769457501938206 +01-02-2008,0.606569680743116,0.57500381744863 +01-03-2008,0.454587448361866,0.437220040035206 +01-04-2008,0.492758584224569,0.454538905215584 +01-05-2008,0.536691882511888,0.501440889374472 +01-06-2008,0.607025160583244,0.642429550390085 +01-07-2008,0.849398233025718,0.921995282926241 +01-08-2008,1.12712109952842,0.948895489926114 +01-09-2008,1.2350876867952,0.877612002081748 +01-10-2008,1.38003519922287,1.11411839400231 +01-11-2008,0.932349554769926,0.761475999509854 +01-12-2008,1.13891514591652,1.18775586002128 +01-13-2008,0.876380896896198,0.847426054912138 +01-14-2008,0.916445987848182,0.810760434430805 +01-15-2008,0.826522746427071,0.734235299634725 +01-16-2008,0.694460262338719,0.63918982864007 +01-17-2008,0.694335452962683,0.655991992510001 +01-18-2008,0.734267709849931,0.732680182833995 +01-19-2008,0.939117917503531,0.93974784916773 +01-20-2008,0.887003719220632,0.755819083176521 +01-21-2008,0.697122627525199,0.599211978198357 +01-22-2008,0.646381353050601,0.52038220573221 +01-23-2008,0.737136730304547,0.77201537865192 +01-24-2008,0.888515264447913,1.08962396193924 +01-25-2008,1.10398300992979,0.902396145106598 +01-26-2008,0.719621302763878,0.6146003264466 +01-27-2008,0.958316941701137,0.772009095878862 +01-28-2008,1.07285041136353,0.929599569231748 +01-29-2008,1.04947204638125,0.989167518546468 +01-30-2008,1.1995640719663,1.2262820475707 +01-31-2008,1.2188479425806,1.05151523603544 +02-01-2008,0.897375840707879,0.885548930133638 +02-02-2008,1.1181121227131,1.19502508782755 +02-03-2008,1.24894926443367,1.16646558963921 +02-04-2008,1.35996124623751,1.30407642279024 +02-05-2008,1.52404435570343,1.58944526603282 +02-06-2008,1.89676598852539,1.95280901299217 +02-07-2008,2.3345387117201,2.14279991625788 +02-08-2008,1.60081720590676,1.39873274105176 +02-09-2008,1.44058853039696,1.3349474854593 +02-10-2008,1.48022929687211,1.37783943891326 +02-11-2008,1.4021543633642,1.3577748545468 +02-12-2008,1.30295730607708,1.19394810274815 +02-13-2008,1.522385920132,1.49887673886808 +02-14-2008,1.78458494011744,1.70321151470557 +02-15-2008,1.38224903890453,1.24876026680068 +02-16-2008,1.68325019926299,1.68458390673701 +02-17-2008,1.8466802888447,2.02513870334284 +02-18-2008,1.79719810479492,1.72340812097882 +02-19-2008,2.12254286578596,1.81380804270384 +02-20-2008,1.60993717893401,1.46683439987116 +02-21-2008,1.73328557009978,1.63981033555259 +02-22-2008,1.79405867302653,1.7143143561669 +02-23-2008,0.745965334430284,1.67536797003699 +02-24-2008,2.39947675378495,2.09505507288552 +02-25-2008,1.9719827726371,1.74459244939206 +02-26-2008,2.17318261704854,2.08606979812914 +02-27-2008,2.52278262737149,2.34578576274696 +02-28-2008,1.77113801594305,1.20290966830998 +02-29-2008,1.51919682142335,1.2038288061915 +03-01-2008,1.91732784271225,1.74556508248814 +03-02-2008,2.35373773402393,2.1947988934284 +03-03-2008,2.23108865781495,2.09138803885814 +03-04-2008,2.36107316221315,2.00084902524738 +03-05-2008,2.49033086845672,2.01728074168111 +03-06-2008,2.56087333726989,2.16938984024148 +03-07-2008,2.54923259236743,2.37710680362839 +03-08-2008,2.72976421728798,2.75366384071897 +03-09-2008,2.55516625562874,2.54426872332421 +03-10-2008,2.09590714189918,1.86229068154931 +03-11-2008,2.54306580066465,2.33241729054255 +03-12-2008,2.83050699641079,2.58619450957876 +03-13-2008,2.83012946075665,2.55831414160448 +03-14-2008,3.09730087297936,2.84005663184742 +03-15-2008,3.25247288378532,3.0783918150203 +03-16-2008,2.61700284442474,2.52557041122205 +03-17-2008,2.69909104996391,2.4554843117845 +03-18-2008,1.54790172726824,2.2737635789971 +03-19-2008,1.35591379417325,1.97962703840998 +03-20-2008,2.70970137829854,3.35211690037297 +03-21-2008,3.1500536128832,2.91765880683412 +03-22-2008,3.02640583925064,2.89472781620774 +03-23-2008,3.41141893463791,3.3431597764601 +03-24-2008,3.09457924143716,2.61601554009565 +03-25-2008,2.71601880663923,2.3909197760653 +03-26-2008,2.82335073265923,2.64523234421878 +03-27-2008,3.36735553152795,3.20329491011293 +03-28-2008,3.68875617704158,3.75813180454934 +03-29-2008,4.17157872481809,4.0732251360248 +03-30-2008,4.05931270990111,3.92356635555616 +03-31-2008,0.352207108930445,0.337690361034559 +04-01-2008,2.34624890526507,2.7314680802937 +04-02-2008,3.99252542053335,4.31401919932839 +04-03-2008,4.53235285014037,4.0671719460298 +04-04-2008,3.36132512901328,1.35369771385643 +04-05-2008,0.567143388006333,3.40700288924793 +04-06-2008,0.440771703958575,3.13277235949143 +04-07-2008,3.08428252313959,2.57572767109712 +04-08-2008,3.41915652903881,2.6063198156355 +04-09-2008,2.24997950214654,2.51635152580588 +04-10-2008,4.1149854651101,4.02037150145855 +04-11-2008,4.39971144371087,4.14538526256448 +04-12-2008,4.79856986869145,4.05106315369941 +04-13-2008,5.05256076084324,4.19691106203228 +04-14-2008,3.94657088806347,3.71774718161856 +04-15-2008,3.38848707696321,2.12149716913294 +04-16-2008,3.55757302331964,3.1544406348925 +04-17-2008,3.94608615149376,3.76868467704867 +04-18-2008,4.44223264270248,4.33321682407267 +04-19-2008,4.82718333099442,4.43936062600551 +04-20-2008,4.88400518788154,3.21972835435608 +04-21-2008,4.32865206989763,3.84321380008223 +04-22-2008,4.23178835669944,4.22006246408063 +04-23-2008,4.32577602239903,4.27351723331452 +04-24-2008,4.71006191479653,4.75756887100835 +04-25-2008,5.08685442971645,5.011039788519 +04-26-2008,5.26811629969856,5.12391608704016 +04-27-2008,5.27928237283691,4.68021782817616 +04-28-2008,5.05674192509387,4.48658320532719 +04-29-2008,4.18181457428519,4.16221527162316 +04-30-2008,4.40166567424106,3.24782477395961 +05-01-2008,4.26988046260652,4.30551687820346 +05-02-2008,5.14941246139846,4.84296117230318 +05-03-2008,5.67095678563883,4.15727533944547 +05-04-2008,5.31872399285315,4.664816630504 +05-05-2008,5.24053088971313,5.03325731390176 +05-06-2008,5.26284624498896,5.20870621583275 +05-07-2008,4.98056359192066,5.17372267803179 +05-08-2008,5.34875292490212,5.40950354106156 +05-09-2008,5.67745308112427,5.31451498612607 +05-10-2008,5.02203589000498,4.6433469890225 +05-11-2008,5.75374448037664,5.40428661438655 +05-12-2008,5.0472074248744,4.95554618551762 +05-13-2008,4.56519417488816,4.4813617023798 +05-14-2008,5.07735121869774,5.15595801723152 +05-15-2008,5.12032132638371,5.24729315782874 +05-16-2008,3.53669521126024,3.65530830307222 +05-17-2008,6.01264751320811,4.88415373941653 +05-18-2008,5.51183898377453,4.99109623469053 +05-19-2008,5.740899074946,5.26232559990537 +05-20-2008,5.77785416136607,5.03070360482228 +05-21-2008,6.49182813596848,5.80771083971606 +05-22-2008,5.77617794416436,5.62113647840228 +05-23-2008,5.59501781421138,5.47641377722479 +05-24-2008,5.58367594964113,6.05456748271808 +05-25-2008,5.88797556959014,6.1919790818142 +05-26-2008,5.07931142665923,5.83673982138764 +05-27-2008,5.82794622680037,6.2742540197203 +05-28-2008,6.7319389494887,5.98168615102588 +05-29-2008,6.41636356170888,6.28833966848419 +05-30-2008,4.92961308485541,5.26385153596839 +05-31-2008,6.42666404909044,6.32293923926009 +06-01-2008,7.10209420135576,6.93139239146113 +06-02-2008,6.03170954966508,6.43108284679049 +06-03-2008,6.2998971401788,6.10257712065573 +06-04-2008,6.51193491939239,6.45670502906779 +06-05-2008,7.40088398840637,7.3440530297198 +06-06-2008,7.16615721521704,7.14536395951886 +06-07-2008,7.10507832676212,7.10689356880328 +06-08-2008,7.24780495974638,7.32744522055903 +06-09-2008,7.37400717228795,7.30319455584254 +06-10-2008,7.53430987913444,7.31567549519874 +06-11-2008,7.36845349771399,7.15806087937798 +06-12-2008,7.32639117124029,6.63241232835909 +06-13-2008,7.06229100822882,5.55724416532039 +06-14-2008,6.54552491425999,5.84428086112445 +06-15-2008,6.93248977504672,6.07524935580572 +06-16-2008,6.48324601219498,6.5962972257304 +06-17-2008,7.03832993375267,6.72780323817073 +06-18-2008,7.10089096171091,6.93117723364963 +06-19-2008,6.22527492034267,6.14475328563262 +06-20-2008,6.17061563592829,6.10857924378631 +06-21-2008,6.48751861531006,6.26098764687613 +06-22-2008,6.74281880609107,6.21029496000212 +06-23-2008,6.68371148739461,5.99242178204812 +06-24-2008,6.81737659404968,6.60880365581738 +06-25-2008,6.78138868551673,6.59609905012137 +06-26-2008,6.82943049215515,6.57671523485764 +06-27-2008,6.85918300576182,6.8296018056119 +06-28-2008,7.30190531525196,6.97510243330946 +06-29-2008,7.04336077083059,6.76096967905413 +06-30-2008,6.10645898256957,6.96507934386727 +07-01-2008,6.83054157977792,6.64563452033558 +07-02-2008,6.34493247251617,6.20902120265331 +07-03-2008,6.39897263135105,6.22552414109048 +07-04-2008,6.7900934568713,6.4733494275296 +07-05-2008,7.1185557409514,6.81885139702432 +07-06-2008,7.16251296296722,6.45156372254822 +07-07-2008,6.59391574759692,5.8842262290542 +07-08-2008,6.78733921142031,5.74062566380854 +07-09-2008,6.9103223170188,6.19439466855019 +07-10-2008,6.85109722289069,6.16559950951027 +07-11-2008,6.10907028480655,6.08627929647464 +07-12-2008,6.65289330139627,6.60513636133582 +07-13-2008,6.69855023324189,6.88532831555171 +07-14-2008,6.55484188181809,6.71974023260437 +07-15-2008,6.11140681684723,5.50720156132833 +07-16-2008,5.78088560731918,6.26817894433785 +07-17-2008,6.04245467511886,6.50477145105609 +07-18-2008,6.02726919221719,6.5532405074994 +07-19-2008,6.37348714063274,6.53022805244898 +07-20-2008,6.67225317783197,6.86925632704202 +07-21-2008,7.01282693111145,6.78849307734353 +07-22-2008,7.31141239691236,7.30643361400756 +07-23-2008,6.98961707704204,6.8105555769865 +07-24-2008,7.06920762562279,6.86242244164717 +07-25-2008,5.57820205180301,6.32660965296594 +07-26-2008,5.31935180835999,6.06236367230714 +07-27-2008,4.28120983983569,5.49711351638073 +07-28-2008,7.10615924310304,6.80371806792719 +07-29-2008,6.86653012159361,6.65740545284081 +07-30-2008,6.99788869126594,6.66147824050356 +07-31-2008,7.07012466348373,6.8304216727838 +08-01-2008,7.06422603197808,6.61933891249805 +08-02-2008,6.45975572801848,6.34761728339379 +08-03-2008,6.98462287209657,6.72289514217947 +08-04-2008,6.79327926939689,6.55147004568092 +08-05-2008,6.80847334932156,6.45927269598822 +08-06-2008,6.69357582417649,6.58800396364466 +08-07-2008,7.07681480360374,6.71633987851269 +08-08-2008,6.74053826013986,5.38687952707939 +08-09-2008,6.21632695128971,5.98515632302193 +08-10-2008,5.72327011925058,5.77776527881813 +08-11-2008,6.15061197408814,5.99951148326426 +08-12-2008,5.90495871072938,5.68184871440889 +08-13-2008,5.21460075286122,5.568492018622 +08-14-2008,5.41706780145153,5.45517701229483 +08-15-2008,5.24428208426995,5.6522526299866 +08-16-2008,6.07375076679485,5.71091734958729 +08-17-2008,6.06576131234627,5.50921355524089 +08-18-2008,5.23135993069678,5.11359341283973 +08-19-2008,5.6329886085166,5.84303213162181 +08-20-2008,6.02936871978842,5.93294440911596 +08-21-2008,5.91325243663673,5.84348390233785 +08-22-2008,5.72518856318949,5.58131203033296 +08-23-2008,4.62295602444258,4.95180953946299 +08-24-2008,4.70513433933631,4.43053521894281 +08-25-2008,4.44295277763484,4.37067263732755 +08-26-2008,4.17281349967492,4.34554869389419 +08-27-2008,2.71333753772665,0.523541649582259 +08-28-2008,2.29365991511467,2.78280514054132 +08-29-2008,2.45289917117672,3.4026068403827 +08-30-2008,4.68741399976242,5.23438353199146 +08-31-2008,5.33492446993456,5.38027095654663 +09-01-2008,5.16785443483124,5.5203772977024 +09-02-2008,3.74555707444066,5.34151718923911 +09-03-2008,4.79351836048316,4.88707479490688 +09-04-2008,5.15488886246334,5.10240990020969 +09-05-2008,5.20120446635068,4.8982097966236 +09-06-2008,5.00421467877427,5.0990562770037 +09-07-2008,5.27829084641191,5.12324787194321 +09-08-2008,5.28323857917002,5.06903160556544 +09-09-2008,5.05608346884226,5.0416016338744 +09-10-2008,4.46435362896159,4.95311369762367 +09-11-2008,4.32819272817426,2.91230017203428 +09-12-2008,1.57809239133331,2.0460189767713 +09-13-2008,4.07018806830238,3.45393868327321 +09-14-2008,4.33428027607551,4.2319205001651 +09-15-2008,4.65277713039331,4.35584654615755 +09-16-2008,4.98172328525579,2.56863297717985 +09-17-2008,2.17226196222502,0.740818344045738 +09-18-2008,2.88125126502319,2.53692992593379 +09-19-2008,3.97235938894425,4.00684472559787 +09-20-2008,3.97581650231705,3.986304422417 +09-21-2008,3.64900630330962,3.703105768911 +09-22-2008,3.17198564526165,3.23790445913593 +09-23-2008,3.82023643005231,3.83520363730256 +09-24-2008,3.62165413939576,3.52028492681322 +09-25-2008,3.20486316024025,3.4714185475165 +09-26-2008,2.79246330671992,3.32260126728923 +09-27-2008,2.38194011857658,3.4470933554646 +09-28-2008,1.88015597138284,2.4511925800417 +09-29-2008,3.8888011022632,3.34809703576279 +09-30-2008,3.87076926417523,3.53627681663898 +10-01-2008,3.68872182869001,3.45097876281918 +10-02-2008,3.50051704265013,3.25297595701517 +10-03-2008,2.93018598728549,2.73586935593799 +10-04-2008,3.01995646902308,2.806698675686 +10-05-2008,3.29463533863011,2.99277578693264 +10-06-2008,3.3678296742587,3.15385345588128 +10-07-2008,3.29291733572538,3.10246303266546 +10-08-2008,3.12116423990035,2.95624721644537 +10-09-2008,1.64858906533697,1.51421546868543 +10-10-2008,1.70407809148578,2.39368292274682 +10-11-2008,2.39987217818677,2.06246240510367 +10-12-2008,2.18384153898918,1.67915645662908 +10-13-2008,1.84835657527515,1.87386014313202 +10-14-2008,2.66097525997709,2.67079308316098 +10-15-2008,2.84596195975897,2.71177646134926 +10-16-2008,2.85374754962735,2.74649473940962 +10-17-2008,2.9950446189457,2.82122528388105 +10-18-2008,3.21954287556291,2.9980687356556 +10-19-2008,2.2986965371519,2.10588257719399 +10-20-2008,1.92498586345971,1.93756202406229 +10-21-2008,1.94613801700581,1.9301036893015 +10-22-2008,2.13508411018187,2.07808673583977 +10-23-2008,1.97376959126861,1.9614791171213 +10-24-2008,1.65926458293703,1.69151336140436 +10-25-2008,1.3326060778243,1.25356040163746 +10-26-2008,2.33642873452527,1.5308424471263 +10-27-2008,1.95069810971247,1.77612181154383 +10-28-2008,1.6828311180356,1.23152763282773 +10-29-2008,1.38039977079641,1.03618538267234 +10-30-2008,1.40753570253349,1.25909427078471 +10-31-2008,1.52559101810404,1.36452672887828 +11-01-2008,1.50514286079011,1.41025573246736 +11-02-2008,1.55287115948791,1.44115319895205 +11-03-2008,1.66916860796024,1.49031003430671 +11-04-2008,1.72102910617154,1.5446556960766 +11-05-2008,1.37604932268635,1.7287439090311 +11-06-2008,1.64253624247195,1.61991660256709 +11-07-2008,1.68826806316311,1.57029651510786 +11-08-2008,1.72110030216469,1.48501899082994 +11-09-2008,1.60654539639532,1.46961713493192 +11-10-2008,1.2608793278959,1.12772868785627 +11-11-2008,1.22283051580166,1.07644289968115 +11-12-2008,1.08958619359237,1.02031695033493 +11-13-2008,1.02417140104024,1.11011200595173 +11-14-2008,0.957678331028037,1.10702304654872 +11-15-2008,0.563315590407045,1.19480449333115 +11-16-2008,1.60504666524367,1.52729956228872 +11-17-2008,1.00003300444506,0.61242960254973 +11-18-2008,0.952928838939851,0.846705294050145 +11-19-2008,0.708567369399261,0.647100611322592 +11-20-2008,0.730318480855349,0.664309465993039 +11-21-2008,0.835338197883523,0.834146156247719 +11-22-2008,0.69614301482632,0.663327983784344 +11-23-2008,0.662636962352402,0.600105738965337 +11-24-2008,0.763206801692161,0.743144047982822 +11-25-2008,0.816006324787551,0.802893161132982 +11-26-2008,0.895664810310205,0.783335037998923 +11-27-2008,0.719865201685406,0.677492864554142 +11-28-2008,0.838593259120274,0.716148943725847 +11-29-2008,0.956986347440466,0.861012574782405 +11-30-2008,0.940523336527371,0.894675632393538 +12-01-2008,0.0473491808424525,0.657448644940316 +12-02-2008,0.737116991478406,0.543517605540627 +12-03-2008,0.712378299580849,0.624713414496732 +12-04-2008,0.681611806752495,0.595984707105285 +12-05-2008,0.823314477550133,0.83136890541992 +12-06-2008,0.750959846938211,0.652313457698144 +12-07-2008,0.605802695801318,0.552942216567803 +12-08-2008,0.604977172145096,0.583119167775361 +12-09-2008,0.538644242703781,0.512741906087542 +12-10-2008,0.688386595176394,0.713121011026351 +12-11-2008,1.04351698042346,1.02430473635175 +12-12-2008,1.2710570440231,1.21347286169004 +12-13-2008,0.811716163442513,0.641345385477931 +12-14-2008,0.588899701940353,0.560340623902455 +12-15-2008,0.606394225939881,0.635518198687589 +12-16-2008,0.58829873670371,0.964007332950005 +12-17-2008,1.01159377748895,0.947464286668637 +12-18-2008,0.893413830653776,1.01249109903399 +12-19-2008,1.38855413614123,1.13987210798584 +12-20-2008,1.13689487856964,1.04069260403032 +12-21-2008,1.3140871934518,0.979480084381442 +12-22-2008,0.942873178103951,0.838664531704815 +12-23-2008,0.462506341711103,0.422464094941415 +12-24-2008,0.505844388021747,0.470598726073763 +12-25-2008,0.654497804590396,0.862098583940166 +12-26-2008,1.09513429473988,0.849454054957654 +12-27-2008,0.766916721920932,0.740061213239251 +12-28-2008,0.24663488123558,1.0624966611275 +12-29-2008,0.938967060654532,1.13606056464528 +12-30-2008,0.960114046514813,0.717615959190918 +12-31-2008,0.610488818808601,0.485408217242016 +01-01-2009,0.570683351474122,0.500523008987486 +01-02-2009,0.435020732335886,0.416733982195383 +01-03-2009,0.652114554611122,0.674377229751953 +01-04-2009,0.909719383000049,0.788954427139263 +01-05-2009,0.980004607327064,0.996825568619639 +01-06-2009,1.23943180969629,1.09284324011286 +01-07-2009,1.44401457974922,1.31549925967005 +01-08-2009,1.27626960784769,1.17801027306831 +01-09-2009,0.665278700851018,0.653388733833151 +01-10-2009,0.602081369121122,0.61420420409294 +01-11-2009,0.796391856803893,0.807662933397614 +01-12-2009,1.02896310088414,0.976603051557209 +01-13-2009,0.736329364278988,0.659510672631393 +01-14-2009,0.772298750401908,0.724779155417554 +01-15-2009,0.726931775723312,0.668680459461989 +01-16-2009,0.738976819483369,0.647602841871651 +01-17-2009,0.5163749950825,0.4370410288861 +01-18-2009,0.52516022060723,0.486803989756815 +01-19-2009,0.724838093951268,0.738769928035158 +01-20-2009,0.881765792803554,0.82669827976087 +01-21-2009,0.736977842016441,0.624888433438086 +01-22-2009,0.645731610850765,0.601046160635721 +01-23-2009,0.778332141983683,0.759069203339162 +01-24-2009,1.10092726869496,0.85892619626134 +01-25-2009,1.22129628931855,1.06497492296467 +01-26-2009,0.819933428786914,0.845069819977757 +01-27-2009,0.536028609279568,0.952916344414824 +01-28-2009,0.334305866010583,1.13308341985842 +01-29-2009,1.40952699184584,1.30820245358586 +01-30-2009,1.24117273035884,1.00254884580285 +01-31-2009,1.03340122037922,0.848230978080247 +02-01-2009,0.934742458732164,0.89617595394637 +02-02-2009,1.14282356930608,1.03413128201398 +02-03-2009,1.36749619641954,1.20509633448462 +02-04-2009,1.06849208284767,0.981380923593635 +02-05-2009,0.853749734531703,0.723906472195433 +02-06-2009,0.870324390406602,0.767682423058938 +02-07-2009,1.09874309743698,1.05188468907665 +02-08-2009,1.54950991539419,1.35530196431997 +02-09-2009,1.75491336257774,1.69688745805922 +02-10-2009,1.89196733203608,1.64763666348729 +02-11-2009,1.85874364174232,1.4724418259124 +02-12-2009,1.90483030394439,1.66271904264031 +02-13-2009,1.76255162704808,1.61913862061259 +02-14-2009,1.55929605496465,1.54960203317568 +02-15-2009,1.86785748607687,1.70435504566402 +02-16-2009,1.50543426104328,1.48979960465206 +02-17-2009,1.48433601323961,1.43095439693963 +02-18-2009,1.40866727926437,1.13655334602287 +02-19-2009,1.37394477446585,1.47291695834209 +02-20-2009,1.76938345823252,1.79278691948005 +02-21-2009,1.36687167760588,1.23302806444497 +02-22-2009,1.4992648000482,1.42501794238979 +02-23-2009,1.76022659165043,1.51792311106995 +02-24-2009,1.41499087310598,1.14478910710904 +02-25-2009,1.27443073492199,1.3152815445267 +02-26-2009,1.51734704381001,1.47199024699654 +02-27-2009,2.11955349697604,2.25331823906728 +02-28-2009,1.87080721226328,2.17545761076123 +03-01-2009,1.59389516319701,1.72775863831164 +03-02-2009,1.59454099068687,1.54382360028276 +03-03-2009,1.22935755421428,0.680579491712885 +03-04-2009,1.27478242778197,1.09254129591765 +03-05-2009,1.77435480666681,1.54544475997475 +03-06-2009,2.13705654280494,2.04220313098749 +03-07-2009,2.74179200328929,2.72242673026486 +03-08-2009,3.25353101643789,3.02402430057215 +03-09-2009,3.08895339095064,3.0122822599528 +03-10-2009,3.42205791552817,2.85419455015562 +03-11-2009,2.53284986438649,2.92098889825678 +03-12-2009,3.51201737925578,3.23240881904626 +03-13-2009,2.70763402258069,1.71312152926399 +03-14-2009,2.00101918978021,1.7483554546587 +03-15-2009,-0.0246173759444616,0.39350610512886 +03-16-2009,0.416169559227961,2.09103096277648 +03-17-2009,0.359406652595205,1.84322677179347 +03-18-2009,3.17169954849067,3.031219812452 +03-19-2009,3.19407819672563,3.16896413204351 +03-20-2009,3.39623123262455,3.18784227591766 +03-21-2009,2.95452495862856,2.47716119350978 +03-22-2009,2.63458475105744,2.54431510411426 +03-23-2009,3.1083876342741,3.01188158556406 +03-24-2009,3.46774816788556,3.31996250725851 +03-25-2009,3.4141103994894,3.39069635305989 +03-26-2009,2.677957585633,3.17029033043689 +03-27-2009,1.86537814033692,1.88779183207185 +03-28-2009,2.06452927141327,1.26111691872115 +03-29-2009,1.50515329629516,1.45051013639487 +03-30-2009,3.09794004500763,2.74198222100449 +03-31-2009,3.33940917653724,3.02274765103299 +04-01-2009,3.35751043306813,2.03483169058924 +04-02-2009,2.78065294156134,3.06167249100777 +04-03-2009,2.84264577859157,3.21599208041002 +04-04-2009,3.82952454458815,2.68114703213186 +04-05-2009,3.8672397778343,3.53853298858838 +04-06-2009,4.30198494868099,3.9883140954586 +04-07-2009,4.28028090594628,4.05544302952323 +04-08-2009,2.99105281339775,2.65496345623182 +04-09-2009,3.30168559344499,3.11986272633846 +04-10-2009,3.94577210027929,4.00347751173849 +04-11-2009,2.8831926081674,3.90051722615029 +04-12-2009,3.95475459147337,2.82181701463662 +04-13-2009,3.76228538769688,3.69096803165213 +04-14-2009,3.39711430544262,3.27765333705885 +04-15-2009,3.83665446927653,2.84730994422949 +04-16-2009,4.00156283360799,3.17998124828247 +04-17-2009,3.90754744151025,3.91971111730333 +04-18-2009,4.08708198565543,4.21609031096702 +04-19-2009,4.58960721967221,4.55210556176617 +04-20-2009,4.45783267305646,4.44547613445204 +04-21-2009,4.28898480440039,4.2584211655932 +04-22-2009,4.43339810064362,4.14656142599843 +04-23-2009,4.24083521722875,3.71309474050892 +04-24-2009,4.89387203952281,4.54121718309848 +04-25-2009,5.60479697337327,5.10137419656865 +04-26-2009,5.74682608759765,5.42036601970221 +04-27-2009,5.59576304599676,5.41477318524211 +04-28-2009,5.35181348971901,5.11435901551388 +04-29-2009,5.06552141495544,5.01513719307196 +04-30-2009,5.11220045847567,5.02347915322189 +05-01-2009,4.61534830275708,4.6970320527795 +05-02-2009,4.47084575479325,4.24383290305565 +05-03-2009,4.94977604873126,3.92773901175594 +05-04-2009,4.85135304715931,3.22381172165248 +05-05-2009,4.20474108634665,3.44812673653233 +05-06-2009,4.53362045446863,3.77193313278287 +05-07-2009,4.38358086547708,4.00467091868861 +05-08-2009,5.26611650366008,5.28832043831723 +05-09-2009,5.43038608806928,5.26575617141528 +05-10-2009,5.74486392086867,5.89642714345577 +05-11-2009,5.47704429640842,5.28773353129606 +05-12-2009,5.23610506927127,5.07147435703528 +05-13-2009,5.33807475976358,4.84699157744689 +05-14-2009,5.44769162323226,4.90277603806034 +05-15-2009,5.67694274043863,5.23861589043455 +05-16-2009,5.11809634368611,4.40298491731413 +05-17-2009,5.79835983832394,5.19684714705953 +05-18-2009,5.11545660183923,3.75630730160991 +05-19-2009,4.80887239006361,4.39174408065522 +05-20-2009,4.79428389675104,4.67309065560749 +05-21-2009,5.4197497710345,5.20808267044674 +05-22-2009,4.96891811904505,5.57932801139611 +05-23-2009,5.35161712890931,5.10392283573015 +05-24-2009,5.13585866378649,4.64869769169394 +05-25-2009,3.20376479400961,3.17626638212919 +05-26-2009,4.48336838101803,3.60924174386346 +05-27-2009,4.15002025444648,2.63524201001091 +05-28-2009,3.37338955671493,3.2404047984586 +05-29-2009,5.02448306823348,3.38300422137766 +05-30-2009,5.99377000500851,5.16843338842307 +05-31-2009,5.98629983107711,5.60619231093751 +06-01-2009,6.6293145140798,6.31372298069006 +06-02-2009,6.12861242586645,6.37242152375719 +06-03-2009,6.74792181251686,6.75607523888022 +06-04-2009,6.64320064874059,6.54538610681935 +06-05-2009,6.02364095079241,6.12280919064872 +06-06-2009,4.34096786915401,3.65509871745855 +06-07-2009,4.3137919432082,5.6838062252785 +06-08-2009,4.91864969351132,5.98641200730004 +06-09-2009,6.03702147436889,6.14590977391811 +06-10-2009,6.67290267991863,6.68836376646716 +06-11-2009,6.55960217947396,6.54915489944591 +06-12-2009,6.03533260286122,5.30363577819615 +06-13-2009,6.75022458332702,5.51005360037979 +06-14-2009,6.66614547102382,6.17092738131164 +06-15-2009,5.90911759646608,6.15060298519264 +06-16-2009,5.87069554639942,6.09592482093155 +06-17-2009,5.83887929344105,5.96647901695431 +06-18-2009,5.5234876731095,5.58372535723532 +06-19-2009,6.81355623104236,6.11505229867195 +06-20-2009,6.93861949960705,6.52868455629026 +06-21-2009,7.32851416565831,6.91933247019416 +06-22-2009,6.81813557570131,6.69813418455724 +06-23-2009,5.8486662865545,4.79036121576445 +06-24-2009,6.40313771337948,5.58172644365017 +06-25-2009,6.01802697703596,6.10334056371005 +06-26-2009,6.45653491574109,6.65044985893706 +06-27-2009,7.04063743877622,6.86935594947522 +06-28-2009,7.23400551701054,7.01038023958588 +06-29-2009,7.03471806890877,6.71954540722417 +06-30-2009,6.88697255839833,6.85323116507946 +07-01-2009,6.64620950769645,6.32549790427921 +07-02-2009,6.89610243884062,6.55794236637348 +07-03-2009,6.95048839076024,6.6578365745512 +07-04-2009,6.62517030527184,6.31803066333207 +07-05-2009,6.05193856562931,6.38941780076084 +07-06-2009,6.50276783628736,6.09268527533579 +07-07-2009,6.80147505421121,5.18633596850013 +07-08-2009,6.45637882475468,5.13395822636814 +07-09-2009,5.34502673477963,3.59142761751773 +07-10-2009,5.54393577095511,3.74437261339342 +07-11-2009,5.31283300213026,5.13630711892714 +07-12-2009,6.36609880743753,5.71480871389058 +07-13-2009,6.93208618952063,6.61471347774823 +07-14-2009,6.72668676731996,6.79434021677147 +07-15-2009,6.06115335862527,5.96888763638928 +07-16-2009,6.99297716551885,6.3496488200907 +07-17-2009,7.25131605156919,6.40898180012657 +07-18-2009,7.32551308262335,6.65302674342231 +07-19-2009,6.56704573975498,5.00895601609342 +07-20-2009,5.55425067272136,5.25387486486604 +07-21-2009,5.56986920585996,5.56457944419719 +07-22-2009,5.5026062833094,5.33379112330621 +07-23-2009,5.32119941738896,4.95034419006629 +07-24-2009,5.87459980516305,6.04834316178053 +07-25-2009,6.45155666722432,6.11820321204695 +07-26-2009,6.73302277582833,6.42139373040021 +07-27-2009,6.86841847890703,6.42076741967441 +07-28-2009,6.84642419423715,6.27052831738844 +07-29-2009,6.67292950594886,5.7950634834415 +07-30-2009,6.29750251709441,5.67598080321229 +07-31-2009,4.82248936914505,5.43753789618382 +08-01-2009,5.35627826961851,5.0065279269617 +08-02-2009,6.00032122667454,5.11159536278778 +08-03-2009,6.44184822305146,5.94427889120237 +08-04-2009,6.67271340295987,6.29264248495183 +08-05-2009,6.68216810178146,6.26516726270818 +08-06-2009,6.60058597488277,6.14765502536328 +08-07-2009,6.53036650008233,6.16232271413946 +08-08-2009,6.2051445638321,6.04643717976633 +08-09-2009,6.49568961634805,6.25183813956799 +08-10-2009,6.66053528721293,6.35730078873907 +08-11-2009,6.71257483932428,6.22404468962694 +08-12-2009,6.85109687259695,5.93161146456376 +08-13-2009,2.94714505140956,5.78335331516526 +08-14-2009,5.70044017674592,4.89947224051465 +08-15-2009,5.78335891122508,5.47134983229896 +08-16-2009,5.31702961498605,5.69688454901569 +08-17-2009,5.70160578846345,5.57499504800418 +08-18-2009,5.64749463620367,5.19546783068913 +08-19-2009,6.07917650583449,5.15642268320698 +08-20-2009,5.83014142822653,4.77820099968467 +08-21-2009,5.76824506618253,4.82446475604248 +08-22-2009,5.77573196343172,4.29880220781223 +08-23-2009,5.9190529761864,4.23369627145949 +08-24-2009,5.5659787438458,4.64585240897497 +08-25-2009,5.14752847144082,4.17992764765357 +08-26-2009,5.49384104900529,4.79925195474296 +08-27-2009,5.78978062049678,5.32966462464669 +08-28-2009,5.83542925561474,5.32875808641094 +08-29-2009,5.6219877292455,5.01337434258386 +08-30-2009,5.48506616327984,4.51142551130516 +08-31-2009,5.50867976853346,3.83906184472863 +09-01-2009,4.93325518482987,1.62055620106352 +09-02-2009,3.24354948312102,2.20870943914373 +09-03-2009,4.43983202150683,4.20913287899881 +09-04-2009,4.75459940025425,4.7227012463745 +09-05-2009,5.00188563435564,4.94446793338677 +09-06-2009,5.17624613184668,4.93268166739638 +09-07-2009,5.05973076286289,4.74664292275097 +09-08-2009,4.89192726347945,3.84235930608724 +09-09-2009,5.01357889362995,4.09409549201952 +09-10-2009,4.85213443865842,4.00601814235446 +09-11-2009,3.60214937942731,2.70121292457958 +09-12-2009,3.74838034835554,3.25356979423933 +09-13-2009,4.78831934938799,4.51530985657406 +09-14-2009,4.5120667021382,4.53937820729198 +09-15-2009,4.2715619065263,4.45910399842558 +09-16-2009,4.16230118537111,4.1978817939577 +09-17-2009,3.35760267004377,2.41505204576148 +09-18-2009,1.5759982002318,0.769319066234596 +09-19-2009,1.23856669758412,2.178609672892 +09-20-2009,2.35906990920819,2.47799651939482 +09-21-2009,0.462742295336695,0.331344587218708 +09-22-2009,2.47056629762331,0.298229519096895 +09-23-2009,2.99379417286669,2.82455663789292 +09-24-2009,3.45852048812145,3.41608618853171 +09-25-2009,3.68336413581028,3.94186597621028 +09-26-2009,4.45685908910261,4.30858739366501 +09-27-2009,4.02569268072866,3.78421061572282 +09-28-2009,3.65475188254784,3.31223061191426 +09-29-2009,3.95569594628231,3.53499057127626 +09-30-2009,3.14767303183245,1.9738665621869 +10-01-2009,3.17589769048359,2.81450227935202 +10-02-2009,3.03971438419705,2.96879647785254 +10-03-2009,3.11486643839388,3.02382481830861 +10-04-2009,3.19252236338614,3.01312499904501 +10-05-2009,2.85624016340834,2.8023488902576 +10-06-2009,2.66214225460784,2.38565691298036 +10-07-2009,1.63959081484553,1.61967481546171 +10-08-2009,3.69893516954495,2.79888609918775 +10-09-2009,2.98537689944497,2.62882114644582 +10-10-2009,3.39354209068307,3.11975458908902 +10-11-2009,3.02457770392561,3.08913357560285 +10-12-2009,2.6843292671507,1.63018344501843 +10-13-2009,1.71155243456482,1.70130894762226 +10-14-2009,2.7146770623151,2.48174088019218 +10-15-2009,2.79677460743581,2.59834319436144 +10-16-2009,1.78823025826639,1.65871302036884 +10-17-2009,1.92559644373031,1.82467038877432 +10-18-2009,1.4811277767912,0.605780479943418 +10-19-2009,1.71415762782795,1.19811043878218 +10-20-2009,1.84059814745977,1.77309555241387 +10-21-2009,2.13197526858417,1.88679341613347 +10-22-2009,2.15203833894323,1.97506937660701 +10-23-2009,2.3419098480976,2.07419161572154 +10-24-2009,2.7658694948452,1.63666954562237 +10-25-2009,2.80085889690437,2.51657584151203 +10-26-2009,1.57207379960811,1.80176025129552 +10-27-2009,1.62420137518593,1.71311260130104 +10-28-2009,1.29371425080832,1.65879709565224 +10-29-2009,1.97584220991696,2.06519476149613 +10-30-2009,2.03194963202853,2.00764664808296 +10-31-2009,1.81870967318012,1.78557232751144 +11-01-2009,1.72630445246082,1.46819619237321 +11-02-2009,1.6488821235444,1.31542717839671 +11-03-2009,1.54509065632715,1.46376529938177 +11-04-2009,1.73070059599684,1.52429379649588 +11-05-2009,1.49532968861511,1.41704408004817 +11-06-2009,1.46355907720559,1.38227857194119 +11-07-2009,1.30540429320981,1.26646112463148 +11-08-2009,1.43985344104178,1.31214640068817 +11-09-2009,1.63075501474499,1.30202688862599 +11-10-2009,1.53652342858969,1.33682802622895 +11-11-2009,1.30581276250658,1.41896152532545 +11-12-2009,0.109382519635155,0.285138570494791 +11-13-2009,1.01760039102737,0.764381312688445 +11-14-2009,1.44933590210825,1.26210502998631 +11-15-2009,1.60564224099572,1.38285341961862 +11-16-2009,1.58059835918912,1.33796486262161 +11-17-2009,1.38845261847321,1.22587907932259 +11-18-2009,1.38719118972106,1.28040353999704 +11-19-2009,1.15659431151339,1.13486925412471 +11-20-2009,1.29876730614552,1.16803537506831 +11-21-2009,1.17975344316666,1.03800968327553 +11-22-2009,1.0796237497876,0.977473249885155 +11-23-2009,0.929704493289809,0.639207092365622 +11-24-2009,0.0923731893613147,0.84784987898527 +11-25-2009,0.00579231024803097,0.656226660963627 +11-26-2009,1.11530641735464,1.06503577505121 +11-27-2009,1.04003075104287,0.873590276519822 +11-28-2009,0.795033209490918,0.731024056603376 +11-29-2009,0.738326402414508,0.690593044659223 +11-30-2009,0.95500647082059,0.87010862116966 +12-01-2009,1.0968605812479,1.02858154186235 +12-02-2009,0.813508662402226,0.762786417183086 +12-03-2009,0.908295041988648,0.865033557224469 +12-04-2009,1.06321126706171,0.830469323659464 +12-05-2009,0.800838578127898,0.71925409047302 +12-06-2009,0.852770676139449,0.74627535600329 +12-07-2009,0.655785181742822,0.589658493627431 +12-08-2009,0.758234525947606,0.674589306220676 +12-09-2009,0.811902889234307,0.78495063153845 +12-10-2009,0.806643765692846,0.715945848989821 +12-11-2009,0.486597808997474,0.401517504280928 +12-12-2009,0.382397334040873,0.471323583524366 +12-13-2009,0.544953310569673,0.489335712034236 +12-14-2009,0.709224975575187,0.775095878266878 +12-15-2009,0.924371703856897,0.980834382708556 +12-16-2009,1.26806159565401,1.02109260628464 +12-17-2009,0.550982278921218,0.515477645199365 +12-18-2009,0.602757607977113,0.541568009901024 +12-19-2009,0.635417600974248,0.603593096919552 +12-20-2009,0.682707067690729,0.103502548389541 +12-21-2009,0.669047933655888,0.550927837757591 +12-22-2009,0.618121410348941,0.577067113426894 +12-23-2009,0.666415612442484,0.599978513072688 +12-24-2009,0.698198264958084,0.644124161548892 +12-25-2009,0.734313617595209,0.639236496873411 +12-26-2009,0.701635753848475,0.705497472340133 +12-27-2009,0.720645585744262,0.602243900184282 +12-28-2009,0.630909404385228,0.580126340804078 +12-29-2009,0.631666942179517,0.574174216277833 +12-30-2009,0.573471866957277,0.526519277037073 \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/PT_Et_linkableComponent.cs b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/PT_Et_linkableComponent.cs new file mode 100644 index 00000000..25535a1d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/PT_Et_linkableComponent.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace PT_ET_LC +{ + class PT_Et_linkableComponent: Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + protected override void SetEngineApiAccess() + { + _engineApiAccess = new PT_Evapotranspiration.PT_PET(); + } + public PT_Et_linkableComponent() + { + _engineApiAccess = new PT_Evapotranspiration.PT_PET(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/PT_PET.cs b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/PT_PET.cs new file mode 100644 index 00000000..59dd05c2 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/PT_PET.cs @@ -0,0 +1,256 @@ +// Purpose: Evaluate Standardized Evapotranspiration and Potantial Evapotranspiration in mm per day. +// Author: Mehmet Ercan (mehmetbercan@gmail.com) +// Advisor: Jonathan L. Goodall (goodall@sc.edu) +// History: Created (07-29-2010) + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; + +using SMW; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Wrapper; +using SharpMap.Layers; +using SharpMap.Data.Providers; +using SharpMap.Data; + +namespace PT_Evapotranspiration +{ + public class PT_PET : SMW.Wrapper + { + public string input_quantity; + public string input_elementset; + public string input_quantity2; + public string input_elementset2; + public string input_quantity3; + public string input_elementset3; + + public string output_quantity; + public string output_elementset; + public string output_quantity2; + public string output_elementset2; + + double[] C_set = new double[2]; //define the coefficients from set file + Dictionary> output = new Dictionary>(); + string _outDir = null; + + public override void Finish() + { + //intialize streamwriter to write output data. + System.IO.StreamWriter sw; + if (_outDir != null) + { + try + { sw = new System.IO.StreamWriter(_outDir + "/output.csv"); } + catch (SystemException e) + { + throw new Exception("The ET Component was unable to create the desired output file. " + + "This is possibly due to an invalid \'OutDir\' field supplied in " + + "the *.omi file", e); + } + } + else + { + try { sw = new System.IO.StreamWriter("../output.csv"); } + catch (SystemException e) + { + throw new Exception(" The ET component failed in writing it output file to path " + + System.IO.Directory.GetCurrentDirectory() + ". This may be due to " + + "lack of user permissions.", e); + } + } + + int i = 1; + foreach (KeyValuePair> val in output) + { + if (i == 2) + { //Write Station IDs + sw.Write("StationID:"); + for (int st = 0; st < (val.Value[0]).Count(); st++) + { + sw.Write("," + st); + } + //Write Latitudes + sw.WriteLine(); + sw.Write("Latitude:"); + for (int st = 0; st < (val.Value[0]).Count(); st++) + { + sw.Write(",NA"); //+ val.Value[st][1]); + } + //Write Longitudes + sw.WriteLine(); + sw.Write("Longitude:"); + for (int st = 0; st < (val.Value[0]).Count(); st++) + { + sw.Write(",NA");// + val.Value[st][2]); + } + //Write Elevation + sw.WriteLine(); + sw.Write("Elevation:"); + for (int st = 0; st < (val.Value[0]).Count(); st++) + { + sw.Write("," + val.Value[2][st]); + } + //Write first line of date and Standartized ET + sw.WriteLine(); + sw.Write("Date:"); + for (int st = 0; st < (val.Value[0]).Count(); st++) + { + sw.Write(",ETsz(mm/d)"); + } + } + if (i != 1 && i != 2) + { + //Write daily standartized ETs + string time = String.Format("{0:MM-dd-yyyy}", CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)val.Key).ModifiedJulianDay)); + sw.WriteLine(); + sw.Write(time); + for (int st = 0; st < (val.Value[0]).Count(); st++) + { + sw.Write("," + val.Value[1][st]); + } + } + i++; + } + sw.Close(); + } + + public override void Initialize(System.Collections.Hashtable properties) + { + string configFile = null; + string data_dir = null; + + //Get Config file directory from .omi file + if (properties.ContainsKey("ConfigFile")) + configFile = (string)properties["ConfigFile"]; + //Get wtmp files directory from .omi file + if (properties.ContainsKey("DataFolder")) + data_dir = (string)properties["DataFolder"]; + if (properties.ContainsKey("OutDir")) + _outDir = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), (string)properties["OutDir"]); + + + //Set variables + SetVariablesFromConfigFile(configFile); + SetValuesTableFields(); + + //get input exchange item attributes + input_elementset = this.GetInputExchangeItem(0).ElementSet.ID; + input_quantity = this.GetInputExchangeItem(0).Quantity.ID; + input_elementset2 = this.GetInputExchangeItem(1).ElementSet.ID; + input_quantity2 = this.GetInputExchangeItem(1).Quantity.ID; + input_elementset3 = this.GetInputExchangeItem(2).ElementSet.ID; + input_quantity3 = this.GetInputExchangeItem(2).Quantity.ID; + + //get output exchange item attributes + output_elementset = this.GetOutputExchangeItem(0).ElementSet.ID; + output_quantity = this.GetOutputExchangeItem(0).Quantity.ID; + output_elementset2 = this.GetOutputExchangeItem(1).ElementSet.ID; + output_quantity2 = this.GetOutputExchangeItem(1).Quantity.ID; + + //Read .set file to get coefficients + StreamReader data1 = new StreamReader(data_dir + "/PT-PET.set"); + data1.ReadLine(); //Read first info line... + data1.ReadLine(); //Read Second info line... + C_set[0] = Convert.ToDouble(data1.ReadLine().Split(',')[1]); //Read Crop Coefficient + C_set[1] = Convert.ToDouble(data1.ReadLine().Split(',')[1]); //Read Alpha coefficient + + //////////////shape file///////////////////////////////////////// + ////get shapefile path + //string shapefilePath = this.GetShapefilePath(); + ////this uses the free SharpMap API for reading a shapefile + //VectorLayer myLayer = new VectorLayer("elements_layer"); + //myLayer.DataSource = new ShapeFile(shapefilePath); + //myLayer.DataSource.Open(); + ////initialize array to hold the transformed inflow values + //int size = myLayer.DataSource.GetFeatureCount(); + ////--- BUILD NETWORK --- + //// loop through all features in feature class + //for (uint i = 0; i < myLayer.DataSource.GetFeatureCount(); ++i) + //{ + // FeatureDataRow feat = myLayer.DataSource.GetFeature(i); + // string STid = feat.ItemArray[feat.Table.Columns.IndexOf("StationID")].ToString(); + // string Elev = feat.ItemArray[feat.Table.Columns.IndexOf("Elevation_")].ToString(); + // string lat = feat.ItemArray[feat.Table.Columns.IndexOf("Latitude")].ToString(); + // string lon = feat.ItemArray[feat.Table.Columns.IndexOf("Longitude")].ToString(); + + //} + //////////////shape file///////////////////////////////////////// + + } + + public override bool PerformTimeStep() + { + //Retrieve values from another component + ScalarSet _NetRadiation = (ScalarSet)this.GetValues(input_quantity, input_elementset); + double[] Net_Radiation = _NetRadiation.data; + ScalarSet _temp = (ScalarSet)this.GetValues(input_quantity2, input_elementset2); + double[] temp = _temp.data; + ScalarSet _elevation = (ScalarSet)this.GetValues(input_quantity3, input_elementset3); + double[] elevation = _elevation.data; + + ///////////////////////////////////////////////////////////////////////////////////////// + /////////////////////PT POTANTIAL EVAPOTRANSPIRATION CALCULATION///////////////////////// + ///////////////////////////////////////////////////////////////////////////////////////// + + int st = temp.Length; + double[] ETsz = new double[st]; + double[] PET = new double[st]; + + //Looping the stations + for (int i = 0; i < st; i++) + { + //Defining variables + double T, es, D, z, P, Gama, cp, Lamda, alpha, Kc, NR, Er; + Kc = C_set[0]; + alpha = C_set[1]; + T = temp[i]; // Temperature (C) + NR = Net_Radiation[i]; //Net Radiation (MJ/m^2/d) + z = elevation[i];//z:elevation(m) + + //Calculation of Saturation vapor pressure-temperature gradient + es = 6.107799961 + 4.436518521 * Math.Pow(10, -1) * T + 1.428945805 * Math.Pow(10, -2) * Math.Pow(T, 2) + 2.650648471 * Math.Pow(10, -4) * Math.Pow(T, 3) + 3.031240396 * Math.Pow(10, -6) * Math.Pow(T, 4) + 2.034080948 * Math.Pow(10, -8) * Math.Pow(T, 5) + 6.136820929 * Math.Pow(10, -11) * Math.Pow(T, 6); //(in mb) Vapor pressure is determined from the dew point temperature using the polynomial provided by Lowe (1977). + es = 0.1 * es; //mb to Kpa convertion. + D = (4098 * es) / (Math.Pow((237.3 + T), 2)); //D:Saturation vapor pressure-temperature gradient(kPa/C)(Shuttleworth,1993) + + //Calculation of Psychrometric constant + P = 101.3 * Math.Pow(((293 - 0.0065 * z) / 293), 5.256); //P:Atmospheric pressure (kPa) + cp = (1.013) / 1000; // Specific heat of moist air (MJ/kg/C) + Lamda = (2501 - 2.361 * T) / 1000; //LatentHeatofVaporization (Mj/kg) + Gama = (cp * P) / (0.622 * Lamda); //Psychrometric constant(kPa/C) + + Er = NR / (Lamda * 1); //Evaporation by energy balance method (mm/d) (water density 1 Mg/m^3 and in daily step soil heat flux(G) is assumed to be zero) + + ETsz[i] = alpha * Er * (D / (D + Gama)); //Standartized Evapotranspiration (mm/day) + PET[i] = ETsz[i] * Kc; //Potantial Evapotranspiration (mm/day) + + } + + //set values + this.SetValues(output_quantity, output_elementset, new ScalarSet(PET)); + this.SetValues(output_quantity2, output_elementset2, new ScalarSet(ETsz)); + + //prepare output file + List PetEtsz = new List(); + PetEtsz.Add(PET); + PetEtsz.Add(ETsz); + PetEtsz.Add(elevation); + output.Add(this.GetCurrentTime(), PetEtsz); ; + + //set advance model trough time + this.AdvanceTime(); + + return true; + } + } +} + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/PT_PET.omi b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/PT_PET.omi new file mode 100644 index 00000000..ecb8a440 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/PT_PET.omi @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/PT_PETconfig.xml b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/PT_PETconfig.xml new file mode 100644 index 00000000..06217bdf --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/PT_PETconfig.xml @@ -0,0 +1,155 @@ + + + + + + pet + Potantial Evapotranspiration + ..\..\..\data\NCDCgages.shp + 1 + + + PET + Potantial Evapotranspiration + + + Length + 1 + + + time + -1 + + + + mm/d + millimeters per day + 1 + 0 + + Scalar + + + + + ETsz + Standardized Reference Evapotranspiration(ASCE-Penman-Monteith) + ..\..\..\data\NCDCgages.shp + 1 + + + StandardizedET + Standardized Reference Evapotranspiration + + + Length + 1 + + + time + -1 + + + + mm/d + millimeters per day + 1 + 0 + + Scalar + + + + + NetRadiation + NetRadiation + 1 + ..\..\..\data\NCDCgages.shp + + + NSR + net radiation + + + 1 + Megajoule + + + -2 + meter + + + -1 + day + + + + MJ/m^2/d + Megajoule per square meter per day + 1 + 0 + + Scalar + + + + + T + Temperature + 1 + ..\..\..\data\NCDCgages.shp + + + Temp + Temperature + + + 1 + C + + + + C + Celsius degree + 1 + 0 + + Scalar + + + + + Z + Elevation + 1 + ..\..\..\data\NCDCgages.shp + + + Elevation + Elevation of the station + + + 1 + metter + + + + m + metter + 1 + 0 + + Scalar + + + + + 01/01/2005 + 12/31/2009 + 86400 + + + PET: Priestley-Taylor + This component calculates PET(potantial evapotranspiration) and ETsz(Standardized Evapotranspiration) using a variation of the Priestley-Taylor algorithm. + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..57dab09e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("source")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("source")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("d1cfff15-5cac-49dd-9896-2e17b60712d4")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/sourcePTPET.csproj b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/sourcePTPET.csproj new file mode 100644 index 00000000..1f0b95dc --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/source/sourcePTPET.csproj @@ -0,0 +1,124 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {B588386B-E1CC-4B4B-ADDD-E8A10AC1682C} + Library + Properties + PTPET + PTPET + v4.0 + 512 + + + + + 3.5 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + False + ..\..\..\Utilities\SharpMap\SharpMap.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/test/PT_PETTest.cs b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/test/PT_PETTest.cs new file mode 100644 index 00000000..ffd61a68 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/test/PT_PETTest.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using NUnit.Framework; +using PT_Evapotranspiration; +using SMW; +using Oatc.OpenMI.Sdk.Wrapper; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using OpenMI.Standard; + +namespace TestClass +{ + [TestFixture] + public class Test + { + [Test] + public void TestInitialize() + { + PT_Evapotranspiration.PT_PET component = new PT_PET(); + + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "../../../Source/PT_PETconfig.xml"); + args.Add("DataFolder", "../../../data"); + args.Add("OutDir", "../../../"); + component.Initialize(args); + + } + + [Test] + public void TestPerformTimeStep() + { + PT_Evapotranspiration.PT_PET component = new PT_PET(); + + //Initialize Component + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "../../../Source/PT_PETconfig.xml"); + args.Add("DataFolder", "../../../data"); + args.Add("OutDir", "../../../"); + component.Initialize(args); + + //Define Inputs + double[] NetRadiation = { 4, 17.28, 6, 7 }; + component.SetValues("NSR", "NetRadiation", new ScalarSet(NetRadiation)); + double[] temp = { 4.3, 25, 6.5, 7.6 }; + component.SetValues("Temp", "T", new ScalarSet(temp)); + double[] elevation = { 14, 0, 16, 17 }; + component.SetValues("Elevation", "Z", new ScalarSet(elevation)); + + + //Call perform timestep in the component class + component.PerformTimeStep(); + + //retrieve values from the compenent class + ScalarSet OutputValues = (ScalarSet)component.GetValues("PET", "pet"); + ScalarSet OutputValues2 = (ScalarSet)component.GetValues("StandardizedET", "ETsz"); + double[] PET = OutputValues.data; + double[] ETsz = OutputValues2.data; + + //Call finish + component.Finish(); + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..03cd2d47 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/test/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("test")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("5ebf5686-bdea-4ced-a4d4-c97afa5e76ed")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/test/testPTPET.csproj b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/test/testPTPET.csproj new file mode 100644 index 00000000..8aea2830 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/PriestleyTaylor/test/testPTPET.csproj @@ -0,0 +1,89 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {B7E24B61-44DE-4BAB-8234-CF79BAC7B7F5} + Library + Properties + test + test + v3.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\..\..\research\code\HydroDesktop\Binaries\Plugins\HydroModeler\example_configuration\bin\nunit.framework.dll + + + False + ..\..\..\..\..\..\research\code\HydroDesktop\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.Backbone.dll + + + False + ..\..\..\..\..\..\research\code\HydroDesktop\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + False + ..\..\..\..\..\..\research\code\HydroDesktop\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\..\..\..\research\code\HydroDesktop\Binaries\Plugins\HydroModeler\example_configuration\bin\OpenMI.Standard.dll + + + False + ..\..\..\..\..\..\research\code\HydroDesktop\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + {B588386B-E1CC-4B4B-ADDD-E8A10AC1682C} + sourcePTPET + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/RandomInputGenerator/RandomInputGenerator.sln b/Source/Plugins/Plugins.HydroModeler/Components/RandomInputGenerator/RandomInputGenerator.sln new file mode 100644 index 00000000..1c49acc6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/RandomInputGenerator/RandomInputGenerator.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RandomInputGenerator", "Source\RandomInputGenerator.csproj", "{94DF6D80-6740-4DA6-A1E9-B7B6BDE1C3B2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {94DF6D80-6740-4DA6-A1E9-B7B6BDE1C3B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {94DF6D80-6740-4DA6-A1E9-B7B6BDE1C3B2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {94DF6D80-6740-4DA6-A1E9-B7B6BDE1C3B2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {94DF6D80-6740-4DA6-A1E9-B7B6BDE1C3B2}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/RandomInputGenerator/Source/Engine.cs b/Source/Plugins/Plugins.HydroModeler/Components/RandomInputGenerator/Source/Engine.cs new file mode 100644 index 00000000..1757e9ba --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/RandomInputGenerator/Source/Engine.cs @@ -0,0 +1,266 @@ +#region MetaData +//Developed By: Anthony Castronova +//Last Edited: 02/01/2010 + +//----- Component Description ----- +//This component generates a set of random numbers and passes them to other components. This is used for +//perfomance analysis in which an arbitrary set of input values is sufficient for the model simulation. + +//----- Additional Notes ----- +//This component has only been developed to supply values to one other component within a model configuration. +//Additional development should focus on making this more general. + +#endregion +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using SMW; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Wrapper; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using System.Data; + +namespace RandomInputGenerator +{ + public class InputGenerator : ILinkableComponent + { + + + private int _numElements = 0; + + private Dictionary _links = new Dictionary(); + private List _inputExchangeItems = new List(); + private List _outputExchangeItems = new List(); + private DataSet outputVals = new DataSet(); + public DataTable ExchangeItemInfo = new DataTable(); + private DataTable _values = new DataTable(); + + private double _earliestInputTime; + private double _latestInputTime; + + #region ILinkableComponent Members + + public void Finish() + { + } + public void AddLink(ILink link) + { + _links.Add(link.ID, link); + + //create new table in dataset + outputVals.Tables.Add(link.ID); + + //create columns in outputvals table to save values + outputVals.Tables[link.ID].Columns.Add("Time", typeof(ITime)); + outputVals.Tables[link.ID].Columns.Add("Value", typeof(IValueSet)); + outputVals.Tables[link.ID].Columns.Add("Quantity", typeof(string)); + outputVals.Tables[link.ID].Columns.Add("ElementSet", typeof(string)); + + OutputExchangeItem output = new OutputExchangeItem(); + output.ElementSet = link.TargetElementSet; + output.Quantity = link.TargetQuantity; + + _numElements = output.ElementSet.ElementCount; + } + + + public string ComponentDescription + { + get { return "RandomInputGenerator 1.0"; } + } + + public string ComponentID + { + get { return "RandomInputGenerator"; } + } + + public void Dispose() + { + + } + + public ITimeStamp EarliestInputTime + { + get { return new TimeStamp(_earliestInputTime); } + } + + public IInputExchangeItem GetInputExchangeItem(int inputExchangeItemIndex) + { + return _inputExchangeItems[inputExchangeItemIndex]; + } + + public IOutputExchangeItem GetOutputExchangeItem(int outputExchangeItemIndex) + { + return _outputExchangeItems[outputExchangeItemIndex]; + } + public IValueSet GetValues(ITime time, string linkID) + { + Random random = new Random(); + + double[] output = new double[_numElements]; + for (int i = 0; i < _numElements; i++) + output[i] = random.Next(20); + + IValueSet vals = new ScalarSet(output); + return vals; + } + + public void Initialize(IArgument[] properties) + { + //get the number of elements from the omi file + //int _numElements = -1; + //foreach (Argument property in properties) + //{ + // if(property.Key == "ElementCount") + // _numElements = Convert.ToInt32(property.Value); + //} + + //if (_numElements == -1) + // throw new Exception("Invalid ElementCount, please fix in *.omi file"); + + //create output exchange item (so that this component can be linked to others) + Quantity quantity = new Quantity(); + Oatc.OpenMI.Sdk.Backbone.Unit unit = new Oatc.OpenMI.Sdk.Backbone.Unit(); + Dimension dimension = new Dimension(); + ElementSet elementset = new ElementSet(); + OutputExchangeItem outputexchangeitem = new OutputExchangeItem(); + + quantity.ID = "Input Generator"; + quantity.Description = "Supplies random numbers as input values"; + quantity.ValueType = global::OpenMI.Standard.ValueType.Scalar; + unit.ID = "any units"; + + quantity.Unit = unit; + quantity.Dimension = dimension; + elementset.ID = "any elementset"; + elementset.Description = "AllSites"; + + elementset.ElementType = ElementType.IDBased; + + string beginDateTimeString = "1/1/1900 12:00:00 AM"; + string endDateTimeString = "1/1/2500 12:00:00 AM"; + + DateTime beginDateTime = Convert.ToDateTime(beginDateTimeString); + DateTime endDateTime = Convert.ToDateTime(endDateTimeString); + _earliestInputTime = CalendarConverter.Gregorian2ModifiedJulian(beginDateTime); + _latestInputTime = CalendarConverter.Gregorian2ModifiedJulian(endDateTime); + + + outputexchangeitem.Quantity = quantity; + outputexchangeitem.ElementSet = elementset; + if (outputexchangeitem != null) { _outputExchangeItems.Add(outputexchangeitem); } + + } + + public int InputExchangeItemCount + { + get { return _inputExchangeItems.Count; } + } + + public string ModelDescription + { + get { return "RandomInputGenerator"; } + } + + public string ModelID + { + get { return "RandomInputGenerator"; } + } + + public int OutputExchangeItemCount + { + get { return _outputExchangeItems.Count; } + } + + public void Prepare() + { + + } + + public void RemoveLink(string linkID) + { + _links.Remove(linkID); + } + + public ITimeSpan TimeHorizon + { + get { return new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(_earliestInputTime), new TimeStamp(_latestInputTime)); } + } + + public string Validate() + { + return "Validate is not implemented"; + } + + #endregion + + #region IPublisher Members + + public EventType GetPublishedEventType(int providedEventTypeIndex) + { + return EventType.TimeStepProgres; + } + + public int GetPublishedEventTypeCount() + { + return InputExchangeItemCount; + } + + public void SendEvent(IEvent Event) + { + } + + public void Subscribe(IListener listener, EventType eventType) + { + } + + public void UnSubscribe(IListener listener, EventType eventType) + { + } + + #endregion + + //#region IListener Members + + //public EventType GetAcceptedEventType(int acceptedEventTypeIndex) + //{ + // switch (acceptedEventTypeIndex) + // { + // case 0: + // return EventType.DataChanged; + // case 1: + // return EventType.TargetBeforeGetValuesCall; + // case 2: + // return EventType.SourceAfterGetValuesCall; + // case 3: + // return EventType.TargetBeforeGetValuesCall; + // case 4: + // return EventType.TargetAfterGetValuesReturn; + // case 5: + // return EventType.Informative; + // default: + // throw new Exception("Iligal index in GetPublishedEventType()"); + // } + //} + + //public int GetAcceptedEventTypeCount() + //{ + // return 6; + //} + + //public void OnEvent(IEvent anEvent) + //{ + // if (anEvent.Type == EventType.TargetBeforeGetValuesCall) + // { + // //set quantity and element set + // _quantity = anEvent.Sender.GetInputExchangeItem(0).Quantity.Description; + // _elementset = anEvent.Sender.GetInputExchangeItem(0).ElementSet.ID; + // } + //} + + //#endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/RandomInputGenerator/Source/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/RandomInputGenerator/Source/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..554223b0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/RandomInputGenerator/Source/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("RandomInputGenerator")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("RandomInputGenerator")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("89a7c37c-4a70-48a8-8253-f4ec82fd6d35")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/RandomInputGenerator/Source/RandomInputGenerator.csproj b/Source/Plugins/Plugins.HydroModeler/Components/RandomInputGenerator/Source/RandomInputGenerator.csproj new file mode 100644 index 00000000..dad48adb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/RandomInputGenerator/Source/RandomInputGenerator.csproj @@ -0,0 +1,113 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {94DF6D80-6740-4DA6-A1E9-B7B6BDE1C3B2} + Library + Properties + RandomInputGenerator + RandomInputGenerator + v4.0 + 512 + + + + + 3.5 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/CNMethod.omi b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/CNMethod.omi new file mode 100644 index 00000000..60f6ef9a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/CNMethod.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/Config.xml b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/Config.xml new file mode 100644 index 00000000..f0d8ad41 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/Config.xml @@ -0,0 +1,64 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + .\SubWatershedCentroids.shp + 1 + + + Excess Rainfall + Excess Rainfall + + + Length + 1 + + + + cm + Centimeter + 1 + 0 + + Scalar + + + + + SmithBranch + Smith Branch Watershed, Columbia SC + 1 + .\SubWatershedCentroids.shp + + + Rainfall + Rainfall Event + + + 1 + Length + + + + in + inches + 1 + 0 + + Scalar + + + + + 08/20/2009 00:00:00 AM + 08/20/2009 12:00:00 PM + 120 + + + Curve Number infiltration + Calculates the Excess Rainfall that results from rainfall + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.dbf b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.dbf new file mode 100644 index 00000000..a57a6418 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.prj b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.prj new file mode 100644 index 00000000..f7f2e098 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.sbn b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.sbn new file mode 100644 index 00000000..fca5a912 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.sbx b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.sbx new file mode 100644 index 00000000..bb5ca171 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.shp b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.shp new file mode 100644 index 00000000..6ecbecfa Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.shp.xml b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.shp.xml new file mode 100644 index 00000000..51204f05 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.shp.xml @@ -0,0 +1,3 @@ + + +2009031613082500TRUEFeatureToPoint Watershed_Sub_ALL "C:\Code\OpenMI.Models\Repo.Code\branch\branch02\data\RockyBranchData\Smith Branch Data\SubWatershedPoints.shp" CENTROID{7DABFEC4-F981-49BF-B070-DC844A8B517C}file://Local Area NetworkDataset copied.2009031613082500 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.shx b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.shx new file mode 100644 index 00000000..4a5806a6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/SubWatershedCentroids.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/Test.dbf b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/Test.dbf new file mode 100644 index 00000000..a41553d9 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/Test.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/Test.prj b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/Test.prj new file mode 100644 index 00000000..3a0cd51a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/Test.prj @@ -0,0 +1 @@ +PROJCS["Lambert_Conformal_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["standard_parallel_1",32.5],PARAMETER["standard_parallel_2",34.83333333333334],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],UNIT["unknown",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/Test.shp b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/Test.shp new file mode 100644 index 00000000..1045f27e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/Test.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/Test.shx b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/Test.shx new file mode 100644 index 00000000..416896c0 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Data/Test.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/SCSAbstractionMethod.sln b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/SCSAbstractionMethod.sln new file mode 100644 index 00000000..a8e39e41 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/SCSAbstractionMethod.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SCSAbstractionMethod", "Source\SCSAbstractionMethod.csproj", "{4F93F5FA-C161-4FA8-B313-DE2E51418EF1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SCSMethodTest", "Test\SCSMethodTest.csproj", "{5B627A11-AB7A-429C-9329-DF936D84D3FE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4F93F5FA-C161-4FA8-B313-DE2E51418EF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F93F5FA-C161-4FA8-B313-DE2E51418EF1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4F93F5FA-C161-4FA8-B313-DE2E51418EF1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F93F5FA-C161-4FA8-B313-DE2E51418EF1}.Release|Any CPU.Build.0 = Release|Any CPU + {5B627A11-AB7A-429C-9329-DF936D84D3FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B627A11-AB7A-429C-9329-DF936D84D3FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B627A11-AB7A-429C-9329-DF936D84D3FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B627A11-AB7A-429C-9329-DF936D84D3FE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/CNMethod.omi b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/CNMethod.omi new file mode 100644 index 00000000..c789eeb9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/CNMethod.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/Config.xml b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/Config.xml new file mode 100644 index 00000000..97541690 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/Config.xml @@ -0,0 +1,64 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + C:\_Code\Dev.CSharp\OpenMI_Test\branches\Tony 01\Components\CurveNumberMethod\data\Test.shp + 1 + + + Excess Rainfall + Excess Rainfall + + + Length + 1 + + + + cm + Centimeter + 1 + 0 + + Scalar + + + + + SmithBranch + Smith Branch Watershed, Columbia SC + 1 + C:\_Code\Dev.CSharp\OpenMI_Test\branches\Tony 01\Components\CurveNumberMethod\data\Test.shp + + + Rainfall + Rainfall Event + + + 1 + Length + + + + in + inches + 1 + 0 + + Scalar + + + + + 08/20/2009 00:00:00 AM + 08/20/2009 12:00:00 PM + 120 + + + Curve Number infiltration + Calculates the Excess Rainfall that results from rainfall + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..a34e8933 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SCSMethod")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("SCSMethod")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e32de4b0-c90d-46f1-afb8-35ce1aa55cb1")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/SCSAbstractionMethod.cs b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/SCSAbstractionMethod.cs new file mode 100644 index 00000000..8340ba46 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/SCSAbstractionMethod.cs @@ -0,0 +1,317 @@ +#region MetaData +//----- Component Description ----- +//This component computes watershed infiltration, by using the SCS Curve Numer Abstraction Procedure. + +//----- Input Files ----- +// This component requires 2 input files, a config.xml file and an elementset.shp that is referenced within +//the configuration file. All input parameters must be included within one shapefile. Each row of the +//attribute table represents a single sub-catchment and must contain the following columns. +// +// Watershed = Watershed ID number +// CN = Weighted Curve Number of watershed + + +//----- Additional Notes ----- +//This model outputs the excess precipitation for each watershed element defined within the element set +//shapefile, resulting from a given rainfall event + +#endregion +using System; +using System.Collections.Generic; +using System.Text; +using SharpMap.Layers; +using SharpMap.Data; +using System.Data; +using Oatc.OpenMI.Sdk.Backbone; +using SharpMap.Data.Providers; +using System.Xml; +using System.Diagnostics; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using OpenMI.Standard; +using System.Collections; + +namespace edu.SC.Models.Infiltration +{ + public class SCSAbstractionMethod : SMW.Wrapper + { + + //stores model element properties + public DataTable elementValues = new DataTable(); + System.Collections.ArrayList in_vals = new System.Collections.ArrayList(); + System.Collections.ArrayList out_vals = new System.Collections.ArrayList(); + System.Collections.ArrayList times = new System.Collections.ArrayList(); + public string input_quantity; + public string output_quantity; + public string input_elementset; + public string output_elementset; + private int _featureCount; + double[] PeArray_last; + System.IO.StreamWriter writer; + string _outDir = null; + + public override void Finish() + { + + //intialize streamwriter to write output data. + if (_outDir != null) + { + try + { writer = new System.IO.StreamWriter(_outDir + "/SCSAbstraction_output.csv"); } + catch (SystemException e) { + throw new Exception("The Cn Component was unable to create the desired output file. "+ + "This is possibly due to an invalid \'OutDir\' field supplied in "+ + "the *.omi file", e);} + } + else + { + try { writer = new System.IO.StreamWriter("../SCSAbstraction_output.csv"); } + catch (SystemException e) {throw new Exception(" The Cn component failed in writing it output file to path "+ + System.IO.Directory.GetCurrentDirectory() + ". This may be due to "+ + "lack of user permissions.",e); } + } + + //Write output data + + writer.WriteLine("Precip In"); + writer.Write("Date, Time, "); + + for (int i = 0; i <= _featureCount-1; i++) + { + writer.Write("element " + (i + 1).ToString() + ","); + } + writer.Write("\n"); + + + for (int i = 0; i <= times.Count - 1; i++) + { + writer.Write(times[i].ToString().Split(' ')[0] + + "," + times[i].ToString().Split(' ')[1] + ","); + + for (int j = 0; j <= _featureCount - 1; j++) + { + writer.Write(in_vals[_featureCount*i + j] +","); + } + writer.Write("\n"); + + + } + + writer.WriteLine("\n\n Excess Precip Out"); + writer.Write("Date, Time,"); + for (int i = 0; i <= _featureCount - 1; i++) + { + writer.Write("element " + (i + 1).ToString() + ","); + } + writer.Write("\n"); + + for (int i = 0; i <= times.Count - 1; i++) + { + writer.Write(times[i].ToString().Split(' ')[0] + + "," + times[i].ToString().Split(' ')[1] + ","); + + for (int j = 0; j <= _featureCount - 1; j++) + { + writer.Write(out_vals[_featureCount * i + j] + ","); + } + writer.Write("\n"); + } + + writer.Close(); + + } + + public override void Initialize(System.Collections.Hashtable properties) + { + string configFile = null; + + //set the config path and output directory from the *.omi file. + foreach (DictionaryEntry p in properties) + { + if(p.Key.ToString() == "ConfigFile") + configFile = (string)properties["ConfigFile"]; + else if (p.Key.ToString() == "OutDir") + _outDir = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), (string)properties["OutDir"]); + } + + + + //lookup model's configuration file to determine interface properties + SetVariablesFromConfigFile(configFile); + SetValuesTableFields(); + + //setup elementValues DataTable to store element attributes + elementValues.Columns.Add("Watershed"); + elementValues.Columns.Add("CurveNumber"); + elementValues.Columns.Add("cumInfil"); + elementValues.Columns.Add("CumPrecip",typeof(double)); + elementValues.Columns.Add("HyetoVal", typeof(double)); + + + //get input exchange item attributes + int num_inputs = this.GetInputExchangeItemCount(); + InputExchangeItem input = this.GetInputExchangeItem(num_inputs - 1); + input_elementset = input.ElementSet.ID; + input_quantity = input.Quantity.ID; + + //get output exchange item attributes + int num_outputs = this.GetOutputExchangeItemCount(); + OutputExchangeItem output = this.GetOutputExchangeItem(num_outputs - 1); + output_elementset = output.ElementSet.ID; + output_quantity = output.Quantity.ID; + + + // Get shapefile path from Config file + XmlDocument doc = new XmlDocument(); + doc.Load(configFile); + XmlElement root = doc.DocumentElement; + XmlNode elementSet = root.SelectSingleNode("//InputExchangeItem//ElementSet"); + string shapefilePath = elementSet["ShapefilePath"].InnerText; + + + //open the input shapefile + VectorLayer myLayer = new VectorLayer("elements_layer"); //this uses the free SharpMap API for reading a shapefile + myLayer.DataSource = new ShapeFile(shapefilePath); + myLayer.DataSource.Open(); + + //get the number of features in the shapefile + _featureCount = myLayer.DataSource.GetFeatureCount(); + + //add feature attributes from shapefile to datatable + for (uint i = 0; i < myLayer.DataSource.GetFeatureCount(); ++i) + { + FeatureDataRow feat = myLayer.DataSource.GetFeature(i); + DataTable att = feat.Table; + + object Watershed = feat.ItemArray[feat.Table.Columns.IndexOf("Watershed")]; + object CN = feat.ItemArray[feat.Table.Columns.IndexOf("CN")]; + elementValues.LoadDataRow(new object[] { Watershed, CN }, true); + } + + //initialize PeArray_last to store the Pe from the previous timestep + PeArray_last = new double[elementValues.Rows.Count]; + for (int k = 0; k <= PeArray_last.Length - 1; k++) + PeArray_last[k] = 0.0; + + ////intialize streamwriter to write output data. This is used in the Finish() method + //writer = new System.IO.StreamWriter("../SCSAbstraction_output.csv"); + } + + public override bool PerformTimeStep() + { + + // --- request precipitation on a 5min (300 sec) interval ---- + ScalarSet precip = (ScalarSet)this.GetValues(input_quantity, input_elementset); + + if (precip.Count != 0) + { + //load the precip values into Cum-Precip column of "elementValues" + for (int k = 0; k <= precip.Count - 1; k++) + { + in_vals.Add(precip.data[k]); + + //calculate the cumulative precipitation + try + { + elementValues.Rows[k]["CumPrecip"] = Convert.ToDouble(elementValues.Rows[k]["CumPrecip"]) + Math.Round(precip.data[k],5); + } + catch (System.InvalidCastException) + { elementValues.Rows[k]["CumPrecip"] = precip.data[k]; } + + } + + double[] PeArray = new double[elementValues.Rows.Count]; + + // --- loop through all elements + for (int i = 0; i <= elementValues.Rows.Count - 1; i++) + { + //get element attributes + object[] itemArray = elementValues.Rows[i].ItemArray; + double CN = Math.Round(Convert.ToDouble(itemArray[elementValues.Columns.IndexOf("CurveNumber")]),0); + double cumInfil = 0; + + if (!String.IsNullOrEmpty(Convert.ToString(itemArray[elementValues.Columns.IndexOf("cumInfil")]))) + { + cumInfil = Convert.ToDouble(itemArray[elementValues.Columns.IndexOf("cumInfil")]); + } + + + //get precip + double P = Convert.ToDouble(elementValues.Rows[i]["CumPrecip"]); + //set excess precip to zero (initially) + double Pe = 0.0; + //set continuing abstraction to zero (initially) + double Fa = 0; + + //calculate S based on element's CN attribute + double S = (1000 / CN) - 10; + //calculate initial abstraction + double Ia = Math.Round(0.2 * S,2); + + // --- Calculate Pe and cumInfil + if (P >= Ia) + { + //Calculate Continuing abstractions + Fa = (S * (P - Ia)) / (P - Ia + S); + //Calculate Excess Precipitation + Pe = P - Ia - Fa; + //cumInfil = Fa; + cumInfil = Math.Round(Fa, 5); + } + else + { + //All rainfall will infiltrate + cumInfil = Math.Round(P, 5); + } + + //store Pe + if (Pe >= 0) + PeArray[i] = Pe; + else + PeArray[i] = 0; + + // --- update cummulative infiltration in elementValues DT + itemArray[elementValues.Columns.IndexOf("CumInfil")] = cumInfil; + elementValues.Rows[i].ItemArray = itemArray; + } + + + // --- Calculate the Excess Hyetograph ---- + + DateTime timecheck = CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)this.GetCurrentTime()).ModifiedJulianDay); + + double[] Hyeto = new double[PeArray.Length]; + for (int i = 0; i <= PeArray.Length - 1; i++) + { + //calc hyeto value + Hyeto[i] = PeArray[i] - PeArray_last[i]; + + //if hyeto value is negative, then set it to zero + if (Hyeto[i] < 0.0) + Hyeto[i] = 0.0; + + //store this value for the next timestep within PeArray_last + PeArray_last[i] = PeArray[i]; + + //set this value within the datatable + elementValues.Rows[i]["HyetoVal"] = Hyeto[i]; + + //store this value so that it can be written to file within the Finish() method + out_vals.Add(Hyeto[i]); + } + + //Store the current time, for when writing output values within the Finish() method + TimeStamp t = (TimeStamp)this.GetCurrentTime(); + DateTime T = CalendarConverter.ModifiedJulian2Gregorian(t.ModifiedJulianDay); + times.Add(T); + + // --- set the excess precip values + this.SetValues(output_quantity, output_elementset, new ScalarSet(Hyeto)); + + } + + //Advance to the next timestep + AdvanceTime(); + return true; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/SCSAbstractionMethod.csproj b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/SCSAbstractionMethod.csproj new file mode 100644 index 00000000..4d814ee4 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/SCSAbstractionMethod.csproj @@ -0,0 +1,121 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {4F93F5FA-C161-4FA8-B313-DE2E51418EF1} + Library + Properties + SCSMethod + SCSMethod + + + + + 3.5 + v4.0 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Buffer.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + False + + + False + ..\..\..\Utilities\SharpMap\SharpMap.dll + False + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + False + + + + + + + + + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/SCSAbstractionMethod_LC.cs b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/SCSAbstractionMethod_LC.cs new file mode 100644 index 00000000..2f88428d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Source/SCSAbstractionMethod_LC.cs @@ -0,0 +1,25 @@ +//--- System Assemblies ---- +using System; +using System.Collections.Generic; +using System.Text; +///--- OpenMI Assemblies ---- +using Oatc.OpenMI.Sdk.Wrapper; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard; + + + +namespace edu.SC.Models.Infiltration +{ + public class SCSAbstractionMethod_LC : LinkableEngine + { + public SCSAbstractionMethod_LC() + { + _engineApiAccess = new SCSAbstractionMethod(); + } + protected override void SetEngineApiAccess() + { + _engineApiAccess = new SCSAbstractionMethod(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..766b2da1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Test/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SCSMethodTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("SCSMethodTest")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("07fe45d6-7dc5-47e3-8918-3292aae5b23a")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Test/SCSAbstractionMethodTest.cs b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Test/SCSAbstractionMethodTest.cs new file mode 100644 index 00000000..6b68d4b4 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Test/SCSAbstractionMethodTest.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; +using System.Text; +using NUnit.Framework; +using edu.SC.Models.Infiltration; +using Oatc.OpenMI.Sdk.Backbone; +using SMW; +using OpenMI.Standard; + +namespace CurveNumberTEST +{ + [TestFixture] + public class SCSAbstractionMethodTest + { + + [Test] + public void Initialize() + { + SCSAbstractionMethod CN = new SCSAbstractionMethod(); + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "./configTest.xml"); + args.Add("OutDir", "../../"); + CN.Initialize(args); + + CN.Finish(); + + } + + [Test] + public void PTS() + { + + + SCSAbstractionMethod CN = new SCSAbstractionMethod(); + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "./configTest.xml"); + CN.Initialize(args); + + //Precipitation values from Precip Reader Component [based on 30 Min rainfall] + double[,] p = new double[8, 1] {{0.00}, + {0.20}, + {0.70}, + {0.37}, + {1.04}, + {2.34}, + {0.64}, + {0.07}}; + + + for (int j = 0; j <= p.GetLength(0)-1 ; j++) + { + Console.WriteLine("TimeStep " + Convert.ToString(j+1)); + double[] precipArray = new double[p.GetLength(1)]; + for (int k = 0; k <= p.GetLength(1) - 1; k++) + { + //create double array + precipArray[k] = p[j,k]; + + } + IValueSet Precip = new ScalarSet(precipArray); + CN.SetValues("Rainfall", "SmithBranch", Precip); + CN.PerformTimeStep(); + ScalarSet Excess = (ScalarSet)CN.GetValues("Excess Rainfall", "Smith Branch"); + + for (int i = 0; i <= Excess.Count - 1; i++) + { + Console.WriteLine("Watershed: " + i.ToString() + "\t Excess Rainfall: " + Excess.data[i].ToString()); + } + + } + + CN.Finish(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Test/SCSMethodTest.csproj b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Test/SCSMethodTest.csproj new file mode 100644 index 00000000..759053aa --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSAbstractionMethod/Test/SCSMethodTest.csproj @@ -0,0 +1,82 @@ + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {5B627A11-AB7A-429C-9329-DF936D84D3FE} + Library + Properties + CurveNumberTEST + CurveNumberTEST + + + + + 2.0 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Utilities\NUnit\nunit.framework.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Backbone.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Buffer.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + False + ..\..\..\Utilities\edu.SC.SMW\bin\Debug\SMW.dll + + + + + + + + + + + + {4F93F5FA-C161-4FA8-B313-DE2E51418EF1} + SCSAbstractionMethod + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/Config.xml b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/Config.xml new file mode 100644 index 00000000..6af8ea2c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/Config.xml @@ -0,0 +1,68 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + .\SubWatersheds.shp + 1 + + + Runoff + Runoff + + + Length + 3 + + + Time + -1 + + + + cfs + cubic feet per second + 1 + 0 + + Scalar + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + 1 + .\SubWatersheds.shp + + + Excess Rainfall + Rainfall Event + + + 1 + Length + + + + in + inches + 1 + 0 + + Scalar + + + + + 08/20/2009 21:40:00 + 08/21/2009 10:00:00 + 300 + + + SCS UnitHydrograph + Calculates the streamflow at watershed outlet + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SCSUnitHydrograph.omi b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SCSUnitHydrograph.omi new file mode 100644 index 00000000..0f024cc6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SCSUnitHydrograph.omi @@ -0,0 +1,6 @@ + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.dbf b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.dbf new file mode 100644 index 00000000..e293b7f0 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.prj b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.prj new file mode 100644 index 00000000..f7f2e098 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.sbn b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.sbn new file mode 100644 index 00000000..4bb5867c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.sbx b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.sbx new file mode 100644 index 00000000..580fd3f4 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.shp b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.shp new file mode 100644 index 00000000..6995328f Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.shx b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.shx new file mode 100644 index 00000000..87f87011 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.dbf b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.dbf new file mode 100644 index 00000000..5b24c19d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.prj b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.prj new file mode 100644 index 00000000..3a0cd51a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.prj @@ -0,0 +1 @@ +PROJCS["Lambert_Conformal_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["standard_parallel_1",32.5],PARAMETER["standard_parallel_2",34.83333333333334],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],UNIT["unknown",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.sbn b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.sbn new file mode 100644 index 00000000..c5b6c8cc Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.sbx b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.sbx new file mode 100644 index 00000000..27e2241c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.shp b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.shp new file mode 100644 index 00000000..1a962d7c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.shx b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.shx new file mode 100644 index 00000000..be31607b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Data/SubWatersheds_Test.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/SCSUnitHydrograph.sln b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/SCSUnitHydrograph.sln new file mode 100644 index 00000000..dc957227 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/SCSUnitHydrograph.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SCSUnitHydrograph", "Source\SCSUnitHydrograph.csproj", "{0C53478E-B10B-4D30-A416-0D415940B713}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TEST.Routing.NRCS_UnitHydrograph", "Test\TEST.Routing.NRCS_UnitHydrograph.csproj", "{21B813FC-47F1-43B4-86A7-94EC342C6724}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0C53478E-B10B-4D30-A416-0D415940B713}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0C53478E-B10B-4D30-A416-0D415940B713}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C53478E-B10B-4D30-A416-0D415940B713}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0C53478E-B10B-4D30-A416-0D415940B713}.Release|Any CPU.Build.0 = Release|Any CPU + {21B813FC-47F1-43B4-86A7-94EC342C6724}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {21B813FC-47F1-43B4-86A7-94EC342C6724}.Debug|Any CPU.Build.0 = Debug|Any CPU + {21B813FC-47F1-43B4-86A7-94EC342C6724}.Release|Any CPU.ActiveCfg = Release|Any CPU + {21B813FC-47F1-43B4-86A7-94EC342C6724}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Source/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Source/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..a851dc02 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Source/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Routing.NRCS_UnitHydrograph")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("Routing.NRCS_UnitHydrograph")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("58a2ea9d-fdac-4606-864c-07c2765efd2e")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Source/SCSUnitHydrograph.cs b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Source/SCSUnitHydrograph.cs new file mode 100644 index 00000000..7aa46239 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Source/SCSUnitHydrograph.cs @@ -0,0 +1,389 @@ +#region MetaData +//----- Component Description ----- +//This component computes watershed runoff, by using the SCS UnitHydrograph Procedure. + +//----- Input Files ----- +// This component requires 2 input files, a config.xml file and an elementset.shp that is referenced within +//the configuration file. All input parameters must be included within one shapefile. Each row of the +//attribute table represents a single sub-catchment and must contain the following columns. +// +// Tc = Time of concentration of the watershed [min] +// Area = Watershed area [mi^2] +// Watershed = Watershed ID number + +//----- Additional Notes ----- +//This model performs computations on the current timestep, given input values. As a result, the output values +//are also applied to the current time step. By convention, the Unit Hydrograph outflow is applied either to +//the beginning or end of the timestep. This model applies the result to the end of the timestep, i.e. if at +//time1 hourly precipitation is known, then hourly Pe is supplied as input at time1. The output of this component +// is runoff at time1 as opposed to time0 or time1/2. + +#endregion + +using System; +using System.Collections; +using System.Data; +using System.Xml; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using SharpMap.Data; +using SharpMap.Data.Providers; +using SharpMap.Layers; +using SMW; + + + +namespace edu.sc.Models.Routing +{ + + public class SCSUnitHydrograph: Wrapper + { + + + //stores the summation hydrographs for each watershed + DataTable SummationHydrograph = new DataTable(); + //stores the shapefile properties + DataTable elementValues = new DataTable(); + //stores a series of datatables containing Sub Watershed Convolutions + DataSet Convolution = new DataSet("Convolution"); + //stores the Start Time that ois defined in the config file + DateTime _SimulationStartTime; + + string _inputElementSet; + string _inputQuantity; + string _outputElementSet; + string _outputQuantity; + + double[] UH_Times; + double[] UH_Ordinates; + double[][] _uh; + double[][] _pe; + + //Dictionary object to store outputs + System.Collections.Generic.Dictionary output + = new System.Collections.Generic.Dictionary(); + + //StreamWriter Object to store output + System.IO.StreamWriter sw; + string _outDir = null; + + /// + /// This method is being used to write the calculated values to file, for use outside of the OpenMI environment. + /// + public override void Finish() + { + //intialize streamwriter to write output data. + if (_outDir != null) + { + try + { sw = new System.IO.StreamWriter(_outDir + "/SCSUnitHydrograph_output.csv"); } + catch (SystemException e) + { + throw new Exception("The UH Component was unable to create the desired output file. " + + "This is possibly due to an invalid \'OutDir\' field supplied in " + + "the *.omi file", e); + } + } + else + { + try { sw = new System.IO.StreamWriter("../SCSUnitHydrograph_output.csv"); } + catch (SystemException e) + { + throw new Exception(" The UH component failed in writing it output file to path " + + System.IO.Directory.GetCurrentDirectory() + ". This may be due to " + + "lack of user permissions.", e); + } + } + + + //Write output data + + sw.Write("Date, Time, "); + + OpenMI.Standard.ITimeSpan ts = this.GetTimeHorizon(); + TimeStamp t = (TimeStamp)ts.Start; + DateTime dt = CalendarConverter.ModifiedJulian2Gregorian((double)t.ModifiedJulianDay); + + for (int i = 0; i <= output[dt].Count - 1; i++) + { + sw.Write("element " + (i + 1).ToString() + ","); + } + sw.Write("\n"); + + foreach (System.Collections.Generic.KeyValuePair kvp in output) + { + sw.Write(String.Format("{0:MM/dd/yyyy}",kvp.Key) + ", " + + String.Format("{0:hh:mm tt}",kvp.Key) + "," ); + for (int i = 0; i <= kvp.Value.Count - 1; i++) + { + sw.Write(kvp.Value[i].ToString() + ","); + } + sw.Write("\n"); + } + + sw.Close(); + } + + public override void Initialize(System.Collections.Hashtable properties) + { + string configFile = null; + + //set the config path and output directory from the *.omi file. + foreach (DictionaryEntry p in properties) + { + if (p.Key.ToString() == "ConfigFile") + configFile = (string)properties["ConfigFile"]; + else if (p.Key.ToString() == "OutDir") + _outDir = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), (string)properties["OutDir"]); + } + + // --- lookup model's configuration file to determine interface properties + SetVariablesFromConfigFile(configFile); + SetValuesTableFields(); + + // Get shapefile path from Config file + XmlDocument doc = new XmlDocument(); + doc.Load(configFile); + XmlElement root = doc.DocumentElement; + XmlNode elementSet = root.SelectSingleNode("//InputExchangeItem//ElementSet"); + string shapefilePath = elementSet["ShapefilePath"].InnerText; + + //Get exchange item properties + InputExchangeItem input = this.GetInputExchangeItem(0); + OutputExchangeItem output = this.GetOutputExchangeItem(0); + _inputElementSet = input.ElementSet.ID; + _inputQuantity = input.Quantity.ID; + _outputElementSet = output.ElementSet.ID; + _outputQuantity = output.Quantity.ID; + + // --- setup elementValues DataTable to store element attributes + elementValues.Columns.Add("ID"); + elementValues.Columns.Add("Tc"); + elementValues.Columns.Add("Area"); + + //Get time horizon properties + XmlNode TimeHorizon = root.SelectSingleNode("//TimeHorizon"); + _SimulationStartTime = Convert.ToDateTime(TimeHorizon["StartDateTime"].InnerText); + double timestep_sec = Convert.ToDouble (TimeHorizon["TimeStepInSeconds"].InnerText); + + //Open elementset shapefile + VectorLayer myLayer = new VectorLayer("elements_layer"); + myLayer.DataSource = new ShapeFile(shapefilePath); + myLayer.DataSource.Open(); + + + #region Create Unit Hydrographs + + + //Define the Unit Hydrograph dimensionless time ordinates + UH_Times = new double[33] {0.0,0.1,0.2,0.3,0.4, + 0.5,0.6,0.7,0.8,0.9, + 1.0,1.1,1.2,1.3,1.4, + 1.5,1.6,1.7,1.8,1.9, + 2.0,2.2,2.4,2.6,2.8, + 3.0,3.2,3.4,3.6,3.8, + 4.0,4.5,5.0}; + //Define the Unit Hydrograph dimensionless flow ordinates + UH_Ordinates = new double[33]{0.0,0.03,0.1,0.19,0.31, + 0.47,0.66,0.82,0.93,0.99, + 1.0,0.99,0.93,0.86,0.78, + 0.68,0.56,0.46,0.39,0.33, + 0.28,0.207,0.147,0.107,0.077, + 0.055,0.04,0.029,0.021,0.015, + 0.011,0.005,0.0}; + + + + _uh = new double[myLayer.DataSource.GetFeatureCount()][]; + _pe = new double[_uh.Length][]; + + //add feature attributes from shapefile to datatable + for (uint i = 0; i < myLayer.DataSource.GetFeatureCount(); ++i) + { + FeatureDataRow feat = myLayer.DataSource.GetFeature(i); + DataTable att = feat.Table; + + //Get features from the shapefile's datatable + object ID = feat.ItemArray[feat.Table.Columns.IndexOf("Watershed")]; + object TC = Convert.ToDouble(feat.ItemArray[feat.Table.Columns.IndexOf("Tc")]); + object AREA = Convert.ToDouble(feat.ItemArray[feat.Table.Columns.IndexOf("Area")]); + + + //--- BUILD N-MIN SYNTHETIC UNIT HYDROGRAPHS following the SCS procedure ---- + double tc_min = Convert.ToDouble(TC) ; + double area = Convert.ToDouble(AREA); + double timestep_min = this.GetTimeStep()/60; + + double L = 0.6 * tc_min; + + double Tp = timestep_min / 2 + L; + + //Calculte Qp for 1 inch of rainfall + double Qp = (area * 484) / (Tp/60); + + ArrayList Q = new ArrayList(); + + //Tp = CalendarConverter.Gregorian2ModifiedJulian(_SimulationStartTime.AddMinutes(Tp)); + + double currTime = timestep_min; + + double timeRatio = currTime / Tp; + do + { + double UH_value = GetUH_Ordinate(timeRatio); + + double scaledUH = UH_value * Qp; + Q.Add(scaledUH); + + currTime += timestep_min; + + timeRatio = currTime / Tp; + } while (timeRatio <= 5 || Q.Count < 10); + + //initialize _uh and _pe + _uh[i] = new double[Q.Count]; + _pe[i] = new double[Q.Count]; + + for (int j = 0; j <= Q.Count - 1; j++) + { + _uh[i][j] = Convert.ToDouble(Q[j]); + _pe[i][j] = 0.0; + } + } + #endregion + + } + + /// + /// Returns the unit hydrograph q/Qp ratio that corresponds to the given timeRatio. This + /// is determined by linearly interpolating between the known UH time ratios. + /// + /// this value is equivelent to T/Tp; where T = time and Tp = time to peak + /// this returns the UH dimensionless value equal to Q/Qp; where Q = flow Rate, and Qp = peak flow rate + private double GetUH_Ordinate(double timeRatio) + { + bool IsBound = false; + int i = 0; + double t1, t2, q1, q2; + double Q = 0; + + //Check that timeRatio is valid + if (timeRatio < 0.0 || timeRatio > 5.0) + return 0.0; + + //Find the correct Q/Qp ratio for the given timeRatio + while (!IsBound) + { + t1 = UH_Times[i]; + t2 = UH_Times[i + 1]; + + //Find lower bound + if (t1 <= timeRatio) + { + //Find upper bound + if (t2 >= timeRatio) + { + q1 = UH_Ordinates[i]; + q2 = UH_Ordinates[i + 1]; + + //Perform Linear Interpolation + Q = (q2 - q1) / (t2 - t1) * (timeRatio - t1) + q1; + + break; + } + } + i++; + + if (i == 32) + { + Q = 0; + break; + } + } + + return Q; + } + + public override bool PerformTimeStep() + { + //request the excess precipitation an infiltration component + ScalarSet excess = (ScalarSet)this.GetValues(_inputQuantity, _inputElementSet); + + double[] Outflow = new double[excess.Count]; + + //--- CALCULATE BURST EXCESS ---- + for (int i = 0; i <= excess.Count-1; i++) + { + //Push the burst value into the Pe array + Push(_pe[i],excess.data[i]); + + //Calculate the resulting Outflow at this timestep + Outflow[i] = DotProduct(_uh[i], _pe[i]); + + } + + //store the Outflow, to write out in Finish() + ArrayList outputVals = new ArrayList(); + for (int k = 0; k <= Outflow.Length - 1; k++) + { + outputVals.Add(Outflow[k]); + } + + //add the output values and corresponding times to the output arraylist. This will be used in Finish() + DateTime Currenttime = CalendarConverter.ModifiedJulian2Gregorian( + ((TimeStamp)this.GetCurrentTime()).ModifiedJulianDay); + output.Add(Currenttime, outputVals); + + //Set the output values for the downstream component + this.SetValues(_outputQuantity, _outputElementSet, new ScalarSet(Outflow)); + + //advance time + AdvanceTime(); + + return true; + } + + /// + /// This method puts the input "burst excess" value at the top of an array, and shifts all others down. Since the array has + /// a fixed size, the last entry will be removed. + /// + /// an array with a size equal to the length of the Unit Hydrograph + /// the input "burst excess" that will be placed at the top of the array + public void Push(double[] arr, double val) + { + int size = arr.Length; + for (int i = 0; i <= size - 2; i++) + { + //move all values of the array down one indice + arr[size - 1 - i] = arr[size - 2 - i]; + } + //set the input value as the first element in the array + arr[0] = (double)val; + } + + /// + /// This method performs the dot product between two arrays of the same size. This method is used to calculate the convoluted + /// runoff that results from the "burst excess" + /// + /// an array of size 'X' (the unit hydrograph array) + /// an array of size 'X' (the burst excess array) + /// the dot product of the two arrays + public double DotProduct(double[] a, double[] b) + { + double c = 0.0; + + //check that the arrays are the same length + if (a.Length == b.Length) + { + //perform the dot product + for (int i = 0; i <= a.Length - 1; i++) + c += a[i] * b[i]; + } + else + throw new Exception("In order to perform the Dot Product, matrix dimesions must agree"); + + return c; + } + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Source/SCSUnitHydrograph.csproj b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Source/SCSUnitHydrograph.csproj new file mode 100644 index 00000000..179768aa --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Source/SCSUnitHydrograph.csproj @@ -0,0 +1,125 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {0C53478E-B10B-4D30-A416-0D415940B713} + Library + Properties + SCSUnitHydrograph + SCSUnitHydrograph + + + + + 3.5 + false + v4.0 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + Client + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Buffer.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + False + + + False + ..\..\..\Utilities\SharpMap\SharpMap.dll + False + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + False + + + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + true + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + false + + + False + .NET Framework 3.5 SP1 + false + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Source/SCSUnitHydrograph_LC.cs b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Source/SCSUnitHydrograph_LC.cs new file mode 100644 index 00000000..3f0bcd82 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Source/SCSUnitHydrograph_LC.cs @@ -0,0 +1,24 @@ +//--- System Assemblies ---- +using System; +using System.Collections.Generic; +using System.Text; +///--- OpenMI Assemblies ---- +using Oatc.OpenMI.Sdk.Wrapper; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard; + + +namespace edu.sc.Models.Routing +{ + public class SCSUnitHydrograph_LC :LinkableEngine + { + public SCSUnitHydrograph_LC() + { + _engineApiAccess = new SCSUnitHydrograph(); + } + protected override void SetEngineApiAccess() + { + _engineApiAccess = new SCSUnitHydrograph(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..b5b85881 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Test/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("TEST.Routing.NRCS_UnitHydrograph")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("TEST.Routing.NRCS_UnitHydrograph")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("4c603359-9a52-4331-bc2a-f1f396ca8e65")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Test/SCSHydrographTest.cs b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Test/SCSHydrographTest.cs new file mode 100644 index 00000000..f3aa4af5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Test/SCSHydrographTest.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; +using System.Text; +using NUnit.Framework; +using edu.sc.Models.Routing; +using System.Collections; +using SMW; +using Oatc.OpenMI.Sdk.Wrapper; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace TEST.Routing.NRCS_UnitHydrograph +{ + [TestFixture] + public class SCSHydrographTest + { + + /// + /// This method test the initialize method of the component + /// + [Test] + public void Initialize() + { + SCSUnitHydrograph NRCS = new SCSUnitHydrograph(); + Hashtable arguments = new Hashtable(); + arguments.Add("ConfigFile", "./configTest.xml"); + NRCS.Initialize(arguments); + + } + + /// + /// This method tests the PerformTimeStep method of the component + /// + [Test] + public void PTS() + { + //intialize the component + SCSUnitHydrograph NRCS = new SCSUnitHydrograph(); + Hashtable arguments = new Hashtable(); + arguments.Add("ConfigFile", "./configTest.xml"); + NRCS.Initialize(arguments); + + //input incremental excess precipitation values + double[,] pe = new double[20,1] + { + {0.0},{0.0},{0.0},{0.056015},{0.11552}, + {0.0},{0.0},{0.0},{0.0},{0.0}, + {0.0},{0.0},{0.0},{0.057091},{0.0}, + {0.0},{0.0},{0.0},{0.0},{0.0} + }; + + for (int j = 0; j <= pe.GetLength(0) -1 ; j++) + { + Console.WriteLine("TimeStep " + Convert.ToString(j + 1)); + double[] peArray = new double[pe.GetLength(1)]; + for (int k = 0; k < 1 ; k++) + { + //create double array for the first element + peArray[k] = pe[j, k]; + + } + IValueSet Pe = new ScalarSet(peArray); + //set the values defined above into the datatable + NRCS.SetValues("Excess Rainfall", "Smith Branch", Pe); + + NRCS.PerformTimeStep(); + + ScalarSet NRCS_Excess = (ScalarSet)NRCS.GetValues("Runoff", "Smith Branch"); + + for (int i = 0; i <= NRCS_Excess.Count - 1; i++) + { + Console.WriteLine("Watershed: " + i.ToString() + "\t Runoff: " + NRCS_Excess.data[i].ToString()); + } + + } + NRCS.Finish(); + + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Test/TEST.Routing.NRCS_UnitHydrograph.csproj b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Test/TEST.Routing.NRCS_UnitHydrograph.csproj new file mode 100644 index 00000000..8cc157cb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SCSUnitHydrographMethod/Test/TEST.Routing.NRCS_UnitHydrograph.csproj @@ -0,0 +1,120 @@ + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {21B813FC-47F1-43B4-86A7-94EC342C6724} + Library + Properties + TEST.Routing.NRCS_UnitHydrograph + TEST.Routing.NRCS_UnitHydrograph + + + + + 2.0 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Utilities\NUnit\nunit.framework.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Backbone.dll + + + False + ..\..\..\Utilities\Oatc.OpenMI.Sdk\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + False + ..\..\..\Utilities\edu.SC.SMW\bin\Debug\SMW.dll + + + + + + + + + + + + False + .NET Framework Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + true + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + false + + + False + .NET Framework 3.5 SP1 + false + + + + + {0C53478E-B10B-4D30-A416-0D415940B713} + SCSUnitHydrograph + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent.sln b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent.sln new file mode 100644 index 00000000..506c718b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleComponent", "SampleComponent\SampleComponent.csproj", "{B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..92901b1a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SampleComponent")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("SampleComponent")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("cea9f5be-6aa7-498a-a96e-a27ea94b90ca")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/SampleComponent.csproj b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/SampleComponent.csproj new file mode 100644 index 00000000..82f2afb1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/SampleComponent.csproj @@ -0,0 +1,118 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {B2B76A23-9FF2-42B8-BDCC-14FA17958FD4} + Library + Properties + SampleComponent + SampleComponent + v4.0 + 512 + + + + + 3.5 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/data/config.xml b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/data/config.xml new file mode 100644 index 00000000..11ef8583 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/data/config.xml @@ -0,0 +1,72 @@ + + + + + + Sample_Output_Element_Set + This is a Sample Output + + 1 + + + Sample Quantity + Sample Quantity Description [L^3/T] + + + Length + 3 + + + Time + -1 + + + + Sample Unit + Sample Unit Description + 1 + 0 + + Scalar + + + + + Sample_Input_Element_Set + This is Sample Input + + 1 + + + Sample Quantity + Sample Quantity Description [L^3/T] + + + Length + 3 + + + Time + -1 + + + + Sample Unit + Sample Unit Description + 1 + 0 + + Scalar + + + + + 08/20/2009 21:40:00 + 08/21/2009 10:00:00 + 300 + + + Sample Component + This is a Sample Component to Help you Learn to use the SMW + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/data/sample.omi b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/data/sample.omi new file mode 100644 index 00000000..3799da3f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/data/sample.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/data/sample.opr b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/data/sample.opr new file mode 100644 index 00000000..7e4ea2d6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/data/sample.opr @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/source/SampleClass.cs b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/source/SampleClass.cs new file mode 100644 index 00000000..47a6a056 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/source/SampleClass.cs @@ -0,0 +1,181 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using SMW; +using System.Collections; +using Oatc.OpenMI.Sdk.Backbone; +using System.IO; + +//////////////////////////////////////////////// +// +// Original Author: Anthony Castronova, University of South Carolina, Columbia SC +// Created On: July 1st 2010 +// Version: 1.0.0 +// +// Component Name: Sample Component +// Inputs: None, shapefile optional +// Purpose: Provide a template for modelers wishing to implement the Simple Model Wrapper +// Methodology: Component generates random numbers. This is meant only to show how a modeler +// can carry out a computation using the SMW +// +// Addt'l Resources: +// Modification History: +// +//////////////////////////////////////////////// + +namespace SampleComponent +{ + public class SampleClass:SMW.Wrapper + { + + #region Global Variables + + //define global variables + List _randomNumbers; + List _seeds; + double _timestep; + string _input_elementset; + string _input_quantity; + string _output_elementset; + string _output_quantity; + Random _rndNum; + + #endregion + + public SampleClass() + { + _randomNumbers = new List(); + _seeds = new List(); + _timestep = 0; + _input_elementset = null; + _input_quantity = null; + _output_elementset = null; + _output_quantity = null; + _rndNum = new Random(); + } + + /// + /// This method is used to perform actions after model simulation has ended + /// + public override void Finish() + { + //Write output data + StreamWriter sw = new StreamWriter("../../SampleOutput.txt"); + sw.WriteLine("--- Sample Output --- "); + for (int i = 0; i <= (_randomNumbers.Count/3) - 1; i++) + { + sw.Write("Timestep: " + i.ToString() + " "); + sw.Write(_randomNumbers[i].ToString() + " "); + sw.Write(_randomNumbers[i+1].ToString() + " "); + sw.WriteLine(_randomNumbers[i+2].ToString() + " "); + } + + sw.Close(); + } + + /// + /// This method is used to perform actions prior to model simulation + /// + /// + public override void Initialize(System.Collections.Hashtable properties) + { + //Get config file path defined in sample.omi + string configFile = (string)properties["ConfigFile"]; + + //set OpenMI internal variables + this.SetVariablesFromConfigFile(configFile); + + // initialize a data structure to hold results + this.SetValuesTableFields(); + + //save the time step (defined within the config.xml) + _timestep = this.GetTimeStep(); + + //save input exchange item info + InputExchangeItem input = this.GetInputExchangeItem(0); + _input_elementset = input.ElementSet.ID; + _input_quantity = input.Quantity.ID; + + //save output exchange item info + OutputExchangeItem output = this.GetOutputExchangeItem(0); + _output_elementset = output.ElementSet.ID; + _output_quantity = output.Quantity.ID; + + //Note: this can region can be omitted if a shapefile is specified in config.xml + #region Manually Define Element Set + + //Get the input and output element sets from the SMW + ElementSet out_elem = (ElementSet)this.Outputs[0].ElementSet; + ElementSet in_elem = (ElementSet)this.Inputs[0].ElementSet; + + //Set some ElementSet properties + out_elem.ElementType = OpenMI.Standard.ElementType.XYPoint; + in_elem.ElementType = OpenMI.Standard.ElementType.XYPoint; + + //Create elements e1, e2 and e3 + Element e1 = new Element(); + Vertex v1 = new Vertex(1, 1, 0); + e1.AddVertex(v1); + + Element e2 = new Element(); + Vertex v2 = new Vertex(1, 5, 0); + e2.AddVertex(v2); + + Element e3 = new Element(); + Vertex v3 = new Vertex(5, 5, 0); + e2.AddVertex(v3); + + //add these elements to the input and output element sets + out_elem.AddElement(e1); + out_elem.AddElement(e2); + out_elem.AddElement(e3); + in_elem.AddElement(e1); + in_elem.AddElement(e2); + in_elem.AddElement(e3); + + + + #endregion + + + //Do some Calculations prior to simulation + for (int i = 0; i < in_elem.Elements.Length; i++) + _seeds.Add(_rndNum.Next()); + } + + public override bool PerformTimeStep() + { + //Get input values from another component + ScalarSet invals = (ScalarSet)this.GetValues(_input_quantity, _output_elementset); + double[] indata = invals.data; + + //create something to hold output + double[] outdata = new double[indata.Length]; + + //do some computation... + for (int i = 0; i < _seeds.Count; i++) + { + _seeds[i] += Convert.ToInt32(indata[i]); + + _rndNum = new Random(_seeds[i]); + double r_number = Convert.ToDouble(_rndNum.Next()); + + //save values locally + outdata[i] = r_number; + + //save the value for output + _randomNumbers.Add(r_number); + } + + //set output values for another component + this.SetValues(_output_quantity, _output_elementset, new ScalarSet(outdata)); + + //advance time by one time step + this.AdvanceTime(); + + return true; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/source/SampleLinkableComponent.cs b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/source/SampleLinkableComponent.cs new file mode 100644 index 00000000..07db2e7a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleComponent/source/SampleLinkableComponent.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace SampleComponent +{ + //This class wraps the SampleClass into an OpenMI compliant component! + class SampleLinkableComponent:LinkableEngine + { + //Here we create a new instance of the Sample Class + protected override void SetEngineApiAccess() + { + _engineApiAccess = new SampleClass(); + } + public SampleLinkableComponent() + { + _engineApiAccess = new SampleClass(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleOutput.txt b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleOutput.txt new file mode 100644 index 00000000..48897b77 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent/SampleOutput.txt @@ -0,0 +1,149 @@ +--- Sample Output --- +Timestep: 0 1615570074 2032656911 1362443849 +Timestep: 1 2032656911 1362443849 517582244 +Timestep: 2 1362443849 517582244 392818038 +Timestep: 3 517582244 392818038 2113173835 +Timestep: 4 392818038 2113173835 1719278757 +Timestep: 5 2113173835 1719278757 561806205 +Timestep: 6 1719278757 561806205 331986387 +Timestep: 7 561806205 331986387 979922303 +Timestep: 8 331986387 979922303 217071911 +Timestep: 9 979922303 217071911 1480868816 +Timestep: 10 217071911 1480868816 32881375 +Timestep: 11 1480868816 32881375 1411358576 +Timestep: 12 32881375 1411358576 346330141 +Timestep: 13 1411358576 346330141 751546011 +Timestep: 14 346330141 751546011 338319464 +Timestep: 15 751546011 338319464 1312054367 +Timestep: 16 338319464 1312054367 914186669 +Timestep: 17 1312054367 914186669 932096636 +Timestep: 18 914186669 932096636 1498458299 +Timestep: 19 932096636 1498458299 1386972684 +Timestep: 20 1498458299 1386972684 314309982 +Timestep: 21 1386972684 314309982 878538118 +Timestep: 22 314309982 878538118 36661877 +Timestep: 23 878538118 36661877 101428401 +Timestep: 24 36661877 101428401 1572775616 +Timestep: 25 101428401 1572775616 1347675616 +Timestep: 26 1572775616 1347675616 1690294937 +Timestep: 27 1347675616 1690294937 917296328 +Timestep: 28 1690294937 917296328 1623376442 +Timestep: 29 917296328 1623376442 429297550 +Timestep: 30 1623376442 429297550 144335530 +Timestep: 31 429297550 144335530 978457292 +Timestep: 32 144335530 978457292 1372848171 +Timestep: 33 978457292 1372848171 2134985487 +Timestep: 34 1372848171 2134985487 1394528314 +Timestep: 35 2134985487 1394528314 1695231002 +Timestep: 36 1394528314 1695231002 1434396951 +Timestep: 37 1695231002 1434396951 560208727 +Timestep: 38 1434396951 560208727 2032367447 +Timestep: 39 560208727 2032367447 1867953948 +Timestep: 40 2032367447 1867953948 99639654 +Timestep: 41 1867953948 99639654 1187199044 +Timestep: 42 99639654 1187199044 1626469640 +Timestep: 43 1187199044 1626469640 1073208894 +Timestep: 44 1626469640 1073208894 811246954 +Timestep: 45 1073208894 811246954 94204347 +Timestep: 46 811246954 94204347 1849477326 +Timestep: 47 94204347 1849477326 1179697043 +Timestep: 48 1849477326 1179697043 997313346 +Timestep: 49 1179697043 997313346 1530047629 +Timestep: 50 997313346 1530047629 516283713 +Timestep: 51 1530047629 516283713 720147458 +Timestep: 52 516283713 720147458 1031200914 +Timestep: 53 720147458 1031200914 462075053 +Timestep: 54 1031200914 462075053 269073575 +Timestep: 55 462075053 269073575 2129486262 +Timestep: 56 269073575 2129486262 2056549972 +Timestep: 57 2129486262 2056549972 181817491 +Timestep: 58 2056549972 181817491 2035083145 +Timestep: 59 181817491 2035083145 583962998 +Timestep: 60 2035083145 583962998 2030274447 +Timestep: 61 583962998 2030274447 262087480 +Timestep: 62 2030274447 262087480 1901673165 +Timestep: 63 262087480 1901673165 1476983145 +Timestep: 64 1901673165 1476983145 890090387 +Timestep: 65 1476983145 890090387 1279263253 +Timestep: 66 890090387 1279263253 737427254 +Timestep: 67 1279263253 737427254 1073060090 +Timestep: 68 737427254 1073060090 48311005 +Timestep: 69 1073060090 48311005 442319025 +Timestep: 70 48311005 442319025 347359315 +Timestep: 71 442319025 347359315 121502034 +Timestep: 72 347359315 121502034 1746820715 +Timestep: 73 121502034 1746820715 129253589 +Timestep: 74 1746820715 129253589 1652510321 +Timestep: 75 129253589 1652510321 1756533350 +Timestep: 76 1652510321 1756533350 465553707 +Timestep: 77 1756533350 465553707 713364742 +Timestep: 78 465553707 713364742 1915506303 +Timestep: 79 713364742 1915506303 1214186848 +Timestep: 80 1915506303 1214186848 1724399487 +Timestep: 81 1214186848 1724399487 921958977 +Timestep: 82 1724399487 921958977 31539751 +Timestep: 83 921958977 31539751 1955920511 +Timestep: 84 31539751 1955920511 430793890 +Timestep: 85 1955920511 430793890 1479755437 +Timestep: 86 430793890 1479755437 64069054 +Timestep: 87 1479755437 64069054 1860999178 +Timestep: 88 64069054 1860999178 1849465305 +Timestep: 89 1860999178 1849465305 1493757415 +Timestep: 90 1849465305 1493757415 1843097936 +Timestep: 91 1493757415 1843097936 1266128954 +Timestep: 92 1843097936 1266128954 2035879272 +Timestep: 93 1266128954 2035879272 736448209 +Timestep: 94 2035879272 736448209 988502865 +Timestep: 95 736448209 988502865 1782839992 +Timestep: 96 988502865 1782839992 799049027 +Timestep: 97 1782839992 799049027 611583060 +Timestep: 98 799049027 611583060 1717451719 +Timestep: 99 611583060 1717451719 136142498 +Timestep: 100 1717451719 136142498 1198385816 +Timestep: 101 136142498 1198385816 1705842841 +Timestep: 102 1198385816 1705842841 763515671 +Timestep: 103 1705842841 763515671 1064496605 +Timestep: 104 763515671 1064496605 1771351176 +Timestep: 105 1064496605 1771351176 1430312862 +Timestep: 106 1771351176 1430312862 376463641 +Timestep: 107 1430312862 376463641 24475781 +Timestep: 108 376463641 24475781 1099915205 +Timestep: 109 24475781 1099915205 445370791 +Timestep: 110 1099915205 445370791 928675038 +Timestep: 111 445370791 928675038 2058703219 +Timestep: 112 928675038 2058703219 1344817795 +Timestep: 113 2058703219 1344817795 1987910719 +Timestep: 114 1344817795 1987910719 1078213862 +Timestep: 115 1987910719 1078213862 1516642127 +Timestep: 116 1078213862 1516642127 1031465580 +Timestep: 117 1516642127 1031465580 809228348 +Timestep: 118 1031465580 809228348 173185576 +Timestep: 119 809228348 173185576 666251146 +Timestep: 120 173185576 666251146 906610314 +Timestep: 121 666251146 906610314 270196095 +Timestep: 122 906610314 270196095 69422780 +Timestep: 123 270196095 69422780 362649131 +Timestep: 124 69422780 362649131 650189450 +Timestep: 125 362649131 650189450 813777006 +Timestep: 126 650189450 813777006 798783778 +Timestep: 127 813777006 798783778 1821985276 +Timestep: 128 798783778 1821985276 729076168 +Timestep: 129 1821985276 729076168 1208593658 +Timestep: 130 729076168 1208593658 237730863 +Timestep: 131 1208593658 237730863 532990507 +Timestep: 132 237730863 532990507 916757410 +Timestep: 133 532990507 916757410 1270035563 +Timestep: 134 916757410 1270035563 703286489 +Timestep: 135 1270035563 703286489 1014541486 +Timestep: 136 703286489 1014541486 1202073482 +Timestep: 137 1014541486 1202073482 662048725 +Timestep: 138 1202073482 662048725 1205841355 +Timestep: 139 662048725 1205841355 869736169 +Timestep: 140 1205841355 869736169 48118347 +Timestep: 141 869736169 48118347 664943397 +Timestep: 142 48118347 664943397 1624529003 +Timestep: 143 664943397 1624529003 1015051375 +Timestep: 144 1624529003 1015051375 870488379 +Timestep: 145 1015051375 870488379 2016966148 +Timestep: 146 870488379 2016966148 2083453748 +Timestep: 147 2016966148 2083453748 418588411 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2.sln b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2.sln new file mode 100644 index 00000000..506c718b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleComponent", "SampleComponent\SampleComponent.csproj", "{B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B2B76A23-9FF2-42B8-BDCC-14FA17958FD4}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..a5701b0e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SampleComponent2")] +[assembly: AssemblyDescription("This is a sample component for HydroModeler with 1 input and 1 output. It calculates snow density.")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Idaho State University")] +[assembly: AssemblyProduct("SampleComponent2")] +[assembly: AssemblyCopyright("Copyright © Idaho State University 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("cea9f5be-6aa7-498a-a96e-a27ea94b90ca")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/SampleComponent2.csproj b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/SampleComponent2.csproj new file mode 100644 index 00000000..b1d6faa2 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/SampleComponent2.csproj @@ -0,0 +1,120 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {1F2EBAE9-51A9-4A5F-A468-2C12BFCF89EF} + Library + Properties + SampleComponent + SampleComponent + v4.0 + 512 + + + + + 3.5 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/data/config.xml b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/data/config.xml new file mode 100644 index 00000000..18fd25e1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/data/config.xml @@ -0,0 +1,72 @@ + + + + + + Calculated Element Set + This is a Sample Output + C:\Users\Jiri\Documents\HydroDesktop Projects\project13_CZE\searchresult_CZSNW.shp + 1 + + + Calculated Quantity + Sample Quantity Description [L^3/T] + + + Length + 3 + + + Time + -1 + + + + Sample Unit + Sample Unit Description + 1 + 0 + + Scalar + + + + + CZSNW + This is Sample Input + C:\Users\Jiri\Documents\HydroDesktop Projects\project13_CZE\searchresult_CZSNW.shp + 1 + + + Snow Depth + Sample Quantity Description [L^3/T] + + + Length + 3 + + + Time + -1 + + + + Sample Unit + Sample Unit Description + 1 + 0 + + Scalar + + + + + 2010-12-01T00:00:00 + 2010-12-31T00:00:00 + 86400 + + + Sample Component + This is a Sample Component to Help you Learn to use the SMW + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/data/sample2.omi b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/data/sample2.omi new file mode 100644 index 00000000..a1e4735c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/data/sample2.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/source/SampleClass2.cs b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/source/SampleClass2.cs new file mode 100644 index 00000000..fd722d64 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/source/SampleClass2.cs @@ -0,0 +1,176 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using SMW; +using System.Collections; +using Oatc.OpenMI.Sdk.Backbone; +using System.IO; + +//////////////////////////////////////////////// +// +// Original Author: Jiri Kadlec, Idaho State University +// Created On: January 31st 2012 +// Version: 1.0.0 +// +// Component Name: Sample Component +// Inputs: None, shapefile optional +// Purpose: Provide a simple template for modelers wishing to implement a linkable components +// that has one input and one output. This model can read input from DbReader and write +// input to DbWriter +// Methodology: Component classifies snow cover into 3 categories: sporadic snow, contiguous snow (> 10 cm) +// and deep snow. This is meant only to show how a modeler +// can carry out a computation using the SMW +// +// Addt'l Resources: +// Modification History: I modified this component by using original code from SampleComponent1. +// +//////////////////////////////////////////////// + +namespace SampleComponent2 +{ + public class SampleClass2:SMW.Wrapper + { + + #region Global Variables + + //define global variables + double _timestep; + string _input_elementset; + string _input_quantity; + string _output_elementset; + string _output_quantity; + + List _station1cache ; + List _station2cache; + + #endregion + + public SampleClass2() + { + _station1cache = new List(); + _station2cache = new List(); + } + + /// + /// This method is used to perform actions after model simulation has ended + /// + public override void Finish() + { + //Write output data + StreamWriter sw = new StreamWriter("./SampleOutput2.txt"); + sw.WriteLine("--- Sample Output --- "); + for (int i = 0; i <= (_station1cache.Count / 2) - 1; i++) + { + sw.WriteLine(string.Format("Timestep:{0} {1} {2}", i, Math.Round(_station1cache[i]), Math.Round(_station2cache[i]))); + } + + sw.Close(); + } + + /// + /// This method is used to perform actions prior to model simulation + /// + /// + public override void Initialize(System.Collections.Hashtable properties) + { + //Get config file path defined in sample.omi + string configFile = (string)properties["ConfigFile"]; + + //set OpenMI internal variables + this.SetVariablesFromConfigFile(configFile); + + // initialize a data structure to hold results + this.SetValuesTableFields(); + + //save the time step (defined within the config.xml) + _timestep = this.GetTimeStep(); + + //save input exchange item info + InputExchangeItem input = this.GetInputExchangeItem(0); + _input_elementset = input.ElementSet.ID; + _input_quantity = input.Quantity.ID; + + //save output exchange item info + OutputExchangeItem output = this.GetOutputExchangeItem(0); + _output_elementset = output.ElementSet.ID; + _output_quantity = output.Quantity.ID; + + //Note: this can region can be omitted if a shapefile is specified in config.xml + //#region Manually Define Element Set + + ////Get the input and output element sets from the SMW + //ElementSet out_elem = (ElementSet)this.Outputs[0].ElementSet; + //ElementSet in_elem = (ElementSet)this.Inputs[0].ElementSet; + + ////Set some ElementSet properties + //out_elem.ElementType = OpenMI.Standard.ElementType.XYPoint; + //in_elem.ElementType = OpenMI.Standard.ElementType.XYPoint; + + ////Create elements e1, e2 and e3 + //Element e1 = new Element(); + //Vertex v1 = new Vertex(1, 1, 0); + //e1.AddVertex(v1); + + //Element e2 = new Element(); + //Vertex v2 = new Vertex(1, 5, 0); + //e2.AddVertex(v2); + + //Element e3 = new Element(); + //Vertex v3 = new Vertex(5, 5, 0); + //e2.AddVertex(v3); + + ////add these elements to the input and output element sets + //out_elem.AddElement(e1); + //out_elem.AddElement(e2); + //out_elem.AddElement(e3); + //in_elem.AddElement(e1); + //in_elem.AddElement(e2); + //in_elem.AddElement(e3); + + + + //#endregion + + + ////Do some Calculations prior to simulation (for example - training ??) + //for (int i = 0; i < in_elem.Elements.Length; i++) + // _seeds.Add(_rndNum.Next()); + } + + public override bool PerformTimeStep() + { + //Get input values from another component + //for each shape we read one value + ScalarSet invals = (ScalarSet)this.GetValues(_input_quantity, _input_elementset); + double[] indata = invals.data; + + //create something to hold output + double[] outdata = new double[indata.Length]; + + //do some computation... categorize snow + for (int i = 0; i < indata.Length; i++) + { + if (indata[i] <= 0) + outdata[i] = 0; + else if (indata[i] <= 10) + outdata[i] = 1; + else + outdata[i] = 2; + } + + //add vals to cache. This way we can for example calculate with vals of previous vals.. + _station1cache.Add(outdata[0]); + _station2cache.Add(outdata[1]); + + //set output values for another component + this.SetValues(_output_quantity, _output_elementset, new ScalarSet(outdata)); + + //advance time by one time step + this.AdvanceTime(); + + return true; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/source/SampleLinkableComponent2.cs b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/source/SampleLinkableComponent2.cs new file mode 100644 index 00000000..1a80f820 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SampleComponent2/SampleComponent2/source/SampleLinkableComponent2.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace SampleComponent2 +{ + //This class wraps the SampleClass into an OpenMI compliant component! + class SampleLinkableComponent:LinkableEngine + { + //Here we create a new instance of the Sample Class + protected override void SetEngineApiAccess() + { + _engineApiAccess = new SampleClass2(); + } + public SampleLinkableComponent() + { + _engineApiAccess = new SampleClass2(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/SolarRadiation.sln b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/SolarRadiation.sln new file mode 100644 index 00000000..71c5738d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/SolarRadiation.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SolarRadiation", "source\SolarRadiation.csproj", "{D4F30A35-8C6C-45CF-B439-8C318C6C2A98}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SRTestClass", "Test\SRTestClass.csproj", "{52C81570-EBF3-4BE9-B6B3-D8A524D1FA28}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D4F30A35-8C6C-45CF-B439-8C318C6C2A98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4F30A35-8C6C-45CF-B439-8C318C6C2A98}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4F30A35-8C6C-45CF-B439-8C318C6C2A98}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4F30A35-8C6C-45CF-B439-8C318C6C2A98}.Release|Any CPU.Build.0 = Release|Any CPU + {52C81570-EBF3-4BE9-B6B3-D8A524D1FA28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {52C81570-EBF3-4BE9-B6B3-D8A524D1FA28}.Debug|Any CPU.Build.0 = Debug|Any CPU + {52C81570-EBF3-4BE9-B6B3-D8A524D1FA28}.Release|Any CPU.ActiveCfg = Release|Any CPU + {52C81570-EBF3-4BE9-B6B3-D8A524D1FA28}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/Test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..d1bc47ed --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/Test/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ClassLibrary1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("ClassLibrary1")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e0bb66d0-76c1-49d3-a735-89dc406bbb79")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/Test/SRTestClass.csproj b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/Test/SRTestClass.csproj new file mode 100644 index 00000000..446427a2 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/Test/SRTestClass.csproj @@ -0,0 +1,95 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {52C81570-EBF3-4BE9-B6B3-D8A524D1FA28} + Library + Properties + ClassLibrary1 + ClassLibrary1 + v4.0 + 512 + + + 3.5 + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\nunit.framework.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.Backbone.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.Wrapper.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\OpenMI.Standard.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + {D4F30A35-8C6C-45CF-B439-8C318C6C2A98} + SolarRadiation + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/Test/Test.cs b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/Test/Test.cs new file mode 100644 index 00000000..ddee1882 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/Test/Test.cs @@ -0,0 +1,70 @@ +using N_SolarRadiation; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Collections; + +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using NUnit.Framework; +using SMW; +using Oatc.OpenMI.Sdk.Wrapper; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using OpenMI.Standard; + +namespace TestProject +{ + + [TestClass()] + public class N_SRTest + { + + + private TestContext testContextInstance; + + public TestContext TestContext + { + get + { + return testContextInstance; + } + set + { + testContextInstance = value; + } + } + + + [TestMethod()] + public void InitializeTest() + { + N_SolarRadiation.N_SR component = new N_SR(); + + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "../../../source/config.xml"); + args.Add("wtmpFolder", "../../../data/wtmp"); + component.Initialize(args); + } + + [TestMethod()] + public void PerformTimeStepTest() + { + N_SolarRadiation.N_SR component = new N_SR(); + + //Initialize Component + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "../../../source/config.xml"); + args.Add("wtmpFolder", "../../../data/wtmp"); + component.Initialize(args); + + //Call perform timestep in the component class + component.PerformTimeStep(); + + //retrieve values from the compenent class + ScalarSet _NSR = (ScalarSet)component.GetValues("NSR", "NetRad"); + double[] NSR = _NSR.data; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.dbf b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.dbf new file mode 100644 index 00000000..414cecdd Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.prj b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.prj new file mode 100644 index 00000000..2d456db1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609600.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.sbn b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.sbn new file mode 100644 index 00000000..213ab8fd Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.sbx b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.sbx new file mode 100644 index 00000000..5d010438 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.shp b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.shp new file mode 100644 index 00000000..794e4f1c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.shp.xml b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.shp.xml new file mode 100644 index 00000000..45104181 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.shp.xml @@ -0,0 +1,3 @@ + + +2011050412483200FALSEFeatureClassToFeatureClass PeTgauges_Layer "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data" PeTgauges.shp # "GaugeIDs 'GaugeIDs' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,GaugeIDs,-1,-1;X 'X' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,X,-1,-1;Y 'Y' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,Y,-1,-1" # "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp"DefineProjection PeTgauges GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]] PeTgaugesFeatureClassToFeatureClass PeTgauges "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data" PeTgages.shp # "GaugeIDs 'GaugeIDs' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,GaugeIDs,-1,-1;X 'X' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,X,-1,-1;Y 'Y' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,Y,-1,-1" # "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgages.shp"Project PeTgages "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgages_Prjctd.shp" PROJCS['NAD_1983_StatePlane_South_Carolina_FIPS_3900',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',609600.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Standard_Parallel_1',32.5],PARAMETER['Standard_Parallel_2',34.83333333333334],PARAMETER['Latitude_Of_Origin',31.83333333333333],UNIT['Meter',1.0]] # GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]]20110504123646002011050412364600{D77F57FC-884D-4B62-A0D6-2B70C1D32663}Microsoft Windows 2000 Version 5.2 (Build 3790) Service Pack 2; ESRI ArcCatalog 9.3.1.3000enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.PeTgagesPeTgagesvector digital data\\CE-57\C\Documents and Settings\ercanm\Desktop\SolarRadiation\data\PeTgaugesREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows 2000 Version 5.2 (Build 3790) Service Pack 2; ESRI ArcCatalog 9.3.1.3000PeTgagesenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20110504ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://\\CE-57\C\Documents and Settings\ercanm\Desktop\SolarRadiation\data\PeTgaugesLocal Area Network0.000ShapefileVectorSimplePointFALSE0FALSEFALSEEntity point0GCS_North_American_1983Decimal degrees0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222GCS_North_American_19830PeTgagesFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.GaugeIDsGaugeIDsFloat1911XXFloat1911YYFloat191120110504Dataset copied.2011050412375900Dataset copied.C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges2011050412483200 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.shx b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.shx new file mode 100644 index 00000000..368f99c1 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/data/SRgauges.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/Check.opr b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/Check.opr new file mode 100644 index 00000000..de547a5f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/Check.opr @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/NSR.cs b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/NSR.cs new file mode 100644 index 00000000..6b4b4e50 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/NSR.cs @@ -0,0 +1,325 @@ +// Purpose: Evaluate Net Solar Radiation in MJ/m^2/d from Tempreture, date and elevation data. +// Author: Mehmet Ercan (mehmetbercan@gmail.com) +// Advisor: Jonathan L. Goodall (goodall@sc.edu) +// History: Created (03-15-2010), put in OpenMI(06-07-2010), updated(05-06-2011) + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using System.Xml; +using System.Data; + +using SMW; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace N_SolarRadiation +{ + public class N_SR : Wrapper + { + public DataTable _elementValues = new DataTable(); + + public string input_quantity0; + public string input_quantity1; + public string input_quantity2; + public string input_quantity3; + public string input_quantity4; + public string input_elementset0; + public string input_elementset1; + public string input_elementset2; + public string input_elementset3; + public string input_elementset4; + + public string output_quantity; + public string output_elementset; + + //defining data storage list + List> Allwtmp = new List>(); + double[] TemprtrDew; + double[] TemprtrMax; + double[] TemprtrMin; + double[] TemprtrMinAd; + double[] MnthADaTemp; + + + public override void Finish() + { + } + + + public override void Initialize(System.Collections.Hashtable properties) + { + string configFile = null; + //Get Config file directory from .omi file + if (properties.ContainsKey("ConfigFile")) + configFile = (string)properties["ConfigFile"]; + + //Set variables + SetVariablesFromConfigFile(configFile); + SetValuesTableFields(); + + //get input exchange item attributes + int num_inputs = this.GetInputExchangeItemCount(); + InputExchangeItem input0 = this.GetInputExchangeItem(num_inputs - 5); + input_elementset0 = input0.ElementSet.ID; + input_quantity0 = input0.Quantity.ID; + InputExchangeItem input1 = this.GetInputExchangeItem(num_inputs - 4); + input_elementset1 = input1.ElementSet.ID; + input_quantity1 = input1.Quantity.ID; + InputExchangeItem input2 = this.GetInputExchangeItem(num_inputs - 3); + input_elementset2 = input2.ElementSet.ID; + input_quantity2 = input2.Quantity.ID; + InputExchangeItem input3 = this.GetInputExchangeItem(num_inputs - 2); + input_elementset3 = input3.ElementSet.ID; + input_quantity3 = input3.Quantity.ID; + InputExchangeItem input4 = this.GetInputExchangeItem(num_inputs - 1); + input_elementset4 = input4.ElementSet.ID; + input_quantity4 = input4.Quantity.ID; + + //get output exchange item attributes + int num_outputs = this.GetOutputExchangeItemCount(); + OutputExchangeItem output = this.GetOutputExchangeItem(num_outputs - 1); + output_elementset = output.ElementSet.ID; + output_quantity = output.Quantity.ID; + + // --- setup elementValues DataTable to store element attributes from elements.shp + _elementValues.Columns.Add("Gauge_IDs", typeof(double)); + _elementValues.Columns.Add("Longitude", typeof(double)); + _elementValues.Columns.Add("Latitude", typeof(double)); + _elementValues.Columns.Add("Alpha", typeof(double)); + _elementValues.Columns.Add("Atm_Coeff", typeof(double)); + _elementValues.Columns.Add("Elevation", typeof(double)); + + //Get shapefile path + XmlDocument doc = new XmlDocument(); + doc.Load(configFile); + XmlElement root = doc.DocumentElement; + XmlNode elementSet = root.SelectSingleNode("//InputExchangeItem//ElementSet"); + string shapefilePath = elementSet["ShapefilePath"].InnerText; + + //Get watershed properties from elements.shp + SharpMap.Layers.VectorLayer myLayer = new SharpMap.Layers.VectorLayer("elements_layer"); + myLayer.DataSource = new SharpMap.Data.Providers.ShapeFile(shapefilePath); + myLayer.DataSource.Open(); + + for (uint i = 0; i < myLayer.DataSource.GetFeatureCount(); i++) + { + SharpMap.Data.FeatureDataRow feat = myLayer.DataSource.GetFeature(i); + //DataTable att = feat.Table; + + object GaugeId = feat.ItemArray[feat.Table.Columns.IndexOf("GaugeIDs")]; + object Longitute = feat.ItemArray[feat.Table.Columns.IndexOf("X")]; + object Latitude = feat.ItemArray[feat.Table.Columns.IndexOf("Y")]; + object Alpha = feat.ItemArray[feat.Table.Columns.IndexOf("Alpha")]; + object Coeff_a = feat.ItemArray[feat.Table.Columns.IndexOf("Coeff_a")]; + object Elevation = feat.ItemArray[feat.Table.Columns.IndexOf("Elevation")]; + _elementValues.LoadDataRow(new object[] { GaugeId, Longitute, Latitude, Alpha, Coeff_a, Elevation }, true); + + + } + + } + public override bool PerformTimeStep() + { + //Retrieve values from another component + ScalarSet _TemprtrDew = (ScalarSet)this.GetValues(input_quantity0, input_elementset0); + TemprtrDew = _TemprtrDew.data; + ScalarSet _TemprtrMax = (ScalarSet)this.GetValues(input_quantity1, input_elementset1); + TemprtrMax = _TemprtrMax.data; + ScalarSet _TemprtrMin = (ScalarSet)this.GetValues(input_quantity2, input_elementset2); + TemprtrMin = _TemprtrMin.data; + ScalarSet _TemprtrMinAd = (ScalarSet)this.GetValues(input_quantity3, input_elementset3); + TemprtrMinAd = _TemprtrMinAd.data; + ScalarSet _MnthADaTemp = (ScalarSet)this.GetValues(input_quantity4, input_elementset4); + MnthADaTemp = _MnthADaTemp.data; + ///////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////Net Solar Radiation Calculation//////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////////////// + + //Get data from saved attribute table + int n = _elementValues.Rows.Count; + double[] _gauge_ids = new double[n]; + double[] _lon = new double[n]; + double[] _lat = new double[n]; + double[] _alpha = new double[n]; + double[] _coeffa = new double[n]; + double[] _elev = new double[n]; + for (int i = 0; i < n; i++) + { + _gauge_ids[i] = Convert.ToDouble(_elementValues.Rows[i]["Gauge_IDs"]); + _lon[i] = Convert.ToDouble(_elementValues.Rows[i]["Longitude"]); + _lat[i] = Convert.ToDouble(_elementValues.Rows[i]["Latitude"]); + _alpha[i] = Convert.ToDouble(_elementValues.Rows[i]["Alpha"]); + _coeffa[i] = Convert.ToDouble(_elementValues.Rows[i]["Atm_Coeff"]); + _elev[i] = Convert.ToDouble(_elementValues.Rows[i]["Elevation"]); + } + + //get current time + DateTime currTime = CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)this.GetCurrentTime()).ModifiedJulianDay); + double current_timed = Convert.ToDouble(Convert.ToString(currTime.Month) + Convert.ToString(currTime.Day) + Convert.ToString(currTime.Year)); + string current_time = Convert.ToString(currTime).Split(' ')[0]; + + //Caluculate Julian day + int Dm = Convert.ToInt32(current_time.Split('/')[1]); //the day of the month + int M = Convert.ToInt32(current_time.Split('/')[0]); //the month + int Y = Convert.ToInt32(current_time.Split('/')[2]); //the year + double my4 = Y - (Math.Floor(Y / 4.0) * 4); + double JulianDay = Dm - 32 + Math.Floor(275.0 * M / 9.0) + 2 * Math.Floor(3.0 / (M + 1)) + Math.Floor((M / 100.0) - (my4 / 4.0) + 0.975); //Allen et al.,2005 + + NSRworks In = new NSRworks(); + + + + //Setting values for the stations + List StIDNSR = new List(); + for (int i = 0; i < n; i++) + { + //Setting Maximum Temperature(C) + In.TempMx = TemprtrMax[i]; + + //Setting Minimum Temperature(C) + In.TempMn = TemprtrMin[i]; + + //Setting Minimum Temperature for next day(C) + In.TempMnn = TemprtrMinAd[i]; + + //Setting Dew Point Temperature(C) + In.Tdew = TemprtrDew[i]; + + //Monthly mean daily average temperature range (C) + In.MMAvTempR = MnthADaTemp[i]; + + //Setting surface albeto + In.Alpha = _alpha[i]; + + //Setting Temperature(C) + In.Lat = _lat[i]; + + //Setting watershed elevation(m) + In.Elev = _elev[i]; + + //Set Julian Day + In.Julian = JulianDay; + + //Setting the coefficient a to evaluate atmospheric transmisivity + In.ca = _coeffa[i]; + + //Getting Calculated Net Solar Radiation + double[] NSR1 = new double[6]; + NSR1[0] = _gauge_ids[i]; //StationID + NSR1[1] = _lat[i]; //Latitude + NSR1[2] = _lon[i]; //Longitude + NSR1[3] = _elev[i]; //Elevation + NSR1[4] = In.NetRadiation(); //Net Solar Radiation (MJ/m^2/d) + NSR1[5] = current_timed; //Date + StIDNSR.Add(NSR1); + } + + + //Get an array result for exchange with SMW + double[] NSR = new double[StIDNSR.Count()]; + for (int ff = 0; ff < StIDNSR.Count(); ff++) + { + NSR[ff] = StIDNSR[ff][4]; + } + + //set values + this.SetValues(output_quantity, output_elementset, new ScalarSet(NSR)); + + //set advance model trough time + this.AdvanceTime(); + + return true; + } + } + class NSRworks + { + //Setting Max and Min Temperature value(degrees Celsius) + double _tempmx; + public double TempMx { get { return _tempmx; } set { _tempmx = value; } } + double _tempmn; + public double TempMn { get { return _tempmn; } set { _tempmn = value; } } + //Next day's min Temprature value (degrees Celsius) + double _tempmnn; + public double TempMnn { get { return _tempmnn; } set { _tempmnn = value; } } + //Setting Dew point temperature(degrees Celsius) + double _Tdew; + public double Tdew { get { return _Tdew; } set { _Tdew = value; } } + //Setting monthly mean daily average temperature range(degrees Celsius) + double _MMAvTempR; + public double MMAvTempR { get { return _MMAvTempR; } set { _MMAvTempR = value; } } + //Setting surface albeto + double _alpha; + public double Alpha { get { return _alpha; } set { _alpha = value; } } + //setting the latitude(in degree) + double _lat; + public double Lat { get { return _lat; } set { _lat = value; } } + //Setting Elevation(in meter) + double _elev; + public double Elev { get { return _elev; } set { _elev = value; } } + //Setting Julian Days + double _Julian; + public double Julian { get { return _Julian; } set { _Julian = value; } } + //Setting the coefficient a to evaluate atmospheric transmisivity + double _ca; + public double ca { get { return _ca; } set { _ca = value; } } + + public double NetRadiation() + { + //Net Longwave Radiation (Ln) + double ae, be, ed, Ep, cf, Tf, DTa, a, b, c, DT, Ln, Theta, Tmax, Tmin, Tminn; + //Coefficients: ae=0.34, be=-0.14, a=0.8(Dr.Tarboton), a = 0.75 (considering Bristowet al.,1984), c=2.4, Theta=2.0747*10^-7 (kjK^-4m^-2h^-1) //ed:Vapor Pressure(kPa) + //Ep:Net emisivity//cf:cloudiness factor//Tf:Atmospheric transmissivity// DTa:Mountly mean diurnal temprature range + //b:a parameter depends on DTa//Dt:diurnal temprature range//Ln:Net Longwave Radiation + //Tmax and Tmin are dailly max and min tempratures + Tmax = TempMx; Tmin = TempMn; //dailly max and min tempratures + Tminn = TempMnn; //Next day's min temprature + DT = Math.Abs(Tmax - ((Tmin + Tminn) / 2)); //diurnal temprature range (celsius)(Bristow et al.,1984) + DTa = MMAvTempR; // monthly mean average temperature range.(Monthly mean diurnal temprature range) + double Tdw = Tdew; + a = ca;//get the coefficient a for atmospheric transmisivity calculation. + ae = 0.34; be = -0.14; c = 2.4; Theta = 4.901 * Math.Pow(10, -9); //(Mj * K^-4 * m^-2 * d^-1)(Allen et al.,2005) + //ed = 0.6108 * Math.Exp((17.27 * Tdw) / (Tdw + 237.3)); //(kPa)(ed = ea)Equation 2.14 (R.Burman and L.O.Pochop)look example at page 196(vapor pressure e) + ed = 6.107799961 + 4.436518521 * Math.Pow(10, -1) * Tdw + 1.428945805 * Math.Pow(10, -2) * Math.Pow(Tdw, 2) + 2.650648471 * Math.Pow(10, -4) * Math.Pow(Tdw, 3) + 3.031240396 * Math.Pow(10, -6) * Math.Pow(Tdw, 4) + 2.034080948 * Math.Pow(10, -8) * Math.Pow(Tdw, 5) + 6.136820929 * Math.Pow(10, -11) * Math.Pow(Tdw, 6); //(in mb) Vapor pressure is determined from the dew point temperature using the polynomial provided by Lowe (1977). + ed = 0.1 * ed; //mb to Kpa convertion. + Ep = ae + be * (Math.Pow(ed, 0.5)); + b = 0.036 * Math.Exp(-0.154 * DTa); + Tf = a * (1 - Math.Exp(-b * (Math.Pow(DT, c)))); + //cf = Tf / 0.8; //(Tarboton used in his model)(This always does not provide the condition explained by Allen et al., 2005) + double elev = Elev; + double Rs_Rso = Tf / (0.75 + 2 * Math.Pow(10, -5) * elev); // got this formula by combining Bristow et al.,1984 and Allen et al,2005. + if (Rs_Rso < 0.3) { Rs_Rso = 0.3; } + if (Rs_Rso > 1.0) { Rs_Rso = 1.0; } + cf = 1.35 * Rs_Rso - 0.35; //(shottleworth, 1993 and Allen et al.,2005) + + Ln = -cf * Ep * Theta * ((Math.Pow((Tmax + 273.16), 4) + Math.Pow((Tmin + 273.16), 4)) / 2); //Net longwave radiation(MJ/m^2/h) + + //Net Shortwave Radiation (Sn) + double So, alpha, Sn;//Alpha:The surface albedo which is derived from surface vegetation + //Sn:Net Shortwave Radiation + //Getting So from table 2-5 (R.Burman and L.O.Pochop page:40) + //So:Extraterrestrial radiation at the top of the atmosphere calculated based on sun angles from the date + + double Gsc = 4.92; // Solar constant (MJ/m^2/h)(In ASCE appendix example, houly Gsc is used for daily calculation and this constant given in daily calculation in the paper) + double latitude = (Math.PI / 180) * Lat; // Latitude in Radians + double Jd = Julian; + double dr = 1 + 0.033 * Math.Cos((2 * Math.PI / 365) * Jd); //Inverse relative distance factor (unitless) + double SlrDec = 0.409 * Math.Sin(((2 * Math.PI / 365) * Jd) - 1.39); //Solar declination in radians + double Ws = Math.Acos(-Math.Tan(latitude) * Math.Tan(SlrDec)); // Sunset Hour Angles in Radians + So = (24 / Math.PI) * Gsc * dr * (Ws * Math.Sin(latitude) * Math.Sin(SlrDec) + Math.Cos(latitude) * Math.Cos(SlrDec) * Math.Sin(Ws)); //Extraterrestrial radiation (MJ/m^2/h)(Allen et al.,2005) + + //Getting surface albeto(alpha) value can be got from table 2-2 (R.Burman and L.O.Pochop page:31) + alpha = Alpha;// Suface albeto + Sn = (1 - alpha) * Tf * So; + + //Net Radiation + double Rn; //Rn:Net Radiation + Rn = Sn + Ln; + return Rn; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/NSR.omi b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/NSR.omi new file mode 100644 index 00000000..e4bbff03 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/NSR.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..72bc9c85 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SolarRadiation")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("SolarRadiation")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("af61c54e-9788-4b36-b96d-dc7ccbb7b3fe")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/SR_linkableComponent.cs b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/SR_linkableComponent.cs new file mode 100644 index 00000000..e795aadd --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/SR_linkableComponent.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace N_SR_RC +{ + class N_SR_linkableComponent : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + protected override void SetEngineApiAccess() + { + _engineApiAccess = new N_SolarRadiation.N_SR(); + } + public N_SR_linkableComponent() + { + _engineApiAccess = new N_SolarRadiation.N_SR(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/SolarRadiation.csproj b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/SolarRadiation.csproj new file mode 100644 index 00000000..44c5529b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/SolarRadiation.csproj @@ -0,0 +1,100 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {D4F30A35-8C6C-45CF-B439-8C318C6C2A98} + Library + Properties + SolarRadiation + SolarRadiation + v4.0 + 512 + + + 3.5 + + Client + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Sdk.Backbone.dll + False + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + False + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Sdk.Wrapper.dll + False + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\OpenMI.Standard.dll + False + + + False + ..\..\..\Utilities\SharpMap\SharpMap.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + False + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/config.xml b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/config.xml new file mode 100644 index 00000000..1b6231a4 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/SolarRadiation/source/config.xml @@ -0,0 +1,172 @@ + + + + + + SC_NC Study + Net Solar Radiation + ./data/SRgauges.shp + 1 + + + Net Solar Radiation + Net Radiation + + + kilojule + 1 + + + meter + -2 + + + hour + -1 + + + + MJ/m2/day + Megajoule per square meter per day + 1 + 0 + + Scalar + + + + + SC_NC Study + Dew Point Temperature of the gauge + ./data/SRgauges.shp + 1 + + + Dew Point Temperature + Dew Point Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Maximum Temperature of the gauge + ./data/SRgauges.shp + 1 + + + Maximum Temperature + Maximum Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Minimum Temperature of the gauge + ./data/SRgauges.shp + 1 + + + Minimum Temperature + Minimum Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Minimum Temperature of the gauge for next day + ./data/SRgauges.shp + 1 + + + Minimum Temperature in Advance + Maximum Temperature for next day + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Monthly average daily temprature range of the gauge + ./data/SRgauges.shp + 1 + + + Monthly average daily temp range + Monthly average daily temprature range + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + 01/01/1982 + 12/31/1983 + 86400 + + + Solar Radiation + This model calculates net solar radiation in megajoule per square meter per day + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Data/TI.csv b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Data/TI.csv new file mode 100644 index 00000000..9972dbef --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Data/TI.csv @@ -0,0 +1,2 @@ +-0.7774,-0.2296,0.3183,0.8662,1.414,1.962,2.51,3.058,3.606,4.154,4.701,5.249,5.797,6.345,6.893,7.441,7.989,8.537,9.085,9.632,10.18,10.73,11.28,11.82,12.37,12.92,13.47,14.02,14.56,15.27 +1.57E-03,5.25E-04,0,1.05E-03,1.84E-03,7.61E-03,1.84E-02,5.17E-02,0.10365,0.15481,0.16741,0.13828,0.10286,8.13E-02,6.01E-02,3.78E-02,2.73E-02,1.55E-02,1.31E-02,4.72E-03,2.62E-03,2.89E-03,1.31E-03,1.31E-03,7.87E-04,5.25E-04,5.25E-04,0,2.62E-04,2.62E-04 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Data/TI_raster.txt b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Data/TI_raster.txt new file mode 100644 index 00000000..091a11ab --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Data/TI_raster.txt @@ -0,0 +1,116 @@ +ncols 63 +nrows 108 +xllcorner 277817.66651537 +yllcorner 3880780.93501313 +cellsize 6.096 +NODATA_value -9999 +-9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 +-9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 +-9999 -9999 -9999 -9999 -9999 4.40998110208 4.29015267237 3.93084183923 4.04301452597 4.19566524673 3.79362577693 3.57403389969 3.73337783334 3.94704964605 3.75765633105 3.92762832905 3.47292070607 3.41917282103 3.39266296432 3.32890875879 3.46626926817 3.14393103283 2.98464866044 2.90722971724 2.63135590728 2.87001617695 2.59022321792 2.39386497462 1.90970414712 1.39197181578 1.52807202297 1.8235062602 1.32791012803 -9999 -9999 -9999 1.02655842534 0.866681583393 -3.9163160689 -4.26364716016 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 -9999 -9999 -9999 -9999 -9999 -9999 3.53180286904 3.55820953681 3.65698130273 4.12340558358 3.27830406877 3.39153999212 2.95243158302 2.71742660486 2.70121914867 2.88061329628 2.80791257616 2.41783628945 2.48266118356 2.26252752212 2.37297160406 1.98442214477 2.42061691027 1.91510397086 1.33405392673 1.51256298633 2.58257116004 2.15959809077 1.57583274407 1.024373876 1.21737043985 2.14657723596 -9999 -9999 -9999 -9999 1.45909958279 0.826345115255 0.866681583393 -3.91669484515 -4.26516064885 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 5.33318622386 4.27886182974 3.73129014057 3.14201384507 2.64525262477 2.75332258246 2.64509635697 2.61642298471 2.20080366961 2.57240729468 2.32033784045 2.12853265624 1.74875516149 1.29703430647 1.43127255499 1.45510319466 1.71534590752 1.72425503153 1.75450782666 1.32791012803 0.780325204347 0.669443645046 1.52807202297 -9999 -9999 -9999 -9999 -9999 1.85507184039 1.5409142495 1.02542574975 1.01740026242 -3.9163160689 -4.26667185036 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 4.42905078714 3.95080801415 4.05213485009 3.32376441788 3.09851890892 2.69364257075 2.57380731607 2.41686842074 2.44327332181 2.36259265629 2.2472031724 1.96602696125 1.54603813796 1.18149847381 1.47003591213 2.34481716357 2.0274577454 1.50457908824 0.926679341558 1.41410366335 1.58598330709 -9999 -9999 -9999 -9999 -9999 -9999 2.00813534991 2.01877159331 2.22785513336 1.88150860132 1.04736646753 -3.91858703206 -4.26818066472 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -9999 -9999 2.78278849268 3.95296622576 2.0617020951 -9999 3.90554435935 3.92718372733 3.55889370464 3.12964037036 2.30482447144 2.48751480084 2.14432719693 1.84907355447 1.60604656244 1.54479627499 1.45088520856 1.27584573907 1.44157556821 2.73833061955 2.26730573615 1.56491591085 1.92996414213 1.49642310122 2.25256466834 -9999 -9999 -9999 -9999 -9999 -9999 3.39780439809 3.38527256651 2.91128244064 2.22812475024 1.67545086736 1.70241502913 1.0776787665 -4.2678036745 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -9999 2.75594066362 2.57035791697 3.2127100745 4.15451871305 2.00582778007 -9999 3.73437313914 3.97528427993 3.50266240614 3.15519411982 2.84085050779 2.43796987999 2.39596244964 2.30947701615 2.19643832127 1.95533091129 1.87695027127 2.45698202993 2.58920136678 2.06113624698 2.09651205023 2.10554586555 1.59817430412 -9999 -9999 -9999 -9999 -9999 -9999 4.00677535197 4.12794208959 3.77845886478 3.36490014769 3.02361878314 2.49845833905 2.35143328769 1.69929222009 -3.92047564536 -4.27081573092 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -9999 2.00941638979 1.94417581761 3.18554746842 2.71748109432 4.32350796424 3.62350460495 -9999 3.34862787247 3.74852798531 3.45901676469 2.81830618544 2.47408297068 2.19845639514 1.86394049284 2.11582561038 2.2579740186 2.72210658257 1.92724750063 2.20933292097 2.12764952009 2.31275788716 1.98950006536 1.87099583517 -9999 -9999 -9999 -9999 -9999 4.91080413178 4.5483122015 4.26932189967 3.97822205938 3.66704621491 3.4333194978 3.51952712643 2.83660330483 2.22219842481 1.51854796568 -3.92424212957 -4.27269360295 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -9999 1.69983343296 1.77961388868 2.02371721688 1.91674333748 3.21293048366 2.48246931893 2.42572370394 -9999 -9999 3.51641402809 2.99550459483 3.05024037414 2.55555366795 2.41905794962 2.4030116516 2.79042244007 2.07337186189 2.26537043289 2.0852014827 2.56322935107 2.45775700875 2.36939068165 1.99753998083 -9999 -9999 -9999 2.79037929955 3.03599151087 2.58390523841 2.465453023 2.15098383864 2.79184305132 3.12442139398 2.9624356436 2.93537475829 2.26380088655 1.99156996291 1.20378890117 1.56394402124 -4.27830636447 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.05471790027 1.61595142591 1.38406869891 1.8516421358 1.64922503605 2.14837968057 1.74849432516 1.60463466293 -9999 -9999 -9999 3.79983579401 3.3181502256 2.95260989883 2.59102677732 3.15930087265 2.22650033587 2.47818919904 2.74895760062 3.38131208965 2.58627780763 2.73495639487 2.83610352134 -9999 -9999 2.22082441917 2.05535995576 2.02743069798 2.06439757221 1.74272156775 2.02279592547 1.99332812428 1.85753013342 2.09034078151 2.23943786323 2.04086560556 1.09057264496 1.16849122014 1.33005716389 1.32791012803 -3.9354572046 -4.28648185208 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 1.68657353293 1.26285458232 1.25157180883 1.96134765652 1.20110889268 1.8235061679 1.12810621455 2.44018529288 3.56706101903 2.95509485589 3.50307123505 -9999 3.96346437421 3.27402814592 3.10386248542 3.85694495028 3.0938315974 3.74751533788 -9999 -9999 -9999 -9999 -9999 -9999 2.15877730509 1.61445801239 1.65611796799 1.36753046448 1.17021275415 1.48095647892 1.60190060794 1.70149820528 1.92919593932 1.81108650437 1.83084998094 2.34931964024 2.72379065623 1.96799546897 2.01252277248 1.77210953615 0.599923148701 -3.94101788829 -4.28980717652 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 9.72982095087 1.5745428427 1.47539801102 2.16533206941 2.11417840866 1.31268059951 1.35110718519 1.99089741442 2.18687051597 2.91511167329 3.2205732254 2.00582778007 -9999 -9999 -9999 -9999 -9999 -9999 -9999 2.57588131031 -9999 -9999 -9999 -9999 1.9973677744 1.9482765242 1.3633312779 1.57577186906 1.23944579016 1.22624333507 1.4950460582 1.75245692568 1.69074910706 1.53471403722 1.17080090413 1.28080527459 1.23161548524 2.0099304666 0.93733680085 2.16795150474 1.18602930876 0.507961712118 -3.94360229538 -4.29238583554 -4.29459093866 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 10.7031284995 9.35786803479 2.38147599975 1.78989570095 1.64544284424 1.36536083895 1.23417874586 1.04621406246 1.79750807996 2.60299881683 2.50488298726 2.23752972735 8.4155525615 7.369535266 5.93545720819 5.90613897937 3.92156444727 3.51086255532 3.25498987957 3.05111047795 3.05674904415 2.78959902615 1.67298978808 2.92603736676 -9999 3.80630747116 1.94338653125 2.07019480254 1.97382705904 1.92320207988 1.93544351031 1.51268648021 1.67255543579 1.59694438154 1.80341441699 1.87403661949 2.19076079553 2.75041490919 2.26373172597 1.0020911125 2.44649273807 0.481273812846 0.897544837745 1.12689881214 -3.9476502071 -4.29569161748 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.32215845049 3.27781683353 2.30258509299 1.94550161288 1.24451331166 1.41535755317 1.75847976048 1.55982876395 1.23417874586 1.89425607324 2.04272464123 2.58880579407 4.61456702765 5.11901769227 5.25918557802 6.19589058066 6.1178974763 3.20870969228 2.58340993019 2.84676354553 2.9187654116 2.71063455289 1.87457008748 1.7710692915 2.63765251149 -9999 4.60636823401 2.82427242168 2.2297246533 2.39785893698 2.05738363083 2.11782262539 2.19903522399 2.25154408474 2.23820651508 2.6050069731 2.8878808034 2.19761497455 1.9480816522 1.73680539795 1.54523728471 1.33426790041 1.26221173971 0.607187116355 0.753473115959 -3.94911806844 +-4.29642483478 -4.29898661085 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 1.74248715162 0.951306975003 3.67617469518 8.68181923492 2.05743342393 1.77903436236 1.1892505451 1.56394402124 1.88239772566 1.37094746986 2.50947934726 3.83476145951 3.4884794532 3.78273929072 4.87673116159 4.65287808168 5.43040566129 6.05293759596 3.36446310815 2.64699894313 2.77590244315 2.10086985573 1.95556248276 2.09507213437 1.59652299977 1.75473611757 -9999 4.11402049595 2.85101327666 2.73915828935 2.55241933118 2.31424409617 2.41308749713 2.3760322703 2.86404524341 3.02749046251 2.17908225457 1.91988186885 2.11459943145 1.79141858877 1.5838837385 1.47264302406 1.51407958136 1.45166413229 1.18359077662 +0.825400853156 1.07146752032 -3.95241304632 -4.30227067959 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 1.49725757739 1.96164006849 1.17333894664 3.03316286239 9.70860322708 2.51665334846 2.00582778007 1.07146752032 1.39688988729 1.32278192374 1.39394009493 2.94760084693 3.32093636371 4.57245365625 3.67731928908 3.9835933738 4.32511902806 5.53199458182 6.04679747232 3.52712495199 2.68154968634 2.5228277108 1.95062749198 2.07939004459 1.26858624469 1.50726860485 3.03721641607 -9999 3.52787645805 2.67530527937 2.69010882778 2.58358990623 2.4683021765 3.23507974833 3.3449190674 2.58781937967 2.070111537 2.45824692072 2.15299612323 1.93509034677 2.51495433318 2.14721391871 1.88457558646 1.86179661207 +2.01255075761 1.92896926501 1.50493029307 1.10004674912 -3.95642537474 -4.30663269385 -4.30953020262 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 1.10004674912 1.84425286694 1.68144586058 1.8730378365 3.21514569472 9.70257033052 2.30258509299 1.94586514856 1.08816120709 1.12689881214 1.47693258493 1.9997684878 3.53749776606 3.56265828644 2.90547332417 2.7281445269 2.88278886652 4.47571937285 6.1151192079 4.57730002044 3.56340103739 2.93367575368 2.53473973705 2.2739224968 2.02377302876 1.87142456337 2.38191459739 2.95458462844 -9999 -9999 -9999 -9999 4.34560916705 4.70413319813 2.92714147648 2.29013600587 2.60559540865 2.77912746357 2.18879707421 2.91299289925 2.67519442311 2.52632833878 2.53585114217 +3.18659987995 2.5170060541 2.05729198069 1.79692546255 1.45540767956 1.3249389309 0.953760691342 -3.96331828346 -4.31350057997 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -3.8509435015 1.80909208902 1.28684048034 1.54427155012 1.77992113939 2.29625354476 4.16428753032 10.6087779852 2.03458864257 0.834924842413 1.56394402124 1.36536083895 2.2671713928 2.57572425544 2.34460337945 2.16138303329 2.56984931844 2.8675859134 5.12161587529 5.91958023889 4.55758145327 3.68906072827 2.98952370594 3.24285340622 3.12505340147 1.71193451644 2.53567221844 4.73943157189 5.27436478823 3.88223825073 -9999 -9999 -9999 -9999 -9999 -9999 4.61415656354 4.18142787241 4.19725308044 3.65697480775 3.64567273398 3.76603125129 +3.44151211939 2.71373625027 2.50776410947 2.15970568526 1.88493706207 2.29835465865 1.84771968182 1.23669316366 1.05031638616 -3.96692702184 -4.31745535747 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -4.20074808235 1.30770552258 1.15893825572 1.20812907849 1.60159340807 1.74757474779 2.00038556663 3.4362079149 10.1971042524 1.78528636021 1.19638435492 1.55982876395 1.47371147879 1.87240332138 2.07713024327 1.77676954806 2.49489896852 1.92582421018 2.63269184405 6.24113577257 4.42771620865 4.43385731205 4.57680788012 4.14578304838 4.00163211893 4.06214826243 3.60925332294 4.76434267244 3.98882513086 3.68479555829 3.1025905266 2.51062952127 2.14014412196 2.58811116736 5.13698505344 -9999 -9999 -9999 -9999 -9999 -9999 +3.43291611659 3.01554453599 2.98608986344 2.81067595899 2.48992023514 2.6172931989 2.72633222636 2.66032038652 1.95397762283 1.45152606221 1.30173098043 -3.97159906816 -4.32210897201 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -4.20276222864 -4.20396881762 -3.85699316957 1.23417874586 1.11329246533 1.78201884832 1.77920024759 2.07700382433 9.55756053266 3.06780019495 1.92917234639 1.55536658629 1.15527527574 1.36536083895 1.62691971921 1.43601051865 2.19341986155 1.8154671763 2.1004181729 4.37991289042 6.14994079001 3.8423712702 3.44141764255 3.23620818312 3.4731116338 3.81216908675 4.42370316353 4.26678827004 4.53805720785 3.71702563803 3.24410965343 2.91525313963 1.90764318606 2.3631605366 1.85655914049 6.56425060059 5.05524053783 2.9562668468 2.38916356847 -9999 +-9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 2.29399542044 1.93305779977 1.61242930505 1.12689881214 -3.73825690917 -4.32531809683 -4.3288717429 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 -4.20517383867 -3.85779701233 1.47693258493 1.25157180883 1.97722560393 1.96748128884 2.26916062637 9.89893469546 3.20999112785 2.06592273253 1.97265538172 1.84357702662 1.81859838864 1.45162703602 1.80048849926 1.4734235455 1.91436720758 2.89060754441 5.56501946765 4.29084990358 3.66575349831 2.96245027307 2.82947954703 3.1505535044 4.11873850329 4.5084120072 4.18163145086 4.44632692456 3.58357519192 3.44756451881 1.64143862787 1.94052999559 1.90707954357 5.41355311672 6.59154898762 3.48036221803 3.01923626783 +2.46191717898 2.09127792867 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 2.05648241958 -3.98477834155 -4.33347275355 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 -4.20557518989 -3.85819869153 1.56394402124 2.18705648663 1.82408952408 2.05429594336 2.65508335032 10.5840960948 2.69837023215 2.41610219441 2.20187633174 2.19463503419 2.00544089771 1.34506645076 1.52807202297 1.64318373649 2.1000255895 3.08088496088 5.57882569617 4.41810703013 3.36145416916 2.6976111304 2.51527399783 3.29413815048 4.34239226431 4.59645507401 4.08233634058 4.19228170654 3.94869367364 1.99946768433 1.39328791298 1.58795522216 1.94099095239 6.71485403664 4.10921653603 +3.37533517572 2.84292749488 2.4550598759 2.28330766909 2.70385126145 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 1.66142185214 -3.98936791509 -4.33840411214 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.20597638009 1.88239772566 1.46323314613 2.18176632961 2.35584964768 2.17445157966 8.72337895624 3.1304425914 2.34379272071 2.11764240553 1.84946210583 2.02694566615 1.73675589282 1.41190611516 1.26959178617 1.83134284942 2.14186983872 2.93577647117 5.02611946993 3.71127132747 3.01176787912 2.50402287317 2.71294136468 3.37068691214 4.50175286549 4.16406168853 3.85796482567 4.17960209286 3.51356265853 2.28281440553 1.26959178617 1.71512842073 4.76874453246 +6.42968354966 4.07483139944 3.54532999742 3.2823589671 2.98670177671 2.53415763571 2.6564376947 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 1.93161778951 -3.99463752335 -4.34226170608 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.20717898587 -3.86060538434 1.84041855498 2.27040177943 2.48089200181 2.86396236474 2.96029347588 11.2598314313 3.44835676141 2.21968927856 2.22379024405 1.66070000585 1.35479851905 1.04702226231 1.39394009493 0.904998171149 1.48144251286 1.6108580921 3.38898401195 4.92194061194 3.50185309754 2.91232465051 3.13884008867 2.99041626832 3.35484535212 4.55401833132 3.83593940485 3.98320338575 3.69027210245 2.7329669411 1.67214697389 0.966107013368 +2.32416454626 6.17996760489 5.11513555152 3.41528980613 3.53513591005 3.49905083734 3.31373926894 2.39584924743 2.0627239615 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 1.39688988729 -4.34401020554 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.20957998064 2.10183222642 2.04605157638 2.28271477406 2.81353026599 2.9598260875 3.96224823441 9.4503926333 3.58167112204 2.17569706273 2.32831865184 1.99627690765 1.83974473741 1.26637060629 0.864636514547 1.12689881214 0.904998171149 1.38469430351 4.11345736814 4.49427991539 3.10437846647 2.71694670696 3.02803813438 2.74490873714 3.57326250405 4.6583846656 4.04678907828 3.53988235278 3.58777747652 2.63153996126 +1.23417874586 1.99600358171 3.36040580982 6.59923527964 4.9133463039 3.74911457398 3.59804209795 3.66527311683 3.16899467077 1.90090115152 1.35178643262 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -3.99918217194 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.21197522444 1.71193451644 1.98376521798 2.37195881062 2.69788976588 2.81978736545 3.37824139788 3.0409409276 9.0314636271 2.91631484441 2.35718336458 2.432314831 2.15662683586 1.88158430314 1.21997360905 1.97628496238 2.14150839862 1.81871760282 3.0245079629 3.5865282662 4.35877270016 3.19233297382 2.88197151706 3.01383212645 3.28955271645 3.69889773583 4.4124725246 3.49804385673 3.4212789365 +2.83289566451 2.48824635522 2.0494938502 1.96246415545 4.4298179552 6.03382688443 4.93653583932 4.15578665259 3.61380765094 3.60516302148 3.59854507987 2.5807674032 2.98188775642 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.21476242481 -3.86779106317 1.67793996009 2.50265436146 2.76792434824 3.05756586232 3.11389044552 2.6589771635 2.25277560169 8.9177353622 4.20333190634 3.18447276752 2.9998893707 2.34335919447 2.23385691109 1.82650364905 2.06817170079 1.73948401812 2.03761152572 3.08672364627 3.55872518626 3.76210518768 2.73831172782 2.71264727674 3.25618336148 2.92255898874 4.13524614049 3.67199793707 +3.03019966728 2.74151574789 2.45190735012 2.42078820983 2.08987612074 2.52008571574 5.27748922215 5.21648992647 4.82467013338 4.27619817559 3.79539651476 3.89199493262 3.82691792038 3.11759232819 2.66693530457 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.21754176588 1.37094746986 1.8293051577 2.50030202791 3.23741075371 2.91061006472 2.94087565416 1.73945440478 2.84439893626 9.12618074692 3.68166549531 3.15919689911 3.16872704395 2.4190503321 2.09841226737 2.48391040753 1.95633951825 1.79026343937 2.5080733398 2.88466630223 3.50798280241 3.52892017015 2.83201661429 3.15521019904 2.38269977959 3.87613292018 +3.35238177515 2.76056336283 2.9169609063 2.08473794493 2.34297907249 2.38544820923 2.52094205988 4.12806229722 5.49951230801 5.02859483202 4.24820425912 4.14109890052 3.95789351055 3.62278134533 3.71431399315 3.53904993539 3.17162300535 3.26122242202 2.65497036791 2.41498192444 1.91899596189 2.14237847383 2.3201145157 2.10682114123 2.69660585656 2.56212497528 -9999 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.21912661163 -3.8725529631 1.36536083895 2.061043316 2.78112280879 3.04318532699 2.76092926792 1.86784762379 2.1732975974 2.71114438876 8.70888919187 3.40257111663 3.47145567882 2.91345680822 2.38570118683 1.96221295641 1.62350819713 0.904998171149 1.50096316976 2.41915229444 3.14641097965 2.96971013461 3.25948126284 2.61247644637 2.94035662674 +3.06851767063 3.4313856487 2.88822159098 2.34890930809 2.37202725132 2.45956492945 2.96483521458 2.32169698759 4.00172532801 5.12880030514 4.58811339481 4.16259056155 3.88452153785 3.99842806056 4.03775824091 3.63528510828 3.76053116001 3.4947020243 3.01842797435 2.79153029019 2.29186105155 2.33815813008 2.44366935913 2.43314503218 2.51264287176 2.05850801951 1.87199442036 2.29815903538 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.22070894962 -3.87453046122 1.84488409503 2.58226137273 2.62154588456 2.86035463183 2.5999801301 1.24059059559 2.10360885348 10.8405416902 4.65046616892 2.74455606475 2.74496810777 2.47981962862 2.12661162949 2.01081070281 2.18580500428 2.12186578497 1.95639991524 2.70622009937 2.71982559708 2.60720172863 2.88313298238 +2.25386457218 3.29085584944 3.19755087795 2.2689232279 2.35099448206 2.51056099637 2.88066110834 2.25426410188 1.96849753739 2.56769628904 4.56928674959 4.2336103194 3.88878974441 3.73285684441 3.75581034516 3.90003731068 3.7362639929 3.17125583363 3.3246736834 2.8012111842 2.66517002003 3.05694585929 3.06401197545 2.70428316156 2.57401323187 2.22380215698 1.93161778951 1.65925419393 1.93161778951 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.22347183505 -3.73030993656 2.38426027313 2.82282701899 2.73283094584 2.67911461954 1.69584091652 1.64795102316 2.4953336098 9.3845924285 3.46786175511 3.09221689231 2.96140059304 2.52755638012 2.38385151596 2.21698100659 2.26593948341 2.00700751018 1.9399170302 2.59989968418 2.27021962702 +2.73647322047 2.74287302048 2.18173925906 2.91398848938 2.78410971498 2.40775592824 2.50411464784 2.47810971868 2.16918193681 2.04776066457 2.43601373249 4.10706566178 4.09695345281 4.27556366104 3.96491575996 3.29324327652 3.41889476723 3.56638014103 3.27595555096 2.71282794137 2.35783132414 2.67535687228 2.89109869208 2.96658919768 2.67693525694 2.48333465123 2.04552712343 1.67886912952 1.76461470088 -4.00786432744 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.22701304781 1.52807202297 2.70070480579 3.04796550109 2.79497776122 1.8349369652 1.67531819943 2.0707832919 8.82252732417 9.04264081887 3.60777123021 3.33456210272 3.37849231321 3.12511343583 2.98658933078 3.18419799807 3.13697081109 3.19630658136 3.4982026372 +3.63181546594 3.23772654608 2.86012957197 2.76908974008 2.21990086607 3.13967510864 3.15279562208 2.32908089938 2.47832046646 2.24147418748 1.47784591712 2.63716463297 3.62117031677 4.23599781138 4.34374812667 4.17215851979 3.8800486489 3.32421423904 3.31839483854 3.43469898446 2.95737467505 2.83919147061 2.75603281938 2.78116326733 2.69616698804 2.6069096713 2.38542999732 1.87013921989 1.50995970859 1.85208543628 -4.35547464662 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.23015031165 -3.8843594809 1.53582409545 2.54324788778 2.60683129202 2.23268951936 2.03456869617 1.66031901273 2.07482059619 8.95225612619 3.99503101941 3.87673032492 3.63149412299 3.61736057179 3.66625486959 3.55327844403 3.23180951687 3.07928072268 +2.92563114154 3.49300842711 3.17875481799 2.68188343303 2.65034619724 2.66495783423 2.15976542909 2.5946912174 2.47548562195 2.18406332539 2.30365480835 1.88231041225 2.71724815294 3.66895033974 3.53228641061 3.42847871872 4.06491043723 4.21904771528 3.73446795957 3.35320037591 3.24674544148 3.54269586628 3.08434016675 2.72193613265 2.6495916844 2.62729805098 2.32487525393 2.14310173315 1.84511672344 1.32791012803 -4.00993689546 -4.35685543725 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.23249684497 -3.88592325055 1.53582409545 2.50295391332 2.62715920011 1.59648975583 1.65925419393 2.27340178254 3.92559533139 9.52420353835 4.35255232298 4.24452851828 4.00660601597 4.05036486452 4.07564396828 4.29244281414 +4.13718275831 3.93620407932 3.74399805944 3.24823117897 2.67863061751 2.14329257285 2.32008312532 2.57953440156 1.97149331544 2.01460796893 2.24463816982 2.06908150752 2.38060179767 2.57290460169 3.32620361498 3.22541597985 2.87255478536 2.84906150121 3.14722712018 3.83232157194 3.73355225784 3.3738461318 3.10972305181 3.0783824525 3.0126884843 2.70247154469 2.37701934147 2.21594852933 1.7905663896 1.54446136889 1.42425232017 -4.35720031277 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.2344479999 -3.88865391845 1.8235062602 2.67936458178 1.39688988729 1.92148583115 2.31492779625 2.58079259439 10.0671402089 4.18303201546 2.48004470582 2.76809320792 2.21975449898 2.41163585376 +2.72233805112 2.87777649207 2.9566624254 3.07859215209 3.56714254974 3.51827025808 3.07517994755 2.66292593689 2.17837547664 1.71642219405 1.30568485473 2.02613961055 2.51752615492 2.22049245126 2.51618821834 2.92512892046 2.87648439467 2.46027753415 2.13500159218 2.30239734109 2.96247729853 3.99899804998 3.46180769521 2.75297628223 2.4593444144 2.51954280867 2.66231293342 2.39187167846 2.34749289985 1.95071972142 1.26959178617 -4.00993689546 -4.3578898049 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.23678448193 -3.89059978467 2.00582778007 1.75747492973 2.02302766164 2.01398384031 1.9353634132 8.28032443636 9.42062891252 3.23225322372 2.85142375971 2.63499637736 +2.32288499284 2.38119273518 2.56142517668 2.43658876809 2.13874419827 2.4421722414 3.0622994885 3.01056186206 2.39922767566 2.26635787924 2.0881690986 2.10280315082 1.54896333728 1.79303313719 2.01611762882 2.1467010975 2.55402047919 2.68512261555 2.12113360597 2.19729799805 2.18784256473 1.97085541183 3.22195338375 3.41490348831 2.55745916529 1.80836913786 2.02437520588 2.32820620318 2.30759605754 2.21845226795 1.79185448355 1.36536083895 -4.35651044275 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.23911551754 -3.89215383386 2.17424113542 1.78161376989 1.66182532765 2.33462304257 2.88741423188 9.10007837926 3.42507875493 2.94237275959 +2.8127322835 2.53876366757 2.0022259593 1.87405865558 1.86034555364 2.13162253607 1.75838186935 1.53576117813 2.66798311009 2.76311417086 2.19218354609 2.26911847412 2.14978651731 1.79474202891 1.15527527574 1.23417874586 1.89020463928 1.72474211719 1.94023570456 2.15717099349 2.61581499842 2.33007023231 2.11432300917 2.43129912676 2.74600011955 2.71947024196 2.3077782574 2.12094825292 2.09728521062 1.94471898939 1.82028514873 1.42425232017 -4.00786432744 -4.35547464662 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.24066645478 1.93161778951 1.39394009493 1.65925419393 1.16272193908 1.20110889268 8.92576682009 3.52474874373 +2.80104148375 2.8019878683 2.63096017142 2.6032216009 2.4503756596 2.53678579099 2.30272173108 2.37427361805 2.28820790401 2.40564805053 3.06982185097 2.95674432586 2.60387091614 2.57441492391 2.53215125203 2.56722360127 2.34377649406 1.9569814097 1.66987562969 1.04736646753 1.84767637755 2.76847861856 2.97914793751 2.24472718768 2.05942087398 2.11751206054 2.5971395583 2.53716573586 2.37078008195 1.95571847358 1.32278192374 1.47693265019 -4.00648020203 -4.3537460955 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.24260185946 -3.89602822983 1.65925419393 1.18149847381 1.92639299688 3.27028356359 2.30258509299 +4.376238507 3.0703301921 2.91523691605 2.96220808551 2.90102842155 2.62540033995 2.65709309244 2.55178498043 2.77255689387 2.46953736592 1.82118341433 2.30868203389 2.76678520173 2.60966057139 2.42279416928 2.29807410659 2.73546821853 2.75871667935 2.77026148679 2.43728057746 2.11398341932 1.53732774394 1.88062691149 2.17675448074 2.78163710883 2.37867718697 2.11142936396 1.6332195199 2.78773708021 2.14750494468 2.0535454885 1.39394009493 -4.00648020203 -4.35305383757 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.24453352558 -3.89757387231 1.12689881214 1.56479448876 2.34492232389 +9.57089465299 5.7674220255 3.18023574223 2.75469785971 2.0177386153 1.70782944769 1.59011905117 1.81300216011 2.32426093284 1.92785807366 1.2889330472 1.41971738968 2.19919840962 3.0856280709 2.37459848583 1.60214185001 2.16619751829 2.50630552123 1.73025305951 1.20110889268 2.29266268583 2.28794097693 1.84292243871 2.18544290661 2.12498132578 2.24141131961 2.77903321483 2.12508513445 2.22152386192 1.93398017006 2.39618480168 1.39394009493 1.65925419393 -4.35305383757 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.24607608901 1.25378911192 1.55982876395 +1.90937725349 4.86061767433 8.9006818658 5.37742039136 4.02807110672 3.50291242207 3.41469594236 3.20535122351 3.11200475023 2.45776379572 2.3034751479 2.61074472119 2.41381868974 2.86637099617 2.44125397343 2.47818573551 2.30296237215 1.70041223023 1.28982178631 1.61921984305 2.60248621961 2.74666084121 1.99958610182 2.16435257751 2.34949156615 2.23138852458 2.41766934004 2.23992865793 2.39756960135 2.11552110291 2.05540522581 1.42425232017 1.47693258493 -4.00682639568 -4.35340002644 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.2476162766 1.47693258493 +1.6144860182 1.60627424977 4.384445244 8.22715374987 4.27311120181 5.89347322122 6.28162977231 6.27966508835 6.17141566727 6.4996755579 6.45153175295 5.87343182566 5.32679575071 3.87550606051 3.30208492936 3.37302436949 3.29542173878 2.57945784393 1.46650012066 1.27009440567 2.61569678781 3.33752736898 2.46767654122 2.01109122392 2.26423251365 1.99441774816 1.79852706019 2.27970203603 2.35637895837 2.24732773901 2.17767202542 2.02518153365 1.58504410331 -4.00717246953 -4.3537460955 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.2487699715 +2.00582778007 1.77145741663 2.4478087748 4.38134624076 8.16858323373 4.89003589527 5.32041434048 5.31026649117 5.26973573559 5.21910787421 4.33217284084 4.45632757485 5.52129464311 6.07331083328 6.20979586305 5.90173907789 3.09929554697 3.2625232791 3.38767252304 2.74322440514 2.88849917716 4.17774301415 3.28912960607 3.02138839359 2.84948328495 2.45724950805 2.41790819413 2.65321897238 2.9370330231 2.7952011223 2.60674029491 2.25225827052 2.12319854736 1.77082594706 -4.35305383757 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +-4.24953829007 2.19865903779 2.74730816785 3.05557466133 5.08946408375 7.91726986656 8.82549076455 2.8935959286 2.93411075974 2.82653154311 2.72198735524 2.24655394306 2.00335007318 2.50607244669 2.57238826625 3.39173669801 4.63748480015 6.06928110193 6.11774794462 6.59673925498 6.96341414931 5.76525329518 5.49126865863 5.38596397721 4.59396938443 4.10586442442 3.47522231137 3.16348703136 3.21012341464 2.85756276515 2.59312268503 2.36329836109 2.32834716735 2.23477026581 2.00582778007 -4.35201445304 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 -4.25030612756 2.17007976549 3.35213583606 4.44570396147 3.88470992522 3.97391358245 9.0070910631 3.07368268674 2.38663537015 2.27876884323 2.2608336504 2.38976186488 2.24729968021 2.13783285543 1.98496029661 1.48781566362 1.30227720151 1.37378679112 2.03892393003 2.69833824553 3.02991275015 2.6853266696 4.59439578272 4.92616387557 4.61073551042 4.2974068683 4.00589039158 4.00162936863 3.70375857424 3.48273486949 3.31421984392 3.08709411179 2.8929946325 2.83416741748 1.93161778951 -4.35132099491 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 -4.25107315852 3.59998369327 3.33936996754 3.87724218204 3.72684016819 2.87130171469 8.80016210998 3.75830348358 3.42313882756 2.98964988601 2.73618098198 2.43208870939 2.16142320934 2.28522611719 2.0240537139 1.75572552092 1.44013521302 1.23847060895 1.8544688004 1.81474298819 1.45555203575 1.18418042207 1.751810964 2.86338801948 3.21206911826 3.05082883535 2.94937775443 2.95304886671 3.53161937298 3.41462752508 3.2794032204 3.24305842535 3.50243823669 3.13903293537 1.8235062602 -4.35097408544 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 -4.25222287441 3.48153433649 3.5674131131 4.43677481584 3.28838545018 3.34504299411 8.93489954572 6.15346793117 3.22276412491 2.67141084031 2.54503510595 2.17547421786 1.99180746027 2.07096932705 1.90514774665 2.2328881015 2.01420874084 2.10739695915 2.35132587593 1.49665989254 0.932719577726 0.692046292924 0.949365947688 2.19294488862 1.45915907497 2.4728954246 2.3751509553 2.59593906531 2.69984128268 2.53025244536 2.11955966437 1.79185439413 3.09287755265 2.63005421154 -4.00231643312 -4.35027980679 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.25375363105 3.53070271541 2.38236064984 4.86955663854 4.17248504157 4.32401671471 2.30258509299 5.49532919367 6.11925823778 4.09124510844 3.27883574314 2.89528405782 2.92834828256 2.61089520464 2.19219949183 1.88952601445 2.1298616768 2.30295238465 1.94293684486 1.61292914288 1.16459772171 1.16825433342 1.77742240991 1.3939399748 2.54674610367 1.46444619161 2.83603689818 2.73146789084 2.69276145813 2.6198357429 2.24052472188 2.12506036662 2.11739950073 2.00582778007 -4.34923763201 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.25566389579 2.75466460515 1.98621750982 5.81680475708 3.6116437191 2.5830767048 7.54349931668 5.60121617053 6.26251520199 5.7705552965 4.75409246028 3.35948084746 2.91389491332 2.85339411376 2.81778502886 2.48847405512 2.5697667832 2.31578098421 2.08000591848 2.08791142694 1.60872393982 1.71280643276 1.2623108304 2.13286273811 2.03328213955 2.35458480757 1.77788107774 2.20334191545 2.07363968044 1.93477351393 2.16666554562 1.86509781067 1.58504410331 -4.00474743372 -4.35201445304 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.25757051838 2.65909453705 5.51321861717 5.15570187588 3.37425889815 8.56158590352 3.67779230415 3.4550067753 6.26301495328 6.53995412165 6.68436730772 6.20550149339 6.07962051937 3.56563840234 3.48804107233 3.28152255661 3.0323633321 2.90338015099 2.85990787995 3.12733044572 3.01154501318 2.2853546329 2.51188774615 2.30324198797 1.91199328208 2.14437680645 2.37437423732 2.44797342278 2.25158026336 2.05740123888 1.85788435005 1.36536083895 -4.00509422767 -4.35305383757 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.25985354804 2.38888843329 5.82996707728 3.23199209038 3.06537251303 10.0025905419 3.08216054037 3.66378329194 3.83699621592 4.79621551921 5.0687198937 5.89260151536 5.91857794089 6.63928890815 6.20300280569 5.53011715246 4.63801379786 4.06083946746 3.57649148346 3.12874151257 2.86003927598 2.52157392503 1.91142859387 0.502986491202 1.64127555252 0.923018147358 2.03066220858 1.31947761323 2.05777224609 1.96607283265 2.05795097583 1.21325512769 -4.35166778409 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.26175220681 1.85208543628 5.53491203528 3.57651811807 3.51329890198 7.78551494371 1.55982876395 2.85537683988 3.67758151555 3.53027035494 3.65749251804 3.41950956986 3.91323849022 4.44294117173 5.063471075 5.60360205921 5.86157059192 5.52850312419 4.97331756188 3.36213964261 3.19615171071 2.77391747692 2.24245374061 2.05681555865 1.16570878139 1.67355007311 2.62607606256 2.25220060113 2.3203568007 2.95492396435 1.83603342392 1.29307032926 -4.34993263434 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.26288960967 3.46168100559 5.09819432558 4.44024277322 3.45317771123 9.97522199088 4.09092072683 1.94383340129 2.78552753905 3.0874056735 2.60827997782 3.38662915082 2.77615675566 3.01994223854 3.87974453563 4.57220284312 4.87855547975 5.24929973293 5.32726836381 5.52747898837 5.07670621719 4.58349020568 4.29280610409 3.99048767543 3.94556605884 3.71688931784 3.17341229761 2.56761422265 1.98213257374 2.32705576438 1.53688916851 -4.00022806413 -4.34923763201 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.26478251818 4.18694203247 5.02338234268 4.79221255164 3.32251719196 3.44971516363 2.30258509299 7.18658191663 1.58504410331 1.84254573194 2.90148172655 2.48546387002 3.06144800355 2.87973303328 3.17961606585 3.40691951059 4.05756428999 3.41361076636 3.3524508533 3.72242971148 4.23948248446 5.03231479811 4.67828880312 4.70898325664 4.42202543743 3.94259452451 3.19174962665 2.59652938501 2.52814006511 2.04042067536 1.21737043985 -4.34680155991 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.26629418373 4.23248109818 3.59260063168 4.37437923014 3.98342091611 2.97769350108 3.23934730953 2.50275802483 2.30258509299 2.77058955556 2.40608837478 2.69076954103 2.63525269548 2.79614388492 2.53768097349 3.13134554001 3.56512457497 3.75095377895 3.13040013783 3.41359186971 3.55482437067 3.00774600043 2.65896450117 2.61769734591 3.59855460977 3.28325666442 3.3753259188 2.63589622186 1.96383185263 1.32075950841 1.23847060895 -4.34714991964 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.26818066472 4.0418584003 3.45578912227 3.94101666483 3.86688293083 3.4374837284 3.61330660685 3.9713670457 4.12592844997 8.22255448031 1.53990673737 2.13152212798 2.27339744078 2.09151909448 2.51822999601 2.48500148527 2.97689607766 3.36230764454 3.35812000121 2.81443926174 2.97540285777 3.01757372816 2.50634927442 2.68985550729 2.23701756999 2.91046056479 2.35685600242 1.94991425882 1.36185348045 0.961131834617 -3.99918217194 -4.34749825679 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.08041837871 3.74297299863 2.91702894435 3.74755199693 3.74366596222 2.9710454121 3.7438429778 4.40361042742 3.96042058617 2.44807294844 7.42108069774 1.10106178869 2.04667897586 2.41587128109 2.0448873176 2.32251698132 1.8793066621 3.24989424077 3.15776675919 2.64469923811 2.32741903446 2.58411057854 2.51793747727 2.57933894061 2.23605921872 1.71598083199 1.73078597567 1.49689780514 0.619533418954 1.07146752032 -4.34680155991 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -2.38333371061 3.50081773487 2.51047514048 3.77893910771 3.64077671379 3.0297055363 3.56194279534 4.30687023549 4.05726583447 3.33438301718 1.97070249525 8.03062834334 1.3921943527 2.42336173512 2.43565594996 2.27087314907 2.2763455646 2.14234546658 2.99001881707 2.65011983634 2.45498429521 2.35855573797 2.44270068755 2.40540145452 1.80128592358 1.24718633478 1.53270818504 0.941702114359 0.825400853156 -3.99953097083 -4.34784637395 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -2.59501181789 3.68399012156 3.10970025609 3.27359374688 3.28996800637 3.38684813786 3.46114058813 4.12960362171 4.31526955735 3.20926584635 1.59586163845 7.33415118088 3.26500767425 1.72813815695 2.5859055448 2.28155352883 2.19019852064 1.91496541348 1.82920685808 2.20318668666 2.20401464957 2.53029080345 3.16189818839 1.89918947217 1.13719289073 1.51949229582 1.06533257992 1.01601716823 -3.9988333213 -4.34714991964 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.33383478108 3.43865767236 3.54650820893 2.92951024386 3.00747163456 3.28707326657 3.46756666536 3.98670511733 3.77786360875 3.63511563984 1.81183295108 3.4326440185 8.66000745664 3.39411905652 2.54404747227 2.88355893148 2.42523632578 1.97190603536 1.53140143583 1.61259902905 2.26274765568 2.86591448196 2.65194917122 1.99422089985 1.62278367343 1.04736646753 1.32278192374 -3.9988333213 -4.34680155991 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 +-9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.841827318 3.13142353188 3.26137235235 3.03319689585 3.03264592831 3.1628492011 3.19502490923 4.11905599888 4.00126955204 3.69962293955 2.60625878436 3.31055673746 0.149529734333 6.72675916504 2.14817765229 2.89403874215 2.83306117008 2.28408352977 1.59894468699 0.98557668935 1.92354862101 2.58986219416 1.99355400576 2.24858837709 1.8737945457 1.23417874586 -3.99987957822 -4.34749825679 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 +-9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.28980717652 2.7893272713 2.7437659598 3.20340982271 2.88263621551 2.90370614763 3.07226286512 3.78533363178 3.71453672078 3.31519747973 3.12318218844 3.79034169549 0.834924842413 8.92948144127 3.58431975686 2.82191631899 2.61121875988 2.62092955242 2.27098142516 2.11844943645 1.55630042709 2.07938694532 1.64900037953 2.00077677861 1.43852873477 1.06533257992 -4.34819436997 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 +-9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.19714469688 1.9668544598 2.10612413264 3.10051326226 3.07383299672 2.59981132149 2.94135134265 3.54943273523 3.42425772865 3.21279634395 3.38092016684 3.64948622561 1.02029132575 6.34708722036 4.96087127695 3.54475469988 3.03228326738 2.51647459701 2.41246510621 1.73715547341 1.33459885204 1.9987206348 2.18910691072 1.71044630273 1.11329246533 -4.00196867435 -4.35027980679 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +-9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.2997173135 1.09362685734 1.73616997209 2.47705229885 2.81208832865 2.59053677373 2.96970207693 3.37725516919 3.2949821692 2.88484533723 3.03819061185 4.06292567656 3.18121970055 4.94113254548 6.49952601767 3.08844156267 3.27859943049 2.74999677015 2.48059916335 2.20999774541 2.05954742661 1.76174375306 2.25727339922 2.14590655925 1.32791012803 -4.34993263434 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.30409045546 -3.95897046363 1.10501826841 1.96760013552 2.71623140435 2.2667893896 2.53085567973 3.3721338028 3.15391429244 2.72431803676 2.66438338141 4.17563005735 3.4913249701 4.33357367961 7.45826351016 3.80841833849 3.4922719523 3.30533286842 2.96177004867 2.56983559454 2.43383641639 2.24626797335 2.05318998022 1.63642279004 1.42425232017 -4.35062705557 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.30953020262 -3.96440227304 1.46905878083 2.25301302581 2.34788518823 2.38939359635 2.84151728238 3.15266652129 2.83347302678 2.64444856262 3.99727749345 3.89019694658 3.98062992059 6.56437471262 6.21277537516 4.51708841451 3.70918596892 2.93233403751 2.68435418178 2.46658716324 2.06143277094 1.6091707554 1.29307032926 -4.00335898441 -4.35097408544 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.31565966071 -3.69427241006 2.03143271924 1.81018168586 2.30304399012 2.6732780668 2.70838682283 2.68417837011 2.30826968101 4.00545510697 3.72295169312 4.28501734344 5.37364717138 6.73826732348 5.50517659542 4.42509897528 3.917457132 3.17616498581 2.73669573308 2.41863396827 1.85186789161 1.13035907964 -4.35027980679 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.32103700489 1.11824637002 1.58414079493 1.89032747412 2.16731547717 2.05793044128 2.52763391762 2.11387835064 3.44300189085 3.29239851833 4.27636501189 5.4130713499 5.37303791472 6.23521880589 4.49410079764 3.88762170717 3.35226640718 2.6408087953 2.41337295157 1.78531061112 1.20110889268 -4.35062705557 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.32602991772 -3.98158846686 0.899268201981 1.79343722671 1.9548221479 1.86962917866 2.72813369438 2.85893738518 3.29362377108 3.57961342567 4.27483737824 5.01550750611 5.30348680864 5.76592194275 4.85004085293 4.355488282 3.93714241687 3.13154641982 2.37788294504 1.65228415743 1.18149847381 -4.35201445304 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.33241290549 -3.98760514289 0.973663726172 2.05715533731 2.06685615679 2.3176877031 2.32745974542 3.40008829255 3.78778599889 4.03684586749 4.18927583817 4.44507733913 5.60046205316 5.59399808497 4.05034999857 3.76827929396 3.52858155985 2.98258894143 2.2562187662 1.21325512769 -4.35270752882 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.33805269181 -3.99253296889 1.90640230825 1.98108055618 2.13466001026 2.18878477317 3.37676569119 3.85133806904 3.83669912863 3.88974763595 3.48536436142 5.27313855787 5.6760776402 5.18890310014 4.12079955334 3.283811352 3.1748594796 2.59326695266 1.28354613791 -4.35305383757 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.34261165064 1.13035907964 1.69872221691 1.98004302742 2.16384516155 3.1037461898 3.97141211155 3.73012334044 3.51586389663 3.34757697819 3.81069650317 5.52444987245 5.86376835019 4.68850864938 3.20975180063 2.76178930669 3.16070605782 2.11497684221 -4.00786432744 -4.35512917534 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.34610447616 -4.0005763588 1.11665964323 1.54796772507 1.92637928983 2.83745517037 4.08338327298 3.79040016286 3.55374378058 2.91763701614 3.16093181961 4.67446987794 5.86673176822 5.50019507185 3.15941205294 2.72706447516 2.52679019258 2.72362355144 1.5119450697 -4.3578898049 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.35062705557 -4.00509422767 1.10004674912 1.54796772507 2.96667336267 3.77957179583 3.37909719381 3.32851075632 2.7627375501 2.96102357365 3.04954555913 5.38856149244 5.89896541091 3.86517383956 2.75867729517 2.7038854282 2.56972610206 1.45547557547 -4.36167300187 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.35443787453 -4.00821004234 1.10004674912 2.8841570446 3.9293189763 3.1154880665 3.39713990215 2.1542773955 2.54068826801 3.16769733562 4.99996841722 5.66943916761 4.62524107948 2.66889874579 2.42884991421 2.39838169048 1.86917407342 -4.36441564999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.35823422627 -4.01200510779 2.81346599911 3.76598940172 3.24209103521 3.14620717846 2.24518280751 2.57909066497 2.83682974125 3.81139786805 6.32767304374 5.04065461495 2.52746130926 2.7628427299 2.46876262048 1.79328302128 -4.36680914263 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.87243652715 2.89124673443 4.03905893794 3.20698777093 3.02251058103 2.11831185999 2.83972097437 2.67021480161 3.12224336969 5.46047900637 5.58426033258 3.45268552065 2.91020438004 2.76934434569 1.37781942781 -4.36953766283 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.36441564999 2.91132140206 3.73410510171 3.31140533531 2.88839724831 2.24638798615 2.89241425838 2.49590058931 3.29741665282 4.71313199771 5.67228181082 4.03855475405 3.46698993603 2.69399426355 1.8189998977 -4.37259845961 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.36715060297 -2.33814411684 3.91933665465 3.5360091947 2.77495036254 2.3594167059 3.12684393975 2.80434689582 3.11084527705 4.38992014037 5.96632015851 3.96926346711 3.51813476528 2.84048229664 1.97759676818 -4.37564982052 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -2.12602180496 4.14852363911 3.27388506365 2.97679057751 2.8901812647 2.85957445872 2.89676716487 3.47284788696 4.64006836057 5.91238283218 3.76367583547 3.39284293429 2.69622717885 2.13984655567 -4.37835426179 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -2.18831017463 4.38605730047 3.36007572797 2.9293752524 2.15868987609 3.14733609908 3.57327199515 3.54967689708 4.17859798362 5.90227722135 3.23171602572 2.54933598118 2.73481106037 2.62005023345 +-4.38105150424 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.00110217959 4.7336357921 3.38006204411 2.62656051703 2.67639058916 3.2636657921 3.42220959095 3.39253964154 4.23275726758 5.84684884828 3.33872259821 2.29412750616 2.8807662365 +2.29677022431 -4.38441283496 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.3797038402 4.45548407559 3.1424063237 2.55800709133 2.33149344911 2.98506344323 3.88186695959 2.91854916244 4.23814309604 5.69924856521 2.98924444846 2.20184500617 +2.42698128424 2.58114435323 -4.38709390208 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.44357992547 3.9724881675 3.17680699335 2.74264218768 2.23306712327 2.80640829828 3.53164031861 2.98883532755 4.10787846613 5.85843576329 3.21337348543 +2.06941686476 2.39357230395 2.56457164711 -4.38943378809 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.67958306513 3.81616739412 2.99202673187 2.5301015533 2.36411144499 2.94842619068 3.14628703101 3.07561677197 4.19361902467 5.71828831059 +3.99817922374 2.62358037452 2.10451121728 2.01650989609 -4.22602024352 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.53544201131 3.40058217533 2.84426855465 2.59334497345 2.32813030174 2.68216011575 3.01872358408 3.3376560464 4.20207041245 +5.86085773926 4.12925672067 2.2416939407 2.30864755222 1.65925419393 -4.39442965714 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.73915434012 2.97888643408 2.96175334066 2.43261219174 2.35545846484 2.90063188888 3.23490418121 3.57805940576 +4.00884409684 5.36621304608 4.50155989332 2.36564262198 1.93936930939 -4.05117281671 -4.39708394403 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.2657529607 2.60203298715 2.7955781573 2.89560284171 2.50252668552 2.88021183157 3.18963171334 +3.33812873981 3.42692142278 5.26917284336 5.24289271127 1.922427437 1.47003591213 -4.40006160795 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.65871542917 2.48933777628 2.61712562635 2.80213163759 2.20785094663 2.81330755389 +3.36046857739 2.87992187076 3.47653831297 4.58166125287 4.93294900704 2.46407881187 -4.05579784165 -4.4027010077 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.6788969906 2.07910936057 2.58946606223 2.72567251175 2.04712727702 +2.93936332185 3.14386320515 2.69458576534 3.65220410946 4.30190297341 4.98176439595 2.62297777352 -4.40500479327 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.54928845755 2.04917609429 2.4125863597 2.4478715808 +2.32589078483 2.75348981287 2.9634406745 3.20178241148 3.31516025508 4.17055952952 4.41226063079 2.66600013969 -4.40763119525 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.96345902797 2.29076085584 2.32611921742 +2.35514540883 2.36707378589 2.65202546177 2.64383818418 3.04526706514 3.45511646284 4.22411414823 4.21998684385 2.42610669622 -4.41090450389 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.73277557608 2.12744150558 +2.30797165171 1.9791532174 2.29557264947 2.40969757523 2.5895929265 2.771075314 3.42269819462 4.06088831913 3.6960973219 2.16609871307 -4.41351547662 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.81574326243 +2.2597063038 2.08966768695 1.89599266226 2.19683290997 2.22067297432 2.37199219185 2.75063903 3.41356754221 3.83811572921 3.67934943377 -3.25644642115 -4.41676961196 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +-4.30688759068 2.09240131088 2.06861641798 1.96753511451 1.929615371 2.20620673739 2.5035875367 2.76793977345 3.11651051301 3.50634398671 3.60112657603 -3.68533227293 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 -4.4344805445 1.35110730028 1.67551398432 1.95651534372 1.92923338143 2.10636076225 2.51584022734 2.12795780638 3.33167743112 3.12507536277 3.45498554685 -3.39495284777 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 -4.43766736452 -4.09204776767 1.29307032926 1.75304472919 1.58386304031 1.93103646661 2.22446013639 2.52954420781 2.88479192344 3.12005573604 3.2618847921 -3.14997477438 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.44147806527 -4.09522143087 1.20110889268 1.46338571842 1.67213674069 1.99136177599 2.30513612976 2.64194933758 2.8578960355 3.2134971424 -3.31398311155 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.44495850414 -4.09933209108 1.12346239211 1.29449757004 1.71749341464 1.82164795738 2.38861759616 2.93141943641 2.98334396868 -3.21776054864 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.44779716964 -4.10216802277 1.0871428197 1.36213992846 1.74553313629 2.34876877077 2.46716986753 2.83464435367 -3.6132320944 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.45062779992 -4.10468224273 1.01878733588 1.50446819648 2.11193124254 2.2357636898 2.51439035449 -3.55750267746 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.45345052913 -4.1068769018 1.2352494735 1.8055996653 1.85687656118 2.32406314481 -3.71001640964 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.45595279273 1.01878733588 1.31987208204 1.51984285191 2.05624408176 -4.10416971785 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.45813723726 -4.11280979273 1.05031638616 0.923018147358 1.38574531468 -4.15138665282 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.46124966822 -4.46187095841 -4.11467600856 0.936972469931 -4.45907201945 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 +-9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 +-9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Data/Weather.csv b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Data/Weather.csv new file mode 100644 index 00000000..1097e9f7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Data/Weather.csv @@ -0,0 +1,6 @@ +m,180,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Tmax,250000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +interception,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +10.51,0,0,0,5.13,29.22,0,1.03,4.36,6.66,0,2.82,3.84,8.71,17.94,7.94,2.82,0,0,5.38,4.87,1.28,0,0,0,0,1.79,17.43,0,0,0,2.31,0.77,3.33,0,0,0,41.52,0,2.82,0,0,0,46.9,7.69,0,1.54,0,0,0,0,4.61,0,0.51,13.07,1.28,0,0,0,0,0,20.5,0,0,0,0,0,6.66,0,5.89,0.77,16.66,0,0,0.77,0,0,35.88,11.02,0,0,0,0,0,0,2.31,0,0,9.48,0,0,2.31,0,0,0,0,0,0,0,13.33,0,0,0,0,49.72,8.2,0,0,14.61,0,0,0,0,0,1.03,0,0,0,7.69,5.13,0.26,10.51,7.43,1.03,0,0,0,0,0,0.26,0,0,0.51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20.25,0,0,14.86,0,0,0,0,0,0,0,11,0,0,0,0,0,0,3.5,0,0,0,0,8.75,72.98,0,0,0,7.5,21.49,17.75,51.24,0,0,0,0,0,52.49,45.99,0,0,2,1.5,0,0,0,3.75,0,4.25,1.75,0,0,1,27.49,0,0,0.25,0,37.49,100.72,0,0,32.49,3.25,89.98,1.25,4.25,26.741,5.75,0,15,3.75,4,41.99,0,20.99,0,0,10,1,0,0,0,0,33.74,4,0,1.25,3,4.5,45.49,1.25,14,0,0,0,14.5,53.74,10.25,0,0,28.99,8.25,6,0,0,0,0,0,19.99,5.5,27.24,0,0,9.25,0,27.24,28.49,0,0,0,0,0,2,0,0,0,0,0.25,0,0,0,0,0,0,5.25,0,0,0,15.25,0,0,18.75,1.5,42.49,0,0,0,3.5,0,3.5,1.25,28.74,16.75,0,0,35.99,46.49,59.48,0,0,0,24.49,0,0,0,30.49,25.99,13,0,0,0,0,0,0,0,16.5,0,0,0,0,0,0,0,0,0,8.71,0,11.28,29.73,0,0,0,0,7.43,45.11,31.01,0,0,0,0,24.86,4.87,0.51,1.54,0,17.68,14.35,0,0,47.67,0,0,0,16.15,19.73 +1.355,1.665,1.665,1.815,1.665,1.694,1.815,1.911,1.847,2.013,2.194,2.013,1.847,1.847,1.847,1.978,2.27,1.911,1.978,1.784,1.665,1.724,1.555,1.426,1.501,1.528,1.477,1.665,1.355,1.528,1.784,1.911,2.047,1.911,1.724,1.784,1.753,1.847,2.047,1.978,2.047,1.582,1.724,1.944,2.083,1.815,1.944,1.847,1.847,1.911,1.911,1.978,2.083,1.944,1.847,1.879,1.944,1.815,1.847,1.724,2.013,1.753,1.944,1.815,1.665,1.784,1.724,1.784,2.013,2.013,1.911,2.047,1.978,2.047,1.978,1.847,1.694,1.555,1.944,1.665,1.694,1.637,1.528,1.501,1.528,1.784,1.724,1.784,1.784,1.978,2.013,1.879,1.815,1.753,1.815,1.753,1.847,1.911,1.978,1.911,1.978,2.047,1.847,1.501,1.14,1.815,1.501,1.477,1.477,1.694,1.18,1.286,1.477,1.694,1.724,1.815,1.665,1.501,1.477,1.724,1.847,1.665,1.402,1.753,1.501,1.555,1.582,1.451,1.402,1.355,1.477,1.451,1.426,1.221,1.121,1.451,1.16,1.101,0.88,0.808,0.994,1.046,1.028,1.011,1.028,1.083,1.046,1.064,0.976,1.028,0.635,0.781,0.68,0.866,0.836,1.011,1.16,1.14,0.704,0.741,0.794,0.851,0.49,0.49,0.657,0.741,0.88,1.064,0.767,0.573,0.692,0.88,0.896,0.96,0.896,0.96,1.16,1.308,1.243,1.501,0.927,0.68,0.669,0.896,0.68,0.646,1.083,0.943,0.592,0.525,0.553,0.669,0.516,0.392,0.544,0.896,0.669,0.553,0.525,0.413,0.413,0.466,0.88,0.392,0.366,0.516,0.624,0.767,1.083,0.741,0.592,0.635,0.716,1.046,0.822,0.657,0.912,1.046,0.851,0.754,0.808,0.729,0.943,1.18,1.101,0.534,0.516,0.507,0.866,1.286,1.18,0.836,1.14,0.851,0.976,0.822,0.729,1.14,1.16,1.083,1.064,1.028,0.808,0.836,0.767,0.808,1.064,1.028,0.507,0.544,0.704,0.866,0.603,0.385,0.458,0.573,0.603,0.635,0.912,0.896,0.716,0.68,0.592,0.754,0.741,0.692,0.704,0.635,0.613,0.319,0.372,0.499,0.635,1.011,1.121,1.064,1.101,1.308,1.243,1.501,1.308,1.582,1.308,1.101,1.18,0.851,0.692,0.704,0.767,0.544,0.657,1.18,1.221,0.836,0.613,0.704,0.822,0.563,0.927,0.781,1.18,1.101,0.912,1.121,1.582,1.355,1.355,1.16,0.851,0.68,0.704,0.912,0.669,0.704,0.767,1.028,1.308,1.555,0.866,0.808,0.692,0.836,0.943,0.943,1.14,1.243,1.16,0.808,0.851,0.976,1.14,1.308,1.378,1.286,1.477,1.426,1.665,1.308,1.028,0.943,0.927,0.943,1.308,1.501,1.378,1.402,1.402,1.14,1.426,1.501,1.694,1.784,1.694,1.609,1.426,1.582,1.724,1.753,1.426,0.96,1.221,1.083,1.501,1.753,1.637 +9.66,9.12,8.69,8.3,8.18,8.67,7.93,7.59,7.39,7.27,6.98,6.8,6.69,6.59,6.67,6.5,6.22,5.93,5.75,5.72,5.61,5.41,5.2,5.02,4.93,4.79,4.74,5,4.6,4.48,4.37,4.3,4.19,4.17,4.01,3.87,3.79,4.74,3.98,3.83,3.67,3.56,3.44,4.51,4.01,3.68,3.54,3.39,3.31,3.24,3.16,3.18,3.09,3.02,3.21,3.03,2.95,2.82,2.73,2.71,2.69,3.13,2.74,2.63,2.57,2.5,2.47,2.56,2.47,2.47,2.45,2.59,2.51,2.37,2.32,2.24,2.2,3.05,2.64,2.27,2.2,2.14,2.1,2.08,2.03,2.08,2,1.97,2.08,1.98,1.92,1.91,1.87,1.8,1.79,1.79,1.77,1.76,1.72,1.93,1.77,1.72,1.68,1.67,2.78,2.18,1.79,1.75,1.96,1.79,1.68,1.66,1.63,1.62,1.6,1.57,1.55,1.56,1.66,1.7,1.61,1.69,1.77,1.63,1.55,1.52,1.49,1.46,1.45,1.46,1.45,1.42,1.41,1.38,1.37,1.37,1.35,1.33,1.28,1.29,1.3,1.29,1.28,1.28,1.28,1.27,1.27,1.26,1.25,1.47,1.3,1.27,1.47,1.31,1.24,1.23,1.21,1.19,1.16,1.18,1.36,1.24,1.17,1.17,1.17,1.17,1.17,1.17,1.17,1.12,1.13,1.14,1.17,3.91,1.62,1.4,1.31,1.41,1.72,1.82,5.24,2.2,1.84,1.71,1.64,1.6,2.46,7.37,3.29,2.62,2.37,2.25,2.13,2.05,2.03,2.1,2.01,2.04,1.97,1.89,1.85,1.85,2.61,2.09,1.96,1.96,1.96,2.53,12.2,6.79,5.38,5.68,5.64,12.27,10.64,9.09,8.78,8.93,7.85,7.43,7.3,6.72,8.36,7.62,7.91,7.2,6.77,6.77,6.58,6.32,6.15,6,5.86,6.16,6.82,5.99,5.81,5.68,5.59,6.42,6.87,6.46,6.2,5.98,5.77,5.81,8.13,8.12,7.08,6.71,7.42,7.36,7.29,6.86,6.65,6.48,6.36,6.3,6.7,6.38,7.64,6.76,6.44,6.56,6.26,6.39,9.63,7.43,7.04,6.78,6.57,6.45,6.39,6.34,6.23,6.13,6.01,5.97,5.83,5.63,5.5,5.38,5.28,5.24,5.21,4.98,4.83,4.74,5.04,4.69,4.58,4.85,4.69,6.37,4.95,4.62,4.45,4.42,4.3,4.29,4.21,5.02,5.22,4.54,4.34,5.89,6.73,12.65,8.86,7.55,6.93,7.39,6.78,6.4,6.19,6.57,9.33,7.61,7.15,6.78,6.6,6.46,6.37,6.24,6.19,6.44,6.17,5.96,5.82,5.72,5.64,5.61,5.53,5.41,5.34,5.32,5.11,5.14,5.67,5.15,4.91,4.79,4.68,4.74,5.28,7.96,5.69,5.24,5.07,4.92,5.35,4.97,4.77,4.62,4.52,4.7,5.12,4.53,4.35,5.45,5.29,4.83,4.63,4.8,4.96 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Model/Config.xml b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Model/Config.xml new file mode 100644 index 00000000..7631505c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Model/Config.xml @@ -0,0 +1,120 @@ + + + + + + Coweeta Runoff + Coweeta watershed, NC + ..\..\data\gis\weir18.shp + + + Runoff + Runoff per unit area + + + L + 1 + + + T + -1 + + + + mm/day + millimeters per day + 1 + 0 + + scalar + + + + + Coweeta Streamflow + Coweeta watershed, NC + ..\..\data\gis\weir18.shp + + + Streamflow + Streamflow at the outlet of watershed 18 + + + L + 3 + + + T + -1 + + + + cfs + cubic meters per second + 1 + 0 + + scalar + + + + + Coweeta Precipitation + Coweeta watershed, NC + ..\..\data\gis\climateStation.shp + 1 + + + Precipitation + Rainfall + + + 1 + Length + + + + mm + millimeters + 1 + 0 + + Scalar + + + + + Coweeta + Coweeta watershed in NC + ..\..\data\gis\coweeta_18.shp + 1 + + + PET + Potential Evapotranspiration + + + 1 + Length + + + + mm + millimeters + 1 + 0 + + Scalar + + + + + 01/02/2006 12:00:00 AM + 10/31/2009 12:00:00 AM + 86400 + + + TopModel + Topographic rainfall runoff Model + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Model/Topmodel.omi b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Model/Topmodel.omi new file mode 100644 index 00000000..ecd9988f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Model/Topmodel.omi @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..694a4588 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("TopModel")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("TopModel")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7dc67198-8a12-4a8c-ae3c-2bc9ef6d0962")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Source/Linkable_Component.cs b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Source/Linkable_Component.cs new file mode 100644 index 00000000..3ac960d5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Source/Linkable_Component.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Oatc.OpenMI.Sdk.Wrapper; + + +namespace TopModel +{ + class Linkable_Component:Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + protected override void SetEngineApiAccess() + { + _engineApiAccess = new TopModel(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Source/TopModel.cs b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Source/TopModel.cs new file mode 100644 index 00000000..8d535cfc --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Source/TopModel.cs @@ -0,0 +1,332 @@ +//--system Assemblies-- +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using System.Collections; +using System.Xml; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +//--openMI Assemblies-- + + +//--Project Assemblies-- +using SMW; +//--sharpMaps Assemblies-- +using SharpMap.Layers; +using SharpMap.Data.Providers; +using SharpMap.Data; +using Oatc.OpenMI.Sdk.Backbone; +//--QuickGraph Assemblies-- +//using QuickGraph; + +namespace TopModel +{ + public class TopModel : SMW.Wrapper + { + # region Global Variables + //---GLOBAL VARIABLES ---- + + //---- model inputs + double R;//subsurface Recharge rate [L/T] + double c; //recession parameter (m) + double Tmax; //Average effective transmissivity of the soil when the profile is just saturated + double interception;//intial interciption of the watershed + + double[] TI;//topographic index + double[] freq;//topographic index frequency + + double lamda_average;//average lamda + double PPT_daily; + double ET_daily; + double q_overland; + double q_subsurface; + double q_infiltration; + double S_average; //average saturation deficit + + double _watershedArea = 0; //area of the watershed. used to convert runoff into streamflow + + Dictionary Precip = new Dictionary(); + Dictionary ET = new Dictionary(); + Dictionary outputValues = new Dictionary(); + + string[] _input_elementset; + string[] _output_elementset; + string[] _output_quantity; + string[] _input_quantity; + + ArrayList _DateTimes = new ArrayList(); + ArrayList q_outputs = new ArrayList(); + ArrayList q_infltration_outputs = new ArrayList(); + + string outputPath = System.IO.Directory.GetCurrentDirectory() + "/output"; + + #endregion + + public TopModel() + { + _input_elementset = null; + _input_quantity = null; + _output_elementset = null; + _output_quantity = null; + + } + + public override void Finish() + { + if (!System.IO.Directory.Exists(outputPath)) + { + System.IO.Directory.CreateDirectory(outputPath); + } + + //System.IO.Directory.CreateDirectory("wateroutput"); + StreamWriter swa = new StreamWriter(outputPath + "/TopModel_Output.csv"); + swa.WriteLine("Daily Runoff...."); + DateTime start = CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)this.GetTimeHorizon().Start).ModifiedJulianDay); + DateTime end = CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)this.GetTimeHorizon().End).ModifiedJulianDay); + swa.WriteLine("StartDate: , " + String.Format("{0:MM/dd/yyyy hh:mm:ss}", start)); + swa.WriteLine("EndDate: , " + String.Format("{0:MM/dd/yyyy hh:mm:ss}", end)); + swa.WriteLine(); + swa.WriteLine("Time [0:MM/dd/yyyy hh:mm:ss], Runoff, Streamflow [l/s]"); + + + foreach (KeyValuePair kvp in outputValues) + { + + string time = String.Format("{0:MM/dd/yyyy hh:mm:ss}", kvp.Key); + + // write the time + swa.Write(time + ","); + + //write the runoff calculation + swa.Write(kvp.Value.ToString() + ","); + + //write the streamflow calculation + swa.Write((kvp.Value * (_watershedArea) / 86400).ToString()+'\n'); + + } + swa.Close(); + + } + public override void Initialize(System.Collections.Hashtable properties) + { + + //Get config file path defined in sample.omi + string configFile = (string)properties["ConfigFile"]; + + //read topographic input file + string topo_input = (string)properties["TI"]; + + //read model input parameters + c = Convert.ToDouble(properties["m"]); + Tmax = Convert.ToDouble(properties["Tmax"]); + R = Convert.ToDouble(properties["R"]); + interception = Convert.ToDouble(properties["Interception"]); + _watershedArea = Convert.ToDouble(properties["WatershedArea_SquareMeters"]); + + //set OpenMI internal variables + this.SetVariablesFromConfigFile(configFile); + + // initialize a data structure to hold results + this.SetValuesTableFields(); + + //save input exchange item info + int num_inputs = this.GetInputExchangeItemCount(); + _input_elementset = new string[num_inputs]; + _input_quantity = new string[num_inputs]; + for (int i = 0; i < num_inputs; i++) + { + _input_elementset[i] = this.GetInputExchangeItem(i).ElementSet.ID; + _input_quantity[i] = this.GetInputExchangeItem(i).Quantity.ID; + } + int num_outputs = this.GetOutputExchangeItemCount(); + + _output_elementset = new string[num_outputs]; + _output_quantity = new string[num_outputs]; + for (int i = 0; i < num_outputs; i++) + { + _output_elementset[i] = this.GetOutputExchangeItem(i).ElementSet.ID; + _output_quantity[i] = this.GetOutputExchangeItem(i).Quantity.ID; + } + + //read topographic indices from input file + read_topo_input(topo_input, out TI, out freq); + + //---- calculate saturation deficit + //calculate lamda average for the watershed + double[] TI_freq = new double[TI.GetLength(0)]; + + for (int i = 0; i <= TI.GetLength(0) - 1; i++) + { + TI_freq[i] = TI[i] * freq[i]; + } + + lamda_average = TI_freq.Sum() / freq.Sum(); + + //catchement average saturation deficit(S_bar) + double S_bar = -c * ((Math.Log(R / Tmax)) + lamda_average); + S_average = S_bar; + + } + public override bool PerformTimeStep() + { + //reading the appropriate value from PPT & PET dictionary + ScalarSet input_pet = (ScalarSet)this.GetValues(_input_quantity[1], _input_elementset[1]); //PET + ScalarSet input_precip = (ScalarSet)this.GetValues(_input_quantity[0], _input_elementset[0]); //Rainfall + + for (int i = 0; i < input_pet.Count; i++) + { + ET_daily = input_pet.data[i]; + } + for (int h = 0; h < input_precip.Count; h++) + { + PPT_daily = input_precip.data[h]; + } + + //declaring the flow matrices here since they are related with the size of input matrices + double[] S_d = new double[TI.GetLength(0)]; + double[] over_flow = new double[TI.GetLength(0)]; //Infiltration excess + double[] reduced_ET = new double[TI.GetLength(0)];//Reduced ET due to dryness + + //calculate the saturation deficit for each TIpoint + double[] S = new double[TI.GetLength(0)]; + for (int j = 0; j <= TI.GetLength(0) - 1; j++) + { + S[j] = S_average + c * (lamda_average - TI[j]); + } + + //remove the interception effect from PPT matrix, and update the saturation deficit matrix, calculating q_infiltration + PPT_daily = Math.Max(0, (PPT_daily - interception)); // + for (int m = 0; m <= TI.GetLength(0) - 1; m++) + { + S[m] = S[m] - PPT_daily + ET_daily; + } + q_infiltration = PPT_daily - ET_daily; + double[] MM = new double[TI.GetLength(0)]; + if ((PPT_daily - ET_daily) > 0) + { + //create a list for S values<0 + for (int m = 0; m <= TI.GetLength(0) - 1; m++) + { + if (S[m] < 0) { over_flow[m] = -S[m]; S[m] = 0; } + else { over_flow[m] = 0; } + MM[m] = freq[m] * over_flow[m]; + } + } + else + { + double[] NN = new double[TI.GetLength(0)]; + for (int m = 0; m <= TI.GetLength(0) - 1; m++) + { + if (S[m] > 5000) { reduced_ET[m] = -5000 + S[m]; S[m] = 5000; } //KK.Add(S[m]); + else { reduced_ET[m] = 0; } + NN[m] = freq[m] * reduced_ET[m]; + } + + q_infiltration = q_infiltration + ((NN.Sum()) / (freq.Sum())); + } + q_subsurface = Tmax * (Math.Exp(-lamda_average)) * (Math.Exp(-S_average / c)); + q_overland = (MM.Sum()) / (freq.Sum()); + + //calculate the new average deficit using cachement mass balance + S_average = S_average + q_subsurface + q_overland - q_infiltration; + + //calculating runoff q + double q = q_overland + q_subsurface; + + //Storing values of DateTimes and surface runoff values + TimeStamp time = (TimeStamp)this.GetCurrentTime(); + DateTime curr_time = CalendarConverter.ModifiedJulian2Gregorian(time.ModifiedJulianDay); + _DateTimes.Add(curr_time); + q_outputs.Add(q); + q_infltration_outputs.Add(q_infiltration); + outputValues.Add(curr_time, q); + + //save runoff + double[] runoff = new double[1]; + runoff[0] = q;// *_watershedArea; + + //-- calculate streamflow using watershed area + double[] streamflow = new double[1]; + streamflow[0] = q * (_watershedArea) / 86400; + + + + //set the basin outflow as runoff output + string q1 = this.GetOutputExchangeItem(0).Quantity.ID; + string e1 = this.GetOutputExchangeItem(0).ElementSet.ID; + this.SetValues(q1, e1, new ScalarSet(runoff)); + + string q2 = this.GetOutputExchangeItem(1).Quantity.ID; + string e2 = this.GetOutputExchangeItem(1).ElementSet.ID; + this.SetValues(q2, e2, new ScalarSet(streamflow)); + + + this.AdvanceTime(); + return true; + } + + /// + /// Reads an input raster ascii file containing topographic index to produce topographic index and topographic frequency arrays + /// + /// ASCII raster file containing topographic index values + /// output topographic index array + /// output topographic frequency array + public void read_topo_input(string topographicIndex, out double[] ti, out double[] freq) + { + //---- begin reading the values stored in the topo file + StreamReader sr = new StreamReader(topographicIndex); + + //-- read header info + string line = null; + for (int i=0; i<=4; i++) + line = sr.ReadLine(); + + //-- save the cellsize + double cellsize = Convert.ToDouble(line.Split(' ')[line.Split(' ').Length - 1]); + line = sr.ReadLine(); + + //-- save the nodata value + string nodata = line.Split(' ')[line.Split(' ').Length-1]; + line = sr.ReadLine(); + + //-- store all values != nodata in a list + List topoList = new List(); + int lineNum = 0; + while (!String.IsNullOrEmpty(line)) + { + lineNum += 1; + string[] vals = line.TrimEnd(' ').Split(' '); + for (int i = 0; i <= vals.Length - 1; i++) + if (vals[i] != nodata) + topoList.Add(Convert.ToDouble(vals[i])); _watershedArea += cellsize; + + line = sr.ReadLine(); + } + + //---- calculate frequency of each topographic index + //-- consolidate topo list into unique values + Dictionary d = new Dictionary(); + foreach (double t in topoList) + if (d.ContainsKey(t)) + d[t] += 1.0; + else + d.Add(t, 1.0); + + //-- calculate topo frequency, then return both topographic index and topo frequency arrays + double total = (double)topoList.Count; + ti = new double[d.Count]; + freq = new double[d.Count]; + int index = 0; + foreach (KeyValuePair pair in d) + { + ti[index] = Math.Round(pair.Key,4); + freq[index] = Math.Round(d[pair.Key] / total, 10); + index ++; + } + } + } + +} + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/Data/TI.csv b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/Data/TI.csv new file mode 100644 index 00000000..9972dbef --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/Data/TI.csv @@ -0,0 +1,2 @@ +-0.7774,-0.2296,0.3183,0.8662,1.414,1.962,2.51,3.058,3.606,4.154,4.701,5.249,5.797,6.345,6.893,7.441,7.989,8.537,9.085,9.632,10.18,10.73,11.28,11.82,12.37,12.92,13.47,14.02,14.56,15.27 +1.57E-03,5.25E-04,0,1.05E-03,1.84E-03,7.61E-03,1.84E-02,5.17E-02,0.10365,0.15481,0.16741,0.13828,0.10286,8.13E-02,6.01E-02,3.78E-02,2.73E-02,1.55E-02,1.31E-02,4.72E-03,2.62E-03,2.89E-03,1.31E-03,1.31E-03,7.87E-04,5.25E-04,5.25E-04,0,2.62E-04,2.62E-04 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/Data/Weather.csv b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/Data/Weather.csv new file mode 100644 index 00000000..1097e9f7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/Data/Weather.csv @@ -0,0 +1,6 @@ +m,180,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Tmax,250000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +interception,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +10.51,0,0,0,5.13,29.22,0,1.03,4.36,6.66,0,2.82,3.84,8.71,17.94,7.94,2.82,0,0,5.38,4.87,1.28,0,0,0,0,1.79,17.43,0,0,0,2.31,0.77,3.33,0,0,0,41.52,0,2.82,0,0,0,46.9,7.69,0,1.54,0,0,0,0,4.61,0,0.51,13.07,1.28,0,0,0,0,0,20.5,0,0,0,0,0,6.66,0,5.89,0.77,16.66,0,0,0.77,0,0,35.88,11.02,0,0,0,0,0,0,2.31,0,0,9.48,0,0,2.31,0,0,0,0,0,0,0,13.33,0,0,0,0,49.72,8.2,0,0,14.61,0,0,0,0,0,1.03,0,0,0,7.69,5.13,0.26,10.51,7.43,1.03,0,0,0,0,0,0.26,0,0,0.51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20.25,0,0,14.86,0,0,0,0,0,0,0,11,0,0,0,0,0,0,3.5,0,0,0,0,8.75,72.98,0,0,0,7.5,21.49,17.75,51.24,0,0,0,0,0,52.49,45.99,0,0,2,1.5,0,0,0,3.75,0,4.25,1.75,0,0,1,27.49,0,0,0.25,0,37.49,100.72,0,0,32.49,3.25,89.98,1.25,4.25,26.741,5.75,0,15,3.75,4,41.99,0,20.99,0,0,10,1,0,0,0,0,33.74,4,0,1.25,3,4.5,45.49,1.25,14,0,0,0,14.5,53.74,10.25,0,0,28.99,8.25,6,0,0,0,0,0,19.99,5.5,27.24,0,0,9.25,0,27.24,28.49,0,0,0,0,0,2,0,0,0,0,0.25,0,0,0,0,0,0,5.25,0,0,0,15.25,0,0,18.75,1.5,42.49,0,0,0,3.5,0,3.5,1.25,28.74,16.75,0,0,35.99,46.49,59.48,0,0,0,24.49,0,0,0,30.49,25.99,13,0,0,0,0,0,0,0,16.5,0,0,0,0,0,0,0,0,0,8.71,0,11.28,29.73,0,0,0,0,7.43,45.11,31.01,0,0,0,0,24.86,4.87,0.51,1.54,0,17.68,14.35,0,0,47.67,0,0,0,16.15,19.73 +1.355,1.665,1.665,1.815,1.665,1.694,1.815,1.911,1.847,2.013,2.194,2.013,1.847,1.847,1.847,1.978,2.27,1.911,1.978,1.784,1.665,1.724,1.555,1.426,1.501,1.528,1.477,1.665,1.355,1.528,1.784,1.911,2.047,1.911,1.724,1.784,1.753,1.847,2.047,1.978,2.047,1.582,1.724,1.944,2.083,1.815,1.944,1.847,1.847,1.911,1.911,1.978,2.083,1.944,1.847,1.879,1.944,1.815,1.847,1.724,2.013,1.753,1.944,1.815,1.665,1.784,1.724,1.784,2.013,2.013,1.911,2.047,1.978,2.047,1.978,1.847,1.694,1.555,1.944,1.665,1.694,1.637,1.528,1.501,1.528,1.784,1.724,1.784,1.784,1.978,2.013,1.879,1.815,1.753,1.815,1.753,1.847,1.911,1.978,1.911,1.978,2.047,1.847,1.501,1.14,1.815,1.501,1.477,1.477,1.694,1.18,1.286,1.477,1.694,1.724,1.815,1.665,1.501,1.477,1.724,1.847,1.665,1.402,1.753,1.501,1.555,1.582,1.451,1.402,1.355,1.477,1.451,1.426,1.221,1.121,1.451,1.16,1.101,0.88,0.808,0.994,1.046,1.028,1.011,1.028,1.083,1.046,1.064,0.976,1.028,0.635,0.781,0.68,0.866,0.836,1.011,1.16,1.14,0.704,0.741,0.794,0.851,0.49,0.49,0.657,0.741,0.88,1.064,0.767,0.573,0.692,0.88,0.896,0.96,0.896,0.96,1.16,1.308,1.243,1.501,0.927,0.68,0.669,0.896,0.68,0.646,1.083,0.943,0.592,0.525,0.553,0.669,0.516,0.392,0.544,0.896,0.669,0.553,0.525,0.413,0.413,0.466,0.88,0.392,0.366,0.516,0.624,0.767,1.083,0.741,0.592,0.635,0.716,1.046,0.822,0.657,0.912,1.046,0.851,0.754,0.808,0.729,0.943,1.18,1.101,0.534,0.516,0.507,0.866,1.286,1.18,0.836,1.14,0.851,0.976,0.822,0.729,1.14,1.16,1.083,1.064,1.028,0.808,0.836,0.767,0.808,1.064,1.028,0.507,0.544,0.704,0.866,0.603,0.385,0.458,0.573,0.603,0.635,0.912,0.896,0.716,0.68,0.592,0.754,0.741,0.692,0.704,0.635,0.613,0.319,0.372,0.499,0.635,1.011,1.121,1.064,1.101,1.308,1.243,1.501,1.308,1.582,1.308,1.101,1.18,0.851,0.692,0.704,0.767,0.544,0.657,1.18,1.221,0.836,0.613,0.704,0.822,0.563,0.927,0.781,1.18,1.101,0.912,1.121,1.582,1.355,1.355,1.16,0.851,0.68,0.704,0.912,0.669,0.704,0.767,1.028,1.308,1.555,0.866,0.808,0.692,0.836,0.943,0.943,1.14,1.243,1.16,0.808,0.851,0.976,1.14,1.308,1.378,1.286,1.477,1.426,1.665,1.308,1.028,0.943,0.927,0.943,1.308,1.501,1.378,1.402,1.402,1.14,1.426,1.501,1.694,1.784,1.694,1.609,1.426,1.582,1.724,1.753,1.426,0.96,1.221,1.083,1.501,1.753,1.637 +9.66,9.12,8.69,8.3,8.18,8.67,7.93,7.59,7.39,7.27,6.98,6.8,6.69,6.59,6.67,6.5,6.22,5.93,5.75,5.72,5.61,5.41,5.2,5.02,4.93,4.79,4.74,5,4.6,4.48,4.37,4.3,4.19,4.17,4.01,3.87,3.79,4.74,3.98,3.83,3.67,3.56,3.44,4.51,4.01,3.68,3.54,3.39,3.31,3.24,3.16,3.18,3.09,3.02,3.21,3.03,2.95,2.82,2.73,2.71,2.69,3.13,2.74,2.63,2.57,2.5,2.47,2.56,2.47,2.47,2.45,2.59,2.51,2.37,2.32,2.24,2.2,3.05,2.64,2.27,2.2,2.14,2.1,2.08,2.03,2.08,2,1.97,2.08,1.98,1.92,1.91,1.87,1.8,1.79,1.79,1.77,1.76,1.72,1.93,1.77,1.72,1.68,1.67,2.78,2.18,1.79,1.75,1.96,1.79,1.68,1.66,1.63,1.62,1.6,1.57,1.55,1.56,1.66,1.7,1.61,1.69,1.77,1.63,1.55,1.52,1.49,1.46,1.45,1.46,1.45,1.42,1.41,1.38,1.37,1.37,1.35,1.33,1.28,1.29,1.3,1.29,1.28,1.28,1.28,1.27,1.27,1.26,1.25,1.47,1.3,1.27,1.47,1.31,1.24,1.23,1.21,1.19,1.16,1.18,1.36,1.24,1.17,1.17,1.17,1.17,1.17,1.17,1.17,1.12,1.13,1.14,1.17,3.91,1.62,1.4,1.31,1.41,1.72,1.82,5.24,2.2,1.84,1.71,1.64,1.6,2.46,7.37,3.29,2.62,2.37,2.25,2.13,2.05,2.03,2.1,2.01,2.04,1.97,1.89,1.85,1.85,2.61,2.09,1.96,1.96,1.96,2.53,12.2,6.79,5.38,5.68,5.64,12.27,10.64,9.09,8.78,8.93,7.85,7.43,7.3,6.72,8.36,7.62,7.91,7.2,6.77,6.77,6.58,6.32,6.15,6,5.86,6.16,6.82,5.99,5.81,5.68,5.59,6.42,6.87,6.46,6.2,5.98,5.77,5.81,8.13,8.12,7.08,6.71,7.42,7.36,7.29,6.86,6.65,6.48,6.36,6.3,6.7,6.38,7.64,6.76,6.44,6.56,6.26,6.39,9.63,7.43,7.04,6.78,6.57,6.45,6.39,6.34,6.23,6.13,6.01,5.97,5.83,5.63,5.5,5.38,5.28,5.24,5.21,4.98,4.83,4.74,5.04,4.69,4.58,4.85,4.69,6.37,4.95,4.62,4.45,4.42,4.3,4.29,4.21,5.02,5.22,4.54,4.34,5.89,6.73,12.65,8.86,7.55,6.93,7.39,6.78,6.4,6.19,6.57,9.33,7.61,7.15,6.78,6.6,6.46,6.37,6.24,6.19,6.44,6.17,5.96,5.82,5.72,5.64,5.61,5.53,5.41,5.34,5.32,5.11,5.14,5.67,5.15,4.91,4.79,4.68,4.74,5.28,7.96,5.69,5.24,5.07,4.92,5.35,4.97,4.77,4.62,4.52,4.7,5.12,4.53,4.35,5.45,5.29,4.83,4.63,4.8,4.96 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/Data/configTest.xml b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/Data/configTest.xml new file mode 100644 index 00000000..1f7ed2a2 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/Data/configTest.xml @@ -0,0 +1,112 @@ + + + + + + TopModel + watershed Runoff + + + Runoff + Runoff + + + cfs + 1 + + + + cfs + cfs + 1 + 0 + + scalar + + + + + TopModel + Precipitation Data + 1 + .\StreamNet.shp + + + PPT + Rainfall + + + 1 + Length + + + + in + inches + 1 + 0 + + Scalar + + + + + TopModel + PET_Topmodel + 1 + .\StreamNet.shp + + + PET + Evaptranspiration + + + 1 + Length + + + + in + inches + 1 + 0 + + Scalar + + + + + TopModel + Topographic Index + 1 + .\StreamNet.shp + + + TI + Topographic Index + + + 1 + Length + + + + in + inches + 1 + 0 + + Scalar + + + + + 01/01/2010 00:00:00 AM + 01/01/2011 00:20:00 AM + 86400 + + + TopModel + Runoff calculation + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..bceda96f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("TopModelTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("TopModelTest")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("8a9de62d-5d3a-46ea-9485-2e01a2567a7f")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/Source/TopModelTest.cs b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/Source/TopModelTest.cs new file mode 100644 index 00000000..31ebebd4 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/Source/TopModelTest.cs @@ -0,0 +1,158 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Text; +using System.Xml; +using SMW; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using SharpMap; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using System.Collections; +//using TopModel; +using System.Diagnostics; +using Oatc.OpenMI.Sdk.Wrapper; +using NUnit.Framework; +using System.IO; + +namespace TopModelTest.UnitTest +{ + [TestFixture] + public class Test + { + TopModel.TopModel engine = new TopModel.TopModel(); + [Test] + public void Initialize() + { + Console.WriteLine("\n----Begining Intialize----"); + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "../../Data/configTest.xml"); + args.Add("TI", "../../Data/TI_raster.txt"); + args.Add("m","180"); + args.Add("Tmax", "250000"); + args.Add("Interception", "3"); + args.Add("R", "9.66"); + + engine.Initialize(args); + Console.WriteLine("\n ----- Initialize finished Sucessfully -----"); + + } + [Test] + //In case the PET inputs are from txt file. need to uncomment the Pet reading input in TopModel.cs + public void PTS_readingfrominputfile() + { + Console.WriteLine("\n ----- Beginning Perform-Time-Step -----"); + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "../../data/configTest.xml"); + args.Add("TI", "../../Data/TI_raster.txt"); + args.Add("m", "180"); + args.Add("Tmax", "250000"); + args.Add("Interception", "3"); + args.Add("R", "9.66"); + + engine.Initialize(args); + + //passing the daily precip and ET (mm/hr) + double[] p = new double[5] {10.5,0,0,0,5.613}; + double [] pet= new double[5] {1.355,1.665,1.665,1.815,1.665}; + + + //Known Runoff results + double [] Known_pe=new double[5] {12.02,9.35,8.80,8.30,9.84}; + Queue Known_pe_Answers = new Queue(Known_pe); + Console.WriteLine("Day \t\t\t Runoff "); + + for(int j = 0; j <= p.Length - 1; j++) + { + double[] P = new double[1] { p[j] }; + IValueSet Precip = new ScalarSet(P); + engine.SetValues("Precip", "TopModel", Precip); + + double[] Pet = new double[1] { pet[j] }; + IValueSet pett = new ScalarSet(Pet); + engine.SetValues("PET", "TopModel", pett); + + engine.PerformTimeStep(); + double[] pe = ((ScalarSet)engine.GetValues("Runoff", "TopModel")).data; + + + Console.WriteLine("{0:D}\t\t\t {1:F}", j, pe[0], Known_pe[j]); + } + + Console.WriteLine("\n ----- Perform-Time-Step finished Sucessfully -----"); + + } + + public void PTS_inputexchangeitem() + { + Console.WriteLine("\n ----- Beginning Perform-Time-Step -----"); + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "../../data/configTest.xml"); + args.Add("TI", "../../Data/TI.csv"); + args.Add("Weather", "../../Data/Weather.csv"); + + engine.Initialize(args); + + //passing the daily precip and ET (mm/hr) + double[] p = new double[5] { 10.5, 0, 0, 0, 5.613 }; + double[] pet = new double[5] { 1.355, 1.665, 1.665, 1.815, 1.665 }; + double R = 9.66; + + + //Known Runoff results + double[] Known_runoff = new double[5] { 12.02, 9.35, 8.80, 8.30, 9.84 }; + Queue Known_runoff_Answers = new Queue(Known_runoff); + Console.WriteLine("Day \t\t\t Runoff "); + + for (int j = 0; j <= p.Length - 1; j++) + { + double[] P = new double[1] { p[j] }; + IValueSet Precip = new ScalarSet(P); + engine.SetValues("PPT", "TopModel Testing", Precip); + + double[] Pet = new double[1] { pet[j] }; + IValueSet pett = new ScalarSet(Pet); + engine.SetValues("PET", "TopModel", pett); + + engine.PerformTimeStep(); + double[] pe = ((ScalarSet)engine.GetValues("Runoff", "TopModel")).data; + + + Console.WriteLine("{0:D}\t\t\t {1:F}", j, pe[j], Known_runoff[j]); + + //Check to see if the computed values equal the known ones + Assert.IsTrue(Math.Round(pe[j], 2) == Known_runoff_Answers.Dequeue()); + } + + Console.WriteLine("\n ----- Perform-Time-Step finished Sucessfully -----"); + + } + [Test] + public void Finish() + { + engine.Finish(); + } + + /// + /// Tests the read_topo_input method. + /// + [Test] + public void read_Topo() + { + TopModel.TopModel model = new TopModel.TopModel(); + double[] t; + double[] f; + model.read_topo_input("../../../Data/TI_raster.txt", out t, out f); + + List tarray = new List(t); + Assert.IsTrue(tarray.Contains(-3.9816)); + Assert.IsTrue(tarray.Contains(3.4375)); + Assert.IsTrue(tarray.Contains(4.0013)); + + List farray = new List(f); + Assert.IsTrue(farray.Contains(0.0001684069)); + Assert.IsTrue(farray.Contains(0.0003368137)); + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/TopModelTest.csproj b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/TopModelTest.csproj new file mode 100644 index 00000000..18391f95 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/TopModelTest.csproj @@ -0,0 +1,96 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {5887EA84-7E2D-48BA-BF4C-109314956FB1} + Library + Properties + TopModelTest + TopModelTest + v4.0 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Utilities\NUnit\nunit.framework.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Gui.Core.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\OpenMI.Standard.dll + + + ..\..\..\Utilities\SharpMap\SharpMap.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + + + + + + + ..\..\..\Utilities\edu.SC.Numerics\Test\bin\Debug\Test.dll + + + + + + + + + + + + Designer + + + + + {870615F2-EBC2-4F4F-B8EA-DE21E3415FB8} + TopModel + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/TopModelTest.sln b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/TopModelTest.sln new file mode 100644 index 00000000..f17273c5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/Test/TopModelTest.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TopModelTest", "TopModelTest.csproj", "{5887EA84-7E2D-48BA-BF4C-109314956FB1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5887EA84-7E2D-48BA-BF4C-109314956FB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5887EA84-7E2D-48BA-BF4C-109314956FB1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5887EA84-7E2D-48BA-BF4C-109314956FB1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5887EA84-7E2D-48BA-BF4C-109314956FB1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/TopModel.csproj b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/TopModel.csproj new file mode 100644 index 00000000..84b6a645 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/TopModel.csproj @@ -0,0 +1,88 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {870615F2-EBC2-4F4F-B8EA-DE21E3415FB8} + Library + Properties + TopModel + TopModel + v4.0 + 512 + Client + + + true + full + false + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + full + false + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + true + + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\Utilities\OpenMI\OpenMI.Standard.dll + + + ..\..\Utilities\SharpMap\SharpMap.dll + + + + + + + + + + + + + + + + {96C23728-CA20-47F8-A85C-AE76A31085FB} + SMW + + + + + Designer + + + + + + Designer + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/TopModel/TopModel.sln b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/TopModel.sln new file mode 100644 index 00000000..aa3eda1a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/TopModel/TopModel.sln @@ -0,0 +1,62 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TopModel", "TopModel.csproj", "{870615F2-EBC2-4F4F-B8EA-DE21E3415FB8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TopModelTest", "Test\TopModelTest.csproj", "{5887EA84-7E2D-48BA-BF4C-109314956FB1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hargreaves", "..\Hargreaves\Hargreaves.csproj", "{7EF6F087-E4F2-4F65-9805-DCCA45F67E25}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbReader", "..\DbReader\Source\DbReader.csproj", "{F7FC143A-18E5-428A-B79F-FC20BFFE6266}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbWriter", "..\DbWriter\Source\DbWriter.csproj", "{1CBE4440-985E-405B-BFBE-01F0E26AD2C5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMW", "..\..\Utilities\edu.SC.SMW\SMW.csproj", "{96C23728-CA20-47F8-A85C-AE76A31085FB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Buffer", "..\..\Utilities\OpenMI\sdk\Buffer\Oatc.OpenMI.Sdk.Buffer.csproj", "{C9844E74-074D-46FA-AEF6-371B3481468B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Spatial", "..\..\Utilities\OpenMI\sdk\Spatial\Oatc.OpenMI.Sdk.Spatial.csproj", "{4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {870615F2-EBC2-4F4F-B8EA-DE21E3415FB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {870615F2-EBC2-4F4F-B8EA-DE21E3415FB8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {870615F2-EBC2-4F4F-B8EA-DE21E3415FB8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {870615F2-EBC2-4F4F-B8EA-DE21E3415FB8}.Release|Any CPU.Build.0 = Release|Any CPU + {5887EA84-7E2D-48BA-BF4C-109314956FB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5887EA84-7E2D-48BA-BF4C-109314956FB1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5887EA84-7E2D-48BA-BF4C-109314956FB1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5887EA84-7E2D-48BA-BF4C-109314956FB1}.Release|Any CPU.Build.0 = Release|Any CPU + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7EF6F087-E4F2-4F65-9805-DCCA45F67E25}.Release|Any CPU.Build.0 = Release|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F7FC143A-18E5-428A-B79F-FC20BFFE6266}.Release|Any CPU.Build.0 = Release|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1CBE4440-985E-405B-BFBE-01F0E26AD2C5}.Release|Any CPU.Build.0 = Release|Any CPU + {96C23728-CA20-47F8-A85C-AE76A31085FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96C23728-CA20-47F8-A85C-AE76A31085FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96C23728-CA20-47F8-A85C-AE76A31085FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96C23728-CA20-47F8-A85C-AE76A31085FB}.Release|Any CPU.Build.0 = Release|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Release|Any CPU.Build.0 = Release|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..3d638e4f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ClassLibrary1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("ClassLibrary1")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("9a4be134-662c-4b4d-be18-0da7393a76bf")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/Reader_linkableComponent.cs b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/Reader_linkableComponent.cs new file mode 100644 index 00000000..2c777068 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/Reader_linkableComponent.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WR_LC +{ + class Et_linkableComponent: Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + protected override void SetEngineApiAccess() + { + _engineApiAccess = new csvfileReader.WR(); + } + public Et_linkableComponent() + { + _engineApiAccess = new csvfileReader.WR(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/config.xml b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/config.xml new file mode 100644 index 00000000..fd47132e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/config.xml @@ -0,0 +1,318 @@ + + + + + + SC_NC Study + Minimum Temperature of the gauge for next day + + 1 + + + Minimum Temperature for Next Day + Minimum Temperature for next day + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Monthly mean dailly range of air temperature of the gauge + + 1 + + + Monthly Average Daily Temp. Range + Monthly mean dailly range of air temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + gage IDs + + 1 + + + Station ID + Station_Identities + + + + 1 + + + + unitless + unitless + 1 + 0 + + Scalar + + + + + SC_NC Study + Latitude of the gauge + + 1 + + + Latitude + Latitude + + + Length + 1 + + + + Degree + Degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Longitude of the gauge + + 1 + + + Longitude + Longitude + + + Length + 1 + + + + Degree + Degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Elevation of the gauge + + 1 + + + Elevation + Elevation + + + Length + 1 + + + + m + meter + 1 + 0 + + Scalar + + + + + SC_NC Study + Temperature of the gauge + + 1 + + + Temperature + Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Dew Point Temperature of the gauge + + 1 + + + Dew Point Temperature + Dew Point Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Maximum Temperature of the gauge + + 1 + + + Maximum Temperature + Maximum Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Minimum Temperature of the gauge + + 1 + + + Minimum Temperature + Minimum Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + wind speed of the gauge + + 1 + + + wind speed + wind speed + + + Length + 1 + + + Time + -1 + + + + m/s + meter/second + 1 + 0 + + Scalar + + + + + SC_NC Study + Date + + 1 + + + Date + Date + + + Length + 1 + + + + Time + day + 1 + 0 + + Scalar + + + + + 01/01/1982 + 03/30/1982 + 86400 + + + Read Input Files + This component Read PET(potantial evapotranspiration) Inputs in wtmp format + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/wtmReadDbwrter.opr b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/wtmReadDbwrter.opr new file mode 100644 index 00000000..322a7fa8 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/wtmReadDbwrter.opr @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/wtmpReader.cs b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/wtmpReader.cs new file mode 100644 index 00000000..094c6aa9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/wtmpReader.cs @@ -0,0 +1,863 @@ +// Purpose: Read input files for ET and use dbwriter to have sqlite data +// Author: Mehmet Ercan (mehmetbercan@gmail.com) +// Advisor: Jonathan L. Goodall (goodall@sc.edu) +// History: Created (05-03-2011) + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; + +using SMW; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace csvfileReader +{ + public class WR : SMW.Wrapper + { + public string output_quantity_1; + public string output_quantity_2; + public string output_quantity0; + public string output_quantity1; + public string output_quantity2; + public string output_quantity3; + public string output_quantity4; + public string output_quantity5; + public string output_quantity6; + public string output_quantity7; + public string output_quantity8; + public string output_quantity9; + public string output_elementset_1; + public string output_elementset_2; + public string output_elementset0; + public string output_elementset1; + public string output_elementset2; + public string output_elementset3; + public string output_elementset4; + public string output_elementset5; + public string output_elementset6; + public string output_elementset7; + public string output_elementset8; + public string output_elementset9; + + Dictionary> output = new Dictionary>(); + + //defining data storage list + List> Allwtmp = new List>(); + + public override void Finish() + { + + } + + public override void Initialize(System.Collections.Hashtable properties) + { + string configFile = null; + string data_dir = null; + + //Get Config file directory from .omi file + if (properties.ContainsKey("ConfigFile")) + configFile = (string)properties["ConfigFile"]; + //Get wtmp files directory from .omi file + if (properties.ContainsKey("DataFolder")) + data_dir = (string)properties["DataFolder"]; + + //Set variables + SetVariablesFromConfigFile(configFile); + SetValuesTableFields(); + + //get output exchange item attributes + int num_outputs = this.GetOutputExchangeItemCount(); + OutputExchangeItem output_1 = this.GetOutputExchangeItem(num_outputs - 12); + output_elementset_1 = output_1.ElementSet.ID; + output_quantity_1 = output_1.Quantity.ID; + OutputExchangeItem output_2 = this.GetOutputExchangeItem(num_outputs - 11); + output_elementset_2 = output_2.ElementSet.ID; + output_quantity_2 = output_2.Quantity.ID; + OutputExchangeItem output = this.GetOutputExchangeItem(num_outputs - 10); + output_elementset0 = output.ElementSet.ID; + output_quantity0 = output.Quantity.ID; + OutputExchangeItem output1 = this.GetOutputExchangeItem(num_outputs - 9); + output_elementset1 = output1.ElementSet.ID; + output_quantity1 = output1.Quantity.ID; + OutputExchangeItem output2 = this.GetOutputExchangeItem(num_outputs - 8); + output_elementset2 = output2.ElementSet.ID; + output_quantity2 = output2.Quantity.ID; + OutputExchangeItem output3 = this.GetOutputExchangeItem(num_outputs - 7); + output_elementset3 = output3.ElementSet.ID; + output_quantity3 = output3.Quantity.ID; + OutputExchangeItem output4 = this.GetOutputExchangeItem(num_outputs - 6); + output_elementset4 = output4.ElementSet.ID; + output_quantity4 = output4.Quantity.ID; + OutputExchangeItem output5 = this.GetOutputExchangeItem(num_outputs - 5); + output_elementset5 = output5.ElementSet.ID; + output_quantity5 = output5.Quantity.ID; + OutputExchangeItem output6 = this.GetOutputExchangeItem(num_outputs - 4); + output_elementset6 = output6.ElementSet.ID; + output_quantity6 = output6.Quantity.ID; + OutputExchangeItem output7 = this.GetOutputExchangeItem(num_outputs - 3); + output_elementset7 = output7.ElementSet.ID; + output_quantity7 = output7.Quantity.ID; + OutputExchangeItem output8 = this.GetOutputExchangeItem(num_outputs - 2); + output_elementset8 = output8.ElementSet.ID; + output_quantity8 = output8.Quantity.ID; + OutputExchangeItem output9 = this.GetOutputExchangeItem(num_outputs - 1); + output_elementset9 = output9.ElementSet.ID; + output_quantity9 = output9.Quantity.ID; + + ////////////specifiying shp file///////////// + //Get the input and output element sets from the SMW + ElementSet out_elem = (ElementSet)this.Outputs[0].ElementSet; + //Set some ElementSet properties + out_elem.ElementType = OpenMI.Standard.ElementType.XYPoint; + + + + //Get all the values from .wtmp file + string[] wtmDir = Directory.GetFiles(data_dir, "*wtmp"); + string line; + for (int f = 0; f < wtmDir.Length; f++) + { + //defining average arrays for whole data[0] and months[1],[2]....[12] + double[] AvTemp = new double[13]; + double[] AvDew = new double[13]; + double[] AvTmax = new double[13]; + double[] AvTmin = new double[13]; + double[] AvWnd = new double[13]; + + List wtmp = new List(); + StreamReader data = new StreamReader(wtmDir[f]); + line = data.ReadLine(); //Read first info line... + line = data.ReadLine(); //Read Second line... + double[] StationInfo = new double[4]; + StationInfo[0] = Convert.ToDouble(line.Split(',')[11]); //Read StationID from second line + StationInfo[1] = Convert.ToDouble(line.Split(',')[3]); //Read Latitude from second line + StationInfo[2] = Convert.ToDouble(line.Split(',')[5]); //Read Longitude from second line + StationInfo[3] = Convert.ToDouble((line.Split(',')[1]).Substring(0, (line.Split(',')[1]).Length - 1));//(line.Split(',')[1]);for the tab at the end of elevation //Read Elevation from second line + + ////////////specifiying shp file (continues)///////////// + //Create elements + Element e1 = new Element(); + Vertex v1 = new Vertex(StationInfo[2], StationInfo[1], StationInfo[3]); + e1.AddVertex(v1); + out_elem.AddElement(e1); + + + line = data.ReadLine(); //Read Third info line... + while ((line = data.ReadLine()) != null) + { + string[] column = line.Split(','); + double[] values = new double[10]; + values[0] = Convert.ToDouble(column[0]); //date + values[1] = Convert.ToDouble(column[1]); //Temperature + values[2] = Convert.ToDouble(column[2]); //Dew Point Temperature + values[3] = Convert.ToDouble(column[3]); //Maximum Temperature + values[4] = Convert.ToDouble(column[4]); //Minumum Temperature + values[5] = Convert.ToDouble(column[5]); //Wind Speed + wtmp.Add(values); + } + + + #region Getting avarage values for missing ones and replacing them + + + //Get whole average values + double SumTemp = 0; double st = 0; double SumDew = 0; double sd = 0; double SumTmax = 0; + double stmx = 0; double SumTmin = 0; double stmn = 0; double SumWnd = 0; double sw = 0; + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (wtmp[i][1] != -999.0) { SumTemp = SumTemp + (wtmp[i][1]); st++; } + if (wtmp[i][2] != -999.0) { SumDew = SumDew + (wtmp[i][2]); sd++; } + if (wtmp[i][3] != -999.0) { SumTmax = SumTmax + (wtmp[i][3]); stmx++; } + if (wtmp[i][4] != -999.0) { SumTmin = SumTmin + (wtmp[i][4]); stmn++; } + if (wtmp[i][5] != -999.0) { SumWnd = SumWnd + (wtmp[i][5]); sw++; } + } + AvTemp[0] = SumTemp / st; + AvDew[0] = SumDew / sd; + AvTmax[0] = SumTmax / stmx; + AvTmin[0] = SumTmin / stmn; + AvWnd[0] = SumWnd / sw; + + //Check if enough data is available for the gage + if (st < 350 || sd < 350 || stmx < 350 || stmn < 350 || sw < 350) + { + StationInfo[0] = -999.0;//station id + StationInfo[1] = -999.0;//latitude + StationInfo[2] = -999.0;//longitude + StationInfo[3] = -999.0;//elevation + } + + //Get Monthly average values + //January + SumTemp = 0; st = 0; SumDew = 0; sd = 0; SumTmax = 0; + stmx = 0; SumTmin = 0; stmn = 0; SumWnd = 0; sw = 0; + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "01") + { + if (wtmp[i][1] != -999.0) { SumTemp = SumTemp + (wtmp[i][1]); st++; } + if (wtmp[i][2] != -999.0) { SumDew = SumDew + (wtmp[i][2]); sd++; } + if (wtmp[i][3] != -999.0) { SumTmax = SumTmax + (wtmp[i][3]); stmx++; } + if (wtmp[i][4] != -999.0) { SumTmin = SumTmin + (wtmp[i][4]); stmn++; } + if (wtmp[i][5] != -999.0) { SumWnd = SumWnd + (wtmp[i][5]); sw++; } + } + } + if (st != 0) { AvTemp[1] = SumTemp / st; } else { AvTemp[1] = AvTemp[0]; } + if (sd != 0) { AvDew[1] = SumDew / sd; } else { AvDew[1] = AvDew[0]; } + if (stmx != 0) { AvTmax[1] = SumTmax / stmx; } else { AvTmax[1] = AvTmax[0]; } + if (stmn != 0) { AvTmin[1] = SumTmin / stmn; } else { AvTmin[1] = AvTmin[0]; } + if (sw != 0) { AvWnd[1] = SumWnd / sw; } else { AvWnd[1] = AvWnd[0]; } + + //Replacing Average values for the missing ones + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "01") + { + if (wtmp[i][1] == -999.0) { wtmp[i][1] = AvTemp[1]; } + if (wtmp[i][2] == -999.0) { wtmp[i][2] = AvDew[1]; } + if (wtmp[i][3] == -999.0) { wtmp[i][3] = AvTmax[1]; } + if (wtmp[i][4] == -999.0) { wtmp[i][4] = AvTmin[1]; } + if (wtmp[i][5] == -999.0) { wtmp[i][5] = AvWnd[1]; } + } + } + //Check if enough data is available for the gage + if (st < 25 || sd < 25 || stmx < 25 || stmn < 25 || sw < 25) + { + StationInfo[0] = -999.0;//station id + StationInfo[1] = -999.0;//latitude + StationInfo[2] = -999.0;//longitude + StationInfo[3] = -999.0;//elevation + } + + //February + SumTemp = 0; st = 0; SumDew = 0; sd = 0; SumTmax = 0; + stmx = 0; SumTmin = 0; stmn = 0; SumWnd = 0; sw = 0; + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "02") + { + if (wtmp[i][1] != -999.0) { SumTemp = SumTemp + (wtmp[i][1]); st++; } + if (wtmp[i][2] != -999.0) { SumDew = SumDew + (wtmp[i][2]); sd++; } + if (wtmp[i][3] != -999.0) { SumTmax = SumTmax + (wtmp[i][3]); stmx++; } + if (wtmp[i][4] != -999.0) { SumTmin = SumTmin + (wtmp[i][4]); stmn++; } + if (wtmp[i][5] != -999.0) { SumWnd = SumWnd + (wtmp[i][5]); sw++; } + } + } + if (st != 0) { AvTemp[2] = SumTemp / st; } else { AvTemp[2] = AvTemp[0]; } + if (sd != 0) { AvDew[2] = SumDew / sd; } else { AvDew[2] = AvDew[0]; } + if (stmx != 0) { AvTmax[2] = SumTmax / stmx; } else { AvTmax[2] = AvTmax[0]; } + if (stmn != 0) { AvTmin[2] = SumTmin / stmn; } else { AvTmin[2] = AvTmin[0]; } + if (sw != 0) { AvWnd[2] = SumWnd / sw; } else { AvWnd[2] = AvWnd[0]; } + + //Replacing Average values for the missing ones + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "02") + { + if (wtmp[i][1] == -999.0) { wtmp[i][1] = AvTemp[2]; } + if (wtmp[i][2] == -999.0) { wtmp[i][2] = AvDew[2]; } + if (wtmp[i][3] == -999.0) { wtmp[i][3] = AvTmax[2]; } + if (wtmp[i][4] == -999.0) { wtmp[i][4] = AvTmin[2]; } + if (wtmp[i][5] == -999.0) { wtmp[i][5] = AvWnd[2]; } + } + } + //Check if enough data is available for the gage + if (st < 25 || sd < 25 || stmx < 25 || stmn < 25 || sw < 25) + { + StationInfo[0] = -999.0;//station id + StationInfo[1] = -999.0;//latitude + StationInfo[2] = -999.0;//longitude + StationInfo[3] = -999.0;//elevation + } + + + //March + SumTemp = 0; st = 0; SumDew = 0; sd = 0; SumTmax = 0; + stmx = 0; SumTmin = 0; stmn = 0; SumWnd = 0; sw = 0; + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "03") + { + if (wtmp[i][1] != -999.0) { SumTemp = SumTemp + (wtmp[i][1]); st++; } + if (wtmp[i][2] != -999.0) { SumDew = SumDew + (wtmp[i][2]); sd++; } + if (wtmp[i][3] != -999.0) { SumTmax = SumTmax + (wtmp[i][3]); stmx++; } + if (wtmp[i][4] != -999.0) { SumTmin = SumTmin + (wtmp[i][4]); stmn++; } + if (wtmp[i][5] != -999.0) { SumWnd = SumWnd + (wtmp[i][5]); sw++; } + } + } + if (st != 0) { AvTemp[3] = SumTemp / st; } else { AvTemp[3] = AvTemp[0]; } + if (sd != 0) { AvDew[3] = SumDew / sd; } else { AvDew[3] = AvDew[0]; } + if (stmx != 0) { AvTmax[3] = SumTmax / stmx; } else { AvTmax[3] = AvTmax[0]; } + if (stmn != 0) { AvTmin[3] = SumTmin / stmn; } else { AvTmin[3] = AvTmin[0]; } + if (sw != 0) { AvWnd[3] = SumWnd / sw; } else { AvWnd[3] = AvWnd[0]; } + + //Replacing Average values for the missing ones + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "03") + { + if (wtmp[i][1] == -999.0) { wtmp[i][1] = AvTemp[3]; } + if (wtmp[i][2] == -999.0) { wtmp[i][2] = AvDew[3]; } + if (wtmp[i][3] == -999.0) { wtmp[i][3] = AvTmax[3]; } + if (wtmp[i][4] == -999.0) { wtmp[i][4] = AvTmin[3]; } + if (wtmp[i][5] == -999.0) { wtmp[i][5] = AvWnd[3]; } + } + } + //Check if enough data is available for the gage + if (st < 25 || sd < 25 || stmx < 25 || stmn < 25 || sw < 25) + { + StationInfo[0] = -999.0;//station id + StationInfo[1] = -999.0;//latitude + StationInfo[2] = -999.0;//longitude + StationInfo[3] = -999.0;//elevation + } + + + //April + SumTemp = 0; st = 0; SumDew = 0; sd = 0; SumTmax = 0; + stmx = 0; SumTmin = 0; stmn = 0; SumWnd = 0; sw = 0; + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "04") + { + if (wtmp[i][1] != -999.0) { SumTemp = SumTemp + (wtmp[i][1]); st++; } + if (wtmp[i][2] != -999.0) { SumDew = SumDew + (wtmp[i][2]); sd++; } + if (wtmp[i][3] != -999.0) { SumTmax = SumTmax + (wtmp[i][3]); stmx++; } + if (wtmp[i][4] != -999.0) { SumTmin = SumTmin + (wtmp[i][4]); stmn++; } + if (wtmp[i][5] != -999.0) { SumWnd = SumWnd + (wtmp[i][5]); sw++; } + } + } + if (st != 0) { AvTemp[4] = SumTemp / st; } else { AvTemp[4] = AvTemp[0]; } + if (sd != 0) { AvDew[4] = SumDew / sd; } else { AvDew[4] = AvDew[0]; } + if (stmx != 0) { AvTmax[4] = SumTmax / stmx; } else { AvTmax[4] = AvTmax[0]; } + if (stmn != 0) { AvTmin[4] = SumTmin / stmn; } else { AvTmin[4] = AvTmin[0]; } + if (sw != 0) { AvWnd[4] = SumWnd / sw; } else { AvWnd[4] = AvWnd[0]; } + + //Replacing Average values for the missing ones + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "04") + { + if (wtmp[i][1] == -999.0) { wtmp[i][1] = AvTemp[4]; } + if (wtmp[i][2] == -999.0) { wtmp[i][2] = AvDew[4]; } + if (wtmp[i][3] == -999.0) { wtmp[i][3] = AvTmax[4]; } + if (wtmp[i][4] == -999.0) { wtmp[i][4] = AvTmin[4]; } + if (wtmp[i][5] == -999.0) { wtmp[i][5] = AvWnd[4]; } + } + } + //Check if enough data is available for the gage + if (st < 25 || sd < 25 || stmx < 25 || stmn < 25 || sw < 25) + { + StationInfo[0] = -999.0;//station id + StationInfo[1] = -999.0;//latitude + StationInfo[2] = -999.0;//longitude + StationInfo[3] = -999.0;//elevation + } + + + //May + SumTemp = 0; st = 0; SumDew = 0; sd = 0; SumTmax = 0; + stmx = 0; SumTmin = 0; stmn = 0; SumWnd = 0; sw = 0; + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "05") + { + if (wtmp[i][1] != -999.0) { SumTemp = SumTemp + (wtmp[i][1]); st++; } + if (wtmp[i][2] != -999.0) { SumDew = SumDew + (wtmp[i][2]); sd++; } + if (wtmp[i][3] != -999.0) { SumTmax = SumTmax + (wtmp[i][3]); stmx++; } + if (wtmp[i][4] != -999.0) { SumTmin = SumTmin + (wtmp[i][4]); stmn++; } + if (wtmp[i][5] != -999.0) { SumWnd = SumWnd + (wtmp[i][5]); sw++; } + } + } + if (st != 0) { AvTemp[5] = SumTemp / st; } else { AvTemp[5] = AvTemp[0]; } + if (sd != 0) { AvDew[5] = SumDew / sd; } else { AvDew[5] = AvDew[0]; } + if (stmx != 0) { AvTmax[5] = SumTmax / stmx; } else { AvTmax[5] = AvTmax[0]; } + if (stmn != 0) { AvTmin[5] = SumTmin / stmn; } else { AvTmin[5] = AvTmin[0]; } + if (sw != 0) { AvWnd[5] = SumWnd / sw; } else { AvWnd[5] = AvWnd[0]; } + + //Replacing Average values for the missing ones + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "05") + { + if (wtmp[i][1] == -999.0) { wtmp[i][1] = AvTemp[5]; } + if (wtmp[i][2] == -999.0) { wtmp[i][2] = AvDew[5]; } + if (wtmp[i][3] == -999.0) { wtmp[i][3] = AvTmax[5]; } + if (wtmp[i][4] == -999.0) { wtmp[i][4] = AvTmin[5]; } + if (wtmp[i][5] == -999.0) { wtmp[i][5] = AvWnd[5]; } + } + } + //Check if enough data is available for the gage + if (st < 25 || sd < 25 || stmx < 25 || stmn < 25 || sw < 25) + { + StationInfo[0] = -999.0;//station id + StationInfo[1] = -999.0;//latitude + StationInfo[2] = -999.0;//longitude + StationInfo[3] = -999.0;//elevation + } + + + //Jun + SumTemp = 0; st = 0; SumDew = 0; sd = 0; SumTmax = 0; + stmx = 0; SumTmin = 0; stmn = 0; SumWnd = 0; sw = 0; + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "06") + { + if (wtmp[i][1] != -999.0) { SumTemp = SumTemp + (wtmp[i][1]); st++; } + if (wtmp[i][2] != -999.0) { SumDew = SumDew + (wtmp[i][2]); sd++; } + if (wtmp[i][3] != -999.0) { SumTmax = SumTmax + (wtmp[i][3]); stmx++; } + if (wtmp[i][4] != -999.0) { SumTmin = SumTmin + (wtmp[i][4]); stmn++; } + if (wtmp[i][5] != -999.0) { SumWnd = SumWnd + (wtmp[i][5]); sw++; } + } + } + if (st != 0) { AvTemp[6] = SumTemp / st; } else { AvTemp[6] = AvTemp[0]; } + if (sd != 0) { AvDew[6] = SumDew / sd; } else { AvDew[6] = AvDew[0]; } + if (stmx != 0) { AvTmax[6] = SumTmax / stmx; } else { AvTmax[6] = AvTmax[0]; } + if (stmn != 0) { AvTmin[6] = SumTmin / stmn; } else { AvTmin[6] = AvTmin[0]; } + if (sw != 0) { AvWnd[6] = SumWnd / sw; } else { AvWnd[6] = AvWnd[0]; } + + //Replacing Average values for the missing ones + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "06") + { + if (wtmp[i][1] == -999.0) { wtmp[i][1] = AvTemp[6]; } + if (wtmp[i][2] == -999.0) { wtmp[i][2] = AvDew[6]; } + if (wtmp[i][3] == -999.0) { wtmp[i][3] = AvTmax[6]; } + if (wtmp[i][4] == -999.0) { wtmp[i][4] = AvTmin[6]; } + if (wtmp[i][5] == -999.0) { wtmp[i][5] = AvWnd[6]; } + } + } + //Check if enough data is available for the gage + if (st < 25 || sd < 25 || stmx < 25 || stmn < 25 || sw < 25) + { + StationInfo[0] = -999.0;//station id + StationInfo[1] = -999.0;//latitude + StationInfo[2] = -999.0;//longitude + StationInfo[3] = -999.0;//elevation + } + + + //July + SumTemp = 0; st = 0; SumDew = 0; sd = 0; SumTmax = 0; + stmx = 0; SumTmin = 0; stmn = 0; SumWnd = 0; sw = 0; + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "07") + { + if (wtmp[i][1] != -999.0) { SumTemp = SumTemp + (wtmp[i][1]); st++; } + if (wtmp[i][2] != -999.0) { SumDew = SumDew + (wtmp[i][2]); sd++; } + if (wtmp[i][3] != -999.0) { SumTmax = SumTmax + (wtmp[i][3]); stmx++; } + if (wtmp[i][4] != -999.0) { SumTmin = SumTmin + (wtmp[i][4]); stmn++; } + if (wtmp[i][5] != -999.0) { SumWnd = SumWnd + (wtmp[i][5]); sw++; } + } + } + if (st != 0) { AvTemp[7] = SumTemp / st; } else { AvTemp[7] = AvTemp[0]; } + if (sd != 0) { AvDew[7] = SumDew / sd; } else { AvDew[7] = AvDew[0]; } + if (stmx != 0) { AvTmax[7] = SumTmax / stmx; } else { AvTmax[7] = AvTmax[0]; } + if (stmn != 0) { AvTmin[7] = SumTmin / stmn; } else { AvTmin[7] = AvTmin[0]; } + if (sw != 0) { AvWnd[7] = SumWnd / sw; } else { AvWnd[7] = AvWnd[0]; } + + //Replacing Average values for the missing ones + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "07") + { + if (wtmp[i][1] == -999.0) { wtmp[i][1] = AvTemp[7]; } + if (wtmp[i][2] == -999.0) { wtmp[i][2] = AvDew[7]; } + if (wtmp[i][3] == -999.0) { wtmp[i][3] = AvTmax[7]; } + if (wtmp[i][4] == -999.0) { wtmp[i][4] = AvTmin[7]; } + if (wtmp[i][5] == -999.0) { wtmp[i][5] = AvWnd[7]; } + } + } + //Check if enough data is available for the gage + if (st < 25 || sd < 25 || stmx < 25 || stmn < 25 || sw < 25) + { + StationInfo[0] = -999.0;//station id + StationInfo[1] = -999.0;//latitude + StationInfo[2] = -999.0;//longitude + StationInfo[3] = -999.0;//elevation + } + + + //Agust + SumTemp = 0; st = 0; SumDew = 0; sd = 0; SumTmax = 0; + stmx = 0; SumTmin = 0; stmn = 0; SumWnd = 0; sw = 0; + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "08") + { + if (wtmp[i][1] != -999.0) { SumTemp = SumTemp + (wtmp[i][1]); st++; } + if (wtmp[i][2] != -999.0) { SumDew = SumDew + (wtmp[i][2]); sd++; } + if (wtmp[i][3] != -999.0) { SumTmax = SumTmax + (wtmp[i][3]); stmx++; } + if (wtmp[i][4] != -999.0) { SumTmin = SumTmin + (wtmp[i][4]); stmn++; } + if (wtmp[i][5] != -999.0) { SumWnd = SumWnd + (wtmp[i][5]); sw++; } + } + } + if (st != 0) { AvTemp[8] = SumTemp / st; } else { AvTemp[8] = AvTemp[0]; } + if (sd != 0) { AvDew[8] = SumDew / sd; } else { AvDew[8] = AvDew[0]; } + if (stmx != 0) { AvTmax[8] = SumTmax / stmx; } else { AvTmax[8] = AvTmax[0]; } + if (stmn != 0) { AvTmin[8] = SumTmin / stmn; } else { AvTmin[8] = AvTmin[0]; } + if (sw != 0) { AvWnd[8] = SumWnd / sw; } else { AvWnd[8] = AvWnd[0]; } + + //Replacing Average values for the missing ones + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "08") + { + if (wtmp[i][1] == -999.0) { wtmp[i][1] = AvTemp[8]; } + if (wtmp[i][2] == -999.0) { wtmp[i][2] = AvDew[8]; } + if (wtmp[i][3] == -999.0) { wtmp[i][3] = AvTmax[8]; } + if (wtmp[i][4] == -999.0) { wtmp[i][4] = AvTmin[8]; } + if (wtmp[i][5] == -999.0) { wtmp[i][5] = AvWnd[8]; } + } + } + //Check if enough data is available for the gage + if (st < 25 || sd < 25 || stmx < 25 || stmn < 25 || sw < 25) + { + StationInfo[0] = -999.0;//station id + StationInfo[1] = -999.0;//latitude + StationInfo[2] = -999.0;//longitude + StationInfo[3] = -999.0;//elevation + } + + + //September + SumTemp = 0; st = 0; SumDew = 0; sd = 0; SumTmax = 0; + stmx = 0; SumTmin = 0; stmn = 0; SumWnd = 0; sw = 0; + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "09") + { + if (wtmp[i][1] != -999.0) { SumTemp = SumTemp + (wtmp[i][1]); st++; } + if (wtmp[i][2] != -999.0) { SumDew = SumDew + (wtmp[i][2]); sd++; } + if (wtmp[i][3] != -999.0) { SumTmax = SumTmax + (wtmp[i][3]); stmx++; } + if (wtmp[i][4] != -999.0) { SumTmin = SumTmin + (wtmp[i][4]); stmn++; } + if (wtmp[i][5] != -999.0) { SumWnd = SumWnd + (wtmp[i][5]); sw++; } + } + } + if (st != 0) { AvTemp[9] = SumTemp / st; } else { AvTemp[9] = AvTemp[0]; } + if (sd != 0) { AvDew[9] = SumDew / sd; } else { AvDew[9] = AvDew[0]; } + if (stmx != 0) { AvTmax[9] = SumTmax / stmx; } else { AvTmax[9] = AvTmax[0]; } + if (stmn != 0) { AvTmin[9] = SumTmin / stmn; } else { AvTmin[9] = AvTmin[0]; } + if (sw != 0) { AvWnd[9] = SumWnd / sw; } else { AvWnd[9] = AvWnd[0]; } + + //Replacing Average values for the missing ones + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "09") + { + if (wtmp[i][1] == -999.0) { wtmp[i][1] = AvTemp[9]; } + if (wtmp[i][2] == -999.0) { wtmp[i][2] = AvDew[9]; } + if (wtmp[i][3] == -999.0) { wtmp[i][3] = AvTmax[9]; } + if (wtmp[i][4] == -999.0) { wtmp[i][4] = AvTmin[9]; } + if (wtmp[i][5] == -999.0) { wtmp[i][5] = AvWnd[9]; } + } + } + //Check if enough data is available for the gage + if (st < 25 || sd < 25 || stmx < 25 || stmn < 25 || sw < 25) + { + StationInfo[0] = -999.0;//station id + StationInfo[1] = -999.0;//latitude + StationInfo[2] = -999.0;//longitude + StationInfo[3] = -999.0;//elevation + } + + + //Octember + SumTemp = 0; st = 0; SumDew = 0; sd = 0; SumTmax = 0; + stmx = 0; SumTmin = 0; stmn = 0; SumWnd = 0; sw = 0; + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "10") + { + if (wtmp[i][1] != -999.0) { SumTemp = SumTemp + (wtmp[i][1]); st++; } + if (wtmp[i][2] != -999.0) { SumDew = SumDew + (wtmp[i][2]); sd++; } + if (wtmp[i][3] != -999.0) { SumTmax = SumTmax + (wtmp[i][3]); stmx++; } + if (wtmp[i][4] != -999.0) { SumTmin = SumTmin + (wtmp[i][4]); stmn++; } + if (wtmp[i][5] != -999.0) { SumWnd = SumWnd + (wtmp[i][5]); sw++; } + } + } + if (st != 0) { AvTemp[10] = SumTemp / st; } else { AvTemp[10] = AvTemp[0]; } + if (sd != 0) { AvDew[10] = SumDew / sd; } else { AvDew[10] = AvDew[0]; } + if (stmx != 0) { AvTmax[10] = SumTmax / stmx; } else { AvTmax[10] = AvTmax[0]; } + if (stmn != 0) { AvTmin[10] = SumTmin / stmn; } else { AvTmin[10] = AvTmin[0]; } + if (sw != 0) { AvWnd[10] = SumWnd / sw; } else { AvWnd[10] = AvWnd[0]; } + + //Replacing Average values for the missing ones + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "10") + { + if (wtmp[i][1] == -999.0) { wtmp[i][1] = AvTemp[10]; } + if (wtmp[i][2] == -999.0) { wtmp[i][2] = AvDew[10]; } + if (wtmp[i][3] == -999.0) { wtmp[i][3] = AvTmax[10]; } + if (wtmp[i][4] == -999.0) { wtmp[i][4] = AvTmin[10]; } + if (wtmp[i][5] == -999.0) { wtmp[i][5] = AvWnd[10]; } + } + } + //Check if enough data is available for the gage + if (st < 25 || sd < 25 || stmx < 25 || stmn < 25 || sw < 25) + { + StationInfo[0] = -999.0;//station id + StationInfo[1] = -999.0;//latitude + StationInfo[2] = -999.0;//longitude + StationInfo[3] = -999.0;//elevation + } + + + //November + SumTemp = 0; st = 0; SumDew = 0; sd = 0; SumTmax = 0; + stmx = 0; SumTmin = 0; stmn = 0; SumWnd = 0; sw = 0; + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "11") + { + if (wtmp[i][1] != -999.0) { SumTemp = SumTemp + (wtmp[i][1]); st++; } + if (wtmp[i][2] != -999.0) { SumDew = SumDew + (wtmp[i][2]); sd++; } + if (wtmp[i][3] != -999.0) { SumTmax = SumTmax + (wtmp[i][3]); stmx++; } + if (wtmp[i][4] != -999.0) { SumTmin = SumTmin + (wtmp[i][4]); stmn++; } + if (wtmp[i][5] != -999.0) { SumWnd = SumWnd + (wtmp[i][5]); sw++; } + } + } + if (st != 0) { AvTemp[11] = SumTemp / st; } else { AvTemp[11] = AvTemp[0]; } + if (sd != 0) { AvDew[11] = SumDew / sd; } else { AvDew[11] = AvDew[0]; } + if (stmx != 0) { AvTmax[11] = SumTmax / stmx; } else { AvTmax[11] = AvTmax[0]; } + if (stmn != 0) { AvTmin[11] = SumTmin / stmn; } else { AvTmin[11] = AvTmin[0]; } + if (sw != 0) { AvWnd[11] = SumWnd / sw; } else { AvWnd[11] = AvWnd[0]; } + + //Replacing Average values for the missing ones + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "11") + { + if (wtmp[i][1] == -999.0) { wtmp[i][1] = AvTemp[11]; } + if (wtmp[i][2] == -999.0) { wtmp[i][2] = AvDew[11]; } + if (wtmp[i][3] == -999.0) { wtmp[i][3] = AvTmax[11]; } + if (wtmp[i][4] == -999.0) { wtmp[i][4] = AvTmin[11]; } + if (wtmp[i][5] == -999.0) { wtmp[i][5] = AvWnd[11]; } + } + } + //Check if enough data is available for the gage + if (st < 25 || sd < 25 || stmx < 25 || stmn < 25 || sw < 25) + { + StationInfo[0] = -999.0;//station id + StationInfo[1] = -999.0;//latitude + StationInfo[2] = -999.0;//longitude + StationInfo[3] = -999.0;//elevation + } + + + //December + SumTemp = 0; st = 0; SumDew = 0; sd = 0; SumTmax = 0; + stmx = 0; SumTmin = 0; stmn = 0; SumWnd = 0; sw = 0; + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "12") + { + if (wtmp[i][1] != -999.0) { SumTemp = SumTemp + (wtmp[i][1]); st++; } + if (wtmp[i][2] != -999.0) { SumDew = SumDew + (wtmp[i][2]); sd++; } + if (wtmp[i][3] != -999.0) { SumTmax = SumTmax + (wtmp[i][3]); stmx++; } + if (wtmp[i][4] != -999.0) { SumTmin = SumTmin + (wtmp[i][4]); stmn++; } + if (wtmp[i][5] != -999.0) { SumWnd = SumWnd + (wtmp[i][5]); sw++; } + } + } + if (st != 0) { AvTemp[12] = SumTemp / st; } else { AvTemp[12] = AvTemp[0]; } + if (sd != 0) { AvDew[12] = SumDew / sd; } else { AvDew[12] = AvDew[0]; } + if (stmx != 0) { AvTmax[12] = SumTmax / stmx; } else { AvTmax[12] = AvTmax[0]; } + if (stmn != 0) { AvTmin[12] = SumTmin / stmn; } else { AvTmin[12] = AvTmin[0]; } + if (sw != 0) { AvWnd[12] = SumWnd / sw; } else { AvWnd[12] = AvWnd[0]; } + + //Replacing Average values for the missing ones + for (int i = 0; i < wtmp.Count; i++)//Count gives number of rows + { + if (Convert.ToString(wtmp[i][0]).Substring(4, 2) == "12") + { + if (wtmp[i][1] == -999.0) { wtmp[i][1] = AvTemp[12]; } + if (wtmp[i][2] == -999.0) { wtmp[i][2] = AvDew[12]; } + if (wtmp[i][3] == -999.0) { wtmp[i][3] = AvTmax[12]; } + if (wtmp[i][4] == -999.0) { wtmp[i][4] = AvTmin[12]; } + if (wtmp[i][5] == -999.0) { wtmp[i][5] = AvWnd[12]; } + } + } + //Check if enough data is available for the gage + if (st < 25 || sd < 25 || stmx < 25 || stmn < 25 || sw < 25) + { + StationInfo[0] = -999.0;//station id + StationInfo[1] = -999.0;//latitude + StationInfo[2] = -999.0;//longitude + StationInfo[3] = -999.0;//elevation + } + + + #endregion + wtmp.Add(AvTmin); //The last forth is averagerage Min Temperature (Allwtmp[f][(Allwtmp[f].Count() - 4)][0, 1, ....,12]) + wtmp.Add(AvTmax); //The last thirth is averagerage Max Temperature (Allwtmp[f][(Allwtmp[f].Count() - 3)][0, 1, ....,12]) + wtmp.Add(StationInfo); //The one before last one is Station information (Allwtmp[f][(Allwtmp[f].Count() - 2)][0, 1, ....,3]) + wtmp.Add(AvTemp); //The last one is averagerage Temperature (Allwtmp[f][(Allwtmp[f].Count() - 1)][0, 1, ....,12]) + Allwtmp.Add(wtmp); + } + + + ////////////specifiying shp file (continues)///////////// + //Giving shp file properties to other output exchange items. + ElementSet TempMinNext = (ElementSet)this.Outputs[0].ElementSet; + TempMinNext.ElementType = ElementType.XYPoint; + TempMinNext.Elements = out_elem.Elements; + ElementSet MonAvTemp = (ElementSet)this.Outputs[1].ElementSet; + MonAvTemp.ElementType = ElementType.XYPoint; + MonAvTemp.Elements = out_elem.Elements; + ElementSet stID = (ElementSet)this.Outputs[2].ElementSet; + stID.ElementType = ElementType.XYPoint; + stID.Elements = out_elem.Elements; + ElementSet lat = (ElementSet)this.Outputs[3].ElementSet; + lat.ElementType = ElementType.XYPoint; + lat.Elements = out_elem.Elements; + ElementSet lon = (ElementSet)this.Outputs[4].ElementSet; + lon.ElementType = ElementType.XYPoint; + lon.Elements = out_elem.Elements; + ElementSet elev = (ElementSet)this.Outputs[5].ElementSet; + elev.ElementType = ElementType.XYPoint; + elev.Elements = out_elem.Elements; + ElementSet temp = (ElementSet)this.Outputs[6].ElementSet; + temp.ElementType = ElementType.XYPoint; + temp.Elements = out_elem.Elements; + ElementSet tempd = (ElementSet)this.Outputs[7].ElementSet; + tempd.ElementType = ElementType.XYPoint; + tempd.Elements = out_elem.Elements; + ElementSet tempmx = (ElementSet)this.Outputs[8].ElementSet; + tempmx.ElementType = ElementType.XYPoint; + tempmx.Elements = out_elem.Elements; + ElementSet tempmn = (ElementSet)this.Outputs[9].ElementSet; + tempmn.ElementType = ElementType.XYPoint; + tempmn.Elements = out_elem.Elements; + ElementSet winds = (ElementSet)this.Outputs[10].ElementSet; + winds.ElementType = ElementType.XYPoint; + winds.Elements = out_elem.Elements; + ElementSet date1 = (ElementSet)this.Outputs[11].ElementSet; + date1.ElementType = ElementType.XYPoint; + date1.Elements = out_elem.Elements; + + + } + + public override bool PerformTimeStep() + { + + + + ///////////////////////////////////////////////////////////////////////////////////////// + //////////////////////////Give values to Dbwriter to prepare sqlite file////////////// + ///////////////////////////////////////////////////////////////////////////////////////// + + + //get current time + DateTime currTime = CalendarConverter.ModifiedJulian2Gregorian(((TimeStamp)this.GetCurrentTime()).ModifiedJulianDay); + string current_time = Convert.ToString(currTime).Split(' ')[0]; + + //get required line from the data + int i = 0; //required line + for (int k = 0; k < (Allwtmp[0].Count - 2); k++) //(Allwtmp[f].Count **- 2**) because last two list for Average montly temperatures and StID + { + string mo = Convert.ToString(Convert.ToUInt32(Convert.ToString(Allwtmp[0][k][0]).Substring(4, 2))); + string day = Convert.ToString(Convert.ToUInt32(Convert.ToString(Allwtmp[0][k][0]).Substring(6, 2))); + string year = Convert.ToString(Convert.ToUInt32(Convert.ToString(Allwtmp[0][k][0]).Substring(0, 4))); + string date = (mo + "/" + day + "/" + year); + if (date == current_time) { i = k; break; } + } + + //Looping all the stations + List StIDET = new List(); + for (int f = 0; f < (Allwtmp.Count()); f++) + { + //Getting Calculated Evapotranspiration(mm/d) + double[] PET1 = new double[12]; + PET1[0] = Allwtmp[f][(Allwtmp[f].Count() - 2)][0]; //StationID + PET1[1] = Allwtmp[f][(Allwtmp[f].Count() - 2)][1]; //Latitude + PET1[2] = Allwtmp[f][(Allwtmp[f].Count() - 2)][2]; //Longitude + PET1[3] = Allwtmp[f][(Allwtmp[f].Count() - 2)][3]; //elevation(m) + PET1[4] = Allwtmp[f][i][1]; //Temperature(C) + PET1[5] = Allwtmp[f][i][2]; //Dew Point Temperature(C) + PET1[6] = Allwtmp[f][i][3]; //Maximum Temperature(C) + PET1[7] = Allwtmp[f][i][4]; //Minimum Temperature(C) + PET1[8] = Allwtmp[f][i][5]; //wind speed (m/s) + PET1[9] = Allwtmp[f][i][0]; //Date + PET1[10] = Allwtmp[f][i + 1][4]; //Minimum Temperature(C) for next day + //Monthly mean dailly range of air temperature(C) + int mnth = Convert.ToInt32(Convert.ToString(Allwtmp[f][i][0]).Substring(4, 2)); + PET1[11] = (Allwtmp[f][(Allwtmp[f].Count() - 3)][mnth]) - (Allwtmp[f][(Allwtmp[f].Count() - 4)][mnth]); + //Add Values + StIDET.Add(PET1); + } + + //Get an array result for exchange with SMW + double[] StID = new double[StIDET.Count()]; + double[] Lat = new double[StIDET.Count()]; + double[] Lon = new double[StIDET.Count()]; + double[] Elev = new double[StIDET.Count()]; + double[] Temp = new double[StIDET.Count()]; + double[] TempDew = new double[StIDET.Count()]; + double[] TempMax = new double[StIDET.Count()]; + double[] TempMin = new double[StIDET.Count()]; + double[] Wind = new double[StIDET.Count()]; + double[] Date = new double[StIDET.Count()]; + double[] MinTfND = new double[StIDET.Count()]; //Minumum Temperature for next day + double[] MmdTR = new double[StIDET.Count()]; //MonthlyMeanDailyTempRange + + for (int ff = 0; ff < StIDET.Count(); ff++) + { + StID[ff] = StIDET[ff][0]; + Lat[ff] = StIDET[ff][1]; + Lon[ff] = StIDET[ff][2]; + Elev[ff] = StIDET[ff][3]; + Temp[ff] = StIDET[ff][4]; + TempDew[ff] = StIDET[ff][5]; + TempMax[ff] = StIDET[ff][6]; + TempMin[ff] = StIDET[ff][7]; + Wind[ff] = StIDET[ff][8]; + Date[ff] = StIDET[ff][9]; + MinTfND[ff] = StIDET[ff][10]; + MmdTR[ff] = StIDET[ff][11]; + } + + + //set values + this.SetValues(output_quantity0, output_elementset0, new ScalarSet(StID)); + this.SetValues(output_quantity1, output_elementset1, new ScalarSet(Lat)); + this.SetValues(output_quantity2, output_elementset2, new ScalarSet(Lon)); + this.SetValues(output_quantity3, output_elementset3, new ScalarSet(Elev)); + this.SetValues(output_quantity4, output_elementset4, new ScalarSet(Temp)); + this.SetValues(output_quantity5, output_elementset5, new ScalarSet(TempDew)); + this.SetValues(output_quantity6, output_elementset6, new ScalarSet(TempMax)); + this.SetValues(output_quantity7, output_elementset7, new ScalarSet(TempMin)); + this.SetValues(output_quantity8, output_elementset8, new ScalarSet(Wind)); + this.SetValues(output_quantity9, output_elementset9, new ScalarSet(Date)); + this.SetValues(output_quantity_1, output_elementset_1, new ScalarSet(MinTfND)); + this.SetValues(output_quantity_2, output_elementset_2, new ScalarSet(MmdTR)); + + //this.SetValues(output_quantity2, output_elementset2, new ScalarSet(StID)); + + + output.Add(this.GetCurrentTime(), StIDET); ; + + //set advance model trough time + this.AdvanceTime(); + + return true; + } + } + + + +} + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/wtmpReader.csproj b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/wtmpReader.csproj new file mode 100644 index 00000000..a3cfe86b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/wtmpReader.csproj @@ -0,0 +1,82 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {14CC9A9C-DD25-438A-9A08-B0F6B2B274DA} + Library + Properties + csvReader + wtmpReader + v4.0 + 512 + + + + + 3.5 + Client + + + true + full + false + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\..\research\code\HydroDesktopHG\Binaries\Plugins\HydroModeler\example_configuration\bin\nunit.framework.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\OpenMI.Standard.dll + + + ..\..\..\Utilities\SharpMap\SharpMap.dll + + + False + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/wtmpReader.omi b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/wtmpReader.omi new file mode 100644 index 00000000..38ca62f6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/Source/wtmpReader.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/TestProject/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/TestProject/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..02b6e995 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/TestProject/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("TestProject")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("TestProject")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("cf45e0f1-4f02-4169-aab5-50f0a11d3d9b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/TestProject/TestProject.csproj b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/TestProject/TestProject.csproj new file mode 100644 index 00000000..40e03faa --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/TestProject/TestProject.csproj @@ -0,0 +1,86 @@ + + + + Debug + AnyCPU + + + 2.0 + {0EFA7DB9-D063-4592-9288-6F3B13727352} + Library + Properties + TestProject + TestProject + v4.0 + 512 + {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\nunit.framework.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\OpenMI.Standard.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SharpMap.dll + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\SMW.dll + + + + 3.5 + + + + + False + + + + + + + + + {14CC9A9C-DD25-438A-9A08-B0F6B2B274DA} + wtmpReader + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/TestProject/WRTest.cs b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/TestProject/WRTest.cs new file mode 100644 index 00000000..f0e3a966 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/TestProject/WRTest.cs @@ -0,0 +1,70 @@ +using csvfileReader; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Collections; + +using System.Collections.Generic; +using System.Linq; +using System.Text; +using NUnit.Framework; +using SMW; +using Oatc.OpenMI.Sdk.Wrapper; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using OpenMI.Standard; + +namespace TestProject +{ + [TestClass()] + public class WRTest + { + + + private TestContext testContextInstance; + + public TestContext TestContext + { + get + { + return testContextInstance; + } + set + { + testContextInstance = value; + } + } + + [TestMethod()] + public void InitializeTest() + { + + csvfileReader.WR component = new WR(); + + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "C:/research/code/HydroDesktopHG/Source/Plugins/HydroModeler/Components/wtmpReader/Source/config.xml"); + args.Add("DataFolder", "C:/research/code/HydroDesktopHG/Source/Plugins/HydroModeler/Components/wtmpReader/data"); + component.Initialize(args); + } + + [TestMethod()] + public void PerformTimeStepTest() + { + csvfileReader.WR component = new WR(); + + //Initialize Component + System.Collections.Hashtable args = new System.Collections.Hashtable(); + args.Add("ConfigFile", "C:/research/code/HydroDesktopHG/Source/Plugins/HydroModeler/Components/wtmpReader/Source/config.xml"); + args.Add("DataFolder", "C:/research/code/HydroDesktopHG/Source/Plugins/HydroModeler/Components/wtmpReader/data"); + component.Initialize(args); + + + //Call perform timestep in the component class + component.PerformTimeStep(); + + //retrieve values from the compenent class + ScalarSet OutputValues = (ScalarSet)component.GetValues("Temperature", "Temp"); + double[] T = OutputValues.data; + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/data/72312003870.wtmp b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/data/72312003870.wtmp new file mode 100644 index 00000000..412455de --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/data/72312003870.wtmp @@ -0,0 +1,10230 @@ +This file is prepared for OpenMI Evaporation component with a Python code. (mehmetbercan@gmail.com)(CEE/USC, SC USA) +Elv:,296.0,Lat:,34.899,Lon:,-82.219,StationName:,GREENVILLE/GREENVIL,State:,SC,StationID:,72312003870 +yearMoDa,Temp,Tdew,Tmax,Tmin,WndSpd +19820101,5.9,4.5,15.0,-0.6,2.8 +19820102,4.9,0.2,15.0,1.1,3.1 +19820103,3.9,2.1,8.9,1.1,3.9 +19820104,7.7,2.9,13.3,2.2,5.5 +19820105,3.4,-6.6,13.9,-3.9,2.1 +19820106,4.8,-4.0,13.3,-3.9,2.5 +19820107,14.2,7.1,20.6,11.1,3.8 +19820108,6.7,-3.9,21.1,2.2,3.5 +19820109,1.1,-9.6,10.0,-4.4,3.5 +19820110,-6.1,-19.5,10.0,-17.8,4.5 +19820111,-11.6,-23.1,-2.8,-16.7,3.2 +19820112,-6.0,-13.2,-2.2,-16.7,2.0 +19820113,-3.6,-5.9,-1.1,-10.0,3.5 +19820114,-0.8,-2.5,1.1,-5.0,2.5 +19820115,-4.6,-8.3,3.3,-12.2,2.9 +19820116,2.0,-1.1,7.8,-1.1,5.1 +19820117,-3.7,-14.9,7.8,-12.8,2.4 +19820118,-3.6,-11.5,4.4,-12.8,1.7 +19820119,3.9,1.9,5.6,2.2,1.9 +19820120,4.3,3.8,6.1,2.2,1.7 +19820121,6.1,5.4,9.4,2.8,2.5 +19820122,4.7,3.1,9.4,2.8,4.7 +19820123,2.0,0.4,7.2,0.6,4.2 +19820124,3.7,-6.4,7.8,-0.6,4.5 +19820125,1.7,-8.1,12.2,-3.9,3.0 +19820126,1.8,-11.4,12.2,-4.4,5.0 +19820127,-3.7,-14.5,6.7,-10.0,1.9 +19820128,1.0,-8.6,10.6,-10.0,3.5 +19820129,4.5,-4.3,12.8,-5.0,2.1 +19820130,7.1,-4.2,14.4,-3.3,1.8 +19820131,12.3,7.6,20.6,3.9,4.6 +19820201,8.0,0.6,12.2,1.7,4.3 +19820202,4.3,-1.9,12.2,1.7,5.4 +19820203,4.5,3.5,7.2,2.2,3.8 +19820204,9.2,7.3,12.2,3.3,2.7 +19820205,7.5,6.2,12.2,6.1,3.1 +19820206,9.4,7.6,13.3,6.1,2.2 +19820207,2.2,-8.4,13.3,-3.3,2.6 +19820208,3.2,-5.2,12.8,-3.3,1.3 +19820209,9.1,4.6,12.8,7.2,1.4 +19820210,4.9,-0.8,12.2,-2.2,2.2 +19820211,6.3,-1.3,12.8,-2.2,1.4 +19820212,5.1,-0.1,12.8,0.6,1.7 +19820213,6.1,0.7,10.6,0.6,3.8 +19820214,4.5,-3.4,14.4,-2.8,2.8 +19820215,9.4,5.7,15.6,6.1,1.0 +19820216,11.8,11.2,15.6,6.7,1.5 +19820217,14.4,12.1,20.0,11.1,1.9 +19820218,6.2,3.2,20.0,3.9,5.1 +19820219,7.3,2.9,16.1,3.9,2.5 +19820220,9.1,-1.1,19.4,-0.6,2.2 +19820221,13.3,-2.6,19.4,-0.6,4.2 +19820222,8.9,-4.2,20.0,3.3,5.2 +19820223,10.5,-2.9,22.2,-0.6,3.6 +19820224,18.0,2.9,26.1,12.2,5.2 +19820225,12.7,1.4,26.1,8.3,4.8 +19820226,3.1,-6.6,13.9,-1.1,4.7 +19820227,0.1,-2.1,5.6,-1.1,5.9 +19820228,3.2,1.2,5.0,-1.1,5.2 +19820301,6.1,-1.6,12.8,2.2,3.0 +19820302,8.6,-0.4,19.4,0.0,3.3 +19820303,13.8,0.8,19.4,0.0,4.3 +19820304,8.1,3.9,18.9,5.6,3.7 +19820305,10.5,5.9,24.4,3.3,2.5 +19820306,13.4,7.1,24.4,3.3,4.4 +19820307,7.2,4.1,15.0,5.6,4.5 +19820308,2.6,-6.7,10.0,-6.1,3.4 +19820309,6.1,-3.4,17.2,-6.1,2.9 +19820310,10.4,-0.3,18.9,-2.2,1.7 +19820311,12.5,5.7,19.4,2.8,2.2 +19820312,15.8,9.0,23.9,6.7,2.6 +19820313,18.4,11.7,25.6,6.7,3.9 +19820314,14.5,5.2,26.1,6.1,2.3 +19820315,10.9,7.2,20.0,6.7,3.4 +19820316,6.9,5.3,14.4,5.0,3.8 +19820317,12.4,10.7,22.2,5.0,3.6 +19820318,16.1,13.2,22.2,7.8,2.9 +19820319,17.0,14.2,25.6,11.7,4.2 +19820320,21.4,15.4,27.8,12.8,3.1 +19820321,16.3,11.7,27.8,10.0,3.5 +19820322,16.4,4.4,25.6,8.9,2.7 +19820323,12.2,-0.3,21.7,6.7,2.9 +19820324,11.2,6.2,16.7,6.1,1.3 +19820325,14.7,10.5,21.1,8.3,2.3 +19820326,10.4,1.2,21.1,4.4,4.8 +19820327,4.7,-8.7,12.8,0.6,4.4 +19820328,3.2,-10.9,10.6,-3.3,3.7 +19820329,4.9,-6.4,14.4,-3.3,2.9 +19820330,13.8,4.7,21.1,8.3,3.0 +19820331,15.7,12.6,21.1,7.8,3.3 +19820401,17.3,11.0,23.9,10.6,2.2 +19820402,14.9,3.9,23.9,10.6,3.0 +19820403,18.8,10.0,23.9,10.6,7.9 +19820404,16.2,-6.7,24.4,6.7,4.9 +19820405,9.9,4.7,22.8,6.1,1.2 +19820406,9.1,1.2,12.2,6.1,5.1 +19820407,5.1,-10.3,13.3,0.0,3.9 +19820408,6.3,0.2,13.9,0.0,2.3 +19820409,7.9,1.2,17.8,2.7,4.8 +19820410,7.8,-3.6,18.3,0.6,2.9 +19820411,10.1,-1.2,18.3,0.6,2.1 +19820412,14.2,0.3,22.8,3.3,3.9 +19820413,16.0,6.3,22.8,5.6,6.0 +19820414,17.6,13.1,23.9,10.0,2.9 +19820415,16.8,14.7,23.9,12.8,3.1 +19820416,17.6,14.9,21.7,14.4,3.1 +19820417,18.6,16.7,22.2,15.6,3.4 +19820418,14.8,5.4,22.2,7.8,4.2 +19820419,12.4,5.5,20.0,7.8,1.2 +19820420,14.2,11.3,20.0,8.3,2.0 +19820421,16.7,11.5,21.7,11.6,2.1 +19820422,13.7,3.8,21.7,11.7,3.8 +19820423,10.6,-5.4,17.8,0.0,2.8 +19820424,11.2,-2.3,21.1,0.0,1.8 +19820425,12.4,8.5,21.7,1.1,2.4 +19820426,16.8,13.7,25.0,9.4,3.7 +19820427,16.8,13.8,25.0,13.9,2.5 +19820428,15.7,9.7,22.8,10.0,2.3 +19820429,14.6,5.7,22.8,10.0,3.4 +19820430,13.9,2.5,20.6,7.2,3.2 +19820501,14.2,3.8,23.9,5.0,1.2 +19820502,17.7,8.1,25.6,5.0,2.0 +19820503,18.5,10.8,25.6,8.9,2.2 +19820504,18.3,9.0,25.6,11.1,2.2 +19820505,18.0,10.1,26.1,11.1,2.4 +19820506,20.7,12.9,27.8,13.9,2.4 +19820507,20.6,12.9,27.8,13.9,3.9 +19820508,19.1,13.6,25.6,14.4,1.7 +19820509,18.1,8.3,25.6,8.9,3.3 +19820510,18.9,8.1,27.2,8.9,1.7 +19820511,21.0,9.6,28.3,10.0,2.5 +19820512,20.6,10.4,29.4,11.1,1.4 +19820513,23.1,12.4,31.1,11.1,1.4 +19820514,24.3,13.5,31.7,13.9,2.3 +19820515,23.7,13.1,31.7,15.6,2.5 +19820516,23.1,13.7,30.6,15.0,1.7 +19820517,21.4,15.7,30.6,15.0,2.5 +19820518,20.8,16.6,30.0,14.4,1.5 +19820519,21.7,17.1,28.9,14.4,2.3 +19820520,20.3,17.1,27.2,16.6,3.1 +19820521,21.6,17.4,27.8,16.7,2.1 +19820522,22.4,18.1,28.9,16.7,1.8 +19820523,21.0,18.6,29.4,16.7,1.7 +19820524,20.3,18.4,27.8,17.8,2.3 +19820525,22.3,18.6,28.9,17.8,1.2 +19820526,22.0,19.1,28.9,17.8,1.7 +19820527,22.1,19.3,26.7,18.3,2.2 +19820528,23.2,20.0,29.4,18.3,2.8 +19820529,23.4,19.1,31.7,17.8,2.4 +19820530,26.3,20.6,32.2,17.8,3.0 +19820531,23.5,19.3,32.2,18.9,2.7 +19820601,22.2,19.4,30.6,19.4,3.2 +19820602,23.1,16.9,28.3,16.1,2.3 +19820603,24.1,17.9,29.4,16.1,2.6 +19820604,22.0,19.5,30.0,18.9,1.9 +19820605,23.9,19.1,28.3,20.0,2.8 +19820606,22.3,12.1,28.3,16.1,4.0 +19820607,22.2,13.4,28.3,14.4,2.8 +19820608,24.2,16.5,31.1,14.4,2.3 +19820609,25.4,18.3,31.7,16.1,1.7 +19820610,24.2,19.7,31.7,18.3,2.0 +19820611,22.1,17.6,30.6,16.6,2.0 +19820612,22.6,18.7,27.8,16.7,3.0 +19820613,21.7,18.9,27.2,20.0,2.8 +19820614,22.1,16.2,27.2,17.2,2.1 +19820615,22.2,17.8,28.3,17.2,2.0 +19820616,24.8,19.6,28.9,17.2,4.3 +19820617,23.1,18.8,29.4,20.6,3.9 +19820618,22.9,18.9,26.1,20.5,3.0 +19820619,23.7,17.8,29.4,18.3,3.0 +19820620,24.7,17.3,29.4,18.3,2.2 +19820621,22.3,14.7,28.9,15.6,2.2 +19820622,21.7,17.3,27.8,15.6,2.7 +19820623,22.4,17.3,28.9,15.6,1.2 +19820624,23.1,18.2,28.9,15.6,3.1 +19820625,23.3,18.9,27.8,19.4,2.6 +19820626,23.7,18.8,28.9,20.0,1.9 +19820627,22.6,19.4,29.4,20.0,1.5 +19820628,23.7,20.1,29.4,20.0,3.0 +19820629,23.9,20.0,29.4,20.6,3.2 +19820630,24.8,19.0,30.6,18.9,2.1 +19820701,24.9,17.2,30.6,18.9,3.3 +19820702,24.3,16.9,28.9,20.0,2.6 +19820703,26.3,19.3,34.4,20.0,4.0 +19820704,26.2,18.4,34.4,20.6,2.4 +19820705,25.1,19.7,33.3,20.5,3.0 +19820706,24.1,18.9,31.7,20.6,3.0 +19820707,24.3,19.7,28.9,21.1,2.2 +19820708,23.3,19.4,30.0,19.4,3.0 +19820709,25.0,19.9,30.6,19.4,3.3 +19820710,23.6,20.4,30.6,21.1,2.7 +19820711,24.3,21.1,30.0,21.1,3.8 +19820712,23.2,20.2,30.6,20.0,2.7 +19820713,24.6,20.7,29.4,20.0,1.5 +19820714,23.9,20.5,30.0,20.6,1.7 +19820715,23.5,20.7,28.9,20.6,1.5 +19820716,23.4,20.4,29.4,20.6,1.7 +19820717,24.2,20.7,28.9,20.6,2.7 +19820718,24.5,21.1,30.0,20.6,1.4 +19820719,24.5,20.5,30.0,20.0,1.2 +19820720,26.1,21.0,30.6,20.0,1.9 +19820721,26.4,20.7,30.6,21.7,1.8 +19820722,25.7,22.3,31.1,21.7,1.2 +19820723,23.8,20.9,30.6,21.1,1.4 +19820724,23.7,20.4,28.3,20.6,2.6 +19820725,24.6,21.2,28.9,20.6,1.9 +19820726,25.6,21.6,30.6,21.1,1.1 +19820727,25.8,21.9,31.7,21.7,1.7 +19820728,25.9,22.3,31.7,21.7,2.1 +19820729,24.3,21.4,32.2,20.6,2.4 +19820730,23.5,21.8,28.3,20.6,3.2 +19820731,23.7,22.1,28.3,21.1,4.5 +19820801,23.3,19.8,27.8,20.0,1.5 +19820802,24.8,20.1,29.4,19.4,1.9 +19820803,24.1,18.1,30.0,17.8,1.4 +19820804,25.6,20.1,30.0,17.8,1.9 +19820805,24.9,21.6,30.0,20.6,1.1 +19820806,22.9,19.2,28.9,17.8,1.1 +19820807,24.5,20.4,29.4,17.8,1.3 +19820808,24.8,21.3,30.0,20.0,3.2 +19820809,24.5,21.4,30.0,21.1,3.8 +19820810,24.5,21.3,28.9,21.1,3.9 +19820811,24.1,21.7,28.9,22.2,3.2 +19820812,24.2,21.2,28.9,21.7,1.7 +19820813,22.4,20.8,28.9,21.1,2.8 +19820814,23.3,20.0,27.8,20.0,2.6 +19820815,22.8,19.6,28.3,18.3,1.0 +19820816,23.9,20.0,28.3,18.3,2.1 +19820817,23.6,20.0,28.9,19.4,1.5 +19820818,22.8,19.2,28.3,18.3,1.8 +19820819,22.8,18.9,28.9,18.3,2.5 +19820820,24.1,19.7,30.6,18.3,1.3 +19820821,24.2,19.6,30.6,18.9,2.1 +19820822,22.4,16.0,29.4,16.7,3.4 +19820823,22.8,17.7,29.4,16.1,1.8 +19820824,25.3,20.1,31.7,16.1,1.6 +19820825,27.1,21.5,32.2,19.4,3.8 +19820826,22.9,16.3,32.8,16.7,2.8 +19820827,22.8,18.8,29.4,16.7,2.0 +19820828,24.7,20.2,29.4,17.8,1.8 +19820829,21.9,15.3,30.0,18.9,3.8 +19820830,21.0,15.3,27.8,16.7,2.1 +19820831,21.8,18.7,27.8,17.2,2.4 +19820901,22.4,20.7,25.0,20.0,2.4 +19820902,24.4,21.2,30.6,20.6,2.8 +19820903,24.8,19.9,32.2,18.9,2.2 +19820904,22.7,14.8,32.8,18.3,4.1 +19820905,19.8,12.8,26.7,13.9,3.2 +19820906,20.1,13.4,28.3,13.3,1.6 +19820907,21.2,15.0,28.9,13.3,1.9 +19820908,21.3,15.6,28.9,14.4,2.3 +19820909,20.4,15.6,27.8,15.6,3.1 +19820910,21.7,16.7,26.7,16.7,2.7 +19820911,20.4,18.3,27.8,18.3,2.5 +19820912,21.8,18.7,26.1,18.9,2.3 +19820913,23.1,20.7,26.1,18.9,1.4 +19820914,23.8,21.8,28.3,21.7,1.4 +19820915,24.0,21.8,30.0,21.1,1.4 +19820916,24.4,19.4,30.6,19.4,2.0 +19820917,22.6,16.2,30.6,16.7,2.3 +19820918,22.3,17.2,30.0,16.1,1.7 +19820919,21.8,19.1,30.6,16.1,2.7 +19820920,21.3,16.6,25.0,18.9,2.7 +19820921,19.8,13.6,25.0,17.2,2.8 +19820922,15.8,9.7,22.8,10.6,3.0 +19820923,14.1,5.3,22.2,5.6,2.3 +19820924,14.2,7.3,23.3,5.6,1.6 +19820925,15.9,10.2,23.9,7.2,1.1 +19820926,16.5,12.6,24.4,10.6,3.4 +19820927,16.6,11.2,25.0,11.1,3.4 +19820928,17.9,11.4,26.1,11.1,2.0 +19820929,18.7,11.9,26.7,11.1,2.6 +19820930,19.8,12.9,25.0,12.8,3.1 +19821001,19.7,12.9,26.7,12.8,1.5 +19821002,20.1,12.9,28.9,12.8,1.9 +19821003,20.2,14.4,28.9,12.8,1.7 +19821004,21.4,16.1,27.8,14.4,1.3 +19821005,22.1,16.3,29.4,15.6,0.9 +19821006,22.3,16.6,29.4,15.6,1.9 +19821007,20.2,16.6,28.3,15.6,1.5 +19821008,20.1,18.8,25.6,15.6,1.1 +19821009,22.7,20.3,26.1,19.4,2.7 +19821010,20.6,19.2,26.7,16.7,2.6 +19821011,15.8,14.4,23.3,15.0,2.3 +19821012,16.0,14.3,18.3,15.0,1.4 +19821013,18.0,16.7,21.1,15.0,2.2 +19821014,18.6,12.2,23.3,12.8,2.6 +19821015,14.2,5.7,23.3,6.7,2.4 +19821016,15.4,4.0,21.7,6.7,4.0 +19821017,11.2,0.7,20.6,2.8,2.3 +19821018,9.8,2.3,17.8,2.8,1.8 +19821019,11.1,4.7,20.6,5.0,2.9 +19821020,16.7,12.0,22.8,5.0,2.6 +19821021,17.3,14.2,23.3,11.7,0.9 +19821022,13.3,5.4,22.8,11.1,4.6 +19821023,9.5,2.7,15.6,7.2,4.1 +19821024,7.9,-1.3,12.8,6.7,5.9 +19821025,8.9,3.2,11.1,6.7,3.9 +19821026,13.5,-1.7,20.6,6.7,2.9 +19821027,10.6,1.5,20.6,3.9,2.0 +19821028,10.9,2.9,21.1,3.3,1.0 +19821029,11.4,4.2,21.7,3.3,0.8 +19821030,11.8,5.6,22.8,3.3,1.1 +19821031,14.8,9.7,23.9,3.3,1.5 +19821101,18.1,13.1,25.6,7.8,1.4 +19821102,18.4,15.4,26.7,12.2,1.6 +19821103,18.2,16.1,25.0,13.9,2.0 +19821104,16.6,14.5,22.8,11.1,2.7 +19821105,7.1,-4.8,18.9,1.7,2.8 +19821106,4.1,-4.7,12.8,-1.7,1.4 +19821107,5.8,-3.5,16.7,-0.6,0.6 +19821108,8.2,-1.5,18.9,-0.6,1.0 +19821109,10.8,2.6,22.2,0.0,1.1 +19821110,12.7,5.8,22.2,3.3,1.5 +19821111,11.8,6.8,21.1,5.6,0.7 +19821112,16.8,13.4,21.7,7.2,4.5 +19821113,11.2,1.5,21.7,4.4,4.4 +19821114,3.1,-3.8,14.4,-0.6,2.0 +19821115,7.6,-3.2,13.3,-0.6,2.3 +19821116,4.2,-4.4,13.3,-1.1,2.2 +19821117,9.8,-0.4,12.2,8.9,3.5 +19821118,11.2,7.8,12.8,8.9,4.6 +19821119,11.0,9.0,12.8,10.6,5.1 +19821120,11.8,10.2,13.3,10.6,4.7 +19821121,13.8,12.1,16.1,11.1,3.6 +19821122,15.4,12.6,21.1,12.2,2.0 +19821123,15.9,13.8,21.1,12.2,2.0 +19821124,15.6,9.4,21.1,10.6,4.8 +19821125,6.1,-3.8,18.3,1.7,3.6 +19821126,9.4,1.7,13.3,1.7,1.7 +19821127,11.9,9.5,13.9,7.8,3.4 +19821128,8.7,6.7,13.3,6.7,4.8 +19821129,10.5,6.5,19.4,6.1,3.9 +19821130,10.6,5.6,19.4,4.3,2.0 +19821201,12.8,11.4,16.1,4.4,2.1 +19821202,14.7,13.8,17.2,11.7,1.6 +19821203,18.2,17.1,20.6,13.3,2.0 +19821204,18.3,16.2,21.7,16.7,2.6 +19821205,18.3,16.6,22.2,15.6,3.4 +19821206,12.7,7.8,20.6,7.7,3.9 +19821207,9.5,2.4,17.2,3.9,3.3 +19821208,8.1,-1.6,15.0,3.9,3.8 +19821209,8.6,-0.6,16.1,2.8,2.0 +19821210,5.5,-2.2,16.1,1.1,2.7 +19821211,6.8,4.7,8.9,1.1,0.9 +19821212,5.5,1.2,8.3,2.2,5.8 +19821213,-0.8,-10.3,7.8,-6.7,1.7 +19821214,0.8,-10.2,9.4,-6.7,1.0 +19821215,4.3,-1.8,9.4,-5.6,2.1 +19821216,11.1,5.3,13.9,2.2,3.3 +19821217,4.3,-3.5,13.9,1.1,2.3 +19821218,1.7,-6.3,7.8,-3.9,1.4 +19821219,1.2,-3.0,7.8,-3.9,1.2 +19821220,4.7,-3.4,11.7,-3.3,3.5 +19821221,4.1,-4.7,11.7,-1.7,1.6 +19821222,3.3,-4.4,10.0,-1.7,2.1 +19821223,6.1,-1.8,15.6,-0.6,0.9 +19821224,9.1,3.3,16.1,0.0,2.5 +19821225,14.8,12.1,21.1,5.6,2.6 +19821226,16.8,13.2,21.1,11.7,2.9 +19821227,14.4,12.5,21.1,11.1,1.3 +19821228,16.8,15.2,17.2,11.1,4.9 +19821229,14.4,10.9,17.2,12.2,4.6 +19821230,6.1,-2.4,17.2,5.0,4.0 +19821231,3.4,-0.6,6.1,2.2,3.7 +19830101,5.8,2.4,8.3,2.2,1.6 +19830102,6.9,4.6,8.3,4.4,2.2 +19830103,7.6,3.1,11.1,5.6,3.6 +19830104,3.2,-4.9,11.1,-1.1,3.2 +19830105,4.1,-4.4,8.3,-1.1,3.7 +19830106,5.7,-2.9,13.3,0.0,1.9 +19830107,8.4,0.8,16.7,0.0,4.0 +19830108,7.8,-2.0,16.7,1.7,2.7 +19830109,6.0,-3.5,13.3,1.7,4.4 +19830110,6.6,3.3,8.3,3.9,4.0 +19830111,7.4,3.1,10.6,3.9,5.0 +19830112,3.4,-5.7,10.6,1.1,6.3 +19830113,0.1,-8.8,6.7,-6.1,2.3 +19830114,1.3,-5.7,11.7,-6.1,2.1 +19830115,5.9,-4.1,11.7,3.3,4.3 +19830116,0.9,-10.2,7.8,-2.8,3.7 +19830117,-0.1,-9.7,9.4,-8.3,2.1 +19830118,-0.7,-13.0,9.4,-8.3,3.9 +19830119,-3.2,-16.8,3.3,-9.4,2.6 +19830120,-2.6,-16.0,3.3,-9.4,3.9 +19830121,-2.9,-5.7,0.0,-4.5,8.6 +19830122,1.4,0.6,11.1,-4.4,6.1 +19830123,2.6,2.1,4.4,0.6,2.8 +19830124,4.3,-0.1,8.3,1.1,2.8 +19830125,2.4,-1.6,10.0,-2.2,1.7 +19830126,2.2,-2.0,10.0,-3.4,1.7 +19830127,4.7,-0.1,9.4,-3.3,4.0 +19830128,6.3,1.4,12.2,1.1,3.4 +19830129,4.3,0.9,12.8,-1.1,1.4 +19830130,8.4,5.8,13.3,-1.1,2.5 +19830131,7.1,2.8,15.6,0.0,1.2 +19830201,7.7,4.5,15.6,0.0,2.5 +19830202,15.3,11.4,17.8,13.9,6.9 +19830203,5.4,-0.8,17.8,2.7,7.0 +19830204,1.8,-5.9,8.9,-3.9,3.5 +19830205,0.7,-9.5,8.9,-3.9,2.5 +19830206,0.7,-2.3,5.0,-2.8,2.8 +19830207,2.6,-0.1,7.8,0.0,2.5 +19830208,1.2,-7.1,8.3,-6.7,2.2 +19830209,1.4,-5.2,8.3,-6.7,1.6 +19830210,3.4,0.6,7.2,-3.3,4.1 +19830211,2.6,0.4,5.0,1.1,5.2 +19830212,1.8,-1.2,7.8,-2.8,0.9 +19830213,3.4,-2.4,7.8,-2.8,4.1 +19830214,4.6,-0.1,11.1,0.6,6.5 +19830215,6.8,1.1,15.6,-0.6,1.9 +19830216,6.4,3.3,15.6,-0.6,0.9 +19830217,9.9,3.0,17.2,0.6,3.4 +19830218,7.7,-2.2,17.2,0.0,3.0 +19830219,6.7,-0.2,16.1,-1.1,1.6 +19830220,8.0,1.0,16.1,-1.1,2.4 +19830221,7.8,-0.1,16.7,-0.6,1.5 +19830222,9.5,3.7,16.7,-0.6,1.9 +19830223,11.8,8.9,17.8,6.1,4.2 +19830224,10.5,5.6,18.3,4.4,2.3 +19830225,8.1,0.2,15.0,3.3,3.9 +19830226,2.4,-9.5,10.0,-5.6,3.3 +19830227,2.6,-9.0,9.4,-5.6,3.0 +19830228,5.7,-5.1,8.3,-3.3,5.8 +19830301,11.1,5.7,18.3,3.3,6.3 +19830302,14.6,-2.1,21.7,6.1,3.5 +19830303,12.7,0.8,22.8,3.3,1.5 +19830304,14.6,4.2,23.3,3.3,2.9 +19830305,16.4,10.0,23.9,6.7,2.8 +19830306,19.1,14.6,24.4,11.1,4.6 +19830307,15.6,12.7,24.4,12.2,2.1 +19830308,16.9,14.1,21.7,12.2,2.5 +19830309,12.5,7.7,22.8,6.7,2.9 +19830310,6.9,0.2,17.8,3.3,3.9 +19830311,5.2,-1.9,8.9,3.3,5.0 +19830312,8.2,-2.5,15.6,3.3,6.6 +19830313,10.9,-4.9,19.4,3.3,3.8 +19830314,11.5,-0.6,21.7,3.3,1.8 +19830315,15.3,5.3,25.0,3.3,2.0 +19830316,13.9,6.4,25.0,6.7,4.3 +19830317,7.9,5.1,15.6,5.6,8.1 +19830318,11.2,9.2,17.2,5.6,6.2 +19830319,15.2,7.7,22.2,8.3,4.7 +19830320,11.2,5.6,22.2,4.4,1.6 +19830321,11.7,7.6,20.0,4.4,6.4 +19830322,5.0,-5.2,14.4,-1.1,3.9 +19830323,5.2,-5.6,12.8,-1.1,2.0 +19830324,3.1,-1.5,11.7,-1.1,3.8 +19830325,3.7,-3.8,11.1,-1.7,1.5 +19830326,5.3,-4.2,12.8,-1.7,2.1 +19830327,8.0,5.4,17.8,-0.6,3.5 +19830328,12.4,2.2,17.8,4.4,5.0 +19830329,8.1,-0.5,15.6,0.0,1.9 +19830330,7.2,-0.3,15.0,0.0,3.0 +19830331,8.6,5.9,11.7,2.8,2.6 +19830401,8.9,5.2,17.2,2.2,1.4 +19830402,13.6,7.9,20.0,2.2,5.1 +19830403,11.0,2.4,20.0,8.8,7.3 +19830404,9.9,0.6,21.1,0.0,1.9 +19830405,11.1,6.3,21.1,0.0,2.0 +19830406,15.4,13.1,22.8,6.7,2.1 +19830407,18.8,16.7,23.3,11.1,2.3 +19830408,17.6,16.7,22.8,16.1,2.1 +19830409,17.6,17.1,18.9,16.7,3.4 +19830410,14.3,7.6,18.9,6.7,4.2 +19830411,12.5,1.6,19.4,3.8,4.4 +19830412,11.3,3.1,20.6,2.2,1.6 +19830413,14.6,7.3,22.2,2.2,2.3 +19830414,16.7,11.7,22.2,7.8,4.1 +19830415,17.7,13.4,21.7,13.9,4.4 +19830416,10.0,-2.8,21.7,2.8,4.3 +19830417,10.1,-3.5,18.3,0.5,3.7 +19830418,7.7,-0.1,18.9,0.6,3.3 +19830419,4.3,-7.3,10.6,0.0,5.6 +19830420,4.8,-7.6,13.3,-3.9,2.6 +19830421,7.2,-5.0,16.7,-3.9,1.7 +19830422,9.6,0.3,16.7,-2.8,2.0 +19830423,10.1,6.9,15.0,2.8,3.6 +19830424,11.4,9.7,13.9,7.8,4.1 +19830425,12.4,-1.8,19.4,7.2,5.7 +19830426,13.9,1.3,22.8,3.3,2.5 +19830427,15.8,4.1,26.7,3.3,1.7 +19830428,17.7,5.6,26.7,5.0,4.1 +19830429,18.6,9.0,26.1,8.3,3.9 +19830430,18.6,12.8,26.7,10.0,3.9 +19830501,20.6,14.6,26.1,10.0,4.5 +19830502,21.8,15.2,27.8,16.1,5.5 +19830503,19.8,14.8,27.8,16.1,5.6 +19830504,15.2,8.8,23.9,8.9,4.1 +19830505,15.4,4.8,24.4,6.1,2.1 +19830506,16.7,3.3,24.4,6.1,2.6 +19830507,17.3,7.6,26.7,7.2,3.1 +19830508,19.0,11.8,26.7,7.2,5.2 +19830509,15.6,6.9,23.9,10.0,4.4 +19830510,15.8,8.1,25.0,8.3,1.5 +19830511,19.3,12.2,27.8,8.3,2.5 +19830512,20.9,14.1,27.8,11.1,2.6 +19830513,18.7,15.8,28.9,13.9,2.0 +19830514,20.5,16.9,27.8,14.4,4.2 +19830515,21.7,15.8,27.8,14.4,5.2 +19830516,20.5,16.6,27.2,17.2,3.6 +19830517,16.4,7.6,27.2,11.7,5.0 +19830518,14.5,7.6,21.1,7.8,2.7 +19830519,16.3,14.3,21.7,7.8,2.8 +19830520,19.9,19.0,23.9,15.0,3.1 +19830521,21.1,19.1,26.7,17.2,3.7 +19830522,23.1,19.8,26.7,17.8,4.7 +19830523,22.9,18.3,27.2,19.4,4.0 +19830524,20.6,13.5,27.2,15.0,2.7 +19830525,18.7,11.0,25.6,12.8,3.0 +19830526,19.2,13.3,25.6,12.2,1.6 +19830527,17.0,7.6,26.1,10.6,3.1 +19830528,17.5,10.9,26.1,10.0,2.5 +19830529,20.6,15.6,26.1,10.0,3.4 +19830530,21.8,16.1,27.8,16.1,3.9 +19830531,20.2,10.9,27.8,11.1,3.3 +19830601,18.7,11.8,27.8,11.1,2.4 +19830602,17.6,11.8,25.6,11.1,2.7 +19830603,20.3,15.8,27.2,11.1,3.4 +19830604,23.7,18.6,27.8,14.4,3.9 +19830605,22.4,17.3,28.9,15.6,2.6 +19830606,22.4,18.8,28.9,15.6,3.3 +19830607,20.7,19.3,29.4,17.2,1.3 +19830608,20.3,16.1,25.0,16.1,2.4 +19830609,20.3,14.3,26.1,15.6,3.8 +19830610,20.4,12.9,27.2,14.4,3.9 +19830611,20.3,12.0,27.8,12.2,2.9 +19830612,20.9,11.9,28.9,12.2,3.1 +19830613,21.4,11.8,28.9,12.8,3.0 +19830614,21.8,12.1,29.4,12.8,1.7 +19830615,23.9,16.1,30.6,12.8,2.3 +19830616,24.6,18.5,30.6,16.7,2.5 +19830617,22.9,19.0,30.6,17.8,1.8 +19830618,22.2,18.7,28.9,17.8,2.3 +19830619,22.7,20.4,28.3,17.8,2.1 +19830620,23.7,19.6,28.9,19.4,2.6 +19830621,24.7,19.9,31.1,19.4,1.8 +19830622,22.4,20.8,31.1,19.4,3.9 +19830623,22.2,19.0,27.2,18.9,3.7 +19830624,23.2,16.9,30.6,16.7,1.2 +19830625,25.9,17.8,32.8,16.7,1.5 +19830626,26.4,20.7,33.3,18.9,2.4 +19830627,25.8,20.8,32.2,20.6,2.4 +19830628,24.9,21.7,31.1,20.6,4.1 +19830629,25.3,21.5,30.6,21.7,4.1 +19830630,25.3,22.2,30.6,22.2,2.7 +19830701,24.1,21.9,30.6,21.1,1.9 +19830702,25.6,21.6,31.7,20.6,1.3 +19830703,26.4,21.8,32.8,20.6,2.5 +19830704,25.8,21.9,32.8,21.1,2.9 +19830705,24.9,21.8,31.7,21.7,2.4 +19830706,23.6,18.8,31.1,18.9,3.3 +19830707,22.6,14.7,29.4,18.3,4.8 +19830708,21.8,14.6,27.8,15.6,3.5 +19830709,22.9,15.3,30.6,15.0,2.0 +19830710,24.8,15.8,31.1,15.0,2.0 +19830711,25.9,19.9,32.2,16.1,2.0 +19830712,26.0,21.1,32.2,20.0,2.6 +19830713,27.1,20.7,34.4,20.0,1.7 +19830714,27.9,21.5,35.0,20.0,1.7 +19830715,27.4,22.2,34.4,21.1,2.0 +19830716,28.2,20.8,36.1,21.1,1.7 +19830717,28.3,21.1,36.1,21.1,1.4 +19830718,27.1,20.4,35.0,21.1,2.8 +19830719,26.7,20.2,35.0,19.4,2.3 +19830720,27.7,21.0,34.4,19.4,2.0 +19830721,29.2,22.1,36.1,20.6,2.6 +19830722,31.3,22.3,37.8,22.2,3.2 +19830723,31.1,21.6,38.3,23.9,2.9 +19830724,30.3,21.1,37.2,23.9,2.5 +19830725,27.5,21.9,37.2,23.9,2.1 +19830726,24.5,20.1,32.8,20.6,3.0 +19830727,24.9,18.1,30.0,18.3,2.6 +19830728,24.3,16.3,30.6,17.8,2.2 +19830729,24.5,17.9,30.6,17.8,2.3 +19830730,24.3,15.9,31.1,16.7,1.9 +19830731,26.1,19.8,31.1,16.7,3.2 +19830801,23.4,21.3,31.1,20.6,3.0 +19830802,23.7,21.5,28.9,20.6,2.5 +19830803,23.7,20.2,28.9,20.0,1.7 +19830804,26.3,20.6,32.2,20.0,2.3 +19830805,26.7,19.9,33.3,20.0,1.5 +19830806,26.1,20.1,33.3,20.6,2.3 +19830807,25.4,20.4,32.8,20.6,2.7 +19830808,25.2,20.2,32.8,20.0,2.2 +19830809,27.6,20.2,34.4,20.0,2.2 +19830810,27.4,18.1,35.0,20.6,1.6 +19830811,28.2,19.4,35.0,20.6,3.2 +19830812,26.4,19.6,34.4,21.7,3.1 +19830813,24.1,14.6,31.7,18.3,3.4 +19830814,21.1,12.3,29.4,15.0,2.7 +19830815,21.2,13.6,29.4,14.4,2.2 +19830816,23.8,16.2,30.0,14.4,1.5 +19830817,25.0,17.4,31.7,17.2,1.9 +19830818,26.8,17.9,35.0,17.8,2.0 +19830819,29.2,18.9,36.7,18.9,2.0 +19830820,30.2,19.4,37.2,21.7,2.6 +19830821,30.1,19.9,38.9,22.8,2.1 +19830822,29.9,19.9,38.9,22.8,2.5 +19830823,30.7,19.7,39.4,22.8,2.7 +19830824,27.6,19.9,38.3,21.1,3.8 +19830825,22.5,20.9,24.4,21.1,3.5 +19830826,24.2,18.5,28.9,21.1,2.5 +19830827,25.6,21.1,31.1,21.1,1.7 +19830828,26.7,19.6,31.7,21.1,2.3 +19830829,26.8,19.5,32.2,21.7,2.3 +19830830,24.9,17.6,32.8,18.3,2.6 +19830831,23.3,18.8,31.1,18.3,1.4 +19830901,23.2,19.6,30.6,18.3,2.6 +19830902,21.5,19.1,27.2,20.0,3.5 +19830903,20.8,19.9,23.9,19.4,3.4 +19830904,22.9,20.8,27.2,19.4,3.2 +19830905,24.7,21.4,30.6,20.0,2.3 +19830906,24.9,20.9,30.6,20.6,3.5 +19830907,25.3,19.9,30.6,20.0,3.3 +19830908,25.4,20.4,31.1,20.0,2.0 +19830909,25.3,20.5,31.1,20.0,1.8 +19830910,26.1,20.7,32.2,20.6,1.6 +19830911,26.1,20.7,32.2,21.1,1.5 +19830912,24.8,19.7,32.2,20.0,2.9 +19830913,22.8,19.7,30.6,20.0,2.4 +19830914,20.1,17.9,25.6,17.8,4.7 +19830915,18.9,12.7,23.9,15.0,3.4 +19830916,18.2,13.3,23.9,14.4,2.7 +19830917,20.7,16.3,27.8,14.4,2.5 +19830918,22.2,17.9,28.9,15.6,1.7 +19830919,21.9,17.7,28.9,15.6,1.3 +19830920,21.3,19.2,28.9,16.1,2.4 +19830921,21.5,20.3,24.4,17.8,5.1 +19830922,12.7,3.3,23.3,4.4,3.1 +19830923,12.2,4.2,20.6,4.4,2.2 +19830924,13.1,4.2,21.1,4.4,3.6 +19830925,12.5,5.3,20.0,6.7,3.2 +19830926,13.9,7.1,21.1,6.7,2.9 +19830927,15.3,8.3,23.9,8.3,3.2 +19830928,17.2,10.0,25.0,8.3,3.2 +19830929,17.7,9.1,25.0,11.1,4.2 +19830930,15.0,5.7,20.6,12.2,2.1 +19831001,15.3,11.8,21.7,12.2,2.0 +19831002,17.3,11.3,26.1,8.9,1.7 +19831003,17.9,11.2,27.8,8.9,1.5 +19831004,19.7,14.6,27.8,10.6,2.4 +19831005,23.1,19.1,27.8,12.8,4.9 +19831006,19.2,12.3,27.2,13.3,3.3 +19831007,16.7,8.3,26.1,10.6,3.0 +19831008,15.4,8.4,23.9,10.0,3.0 +19831009,14.3,9.3,22.8,10.0,3.7 +19831010,16.8,11.8,21.1,10.6,5.2 +19831011,15.1,12.4,21.1,14.4,6.2 +19831012,16.4,15.9,20.0,14.4,3.1 +19831013,19.6,18.1,21.7,14.4,5.1 +19831014,11.6,5.1,21.7,5.0,2.1 +19831015,12.5,6.7,22.2,5.0,1.6 +19831016,13.1,7.7,22.8,5.0,1.6 +19831017,14.0,8.6,23.9,6.1,1.0 +19831018,15.2,10.9,23.9,7.2,1.2 +19831019,16.8,13.1,23.3,9.4,0.6 +19831020,16.4,13.0,23.3,11.7,3.7 +19831021,12.8,10.7,19.4,12.2,5.2 +19831022,9.9,8.9,13.3,9.4,5.4 +19831023,10.9,10.2,14.4,9.4,4.2 +19831024,15.2,11.9,20.6,9.4,1.8 +19831025,14.9,9.1,21.7,7.8,2.8 +19831026,12.7,5.1,21.7,4.4,2.3 +19831027,10.7,-0.3,18.9,3.3,2.8 +19831028,10.1,2.2,20.6,2.2,2.6 +19831029,13.8,4.6,23.3,2.2,2.4 +19831030,12.9,3.9,23.3,5.0,4.5 +19831031,11.4,3.8,14.4,9.4,2.7 +19831101,13.4,8.7,20.0,9.4,2.2 +19831102,12.8,9.1,20.0,7.8,1.3 +19831103,14.8,10.3,23.3,7.8,2.0 +19831104,16.2,13.4,23.3,9.4,2.5 +19831105,8.9,-0.2,17.8,1.7,2.6 +19831106,7.0,0.2,16.7,0.0,1.9 +19831107,8.8,4.2,16.7,0.0,1.2 +19831108,11.5,6.8,18.9,3.9,3.0 +19831109,13.1,7.8,18.9,6.7,4.6 +19831110,14.2,13.2,17.8,8.9,3.7 +19831111,8.9,2.5,16.1,3.3,5.0 +19831112,6.5,-4.9,15.6,3.3,4.6 +19831113,4.8,-3.9,11.7,1.7,1.3 +19831114,2.7,-2.9,8.9,-3.3,1.0 +19831115,6.8,5.3,8.9,5.6,3.3 +19831116,5.9,1.0,10.6,1.1,2.7 +19831117,4.8,-2.9,11.1,-1.7,2.2 +19831118,5.7,-1.8,17.2,-1.7,1.8 +19831119,8.8,1.8,18.3,-1.1,2.9 +19831120,11.1,8.9,18.3,2.2,2.8 +19831121,9.7,4.1,17.2,1.6,2.1 +19831122,10.3,2.2,22.2,1.7,0.9 +19831123,12.3,7.1,22.2,2.8,1.4 +19831124,14.9,13.4,19.4,7.2,3.0 +19831125,8.3,-1.2,16.1,2.8,3.9 +19831126,5.5,-2.4,15.6,-1.1,1.7 +19831127,7.7,2.6,15.6,-1.1,0.9 +19831128,14.5,11.1,19.4,11.1,5.1 +19831129,8.2,-2.3,19.4,3.9,5.4 +19831130,4.6,-5.3,14.4,-3.3,2.2 +19831201,8.8,-2.8,15.6,-3.3,2.7 +19831202,5.6,-2.5,15.6,-1.1,1.2 +19831203,10.8,8.0,13.9,8.9,1.4 +19831204,11.1,8.1,17.8,7.2,5.4 +19831205,9.3,5.5,18.3,3.3,1.8 +19831206,12.3,8.6,18.3,3.3,4.5 +19831207,3.7,-6.4,8.3,-1.7,3.1 +19831208,3.3,-6.1,11.1,-1.7,3.1 +19831209,3.6,-3.9,11.7,-1.1,2.2 +19831210,6.1,-0.8,16.1,-1.1,1.0 +19831211,6.8,3.6,16.1,0.6,3.9 +19831212,10.7,8.6,16.7,3.3,3.4 +19831213,10.3,5.4,16.7,3.3,2.7 +19831214,8.4,6.5,16.1,3.3,3.8 +19831215,7.0,0.6,10.6,2.7,5.3 +19831216,5.1,-4.1,10.6,-1.1,3.4 +19831217,7.2,-2.4,11.7,-1.1,2.2 +19831218,3.8,-7.3,11.7,-1.1,3.0 +19831219,4.6,-4.6,9.4,-1.1,2.2 +19831220,2.6,-5.6,8.3,-1.1,3.7 +19831221,0.7,-8.7,3.3,0.0,6.0 +19831222,3.1,1.3,6.7,0.0,2.8 +19831223,4.2,-3.6,6.7,0.6,2.5 +19831224,-1.3,-11.6,6.7,-12.2,4.4 +19831225,-11.6,-26.9,1.7,-14.4,4.1 +19831226,-9.2,-22.3,-2.2,-14.4,2.1 +19831227,-2.2,-13.9,1.7,-3.9,2.2 +19831228,1.1,-2.7,4.4,-4.4,2.9 +19831229,3.9,0.4,5.6,-0.6,2.8 +19831230,-3.8,-16.4,5.6,-15.6,4.8 +19831231,-5.3,-16.3,3.9,-11.7,1.3 +19840101,-1.4,-12.8,8.9,-11.7,0.4 +19840102,1.1,-11.2,9.4,-7.8,1.2 +19840103,3.9,-5.7,10.6,-5.0,1.5 +19840104,3.0,-5.8,13.3,-5.0,1.7 +19840105,8.8,-2.2,13.3,4.4,3.5 +19840106,8.3,-1.3,16.1,2.8,3.8 +19840107,7.4,-4.5,16.1,2.8,3.7 +19840108,4.2,-6.0,15.6,-3.3,1.9 +19840109,6.1,-2.8,16.1,-3.3,1.0 +19840110,7.4,2.7,16.1,-1.7,3.4 +19840111,5.6,-2.6,8.3,2.8,4.3 +19840112,-0.3,-13.3,7.8,-3.3,4.7 +19840113,-0.4,-7.6,3.3,-3.3,4.5 +19840114,2.7,-1.8,10.6,-2.2,1.2 +19840115,2.9,-3.1,10.6,-2.2,1.9 +19840116,3.2,-2.0,6.7,1.6,1.0 +19840117,3.3,-1.2,10.0,-2.8,1.0 +19840118,5.8,3.3,10.6,-2.8,2.6 +19840119,4.0,-1.4,6.1,0.6,2.8 +19840120,-2.9,-13.5,5.6,-7.8,2.0 +19840121,-1.7,-15.4,3.3,-7.8,2.2 +19840122,-3.8,-15.1,2.8,-10.0,1.9 +19840123,-1.3,-11.8,4.4,-10.0,2.7 +19840124,3.9,1.8,7.2,-5.6,2.6 +19840125,8.9,6.9,13.3,1.7,1.9 +19840126,6.2,-1.3,14.4,0.0,1.9 +19840127,9.1,3.7,17.2,0.0,1.2 +19840128,5.9,-1.7,17.2,-1.1,1.4 +19840129,6.2,-3.9,12.8,-1.1,4.1 +19840130,5.6,-4.6,14.4,-1.1,4.5 +19840131,1.7,-9.8,14.4,-2.2,3.9 +19840201,0.9,-9.5,9.4,-6.1,1.5 +19840202,3.1,-6.2,14.4,-6.1,1.5 +19840203,6.1,0.7,14.4,-3.9,1.9 +19840204,9.4,4.7,15.0,2.2,2.0 +19840205,5.3,-6.7,15.0,-2.2,3.9 +19840206,0.1,-7.9,7.2,-5.0,4.0 +19840207,-2.2,-14.5,5.0,-8.3,3.0 +19840208,-0.3,-13.5,10.6,-8.3,0.8 +19840209,5.0,-9.2,16.7,-8.3,2.7 +19840210,7.9,-2.4,17.2,-1.7,1.7 +19840211,11.9,8.7,18.9,1.1,2.1 +19840212,11.4,8.2,20.0,6.1,1.4 +19840213,14.3,11.4,20.6,6.1,2.6 +19840214,13.6,8.2,17.2,10.0,3.5 +19840215,10.7,-0.7,19.4,2.8,2.3 +19840216,10.0,1.5,19.4,2.8,1.5 +19840217,11.6,3.6,20.6,2.8,2.2 +19840218,11.3,1.9,20.6,1.7,1.6 +19840219,11.2,4.8,20.6,1.7,2.1 +19840220,14.4,5.4,20.6,4.4,2.7 +19840221,9.5,-1.7,18.3,4.4,2.2 +19840222,7.5,-4.9,15.6,1.1,2.8 +19840223,8.3,3.3,13.3,1.1,5.0 +19840224,10.0,1.4,18.3,2.8,4.2 +19840225,8.9,-1.4,18.9,0.6,4.1 +19840226,4.1,-5.1,12.8,-2.2,1.4 +19840227,4.9,-1.3,11.7,-2.2,5.7 +19840228,3.1,-1.6,7.2,2.2,6.8 +19840229,1.4,-9.6,6.1,-2.2,4.5 +19840301,0.4,-13.8,7.8,-6.1,3.3 +19840302,6.2,-7.6,13.9,-6.1,3.2 +19840303,7.1,-2.6,16.1,-1.1,2.1 +19840304,7.0,-1.6,16.7,-1.1,2.8 +19840305,9.7,5.0,12.8,1.7,2.3 +19840306,11.7,9.2,15.6,7.8,1.4 +19840307,7.3,1.6,15.6,4.4,3.4 +19840308,6.3,-2.1,16.7,-1.7,4.7 +19840309,3.8,-12.1,16.7,-1.7,4.9 +19840310,2.1,-10.7,7.8,-2.8,3.2 +19840311,3.8,-6.1,13.9,-3.9,2.0 +19840312,5.6,-5.6,13.9,-3.9,2.6 +19840313,8.1,2.8,14.4,-1.7,3.6 +19840314,12.3,4.8,22.8,5.0,2.2 +19840315,13.5,2.7,23.9,5.6,3.3 +19840316,16.6,7.4,25.6,5.6,3.7 +19840317,14.6,6.2,25.6,10.0,2.6 +19840318,10.7,8.7,17.8,7.8,1.2 +19840319,14.7,10.4,25.6,7.8,1.7 +19840320,16.9,10.9,26.1,8.3,2.3 +19840321,8.8,2.3,22.2,4.4,7.1 +19840322,10.2,-3.4,18.9,-2.2,5.9 +19840323,12.2,-5.2,20.6,1.1,2.6 +19840324,13.1,-1.1,21.1,1.1,3.1 +19840325,16.4,10.9,21.1,6.7,4.1 +19840326,12.9,2.6,21.7,6.1,4.0 +19840327,9.6,5.4,17.2,5.6,1.8 +19840328,14.6,11.4,21.1,5.6,4.4 +19840329,11.4,5.5,21.1,8.9,6.0 +19840330,8.7,-2.4,15.6,1.7,3.9 +19840331,8.4,-5.4,15.6,1.1,3.6 +19840401,10.9,-1.5,16.1,1.1,3.5 +19840402,11.1,-1.2,19.4,3.3,3.7 +19840403,11.3,7.3,19.4,3.3,2.1 +19840404,13.3,12.8,18.3,9.4,3.9 +19840405,11.7,4.1,18.3,6.7,5.7 +19840406,11.3,0.7,17.2,3.3,4.9 +19840407,13.4,-2.1,22.2,3.3,4.4 +19840408,13.1,-0.2,22.2,3.9,3.3 +19840409,9.4,5.6,17.8,6.7,6.1 +19840410,6.4,4.1,11.7,5.0,7.7 +19840411,11.1,2.3,18.9,5.0,3.5 +19840412,12.8,3.6,21.1,5.0,2.6 +19840413,15.9,9.1,23.9,5.0,3.5 +19840414,17.4,11.2,25.0,10.6,3.4 +19840415,14.6,6.8,25.0,7.2,4.0 +19840416,12.5,2.9,21.1,5.0,4.9 +19840417,10.9,3.6,17.8,5.0,6.0 +19840418,10.5,1.6,16.7,3.9,4.5 +19840419,7.9,3.7,17.2,3.3,1.9 +19840420,9.4,8.0,12.2,3.3,1.1 +19840421,13.7,11.2,21.7,7.2,2.4 +19840422,13.4,10.1,21.7,10.0,5.6 +19840423,9.5,6.5,18.3,6.7,5.0 +19840424,12.6,0.8,18.9,5.6,4.8 +19840425,16.9,4.6,29.4,5.6,4.3 +19840426,21.2,8.2,29.4,8.3,3.8 +19840427,17.6,12.8,29.4,11.7,2.8 +19840428,19.5,17.6,25.6,13.3,2.1 +19840429,19.2,18.4,25.6,13.3,2.3 +19840430,19.6,18.2,26.1,17.2,4.4 +19840501,17.7,8.8,26.1,10.6,3.4 +19840502,15.3,9.8,25.0,10.6,3.1 +19840503,12.8,11.9,16.7,11.7,3.6 +19840504,18.2,12.7,24.4,11.7,6.4 +19840505,16.4,7.7,24.4,6.7,2.7 +19840506,18.1,15.7,25.0,6.7,2.8 +19840507,18.8,16.9,25.0,13.9,3.3 +19840508,19.5,16.9,24.4,14.4,4.3 +19840509,12.6,3.4,23.9,4.4,4.8 +19840510,13.7,3.4,20.6,4.4,2.6 +19840511,15.9,7.6,24.4,5.6,3.1 +19840512,19.5,12.1,28.3,6.7,4.4 +19840513,21.6,15.3,28.3,12.8,3.4 +19840514,22.7,15.9,30.0,15.0,3.0 +19840515,17.1,4.1,30.0,8.9,3.3 +19840516,16.7,1.3,25.6,8.9,3.9 +19840517,16.2,-0.9,23.9,6.7,3.2 +19840518,18.2,5.4,27.8,6.7,2.3 +19840519,22.4,9.4,31.1,8.9,3.8 +19840520,23.9,13.2,31.7,13.3,4.7 +19840521,23.3,14.8,30.6,16.1,3.2 +19840522,23.7,18.6,30.6,16.7,2.8 +19840523,23.8,20.2,30.6,18.9,4.0 +19840524,22.2,12.6,30.6,15.6,3.8 +19840525,21.3,13.7,28.0,13.9,1.9 +19840526,25.0,19.2,31.7,13.9,2.3 +19840527,25.1,20.0,31.7,20.0,3.3 +19840528,24.6,21.3,30.6,20.0,4.0 +19840529,23.6,19.7,29.4,20.6,5.4 +19840530,16.0,5.9,28.3,11.1,4.6 +19840531,15.6,1.7,24.4,6.1,4.2 +19840601,19.2,5.3,26.7,6.1,3.1 +19840602,22.9,10.8,31.1,8.9,3.2 +19840603,26.7,13.2,32.2,13.9,3.1 +19840604,25.8,17.0,32.2,18.9,2.4 +19840605,26.4,20.1,32.2,18.9,2.5 +19840606,27.5,20.7,33.3,20.0,2.7 +19840607,27.5,20.6,33.3,20.6,3.4 +19840608,27.4,19.3,32.8,20.6,3.1 +19840609,26.0,18.2,31.7,20.0,2.6 +19840610,26.5,17.7,32.8,20.0,2.3 +19840611,26.9,18.2,33.9,20.6,2.2 +19840612,26.7,19.6,33.9,20.6,1.9 +19840613,27.1,18.1,33.9,20.6,2.3 +19840614,27.1,18.0,33.9,20.6,3.2 +19840615,26.7,18.9,34.4,21.1,3.1 +19840616,26.6,18.7,34.4,21.1,2.3 +19840617,26.0,19.9,34.4,21.7,2.4 +19840618,27.5,18.7,35.0,21.7,2.4 +19840619,29.7,18.7,36.1,21.7,2.0 +19840620,28.6,19.8,36.1,22.2,2.4 +19840621,25.8,20.7,34.4,22.8,2.8 +19840622,21.4,19.3,30.0,19.4,4.1 +19840623,22.3,19.3,26.7,19.4,2.4 +19840624,21.9,19.9,27.2,18.3,1.4 +19840625,24.2,17.0,30.0,18.3,3.0 +19840626,23.4,10.7,30.6,16.1,3.0 +19840627,22.3,16.1,29.4,16.1,2.3 +19840628,22.9,19.2,29.4,16.1,2.3 +19840629,19.6,18.4,28.9,17.2,2.5 +19840630,21.2,18.8,25.0,17.2,2.2 +19840701,20.2,15.4,27.2,13.3,2.4 +19840702,20.4,18.6,27.2,13.3,2.5 +19840703,20.2,16.1,28.3,13.3,1.7 +19840704,23.3,19.1,30.0,13.3,3.2 +19840705,23.2,20.2,30.0,17.8,3.5 +19840706,22.1,19.7,30.0,18.3,3.4 +19840707,22.6,18.9,28.9,18.3,3.7 +19840708,21.9,17.3,28.3,17.8,3.0 +19840709,22.5,17.2,28.9,16.7,2.3 +19840710,25.9,19.3,33.3,16.7,2.6 +19840711,28.1,21.6,34.4,20.6,3.1 +19840712,26.9,20.6,35.0,21.1,3.6 +19840713,23.9,21.6,33.9,20.6,2.8 +19840714,23.9,21.7,28.9,20.6,2.7 +19840715,25.8,22.0,30.6,21.7,2.8 +19840716,24.1,21.9,31.1,22.2,3.7 +19840717,24.4,21.4,30.0,22.2,2.9 +19840718,24.3,20.3,29.4,21.1,3.7 +19840719,24.2,17.3,29.4,19.4,3.2 +19840720,23.8,19.6,28.3,19.4,2.0 +19840721,23.9,19.2,28.3,20.0,1.7 +19840722,23.8,18.6,28.9,20.0,3.9 +19840723,24.2,19.1,28.3,20.6,2.8 +19840724,25.8,20.8,31.7,20.6,1.8 +19840725,27.6,21.2,32.2,21.1,2.0 +19840726,26.0,21.2,32.8,22.2,2.5 +19840727,24.2,20.4,32.2,20.6,4.7 +19840728,22.7,19.9,30.6,20.6,3.0 +19840729,20.1,18.0,24.4,17.8,3.4 +19840730,20.2,17.6,23.3,17.8,3.3 +19840731,20.9,18.8,23.3,17.8,3.7 +19840801,22.9,21.2,27.2,18.9,2.5 +19840802,23.3,20.8,29.4,20.0,2.3 +19840803,25.6,21.6,30.0,20.0,3.8 +19840804,26.2,20.6,31.7,20.6,2.4 +19840805,25.2,19.9,31.7,20.6,2.3 +19840806,25.5,21.0,31.7,20.6,2.6 +19840807,26.2,20.5,31.7,21.1,2.4 +19840808,26.1,20.0,31.1,20.6,1.8 +19840809,25.6,20.9,31.7,20.6,1.5 +19840810,24.6,20.9,31.1,21.1,1.7 +19840811,23.6,19.8,31.1,19.4,2.0 +19840812,23.7,21.2,30.0,19.4,2.8 +19840813,23.4,21.1,28.3,21.1,2.8 +19840814,24.1,21.4,28.9,20.0,1.3 +19840815,24.9,19.9,30.0,20.0,1.3 +19840816,25.1,21.6,30.0,20.0,1.7 +19840817,24.4,19.4,30.6,19.4,1.9 +19840818,22.9,18.9,30.0,18.3,1.4 +19840819,23.4,20.3,29.4,18.3,1.3 +19840820,23.8,19.3,30.0,19.4,2.8 +19840821,23.3,18.3,28.9,19.4,2.7 +19840822,22.6,18.4,28.3,17.8,1.5 +19840823,23.5,19.4,28.9,17.8,2.0 +19840824,22.2,16.3,28.3,17.2,2.3 +19840825,22.3,17.1,27.2,17.2,2.6 +19840826,22.3,19.1,26.7,18.9,2.1 +19840827,22.8,18.8,27.8,18.3,2.7 +19840828,23.0,19.7,28.3,18.3,3.4 +19840829,22.9,19.8,27.2,19.4,2.8 +19840830,23.6,19.8,28.9,18.9,3.6 +19840831,25.3,18.3,30.6,18.9,3.0 +19840901,23.1,13.8,30.6,17.2,2.4 +19840902,23.1,16.6,31.1,16.1,1.9 +19840903,24.7,19.1,31.1,16.1,3.3 +19840904,21.9,17.3,31.1,19.4,2.8 +19840905,20.1,11.4,26.1,15.0,3.7 +19840906,18.3,10.4,25.0,12.2,2.6 +19840907,18.1,10.0,25.0,12.2,3.3 +19840908,17.2,8.9,25.0,11.1,3.6 +19840909,18.8,11.2,25.0,11.1,3.8 +19840910,21.9,14.4,27.8,13.3,4.0 +19840911,22.9,15.9,31.1,16.7,2.9 +19840912,24.8,17.0,31.7,16.7,2.9 +19840913,25.3,17.2,32.2,18.9,4.1 +19840914,25.0,17.4,33.3,17.2,2.0 +19840915,24.2,17.1,33.3,17.2,3.3 +19840916,18.7,6.5,31.1,13.9,5.6 +19840917,14.8,4.2,22.8,8.3,4.3 +19840918,15.0,5.5,21.1,8.3,3.7 +19840919,16.6,6.3,25.0,7.8,2.3 +19840920,18.1,8.2,28.3,7.8,1.5 +19840921,20.6,10.7,30.6,9.4,1.8 +19840922,21.1,12.7,30.6,12.2,2.6 +19840923,21.4,14.3,30.0,13.3,2.1 +19840924,20.9,15.1,28.9,15.0,1.5 +19840925,22.7,15.2,31.7,15.6,2.3 +19840926,23.1,13.3,31.7,14.4,2.6 +19840927,18.3,7.8,23.3,14.4,5.5 +19840928,14.1,5.7,20.0,11.7,3.7 +19840929,15.8,8.3,19.4,11.7,4.5 +19840930,14.1,9.2,19.4,12.2,4.0 +19841001,12.9,5.7,15.6,10.0,4.4 +19841002,12.5,1.8,19.4,4.4,2.6 +19841003,12.7,3.5,22.2,4.4,2.4 +19841004,16.1,6.4,25.6,5.0,1.9 +19841005,18.2,10.1,26.1,7.8,1.3 +19841006,17.9,11.9,26.7,11.7,2.8 +19841007,17.6,12.4,24.4,12.8,3.9 +19841008,18.1,13.5,23.3,15.6,2.8 +19841009,18.8,13.9,23.9,15.6,2.4 +19841010,19.8,14.6,24.4,15.6,3.2 +19841011,19.1,12.1,25.0,15.6,4.1 +19841012,17.8,10.3,26.1,11.1,2.0 +19841013,19.0,8.1,27.2,11.1,1.9 +19841014,17.7,8.9,27.8,10.0,0.8 +19841015,19.2,12.0,27.2,10.0,1.7 +19841016,20.7,14.4,27.8,13.9,1.9 +19841017,19.3,15.2,27.8,15.6,1.6 +19841018,20.9,16.9,25.6,16.7,2.8 +19841019,21.1,16.6,28.3,16.7,2.8 +19841020,21.5,15.7,28.3,16.1,3.1 +19841021,22.1,17.2,28.3,16.1,4.9 +19841022,21.5,18.4,26.7,18.9,3.5 +19841023,20.2,17.6,26.7,16.1,1.8 +19841024,20.9,18.1,26.7,16.7,2.3 +19841025,20.8,16.9,26.7,16.7,1.6 +19841026,19.0,14.3,26.7,14.4,2.0 +19841027,16.8,13.3,26.2,12.2,1.2 +19841028,21.1,18.5,27.2,12.2,2.8 +19841029,22.6,18.8,27.2,18.3,3.4 +19841030,21.6,17.1,27.8,17.2,2.2 +19841031,19.0,15.7,27.2,16.1,3.5 +19841101,18.9,15.2,22.2,16.1,3.3 +19841102,18.2,14.7,23.3,13.9,2.0 +19841103,12.5,2.4,23.3,10.0,6.3 +19841104,7.8,3.9,15.0,6.1,5.8 +19841105,12.0,9.7,18.3,6.1,3.1 +19841106,9.1,-0.6,19.4,4.4,4.8 +19841107,5.5,-3.6,12.2,-2.8,2.2 +19841108,5.9,-1.8,14.4,-1.7,1.6 +19841109,7.7,-0.7,17.2,0.0,1.5 +19841110,8.8,3.4,20.0,1.1,2.6 +19841111,11.5,6.0,20.6,1.1,5.6 +19841112,6.4,-3.6,13.9,3.3,5.4 +19841113,5.4,-9.9,13.3,-0.6,4.9 +19841114,5.9,-8.8,16.7,-2.8,2.3 +19841115,7.7,-2.7,18.3,-2.8,3.0 +19841116,13.8,5.2,19.8,1.7,3.9 +19841117,6.4,-10.2,19.4,-2.8,2.6 +19841118,4.8,-3.1,14.4,-2.8,1.1 +19841119,13.3,8.1,22.8,0.6,3.2 +19841120,8.2,0.8,23.3,3.9,4.8 +19841121,0.2,-8.2,9.4,-4.4,3.7 +19841122,1.2,-8.7,8.3,-4.4,4.3 +19841123,3.1,-9.9,14.4,-3.9,2.9 +19841124,5.6,-8.6,17.8,-3.9,1.2 +19841125,5.3,-5.4,18.3,-2.8,1.3 +19841126,7.3,-3.3,17.8,-1.1,1.5 +19841127,11.4,4.4,20.0,-0.6,2.3 +19841128,13.5,8.2,20.6,6.7,5.6 +19841129,5.7,-5.4,15.6,-1.7,2.6 +19841130,4.4,-3.2,14.4,-2.8,2.3 +19841201,9.6,3.7,16.7,-2.8,2.2 +19841202,6.4,-0.2,16.7,2.8,3.1 +19841203,9.3,5.3,16.7,2.8,3.2 +19841204,3.2,-5.8,7.8,-1.7,1.5 +19841205,2.6,-1.0,7.8,-1.7,5.2 +19841206,2.9,-2.1,7.8,0.0,4.8 +19841207,-3.3,-15.2,7.8,-8.3,4.5 +19841208,1.4,-8.2,12.8,-8.3,2.3 +19841209,4.3,-3.6,14.4,-5.6,1.5 +19841210,5.6,1.6,15.0,-3.3,1.8 +19841211,9.7,5.3,16.7,0.6,1.4 +19841212,8.5,4.4,16.7,2.2,2.2 +19841213,13.7,9.4,21.7,2.2,3.3 +19841214,13.3,10.0,21.7,6.1,2.6 +19841215,12.7,9.0,21.7,5.6,1.1 +19841216,12.6,9.0,21.1,5.6,1.5 +19841217,13.8,9.0,21.1,7.8,2.7 +19841218,15.3,10.2,23.9,8.3,1.7 +19841219,16.6,11.5,24.4,8.9,4.2 +19841220,16.7,12.5,21.7,12.8,3.5 +19841221,14.3,12.3,17.8,11.1,3.9 +19841222,14.7,11.0,17.8,10.0,5.7 +19841223,6.8,-2.2,16.7,2.2,2.7 +19841224,4.0,-1.6,11.1,-0.6,1.5 +19841225,10.9,5.5,16.7,-0.6,2.7 +19841226,6.0,-6.1,8.3,3.3,4.5 +19841227,10.6,1.8,19.4,3.3,2.5 +19841228,12.3,8.3,21.1,5.0,3.2 +19841229,15.4,10.8,22.2,10.6,5.5 +19841230,16.6,11.5,23.9,10.6,4.3 +19841231,13.6,11.4,23.9,10.6,3.1 +19850101,14.5,11.3,21.7,10.0,3.4 +19850102,16.3,13.9,22.2,10.0,2.4 +19850103,9.6,8.1,16.7,3.3,6.2 +19850104,2.6,0.8,3.9,1.7,5.6 +19850105,1.6,-5.4,5.6,-0.6,4.5 +19850106,-0.5,-6.7,8.3,-9.4,2.4 +19850107,4.4,-3.1,13.3,-7.2,4.7 +19850108,4.1,-4.5,13.3,-1.7,3.4 +19850109,2.1,-8.3,9.4,-3.9,3.9 +19850110,3.0,-8.3,8.3,-3.9,3.2 +19850111,4.1,-2.4,7.8,1.1,2.9 +19850112,-0.2,-10.9,8.3,-4.4,5.7 +19850113,0.2,-10.5,8.9,-7.8,2.6 +19850114,2.1,-9.8,9.4,-7.8,5.2 +19850115,2.1,-9.8,8.9,-3.3,5.2 +19850116,-0.7,-9.5,5.6,-6.7,2.3 +19850117,3.5,-0.1,8.3,-6.7,3.3 +19850118,2.3,-3.1,8.9,-3.3,4.2 +19850119,7.2,-4.1,12.2,3.3,5.5 +19850120,-1.1,-12.4,12.8,-12.2,5.5 +19850121,-14.0,-29.2,-3.3,-20.0,4.6 +19850122,-5.9,-16.2,4.4,-20.0,3.0 +19850123,-3.4,-13.5,6.1,-12.8,2.5 +19850124,1.6,-10.6,10.6,-10.6,4.8 +19850125,6.2,-6.4,13.9,-5.0,6.5 +19850126,-1.8,-16.2,6.1,-8.3,4.6 +19850127,-1.5,-14.8,8.9,-10.0,2.6 +19850128,2.3,-4.2,9.4,0.6,4.0 +19850129,1.1,-3.1,3.9,-1.7,2.1 +19850130,2.5,-1.8,6.7,-1.7,2.2 +19850131,4.9,3.6,7.2,-1.7,2.6 +19850201,8.3,8.1,13.3,3.3,3.4 +19850202,8.5,7.8,13.3,6.7,3.0 +19850203,5.0,0.9,9.4,2.2,4.2 +19850204,2.2,-4.0,6.1,0.0,4.3 +19850205,0.6,-2.6,4.4,-1.1,3.3 +19850206,2.9,1.3,10.0,0.0,1.6 +19850207,2.4,-4.7,10.6,-2.2,2.4 +19850208,-0.2,-15.3,7.2,-5.6,5.9 +19850209,2.3,-16.0,11.1,-5.6,4.4 +19850210,3.6,-9.1,14.4,-2.8,1.8 +19850211,3.8,-2.8,14.4,-2.8,2.6 +19850212,3.6,-1.0,11.7,-1.7,8.8 +19850213,1.1,-9.4,7.8,-4.4,6.1 +19850214,1.7,-10.9,10.0,-6.1,4.1 +19850215,2.3,-12.7,10.6,-6.1,3.8 +19850216,0.1,-12.3,8.3,-7.8,2.5 +19850217,6.2,-10.3,15.0,1.1,2.9 +19850218,5.4,-5.7,15.6,-2.2,3.0 +19850219,7.6,0.6,13.9,-2.2,2.0 +19850220,9.3,4.7,15.6,3.9,2.1 +19850221,7.5,-0.7,15.6,0.0,2.3 +19850222,11.6,2.8,18.9,0.0,2.3 +19850223,15.5,8.8,21.7,6.7,3.1 +19850224,15.9,11.8,21.7,11.1,3.9 +19850225,15.8,12.7,20.6,12.2,3.7 +19850226,15.8,12.9,20.0,13.3,2.5 +19850227,16.2,9.8,20.6,11.1,4.0 +19850228,9.6,-3.9,18.3,3.3,3.3 +19850301,8.1,0.5,16.1,3.3,1.7 +19850302,12.6,6.1,19.4,3.9,3.0 +19850303,11.8,1.7,19.4,6.1,3.5 +19850304,14.1,6.8,22.8,6.7,2.6 +19850305,18.2,6.8,23.9,8.3,4.1 +19850306,9.6,-4.5,23.9,3.3,4.6 +19850307,5.5,-4.3,14.4,-1.1,3.4 +19850308,13.4,3.4,23.3,-1.1,4.6 +19850309,17.8,11.8,23.9,16.7,2.5 +19850310,11.4,-3.6,18.3,1.7,2.2 +19850311,12.9,1.9,18.9,1.7,2.2 +19850312,17.6,6.7,22.8,10.0,5.5 +19850313,12.8,-4.1,22.8,1.7,3.4 +19850314,17.8,7.2,25.0,12.2,4.5 +19850315,12.6,-0.4,25.6,5.6,4.6 +19850316,8.3,-4.7,16.1,3.3,3.2 +19850317,12.5,-1.4,17.2,3.3,3.7 +19850318,6.3,-10.1,17.8,-1.1,7.1 +19850319,5.9,-12.2,15.6,-3.9,3.1 +19850320,10.2,-6.2,19.4,-3.9,4.6 +19850321,10.4,2.1,20.0,2.2,2.7 +19850322,4.6,2.8,12.2,2.2,7.3 +19850323,7.9,4.7,18.9,3.3,3.3 +19850324,12.7,5.7,19.4,3.9,4.0 +19850325,8.6,-0.1,17.8,1.1,3.1 +19850326,9.3,-0.2,18.3,1.1,2.6 +19850327,12.3,2.8,21.7,1.1,4.8 +19850328,17.8,10.8,21.7,14.4,6.0 +19850329,19.3,14.2,25.6,14.4,5.7 +19850330,21.3,13.5,27.8,15.6,5.5 +19850331,19.8,12.7,27.8,15.0,5.6 +19850401,13.1,2.7,25.0,5.6,4.9 +19850402,10.3,-4.8,19.4,0.6,2.9 +19850403,10.1,-2.2,23.3,0.6,4.8 +19850404,18.2,5.4,26.7,10.0,5.2 +19850405,19.7,8.3,26.7,10.0,7.5 +19850406,15.2,5.9,22.2,8.9,7.4 +19850407,15.1,1.4,23.3,5.6,4.8 +19850408,9.4,-3.8,23.3,2.2,4.3 +19850409,7.8,-7.3,15.6,2.2,3.7 +19850410,6.0,-6.8,13.9,-0.6,3.0 +19850411,11.3,0.0,21.7,-0.6,2.9 +19850412,15.1,4.4,23.9,3.9,1.7 +19850413,16.8,11.2,23.9,6.7,2.2 +19850414,15.2,12.7,21.1,13.3,3.3 +19850415,15.9,14.6,17.8,13.9,3.5 +19850416,15.6,14.1,17.8,15.0,1.8 +19850417,17.9,10.8,25.6,11.1,2.7 +19850418,18.4,10.6,26.7,11.1,2.7 +19850419,19.9,10.7,27.8,11.1,3.2 +19850420,20.8,10.9,29.4,11.1,1.6 +19850421,20.8,10.4,30.0,11.1,1.9 +19850422,21.3,8.2,29.4,11.7,2.9 +19850423,20.8,10.3,28.9,12.2,2.8 +19850424,19.5,14.7,27.8,14.4,3.9 +19850425,20.4,9.3,28.3,12.2,3.2 +19850426,19.6,6.1,29.4,10.6,2.5 +19850427,21.3,10.2,30.0,10.6,3.1 +19850428,23.2,15.7,28.9,15.6,3.1 +19850429,21.4,13.0,28.3,16.7,3.9 +19850430,16.8,7.9,25.6,9.4,2.6 +19850501,17.6,9.6,25.6,9.4,2.6 +19850502,17.9,13.9,25.6,10.0,2.9 +19850503,19.2,13.9,23.9,15.6,3.5 +19850504,15.6,6.8,23.9,7.2,2.5 +19850505,15.6,7.8,23.3,7.2,3.0 +19850506,19.3,9.6,27.8,7.8,3.6 +19850507,21.6,13.1,28.9,11.7,2.5 +19850508,17.9,11.9,27.8,13.9,3.8 +19850509,13.0,11.4,21.1,12.8,3.9 +19850510,16.3,15.1,22.8,12.8,3.5 +19850511,20.7,17.5,25.6,14.4,2.0 +19850512,21.8,18.2,27.2,18.3,1.7 +19850513,21.2,16.4,27.8,16.1,1.9 +19850514,23.4,17.4,29.4,16.1,1.2 +19850515,24.3,18.6,30.0,17.2,2.5 +19850516,23.0,15.6,30.6,19.4,4.1 +19850517,18.9,12.1,27.2,12.8,3.5 +19850518,16.9,7.1,23.3,12.8,4.9 +19850519,17.7,7.6,25.6,8.9,2.5 +19850520,19.6,11.3,27.8,8.9,2.1 +19850521,22.4,15.9,29.4,12.2,1.9 +19850522,23.3,17.1,29.4,15.6,2.9 +19850523,22.5,17.1,29.4,18.3,6.1 +19850524,16.8,13.1,27.8,13.3,2.9 +19850525,19.3,11.9,25.6,13.3,2.7 +19850526,20.2,10.4,27.2,12.2,1.7 +19850527,22.0,11.8,28.9,12.2,2.7 +19850528,21.9,14.1,28.9,13.9,3.6 +19850529,21.7,15.9,28.3,16.1,1.4 +19850530,21.3,17.0,28.3,16.1,3.3 +19850531,22.2,17.8,28.9,18.9,3.8 +19850601,27.4,18.3,33.9,18.9,2.8 +19850602,24.7,15.3,34.4,17.8,2.2 +19850603,27.2,18.3,36.1,17.8,2.0 +19850604,29.7,19.6,36.7,20.0,2.7 +19850605,29.8,19.1,37.2,23.3,3.5 +19850606,29.3,18.8,37.8,23.3,3.2 +19850607,26.3,19.4,37.2,21.1,2.8 +19850608,23.0,18.1,32.2,18.3,3.2 +19850609,27.3,18.2,33.3,18.3,2.3 +19850610,28.1,19.7,33.3,19.4,2.3 +19850611,26.6,19.9,33.3,21.7,4.3 +19850612,25.7,18.4,32.2,22.8,6.5 +19850613,20.4,7.5,28.9,13.9,3.1 +19850614,20.1,8.6,26.7,12.8,3.7 +19850615,21.8,13.5,27.8,12.8,2.4 +19850616,24.4,19.6,31.1,15.0,4.6 +19850617,26.1,18.4,32.2,18.9,4.1 +19850618,25.9,19.1,32.8,18.9,5.7 +19850619,22.6,15.1,29.4,17.8,4.2 +19850620,20.6,11.7,27.2,12.2,2.5 +19850621,21.4,11.8,28.9,12.2,2.5 +19850622,21.8,13.6,30.0,13.9,1.9 +19850623,25.1,16.2,31.1,13.9,2.6 +19850624,24.7,19.2,32.8,18.3,2.6 +19850625,23.7,18.0,32.8,17.2,2.2 +19850626,26.3,18.5,33.9,17.2,2.1 +19850627,24.1,14.2,33.9,18.3,4.1 +19850628,22.9,15.1,28.3,17.2,2.7 +19850629,21.8,19.4,28.3,17.2,1.7 +19850630,21.6,18.7,28.3,18.3,3.2 +19850701,20.3,17.2,27.8,17.2,3.7 +19850702,21.2,17.0,27.8,16.7,3.4 +19850703,22.7,15.3,30.0,13.9,2.4 +19850704,23.7,17.6,30.0,13.9,3.0 +19850705,22.1,18.6,30.0,17.2,4.0 +19850706,20.6,19.1,28.3,18.3,3.8 +19850707,23.3,19.0,30.0,19.4,2.5 +19850708,24.2,17.2,31.1,16.1,2.8 +19850709,25.7,18.7,32.8,16.1,2.4 +19850710,26.1,19.0,33.9,17.8,2.5 +19850711,26.4,18.2,33.9,19.4,3.6 +19850712,26.1,19.3,33.9,19.4,2.6 +19850713,24.3,20.3,34.4,18.9,2.6 +19850714,24.5,20.8,32.2,18.9,1.3 +19850715,25.3,20.7,33.3,19.4,2.5 +19850716,24.3,20.6,33.3,20.0,2.5 +19850717,24.2,19.9,31.7,20.0,3.4 +19850718,24.5,19.2,30.6,19.4,2.3 +19850719,25.3,19.5,31.7,19.4,1.6 +19850720,26.7,20.2,33.3,19.4,1.6 +19850721,27.3,20.9,33.9,21.1,2.6 +19850722,26.2,20.8,33.3,20.6,2.7 +19850723,22.4,20.2,33.3,20.0,2.4 +19850724,20.6,19.9,27.8,18.9,4.6 +19850725,22.7,20.4,28.3,18.9,5.2 +19850726,23.7,21.9,28.3,20.0,4.1 +19850727,24.1,21.7,28.3,21.7,3.9 +19850728,22.1,20.9,27.2,19.4,3.3 +19850729,22.4,21.0,26.7,19.4,2.6 +19850730,23.9,21.8,28.3,20.6,1.6 +19850731,25.1,22.4,31.1,20.6,1.9 +19850801,24.9,22.2,31.7,20.6,2.0 +19850802,22.8,17.9,28.9,18.9,4.7 +19850803,21.2,14.9,26.7,16.1,3.8 +19850804,19.7,13.4,26.7,13.9,2.8 +19850805,19.7,14.5,27.8,13.3,2.4 +19850806,21.8,19.3,27.8,13.3,2.0 +19850807,23.4,20.4,27.8,18.9,1.9 +19850808,22.7,20.9,28.9,20.6,1.8 +19850809,24.6,21.3,30.0,20.6,2.6 +19850810,25.4,20.6,31.1,21.1,2.6 +19850811,25.1,20.9,31.7,19.4,1.5 +19850812,25.3,20.9,31.7,19.4,2.0 +19850813,25.6,20.6,32.2,19.4,1.7 +19850814,25.1,19.4,32.2,18.9,1.7 +19850815,25.1,19.6,31.1,18.9,3.1 +19850816,25.2,20.6,31.7,19.4,2.5 +19850817,22.9,21.6,32.2,20.0,3.5 +19850818,24.6,20.3,30.0,20.6,3.0 +19850819,24.8,19.4,31.7,17.8,1.6 +19850820,25.1,21.0,31.7,17.8,1.8 +19850821,24.3,20.9,30.6,19.4,1.3 +19850822,22.4,17.6,30.6,17.2,3.1 +19850823,20.2,16.8,27.8,17.2,2.9 +19850824,19.9,18.9,22.8,17.8,1.7 +19850825,22.1,20.4,25.0,17.8,3.8 +19850826,22.5,21.0,26.1,20.6,3.9 +19850827,22.9,20.8,26.7,20.6,2.9 +19850828,23.4,20.4,28.9,19.4,1.9 +19850829,23.9,19.4,30.0,18.3,2.0 +19850830,23.5,20.4,30.0,18.3,4.2 +19850831,23.0,19.7,30.0,19.4,2.5 +19850901,22.7,18.8,28.9,17.8,3.4 +19850902,23.4,19.4,29.4,17.8,2.4 +19850903,24.1,20.2,30.6,17.8,1.9 +19850904,24.7,19.9,31.1,18.3,2.3 +19850905,25.6,20.5,31.1,18.9,3.4 +19850906,24.7,20.2,31.7,19.4,2.7 +19850907,25.1,20.1,32.2,19.4,1.8 +19850908,25.6,21.1,32.2,20.0,1.0 +19850909,25.1,20.1,32.8,18.9,1.6 +19850910,25.8,20.6,32.8,18.9,1.6 +19850911,25.1,20.2,33.3,19.4,2.2 +19850912,21.6,18.3,32.2,18.9,4.1 +19850913,17.0,11.2,22.2,15.6,5.1 +19850914,13.1,5.2,20.6,5.6,4.0 +19850915,13.7,6.8,21.7,5.6,3.5 +19850916,16.2,8.8,24.4,7.2,3.2 +19850917,16.4,9.3,26.1,8.9,2.7 +19850918,17.1,10.1,26.1,8.9,2.7 +19850919,18.1,11.3,27.2,8.9,3.0 +19850920,18.7,12.1,27.8,11.1,2.5 +19850921,19.2,14.5,27.8,11.1,2.2 +19850922,21.3,16.1,28.3,14.4,1.4 +19850923,20.3,16.1,28.9,13.3,2.3 +19850924,22.8,19.3,29.4,13.3,1.8 +19850925,20.7,13.7,29.4,16.1,4.3 +19850926,19.3,14.6,26.7,16.1,3.8 +19850927,18.2,10.4,26.1,11.1,3.9 +19850928,14.6,6.2,23.3,6.7,3.1 +19850929,15.0,8.3,23.9,6.7,2.9 +19850930,17.6,11.7,26.1,7.2,2.2 +19851001,17.8,14.7,26.1,11.1,2.2 +19851002,19.0,18.2,25.0,12.8,3.2 +19851003,20.9,19.7,25.6,17.8,2.0 +19851004,22.2,18.2,27.8,17.8,3.4 +19851005,19.2,12.2,28.3,15.6,4.1 +19851006,12.4,2.3,23.3,3.9,3.0 +19851007,11.6,4.4,20.0,3.9,3.0 +19851008,11.8,7.1,20.0,4.4,4.1 +19851009,18.6,12.1,25.0,6.1,4.0 +19851010,17.8,12.4,27.8,10.0,2.6 +19851011,20.1,13.4,28.9,10.0,2.5 +19851012,19.9,15.3,29.4,12.8,2.4 +19851013,21.3,17.2,28.3,13.3,2.3 +19851014,22.4,17.4,29.4,16.7,1.5 +19851015,23.4,17.9,30.0,16.7,4.2 +19851016,20.9,17.5,30.0,18.3,2.0 +19851017,18.8,13.3,26.1,13.3,3.8 +19851018,18.9,13.6,25.0,13.3,4.2 +19851019,19.3,15.3,26.7,13.3,2.5 +19851020,19.7,14.9,28.3,12.2,2.2 +19851021,15.1,14.2,28.3,11.7,3.7 +19851022,13.1,11.9,18.9,11.1,3.4 +19851023,15.5,14.3,17.8,11.1,3.3 +19851024,18.1,16.1,22.8,14.4,2.5 +19851025,19.7,15.9,26.1,15.6,1.8 +19851026,17.0,8.6,26.1,15.0,4.8 +19851027,13.8,6.7,20.6,10.0,4.0 +19851028,17.4,10.1,22.2,10.0,4.5 +19851029,12.8,-0.8,22.8,10.0,7.6 +19851030,8.8,3.8,15.6,5.6,7.4 +19851031,12.2,11.6,15.0,5.6,6.7 +19851101,16.4,15.9,18.3,10.6,5.1 +19851102,15.7,15.3,18.3,13.9,3.1 +19851103,13.0,12.5,17.8,11.7,4.8 +19851104,12.9,11.8,14.4,8.3,4.2 +19851105,7.9,3.9,14.4,2.2,3.2 +19851106,11.6,5.6,21.1,2.2,3.4 +19851107,10.9,7.1,21.1,2.8,3.4 +19851108,9.9,1.1,20.0,1.1,3.4 +19851109,7.6,2.6,18.9,-1.7,1.2 +19851110,13.0,9.2,22.2,-1.7,2.4 +19851111,15.2,11.2,24.4,5.6,1.5 +19851112,15.6,13.2,25.0,8.9,2.8 +19851113,18.2,16.9,22.8,11.7,2.7 +19851114,17.3,14.9,24.4,11.1,2.3 +19851115,18.1,14.8,25.0,11.1,2.5 +19851116,14.1,13.3,25.0,11.7,3.5 +19851117,15.7,14.2,23.9,11.7,3.3 +19851118,16.9,15.8,24.4,12.2,2.2 +19851119,17.7,16.6,22.2,13.9,2.4 +19851120,18.2,17.4,23.3,15.0,1.3 +19851121,17.9,17.8,21.7,13.3,3.2 +19851122,10.7,9.0,18.9,6.1,7.6 +19851123,12.7,7.4,18.9,6.1,2.6 +19851124,10.1,7.0,18.9,5.0,1.7 +19851125,14.6,13.3,17.8,5.0,2.0 +19851126,15.0,14.1,18.3,12.2,3.0 +19851127,19.1,17.3,22.2,12.8,5.2 +19851128,19.2,16.5,22.8,16.7,5.0 +19851129,17.8,17.2,21.7,16.7,2.2 +19851130,12.2,11.6,19.4,8.9,4.9 +19851201,10.3,9.7,13.3,8.9,3.0 +19851202,9.3,2.6,12.2,2.8,4.7 +19851203,1.1,-9.9,12.2,-3.3,4.7 +19851204,1.2,-7.6,8.3,-3.9,2.6 +19851205,3.5,-3.7,10.0,-3.9,2.5 +19851206,3.1,-2.6,10.0,-1.7,4.1 +19851207,0.6,-4.6,8.3,-9.4,2.0 +19851208,5.2,-1.4,15.0,-6.1,3.8 +19851209,10.3,3.3,18.9,-0.6,3.1 +19851210,10.4,6.7,19.4,2.8,2.0 +19851211,10.6,8.6,18.9,3.3,2.5 +19851212,15.1,14.2,17.8,5.0,2.7 +19851213,15.9,15.3,18.7,12.2,3.3 +19851214,4.2,-4.0,18.3,-0.6,6.5 +19851215,-1.8,-10.2,7.2,-8.9,3.2 +19851216,0.9,-7.2,10.0,-8.9,2.5 +19851217,4.7,-5.7,12.8,-6.1,4.2 +19851218,4.8,-4.4,13.3,-3.9,3.5 +19851219,0.3,-13.6,10.6,-3.9,4.0 +19851220,-1.0,-10.7,5.0,-5.0,2.6 +19851221,-1.2,-10.9,5.0,-6.7,3.1 +19851222,-2.3,-10.2,6.7,-10.0,2.8 +19851223,5.7,-1.8,14.4,-0.6,6.1 +19851224,7.9,1.6,15.0,-0.6,6.4 +19851225,0.3,-9.4,15.0,-5.6,5.0 +19851226,-8.7,-18.1,5.6,-15.0,4.2 +19851227,0.4,-12.1,10.6,-5.6,6.3 +19851228,4.4,-5.4,10.6,-5.6,3.8 +19851229,2.7,-7.2,12.2,-5.6,3.1 +19851230,1.8,-12.6,12.8,-6.1,2.6 +19851231,0.9,-7.3,8.9,-6.1,2.8 +19860101,4.4,-0.5,12.2,-3.9,2.8 +19860102,3.1,-2.2,13.3,-5.0,2.3 +19860103,9.7,-0.9,17.2,3.9,3.8 +19860104,5.5,-1.3,17.2,1.1,1.9 +19860105,4.7,-4.1,9.4,1.1,4.2 +19860106,0.8,-12.2,11.7,-6.7,3.9 +19860107,4.7,-9.7,12.2,-6.7,3.5 +19860108,-1.0,-14.6,11.7,-6.7,4.8 +19860109,-2.6,-15.7,9.4,-11.1,2.1 +19860110,7.3,-7.4,13.9,2.8,2.6 +19860111,5.9,-10.0,14.4,-3.9,2.9 +19860112,5.6,-7.6,17.8,-3.9,3.7 +19860113,6.2,-8.6,17.8,-3.3,5.2 +19860114,0.6,-10.4,11.7,-7.8,4.3 +19860115,4.1,-7.2,12.2,-7.8,3.5 +19860116,4.3,-4.1,15.6,-3.3,3.4 +19860117,9.8,3.1,16.1,5.6,2.8 +19860118,11.6,8.9,18.9,3.9,1.5 +19860119,12.2,9.2,19.4,5.6,5.0 +19860120,5.9,-2.8,14.4,0.6,4.2 +19860121,6.0,-4.5,16.7,-3.3,2.0 +19860122,9.7,3.5,20.6,-3.3,3.8 +19860123,8.3,-1.6,21.1,1.7,5.1 +19860124,2.1,-8.2,11.1,-2.8,4.1 +19860125,2.2,-4.9,8.3,-2.8,3.7 +19860126,4.1,0.9,7.8,-1.1,2.2 +19860127,-4.8,-16.3,7.8,-10.0,6.3 +19860128,-10.2,-21.6,-0.6,-15.0,4.4 +19860129,-0.4,-9.4,7.2,-4.4,5.5 +19860130,4.3,-5.2,10.0,-5.0,3.8 +19860131,3.8,-5.8,13.9,-2.8,2.7 +19860201,5.3,-4.1,15.0,-2.8,2.2 +19860202,10.6,2.1,22.2,-2.8,4.3 +19860203,15.3,7.8,22.8,1.1,3.8 +19860204,14.7,8.4,23.3,7.8,4.2 +19860205,15.5,13.3,22.2,8.3,4.4 +19860206,13.2,13.1,16.7,11.7,2.3 +19860207,13.2,6.9,17.8,7.2,6.0 +19860208,8.3,2.7,17.8,1.7,2.8 +19860209,5.4,3.7,15.0,0.0,2.4 +19860210,7.2,6.4,12.8,0.0,3.3 +19860211,6.6,5.7,8.3,4.4,3.0 +19860212,0.7,-8.6,7.8,-5.6,3.9 +19860213,-2.2,-14.2,6.7,-6.7,4.3 +19860214,-1.3,-11.8,2.8,-6.7,3.2 +19860215,2.5,-2.7,9.4,-6.1,2.9 +19860216,4.5,-4.4,16.7,-3.9,2.6 +19860217,10.9,-1.1,16.7,6.7,3.4 +19860218,12.2,9.2,20.6,6.7,2.5 +19860219,14.1,11.4,20.6,8.9,3.5 +19860220,15.3,10.7,23.3,8.9,2.6 +19860221,14.8,11.4,23.9,6.7,4.2 +19860222,11.8,8.9,23.3,6.7,2.8 +19860223,8.9,0.4,16.7,1.1,2.9 +19860224,6.4,0.4,17.2,1.1,3.1 +19860225,5.6,-4.1,11.1,-0.6,4.7 +19860226,4.2,-4.0,14.4,-2.8,3.7 +19860227,11.1,3.3,17.2,-2.8,3.8 +19860228,4.5,-0.9,9.4,2.2,2.7 +19860301,2.2,-9.2,7.2,-1.1,3.8 +19860302,3.3,-10.6,10.6,-1.7,4.2 +19860303,9.2,-1.9,18.9,-1.7,4.5 +19860304,6.7,-0.8,18.9,-2.2,2.8 +19860305,5.4,-2.8,14.4,-2.2,3.9 +19860306,8.3,-3.1,16.1,-0.6,4.3 +19860307,8.3,-3.3,18.3,0.0,4.7 +19860308,2.6,-11.4,8.9,-3.9,4.1 +19860309,5.6,-4.9,17.2,-3.9,2.7 +19860310,12.8,9.4,20.6,8.3,2.6 +19860311,20.2,14.4,26.7,16.7,4.9 +19860312,15.6,8.3,27.2,13.3,4.5 +19860313,10.7,9.4,17.2,8.3,4.0 +19860314,13.7,13.4,16.1,8.3,3.1 +19860315,12.9,10.4,20.0,8.3,3.3 +19860316,12.2,8.1,20.6,6.7,2.1 +19860317,12.5,5.7,20.6,6.7,3.0 +19860318,13.8,7.6,22.8,6.7,3.1 +19860319,17.8,14.9,23.3,7.2,6.5 +19860320,10.8,9.1,19.4,7.8,2.9 +19860321,3.9,-4.9,13.3,-1.1,3.2 +19860322,2.7,-11.1,10.6,-4.4,3.2 +19860323,5.8,-6.6,19.4,-4.4,2.4 +19860324,14.9,-1.2,22.8,5.0,3.8 +19860325,13.5,1.7,22.8,4.4,3.2 +19860326,15.2,9.6,22.8,4.4,2.5 +19860327,16.1,7.3,22.8,7.8,3.1 +19860328,14.1,-0.9,22.8,5.6,2.7 +19860329,14.1,0.9,25.0,2.8,2.3 +19860330,16.9,3.2,27.2,2.8,2.6 +19860331,18.8,4.6,29.4,6.1,2.5 +19860401,19.6,5.9,30.0,8.3,2.0 +19860402,20.2,6.2,29.4,8.9,2.4 +19860403,19.4,9.3,28.9,11.1,3.8 +19860404,19.9,9.8,28.3,12.2,3.0 +19860405,20.7,10.2,28.3,12.2,4.1 +19860406,21.1,9.9,28.9,13.3,4.3 +19860407,22.1,11.2,29.4,13.3,3.5 +19860408,18.9,14.1,30.0,13.3,3.5 +19860409,13.7,2.4,20.0,8.3,5.7 +19860410,10.1,-4.4,19.4,0.0,4.4 +19860411,13.3,-3.7,23.9,0.0,4.8 +19860412,16.1,1.1,23.9,1.1,3.2 +19860413,15.7,4.3,26.1,4.4,2.7 +19860414,16.7,7.2,26.7,5.0,3.1 +19860415,19.1,9.8,26.1,8.9,5.6 +19860416,12.9,0.3,23.9,7.8,5.0 +19860417,8.0,-0.1,15.6,1.1,4.3 +19860418,12.4,3.6,23.9,1.1,3.0 +19860419,15.7,6.9,24.4,2.2,3.1 +19860420,15.4,9.3,24.4,6.1,4.1 +19860421,16.7,11.1,21.1,8.9,4.5 +19860422,10.9,1.9,22.8,3.3,4.0 +19860423,8.7,-8.3,17.2,1.1,5.4 +19860424,12.7,-5.6,23.9,-0.6,2.9 +19860425,19.1,0.1,30.6,6.7,3.0 +19860426,21.4,8.4,31.1,15.0,3.0 +19860427,23.4,10.7,33.9,12.2,2.8 +19860428,23.7,11.6,33.9,12.2,3.8 +19860429,19.7,8.8,31.1,11.7,3.7 +19860430,20.9,4.7,29.4,10.6,2.9 +19860501,22.8,9.0,31.7,10.6,3.7 +19860502,21.6,5.3,31.7,13.9,4.0 +19860503,16.5,-0.3,26.7,7.8,3.8 +19860504,13.8,-2.6,23.3,3.9,3.2 +19860505,17.1,3.4,26.7,3.9,4.0 +19860506,22.1,14.1,30.0,7.8,4.3 +19860507,22.7,15.4,31.1,14.4,3.2 +19860508,22.2,15.8,32.2,14.4,3.1 +19860509,20.4,12.0,29.4,12.8,2.7 +19860510,17.6,9.8,27.8,12.8,3.0 +19860511,18.9,11.6,28.9,10.6,3.0 +19860512,21.8,15.6,28.9,10.6,2.7 +19860513,19.5,15.4,27.2,14.4,2.4 +19860514,16.9,15.7,26.1,13.9,2.7 +19860515,18.8,16.2,25.0,13.9,1.9 +19860516,20.7,16.6,27.8,15.6,2.6 +19860517,20.9,17.7,28.3,15.6,2.6 +19860518,22.2,17.7,28.3,16.1,2.6 +19860519,20.2,17.8,29.4,17.2,2.3 +19860520,19.4,16.2,26.1,13.9,2.8 +19860521,17.1,11.4,26.7,9.4,2.4 +19860522,17.1,7.7,25.0,7.8,2.4 +19860523,16.8,11.5,23.9,7.8,2.3 +19860524,20.8,15.8,29.4,11.7,2.3 +19860525,23.4,18.1,30.0,12.8,2.2 +19860526,20.2,18.6,28.9,17.2,2.2 +19860527,20.5,19.3,24.4,18.3,2.2 +19860528,22.0,19.5,27.8,17.8,2.7 +19860529,23.7,20.3,28.3,17.8,2.8 +19860530,24.8,19.2,31.1,17.8,1.8 +19860531,24.7,18.3,31.7,17.2,1.6 +19860601,23.8,18.4,31.1,17.2,2.0 +19860602,23.6,19.5,31.7,17.8,1.7 +19860603,20.3,14.8,31.1,17.2,3.2 +19860604,20.2,15.9,26.1,17.2,2.7 +19860605,23.4,19.2,29.4,17.8,2.3 +19860606,24.6,18.9,31.7,17.8,2.1 +19860607,26.2,20.9,32.8,17.8,2.3 +19860608,26.5,21.5,33.3,20.6,4.2 +19860609,25.5,21.7,32.8,21.1,2.9 +19860610,24.3,21.8,32.8,20.6,1.9 +19860611,26.2,22.4,32.2,21.7,3.3 +19860612,26.8,21.2,32.2,21.1,5.0 +19860613,25.5,16.6,31.7,17.2,3.1 +19860614,24.7,17.2,31.1,17.2,3.3 +19860615,24.4,19.1,31.7,17.8,2.2 +19860616,24.9,19.6,32.8,17.8,2.2 +19860617,26.2,19.4,33.3,17.8,3.1 +19860618,24.7,16.4,33.3,17.8,4.4 +19860619,24.2,15.9,31.7,16.1,2.0 +19860620,26.7,18.8,35.0,16.1,3.0 +19860621,26.7,16.1,35.0,20.0,4.0 +19860622,25.7,16.4,32.8,18.9,3.5 +19860623,27.6,17.5,35.6,18.9,3.8 +19860624,27.8,19.0,36.1,19.4,3.6 +19860625,26.2,16.4,34.4,18.3,2.6 +19860626,26.3,16.4,34.4,18.3,2.5 +19860627,28.3,20.7,35.6,20.6,3.1 +19860628,27.9,20.3,36.1,21.1,4.2 +19860629,26.3,20.9,35.6,21.1,5.0 +19860630,26.6,20.8,33.9,21.1,3.5 +19860701,27.8,21.0,34.4,21.7,3.7 +19860702,26.5,21.6,34.4,22.2,5.5 +19860703,24.8,16.9,33.9,19.4,4.0 +19860704,24.3,15.1,31.1,17.8,3.4 +19860705,25.6,16.7,32.2,17.8,2.3 +19860706,26.3,16.4,33.9,17.8,1.8 +19860707,28.9,18.9,36.7,18.3,1.7 +19860708,30.2,19.6,37.8,20.6,2.2 +19860709,30.0,19.8,38.3,21.7,2.6 +19860710,29.1,19.7,37.8,21.7,2.7 +19860711,27.9,19.6,35.6,20.6,2.3 +19860712,28.4,20.8,36.7,20.6,4.0 +19860713,29.4,19.1,36.1,22.2,4.3 +19860714,29.0,19.0,36.1,22.2,2.3 +19860715,25.3,21.0,36.7,20.6,2.8 +19860716,27.1,21.3,35.0,20.6,2.3 +19860717,28.7,21.7,36.1,21.1,2.2 +19860718,30.9,21.0,37.8,21.7,2.2 +19860719,31.8,19.4,38.9,22.8,2.9 +19860720,30.7,18.4,39.4,23.3,3.1 +19860721,31.3,18.9,38.3,23.3,2.9 +19860722,28.3,21.4,38.9,21.7,2.8 +19860723,27.3,21.8,35.0,21.7,2.7 +19860724,26.5,22.8,35.0,22.2,3.5 +19860725,26.6,22.3,34.4,21.7,2.5 +19860726,26.2,21.5,35.0,21.1,3.4 +19860727,25.5,22.4,35.0,21.1,2.9 +19860728,26.5,21.7,35.0,20.6,2.4 +19860729,28.4,21.7,36.1,20.6,2.7 +19860730,27.7,16.9,36.1,19.4,3.1 +19860731,26.3,13.8,35.0,18.9,3.2 +19860801,25.9,17.1,33.9,18.9,2.7 +19860802,27.6,20.6,34.4,20.0,2.1 +19860803,26.4,20.3,35.6,20.0,2.8 +19860804,24.2,20.7,32.8,20.0,3.0 +19860805,24.3,20.4,31.7,19.4,2.9 +19860806,24.4,21.9,31.1,19.4,2.1 +19860807,24.8,20.6,32.8,19.4,3.3 +19860808,25.1,20.5,33.3,19.4,4.0 +19860809,26.1,19.4,33.3,20.0,4.4 +19860810,25.3,20.6,32.8,20.6,3.8 +19860811,24.8,21.3,32.2,20.6,3.8 +19860812,22.0,21.4,31.7,20.6,2.4 +19860813,21.4,20.7,24.4,20.0,4.2 +19860814,22.7,21.1,27.8,20.0,4.4 +19860815,25.2,21.3,31.7,20.6,3.3 +19860816,25.8,21.8,32.2,20.6,1.8 +19860817,24.9,22.3,32.2,20.6,3.1 +19860818,23.2,21.9,27.2,21.1,4.2 +19860819,22.2,21.1,27.8,21.1,4.3 +19860820,22.8,21.2,26.7,20.6,4.5 +19860821,24.1,20.9,29.4,20.6,3.4 +19860822,25.3,21.9,30.7,20.6,2.6 +19860823,24.8,22.6,31.7,20.6,2.5 +19860824,25.7,20.9,31.7,20.0,2.8 +19860825,22.8,17.6,31.7,17.8,3.3 +19860826,24.1,20.5,30.6,17.8,2.7 +19860827,25.8,21.6,30.6,19.4,4.3 +19860828,22.1,19.4,30.6,18.3,4.8 +19860829,17.3,10.2,23.9,12.8,4.7 +19860830,15.7,9.4,22.8,12.2,4.3 +19860831,16.9,14.7,20.6,12.2,5.4 +19860901,17.1,16.7,20.6,15.0,4.7 +19860902,18.2,18.0,20.0,16.1,4.1 +19860903,20.1,19.6,23.3,17.2,3.1 +19860904,21.1,20.9,25.0,18.3,2.4 +19860905,22.8,21.2,27.8,20.0,1.8 +19860906,23.9,20.2,28.9,20.0,2.7 +19860907,22.0,14.8,29.4,15.0,2.4 +19860908,21.2,17.2,29.4,15.0,2.8 +19860909,17.9,15.7,27.2,16.1,4.1 +19860910,20.3,18.1,26.7,16.1,2.6 +19860911,22.1,20.3,27.2,17.2,3.0 +19860912,24.6,21.1,30.6,20.0,4.6 +19860913,21.9,15.4,30.6,16.1,3.6 +19860914,20.1,15.1,27.8,13.9,3.2 +19860915,19.6,14.0,28.3,10.6,2.4 +19860916,21.3,16.4,27.8,10.6,2.4 +19860917,19.5,13.4,28.3,16.1,4.1 +19860918,17.4,14.1,22.8,14.4,2.2 +19860919,21.3,18.7,27.8,15.6,3.5 +19860920,23.3,19.6,30.6,16.1,2.5 +19860921,24.9,19.4,31.7,16.1,2.2 +19860922,22.9,19.1,32.2,17.2,2.3 +19860923,23.2,18.8,30.6,16.7,2.8 +19860924,25.1,20.3,31.7,16.7,3.6 +19860925,25.4,20.3,31.7,19.4,3.0 +19860926,25.9,20.4,32.8,19.4,1.7 +19860927,25.6,19.6,32.8,18.9,1.9 +19860928,24.9,19.2,33.9,18.3,2.2 +19860929,23.6,21.1,32.8,18.3,2.5 +19860930,23.4,20.9,28.9,18.9,2.7 +19861001,24.4,19.6,31.7,18.9,3.8 +19861002,25.6,18.8,32.8,18.9,2.7 +19861003,25.4,19.3,33.3,19.4,3.2 +19861004,25.5,19.1,32.2,18.9,4.5 +19861005,26.6,18.2,32.8,18.9,5.4 +19861006,20.7,10.7,32.8,12.8,3.9 +19861007,17.4,8.5,26.1,12.8,4.2 +19861008,18.1,11.8,23.9,12.8,3.2 +19861009,18.3,17.1,25.0,12.8,2.6 +19861010,16.9,15.7,19.4,13.3,4.2 +19861011,11.6,10.7,17.8,10.6,6.2 +19861012,13.1,12.3,15.6,10.6,4.8 +19861013,16.1,15.7,18.3,11.7,2.6 +19861014,19.6,15.5,24.4,15.0,3.8 +19861015,12.7,6.8,25.0,6.1,2.2 +19861016,13.0,5.8,19.4,6.1,3.1 +19861017,11.9,4.6,20.0,3.9,2.3 +19861018,12.1,6.1,20.0,3.9,3.1 +19861019,11.2,5.0,20.0,3.9,3.3 +19861020,10.9,4.9,21.1,2.2,1.6 +19861021,12.8,5.4,22.2,2.2,1.5 +19861022,13.1,6.6,23.9,5.0,1.2 +19861023,14.3,8.1,24.4,5.0,1.9 +19861024,16.4,9.3,23.9,6.7,1.9 +19861025,14.6,12.1,23.9,10.6,4.0 +19861026,15.0,13.5,20.6,12.8,4.3 +19861027,15.0,9.5,20.6,8.3,4.0 +19861028,14.2,6.9,21.1,8.3,2.8 +19861029,11.0,7.9,20.6,6.1,1.6 +19861030,13.9,8.8,23.3,5.6,2.4 +19861031,13.7,9.1,23.9,5.6,4.8 +19861101,12.4,11.3,20.0,9.4,6.4 +19861102,17.2,14.5,22.8,11.1,3.7 +19861103,16.1,11.2,23.3,12.2,2.7 +19861104,15.3,12.9,21.1,11.7,2.7 +19861105,15.4,14.0,21.1,12.8,2.5 +19861106,18.4,15.1,23.9,13.9,3.1 +19861107,16.1,15.1,23.9,13.9,3.9 +19861108,14.9,14.7,18.9,13.3,2.6 +19861109,19.6,17.6,25.0,13.3,4.2 +19861110,14.4,6.5,16.7,12.8,4.6 +19861111,10.0,8.0,15.6,8.9,2.8 +19861112,11.1,10.2,11.7,8.9,3.7 +19861113,7.7,4.4,11.7,2.8,3.4 +19861114,-1.0,-9.7,9.4,-5.0,5.0 +19861115,1.4,-1.2,4.4,-5.0,2.7 +19861116,8.3,7.2,15.6,-0.6,2.9 +19861117,10.9,10.3,16.1,5.6,2.5 +19861118,12.8,12.6,14.4,9.4,2.4 +19861119,11.5,4.4,16.1,4.4,5.4 +19861120,6.0,3.5,14.4,4.4,4.3 +19861121,7.7,1.9,14.4,3.9,3.5 +19861122,4.7,0.7,15.6,-1.7,2.5 +19861123,7.3,4.3,12.8,-1.7,2.7 +19861124,12.1,10.4,17.8,5.6,2.8 +19861125,13.9,13.1,17.8,8.9,4.0 +19861126,12.1,10.5,22.2,8.3,5.4 +19861127,12.1,7.9,22.2,5.6,3.2 +19861128,11.1,7.7,16.1,5.6,3.8 +19861129,11.6,7.3,20.6,4.4,1.7 +19861130,10.4,6.4,12.2,4.4,5.4 +19861201,4.4,3.6,12.2,2.8,9.7 +19861202,4.9,4.3,7.8,2.8,6.5 +19861203,8.1,3.8,13.9,2.2,4.1 +19861204,5.7,-3.7,13.9,0.6,3.7 +19861205,5.3,-7.1,11.7,-3.3,3.3 +19861206,2.4,-5.4,11.7,-3.3,3.0 +19861207,1.8,-4.8,11.7,-6.7,1.9 +19861208,8.5,3.3,12.2,5.0,3.1 +19861209,9.8,9.4,12.2,6.7,2.0 +19861210,14.1,13.3,17.8,8.9,2.8 +19861211,9.3,8.4,17.8,6.7,4.8 +19861212,7.8,7.1,10.6,6.7,1.9 +19861213,3.6,-5.8,10.6,0.6,5.6 +19861214,-1.2,-8.3,7.2,-6.1,2.9 +19861215,4.8,-2.7,12.8,-6.1,2.1 +19861216,7.7,1.2,17.2,0.0,1.8 +19861217,8.1,4.1,17.2,0.0,2.2 +19861218,8.5,7.3,13.3,4.4,2.5 +19861219,4.8,-3.4,13.9,-3.9,3.8 +19861220,5.9,-1.2,14.4,-3.9,2.5 +19861221,3.9,-1.9,15.6,-1.1,2.9 +19861222,0.7,-4.8,10.0,-3.3,3.2 +19861223,0.6,-3.1,5.6,-3.3,3.8 +19861224,7.1,5.4,11.1,-1.1,5.6 +19861225,9.9,7.2,13.9,5.0,4.2 +19861226,8.3,3.7,13.9,2.8,1.1 +19861227,5.5,2.3,14.4,2.2,3.4 +19861228,3.4,0.8,10.6,-1.1,2.0 +19861229,2.8,-0.2,10.0,-1.1,1.6 +19861230,3.3,-1.6,11.7,-2.8,2.8 +19861231,1.3,-4.3,11.7,-5.0,2.9 +19870101,3.4,-0.3,11.7,-5.0,6.4 +19870102,3.4,-1.4,8.3,-3.3,3.3 +19870103,1.0,-4.9,9.8,-5.0,1.6 +19870104,0.5,-4.4,8.9,-5.0,4.5 +19870105,5.0,-7.4,12.8,-3.3,6.4 +19870106,3.0,-8.4,12.8,-2.8,3.2 +19870107,6.7,-2.8,14.4,-2.8,3.9 +19870108,6.9,1.4,14.4,-1.1,3.1 +19870109,4.6,0.3,12.8,-2.2,2.5 +19870110,7.7,5.1,13.3,-2.2,2.9 +19870111,4.1,-3.7,9.4,-0.6,5.1 +19870112,3.4,-5.9,15.6,-3.3,3.8 +19870113,10.8,-4.3,18.9,-3.3,4.3 +19870114,9.3,0.7,19.4,2.2,3.8 +19870115,11.4,7.9,17.8,2.2,4.4 +19870116,10.7,8.6,15.6,7.8,3.3 +19870117,6.4,5.9,12.2,4.4,5.5 +19870118,3.7,3.5,7.8,2.2,4.8 +19870119,6.2,3.4,11.7,2.2,4.6 +19870120,2.7,-2.3,12.2,-2.2,2.4 +19870121,3.9,-1.3,6.7,-2.2,2.3 +19870122,1.5,0.3,6.1,0.0,4.2 +19870123,-1.2,-8.6,2.8,-4.4,6.5 +19870124,-1.7,-6.3,6.1,-7.2,5.7 +19870125,2.6,0.3,6.7,-7.2,3.6 +19870126,-0.7,-3.6,3.9,-3.3,4.2 +19870127,-4.0,-9.9,2.2,-10.6,3.5 +19870128,0.1,-4.7,6.7,-10.6,2.8 +19870129,0.5,-3.5,7.2,-6.1,1.9 +19870130,8.1,1.9,16.7,-4.4,4.2 +19870131,6.9,-4.0,17.2,0.6,5.8 +19870201,5.7,-5.0,11.7,-0.6,3.9 +19870202,5.5,2.5,10.6,-0.6,2.0 +19870203,9.7,6.4,19.4,2.8,3.1 +19870204,8.2,2.3,19.4,2.8,3.3 +19870205,6.8,-1.8,11.7,2.2,4.2 +19870206,5.3,-2.3,11.7,2.2,3.8 +19870207,9.9,-0.7,17.8,2.2,3.4 +19870208,8.3,-3.0,20.0,-1.1,5.0 +19870209,1.4,-11.4,8.9,-2.8,8.1 +19870210,2.9,-14.7,14.4,-7.8,3.5 +19870211,6.9,-10.8,16.7,-7.8,2.9 +19870212,14.1,-1.6,23.3,6.7,6.0 +19870213,12.6,-3.4,23.9,5.6,4.1 +19870214,7.0,-0.8,18.3,0.6,1.9 +19870215,7.2,0.4,13.9,0.6,5.5 +19870216,0.9,-0.7,11.1,-2.8,7.8 +19870217,0.4,-1.0,3.9,-2.8,5.0 +19870218,1.8,0.6,4.4,-1.1,1.0 +19870219,3.6,-0.2,6.7,0.6,3.3 +19870220,3.8,-3.2,10.0,-2.2,3.1 +19870221,5.6,-0.1,10.6,-2.2,3.1 +19870222,4.3,1.0,11.1,2.2,3.9 +19870223,6.1,-0.5,13.3,1.7,5.3 +19870224,4.6,-2.7,13.9,0.0,3.0 +19870225,7.2,0.7,12.2,0.0,2.7 +19870226,5.5,0.1,12.8,3.3,3.8 +19870227,1.9,0.9,7.8,1.1,7.0 +19870228,3.1,2.0,4.4,1.1,7.7 +19870301,8.8,6.2,14.4,2.2,7.2 +19870302,8.2,-0.5,17.8,-1.1,4.2 +19870303,9.7,-3.3,20.0,-1.7,3.1 +19870304,9.1,-7.6,20.6,-2.2,3.9 +19870305,5.0,-4.7,16.1,-2.2,2.8 +19870306,6.6,-2.1,16.7,-2.2,2.4 +19870307,10.1,-0.1,20.0,-1.7,3.5 +19870308,11.8,3.8,20.6,10.6,5.2 +19870309,11.8,10.6,14.4,10.0,3.6 +19870310,8.9,3.7,14.4,5.6,5.8 +19870311,2.4,-7.9,11.7,-0.6,5.2 +19870312,5.3,-3.2,12.2,-0.6,2.8 +19870313,7.4,-3.5,15.6,0.0,4.2 +19870314,7.3,-3.8,16.1,-1.1,3.1 +19870315,10.8,-0.2,20.6,-1.1,3.7 +19870316,12.4,2.0,21.1,1.7,4.7 +19870317,6.7,1.4,16.7,3.3,4.2 +19870318,7.3,2.1,12.8,3.3,2.5 +19870319,7.6,6.1,13.9,3.3,4.6 +19870320,9.5,5.7,18.9,1.1,2.6 +19870321,14.3,1.0,22.8,1.1,2.5 +19870322,12.5,-4.2,23.3,1.7,2.3 +19870323,12.7,0.4,23.3,1.7,3.3 +19870324,12.0,3.4,20.6,4.4,3.4 +19870325,10.9,10.5,18.9,5.6,4.0 +19870326,15.3,10.4,22.2,10.0,2.5 +19870327,12.9,10.2,22.2,8.9,2.8 +19870328,16.6,11.0,25.0,8.9,2.0 +19870329,16.4,10.2,25.6,8.9,3.4 +19870330,15.7,13.3,21.1,11.1,2.5 +19870331,9.1,3.8,20.6,3.9,6.2 +19870401,3.8,-6.0,15.0,-2.8,3.2 +19870402,10.1,-0.6,18.9,-2.8,6.0 +19870403,6.3,1.4,18.9,2.2,5.7 +19870404,3.3,-4.9,7.8,0.6,6.8 +19870405,5.5,-3.0,12.8,0.6,4.4 +19870406,8.4,-0.4,17.8,0.0,3.3 +19870407,9.5,1.4,18.3,1.1,3.4 +19870408,13.0,4.4,20.0,1.1,3.8 +19870409,14.6,1.6,23.9,4.4,2.5 +19870410,14.5,-0.4,23.9,4.4,3.4 +19870411,16.1,5.9,23.9,5.0,4.8 +19870412,17.7,9.2,26.1,8.3,6.3 +19870413,20.3,12.3,28.3,9.4,2.9 +19870414,16.7,11.7,28.3,12.2,4.9 +19870415,17.9,13.6,22.8,12.8,5.7 +19870416,13.6,9.3,23.3,8.9,3.9 +19870417,12.0,8.4,18.3,7.2,2.4 +19870418,14.5,9.2,21.1,6.2,4.4 +19870419,18.2,11.1,26.1,8.9,3.7 +19870420,19.7,12.7,28.3,11.1,2.2 +19870421,20.9,14.2,28.9,11.1,2.0 +19870422,21.9,14.2,30.6,12.8,2.5 +19870423,21.9,15.0,30.6,12.8,3.3 +19870424,17.6,13.4,26.7,13.3,5.0 +19870425,14.3,8.9,22.2,10.0,5.5 +19870426,14.4,8.3,22.8,6.1,3.8 +19870427,14.8,3.2,23.3,6.1,3.8 +19870428,17.4,4.3,22.8,6.7,4.4 +19870429,16.3,-1.2,25.0,5.6,5.1 +19870430,22.9,6.4,32.8,14.4,5.5 +19870501,21.3,11.7,32.8,13.3,3.5 +19870502,20.5,13.7,30.0,12.2,2.7 +19870503,21.3,14.4,30.6,12.2,3.8 +19870504,19.9,16.8,28.3,13.3,3.0 +19870505,13.1,9.8,17.8,10.0,4.8 +19870506,15.5,10.5,24.4,7.2,2.7 +19870507,19.8,12.7,27.2,7.2,2.5 +19870508,20.8,9.1,27.2,11.7,3.6 +19870509,17.5,7.1,27.2,9.4,3.2 +19870510,19.6,9.7,28.3,9.4,3.4 +19870511,19.1,11.8,28.3,10.6,3.5 +19870512,20.8,16.1,28.3,12.2,3.5 +19870513,19.8,17.0,28.3,13.9,2.4 +19870514,17.2,16.6,27.2,13.9,4.8 +19870515,20.6,17.9,27.8,14.4,2.4 +19870516,22.1,17.4,28.3,15.6,2.9 +19870517,23.1,18.4,28.9,15.6,3.0 +19870518,23.5,18.2,30.0,16.7,3.3 +19870519,23.6,19.6,30.6,17.8,3.5 +19870520,22.5,20.7,29.4,18.3,3.1 +19870521,21.4,18.4,25.6,18.3,4.1 +19870522,22.2,17.9,26.1,18.3,3.1 +19870523,23.8,18.1,30.6,16.7,1.6 +19870524,24.9,19.0,31.7,16.7,3.2 +19870525,24.3,17.5,31.1,17.2,2.9 +19870526,25.2,18.9,33.3,17.2,2.8 +19870527,23.4,20.3,33.3,17.2,3.2 +19870528,24.4,20.4,30.6,19.4,2.2 +19870529,23.3,19.1,31.1,17.2,2.4 +19870530,23.6,18.9,32.2,16.7,2.0 +19870531,24.1,19.6,31.7,16.7,2.8 +19870601,25.3,20.2,32.2,17.8,3.0 +19870602,25.1,18.7,33.9,16.1,1.7 +19870603,27.3,19.8,34.4,16.7,2.6 +19870604,24.6,19.6,35.0,18.9,3.0 +19870605,22.1,14.8,31.1,14.4,2.8 +19870606,22.8,11.6,31.1,13.9,3.3 +19870607,23.4,12.7,31.7,13.3,2.7 +19870608,24.9,14.2,32.2,13.3,4.1 +19870609,25.1,15.2,32.8,16.7,3.5 +19870610,24.4,17.2,32.8,16.7,2.7 +19870611,21.3,18.6,32.8,17.8,3.7 +19870612,24.3,19.0,31.7,18.3,3.7 +19870613,23.8,19.9,32.8,18.3,3.3 +19870614,24.0,21.1,30.6,20.6,2.6 +19870615,23.7,22.0,31.1,20.6,3.7 +19870616,24.0,22.3,29.4,20.6,4.1 +19870617,24.3,21.3,31.1,21.1,3.6 +19870618,23.8,21.3,31.1,19.4,2.5 +19870619,23.7,21.2,31.1,19.4,3.0 +19870620,23.4,21.3,29.4,20.0,4.1 +19870621,25.2,21.4,32.2,20.6,4.1 +19870622,25.8,21.6,32.8,20.6,5.8 +19870623,26.3,22.1,32.2,21.7,4.8 +19870624,25.7,20.9,33.3,21.1,2.9 +19870625,23.4,21.4,33.3,20.0,2.6 +19870626,23.8,22.1,30.0,20.0,3.2 +19870627,24.2,18.7,30.0,15.6,2.4 +19870628,21.6,11.6,30.6,12.2,2.2 +19870629,23.2,15.7,30.6,12.2,2.0 +19870630,24.3,17.6,31.1,14.4,2.2 +19870701,25.4,21.3,31.1,16.1,3.5 +19870702,24.6,22.3,31.7,21.1,4.2 +19870703,24.5,22.7,30.6,21.1,4.6 +19870704,24.6,22.4,30.0,21.1,5.0 +19870705,26.6,21.1,32.8,21.1,3.7 +19870706,25.9,21.2,33.9,18.3,2.2 +19870707,27.1,21.9,34.4,18.3,2.8 +19870708,26.9,21.7,33.3,20.0,2.3 +19870709,26.9,22.2,33.9,20.0,2.4 +19870710,28.5,22.4,33.9,21.1,2.5 +19870711,27.7,22.6,33.3,22.8,2.3 +19870712,27.2,20.8,33.3,21.1,3.6 +19870713,26.7,19.7,32.8,19.4,2.5 +19870714,26.9,20.3,33.3,19.4,2.9 +19870715,24.5,17.6,32.8,19.4,3.3 +19870716,23.7,17.3,30.6,16.7,3.1 +19870717,23.8,16.6,32.2,16.1,2.1 +19870718,25.1,18.1,32.8,16.1,2.1 +19870719,26.0,18.4,33.3,17.8,2.2 +19870720,27.2,18.3,35.0,17.2,2.1 +19870721,27.7,19.1,35.0,17.2,1.8 +19870722,27.6,19.5,36.1,18.9,2.3 +19870723,28.6,18.6,37.8,19.4,2.8 +19870724,28.2,19.0,37.8,18.9,2.2 +19870725,29.1,19.9,37.8,20.0,2.2 +19870726,28.3,20.6,37.2,20.6,2.5 +19870727,27.0,21.8,37.2,20.6,2.0 +19870728,27.1,20.6,35.0,21.1,2.8 +19870729,26.3,19.9,34.4,20.0,3.1 +19870730,24.8,22.4,33.9,20.0,3.4 +19870731,25.1,21.8,36.7,19.4,2.2 +19870801,27.0,22.9,33.3,19.4,2.1 +19870802,26.3,23.5,33.9,21.7,3.0 +19870803,25.8,23.2,33.3,21.7,2.9 +19870804,26.4,23.1,34.4,21.7,3.4 +19870805,26.6,22.3,33.9,21.7,3.0 +19870806,25.3,22.6,35.0,21.1,2.8 +19870807,24.3,21.9,32.2,20.6,2.1 +19870808,26.2,23.6,31.7,20.6,2.3 +19870809,26.6,22.3,33.3,21.1,1.9 +19870810,27.4,23.3,33.9,21.1,2.5 +19870811,24.6,21.8,33.9,20.6,4.4 +19870812,24.5,20.5,28.3,20.6,3.3 +19870813,23.8,19.7,28.9,18.9,3.7 +19870814,22.5,17.1,28.9,17.8,3.9 +19870815,23.4,18.8,28.3,17.8,3.6 +19870816,24.0,19.9,30.6,19.4,2.3 +19870817,26.2,21.3,32.8,19.4,2.9 +19870818,26.2,20.3,32.8,20.0,2.6 +19870819,26.7,21.2,33.3,20.0,1.7 +19870820,26.6,16.4,34.4,18.9,3.0 +19870821,26.5,18.3,34.4,18.9,2.4 +19870822,27.4,18.7,33.9,19.4,4.3 +19870823,28.2,19.6,35.6,21.7,3.6 +19870824,24.9,15.4,36.1,20.6,4.8 +19870825,24.2,18.5,30.0,19.4,2.8 +19870826,26.6,21.7,35.0,19.4,2.6 +19870827,28.3,21.4,35.0,20.0,4.3 +19870828,27.9,20.5,35.0,21.7,4.3 +19870829,26.6,19.8,34.4,19.4,2.5 +19870830,24.7,15.8,33.9,19.4,4.5 +19870831,23.6,18.8,30.6,20.6,2.9 +19870901,23.2,17.9,28.9,17.8,2.1 +19870902,23.4,17.1,30.0,17.2,2.4 +19870903,23.9,17.4,30.6,16.7,3.5 +19870904,22.1,18.3,31.1,16.7,4.9 +19870905,17.4,16.2,25.0,15.6,6.1 +19870906,19.7,19.1,23.3,15.6,4.9 +19870907,22.5,21.6,25.6,17.8,3.3 +19870908,22.9,20.5,30.6,18.3,2.3 +19870909,23.8,19.9,31.1,18.3,1.5 +19870910,23.4,19.6,31.7,17.8,2.0 +19870911,22.0,20.0,30.0,17.8,3.1 +19870912,22.1,21.3,28.9,18.3,2.0 +19870913,23.2,20.6,28.3,19.4,2.6 +19870914,22.8,18.2,30.0,16.1,2.2 +19870915,22.9,19.1,30.6,15.6,2.3 +19870916,23.0,20.4,29.4,17.2,2.1 +19870917,24.2,20.7,30.0,18.9,3.2 +19870918,25.1,20.1,30.6,18.9,4.6 +19870919,21.6,19.1,31.1,18.9,1.8 +19870920,22.0,18.1,27.2,18.9,2.5 +19870921,20.1,11.3,27.8,11.1,2.0 +19870922,18.5,10.8,27.2,11.7,3.0 +19870923,17.1,10.1,25.6,10.6,2.8 +19870924,17.9,10.8,25.6,10.6,1.9 +19870925,18.5,11.6,26.7,11.1,2.1 +19870926,18.6,11.9,28.3,11.1,1.5 +19870927,19.2,13.5,28.3,11.1,2.4 +19870928,19.5,15.9,27.8,12.2,3.3 +19870929,20.2,16.8,26.7,14.4,2.6 +19870930,20.6,15.4,27.2,14.4,4.2 +19871001,16.2,5.6,24.4,9.4,3.7 +19871002,14.3,5.9,25.6,5.0,3.4 +19871003,13.7,4.4,25.6,5.0,5.9 +19871004,11.8,-0.6,20.6,2.2,3.7 +19871005,13.2,1.9,23.9,2.2,2.3 +19871006,14.1,7.3,23.9,3.9,3.9 +19871007,12.2,5.1,22.8,5.0,2.8 +19871008,10.1,0.9,20.0,0.6,3.1 +19871009,10.2,2.5,19.4,0.6,2.7 +19871010,13.4,6.0,23.9,2.2,1.9 +19871011,16.3,9.1,27.2,3.9,1.2 +19871012,13.3,10.3,27.8,7.2,4.5 +19871013,9.4,3.0,16.7,3.3,4.9 +19871014,9.1,0.6,17.2,2.2,4.2 +19871015,10.2,1.3,20.6,2.2,3.1 +19871016,12.2,2.2,23.3,2.2,3.1 +19871017,13.3,3.4,25.0,2.8,2.4 +19871018,15.6,6.9,25.6,4.4,2.4 +19871019,15.6,8.9,26.1,7.2,2.2 +19871020,18.2,12.9,25.0,7.2,3.5 +19871021,13.3,5.8,24.4,8.3,4.2 +19871022,6.8,-6.4,16.7,-3.3,3.2 +19871023,7.5,-3.7,18.9,-3.3,1.7 +19871024,10.8,-1.1,22.8,-1.7,2.0 +19871025,14.6,4.6,22.8,1.1,2.0 +19871026,13.2,3.8,22.8,7.8,4.1 +19871027,12.2,6.2,20.6,7.8,3.9 +19871028,11.2,0.8,17.8,3.3,3.8 +19871029,7.7,-1.2,17.2,-1.2,2.6 +19871030,14.2,2.8,22.8,8.9,4.6 +19871031,16.1,7.1,26.7,7.8,3.0 +19871101,16.7,10.0,26.7,7.8,3.0 +19871102,15.1,8.3,25.0,6.7,3.3 +19871103,15.3,9.6,24.4,6.7,3.5 +19871104,16.5,12.3,25.0,8.9,2.5 +19871105,17.9,9.3,25.0,9.4,3.6 +19871106,11.4,-9.9,23.3,1.7,4.4 +19871107,9.1,-6.4,20.6,-0.6,3.2 +19871108,12.5,-1.9,21.1,-0.6,3.3 +19871109,15.6,8.2,22.2,3.3,2.1 +19871110,18.2,14.3,23.3,8.9,4.4 +19871111,5.6,-1.2,12.2,1.1,6.5 +19871112,6.4,-7.2,16.1,-0.6,4.7 +19871113,7.8,-3.8,20.6,-2.8,1.5 +19871114,10.9,-3.1,20.6,-2.8,2.6 +19871115,10.9,-0.7,21.1,2.8,3.6 +19871116,15.4,3.2,21.1,13.3,4.9 +19871117,16.9,15.3,23.3,12.8,5.4 +19871118,15.4,10.4,19.4,11.7,4.0 +19871119,7.9,1.9,20.0,1.7,2.9 +19871120,6.9,1.1,11.7,0.6,3.9 +19871121,3.3,-10.3,11.7,-2.2,4.5 +19871122,2.9,-8.4,12.2,-4.4,2.2 +19871123,6.4,-0.4,17.2,-4.4,3.1 +19871124,10.9,7.0,20.6,-2.2,2.3 +19871125,13.9,10.3,20.6,3.9,2.1 +19871126,14.6,13.2,20.6,8.9,4.1 +19871127,15.1,14.8,17.2,10.0,4.2 +19871128,8.3,7.9,16.7,7.2,7.3 +19871129,10.6,8.9,15.0,7.2,4.5 +19871130,7.1,3.3,15.0,3.3,3.4 +19871201,4.6,-0.1,10.6,-1.7,3.9 +19871202,3.0,-3.0,10.6,-3.9,3.2 +19871203,3.8,-2.3,13.9,-3.9,4.1 +19871204,7.4,-1.5,14.4,-3.9,6.5 +19871205,4.2,-6.6,10.0,0.6,6.5 +19871206,2.7,-4.7,10.6,-3.3,2.2 +19871207,5.5,-2.2,12.2,-3.3,2.5 +19871208,7.1,-1.7,12.8,0.0,4.5 +19871209,10.7,4.2,13.9,2.2,3.3 +19871210,12.9,12.5,16.7,8.9,2.4 +19871211,9.7,1.2,16.7,3.3,4.1 +19871212,10.2,-0.1,17.8,1.7,4.1 +19871213,8.9,-4.6,17.8,1.7,3.3 +19871214,7.7,1.2,15.6,2.8,2.9 +19871215,8.7,6.2,15.6,5.0,5.8 +19871216,3.8,-4.8,16.7,-2.8,4.2 +19871217,3.1,-7.5,8.9,-2.8,5.7 +19871218,0.7,-6.2,9.4,-4.4,2.8 +19871219,4.5,-2.6,12.8,-4.4,2.9 +19871220,10.6,6.2,16.7,6.7,3.2 +19871221,10.6,10.3,16.7,5.6,2.8 +19871222,9.6,8.8,13.3,6.7,3.0 +19871223,7.5,2.3,14.4,-0.6,3.1 +19871224,5.8,3.3,15.0,-0.6,2.3 +19871225,10.8,10.8,15.6,1.1,2.1 +19871226,17.7,17.3,20.6,8.3,5.4 +19871227,11.6,11.4,21.1,7.8,4.8 +19871228,7.4,7.3,8.9,6.7,3.5 +19871229,5.6,-0.9,8.3,1.1,5.6 +19871230,2.4,-7.4,9.4,-5.6,3.5 +19871231,4.4,-2.8,12.2,-5.6,3.7 +19880101,9.3,5.4,12.2,8.3,2.8 +19880102,5.3,2.6,11.7,3.3,4.4 +19880103,1.6,-0.9,7.8,0.6,4.9 +19880104,4.0,1.7,9.4,0.6,3.2 +19880105,0.9,-10.8,10.6,-2.2,4.5 +19880106,-1.9,-13.8,4.4,-5.0,2.6 +19880107,-5.7,-9.7,-1.7,-8.3,6.0 +19880108,-4.9,-6.1,0.0,-8.3,5.0 +19880109,-3.5,-4.8,2.2,-8.3,1.6 +19880110,-2.2,-5.4,3.3,-7.8,2.9 +19880111,-3.3,-7.3,3.9,-8.9,3.0 +19880112,-2.7,-7.1,5.6,-10.0,2.7 +19880113,4.2,-1.7,11.1,1.1,4.0 +19880114,-2.7,-11.4,1.7,-8.3,4.0 +19880115,-3.1,-10.8,2.2,-8.3,2.5 +19880116,-2.2,-9.1,7.2,-10.0,1.9 +19880117,0.7,-3.6,7.8,-10.0,2.8 +19880118,5.3,4.7,12.8,-2.2,2.4 +19880119,7.2,7.2,13.9,1.7,4.7 +19880120,7.5,7.3,13.3,4.4,4.5 +19880121,8.9,5.8,13.9,4.4,2.7 +19880122,4.1,-0.1,12.8,-1.1,2.8 +19880123,1.7,-4.6,8.9,-4.4,4.7 +19880124,3.2,-3.8,12.2,-4.4,3.8 +19880125,6.4,2.4,12.2,-3.3,2.8 +19880126,0.2,-11.2,10.0,-5.6,5.6 +19880127,-2.4,-11.9,3.9,-9.4,3.1 +19880128,-0.6,-9.4,9.4,-9.4,2.1 +19880129,3.5,-5.2,15.6,-8.9,2.4 +19880130,7.6,-1.8,16.1,-5.0,4.9 +19880131,11.6,8.4,16.7,0.6,2.5 +19880201,13.6,12.3,18.9,6.7,2.7 +19880202,14.1,13.4,19.4,8.9,3.2 +19880203,13.8,13.7,18.3,8.9,3.6 +19880204,9.1,7.8,16.1,7.2,4.0 +19880205,3.6,-4.8,15.6,-0.6,3.9 +19880206,-1.6,-13.3,7.8,-6.1,4.1 +19880207,-4.2,-17.3,3.9,-11.7,3.9 +19880208,3.2,-11.6,10.0,0.0,2.8 +19880209,3.3,-9.1,11.7,-5.0,2.2 +19880210,4.9,-3.5,13.3,-5.0,2.9 +19880211,4.7,-1.7,13.3,-2.2,4.6 +19880212,3.4,-3.8,11.7,-1.1,3.8 +19880213,-3.3,-12.3,5.6,-11.1,2.7 +19880214,1.7,-7.8,13.9,-11.1,2.9 +19880215,7.4,2.4,14.4,3.9,3.9 +19880216,5.8,-1.4,11.7,0.0,5.6 +19880217,5.3,-2.3,16.1,-3.3,2.1 +19880218,7.1,-1.7,16.1,-3.3,2.4 +19880219,7.6,3.8,16.1,-0.6,3.9 +19880220,8.1,6.6,10.0,5.6,4.7 +19880221,6.1,-7.2,11.1,-1.7,3.1 +19880222,2.8,-8.6,15.6,-6.7,3.5 +19880223,10.5,3.8,16.7,3.9,6.3 +19880224,6.2,-2.9,17.8,-2.2,3.9 +19880225,1.8,-10.8,10.0,-7.2,3.2 +19880226,2.7,-10.8,10.6,-7.2,4.2 +19880227,10.1,-3.9,21.7,2.8,5.9 +19880228,7.5,-5.6,21.7,-1.7,4.2 +19880229,7.6,-4.2,18.9,-3.3,2.2 +19880301,9.3,-4.1,18.9,-3.3,4.0 +19880302,7.8,-2.8,18.9,-2.2,3.4 +19880303,12.2,4.6,19.9,7.2,3.5 +19880304,15.8,12.9,20.6,6.7,6.0 +19880305,10.3,4.4,19.4,6.1,5.4 +19880306,8.4,-4.4,15.0,0.0,2.8 +19880307,10.7,1.8,21.7,0.0,2.3 +19880308,12.3,3.7,21.7,1.1,2.4 +19880309,13.3,10.3,20.6,5.0,2.9 +19880310,11.1,10.8,14.4,8.3,2.9 +19880311,7.4,2.3,15.6,-0.6,3.5 +19880312,9.4,5.6,18.3,-0.6,3.5 +19880313,14.5,6.8,18.9,11.1,4.8 +19880314,6.1,-6.0,20.0,1.7,4.6 +19880315,-0.1,-10.6,10.0,-5.0,4.0 +19880316,1.9,-9.4,10.0,-5.0,4.8 +19880317,3.6,-7.1,13.9,-5.0,2.5 +19880318,5.5,-0.1,13.9,-5.0,2.5 +19880319,6.2,0.3,11.1,0.6,4.7 +19880320,9.5,-2.8,20.6,1.1,6.6 +19880321,15.3,1.6,25.0,1.1,5.2 +19880322,10.8,0.4,26.1,2.2,5.4 +19880323,10.3,3.9,20.0,2.2,2.8 +19880324,15.1,10.0,23.9,2.8,2.7 +19880325,15.3,12.7,23.9,8.9,3.5 +19880326,16.9,14.1,22.8,10.6,5.7 +19880327,13.9,-1.2,23.3,3.3,3.5 +19880328,12.5,-3.2,22.8,2.8,2.9 +19880329,14.4,2.1,23.3,2.8,2.9 +19880330,16.7,10.2,23.3,3.9,3.4 +19880331,18.8,12.2,24.4,8.9,2.8 +19880401,18.1,12.3,25.0,13.3,3.3 +19880402,17.2,13.4,22.8,11.7,2.6 +19880403,16.7,15.2,21.7,11.7,2.9 +19880404,19.9,14.7,26.1,15.0,5.7 +19880405,19.6,6.4,29.4,8.3,2.8 +19880406,17.6,8.7,30.0,8.3,6.0 +19880407,12.1,0.5,21.1,6.1,6.7 +19880408,13.3,4.9,20.0,6.1,6.1 +19880409,14.5,-0.3,23.9,2.8,3.0 +19880410,14.7,0.8,23.9,2.8,3.0 +19880411,14.1,8.7,23.9,3.9,3.4 +19880412,8.8,7.4,21.1,5.6,6.5 +19880413,11.1,4.7,20.0,5.6,4.9 +19880414,13.1,5.3,22.8,3.9,3.7 +19880415,17.1,8.1,25.0,3.9,4.5 +19880416,12.4,0.9,25.0,5.0,4.7 +19880417,12.6,-0.2,21.1,2.2,4.1 +19880418,16.7,7.6,25.0,11.1,6.3 +19880419,17.0,11.3,25.0,10.6,5.2 +19880420,11.7,-1.3,20.0,1.7,4.4 +19880421,17.6,6.4,27.2,1.7,5.5 +19880422,21.7,11.1,29.4,10.0,4.6 +19880423,19.0,13.2,29.4,13.3,5.2 +19880424,20.4,13.3,27.8,13.9,4.4 +19880425,14.7,5.8,27.8,8.3,3.2 +19880426,15.3,8.4,22.2,8.3,2.7 +19880427,17.3,11.0,25.0,8.9,4.7 +19880428,14.4,-1.8,25.6,6.7,4.5 +19880429,12.5,-1.3,21.7,2.8,3.5 +19880430,13.4,0.3,22.2,2.8,2.8 +19880501,14.9,1.2,23.3,4.4,3.0 +19880502,15.8,2.8,26.1,5.6,2.4 +19880503,16.9,7.0,26.7,5.6,4.7 +19880504,16.4,11.1,25.6,9.4,3.9 +19880505,15.3,9.3,22.8,10.6,3.9 +19880506,16.1,5.8,21.7,7.8,5.6 +19880507,19.0,9.0,27.8,7.8,3.0 +19880508,19.7,10.6,28.3,9.4,3.1 +19880509,19.4,13.1,27.8,10.6,5.1 +19880510,18.9,14.5,26.1,14.4,4.5 +19880511,17.4,8.4,26.7,7.2,2.3 +19880512,18.8,9.4,26.1,7.2,3.7 +19880513,18.8,12.8,27.2,12.2,2.5 +19880514,20.2,13.1,28.9,11.7,2.2 +19880515,21.4,15.1,29.4,11.7,2.5 +19880516,21.6,16.2,30.6,14.4,2.4 +19880517,20.2,14.9,31.1,13.9,4.0 +19880518,18.4,9.6,27.8,9.4,2.7 +19880519,19.5,10.0,26.7,9.4,3.4 +19880520,20.2,11.9,28.3,11.7,2.4 +19880521,22.1,13.3,30.0,12.8,2.5 +19880522,21.8,14.3,30.0,13.3,2.4 +19880523,24.1,16.3,30.6,13.3,4.5 +19880524,19.8,15.9,30.6,16.7,3.4 +19880525,19.8,14.8,25.0,16.7,5.0 +19880526,16.3,3.1,25.0,7.8,4.4 +19880527,16.2,6.0,23.9,7.8,3.1 +19880528,19.4,9.3,31.1,7.8,2.0 +19880529,22.7,10.4,31.7,10.0,2.9 +19880530,24.0,12.2,32.2,13.9,2.8 +19880531,25.4,11.8,33.3,15.0,2.9 +19880601,25.6,14.5,33.9,17.2,2.8 +19880602,26.0,12.5,33.3,16.7,3.4 +19880603,22.2,14.9,33.3,16.1,3.6 +19880604,16.6,8.8,31.1,10.6,3.9 +19880605,17.9,7.4,27.8,8.9,2.5 +19880606,22.6,8.6,32.2,8.9,2.6 +19880607,25.4,11.5,34.4,11.7,2.6 +19880608,26.4,13.8,35.0,15.0,2.5 +19880609,24.3,18.2,34.4,17.8,5.6 +19880610,19.6,8.9,32.8,15.0,5.8 +19880611,17.9,3.6,26.1,8.3,3.7 +19880612,19.8,7.2,29.4,8.3,2.0 +19880613,22.3,9.7,31.7,9.4,2.1 +19880614,23.9,12.7,32.8,11.7,2.5 +19880615,24.7,14.2,32.8,14.4,3.0 +19880616,25.1,14.6,34.4,16.1,3.0 +19880617,25.0,16.6,35.0,16.7,2.7 +19880618,23.3,17.9,34.4,16.7,3.0 +19880619,22.8,19.2,32.8,16.7,3.1 +19880620,25.0,19.3,33.3,18.3,2.5 +19880621,26.6,19.1,34.4,18.3,1.6 +19880622,27.8,18.9,35.6,18.9,2.1 +19880623,28.4,19.2,36.7,20.0,2.5 +19880624,27.0,21.2,37.2,20.6,2.8 +19880625,27.1,22.6,33.3,21.1,3.3 +19880626,27.4,21.3,35.6,21.7,3.1 +19880627,24.2,18.6,36.1,20.0,4.5 +19880628,22.6,13.3,29.4,14.4,2.8 +19880629,25.1,16.1,32.8,14.4,4.8 +19880630,22.6,19.0,33.3,17.8,3.8 +19880701,20.6,14.5,26.7,14.4,2.8 +19880702,20.9,11.1,28.3,14.4,3.1 +19880703,20.0,17.2,28.3,14.4,2.9 +19880704,18.4,18.2,21.1,16.7,3.0 +19880705,22.2,18.7,28.3,17.2,3.2 +19880706,22.9,16.2,30.0,15.6,3.3 +19880707,23.8,16.2,32.8,15.0,1.4 +19880708,28.1,18.3,36.1,15.0,3.5 +19880709,27.2,20.7,36.7,20.6,3.0 +19880710,26.6,20.4,33.9,20.6,2.5 +19880711,25.3,20.8,33.9,20.6,3.7 +19880712,26.4,21.8,31.7,20.6,6.2 +19880713,25.5,21.7,32.2,20.6,3.0 +19880714,26.6,22.9,32.2,20.6,2.7 +19880715,28.9,22.8,35.6,22.2,2.3 +19880716,28.0,23.2,36.7,22.2,2.5 +19880717,27.2,22.3,36.7,21.7,2.4 +19880718,28.5,21.9,35.0,21.7,4.6 +19880719,28.2,21.0,35.0,22.2,4.3 +19880720,27.6,21.0,33.9,22.2,5.0 +19880721,27.3,21.7,33.3,22.2,5.4 +19880722,23.9,21.3,33.9,21.1,2.7 +19880723,24.4,21.2,30.0,20.6,2.4 +19880724,24.8,19.4,31.1,17.8,2.6 +19880725,25.9,17.8,32.2,17.8,2.5 +19880726,24.7,18.4,32.2,17.8,2.9 +19880727,24.7,20.7,32.2,17.8,2.2 +19880728,25.0,20.7,31.7,18.9,2.8 +19880729,27.0,21.4,34.4,18.9,2.2 +19880730,26.7,21.0,34.4,19.4,2.6 +19880731,27.6,20.7,35.0,19.4,3.0 +19880801,28.3,20.6,36.7,20.0,2.0 +19880802,28.4,21.8,36.7,20.6,3.1 +19880803,27.6,21.9,36.1,21.7,3.4 +19880804,25.9,22.6,33.9,22.2,3.2 +19880805,25.6,22.6,32.2,21.7,2.4 +19880806,26.6,22.2,32.8,21.1,2.5 +19880807,26.4,21.4,34.4,20.6,2.0 +19880808,27.3,21.8,34.4,20.6,2.8 +19880809,27.7,22.1,35.0,21.1,2.5 +19880810,27.5,22.4,35.0,21.7,2.2 +19880811,24.4,22.9,35.6,22.2,2.5 +19880812,25.4,21.2,32.2,20.0,1.4 +19880813,26.7,20.8,32.8,20.0,2.0 +19880814,26.3,20.8,33.9,20.0,3.5 +19880815,26.9,21.2,34.4,21.1,2.2 +19880816,27.2,21.9,35.0,21.1,2.1 +19880817,28.6,21.9,36.1,21.1,2.9 +19880818,30.1,21.4,38.3,21.7,2.9 +19880819,29.5,19.8,38.3,21.7,4.0 +19880820,27.0,22.8,36.1,21.7,4.8 +19880821,26.5,22.3,32.2,22.2,3.5 +19880822,24.7,21.6,32.8,22.2,4.4 +19880823,23.5,19.3,29.4,18.9,3.3 +19880824,25.4,21.3,32.2,18.9,3.0 +19880825,25.4,15.5,32.8,16.7,2.6 +19880826,25.0,14.2,34.4,15.6,2.1 +19880827,25.8,16.3,34.4,15.6,2.4 +19880828,22.7,20.9,34.4,17.2,3.8 +19880829,25.7,21.5,33.3,19.4,3.9 +19880830,23.6,21.4,33.3,21.1,4.1 +19880831,21.7,18.6,26.1,18.9,5.6 +19880901,20.9,15.2,26.1,16.1,4.6 +19880902,20.7,14.3,27.8,14.4,3.3 +19880903,21.8,18.0,28.3,14.4,2.7 +19880904,21.9,21.3,27.2,19.4,5.8 +19880905,20.9,16.8,27.2,16.7,3.1 +19880906,20.7,15.5,27.2,16.7,4.2 +19880907,19.0,12.6,25.6,15.0,5.2 +19880908,16.8,11.9,23.9,10.6,4.5 +19880909,18.2,17.4,24.4,10.6,4.9 +19880910,20.7,19.1,25.0,17.2,2.7 +19880911,23.6,21.3,28.3,18.3,2.2 +19880912,24.1,21.4,28.9,19.4,2.3 +19880913,24.4,21.7,30.6,20.0,2.7 +19880914,25.4,20.9,31.7,18.9,1.9 +19880915,22.8,20.4,32.2,18.9,3.9 +19880916,20.8,17.8,24.4,18.9,3.2 +19880917,17.6,16.7,21.7,16.1,3.9 +19880918,19.3,18.1,21.7,16.1,4.6 +19880919,21.2,20.7,26.1,17.8,2.9 +19880920,22.8,20.4,28.9,17.8,2.8 +19880921,24.5,17.5,30.6,16.7,3.2 +19880922,19.8,12.0,31.1,11.1,2.1 +19880923,22.2,17.9,30.6,11.1,2.7 +19880924,25.2,21.7,31.1,15.0,3.8 +19880925,23.5,21.0,31.7,20.0,2.9 +19880926,20.6,17.8,30.0,16.7,4.2 +19880927,18.5,14.6,25.0,13.3,2.9 +19880928,18.7,13.7,26.7,12.2,2.6 +19880929,19.4,15.6,26.7,12.2,3.3 +19880930,19.7,16.9,27.2,14.4,4.4 +19881001,20.0,17.6,26.7,15.6,2.7 +19881002,21.2,20.3,27.2,15.6,3.7 +19881003,18.7,18.3,23.3,17.2,3.8 +19881004,17.3,13.2,21.1,14.4,3.8 +19881005,13.4,6.0,21.1,6.7,3.4 +19881006,12.2,2.8,20.6,6.1,4.3 +19881007,10.6,2.4,18.3,5.6,3.8 +19881008,9.8,3.4,18.9,1.7,1.9 +19881009,10.3,4.6,19.4,1.7,2.3 +19881010,12.1,6.5,19.4,3.3,3.4 +19881011,15.3,8.9,22.8,5.6,4.3 +19881012,12.3,2.5,22.8,5.6,3.1 +19881013,7.6,-1.8,18.9,-1.7,2.5 +19881014,7.3,0.0,17.8,-1.7,1.7 +19881015,11.7,3.9,22.2,-1.1,2.7 +19881016,11.8,4.9,22.8,3.3,2.2 +19881017,16.8,11.7,25.0,3.3,2.4 +19881018,18.7,13.8,26.1,9.4,4.9 +19881019,18.1,11.2,26.7,12.2,4.3 +19881020,10.8,3.1,20.6,4.4,3.0 +19881021,10.4,8.7,17.2,4.4,3.2 +19881022,10.9,5.8,18.3,4.4,3.2 +19881023,8.5,1.2,18.9,-0.6,3.4 +19881024,14.8,4.8,21.1,9.4,4.3 +19881025,12.0,-0.6,21.7,1.1,4.4 +19881026,11.2,6.1,20.0,1.1,1.7 +19881027,8.8,2.6,17.8,2.2,3.3 +19881028,15.6,10.3,23.3,11.7,3.9 +19881029,14.3,7.7,23.3,8.3,3.0 +19881030,10.8,3.0,20.0,4.4,3.1 +19881031,8.7,2.7,17.8,4.4,4.7 +19881101,9.6,6.8,17.8,3.9,3.2 +19881102,11.0,2.8,19.4,3.9,2.9 +19881103,10.0,2.9,19.4,3.3,2.9 +19881104,11.2,8.8,21.7,3.3,2.3 +19881105,16.5,12.8,21.7,3.9,6.9 +19881106,9.8,4.8,20.0,6.7,7.0 +19881107,9.5,1.6,17.8,2.2,4.2 +19881108,11.7,4.9,19.4,2.2,4.6 +19881109,13.2,9.6,20.6,5.6,2.5 +19881110,16.4,13.5,22.2,6.1,4.3 +19881111,13.2,5.2,23.3,5.6,3.6 +19881112,7.8,0.3,18.9,4.4,4.3 +19881113,11.9,5.7,20.0,4.4,3.1 +19881114,12.1,7.2,21.1,4.4,2.2 +19881115,11.1,7.7,21.7,3.9,1.5 +19881116,17.4,13.1,22.8,12.8,3.2 +19881117,16.4,11.2,23.3,10.6,4.7 +19881118,7.8,-3.2,18.9,1.1,3.7 +19881119,9.1,-0.4,16.1,1.1,4.5 +19881120,10.4,9.1,20.6,6.7,4.6 +19881121,12.4,3.4,21.1,6.7,5.3 +19881122,6.6,-0.1,16.1,3.3,5.0 +19881123,8.7,4.4,11.1,3.3,5.9 +19881124,10.2,6.9,17.2,2.2,2.7 +19881125,8.6,5.4,17.8,1.7,2.8 +19881126,11.9,9.0,20.0,1.7,3.1 +19881127,15.6,14.3,21.1,5.0,4.3 +19881128,10.8,4.8,17.8,6.7,5.4 +19881129,4.9,-4.1,13.3,-2.8,3.2 +19881130,5.3,-0.3,13.3,-2.8,3.9 +19881201,5.1,-2.1,13.3,-3.9,3.6 +19881202,4.9,-5.2,12.2,-3.9,3.9 +19881203,6.9,-3.4,19.4,-2.2,2.9 +19881204,9.6,-0.9,19.4,-2.2,4.1 +19881205,4.4,-7.2,15.0,-3.9,2.8 +19881206,6.6,-4.0,17.2,-3.9,2.6 +19881207,10.4,-0.7,18.3,6.1,4.7 +19881208,10.5,2.4,18.9,1.7,2.1 +19881209,9.3,4.3,19.4,1.7,3.5 +19881210,2.0,-1.8,11.1,-2.8,2.6 +19881211,3.2,-2.6,7.2,-2.8,3.2 +19881212,-1.7,-11.4,5.6,-5.6,5.1 +19881213,-1.2,-8.7,10.6,-8.3,3.3 +19881214,3.3,-4.3,16.1,-8.3,3.1 +19881215,10.3,0.0,17.2,5.6,4.1 +19881216,6.2,-2.8,18.3,2.2,3.2 +19881217,0.3,-7.3,8.9,-5.0,3.4 +19881218,-1.9,-10.9,5.6,-8.3,2.9 +19881219,5.3,-6.4,15.6,-8.3,5.2 +19881220,6.9,-0.3,16.1,-2.2,4.8 +19881221,10.5,7.6,16.1,0.6,3.8 +19881222,11.4,8.4,17.2,5.6,3.3 +19881223,9.0,8.4,17.2,5.6,3.6 +19881224,12.4,11.9,17.8,7.8,3.5 +19881225,11.6,3.3,17.8,5.0,4.6 +19881226,6.9,-5.9,15.6,0.0,3.0 +19881227,5.4,-2.3,15.0,-0.6,2.7 +19881228,12.1,8.4,18.3,8.9,4.9 +19881229,3.4,-5.0,18.3,-3.9,3.2 +19881230,1.2,-2.2,10.6,-3.9,1.6 +19881231,7.3,5.6,10.0,-2.2,2.7 +19890101,8.0,7.5,10.6,5.0,3.5 +19890102,9.2,6.9,13.9,5.0,3.2 +19890103,9.9,6.8,16.7,7.2,4.6 +19890104,6.6,-6.9,16.7,-1.7,5.6 +19890105,3.1,-6.0,11.1,-5.0,3.2 +19890106,5.6,3.2,10.6,-5.0,2.1 +19890107,8.1,8.1,9.4,0.6,3.2 +19890108,11.0,10.3,16.7,6.7,3.6 +19890109,7.7,1.4,16.7,4.4,3.4 +19890110,3.8,2.9,10.0,2.8,3.4 +19890111,4.7,4.1,6.7,2.8,4.0 +19890112,7.6,7.6,9.4,3.3,3.7 +19890113,10.1,5.8,11.1,6.7,4.9 +19890114,2.2,-3.4,11.7,0.0,4.7 +19890115,5.2,4.1,15.6,0.0,4.1 +19890116,7.2,1.2,16.1,1.1,4.3 +19890117,4.1,-5.5,11.7,-3.3,2.8 +19890118,4.2,-3.3,16.1,-3.9,3.0 +19890119,7.9,-1.2,16.1,-3.9,3.2 +19890120,9.7,0.4,16.1,-0.6,4.0 +19890121,3.0,-7.8,7.2,-3.3,5.4 +19890122,1.3,-9.9,8.9,-4.4,3.8 +19890123,6.4,-8.2,18.3,-4.4,4.2 +19890124,8.7,-3.3,20.0,-0.6,2.1 +19890125,11.6,-2.6,21.7,0.0,2.7 +19890126,10.6,2.6,22.2,1.7,4.3 +19890127,13.1,3.6,19.4,2.8,5.7 +19890128,8.0,-6.3,16.1,0.6,3.1 +19890129,9.9,2.3,19.4,0.6,4.0 +19890130,13.8,10.9,20.0,10.6,5.4 +19890131,10.4,1.1,18.3,-0.6,4.1 +19890201,12.6,6.0,20.6,-0.6,5.6 +19890202,16.9,13.6,25.0,4.4,4.1 +19890203,19.2,15.2,25.6,10.6,6.0 +19890204,12.6,8.8,25.6,9.4,4.4 +19890205,5.4,5.2,13.3,3.9,3.2 +19890206,9.4,8.4,19.4,3.9,3.2 +19890207,13.2,10.9,20.0,5.6,5.5 +19890208,6.4,2.2,17.8,1.1,3.3 +19890209,0.3,-14.7,11.1,-4.4,5.7 +19890210,-2.1,-13.4,8.3,-10.0,2.3 +19890211,2.9,-9.3,14.4,-10.0,2.6 +19890212,7.7,-5.4,17.2,-6.1,3.3 +19890213,9.1,-5.1,17.2,-1.7,4.4 +19890214,11.8,4.9,20.6,3.9,2.7 +19890215,17.2,13.8,23.9,3.9,5.4 +19890216,15.6,12.6,23.9,11.1,4.4 +19890217,4.3,2.9,20.0,0.0,7.5 +19890218,-0.2,-0.4,8.3,-0.6,5.9 +19890219,0.1,-0.2,2.2,-2.2,3.2 +19890220,2.4,1.4,4.4,-2.2,1.4 +19890221,6.9,6.4,13.9,1.1,4.4 +19890222,11.3,7.5,14.4,3.3,4.6 +19890223,1.6,-2.4,13.9,-1.1,4.8 +19890224,-1.4,-10.7,3.9,-5.6,5.8 +19890225,1.5,-14.3,10.0,-5.6,4.9 +19890226,8.0,-2.8,18.3,-5.6,6.3 +19890227,8.0,3.8,18.9,1.7,4.3 +19890228,5.4,4.4,11.1,2.8,4.2 +19890301,5.4,2.3,11.7,-0.6,2.1 +19890302,6.4,1.4,13.3,-0.6,3.1 +19890303,7.7,5.2,13.9,0.0,4.8 +19890304,8.6,7.4,11.1,5.0,3.8 +19890305,10.3,9.9,15.0,6.7,3.4 +19890306,16.0,13.6,18.9,7.8,5.2 +19890307,5.7,2.1,18.9,2.8,6.6 +19890308,2.1,-3.0,8.3,-1.7,8.0 +19890309,6.4,-1.2,16.1,-1.7,6.1 +19890310,7.6,-1.4,16.7,-0.6,3.2 +19890311,8.8,-1.1,17.2,-0.6,3.2 +19890312,13.4,3.4,23.3,0.6,2.7 +19890313,13.0,3.1,24.4,3.9,4.6 +19890314,7.8,4.2,16.7,2.2,2.3 +19890315,15.2,11.8,23.9,2.2,4.8 +19890316,16.2,6.3,23.9,8.3,4.4 +19890317,13.4,7.6,21.7,6.7,2.4 +19890318,17.6,14.0,25.0,6.7,4.4 +19890319,13.6,4.4,26.1,6.1,4.7 +19890320,7.6,3.6,18.9,5.0,3.7 +19890321,9.8,9.3,16.7,5.0,3.2 +19890322,7.3,5.4,16.7,4.4,6.4 +19890323,3.8,2.4,8.9,1.7,7.6 +19890324,8.2,4.6,17.8,1.7,5.7 +19890325,13.0,8.7,24.4,3.3,2.5 +19890326,16.6,8.5,26.7,3.3,2.8 +19890327,17.4,11.3,26.7,6.7,2.3 +19890328,19.3,14.7,26.1,8.9,4.5 +19890329,21.7,15.1,27.2,12.2,5.7 +19890330,20.5,15.4,27.8,16.1,5.8 +19890331,17.2,10.7,25.0,13.3,6.3 +19890401,8.8,-1.6,22.8,2.8,4.3 +19890402,9.5,-0.7,20.0,0.6,4.0 +19890403,13.5,7.1,20.0,10.0,4.4 +19890404,16.7,14.1,23.9,10.0,4.0 +19890405,15.5,12.6,24.4,12.2,4.9 +19890406,12.4,-0.3,21.1,7.8,4.6 +19890407,8.7,1.9,17.2,3.9,5.0 +19890408,5.0,2.8,13.3,1.1,3.0 +19890409,8.8,4.0,13.9,1.1,2.4 +19890410,8.4,3.2,14.4,3.9,2.7 +19890411,6.2,0.5,11.7,3.3,2.8 +19890412,6.9,0.0,15.0,-1.1,2.0 +19890413,10.4,1.8,19.4,-1.1,2.1 +19890414,12.6,2.9,21.7,1.7,3.1 +19890415,13.9,9.7,22.2,3.9,3.0 +19890416,15.1,7.8,21.7,8.3,2.7 +19890417,15.4,8.2,24.4,6.7,3.4 +19890418,18.5,9.0,26.7,6.7,3.9 +19890419,20.0,11.2,27.8,10.0,3.2 +19890420,15.2,9.2,19.4,11.7,6.1 +19890421,13.9,7.9,22.8,5.6,2.3 +19890422,16.6,8.2,25.6,5.6,2.7 +19890423,16.8,10.0,26.7,7.8,2.4 +19890424,17.5,14.2,25.6,12.2,1.8 +19890425,20.6,15.3,29.4,12.2,2.9 +19890426,23.2,13.7,30.6,12.2,4.1 +19890427,24.1,15.9,31.7,12.2,3.7 +19890428,22.4,14.3,32.2,13.3,2.6 +19890429,20.4,17.2,29.4,13.3,3.3 +19890430,20.6,17.8,27.8,15.6,3.1 +19890501,18.7,18.3,27.8,16.1,3.4 +19890502,16.7,10.4,22.8,9.4,3.8 +19890503,14.3,4.1,23.3,7.8,3.4 +19890504,13.9,6.3,20.6,6.7,3.5 +19890505,16.4,15.8,22.8,6.7,4.0 +19890506,16.9,10.7,22.8,11.7,6.6 +19890507,11.0,2.1,22.8,2.8,4.8 +19890508,9.3,2.2,18.9,-0.6,3.0 +19890509,13.4,11.4,19.4,11.7,2.7 +19890510,15.1,10.8,18.3,11.7,4.4 +19890511,13.1,3.7,18.3,6.7,5.2 +19890512,12.6,4.9,20.6,3.3,4.0 +19890513,13.7,3.9,22.2,3.3,3.0 +19890514,18.1,10.7,23.9,13.9,3.3 +19890515,19.3,14.8,25.6,13.3,4.0 +19890516,17.7,7.9,25.6,11.7,4.2 +19890517,18.5,8.8,27.8,8.3,2.4 +19890518,20.9,12.9,27.8,8.3,2.1 +19890519,20.2,14.2,28.3,11.7,1.5 +19890520,18.4,15.6,26.1,12.8,2.4 +19890521,23.1,17.3,30.0,12.8,3.0 +19890522,23.3,16.8,30.6,15.6,3.1 +19890523,21.3,17.1,30.0,15.6,4.8 +19890524,19.7,10.1,28.3,9.4,3.3 +19890525,22.2,16.3,30.0,9.4,4.3 +19890526,25.6,21.0,31.1,15.0,5.5 +19890527,25.6,19.6,31.7,19.4,4.2 +19890528,20.6,10.6,32.2,13.9,4.6 +19890529,19.4,13.9,27.2,12.8,2.9 +19890530,22.3,16.8,28.9,12.8,3.5 +19890531,23.9,18.2,31.7,15.6,3.2 +19890601,26.7,19.4,34.4,16.7,2.9 +19890602,27.0,19.1,34.4,18.3,2.9 +19890603,24.0,16.8,34.4,17.2,3.3 +19890604,25.1,19.2,32.2,17.2,4.5 +19890605,22.8,20.5,32.2,18.9,4.9 +19890606,20.7,18.9,30.6,18.9,4.7 +19890607,22.1,17.4,28.9,17.8,3.0 +19890608,21.5,18.2,29.4,17.2,2.8 +19890609,22.4,19.6,27.2,17.2,6.3 +19890610,23.3,16.7,29.4,15.0,3.2 +19890611,22.3,14.7,30.0,13.3,2.4 +19890612,23.6,18.2,30.0,13.3,3.1 +19890613,24.3,19.2,31.1,17.8,5.6 +19890614,25.7,18.7,31.7,18.9,5.8 +19890615,22.2,19.3,32.2,18.9,4.7 +19890616,20.4,19.3,27.8,18.9,5.1 +19890617,22.1,17.1,27.8,17.8,4.1 +19890618,21.8,14.7,28.9,13.9,1.7 +19890619,21.9,18.2,28.9,13.9,2.7 +19890620,21.4,19.6,27.8,17.8,2.7 +19890621,21.1,19.9,28.3,18.9,3.0 +19890622,22.1,19.6,28.9,17.8,2.3 +19890623,23.3,18.8,30.0,17.8,2.2 +19890624,24.6,19.4,31.1,18.3,2.2 +19890625,25.6,20.3,31.7,18.9,2.6 +19890626,25.9,20.2,32.2,20.0,2.4 +19890627,26.3,20.3,31.7,20.0,3.4 +19890628,25.3,20.1,31.7,20.0,3.4 +19890629,24.6,19.9,31.7,21.1,2.6 +19890630,24.0,19.0,30.6,20.0,2.9 +19890701,23.4,17.2,29.4,18.9,2.3 +19890702,22.3,17.1,29.4,18.3,2.2 +19890703,21.1,19.5,26.1,18.3,3.1 +19890704,22.6,20.8,26.7,20.0,2.9 +19890705,23.9,21.0,28.9,21.1,2.8 +19890706,24.4,20.9,30.0,20.6,3.0 +19890707,25.3,21.3,30.6,20.6,4.2 +19890708,26.3,20.6,32.8,20.6,2.6 +19890709,26.6,20.6,33.3,19.4,2.2 +19890710,27.7,21.3,34.4,19.4,2.3 +19890711,27.7,20.6,35.0,21.1,2.3 +19890712,27.2,20.4,34.4,21.1,2.3 +19890713,25.4,19.9,33.9,20.6,2.0 +19890714,25.5,20.5,31.7,20.6,1.6 +19890715,24.3,20.4,31.1,20.0,2.5 +19890716,24.3,21.4,30.0,20.0,2.1 +19890717,23.7,20.4,30.0,20.6,3.8 +19890718,23.1,19.1,28.3,20.0,2.6 +19890719,23.0,20.4,28.9,19.4,2.0 +19890720,23.2,20.2,29.4,19.4,4.7 +19890721,23.1,20.7,28.9,20.6,3.2 +19890722,23.9,20.3,30.0,19.4,1.9 +19890723,24.7,20.9,30.6,19.4,2.1 +19890724,24.9,19.1,32.2,18.3,2.1 +19890725,27.0,20.5,33.3,18.3,3.0 +19890726,26.4,21.2,34.4,20.6,1.5 +19890727,25.8,22.0,34.4,20.6,2.1 +19890728,27.1,19.7,33.9,22.2,3.1 +19890729,27.0,20.0,33.3,21.1,2.4 +19890730,26.1,21.7,32.8,21.1,2.5 +19890731,24.2,20.9,31.7,20.6,2.8 +19890801,24.4,21.3,32.8,20.6,1.9 +19890802,25.4,20.7,31.7,20.6,2.5 +19890803,25.4,18.2,32.2,18.9,2.0 +19890804,26.8,20.3,33.9,18.9,2.0 +19890805,27.2,19.7,34.4,17.8,2.8 +19890806,27.2,21.2,34.4,17.8,2.8 +19890807,25.8,18.7,33.9,21.1,3.2 +19890808,20.7,11.6,31.1,17.2,4.1 +19890809,19.4,12.8,25.0,13.9,3.6 +19890810,19.8,12.6,26.7,13.9,3.9 +19890811,21.2,14.4,28.9,14.4,2.2 +19890812,22.3,16.7,29.4,14.4,2.2 +19890813,22.1,16.9,28.3,17.2,2.3 +19890814,23.2,19.3,29.4,17.2,2.8 +19890815,23.2,19.8,29.4,20.0,2.7 +19890816,23.2,19.1,30.6,17.8,1.9 +19890817,22.8,19.3,31.1,17.8,1.4 +19890818,22.4,18.7,30.0,17.8,2.0 +19890819,22.0,18.6,28.3,17.8,2.9 +19890820,23.9,20.2,30.6,18.3,2.1 +19890821,25.7,20.2,31.7,18.3,2.7 +19890822,25.9,20.3,32.8,19.4,1.9 +19890823,27.2,21.7,33.9,19.4,2.5 +19890824,24.9,22.1,34.4,21.1,2.1 +19890825,24.9,21.8,31.7,20.6,2.1 +19890826,24.8,22.7,30.6,20.6,2.3 +19890827,23.7,21.1,31.1,20.0,1.7 +19890828,25.7,22.6,31.1,20.0,1.9 +19890829,25.8,22.9,31.1,21.7,2.6 +19890830,26.0,22.5,31.7,21.7,2.5 +19890831,25.1,19.3,32.2,18.3,2.7 +19890901,23.6,19.4,31.1,17.8,2.1 +19890902,26.1,21.0,31.7,17.8,2.4 +19890903,23.4,19.4,32.2,20.6,4.4 +19890904,21.4,14.3,26.1,17.8,5.5 +19890905,19.1,16.1,26.1,17.2,5.7 +19890906,19.0,18.4,20.6,17.2,4.6 +19890907,21.9,19.6,28.3,17.8,3.0 +19890908,23.7,20.2,30.0,18.9,0.8 +19890909,24.3,20.2,31.1,17.8,1.2 +19890910,24.9,20.2,31.7,17.8,2.2 +19890911,24.8,20.8,31.7,18.9,2.2 +19890912,24.4,20.9,31.7,19.4,1.4 +19890913,24.0,20.9,31.7,19.4,2.3 +19890914,23.8,19.5,30.0,18.9,2.0 +19890915,23.7,20.3,31.1,18.9,2.0 +19890916,22.9,19.3,31.1,18.9,3.4 +19890917,20.2,14.2,27.8,14.4,2.7 +19890918,18.7,13.4,27.2,12.8,3.7 +19890919,19.7,14.8,25.6,12.8,4.5 +19890920,19.1,16.6,25.6,15.0,2.7 +19890921,23.2,21.0,28.3,15.0,4.5 +19890922,23.1,19.7,28.9,19.4,8.7 +19890923,21.9,17.9,27.2,18.9,4.1 +19890924,13.8,4.4,17.8,10.0,6.8 +19890925,11.9,8.4,17.8,10.0,6.8 +19890926,17.5,14.9,25.0,10.0,4.3 +19890927,17.7,11.0,25.6,14.4,5.6 +19890928,13.6,7.6,21.1,8.9,4.5 +19890929,16.2,13.8,18.9,8.9,3.2 +19890930,17.5,17.1,18.9,14.4,3.7 +19891001,16.5,16.1,18.9,15.6,5.8 +19891002,21.2,17.8,27.8,15.6,3.8 +19891003,22.0,15.9,28.3,15.0,2.9 +19891004,18.4,10.1,28.9,10.6,2.5 +19891005,15.3,7.4,25.6,6.7,2.6 +19891006,20.1,15.1,28.9,6.7,3.8 +19891007,21.5,16.1,28.9,13.9,2.9 +19891008,16.8,7.4,28.9,12.2,4.1 +19891009,10.6,1.3,22.8,1.7,2.3 +19891010,10.3,3.4,19.4,1.7,2.2 +19891011,13.6,7.2,23.9,2.8,1.2 +19891012,15.7,9.9,25.6,5.0,1.3 +19891013,18.4,13.0,28.9,7.8,1.2 +19891014,20.6,14.9,29.4,10.6,1.6 +19891015,17.8,13.3,28.9,11.1,1.6 +19891016,19.7,16.4,26.7,11.1,0.9 +19891017,21.8,19.9,27.2,15.0,4.4 +19891018,20.6,19.6,25.0,18.3,2.4 +19891019,14.1,12.2,24.4,10.0,4.0 +19891020,5.8,-0.9,9.4,0.6,5.0 +19891021,7.6,-2.3,18.9,-1.7,4.9 +19891022,13.2,2.9,23.9,-1.7,2.7 +19891023,12.1,4.7,24.4,3.9,1.9 +19891024,12.4,5.1,20.6,5.6,2.7 +19891025,13.6,3.5,22.2,6.1,3.7 +19891026,13.6,2.3,22.8,6.7,3.3 +19891027,13.7,5.2,23.3,6.7,3.7 +19891028,14.7,6.3,23.9,7.2,3.2 +19891029,15.3,6.7,24.4,7.2,3.9 +19891030,17.4,11.8,23.9,9.4,4.2 +19891031,17.6,15.8,24.4,12.2,3.0 +19891101,13.2,8.7,21.7,4.4,2.0 +19891102,9.9,7.2,18.9,4.4,3.1 +19891103,10.6,5.3,16.1,4.4,2.4 +19891104,8.1,0.9,16.7,2.2,2.9 +19891105,9.0,2.8,20.6,1.7,2.0 +19891106,12.3,9.7,20.6,1.7,2.9 +19891107,14.3,13.4,18.9,8.9,2.4 +19891108,16.9,15.8,20.0,12.2,3.1 +19891109,17.3,10.1,21.1,14.4,4.8 +19891110,11.9,-0.3,21.7,3.9,4.7 +19891111,12.5,3.1,22.8,2.8,3.0 +19891112,18.7,5.5,27.2,2.8,3.7 +19891113,15.3,7.2,27.2,6.7,2.0 +19891114,14.3,9.2,26.1,6.7,1.6 +19891115,15.2,14.6,21.7,8.3,1.9 +19891116,12.5,5.6,20.0,6.1,7.6 +19891117,2.6,-6.3,16.7,-4.4,2.7 +19891118,5.2,-4.5,15.0,-4.4,3.4 +19891119,5.7,-2.4,15.0,-0.6,1.7 +19891120,10.4,-0.3,21.7,0.0,6.0 +19891121,13.5,-0.1,21.7,3.9,5.4 +19891122,5.2,-5.1,17.2,1.7,4.4 +19891123,3.2,-2.3,6.7,0.0,5.1 +19891124,-0.5,-6.3,6.7,-6.7,1.9 +19891125,1.9,-3.3,11.7,-6.7,2.3 +19891126,12.6,8.2,19.4,8.9,3.7 +19891127,12.3,11.4,20.0,8.9,2.3 +19891128,14.7,12.6,21.7,10.6,3.8 +19891129,8.8,-0.8,21.7,5.0,4.5 +19891130,5.4,-8.5,14.4,-2.2,3.4 +19891201,9.3,-8.5,17.2,-2.2,2.9 +19891202,7.1,-3.8,17.2,0.6,3.5 +19891203,3.9,-10.5,15.6,-1.1,6.3 +19891204,0.2,-12.6,9.4,-6.7,4.2 +19891205,7.5,-9.8,16.7,-6.7,4.9 +19891206,11.3,1.1,20.0,0.0,5.5 +19891207,11.7,7.4,20.6,5.0,3.6 +19891208,3.7,2.5,15.0,1.1,7.1 +19891209,0.9,-0.7,5.0,0.0,6.6 +19891210,1.7,-0.2,3.9,0.0,2.5 +19891211,3.7,1.9,6.1,0.0,4.5 +19891212,5.2,4.4,6.7,2.2,4.1 +19891213,2.9,0.7,6.1,1.7,3.6 +19891214,0.3,-5.9,7.2,-5.0,3.1 +19891215,1.7,-4.1,7.8,-5.0,3.6 +19891216,-1.6,-13.9,7.2,-6.7,4.6 +19891217,-3.8,-14.4,1.1,-6.7,2.5 +19891218,-0.1,-10.8,3.3,-6.1,2.0 +19891219,-0.2,-4.1,3.9,-2.2,2.7 +19891220,0.8,-3.3,7.2,-5.0,2.0 +19891221,0.6,-4.8,8.9,-5.6,3.2 +19891222,-5.2,-16.9,0.0,-8.9,5.4 +19891223,-8.6,-21.5,-3.3,-12.2,5.3 +19891224,-6.3,-19.7,2.2,-12.2,2.6 +19891225,-2.8,-12.8,2.8,-11.7,4.1 +19891226,0.3,-6.8,9.4,-7.2,4.9 +19891227,-0.9,-6.7,10.0,-7.2,2.0 +19891228,5.1,-3.6,13.9,-6.7,2.9 +19891229,4.2,-3.3,14.4,-2.8,2.1 +19891230,9.3,6.4,14.4,7.2,2.6 +19891231,11.3,10.6,16.1,7.2,4.3 +19900101,8.6,1.3,16.1,2.2,5.0 +19900102,1.6,-5.9,11.7,-5.0,2.7 +19900103,6.2,-1.0,15.0,-5.0,3.2 +19900104,9.6,7.9,15.0,0.0,2.1 +19900105,11.9,11.1,14.4,8.3,3.4 +19900106,10.9,9.6,14.4,8.9,1.6 +19900107,7.6,1.6,13.9,6.1,3.1 +19900108,6.4,5.3,11.7,4.4,4.0 +19900109,5.6,1.7,13.9,-1.7,2.8 +19900110,9.3,0.7,17.2,-1.7,5.8 +19900111,8.3,-3.1,19.4,0.0,4.9 +19900112,9.2,-7.1,19.4,0.0,5.8 +19900113,1.6,-10.9,12.2,-5.0,4.2 +19900114,2.6,-8.3,11.7,-3.3,2.8 +19900115,8.2,-4.6,17.2,-2.8,5.0 +19900116,13.1,2.6,21.1,1.1,3.3 +19900117,12.6,6.8,21.1,5.6,2.9 +19900118,14.3,11.9,21.1,5.6,4.5 +19900119,12.0,8.4,20.0,9.4,3.5 +19900120,7.9,6.3,13.3,6.7,3.5 +19900121,12.4,9.3,16.1,6.7,4.8 +19900122,7.5,-0.2,16.1,-1.7,3.1 +19900123,8.8,-1.8,18.3,-1.7,2.7 +19900124,9.5,3.5,18.9,0.0,2.8 +19900125,9.4,9.3,12.8,7.8,3.3 +19900126,6.2,-3.4,12.8,0.6,4.6 +19900127,2.8,-5.7,12.2,-5.0,2.3 +19900128,5.8,-3.3,15.6,-5.0,1.9 +19900129,9.3,5.2,16.7,-3.3,2.4 +19900130,5.7,-1.2,16.1,-3.3,2.9 +19900131,7.7,-2.8,17.2,-3.3,2.4 +19900201,8.2,-1.4,18.3,-1.7,2.8 +19900202,14.0,10.5,18.9,11.7,2.8 +19900203,15.8,14.9,20.6,11.7,3.3 +19900204,18.3,13.9,21.7,11.7,5.7 +19900205,8.7,-2.3,22.2,1.1,4.0 +19900206,6.4,-3.6,15.6,-1.1,2.7 +19900207,12.6,6.8,17.8,9.4,3.8 +19900208,9.3,4.4,18.9,2.2,2.1 +19900209,9.7,8.3,17.8,2.2,1.7 +19900210,14.6,12.5,17.8,5.0,5.0 +19900211,8.4,1.2,17.8,0.0,3.1 +19900212,11.3,-2.3,17.8,0.0,3.7 +19900213,10.3,0.0,19.4,1.7,3.9 +19900214,13.2,4.9,21.7,1.7,4.3 +19900215,15.8,11.0,22.2,5.0,4.2 +19900216,17.4,14.3,22.8,10.6,3.9 +19900217,13.6,6.9,19.4,7.8,3.9 +19900218,5.4,-3.7,17.8,3.3,5.5 +19900219,8.4,5.5,17.8,3.3,3.4 +19900220,10.9,-3.1,17.8,4.4,4.4 +19900221,6.2,-5.9,15.6,-0.6,3.9 +19900222,10.5,5.1,15.6,7.8,3.8 +19900223,14.2,11.2,15.6,7.8,6.8 +19900224,7.9,-3.1,16.7,1.1,7.4 +19900225,2.2,-14.1,15.0,-3.3,5.1 +19900226,-0.5,-14.0,7.2,-5.6,3.7 +19900227,4.3,-6.8,17.2,-5.6,3.9 +19900228,12.2,3.4,19.4,7.2,3.1 +19900301,10.1,1.3,20.6,6.7,4.2 +19900302,6.9,3.9,12.8,5.6,2.8 +19900303,10.9,7.0,17.2,5.6,4.4 +19900304,9.6,-1.6,17.8,0.6,3.1 +19900305,10.2,3.4,17.8,0.6,2.6 +19900306,11.8,4.1,21.1,3.9,2.3 +19900307,9.1,2.4,13.3,5.0,5.3 +19900308,5.3,-2.8,12.2,3.3,3.4 +19900309,7.2,4.7,13.9,3.3,3.8 +19900310,14.8,11.3,24.4,3.9,2.4 +19900311,19.4,13.9,27.2,7.2,3.6 +19900312,20.5,12.3,28.3,12.2,4.2 +19900313,21.5,10.1,28.3,12.2,3.7 +19900314,19.4,11.3,28.9,12.8,3.3 +19900315,19.1,14.2,26.7,13.3,3.4 +19900316,19.2,17.2,23.9,15.0,3.0 +19900317,16.6,15.1,20.6,14.4,4.5 +19900318,12.9,3.2,20.6,3.3,2.7 +19900319,13.3,2.3,21.1,3.3,3.5 +19900320,6.3,-4.9,21.7,0.6,6.1 +19900321,6.1,-6.3,17.2,-3.9,3.3 +19900322,10.7,-1.2,20.6,-3.9,3.9 +19900323,15.3,3.4,24.4,0.6,3.0 +19900324,16.4,7.2,25.0,5.0,3.5 +19900325,13.7,6.4,25.0,6.1,3.8 +19900326,12.7,8.3,23.3,6.1,3.5 +19900327,10.1,3.0,16.1,3.9,3.3 +19900328,9.1,2.1,17.2,2.8,2.3 +19900329,9.0,6.7,17.2,2.8,5.0 +19900330,7.6,6.3,9.4,6.1,5.1 +19900331,12.2,10.3,20.6,6.1,2.8 +19900401,16.8,11.6,26.1,8.3,2.1 +19900402,18.3,10.8,26.7,8.3,3.5 +19900403,11.0,1.1,25.6,6.1,6.3 +19900404,9.3,-1.9,18.3,2.2,6.0 +19900405,14.7,0.9,23.3,2.2,4.9 +19900406,15.8,7.7,23.9,6.7,5.6 +19900407,8.9,-2.0,22.2,2.8,5.3 +19900408,7.7,-6.2,16.1,0.0,3.8 +19900409,9.7,-1.1,18.9,0.0,2.6 +19900410,14.8,8.1,20.6,1.7,4.3 +19900411,14.5,8.8,20.6,10.0,5.8 +19900412,7.9,-2.6,16.7,0.0,2.1 +19900413,8.9,-2.2,17.8,0.0,3.9 +19900414,13.2,5.1,21.7,1.1,2.8 +19900415,16.3,11.7,23.3,6.1,2.2 +19900416,16.4,6.5,24.4,8.3,2.9 +19900417,18.7,8.4,27.8,8.3,4.1 +19900418,12.8,0.6,27.8,6.7,6.3 +19900419,10.1,-1.5,18.9,1.7,3.4 +19900420,14.7,8.1,19.4,11.1,1.2 +19900421,16.5,13.3,21.1,10.6,4.0 +19900422,18.7,13.1,25.0,12.2,3.2 +19900423,19.1,12.3,26.1,10.0,2.1 +19900424,20.0,12.1,28.3,10.0,3.3 +19900425,20.9,10.4,29.4,12.2,3.4 +19900426,22.5,11.0,31.1,12.2,2.7 +19900427,21.1,9.8,31.1,10.6,3.0 +19900428,17.8,13.2,30.0,10.6,4.0 +19900429,15.1,13.0,20.6,12.8,2.9 +19900430,19.2,15.8,28.9,10.6,3.1 +19900501,23.4,17.9,30.6,10.6,3.1 +19900502,21.7,15.6,30.6,13.3,3.1 +19900503,19.6,16.8,29.4,13.3,4.1 +19900504,20.2,18.7,24.4,17.2,4.3 +19900505,21.3,16.8,26.1,17.8,6.0 +19900506,13.8,5.2,26.7,5.6,3.6 +19900507,14.6,5.7,22.2,5.6,3.2 +19900508,16.6,7.7,25.0,6.1,4.0 +19900509,16.6,13.7,25.6,6.7,2.4 +19900510,19.5,13.1,25.0,14.4,6.7 +19900511,14.2,4.0,25.0,3.9,2.7 +19900512,18.4,9.7,25.0,12.8,3.2 +19900513,20.6,15.2,26.1,11.7,5.4 +19900514,21.1,15.2,28.9,12.2,2.6 +19900515,21.8,15.7,29.4,12.2,2.5 +19900516,23.4,17.5,30.0,14.4,4.6 +19900517,23.7,17.8,29.4,17.2,5.0 +19900518,18.5,7.7,28.3,8.9,3.0 +19900519,19.3,8.4,27.2,8.9,2.5 +19900520,20.0,15.1,28.3,10.6,3.2 +19900521,21.8,17.8,29.4,13.3,4.5 +19900522,20.2,15.7,29.4,16.7,4.5 +19900523,15.2,10.4,23.9,7.8,2.7 +19900524,19.4,12.5,25.0,7.8,2.1 +19900525,20.4,14.1,26.7,13.3,3.0 +19900526,22.7,17.2,28.9,15.0,5.2 +19900527,24.2,18.1,31.1,17.8,3.7 +19900528,19.3,18.3,20.6,18.3,3.8 +19900529,18.4,14.7,23.9,13.9,3.4 +19900530,19.2,8.8,26.1,11.1,3.8 +19900531,19.8,13.0,26.7,11.1,2.7 +19900601,20.9,15.1,27.2,13.9,2.1 +19900602,20.4,17.9,27.2,13.9,2.2 +19900603,22.6,19.9,27.8,18.9,4.0 +19900604,24.0,16.0,29.4,16.7,5.4 +19900605,19.6,12.6,30.6,12.2,3.0 +19900606,20.9,15.3,29.4,12.2,2.7 +19900607,25.8,17.4,34.4,12.8,2.8 +19900608,27.8,19.9,35.0,18.9,3.0 +19900609,26.1,18.7,35.6,21.1,4.4 +19900610,24.0,19.2,33.9,18.9,2.9 +19900611,23.8,12.0,30.6,16.1,4.7 +19900612,21.8,11.6,29.4,14.4,3.8 +19900613,22.2,13.3,30.6,13.9,2.9 +19900614,25.4,16.5,33.3,13.9,3.5 +19900615,26.7,19.6,33.9,17.2,2.1 +19900616,23.6,20.3,33.3,21.1,4.3 +19900617,24.4,19.6,30.6,19.4,2.5 +19900618,25.3,19.2,33.9,17.2,2.3 +19900619,27.3,17.2,33.9,17.2,3.8 +19900620,25.9,12.9,33.9,17.2,3.4 +19900621,27.5,16.8,36.1,17.2,3.5 +19900622,27.1,20.2,36.1,20.0,3.9 +19900623,26.9,15.1,33.3,21.1,5.6 +19900624,23.8,11.2,31.1,14.4,3.0 +19900625,23.2,11.4,31.1,14.4,3.3 +19900626,22.7,14.8,31.1,15.6,2.1 +19900627,24.1,17.6,32.8,15.6,2.0 +19900628,23.8,18.7,32.8,17.8,1.8 +19900629,26.0,18.8,34.4,17.8,2.8 +19900630,27.6,18.6,35.6,19.4,1.9 +19900701,28.3,18.8,35.6,20.0,2.9 +19900702,26.6,16.0,35.6,19.4,3.1 +19900703,23.7,13.9,32.8,15.0,2.9 +19900704,25.0,16.2,33.3,15.0,2.9 +19900705,27.4,15.0,36.1,16.7,3.1 +19900706,27.2,17.8,36.1,17.2,2.6 +19900707,27.6,19.5,35.6,20.0,2.8 +19900708,27.7,20.2,35.6,21.1,3.4 +19900709,26.8,21.1,35.0,20.6,2.6 +19900710,28.1,20.4,36.1,20.6,3.9 +19900711,27.9,19.7,36.7,20.6,2.8 +19900712,25.8,20.4,37.2,20.6,5.2 +19900713,24.0,20.7,31.7,20.6,3.5 +19900714,22.2,21.6,23.9,20.6,3.9 +19900715,24.3,19.6,29.4,20.6,4.3 +19900716,24.4,16.4,30.6,17.2,2.6 +19900717,24.8,19.2,31.1,17.2,2.3 +19900718,23.9,19.8,31.1,19.4,2.2 +19900719,22.8,20.2,30.0,19.4,2.2 +19900720,23.0,21.2,29.4,19.4,2.6 +19900721,24.0,21.7,31.7,21.1,3.0 +19900722,24.2,21.2,31.7,20.0,2.8 +19900723,26.2,20.2,32.8,20.0,3.5 +19900724,26.0,19.1,32.8,20.0,2.9 +19900725,22.2,19.9,31.1,20.0,4.1 +19900726,23.9,18.4,30.0,18.9,3.7 +19900727,24.2,16.0,30.6,18.3,4.3 +19900728,25.0,19.1,30.0,18.3,4.8 +19900729,25.1,19.8,31.1,20.6,2.5 +19900730,26.6,19.8,33.3,19.4,1.9 +19900731,27.1,19.4,33.9,19.4,1.6 +19900801,25.6,18.3,34.4,19.4,2.8 +19900802,24.3,18.7,32.2,19.4,3.4 +19900803,24.7,19.2,30.6,18.9,3.0 +19900804,25.9,19.9,32.8,18.9,2.3 +19900805,27.0,20.7,33.3,19.4,4.7 +19900806,24.9,21.9,32.8,22.2,3.1 +19900807,24.8,19.4,31.7,18.9,2.3 +19900808,23.5,18.3,31.1,18.9,4.2 +19900809,24.2,19.2,30.0,18.9,4.3 +19900810,21.9,18.3,30.0,18.3,2.2 +19900811,23.1,16.6,31.1,15.6,1.2 +19900812,24.6,17.4,31.7,15.6,2.0 +19900813,25.2,18.8,32.2,18.3,2.4 +19900814,25.1,18.7,33.3,18.3,2.2 +19900815,26.0,20.6,33.3,18.3,1.6 +19900816,25.4,20.4,33.9,19.4,2.1 +19900817,25.5,19.4,32.8,20.0,3.9 +19900818,25.9,20.8,32.8,20.0,1.6 +19900819,26.9,20.5,35.0,20.6,1.2 +19900820,26.9,20.8,35.6,20.6,2.3 +19900821,25.2,21.8,36.1,21.1,2.2 +19900822,22.9,21.1,33.9,20.6,2.7 +19900823,23.7,20.9,30.0,19.4,2.4 +19900824,24.4,22.1,30.0,19.4,2.4 +19900825,25.1,22.4,30.0,21.1,2.4 +19900826,25.5,22.2,32.2,20.6,1.2 +19900827,27.0,22.4,32.8,20.6,0.9 +19900828,27.3,20.4,34.4,20.0,1.3 +19900829,26.6,20.4,35.0,20.0,2.8 +19900830,24.3,18.3,35.6,18.9,2.6 +19900831,22.5,19.3,30.6,18.9,4.3 +19900901,23.7,19.0,30.0,18.9,3.1 +19900902,24.8,20.2,32.2,18.3,1.2 +19900903,26.2,21.1,32.8,18.3,1.8 +19900904,24.1,19.2,32.2,20.6,3.1 +19900905,23.6,18.7,30.6,17.2,1.7 +19900906,26.3,20.0,33.3,17.2,2.0 +19900907,27.4,21.1,34.4,21.1,3.0 +19900908,26.6,21.7,35.0,21.7,2.6 +19900909,24.2,21.9,33.3,21.1,2.6 +19900910,24.9,20.9,31.7,20.6,1.9 +19900911,24.2,19.6,32.8,19.4,2.6 +19900912,24.1,20.9,31.7,19.4,2.3 +19900913,22.7,21.4,30.0,20.0,1.8 +19900914,22.1,21.4,25.6,21.1,3.3 +19900915,24.4,19.7,29.4,21.1,3.5 +19900916,20.2,14.6,30.0,12.8,1.6 +19900917,19.1,12.5,27.8,12.8,2.3 +19900918,16.8,10.2,26.1,10.6,3.5 +19900919,18.7,14.2,26.7,10.6,3.4 +19900920,23.9,20.2,31.1,13.3,2.6 +19900921,22.4,18.9,31.1,19.4,3.7 +19900922,21.9,20.2,28.3,19.4,2.9 +19900923,16.8,9.2,28.9,9.4,3.1 +19900924,13.2,4.5,22.2,5.6,3.0 +19900925,13.3,7.7,22.2,5.6,2.4 +19900926,16.7,10.2,27.2,5.6,2.3 +19900927,19.1,13.1,27.8,9.4,2.4 +19900928,18.6,14.3,28.3,11.7,2.2 +19900929,19.8,15.7,26.7,12.8,1.0 +19900930,18.9,15.3,26.7,13.9,1.2 +19901001,19.6,15.9,26.7,13.9,2.0 +19901002,19.1,13.6,26.7,11.7,2.2 +19901003,18.0,14.7,27.8,11.7,2.4 +19901004,21.4,19.7,25.6,12.8,4.6 +19901005,19.6,12.6,27.2,10.6,3.0 +19901006,17.0,11.1,27.2,8.9,1.6 +19901007,17.9,14.3,27.2,8.9,1.7 +19901008,22.5,18.7,28.9,11.1,1.9 +19901009,21.7,17.1,29.4,16.1,1.4 +19901010,20.1,18.5,28.3,16.1,3.5 +19901011,18.3,17.4,22.2,15.6,4.0 +19901012,19.2,18.8,21.7,15.6,5.4 +19901013,20.4,18.3,26.7,17.8,4.5 +19901014,19.8,15.7,26.7,14.4,2.2 +19901015,18.3,12.1,26.1,9.4,2.0 +19901016,17.5,11.1,26.7,9.4,3.2 +19901017,17.1,13.2,24.4,11.1,2.3 +19901018,20.5,17.2,25.0,11.1,5.7 +19901019,12.1,1.7,24.4,2.2,4.2 +19901020,10.5,4.7,19.4,2.2,3.1 +19901021,14.5,8.6,21.1,4.4,3.7 +19901022,16.2,15.0,21.1,11.7,3.5 +19901023,17.7,15.3,23.9,15.0,3.0 +19901024,15.4,11.5,23.9,10.0,2.0 +19901025,11.1,8.1,22.2,8.3,3.7 +19901026,9.6,0.1,14.4,5.6,6.1 +19901027,7.4,0.8,16.1,-0.6,2.0 +19901028,11.3,3.1,20.0,-0.6,3.4 +19901029,11.1,-1.3,20.6,2.8,3.0 +19901030,9.6,3.6,21.1,1.1,1.5 +19901031,13.2,5.2,26.1,1.1,1.8 +19901101,13.8,6.4,26.1,3.9,1.6 +19901102,13.8,6.7,25.6,5.0,1.5 +19901103,13.2,7.1,24.4,5.0,1.0 +19901104,13.7,9.6,24.4,5.0,1.7 +19901105,15.8,12.9,23.9,6.7,2.7 +19901106,12.9,6.1,24.4,7.2,3.2 +19901107,10.9,5.3,21.1,3.9,2.5 +19901108,10.3,0.6,20.0,3.9,4.3 +19901109,5.7,0.4,14.4,3.9,4.8 +19901110,9.3,6.5,14.4,3.9,5.7 +19901111,8.8,0.1,18.3,0.0,2.9 +19901112,12.0,4.2,22.2,0.0,1.7 +19901113,13.9,-0.9,22.8,2.8,4.1 +19901114,9.9,1.7,21.1,3.3,2.5 +19901115,9.6,3.4,19.4,1.7,2.6 +19901116,12.8,6.4,21.7,1.7,2.7 +19901117,13.0,3.1,21.7,5.0,5.4 +19901118,7.2,-2.2,16.1,-0.6,2.7 +19901119,8.3,0.1,19.4,-0.6,2.0 +19901120,11.6,4.7,21.1,-0.6,1.7 +19901121,11.2,6.4,21.7,3.9,1.9 +19901122,11.2,7.1,19.4,3.9,2.8 +19901123,15.8,10.6,21.7,3.9,4.8 +19901124,11.8,3.0,21.7,2.8,3.5 +19901125,14.3,3.2,22.8,2.8,4.5 +19901126,13.6,4.9,23.3,6.1,2.7 +19901127,14.9,11.1,23.9,6.1,2.9 +19901128,18.9,17.0,24.4,9.4,4.2 +19901129,13.4,6.8,25.0,7.2,4.6 +19901130,4.3,-6.8,16.1,-4.4,2.6 +19901201,4.6,-3.6,16.1,-4.4,2.6 +19901202,12.5,7.2,18.3,8.9,1.7 +19901203,14.5,13.3,18.3,8.9,3.5 +19901204,11.1,4.6,17.2,3.9,5.5 +19901205,3.3,-10.7,16.1,-4.4,3.1 +19901206,4.3,-4.9,15.0,-4.4,2.5 +19901207,5.5,-1.1,15.6,-4.4,2.7 +19901208,7.3,0.6,13.3,0.6,3.4 +19901209,7.3,-5.4,15.6,-1.7,2.8 +19901210,9.4,-2.3,20.0,-1.7,3.0 +19901211,10.7,-0.2,20.6,0.0,2.5 +19901212,7.9,2.3,17.2,1.7,2.6 +19901213,10.6,5.9,20.6,1.7,4.3 +19901214,10.3,7.9,21.1,6.1,3.4 +19901215,6.4,3.6,13.3,4.4,3.1 +19901216,11.9,9.8,17.2,4.4,3.4 +19901217,9.4,5.3,17.8,7.8,2.3 +19901218,12.1,10.1,20.0,7.8,3.5 +19901219,13.9,11.7,20.0,9.4,3.0 +19901220,8.2,6.1,16.7,4.4,5.2 +19901221,7.4,7.3,9.4,4.4,4.2 +19901222,10.8,10.8,13.9,6.7,2.4 +19901223,17.2,16.4,20.0,9.4,5.2 +19901224,9.1,3.6,20.0,0.6,6.2 +19901225,-1.3,-10.7,6.1,-6.7,1.9 +19901226,1.3,-5.5,7.2,-6.7,1.9 +19901227,1.4,-4.3,7.2,-2.8,4.8 +19901228,2.6,1.9,7.2,0.0,2.6 +19901229,6.3,6.2,8.9,0.6,2.5 +19901230,11.4,11.3,17.2,5.0,2.9 +19901231,14.4,9.3,19.4,7.8,3.7 +19910101,4.6,-0.9,7.8,0.6,3.8 +19910102,6.9,2.8,12.2,4.4,2.1 +19910103,5.1,4.5,8.9,1.7,1.8 +19910104,7.1,6.6,8.3,5.6,2.6 +19910105,6.4,4.8,7.8,5.0,2.4 +19910106,8.6,7.7,12.8,5.6,2.7 +19910107,11.6,11.4,14.4,6.7,3.0 +19910108,3.3,2.3,6.1,1.7,6.4 +19910109,4.1,3.0,6.1,2.8,2.8 +19910110,6.7,5.2,9.4,5.6,3.8 +19910111,5.3,4.6,7.8,4.4,6.4 +19910112,7.3,6.2,12.2,5.6,2.8 +19910113,4.4,-2.8,9.4,1.7,4.6 +19910114,1.6,-3.6,10.6,-4.4,2.4 +19910115,1.6,-2.3,7.2,-3.3,2.8 +19910116,9.8,6.9,16.7,5.6,5.7 +19910117,6.7,-0.9,13.3,-0.6,3.4 +19910118,6.5,-2.8,15.0,-1.7,2.6 +19910119,4.7,-0.9,6.7,1.7,2.0 +19910120,7.2,5.5,12.8,5.0,3.4 +19910121,4.8,-2.5,9.4,0.0,4.6 +19910122,-2.3,-10.2,3.3,-7.8,2.3 +19910123,-0.7,-8.3,8.3,-6.7,3.1 +19910124,2.0,-4.2,3.9,0.0,2.4 +19910125,2.4,-4.1,8.3,-2.8,2.2 +19910126,1.1,-4.9,9.4,-5.6,2.6 +19910127,4.1,-2.3,12.8,-3.9,3.4 +19910128,10.1,0.2,16.7,5.6,2.7 +19910129,8.2,6.8,12.8,5.6,2.3 +19910130,11.0,10.9,14.4,9.4,2.9 +19910131,9.4,0.2,15.0,5.0,6.9 +19910201,2.6,-11.9,11.1,-4.4,2.8 +19910202,4.3,-6.2,15.6,-3.3,2.3 +19910203,7.9,-0.3,19.4,-0.6,2.0 +19910204,10.9,1.3,21.7,2.8,2.4 +19910205,11.5,4.8,20.6,5.0,2.3 +19910206,13.3,11.5,15.6,11.7,2.3 +19910207,14.8,12.8,18.9,12.2,3.1 +19910208,9.7,1.9,13.9,6.1,4.4 +19910209,9.3,-4.9,21.7,-0.6,3.5 +19910210,11.4,-7.7,18.3,2.8,2.9 +19910211,8.5,-3.9,14.4,0.6,3.8 +19910212,6.8,-3.6,15.6,-1.7,2.8 +19910213,8.3,1.6,13.3,3.3,4.4 +19910214,11.0,4.9,13.9,7.8,7.0 +19910215,-0.1,-10.3,9.4,-5.6,6.7 +19910216,-6.7,-18.5,1.7,-11.7,4.0 +19910217,0.6,-11.0,7.8,-3.9,5.6 +19910218,4.5,2.2,9.4,2.2,1.7 +19910219,9.3,7.4,16.1,6.1,2.7 +19910220,14.3,13.7,17.8,11.7,3.4 +19910221,12.4,9.1,18.3,7.8,2.3 +19910222,12.3,10.3,14.4,10.6,1.6 +19910223,9.3,6.7,11.7,6.7,5.0 +19910224,6.8,-1.4,13.9,2.8,4.3 +19910225,10.2,3.9,17.8,5.6,3.0 +19910226,7.1,-0.7,13.9,3.3,4.0 +19910227,3.4,-6.3,11.7,-4.4,3.7 +19910228,7.4,-2.9,16.7,-1.7,3.4 +19910301,7.8,2.3,13.9,2.2,2.5 +19910302,14.9,12.6,18.9,10.6,5.3 +19910303,13.3,12.0,16.1,11.7,4.1 +19910304,8.9,2.8,13.9,3.9,6.0 +19910305,7.3,-2.8,17.8,-1.7,4.0 +19910306,10.9,5.1,15.0,7.2,4.2 +19910307,14.2,7.5,20.0,10.0,3.2 +19910308,7.7,2.6,14.4,2.8,4.0 +19910309,4.2,-0.6,13.9,-1.1,2.1 +19910310,5.6,-5.1,8.9,0.6,5.8 +19910311,6.7,-5.3,15.0,-0.6,4.3 +19910312,7.8,-2.5,14.4,2.8,3.0 +19910313,7.3,3.1,10.0,5.0,3.9 +19910314,9.8,6.9,14.4,7.8,2.9 +19910315,8.9,1.6,15.0,5.6,3.8 +19910316,8.3,0.3,15.6,3.9,3.0 +19910317,8.2,2.8,12.8,4.4,1.9 +19910318,12.1,7.9,21.1,7.8,4.2 +19910319,12.1,0.5,17.2,6.7,5.6 +19910320,11.8,-0.1,21.7,2.2,3.1 +19910321,16.2,5.1,22.8,11.1,5.5 +19910322,19.0,13.0,26.7,12.8,4.8 +19910323,20.7,12.2,24.4,17.2,6.2 +19910324,18.8,-0.2,26.1,12.2,5.7 +19910325,17.7,-1.7,25.0,8.3,3.2 +19910326,16.4,2.7,26.7,6.7,3.5 +19910327,18.7,9.8,23.3,12.8,5.8 +19910328,19.3,14.9,21.1,16.7,5.0 +19910329,13.4,12.7,16.1,12.2,3.4 +19910330,10.9,5.4,13.3,5.6,5.2 +19910331,7.8,-0.1,15.0,3.3,4.5 +19910401,11.1,1.8,22.2,2.8,3.7 +19910402,14.8,1.1,23.3,5.0,2.6 +19910403,14.9,1.0,20.0,10.0,4.1 +19910404,13.1,7.3,18.3,7.8,3.1 +19910405,14.4,12.4,18.3,12.2,2.2 +19910406,16.2,12.8,25.0,9.4,2.6 +19910407,18.8,12.4,27.2,11.1,2.4 +19910408,19.8,15.6,26.1,16.7,3.1 +19910409,20.1,17.2,26.1,16.7,4.9 +19910410,19.2,9.0,26.1,13.9,4.3 +19910411,15.7,3.6,22.8,8.9,3.4 +19910412,15.1,7.5,17.8,12.8,3.8 +19910413,12.0,9.2,13.9,10.6,4.7 +19910414,14.5,13.4,20.0,11.1,2.4 +19910415,16.9,14.4,25.6,11.7,4.8 +19910416,20.2,13.2,27.2,12.2,2.4 +19910417,19.5,11.8,28.9,11.7,2.0 +19910418,20.3,14.4,27.8,13.9,3.0 +19910419,16.2,14.4,22.8,12.2,3.7 +19910420,13.6,10.8,20.0,10.0,3.5 +19910421,12.7,6.9,16.7,10.0,4.2 +19910422,10.6,2.9,18.3,3.3,3.2 +19910423,14.1,6.9,21.1,8.3,3.0 +19910424,17.8,8.8,25.6,11.1,4.0 +19910425,14.2,3.7,20.6,6.7,2.7 +19910426,15.2,11.1,17.8,13.3,2.9 +19910427,16.7,16.0,19.4,15.0,3.0 +19910428,21.0,19.0,25.6,17.8,3.0 +19910429,21.4,19.1,28.3,16.7,2.4 +19910430,20.9,18.4,26.7,18.3,3.0 +19910501,21.6,16.6,27.8,15.6,3.9 +19910502,20.4,8.7,25.6,15.0,4.9 +19910503,17.9,7.5,28.3,8.3,2.4 +19910504,19.7,15.4,23.9,16.7,3.2 +19910505,19.2,17.9,22.8,17.8,2.4 +19910506,19.8,17.1,23.9,16.7,5.1 +19910507,18.2,8.6,25.0,10.0,3.7 +19910508,17.3,9.1,25.6,10.0,3.0 +19910509,17.7,13.7,21.1,15.6,3.4 +19910510,19.9,17.1,26.1,17.2,2.8 +19910511,22.1,18.4,26.7,17.8,2.0 +19910512,21.3,19.0,25.0,17.8,2.8 +19910513,22.1,19.3,27.2,19.4,2.6 +19910514,22.4,18.9,29.4,17.2,1.7 +19910515,23.9,19.3,30.6,18.3,2.4 +19910516,23.2,19.9,28.9,19.4,3.3 +19910517,23.7,19.6,31.1,18.9,2.3 +19910518,24.9,19.6,31.7,18.9,2.0 +19910519,18.4,17.2,25.6,12.8,4.8 +19910520,12.3,11.3,13.9,11.1,6.1 +19910521,15.6,14.1,21.1,13.3,5.5 +19910522,20.6,17.4,25.0,17.8,3.9 +19910523,22.6,19.1,27.2,18.9,1.9 +19910524,23.0,18.4,28.9,18.9,2.6 +19910525,23.3,19.9,28.9,18.9,2.1 +19910526,23.4,19.8,30.0,18.9,1.9 +19910527,24.6,22.0,29.4,22.2,3.2 +19910528,25.0,21.9,30.6,21.7,3.9 +19910529,25.7,22.2,31.7,21.1,2.0 +19910530,25.6,22.0,32.8,20.6,2.4 +19910531,26.6,21.6,33.9,21.7,2.3 +19910601,26.4,20.4,32.8,21.1,2.9 +19910602,24.3,20.3,31.1,19.4,3.2 +19910603,24.4,19.4,31.1,18.9,2.7 +19910604,26.1,19.3,31.7,20.0,2.8 +19910605,22.8,13.6,27.8,18.3,4.3 +19910606,19.7,11.6,25.0,13.9,3.9 +19910607,18.6,10.6,25.0,12.2,3.5 +19910608,19.4,11.8,26.7,12.8,1.8 +19910609,21.4,13.6,29.4,13.9,1.4 +19910610,22.1,14.4,30.0,14.4,1.6 +19910611,22.8,15.3,29.4,15.6,3.2 +19910612,23.8,17.3,26.7,20.0,3.4 +19910613,25.1,19.3,32.2,18.9,2.1 +19910614,24.9,21.1,30.6,20.6,2.4 +19910615,22.5,20.2,29.4,18.3,2.5 +19910616,24.9,20.9,31.1,20.6,2.3 +19910617,24.7,20.3,32.2,19.4,2.3 +19910618,24.3,20.6,29.4,20.6,3.0 +19910619,23.2,21.3,28.3,20.6,2.2 +19910620,23.9,21.9,28.3,21.7,3.0 +19910621,25.2,21.8,30.0,21.1,2.5 +19910622,24.7,20.2,31.1,20.6,3.2 +19910623,24.1,20.7,29.4,20.6,2.8 +19910624,21.0,17.7,23.9,18.3,4.4 +19910625,21.6,16.2,25.0,18.9,3.4 +19910626,19.6,16.3,21.7,17.2,4.7 +19910627,21.9,17.9,27.2,18.9,4.3 +19910628,24.6,19.4,30.6,18.9,2.7 +19910629,26.3,20.4,32.8,20.0,1.9 +19910630,27.4,21.7,33.3,21.1,2.5 +19910701,28.8,22.1,34.4,22.8,2.8 +19910702,27.9,22.8,33.9,23.9,2.4 +19910703,26.8,21.1,34.4,20.6,2.5 +19910704,26.3,21.4,32.8,21.7,2.9 +19910705,24.8,21.7,31.7,22.2,3.7 +19910706,25.6,20.1,32.2,20.0,2.3 +19910707,27.4,20.9,33.9,21.7,2.7 +19910708,26.8,22.0,30.6,22.8,3.0 +19910709,27.4,19.9,34.4,21.1,3.3 +19910710,27.1,20.4,34.4,20.0,2.1 +19910711,26.5,20.4,32.8,21.7,3.1 +19910712,27.8,20.6,34.4,21.7,2.3 +19910713,29.0,19.6,33.9,22.2,3.2 +19910714,27.5,18.3,33.9,21.1,2.3 +19910715,26.5,17.2,31.1,22.2,4.6 +19910716,23.9,20.5,27.8,21.7,3.2 +19910717,22.4,20.7,28.3,20.6,3.0 +19910718,22.7,20.8,27.2,20.6,2.8 +19910719,25.8,21.9,31.7,22.2,3.5 +19910720,26.7,22.6,32.8,22.8,3.4 +19910721,27.6,22.0,34.4,21.7,1.9 +19910722,28.5,21.3,34.4,22.2,2.0 +19910723,29.4,21.6,35.0,23.3,1.8 +19910724,29.1,21.1,35.0,22.8,2.6 +19910725,25.6,20.7,31.7,20.6,3.5 +19910726,26.4,21.1,32.2,21.1,2.9 +19910727,25.9,21.4,32.2,22.2,2.5 +19910728,22.1,20.9,23.9,20.6,4.0 +19910729,23.6,21.0,30.0,20.6,2.7 +19910730,23.5,20.8,28.3,20.0,3.6 +19910731,25.0,21.7,29.4,21.7,2.4 +19910801,24.1,21.9,27.8,22.2,2.7 +19910802,23.2,20.8,27.8,20.6,4.3 +19910803,26.6,20.9,33.9,21.1,1.9 +19910804,27.2,20.6,33.9,20.6,2.0 +19910805,27.8,20.8,32.8,22.8,2.9 +19910806,27.2,22.6,34.4,23.3,2.4 +19910807,25.9,21.9,32.8,21.1,2.3 +19910808,26.6,22.4,32.8,22.2,2.1 +19910809,25.6,22.3,31.7,22.8,3.2 +19910810,24.6,21.3,32.8,21.1,2.7 +19910811,24.3,20.0,29.4,20.6,2.6 +19910812,21.7,20.1,25.6,20.0,3.5 +19910813,22.0,18.9,26.1,19.4,2.8 +19910814,21.5,20.6,22.8,20.6,1.8 +19910815,21.2,18.4,28.3,17.2,2.1 +19910816,23.2,18.2,30.0,16.7,1.9 +19910817,23.5,18.5,30.0,17.8,1.6 +19910818,23.6,19.2,31.1,17.8,1.8 +19910819,24.8,19.2,31.1,20.0,2.8 +19910820,23.3,17.1,27.2,18.3,3.2 +19910821,21.1,14.4,27.8,13.3,2.0 +19910822,22.3,16.5,28.3,17.8,2.8 +19910823,22.1,16.9,29.4,16.7,2.7 +19910824,23.7,19.0,28.9,20.0,3.8 +19910825,22.4,21.2,25.6,21.1,4.0 +19910826,21.3,20.4,22.2,20.6,4.4 +19910827,23.7,20.4,30.0,20.6,2.8 +19910828,24.9,21.6,30.6,21.1,2.2 +19910829,25.4,22.1,30.6,22.2,2.4 +19910830,24.9,21.4,31.1,20.6,1.9 +19910831,25.2,20.2,32.2,19.4,2.4 +19910901,25.7,21.1,31.1,21.1,2.8 +19910902,21.6,16.3,25.0,18.9,5.5 +19910903,20.4,15.5,25.6,16.7,3.3 +19910904,21.3,16.7,28.9,15.6,2.1 +19910905,23.8,18.3,30.0,18.3,2.6 +19910906,23.7,19.7,31.1,18.3,1.9 +19910907,23.0,20.0,29.4,19.4,3.0 +19910908,23.7,19.4,28.3,20.6,3.0 +19910909,21.9,16.1,29.4,16.7,2.3 +19910910,21.1,14.8,29.4,13.9,1.6 +19910911,24.5,19.1,31.7,18.9,2.2 +19910912,25.4,19.4,32.2,20.0,2.2 +19910913,24.3,19.9,32.2,19.4,1.6 +19910914,26.2,21.0,33.9,20.6,2.0 +19910915,26.6,21.3,34.4,21.1,1.6 +19910916,26.4,20.8,34.4,20.6,1.9 +19910917,26.9,22.3,33.3,22.2,2.4 +19910918,24.2,21.7,27.8,21.1,2.6 +19910919,24.9,21.6,30.0,21.7,3.3 +19910920,18.6,10.9,22.8,15.0,5.2 +19910921,15.2,8.1,22.2,8.9,3.3 +19910922,14.8,8.5,22.8,8.9,3.0 +19910923,17.9,11.3,28.3,10.0,1.4 +19910924,19.4,15.7,25.6,15.6,2.3 +19910925,18.2,17.2,21.1,17.2,1.7 +19910926,18.1,11.6,23.9,10.6,2.4 +19910927,15.8,7.2,22.8,10.0,3.8 +19910928,14.9,7.0,23.9,7.8,2.5 +19910929,16.0,8.7,25.6,8.3,1.6 +19910930,17.9,11.7,27.8,11.1,1.9 +19911001,18.7,12.8,26.1,12.2,2.4 +19911002,18.8,15.6,22.8,16.1,3.7 +19911003,19.7,15.3,26.7,12.8,2.3 +19911004,20.7,15.7,27.8,14.4,2.5 +19911005,22.1,18.6,27.8,18.9,3.5 +19911006,17.1,9.7,23.3,11.7,4.2 +19911007,11.2,-2.1,18.9,5.6,4.0 +19911008,10.9,0.8,20.0,3.9,2.9 +19911009,11.9,4.6,22.2,4.4,2.0 +19911010,15.1,8.8,23.9,7.8,2.2 +19911011,15.6,8.6,23.9,7.8,2.4 +19911012,16.7,4.6,23.9,8.3,3.5 +19911013,14.2,3.0,21.7,7.8,3.1 +19911014,12.3,4.4,21.7,5.0,2.2 +19911015,13.8,11.2,17.2,10.6,2.5 +19911016,13.3,6.2,17.8,10.0,3.5 +19911017,11.2,0.2,22.2,3.3,2.2 +19911018,13.7,3.1,26.7,3.3,1.7 +19911019,16.5,6.5,28.9,6.7,2.2 +19911020,15.6,8.1,20.6,11.1,4.8 +19911021,11.1,7.1,16.1,7.8,2.4 +19911022,15.9,11.7,23.9,10.0,1.8 +19911023,17.3,13.6,23.9,12.8,1.4 +19911024,19.4,16.2,26.1,14.4,2.5 +19911025,19.0,14.8,25.6,14.4,2.8 +19911026,18.9,13.2,27.2,12.8,3.0 +19911027,20.0,13.8,27.2,14.4,2.0 +19911028,19.8,14.1,29.4,13.3,1.6 +19911029,17.4,8.1,21.7,12.2,5.2 +19911030,12.0,2.8,21.7,5.0,2.4 +19911031,17.5,6.1,26.7,11.1,2.1 +19911101,11.7,6.6,15.0,8.3,2.6 +19911102,13.1,8.5,18.9,8.9,3.1 +19911103,7.8,2.1,12.8,2.8,2.2 +19911104,4.7,-3.3,11.1,-1.7,2.7 +19911105,2.5,-7.7,9.4,-2.2,3.0 +19911106,3.3,-4.4,13.3,-5.0,1.5 +19911107,6.6,-3.0,17.2,-0.6,1.2 +19911108,8.1,-1.7,10.0,6.1,4.0 +19911109,5.1,-0.4,6.7,3.3,6.0 +19911110,5.4,3.8,8.3,3.9,3.4 +19911111,8.7,-3.7,15.6,5.0,5.6 +19911112,6.0,-4.6,13.9,-1.7,2.4 +19911113,8.2,-1.6,17.2,-0.6,2.9 +19911114,9.7,1.6,20.0,2.8,1.8 +19911115,12.4,4.6,22.2,4.4,2.4 +19911116,16.3,9.2,26.1,8.3,2.4 +19911117,14.0,10.1,17.2,10.0,3.1 +19911118,10.4,3.6,13.3,7.2,3.1 +19911119,12.2,7.5,17.2,8.9,2.9 +19911120,16.5,13.6,23.3,12.8,2.8 +19911121,19.7,16.8,23.3,17.2,4.1 +19911122,18.4,14.2,20.6,13.9,5.8 +19911123,11.6,6.1,20.6,5.0,2.7 +19911124,9.1,-1.5,12.2,4.4,5.7 +19911125,2.0,-7.7,10.0,-4.4,1.7 +19911126,1.5,-9.5,10.0,-5.6,1.7 +19911127,1.6,-7.7,10.0,-3.9,2.0 +19911128,5.2,-5.1,17.8,-2.2,1.4 +19911129,10.4,1.2,21.7,3.3,1.2 +19911130,16.0,13.5,22.2,12.2,2.2 +19911201,19.2,18.5,21.7,14.4,4.6 +19911202,21.0,18.7,22.8,19.4,6.3 +19911203,17.7,15.7,21.1,11.1,6.1 +19911204,4.9,-4.9,10.0,1.1,4.2 +19911205,0.8,-10.3,7.8,-4.4,2.8 +19911206,4.9,-5.5,14.4,-0.6,2.0 +19911207,7.3,-1.6,17.8,0.0,3.1 +19911208,9.9,1.2,20.6,2.2,2.1 +19911209,15.7,11.7,19.4,11.7,5.2 +19911210,13.6,4.8,17.2,7.2,3.8 +19911211,8.3,1.0,17.2,1.1,1.6 +19911212,8.7,5.1,13.9,3.9,0.8 +19911213,13.2,10.3,16.1,11.1,2.1 +19911214,15.9,10.7,20.6,11.7,4.4 +19911215,6.2,-11.7,13.3,0.0,5.5 +19911216,3.7,-14.4,8.9,-2.2,3.4 +19911217,4.6,-7.9,15.0,-1.1,5.2 +19911218,7.1,-6.1,13.3,-1.1,3.7 +19911219,0.6,-14.1,6.1,-6.1,4.8 +19911220,0.1,-16.2,8.9,-6.1,2.2 +19911221,7.3,-7.8,16.1,0.6,3.9 +19911222,8.7,4.3,17.8,2.2,1.1 +19911223,13.5,11.8,15.6,11.7,4.1 +19911224,10.2,5.8,15.0,6.7,4.2 +19911225,4.4,-3.2,12.8,-1.7,2.3 +19911226,3.9,-3.8,10.0,-0.6,3.3 +19911227,8.9,-0.2,13.9,6.1,4.5 +19911228,5.2,1.6,11.1,2.8,6.7 +19911229,7.7,5.5,15.0,4.4,3.2 +19911230,8.1,0.9,12.8,4.4,3.3 +19911231,4.7,0.4,6.7,1.7,3.9 +19920101,2.6,-2.2,7.2,-0.6,4.9 +19920102,8.4,4.2,13.9,4.4,5.2 +19920103,9.8,7.2,13.9,7.8,3.9 +19920104,11.6,7.6,16.7,9.4,3.8 +19920105,11.7,4.1,17.2,5.0,3.7 +19920106,9.3,2.2,15.0,6.1,2.9 +19920107,5.9,-2.3,15.0,-1.7,1.3 +19920108,5.8,-0.4,13.9,-1.1,1.1 +19920109,9.1,6.5,12.2,7.2,1.9 +19920110,8.4,4.4,11.7,5.0,4.3 +19920111,5.1,-7.0,13.3,-2.2,4.8 +19920112,6.1,-2.9,12.8,0.0,2.4 +19920113,8.6,4.6,9.4,6.7,1.7 +19920114,10.3,4.2,15.6,5.6,6.4 +19920115,1.4,-6.9,5.0,-1.7,3.0 +19920116,-0.3,-15.9,3.9,-6.1,4.9 +19920117,0.7,-15.7,10.6,-5.0,5.9 +19920118,3.3,-9.5,10.0,-3.9,2.7 +19920119,3.9,-10.2,7.2,-0.6,2.5 +19920120,1.9,-7.1,15.6,-5.6,2.3 +19920121,6.5,-4.8,17.2,-1.7,2.1 +19920122,7.6,-1.9,17.2,0.6,2.1 +19920123,10.2,4.2,15.0,6.1,4.3 +19920124,5.4,-4.4,10.0,0.6,5.7 +19920125,1.6,-8.9,12.2,-6.7,3.4 +19920126,8.1,-3.6,13.3,1.1,3.5 +19920127,4.9,-0.2,7.8,1.7,2.5 +19920128,8.2,5.2,13.9,5.6,1.5 +19920129,7.9,4.3,14.4,2.8,1.2 +19920130,9.1,4.9,15.0,4.4,2.2 +19920131,9.3,1.1,17.8,2.2,2.8 +19920201,7.4,-6.3,12.8,0.6,4.9 +19920202,4.9,-9.9,16.7,-3.9,2.4 +19920203,10.0,-8.1,20.0,2.2,2.1 +19920204,10.4,-3.6,21.7,1.1,1.9 +19920205,10.8,-1.9,13.3,7.2,3.9 +19920206,7.7,-8.7,12.8,3.3,7.0 +19920207,6.3,-7.9,15.0,-0.6,2.9 +19920208,4.5,-8.3,10.0,-2.8,3.4 +19920209,1.0,-10.7,9.4,-6.7,1.8 +19920210,1.5,-10.1,7.8,-2.8,4.2 +19920211,7.8,-5.8,16.7,1.7,1.9 +19920212,7.7,-1.3,16.1,1.1,2.4 +19920213,6.7,1.2,11.7,3.3,3.3 +19920214,8.4,6.5,15.0,5.0,3.2 +19920215,12.2,11.5,15.0,10.6,2.3 +19920216,14.4,9.7,18.9,11.7,4.4 +19920217,6.7,1.1,12.2,4.4,4.2 +19920218,5.4,5.1,7.2,4.4,3.7 +19920219,10.4,6.4,18.9,6.7,3.1 +19920220,9.0,-0.1,15.0,0.0,2.1 +19920221,7.9,0.6,18.9,0.6,2.5 +19920222,9.6,3.2,20.0,1.7,1.7 +19920223,12.6,11.6,15.0,11.7,2.9 +19920224,14.8,12.8,21.1,12.2,2.7 +19920225,12.5,11.9,15.6,10.0,3.6 +19920226,11.2,9.4,16.1,9.4,3.3 +19920227,7.6,0.9,15.0,0.6,2.8 +19920228,10.6,2.4,18.3,3.9,4.7 +19920229,14.1,0.3,17.8,10.0,5.4 +19920301,8.2,-3.7,18.3,-0.6,2.6 +19920302,13.1,0.1,25.6,3.9,2.4 +19920303,15.8,2.3,26.1,6.1,1.7 +19920304,16.7,5.9,25.6,12.2,3.1 +19920305,13.5,9.8,18.9,10.6,4.0 +19920306,13.9,13.7,15.6,13.3,3.1 +19920307,16.8,13.8,23.9,12.8,3.3 +19920308,16.9,8.8,23.9,10.0,3.3 +19920309,15.6,7.3,23.3,7.8,3.0 +19920310,16.7,11.7,19.4,13.9,4.7 +19920311,5.4,-3.7,16.1,-1.7,5.1 +19920312,3.6,-6.8,12.2,-2.2,3.2 +19920313,7.4,-2.4,11.1,0.0,3.7 +19920314,3.6,-4.3,15.0,-3.9,2.9 +19920315,8.2,-3.3,16.1,-1.1,4.7 +19920316,4.7,-8.6,12.2,0.0,5.0 +19920317,9.9,-3.6,21.7,1.7,5.1 +19920318,14.6,6.2,18.3,11.1,4.9 +19920319,13.0,11.7,17.8,11.1,4.6 +19920320,8.6,5.7,14.4,5.0,3.7 +19920321,8.1,-2.5,15.6,-1.1,3.5 +19920322,6.9,2.8,10.6,2.8,4.0 +19920323,9.4,4.4,11.1,6.1,4.9 +19920324,5.7,-3.6,13.3,-0.6,3.0 +19920325,4.4,1.1,8.3,0.0,2.9 +19920326,9.9,4.3,18.3,5.0,4.3 +19920327,11.6,0.9,15.6,6.1,4.9 +19920328,9.6,-2.6,17.2,4.4,5.1 +19920329,10.8,-1.8,17.2,3.9,2.4 +19920330,11.6,8.0,14.4,8.9,2.5 +19920331,13.0,6.4,19.4,8.9,4.3 +19920401,10.4,0.4,18.9,2.8,3.6 +19920402,7.0,-3.4,13.9,2.2,4.6 +19920403,4.8,-6.9,11.7,-1.7,4.8 +19920404,9.1,-2.9,20.0,0.0,5.2 +19920405,9.3,-2.3,16.1,0.6,4.0 +19920406,8.9,-0.4,17.2,2.2,2.4 +19920407,11.2,8.2,13.9,10.0,1.7 +19920408,14.4,9.4,24.4,6.7,2.3 +19920409,17.4,9.6,25.0,9.4,3.3 +19920410,19.1,11.8,27.2,10.6,3.9 +19920411,20.1,13.9,26.1,15.0,3.1 +19920412,18.6,14.9,27.8,11.7,2.9 +19920413,16.7,9.1,20.6,13.9,4.9 +19920414,14.2,5.6,24.4,4.4,3.0 +19920415,20.4,13.5,28.9,11.7,3.0 +19920416,20.1,14.5,28.9,13.3,3.7 +19920417,21.3,11.9,27.8,15.0,5.2 +19920418,20.4,12.8,27.2,13.3,3.6 +19920419,19.4,15.2,24.4,15.6,2.8 +19920420,19.2,17.6,21.7,17.8,4.0 +19920421,18.3,17.7,21.7,16.1,3.8 +19920422,18.3,11.5,25.6,11.7,3.4 +19920423,17.9,6.9,26.7,7.8,2.5 +19920424,19.1,10.9,28.3,10.0,3.5 +19920425,19.1,10.1,26.1,14.4,3.6 +19920426,11.9,1.2,15.6,8.9,4.8 +19920427,10.1,1.7,14.4,3.9,2.8 +19920428,10.5,2.2,15.6,6.1,3.5 +19920429,10.3,0.6,19.4,1.1,2.6 +19920430,15.4,6.8,22.2,10.0,3.4 +19920501,17.4,9.8,26.1,8.3,3.4 +19920502,20.6,12.3,28.9,11.7,4.7 +19920503,22.6,12.3,27.8,15.6,5.4 +19920504,19.3,1.2,23.9,14.4,5.1 +19920505,14.3,5.3,20.0,7.8,4.1 +19920506,9.1,7.7,11.1,7.8,4.5 +19920507,6.6,5.0,7.8,4.4,7.8 +19920508,7.8,6.7,9.4,7.2,4.0 +19920509,12.3,8.0,21.7,7.2,4.2 +19920510,18.1,10.2,27.2,9.4,2.2 +19920511,19.8,11.2,26.7,12.2,3.3 +19920512,19.8,13.4,26.7,12.8,2.7 +19920513,19.0,15.2,25.0,14.4,2.7 +19920514,18.9,14.4,26.7,12.2,2.4 +19920515,20.9,15.7,27.8,14.4,2.4 +19920516,21.4,15.4,27.2,13.9,2.2 +19920517,21.4,16.1,28.3,14.4,1.6 +19920518,21.7,17.4,28.9,16.7,2.3 +19920519,21.4,18.4,26.1,18.9,3.5 +19920520,18.5,13.6,22.2,15.6,5.5 +19920521,18.3,11.0,25.6,13.3,5.7 +19920522,18.7,5.4,27.8,10.6,3.5 +19920523,18.9,7.1,30.0,7.8,1.7 +19920524,21.9,10.3,30.6,12.2,2.9 +19920525,21.3,15.6,27.8,16.7,3.0 +19920526,17.7,14.8,22.8,14.4,3.8 +19920527,16.9,12.6,21.7,13.9,2.8 +19920528,15.5,11.9,21.1,12.8,2.8 +19920529,11.9,11.2,15.0,11.1,6.9 +19920530,13.8,12.6,19.4,11.1,4.9 +19920531,18.6,13.2,24.4,13.9,2.9 +19920601,17.8,10.0,21.7,12.2,3.9 +19920602,18.3,12.1,25.0,12.2,2.7 +19920603,17.9,14.7,22.8,13.9,2.8 +19920604,19.7,17.8,25.0,17.2,4.6 +19920605,20.8,15.4,26.7,15.6,3.6 +19920606,22.2,16.1,29.4,15.0,2.6 +19920607,24.2,18.0,30.0,17.8,3.5 +19920608,24.8,20.2,31.1,20.0,2.9 +19920609,22.2,21.3,24.4,20.6,4.1 +19920610,22.2,20.8,25.0,20.6,3.7 +19920611,19.4,18.1,21.1,18.3,4.7 +19920612,16.4,14.9,17.8,15.6,4.9 +19920613,18.1,15.9,20.6,15.6,3.4 +19920614,19.9,17.6,25.6,17.2,3.0 +19920615,22.6,19.4,28.3,18.9,1.9 +19920616,22.3,18.9,28.3,18.3,3.5 +19920617,22.6,18.8,25.0,20.0,3.1 +19920618,21.7,17.8,26.1,18.9,3.2 +19920619,24.4,18.6,30.6,19.4,2.8 +19920620,23.5,16.2,30.0,17.8,3.2 +19920621,22.6,16.4,27.2,17.2,2.8 +19920622,18.2,10.4,24.4,11.7,3.5 +19920623,20.4,14.9,26.7,15.6,3.6 +19920624,23.5,17.1,30.6,18.3,3.9 +19920625,25.1,17.6,31.7,18.3,3.9 +19920626,25.5,20.3,32.2,20.0,2.7 +19920627,24.4,19.3,29.4,20.0,2.6 +19920628,23.5,16.7,28.3,18.9,4.4 +19920629,23.8,20.5,28.9,20.6,2.8 +19920630,23.7,20.7,29.4,20.0,2.4 +19920701,23.4,20.8,28.3,20.6,4.4 +19920702,23.9,21.4,27.8,21.7,4.6 +19920703,24.6,21.9,31.7,21.1,2.9 +19920704,25.6,18.3,31.7,20.0,3.5 +19920705,24.0,14.9,31.1,15.6,3.1 +19920706,25.3,18.1,30.6,19.4,4.3 +19920707,24.8,19.0,31.1,18.9,2.9 +19920708,27.2,19.9,33.9,20.0,3.5 +19920709,28.3,18.4,35.6,19.4,4.3 +19920710,28.4,19.6,36.1,20.0,2.6 +19920711,28.9,19.4,35.0,21.7,3.1 +19920712,28.7,18.8,36.1,20.6,2.7 +19920713,29.1,19.1,36.7,22.2,4.4 +19920714,28.8,20.5,33.9,23.3,5.5 +19920715,26.6,19.9,31.1,22.2,6.9 +19920716,25.7,19.6,31.1,21.7,5.8 +19920717,25.4,20.4,30.0,22.2,6.2 +19920718,24.1,19.7,31.1,19.4,4.6 +19920719,24.6,19.3,32.2,18.9,2.5 +19920720,26.1,18.9,33.9,20.0,2.1 +19920721,26.0,19.7,33.3,19.4,2.6 +19920722,23.8,20.9,30.6,20.0,3.0 +19920723,23.9,21.3,29.4,21.1,3.7 +19920724,25.2,22.1,29.4,22.8,4.6 +19920725,26.0,21.8,33.3,21.7,3.1 +19920726,26.3,22.2,32.8,21.7,2.8 +19920727,26.9,21.8,32.8,22.8,5.0 +19920728,26.6,19.1,31.1,22.8,3.7 +19920729,25.4,17.4,32.2,20.0,3.1 +19920730,25.8,18.8,32.8,18.3,2.2 +19920731,26.6,20.3,32.2,21.7,5.2 +19920801,24.2,17.6,30.0,19.4,3.2 +19920802,22.9,17.6,29.4,18.3,3.4 +19920803,24.1,17.4,31.1,18.3,2.7 +19920804,23.9,17.5,32.2,17.2,2.0 +19920805,23.9,17.0,28.9,19.4,4.6 +19920806,21.6,17.8,25.0,19.4,4.6 +19920807,20.7,18.5,23.9,18.3,4.5 +19920808,23.3,19.7,30.6,20.0,3.4 +19920809,25.6,20.1,32.8,19.4,2.4 +19920810,26.5,19.0,33.9,18.3,2.6 +19920811,26.8,19.5,35.0,20.0,3.0 +19920812,25.5,19.4,32.8,20.6,2.7 +19920813,20.8,20.6,21.7,19.4,2.8 +19920814,20.6,17.8,25.6,17.8,4.6 +19920815,21.4,18.1,25.6,18.9,3.1 +19920816,21.7,17.8,26.1,17.8,3.2 +19920817,21.9,19.2,25.0,20.0,3.8 +19920818,22.4,18.6,28.9,18.3,2.6 +19920819,22.7,18.0,28.9,17.2,2.4 +19920820,22.2,19.3,28.3,18.3,2.8 +19920821,21.6,19.3,25.0,20.0,3.9 +19920822,21.2,19.7,23.3,20.0,3.7 +19920823,20.6,19.2,22.8,19.4,4.6 +19920824,22.8,19.7,27.2,20.0,4.0 +19920825,23.7,19.7,30.0,18.9,2.7 +19920826,24.7,20.4,30.6,20.0,2.4 +19920827,24.1,21.5,28.3,21.1,3.3 +19920828,23.9,19.2,28.3,20.6,6.7 +19920829,19.6,13.5,25.6,12.2,2.3 +19920830,20.1,14.8,28.3,13.9,2.2 +19920831,21.9,16.3,29.4,15.0,2.1 +19920901,23.1,17.9,30.0,16.7,2.0 +19920902,22.9,19.2,28.9,18.9,2.7 +19920903,23.9,20.3,28.9,21.7,4.5 +19920904,22.1,19.5,28.9,17.8,2.2 +19920905,21.8,20.7,26.7,20.0,2.4 +19920906,22.6,21.0,27.8,20.6,2.1 +19920907,22.3,19.8,28.3,17.8,2.3 +19920908,23.7,20.3,30.6,18.9,2.2 +19920909,24.0,20.3,30.6,18.9,2.9 +19920910,23.8,20.6,29.4,19.4,2.8 +19920911,22.3,19.0,28.9,17.2,3.1 +19920912,21.3,15.5,25.0,17.8,5.0 +19920913,19.7,15.4,25.0,16.1,3.5 +19920914,19.2,15.1,25.6,13.9,3.4 +19920915,19.2,14.3,26.7,13.9,4.0 +19920916,19.4,14.0,26.7,13.3,3.1 +19920917,21.0,15.9,29.4,15.0,2.3 +19920918,21.6,18.0,28.3,16.7,2.8 +19920919,23.3,20.4,27.8,19.4,3.3 +19920920,21.0,19.6,23.9,18.3,3.9 +19920921,21.5,19.6,27.2,18.9,4.2 +19920922,23.3,20.7,29.4,19.4,3.4 +19920923,20.8,19.3,24.4,18.3,4.5 +19920924,14.6,11.0,18.9,10.0,6.5 +19920925,14.9,10.8,20.0,11.7,6.1 +19920926,16.9,14.7,21.7,14.4,3.7 +19920927,18.5,18.3,20.6,17.2,2.9 +19920928,20.8,19.8,23.9,19.4,3.8 +19920929,19.7,14.3,24.4,13.3,4.9 +19920930,14.0,7.2,20.6,8.9,4.1 +19921001,12.6,7.2,19.4,7.2,3.0 +19921002,12.8,7.7,21.1,6.7,2.3 +19921003,13.6,9.5,22.2,7.2,1.6 +19921004,14.5,13.8,16.1,13.3,7.6 +19921005,14.0,11.8,15.6,13.3,7.8 +19921006,10.9,5.8,17.8,5.6,4.7 +19921007,11.4,7.3,20.0,5.6,4.0 +19921008,13.7,12.8,16.7,11.1,4.1 +19921009,19.7,16.0,24.4,16.7,4.9 +19921010,14.2,6.4,22.2,5.6,3.0 +19921011,15.3,9.2,20.6,11.7,4.1 +19921012,12.9,4.3,18.9,5.0,4.2 +19921013,13.9,8.1,24.4,5.6,2.4 +19921014,16.8,10.6,26.7,8.3,3.3 +19921015,17.3,12.9,25.0,11.7,3.2 +19921016,17.4,13.8,25.0,11.7,3.3 +19921017,15.2,10.2,19.4,10.0,3.9 +19921018,9.6,3.0,13.9,6.1,3.9 +19921019,7.9,-0.3,15.0,2.2,3.2 +19921020,6.2,-2.1,13.3,0.6,3.3 +19921021,13.5,5.1,22.8,7.8,3.7 +19921022,14.8,9.9,22.2,8.9,2.8 +19921023,12.8,8.7,19.4,7.8,2.8 +19921024,14.6,9.6,23.9,8.9,2.9 +19921025,17.2,7.3,22.2,12.8,3.7 +19921026,12.7,3.6,22.2,5.0,3.0 +19921027,13.3,7.5,22.2,5.0,2.3 +19921028,15.7,14.8,17.8,13.3,2.1 +19921029,15.4,13.4,22.2,10.6,2.4 +19921030,15.9,13.6,22.2,10.6,2.0 +19921031,17.3,13.9,22.8,10.0,3.4 +19921101,13.6,12.4,17.8,11.7,2.8 +19921102,16.1,15.3,19.4,13.3,5.4 +19921103,15.9,11.2,22.2,8.9,3.4 +19921104,14.2,12.9,17.2,12.8,2.5 +19921105,16.4,15.8,17.8,15.0,4.5 +19921106,7.2,2.4,13.9,1.1,2.9 +19921107,6.4,0.1,10.0,4.4,4.1 +19921108,5.1,0.0,11.1,0.0,2.7 +19921109,4.4,-1.1,11.7,-0.6,3.6 +19921110,5.7,-0.9,13.9,0.0,3.6 +19921111,11.5,4.4,16.1,8.9,3.1 +19921112,13.3,12.1,17.8,11.1,3.5 +19921113,12.5,2.4,19.4,5.6,5.7 +19921114,4.6,-3.9,12.2,-1.7,2.7 +19921115,6.3,-2.2,13.3,-0.6,3.4 +19921116,2.6,-5.7,8.9,-3.3,3.5 +19921117,4.2,-2.1,15.6,-2.2,2.2 +19921118,9.6,1.6,23.3,0.6,2.1 +19921119,11.8,3.1,21.7,3.9,2.3 +19921120,8.6,5.4,10.6,7.2,6.0 +19921121,8.7,8.2,11.7,6.7,6.2 +19921122,15.8,15.6,20.0,11.7,4.0 +19921123,15.5,10.9,20.0,10.0,6.1 +19921124,10.7,8.6,12.2,9.4,4.9 +19921125,10.6,9.7,12.2,10.0,4.1 +19921126,13.3,11.7,17.2,11.1,3.5 +19921127,8.1,5.1,12.8,3.3,3.0 +19921128,7.8,4.9,10.0,6.7,3.6 +19921129,6.2,3.0,12.2,0.0,2.1 +19921130,4.3,-1.1,12.8,-2.2,2.4 +19921201,7.2,-2.3,10.0,2.2,4.4 +19921202,4.8,-3.2,11.1,-0.6,4.4 +19921203,3.4,-6.3,11.7,-4.4,3.0 +19921204,6.4,-3.0,11.7,2.2,4.2 +19921205,5.6,-4.6,7.8,2.2,6.4 +19921206,-1.6,-11.8,2.8,-6.7,3.5 +19921207,3.6,0.2,11.7,-0.6,4.2 +19921208,3.4,-1.8,5.0,0.6,3.4 +19921209,-0.3,-5.2,3.9,-3.9,4.1 +19921210,1.8,-0.9,4.4,0.0,4.8 +19921211,4.4,-1.1,9.4,0.0,5.0 +19921212,6.3,-2.0,11.7,2.2,4.9 +19921213,3.3,-1.9,12.2,-2.8,2.2 +19921214,3.6,-0.5,8.3,0.0,3.7 +19921215,1.8,-0.3,4.4,-1.1,2.9 +19921216,4.5,2.7,7.2,3.3,3.0 +19921217,12.3,10.9,17.2,7.8,4.2 +19921218,7.3,1.2,13.3,0.6,3.2 +19921219,5.3,2.2,12.2,0.0,3.1 +19921220,9.9,9.2,13.9,8.3,2.5 +19921221,7.5,2.3,10.6,5.0,3.3 +19921222,6.1,5.4,10.0,3.9,2.7 +19921223,12.6,11.7,18.9,8.3,5.4 +19921224,8.4,-0.9,15.0,1.7,4.7 +19921225,-0.2,-10.0,5.6,-6.1,3.2 +19921226,5.8,-4.1,8.9,2.8,3.9 +19921227,1.0,-5.8,4.4,-0.6,5.5 +19921228,2.7,1.4,10.6,-0.6,4.2 +19921229,8.6,6.7,17.8,1.1,3.2 +19921230,9.1,7.8,17.2,4.4,2.8 +19921231,10.4,8.8,16.1,7.8,4.5 +19930101,12.9,5.2,20.0,7.8,4.4 +19930102,7.3,-3.2,12.2,3.3,4.7 +19930103,5.9,-2.1,8.9,4.4,4.1 +19930104,9.0,3.2,15.0,5.0,3.3 +19930105,15.4,13.2,20.0,11.7,3.5 +19930106,11.7,6.4,13.3,10.0,3.5 +19930107,9.4,8.4,10.6,8.9,3.0 +19930108,8.8,8.3,9.4,8.3,5.4 +19930109,6.7,5.3,8.9,5.0,7.5 +19930110,3.6,2.0,4.4,2.8,5.9 +19930111,3.8,2.6,5.6,3.3,4.9 +19930112,6.4,6.0,8.3,5.6,4.3 +19930113,10.3,6.3,17.2,7.8,4.9 +19930114,5.2,-3.3,11.1,-2.8,2.5 +19930115,4.1,-0.8,8.3,0.0,2.6 +19930116,6.1,2.8,10.6,3.3,3.3 +19930117,5.8,1.0,13.9,-1.7,3.2 +19930118,6.2,0.6,10.6,1.7,2.3 +19930119,5.2,1.8,7.8,1.7,4.7 +19930120,2.7,-2.2,6.7,1.1,5.8 +19930121,3.3,1.9,5.6,1.7,5.8 +19930122,8.3,4.0,17.8,4.4,5.0 +19930123,7.6,-3.7,16.7,0.0,3.4 +19930124,6.2,2.6,11.7,0.6,3.0 +19930125,3.5,-5.9,7.8,-2.2,5.4 +19930126,1.3,-9.6,5.0,-1.1,6.1 +19930127,3.2,-8.0,13.9,-5.0,4.2 +19930128,5.7,-5.6,15.6,-2.2,4.1 +19930129,10.3,-3.2,16.7,6.7,4.4 +19930130,4.8,-10.0,13.3,-3.3,4.6 +19930131,5.3,-7.2,18.9,-4.4,4.6 +19930201,11.2,-3.2,14.4,5.0,6.7 +19930202,3.9,-11.7,9.4,-3.9,4.1 +19930203,2.1,-12.7,12.2,-6.1,3.5 +19930204,6.7,-9.9,16.1,-1.1,4.1 +19930205,6.6,-9.7,13.9,0.6,3.7 +19930206,10.0,-0.4,17.8,5.6,2.6 +19930207,4.0,-1.1,8.9,0.6,5.9 +19930208,10.2,1.9,21.1,4.4,4.2 +19930209,5.9,4.0,14.4,2.8,3.6 +19930210,6.6,5.3,8.9,5.6,2.6 +19930211,8.1,6.7,12.2,3.9,3.1 +19930212,10.7,9.4,13.3,7.8,5.0 +19930213,8.5,3.3,13.9,4.4,4.6 +19930214,4.2,-1.9,9.4,-2.2,3.1 +19930215,1.4,-4.2,6.1,-3.3,3.3 +19930216,5.1,1.7,11.1,2.8,5.0 +19930217,5.2,-2.1,10.0,-1.1,4.1 +19930218,1.7,-6.5,5.6,-2.8,3.8 +19930219,-0.9,-17.6,5.6,-6.7,5.6 +19930220,3.8,-7.7,7.2,1.7,5.3 +19930221,5.8,4.6,13.3,4.4,3.3 +19930222,14.2,4.3,18.3,10.0,7.4 +19930223,6.4,-9.7,11.1,-1.7,5.4 +19930224,2.1,-11.1,8.9,-6.1,3.0 +19930225,0.2,-9.9,3.9,-1.7,3.9 +19930226,-0.3,-1.8,3.3,-1.7,5.2 +19930227,3.9,0.6,11.1,-1.1,2.4 +19930228,4.1,-5.2,10.6,-0.6,4.3 +19930301,4.1,-6.1,15.0,-4.4,2.9 +19930302,6.4,-1.0,10.0,1.7,3.1 +19930303,7.7,6.9,8.9,7.2,3.5 +19930304,9.9,6.3,13.3,7.8,7.8 +19930305,7.0,0.0,8.9,5.6,8.1 +19930306,4.3,-3.2,13.9,-3.3,3.3 +19930307,6.4,-2.9,15.0,-1.1,4.3 +19930308,10.2,1.6,19.4,2.2,6.7 +19930309,11.2,-2.9,18.9,1.7,3.7 +19930310,10.9,-0.2,22.8,1.1,5.5 +19930311,10.8,-4.1,19.4,3.3,5.1 +19930312,3.9,-4.4,7.2,-0.6,5.0 +19930313,0.3,-2.0,2.8,-2.2,10.3 +19930314,-3.1,-13.6,1.1,-6.7,6.7 +19930315,-2.7,-13.2,5.6,-11.1,3.3 +19930316,1.8,-7.2,7.2,-3.3,3.3 +19930317,6.9,3.5,13.3,3.3,4.2 +19930318,6.3,-2.6,10.0,0.6,6.0 +19930319,2.1,-11.5,8.9,-2.8,6.0 +19930320,4.8,-7.2,11.7,0.0,3.4 +19930321,11.4,1.0,20.0,6.1,2.9 +19930322,12.6,9.9,15.6,10.6,2.5 +19930323,14.1,13.4,16.7,12.2,4.6 +19930324,15.3,11.9,21.1,12.2,3.6 +19930325,14.4,9.1,20.6,8.9,4.4 +19930326,12.0,10.4,15.0,10.0,6.6 +19930327,9.8,8.9,11.7,8.9,5.9 +19930328,12.3,9.4,18.9,9.4,2.5 +19930329,13.8,6.6,22.8,6.1,2.6 +19930330,15.3,5.0,26.7,6.1,2.7 +19930331,15.9,8.3,20.0,11.7,3.4 +19930401,14.3,9.4,18.3,10.6,6.0 +19930402,9.6,2.2,14.4,5.6,5.4 +19930403,6.0,-3.1,16.7,-2.8,3.7 +19930404,10.2,-0.4,17.2,4.4,3.5 +19930405,8.6,5.2,13.3,3.9,6.7 +19930406,7.4,4.3,13.9,3.3,6.1 +19930407,11.9,3.9,18.3,8.3,3.8 +19930408,12.0,3.3,21.1,4.4,2.7 +19930409,12.1,6.7,16.1,6.7,3.5 +19930410,13.7,6.6,20.6,9.4,4.8 +19930411,14.1,2.6,25.0,5.0,4.4 +19930412,20.1,5.4,28.3,8.3,4.4 +19930413,17.9,2.9,25.0,8.9,3.2 +19930414,18.2,9.2,26.7,10.6,3.6 +19930415,18.1,12.7,22.2,12.2,4.9 +19930416,14.8,8.6,18.3,10.6,7.5 +19930417,11.9,-0.7,18.3,3.9,4.8 +19930418,12.2,-0.6,19.4,3.9,3.7 +19930419,13.2,3.1,21.7,4.4,4.6 +19930420,16.4,7.1,23.9,7.8,5.6 +19930421,16.9,8.8,20.6,13.9,6.1 +19930422,9.5,-4.5,15.0,5.6,7.8 +19930423,10.9,-2.7,20.6,1.1,4.4 +19930424,14.8,2.6,22.2,7.2,5.3 +19930425,16.8,8.1,24.4,9.4,6.0 +19930426,18.3,12.0,21.1,15.6,6.0 +19930427,12.4,0.2,21.1,2.2,4.3 +19930428,12.7,0.9,22.8,3.3,3.2 +19930429,15.4,3.7,25.0,5.6,3.1 +19930430,16.7,4.3,25.0,9.4,3.5 +19930501,19.1,8.8,25.6,12.2,3.0 +19930502,18.5,11.3,24.4,12.8,2.7 +19930503,18.6,13.6,21.7,13.9,3.5 +19930504,18.3,16.4,23.3,16.1,4.0 +19930505,21.4,17.1,27.2,17.8,3.1 +19930506,21.5,13.7,28.9,12.8,2.5 +19930507,21.4,15.2,28.3,16.1,2.9 +19930508,20.3,17.1,23.9,18.3,3.4 +19930509,20.6,15.0,27.2,13.9,2.9 +19930510,21.2,14.5,28.3,14.4,3.4 +19930511,21.3,14.8,28.3,15.0,3.4 +19930512,21.8,14.7,26.7,17.8,5.2 +19930513,19.1,14.9,23.9,13.9,4.6 +19930514,17.1,12.9,25.6,12.2,2.9 +19930515,19.4,12.8,26.1,12.2,3.9 +19930516,20.4,12.4,27.8,12.2,3.4 +19930517,21.6,14.7,28.3,13.9,2.8 +19930518,22.1,17.4,29.4,16.7,4.9 +19930519,20.0,16.8,26.1,16.7,3.6 +19930520,15.5,9.9,20.0,11.1,3.6 +19930521,11.2,6.8,17.8,5.0,2.4 +19930522,13.8,5.3,21.7,5.0,3.4 +19930523,15.2,7.4,23.9,6.7,3.1 +19930524,18.5,12.2,26.7,11.7,4.5 +19930525,20.5,15.6,25.6,16.7,3.9 +19930526,20.2,16.6,26.1,16.7,2.5 +19930527,20.7,13.8,27.2,16.1,3.5 +19930528,20.7,15.2,27.2,13.9,3.4 +19930529,22.9,16.4,30.6,18.3,3.6 +19930530,20.7,16.9,24.4,16.1,4.1 +19930531,20.1,18.1,25.6,17.8,3.1 +19930601,20.5,14.1,25.6,15.6,4.2 +19930602,19.1,11.4,26.1,12.2,4.1 +19930603,22.1,16.2,28.9,16.7,5.1 +19930604,24.7,18.2,30.6,18.3,5.1 +19930605,26.2,19.7,31.7,22.2,6.4 +19930606,20.7,12.8,27.8,11.7,2.6 +19930607,23.5,15.1,31.7,16.7,3.0 +19930608,27.2,19.2,33.9,21.1,4.3 +19930609,28.1,18.8,34.4,21.7,4.5 +19930610,27.6,17.4,34.4,19.4,3.6 +19930611,27.4,16.8,35.0,20.0,2.8 +19930612,25.6,18.8,31.7,19.4,4.1 +19930613,21.8,19.0,25.6,19.4,3.6 +19930614,20.3,17.1,25.6,17.2,4.5 +19930615,22.4,16.8,29.4,16.7,2.8 +19930616,24.2,18.6,30.0,19.4,2.8 +19930617,24.9,18.1,32.2,18.9,3.1 +19930618,26.0,18.3,32.8,19.4,3.5 +19930619,25.9,16.6,32.2,18.9,3.9 +19930620,24.9,15.8,31.7,18.3,3.7 +19930621,23.5,18.1,28.3,21.1,3.5 +19930622,24.4,18.2,32.2,18.3,3.8 +19930623,25.6,16.0,32.2,18.9,4.0 +19930624,25.7,17.7,31.7,20.0,3.9 +19930625,24.7,18.1,31.1,18.3,3.5 +19930626,23.5,19.6,30.6,18.3,2.9 +19930627,24.6,15.6,31.7,18.3,3.0 +19930628,25.7,14.7,33.3,19.4,2.8 +19930629,24.9,18.2,33.3,17.8,2.6 +19930630,24.6,18.9,32.8,18.3,2.3 +19930701,28.4,18.8,34.4,22.8,3.0 +19930702,27.9,20.8,35.0,21.7,3.3 +19930703,29.1,19.1,36.1,21.1,3.1 +19930704,29.8,18.8,37.2,21.7,2.9 +19930705,29.5,18.6,36.1,21.7,3.5 +19930706,29.4,17.6,36.7,21.7,3.3 +19930707,28.9,17.6,37.2,20.0,2.8 +19930708,28.8,19.1,36.1,22.2,3.0 +19930709,28.4,18.6,36.7,21.1,3.0 +19930710,28.9,18.6,36.7,21.1,2.2 +19930711,28.7,18.3,36.1,20.6,2.7 +19930712,29.1,17.4,36.7,20.6,3.0 +19930713,28.3,17.9,35.6,20.6,3.0 +19930714,29.1,17.9,35.6,22.8,4.5 +19930715,28.7,18.8,36.1,21.7,3.3 +19930716,26.4,20.4,33.9,21.1,2.8 +19930717,27.0,20.2,35.0,21.1,3.0 +19930718,28.3,21.4,35.0,22.2,2.8 +19930719,26.2,23.1,35.0,21.7,2.7 +19930720,28.3,21.6,35.0,22.8,2.5 +19930721,27.8,16.8,35.0,20.0,3.2 +19930722,28.6,19.6,35.6,22.2,2.3 +19930723,27.6,21.4,34.4,22.2,3.3 +19930724,26.7,22.4,33.3,21.7,2.6 +19930725,27.2,22.1,34.4,22.8,3.2 +19930726,25.8,21.9,32.8,20.0,3.2 +19930727,27.7,21.5,37.2,20.6,3.2 +19930728,29.3,20.3,37.8,21.7,2.7 +19930729,30.4,20.4,37.2,23.9,2.9 +19930730,27.6,13.8,34.4,21.7,4.6 +19930731,25.0,11.7,31.7,17.8,3.2 +19930801,25.2,13.3,33.9,16.7,2.6 +19930802,25.3,16.2,32.2,17.2,2.2 +19930803,24.8,20.4,32.8,20.6,4.1 +19930804,23.5,20.7,27.8,20.6,3.4 +19930805,25.2,19.1,30.6,18.9,2.9 +19930806,24.4,20.2,28.9,21.7,5.2 +19930807,22.7,20.2,26.1,20.0,3.5 +19930808,23.3,20.1,27.2,21.1,4.0 +19930809,22.9,18.5,29.4,18.3,3.7 +19930810,23.1,16.4,30.6,17.2,2.9 +19930811,23.3,16.7,31.7,16.7,2.4 +19930812,24.7,18.9,30.6,18.9,3.2 +19930813,23.7,21.6,26.7,20.6,2.1 +19930814,24.9,22.3,30.0,22.2,3.0 +19930815,26.5,20.3,32.8,20.6,3.2 +19930816,26.1,18.6,34.4,18.9,2.5 +19930817,27.3,20.3,36.7,20.0,2.8 +19930818,28.1,19.8,35.0,21.7,2.7 +19930819,27.2,19.8,33.9,21.1,3.0 +19930820,27.6,20.5,33.9,22.8,3.9 +19930821,24.6,20.7,32.8,19.4,2.7 +19930822,25.5,20.8,30.6,21.7,3.8 +19930823,25.3,20.9,30.6,22.2,2.9 +19930824,25.2,19.8,31.1,21.1,2.8 +19930825,25.8,19.6,32.8,20.0,2.0 +19930826,26.6,21.1,32.8,21.7,2.2 +19930827,25.9,20.6,33.3,20.6,2.7 +19930828,25.7,20.0,34.4,18.9,2.4 +19930829,26.8,19.3,34.4,20.0,2.4 +19930830,27.3,19.4,34.4,21.1,3.1 +19930831,26.4,20.8,35.0,20.6,2.6 +19930901,27.2,20.1,34.4,21.1,2.7 +19930902,25.7,21.6,30.6,22.2,3.0 +19930903,25.9,21.8,32.2,22.2,4.2 +19930904,23.8,22.2,27.8,22.2,3.9 +19930905,23.2,20.3,27.8,20.0,3.0 +19930906,23.6,19.6,30.0,18.9,2.5 +19930907,23.3,20.0,27.8,20.0,2.3 +19930908,21.7,17.9,30.0,15.6,1.9 +19930909,23.4,18.0,30.6,17.2,2.9 +19930910,23.8,16.9,28.3,18.3,3.9 +19930911,19.1,7.6,25.0,10.0,2.8 +19930912,17.8,10.8,27.8,10.0,2.7 +19930913,21.3,13.8,30.0,13.9,2.5 +19930914,22.8,16.3,31.1,16.1,3.0 +19930915,24.2,19.3,30.6,19.4,2.7 +19930916,24.1,20.3,30.6,20.0,2.6 +19930917,23.3,21.1,28.9,20.0,2.1 +19930918,24.6,19.2,31.1,20.0,2.4 +19930919,22.7,15.8,28.9,17.8,4.0 +19930920,20.1,18.3,23.9,18.3,4.0 +19930921,21.6,18.6,28.9,18.3,2.1 +19930922,20.7,13.9,28.3,12.2,1.4 +19930923,20.9,14.7,30.0,13.9,2.3 +19930924,22.8,16.4,30.0,16.7,2.3 +19930925,22.2,18.7,25.6,19.4,3.0 +19930926,22.8,18.2,30.0,16.7,4.0 +19930927,21.6,15.6,24.4,19.4,5.1 +19930928,13.9,5.0,23.3,5.0,2.6 +19930929,16.0,5.6,23.9,7.2,2.5 +19930930,14.1,1.1,18.9,9.4,3.9 +19931001,11.2,2.5,20.0,4.4,3.0 +19931002,14.4,6.2,26.1,5.0,2.8 +19931003,18.7,9.2,26.1,12.2,2.9 +19931004,16.8,6.2,26.7,8.3,3.4 +19931005,17.9,7.6,28.9,8.3,2.1 +19931006,17.1,12.1,21.1,12.8,4.3 +19931007,15.8,10.2,22.2,11.7,4.5 +19931008,19.9,11.1,26.7,16.1,3.2 +19931009,19.2,12.3,28.3,11.7,3.9 +19931010,20.4,13.6,25.0,14.4,3.9 +19931011,11.3,5.2,18.3,8.9,7.0 +19931012,11.5,6.1,20.0,6.1,2.8 +19931013,11.3,3.9,21.7,3.3,2.7 +19931014,14.0,7.8,21.1,10.0,2.6 +19931015,15.4,9.9,22.8,10.0,3.2 +19931016,15.7,11.9,18.3,13.3,4.3 +19931017,17.9,14.9,23.9,14.4,4.6 +19931018,19.3,15.2,27.8,12.8,3.1 +19931019,20.7,16.3,27.2,14.4,2.9 +19931020,21.4,17.6,27.2,16.7,3.3 +19931021,20.6,16.9,28.3,16.1,3.6 +19931022,12.2,8.6,18.3,9.4,3.8 +19931023,11.1,3.7,19.4,5.6,4.4 +19931024,11.3,1.6,19.4,5.0,3.4 +19931025,12.9,3.4,22.8,6.7,2.8 +19931026,16.1,7.1,21.7,12.2,3.8 +19931027,15.9,10.1,24.4,8.3,3.3 +19931028,13.9,1.8,19.4,7.2,3.6 +19931029,10.4,-2.3,15.6,4.4,3.9 +19931030,10.9,9.5,12.8,10.0,3.6 +19931031,7.1,3.0,12.8,3.9,3.1 +19931101,4.2,-4.7,10.6,-1.7,4.0 +19931102,3.6,-3.3,11.7,-2.8,2.2 +19931103,7.1,-0.1,13.3,1.7,3.4 +19931104,11.5,4.8,19.4,4.4,3.5 +19931105,15.4,14.4,18.9,12.8,4.0 +19931106,16.1,11.6,18.3,8.9,4.2 +19931107,3.9,-2.9,10.6,-2.8,2.0 +19931108,3.9,-1.8,13.3,-1.1,2.1 +19931109,5.3,-0.4,11.1,1.7,2.6 +19931110,9.3,1.5,17.2,2.8,2.0 +19931111,7.8,-0.6,17.2,-0.6,2.3 +19931112,8.9,-1.0,19.4,1.7,2.1 +19931113,12.6,5.6,21.1,6.1,1.7 +19931114,16.7,14.7,22.2,12.2,1.9 +19931115,19.7,16.7,26.1,16.1,3.4 +19931116,19.3,15.1,25.0,14.4,2.3 +19931117,19.8,16.9,22.8,16.7,4.5 +19931118,13.7,8.1,20.6,8.3,3.8 +19931119,11.4,8.0,13.9,8.9,3.4 +19931120,9.7,0.8,12.8,6.7,4.7 +19931121,4.9,-5.9,12.8,-0.6,2.9 +19931122,5.9,-3.4,17.8,-1.1,2.3 +19931123,9.0,0.4,18.9,2.2,2.8 +19931124,10.3,0.3,20.6,2.2,2.4 +19931125,11.9,1.0,17.8,7.8,4.9 +19931126,8.2,4.7,12.8,6.1,6.6 +19931127,8.3,6.9,12.2,6.7,5.8 +19931128,10.1,2.9,13.3,3.3,5.2 +19931129,4.7,-4.5,14.4,-3.3,1.9 +19931130,6.1,-2.1,13.3,1.1,3.7 +19931201,4.4,-2.9,9.4,0.0,4.4 +19931202,4.7,-2.4,11.7,0.0,3.4 +19931203,8.8,3.4,17.8,3.3,1.7 +19931204,11.7,9.7,14.4,10.6,1.2 +19931205,13.7,7.9,17.2,10.0,6.1 +19931206,7.4,1.3,17.2,0.0,3.0 +19931207,6.6,-1.7,11.7,0.0,2.9 +19931208,6.9,-0.1,16.7,1.7,1.7 +19931209,7.4,-0.4,16.1,1.1,2.4 +19931210,7.7,5.3,9.4,5.6,3.0 +19931211,5.5,-2.1,8.9,1.7,5.4 +19931212,2.8,-13.3,10.6,-1.1,5.6 +19931213,2.0,-9.7,9.4,-3.3,2.2 +19931214,3.7,-4.4,6.7,2.2,4.2 +19931215,5.2,2.7,10.6,2.8,4.4 +19931216,9.5,2.1,16.7,3.9,3.2 +19931217,5.4,2.0,10.0,2.2,3.0 +19931218,6.0,2.9,8.9,1.1,3.5 +19931219,5.8,0.8,11.7,0.0,3.1 +19931220,2.1,-0.4,5.0,0.0,3.1 +19931221,3.2,0.1,7.8,-0.6,3.4 +19931222,0.1,-4.7,3.9,-3.9,1.6 +19931223,2.1,-0.3,6.7,0.0,2.0 +19931224,1.1,-5.3,3.9,-1.1,2.8 +19931225,1.1,-4.8,6.7,-3.3,5.2 +19931226,0.6,-12.6,8.3,-5.6,6.4 +19931227,6.9,-4.1,16.1,0.6,5.7 +19931228,9.7,4.6,13.9,6.1,4.1 +19931229,3.1,2.8,10.6,0.0,3.8 +19931230,0.7,-10.6,4.4,-2.8,5.2 +19931231,-1.7,-9.8,8.3,-7.8,2.0 +19940101,-0.1,-7.1,8.3,-8.3,1.7 +19940102,4.8,-0.3,12.8,-6.1,2.3 +19940103,6.1,4.8,13.9,-3.3,5.0 +19940104,3.9,0.2,8.3,1.1,5.9 +19940105,2.4,-7.3,9.4,-3.9,4.5 +19940106,2.9,-3.2,10.6,-3.9,4.0 +19940107,9.1,5.8,14.4,6.1,2.8 +19940108,6.3,0.3,15.0,0.0,3.8 +19940109,-0.8,-13.8,10.0,-6.1,3.8 +19940110,-1.7,-10.5,5.6,-6.7,3.8 +19940111,0.9,-5.8,4.4,-6.7,3.8 +19940112,6.8,4.3,13.3,-0.6,3.7 +19940113,7.7,5.3,13.9,3.9,2.9 +19940114,5.1,-0.9,9.4,0.0,4.3 +19940115,-3.9,-17.3,8.3,-8.9,5.8 +19940116,-9.9,-20.2,-1.1,-14.4,3.9 +19940117,-5.0,-9.9,0.0,-14.4,3.2 +19940118,-0.4,-3.9,3.9,-7.2,3.8 +19940119,-10.4,-20.1,-4.4,-15.0,3.5 +19940120,-6.8,-14.7,0.0,-15.0,1.7 +19940121,-2.1,-9.3,3.9,-11.7,2.9 +19940122,0.9,-9.3,13.3,-8.3,1.7 +19940123,3.1,-3.6,13.3,-7.8,2.3 +19940124,9.4,0.9,18.3,4.4,2.9 +19940125,8.1,4.7,18.9,1.7,1.4 +19940126,10.7,7.4,15.0,1.7,2.8 +19940127,5.4,4.5,15.0,1.1,6.3 +19940128,5.6,4.3,13.9,1.1,5.3 +19940129,10.4,5.0,13.9,1.1,3.5 +19940130,5.6,2.8,13.3,3.3,3.8 +19940131,2.6,-1.0,6.7,1.1,3.2 +19940201,-0.2,-6.3,5.6,-6.7,2.4 +19940202,-1.2,-11.2,5.6,-7.8,2.9 +19940203,1.8,-9.9,10.6,-7.8,4.4 +19940204,4.1,-7.2,12.2,-4.4,3.4 +19940205,8.0,2.3,12.8,5.6,3.9 +19940206,8.9,6.9,13.3,2.2,3.1 +19940207,9.6,2.3,17.2,-1.1,3.1 +19940208,10.5,6.4,17.2,-1.1,4.4 +19940209,17.4,14.2,23.3,6.7,7.2 +19940210,9.7,7.4,24.4,0.6,4.5 +19940211,-0.6,-1.7,1.1,-1.7,5.6 +19940212,1.8,0.9,3.9,-1.7,2.4 +19940213,6.5,4.1,11.7,1.1,4.1 +19940214,4.7,-8.6,13.3,-4.4,4.4 +19940215,5.2,-6.6,13.3,-4.4,3.9 +19940216,8.6,-6.6,17.8,-2.2,2.5 +19940217,7.7,-6.0,18.3,-2.2,2.7 +19940218,11.0,-1.2,19.4,0.0,3.2 +19940219,11.7,4.1,20.6,3.9,3.5 +19940220,14.4,8.8,20.6,4.4,2.9 +19940221,13.3,10.7,21.1,7.8,2.2 +19940222,10.4,8.2,17.2,5.6,3.5 +19940223,10.6,9.6,15.0,5.6,4.5 +19940224,10.1,3.1,13.9,7.8,5.2 +19940225,5.9,-4.7,16.1,-3.3,3.5 +19940226,7.6,-8.2,16.7,-3.3,6.6 +19940227,2.2,-11.9,10.0,-4.4,4.6 +19940228,3.2,-10.1,11.1,-4.4,2.6 +19940301,6.5,-0.3,11.7,-3.9,3.8 +19940302,4.7,3.3,7.8,3.9,7.7 +19940303,7.8,0.1,13.3,3.9,6.2 +19940304,11.5,0.1,25.6,1.1,5.4 +19940305,16.7,1.2,26.1,1.1,4.0 +19940306,13.9,-0.8,23.9,6.7,3.8 +19940307,14.6,4.4,26.7,6.1,2.6 +19940308,18.2,7.7,26.7,6.1,5.2 +19940309,11.0,7.4,17.2,5.6,5.4 +19940310,7.4,4.2,13.9,3.9,4.6 +19940311,4.3,-7.7,14.4,-3.3,4.6 +19940312,5.3,-5.7,12.8,-3.3,3.0 +19940313,6.1,-0.9,15.6,-1.7,3.2 +19940314,11.4,1.7,17.8,-1.7,3.5 +19940315,13.5,0.9,24.4,2.8,5.4 +19940316,11.8,-7.6,25.0,0.6,5.7 +19940317,5.4,-11.8,15.0,-3.9,3.8 +19940318,12.1,-1.9,21.7,6.1,6.2 +19940319,16.0,-3.4,22.8,2.8,4.6 +19940320,16.3,-1.6,25.6,2.8,2.7 +19940321,17.5,7.6,25.6,5.6,3.2 +19940322,15.9,4.5,22.8,8.9,4.7 +19940323,14.1,1.7,24.4,3.3,3.5 +19940324,16.9,10.2,25.0,12.2,4.3 +19940325,16.1,13.3,21.7,11.7,3.2 +19940326,9.6,1.8,18.9,2.2,3.0 +19940327,16.5,12.3,25.6,2.2,5.4 +19940328,18.8,16.1,26.7,9.4,6.0 +19940329,11.3,4.3,14.4,7.2,4.8 +19940330,7.9,-1.0,16.1,-0.6,2.8 +19940331,11.2,2.4,16.7,7.8,3.7 +19940401,8.5,-2.1,17.8,-1.7,3.2 +19940402,12.0,-0.9,21.7,-1.7,2.9 +19940403,14.1,1.9,21.7,2.2,5.4 +19940404,13.2,4.4,22.2,4.4,3.0 +19940405,13.8,6.3,21.7,4.4,3.0 +19940406,15.2,12.6,21.1,6.7,3.9 +19940407,12.6,5.2,18.9,7.2,5.5 +19940408,9.3,-1.5,18.3,0.6,3.9 +19940409,11.6,5.2,18.9,0.6,2.8 +19940410,16.9,12.2,25.0,6.1,3.2 +19940411,21.0,15.9,27.8,10.6,2.6 +19940412,14.7,12.4,28.3,12.2,5.0 +19940413,19.1,13.1,25.0,12.2,6.9 +19940414,19.2,4.1,27.2,7.8,4.3 +19940415,16.8,11.2,27.8,7.8,2.6 +19940416,18.4,10.6,22.8,11.1,4.4 +19940417,15.7,2.2,24.4,5.6,3.7 +19940418,18.1,2.7,25.6,5.6,3.6 +19940419,18.6,6.8,27.2,6.7,4.2 +19940420,20.8,9.6,30.0,8.9,2.6 +19940421,21.2,5.0,30.6,10.0,3.2 +19940422,17.6,9.7,27.8,11.7,4.2 +19940423,13.8,3.4,21.1,7.8,5.0 +19940424,14.6,4.6,25.0,3.9,2.8 +19940425,19.2,10.6,27.8,3.9,3.9 +19940426,22.2,15.2,29.4,8.9,4.2 +19940427,21.5,16.2,29.4,15.0,4.2 +19940428,20.6,16.6,30.6,15.0,2.7 +19940429,22.3,17.3,28.9,15.0,3.2 +19940430,21.1,15.3,28.9,13.9,3.7 +19940501,21.9,13.8,28.3,13.9,4.6 +19940502,14.9,6.8,28.3,9.4,4.2 +19940503,11.4,7.7,21.1,7.8,4.3 +19940504,12.1,9.6,18.9,7.8,5.7 +19940505,15.2,8.5,21.1,9.4,3.9 +19940506,15.4,8.2,24.4,6.7,2.6 +19940507,19.3,12.3,26.1,6.7,5.2 +19940508,18.8,11.0,26.1,11.1,6.5 +19940509,14.9,7.3,22.8,7.2,3.3 +19940510,18.7,10.9,26.1,7.2,2.7 +19940511,19.2,9.7,26.1,12.2,3.7 +19940512,20.7,13.6,28.9,11.7,3.5 +19940513,17.9,7.4,28.9,11.7,3.3 +19940514,18.2,12.1,25.0,12.2,2.0 +19940515,21.3,16.8,27.8,12.8,4.0 +19940516,22.6,15.3,28.3,16.1,3.9 +19940517,20.3,6.6,28.3,15.0,6.0 +19940518,16.8,7.6,25.6,7.8,3.5 +19940519,14.7,3.6,24.4,7.8,5.1 +19940520,14.6,6.6,20.6,7.2,4.0 +19940521,15.6,8.8,21.7,7.2,3.3 +19940522,18.2,7.2,28.9,7.2,2.8 +19940523,23.1,10.1,31.7,7.2,2.5 +19940524,24.3,13.2,32.2,12.8,2.7 +19940525,23.6,14.2,32.2,15.0,3.5 +19940526,22.9,16.3,31.1,17.2,5.2 +19940527,21.0,13.0,28.9,15.0,4.1 +19940528,17.6,7.4,26.7,9.4,4.3 +19940529,20.1,13.3,27.2,9.4,2.9 +19940530,21.5,11.1,28.3,12.8,2.9 +19940531,21.6,14.2,28.3,12.8,3.8 +19940601,23.8,16.8,31.7,15.6,3.0 +19940602,24.4,17.1,33.3,16.7,2.1 +19940603,23.2,16.2,33.3,16.7,3.4 +19940604,23.3,18.9,30.6,18.3,2.8 +19940605,22.9,19.9,30.0,18.9,2.9 +19940606,22.6,20.5,30.0,18.9,3.5 +19940607,23.8,20.6,28.9,20.6,4.0 +19940608,24.8,20.2,30.0,20.0,4.1 +19940609,23.3,18.2,30.6,18.9,3.0 +19940610,21.8,19.5,26.7,18.9,3.2 +19940611,21.9,18.3,27.2,17.8,3.1 +19940612,23.6,19.8,30.0,17.8,2.2 +19940613,24.5,19.8,31.1,18.3,2.5 +19940614,24.8,20.0,31.1,18.3,2.8 +19940615,23.9,21.0,31.1,19.4,2.3 +19940616,25.1,20.8,32.2,19.4,2.0 +19940617,24.1,19.4,32.8,18.9,3.3 +19940618,24.9,19.6,31.1,18.3,3.1 +19940619,25.4,19.7,31.7,18.3,2.3 +19940620,26.2,19.4,32.8,18.9,1.8 +19940621,26.6,19.6,33.3,19.4,2.2 +19940622,27.1,21.1,33.3,19.4,2.2 +19940623,26.2,20.7,33.9,20.6,3.9 +19940624,25.2,20.9,32.2,20.6,7.2 +19940625,23.4,18.4,28.9,20.6,5.6 +19940626,22.6,18.4,28.3,18.9,5.4 +19940627,22.1,19.4,28.3,18.3,4.8 +19940628,23.4,19.7,30.0,16.7,2.9 +19940629,23.3,20.2,30.6,16.7,4.4 +19940630,23.9,18.4,30.6,19.4,3.0 +19940701,25.1,18.4,31.1,18.9,2.5 +19940702,25.4,19.3,31.7,18.9,1.7 +19940703,25.6,20.5,32.2,19.4,2.5 +19940704,24.8,20.9,31.1,20.6,2.6 +19940705,23.0,21.9,28.9,20.6,2.7 +19940706,24.5,21.4,30.0,21.7,2.5 +19940707,24.8,20.3,30.0,20.0,2.6 +19940708,24.5,21.2,30.0,20.0,4.3 +19940709,25.2,20.6,30.6,20.0,5.0 +19940710,24.5,20.9,30.6,20.0,3.8 +19940711,24.2,21.2,30.0,20.5,2.9 +19940712,24.1,21.3,30.0,20.6,3.0 +19940713,23.9,21.3,28.9,20.6,3.4 +19940714,24.8,21.7,29.4,20.6,4.7 +19940715,25.8,21.9,31.7,21.7,4.0 +19940716,25.0,21.2,31.7,21.7,3.0 +19940717,24.8,21.8,32.2,20.6,3.8 +19940718,24.6,21.3,30.6,20.6,2.1 +19940719,24.4,20.9,31.1,20.0,2.8 +19940720,23.3,20.3,30.6,20.0,3.5 +19940721,24.4,20.9,30.6,20.0,3.2 +19940722,22.9,21.6,31.1,20.0,3.2 +19940723,23.3,20.9,28.9,19.4,3.3 +19940724,23.6,20.0,31.1,18.9,2.9 +19940725,25.5,21.3,31.7,18.9,2.6 +19940726,24.4,20.8,31.1,20.0,5.2 +19940727,22.7,20.3,27.8,21.1,4.7 +19940728,22.9,19.5,27.8,18.9,3.2 +19940729,23.4,19.1,28.3,18.9,2.9 +19940730,22.9,17.5,28.9,17.2,1.9 +19940731,23.7,20.3,29.4,17.2,2.1 +19940801,22.5,20.0,28.9,19.4,2.0 +19940802,23.7,20.2,29.4,18.9,2.3 +19940803,23.8,19.6,30.0,18.9,1.5 +19940804,23.4,20.8,31.1,20.0,3.3 +19940805,24.8,21.2,29.4,20.0,4.2 +19940806,21.7,18.1,29.4,18.3,3.2 +19940807,21.9,17.8,26.7,18.3,2.4 +19940808,22.7,17.8,28.3,17.8,2.4 +19940809,23.7,19.4,30.0,17.8,1.5 +19940810,25.1,19.7,31.1,17.8,1.1 +19940811,25.4,19.7,31.7,19.4,1.5 +19940812,24.7,20.7,31.7,20.0,2.1 +19940813,24.1,20.5,31.7,19.4,2.2 +19940814,23.8,20.8,31.1,19.4,2.8 +19940815,23.5,21.6,30.0,20.0,2.5 +19940816,21.6,20.8,27.8,20.6,3.3 +19940817,22.7,20.4,27.8,20.0,6.5 +19940818,23.5,19.9,29.4,17.8,1.7 +19940819,23.7,20.4,30.0,17.8,3.4 +19940820,22.6,19.2,29.4,17.8,2.5 +19940821,22.4,20.4,29.4,17.8,4.3 +19940822,21.3,17.1,27.8,16.1,2.6 +19940823,22.0,16.9,28.3,16.1,2.6 +19940824,22.3,18.4,28.9,16.7,1.7 +19940825,23.2,18.0,29.4,17.2,1.9 +19940826,24.0,19.2,30.0,17.2,2.0 +19940827,24.3,20.3,30.0,18.3,2.5 +19940828,23.9,19.7,31.1,17.8,1.8 +19940829,25.0,19.4,31.1,17.8,2.8 +19940830,25.2,20.3,31.7,18.3,2.6 +19940831,24.3,21.2,31.1,20.6,3.0 +19940901,24.6,21.2,31.1,20.6,2.5 +19940902,19.3,18.7,21.7,16.7,4.5 +19940903,16.6,15.3,21.1,15.6,5.2 +19940904,17.2,13.3,22.8,12.8,2.8 +19940905,18.2,14.3,23.9,12.8,2.7 +19940906,20.3,17.9,24.4,14.4,3.8 +19940907,21.8,18.3,29.4,16.1,2.6 +19940908,21.3,15.8,29.4,16.1,3.2 +19940909,22.3,18.6,27.8,16.7,2.1 +19940910,22.4,18.1,27.8,16.7,2.5 +19940911,22.4,17.3,29.4,16.1,2.1 +19940912,22.2,15.7,30.0,16.1,2.8 +19940913,21.2,15.8,29.4,14.4,1.4 +19940914,23.2,17.0,30.0,14.4,1.9 +19940915,22.2,16.2,30.0,15.6,1.1 +19940916,22.2,18.2,30.6,15.6,2.0 +19940917,23.3,20.9,29.4,16.1,4.6 +19940918,22.0,19.3,28.3,17.8,4.8 +19940919,19.3,12.2,24.4,15.6,3.9 +19940920,17.1,11.2,25.0,11.1,3.5 +19940921,18.2,12.4,24.4,11.1,4.1 +19940922,17.7,11.8,25.0,11.1,3.5 +19940923,17.7,14.3,25.6,11.1,1.3 +19940924,19.1,17.3,25.0,12.8,3.4 +19940925,21.2,18.9,26.7,16.7,3.2 +19940926,19.8,14.4,26.7,15.6,4.4 +19940927,18.2,12.1,25.0,12.2,5.1 +19940928,17.4,9.8,25.6,8.3,3.4 +19940929,19.6,10.3,26.7,8.3,3.1 +19940930,17.8,10.1,27.2,9.4,2.5 +19941001,19.2,13.2,28.3,9.4,3.5 +19941002,19.9,16.7,28.3,12.8,1.8 +19941003,17.8,15.9,25.6,15.0,6.2 +19941004,15.1,9.2,20.0,11.1,3.0 +19941005,14.8,9.6,22.8,8.9,2.5 +19941006,16.3,10.7,23.3,8.9,3.2 +19941007,17.2,12.3,22.8,12.2,3.0 +19941008,15.1,11.3,22.2,10.0,3.2 +19941009,18.7,16.7,23.3,10.0,2.5 +19941010,15.6,12.8,23.3,10.6,4.6 +19941011,12.7,4.8,17.8,9.4,6.0 +19941012,9.8,5.2,17.2,8.9,7.3 +19941013,11.6,10.8,12.8,8.9,7.8 +19941014,14.6,13.4,16.7,11.1,6.0 +19941015,16.7,10.4,21.7,13.3,6.2 +19941016,14.1,6.6,22.2,8.9,4.4 +19941017,12.2,6.2,21.1,6.1,2.3 +19941018,11.7,4.9,21.7,3.9,1.9 +19941019,13.9,9.4,22.2,3.9,3.7 +19941020,17.8,14.8,25.0,8.9,3.3 +19941021,15.8,9.9,25.0,8.3,2.5 +19941022,14.7,12.7,24.4,8.3,1.6 +19941023,19.8,16.0,26.7,10.6,3.0 +19941024,15.8,8.9,26.7,10.0,3.2 +19941025,15.0,7.8,23.3,7.2,2.9 +19941026,13.6,5.2,23.9,7.2,3.7 +19941027,8.3,1.3,17.8,2.2,3.4 +19941028,7.2,1.8,15.6,1.1,2.7 +19941029,9.7,4.9,18.9,1.1,3.4 +19941030,17.1,13.6,21.7,12.8,3.8 +19941031,18.4,16.1,22.2,12.8,2.8 +19941101,16.1,9.5,22.8,11.7,5.8 +19941102,10.2,-2.7,21.1,0.6,2.8 +19941103,11.5,1.6,22.8,0.6,2.2 +19941104,14.1,5.7,23.3,2.8,3.1 +19941105,17.7,13.4,23.3,6.1,3.1 +19941106,18.1,15.3,23.9,13.9,4.2 +19941107,14.4,5.9,22.2,7.2,4.5 +19941108,11.4,1.9,20.6,2.8,2.6 +19941109,15.8,10.7,24.4,2.8,4.3 +19941110,15.8,14.0,25.0,9.4,4.7 +19941111,10.6,0.5,17.8,6.7,7.6 +19941112,10.3,-2.7,17.2,2.8,4.3 +19941113,9.8,0.9,22.2,0.6,2.1 +19941114,11.8,4.1,22.8,0.6,1.9 +19941115,12.9,4.3,23.3,2.2,2.6 +19941116,13.9,7.9,23.3,6.1,4.3 +19941117,13.1,8.3,20.6,10.0,7.4 +19941118,17.1,11.8,25.0,10.6,5.5 +19941119,16.1,5.6,25.6,8.3,3.3 +19941120,13.1,-1.6,24.4,7.2,4.2 +19941121,15.2,8.7,23.3,7.2,4.1 +19941122,14.7,4.6,23.3,10.6,4.6 +19941123,8.2,-8.6,20.0,3.9,4.7 +19941124,5.9,-9.6,11.7,-0.6,4.5 +19941125,6.3,-4.7,15.0,-0.6,4.6 +19941126,6.6,0.1,15.6,1.1,2.3 +19941127,5.7,4.8,7.2,3.3,4.8 +19941128,8.2,7.1,15.0,4.4,4.1 +19941129,5.8,3.2,15.0,1.1,3.2 +19941130,6.8,0.8,15.6,-0.6,1.8 +19941201,5.5,-4.1,15.6,-1.1,3.1 +19941202,4.9,-2.9,14.4,-2.8,1.6 +19941203,9.1,1.2,16.1,-2.8,1.7 +19941204,13.5,11.2,16.1,5.6,4.2 +19941205,17.9,16.3,21.7,12.8,4.6 +19941206,15.4,11.4,22.2,8.3,2.1 +19941207,14.8,10.5,23.3,8.3,4.1 +19941208,14.2,7.6,23.3,8.3,3.7 +19941209,10.2,3.9,18.3,8.3,3.3 +19941210,8.4,6.6,11.1,5.0,1.2 +19941211,6.8,0.8,11.1,2.2,4.8 +19941212,-0.2,-5.7,11.1,-4.4,3.7 +19941213,2.7,-4.5,5.6,-4.4,5.1 +19941214,6.2,1.4,8.3,1.7,5.6 +19941215,7.9,5.8,10.6,5.0,4.8 +19941216,6.2,3.2,11.1,3.9,4.2 +19941217,6.5,5.1,10.0,3.9,2.9 +19941218,7.4,3.2,15.0,1.1,3.3 +19941219,4.3,-3.7,15.6,-2.8,4.2 +19941220,2.7,-3.2,11.7,-3.3,2.8 +19941221,4.7,-1.6,11.7,-3.3,4.3 +19941222,7.9,4.6,10.0,-0.6,6.0 +19941223,9.8,4.3,13.3,6.1,6.0 +19941224,9.7,-1.4,14.4,6.7,5.9 +19941225,8.0,-2.0,15.0,5.0,4.6 +19941226,10.3,-2.7,16.7,5.0,3.1 +19941227,7.7,-3.4,17.2,0.6,2.7 +19941228,7.9,-0.6,20.0,-0.6,1.7 +19941229,10.6,-0.4,20.6,-0.6,2.7 +19941230,7.7,-4.2,14.4,5.6,5.9 +19941231,4.7,0.1,10.0,1.7,5.5 +19950101,8.3,6.8,15.6,5.6,3.9 +19950102,7.1,-1.7,11.7,0.6,4.3 +19950103,0.7,-9.6,5.6,-3.3,3.3 +19950104,0.3,-6.8,8.9,-5.6,2.4 +19950105,-2.6,-17.8,2.2,-8.3,4.5 +19950106,-3.9,-11.1,0.0,-7.2,2.5 +19950107,6.0,3.4,11.7,0.0,4.1 +19950108,2.4,-4.6,9.4,-3.3,2.9 +19950109,5.6,-2.7,13.9,0.6,2.6 +19950110,5.6,-1.2,13.3,-1.7,2.7 +19950111,6.8,2.7,12.2,2.2,2.1 +19950112,10.2,8.9,14.4,8.3,2.9 +19950113,11.8,10.1,20.0,6.7,2.5 +19950114,16.6,15.3,17.8,14.4,4.9 +19950115,14.1,12.9,17.2,12.2,4.0 +19950116,10.8,7.0,16.7,5.0,2.9 +19950117,8.2,2.6,18.3,0.6,2.6 +19950118,9.1,4.7,15.0,3.9,2.8 +19950119,7.5,6.2,11.1,5.0,3.7 +19950120,5.6,-1.4,11.7,2.8,7.6 +19950121,3.9,-4.7,11.1,-1.1,5.1 +19950122,2.6,-6.9,10.6,-4.4,4.3 +19950123,3.8,-3.4,7.8,1.7,3.9 +19950124,0.8,-7.4,7.2,-3.3,3.8 +19950125,2.5,-9.3,11.7,-4.4,4.1 +19950126,6.8,-4.4,12.2,0.6,3.4 +19950127,3.6,-5.6,10.6,-2.2,2.5 +19950128,6.7,3.6,8.9,4.4,3.0 +19950129,3.3,2.6,8.9,0.6,5.6 +19950130,1.1,-0.3,5.0,-0.6,3.9 +19950131,2.2,-3.1,9.4,-3.9,3.2 +19950201,4.4,-3.1,15.0,-3.3,4.8 +19950202,10.9,2.1,17.8,6.1,4.9 +19950203,7.4,3.1,13.9,2.8,2.7 +19950204,5.7,-1.7,8.3,2.2,5.5 +19950205,-1.1,-12.3,4.4,-6.7,3.8 +19950206,-3.5,-15.9,3.3,-10.0,4.7 +19950207,-0.8,-11.4,6.7,-7.8,4.0 +19950208,-2.8,-12.5,3.3,-6.1,5.7 +19950209,-5.1,-16.6,5.0,-11.7,4.1 +19950210,2.2,-6.5,4.4,-0.6,5.3 +19950211,5.8,3.0,11.1,3.3,3.0 +19950212,2.7,-9.6,7.2,-2.2,4.6 +19950213,-0.6,-13.6,3.9,-4.4,3.4 +19950214,3.8,-6.7,7.8,1.7,2.0 +19950215,3.8,0.6,6.1,2.2,3.8 +19950216,7.3,6.7,12.8,3.9,3.4 +19950217,10.2,9.4,14.4,7.2,5.0 +19950218,6.4,5.1,8.3,5.0,5.0 +19950219,7.9,5.0,12.2,5.6,3.0 +19950220,11.2,6.2,17.2,7.2,2.9 +19950221,7.9,-1.5,13.3,2.8,5.5 +19950222,5.4,-7.3,15.0,-1.1,5.1 +19950223,11.8,-1.6,22.2,5.6,6.5 +19950224,11.8,-3.4,17.2,7.8,6.5 +19950225,5.4,-8.4,13.9,-2.8,3.8 +19950226,11.2,-3.3,21.7,3.9,5.0 +19950227,12.6,7.3,17.2,9.4,2.8 +19950228,14.2,13.4,16.1,12.2,3.4 +19950301,13.3,11.6,15.0,12.2,4.1 +19950302,9.1,4.9,11.7,7.8,3.8 +19950303,7.2,4.7,8.9,5.0,2.7 +19950304,3.8,2.2,7.8,1.7,5.1 +19950305,4.6,3.4,6.1,3.9,4.5 +19950306,8.3,6.9,16.1,4.4,3.6 +19950307,14.7,12.3,21.7,11.1,2.4 +19950308,15.6,12.2,18.9,8.3,5.8 +19950309,3.2,-7.4,7.8,-0.6,6.7 +19950310,3.2,-8.3,13.3,-3.9,3.5 +19950311,7.8,-6.2,18.3,-0.6,3.6 +19950312,11.1,-2.4,21.7,1.1,3.0 +19950313,13.3,5.0,22.2,5.6,2.5 +19950314,13.7,6.7,22.2,6.1,2.3 +19950315,14.2,6.6,22.8,6.7,2.3 +19950316,15.3,7.5,23.9,8.9,2.6 +19950317,17.6,10.6,24.4,11.1,3.2 +19950318,16.6,3.6,22.8,10.6,4.1 +19950319,11.8,-0.5,19.4,2.2,2.6 +19950320,12.6,3.2,22.8,3.9,3.5 +19950321,16.5,6.1,22.8,10.0,6.1 +19950322,18.0,3.8,28.3,6.7,5.8 +19950323,22.6,11.8,31.7,16.1,5.7 +19950324,17.3,3.2,26.1,11.7,4.9 +19950325,13.2,-7.0,22.2,5.6,3.8 +19950326,13.8,-3.1,23.3,3.9,2.9 +19950327,15.7,9.6,19.4,11.1,3.4 +19950328,16.6,6.9,22.8,9.4,4.2 +19950329,13.2,2.1,19.4,6.7,3.5 +19950330,13.9,3.8,20.6,7.2,2.9 +19950331,12.7,-0.4,17.2,8.3,3.5 +19950401,11.0,-0.4,16.7,5.0,4.1 +19950402,11.3,-2.1,19.4,2.2,3.1 +19950403,12.1,-0.7,22.2,2.8,3.7 +19950404,14.8,4.2,22.2,7.8,4.7 +19950405,14.8,-3.6,20.0,6.1,4.0 +19950406,13.8,0.2,21.7,7.8,3.6 +19950407,16.3,5.1,27.2,7.8,3.2 +19950408,19.1,5.6,27.8,10.6,4.4 +19950409,20.1,7.7,28.3,11.7,5.4 +19950410,22.2,9.6,32.2,12.8,3.4 +19950411,15.7,11.4,26.7,12.2,5.3 +19950412,15.8,14.2,21.1,12.8,5.2 +19950413,16.8,9.2,25.6,10.0,4.0 +19950414,16.4,-0.4,23.9,10.0,5.2 +19950415,16.7,-1.6,25.0,8.3,4.4 +19950416,19.3,6.3,28.9,10.6,4.7 +19950417,20.6,7.9,27.2,14.4,4.3 +19950418,20.3,14.4,29.4,13.9,2.7 +19950419,24.0,15.1,30.6,17.8,5.3 +19950420,23.1,15.7,29.4,17.8,5.2 +19950421,21.4,15.6,25.6,17.2,4.9 +19950422,20.0,14.9,27.2,12.8,2.9 +19950423,14.6,13.3,20.6,7.8,4.6 +19950424,9.3,6.9,15.0,6.7,3.8 +19950425,11.4,1.8,21.7,1.7,3.4 +19950426,14.6,5.1,22.8,5.6,3.0 +19950427,16.1,8.4,22.8,8.9,3.1 +19950428,18.1,8.0,25.0,11.7,2.9 +19950429,16.6,6.3,25.0,9.4,3.8 +19950430,18.1,12.3,25.6,11.1,3.6 +19950501,18.2,13.7,22.8,12.8,3.2 +19950502,15.3,10.4,18.9,12.2,4.2 +19950503,13.5,5.6,21.1,6.1,3.0 +19950504,14.7,10.2,20.0,10.6,3.3 +19950505,17.6,12.2,24.4,12.2,4.3 +19950506,17.2,6.3,24.4,8.9,3.9 +19950507,17.8,7.8,25.6,11.1,2.8 +19950508,19.3,9.6,27.2,11.1,2.7 +19950509,19.3,14.1,23.9,16.1,3.0 +19950510,22.3,18.3,27.2,17.8,5.4 +19950511,23.1,17.2,28.3,18.3,5.8 +19950512,21.0,12.7,27.2,12.8,2.8 +19950513,20.1,13.1,26.1,14.4,3.4 +19950514,19.7,16.8,24.4,17.2,4.3 +19950515,22.3,18.9,31.7,17.8,3.0 +19950516,21.3,14.8,28.3,15.6,2.5 +19950517,23.2,17.8,30.0,17.2,4.4 +19950518,24.4,18.3,28.9,20.0,4.7 +19950519,24.2,17.3,27.2,18.3,6.1 +19950520,18.6,7.8,25.0,10.6,4.7 +19950521,18.6,10.1,27.2,10.6,1.1 +19950522,21.2,12.8,27.2,13.9,2.5 +19950523,22.1,14.2,27.8,15.6,2.3 +19950524,23.3,14.5,30.0,16.1,2.3 +19950525,24.2,15.9,31.7,17.8,2.1 +19950526,25.6,17.2,33.9,17.8,2.0 +19950527,24.3,18.8,28.3,20.0,4.7 +19950528,22.4,19.3,28.3,19.4,3.1 +19950529,22.6,18.7,29.4,18.3,3.6 +19950530,22.6,19.1,28.9,18.3,2.6 +19950531,20.8,14.1,25.0,18.3,3.8 +19950601,21.9,19.8,28.9,18.9,3.9 +19950602,22.5,20.7,27.2,18.9,3.4 +19950603,22.7,19.2,30.0,18.9,2.4 +19950604,24.5,19.1,30.6,19.4,2.8 +19950605,22.2,20.6,26.1,20.6,4.2 +19950606,22.3,19.2,29.4,19.4,6.2 +19950607,24.3,19.8,31.1,19.4,3.4 +19950608,27.2,20.2,35.0,20.0,3.1 +19950609,26.3,20.6,33.3,18.9,3.1 +19950610,23.0,19.4,33.9,17.8,2.6 +19950611,23.6,19.8,32.2,18.3,2.9 +19950612,22.6,19.3,27.8,19.4,4.3 +19950613,19.6,11.6,24.4,13.9,4.3 +19950614,19.6,9.9,27.8,11.7,3.0 +19950615,22.2,12.5,29.4,15.0,2.2 +19950616,22.3,14.0,28.3,16.1,3.2 +19950617,22.1,14.2,28.9,15.6,3.4 +19950618,22.6,13.0,28.3,16.7,4.5 +19950619,20.0,14.2,25.0,16.1,3.7 +19950620,20.3,16.3,27.2,16.1,3.9 +19950621,21.3,17.5,28.3,17.8,2.5 +19950622,21.7,17.9,29.4,17.8,2.8 +19950623,23.1,19.1,28.9,18.9,3.2 +19950624,24.2,20.4,29.4,19.4,2.6 +19950625,23.3,20.8,30.0,19.4,2.9 +19950626,24.1,20.6,31.7,18.9,2.5 +19950627,26.1,19.7,32.8,20.0,3.1 +19950628,24.4,20.4,30.0,20.0,2.6 +19950629,23.7,19.8,27.8,20.0,3.0 +19950630,23.7,20.9,30.6,20.6,2.4 +19950701,23.5,20.6,30.0,20.0,2.8 +19950702,23.9,19.8,30.6,18.9,2.2 +19950703,24.4,20.1,31.1,18.9,3.2 +19950704,25.8,20.7,32.8,20.6,2.7 +19950705,27.3,21.4,34.4,21.7,2.1 +19950706,26.7,21.7,33.3,21.7,3.1 +19950707,24.9,20.1,31.1,21.1,3.2 +19950708,26.0,16.8,32.8,20.0,3.6 +19950709,25.2,15.4,31.7,19.4,3.3 +19950710,25.9,18.8,33.9,20.0,2.7 +19950711,27.6,20.2,33.9,21.1,2.6 +19950712,27.5,20.8,34.4,21.1,2.8 +19950713,27.7,20.2,33.9,21.1,2.8 +19950714,27.7,19.2,35.0,20.6,2.5 +19950715,28.2,20.4,36.1,21.1,2.3 +19950716,28.3,21.6,35.6,22.2,2.5 +19950717,26.0,21.9,33.9,21.1,2.3 +19950718,28.2,21.7,34.4,22.8,2.5 +19950719,27.4,19.8,32.8,22.2,3.5 +19950720,26.6,21.9,32.8,22.8,2.7 +19950721,27.2,23.1,36.1,22.8,3.7 +19950722,27.7,22.3,35.0,22.8,2.4 +19950723,28.8,21.9,36.1,22.8,3.6 +19950724,29.8,21.1,37.8,22.2,3.5 +19950725,29.4,20.3,36.7,21.7,2.6 +19950726,28.4,20.9,36.1,22.2,3.9 +19950727,24.6,21.5,30.6,20.6,3.4 +19950728,25.8,21.6,32.2,22.2,3.4 +19950729,26.6,21.1,33.3,22.2,2.3 +19950730,27.3,20.1,34.4,20.6,2.7 +19950731,26.7,21.0,33.9,22.2,2.8 +19950801,26.0,20.2,33.3,21.7,3.5 +19950802,26.4,20.4,32.2,21.7,3.8 +19950803,24.9,21.7,28.3,23.3,4.1 +19950804,25.2,22.4,31.1,22.8,3.5 +19950805,25.8,22.3,31.7,22.2,4.0 +19950806,27.0,21.8,32.8,22.8,5.9 +19950807,26.4,21.9,29.4,24.4,3.4 +19950808,21.6,19.8,23.9,20.0,4.0 +19950809,23.0,18.2,27.8,20.0,3.9 +19950810,24.4,19.8,31.1,20.0,2.8 +19950811,25.4,21.2,32.8,21.1,2.3 +19950812,27.6,20.4,36.1,21.1,1.9 +19950813,29.2,21.5,36.1,22.8,2.1 +19950814,30.1,22.4,37.2,23.3,1.7 +19950815,30.2,22.2,37.8,23.3,2.7 +19950816,30.7,22.7,37.2,25.6,2.9 +19950817,30.5,22.8,37.2,25.0,2.5 +19950818,30.4,22.0,36.7,24.4,1.9 +19950819,26.6,21.7,31.7,21.7,3.2 +19950820,25.3,22.1,29.4,22.8,3.2 +19950821,23.9,21.8,27.8,22.2,2.4 +19950822,26.3,21.6,33.9,21.7,2.7 +19950823,26.2,19.5,30.0,22.8,4.8 +19950824,24.7,21.5,27.8,21.7,3.9 +19950825,25.1,21.4,30.6,21.7,4.1 +19950826,23.0,22.3,23.3,22.8,5.5 +19950827,22.7,22.2,23.3,22.2,5.9 +19950828,24.8,20.0,29.4,22.2,6.7 +19950829,25.2,19.1,32.2,20.0,3.0 +19950830,25.7,20.9,31.1,21.7,2.0 +19950831,25.7,20.8,30.6,21.7,3.6 +19950901,25.3,20.3,33.9,21.1,3.2 +19950902,22.5,16.7,27.8,18.9,3.5 +19950903,21.4,13.4,28.3,16.1,3.0 +19950904,21.1,13.7,28.9,14.4,2.4 +19950905,21.6,15.1,28.3,15.6,2.5 +19950906,22.0,15.6,28.3,16.7,2.8 +19950907,22.5,14.9,27.8,18.9,3.5 +19950908,23.6,17.8,30.0,17.8,1.6 +19950909,23.6,18.6,31.7,17.8,1.5 +19950910,24.0,19.3,30.6,18.3,1.9 +19950911,21.3,19.6,25.6,19.4,4.1 +19950912,19.9,16.7,25.6,17.8,4.0 +19950913,22.4,18.9,28.9,17.2,2.7 +19950914,22.9,21.1,27.8,20.0,2.8 +19950915,23.3,19.3,28.3,18.9,3.3 +19950916,20.1,17.7,23.9,18.3,4.2 +19950917,22.0,18.3,30.0,18.3,3.3 +19950918,21.6,16.1,26.7,16.1,2.9 +19950919,21.4,16.0,25.6,18.3,4.0 +19950920,21.1,15.9,27.2,16.7,2.8 +19950921,22.7,18.6,27.2,18.9,2.1 +19950922,22.7,20.6,26.1,20.6,2.4 +19950923,13.8,11.3,19.4,10.6,5.8 +19950924,11.3,8.5,14.4,8.9,5.5 +19950925,15.2,13.5,20.6,12.8,3.0 +19950926,20.1,17.2,25.6,17.2,3.8 +19950927,19.9,15.7,24.4,15.6,3.3 +19950928,19.3,14.0,25.0,15.0,3.4 +19950929,18.6,11.8,23.9,13.9,4.7 +19950930,17.7,13.1,22.2,14.4,5.0 +19951001,19.0,15.1,24.4,16.1,3.3 +19951002,20.6,16.4,28.9,14.4,1.9 +19951003,21.6,18.7,25.6,19.4,2.0 +19951004,18.6,17.6,21.1,17.2,5.4 +19951005,21.9,20.7,23.9,18.9,8.8 +19951006,21.7,18.9,27.8,18.3,5.2 +19951007,20.8,16.1,26.7,17.2,3.2 +19951008,17.1,11.2,23.3,11.7,3.1 +19951009,16.6,11.9,22.2,12.2,3.5 +19951010,17.6,11.7,24.4,11.7,3.4 +19951011,19.1,13.4,23.9,15.0,4.8 +19951012,19.8,14.6,26.1,15.6,5.1 +19951013,19.2,16.4,22.8,17.8,5.0 +19951014,19.6,19.3,22.2,18.9,2.5 +19951015,14.8,5.0,19.4,8.9,4.8 +19951016,13.2,3.8,21.7,5.6,2.5 +19951017,12.9,3.6,18.3,8.3,3.6 +19951018,12.6,6.4,20.6,6.1,3.0 +19951019,15.4,10.9,23.9,6.1,2.7 +19951020,16.2,12.8,22.8,11.1,3.1 +19951021,11.0,3.9,16.7,3.9,4.3 +19951022,10.8,3.6,20.0,2.8,2.3 +19951023,12.5,6.4,21.1,4.4,2.2 +19951024,17.3,13.8,23.3,13.3,2.8 +19951025,15.1,9.4,20.6,7.2,2.6 +19951026,13.4,7.8,21.1,6.7,2.1 +19951027,14.7,13.4,19.4,11.7,2.9 +19951028,15.0,9.8,18.9,11.1,6.0 +19951029,10.2,0.8,17.2,3.3,4.5 +19951030,9.9,2.4,16.1,3.9,2.4 +19951031,10.4,8.5,11.7,9.4,2.5 +19951101,13.7,12.6,18.3,10.6,4.1 +19951102,16.4,16.1,18.9,15.6,3.1 +19951103,18.1,17.4,20.0,17.2,5.1 +19951104,8.8,-2.4,17.8,3.9,5.5 +19951105,3.4,-4.2,6.1,-1.1,3.7 +19951106,5.5,0.8,12.8,-0.6,1.9 +19951107,9.5,8.8,12.8,8.3,2.9 +19951108,9.1,1.7,12.2,5.6,5.2 +19951109,3.3,-6.1,9.4,-2.2,3.1 +19951110,5.1,-0.8,13.3,-0.6,1.6 +19951111,11.3,8.1,17.2,8.3,5.0 +19951112,3.9,-5.9,12.2,-2.2,3.5 +19951113,4.7,-1.9,11.1,-0.6,2.0 +19951114,5.9,2.9,8.9,3.3,2.4 +19951115,2.8,-6.8,8.3,-2.2,3.9 +19951116,2.4,-4.6,11.7,-3.9,2.9 +19951117,4.7,-3.3,11.1,-0.6,3.0 +19951118,6.0,-1.6,13.3,1.1,3.1 +19951119,10.2,1.9,18.9,2.8,2.9 +19951120,9.6,3.1,14.4,6.7,3.2 +19951121,9.9,-0.4,16.1,5.6,3.2 +19951122,4.8,-8.8,11.1,-2.8,2.9 +19951123,6.8,-4.1,15.6,1.7,5.0 +19951124,8.9,5.2,12.8,6.1,4.2 +19951125,6.3,2.9,11.7,1.7,3.9 +19951126,8.9,3.0,18.9,1.1,3.7 +19951127,10.7,5.6,15.6,6.7,5.9 +19951128,15.7,12.6,21.7,12.2,4.9 +19951129,13.4,11.2,17.2,8.3,5.0 +19951130,6.9,1.4,10.0,2.2,3.3 +19951201,8.6,2.6,17.2,2.8,6.2 +19951202,12.2,1.6,19.4,6.7,3.5 +19951203,9.9,3.2,18.3,2.2,3.1 +19951204,14.1,5.6,20.0,10.6,4.0 +19951205,9.7,1.4,13.9,6.7,4.2 +19951206,8.6,5.7,15.6,3.9,2.2 +19951207,6.4,3.7,11.1,2.2,5.9 +19951208,1.8,-7.4,6.1,-2.2,2.9 +19951209,3.8,-0.1,10.0,0.6,3.5 +19951210,-1.6,-13.5,3.3,-6.7,4.8 +19951211,-2.1,-14.4,3.9,-6.1,2.9 +19951212,0.7,-8.9,6.7,-3.9,2.1 +19951213,6.2,-3.7,13.3,1.7,3.0 +19951214,8.3,3.1,15.0,4.4,2.5 +19951215,14.3,10.7,21.7,10.0,4.1 +19951216,14.8,10.7,18.9,11.7,4.6 +19951217,8.1,-0.2,13.3,1.1,2.9 +19951218,6.6,2.6,11.1,3.9,4.1 +19951219,5.4,4.9,9.4,3.9,4.2 +19951220,4.8,-1.9,9.4,2.2,6.3 +19951221,0.3,-10.2,4.4,-3.3,4.0 +19951222,-0.4,-7.1,5.0,-5.6,2.9 +19951223,-1.1,-7.1,3.9,-5.6,2.7 +19951224,-1.8,-10.6,3.9,-5.0,4.2 +19951225,-1.3,-8.7,5.6,-6.7,2.6 +19951226,-0.5,-9.3,3.3,-4.4,4.6 +19951227,0.0,-8.3,6.1,-5.0,3.3 +19951228,0.3,-8.4,5.0,-5.0,3.6 +19951229,0.4,-7.9,8.3,-5.0,2.3 +19951230,1.7,-4.6,10.6,-4.4,1.4 +19951231,6.8,4.3,8.3,5.6,1.4 +19960101,8.2,7.7,9.4,7.8,3.4 +19960102,8.3,7.8,9.4,6.7,4.2 +19960103,7.0,3.8,9.4,2.8,5.5 +19960104,1.1,-5.8,6.1,-3.9,3.1 +19960105,2.5,-4.5,9.4,-1.7,2.5 +19960106,3.1,-0.6,5.0,0.6,3.7 +19960107,-1.8,-3.2,0.0,-3.9,6.3 +19960108,-4.9,-10.4,0.0,-8.9,4.4 +19960109,-2.7,-7.0,4.4,-7.2,5.3 +19960110,2.8,-4.2,8.9,-1.7,3.4 +19960111,0.4,-7.6,2.2,-1.7,3.5 +19960112,0.1,-3.5,5.0,-2.8,4.8 +19960113,3.3,-3.4,10.6,-2.2,5.0 +19960114,5.8,-0.8,16.7,-1.7,2.8 +19960115,10.6,1.2,20.0,4.4,3.1 +19960116,6.8,2.1,11.7,4.4,4.9 +19960117,5.4,2.8,9.4,3.3,2.7 +19960118,10.6,9.8,16.7,7.2,4.0 +19960119,8.4,4.3,18.3,-0.6,9.3 +19960120,-2.6,-12.3,3.3,-6.7,3.8 +19960121,-0.4,-8.9,3.3,-2.8,3.4 +19960122,0.9,-4.3,8.3,-4.4,2.1 +19960123,4.1,-2.1,11.7,-1.7,3.0 +19960124,10.9,5.6,15.0,7.8,6.9 +19960125,2.5,-8.4,8.3,-2.2,3.9 +19960126,0.4,-5.6,3.3,-3.9,4.4 +19960127,8.1,1.6,11.7,2.2,6.8 +19960128,2.3,-14.2,7.2,-2.8,4.3 +19960129,2.0,-7.0,5.6,-0.6,2.3 +19960130,4.2,2.2,6.1,2.8,2.2 +19960131,8.3,5.7,11.7,6.1,3.8 +19960201,2.5,-4.9,7.2,0.6,4.4 +19960202,0.4,-0.5,0.6,0.0,4.8 +19960203,-1.2,-3.0,0.6,-2.8,4.5 +19960204,-5.9,-10.9,-2.8,-8.3,3.4 +19960205,-8.1,-13.8,-1.7,-12.8,2.8 +19960206,-2.4,-9.4,6.1,-8.3,2.5 +19960207,2.9,-4.9,11.1,-1.7,3.2 +19960208,8.1,-0.9,14.4,4.4,5.2 +19960209,13.9,5.6,18.9,9.4,5.5 +19960210,10.6,-0.4,21.1,1.7,3.3 +19960211,14.9,6.0,18.9,12.2,7.4 +19960212,4.1,-8.3,10.6,-1.1,5.1 +19960213,1.2,-8.3,8.9,-5.0,4.2 +19960214,7.8,-4.0,16.1,3.9,7.8 +19960215,10.4,-0.6,17.8,3.9,4.0 +19960216,3.6,-4.1,12.2,-0.6,5.5 +19960217,-0.3,-12.7,7.2,-6.7,5.2 +19960218,3.6,-8.8,11.1,-2.8,4.0 +19960219,5.3,-4.6,15.0,0.6,3.7 +19960220,10.4,8.3,13.9,7.8,3.3 +19960221,11.2,8.8,18.9,5.6,2.0 +19960222,14.0,10.3,21.7,8.9,2.3 +19960223,15.4,12.0,23.9,8.9,3.3 +19960224,16.0,4.9,20.6,13.3,6.0 +19960225,12.3,-3.8,22.8,3.3,3.0 +19960226,16.8,2.8,26.7,9.4,4.4 +19960227,19.6,12.0,27.2,13.9,4.4 +19960228,17.3,11.7,21.1,15.6,5.0 +19960229,8.8,-5.7,15.0,2.8,4.6 +19960301,5.6,-6.6,9.4,2.2,4.1 +19960302,7.6,-1.0,13.9,2.8,3.2 +19960303,8.8,-7.9,16.1,3.9,5.7 +19960304,6.2,-9.3,15.6,-0.6,2.8 +19960305,12.1,2.4,20.0,6.1,5.3 +19960306,14.8,11.9,17.8,12.8,4.6 +19960307,14.1,12.4,17.2,11.7,4.7 +19960308,-0.3,-10.2,8.9,-5.0,7.8 +19960309,-3.6,-15.4,4.4,-8.9,5.9 +19960310,-1.1,-12.4,4.4,-6.1,5.9 +19960311,2.3,-12.3,10.6,-2.8,7.0 +19960312,5.9,-13.2,15.0,-1.1,4.2 +19960313,8.5,-8.4,19.4,-1.1,3.2 +19960314,13.9,0.3,23.9,6.1,4.9 +19960315,15.7,10.9,21.7,12.2,6.4 +19960316,14.2,11.2,23.9,8.9,3.9 +19960317,15.4,13.6,20.0,13.3,3.7 +19960318,11.8,9.9,16.7,8.9,4.7 +19960319,9.2,6.2,11.7,6.1,8.0 +19960320,3.8,-4.9,8.9,0.6,9.5 +19960321,3.1,-5.9,10.6,-2.2,5.0 +19960322,4.3,-6.9,15.0,-3.3,3.3 +19960323,6.8,-10.7,16.7,-1.1,3.8 +19960324,11.6,-5.9,22.2,4.4,3.2 +19960325,11.4,6.3,16.7,7.8,3.7 +19960326,14.2,7.4,22.2,8.3,2.6 +19960327,10.6,-0.4,16.7,6.1,5.5 +19960328,4.6,3.3,6.1,3.3,7.5 +19960329,8.8,5.4,20.0,3.9,2.6 +19960330,12.9,8.9,17.2,11.1,3.4 +19960331,9.4,8.1,10.6,8.3,3.2 +19960401,10.8,9.1,15.0,9.4,2.5 +19960402,9.7,-1.6,19.4,2.2,3.1 +19960403,14.0,0.9,24.4,4.4,2.7 +19960404,18.9,4.3,24.4,13.9,5.0 +19960405,15.1,6.1,20.6,8.9,3.2 +19960406,8.4,3.5,15.0,6.1,3.7 +19960407,8.3,-1.5,14.4,4.4,3.0 +19960408,8.6,-3.4,15.0,5.5,3.0 +19960409,8.2,-0.6,11.7,4.4,3.7 +19960410,6.6,-6.4,13.9,1.1,3.2 +19960411,10.4,-2.6,21.7,-0.6,2.5 +19960412,17.1,3.3,26.1,8.3,3.9 +19960413,17.2,9.4,22.2,12.2,4.4 +19960414,17.6,11.3,26.1,9.4,2.0 +19960415,18.8,12.1,22.8,15.6,4.1 +19960416,14.0,3.7,20.0,7.8,4.6 +19960417,14.1,0.5,23.3,3.3,1.4 +19960418,17.1,4.6,25.0,7.8,3.2 +19960419,16.1,10.1,21.1,12.2,2.9 +19960420,16.4,15.9,22.2,14.4,2.6 +19960421,17.8,14.7,25.6,13.3,3.2 +19960422,20.3,15.3,26.7,15.0,2.3 +19960423,19.6,15.8,24.4,17.2,4.7 +19960424,13.1,1.5,20.0,5.6,2.9 +19960425,15.3,3.7,23.9,6.1,4.0 +19960426,17.2,10.6,22.2,11.6,4.4 +19960427,16.2,6.1,22.8,7.2,1.4 +19960428,17.7,6.4,25.6,11.1,3.2 +19960429,20.6,17.0,24.4,17.7,3.5 +19960430,17.2,12.1,20.6,12.2,4.6 +19960501,12.2,3.9,21.1,3.9,2.2 +19960502,17.8,7.5,25.6,9.4,2.3 +19960503,19.7,11.1,26.7,12.2,3.3 +19960504,21.9,15.4,28.9,15.0,3.3 +19960505,23.4,16.7,29.4,16.1,3.3 +19960506,23.3,17.1,28.3,19.4,3.4 +19960507,17.3,16.4,21.1,14.4,3.4 +19960508,18.2,15.4,27.2,13.3,3.3 +19960509,23.4,17.7,29.4,17.2,2.4 +19960510,23.2,16.2,29.4,17.2,2.5 +19960511,21.4,17.4,26.1,18.3,3.5 +19960512,17.3,8.4,21.7,11.1,3.0 +19960513,13.9,3.7,17.2,10.6,2.5 +19960514,13.6,6.7,17.8,9.4,3.9 +19960515,12.9,9.7,16.1,11.1,2.0 +19960516,18.1,14.4,27.8,12.2,2.5 +19960517,23.3,17.2,30.6,16.7,2.2 +19960518,25.7,17.7,33.3,17.2,2.0 +19960519,26.5,18.4,33.9,18.3,1.5 +19960520,25.9,18.3,33.3,18.3,1.5 +19960521,26.2,16.8,33.3,17.7,2.5 +19960522,25.6,16.2,29.4,20.0,3.0 +19960523,23.6,14.2,30.0,17.2,2.8 +19960524,25.4,20.0,32.2,21.1,2.4 +19960525,23.8,18.6,30.0,17.7,3.0 +19960526,21.2,18.8,26.7,18.3,3.1 +19960527,22.0,19.2,28.9,17.2,3.4 +19960528,22.0,19.0,26.7,18.3,2.6 +19960529,23.3,19.9,29.4,20.0,2.4 +19960530,19.4,14.7,26.1,16.6,4.1 +19960531,17.1,8.7,22.8,11.1,2.5 +19960601,16.8,10.1,22.8,10.6,1.4 +19960602,18.3,12.1,25.0,12.8,1.6 +19960603,20.1,14.9,26.1,16.7,1.9 +19960604,20.1,16.2,25.6,15.0,2.7 +19960605,20.2,14.4,27.2,13.3,1.2 +19960606,21.8,14.3,28.3,15.0,2.0 +19960607,22.4,17.4,28.9,14.4,2.1 +19960608,21.1,18.4,25.0,17.2,2.7 +19960609,21.6,18.6,27.2,18.8,3.5 +19960610,21.9,16.5,27.2,16.6,1.5 +19960611,21.9,16.6,27.2,16.7,2.1 +19960612,22.1,17.8,27.2,17.7,2.3 +19960613,22.6,18.4,28.9,17.2,2.3 +19960614,23.2,19.2,29.4,17.2,0.8 +19960615,23.8,18.9,30.6,17.2,2.1 +19960616,24.3,19.8,30.0,18.8,1.9 +19960617,25.1,20.4,29.4,20.0,1.6 +19960618,25.3,20.3,30.0,21.1,2.7 +19960619,25.1,20.8,30.6,21.1,1.6 +19960620,23.7,20.3,31.1,19.4,1.5 +19960621,26.1,21.1,32.2,20.6,0.5 +19960622,27.7,21.6,33.9,21.1,0.8 +19960623,28.7,20.8,35.6,22.2,1.3 +19960624,27.9,21.4,35.0,22.2,1.0 +19960625,27.4,20.6,32.2,22.2,1.5 +19960626,25.4,17.6,30.0,21.1,3.8 +19960627,23.7,16.9,26.7,19.4,2.9 +19960628,23.8,16.9,30.0,17.7,1.5 +19960629,25.1,17.9,32.2,17.8,1.3 +19960630,27.2,19.2,33.3,21.1,1.1 +19960701,28.8,19.6,35.0,21.7,1.3 +19960702,29.9,19.7,36.3,23.9,1.7 +19960703,27.3,17.3,33.3,21.1,2.3 +19960704,23.1,11.4,29.4,15.0,2.6 +19960705,22.1,13.8,27.2,18.3,3.2 +19960706,23.8,19.0,30.6,20.0,1.9 +19960707,26.4,19.1,33.9,20.0,2.2 +19960708,24.9,21.2,29.4,22.0,3.4 +19960709,25.3,21.3,32.2,21.7,1.6 +19960710,24.6,16.3,29.4,20.6,2.6 +19960711,22.8,15.7,27.2,18.9,4.8 +19960712,23.2,16.3,28.9,20.0,5.5 +19960713,25.4,18.6,31.7,20.0,2.5 +19960714,25.4,21.0,31.1,20.6,3.5 +19960715,23.9,22.2,28.9,22.0,4.8 +19960716,25.4,21.5,31.1,22.2,2.6 +19960717,27.1,21.6,33.3,22.0,1.8 +19960718,26.1,21.8,32.2,21.7,2.2 +19960719,28.2,20.3,33.3,22.8,3.1 +19960720,29.0,21.0,33.3,24.4,2.1 +19960721,25.9,20.9,31.1,22.8,1.3 +19960722,27.4,22.2,32.2,23.3,2.5 +19960723,28.0,22.2,32.8,23.3,1.0 +19960724,24.4,21.2,31.1,21.0,2.3 +19960725,23.2,20.8,30.0,18.0,2.0 +19960726,21.3,18.2,28.9,16.7,1.1 +19960727,22.8,18.1,27.8,17.8,1.3 +19960728,22.9,19.3,26.7,20.0,1.7 +19960729,23.3,18.6,29.4,17.8,2.2 +19960730,24.9,19.8,30.6,20.6,2.2 +19960731,23.7,20.3,27.8,20.6,1.3 +19960801,23.7,20.4,28.3,20.6,2.5 +19960802,23.8,18.4,29.4,18.9,1.1 +19960803,23.0,20.1,28.9,19.0,1.3 +19960804,24.1,20.3,29.4,19.4,2.7 +19960805,24.3,21.8,27.2,22.0,2.9 +19960806,24.2,20.8,28.9,21.0,1.6 +19960807,25.3,21.9,30.6,21.0,1.0 +19960808,23.5,20.6,27.8,21.0,2.4 +19960809,24.4,21.9,28.9,21.8,1.3 +19960810,23.8,21.3,28.3,20.6,1.7 +19960811,23.2,20.9,26.7,21.0,3.1 +19960812,22.2,21.5,25.0,20.6,2.6 +19960813,22.1,19.5,26.7,19.4,0.9 +19960814,22.2,18.6,27.8,18.9,1.9 +19960815,22.7,18.4,28.9,17.0,1.1 +19960816,24.0,19.7,30.0,18.9,0.7 +19960817,24.4,20.0,30.6,18.9,1.1 +19960818,24.1,19.9,31.1,19.0,0.6 +19960819,25.4,20.9,30.0,20.6,2.1 +19960820,25.2,20.7,30.0,20.6,2.7 +19960821,25.0,20.5,30.6,20.0,1.6 +19960822,25.3,20.6,31.1,19.4,1.4 +19960823,25.9,21.1,31.7,20.0,0.5 +19960824,24.9,20.5,31.1,19.4,0.9 +19960825,22.6,20.1,26.7,19.0,2.0 +19960826,23.6,20.8,28.9,20.6,1.4 +19960827,23.8,21.0,28.3,20.6,1.2 +19960828,23.4,21.1,28.3,20.6,1.4 +19960829,23.3,19.8,28.9,20.0,2.5 +19960830,23.6,19.8,27.2,19.0,2.0 +19960831,22.6,19.3,25.0,20.0,2.6 +19960901,22.0,17.1,25.6,17.8,2.8 +19960902,20.8,18.4,22.8,19.4,2.6 +19960903,21.6,19.9,26.7,19.0,2.5 +19960904,22.7,20.2,28.3,18.0,2.6 +19960905,22.9,20.9,26.1,20.6,3.8 +19960906,25.3,18.9,31.1,21.1,2.5 +19960907,24.7,19.9,30.6,18.9,0.7 +19960908,23.8,19.8,30.0,18.9,0.9 +19960909,24.4,20.2,30.6,19.0,1.2 +19960910,23.0,20.7,26.7,20.0,0.9 +19960911,23.1,19.9,27.2,19.0,2.3 +19960912,22.2,18.3,27.8,17.8,1.9 +19960913,20.8,15.4,24.4,16.7,1.9 +19960914,16.8,10.3,23.9,10.0,1.2 +19960915,17.3,11.4,26.1,10.0,1.1 +19960916,19.3,17.5,23.0,17.0,2.1 +19960917,22.4,19.3,28.3,19.0,2.9 +19960918,19.1,12.5,23.9,14.4,2.6 +19960919,17.4,11.1,24.4,10.6,1.3 +19960920,17.8,12.6,24.4,11.1,1.0 +19960921,17.8,14.3,22.8,13.9,1.8 +19960922,19.2,14.2,25.6,13.9,1.6 +19960923,19.3,13.8,27.2,13.3,1.1 +19960924,20.7,15.4,27.8,13.9,1.7 +19960925,21.0,16.4,26.7,15.0,1.3 +19960926,21.2,17.4,26.7,17.2,2.8 +19960927,21.8,19.1,25.0,18.9,2.8 +19960928,22.4,20.1,25.0,18.0,4.8 +19960929,16.5,12.4,19.4,14.4,2.9 +19960930,15.4,12.9,17.0,13.9,3.6 +19961001,14.5,13.2,17.2,12.8,4.5 +19961002,17.4,15.8,22.0,15.0,2.8 +19961003,20.2,17.8,25.0,16.0,1.5 +19961004,15.7,9.6,21.1,12.8,5.7 +19961005,10.7,4.9,16.1,6.1,4.8 +19961006,12.9,8.0,17.2,10.6,5.3 +19961007,12.6,9.8,14.4,11.7,5.0 +19961008,16.8,13.7,23.3,12.2,5.6 +19961009,18.2,13.9,21.7,16.0,2.9 +19961010,11.7,6.3,18.9,5.6,1.0 +19961011,11.9,5.8,17.8,6.7,2.4 +19961012,11.3,5.8,18.3,6.1,1.6 +19961013,12.0,7.1,21.7,4.4,0.8 +19961014,15.5,9.8,26.1,8.3,1.3 +19961015,17.9,12.8,25.0,11.7,2.0 +19961016,17.7,13.8,24.4,11.0,1.2 +19961017,18.0,14.2,25.0,12.8,0.9 +19961018,16.3,13.7,20.6,11.1,1.9 +19961019,11.0,-1.1,16.7,6.7,3.1 +19961020,11.1,-1.8,19.4,2.8,2.0 +19961021,12.6,4.1,22.8,5.0,1.2 +19961022,17.1,10.3,25.0,11.1,1.9 +19961023,16.8,10.3,20.6,13.9,4.7 +19961024,13.7,1.9,22.2,5.0,1.9 +19961025,14.2,7.8,22.2,7.8,1.0 +19961026,17.2,11.2,20.0,15.0,2.0 +19961027,15.7,14.3,17.8,14.0,1.7 +19961028,19.2,16.2,28.3,13.9,1.6 +19961029,20.5,16.2,24.4,15.0,1.9 +19961030,21.9,16.4,26.7,18.3,4.6 +19961031,19.0,8.1,25.6,11.7,2.7 +19961101,17.1,9.2,21.7,11.7,2.5 +19961102,13.7,8.5,18.3,8.3,3.2 +19961103,5.9,-5.2,11.7,0.0,2.7 +19961104,6.0,-1.2,13.3,0.0,0.9 +19961105,10.2,3.8,15.0,7.2,1.1 +19961106,14.6,12.6,19.4,11.7,0.5 +19961107,18.1,16.5,22.0,16.0,1.0 +19961108,17.9,15.3,21.1,10.6,6.5 +19961109,6.1,-1.2,9.4,2.8,3.8 +19961110,3.4,-2.1,8.3,-1.1,2.0 +19961111,2.4,-3.7,8.9,-2.8,1.7 +19961112,2.8,-4.3,8.9,-2.8,1.6 +19961113,3.7,-3.7,8.3,-0.6,1.7 +19961114,8.5,2.1,13.9,6.1,1.2 +19961115,4.8,-4.0,10.6,1.1,5.8 +19961116,2.9,-6.8,9.4,-1.1,4.7 +19961117,6.6,-1.2,13.3,3.3,3.7 +19961118,9.9,6.9,12.0,8.0,1.7 +19961119,12.3,10.2,16.7,10.0,2.2 +19961120,11.7,7.6,17.8,7.8,1.6 +19961121,10.6,9.5,11.1,10.0,1.4 +19961122,8.7,1.7,12.2,4.4,4.6 +19961123,4.7,-1.8,11.7,-1.1,2.2 +19961124,7.9,3.1,16.7,1.7,2.2 +19961125,14.3,9.8,21.1,10.6,1.8 +19961126,14.0,9.3,18.9,7.2,6.3 +19961127,4.9,-5.9,12.2,-0.6,3.1 +19961128,3.3,-3.9,10.0,-2.2,1.3 +19961129,3.1,-1.6,7.8,-1.1,1.0 +19961130,4.9,3.2,6.1,3.9,3.6 +19961201,12.3,11.6,18.0,6.0,4.7 +19961202,9.5,0.2,16.7,4.4,4.2 +19961203,5.9,-1.0,14.4,0.0,2.1 +19961204,7.7,-1.1,12.8,1.7,3.2 +19961205,3.6,-0.2,7.8,2.2,2.2 +19961206,5.9,0.7,15.0,0.0,3.0 +19961207,9.0,6.3,13.3,5.6,2.2 +19961208,6.0,-2.9,11.0,1.1,4.1 +19961209,4.2,-8.1,7.8,0.0,4.5 +19961210,3.9,-4.8,14.4,-2.8,2.6 +19961211,12.4,6.8,18.9,6.7,5.6 +19961212,15.7,13.2,17.2,13.0,4.5 +19961213,13.0,9.5,16.1,8.9,3.7 +19961214,6.9,0.1,16.1,0.0,1.4 +19961215,6.9,-1.1,13.3,0.0,1.3 +19961216,5.5,-0.7,10.6,1.1,1.7 +19961217,6.7,4.9,11.7,4.0,2.6 +19961218,4.4,2.1,8.3,2.0,3.2 +19961219,0.1,-2.8,1.7,-3.3,4.9 +19961220,-5.1,-11.8,0.6,-9.4,1.9 +19961221,-2.8,-9.9,3.3,-7.2,1.7 +19961222,0.3,-7.6,8.9,-5.6,1.9 +19961223,8.2,-1.2,16.1,3.3,3.6 +19961224,11.7,8.8,13.0,10.6,4.4 +19961225,4.4,-4.9,10.6,-3.3,2.0 +19961226,2.8,-5.2,7.2,-1.7,2.6 +19961227,7.0,2.8,12.8,3.9,1.2 +19961228,10.3,8.7,12.2,8.0,0.9 +19961229,13.9,13.3,18.0,12.0,2.9 +19961230,15.7,14.3,21.1,12.0,2.7 +19961231,18.2,15.7,21.7,16.0,3.0 +19970101,12.8,9.6,17.2,8.9,3.5 +19970102,11.4,9.6,19.4,8.0,3.4 +19970103,14.7,10.7,22.8,8.9,3.2 +19970104,15.8,12.2,21.1,11.0,3.8 +19970105,17.1,13.3,18.9,13.9,6.3 +19970106,10.5,2.9,15.6,6.7,2.5 +19970107,8.3,-1.2,11.1,5.6,2.7 +19970108,3.2,-9.6,6.1,1.1,3.3 +19970109,0.8,-0.2,2.0,0.0,3.7 +19970110,2.9,-2.0,6.7,0.0,7.7 +19970111,-0.3,-8.9,6.1,-6.7,4.7 +19970112,-1.2,-8.4,5.6,-6.1,1.1 +19970113,0.1,-10.3,7.2,-5.0,1.0 +19970114,0.8,-13.1,7.8,-5.6,1.6 +19970115,2.2,-8.3,10.0,-2.2,1.0 +19970116,6.4,0.8,10.6,2.8,3.6 +19970117,-3.4,-19.7,1.1,-8.9,4.7 +19970118,-4.6,-17.9,2.8,-11.1,2.3 +19970119,-2.4,-11.9,1.7,-5.6,1.2 +19970120,1.6,-7.5,13.3,-5.6,2.0 +19970121,8.5,-2.7,17.2,0.0,2.2 +19970122,7.6,3.6,13.3,2.2,1.8 +19970123,12.3,8.8,17.8,9.0,2.6 +19970124,6.9,4.1,13.3,2.8,4.4 +19970125,7.8,2.8,14.0,2.8,3.2 +19970126,4.9,-9.1,10.0,0.0,2.8 +19970127,6.4,-3.8,10.0,4.4,2.5 +19970128,9.2,4.1,16.7,5.6,3.2 +19970129,5.8,-5.7,9.4,3.9,4.7 +19970130,5.2,-0.6,6.7,2.8,3.2 +19970131,5.5,1.8,12.8,1.7,2.6 +19970201,11.3,-0.7,20.0,5.0,4.3 +19970202,11.4,3.6,18.9,3.3,2.1 +19970203,11.7,6.1,18.3,5.6,1.7 +19970204,11.4,10.5,15.6,7.2,4.2 +19970205,9.2,7.2,16.7,6.0,2.7 +19970206,5.4,-0.7,11.7,0.0,2.1 +19970207,8.9,1.3,15.0,5.0,1.3 +19970208,8.0,6.3,11.1,6.0,2.4 +19970209,4.6,1.1,7.8,2.2,2.0 +19970210,4.7,2.7,6.0,3.9,1.6 +19970211,3.4,-0.6,7.8,-1.1,2.1 +19970212,1.9,-2.9,7.8,-2.2,1.4 +19970213,3.4,-0.1,6.7,0.6,4.2 +19970214,0.9,0.7,3.0,-0.6,3.7 +19970215,6.8,1.6,13.3,3.0,2.8 +19970216,4.8,-5.5,12.8,-2.2,2.6 +19970217,8.1,-4.0,15.6,2.8,2.8 +19970218,7.7,-2.6,16.7,-0.6,2.3 +19970219,12.9,6.9,21.0,6.7,3.9 +19970220,14.9,9.5,21.1,8.3,2.2 +19970221,16.1,12.5,22.0,13.0,3.8 +19970222,15.5,10.9,18.9,9.4,6.7 +19970223,6.3,-3.9,12.2,0.6,1.7 +19970224,7.9,-4.1,15.6,0.6,1.3 +19970225,9.6,-0.7,15.0,5.6,1.5 +19970226,7.9,3.5,11.1,6.0,1.7 +19970227,12.0,11.8,19.0,8.0,2.9 +19970228,16.8,16.6,18.0,15.0,3.8 +19970301,16.9,15.7,24.4,14.0,1.9 +19970302,18.2,16.5,21.0,16.1,3.1 +19970303,18.3,13.9,25.0,14.0,5.2 +19970304,12.8,7.5,21.1,4.0,3.2 +19970305,15.4,11.2,24.4,8.0,3.3 +19970306,12.8,3.1,21.7,6.1,4.7 +19970307,9.6,-6.5,16.7,3.3,3.0 +19970308,11.9,0.8,20.0,5.0,3.7 +19970309,14.2,4.1,21.7,7.8,2.4 +19970310,19.2,11.4,25.0,15.0,5.2 +19970311,17.9,7.1,25.6,11.1,2.7 +19970312,16.5,2.7,21.7,10.0,2.9 +19970313,12.0,7.9,16.7,9.4,3.4 +19970314,17.0,15.6,21.0,13.0,5.2 +19970315,10.8,0.7,17.8,3.3,4.7 +19970316,5.6,-6.7,12.8,-1.7,2.4 +19970317,7.9,-1.3,17.2,0.0,2.7 +19970318,15.6,5.9,21.1,11.1,3.4 +19970319,14.2,13.2,17.8,12.0,2.6 +19970320,10.9,9.2,18.0,7.8,2.6 +19970321,13.8,7.8,22.2,6.1,2.3 +19970322,17.6,8.5,26.1,10.6,3.8 +19970323,13.2,0.7,18.3,7.2,3.7 +19970324,11.9,-1.1,18.3,5.6,3.2 +19970325,10.1,6.2,14.4,8.3,2.7 +19970326,16.6,12.8,23.9,10.6,3.9 +19970327,13.1,1.9,21.7,3.3,2.0 +19970328,12.4,7.9,18.9,8.3,1.6 +19970329,17.1,11.1,26.7,11.0,4.2 +19970330,17.9,6.3,25.6,9.4,3.2 +19970331,13.1,1.2,22.8,6.1,6.2 +19970401,11.0,-8.9,18.9,4.4,6.1 +19970402,11.6,-4.9,20.0,1.1,2.2 +19970403,14.1,-2.1,23.3,3.3,2.3 +19970404,16.7,1.8,25.0,6.7,2.0 +19970405,18.6,7.4,25.6,12.8,3.4 +19970406,18.2,14.8,22.2,16.0,3.2 +19970407,19.2,11.4,22.2,15.6,4.3 +19970408,12.5,-4.3,19.4,4.4,3.1 +19970409,14.9,-0.9,20.0,10.6,2.9 +19970410,8.3,-6.4,15.0,1.7,2.7 +19970411,10.6,1.0,20.0,2.2,1.6 +19970412,17.1,12.8,22.8,13.0,3.2 +19970413,17.2,8.6,21.1,13.0,4.6 +19970414,8.2,-2.5,13.9,2.8,3.5 +19970415,10.9,1.8,18.9,2.8,1.3 +19970416,13.3,3.4,22.2,5.0,2.6 +19970417,13.8,2.1,19.4,9.4,4.5 +19970418,8.8,-6.2,17.2,1.7,6.3 +19970419,12.1,1.9,20.6,5.0,2.8 +19970420,14.8,5.9,21.7,8.3,2.2 +19970421,16.1,8.3,26.1,7.8,3.2 +19970422,19.3,13.6,25.6,13.0,4.5 +19970423,13.2,11.5,18.3,10.0,4.8 +19970424,11.4,5.6,18.3,5.0,2.1 +19970425,13.9,5.1,20.6,6.7,1.9 +19970426,12.8,4.6,17.2,8.9,2.9 +19970427,10.9,9.6,12.8,9.0,4.5 +19970428,13.0,12.5,17.0,11.1,2.5 +19970429,15.1,12.0,20.0,11.7,3.0 +19970430,16.7,12.8,23.3,12.2,2.9 +19970501,20.5,12.7,27.2,15.6,5.6 +19970502,17.0,3.6,25.0,8.9,2.9 +19970503,18.1,13.7,23.3,15.0,5.0 +19970504,14.6,2.7,20.0,7.2,3.9 +19970505,13.9,2.1,21.1,5.0,3.0 +19970506,18.6,7.1,26.7,12.2,4.1 +19970507,17.9,2.4,22.8,11.1,2.8 +19970508,17.1,9.4,24.4,9.4,3.1 +19970509,20.2,13.9,25.0,14.4,3.9 +19970510,15.4,0.9,22.2,8.3,4.8 +19970511,14.6,1.2,21.7,5.6,3.2 +19970512,16.7,6.7,24.0,10.6,3.9 +19970513,17.3,7.4,23.3,12.2,3.7 +19970514,15.8,5.3,26.7,5.6,4.5 +19970515,21.2,9.7,25.0,15.6,5.9 +19970516,15.4,-1.7,21.7,8.3,4.2 +19970517,16.2,3.8,26.7,6.1,2.2 +19970518,21.7,9.0,30.6,11.7,3.2 +19970519,24.1,14.6,30.0,15.6,4.8 +19970520,23.7,18.3,29.0,20.0,4.9 +19970521,20.3,9.8,25.0,15.0,3.5 +19970522,17.8,5.3,23.9,11.1,3.4 +19970523,19.2,8.7,26.7,13.3,2.2 +19970524,20.9,14.3,26.1,16.1,3.5 +19970525,21.2,18.8,25.6,19.0,3.9 +19970526,23.4,18.7,30.6,19.0,4.7 +19970527,18.7,15.5,26.1,15.0,4.5 +19970528,14.8,9.9,18.3,12.2,4.2 +19970529,14.8,10.6,18.3,12.8,3.1 +19970530,16.1,14.7,20.0,14.0,3.1 +19970531,20.8,16.1,27.2,16.7,2.5 +19970601,20.3,17.2,23.3,17.8,4.2 +19970602,19.9,16.3,24.4,16.7,2.2 +19970603,18.0,14.8,21.0,15.6,3.1 +19970604,14.7,11.3,17.8,12.2,4.7 +19970605,16.5,10.3,21.1,13.3,3.2 +19970606,15.1,9.1,19.4,13.3,4.8 +19970607,13.6,10.9,16.1,12.0,5.0 +19970608,15.7,11.3,18.9,13.0,2.4 +19970609,16.7,12.0,20.6,14.4,2.9 +19970610,19.1,11.4,26.1,13.3,3.7 +19970611,20.7,14.6,25.0,17.2,1.9 +19970612,22.5,18.6,28.3,19.0,3.4 +19970613,23.5,19.7,30.6,19.0,4.2 +19970614,22.4,18.6,28.3,18.3,3.5 +19970615,21.9,17.4,27.2,17.8,3.9 +19970616,21.6,17.9,26.1,17.2,2.5 +19970617,23.4,20.5,27.2,20.6,3.2 +19970618,23.6,20.2,26.7,20.6,5.6 +19970619,23.9,17.7,30.0,17.8,2.9 +19970620,25.4,18.6,31.1,19.4,1.5 +19970621,24.6,19.0,30.0,20.6,2.4 +19970622,22.6,19.1,31.1,18.3,2.2 +19970623,25.4,20.2,30.6,20.0,2.6 +19970624,25.8,20.8,30.6,21.7,2.3 +19970625,26.9,21.6,32.2,22.2,3.0 +19970626,26.6,19.9,31.1,22.2,4.7 +19970627,23.0,20.8,28.3,21.0,3.1 +19970628,21.7,20.0,23.9,20.6,4.0 +19970629,22.4,16.6,27.2,18.9,2.9 +19970630,22.8,18.0,27.2,19.4,1.0 +19970701,24.6,21.0,29.4,21.1,1.6 +19970702,26.4,20.4,31.7,21.1,1.6 +19970703,28.2,21.8,35.6,22.2,1.4 +19970704,27.5,17.8,34.4,18.9,2.2 +19970705,25.4,18.5,31.7,18.9,1.7 +19970706,24.2,16.6,29.4,17.2,2.1 +19970707,23.9,16.6,28.9,18.9,1.8 +19970708,24.5,18.6,30.0,20.0,1.0 +19970709,24.1,20.1,30.6,19.0,2.6 +19970710,24.4,19.4,31.7,18.3,1.7 +19970711,24.1,19.9,28.3,21.0,3.7 +19970712,24.7,18.4,30.0,19.4,1.4 +19970713,26.4,19.7,32.2,21.7,1.3 +19970714,27.2,21.2,32.8,22.0,0.7 +19970715,27.6,21.2,33.3,21.0,1.0 +19970716,25.8,20.6,32.2,21.1,1.8 +19970717,23.9,19.7,30.0,19.0,2.1 +19970718,25.6,19.4,32.8,19.4,1.3 +19970719,27.5,20.4,33.9,22.2,1.8 +19970720,26.9,22.2,32.8,22.0,1.6 +19970721,26.6,22.2,32.2,21.1,2.2 +19970722,26.6,23.0,31.1,23.3,2.6 +19970723,24.2,22.7,27.0,22.0,2.3 +19970724,24.4,22.2,31.7,21.7,3.8 +19970725,25.1,22.2,29.4,21.7,2.5 +19970726,26.4,22.9,31.1,23.0,1.3 +19970727,27.2,23.2,31.7,23.3,1.3 +19970728,27.7,23.6,34.4,23.3,1.9 +19970729,26.2,21.1,31.7,22.2,1.7 +19970730,21.9,20.3,26.7,17.8,4.5 +19970731,19.8,14.7,26.1,16.7,4.4 +19970801,21.2,13.4,27.8,13.9,2.7 +19970802,22.4,15.4,30.0,15.0,0.9 +19970803,24.5,17.7,31.1,18.3,1.7 +19970804,26.1,19.0,31.7,20.6,1.2 +19970805,24.8,19.0,30.6,19.4,2.4 +19970806,21.9,14.9,26.7,16.7,2.8 +19970807,22.9,16.9,27.8,19.4,2.3 +19970808,22.2,17.1,26.1,18.0,2.6 +19970809,21.4,16.7,25.0,18.9,1.1 +19970810,21.6,18.3,27.0,18.9,1.6 +19970811,23.8,20.3,30.0,19.0,1.1 +19970812,25.8,20.8,31.1,20.6,2.2 +19970813,26.0,21.6,31.1,21.7,4.0 +19970814,25.8,21.8,32.2,21.7,3.0 +19970815,26.7,22.4,32.8,21.7,2.8 +19970816,26.6,22.1,33.9,21.7,2.6 +19970817,27.6,22.6,33.9,22.2,3.1 +19970818,28.3,22.0,32.8,23.9,3.3 +19970819,26.1,19.7,30.6,21.7,2.3 +19970820,25.6,21.5,31.1,22.8,3.5 +19970821,24.7,19.1,30.0,20.0,2.0 +19970822,22.3,12.8,28.0,16.1,2.8 +19970823,21.3,11.1,27.8,15.0,2.2 +19970824,21.6,12.0,28.3,16.1,2.3 +19970825,22.1,14.3,29.4,16.7,1.0 +19970826,23.1,16.3,31.1,17.2,1.9 +19970827,24.9,17.6,31.7,18.3,1.5 +19970828,25.3,19.6,31.7,20.0,2.1 +19970829,26.3,18.4,33.9,19.4,1.7 +19970830,25.7,17.0,31.7,20.0,3.5 +19970831,25.1,20.3,31.1,20.6,1.7 +19970901,25.2,20.3,31.7,20.0,1.6 +19970902,26.1,19.9,32.8,21.7,2.3 +19970903,25.3,19.0,32.2,19.0,1.9 +19970904,21.7,10.5,26.7,15.6,4.4 +19970905,18.0,7.3,27.2,10.0,1.6 +19970906,20.7,10.8,29.4,13.3,2.3 +19970907,22.8,12.8,31.1,15.0,1.7 +19970908,24.4,15.3,31.1,18.3,0.9 +19970909,23.1,16.9,28.3,19.4,2.2 +19970910,21.1,19.0,24.4,18.9,2.3 +19970911,19.2,15.9,26.7,15.0,2.1 +19970912,21.7,16.3,28.9,16.1,1.7 +19970913,22.6,16.1,28.9,17.8,2.3 +19970914,22.6,17.3,29.4,17.8,1.7 +19970915,23.9,17.5,29.4,20.0,3.1 +19970916,23.0,17.2,28.9,18.0,2.2 +19970917,23.6,18.0,31.1,18.0,1.2 +19970918,24.4,19.7,29.4,21.0,1.2 +19970919,24.3,19.4,31.7,19.0,1.6 +19970920,25.4,18.1,33.9,17.8,1.4 +19970921,23.2,15.7,28.3,21.1,4.2 +19970922,19.3,11.5,21.7,17.2,2.6 +19970923,21.1,13.7,28.3,17.0,2.4 +19970924,17.9,16.3,23.9,13.0,4.1 +19970925,14.1,13.2,18.9,12.0,2.8 +19970926,18.4,15.1,23.3,16.0,2.2 +19970927,18.9,14.0,21.1,17.2,5.0 +19970928,17.1,16.3,19.4,16.0,4.3 +19970929,19.9,13.8,25.0,16.1,3.5 +19970930,19.2,9.8,28.3,12.6,5.3 +19971001,18.1,8.8,24.4,11.1,2.9 +19971002,15.1,7.9,20.6,10.0,2.7 +19971003,14.7,9.7,23.3,7.2,1.1 +19971004,17.1,11.3,26.1,10.0,1.3 +19971005,18.9,12.6,28.3,11.7,1.5 +19971006,20.7,13.8,28.9,13.3,0.8 +19971007,20.6,14.9,28.3,13.9,0.8 +19971008,20.9,16.0,28.3,15.0,1.4 +19971009,20.7,16.2,27.2,15.0,1.2 +19971010,21.2,16.6,28.9,15.6,1.0 +19971011,21.2,16.6,26.7,16.1,1.7 +19971012,18.6,15.6,21.0,16.7,3.1 +19971013,18.9,16.3,24.4,16.0,2.6 +19971014,19.9,18.3,23.3,18.0,2.2 +19971015,14.9,9.4,17.2,13.3,4.1 +19971016,14.1,8.3,18.9,10.6,3.4 +19971017,13.5,9.2,17.2,10.6,3.4 +19971018,11.9,10.5,13.3,10.6,4.1 +19971019,14.2,11.4,18.9,11.7,3.9 +19971020,15.3,6.3,21.7,10.0,4.5 +19971021,13.3,8.6,20.0,7.2,2.0 +19971022,12.8,7.9,16.1,9.4,2.2 +19971023,10.2,2.2,15.0,3.9,2.6 +19971024,8.7,7.9,12.0,6.0,1.8 +19971025,14.4,14.1,18.3,11.0,2.9 +19971026,15.9,15.6,17.8,12.8,3.2 +19971027,13.2,10.4,15.6,9.4,4.0 +19971028,7.9,-0.2,14.4,1.7,3.0 +19971029,10.0,4.1,17.8,5.6,1.7 +19971030,10.7,5.2,18.9,3.9,1.2 +19971031,10.3,6.7,16.1,5.6,1.6 +19971101,13.6,11.7,17.2,11.0,3.6 +19971102,13.8,8.9,17.2,9.4,4.2 +19971103,10.5,3.2,14.4,6.1,5.6 +19971104,8.4,1.0,12.8,3.3,2.4 +19971105,6.4,0.8,12.8,1.7,3.0 +19971106,6.9,2.4,8.9,4.4,4.4 +19971107,9.6,5.7,15.6,7.0,2.9 +19971108,9.1,5.1,13.3,5.6,3.5 +19971109,9.0,3.8,15.0,4.4,3.1 +19971110,8.3,5.0,12.8,3.3,1.2 +19971111,8.1,4.9,12.8,2.8,1.3 +19971112,7.0,4.2,10.0,3.9,0.6 +19971113,5.6,5.2,6.7,3.3,5.5 +19971114,5.8,5.2,13.0,3.0,4.1 +19971115,6.6,3.9,11.7,1.7,2.9 +19971116,3.5,-4.0,8.3,-1.7,3.0 +19971117,1.3,-6.4,7.8,-4.4,2.0 +19971118,2.6,-4.7,11.1,-3.3,1.5 +19971119,5.8,-2.1,13.3,0.6,1.5 +19971120,5.9,-1.8,15.6,-1.7,1.0 +19971121,5.7,2.7,7.8,2.8,1.9 +19971122,10.9,9.2,20.0,7.0,2.7 +19971123,11.0,5.6,16.7,5.6,2.0 +19971124,6.2,-2.5,11.1,1.7,2.5 +19971125,4.0,-4.4,11.7,-2.2,2.2 +19971126,7.4,-0.6,15.0,1.7,5.5 +19971127,10.6,0.3,18.3,2.8,2.6 +19971128,9.5,0.5,18.3,2.8,2.0 +19971129,11.4,7.2,16.1,7.2,1.1 +19971130,12.8,12.5,14.4,12.0,2.6 +19971201,12.7,7.7,15.6,9.4,3.8 +19971202,6.8,-0.1,14.4,0.6,1.7 +19971203,7.9,4.6,10.6,4.4,1.2 +19971204,10.6,8.1,16.1,7.8,3.4 +19971205,6.0,-1.2,11.1,1.1,4.3 +19971206,0.2,-7.2,5.0,-3.9,2.4 +19971207,-0.6,-7.3,6.1,-5.0,2.0 +19971208,-1.1,-4.8,1.7,-4.4,1.8 +19971209,1.3,0.6,4.4,0.0,1.6 +19971210,5.3,4.6,11.1,2.8,2.2 +19971211,6.2,3.5,11.1,2.2,1.2 +19971212,6.6,2.3,8.3,5.0,2.5 +19971213,3.9,-0.7,8.3,-1.1,1.6 +19971214,5.3,-4.3,7.8,3.9,2.9 +19971215,3.3,-8.6,11.7,-2.8,3.4 +19971216,5.9,-11.1,15.6,-1.7,2.2 +19971217,6.2,-7.8,16.1,-1.7,0.9 +19971218,8.1,-2.2,14.4,2.2,2.2 +19971219,8.5,-1.1,18.3,1.7,2.9 +19971220,10.6,0.5,18.3,3.9,3.1 +19971221,9.4,4.4,13.3,5.6,3.5 +19971222,5.7,4.4,8.9,4.0,5.0 +19971223,7.5,6.5,12.2,5.6,2.6 +19971224,7.4,7.2,9.4,6.7,3.9 +19971225,9.6,7.0,15.6,6.7,4.4 +19971226,8.0,3.6,14.4,1.7,2.3 +19971227,6.4,3.8,10.0,3.9,2.8 +19971228,1.3,-6.4,5.0,-3.9,3.0 +19971229,0.1,-2.0,1.1,-2.2,1.8 +19971230,1.0,-3.4,4.4,-1.1,5.8 +19971231,0.8,-4.1,5.6,-2.2,4.3 +19980101,-1.5,-10.8,5.0,-7.2,2.5 +19980102,3.7,-8.1,13.3,-1.7,4.4 +19980103,8.2,2.9,16.7,0.6,2.2 +19980104,9.8,6.3,18.9,2.8,1.4 +19980105,13.1,10.6,19.4,2.8,2.3 +19980106,14.7,14.4,18.3,10.6,2.7 +19980107,17.1,16.9,20.0,15.0,3.3 +19980108,18.2,16.5,20.6,15.0,6.0 +19980109,11.8,5.7,17.2,7.8,6.4 +19980110,6.6,1.1,13.3,1.1,1.7 +19980111,7.4,1.8,16.7,0.6,1.5 +19980112,9.7,4.7,16.7,0.0,1.7 +19980113,10.1,7.4,16.1,7.0,2.5 +19980114,8.5,2.9,11.1,6.1,3.4 +19980115,2.3,1.3,5.6,0.6,5.1 +19980116,5.2,4.7,8.3,3.3,3.3 +19980117,6.1,4.6,9.4,3.3,4.1 +19980118,4.4,-1.7,11.7,-1.7,1.5 +19980119,5.2,2.1,12.8,-2.2,2.9 +19980120,3.7,-0.5,7.8,-1.1,1.8 +19980121,3.3,-2.9,8.3,-0.6,1.8 +19980122,3.9,0.1,8.9,-0.6,3.5 +19980123,5.3,4.6,9.4,3.0,4.5 +19980124,7.7,6.1,9.4,3.9,2.1 +19980125,3.3,-5.5,8.3,-1.1,2.7 +19980126,3.6,-3.7,10.6,-1.7,2.3 +19980127,4.7,0.4,11.1,-1.7,6.8 +19980128,7.3,-0.6,11.7,4.4,7.2 +19980129,7.4,-1.2,16.1,-0.6,2.7 +19980130,8.5,-1.2,16.1,-1.7,4.1 +19980131,5.4,-3.9,10.0,1.1,3.0 +19980201,3.3,-4.4,10.0,-1.7,1.9 +19980202,4.2,-2.2,10.6,-2.2,3.0 +19980203,5.9,4.8,10.0,0.0,8.7 +19980204,5.6,4.3,7.2,4.0,9.7 +19980205,5.8,-0.3,8.9,4.4,3.5 +19980206,5.7,0.4,10.0,3.9,2.1 +19980207,5.5,2.5,7.2,3.0,2.9 +19980208,6.0,1.9,10.0,2.8,1.4 +19980209,8.7,-0.3,12.8,6.1,1.7 +19980210,6.3,-1.6,13.3,-0.6,1.6 +19980211,7.6,4.2,14.0,3.3,2.0 +19980212,10.2,4.4,15.0,6.1,5.2 +19980213,6.6,1.5,11.7,1.1,1.4 +19980214,8.4,-0.8,12.8,5.6,3.1 +19980215,5.4,-2.9,10.0,0.6,3.3 +19980216,4.4,0.9,10.6,0.0,7.5 +19980217,9.8,7.5,17.2,5.0,7.3 +19980218,9.9,6.3,17.8,6.7,6.5 +19980219,8.9,4.1,17.2,3.3,3.2 +19980220,12.0,4.6,17.8,2.2,3.1 +19980221,7.8,0.1,14.4,0.6,2.1 +19980222,7.1,0.8,15.0,0.0,3.3 +19980223,7.6,5.7,11.7,2.2,5.2 +19980224,10.7,-0.8,18.9,3.9,6.1 +19980225,13.4,-3.3,22.8,3.9,3.7 +19980226,13.3,-2.7,22.8,3.9,2.9 +19980227,11.7,8.4,21.1,7.8,2.6 +19980228,14.4,9.9,21.1,11.1,3.0 +19980301,14.1,0.7,17.8,10.6,4.3 +19980302,9.1,-2.2,13.9,3.9,3.4 +19980303,4.2,-5.6,9.4,-1.1,3.7 +19980304,5.0,-3.3,11.7,0.0,3.0 +19980305,9.6,2.1,12.8,7.8,3.4 +19980306,7.9,6.3,10.0,6.0,2.7 +19980307,6.4,5.7,8.9,5.6,3.9 +19980308,11.7,11.0,17.8,8.0,4.0 +19980309,12.2,8.6,16.0,6.7,7.6 +19980310,4.2,-5.3,6.7,0.6,5.5 +19980311,-0.1,-11.1,7.2,-5.6,4.0 +19980312,-1.1,-13.2,5.0,-7.2,4.3 +19980313,1.0,-11.7,9.4,-6.1,3.1 +19980314,9.0,-4.1,19.4,1.7,5.6 +19980315,11.9,-0.7,20.0,1.1,2.0 +19980316,7.5,-0.4,18.3,3.3,4.7 +19980317,2.9,0.9,5.0,2.0,6.9 +19980318,3.8,3.4,6.7,2.2,5.3 +19980319,11.7,9.2,22.2,6.7,2.0 +19980320,15.5,11.9,22.8,7.2,4.6 +19980321,8.0,1.3,13.3,4.0,4.9 +19980322,6.6,-1.4,14.4,0.6,3.6 +19980323,6.8,-1.7,15.0,-1.1,2.9 +19980324,9.4,3.3,16.1,3.9,1.5 +19980325,9.5,1.6,16.1,3.9,3.3 +19980326,13.1,7.2,22.8,7.0,2.6 +19980327,17.2,10.8,25.0,10.6,2.9 +19980328,18.3,11.1,25.6,10.6,4.3 +19980329,19.1,10.9,27.2,11.7,2.8 +19980330,21.0,11.8,27.8,13.9,3.8 +19980331,20.6,14.8,28.3,13.3,4.7 +19980401,20.2,15.1,25.0,16.7,5.9 +19980402,18.5,3.8,27.2,10.0,4.8 +19980403,13.3,6.8,27.8,8.9,2.8 +19980404,12.0,8.1,16.7,8.0,4.5 +19980405,10.2,0.7,18.3,4.4,2.4 +19980406,13.2,0.5,22.2,5.0,1.7 +19980407,16.3,5.6,25.0,7.2,4.0 +19980408,20.2,13.5,25.6,15.0,4.1 +19980409,18.8,12.9,26.1,14.4,6.4 +19980410,11.4,3.7,13.9,8.9,5.6 +19980411,11.4,0.2,20.0,6.1,3.7 +19980412,13.1,-0.6,20.0,5.6,2.7 +19980413,12.8,2.9,21.1,3.9,2.8 +19980414,13.8,9.1,21.7,3.9,5.1 +19980415,17.3,14.5,23.3,13.0,4.6 +19980416,18.6,16.5,23.9,13.9,4.9 +19980417,20.9,17.9,25.6,16.0,5.0 +19980418,17.1,14.1,22.2,14.0,3.4 +19980419,13.3,13.0,17.0,11.0,3.8 +19980420,13.9,7.7,20.0,7.8,2.4 +19980421,12.9,7.2,20.0,7.2,3.0 +19980422,11.4,10.2,19.4,8.3,2.5 +19980423,10.9,8.6,15.6,8.3,2.6 +19980424,13.1,6.7,21.7,6.1,1.9 +19980425,15.7,6.1,23.0,8.9,2.2 +19980426,18.2,8.1,23.9,12.8,5.7 +19980427,17.7,11.1,24.4,11.7,3.5 +19980428,11.7,4.8,24.4,7.8,4.3 +19980429,15.2,9.4,20.0,11.7,1.3 +19980430,15.2,13.9,20.0,11.1,2.5 +19980501,16.6,13.6,22.2,13.9,4.3 +19980502,15.9,9.8,22.2,9.4,4.7 +19980503,16.4,11.7,22.2,8.9,4.3 +19980504,17.2,12.3,22.2,11.7,4.6 +19980505,16.2,8.6,22.8,8.3,2.5 +19980506,18.4,11.2,25.6,11.7,2.7 +19980507,18.6,16.9,25.6,11.1,2.2 +19980508,19.9,15.5,26.1,15.0,5.0 +19980509,20.6,13.4,26.1,15.0,2.7 +19980510,18.8,16.9,26.1,15.0,3.3 +19980511,18.7,13.6,25.6,13.0,3.5 +19980512,19.6,10.6,26.1,11.1,2.8 +19980513,19.0,13.5,26.0,10.6,2.1 +19980514,21.0,16.8,27.2,16.1,1.8 +19980515,23.4,19.1,30.0,18.0,1.3 +19980516,24.6,20.5,30.0,17.8,1.4 +19980517,24.9,19.4,30.0,20.0,2.1 +19980518,23.7,15.8,29.4,18.3,2.8 +19980519,23.3,15.0,31.1,15.6,2.0 +19980520,25.0,17.4,31.7,15.6,2.7 +19980521,26.2,18.9,32.8,20.6,2.7 +19980522,24.4,19.3,33.3,19.4,2.2 +19980523,24.2,19.8,30.6,19.4,1.9 +19980524,22.9,19.7,27.8,19.0,2.2 +19980525,25.6,19.9,31.1,18.9,3.1 +19980526,26.4,18.5,31.7,20.6,4.0 +19980527,24.2,18.7,32.2,17.8,2.4 +19980528,23.3,20.1,32.2,17.8,2.0 +19980529,25.1,20.3,30.0,19.4,1.7 +19980530,24.7,20.8,31.1,20.6,1.7 +19980531,24.0,19.8,30.0,18.0,3.8 +19980601,27.6,18.3,34.4,22.2,4.0 +19980602,23.3,18.7,31.1,17.0,2.8 +19980603,27.6,20.1,33.3,21.7,3.9 +19980604,26.4,20.9,31.1,21.0,3.4 +19980605,22.5,20.3,28.9,18.9,3.1 +19980606,23.2,19.2,29.4,18.9,3.6 +19980607,18.2,7.5,23.9,11.7,4.7 +19980608,18.1,8.3,24.4,10.0,2.3 +19980609,19.2,14.9,25.6,10.0,2.0 +19980610,21.0,19.8,25.6,18.9,3.2 +19980611,24.4,20.8,31.7,19.4,3.9 +19980612,26.7,21.1,32.2,21.0,3.8 +19980613,27.7,19.9,32.2,20.6,5.4 +19980614,23.9,16.2,28.9,17.8,2.5 +19980615,26.7,20.7,32.2,22.0,5.7 +19980616,26.1,18.2,30.0,20.6,6.6 +19980617,24.9,17.6,31.1,17.8,2.7 +19980618,25.6,15.7,33.9,17.2,1.6 +19980619,25.7,20.9,33.9,16.7,3.7 +19980620,24.4,18.2,32.8,18.9,2.2 +19980621,24.4,18.6,32.2,18.9,1.9 +19980622,25.4,20.4,33.9,20.0,1.5 +19980623,25.3,19.1,32.8,18.9,2.9 +19980624,27.4,21.7,33.9,18.3,1.5 +19980625,25.4,20.1,32.8,18.9,2.1 +19980626,28.6,22.2,35.0,22.0,1.7 +19980627,28.9,21.4,35.6,21.7,2.5 +19980628,29.6,20.4,35.6,21.7,2.2 +19980629,28.8,21.2,36.1,21.7,1.3 +19980630,27.4,21.0,36.1,22.2,4.5 +19980701,27.1,19.0,32.8,21.1,2.8 +19980702,25.7,17.4,30.6,19.4,1.5 +19980703,25.8,18.6,32.2,19.4,1.7 +19980704,26.6,19.6,33.3,21.1,1.7 +19980705,26.9,20.1,33.9,20.6,3.0 +19980706,25.1,20.1,33.3,21.7,2.4 +19980707,26.3,19.2,32.8,21.1,2.0 +19980708,28.3,21.6,33.3,20.6,3.5 +19980709,28.2,21.8,35.0,22.8,2.0 +19980710,28.9,18.9,35.6,22.8,2.9 +19980711,27.0,16.7,31.7,22.8,3.0 +19980712,26.4,19.5,31.7,21.7,1.8 +19980713,25.9,18.4,30.6,20.0,2.8 +19980714,24.7,16.8,31.7,20.0,2.3 +19980715,25.4,17.7,31.7,19.4,3.2 +19980716,27.9,20.5,33.3,22.8,2.3 +19980717,26.4,22.5,32.8,22.0,1.8 +19980718,26.7,19.2,33.3,21.7,2.0 +19980719,28.5,20.1,36.1,22.2,1.6 +19980720,27.3,19.7,35.6,21.1,2.9 +19980721,27.0,21.1,35.6,21.1,3.1 +19980722,27.6,21.9,34.4,23.3,2.5 +19980723,26.3,22.1,32.2,23.0,3.5 +19980724,24.9,21.3,32.2,21.1,2.1 +19980725,24.6,22.8,32.8,21.1,0.9 +19980726,25.0,21.3,31.1,21.0,1.9 +19980727,23.9,22.0,31.1,21.1,1.7 +19980728,25.9,22.8,31.1,22.8,1.5 +19980729,27.1,21.5,32.2,22.0,1.9 +19980730,27.1,21.2,32.8,21.7,2.1 +19980731,26.8,22.7,32.2,21.7,3.8 +19980801,24.4,18.5,28.3,20.6,4.7 +19980802,23.1,14.5,27.8,18.3,4.0 +19980803,22.4,12.7,29.4,16.7,3.0 +19980804,23.3,12.4,30.6,17.2,2.8 +19980805,24.0,13.9,32.2,16.7,1.7 +19980806,24.8,15.7,32.8,16.7,2.2 +19980807,24.3,17.5,32.2,17.8,3.0 +19980808,24.7,21.0,31.1,20.6,2.1 +19980809,23.9,22.3,31.1,20.6,1.3 +19980810,25.1,21.9,31.1,22.0,2.7 +19980811,24.9,20.4,31.1,20.6,2.0 +19980812,25.5,20.2,32.2,20.0,1.4 +19980813,26.0,21.0,32.2,20.6,2.7 +19980814,23.6,20.6,27.8,21.0,2.5 +19980815,24.1,21.9,28.3,21.1,2.7 +19980816,24.1,21.9,30.0,21.1,2.0 +19980817,24.7,21.6,30.6,21.1,3.8 +19980818,25.6,21.1,31.7,21.1,1.7 +19980819,25.8,21.4,31.7,20.6,2.5 +19980820,24.0,16.6,26.7,18.9,3.5 +19980821,22.5,16.3,29.4,16.1,1.4 +19980822,23.8,17.2,31.7,16.7,1.2 +19980823,26.0,18.6,32.8,19.4,1.4 +19980824,26.6,18.4,33.3,20.0,2.1 +19980825,26.8,18.7,35.0,18.9,1.4 +19980826,28.0,20.4,36.0,21.7,3.8 +19980827,29.6,19.7,36.1,21.1,3.3 +19980828,28.2,19.9,33.3,22.8,2.5 +19980829,28.9,19.9,36.7,21.1,2.6 +19980830,27.6,20.7,36.7,21.1,2.6 +19980831,27.9,19.9,33.9,22.2,2.7 +19980901,26.5,17.8,31.7,20.0,2.2 +19980902,26.0,18.0,32.8,20.0,2.0 +19980903,22.3,19.6,28.9,19.0,4.3 +19980904,23.4,17.8,31.7,18.9,3.0 +19980905,26.1,18.3,32.8,19.4,1.9 +19980906,25.7,20.7,32.8,19.4,1.4 +19980907,25.6,20.3,33.3,20.0,3.2 +19980908,25.7,18.6,30.0,19.0,5.1 +19980909,18.4,7.4,23.9,11.7,2.2 +19980910,17.8,9.1,25.6,10.0,1.9 +19980911,20.1,11.3,28.3,12.8,1.5 +19980912,22.7,13.2,31.1,15.6,1.8 +19980913,24.4,15.5,31.1,15.0,2.2 +19980914,24.1,18.0,30.6,17.2,1.0 +19980915,23.8,19.5,31.1,17.2,1.4 +19980916,24.2,18.9,30.6,18.0,1.4 +19980917,24.2,18.9,31.1,17.8,1.3 +19980918,24.6,19.7,31.1,17.8,2.3 +19980919,23.9,19.7,30.0,20.0,3.4 +19980920,23.2,18.7,28.9,17.8,1.4 +19980921,22.8,21.7,30.0,17.8,1.4 +19980922,24.2,21.2,31.1,20.0,1.9 +19980923,22.8,17.4,25.6,19.4,3.1 +19980924,19.9,13.9,23.3,16.1,2.5 +19980925,20.0,15.0,27.8,14.4,1.6 +19980926,21.8,16.1,29.4,15.0,1.0 +19980927,22.4,17.3,31.1,15.6,2.2 +19980928,24.6,21.2,31.1,15.0,3.3 +19980929,22.8,21.1,27.8,21.1,2.6 +19980930,21.4,19.5,25.6,19.0,2.1 +19981001,23.1,18.3,30.6,18.3,2.2 +19981002,18.1,9.2,24.4,12.2,3.1 +19981003,17.1,12.8,23.9,11.7,0.9 +19981004,21.1,19.3,25.6,19.0,2.0 +19981005,21.5,20.4,25.6,19.4,2.6 +19981006,19.6,18.2,21.1,18.3,3.8 +19981007,19.3,18.9,23.9,18.0,3.1 +19981008,21.8,18.8,27.2,18.9,4.0 +19981009,16.8,10.5,22.2,12.2,3.8 +19981010,15.6,8.8,22.8,8.9,2.1 +19981011,16.9,12.6,24.4,10.0,1.2 +19981012,17.7,13.5,25.0,10.0,1.3 +19981013,18.2,13.6,25.0,11.7,2.0 +19981014,17.2,10.6,23.3,10.6,1.2 +19981015,15.8,7.6,22.8,8.9,2.3 +19981016,15.7,10.1,23.3,8.3,1.3 +19981017,16.2,11.4,23.3,10.0,1.2 +19981018,15.8,11.7,23.3,8.9,1.9 +19981019,18.8,15.1,26.1,12.8,2.6 +19981020,20.9,15.4,27.2,12.2,2.7 +19981021,14.3,7.2,24.4,10.6,1.5 +19981022,12.2,2.4,16.1,8.3,4.3 +19981023,8.4,-0.4,16.7,1.1,2.2 +19981024,11.3,3.7,22.2,2.8,0.7 +19981025,13.7,6.2,23.9,5.6,0.9 +19981026,14.8,7.8,25.0,6.7,0.9 +19981027,15.6,8.7,25.6,5.6,1.5 +19981028,15.8,9.3,25.6,7.0,2.0 +19981029,19.0,11.1,26.1,6.7,2.9 +19981030,18.0,12.5,26.7,10.6,1.4 +19981031,20.9,12.2,27.2,10.0,3.1 +19981101,17.6,10.2,23.3,11.1,2.1 +19981102,15.8,11.8,23.3,10.6,1.5 +19981103,13.7,13.2,15.6,11.0,3.6 +19981104,11.8,9.9,17.0,10.0,2.7 +19981105,9.5,5.6,11.7,7.8,4.2 +19981106,8.7,1.7,11.7,7.0,2.9 +19981107,6.4,-1.3,12.2,3.3,2.7 +19981108,6.8,4.3,12.2,2.8,1.4 +19981109,10.6,9.8,12.2,10.0,1.4 +19981110,14.6,13.3,21.7,11.0,2.3 +19981111,16.7,13.6,21.7,11.1,4.0 +19981112,10.3,0.2,16.1,5.0,2.6 +19981113,10.7,4.5,16.7,3.9,0.9 +19981114,11.1,8.7,15.0,7.8,2.8 +19981115,13.2,11.0,20.6,10.6,2.4 +19981116,12.6,11.6,15.6,10.0,1.2 +19981117,15.8,11.9,22.2,13.0,2.6 +19981118,11.4,5.3,15.6,6.1,3.4 +19981119,11.2,7.4,16.1,6.1,1.5 +19981120,14.6,13.0,18.3,11.7,3.2 +19981121,10.7,-0.3,16.7,6.1,4.6 +19981122,7.1,-0.9,13.9,0.6,1.3 +19981123,9.0,3.4,17.8,2.2,2.0 +19981124,15.6,11.2,23.3,10.6,2.5 +19981125,12.7,2.3,23.3,10.6,3.1 +19981126,11.5,4.7,20.0,3.9,1.1 +19981127,14.2,-0.8,21.1,8.3,2.9 +19981128,13.6,2.6,21.7,6.7,1.5 +19981129,13.4,4.4,22.8,5.0,1.9 +19981130,13.6,8.6,22.8,4.4,2.8 +19981201,16.2,10.6,22.2,6.1,2.6 +19981202,12.9,5.1,20.6,5.0,1.4 +19981203,14.9,10.0,22.8,8.3,3.2 +19981204,15.6,10.3,22.8,7.8,2.2 +19981205,15.8,12.9,22.8,8.9,3.1 +19981206,18.1,15.6,23.9,13.0,3.3 +19981207,18.1,15.3,24.4,13.3,4.2 +19981208,17.8,16.2,23.3,15.0,3.8 +19981209,14.7,8.4,19.0,8.3,4.6 +19981210,7.8,0.9,13.3,3.3,2.0 +19981211,10.8,1.9,13.9,2.2,2.3 +19981212,9.3,-2.6,11.1,5.6,3.8 +19981213,5.7,5.4,8.3,4.0,3.3 +19981214,9.2,4.7,12.8,7.2,3.8 +19981215,3.8,-4.1,8.3,-0.6,3.4 +19981216,8.9,0.4,16.7,3.9,3.4 +19981217,7.4,-2.6,17.2,2.8,4.6 +19981218,2.6,-4.7,9.4,-2.8,2.0 +19981219,5.3,0.8,10.0,-3.9,2.3 +19981220,9.4,8.5,16.1,5.0,1.5 +19981221,13.9,12.6,19.4,11.0,0.9 +19981222,13.6,10.2,18.0,6.7,3.8 +19981223,2.2,-5.1,6.7,-1.0,4.5 +19981224,0.6,0.4,2.2,-1.0,1.5 +19981225,1.1,-0.2,2.2,-0.6,4.4 +19981226,2.1,-2.1,8.3,-0.6,2.4 +19981227,2.3,-1.2,8.9,-2.2,1.1 +19981228,3.4,-0.2,8.9,-3.3,0.9 +19981229,4.7,4.6,8.3,-1.7,3.0 +19981230,4.0,-3.6,7.2,0.0,4.2 +19981231,2.7,-6.4,10.0,-0.6,2.3 +19990101,3.4,-3.8,10.0,-2.8,1.5 +19990102,0.8,-5.8,10.6,-3.3,6.7 +19990103,1.0,-0.1,5.0,-2.0,2.4 +19990104,-2.8,-10.1,1.1,-7.2,2.6 +19990105,-5.6,-12.9,-0.6,-9.4,1.6 +19990106,-2.8,-10.3,3.9,-7.8,4.3 +19990107,6.1,0.4,15.0,2.0,4.9 +19990108,8.1,6.2,15.0,1.7,1.5 +19990109,8.6,6.8,13.3,3.9,2.8 +19990110,-0.5,-8.7,5.0,-6.1,3.1 +19990111,2.8,-6.2,12.2,-2.8,2.6 +19990112,7.7,-1.4,13.9,2.8,4.9 +19990113,8.3,1.4,14.4,2.8,2.4 +19990114,11.8,8.9,18.3,7.0,1.4 +19990115,10.1,4.1,13.9,3.9,3.5 +19990116,5.7,-4.2,15.0,-1.7,2.5 +19990117,6.4,0.2,15.6,-2.2,2.0 +19990118,10.4,5.4,17.2,6.7,4.9 +19990119,8.7,-4.4,16.7,1.7,2.6 +19990120,10.3,1.4,19.4,3.3,2.5 +19990121,10.7,9.5,19.4,2.8,1.9 +19990122,12.6,11.9,17.2,10.0,1.6 +19990123,16.6,15.4,19.4,14.0,3.9 +19990124,14.6,10.6,16.1,10.6,4.8 +19990125,9.7,0.7,20.6,2.8,2.9 +19990126,9.8,2.1,21.1,2.2,2.6 +19990127,10.9,5.1,21.1,4.4,4.4 +19990128,16.0,9.6,24.4,8.9,4.0 +19990129,15.7,10.6,24.4,8.3,1.9 +19990130,11.2,9.9,21.1,8.3,4.1 +19990131,5.9,1.2,10.0,0.0,5.8 +19990201,0.9,0.1,3.3,-1.0,5.7 +19990202,6.8,5.8,14.4,3.3,3.2 +19990203,9.8,6.4,16.7,3.0,3.7 +19990204,13.2,6.1,20.0,8.3,4.1 +19990205,9.8,-5.2,17.2,0.0,3.1 +19990206,11.9,0.3,21.1,3.9,4.4 +19990207,16.1,11.6,20.6,12.8,5.1 +19990208,15.4,6.4,21.1,9.4,3.5 +19990209,12.4,4.0,18.9,6.7,2.7 +19990210,14.4,11.1,20.0,10.0,2.4 +19990211,15.4,11.3,20.6,10.0,1.3 +19990212,13.6,10.6,18.0,7.8,4.6 +19990213,2.1,-8.9,5.6,-1.1,4.8 +19990214,0.4,-12.1,9.4,-6.1,1.9 +19990215,5.8,-9.5,15.0,-0.6,3.2 +19990216,9.5,-5.2,16.7,2.8,4.4 +19990217,10.8,5.1,17.2,2.8,2.6 +19990218,12.1,8.6,16.7,7.0,2.1 +19990219,7.3,5.7,11.7,3.0,4.1 +19990220,5.7,1.1,12.8,0.6,1.9 +19990221,5.3,-1.2,13.3,0.0,4.0 +19990222,-0.3,-11.9,5.6,-5.0,3.8 +19990223,0.4,-12.4,6.1,-5.0,2.1 +19990224,0.7,-6.9,7.8,-3.3,3.0 +19990225,3.9,-1.8,11.7,-1.7,3.0 +19990226,6.4,-1.2,14.4,-1.7,1.6 +19990227,10.9,2.8,15.6,6.7,3.2 +19990228,13.9,7.5,16.1,5.6,5.9 +19990301,9.7,-3.3,16.7,2.8,3.2 +19990302,9.3,-4.4,19.4,1.1,1.7 +19990303,10.7,3.2,20.0,-1.1,5.2 +19990304,3.7,-8.3,11.1,-3.3,4.2 +19990305,4.9,-6.0,13.3,-2.2,2.3 +19990306,9.2,2.4,17.8,2.8,4.0 +19990307,8.0,-2.7,13.9,2.2,4.3 +19990308,2.6,-12.0,6.7,-1.7,3.2 +19990309,1.3,-5.1,7.2,-1.7,3.1 +19990310,4.2,-0.1,12.2,-0.6,3.0 +19990311,4.9,-4.1,13.3,-1.7,2.6 +19990312,6.7,-9.4,15.6,-2.2,2.4 +19990313,5.9,-8.8,16.1,-2.8,3.1 +19990314,2.9,1.6,7.8,1.7,6.2 +19990315,6.7,2.4,12.2,3.9,3.8 +19990316,8.2,-2.2,18.3,0.0,3.3 +19990317,14.4,-0.2,24.4,5.6,3.6 +19990318,17.5,3.6,26.1,9.4,4.6 +19990319,15.4,-1.7,26.7,8.3,4.2 +19990320,13.1,0.4,18.9,7.8,3.3 +19990321,11.8,8.7,19.4,7.8,3.1 +19990322,10.4,-2.3,16.1,5.0,4.2 +19990323,11.9,-1.3,21.1,5.0,3.3 +19990324,15.5,5.6,21.7,4.4,3.7 +19990325,13.2,9.2,22.2,7.2,3.2 +19990326,7.4,6.3,10.0,3.9,4.0 +19990327,7.2,2.4,15.0,2.8,3.3 +19990328,10.4,-2.4,20.6,1.1,1.8 +19990329,13.6,3.2,17.2,10.6,1.7 +19990330,13.8,3.0,18.9,8.3,3.5 +19990331,10.7,4.8,19.4,8.3,3.0 +19990401,15.4,13.1,23.9,9.0,4.3 +19990402,18.8,13.1,26.1,10.6,1.5 +19990403,20.7,13.7,28.9,12.2,1.5 +19990404,22.7,15.7,30.0,11.7,5.1 +19990405,21.6,12.8,28.3,13.9,2.5 +19990406,15.8,11.6,28.3,12.8,3.9 +19990407,17.6,11.9,27.8,10.6,2.9 +19990408,20.8,11.6,28.3,10.6,2.5 +19990409,21.2,15.9,27.2,12.8,6.8 +19990410,22.7,10.5,27.8,16.1,4.6 +19990411,23.4,14.5,30.6,17.2,4.7 +19990412,18.9,2.6,26.1,11.1,5.8 +19990413,13.3,1.9,21.1,6.1,4.1 +19990414,13.7,2.1,21.7,5.0,2.3 +19990415,12.6,9.2,18.3,8.9,2.9 +19990416,14.4,3.8,18.9,8.9,7.3 +19990417,11.9,-2.5,17.2,5.6,5.7 +19990418,9.8,-0.2,16.7,2.2,3.1 +19990419,12.0,2.0,21.0,3.9,3.2 +19990420,17.9,7.4,26.1,11.1,5.3 +19990421,18.3,8.1,27.8,10.6,3.2 +19990422,22.0,10.3,28.3,15.0,4.9 +19990423,21.8,12.7,29.4,14.4,4.8 +19990424,22.7,15.8,30.0,13.9,3.9 +19990425,16.9,10.3,20.0,14.4,2.8 +19990426,17.3,12.8,20.6,13.9,2.9 +19990427,19.3,16.4,26.7,14.0,3.0 +19990428,14.4,13.2,17.8,10.0,5.0 +19990429,8.2,7.1,9.4,7.0,7.5 +19990430,7.9,5.1,13.9,5.0,7.7 +19990501,14.6,2.2,22.2,9.4,7.3 +19990502,16.3,1.3,22.8,8.9,4.9 +19990503,15.8,6.1,24.4,6.7,2.3 +19990504,18.2,10.4,26.7,10.6,2.4 +19990505,18.0,14.1,26.7,10.0,2.7 +19990506,19.1,17.9,21.7,17.8,2.7 +19990507,19.5,17.2,25.0,16.7,3.4 +19990508,20.6,12.9,26.1,14.4,5.0 +19990509,20.4,9.9,27.8,11.7,1.6 +19990510,21.9,11.8,27.8,11.7,3.3 +19990511,21.1,14.6,27.8,15.0,2.4 +19990512,18.8,15.7,27.8,15.0,1.3 +19990513,20.2,15.8,26.7,15.6,2.7 +19990514,16.8,14.0,21.1,13.3,4.4 +19990515,15.6,9.4,23.3,11.7,5.0 +19990516,17.9,8.9,25.0,11.1,3.5 +19990517,19.8,12.2,26.1,13.9,3.1 +19990518,19.8,15.6,26.7,13.3,1.6 +19990519,20.6,14.2,26.7,15.0,2.9 +19990520,19.3,9.1,26.1,12.2,2.9 +19990521,20.3,11.6,27.8,12.8,2.4 +19990522,22.0,14.6,28.9,17.2,4.0 +19990523,24.1,16.9,30.0,16.7,4.3 +19990524,23.6,14.1,30.6,17.2,6.5 +19990525,20.6,9.2,27.2,13.9,4.7 +19990526,19.7,12.9,27.8,13.3,2.3 +19990527,19.5,11.1,26.7,12.8,1.9 +19990528,20.3,7.8,26.7,12.2,1.7 +19990529,21.1,12.0,29.4,12.8,1.1 +19990530,22.3,13.4,29.4,12.8,1.7 +19990531,21.9,13.1,28.9,14.4,2.8 +19990601,22.5,14.2,27.8,15.6,2.3 +19990602,23.7,16.9,30.0,18.9,3.5 +19990603,22.4,18.8,28.3,18.0,2.8 +19990604,23.6,17.6,30.6,18.3,1.8 +19990605,22.9,17.1,30.0,17.8,2.5 +19990606,23.3,16.2,29.4,17.2,1.3 +19990607,24.7,16.4,31.7,17.2,1.6 +19990608,26.4,16.4,32.8,18.9,1.5 +19990609,27.0,17.3,33.3,18.3,1.2 +19990610,25.4,19.3,33.9,17.8,2.1 +19990611,22.8,19.0,31.1,20.0,4.8 +19990612,23.3,17.8,28.9,19.0,3.4 +19990613,23.4,14.6,30.6,17.8,2.4 +19990614,25.0,17.2,30.6,17.2,2.8 +19990615,23.1,20.3,31.1,18.9,2.8 +19990616,18.9,18.3,21.1,17.0,3.7 +19990617,20.7,16.7,27.2,17.0,2.8 +19990618,20.7,11.6,25.6,15.6,4.3 +19990619,19.2,10.8,23.9,13.9,4.6 +19990620,18.9,14.1,24.4,13.3,5.4 +19990621,19.8,15.2,25.6,16.1,4.5 +19990622,20.7,16.9,26.1,16.1,2.9 +19990623,21.4,17.1,25.6,18.0,1.2 +19990624,21.3,18.5,26.1,17.8,1.4 +19990625,22.7,18.2,27.0,20.6,2.4 +19990626,24.7,22.3,28.9,21.7,2.3 +19990627,24.2,21.7,29.4,21.7,4.7 +19990628,26.2,22.7,31.1,23.0,4.6 +19990629,26.7,21.6,31.7,23.3,4.2 +19990630,25.4,20.7,31.1,20.6,2.4 +19990701,25.7,20.3,31.1,20.6,4.0 +19990702,24.6,20.8,29.4,21.0,3.8 +19990703,26.1,21.4,31.1,22.2,2.1 +19990704,26.3,20.9,32.8,20.6,1.9 +19990705,27.7,21.9,33.9,23.3,2.6 +19990706,25.9,22.1,32.2,21.7,2.1 +19990707,24.6,21.6,32.8,21.7,2.5 +19990708,24.8,20.9,31.1,20.0,1.9 +19990709,27.6,21.1,32.2,20.0,4.8 +19990710,25.9,20.9,30.6,22.0,4.4 +19990711,22.4,20.8,23.9,18.9,3.8 +19990712,17.1,16.2,19.0,15.6,5.0 +19990713,17.9,15.7,21.7,16.0,4.5 +19990714,20.8,17.3,25.6,16.7,2.1 +19990715,22.7,18.9,26.7,20.0,1.4 +19990716,24.4,19.6,30.6,19.0,0.8 +19990717,25.3,20.3,30.0,20.0,1.4 +19990718,25.8,20.5,31.7,20.6,1.9 +19990719,27.1,20.4,32.8,21.7,2.1 +19990720,27.4,21.1,33.9,21.7,2.2 +19990721,27.4,21.4,34.4,21.7,1.6 +19990722,28.0,22.6,33.9,22.8,1.3 +19990723,29.7,21.6,35.6,24.4,1.4 +19990724,29.7,22.4,36.7,23.3,2.0 +19990725,27.8,19.8,36.1,21.7,1.8 +19990726,29.6,15.7,36.7,21.1,2.3 +19990727,28.8,20.0,36.7,21.1,2.7 +19990728,28.1,20.5,35.6,22.2,1.5 +19990729,29.2,20.7,36.1,21.7,2.3 +19990730,29.1,21.0,37.8,22.8,2.1 +19990731,31.8,21.5,39.4,26.1,1.9 +19990801,30.2,21.9,38.3,23.3,1.6 +19990802,29.3,20.1,38.3,22.8,2.7 +19990803,27.7,16.3,32.2,22.2,4.0 +19990804,26.3,16.8,32.8,21.7,2.8 +19990805,28.1,17.8,34.4,22.8,1.0 +19990806,28.3,17.2,35.6,22.8,2.0 +19990807,28.3,18.7,35.6,22.8,2.4 +19990808,28.8,17.9,35.6,21.7,2.6 +19990809,27.3,20.7,36.7,21.1,2.4 +19990810,27.8,20.3,33.9,23.0,2.0 +19990811,28.7,18.6,36.1,21.1,1.7 +19990812,29.4,18.6,37.2,20.6,1.9 +19990813,29.4,19.1,36.7,21.7,1.5 +19990814,29.7,20.5,38.0,24.4,3.3 +19990815,27.2,19.6,32.8,23.0,3.9 +19990816,27.3,20.8,34.4,22.2,2.3 +19990817,29.2,21.4,36.7,23.9,2.0 +19990818,30.3,18.0,37.8,22.2,1.6 +19990819,28.9,15.9,37.8,21.1,3.1 +19990820,26.2,20.3,32.2,22.0,2.9 +19990821,23.8,16.9,30.6,18.3,2.3 +19990822,25.1,13.8,31.7,18.3,2.9 +19990823,24.3,17.2,32.2,18.3,2.5 +19990824,22.1,20.3,31.1,19.4,2.7 +19990825,24.8,20.8,30.6,21.7,3.2 +19990826,26.3,21.2,31.7,22.2,3.9 +19990827,26.0,17.7,32.2,19.4,2.3 +19990828,26.1,17.6,32.8,19.4,3.0 +19990829,26.2,18.5,32.8,20.6,3.7 +19990830,25.4,15.6,31.7,22.2,3.8 +19990831,21.0,8.6,26.7,14.4,3.9 +19990901,21.7,11.0,30.6,13.3,1.6 +19990902,24.8,13.6,33.9,16.7,1.9 +19990903,25.8,11.8,33.9,16.7,2.9 +19990904,26.0,12.7,33.9,17.8,3.3 +19990905,24.2,17.4,33.9,17.8,2.0 +19990906,25.4,20.0,32.2,21.1,1.1 +19990907,25.6,19.8,32.8,20.6,0.7 +19990908,26.7,19.2,33.9,20.0,2.1 +19990909,24.2,19.5,34.4,19.4,1.6 +19990910,23.1,13.8,30.6,18.3,2.1 +19990911,22.8,8.1,31.1,13.9,1.5 +19990912,22.4,10.9,31.7,13.3,1.3 +19990913,21.9,12.7,30.0,15.6,1.5 +19990914,23.2,14.9,30.0,15.0,3.7 +19990915,23.5,16.9,30.6,17.2,6.5 +19990916,23.1,6.8,28.3,18.9,7.2 +19990917,19.7,5.4,28.9,12.2,3.2 +19990918,18.8,8.6,27.2,12.2,1.9 +19990919,20.3,12.1,27.2,14.4,2.0 +19990920,20.4,13.9,27.8,14.4,2.1 +19990921,19.4,16.3,28.3,14.4,1.9 +19990922,17.2,7.9,22.8,12.2,4.2 +19990923,15.3,4.3,23.9,6.1,1.3 +19990924,17.2,8.2,26.1,8.9,1.9 +19990925,18.6,10.7,27.2,11.1,0.8 +19990926,20.7,14.9,27.8,10.0,1.8 +19990927,22.0,20.4,27.8,13.9,2.2 +19990928,22.8,21.5,26.1,20.6,2.4 +19990929,22.8,22.0,26.1,21.7,1.6 +19990930,18.0,8.8,25.0,11.7,4.8 +19991001,15.2,7.2,22.8,8.3,1.1 +19991002,16.3,9.9,23.9,9.0,1.4 +19991003,19.0,14.4,26.1,9.4,1.1 +19991004,18.9,17.7,26.1,13.9,2.3 +19991005,17.7,14.6,22.8,13.0,1.7 +19991006,17.1,12.4,23.3,12.8,1.7 +19991007,16.0,12.2,22.2,11.7,2.2 +19991008,15.0,11.8,21.7,10.6,2.9 +19991009,18.8,15.3,24.4,10.6,2.5 +19991010,19.2,18.5,25.0,16.1,1.4 +19991011,21.1,18.3,25.6,17.8,3.0 +19991012,18.9,13.9,22.2,16.0,5.0 +19991013,15.9,13.0,20.6,13.9,3.0 +19991014,18.4,15.2,23.3,13.9,2.6 +19991015,16.6,10.2,20.0,13.0,3.9 +19991016,17.1,10.2,23.3,12.8,4.8 +19991017,20.8,15.1,26.7,12.8,6.0 +19991018,19.5,10.8,26.7,15.6,3.9 +19991019,14.5,8.1,17.2,12.0,4.0 +19991020,12.2,10.9,14.0,11.0,3.2 +19991021,12.1,5.8,17.2,6.0,2.7 +19991022,12.4,6.4,22.2,5.0,2.5 +19991023,11.9,1.0,22.2,4.4,3.3 +19991024,8.9,-1.7,15.0,1.7,3.5 +19991025,9.3,0.9,17.2,1.1,1.1 +19991026,10.9,3.8,20.0,1.1,0.8 +19991027,15.6,5.4,23.9,3.3,0.3 +19991028,14.3,7.1,23.9,7.2,1.7 +19991029,13.4,8.3,22.2,6.7,0.1 +19991030,14.7,9.0,22.2,6.7,0.9 +19991031,18.3,13.2,25.0,7.8,0.8 +19991101,16.8,15.3,25.0,14.4,1.8 +19991102,16.4,14.0,18.0,10.0,5.4 +19991103,6.8,-3.8,18.3,0.6,3.3 +19991104,7.2,-3.9,16.1,0.0,0.1 +19991105,10.3,0.0,20.6,-0.6,0.4 +19991106,13.4,4.6,23.9,2.8,2.0 +19991107,17.5,10.4,25.0,10.6,1.6 +19991108,16.8,9.3,25.0,10.6,1.5 +19991109,16.4,11.3,25.0,8.9,1.5 +19991110,17.4,11.6,25.0,8.9,3.9 +19991111,16.1,11.3,23.9,10.0,3.7 +19991112,13.8,11.6,24.4,10.0,3.2 +19991113,13.4,9.6,21.7,7.8,2.0 +19991114,15.9,9.4,26.1,7.0,2.3 +19991115,15.0,1.6,26.1,7.2,4.0 +19991116,10.7,-4.6,18.3,7.2,5.6 +19991117,7.2,-3.3,16.1,-1.7,2.2 +19991118,7.1,-0.1,16.1,0.6,1.1 +19991119,9.5,3.6,19.4,2.2,1.1 +19991120,14.7,12.0,20.6,10.0,0.9 +19991121,16.3,13.8,21.1,10.0,2.1 +19991122,15.8,13.9,21.7,12.2,3.0 +19991123,16.8,14.2,21.1,13.9,3.5 +19991124,16.2,14.4,21.1,13.9,3.0 +19991125,15.8,15.1,17.8,14.0,2.8 +19991126,16.8,15.5,18.3,13.9,4.4 +19991127,12.4,0.4,18.9,8.3,3.8 +19991128,12.2,3.4,19.4,6.7,1.3 +19991129,12.4,3.5,20.6,5.0,3.0 +19991130,5.4,-8.9,17.2,0.0,4.3 +19991201,2.1,-8.8,8.3,-3.3,2.4 +19991202,4.9,-6.8,14.4,-1.7,2.0 +19991203,9.1,-3.0,17.2,-2.2,3.2 +19991204,11.6,0.4,17.8,3.3,3.2 +19991205,12.1,6.7,21.1,5.0,2.6 +19991206,13.2,9.9,22.2,5.0,3.9 +19991207,5.6,-3.3,15.0,-1.7,2.5 +19991208,5.5,-1.2,15.0,-1.1,0.7 +19991209,7.9,3.2,15.0,-1.7,1.2 +19991210,14.0,9.8,19.4,11.0,3.0 +19991211,10.6,2.1,20.0,5.0,2.8 +19991212,7.3,0.6,14.4,2.2,1.2 +19991213,10.3,8.6,12.2,2.2,3.1 +19991214,12.4,9.1,17.2,9.4,5.9 +19991215,8.2,4.6,17.2,2.8,5.1 +19991216,7.3,-3.7,15.0,-0.6,3.5 +19991217,6.8,-6.0,15.0,-0.6,2.3 +19991218,6.5,-3.3,15.0,-1.7,1.8 +19991219,10.3,1.1,12.0,9.0,5.7 +19991220,8.8,8.2,12.2,7.8,3.8 +19991221,8.3,8.2,11.1,5.6,1.8 +19991222,9.8,6.6,13.3,7.0,1.3 +19991223,6.9,-1.8,12.8,3.0,1.6 +19991224,4.3,-3.8,12.8,0.0,4.1 +19991225,-0.8,-10.3,9.4,-5.6,3.0 +19991226,2.8,-6.6,14.4,-3.3,4.7 +19991227,5.4,-7.9,15.0,-3.9,2.5 +19991228,3.7,-8.2,11.1,-2.8,3.0 +19991229,4.2,-4.9,12.2,-2.8,3.0 +19991230,7.2,-0.1,16.1,0.0,3.3 +19991231,12.4,4.9,19.4,7.8,3.0 +20000101,10.2,9.4,19.4,5.0,1.2 +20000102,13.1,12.4,18.0,10.0,2.2 +20000103,15.0,13.6,20.0,11.7,2.9 +20000104,14.9,11.9,20.0,11.1,3.9 +20000105,5.8,-3.4,16.7,1.1,4.3 +20000106,3.0,-4.8,9.4,-1.7,2.2 +20000107,8.4,-0.1,15.6,2.2,1.2 +20000108,6.3,-4.1,15.6,0.6,1.8 +20000109,6.8,3.9,11.1,0.6,1.0 +20000110,10.7,6.8,18.3,7.0,4.3 +20000111,12.4,-0.2,20.0,7.2,5.4 +20000112,11.6,-0.8,20.6,2.2,2.5 +20000113,14.8,4.7,23.3,10.0,4.8 +20000114,4.1,-11.1,11.7,-0.6,6.2 +20000115,2.2,-11.1,10.6,-5.0,2.8 +20000116,9.1,-3.2,15.0,5.6,6.0 +20000117,9.2,0.3,15.6,5.6,3.1 +20000118,2.8,-3.5,11.7,0.0,2.2 +20000119,3.6,-0.9,9.4,-1.0,2.4 +20000120,6.3,-0.2,10.0,-1.1,5.2 +20000121,-0.6,-13.2,10.0,-5.6,3.9 +20000122,-1.7,-12.8,5.6,-5.6,2.4 +20000123,-1.1,-2.2,1.0,-3.3,2.2 +20000124,1.1,0.1,2.0,0.6,3.3 +20000125,1.4,-7.4,3.9,-2.2,3.9 +20000126,-1.9,-12.1,4.4,-5.0,6.3 +20000127,-2.4,-14.9,4.4,-7.2,3.0 +20000128,0.1,-14.4,5.6,-3.9,2.0 +20000129,1.7,-9.2,5.6,-4.4,3.2 +20000130,-0.8,-1.6,1.0,-2.0,3.1 +20000131,0.0,-1.8,3.3,-4.0,0.6 +20000201,1.2,-4.7,11.1,-4.4,2.1 +20000202,3.2,-9.6,12.2,-1.7,3.7 +20000203,4.4,-7.6,13.3,-2.2,4.7 +20000204,7.5,-5.3,13.3,-2.8,5.2 +20000205,3.0,-7.3,12.2,-1.7,3.8 +20000206,3.9,-7.9,11.7,-2.8,2.0 +20000207,6.8,-5.6,16.1,0.6,2.1 +20000208,8.9,-0.4,16.7,-0.6,3.5 +20000209,7.6,0.3,16.1,1.1,2.1 +20000210,9.9,1.2,18.9,1.7,1.7 +20000211,14.4,6.4,23.3,8.3,4.7 +20000212,10.6,9.3,18.3,5.6,3.7 +20000213,2.9,2.9,13.3,1.7,3.3 +20000214,9.2,7.0,19.0,2.8,4.3 +20000215,9.9,0.7,19.4,2.2,3.1 +20000216,12.5,4.2,23.3,2.2,4.0 +20000217,11.8,2.9,23.3,7.2,3.3 +20000218,6.0,4.3,11.7,3.0,3.2 +20000219,12.6,8.4,22.2,3.3,4.3 +20000220,6.8,-2.1,12.8,1.7,3.9 +20000221,6.1,-4.3,13.3,0.6,2.8 +20000222,5.2,-2.5,12.8,-1.7,0.7 +20000223,9.7,0.2,16.1,5.0,1.2 +20000224,12.4,5.5,18.9,7.2,1.2 +20000225,15.8,10.8,23.3,7.8,2.7 +20000226,16.2,10.8,24.4,7.8,2.9 +20000227,14.8,12.8,22.8,8.9,3.1 +20000228,12.6,2.7,18.3,7.8,3.3 +20000229,10.9,-1.4,18.9,1.7,1.7 +20000301,13.8,4.9,21.7,7.2,4.5 +20000302,14.8,4.3,22.2,6.1,4.0 +20000303,11.3,-1.1,21.1,3.9,2.6 +20000304,10.8,6.6,18.9,3.9,2.9 +20000305,12.4,3.6,21.1,6.1,2.8 +20000306,15.3,4.9,22.8,7.2,1.6 +20000307,16.2,6.8,25.6,6.7,2.4 +20000308,19.2,8.3,27.2,11.7,3.8 +20000309,19.9,12.3,27.2,10.0,5.7 +20000310,18.8,14.5,26.7,12.2,3.4 +20000311,17.2,15.6,24.4,12.2,5.3 +20000312,9.3,3.1,21.1,3.9,6.4 +20000313,4.4,-4.7,11.7,-1.1,2.1 +20000314,7.9,-1.5,17.2,0.0,1.2 +20000315,12.3,2.7,20.0,6.7,2.4 +20000316,12.4,8.4,20.6,6.1,1.7 +20000317,15.8,10.7,18.3,10.0,5.1 +20000318,6.6,-4.1,18.3,1.1,5.2 +20000319,7.9,0.1,10.6,1.1,5.1 +20000320,11.4,9.9,16.7,6.7,5.5 +20000321,12.3,9.0,17.8,8.9,3.7 +20000322,14.2,7.4,21.1,6.7,2.0 +20000323,13.9,7.6,21.1,5.6,4.0 +20000324,14.3,6.4,22.2,7.2,1.3 +20000325,17.6,8.7,25.0,11.1,3.9 +20000326,18.9,7.3,25.6,10.6,3.5 +20000327,15.3,6.9,24.4,10.6,3.1 +20000328,13.2,3.1,22.2,6.1,6.3 +20000329,10.8,-2.4,22.8,2.8,2.8 +20000330,13.1,7.8,21.1,9.4,2.4 +20000331,16.4,7.6,21.1,8.3,3.4 +20000401,15.3,8.1,22.2,8.3,1.7 +20000402,14.7,11.2,22.8,8.3,2.5 +20000403,18.6,17.3,22.8,16.0,3.7 +20000404,15.7,9.9,21.7,11.1,6.9 +20000405,7.3,-2.8,17.2,-1.1,3.3 +20000406,15.1,4.0,25.0,5.6,5.7 +20000407,19.5,10.0,25.6,11.7,5.8 +20000408,15.7,9.8,22.2,8.3,6.9 +20000409,7.7,-4.8,18.3,-0.6,4.6 +20000410,13.8,-1.1,23.3,5.0,3.7 +20000411,16.9,5.4,23.3,3.9,4.8 +20000412,17.9,12.4,23.3,11.1,1.9 +20000413,9.7,5.9,23.9,5.0,6.6 +20000414,8.1,7.4,13.3,5.0,6.0 +20000415,11.8,11.7,15.0,5.6,4.1 +20000416,17.3,13.7,25.6,12.8,1.6 +20000417,19.7,12.4,26.1,13.9,4.6 +20000418,15.9,9.1,26.7,10.6,4.9 +20000419,16.3,9.9,25.0,8.9,2.0 +20000420,19.1,12.5,26.7,11.7,2.8 +20000421,19.7,10.4,27.2,10.6,6.1 +20000422,11.9,5.1,18.9,5.0,3.9 +20000423,13.3,5.8,20.6,5.6,3.4 +20000424,14.7,10.8,20.6,5.0,3.1 +20000425,11.9,10.2,17.2,10.0,4.9 +20000426,12.7,10.1,18.3,10.0,1.9 +20000427,13.1,6.1,21.1,5.6,2.4 +20000428,13.9,9.1,21.7,5.6,2.5 +20000429,13.0,9.4,21.7,6.1,1.7 +20000430,16.2,7.3,25.0,8.3,1.2 +20000501,18.6,8.6,26.1,11.1,3.6 +20000502,20.0,11.8,27.2,13.9,2.8 +20000503,18.3,16.6,27.2,13.3,2.8 +20000504,19.9,17.0,24.4,17.0,1.5 +20000505,19.9,13.9,26.7,12.8,1.7 +20000506,21.3,14.6,28.3,14.4,1.9 +20000507,22.1,14.5,28.9,13.9,2.8 +20000508,22.7,14.9,29.4,13.9,3.7 +20000509,23.3,15.6,28.9,16.1,3.9 +20000510,23.8,15.4,29.4,16.1,5.0 +20000511,20.4,11.2,29.4,12.2,1.7 +20000512,24.4,16.8,31.1,12.2,3.5 +20000513,26.0,19.3,31.7,17.2,4.0 +20000514,22.0,12.9,32.2,17.8,2.5 +20000515,18.9,5.8,26.1,13.3,3.5 +20000516,17.3,7.4,24.4,11.1,1.8 +20000517,20.1,13.4,25.6,15.0,3.8 +20000518,22.7,16.1,29.4,15.0,4.4 +20000519,25.7,16.2,31.7,20.0,5.1 +20000520,25.4,17.1,32.2,19.4,3.5 +20000521,23.2,18.1,31.1,19.4,2.2 +20000522,22.9,15.7,28.3,17.8,3.2 +20000523,20.8,14.5,28.9,14.4,2.8 +20000524,23.4,19.3,30.6,18.0,3.4 +20000525,26.2,20.2,31.7,18.3,3.7 +20000526,22.0,16.4,31.7,16.1,1.6 +20000527,25.9,18.9,32.8,20.0,3.1 +20000528,25.8,18.4,33.3,21.7,4.7 +20000529,20.5,13.5,30.0,15.6,2.5 +20000530,18.7,10.8,25.0,12.2,4.2 +20000531,19.7,11.4,27.8,12.2,1.6 +20000601,24.4,15.4,33.3,16.1,1.1 +20000602,27.7,16.8,35.6,20.0,1.6 +20000603,27.4,17.8,36.1,18.9,1.0 +20000604,21.9,19.6,32.8,18.9,2.0 +20000605,21.9,20.4,25.6,20.0,1.2 +20000606,21.0,14.3,24.4,17.2,3.9 +20000607,18.0,7.4,26.1,9.4,2.4 +20000608,19.8,10.9,27.8,12.8,1.4 +20000609,23.3,13.0,32.2,16.1,1.4 +20000610,25.5,14.8,32.8,15.0,2.0 +20000611,26.1,15.9,33.3,17.2,2.1 +20000612,27.5,15.9,34.4,18.3,2.3 +20000613,28.0,17.4,35.0,20.0,2.6 +20000614,28.4,19.0,35.6,20.6,2.7 +20000615,28.2,19.2,35.6,21.7,3.7 +20000616,26.3,19.7,35.0,21.1,5.3 +20000617,24.9,20.5,31.7,21.0,3.1 +20000618,26.0,20.7,32.8,20.6,3.6 +20000619,25.1,20.4,32.8,20.6,2.5 +20000620,25.1,21.6,31.1,20.0,1.5 +20000621,25.1,21.8,32.8,20.0,1.6 +20000622,25.7,21.6,32.8,20.6,2.9 +20000623,26.2,15.8,33.9,18.3,1.3 +20000624,27.4,16.6,33.9,17.2,1.4 +20000625,27.1,18.1,35.6,18.9,2.6 +20000626,27.2,18.3,35.6,20.6,3.5 +20000627,26.2,19.0,35.0,20.6,4.9 +20000628,26.2,20.3,33.3,20.6,4.3 +20000629,23.0,20.7,26.1,21.0,2.7 +20000630,23.3,15.5,28.9,17.2,1.7 +20000701,24.6,15.2,30.6,18.9,1.4 +20000702,24.8,17.5,31.7,18.9,1.6 +20000703,26.2,18.3,31.7,18.3,3.8 +20000704,27.9,18.4,34.4,22.2,3.3 +20000705,28.1,19.8,35.0,21.7,0.9 +20000706,28.3,20.5,35.6,21.7,2.1 +20000707,27.2,20.0,35.6,22.8,2.8 +20000708,26.1,19.1,33.9,21.1,1.9 +20000709,28.4,19.5,33.9,22.8,4.2 +20000710,30.2,18.5,36.7,23.9,4.1 +20000711,29.3,18.3,37.2,21.7,1.4 +20000712,26.9,20.8,36.7,21.7,1.7 +20000713,24.4,21.5,33.3,21.7,2.6 +20000714,25.9,21.2,31.7,21.7,1.9 +20000715,26.4,17.1,32.8,20.0,2.9 +20000716,26.1,15.0,33.9,18.3,1.9 +20000717,26.7,14.1,33.3,18.3,1.6 +20000718,27.3,16.4,34.4,20.0,1.0 +20000719,28.9,18.9,35.6,19.4,2.9 +20000720,29.6,17.9,36.1,22.2,2.4 +20000721,27.0,16.6,36.1,22.8,4.0 +20000722,25.8,20.8,32.2,22.8,1.6 +20000723,24.6,20.6,32.8,21.7,3.1 +20000724,22.8,19.5,30.0,20.0,3.0 +20000725,20.1,17.5,23.3,18.0,5.2 +20000726,23.2,17.4,28.9,20.0,2.3 +20000727,24.2,19.4,31.1,20.6,0.9 +20000728,24.6,19.6,33.9,20.0,1.4 +20000729,24.5,19.2,33.9,18.3,1.2 +20000730,26.9,20.9,32.8,18.3,2.0 +20000731,24.4,20.9,32.8,21.7,2.1 +20000801,24.8,20.9,30.6,21.0,2.4 +20000802,24.3,20.8,31.1,21.1,2.5 +20000803,24.7,21.4,30.0,21.7,1.7 +20000804,24.3,21.7,30.0,21.7,1.4 +20000805,25.1,19.7,31.7,20.0,1.2 +20000806,26.1,21.8,31.7,20.0,1.2 +20000807,28.6,22.4,34.4,23.9,2.5 +20000808,28.6,22.3,34.4,23.3,1.3 +20000809,28.6,21.9,35.6,22.8,0.7 +20000810,27.7,21.6,35.6,21.1,2.3 +20000811,27.7,20.7,33.3,21.1,2.0 +20000812,25.3,15.4,31.1,18.9,2.4 +20000813,23.8,13.6,30.6,18.3,1.6 +20000814,24.2,14.9,30.6,17.8,0.4 +20000815,25.6,16.3,32.2,18.9,0.8 +20000816,27.8,18.5,35.6,21.1,1.7 +20000817,28.3,19.9,35.6,20.6,1.2 +20000818,29.8,21.1,37.2,23.3,2.4 +20000819,27.2,19.1,37.8,23.3,2.3 +20000820,25.3,18.3,28.3,22.0,2.1 +20000821,20.6,16.9,28.3,17.8,2.2 +20000822,21.9,16.2,28.0,17.2,0.3 +20000823,23.7,17.4,30.6,17.0,1.5 +20000824,26.6,20.3,32.8,22.2,1.7 +20000825,26.7,19.3,33.9,21.7,0.9 +20000826,25.7,19.0,32.2,20.0,1.6 +20000827,24.6,20.8,32.2,20.0,1.9 +20000828,25.6,18.7,33.3,19.0,2.2 +20000829,24.6,18.3,33.9,19.4,3.2 +20000830,24.6,18.4,30.6,19.4,3.9 +20000831,23.8,20.9,31.1,20.6,4.4 +20000901,24.5,21.3,29.4,21.7,0.7 +20000902,24.2,21.8,30.0,21.7,1.6 +20000903,24.4,22.2,28.3,22.2,0.8 +20000904,25.1,22.3,28.3,23.0,0.7 +20000905,22.9,19.8,26.1,19.4,3.8 +20000906,17.7,12.8,26.7,16.1,6.7 +20000907,19.1,14.4,24.0,16.0,6.0 +20000908,22.3,17.1,26.1,15.6,2.8 +20000909,23.8,18.5,28.9,20.0,1.0 +20000910,24.0,18.3,30.0,18.3,0.6 +20000911,24.2,18.3,30.0,17.8,0.6 +20000912,24.3,18.7,30.0,18.9,1.1 +20000913,24.9,19.2,31.1,19.4,0.9 +20000914,26.5,20.7,32.8,19.4,1.5 +20000915,24.8,17.0,32.8,19.4,1.9 +20000916,18.7,6.6,28.9,11.7,0.6 +20000917,16.4,6.8,24.4,10.6,3.1 +20000918,16.2,10.6,22.8,10.6,3.8 +20000919,21.3,16.3,29.4,13.9,3.7 +20000920,23.3,18.4,30.0,16.7,3.5 +20000921,22.9,20.7,30.0,17.2,3.7 +20000922,20.7,18.5,23.3,17.0,3.1 +20000923,21.4,18.2,30.0,16.7,4.4 +20000924,25.7,20.9,32.2,17.2,2.7 +20000925,24.6,21.8,32.2,20.6,3.7 +20000926,18.1,11.9,29.4,12.8,3.5 +20000927,14.6,8.2,21.7,8.9,2.2 +20000928,16.5,10.7,25.0,8.9,1.1 +20000929,17.1,10.6,25.0,10.0,3.9 +20000930,17.9,12.2,23.9,12.8,4.2 +20001001,19.3,13.7,24.4,13.3,3.3 +20001002,18.5,12.9,26.7,12.2,1.2 +20001003,21.6,15.4,29.4,12.2,2.1 +20001004,22.3,16.5,29.4,14.4,2.2 +20001005,22.0,15.9,29.4,15.0,2.0 +20001006,21.9,17.1,28.9,15.0,2.5 +20001007,18.6,9.3,26.1,13.9,2.9 +20001008,11.4,0.7,22.2,7.8,4.3 +20001009,8.4,-3.3,13.9,3.9,3.6 +20001010,10.7,-1.8,20.0,3.3,2.5 +20001011,14.1,-1.8,23.9,3.3,1.4 +20001012,15.4,0.4,24.4,6.1,1.3 +20001013,15.7,3.7,27.2,5.0,0.7 +20001014,17.8,4.8,28.3,5.0,1.6 +20001015,17.6,4.9,28.3,7.8,0.9 +20001016,18.6,6.4,28.3,7.8,1.1 +20001017,18.9,9.3,28.3,10.0,0.9 +20001018,20.6,11.7,28.9,11.1,1.5 +20001019,18.8,8.4,28.9,12.2,3.0 +20001020,16.8,10.3,23.9,11.7,1.1 +20001021,18.8,12.7,26.7,11.7,1.6 +20001022,20.5,13.5,27.8,12.2,1.5 +20001023,20.0,12.2,27.8,13.3,2.8 +20001024,17.8,10.2,25.0,11.1,1.1 +20001025,18.7,12.4,25.0,11.1,1.2 +20001026,19.3,12.1,25.0,13.3,1.5 +20001027,18.9,11.7,27.8,11.0,0.7 +20001028,21.9,10.5,28.9,14.4,2.8 +20001029,17.8,7.1,22.2,12.0,2.1 +20001030,15.1,2.4,23.3,7.2,1.8 +20001031,15.1,-1.0,25.0,3.9,1.3 +20001101,15.8,-0.2,25.0,3.9,1.5 +20001102,16.3,5.9,26.1,6.1,0.9 +20001103,19.1,10.1,28.3,8.3,1.1 +20001104,18.8,12.8,28.3,10.6,1.0 +20001105,16.2,10.3,22.2,12.2,1.7 +20001106,12.3,4.9,21.1,7.8,1.5 +20001107,14.2,10.7,17.8,7.8,2.4 +20001108,17.1,15.1,23.3,12.2,1.4 +20001109,18.9,17.8,23.3,14.4,2.8 +20001110,14.6,8.3,20.6,8.3,4.9 +20001111,10.4,0.4,20.0,2.2,1.3 +20001112,10.3,3.2,20.0,2.2,1.2 +20001113,10.2,5.3,17.8,2.8,1.8 +20001114,12.9,6.6,17.8,3.3,2.1 +20001115,7.1,-3.2,16.7,1.7,2.8 +20001116,6.6,1.6,12.8,1.1,1.6 +20001117,9.2,6.7,12.8,1.1,2.3 +20001118,4.2,-2.3,7.8,1.0,1.6 +20001119,3.1,1.3,6.1,1.0,1.9 +20001120,4.9,-0.2,13.9,0.6,3.7 +20001121,2.9,-11.1,13.9,-2.8,2.3 +20001122,0.9,-9.4,11.1,-6.7,1.7 +20001123,6.7,-1.4,13.3,-6.7,1.5 +20001124,6.1,1.7,13.3,0.6,2.0 +20001125,5.8,3.8,8.9,2.2,6.1 +20001126,9.3,6.2,14.4,3.9,3.7 +20001127,8.9,2.4,15.0,3.3,4.0 +20001128,8.8,-1.4,17.2,-0.6,2.4 +20001129,10.1,2.3,17.2,-0.6,2.5 +20001130,7.8,-2.7,16.7,1.7,2.4 +20001201,4.4,-3.6,12.8,-1.1,1.7 +20001202,5.6,-0.4,11.1,-1.1,2.4 +20001203,1.7,-1.7,7.8,-1.1,4.4 +20001204,0.1,-8.3,8.3,-7.2,0.8 +20001205,3.2,-6.1,12.2,-7.2,1.3 +20001206,1.7,-4.6,12.2,-4.4,1.1 +20001207,5.1,-3.6,12.8,-3.9,2.8 +20001208,8.7,-2.6,17.8,-1.1,4.1 +20001209,7.1,-1.4,17.8,2.2,2.5 +20001210,6.7,-1.6,10.6,2.2,3.2 +20001211,7.6,1.8,11.7,5.0,1.6 +20001212,10.0,2.3,12.2,5.0,4.7 +20001213,1.3,-8.1,12.2,-1.1,4.8 +20001214,3.1,1.7,12.8,-1.1,2.9 +20001215,4.4,2.7,12.8,0.0,3.0 +20001216,3.4,2.7,10.0,0.0,4.5 +20001217,4.8,-0.6,11.1,-1.1,6.7 +20001218,-0.9,-8.1,7.8,-7.0,2.3 +20001219,1.3,-3.1,8.3,-6.7,3.8 +20001220,-3.8,-13.2,3.3,-7.8,3.0 +20001221,-2.2,-8.4,2.2,-7.8,1.7 +20001222,-0.8,-6.7,3.3,-6.7,3.7 +20001223,-3.0,-15.2,3.3,-7.8,2.9 +20001224,0.1,-9.6,9.4,-5.6,1.0 +20001225,0.9,-12.8,10.0,-6.1,3.5 +20001226,-1.7,-14.1,3.3,-4.4,1.2 +20001227,1.3,-5.7,3.0,0.0,2.1 +20001228,2.8,0.0,3.3,0.0,3.0 +20001229,-0.4,-10.3,5.0,-6.7,2.5 +20001230,-1.3,-10.8,5.0,-6.7,3.1 +20001231,-4.4,-11.9,2.8,-10.0,2.3 +20010101,-2.2,-9.9,2.8,-10.0,1.4 +20010102,-1.1,-10.4,3.3,-5.6,3.5 +20010103,-3.1,-12.1,3.9,-10.0,2.0 +20010104,0.5,-9.4,8.3,-10.0,2.0 +20010105,2.7,-5.7,12.2,-7.2,3.9 +20010106,5.3,-7.3,12.2,-4.4,3.2 +20010107,4.9,-5.0,13.9,-1.7,1.6 +20010108,7.8,3.3,13.9,-1.7,2.6 +20010109,2.1,-7.1,5.6,-2.0,4.1 +20010110,3.5,-12.3,13.9,-3.3,3.3 +20010111,5.2,-7.9,13.9,-3.3,3.4 +20010112,5.1,1.6,10.6,-2.2,2.4 +20010113,6.5,-0.3,12.8,2.8,3.2 +20010114,9.2,0.3,12.8,2.8,1.7 +20010115,11.1,6.8,18.3,2.2,3.0 +20010116,9.4,0.3,18.3,3.9,2.0 +20010117,6.3,0.7,13.9,3.9,2.0 +20010118,6.3,5.8,9.4,4.4,2.3 +20010119,6.9,6.8,10.0,5.6,2.3 +20010120,8.4,6.1,13.0,3.0,4.1 +20010121,1.2,-8.9,12.8,-3.9,2.2 +20010122,2.6,-6.9,9.4,-3.9,2.3 +20010123,4.5,-8.6,15.0,-2.8,2.8 +20010124,6.9,-6.7,15.0,-2.2,1.5 +20010125,3.3,-7.4,13.3,-1.1,3.5 +20010126,0.3,-10.1,8.9,-6.7,2.3 +20010127,7.8,-4.2,15.6,2.8,4.4 +20010128,4.2,-7.2,16.1,-4.4,1.2 +20010129,6.9,-3.9,17.2,-4.4,1.3 +20010130,12.7,6.1,15.0,10.6,5.8 +20010131,12.6,3.2,18.3,9.0,6.3 +20010201,8.4,-1.0,18.9,3.3,2.1 +20010202,6.4,-2.1,12.8,2.8,2.6 +20010203,2.5,-11.4,12.8,-4.4,2.0 +20010204,4.7,-5.3,12.8,-4.4,1.5 +20010205,7.4,0.4,13.9,0.0,3.2 +20010206,5.4,-4.6,15.6,-3.3,2.1 +20010207,10.3,-3.7,19.4,-3.3,1.9 +20010208,10.6,1.4,20.6,0.6,1.6 +20010209,12.3,7.6,20.6,1.7,2.8 +20010210,14.8,7.6,20.6,6.1,4.1 +20010211,5.0,-4.1,17.8,0.6,4.3 +20010212,3.6,0.3,9.4,0.6,3.8 +20010213,4.9,3.6,10.0,1.7,1.3 +20010214,10.0,9.3,15.0,2.8,2.6 +20010215,15.6,14.3,17.8,7.8,3.6 +20010216,17.9,15.2,22.8,13.9,4.9 +20010217,10.8,3.1,22.8,5.6,5.2 +20010218,2.9,-7.7,13.3,-2.2,2.6 +20010219,5.0,-4.2,13.3,-2.2,2.8 +20010220,8.7,1.3,15.0,-0.6,2.4 +20010221,12.6,8.8,18.9,1.7,3.2 +20010222,5.2,1.3,18.9,0.6,3.9 +20010223,5.4,1.5,16.7,0.6,1.4 +20010224,8.2,2.1,16.7,0.6,1.7 +20010225,13.2,10.6,18.9,10.0,3.0 +20010226,15.6,5.5,21.7,8.9,3.5 +20010227,12.0,-3.8,21.7,5.6,2.6 +20010228,12.7,1.7,16.7,5.6,2.0 +20010301,10.7,2.1,18.3,5.0,1.5 +20010302,14.9,6.5,24.4,5.0,4.0 +20010303,13.8,11.7,24.4,8.3,2.3 +20010304,10.3,9.9,12.0,9.0,3.3 +20010305,8.7,-0.9,13.3,5.0,5.6 +20010306,2.8,-9.1,7.2,-2.0,6.1 +20010307,4.2,-7.5,12.2,-1.7,5.6 +20010308,6.2,-5.7,15.6,-2.8,3.4 +20010309,10.2,-3.8,15.6,-2.8,2.9 +20010310,5.8,-7.8,12.8,-2.0,2.6 +20010311,8.9,-3.3,17.8,-1.7,2.9 +20010312,11.1,4.2,17.8,0.0,1.5 +20010313,16.1,9.1,21.7,6.7,6.5 +20010314,14.3,0.5,20.6,8.0,4.1 +20010315,11.6,7.3,21.1,8.3,3.3 +20010316,10.7,9.2,17.8,7.8,2.9 +20010317,11.6,3.7,17.8,2.8,2.7 +20010318,8.7,-1.4,17.8,2.8,4.2 +20010319,7.5,-7.0,14.4,1.1,4.5 +20010320,4.8,-1.9,13.9,0.6,7.5 +20010321,6.2,2.9,12.8,0.6,5.2 +20010322,11.9,1.1,18.3,3.3,6.4 +20010323,12.8,-0.9,20.0,6.7,3.0 +20010324,12.8,1.3,21.7,3.3,2.7 +20010325,11.2,1.6,21.7,3.3,3.2 +20010326,7.1,-8.7,15.6,0.6,4.1 +20010327,4.2,-9.2,11.1,-1.7,2.1 +20010328,6.1,-7.5,13.3,-1.7,2.8 +20010329,6.3,2.3,13.3,0.0,4.8 +20010330,9.4,7.9,14.4,4.4,2.7 +20010331,13.2,8.7,20.0,6.7,4.0 +20010401,11.1,1.6,20.0,4.4,4.4 +20010402,10.1,-5.0,18.9,2.2,2.2 +20010403,11.7,5.3,18.9,2.2,3.7 +20010404,13.8,9.8,18.9,7.8,2.7 +20010405,12.4,7.4,18.9,8.9,2.6 +20010406,15.4,11.0,24.4,10.6,4.0 +20010407,21.7,14.7,28.9,10.6,4.5 +20010408,23.2,12.9,29.4,16.1,4.3 +20010409,23.4,13.3,30.6,15.6,3.4 +20010410,23.7,13.9,31.7,13.9,2.7 +20010411,23.2,14.5,31.7,13.9,2.6 +20010412,22.6,14.3,30.0,15.6,4.9 +20010413,20.8,16.5,24.4,16.0,3.1 +20010414,19.3,8.7,25.0,11.1,1.9 +20010415,17.8,11.6,25.0,11.1,3.7 +20010416,16.5,6.7,21.1,10.6,3.8 +20010417,10.7,-2.7,17.2,6.0,4.8 +20010418,7.0,-5.2,15.6,0.6,3.3 +20010419,9.1,-3.7,17.8,0.0,1.5 +20010420,14.1,0.8,22.8,7.8,4.1 +20010421,17.9,9.3,25.6,7.2,4.1 +20010422,19.6,12.0,26.7,12.2,3.7 +20010423,19.8,13.1,26.7,13.3,3.8 +20010424,19.7,14.3,27.2,13.3,3.7 +20010425,14.1,9.3,27.2,10.6,3.2 +20010426,13.2,7.4,20.6,7.2,1.5 +20010427,16.3,6.1,25.6,7.2,1.6 +20010428,20.2,7.1,29.4,7.2,2.1 +20010429,18.4,5.1,29.4,10.0,4.8 +20010430,17.8,8.9,24.4,13.3,2.2 +20010501,18.8,13.4,26.7,11.7,2.0 +20010502,19.4,12.5,26.7,11.7,2.4 +20010503,19.9,10.9,27.8,11.1,1.8 +20010504,20.6,9.8,28.9,11.1,2.1 +20010505,21.8,12.0,30.0,12.2,2.3 +20010506,21.1,15.1,30.0,13.9,3.4 +20010507,18.2,8.0,26.1,13.9,4.8 +20010508,17.2,10.1,22.2,13.9,1.6 +20010509,19.3,13.7,25.6,14.4,1.2 +20010510,19.9,15.3,27.2,15.6,1.8 +20010511,20.7,14.9,29.4,14.4,2.7 +20010512,21.8,15.4,29.4,14.4,2.2 +20010513,20.9,7.6,27.8,14.4,3.5 +20010514,18.7,2.0,26.7,11.1,2.8 +20010515,21.6,8.6,31.7,11.1,2.2 +20010516,24.2,12.0,32.8,11.7,2.2 +20010517,21.8,16.2,32.8,16.7,3.6 +20010518,23.4,15.6,32.8,15.6,3.4 +20010519,24.7,14.2,32.8,15.6,4.5 +20010520,21.4,17.4,31.7,16.7,1.9 +20010521,22.1,20.4,27.8,17.2,4.0 +20010522,22.6,18.9,26.1,18.0,5.2 +20010523,16.5,7.9,26.1,8.3,2.1 +20010524,18.1,9.8,26.1,8.3,3.2 +20010525,16.8,14.9,26.1,10.0,3.8 +20010526,17.3,10.1,25.0,10.0,3.1 +20010527,19.3,9.7,27.8,10.0,3.8 +20010528,18.7,13.7,27.8,11.1,2.9 +20010529,20.9,15.8,28.3,14.4,2.2 +20010530,22.1,12.2,28.3,16.7,2.3 +20010531,21.2,12.6,28.3,16.1,2.6 +20010601,18.9,17.3,25.6,16.1,2.8 +20010602,21.1,15.0,27.8,16.7,4.3 +20010603,22.2,13.8,30.0,14.4,4.0 +20010604,23.2,19.1,30.0,14.4,3.9 +20010605,25.8,18.5,32.2,17.8,3.8 +20010606,25.1,18.3,32.2,18.3,2.2 +20010607,22.5,19.3,31.7,19.4,2.5 +20010608,22.7,18.6,28.3,20.0,2.3 +20010609,21.6,18.4,28.3,17.2,1.3 +20010610,23.2,19.3,27.8,17.2,2.3 +20010611,23.4,17.6,28.9,17.2,2.0 +20010612,23.5,19.2,28.9,17.2,3.0 +20010613,25.4,19.0,32.8,18.9,3.4 +20010614,24.0,18.3,32.8,18.9,1.9 +20010615,24.4,19.5,32.8,18.9,2.3 +20010616,26.2,19.0,31.1,18.9,3.1 +20010617,25.5,14.2,32.2,18.9,2.4 +20010618,25.3,14.6,32.2,18.9,2.6 +20010619,24.7,16.4,30.6,18.3,1.2 +20010620,24.7,16.8,31.1,18.3,2.2 +20010621,25.4,17.2,31.1,18.3,2.3 +20010622,23.0,19.6,31.1,18.3,3.6 +20010623,21.8,17.2,28.9,17.8,2.0 +20010624,22.6,14.6,28.3,17.8,3.1 +20010625,20.3,15.9,27.8,17.2,3.9 +20010626,20.3,18.7,26.7,17.2,2.4 +20010627,23.4,19.2,30.0,17.8,1.8 +20010628,24.0,18.8,30.0,18.9,1.0 +20010629,23.8,19.4,30.6,18.9,2.7 +20010630,24.0,20.4,30.6,18.9,2.7 +20010701,23.9,20.8,30.6,20.0,3.3 +20010702,25.1,19.8,31.7,20.0,1.6 +20010703,24.4,20.9,31.7,20.0,2.2 +20010704,24.6,20.3,31.1,20.0,4.0 +20010705,22.9,18.9,31.7,17.8,2.9 +20010706,23.9,18.6,31.1,17.8,1.7 +20010707,24.2,19.5,31.1,18.3,1.9 +20010708,24.3,20.8,28.9,20.0,2.0 +20010709,24.6,19.6,32.2,20.6,2.7 +20010710,26.8,20.1,32.8,21.7,1.9 +20010711,27.3,20.9,34.4,21.7,1.6 +20010712,26.1,18.5,34.4,21.7,2.8 +20010713,23.5,18.9,30.6,20.0,4.0 +20010714,22.9,14.9,28.9,17.2,2.1 +20010715,23.7,13.3,30.0,16.7,2.5 +20010716,24.1,15.7,31.1,17.8,1.5 +20010717,25.7,16.9,32.2,17.8,2.5 +20010718,26.7,17.8,32.8,20.6,3.0 +20010719,25.0,19.8,32.8,20.0,1.6 +20010720,23.2,21.3,31.1,20.0,2.9 +20010721,22.2,17.9,27.2,18.3,3.1 +20010722,22.9,16.6,28.9,17.8,2.2 +20010723,24.1,18.4,30.0,17.8,3.2 +20010724,23.9,21.9,30.0,19.4,2.5 +20010725,22.6,21.7,28.3,21.7,4.6 +20010726,24.1,21.1,29.4,21.0,4.7 +20010727,24.8,21.3,30.0,20.6,3.2 +20010728,20.8,18.6,23.0,19.0,3.0 +20010729,23.2,21.7,28.3,19.4,3.3 +20010730,24.7,21.9,30.0,21.1,2.5 +20010731,24.4,20.3,30.0,20.6,2.2 +20010801,24.2,19.9,29.4,20.6,1.2 +20010802,23.9,18.0,29.4,19.4,2.3 +20010803,24.6,19.4,29.4,19.4,2.1 +20010804,23.6,20.9,29.4,20.6,2.4 +20010805,24.4,21.3,30.0,21.1,1.7 +20010806,25.1,21.4,30.6,20.6,1.2 +20010807,26.6,21.1,32.2,20.6,2.1 +20010808,27.7,21.7,32.8,21.7,1.9 +20010809,27.9,22.6,33.3,22.2,2.2 +20010810,28.1,22.5,33.3,22.8,2.5 +20010811,27.1,22.4,32.8,22.2,2.2 +20010812,25.8,21.2,32.2,21.7,3.9 +20010813,24.4,21.6,30.0,21.1,2.6 +20010814,25.2,19.8,31.1,21.0,2.0 +20010815,25.4,18.9,31.1,21.1,2.1 +20010816,25.2,19.6,31.1,20.6,2.2 +20010817,26.2,21.7,32.8,20.6,2.7 +20010818,25.9,21.0,33.3,21.7,2.0 +20010819,25.6,20.6,33.3,21.7,3.7 +20010820,26.0,18.2,31.7,21.1,2.8 +20010821,24.3,14.1,31.7,18.3,2.6 +20010822,23.8,14.2,31.1,16.1,1.9 +20010823,24.9,17.8,32.8,16.1,1.9 +20010824,26.9,19.9,32.8,17.8,2.7 +20010825,25.3,18.6,32.8,21.7,2.1 +20010826,25.6,18.1,31.7,20.6,2.1 +20010827,26.7,19.5,33.9,20.6,2.7 +20010828,24.4,19.1,33.9,18.9,1.8 +20010829,25.3,20.3,32.2,18.9,1.7 +20010830,24.4,20.9,32.2,20.0,3.0 +20010831,23.9,20.1,28.9,20.0,4.1 +20010901,22.0,20.5,29.4,20.0,3.3 +20010902,22.1,20.8,25.6,20.6,2.4 +20010903,22.1,20.9,26.1,20.6,1.8 +20010904,20.2,19.1,26.1,17.8,3.1 +20010905,23.2,19.4,30.0,17.8,1.7 +20010906,23.6,20.1,30.0,17.8,2.0 +20010907,22.9,18.6,28.9,18.9,1.9 +20010908,22.5,17.8,28.3,17.8,2.0 +20010909,22.4,19.3,28.3,17.8,2.9 +20010910,23.6,21.8,27.8,19.4,1.9 +20010911,24.1,19.2,28.3,21.1,3.2 +20010912,22.1,16.1,28.3,17.2,2.5 +20010913,21.2,14.8,27.8,14.4,1.8 +20010914,20.5,16.5,28.0,15.6,2.2 +20010915,17.1,8.9,21.7,12.0,6.4 +20010916,16.2,8.1,23.3,10.0,2.6 +20010917,17.3,11.1,25.0,10.0,1.4 +20010918,18.6,11.6,26.7,10.0,1.2 +20010919,17.8,14.0,26.7,10.6,1.0 +20010920,20.4,18.7,26.1,12.2,1.2 +20010921,22.3,17.7,28.3,17.8,2.2 +20010922,22.1,16.8,29.4,16.7,1.1 +20010923,22.8,18.2,30.0,16.7,1.9 +20010924,19.5,18.3,30.0,17.2,2.9 +20010925,15.4,8.4,20.0,10.0,2.4 +20010926,12.9,6.3,20.6,5.6,2.1 +20010927,15.4,8.1,23.3,5.6,1.5 +20010928,16.2,9.0,23.3,8.9,2.6 +20010929,15.5,6.9,22.2,8.3,4.1 +20010930,14.8,6.8,21.7,8.3,2.5 +20011001,15.4,7.4,24.4,7.8,1.5 +20011002,17.6,8.7,25.6,7.8,1.9 +20011003,18.1,10.3,27.2,10.0,1.2 +20011004,18.3,11.1,27.2,10.0,1.4 +20011005,17.5,13.4,26.7,10.6,1.9 +20011006,17.9,15.8,24.4,11.1,3.0 +20011007,11.8,3.0,19.4,5.0,2.7 +20011008,10.6,1.1,19.4,4.4,3.2 +20011009,9.9,2.9,17.2,4.4,2.5 +20011010,12.9,7.0,21.1,5.0,2.4 +20011011,17.7,13.7,23.3,7.8,1.9 +20011012,18.1,16.3,23.3,13.9,1.7 +20011013,18.9,16.9,24.4,14.0,2.4 +20011014,20.6,17.6,25.0,14.4,5.4 +20011015,15.3,8.3,24.4,7.8,1.9 +20011016,13.3,6.7,22.2,6.7,3.2 +20011017,9.3,-0.7,21.1,3.3,3.4 +20011018,9.1,0.4,16.7,1.7,2.0 +20011019,10.1,4.4,20.6,1.7,1.5 +20011020,14.6,8.9,23.3,2.2,1.1 +20011021,15.9,10.3,25.0,7.2,0.7 +20011022,17.4,12.4,26.1,8.9,0.6 +20011023,18.8,15.5,26.7,10.6,1.7 +20011024,20.6,16.3,27.8,13.9,3.3 +20011025,20.2,10.1,27.8,14.4,4.2 +20011026,13.5,-4.6,23.3,5.0,5.0 +20011027,6.6,-6.6,18.3,0.6,3.9 +20011028,4.9,-4.9,12.8,-1.7,1.9 +20011029,6.9,-1.6,17.2,-1.7,1.1 +20011030,11.1,0.6,22.2,-0.6,0.7 +20011031,12.1,1.7,22.2,1.7,1.5 +20011101,13.8,6.9,22.2,4.4,0.9 +20011102,16.7,12.4,24.4,7.2,1.4 +20011103,18.2,12.9,26.7,10.0,1.7 +20011104,17.3,5.3,26.7,10.0,3.7 +20011105,14.9,1.4,22.2,6.7,2.0 +20011106,10.4,-5.0,22.2,0.6,2.0 +20011107,11.4,-2.8,22.8,0.6,1.0 +20011108,13.4,0.7,22.8,0.6,1.0 +20011109,16.2,3.0,22.2,11.7,2.0 +20011110,13.1,2.9,23.9,2.8,2.2 +20011111,14.9,2.4,23.9,2.8,2.8 +20011112,11.7,2.8,22.2,6.1,3.6 +20011113,8.6,0.9,15.6,3.9,2.6 +20011114,10.3,2.0,18.3,3.9,2.3 +20011115,12.2,4.7,20.6,5.0,2.2 +20011116,14.2,3.7,23.9,5.0,1.7 +20011117,16.2,7.0,23.9,5.0,2.0 +20011118,13.1,8.9,22.2,8.3,1.5 +20011119,11.7,7.7,21.1,4.4,1.5 +20011120,13.7,6.2,21.1,4.4,3.3 +20011121,7.2,-2.2,12.2,2.0,2.3 +20011122,6.8,2.0,16.7,-1.1,1.4 +20011123,10.0,7.4,16.7,-1.1,1.9 +20011124,12.0,12.0,15.6,6.1,3.8 +20011125,17.7,16.4,23.3,11.1,3.9 +20011126,15.1,12.0,23.3,6.7,1.8 +20011127,18.6,16.0,23.9,15.6,2.3 +20011128,17.6,15.4,23.9,13.9,2.2 +20011129,16.8,14.7,23.3,11.7,2.7 +20011130,18.2,15.4,23.3,11.7,5.4 +20011201,13.2,9.1,20.6,5.6,1.9 +20011202,12.4,7.1,20.6,5.6,2.4 +20011203,11.1,3.0,18.9,5.0,2.6 +20011204,9.8,2.3,20.6,1.7,0.4 +20011205,11.9,5.0,22.2,1.7,1.3 +20011206,15.3,11.8,22.2,5.0,3.1 +20011207,15.9,11.8,22.8,9.4,2.6 +20011208,17.4,12.2,22.8,10.6,3.3 +20011209,14.8,9.3,22.8,12.2,3.2 +20011210,7.8,3.6,12.8,4.0,4.7 +20011211,8.1,6.4,15.0,4.4,2.8 +20011212,10.1,9.1,15.0,5.0,2.7 +20011213,11.4,11.2,15.0,9.4,1.8 +20011214,14.7,14.2,20.0,10.0,3.1 +20011215,12.6,7.4,20.0,5.0,2.3 +20011216,9.2,3.6,18.3,5.0,2.1 +20011217,10.2,7.0,13.3,6.1,1.3 +20011218,12.7,7.9,17.8,7.2,2.5 +20011219,7.8,0.9,17.8,1.7,2.3 +20011220,7.4,-4.3,15.0,1.7,4.0 +20011221,4.4,-7.4,13.3,-3.9,1.7 +20011222,4.9,-5.6,13.3,-3.9,1.6 +20011223,5.3,1.0,12.2,-1.7,1.0 +20011224,7.1,3.1,11.0,1.7,2.9 +20011225,1.3,-7.3,10.0,-5.0,1.0 +20011226,1.6,-7.6,7.2,-5.0,2.1 +20011227,0.6,-10.6,7.2,-4.4,4.4 +20011228,4.4,-5.1,13.9,-4.4,5.2 +20011229,9.2,0.3,15.6,-1.7,5.1 +20011230,2.3,-8.1,15.6,-2.2,1.7 +20011231,2.3,-8.8,7.8,-2.2,1.7 +20020101,0.6,-9.9,7.2,-6.1,2.2 +20020102,-0.9,-10.6,7.2,-6.1,3.4 +20020103,-2.2,-3.8,1.1,-4.0,3.4 +20020104,0.1,-9.9,7.2,-4.4,3.1 +20020105,1.8,-6.2,10.6,-4.4,2.5 +20020106,2.4,-1.1,10.6,-4.4,2.6 +20020107,2.6,-1.2,7.8,-2.2,3.1 +20020108,0.4,-7.2,7.8,-6.1,2.2 +20020109,4.6,-3.5,15.6,-6.1,3.8 +20020110,12.3,6.6,19.4,6.7,5.0 +20020111,13.1,6.2,20.0,5.6,4.3 +20020112,4.6,-0.9,16.7,-2.2,1.4 +20020113,5.1,-0.7,12.8,-2.2,2.8 +20020114,3.4,-2.5,12.8,-3.3,2.0 +20020115,7.3,1.0,13.9,-3.3,2.5 +20020116,4.9,-4.1,13.9,-0.6,2.4 +20020117,6.7,-2.0,17.8,-1.1,3.2 +20020118,10.9,2.8,13.9,8.0,2.5 +20020119,4.1,0.2,9.4,1.0,3.6 +20020120,3.7,0.3,10.0,-1.7,2.2 +20020121,6.7,4.2,14.4,-1.7,2.7 +20020122,6.7,-1.8,14.4,-0.6,2.1 +20020123,6.9,4.8,13.9,-0.6,2.1 +20020124,11.5,11.4,15.6,5.0,3.0 +20020125,11.0,5.7,13.3,4.0,2.8 +20020126,4.9,-2.8,15.0,-2.2,1.0 +20020127,6.7,-1.4,17.8,-2.2,1.0 +20020128,10.8,2.1,22.8,-2.2,1.9 +20020129,17.6,11.9,25.6,11.7,4.2 +20020130,18.2,13.6,25.6,11.1,4.3 +20020131,17.8,15.7,23.9,11.7,3.0 +20020201,18.1,14.3,21.7,13.9,5.9 +20020202,7.6,-2.7,21.7,1.7,3.1 +20020203,4.3,-2.7,10.6,1.1,1.3 +20020204,4.2,-3.3,10.6,-1.7,3.6 +20020205,0.2,-13.5,10.6,-5.6,2.2 +20020206,2.3,-4.8,5.6,-5.6,2.4 +20020207,3.1,2.8,6.0,1.7,2.5 +20020208,7.4,-1.1,17.8,0.0,2.4 +20020209,8.8,-0.5,17.8,-0.6,1.5 +20020210,11.6,5.8,16.0,9.0,2.4 +20020211,8.9,0.5,16.1,1.7,3.9 +20020212,5.7,-3.6,15.0,-2.2,1.6 +20020213,9.3,-3.8,15.6,-2.2,2.5 +20020214,7.3,-5.4,15.6,2.2,3.8 +20020215,6.7,-0.4,16.1,-0.6,2.0 +20020216,11.2,1.1,17.8,-0.6,2.7 +20020217,8.7,-6.5,17.8,3.3,4.6 +20020218,5.2,-9.4,13.3,-2.8,1.7 +20020219,6.9,-7.6,16.1,-2.8,2.7 +20020220,10.6,5.8,13.9,7.8,2.7 +20020221,13.5,7.6,19.4,6.7,4.1 +20020222,11.5,-0.4,19.4,5.0,2.3 +20020223,6.9,-1.0,16.7,1.7,4.2 +20020224,6.4,-1.8,15.6,-2.2,1.5 +20020225,8.5,-1.4,18.3,-2.2,2.2 +20020226,12.0,2.8,19.4,6.0,5.0 +20020227,1.4,-12.3,10.6,-3.3,4.0 +20020228,-2.0,-13.4,6.7,-8.9,2.7 +20020301,2.6,-11.8,11.7,-8.9,2.6 +20020302,4.2,-2.4,11.7,-5.0,4.8 +20020303,8.8,5.6,15.0,1.7,3.5 +20020304,0.2,-10.6,15.0,-5.0,2.9 +20020305,1.1,-11.7,11.1,-6.1,2.1 +20020306,7.0,-5.7,17.8,-6.1,3.0 +20020307,10.3,-2.0,20.0,-2.2,1.8 +20020308,12.7,3.1,21.7,0.0,1.9 +20020309,15.4,12.2,22.2,3.9,2.5 +20020310,11.2,-2.1,22.2,3.3,4.6 +20020311,7.3,-11.6,16.1,0.0,3.0 +20020312,7.8,1.1,15.0,0.0,3.0 +20020313,10.7,9.8,17.2,4.4,3.9 +20020314,13.9,10.9,22.8,6.0,1.3 +20020315,17.4,11.7,25.6,6.1,3.4 +20020316,20.7,14.3,27.8,10.0,5.0 +20020317,16.6,13.9,23.3,11.0,3.3 +20020318,10.1,8.4,18.3,6.7,3.0 +20020319,13.4,10.9,18.3,6.7,3.1 +20020320,12.1,11.4,17.8,10.0,3.4 +20020321,14.5,12.3,19.4,10.0,2.8 +20020322,6.7,-6.7,17.2,-2.0,4.3 +20020323,4.6,-8.6,15.0,-4.0,2.2 +20020324,11.1,-4.1,21.7,-3.9,3.5 +20020325,16.0,6.7,25.0,2.8,3.8 +20020326,17.6,14.3,25.0,8.3,3.7 +20020327,14.6,6.8,23.3,6.7,2.7 +20020328,9.1,0.0,20.6,1.7,3.6 +20020329,12.6,7.7,23.3,1.7,2.5 +20020330,16.1,12.4,19.4,12.8,2.3 +20020331,16.9,15.5,23.9,12.8,2.8 +20020401,15.8,9.0,23.9,9.4,2.8 +20020402,15.8,7.9,25.0,6.7,2.7 +20020403,20.2,12.0,28.3,6.7,4.4 +20020404,10.8,1.3,17.8,5.0,4.3 +20020405,11.2,0.2,17.8,4.4,2.5 +20020406,11.4,-4.2,17.8,3.9,3.5 +20020407,9.7,-2.3,17.8,2.2,3.3 +20020408,14.2,7.7,23.3,2.2,3.3 +20020409,17.2,13.8,23.3,8.3,5.0 +20020410,18.3,15.2,23.3,15.6,3.0 +20020411,18.2,11.5,23.9,13.9,4.6 +20020412,15.6,11.1,23.3,12.8,3.1 +20020413,15.8,14.6,19.4,12.8,2.5 +20020414,18.6,15.9,25.0,13.9,1.7 +20020415,21.4,16.1,28.9,13.9,2.7 +20020416,22.9,15.3,30.0,15.0,3.3 +20020417,23.2,16.1,30.6,15.0,2.9 +20020418,23.5,16.3,31.7,16.7,1.4 +20020419,23.8,17.0,31.7,16.7,2.1 +20020420,24.5,16.8,31.7,17.2,2.2 +20020421,24.8,16.0,31.7,17.2,3.8 +20020422,23.7,12.5,31.1,17.2,4.2 +20020423,17.3,2.3,26.7,10.6,3.1 +20020424,16.3,6.2,23.9,10.0,2.3 +20020425,18.7,12.5,25.6,10.0,3.2 +20020426,13.9,0.7,25.6,8.3,2.8 +20020427,15.1,7.6,20.0,8.3,1.6 +20020428,20.1,15.7,28.3,11.7,4.8 +20020429,23.6,11.8,29.4,15.0,4.1 +20020430,17.1,5.0,29.4,9.4,3.2 +20020501,18.2,15.1,24.0,14.0,3.7 +20020502,22.7,19.0,29.4,14.4,5.6 +20020503,21.8,17.2,29.4,17.8,3.6 +20020504,12.6,11.7,23.3,10.0,4.1 +20020505,12.7,10.9,20.6,10.0,2.0 +20020506,16.3,12.3,24.4,10.0,1.8 +20020507,21.7,15.9,28.9,14.4,4.1 +20020508,24.4,19.2,30.3,18.0,3.7 +20020509,25.0,18.7,30.6,18.9,4.6 +20020510,21.2,19.0,30.6,16.1,1.5 +20020511,19.0,14.6,26.7,16.1,3.9 +20020512,20.0,15.5,26.7,16.7,2.7 +20020513,22.2,18.9,27.8,18.9,4.9 +20020514,15.7,5.9,28.3,8.9,4.5 +20020515,16.9,6.1,23.9,8.9,2.2 +20020516,18.3,10.8,26.1,8.9,3.5 +20020517,21.0,15.7,27.2,10.0,3.5 +20020518,19.9,14.7,23.9,14.0,5.2 +20020519,12.1,3.1,22.8,6.7,3.7 +20020520,13.0,2.2,18.9,6.7,2.5 +20020521,13.5,4.3,18.3,7.2,2.8 +20020522,12.2,4.7,18.3,6.7,3.5 +20020523,14.3,5.5,23.9,6.1,1.3 +20020524,19.1,8.4,27.8,10.6,2.3 +20020525,21.8,11.8,30.0,10.0,1.7 +20020526,22.8,13.2,30.6,12.2,1.7 +20020527,22.5,16.0,30.6,14.4,2.0 +20020528,20.9,15.6,28.9,14.4,1.9 +20020529,22.7,15.4,28.9,14.4,2.4 +20020530,22.3,16.8,28.9,17.2,2.7 +20020531,23.4,18.6,31.1,18.9,2.2 +20020601,25.7,18.6,33.9,18.9,2.0 +20020602,27.8,18.6,35.0,18.9,2.0 +20020603,28.2,19.9,35.0,19.4,2.0 +20020604,27.6,20.7,33.3,22.2,2.0 +20020605,24.7,20.5,33.3,19.4,3.2 +20020606,25.7,20.7,31.7,19.4,3.2 +20020607,23.1,18.6,30.6,18.3,3.4 +20020608,21.7,13.2,28.9,16.1,4.7 +20020609,21.1,11.6,29.4,12.8,1.7 +20020610,22.9,11.7,31.7,12.8,1.3 +20020611,24.8,13.4,32.8,13.3,1.3 +20020612,26.1,14.2,33.9,15.6,2.4 +20020613,27.4,16.7,33.9,17.2,2.7 +20020614,26.6,18.0,34.4,19.4,2.6 +20020615,22.4,13.3,30.6,15.6,2.1 +20020616,22.2,10.7,30.0,13.3,1.5 +20020617,23.6,11.9,30.0,13.3,1.9 +20020618,24.4,12.6,31.1,16.7,2.7 +20020619,23.3,16.2,31.1,17.2,2.7 +20020620,24.9,15.6,30.6,17.2,4.2 +20020621,24.3,11.9,29.4,18.3,4.8 +20020622,23.6,13.8,30.6,18.3,4.6 +20020623,23.1,19.9,31.1,18.3,2.5 +20020624,24.5,20.0,31.7,20.0,1.4 +20020625,25.2,19.8,31.7,20.0,2.0 +20020626,25.3,21.7,31.1,20.6,3.1 +20020627,25.8,20.3,32.8,20.6,3.9 +20020628,25.3,18.6,32.8,20.6,5.0 +20020629,26.2,19.3,33.9,20.6,2.4 +20020630,26.9,19.5,33.9,20.6,2.4 +20020701,24.9,20.6,33.9,20.6,1.5 +20020702,26.2,20.5,34.4,20.6,1.3 +20020703,25.9,19.3,34.4,20.0,1.5 +20020704,24.5,19.4,34.4,19.4,1.5 +20020705,27.8,18.1,36.1,19.4,1.5 +20020706,28.9,18.8,36.1,20.0,3.7 +20020707,27.1,17.2,34.4,21.7,2.6 +20020708,26.4,16.4,33.3,20.0,1.9 +20020709,26.6,16.2,34.4,19.4,2.9 +20020710,27.5,20.6,34.4,19.4,3.4 +20020711,23.3,20.9,33.3,20.6,2.8 +20020712,19.9,15.1,28.3,17.8,3.2 +20020713,22.2,18.6,26.1,17.8,2.5 +20020714,23.9,20.8,29.4,20.0,2.5 +20020715,25.1,21.6,31.1,22.0,2.5 +20020716,27.1,20.6,33.3,21.1,1.6 +20020717,28.5,19.2,33.9,21.1,1.4 +20020718,28.5,20.3,34.4,22.8,1.4 +20020719,28.2,19.1,34.4,21.1,2.6 +20020720,27.8,18.7,34.4,21.1,2.1 +20020721,27.2,19.9,33.3,22.8,2.0 +20020722,26.2,20.6,33.3,21.1,2.1 +20020723,25.8,20.2,31.7,21.1,2.3 +20020724,26.3,20.5,33.3,20.6,2.5 +20020725,23.9,21.7,33.3,20.6,1.5 +20020726,25.8,21.9,32.8,21.1,2.2 +20020727,26.3,22.2,33.9,21.7,1.9 +20020728,28.9,21.4,34.4,22.2,2.8 +20020729,29.2,20.3,35.0,22.8,2.3 +20020730,29.4,20.1,35.6,22.8,2.6 +20020731,28.3,18.9,35.6,21.1,1.7 +20020801,28.1,19.2,35.0,21.1,2.2 +20020802,27.3,19.7,35.0,21.1,1.9 +20020803,27.1,18.4,33.9,20.6,2.7 +20020804,27.8,16.9,35.0,20.6,3.0 +20020805,28.2,17.1,36.1,20.0,1.5 +20020806,29.2,19.0,36.1,20.0,1.7 +20020807,26.0,11.1,35.0,18.9,4.2 +20020808,23.8,10.6,31.1,17.2,2.1 +20020809,24.2,12.7,31.1,16.7,1.6 +20020810,24.2,13.8,31.7,16.1,1.4 +20020811,25.9,14.5,33.9,16.1,2.0 +20020812,27.4,14.7,35.0,18.9,2.6 +20020813,27.4,14.8,35.0,20.0,2.9 +20020814,26.6,17.6,35.0,20.6,2.3 +20020815,27.0,20.5,33.9,21.1,3.0 +20020816,24.7,21.4,33.9,20.6,2.9 +20020817,23.2,21.7,31.7,20.6,2.2 +20020818,25.6,20.8,33.3,20.6,1.9 +20020819,26.4,21.0,33.3,20.6,1.9 +20020820,26.3,20.1,33.3,20.6,1.8 +20020821,27.6,20.0,33.3,20.6,2.5 +20020822,27.0,21.4,33.3,21.7,1.4 +20020823,28.3,20.8,35.0,21.7,1.7 +20020824,28.7,21.0,35.0,22.2,2.2 +20020825,24.3,21.2,33.9,20.6,1.3 +20020826,23.9,20.7,29.4,20.0,1.8 +20020827,22.3,19.6,29.4,18.9,3.3 +20020828,21.4,18.4,26.7,18.9,4.4 +20020829,20.3,18.4,22.8,18.9,3.7 +20020830,21.4,19.6,23.0,20.0,3.5 +20020831,19.9,19.3,22.8,18.9,4.0 +20020901,20.4,18.5,26.1,17.8,3.9 +20020902,22.7,19.3,27.8,17.8,2.7 +20020903,23.1,19.8,30.0,17.8,1.0 +20020904,26.2,19.8,33.3,17.8,0.9 +20020905,26.4,18.3,33.3,20.0,2.7 +20020906,23.8,16.1,30.6,18.3,2.7 +20020907,23.1,16.7,30.0,18.3,2.7 +20020908,22.9,14.9,29.4,17.2,2.9 +20020909,23.0,13.2,31.7,17.2,2.9 +20020910,24.2,11.6,33.9,14.4,1.3 +20020911,26.2,11.9,33.9,14.4,2.4 +20020912,23.7,12.1,28.3,18.0,3.6 +20020913,20.6,15.1,28.3,16.7,2.9 +20020914,21.9,20.6,25.6,16.7,1.7 +20020915,20.1,19.5,25.0,18.9,2.4 +20020916,23.4,20.1,30.0,18.9,1.5 +20020917,24.0,20.3,30.0,18.3,1.7 +20020918,22.8,21.4,27.8,20.6,1.0 +20020919,22.9,20.2,27.8,20.0,1.4 +20020920,23.5,20.7,27.8,20.0,2.6 +20020921,22.3,20.4,27.2,20.6,2.0 +20020922,21.8,20.1,26.1,20.0,1.2 +20020923,22.5,18.4,26.7,18.9,2.5 +20020924,21.1,16.3,26.7,18.9,3.5 +20020925,18.1,14.6,22.8,15.0,4.7 +20020926,15.9,15.1,20.0,14.4,6.1 +20020927,23.0,21.3,26.1,14.4,5.7 +20020928,21.9,18.2,26.7,18.9,3.1 +20020929,21.0,17.2,26.7,18.9,3.4 +20020930,20.8,16.7,25.6,17.2,2.7 +20021001,22.0,18.4,28.3,17.2,1.7 +20021002,23.1,19.9,29.4,17.8,1.2 +20021003,23.9,20.2,30.0,17.8,1.1 +20021004,23.4,19.8,30.0,18.3,2.1 +20021005,23.5,20.7,29.4,18.3,2.4 +20021006,22.4,17.7,29.4,17.8,2.4 +20021007,22.3,18.2,27.8,17.8,1.6 +20021008,18.6,12.8,27.8,15.0,4.9 +20021009,13.8,12.4,16.1,12.0,4.0 +20021010,16.8,15.3,20.6,12.2,3.7 +20021011,19.8,17.7,25.0,15.0,3.6 +20021012,21.5,19.0,27.2,16.7,0.8 +20021013,21.2,19.2,27.2,16.7,1.4 +20021014,15.8,11.6,25.6,12.8,4.2 +20021015,10.8,9.4,17.2,9.4,5.4 +20021016,14.3,11.6,21.1,9.4,3.3 +20021017,12.5,7.7,21.1,7.8,1.8 +20021018,10.5,5.4,18.9,3.9,1.1 +20021019,12.8,8.1,20.6,3.9,2.8 +20021020,15.7,12.3,21.1,6.1,3.2 +20021021,18.1,16.3,21.7,11.1,2.6 +20021022,12.8,10.9,16.1,11.0,3.5 +20021023,13.3,11.1,17.8,11.0,2.0 +20021024,13.8,11.9,18.3,11.1,2.2 +20021025,12.5,11.4,13.0,12.0,4.0 +20021026,14.8,13.6,20.0,12.0,1.7 +20021027,16.6,15.6,20.6,12.2,1.7 +20021028,15.2,14.2,17.2,13.9,1.8 +20021029,12.2,11.6,16.1,9.4,4.2 +20021030,10.6,10.3,13.3,8.9,1.8 +20021031,10.8,7.3,17.8,5.0,1.6 +20021101,9.9,4.9,17.8,5.0,2.5 +20021102,8.8,1.4,16.1,3.9,2.5 +20021103,9.7,2.0,15.0,3.9,1.4 +20021104,10.9,8.6,16.0,8.3,2.2 +20021105,10.6,10.4,15.6,8.3,2.5 +20021106,11.4,7.6,17.0,8.9,3.7 +20021107,9.4,1.2,16.7,5.6,3.5 +20021108,9.2,4.9,18.3,2.2,2.4 +20021109,12.5,9.7,20.6,2.2,3.6 +20021110,17.0,16.4,21.7,6.7,3.4 +20021111,19.1,18.2,22.2,15.0,5.9 +20021112,14.5,14.2,22.2,12.8,1.9 +20021113,11.0,4.5,16.1,6.7,3.0 +20021114,8.3,1.0,16.1,1.1,1.4 +20021115,8.8,5.3,17.2,1.1,2.0 +20021116,11.6,11.5,12.8,10.6,2.7 +20021117,9.3,6.2,12.0,6.0,2.5 +20021118,4.4,-2.4,12.8,-2.2,2.5 +20021119,6.4,3.8,14.4,-2.1,2.4 +20021120,7.6,6.4,14.4,0.6,0.9 +20021121,11.7,9.7,16.7,2.8,1.5 +20021122,8.2,2.4,16.7,4.4,4.2 +20021123,5.0,-5.1,12.2,-1.7,3.0 +20021124,8.3,0.7,18.9,-1.7,1.4 +20021125,10.0,4.0,18.9,0.0,1.5 +20021126,10.0,2.7,18.9,2.8,1.5 +20021127,8.6,2.1,17.2,2.2,3.3 +20021128,1.6,-5.4,11.7,-2.2,2.0 +20021129,2.4,-4.9,12.8,-4.4,3.8 +20021130,11.1,-0.9,17.0,7.8,7.4 +20021201,4.1,-8.5,17.2,-2.2,3.8 +20021202,2.5,-6.2,12.2,-4.4,2.0 +20021203,8.8,0.1,15.0,-4.4,2.7 +20021204,3.3,-1.4,15.0,-2.2,4.7 +20021205,0.9,0.9,7.2,-2.2,2.4 +20021206,3.0,1.5,8.3,-0.6,0.9 +20021207,2.6,0.9,8.3,-1.1,2.3 +20021208,3.2,0.4,11.7,-3.3,0.6 +20021209,5.6,-0.2,11.7,-3.3,3.6 +20021210,4.1,-1.4,7.8,1.0,5.0 +20021211,5.4,5.2,8.0,3.9,3.3 +20021212,4.8,4.6,7.8,2.2,1.4 +20021213,5.3,5.2,7.8,2.2,4.1 +20021214,5.7,2.8,10.6,2.0,4.0 +20021215,4.9,-2.3,12.8,-2.2,3.1 +20021216,8.8,1.9,18.3,-2.1,3.0 +20021217,7.3,1.8,18.3,2.2,2.2 +20021218,5.3,-1.1,10.6,2.8,3.4 +20021219,6.5,2.8,8.0,5.6,2.6 +20021220,10.7,6.4,15.0,6.1,5.1 +20021221,6.6,-4.0,13.3,1.0,4.2 +20021222,9.0,0.9,16.7,1.1,4.8 +20021223,9.3,-0.1,16.7,1.7,1.7 +20021224,5.9,4.1,15.6,1.7,3.3 +20021225,5.2,1.4,7.8,2.0,5.0 +20021226,1.7,-4.9,7.8,-2.8,2.6 +20021227,2.0,-2.5,9.4,-5.0,1.2 +20021228,3.8,-3.6,11.1,-5.0,2.9 +20021229,9.0,-0.8,19.4,-3.3,3.1 +20021230,8.0,2.4,19.4,-0.6,2.3 +20021231,9.2,5.9,15.0,-0.6,1.4 +20030101,13.6,12.4,15.0,12.0,4.0 +20030102,10.1,9.3,16.1,8.3,4.3 +20030103,8.7,6.3,11.7,3.9,2.7 +20030104,3.2,-4.6,11.7,-1.7,3.6 +20030105,5.1,-0.7,13.3,-1.7,3.1 +20030106,5.8,0.8,13.3,-0.6,2.6 +20030107,3.1,-8.6,10.6,-1.1,3.8 +20030108,7.6,-4.2,16.7,-1.1,4.3 +20030109,13.6,3.9,20.6,2.8,7.4 +20030110,12.1,3.3,20.6,6.1,4.8 +20030111,3.1,-7.9,15.0,-3.3,1.7 +20030112,0.2,-14.8,8.3,-4.4,2.6 +20030113,2.1,-9.5,7.2,-4.4,2.4 +20030114,5.1,-3.6,13.9,-1.7,2.9 +20030115,3.2,-6.3,13.9,-2.8,3.4 +20030116,1.0,-10.3,7.8,-2.8,2.2 +20030117,-0.2,-4.1,5.6,-2.8,2.5 +20030118,-4.6,-12.2,3.3,-10.6,2.9 +20030119,-0.8,-10.3,6.7,-10.6,4.5 +20030120,6.6,-3.8,16.7,1.7,6.9 +20030121,11.2,8.6,16.7,1.7,5.1 +20030122,4.8,1.9,16.7,0.0,2.6 +20030123,-1.8,-8.2,8.3,-9.4,4.2 +20030124,-6.6,-15.8,4.4,-11.1,3.1 +20030125,-0.3,-8.7,6.7,-11.1,1.5 +20030126,3.6,-7.3,10.0,-5.6,3.0 +20030127,-0.2,-11.1,10.0,-6.1,3.6 +20030128,2.8,-10.2,11.7,-6.1,4.1 +20030129,8.7,1.3,10.6,7.2,5.1 +20030130,5.8,5.6,10.6,2.8,4.2 +20030131,2.9,1.9,5.0,2.0,2.5 +20030201,6.2,1.9,15.6,0.0,2.1 +20030202,7.8,0.9,21.1,-1.1,2.8 +20030203,14.1,4.3,19.4,8.3,4.9 +20030204,13.8,5.4,20.0,7.8,6.3 +20030205,5.4,-9.2,16.1,-1.1,2.7 +20030206,4.6,-8.5,12.2,-1.1,2.9 +20030207,2.8,0.3,7.2,0.6,3.3 +20030208,1.6,-6.2,7.2,-3.3,2.4 +20030209,3.9,-8.5,10.6,-3.3,2.0 +20030210,6.2,0.3,12.8,-0.6,3.1 +20030211,3.7,-4.2,12.8,-4.4,3.7 +20030212,8.8,-4.4,15.0,4.0,5.7 +20030213,5.2,-11.6,15.0,-4.4,2.0 +20030214,6.7,-0.4,15.0,-4.4,1.7 +20030215,9.1,4.3,15.0,2.2,2.5 +20030216,2.3,1.7,13.3,-2.2,7.2 +20030217,-0.6,-1.2,3.3,-2.2,3.2 +20030218,4.4,2.1,12.2,-1.7,1.7 +20030219,6.4,2.9,14.4,0.0,2.1 +20030220,9.7,5.6,14.4,0.6,2.8 +20030221,8.7,5.2,12.2,5.6,3.1 +20030222,9.3,7.7,18.9,7.0,3.7 +20030223,11.1,3.3,18.9,3.3,7.1 +20030224,9.3,2.8,18.9,1.7,4.3 +20030225,9.6,3.1,18.9,1.7,2.6 +20030226,5.4,2.4,10.6,2.0,4.1 +20030227,1.7,1.7,7.8,0.6,4.8 +20030228,4.3,4.0,8.0,2.8,1.3 +20030301,6.8,6.2,8.3,2.2,2.8 +20030302,10.2,7.5,20.0,5.6,3.2 +20030303,7.3,-1.6,20.0,0.6,2.8 +20030304,8.1,2.2,15.6,0.6,2.3 +20030305,12.1,9.7,17.2,1.1,2.7 +20030306,14.1,12.7,17.2,8.9,3.2 +20030307,9.6,4.9,15.0,6.0,3.7 +20030308,6.2,3.3,17.2,-0.6,2.0 +20030309,15.1,7.8,22.8,10.0,2.7 +20030310,12.4,-0.1,23.3,4.4,2.7 +20030311,9.9,-0.6,17.8,4.4,3.0 +20030312,12.8,5.6,24.4,2.8,2.5 +20030313,17.1,10.1,25.0,2.8,2.9 +20030314,14.8,10.7,25.0,9.4,3.7 +20030315,9.8,6.3,10.6,8.0,3.3 +20030316,11.3,10.9,14.4,8.3,3.2 +20030317,13.8,13.1,16.7,10.0,2.4 +20030318,13.6,13.6,16.7,12.2,3.7 +20030319,13.9,13.4,15.0,12.0,4.0 +20030320,9.4,9.2,12.2,8.0,5.3 +20030321,13.2,10.2,21.7,8.3,3.4 +20030322,14.9,7.4,21.7,7.2,2.5 +20030323,13.6,5.2,21.7,5.6,1.6 +20030324,16.2,3.9,22.2,5.6,2.1 +20030325,15.9,5.2,25.0,6.7,2.6 +20030326,18.3,8.2,25.0,6.7,4.4 +20030327,15.9,9.0,25.0,11.7,4.3 +20030328,16.8,11.3,21.1,11.7,3.4 +20030329,18.9,14.9,23.9,13.3,3.4 +20030330,8.5,4.8,20.0,3.0,4.4 +20030331,4.8,-6.4,11.1,-2.0,3.6 +20030401,10.7,-1.3,22.2,-1.7,4.8 +20030402,17.7,6.9,24.4,11.0,4.7 +20030403,18.8,7.8,26.1,10.6,4.7 +20030404,18.8,10.9,26.1,10.6,4.5 +20030405,18.8,14.4,24.4,11.1,5.0 +20030406,15.7,8.7,22.8,8.3,3.0 +20030407,10.4,9.8,21.1,7.8,4.6 +20030408,7.9,7.0,8.3,7.0,3.4 +20030409,6.7,5.9,8.9,5.6,4.8 +20030410,6.1,5.0,8.9,1.7,5.1 +20030411,8.8,5.8,14.4,1.7,3.6 +20030412,15.2,4.9,24.4,6.1,3.7 +20030413,17.5,6.8,25.0,6.7,1.6 +20030414,18.2,7.8,26.7,8.9,2.5 +20030415,18.6,11.1,26.7,10.0,3.0 +20030416,19.2,11.6,26.1,10.6,3.4 +20030417,17.9,11.8,25.6,11.7,3.2 +20030418,12.6,11.9,24.4,8.9,5.0 +20030419,11.7,10.3,17.2,8.9,4.0 +20030420,13.9,12.6,17.8,9.4,2.3 +20030421,15.9,15.1,18.9,11.7,2.9 +20030422,16.8,12.2,21.1,10.6,2.4 +20030423,13.9,2.7,22.2,7.2,3.0 +20030424,14.0,5.3,22.2,5.6,1.5 +20030425,14.2,11.5,20.0,5.6,2.4 +20030426,16.4,13.2,23.9,11.1,1.6 +20030427,17.9,10.7,23.9,11.1,2.5 +20030428,18.4,12.8,25.6,11.0,1.9 +20030429,20.6,13.4,28.3,11.1,2.3 +20030430,21.4,15.8,28.3,13.3,2.3 +20030501,21.0,16.6,28.3,13.9,2.1 +20030502,19.7,16.2,28.3,14.4,1.9 +20030503,18.9,15.4,28.3,13.3,2.0 +20030504,17.6,14.4,25.0,13.3,2.5 +20030505,14.6,13.7,22.8,12.2,3.5 +20030506,17.1,16.7,19.4,12.2,2.1 +20030507,19.8,18.1,26.0,16.0,2.5 +20030508,23.7,19.5,30.0,17.2,4.0 +20030509,25.2,21.3,30.0,17.2,5.0 +20030510,25.2,19.6,31.1,19.4,4.9 +20030511,23.4,19.8,31.1,19.4,4.9 +20030512,19.2,10.1,26.7,12.8,5.0 +20030513,22.2,6.7,26.1,12.8,2.9 +20030514,18.1,9.2,23.9,11.7,2.6 +20030515,19.2,15.5,24.0,16.0,3.8 +20030516,20.4,17.4,26.1,15.6,2.4 +20030517,18.4,18.1,20.0,14.0,3.5 +20030518,13.3,12.9,19.4,12.2,5.9 +20030519,13.1,11.9,15.0,11.7,5.5 +20030520,16.8,12.5,22.8,11.7,3.3 +20030521,18.9,16.7,22.8,13.9,1.3 +20030522,16.3,16.1,22.2,14.4,3.7 +20030523,16.2,14.9,21.1,13.9,4.1 +20030524,19.5,16.6,26.1,13.9,1.7 +20030525,20.7,16.5,27.2,15.6,2.2 +20030526,21.6,16.6,27.2,15.6,2.6 +20030527,19.9,14.1,27.2,15.6,2.7 +20030528,19.1,10.6,26.1,10.6,1.4 +20030529,19.9,12.4,26.1,10.6,4.0 +20030530,19.3,11.6,26.1,12.8,2.7 +20030531,21.9,15.3,29.4,12.8,5.5 +20030601,20.4,9.2,29.4,15.0,3.2 +20030602,18.4,8.6,26.1,12.2,2.7 +20030603,18.8,16.7,24.4,12.2,1.7 +20030604,22.8,19.7,27.8,15.6,5.0 +20030605,20.2,12.7,27.8,13.9,2.3 +20030606,20.7,15.0,27.2,13.9,2.4 +20030607,21.7,20.7,27.2,14.4,5.0 +20030608,24.0,21.1,29.4,20.6,3.7 +20030609,24.0,17.0,29.4,17.8,2.7 +20030610,22.9,14.3,29.4,15.0,2.3 +20030611,23.8,19.1,31.1,15.0,2.6 +20030612,23.1,20.9,31.1,18.3,3.2 +20030613,23.8,20.8,28.9,20.0,4.2 +20030614,23.2,20.4,28.9,19.4,4.1 +20030615,24.8,20.8,30.6,19.4,3.8 +20030616,24.1,20.8,30.6,20.6,2.5 +20030617,21.1,20.1,24.4,19.0,3.0 +20030618,21.6,20.6,25.0,19.4,2.2 +20030619,22.9,21.0,28.3,19.0,3.0 +20030620,23.3,18.7,28.9,19.4,2.1 +20030621,20.8,10.4,28.9,13.9,3.7 +20030622,21.2,12.3,27.8,13.9,1.4 +20030623,23.1,15.6,29.4,14.4,1.3 +20030624,24.3,17.8,30.6,15.6,1.2 +20030625,25.2,19.1,31.7,17.2,1.2 +20030626,25.7,19.4,31.7,18.9,3.0 +20030627,24.9,20.1,31.1,19.4,3.1 +20030628,21.8,19.8,30.6,20.0,1.9 +20030629,23.2,20.1,29.4,18.3,1.6 +20030630,24.1,21.3,29.4,18.3,2.6 +20030701,21.7,20.0,25.6,19.0,2.0 +20030702,20.4,19.4,23.9,18.0,3.8 +20030703,23.1,18.1,30.0,17.2,1.8 +20030704,25.7,20.3,31.7,17.2,1.7 +20030705,24.8,21.2,31.7,18.9,3.5 +20030706,25.3,21.1,30.0,21.1,4.1 +20030707,24.1,21.4,30.6,21.1,3.2 +20030708,26.3,22.1,32.8,21.0,1.9 +20030709,27.2,22.6,33.3,21.1,2.3 +20030710,24.2,21.7,33.3,20.6,2.6 +20030711,25.2,21.2,30.6,20.6,4.8 +20030712,23.9,19.2,31.7,17.8,2.2 +20030713,23.6,20.5,31.7,17.8,2.2 +20030714,24.9,21.1,28.9,19.4,1.4 +20030715,26.6,21.6,30.6,22.8,2.1 +20030716,25.7,22.3,32.2,21.7,3.0 +20030717,28.1,22.1,32.2,21.7,2.9 +20030718,25.4,21.9,30.6,21.1,2.8 +20030719,24.3,21.1,31.1,20.6,2.1 +20030720,24.2,21.8,31.1,20.6,1.5 +20030721,25.5,22.4,31.1,20.6,2.8 +20030722,23.0,20.6,31.1,20.0,4.1 +20030723,21.9,20.2,26.7,19.0,3.5 +20030724,21.6,16.8,27.8,16.0,1.3 +20030725,23.3,17.9,29.4,16.1,2.6 +20030726,23.7,20.2,29.4,18.3,2.4 +20030727,24.1,21.3,30.0,19.4,0.9 +20030728,26.7,20.9,32.8,20.6,1.9 +20030729,25.3,21.6,32.8,21.1,2.4 +20030730,24.2,21.7,27.8,21.0,2.5 +20030731,23.5,21.8,28.3,21.0,2.2 +20030801,23.3,21.8,29.4,21.1,2.9 +20030802,22.8,21.3,28.3,20.0,1.9 +20030803,23.7,22.1,28.3,20.0,2.9 +20030804,24.4,21.6,29.4,20.6,3.2 +20030805,23.2,20.7,29.4,19.0,3.2 +20030806,22.7,20.9,28.9,19.0,1.7 +20030807,22.2,20.6,29.4,18.3,1.9 +20030808,22.1,20.2,28.3,18.3,1.3 +20030809,23.2,20.8,29.4,18.9,1.7 +20030810,22.7,20.8,28.0,19.0,1.9 +20030811,22.1,19.7,28.3,18.3,1.7 +20030812,22.9,20.4,28.3,18.3,2.5 +20030813,23.9,21.2,29.4,18.3,1.5 +20030814,25.7,21.8,31.7,20.6,1.0 +20030815,25.3,21.8,31.7,20.6,1.7 +20030816,25.6,22.9,31.1,20.6,1.7 +20030817,23.8,21.2,31.1,20.6,2.5 +20030818,23.9,20.6,31.1,19.4,1.9 +20030819,23.9,21.8,30.6,19.4,2.5 +20030820,25.3,21.8,30.6,21.1,2.0 +20030821,25.3,22.7,32.2,21.7,1.6 +20030822,24.8,21.8,32.2,20.6,2.2 +20030823,25.3,21.6,32.2,20.6,1.5 +20030824,25.1,21.7,32.2,20.6,3.1 +20030825,24.9,21.4,30.6,20.6,0.9 +20030826,26.6,22.1,32.8,20.6,2.1 +20030827,27.5,22.4,33.3,21.1,2.9 +20030828,27.0,23.1,33.3,22.2,1.9 +20030829,25.3,22.4,31.1,21.0,2.4 +20030830,26.4,22.2,31.7,21.1,3.5 +20030831,24.9,22.7,31.7,22.2,1.5 +20030901,24.9,22.1,30.0,21.1,1.7 +20030902,24.0,21.8,30.0,20.6,2.4 +20030903,25.3,22.1,31.1,20.6,2.5 +20030904,25.1,22.9,31.1,21.1,3.2 +20030905,23.4,19.9,28.9,18.9,2.9 +20030906,20.6,17.4,23.3,18.0,3.3 +20030907,19.1,15.6,23.9,16.1,3.1 +20030908,21.4,16.6,25.6,16.1,2.7 +20030909,20.9,16.8,26.1,17.0,2.3 +20030910,20.5,15.2,26.7,17.2,3.5 +20030911,19.5,13.7,26.1,15.6,3.1 +20030912,19.8,13.7,26.1,14.4,3.2 +20030913,20.9,16.2,28.9,14.0,1.5 +20030914,21.9,18.4,29.4,14.4,1.5 +20030915,23.5,19.8,29.4,16.7,1.1 +20030916,21.9,15.1,28.9,16.7,3.6 +20030917,19.9,12.6,26.7,14.4,3.9 +20030918,21.3,13.6,29.4,14.4,4.0 +20030919,22.4,13.4,30.0,15.0,2.7 +20030920,21.4,14.6,30.0,13.3,1.4 +20030921,21.2,15.8,30.0,13.3,1.7 +20030922,21.9,19.6,28.3,15.6,3.0 +20030923,21.5,16.2,26.7,15.0,2.4 +20030924,19.0,13.4,25.6,12.0,1.9 +20030925,19.9,15.6,28.3,12.2,1.0 +20030926,20.6,17.0,28.3,12.8,1.2 +20030927,21.7,18.8,28.3,13.9,2.3 +20030928,18.9,13.3,28.3,12.8,1.9 +20030929,14.4,5.2,23.9,8.3,3.0 +20030930,14.0,7.1,20.6,7.0,2.3 +20031001,14.8,10.2,22.2,7.2,1.1 +20031002,14.4,6.3,22.2,9.4,3.3 +20031003,10.7,2.8,20.0,5.0,2.8 +20031004,14.6,9.3,23.9,5.0,3.9 +20031005,17.3,11.6,23.9,7.8,1.9 +20031006,18.3,14.2,23.9,10.6,1.2 +20031007,18.1,15.9,22.2,15.0,2.1 +20031008,16.7,16.1,21.7,15.6,3.1 +20031009,17.9,17.2,21.1,15.6,3.2 +20031010,18.3,16.3,21.1,16.7,3.2 +20031011,17.0,15.2,21.1,15.0,4.3 +20031012,18.0,15.0,26.1,12.8,0.9 +20031013,19.9,16.0,26.1,12.8,1.1 +20031014,20.1,17.9,26.1,13.9,2.7 +20031015,15.3,5.2,23.9,7.8,3.9 +20031016,13.2,5.1,21.1,5.0,1.9 +20031017,13.3,9.6,22.2,5.0,1.9 +20031018,14.4,8.7,22.2,5.6,2.6 +20031019,14.3,9.7,23.9,6.1,1.0 +20031020,16.6,10.4,24.4,6.1,1.9 +20031021,18.0,13.2,25.6,10.0,4.2 +20031022,17.7,7.7,25.6,8.9,3.0 +20031023,13.2,4.4,24.4,4.4,2.8 +20031024,12.9,6.4,20.6,4.4,3.1 +20031025,12.7,8.1,20.0,7.2,2.5 +20031026,14.7,13.5,20.0,7.8,2.0 +20031027,16.8,15.6,21.1,13.9,2.8 +20031028,10.7,8.2,21.1,6.7,2.8 +20031029,13.1,8.1,21.7,6.7,3.1 +20031030,13.2,8.4,23.9,5.6,1.0 +20031031,15.4,10.8,24.4,5.6,1.2 +20031101,17.1,10.8,27.2,6.7,1.2 +20031102,17.4,11.5,27.2,8.3,0.5 +20031103,17.8,12.7,27.2,10.0,1.4 +20031104,17.6,15.6,26.1,10.6,1.1 +20031105,21.0,19.9,26.1,13.3,1.6 +20031106,22.4,20.6,27.2,18.9,2.7 +20031107,20.6,17.2,27.2,17.2,2.7 +20031108,14.8,11.3,23.9,10.0,3.2 +20031109,10.3,4.4,17.8,6.1,4.6 +20031110,7.2,0.0,14.4,2.2,2.8 +20031111,11.3,5.8,21.7,2.2,2.7 +20031112,17.8,13.1,25.0,13.3,5.1 +20031113,15.7,0.9,21.1,7.0,5.7 +20031114,7.9,-10.8,19.4,3.9,4.6 +20031115,9.3,-0.2,16.1,3.9,0.4 +20031116,11.7,6.9,21.1,4.4,1.9 +20031117,16.9,16.2,19.4,15.6,2.6 +20031118,16.3,15.4,22.2,12.8,1.9 +20031119,17.2,15.8,22.2,12.8,5.7 +20031120,12.3,3.8,20.6,3.9,2.9 +20031121,13.3,4.3,23.3,3.9,1.8 +20031122,14.6,5.3,23.3,5.0,2.3 +20031123,13.6,7.7,21.1,6.0,2.1 +20031124,13.4,12.1,16.1,6.0,3.8 +20031125,4.4,-3.9,11.1,-2.0,2.8 +20031126,5.7,-0.2,13.3,-1.7,1.1 +20031127,8.9,5.5,13.3,-0.6,1.2 +20031128,12.9,11.0,17.2,5.0,4.5 +20031129,2.6,-6.9,6.7,-2.2,4.4 +20031130,5.2,-6.1,17.8,-2.2,3.5 +20031201,10.4,-5.6,19.4,-1.7,3.5 +20031202,8.6,-13.1,19.4,1.7,4.2 +20031203,5.4,-9.7,10.0,3.0,3.0 +20031204,0.9,-2.3,3.9,-1.0,4.8 +20031205,2.3,2.2,4.4,-0.6,1.9 +20031206,4.3,0.2,8.3,-0.6,3.2 +20031207,4.6,-4.8,11.1,-0.6,3.6 +20031208,4.3,-2.9,12.8,-2.2,1.4 +20031209,5.2,0.5,14.4,-2.2,1.0 +20031210,8.8,7.1,14.4,6.7,3.2 +20031211,5.6,1.1,14.4,-0.6,3.7 +20031212,3.7,-2.2,11.7,-2.8,1.2 +20031213,3.4,-2.7,11.1,-2.8,3.5 +20031214,1.6,1.4,6.1,0.0,4.5 +20031215,3.9,0.6,13.9,-2.8,1.6 +20031216,4.6,2.6,13.9,-2.8,1.6 +20031217,7.1,2.7,11.1,-1.1,2.8 +20031218,2.6,-4.3,10.0,-2.2,3.4 +20031219,4.2,-3.8,10.6,-2.8,5.7 +20031220,0.0,-9.4,7.8,-3.9,2.7 +20031221,-0.2,-8.7,8.9,-6.1,3.1 +20031222,6.2,-5.3,15.0,1.7,4.5 +20031223,7.4,3.2,15.0,-2.0,2.3 +20031224,10.8,7.1,15.0,-1.7,3.3 +20031225,1.3,-5.1,13.3,-4.4,1.3 +20031226,3.4,-6.6,12.8,-3.9,1.6 +20031227,6.1,-5.3,17.8,-3.9,1.2 +20031228,7.0,-2.5,17.8,-3.3,1.0 +20031229,7.0,0.2,16.1,-1.1,0.9 +20031230,10.3,2.6,13.3,0.6,4.0 +20031231,5.4,-5.2,13.9,-2.8,1.6 +20040101,8.4,-1.9,18.9,-2.8,1.5 +20040102,13.2,2.4,18.0,8.0,3.5 +20040103,15.0,13.2,21.7,7.8,4.6 +20040104,17.7,15.3,22.2,11.7,5.2 +20040105,17.7,16.6,22.2,13.9,6.4 +20040106,5.4,-0.4,20.6,0.0,3.2 +20040107,-2.0,-15.8,8.3,-7.2,3.7 +20040108,1.1,-9.4,6.1,-7.2,0.7 +20040109,1.6,-1.9,6.1,-2.8,1.7 +20040110,0.9,-1.4,4.0,-1.0,3.0 +20040111,-0.8,-5.6,6.0,-7.0,2.3 +20040112,6.1,-1.3,16.7,-6.7,5.2 +20040113,8.4,1.8,16.7,0.6,2.2 +20040114,6.6,0.1,16.1,-1.7,1.6 +20040115,9.2,1.0,15.6,-1.7,5.4 +20040116,5.8,-7.8,13.0,1.0,3.4 +20040117,4.3,-1.4,12.8,-1.1,1.6 +20040118,7.4,6.1,15.0,-1.1,2.3 +20040119,4.3,-2.9,15.0,0.0,2.3 +20040120,-0.5,-9.7,7.8,-5.6,2.6 +20040121,1.2,-7.7,7.8,-5.6,2.4 +20040122,3.2,-5.3,13.9,-3.3,2.3 +20040123,4.4,-12.3,13.9,-3.3,4.2 +20040124,8.4,-4.9,18.9,-2.8,4.9 +20040125,3.5,-1.3,12.0,-4.0,3.7 +20040126,-3.6,-4.2,-2.0,-5.0,4.2 +20040127,-0.8,-1.3,3.9,-4.4,3.2 +20040128,-0.6,-6.8,7.0,-7.2,2.5 +20040129,1.9,-8.6,11.1,-7.8,2.0 +20040130,6.2,-6.3,13.3,-5.0,4.7 +20040131,2.2,-10.3,13.3,-4.4,2.8 +20040201,1.6,-9.9,8.3,-4.4,3.0 +20040202,1.3,-7.8,8.3,-2.8,5.2 +20040203,3.3,2.1,11.7,-0.6,3.2 +20040204,3.7,-1.7,11.7,-2.8,1.9 +20040205,2.2,-0.9,10.6,-2.8,4.2 +20040206,2.8,2.6,8.3,0.0,3.9 +20040207,5.7,0.2,9.4,0.6,4.3 +20040208,1.6,-8.6,8.9,-2.8,3.1 +20040209,2.2,-5.4,8.3,-2.8,1.1 +20040210,6.1,0.8,13.3,-2.8,2.5 +20040211,7.7,0.3,13.3,1.1,0.9 +20040212,4.7,2.1,9.0,2.0,3.7 +20040213,4.3,1.6,12.8,-1.7,1.6 +20040214,7.4,5.8,12.8,-1.7,1.4 +20040215,5.7,5.2,8.9,1.7,4.1 +20040216,1.5,-0.7,7.2,-1.7,3.8 +20040217,0.9,-6.6,4.0,-2.0,3.5 +20040218,4.8,-4.5,14.0,-2.0,2.0 +20040219,7.6,-5.3,18.9,-2.2,1.9 +20040220,10.8,1.4,18.9,-1.7,5.5 +20040221,14.4,4.9,19.4,5.0,5.0 +20040222,8.0,-1.6,19.4,-1.7,1.5 +20040223,7.1,-0.1,15.6,-1.7,2.1 +20040224,8.8,3.3,13.9,2.8,2.8 +20040225,8.3,-0.4,13.9,5.0,5.6 +20040226,2.1,-4.6,8.3,-2.0,7.3 +20040227,1.7,-2.5,8.3,-1.7,5.5 +20040228,5.1,-5.0,14.0,-2.0,1.5 +20040229,6.1,-5.4,17.0,-2.0,1.3 +20040301,10.0,1.7,21.1,-3.3,2.1 +20040302,15.2,10.9,20.0,12.0,3.6 +20040303,16.6,13.7,23.0,11.0,2.5 +20040304,18.3,12.3,25.0,11.1,3.2 +20040305,18.8,13.8,25.0,13.3,4.1 +20040306,20.0,13.0,24.0,17.0,6.7 +20040307,15.9,4.7,23.9,8.3,3.8 +20040308,9.4,-6.6,22.2,2.8,3.3 +20040309,4.8,-4.3,14.4,-0.6,2.7 +20040310,5.6,-0.6,12.8,-0.6,2.5 +20040311,7.6,-3.4,17.8,-0.6,3.3 +20040312,12.8,-5.2,20.6,-0.6,3.9 +20040313,10.1,-8.9,20.6,1.7,2.7 +20040314,11.1,-1.2,19.4,3.9,2.4 +20040315,14.7,9.9,19.4,5.6,1.5 +20040316,15.5,11.9,23.0,12.8,3.5 +20040317,11.8,0.0,22.8,3.3,2.4 +20040318,10.1,0.4,18.3,3.3,2.4 +20040319,14.2,5.1,23.3,5.0,2.5 +20040320,12.9,1.9,23.3,7.2,3.2 +20040321,14.3,4.7,20.6,6.7,4.8 +20040322,4.3,-9.6,16.7,-0.6,6.0 +20040323,4.3,-12.1,12.8,-2.8,2.4 +20040324,9.8,-5.4,19.4,-2.8,2.8 +20040325,13.4,4.3,22.8,2.2,2.4 +20040326,16.1,9.3,24.4,5.6,2.1 +20040327,18.2,10.5,26.1,8.3,3.2 +20040328,20.7,11.4,27.0,14.0,2.9 +20040329,17.2,8.3,22.8,11.0,3.9 +20040330,11.8,8.4,21.7,8.9,3.0 +20040331,9.1,7.4,15.0,6.1,2.9 +20040401,8.4,2.9,15.0,2.2,3.2 +20040402,8.1,0.9,15.0,2.2,2.9 +20040403,11.2,3.4,21.7,1.7,2.9 +20040404,12.3,0.9,21.7,1.7,4.1 +20040405,9.7,-5.0,18.3,1.7,4.2 +20040406,12.8,-4.9,21.7,1.7,3.4 +20040407,16.9,4.2,26.1,4.4,2.3 +20040408,18.1,8.4,26.1,6.7,3.3 +20040409,18.1,6.7,26.0,12.0,3.0 +20040410,16.9,6.1,25.6,11.7,3.2 +20040411,17.4,11.9,22.8,11.7,1.6 +20040412,10.0,9.4,21.7,6.7,5.9 +20040413,10.7,9.2,18.9,6.7,4.8 +20040414,8.7,2.6,18.9,3.9,6.1 +20040415,13.4,1.5,22.2,3.9,2.8 +20040416,17.0,5.9,25.0,3.9,2.5 +20040417,18.1,8.8,27.2,8.9,3.3 +20040418,21.2,11.3,29.4,9.4,3.0 +20040419,20.9,11.9,29.4,11.7,4.5 +20040420,21.9,10.9,28.3,12.8,2.5 +20040421,20.9,10.3,28.3,13.9,4.4 +20040422,19.8,11.6,27.0,13.0,4.1 +20040423,21.0,13.9,29.0,15.0,4.0 +20040424,22.7,15.0,29.0,15.6,2.7 +20040425,21.7,16.0,28.9,14.4,3.3 +20040426,18.1,16.2,27.8,15.0,3.3 +20040427,14.3,6.6,21.1,7.2,3.5 +20040428,14.2,0.7,22.0,6.0,2.7 +20040429,15.3,8.3,24.4,6.1,2.1 +20040430,16.8,13.4,24.4,7.8,1.8 +20040501,18.9,17.9,23.3,14.4,1.7 +20040502,18.9,17.7,23.3,16.7,3.9 +20040503,14.2,8.6,23.3,8.3,2.5 +20040504,12.0,2.8,20.0,5.0,3.0 +20040505,16.3,8.6,26.7,5.0,3.0 +20040506,21.4,14.4,30.0,7.8,1.6 +20040507,23.7,13.9,32.2,12.8,1.5 +20040508,23.8,15.3,32.2,15.0,2.3 +20040509,22.9,17.4,30.6,16.1,2.3 +20040510,21.7,16.2,28.0,14.0,2.2 +20040511,21.5,16.1,28.3,14.4,2.6 +20040512,20.6,17.7,28.3,15.0,2.3 +20040513,21.2,18.3,27.0,18.0,2.4 +20040514,21.2,17.6,27.0,16.7,1.8 +20040515,21.6,16.1,27.8,16.1,2.3 +20040516,21.6,17.3,28.3,16.1,2.1 +20040517,21.9,17.5,28.9,16.1,1.6 +20040518,20.7,18.8,28.9,16.1,1.7 +20040519,21.4,19.0,28.3,17.2,2.2 +20040520,24.1,18.9,31.7,17.2,1.9 +20040521,25.6,19.6,33.3,17.8,1.4 +20040522,25.7,19.8,33.3,18.3,1.9 +20040523,24.4,20.2,32.2,18.9,3.1 +20040524,25.3,18.4,31.7,17.2,3.9 +20040525,29.5,18.8,33.3,17.2,4.2 +20040526,26.4,19.4,33.3,22.8,4.2 +20040527,25.0,16.8,31.7,18.3,4.0 +20040528,25.8,17.1,32.2,18.3,4.5 +20040529,24.3,17.4,32.2,18.3,2.0 +20040530,24.4,19.5,31.0,20.6,2.5 +20040531,23.8,20.3,30.6,18.9,4.3 +20040601,22.0,15.5,27.8,15.0,3.3 +20040602,22.9,13.9,32.2,15.0,2.3 +20040603,23.8,14.7,32.2,16.1,2.2 +20040604,22.8,17.4,31.1,16.7,2.5 +20040605,21.4,16.5,27.2,14.4,2.0 +20040606,22.4,15.9,28.3,14.4,1.9 +20040607,23.3,19.2,29.4,17.2,3.0 +20040608,22.6,19.9,29.4,18.9,2.8 +20040609,22.2,20.0,28.0,19.0,1.7 +20040610,23.7,20.6,31.7,18.9,1.9 +20040611,26.7,21.6,33.9,18.9,1.7 +20040612,26.7,20.7,34.4,20.0,2.0 +20040613,21.6,20.3,25.0,20.0,3.2 +20040614,22.4,21.3,27.2,19.4,1.9 +20040615,24.2,22.4,29.4,20.6,1.7 +20040616,25.2,22.4,31.1,21.7,2.2 +20040617,27.2,22.7,33.3,21.7,1.4 +20040618,26.3,22.1,33.3,21.1,2.7 +20040619,26.3,21.8,32.8,21.1,2.0 +20040620,24.3,19.5,32.8,20.0,2.1 +20040621,23.1,20.6,28.9,20.0,1.9 +20040622,23.6,21.3,30.6,20.0,2.8 +20040623,24.2,20.9,30.6,20.0,4.0 +20040624,23.7,21.2,29.4,20.6,3.3 +20040625,23.9,21.7,29.4,20.6,2.7 +20040626,24.2,20.1,28.9,21.1,2.6 +20040627,22.1,18.8,28.9,19.4,2.7 +20040628,21.4,19.5,25.6,18.9,2.7 +20040629,22.9,18.4,28.9,17.2,2.1 +20040630,22.2,20.3,28.9,20.6,1.0 +20040701,23.2,21.2,28.0,20.0,1.9 +20040702,24.4,21.7,28.3,20.0,2.2 +20040703,23.7,22.0,28.0,21.0,1.2 +20040704,24.9,21.8,31.1,20.6,3.1 +20040705,25.4,22.2,33.0,21.0,2.4 +20040706,26.0,19.4,33.0,18.0,2.7 +20040707,27.3,20.7,32.8,18.3,3.2 +20040708,25.7,21.4,32.8,21.1,2.4 +20040709,25.2,21.3,32.0,19.0,1.5 +20040710,27.2,22.1,33.0,21.7,1.1 +20040711,25.4,21.9,32.8,20.6,1.5 +20040712,24.4,22.6,31.0,21.0,1.6 +20040713,25.6,22.1,33.0,20.6,1.5 +20040714,27.1,21.8,33.0,21.0,3.5 +20040715,25.7,17.7,32.8,21.1,3.5 +20040716,23.4,15.0,29.4,15.6,2.0 +20040717,23.6,18.1,30.0,15.6,1.6 +20040718,22.7,20.3,30.0,18.3,2.4 +20040719,22.4,18.7,28.9,17.2,2.0 +20040720,24.0,19.3,29.4,17.2,1.4 +20040721,25.3,20.0,31.1,18.3,1.1 +20040722,26.6,21.4,32.0,22.0,1.2 +20040723,26.6,21.5,32.2,21.7,1.6 +20040724,26.8,20.9,32.2,21.7,2.5 +20040725,24.5,21.1,31.7,21.7,3.0 +20040726,24.8,22.0,29.4,21.7,2.4 +20040727,23.8,21.9,28.0,21.0,1.6 +20040728,24.9,21.7,29.4,21.0,2.2 +20040729,24.1,22.5,30.0,21.1,2.4 +20040730,24.3,22.0,29.4,21.1,2.3 +20040731,25.0,21.7,31.1,21.1,1.2 +20040801,26.0,22.2,31.7,21.7,2.7 +20040802,25.8,22.6,31.7,21.7,3.2 +20040803,25.3,21.7,31.7,21.7,2.1 +20040804,26.3,20.9,32.8,20.6,1.5 +20040805,25.7,22.1,32.8,20.6,1.5 +20040806,23.3,15.6,29.4,18.9,3.5 +20040807,20.2,10.3,26.1,13.0,2.6 +20040808,20.4,12.8,28.0,13.0,1.1 +20040809,21.9,15.6,28.9,13.3,1.5 +20040810,23.2,18.0,28.9,15.6,2.6 +20040811,24.1,19.4,30.6,16.1,3.5 +20040812,20.9,19.4,30.6,18.9,1.8 +20040813,21.7,18.2,26.7,17.8,1.3 +20040814,20.4,16.4,26.7,17.8,3.5 +20040815,20.5,18.5,25.0,17.8,3.8 +20040816,21.6,18.1,28.3,16.7,1.6 +20040817,22.4,19.8,28.3,16.7,1.2 +20040818,24.2,21.1,30.0,18.3,1.9 +20040819,25.3,20.3,31.7,18.9,1.4 +20040820,25.1,20.9,31.7,18.9,1.9 +20040821,24.5,21.4,31.1,19.4,3.9 +20040822,21.4,19.9,30.0,20.0,3.0 +20040823,23.4,19.4,28.9,20.0,1.6 +20040824,23.1,21.3,29.4,20.6,1.6 +20040825,23.6,20.7,29.4,20.6,1.9 +20040826,23.1,19.1,29.0,18.9,2.0 +20040827,24.5,19.9,31.0,20.0,1.6 +20040828,24.6,20.8,31.1,19.4,1.3 +20040829,23.8,20.3,31.1,20.0,2.4 +20040830,25.2,20.6,32.2,20.0,2.2 +20040831,24.7,21.7,32.2,20.0,1.5 +20040901,23.8,21.5,28.9,20.6,2.1 +20040902,22.2,20.3,28.3,20.6,2.8 +20040903,22.1,18.0,27.0,18.0,2.7 +20040904,22.2,17.3,28.3,18.3,3.4 +20040905,23.2,18.1,28.3,18.3,4.4 +20040906,23.0,19.8,28.3,19.4,4.6 +20040907,22.2,21.7,25.6,21.7,6.4 +20040908,22.3,21.9,23.3,21.7,6.0 +20040909,23.0,19.3,27.8,18.9,2.4 +20040910,23.2,17.8,27.8,18.3,2.5 +20040911,22.4,18.1,27.2,18.0,2.4 +20040912,21.4,17.3,27.0,17.0,2.6 +20040913,20.8,17.6,26.7,17.2,2.4 +20040914,21.0,16.7,26.7,16.7,2.2 +20040915,20.3,17.4,26.7,16.1,2.9 +20040916,21.9,20.2,25.0,16.1,3.9 +20040917,22.7,20.7,26.1,20.0,7.5 +20040918,22.4,12.6,27.2,17.8,4.2 +20040919,18.6,8.3,27.2,13.3,3.7 +20040920,16.4,7.9,24.4,11.1,4.6 +20040921,16.8,10.3,24.0,11.7,3.2 +20040922,19.6,10.5,28.0,13.0,2.0 +20040923,21.8,15.4,30.0,12.2,1.3 +20040924,22.1,16.9,30.0,15.6,2.9 +20040925,20.2,14.6,27.2,15.0,3.1 +20040926,19.4,13.9,25.6,15.0,3.5 +20040927,19.3,17.1,25.6,15.0,5.9 +20040928,22.9,19.7,28.9,17.8,4.0 +20040929,20.4,16.1,28.9,15.6,1.1 +20040930,19.9,16.7,26.0,16.0,0.7 +20041001,20.3,17.5,26.1,15.0,1.5 +20041002,21.1,18.4,27.2,16.1,1.7 +20041003,20.2,17.9,27.2,16.7,1.4 +20041004,19.8,13.7,26.1,12.8,1.1 +20041005,18.2,13.3,26.1,11.1,1.2 +20041006,16.6,13.6,25.6,11.1,3.3 +20041007,17.1,13.7,22.2,13.3,1.3 +20041008,15.6,10.8,22.2,10.6,2.1 +20041009,18.4,13.5,22.8,10.6,2.4 +20041010,18.4,15.0,24.4,12.8,1.2 +20041011,18.7,14.4,24.4,12.8,2.2 +20041012,18.9,16.7,24.4,14.4,1.4 +20041013,20.1,17.3,24.4,14.4,4.2 +20041014,14.8,11.8,22.8,10.0,3.3 +20041015,13.1,8.3,18.9,8.9,5.4 +20041016,12.3,5.3,21.1,6.1,4.9 +20041017,13.3,5.1,22.0,5.6,2.4 +20041018,16.6,13.1,23.0,12.0,1.9 +20041019,18.6,17.7,22.8,12.2,3.6 +20041020,17.8,16.6,21.7,15.0,2.2 +20041021,16.7,16.4,21.7,15.0,1.7 +20041022,16.8,14.7,20.0,15.6,1.4 +20041023,14.7,12.3,20.0,12.8,2.6 +20041024,14.4,13.6,17.0,13.0,2.5 +20041025,17.3,15.0,23.3,12.8,1.5 +20041026,14.6,14.0,23.3,11.1,1.5 +20041027,17.1,16.2,21.7,16.0,2.5 +20041028,17.2,16.6,22.2,15.6,2.5 +20041029,16.3,16.2,19.4,15.0,1.5 +20041030,21.1,18.3,26.7,15.0,4.6 +20041031,21.3,17.7,28.0,17.0,3.8 +20041101,21.2,18.2,28.3,16.7,2.9 +20041102,19.8,19.1,26.7,16.7,2.4 +20041103,21.6,20.6,24.0,20.0,2.1 +20041104,17.3,17.0,22.0,13.0,2.5 +20041105,13.3,3.7,19.4,8.9,3.8 +20041106,10.6,1.6,18.3,2.0,2.3 +20041107,12.6,5.3,22.2,2.2,2.0 +20041108,15.3,6.4,22.2,3.3,2.3 +20041109,9.5,-0.5,22.2,3.9,2.6 +20041110,7.3,0.9,14.4,2.8,1.1 +20041111,7.7,4.1,13.3,2.8,0.9 +20041112,10.1,9.8,13.9,3.9,2.5 +20041113,12.6,9.6,15.0,8.3,4.5 +20041114,7.5,-0.7,15.0,1.7,3.8 +20041115,6.3,-1.9,15.6,-1.1,1.0 +20041116,6.7,1.6,15.6,-1.1,0.6 +20041117,10.8,4.7,20.6,-1.1,0.9 +20041118,13.1,8.7,22.2,3.9,2.0 +20041119,16.1,10.3,22.2,6.7,2.6 +20041120,16.4,14.1,21.0,14.0,2.9 +20041121,15.4,12.9,21.0,11.0,1.6 +20041122,15.1,14.2,20.6,11.1,1.1 +20041123,16.4,16.2,18.9,11.7,2.1 +20041124,16.2,15.7,18.3,14.0,3.5 +20041125,12.3,7.4,18.9,5.0,5.7 +20041126,4.5,-4.1,16.1,-1.7,2.2 +20041127,3.1,-1.8,10.6,-1.7,2.4 +20041128,8.2,4.6,16.0,3.9,2.4 +20041129,8.2,0.2,15.6,3.3,1.5 +20041130,6.9,3.6,13.9,1.1,0.7 +20041201,12.6,6.4,16.0,8.0,4.6 +20041202,6.3,-1.4,15.6,-1.1,2.4 +20041203,8.1,-1.3,14.4,-1.1,2.5 +20041204,6.4,-0.1,14.0,-1.0,1.5 +20041205,7.4,0.3,15.6,-1.7,1.6 +20041206,9.1,7.6,11.7,7.8,1.6 +20041207,12.6,12.4,19.4,7.8,2.6 +20041208,15.1,10.6,19.4,7.2,2.3 +20041209,9.0,7.9,19.4,6.7,2.0 +20041210,12.7,10.1,18.9,6.7,3.4 +20041211,8.6,3.3,13.9,4.0,4.4 +20041212,5.1,0.5,12.2,-1.1,3.1 +20041213,8.9,-1.7,13.3,-1.1,5.5 +20041214,1.0,-8.8,4.4,-1.1,4.5 +20041215,-0.1,-9.9,6.7,-5.0,2.0 +20041216,1.9,-8.4,10.6,-5.0,2.6 +20041217,4.8,-6.2,13.9,-3.9,1.6 +20041218,4.7,-2.0,13.9,-2.8,1.6 +20041219,5.5,-2.6,13.3,-2.8,3.7 +20041220,-4.2,-18.4,2.2,-9.0,4.6 +20041221,2.1,-10.0,12.0,-3.0,4.7 +20041222,4.6,0.8,12.0,-2.2,1.2 +20041223,13.4,10.6,19.4,-2.8,4.5 +20041224,1.3,-5.6,4.0,-1.0,3.0 +20041225,0.2,-6.2,3.9,-2.2,2.4 +20041226,1.8,-7.0,10.0,-2.2,3.7 +20041227,3.2,-6.6,10.0,-2.2,2.7 +20041228,1.2,-7.3,8.3,-5.6,1.6 +20041229,6.8,-2.9,16.1,-5.6,3.5 +20041230,11.1,6.2,19.0,5.0,1.8 +20041231,10.5,7.4,18.9,3.3,3.0 +20050101,12.7,9.6,20.6,3.3,2.9 +20050102,12.7,10.4,18.3,6.0,1.2 +20050103,13.7,11.6,20.0,6.1,2.5 +20050104,16.3,12.8,22.8,8.3,4.4 +20050105,15.8,12.3,22.8,10.6,4.1 +20050106,15.2,13.4,18.3,12.8,5.6 +20050107,12.5,8.8,18.3,7.8,2.2 +20050108,14.4,11.9,21.7,7.8,3.0 +20050109,10.9,6.9,21.7,6.7,2.6 +20050110,11.2,7.7,20.0,3.9,2.1 +20050111,12.2,9.3,21.7,3.9,2.0 +20050112,14.4,13.0,21.7,6.7,3.4 +20050113,16.9,15.6,22.0,12.8,4.1 +20050114,13.6,8.8,21.7,6.7,4.3 +20050115,4.4,-2.2,16.1,1.1,4.0 +20050116,4.9,-4.4,11.0,0.6,4.1 +20050117,-0.8,-11.9,10.6,-6.7,4.1 +20050118,-3.1,-19.9,3.3,-6.7,4.4 +20050119,-2.8,-12.8,3.9,-7.8,3.9 +20050120,2.8,-4.0,12.2,-7.8,1.9 +20050121,6.7,1.1,12.2,-3.3,2.9 +20050122,1.8,1.2,5.0,-1.0,2.9 +20050123,-2.9,-12.1,3.9,-7.8,5.6 +20050124,-2.6,-15.5,7.2,-10.0,3.6 +20050125,5.4,-11.6,14.4,-10.0,3.6 +20050126,11.8,1.1,20.6,7.0,4.1 +20050127,7.6,-0.4,21.1,2.8,4.0 +20050128,0.5,-13.3,10.0,-2.2,5.0 +20050129,-2.4,-10.0,2.2,-5.0,5.2 +20050130,1.3,-999.0,7.2,-5.0,1.1 +20050131,4.3,0.3,9.4,-1.0,2.0 +20050201,4.5,-2.9,10.0,1.1,3.0 +20050202,2.4,-1.1,5.6,1.0,3.7 +20050203,2.6,1.6,7.2,1.0,3.8 +20050204,5.2,0.1,14.0,-1.1,1.2 +20050205,7.7,-1.6,17.2,-1.7,2.1 +20050206,8.9,-2.7,17.2,-1.7,3.3 +20050207,9.9,-3.5,16.7,3.3,2.0 +20050208,12.8,3.5,20.6,3.9,3.3 +20050209,13.1,12.5,20.6,7.8,3.3 +20050210,8.9,1.8,14.4,2.2,5.2 +20050211,2.5,-9.7,11.0,-3.0,3.7 +20050212,5.1,-5.4,15.6,-3.3,2.4 +20050213,7.4,0.2,15.6,-3.3,0.8 +20050214,8.1,6.6,11.1,0.6,2.6 +20050215,8.9,8.4,13.3,6.0,2.0 +20050216,14.4,12.4,21.7,6.1,4.1 +20050217,9.3,-1.8,21.7,4.4,2.7 +20050218,4.7,-9.9,12.8,-2.8,2.8 +20050219,6.7,-6.1,14.4,-2.8,1.9 +20050220,7.4,0.6,14.4,-0.6,1.5 +20050221,8.7,7.6,14.4,3.9,2.3 +20050222,13.6,8.4,22.2,6.7,2.9 +20050223,13.7,3.9,22.2,5.6,2.1 +20050224,9.7,5.4,20.6,5.6,4.2 +20050225,6.5,2.1,13.3,1.1,1.7 +20050226,6.0,0.1,13.3,0.0,2.0 +20050227,6.3,0.0,13.3,0.0,3.0 +20050228,4.1,2.1,7.0,2.0,4.9 +20050301,3.9,-5.2,7.0,0.0,5.7 +20050302,1.6,-11.3,11.7,-5.0,2.7 +20050303,4.3,-8.7,12.2,-5.0,1.9 +20050304,6.1,-6.1,16.1,-3.3,2.6 +20050305,12.4,-1.1,18.9,6.0,6.1 +20050306,9.2,-2.9,19.4,0.0,3.5 +20050307,11.6,-0.4,21.7,0.0,5.0 +20050308,10.2,3.2,12.8,3.0,5.6 +20050309,2.7,-7.8,12.2,-2.8,2.3 +20050310,5.4,-5.4,12.8,-2.8,2.7 +20050311,8.9,-2.7,16.1,-2.2,6.5 +20050312,9.9,-4.3,23.3,1.7,7.2 +20050313,18.1,2.6,24.4,12.0,6.1 +20050314,11.9,7.1,25.0,7.8,4.3 +20050315,7.1,0.6,16.7,2.8,1.9 +20050316,6.5,2.4,12.8,2.8,4.1 +20050317,3.0,1.2,9.4,1.7,6.2 +20050318,5.4,-1.8,14.0,-2.0,2.5 +20050319,7.8,-1.1,16.1,-1.7,1.5 +20050320,12.2,0.9,21.1,0.0,2.5 +20050321,11.9,-0.5,21.1,5.0,1.5 +20050322,9.4,2.3,15.6,5.6,3.8 +20050323,12.3,8.7,21.1,7.0,5.0 +20050324,14.0,5.0,22.0,6.0,2.9 +20050325,15.8,6.0,23.3,5.6,2.6 +20050326,16.2,9.7,23.3,9.4,3.2 +20050327,12.9,10.9,21.7,10.6,4.8 +20050328,11.8,8.4,14.4,10.0,6.4 +20050329,14.2,2.9,26.0,6.7,4.4 +20050330,17.6,3.4,26.1,5.6,2.6 +20050331,16.9,10.1,26.1,10.6,3.1 +20050401,14.7,13.7,17.0,12.0,1.7 +20050402,13.0,6.9,17.2,8.3,7.3 +20050403,12.3,-2.8,21.7,5.6,4.6 +20050404,16.3,0.2,26.1,5.6,3.7 +20050405,18.9,3.8,27.8,7.8,3.0 +20050406,18.8,6.4,27.8,10.0,3.4 +20050407,17.6,13.2,25.6,12.2,4.1 +20050408,15.4,13.9,20.0,13.0,2.9 +20050409,17.6,10.3,22.8,13.3,5.0 +20050410,16.6,6.9,25.6,8.9,1.3 +20050411,19.3,9.6,27.2,8.9,2.2 +20050412,16.9,10.0,27.2,10.6,2.9 +20050413,10.2,8.5,13.0,8.0,4.8 +20050414,10.7,3.6,18.3,5.6,4.1 +20050415,13.1,2.8,20.0,5.6,2.9 +20050416,12.6,-4.8,20.0,4.4,4.6 +20050417,13.1,-1.4,23.3,2.2,1.2 +20050418,17.8,4.0,27.2,2.2,2.3 +20050419,19.7,7.3,28.3,10.6,2.4 +20050420,20.6,6.2,28.3,9.4,4.1 +20050421,20.4,7.6,28.3,10.6,3.2 +20050422,18.1,13.2,28.3,10.6,2.8 +20050423,15.4,9.7,18.3,12.0,5.4 +20050424,8.4,-3.2,18.3,1.7,5.0 +20050425,10.4,-1.5,19.4,1.1,4.0 +20050426,11.9,3.9,19.4,1.1,4.1 +20050427,13.6,7.4,20.0,6.1,3.4 +20050428,12.0,2.9,20.6,2.8,1.9 +20050429,17.2,9.2,24.4,12.8,3.8 +20050430,16.8,12.8,24.4,12.2,3.8 +20050501,16.0,8.3,21.1,9.4,3.3 +20050502,15.1,1.9,22.8,7.2,3.0 +20050503,13.8,2.2,22.8,7.2,2.7 +20050504,14.7,3.8,20.6,8.3,3.8 +20050505,13.2,8.2,20.6,8.9,4.3 +20050506,15.1,6.2,21.7,10.6,3.9 +20050507,16.9,6.5,26.0,10.0,2.0 +20050508,20.6,8.8,30.0,8.9,2.1 +20050509,21.5,10.1,30.0,11.1,1.9 +20050510,19.9,12.8,28.9,13.3,2.2 +20050511,19.2,13.7,28.3,12.2,1.6 +20050512,22.6,14.4,31.1,12.2,1.4 +20050513,21.7,16.1,31.1,15.0,3.3 +20050514,20.6,16.6,26.7,16.7,3.8 +20050515,19.1,15.8,26.7,16.7,3.2 +20050516,17.2,11.2,24.4,10.0,1.6 +20050517,18.9,12.8,25.6,10.0,2.3 +20050518,20.7,15.1,27.0,15.6,1.8 +20050519,21.4,16.5,26.7,15.6,2.7 +20050520,18.7,16.5,26.7,15.0,3.1 +20050521,17.7,12.9,23.3,12.8,3.4 +20050522,18.7,13.9,25.0,12.8,3.1 +20050523,22.8,14.9,29.0,17.2,4.0 +20050524,20.3,9.8,28.9,14.4,4.0 +20050525,15.8,6.3,25.0,7.8,2.6 +20050526,18.7,8.6,26.7,7.8,1.9 +20050527,20.9,12.1,28.9,11.1,1.5 +20050528,20.3,13.4,28.9,12.2,1.8 +20050529,19.0,10.3,26.7,10.0,1.2 +20050530,17.1,14.3,26.7,10.0,1.9 +20050531,18.1,14.6,24.4,13.9,2.2 +20050601,16.8,15.2,21.1,13.0,4.3 +20050602,14.9,13.8,19.4,12.8,6.0 +20050603,16.8,15.7,19.0,15.6,3.4 +20050604,22.1,17.7,30.0,15.6,1.1 +20050605,25.1,19.7,31.7,17.8,2.0 +20050606,24.9,20.0,32.2,19.0,2.2 +20050607,23.6,18.9,31.1,18.0,1.9 +20050608,23.3,19.7,31.1,18.3,1.9 +20050609,23.2,20.8,29.4,19.4,2.6 +20050610,23.9,21.1,29.4,20.6,2.1 +20050611,23.1,19.7,28.9,20.6,2.9 +20050612,23.7,21.0,28.3,20.6,3.8 +20050613,25.7,21.9,31.1,21.1,4.1 +20050614,26.7,19.3,33.3,19.4,1.6 +20050615,27.5,18.5,33.3,19.4,3.0 +20050616,24.6,15.4,32.8,17.2,2.0 +20050617,23.4,13.1,30.6,17.2,2.9 +20050618,23.1,13.7,29.0,18.3,2.5 +20050619,21.3,15.4,27.0,17.0,3.1 +20050620,19.3,15.6,27.2,16.1,3.1 +20050621,20.1,15.4,27.2,15.0,1.4 +20050622,22.8,15.7,31.1,15.0,2.4 +20050623,25.1,16.2,31.1,16.7,2.1 +20050624,24.3,16.6,31.1,18.9,2.3 +20050625,24.1,17.2,31.1,18.9,2.3 +20050626,23.5,19.1,29.4,19.4,3.3 +20050627,24.7,21.6,31.1,19.4,2.3 +20050628,23.2,20.8,31.1,21.7,2.3 +20050629,24.2,21.3,29.4,21.0,1.6 +20050630,25.7,20.9,32.8,20.0,1.4 +20050701,26.4,21.8,32.8,20.0,1.9 +20050702,25.4,20.4,32.8,20.6,1.3 +20050703,24.2,20.6,31.1,20.6,3.1 +20050704,24.6,21.3,29.0,21.7,2.0 +20050705,26.4,21.8,31.7,21.7,3.4 +20050706,25.8,21.1,31.7,21.1,2.0 +20050707,23.1,20.1,30.0,20.0,3.8 +20050708,23.3,17.9,29.4,17.0,1.7 +20050709,25.3,18.7,31.1,17.2,1.7 +20050710,24.5,20.9,31.1,18.9,2.2 +20050711,25.4,22.6,30.0,20.6,3.8 +20050712,25.4,21.8,30.0,22.0,4.1 +20050713,24.7,21.2,31.1,21.7,3.2 +20050714,24.3,21.7,31.1,21.7,3.6 +20050715,24.9,21.2,29.4,22.0,3.8 +20050716,25.2,21.3,29.4,22.0,3.8 +20050717,26.9,21.6,32.2,22.2,3.7 +20050718,27.1,21.9,32.8,22.8,2.5 +20050719,27.9,22.3,33.3,22.8,2.2 +20050720,26.2,21.0,33.3,21.7,1.6 +20050721,26.7,22.1,33.3,21.7,1.9 +20050722,26.6,21.3,33.9,21.7,1.9 +20050723,27.1,20.7,33.9,21.7,1.9 +20050724,26.9,20.1,32.8,22.2,2.0 +20050725,28.0,22.1,35.0,22.8,1.4 +20050726,30.0,22.2,36.7,22.8,1.7 +20050727,29.8,22.0,36.7,22.8,1.9 +20050728,27.5,20.8,36.7,22.8,2.4 +20050729,22.7,21.0,33.3,21.7,2.8 +20050730,23.3,20.8,28.0,21.0,2.3 +20050731,23.6,21.4,27.8,21.1,3.0 +20050801,24.1,20.1,28.9,21.0,3.1 +20050802,25.2,18.9,31.1,20.6,2.1 +20050803,26.2,18.9,32.2,20.0,1.1 +20050804,27.2,19.8,33.3,20.0,1.3 +20050805,26.1,19.9,33.3,20.6,1.2 +20050806,24.6,20.2,32.2,20.6,1.4 +20050807,22.3,20.1,30.6,20.6,3.0 +20050808,22.8,19.9,28.3,20.6,3.2 +20050809,24.1,21.2,30.0,20.6,1.9 +20050810,24.9,21.4,31.1,20.6,1.2 +20050811,26.0,21.4,32.2,20.6,1.5 +20050812,26.7,21.9,32.8,21.7,0.9 +20050813,26.3,22.1,32.8,21.7,0.6 +20050814,26.3,22.1,33.3,21.7,1.1 +20050815,27.2,21.2,33.9,21.7,0.7 +20050816,27.4,22.4,33.9,21.7,1.2 +20050817,26.1,21.9,33.9,22.8,1.7 +20050818,25.0,21.6,29.4,22.0,1.5 +20050819,26.0,22.6,32.8,21.7,1.1 +20050820,27.6,22.6,35.0,21.7,1.3 +20050821,28.3,22.3,35.6,22.8,1.6 +20050822,26.0,21.5,31.1,22.0,2.2 +20050823,24.2,21.4,31.7,21.7,1.2 +20050824,24.7,21.4,29.4,21.7,3.0 +20050825,24.7,19.8,29.4,21.7,2.7 +20050826,23.2,17.6,29.4,18.9,2.1 +20050827,23.4,17.9,30.0,18.3,1.1 +20050828,25.8,20.6,31.1,18.3,1.7 +20050829,25.7,21.2,31.1,21.1,2.5 +20050830,26.7,22.6,31.1,22.8,5.7 +20050831,26.3,19.6,32.2,21.7,4.1 +20050901,25.0,16.2,32.2,20.6,1.6 +20050902,24.7,16.6,31.7,17.8,1.4 +20050903,25.4,15.3,31.7,17.8,2.3 +20050904,23.9,13.6,31.1,19.4,3.0 +20050905,22.9,13.6,30.6,17.8,3.9 +20050906,21.8,13.1,28.3,17.2,4.5 +20050907,21.8,13.0,28.3,16.1,4.2 +20050908,22.9,12.8,31.1,16.1,3.1 +20050909,23.1,11.8,31.7,15.0,2.3 +20050910,23.5,12.8,31.7,15.0,3.1 +20050911,23.7,13.9,31.1,17.2,3.6 +20050912,22.4,12.8,30.6,16.1,3.3 +20050913,24.7,12.5,32.8,16.1,3.2 +20050914,26.1,14.9,33.9,17.2,2.7 +20050915,25.6,15.4,33.9,18.3,1.1 +20050916,25.9,18.2,33.9,18.3,2.1 +20050917,25.6,17.4,33.3,18.3,2.3 +20050918,24.9,13.8,33.3,17.8,1.6 +20050919,24.8,14.2,33.9,17.8,2.4 +20050920,25.9,17.1,33.9,17.8,1.8 +20050921,25.6,17.4,33.3,20.0,2.5 +20050922,25.2,18.4,32.2,20.0,1.4 +20050923,25.0,17.0,33.3,17.8,1.0 +20050924,24.7,16.9,33.3,17.8,1.6 +20050925,24.7,18.6,32.2,18.3,3.2 +20050926,22.9,18.9,28.9,20.0,4.0 +20050927,23.9,17.3,29.4,18.0,2.2 +20050928,21.9,16.4,30.6,18.3,2.0 +20050929,23.4,19.0,28.9,18.3,2.4 +20050930,19.6,9.3,28.9,16.7,4.4 +20051001,21.3,11.9,28.9,17.0,2.8 +20051002,21.7,16.1,29.4,17.2,2.5 +20051003,22.5,14.7,28.9,17.0,3.1 +20051004,22.2,12.5,28.9,17.2,3.9 +20051005,21.8,16.1,28.9,17.8,4.3 +20051006,20.8,18.9,27.2,18.9,5.2 +20051007,20.9,19.7,22.0,20.0,3.4 +20051008,23.4,18.7,28.9,20.0,2.9 +20051009,20.2,15.9,28.9,17.2,2.9 +20051010,19.7,17.3,24.4,17.2,4.0 +20051011,20.2,17.1,23.9,17.8,3.0 +20051012,20.1,16.4,24.4,17.8,3.8 +20051013,18.7,15.3,23.3,16.0,2.3 +20051014,19.8,13.7,26.7,14.4,1.9 +20051015,19.5,9.9,27.2,12.2,2.9 +20051016,18.6,3.9,27.2,11.1,3.0 +20051017,15.6,4.1,25.0,6.7,2.3 +20051018,17.1,8.1,26.7,6.7,1.6 +20051019,19.4,12.9,28.9,8.9,1.2 +20051020,21.4,15.2,29.4,11.7,2.3 +20051021,20.8,14.6,29.4,15.0,2.7 +20051022,19.2,13.6,23.3,14.0,2.2 +20051023,12.5,4.5,19.0,4.0,1.9 +20051024,10.5,3.7,20.0,4.4,2.9 +20051025,9.1,0.4,14.4,3.3,4.0 +20051026,9.8,0.7,16.0,3.3,2.9 +20051027,8.6,1.7,16.1,2.8,1.6 +20051028,9.1,2.1,16.7,2.8,1.9 +20051029,9.7,1.2,16.1,2.0,1.7 +20051030,10.8,1.9,21.7,0.6,0.9 +20051031,12.6,3.9,22.2,0.6,1.7 +20051101,12.7,6.0,22.2,5.0,1.5 +20051102,15.0,4.7,21.7,5.0,2.2 +20051103,11.2,1.9,21.7,2.8,1.4 +20051104,14.3,6.3,23.3,2.8,3.3 +20051105,16.7,11.2,23.9,6.1,3.4 +20051106,16.3,12.6,23.3,11.0,2.6 +20051107,17.5,11.3,24.4,9.4,1.6 +20051108,16.2,9.5,26.1,7.2,1.1 +20051109,19.8,12.9,27.2,7.2,3.9 +20051110,18.2,1.9,22.2,11.0,5.1 +20051111,9.4,-4.9,20.6,-0.6,2.0 +20051112,9.7,-2.7,18.9,-0.6,1.4 +20051113,12.7,4.8,22.2,1.7,1.2 +20051114,18.4,12.3,24.0,14.0,1.7 +20051115,18.2,15.1,25.0,13.9,3.0 +20051116,19.3,15.7,22.0,12.0,5.8 +20051117,6.4,-5.1,12.2,1.0,2.6 +20051118,2.7,-10.0,11.7,-3.9,2.0 +20051119,3.8,-7.5,13.3,-3.3,1.3 +20051120,9.4,-2.9,13.3,6.7,1.7 +20051121,10.3,8.1,13.3,6.1,4.1 +20051122,8.1,1.6,12.2,4.4,4.9 +20051123,3.8,-4.7,10.0,-2.8,3.1 +20051124,11.4,0.6,19.4,7.0,5.8 +20051125,8.1,-8.0,20.0,2.8,2.7 +20051126,4.6,-2.2,12.0,-2.0,1.2 +20051127,6.9,1.6,12.2,-1.7,3.1 +20051128,9.1,8.1,13.0,7.2,3.8 +20051129,15.9,12.4,19.4,7.8,5.1 +20051130,8.9,0.1,19.4,2.8,2.0 +20051201,6.7,-1.6,15.6,-0.6,1.9 +20051202,4.8,-5.7,13.9,-2.2,2.2 +20051203,3.1,-5.4,11.1,-2.2,1.1 +20051204,9.1,7.1,19.4,-1.1,3.1 +20051205,9.7,8.7,19.4,3.9,4.0 +20051206,4.1,-1.7,12.2,-1.1,1.9 +20051207,2.4,-5.4,10.6,-3.3,1.6 +20051208,3.2,-3.6,10.6,-3.3,3.5 +20051209,3.1,-2.1,8.9,0.0,2.9 +20051210,2.1,-5.3,10.0,-4.4,2.3 +20051211,5.0,-3.4,11.7,-4.3,4.6 +20051212,4.7,-2.6,13.3,-2.2,3.4 +20051213,4.5,-4.3,13.3,-2.2,2.3 +20051214,0.4,-6.9,10.0,-2.2,3.3 +20051215,-0.1,-3.3,1.1,-1.7,3.0 +20051216,2.1,-0.9,8.3,-3.0,2.3 +20051217,4.2,-2.3,8.9,-2.8,2.8 +20051218,5.7,-3.3,11.1,2.8,3.6 +20051219,4.7,-2.7,12.8,-1.7,2.2 +20051220,2.9,-5.5,12.8,-1.7,2.0 +20051221,2.3,-9.8,8.9,-2.2,2.0 +20051222,2.3,-10.4,10.6,-5.0,1.4 +20051223,4.2,-8.3,15.6,-5.0,3.0 +20051224,6.1,-5.7,15.6,-3.3,4.0 +20051225,7.7,5.0,13.9,-1.1,3.6 +20051226,7.3,1.2,13.9,2.8,4.4 +20051227,6.1,-2.7,17.2,-1.1,2.5 +20051228,9.1,3.7,17.2,-1.1,3.3 +20051229,9.3,5.6,14.4,5.6,2.9 +20051230,6.0,0.6,13.3,-1.0,1.9 +20051231,9.0,1.8,15.6,-0.6,3.5 +20060101,8.0,-3.1,17.2,0.0,1.7 +20060102,9.0,5.3,17.2,0.0,3.1 +20060103,10.9,7.2,15.6,7.2,2.8 +20060104,8.4,3.4,16.0,2.0,2.0 +20060105,11.4,4.6,18.0,7.0,2.3 +20060106,5.8,-4.1,9.0,2.8,4.7 +20060107,2.0,-7.1,9.4,-3.9,2.7 +20060108,7.0,-4.0,17.0,0.6,4.5 +20060109,13.1,6.4,21.0,9.0,4.9 +20060110,13.9,10.1,21.1,8.9,2.6 +20060111,13.7,10.6,20.0,10.0,4.3 +20060112,12.3,7.4,19.4,5.6,3.7 +20060113,11.6,8.8,19.4,5.6,2.6 +20060114,6.1,-2.7,16.1,2.2,5.7 +20060115,5.9,-10.0,13.0,1.0,4.5 +20060116,8.8,-1.4,14.0,6.0,2.9 +20060117,12.2,7.9,18.3,9.0,3.4 +20060118,8.4,0.1,17.8,2.0,7.4 +20060119,6.7,-4.4,16.1,1.0,3.3 +20060120,10.4,-1.4,17.0,4.0,4.1 +20060121,10.8,7.6,17.2,3.9,1.7 +20060122,9.9,6.9,13.9,4.0,4.6 +20060123,5.1,3.8,13.3,2.2,3.1 +20060124,10.3,5.8,17.2,2.2,2.3 +20060125,9.3,-7.7,17.2,4.4,4.1 +20060126,4.7,-8.7,12.0,-2.0,4.5 +20060127,3.6,-7.8,12.2,-3.9,1.4 +20060128,6.4,-5.0,16.0,0.6,3.0 +20060129,11.1,7.8,16.1,0.0,4.4 +20060130,11.9,7.4,18.0,4.0,3.0 +20060131,8.6,-0.3,18.3,2.2,3.2 +20060201,4.6,-2.8,14.4,-2.2,1.3 +20060202,5.6,0.0,11.0,1.0,1.7 +20060203,10.2,7.2,18.9,1.1,2.8 +20060204,11.9,7.4,16.1,7.0,5.4 +20060205,3.2,-7.4,16.1,-1.1,5.3 +20060206,2.9,-6.3,8.3,-1.1,3.3 +20060207,5.9,-3.6,12.2,2.0,2.2 +20060208,3.7,-9.9,9.0,-3.0,1.6 +20060209,4.7,-6.2,10.0,-2.7,3.4 +20060210,2.2,-8.2,10.6,-5.0,3.0 +20060211,4.4,0.1,10.6,-4.9,1.9 +20060212,1.7,-4.4,6.7,-3.3,2.5 +20060213,0.7,-7.8,6.1,-4.0,2.2 +20060214,4.4,-8.4,15.0,-3.2,3.8 +20060215,9.4,-4.3,17.0,3.0,4.0 +20060216,11.7,0.6,24.4,2.8,2.8 +20060217,14.6,6.6,24.4,3.9,4.2 +20060218,8.4,1.6,16.1,3.0,3.3 +20060219,1.6,-6.8,5.0,-2.0,3.4 +20060220,4.9,-1.8,10.0,-1.0,3.3 +20060221,9.2,3.2,17.2,6.0,2.7 +20060222,11.7,6.4,17.2,5.6,3.2 +20060223,12.6,5.8,17.2,7.8,3.4 +20060224,9.2,-7.2,16.1,0.6,1.9 +20060225,8.2,-1.8,17.2,0.6,2.4 +20060226,6.9,-4.1,11.7,1.7,4.0 +20060227,4.2,-14.1,13.3,-2.2,4.6 +20060228,12.1,-2.7,22.0,5.6,5.7 +20060301,17.6,7.5,24.4,12.0,5.6 +20060302,18.0,9.4,25.0,12.2,6.6 +20060303,12.1,-1.4,23.9,6.7,4.7 +20060304,6.6,-9.2,16.1,-1.1,2.3 +20060305,8.2,-10.7,16.7,-2.1,2.6 +20060306,12.7,-0.7,22.0,7.8,2.0 +20060307,9.5,-2.7,15.0,3.0,3.8 +20060308,9.8,-1.9,19.4,0.6,2.7 +20060309,13.1,2.2,20.0,6.7,5.0 +20060310,17.5,8.8,24.0,13.0,5.9 +20060311,16.8,13.4,25.0,13.3,1.9 +20060312,19.5,13.6,27.0,13.0,3.1 +20060313,20.1,13.2,27.8,13.3,5.5 +20060314,17.6,5.1,19.4,13.0,5.2 +20060315,9.7,-9.1,20.0,-0.6,1.9 +20060316,10.5,-2.7,18.3,0.0,2.3 +20060317,14.7,0.6,22.2,3.9,3.9 +20060318,10.8,-4.5,17.2,4.0,3.8 +20060319,10.1,-9.1,17.2,4.4,2.4 +20060320,7.6,-4.9,12.2,3.0,3.5 +20060321,4.7,2.9,9.4,2.8,4.0 +20060322,7.1,-1.3,13.3,1.1,3.4 +20060323,6.3,-5.2,13.3,1.1,2.4 +20060324,6.1,1.7,10.6,2.2,1.7 +20060325,4.9,-3.9,11.1,-2.2,3.0 +20060326,5.5,-5.4,12.8,-2.1,2.7 +20060327,6.9,-4.0,15.0,-2.0,2.4 +20060328,9.6,0.5,15.6,-1.6,4.2 +20060329,13.0,6.5,21.1,5.6,3.1 +20060330,14.9,5.0,22.8,5.6,3.0 +20060331,16.9,10.3,24.0,12.0,3.3 +20060401,20.9,11.9,28.0,15.6,5.1 +20060402,20.3,5.0,28.0,9.0,2.4 +20060403,21.0,11.9,27.8,8.3,5.6 +20060404,14.1,-0.8,27.2,7.8,4.4 +20060405,14.8,-5.4,23.9,7.2,3.1 +20060406,15.5,-5.1,23.9,5.6,2.2 +20060407,20.0,3.4,28.0,14.0,4.6 +20060408,18.4,11.8,28.9,12.8,4.8 +20060409,11.6,0.4,20.6,3.9,3.2 +20060410,12.3,-0.8,21.0,3.0,1.7 +20060411,14.6,1.8,23.9,3.3,1.7 +20060412,16.4,5.7,23.9,4.4,3.1 +20060413,19.6,9.1,29.4,10.0,3.0 +20060414,21.8,10.3,30.6,12.8,4.0 +20060415,24.6,10.2,32.8,13.3,5.5 +20060416,24.0,9.2,32.8,16.7,4.7 +20060417,24.5,13.1,33.3,16.7,5.7 +20060418,18.2,8.3,33.3,12.8,3.3 +20060419,17.0,11.8,22.8,12.8,2.9 +20060420,18.8,14.0,26.1,11.7,1.2 +20060421,20.1,14.6,26.1,11.7,2.7 +20060422,18.8,15.8,25.0,14.4,2.9 +20060423,19.1,11.8,28.3,11.7,2.8 +20060424,22.1,10.9,29.4,11.7,4.4 +20060425,22.8,13.3,30.0,15.0,3.3 +20060426,19.6,13.9,30.0,14.4,2.7 +20060427,16.5,10.8,22.0,13.0,3.1 +20060428,16.0,5.5,23.9,7.8,1.5 +20060429,14.6,5.4,23.9,7.8,3.2 +20060430,13.9,4.2,17.8,10.6,2.8 +20060501,15.7,2.7,22.8,10.6,2.5 +20060502,16.4,6.1,25.0,8.3,2.6 +20060503,21.8,11.1,29.4,8.3,2.3 +20060504,20.2,9.0,29.4,11.1,2.1 +20060505,20.7,15.6,28.3,11.1,2.4 +20060506,19.9,12.5,26.7,13.9,2.1 +20060507,16.5,10.0,22.8,11.0,4.2 +20060508,13.1,8.6,20.0,10.0,3.7 +20060509,14.4,9.8,18.0,12.0,2.3 +20060510,14.3,11.3,17.8,12.2,2.0 +20060511,18.9,12.5,24.4,13.9,4.9 +20060512,14.9,5.1,24.4,7.8,4.6 +20060513,15.6,4.9,24.0,8.0,3.9 +20060514,18.6,9.6,25.0,8.3,4.9 +20060515,16.4,4.9,25.0,10.0,4.0 +20060516,14.2,4.8,22.8,5.6,2.3 +20060517,15.9,7.9,23.9,5.6,1.9 +20060518,17.2,9.6,26.7,7.8,4.6 +20060519,17.8,4.4,27.0,9.0,4.5 +20060520,20.7,13.0,29.4,15.0,4.2 +20060521,22.1,17.3,29.4,17.2,3.4 +20060522,22.1,14.4,26.1,17.8,2.3 +20060523,20.2,11.7,27.0,14.0,2.2 +20060524,21.8,8.9,28.9,14.4,2.5 +20060525,21.6,14.4,31.1,13.9,2.6 +20060526,23.4,17.4,31.1,13.9,4.4 +20060527,25.9,17.3,33.3,17.8,3.4 +20060528,25.8,15.8,33.3,18.9,2.7 +20060529,25.6,16.1,33.3,18.3,1.7 +20060530,26.3,16.9,33.9,18.3,1.5 +20060531,25.7,16.4,32.0,18.0,2.2 +20060601,25.2,17.1,32.2,18.3,1.7 +20060602,24.7,18.0,31.7,18.3,2.9 +20060603,22.5,15.1,28.0,18.0,3.1 +20060604,21.5,10.6,28.9,15.6,1.7 +20060605,18.2,10.8,28.3,12.2,2.6 +20060606,20.1,7.9,28.9,11.7,2.0 +20060607,22.6,9.1,30.0,11.7,1.8 +20060608,24.1,12.1,32.2,13.3,2.2 +20060609,24.8,11.6,32.2,16.1,2.3 +20060610,26.6,13.6,36.1,16.1,2.3 +20060611,28.0,17.1,36.1,17.8,3.1 +20060612,25.2,18.0,36.1,19.4,2.0 +20060613,20.1,17.1,33.3,16.7,4.3 +20060614,22.5,15.3,31.1,17.2,4.6 +20060615,25.0,12.1,31.1,17.8,2.3 +20060616,24.2,12.2,30.6,17.8,1.9 +20060617,24.2,13.6,31.0,18.0,3.1 +20060618,23.6,13.8,30.6,17.8,3.0 +20060619,24.1,14.9,31.7,17.8,3.9 +20060620,26.2,16.0,35.0,18.3,1.6 +20060621,28.7,13.9,36.1,18.3,2.5 +20060622,28.2,17.8,37.2,21.1,2.4 +20060623,25.7,19.8,37.2,20.6,2.1 +20060624,23.6,19.3,29.4,19.0,2.0 +20060625,25.1,19.7,31.7,19.4,2.5 +20060626,22.7,20.3,31.7,20.6,2.5 +20060627,24.3,19.8,31.1,20.6,2.3 +20060628,24.2,16.6,31.1,17.8,1.5 +20060629,25.2,15.9,32.2,17.8,2.5 +20060630,25.3,14.6,32.2,18.9,1.8 +20060701,24.9,16.3,31.1,18.0,1.0 +20060702,26.4,18.2,33.9,18.3,1.6 +20060703,27.2,18.7,34.4,15.0,1.7 +20060704,27.3,19.2,34.4,21.1,2.6 +20060705,25.5,19.6,33.9,21.1,2.3 +20060706,24.1,19.3,31.7,21.1,2.4 +20060707,22.4,15.3,27.2,17.8,3.4 +20060708,22.2,13.2,27.2,16.7,1.8 +20060709,22.8,14.8,28.3,16.7,2.3 +20060710,25.4,16.7,32.2,16.7,2.6 +20060711,26.7,18.1,32.2,20.0,3.0 +20060712,26.9,19.3,33.3,20.6,2.3 +20060713,27.8,20.3,33.9,21.7,3.9 +20060714,25.3,21.2,34.4,21.7,2.6 +20060715,27.2,20.7,35.6,21.7,2.5 +20060716,27.6,19.2,35.6,22.2,2.9 +20060717,27.2,16.1,34.0,21.0,2.3 +20060718,27.6,16.8,35.0,19.4,1.4 +20060719,28.8,17.4,36.1,19.4,1.5 +20060720,27.6,18.7,36.1,21.1,2.7 +20060721,26.8,19.2,35.6,21.7,2.7 +20060722,27.1,19.7,35.6,21.7,3.5 +20060723,24.4,20.2,30.0,21.0,2.3 +20060724,23.7,20.1,29.4,21.1,2.2 +20060725,24.8,21.2,31.0,22.0,1.8 +20060726,26.5,20.0,33.3,21.0,1.2 +20060727,28.1,18.6,33.9,21.1,2.0 +20060728,28.8,19.1,35.0,22.2,2.5 +20060729,26.0,18.5,35.0,22.2,2.9 +20060730,26.4,19.4,32.8,20.0,1.9 +20060731,28.1,19.4,34.4,20.0,1.0 +20060801,29.3,21.2,36.0,23.0,1.0 +20060802,29.2,21.7,36.1,23.3,1.5 +20060803,28.8,20.8,36.1,22.8,2.1 +20060804,29.7,19.4,37.2,22.2,1.5 +20060805,28.1,20.2,37.2,22.2,3.5 +20060806,26.6,21.3,32.2,22.8,2.5 +20060807,28.2,20.6,36.1,22.2,1.3 +20060808,28.4,20.5,36.1,22.2,1.7 +20060809,27.8,20.0,36.1,22.2,2.1 +20060810,27.2,21.8,35.0,22.2,1.9 +20060811,25.9,20.3,29.4,22.0,2.7 +20060812,21.6,18.8,30.0,18.3,3.5 +20060813,22.1,16.0,28.3,18.3,2.2 +20060814,24.3,18.2,30.0,19.0,1.9 +20060815,25.2,20.3,31.7,19.4,3.1 +20060816,24.4,21.2,31.1,21.1,3.0 +20060817,25.8,18.6,30.0,21.1,3.1 +20060818,24.4,16.1,29.4,19.0,2.9 +20060819,25.2,17.0,31.1,18.3,1.3 +20060820,26.2,19.7,33.9,18.3,1.2 +20060821,25.1,20.0,33.9,20.0,1.4 +20060822,24.2,21.8,32.2,20.0,1.3 +20060823,24.3,20.9,29.0,21.0,1.5 +20060824,24.8,21.7,30.0,21.1,2.1 +20060825,24.4,19.1,30.0,19.0,1.5 +20060826,24.2,18.0,31.0,18.0,1.2 +20060827,25.1,18.8,31.1,18.3,0.7 +20060828,25.7,18.7,32.2,19.0,2.3 +20060829,28.0,21.4,34.0,24.0,2.5 +20060830,24.2,21.3,31.0,21.0,1.8 +20060831,23.4,20.9,31.1,21.7,3.1 +20060901,22.8,18.8,27.8,20.0,2.8 +20060902,23.1,17.8,27.8,20.0,2.4 +20060903,23.9,19.7,29.4,20.0,1.6 +20060904,23.6,21.2,29.4,20.6,1.6 +20060905,22.2,19.6,28.3,20.6,2.4 +20060906,22.1,17.1,28.0,18.0,1.0 +20060907,21.3,17.6,28.3,18.3,2.0 +20060908,22.2,17.5,28.3,17.8,1.0 +20060909,22.7,17.6,28.3,17.8,0.9 +20060910,23.4,17.7,29.4,17.8,0.9 +20060911,22.1,16.9,29.4,17.8,2.8 +20060912,19.8,15.4,26.7,17.2,2.6 +20060913,17.7,16.2,23.3,16.7,2.8 +20060914,19.3,15.2,26.7,13.3,1.5 +20060915,20.9,12.7,27.0,16.0,2.0 +20060916,20.8,14.6,28.3,14.4,0.7 +20060917,21.8,15.9,28.3,14.4,1.4 +20060918,22.1,17.0,29.0,17.0,1.9 +20060919,23.5,19.8,28.9,16.7,3.6 +20060920,18.5,10.2,28.3,11.7,1.6 +20060921,15.6,7.6,23.9,9.4,3.0 +20060922,19.3,13.9,26.1,9.4,1.6 +20060923,23.2,18.2,30.0,16.1,3.1 +20060924,23.9,19.4,30.0,19.4,3.7 +20060925,20.9,14.8,27.8,16.1,1.6 +20060926,18.6,11.6,25.6,14.4,2.6 +20060927,17.6,13.1,24.4,13.3,1.0 +20060928,18.4,13.3,26.1,13.0,3.0 +20060929,14.7,6.8,26.7,8.3,2.1 +20060930,14.3,8.1,22.8,7.8,1.6 +20061001,19.4,12.2,26.7,8.3,2.6 +20061002,19.2,10.9,26.7,11.7,2.1 +20061003,19.0,13.7,27.8,11.7,0.9 +20061004,20.9,14.7,29.0,15.0,1.6 +20061005,22.1,14.3,30.0,15.0,1.7 +20061006,21.7,13.9,30.0,15.6,3.0 +20061007,14.2,7.8,25.6,8.3,3.4 +20061008,15.3,12.1,20.0,8.9,5.0 +20061009,18.3,12.1,24.4,13.3,4.4 +20061010,19.2,10.5,27.0,11.7,1.3 +20061011,19.3,13.8,26.7,11.7,1.8 +20061012,19.2,10.5,24.0,13.0,3.9 +20061013,13.4,2.5,24.4,8.3,2.6 +20061014,9.9,-2.4,21.0,0.6,1.9 +20061015,10.5,-2.3,20.6,-0.5,1.3 +20061016,11.9,3.6,19.4,1.1,1.8 +20061017,12.4,10.7,16.7,8.3,3.4 +20061018,18.8,15.8,26.7,11.1,1.4 +20061019,19.3,17.6,26.7,16.1,1.2 +20061020,19.3,14.4,22.2,13.9,3.4 +20061021,11.7,5.2,22.2,6.7,2.5 +20061022,13.2,9.0,21.1,6.7,2.2 +20061023,9.7,0.5,21.1,3.3,3.4 +20061024,4.4,-2.9,11.1,-2.0,1.4 +20061025,5.2,-3.1,13.0,-1.0,1.5 +20061026,9.9,2.2,17.2,-1.0,1.8 +20061027,10.7,6.7,17.2,5.6,2.2 +20061028,14.2,7.7,20.6,9.4,3.8 +20061029,11.3,1.7,21.1,2.2,3.2 +20061030,14.8,4.9,23.9,2.2,2.3 +20061031,14.0,7.2,23.9,7.2,2.7 +20061101,16.2,9.5,25.0,9.4,2.7 +20061102,15.1,5.7,25.0,9.4,3.7 +20061103,7.0,-9.8,17.2,-0.6,3.5 +20061104,4.9,-7.7,12.8,-1.1,1.8 +20061105,5.4,-4.9,13.3,0.0,1.4 +20061106,7.3,-3.3,14.0,2.0,2.1 +20061107,9.8,4.3,13.9,1.7,4.0 +20061108,13.9,10.3,20.0,7.2,3.0 +20061109,16.3,6.6,26.0,9.0,2.4 +20061110,16.4,7.8,26.7,8.9,1.8 +20061111,17.0,11.9,26.7,8.9,3.7 +20061112,11.0,3.0,24.4,5.6,4.7 +20061113,10.7,-0.8,22.0,1.7,2.2 +20061114,12.3,2.0,21.7,1.7,1.7 +20061115,12.3,6.7,21.1,2.8,2.2 +20061116,12.7,8.9,17.0,8.0,6.0 +20061117,8.1,1.4,16.7,2.2,3.6 +20061118,7.9,-1.7,15.0,0.6,1.0 +20061119,7.3,-0.3,15.0,0.6,2.3 +20061120,6.3,-2.2,14.4,0.6,3.7 +20061121,5.0,-5.4,12.2,0.0,4.6 +20061122,9.6,5.4,14.4,0.0,4.5 +20061123,10.6,4.7,19.4,2.8,1.5 +20061124,12.5,1.3,21.7,3.3,0.8 +20061125,11.1,-0.5,21.7,3.3,0.8 +20061126,10.5,-0.8,21.0,2.0,0.6 +20061127,10.8,1.1,21.1,2.2,0.6 +20061128,14.4,5.5,21.0,9.0,1.1 +20061129,16.1,11.6,21.1,8.3,1.7 +20061130,18.7,15.6,23.3,12.2,2.8 +20061201,19.3,12.9,22.2,12.0,7.1 +20061202,8.8,-3.9,22.8,1.1,2.0 +20061203,9.7,-3.9,16.1,1.1,2.8 +20061204,6.4,-8.4,10.0,1.0,3.2 +20061205,4.1,-9.8,12.8,-2.8,0.5 +20061206,5.7,-6.1,14.0,-1.0,1.7 +20061207,8.9,-4.7,15.0,-1.0,3.3 +20061208,-1.7,-16.2,4.4,-7.0,3.6 +20061209,1.1,-13.1,8.0,-7.0,2.1 +20061210,5.4,-11.2,13.0,-2.0,2.7 +20061211,10.0,-10.1,19.4,0.6,1.6 +20061212,9.1,-5.9,19.4,0.6,2.0 +20061213,12.8,2.4,19.0,9.0,1.7 +20061214,10.1,5.1,18.0,1.0,2.1 +20061215,12.9,5.7,21.1,1.1,3.2 +20061216,11.9,2.6,22.0,2.8,1.3 +20061217,11.3,3.3,21.7,2.2,2.0 +20061218,14.4,4.8,24.4,2.8,2.5 +20061219,14.4,5.5,24.4,5.6,1.3 +20061220,10.6,0.6,23.3,6.1,3.8 +20061221,8.9,1.1,12.2,7.8,2.0 +20061222,12.1,10.7,17.0,9.0,3.8 +20061223,16.9,12.8,20.6,9.4,2.6 +20061224,12.1,2.7,20.6,6.1,1.5 +20061225,7.9,3.9,12.0,6.0,4.6 +20061226,8.1,3.8,11.1,6.1,4.8 +20061227,5.0,-3.4,11.7,-1.1,1.9 +20061228,4.8,-2.3,13.0,-2.0,0.9 +20061229,8.1,1.3,18.3,-1.0,1.2 +20061230,10.0,6.1,18.3,1.1,2.6 +20061231,11.0,9.4,16.0,10.0,3.5 +20070101,15.0,10.7,19.0,10.6,5.7 +20070102,6.3,-1.7,18.9,-1.7,2.4 +20070103,6.9,-0.1,14.4,-1.0,1.2 +20070104,11.2,6.7,19.0,7.0,0.9 +20070105,15.7,14.1,19.4,7.2,2.7 +20070106,14.5,11.3,21.1,10.6,4.3 +20070107,11.8,9.2,21.1,7.8,2.1 +20070108,12.4,4.3,15.0,7.8,4.0 +20070109,4.8,-7.5,15.0,0.0,4.6 +20070110,3.2,-10.1,10.6,-1.7,3.1 +20070111,2.8,-10.9,10.0,-3.3,1.4 +20070112,8.3,-1.6,13.3,-1.0,0.6 +20070113,13.1,8.1,21.1,3.9,2.9 +20070114,15.2,9.9,21.7,7.8,3.4 +20070115,16.7,12.1,21.7,10.0,4.5 +20070116,13.1,8.4,17.0,4.0,3.2 +20070117,1.6,-8.0,4.4,-1.1,4.5 +20070118,0.9,-5.3,4.4,-1.1,3.2 +20070119,5.5,0.2,12.8,-0.5,2.6 +20070120,5.2,-10.1,12.8,1.1,4.2 +20070121,4.2,-4.2,11.1,0.6,2.1 +20070122,3.9,2.4,8.3,0.6,2.3 +20070123,5.5,0.0,8.9,1.7,2.0 +20070124,4.3,-3.2,10.0,-1.1,1.5 +20070125,4.9,-4.8,10.6,-1.0,2.5 +20070126,2.6,-11.1,11.1,-4.4,2.5 +20070127,7.4,-8.2,16.1,-4.3,4.7 +20070128,8.9,-2.4,16.1,1.1,5.2 +20070129,-2.2,-16.7,4.4,-8.0,5.0 +20070130,2.9,-12.0,11.7,-8.3,4.2 +20070131,1.2,-14.0,11.7,-5.0,4.0 +20070201,0.0,-6.3,4.4,-4.4,2.2 +20070202,2.7,0.6,10.0,0.6,3.0 +20070203,1.1,-7.7,6.1,-4.0,4.1 +20070204,2.4,-10.6,8.9,-3.8,6.0 +20070205,0.8,-15.5,8.9,-6.7,2.7 +20070206,-0.6,-14.3,8.0,-7.2,2.3 +20070207,10.2,-2.9,21.0,5.0,5.4 +20070208,6.6,-6.7,21.1,-1.1,1.4 +20070209,4.4,-10.2,13.3,-1.1,1.7 +20070210,3.3,-11.8,9.4,-2.2,2.0 +20070211,3.5,-14.1,12.0,-3.0,2.5 +20070212,7.3,-5.6,17.8,-3.2,2.5 +20070213,9.5,1.7,17.8,-0.5,2.8 +20070214,5.1,0.1,12.8,0.0,4.7 +20070215,-0.8,-12.1,10.0,-5.0,2.4 +20070216,1.0,-14.9,7.0,-4.0,2.8 +20070217,0.8,-11.2,6.7,-3.3,4.2 +20070218,4.7,-9.4,10.6,-3.2,3.9 +20070219,3.6,-9.0,13.3,-4.0,2.9 +20070220,7.7,-3.0,13.9,-4.3,4.8 +20070221,14.2,10.4,19.0,11.0,4.1 +20070222,15.0,4.1,23.0,9.0,3.9 +20070223,10.6,-14.3,23.9,5.0,4.6 +20070224,8.7,-12.0,17.8,0.0,2.6 +20070225,8.6,1.2,16.7,1.1,3.5 +20070226,8.4,1.9,17.2,1.1,2.5 +20070227,11.7,-5.2,19.4,4.0,2.7 +20070228,10.7,-3.6,19.4,0.6,1.7 +20070301,9.4,2.9,18.9,1.7,2.9 +20070302,14.1,3.9,19.4,7.2,5.2 +20070303,11.4,-6.9,19.4,5.0,5.6 +20070304,6.7,-7.5,16.7,0.0,3.8 +20070305,6.1,-9.1,17.2,-3.3,2.9 +20070306,10.8,-5.8,19.0,3.0,2.4 +20070307,11.9,-3.2,21.1,5.0,3.8 +20070308,12.8,-0.9,21.1,5.0,2.6 +20070309,10.0,1.1,20.0,5.0,3.3 +20070310,12.1,3.1,20.6,5.0,2.4 +20070311,16.2,6.8,22.2,5.0,2.1 +20070312,14.2,-2.6,19.0,9.0,3.5 +20070313,15.2,2.8,27.8,5.6,2.6 +20070314,19.7,7.1,26.0,14.0,4.6 +20070315,18.6,9.8,26.7,13.3,4.2 +20070316,14.8,11.4,20.6,9.0,3.2 +20070317,5.7,-7.8,11.0,1.0,5.1 +20070318,4.5,-9.2,12.2,-2.2,1.8 +20070319,9.7,-4.9,18.9,1.7,3.5 +20070320,16.4,4.4,25.6,1.7,3.5 +20070321,17.6,9.8,25.6,8.9,3.3 +20070322,16.7,7.3,23.0,10.0,3.3 +20070323,18.8,10.4,26.7,9.4,3.9 +20070324,20.7,9.7,28.0,13.0,2.8 +20070325,23.1,9.7,30.6,12.8,2.4 +20070326,19.5,10.0,30.6,13.9,3.1 +20070327,20.6,13.3,27.2,13.9,3.8 +20070328,21.7,11.4,28.9,13.9,3.0 +20070329,16.6,10.6,25.0,9.0,5.0 +20070330,12.6,5.4,20.0,9.4,2.1 +20070331,17.3,10.1,24.0,12.0,4.0 +20070401,18.2,14.2,25.0,13.9,4.2 +20070402,20.1,13.8,27.8,15.6,4.5 +20070403,20.5,12.2,28.0,13.0,2.7 +20070404,20.3,10.4,27.8,13.3,5.4 +20070405,11.4,-5.5,25.6,5.0,3.9 +20070406,7.4,-6.4,16.7,0.0,3.4 +20070407,3.8,-10.4,15.6,-2.2,4.6 +20070408,3.6,-11.3,13.0,-4.0,2.2 +20070409,7.3,-7.1,13.3,-4.3,3.3 +20070410,8.3,-3.5,17.0,-1.0,2.5 +20070411,9.6,3.8,13.9,8.0,3.1 +20070412,13.5,4.7,23.0,8.0,4.8 +20070413,14.2,-1.6,23.3,5.0,3.2 +20070414,16.3,1.2,23.3,5.0,3.2 +20070415,15.2,11.6,20.0,8.0,4.3 +20070416,12.7,-4.9,21.1,7.2,6.7 +20070417,17.7,-6.7,25.6,7.2,5.0 +20070418,17.3,-0.8,25.6,11.1,2.0 +20070419,14.5,8.1,23.9,9.4,2.7 +20070420,13.1,6.7,22.8,7.8,3.8 +20070421,15.4,4.8,24.0,7.0,1.0 +20070422,17.7,4.0,27.0,8.0,1.7 +20070423,18.8,5.9,26.7,7.2,4.1 +20070424,20.8,10.3,27.0,15.0,3.8 +20070425,22.1,10.9,29.0,15.0,4.6 +20070426,20.9,12.7,28.9,14.4,3.9 +20070427,20.4,13.2,26.1,14.4,4.6 +20070428,18.3,5.8,26.1,12.8,2.6 +20070429,19.2,5.7,28.3,11.1,2.5 +20070430,22.1,4.1,30.6,10.6,1.6 +20070501,23.7,6.3,32.2,13.9,2.9 +20070502,23.4,8.7,32.2,13.9,3.1 +20070503,23.9,13.1,31.7,13.9,4.7 +20070504,14.2,11.8,17.8,12.8,4.6 +20070505,13.1,11.4,16.1,11.7,3.3 +20070506,16.9,11.6,23.9,11.7,3.4 +20070507,14.6,-2.0,23.9,6.7,4.8 +20070508,17.7,3.4,25.0,6.7,5.2 +20070509,20.6,12.8,26.1,12.2,5.4 +20070510,21.3,14.1,28.3,15.6,2.2 +20070511,23.1,15.5,29.4,15.6,1.6 +20070512,21.2,17.7,30.0,16.7,1.2 +20070513,21.7,15.0,28.0,16.0,2.7 +20070514,19.5,9.7,27.8,15.0,2.9 +20070515,19.0,9.4,28.0,12.0,3.0 +20070516,20.5,13.2,27.8,10.6,4.7 +20070517,19.0,7.7,24.0,13.0,2.9 +20070518,17.9,3.4,25.0,11.7,3.7 +20070519,15.3,1.6,24.4,7.2,2.2 +20070520,19.8,2.7,28.9,7.2,1.6 +20070521,21.2,5.1,30.0,10.0,1.7 +20070522,21.8,8.5,30.6,10.0,1.6 +20070523,22.3,12.7,30.6,12.8,2.5 +20070524,21.4,12.3,27.8,15.0,2.4 +20070525,21.3,11.8,28.3,14.0,1.7 +20070526,22.8,11.9,30.0,12.8,2.4 +20070527,23.6,12.4,31.1,15.0,3.1 +20070528,22.7,12.5,30.6,15.6,3.1 +20070529,23.4,12.3,31.1,15.6,1.7 +20070530,24.3,9.7,32.2,15.0,1.4 +20070531,25.6,11.9,33.3,15.0,1.0 +20070601,24.8,14.1,33.3,17.8,2.4 +20070602,22.0,14.6,30.6,17.8,2.6 +20070603,20.6,15.6,28.0,17.0,3.2 +20070604,24.1,15.1,32.0,18.0,4.4 +20070605,24.1,12.2,32.8,17.2,3.9 +20070606,24.1,13.6,32.2,16.7,2.9 +20070607,26.4,13.8,34.4,16.7,2.6 +20070608,27.6,18.0,35.6,19.4,3.9 +20070609,27.7,14.8,36.0,21.0,2.7 +20070610,27.0,12.9,33.3,21.0,3.3 +20070611,24.2,16.9,30.6,19.0,2.3 +20070612,20.5,16.3,28.0,16.7,2.1 +20070613,20.6,14.1,28.3,15.0,2.5 +20070614,20.6,15.3,28.3,15.0,1.8 +20070615,19.3,16.6,28.3,15.0,2.1 +20070616,22.2,17.2,28.3,17.2,3.5 +20070617,25.1,15.0,33.0,18.0,1.1 +20070618,26.1,15.0,35.0,17.8,1.2 +20070619,26.5,17.4,35.0,17.8,3.2 +20070620,25.7,16.3,32.8,20.6,3.4 +20070621,24.7,9.4,32.2,15.6,2.6 +20070622,25.2,11.0,33.9,15.6,2.2 +20070623,26.4,13.9,33.9,16.1,1.9 +20070624,26.4,18.1,34.0,21.0,2.6 +20070625,24.6,18.2,33.9,20.6,3.6 +20070626,24.0,18.1,32.8,19.4,2.1 +20070627,25.8,18.6,32.8,19.4,2.0 +20070628,27.0,18.7,33.3,20.0,2.7 +20070629,26.7,17.9,34.4,20.6,2.4 +20070630,26.3,19.3,34.4,20.6,1.8 +20070701,25.7,18.7,33.9,21.1,3.0 +20070702,21.8,16.1,30.0,17.8,2.6 +20070703,21.9,14.6,27.0,18.0,1.9 +20070704,23.0,16.1,28.9,17.8,2.7 +20070705,24.6,15.6,31.7,17.8,3.3 +20070706,25.9,17.5,33.3,18.3,2.2 +20070707,25.3,20.1,33.3,20.6,1.4 +20070708,25.3,19.7,30.6,21.1,2.0 +20070709,25.9,19.7,32.0,21.0,1.6 +20070710,25.6,20.1,33.9,20.0,3.4 +20070711,25.3,19.3,33.9,21.1,4.7 +20070712,25.9,16.1,32.2,18.9,1.7 +20070713,23.9,12.7,32.2,18.9,2.2 +20070714,21.9,14.7,28.0,17.0,1.0 +20070715,22.8,17.6,28.3,17.2,1.9 +20070716,24.7,19.2,32.2,18.9,2.3 +20070717,26.2,19.3,33.3,19.4,2.5 +20070718,25.3,20.1,32.0,21.0,2.2 +20070719,26.8,17.7,35.0,20.0,2.5 +20070720,27.1,17.7,35.0,20.0,3.3 +20070721,24.7,13.3,31.7,20.0,3.4 +20070722,23.7,11.7,28.3,19.0,2.8 +20070723,23.2,11.1,29.4,16.7,2.5 +20070724,24.0,13.1,31.7,16.7,2.1 +20070725,25.0,15.0,32.8,18.3,2.5 +20070726,25.3,16.2,33.3,19.4,2.1 +20070727,26.2,17.7,34.4,19.4,1.9 +20070728,23.6,18.9,34.4,20.6,1.7 +20070729,23.8,20.4,27.8,21.1,2.0 +20070730,24.6,20.9,31.7,21.7,1.3 +20070731,25.5,19.3,32.2,21.0,2.6 +20070801,26.6,18.1,32.2,21.0,1.4 +20070802,27.4,17.1,33.9,20.0,1.8 +20070803,27.2,16.3,33.9,20.0,1.3 +20070804,27.2,17.6,36.0,20.0,1.5 +20070805,28.3,18.3,36.7,20.0,1.2 +20070806,28.3,19.7,36.7,21.7,1.4 +20070807,30.7,19.4,38.0,24.0,0.9 +20070808,31.6,19.4,40.0,23.9,1.4 +20070809,32.1,19.1,40.0,24.4,1.5 +20070810,32.3,18.1,41.0,23.0,2.1 +20070811,31.7,16.9,40.6,22.8,2.9 +20070812,28.1,20.8,33.3,23.0,2.6 +20070813,29.0,17.9,36.7,22.2,1.9 +20070814,29.0,14.8,36.7,21.7,2.3 +20070815,29.1,14.9,37.8,20.6,1.6 +20070816,30.6,17.6,38.9,20.6,2.9 +20070817,30.6,18.8,38.9,24.4,2.6 +20070818,28.9,16.6,37.8,22.2,2.0 +20070819,28.0,17.2,35.0,22.0,2.3 +20070820,29.4,16.8,36.7,22.2,3.8 +20070821,30.7,17.9,38.9,22.8,3.3 +20070822,30.1,19.2,38.9,23.9,1.4 +20070823,28.9,19.0,38.9,22.8,1.9 +20070824,26.9,19.5,36.7,21.7,2.4 +20070825,26.4,19.7,36.1,21.7,2.2 +20070826,25.7,19.4,36.1,21.7,2.0 +20070827,24.6,20.1,31.0,21.0,2.1 +20070828,-999.0,-999.0,-999.0,-999.0,-999.0 +20070829,27.2,19.9,36.0,21.7,2.6 +20070830,24.7,20.4,35.6,21.7,2.1 +20070831,24.5,19.6,33.3,21.7,2.1 +20070901,24.6,18.6,31.1,20.6,2.6 +20070902,24.8,15.0,30.0,20.6,4.1 +20070903,24.4,15.1,32.8,17.8,1.1 +20070904,23.2,17.8,32.8,17.8,1.3 +20070905,26.2,13.0,35.0,17.8,1.5 +20070906,27.5,15.8,35.0,17.8,2.5 +20070907,26.6,16.8,33.3,20.6,1.7 +20070908,26.4,15.7,34.0,19.0,1.3 +20070909,26.0,14.6,34.0,18.0,1.0 +20070910,27.6,14.8,35.6,18.3,2.4 +20070911,27.7,14.4,35.6,20.6,4.8 +20070912,25.7,17.2,35.0,21.1,2.7 +20070913,23.8,19.2,31.1,21.7,2.9 +20070914,23.4,20.2,27.0,22.0,1.9 +20070915,22.6,16.6,29.4,16.7,2.1 +20070916,19.1,7.2,29.4,15.0,4.1 +20070917,19.4,9.9,25.0,14.0,3.1 +20070918,19.3,10.7,26.0,14.0,3.3 +20070919,20.1,10.3,27.2,14.0,4.1 +20070920,21.8,13.7,27.8,14.4,4.5 +20070921,22.2,17.4,26.7,17.8,3.4 +20070922,24.7,18.1,31.7,20.0,1.5 +20070923,26.0,17.4,33.9,18.9,1.6 +20070924,26.3,17.2,33.9,18.9,2.2 +20070925,24.7,17.1,32.8,19.4,2.0 +20070926,24.1,13.2,32.8,15.6,1.4 +20070927,23.3,13.8,32.8,15.6,1.5 +20070928,24.3,12.6,31.1,15.6,2.6 +20070929,21.0,4.1,30.0,13.9,3.7 +20070930,19.4,4.7,28.3,12.8,3.4 +20071001,19.9,7.3,27.8,12.8,3.2 +20071002,20.9,10.9,28.3,13.3,3.6 +20071003,23.8,13.8,28.3,15.0,3.5 +20071004,22.7,18.7,26.0,21.0,2.2 +20071005,23.4,19.1,28.3,21.0,2.6 +20071006,23.4,17.9,29.4,20.6,2.9 +20071007,23.5,17.3,30.0,18.3,2.3 +20071008,24.0,17.0,31.7,17.8,0.8 +20071009,24.3,16.1,32.2,17.8,1.7 +20071010,23.1,13.3,32.2,17.8,2.1 +20071011,17.1,2.6,30.0,11.7,3.8 +20071012,15.1,3.2,22.8,8.9,1.8 +20071013,15.2,4.8,23.3,7.8,1.9 +20071014,17.1,7.3,26.1,7.8,1.1 +20071015,19.1,8.7,26.7,9.4,1.6 +20071016,17.9,11.5,23.0,12.0,1.3 +20071017,20.1,14.4,27.0,17.0,1.2 +20071018,21.2,16.5,26.7,16.7,1.9 +20071019,21.8,18.5,26.1,18.3,4.6 +20071020,17.8,9.4,24.4,11.1,2.6 +20071021,16.7,6.0,26.1,8.0,1.4 +20071022,16.1,11.4,26.1,8.3,1.7 +20071023,20.7,18.2,27.2,14.4,2.9 +20071024,18.4,16.1,27.2,16.1,2.8 +20071025,16.6,11.6,22.8,10.6,2.1 +20071026,15.8,12.2,22.8,11.1,3.5 +20071027,16.4,9.7,23.0,12.0,1.5 +20071028,14.9,5.9,22.8,10.0,3.2 +20071029,11.3,0.6,20.6,5.0,3.5 +20071030,9.5,0.1,20.0,1.1,1.3 +20071031,11.9,3.4,22.2,1.1,1.3 +20071101,16.8,9.8,24.4,3.9,1.5 +20071102,15.1,4.1,18.0,11.0,4.6 +20071103,10.8,1.3,21.1,1.7,2.5 +20071104,13.3,-2.8,21.1,1.7,2.3 +20071105,13.2,-0.4,22.2,3.9,3.3 +20071106,14.7,1.0,22.2,4.4,4.8 +20071107,6.7,-7.2,17.2,-2.2,2.2 +20071108,5.9,-4.6,13.9,-2.1,2.0 +20071109,9.1,-1.7,18.9,-1.6,2.0 +20071110,12.8,-0.9,18.9,1.1,3.7 +20071111,7.8,-1.7,17.2,0.0,1.8 +20071112,11.1,2.3,21.1,0.0,2.4 +20071113,15.4,6.3,24.4,3.3,3.5 +20071114,18.4,12.3,26.1,8.9,3.5 +20071115,15.1,6.6,21.7,6.0,5.6 +20071116,5.5,-6.4,12.0,-1.0,3.2 +20071117,6.3,-3.7,16.7,-2.2,2.1 +20071118,12.5,2.3,22.2,-2.1,2.3 +20071119,15.6,7.7,23.3,5.0,1.2 +20071120,15.6,8.2,24.0,8.0,2.5 +20071121,16.4,8.7,23.9,8.3,3.9 +20071122,17.3,13.5,23.9,10.0,4.3 +20071123,7.9,-1.8,11.0,4.0,3.7 +20071124,3.3,-6.3,10.6,-1.1,2.7 +20071125,6.4,-3.6,9.4,-0.5,2.7 +20071126,8.0,6.6,11.1,5.6,2.1 +20071127,12.1,5.9,15.6,6.1,3.6 +20071128,8.3,-3.7,16.1,0.0,1.9 +20071129,8.4,-1.1,18.3,0.0,1.8 +20071130,9.1,-2.1,18.3,0.6,2.3 +20071201,9.3,-5.4,18.0,2.0,1.5 +20071202,9.9,-2.2,17.8,1.7,1.8 +20071203,12.7,1.3,15.6,4.4,4.4 +20071204,6.2,-9.1,15.6,0.0,2.6 +20071205,7.2,-6.1,16.1,1.1,2.7 +20071206,5.3,-5.3,16.1,-0.6,4.4 +20071207,4.6,-4.8,11.1,-0.6,1.7 +20071208,11.9,5.7,23.3,0.6,3.4 +20071209,16.4,13.6,23.3,4.4,2.4 +20071210,18.6,13.4,26.1,12.2,3.1 +20071211,18.6,12.5,26.1,12.8,3.4 +20071212,18.8,12.5,26.1,12.8,4.4 +20071213,18.6,12.7,25.6,13.3,4.4 +20071214,14.9,7.1,23.9,6.7,1.3 +20071215,8.7,2.3,15.0,3.0,4.8 +20071216,5.3,-0.1,11.1,2.8,5.7 +20071217,1.6,-8.8,10.0,-5.0,1.7 +20071218,1.9,-8.6,10.0,-5.0,0.9 +20071219,6.1,-2.2,12.2,-4.9,3.2 +20071220,6.4,2.3,12.2,1.7,1.9 +20071221,6.8,4.3,10.0,2.2,5.6 +20071222,7.9,2.4,11.1,6.1,5.4 +20071223,10.1,7.1,16.1,6.7,4.4 +20071224,6.6,-5.6,16.1,0.0,2.1 +20071225,7.6,-5.6,13.9,0.0,2.4 +20071226,6.9,1.4,12.8,2.8,3.5 +20071227,9.1,4.8,15.0,2.8,2.2 +20071228,10.1,7.9,15.0,7.2,1.5 +20071229,12.9,9.3,20.0,10.0,2.8 +20071230,9.2,5.9,20.0,7.8,1.8 +20071231,7.8,2.6,14.4,1.1,2.3 +20080101,6.1,-4.9,14.4,0.6,3.8 +20080102,-0.9,-13.5,10.0,-6.7,5.0 +20080103,-2.8,-13.9,4.0,-7.2,2.3 +20080104,0.1,-12.6,8.3,-7.8,3.0 +20080105,4.4,-7.8,13.0,-2.0,4.2 +20080106,10.6,2.6,19.0,6.0,3.7 +20080107,13.1,7.7,21.1,5.6,2.7 +20080108,14.1,10.9,21.1,6.1,2.5 +20080109,17.3,12.9,23.0,13.0,4.9 +20080110,10.5,7.9,16.1,8.0,3.1 +20080111,12.9,7.4,18.3,7.8,4.5 +20080112,8.5,1.3,18.3,3.9,3.1 +20080113,7.9,1.5,13.9,3.9,3.1 +20080114,5.2,-2.9,12.2,0.0,3.1 +20080115,2.5,-8.7,12.2,-4.4,1.9 +20080116,1.6,-10.1,8.9,-4.4,1.9 +20080117,1.5,-1.0,6.1,-3.8,3.9 +20080118,4.1,1.9,12.2,0.0,2.0 +20080119,3.8,2.1,6.7,1.0,1.9 +20080120,-0.5,-9.7,2.0,-6.0,1.5 +20080121,-1.8,-17.9,5.0,-7.8,2.5 +20080122,1.3,-10.2,5.0,-7.8,1.8 +20080123,4.1,1.9,10.0,1.1,2.7 +20080124,6.0,0.3,12.2,1.7,3.0 +20080125,-1.4,-15.2,4.0,-7.0,3.1 +20080126,3.8,-9.2,10.6,-6.6,3.1 +20080127,5.2,-3.1,14.4,-2.2,2.3 +20080128,8.4,-8.1,15.0,-2.1,3.3 +20080129,11.9,-3.8,17.8,2.2,5.5 +20080130,9.9,-2.4,17.8,2.2,4.7 +20080131,4.0,-12.1,11.7,-0.6,4.3 +20080201,4.6,0.6,11.0,1.0,5.8 +20080202,5.8,-1.8,16.1,-2.2,2.4 +20080203,10.0,-2.4,18.3,-1.0,2.6 +20080204,11.1,6.1,18.3,3.9,1.2 +20080205,14.2,10.4,22.8,7.8,3.6 +20080206,16.3,14.3,22.8,7.8,4.8 +20080207,11.3,0.7,18.3,2.2,4.6 +20080208,8.9,-2.1,17.2,0.0,2.9 +20080209,10.2,-0.6,19.4,5.0,3.9 +20080210,11.0,-6.7,19.4,3.9,6.7 +20080211,6.8,-9.5,18.9,-2.2,2.1 +20080212,7.6,-2.6,15.6,-1.0,2.8 +20080213,8.1,4.9,13.9,2.8,2.8 +20080214,3.1,-7.3,13.3,-4.4,3.1 +20080215,8.9,-3.5,17.2,-4.3,2.6 +20080216,13.3,2.9,21.0,8.0,1.8 +20080217,9.8,5.4,20.6,6.7,3.1 +20080218,14.2,7.8,17.2,8.3,6.4 +20080219,7.0,-6.4,17.2,0.6,5.5 +20080220,8.8,-5.7,19.4,0.6,6.0 +20080221,7.4,-2.0,19.4,1.7,3.9 +20080222,3.1,1.6,7.0,1.0,3.3 +20080223,11.1,6.8,21.1,1.1,3.8 +20080224,7.6,1.3,21.1,3.9,3.0 +20080225,8.9,2.1,18.0,1.0,1.2 +20080226,11.3,6.1,17.8,0.6,3.0 +20080227,4.5,-6.1,17.8,0.6,3.4 +20080228,-0.3,-12.1,7.2,-7.2,2.2 +20080229,5.6,-6.6,13.9,-7.1,3.0 +20080301,12.2,-0.5,21.0,6.0,4.3 +20080302,11.2,-6.9,20.6,0.0,1.4 +20080303,12.3,0.2,22.2,1.7,3.1 +20080304,17.5,13.3,19.0,14.0,6.1 +20080305,10.3,3.3,20.0,3.3,4.4 +20080306,11.2,2.5,19.4,3.3,2.6 +20080307,10.9,7.1,19.4,5.6,3.5 +20080308,8.9,3.4,14.0,3.0,6.6 +20080309,3.4,-8.4,13.9,-4.4,2.5 +20080310,8.4,-3.9,19.4,-4.3,1.5 +20080311,11.3,-0.3,19.4,0.0,2.1 +20080312,11.7,-1.3,21.1,1.1,3.4 +20080313,14.8,0.3,24.4,1.1,2.3 +20080314,15.8,4.1,24.4,4.4,4.4 +20080315,13.3,11.4,20.0,10.6,3.0 +20080316,12.4,5.3,18.0,8.0,3.8 +20080317,9.7,-0.6,13.3,4.0,3.2 +20080318,10.1,1.4,16.0,8.0,2.4 +20080319,14.3,10.3,19.0,11.0,4.6 +20080320,13.5,1.9,19.0,6.0,6.1 +20080321,12.1,-4.5,20.6,2.8,3.0 +20080322,15.3,-0.6,25.0,4.4,4.7 +20080323,11.6,-2.8,25.0,4.4,3.7 +20080324,6.2,-6.9,17.2,0.6,3.5 +20080325,6.5,-6.2,14.4,-2.2,2.9 +20080326,12.4,-4.2,22.2,-2.1,5.0 +20080327,16.3,1.2,23.9,5.0,4.8 +20080328,18.8,8.2,25.0,9.4,6.2 +20080329,13.9,10.3,25.0,7.8,4.3 +20080330,6.6,2.0,8.0,4.0,6.5 +20080331,8.2,4.6,15.0,4.4,4.7 +20080401,14.6,11.1,23.3,6.1,3.6 +20080402,19.1,11.9,24.4,10.6,2.8 +20080403,11.2,6.3,19.4,6.0,4.6 +20080404,8.7,7.4,14.0,6.0,2.3 +20080405,14.6,13.4,17.0,13.0,2.5 +20080406,16.4,13.0,21.7,13.3,2.6 +20080407,13.5,8.3,21.7,10.0,5.0 +20080408,13.2,7.9,17.2,9.0,2.7 +20080409,15.1,7.9,23.9,8.9,1.9 +20080410,17.6,9.8,24.4,8.9,1.6 +20080411,20.0,12.8,27.8,10.6,4.3 +20080412,19.0,14.1,27.8,15.0,5.6 +20080413,13.4,0.1,20.6,6.1,5.0 +20080414,8.1,-1.9,18.3,3.3,2.3 +20080415,10.1,-1.7,17.2,3.3,3.6 +20080416,11.6,-3.9,21.1,2.2,1.2 +20080417,15.3,-0.1,26.1,2.2,1.7 +20080418,18.9,2.4,27.2,4.4,3.6 +20080419,16.9,9.1,27.2,10.6,3.5 +20080420,15.8,5.2,22.2,7.8,3.0 +20080421,16.2,5.1,22.2,7.8,2.6 +20080422,16.8,9.3,23.3,9.4,3.3 +20080423,19.3,11.5,25.0,11.1,4.3 +20080424,19.5,11.7,27.2,12.2,1.4 +20080425,20.9,12.4,28.3,12.2,2.9 +20080426,20.6,14.1,29.4,14.4,3.3 +20080427,18.4,16.3,29.4,15.0,1.5 +20080428,18.6,15.1,22.2,16.0,3.4 +20080429,12.8,-0.7,22.8,6.1,3.8 +20080430,12.6,0.6,21.1,3.9,2.4 +20080501,16.7,5.9,26.0,8.0,3.1 +20080502,19.7,10.7,27.2,7.8,4.3 +20080503,19.6,12.9,27.2,13.3,4.3 +20080504,20.0,11.9,27.2,13.9,2.7 +20080505,20.5,9.4,27.2,13.9,3.3 +20080506,19.9,8.1,26.0,13.0,2.5 +20080507,20.4,9.6,27.2,13.3,2.9 +20080508,22.6,14.5,28.3,13.3,4.9 +20080509,22.8,15.5,28.0,17.0,5.1 +20080510,22.6,14.4,28.3,16.7,2.5 +20080511,18.3,12.4,25.6,13.0,4.6 +20080512,17.6,4.4,23.3,13.3,6.4 +20080513,16.6,5.3,23.0,9.0,2.5 +20080514,16.4,10.1,22.8,8.3,2.8 +20080515,18.1,14.8,21.7,10.6,2.5 +20080516,20.3,15.9,26.7,15.6,4.4 +20080517,16.8,6.8,26.7,8.9,4.1 +20080518,18.1,10.1,25.6,8.9,4.9 +20080519,18.9,8.7,27.2,10.6,4.2 +20080520,22.5,12.3,30.0,10.6,5.9 +20080521,18.2,10.4,26.0,11.0,2.4 +20080522,19.1,6.6,27.8,9.4,2.0 +20080523,21.8,9.6,29.0,15.6,2.0 +20080524,21.8,13.4,28.9,15.6,3.0 +20080525,20.2,13.1,27.0,15.0,1.8 +20080526,21.8,12.6,29.0,16.0,4.1 +20080527,24.1,14.8,31.1,15.0,4.2 +20080528,22.8,17.9,27.2,14.0,2.8 +20080529,17.1,11.6,25.0,13.0,3.8 +20080530,22.0,16.8,29.4,13.3,3.2 +20080531,26.1,18.6,33.3,16.7,5.2 +20080601,25.6,15.2,31.0,19.0,4.3 +20080602,25.1,14.1,32.2,18.9,2.1 +20080603,25.2,16.6,32.2,18.9,2.5 +20080604,28.2,19.2,35.6,18.9,5.2 +20080605,29.2,17.9,36.1,21.7,3.7 +20080606,29.3,18.4,36.1,21.7,3.1 +20080607,29.4,17.7,37.2,22.8,2.7 +20080608,29.9,16.9,37.8,21.7,2.2 +20080609,30.4,17.7,37.8,21.7,2.3 +20080610,28.9,16.9,37.2,21.1,2.2 +20080611,27.3,17.6,36.7,20.0,2.6 +20080612,26.6,17.8,35.0,20.0,3.4 +20080613,27.2,16.9,33.3,20.6,2.3 +20080614,26.8,16.3,34.4,20.6,3.3 +20080615,25.8,16.7,32.0,19.0,1.9 +20080616,26.9,16.5,35.0,19.4,2.3 +20080617,27.4,15.1,35.0,20.6,2.5 +20080618,23.6,6.6,35.0,16.7,2.4 +20080619,24.8,6.4,31.1,16.7,2.8 +20080620,24.6,10.0,31.1,15.6,2.0 +20080621,24.4,16.0,31.1,15.6,2.3 +20080622,24.5,16.9,32.0,18.0,1.8 +20080623,24.8,16.2,32.8,18.3,2.3 +20080624,26.2,11.7,35.0,17.8,1.5 +20080625,27.4,10.8,36.0,18.0,2.4 +20080626,27.7,10.9,36.1,17.8,2.6 +20080627,28.3,16.4,36.1,18.3,4.3 +20080628,26.6,18.3,35.6,21.1,3.7 +20080629,27.3,17.4,32.0,21.0,5.5 +20080630,25.6,16.1,32.8,20.0,5.0 +20080701,23.4,8.3,31.7,16.1,3.5 +20080702,23.9,7.6,32.0,14.0,1.9 +20080703,26.1,10.8,34.4,14.4,2.8 +20080704,27.6,15.0,35.0,17.8,3.2 +20080705,25.8,18.3,35.0,20.6,2.9 +20080706,24.3,18.6,31.0,19.0,2.6 +20080707,23.3,18.4,32.0,18.0,2.8 +20080708,26.7,20.0,32.2,18.3,3.1 +20080709,25.7,19.9,33.9,21.1,3.3 +20080710,24.7,20.4,32.0,21.0,2.0 +20080711,26.2,20.8,33.3,21.1,2.0 +20080712,27.3,19.3,33.9,21.7,1.5 +20080713,25.8,19.3,33.9,21.7,3.4 +20080714,25.7,19.2,32.8,21.7,2.1 +20080715,26.4,15.4,31.7,21.7,3.0 +20080716,26.0,14.7,31.7,20.0,2.6 +20080717,25.9,14.8,31.7,20.0,3.2 +20080718,26.2,15.1,32.8,20.0,2.7 +20080719,27.2,17.9,33.3,20.0,1.6 +20080720,28.3,17.1,36.0,21.0,1.5 +20080721,30.5,17.2,38.9,21.1,2.1 +20080722,27.2,16.9,38.9,20.6,2.9 +20080723,27.4,17.9,36.1,20.6,2.9 +20080724,25.8,14.6,30.0,19.0,2.8 +20080725,25.1,14.6,30.6,19.4,2.3 +20080726,24.7,19.9,29.0,21.0,1.2 +20080727,26.9,20.1,36.1,20.6,2.1 +20080728,27.8,17.2,36.1,20.6,2.5 +20080729,26.9,20.6,35.6,20.6,2.5 +20080730,28.2,20.3,36.7,21.7,3.1 +20080731,28.1,20.8,36.7,22.2,3.3 +20080801,27.2,19.8,34.0,22.0,1.4 +20080802,28.9,18.2,37.2,21.0,1.6 +20080803,25.6,19.1,37.2,20.0,1.6 +20080804,28.2,18.7,35.6,20.0,2.3 +20080805,28.8,18.1,36.1,21.7,1.8 +20080806,30.3,19.7,37.8,21.7,1.4 +20080807,28.6,18.2,37.8,22.2,1.3 +20080808,26.7,14.9,35.0,21.7,2.4 +20080809,25.1,11.2,32.2,18.3,2.7 +20080810,26.2,14.4,33.3,18.3,2.0 +20080811,26.3,11.6,33.3,18.3,2.2 +20080812,24.6,11.1,30.0,18.0,3.2 +20080813,22.8,18.8,29.4,18.3,3.3 +20080814,21.6,16.9,29.4,17.8,2.5 +20080815,23.9,17.4,32.8,17.8,1.8 +20080816,24.6,17.1,32.8,17.8,2.7 +20080817,23.5,17.4,29.4,18.0,2.8 +20080818,24.0,17.9,31.1,18.3,2.1 +20080819,26.3,16.8,33.9,18.9,1.9 +20080820,26.3,16.3,33.9,19.4,2.5 +20080821,25.6,17.1,33.3,19.4,4.3 +20080822,24.7,17.2,30.6,20.6,5.4 +20080823,24.9,17.1,31.1,20.6,5.2 +20080824,25.4,16.8,31.1,21.1,2.5 +20080825,25.1,20.1,30.6,21.7,1.7 +20080826,22.5,21.2,28.3,21.7,4.1 +20080827,23.3,21.3,27.2,21.7,4.0 +20080828,23.4,20.7,27.2,21.0,1.6 +20080829,25.2,19.4,31.1,21.1,1.8 +20080830,26.1,18.9,32.8,20.6,1.7 +20080831,26.1,19.8,32.8,20.6,2.1 +20080901,24.6,20.6,29.0,22.0,3.3 +20080902,24.3,17.3,29.4,19.4,2.3 +20080903,23.4,16.2,30.0,17.0,1.0 +20080904,23.1,15.9,30.6,15.6,1.5 +20080905,23.4,17.1,30.0,15.6,3.5 +20080906,25.9,17.6,33.0,19.0,3.1 +20080907,26.3,18.7,33.3,19.4,1.4 +20080908,26.6,19.8,33.3,20.6,2.5 +20080909,25.7,20.4,32.2,22.2,3.0 +20080910,25.1,19.7,30.0,21.7,1.4 +20080911,20.8,17.9,23.3,18.0,4.6 +20080912,23.5,20.3,29.4,18.3,1.9 +20080913,25.6,20.7,31.0,21.0,2.3 +20080914,25.8,19.4,32.2,20.6,4.3 +20080915,26.4,19.9,31.7,20.6,2.8 +20080916,19.1,17.1,23.0,17.0,4.6 +20080917,18.9,14.6,23.9,16.1,4.7 +20080918,20.5,13.7,27.2,15.0,1.4 +20080919,20.3,13.3,27.2,15.0,3.5 +20080920,18.9,12.4,25.6,13.9,3.2 +20080921,18.6,12.9,23.9,13.9,2.3 +20080922,20.5,13.1,27.2,14.4,2.8 +20080923,18.9,11.9,27.2,15.0,3.8 +20080924,18.6,9.3,25.0,13.9,4.9 +20080925,18.2,7.4,23.9,13.9,6.0 +20080926,18.8,14.6,23.3,14.4,4.6 +20080927,19.1,16.6,23.3,17.0,1.4 +20080928,22.5,16.8,28.9,17.2,1.2 +20080929,21.7,15.8,28.9,15.6,1.4 +20080930,20.7,15.0,28.3,15.0,2.2 +20081001,19.1,12.4,28.3,15.0,1.7 +20081002,15.1,4.9,24.4,7.2,2.2 +20081003,15.2,7.3,25.0,7.2,1.2 +20081004,17.8,10.4,26.7,7.2,1.0 +20081005,19.2,12.3,27.8,10.6,0.9 +20081006,19.3,12.3,27.8,11.7,1.2 +20081007,17.6,13.3,27.2,11.7,2.7 +20081008,16.6,13.8,21.7,13.9,2.6 +20081009,18.3,15.9,22.8,15.6,3.3 +20081010,20.4,17.1,26.1,16.1,4.0 +20081011,20.8,14.9,26.1,17.8,6.0 +20081012,20.2,9.1,24.0,17.0,6.4 +20081013,19.7,11.2,25.6,15.0,3.7 +20081014,18.4,11.3,27.8,11.1,0.9 +20081015,19.2,11.4,28.3,11.1,1.9 +20081016,20.7,13.4,28.3,11.1,2.3 +20081017,21.1,17.2,28.3,13.3,2.6 +20081018,14.2,9.1,22.8,11.7,4.5 +20081019,11.4,1.7,17.8,5.6,3.0 +20081020,10.4,2.8,20.0,2.8,1.4 +20081021,14.1,5.3,23.0,7.0,1.7 +20081022,13.4,2.7,22.8,5.6,2.5 +20081023,9.8,1.4,18.3,5.6,3.7 +20081024,10.4,5.6,15.6,5.6,4.5 +20081025,15.1,12.3,21.7,9.4,2.3 +20081026,12.2,6.0,21.7,4.4,1.3 +20081027,11.4,1.3,20.6,5.6,4.2 +20081028,6.7,-4.2,14.4,1.7,4.1 +20081029,6.1,-3.4,16.1,-1.7,2.5 +20081030,10.4,-3.3,18.3,-1.6,2.2 +20081031,10.2,-0.3,21.1,1.1,1.1 +20081101,12.3,1.6,23.0,4.0,1.3 +20081102,13.6,3.8,23.3,3.3,2.0 +20081103,13.4,7.3,23.3,5.0,4.0 +20081104,15.4,9.8,20.0,10.0,4.7 +20081105,16.6,9.4,23.3,11.7,3.1 +20081106,16.3,7.9,26.0,10.0,1.0 +20081107,15.9,8.3,25.6,7.2,2.4 +20081108,15.1,6.7,23.9,7.2,4.4 +20081109,10.1,0.4,18.9,2.8,1.7 +20081110,8.3,0.4,16.7,0.6,1.1 +20081111,8.9,-2.8,16.7,0.6,2.0 +20081112,9.7,0.4,15.6,5.0,2.9 +20081113,11.2,6.9,14.4,6.1,2.6 +20081114,13.5,12.3,15.0,8.3,1.4 +20081115,15.9,11.4,19.0,11.0,4.9 +20081116,6.8,-1.1,18.9,-1.1,1.7 +20081117,5.6,-2.2,16.1,-1.7,1.8 +20081118,3.1,-8.6,16.1,-1.6,3.8 +20081119,0.9,-10.8,8.3,-6.1,2.1 +20081120,5.9,-6.3,17.2,-6.1,2.0 +20081121,4.3,-7.4,17.2,-1.6,4.0 +20081122,-0.1,-12.4,7.2,-7.2,1.4 +20081123,5.5,-10.4,12.2,-7.1,1.8 +20081124,5.8,-2.8,12.2,-0.5,2.8 +20081125,7.1,-0.7,12.8,0.6,2.9 +20081126,3.5,-6.0,12.8,-3.9,0.9 +20081127,7.9,-2.1,17.8,-3.2,1.7 +20081128,10.9,2.4,19.4,1.7,1.4 +20081129,9.1,4.7,19.4,5.0,2.7 +20081130,4.2,2.8,6.0,3.0,4.0 +20081201,5.3,0.8,7.8,2.8,6.2 +20081202,2.5,-3.4,8.3,-2.8,2.8 +20081203,2.5,-4.7,11.1,-5.0,2.1 +20081204,5.6,-0.4,11.7,-4.3,3.5 +20081205,6.6,-0.7,12.0,2.0,1.3 +20081206,3.1,-4.8,11.7,0.0,1.9 +20081207,2.1,-7.3,8.9,-4.4,1.6 +20081208,2.4,-11.7,10.0,-3.9,1.1 +20081209,6.8,-1.9,11.0,4.0,2.0 +20081210,13.9,11.9,17.2,4.4,2.3 +20081211,15.9,14.4,19.0,13.0,2.8 +20081212,9.5,1.3,13.3,3.0,3.4 +20081213,3.2,-6.7,9.0,-2.0,2.6 +20081214,2.8,-3.7,8.9,-1.7,1.3 +20081215,8.7,4.4,13.3,5.0,1.6 +20081216,13.4,11.6,18.0,10.6,1.1 +20081217,10.1,9.1,16.1,7.0,3.0 +20081218,17.4,14.0,23.3,7.2,2.2 +20081219,15.5,12.4,23.3,11.7,3.4 +20081220,16.7,14.1,20.0,11.7,4.5 +20081221,13.1,4.5,17.2,3.9,3.7 +20081222,-1.0,-16.3,4.4,-7.0,3.9 +20081223,-0.7,-13.1,4.4,-6.7,1.4 +20081224,5.6,-5.8,10.0,-3.8,1.2 +20081225,12.8,9.0,20.0,3.9,0.8 +20081226,10.3,4.2,14.0,8.0,3.0 +20081227,9.3,7.8,13.3,7.0,1.1 +20081228,14.3,12.9,18.0,11.7,2.4 +20081229,14.0,6.3,18.3,10.0,1.3 +20081230,9.8,-3.4,20.0,1.1,2.2 +20081231,10.1,-5.0,20.0,1.1,5.0 +20090101,1.5,-13.0,12.8,-4.4,1.7 +20090102,3.0,-5.0,10.6,-3.9,2.6 +20090103,6.9,5.5,10.6,-3.2,1.3 +20090104,11.0,9.3,16.1,5.0,1.7 +20090105,14.9,12.4,22.2,9.4,3.7 +20090106,16.6,14.7,22.2,12.2,3.1 +20090107,15.1,9.7,19.0,7.0,8.3 +20090108,7.0,-2.4,18.9,3.3,4.4 +20090109,4.6,-8.8,13.9,-1.7,2.2 +20090110,6.2,-2.7,11.7,-1.0,2.5 +20090111,9.0,5.6,11.1,1.7,1.4 +20090112,4.2,-4.4,10.6,0.0,2.3 +20090113,3.3,-3.4,11.0,-1.0,1.3 +20090114,3.0,-7.9,10.6,-4.4,2.8 +20090115,4.2,-9.7,10.0,-3.8,4.1 +20090116,-5.1,-20.3,-1.0,-10.0,1.5 +20090117,-3.9,-18.4,3.3,-9.4,2.3 +20090118,2.9,-5.7,9.0,1.0,3.1 +20090119,3.9,-1.8,8.9,-0.6,2.8 +20090120,0.5,-9.3,7.2,-3.3,4.5 +20090121,-2.6,-14.6,5.0,-7.0,2.9 +20090122,1.9,-10.9,12.2,-6.7,2.4 +20090123,8.2,-1.4,18.3,-4.9,4.1 +20090124,13.3,5.0,17.0,10.0,2.1 +20090125,6.8,-5.2,10.0,3.0,3.3 +20090126,6.1,-1.6,9.0,4.0,1.0 +20090127,6.8,4.0,8.9,3.9,1.6 +20090128,8.4,6.9,16.1,5.6,3.1 +20090129,5.7,0.6,12.2,-2.0,0.8 +20090130,4.0,-6.1,12.8,-1.7,2.1 +20090131,2.1,-9.1,11.0,-3.0,2.1 +20090201,6.8,-4.6,16.0,0.0,4.3 +20090202,8.2,0.1,16.1,0.0,3.3 +20090203,3.7,-6.8,16.1,-1.7,4.3 +20090204,-3.2,-15.6,5.0,-9.0,5.1 +20090205,-2.7,-16.7,6.1,-8.9,4.0 +20090206,3.3,-11.6,15.6,-7.2,2.5 +20090207,10.8,-1.7,21.1,-3.8,4.2 +20090208,14.4,2.4,23.3,2.2,4.0 +20090209,14.7,6.7,23.3,7.2,2.1 +20090210,14.9,7.3,22.2,7.8,3.7 +20090211,15.4,8.8,21.1,10.0,5.3 +20090212,14.0,1.2,21.1,7.2,5.1 +20090213,11.2,-4.7,21.0,3.0,0.9 +20090214,12.4,1.6,21.1,2.8,2.8 +20090215,9.3,1.2,14.4,5.0,2.1 +20090216,7.0,-2.3,11.1,2.0,2.9 +20090217,3.6,-9.1,12.2,-3.3,2.5 +20090218,6.6,2.2,11.1,-2.1,2.3 +20090219,9.8,1.1,13.0,5.6,4.2 +20090220,1.7,-13.4,12.8,-4.4,2.5 +20090221,3.3,-11.8,12.2,-4.4,1.7 +20090222,6.7,-8.2,12.2,-3.8,3.8 +20090223,1.7,-11.7,9.4,-3.3,3.4 +20090224,1.9,-11.0,9.4,-5.0,2.1 +20090225,6.3,-6.7,14.0,2.8,1.6 +20090226,11.4,3.6,17.8,2.8,1.7 +20090227,13.0,8.9,17.8,7.8,4.1 +20090228,11.7,10.6,13.0,9.0,3.0 +20090301,3.8,2.2,9.4,1.0,6.6 +20090302,-0.3,-8.2,4.4,-3.3,3.1 +20090303,-1.9,-12.6,3.9,-7.2,2.3 +20090304,1.8,-8.8,10.0,-6.7,2.1 +20090305,6.6,-6.4,16.1,-2.7,3.0 +20090306,11.9,3.2,20.0,-1.0,4.5 +20090307,17.3,9.3,26.1,6.1,4.1 +20090308,17.7,9.3,26.1,10.6,5.9 +20090309,21.1,10.1,29.4,12.2,4.3 +20090310,19.1,3.4,23.9,14.0,2.8 +20090311,19.4,10.1,28.9,11.1,2.9 +20090312,13.8,0.3,28.9,10.6,4.4 +20090313,7.9,-3.1,15.0,5.0,5.1 +20090314,4.7,2.2,6.1,3.0,3.5 +20090315,7.1,5.1,11.0,5.6,1.7 +20090316,9.9,8.3,12.0,8.0,1.2 +20090317,13.9,7.9,21.1,8.3,2.2 +20090318,12.8,5.8,21.1,5.6,1.7 +20090319,14.4,4.8,24.4,5.6,2.1 +20090320,11.7,-1.9,24.4,5.6,3.6 +20090321,9.2,-4.7,17.2,4.4,2.8 +20090322,10.3,0.0,20.0,1.7,1.5 +20090323,14.4,1.5,22.2,1.7,2.6 +20090324,14.4,4.2,22.2,7.8,2.6 +20090325,10.1,6.4,17.0,6.0,4.0 +20090326,7.9,6.4,13.9,5.6,2.7 +20090327,13.4,12.2,16.7,5.6,2.0 +20090328,15.9,14.1,16.7,12.2,2.5 +20090329,13.5,7.6,17.0,8.9,6.8 +20090330,10.3,-1.1,20.0,2.2,2.9 +20090331,12.7,2.9,20.0,2.2,1.7 +20090401,14.3,9.2,21.0,11.0,2.0 +20090402,16.9,14.4,20.6,10.6,2.4 +20090403,16.8,9.9,22.0,11.7,5.9 +20090404,14.4,1.6,24.4,5.6,2.1 +20090405,17.1,5.3,26.1,5.6,2.8 +20090406,15.6,6.7,26.1,7.8,6.2 +20090407,6.3,-4.4,17.2,2.8,3.8 +20090408,7.9,-4.1,18.0,1.0,4.7 +20090409,14.7,-0.1,23.9,1.1,3.5 +20090410,16.1,9.6,21.1,14.0,3.8 +20090411,15.2,10.1,21.0,9.0,3.4 +20090412,13.2,2.5,21.1,6.7,2.5 +20090413,12.7,6.2,20.0,6.7,2.7 +20090414,13.1,10.2,21.7,9.4,2.9 +20090415,14.8,5.5,21.7,7.8,2.2 +20090416,13.8,3.3,21.1,7.8,4.6 +20090417,13.9,0.4,22.2,6.1,1.4 +20090418,16.6,3.1,25.0,6.1,2.8 +20090419,17.0,6.4,25.0,7.2,2.7 +20090420,17.6,12.3,22.2,13.3,5.1 +20090421,14.6,4.6,21.0,6.0,3.6 +20090422,13.7,-2.2,21.7,4.4,3.8 +20090423,17.8,2.8,28.3,4.4,2.4 +20090424,21.9,9.9,31.7,7.8,2.2 +20090425,23.7,11.8,31.7,12.8,2.4 +20090426,22.5,11.8,31.1,14.4,2.9 +20090427,21.0,11.9,28.9,13.3,2.4 +20090428,19.6,11.8,27.8,13.3,2.6 +20090429,20.5,11.9,27.8,13.3,2.5 +20090430,19.9,12.9,27.8,13.9,2.4 +20090501,21.6,13.9,27.2,17.0,4.1 +20090502,21.6,14.6,27.8,16.1,4.2 +20090503,21.1,17.1,27.8,16.1,4.5 +20090504,20.0,15.3,26.7,17.2,5.2 +20090505,20.1,16.8,27.2,16.1,2.6 +20090506,20.1,18.0,27.2,17.2,2.9 +20090507,21.3,16.9,28.0,17.0,4.5 +20090508,20.1,16.3,27.8,15.0,2.8 +20090509,23.9,18.8,28.3,15.0,5.0 +20090510,22.4,14.1,28.3,17.2,2.2 +20090511,17.9,11.7,24.4,14.0,3.8 +20090512,15.6,8.9,23.9,7.8,1.1 +20090513,17.6,10.0,24.4,7.8,1.4 +20090514,21.1,15.3,27.2,11.7,1.6 +20090515,22.3,17.3,28.3,16.7,1.9 +20090516,21.3,17.9,28.3,17.8,2.6 +20090517,19.4,16.2,23.0,13.0,2.5 +20090518,13.7,5.5,22.8,10.0,4.4 +20090519,14.1,1.4,21.7,7.2,4.7 +20090520,18.1,3.4,25.6,7.2,5.2 +20090521,20.6,10.4,25.6,12.2,3.9 +20090522,21.4,14.2,28.0,16.0,2.4 +20090523,21.1,16.5,27.8,16.1,2.2 +20090524,21.1,18.3,25.6,17.2,2.2 +20090525,22.9,18.8,28.9,18.9,0.9 +20090526,22.7,19.1,28.9,20.0,1.9 +20090527,22.2,18.9,27.2,20.0,2.4 +20090528,23.0,19.1,28.3,19.0,2.2 +20090529,22.8,17.1,29.0,17.0,3.4 +20090530,22.7,12.1,29.4,15.6,2.0 +20090531,24.3,14.1,32.8,15.6,2.6 +20090601,24.7,12.8,31.0,18.0,2.7 +20090602,25.2,16.4,32.2,17.8,1.7 +20090603,25.7,17.6,32.2,17.8,3.2 +20090604,22.3,18.2,31.7,20.0,1.7 +20090605,21.8,18.3,27.8,18.9,2.1 +20090606,22.1,16.9,27.8,18.9,2.5 +20090607,22.7,16.9,28.3,18.9,2.1 +20090608,24.2,17.2,30.0,18.0,1.1 +20090609,25.9,18.2,32.2,18.3,0.9 +20090610,24.6,17.9,32.2,20.0,1.7 +20090611,22.8,18.8,30.0,18.0,2.0 +20090612,24.1,19.1,32.2,18.3,2.3 +20090613,24.9,18.2,32.2,18.9,1.4 +20090614,25.1,18.7,30.6,18.9,1.1 +20090615,24.6,19.3,31.1,20.0,1.4 +20090616,23.5,20.2,31.1,20.0,1.0 +20090617,23.2,20.0,30.0,20.0,2.6 +20090618,24.3,20.5,32.2,18.9,1.8 +20090619,25.8,20.0,33.9,18.9,1.7 +20090620,28.3,20.4,36.0,22.0,2.2 +20090621,27.2,20.3,35.6,21.7,1.7 +20090622,27.8,19.1,33.0,24.0,2.2 +20090623,26.7,17.8,32.8,20.6,2.2 +20090624,26.9,16.9,32.2,20.6,1.5 +20090625,26.8,17.1,33.0,21.0,0.9 +20090626,27.1,19.6,33.9,20.0,1.3 +20090627,26.2,21.3,35.0,20.6,1.3 +20090628,27.6,18.6,35.0,21.1,1.4 +20090629,27.9,16.6,33.3,21.1,1.5 +20090630,25.6,12.2,33.0,17.8,2.8 +20090701,25.6,13.3,33.9,17.2,2.8 +20090702,25.7,13.9,33.9,17.2,1.7 +20090703,24.4,13.2,32.2,17.2,2.1 +20090704,24.6,13.1,30.0,18.0,1.9 +20090705,24.3,17.1,31.7,18.3,1.5 +20090706,25.9,19.8,33.3,20.0,3.3 +20090707,25.4,18.8,33.3,21.7,2.5 +20090708,24.7,17.8,30.6,21.1,2.3 +20090709,23.0,18.8,30.0,20.6,1.5 +20090710,22.7,17.3,28.9,18.9,1.7 +20090711,24.9,17.8,31.1,18.9,2.8 +20090712,27.0,18.2,33.3,19.4,3.3 +20090713,25.8,19.8,33.3,20.6,2.5 +20090714,25.6,16.7,31.0,21.0,2.0 +20090715,26.4,16.7,33.3,18.3,2.0 +20090716,27.6,19.4,34.4,18.3,2.7 +20090717,27.3,20.6,34.4,21.7,3.2 +20090718,23.4,14.7,33.9,17.8,1.4 +20090719,23.4,12.0,29.4,17.8,1.9 +20090720,23.3,13.3,29.4,18.3,2.0 +20090721,22.9,15.4,29.0,18.0,2.7 +20090722,23.7,18.8,29.4,18.3,2.3 +20090723,24.9,19.9,31.1,20.6,1.8 +20090724,26.0,15.8,32.8,20.0,1.4 +20090725,26.6,15.4,34.4,18.9,1.6 +20090726,27.8,15.9,35.6,18.9,2.6 +20090727,24.9,19.3,35.6,20.6,2.7 +20090728,25.5,19.9,33.3,20.0,1.8 +20090729,24.3,20.5,33.3,20.0,4.4 +20090730,26.4,20.5,31.1,22.2,3.3 +20090731,26.2,21.2,31.7,22.2,4.5 +20090801,26.3,20.8,32.8,21.7,2.2 +20090802,25.4,21.1,32.8,21.7,3.0 +20090803,26.1,18.6,33.3,18.9,1.3 +20090804,26.8,16.7,35.6,18.9,1.6 +20090805,24.1,18.8,35.6,18.9,2.2 +20090806,25.4,17.5,35.6,19.4,1.4 +20090807,26.3,16.6,33.0,20.0,1.4 +20090808,26.9,18.4,33.9,19.4,2.1 +20090809,28.7,18.2,36.1,20.6,2.8 +20090810,29.8,17.8,37.8,22.2,2.4 +20090811,29.4,19.3,37.8,22.2,1.7 +20090812,23.2,20.9,26.1,21.0,0.8 +20090813,23.4,19.3,30.0,18.0,1.1 +20090814,25.0,18.8,31.1,18.3,2.0 +20090815,25.2,18.6,31.1,20.0,2.5 +20090816,25.4,18.7,31.7,20.6,1.3 +20090817,24.4,19.1,31.1,19.0,1.1 +20090818,26.3,18.9,33.3,19.4,1.8 +20090819,26.2,19.9,33.3,20.6,2.6 +20090820,26.0,20.9,33.0,21.7,2.6 +20090821,25.3,20.6,32.8,20.6,2.5 +20090822,26.3,19.3,32.8,20.6,2.5 +20090823,24.3,16.6,32.2,18.9,2.7 +20090824,24.2,17.4,30.6,18.9,3.0 +20090825,25.3,17.5,31.7,19.4,2.6 +20090826,25.9,17.3,33.3,18.9,1.5 +20090827,26.2,18.3,33.3,18.9,1.0 +20090828,23.9,19.2,32.8,19.4,1.6 +20090829,23.9,18.6,32.2,18.9,1.3 +20090830,24.9,18.4,32.2,18.9,1.3 +20090831,20.2,17.8,30.6,18.9,3.0 +20090901,20.3,15.6,24.0,17.0,3.9 +20090902,20.2,12.9,26.1,15.0,3.9 +20090903,20.6,12.2,28.0,14.0,3.0 +20090904,22.6,13.6,30.0,14.4,1.3 +20090905,24.1,15.2,32.2,16.7,1.4 +20090906,24.7,14.8,32.2,17.8,2.2 +20090907,23.7,15.2,31.1,18.3,2.6 +20090908,23.1,16.4,31.1,17.2,1.4 +20090909,20.7,16.9,31.1,16.7,2.5 +20090910,18.9,16.9,26.7,16.7,2.7 +20090911,20.6,16.2,27.0,17.8,1.9 +20090912,22.6,17.2,30.0,16.7,1.1 +20090913,23.3,15.2,30.0,16.7,2.3 +20090914,23.4,16.9,29.4,18.3,1.2 +20090915,23.1,18.6,29.4,18.3,1.2 +20090916,22.3,19.3,27.8,19.4,1.1 +20090917,21.4,19.1,24.4,19.0,3.0 +20090918,21.0,19.6,24.4,19.4,2.2 +20090919,22.0,20.7,26.1,20.0,1.3 +20090920,20.7,20.0,22.2,19.0,3.3 +20090921,20.9,19.6,26.0,19.0,2.8 +20090922,21.6,18.5,27.2,18.9,3.1 +20090923,22.2,19.2,28.3,18.9,2.1 +20090924,24.1,20.2,30.0,18.9,0.7 +20090925,24.6,21.1,31.0,21.7,0.7 +20090926,18.0,17.5,31.1,15.6,4.0 +20090927,19.4,15.7,26.1,15.6,2.9 +20090928,19.9,14.4,28.3,12.8,4.4 +20090929,16.6,4.9,28.3,8.3,2.3 +20090930,15.9,7.4,22.8,8.3,1.9 +20091001,15.7,9.0,22.8,9.4,2.0 +20091002,16.4,12.1,23.3,9.4,2.2 +20091003,18.6,11.3,24.4,11.7,2.9 +20091004,16.1,7.2,24.4,10.6,1.1 +20091005,13.9,12.8,22.8,10.6,2.2 +20091006,16.6,14.4,20.0,12.2,1.3 +20091007,21.4,16.2,28.9,14.4,3.7 +20091008,16.7,9.3,28.9,8.9,1.3 +20091009,20.3,16.2,26.7,8.9,2.4 +20091010,22.6,19.4,26.7,17.2,2.7 +20091011,18.1,13.4,26.1,15.0,3.2 +20091012,14.1,13.2,20.6,13.9,2.5 +20091013,15.6,13.2,23.3,11.7,1.3 +20091014,14.3,13.3,23.3,8.9,2.9 +20091015,9.1,8.2,17.8,7.8,2.8 +20091016,13.2,11.6,17.2,7.8,2.3 +20091017,10.1,7.9,14.0,8.0,2.9 +20091018,8.1,1.0,13.3,3.9,2.5 +20091019,7.2,-0.7,16.1,0.0,1.2 +20091020,10.9,3.9,21.1,0.0,0.9 +20091021,12.3,5.5,23.0,3.9,0.8 +20091022,13.9,9.2,23.0,6.0,1.0 +20091023,17.9,15.2,24.4,6.1,2.3 +20091024,20.1,15.8,24.4,13.3,5.9 +20091025,10.9,5.1,16.0,6.0,2.4 +20091026,12.3,5.4,18.3,6.1,3.6 +20091027,12.3,9.4,18.3,10.0,2.7 +20091028,15.1,12.6,22.2,11.7,2.3 +20091029,15.4,11.9,22.2,10.0,1.8 +20091030,14.6,12.2,22.2,10.0,2.1 +20091031,16.1,15.3,21.0,13.0,1.6 +20091101,14.3,11.2,20.6,10.6,3.4 +20091102,12.9,8.6,18.3,8.9,2.3 +20091103,13.4,6.2,22.8,5.6,0.9 +20091104,12.5,2.5,22.8,5.6,2.4 +20091105,12.2,2.5,19.4,6.1,1.5 +20091106,10.2,-1.4,19.4,2.8,1.6 +20091107,9.7,2.9,19.4,1.1,1.6 +20091108,13.8,6.2,24.4,2.2,1.8 +20091109,12.8,7.2,24.4,6.7,0.9 +20091110,14.1,11.0,18.3,7.2,3.8 +20091111,12.6,11.6,14.0,11.0,8.5 +20091112,12.7,6.7,17.2,10.6,6.4 +20091113,14.7,7.7,22.2,8.9,2.7 +20091114,14.8,10.1,23.3,7.2,0.9 +20091115,15.7,9.3,24.4,7.2,1.1 +20091116,13.4,7.0,24.4,5.0,0.9 +20091117,12.6,8.5,21.7,6.1,1.9 +20091118,12.8,10.3,18.3,7.2,4.5 +20091119,13.3,11.6,18.9,10.6,2.2 +20091120,12.1,4.9,18.9,5.0,1.5 +20091121,10.7,4.1,18.3,5.0,1.7 +20091122,8.0,4.8,15.6,5.6,2.6 +20091123,8.9,7.8,11.1,5.6,4.3 +20091124,10.9,8.7,12.0,10.0,0.5 +20091125,11.0,8.5,16.7,8.9,2.0 +20091126,8.4,3.7,16.7,0.6,1.6 +20091127,6.5,-2.8,15.6,-0.6,2.6 +20091128,8.8,-5.1,17.2,0.0,2.6 +20091129,11.1,3.1,20.0,3.3,2.9 +20091130,12.6,6.4,20.0,6.1,4.2 +20091201,6.2,-1.2,14.4,-1.7,1.4 +20091202,6.9,3.9,12.2,-1.0,3.9 +20091203,10.8,6.6,15.0,4.4,4.1 +20091204,5.6,1.3,15.0,0.6,1.6 +20091205,6.8,1.6,8.9,0.6,3.4 +20091206,1.0,-4.0,8.9,-4.4,1.3 +20091207,3.6,-0.8,11.7,-4.4,1.1 +20091208,5.1,3.2,11.7,-1.0,2.3 +20091209,7.4,3.4,18.3,2.8,5.2 +20091210,8.2,-6.9,18.3,2.2,4.1 +20091211,0.6,-15.6,11.1,-2.8,3.2 +20091212,0.4,-10.6,4.4,-2.8,1.2 +20091213,3.1,1.5,8.3,-2.7,2.9 +20091214,7.5,6.9,13.9,0.6,1.1 +20091215,13.2,12.2,16.1,4.4,2.5 +20091216,7.4,-4.6,16.1,2.2,3.7 +20091217,3.2,-5.4,9.0,-2.0,1.0 +20091218,2.4,-2.4,8.9,-2.7,4.8 +20091219,3.0,0.8,9.4,0.0,3.4 +20091220,3.2,-2.0,9.4,-2.2,2.0 +20091221,1.8,-3.5,11.1,-5.0,0.9 +20091222,3.2,-2.2,11.1,-3.8,1.2 +20091223,3.7,-0.9,10.6,-2.7,0.3 +20091224,5.6,-0.2,11.1,-1.6,3.0 +20091225,4.3,2.4,7.8,1.0,5.7 +20091226,3.2,1.3,8.0,-2.0,1.1 +20091227,4.1,-3.9,12.0,-2.2,3.5 +20091228,4.7,-4.7,11.7,-2.1,3.8 +20091229,2.1,-7.8,8.3,-3.0,3.0 +20091230,1.1,-8.1,5.0,-3.0,1.0 +20091231,2.3,0.6,5.6,-2.7,0.4 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/data/72315003812.wtmp b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/data/72315003812.wtmp new file mode 100644 index 00000000..11ceddfe --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/data/72315003812.wtmp @@ -0,0 +1,10230 @@ +This file is prepared for OpenMI Evaporation component with a Python code. (mehmetbercan@gmail.com)(CEE/USC, SC USA) +Elv:,661.4,Lat:,35.432,Lon:,-82.538,StationName:,ASHEVILLEMUNICIPAL,State:,NC,StationID:,72315003812 +yearMoDa,Temp,Tdew,Tmax,Tmin,WndSpd +19820101,3.7,2.3,9.4,0.5,3.9 +19820102,1.9,-1.1,6.7,-2.8,2.9 +19820103,3.4,1.8,6.7,0.6,3.5 +19820104,8.3,2.5,13.3,4.4,5.1 +19820105,1.9,-6.7,10.0,-2.8,5.6 +19820106,6.7,-4.1,15.0,1.7,4.3 +19820107,10.9,5.4,18.9,6.1,3.9 +19820108,0.6,-5.3,9.4,-3.3,8.5 +19820109,-3.1,-8.5,6.1,-8.9,5.0 +19820110,-11.5,-19.4,-3.9,-17.2,9.0 +19820111,-16.7,-22.6,-9.4,-21.1,8.2 +19820112,-9.5,-12.1,-1.7,-13.3,5.5 +19820113,-3.4,-4.8,1.1,-4.4,3.9 +19820114,-1.3,-3.1,2.2,-6.7,5.4 +19820115,-5.4,-7.0,5.0,-10.6,4.3 +19820116,-1.8,-3.3,6.1,-6.7,3.7 +19820117,-11.7,-17.3,-2.2,-21.1,7.5 +19820118,-6.7,-11.4,2.8,-13.9,2.2 +19820119,4.6,2.9,11.1,1.7,2.8 +19820120,3.3,3.3,7.8,0.0,2.0 +19820121,7.2,5.8,15.6,3.3,3.4 +19820122,3.8,3.4,11.1,0.6,4.2 +19820123,2.2,1.1,8.9,-1.1,4.0 +19820124,1.1,-10.3,7.8,-3.3,6.9 +19820125,-0.7,-8.6,9.4,-5.0,3.5 +19820126,-4.4,-10.3,5.6,-10.0,9.5 +19820127,-7.7,-12.1,1.1,-13.3,3.5 +19820128,-1.6,-7.4,5.0,-7.2,3.2 +19820129,1.2,-2.9,10.0,-3.9,2.9 +19820130,2.9,-2.1,11.7,-1.7,3.2 +19820131,9.3,7.3,12.8,6.1,5.9 +19820201,3.3,-0.9,10.0,-2.2,6.0 +19820202,1.7,-1.2,5.6,0.0,2.9 +19820203,4.2,4.1,9.4,2.8,3.0 +19820204,7.4,4.4,13.3,2.8,4.1 +19820205,5.9,4.2,9.4,2.8,3.1 +19820206,5.1,3.4,8.9,-0.6,6.1 +19820207,-2.9,-8.4,6.7,-10.0,4.6 +19820208,-0.3,-5.9,10.6,-7.2,2.1 +19820209,7.4,3.5,12.8,5.6,3.4 +19820210,-0.2,-4.0,6.1,-3.9,7.5 +19820211,3.6,-2.2,11.7,0.0,2.4 +19820212,0.7,-1.6,5.6,-4.4,2.2 +19820213,1.7,0.3,3.3,0.6,5.8 +19820214,0.2,-3.8,12.8,-8.3,3.3 +19820215,7.8,4.1,12.2,5.0,4.1 +19820216,9.8,9.6,12.2,8.9,1.4 +19820217,11.9,11.4,15.6,10.0,2.8 +19820218,5.0,5.0,13.3,2.2,3.8 +19820219,4.1,2.2,10.0,1.1,5.5 +19820220,7.1,1.0,18.9,0.6,3.5 +19820221,10.9,-0.4,14.4,7.8,6.7 +19820222,4.6,-2.8,9.4,1.7,10.2 +19820223,7.4,-0.4,23.9,-2.2,3.7 +19820224,14.6,4.6,24.4,5.6,3.3 +19820225,6.9,2.8,18.3,1.7,7.5 +19820226,-0.2,-5.4,2.8,-2.8,3.1 +19820227,-0.7,-0.7,2.2,-3.3,1.7 +19820228,2.7,1.9,5.6,1.1,2.7 +19820301,3.8,2.0,10.6,0.6,2.8 +19820302,5.9,0.6,18.3,-2.8,2.5 +19820303,8.8,1.7,19.4,2.2,2.0 +19820304,7.6,5.4,13.3,3.9,4.7 +19820305,10.9,7.8,23.3,4.4,3.3 +19820306,7.7,7.1,12.2,5.0,3.8 +19820307,4.5,4.2,7.8,0.0,5.9 +19820308,0.3,-6.1,9.4,-3.3,7.2 +19820309,5.7,-2.9,16.1,-2.8,2.7 +19820310,7.3,0.6,17.2,0.6,2.9 +19820311,8.4,4.5,16.7,-0.6,3.0 +19820312,13.1,8.4,23.3,3.9,2.7 +19820313,15.1,12.3,23.9,11.1,2.8 +19820314,10.3,5.4,15.0,5.6,4.7 +19820315,8.8,6.9,12.8,6.7,4.0 +19820316,6.3,6.2,12.8,3.9,4.4 +19820317,12.9,11.3,24.4,6.7,2.7 +19820318,14.5,11.4,26.1,6.7,2.3 +19820319,15.1,12.8,23.9,8.3,2.3 +19820320,18.3,15.2,25.0,10.6,2.1 +19820321,13.9,13.3,20.0,11.1,3.6 +19820322,12.2,2.6,19.4,6.1,6.8 +19820323,9.4,0.6,16.1,2.8,4.3 +19820324,9.3,4.7,15.0,3.3,2.8 +19820325,13.3,9.6,22.2,8.9,2.5 +19820326,6.5,-0.2,16.7,1.1,8.3 +19820327,1.5,-7.9,6.1,-2.8,7.4 +19820328,1.3,-10.4,10.0,-5.0,3.9 +19820329,2.3,-6.1,12.2,-7.2,2.2 +19820330,11.2,5.3,18.3,5.0,3.3 +19820331,15.4,12.8,21.1,12.2,4.8 +19820401,15.3,6.1,22.8,9.4,4.2 +19820402,9.6,2.7,17.2,1.7,2.5 +19820403,17.1,9.1,23.3,12.2,6.1 +19820404,13.7,-8.8,19.4,8.3,8.0 +19820405,7.9,3.4,14.4,3.3,3.1 +19820406,5.4,-0.4,12.2,0.6,9.6 +19820407,2.2,-10.1,13.9,-3.9,7.3 +19820408,3.2,-1.3,7.8,1.1,3.3 +19820409,5.7,1.0,11.7,1.7,5.1 +19820410,5.4,-2.7,14.4,-0.6,4.9 +19820411,7.8,-2.1,16.7,-0.6,4.7 +19820412,9.8,0.4,22.2,0.0,2.5 +19820413,16.7,5.6,23.3,11.1,5.5 +19820414,14.7,12.1,23.3,9.4,2.8 +19820415,14.7,14.5,16.7,12.8,1.9 +19820416,15.8,14.6,21.7,13.9,3.0 +19820417,17.7,16.2,21.1,15.6,2.9 +19820418,13.3,3.6,20.6,6.7,6.2 +19820419,11.7,5.2,17.8,7.2,2.4 +19820420,13.3,9.1,23.3,10.0,2.2 +19820421,15.4,8.6,20.0,11.1,4.6 +19820422,11.5,1.1,15.0,8.9,6.6 +19820423,10.2,-5.3,18.9,3.3,4.3 +19820424,10.1,-2.7,21.7,-1.7,2.6 +19820425,10.2,4.9,15.6,5.0,1.9 +19820426,15.5,13.6,23.9,11.1,2.2 +19820427,14.8,13.4,20.6,11.7,2.6 +19820428,14.3,9.0,21.1,9.4,5.6 +19820429,12.9,6.1,18.3,8.3,3.7 +19820430,12.3,3.4,20.0,3.9,2.4 +19820501,12.2,3.6,23.3,1.7,2.1 +19820502,14.4,7.8,23.9,5.6,2.0 +19820503,16.7,9.8,23.9,8.9,2.7 +19820504,16.9,8.0,25.0,7.8,2.3 +19820505,16.3,8.6,26.1,6.7,1.9 +19820506,18.0,12.7,25.6,9.4,2.3 +19820507,18.1,12.1,23.9,10.0,3.1 +19820508,17.7,13.1,22.8,13.9,4.5 +19820509,16.4,8.8,23.3,9.4,6.0 +19820510,17.2,8.1,27.2,7.2,3.4 +19820511,18.9,8.7,28.3,8.3,2.8 +19820512,18.9,10.9,29.4,8.3,2.4 +19820513,20.8,13.3,30.6,11.1,2.7 +19820514,21.1,13.5,30.0,11.7,2.3 +19820515,21.7,14.7,27.2,15.0,2.6 +19820516,19.7,15.6,29.4,13.9,2.2 +19820517,18.6,15.3,28.3,12.2,2.4 +19820518,19.4,16.2,26.1,13.3,2.3 +19820519,18.9,16.6,26.7,15.6,1.4 +19820520,17.7,16.6,22.8,15.0,1.7 +19820521,20.8,17.2,28.9,15.6,2.1 +19820522,20.1,17.7,27.2,14.4,1.9 +19820523,20.0,18.1,26.1,16.7,2.3 +19820524,19.1,17.8,23.3,16.7,1.7 +19820525,21.2,18.2,27.8,17.2,2.1 +19820526,21.4,19.5,25.6,18.3,2.2 +19820527,20.8,19.2,26.7,16.7,2.4 +19820528,20.5,19.1,27.2,16.1,2.6 +19820529,20.9,19.1,29.4,16.1,2.2 +19820530,23.8,20.0,31.7,17.2,2.1 +19820531,21.2,18.6,29.4,15.6,2.1 +19820601,21.4,18.8,27.8,17.2,2.6 +19820602,20.3,17.3,26.1,15.0,3.8 +19820603,21.6,18.1,28.3,15.0,2.1 +19820604,20.6,19.9,23.9,18.9,2.4 +19820605,21.6,18.3,26.7,18.3,4.1 +19820606,18.9,14.1,25.0,12.8,5.4 +19820607,20.4,14.4,27.8,14.4,5.1 +19820608,22.1,16.9,30.6,15.0,2.8 +19820609,23.4,18.5,31.1,16.1,2.1 +19820610,20.9,19.4,28.3,16.7,2.1 +19820611,22.0,17.9,28.3,17.2,3.1 +19820612,20.8,19.3,26.1,18.3,2.6 +19820613,20.5,18.5,25.6,17.8,3.2 +19820614,20.8,16.2,26.7,15.0,3.0 +19820615,21.4,17.7,27.8,15.0,2.5 +19820616,23.0,18.8,28.3,17.2,3.4 +19820617,21.4,18.7,25.0,18.3,2.0 +19820618,21.1,18.9,25.0,18.3,2.1 +19820619,21.9,16.8,28.3,15.6,1.9 +19820620,21.9,16.1,28.3,17.8,3.7 +19820621,20.1,14.0,27.8,14.4,4.3 +19820622,21.3,15.9,25.6,17.8,2.5 +19820623,20.3,15.7,27.8,13.9,2.0 +19820624,20.8,15.8,25.6,16.1,2.0 +19820625,20.9,17.8,23.9,18.3,2.5 +19820626,21.5,17.9,27.8,16.7,2.0 +19820627,21.2,18.3,24.4,18.3,1.6 +19820628,21.7,18.9,27.8,18.9,1.4 +19820629,22.0,19.0,27.8,19.4,2.5 +19820630,23.1,18.1,29.4,16.7,4.2 +19820701,22.7,14.9,28.3,18.3,3.8 +19820702,20.8,15.4,27.2,15.0,2.3 +19820703,23.4,17.6,32.2,18.3,3.0 +19820704,24.0,17.8,30.0,19.4,3.7 +19820705,23.8,18.7,28.9,18.3,3.4 +19820706,22.1,18.3,25.6,18.9,2.6 +19820707,20.7,17.6,27.8,15.0,1.5 +19820708,22.8,18.4,28.3,18.3,2.6 +19820709,22.7,19.0,26.7,18.9,2.7 +19820710,22.4,19.8,27.2,18.3,2.1 +19820711,22.1,20.4,27.2,20.0,1.5 +19820712,22.8,20.2,28.9,18.3,2.4 +19820713,22.3,19.8,28.9,19.4,2.2 +19820714,21.9,19.4,25.6,19.4,1.6 +19820715,22.6,19.7,28.9,18.9,1.7 +19820716,22.4,19.8,29.4,18.9,2.2 +19820717,22.4,20.2,27.8,19.4,2.1 +19820718,22.2,20.6,27.2,19.4,1.6 +19820719,23.1,19.9,29.4,18.9,3.3 +19820720,24.3,20.4,29.4,20.0,3.0 +19820721,23.7,19.9,29.4,18.3,2.0 +19820722,23.2,21.3,30.0,20.0,3.0 +19820723,21.2,19.6,25.6,20.0,1.7 +19820724,22.0,19.9,27.8,18.9,1.9 +19820725,23.1,20.6,28.3,20.0,1.0 +19820726,24.1,21.3,31.1,19.4,2.1 +19820727,23.7,21.1,28.9,18.3,1.4 +19820728,23.8,21.7,28.9,21.1,2.0 +19820729,22.1,20.8,26.1,19.4,1.7 +19820730,22.8,21.3,26.7,20.0,3.5 +19820731,21.7,21.3,24.4,20.0,1.9 +19820801,21.8,18.3,28.3,18.3,2.9 +19820802,21.3,16.9,27.8,16.1,3.1 +19820803,21.8,17.5,28.9,16.7,4.1 +19820804,23.4,19.3,30.0,17.2,2.8 +19820805,23.2,20.7,27.2,20.0,2.3 +19820806,21.8,19.2,28.3,16.7,2.3 +19820807,21.7,19.8,26.7,17.2,0.9 +19820808,22.8,20.8,28.3,20.0,3.1 +19820809,22.9,20.4,26.7,20.0,2.0 +19820810,21.8,19.9,27.8,18.9,1.8 +19820811,22.0,20.7,26.7,20.0,2.4 +19820812,22.1,19.4,27.8,18.3,3.2 +19820813,21.4,19.6,23.3,19.4,2.9 +19820814,20.9,18.6,26.7,17.8,2.3 +19820815,21.1,18.3,27.8,17.2,1.4 +19820816,21.4,18.8,26.1,16.7,2.2 +19820817,20.8,18.9,23.9,17.8,2.6 +19820818,20.8,18.6,26.1,16.1,2.3 +19820819,20.2,17.7,27.8,15.6,2.0 +19820820,21.9,18.2,29.4,16.1,2.6 +19820821,21.8,17.6,28.3,17.2,3.4 +19820822,18.9,14.7,24.4,12.2,2.8 +19820823,19.5,16.2,28.3,13.9,1.4 +19820824,22.0,19.9,28.3,17.8,2.5 +19820825,23.3,20.4,28.9,20.0,3.1 +19820826,19.7,16.5,25.6,14.4,2.5 +19820827,20.0,17.4,28.9,14.4,2.4 +19820828,22.5,19.8,27.8,19.4,3.5 +19820829,19.0,15.9,23.3,15.6,2.4 +19820830,19.4,15.7,27.8,15.6,2.8 +19820831,20.5,19.2,22.2,18.9,3.3 +19820901,21.1,20.8,23.3,19.4,2.3 +19820902,21.4,20.5,27.8,18.9,2.0 +19820903,21.3,19.1,27.8,16.7,3.3 +19820904,19.0,14.1,24.4,14.4,3.3 +19820905,16.4,13.2,23.9,10.0,0.8 +19820906,17.8,14.2,26.1,11.7,2.1 +19820907,18.4,14.2,27.2,11.7,1.3 +19820908,18.2,15.1,25.6,12.2,1.0 +19820909,16.9,14.4,22.8,12.2,1.1 +19820910,17.3,15.7,23.3,14.4,1.3 +19820911,17.9,17.4,19.4,16.7,1.3 +19820912,18.3,17.4,22.2,15.6,1.6 +19820913,20.3,19.4,23.3,18.3,1.6 +19820914,21.8,20.1,27.2,18.9,2.2 +19820915,21.4,19.0,27.8,15.0,2.5 +19820916,22.1,18.9,27.8,17.8,4.0 +19820917,19.1,15.2,28.3,11.1,1.5 +19820918,18.6,16.9,26.1,13.9,0.9 +19820919,17.8,17.8,19.4,15.0,0.7 +19820920,17.2,15.4,19.4,15.6,3.0 +19820921,15.4,12.3,20.6,11.1,2.6 +19820922,12.4,7.0,16.1,8.9,6.4 +19820923,10.7,5.4,20.6,3.3,2.5 +19820924,11.5,7.4,21.7,5.0,0.5 +19820925,13.4,10.9,19.4,8.9,0.7 +19820926,13.7,12.4,15.0,12.2,1.0 +19820927,13.8,11.0,21.7,8.3,1.7 +19820928,14.1,10.5,23.3,7.2,1.3 +19820929,14.6,11.8,25.0,7.8,1.0 +19820930,16.2,13.8,23.3,10.6,0.8 +19821001,16.4,13.6,24.4,10.6,2.5 +19821002,16.2,12.6,26.1,9.4,1.2 +19821003,16.1,13.6,25.0,8.9,0.9 +19821004,18.2,16.3,23.9,14.4,0.7 +19821005,19.2,16.7,26.1,15.0,0.6 +19821006,18.6,16.1,25.6,12.2,1.1 +19821007,16.4,16.0,21.1,12.2,0.7 +19821008,18.0,17.5,22.8,16.1,0.4 +19821009,19.6,18.7,22.8,17.8,0.2 +19821010,18.3,18.0,22.8,15.0,1.3 +19821011,14.1,14.1,16.1,12.8,2.5 +19821012,14.6,13.5,17.8,13.3,1.0 +19821013,15.5,15.2,20.0,13.9,1.9 +19821014,13.7,10.1,18.3,9.4,5.8 +19821015,12.0,4.8,21.1,7.2,4.9 +19821016,13.0,2.1,16.1,7.8,6.5 +19821017,8.3,0.1,17.2,0.6,2.4 +19821018,7.5,2.4,15.0,2.2,1.4 +19821019,6.7,3.8,16.1,-1.1,1.2 +19821020,14.3,11.8,21.1,10.6,2.1 +19821021,13.3,10.9,16.1,10.0,4.3 +19821022,9.3,5.2,14.4,4.4,3.6 +19821023,7.4,3.6,13.9,2.2,0.8 +19821024,5.1,-1.3,9.4,1.1,1.0 +19821025,5.4,2.4,7.8,3.9,5.8 +19821026,8.9,-1.5,18.3,1.7,5.1 +19821027,6.9,-0.4,18.9,-1.7,0.9 +19821028,7.6,1.2,19.4,-1.1,0.8 +19821029,8.3,2.7,20.0,-0.6,0.8 +19821030,9.1,3.5,22.2,0.0,0.7 +19821031,11.5,7.3,23.3,3.3,0.8 +19821101,14.4,10.5,25.0,7.8,1.0 +19821102,15.2,12.2,24.4,7.8,1.1 +19821103,15.9,15.6,17.8,14.4,1.7 +19821104,9.6,8.9,15.0,2.2,6.4 +19821105,1.9,-5.2,7.2,-1.7,7.6 +19821106,2.4,-7.3,11.1,-2.8,5.1 +19821107,2.9,-6.8,15.6,-5.6,1.3 +19821108,5.3,-3.6,18.9,-4.4,1.4 +19821109,7.6,0.7,20.6,-0.6,1.7 +19821110,8.7,2.8,20.0,0.0,0.9 +19821111,8.6,4.7,15.6,2.2,1.9 +19821112,14.3,12.8,16.1,12.2,4.9 +19821113,5.7,-1.4,14.4,1.1,7.5 +19821114,0.5,-5.1,6.7,-3.9,2.1 +19821115,4.6,-4.2,10.0,1.1,5.8 +19821116,0.7,-6.6,10.0,-6.7,2.1 +19821117,5.9,0.3,8.9,3.3,1.2 +19821118,8.1,7.9,9.4,6.7,0.2 +19821119,8.4,8.4,8.9,7.8,0.4 +19821120,9.4,9.4,11.1,7.8,1.4 +19821121,11.1,11.1,12.8,10.6,0.4 +19821122,13.4,12.3,18.9,11.1,0.0 +19821123,13.0,12.4,18.3,11.1,0.6 +19821124,11.1,8.5,16.1,3.9,5.9 +19821125,2.4,-4.7,10.0,-3.3,3.5 +19821126,7.4,1.2,17.8,1.1,2.0 +19821127,10.8,10.1,13.3,9.4,2.5 +19821128,6.3,6.3,9.4,4.4,4.2 +19821129,9.1,7.1,17.2,4.4,4.1 +19821130,5.6,4.0,11.1,0.0,1.5 +19821201,12.4,11.7,17.2,9.4,2.1 +19821202,13.4,12.8,18.9,9.4,1.6 +19821203,16.4,15.6,17.8,15.0,3.5 +19821204,16.9,14.9,20.0,15.0,3.7 +19821205,16.1,15.4,16.7,15.0,5.1 +19821206,9.5,6.5,14.4,5.6,3.8 +19821207,7.2,1.1,13.3,1.7,4.3 +19821208,4.2,-3.1,11.7,-2.2,1.0 +19821209,4.5,-1.2,9.4,0.0,4.2 +19821210,1.9,-2.7,8.3,-2.2,2.1 +19821211,5.3,4.1,7.8,3.9,2.3 +19821212,1.1,-1.9,6.7,-3.3,7.0 +19821213,-3.2,-11.8,5.6,-8.9,4.4 +19821214,0.7,-12.3,10.6,-5.6,3.1 +19821215,4.4,-0.3,11.1,1.1,3.3 +19821216,7.5,3.8,13.3,0.0,6.8 +19821217,0.7,-5.0,2.2,-1.1,9.1 +19821218,-0.5,-6.8,7.2,-6.1,2.7 +19821219,2.3,-2.9,9.4,-1.1,2.5 +19821220,3.3,-3.8,8.3,0.0,5.9 +19821221,2.3,-4.5,7.2,-1.1,5.1 +19821222,0.4,-5.6,9.4,-5.6,1.9 +19821223,6.6,-3.7,16.1,1.1,2.9 +19821224,6.7,1.9,12.8,1.7,2.4 +19821225,14.0,13.1,16.1,11.7,3.0 +19821226,15.8,13.2,20.6,13.3,2.7 +19821227,13.7,11.6,17.2,10.0,2.5 +19821228,14.8,13.6,16.1,13.9,5.4 +19821229,9.6,6.1,15.0,5.0,5.5 +19821230,1.3,-3.8,4.4,-0.6,4.1 +19821231,2.3,0.1,4.4,1.1,2.1 +19830101,4.4,0.9,8.3,1.7,2.2 +19830102,5.6,4.3,7.2,4.4,1.5 +19830103,3.9,0.5,6.1,1.7,5.7 +19830104,0.1,-6.0,6.7,-6.1,2.4 +19830105,0.7,-7.2,9.4,-5.0,2.6 +19830106,3.6,-5.3,11.7,-1.1,3.0 +19830107,4.3,-1.9,13.9,-2.8,3.5 +19830108,4.7,-1.4,11.7,-0.6,3.1 +19830109,5.3,-3.8,7.8,3.3,2.4 +19830110,5.2,3.8,8.3,3.3,2.1 +19830111,5.2,-1.7,10.6,0.0,2.6 +19830112,-0.8,-6.4,4.4,-2.8,8.5 +19830113,-1.7,-9.7,5.0,-5.0,4.1 +19830114,0.3,-6.2,12.2,-7.2,3.0 +19830115,2.7,-4.8,7.2,-1.1,7.1 +19830116,-2.1,-11.7,3.3,-6.7,8.0 +19830117,-0.8,-11.2,6.7,-5.0,3.7 +19830118,-3.6,-14.6,-0.6,-7.8,8.8 +19830119,-4.4,-19.6,5.0,-10.0,5.9 +19830120,-3.4,-17.7,-0.6,-6.1,2.3 +19830121,-3.1,-4.7,1.7,-6.7,1.8 +19830122,1.9,0.8,2.8,1.1,2.7 +19830123,2.7,1.3,6.1,1.1,2.6 +19830124,2.6,-1.9,6.7,0.6,5.6 +19830125,0.3,-2.7,3.3,-2.8,3.6 +19830126,1.5,-2.4,7.8,-0.6,3.7 +19830127,3.3,-0.6,7.2,0.6,1.6 +19830128,4.4,-1.4,12.8,-1.7,2.1 +19830129,2.2,-0.9,8.3,-3.3,2.1 +19830130,7.7,3.6,16.1,4.4,3.0 +19830131,6.5,-0.1,16.1,-0.6,2.9 +19830201,5.5,1.6,11.1,0.0,2.6 +19830202,12.7,8.6,15.6,9.4,6.9 +19830203,4.2,-2.1,10.0,1.1,4.1 +19830204,-0.2,-7.6,2.8,-2.2,6.3 +19830205,-2.1,-9.1,3.9,-5.6,4.6 +19830206,-0.2,-3.6,2.2,-1.7,2.7 +19830207,1.7,-1.8,2.2,0.0,5.7 +19830208,-1.3,-9.4,5.6,-6.1,6.3 +19830209,0.1,-7.7,6.7,-4.4,2.3 +19830210,2.2,-2.1,3.9,1.1,1.9 +19830211,1.4,-0.5,2.8,0.6,1.9 +19830212,2.2,-1.4,5.6,0.6,5.6 +19830213,1.7,-2.2,4.4,0.6,1.7 +19830214,4.0,-4.9,10.6,0.0,5.6 +19830215,5.7,-3.2,14.4,-2.2,2.9 +19830216,4.7,-0.4,12.2,-2.2,2.0 +19830217,8.1,0.6,13.9,2.8,4.0 +19830218,5.8,-3.2,13.3,-0.6,4.5 +19830219,5.6,-3.5,15.6,-3.3,1.5 +19830220,5.7,-1.9,15.6,-2.2,1.7 +19830221,5.9,-2.2,17.2,-2.8,1.5 +19830222,6.7,0.8,13.3,1.7,1.6 +19830223,8.8,6.2,13.3,6.1,3.3 +19830224,6.7,4.1,10.6,2.8,1.7 +19830225,2.9,-1.6,6.7,0.0,5.6 +19830226,-0.5,-10.1,6.1,-5.0,7.0 +19830227,-0.1,-9.4,7.2,-6.1,3.1 +19830228,3.1,-5.6,5.6,1.1,1.1 +19830301,8.2,4.3,15.0,5.0,5.6 +19830302,8.8,-3.1,18.3,-1.1,3.5 +19830303,8.8,-0.9,21.1,-0.6,2.1 +19830304,11.2,1.7,22.8,2.2,2.5 +19830305,13.7,9.1,18.3,10.0,3.8 +19830306,16.5,12.0,22.2,13.3,6.1 +19830307,11.3,8.2,16.7,6.1,1.9 +19830308,14.0,10.9,19.4,9.4,3.1 +19830309,9.9,5.2,16.1,6.7,5.8 +19830310,3.2,-0.1,6.1,0.6,6.6 +19830311,0.7,-3.2,3.3,-0.6,8.7 +19830312,3.1,-2.5,8.3,1.1,9.4 +19830313,6.2,-4.1,18.9,-1.1,5.1 +19830314,8.6,-1.5,20.0,1.1,2.6 +19830315,11.8,1.8,22.8,2.2,1.9 +19830316,11.8,2.5,17.8,6.7,1.9 +19830317,7.1,3.8,12.2,5.6,3.1 +19830318,9.7,7.3,14.4,7.2,3.4 +19830319,11.9,5.8,16.1,9.4,5.6 +19830320,9.4,4.6,17.2,3.3,3.5 +19830321,7.4,4.8,10.6,1.1,4.8 +19830322,1.4,-7.0,5.0,-1.1,7.3 +19830323,2.6,-7.9,10.6,-1.7,5.1 +19830324,1.3,-3.9,6.7,-1.1,2.9 +19830325,3.7,-6.5,12.2,-1.7,6.8 +19830326,3.6,-5.1,10.0,-2.8,3.1 +19830327,6.3,3.8,15.6,1.7,4.5 +19830328,7.7,2.9,12.2,4.4,4.2 +19830329,4.8,-0.1,8.9,2.2,7.3 +19830330,4.9,0.0,12.8,-0.6,2.8 +19830331,6.5,4.3,9.4,4.4,3.2 +19830401,6.1,3.0,15.6,0.0,2.1 +19830402,11.1,7.2,16.1,7.8,6.8 +19830403,7.8,1.7,11.1,6.1,4.7 +19830404,8.6,1.3,21.1,0.6,2.6 +19830405,9.1,5.8,15.6,6.7,2.3 +19830406,13.5,11.9,21.1,9.4,1.9 +19830407,16.3,15.8,18.9,14.4,2.1 +19830408,15.4,15.3,16.7,14.4,2.7 +19830409,15.4,15.3,18.9,14.4,3.4 +19830410,11.4,5.8,16.1,6.1,5.5 +19830411,9.0,2.1,15.0,4.4,4.6 +19830412,9.0,2.8,20.0,0.6,2.9 +19830413,12.8,6.9,20.0,4.4,3.5 +19830414,13.9,11.2,16.7,11.7,6.3 +19830415,12.7,10.4,15.6,8.3,6.5 +19830416,6.3,-3.4,11.7,1.7,9.5 +19830417,6.8,-4.0,15.6,-0.6,3.8 +19830418,4.2,-0.2,9.4,1.7,4.6 +19830419,1.3,-8.0,5.0,-2.2,6.4 +19830420,3.1,-7.2,10.0,-2.2,5.1 +19830421,6.4,-5.9,15.0,0.0,4.6 +19830422,6.4,-0.2,11.1,0.6,1.7 +19830423,8.8,6.6,10.6,7.2,2.2 +19830424,9.7,7.8,11.7,8.3,5.2 +19830425,9.5,-1.7,16.1,5.0,9.6 +19830426,14.2,0.3,23.3,4.4,5.4 +19830427,14.4,2.0,26.1,2.8,2.4 +19830428,15.9,4.5,26.1,4.4,2.7 +19830429,17.0,7.7,24.4,8.9,4.0 +19830430,17.9,12.3,23.3,12.2,5.1 +19830501,18.9,14.0,23.9,15.0,3.8 +19830502,20.3,14.4,25.6,16.1,6.1 +19830503,17.9,14.3,22.2,14.4,5.6 +19830504,12.6,6.9,17.2,8.9,5.4 +19830505,12.2,3.9,20.6,3.3,4.1 +19830506,12.7,3.8,22.8,2.2,2.4 +19830507,15.1,6.8,24.4,5.0,3.9 +19830508,17.4,12.6,21.1,13.3,4.8 +19830509,12.8,4.8,21.7,6.7,6.1 +19830510,13.4,5.8,25.0,3.3,1.7 +19830511,17.4,11.1,26.7,7.8,1.9 +19830512,17.8,13.7,23.3,11.1,1.7 +19830513,16.9,16.0,22.2,14.4,2.0 +19830514,17.7,15.7,25.0,12.8,2.0 +19830515,19.1,15.7,22.8,14.4,3.7 +19830516,17.8,14.9,22.2,15.6,4.8 +19830517,13.4,6.8,18.3,8.9,4.7 +19830518,11.4,7.2,18.9,3.3,2.7 +19830519,14.3,13.1,15.6,12.8,3.8 +19830520,17.8,17.1,23.9,15.0,2.2 +19830521,19.2,17.6,25.0,15.6,3.8 +19830522,19.8,18.6,23.9,17.2,3.2 +19830523,19.8,16.3,25.6,15.6,2.7 +19830524,17.6,12.1,22.2,13.9,5.9 +19830525,14.8,10.2,21.7,7.8,2.3 +19830526,16.5,12.2,23.3,8.9,2.7 +19830527,15.1,5.6,23.3,7.8,3.8 +19830528,15.3,9.5,24.4,6.1,2.5 +19830529,18.4,15.6,23.9,13.3,3.1 +19830530,19.9,14.9,25.6,14.4,3.9 +19830531,16.3,11.5,23.3,9.4,3.0 +19830601,15.4,11.1,21.7,11.1,4.3 +19830602,14.8,10.6,23.3,6.7,1.7 +19830603,18.5,14.9,26.7,11.7,3.5 +19830604,20.7,17.9,25.6,15.6,3.1 +19830605,19.1,17.1,25.6,13.9,2.1 +19830606,19.7,18.3,25.6,15.0,2.1 +19830607,18.2,17.8,21.1,16.7,2.1 +19830608,18.3,14.2,25.0,12.2,3.5 +19830609,18.6,14.3,23.9,12.8,1.5 +19830610,17.9,13.0,26.1,10.6,1.1 +19830611,18.4,13.3,26.1,10.0,1.9 +19830612,18.3,12.3,26.7,9.4,1.7 +19830613,18.8,11.4,28.3,9.4,1.6 +19830614,19.3,11.7,28.3,8.9,1.7 +19830615,21.1,14.7,29.4,12.8,1.7 +19830616,21.9,17.3,28.3,16.1,2.2 +19830617,18.9,17.8,24.4,15.6,1.5 +19830618,20.1,18.6,25.6,16.1,1.2 +19830619,20.9,19.2,26.7,17.8,1.7 +19830620,21.2,19.2,28.3,18.3,1.4 +19830621,23.2,18.6,30.6,17.8,2.2 +19830622,21.8,19.4,27.2,20.0,2.8 +19830623,20.1,18.3,25.6,16.6,1.4 +19830624,22.0,17.3,30.0,15.6,1.9 +19830625,22.9,17.3,31.1,14.4,2.7 +19830626,24.1,20.3,30.0,18.3,1.9 +19830627,23.6,20.9,28.9,18.9,1.9 +19830628,22.8,21.4,27.2,20.6,2.3 +19830629,23.8,21.5,28.9,20.0,2.7 +19830630,22.8,22.1,26.7,20.6,2.0 +19830701,22.0,20.2,28.9,18.9,2.4 +19830702,24.1,20.7,30.6,18.3,2.2 +19830703,24.2,20.8,30.0,18.3,2.6 +19830704,22.4,20.5,30.0,18.3,1.9 +19830705,21.6,21.0,25.6,19.4,1.9 +19830706,22.0,17.8,26.7,17.2,4.5 +19830707,20.3,15.6,25.6,14.4,2.9 +19830708,20.2,15.8,27.8,12.8,2.1 +19830709,20.7,15.3,27.8,12.2,3.1 +19830710,22.6,16.2,30.0,15.6,3.3 +19830711,23.7,19.1,30.6,17.8,1.9 +19830712,24.1,18.6,31.1,17.8,2.1 +19830713,24.1,19.3,31.7,16.1,1.2 +19830714,25.4,21.1,32.8,18.9,1.8 +19830715,25.8,20.9,32.8,19.4,2.4 +19830716,25.2,20.6,32.2,18.3,2.5 +19830717,25.4,21.2,30.6,20.0,3.3 +19830718,24.3,20.5,30.0,19.4,3.5 +19830719,24.8,21.2,31.7,19.4,4.3 +19830720,25.9,21.6,33.3,20.0,3.4 +19830721,26.7,21.2,33.9,20.0,3.2 +19830722,28.7,21.9,34.4,24.4,4.1 +19830723,28.1,21.3,33.9,21.7,2.7 +19830724,26.1,20.8,34.4,20.6,2.7 +19830725,24.3,20.8,28.9,20.6,2.8 +19830726,23.0,18.4,29.4,18.3,2.9 +19830727,22.7,16.7,28.3,15.6,1.3 +19830728,22.3,15.9,29.4,15.0,1.4 +19830729,21.7,15.9,30.0,14.4,1.7 +19830730,22.3,15.9,30.6,13.9,1.4 +19830731,22.7,17.3,31.1,16.7,2.0 +19830801,22.6,20.8,25.6,20.0,1.4 +19830802,22.6,20.2,27.2,18.9,2.5 +19830803,23.7,20.1,30.0,20.0,1.9 +19830804,24.7,20.3,32.2,18.9,2.7 +19830805,23.9,19.4,31.1,17.2,3.0 +19830806,23.8,19.9,31.7,17.8,1.7 +19830807,23.9,20.9,31.1,18.9,2.3 +19830808,23.2,20.1,30.6,18.3,2.2 +19830809,25.3,20.2,33.3,18.3,2.5 +19830810,24.5,18.7,33.9,16.1,1.5 +19830811,25.5,20.1,33.3,18.3,2.0 +19830812,24.2,18.9,28.9,20.0,4.7 +19830813,22.2,14.9,30.0,17.2,3.1 +19830814,19.6,13.6,26.1,12.2,1.9 +19830815,20.2,14.4,29.4,12.2,2.0 +19830816,21.3,16.9,28.3,15.0,2.0 +19830817,23.7,17.1,31.7,16.7,1.5 +19830818,24.3,18.4,32.8,17.2,2.6 +19830819,27.1,19.5,35.0,20.0,4.1 +19830820,27.9,19.9,36.1,20.0,2.3 +19830821,27.5,21.7,36.7,20.6,2.4 +19830822,26.0,21.1,33.9,20.0,1.2 +19830823,26.9,21.2,36.1,20.0,1.9 +19830824,24.3,21.3,32.2,20.0,2.0 +19830825,22.1,20.9,23.9,20.6,2.1 +19830826,23.3,19.0,30.6,19.4,2.0 +19830827,23.7,20.6,29.4,18.3,2.5 +19830828,24.7,19.9,30.6,20.0,4.4 +19830829,24.8,19.3,31.7,20.0,4.4 +19830830,23.6,16.3,31.1,16.1,2.5 +19830831,20.7,17.7,28.9,16.1,1.3 +19830901,21.0,18.5,27.2,17.2,2.0 +19830902,21.0,18.9,24.4,18.9,1.0 +19830903,20.0,18.5,21.7,18.9,0.8 +19830904,22.0,19.8,26.7,18.9,2.0 +19830905,24.9,20.0,31.7,20.6,2.6 +19830906,23.9,18.8,30.0,18.9,2.8 +19830907,23.6,18.9,28.9,18.9,3.5 +19830908,23.9,18.9,29.4,20.6,2.7 +19830909,22.2,18.4,29.4,18.9,1.7 +19830910,23.4,18.1,31.7,18.3,2.2 +19830911,23.2,18.3,31.1,18.3,1.9 +19830912,22.6,18.2,30.0,18.9,2.2 +19830913,21.4,18.7,24.4,19.4,1.6 +19830914,19.7,15.9,22.8,18.3,4.0 +19830915,16.9,9.7,21.1,13.3,2.1 +19830916,16.4,12.1,21.7,12.2,1.7 +19830917,19.8,13.3,28.3,13.3,2.4 +19830918,19.7,13.6,27.8,11.7,1.9 +19830919,19.6,14.9,27.2,13.9,1.6 +19830920,20.1,17.4,22.8,16.7,2.5 +19830921,18.7,16.9,21.7,12.8,4.7 +19830922,10.8,0.7,16.7,6.1,7.9 +19830923,9.6,1.2,20.0,2.2,2.6 +19830924,10.3,1.5,18.3,2.2,2.1 +19830925,10.1,3.2,20.0,2.2,1.4 +19830926,13.6,5.9,22.2,8.3,1.8 +19830927,14.2,7.2,23.9,6.7,2.0 +19830928,15.6,7.8,24.4,7.8,2.6 +19830929,16.1,8.8,22.2,12.2,2.6 +19830930,13.9,5.8,22.2,8.9,2.3 +19831001,14.9,9.6,21.1,11.7,2.5 +19831002,15.6,9.6,26.1,9.4,2.3 +19831003,15.1,8.8,26.7,5.6,1.7 +19831004,16.8,11.4,27.8,8.3,1.5 +19831005,20.8,17.3,25.6,18.9,3.1 +19831006,17.4,9.8,22.8,12.8,5.4 +19831007,13.0,6.3,21.7,6.1,1.6 +19831008,13.2,7.3,22.8,5.6,0.9 +19831009,12.7,7.1,22.8,5.6,1.4 +19831010,16.1,10.1,19.4,14.4,1.8 +19831011,14.1,11.8,15.0,13.3,1.6 +19831012,16.8,15.3,23.3,13.9,1.9 +19831013,19.3,16.7,22.8,12.8,5.3 +19831014,10.2,2.3,16.7,5.6,4.5 +19831015,10.4,3.6,21.7,2.2,1.7 +19831016,10.9,5.2,22.2,2.8,1.0 +19831017,12.6,7.5,24.4,4.4,1.1 +19831018,14.3,9.6,22.8,7.8,1.3 +19831019,16.4,11.1,24.4,11.1,1.7 +19831020,16.1,12.9,19.4,14.4,3.1 +19831021,12.3,10.0,13.9,10.6,2.3 +19831022,9.2,7.5,10.0,8.9,2.4 +19831023,11.3,10.1,16.7,8.9,2.5 +19831024,13.8,9.4,17.2,10.6,4.7 +19831025,12.8,8.9,15.6,10.6,5.0 +19831026,11.2,1.8,16.1,6.1,5.9 +19831027,10.1,-1.1,15.6,7.2,6.5 +19831028,9.8,-0.7,23.9,0.0,2.8 +19831029,12.8,4.7,23.3,3.9,3.9 +19831030,11.5,3.8,15.6,8.3,2.7 +19831031,9.8,3.9,17.2,3.3,2.6 +19831101,13.3,7.4,21.7,7.8,2.0 +19831102,12.9,7.8,21.7,6.1,1.1 +19831103,14.4,9.5,22.2,8.9,2.7 +19831104,13.8,9.9,16.7,8.3,4.1 +19831105,5.1,-1.9,10.0,0.6,5.5 +19831106,7.1,-1.5,17.2,1.1,3.4 +19831107,6.8,1.1,14.4,0.6,1.5 +19831108,9.3,4.4,20.0,1.7,1.7 +19831109,9.9,7.6,16.1,4.4,0.7 +19831110,14.0,12.8,18.9,12.8,2.7 +19831111,6.3,2.1,12.2,3.9,5.9 +19831112,3.8,-4.7,8.3,1.1,8.0 +19831113,3.9,-3.8,8.9,1.7,2.9 +19831114,1.8,-2.5,10.0,-4.4,1.5 +19831115,6.2,5.5,10.0,4.4,3.9 +19831116,6.0,0.7,8.3,4.4,5.2 +19831117,4.9,-2.7,9.4,1.7,6.7 +19831118,4.5,-1.9,17.2,-2.8,1.5 +19831119,9.4,1.3,20.0,0.6,3.2 +19831120,12.3,9.5,15.0,6.7,4.0 +19831121,9.3,3.6,17.8,3.3,3.8 +19831122,8.4,1.4,22.8,0.0,2.0 +19831123,11.2,5.6,18.3,5.6,3.0 +19831124,13.9,13.2,15.6,10.0,2.9 +19831125,4.9,-1.9,10.6,-0.6,8.3 +19831126,4.7,-2.6,16.7,-2.8,1.9 +19831127,4.3,1.9,10.6,-2.2,2.3 +19831128,14.7,11.3,18.9,10.0,4.6 +19831129,5.2,-1.9,11.1,0.0,4.9 +19831130,3.0,-4.0,12.2,-2.8,3.6 +19831201,5.4,-2.7,11.7,-0.6,3.8 +19831202,4.3,-2.6,12.8,-2.2,2.6 +19831203,10.8,9.3,13.9,8.3,2.7 +19831204,10.4,8.8,16.7,7.2,3.8 +19831205,8.9,5.8,18.3,1.7,3.2 +19831206,11.9,7.9,17.8,6.7,4.4 +19831207,1.7,-7.1,5.6,-1.7,6.4 +19831208,0.5,-6.1,9.4,-5.6,3.1 +19831209,1.7,-4.4,12.2,-4.4,2.2 +19831210,6.6,0.6,17.8,-0.6,1.0 +19831211,5.2,3.8,8.3,1.7,2.3 +19831212,8.9,7.2,14.4,6.1,3.0 +19831213,9.4,6.2,14.4,5.6,4.8 +19831214,6.4,5.6,8.3,3.3,3.3 +19831215,3.8,-1.0,8.9,-2.2,3.9 +19831216,3.2,-4.1,10.0,-1.1,4.1 +19831217,3.8,-3.1,8.3,0.0,4.8 +19831218,0.2,-6.6,9.4,-6.1,1.8 +19831219,2.7,-3.7,8.3,-2.2,2.8 +19831220,1.6,-3.9,4.4,0.0,3.9 +19831221,0.6,-5.8,2.2,-0.6,4.1 +19831222,4.5,3.6,10.0,1.1,2.9 +19831223,1.7,-4.6,5.6,-1.1,5.4 +19831224,-6.6,-13.9,3.3,-17.2,8.2 +19831225,-17.2,-26.1,-10.6,-21.7,9.4 +19831226,-12.5,-22.2,-2.2,-17.8,6.2 +19831227,-3.7,-8.9,1.1,-6.1,2.3 +19831228,2.5,0.7,12.2,-1.1,3.2 +19831229,1.1,-0.8,6.7,-5.0,7.5 +19831230,-9.7,-14.9,-5.0,-14.4,8.3 +19831231,-7.1,-15.2,4.4,-13.9,4.7 +19840101,-2.2,-12.7,9.4,-10.0,1.8 +19840102,-1.2,-9.6,6.7,-7.2,2.5 +19840103,2.3,-6.0,10.0,-3.3,4.4 +19840104,0.0,-5.6,11.1,-7.2,2.5 +19840105,4.2,-1.6,8.3,0.6,4.5 +19840106,3.9,-1.7,12.2,-2.8,3.6 +19840107,3.1,-4.1,7.2,0.0,6.5 +19840108,0.3,-5.3,13.3,-8.3,1.7 +19840109,2.6,-3.5,13.3,-5.0,2.4 +19840110,4.4,0.2,7.2,2.2,2.7 +19840111,0.0,-4.6,4.4,-3.9,9.1 +19840112,-4.8,-9.2,3.3,-11.7,3.3 +19840113,-2.7,-5.9,0.6,-5.0,3.3 +19840114,1.0,-2.4,7.8,-5.6,4.2 +19840115,-0.1,-3.4,2.2,-1.1,2.9 +19840116,0.2,-2.1,5.0,-1.1,2.9 +19840117,1.5,-1.9,8.3,-2.8,1.6 +19840118,2.5,0.3,4.4,1.1,2.7 +19840119,-0.8,-4.4,3.3,-6.7,7.3 +19840120,-7.1,-12.2,-0.6,-11.1,6.5 +19840121,-6.3,-13.8,0.0,-12.8,5.9 +19840122,-7.1,-12.3,3.9,-14.4,2.2 +19840123,-3.1,-9.1,2.8,-8.9,2.5 +19840124,4.3,3.0,10.0,0.0,2.1 +19840125,6.9,4.9,8.3,5.6,3.2 +19840126,2.5,-1.3,13.3,-5.6,1.7 +19840127,5.8,-0.7,13.9,0.6,3.5 +19840128,3.7,-2.5,9.4,0.0,4.1 +19840129,2.8,-3.8,10.6,-2.8,2.7 +19840130,0.8,-4.8,12.2,-5.0,3.3 +19840131,-2.5,-7.2,2.2,-5.6,8.2 +19840201,-1.6,-7.6,8.3,-8.3,2.5 +19840202,0.8,-5.6,12.8,-7.2,2.4 +19840203,5.2,0.9,12.8,-1.1,3.6 +19840204,5.3,1.6,12.2,0.0,3.5 +19840205,1.8,-4.7,6.1,-3.9,4.8 +19840206,-4.8,-7.1,0.0,-10.0,7.1 +19840207,-7.9,-11.7,-1.1,-13.3,6.2 +19840208,-3.7,-11.4,10.6,-11.7,3.6 +19840209,2.3,-5.2,16.7,-7.2,1.6 +19840210,4.3,0.1,10.0,-2.2,2.6 +19840211,10.4,8.4,17.8,6.1,3.8 +19840212,8.1,7.7,15.6,2.8,2.2 +19840213,11.6,11.4,12.8,10.6,3.6 +19840214,10.3,7.3,13.3,7.2,5.6 +19840215,8.6,1.1,17.8,0.0,3.9 +19840216,6.7,2.1,16.7,-1.1,2.7 +19840217,8.0,3.8,18.3,-0.6,1.6 +19840218,7.8,2.1,18.3,-1.1,3.0 +19840219,10.9,4.4,21.1,2.8,3.8 +19840220,9.7,4.3,15.6,4.4,6.7 +19840221,5.5,-3.3,13.3,0.0,6.7 +19840222,3.6,-5.4,11.7,-5.0,2.4 +19840223,4.5,2.2,9.4,2.2,5.0 +19840224,6.5,1.5,17.2,-1.1,3.6 +19840225,5.5,-0.6,12.2,2.8,6.3 +19840226,2.4,-3.0,8.9,-1.7,3.5 +19840227,2.7,0.1,5.0,0.6,3.4 +19840228,0.9,-0.2,2.2,-1.7,4.6 +19840229,-3.2,-7.5,0.0,-5.0,7.2 +19840301,-2.5,-11.1,5.6,-7.8,6.2 +19840302,1.7,-5.3,11.7,-4.4,2.2 +19840303,2.9,-1.9,11.7,-4.4,2.0 +19840304,2.7,-1.6,11.1,-5.0,2.4 +19840305,8.7,7.1,12.8,5.6,2.6 +19840306,7.3,5.9,10.6,2.8,5.4 +19840307,1.8,-1.2,6.1,-1.1,7.0 +19840308,2.2,-4.1,13.3,-6.1,3.7 +19840309,-1.7,-9.9,6.1,-6.7,6.9 +19840310,-1.3,-7.7,5.6,-5.6,2.8 +19840311,0.8,-2.8,6.7,-3.3,5.5 +19840312,1.7,-4.1,10.0,-5.6,3.3 +19840313,6.3,4.0,12.8,2.8,3.2 +19840314,9.3,3.7,19.4,-0.6,4.0 +19840315,9.4,1.9,23.3,-1.1,2.2 +19840316,15.1,8.7,20.6,9.4,4.3 +19840317,10.8,8.3,15.6,3.9,3.2 +19840318,9.6,9.0,14.4,6.1,2.0 +19840319,13.9,10.1,24.4,8.9,2.1 +19840320,13.6,11.9,18.9,10.6,3.9 +19840321,5.4,3.5,12.2,0.6,4.9 +19840322,7.8,-2.2,16.1,1.7,4.0 +19840323,7.8,-3.0,15.6,1.7,5.2 +19840324,7.5,-0.3,19.4,-1.1,2.5 +19840325,13.2,9.2,18.9,9.4,3.7 +19840326,9.8,4.1,15.6,6.7,5.4 +19840327,7.4,5.8,12.2,2.2,2.2 +19840328,11.4,10.8,16.1,9.4,3.1 +19840329,5.8,4.7,11.1,2.8,6.1 +19840330,4.9,-1.7,10.6,1.7,8.3 +19840331,5.0,-4.1,12.2,0.0,4.9 +19840401,7.4,-1.2,13.9,1.7,5.6 +19840402,6.9,-1.3,18.3,-2.2,2.7 +19840403,9.1,6.2,12.8,7.2,2.3 +19840404,11.2,11.0,17.2,9.4,3.1 +19840405,8.4,4.5,12.2,4.4,3.7 +19840406,8.7,0.7,12.8,5.0,6.2 +19840407,10.8,-1.5,18.3,6.1,8.1 +19840408,10.5,0.3,15.0,6.1,3.5 +19840409,7.4,5.4,11.1,5.6,2.9 +19840410,5.3,4.9,7.8,4.4,2.0 +19840411,10.1,5.6,18.9,5.6,1.5 +19840412,10.4,4.2,19.4,1.1,2.8 +19840413,13.2,7.5,22.8,5.6,3.4 +19840414,14.7,10.1,22.8,7.2,3.2 +19840415,10.4,6.2,17.8,4.4,2.4 +19840416,10.1,3.2,13.9,5.0,3.8 +19840417,8.2,2.7,11.7,5.0,2.6 +19840418,6.9,2.2,12.2,2.8,3.1 +19840419,4.6,2.9,10.6,-1.1,1.7 +19840420,7.3,6.2,12.2,3.3,2.3 +19840421,12.8,10.9,20.6,8.9,2.6 +19840422,10.9,10.2,15.6,7.8,3.9 +19840423,9.2,7.5,14.4,6.7,4.5 +19840424,8.4,1.8,15.0,4.4,5.6 +19840425,13.4,3.8,26.1,1.7,3.0 +19840426,17.2,6.4,27.8,6.1,2.9 +19840427,15.7,11.6,21.7,11.7,1.8 +19840428,16.7,15.5,22.8,12.2,2.2 +19840429,16.6,16.2,20.6,13.9,2.3 +19840430,17.7,16.7,21.1,16.1,3.9 +19840501,14.6,3.8,21.1,7.8,4.1 +19840502,10.6,7.7,16.7,6.7,2.1 +19840503,11.6,11.6,16.7,8.9,3.2 +19840504,16.3,11.4,20.6,12.8,4.6 +19840505,14.1,8.3,22.8,6.7,4.4 +19840506,14.8,12.7,21.7,10.0,2.4 +19840507,16.1,15.1,22.8,12.8,4.0 +19840508,15.8,14.6,22.8,8.9,4.4 +19840509,9.2,2.8,17.2,2.2,4.4 +19840510,11.4,4.4,20.0,2.8,2.9 +19840511,14.3,7.8,24.4,3.9,2.8 +19840512,17.3,11.8,25.0,8.9,4.0 +19840513,17.6,13.9,25.6,10.0,3.4 +19840514,18.8,13.9,25.0,13.9,3.9 +19840515,13.7,3.7,19.4,7.8,7.5 +19840516,11.1,2.0,17.2,2.8,5.3 +19840517,12.7,-0.7,22.2,5.0,4.2 +19840518,14.2,4.4,25.6,2.8,2.2 +19840519,17.5,10.1,27.2,7.2,3.2 +19840520,18.1,12.1,26.7,8.9,2.8 +19840521,18.8,14.5,25.0,11.1,3.4 +19840522,19.9,16.7,27.2,15.0,3.0 +19840523,19.7,17.7,26.1,16.7,3.9 +19840524,16.3,11.3,23.9,7.2,2.8 +19840525,16.4,12.4,25.0,7.2,2.1 +19840526,19.6,17.7,26.1,15.0,2.9 +19840527,19.2,17.9,26.1,15.6,1.6 +19840528,20.1,19.1,24.4,17.8,2.5 +19840529,17.7,16.3,21.1,14.4,4.6 +19840530,9.4,4.8,12.8,6.1,8.6 +19840531,10.2,3.0,17.8,1.7,5.8 +19840601,13.3,6.2,23.9,2.8,3.1 +19840602,18.0,10.9,28.3,9.4,4.7 +19840603,21.7,14.1,28.9,15.6,4.6 +19840604,19.9,16.0,26.7,12.2,2.8 +19840605,21.4,16.7,29.4,13.9,2.7 +19840606,21.4,16.8,30.0,13.3,2.2 +19840607,21.8,17.6,31.1,13.3,2.7 +19840608,23.1,18.1,31.1,13.9,2.8 +19840609,21.5,15.3,30.0,12.2,2.8 +19840610,21.9,16.3,30.0,12.2,2.3 +19840611,22.3,18.1,30.6,12.2,2.1 +19840612,21.6,18.1,30.6,15.0,2.1 +19840613,20.1,18.2,30.6,15.0,2.0 +19840614,20.4,18.3,29.4,15.6,2.5 +19840615,20.7,18.1,29.4,14.4,2.4 +19840616,21.1,18.6,29.4,14.4,2.1 +19840617,20.4,18.9,28.9,15.6,2.0 +19840618,22.8,19.3,30.0,15.6,2.2 +19840619,23.1,19.5,30.6,16.1,2.7 +19840620,21.9,20.1,31.7,16.1,1.9 +19840621,20.1,19.5,30.0,17.8,1.9 +19840622,18.8,18.7,25.6,17.8,1.3 +19840623,19.2,18.2,23.9,16.1,2.2 +19840624,21.1,19.7,26.7,16.1,2.5 +19840625,20.4,15.4,27.2,15.6,4.3 +19840626,19.2,12.4,27.2,9.4,2.8 +19840627,19.8,15.9,27.2,9.4,2.6 +19840628,19.3,18.4,27.8,11.1,1.6 +19840629,19.4,18.2,25.0,15.6,2.1 +19840630,18.8,18.1,25.6,15.6,3.1 +19840701,17.8,15.0,25.6,10.6,3.1 +19840702,18.8,17.4,26.1,10.6,2.0 +19840703,18.5,16.0,26.1,12.8,2.2 +19840704,20.7,18.1,28.3,12.8,2.0 +19840705,21.3,19.6,28.9,13.3,2.6 +19840706,21.1,19.3,28.9,16.7,2.1 +19840707,21.3,19.0,27.8,16.7,3.0 +19840708,20.4,17.2,27.8,15.6,2.9 +19840709,20.7,17.2,27.2,13.9,2.3 +19840710,23.1,18.8,31.1,13.9,4.0 +19840711,24.7,20.7,31.7,16.1,2.3 +19840712,22.9,20.6,32.2,16.7,3.2 +19840713,21.9,20.9,28.3,17.8,2.4 +19840714,22.6,21.1,28.3,18.3,2.0 +19840715,22.2,20.4,28.3,18.3,2.4 +19840716,22.2,20.5,29.4,18.3,2.7 +19840717,20.1,19.7,26.1,17.2,2.0 +19840718,21.2,18.9,26.1,17.2,4.1 +19840719,19.4,15.8,26.7,13.9,3.1 +19840720,21.1,18.6,26.1,13.9,2.6 +19840721,20.3,17.8,26.7,15.6,2.6 +19840722,20.0,17.6,27.2,15.0,2.4 +19840723,20.3,17.7,25.6,15.0,1.7 +19840724,21.7,18.9,28.9,15.6,1.9 +19840725,23.8,20.7,30.0,16.1,2.5 +19840726,21.5,19.4,30.0,16.1,2.1 +19840727,20.7,19.4,29.4,16.1,2.5 +19840728,19.5,18.9,27.8,16.7,2.8 +19840729,17.3,16.9,22.8,15.6,1.9 +19840730,17.6,16.9,21.1,15.6,2.4 +19840731,18.4,18.2,21.7,15.6,1.3 +19840801,20.9,20.1,24.4,16.7,2.3 +19840802,22.3,20.6,27.8,18.3,2.3 +19840803,22.8,20.9,28.3,17.8,1.9 +19840804,22.2,20.1,29.4,17.2,2.2 +19840805,21.4,19.7,30.6,17.2,1.0 +19840806,21.7,19.7,28.3,17.2,2.4 +19840807,21.8,19.9,28.9,16.7,2.8 +19840808,22.5,20.2,28.9,16.7,3.1 +19840809,22.5,20.8,29.4,17.2,2.8 +19840810,22.4,20.6,29.4,17.2,2.2 +19840811,20.9,19.7,29.4,17.2,3.3 +19840812,21.6,20.7,28.3,17.8,1.9 +19840813,21.1,20.1,26.7,18.3,2.0 +19840814,22.3,19.9,28.9,18.3,2.9 +19840815,21.3,18.7,28.9,15.0,2.3 +19840816,21.7,19.6,28.3,15.0,2.3 +19840817,21.7,18.7,28.3,16.7,2.9 +19840818,19.7,17.8,28.3,14.4,1.9 +19840819,21.6,19.6,26.7,14.4,2.9 +19840820,20.9,18.2,28.3,15.6,3.2 +19840821,20.5,19.1,28.3,15.6,2.5 +19840822,20.4,18.4,27.2,15.6,1.6 +19840823,21.2,18.3,27.8,15.6,4.1 +19840824,19.2,16.3,26.7,13.9,2.2 +19840825,18.9,16.6,25.0,13.9,1.9 +19840826,19.2,18.3,25.6,13.9,1.5 +19840827,19.9,18.6,26.7,15.6,2.0 +19840828,19.2,18.2,26.7,13.9,2.0 +19840829,20.3,18.6,26.7,13.9,1.9 +19840830,19.9,18.5,27.8,16.1,1.7 +19840831,21.7,18.3,27.2,16.1,3.9 +19840901,19.1,14.8,28.3,10.6,1.9 +19840902,20.9,17.8,28.9,10.6,2.5 +19840903,21.1,18.6,29.4,13.9,2.4 +19840904,19.0,16.7,28.9,13.9,4.3 +19840905,16.5,11.8,23.3,10.0,3.5 +19840906,15.2,10.4,23.9,7.8,2.5 +19840907,14.6,11.8,23.9,7.2,1.7 +19840908,13.5,10.3,22.2,5.6,2.2 +19840909,14.9,12.4,23.3,5.6,2.0 +19840910,18.1,14.9,26.1,8.3,2.0 +19840911,19.1,15.7,28.3,10.0,2.7 +19840912,21.6,17.9,29.4,11.1,4.0 +19840913,20.9,17.1,29.4,12.8,3.3 +19840914,20.2,17.3,30.0,11.7,2.1 +19840915,19.1,17.1,30.6,11.7,4.4 +19840916,14.1,9.3,25.0,7.2,3.4 +19840917,11.4,7.2,22.2,3.9,1.7 +19840918,10.9,7.9,18.3,3.9,1.4 +19840919,13.9,9.1,25.0,4.4,3.1 +19840920,15.6,9.9,28.3,4.4,1.5 +19840921,17.1,12.2,28.3,4.4,1.7 +19840922,17.3,13.7,28.9,6.1,2.6 +19840923,18.2,15.3,26.7,7.8,2.6 +19840924,17.8,14.9,27.2,10.6,1.7 +19840925,20.3,15.3,28.9,10.6,2.1 +19840926,17.6,15.4,30.0,10.0,3.3 +19840927,13.9,12.1,16.7,10.0,4.0 +19840928,12.2,10.9,20.0,7.8,3.0 +19840929,13.5,12.0,20.0,7.8,4.8 +19840930,10.9,10.7,17.2,10.0,3.3 +19841001,9.1,7.2,12.2,7.2,6.9 +19841002,10.4,4.9,17.8,3.3,5.2 +19841003,9.2,3.9,22.2,-0.6,1.9 +19841004,12.6,8.2,23.9,-0.6,2.5 +19841005,15.2,11.2,24.4,3.3,1.5 +19841006,15.7,13.6,24.4,7.2,2.1 +19841007,15.1,13.9,22.8,8.9,3.2 +19841008,15.8,14.7,20.0,12.8,3.2 +19841009,16.3,15.6,20.0,12.8,1.4 +19841010,16.7,15.1,22.2,12.8,1.5 +19841011,15.6,12.7,22.8,8.9,1.5 +19841012,14.7,10.9,23.9,6.7,2.7 +19841013,14.7,8.6,24.4,6.1,3.8 +19841014,15.4,10.6,26.1,6.1,2.7 +19841015,16.0,12.3,27.2,6.7,1.9 +19841016,17.6,13.0,26.7,8.9,2.2 +19841017,16.9,14.8,27.2,10.6,1.5 +19841018,17.7,14.6,27.8,10.6,2.0 +19841019,20.4,16.0,27.8,10.6,3.2 +19841020,18.6,15.4,27.8,13.3,2.6 +19841021,18.8,16.4,25.6,13.3,4.1 +19841022,19.1,17.1,22.8,16.7,3.4 +19841023,16.4,15.2,23.3,12.8,1.7 +19841024,17.5,16.6,23.9,12.8,1.7 +19841025,19.4,16.4,24.4,15.0,2.2 +19841026,16.9,13.8,25.0,11.7,1.6 +19841027,14.7,12.8,25.0,9.4,2.2 +19841028,19.2,17.7,23.9,9.4,3.0 +19841029,19.8,17.6,25.0,15.6,1.9 +19841030,18.2,15.6,25.6,13.9,2.1 +19841031,16.8,14.1,26.1,13.3,2.0 +19841101,16.2,13.9,22.8,13.3,3.0 +19841102,15.1,12.8,18.9,10.6,3.9 +19841103,9.6,4.1,18.9,7.8,3.1 +19841104,7.8,6.5,11.7,5.6,2.9 +19841105,11.7,8.9,15.0,5.6,4.3 +19841106,6.3,-0.9,15.0,2.2,7.6 +19841107,4.1,-3.3,11.7,-3.9,3.3 +19841108,4.5,-1.3,12.8,-3.9,2.2 +19841109,6.3,-0.5,16.1,-3.3,2.1 +19841110,8.1,2.3,16.7,-1.7,3.3 +19841111,7.3,5.1,14.4,1.7,6.4 +19841112,2.3,-2.1,11.1,0.6,8.0 +19841113,1.6,-6.2,10.0,-2.8,7.3 +19841114,3.2,-6.7,15.6,-7.2,2.7 +19841115,6.4,-4.1,16.7,-7.2,3.8 +19841116,9.8,0.2,16.7,-1.7,5.4 +19841117,4.2,-9.5,13.3,-2.8,4.8 +19841118,5.0,-2.1,13.3,-2.8,3.4 +19841119,12.7,10.0,17.2,-1.1,5.8 +19841120,3.1,-2.0,6.7,0.0,7.8 +19841121,-2.2,-6.4,5.0,-7.8,3.6 +19841122,-1.3,-7.1,8.9,-8.3,3.6 +19841123,0.9,-8.7,15.6,-8.9,3.0 +19841124,3.9,-8.4,17.2,-8.9,2.6 +19841125,3.7,-5.7,17.2,-6.1,1.4 +19841126,5.3,-3.7,17.2,-5.6,2.2 +19841127,11.0,5.9,17.2,-3.9,3.9 +19841128,10.7,7.9,16.7,2.2,6.8 +19841129,2.4,-4.3,14.4,-1.7,6.6 +19841130,2.3,-2.5,13.9,-5.6,2.6 +19841201,6.7,0.7,15.0,3.3,3.3 +19841202,2.6,-1.3,12.2,-3.9,2.1 +19841203,7.9,3.0,13.3,5.6,4.4 +19841204,1.5,-6.9,13.3,-2.8,4.9 +19841205,0.8,-1.7,6.1,-2.8,3.1 +19841206,0.2,-2.2,2.8,-8.3,5.9 +19841207,-7.4,-14.1,2.8,-12.2,7.3 +19841208,1.6,-6.7,12.2,-12.2,4.8 +19841209,2.3,-3.8,13.9,-5.6,2.2 +19841210,4.6,-1.4,14.4,-5.6,2.3 +19841211,10.3,3.0,16.7,-1.1,3.7 +19841212,6.7,-1.1,17.2,-0.6,2.5 +19841213,10.1,3.9,20.0,-0.6,1.9 +19841214,10.8,6.7,22.2,2.2,0.9 +19841215,9.7,5.8,22.8,1.7,1.4 +19841216,9.3,5.6,21.1,1.1,2.6 +19841217,11.3,7.3,21.1,1.7,1.5 +19841218,12.4,9.2,21.1,3.9,1.9 +19841219,13.9,10.2,21.7,3.9,2.0 +19841220,13.2,10.9,21.1,7.2,2.6 +19841221,13.3,11.1,17.2,10.6,4.1 +19841222,12.4,7.2,17.2,8.3,6.2 +19841223,4.8,-2.3,15.6,-1.1,3.4 +19841224,2.1,-3.5,10.6,-4.4,2.6 +19841225,9.3,4.3,14.4,5.6,5.1 +19841226,2.2,-2.8,14.4,-3.9,2.5 +19841227,10.3,2.4,20.0,5.6,2.2 +19841228,10.7,6.5,21.7,3.3,1.7 +19841229,11.1,7.1,23.3,1.7,2.4 +19841230,12.6,8.2,23.3,1.7,2.0 +19841231,13.8,10.5,22.8,3.9,2.7 +19850101,14.2,11.8,20.0,8.9,4.6 +19850102,11.6,10.8,17.2,7.2,4.0 +19850103,6.1,5.5,14.4,3.3,4.0 +19850104,2.1,1.4,8.3,0.6,3.7 +19850105,-2.1,-5.4,3.9,-4.4,9.1 +19850106,-1.9,-5.9,8.9,-8.9,3.7 +19850107,2.1,-3.2,9.4,-8.9,4.2 +19850108,0.7,-4.0,10.0,-3.9,7.8 +19850109,-1.1,-7.2,3.9,-6.7,4.6 +19850110,-0.1,-7.2,4.4,-6.7,3.4 +19850111,0.8,-2.7,2.8,-2.8,5.5 +19850112,-5.9,-9.8,2.8,-8.3,9.0 +19850113,-4.6,-9.9,4.4,-10.0,5.0 +19850114,-0.3,-11.2,8.9,-10.0,4.1 +19850115,-2.9,-11.4,8.9,-7.8,8.6 +19850116,-4.6,-12.8,4.4,-11.7,4.0 +19850117,1.1,-1.7,5.6,-2.2,5.0 +19850118,0.0,-4.3,8.3,-4.4,5.0 +19850119,2.8,-5.0,8.9,-3.9,5.4 +19850120,-9.8,-14.1,4.4,-21.7,8.9 +19850121,-21.6,-26.7,-13.9,-26.8,9.0 +19850122,-10.2,-15.5,-1.7,-16.1,8.7 +19850123,-6.9,-12.1,0.6,-13.3,6.9 +19850124,-2.5,-11.1,10.0,-10.6,2.3 +19850125,2.3,-6.4,10.6,-1.7,5.0 +19850126,-7.8,-16.3,-1.1,-11.7,8.7 +19850127,-6.4,-15.8,2.8,-13.9,2.8 +19850128,-0.3,-4.8,3.3,-1.1,3.7 +19850129,-1.9,-5.2,2.8,-5.0,4.9 +19850130,0.8,-2.6,5.6,-5.0,3.6 +19850131,5.2,3.3,13.9,-2.8,3.1 +19850201,6.6,6.1,14.4,1.7,4.2 +19850202,6.7,5.8,13.9,3.3,3.4 +19850203,-1.4,-3.6,2.8,-3.9,5.1 +19850204,-0.9,-4.2,2.2,-3.9,3.6 +19850205,-1.2,-3.5,2.2,-2.8,3.5 +19850206,2.8,1.0,5.6,-2.8,5.2 +19850207,-2.0,-9.1,6.7,-6.1,6.8 +19850208,-6.7,-16.6,2.8,-11.7,8.2 +19850209,-3.7,-17.0,6.7,-11.7,7.0 +19850210,1.2,-12.3,11.7,-9.4,2.0 +19850211,1.1,-3.7,13.3,-6.1,3.4 +19850212,0.1,-1.7,8.3,-5.0,6.3 +19850213,-4.6,-8.3,-1.1,-6.7,5.8 +19850214,-2.9,-13.4,5.6,-11.1,3.6 +19850215,-2.9,-12.3,6.1,-11.1,4.4 +19850216,-4.0,-13.0,6.1,-10.0,5.0 +19850217,1.1,-7.2,7.8,-10.0,3.8 +19850218,1.6,-4.8,10.0,-5.6,3.2 +19850219,5.7,-0.5,10.0,2.8,3.0 +19850220,6.4,-1.1,13.3,0.0,4.2 +19850221,4.3,-3.2,13.9,-3.9,2.8 +19850222,9.8,-2.2,16.7,-3.9,4.5 +19850223,12.3,6.4,17.2,3.3,4.1 +19850224,14.2,9.9,18.9,7.2,3.3 +19850225,12.8,10.8,19.4,10.0,2.4 +19850226,12.6,10.3,18.3,9.4,2.4 +19850227,11.1,6.2,19.4,8.3,4.6 +19850228,5.4,-5.5,13.9,-2.8,2.6 +19850301,4.7,-2.2,14.4,-2.8,2.8 +19850302,8.8,3.2,12.8,6.7,5.0 +19850303,6.5,-0.1,14.4,-1.7,2.8 +19850304,10.8,5.4,17.8,-1.7,4.7 +19850305,12.6,3.8,18.3,6.7,6.2 +19850306,6.7,-6.6,16.1,0.0,7.4 +19850307,4.7,-5.6,15.6,-3.3,3.7 +19850308,10.5,1.3,22.8,-3.3,2.9 +19850309,13.7,9.1,22.8,11.1,5.2 +19850310,9.5,-6.2,16.7,4.4,4.2 +19850311,11.0,-1.3,17.2,4.4,4.0 +19850312,12.7,3.8,17.8,5.0,5.7 +19850313,9.6,-5.6,25.0,-1.7,4.0 +19850314,10.6,4.6,25.0,-1.7,4.7 +19850315,6.7,-2.5,13.9,1.7,7.5 +19850316,4.1,-6.3,13.3,-4.4,2.3 +19850317,8.2,-3.1,12.8,4.4,5.5 +19850318,1.5,-10.3,12.8,-2.8,9.0 +19850319,3.7,-11.6,16.1,-6.1,3.7 +19850320,7.6,-6.6,18.9,-6.1,1.8 +19850321,8.1,-1.1,19.4,-3.9,2.4 +19850322,2.6,1.1,11.7,1.1,2.9 +19850323,7.3,4.7,15.0,1.1,2.9 +19850324,8.5,3.9,15.6,2.8,4.0 +19850325,4.9,-0.1,12.8,0.0,6.4 +19850326,6.6,-1.4,18.9,-3.3,2.4 +19850327,9.9,-0.1,21.1,-3.3,3.8 +19850328,13.6,7.1,22.2,-1.7,4.6 +19850329,18.9,13.3,26.7,3.9,4.8 +19850330,19.9,11.4,27.8,11.7,4.3 +19850331,18.1,11.9,28.3,11.7,4.8 +19850401,10.6,-2.3,20.0,4.4,5.5 +19850402,6.7,-6.3,15.6,1.1,6.5 +19850403,7.4,-4.4,21.1,-3.9,3.2 +19850404,15.3,1.8,24.4,3.3,4.3 +19850405,16.6,6.6,25.0,12.2,7.4 +19850406,11.5,2.4,20.0,3.3,4.5 +19850407,8.6,-0.9,20.0,1.1,3.9 +19850408,5.4,-5.1,10.0,1.1,6.1 +19850409,3.1,-8.1,10.6,-1.7,7.1 +19850410,3.4,-7.8,13.3,-5.0,3.0 +19850411,9.4,-3.2,21.1,-5.0,2.7 +19850412,12.9,2.1,22.8,-1.7,2.5 +19850413,14.7,8.3,22.8,3.9,2.3 +19850414,13.1,10.6,19.4,7.8,1.6 +19850415,13.2,12.7,17.2,7.8,3.0 +19850416,12.8,11.2,17.8,11.1,1.9 +19850417,16.6,9.6,25.0,11.1,3.9 +19850418,16.6,7.8,26.7,5.6,2.6 +19850419,18.7,9.1,27.8,5.6,2.8 +19850420,18.3,8.9,28.3,7.8,2.5 +19850421,18.2,7.2,28.3,6.7,2.0 +19850422,18.8,5.8,28.3,6.7,3.0 +19850423,17.1,5.9,27.2,7.8,2.5 +19850424,16.9,12.4,26.7,8.9,3.1 +19850425,16.8,7.2,25.0,10.6,4.4 +19850426,15.8,4.2,26.7,4.4,2.5 +19850427,17.6,9.8,27.2,4.4,1.6 +19850428,19.4,14.4,24.4,11.7,3.8 +19850429,18.9,11.9,25.0,12.8,4.2 +19850430,14.4,5.1,25.0,3.9,2.4 +19850501,14.8,7.7,23.9,3.9,3.3 +19850502,15.2,12.3,22.8,13.3,3.6 +19850503,15.4,11.2,18.3,12.8,5.7 +19850504,12.4,4.9,21.1,2.8,3.0 +19850505,14.1,6.4,23.9,2.8,2.8 +19850506,16.3,8.4,25.6,3.9,2.9 +19850507,17.3,10.9,26.1,5.6,2.8 +19850508,14.2,11.6,25.0,10.0,1.9 +19850509,11.1,9.9,16.7,9.4,1.2 +19850510,15.1,13.7,20.0,9.4,1.6 +19850511,17.9,15.6,24.4,12.8,2.3 +19850512,19.6,16.4,25.6,14.4,2.0 +19850513,18.9,14.8,27.8,13.3,2.9 +19850514,20.1,15.7,28.9,13.3,2.9 +19850515,21.1,16.6,30.0,13.9,2.9 +19850516,19.7,11.4,28.3,13.9,4.5 +19850517,13.7,11.4,16.1,10.6,4.0 +19850518,13.7,5.8,18.9,8.9,7.2 +19850519,13.7,6.4,23.9,3.3,2.6 +19850520,16.4,9.2,25.6,3.3,2.0 +19850521,18.1,12.7,26.1,7.2,2.0 +19850522,19.6,14.9,27.8,10.0,3.0 +19850523,19.3,15.7,27.8,13.9,4.7 +19850524,13.6,11.1,16.7,11.1,5.5 +19850525,16.1,10.2,22.8,11.1,4.3 +19850526,16.8,9.8,26.1,7.2,1.7 +19850527,18.6,11.6,27.8,7.2,1.5 +19850528,17.4,13.3,28.9,8.9,2.3 +19850529,18.4,14.5,25.6,9.4,1.2 +19850530,19.7,16.6,25.6,11.7,2.6 +19850531,21.4,17.4,28.3,16.7,4.4 +19850601,24.2,15.4,32.2,17.2,4.0 +19850602,20.1,13.8,32.2,12.8,2.3 +19850603,22.8,17.2,30.6,12.8,3.1 +19850604,24.1,18.0,31.7,15.6,2.7 +19850605,24.7,18.7,33.9,16.7,2.5 +19850606,23.3,17.4,33.9,16.7,4.0 +19850607,21.0,16.2,31.1,16.7,4.0 +19850608,19.3,16.1,30.0,14.4,3.7 +19850609,22.0,15.6,30.6,13.9,2.2 +19850610,23.8,18.5,31.7,13.9,3.3 +19850611,23.0,18.2,31.1,17.2,2.3 +19850612,21.1,15.3,28.9,17.8,5.3 +19850613,14.7,5.1,25.0,8.9,7.3 +19850614,14.4,6.8,22.8,6.7,2.8 +19850615,16.4,10.7,26.1,6.7,2.4 +19850616,21.3,15.9,28.3,16.7,2.8 +19850617,21.4,14.7,29.4,12.8,2.0 +19850618,21.4,16.8,30.6,12.8,3.3 +19850619,19.5,12.2,26.7,13.9,3.2 +19850620,16.0,9.9,23.9,7.8,2.3 +19850621,18.2,10.2,26.1,7.8,2.7 +19850622,19.0,11.7,27.8,9.4,2.8 +19850623,22.6,16.7,28.3,18.3,2.4 +19850624,21.8,17.2,30.0,16.7,3.4 +19850625,22.1,15.7,31.1,15.0,3.4 +19850626,22.1,15.9,31.1,13.9,3.3 +19850627,21.9,13.8,30.6,13.9,3.2 +19850628,19.8,14.2,27.2,15.0,3.1 +19850629,18.6,17.1,25.0,15.0,2.2 +19850630,18.8,17.2,24.4,15.6,2.0 +19850701,17.5,15.5,21.7,15.6,2.5 +19850702,19.3,15.0,25.0,15.0,2.4 +19850703,19.3,13.2,27.8,10.6,2.3 +19850704,19.2,15.6,27.8,10.6,2.7 +19850705,19.9,16.8,26.7,14.4,3.5 +19850706,19.1,17.6,26.7,16.7,2.9 +19850707,20.9,16.8,27.2,16.7,3.5 +19850708,21.4,15.4,28.9,12.2,3.7 +19850709,22.9,17.8,28.9,12.2,3.4 +19850710,22.6,18.3,31.1,16.7,1.8 +19850711,22.6,16.8,31.1,16.1,4.3 +19850712,22.7,18.7,30.6,16.1,2.4 +19850713,22.3,18.9,31.1,16.7,2.1 +19850714,22.7,19.7,30.6,16.7,2.2 +19850715,21.7,18.9,30.6,16.7,2.0 +19850716,22.7,18.9,30.0,16.7,3.5 +19850717,22.9,18.7,28.9,17.8,2.2 +19850718,23.2,18.6,28.3,17.8,1.9 +19850719,23.8,18.6,30.6,17.8,2.1 +19850720,24.4,18.9,31.1,17.8,2.7 +19850721,22.8,19.2,31.7,17.2,2.0 +19850722,21.9,19.3,31.7,17.2,2.4 +19850723,21.2,18.9,28.9,18.3,2.8 +19850724,19.2,17.9,27.2,17.8,1.9 +19850725,20.5,18.9,26.1,17.8,2.3 +19850726,22.6,20.1,28.3,18.9,3.2 +19850727,21.7,20.5,28.3,19.4,1.8 +19850728,19.4,18.7,22.8,17.8,2.0 +19850729,20.5,19.1,26.1,17.8,2.2 +19850730,22.7,20.3,27.8,18.3,2.4 +19850731,22.4,20.3,28.9,18.9,1.9 +19850801,21.0,19.6,27.8,18.9,3.1 +19850802,20.4,16.8,25.0,16.7,3.1 +19850803,18.2,14.2,22.8,13.3,2.4 +19850804,17.7,13.0,23.9,10.0,1.6 +19850805,16.7,12.8,24.4,9.4,1.7 +19850806,19.9,17.1,24.4,9.4,2.0 +19850807,20.5,18.7,25.6,16.7,2.3 +19850808,21.2,19.5,26.7,18.3,1.9 +19850809,22.6,19.6,27.8,18.9,2.4 +19850810,22.5,18.8,29.4,17.2,1.8 +19850811,22.9,19.3,30.6,17.2,2.3 +19850812,22.0,18.9,30.6,17.2,2.0 +19850813,23.2,19.3,30.6,17.2,1.7 +19850814,22.4,18.0,31.1,16.1,2.3 +19850815,22.6,18.1,29.4,16.1,2.9 +19850816,21.2,18.5,28.9,16.7,2.2 +19850817,20.1,19.3,27.8,16.7,2.6 +19850818,21.8,19.1,26.1,18.9,4.1 +19850819,22.9,18.3,30.0,16.1,2.5 +19850820,21.4,18.9,30.0,16.1,1.7 +19850821,21.1,18.4,28.9,17.2,3.5 +19850822,19.5,14.3,27.2,14.4,4.0 +19850823,17.6,14.8,25.0,14.4,2.1 +19850824,18.6,17.1,22.2,14.4,2.5 +19850825,20.5,18.6,25.0,16.1,3.0 +19850826,21.2,18.7,26.1,17.2,3.1 +19850827,20.6,18.4,26.1,17.2,2.6 +19850828,21.2,18.2,27.8,17.2,2.2 +19850829,21.0,18.2,28.3,16.7,2.1 +19850830,21.0,18.4,28.3,16.7,2.6 +19850831,20.1,16.5,28.3,15.0,3.0 +19850901,19.9,16.5,29.4,15.0,2.0 +19850902,21.3,17.4,27.8,15.0,2.1 +19850903,21.1,17.5,29.4,14.4,2.1 +19850904,21.4,18.1,29.4,14.4,1.6 +19850905,22.7,19.2,30.0,16.1,2.1 +19850906,21.6,18.3,30.0,15.6,2.8 +19850907,22.4,18.8,29.4,15.6,2.8 +19850908,21.2,18.2,31.1,16.7,1.9 +19850909,21.9,19.3,31.7,16.7,2.2 +19850910,22.1,18.8,29.4,15.6,2.4 +19850911,21.6,18.2,28.9,15.6,3.9 +19850912,18.7,15.9,27.8,16.1,2.8 +19850913,15.1,11.4,20.0,12.8,2.1 +19850914,11.3,4.3,18.3,2.8,2.0 +19850915,10.9,6.3,20.6,2.2,1.8 +19850916,12.7,7.2,22.2,2.2,1.9 +19850917,13.5,8.7,22.8,3.9,1.5 +19850918,14.2,9.3,23.9,5.0,1.6 +19850919,15.4,10.1,25.6,5.6,1.7 +19850920,14.9,10.3,25.6,5.6,1.5 +19850921,16.3,12.3,25.6,5.6,1.4 +19850922,19.2,14.8,26.1,10.0,1.7 +19850923,17.6,15.1,26.1,11.7,2.3 +19850924,19.6,17.0,25.6,12.2,3.6 +19850925,16.6,11.9,24.4,11.7,3.7 +19850926,16.5,13.9,22.2,11.7,2.4 +19850927,13.8,9.2,23.3,10.6,6.9 +19850928,11.1,5.9,21.7,2.8,2.7 +19850929,11.4,6.7,21.7,2.2,2.1 +19850930,13.7,9.8,23.9,2.2,2.6 +19851001,14.7,12.8,24.4,5.0,1.7 +19851002,17.3,16.0,22.2,10.6,2.2 +19851003,18.9,17.0,24.4,15.0,3.0 +19851004,19.4,15.5,26.7,15.0,2.9 +19851005,14.8,8.3,26.7,10.6,5.8 +19851006,9.5,-0.1,17.8,5.0,4.6 +19851007,8.2,0.2,17.8,0.0,2.2 +19851008,9.5,5.4,18.3,0.0,2.4 +19851009,16.8,11.8,25.0,12.8,1.7 +19851010,15.6,11.7,25.6,8.9,2.4 +19851011,17.4,12.4,26.1,8.9,3.2 +19851012,17.8,13.9,26.1,8.9,2.0 +19851013,19.6,16.1,25.0,12.2,2.3 +19851014,19.2,15.8,26.1,13.9,2.2 +19851015,19.6,16.4,27.2,13.9,3.1 +19851016,18.8,14.0,27.2,13.9,4.1 +19851017,16.4,9.1,23.3,11.7,2.7 +19851018,15.4,12.0,22.8,10.6,2.0 +19851019,17.3,13.3,26.7,10.6,1.7 +19851020,18.1,14.1,27.2,10.6,1.2 +19851021,14.7,13.0,28.3,11.1,3.1 +19851022,12.6,11.8,17.2,10.6,2.4 +19851023,14.2,13.4,17.2,10.6,2.8 +19851024,15.8,14.9,18.3,13.3,2.1 +19851025,17.5,14.1,23.3,13.9,3.1 +19851026,14.9,7.9,23.9,11.1,2.0 +19851027,11.8,5.9,18.9,7.2,1.4 +19851028,15.1,10.1,21.1,7.2,3.2 +19851029,11.4,-1.1,21.1,8.3,2.9 +19851030,8.8,3.5,13.3,6.7,1.8 +19851031,11.4,10.4,12.8,6.7,1.7 +19851101,13.8,12.8,15.0,10.6,2.5 +19851102,15.1,14.0,17.2,12.8,2.3 +19851103,12.4,11.4,17.2,11.1,2.3 +19851104,9.5,8.6,13.9,2.8,5.7 +19851105,4.2,0.1,12.2,2.8,7.5 +19851106,8.1,4.9,13.3,3.3,6.0 +19851107,7.6,4.8,16.7,2.8,2.9 +19851108,7.2,-1.9,16.7,1.1,5.8 +19851109,5.6,-1.6,17.2,-3.9,3.0 +19851110,11.6,5.2,21.1,-3.9,2.3 +19851111,12.2,8.6,21.7,3.9,1.7 +19851112,12.7,9.9,22.8,4.4,1.6 +19851113,17.0,14.4,22.8,7.2,2.3 +19851114,14.2,11.4,22.8,8.3,2.1 +19851115,15.5,12.3,22.2,8.3,2.0 +19851116,12.9,11.8,22.2,9.4,2.9 +19851117,15.7,13.4,23.3,11.1,2.6 +19851118,15.4,13.9,23.9,11.7,2.1 +19851119,17.2,14.9,21.7,11.7,3.5 +19851120,18.3,15.7,22.8,14.4,2.1 +19851121,14.9,13.8,23.3,13.3,2.8 +19851122,10.8,9.6,16.7,7.2,3.4 +19851123,10.3,6.2,19.4,3.3,3.9 +19851124,8.8,6.2,19.4,3.3,2.2 +19851125,12.1,9.9,17.2,4.4,1.7 +19851126,14.3,11.3,22.8,8.9,2.6 +19851127,17.6,15.3,23.9,8.9,4.1 +19851128,17.7,15.1,21.7,15.6,4.9 +19851129,15.2,14.4,18.9,13.3,2.1 +19851130,12.6,12.0,16.7,9.4,2.5 +19851201,10.4,10.1,15.0,8.3,3.1 +19851202,5.3,-1.2,12.2,-1.7,5.9 +19851203,-3.2,-11.9,9.4,-7.8,6.5 +19851204,-0.7,-8.7,6.7,-7.8,1.6 +19851205,3.0,-3.6,7.8,-6.7,2.0 +19851206,0.8,-3.2,7.8,-1.1,6.0 +19851207,-0.3,-5.9,8.3,-7.8,3.6 +19851208,3.6,-2.7,14.4,-7.8,2.3 +19851209,6.2,1.6,16.7,-2.8,1.6 +19851210,5.8,2.2,18.3,-1.7,1.6 +19851211,9.8,7.8,18.9,-1.7,3.4 +19851212,13.8,12.5,16.7,4.4,2.4 +19851213,14.1,12.7,19.4,7.8,4.2 +19851214,-1.6,-6.2,6.1,-5.6,8.7 +19851215,-5.1,-13.2,5.0,-11.7,3.6 +19851216,0.1,-9.7,7.2,-11.7,4.1 +19851217,2.0,-6.2,11.1,-5.0,3.0 +19851218,1.3,-7.7,11.7,-2.2,6.9 +19851219,-3.8,-15.1,3.3,-9.4,5.0 +19851220,-2.9,-10.2,2.8,-9.4,3.7 +19851221,-5.5,-11.8,2.8,-10.0,6.8 +19851222,-5.3,-11.4,7.2,-12.8,2.7 +19851223,3.6,-2.3,13.3,-3.3,3.0 +19851224,2.3,-2.0,13.9,-5.0,3.0 +19851225,-5.8,-11.3,6.1,-12.2,7.8 +19851226,-11.5,-19.0,-2.2,-16.1,4.9 +19851227,-2.9,-12.1,10.6,-16.1,2.6 +19851228,1.2,-9.7,11.1,-2.8,4.4 +19851229,-2.7,-11.2,7.2,-10.0,3.8 +19851230,-1.7,-13.3,7.2,-10.0,4.6 +19851231,1.2,-7.4,6.7,-5.6,3.6 +19860101,3.2,-3.3,9.4,-2.8,6.5 +19860102,-0.2,-5.7,10.0,-7.8,2.8 +19860103,7.4,-1.2,13.3,2.2,4.3 +19860104,2.9,-2.8,14.4,-2.8,3.3 +19860105,0.3,-6.1,7.8,-2.8,6.7 +19860106,-2.4,-13.6,7.2,-10.6,4.6 +19860107,0.8,-10.7,7.2,-10.6,4.9 +19860108,-3.5,-14.3,6.1,-11.7,4.5 +19860109,-3.6,-14.7,10.6,-13.3,1.6 +19860110,3.7,-9.3,15.0,-0.6,3.3 +19860111,4.3,-10.9,11.1,-2.2,5.7 +19860112,2.1,-9.0,15.6,-7.2,2.5 +19860113,2.1,-9.1,16.1,-7.2,7.4 +19860114,-2.6,-11.6,10.6,-10.6,4.0 +19860115,2.1,-7.2,10.6,-10.6,5.3 +19860116,1.8,-6.3,15.6,-7.8,2.3 +19860117,7.7,3.2,16.1,2.2,3.2 +19860118,9.0,6.9,16.1,1.7,1.7 +19860119,8.6,6.4,16.7,2.8,5.0 +19860120,1.6,-3.7,11.1,-1.7,8.0 +19860121,4.3,-3.9,17.8,-4.4,4.0 +19860122,6.3,0.8,18.9,-4.4,2.7 +19860123,4.0,-2.6,8.3,-2.2,7.3 +19860124,-0.6,-7.4,8.9,-7.2,2.7 +19860125,0.8,-5.7,6.1,-7.2,2.7 +19860126,0.9,-0.6,7.2,-2.2,4.7 +19860127,-10.4,-15.8,2.2,-15.0,8.2 +19860128,-14.3,-20.8,-6.1,-19.0,7.2 +19860129,-3.2,-8.3,10.0,-10.0,2.0 +19860130,0.9,-6.3,10.0,-9.4,6.5 +19860131,2.1,-6.0,13.9,-5.0,2.7 +19860201,2.4,-5.3,14.4,-6.7,2.1 +19860202,6.2,-0.4,18.3,-6.7,2.8 +19860203,10.6,6.7,20.0,-2.8,2.2 +19860204,13.7,6.8,20.0,5.0,4.3 +19860205,14.6,11.3,20.0,7.8,4.0 +19860206,8.4,8.1,19.4,4.4,2.4 +19860207,9.1,4.5,13.9,1.1,3.5 +19860208,6.0,0.0,14.4,0.0,2.9 +19860209,4.6,0.9,14.4,-2.8,1.5 +19860210,6.5,5.1,15.0,-2.8,2.8 +19860211,2.4,0.7,7.8,-3.3,6.5 +19860212,-5.1,-11.3,5.0,-8.9,7.5 +19860213,-6.9,-14.6,0.6,-12.2,6.3 +19860214,-3.2,-13.4,0.6,-12.2,6.0 +19860215,-1.0,-4.4,2.2,-8.9,6.6 +19860216,1.8,-6.2,15.6,-6.7,3.6 +19860217,7.9,-0.5,15.6,3.9,3.5 +19860218,10.2,7.6,18.3,3.3,2.8 +19860219,10.3,7.2,20.0,4.4,2.1 +19860220,12.6,7.9,21.7,4.4,2.8 +19860221,12.9,7.4,25.0,4.4,2.6 +19860222,8.0,5.9,12.8,3.3,4.4 +19860223,5.5,-1.9,12.2,-0.6,6.3 +19860224,2.2,-3.9,12.2,-3.3,2.1 +19860225,1.1,-5.1,7.2,-3.3,8.8 +19860226,1.6,-5.9,11.7,-3.9,3.9 +19860227,6.6,1.6,11.7,-3.9,4.5 +19860228,-0.5,-4.1,8.3,-2.8,5.9 +19860301,-3.0,-10.9,1.7,-7.2,8.1 +19860302,-0.5,-11.8,8.9,-7.2,5.5 +19860303,5.3,-2.9,14.4,-6.1,3.8 +19860304,2.5,-2.5,14.4,-3.3,4.4 +19860305,3.2,-4.9,12.2,-3.3,5.6 +19860306,4.4,-5.0,12.2,-1.7,5.1 +19860307,2.7,-4.6,10.0,-3.9,4.5 +19860308,-0.3,-11.4,10.0,-6.1,5.3 +19860309,6.0,-3.7,17.8,-6.1,5.0 +19860310,11.1,8.7,17.8,5.6,3.2 +19860311,16.6,9.2,23.9,5.6,3.7 +19860312,11.4,3.5,23.9,7.8,4.1 +19860313,10.2,8.3,13.9,7.8,3.1 +19860314,10.7,9.8,14.4,7.8,3.0 +19860315,8.6,6.7,17.8,3.3,2.2 +19860316,9.1,3.8,17.8,1.7,2.9 +19860317,8.4,-0.1,17.8,-1.1,2.2 +19860318,9.5,-0.3,18.9,-1.1,3.4 +19860319,16.2,11.7,21.1,14.4,5.1 +19860320,7.2,1.3,21.1,3.9,7.0 +19860321,-0.8,-8.4,11.1,-5.0,7.9 +19860322,-0.2,-15.6,9.4,-6.7,6.0 +19860323,4.3,-9.9,17.2,-6.7,2.9 +19860324,10.2,-4.0,19.4,0.0,3.3 +19860325,9.6,-1.6,20.0,-1.1,3.0 +19860326,12.2,4.1,20.0,-1.1,3.2 +19860327,11.7,4.0,20.6,4.4,5.0 +19860328,10.6,-3.6,20.6,-0.6,3.1 +19860329,11.1,-1.4,22.8,-1.1,1.9 +19860330,13.6,1.4,24.4,-1.1,2.5 +19860331,15.1,2.4,26.1,1.7,2.0 +19860401,15.3,2.4,26.1,2.8,1.7 +19860402,17.3,3.9,26.1,3.3,2.6 +19860403,15.8,6.9,24.4,5.6,2.8 +19860404,17.7,7.3,26.1,5.6,2.9 +19860405,17.4,6.7,26.1,7.2,3.3 +19860406,17.7,7.3,26.7,7.2,2.7 +19860407,18.4,3.4,25.6,8.3,3.9 +19860408,14.1,5.2,25.6,8.9,1.9 +19860409,9.8,-1.8,20.0,6.1,8.3 +19860410,7.5,-5.9,13.3,3.9,9.4 +19860411,10.9,-5.9,18.3,1.1,4.8 +19860412,12.6,-2.4,21.7,0.6,3.0 +19860413,12.2,0.2,22.8,0.6,3.3 +19860414,14.6,4.8,23.3,0.6,2.5 +19860415,17.7,5.3,23.9,13.9,4.7 +19860416,7.8,-1.5,22.8,3.3,7.0 +19860417,3.6,0.2,11.7,0.0,7.2 +19860418,10.7,2.8,21.1,0.0,5.8 +19860419,13.3,4.5,23.9,1.7,2.4 +19860420,14.1,7.4,24.4,1.7,5.2 +19860421,12.4,8.5,17.8,6.7,4.9 +19860422,6.8,0.0,16.1,3.3,6.9 +19860423,4.3,-9.2,12.2,-1.7,8.2 +19860424,10.6,-7.6,22.8,-1.7,4.2 +19860425,14.8,-0.6,27.2,-0.6,3.1 +19860426,19.2,7.6,29.4,2.8,2.9 +19860427,20.1,9.2,29.4,8.3,2.2 +19860428,20.2,8.6,31.1,8.3,3.2 +19860429,16.3,7.6,30.0,10.6,5.8 +19860430,16.9,4.4,27.8,6.1,3.1 +19860501,19.1,7.1,27.8,6.1,3.1 +19860502,16.7,4.5,27.8,9.4,6.9 +19860503,12.1,-2.4,21.1,6.1,7.7 +19860504,9.9,-3.2,20.6,-1.7,3.1 +19860505,14.3,3.2,25.0,-1.7,3.1 +19860506,17.5,11.4,27.2,1.7,3.0 +19860507,18.4,14.2,27.2,8.3,2.7 +19860508,18.9,13.7,25.6,10.0,4.6 +19860509,16.9,10.9,25.6,7.2,2.8 +19860510,14.1,9.6,23.9,7.2,3.1 +19860511,16.2,11.2,25.0,7.8,2.8 +19860512,18.1,13.6,25.6,7.8,3.5 +19860513,16.3,14.7,22.8,13.3,2.1 +19860514,16.4,14.6,22.8,13.3,3.3 +19860515,17.7,13.7,23.3,13.3,3.9 +19860516,17.7,14.9,24.4,13.9,2.5 +19860517,18.7,14.6,27.2,13.3,3.0 +19860518,20.1,15.1,27.2,13.3,3.5 +19860519,17.6,15.6,27.2,13.9,3.1 +19860520,15.4,13.4,20.6,12.8,3.7 +19860521,13.1,7.8,20.6,7.8,5.9 +19860522,12.9,4.5,20.0,6.1,5.7 +19860523,11.6,8.2,20.6,5.6,2.0 +19860524,16.6,13.8,25.0,5.6,2.2 +19860525,18.9,15.4,25.6,11.1,2.3 +19860526,17.6,16.3,25.6,14.4,2.1 +19860527,17.9,16.6,23.3,15.6,3.0 +19860528,19.4,17.1,23.9,15.6,2.4 +19860529,20.7,17.7,26.1,15.6,3.1 +19860530,21.1,16.5,28.3,14.4,2.5 +19860531,22.0,15.2,28.3,14.4,4.2 +19860601,20.3,15.2,27.8,13.3,2.6 +19860602,21.2,16.4,28.3,13.3,2.9 +19860603,18.1,12.8,28.3,15.6,3.3 +19860604,17.2,14.5,23.3,14.4,2.7 +19860605,20.6,17.1,26.7,14.4,2.1 +19860606,21.6,16.8,29.4,13.9,1.6 +19860607,21.9,19.3,29.4,13.9,2.9 +19860608,21.7,19.4,29.4,17.2,2.0 +19860609,21.4,19.3,27.8,17.2,1.7 +19860610,21.6,19.3,27.8,17.2,2.3 +19860611,23.1,20.1,27.8,17.8,2.3 +19860612,24.0,18.0,30.6,17.2,2.4 +19860613,21.7,14.8,30.6,16.1,4.0 +19860614,20.8,15.3,27.8,14.4,2.2 +19860615,21.7,16.2,28.9,14.4,2.0 +19860616,22.6,17.2,29.4,14.4,2.1 +19860617,22.6,16.7,30.0,13.9,3.8 +19860618,21.9,13.5,28.9,13.9,3.7 +19860619,19.8,13.8,28.3,11.1,2.2 +19860620,22.1,15.9,29.4,11.1,3.9 +19860621,22.4,15.8,30.0,13.9,2.2 +19860622,22.6,15.2,30.6,14.4,2.7 +19860623,23.1,16.2,31.7,14.4,2.4 +19860624,23.4,17.9,32.2,14.4,2.6 +19860625,21.8,13.2,29.4,12.8,2.8 +19860626,21.4,13.7,31.1,11.1,1.9 +19860627,22.6,15.8,31.1,11.1,2.2 +19860628,24.6,18.7,32.2,13.9,2.5 +19860629,23.5,18.6,32.2,17.2,2.7 +19860630,23.0,19.5,30.0,17.2,2.9 +19860701,23.4,19.8,30.6,17.8,2.1 +19860702,22.6,19.2,30.0,18.9,2.4 +19860703,20.2,14.4,28.9,15.0,4.6 +19860704,19.3,13.4,27.8,10.6,2.5 +19860705,22.1,15.9,29.4,10.6,1.7 +19860706,22.4,15.3,31.1,13.3,2.3 +19860707,24.2,16.7,33.3,13.3,1.7 +19860708,24.8,18.9,33.3,15.6,2.4 +19860709,25.7,18.1,33.3,17.8,2.9 +19860710,23.6,18.6,33.9,17.8,3.4 +19860711,23.0,18.6,32.2,17.2,2.2 +19860712,24.7,17.8,32.8,17.2,2.7 +19860713,23.7,18.1,32.2,17.2,3.1 +19860714,24.8,17.8,31.7,17.2,4.5 +19860715,23.2,17.6,31.7,17.8,3.3 +19860716,23.8,17.7,31.7,16.7,2.9 +19860717,25.9,17.7,34.4,16.7,2.7 +19860718,26.4,18.3,34.4,17.8,2.9 +19860719,26.9,17.6,34.4,18.3,4.3 +19860720,26.3,17.1,34.4,18.9,3.7 +19860721,26.0,17.3,33.9,18.3,3.0 +19860722,25.1,18.7,34.4,18.3,2.8 +19860723,24.1,19.6,33.3,17.8,2.3 +19860724,23.3,20.1,33.3,17.8,2.4 +19860725,23.9,20.0,31.1,18.3,2.1 +19860726,24.6,18.6,33.9,18.3,2.8 +19860727,23.2,19.5,33.9,18.3,2.2 +19860728,24.1,19.4,32.2,18.9,3.4 +19860729,25.4,18.5,32.2,17.8,3.3 +19860730,25.0,13.7,32.8,17.8,4.4 +19860731,21.4,12.0,31.1,11.7,2.4 +19860801,23.1,15.4,31.1,11.7,2.7 +19860802,22.7,17.1,31.7,15.6,2.7 +19860803,22.8,17.4,31.7,15.6,3.5 +19860804,23.2,16.6,30.0,16.7,2.7 +19860805,21.3,18.8,29.4,16.7,2.0 +19860806,21.1,19.2,28.9,17.8,2.4 +19860807,22.6,18.7,30.0,17.8,2.7 +19860808,23.4,17.8,30.6,17.8,2.8 +19860809,23.0,17.9,31.1,17.8,3.0 +19860810,21.9,18.3,30.6,17.8,2.2 +19860811,22.0,18.7,30.6,17.8,2.8 +19860812,19.7,18.6,25.6,18.3,2.0 +19860813,20.1,18.1,23.9,17.8,1.9 +19860814,21.2,18.6,25.6,17.8,2.1 +19860815,22.1,18.8,29.4,18.3,2.0 +19860816,22.4,20.1,29.4,18.3,2.0 +19860817,20.7,19.5,29.4,18.9,2.8 +19860818,21.0,19.6,25.0,19.4,2.9 +19860819,20.3,18.7,25.0,18.3,2.2 +19860820,21.2,18.7,25.0,18.3,2.1 +19860821,21.7,18.7,27.2,17.2,1.8 +19860822,22.4,19.5,29.4,17.2,2.1 +19860823,23.0,20.6,29.4,18.3,1.8 +19860824,23.1,18.6,29.4,18.9,3.9 +19860825,19.2,15.3,27.8,12.8,2.2 +19860826,20.8,17.9,28.9,12.8,2.2 +19860827,22.7,19.4,28.9,15.6,2.5 +19860828,19.0,16.0,28.9,16.7,3.9 +19860829,12.9,7.4,20.0,5.6,2.7 +19860830,12.2,8.0,19.4,5.6,1.5 +19860831,14.3,12.8,17.2,7.2,1.5 +19860901,15.8,14.9,17.8,12.2,2.0 +19860902,16.7,16.2,18.9,15.0,1.7 +19860903,18.5,17.1,22.8,15.6,2.0 +19860904,19.2,18.4,23.3,16.7,2.3 +19860905,21.4,18.8,27.2,18.3,2.2 +19860906,21.2,15.6,27.2,17.8,3.7 +19860907,17.7,11.3,26.1,10.0,3.4 +19860908,16.9,13.8,26.1,10.0,2.9 +19860909,16.6,13.9,23.3,12.2,3.1 +19860910,18.4,15.4,24.4,14.4,3.1 +19860911,19.8,17.8,24.4,14.4,3.0 +19860912,22.0,18.0,26.7,17.2,4.6 +19860913,18.9,12.9,26.7,12.8,3.5 +19860914,17.1,12.5,25.6,10.6,1.7 +19860915,16.1,12.2,24.4,9.4,1.5 +19860916,18.9,15.1,25.6,9.4,2.6 +19860917,16.5,10.7,26.1,14.4,2.6 +19860918,16.0,12.6,20.0,13.3,3.4 +19860919,18.4,15.9,26.7,13.9,2.7 +19860920,19.7,16.8,27.2,14.4,2.4 +19860921,20.9,17.2,28.9,14.4,4.4 +19860922,18.8,15.3,28.3,12.8,1.5 +19860923,20.0,17.3,28.3,12.8,1.6 +19860924,20.9,18.2,27.2,15.0,1.5 +19860925,21.6,18.3,28.9,16.7,1.9 +19860926,21.9,18.3,28.3,16.7,2.0 +19860927,21.6,17.2,29.4,14.4,2.8 +19860928,20.8,16.9,29.4,14.4,2.5 +19860929,20.0,18.3,30.0,14.4,2.1 +19860930,21.2,18.4,28.9,16.1,2.7 +19861001,21.2,18.4,28.9,16.1,1.6 +19861002,21.2,17.9,28.9,16.1,2.0 +19861003,21.4,18.2,29.4,16.1,1.1 +19861004,20.9,16.6,30.0,13.3,2.2 +19861005,22.2,16.6,30.0,13.3,2.7 +19861006,15.8,9.1,29.4,11.1,6.1 +19861007,13.8,7.4,20.0,7.2,3.2 +19861008,14.0,10.1,22.8,7.2,2.2 +19861009,16.2,15.1,23.3,8.3,2.1 +19861010,15.4,13.9,17.8,13.3,2.1 +19861011,10.9,10.0,16.1,10.0,2.0 +19861012,11.7,11.2,14.4,10.0,3.0 +19861013,15.2,14.8,19.4,10.6,2.2 +19861014,16.2,13.6,21.1,12.2,3.8 +19861015,9.8,4.4,21.1,5.0,5.2 +19861016,9.8,2.9,15.0,5.0,4.5 +19861017,8.5,2.9,17.8,1.1,3.8 +19861018,8.7,3.0,18.3,0.6,1.6 +19861019,9.1,4.1,18.9,0.0,1.3 +19861020,8.6,3.1,20.0,0.0,2.3 +19861021,10.0,2.6,20.6,0.0,3.2 +19861022,10.3,4.2,21.1,0.6,1.6 +19861023,11.4,5.2,21.7,1.7,1.3 +19861024,14.3,8.3,21.7,2.8,1.7 +19861025,12.4,11.1,21.1,8.9,2.6 +19861026,14.1,12.2,20.0,11.1,2.3 +19861027,12.2,8.6,20.6,6.1,3.2 +19861028,12.4,6.2,19.4,6.1,4.0 +19861029,8.6,6.0,19.4,2.8,1.7 +19861030,12.0,7.1,21.1,2.8,3.0 +19861031,10.8,6.9,21.7,4.4,1.8 +19861101,12.1,10.7,17.8,4.4,1.4 +19861102,15.6,12.3,20.0,13.9,4.0 +19861103,12.5,9.4,20.0,7.2,2.6 +19861104,13.3,10.8,19.4,7.2,1.6 +19861105,14.2,12.8,19.4,8.9,3.7 +19861106,15.4,13.2,20.6,13.3,2.6 +19861107,15.1,14.2,21.1,13.3,2.3 +19861108,16.9,15.6,22.2,12.8,4.2 +19861109,18.3,14.2,23.9,12.8,5.8 +19861110,11.6,4.9,14.4,9.4,4.0 +19861111,9.1,6.9,14.4,6.7,3.7 +19861112,10.1,9.4,12.8,6.7,2.7 +19861113,3.8,0.2,10.6,-2.2,7.3 +19861114,-3.6,-10.5,6.7,-8.9,3.9 +19861115,1.6,-1.8,7.8,-8.9,2.3 +19861116,8.4,6.1,16.1,-1.7,2.3 +19861117,10.9,8.8,20.0,5.0,1.6 +19861118,10.2,8.8,20.6,5.6,2.3 +19861119,9.1,1.2,18.3,3.9,6.1 +19861120,5.0,2.4,12.8,3.3,3.6 +19861121,5.2,-0.3,9.4,1.1,7.4 +19861122,2.4,-1.7,11.1,-4.4,3.2 +19861123,6.6,4.3,12.8,-4.4,2.9 +19861124,12.0,10.9,17.2,2.8,2.4 +19861125,12.2,11.4,18.3,8.9,2.8 +19861126,12.2,10.1,20.0,8.9,4.9 +19861127,10.8,6.6,20.0,6.7,4.7 +19861128,8.9,6.9,13.9,6.7,2.0 +19861129,10.8,6.7,20.0,5.0,2.7 +19861130,8.9,3.6,20.0,5.0,2.1 +19861201,4.2,1.9,11.7,2.8,2.2 +19861202,4.6,3.3,8.3,2.8,2.6 +19861203,6.0,2.0,8.3,2.8,5.5 +19861204,2.9,-5.9,8.9,-1.1,7.0 +19861205,1.8,-8.4,8.9,-2.8,5.6 +19861206,-0.3,-7.5,11.1,-8.3,1.9 +19861207,-0.2,-6.5,11.7,-8.9,1.2 +19861208,6.3,0.7,12.8,3.3,1.6 +19861209,12.7,11.5,17.2,3.9,4.3 +19861210,11.1,10.2,17.2,6.7,3.5 +19861211,6.8,5.9,11.7,5.6,3.3 +19861212,6.4,3.9,10.6,1.7,4.8 +19861213,-0.4,-7.8,3.3,-3.9,7.5 +19861214,-2.6,-9.3,5.6,-8.9,2.7 +19861215,4.1,-6.2,14.4,-8.9,2.2 +19861216,5.6,-1.4,15.6,-1.7,1.7 +19861217,6.1,3.7,16.1,-2.2,2.0 +19861218,7.2,5.2,11.7,2.2,4.2 +19861219,2.3,-4.6,11.7,-3.3,4.6 +19861220,4.3,-4.3,13.9,-3.3,4.1 +19861221,3.0,-6.8,13.9,-3.9,4.5 +19861222,-0.4,-4.6,11.7,-5.0,2.2 +19861223,-1.8,-3.7,6.1,-5.0,1.3 +19861224,6.3,5.8,9.4,-5.0,1.9 +19861225,6.9,5.3,9.4,5.0,4.2 +19861226,4.7,0.3,12.2,1.7,4.3 +19861227,1.6,-0.8,12.8,-3.3,2.0 +19861228,3.6,-0.1,10.6,-3.3,3.4 +19861229,0.9,-1.3,10.6,-3.9,2.1 +19861230,1.7,-1.1,7.8,-3.9,4.1 +19861231,0.1,-4.8,5.6,-5.0,5.4 +19870101,1.4,-1.7,5.6,-5.0,3.1 +19870102,0.8,-2.9,3.3,-1.1,5.8 +19870103,-0.1,-5.9,7.2,-3.9,5.8 +19870104,-1.1,-4.4,7.8,-5.0,1.7 +19870105,1.9,-5.9,12.8,-5.0,3.2 +19870106,0.6,-7.5,13.3,-7.8,2.4 +19870107,4.4,-3.5,11.1,-7.8,4.8 +19870108,4.6,-1.6,11.7,-3.9,6.3 +19870109,2.0,-3.6,11.7,-5.6,3.3 +19870110,6.1,2.8,12.2,3.9,4.3 +19870111,0.1,-5.1,8.3,-2.8,6.6 +19870112,1.5,-7.7,11.7,-3.9,7.4 +19870113,6.7,-4.7,16.1,-3.9,6.5 +19870114,4.4,-2.8,16.7,-2.8,2.8 +19870115,9.6,4.9,16.1,-2.8,3.4 +19870116,8.0,6.4,16.7,3.3,3.1 +19870117,5.2,4.3,8.9,3.3,1.9 +19870118,3.0,2.6,6.1,1.7,3.8 +19870119,7.4,3.4,12.2,1.7,4.7 +19870120,0.6,-4.2,12.8,-2.2,6.6 +19870121,-0.1,-5.1,5.0,-2.2,5.4 +19870122,-0.3,-2.8,3.3,-2.2,3.8 +19870123,-4.8,-12.7,1.1,-8.9,5.9 +19870124,-4.4,-11.4,8.3,-13.9,2.4 +19870125,2.9,0.2,8.9,0.0,3.7 +19870126,-2.7,-4.7,4.4,-6.7,5.4 +19870127,-8.2,-12.4,0.6,-14.4,5.2 +19870128,-2.7,-5.6,2.2,-5.6,4.6 +19870129,-2.6,-6.0,4.4,-7.8,3.0 +19870130,5.8,-0.3,12.2,1.7,3.9 +19870131,2.2,-5.5,12.2,-1.7,9.7 +19870201,2.2,-5.4,10.0,-2.8,3.3 +19870202,3.7,0.4,10.6,-1.1,2.3 +19870203,6.3,3.8,10.6,-1.1,5.7 +19870204,6.0,-0.7,13.3,0.0,5.1 +19870205,4.5,-5.8,13.9,-1.1,3.2 +19870206,3.6,-6.7,12.2,-4.4,2.0 +19870207,7.8,-3.3,13.9,4.4,5.4 +19870208,4.5,-5.1,16.7,-5.6,4.3 +19870209,-3.6,-11.6,2.8,-6.7,12.3 +19870210,-0.9,-15.2,11.7,-10.6,2.7 +19870211,3.3,-11.9,15.0,-10.6,1.9 +19870212,9.8,-3.6,17.2,-6.7,5.1 +19870213,8.8,-3.6,17.8,1.1,6.3 +19870214,3.8,-2.6,16.7,-2.2,2.0 +19870215,5.7,4.0,8.9,-2.2,2.7 +19870216,0.7,-0.6,6.7,-1.1,2.5 +19870217,-0.3,-1.6,2.8,-1.7,2.5 +19870218,0.4,-0.9,3.3,-1.7,2.7 +19870219,1.4,-0.8,3.3,-1.1,1.9 +19870220,1.7,-3.2,7.2,-2.8,1.7 +19870221,3.4,-0.4,10.0,-2.8,2.2 +19870222,2.1,0.2,10.0,0.6,3.2 +19870223,3.6,-2.1,8.3,0.6,7.8 +19870224,1.2,-4.2,8.9,-5.0,2.3 +19870225,5.5,-2.1,11.1,-5.0,2.5 +19870226,4.3,-1.1,11.7,1.1,2.3 +19870227,0.9,-0.2,6.1,0.0,3.6 +19870228,2.5,1.1,4.4,0.0,3.4 +19870301,8.1,4.4,12.8,1.7,5.2 +19870302,6.6,-2.1,13.3,2.8,7.9 +19870303,5.7,-4.3,16.7,-3.9,3.9 +19870304,6.5,-9.4,16.7,-3.9,6.8 +19870305,3.9,-6.6,13.3,-3.3,2.2 +19870306,5.3,-3.0,16.1,-3.3,2.1 +19870307,7.6,-1.7,18.9,-3.3,2.3 +19870308,9.6,-0.1,18.9,5.6,1.5 +19870309,9.9,8.9,13.3,5.6,2.9 +19870310,4.4,1.4,11.1,1.7,7.5 +19870311,0.4,-7.4,6.7,-2.2,3.5 +19870312,1.2,-4.4,6.1,-2.2,4.3 +19870313,2.3,-4.9,9.4,-2.8,5.5 +19870314,3.7,-4.8,13.9,-3.9,2.7 +19870315,7.6,-2.8,18.3,-3.9,3.1 +19870316,9.4,1.1,18.3,-2.2,2.1 +19870317,5.5,1.7,15.6,2.8,3.9 +19870318,5.8,-0.7,11.7,1.7,3.2 +19870319,5.4,3.6,11.1,1.7,2.8 +19870320,10.9,2.9,17.8,3.3,4.1 +19870321,9.9,-3.4,18.3,2.8,4.4 +19870322,9.9,-6.4,20.0,0.6,3.8 +19870323,9.7,-1.3,20.6,-0.6,2.7 +19870324,9.2,0.1,18.9,-0.6,3.4 +19870325,9.4,8.3,14.4,3.9,3.4 +19870326,12.5,5.7,20.6,6.1,2.9 +19870327,10.4,6.6,20.6,3.3,2.2 +19870328,14.2,8.0,22.8,3.3,3.1 +19870329,11.5,8.1,22.8,6.1,1.9 +19870330,13.9,10.3,19.4,6.1,3.9 +19870331,4.2,0.4,20.0,-0.6,7.1 +19870401,1.3,-7.8,12.8,-5.6,4.8 +19870402,6.5,-2.2,17.2,-5.6,3.5 +19870403,0.0,-1.3,2.2,-2.2,6.3 +19870404,-1.8,-6.1,0.6,-3.3,9.1 +19870405,1.3,-4.3,5.6,-3.3,7.4 +19870406,4.2,-0.9,9.4,0.6,5.8 +19870407,6.1,-0.4,12.2,1.1,5.8 +19870408,9.6,3.0,16.1,1.1,6.0 +19870409,9.7,-1.4,18.9,-1.1,3.3 +19870410,9.9,-2.2,21.1,-1.7,1.3 +19870411,13.6,-0.4,22.2,-1.7,2.6 +19870412,13.2,1.6,23.3,2.8,3.0 +19870413,15.8,9.9,23.3,2.8,3.2 +19870414,13.7,9.4,24.4,9.4,3.5 +19870415,15.3,10.2,20.0,10.6,5.3 +19870416,10.3,7.2,20.6,7.8,4.6 +19870417,9.1,6.8,13.9,7.2,4.2 +19870418,12.0,7.4,18.3,7.2,5.1 +19870419,16.2,7.6,23.3,7.8,3.8 +19870420,17.3,8.6,26.1,7.8,2.4 +19870421,19.0,9.1,27.2,7.8,2.2 +19870422,19.3,11.9,27.8,8.9,2.1 +19870423,19.0,12.9,27.2,10.0,3.2 +19870424,12.7,9.3,21.1,8.3,5.7 +19870425,10.1,6.7,15.0,7.2,8.7 +19870426,13.2,6.2,21.1,6.7,4.8 +19870427,13.2,3.4,21.7,4.4,2.8 +19870428,14.8,1.1,21.1,4.4,5.7 +19870429,12.6,-1.7,25.6,0.6,3.2 +19870430,22.2,5.3,28.3,15.6,4.7 +19870501,17.8,11.2,29.4,10.0,2.7 +19870502,16.3,12.1,27.8,9.4,2.3 +19870503,17.1,12.6,26.1,9.4,2.3 +19870504,18.3,13.7,24.4,10.6,4.3 +19870505,11.9,9.0,25.0,8.3,3.0 +19870506,13.6,8.6,23.3,6.7,2.0 +19870507,17.7,9.2,25.0,6.7,2.8 +19870508,17.1,4.0,25.6,9.4,4.7 +19870509,13.9,4.0,23.3,3.3,2.2 +19870510,16.8,7.8,26.1,3.3,2.0 +19870511,17.3,8.9,26.7,6.1,2.7 +19870512,18.4,11.6,26.1,7.8,2.8 +19870513,18.3,14.2,26.1,10.6,2.0 +19870514,16.3,14.8,24.4,12.2,2.7 +19870515,18.6,15.0,26.7,13.9,2.2 +19870516,18.9,15.5,27.2,13.9,1.7 +19870517,20.9,15.5,27.8,14.4,1.9 +19870518,20.1,15.5,28.3,13.3,2.2 +19870519,20.8,16.5,28.3,13.3,2.5 +19870520,20.7,18.2,27.2,15.0,2.3 +19870521,19.8,17.5,26.7,15.6,3.3 +19870522,19.7,16.1,24.4,16.7,2.4 +19870523,21.3,17.7,27.2,16.7,2.1 +19870524,20.4,17.7,27.8,16.7,2.1 +19870525,19.9,16.9,27.8,15.0,2.0 +19870526,20.7,17.4,27.8,14.4,2.2 +19870527,20.5,17.8,27.8,14.4,1.9 +19870528,20.5,17.3,28.3,16.1,1.8 +19870529,20.1,18.2,28.9,16.1,2.7 +19870530,19.8,16.9,27.8,15.6,2.3 +19870531,20.6,17.4,28.3,15.0,1.5 +19870601,19.8,18.0,28.3,15.0,2.1 +19870602,20.9,18.2,28.3,16.7,3.2 +19870603,22.6,18.8,28.9,16.7,2.2 +19870604,21.4,17.7,30.0,16.7,4.4 +19870605,18.8,13.4,26.1,11.1,4.2 +19870606,18.7,10.7,27.2,10.0,2.9 +19870607,19.3,11.9,28.3,9.4,1.9 +19870608,20.7,14.7,28.9,9.4,2.5 +19870609,20.8,15.9,28.9,11.7,2.3 +19870610,20.3,16.9,29.4,11.7,2.7 +19870611,19.4,17.3,28.9,13.3,2.5 +19870612,22.5,18.2,29.4,15.6,2.0 +19870613,21.6,19.7,30.6,15.6,2.8 +19870614,22.0,18.1,28.9,8.9,2.1 +19870615,22.4,18.2,30.0,16.1,2.2 +19870616,22.1,19.3,28.3,16.1,2.1 +19870617,21.4,18.7,29.4,18.3,2.5 +19870618,22.0,20.3,29.4,17.8,2.2 +19870619,20.8,18.8,28.9,17.8,2.0 +19870620,21.6,19.4,27.2,17.8,3.2 +19870621,22.4,19.8,28.3,18.3,2.5 +19870622,22.5,19.4,30.0,17.8,2.4 +19870623,23.5,20.6,30.0,17.8,3.1 +19870624,23.7,19.2,30.6,17.8,3.3 +19870625,20.9,19.5,30.6,17.2,2.2 +19870626,21.3,19.4,27.2,17.2,2.5 +19870627,20.7,15.3,26.7,15.6,4.1 +19870628,18.1,10.1,26.1,8.9,3.0 +19870629,19.4,13.1,27.8,8.9,2.2 +19870630,21.1,15.9,28.9,10.6,1.9 +19870701,21.2,18.5,28.3,13.3,2.2 +19870702,22.3,19.7,28.3,16.1,4.5 +19870703,23.3,19.7,27.8,18.9,4.0 +19870704,22.4,20.2,28.3,19.4,2.8 +19870705,22.1,19.6,29.4,18.3,2.3 +19870706,22.7,19.1,30.0,16.7,2.5 +19870707,24.2,20.0,31.1,16.7,3.5 +19870708,22.7,19.4,31.7,17.8,2.9 +19870709,23.8,19.9,30.6,17.8,2.5 +19870710,23.5,20.4,31.1,18.3,2.4 +19870711,24.0,20.2,31.1,19.4,4.0 +19870712,22.6,18.1,30.0,17.8,4.9 +19870713,22.9,17.8,31.1,16.1,2.3 +19870714,22.7,18.1,31.1,16.1,4.9 +19870715,20.7,15.3,27.8,16.1,3.4 +19870716,19.7,13.7,27.2,12.2,3.5 +19870717,20.6,15.1,27.2,12.2,2.2 +19870718,21.8,16.6,28.9,13.9,2.0 +19870719,22.7,17.0,30.6,14.4,2.7 +19870720,23.4,17.6,31.1,14.4,2.2 +19870721,23.5,18.0,31.7,15.6,1.1 +19870722,24.2,16.7,32.2,15.6,2.6 +19870723,24.3,17.0,32.8,15.6,1.9 +19870724,25.2,17.9,33.3,15.6,1.5 +19870725,25.1,18.2,33.9,17.2,2.3 +19870726,25.0,18.2,33.3,17.2,2.9 +19870727,24.8,18.9,33.3,17.8,2.6 +19870728,24.9,17.9,32.2,17.8,4.3 +19870729,23.3,16.7,31.7,16.1,2.6 +19870730,23.7,19.1,31.1,16.1,2.4 +19870731,23.8,18.1,32.2,17.8,2.8 +19870801,24.6,19.0,32.8,17.2,2.3 +19870802,23.7,20.7,33.3,17.2,2.3 +19870803,25.1,20.8,33.9,19.4,2.8 +19870804,25.2,20.6,33.9,20.0,2.9 +19870805,24.6,19.7,32.8,19.4,2.5 +19870806,22.4,20.2,32.2,18.9,2.3 +19870807,22.7,19.9,30.0,18.9,2.7 +19870808,23.8,21.3,30.6,18.9,2.2 +19870809,25.3,20.3,32.2,20.0,2.5 +19870810,24.1,20.4,32.8,19.4,3.1 +19870811,22.2,18.4,30.6,17.8,3.2 +19870812,21.6,18.8,26.1,17.8,2.0 +19870813,20.3,17.3,25.6,15.0,1.7 +19870814,19.5,14.9,26.1,13.3,2.1 +19870815,21.3,16.2,27.8,13.3,2.1 +19870816,22.1,17.8,29.4,16.1,2.1 +19870817,21.8,18.6,30.6,16.1,2.2 +19870818,22.7,18.7,30.6,17.2,3.2 +19870819,23.8,19.1,31.1,18.3,3.1 +19870820,22.9,13.5,32.2,13.9,3.3 +19870821,22.1,14.2,32.2,13.3,2.2 +19870822,24.2,16.3,33.3,13.3,2.8 +19870823,24.3,17.1,33.9,15.6,3.5 +19870824,21.6,13.5,31.7,14.4,3.0 +19870825,22.2,17.3,27.8,14.4,3.0 +19870826,22.8,18.7,31.1,17.2,2.1 +19870827,23.7,19.6,31.7,17.2,2.4 +19870828,23.8,19.0,32.2,16.7,2.0 +19870829,22.2,18.7,32.2,16.7,4.0 +19870830,20.4,15.2,28.3,15.6,2.9 +19870831,19.7,17.8,26.1,15.6,2.2 +19870901,19.3,13.1,26.7,13.3,3.2 +19870902,18.6,11.2,27.8,10.6,2.5 +19870903,20.2,10.5,28.3,10.6,3.1 +19870904,20.7,16.2,28.9,11.7,2.7 +19870905,16.9,14.2,23.9,14.4,2.7 +19870906,18.7,17.9,22.2,14.4,1.9 +19870907,20.7,19.3,25.0,16.7,2.9 +19870908,20.5,18.1,27.8,16.7,2.7 +19870909,20.6,17.7,27.8,16.7,3.0 +19870910,20.1,17.9,28.3,16.1,1.7 +19870911,20.1,18.1,28.9,16.1,2.4 +19870912,20.1,19.0,26.7,16.1,1.9 +19870913,20.6,17.5,26.1,16.7,2.4 +19870914,20.9,16.5,32.2,15.6,3.2 +19870915,19.6,16.3,27.8,14.4,1.6 +19870916,20.0,17.7,26.7,14.4,1.7 +19870917,21.6,18.4,27.2,15.6,2.2 +19870918,22.8,17.3,28.3,17.2,3.4 +19870919,18.6,16.5,28.9,16.7,2.9 +19870920,19.2,14.3,30.0,15.6,5.1 +19870921,15.3,9.5,23.9,7.8,2.5 +19870922,14.6,8.6,24.4,7.8,2.9 +19870923,13.8,8.3,22.2,7.8,3.2 +19870924,13.3,8.6,21.7,5.0,2.9 +19870925,15.7,9.7,24.4,5.0,3.1 +19870926,15.3,10.3,25.0,7.2,1.4 +19870927,15.6,11.6,26.1,7.2,1.3 +19870928,15.4,12.9,23.3,8.9,1.4 +19870929,18.3,14.9,23.9,9.4,2.2 +19870930,16.8,12.7,23.9,12.8,4.9 +19871001,13.0,3.7,19.4,8.3,5.0 +19871002,10.3,4.7,22.2,1.1,2.3 +19871003,9.7,2.7,22.2,1.1,7.5 +19871004,8.4,-1.4,17.2,2.8,6.1 +19871005,10.1,3.7,21.7,0.6,2.5 +19871006,10.7,6.0,22.2,0.6,2.9 +19871007,9.9,3.6,18.3,3.9,3.9 +19871008,7.9,-0.3,15.6,3.3,6.8 +19871009,6.4,0.7,17.8,-1.7,2.1 +19871010,11.4,5.4,22.8,-1.7,2.5 +19871011,13.1,7.4,23.3,1.7,2.4 +19871012,10.5,8.4,23.3,3.9,5.9 +19871013,7.9,0.8,15.6,1.1,4.8 +19871014,6.2,-1.4,17.2,-2.8,1.7 +19871015,7.4,-1.7,20.6,-2.8,2.0 +19871016,9.1,-0.7,21.7,-2.2,1.6 +19871017,9.9,-0.2,22.8,-1.1,1.7 +19871018,12.1,4.5,23.9,-0.6,1.9 +19871019,11.8,5.7,24.4,1.7,2.1 +19871020,14.5,10.1,22.2,12.8,2.2 +19871021,9.6,3.1,18.3,4.4,6.3 +19871022,4.6,-7.0,13.9,-3.9,4.3 +19871023,5.4,-5.2,18.9,-4.4,2.0 +19871024,8.8,-2.9,21.7,-4.4,2.1 +19871025,12.2,3.7,21.7,7.2,3.6 +19871026,10.4,5.6,18.9,3.9,2.6 +19871027,9.1,4.8,17.8,3.9,2.8 +19871028,7.1,-1.5,12.2,1.7,5.4 +19871029,4.4,-3.7,15.0,-4.4,2.4 +19871030,11.6,4.3,21.7,5.6,1.9 +19871031,12.8,6.2,23.9,2.8,1.9 +19871101,13.1,7.3,24.4,2.8,1.6 +19871102,11.6,5.9,22.8,2.8,1.5 +19871103,11.3,6.2,22.2,1.1,1.6 +19871104,13.4,8.4,23.9,1.1,1.4 +19871105,14.1,6.4,25.0,5.0,5.6 +19871106,7.8,-12.0,18.3,2.8,7.9 +19871107,6.2,-6.8,20.6,-3.9,1.9 +19871108,10.3,-2.3,21.1,-3.9,3.5 +19871109,12.4,7.1,20.0,-0.6,2.4 +19871110,12.6,9.8,21.1,5.0,4.0 +19871111,0.0,-4.2,3.9,-2.2,10.2 +19871112,2.1,-7.9,12.2,-3.9,7.0 +19871113,3.9,-6.9,17.2,-6.1,3.0 +19871114,6.6,-4.6,18.9,-6.1,2.8 +19871115,5.9,-3.5,18.9,-3.9,1.7 +19871116,10.7,3.4,17.8,6.7,2.7 +19871117,14.6,13.8,16.1,8.9,4.7 +19871118,10.9,5.6,16.1,6.1,5.1 +19871119,4.7,-0.7,14.4,-1.7,2.5 +19871120,4.0,-2.3,10.6,-1.7,5.0 +19871121,-1.3,-12.3,6.7,-6.1,8.4 +19871122,0.6,-10.8,12.2,-7.2,2.9 +19871123,4.1,-3.8,14.4,-7.2,3.8 +19871124,8.3,3.6,18.9,-4.4,2.5 +19871125,11.2,7.8,18.9,-1.1,2.5 +19871126,9.3,8.2,17.2,4.4,0.6 +19871127,13.4,12.3,16.1,4.4,1.6 +19871128,8.3,7.8,16.7,6.7,3.0 +19871129,9.6,8.0,15.0,6.7,2.6 +19871130,4.0,0.4,15.0,2.2,7.6 +19871201,2.6,-2.0,6.1,0.0,4.8 +19871202,1.4,-5.7,7.8,-3.3,5.1 +19871203,0.1,-5.1,12.2,-6.7,2.5 +19871204,3.4,-2.7,12.8,-6.7,7.6 +19871205,-0.2,-8.3,5.6,-2.8,7.6 +19871206,1.3,-7.5,11.7,-5.6,2.8 +19871207,3.7,-4.1,12.2,-5.6,2.5 +19871208,3.4,-2.1,11.1,-1.1,2.3 +19871209,8.8,7.8,16.1,-1.1,2.6 +19871210,10.3,9.3,16.7,5.6,1.5 +19871211,5.9,-0.7,16.7,0.6,3.8 +19871212,8.6,-3.2,13.9,0.0,3.4 +19871213,5.1,-5.7,13.9,0.0,3.6 +19871214,5.2,-2.1,12.2,-0.6,2.6 +19871215,7.9,3.4,16.1,2.8,4.7 +19871216,0.0,-7.9,4.4,-2.8,7.4 +19871217,-1.1,-9.1,3.9,-3.9,8.3 +19871218,-1.5,-7.8,6.7,-8.3,3.4 +19871219,2.7,-5.0,11.7,-8.3,2.4 +19871220,11.2,6.2,17.8,7.2,4.5 +19871221,8.7,5.7,17.8,6.7,4.2 +19871222,8.1,6.1,12.8,5.0,2.6 +19871223,6.8,-0.7,13.9,1.7,4.5 +19871224,3.7,1.5,13.9,-1.7,2.8 +19871225,13.9,12.6,17.8,10.0,5.1 +19871226,16.1,14.4,18.3,12.2,4.6 +19871227,10.1,9.5,18.3,7.2,3.6 +19871228,6.6,6.2,12.2,5.6,3.7 +19871229,1.9,-3.2,7.8,-2.8,8.0 +19871230,-0.4,-8.4,10.0,-6.1,5.4 +19871231,3.8,-5.3,10.0,-6.1,4.0 +19880101,7.8,4.7,10.6,-1.1,5.7 +19880102,2.8,-1.7,10.6,0.6,5.1 +19880103,0.4,-3.1,6.7,-0.6,2.9 +19880104,1.6,-1.4,3.9,-0.6,5.4 +19880105,-4.4,-16.1,5.0,-7.2,7.9 +19880106,-7.1,-18.8,-1.7,-10.0,6.1 +19880107,-8.4,-12.7,-2.8,-10.0,4.2 +19880108,-5.9,-8.1,0.6,-10.0,3.2 +19880109,-3.0,-6.2,1.1,-8.9,4.8 +19880110,-4.7,-7.6,1.7,-7.8,3.8 +19880111,-6.0,-11.3,5.6,-16.7,2.7 +19880112,-4.6,-11.5,8.3,-16.7,2.2 +19880113,2.1,-5.5,8.9,-3.3,5.4 +19880114,-5.9,-13.3,6.7,-10.0,5.4 +19880115,-5.3,-12.9,3.3,-12.2,2.0 +19880116,-4.2,-10.8,7.2,-12.8,2.2 +19880117,0.8,-4.9,7.2,-2.2,2.9 +19880118,5.2,3.7,13.3,-2.8,2.8 +19880119,5.6,5.1,13.9,1.7,3.2 +19880120,8.1,6.3,16.1,3.9,4.6 +19880121,4.9,1.3,16.1,0.0,5.9 +19880122,1.2,-4.2,6.7,-1.1,6.9 +19880123,-0.8,-8.1,8.3,-8.3,3.3 +19880124,0.4,-6.8,10.6,-8.3,2.6 +19880125,3.6,-0.8,10.6,1.1,3.8 +19880126,-4.8,-12.8,5.6,-10.0,7.2 +19880127,-5.5,-13.4,1.1,-10.0,6.0 +19880128,-2.2,-10.7,8.3,-9.4,2.6 +19880129,1.3,-6.0,13.9,-9.4,1.8 +19880130,4.9,-4.1,14.4,-7.2,3.7 +19880131,10.4,6.7,15.0,9.4,3.4 +19880201,13.0,10.4,17.8,8.9,3.7 +19880202,13.9,11.7,18.3,10.6,4.7 +19880203,11.4,10.8,15.6,8.3,3.1 +19880204,6.6,4.9,12.8,1.1,6.1 +19880205,-1.1,-7.6,10.6,-3.9,7.9 +19880206,-6.9,-16.6,3.3,-11.7,7.8 +19880207,-7.2,-18.7,3.9,-15.0,4.1 +19880208,0.4,-14.9,7.2,-5.6,3.4 +19880209,-0.1,-9.1,9.4,-7.2,2.5 +19880210,2.0,-5.4,11.1,-7.2,3.1 +19880211,1.9,-3.9,11.1,-6.1,2.6 +19880212,-1.1,-6.9,10.6,-6.7,7.0 +19880213,-6.7,-13.3,1.7,-10.6,7.6 +19880214,-0.8,-9.3,13.9,-10.6,4.3 +19880215,5.9,0.2,14.4,3.9,4.7 +19880216,1.2,-4.1,8.9,-3.3,7.9 +19880217,2.7,-5.8,15.0,-6.1,2.6 +19880218,4.5,-3.8,16.1,-6.1,2.1 +19880219,6.2,0.8,15.0,-4.4,3.6 +19880220,5.7,1.9,9.4,2.2,3.2 +19880221,1.8,-11.3,9.4,-3.3,5.7 +19880222,0.3,-9.9,12.8,-9.4,3.4 +19880223,8.2,1.5,13.3,4.4,5.0 +19880224,0.9,-6.2,3.9,-2.8,7.8 +19880225,-1.0,-12.1,5.6,-7.8,4.5 +19880226,0.4,-13.0,11.1,-7.8,3.9 +19880227,4.4,-6.4,18.3,-7.8,3.9 +19880228,5.4,-7.3,18.3,-5.6,5.8 +19880229,4.6,-5.0,15.6,-5.6,4.2 +19880301,6.0,-7.8,16.1,-5.6,4.0 +19880302,5.4,-5.9,18.3,-5.6,2.6 +19880303,10.2,0.9,18.3,3.9,3.8 +19880304,13.7,10.6,17.2,3.9,5.4 +19880305,7.1,2.6,17.8,3.9,5.4 +19880306,7.4,-2.8,14.4,3.9,2.7 +19880307,8.5,1.5,18.9,1.1,2.8 +19880308,8.9,-0.1,20.0,-0.6,3.2 +19880309,12.3,7.8,18.9,10.0,3.1 +19880310,9.4,7.8,14.4,5.6,4.5 +19880311,5.9,-1.9,15.6,-2.8,4.2 +19880312,9.2,3.2,16.1,5.6,6.2 +19880313,11.1,3.7,15.0,5.6,5.8 +19880314,1.0,-7.8,6.1,-2.8,7.8 +19880315,-3.9,-12.4,3.9,-7.2,7.7 +19880316,-1.8,-10.6,4.4,-7.2,8.0 +19880317,1.7,-8.4,12.2,-5.0,5.1 +19880318,2.6,-3.8,12.8,-4.4,3.1 +19880319,2.6,-3.1,10.0,-2.8,6.6 +19880320,8.3,-5.3,17.2,-0.6,5.7 +19880321,11.4,-1.4,22.8,0.0,3.1 +19880322,9.1,-0.5,22.8,0.6,3.5 +19880323,8.5,1.3,20.0,-1.7,3.5 +19880324,13.0,6.9,20.6,6.7,3.5 +19880325,14.0,10.2,20.6,6.7,4.3 +19880326,14.4,10.4,20.6,8.9,4.1 +19880327,9.2,-3.2,21.1,3.3,5.6 +19880328,8.6,-4.9,20.6,-2.8,3.1 +19880329,11.1,-0.4,21.7,-2.8,3.3 +19880330,13.7,7.5,21.7,-1.1,3.0 +19880331,16.4,10.4,22.2,5.6,2.8 +19880401,14.4,10.1,22.8,10.0,2.5 +19880402,14.4,11.8,18.9,10.0,2.5 +19880403,14.6,12.9,19.4,10.6,3.2 +19880404,17.3,12.2,23.9,12.2,2.9 +19880405,17.1,3.9,27.2,6.7,3.0 +19880406,14.6,7.4,27.2,6.7,4.2 +19880407,7.4,0.6,10.6,3.3,9.4 +19880408,8.2,4.4,13.3,3.3,9.5 +19880409,10.8,-1.6,18.9,2.8,6.6 +19880410,11.1,-2.0,22.8,-1.1,2.9 +19880411,12.4,4.3,22.8,-1.1,2.2 +19880412,6.4,4.7,20.0,0.6,3.6 +19880413,7.5,2.3,15.6,0.6,6.1 +19880414,10.3,3.5,20.6,0.6,2.4 +19880415,13.0,5.7,20.6,0.6,5.0 +19880416,7.2,-0.6,20.0,1.1,5.9 +19880417,8.8,-1.9,20.0,-2.8,3.5 +19880418,15.8,6.6,22.2,11.7,4.7 +19880419,12.1,8.3,22.2,9.4,5.4 +19880420,8.6,-3.9,18.9,-2.8,3.3 +19880421,14.8,-1.2,25.6,5.0,4.3 +19880422,17.3,3.2,28.9,3.9,3.4 +19880423,18.6,10.8,28.9,6.7,3.4 +19880424,17.7,10.5,24.4,11.1,5.5 +19880425,12.2,4.0,22.8,7.2,4.6 +19880426,12.8,5.9,20.0,5.6,1.8 +19880427,15.2,5.2,23.9,5.6,3.0 +19880428,10.7,-4.7,23.9,6.1,8.4 +19880429,11.8,-5.1,17.2,7.2,7.2 +19880430,12.9,-3.6,18.3,6.1,3.8 +19880501,12.4,-0.8,21.7,2.8,3.3 +19880502,12.9,0.2,22.8,1.7,3.7 +19880503,12.6,3.4,23.3,1.7,2.5 +19880504,12.4,9.5,21.7,3.3,3.3 +19880505,12.3,7.2,16.1,7.2,5.6 +19880506,13.1,3.9,16.7,8.9,8.2 +19880507,17.1,6.4,25.6,9.4,5.7 +19880508,16.3,7.0,25.6,6.7,3.3 +19880509,17.1,10.8,25.6,6.7,4.7 +19880510,17.2,11.4,24.4,11.7,3.4 +19880511,14.4,6.5,24.4,4.4,3.7 +19880512,14.8,7.4,23.3,4.4,2.7 +19880513,16.8,9.8,23.9,5.0,3.0 +19880514,15.8,10.1,27.2,6.7,2.9 +19880515,17.6,12.6,28.3,6.7,2.1 +19880516,17.7,13.2,28.3,10.0,2.4 +19880517,15.6,13.4,27.8,10.0,2.9 +19880518,14.3,8.6,21.7,7.8,5.0 +19880519,14.8,8.8,22.8,7.2,3.0 +19880520,16.6,10.5,24.4,7.2,2.6 +19880521,18.6,10.8,26.1,8.3,2.7 +19880522,18.6,12.2,26.7,10.0,2.4 +19880523,20.9,14.2,27.2,10.0,4.3 +19880524,16.5,13.3,26.7,13.3,3.4 +19880525,16.7,10.6,21.7,13.3,5.2 +19880526,14.1,1.0,21.7,5.0,5.4 +19880527,13.8,4.4,22.8,3.3,2.3 +19880528,17.1,7.4,26.7,3.3,3.9 +19880529,19.1,8.1,28.9,6.7,2.9 +19880530,20.1,9.0,30.0,8.9,2.0 +19880531,21.8,12.1,30.0,8.9,2.4 +19880601,22.2,12.7,30.0,13.3,2.5 +19880602,21.0,11.7,30.6,11.1,3.3 +19880603,19.4,12.1,29.4,11.1,3.9 +19880604,14.1,5.6,26.7,6.7,3.1 +19880605,14.9,4.9,25.0,4.4,2.7 +19880606,18.7,7.5,29.4,4.4,3.1 +19880607,21.8,11.7,32.2,6.7,2.6 +19880608,22.8,12.9,32.8,11.1,2.6 +19880609,19.5,14.9,31.7,12.8,3.7 +19880610,14.4,6.4,26.7,6.7,6.0 +19880611,15.1,3.8,22.8,6.7,4.8 +19880612,16.6,5.7,27.2,4.4,2.8 +19880613,19.1,9.3,28.9,4.4,2.5 +19880614,20.9,11.2,30.0,8.3,2.2 +19880615,21.7,13.2,29.4,10.6,2.1 +19880616,21.7,14.4,31.7,11.7,2.1 +19880617,19.4,16.5,32.8,13.3,2.0 +19880618,19.1,16.3,27.8,15.0,1.7 +19880619,19.7,16.0,28.3,15.0,1.9 +19880620,21.1,16.0,30.0,13.3,2.6 +19880621,23.6,15.9,32.8,13.3,3.4 +19880622,24.1,16.3,33.3,15.6,2.2 +19880623,24.9,16.8,33.9,15.6,2.5 +19880624,23.6,18.3,33.9,16.1,2.0 +19880625,24.6,19.9,33.9,17.2,3.2 +19880626,25.9,18.6,34.4,18.9,4.1 +19880627,21.8,15.7,35.0,16.1,3.5 +19880628,20.8,12.2,27.2,13.3,2.4 +19880629,21.9,14.0,31.1,12.2,2.1 +19880630,20.9,18.0,31.7,12.2,2.5 +19880701,18.3,11.3,24.4,13.3,4.0 +19880702,16.9,9.1,25.6,6.7,2.0 +19880703,17.6,14.8,26.7,16.1,3.1 +19880704,17.4,16.7,20.6,15.6,2.4 +19880705,20.8,17.2,26.1,15.6,2.7 +19880706,20.5,13.9,28.3,11.1,1.9 +19880707,21.6,13.7,32.2,11.1,2.3 +19880708,25.2,16.0,35.6,11.7,3.1 +19880709,25.3,18.1,35.6,16.1,2.9 +19880710,22.5,17.7,32.8,16.1,2.6 +19880711,21.9,18.8,32.8,15.6,2.9 +19880712,23.6,20.2,30.0,15.6,3.5 +19880713,22.5,20.2,30.0,18.3,2.0 +19880714,23.9,20.9,31.1,18.3,3.2 +19880715,26.1,20.5,34.4,18.3,3.3 +19880716,25.9,20.7,35.0,18.3,2.5 +19880717,24.0,19.7,34.4,18.3,3.2 +19880718,24.4,21.1,32.8,18.3,2.5 +19880719,24.9,20.1,32.2,18.9,3.4 +19880720,25.2,18.4,31.7,17.2,4.0 +19880721,23.4,19.8,31.7,17.2,3.7 +19880722,22.2,17.3,31.1,18.3,3.3 +19880723,21.9,16.9,29.4,17.2,3.6 +19880724,22.8,16.2,28.9,16.7,4.2 +19880725,21.9,14.9,28.3,15.0,2.8 +19880726,22.1,17.0,28.9,15.0,2.2 +19880727,20.7,17.7,28.3,16.1,1.9 +19880728,22.9,18.6,30.0,16.1,3.0 +19880729,23.1,19.2,31.7,18.3,2.3 +19880730,22.0,19.1,31.1,17.8,2.5 +19880731,23.6,18.8,30.6,17.8,3.2 +19880801,24.4,18.4,32.8,17.2,3.0 +19880802,25.3,19.4,33.3,17.2,1.7 +19880803,24.7,19.6,32.8,18.9,2.1 +19880804,23.8,19.7,30.0,18.9,1.9 +19880805,21.8,19.7,30.0,18.9,2.2 +19880806,22.6,19.7,29.4,18.9,2.6 +19880807,23.1,18.8,30.6,18.3,3.4 +19880808,23.9,16.4,30.6,16.7,2.6 +19880809,24.3,19.4,31.1,16.7,2.4 +19880810,24.6,19.8,31.1,18.3,2.7 +19880811,22.9,19.6,31.1,18.9,2.6 +19880812,23.0,19.1,30.0,18.3,2.7 +19880813,23.6,18.4,30.6,16.7,2.2 +19880814,24.0,18.1,31.1,16.7,1.9 +19880815,23.3,19.5,31.7,17.8,2.1 +19880816,22.6,20.3,31.7,18.9,2.7 +19880817,25.1,19.7,33.9,18.9,2.6 +19880818,25.9,18.4,34.4,17.8,2.9 +19880819,24.7,18.6,35.0,16.7,2.3 +19880820,23.6,20.9,33.3,16.7,2.6 +19880821,23.9,19.7,29.4,20.6,4.3 +19880822,21.0,17.7,30.0,16.7,2.6 +19880823,20.7,18.1,25.6,16.7,2.7 +19880824,21.6,17.9,28.3,17.2,3.7 +19880825,21.6,14.1,28.9,12.8,2.8 +19880826,21.4,12.9,31.1,11.7,2.7 +19880827,21.6,14.9,31.7,11.7,2.1 +19880828,21.2,18.1,30.6,12.8,1.6 +19880829,22.6,19.3,30.0,16.7,2.9 +19880830,20.4,19.4,21.7,18.3,2.8 +19880831,18.4,16.3,22.2,16.7,2.3 +19880901,18.3,13.9,23.3,13.3,1.8 +19880902,17.2,12.7,25.6,9.4,1.6 +19880903,18.3,16.3,25.6,9.4,2.3 +19880904,19.4,18.8,22.2,15.6,4.1 +19880905,17.3,14.1,22.2,12.2,4.1 +19880906,16.6,13.2,22.2,12.2,3.9 +19880907,15.8,12.1,21.1,11.7,2.4 +19880908,13.8,9.3,21.1,5.6,2.1 +19880909,17.4,16.1,21.1,15.6,2.4 +19880910,19.8,17.8,25.6,15.6,1.8 +19880911,21.2,19.6,25.6,16.1,1.9 +19880912,21.4,19.4,25.6,17.8,1.7 +19880913,22.2,19.0,28.3,17.2,3.2 +19880914,22.1,18.3,29.4,16.1,2.9 +19880915,20.5,17.7,30.0,15.6,2.3 +19880916,18.6,16.1,25.0,15.6,2.8 +19880917,15.6,15.2,19.4,13.9,3.1 +19880918,18.1,16.7,21.1,13.9,2.0 +19880919,19.5,18.6,23.3,16.1,2.4 +19880920,21.4,19.0,28.3,17.8,2.7 +19880921,20.2,14.1,28.3,15.0,4.2 +19880922,16.6,10.6,27.2,6.7,2.1 +19880923,19.5,15.7,28.9,6.7,2.3 +19880924,21.1,18.5,29.4,11.1,2.0 +19880925,20.7,18.2,28.9,15.0,2.7 +19880926,19.2,15.3,27.2,15.0,3.5 +19880927,16.3,12.5,25.0,10.6,2.2 +19880928,15.4,10.8,24.4,8.9,1.7 +19880929,15.6,12.6,25.0,8.9,2.0 +19880930,18.4,15.7,23.3,9.4,2.6 +19881001,17.8,15.3,23.3,14.4,2.8 +19881002,18.2,17.3,22.8,14.4,2.6 +19881003,16.4,16.0,21.7,15.6,2.6 +19881004,14.6,10.2,17.2,11.7,6.6 +19881005,9.2,3.4,17.2,2.8,4.6 +19881006,8.5,2.7,16.1,1.7,3.4 +19881007,7.9,3.1,16.7,1.7,2.6 +19881008,6.7,0.7,15.0,-1.7,3.0 +19881009,6.9,2.1,15.6,-1.7,2.6 +19881010,9.4,4.9,17.8,0.6,2.1 +19881011,10.4,5.1,19.4,2.2,2.9 +19881012,9.3,-0.3,20.0,2.2,4.6 +19881013,5.6,-4.4,13.9,-6.1,5.4 +19881014,4.9,-2.6,17.8,-3.9,1.8 +19881015,9.6,1.8,21.1,-3.9,2.4 +19881016,8.6,1.1,21.1,-1.1,2.2 +19881017,13.9,8.9,22.2,-1.1,2.1 +19881018,14.9,12.1,23.9,5.6,3.0 +19881019,13.4,8.3,23.9,7.8,6.1 +19881020,6.4,1.0,15.6,-1.7,2.2 +19881021,8.2,7.4,13.9,-1.7,2.8 +19881022,10.0,2.4,13.3,5.0,6.1 +19881023,6.3,-0.7,17.8,-2.2,3.0 +19881024,12.5,1.7,17.8,7.2,5.1 +19881025,8.3,-2.3,17.8,0.0,3.4 +19881026,9.1,3.9,16.1,0.0,4.8 +19881027,5.2,-1.1,15.6,-2.8,2.8 +19881028,12.7,7.4,20.6,8.3,2.9 +19881029,10.9,2.4,21.1,3.3,4.6 +19881030,7.9,0.4,20.6,2.2,2.8 +19881031,6.2,2.9,14.4,2.2,2.0 +19881101,7.9,4.3,13.9,3.9,4.6 +19881102,5.9,-1.0,14.4,-1.7,4.7 +19881103,6.0,-0.3,18.9,-2.8,2.2 +19881104,9.9,6.7,19.4,-2.8,2.9 +19881105,13.6,9.2,18.9,3.3,5.1 +19881106,6.2,1.7,17.2,2.2,3.7 +19881107,7.9,-3.4,16.7,0.0,3.7 +19881108,6.9,1.4,18.9,-0.6,2.6 +19881109,9.9,6.9,18.9,-0.6,2.1 +19881110,14.1,10.4,19.4,3.9,4.2 +19881111,9.2,2.2,20.0,4.4,5.6 +19881112,3.5,-1.5,13.9,-1.7,3.4 +19881113,9.2,3.4,16.7,-1.7,4.7 +19881114,7.4,2.9,19.4,-1.7,1.9 +19881115,8.1,4.3,20.0,-1.7,1.9 +19881116,14.9,10.4,20.0,12.8,4.1 +19881117,10.7,5.6,20.0,6.1,7.0 +19881118,3.6,-5.2,12.8,-3.9,2.4 +19881119,5.7,-0.3,13.3,-3.9,2.7 +19881120,11.7,9.8,18.9,4.4,4.9 +19881121,8.2,0.9,19.4,5.0,8.5 +19881122,2.8,-1.6,11.7,-2.2,2.5 +19881123,6.6,4.6,10.0,-2.2,3.1 +19881124,8.4,4.5,16.7,2.2,3.5 +19881125,6.6,3.6,16.7,-0.6,2.4 +19881126,11.3,8.1,17.2,-0.6,5.4 +19881127,14.3,12.4,17.2,7.2,4.6 +19881128,6.1,0.4,15.0,1.1,6.9 +19881129,1.5,-6.1,11.7,-5.6,4.2 +19881130,3.3,-3.1,11.7,-5.6,3.1 +19881201,1.8,-5.8,9.4,-5.0,3.2 +19881202,1.3,-6.7,7.8,-5.0,6.6 +19881203,4.2,-7.7,14.4,-3.9,5.7 +19881204,7.1,-4.2,14.4,-3.9,7.0 +19881205,1.8,-11.2,11.1,-5.0,3.7 +19881206,3.6,-8.1,17.2,-5.6,2.1 +19881207,4.7,-5.2,17.2,-5.6,2.7 +19881208,5.1,-2.2,16.1,-3.9,3.0 +19881209,4.4,1.1,16.7,-3.3,5.9 +19881210,-1.0,-5.5,6.7,-7.2,3.9 +19881211,0.6,-7.2,7.2,-7.2,5.2 +19881212,-4.0,-12.3,5.0,-8.9,2.9 +19881213,-3.6,-10.2,5.6,-8.9,4.3 +19881214,2.9,-5.1,16.1,-8.3,3.9 +19881215,7.1,-1.9,16.1,-6.1,3.9 +19881216,1.2,-6.2,12.8,-1.7,6.1 +19881217,-3.6,-10.6,4.4,-6.7,5.5 +19881218,-3.5,-12.9,3.3,-8.3,5.3 +19881219,0.9,-8.5,15.6,-8.3,2.8 +19881220,7.2,-4.8,15.6,2.2,3.2 +19881221,10.4,6.1,14.4,0.6,4.0 +19881222,9.1,7.2,14.4,5.6,3.4 +19881223,7.9,7.0,13.3,5.6,3.1 +19881224,12.4,11.4,15.0,5.6,4.9 +19881225,7.9,1.1,15.0,3.9,5.9 +19881226,2.9,-6.2,12.8,-4.4,2.8 +19881227,2.9,-3.4,12.8,-4.4,2.9 +19881228,9.9,6.5,14.4,-3.3,6.3 +19881229,0.2,-6.2,15.0,-6.7,4.4 +19881230,-0.2,-3.2,8.3,-6.7,1.7 +19881231,6.2,5.1,11.1,-3.9,3.1 +19890101,7.1,5.7,11.7,4.4,4.6 +19890102,7.1,2.5,13.9,3.3,4.0 +19890103,8.4,2.7,16.7,3.3,4.4 +19890104,1.6,-8.2,7.8,-2.2,10.0 +19890105,0.3,-6.9,11.7,-7.2,3.1 +19890106,6.5,0.9,15.6,2.8,4.2 +19890107,5.1,4.2,15.6,-0.6,1.6 +19890108,11.7,10.1,14.4,-0.6,5.0 +19890109,1.8,-4.6,14.4,-1.1,7.0 +19890110,0.8,-0.3,4.4,-1.1,2.5 +19890111,3.2,2.9,5.0,0.0,2.3 +19890112,7.6,6.7,13.9,1.1,3.5 +19890113,7.1,3.9,14.4,2.2,5.8 +19890114,-0.6,-4.6,2.2,-2.8,3.6 +19890115,7.3,5.6,12.8,-2.2,5.2 +19890116,4.3,-1.1,12.8,1.1,6.8 +19890117,0.3,-6.6,10.0,-7.8,1.9 +19890118,1.8,-5.8,15.0,-7.8,2.0 +19890119,7.6,-2.1,15.6,2.8,3.8 +19890120,6.4,-4.1,15.0,2.8,4.7 +19890121,0.2,-9.3,10.0,-3.9,7.4 +19890122,-0.5,-10.7,9.4,-8.3,2.0 +19890123,2.7,-8.6,17.8,-8.3,1.7 +19890124,4.4,-6.1,18.3,-7.2,1.9 +19890125,7.0,-3.6,18.9,-5.0,2.5 +19890126,8.4,-1.3,18.9,-2.8,2.9 +19890127,9.2,2.2,18.9,-0.6,6.6 +19890128,4.1,-6.3,14.4,-5.6,2.8 +19890129,7.8,-2.6,18.9,-5.6,2.3 +19890130,13.1,7.3,19.4,10.0,3.9 +19890131,7.8,-0.6,18.3,-1.1,3.8 +19890201,9.6,-0.1,21.1,-1.7,3.1 +19890202,14.1,7.3,24.4,-1.7,2.4 +19890203,16.4,10.9,24.4,5.0,3.0 +19890204,7.0,4.9,13.3,3.9,5.3 +19890205,5.0,4.2,10.0,3.9,3.7 +19890206,6.6,5.8,11.7,3.9,3.6 +19890207,4.1,2.7,11.7,0.0,6.6 +19890208,-0.9,-6.4,6.1,-3.9,7.9 +19890209,-4.6,-16.3,4.4,-10.0,7.7 +19890210,-5.3,-16.6,4.4,-12.2,5.6 +19890211,0.6,-11.2,11.7,-12.2,4.9 +19890212,3.3,-8.9,12.2,-6.7,5.1 +19890213,4.6,-7.8,13.9,-5.6,4.0 +19890214,13.8,4.7,20.6,6.7,5.2 +19890215,17.4,12.1,23.3,8.3,5.8 +19890216,12.2,10.1,23.3,8.3,4.5 +19890217,2.4,1.2,12.2,-0.6,2.9 +19890218,-1.3,-2.5,5.0,-6.1,2.2 +19890219,-0.9,-1.9,2.2,-2.8,0.9 +19890220,1.6,0.4,5.0,-2.8,3.4 +19890221,8.6,6.8,15.6,0.0,4.3 +19890222,6.0,3.2,16.1,0.6,6.9 +19890223,-2.9,-6.1,0.6,-5.0,9.6 +19890224,-7.2,-13.7,-1.7,-10.6,11.8 +19890225,-3.5,-14.9,6.7,-10.6,7.4 +19890226,3.3,-6.3,16.1,-8.9,4.0 +19890227,3.7,-1.7,16.1,-5.6,4.3 +19890228,3.9,1.9,8.9,0.6,4.2 +19890301,2.9,-4.3,10.0,-2.2,3.4 +19890302,2.4,-2.2,10.6,-3.9,2.2 +19890303,5.8,3.1,10.6,-3.9,2.3 +19890304,7.8,7.2,10.6,3.3,3.5 +19890305,11.4,9.7,20.0,6.1,4.3 +19890306,16.6,10.9,21.1,7.2,5.7 +19890307,4.0,0.4,6.1,2.2,6.1 +19890308,2.4,-3.1,8.9,-1.1,3.7 +19890309,5.6,-2.9,13.9,-1.7,5.5 +19890310,8.6,-4.6,17.8,-1.7,5.6 +19890311,8.3,-1.2,18.3,-0.6,2.5 +19890312,10.9,0.2,22.2,-0.6,4.3 +19890313,9.4,2.3,22.8,1.7,3.3 +19890314,7.9,4.0,17.2,1.7,3.9 +19890315,15.2,10.4,21.1,11.1,3.9 +19890316,11.4,3.2,21.7,5.6,4.7 +19890317,10.2,3.7,19.4,1.7,3.0 +19890318,15.8,9.7,21.1,13.9,3.6 +19890319,8.6,0.3,21.1,0.6,6.4 +19890320,6.3,1.8,16.7,0.6,3.2 +19890321,9.2,7.6,13.3,3.9,5.0 +19890322,3.8,1.7,13.3,2.2,5.0 +19890323,2.9,0.8,6.1,1.1,2.6 +19890324,7.6,4.9,15.0,1.1,4.3 +19890325,12.2,5.8,24.4,3.9,4.2 +19890326,13.9,4.9,24.4,3.3,2.5 +19890327,15.6,6.9,23.9,3.3,2.5 +19890328,18.1,11.8,25.0,6.1,4.8 +19890329,20.2,11.6,26.1,10.6,4.7 +19890330,18.4,12.2,26.1,15.0,5.6 +19890331,12.8,7.8,21.7,7.2,4.7 +19890401,4.7,-3.3,10.0,0.6,7.6 +19890402,5.9,-2.8,16.1,-2.2,3.7 +19890403,13.4,5.9,20.6,9.4,5.5 +19890404,15.8,11.7,21.7,8.9,4.9 +19890405,11.9,8.7,22.2,9.4,5.0 +19890406,8.4,-2.7,15.6,3.3,5.8 +19890407,4.3,-0.6,12.8,0.6,4.7 +19890408,2.2,0.8,8.9,-1.1,3.1 +19890409,6.7,-0.8,11.1,-1.1,5.7 +19890410,5.3,-4.4,11.1,1.1,6.0 +19890411,3.8,-4.6,9.4,-1.1,5.2 +19890412,5.3,-3.6,12.2,-2.8,2.3 +19890413,7.8,-2.3,17.2,-2.8,2.6 +19890414,9.0,-0.9,19.4,-2.2,2.7 +19890415,11.8,7.1,20.0,8.9,3.7 +19890416,11.9,5.2,20.0,6.1,3.9 +19890417,13.6,4.6,24.4,2.2,2.2 +19890418,16.8,6.2,26.1,2.2,2.9 +19890419,16.4,8.8,26.7,6.7,3.9 +19890420,13.9,6.3,23.3,8.9,4.3 +19890421,12.9,5.6,22.2,3.9,2.6 +19890422,14.0,4.3,23.9,3.3,1.4 +19890423,15.4,8.2,24.4,3.3,2.0 +19890424,16.7,12.4,23.3,10.6,1.8 +19890425,18.7,12.3,30.0,8.9,1.9 +19890426,22.1,12.2,30.0,8.9,3.8 +19890427,22.7,13.9,30.6,14.4,3.2 +19890428,18.4,14.4,30.6,13.3,2.5 +19890429,17.6,15.6,26.7,13.3,1.9 +19890430,18.1,14.8,25.0,13.3,2.2 +19890501,16.4,15.7,25.0,13.3,2.2 +19890502,14.1,7.7,19.4,10.6,6.9 +19890503,11.3,1.2,18.3,7.2,6.2 +19890504,9.2,3.1,16.7,0.6,2.9 +19890505,13.5,12.3,17.8,10.6,4.4 +19890506,12.1,6.8,18.3,7.2,4.1 +19890507,6.3,-0.8,10.0,1.7,5.4 +19890508,7.4,-0.8,18.9,-2.2,2.9 +19890509,10.8,8.5,20.0,8.9,2.8 +19890510,11.5,8.8,12.8,8.9,5.1 +19890511,9.3,2.8,13.3,8.3,6.8 +19890512,9.7,2.3,16.1,3.3,3.9 +19890513,10.6,1.5,19.4,1.1,2.2 +19890514,14.7,7.5,20.6,10.0,2.2 +19890515,16.3,11.9,22.2,10.0,2.8 +19890516,14.1,5.4,22.2,7.2,5.8 +19890517,15.4,6.9,24.4,6.7,4.3 +19890518,17.5,10.3,25.0,6.7,1.8 +19890519,17.6,12.2,25.6,10.0,2.0 +19890520,16.5,11.8,25.6,10.0,2.3 +19890521,19.9,14.9,27.2,10.0,3.5 +19890522,18.7,13.9,28.3,10.6,2.9 +19890523,18.4,14.4,27.8,10.6,4.1 +19890524,17.3,9.1,26.1,9.4,4.3 +19890525,19.4,12.6,29.4,9.4,3.2 +19890526,23.3,16.7,30.6,11.1,2.9 +19890527,21.2,16.0,31.1,15.0,5.6 +19890528,17.6,8.9,25.6,11.1,4.1 +19890529,17.2,11.2,25.0,11.1,2.2 +19890530,20.6,14.3,28.3,11.1,2.4 +19890531,21.7,15.2,30.0,12.2,2.6 +19890601,22.6,17.4,30.0,12.2,2.2 +19890602,21.1,17.9,30.0,15.6,2.3 +19890603,21.4,17.2,30.0,15.6,2.4 +19890604,20.7,17.1,28.9,15.6,2.8 +19890605,20.1,18.1,27.2,17.2,2.0 +19890606,18.3,16.3,27.2,15.6,2.9 +19890607,18.7,14.3,26.1,12.2,2.6 +19890608,18.3,15.3,26.1,12.2,2.2 +19890609,20.4,18.2,24.4,12.2,3.9 +19890610,19.8,14.4,26.1,12.2,3.6 +19890611,20.1,13.2,28.3,12.2,2.8 +19890612,20.9,16.4,28.3,12.2,2.8 +19890613,21.4,16.4,27.8,15.0,3.9 +19890614,21.2,16.7,29.4,13.9,1.9 +19890615,19.2,17.3,29.4,13.9,3.5 +19890616,18.4,16.9,22.8,17.2,4.6 +19890617,18.4,13.9,25.0,13.3,2.2 +19890618,18.3,13.7,27.2,11.1,2.7 +19890619,19.3,16.8,25.0,11.1,1.8 +19890620,18.8,17.4,24.4,16.1,2.5 +19890621,19.4,17.9,22.8,17.2,3.3 +19890622,19.7,17.9,25.6,16.7,2.4 +19890623,20.8,17.2,27.8,16.1,2.9 +19890624,22.6,18.4,28.9,16.1,2.7 +19890625,22.5,18.7,29.4,17.2,2.2 +19890626,23.4,19.3,30.0,17.8,2.4 +19890627,23.4,19.2,30.0,18.3,2.6 +19890628,21.3,19.1,30.0,16.7,2.1 +19890629,21.8,18.6,27.8,16.7,2.8 +19890630,21.5,18.0,27.8,18.3,2.5 +19890701,21.1,17.0,25.0,17.8,2.1 +19890702,19.1,16.1,25.6,16.1,1.7 +19890703,18.4,17.2,21.7,16.1,2.4 +19890704,20.6,19.0,24.4,16.7,1.8 +19890705,21.9,18.9,26.1,18.9,2.6 +19890706,22.4,19.5,26.7,18.9,3.0 +19890707,22.6,20.2,28.9,18.9,2.9 +19890708,22.9,19.1,29.4,17.8,3.7 +19890709,23.8,18.2,30.6,17.8,2.6 +19890710,22.7,18.8,31.1,17.8,2.8 +19890711,23.6,19.3,31.7,16.7,2.7 +19890712,23.5,18.8,31.7,16.7,4.8 +19890713,22.3,19.0,30.6,18.3,3.8 +19890714,23.2,17.5,28.3,18.3,3.9 +19890715,22.3,17.6,27.8,17.2,2.3 +19890716,22.4,19.3,27.2,17.2,2.5 +19890717,21.3,16.6,26.7,18.3,4.3 +19890718,20.9,17.8,27.2,18.3,3.0 +19890719,21.5,18.9,25.6,18.3,3.3 +19890720,21.4,19.1,26.1,18.3,3.2 +19890721,20.7,18.7,25.6,17.8,2.6 +19890722,21.7,19.1,26.7,17.2,2.5 +19890723,22.6,19.3,27.8,17.2,2.0 +19890724,22.8,18.4,29.4,16.7,2.4 +19890725,23.7,19.7,30.0,16.7,2.6 +19890726,22.8,20.3,31.1,18.3,2.9 +19890727,23.6,20.2,31.7,18.3,2.6 +19890728,23.2,19.1,30.6,18.3,4.5 +19890729,23.7,19.8,30.0,18.3,2.3 +19890730,22.8,20.3,30.0,18.3,2.4 +19890731,21.6,19.7,28.3,18.9,2.9 +19890801,21.6,20.3,28.3,18.9,2.8 +19890802,22.9,18.9,27.8,18.9,3.9 +19890803,22.6,17.2,30.0,16.7,2.9 +19890804,23.7,18.6,30.6,16.7,3.7 +19890805,23.2,17.9,31.7,15.0,3.1 +19890806,24.7,20.1,32.2,15.0,4.1 +19890807,22.2,17.2,28.9,18.3,5.1 +19890808,16.8,9.5,26.1,12.2,5.8 +19890809,15.9,10.6,22.8,9.4,2.1 +19890810,17.1,11.7,25.0,8.9,1.7 +19890811,18.6,13.3,26.1,8.9,2.5 +19890812,19.6,16.2,26.7,11.7,2.1 +19890813,19.1,16.6,27.2,15.6,1.4 +19890814,20.7,17.7,25.6,15.6,2.2 +19890815,20.4,18.2,26.7,17.2,1.6 +19890816,20.9,18.0,26.7,16.7,2.8 +19890817,20.5,17.3,28.3,16.7,3.4 +19890818,19.8,17.9,27.8,16.7,1.7 +19890819,18.8,16.9,25.6,15.6,1.7 +19890820,20.5,17.3,27.2,15.0,2.4 +19890821,22.4,19.3,27.8,15.0,2.5 +19890822,22.9,19.1,30.0,17.2,1.4 +19890823,23.1,20.8,30.6,17.2,2.2 +19890824,22.3,20.6,30.0,18.9,2.7 +19890825,22.7,19.7,30.6,18.9,2.7 +19890826,22.4,20.7,31.1,18.9,1.8 +19890827,21.9,19.1,29.4,17.8,2.3 +19890828,23.4,21.1,28.9,17.8,2.5 +19890829,23.5,20.7,29.4,19.4,2.9 +19890830,23.1,20.1,30.0,19.4,3.3 +19890831,21.9,17.1,28.9,15.0,2.6 +19890901,20.3,17.6,27.8,14.4,2.3 +19890902,22.9,19.4,28.3,14.4,4.3 +19890903,20.6,17.7,28.9,17.8,2.8 +19890904,18.7,13.4,21.7,16.1,1.8 +19890905,17.1,14.3,22.8,13.3,2.4 +19890906,17.6,17.1,20.0,13.3,1.4 +19890907,20.5,18.4,27.2,16.7,1.1 +19890908,21.7,18.7,27.2,17.2,1.7 +19890909,22.2,19.1,28.9,17.2,1.8 +19890910,22.2,18.6,29.4,17.2,1.3 +19890911,22.0,19.1,29.4,17.2,1.5 +19890912,21.1,18.8,28.3,17.8,2.8 +19890913,21.5,20.1,27.2,17.8,2.1 +19890914,21.1,18.7,26.7,17.8,2.0 +19890915,19.9,18.6,26.7,17.2,1.6 +19890916,20.5,17.4,26.7,17.2,3.4 +19890917,17.2,13.4,25.6,13.3,4.6 +19890918,15.9,12.4,22.8,11.7,3.2 +19890919,17.1,13.0,22.8,11.7,2.2 +19890920,17.1,14.9,24.4,11.7,3.1 +19890921,20.7,19.5,24.4,12.2,1.5 +19890922,20.8,18.1,25.6,17.8,5.8 +19890923,17.6,15.7,25.0,12.2,3.3 +19890924,9.9,3.6,15.0,5.0,5.1 +19890925,10.3,8.1,15.0,5.0,1.9 +19890926,15.6,13.8,22.8,8.3,4.3 +19890927,15.2,10.8,22.8,11.7,4.0 +19890928,10.9,7.7,18.9,4.4,1.4 +19890929,13.4,13.1,17.2,4.4,1.4 +19890930,15.8,15.7,17.2,11.7,1.3 +19891001,15.2,14.9,18.3,13.9,2.3 +19891002,18.9,16.7,23.9,13.9,4.1 +19891003,18.7,14.9,24.4,13.9,4.9 +19891004,15.1,9.1,24.4,10.0,5.2 +19891005,11.6,7.1,22.2,2.2,2.3 +19891006,16.5,11.5,27.2,2.2,2.3 +19891007,16.3,11.1,27.8,9.4,4.7 +19891008,11.4,6.2,20.6,7.2,5.8 +19891009,7.9,0.9,16.1,-0.6,3.4 +19891010,7.9,3.2,17.2,-0.6,2.0 +19891011,11.5,5.3,22.2,0.0,1.7 +19891012,13.2,8.2,25.0,2.8,1.4 +19891013,16.1,11.0,27.8,3.9,2.4 +19891014,17.9,13.0,27.8,7.8,1.8 +19891015,15.0,10.2,26.7,7.2,1.6 +19891016,16.3,14.1,24.4,7.2,2.4 +19891017,19.7,18.2,23.9,10.0,3.6 +19891018,16.3,15.5,23.9,12.2,4.0 +19891019,8.7,7.6,19.4,4.4,6.2 +19891020,2.3,-2.8,10.6,-0.6,6.2 +19891021,6.2,-3.3,18.9,-2.8,2.5 +19891022,12.1,2.3,21.7,-2.8,4.4 +19891023,9.7,4.3,21.7,2.8,1.3 +19891024,11.7,4.8,20.6,2.8,1.4 +19891025,10.6,2.8,21.1,1.1,1.5 +19891026,9.6,1.0,21.7,0.0,1.6 +19891027,9.9,3.6,22.2,0.0,1.2 +19891028,11.4,4.4,22.8,0.6,1.4 +19891029,10.6,4.9,23.9,1.1,1.6 +19891030,12.9,9.4,22.2,1.1,1.3 +19891031,15.8,13.9,20.6,6.7,2.2 +19891101,11.3,5.8,20.6,6.1,4.5 +19891102,6.8,4.4,16.7,3.3,1.1 +19891103,6.8,2.4,10.6,2.8,4.2 +19891104,4.4,-1.1,12.8,-1.1,2.6 +19891105,6.6,0.1,18.3,-2.2,2.4 +19891106,11.5,7.8,18.9,8.9,2.7 +19891107,11.7,10.9,16.7,8.3,1.3 +19891108,14.8,13.8,18.3,8.9,3.9 +19891109,13.4,8.3,18.9,8.9,5.8 +19891110,5.9,-1.2,17.2,-2.2,3.1 +19891111,9.3,0.3,22.8,-2.2,2.3 +19891112,13.9,3.8,23.3,-1.1,2.2 +19891113,11.5,4.4,23.9,2.8,1.9 +19891114,10.8,6.6,23.3,2.8,2.0 +19891115,14.7,13.6,18.9,13.3,3.0 +19891116,8.8,3.6,17.8,1.1,5.9 +19891117,-0.6,-6.0,5.6,-4.4,4.4 +19891118,2.6,-5.4,11.7,-4.4,4.0 +19891119,5.2,-4.8,14.4,-2.8,2.5 +19891120,8.1,0.0,21.7,-1.1,2.9 +19891121,11.1,-2.6,21.7,-1.1,9.4 +19891122,1.9,-4.7,5.6,-1.1,2.8 +19891123,0.6,-2.4,3.3,-2.8,6.3 +19891124,-1.9,-8.6,5.6,-7.2,2.7 +19891125,2.8,-3.7,13.3,-7.2,3.1 +19891126,10.4,7.7,14.4,6.7,3.3 +19891127,9.9,9.8,14.4,6.7,2.2 +19891128,13.3,11.2,16.7,7.8,4.4 +19891129,3.8,-2.3,16.7,0.6,7.3 +19891130,1.3,-7.8,8.9,-3.3,6.3 +19891201,4.3,-8.1,12.8,-3.3,4.1 +19891202,2.9,-6.7,15.0,-3.9,1.4 +19891203,-0.7,-11.6,11.1,-6.1,8.0 +19891204,-3.1,-13.1,7.8,-8.9,5.2 +19891205,4.7,-7.2,15.0,-8.9,2.5 +19891206,6.8,-0.5,19.4,-1.1,1.4 +19891207,9.7,4.1,20.6,-1.1,3.4 +19891208,2.5,1.8,12.2,0.6,2.3 +19891209,0.5,-0.6,3.3,0.0,1.8 +19891210,2.7,0.3,7.8,0.0,4.4 +19891211,1.7,0.0,7.8,-2.2,2.4 +19891212,3.5,3.0,7.2,-2.2,3.5 +19891213,-1.3,-3.0,5.0,-3.3,6.0 +19891214,-3.6,-6.4,1.7,-8.3,2.7 +19891215,-0.3,-3.6,2.8,-8.3,3.9 +19891216,-8.4,-13.9,2.8,-13.9,8.2 +19891217,-7.6,-14.1,-2.8,-13.9,2.5 +19891218,-2.1,-11.6,3.3,-10.0,3.1 +19891219,-1.5,-5.8,3.9,-4.4,3.6 +19891220,-1.1,-7.5,2.8,-5.6,6.7 +19891221,-3.6,-7.8,3.3,-7.8,4.8 +19891222,-10.8,-18.3,1.7,-14.4,8.2 +19891223,-14.4,-21.9,-8.3,-17.2,7.7 +19891224,-11.3,-19.3,-1.7,-17.2,6.3 +19891225,-6.3,-15.4,-1.1,-16.7,3.2 +19891226,-2.4,-5.7,1.7,-10.6,4.4 +19891227,-2.8,-6.7,6.7,-8.3,3.1 +19891228,2.9,-3.8,11.7,-8.3,3.8 +19891229,0.8,-4.7,11.7,-6.7,1.6 +19891230,7.3,3.8,12.2,2.2,2.9 +19891231,10.2,9.3,12.8,1.7,2.9 +19900101,3.2,-1.4,13.3,-0.6,7.0 +19900102,-1.4,-6.2,6.1,-7.2,2.8 +19900103,3.6,-2.9,14.4,-7.2,2.6 +19900104,9.4,7.4,14.4,7.8,4.2 +19900105,7.8,6.3,12.8,1.7,1.7 +19900106,7.7,6.1,12.8,1.7,2.8 +19900107,5.1,0.5,9.4,3.9,1.9 +19900108,4.8,4.1,8.3,3.3,3.1 +19900109,3.8,0.6,14.4,-0.6,3.1 +19900110,8.2,-2.4,14.4,-0.6,5.8 +19900111,5.0,-3.8,20.0,-4.4,2.1 +19900112,5.0,-8.8,20.0,-4.4,7.4 +19900113,-1.9,-11.5,10.6,-6.1,8.3 +19900114,0.9,-10.7,11.1,-6.1,2.6 +19900115,6.2,-5.8,16.7,-4.4,2.7 +19900116,6.5,3.0,17.8,-1.7,1.6 +19900117,8.4,5.2,18.9,-0.6,2.3 +19900118,14.3,10.5,19.4,11.7,2.8 +19900119,10.2,7.4,20.0,7.8,2.9 +19900120,7.9,6.3,11.7,5.0,3.0 +19900121,10.9,8.2,12.8,5.0,4.7 +19900122,5.5,-2.3,14.4,0.0,5.6 +19900123,5.5,-2.9,15.0,-2.8,2.7 +19900124,8.6,1.9,15.0,6.7,1.8 +19900125,8.7,8.3,12.2,6.7,3.1 +19900126,2.1,-5.4,12.2,-2.2,6.4 +19900127,0.7,-6.1,11.1,-6.1,2.5 +19900128,3.7,-3.7,15.0,-6.1,2.0 +19900129,8.1,4.4,15.6,-5.0,3.3 +19900130,3.6,-3.6,13.3,-3.3,4.5 +19900131,5.8,-3.9,15.6,-3.3,3.1 +19900201,5.5,-2.8,16.7,-2.8,3.3 +19900202,12.1,9.1,20.6,-2.8,2.7 +19900203,12.4,11.4,21.1,3.3,2.6 +19900204,13.3,11.0,20.0,7.2,4.3 +19900205,6.0,-3.1,20.0,-0.6,6.7 +19900206,4.4,-4.7,15.0,-3.3,2.7 +19900207,8.8,4.5,15.0,-3.3,3.9 +19900208,5.3,2.2,15.0,-0.6,2.2 +19900209,10.5,7.3,15.6,-0.6,4.0 +19900210,10.9,9.6,13.9,5.6,5.9 +19900211,4.6,-1.1,13.9,-2.2,2.5 +19900212,7.9,-2.6,15.6,-2.2,4.5 +19900213,7.5,-0.7,16.1,-1.1,3.3 +19900214,11.7,4.1,20.0,-1.1,2.6 +19900215,14.8,10.3,20.6,12.8,4.8 +19900216,14.8,13.6,18.3,12.8,3.1 +19900217,8.1,2.7,15.6,3.9,5.9 +19900218,2.6,-3.3,10.6,0.6,2.7 +19900219,6.7,4.4,12.8,0.6,4.1 +19900220,7.6,-4.1,13.3,1.1,5.1 +19900221,3.8,-6.0,13.3,-2.8,2.6 +19900222,9.6,4.6,15.6,5.6,4.4 +19900223,12.4,8.5,16.1,5.6,6.0 +19900224,4.4,-4.8,14.4,-0.6,6.1 +19900225,-2.9,-14.9,10.0,-7.8,8.2 +19900226,-3.4,-13.8,2.8,-7.8,4.2 +19900227,3.6,-7.3,17.2,-7.8,2.1 +19900228,8.3,1.6,17.8,-6.1,3.5 +19900301,6.3,0.7,14.4,1.1,4.0 +19900302,6.1,4.2,9.4,3.3,2.8 +19900303,9.0,4.9,13.3,3.3,4.5 +19900304,7.3,-3.4,13.9,0.6,3.2 +19900305,6.6,1.3,15.0,0.0,2.2 +19900306,8.6,0.4,18.9,-0.6,1.9 +19900307,7.2,1.8,19.4,1.7,2.6 +19900308,3.3,-2.4,10.0,0.6,3.7 +19900309,9.1,7.4,16.7,0.6,3.1 +19900310,14.2,11.6,21.1,5.6,2.4 +19900311,15.8,11.6,25.0,8.9,2.0 +19900312,17.7,10.8,26.7,7.2,2.0 +19900313,17.5,10.0,27.2,7.2,2.2 +19900314,18.2,9.6,26.1,9.4,3.6 +19900315,17.5,13.2,25.0,9.4,4.8 +19900316,16.4,15.4,20.0,15.0,3.2 +19900317,13.3,11.7,17.2,10.0,4.5 +19900318,10.1,0.1,15.6,5.6,6.3 +19900319,9.3,1.5,17.8,3.9,3.9 +19900320,-0.1,-5.7,3.3,-3.3,10.0 +19900321,4.4,-7.6,16.7,-3.3,5.1 +19900322,8.1,-3.0,17.8,-2.8,3.4 +19900323,12.0,1.3,21.7,-2.2,2.7 +19900324,12.2,5.7,22.8,1.7,2.8 +19900325,10.6,7.3,19.4,5.0,4.6 +19900326,7.5,4.0,15.0,5.0,5.5 +19900327,6.6,-1.3,15.6,-1.1,3.6 +19900328,6.9,0.7,15.6,-1.1,2.6 +19900329,7.7,4.6,13.3,1.1,2.1 +19900330,6.3,5.5,8.9,5.0,3.3 +19900331,11.8,9.4,20.6,5.0,3.0 +19900401,15.2,10.0,22.2,6.7,2.5 +19900402,14.6,7.0,22.8,5.0,2.3 +19900403,5.7,-0.5,16.7,2.8,7.6 +19900404,6.1,-2.8,15.0,2.2,6.8 +19900405,10.0,-1.1,20.6,0.6,2.2 +19900406,11.4,2.7,21.1,0.6,3.2 +19900407,4.2,-4.6,18.3,-0.6,8.5 +19900408,4.9,-8.3,15.0,-2.8,3.4 +19900409,8.1,-2.5,16.7,-2.8,3.1 +19900410,11.6,7.2,16.7,-1.1,4.1 +19900411,9.7,5.8,16.1,6.7,6.0 +19900412,5.9,-4.8,11.7,1.7,5.4 +19900413,5.3,-4.2,14.4,-2.8,2.6 +19900414,10.4,-0.8,17.2,-2.8,3.2 +19900415,13.5,7.4,19.4,4.4,4.0 +19900416,14.9,3.6,21.1,7.8,3.7 +19900417,14.4,6.4,25.0,4.4,3.1 +19900418,8.1,-1.6,15.0,1.1,5.8 +19900419,7.7,-3.1,15.6,-0.6,3.7 +19900420,12.8,3.4,16.1,11.1,3.6 +19900421,16.1,11.6,21.1,11.1,4.5 +19900422,17.1,11.2,23.9,11.7,3.2 +19900423,18.2,11.3,25.0,11.1,2.7 +19900424,18.3,11.6,27.2,9.4,2.2 +19900425,17.7,11.8,27.2,9.4,2.4 +19900426,19.8,9.8,27.8,9.4,2.6 +19900427,18.7,8.6,27.8,7.8,2.9 +19900428,15.9,10.8,26.7,7.8,4.3 +19900429,12.2,8.9,18.3,7.8,2.3 +19900430,17.2,13.6,26.7,7.8,2.3 +19900501,20.8,16.2,28.3,10.6,3.2 +19900502,18.9,14.3,28.3,11.7,4.1 +19900503,17.6,16.2,26.7,11.7,2.5 +19900504,18.4,16.4,23.3,14.4,4.0 +19900505,19.5,14.1,25.0,15.0,3.7 +19900506,10.7,4.6,16.7,5.6,6.2 +19900507,11.8,5.7,21.1,5.6,3.6 +19900508,14.0,6.0,23.9,3.9,2.4 +19900509,14.9,11.2,24.4,13.3,3.3 +19900510,15.8,11.4,21.1,12.8,4.4 +19900511,12.6,1.7,21.1,5.6,4.1 +19900512,14.6,7.2,22.2,5.6,3.6 +19900513,19.2,13.0,25.6,9.4,4.6 +19900514,18.9,12.2,28.3,10.0,2.2 +19900515,19.7,13.7,28.9,10.0,2.8 +19900516,21.6,15.8,28.3,11.7,4.6 +19900517,19.8,14.5,28.3,15.0,3.8 +19900518,17.1,4.0,24.4,12.2,5.5 +19900519,16.2,7.6,25.0,8.9,2.5 +19900520,18.2,12.8,26.1,8.9,2.3 +19900521,19.8,16.0,26.7,13.9,2.3 +19900522,16.1,13.1,26.7,11.7,4.7 +19900523,13.8,9.6,20.6,8.9,4.1 +19900524,16.6,10.8,22.2,8.9,2.5 +19900525,17.3,13.6,23.9,10.0,1.8 +19900526,20.8,15.9,26.7,12.8,3.6 +19900527,20.2,16.5,27.8,15.0,2.8 +19900528,17.4,17.1,18.9,15.0,2.8 +19900529,15.1,13.2,20.0,12.2,5.1 +19900530,15.8,8.9,21.7,10.6,6.8 +19900531,16.8,11.5,23.3,10.6,2.9 +19900601,18.6,14.4,23.9,10.6,3.0 +19900602,18.6,16.0,22.8,13.3,3.4 +19900603,20.5,17.9,27.2,16.7,3.7 +19900604,19.7,14.9,27.8,13.3,4.2 +19900605,16.8,12.3,26.1,10.0,3.3 +19900606,19.3,15.1,26.1,10.0,2.8 +19900607,22.7,18.4,30.0,12.2,3.1 +19900608,23.5,20.8,30.0,15.6,2.6 +19900609,22.6,19.9,30.6,17.2,3.0 +19900610,20.3,18.1,28.9,16.1,3.6 +19900611,20.0,12.5,26.7,15.6,6.5 +19900612,18.9,11.9,27.2,10.6,2.7 +19900613,20.5,13.9,28.3,10.6,2.4 +19900614,21.9,17.1,29.4,12.2,2.9 +19900615,23.2,19.8,30.0,14.4,3.6 +19900616,21.7,19.5,28.3,18.9,2.3 +19900617,22.7,18.7,30.0,18.9,1.8 +19900618,23.9,19.6,31.7,16.7,2.4 +19900619,24.4,17.6,31.7,16.7,4.3 +19900620,22.3,13.4,30.0,13.9,2.5 +19900621,23.3,18.7,30.6,13.9,3.1 +19900622,23.8,19.1,30.6,16.7,2.3 +19900623,23.5,14.8,31.1,16.7,4.3 +19900624,19.4,12.6,27.2,12.2,3.4 +19900625,19.2,12.7,26.7,11.7,2.4 +19900626,20.6,14.0,28.3,11.7,2.2 +19900627,21.4,15.9,29.4,12.2,1.6 +19900628,21.6,16.4,31.1,13.9,2.1 +19900629,22.8,17.9,31.1,13.9,2.2 +19900630,24.8,18.4,33.3,15.0,2.8 +19900701,25.8,18.9,33.3,17.2,2.6 +19900702,23.8,15.4,32.2,18.3,3.9 +19900703,21.6,13.3,30.0,12.8,2.2 +19900704,23.3,14.9,32.8,12.8,2.4 +19900705,24.5,15.7,32.8,13.9,2.9 +19900706,25.1,17.3,33.3,14.4,4.2 +19900707,25.2,18.2,33.3,16.1,2.1 +19900708,24.2,19.9,34.4,16.1,2.2 +19900709,23.7,20.3,32.2,18.9,2.4 +19900710,24.6,20.4,32.2,18.9,2.4 +19900711,24.4,20.0,32.8,18.3,2.2 +19900712,23.1,20.4,32.2,18.3,2.4 +19900713,22.1,20.0,27.8,18.9,2.8 +19900714,20.7,20.4,27.2,19.4,3.8 +19900715,21.4,18.7,25.0,18.3,2.4 +19900716,20.2,15.6,26.7,13.3,2.4 +19900717,21.4,17.5,27.8,13.3,1.3 +19900718,21.7,19.0,28.3,16.7,1.7 +19900719,20.9,18.8,27.2,17.8,1.4 +19900720,20.9,19.6,27.2,17.8,2.4 +19900721,21.6,19.7,27.2,18.3,2.7 +19900722,23.2,20.3,28.9,18.3,2.0 +19900723,22.6,19.7,30.0,18.9,3.4 +19900724,22.2,18.4,28.9,17.8,2.5 +19900725,20.9,18.8,27.2,17.8,1.9 +19900726,20.6,16.8,27.2,14.4,1.4 +19900727,21.7,16.0,27.8,13.9,2.4 +19900728,21.8,17.6,28.3,13.9,2.4 +19900729,23.2,19.8,29.4,16.1,1.6 +19900730,22.6,19.0,30.6,16.1,1.9 +19900731,23.7,19.7,30.6,16.1,3.4 +19900801,22.1,18.1,31.1,16.1,2.2 +19900802,21.4,18.0,28.9,16.1,2.2 +19900803,22.4,19.0,28.9,17.2,2.4 +19900804,22.9,19.7,30.0,17.2,1.9 +19900805,23.9,20.4,30.0,17.8,2.0 +19900806,23.1,19.9,31.1,19.4,4.1 +19900807,21.6,16.7,27.8,16.7,4.9 +19900808,20.6,17.1,27.2,16.7,2.1 +19900809,21.8,17.9,25.6,16.7,1.9 +19900810,19.0,16.2,26.1,15.6,2.4 +19900811,20.1,15.5,28.3,12.8,2.3 +19900812,21.4,16.8,29.4,12.8,1.4 +19900813,20.6,17.9,30.6,15.0,2.4 +19900814,21.0,19.1,28.9,15.0,2.2 +19900815,22.7,19.9,30.0,17.2,2.0 +19900816,22.8,18.9,30.6,17.8,2.0 +19900817,22.2,16.9,30.6,15.6,1.9 +19900818,24.3,19.8,31.1,15.6,2.3 +19900819,24.2,19.5,32.8,16.7,2.3 +19900820,24.4,20.3,33.3,16.7,1.7 +19900821,21.8,20.2,33.9,17.8,1.9 +19900822,21.3,19.9,31.1,17.8,3.3 +19900823,22.3,19.5,28.3,18.3,2.2 +19900824,22.3,19.9,28.9,18.3,2.0 +19900825,23.7,21.4,28.3,18.3,2.4 +19900826,24.5,20.9,31.1,20.0,2.0 +19900827,24.0,19.9,31.7,18.3,2.6 +19900828,23.8,18.4,33.3,16.7,2.1 +19900829,23.1,19.1,33.3,16.7,2.4 +19900830,20.8,18.2,31.1,16.7,2.5 +19900831,19.6,18.0,26.7,17.2,2.1 +19900901,20.9,18.2,27.2,16.1,1.6 +19900902,22.6,19.6,29.4,16.1,3.0 +19900903,22.8,19.6,30.0,17.8,2.4 +19900904,21.5,18.1,30.0,17.2,2.1 +19900905,22.7,18.3,29.4,16.7,3.0 +19900906,22.6,17.8,32.2,15.6,2.0 +19900907,24.4,19.4,32.8,15.6,1.5 +19900908,23.0,20.1,32.8,17.2,2.1 +19900909,21.7,20.3,30.0,18.3,2.6 +19900910,22.2,19.5,30.0,18.3,1.9 +19900911,20.8,18.4,30.0,16.7,2.5 +19900912,21.5,19.3,29.4,16.7,1.9 +19900913,20.4,19.6,28.3,18.3,1.6 +19900914,21.1,19.7,25.0,18.3,2.2 +19900915,20.6,17.0,24.4,17.2,3.7 +19900916,17.1,12.3,25.0,10.0,2.6 +19900917,16.3,10.5,24.4,10.0,3.0 +19900918,14.2,9.9,23.3,7.8,2.6 +19900919,16.9,13.7,24.4,7.8,1.8 +19900920,21.4,18.2,28.3,11.1,2.9 +19900921,19.6,17.1,28.3,15.0,2.1 +19900922,20.3,18.2,26.1,15.0,3.9 +19900923,13.5,7.8,25.0,8.3,4.8 +19900924,11.2,3.9,17.8,6.1,6.2 +19900925,10.9,6.2,21.7,2.2,1.0 +19900926,14.5,9.7,25.0,2.2,2.3 +19900927,16.2,11.7,25.0,6.1,1.2 +19900928,15.6,12.1,25.0,7.8,1.3 +19900929,17.6,14.8,24.4,7.8,1.5 +19900930,17.4,15.0,25.0,12.8,1.6 +19901001,16.5,14.8,25.0,11.7,0.8 +19901002,15.8,11.2,26.1,8.3,1.6 +19901003,15.6,13.2,26.1,8.3,2.0 +19901004,19.6,18.0,23.3,17.8,4.8 +19901005,16.6,11.2,25.0,8.3,3.3 +19901006,14.7,10.4,25.0,6.1,2.0 +19901007,15.6,12.1,26.1,6.1,2.2 +19901008,20.1,17.4,26.7,17.8,2.1 +19901009,19.4,16.1,26.1,14.4,1.7 +19901010,17.5,16.7,25.6,14.4,2.3 +19901011,16.1,14.8,20.6,11.7,4.0 +19901012,17.7,17.5,20.6,11.7,2.4 +19901013,18.6,17.2,22.8,16.7,3.3 +19901014,17.7,15.0,23.9,14.4,2.8 +19901015,15.7,11.8,25.0,9.4,3.6 +19901016,14.1,10.2,22.8,7.8,2.2 +19901017,14.9,11.9,22.8,7.8,2.3 +19901018,18.2,14.4,23.3,10.0,4.6 +19901019,9.2,1.0,23.3,3.3,6.9 +19901020,8.2,3.8,17.8,0.6,2.2 +19901021,10.9,7.8,18.3,0.6,1.1 +19901022,14.8,14.4,18.3,6.1,1.0 +19901023,14.6,13.5,16.7,12.2,3.5 +19901024,13.0,8.7,19.4,8.3,5.4 +19901025,8.0,5.9,19.4,5.6,6.4 +19901026,6.1,-0.5,10.6,2.8,8.8 +19901027,6.6,-0.1,17.8,-1.7,2.5 +19901028,8.7,1.5,18.3,-1.7,4.2 +19901029,8.2,-4.1,17.2,0.0,4.9 +19901030,8.1,-1.7,21.1,-2.2,2.0 +19901031,10.3,-0.2,23.9,-2.2,2.0 +19901101,11.0,1.4,23.9,0.0,0.8 +19901102,11.3,4.1,24.4,0.6,1.3 +19901103,11.2,3.9,23.3,1.1,1.2 +19901104,11.2,5.8,24.4,1.1,1.3 +19901105,13.9,12.1,23.3,1.7,3.2 +19901106,9.3,4.3,19.4,4.4,6.7 +19901107,7.3,3.4,19.4,-1.7,2.1 +19901108,8.1,0.3,19.4,-1.7,5.1 +19901109,4.6,-1.6,12.8,2.2,3.0 +19901110,6.6,4.8,8.9,2.8,4.7 +19901111,6.5,-0.9,15.0,0.0,5.6 +19901112,11.2,2.9,17.2,0.0,5.1 +19901113,8.8,-2.3,17.8,2.2,5.3 +19901114,7.8,1.5,18.9,-0.6,2.3 +19901115,8.4,2.8,20.6,-1.1,1.4 +19901116,10.1,4.9,21.1,-1.1,2.5 +19901117,8.3,2.3,20.0,1.7,6.7 +19901118,6.8,-3.3,16.1,-1.1,3.8 +19901119,5.7,-1.4,17.2,-3.3,2.8 +19901120,9.3,3.2,17.8,-3.3,2.7 +19901121,8.2,4.9,18.3,0.6,0.7 +19901122,9.2,5.4,19.4,0.6,1.1 +19901123,13.5,9.6,19.4,10.0,2.2 +19901124,10.7,-0.3,18.9,3.9,3.1 +19901125,11.5,1.8,22.8,0.6,2.3 +19901126,10.4,3.7,23.3,-0.6,1.5 +19901127,14.1,9.3,22.8,7.8,2.7 +19901128,17.7,15.9,22.2,15.6,4.5 +19901129,8.3,4.1,22.2,3.3,7.7 +19901130,3.2,-7.3,11.7,-3.9,4.2 +19901201,3.1,-3.9,15.0,-6.7,2.2 +19901202,9.5,6.1,16.1,5.0,1.9 +19901203,12.8,12.3,16.7,4.4,4.8 +19901204,6.3,1.9,15.0,-1.1,7.3 +19901205,-0.3,-10.5,14.4,-5.0,5.8 +19901206,2.1,-7.8,15.0,-5.6,2.1 +19901207,4.7,-2.6,15.6,-5.6,2.9 +19901208,4.8,-1.4,8.3,2.2,5.5 +19901209,3.9,-5.1,12.8,-2.2,4.5 +19901210,7.3,-2.4,16.7,-2.2,4.2 +19901211,8.3,-0.9,16.7,-0.6,2.4 +19901212,6.2,-0.3,17.2,-2.2,2.5 +19901213,7.4,3.6,18.3,-2.2,2.0 +19901214,7.6,6.6,20.0,-1.1,3.4 +19901215,6.5,4.1,14.4,2.2,4.1 +19901216,9.4,5.9,14.4,2.2,4.9 +19901217,7.3,5.3,11.7,6.1,2.5 +19901218,12.9,11.7,17.2,6.1,5.9 +19901219,10.4,8.2,17.8,7.2,3.2 +19901220,6.9,5.0,15.6,3.3,2.4 +19901221,6.7,6.7,11.1,3.3,0.8 +19901222,12.7,12.4,16.1,4.4,3.5 +19901223,15.9,15.7,16.7,10.0,4.2 +19901224,4.0,1.4,16.7,-5.0,7.5 +19901225,-4.3,-10.0,4.4,-10.0,3.9 +19901226,-0.4,-7.8,5.0,-10.0,2.6 +19901227,-0.2,-4.8,5.6,-3.9,2.7 +19901228,1.8,1.6,7.8,-1.1,1.2 +19901229,8.8,8.5,16.7,0.0,3.5 +19901230,15.6,14.6,18.3,13.3,5.0 +19901231,7.3,5.7,18.9,0.6,7.6 +19910101,-0.1,-1.8,5.0,-3.9,2.4 +19910102,5.8,0.2,12.8,2.2,3.1 +19910103,4.2,1.2,6.7,2.8,3.5 +19910104,5.2,4.3,7.8,3.9,3.0 +19910105,4.8,4.4,8.9,3.3,3.2 +19910106,6.9,5.9,16.7,1.1,1.0 +19910107,10.8,10.7,12.8,6.7,2.7 +19910108,3.3,3.0,6.7,1.7,2.1 +19910109,4.3,3.7,10.0,2.2,3.0 +19910110,6.1,4.7,8.3,4.4,3.6 +19910111,4.2,4.1,6.1,3.3,2.6 +19910112,5.4,4.8,10.0,2.2,3.1 +19910113,-0.4,-3.4,1.7,-2.2,7.4 +19910114,-0.5,-4.7,12.2,-6.7,2.2 +19910115,-0.1,-2.3,5.6,-5.6,1.7 +19910116,9.0,5.6,16.1,5.0,3.2 +19910117,5.5,-1.0,10.0,3.3,6.8 +19910118,2.9,-3.1,11.7,-3.3,3.2 +19910119,2.3,0.3,5.6,-0.6,1.7 +19910120,5.9,4.6,10.0,3.9,3.3 +19910121,0.0,-3.4,6.1,-5.6,5.9 +19910122,-5.8,-11.4,0.0,-9.4,5.1 +19910123,-2.9,-8.7,8.3,-10.0,1.6 +19910124,0.6,-3.6,3.3,-1.7,2.8 +19910125,0.4,-7.3,6.1,-5.0,4.4 +19910126,-0.8,-6.4,9.4,-7.8,0.7 +19910127,1.0,-4.2,11.7,-6.7,1.5 +19910128,8.3,0.3,15.6,3.3,2.9 +19910129,6.3,3.4,13.9,0.0,1.7 +19910130,10.8,10.4,12.2,8.9,4.2 +19910131,4.4,-1.4,12.2,-0.6,9.0 +19910201,0.7,-11.7,10.0,-6.7,2.8 +19910202,2.6,-6.3,15.0,-6.1,1.3 +19910203,5.0,-3.5,18.9,-5.6,1.1 +19910204,6.2,-1.8,20.6,-5.0,1.6 +19910205,8.3,2.6,18.3,0.6,0.6 +19910206,11.6,10.4,15.0,9.4,2.5 +19910207,11.3,9.4,15.0,7.2,4.2 +19910208,4.8,1.2,8.3,2.8,9.0 +19910209,5.7,-4.2,16.1,-0.6,7.2 +19910210,7.8,-4.8,15.6,3.3,5.5 +19910211,5.1,-4.6,8.9,0.6,6.4 +19910212,5.6,-3.1,13.3,0.0,4.5 +19910213,4.7,1.3,10.0,-0.6,2.2 +19910214,8.2,2.1,10.6,5.0,5.0 +19910215,-5.3,-9.7,2.8,-10.6,6.8 +19910216,-10.0,-18.1,0.0,-15.6,6.7 +19910217,-1.6,-8.9,5.6,-6.1,2.6 +19910218,4.7,3.1,11.7,1.7,5.0 +19910219,10.9,9.7,16.7,6.7,4.1 +19910220,13.2,12.2,16.1,11.1,2.9 +19910221,9.9,7.4,14.4,7.2,2.6 +19910222,10.4,3.5,12.8,7.8,1.4 +19910223,7.7,0.9,11.7,5.0,2.4 +19910224,5.8,0.7,13.9,1.1,1.9 +19910225,8.3,4.5,13.9,3.3,1.6 +19910226,1.5,-2.2,7.8,-0.6,7.0 +19910227,1.1,-6.5,10.6,-6.1,2.1 +19910228,3.9,-3.4,14.4,-5.0,2.2 +19910301,5.6,2.2,12.8,-1.1,2.4 +19910302,13.7,11.5,17.8,11.1,5.3 +19910303,11.9,11.1,15.0,10.0,1.7 +19910304,2.1,0.3,11.7,-0.6,8.3 +19910305,4.6,-2.4,17.2,-1.7,4.9 +19910306,9.6,4.2,12.2,7.2,5.0 +19910307,10.7,3.8,13.9,5.6,5.1 +19910308,3.9,-0.8,8.9,0.6,5.2 +19910309,2.3,-3.8,11.1,-4.4,2.0 +19910310,1.7,-5.4,6.1,-2.2,8.3 +19910311,4.3,-5.3,12.8,-1.1,6.0 +19910312,5.1,-3.4,12.2,-1.1,2.8 +19910313,6.8,3.3,13.3,3.3,3.7 +19910314,7.2,5.0,9.4,5.0,3.9 +19910315,5.7,0.1,12.8,2.2,5.9 +19910316,6.8,-0.5,16.7,1.1,1.5 +19910317,7.3,1.3,11.7,3.3,2.9 +19910318,9.9,6.8,17.2,5.6,3.7 +19910319,8.4,0.2,12.8,4.4,8.4 +19910320,10.0,0.6,21.1,1.1,2.2 +19910321,15.3,4.2,24.4,6.1,2.0 +19910322,17.8,13.4,22.2,14.4,4.3 +19910323,18.8,10.4,22.8,15.6,4.2 +19910324,18.1,-4.3,22.8,13.3,6.0 +19910325,14.7,-0.8,23.3,7.2,3.8 +19910326,12.9,1.8,23.9,2.2,2.9 +19910327,17.5,8.1,21.7,11.7,4.0 +19910328,18.4,12.3,22.8,13.3,4.2 +19910329,11.4,9.8,17.2,10.0,2.3 +19910330,5.9,3.2,12.2,1.1,7.1 +19910331,3.6,-0.9,12.2,-1.7,2.7 +19910401,8.9,0.2,18.3,1.1,3.1 +19910402,12.3,-0.1,20.0,1.7,3.5 +19910403,11.3,1.2,18.3,3.9,2.4 +19910404,10.6,5.9,16.1,4.4,1.7 +19910405,12.8,11.8,18.3,11.1,1.3 +19910406,14.7,10.6,24.4,7.2,1.0 +19910407,16.2,10.1,25.0,6.1,1.6 +19910408,19.2,14.3,22.8,16.1,4.2 +19910409,18.7,15.2,25.6,12.2,3.1 +19910410,15.4,6.8,21.7,10.0,4.6 +19910411,13.9,2.8,21.7,6.7,4.0 +19910412,12.7,6.8,17.8,8.9,2.1 +19910413,10.4,9.3,13.3,8.9,2.9 +19910414,15.4,14.3,20.0,12.2,3.3 +19910415,16.9,14.0,25.0,11.1,4.4 +19910416,17.6,9.5,25.0,8.9,2.3 +19910417,17.8,8.9,27.2,8.9,1.4 +19910418,17.8,9.4,25.6,8.9,2.4 +19910419,15.2,12.9,21.7,11.7,4.1 +19910420,12.1,10.2,21.1,8.9,3.4 +19910421,7.8,4.9,10.0,5.6,6.9 +19910422,8.2,1.6,15.0,5.0,6.1 +19910423,10.2,4.0,18.9,3.3,2.7 +19910424,14.6,6.8,21.1,6.1,4.4 +19910425,11.6,1.5,19.4,2.8,2.9 +19910426,14.1,9.2,20.0,10.6,3.0 +19910427,15.9,15.2,19.4,14.4,2.9 +19910428,18.8,16.3,26.1,15.0,2.8 +19910429,19.2,17.6,24.4,16.1,2.7 +19910430,17.4,15.7,20.0,15.6,2.8 +19910501,17.8,12.4,27.2,11.1,2.7 +19910502,16.8,6.0,21.7,11.1,6.4 +19910503,14.9,4.3,27.2,3.9,2.3 +19910504,18.9,12.8,25.0,13.9,2.3 +19910505,17.9,15.8,21.1,15.6,3.1 +19910506,18.5,15.6,22.8,15.6,3.2 +19910507,15.2,5.0,21.1,8.9,5.8 +19910508,13.8,6.4,21.7,5.0,2.5 +19910509,15.2,12.5,18.9,12.8,2.2 +19910510,17.6,15.5,24.4,15.0,1.2 +19910511,20.6,16.6,25.6,16.7,2.3 +19910512,19.1,16.9,22.8,16.1,2.0 +19910513,19.8,16.6,26.1,15.6,2.2 +19910514,20.9,17.4,27.8,16.7,2.8 +19910515,20.9,17.5,27.2,15.6,1.8 +19910516,20.2,18.3,25.0,17.2,1.9 +19910517,21.3,18.4,27.2,17.8,2.4 +19910518,21.3,18.1,27.8,16.1,1.7 +19910519,17.5,16.0,23.3,13.3,2.1 +19910520,11.9,10.7,15.0,10.6,1.5 +19910521,14.6,13.4,18.9,12.2,1.5 +19910522,17.7,15.4,21.1,14.4,1.2 +19910523,19.6,16.4,25.0,16.1,2.0 +19910524,20.6,16.3,26.1,16.1,2.3 +19910525,20.4,16.7,25.6,15.0,2.6 +19910526,21.4,17.1,27.2,16.7,2.9 +19910527,21.9,20.2,26.7,20.0,3.0 +19910528,22.2,20.5,26.1,19.4,2.0 +19910529,23.2,20.5,30.0,19.4,2.3 +19910530,23.0,19.8,28.9,18.9,2.8 +19910531,24.1,19.2,31.1,18.3,3.5 +19910601,23.1,17.6,28.9,17.8,3.9 +19910602,23.1,17.4,30.6,17.8,3.7 +19910603,22.7,17.8,28.9,18.3,3.6 +19910604,22.4,17.3,28.3,17.8,4.6 +19910605,19.6,12.2,24.4,16.1,3.0 +19910606,17.5,10.1,20.6,13.3,2.2 +19910607,15.4,9.4,22.2,7.8,1.8 +19910608,16.9,10.1,24.4,8.3,2.5 +19910609,18.3,11.1,26.1,10.6,1.7 +19910610,19.7,11.8,27.2,11.1,1.9 +19910611,20.3,13.8,26.1,12.8,2.1 +19910612,19.8,16.7,23.3,17.2,2.1 +19910613,21.8,17.9,28.9,17.2,2.7 +19910614,21.8,19.2,27.2,18.3,1.4 +19910615,22.3,19.3,28.3,18.9,3.0 +19910616,22.3,19.8,28.9,18.9,1.9 +19910617,21.4,19.2,28.3,17.8,2.5 +19910618,21.7,19.1,27.8,18.3,2.5 +19910619,22.1,19.1,26.7,18.9,2.5 +19910620,21.5,19.9,24.4,20.0,1.6 +19910621,22.4,19.8,28.9,20.0,1.7 +19910622,21.1,18.2,27.2,17.2,2.8 +19910623,21.2,18.8,27.2,17.8,3.1 +19910624,18.5,15.9,23.9,16.7,2.8 +19910625,17.6,15.6,19.4,16.7,2.0 +19910626,16.4,15.3,18.3,15.0,1.1 +19910627,18.9,16.3,23.9,16.1,2.1 +19910628,22.2,18.1,28.3,17.2,1.7 +19910629,23.7,19.5,30.0,18.3,2.5 +19910630,23.5,20.0,29.4,18.3,2.3 +19910701,24.1,20.2,31.7,18.3,2.2 +19910702,23.3,19.9,31.1,19.4,2.0 +19910703,23.4,18.9,30.0,17.8,3.0 +19910704,23.4,19.3,30.0,18.9,1.7 +19910705,22.3,18.7,27.2,18.9,2.5 +19910706,22.1,16.9,29.4,15.6,2.0 +19910707,23.4,18.8,30.0,17.8,2.3 +19910708,23.6,19.3,29.4,18.9,3.3 +19910709,24.2,18.9,30.6,18.3,3.3 +19910710,22.8,18.9,30.0,17.2,2.9 +19910711,23.1,19.2,28.3,18.9,4.4 +19910712,24.0,19.5,30.6,18.3,1.7 +19910713,24.9,18.5,30.0,20.0,4.4 +19910714,24.1,17.5,28.9,19.4,4.0 +19910715,22.8,17.1,27.8,17.8,2.9 +19910716,21.8,17.9,25.6,17.8,2.1 +19910717,20.7,18.9,24.4,18.9,2.4 +19910718,21.2,19.2,25.6,19.4,3.4 +19910719,22.7,19.4,30.0,18.9,2.4 +19910720,23.0,19.7,30.0,18.9,1.8 +19910721,24.2,20.3,31.7,19.4,2.6 +19910722,25.1,20.0,32.2,18.9,2.1 +19910723,25.7,19.3,32.2,19.4,3.1 +19910724,25.1,19.7,31.7,19.4,3.7 +19910725,22.1,19.4,28.3,18.3,2.7 +19910726,22.7,20.0,27.2,19.4,2.2 +19910727,23.0,19.9,28.3,20.0,2.7 +19910728,20.4,19.2,23.9,18.9,2.1 +19910729,21.7,19.5,25.6,19.4,2.4 +19910730,22.6,19.5,28.9,19.4,2.5 +19910731,22.8,19.8,27.2,19.4,2.6 +19910801,21.9,19.9,26.1,19.4,2.7 +19910802,22.0,18.9,28.9,16.7,2.6 +19910803,23.9,19.5,30.6,18.9,3.2 +19910804,23.7,18.6,31.7,16.7,2.8 +19910805,23.1,20.1,28.9,19.4,2.8 +19910806,23.6,20.2,31.7,19.4,1.9 +19910807,22.7,19.7,31.1,18.9,1.7 +19910808,23.1,20.2,30.6,19.4,2.9 +19910809,22.3,20.7,27.2,20.0,2.4 +19910810,21.6,19.8,26.1,17.8,2.3 +19910811,21.2,18.0,26.1,17.8,2.7 +19910812,19.6,18.1,23.3,18.3,1.7 +19910813,19.3,16.8,23.3,16.7,1.9 +19910814,18.7,18.1,21.1,17.2,2.6 +19910815,19.1,15.7,26.1,13.9,3.0 +19910816,20.0,14.9,27.2,13.9,2.4 +19910817,20.5,16.4,27.8,15.0,1.6 +19910818,20.9,17.1,28.3,14.4,1.6 +19910819,22.4,17.8,28.9,17.8,3.0 +19910820,19.6,15.2,23.9,15.6,4.2 +19910821,18.6,13.1,25.0,13.3,3.6 +19910822,19.8,14.6,25.6,15.6,2.8 +19910823,19.3,14.7,26.1,12.8,1.3 +19910824,20.7,16.3,27.2,15.6,2.3 +19910825,20.3,18.8,23.9,18.3,1.4 +19910826,19.3,18.5,20.0,18.3,1.9 +19910827,21.6,19.1,27.2,18.3,1.8 +19910828,23.0,19.9,28.9,18.9,2.4 +19910829,22.9,20.6,28.3,20.0,2.1 +19910830,22.8,19.3,28.9,18.3,1.5 +19910831,23.1,19.2,31.1,17.8,2.5 +19910901,22.4,19.0,28.9,17.2,1.8 +19910902,19.3,16.2,22.2,17.2,2.9 +19910903,17.3,14.3,21.7,13.3,1.9 +19910904,19.4,16.3,26.7,15.0,1.8 +19910905,21.4,18.2,27.8,17.2,2.1 +19910906,20.6,18.8,25.0,17.8,2.4 +19910907,21.1,18.6,26.7,17.8,2.6 +19910908,21.4,18.4,25.6,18.9,2.6 +19910909,20.2,16.4,26.1,16.1,1.8 +19910910,18.8,15.6,25.6,12.8,1.6 +19910911,21.5,17.9,28.9,16.1,2.7 +19910912,22.5,17.6,29.4,17.2,3.1 +19910913,21.3,17.6,29.4,15.0,2.2 +19910914,24.1,19.6,32.2,18.3,2.5 +19910915,23.2,18.9,33.3,17.8,1.5 +19910916,22.7,19.3,31.7,17.8,2.1 +19910917,22.9,19.7,30.0,17.8,2.1 +19910918,22.4,19.9,29.4,18.9,2.2 +19910919,20.2,18.0,26.1,14.4,3.6 +19910920,14.4,7.6,20.0,11.1,6.0 +19910921,12.5,7.4,18.9,6.7,2.0 +19910922,12.1,7.7,20.0,5.6,2.1 +19910923,15.1,10.7,23.3,8.3,1.9 +19910924,16.9,14.4,21.1,13.3,2.1 +19910925,16.7,15.3,21.1,15.0,2.7 +19910926,13.9,9.0,20.0,8.9,5.6 +19910927,12.4,4.1,19.4,7.2,5.0 +19910928,12.2,4.6,23.3,3.9,2.2 +19910929,14.3,8.4,25.0,6.1,2.0 +19910930,15.6,10.4,25.0,8.3,1.5 +19911001,15.2,10.7,22.2,7.8,1.5 +19911002,15.5,12.5,21.7,11.1,1.0 +19911003,16.7,13.6,24.4,11.1,1.3 +19911004,17.8,13.6,25.6,12.2,2.1 +19911005,19.3,16.1,26.1,15.0,3.2 +19911006,11.7,4.9,18.9,6.7,8.5 +19911007,7.4,-2.3,13.9,3.3,5.5 +19911008,7.1,-0.4,16.7,-1.1,2.2 +19911009,9.2,0.2,20.0,0.0,1.6 +19911010,10.9,4.5,21.7,2.2,1.8 +19911011,13.3,6.3,22.8,3.9,2.5 +19911012,12.9,2.1,20.0,4.4,3.0 +19911013,10.4,1.3,18.9,2.8,2.7 +19911014,8.4,2.3,18.3,0.6,2.8 +19911015,11.8,8.9,15.0,8.9,2.8 +19911016,9.9,3.8,13.3,7.2,6.2 +19911017,9.3,-0.9,19.4,2.2,4.6 +19911018,11.2,-1.1,26.1,0.0,2.1 +19911019,14.2,0.0,25.0,4.4,3.3 +19911020,12.8,7.4,17.8,7.8,3.5 +19911021,10.2,6.4,16.7,5.0,2.9 +19911022,14.1,9.4,22.8,10.0,2.7 +19911023,14.4,10.4,23.3,7.2,2.1 +19911024,18.2,14.0,21.7,13.9,2.9 +19911025,17.8,13.0,22.8,14.4,2.3 +19911026,16.2,10.9,22.8,11.1,2.3 +19911027,17.2,11.6,25.0,11.1,1.4 +19911028,17.9,11.7,26.1,10.0,1.6 +19911029,16.4,6.2,21.7,10.0,3.5 +19911030,11.5,1.1,23.9,2.8,2.4 +19911031,17.3,4.0,25.0,12.8,3.8 +19911101,10.9,5.8,17.2,6.1,2.4 +19911102,9.6,4.6,13.3,4.4,6.1 +19911103,5.1,-2.1,11.1,1.7,6.1 +19911104,0.9,-8.9,4.4,-3.3,7.6 +19911105,-0.1,-10.1,8.3,-6.7,3.8 +19911106,2.3,-7.4,13.3,-6.7,2.2 +19911107,5.6,-4.7,13.9,0.0,2.6 +19911108,4.9,-1.9,7.8,1.7,5.4 +19911109,1.2,-2.3,2.8,0.0,5.9 +19911110,1.7,-0.6,3.3,0.6,6.5 +19911111,3.4,-3.2,9.4,0.0,7.3 +19911112,3.7,-4.7,11.1,-2.2,4.2 +19911113,6.8,-2.6,16.7,0.6,4.9 +19911114,7.9,-5.7,19.4,-0.6,2.1 +19911115,11.3,-3.9,22.8,-0.6,1.1 +19911116,12.3,3.5,21.1,4.4,3.7 +19911117,10.1,7.7,13.9,4.4,2.7 +19911118,9.9,3.5,12.2,7.2,3.7 +19911119,11.3,9.8,16.7,7.8,2.9 +19911120,15.2,13.1,19.4,12.2,2.8 +19911121,16.8,15.2,18.9,15.6,3.2 +19911122,16.1,11.8,18.3,10.6,5.4 +19911123,10.2,5.7,18.9,5.6,2.9 +19911124,5.1,-3.5,12.8,0.0,5.7 +19911125,0.3,-10.6,5.6,-3.3,5.0 +19911126,0.2,-10.6,8.3,-4.4,4.1 +19911127,0.3,-7.9,8.9,-5.6,1.9 +19911128,4.8,-4.8,17.8,-3.3,1.6 +19911129,8.1,1.8,18.3,-0.6,3.1 +19911130,14.9,12.6,16.7,12.8,3.8 +19911201,16.8,15.6,20.6,13.9,3.9 +19911202,17.6,16.1,20.0,15.0,3.4 +19911203,16.1,13.3,20.0,6.7,6.5 +19911204,0.8,-7.4,5.6,-2.8,6.9 +19911205,-2.3,-10.1,6.1,-7.2,4.4 +19911206,2.8,-4.7,12.8,-3.9,3.0 +19911207,4.2,-1.8,15.6,-3.3,1.8 +19911208,6.3,1.8,18.3,-1.1,0.7 +19911209,11.5,7.7,16.7,6.7,1.6 +19911210,9.9,3.4,13.9,3.3,4.8 +19911211,4.7,-1.4,15.6,-2.8,0.6 +19911212,6.6,3.4,11.7,1.1,1.5 +19911213,13.7,10.4,17.8,10.0,4.9 +19911214,14.1,9.1,16.1,7.8,5.6 +19911215,1.9,-11.9,7.8,-3.3,6.0 +19911216,0.5,-15.6,5.6,-3.9,5.1 +19911217,0.9,-9.0,14.4,-7.2,1.6 +19911218,3.7,-7.6,10.0,-1.1,5.0 +19911219,-1.6,-14.8,6.1,-7.2,5.6 +19911220,-1.1,-14.3,10.0,-7.8,2.4 +19911221,4.9,-5.4,12.2,1.7,3.4 +19911222,9.2,4.2,17.2,5.6,4.5 +19911223,11.1,9.6,13.9,7.2,2.0 +19911224,7.3,4.3,12.2,2.8,6.0 +19911225,2.1,-4.2,10.6,-3.9,3.8 +19911226,0.6,-4.9,11.1,-6.1,1.4 +19911227,8.1,-1.4,13.3,5.6,1.9 +19911228,4.5,0.1,10.0,2.2,2.9 +19911229,6.2,4.4,11.7,3.9,3.1 +19911230,4.6,-0.3,7.2,2.2,6.7 +19911231,1.4,-0.8,5.0,-1.7,2.0 +19920101,0.1,-3.2,6.7,-5.0,1.4 +19920102,7.3,3.1,12.2,5.0,2.8 +19920103,7.7,6.0,10.0,6.7,3.2 +19920104,8.4,6.3,11.1,6.1,6.7 +19920105,8.8,3.3,11.7,6.7,7.5 +19920106,5.5,1.3,8.3,3.3,5.6 +19920107,4.9,-1.7,14.4,-2.2,4.3 +19920108,3.7,-1.7,12.8,-3.3,2.4 +19920109,9.7,5.7,14.4,7.2,3.3 +19920110,3.9,0.7,10.0,0.6,4.6 +19920111,2.1,-6.7,11.1,-2.8,6.5 +19920112,3.0,-4.9,12.2,-2.8,2.3 +19920113,9.3,3.9,11.7,7.2,3.8 +19920114,8.5,2.4,13.3,0.0,6.2 +19920115,-0.8,-7.8,5.0,-3.9,5.0 +19920116,-5.3,-16.4,0.6,-11.7,6.9 +19920117,-3.2,-16.3,7.8,-11.7,4.5 +19920118,0.6,-9.6,4.4,-2.8,6.3 +19920119,-1.2,-14.7,2.8,-5.6,5.6 +19920120,-0.3,-11.3,10.6,-7.8,4.7 +19920121,5.5,-5.6,15.6,-2.8,3.8 +19920122,4.9,-4.4,16.1,-1.7,2.8 +19920123,8.8,2.8,13.9,5.0,4.1 +19920124,2.6,-8.1,7.2,0.0,6.7 +19920125,0.6,-11.3,10.6,-6.7,3.9 +19920126,6.8,-4.4,12.2,0.6,5.3 +19920127,3.9,-1.9,7.8,0.6,2.0 +19920128,7.4,3.8,13.9,4.4,2.0 +19920129,7.2,2.6,15.0,1.7,1.2 +19920130,6.8,2.2,13.3,2.2,1.6 +19920131,6.3,-2.3,13.3,-1.1,4.1 +19920201,4.3,-7.1,9.4,-0.6,9.3 +19920202,3.7,-10.7,15.6,-2.2,5.1 +19920203,7.5,-11.8,18.3,-0.6,3.5 +19920204,7.7,-4.8,18.3,-2.8,3.2 +19920205,8.6,-0.4,12.8,4.4,3.5 +19920206,6.5,-11.3,12.8,1.7,2.4 +19920207,3.9,-8.6,15.0,-3.3,1.5 +19920208,0.8,-8.6,7.2,-2.8,7.5 +19920209,-1.5,-13.6,7.8,-7.2,5.7 +19920210,-0.9,-12.7,5.6,-6.1,2.3 +19920211,5.0,-7.2,13.9,-1.1,3.1 +19920212,5.1,-2.5,12.2,-2.8,2.8 +19920213,5.9,1.1,10.0,1.7,3.7 +19920214,7.2,3.9,16.1,1.7,1.5 +19920215,11.1,9.4,13.9,10.0,3.7 +19920216,9.8,4.5,13.3,6.1,4.8 +19920217,2.9,-0.5,7.8,-0.6,2.2 +19920218,5.0,4.4,8.9,3.3,3.2 +19920219,10.2,4.3,16.7,6.1,3.8 +19920220,6.3,-2.2,11.1,3.3,5.9 +19920221,5.3,-3.8,18.9,-4.4,1.9 +19920222,7.7,-1.8,19.4,-1.7,2.2 +19920223,10.6,7.6,13.9,7.2,2.0 +19920224,12.6,10.2,18.9,10.0,1.5 +19920225,10.8,10.1,15.6,8.3,1.0 +19920226,9.1,7.4,11.7,5.0,4.6 +19920227,4.3,-1.6,12.2,-1.1,5.8 +19920228,7.8,-0.3,16.7,1.1,2.8 +19920229,10.1,-0.7,13.9,5.6,7.5 +19920301,5.7,-4.9,18.3,-3.3,1.5 +19920302,10.9,-1.6,23.9,0.0,2.9 +19920303,12.6,0.5,24.4,1.7,2.1 +19920304,14.3,4.1,22.8,7.8,2.3 +19920305,13.2,8.2,17.8,10.0,2.6 +19920306,12.7,12.2,13.9,11.7,3.3 +19920307,14.9,10.1,21.7,11.1,2.3 +19920308,15.5,6.3,20.6,11.7,4.3 +19920309,11.5,4.3,21.7,2.8,2.7 +19920310,14.5,9.4,17.2,11.7,4.7 +19920311,-0.7,-6.4,11.1,-5.6,8.8 +19920312,0.3,-9.8,8.3,-4.4,3.5 +19920313,1.8,-4.9,4.4,-1.1,6.2 +19920314,0.9,-7.7,9.4,-3.9,3.0 +19920315,3.7,-5.3,12.2,-2.2,3.4 +19920316,1.9,-12.9,11.1,-3.9,7.0 +19920317,7.1,-7.0,22.2,-3.9,2.9 +19920318,11.7,3.3,18.9,5.0,3.5 +19920319,11.1,8.0,18.9,7.2,3.4 +19920320,6.0,1.7,9.4,1.1,5.9 +19920321,5.5,-4.4,12.2,1.1,5.7 +19920322,4.2,0.9,11.1,-1.7,1.4 +19920323,4.7,0.1,8.9,1.1,6.6 +19920324,3.5,-5.4,12.2,-3.3,3.0 +19920325,3.2,-2.4,9.4,-1.7,2.2 +19920326,6.8,3.5,13.3,2.2,3.8 +19920327,6.3,-1.6,9.4,1.1,5.4 +19920328,6.0,-6.7,15.0,0.0,6.7 +19920329,7.8,-4.1,15.0,0.6,2.8 +19920330,11.3,3.3,13.9,8.9,4.1 +19920331,9.1,4.1,13.3,5.0,6.6 +19920401,6.3,0.8,15.6,0.0,3.9 +19920402,2.6,-5.8,6.1,-1.1,6.9 +19920403,2.2,-9.1,10.0,-2.8,4.8 +19920404,5.3,-5.6,16.7,-2.8,4.2 +19920405,6.6,-4.4,14.4,1.1,6.3 +19920406,6.7,-3.5,16.1,-1.1,2.6 +19920407,11.1,3.7,15.6,8.3,2.7 +19920408,13.9,7.3,22.8,7.8,4.9 +19920409,14.9,6.4,24.4,5.0,2.2 +19920410,17.2,8.4,26.7,7.8,2.5 +19920411,14.4,10.1,22.8,7.8,1.7 +19920412,17.2,12.1,26.1,10.6,3.8 +19920413,14.7,7.7,20.0,7.8,4.5 +19920414,14.2,4.9,25.0,4.4,2.7 +19920415,17.3,11.1,26.1,9.4,1.5 +19920416,18.7,12.9,27.2,12.8,2.4 +19920417,19.0,9.7,26.1,9.4,2.4 +19920418,20.2,10.8,25.0,15.0,3.3 +19920419,18.1,13.2,21.7,16.1,3.9 +19920420,17.3,15.6,20.0,15.0,3.8 +19920421,17.6,16.1,21.1,15.6,3.3 +19920422,16.2,7.8,23.3,8.9,3.4 +19920423,15.5,4.2,25.6,5.0,2.7 +19920424,17.7,7.7,28.9,7.2,1.7 +19920425,15.2,7.2,25.0,12.2,5.7 +19920426,7.7,1.9,11.7,5.0,5.7 +19920427,7.9,1.9,13.3,4.4,5.7 +19920428,7.2,2.2,12.2,4.4,6.5 +19920429,9.2,-0.2,18.9,1.1,3.0 +19920430,13.9,5.2,21.7,8.3,2.5 +19920501,15.6,8.1,26.7,6.1,2.5 +19920502,19.2,10.7,29.4,8.9,2.6 +19920503,20.7,10.5,25.6,17.8,5.0 +19920504,16.6,1.4,22.2,11.7,6.1 +19920505,11.1,3.7,17.8,5.0,5.0 +19920506,6.1,4.8,11.7,4.4,3.9 +19920507,4.5,3.3,6.7,2.2,4.2 +19920508,6.3,5.6,7.8,5.0,3.6 +19920509,8.4,5.9,16.1,3.9,2.3 +19920510,15.1,8.9,24.4,6.7,3.2 +19920511,16.6,9.6,26.1,7.8,2.2 +19920512,18.6,12.3,25.0,12.2,2.4 +19920513,16.7,13.8,22.2,12.8,2.7 +19920514,17.6,13.8,24.4,12.2,3.2 +19920515,19.5,15.1,24.4,14.4,2.5 +19920516,19.5,14.3,25.0,13.3,2.4 +19920517,19.3,14.1,26.1,11.7,2.4 +19920518,19.5,15.0,27.2,12.8,2.2 +19920519,18.4,16.7,23.9,16.1,2.0 +19920520,16.2,13.6,18.9,13.9,2.3 +19920521,16.7,10.4,22.8,12.2,2.6 +19920522,16.2,6.4,25.6,6.1,2.3 +19920523,17.4,6.2,28.3,6.7,2.3 +19920524,18.0,10.6,27.2,10.0,3.2 +19920525,17.9,15.0,22.8,13.9,3.9 +19920526,15.7,12.8,17.2,14.4,4.2 +19920527,14.5,7.9,18.9,9.4,3.9 +19920528,11.9,9.6,15.6,10.0,2.0 +19920529,10.9,9.9,12.2,10.0,1.3 +19920530,13.3,12.0,20.0,10.0,2.7 +19920531,16.2,10.9,21.1,11.7,5.4 +19920601,14.7,9.1,20.0,10.0,4.8 +19920602,15.6,10.1,22.8,10.0,2.7 +19920603,16.0,13.4,20.0,13.3,2.1 +19920604,17.7,15.9,22.2,15.6,3.3 +19920605,18.4,15.1,23.3,15.0,2.3 +19920606,19.6,14.8,27.8,13.3,2.3 +19920607,22.0,16.9,27.8,15.6,2.9 +19920608,21.6,18.6,26.7,17.2,2.1 +19920609,20.9,19.8,23.9,19.4,2.1 +19920610,20.4,19.2,23.3,19.4,1.2 +19920611,18.4,17.1,20.0,16.1,1.9 +19920612,15.1,12.7,17.2,13.3,1.7 +19920613,15.9,14.6,17.2,15.0,1.9 +19920614,18.4,16.3,25.0,16.1,2.0 +19920615,20.7,17.4,27.2,17.8,2.6 +19920616,20.2,17.6,24.4,16.7,1.9 +19920617,20.3,17.9,22.8,18.9,2.6 +19920618,19.8,16.9,23.9,16.7,3.3 +19920619,21.7,16.2,28.3,15.0,3.5 +19920620,21.8,14.2,27.8,16.1,3.8 +19920621,19.9,14.1,24.4,16.1,5.0 +19920622,16.3,9.0,23.3,9.4,3.8 +19920623,18.9,12.3,25.0,11.7,2.8 +19920624,22.0,14.4,29.4,14.4,3.0 +19920625,21.8,16.7,27.8,15.0,2.7 +19920626,22.1,18.8,28.3,18.9,2.4 +19920627,21.8,17.4,26.7,18.3,4.4 +19920628,20.3,14.5,25.0,16.1,3.0 +19920629,22.2,18.7,26.1,18.9,2.7 +19920630,22.7,18.9,26.7,18.9,2.9 +19920701,21.8,19.3,25.0,19.4,2.9 +19920702,22.4,19.7,26.1,18.9,1.9 +19920703,23.1,20.0,27.8,18.9,2.0 +19920704,23.1,16.6,28.3,18.9,3.9 +19920705,20.6,14.8,28.3,13.9,2.0 +19920706,22.2,17.8,28.3,17.8,4.3 +19920707,22.9,17.4,29.4,16.7,2.9 +19920708,24.1,17.1,32.8,16.7,2.2 +19920709,24.9,16.6,32.8,16.7,3.8 +19920710,25.5,19.1,32.8,18.9,3.7 +19920711,25.2,19.8,31.7,20.0,2.8 +19920712,24.9,18.8,32.8,17.8,2.0 +19920713,25.3,18.1,33.3,17.2,2.6 +19920714,24.5,18.6,30.6,18.3,2.7 +19920715,23.8,18.6,29.4,17.8,2.7 +19920716,23.2,18.3,28.9,18.3,2.7 +19920717,24.2,18.9,28.3,20.6,3.9 +19920718,23.2,18.9,26.7,18.9,3.6 +19920719,22.5,16.1,30.0,16.1,3.4 +19920720,22.2,15.4,29.4,15.0,1.9 +19920721,24.3,16.9,31.1,18.3,2.9 +19920722,22.1,18.6,27.2,18.9,2.0 +19920723,22.3,19.8,26.7,20.0,2.8 +19920724,22.6,20.2,28.3,19.4,2.4 +19920725,24.2,20.2,32.2,19.4,2.7 +19920726,24.8,20.3,30.6,19.4,2.6 +19920727,23.9,19.7,30.6,18.3,2.5 +19920728,23.6,16.7,27.8,19.4,4.6 +19920729,21.6,15.5,29.4,15.0,2.7 +19920730,22.4,17.1,30.6,15.6,2.3 +19920731,24.2,18.3,29.4,18.3,2.5 +19920801,21.8,15.7,28.3,16.7,3.8 +19920802,21.6,15.2,27.2,17.2,2.8 +19920803,21.8,14.9,28.9,16.1,1.6 +19920804,21.4,17.2,27.8,16.1,2.9 +19920805,21.6,16.0,24.4,17.8,2.7 +19920806,19.6,16.9,22.2,18.3,1.7 +19920807,19.3,17.3,22.2,17.8,2.8 +19920808,21.9,19.1,26.7,18.9,2.8 +19920809,22.9,19.9,28.9,19.4,2.6 +19920810,23.3,18.9,31.1,16.1,2.9 +19920811,22.6,19.2,29.4,17.2,1.8 +19920812,20.7,18.6,27.2,17.8,2.7 +19920813,19.4,18.8,21.7,18.9,2.3 +19920814,19.7,16.9,23.9,17.8,2.2 +19920815,19.3,16.9,22.8,17.8,2.2 +19920816,19.3,16.9,23.9,17.2,2.6 +19920817,19.9,18.0,23.3,18.9,1.9 +19920818,20.7,17.3,26.7,17.8,2.4 +19920819,20.7,16.5,26.1,16.1,2.2 +19920820,20.0,17.7,22.8,17.2,2.4 +19920821,19.8,17.7,22.2,18.3,2.1 +19920822,18.6,17.8,20.0,17.8,1.6 +19920823,18.4,17.7,20.6,17.8,1.8 +19920824,21.1,18.8,26.1,18.9,1.7 +19920825,21.3,18.6,27.8,17.8,1.8 +19920826,22.2,18.9,29.4,18.3,1.9 +19920827,21.0,18.9,26.1,18.3,2.4 +19920828,21.6,17.5,25.6,18.9,5.9 +19920829,17.8,11.9,23.9,12.8,5.1 +19920830,17.4,12.2,27.2,10.6,1.7 +19920831,19.6,15.4,26.7,13.3,3.6 +19920901,20.1,15.9,27.2,13.9,2.0 +19920902,20.8,17.5,26.1,16.7,3.4 +19920903,21.2,18.9,26.1,18.9,2.7 +19920904,20.4,18.1,26.1,17.2,2.4 +19920905,20.3,18.8,25.0,18.3,2.2 +19920906,21.2,18.4,27.2,18.3,2.5 +19920907,21.7,18.7,27.2,18.3,2.5 +19920908,22.4,18.7,28.3,18.3,2.7 +19920909,21.6,18.1,27.8,17.2,2.5 +19920910,22.1,19.1,27.8,18.3,2.2 +19920911,20.5,17.1,25.0,17.8,4.1 +19920912,18.2,14.0,22.8,14.4,2.6 +19920913,18.9,14.8,23.3,15.6,2.8 +19920914,18.8,14.9,23.9,13.9,1.7 +19920915,19.1,14.2,25.6,13.3,2.6 +19920916,17.5,12.4,25.6,11.7,1.9 +19920917,18.3,13.6,27.2,11.7,2.2 +19920918,19.5,16.1,26.1,14.4,2.6 +19920919,20.2,18.1,26.1,16.7,2.3 +19920920,18.9,17.7,23.3,16.1,2.3 +19920921,20.2,18.4,24.4,17.8,3.6 +19920922,21.8,19.4,26.7,19.4,2.6 +19920923,18.9,17.3,22.2,17.2,3.6 +19920924,13.9,8.9,17.2,10.6,2.6 +19920925,13.6,10.0,20.6,8.9,2.8 +19920926,16.6,14.4,21.1,14.4,3.0 +19920927,17.8,16.9,21.1,16.1,2.5 +19920928,19.1,17.9,22.8,17.2,2.0 +19920929,16.4,10.5,19.4,12.8,6.5 +19920930,11.6,4.2,19.4,4.4,5.3 +19921001,10.2,4.9,18.3,2.8,2.3 +19921002,10.8,7.2,19.4,5.0,2.2 +19921003,11.8,9.0,20.0,6.1,1.7 +19921004,13.7,12.4,16.7,12.2,2.9 +19921005,13.6,11.7,16.1,12.2,3.7 +19921006,10.3,6.2,16.7,3.3,1.7 +19921007,8.8,5.6,17.2,2.8,1.9 +19921008,13.1,11.7,15.6,11.1,2.3 +19921009,17.9,14.3,22.8,15.6,3.2 +19921010,12.6,5.0,21.1,6.7,3.9 +19921011,13.0,6.3,15.6,10.0,4.4 +19921012,10.4,3.6,17.2,4.4,3.5 +19921013,11.4,5.6,22.2,3.9,3.0 +19921014,13.5,7.8,26.7,3.9,1.2 +19921015,15.2,9.6,25.0,7.2,3.2 +19921016,14.8,11.0,22.8,8.9,1.9 +19921017,13.2,6.2,17.2,8.3,5.6 +19921018,6.6,2.9,10.6,2.8,2.4 +19921019,6.2,-2.3,11.1,3.3,4.7 +19921020,3.9,-3.1,12.2,-1.7,3.1 +19921021,11.7,-0.2,21.1,5.0,3.4 +19921022,14.1,7.8,21.7,6.7,2.7 +19921023,11.1,7.0,21.1,4.4,1.6 +19921024,13.1,8.2,23.3,6.1,2.9 +19921025,14.6,5.0,18.3,9.4,5.0 +19921026,9.8,0.4,21.7,0.0,2.2 +19921027,11.1,4.6,20.6,3.9,1.9 +19921028,14.2,11.9,17.2,12.2,1.6 +19921029,13.9,10.7,20.6,10.0,2.7 +19921030,12.3,10.4,17.8,7.8,2.5 +19921031,15.3,12.3,21.1,12.2,3.4 +19921101,13.3,12.2,16.1,12.2,3.3 +19921102,14.7,13.6,18.3,11.7,5.7 +19921103,12.8,7.4,18.9,3.9,2.5 +19921104,12.8,10.6,15.6,9.4,2.3 +19921105,13.7,12.6,17.2,7.8,3.7 +19921106,3.2,-1.4,6.1,1.1,7.9 +19921107,2.8,-1.8,6.1,1.1,4.5 +19921108,3.2,-2.5,9.4,-0.6,4.4 +19921109,2.5,-2.2,11.1,-2.8,2.4 +19921110,3.6,-1.9,12.2,-2.2,3.1 +19921111,9.2,4.4,16.1,5.6,2.5 +19921112,13.0,11.9,16.7,11.7,4.0 +19921113,8.4,-0.1,16.7,2.2,7.9 +19921114,3.3,-6.9,10.0,-1.1,3.2 +19921115,3.2,-4.7,8.9,-0.6,5.1 +19921116,0.7,-6.1,10.0,-5.6,2.6 +19921117,4.8,-2.6,18.3,-2.8,1.9 +19921118,7.0,-0.2,19.4,-1.7,1.6 +19921119,7.6,-0.3,19.4,-1.1,1.2 +19921120,5.8,2.4,11.7,1.1,2.4 +19921121,8.5,8.1,12.2,6.7,3.4 +19921122,15.1,14.4,18.9,12.2,4.0 +19921123,12.2,8.2,18.9,3.9,4.5 +19921124,8.3,7.1,10.0,6.1,3.1 +19921125,9.9,9.6,14.4,8.3,2.7 +19921126,13.4,11.1,18.9,10.6,3.4 +19921127,6.4,1.8,11.7,2.8,5.9 +19921128,3.8,0.9,6.1,2.2,5.4 +19921129,3.3,0.3,6.7,1.7,4.9 +19921130,1.6,-3.7,8.9,-3.3,3.5 +19921201,3.7,-2.8,6.7,0.6,4.0 +19921202,1.2,-4.0,6.7,-4.4,3.2 +19921203,2.8,-7.3,8.9,-1.7,5.1 +19921204,5.1,-4.6,12.2,1.1,3.7 +19921205,1.9,-6.6,6.7,-2.8,7.6 +19921206,-3.4,-12.4,1.7,-7.8,4.4 +19921207,1.5,-1.9,3.3,-0.6,5.5 +19921208,-0.2,-3.8,1.7,-1.7,6.5 +19921209,-2.7,-6.4,0.6,-6.1,4.0 +19921210,0.1,-1.4,3.3,-1.7,4.0 +19921211,1.8,-2.3,3.3,0.0,9.6 +19921212,1.7,-2.6,4.4,0.6,10.9 +19921213,2.6,-1.5,10.0,-0.6,6.2 +19921214,1.4,-1.4,10.0,-3.9,1.6 +19921215,1.8,-0.8,6.7,-2.2,3.2 +19921216,7.7,5.9,11.1,5.0,4.7 +19921217,11.5,10.1,13.3,8.3,4.6 +19921218,5.1,0.9,10.6,-1.7,2.6 +19921219,4.1,1.1,11.1,-0.6,2.2 +19921220,9.4,7.8,11.1,7.2,4.3 +19921221,5.1,0.7,8.3,2.8,3.7 +19921222,6.6,5.2,11.7,2.8,2.2 +19921223,10.7,9.6,16.1,7.8,2.4 +19921224,3.9,-4.0,9.4,-1.1,6.4 +19921225,-0.3,-10.4,10.0,-5.6,3.5 +19921226,2.6,-4.6,6.7,0.0,6.2 +19921227,-1.6,-7.0,1.1,-4.4,2.3 +19921228,4.1,2.7,13.3,-1.1,3.0 +19921229,6.5,5.0,16.1,2.2,1.9 +19921230,8.2,4.8,20.0,1.1,1.1 +19921231,10.9,7.1,21.1,5.0,2.7 +19930101,10.6,4.7,14.4,7.8,4.8 +19930102,5.7,-3.3,10.6,1.7,3.4 +19930103,4.8,-1.9,8.9,2.8,3.7 +19930104,10.5,8.6,12.8,8.3,4.0 +19930105,12.8,10.3,15.0,10.0,4.6 +19930106,8.3,5.4,13.3,5.6,1.5 +19930107,8.8,6.9,10.0,7.8,2.8 +19930108,7.8,7.4,8.9,7.2,2.4 +19930109,6.3,4.9,7.8,5.0,1.7 +19930110,2.9,1.7,5.0,1.7,3.5 +19930111,3.2,2.7,5.0,1.7,2.7 +19930112,6.9,6.7,9.4,5.6,2.6 +19930113,10.0,4.4,16.7,7.2,3.3 +19930114,2.6,-4.3,7.2,-1.7,7.3 +19930115,1.9,-2.6,8.3,-2.2,1.9 +19930116,4.3,1.2,7.8,1.7,4.3 +19930117,3.6,-0.9,10.6,-0.6,2.2 +19930118,3.6,-1.1,8.3,0.6,3.9 +19930119,3.9,0.7,5.6,1.7,2.7 +19930120,1.2,-1.5,5.0,-0.6,3.7 +19930121,2.7,1.7,4.4,1.1,3.9 +19930122,5.7,2.9,13.3,2.2,3.3 +19930123,5.7,-3.7,16.7,-1.1,4.3 +19930124,5.6,0.8,12.2,1.1,4.4 +19930125,1.1,-9.1,6.1,-2.2,7.8 +19930126,-1.2,-9.1,5.6,-5.6,1.5 +19930127,1.9,-7.3,8.9,-3.9,4.8 +19930128,3.1,-5.2,16.1,-5.0,1.3 +19930129,6.8,-3.4,11.1,0.6,4.7 +19930130,2.5,-10.6,11.7,-5.0,4.6 +19930131,5.6,-10.1,17.8,-2.2,5.5 +19930201,8.8,-3.2,11.1,6.1,6.1 +19930202,2.3,-13.3,9.4,-3.9,5.3 +19930203,1.8,-10.1,13.3,-7.2,2.7 +19930204,6.1,-10.0,15.0,-0.6,3.8 +19930205,3.2,-8.1,12.8,-4.4,1.4 +19930206,5.1,-6.8,15.0,-3.9,3.2 +19930207,3.8,-5.4,13.3,-4.4,2.1 +19930208,9.4,-2.5,16.7,3.3,5.0 +19930209,3.8,-1.2,8.9,-1.7,2.9 +19930210,6.4,4.2,12.8,2.8,2.0 +19930211,8.1,6.5,12.2,4.4,2.6 +19930212,9.1,8.1,11.7,6.1,3.0 +19930213,5.1,2.9,7.8,2.2,4.4 +19930214,1.3,-2.5,3.3,0.0,6.1 +19930215,-0.4,-4.7,2.8,-4.4,3.9 +19930216,4.3,0.9,13.3,1.1,4.2 +19930217,0.8,-4.4,7.8,-2.2,6.9 +19930218,-2.4,-9.6,-0.6,-5.0,8.0 +19930219,-5.1,-16.6,5.0,-11.1,5.1 +19930220,1.9,-6.3,7.2,0.0,2.7 +19930221,6.7,4.4,12.2,1.7,5.2 +19930222,11.7,-2.7,14.4,8.3,5.2 +19930223,2.4,-11.4,8.9,-2.8,6.2 +19930224,-1.7,-12.3,3.3,-5.6,5.7 +19930225,-2.8,-10.8,-1.1,-3.9,3.7 +19930226,-0.8,-2.3,6.1,-4.4,3.1 +19930227,1.0,-2.1,3.9,-2.2,6.7 +19930228,-0.3,-6.7,5.6,-4.4,5.9 +19930301,2.7,-7.7,13.3,-4.4,4.5 +19930302,4.3,-4.0,10.6,-0.6,1.5 +19930303,7.4,6.6,9.4,6.1,4.2 +19930304,7.9,4.3,11.1,6.7,4.7 +19930305,3.9,-1.9,7.2,1.1,3.9 +19930306,2.9,-4.5,10.6,-1.1,5.8 +19930307,3.7,-4.1,12.8,-3.9,3.1 +19930308,7.8,0.2,15.6,1.1,3.6 +19930309,7.8,-3.6,13.9,0.6,5.2 +19930310,9.4,-2.2,22.8,0.0,3.1 +19930311,6.6,-5.7,17.8,0.6,7.4 +19930312,1.3,-5.8,4.4,-2.2,3.1 +19930313,-2.3,-2.9,1.1,-6.7,10.1 +19930314,-7.4,-12.8,-5.0,-9.4,7.6 +19930315,-8.0,-15.0,2.8,-16.7,1.9 +19930316,-0.1,-8.6,4.4,-3.3,3.8 +19930317,3.4,1.6,8.9,0.6,3.0 +19930318,3.2,-2.9,7.8,-1.1,6.2 +19930319,0.1,-11.7,6.1,-5.6,2.4 +19930320,2.4,-7.7,8.3,-1.1,2.5 +19930321,7.4,2.9,15.6,2.2,2.5 +19930322,9.6,7.2,13.3,6.1,2.1 +19930323,12.4,11.7,15.0,11.1,3.7 +19930324,13.0,10.4,18.9,10.0,1.7 +19930325,11.9,7.4,16.7,6.7,4.0 +19930326,10.9,8.8,13.9,10.0,2.8 +19930327,9.1,7.6,11.1,7.8,2.0 +19930328,10.6,8.3,14.4,8.9,3.3 +19930329,12.3,6.2,19.4,8.3,4.8 +19930330,13.6,4.4,22.8,6.7,4.8 +19930331,12.7,7.6,17.8,8.9,2.8 +19930401,10.8,6.9,16.1,7.2,3.5 +19930402,5.2,0.9,11.1,1.1,5.8 +19930403,4.4,-4.4,15.6,-1.1,6.7 +19930404,7.6,-2.4,13.9,0.0,3.2 +19930405,6.5,4.2,11.1,3.3,2.0 +19930406,6.2,4.6,12.2,3.3,2.6 +19930407,9.7,5.5,16.1,6.1,2.5 +19930408,10.7,2.9,18.3,2.8,3.4 +19930409,10.4,4.1,15.6,8.3,3.4 +19930410,10.8,4.8,16.1,7.8,4.7 +19930411,13.4,1.7,24.4,4.4,3.2 +19930412,18.3,2.2,23.9,10.0,4.6 +19930413,14.2,2.7,23.3,6.7,3.1 +19930414,15.8,7.4,25.0,7.2,3.0 +19930415,16.6,10.7,21.1,13.9,4.7 +19930416,14.1,6.5,18.3,10.0,5.8 +19930417,8.2,-1.4,13.3,3.9,6.5 +19930418,10.7,-2.1,17.8,4.4,3.4 +19930419,11.4,1.5,18.9,2.2,3.8 +19930420,16.1,4.9,22.2,11.1,5.0 +19930421,13.3,6.2,18.9,6.7,5.6 +19930422,5.2,-4.9,10.6,1.7,10.1 +19930423,8.8,-3.9,18.9,-1.1,3.1 +19930424,13.5,0.9,20.6,4.4,3.5 +19930425,17.2,6.1,22.2,12.2,5.7 +19930426,14.7,9.8,18.9,12.2,4.9 +19930427,11.9,-1.2,20.0,5.0,5.1 +19930428,11.9,-1.4,22.8,1.1,1.9 +19930429,14.5,1.7,24.4,2.8,2.6 +19930430,15.2,2.7,22.8,6.1,2.2 +19930501,17.4,6.8,23.3,10.6,2.4 +19930502,16.7,8.7,21.7,11.1,3.2 +19930503,17.2,11.9,20.0,15.0,5.0 +19930504,17.1,14.3,22.2,15.0,4.5 +19930505,19.4,13.9,25.0,15.0,3.3 +19930506,17.9,10.8,26.1,9.4,3.4 +19930507,18.7,12.0,26.1,11.1,2.2 +19930508,17.2,14.9,21.1,13.9,1.7 +19930509,17.4,13.7,25.6,12.2,1.5 +19930510,19.1,13.9,26.7,11.7,2.7 +19930511,19.0,12.9,27.2,11.7,2.2 +19930512,20.3,13.9,25.6,14.4,2.3 +19930513,16.9,12.6,21.7,13.3,2.3 +19930514,15.7,11.0,21.1,11.7,4.4 +19930515,16.2,10.1,25.0,8.3,2.3 +19930516,18.3,10.9,26.7,9.4,1.7 +19930517,19.5,14.1,25.6,15.6,2.5 +19930518,19.8,15.5,28.3,15.6,2.0 +19930519,17.4,13.9,24.4,15.0,4.0 +19930520,12.9,6.5,16.7,9.4,4.7 +19930521,9.3,4.1,13.9,2.8,3.0 +19930522,10.7,4.6,18.3,5.6,5.2 +19930523,12.7,5.5,21.7,3.9,2.9 +19930524,16.8,9.7,25.0,7.2,3.0 +19930525,17.1,14.3,21.7,14.4,3.2 +19930526,17.6,13.5,22.8,14.4,4.1 +19930527,16.7,11.0,25.6,8.3,2.3 +19930528,19.7,13.5,27.8,11.7,2.2 +19930529,21.6,15.3,27.8,15.0,4.0 +19930530,17.6,14.6,22.2,12.8,2.4 +19930531,18.3,16.1,21.7,16.7,2.1 +19930601,17.1,11.4,21.1,12.8,6.2 +19930602,15.3,9.8,24.4,7.8,2.8 +19930603,20.8,14.8,27.8,14.4,2.7 +19930604,21.5,16.4,28.9,14.4,3.3 +19930605,23.8,16.2,30.6,17.2,4.0 +19930606,18.7,10.1,27.2,11.1,4.2 +19930607,21.4,13.4,29.4,15.0,2.5 +19930608,24.1,18.1,31.7,16.7,2.1 +19930609,24.6,17.2,32.2,15.6,1.6 +19930610,24.2,17.7,31.7,15.6,2.4 +19930611,23.4,17.2,30.6,16.1,3.0 +19930612,21.8,17.3,29.4,17.2,2.1 +19930613,19.4,17.7,21.7,17.8,2.0 +19930614,18.3,16.0,22.2,15.6,2.3 +19930615,21.4,16.4,28.3,16.7,3.0 +19930616,21.6,16.1,27.8,15.6,2.6 +19930617,22.1,18.0,29.4,16.1,2.3 +19930618,22.7,18.2,28.9,16.7,2.1 +19930619,23.0,17.3,30.0,17.2,2.0 +19930620,21.9,14.9,29.4,13.3,2.0 +19930621,20.7,17.1,25.6,17.8,2.1 +19930622,21.4,16.5,28.3,16.1,3.7 +19930623,21.6,14.9,28.9,13.9,2.3 +19930624,21.8,16.8,27.8,16.1,2.1 +19930625,22.9,16.4,27.2,18.9,3.0 +19930626,22.5,17.3,27.2,17.8,2.2 +19930627,22.3,12.4,30.0,14.4,3.9 +19930628,22.8,14.9,30.0,16.7,2.2 +19930629,20.1,17.8,27.8,16.1,2.4 +19930630,22.9,17.8,31.1,17.8,2.4 +19930701,25.2,19.3,31.1,19.4,3.4 +19930702,25.3,20.3,31.1,19.4,2.4 +19930703,25.2,19.3,32.2,18.3,2.4 +19930704,25.9,18.2,32.8,18.3,2.8 +19930705,26.1,18.7,32.8,18.3,2.0 +19930706,26.1,17.7,32.8,18.9,2.6 +19930707,25.8,15.7,34.4,17.2,2.2 +19930708,26.0,16.7,34.4,17.2,2.3 +19930709,26.1,18.6,32.8,18.9,2.8 +19930710,25.1,18.1,32.8,19.4,3.5 +19930711,24.9,18.4,32.8,18.3,2.8 +19930712,24.3,18.3,31.7,17.8,2.5 +19930713,23.9,18.9,31.7,18.3,2.6 +19930714,24.4,18.8,30.6,18.3,1.8 +19930715,23.3,20.2,29.4,19.4,3.9 +19930716,24.1,20.4,30.6,19.4,3.2 +19930717,24.4,19.2,31.1,18.3,2.8 +19930718,25.6,20.1,33.9,20.0,2.5 +19930719,25.8,21.2,32.2,20.6,1.9 +19930720,25.8,19.5,31.1,20.6,4.5 +19930721,24.4,14.9,33.3,15.6,2.1 +19930722,25.9,17.8,33.3,18.3,2.6 +19930723,25.1,20.2,30.0,21.1,1.7 +19930724,24.3,20.7,28.9,20.0,2.7 +19930725,24.5,21.4,32.2,20.6,2.5 +19930726,24.2,20.6,32.2,19.4,2.9 +19930727,25.3,20.3,32.8,19.4,3.2 +19930728,25.9,20.2,34.4,20.0,3.0 +19930729,26.8,19.7,34.4,20.6,3.5 +19930730,24.0,13.5,30.6,18.3,6.0 +19930731,22.3,11.7,28.9,15.6,3.8 +19930801,20.5,11.9,30.0,11.7,1.9 +19930802,20.9,15.3,27.8,14.4,2.2 +19930803,22.8,18.6,28.3,18.9,2.6 +19930804,21.2,18.4,26.7,17.8,1.8 +19930805,21.2,17.7,27.2,17.8,3.3 +19930806,20.6,18.2,25.6,17.8,2.9 +19930807,20.4,17.8,24.4,18.3,3.0 +19930808,21.2,18.1,25.6,18.9,2.6 +19930809,20.6,16.9,26.1,16.1,2.0 +19930810,20.1,15.7,26.7,14.4,2.0 +19930811,20.4,15.8,27.8,14.4,1.8 +19930812,20.6,17.9,24.4,16.7,1.3 +19930813,21.1,19.9,23.3,19.4,1.7 +19930814,23.1,20.8,28.3,20.6,2.2 +19930815,23.4,20.1,29.4,19.4,1.9 +19930816,23.8,18.6,31.1,17.2,2.3 +19930817,24.3,18.7,31.7,18.3,2.9 +19930818,24.6,19.1,31.7,18.9,3.2 +19930819,24.3,20.0,29.4,20.0,1.9 +19930820,23.7,19.8,31.1,18.9,2.1 +19930821,22.8,18.8,28.9,18.3,3.5 +19930822,22.8,17.8,27.2,17.2,2.9 +19930823,23.4,19.6,28.3,20.0,2.4 +19930824,23.7,19.7,30.0,19.4,2.5 +19930825,23.3,20.6,30.0,20.0,2.8 +19930826,22.9,20.0,28.3,20.0,2.7 +19930827,22.4,19.1,30.0,18.9,2.0 +19930828,22.1,19.0,30.0,18.9,2.3 +19930829,22.8,18.2,30.6,17.2,1.8 +19930830,23.8,18.2,30.6,17.2,1.9 +19930831,24.2,19.4,31.1,18.9,2.1 +19930901,23.7,18.7,31.7,17.2,2.4 +19930902,23.0,19.8,28.9,19.4,2.3 +19930903,24.2,20.2,28.3,21.7,4.0 +19930904,21.9,20.2,25.6,20.6,2.7 +19930905,20.3,17.6,25.6,17.2,2.7 +19930906,21.8,17.5,28.3,16.7,1.6 +19930907,20.9,18.2,25.6,16.7,2.1 +19930908,19.8,16.6,27.2,15.0,1.3 +19930909,21.1,17.2,27.8,16.7,2.3 +19930910,20.6,15.5,24.4,16.1,4.2 +19930911,16.6,6.1,24.4,11.1,3.7 +19930912,16.0,8.6,26.1,7.2,2.7 +19930913,18.6,12.6,26.7,11.1,2.7 +19930914,19.4,14.9,26.1,12.8,2.1 +19930915,21.4,17.5,27.8,16.1,2.7 +19930916,21.1,19.1,25.6,18.3,1.6 +19930917,22.1,19.1,28.9,18.9,2.4 +19930918,22.2,17.3,28.3,17.8,3.5 +19930919,18.6,13.3,26.1,11.7,2.6 +19930920,19.1,16.3,21.7,17.2,2.6 +19930921,20.1,15.9,26.1,17.2,3.4 +19930922,18.2,12.2,27.2,11.1,2.3 +19930923,17.2,12.6,24.4,11.1,2.1 +19930924,18.9,15.3,26.1,13.9,2.9 +19930925,20.4,17.8,22.8,18.9,3.1 +19930926,22.2,17.7,28.3,18.9,4.0 +19930927,19.1,14.2,23.3,15.6,3.9 +19930928,12.7,4.3,22.2,5.6,3.5 +19930929,12.9,4.6,22.2,5.0,3.4 +19930930,10.2,0.6,15.0,6.7,5.9 +19931001,8.1,1.8,18.3,0.6,2.3 +19931002,13.3,6.4,25.6,3.3,2.6 +19931003,15.1,6.9,20.6,10.6,4.1 +19931004,11.7,5.4,22.8,3.3,2.3 +19931005,15.3,7.6,26.1,7.2,3.9 +19931006,14.1,10.7,21.1,8.3,2.2 +19931007,13.9,9.9,22.2,7.8,2.1 +19931008,16.3,10.1,24.4,10.0,2.6 +19931009,15.6,10.3,27.2,7.8,2.0 +19931010,15.3,11.6,21.1,10.6,5.9 +19931011,9.4,4.8,11.7,7.8,3.9 +19931012,8.1,5.1,11.1,6.7,4.4 +19931013,8.8,2.8,19.4,1.7,3.4 +19931014,11.9,6.9,19.4,6.7,1.8 +19931015,12.3,8.4,19.4,5.6,2.1 +19931016,14.2,10.6,16.7,11.1,2.5 +19931017,16.2,13.9,22.8,13.3,2.1 +19931018,16.7,13.2,25.6,10.6,2.2 +19931019,18.6,14.4,26.7,12.8,2.0 +19931020,19.2,14.8,25.6,12.8,2.7 +19931021,18.6,15.6,22.8,13.9,4.2 +19931022,11.3,2.5,14.4,8.9,5.0 +19931023,9.0,0.1,18.3,1.1,2.9 +19931024,7.9,-1.7,20.0,-1.7,1.0 +19931025,10.3,0.1,21.7,1.7,1.4 +19931026,14.2,6.6,19.4,9.4,1.3 +19931027,12.0,7.1,21.7,3.3,2.0 +19931028,10.3,0.0,17.2,2.2,4.9 +19931029,5.0,-3.4,13.9,-2.2,2.3 +19931030,9.3,8.7,11.7,5.6,3.2 +19931031,1.8,-0.9,4.4,0.0,8.1 +19931101,1.3,-4.4,5.0,-0.6,7.6 +19931102,1.8,-3.8,10.0,-3.3,3.0 +19931103,5.5,-1.4,11.7,2.2,2.0 +19931104,5.6,1.6,16.7,-1.1,2.7 +19931105,13.9,11.8,20.0,10.6,3.6 +19931106,8.9,5.4,16.7,3.3,6.4 +19931107,2.6,-5.2,7.8,-0.6,5.1 +19931108,1.3,-3.8,11.1,-5.0,1.4 +19931109,2.7,-2.4,10.0,-3.3,2.5 +19931110,7.1,-1.6,14.4,0.6,3.8 +19931111,4.8,-2.7,16.1,-3.9,2.3 +19931112,7.9,-1.2,16.1,-0.6,2.2 +19931113,11.3,3.8,18.3,6.1,2.4 +19931114,17.0,13.8,21.7,13.3,4.7 +19931115,17.7,15.6,21.1,14.4,3.5 +19931116,16.6,13.6,22.2,11.1,2.0 +19931117,18.1,15.6,18.9,17.2,4.4 +19931118,11.0,5.9,16.1,7.2,4.9 +19931119,10.1,7.2,13.3,7.8,3.2 +19931120,6.7,0.1,10.0,3.3,6.7 +19931121,2.4,-5.8,10.0,-3.9,2.8 +19931122,2.8,-5.6,15.6,-6.7,1.4 +19931123,3.9,-5.0,17.2,-5.0,1.5 +19931124,5.5,-3.4,18.9,-3.9,2.4 +19931125,8.3,-0.9,16.1,0.6,2.2 +19931126,6.8,4.2,11.1,5.6,3.8 +19931127,7.3,6.6,11.1,5.0,2.7 +19931128,6.2,-2.3,11.7,1.1,5.8 +19931129,2.7,-6.2,12.8,-4.4,2.7 +19931130,2.8,-3.2,11.1,-3.9,2.5 +19931201,2.2,-3.2,8.3,-3.3,1.9 +19931202,2.1,-3.2,11.1,-3.3,2.4 +19931203,7.2,1.9,17.2,-0.6,2.2 +19931204,11.3,8.9,14.4,8.9,4.0 +19931205,9.9,6.8,14.4,5.6,7.3 +19931206,5.1,1.4,13.3,-2.2,4.2 +19931207,4.6,-2.1,10.6,0.0,5.2 +19931208,4.1,-1.8,13.9,-1.7,2.3 +19931209,3.4,-2.3,13.9,-4.4,2.1 +19931210,7.2,4.3,8.9,5.6,3.7 +19931211,3.1,-3.8,8.3,-2.8,9.1 +19931212,-1.5,-13.0,5.6,-5.6,8.9 +19931213,-0.6,-10.6,8.9,-6.7,2.1 +19931214,2.1,-6.2,5.6,1.1,2.3 +19931215,2.6,0.8,5.6,0.6,3.3 +19931216,5.7,2.2,9.4,3.9,7.9 +19931217,2.9,1.9,5.6,0.0,2.8 +19931218,4.1,2.9,8.9,0.6,2.4 +19931219,3.8,-2.2,7.8,0.0,4.7 +19931220,-0.9,-2.5,2.8,-3.3,2.0 +19931221,-0.1,-2.1,0.6,-3.3,4.6 +19931222,-2.3,-5.5,1.1,-5.6,3.5 +19931223,-0.9,-3.3,1.1,-3.3,4.9 +19931224,-2.9,-7.2,1.1,-5.0,3.3 +19931225,-3.0,-6.8,3.3,-7.2,2.9 +19931226,-3.1,-13.0,7.8,-9.4,4.8 +19931227,1.9,-4.4,14.4,-5.6,1.7 +19931228,2.9,0.2,8.9,-0.6,1.4 +19931229,2.9,2.6,5.6,0.6,3.3 +19931230,-2.9,-12.2,2.2,-7.8,8.0 +19931231,-3.3,-12.7,7.8,-10.6,2.8 +19940101,0.5,-6.6,10.0,-6.7,2.6 +19940102,5.5,1.8,10.6,-1.2,2.9 +19940103,4.7,3.3,11.1,2.8,2.3 +19940104,0.4,-0.8,6.1,-2.8,3.7 +19940105,-2.3,-5.8,3.3,-6.2,5.7 +19940106,2.9,-3.6,8.9,-1.7,4.2 +19940107,8.9,5.4,12.8,5.0,7.0 +19940108,0.4,-4.3,12.7,-3.9,7.9 +19940109,-4.8,-12.9,2.8,-9.5,6.4 +19940110,-3.7,-10.1,2.7,-8.4,2.4 +19940111,0.3,-4.9,5.6,-2.8,2.7 +19940112,6.4,5.4,10.6,2.7,3.1 +19940113,5.3,2.4,10.5,3.8,4.1 +19940114,1.1,-2.0,6.6,-2.8,5.2 +19940115,-9.6,-16.7,2.7,-13.9,7.4 +19940116,-13.3,-19.8,-6.1,-18.4,5.1 +19940117,-3.6,-7.4,2.2,-8.9,4.1 +19940118,-5.4,-8.4,2.7,-14.4,8.0 +19940119,-14.2,-21.6,-1.2,-20.6,6.1 +19940120,-7.2,-14.6,-0.6,-12.3,2.7 +19940121,-3.8,-10.4,3.3,-8.4,5.2 +19940122,-1.2,-10.4,8.3,-6.7,5.5 +19940123,2.1,-1.8,10.0,-5.6,2.3 +19940124,6.9,3.4,13.9,2.7,3.1 +19940125,2.8,1.6,14.4,-2.3,1.0 +19940126,7.1,6.1,13.3,1.6,1.4 +19940127,4.8,4.2,13.3,1.1,4.0 +19940128,7.4,4.3,17.2,1.1,4.7 +19940129,5.7,0.9,18.3,2.2,5.6 +19940130,1.8,-0.2,7.2,0.0,3.2 +19940131,0.0,-1.4,5.0,-1.2,3.2 +19940201,-2.9,-8.9,0.5,-5.6,5.0 +19940202,-4.7,-13.7,1.7,-8.9,5.5 +19940203,-2.3,-10.7,9.4,-10.6,2.1 +19940204,1.7,-7.8,10.0,-5.0,2.7 +19940205,7.9,3.3,12.8,5.0,3.3 +19940206,5.7,2.6,13.3,-1.2,2.9 +19940207,5.1,-0.8,15.0,-3.4,2.0 +19940208,10.4,0.7,15.5,6.6,5.3 +19940209,14.7,12.3,19.4,10.6,4.8 +19940210,5.8,5.0,10.6,1.1,4.4 +19940211,-0.3,-0.8,8.3,-1.7,3.4 +19940212,1.4,1.3,2.8,0.0,2.9 +19940213,3.6,1.9,7.2,0.6,4.6 +19940214,0.3,-7.4,10.0,-5.6,6.6 +19940215,1.2,-7.3,10.5,-6.2,2.5 +19940216,4.3,-8.2,15.0,-4.5,3.0 +19940217,3.9,-6.2,15.0,-5.0,2.0 +19940218,6.4,-2.4,16.1,-2.3,2.2 +19940219,8.5,2.7,16.7,1.1,2.5 +19940220,12.6,8.0,16.6,9.4,2.5 +19940221,11.6,8.8,16.6,7.7,2.7 +19940222,6.8,4.7,16.1,1.1,2.6 +19940223,9.6,9.2,13.3,8.3,3.5 +19940224,8.1,2.7,13.3,4.4,5.5 +19940225,3.9,-6.4,13.9,-2.8,4.2 +19940226,3.0,-9.4,13.8,-4.5,7.0 +19940227,-1.5,-12.9,9.4,-7.8,5.4 +19940228,1.3,-9.8,9.4,-5.6,2.7 +19940301,4.9,-0.8,10.0,2.7,3.0 +19940302,3.5,2.7,6.1,2.2,2.1 +19940303,1.7,-2.1,6.7,-1.2,9.1 +19940304,8.1,-2.4,21.1,-1.2,4.3 +19940305,12.8,-1.1,21.1,6.6,5.7 +19940306,8.1,-1.9,18.9,-1.7,2.7 +19940307,10.6,2.6,22.2,0.5,3.1 +19940308,13.4,6.8,22.2,4.4,2.6 +19940309,7.9,7.2,10.0,4.4,4.8 +19940310,4.9,3.1,10.0,0.6,7.2 +19940311,0.6,-7.2,10.0,-2.8,8.2 +19940312,1.9,-6.1,10.6,-5.6,2.2 +19940313,4.3,-3.6,13.3,-3.9,2.2 +19940314,8.4,0.2,14.4,3.3,4.5 +19940315,8.4,-1.1,21.7,-1.2,2.6 +19940316,7.7,-7.3,22.2,3.8,7.4 +19940317,3.2,-13.6,11.7,-2.3,7.6 +19940318,7.6,-4.6,18.9,-1.2,3.3 +19940319,12.6,-5.2,20.0,5.5,8.4 +19940320,13.0,-3.0,23.9,2.7,4.2 +19940321,15.0,8.3,24.4,10.5,2.7 +19940322,12.3,1.6,21.1,5.0,6.8 +19940323,10.4,-0.8,21.7,0.0,2.8 +19940324,14.3,8.3,21.6,9.4,2.6 +19940325,12.4,10.7,17.2,8.3,4.9 +19940326,6.2,1.4,16.1,0.5,4.1 +19940327,12.5,10.7,17.2,7.7,3.2 +19940328,14.1,12.6,20.0,11.1,3.8 +19940329,6.9,1.6,18.3,2.7,6.2 +19940330,5.8,-2.7,13.3,-1.7,2.8 +19940331,8.2,-0.1,13.8,4.4,5.2 +19940401,6.5,-2.7,15.6,0.0,6.0 +19940402,8.5,-3.3,19.4,-2.3,2.4 +19940403,11.1,0.0,20.0,2.7,3.4 +19940404,10.9,3.2,19.4,5.5,4.3 +19940405,11.9,3.6,20.6,2.7,2.7 +19940406,13.5,11.1,20.5,10.5,4.0 +19940407,7.4,3.2,20.5,1.6,6.9 +19940408,5.3,-2.9,15.6,-3.4,4.1 +19940409,8.5,3.9,16.1,2.7,2.5 +19940410,15.4,12.1,21.7,8.8,4.8 +19940411,17.2,14.6,22.2,13.3,3.1 +19940412,13.5,13.1,22.2,11.6,3.9 +19940413,18.8,11.3,25.0,13.3,5.5 +19940414,16.4,2.0,26.1,4.4,3.3 +19940415,15.3,9.7,26.6,8.8,3.1 +19940416,14.7,7.6,19.4,10.5,5.8 +19940417,14.6,-1.9,22.8,5.5,4.8 +19940418,16.2,0.4,25.0,7.2,4.3 +19940419,17.2,4.3,27.2,5.5,2.6 +19940420,18.4,6.9,27.7,8.8,3.5 +19940421,18.1,2.6,27.2,7.7,3.2 +19940422,15.9,6.2,27.7,8.8,3.0 +19940423,13.3,3.7,23.3,7.2,3.0 +19940424,14.1,3.7,24.4,2.7,2.6 +19940425,16.4,8.4,26.7,5.5,2.4 +19940426,19.8,14.1,27.8,12.7,2.6 +19940427,18.1,15.1,28.3,12.2,2.5 +19940428,17.5,14.4,28.3,12.2,2.5 +19940429,20.0,15.2,27.2,12.2,2.7 +19940430,18.5,13.8,27.7,12.7,3.9 +19940501,18.4,13.3,24.4,14.4,4.8 +19940502,11.9,6.3,21.6,5.5,5.3 +19940503,10.1,7.3,20.0,7.2,2.4 +19940504,11.2,9.1,17.8,7.7,2.2 +19940505,12.6,8.3,17.7,10.0,5.1 +19940506,12.3,6.9,23.3,2.7,2.3 +19940507,15.9,11.1,24.4,7.7,2.4 +19940508,14.0,8.9,25.5,8.8,6.6 +19940509,12.9,6.8,23.3,4.4,2.5 +19940510,15.9,9.8,23.8,9.4,4.1 +19940511,15.1,7.2,22.8,6.6,3.2 +19940512,17.4,11.5,24.4,9.4,4.0 +19940513,15.2,6.3,24.4,6.6,3.8 +19940514,16.4,12.2,22.8,11.6,3.4 +19940515,20.1,16.7,26.1,15.5,3.1 +19940516,19.3,13.1,28.3,13.8,4.6 +19940517,16.1,6.4,25.0,11.6,6.7 +19940518,14.6,5.9,21.7,7.7,6.2 +19940519,12.1,3.3,21.6,5.0,5.4 +19940520,12.8,5.5,18.9,5.5,5.1 +19940521,14.0,8.0,19.4,7.7,3.1 +19940522,15.3,7.6,25.6,4.4,3.1 +19940523,19.7,9.8,27.8,10.5,4.3 +19940524,19.7,13.1,28.3,11.1,2.2 +19940525,19.2,14.6,27.7,14.4,3.2 +19940526,19.1,15.9,27.7,15.0,2.2 +19940527,16.0,11.2,25.0,11.6,4.7 +19940528,14.1,7.2,21.7,6.6,3.3 +19940529,16.7,11.4,24.4,8.8,3.0 +19940530,18.7,11.4,25.0,12.2,3.2 +19940531,18.7,12.3,24.4,12.2,2.0 +19940601,21.1,15.6,28.9,13.8,3.1 +19940602,21.9,15.4,29.4,14.4,3.2 +19940603,20.9,15.0,30.0,15.5,2.6 +19940604,21.2,17.6,28.8,16.6,2.2 +19940605,21.3,18.8,29.4,18.3,2.8 +19940606,20.8,19.4,26.1,18.3,2.9 +19940607,21.7,19.2,27.2,18.3,2.8 +19940608,21.5,19.2,28.3,18.3,2.9 +19940609,19.6,17.6,27.2,15.5,2.1 +19940610,21.0,18.6,26.1,18.8,3.3 +19940611,20.3,18.1,27.2,16.1,1.9 +19940612,21.4,18.8,26.7,17.7,1.7 +19940613,20.5,18.3,27.7,16.1,2.1 +19940614,22.1,18.9,27.8,16.6,1.9 +19940615,21.6,19.7,28.3,18.3,2.6 +19940616,23.1,19.4,29.4,18.8,2.4 +19940617,23.3,18.4,29.4,18.8,2.1 +19940618,22.9,18.7,28.9,17.8,1.9 +19940619,22.9,18.2,30.0,16.1,2.1 +19940620,23.6,18.9,30.6,18.8,2.6 +19940621,22.9,19.3,30.5,17.2,2.7 +19940622,23.9,19.7,31.1,18.3,2.6 +19940623,22.9,19.8,31.1,17.7,2.4 +19940624,22.8,19.9,30.5,19.4,4.1 +19940625,21.8,15.8,27.2,16.6,3.4 +19940626,19.6,15.8,26.7,13.3,2.8 +19940627,20.4,17.6,26.7,17.2,3.2 +19940628,20.5,16.7,28.3,12.7,1.8 +19940629,21.5,18.6,28.3,17.7,2.2 +19940630,21.8,16.0,28.8,13.8,2.5 +19940701,22.1,16.8,28.8,16.1,2.6 +19940702,22.2,17.3,29.4,15.5,2.3 +19940703,22.8,18.4,30.0,17.2,2.6 +19940704,23.1,19.4,29.4,18.8,3.0 +19940705,21.7,20.4,27.7,20.0,2.0 +19940706,22.7,20.1,27.8,20.0,2.2 +19940707,22.5,18.7,27.7,17.7,2.4 +19940708,22.5,19.3,27.7,20.0,3.8 +19940709,23.4,19.4,29.4,17.2,3.3 +19940710,22.9,19.8,30.0,18.8,3.1 +19940711,21.3,19.9,27.2,19.4,2.2 +19940712,21.8,19.9,25.6,19.4,1.6 +19940713,21.5,19.9,26.1,18.8,2.9 +19940714,23.4,19.8,29.4,18.3,2.2 +19940715,22.6,20.9,29.4,18.8,2.2 +19940716,23.1,20.5,28.8,20.0,3.2 +19940717,22.5,20.2,28.9,19.4,1.9 +19940718,22.5,19.9,29.4,18.8,2.5 +19940719,22.1,19.8,30.0,18.3,2.1 +19940720,22.6,18.8,28.9,18.3,2.4 +19940721,21.9,19.4,28.8,18.3,2.4 +19940722,21.3,19.6,27.7,17.7,2.2 +19940723,22.7,19.4,27.2,18.8,2.3 +19940724,22.5,18.8,28.9,17.7,2.9 +19940725,22.1,19.1,29.4,17.7,1.6 +19940726,21.5,19.6,28.8,17.7,1.9 +19940727,20.4,19.2,26.1,18.3,3.0 +19940728,20.0,17.4,26.1,16.6,3.0 +19940729,20.3,16.6,26.1,16.6,2.4 +19940730,20.3,15.6,26.6,15.5,2.3 +19940731,20.5,16.1,26.7,14.4,2.0 +19940801,20.9,18.1,26.6,17.7,2.3 +19940802,20.7,18.5,27.2,17.2,2.1 +19940803,20.6,19.1,27.2,18.3,2.0 +19940804,22.4,19.8,26.7,18.8,2.3 +19940805,21.2,19.4,27.7,19.4,2.9 +19940806,19.3,16.4,26.1,15.5,3.5 +19940807,20.2,16.8,24.4,17.2,3.0 +19940808,20.2,17.7,25.6,17.7,2.3 +19940809,21.1,17.1,28.9,15.5,2.7 +19940810,22.3,18.2,29.4,16.6,2.1 +19940811,22.7,18.8,30.0,17.2,1.7 +19940812,22.8,19.9,29.4,18.8,2.4 +19940813,22.2,19.6,29.4,18.3,2.2 +19940814,21.4,20.3,28.8,18.8,1.9 +19940815,21.1,20.2,28.3,20.0,2.2 +19940816,20.1,19.4,25.0,18.8,2.6 +19940817,21.3,18.9,26.1,18.3,4.2 +19940818,20.8,17.3,27.2,15.0,2.1 +19940819,20.4,17.7,28.3,16.1,2.1 +19940820,20.7,18.1,27.2,16.6,3.1 +19940821,20.1,19.1,27.7,18.3,3.0 +19940822,18.8,15.4,23.9,13.8,3.5 +19940823,18.8,15.1,25.6,12.2,1.6 +19940824,20.4,17.1,26.1,16.6,1.6 +19940825,20.2,17.4,25.6,14.4,2.4 +19940826,20.9,17.4,28.3,16.1,2.4 +19940827,21.6,18.3,28.3,17.7,2.2 +19940828,21.6,18.2,28.3,16.6,2.4 +19940829,22.3,18.5,28.9,15.5,2.2 +19940830,22.3,18.9,28.8,18.3,3.1 +19940831,23.1,20.1,28.9,19.4,2.3 +19940901,21.8,20.1,29.4,19.4,2.9 +19940902,18.4,17.9,26.1,15.5,2.2 +19940903,15.8,14.2,20.0,14.4,1.7 +19940904,15.8,13.4,21.7,11.6,1.3 +19940905,17.0,14.3,21.6,14.4,3.0 +19940906,19.3,17.1,23.9,16.1,3.0 +19940907,18.8,14.9,25.0,13.8,3.2 +19940908,17.3,13.7,25.0,12.2,2.4 +19940909,19.2,16.7,25.0,15.5,2.2 +19940910,19.4,16.1,26.7,15.0,1.6 +19940911,18.7,14.3,27.2,12.2,2.6 +19940912,18.3,12.8,26.7,10.0,2.0 +19940913,17.9,12.9,26.6,11.1,2.7 +19940914,18.5,14.0,26.7,10.5,2.5 +19940915,18.5,14.4,27.8,11.1,1.6 +19940916,19.3,16.3,27.7,12.7,2.0 +19940917,21.8,20.3,27.2,19.4,3.0 +19940918,19.4,18.0,27.2,16.6,3.3 +19940919,16.9,12.7,22.2,11.6,2.5 +19940920,15.3,11.2,22.7,8.3,2.0 +19940921,15.2,11.5,21.7,10.0,1.4 +19940922,14.8,10.9,23.9,7.2,1.9 +19940923,15.1,13.4,23.8,11.6,1.2 +19940924,17.5,16.2,22.8,14.4,2.4 +19940925,18.2,16.6,23.3,14.4,2.7 +19940926,16.6,12.2,23.3,10.0,3.8 +19940927,15.7,9.3,23.9,9.4,2.3 +19940928,14.2,9.0,23.8,7.7,3.3 +19940929,15.6,9.0,23.3,9.4,4.1 +19940930,14.6,8.9,25.6,6.1,1.6 +19941001,16.7,12.4,26.6,8.8,2.0 +19941002,17.7,15.1,27.2,12.7,2.1 +19941003,17.6,15.9,25.5,16.1,2.9 +19941004,15.4,12.4,21.7,12.7,3.3 +19941005,13.2,8.0,21.6,7.7,4.7 +19941006,12.8,9.3,18.3,8.8,3.2 +19941007,15.5,11.5,19.4,12.7,3.1 +19941008,13.2,11.6,20.0,8.3,2.2 +19941009,16.6,16.5,18.9,15.0,2.0 +19941010,13.4,10.2,18.8,11.1,4.6 +19941011,10.3,5.4,16.6,5.0,2.5 +19941012,8.0,4.3,15.0,5.0,2.3 +19941013,10.4,10.2,11.7,7.7,2.1 +19941014,13.6,12.4,16.7,11.1,2.4 +19941015,15.2,9.8,19.4,12.2,2.5 +19941016,11.5,6.9,20.0,4.4,2.2 +19941017,10.3,5.8,20.5,2.7,2.0 +19941018,10.2,4.6,22.2,2.7,1.7 +19941019,11.2,8.8,22.2,8.3,1.6 +19941020,13.1,11.0,21.1,8.3,1.7 +19941021,12.3,7.9,22.2,4.4,1.7 +19941022,13.9,11.7,22.2,8.3,2.1 +19941023,17.3,13.9,21.7,15.0,3.8 +19941024,13.6,6.8,21.6,6.1,3.8 +19941025,11.5,6.2,20.5,4.4,3.4 +19941026,9.7,2.5,20.0,6.1,5.2 +19941027,6.0,0.1,15.6,-1.2,2.8 +19941028,6.0,0.8,15.5,-1.7,1.8 +19941029,7.5,4.0,19.4,-1.7,2.1 +19941030,15.6,12.7,20.0,12.2,1.6 +19941031,17.0,14.4,22.2,14.4,2.0 +19941101,12.1,8.1,22.2,7.7,4.9 +19941102,9.1,-4.9,18.3,2.7,4.5 +19941103,9.6,0.2,23.3,0.0,1.8 +19941104,11.9,2.8,24.4,1.1,2.5 +19941105,14.6,10.1,25.0,9.4,3.6 +19941106,17.4,14.1,22.8,15.0,4.9 +19941107,12.9,4.3,23.3,8.3,4.9 +19941108,9.1,1.6,21.1,0.0,2.7 +19941109,11.8,5.8,23.9,2.2,2.2 +19941110,13.8,12.6,23.8,10.0,2.9 +19941111,10.1,-0.9,15.6,5.0,2.0 +19941112,8.1,-1.3,16.6,0.0,1.7 +19941113,8.2,-0.2,21.7,-1.7,1.5 +19941114,9.1,1.3,21.7,-1.2,1.7 +19941115,9.1,1.7,21.6,0.0,1.9 +19941116,10.6,5.0,21.6,3.8,2.6 +19941117,12.0,8.7,20.0,8.3,3.4 +19941118,14.5,11.2,20.0,11.1,4.7 +19941119,14.8,5.6,22.2,8.8,5.2 +19941120,9.7,-0.4,22.2,2.7,2.7 +19941121,14.4,8.8,23.9,9.4,3.4 +19941122,11.6,2.7,23.8,5.5,6.5 +19941123,4.2,-10.6,15.0,0.0,7.2 +19941124,3.1,-8.5,11.7,-2.8,4.0 +19941125,2.7,-6.5,12.8,-5.0,2.4 +19941126,5.3,-1.5,13.8,3.3,3.4 +19941127,4.5,3.7,6.6,3.8,3.7 +19941128,9.9,6.6,16.1,4.4,4.0 +19941129,2.3,-0.7,5.6,-1.7,1.4 +19941130,4.7,-0.3,10.6,-1.2,3.8 +19941201,3.4,-5.4,11.7,-3.4,2.9 +19941202,2.9,-3.4,13.9,-5.0,1.7 +19941203,6.1,2.1,16.7,-1.2,2.0 +19941204,12.6,12.5,16.6,11.1,1.3 +19941205,16.2,14.7,21.1,13.8,3.9 +19941206,12.9,10.6,21.1,6.6,2.8 +19941207,11.4,9.6,19.4,4.4,3.6 +19941208,11.8,7.7,17.2,6.6,4.7 +19941209,9.7,5.7,16.1,6.6,3.1 +19941210,8.7,7.9,15.0,6.6,2.8 +19941211,3.3,-0.3,11.7,-1.1,8.9 +19941212,-1.7,-6.2,5.5,-6.2,4.0 +19941213,0.3,-4.6,4.4,-2.8,2.9 +19941214,4.9,2.9,8.9,2.7,1.3 +19941215,6.9,5.4,8.9,5.5,1.9 +19941216,5.6,3.1,9.4,3.8,3.7 +19941217,6.6,4.7,13.9,3.3,3.2 +19941218,5.4,2.4,13.8,-0.6,5.4 +19941219,2.7,-3.7,10.0,-0.6,6.1 +19941220,0.7,-3.7,10.0,-6.2,1.6 +19941221,1.5,-2.6,10.0,-3.9,1.6 +19941222,6.3,4.8,8.8,4.4,2.3 +19941223,6.6,1.3,7.8,5.5,8.5 +19941224,4.2,-1.0,7.7,2.2,9.4 +19941225,3.4,-3.1,6.1,2.2,10.4 +19941226,5.8,-2.2,15.0,-0.6,5.6 +19941227,3.9,-1.0,15.0,-4.5,1.5 +19941228,4.9,-1.7,16.1,-2.8,2.1 +19941229,7.1,-1.8,16.1,2.2,2.8 +19941230,6.7,-6.2,12.2,3.8,2.7 +19941231,3.8,1.6,8.8,1.1,2.3 +19950101,8.5,6.7,14.4,6.1,2.6 +19950102,2.2,-3.9,9.4,-2.8,6.3 +19950103,-1.3,-10.2,5.0,-3.9,3.8 +19950104,-0.8,-7.7,2.8,-2.8,6.0 +19950105,-5.8,-16.9,1.7,-12.2,5.1 +19950106,-3.2,-10.6,2.2,-7.2,3.6 +19950107,3.8,2.7,7.2,0.0,4.6 +19950108,0.4,-4.3,6.7,-2.8,5.9 +19950109,2.9,-1.9,9.4,-1.1,2.4 +19950110,2.4,-2.2,12.2,-3.9,2.2 +19950111,4.9,2.6,8.9,0.6,3.0 +19950112,9.6,8.9,13.9,7.2,2.8 +19950113,11.6,10.3,15.0,8.9,3.1 +19950114,14.6,13.7,16.7,12.8,6.3 +19950115,12.0,11.6,15.0,10.0,3.5 +19950116,7.9,6.2,10.0,5.6,6.3 +19950117,5.8,0.8,17.2,0.0,3.6 +19950118,7.3,3.2,15.6,1.7,2.2 +19950119,6.3,5.5,9.4,4.4,4.3 +19950120,2.8,-1.7,8.9,-0.6,4.8 +19950121,0.7,-4.4,4.4,-3.3,6.7 +19950122,-0.6,-7.4,7.2,-5.0,5.0 +19950123,1.3,-6.4,4.4,-1.1,4.7 +19950124,-2.8,-8.0,2.2,-7.2,6.5 +19950125,-0.8,-9.1,10.0,-7.8,4.6 +19950126,3.9,-4.1,7.8,-2.2,4.7 +19950127,0.2,-5.4,7.8,-5.6,2.2 +19950128,6.1,3.3,10.0,3.3,3.5 +19950129,2.7,2.7,5.6,0.6,3.7 +19950130,0.0,-0.7,2.8,-1.7,4.1 +19950131,-0.3,-3.4,5.6,-2.8,6.2 +19950201,3.2,-4.2,13.9,-2.2,4.3 +19950202,9.4,2.3,12.2,5.6,2.9 +19950203,5.2,3.1,10.0,1.1,4.1 +19950204,1.8,-1.3,6.7,-2.8,6.7 +19950205,-5.3,-11.5,-2.8,-7.8,7.4 +19950206,-7.3,-15.9,-1.1,-11.7,6.9 +19950207,-5.6,-13.6,2.2,-11.7,2.6 +19950208,-7.6,-12.5,-1.1,-11.7,7.9 +19950209,-8.8,-16.1,2.2,-14.4,5.7 +19950210,0.7,-5.3,11.1,-4.4,1.7 +19950211,4.3,1.3,6.7,2.2,5.9 +19950212,-3.0,-11.1,1.1,-7.2,8.0 +19950213,-3.3,-14.2,2.8,-7.8,3.1 +19950214,1.5,-8.4,4.4,-0.6,1.9 +19950215,2.4,-0.4,4.4,0.6,4.1 +19950216,9.1,9.1,13.9,3.9,3.3 +19950217,9.4,9.1,11.7,7.2,3.8 +19950218,6.3,5.6,10.0,4.4,2.4 +19950219,8.0,6.3,13.3,5.6,2.3 +19950220,9.2,4.8,13.3,5.6,4.1 +19950221,5.1,-1.2,10.6,1.1,8.0 +19950222,2.7,-4.7,16.1,-4.4,5.5 +19950223,8.8,-1.2,19.4,0.0,2.2 +19950224,8.9,-3.2,16.1,4.4,6.1 +19950225,3.2,-6.5,13.3,-3.3,2.7 +19950226,7.9,-2.6,20.6,-2.8,2.6 +19950227,11.4,5.9,16.1,8.3,3.4 +19950228,12.1,11.6,13.9,10.6,2.9 +19950301,9.8,8.9,12.2,6.7,5.1 +19950302,4.6,2.5,6.1,3.3,4.0 +19950303,4.8,3.4,6.1,3.3,2.8 +19950304,3.3,2.3,8.3,0.6,2.9 +19950305,3.1,3.0,3.9,2.2,3.6 +19950306,8.6,7.2,20.0,3.9,2.5 +19950307,14.3,12.4,17.2,12.2,4.6 +19950308,10.9,9.3,16.1,0.6,7.8 +19950309,-1.4,-6.1,1.7,-3.9,10.2 +19950310,1.3,-5.1,13.9,-6.7,3.9 +19950311,6.2,-1.8,17.2,-4.4,1.9 +19950312,8.8,0.5,19.4,-2.2,2.1 +19950313,9.9,3.7,18.9,0.0,1.8 +19950314,11.1,6.1,20.6,1.1,1.6 +19950315,11.4,6.0,20.6,1.7,1.2 +19950316,12.7,6.6,22.2,2.8,2.2 +19950317,14.4,7.8,23.3,5.6,3.1 +19950318,14.2,3.3,22.2,6.1,3.5 +19950319,9.8,-1.0,18.3,1.1,2.8 +19950320,11.0,2.9,19.4,1.7,4.2 +19950321,12.8,3.9,18.3,3.9,4.2 +19950322,13.8,3.4,25.0,2.8,3.2 +19950323,18.0,8.7,27.2,10.0,3.3 +19950324,12.7,1.1,21.1,8.3,7.1 +19950325,9.8,-8.1,18.9,1.7,5.3 +19950326,9.8,-4.7,21.7,-1.1,2.0 +19950327,12.9,6.8,18.9,8.3,2.1 +19950328,13.2,4.8,17.8,8.3,5.2 +19950329,9.9,1.6,17.8,2.8,2.7 +19950330,10.4,1.7,15.6,6.7,4.2 +19950331,9.2,-1.9,14.4,5.0,5.2 +19950401,7.1,-2.1,12.2,1.1,3.4 +19950402,7.7,-4.1,15.0,0.0,3.8 +19950403,8.3,-2.8,20.0,-1.7,2.7 +19950404,12.2,3.2,18.9,4.4,3.8 +19950405,11.3,-6.1,18.3,3.9,6.1 +19950406,11.7,0.3,19.4,5.0,2.2 +19950407,13.2,3.1,24.4,1.7,2.8 +19950408,15.3,5.3,25.0,4.4,2.1 +19950409,18.3,7.3,26.7,8.3,3.7 +19950410,19.8,7.7,29.4,7.8,3.3 +19950411,14.8,11.1,25.6,11.1,4.9 +19950412,13.7,13.1,19.4,11.1,4.9 +19950413,12.3,5.9,18.3,6.1,4.8 +19950414,12.2,-0.7,18.3,7.2,6.2 +19950415,13.2,-1.8,22.2,2.8,3.0 +19950416,15.3,5.2,27.2,4.4,2.2 +19950417,15.3,10.8,22.8,10.6,1.6 +19950418,17.6,13.8,27.8,11.7,1.7 +19950419,21.2,12.9,28.3,12.2,3.4 +19950420,18.9,15.1,23.9,13.3,2.6 +19950421,19.5,14.2,26.7,16.1,3.5 +19950422,17.9,11.9,23.3,10.0,3.0 +19950423,12.7,10.2,20.0,7.2,3.2 +19950424,7.6,5.4,11.1,5.6,5.0 +19950425,8.8,2.3,16.7,3.3,5.6 +19950426,10.1,2.9,19.4,0.6,1.9 +19950427,13.2,6.5,20.6,4.4,3.4 +19950428,14.4,4.8,21.1,8.9,4.8 +19950429,12.7,4.2,21.7,3.3,3.2 +19950430,15.5,10.0,23.3,10.0,2.7 +19950501,14.4,12.2,18.3,10.6,3.0 +19950502,11.7,8.8,13.9,8.3,4.9 +19950503,11.3,5.6,18.9,5.0,3.2 +19950504,13.4,9.2,17.8,8.9,3.8 +19950505,13.5,9.9,19.4,8.9,3.1 +19950506,14.2,5.3,21.7,8.3,4.4 +19950507,13.7,6.3,24.4,5.6,1.9 +19950508,15.7,7.9,25.0,7.2,2.2 +19950509,16.9,13.3,22.2,13.9,2.7 +19950510,19.3,16.6,25.6,13.9,3.1 +19950511,20.6,14.9,26.7,15.0,3.7 +19950512,17.2,11.9,22.8,11.1,3.9 +19950513,14.9,11.6,21.1,8.3,2.3 +19950514,18.2,16.1,24.4,15.6,3.7 +19950515,21.7,18.4,27.2,17.8,4.0 +19950516,18.9,13.2,26.1,11.1,2.8 +19950517,21.8,15.7,28.3,16.7,2.9 +19950518,23.4,17.4,28.3,17.8,2.9 +19950519,19.9,16.6,23.9,16.7,4.3 +19950520,15.6,6.7,23.3,8.9,4.2 +19950521,16.0,8.9,24.4,7.2,1.6 +19950522,18.9,11.7,24.4,11.7,2.6 +19950523,18.8,13.8,25.0,12.2,2.2 +19950524,20.4,14.2,26.7,13.9,2.8 +19950525,21.7,15.1,28.3,14.4,2.4 +19950526,20.8,17.2,26.7,14.4,2.0 +19950527,19.4,17.7,24.4,15.6,2.0 +19950528,18.8,17.5,22.2,16.7,3.2 +19950529,20.4,18.8,26.1,17.8,2.9 +19950530,19.8,16.5,24.4,17.2,3.7 +19950531,17.4,13.3,21.7,13.3,2.8 +19950601,18.9,18.3,22.8,16.7,2.3 +19950602,20.6,19.2,24.4,18.3,3.2 +19950603,20.0,17.2,26.1,14.4,2.0 +19950604,21.4,17.4,27.8,15.0,2.2 +19950605,21.0,18.8,25.0,18.3,1.3 +19950606,20.0,18.1,26.1,17.8,3.9 +19950607,21.1,18.4,26.1,17.2,2.5 +19950608,23.1,18.9,30.0,16.1,2.6 +19950609,22.2,19.6,30.0,17.8,1.6 +19950610,20.8,18.6,28.9,17.2,1.4 +19950611,22.4,19.3,28.9,17.8,2.5 +19950612,18.9,17.4,25.0,16.7,3.5 +19950613,15.5,10.7,18.9,12.2,5.5 +19950614,16.0,9.2,23.9,8.9,4.0 +19950615,17.6,11.8,25.0,10.6,2.5 +19950616,17.2,12.6,25.0,10.6,1.8 +19950617,17.3,14.4,23.3,11.7,1.8 +19950618,18.1,14.3,26.1,12.8,2.3 +19950619,16.9,14.6,22.8,14.4,2.5 +19950620,17.3,14.9,22.8,13.9,2.6 +19950621,19.0,15.6,24.4,14.4,2.0 +19950622,19.1,16.7,24.4,16.1,1.9 +19950623,19.3,17.2,24.4,15.6,1.9 +19950624,20.5,18.3,25.0,17.2,1.7 +19950625,20.3,19.2,25.6,17.8,2.0 +19950626,21.2,19.3,27.8,18.3,1.5 +19950627,20.7,17.1,28.3,15.6,2.3 +19950628,21.1,17.5,26.7,14.4,1.8 +19950629,21.3,19.1,25.6,18.9,1.9 +19950630,19.6,18.4,25.6,16.1,1.5 +19950701,21.2,18.8,25.6,18.3,3.2 +19950702,20.7,17.7,26.1,16.1,2.4 +19950703,19.9,17.9,26.7,16.1,2.0 +19950704,21.0,18.4,26.7,17.2,1.7 +19950705,23.6,19.6,30.6,18.3,2.5 +19950706,23.4,19.3,29.4,18.3,2.2 +19950707,22.3,17.7,27.8,17.2,2.9 +19950708,21.7,15.1,27.2,16.1,3.6 +19950709,19.8,14.7,26.7,12.8,1.7 +19950710,21.9,17.3,28.9,15.0,1.5 +19950711,23.3,18.6,31.1,17.2,3.2 +19950712,23.7,18.4,31.7,17.2,1.9 +19950713,23.7,20.1,29.4,18.9,1.7 +19950714,24.5,20.3,31.1,18.3,2.2 +19950715,24.1,20.3,32.2,18.9,1.7 +19950716,24.6,20.4,31.1,20.0,2.5 +19950717,24.2,20.4,30.6,20.0,2.9 +19950718,24.9,18.9,31.1,19.4,3.1 +19950719,23.2,17.4,28.3,17.8,2.7 +19950720,24.1,20.2,30.6,18.9,2.8 +19950721,24.7,21.4,30.6,20.6,2.4 +19950722,23.9,20.5,28.9,19.4,1.7 +19950723,24.9,20.3,32.2,18.9,1.6 +19950724,25.7,20.0,32.8,18.9,1.9 +19950725,25.1,19.0,32.2,17.8,1.5 +19950726,23.7,19.3,31.7,18.3,2.0 +19950727,22.9,20.3,27.2,20.6,2.2 +19950728,23.1,19.6,27.2,18.3,3.3 +19950729,23.3,19.3,29.4,18.3,1.9 +19950730,24.1,19.2,30.6,17.2,1.9 +19950731,24.0,19.9,30.6,18.9,1.5 +19950801,23.0,19.1,28.9,17.8,2.2 +19950802,22.9,19.1,28.3,18.3,2.0 +19950803,22.7,20.0,26.1,20.6,3.5 +19950804,23.2,20.7,27.8,20.6,3.2 +19950805,22.8,20.3,26.7,19.4,2.9 +19950806,24.5,20.3,28.9,21.7,2.7 +19950807,22.4,20.8,26.7,21.1,1.4 +19950808,19.7,18.4,22.2,17.8,2.3 +19950809,20.2,17.7,25.0,17.8,1.8 +19950810,21.4,19.3,27.8,17.8,1.9 +19950811,23.1,20.4,30.0,19.4,2.3 +19950812,23.6,19.6,31.1,18.3,2.6 +19950813,25.3,20.5,32.2,20.0,2.2 +19950814,26.2,20.9,33.3,19.4,1.8 +19950815,25.6,20.5,33.3,19.4,1.6 +19950816,27.2,21.5,33.9,21.7,1.8 +19950817,25.9,20.1,33.9,19.4,1.8 +19950818,26.3,21.2,33.3,20.0,2.0 +19950819,24.2,20.7,28.9,20.0,1.9 +19950820,22.2,20.0,25.0,19.4,2.2 +19950821,23.2,20.2,27.8,20.0,2.1 +19950822,24.0,20.6,30.6,20.0,2.5 +19950823,22.4,18.5,26.7,17.2,2.3 +19950824,22.2,19.4,27.2,19.4,1.3 +19950825,22.7,20.0,27.8,18.9,2.1 +19950826,21.7,20.9,24.4,20.6,1.9 +19950827,20.9,20.1,23.3,20.0,2.5 +19950828,23.1,19.4,27.8,19.4,3.1 +19950829,22.7,18.8,29.4,17.2,2.4 +19950830,22.9,19.1,29.4,17.8,2.0 +19950831,24.2,20.1,31.1,19.4,1.7 +19950901,22.1,19.5,31.1,17.8,2.5 +19950902,20.3,15.1,25.6,17.2,3.3 +19950903,17.7,12.3,26.1,11.1,1.5 +19950904,18.3,13.3,25.6,10.6,1.2 +19950905,17.9,14.2,26.1,11.7,2.0 +19950906,18.7,14.9,25.6,13.9,1.6 +19950907,19.5,14.1,27.2,12.8,2.0 +19950908,20.0,15.1,27.8,13.3,1.8 +19950909,20.8,16.4,28.9,14.4,2.1 +19950910,19.9,17.2,26.1,15.0,1.4 +19950911,19.2,18.4,21.1,17.2,1.9 +19950912,17.2,16.3,20.6,16.1,2.5 +19950913,20.3,17.7,26.7,16.1,2.5 +19950914,20.8,18.5,25.0,17.8,2.9 +19950915,19.6,16.7,24.4,15.6,2.2 +19950916,17.8,17.1,20.6,16.1,1.6 +19950917,19.8,17.3,24.4,16.7,4.1 +19950918,18.7,15.0,24.4,14.4,2.9 +19950919,18.5,14.7,22.2,16.1,1.6 +19950920,17.8,14.9,23.9,13.3,1.7 +19950921,20.3,17.9,23.3,17.8,1.8 +19950922,18.6,17.7,21.7,13.9,2.3 +19950923,11.5,10.7,13.3,10.0,3.8 +19950924,10.3,9.7,14.4,8.3,2.7 +19950925,15.2,13.6,21.1,12.2,2.5 +19950926,17.9,15.3,21.1,15.6,3.2 +19950927,16.6,13.4,22.8,12.8,2.6 +19950928,16.7,13.1,22.8,12.2,1.7 +19950929,14.4,10.8,21.1,8.3,1.5 +19950930,13.8,11.3,20.0,8.3,1.5 +19951001,17.6,14.3,25.0,14.4,2.2 +19951002,17.8,14.3,26.1,12.8,1.9 +19951003,17.9,16.9,20.6,15.6,2.3 +19951004,16.9,16.8,18.9,15.6,1.5 +19951005,20.3,18.9,23.3,17.2,7.1 +19951006,18.3,15.6,25.6,13.3,2.5 +19951007,17.7,12.7,21.7,12.2,4.3 +19951008,14.5,8.8,22.2,8.9,4.2 +19951009,13.7,10.5,21.1,8.3,1.6 +19951010,14.6,10.7,23.9,8.3,1.9 +19951011,15.5,10.9,25.0,7.8,1.6 +19951012,16.1,11.7,25.0,8.9,1.8 +19951013,17.0,15.7,18.3,15.6,1.4 +19951014,17.8,17.3,19.4,15.6,2.8 +19951015,10.9,2.7,16.1,6.1,7.5 +19951016,11.3,2.2,18.9,3.3,4.0 +19951017,8.5,2.8,16.7,1.1,2.5 +19951018,9.2,3.2,20.6,0.0,1.3 +19951019,11.4,7.2,21.1,3.9,1.7 +19951020,12.8,10.6,17.2,8.9,2.5 +19951021,8.6,0.8,13.9,2.8,5.8 +19951022,7.9,0.1,21.1,-0.6,1.8 +19951023,9.8,3.8,20.0,1.1,2.7 +19951024,15.2,10.9,22.2,9.4,3.3 +19951025,12.7,4.5,20.0,3.9,4.2 +19951026,11.7,4.7,21.1,6.1,2.6 +19951027,13.5,10.6,17.8,10.0,3.6 +19951028,11.8,6.1,15.6,6.7,3.4 +19951029,8.5,-0.7,13.3,5.0,5.2 +19951030,6.6,0.3,14.4,0.0,2.7 +19951031,9.1,7.6,11.1,7.2,1.5 +19951101,12.2,11.7,16.1,10.0,1.8 +19951102,15.4,14.7,18.3,13.9,2.7 +19951103,14.1,13.3,17.8,8.3,2.6 +19951104,3.0,-3.8,6.7,-1.1,7.3 +19951105,0.3,-4.9,5.0,-4.4,2.3 +19951106,3.3,-3.0,11.7,-3.3,1.9 +19951107,9.2,6.7,12.8,6.1,4.2 +19951108,6.3,-1.1,11.7,1.7,6.3 +19951109,1.0,-8.2,10.0,-5.6,4.1 +19951110,5.3,-4.2,13.9,-0.6,3.9 +19951111,10.4,5.9,16.1,0.6,5.7 +19951112,1.0,-7.3,8.9,-3.9,6.4 +19951113,3.3,-4.2,10.0,-1.1,2.5 +19951114,3.0,-0.8,6.1,-0.6,4.6 +19951115,-0.9,-7.2,2.8,-3.9,8.0 +19951116,-0.4,-6.6,9.4,-6.1,2.5 +19951117,2.9,-4.0,12.2,-2.2,3.8 +19951118,5.6,-1.7,15.0,-0.6,2.5 +19951119,6.6,-0.7,16.7,-1.1,2.6 +19951120,6.2,-0.8,16.7,-1.1,1.4 +19951121,7.5,-2.9,11.1,3.3,4.3 +19951122,3.6,-11.8,8.9,-1.7,5.6 +19951123,3.9,-6.5,13.9,-2.2,2.0 +19951124,6.7,2.1,11.1,5.6,3.9 +19951125,6.3,0.3,12.8,3.3,3.4 +19951126,6.7,-0.7,20.6,-1.1,2.1 +19951127,11.9,0.7,15.0,9.4,6.2 +19951128,14.3,10.8,17.8,11.7,5.1 +19951129,7.4,4.8,15.0,5.0,6.2 +19951130,3.7,-0.5,10.6,-0.6,3.8 +19951201,6.1,0.2,18.9,-1.7,2.4 +19951202,10.5,-0.8,20.0,1.1,3.5 +19951203,8.9,1.8,18.3,0.6,2.3 +19951204,12.1,3.0,15.6,8.3,3.9 +19951205,7.1,0.6,9.4,5.0,2.7 +19951206,8.0,2.6,12.8,5.0,3.4 +19951207,4.1,-0.1,9.4,0.6,5.4 +19951208,-0.8,-8.3,5.0,-5.0,3.2 +19951209,1.4,-1.1,5.0,-0.6,4.7 +19951210,-7.4,-17.1,-1.1,-13.3,8.1 +19951211,-5.3,-18.7,2.2,-8.9,4.9 +19951212,-0.2,-11.2,6.1,-3.3,3.3 +19951213,4.9,-3.7,12.8,1.1,2.0 +19951214,8.5,2.6,17.2,1.7,2.9 +19951215,10.9,6.4,20.0,5.6,1.2 +19951216,11.6,7.5,15.0,9.4,4.6 +19951217,4.0,-1.4,10.6,-2.8,2.5 +19951218,5.3,2.0,7.8,3.3,3.5 +19951219,7.9,6.6,14.4,3.9,3.3 +19951220,1.8,-3.7,10.0,-3.3,7.2 +19951221,-3.7,-8.9,0.6,-6.7,7.4 +19951222,-3.3,-8.1,-1.1,-5.0,7.3 +19951223,-4.0,-9.4,-2.2,-5.0,7.7 +19951224,-5.4,-10.7,-1.7,-8.3,7.3 +19951225,-4.7,-9.8,1.1,-7.8,6.6 +19951226,-3.7,-10.6,0.6,-7.2,7.2 +19951227,-1.1,-8.5,2.2,-3.9,5.3 +19951228,-2.6,-9.3,0.0,-5.6,7.6 +19951229,-1.8,-8.8,9.4,-8.3,4.8 +19951230,0.0,-5.3,11.1,-7.8,2.4 +19951231,6.3,2.0,12.2,3.3,1.9 +19960101,7.4,7.2,8.9,6.1,1.6 +19960102,7.8,7.6,10.0,6.1,3.2 +19960103,4.3,1.4,8.9,-1.7,5.7 +19960104,-2.2,-7.4,5.0,-6.1,4.8 +19960105,0.3,-5.1,6.1,-5.0,1.7 +19960106,1.6,-1.6,3.3,-1.1,3.0 +19960107,-4.4,-6.3,-1.1,-8.9,5.0 +19960108,-8.8,-14.1,-4.4,-10.6,8.4 +19960109,-5.9,-12.9,5.6,-11.7,4.6 +19960110,0.7,-6.1,2.2,-1.1,9.2 +19960111,-2.5,-8.7,0.0,-4.4,4.2 +19960112,-3.1,-5.4,1.1,-7.8,5.0 +19960113,0.0,-3.4,7.2,-3.3,6.3 +19960114,3.1,-2.7,14.4,-5.6,2.1 +19960115,3.8,-0.8,14.4,-3.3,1.2 +19960116,3.1,0.6,8.3,0.0,1.9 +19960117,5.7,3.6,13.3,2.8,2.8 +19960118,9.9,9.4,14.4,6.7,5.1 +19960119,4.9,1.3,17.2,-8.3,8.8 +19960120,-5.8,-13.1,2.8,-10.6,4.6 +19960121,-1.1,-9.2,4.4,-3.9,3.3 +19960122,-0.7,-5.7,6.1,-6.7,2.0 +19960123,3.8,-4.3,13.3,-2.8,3.0 +19960124,9.2,3.6,12.8,1.1,5.5 +19960125,-0.8,-8.7,6.7,-5.6,5.4 +19960126,-1.1,-5.4,2.8,-4.4,2.9 +19960127,5.2,-1.4,9.4,1.7,4.8 +19960128,-0.6,-15.6,5.6,-5.0,5.7 +19960129,1.5,-7.4,6.1,-1.1,3.1 +19960130,4.7,3.4,8.9,2.2,1.3 +19960131,4.6,2.6,8.3,-1.1,5.9 +19960201,-1.4,-5.3,-0.6,-2.2,3.6 +19960202,0.1,-0.6,1.1,-1.1,2.8 +19960203,-7.2,-9.5,-1.7,-10.0,7.6 +19960204,-12.3,-16.6,-10.0,-15.6,7.8 +19960205,-12.5,-17.8,-2.2,-18.3,3.5 +19960206,-4.8,-10.6,2.8,-10.6,3.1 +19960207,0.9,-4.0,6.1,-2.8,2.5 +19960208,5.8,1.8,12.2,1.7,2.9 +19960209,9.7,3.5,12.8,5.6,5.2 +19960210,6.5,-1.5,20.0,-1.7,1.5 +19960211,11.4,2.6,15.6,5.6,5.4 +19960212,-0.6,-7.2,3.3,-3.3,9.2 +19960213,-0.8,-6.8,6.7,-4.4,6.0 +19960214,7.7,-5.3,12.8,3.9,4.7 +19960215,6.9,-0.1,11.1,3.9,4.6 +19960216,-0.6,-5.6,5.0,-3.3,9.2 +19960217,-3.6,-12.0,5.0,-8.3,6.5 +19960218,1.6,-8.6,6.7,-1.7,3.7 +19960219,2.3,-5.3,11.1,-3.3,2.8 +19960220,8.5,6.4,13.3,6.7,3.1 +19960221,10.2,7.1,17.2,6.1,1.6 +19960222,11.4,8.0,18.9,6.1,1.6 +19960223,13.8,10.7,22.8,8.9,2.4 +19960224,13.5,2.8,19.4,8.9,7.0 +19960225,7.8,-4.9,21.1,-1.7,2.4 +19960226,13.7,1.6,24.4,3.9,2.1 +19960227,15.6,9.6,25.6,8.3,1.8 +19960228,14.9,8.3,20.6,11.1,5.4 +19960229,1.7,-7.2,9.4,-2.8,9.1 +19960301,1.4,-8.8,7.2,-2.2,3.8 +19960302,3.8,-3.8,10.0,-1.1,3.3 +19960303,4.4,-9.3,7.8,1.1,5.1 +19960304,2.2,-10.8,13.3,-5.0,2.4 +19960305,9.6,1.3,15.0,3.9,4.5 +19960306,13.2,10.1,19.4,10.6,3.5 +19960307,10.3,8.2,16.1,-0.6,4.4 +19960308,-6.7,-11.9,-1.7,-10.0,10.7 +19960309,-8.7,-15.1,-1.7,-13.3,6.6 +19960310,-5.4,-12.9,3.9,-12.2,2.9 +19960311,-0.6,-12.2,8.9,-8.9,2.1 +19960312,2.3,-11.3,14.4,-7.2,1.9 +19960313,5.7,-9.8,17.8,-4.4,1.1 +19960314,9.7,-1.3,21.1,-0.6,2.3 +19960315,11.9,8.1,17.8,6.7,1.5 +19960316,11.1,8.4,19.4,3.9,2.1 +19960317,11.4,8.6,18.3,5.0,2.6 +19960318,10.7,5.6,15.6,3.9,3.9 +19960319,7.5,3.1,10.6,2.8,5.7 +19960320,0.5,-7.1,2.8,-1.1,5.7 +19960321,-1.1,-6.2,1.1,-3.3,6.9 +19960322,0.5,-7.4,8.3,-3.9,6.4 +19960323,4.3,-11.7,13.3,-2.8,5.1 +19960324,7.1,-6.7,18.9,-2.8,2.3 +19960325,11.4,4.7,15.6,9.4,4.6 +19960326,9.3,1.7,13.9,5.0,5.7 +19960327,7.1,-0.6,10.0,5.6,2.9 +19960328,4.1,3.1,6.7,2.8,2.6 +19960329,8.2,5.9,15.0,3.9,3.8 +19960330,9.6,7.8,12.8,8.3,3.0 +19960331,7.7,7.1,8.3,7.2,3.3 +19960401,7.9,6.7,10.6,4.4,3.8 +19960402,6.0,-4.4,16.1,1.1,9.1 +19960403,10.1,-0.8,24.4,-1.1,2.1 +19960404,16.1,0.3,24.4,6.1,2.9 +19960405,10.6,3.8,20.6,4.4,7.2 +19960406,4.8,1.9,7.8,3.3,4.0 +19960407,3.3,-4.9,9.4,-1.1,5.8 +19960408,5.0,-3.6,6.7,2.8,4.1 +19960409,4.3,-3.4,7.2,1.7,7.1 +19960410,3.4,-7.4,11.1,-2.2,5.5 +19960411,9.2,-4.8,21.7,-1.1,2.9 +19960412,14.6,0.8,27.2,2.2,2.0 +19960413,15.6,7.5,21.7,8.9,2.8 +19960414,15.6,8.3,25.0,8.9,4.0 +19960415,17.2,10.0,22.2,14.4,5.2 +19960416,10.6,1.0,16.1,3.9,7.4 +19960417,12.3,-4.2,21.1,4.4,4.8 +19960418,13.1,0.8,23.3,2.2,2.9 +19960419,15.6,7.3,21.1,11.7,3.9 +19960420,15.9,13.8,21.7,13.9,3.8 +19960421,16.6,12.4,25.0,11.1,1.9 +19960422,18.2,12.4,26.1,10.6,3.7 +19960423,18.9,12.6,23.3,13.9,5.6 +19960424,10.4,-1.3,19.4,3.3,6.4 +19960425,13.0,-1.5,22.2,3.3,4.1 +19960426,15.9,6.7,21.7,10.0,4.8 +19960427,13.8,0.6,20.6,5.6,6.2 +19960428,13.2,3.1,21.7,3.9,2.9 +19960429,20.6,13.6,26.1,16.1,5.5 +19960430,13.9,9.2,21.1,8.9,6.3 +19960501,9.9,1.3,21.1,0.0,3.0 +19960502,16.0,5.3,25.0,7.8,2.4 +19960503,17.4,8.4,25.6,8.3,1.7 +19960504,21.4,11.9,31.1,12.2,2.9 +19960505,21.0,12.7,27.8,11.7,3.0 +19960506,20.1,15.1,25.0,16.1,3.8 +19960507,15.5,14.0,18.9,13.3,2.7 +19960508,18.1,14.7,26.7,12.8,3.1 +19960509,21.0,15.9,27.2,14.4,2.3 +19960510,20.0,14.1,27.2,12.8,1.9 +19960511,19.1,15.7,25.0,13.3,1.5 +19960512,13.3,5.7,19.4,9.4,6.2 +19960513,10.2,2.2,13.9,7.2,2.9 +19960514,10.7,4.7,16.1,7.8,3.3 +19960515,11.2,8.0,13.3,9.4,3.7 +19960516,16.6,12.4,25.0,11.7,2.6 +19960517,20.6,15.2,30.6,12.8,1.3 +19960518,22.7,14.8,31.7,13.3,3.1 +19960519,23.2,13.8,33.3,13.9,2.9 +19960520,23.9,16.2,31.7,15.0,3.0 +19960521,23.9,16.4,30.0,16.1,2.5 +19960522,22.6,13.8,27.8,18.3,5.2 +19960523,20.2,11.6,27.2,12.2,3.0 +19960524,22.4,16.7,30.6,15.0,2.5 +19960525,22.4,16.9,29.4,17.8,3.6 +19960526,20.3,17.9,26.1,17.8,2.7 +19960527,20.4,17.3,27.8,15.6,2.2 +19960528,20.7,17.4,25.6,17.2,3.4 +19960529,21.9,17.7,26.7,17.2,4.3 +19960530,17.1,13.1,21.7,13.9,3.7 +19960531,15.9,8.1,21.1,8.3,2.5 +19960601,14.4,8.7,20.6,6.1,1.7 +19960602,15.4,10.8,22.2,8.3,2.0 +19960603,17.5,13.0,22.8,13.9,1.0 +19960604,16.5,14.3,22.2,12.7,1.5 +19960605,16.1,11.5,23.9,8.8,0.7 +19960606,17.5,11.7,26.1,9.4,1.3 +19960607,19.6,15.1,27.2,12.2,2.4 +19960608,18.9,17.1,22.2,15.6,2.2 +19960609,19.7,16.7,24.4,17.2,4.1 +19960610,17.9,14.7,24.4,13.8,1.4 +19960611,18.0,15.3,23.9,14.4,1.3 +19960612,18.8,16.1,23.3,13.3,1.6 +19960613,19.2,16.6,25.6,15.0,1.5 +19960614,21.1,16.8,27.8,16.1,2.3 +19960615,21.5,16.7,28.9,15.0,2.0 +19960616,21.2,17.4,28.3,15.5,1.4 +19960617,21.3,18.4,27.8,17.8,1.4 +19960618,21.6,19.1,27.2,18.3,1.2 +19960619,22.4,19.2,27.8,18.9,0.9 +19960620,22.2,18.2,29.4,17.2,2.2 +19960621,23.6,18.2,30.0,16.7,2.6 +19960622,23.4,17.4,31.1,15.0,2.5 +19960623,24.8,18.0,32.8,18.3,2.1 +19960624,23.2,20.3,30.6,18.3,1.1 +19960625,23.1,19.2,28.3,18.8,4.2 +19960626,21.6,17.2,25.6,17.2,1.7 +19960627,21.7,16.9,25.6,16.7,1.1 +19960628,21.7,17.1,27.8,15.5,0.9 +19960629,22.5,16.8,29.4,15.0,0.9 +19960630,23.8,18.3,30.0,17.2,2.1 +19960701,24.9,18.4,31.1,18.9,3.1 +19960702,25.2,19.1,31.7,18.9,2.1 +19960703,22.0,16.8,27.2,17.8,3.8 +19960704,19.3,10.4,25.0,11.1,3.6 +19960705,18.5,12.7,25.0,12.2,1.8 +19960706,22.4,17.1,30.0,18.0,1.8 +19960707,22.5,17.8,30.0,15.6,1.4 +19960708,21.9,20.3,24.4,19.0,1.7 +19960709,22.7,18.6,29.4,17.8,2.9 +19960710,21.8,13.6,26.7,17.2,2.7 +19960711,19.0,13.6,23.9,12.2,1.4 +19960712,20.7,15.4,25.6,17.0,1.5 +19960713,19.3,17.0,27.8,13.9,0.8 +19960714,22.2,19.8,28.9,17.8,1.5 +19960715,21.9,20.3,25.0,19.0,3.0 +19960716,21.7,18.2,28.3,16.7,1.0 +19960717,21.8,19.6,29.0,17.0,0.4 +19960718,23.8,20.3,30.0,17.0,2.1 +19960719,24.7,19.6,30.6,18.3,2.5 +19960720,25.5,20.1,28.9,22.2,3.8 +19960721,23.4,21.2,27.8,20.0,1.7 +19960722,23.7,21.3,28.9,19.0,1.8 +19960723,22.8,20.8,27.8,19.0,2.1 +19960724,23.2,19.1,28.9,18.3,2.7 +19960725,20.6,19.7,26.1,17.2,1.5 +19960726,19.6,16.1,26.1,15.0,2.1 +19960727,19.6,14.9,25.0,13.3,1.7 +19960728,19.4,17.6,23.9,16.7,0.7 +19960729,20.6,17.4,26.1,16.7,1.2 +19960730,19.6,18.8,22.8,16.7,0.7 +19960731,19.8,18.8,22.8,17.0,0.9 +19960801,21.7,17.4,26.1,18.9,2.7 +19960802,20.3,15.5,25.6,15.0,1.9 +19960803,20.9,17.4,26.7,15.6,1.4 +19960804,20.9,18.4,27.2,15.6,1.1 +19960805,22.2,19.9,26.1,19.0,1.0 +19960806,22.2,19.9,28.9,18.0,0.7 +19960807,22.3,19.8,30.0,18.3,2.0 +19960808,21.8,19.9,25.6,18.9,1.4 +19960809,22.1,18.9,27.2,19.0,2.9 +19960810,21.3,17.8,25.6,16.7,2.4 +19960811,20.1,18.6,22.0,18.0,1.1 +19960812,20.1,19.2,24.0,18.0,1.7 +19960813,20.4,17.3,25.0,17.2,3.3 +19960814,19.9,16.4,25.0,16.7,1.9 +19960815,20.6,16.7,27.8,16.0,1.2 +19960816,20.4,17.3,27.8,15.6,1.7 +19960817,19.8,17.4,26.7,15.0,0.6 +19960818,21.1,18.0,28.3,16.7,0.9 +19960819,21.6,18.1,28.3,16.7,0.8 +19960820,21.9,18.6,27.8,17.0,1.3 +19960821,21.6,18.9,27.8,17.0,1.6 +19960822,21.5,18.9,28.3,17.0,1.8 +19960823,21.8,18.8,28.3,17.0,1.2 +19960824,20.3,17.8,28.9,15.6,1.7 +19960825,19.3,18.5,22.8,17.0,0.7 +19960826,21.1,18.2,27.2,18.0,1.0 +19960827,20.2,18.4,25.6,17.8,1.3 +19960828,20.8,18.2,27.2,17.8,2.1 +19960829,19.7,17.4,26.1,16.0,1.4 +19960830,20.8,17.8,26.1,17.0,1.6 +19960831,19.9,17.6,24.4,17.0,0.8 +19960901,18.9,15.3,24.4,15.0,0.9 +19960902,17.6,16.8,19.4,16.1,0.3 +19960903,19.6,18.2,23.9,17.0,0.7 +19960904,21.2,18.1,26.7,17.8,1.8 +19960905,20.2,17.9,24.4,17.0,1.3 +19960906,22.9,16.6,27.8,19.4,4.3 +19960907,20.4,16.8,28.9,13.9,1.3 +19960908,19.9,17.6,25.6,16.7,2.4 +19960909,20.6,18.3,27.2,16.7,1.2 +19960910,20.3,18.8,24.4,17.8,1.5 +19960911,20.3,16.4,25.6,17.0,2.7 +19960912,19.4,14.9,26.1,14.0,1.9 +19960913,17.1,11.5,20.0,13.9,3.1 +19960914,14.1,8.6,20.6,7.8,2.3 +19960915,13.4,8.8,22.8,5.6,0.8 +19960916,17.3,16.1,19.4,15.0,1.7 +19960917,18.3,16.2,21.0,16.0,2.9 +19960918,15.3,9.9,19.4,12.2,4.3 +19960919,14.7,9.2,21.1,8.9,3.3 +19960920,13.4,9.6,22.8,6.0,0.9 +19960921,13.9,11.8,20.0,10.0,1.3 +19960922,16.2,10.8,21.7,12.2,3.7 +19960923,17.5,10.8,25.0,10.0,2.4 +19960924,15.9,12.4,25.0,9.0,0.9 +19960925,17.4,14.7,22.8,11.0,1.7 +19960926,17.4,15.7,21.7,13.3,2.1 +19960927,19.9,16.7,22.2,18.3,4.5 +19960928,18.3,16.9,22.0,12.2,4.8 +19960929,13.1,8.8,18.9,10.0,2.5 +19960930,12.2,10.9,17.0,9.0,1.0 +19961001,13.5,12.7,17.0,12.0,1.2 +19961002,16.0,15.0,21.7,13.9,1.4 +19961003,19.1,16.1,23.3,16.1,2.6 +19961004,12.8,8.6,16.7,9.4,2.1 +19961005,7.3,3.7,15.0,1.0,0.9 +19961006,8.8,6.9,14.4,3.9,0.6 +19961007,10.9,8.3,12.2,9.0,0.5 +19961008,14.1,11.7,18.9,11.1,3.7 +19961009,13.7,10.2,16.7,10.6,2.9 +19961010,9.1,3.3,13.9,5.0,3.6 +19961011,9.0,3.1,15.6,3.9,2.3 +19961012,6.9,2.8,16.7,-1.0,0.7 +19961013,9.9,4.7,20.6,2.0,1.2 +19961014,12.9,6.3,24.4,4.4,2.7 +19961015,13.6,9.8,23.3,5.6,1.4 +19961016,14.1,10.6,23.9,8.0,1.0 +19961017,14.1,11.1,22.2,7.0,1.1 +19961018,11.2,9.6,18.9,6.7,3.0 +19961019,7.4,-3.8,11.7,3.9,5.8 +19961020,7.4,-3.7,15.6,0.0,2.8 +19961021,8.7,-0.7,20.0,0.0,1.7 +19961022,12.8,6.8,23.3,5.6,2.2 +19961023,16.7,6.6,21.1,13.9,3.3 +19961024,11.8,1.0,20.6,3.9,2.8 +19961025,11.2,3.9,20.6,3.9,1.4 +19961026,14.6,8.9,17.2,11.7,1.0 +19961027,15.1,13.3,23.3,11.7,1.0 +19961028,17.2,15.1,24.4,12.2,2.1 +19961029,18.0,15.3,22.8,13.3,2.2 +19961030,20.8,12.2,27.0,16.7,3.5 +19961031,16.0,5.2,23.3,10.6,3.3 +19961101,13.1,6.0,15.6,10.6,2.5 +19961102,7.6,2.6,12.0,3.3,5.7 +19961103,2.9,-8.5,10.0,-2.8,4.1 +19961104,3.5,-4.5,13.3,-3.9,1.6 +19961105,10.1,3.2,17.8,4.4,1.5 +19961106,13.1,10.0,19.4,7.2,1.7 +19961107,16.4,15.0,18.9,14.0,3.5 +19961108,13.1,10.8,19.0,3.3,6.1 +19961109,3.7,-4.8,8.9,1.1,4.4 +19961110,0.8,-4.4,5.0,-2.6,2.6 +19961111,-0.1,-6.6,4.6,-5.0,2.9 +19961112,0.4,-8.8,6.7,-3.9,4.2 +19961113,0.5,-5.9,6.7,-4.4,1.0 +19961114,4.0,0.2,7.0,2.8,3.4 +19961115,1.7,-4.6,4.4,-2.0,2.8 +19961116,0.3,-6.5,8.9,-5.0,2.3 +19961117,3.9,0.5,10.0,-2.2,1.0 +19961118,9.8,9.2,12.2,8.0,0.7 +19961119,10.7,8.1,13.9,8.3,2.9 +19961120,9.4,5.1,15.0,5.6,1.8 +19961121,8.3,6.4,11.0,6.7,1.5 +19961122,3.8,-0.6,8.9,1.1,8.0 +19961123,1.6,-3.2,11.1,-5.0,1.7 +19961124,4.2,-0.7,15.6,-2.8,1.0 +19961125,10.7,8.2,15.6,5.6,2.4 +19961126,9.8,7.1,14.4,1.7,5.4 +19961127,1.3,-8.8,8.9,-3.9,6.7 +19961128,0.8,-5.7,10.0,-5.6,0.9 +19961129,0.4,-3.3,6.7,-3.9,0.7 +19961130,3.9,2.6,7.0,2.0,2.6 +19961201,11.6,10.7,16.1,6.7,3.1 +19961202,5.2,-2.0,10.0,0.0,5.9 +19961203,2.8,-2.7,13.3,-2.8,0.7 +19961204,5.0,-3.3,10.0,1.1,5.1 +19961205,0.4,-2.4,2.8,-3.3,2.1 +19961206,4.2,-2.9,12.8,-0.6,2.5 +19961207,6.1,2.9,8.3,2.8,3.4 +19961208,2.3,-5.1,7.8,-3.9,3.6 +19961209,-0.4,-7.6,3.9,-3.9,5.9 +19961210,1.4,-5.5,15.0,-6.1,1.3 +19961211,8.1,3.3,16.1,1.1,2.5 +19961212,13.3,11.9,14.4,11.7,2.6 +19961213,9.0,6.9,12.0,4.4,3.9 +19961214,5.4,-1.5,13.9,0.6,4.6 +19961215,3.7,-2.7,12.8,-3.3,0.9 +19961216,2.4,-2.3,10.0,-2.8,1.5 +19961217,5.8,3.4,11.1,3.0,3.8 +19961218,2.5,-0.5,5.0,0.0,4.1 +19961219,-3.2,-6.5,-0.6,-8.3,5.1 +19961220,-8.1,-13.9,-2.2,-11.7,5.4 +19961221,-6.9,-11.7,1.1,-13.3,1.7 +19961222,-0.7,-7.7,10.0,-7.2,2.1 +19961223,5.6,-2.1,15.0,-2.2,2.8 +19961224,9.3,6.9,11.0,3.9,4.3 +19961225,-0.3,-7.1,5.6,-5.6,5.0 +19961226,-0.9,-5.8,5.6,-6.1,0.5 +19961227,6.3,4.0,16.7,2.0,1.4 +19961228,11.4,9.3,15.6,8.0,3.5 +19961229,14.2,11.6,21.7,10.6,1.6 +19961230,11.0,6.8,18.0,6.0,0.5 +19961231,13.8,12.4,16.1,11.0,2.7 +19970101,9.0,7.9,12.0,7.0,2.4 +19970102,10.7,8.5,17.8,7.8,1.9 +19970103,13.2,8.9,20.0,7.2,3.3 +19970104,10.4,8.1,20.6,3.0,2.0 +19970105,14.8,8.7,18.3,10.0,3.8 +19970106,6.8,-0.1,10.0,3.9,5.4 +19970107,2.9,-4.9,5.6,1.1,6.1 +19970108,-0.1,-9.5,4.4,-2.0,3.2 +19970109,-0.4,-1.0,1.0,-2.0,3.4 +19970110,0.3,-4.3,3.3,-2.2,4.3 +19970111,-6.8,-10.4,1.0,-12.2,5.7 +19970112,-6.3,-11.0,0.0,-10.6,4.7 +19970113,-4.8,-12.3,1.0,-8.3,5.6 +19970114,-3.7,-11.9,5.6,-10.6,2.9 +19970115,-0.3,-6.0,7.0,-6.1,2.2 +19970116,1.1,-3.2,3.3,-3.9,5.9 +19970117,-9.1,-20.4,-4.4,-14.4,6.5 +19970118,-7.8,-19.6,-2.8,-11.1,6.8 +19970119,-5.3,-14.8,-0.6,-8.3,2.8 +19970120,-0.4,-6.7,8.9,-7.2,3.7 +19970121,3.7,-2.8,15.0,-4.0,1.9 +19970122,6.8,3.5,12.8,3.9,3.3 +19970123,7.2,4.4,12.8,1.7,1.6 +19970124,3.6,2.3,6.7,2.0,2.2 +19970125,5.7,1.1,8.0,2.8,3.9 +19970126,1.2,-7.1,7.2,-3.9,2.7 +19970127,4.0,-5.1,7.2,2.2,2.7 +19970128,6.7,3.9,9.0,2.8,3.8 +19970129,2.1,-6.1,6.1,-3.3,3.5 +19970130,3.8,-2.2,7.0,1.7,1.1 +19970131,4.3,-0.8,13.9,-1.1,1.6 +19970201,7.6,-2.7,18.3,-1.1,1.9 +19970202,7.6,-0.2,17.2,0.0,0.8 +19970203,7.7,3.1,17.2,0.0,0.7 +19970204,9.1,7.8,12.8,6.0,2.9 +19970205,6.3,4.3,8.9,1.7,5.6 +19970206,2.7,-3.3,10.0,-1.1,5.6 +19970207,7.6,-0.4,13.9,3.9,1.6 +19970208,5.7,3.3,10.0,2.8,3.1 +19970209,1.6,-2.1,3.9,0.0,3.4 +19970210,1.7,-0.7,3.0,0.0,1.5 +19970211,-1.1,-5.1,2.2,-3.3,5.1 +19970212,-0.9,-5.3,5.0,-5.0,4.0 +19970213,0.3,-2.1,2.2,-1.1,2.6 +19970214,0.2,-0.2,2.2,-1.1,1.8 +19970215,3.7,-0.7,7.8,1.1,6.2 +19970216,2.3,-6.4,11.7,-6.1,2.8 +19970217,5.9,-4.9,14.4,-1.1,3.9 +19970218,5.4,-2.9,15.6,-2.8,2.6 +19970219,9.4,1.8,18.9,0.6,2.1 +19970220,10.6,4.9,18.9,2.8,2.3 +19970221,14.1,10.9,17.2,12.0,4.3 +19970222,10.7,7.2,14.0,3.3,6.4 +19970223,3.4,-5.9,9.4,-1.1,5.5 +19970224,3.4,-5.5,11.7,-3.9,3.3 +19970225,6.6,-2.8,12.8,2.2,2.0 +19970226,7.3,2.1,11.1,4.4,3.1 +19970227,14.7,12.9,18.0,10.6,5.6 +19970228,14.7,14.1,16.1,13.0,2.7 +19970301,16.3,14.2,22.2,12.8,4.7 +19970302,17.3,13.8,19.4,14.4,2.8 +19970303,16.2,11.6,23.3,12.0,4.3 +19970304,12.9,7.7,21.1,5.6,3.0 +19970305,12.8,8.2,22.2,3.0,3.7 +19970306,7.4,-0.8,13.3,2.8,6.9 +19970307,6.4,-6.9,13.9,1.1,4.5 +19970308,11.1,-2.0,18.3,5.0,3.0 +19970309,8.7,1.2,17.8,-0.6,2.2 +19970310,14.6,9.2,19.4,11.1,3.0 +19970311,12.8,5.4,21.1,6.1,3.1 +19970312,11.3,1.4,19.4,3.3,2.0 +19970313,8.8,5.3,14.4,4.4,1.9 +19970314,15.0,12.6,18.3,11.0,5.2 +19970315,4.3,-2.8,12.2,-1.1,8.0 +19970316,2.2,-9.5,9.4,-3.9,4.1 +19970317,5.3,-3.7,15.6,-3.9,2.2 +19970318,11.0,4.2,15.6,3.3,1.4 +19970319,12.2,11.5,14.4,10.6,0.9 +19970320,11.5,7.6,16.1,7.8,4.2 +19970321,11.1,3.8,20.6,2.8,2.0 +19970322,12.6,4.4,19.4,5.0,4.7 +19970323,8.9,-1.7,13.9,3.9,5.9 +19970324,8.0,-2.5,15.0,-0.6,3.0 +19970325,8.5,4.7,12.2,6.1,2.9 +19970326,13.2,8.1,16.1,10.6,4.1 +19970327,10.3,-0.3,20.6,1.1,2.6 +19970328,9.4,5.6,13.3,6.1,1.3 +19970329,15.9,8.4,23.9,10.0,3.2 +19970330,14.9,5.6,22.8,6.7,2.4 +19970331,7.3,0.1,17.2,2.0,7.9 +19970401,6.7,-9.9,13.3,1.1,9.3 +19970402,8.6,-6.8,19.0,-1.7,2.7 +19970403,10.1,-3.4,21.1,-1.7,1.3 +19970404,12.7,0.8,23.3,1.1,1.7 +19970405,17.4,6.6,23.3,12.2,4.5 +19970406,16.7,12.6,20.0,13.9,3.3 +19970407,13.7,4.5,17.2,8.0,5.2 +19970408,9.5,-5.4,16.1,3.3,5.7 +19970409,10.1,-2.7,14.0,6.7,5.0 +19970410,6.3,-7.6,16.1,-0.6,3.4 +19970411,9.4,-1.0,18.9,0.6,2.7 +19970412,14.8,8.9,20.0,11.7,2.3 +19970413,11.6,6.2,15.6,6.1,5.7 +19970414,5.6,-3.9,13.3,0.6,5.4 +19970415,7.9,-2.2,17.2,-1.7,1.6 +19970416,10.7,0.6,20.6,0.0,1.4 +19970417,9.3,0.0,15.6,4.4,5.4 +19970418,4.9,-6.4,12.2,0.0,10.2 +19970419,8.3,2.0,12.8,4.4,2.9 +19970420,11.8,5.0,19.4,5.6,4.1 +19970421,12.8,6.4,22.8,5.0,2.1 +19970422,15.8,12.2,22.2,11.7,2.9 +19970423,10.2,9.3,14.4,7.8,3.2 +19970424,9.5,3.4,16.0,4.4,5.0 +19970425,9.8,2.6,16.7,2.8,2.1 +19970426,8.2,3.2,12.8,2.2,1.7 +19970427,9.1,8.8,11.0,7.8,2.5 +19970428,13.1,12.6,19.4,10.0,2.0 +19970429,13.3,11.3,18.0,10.6,2.2 +19970430,15.4,11.8,21.7,9.4,3.0 +19970501,18.3,8.1,24.4,12.8,4.3 +19970502,14.1,3.6,22.2,5.0,3.4 +19970503,16.2,10.6,22.8,12.8,3.1 +19970504,11.2,1.8,15.6,6.7,6.8 +19970505,9.8,2.4,19.4,0.6,1.5 +19970506,15.7,4.6,22.8,7.8,4.1 +19970507,14.6,2.9,21.1,6.7,2.6 +19970508,13.6,8.8,20.6,5.6,2.9 +19970509,15.3,12.1,21.1,11.1,3.6 +19970510,11.4,0.4,16.7,6.1,7.2 +19970511,10.8,1.8,20.6,1.1,2.4 +19970512,13.2,5.1,21.1,4.4,1.7 +19970513,13.2,3.9,18.3,8.3,5.2 +19970514,11.9,5.2,23.0,1.7,2.7 +19970515,16.3,7.0,21.7,10.0,3.5 +19970516,10.7,-0.7,17.2,2.2,4.8 +19970517,13.1,3.2,25.0,2.2,2.4 +19970518,17.1,9.7,28.3,6.1,1.8 +19970519,19.1,13.9,26.7,10.0,1.6 +19970520,19.8,17.2,25.0,16.7,3.1 +19970521,16.0,7.2,20.0,10.6,5.6 +19970522,14.6,5.0,22.8,7.8,2.7 +19970523,15.4,7.9,23.9,5.6,1.9 +19970524,17.2,12.7,25.0,9.0,2.4 +19970525,18.9,17.6,22.2,17.0,2.9 +19970526,20.5,16.6,27.2,15.0,2.6 +19970527,15.8,13.3,21.1,13.3,2.1 +19970528,12.4,7.6,15.6,10.6,2.4 +19970529,11.6,9.5,14.0,9.0,2.3 +19970530,14.0,13.4,17.2,12.0,1.9 +19970531,17.7,15.4,22.0,15.0,2.4 +19970601,19.1,15.9,23.3,15.6,3.8 +19970602,16.6,14.4,23.0,14.0,1.9 +19970603,15.4,13.8,20.0,13.0,1.5 +19970604,12.9,11.1,15.6,10.6,1.5 +19970605,13.8,9.6,17.2,11.7,2.1 +19970606,12.1,8.6,15.6,8.9,1.2 +19970607,12.0,9.7,14.4,10.0,1.4 +19970608,12.7,10.8,15.6,10.6,2.4 +19970609,13.4,11.1,15.0,12.2,1.6 +19970610,15.7,11.2,23.3,9.0,1.2 +19970611,18.1,14.2,22.2,13.9,0.6 +19970612,19.7,17.9,24.0,16.7,2.0 +19970613,21.1,18.0,28.3,17.0,1.7 +19970614,19.0,16.7,24.4,15.6,2.5 +19970615,19.4,16.2,25.0,15.0,2.9 +19970616,20.0,16.9,24.4,16.0,2.7 +19970617,21.7,18.9,26.7,17.0,2.2 +19970618,22.3,18.2,26.7,18.9,3.7 +19970619,21.8,16.5,27.8,17.2,3.3 +19970620,21.4,17.3,28.3,15.0,1.1 +19970621,20.6,17.8,26.7,16.7,1.4 +19970622,21.0,17.6,27.2,15.0,2.8 +19970623,22.9,18.4,28.3,17.0,2.3 +19970624,22.7,19.3,27.8,17.0,1.4 +19970625,21.9,18.4,26.7,18.9,0.6 +19970626,22.7,19.3,28.9,17.8,1.9 +19970627,20.4,19.4,22.0,18.9,1.6 +19970628,19.6,17.8,22.8,17.8,1.1 +19970629,19.7,16.9,23.9,17.8,1.0 +19970630,20.0,17.2,25.6,16.0,1.6 +19970701,22.2,19.4,27.2,19.0,2.6 +19970702,23.6,18.8,29.4,17.8,2.8 +19970703,25.5,19.1,32.2,19.0,2.4 +19970704,23.2,17.5,31.7,14.4,2.3 +19970705,21.3,17.1,26.1,17.8,3.8 +19970706,20.5,15.3,26.7,13.9,2.7 +19970707,20.8,15.3,27.2,14.4,2.1 +19970708,20.9,15.9,27.8,13.9,1.3 +19970709,19.9,17.8,27.2,15.0,1.1 +19970710,21.6,18.8,28.3,17.8,3.1 +19970711,20.9,18.4,25.0,17.2,1.5 +19970712,21.8,18.1,27.8,16.7,0.6 +19970713,23.3,18.9,28.9,16.7,1.9 +19970714,23.5,19.3,30.0,17.0,2.1 +19970715,23.9,19.3,30.6,18.0,1.9 +19970716,22.3,19.5,28.3,17.8,2.1 +19970717,22.3,18.3,28.9,17.8,2.6 +19970718,22.3,16.9,30.6,14.0,1.4 +19970719,23.7,18.4,31.1,16.7,1.9 +19970720,23.7,20.0,29.4,17.8,1.2 +19970721,24.2,20.6,30.6,19.0,1.8 +19970722,24.2,21.4,29.4,20.6,2.0 +19970723,22.0,21.2,24.0,21.0,1.4 +19970724,23.1,20.7,28.9,19.0,1.7 +19970725,23.4,19.3,30.0,17.0,1.7 +19970726,24.3,20.6,29.4,20.0,2.1 +19970727,23.6,21.3,28.3,18.9,2.6 +19970728,23.9,22.1,32.0,19.4,1.7 +19970729,23.2,19.6,27.8,19.4,3.2 +19970730,20.1,18.9,23.9,17.2,1.1 +19970731,18.7,13.0,24.4,15.0,1.7 +19970801,17.6,11.9,26.1,9.0,1.2 +19970802,19.1,12.9,28.3,10.0,1.5 +19970803,21.0,15.4,28.3,13.3,1.5 +19970804,22.1,16.4,29.4,15.0,2.2 +19970805,21.1,16.3,27.2,17.0,3.9 +19970806,18.5,12.3,24.4,11.7,2.1 +19970807,18.8,14.6,23.3,15.6,1.5 +19970808,18.9,15.9,23.9,15.6,1.5 +19970809,18.9,14.4,22.2,16.1,1.9 +19970810,18.4,15.9,24.4,15.6,1.1 +19970811,21.8,18.1,28.3,16.7,2.1 +19970812,23.1,18.8,29.4,17.2,1.5 +19970813,22.7,18.8,30.0,16.7,1.0 +19970814,24.2,19.3,30.0,19.4,2.4 +19970815,22.8,18.4,31.1,16.1,1.2 +19970816,25.2,20.3,31.7,20.0,2.5 +19970817,25.6,20.0,32.2,19.4,2.3 +19970818,24.2,18.9,29.4,18.9,2.7 +19970819,22.5,17.8,28.3,16.7,2.0 +19970820,22.9,19.3,27.2,20.0,1.4 +19970821,21.7,14.7,26.1,17.8,4.1 +19970822,18.6,10.5,23.3,13.9,5.5 +19970823,17.2,9.3,24.4,10.6,3.1 +19970824,16.9,10.2,25.6,8.3,1.2 +19970825,18.3,12.6,25.6,11.7,1.2 +19970826,19.9,13.8,27.8,12.2,1.2 +19970827,21.6,15.7,29.4,14.4,1.1 +19970828,22.1,17.3,28.9,15.0,2.1 +19970829,22.7,16.2,31.1,15.6,2.2 +19970830,21.7,15.7,28.9,15.0,1.7 +19970831,22.1,17.8,29.4,17.0,1.3 +19970901,22.1,18.6,28.9,17.8,1.4 +19970902,21.9,18.9,28.9,18.0,1.2 +19970903,20.8,17.9,25.6,16.0,2.4 +19970904,17.4,8.4,23.9,11.1,4.7 +19970905,14.6,7.0,24.4,5.0,1.2 +19970906,17.3,10.9,26.1,8.9,1.1 +19970907,19.1,12.5,27.2,11.7,1.3 +19970908,19.7,13.6,27.2,13.3,0.8 +19970909,19.1,16.5,22.8,16.1,0.8 +19970910,17.8,16.3,22.2,15.0,0.9 +19970911,16.6,14.3,22.2,13.9,1.6 +19970912,17.6,14.3,24.4,12.0,0.9 +19970913,18.2,14.6,25.6,12.0,1.3 +19970914,19.1,14.8,26.1,13.0,1.0 +19970915,20.2,14.1,26.1,15.0,3.1 +19970916,19.1,13.7,27.2,13.3,1.0 +19970917,19.3,15.8,27.2,13.9,0.8 +19970918,21.8,17.9,27.8,18.0,1.1 +19970919,21.1,16.1,30.0,15.6,0.8 +19970920,20.7,15.8,30.0,13.3,2.4 +19970921,18.9,15.7,20.6,16.7,2.4 +19970922,16.0,11.6,18.9,13.9,2.2 +19970923,18.3,13.5,26.1,13.3,1.6 +19970924,16.1,15.3,19.4,12.8,1.2 +19970925,15.4,13.7,22.2,11.7,1.6 +19970926,17.1,14.1,20.6,14.0,2.0 +19970927,16.6,12.6,21.7,12.2,1.5 +19970928,15.9,15.3,17.8,14.0,2.4 +19970929,16.8,11.1,22.8,12.8,4.2 +19970930,15.1,7.8,25.0,7.2,2.6 +19971001,15.2,8.1,19.0,11.1,3.8 +19971002,11.5,7.2,18.9,4.0,1.3 +19971003,12.8,8.4,22.2,6.0,1.5 +19971004,15.2,10.5,25.0,7.8,1.3 +19971005,15.7,10.4,25.6,6.7,1.3 +19971006,15.7,10.6,25.6,7.2,1.3 +19971007,16.3,12.1,26.1,8.3,0.8 +19971008,16.7,13.4,24.4,11.0,0.9 +19971009,16.7,13.0,25.0,10.0,1.2 +19971010,17.6,14.0,25.6,12.0,2.0 +19971011,17.7,14.8,23.3,13.0,2.0 +19971012,17.1,14.8,21.7,13.0,1.4 +19971013,18.1,14.4,22.2,15.6,2.9 +19971014,14.6,13.1,18.0,12.0,2.9 +19971015,12.2,4.7,18.3,8.3,5.2 +19971016,10.6,5.4,16.7,5.0,1.9 +19971017,11.9,7.8,17.2,5.0,1.4 +19971018,11.1,8.9,16.7,7.8,2.4 +19971019,12.1,10.1,14.4,10.6,3.7 +19971020,11.2,6.2,16.7,7.8,4.1 +19971021,8.8,6.0,15.6,3.0,1.0 +19971022,9.2,2.9,16.1,3.3,5.2 +19971023,5.5,-1.0,13.9,-1.7,2.2 +19971024,7.5,5.8,13.9,-1.7,2.6 +19971025,13.3,12.1,18.9,10.0,1.6 +19971026,14.6,13.7,18.9,9.4,2.6 +19971027,9.7,7.7,14.4,5.6,5.4 +19971028,5.6,-2.2,13.3,0.6,5.8 +19971029,7.6,-0.1,17.2,1.0,1.6 +19971030,6.8,1.7,16.1,-0.6,1.3 +19971031,7.3,3.9,16.7,-1.1,1.2 +19971101,11.4,9.7,17.8,8.9,1.3 +19971102,10.6,5.4,14.4,5.6,3.3 +19971103,5.9,0.7,11.1,1.1,2.6 +19971104,4.4,-0.4,8.3,0.6,4.1 +19971105,2.8,-0.7,10.6,-3.0,1.6 +19971106,3.6,1.8,10.6,-2.8,0.4 +19971107,7.4,5.5,13.9,3.9,2.9 +19971108,6.6,3.4,13.9,3.9,5.7 +19971109,6.2,3.2,9.0,5.0,7.2 +19971110,6.3,3.1,9.4,1.7,4.2 +19971111,6.7,3.6,9.4,1.7,4.7 +19971112,4.4,1.8,6.7,2.2,2.2 +19971113,4.3,4.3,6.7,2.2,2.0 +19971114,5.3,4.6,10.0,3.0,3.4 +19971115,3.8,1.6,6.0,2.0,5.4 +19971116,0.4,-6.9,3.3,-2.8,6.1 +19971117,0.1,-8.0,6.7,-3.9,4.3 +19971118,-0.3,-7.2,9.4,-7.2,1.7 +19971119,2.9,-5.2,11.1,-2.8,1.7 +19971120,3.0,-3.9,13.3,-3.9,1.7 +19971121,4.6,1.4,13.3,-5.0,1.5 +19971122,9.9,8.6,15.0,7.0,3.1 +19971123,8.1,3.6,11.1,5.6,5.4 +19971124,2.8,-3.6,6.1,0.0,5.1 +19971125,0.8,-6.1,11.1,-6.1,1.2 +19971126,3.0,-1.8,15.6,-5.0,1.1 +19971127,9.5,-0.9,16.7,1.7,3.5 +19971128,7.1,-0.8,17.8,0.0,0.6 +19971129,7.1,4.4,18.3,-0.6,0.9 +19971130,12.1,11.8,14.4,10.6,1.7 +19971201,8.4,5.9,11.1,5.6,5.6 +19971202,4.3,-1.1,15.0,-2.8,1.6 +19971203,7.5,4.2,9.4,5.6,1.7 +19971204,9.0,6.7,13.0,6.1,2.8 +19971205,2.3,-2.9,7.8,-0.6,4.3 +19971206,-3.4,-8.1,-1.1,-5.6,5.6 +19971207,-4.3,-7.9,-0.6,-6.1,5.6 +19971208,-4.7,-6.4,-0.6,-8.3,2.2 +19971209,1.3,0.9,6.1,-2.0,1.9 +19971210,4.9,2.2,15.6,-1.1,3.2 +19971211,4.4,0.9,15.6,0.0,4.8 +19971212,1.9,-1.6,3.9,0.0,5.7 +19971213,0.6,-3.8,3.9,-2.2,4.5 +19971214,1.5,-5.3,4.4,-2.8,4.0 +19971215,-0.4,-8.4,10.0,-8.0,2.4 +19971216,0.6,-9.3,13.9,-7.2,0.9 +19971217,2.9,-7.1,13.9,-8.3,2.1 +19971218,4.2,-3.0,13.3,-5.6,0.9 +19971219,3.2,-2.8,14.4,-4.4,1.5 +19971220,5.1,-0.8,16.1,-2.8,2.0 +19971221,4.4,2.3,16.7,-3.3,1.6 +19971222,4.1,3.8,9.4,-2.2,2.9 +19971223,6.9,5.1,11.7,3.0,3.5 +19971224,6.2,5.7,11.7,1.7,2.5 +19971225,7.8,5.7,13.3,5.6,2.8 +19971226,5.9,1.3,12.2,2.8,4.9 +19971227,2.8,0.9,6.7,0.0,4.4 +19971228,-1.1,-6.7,2.8,-4.4,5.5 +19971229,-1.3,-3.4,3.3,-5.0,2.9 +19971230,-1.6,-5.6,1.0,-3.9,3.3 +19971231,-2.8,-5.3,1.1,-5.0,4.3 +19980101,-5.0,-10.8,5.0,-11.1,2.9 +19980102,0.3,-7.9,14.4,-7.2,1.6 +19980103,3.4,-2.4,14.4,-7.2,2.2 +19980104,5.3,2.8,16.7,-5.0,1.2 +19980105,9.9,8.8,16.7,-2.2,2.0 +19980106,13.8,13.5,17.2,12.0,2.6 +19980107,15.6,15.3,18.3,13.9,3.9 +19980108,16.5,13.8,18.9,13.9,5.5 +19980109,9.4,4.5,14.4,5.0,5.2 +19980110,3.9,-0.5,11.7,-2.0,2.5 +19980111,4.7,0.7,12.2,-1.7,2.9 +19980112,5.9,3.4,12.2,1.0,2.0 +19980113,8.4,5.8,13.9,5.0,2.9 +19980114,6.6,2.2,8.9,4.0,3.5 +19980115,1.7,0.9,4.0,0.0,2.3 +19980116,4.9,4.4,8.0,3.0,2.1 +19980117,5.6,3.2,10.6,3.9,3.6 +19980118,2.7,-3.4,8.3,-1.7,3.3 +19980119,2.8,0.9,8.3,-2.2,2.5 +19980120,1.7,-3.3,6.7,-3.3,3.1 +19980121,2.1,-2.8,7.2,-3.3,2.6 +19980122,3.1,-0.7,7.2,-2.2,2.3 +19980123,4.8,4.2,10.6,2.8,1.5 +19980124,4.7,3.2,8.0,0.0,5.4 +19980125,0.8,-5.6,6.7,-2.2,4.9 +19980126,0.7,-4.2,7.8,-4.4,1.1 +19980127,1.7,-1.5,7.8,-4.4,2.5 +19980128,2.3,-1.1,5.6,0.0,8.5 +19980129,2.7,-2.1,11.7,-3.9,1.5 +19980130,2.9,-1.7,12.2,-3.9,5.5 +19980131,1.8,-4.5,6.1,-1.0,4.8 +19980201,-0.2,-4.4,7.2,-5.6,1.8 +19980202,1.9,-2.4,7.8,-2.2,0.7 +19980203,4.6,2.8,7.8,-2.2,2.8 +19980204,3.6,2.0,5.0,1.7,6.2 +19980205,0.8,-1.7,2.2,-1.0,8.1 +19980206,1.1,-1.6,5.0,-1.0,4.3 +19980207,3.8,1.0,7.2,1.7,3.4 +19980208,3.6,1.3,7.2,0.6,3.6 +19980209,5.4,0.3,10.0,2.8,1.7 +19980210,4.4,-1.3,12.8,-2.2,1.5 +19980211,5.8,2.8,12.8,-2.8,3.3 +19980212,6.2,2.8,9.4,2.8,3.8 +19980213,3.6,0.2,6.1,1.7,4.1 +19980214,4.3,-1.6,8.9,1.7,5.4 +19980215,0.8,-3.1,6.1,-4.4,2.1 +19980216,3.2,0.5,6.1,-4.4,3.0 +19980217,8.1,6.6,13.9,3.9,3.0 +19980218,7.9,4.4,10.6,5.0,2.9 +19980219,7.7,3.5,12.2,4.4,4.1 +19980220,7.2,3.5,12.2,5.0,3.8 +19980221,6.3,-0.6,11.0,3.9,5.1 +19980222,3.0,-0.6,7.8,-2.2,2.0 +19980223,5.2,3.5,7.8,-2.8,3.2 +19980224,6.3,-1.2,13.9,2.2,9.2 +19980225,11.1,-4.4,17.8,6.7,6.8 +19980226,8.9,-2.1,18.3,1.1,2.2 +19980227,11.7,7.1,18.3,0.6,3.6 +19980228,11.2,4.3,19.4,5.0,1.9 +19980301,9.9,-0.1,20.0,3.9,3.2 +19980302,5.3,-2.1,9.4,2.2,4.5 +19980303,-0.1,-4.2,3.9,-3.3,4.6 +19980304,1.4,-3.4,8.3,-2.2,1.3 +19980305,4.2,-0.4,10.6,-1.7,2.2 +19980306,6.4,4.0,10.6,-1.7,1.9 +19980307,5.5,5.2,8.0,3.9,2.4 +19980308,10.7,9.5,15.6,7.0,3.6 +19980309,11.0,7.7,14.4,4.4,5.2 +19980310,-0.7,-6.9,3.9,-3.3,8.2 +19980311,-4.1,-12.2,1.1,-7.8,7.7 +19980312,-5.6,-12.7,0.0,-9.4,7.5 +19980313,-3.0,-11.8,6.7,-10.0,1.9 +19980314,5.3,-5.0,17.2,-4.4,3.3 +19980315,7.6,-5.2,17.8,-5.0,4.0 +19980316,4.8,-1.2,15.0,0.6,2.0 +19980317,1.8,1.0,3.3,0.6,3.8 +19980318,3.5,3.5,7.2,1.7,2.7 +19980319,11.4,8.5,20.6,7.0,2.0 +19980320,14.4,10.2,21.1,7.2,4.2 +19980321,3.5,0.6,8.9,0.6,5.9 +19980322,2.6,-1.9,7.2,0.0,7.2 +19980323,3.4,-2.7,8.9,-2.2,2.3 +19980324,5.2,0.6,12.2,1.0,4.1 +19980325,6.0,-0.7,12.8,0.6,2.4 +19980326,12.3,5.2,22.2,4.4,3.8 +19980327,14.6,8.6,22.2,4.4,2.5 +19980328,16.8,10.1,22.2,5.6,5.2 +19980329,16.4,9.2,25.0,7.2,1.5 +19980330,17.2,9.8,26.1,7.8,2.0 +19980331,17.8,13.3,26.1,7.2,4.2 +19980401,18.2,11.1,23.9,12.8,5.5 +19980402,15.1,0.6,25.0,4.4,2.6 +19980403,9.7,4.4,25.0,4.4,1.9 +19980404,8.8,6.3,12.8,3.9,4.9 +19980405,7.8,-0.2,16.1,2.8,6.6 +19980406,9.2,-1.9,20.0,-1.1,2.0 +19980407,11.8,2.7,22.2,3.3,2.8 +19980408,16.8,10.8,24.4,9.4,2.5 +19980409,16.7,9.7,25.0,9.4,4.2 +19980410,7.6,2.6,10.0,5.0,5.0 +19980411,7.8,0.5,15.0,4.4,6.7 +19980412,10.5,-0.9,18.9,2.2,3.1 +19980413,10.2,2.0,18.0,1.1,2.7 +19980414,13.8,8.2,19.0,10.0,4.4 +19980415,14.8,11.3,23.9,8.3,2.7 +19980416,17.7,14.3,23.9,7.8,5.1 +19980417,18.4,14.5,24.4,13.9,3.1 +19980418,13.0,11.9,15.6,11.7,2.7 +19980419,11.4,10.9,13.3,10.0,2.5 +19980420,11.5,5.4,17.8,7.0,5.0 +19980421,9.6,5.7,15.6,3.0,2.0 +19980422,9.3,8.3,15.6,2.8,0.8 +19980423,9.1,6.6,14.4,6.7,2.9 +19980424,9.9,4.8,17.2,3.0,3.1 +19980425,11.6,4.3,21.1,2.2,1.1 +19980426,16.2,7.8,23.3,8.3,3.2 +19980427,14.1,10.0,23.3,8.3,2.2 +19980428,10.5,6.1,20.6,6.7,2.5 +19980429,13.4,8.6,18.9,10.0,2.2 +19980430,13.3,12.2,18.9,9.4,2.5 +19980501,14.2,12.6,20.6,12.0,1.6 +19980502,12.1,8.7,18.9,7.2,1.7 +19980503,12.2,9.6,18.3,5.6,1.6 +19980504,12.9,9.8,19.4,5.6,1.6 +19980505,11.5,7.3,20.0,3.9,2.6 +19980506,14.6,9.7,22.8,6.0,1.7 +19980507,16.2,15.0,23.3,5.6,2.6 +19980508,16.1,12.6,22.2,11.7,2.4 +19980509,17.6,13.0,23.3,11.7,4.2 +19980510,16.4,14.2,20.0,14.0,1.8 +19980511,16.4,12.4,22.0,13.3,4.5 +19980512,15.6,9.1,23.0,6.7,3.7 +19980513,16.9,12.5,26.7,9.4,1.6 +19980514,20.4,16.0,28.9,14.0,1.5 +19980515,22.4,18.1,29.4,17.0,1.9 +19980516,21.8,17.8,27.8,16.0,1.9 +19980517,22.8,16.8,27.8,16.1,4.3 +19980518,20.2,12.5,27.2,12.2,1.9 +19980519,20.6,14.2,32.2,11.0,1.3 +19980520,22.7,15.2,33.3,11.1,2.8 +19980521,22.4,15.8,29.4,15.6,2.0 +19980522,22.6,17.7,29.4,15.0,2.7 +19980523,21.4,17.1,27.8,16.0,1.9 +19980524,21.5,18.3,26.7,17.0,1.4 +19980525,21.9,17.6,28.3,14.0,2.0 +19980526,22.3,17.6,28.9,14.4,1.2 +19980527,20.8,18.2,29.4,16.1,1.7 +19980528,21.4,17.4,28.9,16.0,1.3 +19980529,22.7,18.8,28.9,15.6,1.6 +19980530,22.5,18.9,28.9,17.8,1.4 +19980531,22.1,18.3,30.0,15.0,1.4 +19980601,23.3,18.9,30.0,14.4,3.5 +19980602,20.9,16.8,30.0,14.0,1.8 +19980603,24.5,17.6,32.8,17.2,2.1 +19980604,23.4,19.4,32.8,16.7,2.0 +19980605,20.3,18.3,27.8,16.7,1.9 +19980606,18.6,16.8,24.4,14.0,4.3 +19980607,13.5,7.2,19.0,8.3,5.5 +19980608,14.2,8.2,23.3,6.1,1.0 +19980609,16.6,14.1,23.3,5.6,1.5 +19980610,18.2,17.4,24.4,14.0,0.7 +19980611,21.7,18.4,30.0,16.0,0.6 +19980612,23.7,18.7,31.1,16.0,1.0 +19980613,23.7,16.3,31.1,16.1,2.7 +19980614,21.1,14.8,24.4,15.0,2.1 +19980615,23.8,17.8,30.0,18.0,2.6 +19980616,23.6,16.9,30.6,17.2,2.7 +19980617,21.3,14.2,28.0,12.8,2.6 +19980618,21.3,15.3,30.0,12.2,1.7 +19980619,21.6,19.3,33.3,11.7,1.9 +19980620,22.3,16.9,28.9,15.6,2.8 +19980621,20.7,17.1,28.9,15.0,0.9 +19980622,22.9,19.7,30.6,17.0,1.5 +19980623,22.5,18.1,31.1,16.1,3.4 +19980624,25.0,19.6,31.7,17.8,2.5 +19980625,23.1,18.0,32.2,16.7,1.5 +19980626,25.4,20.7,32.2,16.1,2.3 +19980627,24.7,19.6,32.2,17.8,2.2 +19980628,25.6,19.5,32.8,17.8,3.0 +19980629,24.8,20.2,32.2,18.9,1.4 +19980630,23.7,19.4,32.2,18.0,1.9 +19980701,23.5,17.5,32.8,17.8,3.2 +19980702,22.6,16.7,28.9,16.1,2.9 +19980703,23.4,17.4,30.0,17.2,1.8 +19980704,22.7,18.7,28.9,16.7,1.2 +19980705,23.4,19.4,30.0,16.1,3.9 +19980706,23.6,18.9,29.4,18.9,2.2 +19980707,23.6,19.2,29.4,17.0,0.8 +19980708,24.1,21.8,30.0,17.2,1.1 +19980709,24.8,20.9,31.0,18.9,2.1 +19980710,24.7,18.9,31.1,18.9,4.1 +19980711,22.4,17.0,28.3,17.2,1.2 +19980712,22.6,18.3,28.3,17.2,1.4 +19980713,23.2,18.6,28.3,16.7,2.1 +19980714,21.4,17.7,25.6,18.3,1.1 +19980715,21.9,16.7,28.9,15.0,1.3 +19980716,24.1,18.7,30.6,15.0,1.3 +19980717,25.3,19.9,30.6,18.3,4.0 +19980718,24.7,17.2,31.1,17.8,2.2 +19980719,24.0,17.9,32.2,16.7,1.3 +19980720,23.2,18.6,32.8,16.0,2.6 +19980721,24.0,18.8,32.8,16.1,1.6 +19980722,23.6,20.1,33.3,17.2,1.6 +19980723,23.9,20.7,31.1,18.3,1.9 +19980724,22.1,20.3,31.1,18.9,2.2 +19980725,22.3,20.1,29.4,18.9,2.2 +19980726,22.8,18.4,27.8,17.2,2.7 +19980727,22.2,19.8,28.3,17.2,1.6 +19980728,24.0,20.3,30.6,20.0,2.2 +19980729,23.6,18.1,30.6,17.2,2.9 +19980730,23.4,18.9,31.7,17.2,1.9 +19980731,22.4,20.5,30.0,17.2,2.9 +19980801,22.2,16.9,25.6,17.2,2.4 +19980802,20.6,14.7,25.0,15.0,1.0 +19980803,18.9,11.3,27.8,10.0,0.9 +19980804,19.3,10.9,29.4,10.0,0.6 +19980805,21.1,13.8,30.0,9.4,0.9 +19980806,21.8,15.1,30.6,12.2,1.3 +19980807,20.8,16.5,29.4,13.3,1.2 +19980808,22.5,19.2,28.9,18.0,1.7 +19980809,23.3,20.7,29.4,18.3,2.6 +19980810,23.3,20.4,28.9,20.0,1.9 +19980811,23.6,18.2,30.0,18.9,3.0 +19980812,23.5,17.2,31.1,17.2,2.2 +19980813,22.9,17.3,31.1,16.1,1.5 +19980814,21.5,19.7,28.9,16.1,1.5 +19980815,21.2,20.1,26.1,18.9,0.8 +19980816,22.3,21.1,26.1,20.0,0.8 +19980817,23.4,19.3,29.4,19.4,2.6 +19980818,23.0,17.7,30.6,16.7,2.2 +19980819,22.9,19.1,30.6,16.1,2.2 +19980820,21.3,16.4,28.9,17.2,1.3 +19980821,20.3,15.3,28.3,13.0,1.4 +19980822,21.7,16.1,30.6,14.0,1.2 +19980823,23.4,18.0,31.1,16.0,1.2 +19980824,23.7,17.9,31.7,16.1,1.2 +19980825,24.2,17.4,33.3,16.1,1.0 +19980826,25.4,19.2,33.3,16.1,4.0 +19980827,25.2,18.7,32.8,18.3,5.2 +19980828,24.4,18.7,31.1,17.8,1.9 +19980829,24.7,19.1,31.7,17.2,1.1 +19980830,23.3,19.7,32.8,17.8,0.9 +19980831,23.4,18.0,31.7,17.8,2.4 +19980901,22.2,15.7,29.4,15.6,1.5 +19980902,21.3,16.1,30.0,15.0,1.0 +19980903,19.1,17.4,28.9,14.4,1.2 +19980904,23.6,14.2,30.6,18.3,3.9 +19980905,22.7,15.8,32.8,14.4,1.3 +19980906,22.2,17.5,33.3,14.4,0.8 +19980907,22.6,17.5,30.6,15.6,1.1 +19980908,21.3,15.2,31.7,15.0,2.8 +19980909,16.9,6.3,26.7,12.8,5.0 +19980910,14.6,5.6,26.1,5.0,1.0 +19980911,17.2,6.9,28.3,7.2,1.2 +19980912,19.9,9.7,31.7,10.0,0.5 +19980913,21.5,13.3,31.7,10.0,1.0 +19980914,21.4,15.2,31.7,12.2,1.3 +19980915,21.3,17.1,31.1,12.2,1.1 +19980916,22.2,17.1,30.0,15.0,0.8 +19980917,22.5,17.2,30.6,15.0,0.6 +19980918,21.8,16.8,30.6,15.0,0.6 +19980919,22.2,18.4,29.4,15.6,0.9 +19980920,21.3,17.2,28.9,15.6,1.2 +19980921,21.4,18.9,29.4,15.6,0.4 +19980922,22.5,18.8,28.9,17.8,2.7 +19980923,21.1,15.7,29.4,17.8,2.6 +19980924,18.6,13.4,21.7,15.0,2.7 +19980925,18.4,14.4,27.8,12.2,1.4 +19980926,20.5,15.4,28.9,13.9,1.4 +19980927,20.1,14.3,30.0,11.0,1.3 +19980928,21.1,18.4,31.1,10.6,1.3 +19980929,19.2,17.7,28.9,16.7,1.1 +19980930,20.3,18.1,24.4,17.8,1.5 +19981001,20.4,16.4,26.7,16.0,3.2 +19981002,15.7,8.2,21.1,8.3,2.5 +19981003,15.1,11.1,23.3,9.4,2.9 +19981004,19.4,17.1,23.9,16.7,1.4 +19981005,19.8,18.4,25.0,16.7,1.4 +19981006,17.9,16.6,19.4,17.0,1.7 +19981007,17.2,16.6,19.0,16.0,1.8 +19981008,17.3,15.4,19.4,12.8,4.1 +19981009,12.9,7.6,18.9,8.9,5.7 +19981010,12.7,7.3,21.1,5.6,3.0 +19981011,13.9,8.8,24.4,7.0,1.5 +19981012,13.6,10.1,24.4,7.2,1.0 +19981013,15.1,11.5,23.3,7.2,0.9 +19981014,13.7,6.4,19.4,7.2,2.3 +19981015,11.6,4.8,22.2,2.2,1.2 +19981016,12.5,8.2,22.2,2.2,0.9 +19981017,12.9,8.9,22.8,5.0,1.5 +19981018,13.1,9.2,22.8,5.6,1.4 +19981019,14.9,12.5,23.4,10.0,1.3 +19981020,16.5,10.7,23.3,9.4,5.1 +19981021,12.7,4.3,18.9,9.4,3.1 +19981022,9.0,0.4,13.9,5.0,6.9 +19981023,7.5,-2.7,17.2,1.1,3.2 +19981024,8.5,-0.8,21.7,-1.1,0.5 +19981025,9.7,2.4,22.2,-1.7,1.2 +19981026,10.7,2.9,23.9,0.0,0.7 +19981027,11.5,5.2,23.9,0.0,0.9 +19981028,12.6,6.1,24.4,2.8,0.8 +19981029,17.7,10.8,22.2,13.9,4.1 +19981030,14.5,9.7,25.0,6.1,1.5 +19981031,15.9,10.6,25.6,5.6,3.0 +19981101,13.2,8.5,22.2,5.0,1.3 +19981102,12.2,10.0,22.8,3.9,1.2 +19981103,14.6,13.4,21.1,12.0,3.0 +19981104,11.8,8.2,15.0,8.9,2.3 +19981105,6.8,5.0,11.1,4.0,2.4 +19981106,3.8,-1.4,7.0,1.1,5.9 +19981107,3.1,-3.0,10.6,-2.8,2.8 +19981108,5.6,-0.7,12.2,-3.3,1.5 +19981109,9.6,7.0,12.2,0.6,1.9 +19981110,14.2,11.8,18.3,10.0,5.6 +19981111,12.8,5.8,17.2,8.3,5.5 +19981112,7.2,-2.1,15.6,0.0,2.2 +19981113,9.0,3.2,16.1,-1.1,0.1 +19981114,10.1,8.1,14.4,6.1,0.6 +19981115,12.9,10.3,17.2,11.0,2.9 +19981116,7.9,7.3,12.8,3.0,0.7 +19981117,12.9,9.4,16.7,10.6,4.7 +19981118,7.5,3.3,13.3,0.6,2.5 +19981119,9.7,6.4,16.7,5.6,1.4 +19981120,12.1,10.6,17.2,5.0,1.9 +19981121,6.1,-0.4,9.4,3.3,6.2 +19981122,3.3,-2.4,13.3,-3.9,1.2 +19981123,6.1,-1.9,20.0,-2.2,1.3 +19981124,14.8,8.7,18.9,11.1,3.8 +19981125,8.1,4.1,12.2,4.4,0.9 +19981126,10.2,3.1,15.0,7.2,5.6 +19981127,10.6,-0.9,18.9,4.4,4.2 +19981128,10.1,0.6,21.1,0.0,0.9 +19981129,8.1,1.6,21.1,-1.1,0.5 +19981130,9.2,4.5,21.7,-1.1,2.2 +19981201,13.1,7.6,19.4,0.0,3.0 +19981202,8.1,2.0,20.0,-1.1,0.4 +19981203,9.0,4.7,20.6,-1.7,0.8 +19981204,9.4,6.1,20.0,0.0,0.8 +19981205,12.2,9.6,21.7,5.0,1.3 +19981206,14.6,12.2,22.2,4.4,2.0 +19981207,16.9,12.6,23.9,12.2,3.1 +19981208,17.6,15.1,23.9,11.7,3.5 +19981209,10.1,5.4,14.4,5.6,5.9 +19981210,4.3,0.1,12.8,-2.2,1.6 +19981211,8.2,0.6,10.6,6.7,3.5 +19981212,6.9,-1.7,8.9,3.9,1.7 +19981213,5.9,5.6,11.7,3.0,1.9 +19981214,8.3,3.9,11.7,3.3,4.5 +19981215,1.8,-4.8,9.4,-6.0,1.4 +19981216,7.3,-5.8,14.0,2.8,3.2 +19981217,2.8,-4.3,6.7,-0.6,4.4 +19981218,0.9,-6.1,8.9,-4.4,2.7 +19981219,3.1,-0.8,9.4,-5.0,1.2 +19981220,7.9,7.1,15.0,4.4,1.0 +19981221,12.1,10.8,18.3,8.9,1.7 +19981222,8.8,6.8,15.6,0.0,6.0 +19981223,-0.3,-4.5,1.0,-1.7,3.1 +19981224,0.9,0.5,3.0,-1.1,2.2 +19981225,-0.6,-1.7,1.0,-2.2,1.5 +19981226,-0.3,-2.1,4.4,-3.0,3.5 +19981227,0.7,-2.0,7.8,-3.0,2.5 +19981228,1.8,-0.6,7.8,-2.8,1.1 +19981229,4.0,3.3,7.0,2.8,0.9 +19981230,-0.3,-4.7,5.0,-4.4,6.6 +19981231,0.1,-7.6,6.1,-3.9,1.5 +19990101,1.4,-4.3,8.9,-2.8,3.5 +19990102,-0.6,-5.3,5.0,-3.0,3.9 +19990103,-0.1,-1.0,1.1,-4.0,4.3 +19990104,-7.2,-12.6,-4.4,-9.4,6.2 +19990105,-8.7,-14.9,-3.9,-11.7,4.5 +19990106,-5.3,-9.3,3.9,-11.1,0.9 +19990107,3.6,0.8,8.3,1.1,3.2 +19990108,5.3,3.4,8.9,1.1,2.4 +19990109,6.6,4.7,10.6,-1.7,4.8 +19990110,-3.3,-10.6,3.3,-7.8,6.0 +19990111,0.4,-7.9,8.3,-4.4,2.3 +19990112,5.5,-2.8,12.8,-1.7,2.5 +19990113,6.8,1.7,12.8,-2.8,2.3 +19990114,10.6,9.0,13.3,8.9,2.3 +19990115,5.8,1.6,11.7,0.6,4.5 +19990116,2.9,-4.8,15.6,-4.4,1.5 +19990117,3.6,-1.6,15.6,-4.4,1.4 +19990118,8.0,-0.4,13.9,5.0,2.3 +19990119,7.7,-6.4,14.4,0.6,2.2 +19990120,6.6,0.7,17.8,-1.7,0.6 +19990121,8.0,6.3,18.9,-1.7,1.5 +19990122,14.9,12.8,18.3,11.7,4.6 +19990123,15.3,13.9,17.2,12.2,5.8 +19990124,10.5,8.2,14.4,5.6,5.4 +19990125,5.3,0.5,15.6,-2.0,3.7 +19990126,7.1,2.1,16.1,-1.7,2.5 +19990127,8.3,1.9,-999.0,-1.1,1.4 +19990128,13.2,6.1,26.7,-1.1,3.0 +19990129,12.6,8.6,22.8,2.8,1.9 +19990130,10.1,9.4,18.3,6.1,1.7 +19990131,4.2,0.3,8.9,-2.0,2.8 +19990201,0.4,-0.7,3.3,-2.0,2.7 +19990202,5.6,3.7,13.9,2.0,1.2 +19990203,8.2,3.5,15.0,1.0,2.0 +19990204,9.4,1.4,15.6,4.4,4.1 +19990205,7.8,-6.6,17.2,1.1,3.0 +19990206,6.1,-0.1,13.9,-1.7,1.4 +19990207,10.9,7.6,20.0,4.0,3.1 +19990208,12.8,2.5,20.0,4.4,3.7 +19990209,8.4,3.3,17.2,0.6,0.3 +19990210,12.3,10.5,17.2,9.4,0.6 +19990211,12.4,10.6,17.2,9.4,0.3 +19990212,11.4,8.5,16.7,1.1,4.4 +19990213,-1.6,-9.3,0.6,-3.0,5.0 +19990214,-2.2,-13.1,7.2,-7.2,5.8 +19990215,2.4,-10.3,14.4,-5.6,0.9 +19990216,6.0,-5.6,16.1,-3.3,1.6 +19990217,8.8,4.7,16.1,-3.9,1.2 +19990218,8.8,5.7,12.2,6.0,2.9 +19990219,4.3,3.2,7.2,1.7,1.1 +19990220,3.8,-1.1,9.4,-0.6,4.9 +19990221,0.8,-4.1,6.7,-2.2,6.4 +19990222,-3.3,-12.5,2.2,-6.7,7.6 +19990223,-2.8,-10.3,2.2,-6.7,3.0 +19990224,-1.4,-7.1,7.2,-5.6,2.3 +19990225,1.7,-2.5,11.1,-3.3,1.5 +19990226,5.0,-4.3,13.9,-1.1,2.7 +19990227,7.4,1.8,17.2,0.6,1.4 +19990228,10.2,7.0,17.8,0.0,4.3 +19990301,5.1,-2.1,9.4,1.7,7.8 +19990302,6.8,-2.9,17.8,-1.7,3.3 +19990303,8.3,2.8,18.3,-2.2,5.4 +19990304,-0.9,-7.9,3.9,-4.4,8.1 +19990305,2.0,-5.8,11.1,-5.0,2.8 +19990306,8.2,1.6,17.0,1.7,4.3 +19990307,3.4,-4.6,17.2,-1.1,7.6 +19990308,-0.7,-11.4,5.0,-6.1,3.1 +19990309,-0.6,-6.4,5.6,-6.1,3.2 +19990310,2.4,-1.3,5.6,0.0,4.9 +19990311,1.5,-5.9,8.0,-2.2,7.2 +19990312,3.0,-9.9,11.0,-2.2,6.2 +19990313,1.6,-5.9,11.1,-2.2,2.0 +19990314,1.6,0.5,3.3,-1.7,2.7 +19990315,2.7,0.2,6.0,0.6,5.5 +19990316,5.7,-2.9,17.8,-2.2,3.4 +19990317,9.8,-2.1,23.3,-2.8,1.9 +19990318,13.2,2.6,23.3,-2.2,4.0 +19990319,10.7,-4.6,21.7,2.2,5.9 +19990320,8.8,-2.6,17.2,0.0,3.3 +19990321,9.9,5.6,17.2,0.0,2.5 +19990322,7.4,-5.7,13.0,1.7,5.6 +19990323,8.1,-3.7,17.8,1.1,3.0 +19990324,10.7,3.1,20.0,3.3,1.2 +19990325,9.9,4.4,20.0,2.8,4.1 +19990326,4.9,2.2,8.9,0.6,1.8 +19990327,3.7,-0.4,11.0,-0.6,4.2 +19990328,5.4,-3.9,16.1,-3.3,3.3 +19990329,9.3,0.4,13.3,5.0,3.5 +19990330,10.8,0.9,16.7,4.4,3.5 +19990331,7.1,-0.8,17.2,3.9,1.1 +19990401,13.7,8.8,21.7,7.8,1.3 +19990402,15.3,10.3,23.3,6.7,1.9 +19990403,16.4,10.3,26.1,7.2,1.4 +19990404,20.7,12.5,28.3,16.7,3.5 +19990405,19.6,10.4,25.6,11.7,3.2 +19990406,14.8,11.4,26.1,10.0,4.0 +19990407,16.2,9.7,26.0,7.0,2.2 +19990408,15.5,8.8,26.1,6.7,1.9 +19990409,19.4,12.6,27.2,13.9,3.6 +19990410,20.0,7.6,26.1,12.8,4.0 +19990411,22.2,11.6,27.8,17.8,4.0 +19990412,14.1,1.4,22.2,10.0,9.2 +19990413,9.8,0.8,17.0,5.0,6.6 +19990414,10.9,1.1,17.2,5.0,2.1 +19990415,11.4,7.6,16.1,6.1,2.7 +19990416,12.6,-0.2,16.7,6.7,6.1 +19990417,9.4,-5.9,13.9,3.9,4.5 +19990418,7.8,-1.1,14.4,3.3,4.2 +19990419,9.1,0.0,17.8,0.6,2.2 +19990420,15.2,6.7,21.1,10.0,3.3 +19990421,14.6,6.8,25.6,4.4,2.1 +19990422,18.2,8.6,26.7,7.2,3.2 +19990423,19.2,10.8,27.8,9.4,2.5 +19990424,19.6,13.9,28.3,8.9,3.9 +19990425,14.1,9.0,16.7,11.7,2.9 +19990426,14.8,11.5,19.0,11.1,2.8 +19990427,16.8,13.9,24.4,12.2,2.4 +19990428,13.3,11.9,17.2,9.0,2.0 +19990429,7.3,5.6,8.9,5.6,2.3 +19990430,7.3,2.8,15.6,3.9,3.0 +19990501,13.7,0.3,21.0,8.9,4.6 +19990502,13.8,1.0,21.7,3.3,1.6 +19990503,13.3,4.3,23.9,2.8,1.8 +19990504,15.0,7.2,24.4,5.0,1.6 +19990505,16.4,12.8,25.0,5.0,2.7 +19990506,16.9,15.4,20.6,12.2,3.9 +19990507,16.6,14.6,22.2,12.2,2.8 +19990508,16.7,10.9,22.8,10.0,2.7 +19990509,15.7,8.8,23.9,7.2,1.7 +19990510,17.3,10.1,24.4,6.7,2.0 +19990511,17.7,11.5,25.0,8.9,1.5 +19990512,16.7,12.9,25.6,9.4,1.3 +19990513,16.2,13.1,22.2,11.7,1.2 +19990514,14.6,12.6,22.8,11.7,2.5 +19990515,14.1,9.4,21.1,9.0,1.6 +19990516,15.8,10.4,23.9,8.0,1.4 +19990517,18.8,12.1,24.4,7.8,1.7 +19990518,18.3,14.1,24.4,12.8,1.2 +19990519,17.3,12.4,24.4,13.3,5.7 +19990520,16.5,8.4,23.9,7.8,2.8 +19990521,16.8,10.8,25.6,8.9,1.1 +19990522,18.2,13.9,27.2,11.0,1.2 +19990523,20.9,14.6,27.8,14.4,2.7 +19990524,19.2,11.9,27.8,13.9,4.3 +19990525,16.6,9.2,23.0,10.0,3.3 +19990526,16.9,11.4,23.3,9.4,2.8 +19990527,15.4,7.8,23.0,8.3,3.6 +19990528,15.9,7.7,25.0,6.7,1.8 +19990529,18.1,11.1,26.1,9.4,1.3 +19990530,18.6,11.9,26.7,9.4,1.5 +19990531,18.3,12.1,26.1,10.0,1.9 +19990601,18.8,13.7,25.0,10.6,2.9 +19990602,20.3,16.1,27.2,13.9,2.1 +19990603,20.6,17.4,28.3,13.9,3.2 +19990604,20.3,14.6,26.7,12.0,2.5 +19990605,19.9,16.3,27.8,12.2,1.7 +19990606,20.5,15.7,26.7,14.4,1.2 +19990607,20.7,13.8,30.0,12.0,1.2 +19990608,23.1,15.1,31.1,11.7,2.1 +19990609,23.1,16.4,31.1,13.9,1.7 +19990610,22.1,17.6,31.1,15.0,1.4 +19990611,20.9,18.1,28.9,16.1,1.8 +19990612,21.1,16.4,26.1,16.7,1.1 +19990613,20.2,13.4,27.8,12.0,1.5 +19990614,20.2,14.9,28.3,12.2,1.6 +19990615,19.7,18.3,28.3,12.2,2.2 +19990616,17.3,16.6,19.0,15.0,0.7 +19990617,18.4,14.7,23.3,15.6,3.0 +19990618,17.6,9.8,24.4,12.2,2.7 +19990619,16.3,10.2,22.2,8.9,1.7 +19990620,17.4,12.8,22.8,8.9,1.6 +19990621,19.6,14.9,24.4,15.6,2.6 +19990622,20.2,16.6,25.0,15.0,2.5 +19990623,19.9,17.1,25.6,16.7,2.4 +19990624,18.9,17.8,25.0,17.2,2.3 +19990625,20.3,19.2,23.9,17.8,1.9 +19990626,22.1,20.8,25.6,20.6,0.9 +19990627,22.0,20.8,26.1,20.0,2.7 +19990628,23.2,20.4,30.6,18.0,1.9 +19990629,21.7,20.0,30.6,17.8,1.7 +19990630,22.7,19.4,28.3,18.3,2.6 +19990701,23.4,20.3,28.9,18.3,2.7 +19990702,22.7,20.4,27.8,18.0,2.3 +19990703,22.3,20.1,28.9,18.0,1.8 +19990704,22.6,20.1,30.0,17.0,2.0 +19990705,23.8,21.7,30.6,17.2,2.0 +19990706,23.7,21.6,31.1,19.4,2.3 +19990707,21.6,20.2,24.4,18.3,2.3 +19990708,22.9,20.8,28.3,18.9,2.4 +19990709,23.4,20.8,30.0,18.0,1.6 +19990710,21.9,20.3,30.0,17.8,0.9 +19990711,20.4,19.1,25.6,17.2,1.9 +19990712,15.9,15.0,18.0,14.4,1.4 +19990713,16.7,14.8,20.6,14.0,1.1 +19990714,19.8,16.8,24.4,16.7,1.9 +19990715,21.5,18.2,26.1,17.0,2.3 +19990716,22.3,17.9,28.3,17.0,1.9 +19990717,21.7,18.3,26.7,16.7,1.3 +19990718,22.0,18.9,29.4,17.0,1.7 +19990719,22.6,18.7,30.0,17.2,2.5 +19990720,23.8,19.7,30.0,17.8,2.3 +19990721,25.1,21.1,30.6,20.6,3.0 +19990722,26.2,21.9,31.1,21.7,4.0 +19990723,26.9,21.9,32.8,22.2,2.6 +19990724,24.8,21.7,33.3,20.0,2.4 +19990725,23.6,18.2,31.1,18.9,4.3 +19990726,23.8,17.4,31.7,16.7,3.0 +19990727,23.7,19.7,31.7,16.1,1.9 +19990728,25.2,19.9,31.7,18.3,1.9 +19990729,24.9,20.6,31.7,18.9,2.2 +19990730,25.6,20.9,32.8,17.0,2.7 +19990731,26.9,21.3,34.4,21.1,1.7 +19990801,25.7,21.2,32.2,18.9,1.9 +19990802,25.6,20.0,32.8,18.3,4.4 +19990803,23.6,16.1,28.3,17.2,2.7 +19990804,22.8,16.7,28.9,16.7,1.5 +19990805,23.6,17.3,29.4,16.1,2.8 +19990806,23.7,17.2,30.0,17.2,1.8 +19990807,23.6,17.6,31.7,16.0,2.1 +19990808,22.9,17.7,31.1,14.4,1.8 +19990809,23.1,19.7,31.7,14.4,2.8 +19990810,23.8,18.6,30.6,18.0,1.9 +19990811,23.9,18.3,31.1,16.1,1.8 +19990812,24.4,17.9,31.7,16.1,1.4 +19990813,24.1,20.1,33.0,18.3,0.9 +19990814,25.4,20.6,33.3,17.8,2.4 +19990815,23.2,16.7,28.9,18.3,3.3 +19990816,23.5,18.7,31.1,17.2,1.5 +19990817,25.4,19.7,32.2,19.0,1.0 +19990818,25.4,17.5,32.8,17.2,2.7 +19990819,23.8,16.9,33.3,17.2,1.7 +19990820,22.7,19.3,30.6,17.8,1.7 +19990821,21.7,16.1,27.2,16.7,3.3 +19990822,20.6,14.2,27.8,13.3,1.9 +19990823,19.5,16.9,28.3,12.2,0.9 +19990824,19.9,19.3,26.7,14.4,2.1 +19990825,22.6,19.7,27.2,19.0,3.0 +19990826,23.8,19.8,30.0,19.0,2.2 +19990827,21.7,16.8,26.7,15.0,2.7 +19990828,22.1,17.7,29.0,16.7,1.8 +19990829,22.9,18.4,28.9,16.1,2.0 +19990830,23.2,14.8,28.9,17.2,4.2 +19990831,18.2,10.4,26.7,10.0,1.5 +19990901,18.5,12.3,28.9,9.0,2.6 +19990902,20.3,12.8,30.6,11.0,1.3 +19990903,20.9,14.1,30.6,10.6,0.9 +19990904,20.9,13.5,31.0,11.7,2.1 +19990905,20.4,15.4,31.1,11.7,3.5 +19990906,23.9,18.4,28.9,20.0,3.6 +19990907,22.6,17.0,30.0,14.0,0.7 +19990908,22.7,16.2,31.1,14.4,1.2 +19990909,21.4,16.1,31.7,15.0,2.6 +19990910,21.1,9.7,27.0,16.1,4.2 +19990911,18.1,7.3,27.8,8.3,1.6 +19990912,18.7,11.1,28.3,7.2,1.1 +19990913,18.2,12.3,28.3,10.0,1.2 +19990914,20.3,15.4,28.3,10.0,1.3 +19990915,20.9,15.5,27.2,13.9,4.9 +19990916,19.0,5.4,23.0,15.6,10.3 +19990917,16.7,5.1,24.4,10.6,3.1 +19990918,14.4,8.9,22.2,6.0,1.4 +19990919,15.6,11.1,24.4,8.3,1.1 +19990920,17.2,12.6,25.6,9.4,1.3 +19990921,18.0,14.9,25.6,9.4,3.5 +19990922,13.6,4.7,18.0,9.4,7.7 +19990923,12.7,2.6,22.8,2.8,2.2 +19990924,14.0,6.1,25.0,3.9,1.5 +19990925,15.3,8.2,26.1,5.6,1.4 +19990926,15.8,11.6,26.1,5.6,1.2 +19990927,19.8,18.8,21.1,18.9,2.1 +19990928,20.8,20.1,23.9,18.9,1.2 +19990929,20.9,19.6,23.9,19.4,2.0 +19990930,14.1,6.8,23.9,8.9,6.9 +19991001,11.8,5.8,22.2,3.3,1.8 +19991002,13.3,8.4,22.2,3.3,1.7 +19991003,14.2,10.9,24.4,5.0,1.9 +19991004,17.2,16.1,20.0,15.6,2.0 +19991005,15.4,10.9,20.6,11.0,3.8 +19991006,13.6,9.1,22.2,7.2,2.1 +19991007,11.8,8.8,22.2,6.7,1.4 +19991008,13.5,10.7,19.4,6.7,2.3 +19991009,16.5,14.8,20.6,7.8,2.8 +19991010,17.8,17.7,20.6,14.4,1.8 +19991011,19.2,16.4,24.4,15.6,3.4 +19991012,16.4,12.9,18.3,14.0,1.2 +19991013,14.5,13.1,20.0,12.0,1.1 +19991014,16.1,11.4,21.7,12.2,3.0 +19991015,14.6,8.8,18.3,11.0,3.0 +19991016,13.4,9.8,22.2,6.7,1.0 +19991017,15.9,11.7,25.0,6.7,4.3 +19991018,15.1,9.1,25.0,9.4,6.2 +19991019,11.5,7.4,17.2,10.0,2.2 +19991020,10.7,9.6,12.0,9.0,3.9 +19991021,8.9,4.3,15.6,3.9,3.0 +19991022,8.5,3.1,21.7,-0.6,1.6 +19991023,8.8,-2.0,21.7,-0.6,5.9 +19991024,6.0,-2.3,10.6,3.9,6.5 +19991025,6.2,-0.5,17.2,-2.8,1.5 +19991026,7.8,1.2,18.9,-2.8,1.8 +19991027,11.1,2.4,22.0,3.3,2.6 +19991028,10.1,3.9,21.7,1.1,1.5 +19991029,11.0,5.6,22.8,1.1,1.2 +19991030,11.1,7.0,22.8,2.2,0.9 +19991031,16.4,11.7,22.8,2.8,0.9 +19991101,13.1,12.2,22.8,8.3,0.9 +19991102,14.1,11.7,18.3,5.0,5.0 +19991103,3.5,-5.7,9.0,-2.0,5.8 +19991104,5.1,-6.1,15.6,-3.3,1.7 +19991105,7.0,-1.8,19.4,-3.2,1.2 +19991106,9.8,3.4,20.0,-2.2,3.3 +19991107,15.4,9.7,21.7,10.0,4.4 +19991108,13.7,9.2,22.2,7.8,1.2 +19991109,12.8,8.8,23.3,5.0,0.3 +19991110,13.3,8.3,23.3,3.3,1.4 +19991111,11.3,8.4,22.2,3.3,1.7 +19991112,12.4,10.2,20.0,5.0,2.0 +19991113,10.9,6.8,21.1,5.0,1.2 +19991114,12.1,6.2,24.4,2.8,2.7 +19991115,11.5,-0.5,24.4,2.8,6.4 +19991116,6.4,-5.1,13.9,2.8,5.7 +19991117,5.5,-5.4,13.9,-0.6,4.2 +19991118,4.0,-3.7,15.6,-4.4,1.4 +19991119,6.1,0.9,17.2,-4.4,2.2 +19991120,13.0,9.3,19.4,10.0,1.8 +19991121,14.0,12.0,19.4,9.4,1.4 +19991122,13.9,11.6,20.0,10.0,1.2 +19991123,13.7,11.6,20.0,10.0,1.4 +19991124,14.5,12.9,18.9,10.6,0.9 +19991125,13.9,13.4,18.9,12.2,2.3 +19991126,14.5,13.1,17.0,8.0,4.2 +19991127,7.8,0.9,16.7,3.9,5.0 +19991128,8.6,2.1,16.7,2.2,3.7 +19991129,9.1,0.9,16.7,2.2,4.6 +19991130,1.8,-9.3,12.2,-2.2,6.4 +19991201,0.1,-12.3,8.0,-5.0,5.6 +19991202,2.7,-9.2,15.0,-5.6,1.1 +19991203,5.2,-2.6,16.7,-5.6,2.0 +19991204,8.8,-1.2,19.4,-1.7,1.5 +19991205,10.0,3.8,19.4,0.0,3.4 +19991206,9.7,7.1,18.3,1.7,4.9 +19991207,3.9,-3.7,14.4,-2.2,5.0 +19991208,3.9,-2.5,16.7,-4.4,1.1 +19991209,6.3,2.3,16.7,-4.4,2.0 +19991210,12.7,8.7,18.0,10.0,4.7 +19991211,8.1,2.4,17.8,1.1,4.8 +19991212,5.4,-0.8,14.4,-1.0,1.9 +19991213,10.4,4.3,14.0,7.8,2.9 +19991214,11.7,8.1,14.4,7.2,4.5 +19991215,4.5,1.8,15.0,-1.1,1.5 +19991216,4.4,-6.9,15.0,-1.1,5.0 +19991217,1.7,-6.6,13.3,-6.1,0.6 +19991218,2.4,-5.2,13.3,-6.1,0.8 +19991219,7.1,-1.3,12.8,-4.4,0.9 +19991220,8.1,0.8,12.2,6.0,2.6 +19991221,6.6,5.7,12.8,3.9,1.3 +19991222,4.6,2.1,7.8,0.6,5.3 +19991223,1.4,-4.3,8.3,-3.3,3.4 +19991224,-0.7,-4.4,8.3,-5.0,2.1 +19991225,-3.3,-10.7,1.7,-7.8,5.9 +19991226,1.1,-9.1,14.4,-7.8,4.6 +19991227,2.3,-10.8,14.4,-7.2,6.2 +19991228,1.2,-10.3,9.4,-2.8,4.5 +19991229,3.1,-5.4,10.6,-2.8,4.5 +19991230,2.0,-4.4,13.9,-5.6,1.1 +19991231,6.4,0.8,16.7,-5.6,1.2 +20000101,7.1,4.6,17.8,-0.6,1.6 +20000102,13.1,10.0,18.9,9.0,3.4 +20000103,14.5,12.0,19.4,8.9,3.7 +20000104,14.3,10.4,16.7,8.0,5.4 +20000105,1.6,-4.6,7.8,-2.2,5.2 +20000106,-0.2,-5.5,8.9,-7.2,1.5 +20000107,2.6,-4.1,10.0,-2.8,4.2 +20000108,2.1,-4.7,10.0,-4.4,1.7 +20000109,5.8,-0.6,10.0,-4.4,2.2 +20000110,11.6,1.2,16.0,8.0,3.3 +20000111,8.1,-4.4,18.3,-1.7,3.3 +20000112,7.1,-3.9,18.9,-2.2,2.3 +20000113,12.1,1.7,18.9,-2.2,5.5 +20000114,-0.3,-10.7,5.0,-4.4,8.4 +20000115,-1.4,-10.4,10.0,-9.4,1.7 +20000116,3.7,-4.5,10.0,-9.4,2.7 +20000117,6.8,-3.9,11.1,-2.8,3.3 +20000118,1.7,-3.4,11.1,-1.1,4.4 +20000119,2.3,-3.4,7.2,-1.1,6.3 +20000120,1.9,-2.4,5.6,-3.0,9.1 +20000121,-5.7,-14.0,4.4,-10.0,8.3 +20000122,-5.8,-11.4,-1.7,-10.0,3.7 +20000123,-1.3,-2.6,2.2,-7.8,2.2 +20000124,1.0,-0.8,2.2,-3.9,5.6 +20000125,-3.8,-9.0,2.2,-7.8,9.5 +20000126,-6.7,-12.1,-1.1,-8.3,8.5 +20000127,-6.9,-14.6,-1.0,-11.0,7.5 +20000128,-4.7,-14.0,3.3,-11.1,2.4 +20000129,-1.1,-8.5,3.3,-10.0,2.6 +20000130,-1.7,-2.4,1.1,-3.3,3.0 +20000131,-2.4,-5.8,0.6,-6.0,5.2 +20000201,-2.7,-6.9,3.9,-6.7,5.3 +20000202,-1.3,-8.9,6.1,-6.7,6.2 +20000203,0.1,-8.9,13.3,-7.8,2.1 +20000204,2.0,-5.3,13.3,-7.8,3.7 +20000205,-1.4,-6.6,1.7,-3.0,7.2 +20000206,1.0,-8.4,9.4,-3.9,3.5 +20000207,4.3,-7.2,12.8,-3.9,2.5 +20000208,2.5,-2.6,12.8,-2.8,1.6 +20000209,2.4,-2.7,13.9,-6.0,0.9 +20000210,5.4,-1.2,17.2,-5.6,1.9 +20000211,10.0,3.3,19.4,-1.7,2.5 +20000212,7.4,6.9,19.4,2.2,2.3 +20000213,2.5,2.2,8.9,0.6,3.8 +20000214,7.8,5.3,15.6,0.6,3.2 +20000215,6.4,-1.7,15.6,0.6,5.2 +20000216,11.1,1.7,21.1,0.6,3.2 +20000217,9.2,0.8,21.1,2.8,4.5 +20000218,6.4,3.8,12.8,2.0,4.5 +20000219,11.2,8.9,15.0,2.0,6.4 +20000220,2.4,-3.2,7.2,-1.0,7.5 +20000221,3.2,-5.3,12.8,-1.7,4.9 +20000222,2.7,-3.2,12.8,-3.3,1.1 +20000223,7.9,-0.7,15.6,-3.3,2.4 +20000224,9.3,4.1,18.3,1.1,2.7 +20000225,12.1,6.9,22.2,2.8,1.9 +20000226,11.6,6.5,19.4,3.0,2.6 +20000227,13.7,10.2,20.0,3.3,4.1 +20000228,8.6,0.4,15.0,4.4,5.6 +20000229,7.0,-1.9,17.2,-2.2,2.1 +20000301,10.7,1.7,21.7,-2.2,2.3 +20000302,10.6,0.3,21.7,0.6,6.4 +20000303,8.3,-3.0,17.2,2.2,3.3 +20000304,8.7,2.3,17.2,2.2,2.3 +20000305,9.7,-1.5,18.9,-0.6,3.7 +20000306,10.2,-0.6,21.7,-0.6,0.8 +20000307,12.0,1.0,24.4,-0.6,1.3 +20000308,14.3,3.1,25.6,0.6,2.2 +20000309,15.0,6.9,25.6,2.8,2.1 +20000310,14.2,7.6,23.3,4.4,1.2 +20000311,14.8,11.8,22.2,5.0,3.9 +20000312,4.1,-0.2,18.3,0.0,7.8 +20000313,2.1,-5.9,10.6,-5.0,3.6 +20000314,4.9,-3.7,16.1,-5.0,1.2 +20000315,9.9,0.9,18.9,-4.4,2.7 +20000316,10.8,7.7,18.9,3.9,2.0 +20000317,11.2,8.0,14.4,6.1,5.7 +20000318,3.3,-5.3,14.4,-2.2,3.7 +20000319,5.1,-0.8,8.9,-2.2,3.8 +20000320,8.4,7.4,13.9,3.3,3.9 +20000321,10.2,6.7,16.1,5.6,2.2 +20000322,10.8,4.5,17.8,4.4,5.5 +20000323,10.6,5.7,18.9,1.7,1.7 +20000324,11.7,6.2,21.7,1.7,1.4 +20000325,14.1,8.2,22.2,2.8,1.3 +20000326,14.8,4.6,22.2,5.0,4.5 +20000327,8.9,5.1,20.6,2.8,2.3 +20000328,9.1,-0.2,17.8,-0.6,4.9 +20000329,7.1,-3.6,17.8,-0.6,3.7 +20000330,10.7,6.3,18.3,0.6,2.2 +20000331,13.2,8.3,19.4,6.1,3.0 +20000401,13.0,6.8,21.1,3.3,2.1 +20000402,14.1,10.7,21.1,3.3,4.3 +20000403,15.4,14.1,19.4,11.1,3.7 +20000404,10.5,6.9,17.8,1.0,5.4 +20000405,6.0,-6.7,15.6,1.1,5.4 +20000406,12.3,2.2,27.2,1.1,1.9 +20000407,15.3,7.2,27.2,1.1,1.9 +20000408,11.4,5.9,18.9,2.0,6.5 +20000409,3.7,-6.4,15.6,-0.6,7.4 +20000410,9.3,-3.2,21.1,-1.1,3.2 +20000411,14.4,2.3,21.1,-1.1,3.8 +20000412,14.8,8.1,20.6,5.6,4.2 +20000413,7.1,4.5,18.9,2.8,2.7 +20000414,7.3,5.9,12.0,4.0,0.9 +20000415,11.6,10.7,16.0,9.0,1.2 +20000416,14.9,11.4,23.3,8.9,1.7 +20000417,15.4,11.5,23.9,8.3,2.5 +20000418,10.6,7.1,14.0,7.8,6.8 +20000419,14.8,7.7,25.6,7.8,4.7 +20000420,16.7,9.8,25.6,8.3,3.6 +20000421,15.7,8.0,20.6,8.0,5.7 +20000422,6.7,3.1,10.6,4.0,6.5 +20000423,10.4,3.1,18.9,2.2,3.0 +20000424,10.7,7.1,18.9,2.2,1.7 +20000425,9.7,8.7,13.9,6.7,1.9 +20000426,10.9,5.9,16.1,6.0,2.3 +20000427,10.2,0.4,19.4,0.0,2.7 +20000428,11.1,6.6,19.4,0.0,3.7 +20000429,11.7,5.6,20.0,3.9,2.4 +20000430,13.5,4.6,23.3,2.8,2.8 +20000501,14.4,6.1,24.0,3.9,2.7 +20000502,18.8,11.5,24.4,12.2,2.8 +20000503,16.6,13.9,24.4,10.0,1.7 +20000504,17.2,15.0,22.2,10.0,1.7 +20000505,16.9,12.9,25.0,10.6,1.2 +20000506,19.1,13.3,27.8,10.6,2.0 +20000507,19.3,13.4,27.8,10.6,1.5 +20000508,19.3,13.9,27.8,10.6,1.9 +20000509,20.1,14.2,27.8,11.1,2.5 +20000510,19.7,13.1,27.8,11.1,3.0 +20000511,17.5,10.1,26.7,7.8,3.0 +20000512,21.1,14.7,30.6,7.8,2.2 +20000513,22.9,17.2,30.6,12.2,3.1 +20000514,18.4,8.8,29.4,13.9,5.9 +20000515,15.6,1.8,22.8,10.0,5.6 +20000516,13.0,4.4,22.2,3.3,2.1 +20000517,16.5,10.3,25.6,3.3,1.6 +20000518,21.2,14.8,27.8,8.3,3.6 +20000519,23.8,13.7,31.1,16.1,1.9 +20000520,21.6,15.4,31.1,17.2,2.3 +20000521,19.1,15.8,28.3,15.6,2.3 +20000522,18.4,13.1,24.4,15.0,3.9 +20000523,16.4,11.9,26.7,10.0,1.6 +20000524,19.9,17.2,27.8,10.0,1.2 +20000525,20.8,17.7,27.8,15.6,2.4 +20000526,18.7,15.3,26.7,13.3,2.7 +20000527,23.2,16.7,31.1,13.3,2.3 +20000528,22.0,15.8,31.1,16.1,2.6 +20000529,17.1,12.1,27.2,13.3,5.1 +20000530,16.8,11.5,23.9,11.7,2.4 +20000531,18.9,11.9,27.2,10.0,2.7 +20000601,21.7,15.7,30.0,10.0,2.3 +20000602,23.6,17.3,30.0,12.8,3.6 +20000603,22.3,16.8,30.0,16.7,3.7 +20000604,19.5,18.1,29.4,16.7,1.7 +20000605,19.7,17.8,22.8,16.7,1.2 +20000606,16.5,12.3,19.4,13.0,5.4 +20000607,15.9,5.8,23.9,10.6,5.6 +20000608,16.3,9.4,25.6,6.7,1.4 +20000609,19.7,12.3,29.4,6.7,1.9 +20000610,20.8,14.0,29.4,10.0,1.4 +20000611,21.7,15.2,30.0,11.7,1.2 +20000612,23.5,16.2,31.1,13.3,1.1 +20000613,23.2,16.9,31.1,15.0,0.7 +20000614,24.5,18.2,31.7,15.0,2.9 +20000615,24.4,18.0,31.7,17.8,2.4 +20000616,22.4,18.9,30.6,17.8,3.7 +20000617,21.8,19.2,27.8,18.0,2.2 +20000618,22.7,19.2,29.0,18.0,1.7 +20000619,21.9,19.9,29.4,18.3,1.3 +20000620,21.1,19.1,27.2,16.7,1.2 +20000621,23.1,19.7,29.4,18.9,1.6 +20000622,22.4,19.2,29.4,18.3,2.7 +20000623,21.2,15.1,29.4,12.8,2.2 +20000624,22.4,15.6,30.0,12.8,1.4 +20000625,21.4,17.6,30.6,14.4,1.4 +20000626,22.1,18.3,30.6,15.0,1.5 +20000627,21.1,17.9,25.6,16.0,1.6 +20000628,21.9,19.6,27.2,16.1,1.9 +20000629,19.9,17.3,27.2,16.7,3.4 +20000630,18.9,13.4,25.6,12.0,2.3 +20000701,20.1,14.3,26.7,12.2,1.6 +20000702,21.2,16.3,27.2,13.9,1.3 +20000703,21.7,17.1,28.9,14.4,1.3 +20000704,23.5,18.2,30.6,15.6,2.0 +20000705,22.6,19.6,30.6,16.7,1.6 +20000706,23.4,20.1,30.6,17.8,2.5 +20000707,23.3,18.3,30.6,18.3,2.9 +20000708,23.1,18.2,27.2,18.0,2.1 +20000709,23.8,18.7,31.7,17.2,1.5 +20000710,25.6,18.9,33.9,17.2,2.0 +20000711,24.6,18.0,33.9,16.7,2.4 +20000712,22.7,15.2,32.8,16.7,2.5 +20000713,22.9,18.7,28.3,20.0,2.2 +20000714,23.7,18.8,29.4,18.9,2.7 +20000715,21.7,15.1,29.4,15.6,4.1 +20000716,21.9,14.5,28.3,15.0,3.1 +20000717,21.5,13.9,28.9,13.3,3.0 +20000718,21.6,15.7,30.0,13.3,1.6 +20000719,22.8,18.4,31.7,13.9,2.0 +20000720,23.8,17.5,31.7,16.1,4.6 +20000721,23.1,16.7,29.4,18.9,3.0 +20000722,21.7,16.8,29.4,17.8,1.7 +20000723,21.0,18.3,28.3,17.8,1.5 +20000724,19.1,17.6,23.9,17.8,1.0 +20000725,17.7,15.8,22.8,15.6,1.3 +20000726,20.2,16.7,27.2,15.6,1.6 +20000727,21.1,18.3,27.2,16.7,1.1 +20000728,22.2,17.9,27.8,17.0,1.3 +20000729,20.8,17.6,28.9,14.4,1.5 +20000730,21.8,18.9,27.8,14.4,2.3 +20000731,21.2,18.8,27.8,17.8,2.0 +20000801,21.8,18.9,27.8,17.8,2.6 +20000802,20.8,19.3,27.2,18.9,2.1 +20000803,21.1,19.2,26.1,18.9,1.3 +20000804,21.3,19.0,26.7,17.8,1.9 +20000805,22.1,17.9,27.8,17.0,2.1 +20000806,22.3,19.2,28.9,17.2,0.7 +20000807,24.4,21.3,30.6,17.2,1.6 +20000808,22.5,20.5,30.6,18.9,1.5 +20000809,24.4,20.9,31.7,18.9,2.2 +20000810,24.7,19.0,31.7,18.9,3.7 +20000811,22.6,17.1,30.0,18.3,4.3 +20000812,20.8,13.8,27.2,15.0,4.3 +20000813,19.0,12.1,26.1,12.8,3.5 +20000814,19.3,13.2,27.2,11.7,2.0 +20000815,20.4,14.4,29.4,11.7,2.6 +20000816,22.7,17.3,32.2,12.2,2.0 +20000817,23.6,19.4,32.2,14.4,2.1 +20000818,23.8,20.4,32.8,18.3,2.2 +20000819,22.0,18.6,32.8,17.8,2.0 +20000820,20.5,17.6,23.3,17.0,2.2 +20000821,17.3,15.4,21.7,15.0,1.5 +20000822,18.1,15.2,25.0,12.8,1.3 +20000823,19.8,16.8,27.8,12.8,0.9 +20000824,21.5,18.8,28.9,14.4,2.0 +20000825,22.2,17.7,28.9,16.7,3.4 +20000826,20.8,17.2,27.2,14.0,1.7 +20000827,20.7,18.6,27.8,14.4,1.5 +20000828,21.5,16.8,28.3,15.0,2.5 +20000829,21.5,17.1,28.3,15.0,1.1 +20000830,21.3,17.0,27.2,15.6,1.6 +20000831,21.2,19.1,27.2,15.6,2.0 +20000901,20.8,19.2,25.0,17.8,0.9 +20000902,21.7,19.7,25.6,17.8,0.9 +20000903,21.5,19.7,26.7,19.0,1.1 +20000904,22.6,19.7,28.9,19.4,2.4 +20000905,18.9,17.3,22.2,16.0,2.1 +20000906,15.1,11.9,22.8,12.8,1.9 +20000907,16.4,12.9,22.2,12.8,1.6 +20000908,18.9,15.9,25.0,13.3,1.0 +20000909,21.2,17.7,27.8,16.7,1.4 +20000910,20.3,16.7,27.8,15.6,1.3 +20000911,21.0,17.2,27.2,15.6,1.0 +20000912,20.9,17.1,27.2,15.6,1.5 +20000913,21.2,17.8,28.3,15.6,1.1 +20000914,21.9,18.4,28.9,15.6,1.2 +20000915,19.7,12.8,28.9,15.6,4.0 +20000916,14.3,5.1,23.3,8.9,4.6 +20000917,11.4,6.0,18.9,3.0,1.3 +20000918,12.4,9.8,20.0,3.3,1.7 +20000919,18.2,13.8,27.2,7.8,2.2 +20000920,18.7,15.0,27.2,10.6,2.9 +20000921,20.6,18.3,27.2,10.6,2.6 +20000922,17.8,15.9,27.2,15.6,1.5 +20000923,19.4,16.8,27.2,15.0,2.5 +20000924,21.2,19.1,27.8,15.6,1.7 +20000925,21.1,20.0,27.8,15.6,2.1 +20000926,13.1,8.9,25.6,9.4,6.5 +20000927,11.7,5.2,21.1,3.3,2.7 +20000928,12.8,7.7,22.2,3.3,2.7 +20000929,12.4,8.4,22.2,5.0,1.6 +20000930,13.6,10.3,20.6,5.6,1.3 +20001001,15.4,12.3,21.7,8.9,1.3 +20001002,15.2,12.1,24.4,8.9,1.1 +20001003,18.1,13.9,27.2,8.9,2.6 +20001004,18.2,14.5,27.2,10.6,1.7 +20001005,17.9,14.4,27.2,10.6,1.3 +20001006,16.7,14.5,26.7,10.6,2.3 +20001007,12.2,6.8,22.8,8.3,6.5 +20001008,5.8,-3.3,9.4,3.0,8.1 +20001009,4.5,-4.2,8.9,1.7,7.2 +20001010,6.8,-4.0,16.1,1.1,5.1 +20001011,9.2,-2.9,20.0,1.1,4.6 +20001012,9.8,0.3,22.2,-1.1,1.6 +20001013,10.4,2.4,25.0,-1.1,0.9 +20001014,11.6,3.0,25.0,-0.6,2.1 +20001015,11.5,3.3,24.4,0.6,1.9 +20001016,12.4,4.7,25.0,1.1,1.1 +20001017,13.7,8.3,25.0,1.7,0.8 +20001018,15.5,10.4,23.9,6.1,2.5 +20001019,14.4,6.7,22.8,6.7,2.5 +20001020,11.6,8.3,21.7,5.0,1.3 +20001021,15.6,11.9,23.9,5.0,0.9 +20001022,16.5,12.4,24.4,10.0,0.6 +20001023,15.5,12.3,24.4,8.9,1.0 +20001024,15.3,11.4,24.4,8.3,2.0 +20001025,15.7,13.1,24.4,8.3,0.7 +20001026,15.6,13.0,21.1,11.7,0.7 +20001027,16.1,11.8,24.0,7.0,2.4 +20001028,17.8,11.1,23.9,7.2,2.6 +20001029,13.8,6.6,23.9,5.0,2.2 +20001030,11.5,-1.7,23.9,1.1,2.2 +20001031,10.6,-3.2,23.9,-1.1,2.1 +20001101,12.0,-1.1,24.4,-1.1,1.5 +20001102,12.7,6.3,25.0,1.1,1.6 +20001103,15.2,11.0,25.0,2.8,1.7 +20001104,13.7,12.0,24.4,6.7,1.5 +20001105,12.6,6.1,18.3,6.1,3.2 +20001106,8.4,4.4,17.8,1.7,1.7 +20001107,12.0,10.7,16.1,1.7,2.3 +20001108,16.6,15.2,22.8,9.4,2.0 +20001109,17.1,16.3,22.8,14.4,4.2 +20001110,9.4,5.8,18.9,5.6,6.7 +20001111,5.9,-1.1,14.4,1.0,7.7 +20001112,5.8,0.6,16.1,-2.2,1.4 +20001113,5.3,2.1,16.1,-2.2,1.2 +20001114,8.2,2.1,14.4,-0.6,6.1 +20001115,3.4,-4.3,10.0,-0.6,5.1 +20001116,2.7,-0.2,9.4,-2.2,0.9 +20001117,6.6,2.8,8.9,-2.2,4.7 +20001118,0.0,-4.9,8.9,-3.3,3.5 +20001119,1.2,-4.1,2.8,-3.3,2.7 +20001120,1.7,-3.1,10.0,-3.3,2.5 +20001121,-1.6,-12.1,10.0,-4.4,5.2 +20001122,-1.7,-12.3,8.3,-7.2,3.7 +20001123,3.5,-2.9,10.6,-7.2,1.6 +20001124,3.8,0.6,10.6,-2.2,1.3 +20001125,4.3,3.5,8.3,0.0,2.9 +20001126,7.6,5.6,11.7,2.8,2.0 +20001127,5.8,0.3,12.2,-1.1,2.9 +20001128,5.1,-3.3,13.9,-2.8,2.3 +20001129,4.8,-0.3,13.9,-2.8,1.3 +20001130,4.2,-6.1,13.3,-0.6,5.2 +20001201,0.9,-4.6,8.9,-5.6,2.2 +20001202,2.1,-1.2,9.4,-5.6,1.3 +20001203,-0.4,-1.8,5.0,-3.9,2.5 +20001204,-2.0,-5.4,5.6,-7.2,1.3 +20001205,-1.2,-4.8,6.1,-7.8,3.3 +20001206,-1.2,-4.7,6.1,-7.8,2.7 +20001207,1.6,-4.6,8.9,-5.0,2.9 +20001208,2.4,-3.8,12.8,-4.4,1.9 +20001209,3.2,-1.6,12.8,-4.4,2.4 +20001210,4.0,-0.7,8.9,-2.8,2.4 +20001211,4.3,2.9,12.2,1.0,2.1 +20001212,4.7,-0.7,12.2,-1.1,5.5 +20001213,-1.9,-8.4,1.1,-4.0,3.4 +20001214,3.2,2.1,11.7,-5.0,3.8 +20001215,5.3,3.0,11.7,-1.1,3.5 +20001216,3.2,2.5,10.6,1.7,3.6 +20001217,3.4,-0.3,13.3,-6.1,6.2 +20001218,-3.6,-10.4,7.2,-9.0,4.0 +20001219,-0.6,-5.7,7.8,-8.9,3.7 +20001220,-7.9,-13.8,2.8,-12.8,6.0 +20001221,-3.1,-9.6,3.3,-12.8,2.3 +20001222,-3.6,-9.6,3.3,-8.9,5.5 +20001223,-5.7,-15.0,2.2,-11.7,3.4 +20001224,0.4,-9.7,7.8,-11.7,3.3 +20001225,-1.7,-12.3,7.8,-6.7,5.8 +20001226,-1.7,-11.2,3.3,-6.7,1.6 +20001227,2.0,-3.2,5.6,-5.0,2.6 +20001228,1.8,-1.2,5.6,-0.6,4.8 +20001229,-2.2,-6.1,4.4,-8.3,1.4 +20001230,-5.2,-10.6,4.4,-8.9,6.0 +20001231,-6.9,-10.6,-2.2,-9.4,6.4 +20010101,-5.8,-8.4,-1.0,-8.9,3.2 +20010102,-4.4,-9.2,-1.1,-8.9,6.8 +20010103,-5.2,-11.4,2.8,-12.2,4.7 +20010104,-2.1,-8.0,3.9,-12.2,4.6 +20010105,0.6,-4.7,11.1,-6.7,3.1 +20010106,2.8,-4.3,11.1,-6.7,4.7 +20010107,2.1,-3.0,11.1,-4.4,1.1 +20010108,3.6,1.2,11.1,-4.4,4.4 +20010109,-2.9,-8.7,0.0,-4.4,7.8 +20010110,-0.1,-12.0,13.3,-6.1,5.1 +20010111,-0.3,-5.7,13.3,-7.2,1.5 +20010112,3.3,2.3,6.0,2.0,2.1 +20010113,3.0,0.7,11.1,-2.2,1.9 +20010114,6.2,2.7,11.1,-2.2,2.0 +20010115,8.2,5.6,15.6,2.8,1.5 +20010116,5.1,0.1,15.6,2.2,4.3 +20010117,2.9,-0.9,10.0,-2.2,1.4 +20010118,5.5,4.7,10.0,-2.2,2.1 +20010119,8.1,8.0,12.0,5.0,2.2 +20010120,4.2,2.8,11.0,-3.0,5.7 +20010121,-2.3,-9.1,11.1,-6.1,6.9 +20010122,-0.6,-7.1,7.2,-6.1,1.8 +20010123,0.3,-7.4,10.6,-7.2,2.4 +20010124,4.2,-5.2,10.6,-7.2,4.7 +20010125,-0.3,-7.0,9.4,-3.9,7.0 +20010126,-1.9,-9.0,8.9,-9.4,2.6 +20010127,2.9,-3.2,8.9,-9.4,4.5 +20010128,1.8,-6.8,12.2,-6.7,2.7 +20010129,4.6,-2.6,14.4,-6.7,2.3 +20010130,10.2,5.9,13.9,8.0,4.9 +20010131,9.8,-1.5,18.3,0.6,4.1 +20010201,5.2,-0.8,18.3,0.6,3.2 +20010202,3.5,-3.5,10.0,-0.6,3.3 +20010203,0.1,-11.7,10.0,-6.7,3.4 +20010204,2.8,-6.3,11.7,-6.7,2.2 +20010205,4.1,-0.5,11.7,-2.8,3.0 +20010206,3.2,-2.9,15.6,-5.6,1.7 +20010207,5.9,0.2,17.8,-5.6,1.3 +20010208,7.7,2.2,20.0,-3.3,1.7 +20010209,10.6,6.0,20.0,-2.2,4.2 +20010210,9.6,5.5,16.7,1.7,5.2 +20010211,1.9,-4.3,13.9,-3.3,4.3 +20010212,2.0,-0.3,8.3,-3.3,2.5 +20010213,5.8,5.4,11.0,3.0,0.9 +20010214,12.3,10.6,19.4,2.8,1.9 +20010215,14.4,12.7,19.4,9.4,2.8 +20010216,17.2,14.2,22.2,12.8,4.2 +20010217,6.6,1.6,22.2,1.7,8.1 +20010218,-0.4,-9.7,10.0,-5.0,5.9 +20010219,3.3,-4.7,12.2,-5.0,2.8 +20010220,6.9,1.2,17.2,-2.8,1.8 +20010221,9.3,6.5,17.2,-0.6,3.1 +20010222,3.4,2.3,13.9,0.6,2.4 +20010223,7.8,1.9,15.6,0.6,4.3 +20010224,5.9,1.3,15.6,-0.6,1.8 +20010225,11.3,10.8,17.2,-1.1,3.2 +20010226,11.6,2.9,17.2,5.0,4.8 +20010227,8.0,-1.9,17.2,0.0,2.1 +20010228,9.8,1.2,13.9,0.0,3.8 +20010301,7.7,-1.8,16.1,2.0,4.5 +20010302,10.6,2.8,17.2,2.2,5.1 +20010303,10.7,9.3,17.2,6.1,1.4 +20010304,9.9,9.2,14.0,8.0,3.7 +20010305,5.0,-1.0,13.9,-0.6,8.4 +20010306,-1.9,-8.8,7.2,-6.1,11.1 +20010307,-0.3,-8.3,4.4,-6.1,8.5 +20010308,3.8,-5.0,13.9,-4.4,2.8 +20010309,7.1,-4.8,13.9,-4.4,5.4 +20010310,4.2,-6.6,13.9,-3.9,3.9 +20010311,6.4,-1.3,18.3,-3.9,2.1 +20010312,8.8,6.1,18.3,-2.8,2.0 +20010313,13.3,6.3,18.3,3.3,3.6 +20010314,12.9,-1.7,18.3,6.7,4.5 +20010315,9.1,4.9,18.3,6.7,1.6 +20010316,9.6,7.4,14.4,6.7,4.4 +20010317,8.4,1.5,14.4,5.0,5.0 +20010318,5.2,-2.8,12.2,1.0,6.3 +20010319,4.2,-6.1,12.8,-3.9,1.8 +20010320,3.4,-3.2,11.7,-3.9,2.9 +20010321,2.8,0.9,7.2,0.0,4.7 +20010322,8.4,1.3,14.4,1.1,8.3 +20010323,9.8,-1.8,17.8,2.2,5.0 +20010324,8.3,-0.1,17.8,-1.1,1.6 +20010325,7.3,-3.5,17.8,-1.1,5.5 +20010326,2.4,-11.2,11.7,-3.3,7.4 +20010327,1.7,-10.7,8.3,-4.4,4.7 +20010328,2.6,-8.6,11.7,-6.1,2.7 +20010329,5.6,1.5,8.3,3.0,2.3 +20010330,10.0,8.3,17.2,3.3,3.3 +20010331,11.2,9.1,17.2,7.2,3.1 +20010401,7.7,2.3,16.1,5.0,4.8 +20010402,7.0,-4.1,15.6,-1.0,3.0 +20010403,11.2,7.1,16.7,7.8,2.2 +20010404,12.9,11.1,17.8,7.2,2.4 +20010405,11.3,8.7,16.1,8.9,3.1 +20010406,14.5,11.4,26.1,6.1,2.1 +20010407,18.7,13.9,27.8,6.1,1.1 +20010408,21.0,14.0,28.3,8.9,2.1 +20010409,21.4,14.7,29.4,11.7,3.0 +20010410,21.9,14.6,30.6,12.2,3.2 +20010411,20.3,13.9,30.6,12.2,2.4 +20010412,20.8,13.9,28.3,12.2,3.6 +20010413,17.7,15.2,27.8,13.9,3.3 +20010414,15.4,8.2,22.8,7.8,2.4 +20010415,14.9,10.2,22.8,7.8,2.1 +20010416,13.7,4.4,22.2,7.8,6.6 +20010417,6.4,-2.4,17.8,0.0,6.4 +20010418,4.9,-5.6,11.7,0.0,7.3 +20010419,6.6,-5.4,16.7,-2.2,1.9 +20010420,11.3,-0.6,21.1,-2.2,3.1 +20010421,16.6,7.0,24.4,2.8,2.8 +20010422,17.9,9.8,25.6,9.4,2.2 +20010423,18.3,8.5,27.0,11.0,2.7 +20010424,16.3,12.2,22.8,12.0,2.7 +20010425,13.0,5.3,23.3,8.3,4.4 +20010426,12.6,2.4,20.0,5.0,2.8 +20010427,12.8,1.3,24.4,1.1,2.3 +20010428,16.4,5.4,26.1,1.1,2.7 +20010429,15.1,4.9,26.1,5.6,2.7 +20010430,13.6,9.0,23.9,6.1,1.3 +20010501,15.7,11.8,24.4,6.1,2.1 +20010502,17.4,11.5,25.0,10.0,1.7 +20010503,17.0,9.8,25.0,7.0,1.4 +20010504,17.7,9.2,27.2,7.2,1.5 +20010505,19.2,11.4,27.2,7.8,1.4 +20010506,18.6,14.1,27.2,10.0,1.4 +20010507,16.1,7.9,22.8,12.8,3.1 +20010508,15.2,10.3,20.0,11.1,2.1 +20010509,16.3,11.1,22.8,11.1,2.7 +20010510,18.4,11.9,25.0,11.1,2.0 +20010511,18.7,12.8,26.7,11.7,1.7 +20010512,18.3,14.0,29.4,11.7,3.5 +20010513,16.7,5.2,23.3,10.6,5.1 +20010514,15.2,2.0,23.9,4.4,3.8 +20010515,18.3,7.3,28.9,4.4,2.8 +20010516,20.3,10.8,30.6,8.3,1.6 +20010517,20.5,14.9,30.6,12.2,2.3 +20010518,21.3,14.7,30.6,15.6,1.6 +20010519,20.3,13.4,30.6,11.1,1.7 +20010520,18.7,16.3,28.9,11.1,2.8 +20010521,20.8,18.1,26.1,15.6,3.7 +20010522,19.7,16.4,23.3,14.0,3.8 +20010523,14.2,6.4,23.9,8.9,3.1 +20010524,14.2,9.0,23.3,6.1,2.7 +20010525,16.2,13.0,23.3,6.1,3.4 +20010526,13.9,8.4,22.2,6.0,2.0 +20010527,16.7,8.4,26.1,6.1,1.8 +20010528,15.4,11.7,26.1,8.9,1.4 +20010529,18.4,12.9,25.0,10.6,3.2 +20010530,18.2,10.4,26.7,10.6,2.8 +20010531,17.1,11.8,26.7,10.6,1.5 +20010601,17.3,15.8,22.2,11.1,1.9 +20010602,18.3,12.8,23.9,13.9,2.7 +20010603,18.6,12.3,26.1,13.3,3.9 +20010604,19.9,15.4,28.3,13.3,1.7 +20010605,23.3,17.9,29.4,13.9,2.6 +20010606,21.9,17.4,29.4,16.7,2.4 +20010607,20.7,17.7,28.3,16.7,1.6 +20010608,20.4,17.3,27.2,17.8,2.6 +20010609,19.8,15.7,27.2,14.4,2.1 +20010610,20.3,15.2,26.1,14.4,2.1 +20010611,21.5,16.6,26.7,16.1,1.6 +20010612,20.9,15.9,27.8,13.9,1.7 +20010613,23.6,17.4,30.0,13.9,3.7 +20010614,22.9,17.4,30.6,16.1,1.6 +20010615,21.7,17.7,30.0,16.0,0.9 +20010616,22.3,17.3,30.0,16.1,5.2 +20010617,22.9,13.3,29.4,16.7,5.3 +20010618,21.5,13.3,29.4,12.8,1.6 +20010619,21.4,14.7,28.9,12.8,1.1 +20010620,21.7,15.7,29.4,13.9,1.7 +20010621,21.3,16.2,29.4,15.0,1.6 +20010622,20.0,16.8,29.4,15.6,1.7 +20010623,19.7,14.3,27.8,15.0,3.4 +20010624,19.6,12.6,25.0,14.4,3.0 +20010625,18.5,13.7,25.0,14.4,1.9 +20010626,18.3,15.6,25.0,13.9,1.2 +20010627,20.3,16.6,28.3,14.4,1.6 +20010628,21.6,16.9,28.3,15.0,2.5 +20010629,22.3,17.1,29.4,15.6,2.0 +20010630,21.9,18.3,29.4,16.1,2.0 +20010701,21.5,18.8,27.2,17.8,1.5 +20010702,22.6,18.7,28.9,17.0,2.4 +20010703,22.2,20.1,29.4,17.2,1.9 +20010704,21.8,18.9,28.3,18.0,1.9 +20010705,21.4,17.4,28.9,16.7,3.2 +20010706,22.6,16.3,28.9,16.7,2.5 +20010707,21.2,16.2,28.3,16.1,1.6 +20010708,22.5,19.0,29.4,16.1,2.2 +20010709,22.3,18.4,29.4,18.3,2.7 +20010710,25.1,19.2,31.1,19.4,3.1 +20010711,24.6,18.6,31.1,18.3,3.3 +20010712,23.1,17.7,31.1,17.2,1.6 +20010713,22.2,16.8,29.4,17.2,2.3 +20010714,19.8,10.9,27.2,11.1,2.7 +20010715,19.8,11.8,26.7,11.1,1.7 +20010716,21.0,15.2,28.3,12.8,1.2 +20010717,23.5,17.4,28.9,15.0,1.8 +20010718,22.9,18.1,28.3,18.0,2.2 +20010719,21.6,18.2,28.9,16.7,1.3 +20010720,21.7,19.2,27.8,16.7,1.4 +20010721,20.6,17.3,24.4,17.8,1.5 +20010722,20.2,16.1,27.8,14.4,1.5 +20010723,23.1,16.5,29.0,17.0,1.2 +20010724,23.4,19.7,29.4,16.7,1.6 +20010725,21.9,20.4,26.7,20.6,2.5 +20010726,23.5,19.8,28.3,20.0,2.9 +20010727,23.1,19.8,28.3,20.0,2.5 +20010728,19.4,17.2,27.8,17.8,2.5 +20010729,21.2,19.7,24.4,17.8,2.2 +20010730,24.1,19.3,30.0,19.4,3.2 +20010731,23.4,19.4,30.0,19.4,2.5 +20010801,22.1,18.5,27.0,18.0,2.1 +20010802,21.9,17.8,27.8,17.8,1.7 +20010803,21.8,18.6,27.8,18.3,1.5 +20010804,21.7,19.2,27.8,19.4,0.9 +20010805,23.3,19.6,27.8,19.4,2.5 +20010806,22.3,19.1,27.8,18.0,1.6 +20010807,23.8,19.7,30.6,18.3,2.1 +20010808,24.9,20.9,30.6,18.9,2.1 +20010809,24.1,20.3,31.1,19.0,1.8 +20010810,24.6,20.6,31.7,19.4,2.8 +20010811,24.8,20.6,30.6,20.0,2.4 +20010812,23.9,20.3,30.0,20.0,3.0 +20010813,22.6,20.3,28.9,20.0,2.1 +20010814,23.8,17.9,28.9,18.9,3.2 +20010815,22.2,17.2,27.2,17.0,2.0 +20010816,22.7,18.3,28.3,17.2,2.7 +20010817,22.2,19.1,28.9,17.2,1.7 +20010818,23.6,18.3,28.9,17.2,2.7 +20010819,22.8,17.9,29.4,17.8,1.9 +20010820,22.7,16.7,29.4,17.8,4.2 +20010821,21.0,12.7,27.2,15.6,3.7 +20010822,19.3,12.9,28.9,11.7,1.3 +20010823,21.3,16.0,30.6,11.7,2.1 +20010824,22.9,18.5,30.6,14.4,3.1 +20010825,22.1,18.2,29.4,17.8,1.6 +20010826,22.5,18.6,29.4,17.8,1.6 +20010827,21.1,18.9,29.4,17.8,1.7 +20010828,21.3,18.7,28.3,17.2,1.9 +20010829,22.9,19.2,28.9,17.2,2.0 +20010830,20.9,18.6,28.9,17.8,1.2 +20010831,20.9,18.8,25.0,18.3,1.0 +20010901,20.4,18.5,23.3,18.0,1.7 +20010902,20.2,18.6,24.4,17.8,1.5 +20010903,20.3,19.0,24.4,17.8,1.4 +20010904,20.9,18.3,27.8,17.8,1.5 +20010905,22.2,18.8,28.9,17.8,1.9 +20010906,21.6,18.3,28.9,16.7,1.5 +20010907,21.4,18.2,27.2,16.7,2.1 +20010908,20.0,16.9,26.7,15.0,1.6 +20010909,20.4,17.7,26.7,15.0,1.4 +20010910,22.3,20.1,26.7,16.1,2.0 +20010911,21.6,17.4,26.7,17.8,2.9 +20010912,18.4,15.2,26.7,12.8,0.9 +20010913,18.4,15.0,26.1,12.8,1.1 +20010914,18.7,16.1,26.1,12.8,2.5 +20010915,15.6,8.3,26.1,8.9,2.0 +20010916,12.8,7.9,22.8,5.6,1.5 +20010917,14.3,10.4,23.9,5.6,0.8 +20010918,16.2,11.6,25.0,7.2,1.2 +20010919,14.9,13.6,25.0,8.9,1.9 +20010920,18.7,17.7,24.0,16.7,2.0 +20010921,19.3,15.2,26.7,14.4,2.1 +20010922,18.2,14.7,26.7,12.8,1.2 +20010923,18.5,15.6,27.8,12.8,1.7 +20010924,17.4,16.0,18.9,15.0,2.9 +20010925,11.7,6.0,18.9,7.8,6.4 +20010926,10.4,3.6,18.3,4.4,3.8 +20010927,12.3,5.3,21.7,4.4,2.8 +20010928,12.2,6.7,21.7,5.6,4.3 +20010929,12.8,6.4,20.0,5.6,4.6 +20010930,11.8,6.4,20.0,5.0,3.9 +20011001,13.2,5.7,21.7,4.4,4.2 +20011002,15.0,8.8,23.9,4.4,2.9 +20011003,14.8,10.0,24.4,6.7,1.3 +20011004,14.9,10.7,23.3,6.0,1.7 +20011005,14.4,11.6,23.9,6.1,2.9 +20011006,14.7,12.2,23.3,6.7,5.6 +20011007,9.2,0.7,18.3,3.9,4.3 +20011008,6.9,0.7,16.1,-0.6,1.7 +20011009,7.1,1.9,16.1,-0.6,1.9 +20011010,9.2,6.0,17.8,-0.6,1.1 +20011011,15.4,12.8,19.4,12.8,1.6 +20011012,16.8,14.7,20.6,12.8,2.5 +20011013,17.7,15.8,21.1,15.6,3.2 +20011014,19.1,15.3,23.3,16.0,5.2 +20011015,14.2,5.2,23.9,7.8,3.1 +20011016,9.6,4.6,16.7,4.0,3.6 +20011017,7.1,-1.2,17.8,3.9,6.8 +20011018,6.4,-0.4,16.1,-1.7,2.0 +20011019,7.9,2.6,20.0,-1.7,1.2 +20011020,11.8,7.1,22.8,-1.7,1.6 +20011021,12.8,9.1,23.9,1.7,1.9 +20011022,14.1,9.6,24.4,4.0,1.7 +20011023,16.0,11.7,26.0,8.9,1.9 +20011024,16.7,12.4,27.2,7.2,2.5 +20011025,17.6,6.1,27.2,7.2,5.6 +20011026,11.2,-7.4,14.4,6.0,5.6 +20011027,4.3,-8.4,14.4,1.1,6.8 +20011028,4.8,-6.9,13.3,-2.2,3.8 +20011029,5.8,-5.7,18.9,-3.3,1.9 +20011030,8.7,-4.1,21.1,-3.3,1.4 +20011031,8.7,-0.6,21.1,-1.7,1.6 +20011101,9.7,4.2,20.0,-1.1,1.5 +20011102,13.8,9.3,23.3,2.2,1.4 +20011103,13.7,9.5,23.3,6.1,2.5 +20011104,14.6,3.8,22.2,6.1,4.5 +20011105,12.7,-0.9,21.1,6.1,4.2 +20011106,10.1,-6.9,19.4,2.8,4.5 +20011107,9.7,-5.3,22.8,-1.7,1.7 +20011108,9.9,-0.9,22.8,-1.7,1.7 +20011109,13.8,1.1,20.6,9.4,4.6 +20011110,9.5,0.1,21.7,-1.1,2.1 +20011111,11.3,1.0,21.7,-1.1,4.6 +20011112,7.2,1.3,18.3,-1.1,1.6 +20011113,4.8,-0.8,13.3,-3.0,1.3 +20011114,5.3,-1.8,17.2,-3.9,1.0 +20011115,7.2,-0.8,19.4,-3.9,1.1 +20011116,8.7,-1.1,21.1,-2.8,2.4 +20011117,11.6,3.6,21.7,-1.7,1.6 +20011118,9.2,5.8,21.7,0.6,1.1 +20011119,8.6,5.2,19.4,0.0,1.1 +20011120,10.2,4.3,19.4,0.0,4.6 +20011121,4.0,-4.3,13.3,-3.9,1.5 +20011122,4.1,-1.1,15.6,-5.0,1.3 +20011123,6.4,5.0,15.6,-5.0,1.0 +20011124,11.7,11.7,13.3,10.0,2.0 +20011125,17.4,14.9,21.7,10.6,4.3 +20011126,11.2,8.1,22.2,3.3,0.8 +20011127,14.9,12.7,22.2,3.3,2.2 +20011128,14.6,12.2,22.2,8.3,1.9 +20011129,16.1,13.1,21.7,8.3,3.9 +20011130,17.5,13.0,20.6,11.1,5.6 +20011201,11.4,5.5,21.1,3.3,2.7 +20011202,11.6,4.6,21.1,3.3,3.3 +20011203,7.5,2.1,18.9,-1.0,0.7 +20011204,8.2,2.3,20.6,-1.0,0.8 +20011205,8.8,4.6,21.1,-0.6,1.6 +20011206,11.8,9.3,21.7,-0.6,1.2 +20011207,12.8,10.5,21.7,5.0,1.9 +20011208,14.4,11.7,20.0,7.2,2.6 +20011209,11.8,7.9,15.6,8.0,5.0 +20011210,6.1,2.3,13.9,3.9,1.8 +20011211,8.1,6.4,15.6,3.9,2.7 +20011212,9.7,8.6,15.6,4.4,2.8 +20011213,11.7,11.2,15.0,8.3,2.4 +20011214,15.1,13.6,19.4,9.4,3.1 +20011215,11.1,4.8,19.4,7.2,4.5 +20011216,7.1,3.2,16.7,2.2,2.3 +20011217,9.7,7.7,12.2,2.2,3.1 +20011218,10.5,5.7,12.8,6.1,5.8 +20011219,5.1,-0.3,15.6,-2.2,2.2 +20011220,4.8,-6.5,15.6,-0.6,7.2 +20011221,2.0,-9.2,9.4,-5.6,3.2 +20011222,1.9,-6.4,11.7,-6.1,1.9 +20011223,5.4,0.8,11.7,-6.1,3.0 +20011224,4.2,-2.9,11.1,-0.6,5.4 +20011225,-0.4,-9.6,5.0,-6.0,3.1 +20011226,-1.9,-10.7,2.2,-6.0,5.6 +20011227,-2.4,-11.7,6.1,-8.9,2.3 +20011228,0.3,-6.9,12.2,-8.9,1.8 +20011229,4.1,-3.4,13.9,-6.7,4.1 +20011230,-2.1,-11.0,3.3,-6.1,6.7 +20011231,-1.8,-12.7,3.3,-6.7,5.4 +20020101,-3.4,-13.5,2.8,-7.8,5.9 +20020102,-3.4,-12.6,-1.0,-6.1,1.9 +20020103,-1.7,-9.4,-0.6,-6.7,5.7 +20020104,-2.1,-12.8,5.6,-5.6,6.9 +20020105,-0.6,-12.7,10.6,-9.0,1.6 +20020106,1.7,-2.7,5.0,0.0,2.8 +20020107,0.8,-3.3,2.0,-2.0,6.3 +20020108,-1.6,-8.5,5.0,-6.0,5.5 +20020109,3.3,-4.1,18.9,-5.6,1.7 +20020110,8.8,3.8,18.9,-5.6,2.7 +20020111,10.2,5.4,18.9,-0.6,4.5 +20020112,1.9,-1.3,12.2,-5.6,1.8 +20020113,4.8,-4.6,11.1,-6.1,4.2 +20020114,0.7,-3.8,11.1,-6.1,2.7 +20020115,5.1,-2.7,10.0,-6.1,5.0 +20020116,3.5,-5.5,10.6,-2.2,3.9 +20020117,4.4,-3.4,14.4,-3.3,3.2 +20020118,6.0,1.8,14.4,-3.3,4.2 +20020119,2.8,-0.5,8.3,0.6,2.6 +20020120,3.5,-0.8,8.9,-1.0,4.4 +20020121,6.9,1.4,15.6,-0.5,3.5 +20020122,4.6,-3.4,15.6,-3.9,2.6 +20020123,7.6,5.6,15.0,-3.9,2.1 +20020124,12.9,12.2,15.6,4.4,2.5 +20020125,8.6,2.6,15.6,3.9,5.4 +20020126,2.9,-4.6,15.6,-5.6,1.5 +20020127,4.2,-1.8,17.2,-5.6,1.4 +20020128,7.4,0.9,22.2,-5.0,0.8 +20020129,11.9,8.4,24.4,-2.2,1.0 +20020130,13.5,10.1,24.4,2.2,1.8 +20020131,16.4,12.4,24.4,3.3,4.0 +20020201,16.5,11.9,22.8,8.9,5.5 +20020202,4.1,-4.8,9.4,0.0,6.4 +20020203,1.9,-3.6,9.4,-1.1,1.5 +20020204,1.9,-6.8,5.0,-2.2,7.6 +20020205,-2.2,-15.9,5.0,-6.1,6.5 +20020206,0.7,-7.6,5.0,-6.1,1.2 +20020207,2.2,1.6,6.0,0.6,2.6 +20020208,5.3,-3.0,15.0,0.6,5.7 +20020209,4.6,-3.0,15.6,-4.4,2.0 +20020210,10.4,4.8,15.0,8.0,4.0 +20020211,5.6,-2.5,15.0,1.1,7.2 +20020212,2.6,-6.0,12.8,-5.0,1.7 +20020213,6.1,-7.6,12.8,-5.0,5.2 +20020214,3.1,-6.9,11.1,-4.4,2.1 +20020215,4.5,-3.0,13.9,-4.4,2.6 +20020216,8.3,-0.9,13.9,-2.2,3.4 +20020217,5.3,-8.0,13.3,1.1,7.5 +20020218,3.3,-10.9,13.3,-3.3,3.7 +20020219,3.9,-9.9,15.6,-6.1,2.4 +20020220,9.8,3.7,11.1,7.2,4.0 +20020221,9.8,2.1,16.7,2.2,3.3 +20020222,6.2,-1.3,16.7,1.7,5.4 +20020223,3.5,-4.0,10.6,0.0,6.0 +20020224,4.0,-5.2,16.7,-6.1,2.1 +20020225,6.7,-2.8,18.3,-6.1,2.1 +20020226,10.6,0.3,18.9,-3.9,3.7 +20020227,-4.4,-12.2,3.3,-9.0,8.0 +20020228,-5.2,-13.4,3.3,-10.0,4.9 +20020301,-0.8,-12.8,9.4,-10.0,2.4 +20020302,2.6,-3.5,5.0,0.0,2.4 +20020303,5.6,4.2,10.0,-1.0,3.9 +20020304,-4.8,-13.1,-0.6,-8.3,7.6 +20020305,-1.3,-13.3,10.0,-8.9,3.4 +20020306,4.0,-6.6,16.1,-8.9,2.1 +20020307,6.9,-4.0,18.3,-6.1,1.2 +20020308,8.4,0.0,19.4,-2.8,1.9 +20020309,14.0,9.9,18.0,11.1,3.7 +20020310,5.9,-6.1,17.8,-1.1,7.3 +20020311,4.7,-12.4,12.8,-3.9,4.3 +20020312,6.7,-0.5,12.8,-3.9,1.7 +20020313,10.7,9.1,18.3,2.8,2.3 +20020314,11.9,8.6,21.1,3.3,3.0 +20020315,16.7,9.1,23.9,12.0,2.5 +20020316,18.4,13.1,24.4,11.1,2.9 +20020317,13.7,12.2,24.4,11.1,2.0 +20020318,11.3,9.3,20.6,7.8,3.1 +20020319,12.8,10.2,20.6,7.8,2.6 +20020320,12.1,10.4,20.6,8.9,3.3 +20020321,12.2,7.6,20.6,8.9,4.3 +20020322,1.4,-8.6,12.2,-6.0,7.8 +20020323,2.3,-10.6,13.9,-5.6,2.8 +20020324,7.4,-4.9,19.4,-4.4,2.0 +20020325,13.1,2.1,22.8,-3.3,3.8 +20020326,14.3,10.7,22.8,3.3,3.0 +20020327,7.9,4.3,15.6,3.0,6.6 +20020328,4.9,-1.2,15.6,-2.2,3.4 +20020329,11.1,3.6,21.1,1.7,3.6 +20020330,14.4,10.9,18.3,11.7,2.4 +20020331,15.0,13.2,20.0,11.0,2.4 +20020401,12.0,5.1,17.8,7.0,5.6 +20020402,12.0,3.8,22.8,1.7,2.3 +20020403,14.3,8.5,25.6,1.7,3.2 +20020404,6.9,-2.4,13.9,2.0,5.9 +20020405,8.1,-4.6,15.0,1.7,5.1 +20020406,7.3,-6.3,14.4,0.0,4.7 +20020407,6.1,-3.7,15.0,-2.2,2.9 +20020408,11.7,6.3,20.0,-2.2,4.2 +20020409,15.2,12.7,17.8,13.0,4.0 +20020410,16.1,12.8,22.2,12.8,2.9 +20020411,16.0,10.3,22.2,12.8,2.6 +20020412,13.5,10.1,20.0,10.6,1.6 +20020413,15.2,12.8,21.1,10.6,2.3 +20020414,16.9,14.2,22.2,12.8,2.9 +20020415,18.6,13.9,26.1,12.0,1.9 +20020416,20.7,13.8,28.9,12.2,1.9 +20020417,19.7,13.9,28.9,12.2,1.5 +20020418,19.9,13.6,28.3,11.7,1.5 +20020419,20.7,14.0,28.3,11.7,1.6 +20020420,21.4,13.9,28.3,12.8,1.7 +20020421,22.0,13.4,29.4,13.9,2.2 +20020422,19.3,8.0,29.4,13.9,3.8 +20020423,13.8,0.4,23.3,7.8,6.4 +20020424,12.4,3.8,20.6,4.4,1.6 +20020425,14.3,9.9,18.9,4.4,4.0 +20020426,11.1,-0.9,17.8,6.7,4.4 +20020427,12.8,7.5,17.8,6.7,2.7 +20020428,18.3,13.9,27.8,9.4,3.7 +20020429,19.1,8.7,27.8,12.8,5.4 +20020430,13.8,6.3,22.2,5.0,2.9 +20020501,17.3,14.7,23.3,13.9,3.1 +20020502,21.9,17.2,28.3,16.7,4.3 +20020503,17.0,14.5,29.4,12.8,4.1 +20020504,11.0,9.9,19.4,8.3,2.6 +20020505,15.6,10.1,24.4,8.3,3.1 +20020506,15.7,10.8,24.4,10.6,3.0 +20020507,18.7,12.9,28.9,10.6,2.1 +20020508,20.3,15.7,28.9,10.0,1.6 +20020509,21.5,16.2,29.4,12.2,2.6 +20020510,19.3,16.9,29.4,15.0,2.6 +20020511,16.7,13.7,25.0,15.0,2.1 +20020512,18.8,15.7,26.7,15.0,3.8 +20020513,20.8,17.4,26.7,15.0,4.2 +20020514,12.2,4.3,25.6,6.7,7.1 +20020515,13.3,5.5,23.3,3.9,1.6 +20020516,15.7,9.4,25.0,3.9,2.6 +20020517,18.6,13.1,26.1,5.6,3.0 +20020518,15.5,11.9,22.8,9.0,6.0 +20020519,9.2,1.9,19.4,3.9,5.8 +20020520,9.7,0.9,16.1,2.2,3.9 +20020521,9.9,2.7,16.1,2.2,3.8 +20020522,10.1,3.3,17.8,2.8,2.3 +20020523,12.1,5.4,23.3,1.7,1.3 +20020524,16.6,9.3,27.8,1.7,2.7 +20020525,18.6,11.9,27.8,5.6,2.3 +20020526,18.7,13.0,27.8,8.3,1.2 +20020527,17.4,16.2,27.8,10.6,1.1 +20020528,18.7,15.3,25.0,14.0,1.2 +20020529,18.6,14.3,25.6,11.7,1.2 +20020530,18.7,15.6,25.6,11.7,0.7 +20020531,21.2,17.6,28.9,16.0,1.5 +20020601,22.6,18.0,30.6,16.1,2.3 +20020602,23.8,18.7,30.6,16.1,2.9 +20020603,24.3,20.6,30.6,16.1,1.7 +20020604,23.9,20.9,31.1,19.0,1.3 +20020605,22.2,19.1,31.7,17.8,2.9 +20020606,21.3,18.9,29.4,17.8,2.2 +20020607,20.6,17.7,26.1,16.7,2.0 +20020608,18.8,13.6,25.6,14.4,2.5 +20020609,18.1,13.2,26.7,9.4,1.1 +20020610,20.3,14.3,27.8,9.4,1.7 +20020611,20.3,12.8,29.4,10.0,0.8 +20020612,21.7,15.6,30.0,10.0,1.7 +20020613,22.5,18.3,30.0,12.2,1.1 +20020614,21.1,18.3,28.9,15.6,2.9 +20020615,19.0,13.2,23.9,13.9,5.0 +20020616,17.9,11.7,25.6,9.4,2.9 +20020617,20.2,12.6,26.7,9.4,3.1 +20020618,20.9,13.3,27.8,12.8,1.4 +20020619,20.8,15.4,27.8,12.8,1.4 +20020620,20.9,15.4,27.8,13.3,1.4 +20020621,20.4,11.8,27.8,12.2,2.0 +20020622,20.1,12.6,27.2,12.2,2.2 +20020623,21.2,18.4,25.6,12.2,1.9 +20020624,22.8,18.8,28.9,17.8,1.3 +20020625,24.1,18.6,30.6,17.8,1.3 +20020626,22.9,20.3,30.6,18.9,1.6 +20020627,21.1,19.5,28.9,18.3,2.0 +20020628,22.2,18.9,27.2,18.3,1.7 +20020629,22.7,19.2,29.4,17.8,2.1 +20020630,22.7,19.6,29.4,17.8,1.2 +20020701,23.7,20.0,31.1,17.8,1.3 +20020702,22.8,19.6,31.1,17.8,2.1 +20020703,22.4,17.8,30.6,17.2,2.8 +20020704,22.3,18.4,30.6,17.2,2.2 +20020705,24.3,18.5,32.2,17.2,2.4 +20020706,25.2,19.0,32.2,17.2,2.0 +20020707,23.0,18.2,30.0,17.2,1.5 +20020708,22.9,17.8,28.9,16.1,1.4 +20020709,23.0,17.9,30.0,16.1,0.8 +20020710,22.4,18.4,30.0,16.7,1.0 +20020711,21.8,19.0,28.3,16.7,2.5 +20020712,18.3,14.4,26.7,15.6,1.8 +20020713,18.3,17.0,21.1,15.6,0.8 +20020714,21.8,19.5,26.7,16.7,1.6 +20020715,22.2,19.7,28.9,18.9,1.4 +20020716,23.4,18.6,30.0,17.2,2.6 +20020717,23.8,17.8,30.0,17.0,2.5 +20020718,24.0,18.8,30.0,17.2,2.3 +20020719,24.1,18.5,30.6,17.8,2.1 +20020720,23.8,18.1,30.6,17.8,3.2 +20020721,23.9,18.7,30.6,17.2,1.3 +20020722,23.8,18.9,30.6,17.2,1.7 +20020723,23.5,19.1,30.0,17.8,1.4 +20020724,23.4,19.2,30.0,17.8,1.9 +20020725,22.4,20.3,29.4,18.3,1.8 +20020726,22.9,20.6,30.0,19.0,0.7 +20020727,24.1,20.3,31.1,18.3,1.6 +20020728,24.4,21.0,31.7,18.3,1.5 +20020729,25.3,20.7,31.7,18.3,1.5 +20020730,25.9,20.1,32.2,18.9,2.5 +20020731,24.9,18.3,32.2,19.4,3.9 +20020801,24.8,17.8,31.7,17.8,2.2 +20020802,22.9,18.9,31.7,17.2,1.1 +20020803,23.1,19.2,30.6,17.2,0.8 +20020804,24.0,17.7,31.1,16.1,1.2 +20020805,24.2,17.2,33.3,15.6,1.6 +20020806,24.6,18.2,33.3,15.6,3.1 +20020807,21.7,11.3,31.7,12.2,2.4 +20020808,19.9,12.3,30.0,10.6,1.3 +20020809,20.7,13.7,30.0,10.6,1.3 +20020810,21.2,15.4,29.4,12.2,1.3 +20020811,22.6,16.6,31.0,15.6,1.2 +20020812,24.2,17.8,31.7,14.4,1.2 +20020813,23.1,15.8,32.8,14.4,1.2 +20020814,23.3,17.2,32.8,14.4,1.8 +20020815,24.0,19.8,31.1,15.6,1.9 +20020816,22.3,20.4,29.4,19.4,1.4 +20020817,22.4,20.2,28.3,19.0,1.0 +20020818,22.4,19.6,30.6,16.7,1.6 +20020819,22.6,19.6,30.6,16.7,2.0 +20020820,23.2,18.5,31.1,17.8,3.6 +20020821,23.6,18.6,31.1,17.8,1.1 +20020822,23.1,19.3,31.7,16.7,1.1 +20020823,24.0,19.9,32.2,16.7,1.2 +20020824,24.0,20.1,32.2,17.2,2.2 +20020825,21.8,19.9,32.2,17.8,0.7 +20020826,19.8,17.9,28.3,15.6,0.9 +20020827,19.6,17.3,26.7,14.4,1.2 +20020828,20.3,16.9,26.1,14.4,1.8 +20020829,20.1,17.2,25.0,17.2,1.9 +20020830,20.8,17.9,25.0,17.8,1.6 +20020831,19.9,17.5,25.0,17.8,1.3 +20020901,20.0,16.8,25.6,17.2,1.5 +20020902,22.1,18.1,28.3,17.2,1.8 +20020903,21.9,18.4,28.0,16.0,1.4 +20020904,23.3,18.7,32.2,16.1,2.0 +20020905,23.1,17.5,32.2,16.7,1.4 +20020906,20.8,15.1,28.9,13.3,1.4 +20020907,20.1,15.3,28.9,12.8,1.2 +20020908,20.6,14.6,28.3,12.8,1.2 +20020909,20.5,11.4,31.7,10.6,1.5 +20020910,20.7,9.9,32.2,10.0,2.3 +20020911,20.3,12.7,32.2,10.0,2.7 +20020912,19.7,12.2,30.0,10.6,1.9 +20020913,17.6,14.5,25.6,12.2,1.0 +20020914,19.5,19.0,22.8,12.8,1.2 +20020915,18.7,17.9,21.7,17.2,1.9 +20020916,22.2,18.7,28.3,17.8,3.5 +20020917,20.5,18.6,28.3,16.1,0.8 +20020918,20.7,19.6,25.6,16.1,1.0 +20020919,21.4,19.4,26.1,18.3,2.0 +20020920,21.1,19.3,26.1,18.3,2.2 +20020921,20.2,19.2,22.8,18.9,1.9 +20020922,19.8,19.1,22.0,19.0,1.3 +20020923,20.1,16.6,23.9,16.7,2.3 +20020924,19.5,15.9,23.9,15.0,1.2 +20020925,15.6,14.2,22.8,12.8,1.1 +20020926,14.8,14.3,17.2,12.8,0.9 +20020927,21.6,19.7,24.4,13.3,5.7 +20020928,20.4,16.0,25.0,16.7,4.0 +20020929,18.4,15.7,25.0,14.4,0.8 +20020930,17.9,15.9,22.2,14.4,1.3 +20021001,20.6,17.0,27.8,15.0,0.8 +20021002,21.0,18.2,28.3,16.7,1.4 +20021003,21.3,18.4,28.3,16.1,1.4 +20021004,20.6,18.1,28.3,16.1,2.9 +20021005,21.1,17.9,27.8,16.7,2.4 +20021006,18.7,15.8,24.4,13.0,1.7 +20021007,18.1,16.1,25.0,13.3,3.1 +20021008,16.1,12.7,17.8,13.0,2.0 +20021009,13.5,11.7,18.3,11.1,2.2 +20021010,15.1,14.5,18.3,11.1,2.3 +20021011,18.2,16.6,23.3,13.9,1.0 +20021012,19.4,16.8,26.1,15.6,1.0 +20021013,18.6,15.8,26.1,15.6,3.1 +20021014,14.1,10.1,23.3,10.0,4.2 +20021015,9.9,8.4,12.8,8.0,1.3 +20021016,11.7,9.8,16.1,8.3,4.3 +20021017,8.4,4.8,16.1,3.9,3.1 +20021018,7.1,3.2,16.1,0.0,0.9 +20021019,10.4,6.9,20.6,0.0,0.8 +20021020,15.1,11.7,22.2,3.3,1.4 +20021021,15.6,14.6,22.2,10.6,1.3 +20021022,13.7,11.6,20.0,10.6,1.8 +20021023,13.1,11.3,20.0,10.0,1.7 +20021024,12.0,11.2,18.9,10.0,1.0 +20021025,11.4,11.1,13.3,10.6,1.6 +20021026,14.1,12.9,18.9,10.6,1.5 +20021027,14.4,13.6,18.9,11.1,1.4 +20021028,14.7,14.6,17.2,12.8,2.0 +20021029,12.2,12.1,15.6,9.0,3.2 +20021030,11.4,9.9,18.0,8.0,3.5 +20021031,7.2,4.4,17.8,5.6,6.1 +20021101,6.2,2.1,11.0,2.8,4.7 +20021102,5.1,-2.6,11.1,0.0,5.4 +20021103,7.1,-2.3,13.3,0.0,2.9 +20021104,9.6,6.4,13.3,4.4,3.4 +20021105,8.5,7.6,13.3,6.1,2.7 +20021106,8.5,6.1,11.1,5.6,5.5 +20021107,6.1,-0.2,12.8,2.8,6.0 +20021108,6.1,1.4,18.0,-2.0,1.9 +20021109,10.2,5.8,18.3,-1.7,3.9 +20021110,15.3,14.3,18.0,12.8,3.2 +20021111,17.6,15.6,20.0,13.9,2.7 +20021112,12.1,10.5,20.0,10.0,3.9 +20021113,7.1,2.4,10.0,4.0,6.0 +20021114,5.1,-0.4,14.4,-2.2,2.3 +20021115,7.4,2.6,14.4,-2.2,2.6 +20021116,9.8,9.6,13.3,1.7,1.2 +20021117,4.7,2.8,11.1,1.7,7.0 +20021118,2.6,-3.8,11.1,-2.2,4.5 +20021119,5.0,2.2,15.0,-2.2,1.7 +20021120,4.8,3.4,15.0,-1.7,1.3 +20021121,9.5,8.3,13.3,7.8,2.7 +20021122,4.8,0.4,8.9,1.0,6.2 +20021123,2.7,-5.5,10.0,-1.1,5.9 +20021124,5.2,-0.4,16.7,-2.2,1.6 +20021125,6.2,1.8,16.7,-2.2,2.0 +20021126,6.3,1.7,15.6,-1.7,2.0 +20021127,3.9,0.9,15.0,-1.1,5.8 +20021128,-1.2,-6.3,6.7,-4.4,4.7 +20021129,0.2,-6.6,11.7,-6.1,2.2 +20021130,6.4,-3.2,13.9,-6.1,3.5 +20021201,-0.7,-10.1,13.9,-5.6,5.6 +20021202,-0.1,-8.6,11.7,-7.2,1.5 +20021203,6.9,-0.3,11.7,3.3,4.6 +20021204,1.2,-1.3,7.8,-3.0,2.7 +20021205,1.4,1.3,5.0,-2.8,2.5 +20021206,0.7,-1.8,4.4,-1.7,5.4 +20021207,-1.7,-6.6,8.9,-8.0,2.0 +20021208,0.3,-6.7,8.9,-7.8,2.0 +20021209,2.6,-3.5,7.2,-6.1,2.7 +20021210,2.8,-0.3,8.3,-1.7,0.6 +20021211,5.6,5.0,8.9,-1.1,2.6 +20021212,5.6,3.4,10.0,3.9,3.9 +20021213,4.7,4.5,10.0,2.2,2.2 +20021214,2.9,0.9,4.0,1.0,4.6 +20021215,2.4,-2.9,9.4,-1.1,6.5 +20021216,6.6,1.6,15.6,-1.1,3.8 +20021217,4.9,1.3,15.6,-0.6,2.1 +20021218,3.7,-2.1,10.0,0.6,2.8 +20021219,5.1,2.6,8.9,2.2,2.8 +20021220,7.9,4.3,10.6,3.3,4.5 +20021221,4.9,-8.4,12.2,-0.6,2.6 +20021222,3.9,-2.9,15.6,-4.4,2.3 +20021223,4.8,-2.5,15.6,-4.4,4.5 +20021224,3.4,2.1,10.6,0.6,2.0 +20021225,1.8,-0.8,5.0,-2.2,6.3 +20021226,-2.3,-6.1,2.2,-4.0,7.3 +20021227,-1.2,-5.8,7.8,-7.2,3.1 +20021228,1.2,-4.3,8.9,-7.2,2.1 +20021229,6.7,-2.9,16.7,-3.9,3.1 +20021230,3.2,-1.2,15.6,-4.0,1.3 +20021231,7.9,4.7,16.1,-3.9,2.6 +20030101,12.2,10.9,15.0,2.2,3.6 +20030102,6.3,5.4,15.0,0.0,1.3 +20030103,5.0,3.7,14.4,-1.1,4.5 +20030104,-1.2,-5.4,3.9,-4.0,6.6 +20030105,2.4,-1.7,12.2,-3.9,1.3 +20030106,2.8,0.9,12.2,-2.2,4.3 +20030107,-0.8,-8.0,6.1,-5.0,6.1 +20030108,4.2,-3.2,15.6,-5.0,2.6 +20030109,10.9,2.2,19.4,-2.2,4.1 +20030110,7.1,0.3,19.4,1.7,5.6 +20030111,-1.2,-9.4,10.6,-6.1,6.4 +20030112,-3.7,-15.9,3.9,-8.9,5.8 +20030113,-1.9,-11.7,5.6,-8.9,3.9 +20030114,2.2,-4.3,11.7,-7.2,2.9 +20030115,-1.9,-8.9,11.7,-7.2,6.1 +20030116,-2.5,-11.4,3.0,-6.1,3.3 +20030117,-3.9,-7.4,-1.0,-7.0,5.5 +20030118,-8.2,-12.7,-1.1,-13.9,4.1 +20030119,-3.9,-9.9,3.3,-13.9,3.7 +20030120,4.1,-2.6,15.6,-8.3,3.3 +20030121,5.1,3.3,15.6,-6.7,2.6 +20030122,2.6,-2.7,7.2,-2.0,4.1 +20030123,-6.8,-13.9,1.7,-13.0,9.0 +20030124,-10.4,-18.2,-1.7,-15.0,8.2 +20030125,-3.9,-15.3,5.6,-15.0,3.9 +20030126,-1.3,-11.9,5.6,-9.4,3.3 +20030127,-4.6,-13.8,5.0,-10.0,6.0 +20030128,1.1,-11.3,13.9,-10.0,1.7 +20030129,6.4,0.4,9.0,2.8,1.7 +20030130,5.1,4.0,8.9,1.7,0.9 +20030131,1.8,0.8,6.7,0.6,1.3 +20030201,3.4,-0.7,7.8,0.6,4.7 +20030202,5.8,-2.7,20.0,-2.2,3.5 +20030203,8.1,-1.2,21.7,-2.8,1.5 +20030204,9.4,2.1,12.8,4.0,6.7 +20030205,1.1,-12.0,13.3,-4.4,5.7 +20030206,1.1,-10.3,6.7,-4.4,1.3 +20030207,-0.2,-1.9,1.1,-2.0,3.4 +20030208,-4.3,-10.9,1.1,-10.6,4.3 +20030209,-1.3,-11.6,6.7,-10.6,4.2 +20030210,2.9,-1.9,8.3,-4.4,3.3 +20030211,2.1,-7.4,10.6,-2.8,4.9 +20030212,6.4,-9.4,9.4,2.0,5.5 +20030213,2.5,-15.6,10.6,-2.8,5.5 +20030214,1.6,-2.3,10.6,-3.3,1.3 +20030215,9.2,6.3,19.4,-3.3,1.7 +20030216,2.2,1.3,14.4,-1.7,4.8 +20030217,-0.5,-1.4,2.0,-2.0,0.3 +20030218,1.7,-1.4,7.8,-2.0,4.5 +20030219,3.6,-0.4,12.8,-2.2,2.3 +20030220,7.4,3.0,12.8,-2.2,2.3 +20030221,5.7,3.9,9.4,1.7,1.3 +20030222,7.9,7.3,16.1,1.7,2.9 +20030223,6.8,1.3,16.1,0.0,6.2 +20030224,6.4,-1.0,17.2,-2.2,3.5 +20030225,4.9,-1.7,17.2,-2.2,4.5 +20030226,3.9,0.4,11.1,0.0,3.0 +20030227,1.6,0.8,5.0,0.0,2.2 +20030228,6.4,4.2,14.4,0.0,2.1 +20030301,6.4,5.1,14.4,2.8,2.9 +20030302,8.9,6.0,15.0,3.9,3.2 +20030303,3.7,-4.7,15.0,-1.1,5.4 +20030304,4.5,-2.1,13.3,-3.3,2.1 +20030305,12.1,6.5,21.7,7.0,2.2 +20030306,12.9,8.9,21.7,7.2,2.7 +20030307,6.1,2.6,17.2,3.9,3.2 +20030308,5.4,-0.4,18.3,-1.7,1.7 +20030309,11.4,2.8,18.9,-1.7,4.1 +20030310,6.8,-5.2,12.8,1.0,6.3 +20030311,6.1,-4.6,16.1,-2.2,1.3 +20030312,9.1,0.8,21.7,-2.2,1.3 +20030313,13.6,5.0,25.0,-1.7,1.7 +20030314,11.7,8.1,16.1,9.0,3.0 +20030315,8.6,2.3,12.2,6.0,1.4 +20030316,10.9,9.1,15.0,6.1,1.7 +20030317,12.3,10.8,15.0,8.9,1.1 +20030318,11.9,11.2,13.3,11.0,0.4 +20030319,12.1,11.0,12.8,11.0,2.8 +20030320,9.3,8.3,12.8,7.2,1.5 +20030321,12.7,9.2,20.6,7.2,3.2 +20030322,12.0,4.8,20.6,7.8,4.1 +20030323,11.0,2.2,17.8,4.4,2.3 +20030324,12.3,0.9,20.0,2.0,2.6 +20030325,12.1,3.1,22.8,1.1,1.5 +20030326,13.9,6.2,22.8,1.1,2.6 +20030327,11.8,4.9,21.1,6.1,2.8 +20030328,13.5,9.0,18.3,8.3,2.8 +20030329,14.2,12.0,19.4,8.9,3.2 +20030330,3.1,0.6,8.9,0.0,8.8 +20030331,1.4,-7.3,7.8,-2.8,5.8 +20030401,6.8,-3.1,21.7,-3.3,1.5 +20030402,14.2,3.0,24.4,3.9,2.3 +20030403,15.1,4.4,25.6,2.8,2.7 +20030404,15.2,8.7,25.6,3.3,2.5 +20030405,16.4,10.8,22.8,6.1,3.2 +20030406,12.8,3.0,22.8,3.9,3.7 +20030407,9.6,8.9,19.4,3.9,3.1 +20030408,7.1,7.0,11.1,5.6,2.5 +20030409,5.8,5.1,7.8,4.0,2.1 +20030410,4.5,3.3,8.3,0.0,2.6 +20030411,5.5,3.8,10.0,0.0,4.6 +20030412,12.1,3.1,20.0,3.3,5.7 +20030413,12.6,3.5,22.8,2.8,1.9 +20030414,13.8,4.1,23.9,2.8,2.0 +20030415,16.4,7.8,24.4,3.3,2.0 +20030416,16.3,8.4,24.4,7.8,2.5 +20030417,15.3,10.0,23.3,7.8,2.4 +20030418,11.2,10.2,14.0,8.0,2.1 +20030419,11.8,9.9,17.8,8.3,2.1 +20030420,13.9,12.1,20.0,8.9,3.4 +20030421,15.3,13.7,21.7,10.6,2.7 +20030422,13.0,7.4,21.7,9.4,4.5 +20030423,10.8,-0.1,18.9,5.0,7.2 +20030424,10.2,1.9,20.0,0.6,2.1 +20030425,11.8,8.9,15.0,10.0,3.0 +20030426,14.4,11.1,20.6,10.0,3.5 +20030427,15.7,8.7,23.9,8.3,3.2 +20030428,15.8,10.4,24.4,7.2,1.4 +20030429,17.7,12.2,27.2,7.2,1.7 +20030430,17.3,12.6,27.2,9.4,2.0 +20030501,16.4,13.9,26.7,10.0,1.4 +20030502,16.2,13.6,25.6,11.7,2.7 +20030503,16.1,12.7,25.6,10.0,2.6 +20030504,14.6,11.0,22.8,7.2,1.7 +20030505,13.5,12.4,22.2,7.2,3.3 +20030506,15.3,14.6,19.4,11.1,1.7 +20030507,16.7,14.8,23.3,13.3,1.5 +20030508,20.4,15.2,28.9,11.7,2.0 +20030509,21.8,16.4,30.6,11.7,1.3 +20030510,22.3,16.8,29.0,14.0,2.2 +20030511,21.3,16.1,29.4,14.4,1.5 +20030512,17.3,3.7,26.1,10.6,4.7 +20030513,16.3,2.9,22.2,10.6,5.3 +20030514,15.9,7.6,22.2,10.6,3.0 +20030515,16.4,12.9,22.8,10.6,2.5 +20030516,17.7,14.9,25.0,12.2,0.7 +20030517,17.0,15.6,25.0,13.9,1.0 +20030518,12.8,12.1,18.3,11.7,2.9 +20030519,12.7,11.2,15.6,11.0,2.5 +20030520,14.4,11.2,20.6,11.1,1.4 +20030521,16.6,14.6,20.6,11.7,0.6 +20030522,15.3,14.0,16.1,14.0,1.1 +20030523,15.6,13.2,21.0,13.0,1.3 +20030524,17.2,13.8,22.2,13.3,1.0 +20030525,16.4,11.8,22.8,10.0,1.5 +20030526,16.9,12.8,23.3,10.0,3.2 +20030527,17.9,10.8,23.3,12.8,3.9 +20030528,15.7,7.7,22.2,7.8,3.5 +20030529,15.7,10.5,22.2,7.8,2.2 +20030530,16.2,11.0,22.8,11.1,2.8 +20030531,17.9,12.1,27.2,10.6,2.1 +20030601,16.6,7.3,27.2,10.6,7.1 +20030602,14.9,7.8,21.7,6.7,3.1 +20030603,17.2,14.0,22.2,6.7,2.6 +20030604,19.7,16.7,26.7,13.3,2.6 +20030605,16.7,9.6,26.7,11.7,6.2 +20030606,16.5,11.3,24.4,10.0,1.9 +20030607,19.3,17.8,24.4,10.0,1.9 +20030608,21.4,18.5,27.2,17.8,1.2 +20030609,20.3,14.4,27.2,13.3,3.0 +20030610,19.2,12.3,26.7,11.1,1.7 +20030611,21.3,16.9,28.3,11.1,1.9 +20030612,21.2,17.9,28.3,15.0,2.7 +20030613,21.7,18.4,27.2,16.1,2.7 +20030614,20.9,18.2,27.2,16.7,1.7 +20030615,22.1,19.2,27.2,16.7,1.1 +20030616,20.6,18.9,27.2,18.3,0.6 +20030617,19.8,18.1,26.1,17.8,2.0 +20030618,19.7,18.4,23.3,17.8,0.8 +20030619,21.0,17.6,26.1,17.2,2.7 +20030620,20.9,14.9,26.1,17.2,3.9 +20030621,17.4,8.0,25.6,10.6,5.6 +20030622,17.9,10.4,25.6,10.6,3.5 +20030623,19.6,12.3,27.8,10.6,2.3 +20030624,20.4,13.8,28.3,10.6,1.1 +20030625,22.2,16.1,30.0,11.7,0.3 +20030626,22.9,17.8,30.0,14.4,1.1 +20030627,20.7,17.7,29.4,16.1,1.3 +20030628,19.5,17.6,26.1,16.7,1.5 +20030629,21.1,17.4,27.8,16.1,2.0 +20030630,21.0,18.8,28.3,15.6,1.2 +20030701,18.7,17.8,25.6,17.2,1.0 +20030702,18.2,17.1,21.7,16.7,1.2 +20030703,20.8,16.3,27.8,15.6,3.1 +20030704,22.1,17.6,29.4,15.0,1.1 +20030705,22.1,19.3,29.4,15.0,1.1 +20030706,22.1,19.8,29.4,17.8,1.6 +20030707,22.5,19.8,28.3,18.9,1.3 +20030708,24.1,19.9,30.6,18.9,1.7 +20030709,22.7,19.9,30.6,18.3,0.9 +20030710,21.6,19.6,26.7,18.0,1.6 +20030711,22.0,18.2,27.2,16.7,2.2 +20030712,20.3,15.8,27.8,12.8,1.3 +20030713,20.3,17.8,27.8,12.8,1.9 +20030714,19.3,17.3,26.1,15.6,1.2 +20030715,21.6,18.4,27.8,15.6,1.2 +20030716,21.9,19.2,28.9,17.0,0.7 +20030717,23.1,19.6,30.0,17.2,2.1 +20030718,22.1,18.0,28.3,17.0,1.0 +20030719,21.9,19.1,28.9,17.2,1.0 +20030720,22.4,17.9,29.4,17.0,1.3 +20030721,22.3,19.6,29.4,17.2,1.2 +20030722,19.8,18.1,28.9,16.7,1.1 +20030723,20.1,17.1,26.7,16.7,1.1 +20030724,19.0,13.4,25.0,13.0,3.4 +20030725,19.9,14.4,26.1,13.0,1.0 +20030726,21.1,16.7,27.8,13.3,1.2 +20030727,22.2,18.3,29.4,15.0,1.6 +20030728,22.9,18.2,29.4,15.6,1.3 +20030729,22.3,19.3,29.4,15.6,2.2 +20030730,22.2,20.0,27.8,18.3,1.4 +20030731,21.8,20.1,26.1,19.0,1.7 +20030801,21.8,20.1,27.2,18.9,0.9 +20030802,21.7,19.2,28.3,17.8,1.6 +20030803,21.4,19.3,28.3,17.8,1.3 +20030804,21.7,18.7,26.7,18.0,1.4 +20030805,19.9,17.4,27.8,15.6,1.1 +20030806,22.1,17.9,28.3,15.6,1.5 +20030807,21.1,18.7,28.3,16.7,1.4 +20030808,20.6,18.3,26.7,17.2,1.8 +20030809,20.9,18.3,27.2,17.2,1.6 +20030810,20.7,18.1,27.2,17.8,0.6 +20030811,20.1,17.3,26.1,16.7,1.6 +20030812,20.3,17.3,26.1,15.6,1.2 +20030813,22.4,19.2,27.8,15.6,1.3 +20030814,22.6,19.5,29.4,18.0,1.0 +20030815,23.7,20.5,29.4,18.3,0.9 +20030816,23.9,20.8,29.4,20.0,2.5 +20030817,23.4,18.9,30.0,17.8,2.4 +20030818,22.5,18.0,28.9,17.0,2.2 +20030819,21.4,17.9,27.0,16.0,1.7 +20030820,22.8,19.7,28.9,16.1,0.7 +20030821,22.5,19.7,28.9,18.9,1.3 +20030822,22.5,19.3,29.4,18.9,1.9 +20030823,23.5,19.0,30.6,17.8,2.0 +20030824,21.7,18.2,26.1,17.0,1.3 +20030825,23.3,18.1,29.4,17.2,0.8 +20030826,23.8,18.8,31.7,17.8,0.9 +20030827,24.3,20.2,31.7,17.8,1.7 +20030828,22.9,20.0,31.7,17.8,1.1 +20030829,22.6,19.3,30.6,18.3,1.4 +20030830,22.8,20.1,30.6,18.3,1.2 +20030831,21.4,19.9,27.0,19.0,0.8 +20030901,22.7,19.3,27.8,18.9,1.8 +20030902,21.3,18.3,28.3,17.2,0.8 +20030903,22.6,19.6,28.3,17.2,1.7 +20030904,22.2,19.9,27.8,19.4,1.9 +20030905,20.4,16.2,26.7,15.6,1.9 +20030906,19.7,15.4,26.7,15.6,1.5 +20030907,18.6,14.5,22.8,15.6,1.3 +20030908,18.2,14.1,23.9,13.9,1.2 +20030909,18.9,14.7,23.9,13.9,0.9 +20030910,18.0,13.8,23.9,13.9,0.5 +20030911,16.8,13.4,23.3,11.0,0.8 +20030912,17.1,11.6,24.4,10.0,0.7 +20030913,18.3,13.6,27.8,10.0,1.1 +20030914,19.4,16.0,27.8,11.7,1.3 +20030915,19.9,17.1,26.7,12.8,2.3 +20030916,18.6,13.2,25.0,13.9,3.1 +20030917,16.4,11.7,25.0,9.4,0.6 +20030918,15.9,11.0,23.9,9.4,3.7 +20030919,20.3,12.0,26.1,9.4,3.9 +20030920,18.3,13.3,26.7,10.6,0.8 +20030921,17.3,13.6,26.7,10.6,0.7 +20030922,18.8,16.9,25.0,10.6,3.3 +20030923,18.2,13.2,23.3,13.9,4.2 +20030924,14.6,11.1,23.3,7.8,1.2 +20030925,16.4,13.0,25.6,7.8,0.4 +20030926,17.7,15.0,25.6,10.6,1.2 +20030927,18.1,15.1,25.6,12.8,2.0 +20030928,15.6,10.4,25.6,11.7,4.0 +20030929,10.2,3.2,20.0,5.0,1.9 +20030930,9.9,4.7,18.3,3.0,2.1 +20031001,11.7,7.3,18.3,3.3,3.9 +20031002,10.6,2.4,17.2,6.7,5.8 +20031003,6.6,0.9,15.0,0.0,2.0 +20031004,10.1,5.1,21.1,0.0,2.4 +20031005,12.9,7.5,21.1,2.2,1.7 +20031006,14.3,11.6,20.0,6.1,0.9 +20031007,13.9,11.5,21.1,8.0,1.2 +20031008,14.7,13.3,21.7,8.3,1.5 +20031009,15.9,14.6,17.8,12.8,0.6 +20031010,16.6,13.8,18.9,15.0,0.8 +20031011,15.8,12.4,21.1,13.3,1.0 +20031012,15.1,12.1,22.8,9.0,2.5 +20031013,15.7,12.7,23.3,9.4,1.6 +20031014,17.7,15.2,23.3,9.4,2.7 +20031015,12.5,2.7,16.1,9.0,7.2 +20031016,9.4,3.0,19.4,1.1,2.2 +20031017,9.8,5.3,19.4,1.1,1.7 +20031018,12.1,5.3,19.4,1.7,3.7 +20031019,11.7,4.9,22.2,2.8,2.4 +20031020,12.9,7.4,22.2,2.8,1.3 +20031021,14.3,8.8,26.1,4.4,2.1 +20031022,15.3,3.4,26.1,5.6,5.8 +20031023,9.9,2.2,18.3,3.3,3.1 +20031024,8.6,3.9,16.7,1.0,2.1 +20031025,9.8,6.1,19.4,1.1,1.8 +20031026,12.7,11.7,15.0,10.6,1.1 +20031027,13.0,12.2,15.6,7.0,3.7 +20031028,6.6,5.3,16.7,3.3,2.2 +20031029,10.3,4.7,17.2,3.3,2.7 +20031030,10.5,3.4,23.9,1.7,2.1 +20031031,13.2,6.8,24.4,1.7,1.2 +20031101,13.6,7.1,25.0,3.9,1.6 +20031102,14.0,7.7,26.7,3.9,0.4 +20031103,14.4,9.3,26.7,4.4,0.9 +20031104,14.1,12.1,25.0,5.0,1.2 +20031105,19.6,18.4,22.2,17.8,2.3 +20031106,19.7,17.9,25.0,17.2,1.8 +20031107,17.3,13.4,25.0,13.9,4.3 +20031108,12.9,8.3,21.7,10.0,3.8 +20031109,7.6,1.0,16.1,3.9,1.5 +20031110,5.3,-0.4,15.0,-1.1,1.4 +20031111,9.8,4.1,21.7,-1.1,1.3 +20031112,15.2,9.5,24.4,2.2,1.9 +20031113,10.9,-1.7,24.4,3.9,7.8 +20031114,3.6,-12.3,14.4,-1.1,7.8 +20031115,6.5,-6.6,10.6,-1.1,1.6 +20031116,11.7,4.1,20.0,5.0,2.3 +20031117,15.1,12.5,21.7,6.7,1.8 +20031118,15.4,14.1,21.7,11.1,3.8 +20031119,15.8,13.5,18.9,10.0,5.2 +20031120,10.9,0.1,18.9,6.7,6.7 +20031121,8.8,1.1,20.0,-0.6,1.1 +20031122,9.1,2.1,22.2,-0.6,1.1 +20031123,9.3,3.3,22.2,-0.6,1.8 +20031124,11.8,9.2,21.1,0.0,5.6 +20031125,1.7,-6.8,15.0,-5.0,4.6 +20031126,3.8,-2.3,12.8,-5.0,1.7 +20031127,8.4,5.1,13.3,-1.7,2.5 +20031128,10.8,9.5,16.0,1.7,5.8 +20031129,-1.2,-7.2,1.7,-3.9,6.0 +20031130,2.6,-8.0,14.4,-5.6,2.8 +20031201,6.4,-4.9,14.4,-5.6,4.1 +20031202,3.5,-12.3,13.9,-2.8,4.8 +20031203,1.3,-8.9,8.9,-2.8,2.6 +20031204,-0.4,-3.0,1.1,-3.0,2.0 +20031205,1.3,1.3,3.3,-2.8,1.3 +20031206,0.8,-0.9,3.3,0.0,6.5 +20031207,1.3,-4.6,6.7,-2.2,5.7 +20031208,1.6,-3.1,11.7,-5.0,1.4 +20031209,2.9,-0.9,12.8,-5.0,1.1 +20031210,7.8,6.4,11.0,5.6,3.7 +20031211,1.8,-0.8,7.2,-1.0,7.6 +20031212,1.3,-5.3,8.3,-2.2,5.4 +20031213,0.0,-4.7,8.3,-3.9,1.6 +20031214,0.9,0.9,5.0,-3.9,3.4 +20031215,3.3,-0.8,11.7,-1.7,4.4 +20031216,3.2,0.3,11.7,-2.2,2.9 +20031217,3.6,-0.3,11.1,-2.2,5.7 +20031218,-0.6,-6.5,7.2,-5.6,2.5 +20031219,-0.1,-3.6,6.1,-5.6,4.6 +20031220,-4.4,-9.2,2.8,-6.7,5.9 +20031221,-3.3,-9.8,9.4,-10.0,2.1 +20031222,2.1,-7.1,13.3,-5.0,1.9 +20031223,4.8,1.0,13.9,-5.6,2.9 +20031224,5.5,2.9,11.7,-3.3,4.5 +20031225,-1.4,-7.8,10.0,-4.4,6.0 +20031226,0.9,-9.3,9.4,-5.0,4.7 +20031227,2.9,-8.7,16.1,-6.7,1.4 +20031228,3.2,-4.5,16.1,-6.7,1.1 +20031229,5.4,-0.3,15.6,-5.0,2.3 +20031230,6.5,0.4,12.8,-1.1,6.0 +20031231,1.6,-6.4,13.9,-6.7,1.3 +20040101,4.7,-4.3,17.2,-6.7,1.2 +20040102,9.7,0.6,17.0,4.0,1.3 +20040103,9.4,6.4,22.8,0.6,1.5 +20040104,15.6,13.2,21.0,12.8,4.2 +20040105,14.3,13.2,21.1,6.7,5.0 +20040106,0.1,-3.9,6.7,-4.0,8.2 +20040107,-6.9,-17.0,-2.0,-11.0,5.4 +20040108,-2.4,-13.1,3.3,-10.6,1.7 +20040109,-0.1,-4.0,2.0,-2.0,2.2 +20040110,-1.7,-4.2,1.7,-4.4,5.6 +20040111,-3.6,-7.1,6.7,-10.0,2.5 +20040112,2.8,-1.2,15.6,-10.0,3.7 +20040113,6.9,1.3,15.6,-5.0,4.9 +20040114,5.4,0.4,14.4,-3.9,2.9 +20040115,4.9,-0.6,13.9,-3.9,6.7 +20040116,2.1,-6.6,11.1,-2.8,4.2 +20040117,2.2,-1.1,11.1,-4.4,1.9 +20040118,7.4,6.5,11.7,-4.4,4.5 +20040119,-1.0,-6.2,4.4,-3.0,7.2 +20040120,-4.1,-12.7,3.9,-8.3,6.1 +20040121,-1.6,-10.4,7.8,-8.3,2.4 +20040122,1.7,-8.1,9.0,-2.0,4.2 +20040123,-0.7,-15.3,10.6,-7.2,6.0 +20040124,3.4,-6.1,14.4,-7.2,3.4 +20040125,1.2,-2.1,14.4,-6.7,3.2 +20040126,-3.5,-4.3,5.6,-4.4,3.0 +20040127,-0.6,-2.0,4.4,-4.4,4.3 +20040128,-4.1,-11.1,4.4,-7.2,7.6 +20040129,-1.1,-11.6,6.7,-7.2,4.1 +20040130,1.1,-5.8,7.2,-7.2,3.3 +20040131,-2.3,-13.1,7.2,-9.4,4.9 +20040201,-0.7,-9.5,6.7,-9.4,2.0 +20040202,-0.6,-7.5,6.7,-7.2,2.4 +20040203,2.5,0.2,8.9,-3.3,3.0 +20040204,1.6,-3.2,8.9,-2.2,4.3 +20040205,-0.5,-1.8,7.8,-3.3,2.1 +20040206,1.9,1.9,9.0,0.0,0.5 +20040207,1.5,-2.7,8.9,-2.2,5.6 +20040208,-1.3,-8.6,6.7,-4.4,5.2 +20040209,2.2,-4.5,9.4,-4.4,3.2 +20040210,4.1,0.2,9.4,-3.3,2.3 +20040211,3.8,-3.9,8.9,-1.1,4.5 +20040212,2.1,-0.8,7.2,0.0,1.5 +20040213,4.4,-1.9,12.0,0.6,4.0 +20040214,5.4,-1.7,11.7,-0.5,1.7 +20040215,2.9,0.9,7.8,0.0,1.0 +20040216,0.2,-1.6,5.0,-1.1,1.5 +20040217,-0.8,-4.4,4.0,-3.3,2.6 +20040218,3.3,-4.5,9.0,0.0,6.1 +20040219,5.4,-6.6,16.7,-3.3,3.0 +20040220,6.4,-1.4,17.8,-3.3,2.2 +20040221,9.9,3.2,12.0,6.0,5.1 +20040222,5.4,-2.2,15.6,-1.1,4.1 +20040223,4.3,-0.8,15.6,-2.2,1.7 +20040224,5.8,4.7,10.0,-2.2,2.4 +20040225,5.8,-1.1,10.0,2.8,3.9 +20040226,0.9,-6.8,7.8,-3.3,2.3 +20040227,1.6,0.7,8.9,-3.3,2.9 +20040228,4.4,-3.3,15.6,-5.0,2.2 +20040229,4.8,-4.7,17.2,-5.0,1.6 +20040301,7.2,2.8,17.2,-5.0,2.5 +20040302,13.4,11.8,16.0,12.0,4.0 +20040303,13.1,11.4,20.0,8.9,2.9 +20040304,15.2,10.8,23.3,8.9,2.5 +20040305,17.1,13.1,23.3,8.9,5.2 +20040306,17.4,12.4,20.6,13.9,5.2 +20040307,11.6,4.7,18.0,3.0,3.1 +20040308,5.7,-6.2,8.0,2.8,8.1 +20040309,1.4,-3.1,9.4,-3.3,2.8 +20040310,3.4,-2.2,8.9,-3.3,5.4 +20040311,3.9,-3.6,17.2,-6.1,1.3 +20040312,9.7,-3.3,14.0,3.9,5.1 +20040313,6.6,-5.9,15.0,-1.0,5.0 +20040314,8.9,1.4,17.2,-0.6,2.8 +20040315,11.7,9.8,17.2,3.9,1.8 +20040316,13.4,9.8,20.6,8.9,2.8 +20040317,7.5,0.4,12.2,3.9,4.6 +20040318,5.4,2.2,13.3,0.0,1.5 +20040319,10.4,2.1,18.3,0.0,3.2 +20040320,9.5,2.6,21.0,0.6,2.8 +20040321,10.1,2.7,20.6,0.0,5.8 +20040322,0.0,-10.9,4.0,-3.3,7.8 +20040323,1.0,-11.0,12.0,-7.2,1.8 +20040324,8.0,-4.9,17.2,2.0,2.8 +20040325,10.7,2.8,21.0,1.0,2.1 +20040326,13.4,7.9,22.2,0.6,2.3 +20040327,14.2,8.5,23.9,3.3,1.2 +20040328,16.6,10.7,24.4,4.4,1.7 +20040329,15.1,9.1,24.4,8.9,3.5 +20040330,10.8,6.2,20.6,7.8,3.7 +20040331,6.1,4.1,9.0,3.0,2.9 +20040401,5.2,0.4,10.0,2.8,6.1 +20040402,6.2,-1.1,10.0,2.8,6.0 +20040403,8.3,2.3,16.7,3.3,5.6 +20040404,8.9,-3.7,13.3,4.0,7.4 +20040405,5.9,-9.5,12.8,1.7,7.2 +20040406,9.7,-7.8,19.0,1.0,3.1 +20040407,12.9,-0.6,23.9,0.6,1.6 +20040408,14.7,3.9,21.0,9.0,1.8 +20040409,15.1,1.1,22.2,8.9,4.3 +20040410,12.9,1.0,22.2,2.8,2.6 +20040411,13.5,6.8,20.6,2.8,1.6 +20040412,9.6,8.4,13.0,7.0,2.3 +20040413,10.2,7.8,16.7,7.2,3.9 +20040414,4.8,0.2,9.0,1.0,7.6 +20040415,11.1,-1.4,19.4,1.1,6.1 +20040416,11.6,2.2,21.7,1.7,1.8 +20040417,14.5,4.7,25.0,1.7,1.1 +20040418,18.0,6.7,27.8,3.3,1.9 +20040419,18.1,7.1,27.8,6.1,1.4 +20040420,18.3,6.4,27.8,7.2,2.0 +20040421,17.0,5.2,24.0,8.0,2.9 +20040422,18.9,7.9,24.4,8.3,4.6 +20040423,18.6,9.7,27.2,10.0,1.5 +20040424,20.7,13.4,27.2,10.0,2.6 +20040425,19.3,12.9,26.7,12.8,2.9 +20040426,16.2,13.0,25.6,11.7,3.2 +20040427,11.4,3.6,18.3,4.4,3.8 +20040428,11.7,-2.4,20.6,1.7,3.7 +20040429,13.1,5.7,22.2,1.7,2.4 +20040430,15.1,11.6,22.2,3.9,2.3 +20040501,16.6,14.9,21.0,14.0,1.3 +20040502,17.1,15.4,20.6,11.7,3.4 +20040503,9.3,3.9,12.0,6.0,6.4 +20040504,8.7,0.9,18.9,0.6,3.7 +20040505,13.1,6.9,24.4,0.6,1.6 +20040506,18.1,11.4,27.8,4.4,1.4 +20040507,19.6,10.6,28.3,8.9,3.2 +20040508,19.7,11.5,28.3,9.4,2.4 +20040509,18.3,13.7,27.2,10.6,1.9 +20040510,18.6,13.2,27.0,11.0,1.6 +20040511,18.6,12.2,26.7,10.0,2.1 +20040512,19.1,14.9,26.7,10.0,2.0 +20040513,18.2,16.8,24.4,13.3,1.8 +20040514,19.3,16.3,24.0,16.0,2.7 +20040515,19.4,14.0,25.0,15.0,2.4 +20040516,18.7,14.1,25.0,14.0,1.2 +20040517,18.2,15.4,24.0,14.0,1.2 +20040518,18.7,16.3,24.4,14.4,2.0 +20040519,19.1,15.9,26.1,13.9,1.4 +20040520,20.5,17.3,27.2,13.9,1.5 +20040521,21.6,17.4,29.4,15.6,1.2 +20040522,21.1,17.7,29.4,15.6,0.9 +20040523,20.1,16.8,27.2,15.0,2.0 +20040524,21.3,16.4,29.4,15.0,1.3 +20040525,22.2,16.2,30.6,13.9,1.4 +20040526,22.9,17.3,30.6,13.9,1.1 +20040527,20.3,15.6,29.0,15.0,3.5 +20040528,20.4,15.6,28.9,14.4,3.1 +20040529,19.8,15.8,27.8,13.3,1.9 +20040530,20.8,18.4,27.8,13.3,0.9 +20040531,21.2,17.6,26.0,17.0,1.9 +20040601,18.6,10.4,26.7,11.1,2.4 +20040602,18.4,11.8,27.8,9.4,2.2 +20040603,19.9,13.2,27.8,9.4,1.3 +20040604,18.6,15.1,27.8,12.8,2.5 +20040605,18.1,11.8,23.9,11.7,3.2 +20040606,18.3,12.4,24.0,12.0,1.4 +20040607,20.1,16.4,25.0,12.2,0.8 +20040608,20.4,17.4,25.0,16.1,0.5 +20040609,20.8,16.9,27.0,17.0,1.7 +20040610,21.7,17.7,29.4,16.7,1.6 +20040611,23.7,18.1,30.6,16.7,1.8 +20040612,23.6,18.6,30.6,17.2,1.6 +20040613,19.7,18.4,30.0,17.8,2.8 +20040614,21.7,18.9,25.6,18.9,3.1 +20040615,21.8,20.1,25.6,19.4,1.4 +20040616,22.4,20.0,28.3,18.9,0.9 +20040617,23.3,20.3,30.0,18.9,2.4 +20040618,22.7,19.4,29.0,18.0,2.4 +20040619,23.9,18.7,30.0,17.8,3.5 +20040620,22.6,16.4,29.4,17.2,2.9 +20040621,20.2,17.8,23.9,17.0,1.6 +20040622,21.4,18.4,27.2,17.2,2.5 +20040623,21.4,18.4,27.2,17.8,2.5 +20040624,21.4,18.0,26.1,17.8,2.3 +20040625,21.2,19.0,26.1,18.9,1.5 +20040626,21.2,17.0,26.1,17.8,3.4 +20040627,19.7,16.9,26.1,16.7,2.2 +20040628,19.5,17.4,24.0,17.0,1.3 +20040629,20.1,16.3,26.1,15.0,2.1 +20040630,19.7,17.6,26.1,15.0,0.9 +20040701,20.8,18.2,26.1,17.2,1.5 +20040702,23.1,18.8,26.7,17.8,1.5 +20040703,21.4,18.9,26.7,18.9,1.3 +20040704,22.3,19.6,28.9,18.9,0.9 +20040705,23.5,18.4,31.0,17.0,2.2 +20040706,22.3,17.1,30.6,16.7,3.4 +20040707,22.7,17.9,29.4,16.7,2.2 +20040708,22.5,17.7,29.4,16.7,2.8 +20040709,22.5,17.2,30.0,16.0,1.3 +20040710,23.0,18.8,31.0,17.0,2.0 +20040711,22.9,19.8,30.6,17.2,2.1 +20040712,23.2,19.9,30.0,19.4,2.4 +20040713,23.8,18.9,30.0,19.4,2.7 +20040714,24.2,17.7,31.1,18.9,2.7 +20040715,22.8,14.2,31.1,17.2,4.7 +20040716,20.0,13.2,26.0,13.0,2.1 +20040717,19.5,16.5,26.7,13.3,0.5 +20040718,21.3,17.1,27.0,18.0,2.5 +20040719,20.8,15.2,27.2,14.4,2.9 +20040720,21.2,14.7,28.3,14.4,2.2 +20040721,21.7,15.7,29.0,14.0,1.3 +20040722,23.0,18.3,28.9,13.9,2.1 +20040723,23.8,19.0,29.0,20.0,3.4 +20040724,22.8,19.0,28.0,18.0,1.5 +20040725,22.5,18.9,28.9,18.3,1.3 +20040726,22.6,19.8,27.2,19.4,1.4 +20040727,21.5,19.2,26.1,18.9,1.1 +20040728,22.1,18.1,28.3,17.8,2.5 +20040729,21.6,17.9,28.3,17.8,2.0 +20040730,22.1,19.8,26.0,20.0,2.8 +20040731,22.6,19.7,28.0,19.0,1.3 +20040801,23.3,20.3,29.4,19.4,2.0 +20040802,23.7,20.5,29.4,20.0,1.9 +20040803,22.8,18.0,28.9,18.9,4.2 +20040804,22.3,17.6,30.0,15.6,1.3 +20040805,21.8,18.6,30.0,15.6,2.1 +20040806,19.6,12.8,25.6,15.0,5.5 +20040807,16.8,7.9,24.4,10.0,3.0 +20040808,17.2,10.9,26.0,9.0,1.0 +20040809,18.3,13.4,26.1,9.4,1.1 +20040810,19.7,15.3,26.7,12.2,1.3 +20040811,20.0,17.1,27.8,12.8,1.5 +20040812,18.9,17.3,27.8,15.6,1.1 +20040813,17.8,13.7,22.8,13.9,5.1 +20040814,18.3,13.4,24.4,13.9,2.9 +20040815,19.0,16.0,24.4,13.9,1.7 +20040816,20.2,15.9,26.7,16.1,1.9 +20040817,20.4,17.6,26.7,16.1,0.8 +20040818,21.8,17.2,28.0,18.0,1.6 +20040819,21.3,17.5,28.3,16.0,2.0 +20040820,22.2,18.4,28.9,16.1,1.7 +20040821,22.2,18.6,28.9,17.8,2.2 +20040822,20.2,17.4,27.8,17.8,2.1 +20040823,20.8,17.4,26.0,18.0,0.9 +20040824,21.5,18.4,27.0,18.0,1.2 +20040825,21.1,17.9,27.0,18.0,1.7 +20040826,21.4,17.1,27.2,16.1,1.4 +20040827,22.7,18.9,29.4,16.1,1.5 +20040828,21.9,19.3,29.4,18.3,1.4 +20040829,20.7,18.2,29.4,17.8,1.0 +20040830,21.2,18.9,28.0,18.0,1.6 +20040831,21.9,18.7,28.3,17.8,2.1 +20040901,20.6,18.6,28.3,17.8,0.8 +20040902,19.0,17.2,21.0,17.0,1.1 +20040903,19.3,16.4,23.0,16.0,0.6 +20040904,19.8,15.9,25.0,15.0,0.9 +20040905,19.2,15.3,25.0,14.0,1.1 +20040906,20.1,16.9,25.6,14.4,1.2 +20040907,20.8,18.7,25.6,16.1,2.9 +20040908,21.3,19.2,22.8,20.0,3.5 +20040909,20.3,16.3,24.0,17.0,4.6 +20040910,19.4,16.0,26.1,15.6,1.6 +20040911,20.4,16.6,26.1,15.6,1.3 +20040912,19.4,15.7,25.6,15.0,1.0 +20040913,17.5,14.9,25.0,13.9,0.8 +20040914,17.4,14.2,23.3,13.9,1.1 +20040915,19.3,15.5,25.0,13.9,1.5 +20040916,19.9,18.1,25.0,15.0,2.1 +20040917,20.9,18.7,22.2,18.3,6.7 +20040918,18.4,10.4,21.7,15.0,8.9 +20040919,16.6,6.7,24.0,10.0,4.0 +20040920,13.4,7.2,23.9,6.7,0.9 +20040921,13.6,7.2,24.0,6.0,0.7 +20040922,15.2,7.9,27.2,6.1,0.9 +20040923,18.3,13.3,28.3,7.2,0.8 +20040924,19.0,14.9,28.3,10.0,0.9 +20040925,18.8,15.0,25.6,13.9,1.1 +20040926,17.3,13.2,24.4,11.7,1.5 +20040927,17.3,15.1,23.9,11.7,2.1 +20040928,19.4,16.9,22.8,16.1,4.9 +20040929,17.9,13.4,23.0,13.9,2.2 +20040930,17.4,13.6,23.3,12.8,1.5 +20041001,17.3,14.7,23.9,12.8,1.2 +20041002,17.8,14.8,25.0,12.8,1.4 +20041003,17.6,14.1,25.0,12.8,1.9 +20041004,15.1,9.1,24.4,7.2,2.7 +20041005,15.0,9.3,23.3,7.2,1.2 +20041006,15.6,11.3,23.3,7.2,2.2 +20041007,16.2,11.6,22.0,13.9,1.9 +20041008,12.4,8.0,21.7,6.7,1.6 +20041009,15.9,11.4,20.6,6.7,0.4 +20041010,17.1,13.1,24.0,13.0,1.3 +20041011,18.1,13.1,23.9,12.8,1.6 +20041012,16.7,13.3,23.0,11.0,2.2 +20041013,17.6,14.4,23.3,11.1,2.4 +20041014,13.9,9.6,18.0,11.0,3.7 +20041015,11.5,5.2,18.9,7.8,4.3 +20041016,9.7,1.0,17.2,2.8,2.7 +20041017,10.1,-1.0,19.4,2.2,3.2 +20041018,12.2,7.4,20.0,2.2,1.5 +20041019,17.4,15.1,19.0,16.0,2.7 +20041020,17.3,14.5,24.4,13.9,1.5 +20041021,16.9,14.9,24.4,13.9,1.6 +20041022,14.9,12.9,19.0,13.0,2.5 +20041023,12.6,11.1,18.9,10.6,2.5 +20041024,15.1,11.8,22.2,10.6,2.0 +20041025,15.2,11.4,23.3,10.0,1.6 +20041026,13.1,10.3,23.3,7.8,1.2 +20041027,16.2,13.4,24.0,13.9,1.3 +20041028,16.7,15.4,23.9,13.9,1.9 +20041029,16.2,14.2,22.8,13.9,1.6 +20041030,18.4,14.8,25.6,13.9,1.5 +20041031,17.7,12.7,26.0,12.0,1.0 +20041101,17.1,12.6,27.2,10.6,1.9 +20041102,18.9,15.7,27.2,10.6,2.1 +20041103,18.7,17.3,23.3,15.0,1.0 +20041104,16.3,14.2,20.6,12.8,3.4 +20041105,10.3,0.8,20.0,6.7,8.1 +20041106,7.6,-1.7,18.9,-1.1,1.4 +20041107,10.3,3.1,22.2,-1.1,1.6 +20041108,12.9,4.0,17.0,10.0,4.1 +20041109,10.8,-3.1,19.0,3.0,3.1 +20041110,6.5,-1.4,12.0,1.0,1.7 +20041111,5.9,1.8,12.2,0.0,1.4 +20041112,9.7,9.1,13.9,1.1,2.0 +20041113,10.3,7.3,13.9,7.2,4.3 +20041114,4.0,-1.5,13.3,-2.2,0.9 +20041115,3.8,-3.3,15.0,-3.9,0.7 +20041116,4.4,-1.2,15.0,-3.9,1.4 +20041117,9.3,2.7,18.3,-1.7,1.6 +20041118,11.6,7.1,18.3,1.1,2.1 +20041119,13.8,8.9,19.0,10.0,1.9 +20041120,14.1,11.1,18.9,9.4,2.1 +20041121,12.9,10.1,17.8,8.9,1.3 +20041122,13.8,11.5,19.4,8.9,0.7 +20041123,14.1,13.1,19.4,11.1,1.4 +20041124,14.2,12.9,18.0,12.8,3.9 +20041125,7.8,3.7,17.8,1.7,7.4 +20041126,2.7,-5.6,13.9,-2.2,3.0 +20041127,1.3,-3.9,10.0,-3.3,2.9 +20041128,5.8,1.6,9.4,-3.3,3.5 +20041129,6.2,-1.2,12.0,2.0,2.5 +20041130,6.5,1.9,12.2,1.1,2.2 +20041201,8.1,3.3,13.0,3.0,6.0 +20041202,3.2,-2.7,13.3,-5.0,2.9 +20041203,5.1,-3.7,13.3,-5.0,5.3 +20041204,2.5,-4.0,12.2,-4.4,1.2 +20041205,3.8,-3.0,13.9,-4.4,1.4 +20041206,7.9,4.3,13.9,-2.2,2.9 +20041207,13.4,11.9,17.2,5.0,4.3 +20041208,12.2,5.8,17.2,6.1,3.0 +20041209,7.3,5.7,17.2,3.9,1.4 +20041210,12.1,8.7,16.1,3.9,2.8 +20041211,5.0,1.4,16.1,2.8,4.2 +20041212,2.9,-1.8,6.7,-1.1,3.9 +20041213,5.1,-3.0,8.0,1.0,4.0 +20041214,-2.5,-9.6,7.8,-4.4,8.6 +20041215,-2.6,-11.3,5.0,-6.1,6.9 +20041216,-1.6,-9.4,10.0,-9.0,1.1 +20041217,3.1,-7.8,10.6,-8.9,2.4 +20041218,1.0,-5.0,10.0,-6.0,1.3 +20041219,0.6,-3.3,10.6,-5.6,3.7 +20041220,-8.7,-18.7,-1.0,-14.0,6.7 +20041221,-0.3,-9.8,13.3,-13.9,1.9 +20041222,3.7,-0.7,13.3,-7.8,2.9 +20041223,7.6,6.2,13.3,-3.9,5.8 +20041224,-2.8,-7.9,1.0,-5.0,7.0 +20041225,-3.7,-8.1,2.0,-7.0,2.1 +20041226,-0.4,-9.5,5.6,-7.2,3.2 +20041227,0.4,-10.8,7.8,-4.4,5.5 +20041228,-1.1,-8.2,8.0,-7.0,1.2 +20041229,4.9,-4.7,14.4,-6.7,3.1 +20041230,6.6,1.4,16.1,-4.4,0.8 +20041231,8.4,4.1,16.1,-1.7,1.4 +20050101,8.7,4.2,18.9,1.0,1.0 +20050102,9.5,5.7,19.4,1.1,1.4 +20050103,10.3,6.9,17.8,2.2,1.6 +20050104,13.3,9.0,21.7,3.9,1.1 +20050105,11.8,8.4,21.7,5.0,1.7 +20050106,13.3,10.1,18.3,5.0,4.3 +20050107,8.7,4.4,16.1,4.4,2.1 +20050108,11.9,8.0,15.0,4.4,5.1 +20050109,6.1,2.8,15.6,0.0,1.6 +20050110,8.2,3.6,15.6,0.0,3.8 +20050111,8.2,5.2,17.8,1.1,1.4 +20050112,13.0,9.6,17.8,2.2,3.7 +20050113,15.1,11.8,18.0,13.9,5.9 +20050114,8.3,4.6,17.8,3.9,7.4 +20050115,2.6,-3.7,10.6,-1.7,2.8 +20050116,2.4,-3.8,8.9,-2.0,1.9 +20050117,-5.8,-13.9,-1.7,-9.4,7.5 +20050118,-6.7,-20.7,1.1,-11.7,4.9 +20050119,-3.4,-15.1,2.8,-11.7,2.3 +20050120,1.8,-5.8,7.8,-7.2,3.8 +20050121,4.3,-1.7,11.7,-2.8,2.2 +20050122,0.7,-0.7,5.0,-2.0,4.4 +20050123,-7.5,-14.2,5.0,-11.1,10.8 +20050124,-5.8,-16.1,7.2,-13.3,4.8 +20050125,3.6,-11.7,14.4,-2.0,2.2 +20050126,7.0,0.2,16.1,-2.8,2.8 +20050127,4.1,-3.5,16.1,-1.1,6.2 +20050128,-1.3,-14.3,6.7,-4.4,3.3 +20050129,-3.9,-11.1,-1.0,-7.0,3.1 +20050130,1.7,-0.6,6.7,-6.7,4.4 +20050131,2.6,-0.7,6.7,0.0,2.2 +20050201,2.5,-4.7,6.7,0.0,1.7 +20050202,-0.1,-4.1,6.7,-3.3,2.2 +20050203,1.1,-0.8,5.0,-3.3,3.0 +20050204,4.1,-2.1,8.9,-1.1,6.7 +20050205,4.9,-3.1,15.0,-3.3,3.3 +20050206,3.9,-3.9,15.0,-3.3,1.5 +20050207,4.6,-4.0,14.4,-3.3,1.1 +20050208,10.5,0.4,17.8,-2.8,1.5 +20050209,9.1,7.4,17.8,4.4,1.1 +20050210,4.4,-0.9,13.3,-2.2,7.2 +20050211,-1.7,-9.9,8.3,-6.1,10.1 +20050212,5.2,-7.4,14.4,-6.1,6.7 +20050213,2.4,-2.3,14.4,-2.8,0.8 +20050214,6.1,3.6,10.0,-2.8,2.8 +20050215,5.7,2.8,16.1,0.0,1.2 +20050216,10.6,7.8,17.8,0.0,3.2 +20050217,3.9,-4.8,8.9,0.0,6.2 +20050218,1.6,-11.7,7.8,-4.4,5.4 +20050219,1.8,-7.6,11.7,-5.0,1.7 +20050220,4.2,-2.7,11.7,-5.0,2.1 +20050221,8.8,6.3,17.2,1.7,2.4 +20050222,11.3,5.3,19.4,3.9,2.7 +20050223,11.1,1.2,19.4,3.9,3.7 +20050224,8.2,4.4,19.4,5.0,1.0 +20050225,5.1,-0.9,11.1,0.6,4.5 +20050226,4.3,-4.0,13.3,-3.3,2.2 +20050227,3.5,-0.8,13.3,-3.3,1.7 +20050228,1.9,0.3,6.7,-0.6,1.9 +20050301,0.1,-7.4,3.3,-3.0,5.2 +20050302,-1.9,-11.3,6.1,-6.1,6.5 +20050303,1.8,-10.6,8.9,-6.1,4.9 +20050304,2.2,-7.4,13.3,-6.7,1.7 +20050305,7.8,-2.5,14.4,1.7,3.8 +20050306,7.2,-3.4,16.1,0.6,5.0 +20050307,6.9,-2.7,20.0,-3.3,2.4 +20050308,5.6,0.9,10.6,0.0,6.4 +20050309,0.1,-8.9,10.0,-4.4,4.0 +20050310,3.2,-7.2,10.0,-4.4,3.2 +20050311,4.8,-5.7,12.0,-3.0,3.6 +20050312,8.8,-5.6,20.0,-2.8,6.0 +20050313,16.7,0.7,22.2,11.1,2.7 +20050314,8.7,3.9,22.8,5.0,4.5 +20050315,4.6,-2.6,11.7,-1.1,2.4 +20050316,4.5,0.8,11.7,-1.1,2.0 +20050317,1.6,-1.1,5.6,0.0,1.8 +20050318,2.5,-3.4,11.1,-2.8,2.2 +20050319,4.2,-2.9,13.3,-3.3,1.9 +20050320,7.0,-1.7,16.7,-3.3,2.6 +20050321,9.0,-2.4,16.7,-2.2,2.2 +20050322,6.9,1.3,16.1,0.0,1.5 +20050323,11.1,7.1,21.1,3.3,3.2 +20050324,11.7,3.9,17.2,7.0,4.9 +20050325,11.5,4.2,20.6,4.4,2.5 +20050326,13.4,7.3,20.6,4.4,1.9 +20050327,11.3,9.5,20.6,5.6,3.3 +20050328,10.1,7.3,12.2,7.8,4.1 +20050329,11.9,1.0,21.1,6.7,7.5 +20050330,12.9,2.1,23.3,3.9,2.5 +20050331,13.8,8.2,23.3,3.9,2.5 +20050401,12.3,11.1,17.2,8.3,2.1 +20050402,9.1,5.5,15.0,3.9,5.4 +20050403,8.6,-3.3,15.6,2.8,11.1 +20050404,13.9,-1.2,22.8,4.4,3.8 +20050405,13.7,2.3,25.0,2.8,2.3 +20050406,15.9,4.3,25.0,2.8,3.1 +20050407,15.1,10.7,23.3,8.3,4.1 +20050408,13.7,11.8,18.9,10.6,2.2 +20050409,15.3,9.3,21.1,10.6,2.6 +20050410,14.8,6.9,25.6,5.6,1.4 +20050411,17.3,8.3,25.6,5.6,2.2 +20050412,15.4,8.2,25.6,8.3,2.4 +20050413,9.4,7.7,11.7,7.0,1.4 +20050414,9.2,0.7,17.2,2.8,3.1 +20050415,11.7,0.6,21.1,2.2,2.0 +20050416,11.1,-6.1,21.1,1.1,1.9 +20050417,10.8,-2.9,22.2,-0.6,2.1 +20050418,14.1,2.4,24.4,-0.6,1.4 +20050419,16.3,5.4,25.0,3.3,1.4 +20050420,17.4,5.8,25.6,6.1,1.6 +20050421,15.9,6.3,25.6,6.7,1.4 +20050422,14.1,11.6,25.6,6.7,1.9 +20050423,10.5,6.5,14.0,6.7,4.3 +20050424,3.6,-2.8,8.9,-2.0,4.5 +20050425,9.5,-5.0,18.3,-1.7,3.6 +20050426,8.8,2.5,18.3,1.7,3.0 +20050427,9.9,3.4,16.1,2.8,3.8 +20050428,8.8,1.4,17.8,1.7,2.8 +20050429,14.6,7.8,22.8,1.7,2.5 +20050430,15.8,11.6,22.8,10.0,4.1 +20050501,12.0,3.4,18.3,7.8,7.4 +20050502,10.8,0.0,18.3,3.3,2.9 +20050503,11.0,-0.4,18.3,3.3,3.7 +20050504,11.4,-0.1,18.9,3.9,3.5 +20050505,10.5,5.9,18.9,3.9,1.0 +20050506,13.5,5.1,20.6,6.7,3.7 +20050507,14.0,4.2,22.8,3.9,2.8 +20050508,16.3,7.2,25.6,3.9,2.6 +20050509,18.0,9.1,26.7,6.7,1.6 +20050510,17.2,11.9,26.7,8.3,2.4 +20050511,17.2,11.8,26.1,11.0,2.3 +20050512,19.7,11.7,30.0,10.6,1.6 +20050513,18.2,14.2,30.0,10.6,2.2 +20050514,19.5,14.3,26.1,12.2,3.7 +20050515,16.4,14.2,20.0,14.0,1.9 +20050516,14.1,7.6,21.7,7.2,2.7 +20050517,15.4,8.6,23.3,7.2,2.4 +20050518,18.1,12.2,25.6,7.2,2.0 +20050519,19.1,14.2,25.6,11.1,1.4 +20050520,16.9,13.8,25.0,12.8,2.5 +20050521,15.9,12.1,20.6,12.0,2.2 +20050522,17.3,11.7,24.4,11.7,2.2 +20050523,19.3,10.9,26.1,11.7,3.1 +20050524,16.7,7.4,26.1,10.6,4.1 +20050525,13.8,4.8,20.0,9.4,5.4 +20050526,15.7,6.6,23.9,7.8,4.2 +20050527,17.4,9.4,25.6,7.8,2.4 +20050528,15.9,10.2,25.6,8.9,2.7 +20050529,13.9,7.7,22.2,6.1,1.0 +20050530,16.3,11.5,21.1,6.1,2.1 +20050531,16.9,12.4,22.8,11.1,2.4 +20050601,15.4,13.0,22.8,11.1,1.9 +20050602,13.7,12.2,17.2,11.7,0.9 +20050603,15.6,14.2,18.9,12.2,1.7 +20050604,20.4,15.6,28.3,13.9,1.7 +20050605,22.2,16.6,30.6,15.0,1.7 +20050606,21.8,17.5,30.6,15.6,1.9 +20050607,22.1,16.9,29.4,16.1,1.7 +20050608,21.3,18.3,28.9,16.1,1.7 +20050609,21.9,18.3,28.3,17.8,2.0 +20050610,22.3,18.9,28.3,17.8,2.7 +20050611,21.0,17.7,23.9,19.0,2.3 +20050612,20.6,18.6,23.3,18.0,3.5 +20050613,23.6,20.0,28.9,18.3,2.7 +20050614,23.3,17.3,31.1,15.6,2.4 +20050615,24.2,16.8,31.1,15.6,3.1 +20050616,21.6,12.9,29.4,14.4,3.7 +20050617,20.2,10.9,27.2,14.4,3.7 +20050618,17.4,11.1,25.6,11.1,1.9 +20050619,17.9,14.2,25.0,11.1,1.4 +20050620,15.9,13.9,20.0,13.0,1.4 +20050621,15.9,13.2,23.3,11.7,0.8 +20050622,19.1,14.1,26.7,11.7,2.3 +20050623,21.2,15.1,27.2,12.2,1.5 +20050624,20.7,14.2,27.8,12.8,1.4 +20050625,20.7,14.6,27.8,12.8,1.1 +20050626,20.3,17.2,27.8,13.9,1.5 +20050627,22.4,19.2,27.8,17.8,1.6 +20050628,21.4,19.1,27.8,17.8,1.3 +20050629,22.2,19.1,29.4,18.9,2.0 +20050630,23.5,19.0,30.0,18.3,2.7 +20050701,23.8,19.4,30.0,18.3,2.7 +20050702,22.1,17.8,29.4,17.8,2.7 +20050703,21.2,18.6,25.0,17.0,1.3 +20050704,22.2,19.6,26.1,17.2,1.7 +20050705,23.6,19.6,29.0,19.0,1.8 +20050706,22.1,18.7,30.6,18.9,1.8 +20050707,19.8,18.1,26.7,16.7,2.9 +20050708,20.6,14.3,27.2,15.6,3.8 +20050709,20.9,14.2,29.4,13.9,1.3 +20050710,22.3,18.3,29.4,13.9,1.9 +20050711,22.2,20.1,27.2,17.8,3.2 +20050712,23.2,20.1,28.3,18.9,2.8 +20050713,22.1,19.2,27.8,18.0,2.2 +20050714,22.2,19.1,28.3,18.3,1.6 +20050715,23.6,20.2,28.3,20.0,2.3 +20050716,23.0,19.8,28.3,20.0,1.9 +20050717,24.0,20.2,30.6,20.0,2.0 +20050718,22.9,20.1,30.6,20.0,1.5 +20050719,23.6,20.2,30.0,20.0,1.8 +20050720,22.2,19.5,29.4,19.0,2.3 +20050721,23.9,20.2,30.0,19.0,2.0 +20050722,24.0,20.0,30.6,19.0,2.0 +20050723,25.2,18.8,31.1,19.4,3.1 +20050724,22.8,18.0,31.1,16.7,1.1 +20050725,25.2,19.1,33.3,16.7,1.9 +20050726,26.4,20.3,33.9,18.9,2.0 +20050727,25.9,21.0,33.9,20.0,1.8 +20050728,22.0,19.2,32.8,19.4,1.7 +20050729,20.7,18.9,27.8,18.9,0.9 +20050730,21.8,19.0,26.1,18.9,1.4 +20050731,21.6,19.4,26.1,18.9,0.7 +20050801,21.5,17.7,26.7,17.0,1.3 +20050802,21.5,16.6,28.9,16.0,1.6 +20050803,21.9,16.4,30.0,15.0,1.3 +20050804,22.2,17.6,30.6,15.0,1.4 +20050805,21.4,18.2,30.6,16.7,0.9 +20050806,21.9,18.1,28.9,17.2,1.2 +20050807,19.9,18.6,27.8,17.2,0.5 +20050808,20.0,18.1,23.3,18.0,0.5 +20050809,22.2,19.2,27.2,18.3,0.7 +20050810,22.6,19.6,27.2,19.4,1.6 +20050811,23.6,18.2,31.1,17.8,1.1 +20050812,23.1,17.7,31.1,16.7,0.9 +20050813,24.2,19.6,31.1,16.7,1.6 +20050814,22.9,18.7,30.6,18.3,3.5 +20050815,24.4,19.3,31.7,18.9,1.7 +20050816,23.4,19.2,31.7,18.3,0.9 +20050817,23.1,19.9,31.1,18.3,1.6 +20050818,22.3,20.4,29.4,19.4,1.2 +20050819,23.4,20.5,30.0,19.4,1.5 +20050820,24.5,20.6,31.1,18.9,1.4 +20050821,25.2,19.9,31.1,18.9,2.6 +20050822,22.8,19.2,31.1,18.3,1.7 +20050823,22.1,19.5,28.3,18.3,1.3 +20050824,21.8,18.7,27.2,18.9,1.1 +20050825,22.6,17.7,27.2,19.4,1.4 +20050826,21.4,17.2,25.6,18.0,1.4 +20050827,21.1,16.8,26.7,16.7,1.3 +20050828,22.7,19.1,28.3,16.7,1.1 +20050829,22.5,19.8,28.3,18.9,1.5 +20050830,23.3,20.8,26.7,19.4,5.8 +20050831,22.5,16.7,27.2,16.7,3.7 +20050901,21.2,14.7,26.7,14.0,3.3 +20050902,20.2,14.8,27.8,13.0,2.1 +20050903,21.4,13.5,27.8,13.3,2.8 +20050904,18.8,12.9,27.2,11.1,1.1 +20050905,18.7,13.6,26.7,11.1,0.8 +20050906,18.2,11.9,24.4,12.8,1.2 +20050907,18.2,12.4,26.7,10.6,1.0 +20050908,18.5,11.6,27.2,10.6,1.4 +20050909,19.0,13.0,27.2,10.6,0.7 +20050910,18.9,13.0,27.2,11.1,0.9 +20050911,19.0,14.0,27.2,11.1,0.8 +20050912,18.4,13.6,27.8,10.6,1.7 +20050913,19.7,13.7,28.9,10.6,2.3 +20050914,20.6,13.9,28.9,12.2,2.8 +20050915,21.2,15.1,30.0,13.9,1.5 +20050916,19.9,17.1,30.0,13.9,1.5 +20050917,20.6,17.1,28.3,15.6,1.4 +20050918,19.3,13.3,28.3,11.1,1.9 +20050919,19.7,13.6,28.9,11.1,1.0 +20050920,20.4,15.1,30.0,11.7,0.6 +20050921,21.1,16.0,30.0,13.9,1.0 +20050922,21.3,16.8,28.3,15.0,1.2 +20050923,21.1,16.1,28.9,15.0,0.8 +20050924,20.3,15.6,28.9,13.9,1.0 +20050925,21.9,17.3,28.3,13.9,3.4 +20050926,20.4,17.6,26.7,18.9,3.5 +20050927,21.0,15.7,26.7,16.7,2.8 +20050928,18.2,15.2,26.7,13.9,1.3 +20050929,19.1,16.4,25.0,13.9,3.3 +20050930,16.1,10.1,23.9,12.8,2.4 +20051001,16.9,11.8,26.1,11.0,1.1 +20051002,17.3,14.6,27.2,10.6,0.9 +20051003,18.4,14.3,25.6,14.4,0.8 +20051004,16.6,12.0,26.1,8.9,0.9 +20051005,18.2,14.4,25.6,8.9,1.4 +20051006,19.3,17.1,23.9,12.8,1.2 +20051007,19.1,17.7,22.0,17.8,1.0 +20051008,18.4,15.0,21.7,15.6,5.9 +20051009,16.3,13.1,21.0,13.0,3.2 +20051010,18.8,16.2,21.7,17.0,1.7 +20051011,19.0,15.9,25.0,16.7,1.6 +20051012,18.9,15.5,25.0,16.7,0.8 +20051013,19.1,14.6,25.0,15.6,2.4 +20051014,16.6,11.6,21.7,9.0,3.7 +20051015,16.8,9.1,23.9,12.0,4.1 +20051016,15.6,1.1,19.4,11.0,5.0 +20051017,12.4,2.7,21.1,6.1,3.3 +20051018,13.8,5.8,25.0,5.0,1.7 +20051019,16.3,11.2,26.1,8.9,0.7 +20051020,16.8,12.2,26.1,8.9,0.8 +20051021,16.4,12.1,26.1,8.9,2.1 +20051022,14.8,10.8,25.0,9.4,3.4 +20051023,10.4,3.4,18.3,4.0,2.8 +20051024,7.3,1.3,18.3,3.3,6.7 +20051025,6.2,-0.2,10.0,3.9,7.4 +20051026,7.3,-0.6,11.7,3.9,5.7 +20051027,4.6,-0.5,12.8,-2.2,1.1 +20051028,6.5,-0.1,13.3,-2.2,2.1 +20051029,5.6,-2.8,15.0,-2.2,2.1 +20051030,7.4,-2.3,21.1,-2.8,1.3 +20051031,8.2,0.1,21.1,-2.8,1.1 +20051101,8.5,3.3,21.1,-1.7,1.6 +20051102,12.4,2.8,19.4,0.6,3.6 +20051103,8.1,-0.3,20.6,-1.7,1.6 +20051104,10.4,3.2,22.8,0.0,1.6 +20051105,13.7,8.6,23.3,0.0,1.7 +20051106,16.0,11.3,23.9,6.7,2.7 +20051107,14.1,6.7,23.9,4.4,1.2 +20051108,12.2,5.1,24.4,2.8,0.5 +20051109,14.6,8.8,25.6,2.8,1.0 +20051110,12.9,1.1,25.6,5.6,5.0 +20051111,6.9,-7.9,18.3,-1.1,2.8 +20051112,6.7,-5.3,17.8,-2.2,1.8 +20051113,10.2,2.9,19.4,-2.2,2.1 +20051114,15.5,10.8,23.0,10.0,1.9 +20051115,16.8,12.9,23.3,9.4,3.6 +20051116,14.5,12.3,20.0,5.0,5.9 +20051117,2.0,-6.5,5.0,-2.0,6.9 +20051118,0.9,-13.4,9.4,-5.6,4.1 +20051119,1.1,-9.0,11.7,-7.0,1.3 +20051120,6.4,-2.0,11.1,2.8,1.1 +20051121,9.0,7.8,11.1,1.7,1.5 +20051122,3.9,-0.4,11.1,0.6,9.0 +20051123,1.9,-6.9,7.2,-2.8,5.8 +20051124,10.6,-2.2,17.0,5.6,3.3 +20051125,3.5,-9.4,16.7,-2.8,4.7 +20051126,2.2,-4.6,11.7,-4.4,1.6 +20051127,4.7,0.4,11.7,-4.4,2.2 +20051128,9.1,8.1,16.0,6.0,3.4 +20051129,15.9,11.2,17.8,6.1,5.4 +20051130,5.3,-2.8,17.8,0.6,5.6 +20051201,2.5,-3.5,11.1,-3.3,1.9 +20051202,2.0,-9.1,11.1,-3.3,5.3 +20051203,0.2,-7.4,6.1,-3.3,2.2 +20051204,9.7,4.9,18.9,-3.3,3.7 +20051205,6.8,5.5,10.0,3.0,3.0 +20051206,0.7,-4.9,5.6,-4.0,5.0 +20051207,-0.6,-7.7,7.8,-6.7,2.0 +20051208,0.1,-5.0,7.8,-6.7,2.2 +20051209,0.6,-4.1,2.8,-2.2,5.9 +20051210,-0.7,-6.6,8.3,-8.0,2.7 +20051211,2.0,-5.7,8.9,-7.8,3.3 +20051212,2.1,-4.3,9.4,-3.9,2.3 +20051213,0.9,-5.6,9.4,-3.9,4.4 +20051214,-2.2,-8.3,4.4,-3.9,2.6 +20051215,-1.2,-4.1,1.0,-3.0,2.9 +20051216,1.3,-3.3,6.1,-3.9,2.9 +20051217,1.6,-5.6,6.1,-3.9,3.2 +20051218,3.2,-3.6,11.1,-1.7,1.0 +20051219,0.8,-4.9,11.1,-4.4,2.8 +20051220,-1.2,-9.0,5.6,-5.6,5.6 +20051221,-1.7,-13.4,5.0,-7.2,4.4 +20051222,-0.5,-11.4,10.0,-7.8,3.0 +20051223,-0.3,-9.9,13.9,-9.4,0.9 +20051224,0.7,-8.9,15.0,-9.4,1.6 +20051225,5.6,2.6,9.4,3.0,3.3 +20051226,3.7,-0.6,9.4,0.6,5.9 +20051227,3.6,-3.3,14.4,-1.1,3.9 +20051228,6.1,2.8,14.4,-1.1,2.7 +20051229,5.6,3.3,11.1,0.0,3.9 +20051230,4.4,-0.3,12.8,1.0,3.7 +20051231,5.8,-1.2,13.3,-0.6,2.6 +20060101,4.6,-5.8,16.0,-3.0,2.1 +20060102,7.6,4.2,15.6,-3.3,2.1 +20060103,7.6,5.6,9.4,5.0,3.7 +20060104,5.3,1.9,15.0,-1.0,2.3 +20060105,5.7,2.0,15.0,-0.6,5.0 +20060106,1.6,-4.3,8.3,0.6,8.2 +20060107,-0.7,-7.9,6.0,-4.0,3.8 +20060108,2.2,-5.1,17.0,-6.0,2.0 +20060109,10.2,3.3,20.0,1.0,2.8 +20060110,9.4,5.8,20.0,0.0,1.1 +20060111,12.9,8.8,18.0,11.0,3.8 +20060112,6.2,-0.1,18.3,-1.1,1.1 +20060113,9.1,4.4,18.3,-1.1,3.4 +20060114,2.8,-3.1,16.1,-1.1,9.5 +20060115,1.8,-11.4,9.0,-2.2,9.6 +20060116,5.3,-5.7,14.0,-1.0,1.2 +20060117,9.3,6.7,12.0,8.0,4.2 +20060118,5.4,-2.4,12.2,-2.0,4.3 +20060119,3.6,-5.6,16.0,-3.0,1.7 +20060120,7.0,-3.3,16.1,-3.3,2.1 +20060121,9.7,6.5,16.1,-2.2,2.7 +20060122,7.8,5.4,11.0,3.0,2.6 +20060123,6.4,5.2,13.3,1.7,2.8 +20060124,9.5,3.1,13.9,1.7,4.6 +20060125,6.1,-9.7,9.0,2.0,8.7 +20060126,0.7,-9.1,8.9,-2.2,7.6 +20060127,0.6,-7.7,9.0,-6.1,2.1 +20060128,3.5,-6.4,16.0,-4.0,2.3 +20060129,10.2,5.1,14.0,6.0,4.8 +20060130,6.7,1.1,15.6,-1.1,1.6 +20060131,4.1,-1.3,15.6,-1.1,7.7 +20060201,1.9,-4.0,10.0,-4.0,2.3 +20060202,3.0,-1.8,10.6,-4.4,1.7 +20060203,9.3,4.7,18.3,-2.7,2.3 +20060204,8.0,4.8,13.0,2.0,4.1 +20060205,-0.3,-7.3,3.0,-3.0,4.9 +20060206,-0.4,-8.8,6.0,-4.0,3.7 +20060207,2.2,-9.3,7.0,-2.0,5.0 +20060208,0.9,-11.7,7.8,-1.7,3.4 +20060209,-0.2,-6.6,6.1,-2.2,4.8 +20060210,-0.9,-8.8,9.4,-7.8,2.0 +20060211,2.0,-1.9,9.4,-7.7,2.4 +20060212,-1.7,-5.9,4.4,-3.9,6.4 +20060213,-2.8,-7.8,2.0,-6.0,3.3 +20060214,1.7,-8.9,13.9,-6.1,3.6 +20060215,5.4,-4.6,14.0,-4.0,2.3 +20060216,7.5,0.2,17.2,-4.3,2.6 +20060217,11.8,3.1,14.4,8.0,4.6 +20060218,2.1,-1.9,15.0,-2.2,6.5 +20060219,-3.3,-7.3,2.0,-7.0,3.8 +20060220,2.9,-2.4,10.0,0.0,3.0 +20060221,5.3,-1.9,13.0,2.0,4.9 +20060222,7.4,0.8,15.0,3.0,1.6 +20060223,8.9,1.9,15.6,3.3,4.4 +20060224,7.0,-9.2,13.0,3.0,3.0 +20060225,4.6,-4.0,13.9,-2.2,1.1 +20060226,3.2,-9.3,11.1,-2.2,7.5 +20060227,1.0,-15.6,12.0,-7.0,2.9 +20060228,9.1,-3.9,18.0,-1.0,2.1 +20060301,13.3,2.4,24.0,5.0,1.6 +20060302,15.3,6.6,24.4,5.0,2.5 +20060303,6.9,-4.3,17.8,2.0,6.8 +20060304,2.9,-10.4,11.1,-3.3,4.9 +20060305,5.2,-11.2,16.0,-3.0,2.6 +20060306,8.3,0.3,16.7,-3.2,4.2 +20060307,5.7,-3.9,13.3,1.7,6.9 +20060308,6.1,-3.9,17.2,-2.2,2.2 +20060309,12.4,-0.2,17.0,9.0,5.9 +20060310,15.4,5.6,23.3,6.7,4.2 +20060311,13.0,4.6,23.9,6.7,1.7 +20060312,16.2,10.9,24.4,6.7,1.4 +20060313,17.3,11.2,25.6,8.9,3.3 +20060314,12.9,3.6,18.0,8.0,7.4 +20060315,7.2,-9.9,17.8,1.7,7.2 +20060316,8.2,-3.8,15.6,0.6,2.6 +20060317,10.6,-0.6,16.1,2.8,4.3 +20060318,6.8,-5.1,12.0,1.0,5.4 +20060319,6.6,-11.7,12.2,1.1,4.8 +20060320,3.1,-5.9,12.2,0.0,1.9 +20060321,3.5,1.9,8.3,0.0,2.7 +20060322,3.1,-3.7,8.0,-2.0,6.5 +20060323,2.9,-6.2,11.1,-4.4,2.8 +20060324,2.6,-0.3,11.1,-4.3,3.0 +20060325,1.4,-3.3,4.0,-2.0,5.4 +20060326,1.9,-5.1,7.8,-1.7,6.6 +20060327,3.6,-5.2,13.9,-5.0,1.4 +20060328,9.6,-0.2,16.0,4.0,3.0 +20060329,9.3,3.1,19.0,0.6,1.2 +20060330,10.9,4.3,19.4,0.6,2.0 +20060331,14.8,8.7,22.0,9.0,3.2 +20060401,17.9,8.8,26.1,11.7,2.9 +20060402,15.4,3.9,26.1,3.9,1.3 +20060403,16.9,8.4,23.9,3.9,4.0 +20060404,9.9,-1.7,16.0,4.0,7.1 +20060405,11.0,-6.7,18.3,4.4,5.3 +20060406,11.4,-4.6,21.0,2.0,2.2 +20060407,18.9,2.3,27.2,14.0,3.1 +20060408,15.8,9.8,27.8,11.7,4.7 +20060409,8.6,-2.1,17.0,2.0,6.2 +20060410,9.6,-1.7,20.0,-1.0,2.1 +20060411,12.0,0.9,22.2,-0.5,1.7 +20060412,13.2,3.0,22.2,1.1,1.7 +20060413,15.9,7.0,26.0,7.0,2.3 +20060414,17.9,6.9,30.0,5.0,1.9 +20060415,21.8,6.8,30.0,8.3,3.1 +20060416,20.9,7.8,30.6,10.0,2.5 +20060417,20.7,9.1,30.6,10.0,3.5 +20060418,16.2,7.6,29.4,10.0,3.7 +20060419,15.4,9.9,23.3,10.0,2.7 +20060420,16.0,11.7,23.0,9.0,1.4 +20060421,15.7,13.2,23.9,9.4,1.8 +20060422,16.3,12.9,21.1,12.2,2.7 +20060423,14.4,7.4,24.4,5.6,1.5 +20060424,17.7,8.3,27.2,5.6,1.8 +20060425,17.7,10.9,27.2,8.3,1.3 +20060426,15.4,12.9,25.6,10.0,2.3 +20060427,13.8,7.9,18.3,10.0,4.8 +20060428,12.6,1.7,22.2,3.3,1.6 +20060429,12.0,3.8,22.2,3.3,1.7 +20060430,11.6,4.1,15.0,6.7,2.5 +20060501,13.1,2.8,22.0,9.0,1.6 +20060502,13.8,5.1,24.0,4.0,2.1 +20060503,17.8,8.6,24.4,4.4,3.4 +20060504,16.1,8.8,25.6,7.2,1.4 +20060505,17.2,14.0,25.6,7.2,2.2 +20060506,16.2,10.7,22.8,11.7,4.5 +20060507,13.3,9.8,22.2,10.0,1.7 +20060508,10.8,7.9,16.0,8.0,1.9 +20060509,12.3,9.2,17.2,8.3,3.0 +20060510,13.0,10.6,17.2,10.0,2.6 +20060511,16.7,10.8,23.3,12.2,3.9 +20060512,12.3,3.1,21.7,5.6,2.5 +20060513,11.6,3.6,21.0,3.0,1.6 +20060514,14.3,8.0,21.7,2.8,2.5 +20060515,11.7,4.3,20.6,5.0,3.2 +20060516,10.8,4.9,18.3,4.4,3.1 +20060517,12.1,6.9,18.0,4.0,2.8 +20060518,11.8,6.8,21.7,3.9,2.5 +20060519,12.9,3.9,22.8,3.9,2.9 +20060520,17.3,12.5,25.6,11.1,2.1 +20060521,19.2,14.7,26.1,13.9,3.1 +20060522,17.1,13.5,21.7,13.0,2.1 +20060523,16.8,8.0,25.0,10.0,2.6 +20060524,17.5,4.7,28.0,7.0,2.1 +20060525,17.2,11.4,27.8,6.7,1.9 +20060526,20.9,14.5,29.4,9.4,2.6 +20060527,22.4,14.3,28.0,14.0,2.7 +20060528,21.5,14.3,29.0,13.0,1.3 +20060529,22.7,16.2,30.0,13.3,1.4 +20060530,23.0,16.2,31.1,14.4,1.3 +20060531,21.4,15.6,31.1,15.0,2.9 +20060601,20.6,16.3,28.0,16.0,2.1 +20060602,20.7,16.9,29.4,16.1,1.6 +20060603,19.1,12.4,27.8,15.6,5.2 +20060604,16.4,10.2,24.0,9.0,1.7 +20060605,15.8,8.8,25.0,9.4,5.0 +20060606,17.1,7.3,25.0,10.0,4.4 +20060607,17.6,9.2,25.6,8.3,1.2 +20060608,19.6,12.2,27.2,8.3,3.2 +20060609,20.9,12.6,27.2,12.2,4.8 +20060610,22.2,13.3,31.1,13.9,1.6 +20060611,22.9,16.2,31.1,13.9,1.5 +20060612,21.6,16.7,30.6,16.1,2.9 +20060613,18.9,14.6,25.0,16.0,2.4 +20060614,20.3,13.8,27.2,16.1,4.1 +20060615,20.9,11.3,27.2,13.9,4.1 +20060616,19.6,11.2,27.8,10.6,2.3 +20060617,20.6,13.2,28.3,10.6,2.0 +20060618,20.6,13.2,27.2,12.0,2.0 +20060619,20.4,13.9,27.8,12.2,1.3 +20060620,22.5,15.7,31.0,14.0,2.5 +20060621,23.5,13.6,32.2,14.4,2.4 +20060622,23.3,16.4,32.8,16.7,1.9 +20060623,22.2,18.2,32.8,16.7,1.9 +20060624,21.3,17.6,29.4,17.8,1.9 +20060625,20.9,18.2,28.9,17.8,1.1 +20060626,19.6,17.7,26.7,17.8,1.2 +20060627,22.1,17.4,27.8,18.3,2.5 +20060628,20.7,14.0,28.9,13.9,1.5 +20060629,21.0,13.9,28.0,13.0,2.3 +20060630,21.4,12.9,28.3,13.3,2.6 +20060701,20.7,13.5,30.0,12.8,1.5 +20060702,22.8,15.7,31.7,12.8,1.6 +20060703,22.8,16.2,31.7,15.0,1.4 +20060704,22.8,17.6,31.1,15.6,0.9 +20060705,21.2,18.6,30.6,17.2,1.2 +20060706,20.8,17.2,26.0,18.0,3.2 +20060707,18.9,12.4,26.1,13.9,2.5 +20060708,19.5,13.1,25.6,13.9,1.2 +20060709,19.3,15.1,25.6,13.9,1.4 +20060710,21.9,16.3,29.4,13.9,1.0 +20060711,21.3,18.2,29.4,16.1,0.7 +20060712,23.0,18.8,30.0,17.8,1.5 +20060713,23.2,18.9,31.1,18.3,1.8 +20060714,22.6,19.8,31.1,18.9,1.2 +20060715,22.8,19.8,29.0,19.0,1.7 +20060716,24.7,19.1,30.0,19.4,2.2 +20060717,22.4,16.2,29.0,14.0,0.9 +20060718,23.7,16.7,31.7,14.4,1.0 +20060719,23.1,17.3,31.7,16.1,0.9 +20060720,24.1,17.8,30.6,18.9,1.4 +20060721,22.8,18.4,30.6,18.9,0.9 +20060722,23.3,18.7,30.6,18.9,2.4 +20060723,-999.0,-999.0,-999.0,-999.0,-999.0 +20060724,-999.0,-999.0,-999.0,-999.0,-999.0 +20060725,20.2,18.7,22.0,19.0,0.9 +20060726,-999.0,-999.0,-999.0,-999.0,-999.0 +20060727,-999.0,-999.0,-999.0,-999.0,-999.0 +20060728,-999.0,-999.0,-999.0,-999.0,-999.0 +20060729,-999.0,-999.0,-999.0,-999.0,-999.0 +20060730,26.6,17.4,29.0,21.0,4.2 +20060731,-999.0,-999.0,-999.0,-999.0,-999.0 +20060801,29.5,18.0,33.0,23.0,2.8 +20060802,25.3,19.3,32.0,20.0,1.7 +20060803,25.2,20.4,31.0,21.0,1.7 +20060804,25.9,19.1,33.3,20.0,2.7 +20060805,23.1,19.1,33.3,18.9,1.4 +20060806,24.4,19.1,30.6,18.9,1.5 +20060807,24.9,20.1,32.2,20.0,2.0 +20060808,24.5,19.3,32.8,18.9,2.1 +20060809,23.8,18.4,32.8,17.8,1.6 +20060810,25.2,20.2,32.2,17.8,1.8 +20060811,22.8,18.2,32.2,18.9,3.3 +20060812,19.3,17.2,28.9,16.7,1.4 +20060813,19.5,15.2,26.1,15.6,1.6 +20060814,21.8,17.4,28.9,15.6,1.6 +20060815,22.4,18.9,28.9,16.7,1.0 +20060816,22.9,19.7,27.8,17.8,1.7 +20060817,22.0,18.0,27.2,17.8,1.0 +20060818,21.4,16.5,27.0,14.0,1.2 +20060819,22.2,18.1,30.0,14.4,0.9 +20060820,21.1,19.3,30.0,17.2,1.3 +20060821,21.8,18.2,27.0,17.0,1.2 +20060822,23.1,18.8,28.3,17.2,2.2 +20060823,21.9,17.9,28.3,17.8,1.7 +20060824,22.1,18.5,27.2,17.8,1.4 +20060825,22.1,17.9,28.0,18.0,1.9 +20060826,21.1,15.3,28.9,15.0,1.0 +20060827,21.1,16.7,28.9,15.0,1.1 +20060828,21.9,17.6,30.0,15.0,0.9 +20060829,24.6,19.9,31.7,16.1,2.4 +20060830,21.9,19.3,31.7,18.9,1.3 +20060831,21.7,19.1,28.3,18.9,1.4 +20060901,20.4,17.6,24.4,17.8,1.8 +20060902,19.7,17.3,24.0,17.0,1.5 +20060903,20.2,17.6,26.1,16.7,1.1 +20060904,21.1,18.9,26.1,17.2,1.7 +20060905,19.3,17.3,21.7,17.0,1.9 +20060906,19.2,14.8,25.0,15.6,2.5 +20060907,18.4,15.9,25.0,15.6,0.9 +20060908,19.4,16.1,24.4,16.1,1.2 +20060909,18.5,14.9,26.0,13.0,1.0 +20060910,19.4,15.6,26.1,13.3,0.9 +20060911,18.6,15.4,23.0,14.0,1.4 +20060912,17.2,14.7,22.8,14.4,2.3 +20060913,15.9,14.2,18.9,15.0,2.5 +20060914,17.6,12.9,22.2,13.9,3.1 +20060915,16.8,11.1,24.0,11.0,2.7 +20060916,17.1,12.3,26.0,11.0,2.0 +20060917,17.5,12.9,26.0,12.0,0.7 +20060918,18.4,14.8,27.2,12.2,1.7 +20060919,20.4,15.9,27.2,12.2,3.0 +20060920,15.1,7.6,22.8,11.1,5.3 +20060921,11.6,7.3,18.9,5.6,2.3 +20060922,14.9,12.8,18.9,5.6,2.2 +20060923,20.8,17.2,27.0,17.8,3.3 +20060924,20.1,17.6,26.7,16.7,2.2 +20060925,17.0,11.9,21.0,13.0,3.8 +20060926,14.9,10.2,19.0,11.0,2.4 +20060927,15.7,11.4,22.0,11.0,1.8 +20060928,13.9,10.8,23.0,8.0,1.7 +20060929,11.2,5.8,16.1,7.0,4.8 +20060930,11.2,6.8,21.1,5.0,1.0 +20061001,16.5,10.5,23.3,6.7,3.2 +20061002,14.6,9.6,23.0,6.0,1.7 +20061003,15.6,11.6,25.0,6.1,0.8 +20061004,17.1,12.1,26.1,10.0,1.8 +20061005,17.9,13.4,27.2,10.6,1.6 +20061006,17.3,12.9,27.2,11.1,5.0 +20061007,11.4,6.3,18.9,7.8,5.5 +20061008,13.1,10.2,17.2,7.8,3.4 +20061009,16.9,10.7,23.9,10.6,1.9 +20061010,14.9,9.9,24.4,7.8,1.1 +20061011,15.4,12.1,24.4,7.8,2.0 +20061012,14.1,8.3,21.7,10.6,3.1 +20061013,7.7,-2.7,13.0,2.0,4.2 +20061014,7.3,-5.2,16.0,1.0,3.5 +20061015,7.5,-2.9,18.3,-1.1,2.1 +20061016,9.7,3.4,18.3,-1.0,1.9 +20061017,11.7,10.3,16.0,8.9,3.5 +20061018,17.2,14.4,24.0,13.9,1.8 +20061019,16.3,14.4,20.0,13.0,0.5 +20061020,14.0,9.8,20.6,8.9,4.0 +20061021,8.2,3.9,16.7,2.8,2.7 +20061022,10.7,6.1,20.6,2.8,1.9 +20061023,5.8,-2.8,20.6,2.8,6.8 +20061024,2.7,-5.4,7.2,-1.1,4.7 +20061025,3.5,-5.6,13.0,-2.0,3.2 +20061026,8.6,-0.3,16.0,5.0,1.9 +20061027,9.1,5.2,15.6,5.0,3.0 +20061028,12.0,6.1,14.0,10.0,5.5 +20061029,10.4,-2.3,20.0,1.0,2.6 +20061030,10.1,2.2,22.0,1.0,1.1 +20061031,11.7,4.3,21.7,0.6,1.3 +20061101,13.1,7.6,22.0,6.0,1.3 +20061102,10.2,4.3,22.2,5.0,6.5 +20061103,2.9,-10.2,13.9,-1.1,6.4 +20061104,1.4,-8.4,10.0,-6.1,1.6 +20061105,2.3,-5.8,12.0,-5.0,1.3 +20061106,3.8,-3.8,13.0,-4.0,1.5 +20061107,7.9,3.9,10.0,6.0,1.5 +20061108,11.1,8.3,15.0,6.0,3.4 +20061109,13.4,5.8,21.1,6.1,5.1 +20061110,12.3,4.7,25.0,3.0,1.1 +20061111,13.2,8.3,25.0,3.3,2.4 +20061112,5.6,1.3,10.0,3.9,9.6 +20061113,6.6,-1.2,20.0,-2.2,4.1 +20061114,9.2,-0.8,20.0,-1.6,2.7 +20061115,8.2,4.5,17.8,0.6,2.0 +20061116,11.3,7.8,14.4,6.1,6.0 +20061117,5.6,0.2,14.4,3.9,5.1 +20061118,5.5,-1.7,13.0,-1.0,2.5 +20061119,3.8,-0.5,13.3,-1.7,3.3 +20061120,2.5,-3.6,8.9,-1.6,5.6 +20061121,1.2,-5.9,6.0,-2.2,7.2 +20061122,6.2,-2.6,13.0,2.0,8.4 +20061123,9.4,-3.2,16.7,2.2,7.9 +20061124,9.1,-2.0,19.4,-1.1,2.2 +20061125,6.9,-2.1,19.4,-2.2,0.6 +20061126,7.1,-1.4,20.0,-2.2,0.5 +20061127,6.6,-0.9,20.6,-2.8,0.7 +20061128,9.2,3.3,18.9,-2.7,0.7 +20061129,12.0,9.6,18.3,5.0,1.2 +20061130,16.0,14.6,17.0,14.0,3.1 +20061201,16.9,10.2,20.0,6.0,6.5 +20061202,4.3,-5.6,13.0,-1.0,5.7 +20061203,6.4,-3.4,13.3,-1.0,1.2 +20061204,1.2,-10.0,11.1,-4.4,6.5 +20061205,1.0,-11.9,8.9,-3.9,4.3 +20061206,2.1,-6.6,12.0,-4.0,2.3 +20061207,4.8,-6.2,12.8,-4.9,4.8 +20061208,-6.0,-17.4,7.8,-10.0,8.0 +20061209,-3.1,-15.4,8.0,-10.0,1.9 +20061210,0.6,-11.4,12.0,-6.1,0.9 +20061211,4.7,-8.2,16.7,-6.7,1.5 +20061212,3.4,-6.1,16.7,-4.4,1.5 +20061213,9.9,3.3,17.0,4.0,1.5 +20061214,5.1,0.2,16.7,-2.2,0.3 +20061215,7.6,0.2,18.3,-2.2,2.0 +20061216,9.1,-0.7,21.1,-2.1,0.9 +20061217,7.4,-0.2,21.1,-2.2,1.4 +20061218,8.3,0.6,20.6,-1.6,1.6 +20061219,7.8,3.2,20.0,-0.6,2.4 +20061220,6.2,2.1,16.7,0.0,2.1 +20061221,6.9,3.2,10.0,1.1,1.2 +20061222,10.8,9.9,13.3,4.4,2.7 +20061223,11.7,8.0,14.0,8.0,3.7 +20061224,6.9,0.1,15.0,1.7,4.0 +20061225,6.5,2.7,15.0,2.2,2.5 +20061226,5.7,2.4,10.0,1.7,4.4 +20061227,2.5,-4.1,8.3,-1.1,4.3 +20061228,2.2,-4.2,12.0,-4.0,1.3 +20061229,3.7,-3.9,15.0,-4.0,0.8 +20061230,5.1,1.7,15.6,-3.8,0.4 +20061231,9.4,8.3,12.0,8.9,2.8 +20070101,12.7,8.8,17.0,6.0,3.7 +20070102,4.6,-3.1,17.8,0.0,6.9 +20070103,2.8,-2.1,13.0,-5.0,1.5 +20070104,8.6,4.9,17.2,-4.9,2.8 +20070105,14.3,12.7,17.2,12.0,3.2 +20070106,12.4,8.4,19.0,7.0,2.2 +20070107,8.4,6.9,12.8,3.0,1.4 +20070108,8.2,1.7,12.2,2.2,4.8 +20070109,-0.2,-5.9,12.2,-5.0,3.4 +20070110,-0.3,-9.9,5.6,-5.0,5.4 +20070111,-0.3,-9.7,7.2,-6.1,2.2 +20070112,7.8,-0.1,13.0,4.0,3.2 +20070113,12.2,7.1,18.3,5.0,2.0 +20070114,11.4,7.1,18.9,3.9,1.7 +20070115,14.9,9.6,18.0,13.0,5.0 +20070116,7.2,3.9,18.9,-1.1,5.7 +20070117,-1.4,-9.3,3.0,-4.0,5.1 +20070118,-0.8,-6.9,2.8,-3.9,2.2 +20070119,3.4,-2.3,6.1,-2.2,5.0 +20070120,0.9,-11.3,7.0,-3.0,6.8 +20070121,1.4,-6.6,6.7,-2.2,2.6 +20070122,3.6,1.9,7.0,0.6,3.2 +20070123,1.6,-2.7,5.0,-1.0,5.5 +20070124,1.0,-5.3,7.2,-2.2,4.9 +20070125,0.7,-6.4,7.2,-2.2,5.5 +20070126,0.0,-11.3,9.4,-6.7,5.0 +20070127,2.9,-8.1,15.6,-6.7,2.9 +20070128,3.9,-5.3,15.6,-6.0,4.8 +20070129,-6.9,-15.8,1.0,-13.0,5.6 +20070130,-1.4,-11.7,8.9,-12.2,2.1 +20070131,-3.2,-14.6,8.9,-10.0,4.5 +20070201,-0.8,-7.3,3.3,-10.0,3.2 +20070202,2.4,0.6,7.0,0.0,2.2 +20070203,-2.2,-12.0,7.8,-7.2,4.1 +20070204,-1.4,-12.4,4.4,-7.2,2.6 +20070205,-3.8,-17.1,4.4,-7.2,5.0 +20070206,-3.7,-16.4,6.0,-9.0,3.7 +20070207,7.2,-3.5,11.0,2.0,5.5 +20070208,0.8,-10.8,11.1,-2.8,6.4 +20070209,-0.8,-18.2,6.7,-5.0,6.3 +20070210,-1.9,-17.3,3.0,-7.0,5.6 +20070211,-0.2,-15.7,10.0,-8.9,2.6 +20070212,4.3,-7.4,17.8,-8.3,1.8 +20070213,7.4,0.4,17.8,-4.9,2.7 +20070214,1.8,-1.1,9.4,-5.0,5.4 +20070215,-4.9,-13.8,5.0,-8.3,7.7 +20070216,-4.1,-15.4,1.0,-9.0,6.3 +20070217,-3.4,-12.3,5.0,-10.0,2.4 +20070218,-1.3,-9.7,5.0,-9.9,6.8 +20070219,0.3,-9.3,11.0,-7.0,4.7 +20070220,6.5,-3.6,13.3,-6.6,2.6 +20070221,11.8,7.0,17.0,8.0,3.0 +20070222,10.1,-0.3,18.3,2.8,5.4 +20070223,6.2,-13.3,17.8,0.6,9.4 +20070224,4.3,-10.9,13.3,-5.0,2.8 +20070225,7.1,0.4,11.0,4.0,4.2 +20070226,6.8,-0.2,14.4,0.6,2.8 +20070227,6.9,-6.9,16.0,-1.0,2.9 +20070228,6.7,-4.1,17.0,-3.0,2.3 +20070301,7.7,0.9,16.7,-2.7,2.4 +20070302,9.8,-1.1,13.9,3.3,4.6 +20070303,7.4,-9.7,14.4,-1.0,3.2 +20070304,1.0,-8.4,10.0,-4.0,6.5 +20070305,3.5,-10.4,14.0,-2.0,6.1 +20070306,8.8,-6.2,14.0,4.0,5.4 +20070307,8.5,-4.7,20.0,-0.6,2.3 +20070308,9.4,-2.7,20.0,-1.1,1.9 +20070309,7.6,-0.3,18.3,-1.0,2.5 +20070310,9.3,1.9,18.0,2.8,2.2 +20070311,13.7,2.5,18.9,2.8,2.6 +20070312,9.9,-3.7,19.0,1.0,1.1 +20070313,11.6,0.8,23.0,1.0,0.9 +20070314,16.0,6.2,24.0,9.0,1.9 +20070315,14.8,7.8,23.9,6.7,2.5 +20070316,11.3,9.5,17.2,3.0,3.3 +20070317,0.9,-8.1,5.0,-2.0,8.8 +20070318,1.6,-11.4,8.0,-3.3,3.2 +20070319,5.9,-5.9,17.2,-5.0,3.2 +20070320,12.9,6.0,22.0,5.6,2.4 +20070321,12.4,9.7,21.7,5.6,1.8 +20070322,14.9,7.7,21.1,9.4,3.6 +20070323,14.7,7.3,25.0,4.4,1.4 +20070324,16.4,8.1,26.0,8.0,1.6 +20070325,18.4,8.0,27.2,7.2,1.6 +20070326,18.2,9.5,27.2,7.8,2.7 +20070327,18.2,11.4,25.6,10.6,2.1 +20070328,18.0,10.9,26.1,10.0,1.1 +20070329,13.9,10.8,18.3,8.0,2.5 +20070330,10.8,6.9,18.9,7.8,2.3 +20070331,15.0,9.2,23.0,9.0,2.5 +20070401,16.7,12.8,23.9,8.9,3.3 +20070402,17.4,11.1,25.0,11.1,2.1 +20070403,16.0,6.8,26.0,7.0,2.0 +20070404,16.1,7.7,25.6,6.7,5.0 +20070405,6.0,-6.0,12.2,0.6,7.6 +20070406,3.5,-7.3,10.0,-1.0,6.0 +20070407,-1.2,-9.2,10.0,-6.7,5.8 +20070408,0.8,-12.1,8.9,-6.7,3.9 +20070409,3.9,-8.7,11.1,-5.5,2.4 +20070410,4.9,-6.3,13.9,-3.9,1.6 +20070411,7.8,1.4,11.1,6.0,3.2 +20070412,11.5,1.4,19.4,3.3,3.3 +20070413,9.4,-3.7,19.4,2.2,6.3 +20070414,12.0,-0.2,20.0,2.2,3.1 +20070415,11.3,8.5,15.0,3.0,6.2 +20070416,8.4,-4.9,15.0,3.0,14.3 +20070417,12.9,-7.4,19.4,5.0,11.9 +20070418,13.1,-0.7,20.0,7.2,2.8 +20070419,10.9,7.4,20.0,5.6,2.3 +20070420,11.4,3.2,18.9,5.6,2.5 +20070421,13.1,3.5,22.0,3.0,1.4 +20070422,14.8,2.3,24.0,4.0,1.7 +20070423,15.2,3.3,25.0,3.3,2.3 +20070424,17.1,8.4,25.0,3.9,1.5 +20070425,18.4,9.6,27.2,8.9,2.6 +20070426,18.1,11.4,27.2,10.0,3.3 +20070427,17.8,10.4,22.8,11.1,3.3 +20070428,14.3,5.5,22.8,9.4,5.1 +20070429,15.7,4.0,23.3,6.7,3.3 +20070430,17.9,3.4,28.3,5.6,2.1 +20070501,19.8,5.8,30.0,8.0,2.1 +20070502,19.1,7.6,30.0,8.3,0.8 +20070503,19.6,13.6,28.9,10.0,2.0 +20070504,13.9,12.3,16.1,12.0,2.8 +20070505,12.6,11.4,16.7,10.6,2.8 +20070506,16.0,12.3,22.2,10.6,1.7 +20070507,12.7,-1.2,21.0,2.0,2.3 +20070508,15.0,3.5,24.0,3.0,1.7 +20070509,18.7,11.1,24.4,7.8,2.6 +20070510,19.1,12.8,27.2,11.7,1.5 +20070511,19.9,14.6,27.8,11.7,1.7 +20070512,19.2,15.2,27.8,14.4,1.8 +20070513,20.4,10.6,26.1,13.3,3.9 +20070514,17.3,8.5,26.7,10.0,2.9 +20070515,17.8,8.8,26.7,10.0,2.3 +20070516,18.2,12.2,26.7,10.0,2.9 +20070517,14.8,5.4,21.0,9.0,4.5 +20070518,12.9,2.1,21.1,8.9,6.5 +20070519,12.9,-0.3,22.0,6.0,3.5 +20070520,16.2,0.1,26.0,7.0,3.3 +20070521,16.7,0.7,27.8,4.4,1.6 +20070522,18.1,6.4,27.8,4.4,1.5 +20070523,18.3,10.9,27.8,6.7,1.6 +20070524,19.1,11.9,25.6,11.1,2.2 +20070525,18.2,10.6,26.0,9.0,1.2 +20070526,20.4,11.2,28.0,12.0,1.7 +20070527,20.0,11.2,28.3,11.7,1.3 +20070528,20.4,11.8,28.9,11.7,1.8 +20070529,19.8,10.6,29.0,10.0,1.6 +20070530,20.2,8.4,29.4,9.4,1.3 +20070531,20.2,11.1,29.4,9.4,0.8 +20070601,21.4,13.5,29.4,15.0,2.1 +20070602,18.9,14.6,28.9,14.4,1.6 +20070603,18.7,13.6,24.4,14.4,4.0 +20070604,20.9,12.4,28.3,13.9,2.5 +20070605,21.4,9.8,29.4,13.3,3.1 +20070606,20.8,11.4,28.0,13.0,2.7 +20070607,22.0,12.4,31.0,12.0,2.5 +20070608,24.7,17.0,31.7,17.8,2.7 +20070609,22.4,15.2,31.7,16.1,4.9 +20070610,22.8,12.1,31.1,16.1,2.6 +20070611,21.4,14.2,31.1,16.7,1.5 +20070612,19.4,14.8,26.0,14.0,1.9 +20070613,18.1,13.3,26.0,14.0,2.0 +20070614,18.1,13.4,24.0,13.0,2.0 +20070615,18.1,14.7,25.6,13.3,2.3 +20070616,20.2,15.9,26.7,15.0,1.9 +20070617,21.5,13.8,29.0,13.0,1.2 +20070618,21.6,14.1,31.0,13.0,0.9 +20070619,22.0,16.8,31.7,13.3,1.7 +20070620,22.6,14.1,30.0,17.2,5.5 +20070621,20.8,7.7,30.0,11.1,2.5 +20070622,21.1,8.8,29.0,11.0,2.5 +20070623,22.5,12.9,31.0,14.0,2.0 +20070624,21.7,17.5,30.6,14.4,2.0 +20070625,22.1,17.4,28.9,17.2,1.4 +20070626,20.9,16.9,29.4,17.2,1.2 +20070627,22.4,17.2,30.0,16.1,1.1 +20070628,22.6,17.9,30.0,16.1,1.0 +20070629,23.0,17.7,30.0,17.2,1.7 +20070630,23.4,16.7,29.0,17.0,2.6 +20070701,22.9,17.2,27.2,18.0,2.2 +20070702,19.8,14.7,27.8,16.7,1.6 +20070703,19.4,14.2,25.6,15.6,2.2 +20070704,21.0,14.8,28.3,14.4,1.9 +20070705,22.2,15.6,29.0,14.0,1.9 +20070706,22.9,17.4,29.4,14.4,2.2 +20070707,22.3,17.5,29.4,16.7,1.1 +20070708,22.9,16.6,31.0,17.0,1.5 +20070709,23.4,17.4,31.0,17.0,2.0 +20070710,22.4,18.5,31.7,17.2,1.5 +20070711,22.2,18.2,27.0,18.0,1.3 +20070712,22.3,14.4,28.3,16.7,3.2 +20070713,19.2,12.1,28.3,15.6,2.1 +20070714,18.6,14.0,26.1,12.8,1.5 +20070715,21.1,16.2,26.1,12.8,2.0 +20070716,21.6,16.7,30.0,15.6,1.4 +20070717,22.2,17.9,30.0,15.6,1.8 +20070718,22.2,18.0,29.0,18.0,2.5 +20070719,21.7,17.6,29.4,16.0,2.5 +20070720,22.6,17.8,30.6,16.1,3.2 +20070721,20.3,12.4,27.2,13.9,1.6 +20070722,20.1,12.2,26.7,13.9,1.0 +20070723,17.4,12.7,25.0,12.0,1.4 +20070724,18.8,15.0,25.6,12.2,0.9 +20070725,20.3,16.2,28.0,17.0,1.9 +20070726,20.6,17.1,27.8,16.7,1.1 +20070727,20.6,17.2,27.2,16.0,1.0 +20070728,19.8,17.6,28.3,16.1,1.0 +20070729,22.5,19.2,26.0,20.6,1.3 +20070730,22.2,19.4,26.1,19.0,1.0 +20070731,22.1,17.8,28.9,17.8,1.7 +20070801,23.3,17.4,30.0,17.8,1.3 +20070802,23.6,17.4,30.0,17.8,1.2 +20070803,22.8,17.6,30.0,17.8,1.2 +20070804,23.7,17.8,31.7,17.2,1.5 +20070805,22.9,17.9,31.7,17.2,1.0 +20070806,24.3,19.4,31.7,17.8,1.7 +20070807,25.6,19.2,32.2,18.9,1.6 +20070808,25.7,20.3,33.3,18.9,1.4 +20070809,26.2,20.2,33.0,19.0,1.2 +20070810,25.9,19.7,34.4,18.9,1.0 +20070811,26.2,17.6,33.3,18.9,2.6 +20070812,25.2,18.9,32.2,19.4,2.2 +20070813,24.8,17.6,32.2,17.8,2.2 +20070814,24.6,14.8,32.2,16.7,2.4 +20070815,23.7,13.2,33.9,14.4,1.8 +20070816,24.9,17.7,34.4,14.4,0.8 +20070817,24.7,18.1,34.4,17.8,2.0 +20070818,24.2,15.4,33.3,15.6,2.0 +20070819,24.0,17.6,32.2,15.6,2.0 +20070820,25.1,17.7,33.0,17.0,1.4 +20070821,24.3,17.8,33.3,16.7,1.5 +20070822,25.1,18.8,33.3,17.2,1.8 +20070823,24.8,19.3,33.3,18.9,1.1 +20070824,23.1,18.5,32.2,18.0,1.4 +20070825,23.1,18.3,31.0,18.0,1.2 +20070826,22.6,18.4,32.2,18.3,2.1 +20070827,22.1,18.7,27.0,18.0,1.0 +20070828,-999.0,-999.0,-999.0,-999.0,-999.0 +20070829,22.1,18.1,30.6,17.8,1.6 +20070830,22.7,18.6,30.6,17.8,2.6 +20070831,21.6,18.3,27.0,18.0,2.4 +20070901,21.0,17.6,26.0,17.0,0.8 +20070902,21.2,16.2,26.1,17.2,0.0 +20070903,26.8,15.7,29.4,15.0,3.8 +20070904,18.8,15.7,29.4,15.0,0.6 +20070905,20.6,12.6,30.6,12.8,0.8 +20070906,21.9,14.6,30.6,12.8,1.6 +20070907,21.9,15.2,30.0,14.4,1.4 +20070908,21.6,14.2,29.0,13.0,0.9 +20070909,21.7,14.0,31.1,13.3,0.5 +20070910,23.3,16.2,31.1,13.3,0.4 +20070911,22.4,16.2,29.0,16.0,1.3 +20070912,21.8,15.8,29.4,16.1,3.0 +20070913,20.9,15.1,24.0,17.0,2.0 +20070914,20.4,18.3,24.4,17.2,1.1 +20070915,19.1,13.9,22.2,16.1,4.4 +20070916,14.4,7.8,22.2,8.3,1.7 +20070917,15.9,11.0,21.7,8.3,1.4 +20070918,15.6,10.9,23.9,10.0,0.6 +20070919,16.7,11.2,25.0,10.0,1.4 +20070920,16.8,12.3,25.0,10.0,1.4 +20070921,19.6,16.2,22.8,10.0,0.7 +20070922,21.7,16.7,28.9,17.2,0.7 +20070923,21.7,16.1,29.4,14.4,0.9 +20070924,21.3,15.7,29.4,14.4,0.6 +20070925,20.9,15.9,29.0,15.0,0.6 +20070926,20.1,15.1,28.9,13.9,0.6 +20070927,18.3,12.9,27.0,11.0,0.9 +20070928,20.1,11.7,27.2,11.1,4.3 +20070929,14.9,4.7,25.0,5.0,1.0 +20070930,13.1,6.2,22.0,4.0,0.7 +20071001,13.4,7.5,22.8,4.4,1.1 +20071002,14.8,9.7,23.3,4.4,0.9 +20071003,19.3,14.8,24.0,16.0,0.7 +20071004,19.7,17.5,24.4,16.1,0.4 +20071005,20.6,17.7,25.0,18.3,0.7 +20071006,19.6,16.1,26.1,15.0,0.5 +20071007,20.0,15.6,27.0,14.0,1.0 +20071008,19.0,14.4,27.0,12.0,0.8 +20071009,19.7,15.4,28.3,12.2,1.3 +20071010,19.4,12.2,28.3,13.9,3.3 +20071011,11.8,2.3,17.2,7.0,5.2 +20071012,10.9,3.2,17.0,6.0,3.9 +20071013,10.6,4.7,20.0,3.0,0.9 +20071014,12.9,6.4,23.3,3.3,1.0 +20071015,14.8,8.9,23.9,5.0,1.2 +20071016,14.8,11.3,23.9,7.2,1.4 +20071017,16.2,12.9,22.8,10.0,1.0 +20071018,17.9,15.2,22.8,11.7,1.9 +20071019,19.8,17.0,22.8,15.6,3.7 +20071020,14.0,5.4,22.8,6.7,2.3 +20071021,11.3,4.3,22.0,2.0,1.6 +20071022,12.0,10.4,22.2,2.2,1.0 +20071023,19.2,16.8,24.0,16.7,4.0 +20071024,16.6,14.4,23.9,13.9,2.7 +20071025,14.4,11.3,17.0,12.0,3.0 +20071026,14.4,11.3,19.4,11.7,2.7 +20071027,12.4,7.6,19.4,8.9,3.5 +20071028,12.2,4.6,17.2,8.9,7.0 +20071029,7.1,0.4,14.0,-1.0,1.6 +20071030,6.1,-0.3,18.3,-2.2,1.0 +20071031,6.8,0.9,19.4,-2.8,1.0 +20071101,11.1,6.3,21.0,3.0,1.7 +20071102,12.3,4.5,20.6,3.9,2.2 +20071103,8.4,-1.2,18.9,-1.1,3.1 +20071104,9.1,-3.4,18.3,-1.0,3.7 +20071105,9.2,-1.8,20.0,-1.0,1.6 +20071106,10.0,0.4,20.0,-0.5,6.5 +20071107,3.5,-7.8,15.0,-1.1,5.0 +20071108,1.9,-5.5,10.0,-5.0,1.7 +20071109,6.2,-2.4,15.6,-4.9,1.6 +20071110,8.3,-1.6,15.6,-1.6,4.5 +20071111,3.7,-3.1,13.0,-4.0,1.5 +20071112,8.3,0.9,20.0,-3.8,1.4 +20071113,10.8,5.4,20.0,-0.5,1.2 +20071114,13.6,9.6,22.2,5.0,1.4 +20071115,9.9,3.7,22.2,1.7,7.0 +20071116,2.4,-7.3,15.6,-1.7,6.1 +20071117,2.4,-5.3,13.0,-4.0,1.4 +20071118,7.5,0.6,18.0,0.0,0.9 +20071119,11.0,5.9,19.4,-0.5,1.4 +20071120,11.1,7.2,21.7,2.8,0.6 +20071121,10.3,6.8,21.7,2.8,1.5 +20071122,12.7,10.6,20.0,2.8,4.0 +20071123,2.6,-3.1,5.0,0.0,6.8 +20071124,-1.3,-6.4,5.0,-6.1,1.8 +20071125,3.7,-3.2,6.0,3.0,1.2 +20071126,9.5,9.2,14.0,5.0,3.7 +20071127,9.4,4.2,13.9,5.6,6.3 +20071128,5.1,-3.6,14.0,-2.0,2.5 +20071129,4.7,-1.6,13.9,-2.8,2.7 +20071130,5.4,-1.9,13.9,-2.7,2.0 +20071201,6.6,-5.8,16.0,-2.0,2.8 +20071202,9.2,-0.8,15.6,-1.0,3.5 +20071203,9.0,3.2,15.0,1.7,6.9 +20071204,1.0,-9.5,13.3,-3.3,4.7 +20071205,3.5,-6.3,15.0,-3.3,1.7 +20071206,1.1,-5.7,15.0,-3.3,5.1 +20071207,2.4,-4.8,10.0,-3.3,2.3 +20071208,9.1,4.9,19.4,-2.7,1.0 +20071209,10.7,9.7,19.4,1.1,1.1 +20071210,14.4,11.4,23.3,5.6,1.2 +20071211,12.5,9.0,23.3,3.9,1.5 +20071212,13.8,10.3,23.0,6.0,1.1 +20071213,12.4,10.6,22.8,5.0,1.5 +20071214,9.9,5.6,20.0,4.4,3.7 +20071215,4.7,3.1,15.6,1.7,2.3 +20071216,2.9,-0.4,6.0,-2.0,5.0 +20071217,-1.6,-9.4,6.1,-5.0,6.6 +20071218,-1.9,-8.4,7.0,-9.0,2.0 +20071219,3.6,-4.2,9.4,-8.9,3.1 +20071220,1.4,-0.2,9.4,-2.2,1.2 +20071221,4.4,3.4,6.1,-1.6,1.3 +20071222,5.3,3.8,7.8,3.3,1.8 +20071223,8.5,6.5,15.6,3.3,4.7 +20071224,3.4,-8.6,15.6,-1.1,3.7 +20071225,4.8,-6.1,10.0,-0.5,2.3 +20071226,4.6,0.5,11.1,0.0,2.3 +20071227,8.0,4.3,16.1,0.0,2.3 +20071228,8.2,7.2,16.1,5.0,2.6 +20071229,10.6,8.5,13.3,5.6,4.5 +20071230,5.7,4.1,8.9,3.0,1.7 +20071231,4.3,0.4,11.1,-2.8,2.0 +20080101,1.8,-5.9,11.1,-2.8,3.9 +20080102,-6.5,-11.7,5.6,-9.4,7.7 +20080103,-7.2,-13.9,0.0,-11.7,6.4 +20080104,-4.1,-12.3,6.1,-11.1,1.1 +20080105,1.9,-7.9,12.2,-11.1,2.6 +20080106,7.9,2.3,17.2,-3.8,1.7 +20080107,8.3,4.7,19.4,-0.6,1.3 +20080108,12.9,9.9,16.0,10.0,3.5 +20080109,13.7,8.2,17.0,9.0,5.1 +20080110,6.2,4.2,9.4,2.0,1.8 +20080111,10.7,7.7,14.4,2.8,4.8 +20080112,4.9,0.2,14.4,-0.6,3.0 +20080113,3.6,1.2,8.0,-1.0,1.0 +20080114,1.2,-3.9,8.3,-2.2,4.0 +20080115,-1.5,-8.9,7.8,-5.0,4.4 +20080116,-1.7,-9.7,4.0,-7.0,2.8 +20080117,-0.3,-1.8,4.4,-6.7,1.6 +20080118,4.1,-0.3,10.6,-2.7,3.2 +20080119,1.5,-6.9,10.6,-1.7,4.9 +20080120,-6.1,-15.3,2.8,-11.1,6.3 +20080121,-6.7,-17.1,1.0,-12.0,2.6 +20080122,1.1,-6.9,8.0,-3.0,2.7 +20080123,5.0,1.4,9.4,-2.1,4.6 +20080124,0.1,-3.9,9.4,-3.9,5.2 +20080125,-5.2,-15.2,3.0,-12.0,4.6 +20080126,1.6,-10.7,9.0,-1.0,1.5 +20080127,2.1,-3.9,8.0,-2.0,5.0 +20080128,3.9,-6.8,14.4,-4.4,3.1 +20080129,9.2,-4.1,16.1,-3.8,3.3 +20080130,4.8,-5.4,16.1,-2.2,6.4 +20080131,-0.8,-11.7,10.0,-7.2,2.8 +20080201,2.3,-0.2,10.0,-5.6,2.5 +20080202,3.9,-3.3,16.1,-3.9,2.9 +20080203,6.7,-2.7,16.1,-3.2,2.1 +20080204,7.8,6.5,16.1,-1.6,1.1 +20080205,14.7,10.7,22.8,4.4,3.1 +20080206,15.6,13.1,22.8,11.7,5.3 +20080207,7.0,-0.2,13.9,1.0,4.3 +20080208,5.2,-2.2,13.0,-1.0,3.0 +20080209,6.0,-2.7,15.0,-1.0,1.7 +20080210,8.9,-8.9,16.1,1.7,6.6 +20080211,2.2,-12.3,13.3,-5.6,4.4 +20080212,3.8,-2.3,11.7,-5.6,1.9 +20080213,5.2,2.9,10.0,-3.3,5.1 +20080214,-1.0,-7.7,11.0,-7.0,5.7 +20080215,6.0,-2.8,16.1,-6.7,3.0 +20080216,10.4,2.9,17.2,-3.2,1.7 +20080217,7.8,4.8,17.2,4.4,3.7 +20080218,9.4,6.7,13.3,4.4,3.9 +20080219,3.7,-8.7,13.3,-1.1,4.4 +20080220,4.3,-5.7,14.4,-3.3,3.0 +20080221,3.8,-1.5,14.4,-2.7,3.8 +20080222,3.0,2.1,13.3,-0.6,2.8 +20080223,7.4,5.2,13.3,0.0,4.1 +20080224,2.9,-0.8,12.8,-2.2,3.6 +20080225,7.1,2.4,16.1,-2.1,2.9 +20080226,9.8,4.4,16.1,3.9,3.7 +20080227,-1.4,-7.7,3.9,-5.0,8.0 +20080228,-3.6,-10.8,4.0,-7.2,5.2 +20080229,1.4,-6.2,10.0,-7.2,3.0 +20080301,6.7,-1.6,15.0,-2.1,4.0 +20080302,6.1,-5.4,17.0,-3.0,2.2 +20080303,8.4,0.2,18.0,-1.0,3.5 +20080304,14.9,11.7,16.1,13.0,6.1 +20080305,5.7,0.8,13.9,1.0,6.1 +20080306,6.1,0.1,17.0,-2.0,2.2 +20080307,8.1,5.7,17.2,-1.6,1.7 +20080308,6.7,2.6,13.0,-2.0,6.2 +20080309,0.3,-9.8,12.8,-4.4,5.1 +20080310,4.8,-4.4,16.0,-3.3,1.2 +20080311,7.4,-1.2,15.6,-3.8,1.7 +20080312,8.5,-3.4,18.0,2.0,4.5 +20080313,10.1,-0.3,22.8,-0.6,1.6 +20080314,10.8,3.6,22.8,-0.5,2.1 +20080315,9.9,8.8,16.1,3.9,1.9 +20080316,8.4,3.7,14.4,5.6,5.2 +20080317,6.2,-0.2,11.0,-1.0,3.2 +20080318,6.3,0.3,11.1,-0.5,2.4 +20080319,11.7,10.3,16.7,2.8,4.1 +20080320,7.9,0.4,16.1,2.0,7.5 +20080321,7.1,-3.6,18.3,-2.8,2.7 +20080322,12.1,-1.9,21.7,-2.7,3.3 +20080323,6.3,-2.5,13.3,2.0,5.7 +20080324,1.4,-6.3,12.2,-2.8,6.7 +20080325,3.3,-6.0,12.2,-4.4,3.5 +20080326,8.6,-3.6,20.0,-4.3,1.9 +20080327,12.6,3.1,21.7,-1.6,1.9 +20080328,15.6,7.1,22.2,3.9,3.5 +20080329,11.8,9.6,22.2,5.6,2.9 +20080330,4.2,2.2,6.0,2.0,2.5 +20080331,6.4,4.8,15.0,2.2,3.1 +20080401,15.1,11.0,24.4,3.9,3.7 +20080402,15.4,8.1,24.4,9.4,4.8 +20080403,9.2,6.0,12.2,6.0,2.3 +20080404,10.7,9.7,18.3,5.0,4.2 +20080405,12.6,11.7,18.3,5.0,2.0 +20080406,13.3,10.5,18.0,9.0,2.6 +20080407,12.1,8.6,18.0,8.0,3.2 +20080408,11.5,8.1,17.8,8.3,3.2 +20080409,13.6,7.4,23.0,8.0,2.0 +20080410,14.9,8.4,22.0,7.0,2.0 +20080411,18.0,11.3,23.3,7.2,3.1 +20080412,18.2,8.8,23.3,13.9,3.0 +20080413,9.7,-2.2,22.2,5.0,5.6 +20080414,4.1,-1.0,11.7,1.7,4.6 +20080415,6.3,-2.7,14.0,2.0,5.8 +20080416,8.1,-4.8,20.0,-2.2,1.2 +20080417,12.7,-1.1,23.9,-2.1,2.0 +20080418,15.3,1.8,26.0,4.0,2.2 +20080419,15.4,8.2,19.4,12.8,3.9 +20080420,10.9,6.3,18.9,5.0,4.1 +20080421,12.6,5.1,20.6,5.0,5.3 +20080422,14.9,7.7,21.1,5.6,3.0 +20080423,17.1,9.6,23.3,8.9,1.5 +20080424,16.7,9.6,24.4,7.8,1.7 +20080425,17.2,10.4,25.0,7.8,1.9 +20080426,16.3,13.3,23.0,9.0,0.9 +20080427,15.2,13.8,23.9,9.4,1.3 +20080428,14.7,11.9,19.4,11.7,3.4 +20080429,7.7,-1.2,12.8,2.0,5.9 +20080430,8.9,-0.4,21.0,-1.0,1.9 +20080501,14.3,4.1,23.3,1.7,3.2 +20080502,18.2,8.9,24.0,13.0,4.1 +20080503,17.1,11.2,23.9,12.8,4.5 +20080504,16.2,9.2,24.0,10.0,3.0 +20080505,17.3,5.3,23.9,8.9,4.3 +20080506,16.4,2.4,25.0,6.7,2.8 +20080507,17.3,7.5,25.0,6.7,2.7 +20080508,19.8,12.4,25.6,10.6,4.4 +20080509,19.3,13.7,25.0,14.0,3.1 +20080510,18.4,12.4,26.1,13.3,3.5 +20080511,15.8,9.8,23.9,10.6,3.9 +20080512,13.0,3.8,20.6,10.0,11.6 +20080513,13.5,4.2,22.0,4.0,2.4 +20080514,14.2,8.7,22.2,4.4,2.9 +20080515,15.5,13.0,20.0,8.9,2.0 +20080516,16.5,14.6,22.0,12.0,2.6 +20080517,13.9,5.7,22.2,7.8,4.6 +20080518,13.9,8.8,21.7,6.7,1.6 +20080519,15.4,5.6,23.3,5.6,2.2 +20080520,18.8,9.8,27.0,12.8,2.7 +20080521,15.7,7.3,26.7,8.9,4.0 +20080522,15.2,3.9,25.0,5.6,3.0 +20080523,18.6,8.2,27.2,5.6,1.7 +20080524,18.9,12.2,27.2,10.6,3.1 +20080525,17.3,10.5,25.0,8.9,2.2 +20080526,19.7,13.3,27.2,8.9,2.9 +20080527,20.1,16.1,27.0,13.0,1.9 +20080528,18.8,17.6,27.8,13.3,1.4 +20080529,16.1,12.6,25.0,11.7,2.2 +20080530,20.3,16.1,27.8,11.7,2.2 +20080531,24.2,16.8,30.6,13.9,3.0 +20080601,20.9,14.3,30.6,15.0,2.0 +20080602,20.9,14.3,27.8,15.0,3.1 +20080603,20.7,15.2,28.3,13.3,1.9 +20080604,25.3,17.0,32.8,13.3,3.0 +20080605,24.6,17.0,32.8,16.1,2.3 +20080606,24.8,16.9,32.2,16.1,2.1 +20080607,24.7,18.6,33.3,16.1,1.1 +20080608,24.7,18.3,33.9,16.7,1.4 +20080609,25.9,17.3,34.0,17.0,1.9 +20080610,24.3,17.8,33.9,17.2,2.1 +20080611,22.2,18.0,32.2,17.8,2.0 +20080612,24.2,16.8,29.0,18.0,2.4 +20080613,24.0,16.6,29.0,18.0,2.2 +20080614,21.4,17.1,29.4,16.7,1.8 +20080615,22.1,16.2,29.4,16.7,4.0 +20080616,21.8,13.6,30.0,13.0,2.5 +20080617,22.8,13.7,31.1,13.3,3.5 +20080618,19.3,7.2,29.4,11.1,3.9 +20080619,19.7,7.2,27.2,11.1,2.7 +20080620,19.3,9.9,27.2,10.6,1.2 +20080621,20.7,13.3,26.1,10.6,2.2 +20080622,19.3,15.3,27.2,13.9,1.6 +20080623,21.3,14.1,28.9,13.9,1.4 +20080624,21.2,11.7,30.0,12.2,2.0 +20080625,22.2,9.6,32.0,12.0,1.6 +20080626,21.9,13.4,31.7,11.7,1.1 +20080627,21.6,16.6,31.7,12.2,2.5 +20080628,21.3,17.6,31.1,15.6,1.5 +20080629,22.7,17.8,31.1,15.6,2.2 +20080630,21.0,14.3,29.4,15.0,2.7 +20080701,17.9,10.0,26.7,10.0,3.8 +20080702,18.6,8.7,27.8,8.9,1.4 +20080703,20.1,10.3,28.9,8.9,1.3 +20080704,20.6,15.6,28.9,10.0,0.9 +20080705,20.9,17.8,28.9,15.0,1.2 +20080706,20.9,17.8,28.3,17.2,1.4 +20080707,21.4,16.9,28.0,17.0,2.2 +20080708,21.2,18.4,29.4,17.2,0.9 +20080709,21.9,18.8,29.4,17.8,2.2 +20080710,20.9,19.2,29.4,17.8,1.3 +20080711,23.8,18.4,29.4,17.8,2.7 +20080712,23.3,16.7,31.0,16.0,1.7 +20080713,22.4,18.6,31.1,16.1,1.5 +20080714,22.7,15.7,28.0,19.0,3.7 +20080715,21.9,12.8,29.0,16.0,2.3 +20080716,21.8,13.8,28.9,14.4,1.1 +20080717,21.8,14.2,28.3,13.3,1.1 +20080718,21.4,13.8,29.0,13.0,1.3 +20080719,23.8,14.9,31.7,12.8,1.4 +20080720,23.5,15.3,31.7,15.0,2.0 +20080721,26.7,17.7,33.9,15.0,3.2 +20080722,24.2,15.4,33.9,16.1,3.0 +20080723,23.4,16.8,32.2,16.1,3.8 +20080724,21.4,12.3,29.4,12.8,2.3 +20080725,21.3,13.7,28.3,12.8,1.4 +20080726,21.8,17.9,28.3,17.2,1.1 +20080727,24.5,17.7,32.0,18.0,3.0 +20080728,23.4,16.1,32.2,15.6,2.5 +20080729,22.5,19.0,31.7,15.6,2.5 +20080730,25.0,19.3,32.8,18.3,1.7 +20080731,24.7,19.1,32.8,18.3,2.7 +20080801,25.2,18.0,31.1,20.0,4.1 +20080802,24.8,17.1,33.3,16.7,2.9 +20080803,24.3,16.1,33.3,16.7,2.2 +20080804,24.6,15.4,33.0,17.0,2.0 +20080805,25.6,15.9,33.9,17.2,3.1 +20080806,26.6,17.2,33.9,17.2,3.0 +20080807,24.9,17.1,29.0,19.0,2.9 +20080808,22.9,13.6,29.4,17.8,4.1 +20080809,20.4,11.1,28.3,11.7,2.2 +20080810,21.3,14.8,28.3,11.7,1.6 +20080811,21.7,11.3,28.3,15.0,3.9 +20080812,19.6,10.9,28.3,12.2,1.4 +20080813,20.3,16.0,26.7,12.2,1.6 +20080814,21.0,15.4,28.9,16.7,2.1 +20080815,20.4,14.6,28.9,13.9,1.3 +20080816,21.0,14.4,28.3,13.9,1.3 +20080817,20.3,15.9,28.3,16.1,1.4 +20080818,-999.0,-999.0,-999.0,-999.0,-999.0 +20080819,23.1,15.3,33.0,15.0,1.4 +20080820,22.7,15.1,32.8,15.0,1.3 +20080821,21.5,15.3,29.4,15.0,1.6 +20080822,22.3,14.8,27.8,15.0,1.7 +20080823,22.5,14.8,27.0,18.0,2.2 +20080824,21.2,15.8,26.0,16.0,1.6 +20080825,21.4,18.4,27.2,16.1,0.6 +20080826,20.3,19.1,22.2,19.0,2.0 +20080827,21.4,19.5,26.0,19.0,2.4 +20080828,21.9,19.0,26.1,19.4,2.6 +20080829,22.1,15.8,29.0,17.0,2.7 +20080830,21.8,15.3,30.0,14.0,1.2 +20080831,22.8,18.2,30.0,14.4,1.5 +20080901,22.1,19.7,29.4,17.2,1.3 +20080902,21.1,17.1,27.0,16.0,0.9 +20080903,20.4,15.4,28.0,14.0,0.9 +20080904,19.4,13.9,27.0,12.0,1.8 +20080905,21.3,14.9,28.9,12.2,1.0 +20080906,22.5,16.2,28.9,14.4,3.7 +20080907,22.1,16.4,29.4,15.0,2.3 +20080908,22.0,16.7,29.4,15.0,1.8 +20080909,22.4,19.3,28.9,15.0,1.6 +20080910,20.6,18.7,25.0,18.0,1.3 +20080911,19.3,17.8,23.0,17.0,2.1 +20080912,21.1,19.1,26.7,17.2,2.7 +20080913,22.6,19.2,29.4,18.9,1.5 +20080914,23.2,18.9,29.4,18.9,3.7 +20080915,21.7,16.9,24.0,18.0,4.7 +20080916,17.4,14.7,19.4,16.0,2.8 +20080917,17.4,13.3,21.1,15.0,1.6 +20080918,17.2,12.7,25.0,12.0,1.6 +20080919,16.5,12.2,25.6,10.0,0.8 +20080920,16.5,12.3,22.8,10.0,1.3 +20080921,15.4,12.2,21.0,11.0,0.5 +20080922,16.7,11.4,25.6,10.0,1.1 +20080923,13.7,10.2,25.6,8.9,0.6 +20080924,15.7,7.4,22.8,8.3,1.5 +20080925,13.9,7.1,23.3,7.2,3.2 +20080926,16.4,12.0,23.3,7.2,6.0 +20080927,17.3,14.3,23.0,15.0,2.6 +20080928,20.1,15.2,24.4,15.0,3.7 +20080929,17.3,13.4,25.0,12.8,2.1 +20080930,16.6,11.8,25.0,10.0,1.0 +20081001,15.4,10.2,23.9,10.6,3.8 +20081002,11.2,4.0,18.9,4.4,2.5 +20081003,11.2,5.1,21.1,2.8,0.6 +20081004,13.2,7.5,23.3,2.8,0.4 +20081005,15.1,9.8,24.4,4.4,0.5 +20081006,15.4,10.4,25.0,7.2,0.9 +20081007,13.4,11.1,25.0,7.8,1.6 +20081008,13.9,12.9,17.2,7.8,2.6 +20081009,16.8,14.5,22.8,13.3,1.3 +20081010,17.2,15.1,22.8,12.8,1.1 +20081011,18.3,13.6,22.0,16.0,1.9 +20081012,17.6,6.6,22.0,14.0,1.6 +20081013,16.8,10.3,23.0,12.8,1.2 +20081014,15.6,9.0,26.1,5.6,1.2 +20081015,16.4,9.9,27.2,5.6,0.4 +20081016,16.9,12.1,27.2,8.3,1.2 +20081017,17.2,15.3,25.6,9.4,2.7 +20081018,11.0,6.1,18.3,7.8,4.9 +20081019,8.4,1.1,17.2,1.1,2.0 +20081020,7.9,2.5,18.0,-1.0,0.9 +20081021,11.0,5.1,19.0,4.0,2.9 +20081022,9.9,3.2,18.9,1.7,2.0 +20081023,6.2,1.2,17.8,0.6,1.4 +20081024,8.1,4.9,11.7,0.6,2.4 +20081025,11.5,8.9,14.4,7.2,3.4 +20081026,9.8,3.7,18.9,3.9,2.9 +20081027,6.8,-1.8,11.1,3.0,4.8 +20081028,3.0,-4.0,9.4,0.6,8.4 +20081029,4.9,-6.2,12.8,0.6,6.2 +20081030,7.1,-5.5,17.2,-2.2,2.0 +20081031,7.2,-1.9,20.0,-2.8,1.4 +20081101,8.7,-0.6,21.0,-1.0,1.3 +20081102,8.8,1.4,20.6,-1.0,0.9 +20081103,9.3,3.5,20.6,0.0,0.7 +20081104,11.9,6.7,20.0,0.6,2.2 +20081105,11.7,6.4,21.0,4.0,1.6 +20081106,11.8,5.4,22.2,2.8,1.5 +20081107,10.9,4.7,22.8,1.7,1.5 +20081108,12.6,3.6,22.8,1.7,4.2 +20081109,5.4,-1.3,15.6,-1.1,2.1 +20081110,5.3,-2.7,13.3,-1.0,4.6 +20081111,4.6,-4.7,13.3,-3.3,1.9 +20081112,7.2,-0.6,12.8,-2.7,1.6 +20081113,9.7,6.7,16.7,2.2,1.7 +20081114,12.5,12.0,18.0,11.0,2.0 +20081115,13.3,10.3,17.8,5.6,4.1 +20081116,3.0,-1.7,5.6,0.6,7.0 +20081117,2.1,-3.8,10.6,-2.8,4.1 +20081118,-0.7,-9.3,3.9,-4.0,7.3 +20081119,-1.2,-11.4,7.2,-6.1,3.8 +20081120,3.8,-6.3,12.8,-6.1,3.7 +20081121,-0.4,-7.7,12.8,-4.4,7.4 +20081122,-3.2,-13.7,6.0,-9.4,2.4 +20081123,2.5,-10.1,10.0,-9.3,1.5 +20081124,2.6,-2.4,10.0,-3.9,2.7 +20081125,3.6,-3.3,8.3,-3.8,4.4 +20081126,1.6,-6.6,10.0,-3.3,3.9 +20081127,2.5,-4.2,15.0,-6.0,0.5 +20081128,5.1,-0.2,15.6,-5.6,1.8 +20081129,6.7,2.1,13.9,-1.6,1.6 +20081130,2.6,2.4,8.3,1.7,2.4 +20081201,2.2,-0.7,5.0,-0.6,3.3 +20081202,0.8,-4.9,4.4,-1.1,2.6 +20081203,-1.1,-6.9,9.4,-7.8,1.1 +20081204,3.9,-0.5,11.1,-7.7,2.8 +20081205,1.1,-3.9,6.1,-3.0,5.8 +20081206,-2.5,-6.5,2.0,-7.0,1.3 +20081207,-0.1,-9.3,2.2,-6.6,5.1 +20081208,-1.5,-10.9,7.2,-7.2,1.7 +20081209,5.9,0.4,11.0,2.0,3.3 +20081210,12.8,11.8,14.4,2.2,2.9 +20081211,13.4,12.9,16.1,9.4,2.7 +20081212,4.1,-0.7,16.1,-1.1,6.2 +20081213,0.6,-7.1,8.3,-5.6,3.9 +20081214,1.8,-3.6,8.3,-4.9,2.5 +20081215,8.8,8.6,13.3,-2.7,1.5 +20081216,12.3,11.8,17.0,9.0,2.3 +20081217,12.3,11.2,18.3,8.0,2.6 +20081218,13.4,12.4,20.0,8.3,2.2 +20081219,13.0,10.6,18.9,7.8,2.1 +20081220,12.8,7.6,18.9,7.8,3.0 +20081221,7.3,2.1,13.0,-2.0,6.0 +20081222,-6.7,-17.1,-1.7,-12.0,7.2 +20081223,-3.9,-13.9,3.3,-11.7,2.7 +20081224,5.6,2.2,11.1,-7.1,3.8 +20081225,10.2,2.5,14.4,1.7,4.6 +20081226,6.2,1.2,14.4,0.6,1.2 +20081227,10.4,8.6,16.1,0.6,3.2 +20081228,13.1,11.4,16.1,6.1,4.1 +20081229,7.6,0.3,10.0,4.0,5.9 +20081230,8.3,-6.1,18.9,2.8,3.3 +20081231,5.4,-5.9,18.9,-0.6,6.2 +20090101,-1.6,-12.8,12.2,-7.2,3.3 +20090102,2.7,-4.8,9.4,-6.1,3.1 +20090103,5.1,2.8,15.0,-1.6,1.7 +20090104,11.5,8.6,18.0,8.9,1.3 +20090105,10.6,8.9,19.4,5.0,1.6 +20090106,12.3,11.7,19.4,5.0,1.6 +20090107,11.9,7.3,17.0,1.0,4.8 +20090108,3.0,-4.9,5.0,1.0,3.0 +20090109,1.1,-8.6,10.6,-5.6,4.0 +20090110,4.2,-2.4,11.7,-4.4,2.5 +20090111,5.6,2.9,11.7,-2.7,6.6 +20090112,0.6,-5.3,11.1,-2.2,4.7 +20090113,0.0,-4.8,8.3,-5.0,1.2 +20090114,-1.3,-8.7,8.3,-8.3,4.5 +20090115,-1.8,-10.5,7.8,-8.3,5.9 +20090116,-10.5,-21.4,-6.0,-15.0,6.6 +20090117,-8.6,-18.6,1.0,-16.0,2.6 +20090118,0.5,-4.8,7.0,-3.0,3.3 +20090119,0.4,-3.6,7.2,-3.9,2.4 +20090120,-5.6,-10.7,3.3,-8.3,8.7 +20090121,-6.2,-14.8,1.0,-11.0,7.0 +20090122,-0.9,-11.4,10.0,-10.6,2.2 +20090123,2.1,-5.3,17.8,-8.3,0.8 +20090124,8.9,2.4,11.7,4.0,3.9 +20090125,2.8,-5.2,10.6,0.0,3.3 +20090126,4.4,-2.4,10.6,0.0,1.9 +20090127,5.1,3.2,13.3,0.0,1.9 +20090128,8.3,6.8,12.0,3.0,4.3 +20090129,2.4,-3.3,12.2,-1.1,5.6 +20090130,0.1,-7.8,8.9,-2.2,5.5 +20090131,0.8,-9.6,7.2,-2.2,4.5 +20090201,1.5,-6.8,14.0,-7.0,1.0 +20090202,2.8,-2.2,14.4,-6.6,2.6 +20090203,-1.0,-7.4,4.0,-5.0,5.5 +20090204,-9.2,-14.9,4.4,-13.3,8.4 +20090205,-7.4,-14.8,0.6,-13.3,5.1 +20090206,-1.0,-9.5,13.3,-11.1,1.3 +20090207,4.7,-3.4,19.4,-10.0,1.1 +20090208,9.9,1.4,19.4,-4.3,2.1 +20090209,8.3,3.8,19.0,-1.1,1.9 +20090210,13.6,6.4,18.0,8.0,3.8 +20090211,11.7,8.0,17.8,8.9,4.5 +20090212,10.6,-0.6,14.4,3.9,4.9 +20090213,7.5,-5.2,16.0,-2.0,1.9 +20090214,6.8,1.8,16.1,-1.6,2.7 +20090215,6.5,-0.9,13.3,2.8,5.1 +20090216,2.8,-5.7,12.8,-1.1,6.0 +20090217,0.3,-8.4,9.4,-6.7,2.0 +20090218,6.4,0.6,13.0,4.0,5.2 +20090219,5.9,-1.1,13.3,0.0,5.1 +20090220,-2.8,-13.9,10.6,-8.3,5.7 +20090221,-0.4,-11.3,10.0,-8.3,3.3 +20090222,0.0,-8.1,10.0,-7.8,4.9 +20090223,-3.2,-11.4,3.3,-7.2,6.7 +20090224,-1.0,-10.6,8.3,-8.9,3.0 +20090225,4.6,-7.3,12.0,1.0,2.4 +20090226,10.1,3.2,18.3,0.6,3.0 +20090227,11.1,8.1,18.3,6.1,4.1 +20090228,8.8,8.1,12.8,6.7,0.8 +20090301,2.8,1.9,7.0,0.0,3.8 +20090302,-4.6,-10.2,-2.0,-7.0,9.3 +20090303,-4.7,-14.6,3.3,-10.0,5.8 +20090304,0.3,-9.2,8.0,-4.0,1.5 +20090305,3.4,-5.5,15.0,-5.0,1.7 +20090306,10.6,1.4,19.4,-4.9,3.6 +20090307,13.4,6.9,25.6,1.1,1.9 +20090308,14.8,6.9,25.6,3.3,2.3 +20090309,18.7,8.0,23.0,15.0,4.3 +20090310,13.7,3.3,23.9,5.6,2.1 +20090311,14.4,7.8,23.3,5.6,2.5 +20090312,8.6,-0.3,12.8,5.0,5.1 +20090313,5.9,-4.2,12.2,2.8,3.3 +20090314,3.1,2.5,6.1,1.7,2.9 +20090315,6.7,5.9,13.3,1.7,1.7 +20090316,10.3,9.8,13.3,3.9,1.0 +20090317,12.2,7.2,19.4,6.1,2.7 +20090318,11.3,5.8,19.4,5.0,1.4 +20090319,10.6,3.6,18.9,1.7,2.2 +20090320,7.4,-5.3,12.0,1.0,5.1 +20090321,4.1,-4.8,12.8,-3.3,1.7 +20090322,7.7,-1.4,18.9,-3.2,1.3 +20090323,10.3,1.0,19.4,-2.1,0.6 +20090324,10.5,3.3,19.4,0.6,1.6 +20090325,7.8,5.7,18.9,1.7,3.6 +20090326,7.4,6.9,13.0,4.0,3.1 +20090327,11.1,10.8,13.3,5.0,1.0 +20090328,12.9,12.3,14.4,9.4,1.6 +20090329,11.3,7.0,15.0,6.7,4.7 +20090330,8.0,-4.0,17.0,2.0,6.1 +20090331,7.7,-0.3,13.9,1.0,1.2 +20090401,12.3,8.7,21.0,8.9,2.4 +20090402,14.0,12.0,20.6,8.9,2.1 +20090403,13.1,8.2,17.2,8.9,5.2 +20090404,10.8,0.6,20.6,5.0,5.8 +20090405,12.8,2.6,23.3,1.7,2.7 +20090406,11.7,5.3,23.3,1.7,6.2 +20090407,1.4,-3.8,13.9,-1.1,5.2 +20090408,5.1,-5.3,15.0,-2.2,2.8 +20090409,12.8,-2.2,21.1,-2.1,2.4 +20090410,13.3,7.6,21.1,4.4,3.3 +20090411,11.2,8.3,16.1,8.9,3.4 +20090412,9.8,2.6,17.8,2.2,2.5 +20090413,9.5,4.8,17.8,2.2,2.5 +20090414,10.5,9.3,17.8,7.8,2.2 +20090415,9.3,4.0,17.8,6.7,6.1 +20090416,10.3,2.8,18.3,3.9,2.7 +20090417,11.0,1.2,21.1,0.0,0.8 +20090418,13.6,2.7,23.3,0.0,1.9 +20090419,13.1,5.6,23.3,2.8,1.5 +20090420,14.4,10.5,20.0,8.9,2.5 +20090421,10.9,2.4,20.0,3.3,3.0 +20090422,10.5,-3.6,17.2,2.8,5.0 +20090423,13.9,0.8,25.6,2.2,1.7 +20090424,17.5,7.3,29.0,9.0,1.1 +20090425,19.0,9.6,28.9,8.3,2.1 +20090426,19.5,9.4,28.9,9.4,2.1 +20090427,18.4,8.3,27.2,10.6,2.4 +20090428,17.5,10.3,25.6,10.0,2.0 +20090429,17.8,11.4,25.0,10.0,1.9 +20090430,17.1,10.8,25.0,10.0,2.5 +20090501,18.1,12.3,24.4,12.2,2.4 +20090502,17.8,13.9,24.4,14.4,2.3 +20090503,17.7,15.2,22.8,13.9,2.3 +20090504,17.8,14.5,22.8,14.4,3.9 +20090505,16.9,14.7,23.0,13.0,2.1 +20090506,17.2,15.1,23.3,13.3,2.2 +20090507,18.8,14.6,25.0,12.8,2.3 +20090508,16.1,13.4,25.0,10.6,1.4 +20090509,20.2,16.6,26.7,10.6,1.9 +20090510,18.7,11.5,26.7,13.9,3.9 +20090511,14.1,10.2,24.4,11.7,1.5 +20090512,12.6,7.3,21.7,6.7,1.5 +20090513,14.8,8.7,21.7,6.7,2.2 +20090514,18.4,14.2,25.0,9.4,2.5 +20090515,18.8,16.4,25.0,15.0,1.5 +20090516,18.2,15.7,24.0,14.0,1.7 +20090517,14.4,12.8,17.2,9.0,3.9 +20090518,10.8,3.4,17.2,5.6,3.2 +20090519,10.7,1.4,19.4,1.7,1.4 +20090520,13.8,4.2,23.0,6.0,1.2 +20090521,17.3,9.9,22.8,5.6,1.8 +20090522,17.0,12.4,23.3,10.6,1.0 +20090523,18.1,14.1,23.3,10.6,1.0 +20090524,18.9,17.1,23.3,13.9,1.1 +20090525,19.8,17.7,25.0,16.7,1.3 +20090526,19.8,17.2,23.0,16.0,1.7 +20090527,19.7,17.7,24.4,16.1,1.6 +20090528,19.6,17.6,24.4,16.7,1.4 +20090529,19.7,16.1,25.6,15.6,2.7 +20090530,18.8,12.2,25.6,12.2,4.4 +20090531,19.9,12.8,27.8,11.7,2.3 +20090601,19.5,12.1,27.8,10.6,1.6 +20090602,21.2,14.8,29.4,10.6,1.1 +20090603,20.3,15.2,29.4,13.3,1.0 +20090604,19.2,17.1,28.3,13.3,2.3 +20090605,19.1,16.8,23.3,16.1,3.2 +20090606,19.1,13.6,26.7,13.9,2.7 +20090607,21.1,15.6,27.2,13.9,1.9 +20090608,20.5,16.5,28.0,15.0,1.4 +20090609,21.3,16.3,30.6,14.4,2.0 +20090610,20.4,17.1,30.6,15.6,0.9 +20090611,19.9,17.8,27.2,15.6,1.5 +20090612,21.1,17.1,27.2,16.7,2.4 +20090613,21.6,16.3,28.0,15.0,2.0 +20090614,22.1,16.2,27.8,15.0,2.1 +20090615,20.9,17.1,27.8,15.0,1.0 +20090616,20.9,18.6,28.3,15.0,1.1 +20090617,20.8,18.9,28.3,17.2,2.7 +20090618,21.2,18.7,29.4,16.7,2.0 +20090619,22.5,18.5,31.0,17.0,2.3 +20090620,24.8,17.9,32.0,18.0,3.2 +20090621,23.3,19.4,31.7,17.2,3.1 +20090622,23.1,18.8,28.0,19.0,3.1 +20090623,23.3,17.8,28.3,17.8,3.4 +20090624,22.8,15.1,28.3,16.7,3.5 +20090625,22.2,14.2,30.0,14.4,1.4 +20090626,22.3,16.5,30.6,14.4,1.9 +20090627,23.7,18.4,31.1,15.0,2.5 +20090628,24.1,17.8,31.1,17.2,2.2 +20090629,23.5,15.4,30.6,17.2,4.1 +20090630,21.2,11.3,28.3,12.2,2.6 +20090701,21.3,12.3,29.4,13.9,2.3 +20090702,21.6,13.6,29.4,13.9,3.2 +20090703,19.9,12.2,27.8,14.4,5.6 +20090704,19.4,13.0,27.0,12.0,1.5 +20090705,20.9,17.4,27.2,12.2,0.5 +20090706,22.3,18.7,28.0,19.0,2.5 +20090707,22.7,16.9,27.0,18.0,2.2 +20090708,20.1,16.1,24.4,17.0,1.8 +20090709,19.0,17.2,24.0,17.0,1.0 +20090710,19.5,16.6,25.6,15.6,0.8 +20090711,20.3,17.2,27.2,15.6,1.4 +20090712,21.9,18.2,30.0,16.7,1.0 +20090713,22.6,18.3,30.0,16.7,2.8 +20090714,21.7,16.2,27.2,15.6,2.4 +20090715,22.5,16.9,28.3,15.6,1.7 +20090716,23.7,18.7,28.9,16.1,2.3 +20090717,23.5,18.4,28.9,17.8,1.4 +20090718,19.7,12.2,23.9,14.0,4.7 +20090719,18.7,12.1,24.4,13.3,2.3 +20090720,19.2,13.3,25.6,13.3,2.6 +20090721,19.7,14.3,25.6,14.4,1.7 +20090722,19.1,16.0,25.0,15.0,1.6 +20090723,20.6,17.7,26.7,15.0,1.7 +20090724,21.1,15.1,27.0,14.0,2.4 +20090725,21.1,15.8,29.0,14.0,0.8 +20090726,20.8,17.2,29.4,14.4,0.8 +20090727,22.2,17.9,28.9,15.6,1.0 +20090728,21.4,18.8,28.9,16.7,1.2 +20090729,21.4,19.0,28.9,18.3,2.9 +20090730,21.7,18.6,27.8,17.2,1.2 +20090731,22.4,19.3,27.2,17.2,2.7 +20090801,22.6,18.8,28.0,18.0,1.9 +20090802,22.5,19.6,28.3,18.3,1.7 +20090803,21.6,16.8,28.9,15.0,2.2 +20090804,21.0,16.8,29.0,14.0,1.9 +20090805,19.7,17.6,29.4,14.4,1.1 +20090806,21.5,16.6,28.9,15.0,3.7 +20090807,21.2,16.2,28.3,14.4,1.4 +20090808,22.2,18.2,29.4,14.4,0.6 +20090809,23.9,18.8,30.6,16.7,1.1 +20090810,23.2,19.7,30.6,17.2,1.1 +20090811,22.7,19.9,30.0,17.8,1.9 +20090812,21.3,18.6,30.0,17.8,2.0 +20090813,21.5,17.7,27.2,17.0,1.7 +20090814,21.4,18.1,28.0,17.0,0.5 +20090815,21.4,17.6,28.3,15.6,1.1 +20090816,20.9,17.8,28.3,15.6,0.9 +20090817,21.7,17.9,28.3,16.1,1.4 +20090818,23.3,18.3,28.9,18.3,2.2 +20090819,23.1,19.3,28.0,18.0,1.5 +20090820,22.4,19.9,28.9,18.3,1.7 +20090821,22.4,19.7,28.3,19.4,1.5 +20090822,22.6,17.8,27.0,19.0,3.2 +20090823,20.2,15.4,27.2,16.7,3.8 +20090824,20.3,16.2,25.6,16.1,2.3 +20090825,21.4,16.1,27.0,16.0,1.0 +20090826,21.8,15.9,29.0,16.0,0.8 +20090827,21.4,17.1,28.9,15.6,1.1 +20090828,20.1,18.3,28.9,16.1,1.5 +20090829,21.3,17.6,27.8,17.8,1.6 +20090830,20.8,17.3,26.0,17.0,2.5 +20090831,18.4,16.8,21.7,17.0,1.3 +20090901,18.2,14.4,21.0,16.0,0.9 +20090902,17.4,13.2,23.0,13.9,0.8 +20090903,17.3,12.6,26.1,10.0,0.9 +20090904,19.8,15.0,27.0,13.0,0.8 +20090905,20.1,15.1,27.8,13.3,0.8 +20090906,21.1,16.3,27.8,14.4,0.9 +20090907,20.1,16.8,26.0,17.0,0.5 +20090908,18.7,16.9,26.0,16.0,0.4 +20090909,17.6,16.6,25.6,15.0,1.4 +20090910,17.1,15.6,22.8,15.0,1.1 +20090911,18.3,15.5,24.0,15.6,0.8 +20090912,19.8,16.1,26.7,15.0,1.9 +20090913,19.3,14.8,27.0,13.0,1.3 +20090914,18.9,14.9,26.7,12.8,1.0 +20090915,19.9,17.9,26.1,12.8,0.6 +20090916,19.5,18.4,23.9,17.2,0.8 +20090917,18.8,17.3,21.0,17.0,0.7 +20090918,19.3,17.9,23.9,17.2,1.0 +20090919,20.2,18.6,24.4,17.8,1.1 +20090920,18.2,17.8,20.0,17.0,1.1 +20090921,18.6,18.1,20.0,17.2,1.7 +20090922,19.8,17.6,25.0,17.2,1.0 +20090923,20.4,17.6,26.0,16.7,1.5 +20090924,20.7,18.2,27.8,16.1,0.8 +20090925,22.6,19.7,27.8,16.7,1.2 +20090926,17.1,16.3,27.8,14.4,1.9 +20090927,17.4,13.5,23.0,15.0,2.7 +20090928,16.2,10.5,26.7,8.9,1.9 +20090929,13.8,3.7,17.0,10.0,6.0 +20090930,12.9,6.8,18.9,8.9,5.7 +20091001,12.1,8.1,20.0,5.6,2.0 +20091002,14.1,10.9,20.0,5.6,2.6 +20091003,14.7,8.3,21.7,8.9,2.0 +20091004,11.6,6.4,21.7,5.6,1.1 +20091005,12.2,11.4,18.3,5.6,1.4 +20091006,15.4,13.6,20.0,10.6,1.1 +20091007,17.8,13.5,22.0,16.0,3.7 +20091008,13.9,7.6,22.2,5.6,2.5 +20091009,19.6,14.2,27.0,13.0,3.8 +20091010,18.3,16.2,26.7,15.0,4.1 +20091011,14.9,12.1,20.0,12.8,2.3 +20091012,13.7,12.4,20.0,12.8,2.2 +20091013,15.4,12.2,21.7,11.7,2.4 +20091014,12.9,11.7,21.7,8.9,1.8 +20091015,9.1,8.4,15.6,6.7,2.3 +20091016,12.2,9.3,14.4,6.7,4.8 +20091017,6.6,4.0,8.3,4.0,5.9 +20091018,4.6,-1.0,8.3,2.8,8.5 +20091019,6.0,-3.0,16.0,-2.0,3.0 +20091020,8.3,0.6,22.0,-1.0,1.1 +20091021,9.7,2.3,22.8,-1.0,0.7 +20091022,10.7,4.9,22.8,-0.5,1.3 +20091023,15.3,13.8,18.0,11.0,2.6 +20091024,17.0,13.6,19.4,9.0,5.2 +20091025,9.5,2.8,19.4,3.3,4.3 +20091026,9.0,3.3,17.8,3.9,0.8 +20091027,10.3,6.8,17.8,4.4,0.8 +20091028,14.1,10.3,21.1,9.4,3.9 +20091029,12.2,9.1,21.1,5.6,1.9 +20091030,12.7,11.3,19.4,5.6,2.6 +20091031,13.7,13.4,18.0,11.7,4.0 +20091101,9.5,6.5,17.8,7.8,7.4 +20091102,10.9,2.9,18.3,6.7,3.6 +20091103,9.8,2.6,18.3,2.2,3.7 +20091104,8.5,1.2,17.8,1.1,2.0 +20091105,8.2,0.9,16.7,1.1,2.5 +20091106,7.6,-2.3,17.0,-1.0,2.4 +20091107,7.6,1.0,19.0,0.0,1.0 +20091108,10.9,0.5,24.0,1.0,1.7 +20091109,8.8,3.7,23.9,0.6,0.3 +20091110,11.2,9.4,17.2,1.7,1.5 +20091111,11.2,10.2,12.0,9.0,2.4 +20091112,8.7,4.9,12.8,6.1,7.6 +20091113,11.1,5.2,20.0,6.1,5.5 +20091114,12.7,6.4,23.0,6.0,2.8 +20091115,11.7,5.6,23.0,3.0,0.8 +20091116,9.9,4.3,22.8,1.1,0.9 +20091117,9.6,6.1,20.6,1.7,2.0 +20091118,10.2,8.7,16.1,2.8,2.9 +20091119,11.7,9.7,17.2,8.3,2.5 +20091120,8.8,2.9,17.2,4.4,5.4 +20091121,6.8,2.1,14.0,1.0,1.1 +20091122,4.7,3.2,7.8,1.0,0.7 +20091123,7.7,6.2,11.1,1.1,0.8 +20091124,7.7,6.8,11.1,5.0,1.2 +20091125,8.9,6.1,15.0,4.0,0.6 +20091126,5.8,1.2,11.0,-1.0,2.4 +20091127,4.7,-4.8,11.1,-0.5,7.3 +20091128,6.2,-5.7,16.0,-1.0,3.5 +20091129,7.7,1.1,18.3,-0.5,1.2 +20091130,9.7,4.9,18.3,1.1,2.5 +20091201,4.7,-1.6,13.0,-1.1,4.3 +20091202,5.5,3.1,12.8,-1.0,2.0 +20091203,6.9,4.1,12.2,3.3,4.5 +20091204,4.2,0.4,10.0,2.2,3.3 +20091205,2.7,0.3,7.8,-1.1,4.4 +20091206,-0.9,-6.2,4.4,-6.1,3.1 +20091207,1.8,-2.4,11.0,-4.0,0.8 +20091208,4.2,0.7,10.6,-4.3,2.4 +20091209,6.7,0.8,18.0,1.0,4.0 +20091210,3.0,-9.2,18.3,-2.2,5.9 +20091211,-3.7,-17.2,0.0,-7.0,5.4 +20091212,-2.4,-13.0,3.3,-6.7,1.0 +20091213,3.9,1.7,15.0,-6.1,2.5 +20091214,9.1,6.8,17.8,-0.5,1.9 +20091215,10.2,8.4,17.8,4.4,4.1 +20091216,3.7,-6.8,12.8,-1.1,6.5 +20091217,1.8,-7.6,9.0,-3.3,2.4 +20091218,0.8,-2.8,8.9,-3.8,1.3 +20091219,0.2,-1.2,2.0,-1.0,3.3 +20091220,-0.1,-2.7,1.1,-2.0,5.1 +20091221,-2.3,-5.0,3.3,-8.3,3.1 +20091222,-0.7,-4.4,8.3,-8.3,0.7 +20091223,0.3,-2.7,8.3,-7.2,0.5 +20091224,0.8,-2.4,8.3,-5.0,1.7 +20091225,2.3,1.4,6.7,-4.9,2.8 +20091226,1.9,-2.6,4.4,-1.1,4.0 +20091227,0.7,-5.0,9.0,-4.0,1.9 +20091228,1.6,-6.8,8.9,-4.3,5.5 +20091229,-1.2,-9.4,4.0,-4.0,6.6 +20091230,-0.9,-9.5,4.4,-5.6,2.3 +20091231,3.3,1.2,10.0,-5.0,1.6 diff --git a/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/wtmpReader.sln b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/wtmpReader.sln new file mode 100644 index 00000000..7c1d3b32 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Components/wtmpReader/wtmpReader.sln @@ -0,0 +1,36 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "wtmpReader", "Source\wtmpReader.csproj", "{14CC9A9C-DD25-438A-9A08-B0F6B2B274DA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestProject", "TestProject\TestProject.csproj", "{0EFA7DB9-D063-4592-9288-6F3B13727352}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{4F67933C-A457-47B9-B47A-B1CA38962832}" + ProjectSection(SolutionItems) = preProject + Local.testsettings = Local.testsettings + TraceAndTestImpact.testsettings = TraceAndTestImpact.testsettings + wtmpReader.vsmdi = wtmpReader.vsmdi + EndProjectSection +EndProject +Global + GlobalSection(TestCaseManagementSettings) = postSolution + CategoryFile = wtmpReader.vsmdi + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {14CC9A9C-DD25-438A-9A08-B0F6B2B274DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14CC9A9C-DD25-438A-9A08-B0F6B2B274DA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14CC9A9C-DD25-438A-9A08-B0F6B2B274DA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14CC9A9C-DD25-438A-9A08-B0F6B2B274DA}.Release|Any CPU.Build.0 = Release|Any CPU + {0EFA7DB9-D063-4592-9288-6F3B13727352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0EFA7DB9-D063-4592-9288-6F3B13727352}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0EFA7DB9-D063-4592-9288-6F3B13727352}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0EFA7DB9-D063-4592-9288-6F3B13727352}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/ConnectionDialog.cs b/Source/Plugins/Plugins.HydroModeler/ConnectionDialog.cs new file mode 100644 index 00000000..e9b2e83f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/ConnectionDialog.cs @@ -0,0 +1,936 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Collections; +using System.Diagnostics; +using System.Text; +using System.Windows.Forms; +using Oatc.OpenMI.Gui.Controls; +using Oatc.OpenMI.Gui.Core; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard; + + +namespace Plugins.HydroModeler +{ + /// + /// Summary description for ConnectionDialog. + /// + public class ConnectionDialog : System.Windows.Forms.Form + { + #region Form controls + + private System.Windows.Forms.ListBox listLinks; + private ExchangeItemSelector providerExchangeItemSelector; + private ExchangeItemSelector acceptorExchangeItemSelector; + private System.Windows.Forms.CheckBox DimensionFilterCheckBox; + private System.Windows.Forms.CheckBox ElementTypeFilterCheckBox; + private System.Windows.Forms.PropertyGrid propertyGrid; + private System.Windows.Forms.Label labelInfo; + private System.Windows.Forms.Button buttonApply; + private System.Windows.Forms.Button buttonRemove; + private System.Windows.Forms.Label labelWarning; + private System.Windows.Forms.Button buttonClose; + + private System.Windows.Forms.Button buttonViewElementSet; + private System.Windows.Forms.GroupBox groupBoxOutputExchnageItems; + private System.Windows.Forms.GroupBox groupBoxLinks; + private System.Windows.Forms.GroupBox groupBoxProperties; + private System.Windows.Forms.GroupBox groupBoxTools; + private System.Windows.Forms.GroupBox groupBoxInputExchangeItems; + private System.Windows.Forms.Panel panelBottom; + private System.Windows.Forms.Splitter splitterHorizontal; + private System.Windows.Forms.Splitter splitterVertical2; + private System.Windows.Forms.Splitter splitterVertical1; + + #endregion + + #region Member variables + + /// + /// This Hashtable is used to store already constructed PropertyManagers of + /// selected object. Its key is selected object, value is corresponding PropertyManager + /// or null if it not exists at the time. + /// + private Hashtable _propertyManagerCache; + + private UIConnection _uilink; + private int _startingLinkID; + private bool _shouldBeSaved; + + private Oatc.OpenMI.Gui.ConfigurationEditor.ElementSetViewer _elementSetViewer; + + #endregion + + /// + /// Creates a new instance of ConnectionDialog dialog. + /// + public ConnectionDialog() + { + InitializeComponent(); + + _uilink = null; + _propertyManagerCache = new Hashtable(); + _startingLinkID = 0; + + _shouldBeSaved = false; + + _elementSetViewer = new Oatc.OpenMI.Gui.ConfigurationEditor.ElementSetViewer(); + } + + + #region Methods + + /// + /// Populates this ConnectionDialog with specific connection. + /// + /// + /// + public void PopulateDialog( UIConnection uilink, int startingLinkID ) + { + _uilink = uilink; + _startingLinkID = startingLinkID; + _propertyManagerCache = new Hashtable(); + + _shouldBeSaved = false; + + ElementTypeFilterCheckBox.Checked = false; + DimensionFilterCheckBox.Checked = false; + + int count; + ILinkableComponent component; + + component = uilink.ProvidingModel.LinkableComponent; + IExchangeItem[] outputExchangeItems = new IExchangeItem[ component.OutputExchangeItemCount ]; + count = component.OutputExchangeItemCount; + for( int i = 0; i < count; i++ ) + outputExchangeItems[i] = component.GetOutputExchangeItem(i); + + providerExchangeItemSelector.PopulateExchangeItemTree( outputExchangeItems, true ); + + component = uilink.AcceptingModel.LinkableComponent; + IExchangeItem[] inputExchangeItems = new IExchangeItem[ component.InputExchangeItemCount ]; + count = component.InputExchangeItemCount; + for( int i = 0; i < count; i++ ) + inputExchangeItems[i] = component.GetInputExchangeItem(i); + + acceptorExchangeItemSelector.PopulateExchangeItemTree( inputExchangeItems, true ); + + UpdateListLinks(); + + labelInfo.Text = "Connection "+uilink.ProvidingModel.ModelID+" => "+uilink.AcceptingModel.ModelID; + } + + + private void UpdateListLinks() + { + int selectedIndex = listLinks.SelectedIndex; + + listLinks.Items.Clear(); + + listLinks.Items.Add( "" ); + + foreach( Link link in _uilink.Links ) + { + StringBuilder str = new StringBuilder( 200 ); + + str.Append( link.SourceQuantity.ID ); + str.Append( ", " ); + str.Append( link.SourceElementSet.ID ); + + if( link.DataOperationsCount > 0 ) + { + str.Append( " (" ); + for( int i=0; i " ); + str.Append( link.TargetQuantity.ID ); + str.Append( ", " ); + str.Append( link.TargetElementSet.ID ); + + listLinks.Items.Add( str.ToString() ); + } + + // select "" link if there isn't any other + // or if no other was selected + if( 0<=selectedIndex && selectedIndex" link is selected + buttonRemove.Enabled = false; + + providerExchangeItemSelector.ClearCheckboxes(); + acceptorExchangeItemSelector.ClearCheckboxes(); + } + else + { + ILink link = (ILink)_uilink.Links[listLinks.SelectedIndex-1]; + + ArrayList dataOperations = new ArrayList( link.DataOperationsCount ); + for( int i=0; i=1 + && listLinks.SelectedIndex==0 ) + { + MessageBox.Show( "Trigger can have only one link.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation ); + return; + } + + if( !CheckIfDataOperationsAreValid() ) + { + switch( MessageBox.Show("Selected combination of DataOperations is invalid. Adding such link to LinkableComponents may\nway to unexpected result, maybe whole application will crash. If you are sure what you do,\nclick 'Yes', but in this case it's STRONGLY recommended to save your project before you proceed.\n\nDo you really want to continue ?", "WARNING", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) ) + { + case DialogResult.Yes: + break; + default: + return; + } + } + + Debug.Assert( providerQuantity!=null && acceptorQuantity!=null ); + Debug.Assert( listLinks.SelectedIndex >= 0 ); + + int linkID; + + // TODO: shouldn't be this functionallity in UIConnection class ??? + // - only problem with unique linkID + + if( listLinks.SelectedIndex==0 ) + { + // Creating new link, so create new ID for it + linkID = ++_startingLinkID; + } + else + { + // Modifying existing link, use its previous ID + string oldLinkID = ((ILink)_uilink.Links[listLinks.SelectedIndex-1]).ID ; + linkID = int.Parse( oldLinkID ); + + // Remove this link from both LinkableComponents + _uilink.AcceptingModel.LinkableComponent.RemoveLink( oldLinkID ); + _uilink.ProvidingModel.LinkableComponent.RemoveLink( oldLinkID ); + } + + // Create a new link even if modifing existing one. + // That's because if some DataOperations were not selected, + // we wouldn't be able to remove them from the link + Link link = new Link( + _uilink.ProvidingModel.LinkableComponent, + providerElementSet, + providerQuantity, + _uilink.AcceptingModel.LinkableComponent, + acceptorElementSet, + acceptorQuantity, + linkID.ToString() ); + + // add DataOperations + foreach( IDataOperation dataOperation in providerDataOperations ) + { + // set all changed writeable Arguments to dataOperation from property box + if( _propertyManagerCache.Contains(dataOperation) ) + for( int i=0; i 0 ) + { + _elementSetViewer.PopulateDialog( elementSets ); + _elementSetViewer.ShowDialog(); + } + else + Debug.Assert(false); + } + + + #endregion + + #region .NET generated members + + private System.ComponentModel.Container components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConnectionDialog)); + this.listLinks = new System.Windows.Forms.ListBox(); + this.buttonClose = new System.Windows.Forms.Button(); + this.providerExchangeItemSelector = new Oatc.OpenMI.Gui.Controls.ExchangeItemSelector(); + this.acceptorExchangeItemSelector = new Oatc.OpenMI.Gui.Controls.ExchangeItemSelector(); + this.DimensionFilterCheckBox = new System.Windows.Forms.CheckBox(); + this.ElementTypeFilterCheckBox = new System.Windows.Forms.CheckBox(); + this.propertyGrid = new System.Windows.Forms.PropertyGrid(); + this.groupBoxOutputExchnageItems = new System.Windows.Forms.GroupBox(); + this.labelWarning = new System.Windows.Forms.Label(); + this.labelInfo = new System.Windows.Forms.Label(); + this.groupBoxLinks = new System.Windows.Forms.GroupBox(); + this.buttonApply = new System.Windows.Forms.Button(); + this.buttonRemove = new System.Windows.Forms.Button(); + this.groupBoxProperties = new System.Windows.Forms.GroupBox(); + this.buttonViewElementSet = new System.Windows.Forms.Button(); + this.groupBoxTools = new System.Windows.Forms.GroupBox(); + this.groupBoxInputExchangeItems = new System.Windows.Forms.GroupBox(); + this.panelBottom = new System.Windows.Forms.Panel(); + this.splitterHorizontal = new System.Windows.Forms.Splitter(); + this.splitterVertical2 = new System.Windows.Forms.Splitter(); + this.splitterVertical1 = new System.Windows.Forms.Splitter(); + this.groupBoxOutputExchnageItems.SuspendLayout(); + this.groupBoxLinks.SuspendLayout(); + this.groupBoxProperties.SuspendLayout(); + this.groupBoxTools.SuspendLayout(); + this.groupBoxInputExchangeItems.SuspendLayout(); + this.panelBottom.SuspendLayout(); + this.SuspendLayout(); + // + // listLinks + // + this.listLinks.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.listLinks.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.listLinks.HorizontalExtent = 3000; + this.listLinks.HorizontalScrollbar = true; + this.listLinks.Location = new System.Drawing.Point(8, 16); + this.listLinks.Name = "listLinks"; + this.listLinks.Size = new System.Drawing.Size(450, 106); + this.listLinks.TabIndex = 5; + this.listLinks.SelectedIndexChanged += new System.EventHandler(this.listLinks_SelectedIndexChanged); + // + // buttonClose + // + this.buttonClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClose.Location = new System.Drawing.Point(550, 140); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(84, 28); + this.buttonClose.TabIndex = 8; + this.buttonClose.Text = "&Close"; + this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); + // + // providerExchangeItemSelector + // + this.providerExchangeItemSelector.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.providerExchangeItemSelector.Location = new System.Drawing.Point(8, 16); + this.providerExchangeItemSelector.Name = "providerExchangeItemSelector"; + this.providerExchangeItemSelector.Size = new System.Drawing.Size(188, 262); + this.providerExchangeItemSelector.TabIndex = 0; + this.providerExchangeItemSelector.SelectionChanged += new System.EventHandler(this.providerExchangeItemSelector_SelectionChanged); + this.providerExchangeItemSelector.CheckboxesChanged += new System.EventHandler(this.providerExchangeItemSelector_CheckboxesChanged); + // + // acceptorExchangeItemSelector + // + this.acceptorExchangeItemSelector.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.acceptorExchangeItemSelector.Location = new System.Drawing.Point(8, 16); + this.acceptorExchangeItemSelector.Name = "acceptorExchangeItemSelector"; + this.acceptorExchangeItemSelector.Size = new System.Drawing.Size(188, 262); + this.acceptorExchangeItemSelector.TabIndex = 1; + this.acceptorExchangeItemSelector.SelectionChanged += new System.EventHandler(this.acceptorExchangeItemSelector_SelectionChanged); + this.acceptorExchangeItemSelector.CheckboxesChanged += new System.EventHandler(this.acceptorExchangeItemSelector_CheckboxesChanged); + // + // DimensionFilterCheckBox + // + this.DimensionFilterCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.DimensionFilterCheckBox.Checked = true; + this.DimensionFilterCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; + this.DimensionFilterCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.DimensionFilterCheckBox.Location = new System.Drawing.Point(8, 295); + this.DimensionFilterCheckBox.Name = "DimensionFilterCheckBox"; + this.DimensionFilterCheckBox.Size = new System.Drawing.Size(172, 16); + this.DimensionFilterCheckBox.TabIndex = 2; + this.DimensionFilterCheckBox.Text = "Use &Dimension filter"; + this.DimensionFilterCheckBox.CheckedChanged += new System.EventHandler(this.DimensionFilterCheckBox_CheckedChanged); + // + // ElementTypeFilterCheckBox + // + this.ElementTypeFilterCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.ElementTypeFilterCheckBox.Checked = true; + this.ElementTypeFilterCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; + this.ElementTypeFilterCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.ElementTypeFilterCheckBox.Location = new System.Drawing.Point(8, 279); + this.ElementTypeFilterCheckBox.Name = "ElementTypeFilterCheckBox"; + this.ElementTypeFilterCheckBox.Size = new System.Drawing.Size(172, 16); + this.ElementTypeFilterCheckBox.TabIndex = 3; + this.ElementTypeFilterCheckBox.Text = "Use &ElementType filter"; + this.ElementTypeFilterCheckBox.CheckedChanged += new System.EventHandler(this.ElementTypeFilterCheckBox_CheckedChanged); + // + // propertyGrid + // + this.propertyGrid.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.propertyGrid.Cursor = System.Windows.Forms.Cursors.HSplit; + this.propertyGrid.LineColor = System.Drawing.SystemColors.ScrollBar; + this.propertyGrid.Location = new System.Drawing.Point(8, 16); + this.propertyGrid.Name = "propertyGrid"; + this.propertyGrid.Size = new System.Drawing.Size(215, 295); + this.propertyGrid.TabIndex = 4; + // + // groupBoxOutputExchnageItems + // + this.groupBoxOutputExchnageItems.Controls.Add(this.labelWarning); + this.groupBoxOutputExchnageItems.Controls.Add(this.providerExchangeItemSelector); + this.groupBoxOutputExchnageItems.Dock = System.Windows.Forms.DockStyle.Left; + this.groupBoxOutputExchnageItems.Location = new System.Drawing.Point(8, 28); + this.groupBoxOutputExchnageItems.Name = "groupBoxOutputExchnageItems"; + this.groupBoxOutputExchnageItems.Size = new System.Drawing.Size(204, 315); + this.groupBoxOutputExchnageItems.TabIndex = 23; + this.groupBoxOutputExchnageItems.TabStop = false; + this.groupBoxOutputExchnageItems.Text = " Output Exchange Items"; + // + // labelWarning + // + this.labelWarning.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.labelWarning.ForeColor = System.Drawing.Color.Red; + this.labelWarning.Location = new System.Drawing.Point(8, 282); + this.labelWarning.Name = "labelWarning"; + this.labelWarning.Size = new System.Drawing.Size(188, 28); + this.labelWarning.TabIndex = 2; + this.labelWarning.Text = "Warning: Selected combination of DataOperations is invalid !"; + this.labelWarning.Visible = false; + // + // labelInfo + // + this.labelInfo.Dock = System.Windows.Forms.DockStyle.Top; + this.labelInfo.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelInfo.ForeColor = System.Drawing.SystemColors.Desktop; + this.labelInfo.Location = new System.Drawing.Point(8, 0); + this.labelInfo.Name = "labelInfo"; + this.labelInfo.Size = new System.Drawing.Size(642, 28); + this.labelInfo.TabIndex = 24; + this.labelInfo.Text = "Connection XXX =>\n YYY"; + this.labelInfo.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // groupBoxLinks + // + this.groupBoxLinks.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBoxLinks.Controls.Add(this.buttonApply); + this.groupBoxLinks.Controls.Add(this.buttonRemove); + this.groupBoxLinks.Controls.Add(this.listLinks); + this.groupBoxLinks.Location = new System.Drawing.Point(104, 4); + this.groupBoxLinks.Name = "groupBoxLinks"; + this.groupBoxLinks.Size = new System.Drawing.Size(534, 128); + this.groupBoxLinks.TabIndex = 25; + this.groupBoxLinks.TabStop = false; + this.groupBoxLinks.Text = " Links"; + // + // buttonApply + // + this.buttonApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonApply.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonApply.Location = new System.Drawing.Point(462, 16); + this.buttonApply.Name = "buttonApply"; + this.buttonApply.Size = new System.Drawing.Size(64, 24); + this.buttonApply.TabIndex = 6; + this.buttonApply.Text = "&Apply"; + this.buttonApply.Click += new System.EventHandler(this.buttonApply_Click); + // + // buttonRemove + // + this.buttonRemove.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonRemove.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonRemove.Location = new System.Drawing.Point(462, 48); + this.buttonRemove.Name = "buttonRemove"; + this.buttonRemove.Size = new System.Drawing.Size(64, 24); + this.buttonRemove.TabIndex = 7; + this.buttonRemove.Text = "&Remove"; + this.buttonRemove.Click += new System.EventHandler(this.buttonRemove_Click); + // + // groupBoxProperties + // + this.groupBoxProperties.Controls.Add(this.propertyGrid); + this.groupBoxProperties.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBoxProperties.Location = new System.Drawing.Point(422, 28); + this.groupBoxProperties.Name = "groupBoxProperties"; + this.groupBoxProperties.Size = new System.Drawing.Size(228, 315); + this.groupBoxProperties.TabIndex = 26; + this.groupBoxProperties.TabStop = false; + this.groupBoxProperties.Text = "DataOperation properties"; + // + // buttonViewElementSet + // + this.buttonViewElementSet.Enabled = false; + this.buttonViewElementSet.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonViewElementSet.Location = new System.Drawing.Point(8, 16); + this.buttonViewElementSet.Name = "buttonViewElementSet"; + this.buttonViewElementSet.Size = new System.Drawing.Size(80, 32); + this.buttonViewElementSet.TabIndex = 8; + this.buttonViewElementSet.Text = "ElementSet &viewer"; + this.buttonViewElementSet.Click += new System.EventHandler(this.buttonViewElementSet_Click); + // + // groupBoxTools + // + this.groupBoxTools.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.groupBoxTools.Controls.Add(this.buttonViewElementSet); + this.groupBoxTools.Location = new System.Drawing.Point(4, 4); + this.groupBoxTools.Name = "groupBoxTools"; + this.groupBoxTools.Size = new System.Drawing.Size(96, 128); + this.groupBoxTools.TabIndex = 27; + this.groupBoxTools.TabStop = false; + this.groupBoxTools.Text = "Tools"; + // + // groupBoxInputExchangeItems + // + this.groupBoxInputExchangeItems.Controls.Add(this.acceptorExchangeItemSelector); + this.groupBoxInputExchangeItems.Controls.Add(this.DimensionFilterCheckBox); + this.groupBoxInputExchangeItems.Controls.Add(this.ElementTypeFilterCheckBox); + this.groupBoxInputExchangeItems.Dock = System.Windows.Forms.DockStyle.Left; + this.groupBoxInputExchangeItems.Location = new System.Drawing.Point(215, 28); + this.groupBoxInputExchangeItems.Name = "groupBoxInputExchangeItems"; + this.groupBoxInputExchangeItems.Size = new System.Drawing.Size(204, 315); + this.groupBoxInputExchangeItems.TabIndex = 0; + this.groupBoxInputExchangeItems.TabStop = false; + this.groupBoxInputExchangeItems.Text = " Input Exchange Items"; + // + // panelBottom + // + this.panelBottom.Controls.Add(this.buttonClose); + this.panelBottom.Controls.Add(this.groupBoxLinks); + this.panelBottom.Controls.Add(this.groupBoxTools); + this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panelBottom.Location = new System.Drawing.Point(8, 347); + this.panelBottom.Name = "panelBottom"; + this.panelBottom.Size = new System.Drawing.Size(642, 168); + this.panelBottom.TabIndex = 28; + // + // splitterHorizontal + // + this.splitterHorizontal.Dock = System.Windows.Forms.DockStyle.Bottom; + this.splitterHorizontal.Location = new System.Drawing.Point(8, 343); + this.splitterHorizontal.MinExtra = 150; + this.splitterHorizontal.MinSize = 150; + this.splitterHorizontal.Name = "splitterHorizontal"; + this.splitterHorizontal.Size = new System.Drawing.Size(642, 4); + this.splitterHorizontal.TabIndex = 30; + this.splitterHorizontal.TabStop = false; + // + // splitterVertical2 + // + this.splitterVertical2.Location = new System.Drawing.Point(419, 28); + this.splitterVertical2.MinExtra = 150; + this.splitterVertical2.MinSize = 150; + this.splitterVertical2.Name = "splitterVertical2"; + this.splitterVertical2.Size = new System.Drawing.Size(3, 315); + this.splitterVertical2.TabIndex = 24; + this.splitterVertical2.TabStop = false; + // + // splitterVertical1 + // + this.splitterVertical1.Location = new System.Drawing.Point(212, 28); + this.splitterVertical1.MinExtra = 150; + this.splitterVertical1.MinSize = 150; + this.splitterVertical1.Name = "splitterVertical1"; + this.splitterVertical1.Size = new System.Drawing.Size(3, 315); + this.splitterVertical1.TabIndex = 27; + this.splitterVertical1.TabStop = false; + // + // ConnectionDialog + // + this.AcceptButton = this.buttonClose; + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.CancelButton = this.buttonClose; + this.ClientSize = new System.Drawing.Size(658, 523); + this.Controls.Add(this.groupBoxProperties); + this.Controls.Add(this.splitterVertical2); + this.Controls.Add(this.groupBoxInputExchangeItems); + this.Controls.Add(this.splitterVertical1); + this.Controls.Add(this.groupBoxOutputExchnageItems); + this.Controls.Add(this.splitterHorizontal); + this.Controls.Add(this.labelInfo); + this.Controls.Add(this.panelBottom); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(660, 400); + this.Name = "ConnectionDialog"; + this.Padding = new System.Windows.Forms.Padding(8, 0, 8, 8); + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Connection properties"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.LinkDialog_Closing); + this.groupBoxOutputExchnageItems.ResumeLayout(false); + this.groupBoxLinks.ResumeLayout(false); + this.groupBoxProperties.ResumeLayout(false); + this.groupBoxTools.ResumeLayout(false); + this.groupBoxInputExchangeItems.ResumeLayout(false); + this.panelBottom.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + + + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/ConnectionDialog.resx b/Source/Plugins/Plugins.HydroModeler/ConnectionDialog.resx new file mode 100644 index 00000000..e55fbc84 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/ConnectionDialog.resx @@ -0,0 +1,536 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/CompositionRun.log b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/CompositionRun.log new file mode 100644 index 00000000..e69de29b diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/SmithBranchModel.opr b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/SmithBranchModel.opr new file mode 100644 index 00000000..6c22e29d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/SmithBranchModel.opr @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/DbReader.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/DbReader.dll new file mode 100644 index 00000000..f47ec923 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/DbReader.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/DbWriter.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/DbWriter.dll new file mode 100644 index 00000000..9cc3b241 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/DbWriter.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/MuskingumDotNet.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/MuskingumDotNet.dll new file mode 100644 index 00000000..c69aa494 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/MuskingumDotNet.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Numerics.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Numerics.dll new file mode 100644 index 00000000..6dba6e49 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Numerics.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Gui.Controls.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Gui.Controls.dll new file mode 100644 index 00000000..7bab0932 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Gui.Controls.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Gui.Core.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Gui.Core.dll new file mode 100644 index 00000000..53def4a2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Gui.Core.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Sdk.Backbone.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Sdk.Backbone.dll new file mode 100644 index 00000000..bcef1ba6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Sdk.Backbone.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Sdk.Buffer.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Sdk.Buffer.dll new file mode 100644 index 00000000..db447ba2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Sdk.Buffer.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Sdk.DevelopmentSupport.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Sdk.DevelopmentSupport.dll new file mode 100644 index 00000000..7ed7434a Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Sdk.DevelopmentSupport.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Sdk.Spatial.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Sdk.Spatial.dll new file mode 100644 index 00000000..f880eb6d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Sdk.Spatial.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Sdk.Wrapper.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Sdk.Wrapper.dll new file mode 100644 index 00000000..ea911a0d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/Oatc.OpenMI.Sdk.Wrapper.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/OpenMI.Standard.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/OpenMI.Standard.dll new file mode 100644 index 00000000..251fa707 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/OpenMI.Standard.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/QuickGraph.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/QuickGraph.dll new file mode 100644 index 00000000..7e88cfa9 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/QuickGraph.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/SCSMethod.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/SCSMethod.dll new file mode 100644 index 00000000..df25eeba Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/SCSMethod.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/SCSUnitHydrograph.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/SCSUnitHydrograph.dll new file mode 100644 index 00000000..2a8c8120 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/SCSUnitHydrograph.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/SMW.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/SMW.dll new file mode 100644 index 00000000..6c5db400 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/SMW.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/SharpMap.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/SharpMap.dll new file mode 100644 index 00000000..094ae9de Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/SharpMap.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/edu.SC.MuskingumMethod.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/edu.SC.MuskingumMethod.dll new file mode 100644 index 00000000..c15f32e8 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/bin/edu.SC.MuskingumMethod.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/cuahsi-his/CompositionRun.log b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/cuahsi-his/CompositionRun.log new file mode 100644 index 00000000..1808ac2d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/cuahsi-his/CompositionRun.log differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/cuahsi-his/DataRepository.sqlite b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/cuahsi-his/DataRepository.sqlite new file mode 100644 index 00000000..3a522690 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/cuahsi-his/DataRepository.sqlite differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/cuahsi-his/DataRepository_backup.sqlite b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/cuahsi-his/DataRepository_backup.sqlite new file mode 100644 index 00000000..3a522690 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/cuahsi-his/DataRepository_backup.sqlite differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/cuahsi-his/DbReader.omi b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/cuahsi-his/DbReader.omi new file mode 100644 index 00000000..edc7ce5f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/cuahsi-his/DbReader.omi @@ -0,0 +1,6 @@ + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/cuahsi-his/DbWriter.omi b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/cuahsi-his/DbWriter.omi new file mode 100644 index 00000000..e2476942 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/cuahsi-his/DbWriter.omi @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.dbf new file mode 100644 index 00000000..c6c8feaa Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.prj new file mode 100644 index 00000000..f7f2e098 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.sbn new file mode 100644 index 00000000..404a67b9 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.sbx new file mode 100644 index 00000000..8c5724d6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.shp new file mode 100644 index 00000000..d4fe4f22 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.shp.xml new file mode 100644 index 00000000..e3eef58b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.shp.xml @@ -0,0 +1,3 @@ + + +2009101614330700FALSE20090317154533002009031715453300Dissolve StreamNetwork C:\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shp ARCID "GRID_CODE FIRST;FROM_COMID LAST;TO_COMID FIRST;K SUM;LENGTHFT SUM;X LAST" MULTI_PART DISSOLVE_LINES{8B85EE88-F865-481E-A06A-A10D051D7844}Microsoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.StreamNetStreamNetvector digital dataREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770StreamNetenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20090317ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://Local Area Network0.000ShapefileVectorSimplePolylineFALSE0FALSEFALSEString0GCS_North_American_1983NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_IntlLambert Conformal Conic32.50000034.833333-81.00000031.8333332000000.0000000.000000coordinate pairinternational feet0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl0StreamNetFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.ARCIDARCIDNumber195FIRST_GRIDFIRST_GRIDNumber195LAST_FROM_LAST_FROM_Number195FIRST_TO_CFIRST_TO_CNumber195SUM_KSUM_KFloat1911SUM_LENGTHSUM_LENGTHFloat1911LAST_XLAST_XNumber19520090317Dataset copied.2009100113311100Dataset copied.2009101614330700 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.shx new file mode 100644 index 00000000..8ebe4f3b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.dbf new file mode 100644 index 00000000..43e9d451 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.prj new file mode 100644 index 00000000..f45cbadf --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.prj @@ -0,0 +1 @@ +GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.sbn new file mode 100644 index 00000000..0287c816 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.sbx new file mode 100644 index 00000000..e387870a Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.shp new file mode 100644 index 00000000..8256c47e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.shp.xml new file mode 100644 index 00000000..6b769b3c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.shp.xml @@ -0,0 +1,3 @@ + + +2010032713580600FALSE20090317154533002009031715453300Dissolve StreamNetwork C:\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shp ARCID "GRID_CODE FIRST;FROM_COMID LAST;TO_COMID FIRST;K SUM;LENGTHFT SUM;X LAST" MULTI_PART DISSOLVE_LINESProject C:\Projects\HIS\HydroModeler-Demo-For-AGU\example_configuration\data\gis\StreamNet.shp C:\Projects\HIS\HydroModeler-Demo-For-AGU\example_configuration\data\gis\StreamNet_geo.shp GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]] NAD_1983_To_WGS_1984_1 PROJCS['NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',2000000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Standard_Parallel_1',32.5],PARAMETER['Standard_Parallel_2',34.83333333333334],PARAMETER['Latitude_Of_Origin',31.83333333333333],UNIT['Foot',0.3048]]{B9401259-B069-4198-AF9F-3CE1430FC273}Microsoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.StreamNetStreamNetvector digital dataREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770StreamNetenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20090317ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://Local Area Network0.000ShapefileVectorSimplePolylineFALSE0FALSEFALSEString0GCS_North_American_1983NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_IntlLambert Conformal Conic32.50000034.833333-81.00000031.8333332000000.0000000.000000coordinate pairinternational feet0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl0StreamNetFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.ARCIDARCIDNumber195FIRST_GRIDFIRST_GRIDNumber195LAST_FROM_LAST_FROM_Number195FIRST_TO_CFIRST_TO_CNumber195SUM_KSUM_KFloat1911SUM_LENGTHSUM_LENGTHFloat1911LAST_XLAST_XNumber19520090317Dataset copied.2010032713580600 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.shx new file mode 100644 index 00000000..e738dcb0 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet1.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.dbf new file mode 100644 index 00000000..08ced89e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.prj new file mode 100644 index 00000000..f7f2e098 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.sbn new file mode 100644 index 00000000..404a67b9 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.sbx new file mode 100644 index 00000000..8c5724d6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.shp new file mode 100644 index 00000000..d4fe4f22 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.shp.xml new file mode 100644 index 00000000..bdcaa41a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.shp.xml @@ -0,0 +1,3 @@ + + +{B235146B-5BA8-4F42-83B0-7C6967BA65B5}2009031715453300FALSE20090317154533002009031715453300Dissolve StreamNetwork C:\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shp ARCID "GRID_CODE FIRST;FROM_COMID LAST;TO_COMID FIRST;K SUM;LENGTHFT SUM;X LAST" MULTI_PART DISSOLVE_LINESMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.StreamNetStreamNetvector digital data\\CE-51\C\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shpREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770StreamNetenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20090317ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://\\CE-51\C\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shpLocal Area Network0.000ShapefileVectorSimplePolylineFALSE0FALSEFALSEString0GCS_North_American_1983NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_IntlLambert Conformal Conic32.50000034.833333-81.00000031.8333332000000.0000000.000000coordinate pairinternational feet0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl0StreamNetFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.ARCIDARCIDNumber195FIRST_GRIDFIRST_GRIDNumber195LAST_FROM_LAST_FROM_Number195FIRST_TO_CFIRST_TO_CNumber195SUM_KSUM_KFloat1911SUM_LENGTHSUM_LENGTHFloat1911LAST_XLAST_XNumber19520090317 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.shx new file mode 100644 index 00000000..8ebe4f3b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet2.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet_geo_webmercator.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet_geo_webmercator.dbf new file mode 100644 index 00000000..43e9d451 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet_geo_webmercator.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet_geo_webmercator.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet_geo_webmercator.prj new file mode 100644 index 00000000..30e67bcd --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet_geo_webmercator.prj @@ -0,0 +1 @@ +PROJCS["WGS_1984_Web_Mercator",GEOGCS["GCS_WGS_1984_Major_Auxiliary_Sphere",DATUM["D_WGS_1984_Major_Auxiliary_Sphere",SPHEROID["",6378137,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]], PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["Scale_Factor",1],UNIT["Meter",1]] diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet_geo_webmercator.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet_geo_webmercator.shp new file mode 100644 index 00000000..be5b9c3c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet_geo_webmercator.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet_geo_webmercator.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet_geo_webmercator.shx new file mode 100644 index 00000000..b8d9c06e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/StreamNet_geo_webmercator.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids.dbf new file mode 100644 index 00000000..ddd86de7 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids.prj new file mode 100644 index 00000000..3a0cd51a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids.prj @@ -0,0 +1 @@ +PROJCS["Lambert_Conformal_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["standard_parallel_1",32.5],PARAMETER["standard_parallel_2",34.83333333333334],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],UNIT["unknown",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids.shp new file mode 100644 index 00000000..6ecbecfa Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids.shx new file mode 100644 index 00000000..4a5806a6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.dbf new file mode 100644 index 00000000..d333cf81 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.prj new file mode 100644 index 00000000..f45cbadf --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.prj @@ -0,0 +1 @@ +GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.sbn new file mode 100644 index 00000000..cb2ac100 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.sbx new file mode 100644 index 00000000..d77fb828 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.shp new file mode 100644 index 00000000..e4f2bc52 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.shp.xml new file mode 100644 index 00000000..f85da6d5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.shp.xml @@ -0,0 +1,3 @@ + + +2010032713584200TRUEFeatureToPoint Watershed_Sub_ALL "C:\Code\OpenMI.Models\Repo.Code\branch\branch02\data\RockyBranchData\Smith Branch Data\SubWatershedPoints.shp" CENTROIDProject C:\Projects\HIS\HydroModeler-Demo-For-AGU\example_configuration\data\gis\SubWatershedCentroids.shp C:\Projects\HIS\HydroModeler-Demo-For-AGU\example_configuration\data\gis\SubWatershedCentroids_geo.shp GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]] NAD_1983_To_WGS_1984_1 PROJCS['NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',2000000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Standard_Parallel_1',32.5],PARAMETER['Standard_Parallel_2',34.83333333333334],PARAMETER['Latitude_Of_Origin',31.83333333333333],UNIT['Foot',0.3048]]{4941651E-459A-4FDC-A91B-C1A06CAD4478}file://Local Area NetworkDataset copied.2009031613082500Dataset copied.2010032713584200 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.shx new file mode 100644 index 00000000..7186684d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids1.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.dbf new file mode 100644 index 00000000..a57a6418 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.prj new file mode 100644 index 00000000..f7f2e098 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.sbn new file mode 100644 index 00000000..2ad6fe02 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.sbx new file mode 100644 index 00000000..bb5ca171 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.shp new file mode 100644 index 00000000..6ecbecfa Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.shp.xml new file mode 100644 index 00000000..51204f05 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.shp.xml @@ -0,0 +1,3 @@ + + +2009031613082500TRUEFeatureToPoint Watershed_Sub_ALL "C:\Code\OpenMI.Models\Repo.Code\branch\branch02\data\RockyBranchData\Smith Branch Data\SubWatershedPoints.shp" CENTROID{7DABFEC4-F981-49BF-B070-DC844A8B517C}file://Local Area NetworkDataset copied.2009031613082500 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.shx new file mode 100644 index 00000000..4a5806a6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids2.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids_geo_webmercator.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids_geo_webmercator.dbf new file mode 100644 index 00000000..d333cf81 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids_geo_webmercator.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids_geo_webmercator.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids_geo_webmercator.prj new file mode 100644 index 00000000..30e67bcd --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids_geo_webmercator.prj @@ -0,0 +1 @@ +PROJCS["WGS_1984_Web_Mercator",GEOGCS["GCS_WGS_1984_Major_Auxiliary_Sphere",DATUM["D_WGS_1984_Major_Auxiliary_Sphere",SPHEROID["",6378137,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]], PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["Scale_Factor",1],UNIT["Meter",1]] diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids_geo_webmercator.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids_geo_webmercator.shp new file mode 100644 index 00000000..29130d24 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids_geo_webmercator.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids_geo_webmercator.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids_geo_webmercator.shx new file mode 100644 index 00000000..3cfb14a2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatershedCentroids_geo_webmercator.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.dbf new file mode 100644 index 00000000..da489e11 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.prj new file mode 100644 index 00000000..3a0cd51a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.prj @@ -0,0 +1 @@ +PROJCS["Lambert_Conformal_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["standard_parallel_1",32.5],PARAMETER["standard_parallel_2",34.83333333333334],PARAMETER["latitude_of_origin",31.83333333333333],PARAMETER["central_meridian",-81],PARAMETER["false_easting",2000000],PARAMETER["false_northing",0],UNIT["unknown",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.sbn new file mode 100644 index 00000000..4bb5867c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.sbx new file mode 100644 index 00000000..580fd3f4 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.shp new file mode 100644 index 00000000..6995328f Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.shx new file mode 100644 index 00000000..87f87011 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.dbf new file mode 100644 index 00000000..4bc91882 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.prj new file mode 100644 index 00000000..f45cbadf --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.prj @@ -0,0 +1 @@ +GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.sbn new file mode 100644 index 00000000..53b2b96e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.sbx new file mode 100644 index 00000000..f9b5bef2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.shp new file mode 100644 index 00000000..6b78ed0d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.shp.xml new file mode 100644 index 00000000..01766886 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.shp.xml @@ -0,0 +1,3 @@ + + +{69CC3209-48A3-4EA1-97EF-7837B8E5136E}2010032713591400TRUEProject C:\Projects\HIS\HydroModeler-Demo-For-AGU\example_configuration\data\gis\SubWatersheds.shp C:\Projects\HIS\HydroModeler-Demo-For-AGU\example_configuration\data\gis\SubWatersheds_geo.shp GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]] NAD_1983_To_WGS_1984_1 PROJCS['NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',2000000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Standard_Parallel_1',32.5],PARAMETER['Standard_Parallel_2',34.83333333333334],PARAMETER['Latitude_Of_Origin',31.83333333333333],UNIT['Foot',0.3048]] diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.shx new file mode 100644 index 00000000..ef60365e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds1.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.dbf new file mode 100644 index 00000000..e293b7f0 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.prj new file mode 100644 index 00000000..f7f2e098 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.sbn new file mode 100644 index 00000000..4bb5867c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.sbx new file mode 100644 index 00000000..580fd3f4 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.shp new file mode 100644 index 00000000..6995328f Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.shx new file mode 100644 index 00000000..87f87011 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds2.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds_geo_webmercator.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds_geo_webmercator.dbf new file mode 100644 index 00000000..4bc91882 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds_geo_webmercator.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds_geo_webmercator.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds_geo_webmercator.prj new file mode 100644 index 00000000..30e67bcd --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds_geo_webmercator.prj @@ -0,0 +1 @@ +PROJCS["WGS_1984_Web_Mercator",GEOGCS["GCS_WGS_1984_Major_Auxiliary_Sphere",DATUM["D_WGS_1984_Major_Auxiliary_Sphere",SPHEROID["",6378137,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]], PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["Scale_Factor",1],UNIT["Meter",1]] diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds_geo_webmercator.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds_geo_webmercator.shp new file mode 100644 index 00000000..4856f5a9 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds_geo_webmercator.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds_geo_webmercator.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds_geo_webmercator.shx new file mode 100644 index 00000000..09acfe19 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/data/gis/SubWatersheds_geo_webmercator.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/infiltration/NRCS-Curve-Number/CNMethod.omi b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/infiltration/NRCS-Curve-Number/CNMethod.omi new file mode 100644 index 00000000..76680bc9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/infiltration/NRCS-Curve-Number/CNMethod.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/infiltration/NRCS-Curve-Number/SCSAbstraction_output.csv b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/infiltration/NRCS-Curve-Number/SCSAbstraction_output.csv new file mode 100644 index 00000000..8f065d09 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/infiltration/NRCS-Curve-Number/SCSAbstraction_output.csv @@ -0,0 +1,298 @@ +Precip In +Date, Time, element 1,element 2,element 3,element 4,element 5,element 6,element 7,element 8,element 9,element 10,element 11,element 12,element 13,element 14,element 15, +8/20/2009,9:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,9:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,9:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,9:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0599999980302528, +8/20/2009,11:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.137499998755811, +8/20/2009,11:40:00,0,0,0.0999999973806553,0,0,0,0,0,0,0,0,0,0,0,3.92901711165905E-09, +8/20/2009,11:45:00,0,0,0.0444444456474028,0,0.0555555543525972,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:50:00,0,0,0,0,0.0750000028157956,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,12:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,12:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,12:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,12:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,12:20:00,0,0.0499999964638846,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,12:25:00,0,0.129999998491257,0.0899999954737723,0,0,0,0,0,0,0,0,0.0599999969825149,0,0.0599999969825149,0.149999992456287, +8/21/2009,12:30:00,0,0.22499999620195,0.0375000056970748,0,0.112499994302925,0,0,0.0749999962019501,0,0,0,0.0250000037980499,0,0.137499998100975,0.0625000094951247, +8/21/2009,12:35:00,0.0999999960709829,0.25,0,0,0.249999996070983,0,0,0.149999998035491,0.0999999960709829,0.0999999960709829,0,0,0,5.89352566748858E-09,0, +8/21/2009,12:40:00,0,0,0,0,0,0,0,0.25,0,0,0,0,0.0800000032689422,0.0499999918276444,0, +8/21/2009,12:45:00,0,0,0,0,0,0,0,0.18750001031367,0,0.024999995874532,0.024999995874532,0,0,0.18750001031367,0, +8/21/2009,12:50:00,0,0,0,0.0499999956780812,0,0,0,0,0.0749999935171218,0.0500000043219188,0.0500000043219188,0,0,0,0, +8/21/2009,12:55:00,0,0,0,0.0250000045183697,0,0,0,0.187499988704076,0.0375000067775545,0,0,0,0,0,0, +8/21/2009,1:00:00,0,0,0,0,0,0,0,0.0500000091153197,0,0,0,0,0,0,0, +8/21/2009,1:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,1:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,1:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,1:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,1:25:00,0,0.0749999949577614,0.0749999949577614,0,0,0,0,0.187499987394403,0,0,0,0,0,0,0.187499987394403, +8/21/2009,1:30:00,0,5.23868948221207E-09,5.23868948221207E-09,0,0.249999986903276,0,0,1.30967237055302E-08,0.0999999947613105,0,0,0,0,0.249999986903276,0.100000007858034, +8/21/2009,1:35:00,0,0,0,0,0.100000006286427,0,0,0.0999999958090484,4.19095159964744E-09,0,0,0,0,0.100000006286427,4.19095159964744E-09, +8/21/2009,1:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,1:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,1:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,1:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + + + Excess Precip Out +Date, Time,element 1,element 2,element 3,element 4,element 5,element 6,element 7,element 8,element 9,element 10,element 11,element 12,element 13,element 14,element 15, +8/20/2009,9:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,9:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,9:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,9:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,10:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009,11:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,12:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,12:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,12:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,12:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,12:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,12:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,12:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0423168445341793,0, +8/21/2009,12:35:00,0,0.00561398521887437,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,12:40:00,0,0,0,0,0,0,0,1.06352249153122E-05,0,0,0,0,0,0.0284516379560929,0, +8/21/2009,12:45:00,0,0,0,0,0,0,0,0.0145889063439649,0,0,0,0,0,0.134739992085999,0, +8/21/2009,12:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,12:55:00,0,0,0,0,0,0,0,0.0383780832159735,0,0,0,0,0,0,0, +8/21/2009,1:00:00,0,0,0,0,0,0,0,0.0136367060428829,0,0,0,0,0,0,0, +8/21/2009,1:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,1:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,1:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,1:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,1:25:00,0,0.00838070034357029,0,0,0,0,0,0.0620671455229462,0,0,0,0,0,0,0.000492037680834362, +8/21/2009,1:30:00,0,0,0,0,0.0158098268099517,0,0,0,0.0030083829096809,0,0,0,0,0.212594973699591,0.00589949986386171, +8/21/2009,1:35:00,0,0,0,0,0.0171747134333064,0,0,0.0393812610620351,0,0,0,0,0,0.090101136822568,0, +8/21/2009,1:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,1:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,1:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,1:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,2:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,3:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,4:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,5:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,6:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,7:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,8:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009,9:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/infiltration/NRCS-Curve-Number/cn_config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/infiltration/NRCS-Curve-Number/cn_config.xml new file mode 100644 index 00000000..c7d64ca7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/infiltration/NRCS-Curve-Number/cn_config.xml @@ -0,0 +1,64 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + ..\..\..\data\gis\SubWatershedCentroids.shp + 1 + + + Excess Rainfall + Excess Rainfall + + + Length + 1 + + + + cm + Centimeter + 1 + 0 + + Scalar + + + + + SmithBranch + Smith Branch Watershed, Columbia SC + ..\..\..\data\gis\SubWatershedCentroids.shp + 1 + + + Rainfall + Precipitation + + + Length + 1 + + + + cm + Centimeters + 1 + 0 + + Scalar + + + + + 08/20/2009 21:40:00 + 08/21/2009 10:00:00 + 300 + + + Curve Number Method + Calculates the Excess Precipitation that results from Precipitation + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/infiltration/NRCS-Curve-Number/log.txt b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/infiltration/NRCS-Curve-Number/log.txt new file mode 100644 index 00000000..8a3bce3e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/infiltration/NRCS-Curve-Number/log.txt @@ -0,0 +1,50 @@ +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/routing/MuskingumDotNet/Muskingum.omi b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/routing/MuskingumDotNet/Muskingum.omi new file mode 100644 index 00000000..759ee672 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/routing/MuskingumDotNet/Muskingum.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/routing/MuskingumDotNet/MuskingumRouting_output.csv b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/routing/MuskingumDotNet/MuskingumRouting_output.csv new file mode 100644 index 00000000..ab49ec2c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/routing/MuskingumDotNet/MuskingumRouting_output.csv @@ -0,0 +1,149 @@ +Date,Element 1,Element 2,Element 3,Element 4,Element 5,Element 6,Element 7,Element 8,Element 9,Element 10,Element 11,Element 12,Element 13,Element 14,Element 15, +8/20/2009 9:40:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 9:45:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 9:50:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 9:55:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 10:00:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 10:05:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 10:10:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 10:15:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 10:20:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 10:25:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 10:30:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 10:35:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 10:40:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 10:45:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 10:50:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 10:55:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 11:00:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 11:05:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 11:10:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 11:15:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 11:20:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 11:25:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 11:30:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 11:35:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 11:40:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 11:45:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 11:50:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/20/2009 11:55:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009 12:00:00 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009 12:05:00 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009 12:10:00 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009 12:15:00 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009 12:20:00 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009 12:25:00 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009 12:30:00 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009 12:35:00 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8/21/2009 12:40:00 AM,0,0,0,0,0,0,0,0,0,0,0,0,-0.39097420863837,0,0, +8/21/2009 12:45:00 AM,0,0,0,-0.0440125683515665,0,0,0,0,0,0,0,0,-0.881343893740294,0,0, +8/21/2009 12:50:00 AM,0,0,0,-0.116005537973781,0,0,0,0,0,0,0,0,-1.55003942577112,0,0, +8/21/2009 12:55:00 AM,0,0,0,-0.215213734986676,0,0,-0.0586713937488706,0,0,0,0,0,-2.40985656740941,0,0, +8/21/2009 1:00:00 AM,0,0,0,-0.324888454512386,0,0,-0.225355416652198,0,0,0,0,0,-2.18070956693761,0,0, +8/21/2009 1:05:00 AM,0,0,0,-0.350415765624825,0,0,-0.740366930793467,0,0,0,0,0,-0.482563873737949,0,0, +8/21/2009 1:10:00 AM,0,0,0,-0.276801103224144,0,0,-1.41142085271379,0,0,-2.76027995122735,0,0,5.51147801368742,0,0, +8/21/2009 1:15:00 AM,0,0,0,-0.126326764103453,0,0,-1.99066352482864,0,0,-6.13253076181562,0,0,15.5318147940508,0,0, +8/21/2009 1:20:00 AM,0,0,0,0.057873109045988,0,0,-2.0486864614682,0,0,-7.08517305107675,0,0,26.0426790836513,0,0, +8/21/2009 1:25:00 AM,0,0,0,0.241379436024537,0,0,-1.0700697779993,0,0,-4.77707486093958,0,0,34.5980197172938,0,0, +8/21/2009 1:30:00 AM,0,0,0,0.413662646489935,0,0,0.67985844201928,0,-0.0385224978142738,0.187769452109335,0,0,40.3310625536469,0,0, +8/21/2009 1:35:00 AM,0,0,0,0.499699788300536,0,0,2.41310051059966,0,0.0680865231530942,7.03013449863838,0,0,42.6204987368241,0,0, +8/21/2009 1:40:00 AM,0,0,0,-0.310984269541472,0,0,3.86881759549014,0,4.65770498398947,15.7707295233685,0,0,39.3105330432269,0,0, +8/21/2009 1:45:00 AM,0,0,0,-2.78344994350556,0,0,4.83267668731205,0,12.3247892446134,23.607679304769,0,0,33.0163794288826,0,0, +8/21/2009 1:50:00 AM,0,0,0,-6.17719859607949,0,0,5.59105656230884,0,20.7267585951005,28.8320249571874,0,0,26.3235920985648,0,0, +8/21/2009 1:55:00 AM,0,0,0,-7.50631413481098,0,0,6.27259823358035,0,28.0598576387535,28.9012812038365,0,0,25.1885369371401,0,0, +8/21/2009 2:00:00 AM,0,0,0,-5.10066979812514,0,0,6.95292648842721,0,32.068731846941,24.1068199161238,0,0,33.2863595959497,0,0, +8/21/2009 2:05:00 AM,0,0,0,-0.668870090559622,0,0,8.47859184150412,0,31.6779743317325,19.1596180351248,0,0,46.8121398593033,0,0, +8/21/2009 2:10:00 AM,0,0,0,4.22142559575874,0,0,10.5172394398038,0,29.4798408592366,17.6927159149039,0,0,60.7293404322876,0,0, +8/21/2009 2:15:00 AM,0,0,0,7.94131877722963,0,0,13.1579556219001,0,28.5445564999044,20.73420587397,0,0,71.7577379715753,0,0, +8/21/2009 2:20:00 AM,0,0,0,9.81768159008029,0,0,15.511052566889,0,31.0007843001224,27.8390278377175,0,0,77.8465808766873,0,0, +8/21/2009 2:25:00 AM,0,0,0,10.6927646630968,0,0,17.5119132415699,0,37.1035240319997,37.9825773999953,0,0,77.4642492241353,0,0, +8/21/2009 2:30:00 AM,0,0,0,10.886907728647,0,0,18.8232814631394,0,46.4856460893766,48.1415509478465,0,0,72.8684737138971,0,0, +8/21/2009 2:35:00 AM,0,0,0,10.6248511161773,0,0,19.6876165857229,0,57.1029910930576,56.2229005379935,0,0,66.5580476129882,0,0, +8/21/2009 2:40:00 AM,0,0,0,10.1196604099821,0,0,20.1446608413019,0,66.9510233138737,61.7887012635431,0,0,59.5516138133664,0,0, +8/21/2009 2:45:00 AM,0,0,0,9.47878975132314,0,0,20.3405451666608,0,74.8609586769148,64.9299970149046,0,0,52.3904112219528,0,0, +8/21/2009 2:50:00 AM,0,0,0,8.77588593638137,0,0,20.2857640433689,0,80.4195696311151,65.8875407706875,0,0,45.4956461622047,0,0, +8/21/2009 2:55:00 AM,0,0,0,8.05096866894344,0,0,20.0518243149285,0,83.5627731983206,65.0265889020607,0,0,39.111634169273,0,0, +8/21/2009 3:00:00 AM,0,0,0,7.33817497240352,0,0,19.6818753771404,0,84.4947196993568,62.7664752447578,0,0,33.3266557769335,0,0, +8/21/2009 3:05:00 AM,0,0,0,6.65784389992829,0,0,19.2045198600111,0,83.5609598541893,59.4857073674575,0,0,28.1789597922359,0,0, +8/21/2009 3:10:00 AM,0,0,0,6.02676916336317,0,0,18.645080039733,0,81.1433137248846,55.4948977660633,0,0,23.707153891422,0,0, +8/21/2009 3:15:00 AM,0,0,0,5.4464392962695,0,0,18.0284234709569,0,77.5993321476519,51.0958854192653,0,0,19.8592779520616,0,0, +8/21/2009 3:20:00 AM,0,0,0,4.91237809873116,0,0,17.3664511774552,0,73.2732668433568,46.5293720317724,0,0,16.5648568624815,0,0, +8/21/2009 3:25:00 AM,0,0,0,4.41333251828077,0,0,16.6815627010169,0,68.4626572963951,41.9674460061036,0,0,13.7667647055414,0,0, +8/21/2009 3:30:00 AM,0,0,0,3.95073974764479,0,0,15.9884182963353,0,63.4124782937506,37.5255074109093,0,0,11.4299833175012,0,0, +8/21/2009 3:35:00 AM,0,0,0,3.53530932024049,0,0,15.2902947185541,0,58.3068758565109,33.3083382983199,0,0,9.48092426478475,0,0, +8/21/2009 3:40:00 AM,0,0,0,3.1623182292484,0,0,14.5965806080128,0,53.2904650951044,29.3832605215293,0,0,7.84991756611405,0,0, +8/21/2009 3:45:00 AM,0,0,0,2.82786221748227,0,0,13.9107235171509,0,48.473197465111,25.7816858320926,0,0,6.48455914312948,0,0, +8/21/2009 3:50:00 AM,0,0,0,2.52825265316496,0,0,13.2275042124348,0,43.9250152852737,22.5351691269935,0,0,5.29885338268152,0,0, +8/21/2009 3:55:00 AM,0,0,0,2.26043968631846,0,0,12.5614661100268,0,39.6948047816548,19.6015086273963,0,0,4.30736455685738,0,0, +8/21/2009 4:00:00 AM,0,0,0,2.02094971868293,0,0,11.9092851843252,0,35.7900527974905,16.9615641400384,0,0,3.50116664674057,0,0, +8/21/2009 4:05:00 AM,0,0,0,1.80658175664238,0,0,11.2797188331007,0,32.2009480701215,14.6108983613757,0,0,2.84603501385991,0,0, +8/21/2009 4:10:00 AM,0,0,0,1.6149243128677,0,0,10.6737438415713,0,28.9260195142937,12.5361931642088,0,0,2.31364091851386,0,0, +8/21/2009 4:15:00 AM,0,0,0,1.44354168079426,0,0,10.0918053281777,0,25.9582214460125,10.7185390119488,0,0,1.88085530829483,0,0, +8/21/2009 4:20:00 AM,0,0,0,1.28890063430459,0,0,9.53437966660159,0,23.284500472073,9.13598279916667,0,0,1.52894955463998,0,0, +8/21/2009 4:25:00 AM,0,0,0,1.15066584373791,0,0,9.00100668498895,0,20.8873667368555,7.76539200013622,0,0,1.24283129243819,0,0, +8/21/2009 4:30:00 AM,0,0,0,1.02725675564543,0,0,8.49149297771006,0,18.7460246664322,6.58389354178388,0,0,1.01008500614626,0,0, +8/21/2009 4:35:00 AM,0,0,0,0.917083311164607,0,0,8.00555255737509,0,16.8384121626901,5.56972360645646,0,0,0.820235816058592,0,0, +8/21/2009 4:40:00 AM,0,0,0,0.818725985489584,0,0,7.54277517786001,0,15.1424494969522,4.70178863491897,0,0,0.665956391758181,0,0, +8/21/2009 4:45:00 AM,0,0,0,0.730917498067498,0,0,7.10265022174379,0,13.636266772943,3.96134595347962,0,0,0.540695623186364,0,0, +8/21/2009 4:50:00 AM,0,0,0,0.652526484379,0,0,6.68458730595958,0,12.2993215295238,3.33153177394027,0,0,0.438995346468643,0,0, +8/21/2009 4:55:00 AM,0,0,0,0.582542918922838,0,0,6.28793400670031,0,11.1126571148225,2.79723799326422,0,0,0.356424032222469,0,0, +8/21/2009 5:00:00 AM,0,0,0,0.520065101587562,0,0,5.91199105826205,0,10.0589621575431,2.34506381397891,0,0,0.289383684286497,0,0, +8/21/2009 5:05:00 AM,0,0,0,0.464288039736875,0,0,5.55602533935254,0,9.12258239091265,1.96322037304524,0,0,0.234953059166777,0,0, +8/21/2009 5:10:00 AM,0,0,0,0.414493076318092,0,0,5.21928092386198,0,8.28948309164529,1.64140838071221,0,0,0.190760374579981,0,0, +8/21/2009 5:15:00 AM,0,0,0,0.370038630357574,0,0,4.90098844067889,0,7.54717250457833,1.37068278723388,0,0,0.154879960443776,0,0, +8/21/2009 5:20:00 AM,0,0,0,0.33035193053943,0,0,4.60037295838055,0,6.88459891415521,1.14331407926503,0,0,0.125748348942396,0,0, +8/21/2009 5:25:00 AM,0,0,0,0.294921635359184,0,0,4.31666058513005,0,6.29203263916622,0.952652576438616,0,0,0.102096147341663,0,0, +8/21/2009 5:30:00 AM,0,0,0,0.263291244767084,0,0,4.04908395150872,0,5.76094179582576,0.79299975874746,0,0,0.0828927249516845,0,0, +8/21/2009 5:35:00 AM,0,0,0,0.235053218413674,0,0,3.79688672398382,0,5.28386825021823,0.659488982783133,0,0,0.0673013040043643,0,0, +8/21/2009 5:40:00 AM,0,0,0,0.209843724714441,0,0,3.55932727896869,0,4.85430812835135,0.547976768896468,0,0,0.0546424975572699,0,0, +8/21/2009 5:45:00 AM,0,0,0,0.18733795307807,0,0,3.33568165172321,0,4.466599644917,0.454945032316719,0,0,0.0443647056096064,0,0, +8/21/2009 5:50:00 AM,0,0,0,0.167245928898944,0,0,3.12524586043802,0,4.11581981350777,0.377414091168258,0,0,0.0360200794585601,0,0, +8/21/2009 5:55:00 AM,0,0,0,0.149308777392343,0,0,2.92733769354603,0,3.79769074050879,0.312865939335497,0,0,0.0292450069570629,0,0, +8/21/2009 6:00:00 AM,0,0,0,0.133295388133881,0,0,2.7412980374279,0,3.50849560874801,0.259177066937931,0,0,0.0237442683296303,0,0, +8/21/2009 6:05:00 AM,0,0,0,0.118999437327609,0,0,2.56649181206685,0,3.24500406083569,0.214560004584757,0,0,0.019278172145325,0,0, +8/21/2009 6:10:00 AM,0,0,0,0.106236729436313,0,0,2.40230857371733,0,3.0044064434651,0.177512729096248,0,0,0.0156521109054772,0,0, +8/21/2009 6:15:00 AM,0,0,0,0.0948428239223774,0,0,2.24816283615802,0,2.78425623168743,0.1467750756313,0,0,0.0127080811370786,0,0, +8/21/2009 6:20:00 AM,0,0,0,0.0846709165210468,0,0,2.10349415548734,0,2.58241988494994,0.121291337883801,0,0,0.0103177984849354,0,0, +8/21/2009 6:25:00 AM,0,0,0,0.0755899477474601,0,0,1.96776701759097,0,2.3970333709883,0.100178292524999,0,0,0.00837710779679582,0,0, +8/21/2009 6:30:00 AM,0,0,0,0.0674829142665942,0,0,1.84047056227547,0,2.22646461214016,0.0826979481131126,0,0,0.00680144462421885,0,0, +8/21/2009 6:35:00 AM,0,0,0,0.0602453613690389,0,0,1.7211181735418,0,2.06928114867378,0.0682343865355235,0,0,0.00552215037676958,0,0, +8/21/2009 6:40:00 AM,0,0,0,0.0537840371289771,0,0,1.60924696149625,0,1.92422236626065,0.0562741328247278,0,0,0.00448348056456591,0,0, +8/21/2009 6:45:00 AM,0,0,0,0.0480156909039276,0,0,1.50441715790258,0,1.7901756934085,0.0463895543836118,0,0,0.00364017576511553,0,0, +8/21/2009 6:50:00 AM,0,0,0,0.042866000695574,0,0,1.40621144431134,0,1.66615623514247,0.0382248517308757,0,0,0.00295548947076062,0,0, +8/21/2009 6:55:00 AM,0,0,0,0.0382686155513104,0,0,1.3142342290121,0,1.55128936857272,0.0314842589876827,0,0,0.0023995868813493,0,0, +8/21/2009 7:00:00 AM,0,0,0,0.0341643006683664,0,0,1.22811088669761,0,1.44479588236885,0.0259221231076466,0,0,0.0019482448704721,0,0, +8/21/2009 7:05:00 AM,0,0,0,0.0305001741856473,0,0,1.14748697266652,0,1.34597929448914,0.0213345762667019,0,0,0.0015817964770613,0,0, +8/21/2009 7:10:00 AM,0,0,0,0.0272290258297657,0,0,1.07202742158958,0,1.25421503023164,0.017552556053801,0,0,0.00128427392919928,0,0, +8/21/2009 7:15:00 AM,0,0,0,0.02430870863639,0,0,1.00141573929153,0,1.16894118559956,0.0144359634468671,0,0,0.0010427128579052,0,0, +8/21/2009 7:20:00 AM,0,0,0,0.0217015959095731,0,0,0.93535319463147,0,1.08965063916601,0.0118687794047097,0,0,0.000846587382427596,0,0, +8/21/2009 7:25:00 AM,0,0,0,0.0193740964222746,0,0,0.873558017372943,0,1.01588430930118,0.00975498767258707,0,0,0.00068735145121877,0,0, +8/21/2009 7:30:00 AM,0,0,0,0.0172962216117026,0,0,0.815764606900743,0,0.947225383100263,0.00801517451122561,0,0,0.000558066452795209,0,0, +8/21/2009 7:35:00 AM,0,0,0,0.0154411991930204,0,0,0.761722755745978,0,0.883294368985255,0.00658369592924327,0,0,0.000453098869847737,0,0, +8/21/2009 7:40:00 AM,0,0,0,0.0137851282130436,0,0,0.711196891106425,0,0.823744847127429,0.00540632001690401,0,0,0.000367874802058088,0,0, +8/21/2009 7:45:00 AM,0,0,0,0.0123066710994794,0,0,0.663965336882089,0,0.7682598109274,0.00443826650525516,0,0,0.00029868066109888,0,0, +8/21/2009 7:50:00 AM,0,0,0,0.0109867787379341,0,0,0.619819598172205,0,0.716548509158331,0.00364257803654382,0,0,0.000242501353219559,0,0, +8/21/2009 7:55:00 AM,0,0,0,0.00980844503445178,0,0,0.578563669688582,0,0.668343712362216,0.00298876812342762,0,0,0.000196888898320234,0,0, +8/21/2009 8:00:00 AM,0,0,0,0.00875648780125994,0,0,0.540013369120769,0,0.623399338999024,0.00245169965712512,0,0,0.000159855760667271,0,0, +8/21/2009 8:05:00 AM,0,0,0,0.00781735314255139,0,0,0.503995696132039,0,0.581488386963008,0.00201065532841023,0,0,0.000129788243199722,0,0, +8/21/2009 8:10:00 AM,0,0,0,0.00697894081992154,0,0,0.470348217363665,0,0.542401124648956,0.0016485676515105,0,0,0.000105376171634702,0,0, +8/21/2009 8:15:00 AM,0,0,0,0.00623044834738921,0,0,0.438918477571379,0,0.505943502993842,0.00135138160449145,0,0,8.55558043982371E-05,0,0, +8/21/2009 8:20:00 AM,0,0,0,0.00556223180725028,0,0,0.409563436806043,0,0.471935756029356,0.0011075273719176,0,0,6.94634807155857E-05,0,0, +8/21/2009 8:25:00 AM,0,0,0,0.00496568159345244,0,0,0.382148933374935,0,0.44021116262643,0.000907484426749423,0,0,5.63979871040049E-05,0,0, +8/21/2009 8:30:00 AM,0,0,0,0.00443311148151197,0,0,0.356549172175902,0,0.410614946439641,0.000743421330275857,0,0,4.57900024101418E-05,0,0, +8/21/2009 8:35:00 AM,0,0,0,0.00395765959569907,0,0,0.332646237879696,0,0.383003294693012,0.000608898256851315,0,0,3.717728997764E-05,0,0, +8/21/2009 8:40:00 AM,0,0,0,0.00353319999750758,0,0,0.310329632342337,0,0.357242479496645,0.0004986214456195,0,0,3.01845559583418E-05,0,0, +8/21/2009 8:45:00 AM,0,0,0,0.003154263756275,0,0,0.289495835556134,0,0.333208067938066,0.000408240613335803,0,0,2.45070961049137E-05,0,0, +8/21/2009 8:50:00 AM,0,0,0,0.00281596848499057,0,0,0.27004788939214,0,0.310784209331392,0.000334181889372101,0,0,1.98975184635603E-05,0,0, +8/21/2009 8:55:00 AM,0,0,0,0.00251395543339868,0,0,0.25189500334581,0,0.289862989797958,0.000273510105478863,0,0,1.61549634160182E-05,0,0, +8/21/2009 9:00:00 AM,0,0,0,0.00224433332787668,0,0,0.234952181469258,0,0.270343845850349,0.000223815330628684,0,0,1.31163513405374E-05,0,0, +8/21/2009 9:05:00 AM,0,0,0,0.00200362823449433,0,0,0.219139869655936,0,0.252133029905283,0.000183119420418147,0,0,1.06492765138567E-05,0,0, +8/21/2009 9:10:00 AM,0,0,0,0.00178873879926781,0,0,0.204383622434954,0,0.235143121699749,0.000149799080602194,0,0,8.64623761015646E-06,0,0, +8/21/2009 9:15:00 AM,0,0,0,0.00159689628890339,0,0,0.190613788431347,0,0.219292580462788,0.000122522550168187,0,0,7.01995339439355E-06,0,0, +8/21/2009 9:20:00 AM,0,0,0,0.00142562891717743,0,0,0.177765213653933,0,0.204505333430767,0.000100197511699272,0,0,5.69955949412843E-06,0,0, +8/21/2009 9:25:00 AM,0,0,0,0.00127272999731759,0,0,0.165776961783028,0,0.190710396910527,8.19282530123122E-05,0,0,4.62752052642592E-06,0,0, +8/21/2009 9:30:00 AM,0,0,0,0.00113622951004608,0,0,0.154592050645135,0,0.177841526612278,6.69804487128303E-05,0,0,3.75712302758721E-06,0,0, +8/21/2009 9:35:00 AM,0,0,0,0.00101436872095457,0,0,0.144157204080058,0,0.165836894409154,5.47522155156749E-05,0,0,3.05043994160921E-06,0,0, +8/21/2009 9:40:00 AM,0,0,0,0.00090557752016957,0,0,0.134422618426889,0,0.154638789046685,4.47503310477688E-05,0,0,2.47667797116042E-06,0,0, +8/21/2009 9:45:00 AM,0,0,0,0.000808454192342148,0,0,0.125341742878543,0,0.144193338634675,3.65707008015E-05,0,0,2.01083577786994E-06,0,0, +8/21/2009 9:50:00 AM,0,0,0,0.000721747356309384,0,0,0.116871072979193,0,0.13445025301561,2.98823189534904E-05,0,0,1.63261456380108E-06,0,0, +8/21/2009 9:55:00 AM,0,0,0,0.000644339841729864,0,0,0.10896995656491,0,0.125362584325787,2.44141017312159E-05,0,0,1.32553356334194E-06,0,0, diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/routing/MuskingumDotNet/musk_config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/routing/MuskingumDotNet/musk_config.xml new file mode 100644 index 00000000..6735b80e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/routing/MuskingumDotNet/musk_config.xml @@ -0,0 +1,72 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + ..\..\..\data\gis\StreamNet.shp + 1 + + + Streamflow + Streamflow + + + Length + 3 + + + Time + -1 + + + + cms + cubic meters per second + 1 + 0 + + Scalar + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + ..\..\..\data\gis\StreamNet.shp + 1 + + + Runoff + Runoff + + + Length + 3 + + + Time + -1 + + + + cms + Cubic meters per second + 1 + 0 + + Scalar + + + + + 08/20/2009 21:40:00 + 08/21/2009 10:00:00 + 300 + + + Muskingum Routing + Python script that calculates that returns the stream flow at the outlet of a stream network + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/runoff/NRCS-unit-hydrograph/NRCS UnitHydrograph.omi b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/runoff/NRCS-unit-hydrograph/NRCS UnitHydrograph.omi new file mode 100644 index 00000000..02d401e6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/runoff/NRCS-unit-hydrograph/NRCS UnitHydrograph.omi @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/runoff/NRCS-unit-hydrograph/SCSUnitHydrograph_output.csv b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/runoff/NRCS-unit-hydrograph/SCSUnitHydrograph_output.csv new file mode 100644 index 00000000..5a0f84d5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/runoff/NRCS-unit-hydrograph/SCSUnitHydrograph_output.csv @@ -0,0 +1,148 @@ +Date, Time, element 1,element 2,element 3,element 4,element 5,element 6,element 7,element 8,element 9,element 10,element 11,element 12,element 13,element 14,element 15, +08/20/2009, 09:40 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 09:45 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 09:50 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 09:55 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 10:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 10:05 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 10:10 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 10:15 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 10:20 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 10:25 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 10:30 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 10:35 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 10:40 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 10:45 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 10:50 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 10:55 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 11:00 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 11:05 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 11:10 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 11:15 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 11:20 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 11:25 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 11:30 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 11:35 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 11:40 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 11:45 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 11:50 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/20/2009, 11:55 PM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 12:00 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 12:05 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 12:10 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 12:15 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 12:20 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 12:25 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 12:30 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 12:35 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,1.32884841116351,0, +08/21/2009, 12:40 AM,0,0.0762397599515283,0,0,0,0,0,0,0,0,0,0,0,4.09498562337351,0, +08/21/2009, 12:45 AM,0,0.223288598424214,0,0,0,0,0,0.000362308440681508,0,0,0,0,0,9.54906519868651,0, +08/21/2009, 12:50 AM,0,0.458174329451349,0,0,0,0,0,0.498106946893583,0,0,0,0,0,19.5669486737326,0, +08/21/2009, 12:55 AM,0,0.773258962376024,0,0,0,0,0,1.52373378849105,0,0,0,0,0,32.8376305795231,0, +08/21/2009, 01:00 AM,0,1.02149365872555,0,0,0,0,0,4.50054947730549,0,0,0,0,0,49.4527578488827,0, +08/21/2009, 01:05 AM,0,1.14885189743135,0,0,0,0,0,9.26984671616213,0,0,0,0,0,61.0031838612659,0, +08/21/2009, 01:10 AM,0,1.15305629595809,0,0,0,0,0,15.3318328855055,0,0,0,0,0,62.4211146996091,0, +08/21/2009, 01:15 AM,0,1.0716661478113,0,0,0,0,0,21.0791262615007,0,0,0,0,0,56.6724183729837,0, +08/21/2009, 01:20 AM,0,0.942135636533361,0,0,0,0,0,23.7973207799009,0,0,0,0,0,47.1756387804239,0, +08/21/2009, 01:25 AM,0,0.773889622155035,0,0,0,0,0,23.4397849751257,0,0,0,0,0,35.7308175516411,0, +08/21/2009, 01:30 AM,0,0.691777309287582,0,0,0,0,0,22.6129297996219,0,0,0,0,0,25.0016607819804,0.00690837041328698, +08/21/2009, 01:35 AM,0,0.776789850271333,0,0,1.3549607572882,0,0,23.2077960940781,0.642378632626587,0,0,0,0,24.8961829684206,0.103245402201225, +08/21/2009, 01:40 AM,0,1.029716032227,0,0,5.83872163796165,0,0,27.2866435913692,2.08677610836521,0,0,0,0,36.9574833284888,0.285680445442654, +08/21/2009, 01:45 AM,0,1.43046457757355,0,0,13.1098594439272,0,0,33.4886967103338,3.8653584124587,0,0,0,0,62.1325947628767,0.560237702510758, +08/21/2009, 01:50 AM,0,1.7420584642437,0,0,18.9495301697705,0,0,38.6703362318751,4.39589433672619,0,0,0,0,88.8688214576099,0.932273957098958, +08/21/2009, 01:55 AM,0,1.88158916286484,0,0,19.881529218528,0,0,41.1652477877883,3.91801210898618,0,0,0,0,102.315369468673,1.26877614462969, +08/21/2009, 02:00 AM,0,1.85282894184733,0,0,17.2242041541507,0,0,38.9451084800729,2.95323784423965,0,0,0,0,101.099662397771,1.4534161800498, +08/21/2009, 02:05 AM,0,1.70319321901333,0,0,12.5711633154361,0,0,34.0185103190278,1.84369684521709,0,0,0,0,89.3839337540765,1.50169407463331, +08/21/2009, 02:10 AM,0,1.48680067828014,0,0,8.21150611467114,0,0,26.6773905982911,1.21627122610586,0,0,0,0,71.234961868048,1.44575506140532, +08/21/2009, 02:15 AM,0,1.2172269742964,0,0,5.55720952954774,0,0,20.5085396292156,0.830392009507859,0,0,0,0,51.2734957037075,1.30242932825939, +08/21/2009, 02:20 AM,0,0.911606433766072,0,0,3.78160854878124,0,0,14.8551791631657,0.548158298144736,0,0,0,0,36.5975182030204,1.12265152667288, +08/21/2009, 02:25 AM,0,0.70053311507627,0,0,2.54177598756343,0,0,10.9792086083509,0.363061731021586,0,0,0,0,27.0426550644315,0.889781806026386, +08/21/2009, 02:30 AM,0,0.546316115379031,0,0,1.72970866790388,0,0,8.07380360784271,0.23721559620519,0,0,0,0,19.9790534073691,0.674271656466356, +08/21/2009, 02:35 AM,0,0.435675816480304,0,0,1.16439553387539,0,0,6.05025051397307,0.160112131833988,0,0,0,0,14.5866715540017,0.533872819252073, +08/21/2009, 02:40 AM,0,0.342377649196431,0,0,0.785044172640921,0,0,4.44028549519909,0.107041748198208,0,0,0,0,10.6340739066988,0.421808911610309, +08/21/2009, 02:45 AM,0,0.263074282943752,0,0,0.53040591248259,0,0,3.29683214530491,0.0702301155168471,0,0,0,0,7.72261265774803,0.34261893211199, +08/21/2009, 02:50 AM,0,0.207995768482938,0,0,0.35822148817688,0,0,2.45041033246575,0.0473808150180573,0,0,0,0,5.56189215871796,0.272587263185881, +08/21/2009, 02:55 AM,0,0.163893769238736,0,0,0.246514795494515,0,0,1.80810213566225,0.0341245973626,0,0,0,0,4.01032547322738,0.212527839004864, +08/21/2009, 03:00 AM,0,0.127417636541489,0,0,0.174427174400796,0,0,1.32742647921151,0.0210552923760847,0,0,0,0,2.94292472936646,0.170272839311456, +08/21/2009, 03:05 AM,0,0.097903466444209,0,0,0.116278289633086,0,0,0.968586526200558,0.0100084443298703,0,0,0,0,2.15217322548748,0.135615298844959, +08/21/2009, 03:10 AM,0,0.0765377794372972,0,0,0.0630351866757835,0,0,0.693400407655189,0,0,0,0,0,1.56620255301352,0.106653439914846, +08/21/2009, 03:15 AM,0,0.0594400671233317,0,0,0.0193299470399918,0,0,0.511938402685873,0,0,0,0,0,1.16000438710302,0.0836114821132943, +08/21/2009, 03:20 AM,0,0.0452347445216203,0,0,0,0,0,0.388354559628611,0,0,0,0,0,0.892019664504409,0.0671026772713609, +08/21/2009, 03:25 AM,0,0.0350381892990782,0,0,0,0,0,0.28858732528145,0,0,0,0,0,0.66024168273362,0.0533915350159286, +08/21/2009, 03:30 AM,0,0.0271926475841032,0,0,0,0,0,0.208649457995869,0,0,0,0,0,0.445133036378536,0.0421533915935916, +08/21/2009, 03:35 AM,0,0.0215543182716079,0,0,0,0,0,0.131649272078533,0,0,0,0,0,0.247550864303537,0.0336975752985651, +08/21/2009, 03:40 AM,0,0.0174118722461011,0,0,0,0,0,0.0583325917843752,0,0,0,0,0,0.0565730325434659,0.02671400138617, +08/21/2009, 03:45 AM,0,0.0142736555601111,0,0,0,0,0,0.0288467307839303,0,0,0,0,0,0,0.0210227449249603, +08/21/2009, 03:50 AM,0,0.0111354388741211,0,0,0,0,0,0.00110948964553569,0,0,0,0,0,0,0.0168540713627418, +08/21/2009, 03:55 AM,0,0.00810705977214079,0,0,0,0,0,0,0,0,0,0,0,0,0.0140981486884743, +08/21/2009, 04:00 AM,0,0.00549187920048246,0,0,0,0,0,0,0,0,0,0,0,0,0.0115270189743123, +08/21/2009, 04:05 AM,0,0.00287669862882414,0,0,0,0,0,0,0,0,0,0,0,0,0.00896804891048415, +08/21/2009, 04:10 AM,0,0.000261518057165824,0,0,0,0,0,0,0,0,0,0,0,0,0.00657570135685038, +08/21/2009, 04:15 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00443309326171534, +08/21/2009, 04:20 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00229048516658029, +08/21/2009, 04:25 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000288739000164811, +08/21/2009, 04:30 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 04:35 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 04:40 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 04:45 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 04:50 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 04:55 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 05:00 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 05:05 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 05:10 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 05:15 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 05:20 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 05:25 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 05:30 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 05:35 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 05:40 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 05:45 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 05:50 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 05:55 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 06:00 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 06:05 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 06:10 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 06:15 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 06:20 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 06:25 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 06:30 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 06:35 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 06:40 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 06:45 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 06:50 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 06:55 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 07:00 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 07:05 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 07:10 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 07:15 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 07:20 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 07:25 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 07:30 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 07:35 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 07:40 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 07:45 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 07:50 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 07:55 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 08:00 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 08:05 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 08:10 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 08:15 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 08:20 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 08:25 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 08:30 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 08:35 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 08:40 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 08:45 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 08:50 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 08:55 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 09:00 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 09:05 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 09:10 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 09:15 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 09:20 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 09:25 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 09:30 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 09:35 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 09:40 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 09:45 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08/21/2009, 09:50 AM,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/runoff/NRCS-unit-hydrograph/uh_config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/runoff/NRCS-unit-hydrograph/uh_config.xml new file mode 100644 index 00000000..9e0aa85e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_01/models/runoff/NRCS-unit-hydrograph/uh_config.xml @@ -0,0 +1,68 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + ..\..\..\data\gis\SubWatersheds.shp + 1 + + + Runoff + Runoff + + + Length + 3 + + + Time + -1 + + + + cubic meters per second + cubic meters per second + 1 + 0 + + Scalar + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + ..\..\..\data\gis\SubWatersheds.shp + 1 + + + Excess Rainfall + Excess Rainfall + + + Length + 1 + + + + cm + Centimeters + 1 + 0 + + Scalar + + + + + 08/20/2009 21:40:00 + 08/21/2009 10:00:00 + 300 + + + Unit Hydrograph + Calculates the streamflow at watershed outlet + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/CompositionRun.log b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/CompositionRun.log new file mode 100644 index 00000000..e69de29b diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/PET_Model.opr b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/PET_Model.opr new file mode 100644 index 00000000..0bc49db7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/PET_Model.opr @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/ASCEPenmanMonteith.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/ASCEPenmanMonteith.dll new file mode 100644 index 00000000..bb697aa9 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/ASCEPenmanMonteith.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/DbReader.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/DbReader.dll new file mode 100644 index 00000000..f47ec923 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/DbReader.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/DbWriter.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/DbWriter.dll new file mode 100644 index 00000000..9cc3b241 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/DbWriter.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/Oatc.OpenMI.Sdk.Backbone.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/Oatc.OpenMI.Sdk.Backbone.dll new file mode 100644 index 00000000..bcef1ba6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/Oatc.OpenMI.Sdk.Backbone.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/Oatc.OpenMI.Sdk.Buffer.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/Oatc.OpenMI.Sdk.Buffer.dll new file mode 100644 index 00000000..db447ba2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/Oatc.OpenMI.Sdk.Buffer.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/Oatc.OpenMI.Sdk.DevelopmentSupport.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/Oatc.OpenMI.Sdk.DevelopmentSupport.dll new file mode 100644 index 00000000..7ed7434a Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/Oatc.OpenMI.Sdk.DevelopmentSupport.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/Oatc.OpenMI.Sdk.Spatial.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/Oatc.OpenMI.Sdk.Spatial.dll new file mode 100644 index 00000000..f880eb6d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/Oatc.OpenMI.Sdk.Spatial.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/Oatc.OpenMI.Sdk.Wrapper.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/Oatc.OpenMI.Sdk.Wrapper.dll new file mode 100644 index 00000000..ea911a0d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/Oatc.OpenMI.Sdk.Wrapper.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/OpenMI.Standard.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/OpenMI.Standard.dll new file mode 100644 index 00000000..251fa707 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/OpenMI.Standard.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/SMW.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/SMW.dll new file mode 100644 index 00000000..6c5db400 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/SMW.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/SharpMap.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/SharpMap.dll new file mode 100644 index 00000000..094ae9de Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/SharpMap.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/SolarRadiation.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/SolarRadiation.dll new file mode 100644 index 00000000..f50630f0 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/bin/SolarRadiation.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.dbf new file mode 100644 index 00000000..5b09a3eb Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.prj new file mode 100644 index 00000000..2d456db1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609600.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.sbn new file mode 100644 index 00000000..213ab8fd Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.sbx new file mode 100644 index 00000000..5d010438 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.shp new file mode 100644 index 00000000..794e4f1c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.shp.xml new file mode 100644 index 00000000..83706310 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.shp.xml @@ -0,0 +1,3 @@ + + +2011050412375900FALSEFeatureClassToFeatureClass PeTgauges_Layer "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data" PeTgauges.shp # "GaugeIDs 'GaugeIDs' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,GaugeIDs,-1,-1;X 'X' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,X,-1,-1;Y 'Y' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,Y,-1,-1" # "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp"DefineProjection PeTgauges GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]] PeTgaugesFeatureClassToFeatureClass PeTgauges "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data" PeTgages.shp # "GaugeIDs 'GaugeIDs' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,GaugeIDs,-1,-1;X 'X' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,X,-1,-1;Y 'Y' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,Y,-1,-1" # "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgages.shp"Project PeTgages "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgages_Prjctd.shp" PROJCS['NAD_1983_StatePlane_South_Carolina_FIPS_3900',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',609600.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Standard_Parallel_1',32.5],PARAMETER['Standard_Parallel_2',34.83333333333334],PARAMETER['Latitude_Of_Origin',31.83333333333333],UNIT['Meter',1.0]] # GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]]20110504123646002011050412364600{EF570522-7F48-4B98-8EFA-F2853B5F611C}Microsoft Windows 2000 Version 5.2 (Build 3790) Service Pack 2; ESRI ArcCatalog 9.3.1.3000enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.PeTgagesPeTgagesvector digital dataREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows 2000 Version 5.2 (Build 3790) Service Pack 2; ESRI ArcCatalog 9.3.1.3000PeTgagesenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20110504ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://Local Area Network0.000ShapefileVectorSimplePointFALSE0FALSEFALSEEntity point0GCS_North_American_1983Decimal degrees0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222GCS_North_American_19830PeTgagesFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.GaugeIDsGaugeIDsFloat1911XXFloat1911YYFloat191120110504Dataset copied.2011050412375900 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.shx new file mode 100644 index 00000000..368f99c1 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/PeTgauges.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.dbf new file mode 100644 index 00000000..414cecdd Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.prj new file mode 100644 index 00000000..2d456db1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609600.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.sbn new file mode 100644 index 00000000..213ab8fd Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.sbx new file mode 100644 index 00000000..5d010438 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.shp new file mode 100644 index 00000000..794e4f1c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.shp.xml new file mode 100644 index 00000000..45104181 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.shp.xml @@ -0,0 +1,3 @@ + + +2011050412483200FALSEFeatureClassToFeatureClass PeTgauges_Layer "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data" PeTgauges.shp # "GaugeIDs 'GaugeIDs' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,GaugeIDs,-1,-1;X 'X' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,X,-1,-1;Y 'Y' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,Y,-1,-1" # "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp"DefineProjection PeTgauges GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]] PeTgaugesFeatureClassToFeatureClass PeTgauges "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data" PeTgages.shp # "GaugeIDs 'GaugeIDs' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,GaugeIDs,-1,-1;X 'X' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,X,-1,-1;Y 'Y' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,Y,-1,-1" # "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgages.shp"Project PeTgages "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgages_Prjctd.shp" PROJCS['NAD_1983_StatePlane_South_Carolina_FIPS_3900',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',609600.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Standard_Parallel_1',32.5],PARAMETER['Standard_Parallel_2',34.83333333333334],PARAMETER['Latitude_Of_Origin',31.83333333333333],UNIT['Meter',1.0]] # GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]]20110504123646002011050412364600{D77F57FC-884D-4B62-A0D6-2B70C1D32663}Microsoft Windows 2000 Version 5.2 (Build 3790) Service Pack 2; ESRI ArcCatalog 9.3.1.3000enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.PeTgagesPeTgagesvector digital data\\CE-57\C\Documents and Settings\ercanm\Desktop\SolarRadiation\data\PeTgaugesREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows 2000 Version 5.2 (Build 3790) Service Pack 2; ESRI ArcCatalog 9.3.1.3000PeTgagesenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20110504ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://\\CE-57\C\Documents and Settings\ercanm\Desktop\SolarRadiation\data\PeTgaugesLocal Area Network0.000ShapefileVectorSimplePointFALSE0FALSEFALSEEntity point0GCS_North_American_1983Decimal degrees0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222GCS_North_American_19830PeTgagesFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.GaugeIDsGaugeIDsFloat1911XXFloat1911YYFloat191120110504Dataset copied.2011050412375900Dataset copied.C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges2011050412483200 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.shx new file mode 100644 index 00000000..368f99c1 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/ModelData/SRgauges.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/DbReader.omi b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/DbReader.omi new file mode 100644 index 00000000..29b8c171 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/DbReader.omi @@ -0,0 +1,6 @@ + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/DbWriter.omi b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/DbWriter.omi new file mode 100644 index 00000000..53f90b2f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/DbWriter.omi @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/HD_Project.dspx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/HD_Project.dspx new file mode 100644 index 00000000..99c0c13e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/HD_Project.dspx @@ -0,0 +1,1076 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/HD_Project.sqlite b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/HD_Project.sqlite new file mode 100644 index 00000000..c63359b2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/HD_Project.sqlite differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/HD_Project_backup.sqlite b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/HD_Project_backup.sqlite new file mode 100644 index 00000000..c63359b2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/HD_Project_backup.sqlite differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/HD_Project_cache.sqlite b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/HD_Project_cache.sqlite new file mode 100644 index 00000000..ad50b77e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/data/cuahsi-his/HD_Project_cache.sqlite differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/models/PenmanMonteith/ET.omi b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/models/PenmanMonteith/ET.omi new file mode 100644 index 00000000..30621565 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/models/PenmanMonteith/ET.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/models/PenmanMonteith/config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/models/PenmanMonteith/config.xml new file mode 100644 index 00000000..a463611a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/models/PenmanMonteith/config.xml @@ -0,0 +1,230 @@ + + + + + + SC_NC Study + Potantial Evapotranspiration + ../../data/ModelData/PeTgauges.shp + 1 + + + PET + Potantial Evapotranspiration + + + Length + 1 + + + Time + -1 + + + + mm/d + millimeters per day + 1 + 0 + + Scalar + + + + + SC_NC Study + Standardized Reference Evapotranspiration(ASCE-Penman-Monteith) + ../../data/ModelData/PeTgauges.shp + 1 + + + StandardizedET + Standardized Reference Evapotranspiration + + + Length + 1 + + + Time + -1 + + + + mm/d + millimeters per day + 1 + 0 + + Scalar + + + + + SC_NC Study + NetRadiation + 1 + ../../data/ModelData/PeTgauges.shp + + + NSR + net radiation + + + Mass + 1 + + + Time + -3 + + + + MJ/m^2/d + Megajoule per square meter per day + 1 + 0 + + Scalar + + + + + SC_NC Study + Temperature of the gauge + ../../data/ModelData/PeTgauges.shp + 1 + + + Temperature + Temperature + + + Temperature + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Dew Point Temperature of the gauge + ../../data/ModelData/PeTgauges.shp + 1 + + + Dew Point Temperature + Dew Point Temperature + + + Temperature + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Maximum Temperature of the gauge + ../../data/ModelData/PeTgauges.shp + 1 + + + Maximum Temperature + Maximum Temperature + + + Temperature + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Minimum Temperature of the gauge + ../../data/ModelData/PeTgauges.shp + 1 + + + Minimum Temperature + Minimum Temperature + + + Temperature + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + wind speed of the gauge + ../../data/ModelData/PeTgauges.shp + 1 + + + wind speed + wind speed + + + Length + 1 + + + Time + -1 + + + + m/s + meter/second + 1 + 0 + + Scalar + + + + + 01/01/1982 + 12/31/1983 + 86400 + + + Penman-Monteith + This component calculates PET(potantial evapotranspiration) and ETsz(Standardized Evapotranspiration) using a variation of the Penman-Monteith algorithm, defined by ASCE + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/models/PenmanMonteith/output.csv b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/models/PenmanMonteith/output.csv new file mode 100644 index 00000000..d96b7767 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/models/PenmanMonteith/output.csv @@ -0,0 +1,733 @@ +StationID:,7233870,7233812 +Latitude:,34.898998260498,35.431999206543 +Longitude:,-82.2190017700195,-82.5380020141602 +Elevation:,296,661.400024414063 +Date:,ETsz,ETsz +01-01-1982,1.53559261626425,1.19768966147314 +01-02-1982,2.00730067837071,1.54693098618085 +01-03-1982,3.46624180771316,1.35814450026442 +01-04-1982,1.55982201849718,1.02571922252987 +01-05-1982,3.04823818768955,3.24583890935733 +01-06-1982,3.31096273434285,4.21525417808174 +01-07-1982,3.01855606114877,5.0737844574209 +01-08-1982,4.78430451121944,3.99610252734598 +01-09-1982,6.54540070158529,4.24057873613205 +01-10-1982,3.69552557629772,2.73364206072347 +01-11-1982,4.77232696173102,2.12038295861515 +01-12-1982,1.93146346774499,1.32657147191065 +01-13-1982,0.919233061859476,1.44047129376588 +01-14-1982,0.480907974743792,1.14676010736195 +01-15-1982,0.469818972190105,0.688128572903168 +01-16-1982,1.46929811298313,1.92707071789184 +01-17-1982,2.23743855124089,1.5659230483391 +01-18-1982,2.91759825178785,1.86988811881926 +01-19-1982,1.62058374415147,1.59251608248471 +01-20-1982,0.941955368677742,1.75336132663555 +01-21-1982,0.198647507429227,0.779192926908337 +01-22-1982,0.434996704612465,2.31857751540685 +01-23-1982,1.76020059243126,1.82519096242957 +01-24-1982,1.73130331794717,1.72669507472043 +01-25-1982,3.53978691228647,4.70479758528868 +01-26-1982,3.88184902759788,3.46172856517621 +01-27-1982,5.49983257365884,3.59231108336875 +01-28-1982,2.46049824198147,1.77299782693626 +01-29-1982,3.50015178987832,2.1135517746423 +01-30-1982,2.87076505629094,2.45552303994546 +01-31-1982,3.04896399397768,3.04573077755845 +02-01-1982,4.13883140308044,1.84084472657401 +02-02-1982,3.40846769010448,2.91897692450935 +02-03-1982,4.3809092761969,1.67052279530254 +02-04-1982,0.993830861950809,0.945892294429342 +02-05-1982,0.585571700809531,2.31931201844095 +02-06-1982,1.77871405893178,1.39804443740223 +02-07-1982,1.31807484386618,1.06332150371922 +02-08-1982,4.1845446470048,2.91807438189288 +02-09-1982,2.5018382892848,2.66862690567627 +02-10-1982,1.99465338039003,2.92816320693655 +02-11-1982,2.49183164472261,2.68604585348161 +02-12-1982,2.34634613770711,2.80866929965248 +02-13-1982,2.54049116066497,1.31848802008656 +02-14-1982,2.66356474162171,1.03233395118054 +02-15-1982,3.87479547185004,3.18471115813501 +02-16-1982,2.06048577654288,2.82766725266326 +02-17-1982,1.11342157715592,0.74059974860426 +02-18-1982,2.11768568500782,0.72402113522313 +02-19-1982,6.20199560329511,2.26021329842895 +02-20-1982,3.55958086073544,2.41173396811274 +02-21-1982,4.58908734348565,4.89211735048132 +02-22-1982,6.57086259047032,6.52067803832966 +02-23-1982,8.25805108472481,4.72160359784462 +02-24-1982,7.16826421413847,7.13268787222842 +02-25-1982,10.3372442917578,6.42362407679423 +02-26-1982,9.81520890107387,6.08532116265581 +02-27-1982,5.7047077738341,2.11734758574307 +02-28-1982,2.36991204112153,0.526910929863317 +03-01-1982,0.794995036196896,0.55850661675062 +03-02-1982,3.18816807532725,1.63053555952164 +03-03-1982,5.44459325885286,4.11985693463858 +03-04-1982,5.97345588907817,4.32609092322373 +03-05-1982,5.22148957550183,2.81153437649392 +03-06-1982,5.37208723035663,4.77930790068957 +03-07-1982,6.58065659028517,2.05326702507623 +03-08-1982,4.30835473453168,0.693116194302077 +03-09-1982,3.72625147546485,4.50301094538415 +03-10-1982,4.90606641044328,4.42569355166875 +03-11-1982,4.12520754430088,4.59085555788149 +03-12-1982,3.86488309152875,3.38734299933165 +03-13-1982,4.98644726906023,4.75291564637833 +03-14-1982,5.54977572594952,4.69117446377571 +03-15-1982,6.56647141092495,4.00361944067064 +03-16-1982,4.79054198581139,2.30850346066251 +03-17-1982,3.46156570221842,1.96946211783885 +03-18-1982,3.64912753023451,3.7449882247758 +03-19-1982,3.47350498225516,5.08880159420581 +03-20-1982,5.31859240692764,4.17331395121974 +03-21-1982,5.47158143740785,3.88229570124287 +03-22-1982,7.06838898237952,3.44157278416302 +03-23-1982,7.46887552413352,7.5597894227099 +03-24-1982,7.02151896563761,5.40378290988421 +03-25-1982,3.14640690153845,3.35049549663556 +03-26-1982,3.41088268592341,4.06969032970539 +03-27-1982,7.84756138920327,7.01972534333126 +03-28-1982,6.26393105155841,4.3486996444952 +03-29-1982,5.06533947209764,4.56451163340301 +03-30-1982,4.98091896617916,3.77336106555908 +03-31-1982,5.82137783048421,4.66165304414903 +04-01-1982,3.32346637597128,4.09966727688409 +04-02-1982,4.88696189718912,7.01002647842929 +04-03-1982,7.52140150246642,4.48570387179259 +04-04-1982,7.96121632859277,7.51473407779513 +04-05-1982,11.6004864644218,11.9399339520715 +04-06-1982,4.48205077594281,3.64832898523271 +04-07-1982,5.0340826631922,5.00610593656951 +04-08-1982,5.93261999613656,7.47546970025796 +04-09-1982,3.68445470570169,3.1816783095288 +04-10-1982,6.15289230058045,3.26967549249433 +04-11-1982,6.30582514620462,5.44789609328701 +04-12-1982,5.22541619168011,6.3080244106086 +04-13-1982,8.20425986001807,6.40963548415197 +04-14-1982,7.77513857865981,9.07638721135792 +04-15-1982,4.84124047238313,4.63549963251632 +04-16-1982,4.6287890904965,2.55967853228521 +04-17-1982,3.73732545854213,1.89698447762486 +04-18-1982,2.52118423364867,2.39762907041544 +04-19-1982,7.01352535058381,7.67795573982041 +04-20-1982,4.46896619197745,4.74429577790435 +04-21-1982,3.47310065922908,4.6961405089297 +04-22-1982,4.07949129795768,5.99039578650651 +04-23-1982,7.53727004422708,6.83654689895786 +04-24-1982,6.44947112100081,7.56402097721513 +04-25-1982,5.92753133401053,6.89999388921898 +04-26-1982,4.51009460272247,4.09083491065082 +04-27-1982,5.55444053290729,3.36794891801787 +04-28-1982,5.63245734195739,3.96720085419153 +04-29-1982,5.4742972760122,5.95520379082452 +04-30-1982,7.3061500249043,5.44454980462114 +05-01-1982,6.93191140610996,5.36024711650433 +05-02-1982,5.32787536764953,6.24115767943768 +05-03-1982,6.1963027910534,5.86335453257829 +05-04-1982,6.21227714759127,6.23322852192081 +05-05-1982,6.9284845085331,6.65742085621544 +05-06-1982,6.83084136768129,6.41626653464414 +05-07-1982,6.8981186777812,5.82291224542495 +05-08-1982,8.17882207417152,5.94382125832947 +05-09-1982,5.70234810257127,5.91687330975401 +05-10-1982,7.76994967249389,7.63308586296226 +05-11-1982,6.83738698197218,8.30839498118611 +05-12-1982,7.88297251635231,8.26819348944867 +05-13-1982,6.82858928366361,7.6689373883165 +05-14-1982,6.92297065071309,8.07336581339541 +05-15-1982,8.36861482237125,7.5685420553098 +05-16-1982,8.91790414435292,6.89814137454509 +05-17-1982,7.31274621041118,6.49218507870553 +05-18-1982,7.59410115307291,6.59078562060434 +05-19-1982,6.35786149789202,5.64681204517304 +05-20-1982,6.45851272485613,5.06012111685617 +05-21-1982,6.41220799698954,4.15411250337034 +05-22-1982,5.38592511105074,4.42835129977165 +05-23-1982,5.47743493162761,5.44386827930194 +05-24-1982,5.72924860577674,5.05839199928799 +05-25-1982,5.82830602522872,3.60709995434727 +05-26-1982,4.77001831239292,3.57757708954226 +05-27-1982,5.34307797946162,4.19766900389758 +05-28-1982,4.90579753756467,3.67459147165386 +05-29-1982,4.84814312881576,4.63630044204671 +05-30-1982,6.77957109528354,5.48986427307472 +05-31-1982,7.23886853156951,6.46993297021638 +06-01-1982,7.8919107674157,6.42536497342441 +06-02-1982,7.43715327339698,5.90367225389322 +06-03-1982,6.61435846274028,5.67308886217935 +06-04-1982,6.59022405334571,5.48042925676675 +06-05-1982,6.24922893639478,4.35580524343264 +06-06-1982,6.25084806290431,4.0935715224612 +06-07-1982,9.10804233945939,6.65633599948159 +06-08-1982,7.6613247438107,8.21688872544935 +06-09-1982,7.3703749642555,7.42130931367036 +06-10-1982,7.02683045777236,7.04928124527672 +06-11-1982,7.11308491906684,6.00313189030006 +06-12-1982,7.22799845217469,6.53279924358164 +06-13-1982,6.21547027062193,4.93892240263121 +06-14-1982,5.59764715983241,4.29008556851098 +06-15-1982,5.33241896803894,5.49407052898752 +06-16-1982,5.53007001278449,5.76229125668861 +06-17-1982,6.23009692338431,6.26440374370778 +06-18-1982,7.4139866638696,4.7839298922009 +06-19-1982,5.19664131824419,3.16525810586854 +06-20-1982,5.47026605996895,4.79017469345609 +06-21-1982,6.71467641688994,7.76313687500691 +06-22-1982,7.24520600282798,8.19415447450423 +06-23-1982,6.32162263572598,6.1583689296105 +06-24-1982,5.77395731110455,5.43372642734277 +06-25-1982,6.62629141913359,5.94049584431741 +06-26-1982,6.18055415243565,4.07155532310602 +06-27-1982,5.0304154530297,3.7805004212403 +06-28-1982,5.02797560421052,4.56852184251169 +06-29-1982,5.90238819296857,3.07212681876876 +06-30-1982,6.09231186489676,5.09960226816263 +07-01-1982,6.09619505670583,6.785900240464 +07-02-1982,8.31242746649692,8.55910718484111 +07-03-1982,7.3931866979788,6.32099592707906 +07-04-1982,9.0589641843229,8.08901396466078 +07-05-1982,9.14756367360375,8.43541190370367 +07-06-1982,8.7513388473369,6.76954689400706 +07-07-1982,8.42277456606776,5.42891463349635 +07-08-1982,6.28504497353957,4.5557128475982 +07-09-1982,6.1607947429741,6.33409494663498 +07-10-1982,7.00108705446992,5.29858374269101 +07-11-1982,6.73264150390742,4.20705539230284 +07-12-1982,6.42293515461187,4.07967029055281 +07-13-1982,6.3091564916078,4.65639788679367 +07-14-1982,5.50751660294394,5.73000527408272 +07-15-1982,5.34932893551796,4.58019954041965 +07-16-1982,5.0326298274474,3.7662247656103 +07-17-1982,4.85550806115914,5.72673522854871 +07-18-1982,5.32309399461273,5.25148666450982 +07-19-1982,4.59965171643146,4.09777410137315 +07-20-1982,5.18080562732261,5.44264120043432 +07-21-1982,5.68170293147073,6.01775766803446 +07-22-1982,5.90048663242479,5.56783880199557 +07-23-1982,4.78240030696409,5.89249215879919 +07-24-1982,5.47862200320509,4.80910789002838 +07-25-1982,5.53094186944892,3.37346752071138 +07-26-1982,4.23421180268244,4.07397183992546 +07-27-1982,4.29261093158165,5.10893836639519 +07-28-1982,5.47159256357423,5.38805688604145 +07-29-1982,5.89930601339354,4.85372938527458 +07-30-1982,6.57672838049886,3.86565437187211 +07-31-1982,5.47308469510283,3.21342972031701 +08-01-1982,4.34678373726113,2.49690283128096 +08-02-1982,4.12307543020328,4.10989858278172 +08-03-1982,4.74168306279579,6.37706083516396 +08-04-1982,5.86445155052373,7.15131739136621 +08-05-1982,5.81155357169518,6.35483455989018 +08-06-1982,5.19126035099564,5.18271062250953 +08-07-1982,5.21545065871819,4.74312043955739 +08-08-1982,5.1060370324581,4.6244113943663 +08-09-1982,5.94825020494382,4.6476667795837 +08-10-1982,6.10070169337514,4.07371609831509 +08-11-1982,5.51374294321832,3.77370793660723 +08-12-1982,4.67463863021914,4.03409523008736 +08-13-1982,3.90350158555857,4.55775895033375 +08-14-1982,4.75571806885492,3.60190891375114 +08-15-1982,4.7545883054309,2.7721926609764 +08-16-1982,4.06710291143559,4.49566285700608 +08-17-1982,4.89749376073351,4.59443879080858 +08-18-1982,4.77483761236462,3.62050905327078 +08-19-1982,5.02757401424093,3.30088138124293 +08-20-1982,5.61522274796705,5.03646072545643 +08-21-1982,5.19717040394753,6.039259586136 +08-22-1982,6.1678072070317,6.58747794217489 +08-23-1982,7.72712945474686,5.19457847575259 +08-24-1982,5.72549117919302,5.05970753599333 +08-25-1982,5.62574173344244,5.17166510382483 +08-26-1982,7.11184378418789,5.28680453815971 +08-27-1982,8.56284854763108,5.01676465139989 +08-28-1982,5.63414856635191,5.490373128235 +08-29-1982,5.12960180998712,5.59329505626409 +08-30-1982,8.70021294728054,4.38816405112564 +08-31-1982,5.99493729653916,5.19838275155426 +09-01-1982,4.90987570166046,3.33295188972768 +09-02-1982,3.51374402756934,0.601047314925394 +09-03-1982,3.60030167887782,1.99447689658525 +09-04-1982,6.12934408099358,4.78860307353728 +09-05-1982,10.4654302138441,5.67424700386693 +09-06-1982,6.90229825096403,3.82159063439191 +09-07-1982,5.5817609059457,5.03812588496895 +09-08-1982,5.72867361723612,4.86543432772892 +09-09-1982,6.05969693440116,4.25336397733243 +09-10-1982,6.36972557039969,3.85970262768312 +09-11-1982,5.28440408342907,3.30355150284696 +09-12-1982,4.7297712866568,2.05473218159835 +09-13-1982,4.11182750749316,0.864057078038569 +09-14-1982,2.53876680968116,1.56570204795453 +09-15-1982,2.53245992420303,2.24172139038455 +09-16-1982,3.18705425618076,4.07341743294609 +09-17-1982,5.18600315139615,5.35165729833875 +09-18-1982,6.47607379709879,4.80309896686728 +09-19-1982,5.31281554164051,3.89108869180629 +09-20-1982,5.58674132816769,2.68451587829789 +09-21-1982,5.26905672071966,1.50249353784927 +09-22-1982,4.89387756647859,2.70647722644551 +09-23-1982,5.29559343900365,4.68502920321078 +09-24-1982,5.33155815635348,4.38072292946275 +09-25-1982,4.46719038904851,3.12501786614312 +09-26-1982,3.77289141162901,2.89993455513771 +09-27-1982,5.09665704841148,1.92932955717067 +09-28-1982,5.95737382757821,2.11952479289667 +09-29-1982,5.09840993618386,3.7253267063083 +09-30-1982,5.67122222592608,3.63543814844588 +10-01-1982,5.32636292569237,3.16542584421695 +10-02-1982,4.44533710764384,4.14447103298372 +10-03-1982,5.39721194853627,3.85980986401024 +10-04-1982,4.85106704750723,3.2737932920666 +10-05-1982,4.01140292569711,2.87801638601354 +10-06-1982,3.8337681565441,2.42692891732575 +10-07-1982,4.82449287265053,3.07742775217872 +10-08-1982,4.19135948953897,2.42811907941042 +10-09-1982,2.82644212256663,1.49493450592629 +10-10-1982,2.77361855876977,1.08411859400543 +10-11-1982,2.88148515290848,1.38756247614911 +10-12-1982,3.77242445553238,1.37332405170648 +10-13-1982,1.90784364185244,0.541719028074488 +10-14-1982,0.815897067311637,0.996891533766058 +10-15-1982,3.69128281592834,3.4597299927683 +10-16-1982,5.21347256250694,6.32008961876477 +10-17-1982,6.41427412685524,6.22008267706487 +10-18-1982,4.94233192851707,3.93029704441902 +10-19-1982,3.47722601147707,2.61032912355016 +10-20-1982,4.70751474876306,2.24655504509964 +10-21-1982,2.94794552174944,2.87392047418884 +10-22-1982,2.58707323165889,2.22202006582592 +10-23-1982,7.44517213857678,2.71021351740016 +10-24-1982,4.66630789964186,1.77364631079556 +10-25-1982,5.51995914588192,1.89345986988665 +10-26-1982,2.76437617773972,1.99473542175637 +10-27-1982,5.39920429083588,5.98238850479092 +10-28-1982,4.20388634483461,2.59282624482938 +10-29-1982,2.91984961287163,2.43980541215755 +10-30-1982,2.61545271401007,2.40317871027286 +10-31-1982,3.01938288228951,2.48707518934827 +11-01-1982,2.9603470729998,2.47308406507526 +11-02-1982,2.91847851142433,2.78814316572763 +11-03-1982,3.15667405861032,2.55525222574251 +11-04-1982,2.94891362889837,1.4275450589931 +11-05-1982,2.71159177603342,1.06915222050813 +11-06-1982,5.74081242855901,3.78551770952099 +11-07-1982,2.49599887132409,4.59333646667561 +11-08-1982,1.96898902905776,2.85413137298735 +11-09-1982,2.64173787075175,3.24849401306937 +11-10-1982,2.88015193888225,3.5373832446092 +11-11-1982,3.10008160034264,2.25456448849855 +11-12-1982,2.05782201140089,2.17876498942204 +11-13-1982,2.26318246125068,1.41937444591404 +11-14-1982,6.89963510153038,5.48876795358918 +11-15-1982,3.2180596536268,1.9037427783597 +11-16-1982,3.13524894834967,4.22624485587075 +11-17-1982,3.2078446323436,2.44189759909736 +11-18-1982,4.19164575731085,1.50817524857458 +11-19-1982,1.64771930062299,0.165258800018512 +11-20-1982,1.56194099152572,-0.0136107910429319 +11-21-1982,0.98791390497788,-0.0208147074240557 +11-22-1982,0.849507729988801,0.0216686468891414 +11-23-1982,1.80244751336902,-0.0263915785732868 +11-24-1982,1.92019213839281,1.06615400946487 +11-25-1982,4.71142455589942,1.98317330906719 +11-26-1982,5.77113884194988,3.11663460185543 +11-27-1982,1.90971381758123,3.04968015802941 +11-28-1982,1.16751247553582,1.01391805300706 +11-29-1982,2.16523625157369,0.674344374127469 +11-30-1982,3.8840388649497,2.49202757661295 +12-01-1982,2.8582381557527,1.08498719306262 +12-02-1982,0.520438095989704,1.18360618116912 +12-03-1982,0.937163056862477,1.19578560521057 +12-04-1982,0.436329321473308,0.97760183115857 +12-05-1982,1.94761248556687,1.5538335558351 +12-06-1982,1.90739640903928,0.593902710362293 +12-07-1982,4.25345952893138,2.14261448414338 +12-08-1982,3.92427227122688,3.28311528538429 +12-09-1982,4.54694336980425,1.60183666968462 +12-10-1982,3.06719998857926,2.5602797848417 +12-11-1982,3.84372269843423,1.75162867940505 +12-12-1982,0.506475727609834,0.888502835757011 +12-13-1982,2.17323572670281,2.00879755519854 +12-14-1982,2.18197845962826,3.05560765558356 +12-15-1982,1.68582224535422,3.84863396886942 +12-16-1982,1.49096948792912,2.50173033762149 +12-17-1982,1.84077046214226,2.46886857184819 +12-18-1982,3.34820721849224,2.40538883247249 +12-19-1982,1.63086914942993,2.15274426826302 +12-20-1982,1.19376420417005,2.21560667308433 +12-21-1982,3.13281161649258,3.41274214378368 +12-22-1982,2.28001514092829,2.95165390367216 +12-23-1982,2.30863233010724,2.01308821550752 +12-24-1982,1.80811591052955,4.23158531561511 +12-25-1982,2.4219401602147,2.03500045384733 +12-26-1982,1.74284526841718,0.865306764395573 +12-27-1982,2.4311194984033,1.84563659699615 +12-28-1982,1.76628926681901,1.47217670523536 +12-29-1982,-0.0211001726371352,1.2292741437059 +12-30-1982,2.6198163332479,2.77452123848917 +12-31-1982,5.68078821449155,2.06607519952606 +01-01-1983,1.81340818384144,0.738990139181318 +01-02-1983,0.779343559271613,1.11754244787732 +01-03-1983,0.780063177474174,0.631285669406566 +01-04-1983,2.11084662801366,1.56495405704089 +01-05-1983,3.36080702966269,1.87339274319989 +01-06-1983,2.81932391198592,2.72021396573097 +01-07-1983,2.67825908019567,3.39430526534293 +01-08-1983,4.11575728457574,3.38073153019342 +01-09-1983,4.08977969924583,2.76059294831437 +01-10-1983,4.55246667398373,2.54474395155988 +01-11-1983,1.46845628809242,0.760717931903825 +01-12-1983,2.15059100426745,2.40297980409506 +01-13-1983,4.96724094849973,3.05335023119227 +01-14-1983,2.24637557465315,2.84421796479243 +01-15-1983,2.63742025230227,3.27813980972552 +01-16-1983,4.47557077595864,3.49658053359975 +01-17-1983,3.61284508720383,3.41613945147524 +01-18-1983,2.59710241810772,3.29988553152882 +01-19-1983,4.06538808111398,2.97421460702371 +01-20-1983,2.5304107880643,4.25820006268097 +01-21-1983,2.98559080070841,2.146669684548 +01-22-1983,1.46538971878202,0.756695680665077 +01-23-1983,2.17904257512619,0.490388032519393 +01-24-1983,0.645763609736979,0.656509390949195 +01-25-1983,1.56286504807797,2.4350828775239 +01-26-1983,1.80343917589155,1.23635368177978 +01-27-1983,1.86749298454582,2.22074242817908 +01-28-1983,1.9835462105243,1.39116502919171 +01-29-1983,2.67507208466833,2.47097325793243 +01-30-1983,1.89643506328231,1.56743559629644 +01-31-1983,1.2638756456486,3.20316882029804 +02-01-1983,2.14037185817433,3.72222113605782 +02-02-1983,2.37809885590463,2.03659931517367 +02-03-1983,3.83971481771961,3.08638096030595 +02-04-1983,6.96978776624285,3.3150570912285 +02-05-1983,3.11794046769563,2.88443689018523 +02-06-1983,3.20390295135674,2.61965616218367 +02-07-1983,1.47238857350028,1.3126057221216 +02-08-1983,1.59961445265228,1.11402723744574 +02-09-1983,2.46051853313803,3.30022900920762 +02-10-1983,1.96129354588185,2.42975284147341 +02-11-1983,1.30924354215945,1.46159599779055 +02-12-1983,1.48882677442577,0.514508842968662 +02-13-1983,1.01773238486035,1.80006946247197 +02-14-1983,2.40186882963839,1.17033051703777 +02-15-1983,3.54451366106313,4.17225679378185 +02-16-1983,2.87269593573352,3.87551372525744 +02-17-1983,2.04565814905797,2.47344626709232 +02-18-1983,3.95892469998901,4.02321314660881 +02-19-1983,4.93251612996735,4.61442738275457 +02-20-1983,3.06720462171543,3.18320865466658 +02-21-1983,3.47649280740023,3.25179020915891 +02-22-1983,3.22739756780171,3.41628579793218 +02-23-1983,2.84012560041112,2.69372698851581 +02-24-1983,3.1146850781127,2.34262352605783 +02-25-1983,3.52466272557395,1.60859401791689 +02-26-1983,4.72750218891463,2.56974284556615 +02-27-1983,4.04234841624433,4.08719888631727 +02-28-1983,3.66366622062337,3.1728282284513 +03-01-1983,3.68478570960498,1.99773870867678 +03-02-1983,4.54757351946014,3.27926850139544 +03-03-1983,7.50123304172278,5.80501944684272 +03-04-1983,4.5345060682048,5.01999151186017 +03-05-1983,5.80138297112665,5.67968797266302 +03-06-1983,4.65218678620935,3.96861728737314 +03-07-1983,4.36910219533258,5.07086697541005 +03-08-1983,4.2525434126362,2.69749288475187 +03-09-1983,3.13657425408665,2.96369945346954 +03-10-1983,5.13180100127279,4.68027888405789 +03-11-1983,5.8935221915428,2.27408417612308 +03-12-1983,4.0146307735209,2.20779321086265 +03-13-1983,6.35835930176194,3.64646413649279 +03-14-1983,7.2482670836327,7.08490203302202 +03-15-1983,5.14939120086061,5.66631939064263 +03-16-1983,5.38409331071074,5.22744597057066 +03-17-1983,7.66986221905385,4.41016837509793 +03-18-1983,4.92677618112948,3.09953089273907 +03-19-1983,2.91039220943674,2.17118299933574 +03-20-1983,6.10675603318018,4.47548009820845 +03-21-1983,4.50574656202024,3.93069041119567 +03-22-1983,5.30068450355576,1.92837745836164 +03-23-1983,5.7025048169722,3.91922385424574 +03-24-1983,4.04473387210254,4.79253770926446 +03-25-1983,3.82167666234991,2.84088484975032 +03-26-1983,3.12265831219193,5.71951029468465 +03-27-1983,3.83376063016264,3.79546662086204 +03-28-1983,3.75147426530585,3.87280698756221 +03-29-1983,6.29219582280348,3.6950025878357 +03-30-1983,4.08167847664896,3.4619023071111 +03-31-1983,4.50909940925762,3.09987373033213 +04-01-1983,2.18486108573599,2.24469091800705 +04-02-1983,2.78193801052046,2.72892521164991 +04-03-1983,4.60794625676134,4.40754385348462 +04-04-1983,9.03785322481368,3.90684044913372 +04-05-1983,5.25644671266019,4.9637521173107 +04-06-1983,4.34942048865655,3.90953274981935 +04-07-1983,3.79854831938534,2.67002414343845 +04-08-1983,3.23531241947432,2.13747348495687 +04-09-1983,3.23877339066626,0.558464472226325 +04-10-1983,1.37467584917534,0.815807662135867 +04-11-1983,4.03603687727715,4.21540419166042 +04-12-1983,6.81225328246944,4.90259159590431 +04-13-1983,4.80865890740948,5.28828579614535 +04-14-1983,4.97582326469896,5.14870924041651 +04-15-1983,4.87114072490449,3.64866673546407 +04-16-1983,4.82046345668823,1.97856927975404 +04-17-1983,8.78574986021801,6.11636020258397 +04-18-1983,6.94423259213095,5.69657871614915 +04-19-1983,6.17377572853579,3.71660365266696 +04-20-1983,5.94282917877865,3.88414101147279 +04-21-1983,4.78716618289064,4.56869098768441 +04-22-1983,4.84035137047349,6.39104042209716 +04-23-1983,4.43725648455385,3.36084890667319 +04-24-1983,3.23442769687988,1.78263309472333 +04-25-1983,2.0719350232026,1.28113308412132 +04-26-1983,8.15914967469338,7.58630510387635 +04-27-1983,6.68835051464704,9.40037752676554 +04-28-1983,6.68369405046955,7.7236141710026 +04-29-1983,9.14901888876217,7.73570373693179 +04-30-1983,7.96845037411739,7.80082023918883 +05-01-1983,6.95874752344614,6.28281639243385 +05-02-1983,6.07774972338246,5.26526641895034 +05-03-1983,8.35326983440648,6.87371561612447 +05-04-1983,8.4158369365208,5.05460704747309 +05-05-1983,7.43737872133244,5.32448373040327 +05-06-1983,6.85743738945819,6.35912401064452 +05-07-1983,7.65371483251354,6.47593304678003 +05-08-1983,7.96754510302105,7.62173518430058 +05-09-1983,7.66300241607653,5.61930834157234 +05-10-1983,8.64028697962399,8.07706124661201 +05-11-1983,5.85483737251032,6.16320124086519 +05-12-1983,6.72923681126872,6.19718211876836 +05-13-1983,6.70026363969483,5.02026201436535 +05-14-1983,6.45259025117103,3.78643715792813 +05-15-1983,6.72140026007747,3.78320092845546 +05-16-1983,7.63212539637336,4.58071172634007 +05-17-1983,6.67381764714589,4.36126854378904 +05-18-1983,10.5067603623893,5.57377439550927 +05-19-1983,5.92136793392796,4.39012504641055 +05-20-1983,3.56580369681131,2.74691140823999 +05-21-1983,3.18038890432944,1.14154155020222 +05-22-1983,4.08505295556411,4.05096402299709 +05-23-1983,4.48533890163314,3.42032669390662 +05-24-1983,5.53698497012202,4.15548826020561 +05-25-1983,6.53145955342079,6.55701356147772 +05-26-1983,7.30660263027123,4.76968291067068 +05-27-1983,5.49553748022969,5.27863298163665 +05-28-1983,8.42946114638995,8.09651915453368 +05-29-1983,6.81711934861311,6.17912967971508 +05-30-1983,5.53121930271975,5.17994493871171 +05-31-1983,7.38901917619591,5.90495729349916 +06-01-1983,8.38641141855779,5.86747684540728 +06-02-1983,7.36140049563001,6.00950566455751 +06-03-1983,6.88939981617,5.15936875909572 +06-04-1983,6.15594264313973,6.48867996424279 +06-05-1983,5.91629510075441,5.33775243785727 +06-06-1983,6.76158159444829,4.80191417268162 +06-07-1983,6.37407050708262,4.63169298329971 +06-08-1983,5.78557364700975,3.51451111238379 +06-09-1983,5.92512837893693,4.48301081015946 +06-10-1983,6.61317093545515,5.14595137594873 +06-11-1983,7.98055262373816,5.35616103987515 +06-12-1983,7.84862920360198,6.0903910971806 +06-13-1983,8.57706741775903,6.36628335703668 +06-14-1983,8.63059442489846,6.89068924410184 +06-15-1983,7.35432804333722,6.85022753601758 +06-16-1983,7.2430700211273,6.85593015378786 +06-17-1983,7.25850818758263,6.55177556844856 +06-18-1983,6.685088877147,4.85005191750719 +06-19-1983,6.4830207193777,3.66200687395383 +06-20-1983,5.19552891933932,4.15159212327298 +06-21-1983,5.79760813992614,4.44122359269298 +06-22-1983,5.74018218855085,6.29777216160316 +06-23-1983,7.23057221490164,6.02491704895873 +06-24-1983,6.37301304426054,4.01308508162627 +06-25-1983,5.43871413079418,5.70583564307838 +06-26-1983,7.18394641278209,7.64201209221444 +06-27-1983,7.67954281910789,6.36972801066467 +06-28-1983,7.54045408929985,5.46698662632741 +06-29-1983,7.09290873695961,4.40366761552569 +06-30-1983,6.85149357141594,3.85369728112133 +07-01-1983,5.4379191946362,3.71950354428574 +07-02-1983,5.09749189666425,4.10204749055032 +07-03-1983,5.5657249607125,5.87499673416544 +07-04-1983,7.04245217554418,6.32406928864849 +07-05-1983,7.54663071658578,6.06624546734976 +07-06-1983,6.89005564871922,4.73104888257146 +07-07-1983,7.93743349153891,5.24492035037734 +07-08-1983,10.1095136985119,5.83472927603559 +07-09-1983,7.77109593390043,6.0553333254865 +07-10-1983,7.27527336182315,6.95016577160241 +07-11-1983,7.57719466801313,8.09785867669252 +07-12-1983,6.80665116557211,6.63028403578748 +07-13-1983,7.4738863657853,7.12273932938232 +07-14-1983,7.38042131948021,6.36786506992051 +07-15-1983,7.58722012111469,6.96949593481843 +07-16-1983,7.64628498548061,7.51631322592286 +07-17-1983,8.17103314537525,7.29682759841835 +07-18-1983,7.77018846269171,6.98435368203404 +07-19-1983,9.20827168052629,6.61043960678525 +07-20-1983,8.44644968978227,7.20606138559357 +07-21-1983,7.7307538502049,7.81332664992806 +07-22-1983,8.62358965451643,8.36852953516098 +07-23-1983,10.2015644068306,9.59027645841819 +07-24-1983,10.6376403266678,7.86599182037451 +07-25-1983,9.77212876586856,8.31767132379037 +07-26-1983,8.79924342571833,6.47935898117538 +07-27-1983,8.45871910885249,6.29727572837869 +07-28-1983,7.30728446197975,5.81567675123309 +07-29-1983,7.41335366498,6.24186417681265 +07-30-1983,7.01808440529153,6.68033334991078 +07-31-1983,7.39349797096798,6.54989728357576 +08-01-1983,6.87467577131687,7.14792213223164 +08-02-1983,6.85204885989846,4.82028506058444 +08-03-1983,5.45560138066508,3.34741266433341 +08-04-1983,4.81862521185957,4.76802104986691 +08-05-1983,6.07686176603279,6.77811132736464 +08-06-1983,6.837786224438,7.19172738912215 +08-07-1983,7.68905346258028,6.441727593831 +08-08-1983,7.68892068068567,6.41184350125896 +08-09-1983,7.23314539497776,6.31910235784877 +08-10-1983,7.77529050988079,7.29821295843963 +08-11-1983,7.96075612986121,7.0604976968489 +08-12-1983,9.40470995169003,7.13681430054019 +08-13-1983,9.18204903792405,7.78346911041272 +08-14-1983,9.79668035637409,7.85962110688488 +08-15-1983,8.21772551162052,5.79942778478325 +08-16-1983,7.14182772170313,6.51638800277039 +08-17-1983,6.0203684776794,5.89924900555481 +08-18-1983,6.93676960913931,6.37880328657612 +08-19-1983,7.97393348703397,7.60864819391578 +08-20-1983,8.40430680701492,9.91427155126233 +08-21-1983,9.63582473230906,8.3796711692025 +08-22-1983,9.32526920065554,8.17935534281039 +08-23-1983,10.0228325773146,6.3925969040464 +08-24-1983,10.584753194058,7.46774468665003 +08-25-1983,11.3465295467353,6.45280363244794 +08-26-1983,4.50492036674703,4.10261956087744 +08-27-1983,3.53188922161082,3.21298963578551 +08-28-1983,4.47193944048843,5.25366762674958 +08-29-1983,6.47495881166714,7.07874352744452 +08-30-1983,6.74216461524735,7.97847296845037 +08-31-1983,7.71077893807195,7.24541575250588 +09-01-1983,5.7611808278783,5.19682018902389 +09-02-1983,6.17468522616577,4.92568433013976 +09-03-1983,5.74676826807415,3.37432831724006 +09-04-1983,2.89632870137892,1.66673196198991 +09-05-1983,2.46230940104542,1.52926886752893 +09-06-1983,4.22110295459957,5.10547015419101 +09-07-1983,6.09191466078366,6.24246329375538 +09-08-1983,6.31064066860869,5.98067987231396 +09-09-1983,5.40459584725442,5.55164586375354 +09-10-1983,5.33169518700232,4.78823291682764 +09-11-1983,5.37773293833436,6.09732810082421 +09-12-1983,5.43707576046377,5.92611250330966 +09-13-1983,6.86012363513081,5.87891903705662 +09-14-1983,5.92227176033282,3.82642062464298 +09-15-1983,5.28023519534085,3.77855456250819 +09-16-1983,5.5433489365367,3.90963760383748 +09-17-1983,4.65646905191097,3.28177166401814 +09-18-1983,4.72761188096469,5.44629017381061 +09-19-1983,4.73121358575385,5.3063840346671 +09-20-1983,4.58791709486881,4.80103983438108 +09-21-1983,4.74181229667227,3.48938571377538 +09-22-1983,2.96084586214872,1.91561478912286 +09-23-1983,7.03041758270122,7.54910257049138 +09-24-1983,4.83226881568864,5.26497997201794 +09-25-1983,6.00796541398751,4.4691301117279 +09-26-1983,5.32135219937671,3.9459278910924 +09-27-1983,4.90192799996195,4.786734270299 +09-28-1983,5.91479982604368,4.96171979836015 +09-29-1983,5.770850273782,5.66104083974211 +09-30-1983,7.24645932374159,5.23630585511574 +10-01-1983,5.1436466263824,5.14459504157807 +10-02-1983,3.285141963162,4.35378814314343 +10-03-1983,4.24369264904528,5.08774929572576 +10-04-1983,4.76906411573992,4.89685833115331 +10-05-1983,4.8023982173116,4.56081795629591 +10-06-1983,3.85303707256191,4.63539454878251 +10-07-1983,6.6580779422352,6.49612300540394 +10-08-1983,6.6520152223513,3.90855288408985 +10-09-1983,5.68245644581177,3.2460252510823 +10-10-1983,5.42812064071965,3.81954981224906 +10-11-1983,4.25247325880397,3.58804556257883 +10-12-1983,4.93351810171739,1.26202698410454 +10-13-1983,1.62597167087987,1.263792886386 +10-14-1983,0.795027790006861,2.40312893044516 +10-15-1983,4.57971716003218,5.38765351045017 +10-16-1983,3.73668859420296,3.91753906281583 +10-17-1983,3.69796741206922,3.14880363668747 +10-18-1983,3.22449565981104,3.40966408266184 +10-19-1983,3.10826191046727,3.22080232365699 +10-20-1983,2.42944992343785,3.76713950663337 +10-21-1983,4.24098040733581,3.12970105872389 +10-22-1983,4.34535685020477,1.52612418221189 +10-23-1983,2.1033077304577,0.837281221140424 +10-24-1983,1.14157986644711,1.08302489520549 +10-25-1983,1.68131902216699,3.19977410201758 +10-26-1983,3.98210248872531,2.93370212089119 +10-27-1983,4.38273137919448,5.40763814007881 +10-28-1983,5.04581904747143,6.70939279435357 +10-29-1983,4.61608823647427,6.15836284956142 +10-30-1983,4.72362518460038,6.01185608441481 +10-31-1983,7.0094957707001,3.68227745627398 +11-01-1983,3.57089607014636,3.19498443602692 +11-02-1983,2.61054058973287,3.53091177807954 +11-03-1983,2.3633806547935,2.60579677274141 +11-04-1983,3.3291654725266,3.84130882438475 +11-05-1983,2.8995968009677,2.37690544719446 +11-06-1983,4.44195637630141,3.61659180772914 +11-07-1983,3.14644817044086,4.69043879934268 +11-08-1983,1.98192034666118,2.25252126720054 +11-09-1983,3.23919850539251,2.97558749573107 +11-10-1983,3.89183331080068,1.43885179638797 +11-11-1983,1.09527059021272,2.03076473384894 +11-12-1983,4.52124439449458,3.54687139462341 +11-13-1983,6.07294165399176,4.39679298732177 +11-14-1983,2.25843408120981,2.82927771463347 +11-15-1983,1.39135873103175,1.66438995440404 +11-16-1983,1.18794759801262,1.25045568824875 +11-17-1983,1.91243265230909,2.60255252482776 +11-18-1983,2.51725073966938,3.81254959033457 +11-19-1983,3.21156353011671,2.76798578831902 +11-20-1983,3.72439292550956,4.67229561300183 +11-21-1983,1.87122678346767,1.40678957358097 +11-22-1983,2.74235917447076,3.99777973781078 +11-23-1983,2.58189497057609,4.23323654930546 +11-24-1983,2.50741128133388,3.30286244139874 +11-25-1983,1.11692048882003,0.497969320498774 +11-26-1983,4.96431198855911,4.02336564216055 +11-27-1983,2.81135294320151,3.15690210038972 +11-28-1983,1.46454100584681,1.33337293454287 +11-29-1983,3.31925688714635,2.53173888676352 +11-30-1983,7.37969257782707,3.56338917673157 +12-01-1983,3.24650033055529,3.47415822502579 +12-02-1983,3.56165731350532,3.34636933752255 +12-03-1983,2.26841582660783,2.84663784336894 +12-04-1983,1.31110801999306,1.20744673432668 +12-05-1983,3.33792219590047,2.17607942035244 +12-06-1983,2.41987937283337,2.94616846395224 +12-07-1983,2.45556274977246,3.09582404227447 +12-08-1983,3.01597677175829,3.45908788141435 +12-09-1983,3.42417441016338,2.70578847745142 +12-10-1983,2.64581287442532,2.60448171850517 +12-11-1983,1.88516402250331,1.95057965820229 +12-12-1983,3.03794746621332,0.783529481700862 +12-13-1983,1.63231509647237,1.52098276778644 +12-14-1983,2.59508315541266,2.50343734851613 +12-15-1983,2.36875835170202,0.516443728699673 +12-16-1983,3.11329623481235,2.04935623455618 +12-17-1983,3.16636731044784,3.28700861585392 +12-18-1983,2.41002763553857,2.94139962760756 +12-19-1983,3.7397051242591,2.05641629875941 +12-20-1983,2.31232756722822,2.18057721425797 +12-21-1983,3.04920953677917,2.07173798156441 +12-22-1983,3.42461608636801,1.95432423097679 +12-23-1983,0.747668362884809,0.799757589201362 +12-24-1983,2.07183319652623,2.68900259096498 +12-25-1983,3.05860813538644,2.87511644564658 +12-26-1983,3.23552758033513,1.48595901953494 +12-27-1983,1.64438529768951,2.45830662163245 +12-28-1983,2.16625736390994,1.41715418468734 +12-29-1983,1.08765959606815,2.15686459598763 \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/models/SolarRadiation/NSR.omi b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/models/SolarRadiation/NSR.omi new file mode 100644 index 00000000..76409540 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/models/SolarRadiation/NSR.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/models/SolarRadiation/config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/models/SolarRadiation/config.xml new file mode 100644 index 00000000..bc88fd29 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_02/models/SolarRadiation/config.xml @@ -0,0 +1,168 @@ + + + + + + SC_NC Study + Net Solar Radiation + ../../data/ModelData/SRgauges.shp + 1 + + + NSR + Net Radiation + + + Mass + 1 + + + Time + -3 + + + + MJ/m2/day + Megajoule per square meter per day + 1 + 0 + + Scalar + + + + + SC_NC Study + Dew Point Temperature of the gauge + ../../data/ModelData/SRgauges.shp + 1 + + + Dew Point Temperature + Dew Point Temperature + + + Temperature + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Maximum Temperature of the gauge + ../../data/ModelData/SRgauges.shp + 1 + + + Maximum Temperature + Maximum Temperature + + + Temperature + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Minimum Temperature of the gauge + ../../data/ModelData/SRgauges.shp + 1 + + + Minimum Temperature + Minimum Temperature + + + Temperature + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Minimum Temperature of the gauge for next day + ../../data/ModelData/SRgauges.shp + 1 + + + Minimum Temperature in Advance + Maximum Temperature for next day + + + Temperature + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Monthly average daily temprature range of the gauge + ../../data/ModelData/SRgauges.shp + 1 + + + Monthly average daily temp range + Monthly average daily temprature range + + + Temperature + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + 01/01/1982 + 12/31/1983 + 86400 + + + Solar Radiation + This model calculates net solar radiation in megajoule per square meter per day + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/Bidirectional_Advection_Diffusion.opr b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/Bidirectional_Advection_Diffusion.opr new file mode 100644 index 00000000..893ff094 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/Bidirectional_Advection_Diffusion.opr @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/CompositionRun.log b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/CompositionRun.log new file mode 100644 index 00000000..e69de29b diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Gui.Controls.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Gui.Controls.dll new file mode 100644 index 00000000..7bab0932 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Gui.Controls.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Gui.Core.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Gui.Core.dll new file mode 100644 index 00000000..53def4a2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Gui.Core.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Sdk.Backbone.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Sdk.Backbone.dll new file mode 100644 index 00000000..bcef1ba6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Sdk.Backbone.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Sdk.Buffer.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Sdk.Buffer.dll new file mode 100644 index 00000000..db447ba2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Sdk.Buffer.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Sdk.DevelopmentSupport.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Sdk.DevelopmentSupport.dll new file mode 100644 index 00000000..7ed7434a Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Sdk.DevelopmentSupport.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Sdk.Spatial.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Sdk.Spatial.dll new file mode 100644 index 00000000..f880eb6d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Sdk.Spatial.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Sdk.Wrapper.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Sdk.Wrapper.dll new file mode 100644 index 00000000..ea911a0d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Oatc.OpenMI.Sdk.Wrapper.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/OpenMI.Standard.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/OpenMI.Standard.dll new file mode 100644 index 00000000..251fa707 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/OpenMI.Standard.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/SMW.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/SMW.dll new file mode 100644 index 00000000..6c5db400 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/SMW.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Sediment_Diff.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Sediment_Diff.dll new file mode 100644 index 00000000..3c125dce Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Sediment_Diff.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/SharpMap.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/SharpMap.dll new file mode 100644 index 00000000..094ae9de Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/SharpMap.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Water_adv.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Water_adv.dll new file mode 100644 index 00000000..fdf0557a Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/bin/Water_adv.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/sed/Sediment_Diff.omi b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/sed/Sediment_Diff.omi new file mode 100644 index 00000000..ece75f57 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/sed/Sediment_Diff.omi @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/sed/config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/sed/config.xml new file mode 100644 index 00000000..59808f32 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/sed/config.xml @@ -0,0 +1,72 @@ + + + + + + sed + numerical-analysis, Columbia SC + 1 + + + Concentration + C + + + Mass + 1 + + + Length + -3 + + + + ppm + ppm + 1 + 0 + + scalar + + + + + water + Concentration, Columbia SC + 1 + .\StreamNet.shp + + + Concentration + Concentration + + + Mass + 1 + + + Length + -3 + + + + ppm + ppm + 1 + 0 + + Scalar + + + + + + 08/20/2009 00:00:00 AM + 08/20/2009 01:00:00 AM + 1 + + + Sediment Diffusion + Calculates diffusion through soil + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/sed/inputs.csv b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/sed/inputs.csv new file mode 100644 index 00000000..624e1b7b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/sed/inputs.csv @@ -0,0 +1,15 @@ +u,2,,,,,,,, +D,0.025,,,,,,,, +rows_S,9,,,,,,,, +columns_S,10,,,,,,,, +rows_W,1,,,,,,,, +columns_W,10,,,,,,,, +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/sed/output/sedimentDiffusion.csv b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/sed/output/sedimentDiffusion.csv new file mode 100644 index 00000000..a73e8bf8 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/sed/output/sedimentDiffusion.csv @@ -0,0 +1,39594 @@ +This is some info about the model.... +StartDate: , 20/8/2009 00:00:00 +EndDate: , 20/8/2009 01:00:00 +Time [hh:mm:ss] + + +00:00:00, +1.91064242073593E-19,1.91064242073593E-19,1.97179642270117E-19,6.22724924689796E-21,1.13383317511219E-22,1.5518054744842E-24,1.77147616622876E-26,1.78037727450584E-28,1.62707758148291E-30,1.62707758148291E-30, +1.91064242073593E-19,1.91064242073593E-19,1.97179642270117E-19,6.22724924689796E-21,1.13383317511219E-22,1.5518054744842E-24,1.77147616622876E-26,1.78037727450584E-28,1.62707758148291E-30,1.62707758148291E-30, +4.17861143967894E-17,4.17861143967894E-17,4.29324998492309E-17,1.16473165303113E-18,1.85698986903198E-20,2.25999501453852E-22,2.32244671053265E-24,2.122242912472E-26,1.77807244975541E-28,1.77807244975541E-28, +9.13870296938671E-15,9.13870296938671E-15,9.34763354137066E-15,2.11796535615051E-16,2.89654063208652E-18,3.08566236085547E-20,2.81924026640875E-22,2.31893904307022E-24,1.76643547051089E-26,1.76643547051089E-26, +1.99865178105898E-12,1.99865178105898E-12,2.03520659293653E-12,3.69726730215147E-14,4.21682428809366E-16,3.85186184245449E-18,3.08006990833677E-20,2.25232367885266E-22,1.54428904420756E-24,1.54428904420756E-24, +4.37108959040642E-10,4.37108959040642E-10,4.43104914383819E-10,6.05078756099327E-12,5.52500789602882E-14,4.20727107598998E-16,2.88430983169347E-18,1.84580496399458E-20,1.12506593432835E-22,1.12506593432835E-22, +9.55965635856578E-08,9.55965635856578E-08,9.64707815037391E-08,8.8021387342446E-10,6.0325101550545E-12,3.67637424495308E-14,2.10076957436388E-16,1.15250085263808E-18,6.14735706805936E-21,6.14735706805936E-21, +2.09071509068223E-05,2.09071509068223E-05,2.1002747470408E-05,9.60336725446984E-08,4.39107610821701E-10,2.00779048402837E-12,9.1804890837835E-15,4.1977178638863E-17,1.91937870673097E-19,1.91937870673097E-19, +0.004572433805625,0.004572433805625,0.004572433805625,0,0,0,0,0,0,0, + +00:00:01, +1.70661356098276E-18,1.70661356098276E-18,1.75397227296909E-18,2.25722797139772E-19,1.46268516018233E-19,1.24147006787651E-19,1.06172076547898E-19,9.0811979776859E-20,7.7674208670565E-20,7.7674208670565E-20, +1.70661356098276E-18,1.70661356098276E-18,1.75397227296909E-18,2.25722797139772E-19,1.46268516018233E-19,1.24147006787651E-19,1.06172076547898E-19,9.0811979776859E-20,7.7674208670565E-20,7.7674208670565E-20, +3.31638477386071E-16,3.31638477386071E-16,3.3935221766405E-16,4.62686913334347E-17,3.17390222667546E-17,2.70045840638566E-17,2.30958849474658E-17,1.97545811812771E-17,1.68966857010858E-17,1.68966857010858E-17, +6.34734997620291E-14,6.34734997620291E-14,6.46662876281032E-14,9.52960397698055E-15,6.891128721783E-15,5.87416652564752E-15,5.02410903488137E-15,4.2972687174092E-15,3.67558282974508E-15,3.67558282974508E-15, +1.1901150448376E-11,1.1901150448376E-11,1.20719575324481E-11,1.97399910815231E-12,1.49695145729911E-12,1.27779367608274E-12,1.09290800762235E-12,9.347967605086E-13,7.99559711170624E-13,7.99559711170624E-13, +2.16964696798443E-09,2.16964696798443E-09,2.19124994170983E-09,4.11706677951885E-10,3.25321598836341E-10,2.7795813716893E-10,2.37743266844941E-10,2.0334892757182E-10,1.73930438070334E-10,1.73930438070334E-10, +3.79775592499074E-07,3.79775592499074E-07,3.8191734059045E-07,8.65505784280455E-08,7.07248847396627E-08,6.04645631588318E-08,5.17169474469617E-08,4.42350552903563E-08,3.78355698329916E-08,3.78355698329916E-08, +6.23403777930015E-05,6.23403777930015E-05,6.24324914754773E-05,1.83578636657119E-05,1.53798214125225E-05,1.3152982583747E-05,1.12501305026651E-05,9.62257406903683E-06,8.23047627818818E-06,8.23047627818818E-06, +0.00910314890599994,0.00910314890599994,0.00908224219220208,0.00393184739697966,0.00334514414709936,0.00286120214163035,0.00244727202779288,0.00209322518353205,0.00179039829623047,0.00179039829623047, + +00:00:02, +8.46862120131775E-18,8.46862120131775E-18,8.67414828299528E-18,1.81775161997062E-18,1.34249093280964E-18,1.16036534730366E-18,1.00728153692452E-18,8.74279454922922E-19,7.59082838651957E-19,7.59082838651957E-19, +8.46862120131775E-18,8.46862120131775E-18,8.67414828299528E-18,1.81775161997062E-18,1.34249093280964E-18,1.16036534730366E-18,1.00728153692452E-18,8.74279454922922E-19,7.59082838651957E-19,7.59082838651957E-19, +1.48052323140704E-15,1.48052323140704E-15,1.51002327370189E-15,3.40036493609084E-16,2.60113032521588E-16,2.25546706754393E-16,1.96141697697672E-16,1.70533312293534E-16,1.48306436840489E-16,1.48306436840489E-16, +2.51917145007123E-13,2.51917145007123E-13,2.55856857213128E-13,6.28906657742308E-14,4.97056006483915E-14,4.32462264313892E-14,3.76924255945034E-14,3.28414853920566E-14,2.86196424466182E-14,2.86196424466182E-14, +4.1338407442042E-11,4.1338407442042E-11,4.18106215139523E-11,1.14454902184929E-11,9.32237466739294E-12,8.14208077959456E-12,7.11715302574832E-12,6.21847597661984E-12,5.433481811559E-12,5.433481811559E-12, +6.46155230724832E-09,6.46155230724832E-09,6.50881332771733E-09,2.03601207648516E-09,1.70469262204995E-09,1.49592270822288E-09,1.31280361340683E-09,1.15136890575581E-09,1.00962413499218E-09,1.00962413499218E-09, +9.42953678816552E-07,9.42953678816552E-07,9.46139021621308E-07,3.5004940851034E-07,3.00656894602984E-07,2.6553929509956E-07,2.34368358121036E-07,2.06659505432608E-07,1.82137429327162E-07,1.82137429327162E-07, +0.000123923362120033,0.000123923362120033,0.000123892332340837,5.69566237398604E-05,5.01586296390975E-05,4.47394417228737E-05,3.98430678095523E-05,3.54270701852645E-05,3.14657653520419E-05,3.14657653520419E-05, +0.01359252507272,0.01359252507272,0.0135484513190916,0.0083756952461372,0.00759753069062175,0.00689916160363338,0.00624391674928347,0.00563386506687393,0.00507082858919789,0.00507082858919789, + +00:00:03, +3.08168152595903E-17,3.08168152595903E-17,3.14757137758751E-17,8.746318291191E-18,6.82230985968389E-18,5.97670399233893E-18,5.25278805216533E-18,4.61535423792455E-18,4.05793218761754E-18,4.05793218761754E-18, +3.08168152595903E-17,3.08168152595903E-17,3.14757137758751E-17,8.746318291191E-18,6.82230985968389E-18,5.97670399233893E-18,5.25278805216533E-18,4.61535423792455E-18,4.05793218761754E-18,4.05793218761754E-18, +4.89585578726697E-15,4.89585578726697E-15,4.98013376914655E-15,1.48792580464982E-15,1.19256764696529E-15,1.04899395852844E-15,9.24671238800032E-16,8.14791162537545E-16,7.18367460070781E-16,7.18367460070781E-16, +7.49862826092316E-13,7.49862826092316E-13,7.59715314892158E-13,2.47163664547711E-13,2.03255240941061E-13,1.79601802668673E-13,1.58894833311183E-13,1.40508702739534E-13,1.24302802834488E-13,1.24302802834488E-13, +1.09400084861188E-10,1.09400084861188E-10,1.10403970246214E-10,3.97426582367029E-11,3.34897517874617E-11,2.9753036456752E-11,2.64453281608814E-11,2.34907068544537E-11,2.08712917109038E-11,2.08712917109038E-11, +1.49671714342189E-08,1.49671714342189E-08,1.50476373355693E-08,6.11463737738312E-09,5.27480655481313E-09,4.71827542422127E-09,4.21956819804938E-09,3.77043211031419E-09,3.36905960772709E-09,3.36905960772709E-09, +1.8730296416382E-06,1.8730296416382E-06,1.87644736645213E-06,8.83383410417021E-07,7.79989618857367E-07,7.04122627587866E-07,6.3508941533195E-07,5.72164186259002E-07,5.15266047796044E-07,5.15266047796044E-07, +0.000205285648626318,0.000205285648626318,0.000205015178775726,0.000115862221471492,0.000104882981804263,9.59653151532862E-05,8.76638385032862E-05,7.99448310881589E-05,7.28291031287208E-05,7.28291031287208E-05, +0.0180410221431016,0.0180410221431016,0.0179741022601395,0.0128550692852101,0.0120080524610469,0.0112371624642568,0.0104862393365018,0.0097584912911309,0.00906051124321768,0.00906051124321768, + +00:00:04, +9.17508420254114E-17,9.17508420254114E-17,9.34899938863499E-17,3.14410792737626E-17,2.53325989394829E-17,2.24364236492264E-17,1.99251060353258E-17,1.76892099819665E-17,1.57196214095397E-17,1.57196214095397E-17, +9.17508420254114E-17,9.17508420254114E-17,9.34899938863499E-17,3.14410792737626E-17,2.53325989394829E-17,2.24364236492264E-17,1.99251060353258E-17,1.76892099819665E-17,1.57196214095397E-17,1.57196214095397E-17, +1.33565458659488E-14,1.33565458659488E-14,1.35565713984078E-14,4.8893141920587E-15,4.03128469584189E-15,3.5871168281132E-15,3.19757053201101E-15,2.84914022779523E-15,2.54086034412235E-15,2.54086034412235E-15, +1.86004568461902E-12,1.86004568461902E-12,1.88072786575531E-12,7.35083949894571E-13,6.19657976544733E-13,5.54326358903223E-13,4.96378937539346E-13,4.44254634528712E-13,3.97884576277622E-13,3.97884576277622E-13, +2.44284087304764E-10,2.44284087304764E-10,2.46094256156769E-10,1.05612281250378E-10,9.09652156447234E-11,8.18917810351929E-11,7.37482372997054E-11,6.63703532754333E-11,5.97607914024997E-11,5.97607914024997E-11, +2.97164351885268E-08,2.97164351885268E-08,2.98325539202032E-08,1.42849517297719E-08,1.25683840744718E-08,1.14042649488252E-08,1.03454764384583E-08,9.37706329984005E-09,8.50132702408688E-09,8.50132702408688E-09, +3.25543660962855E-06,3.25543660962855E-06,3.25773854758988E-06,1.77617478868158E-06,1.59718183300627E-06,1.46429406595134E-06,1.34142495417281E-06,1.22752464336278E-06,1.1231459233687E-06,1.1231459233687E-06, +0.000306062716676699,0.000306062716676699,0.000305442939383901,0.000194744869199583,0.000179355883137611,0.000166830445380428,0.000154976610260761,0.000143756778066503,0.000133259393396133,0.000133259393396133, +0.0224491058579608,0.0224491058579608,0.022360002245807,0.0173040251907476,0.0164154074099622,0.0156144766465296,0.014824676641151,0.0140471960391103,0.0132904350808702,0.0132904350808702, + +00:00:05, +2.36746111658742E-16,2.36746111658742E-16,2.40746160244861E-16,9.31243418785089E-17,7.67322832846537E-17,6.85835892527066E-17,6.14490529880066E-17,5.50379011949397E-17,4.93590747727307E-17,4.93590747727307E-17, +2.36746111658742E-16,2.36746111658742E-16,2.40746160244861E-16,9.31243418785089E-17,7.67322832846537E-17,6.85835892527066E-17,6.14490529880066E-17,5.50379011949397E-17,4.93590747727307E-17,4.93590747727307E-17, +3.18007538894189E-14,3.18007538894189E-14,3.22174874188082E-14,1.33184917357681E-14,1.1201646096349E-14,1.00631250731937E-14,9.05486896787231E-15,8.14412900559892E-15,7.33341399466852E-15,7.33341399466852E-15, +4.06020481174834E-12,4.06020481174834E-12,4.09862067643549E-12,1.82675425987426E-12,1.56736592089102E-12,1.41624217723271E-12,1.28086043857964E-12,1.1578072938356E-12,1.04760336259893E-12,1.04760336259893E-12, +4.84865052854919E-10,4.84865052854919E-10,4.87771456780826E-10,2.36967548130251E-10,2.07359056177426E-10,1.88652607936804E-10,1.71689422866047E-10,1.56150752823011E-10,1.42128044162672E-10,1.42128044162672E-10, +5.31004142862345E-08,5.31004142862345E-08,5.32472839916973E-08,2.85706249330983E-08,2.54999369431812E-08,2.33947021058595E-08,2.14593978178706E-08,1.96687316754642E-08,1.8036609117321E-08,1.8036609117321E-08, +5.17319332567541E-06,5.17319332567541E-06,5.1725449101828E-06,3.11552252103348E-06,2.83836297407762E-06,2.63202124520198E-06,2.43917220924174E-06,2.25828867389716E-06,2.09115988094014E-06,2.09115988094014E-06, +0.000425895908776476,0.000425895908776476,0.000424823559521182,0.000293238592734726,0.000273245026767169,0.000257050146836201,0.000241575228238691,0.000226768464118132,0.00021280914779125,0.00021280914779125, +0.0268172375936678,0.0268172375936678,0.02670664270869,0.0217137891764947,0.0207894922163325,0.0199688567474444,0.0191570411205865,0.0183537791372742,0.0175695696808909,0.0175695696808909, + +00:00:06, +5.48224207432117E-16,5.48224207432117E-16,5.56520106460942E-16,2.39800144194416E-16,2.00946075828752E-16,1.81009206725058E-16,1.63420889921608E-16,1.47491550533211E-16,1.33323666521924E-16,1.33323666521924E-16, +5.48224207432117E-16,5.48224207432117E-16,5.56520106460942E-16,2.39800144194416E-16,2.00946075828752E-16,1.81009206725058E-16,1.63420889921608E-16,1.47491550533211E-16,1.33323666521924E-16,1.33323666521924E-16, +6.8353600079635E-14,6.8353600079635E-14,6.91412546386431E-14,3.17243985402013E-14,2.70876066137978E-14,2.45310527498422E-14,2.22497354065775E-14,2.01721233014064E-14,1.83144430650222E-14,1.83144430650222E-14, +8.05712525280288E-12,8.05712525280288E-12,8.12225547346292E-12,3.99824488855404E-12,3.47723221277439E-12,3.16820483674064E-12,2.88922531824504E-12,2.63348363721861E-12,2.40335077511625E-12,2.40335077511625E-12, +8.82184321778427E-10,8.82184321778427E-10,8.86454995116056E-10,4.7251322203997E-10,4.1853517807824E-10,3.84054390271876E-10,3.52540843579319E-10,3.23419489062626E-10,2.97006539663258E-10,2.97006539663258E-10, +8.78572459134757E-08,8.78572459134757E-08,8.80206860771591E-08,5.13665178212694E-08,4.63513239283043E-08,4.28977123190046E-08,3.96978225615571E-08,3.67107681722871E-08,3.39741395990978E-08,3.39741395990978E-08, +7.70695450577647E-06,7.70695450577647E-06,7.70108289646411E-06,4.9860301908648E-06,4.58726929831067E-06,4.29092499011707E-06,4.01187775820911E-06,3.74791025167156E-06,3.50282526504347E-06,3.50282526504347E-06, +0.000564432340545723,0.000564432340545723,0.000562810538766,0.000410977670934613,0.000386199051504894,0.000366283663881655,0.000347139720918472,0.000328693530398444,0.000311241446516704,0.000311241446516704, +0.0311458730048594,0.0311458730048594,0.0310144664755217,0.026083544395893,0.0251253747146527,0.0242873729416173,0.023457965636725,0.0226360732234838,0.0218349743471268,0.0218349743471268, + +00:00:07, +1.16586875279199E-15,1.16586875279199E-15,1.18173638758006E-15,5.55028160095348E-16,4.71340179761956E-16,4.27435301594747E-16,3.8846778279455E-16,3.52938650267183E-16,3.21244028118552E-16,3.21244028118552E-16, +1.16586875279199E-15,1.16586875279199E-15,1.18173638758006E-15,5.55028160095348E-16,4.71340179761956E-16,4.27435301594747E-16,3.8846778279455E-16,3.52938650267183E-16,3.21244028118552E-16,3.21244028118552E-16, +1.35619969182926E-13,1.35619969182926E-13,1.36999885358487E-13,6.82776866745364E-14,5.90025074510085E-14,5.38021238145458E-14,4.9133520801767E-14,4.48523560197729E-14,4.10122504190067E-14,4.10122504190067E-14, +1.48466546253828E-11,1.48466546253828E-11,1.4949476180615E-11,7.95684418073171E-12,6.99519046517604E-12,6.41833006603254E-12,5.89439644854569E-12,5.4107070367061E-12,4.97401143768208E-12,4.97401143768208E-12, +1.50086379861143E-09,1.50086379861143E-09,1.50670117985849E-09,8.63287767138666E-10,7.72140976219761E-10,7.13572463177234E-10,6.597194995447E-10,6.09600073134244E-10,5.63989423978227E-10,5.63989423978227E-10, +1.37058423207879E-07,1.37058423207879E-07,1.37213345077181E-07,8.54239571104316E-08,7.77575842499116E-08,7.24745989819427E-08,6.75508405216256E-08,6.29225583592757E-08,5.86686825444385E-08,5.86686825444385E-08, +1.09350602444405E-05,1.09350602444405E-05,1.09212997581447E-05,7.46985586185807E-06,6.9252741637994E-06,6.52227295016942E-06,6.14076156893966E-06,5.7775632134359E-06,5.43944652676717E-06,5.43944652676717E-06, +0.000721324809415813,0.000721324809415813,0.000719062794052761,0.000547601599936154,0.000517868071294448,0.000494183707824481,0.000471328582492339,0.00044920031983268,0.000428239704515882,0.000428239704515882, +0.035435461907076,0.035435461907076,0.0352839050379753,0.0304135768339657,0.0294225895975353,0.0285678196520045,0.0277220108143122,0.0268835210246033,0.0260687635156746,0.0260687635156746, + +00:00:08, +2.31407794181993E-15,2.31407794181993E-15,2.34251232097994E-15,1.18072089510976E-15,1.01370316345494E-15,9.24671160014049E-16,8.4526640208865E-16,7.7244914624344E-16,7.07356431216492E-16,7.07356431216492E-16, +2.31407794181993E-15,2.31407794181993E-15,2.34251232097994E-15,1.18072089510976E-15,1.01370316345494E-15,9.24671160014049E-16,8.4526640208865E-16,7.7244914624344E-16,7.07356431216492E-16,7.07356431216492E-16, +2.52265542170871E-13,2.52265542170871E-13,2.54540015092072E-13,1.35691427291871E-13,1.18421684002075E-13,1.08626566193385E-13,9.97905233998552E-14,9.16400516465582E-14,8.4313558381603E-14,8.4313558381603E-14, +2.57793035895868E-11,2.57793035895868E-11,2.59325252799263E-11,1.47025269313719E-11,1.3041132454592E-11,1.20374360384897E-11,1.11214498427386E-11,1.02708120417551E-11,9.50115414963082E-12,9.50115414963082E-12, +2.42044606168407E-09,2.42044606168407E-09,2.42793855676355E-09,1.47412507531611E-09,1.32905995441216E-09,1.23559318974753E-09,1.14924686259096E-09,1.06841675485873E-09,9.94704961393643E-10,9.94704961393643E-10, +2.0409543956231E-07,2.0409543956231E-07,2.04204493969406E-07,1.33836399802176E-07,1.22693114613251E-07,1.1502602127127E-07,1.0784835892358E-07,1.01063837265779E-07,9.48168875797065E-08,9.48168875797065E-08, +1.49335844808316E-05,1.49335844808316E-05,1.4908919401015E-05,1.06467640766148E-05,9.93143344932245E-06,9.4050181344415E-06,8.90473924721565E-06,8.42613408321329E-06,7.9800596527444E-06,7.9800596527444E-06, +0.000896231704426504,0.000896231704426504,0.00089324457180441,0.000702755695774912,0.000667907075187622,0.000640406295841556,0.000613800107510639,0.000587950648666595,0.000563470476348096,0.000563470476348096, +0.039686448331009,0.039686448331009,0.0395153838006753,0.0347043207797739,0.0336814241155062,0.0328101359728433,0.0319483613879855,0.0310939456317434,0.030266556912491,0.030266556912491, + +00:00:09, +4.3379359783E-15,4.3379359783E-15,4.38622468751778E-15,2.34530784035427E-15,2.03212142386714E-15,1.86320270647955E-15,1.71195717333206E-15,1.57256296125317E-15,1.44779116621734E-15,1.44779116621734E-15, +4.3379359783E-15,4.3379359783E-15,4.38622468751778E-15,2.34530784035427E-15,2.03212142386714E-15,1.86320270647955E-15,1.71195717333206E-15,1.57256296125317E-15,1.44779116621734E-15,1.44779116621734E-15, +4.44907258771244E-13,4.44907258771244E-13,4.48472675174691E-13,2.52839622429524E-13,2.22501147742372E-13,2.05155266098683E-13,1.89447073145493E-13,1.74884452232504E-13,1.61776639601165E-13,1.61776639601165E-13, +4.26310536199609E-11,4.26310536199609E-11,4.28486617518613E-11,2.55952244886647E-11,2.28735842048867E-11,2.12223008214261E-11,1.97095800526601E-11,1.8297736410001E-11,1.7018672571215E-11,1.7018672571215E-11, +3.73666301396483E-09,3.73666301396483E-09,3.74573331222544E-09,2.3850383671088E-09,2.16478941110369E-09,2.02279354132448E-09,1.89113336375371E-09,1.76728455301964E-09,1.65421703882641E-09,1.65421703882641E-09, +2.92666779851853E-07,2.92666779851853E-07,2.92679261706673E-07,2.00025479944581E-07,1.84458194336635E-07,1.73778518348865E-07,1.63746649434697E-07,1.54221279162839E-07,1.45443879222074E-07,1.45443879222074E-07, +1.97763825426412E-05,1.97763825426412E-05,1.97374874201561E-05,1.459417725E-05,1.36825327144117E-05,1.30158451814713E-05,1.23804646525741E-05,1.17702573917152E-05,1.1201454374849E-05,1.1201454374849E-05, +0.00108881691743269,0.00108881691743269,0.00108502536783127,0.000876091093884398,0.000835976413726605,0.000804612541177351,0.000774216909106237,0.000744609098179796,0.000716600278589956,0.000716600278589956, +0.0438992705995878,0.0438992705995878,0.0437093228685559,0.0389562259614918,0.037902284584466,0.0370146628944491,0.036137193173089,0.0352671909738508,0.0344276022770983,0.0344276022770983, + +00:00:10, +7.74916785190714E-15,7.74916785190714E-15,7.82756215223265E-15,4.40070542218401E-15,3.84313523536147E-15,3.53977311488235E-15,3.26728883265377E-15,3.0150559420457E-15,2.78912231507006E-15,2.78912231507006E-15, +7.74916785190714E-15,7.74916785190714E-15,7.82756215223265E-15,4.40070542218401E-15,3.84313523536147E-15,3.53977311488235E-15,3.26728883265377E-15,3.0150559420457E-15,2.78912231507006E-15,2.78912231507006E-15, +7.50332568527044E-13,7.50332568527044E-13,7.55691269861483E-13,4.46695613916258E-13,3.95904633123702E-13,3.66703663843691E-13,3.40177537762788E-13,3.15478576851441E-13,2.93232208639484E-13,2.93232208639484E-13, +6.76790093276461E-11,6.76790093276461E-11,6.79756252845185E-11,4.2427496085905E-11,3.81597947913187E-11,3.55643490651383E-11,3.31795285074754E-11,3.09442144534146E-11,2.89179873887417E-11,2.89179873887417E-11, +5.56263531034807E-09,5.56263531034807E-09,5.5729868211264E-09,3.69252877235911E-09,3.37074546848518E-09,3.1634479965643E-09,2.97069022277487E-09,2.78862674461517E-09,2.62235288762831E-09,2.62235288762831E-09, +4.06765250851006E-07,4.06765250851006E-07,4.06616240707529E-07,2.87727429048279E-07,2.6666585312099E-07,2.5227137938707E-07,2.3871523677949E-07,2.25795419796698E-07,2.13890163566095E-07,2.13890163566095E-07, +2.55351377847688E-05,2.55351377847688E-05,2.547841534441E-05,1.93872260987334E-05,1.8253133913947E-05,1.74292172937538E-05,1.66423759392855E-05,1.58843598754111E-05,1.51782150198934E-05,1.51782150198934E-05, +0.00129874975574253,0.00129874975574253,0.00129407984925551,0.00106726466644346,0.00102174180693366,0.000986468907730126,0.000952246769741828,0.000918845043120306,0.000887299702280064,0.000887299702280064, +0.0480743614072038,0.0480743614072038,0.0478661372122898,0.0431697391179284,0.0420855919511412,0.0411818100502011,0.0402888794654169,0.0394035527831652,0.0385520440873606,0.0385520440873606, + +00:00:11, +1.32836156082372E-14,1.32836156082372E-14,1.34061009119765E-14,7.86961719601128E-15,6.91964875127349E-15,6.39940066570822E-15,5.93091685372551E-15,5.49558530296211E-15,5.10556597298495E-15,5.10556597298495E-15, +1.32836156082372E-14,1.32836156082372E-14,1.34061009119765E-14,7.86961719601128E-15,6.91964875127349E-15,6.39940066570822E-15,5.93091685372551E-15,5.49558530296211E-15,5.10556597298495E-15,5.10556597298495E-15, +1.21806506062066E-12,1.21806506062066E-12,1.22583543909176E-12,7.54610505640183E-13,6.72959392999147E-13,6.2583838486304E-13,5.82927941760773E-13,5.42821634099338E-13,5.06693308357286E-13,5.06693308357286E-13, +1.03781545978697E-10,1.03781545978697E-10,1.04171603946175E-10,6.75022161684288E-11,6.10508659848685E-11,5.71233960095069E-11,5.35061025556835E-11,5.01030996163364E-11,4.70184357785618E-11,4.70184357785618E-11, +8.03000473914223E-09,8.03000473914223E-09,8.04106738287379E-09,5.51082102834933E-09,5.05549766803816E-09,4.76266501131568E-09,4.48977086461644E-09,4.2311220400771E-09,3.99496023877112E-09,3.99496023877112E-09, +5.50665643271086E-07,5.50665643271086E-07,5.50275367452321E-07,4.00979861425265E-07,3.73229074527066E-07,3.54343853055086E-07,3.36524125215872E-07,3.19487913200931E-07,3.03798866017492E-07,3.03798866017492E-07, +3.2279407339626E-05,3.2279407339626E-05,3.22010241031277E-05,2.50987990754081E-05,2.37156213287447E-05,2.27174225596651E-05,2.17627415580475E-05,2.08407058877953E-05,1.99827650458126E-05,1.99827650458126E-05, +0.00152570485616911,0.00152570485616911,0.00152008777765225,0.00127593892975928,0.00122487427646969,0.00118564718497647,0.00114756273937257,0.00111033301983705,0.00107524430939164,0.00107524430939164, +0.0522121478982048,0.0522121478982048,0.051986236746433,0.0473453015071259,0.0462317650319485,0.0453119947425118,0.0444038278030965,0.0435034193429185,0.0426402321486068,0.0426402321486068, + +00:00:12, +2.19718399299773E-14,2.19718399299773E-14,2.21570075307345E-14,1.3504765237811E-14,1.19461458906775E-14,1.10883589835498E-14,1.03143594073895E-14,9.59269789897217E-15,8.94629671991702E-15,8.94629671991702E-15, +2.19718399299773E-14,2.19718399299773E-14,2.21570075307345E-14,1.3504765237811E-14,1.19461458906775E-14,1.10883589835498E-14,1.03143594073895E-14,9.59269789897217E-15,8.94629671991702E-15,8.94629671991702E-15, +1.91329237136302E-12,1.91329237136302E-12,1.92421682465843E-12,1.22694982699867E-12,1.10015929804949E-12,1.02680527246712E-12,9.59876058771906E-13,8.97113174812336E-13,8.40593578620377E-13,8.40593578620377E-13, +1.54462615861272E-10,1.54462615861272E-10,1.54959374696344E-10,1.03714907251119E-10,9.42615642774568E-11,8.85060904825756E-11,8.3195426557567E-11,7.81834577203417E-11,7.36424875555481E-11,7.36424875555481E-11, +1.12900016795076E-08,1.12900016795076E-08,1.1300878142281E-08,7.97302866693361E-09,7.34593530208976E-09,6.94355525546177E-09,6.56794411489664E-09,6.21088362455493E-09,5.88509609321709E-09,5.88509609321709E-09, +7.28912718007414E-07,7.28912718007414E-07,7.28186109807642E-07,5.44108915886981E-07,5.08348328105378E-07,4.84122689211211E-07,4.61231356190241E-07,4.39289117702519E-07,4.19103297438491E-07,4.19103297438491E-07, +4.0076666995571E-05,4.0076666995571E-05,3.99725867273103E-05,3.17995908197989E-05,3.01402466706685E-05,2.89506194503824E-05,2.78117055514289E-05,2.67094423794135E-05,2.56854117359362E-05,2.56854117359362E-05, +0.00176936210047269,0.00176936210047269,0.00176273393328382,0.00150178195166572,0.00144505006684617,0.00140182441451277,0.00135984308685998,0.00131875273652347,0.00128011476879749,0.00128011476879749, +0.056313051744276,0.056313051744276,0.0560700263947564,0.0514833486334158,0.050341217919327,0.0494056311953554,0.0484824479243298,0.0475671937955799,0.046692557903789,0.046692557903789, + +00:00:13, +3.52245088136198E-14,3.52245088136198E-14,3.54965317893613E-14,2.23617215232929E-14,1.98868341950182E-14,1.85197155131558E-14,1.72841861909703E-14,1.61287574881216E-14,1.50944263788509E-14,1.50944263788509E-14, +3.52245088136198E-14,3.52245088136198E-14,3.54965317893613E-14,2.23617215232929E-14,1.98868341950182E-14,1.85197155131558E-14,1.72841861909703E-14,1.61287574881216E-14,1.50944263788509E-14,1.50944263788509E-14, +2.92017065053773E-12,2.92017065053773E-12,2.93512116302603E-12,1.93010486159528E-12,1.73903204451E-12,1.62831573947439E-12,1.52714508462876E-12,1.43199631731707E-12,1.34637152636168E-12,1.34637152636168E-12, +2.23999889780627E-10,2.23999889780627E-10,2.24614297974105E-10,1.54640362153159E-10,1.41154469882519E-10,1.32948711773748E-10,1.25366579576504E-10,1.18191085454086E-10,1.11695440594384E-10,1.11695440594384E-10, +1.55144497019105E-08,1.55144497019105E-08,1.55238631455462E-08,1.12322509976818E-08,1.03883675983686E-08,9.8483337574772E-09,9.34360131159247E-09,8.86257219242598E-09,8.42414923911818E-09,8.42414923911818E-09, +9.46309509342106E-07,9.46309509342106E-07,9.4513595480965E-07,7.21716745430046E-07,6.76499423215476E-07,6.46010005518339E-07,6.1717089004362E-07,5.89466004304243E-07,5.64014842513274E-07,5.64014842513274E-07, +4.89923552196634E-05,4.89923552196634E-05,4.88583702970108E-05,3.95581496461184E-05,3.75951733675083E-05,3.61968814682812E-05,3.48573320292589E-05,3.35586431193107E-05,3.2354390270426E-05,3.2354390270426E-05, +0.00202940653217013,0.00202940653217013,0.00202170804039874,0.00174446726029433,0.00168195056594305,0.00163468280934739,0.00158877122462022,0.00154378901047927,0.00150159682235022,0.00150159682235022, +0.060377489220673,0.060377489220673,0.0601179061531412,0.0555843102822589,0.0544143596343903,0.0534631287575742,0.0525251457445439,0.0515952781169821,0.050709417705309,0.050709417705309, + +00:00:14, +5.49342857609876E-14,5.49342857609876E-14,5.53240039919824E-14,3.58870676734876E-14,3.20684008586849E-14,2.99530868032779E-14,2.80390791055489E-14,2.62444119212892E-14,2.46392552107231E-14,2.46392552107231E-14, +5.49342857609876E-14,5.49342857609876E-14,5.53240039919824E-14,3.58870676734876E-14,3.20684008586849E-14,2.99530868032779E-14,2.80390791055489E-14,2.62444119212892E-14,2.46392552107231E-14,2.46392552107231E-14, +4.34551832128438E-12,4.34551832128438E-12,4.36549960048125E-12,2.94989334320406E-12,2.66938559784813E-12,2.50670668177847E-12,2.35788632093019E-12,2.21756569772667E-12,2.0914167231317E-12,2.0914167231317E-12, +3.17516422216643E-10,3.17516422216643E-10,3.18255859154928E-10,2.24623213323066E-10,2.05828130000714E-10,1.94403988093166E-10,1.83837287041953E-10,1.7381312145701E-10,1.64749260943172E-10,1.64749260943172E-10, +2.08967093252735E-08,2.08967093252735E-08,2.09029534360324E-08,1.54626041312093E-08,1.43495598230286E-08,1.36393580431854E-08,1.29749994165249E-08,1.23404450490328E-08,1.17628985948473E-08,1.17628985948473E-08, +1.20790593800122E-06,1.20790593800122E-06,1.20615919074311E-06,9.38669346729016E-07,8.82421677693905E-07,8.44671471820057E-07,8.08940804677829E-07,7.74550380456125E-07,7.43011163489395E-07,7.43011163489395E-07, +5.90899163406281E-05,5.90899163406281E-05,5.89216771467084E-05,4.84409240853218E-05,4.61465200399742E-05,4.45222409557264E-05,4.29656488153446E-05,4.14543521046827E-05,4.00559070184088E-05,4.00559070184088E-05, +0.00230552827468864,0.00230552827468864,0.00229670469358044,0.00200367375438081,0.00193526222641787,0.00188390967305161,0.00183403562938141,0.00178513169182833,0.00173938121536303,0.00173938121536303, +0.064405871281315,0.064405871281315,0.0641302711514915,0.0596486105967789,0.0584515941300058,0.0574848916584496,0.0565323223031047,0.0555880699722202,0.0546912049598029,0.0546912049598029, + +00:00:15, +8.35959735561849E-14,8.35959735561849E-14,8.41420958632825E-14,5.60236631918225E-14,5.02791195921458E-14,4.70903242368964E-14,4.42024597382697E-14,4.14882782962184E-14,3.90634640590046E-14,3.90634640590046E-14, +8.35959735561849E-14,8.35959735561849E-14,8.41420958632825E-14,5.60236631918225E-14,5.02791195921458E-14,4.70903242368964E-14,4.42024597382697E-14,4.14882782962184E-14,3.90634640590046E-14,3.90634640590046E-14, +6.32291039054919E-12,6.32291039054919E-12,6.34906066371385E-12,4.39536257781927E-12,3.99294739562133E-12,3.7594875956863E-12,3.54574469412377E-12,3.34375419066396E-12,3.16239223654066E-12,3.16239223654066E-12, +4.41075540573684E-10,4.41075540573684E-10,4.4194246091483E-10,3.18872120401476E-10,2.93208895985278E-10,2.77631616788022E-10,2.63213346213468E-10,2.49506429752015E-10,2.3713024551433E-10,2.3713024551433E-10, +2.76525628923779E-08,2.76525628923779E-08,2.76534550498406E-08,2.08601882256536E-08,1.94177073171285E-08,1.85001043021605E-08,1.76412421574385E-08,1.68193433014103E-08,1.60725094046567E-08,1.60725094046567E-08, +1.51898772711474E-06,1.51898772711474E-06,1.51652597745821E-06,1.20008472144244E-06,1.13110639465616E-06,1.08502480525686E-06,1.04139180421435E-06,9.99327422310049E-07,9.60824712426984E-07,9.60824712426984E-07, +7.04308429076156E-05,7.04308429076156E-05,7.02238853402236E-05,5.85123085012736E-05,5.5858403184077E-05,5.39907320784267E-05,5.22006902761304E-05,5.04606261603192E-05,4.88541820298471E-05,4.88541820298471E-05, +0.00259742245084109,0.00259742245084109,0.00258742328513281,0.00227908561510454,0.00220467648823653,0.00214919731995688,0.0020953297632682,0.0020424755856186,0.00199316362066394,0.00199316362066394, +0.0683986036327577,0.0683986036327577,0.0681075117148697,0.0636766681589479,0.0624533203472928,0.0614713190260482,0.0605043736303845,0.0595459621617069,0.0586383085486877,0.0586383085486877, + +00:00:16, +1.24446706702974E-13,1.24446706702974E-13,1.25197142256356E-13,8.53348466117668E-14,7.68860941220464E-14,7.21888916327619E-14,6.79324272824456E-14,6.39235738911337E-14,6.03469669317625E-14,6.03469669317625E-14, +1.24446706702974E-13,1.24446706702974E-13,1.25197142256356E-13,8.53348466117668E-14,7.68860941220464E-14,7.21888916327619E-14,6.79324272824456E-14,6.39235738911337E-14,6.03469669317625E-14,6.03469669317625E-14, +9.01718315604064E-12,9.01718315604064E-12,9.05077291939061E-12,6.40300648347195E-12,5.83740829830749E-12,5.50928701014906E-12,5.20871940098135E-12,4.92411090899577E-12,4.66894605308782E-12,4.66894605308782E-12, +6.01778670496502E-10,6.01778670496502E-10,6.0276918148941E-10,4.4355726018426E-10,4.09146136043534E-10,3.88292178585416E-10,3.689814773729E-10,3.50589447332802E-10,3.34010197345843E-10,3.34010197345843E-10, +3.6021042474188E-08,3.6021042474188E-08,3.60138807272889E-08,2.76439930796338E-08,2.58033494321122E-08,2.46360835633934E-08,2.35432011799549E-08,2.24956191086486E-08,2.15454692625725E-08,2.15454692625725E-08, +1.88506561427432E-06,1.88506561427432E-06,1.88173169897102E-06,1.51132136152107E-06,1.42778564084273E-06,1.37222856924544E-06,1.3196160308157E-06,1.26882450867967E-06,1.2224315451931E-06,1.2224315451931E-06, +8.30747172400483E-05,8.30747172400483E-05,8.28244884265999E-05,6.98346877992081E-05,6.67929790721408E-05,6.4664432998167E-05,6.26245393451771E-05,6.06395767398812E-05,5.88114907343669E-05,5.88114907343669E-05, +0.00290478910360076,0.00290478910360076,0.00289356793348957,0.00257039221943664,0.00248988970234749,0.00243024299657891,0.00237235199595958,0.00231552037461084,0.00226264456231824,0.00226264456231824, +0.0723560868070626,0.0723560868070626,0.0720500134238923,0.0676688960702863,0.0664199322795697,0.0654228049485617,0.0644416907804583,0.0634693425714032,0.0625511125624822,0.0625511125624822, + +00:00:17, +1.81628016279816E-13,1.81628016279816E-13,1.82641352677052E-13,1.27149431191347E-13,1.14972464314321E-13,1.08194736993133E-13,1.02050792248043E-13,9.62534634969283E-14,9.10891874444615E-14,9.10891874444615E-14, +1.81628016279816E-13,1.81628016279816E-13,1.82641352677052E-13,1.27149431191347E-13,1.14972464314321E-13,1.08194736993133E-13,1.02050792248043E-13,9.62534634969283E-14,9.10891874444615E-14,9.10891874444615E-14, +1.26293578088841E-11,1.26293578088841E-11,1.2671787017922E-11,9.14140654573604E-12,8.36088181026152E-12,7.90820888250211E-12,7.49343050547966E-12,7.09998152242997E-12,6.74782276950015E-12,6.74782276950015E-12, +8.07865820427931E-10,8.07865820427931E-10,8.089682244713E-10,6.05910815756415E-10,5.60510526778123E-10,5.33044149879094E-10,5.07605304419943E-10,4.83337199415289E-10,4.61500815185469E-10,4.61500815185469E-10, +4.62652026640842E-08,4.62652026640842E-08,4.62467271133554E-08,3.60567441369376E-08,3.37402252814076E-08,3.22756998112063E-08,3.09043791383076E-08,2.95880049125651E-08,2.83964658900708E-08,2.83964658900708E-08, +2.31186485302746E-06,2.31186485302746E-06,2.30748659249612E-06,1.87796705088519E-06,1.77792132004223E-06,1.71167126958532E-06,1.64893617297645E-06,1.5883003500623E-06,1.53304043056822E-06,1.53304043056822E-06, +9.70792521835603E-05,9.70792521835603E-05,9.67811344882377E-05,8.24684812445297E-05,7.90104848855224E-05,7.66035072496106E-05,7.42973687577025E-05,7.205141094283E-05,6.99882048597891E-05,6.99882048597891E-05, +0.00322733311815378,0.00322733311815378,0.00321484741263505,0.00287728805496914,0.00279060305548899,0.00272674880428081,0.002664805528036,0.00260397054317807,0.00254752934024133,0.00254752934024133, +0.0762787162335802,0.0762787162335802,0.0759581571743952,0.0716257020313822,0.0703518190367117,0.069339738541867,0.0683446598923446,0.0673585942180223,0.0664299963011218,0.0664299963011218, + +00:00:18, +2.60371615643278E-13,2.60371615643278E-13,2.61718767415706E-13,1.85729387292663E-13,1.68496434457203E-13,1.58896494920822E-13,1.50193026414456E-13,1.41966929930263E-13,1.34651559780062E-13,1.34651559780062E-13, +2.60371615643278E-13,2.60371615643278E-13,2.61718767415706E-13,1.85729387292663E-13,1.68496434457203E-13,1.58896494920822E-13,1.50193026414456E-13,1.41966929930263E-13,1.34651559780062E-13,1.34651559780062E-13, +1.7401990146618E-11,1.7401990146618E-11,1.74547845375892E-11,1.28163052638652E-11,1.17567876919766E-11,1.11426082098031E-11,1.05798009122899E-11,1.00451005319513E-11,9.56738541563712E-12,9.56738541563712E-12, +1.06881845945319E-09,1.06881845945319E-09,1.07001179615867E-09,8.14330173779686E-10,7.55295138211141E-10,7.1964372848295E-10,6.86624179953196E-10,6.55079197228018E-10,6.26751010570166E-10,6.26751010570166E-10, +5.8672840074489E-08,5.8672840074489E-08,5.86391991778955E-08,4.63656909116005E-08,4.34860731778428E-08,4.16710519229358E-08,3.99717166045316E-08,3.83384265205059E-08,3.68632085441371E-08,3.68632085441371E-08, +2.8053149972867E-06,2.8053149972867E-06,2.79970564816136E-06,2.30582797601217E-06,2.18719453524582E-06,2.10896074109537E-06,2.03489486372612E-06,1.96323440621335E-06,1.89808224796436E-06,1.89808224796436E-06, +0.00011250033108675,0.00011250033108675,0.000112149664492426,9.64721854096231E-05,9.25692790919283E-05,8.98662443356172E-05,8.72774815092854E-05,8.47544717609549E-05,8.24428325840004E-05,8.24428325840004E-05, +0.00356476414520764,0.00356476414520764,0.00355097508252384,0.00319947263619806,0.00310652249611459,0.00303842162316042,0.00297239831552,0.00290753530237856,0.00284752795592881,0.00284752795592881, +0.0801668823096655,0.0801668823096655,0.0798323192363769,0.0755474884201524,0.0742493649088567,0.0732225040172567,0.0722136622554266,0.071214095311097,0.0702753343261235,0.0702753343261235, + +00:00:19, +3.67210774377533E-13,3.67210774377533E-13,3.68976833149358E-13,2.66462127718775E-13,2.4247401048347E-13,2.29102884198397E-13,2.16980978280174E-13,2.05507004355907E-13,1.95322085679822E-13,1.95322085679822E-13, +3.67210774377533E-13,3.67210774377533E-13,3.68976833149358E-13,2.66462127718775E-13,2.4247401048347E-13,2.29102884198397E-13,2.16980978280174E-13,2.05507004355907E-13,1.95322085679822E-13,1.95322085679822E-13, +2.3624952386725E-11,2.3624952386725E-11,2.3689759823703E-11,1.76761193077797E-11,1.62591677474382E-11,1.54382937751404E-11,1.46861618061652E-11,1.39706037979066E-11,1.3332555922098E-11,1.3332555922098E-11, +1.39546453302074E-09,1.39546453302074E-09,1.39671715655563E-09,1.07848355074541E-09,1.00271903795417E-09,9.5704719934631E-10,9.14754580993419E-10,8.74299944252252E-10,8.38046876661211E-10,8.38046876661211E-10, +7.3557161301017E-08,7.3557161301017E-08,7.35038835450051E-08,5.88633397869152E-08,5.53233755801372E-08,5.30986812615726E-08,5.10163446276645E-08,4.9012761864355E-08,4.7207194884476E-08,4.7207194884476E-08, +3.37153996227065E-06,3.37153996227065E-06,3.36449877375464E-06,2.800918138145E-06,2.66149523330602E-06,2.56991381831861E-06,2.48324436231899E-06,2.39931658589513E-06,2.32319966738497E-06,2.32319966738497E-06, +0.000129392047013189,0.000129392047013189,0.000128984149957277,0.00011190241626597,0.000107525881080023,0.000104509099555266,0.000101621350552609,9.88052775682647E-05,9.62320579337812E-05,9.62320579337812E-05, +0.00391679652553504,0.00391679652553504,0.00390166882048678,0.00353665042223397,0.00343735866142142,0.00336497303714271,0.00329484299559584,0.00322592851619825,0.00316235503933257,0.00316235503933257, +0.0840209704703422,0.0840209704703422,0.0836728713122274,0.0794346523688546,0.0781129494293072,0.0770714807483692,0.0760490743748135,0.0750362193173543,0.0740874965220339,0.0740874965220339, + +00:00:20, +5.10219161439829E-13,5.10219161439829E-13,5.12505487516582E-13,3.7607933038162E-13,3.43187354156966E-13,3.24845187025652E-13,3.08220226082791E-13,2.92463216887166E-13,2.78503803773128E-13,2.78503803773128E-13, +5.10219161439829E-13,5.10219161439829E-13,5.12505487516582E-13,3.7607933038162E-13,3.43187354156966E-13,3.24845187025652E-13,3.08220226082791E-13,2.92463216887166E-13,2.78503803773128E-13,2.78503803773128E-13, +3.1641651904514E-11,3.1641651904514E-11,3.17202398517408E-11,2.40178983172234E-11,2.21484402945237E-11,2.1066164677268E-11,2.00747883723837E-11,1.91304683420049E-11,1.82901814577878E-11,1.82901814577878E-11, +1.80008537135911E-09,1.80008537135911E-09,1.80135359993854E-09,1.40941778045978E-09,1.3133331508944E-09,1.25551557747325E-09,1.20199381225614E-09,1.15074178753671E-09,1.10491404386071E-09,1.10491404386071E-09, +9.125740107305E-08,9.125740107305E-08,9.11793723802484E-08,7.38681330882065E-08,6.95600513262625E-08,6.68602667093367E-08,6.43342847274849E-08,6.19015472131575E-08,5.97144250818771E-08,5.97144250818771E-08, +4.01684835572747E-06,4.01684835572747E-06,4.00816121895169E-06,3.36944905999854E-06,3.20691212599073E-06,3.10054628396668E-06,2.99993651311584E-06,2.902437222551E-06,2.81423710538556E-06,2.81423710538556E-06, +0.000147806741202867,0.000147806741202867,0.000147336929942926,0.00012881395043851,0.000123935010063841,0.000120586733078516,0.000117383657745875,0.000114258560867785,0.000111410779444013,0.000111410779444013, +0.00428314921573211,0.00428314921573211,0.00426665095361101,0.00388853073591359,0.00378282680546577,0.00370611926025769,0.00363185681349007,0.00355886862894687,0.00349172977687378,0.00349172977687378, +0.087841361256932,0.087841361256932,0.087480180594248,0.083287585839871,0.0819429474366145,0.0808870433371732,0.0798512680359224,0.0788253350247431,0.0778668481589069,0.0778668481589069, + +00:00:21, +6.99279046870301E-13,6.99279046870301E-13,7.02205651643504E-13,5.22904245064848E-13,4.78420677798774E-13,4.53606712749487E-13,4.31123957599584E-13,4.09790146069473E-13,3.90929046591372E-13,3.90929046591372E-13, +6.99279046870301E-13,6.99279046870301E-13,7.02205651643504E-13,5.22904245064848E-13,4.78420677798774E-13,4.53606712749487E-13,4.31123957599584E-13,4.09790146069473E-13,3.90929046591372E-13,3.90929046591372E-13, +4.18556906088907E-11,4.18556906088907E-11,4.19499460317419E-11,3.21937340489771E-11,2.97575986101456E-11,2.83482860805623E-11,2.70578713990165E-11,2.58273852255462E-11,2.47348326348094E-11,2.47348326348094E-11, +2.29652425533163E-09,2.29652425533163E-09,2.2977511304458E-09,1.81966800612245E-09,1.69912812116878E-09,1.6267212757189E-09,1.55972576431525E-09,1.49550986111275E-09,1.43822216768537E-09,1.43822216768537E-09, +1.12139392264509E-07,1.12139392264509E-07,1.12030839444606E-07,9.17250762768932E-08,8.65300968869495E-08,8.3283268882041E-08,8.02470980613595E-08,7.73206325711576E-08,7.46960649040494E-08,7.46960649040494E-08, +4.74772407332398E-06,4.74772407332398E-06,4.73716425357112E-06,4.01781978000214E-06,3.82972288143824E-06,3.70706308890531E-06,3.59111297549039E-06,3.4786773197824E-06,3.37723095091978E-06,3.37723095091978E-06, +0.000167795040796969,0.000167795040796969,0.000167258647378723,0.000147259765638831,0.000141849623269319,0.000138152048281172,0.000134617332066303,0.000131167306308561,0.000128032148090456,0.000128032148090456, +0.00466354571517094,0.00466354571517094,0.00464564819208197,0.00425482768428705,0.00414264672835085,0.00406158106408457,0.00398316155049511,0.00390607859378997,0.00383537584057668,0.00383537584057668, +0.0916284303846669,0.0916284303846669,0.0912546098214713,0.0871066757002849,0.0857397291358505,0.084669561678998,0.0836206103681713,0.0825818066056513,0.0816137499542513,0.0816137499542513, + +00:00:22, +9.46380754990453E-13,9.46380754990453E-13,9.50089034175378E-13,7.17129438034308E-13,6.57725613274427E-13,6.24581159883769E-13,5.94565277684994E-13,5.66053958574822E-13,5.40901374182418E-13,5.40901374182418E-13, +9.46380754990453E-13,9.46380754990453E-13,9.50089034175378E-13,7.17129438034308E-13,6.57725613274427E-13,6.24581159883769E-13,5.94565277684994E-13,5.66053958574822E-13,5.40901374182418E-13,5.40901374182418E-13, +5.47379676134678E-11,5.47379676134678E-11,5.48499008119525E-11,4.26176234137626E-11,3.94788574832301E-11,3.76644084685966E-11,3.60039292051442E-11,3.4419070145853E-11,3.30150384081692E-11,3.30150384081692E-11, +2.90029641409426E-09,2.90029641409426E-09,2.901410607429E-09,2.32336903110149E-09,2.17364393330209E-09,2.08385655525797E-09,2.000828484126E-09,1.92117887863112E-09,1.85029130451671E-09,1.85029130451671E-09, +1.3659608939453E-07,1.3659608939453E-07,1.36450569884904E-07,1.12806315062388E-07,1.06594178329046E-07,1.02721525219038E-07,9.91024854578563E-08,9.56117879484729E-08,9.24890594705693E-08,9.24890594705693E-08, +5.57081715221184E-06,5.57081715221184E-06,5.55814609449962E-06,4.7526071272753E-06,4.53638458013312E-06,4.39584883761021E-06,4.2630957187184E-06,4.13429906063016E-06,4.01840005507971E-06,4.01840005507971E-06, +0.000189405895839636,0.000189405895839636,0.000188798284737015,0.000167291080293423,0.000161320953415091,0.000157256229353602,0.000153373587101856,0.000149582787985947,0.000146147604509073,0.000146147604509073, +0.00505771399412635,0.00505771399412635,0.00503839156347492,0.00463526008045561,0.0045165427064717,0.00443108370634322,0.00434848345311776,0.00426728580239882,0.00419302131830569,0.00419302131830569, +0.0953825488092993,0.0953825488092993,0.0949965173357863,0.0908923037952713,0.0895036601590773,0.0884194010266194,0.0873574639077747,0.0863059936792404,0.0853285581341693,0.0853285581341693, + +00:00:23, +1.26595526096935E-12,1.26595526096935E-12,1.27061115029679E-12,9.71126930134141E-13,8.927179939865E-13,8.48961796086079E-13,8.09359851137906E-13,7.7170883802433E-13,7.38567081631515E-13,7.38567081631515E-13, +1.26595526096935E-12,1.26595526096935E-12,1.27061115029679E-12,9.71126930134141E-13,8.927179939865E-13,8.48961796086079E-13,8.09359851137906E-13,7.7170883802433E-13,7.38567081631515E-13,7.38567081631515E-13, +7.08342268567047E-11,7.08342268567047E-11,7.09659809311485E-11,5.57727878391938E-11,5.17707509057955E-11,4.94589335866601E-11,4.73446632383192E-11,4.53250152882391E-11,4.35399613839667E-11,4.35399613839667E-11, +3.62870023825421E-09,3.62870023825421E-09,3.62961514432529E-09,2.9363680929084E-09,2.75208105919665E-09,2.64174352634244E-09,2.53978332520206E-09,2.44190154213896E-09,2.35499994069064E-09,2.35499994069064E-09, +1.65048047204749E-07,1.65048047204749E-07,1.64858445292145E-07,1.37511664178727E-07,1.30140175635771E-07,1.25555797599528E-07,1.21274839966891E-07,1.17143262148068E-07,1.13456699324945E-07,1.13456699324945E-07, +6.49293487690934E-06,6.49293487690934E-06,6.47790307602491E-06,5.58055627068757E-06,5.33352442963407E-06,5.17345853314749E-06,5.02237777593012E-06,4.8757365747833E-06,4.74413647886011E-06,4.74413647886011E-06, +0.00021268661557011,0.00021268661557011,0.000212003199063943,0.000188957392382903,0.000182398545499501,0.000177948778196374,0.000173701957834163,0.000169554606038007,0.000165806915514624,0.000165806915514624, +0.00546538642305742,0.00546538642305742,0.00544461634798426,0.0050295513667353,0.00490424342380213,0.00481435686061423,0.00472755316333507,0.00464222201570075,0.00456439864508871,0.00456439864508871, +0.099104082792726,0.099104082792726,0.0987062571373779,0.0946448470203231,0.0932351016250239,0.092136922053416,0.0910621866596525,0.089998251372896,0.0890116244936423,0.0890116244936423, + +00:00:24, +1.67524181724197E-12,1.67524181724197E-12,1.68103945475027E-12,1.29979268107438E-12,1.19740798878852E-12,1.14026337680405E-12,1.0885807902897E-12,1.03940520458352E-12,9.96218181274502E-13,9.96218181274502E-13, +1.67524181724197E-12,1.67524181724197E-12,1.68103945475027E-12,1.29979268107438E-12,1.19740798878852E-12,1.14026337680405E-12,1.0885807902897E-12,1.03940520458352E-12,9.96218181274502E-13,9.96218181274502E-13, +9.07730503715389E-11,9.07730503715389E-11,9.09269182096476E-11,7.22194503466871E-11,6.71656828835089E-11,6.42483292144281E-11,6.15822596376732E-11,5.90336849200372E-11,5.67865161901152E-11,5.67865161901152E-11, +4.5009295012758E-09,4.5009295012758E-09,4.50154255358005E-09,3.67633883494631E-09,3.4514129071898E-09,3.3169454764944E-09,3.19278545427563E-09,3.0735183434228E-09,2.96789444994181E-09,2.96789444994181E-09, +1.97943855857898E-07,1.97943855857898E-07,1.97702385521596E-07,1.66269089524455E-07,1.57583680989158E-07,1.52194274093018E-07,1.47165753533294E-07,1.42310295670118E-07,1.37989140429142E-07,1.37989140429142E-07, +7.52103313176036E-06,7.52103313176036E-06,7.50338105840807E-06,6.50857153550462E-06,6.22793073239539E-06,6.04660857585555E-06,5.87561425132729E-06,5.70958695795804E-06,5.56099649319553E-06,5.56099649319553E-06, +0.000237682904018378,0.000237682904018378,0.000236919156377602,0.000212306517507779,0.000205130292905591,0.000200277550615764,0.000195650336725322,0.000191130722550669,0.000187058209931075,0.000187058209931075, +0.00588629970302445,0.00588629970302445,0.00586406201457843,0.00543742953912234,0.00530548190420941,0.00521113454716932,0.00512010564994014,0.0050306232957124,0.00494924453550957,0.00494924453550957, +0.102793393967644,0.102793393967644,0.102384178939485,0.0983646773923327,0.096934410197979,0.09582248091561,0.0947351321584638,0.0936589303828051,0.0926632964559697,0.0926632964559697, + +00:00:25, +2.19469248676279E-12,2.19469248676279E-12,2.20185847922483E-12,1.72092736514186E-12,1.58856552231843E-12,1.51467871978715E-12,1.44790769392529E-12,1.38433162510113E-12,1.3286287592231E-12,1.3286287592231E-12, +2.19469248676279E-12,2.19469248676279E-12,2.20185847922483E-12,1.72092736514186E-12,1.58856552231843E-12,1.51467871978715E-12,1.44790769392529E-12,1.38433162510113E-12,1.3286287592231E-12,1.3286287592231E-12, +1.15274297000521E-10,1.15274297000521E-10,1.15452747857155E-10,9.26030707365661E-11,8.62779323503745E-11,8.26289939178959E-11,7.92971380642787E-11,7.6110156214413E-11,7.33069325563805E-11,7.33069325563805E-11, +5.5381863906535E-09,5.5381863906535E-09,5.53837863867196E-09,4.56289626035135E-09,4.29049935864502E-09,4.12787931252381E-09,3.9778555005185E-09,3.83366854356786E-09,3.706299763486E-09,3.706299763486E-09, +2.35760534261434E-07,2.35760534261434E-07,2.35458748731643E-07,1.9953514531714E-07,1.89368452579131E-07,1.830730264097E-07,1.77204479358772E-07,1.7153558929325E-07,1.66503879644234E-07,1.66503879644234E-07, +8.66220799435351E-06,8.66220799435351E-06,8.64166706961913E-06,7.54370748126953E-06,7.22654410113149E-06,7.02216801002514E-06,6.82961357498396E-06,6.64260153780635E-06,6.47569182563593E-06,6.47569182563593E-06, +0.000264438894917241,0.000264438894917241,0.000263590365443705,0.000237384626196,0.000229562472835692,0.000224288791831856,0.000219265009121094,0.000214357496784005,0.000209948013746097,0.000209948013746097, +0.00632019479722251,0.00632019479722251,0.0062964721580688,0.00585862707303683,0.00571999544478169,0.005621155064894,0.0055258801409608,0.00543222993843875,0.00534729991715278,0.00534729991715278, +0.106450839401247,0.106450839401247,0.106030628222489,0.10205216211955,0.100601938145911,0.0994764293136056,0.098376649528778,0.0972883770336726,0.0962839171313685,0.0962839171313685, + +00:00:26, +2.84841544670372E-12,2.84841544670372E-12,2.85721385191208E-12,2.2556553718148E-12,2.08612290749614E-12,1.99147184483191E-12,1.90601173704588E-12,1.82459230733902E-12,1.75342660026391E-12,1.75342660026391E-12, +2.84841544670372E-12,2.84841544670372E-12,2.85721385191208E-12,2.2556553718148E-12,2.08612290749614E-12,1.99147184483191E-12,1.90601173704588E-12,1.82459230733902E-12,1.75342660026391E-12,1.75342660026391E-12, +1.45157985495089E-10,1.45157985495089E-10,1.45363703409774E-10,1.17663038334683E-10,1.09812112225916E-10,1.05285571987838E-10,1.01156148155912E-10,9.7204205843145E-11,9.37367637938404E-11,9.37367637938404E-11, +6.76379515887638E-09,6.76379515887638E-09,6.76343114257266E-09,5.61771246168236E-09,5.29020118652163E-09,5.09492891172684E-09,4.91495214237302E-09,4.74190212533209E-09,4.58943104601467E-09,4.58943104601467E-09, +2.79003882979908E-07,2.79003882979908E-07,2.78632691062303E-07,2.37795367867991E-07,2.25966825463656E-07,2.18656424575506E-07,2.11848351476305E-07,2.05269729851504E-07,1.99446187220113E-07,1.99446187220113E-07, +9.92368756440301E-06,9.92368756440301E-06,9.89998117525133E-06,8.69316023471261E-06,8.33644891628042E-06,8.10715001299238E-06,7.89132899966629E-06,7.68167738082871E-06,7.49508114814065E-06,7.49508114814065E-06, +0.000292997185943431,0.000292997185943431,0.000292059510938819,0.000264236280467238,0.000255739781086996,0.000250027171311694,0.000244590687982752,0.000239279719731837,0.000234521284601764,0.000234521284601764, +0.00676681686361308,0.00676681686361308,0.00674159443708055,0.00629288085032137,0.00614752555015426,0.00604416092428489,0.00594462005713424,0.00584678640782122,0.00575830986508422,0.00575830986508422, +0.110076771657991,0.110076771657991,0.109645946287329,0.105707663670437,0.104238033397824,0.103099114552441,0.101987083544397,0.100886933337589,0.0998738253747478,0.0998738253747478, + +00:00:27, +3.66465890918336E-12,3.66465890918336E-12,3.67539706073917E-12,2.92888394898652E-12,2.71361660308409E-12,2.59340957623231E-12,2.48497869979687E-12,2.38162206151147E-12,2.29150196548716E-12,2.29150196548716E-12, +3.66465890918336E-12,3.66465890918336E-12,3.67539706073917E-12,2.92888394898652E-12,2.71361660308409E-12,2.59340957623231E-12,2.48497869979687E-12,2.38162206151147E-12,2.29150196548716E-12,2.29150196548716E-12, +1.81353620125696E-10,1.81353620125696E-10,1.81589556587225E-10,1.48241820863782E-10,1.38572081755651E-10,1.32999717878742E-10,1.27921213067501E-10,1.23058841977545E-10,1.18803340456054E-10,1.18803340456054E-10, +8.20331621245205E-09,8.20331621245205E-09,8.2022441700181E-09,6.86463292934476E-09,6.47349515908245E-09,6.24055918631574E-09,6.0260854357429E-09,5.81979252161355E-09,5.63850617959679E-09,5.63850617959679E-09, +3.2820879816072E-07,3.2820879816072E-07,3.27758487338921E-07,2.81564627537301E-07,2.67880080965292E-07,2.59437510316532E-07,2.51583163021008E-07,2.43991574686141E-07,2.37289497777391E-07,2.37289497777391E-07, +1.13128240227089E-05,1.13128240227089E-05,1.12856685717191E-05,9.96425907162285E-06,9.56486502022705E-06,9.30870362117446E-06,9.06785033422007E-06,8.83384903487767E-06,8.6261618005831E-06,8.6261618005831E-06, +0.000323398872300211,0.000323398872300211,0.000322367786011069,0.000292904469668511,0.00028370536617938,0.000277535816939766,0.000271670547959644,0.000265940648026621,0.000260821445633308,0.000260821445633308, +0.00722591518863538,0.00722591518863538,0.00719918051291417,0.00673993208747227,0.0065878178678201,0.00647989878150408,0.00637607294642103,0.00627404127071817,0.00618202353735133,0.00618202353735133, +0.113671538861424,0.113671538861424,0.113230470308269,0.109331539841435,0.107843039600354,0.106690879601367,0.105566774686839,0.104454937052064,0.10343335584267,0.10343335584267, + +00:00:28, +4.67633748516204E-12,4.67633748516204E-12,4.68937280199937E-12,3.76980438695053E-12,3.49866999250782E-12,3.34723348967584E-12,3.21077180885204E-12,3.08064059815009E-12,2.96745539338444E-12,2.96745539338444E-12, +4.67633748516204E-12,4.67633748516204E-12,4.68937280199937E-12,3.76980438695053E-12,3.49866999250782E-12,3.34723348967584E-12,3.21077180885204E-12,3.08064059815009E-12,2.96745539338444E-12,2.96745539338444E-12, +2.2490995616138E-10,2.2490995616138E-10,2.25179399583142E-10,1.85294567161702E-10,1.73470310425186E-10,1.66659308615683E-10,1.60458418709622E-10,1.54519280483556E-10,1.49334668103583E-10,1.49334668103583E-10, +9.88466046524669E-09,9.88466046524669E-09,9.88271290878169E-09,8.3297932504708E-09,7.86558964035422E-09,7.58943067356289E-09,7.33543069573047E-09,7.09104993170746E-09,6.87685886594092E-09,6.87685886594092E-09, +3.83939547859764E-07,3.83939547859764E-07,3.83399814151895E-07,3.3138744038785E-07,3.15638776051189E-07,3.0593833059834E-07,2.96923504642406E-07,2.88208596212591E-07,2.80535761225744E-07,2.80535761225744E-07, +1.28370859149278E-05,1.28370859149278E-05,1.2806191897934E-05,1.1364458241752E-05,1.09191396430496E-05,1.06341056876909E-05,1.03663959081861E-05,1.01062805019498E-05,9.87606174466835E-06,9.87606174466835E-06, +0.000355683579653646,0.000355683579653646,0.000354554924248079,0.000323430645595492,0.000313500862846553,0.000306856348537833,0.000300546258814328,0.000294382037201374,0.00028889041866762,0.00028889041866762, +0.00769724312197968,0.00769724312197968,0.00766898598928576,0.0071995262650807,0.00704062212441093,0.00692811937347373,0.00681999041954228,0.00671374713290152,0.006618194111487,0.006618194111487, +0.117235484755117,0.117235484755117,0.116784533385006,0.112924143823669,0.11141729617363,0.110252063152561,0.109116059202997,0.107992721737234,0.106962839049507,0.106962839049507, + +00:00:29, +5.92160279396179E-12,5.92160279396179E-12,5.9373507330182E-12,4.8124371182009E-12,4.47351905980238E-12,4.28417406598528E-12,4.11373624589029E-12,3.95114801346213E-12,3.81008637785342E-12,3.81008637785342E-12, +5.92160279396179E-12,5.92160279396179E-12,5.9373507330182E-12,4.8124371182009E-12,4.47351905980238E-12,4.28417406598528E-12,4.11373624589029E-12,3.95114801346213E-12,3.81008637785342E-12,3.81008637785342E-12, +2.77005201851559E-10,2.77005201851559E-10,2.77311866564801E-10,2.2989916067449E-10,2.15537690933293E-10,2.07268101835397E-10,1.99747546493739E-10,1.92542363289185E-10,1.8626876727843E-10,1.8626876727843E-10, +1.18382037901397E-08,1.18382037901397E-08,1.18351984827265E-08,1.00417360185283E-08,9.49404050715989E-09,9.1685144723162E-09,8.86944275228704E-09,8.58163504521208E-09,8.33005216567177E-09,8.33005216567177E-09, +4.46790012116285E-07,4.46790012116285E-07,4.46149996629278E-07,3.8783824101093E-07,3.69803034106094E-07,3.58710232727465E-07,3.48413064464893E-07,3.38457188004952E-07,3.29715755024941E-07,3.29715755024941E-07, +1.45040506549969E-05,1.45040506549969E-05,1.44691237607394E-05,1.29013290309559E-05,1.24067395546542E-05,1.20907530663239E-05,1.17943047624127E-05,1.15062574360713E-05,1.1252031743074E-05,1.1252031743074E-05, +0.000389889496434486,0.000389889496434486,0.000388659231061801,0.00035585475691353,0.0003451664249014,0.000338028910745935,0.000331258018211915,0.000324644174320192,0.000318768656792947,0.000318768656792947, +0.0081805580124048,0.0081805580124048,0.00815077035293503,0.00767141305846242,0.00750569206293486,0.00738857745399376,0.00727612808652378,0.00716566057605345,0.00706657872200131,0.00706657872200131, +0.120768948762687,0.120768948762687,0.120308464594132,0.116485824268602,0.114961138366388,0.113782999679002,0.112635269161986,0.111500616812261,0.110462601422813,0.110462601422813, + +00:00:30, +7.4444600941744E-12,7.4444600941744E-12,7.46340342131613E-12,6.09622258168553E-12,5.67558281480937E-12,5.44050889137292E-12,5.22914715574309E-12,5.02746329207191E-12,4.85292475578201E-12,4.85292475578201E-12, +7.4444600941744E-12,7.4444600941744E-12,7.46340342131613E-12,6.09622258168553E-12,5.67558281480937E-12,5.44050889137292E-12,5.22914715574309E-12,5.02746329207191E-12,4.85292475578201E-12,4.85292475578201E-12, +3.38957652857795E-10,3.38957652857795E-10,3.39305790462383E-10,2.83266719903868E-10,2.6593379794825E-10,2.55955836370155E-10,2.46892046633005E-10,2.3820641613822E-10,2.30663453023814E-10,2.30663453023814E-10, +1.40969014104919E-08,1.40969014104919E-08,1.40926427767802E-08,1.20315277822024E-08,1.1388867210499E-08,1.10072073544682E-08,1.06569704080729E-08,1.03198730013567E-08,1.00259923012274E-08,1.00259923012274E-08, +5.17383888089885E-07,5.17383888089885E-07,5.16632220185864E-07,4.5152161795829E-07,4.30962798471339E-07,4.18334122385069E-07,4.06624890965831E-07,3.9530293376337E-07,3.85389359157698E-07,3.85389359157698E-07, +1.6321397243163E-05,1.6321397243163E-05,1.62821394694721E-05,1.45825520549085E-05,1.4035243438262E-05,1.36861550166801E-05,1.33590290605428E-05,1.30411795611895E-05,1.27614377587305E-05,1.27614377587305E-05, +0.000426053405517414,0.000426053405517414,0.000424717614499729,0.000390215282892113,0.000378740757486291,0.000371092205276157,0.00036384458388505,0.000356765909988703,0.000350495176311055,0.000350495176311055, +0.00867562114458273,0.00867562114458273,0.00864429691508936,0.00815534626945439,0.00798278538095695,0.0078610317308664,0.00774424549423132,0.00762954209574747,0.00752693839884567,0.00752693839884567, +0.124272266046953,0.124272266046953,0.123802589039963,0.120016925352662,0.118474897310362,0.117284019491504,0.116124732511187,0.114978947610932,0.113932965357907,0.113932965357907, + +00:00:31, +9.29543268219582E-12,9.29543268219582E-12,9.31813225364973E-12,7.66665967063042E-12,7.14808029280864E-12,6.85816671795699E-12,6.59780296153645E-12,6.34930763253709E-12,6.13480661286399E-12,6.13480661286399E-12, +9.29543268219582E-12,9.29543268219582E-12,9.31813225364973E-12,7.66665967063042E-12,7.14808029280864E-12,6.85816671795699E-12,6.59780296153645E-12,6.34930763253709E-12,6.13480661286399E-12,6.13480661286399E-12, +4.12236754437517E-10,4.12236754437517E-10,4.12631290470598E-10,3.46752541283553E-10,3.25957588653118E-10,3.13988771567643E-10,3.03129448329635E-10,2.92721542222123E-10,2.83706550556028E-10,2.83706550556028E-10, +1.66964020801916E-08,1.66964020801916E-08,1.66906830811267E-08,1.43328758700953E-08,1.35826688167703E-08,1.31374468876414E-08,1.27293709345091E-08,1.23365674191968E-08,1.19950425576912E-08,1.19950425576912E-08, +5.96374861537207E-07,5.96374861537207E-07,5.95499708499711E-07,5.2307251317296E-07,4.99738050086881E-07,4.85420685926249E-07,4.72161620104333E-07,4.59340840493459E-07,4.48145795147208E-07,4.48145795147208E-07, +1.8296899193674E-05,1.8296899193674E-05,1.82530099751037E-05,1.64159097788526E-05,1.58123344803111E-05,1.54279258255221E-05,1.50681267163554E-05,1.4718553304085E-05,1.44117535692605E-05,1.44117535692605E-05, +0.00046421071528917,0.00046421071528917,0.000462765615491888,0.000426549266466265,0.000414261148718892,0.000406083522550575,0.000398343305185794,0.000390784689755618,0.000384107588082939,0.000384107588082939, +0.00918219767695307,0.00918219767695307,0.00914933275377292,0.00865108375935756,0.00847166366970919,0.00834524480401109,0.00822410606488171,0.00810515604039818,0.00799903800683409,0.00799903800683409, +0.12774576756821,0.12774576756821,0.127267227904732,0.12351778684086,0.121958900073958,0.120755448794929,0.119584773131499,0.11842803543647,0.117374249271701,0.117374249271701, + +00:00:32, +1.15322757724589E-11,1.15322757724589E-11,1.15593830365169E-11,9.57599355063897E-12,8.94069592383258E-12,8.58537916939079E-12,8.26666576590432E-12,7.96243437351477E-12,7.70049648922755E-12,7.70049648922755E-12, +1.15322757724589E-11,1.15322757724589E-11,1.15593830365169E-11,9.57599355063897E-12,8.94069592383258E-12,8.58537916939079E-12,8.26666576590432E-12,7.96243437351477E-12,7.70049648922755E-12,7.70049648922755E-12, +4.98474586073887E-10,4.98474586073887E-10,4.98921285065806E-10,4.21867479295969E-10,3.97058540407905E-10,3.827806608651E-10,3.69842202502854E-10,3.57440347500625E-10,3.46726543007348E-10,3.46726543007348E-10, +1.96751619080827E-08,1.96751619080827E-08,1.96677664088478E-08,1.69822449355315E-08,1.61107398718138E-08,1.55938264127979E-08,1.51206244494524E-08,1.46651143415577E-08,1.42701371233448E-08,1.42701371233448E-08, +6.84446745871176E-07,6.84446745871176E-07,6.83435868935157E-07,6.03156386772645E-07,5.76778990538456E-07,5.60610578242854E-07,5.45655667998149E-07,5.3119553719154E-07,5.18603830416793E-07,5.18603830416793E-07, +2.04384176672976E-05,2.04384176672976E-05,2.03895950094968E-05,1.84092792579751E-05,1.77457931719313E-05,1.73237776393415E-05,1.69292542320489E-05,1.65459846374238E-05,1.62105535916993E-05,1.62105535916993E-05, +0.00050439549011685,0.00050439549011685,0.000502837437542829,0.000464892346638045,0.000451763500743892,0.000443038772734547,0.000434790154035422,0.000426736584916311,0.000419642128278936,0.000419642128278936, +0.009700056580571,0.009700056580571,0.00966564865694969,0.0091583873830052,0.00897209235411663,0.00884098310455391,0.00871547703551409,0.00859227055116457,0.00848264618600666,0.00848264618600666, +0.13118978014166,0.13118978014166,0.130702698498161,0.126988744149407,0.125413469715219,0.124197609743598,0.123015710891818,0.121848197615568,0.120786767655764,0.120786767655764, + +00:00:33, +1.42207415388057E-11,1.42207415388057E-11,1.42530129853783E-11,1.18839545996607E-11,1.1110295034174E-11,1.0677381844766E-11,1.02895505863028E-11,9.91930726811156E-12,9.60135763653174E-12,9.60135763653174E-12, +1.42207415388057E-11,1.42207415388057E-11,1.42530129853783E-11,1.18839545996607E-11,1.1110295034174E-11,1.0677381844766E-11,1.02895505863028E-11,9.91930726811156E-12,9.60135763653174E-12,9.60135763653174E-12, +5.99477762674656E-10,5.99477762674656E-10,5.99983424758403E-10,5.10289758018419E-10,4.80848220218363E-10,4.63904154500364E-10,4.48568952073537E-10,4.33869092879361E-10,4.21203646510685E-10,4.21203646510685E-10, +2.30745576893916E-08,2.30745576893916E-08,2.30652633479808E-08,2.0018973073238E-08,1.90111859380048E-08,1.8413709727691E-08,1.78674480271405E-08,1.73416159428137E-08,1.68868947189669E-08,1.68868947189669E-08, +7.82313590011922E-07,7.82313590011922E-07,7.8115440660009E-07,6.92469348501128E-07,6.62766191777592E-07,6.44574577452899E-07,6.27769390411327E-07,6.1152144029497E-07,5.97411949254478E-07,5.97411949254478E-07, +2.275389480393E-05,2.275389480393E-05,2.26998364203966E-05,2.05706250931182E-05,1.98434903172458E-05,1.938151350335E-05,1.8950159742649E-05,1.85311721281658E-05,1.81655059127186E-05,1.81655059127186E-05, +0.000546640480227487,0.000546640480227487,0.00054496597587777,0.000505278790231069,0.000491282360200886,0.000481992516176342,0.000473219755283009,0.000464656322729218,0.000457133688543951,0.000457133688543951, +0.010228970578932,0.010228970578932,0.0101930190664893,0.00967702292393669,0.00948384063372637,0.0093480168348758,0.00921812939840644,0.00909065750279177,0.00897753529292037,0.00897753529292037, +0.134604626493993,0.134604626493993,0.134109314306416,0.130430128407366,0.128838925334086,0.127610820495895,0.126417861702745,0.125239747551662,0.124170831128638,0.124170831128638, + +00:00:34, +1.74353969595193E-11,1.74353969595193E-11,1.7473710763149E-11,1.46585501838099E-11,1.3721691207251E-11,1.31971665396608E-11,1.27278651387946E-11,1.22798288209723E-11,1.18960720455923E-11,1.18960720455923E-11, +1.74353969595193E-11,1.74353969595193E-11,1.7473710763149E-11,1.46585501838099E-11,1.3721691207251E-11,1.31971665396608E-11,1.27278651387946E-11,1.22798288209723E-11,1.18960720455923E-11,1.18960720455923E-11, +7.17239745926772E-10,7.17239745926772E-10,7.17812438251997E-10,6.13877207704182E-10,5.79112280101056E-10,5.59102625644514E-10,5.41016224221679E-10,5.23679267808565E-10,5.08781307286432E-10,5.08781307286432E-10, +2.69389996133729E-08,2.69389996133729E-08,2.69275813154909E-08,2.34853873669094E-08,2.23250386616637E-08,2.1637345334068E-08,2.10094093980475E-08,2.04049938575719E-08,1.98837318719201E-08,1.98837318719201E-08, +8.90719756205494E-07,8.90719756205494E-07,8.89399408194602E-07,7.91738257125774E-07,7.58410713748699E-07,7.38013707645692E-07,7.19195210281364E-07,7.01002887123051E-07,6.85248491611518E-07,6.85248491611518E-07, +2.5251347250662E-05,2.5251347250662E-05,2.51917516978566E-05,2.29079925966554E-05,2.21133802438447E-05,2.16090206021613E-05,2.11386762618285E-05,2.0681900186647E-05,2.02843655196713E-05,2.02843655196713E-05, +0.000590977151009784,0.000590977151009784,0.000589182846051852,0.000547741523010726,0.000532850948118482,0.000522977993263902,0.000513665416483452,0.000504577316055599,0.000496615845588275,0.000496615845588275, +0.0107687160887573,0.0107687160887573,0.0107312220229448,0.010206760030657,0.0100066814245266,0.00986611990960405,0.00973183784242253,0.00960009244537643,0.0094834813428528,0.0094834813428528, +0.13799062531915,0.13799062531915,0.137487385040443,0.13384226651733,0.132235582123971,0.130995395268097,0.129791537569536,0.128602994777448,0.127526746487431,0.127526746487431, + +00:00:35, +2.12604960694861E-11,2.12604960694861E-11,2.13058711896138E-11,1.79769109430789E-11,1.68484671932118E-11,1.62162862664882E-11,1.56514018485794E-11,1.51121203672256E-11,1.4651411928518E-11,1.4651411928518E-11, +2.12604960694861E-11,2.12604960694861E-11,2.13058711896138E-11,1.79769109430789E-11,1.68484671932118E-11,1.62162862664882E-11,1.56514018485794E-11,1.51121203672256E-11,1.4651411928518E-11,1.4651411928518E-11, +8.5395355889122E-10,8.5395355889122E-10,8.54602885166466E-10,7.34679919457794E-10,6.93822871870993E-10,6.70302413679312E-10,6.49070538469269E-10,6.28719579298962E-10,6.11278114818494E-10,6.11278114818494E-10, +3.13160432227804E-08,3.13160432227804E-08,3.13022770869902E-08,2.74269187336654E-08,2.60963702348608E-08,2.53079801132993E-08,2.45890401030632E-08,2.38971019940935E-08,2.33019756978631E-08,2.33019756978631E-08, +1.01043996895434E-06,1.01043996895434E-06,1.00894539677818E-06,9.01720789022978E-07,8.64454191124686E-07,8.41659330878609E-07,8.20655714481377E-07,8.00354238501074E-07,7.82821760930845E-07,7.82821760930845E-07, +2.79388598807657E-05,2.79388598807657E-05,2.78734276878795E-05,2.54295011634791E-05,2.45634942108692E-05,2.40142636975381E-05,2.35027151245203E-05,2.30060325117476E-05,2.25749677278753E-05,2.25749677278753E-05, +0.000637435711748698,0.000637435711748698,0.000635518412031395,0.000592312160182477,0.000576501189244566,0.000566027153709323,0.0005561591571054,0.000546531692433076,0.000538120890214332,0.000538120890214332, +0.0113190731617249,0.0113190731617249,0.0112800391111321,0.0107473721539628,0.0105403913016425,0.010395069897532,0.0102563806952746,0.0101203545470412,0.0100002639529044,0.0100002639529044, +0.141348091333262,0.141348091333262,0.140837216683712,0.137225481215172,0.135603751422645,0.134351644387426,0.133137046644317,0.131938245006658,0.130854816758674,0.130854816758674, + +00:00:36, +2.57909081819428E-11,2.57909081819428E-11,2.58445262024856E-11,2.19261932189127E-11,2.05738510166308E-11,1.98157147173327E-11,1.91391837271897E-11,1.84933555346804E-11,1.79430643019477E-11,1.79430643019477E-11, +2.57909081819428E-11,2.57909081819428E-11,2.58445262024856E-11,2.19261932189127E-11,2.05738510166308E-11,1.98157147173327E-11,1.91391837271897E-11,1.84933555346804E-11,1.79430643019477E-11,1.79430643019477E-11, +1.01202489645304E-09,1.01202489645304E-09,1.01276230800025E-09,8.74953310553546E-10,8.27151474350139E-10,7.99625477816241E-10,7.74810923912701E-10,7.51028349818258E-10,7.3070012466829E-10,7.3070012466829E-10, +3.62565005069566E-08,3.62565005069566E-08,3.62401684821792E-08,3.18922159381706E-08,3.0372407122297E-08,2.94719723016649E-08,2.86519479729643E-08,2.78628387028379E-08,2.71859760595081E-08,2.71859760595081E-08, +1.14227933617211E-06,1.14227933617211E-06,1.14059735855322E-06,1.02320547715791E-06,9.81668890320452E-07,9.56273209589051E-07,9.32903720980458E-07,9.10319951727872E-07,8.90870102169169E-07,8.90870102169169E-07, +3.08245796991601E-05,3.08245796991601E-05,3.07530144891318E-05,2.81433378421607E-05,2.72019340102317E-05,2.66052787586725E-05,2.60502596217998E-05,2.55115057276515E-05,2.50452217996436E-05,2.50452217996436E-05, +0.000686045143803367,0.000686045143803367,0.000684001813755874,0.000639021036280389,0.000622263740822476,0.000611170685271459,0.000600731737179394,0.000590550322593134,0.000581679855789469,0.000581679855789469, +0.0118798254271288,0.0118798254271288,0.0118392554064991,0.0112986364853156,0.0110847504428971,0.010934647964452,0.0107915398666877,0.0106512265375042,0.0105276662859851,0.0105276662859851, +0.144677335328797,0.144677335328797,0.144159111539353,0.140580091128859,0.138943740762454,0.137679874344341,0.13645469327755,0.135245800185106,0.134155341248473,0.134155341248473, + +00:00:37, +3.11331035994324E-11,3.11331035994324E-11,3.11963336080006E-11,2.66045392115516E-11,2.4991648889519E-11,2.40867617714127E-11,2.32803657158217E-11,2.25106486908272E-11,2.18565102784387E-11,2.18565102784387E-11, +3.11331035994324E-11,3.11331035994324E-11,3.11963336080006E-11,2.66045392115516E-11,2.4991648889519E-11,2.40867617714127E-11,2.32803657158217E-11,2.25106486908272E-11,2.18565102784387E-11,2.18565102784387E-11, +1.19408562380324E-09,1.19408562380324E-09,1.19492477555705E-09,1.03717159247055E-09,9.81482125501365E-10,9.49402453761289E-10,9.20521838434285E-10,8.92846317032763E-10,8.69253583971487E-10,8.69253583971487E-10, +4.1814550016319E-08,4.1814550016319E-08,4.17954450919419E-08,3.69332586557298E-08,3.52036429303398E-08,3.41789036428771E-08,3.32469288105024E-08,3.23502581768588E-08,3.15832169782195E-08,3.15832169782195E-08, +1.28707334364458E-06,1.28707334364458E-06,1.28519074273389E-06,1.15701172163053E-06,1.11085773792229E-06,1.08264754055349E-06,1.05672231753371E-06,1.03167462501577E-06,1.01016195114494E-06,1.01016195114494E-06, +3.39167099300116E-05,3.39167099300116E-05,3.38387195286699E-05,3.10577511014536E-05,3.00368657565904E-05,2.93901667805629E-05,2.87893588236094E-05,2.82063232077989E-05,2.7703104750665E-05,2.7703104750665E-05, +0.000736833228238653,0.000736833228238653,0.000734660994189243,0.000687897234457808,0.000670168020822708,0.00065843804192687,0.000647412685396313,0.000636662848432622,0.000627322546174775,0.000627322546174775, +0.0124507600354538,0.0124507600354538,0.0124086594222754,0.0118603338962439,0.0116395425732233,0.0114846388168867,0.0113371007924506,0.0111924946525284,0.0110654749956721,0.0110654749956721, +0.147978664227906,0.147978664227906,0.147453368276707,0.143906410836355,0.142255853919867,0.140980387844083,0.139744778068789,0.138525958541012,0.137428615591953,0.137428615591953, + +00:00:38, +3.74061982890881E-11,3.74061982890881E-11,3.74806251143847E-11,3.21220964091799E-11,3.02072364928281E-11,2.91320466063247E-11,2.81751930518837E-11,2.72619999343934E-11,2.64879606315377E-11,2.64879606315377E-11, +3.74061982890881E-11,3.74061982890881E-11,3.74806251143847E-11,3.21220964091799E-11,3.02072364928281E-11,2.91320466063247E-11,2.81751930518837E-11,2.72619999343934E-11,2.64879606315377E-11,2.64879606315377E-11, +1.40300765472147E-09,1.40300765472147E-09,1.40396480964213E-09,1.2240416332753E-09,1.15942505153142E-09,1.1221861056696E-09,1.08870648226042E-09,1.05662982789243E-09,1.02935805219097E-09,1.02935805219097E-09, +4.80478458918135E-08,4.80478458918135E-08,4.80257779387951E-08,4.26054694699852E-08,4.06439503014845E-08,3.94816906015646E-08,3.84260771585762E-08,3.74106809669242E-08,3.65444271804217E-08,3.65444271804217E-08, +1.44568782384882E-06,1.44568782384882E-06,1.44359143554133E-06,1.30398977292609E-06,1.25285432164058E-06,1.22160496149463E-06,1.19292487300259E-06,1.16522301450117E-06,1.14149585631365E-06,1.14149585631365E-06, +3.7223504282214E-05,3.7223504282214E-05,3.71388018126894E-05,3.41810447874195E-05,3.30765138617781E-05,3.23770877861434E-05,3.17281215849859E-05,3.10985490817194E-05,3.0556655339426E-05,3.0556655339426E-05, +0.00078982657292043,0.00078982657292043,0.0007875227258691,0.000738968615191837,0.000720242235639596,0.000707857471499141,0.000696230326666066,0.000684897710449098,0.000675077563119688,0.000675077563119688, +0.013031667602848,0.013031667602848,0.0129880430573918,0.0124322488787564,0.0122045549099161,0.0120448306467046,0.0118928523793409,0.011743948579239,0.0116134801719234,0.0116134801719234, +0.151252381135003,0.151252381135003,0.150720281977291,0.147204750922635,0.145540390964369,0.144253483857483,0.143007597916715,0.141779014634613,0.140674931802013,0.140674931802013, + +00:00:39, +4.47430589513386E-11,4.47430589513386E-11,4.48305150953728E-11,3.86020977833839E-11,3.63386101437978E-11,3.50665299274735E-11,3.39360181716723E-11,3.28572981475941E-11,3.19453491567137E-11,3.19453491567137E-11, +4.47430589513386E-11,4.47430589513386E-11,4.48305150953728E-11,3.86020977833839E-11,3.63386101437978E-11,3.50665299274735E-11,3.39360181716723E-11,3.28572981475941E-11,3.19453491567137E-11,3.19453491567137E-11, +1.64191720104939E-09,1.64191720104939E-09,1.64301168644323E-09,1.43851720557201E-09,1.36383068457733E-09,1.32076516520535E-09,1.28210049780336E-09,1.2450644191227E-09,1.21365990925994E-09,1.21365990925994E-09, +5.50176257085092E-08,5.50176257085092E-08,5.4992427967989E-08,4.8967824696952E-08,4.67506917235129E-08,4.54366945273881E-08,4.42448960439106E-08,4.30988035001802E-08,4.21236896667597E-08,4.21236896667597E-08, +1.61901890015324E-06,1.61901890015324E-06,1.61669570933835E-06,1.46502068897575E-06,1.40852286486318E-06,1.37399853140748E-06,1.34235502237605E-06,1.31180002489397E-06,1.28570047404178E-06,1.28570047404178E-06, +4.07532613885844E-05,4.07532613885844E-05,4.06615663483881E-05,3.7521572266565E-05,3.63291551894742E-05,3.55742550079102E-05,3.4874710731544E-05,3.41963024205263E-05,3.36139682354566E-05,3.36139682354566E-05, +0.000845050639084513,0.000845050639084513,0.000842612636962039,0.000792261844413044,0.000772513407262289,0.00075945604275643,0.000747211809146287,0.000735282174649698,0.000724972333132028,0.000724972333132028, +0.0136223421564811,0.0136223421564811,0.0135772015451577,0.0130141694867472,0.0127795781087122,0.0126150150766057,0.0124585869509092,0.0123053814022928,0.0121714752876369,0.0121714752876369, +0.154498785388577,0.154498785388577,0.153960144180186,0.150475418035809,0.148797648306701,0.147499457671039,0.146243446068471,0.145005259407086,0.143894578317399,0.143894578317399, + +00:00:40, +5.32914698636993E-11,5.32914698636993E-11,5.33940714833469E-11,4.61820041963804E-11,4.35174993190563E-11,4.20186067837103E-11,4.0688377616284E-11,3.94193835799516E-11,3.83493853052979E-11,3.83493853052979E-11, +5.32914698636993E-11,5.32914698636993E-11,5.33940714833469E-11,4.61820041963804E-11,4.35174993190563E-11,4.20186067837103E-11,4.0688377616284E-11,3.94193835799516E-11,3.83493853052979E-11,3.83493853052979E-11, +1.91420938439392E-09,1.91420938439392E-09,1.91546410364816E-09,1.68381361086126E-09,1.59780406019182E-09,1.54817854912369E-09,1.50368604732301E-09,1.46107877578198E-09,1.4250462428398E-09,1.4250462428398E-09, +6.27888170379285E-08,6.27888170379285E-08,6.27603532719705E-08,5.60829639330237E-08,5.35848291484267E-08,5.21038306652204E-08,5.0762405591421E-08,4.9472806496934E-08,4.83785501977398E-08,4.83785501977398E-08, +1.80799290739287E-06,1.80799290739287E-06,1.80543014789041E-06,1.64101626710105E-06,1.57875817585766E-06,1.5407116856459E-06,1.50588662653336E-06,1.47227067480473E-06,1.44363453842156E-06,1.44363453842156E-06, +4.45143194147008E-05,4.45143194147008E-05,4.44153587331033E-05,4.10877307504786E-05,3.9803113385991E-05,3.89899292448817E-05,3.82373374200556E-05,3.75077515969384E-05,3.68831883622681E-05,3.68831883622681E-05, +0.000902529767388982,0.000902529767388982,0.00089995523683347,0.000847802421071596,0.00082700739992917,0.000813259671986911,0.000800383130750622,0.000787842358943036,0.000777033133832888,0.000777033133832888, +0.0142225810807709,0.0142225810807709,0.0141759334026893,0.0136058872783766,0.0133644062106843,0.0131949871064626,0.0130341001941093,0.012876589550888,0.0127392571460375,0.0127392571460375, +0.157718172612242,0.157718172612242,0.157173242926849,0.153718714942395,0.152027918746466,0.150718600936286,0.149452612168304,0.148204980228766,0.147087840050098,0.147087840050098, + +00:00:41, +6.32153628326267E-11,6.32153628326267E-11,6.33355501427234E-11,5.50147104150581E-11,5.1890541954452E-11,5.01312613893353E-11,4.85721303605603E-11,4.70851713877675E-11,4.58346675220043E-11,4.58346675220043E-11, +6.32153628326267E-11,6.32153628326267E-11,6.33355501427234E-11,5.50147104150581E-11,5.1890541954452E-11,5.01312613893353E-11,4.85721303605603E-11,4.70851713877675E-11,4.58346675220043E-11,4.58346675220043E-11, +2.22356320077547E-09,2.22356320077547E-09,2.22500520401681E-09,1.96342267079678E-09,1.86471958547398E-09,1.80772994642205E-09,1.75670625957404E-09,1.70785905916803E-09,1.6666591060376E-09,1.6666591060376E-09, +7.14301426389502E-08,7.14301426389502E-08,7.13983149561724E-08,6.40172982302773E-08,6.12110323218531E-08,5.95466759123873E-08,5.80412504100154E-08,5.65944621857015E-08,5.53701245951753E-08,5.53701245951753E-08, +2.01356628978635E-06,2.01356628978635E-06,2.0107515487125E-06,1.83291895188457E-06,1.76448557264188E-06,1.72265816678197E-06,1.68442370776102E-06,1.64753003776001E-06,1.61618680663979E-06,1.61618680663979E-06, +4.85150508333909E-05,4.85150508333909E-05,4.8408559906962E-05,4.48879557975599E-05,4.35067533831288E-05,4.26324133908112E-05,4.18242556700515E-05,4.10411088157801E-05,4.0372505410936E-05,4.0372505410936E-05, +0.000962287203459433,0.000962287203459433,0.000959573941140011,0.000905614704150795,0.000883748946274744,0.000869293149061631,0.00085576916514602,0.000842603259023477,0.000831285119805667,0.000831285119805667, +0.0148321850644669,0.0148321850644669,0.0147840403810747,0.0142071972594102,0.0139588365899399,0.0137845450605044,0.0136191911067617,0.0134573727466001,0.0133166258288839,0.0133166258288839, +0.160910834765061,0.160910834765061,0.160359862805371,0.156934940581728,0.155231491519094,0.153911201718453,0.152635382305526,0.151378460946698,0.150254998432077,0.150254998432077, + +00:00:42, +7.46961115365812E-11,7.46961115365812E-11,7.48366940240809E-11,6.52698160752283E-11,6.16205238923261E-11,5.95632853234002E-11,5.77426589362094E-11,5.60068375051656E-11,5.4550858668631E-11,5.4550858668631E-11, +7.46961115365812E-11,7.46961115365812E-11,7.48366940240809E-11,6.52698160752283E-11,6.16205238923261E-11,5.95632853234002E-11,5.77426589362094E-11,5.60068375051656E-11,5.4550858668631E-11,5.4550858668631E-11, +2.5739568286384E-09,2.5739568286384E-09,2.57561794581562E-09,2.28112807550818E-09,2.16823616835031E-09,2.10300276576639E-09,2.04468003625979E-09,1.98886359500889E-09,1.94191013657608E-09,1.94191013657608E-09, +8.10142241921898E-08,8.10142241921898E-08,8.09789815591693E-08,7.28411168079089E-08,6.96977857290584E-08,6.78325752293593E-08,6.61478056559769E-08,6.4529240222053E-08,6.31632047641763E-08,6.31632047641763E-08, +2.23672547713395E-06,2.23672547713395E-06,2.2336468034366E-06,2.04170171997944E-06,1.96666078451446E-06,1.92078193222315E-06,1.87890036200775E-06,1.83850315988804E-06,1.80427598088623E-06,1.80427598088623E-06, +5.27638573609699E-05,5.27638573609699E-05,5.2649581065348E-05,4.89307159875309E-05,4.74484760691325E-05,4.65100471296605E-05,4.56437570624576E-05,4.4804624810996E-05,4.40901485203669E-05,4.40901485203669E-05, +0.00102434512293655,0.00102434512293655,0.00102149109645247,0.000965721939138775,0.000942761672977846,0.000927580162994086,0.000913393687248299,0.000899588773756955,0.000887752347948367,0.000887752347948367, +0.0154509580485742,0.0154509580485742,0.015401327416269,0.0148178978274982,0.0145626699021109,0.0143834905353288,0.0142136619458365,0.0140475339520313,0.013903384645478,0.013903384645478, +0.16407706019113,0.16407706019113,0.163520284994162,0.16012439011954,0.158408652342192,0.157077544544432,0.155792039061799,0.154525981931515,0.153396331461366,0.153396331461366, + +00:00:43, +8.79338914925883E-11,8.79338914925883E-11,8.80980983483012E-11,7.71349628867216E-11,7.28876837954522E-11,7.04905604268067E-11,6.83721346703474E-11,6.63530681731961E-11,6.46639248672927E-11,6.46639248672927E-11, +8.79338914925883E-11,8.79338914925883E-11,8.80980983483012E-11,7.71349628867216E-11,7.28876837954522E-11,7.04905604268067E-11,6.83721346703474E-11,6.63530681731961E-11,6.46639248672927E-11,6.46639248672927E-11, +2.9696832703675E-09,2.9696832703675E-09,2.97160081023931E-09,2.64102107886196E-09,2.51231269819706E-09,2.43787543358358E-09,2.37141720879826E-09,2.30783791255358E-09,2.25449552808456E-09,2.25449552808456E-09, +9.16176844976624E-08,9.16176844976624E-08,9.15790319451644E-08,8.26286922139442E-08,7.91174940689688E-08,7.70327466154946E-08,7.51522816852804E-08,7.33464122220059E-08,7.18263633456614E-08,7.18263633456614E-08, +2.47848674020956E-06,2.47848674020956E-06,2.47513275710836E-06,2.26836794284018E-06,2.18626983120935E-06,2.13605703954405E-06,2.09028064883433E-06,2.04614495523023E-06,2.00885060775952E-06,2.00885060775952E-06, +5.7269165051406E-05,5.7269165051406E-05,5.71468587275683E-05,5.32245077645192E-05,5.16367131238661E-05,5.06312017944238E-05,4.97041656013587E-05,4.88065837052986E-05,4.80443811203674E-05,4.80443811203674E-05, +0.0010887246560352,0.0010887246560352,0.0010857280044173,0.00102814628396888,0.00100406812591992,0.000988143327005704,0.00097327939822505,0.000958821730077357,0.000946457802338113,0.000946457802338113, +0.0160787071751061,0.0160787071751061,0.016027602580708,0.0154377907173807,0.0151757100336241,0.0149916283487305,0.0148173181765428,0.0146468793202611,0.0144993400824678,0.0144993400824678, +0.167217133668442,0.167217133668442,0.166654787305099,0.163287355000718,0.161559683461271,0.160217910450064,0.158922861557763,0.157647820123655,0.156512113747495,0.156512113747495, + +00:00:44, +1.03149106826827E-10,1.03149106826827E-10,1.03340643017821E-10,9.08172393162363E-11,8.58910847942987E-11,8.31074076661574E-11,8.0650848309704E-11,7.83103744029458E-11,7.63574390461437E-11,7.63574390461437E-11, +1.03149106826827E-10,1.03149106826827E-10,1.03340643017821E-10,9.08172393162363E-11,8.58910847942987E-11,8.31074076661574E-11,8.0650848309704E-11,7.83103744029458E-11,7.63574390461437E-11,7.63574390461437E-11, +3.41536631720504E-09,3.41536631720504E-09,3.41758383568483E-09,3.04751653026432E-09,2.9012238677072E-09,2.81653703292148E-09,2.74103403561446E-09,2.66883012488285E-09,2.60841134388052E-09,2.60841134388052E-09, +1.0332124806027E-07,1.0332124806027E-07,1.03279256591529E-07,9.34583838564931E-08,8.95465861726837E-08,8.7222384566473E-08,8.5128827211241E-08,8.31191548257498E-08,8.14320569144352E-08,8.14320569144352E-08, +2.7398960262336E-06,2.7398960262336E-06,2.73625604729762E-06,2.51395122832918E-06,2.42432888061199E-06,2.36948751046348E-06,2.31955845998833E-06,2.27144007960662E-06,2.23088895610211E-06,2.23088895610211E-06, +6.20394195446732E-05,6.20394195446732E-05,6.19088499581632E-05,5.77778504445941E-05,5.60799220143957E-05,5.50042753854735E-05,5.40138327350671E-05,5.30552980286464E-05,5.22434959337165E-05,5.22434959337165E-05, +0.00115544591162408,0.00115544591162408,0.00115230494546435,0.00109290883443907,0.00106768979486191,0.00105100420310623,0.00103544795001484,0.00102032390740232,0.0010074234186167,0.0010074234186167, +0.0167152427366504,0.0167152427366504,0.0166626770356307,0.0160666809469998,0.0157977640517403,0.0156087664893308,0.0154299684222136,0.0152552181450839,0.0151043017544288,0.0151043017544288, +0.170331336457052,0.170331336457052,0.169763644226116,0.166424123001254,0.164684863694866,0.163332577026745,0.162028125499003,0.160744249078932,0.159602616556297,0.159602616556297, + +00:00:45, +1.20583884977207E-10,1.20583884977207E-10,1.20806993399059E-10,1.06544653930238E-10,1.00850054080734E-10,9.76280031807986E-11,9.47886072487505E-11,9.20844725970362E-11,8.98339504191327E-11,8.98339504191327E-11, +1.20583884977207E-10,1.20583884977207E-10,1.20806993399059E-10,1.06544653930238E-10,1.00850054080734E-10,9.76280031807986E-11,9.47886072487505E-11,9.20844725970362E-11,8.98339504191327E-11,8.98339504191327E-11, +3.91597682723655E-09,3.91597682723655E-09,3.91854496850648E-09,3.50536923236465E-09,3.33957632564225E-09,3.24350327291493E-09,3.15796902990767E-09,3.07620664049033E-09,3.00796916333801E-09,3.00796916333801E-09, +1.16209839992228E-07,1.16209839992228E-07,1.16164657198728E-07,1.05412739828771E-07,1.01065617287891E-07,9.8480761934934E-08,9.61556308887612E-08,9.39246512123691E-08,9.20567276427723E-08,9.20567276427723E-08, +3.02202877528879E-06,3.02202877528879E-06,3.01809292388273E-06,2.77951524212467E-06,2.68188408594837E-06,2.6221071743709E-06,2.56775736750746E-06,2.51540278393806E-06,2.47139887416942E-06,2.47139887416942E-06, +6.70830814656328E-05,6.70830814656328E-05,6.69440277373784E-05,6.25992813837316E-05,6.078658114725E-05,5.96376877446797E-05,5.85811325327499E-05,5.75591038918314E-05,5.6695810133519E-05,5.6695810133519E-05, +0.0012245280008348,0.0012245280008348,0.00122124120206844,0.00116002964912047,0.0011336471376483,0.00111618332619782,0.00109991996937148,0.00108411606157716,0.0010706701079058,0.0010706701079058, +0.017360378126737,0.017360378126737,0.0173063649841014,0.0167043767645057,0.0164286421553507,0.0162347160669982,0.0160514244149707,0.0158723628120233,0.0157180823552136,0.0157180823552136, +0.17341994634654,0.17341994634654,0.172847126963265,0.169534978279399,0.167784468479057,0.166421818467379,0.165108103221381,0.163815539013463,0.162668107854091,0.162668107854091, + +00:00:46, +1.40503640402641E-10,1.40503640402641E-10,1.40763170566316E-10,1.24567678524868E-10,1.18005691606911E-10,1.14287862676112E-10,1.11016200527143E-10,1.07901732501438E-10,1.05316421078999E-10,1.05316421078999E-10, +1.40503640402641E-10,1.40503640402641E-10,1.40763170566316E-10,1.24567678524868E-10,1.18005691606911E-10,1.14287862676112E-10,1.11016200527143E-10,1.07901732501438E-10,1.05316421078999E-10,1.05316421078999E-10, +4.47684930590892E-09,4.47684930590892E-09,4.47982671966716E-09,4.01969061379844E-09,3.83232514987061E-09,3.72363277845489E-09,3.62699910759977E-09,3.53466819593881E-09,3.45781205068938E-09,3.45781205068938E-09, +1.30372683165972E-07,1.30372683165972E-07,1.3032454455441E-07,1.18578596956879E-07,1.13759369655344E-07,1.10891330120541E-07,1.08315021251159E-07,1.05844190990934E-07,1.03780903354185E-07,1.03780903354185E-07, +3.325989718516E-06,3.325989718516E-06,3.32174905034533E-06,3.06615350982919E-06,2.96001140333308E-06,2.89497949228121E-06,2.83593045222991E-06,2.77907674790216E-06,2.73141762701322E-06,2.73141762701322E-06, +7.24086219698608E-05,7.24086219698608E-05,7.22608764773829E-05,6.76973513022738E-05,6.57651851737025E-05,6.45398758816339E-05,6.34144570129497E-05,6.23263563115297E-05,6.1409660652198E-05,6.1409660652198E-05, +0.00129598906020908,0.00129598906020908,0.00129255508157254,0.00122952777376495,0.00120195960394647,0.00118370022771159,0.00116671508144195,0.00115021794835544,0.00113621778026036,0.00113621778026036, +0.0180139297909927,0.0180139297909927,0.0179584836247214,0.0173506895961385,0.0170681576265201,0.0168692912640448,0.0166815009471605,0.0164981287501094,0.0163404976100567,0.0163404976100567, +0.176483237702789,0.176483237702789,0.175905503482233,0.172620201426036,0.170858769911394,0.169485905611675,0.168163063735724,0.16686195684797,0.16570885235124,0.16570885235124, + +00:00:47, +1.63198708319851E-10,1.63198708319851E-10,1.63500192043021E-10,1.45160862113824E-10,1.37622448992932E-10,1.33345395271974E-10,1.29586932708252E-10,1.26010693606296E-10,1.23049730829591E-10,1.23049730829591E-10, +1.63198708319851E-10,1.63198708319851E-10,1.63500192043021E-10,1.45160862113824E-10,1.37622448992932E-10,1.33345395271974E-10,1.29586932708252E-10,1.26010693606296E-10,1.23049730829591E-10,1.23049730829591E-10, +5.1036987783613E-09,5.1036987783613E-09,5.10715311650865E-09,4.59596570591064E-09,4.38479062987851E-09,4.26214368944076E-09,4.15325604495202E-09,4.04926619917266E-09,3.9629308358806E-09,3.9629308358806E-09, +1.45903393555356E-07,1.45903393555356E-07,1.45852634587774E-07,1.33047179003954E-07,1.27716951308176E-07,1.24541817520247E-07,1.21693564930104E-07,1.18963268397892E-07,1.16689295896629E-07,1.16689295896629E-07, +3.65291265890341E-06,3.65291265890341E-06,3.64835928738897E-06,3.37498920065055E-06,3.25981639053707E-06,3.18919736207176E-06,3.12516011356506E-06,3.0635348947753E-06,3.01201171493428E-06,3.01201171493428E-06, +7.80245184329174E-05,7.80245184329174E-05,7.78678876808817E-05,7.30806197620365E-05,7.10242404444935E-05,6.97192894483847E-05,6.852221162041E-05,6.73654246832477E-05,6.63933996385567E-05,6.63933996385567E-05, +0.00136984627439263,0.00136984627439263,0.00136626393857971,0.00130142126522153,0.0012726456585297,0.00125357345878509,0.00123585193288652,0.00121864834642466,0.00120408536766852,0.00120408536766852, +0.0186757171790722,0.0186757171790722,0.0186188531060215,0.0180054339949719,0.0177161267827653,0.017512309287188,0.0173200158235466,0.0171323343844077,0.0169713662284221,0.0169713662284221, +0.179521481514085,0.179521481514085,0.178939038549343,0.175680069514292,0.173908036794242,0.172525105990795,0.171193272771897,0.169883766251455,0.168725111545114,0.168725111545114, + +00:00:48, +1.88986049434202E-10,1.88986049434202E-10,1.89335784021261E-10,1.6862451678865E-10,1.59989779691157E-10,1.55083527860509E-10,1.50778227696256E-10,1.46683651060529E-10,1.43302251329764E-10,1.43302251329764E-10, +1.88986049434202E-10,1.88986049434202E-10,1.89335784021261E-10,1.6862451678865E-10,1.59989779691157E-10,1.55083527860509E-10,1.50778227696256E-10,1.46683651060529E-10,1.43302251329764E-10,1.43302251329764E-10, +5.80263794268592E-09,5.80263794268592E-09,5.80664693869182E-09,5.24007041222503E-09,5.00267534774627E-09,4.8646305588005E-09,4.74224323513988E-09,4.6254193728671E-09,4.52868069689592E-09,4.52868069689592E-09, +1.62900073707059E-07,1.62900073707059E-07,1.62847142554455E-07,1.48914192968724E-07,1.43031893029233E-07,1.39524326173931E-07,1.36382163093589E-07,1.33371678735079E-07,1.30870897768814E-07,1.30870897768814E-07, +4.00396023545886E-06,4.00396023545886E-06,3.99908745967245E-06,3.70717489350171E-06,3.58243398781195E-06,3.50588290583119E-06,3.43655786135375E-06,3.36987918828896E-06,3.31427667383502E-06,3.31427667383502E-06, +8.39392502796251E-05,8.39392502796251E-05,8.37735557388395E-05,7.8757650792307E-05,7.65722606104821E-05,7.51843863591674E-05,7.39128108476882E-05,7.26846883986689E-05,7.1655390059418E-05,7.1655390059418E-05, +0.00144611589838412,0.00144611589838412,0.00144238419692135,0.00137572721487107,0.00134572280411175,0.00132582061298903,0.00130734821454927,0.0012894250799852,0.00127429084660619,0.00127429084660619, +0.0193455626973501,0.0193455626973501,0.0192872964815245,0.0186684275905039,0.0183723689300584,0.0181635903202646,0.0179667898142479,0.0177748010892871,0.0176105098575843,0.0176105098575843, +0.18253494543656,0.18253494543656,0.181947993772029,0.178714856148385,0.176932534677544,0.175539683871376,0.174198992822252,0.172881227684265,0.171717143762437,0.171717143762437, + +00:00:49, +2.18211026576274E-10,2.18211026576274E-10,2.18616165985094E-10,1.952864764089E-10,1.85423861398694E-10,1.79811400971926E-10,1.74893303494433E-10,1.70218312110481E-10,1.66367490566698E-10,1.66367490566698E-10, +2.18211026576274E-10,2.18211026576274E-10,2.18616165985094E-10,1.952864764089E-10,1.85423861398694E-10,1.79811400971926E-10,1.74893303494433E-10,1.70218312110481E-10,1.66367490566698E-10,1.66367490566698E-10, +6.58019459309263E-09,6.58019459309263E-09,6.58484722720638E-09,5.95828905927042E-09,5.69208154641041E-09,5.53708153828838E-09,5.39985273289961E-09,5.26893068701449E-09,5.16079803278482E-09,5.16079803278482E-09, +1.81465404288139E-07,1.81465404288139E-07,1.81410875296237E-07,1.66279923420813E-07,1.59802243405955E-07,1.55935426544824E-07,1.52476146041113E-07,1.49163612986937E-07,1.4641907693758E-07,1.4641907693758E-07, +4.38032367153242E-06,4.38032367153242E-06,4.37512610642669E-06,4.06389232634067E-06,3.92902828158363E-06,3.84618724012604E-06,3.77126409062343E-06,3.69924041230488E-06,3.63933685827943E-06,3.63933685827943E-06, +9.01612949500017E-05,9.01612949500017E-05,8.99863738640948E-05,8.47370086610558E-05,8.24177623657902E-05,8.0943628551685E-05,7.95946739981191E-05,7.82925326039799E-05,7.72040014424195E-05,7.72040014424195E-05, +0.00152481327934743,0.00152481327934743,0.00152093137120888,0.00145246177158856,0.00142120760374099,0.00140045834861166,0.00138122068368735,0.00136256504089071,0.00134685126015453,0.00134685126015453, +0.0200232916623638,0.0200232916623638,0.0199636396654705,0.0193394910390785,0.0190367063165439,0.0188229574776844,0.0186216466084103,0.018425353142417,0.0182577530369286,0.0182577530369286, +0.185523893838974,0.185523893838974,0.184932627638792,0.181724831511736,0.179932525901015,0.178529900298928,0.177180483184473,0.175854598440554,0.174685204201063,0.174685204201063, + +00:00:50, +2.51249254100791E-10,2.51249254100791E-10,2.51717908607423E-10,2.25503929022332E-10,2.1426939165291E-10,2.07866137091426E-10,2.02262918851981E-10,1.96939524017924E-10,1.92565808621549E-10,1.92565808621549E-10, +2.51249254100791E-10,2.51249254100791E-10,2.51717908607423E-10,2.25503929022332E-10,2.1426939165291E-10,2.07866137091426E-10,2.02262918851981E-10,1.96939524017924E-10,1.92565808621549E-10,1.92565808621549E-10, +7.44332930182543E-09,7.44332930182543E-09,7.44872705521653E-09,6.75733221723982E-09,6.4595287738807E-09,6.28589584091635E-09,6.13238257620434E-09,5.98600456978845E-09,5.86541761646123E-09,5.86541761646123E-09, +2.01706733659461E-07,2.01706733659461E-07,2.01651321523762E-07,1.85249324819248E-07,1.78130661926409E-07,1.73876250378246E-07,1.70075365899351E-07,1.66437750559614E-07,1.63431669788391E-07,1.63431669788391E-07, +4.78322250803389E-06,4.78322250803389E-06,4.7776962167022E-06,4.44635212954683E-06,4.30079225180493E-06,4.21129022996794E-06,4.1304478400204E-06,4.05277793409057E-06,3.98834520804435E-06,3.98834520804435E-06, +9.66991239985603E-05,9.66991239985603E-05,9.6514830157706E-05,9.1027253787771E-05,8.85692613300706E-05,8.70054778865696E-05,8.55762210867576E-05,8.41973440958261E-05,8.30476057566168E-05,8.30476057566168E-05, +0.00160595287799528,0.00160595287799528,0.0016019200879759,0.00153164016424232,0.00149911570276184,0.00147750241050865,0.00145748518576682,0.00143808421035791,0.00142178273968798,0.00142178273968798, +0.0207087322549941,0.0207087322549941,0.0206477113891938,0.0200184479751251,0.0197089640869594,0.0194902367586138,0.0192844127686014,0.0190838176794799,0.0189129231529612,0.0189129231529612, +0.188488587846853,0.188488587846853,0.187893195558658,0.184710262414348,0.182908269635773,0.181496013140611,0.180138000003821,0.178804132690149,0.177629544971159,0.177629544971159, + +00:00:51, +2.88508520849195E-10,2.88508520849195E-10,2.8904986573412E-10,2.59665323857717E-10,2.46901457487718E-10,2.39614682314013E-10,2.33247192690983E-10,2.27201074357298E-10,2.22246205635044E-10,2.22246205635044E-10, +2.88508520849195E-10,2.88508520849195E-10,2.8904986573412E-10,2.59665323857717E-10,2.46901457487718E-10,2.39614682314013E-10,2.33247192690983E-10,2.27201074357298E-10,2.22246205635044E-10,2.22246205635044E-10, +8.39945334857258E-09,8.39945334857258E-09,8.40571154939487E-09,7.64435477884359E-09,7.31197179194905E-09,7.11790146873964E-09,6.94655437379035E-09,6.78326438558637E-09,6.64909001620231E-09,6.64909001620231E-09, +2.23736165428485E-07,2.23736165428485E-07,2.2368074007418E-07,2.05932111764624E-07,1.98124510064153E-07,1.93452581586127E-07,1.89284287365529E-07,1.85297350088589E-07,1.82011072155014E-07,1.82011072155014E-07, +5.21390432226831E-06,5.21390432226831E-06,5.20804694997332E-06,4.85579354410643E-06,4.69894750373422E-06,4.60240022724159E-06,4.51530653467896E-06,4.43167945195417E-06,4.36248299892344E-06,4.36248299892344E-06, +0.000103561199323761,0.000103561199323761,0.000103367403804935,9.76369387944041E-05,9.50352680665995E-05,9.33783921817235E-05,9.18658688760048E-05,9.04075073516181E-05,8.91945734276149E-05,8.91945734276149E-05, +0.00168954828955219,0.00168954828955219,0.00168536410641792,0.00161327672373889,0.0015794618503512,0.00155696765152653,0.00153615667583311,0.00151599768025352,0.00149910052614088,0.00149910052614088, +0.0214017154753709,0.0214017154753709,0.0213393431581436,0.0207051249632013,0.0203889702377491,0.020165257001875,0.0199549176859157,0.0197500246495901,0.0195758503950174,0.0195758503950174, +0.191429285385995,0.191429285385995,0.190829949900125,0.187671412339472,0.185860021925417,0.184438277127418,0.183071796314793,0.18173008151983,0.180550415135818,0.180550415135818, + +00:00:52, +3.30430787421645E-10,3.30430787421645E-10,3.31055181212912E-10,2.98192353675086E-10,2.83727479971051E-10,2.7545572216757E-10,2.68237497149189E-10,2.61387564536451E-10,2.55788182824981E-10,2.55788182824981E-10, +3.30430787421645E-10,3.30430787421645E-10,3.31055181212912E-10,2.98192353675086E-10,2.83727479971051E-10,2.7545572216757E-10,2.68237497149189E-10,2.61387564536451E-10,2.55788182824981E-10,2.55788182824981E-10, +9.45644688602096E-09,9.45644688602096E-09,9.46369615029949E-09,8.6269742846202E-09,8.25681873781379E-09,8.04037319460121E-09,7.84953114723662E-09,7.66777016902907E-09,7.51879927464943E-09,7.51879927464943E-09, +2.47670643938431E-07,2.47670643938431E-07,2.4761624609931E-07,2.28442847139196E-07,2.19895940303403E-07,2.14774945108617E-07,2.10212076449579E-07,2.05850338265293E-07,2.02264328378272E-07,2.02264328378272E-07, +5.67364443309117E-06,5.67364443309117E-06,5.6674553428046E-06,5.29348412535631E-06,5.12474398488477E-06,5.02075379433163E-06,4.92706571426482E-06,4.83716072797576E-06,4.76295957852365E-06,4.76295957852365E-06, +0.000110755969524473,0.000110755969524473,0.000110552561397833,0.000104574604690995,0.000101824284232962,0.000100070821378312,9.84720270426888E-05,9.6931400690977E-05,9.56532694840172E-05,9.56532694840172E-05, +0.00177561226430456,0.00177561226430456,0.00177127633873657,0.00169738490462249,0.00166225992063731,0.00163886805350752,0.00161724923946377,0.00159631967396619,0.00157881899086015,0.00157881899086015, +0.0221020750984935,0.0221020750984935,0.0220383692095397,0.0213993514508243,0.0210765555728608,0.0208478498415517,0.0206329935357791,0.0204238067714061,0.0202463677116569,0.0202463677116569, +0.194346241225351,0.194346241225351,0.193743140029616,0.190608541489559,0.188788035726553,0.187356943895749,0.185982122082193,0.184632692974037,0.183448060751109,0.183448060751109, + +00:00:53, +3.7749425844864E-10,3.7749425844864E-10,3.7821337126815E-10,3.41542013200431E-10,3.25189234386461E-10,3.1582167237798E-10,3.07658425018097E-10,2.99916357329192E-10,2.93603677351716E-10,2.93603677351716E-10, +3.7749425844864E-10,3.7749425844864E-10,3.7821337126815E-10,3.41542013200431E-10,3.25189234386461E-10,3.1582167237798E-10,3.07658425018097E-10,2.99916357329192E-10,2.93603677351716E-10,2.93603677351716E-10, +1.06226773301321E-08,1.06226773301321E-08,1.06310651002692E-08,9.71328948288892E-09,9.30194952694769E-09,9.06105078634081E-09,8.84893541619984E-09,8.64703660359274E-09,8.48198083400759E-09,8.48198083400759E-09, +2.73632037654326E-07,2.73632037654326E-07,2.73579895143381E-07,2.52901028092889E-07,2.4356198305975E-07,2.37958693707774E-07,2.32972687169794E-07,2.28209396636891E-07,2.24303218347487E-07,2.24303218347487E-07, +6.1637455930646E-06,6.1637455930646E-06,6.1572260022646E-06,5.76071943301259E-06,5.57945968786825E-06,5.46761541366527E-06,5.36697874690905E-06,5.27046530655073E-06,5.19101208777198E-06,5.19101208777198E-06, +0.000118291866380355,0.000118291866380355,0.000118078753381457,0.00011184877719262,0.000108944798861165,0.000107091203835242,0.00010540309447344,0.000103777392565177,0.000102432049832051,0.000102432049832051, +0.0018641567277455,0.0018641567277455,0.00185966887009494,0.00178397730623771,0.00174752293340861,0.00172321674788324,0.00170077611331116,0.00167906356687074,0.0016609516560516,0.0016609516560516, +0.0228096476305531,0.0228096476305531,0.0227446264706528,0.0221009597220782,0.0217715536602149,0.0215378496632886,0.0213184752344435,0.0211049994899263,0.0209243107677358,0.0209243107677358, +0.197239707019285,0.197239707019285,0.196633012349441,0.193521906831526,0.191692560948785,0.190252262028408,0.18886922424164,0.187512212095001,0.186322724905567,0.186322724905567, + +00:00:54, +4.30215530496862E-10,4.30215530496862E-10,4.31042483066228E-10,3.90208734314008E-10,3.71764946764172E-10,3.61180745293248E-10,3.51969832299489E-10,3.43239599151938E-10,3.36139071771712E-10,3.36139071771712E-10, +4.30215530496862E-10,4.30215530496862E-10,4.31042483066228E-10,3.90208734314008E-10,3.71764946764172E-10,3.61180745293248E-10,3.51969832299489E-10,3.43239599151938E-10,3.36139071771712E-10,3.36139071771712E-10, +1.19070179636583E-08,1.19070179636583E-08,1.19167101472474E-08,1.09118991124658E-08,1.04557344854597E-08,1.01881574618929E-08,9.95286751532412E-09,9.72905123346136E-09,9.54653969605054E-09,9.54653969605054E-09, +3.01747220409734E-07,3.01747220409734E-07,3.01698765072812E-07,2.79431169836744E-07,2.69244631455256E-07,2.63124092651863E-07,2.57684946160276E-07,2.52492046336932E-07,2.48244342481788E-07,2.48244342481788E-07, +6.68553766827549E-06,6.68553766827549E-06,6.67869078675269E-06,6.25882270818861E-06,6.06440033983423E-06,5.94427718386607E-06,5.83632652972755E-06,5.73286421943998E-06,5.64790516882979E-06,5.64790516882979E-06, +0.000126177301453164,0.000126177301453164,0.000125954410620791,0.000119467963164387,0.000116405284764075,0.000114447962749037,0.00011266745568527,0.000110953837971507,0.00010953925765529,0.00010953925765529, +0.00195519280032192,0.00195519280032192,0.00195055297819084,0.00187306569346383,0.00183526307441973,0.00181002603586498,0.00178674970524252,0.00176424190639236,0.00174551121482722,0.00174551121482722, +0.0235242722659463,0.0235242722659463,0.0234579545177031,0.0228097848519837,0.0224738007888366,0.0222350935612745,0.0220112003961579,0.0217934409339582,0.0216095179021444,0.0216095179021444, +0.200109931349239,0.200109931349239,0.199499810335275,0.196411762141335,0.194573844494162,0.193124477095016,0.191733346739497,0.190368880962318,0.189174647759139,0.189174647759139, + +00:00:55, +4.89151816188275E-10,4.89151816188275E-10,4.90101330060061E-10,4.44726598603602E-10,4.23971467409292E-10,4.12039092626853E-10,4.01668956547266E-10,3.91846317760628E-10,3.83877278763112E-10,3.83877278763112E-10, +4.89151816188275E-10,4.89151816188275E-10,4.90101330060061E-10,4.44726598603602E-10,4.23971467409292E-10,4.12039092626853E-10,4.01668956547266E-10,3.91846317760628E-10,3.83877278763112E-10,3.83877278763112E-10, +1.33188667413751E-08,1.33188667413751E-08,1.33300494528973E-08,1.22319208962177E-08,1.17270532001388E-08,1.14304185636322E-08,1.11699241312772E-08,1.09222928971174E-08,1.07208688054657E-08,1.07208688054657E-08, +3.32148150481187E-07,3.32148150481187E-07,3.32105035823745E-07,3.08162887208785E-07,2.97070923910195E-07,2.90396402252251E-07,2.84472635151915E-07,2.78820730708036E-07,2.74209204611929E-07,2.74209204611929E-07, +7.24037730645665E-06,7.24037730645665E-06,7.23320847488514E-06,6.78914453808506E-06,6.58089907918738E-06,6.45205850319441E-06,6.33641717660068E-06,6.22565567800124E-06,6.13493066009128E-06,6.13493066009128E-06, +0.000134420662806018,0.000134420662806018,0.000134187941085536,0.000127440647191266,0.000124214195065149,0.000122149502696072,0.000120273477368319,0.000118469074989539,0.000116983219936467,0.000116983219936467, +0.00204873081679126,0.00204873081679126,0.00204393915245455,0.00196466101702908,0.00192549171530186,0.00189930740823781,0.00187518161408478,0.00185186643167787,0.00183250955086081,0.00183250955086081, +0.0242457908449682,0.0242457908449682,0.024178195535366,0.023525664661616,0.0231831359266411,0.0229394212958976,0.0227110092910084,0.0224889718742483,0.0223018300862008,0.0223018300862008, +0.202957159764791,0.202957159764791,0.202343774573156,0.199278358047906,0.197432130296109,0.195973831691857,0.194574730572262,0.193202938731973,0.192004066581589,0.192004066581589, + +00:00:56, +5.54903245056104E-10,5.54903245056104E-10,5.55991804644762E-10,5.05671627836437E-10,4.82366522017375E-10,4.68943025123735E-10,4.57292611605039E-10,4.46264595987967E-10,4.3733990175118E-10,4.3733990175118E-10, +5.54903245056104E-10,5.54903245056104E-10,5.55991804644762E-10,5.05671627836437E-10,4.82366522017375E-10,4.68943025123735E-10,4.57292611605039E-10,4.46264595987967E-10,4.3733990175118E-10,4.3733990175118E-10, +1.48681652854748E-08,1.48681652854748E-08,1.48810466933342E-08,1.36830107334971E-08,1.31253135743222E-08,1.27970804402758E-08,1.25092170483132E-08,1.22357503711338E-08,1.20138676450158E-08,1.20138676450158E-08, +3.64971947460428E-07,3.64971947460428E-07,3.64936066936198E-07,3.39230973980545E-07,3.27173024517095E-07,3.1990595821817E-07,3.13464571291893E-07,3.07322895781068E-07,3.02324292726587E-07,3.02324292726587E-07, +7.82964759403354E-06,7.82964759403354E-06,7.822164423068E-06,7.35306250901411E-06,7.13031612024363E-06,6.99230574092963E-06,6.86858569386769E-06,6.75016475325604E-06,6.65340727892279E-06,6.65340727892279E-06, +0.00014303031183775,0.00014303031183775,0.000142787726649939,0.000135775288269628,0.000132379959848478,0.000130204206294208,0.000128229505047821,0.000126331421436357,0.000124772244098417,0.000124772244098417, +0.00214478034519508,0.00214478034519508,0.00213983711287751,0.0020587734334129,0.00201821943308449,0.0019910715647658,0.0019660826489814,0.00194194809288136,0.0019219577576588,0.0019219577576588, +0.0249740478121741,0.0249740478121741,0.0249051942768783,0.0242484396739598,0.023899400678862,0.0236506752520626,0.0234177448034137,0.0231914356822645,0.0230010908826893,0.0230010908826893, +0.205781634824129,0.205781634824129,0.205165142796012,0.202121942076362,0.200267659357836,0.198800565481163,0.197393613825391,0.196014621674812,0.194811215790365,0.194811215790365, + +00:00:57, +6.28115241606034E-10,6.28115241606034E-10,6.29361268600602E-10,5.73664152845989E-10,5.47551040910047E-10,5.32481309695697E-10,5.19419459293737E-10,5.07063822085014E-10,4.97089472005444E-10,4.97089472005444E-10, +6.28115241606034E-10,6.28115241606034E-10,6.29361268600602E-10,5.73664152845989E-10,5.47551040910047E-10,5.32481309695697E-10,5.19419459293737E-10,5.07063822085014E-10,4.97089472005444E-10,4.97089472005444E-10, +1.65654180595533E-08,1.65654180595533E-08,1.65802303407844E-08,1.52753820794842E-08,1.46604710776989E-08,1.42979295246159E-08,1.39803920907263E-08,1.36789412125903E-08,1.34349610309533E-08,1.34349610309533E-08, +4.00360966897531E-07,4.00360966897531E-07,4.00334472846725E-07,3.72775479875705E-07,3.59688301165919E-07,3.51788249797816E-07,3.44794685269951E-07,3.38131068578467E-07,3.32721157550298E-07,3.32721157550298E-07, +8.45475770269947E-06,8.45475770269947E-06,8.44697021236578E-06,7.95198084839913E-06,7.71403840646701E-06,7.5663918973298E-06,7.43419364457095E-06,7.30774304442717E-06,7.20468029278019E-06,7.20468029278019E-06, +0.000152014580229516,0.000152014580229516,0.000151762120004943,0.000144480316617424,0.000140910982926236,0.000138620430980921,0.000136543859862371,0.000134549171637858,0.000132914614761285,0.000132914614761285, +0.00224335020545668,0.00224335020545668,0.0022382558284783,0.0021554123243443,0.00211345602933556,0.00208532843321546,0.00205946284836817,0.00203449707007104,0.00201386615745361,0.00201386615745361, +0.0257088901754,0.0257088901754,0.0256387980247356,0.0249779530704865,0.0246224392471132,0.0243687003981594,0.0241312523912683,0.02390067828962,0.0237071464055345,0.0237071464055345, +0.20858359613395,0.20858359613395,0.207964149919714,0.204942758690631,0.203080669790223,0.201604915229842,0.200190231711598,0.198804163214489,0.197596326987946,0.197596326987946, + +00:00:58, +7.09480980995968E-10,7.09480980995968E-10,7.10905021743431E-10,6.49371261272674E-10,6.20171566866222E-10,6.0328754451648E-10,5.88672358547354E-10,5.74857017175256E-10,5.63731762724422E-10,5.63731762724422E-10, +7.09480980995968E-10,7.09480980995968E-10,7.10905021743431E-10,6.49371261272674E-10,6.20171566866222E-10,6.0328754451648E-10,5.88672358547354E-10,5.74857017175256E-10,5.63731762724422E-10,5.63731762724422E-10, +1.84217117096167E-08,1.84217117096167E-08,1.84387131144709E-08,1.70198254994578E-08,1.63430481781434E-08,1.59433115953366E-08,1.55936482505344E-08,1.52619307885113E-08,1.49941180970928E-08,1.49941180970928E-08, +4.38462872690851E-07,4.38462872690851E-07,4.38448195914418E-07,4.08941785275317E-07,3.94759401392327E-07,3.86183995677314E-07,3.78602097222678E-07,3.71382933212448E-07,3.65536488923307E-07,3.65536488923307E-07, +9.11714252610494E-06,9.11714252610494E-06,9.10906328525728E-06,8.58733005637125E-06,8.33347925290979E-06,8.17571625278571E-06,8.03462880186629E-06,7.89976833656284E-06,7.79012117932262E-06,7.79012117932262E-06, +0.000161381767000902,0.000161381767000902,0.000161119441679954,0.000153564130600017,0.000149815638720682,0.000147406505905085,0.000145224835455666,0.000143130593313297,0.000141418590613144,0.000141418590613144, +0.00234444848760956,0.00234444848760956,0.0023392035354123,0.00225458631590397,0.00221121054892668,0.00218208718800443,0.0021553314985751,0.00212952279176446,0.00210824431972615,0.00210824431972615, +0.0264501674654294,0.0264501674654294,0.0263788565519731,0.0257140506484438,0.0253520983890754,0.0250933442456718,0.0248513800457216,0.0246165481481278,0.0244198452801004,0.0244198452801004, +0.211363280388784,0.211363280388784,0.210741028078675,0.207741049335408,0.205871396849216,0.204387114847668,0.20296481660861,0.20157179396487,0.200359628998675,0.200359628998675, + +00:00:59, +7.99743922692967E-10,7.99743922692967E-10,8.01368849147186E-10,7.33509324540552E-10,7.009227419674E-10,6.82042612510489E-10,6.65720792439119E-10,6.50303240273579E-10,6.37918180568117E-10,6.37918180568117E-10, +7.99743922692967E-10,7.99743922692967E-10,8.01368849147186E-10,7.33509324540552E-10,7.009227419674E-10,6.82042612510489E-10,6.65720792439119E-10,6.50303240273579E-10,6.37918180568117E-10,6.37918180568117E-10, +2.04487345605473E-08,2.04487345605473E-08,2.0468211589031E-08,1.89277283860295E-08,1.81841539436703E-08,1.77441512111592E-08,1.73597569887267E-08,1.69953514807105E-08,1.67018714559374E-08,1.67018714559374E-08, +4.79430707202498E-07,4.79430707202498E-07,4.79430577157861E-07,4.47880673587034E-07,4.32534325923981E-07,4.23239217612051E-07,4.15031190390053E-07,4.07221404751775E-07,4.0091218995657E-07,4.0091218995657E-07, +9.81826230722815E-06,9.81826230722815E-06,9.80990657285195E-06,9.26056652756513E-06,8.99007797845975E-06,8.8217040067674E-06,8.6713047921968E-06,8.52764424784509E-06,8.41112727612228E-06,8.41112727612228E-06, +0.000171140135672833,0.000171140135672833,0.000170867977171589,0.000163035093768731,0.000159102269257916,0.000156570728929629,0.00015428069497894,0.000152083924570319,0.000150292401391287,0.000150292401391287, +0.00244808256966375,0.00244808256966375,0.00244268775473104,0.00235630329723791,0.0023114912984302,0.00228135626848224,0.00225369715206118,0.00222703395309861,0.00220510107936426,0.00220510107936426, +0.0271977316962971,0.0271977316962971,0.0271252220840204,0.0264565807788428,0.0260882273787977,0.0258244568094179,0.0255779782515836,0.0253388961904776,0.0251390386041056,0.0251390386041056, +0.214120921409759,0.214120921409759,0.213496006660991,0.210517052477489,0.208640072972709,0.207147395424927,0.205717598096403,0.204317741766932,0.20310134790507,0.20310134790507, + +00:01:00, +8.99700422411579E-10,8.99700422411579E-10,9.01551647247852E-10,8.26846604395606E-10,7.90549873818907E-10,7.69477213613166E-10,7.51283373484743E-10,7.34110071267146E-10,7.20348235042996E-10,7.20348235042996E-10, +8.99700422411579E-10,8.99700422411579E-10,9.01551647247852E-10,8.26846604395606E-10,7.90549873818907E-10,7.69477213613166E-10,7.51283373484743E-10,7.34110071267146E-10,7.20348235042996E-10,7.20348235042996E-10, +2.26587962564858E-08,2.26587962564858E-08,2.26810659487932E-08,2.10110948273941E-08,2.01955038026122E-08,1.971197130557E-08,1.92900816984093E-08,1.88904220544283E-08,1.85693365252484E-08,1.85693365252484E-08, +5.23422959080685E-07,5.23422959080685E-07,5.23440424683413E-07,4.89748401258596E-07,4.73166499902676E-07,4.63105311767702E-07,4.54231682501316E-07,4.45794700833635E-07,4.38995448938008E-07,4.38995448938008E-07, +1.05596022569769E-05,1.05596022569769E-05,1.05509881131234E-05,9.97317216369705E-06,9.68529952848011E-06,9.50580590714322E-06,9.34566072880958E-06,9.19279986716188E-06,9.06912142055187E-06,9.06912142055187E-06, +0.000181297911534622,0.000181297911534622,0.000181015974176833,0.000172901532009269,0.000168779181270667,0.000166121363742349,0.00016371966820136,0.000161417371007766,0.000159544244971467,0.000159544244971467, +0.00255425913511666,0.00255425913511666,0.00254871530979752,0.00246057043889005,0.00241430586415481,0.00238314339684986,0.00235456764528863,0.00232703853364183,0.00230444455446387,0.00230444455446387, +0.0279514373262201,0.0279514373262201,0.0278777492611238,0.0272053943651324,0.0268306779676046,0.0265618905684108,0.0263108999483473,0.0260675757915234,0.0258645799091433,0.0258645799091433, +0.216856750182815,0.216856750182815,0.216229312343121,0.213271003646485,0.211386927816938,0.209885985269542,0.20844880299392,0.207042231725131,0.205821707083646,0.205821707083646, + +00:01:01, +1.01020242258381E-09,1.01020242258381E-09,1.01230812908338E-09,9.30205939275082E-10,8.89851581452603E-10,8.66374476125324E-10,8.46130427554128E-10,8.27036172200042E-10,8.11772086089001E-10,8.11772086089001E-10, +1.01020242258381E-09,1.01020242258381E-09,1.01230812908338E-09,9.30205939275082E-10,8.89851581452603E-10,8.66374476125324E-10,8.46130427554128E-10,8.27036172200042E-10,8.11772086089001E-10,8.11772086089001E-10, +2.50648475336235E-08,2.50648475336235E-08,2.50902598762662E-08,2.32825656146871E-08,2.23894394501422E-08,2.18589129303966E-08,2.13965973182003E-08,2.09589671791611E-08,2.06082310084636E-08,2.06082310084636E-08, +5.70603628772845E-07,5.70603628772845E-07,5.70642079787746E-07,5.34706765418511E-07,5.16814841762889E-07,5.05939117751033E-07,4.96358694869977E-07,4.87256410999913E-07,4.79938808968887E-07,4.79938808968887E-07, +1.13426721645548E-05,1.13426721645548E-05,1.13338206606997E-05,1.07266539774902E-05,1.042063408841E-05,1.0229497870434E-05,1.00591608361774E-05,9.89668938250496E-06,9.76555158041369E-06,9.76555158041369E-06, +0.000191863279012596,0.000191863279012596,0.000191571639928069,0.000183171730797189,0.000178854643407417,0.000176066637072202,0.000173549948725748,0.000171139102923606,0.000169182284562445,0.000169182284562445, +0.00266298419011497,0.00266298419011497,0.00265729234336327,0.00256739421076116,0.00251966112982592,0.00248745559572475,0.00245795011624343,0.00242954381485382,0.00240628216377918,0.00240628216377918, +0.0287111412191444,0.0287111412191444,0.0286362951013273,0.027960344802549,0.0275793043456003,0.0273055004273301,0.0270500004918183,0.026802442730174,0.026596325122799,0.026596325122799, +0.219570994896369,0.219570994896369,0.21894116912414,0.216003135474935,0.214112188292395,0.212603109943668,0.211158655395276,0.209745486243279,0.208520927240232,0.208520927240232, + +00:01:02, +1.13216022155743E-09,1.13216022155743E-09,1.13455160886966E-09,1.04446751072171E-09,9.99682521160698E-10,9.73572647428517E-10,9.51086656668028E-10,9.29893927148792E-10,9.12993170163326E-10,9.12993170163326E-10, +1.13216022155743E-09,1.13216022155743E-09,1.13455160886966E-09,1.04446751072171E-09,9.99682521160698E-10,9.73572647428517E-10,9.51086656668028E-10,9.29893927148792E-10,9.12993170163326E-10,9.12993170163326E-10, +2.76805001139396E-08,2.76805001139396E-08,2.77094405632368E-08,2.57554383765838E-08,2.47789488893017E-08,2.41977551365346E-08,2.36919100842545E-08,2.32134370901067E-08,2.28308945173911E-08,2.28308945173911E-08, +6.21142291715887E-07,6.21142291715887E-07,6.21205480720126E-07,5.82923169129496E-07,5.6364382974999E-07,5.51902985313183E-07,5.41572819180403E-07,5.31765563739778E-07,5.23900235311834E-07,5.23900235311834E-07, +1.2169006000109E-05,1.2169006000109E-05,1.21599412887342E-05,1.1522543688494E-05,1.11975966888756E-05,1.09942805935477E-05,1.08132940658695E-05,1.06407917007382E-05,1.05018904758573E-05,1.05018904758573E-05, +0.000202844379137751,0.000202844379137751,0.000202543138627492,0.000193853932557725,0.000189336883545262,0.00018641473600849,0.000183779691306992,0.000181257252625402,0.000179214646003244,0.000179214646003244, +0.00277426308027416,0.00277426308027416,0.00276842433431326,0.00267678039970134,0.00262756329391746,0.00259429920535787,0.00256385102160847,0.00253455639720045,0.00251062064382844,0.00251062064382844, +0.0294767026068981,0.0294767026068981,0.0294007189640037,0.0287212879381293,0.0283339631037603,0.0280551436785947,0.0277951376163412,0.027543355151876,0.0273341325313548,0.0273341325313548, +0.222263880978452,0.222263880978452,0.221631798359535,0.218713677737811,0.216816078599247,0.215298992299787,0.213847376705465,0.212427725059917,0.211199226444808,0.211199226444808, + +00:01:03, +1.26654532166625E-09,1.26654532166625E-09,1.26925686605868E-09,1.17057169000152E-09,1.12095619245492E-09,1.09196786427367E-09,1.06703388090168E-09,1.04355216092154E-09,1.02487090506134E-09,1.02487090506134E-09, +1.26654532166625E-09,1.26654532166625E-09,1.26925686605868E-09,1.17057169000152E-09,1.12095619245492E-09,1.09196786427367E-09,1.06703388090168E-09,1.04355216092154E-09,1.02487090506134E-09,1.02487090506134E-09, +3.0520046708471E-08,3.0520046708471E-08,3.05529388329218E-08,2.84436878293317E-08,2.7377686594733E-08,2.67419349801623E-08,2.61892774093356E-08,2.5666927378686E-08,2.52503083256382E-08,2.52503083256382E-08, +6.75214159192273E-07,6.75214159192273E-07,6.75306224092313E-07,6.34570684242719E-07,6.13823566063895E-07,6.01164838710686E-07,5.90040181950958E-07,5.79486691223049E-07,5.71043180434571E-07,5.71043180434571E-07, +1.30401615101588E-05,1.30401615101588E-05,1.30309109833633E-05,1.23623973113272E-05,1.20177268028458E-05,1.18016791575221E-05,1.16095737043999E-05,1.14266100592644E-05,1.12796351931156E-05,1.12796351931156E-05, +0.000214249307109963,0.000214249307109963,0.000213938588978501,0.00020495633412726,0.000200234086203924,0.000197173805420369,0.000194417009270625,0.000191779911840771,0.000189649415160581,0.000189649415160581, +0.00288810050716198,0.00288810050716198,0.00288211611408436,0.00278873412674322,0.00273801788664118,0.00270367990050893,0.00267227615359575,0.00264208221692944,0.00261746606566151,0.00261746606566151, +0.0302479830519418,0.0302479830519418,0.0301708825139295,0.0294880820313754,0.0290945131966031,0.0288106799650276,0.0285461713976152,0.0282901735316797,0.0280778627430714,0.0280778627430714, +0.22493563113331,0.22493563113331,0.224301418794574,0.221402857391445,0.219498820262297,0.217973852516283,0.216515185675568,0.21508916528319,0.213856820165849,0.213856820165849, + +00:01:04, +1.41439335626346E-09,1.41439335626346E-09,1.41746308897166E-09,1.30952196502947E-09,1.25464782429035E-09,1.22251700280086E-09,1.19491385956346E-09,1.16893893675975E-09,1.14832347366105E-09,1.14832347366105E-09, +1.41439335626346E-09,1.41439335626346E-09,1.41746308897166E-09,1.30952196502947E-09,1.25464782429035E-09,1.22251700280086E-09,1.19491385956346E-09,1.16893893675975E-09,1.14832347366105E-09,1.14832347366105E-09, +3.35984811187681E-08,3.35984811187681E-08,3.36357893616838E-08,3.13619861304737E-08,3.01999937873785E-08,2.95055676428345E-08,2.89026278774029E-08,2.83331989006478E-08,2.78801152412839E-08,2.78801152412839E-08, +7.33000136842929E-07,7.33000136842929E-07,7.33125623926282E-07,6.89828111843302E-07,6.67529838616423E-07,6.53898238711897E-07,6.41932506661096E-07,6.30589891711248E-07,6.21536646735886E-07,6.21536646735886E-07, +1.39577198062918E-05,1.39577198062918E-05,1.39483142312449E-05,1.32477947368568E-05,1.28825879353488E-05,1.26532426237898E-05,1.2449536973564E-05,1.22556716301027E-05,1.21003067905732E-05,1.21003067905732E-05, +0.000226086109956343,0.000226086109956343,0.000225766061811675,0.000216487084313859,0.000211554390058413,0.000208351945474204,0.00020546997202906,0.000202715129225366,0.000200494635423991,0.000200494635423991, +0.00300450054445208,0.00300450054445208,0.00299837188276294,0.00290325986398255,0.00285102978659964,0.0028156027069864,0.00278323065644388,0.00275212656251326,0.00272682385129542,0.00272682385129542, +0.0310248464107058,0.0310248464107058,0.0309466496858945,0.0302605877155608,0.0298608159054312,0.0295719712431024,0.0293029642160876,0.0290427606378797,0.0288273786520397,0.0288273786520397, +0.227586465377489,0.227586465377489,0.22695024659725,0.224070898611872,0.222160632165465,0.220627908132529,0.219162298437475,0.217730021425251,0.216493921304208,0.216493921304208, + +00:01:05, +1.57680709575716E-09,1.57680709575716E-09,1.580276898047E-09,1.462387947653E-09,1.40179734163887E-09,1.36624060839434E-09,1.33573119176307E-09,1.307044433168E-09,1.28433068672413E-09,1.28433068672413E-09, +1.57680709575716E-09,1.57680709575716E-09,1.580276898047E-09,1.462387947653E-09,1.40179734163887E-09,1.36624060839434E-09,1.33573119176307E-09,1.307044433168E-09,1.28433068672413E-09,1.28433068672413E-09, +3.69315184252599E-08,3.69315184252599E-08,3.69737509888895E-08,3.45257233245964E-08,3.32609188084694E-08,3.25034666539078E-08,3.18465813422401E-08,3.12266977903208E-08,3.07346395873555E-08,3.07346395873555E-08, +7.94686880830098E-07,7.94686880830098E-07,7.94850768332207E-07,7.48880040279834E-07,7.24944180392974E-07,7.10282442238846E-07,6.97427173532159E-07,6.85250889635583E-07,6.75555246942732E-07,6.75555246942732E-07, +1.49232849475952E-05,1.49232849475952E-05,1.49137586006523E-05,1.41803393068091E-05,1.37937672062506E-05,1.35505436234586E-05,1.3334744623759E-05,1.31295271168715E-05,1.29654498976644E-05,1.29654498976644E-05, +0.000238362784281353,0.000238362784281353,0.000238033577803002,0.000228454281554301,0.000223305885547873,0.000219957209246303,0.00021694660269305,0.000214070907965929,0.000211758305296203,0.000211758305296203, +0.00312346665375399,0.00312346665375399,0.00311719522486752,0.00302036145111336,0.00296660323710905,0.00293007201785819,0.002896719042587,0.00286469409076536,0.00283869878982397,0.00283869878982397, +0.0318071587975043,0.0318071587975043,0.0317278866498393,0.0310386679596671,0.030632734802135,0.0303388817467636,0.0300653807209175,0.0298009814962205,0.0295825454025923,0.0295825454025923, +0.230216601075409,0.230216601075409,0.229578495390789,0.226718022832605,0.224801730585819,0.223261374083482,0.221788928538123,0.220350505436174,0.219110740226523,0.219110740226523, + +00:01:06, +1.75495953263586E-09,1.75495953263586E-09,1.75887544869077E-09,1.63030846129049E-09,1.56351241244355E-09,1.52422590542364E-09,1.49055629643095E-09,1.45892389994453E-09,1.43393692483356E-09,1.43393692483356E-09, +1.75495953263586E-09,1.75495953263586E-09,1.75887544869077E-09,1.63030846129049E-09,1.56351241244355E-09,1.52422590542364E-09,1.49055629643095E-09,1.45892389994453E-09,1.43393692483356E-09,1.43393692483356E-09, +4.05356152513328E-08,4.05356152513328E-08,4.05833271035676E-08,3.79510278695242E-08,3.6576237581205E-08,3.57511642038212E-08,3.5036469118722E-08,3.43625755696431E-08,3.38289072787374E-08,3.38289072787374E-08, +8.60466851645408E-07,8.60466851645408E-07,8.60674573811279E-07,8.11916900772849E-07,7.86253926411401E-07,7.70502459636804E-07,7.56707276953864E-07,7.43651093333368E-07,7.33279262169607E-07,7.33279262169607E-07, +1.59384835172787E-05,1.59384835172787E-05,1.59288743165862E-05,1.51616573822927E-05,1.47528749265805E-05,1.44951779400905E-05,1.4266780520769E-05,1.40497503451585E-05,1.3876632307084E-05,1.3876632307084E-05, +0.000251087274106369,0.000251087274106369,0.000250749105282084,0.00024086597166512,0.000235496612578212,0.000231997600428667,0.000228854875775974,0.000225855203476063,0.000223448376076405,0.000223448376076405, +0.00324500170012539,0.00324500170012539,0.00323858912482175,0.00314004211162398,0.00308474186219773,0.00304709160933917,0.00301274520850119,0.00297978884263559,0.0029530950532074,0.0029530950532074, +0.0325947885490189,0.0325947885490189,0.0325144617765128,0.0318221880309392,0.0314101357135497,0.0311112779518105,0.0308332877945006,0.030564703354659,0.0303432303542661,0.0303432303542661, +0.23282625297443,0.23282625297443,0.232186376285753,0.229344448781852,0.227422329227138,0.225874462733789,0.224395286973264,0.222950826737408,0.221707484798167,0.221707484798167, + +00:01:07, +1.950097045421E-09,1.950097045421E-09,1.95450961366582E-09,1.8144947088689E-09,1.74097157493201E-09,1.69762988686894E-09,1.66052847179831E-09,1.62570069343306E-09,1.59825415949581E-09,1.59825415949581E-09, +1.950097045421E-09,1.950097045421E-09,1.95450961366582E-09,1.8144947088689E-09,1.74097157493201E-09,1.69762988686894E-09,1.66052847179831E-09,1.62570069343306E-09,1.59825415949581E-09,1.59825415949581E-09, +4.44279900920187E-08,4.44279900920187E-08,4.44817860966151E-08,4.16547872314698E-08,4.01624741486084E-08,3.92649315368321E-08,3.84883542553925E-08,3.77567093406743E-08,3.71786659842117E-08,3.71786659842117E-08, +9.3053836556036E-07,9.3053836556036E-07,9.30795837180007E-07,8.79135020599336E-07,8.51652268273147E-07,8.34749109565957E-07,8.19961680550615E-07,8.05977650436553E-07,7.94894697633533E-07,7.94894697633533E-07, +1.70049641939278E-05,1.70049641939278E-05,1.69953138303524E-05,1.61933979066975E-05,1.57615441688726E-05,1.54887640864433E-05,1.52472512264783E-05,1.50179378467416E-05,1.48354445607759E-05,1.48354445607759E-05, +0.000264267468796436,0.000264267468796436,0.000263920558128092,0.000253730145685212,0.000248134558316149,0.000244481071125397,0.000241202714988629,0.00023807592118237,0.000235572749634056,0.000235572749634056, +0.00336910796727268,0.00336910796727268,0.00336255598212319,0.0032623044686608,0.00320544868228632,0.00316666465636151,0.0031313124502343,0.00309741425869085,0.00307001621174786,0.00307001621174786, +0.0333876061893409,0.0333876061893409,0.0333062456036424,0.0326110154580502,0.0321928866863573,0.0318890285408364,0.031606554517546,0.0313337956486734,0.031109303047308,0.031109303047308, +0.235415633239426,0.235415633239426,0.234774097911718,0.231950392519179,0.23002263925304,0.228467383911426,0.226981582220763,0.225531192254758,0.224284360415739,0.224284360415739, + +00:01:08, +2.16354264143344E-09,2.16354264143344E-09,2.16850724490463E-09,2.01623352095287E-09,1.9354274452145E-09,1.88768248377697E-09,1.8468590342953E-09,1.8085693909647E-09,1.77846505338347E-09,1.77846505338347E-09, +2.16354264143344E-09,2.16354264143344E-09,2.16850724490463E-09,2.01623352095287E-09,1.9354274452145E-09,1.88768248377697E-09,1.8468590342953E-09,1.8085693909647E-09,1.77846505338347E-09,1.77846505338347E-09, +4.86266436962806E-08,4.86266436962806E-08,4.86871818673946E-08,4.56546685377594E-08,4.40369212761355E-08,4.30617994119023E-08,4.22190518771156E-08,4.14257220503814E-08,4.08004053624172E-08,4.08004053624172E-08, +1.00510564371843E-06,1.00510564371843E-06,1.00541928511459E-06,9.50736673852386E-07,9.21338306303774E-07,9.03219071511721E-07,8.87385069883871E-07,8.7242350090808E-07,8.60593336020067E-07,8.60593336020067E-07, +1.81243973178151E-05,1.81243973178151E-05,1.81147513840384E-05,1.72772319634187E-05,1.68214303319787E-05,1.65329428756262E-05,1.62777855739628E-05,1.60357084381124E-05,1.58434995301541E-05,1.58434995301541E-05, +0.000277911201071969,0.000277911201071969,0.000277555793751254,0.000267054737807637,0.000261227655072379,0.000257415519737479,0.000253997991122223,0.0002507409143987,0.000248139276270971,0.000248139276270971, +0.00349578717244557,0.00349578717244557,0.00348909762621344,0.00338715056056586,0.00332872612955512,0.00328879374783357,0.00325242347862502,0.00321757319428663,0.00318946524925659,0.00318946524925659, +0.0341854843955632,0.0341854843955632,0.0341031108026098,0.0334050199948642,0.0329808579525263,0.0326720043687145,0.0323850521346961,0.0321081299671125,0.0318806351687145,0.0318806351687145, +0.237984951486867,0.237984951486867,0.237341866448552,0.234536067471638,0.232602869319656,0.231040344940856,0.229548020273434,0.228091806450918,0.226841570039116,0.226841570039116, + +00:01:09, +2.39669927821157E-09,2.39669927821157E-09,2.40227651458102E-09,2.23689068390662E-09,2.1482100050408E-09,2.0956898144424E-09,2.05083453677412E-09,2.00879898440793E-09,1.97582613964372E-09,1.97582613964372E-09, +2.39669927821157E-09,2.39669927821157E-09,2.40227651458102E-09,2.23689068390662E-09,2.1482100050408E-09,2.0956898144424E-09,2.05083453677412E-09,2.00879898440793E-09,1.97582613964372E-09,1.97582613964372E-09, +5.31503794919935E-08,5.31503794919935E-08,5.32183743736688E-08,4.99691392758565E-08,4.82176611077197E-08,4.7159578620519E-08,4.6246149586653E-08,4.53870028165794E-08,4.47113773605988E-08,4.47113773605988E-08, +1.08437885886974E-06,1.08437885886974E-06,1.0847556213159E-06,1.026930129777E-06,9.95517099282049E-07,9.76114935912142E-07,9.59178002788733E-07,9.4318742772384E-07,9.30572788497742E-07,9.30572788497742E-07, +1.92984744526798E-05,1.92984744526798E-05,1.92888825703073E-05,1.84148523288397E-05,1.79342107007926E-05,1.76293769871042E-05,1.73600342373966E-05,1.71047027937372E-05,1.69024319909919E-05,1.69024319909919E-05, +0.000292026245103264,0.000292026245103264,0.000291662611157771,0.000280847623398274,0.000274783778271601,0.000270808788933703,0.000267248520017342,0.000263857982286272,0.000261155752669465,0.000261155752669465, +0.00362504048103134,0.00362504048103134,0.00361821533105464,0.00351458185609483,0.00345457606300464,0.00341348090159317,0.00337608043421686,0.00334026793443519,0.00331144457791832,0.00331144457791832, +0.0349882979639148,0.0349882979639148,0.0349049321456242,0.0342040735847883,0.0337739218952796,0.0334600784286205,0.033168654020682,0.0328875800185751,0.0326571005187981,0.0326571005187981, +0.240534414818418,0.240534414818418,0.239889885657285,0.237101684469349,0.23516322560787,0.23359355067574,0.232094804671425,0.230632871357546,0.229379314223054,0.229379314223054, + +00:01:10, +2.65105326337009E-09,2.65105326337009E-09,2.65730933522602E-09,2.47791434787927E-09,2.38072996953875E-09,2.32303751315897E-09,2.27382006591342E-09,2.2277361526943E-09,2.19167108014706E-09,2.19167108014706E-09, +2.65105326337009E-09,2.65105326337009E-09,2.65730933522602E-09,2.47791434787927E-09,2.38072996953875E-09,2.32303751315897E-09,2.27382006591342E-09,2.2277361526943E-09,2.19167108014706E-09,2.19167108014706E-09, +5.80188240428232E-08,5.80188240428232E-08,5.80950502139319E-08,5.46174880275251E-08,5.27235858640377E-08,5.15768805503438E-08,5.05880279141261E-08,4.96587273040098E-08,4.89296165651245E-08,4.89296165651245E-08, +1.16857417975111E-06,1.16857417975111E-06,1.16902157129731E-06,1.10792969868494E-06,1.07439971175863E-06,1.05364525190281E-06,1.03554695734488E-06,1.01847410519982E-06,1.0050365433803E-06,1.0050365433803E-06, +2.05289079433762E-05,2.05289079433762E-05,2.05194238879161E-05,1.96079730209932E-05,1.91015840013107E-05,1.87797505279753E-05,1.84956692971931E-05,1.82265830144783E-05,1.80138981934046E-05,1.80138981934046E-05, +0.000306620314685667,0.000306620314685667,0.00030624874909602,0.00029511661709907,0.000288810744507184,0.000284668663705537,0.000280962060616706,0.000277434867897482,0.000274629919924346,0.000274629919924346, +0.00375686852085455,0.00375686852085455,0.00374990982941766,0.00364459926932143,0.00358299978321454,0.00354072757906082,0.00350228490187281,0.00346550020837589,0.00343595605285852,0.00343595605285852, +0.0357959237764263,0.0357959237764263,0.0357115864733872,0.0350080503257023,0.034571953015584,0.0342531258185861,0.033957235647005,0.0336720215983115,0.0334385749782704,0.0334385749782704, +0.243064227854065,0.243064227854065,0.242418356910578,0.239647451780575,0.237703911855132,0.236127203531176,0.234622136534155,0.233154586606899,0.231897791148364,0.231897791148364, + +00:01:11, +2.92817773264049E-09,2.92817773264049E-09,2.93518485862499E-09,2.74083851435486E-09,2.63448223470748E-09,2.57119413833494E-09,2.51726261861072E-09,2.46680861313798E-09,2.42741400250183E-09,2.42741400250183E-09, +2.92817773264049E-09,2.92817773264049E-09,2.93518485862499E-09,2.74083851435486E-09,2.63448223470748E-09,2.57119413833494E-09,2.51726261861072E-09,2.46680861313798E-09,2.42741400250183E-09,2.42741400250183E-09, +6.32524475263285E-08,6.32524475263285E-08,6.33377432313128E-08,5.96198452271007E-08,5.7574418571905E-08,5.63331377836935E-08,5.52638808034299E-08,5.42598781396455E-08,5.34739605928481E-08,5.34739605928481E-08, +1.25791381311589E-06,1.25791381311589E-06,1.25843992479959E-06,1.19395577545334E-06,1.15820325896726E-06,1.13602457268142E-06,1.11670437748373E-06,1.09849414496598E-06,1.08419401243785E-06,1.08419401243785E-06, +2.18174304697762E-05,2.18174304697762E-05,2.1808112293351E-05,2.08583288443073E-05,2.03252699514417E-05,1.99857685899276E-05,1.968638380079E-05,1.94030321915836E-05,1.91795754273339E-05,1.91795754273339E-05, +0.000321701061493345,0.000321701061493345,0.000321321884282028,0.000309869471013643,0.000303316309678331,0.000299002869503792,0.000295146313099558,0.000291479256301282,0.00028856946165665,0.00028856946165665, +0.00389127139618747,0.00389127139618747,0.00388418132688709,0.00377720317423429,0.00371399804680673,0.00367053469959846,0.00363103792509595,0.00359327120385324,0.00356300098641898,0.00356300098641898, +0.0366082407681213,0.0366082407681213,0.0365229526632414,0.0358168264354577,0.0353748278991525,0.0350510237085718,0.0347506745491369,0.0344613325556396,0.0342249364758361,0.0342249364758361, +0.245574592764777,0.245574592764777,0.24492747922281,0.242173575146264,0.240225129386839,0.238641503515501,0.237130214591805,0.235657149463032,0.234397196652649,0.234397196652649, + +00:01:12, +3.2297362057874E-09,3.2297362057874E-09,3.23757305318469E-09,3.0272866029595E-09,2.91104940438857E-09,2.8417146597183E-09,2.78269455712094E-09,2.72752855131857E-09,2.6845529156104E-09,2.6845529156104E-09, +3.2297362057874E-09,3.2297362057874E-09,3.23757305318469E-09,3.0272866029595E-09,2.91104940438857E-09,2.8417146597183E-09,2.78269455712094E-09,2.72752855131857E-09,2.6845529156104E-09,2.6845529156104E-09, +6.8872584222732E-08,6.8872584222732E-08,6.89678551283508E-08,6.49972039329618E-08,6.27907338138271E-08,6.14486247199718E-08,6.029373612478E-08,5.92102653564269E-08,5.83640705125117E-08,5.83640705125117E-08, +1.35262604341963E-06,1.35262604341963E-06,1.35323957583834E-06,1.28523488061331E-06,1.24715094933313E-06,1.22347349849608E-06,1.20286871623553E-06,1.18346413958997E-06,1.16826057486E-06,1.16826057486E-06, +2.31657945972978E-05,2.31657945972978E-05,2.31567047489597E-05,2.21676749308264E-05,2.16070088079635E-05,2.12491568022712E-05,2.09338913194717E-05,2.06357539666393E-05,2.04011615839327E-05,2.04011615839327E-05, +0.00033727607340962,0.00033727607340962,0.000336889629702173,0.000325113872973077,0.000318308167207603,0.000313819070454999,0.000309808917095606,0.000305998772788027,0.000302982002207018,0.000302982002207018, +0.00402824870147675,0.00402824870147675,0.00402102951558801,0.00391239341903229,0.00384757108061778,0.00380290265457911,0.00376234002006172,0.00372358158110799,0.00369258016214695,0.00369258016214695, +0.037425129894722,0.037425129894722,0.0373389115977956,0.036630280217935,0.0361824251839524,0.0358536513080536,0.0355488502942299,0.0352553927618665,0.0350160649562871,0.0350160649562871, +0.248065709304699,0.248065709304699,0.247417449279762,0.244680257814096,0.2427270771473,0.241136648261649,0.239619235216384,0.238140754852562,0.236877724260626,0.236877724260626, + +00:01:13, +3.5574862200484E-09,3.5574862200484E-09,3.56623835941234E-09,3.33897509717019E-09,3.21210539639017E-09,3.13624402442886E-09,3.07173714265093E-09,3.01149612924851E-09,2.96467320349558E-09,2.96467320349558E-09, +3.5574862200484E-09,3.5574862200484E-09,3.56623835941234E-09,3.33897509717019E-09,3.21210539639017E-09,3.13624402442886E-09,3.07173714265093E-09,3.01149612924851E-09,2.96467320349558E-09,2.96467320349558E-09, +7.49014530039357E-08,7.49014530039357E-08,7.50076760820746E-08,7.07714406014359E-08,6.83939784868647E-08,6.69444782113003E-08,6.56984762026995E-08,6.4530546854751E-08,6.3620451285501E-08,6.3620451285501E-08, +1.45294527016932E-06,1.45294527016932E-06,1.45365556039146E-06,1.38199969903663E-06,1.34147212458474E-06,1.31621871726277E-06,1.29426447662164E-06,1.27360670385576E-06,1.25745761887543E-06,1.25745761887543E-06, +2.4575772324422E-05,2.4575772324422E-05,2.4566977767947E-05,2.35377862782869E-05,2.29485609100123E-05,2.25716608814286E-05,2.22399255016109E-05,2.1926472087868E-05,2.16803747132323E-05,2.16803747132323E-05, +0.000353352872931875,0.000353352872931875,0.00035295953299116,0.000340857444879786,0.000333793946336749,0.000329124867655444,0.000324957449976465,0.00032100098115176,0.000317875104906676,0.000317875104906676, +0.00416779953479158,0.00416779953479158,0.00416045358763944,0.00405016934012412,0.00398371859558609,0.00393783132117285,0.003896191189367,0.00385643148658648,0.00382469384850324,0.00382469384850324, +0.0382464741008633,0.0382464741008633,0.0381593461340204,0.0374482920296516,0.0369946255282112,0.0366608898341136,0.0363516444493292,0.0360540840787091,0.0358118423490928,0.0358118423490928, +0.250537774842899,0.250537774842899,0.249888461467928,0.247167700572025,0.245209951730285,0.243612833058065,0.242089392452356,0.240605595395013,0.239339565214031,0.239339565214031, + +00:01:14, +3.91328304069982E-09,3.91328304069982E-09,3.92304342310214E-09,3.67771726852259E-09,3.53941912739103E-09,3.45652080144691E-09,3.38610414707286E-09,3.32040307149924E-09,3.26945119707785E-09,3.26945119707785E-09, +3.91328304069982E-09,3.91328304069982E-09,3.92304342310214E-09,3.67771726852259E-09,3.53941912739103E-09,3.45652080144691E-09,3.38610414707286E-09,3.32040307149924E-09,3.26945119707785E-09,3.26945119707785E-09, +8.13621778124922E-08,8.13621778124922E-08,8.14804053489492E-08,7.6965335852512E-08,7.4406492560105E-08,7.2842718200723E-08,7.14998583488792E-08,7.02422488711666E-08,6.92644722153914E-08,6.92644722153914E-08, +1.55911204294499E-06,1.55911204294499E-06,1.55992909173551E-06,1.48448911623008E-06,1.44140229747718E-06,1.41449304281938E-06,1.391122250199E-06,1.36915051370346E-06,1.35201258103424E-06,1.35201258103424E-06, +2.60491546275449E-05,2.60491546275449E-05,2.60407269565916E-05,2.49704572854124E-05,2.43517062194768E-05,2.39550461772498E-05,2.36062396226977E-05,2.32769299631421E-05,2.30189525784637E-05,2.30189525784637E-05, +0.000369938915649106,0.000369938915649106,0.000369539074883334,0.000357107741127363,0.000349781210498807,0.000344927797540847,0.000340599425222591,0.000336493382047926,0.000333256270424013,0.000333256270424013, +0.00430992251099856,0.00430992251099856,0.00430245224833944,0.00419052977583777,0.00412243980035895,0.00407532007585423,0.00403259093550123,0.00399182056637361,0.00395934181229442,0.00395934181229442, +0.0390721582888052,0.0390721582888052,0.0389841410728071,0.0382707442469092,0.0378113115789123,0.0374726224800275,0.03715894055008,0.0368572903272044,0.0366121525374744,0.0366121525374744, +0.252990984394667,0.252990984394667,0.252340707903442,0.249636101781324,0.247673947409169,0.246070250879204,0.244540878046851,0.243051861432733,0.24178290850111,0.24178290850111, + +00:01:15, +4.2990834483059E-09,4.2990834483059E-09,4.30995290577963E-09,4.04542697886926E-09,3.89485827620498E-09,3.80438090416158E-09,3.72760554237274E-09,3.65603632891394E-09,3.60065782353801E-09,3.60065782353801E-09, +4.2990834483059E-09,4.2990834483059E-09,4.30995290577963E-09,4.04542697886926E-09,3.89485827620498E-09,3.80438090416158E-09,3.72760554237274E-09,3.65603632891394E-09,3.60065782353801E-09,3.60065782353801E-09, +8.82788081203805E-08,8.82788081203805E-08,8.84101718493999E-08,8.36025952168808E-08,8.08515298201753E-08,7.91662683524974E-08,7.77205353894788E-08,7.63677864438564E-08,7.53183873958554E-08,7.53183873958554E-08, +1.67137309410458E-06,1.67137309410458E-06,1.67230759344101E-06,1.59294825224816E-06,1.54718318713635E-06,1.51853545082502E-06,1.49367875326519E-06,1.4703303428386E-06,1.45215898316098E-06,1.45215898316098E-06, +2.75877510035025E-05,2.75877510035025E-05,2.75797665540249E-05,2.64675012847814E-05,2.5818243858656E-05,2.54010972165134E-05,2.50346061325131E-05,2.46888902100678E-05,2.44186522073913E-05,2.44186522073913E-05, +0.000387041588790202,0.000387041588790202,0.00038663566773545,0.000373872247094396,0.000366277455764498,0.000361235330329721,0.00035674229086374,0.000352483411424577,0.000349132935184812,0.000349132935184812, +0.00445461577466833,0.00445461577466833,0.00444702372908654,0.00433347307984566,0.00426373341462452,0.00421536780763639,0.00417153827404476,0.00412974797935438,0.0040965233318341,0.0040965233318341, +0.0399020692876379,0.0399020692876379,0.0398131831289829,0.0390975212334735,0.0386323679407747,0.0382887343843411,0.0379706240699207,0.0376648972571024,0.0374168813279595,0.0374168813279595, +0.25542553065237,0.25542553065237,0.254774378460634,0.25208565740916,0.250119256166666,0.248509092415592,0.246973881479459,0.245479741060411,0.244207940885708,0.244207940885708, + +00:01:16, +4.71694960216552E-09,4.71694960216552E-09,4.7290373719095E-09,4.44412256019431E-09,4.28039312493985E-09,4.18176139053628E-09,4.09815126740508E-09,4.02028181948912E-09,3.960162332854E-09,3.960162332854E-09, +4.71694960216552E-09,4.71694960216552E-09,4.7290373719095E-09,4.44412256019431E-09,4.28039312493985E-09,4.18176139053628E-09,4.09815126740508E-09,4.02028181948912E-09,3.960162332854E-09,3.960162332854E-09, +9.56763393575816E-08,9.56763393575816E-08,9.58220547217653E-08,9.07078698539723E-08,8.77532785943752E-08,8.5938976664126E-08,8.43840761765768E-08,8.29304838646266E-08,8.18053561466376E-08,8.18053561466376E-08, +1.78998136918342E-06,1.78998136918342E-06,1.79104473003857E-06,1.70762849323697E-06,1.65906275203501E-06,1.62859111231466E-06,1.60217686073395E-06,1.57738709702016E-06,1.5581364669873E-06,1.5581364669873E-06, +2.91933890100931E-05,2.91933890100931E-05,2.91859289699052E-05,2.80307500736084E-05,2.73499916455297E-05,2.69116172439538E-05,2.65268161997907E-05,2.6164134203487E-05,2.5881249441006E-05,2.5881249441006E-05, +0.000404668209841109,0.000404668209841109,0.000404256654119035,0.000391158377710261,0.000383290109360964,0.000378054868538508,0.000373393427991057,0.00036897843902514,0.000365512469864222,0.000365512469864222, +0.00460187701271902,0.00460187701271902,0.00459416580004224,0.00447899713431067,0.0044075976821739,0.00435797293103692,0.00431303174659956,0.00427021241010909,0.00423623720983841,0.00423623720983841, +0.0407360958229688,0.0407360958229688,0.0406463609017765,0.0399285093087752,0.0394576811457079,0.0391091126004275,0.0387865823897552,0.0384767925167352,0.038225916420407,0.038225916420407, +0.257841604015877,0.257841604015877,0.257189660800211,0.25451656106068,0.252546067724171,0.250929546103481,0.249388589991612,0.247889420154175,0.246614846935958,0.246614846935958, + +00:01:17, +5.16905297942724E-09,5.16905297942724E-09,5.18247725232905E-09,4.87593077144612E-09,4.69810047754047E-09,4.59070434040358E-09,4.49975507147973E-09,4.41512824596256E-09,4.34993610105573E-09,4.34993610105573E-09, +5.16905297942724E-09,5.16905297942724E-09,5.18247725232905E-09,4.87593077144612E-09,4.69810047754047E-09,4.59070434040358E-09,4.49975507147973E-09,4.41512824596256E-09,4.34993610105573E-09,4.34993610105573E-09, +1.03580733300595E-07,1.03580733300595E-07,1.03742103835682E-07,9.83067772308211E-08,9.51368824411626E-08,9.31856360499274E-08,9.15149860736215E-08,8.99545951072674E-08,8.87494634274456E-08,8.87494634274456E-08, +1.91519605500193E-06,1.91519605500193E-06,1.9164004353688E-06,1.82878752062263E-06,1.77729522061304E-06,1.74491142492094E-06,1.7168656376925E-06,1.6905678460384E-06,1.67019082647519E-06,1.67019082647519E-06, +3.08679138049114E-05,3.08679138049114E-05,3.08610643203081E-05,2.96620534427656E-05,2.89487856269764E-05,2.84884277611516E-05,2.80846792546994E-05,2.77044616207286E-05,2.74085384799119E-05,2.74085384799119E-05, +0.000422826025229053,0.000422826025229053,0.000422409305480554,0.000408973476090969,0.000400826528260966,0.00039539374556659,0.00039056014933889,0.000385985766960896,0.000382402177948582,0.000382402177948582, +0.00475170346680142,0.00475170346680142,0.00474387578253921,0.00462709936275868,0.00455403038369809,0.00450313339878028,0.00445706943345702,0.00441321208154707,0.00437848178606054,0.00437848178606054, +0.0415741284870863,0.0415741284870863,0.0414835648457266,0.0407635967166252,0.0402871396227344,0.0399336460665187,0.0396067047680972,0.0392928656233524,0.0390391473784964,0.0390391473784964, +0.260239392622556,0.260239392622556,0.259586740397082,0.256929004010634,0.254954569570708,0.253331798154088,0.251785188615561,0.250281082400299,0.249003809052578,0.249003809052578, + +00:01:18, +5.65767838930185E-09,5.65767838930185E-09,5.67256688332673E-09,5.34309083180658E-09,5.15016765516057E-09,5.03336080935817E-09,4.93453843426348E-09,4.8426709896015E-09,4.77205650969835E-09,4.77205650969835E-09, +5.65767838930185E-09,5.65767838930185E-09,5.67256688332673E-09,5.34309083180658E-09,5.15016765516057E-09,5.03336080935817E-09,4.93453843426348E-09,4.8426709896015E-09,4.77205650969835E-09,4.77205650969835E-09, +1.12018938411197E-07,1.12018938411197E-07,1.12197360255062E-07,1.06425921751745E-07,1.03028460797876E-07,1.00932004886099E-07,9.91387274048821E-08,9.74653242222932E-08,9.61757402197515E-08,9.61757402197515E-08, +2.04728260549542E-06,2.04728260549542E-06,2.04864093863016E-06,1.95668933795952E-06,1.90214111955556E-06,1.8677540417759E-06,1.8380003686533E-06,1.81012585339463E-06,1.78857403784269E-06,1.78857403784269E-06, +3.26131876827966E-05,3.26131876827966E-05,3.26070399621408E-05,3.13632787043641E-05,3.06164796102628E-05,3.01333680636068E-05,2.97100225294682E-05,2.93116899849316E-05,2.90023314287298E-05,2.90023314287298E-05, +0.000441522209072048,0.000441522209072048,0.00044110082086759,0.000427324812243153,0.000418893997840678,0.000413259224349356,0.000408249697934514,0.000403512628351323,0.000399809294365298,0.000399809294365298, +0.00490409194543066,0.00490409194543066,0.00489615056123973,0.00477777674268279,0.00470302884932484,0.00465084671424193,0.00460364896600796,0.00455874476728383,0.00452325494966904,0.00452325494966904, +0.0424160597095915,0.0424160597095915,0.0423246872420281,0.0416026735944349,0.0411206336683756,0.0407622255762021,0.0404308823116779,0.0401130079339184,0.0398564656006735,0.0398564656006735, +0.26261908237685,0.26261908237685,0.261965800567818,0.259323175234536,0.25734494699149,0.255716032582433,0.25416386020296,0.252654909323505,0.251375007496778,0.251375007496778, + +00:01:19, +6.18522806176038E-09,6.18522806176038E-09,6.20171862074338E-09,5.84795852977272E-09,5.63889656776579E-09,5.51199485867333E-09,5.40473456143595E-09,5.30511607964202E-09,5.22871090101078E-09,5.22871090101078E-09, +6.18522806176038E-09,6.18522806176038E-09,6.20171862074338E-09,5.84795852977272E-09,5.63889656776579E-09,5.51199485867333E-09,5.40473456143595E-09,5.30511607964202E-09,5.22871090101078E-09,5.22871090101078E-09, +1.21018910115878E-07,1.21018910115878E-07,1.21215876640972E-07,1.15092915328993E-07,1.11455129575746E-07,1.09204827507373E-07,1.07281739859055E-07,1.05488845688224E-07,1.0411018386665E-07,1.0411018386665E-07, +2.18651276528183E-06,2.18651276528183E-06,2.18803878814026E-06,2.09160429545437E-06,2.03386729974383E-06,1.99738289810685E-06,1.96584258451402E-06,1.93632060369642E-06,1.91354428730537E-06,1.91354428730537E-06, +3.44310896121882E-05,3.44310896121882E-05,3.44257400263813E-05,3.31363102181986E-05,3.23549446931177E-05,3.18482947763061E-05,3.14046905974631E-05,3.09876542067518E-05,3.06644578388311E-05,3.06644578388311E-05, +0.000460763861991954,0.000460763861991954,0.000460338325719317,0.000446219581834372,0.00043749973060426,0.000431658496077516,0.000426469245813967,0.000421566186030528,0.000417740984178951,0.000417740984178951, +0.00505903883586924,0.00505903883586924,0.00505098659604883,0.00493102581788438,0.00485458997089992,0.00480110994363867,0.00475276753889945,0.00470680780376632,0.00467055415137484,0.00467055415137484, +0.0432617837284903,0.0432617837284903,0.0431696221703082,0.0424456319429327,0.0419580554174903,0.0415947437493773,0.0412590079465112,0.0409371126163613,0.0406777642915457,0.0406777642915457, +0.26498085697944,0.26498085697944,0.264327022497752,0.261699261439375,0.259717383096099,0.258082431235771,0.256524785453049,0.25501108031489,0.253728620417793,0.253728620417793, + +00:01:20, +6.75422581006514E-09,6.75422581006514E-09,6.77246702843307E-09,6.39301040738512E-09,6.16670786132736E-09,6.0289876606242E-09,5.91269245549732E-09,5.80478423778832E-09,5.7222006081347E-09,5.7222006081347E-09, +6.75422581006514E-09,6.75422581006514E-09,6.77246702843307E-09,6.39301040738512E-09,6.16670786132736E-09,6.0289876606242E-09,5.91269245549732E-09,5.80478423778832E-09,5.7222006081347E-09,5.7222006081347E-09, +1.30609631016595E-07,1.30609631016595E-07,1.30826737584911E-07,1.24336397884672E-07,1.20445021692391E-07,1.18031854645537E-07,1.15971460837333E-07,1.14052324709725E-07,1.12579778361074E-07,1.12579778361074E-07, +2.33316459098379E-06,2.33316459098379E-06,2.33487287282721E-06,2.23380911218369E-06,2.17274695989505E-06,2.13406823554184E-06,2.1006600872409E-06,2.06941782778305E-06,2.04536599654801E-06,2.04536599654801E-06, +3.63235147706705E-05,3.63235147706705E-05,3.63190649504297E-05,3.49830489173504E-05,3.41660687926921E-05,3.36350813880838E-05,3.31705449110152E-05,3.273420612475E-05,3.23967642497016E-05,3.23967642497016E-05, +0.000480558009989385,0.000480558009989385,0.000480128870719557,0.000465664905027908,0.000456650864973434,0.000450598678980917,0.000445225892802232,0.00044015353131802,0.00043620434135191,0.00043620434135191, +0.00521654011576593,0.00521654011576593,0.00520837993378659,0.00508684271055617,0.00500871021401773,0.00495391972797009,0.00490442192194324,0.00485739810215099,0.00482037641531142,0.00482037641531142, +0.0441111965617389,0.0441111965617389,0.0440182654808279,0.0432923655963686,0.0427992988145616,0.0424310950036628,0.0420909763894081,0.0417650746212695,0.0415029384337199,0.0415029384337199, +0.267324897955997,0.267324897955997,0.266670585267737,0.26405744709387,0.262072058846285,0.260431173821642,0.258868142940452,0.25734977265945,0.256064823880025,0.256064823880025, + +00:01:21, +7.36732126644249E-09,7.36732126644249E-09,7.38747314038043E-09,6.98084801889708E-09,6.73614513992503E-09,6.58684167856006E-09,6.46088106108468E-09,6.34411499714013E-09,6.25494505982782E-09,6.25494505982782E-09, +7.36732126644249E-09,7.36732126644249E-09,7.38747314038043E-09,6.98084801889708E-09,6.73614513992503E-09,6.58684167856006E-09,6.46088106108468E-09,6.34411499714013E-09,6.25494505982782E-09,6.25494505982782E-09, +1.40821131023587E-07,1.40821131023587E-07,1.410600798631E-07,1.34186057774465E-07,1.30027307532203E-07,1.27441863800243E-07,1.25236345736416E-07,1.23183937453077E-07,1.21612514572819E-07,1.21612514572819E-07, +2.48752247032277E-06,2.48752247032277E-06,2.48942844146871E-06,2.38358689602294E-06,2.31905966790847E-06,2.27808662414117E-06,2.24272697229167E-06,2.20968952559691E-06,2.18430984594226E-06,2.18430984594226E-06, +3.82923740799779E-05,3.82923740799779E-05,3.82889310098495E-05,3.69054118332331E-05,3.60517561736967E-05,3.54956177850653E-05,3.50094633382891E-05,3.45532140447536E-05,3.42011137292269E-05,3.42011137292269E-05, +0.000500911603378802,0.000500911603378802,0.000500479430710779,0.000485667825380293,0.000476354464140326,0.000470086817175127,0.000464526665356064,0.000459281682852097,0.00045520638756773,0.00045520638756773, +0.00537659136455518,0.00537659136455518,0.00536832621962384,0.00524522313311214,0.00516538562980577,0.00510927229471565,0.00505860847178039,0.00501051215993923,0.00497271835067275,0.00497271835067275, +0.0449641959792354,0.0449641959792354,0.0448705147671008,0.0441427701931998,0.0436442595854247,0.043271175526249,0.0429266841199341,0.0425967906540264,0.042331884760076,0.042331884760076, +0.269651384685534,0.269651384685534,0.268996665880554,0.266397914458297,0.264409153083397,0.262762437935524,0.261194109142602,0.259671161563246,0.25838379188983,0.25838379188983, + +00:01:22, +8.02729419016742E-09,8.02729419016742E-09,8.04952879573249E-09,7.61420226313898E-09,7.34987926203738E-09,7.18818492102752E-09,7.05189348411333E-09,6.92567089487559E-09,6.82948595896499E-09,6.82948595896499E-09, +8.02729419016742E-09,8.02729419016742E-09,8.04952879573249E-09,7.61420226313898E-09,7.34987926203738E-09,7.18818492102752E-09,7.05189348411333E-09,6.92567089487559E-09,6.82948595896499E-09,6.82948595896499E-09, +1.51684507401211E-07,1.51684507401211E-07,1.51947112602632E-07,1.4467265212377E-07,1.40232215325133E-07,1.37464679532689E-07,1.35105888157084E-07,1.32912891209623E-07,1.31237410405016E-07,1.31237410405016E-07, +2.64987713900386E-06,2.64987713900386E-06,2.65199711969753E-06,2.54122716130696E-06,2.47309137993597E-06,2.42972098217259E-06,2.39232364879536E-06,2.35741398681791E-06,2.33065279552702E-06,2.33065279552702E-06, +4.03395937407242E-05,4.03395937407242E-05,4.03372698497683E-05,3.89053316203539E-05,3.8013926975997E-05,3.74318097834729E-05,3.69233396994691E-05,3.64465622784679E-05,3.607938541318E-05,3.607938541318E-05, +0.000521831515782172,0.000521831515782172,0.000521396903667394,0.000506235308799854,0.00049661751498188,0.000490129879569119,0.000484378515467775,0.000478957585484197,0.000474754071115648,0.000474754071115648, +0.00553918777462157,0.00553918777462157,0.0055308207082856,0.00540616239976939,0.00532461186646741,0.005267163469292,0.00521532314330659,0.00516614607237474,0.00512757616311359,0.00512757616311359, +0.0458206814752508,0.0458206814752508,0.0457262693389247,0.0449967431472468,0.0444928352094286,0.044114883246187,0.0437660293528024,0.0434321591473778,0.0431645017264694,0.0431645017264694, +0.271960494428361,0.271960494428361,0.271305439286972,0.268720843613876,0.266728842555449,0.265076399088107,0.263502858466776,0.261975420180181,0.260685696421925,0.260685696421925, + +00:01:23, +8.7370588472928E-09,8.7370588472928E-09,8.76156104596515E-09,8.29593778879374E-09,8.01071271025834E-09,7.8357752692073E-09,7.68845128402061E-09,7.5521417379785E-09,7.44849153413165E-09,7.44849153413165E-09, +8.7370588472928E-09,8.7370588472928E-09,8.76156104596515E-09,8.29593778879374E-09,8.01071271025834E-09,7.8357752692073E-09,7.68845128402061E-09,7.5521417379785E-09,7.44849153413165E-09,7.44849153413165E-09, +1.63231944717903E-07,1.63231944717903E-07,1.6352013735044E-07,1.55828027067146E-07,1.51091051434631E-07,1.48131193672953E-07,1.45610640029153E-07,1.43269444477979E-07,1.41484530870809E-07,1.41484530870809E-07, +2.8205256954109E-06,2.8205256954109E-06,2.82287692479309E-06,2.70702584424211E-06,2.63513445719672E-06,2.58926059364892E-06,2.54973685750728E-06,2.51287580927889E-06,2.48467810376925E-06,2.48467810376925E-06, +4.24671147671075E-05,4.24671147671075E-05,4.2466028016195E-05,4.09847560810538E-05,4.00545167419364E-05,3.94455786620616E-05,3.89140833025321E-05,3.84161506816093E-05,3.80334740441815E-05,3.80334740441815E-05, +0.000543324543179606,0.000543324543179606,0.000542888109726771,0.000527374242564574,0.000517446927034167,0.000510734758832406,0.000504788319628337,0.000499188109232552,0.000494854265834564,0.000494854265834564, +0.00570432416223362,0.00570432416223362,0.00569585827502641,0.00556965543788647,0.00548638418058755,0.00542758868627491,0.00537456150086271,0.00532429554360709,0.00528494566591639,0.00528494566591639, +0.0466805542412906,0.0466805542412906,0.046585430195819,0.0458541836193153,0.0453449248920255,0.0449621178071091,0.0446089120106957,0.0442710802344249,0.0440006894848554,0.0440006894848554, +0.274252402353649,0.274252402353649,0.27359707841148,0.271026412491731,0.269031301943817,0.267373230732196,0.265794563276768,0.26426271963842,0.262970707445448,0.262970707445448, + +00:01:24, +9.49966846121963E-09,9.49966846121963E-09,9.52663663336716E-09,9.02905747176177E-09,8.72158403364061E-09,8.53250487688894E-09,8.37340883835138E-09,8.22634894126007E-09,8.11476086356539E-09,8.11476086356539E-09, +9.49966846121963E-09,9.49966846121963E-09,9.52663663336716E-09,9.02905747176177E-09,8.72158403364061E-09,8.53250487688894E-09,8.37340883835138E-09,8.22634894126007E-09,8.11476086356539E-09,8.11476086356539E-09, +1.75496734691542E-07,1.75496734691542E-07,1.75812568036254E-07,1.67685137882036E-07,1.62636220545616E-07,1.59473385431898E-07,1.56782231643767E-07,1.54284926956002E-07,1.5238500808122E-07,1.5238500808122E-07, +2.99977161313224E-06,2.99977161313224E-06,3.00237227827979E-06,2.88128531609156E-06,2.80548768055619E-06,2.75700112364763E-06,2.71525968655855E-06,2.67636591518094E-06,2.64667534412413E-06,2.64667534412413E-06, +4.46768925218335E-05,4.46768925218335E-05,4.46771664875036E-05,4.31456476904802E-05,4.2175475943648E-05,4.15388606944446E-05,4.0983618478866E-05,4.04638941918173E-05,4.00652895103927E-05,4.00652895103927E-05, +0.000565397403015417,0.000565397403015417,0.000564959790276414,0.00054909143439764,0.00053884953152498,0.000531908270420018,0.000525762877848198,0.00051998004829357,0.000515513770114884,0.000515513770114884, +0.00587199497825133,0.00587199497825133,0.00586343342638162,0.00573569679906314,0.00565069744820542,0.00559054300039026,0.00553631872919484,0.00548495589762602,0.00544482229092926,0.00544482229092926, +0.0475437171393834,0.0475437171393834,0.0474479000008625,0.0467149924892734,0.0462004295377809,0.045812780540373,0.0454552336975107,0.0451134557220362,0.04484034985683,0.04484034985683, +0.276527281566614,0.276527281566614,0.275871754177676,0.273314796901441,0.271316703889589,0.269653104289236,0.268069393919194,0.26653322906644,0.26523899294965,0.26523899294965, + +00:01:25, +1.03183197332693E-08,1.03183197332693E-08,1.03479665399889E-08,9.8167069637573E-09,9.48557236182911E-09,9.28140464217043E-09,9.10975777888725E-09,8.95124993688831E-09,8.83122827066443E-09,8.83122827066443E-09, +1.03183197332693E-08,1.03183197332693E-08,1.03479665399889E-08,9.8167069637573E-09,9.48557236182911E-09,9.28140464217043E-09,9.10975777888725E-09,8.95124993688831E-09,8.83122827066443E-09,8.83122827066443E-09, +1.88513295921668E-07,1.88513295921668E-07,1.88858950820875E-07,1.80278069008013E-07,1.74901245743565E-07,1.71524341408764E-07,1.68653391584182E-07,1.65991759433635E-07,1.63971061135305E-07,1.63971061135305E-07, +3.18792475133871E-06,3.18792475133871E-06,3.19079401635351E-06,3.06431439415586E-06,2.98445626289083E-06,2.9332446314329E-06,2.88919158502043E-06,2.84818156512855E-06,2.81694041941424E-06,2.81694041941424E-06, +4.69708962514942E-05,4.69708962514942E-05,4.69726602063233E-05,4.53899831220352E-05,4.43787695106065E-05,4.37136066815585E-05,4.31338841189818E-05,4.25917223665966E-05,4.21767563841931E-05,4.21767563841931E-05, +0.000588056733358087,0.000588056733358087,0.000587618607095778,0.000571393611599052,0.000560832080463114,0.000553657151653755,0.000547308912734242,0.000541340120109358,0.000536739305956668,0.000536739305956668, +0.00604219431861165,0.00604219431861165,0.00603354031069887,0.00590428067000599,0.00581754617565891,0.00575602109727837,0.00570058964418821,0.00564812208897058,0.00560720109927911,0.00560720109927911, +0.0484100746757861,0.0484100746757861,0.0483135830549256,0.047579072328578,0.0470592517237989,0.0466667744386229,0.0463048976720177,0.0459591890646713,0.0456833863075787,0.0456833863075787, +0.278785303135313,0.278785303135313,0.278129635533337,0.275586170559166,0.273585219019553,0.271916189175476,0.270327518749439,0.268787115618732,0.267490718969243,0.267490718969243, + +00:01:26, +1.11963574323844E-08,1.11963574323844E-08,1.12289106061679E-08,1.06621793112424E-08,1.03059019901114E-08,1.00856487500335E-08,9.90063149848529E-09,9.72994265460184E-09,9.60096779024508E-09,9.60096779024508E-09, +1.11963574323844E-08,1.11963574323844E-08,1.12289106061679E-08,1.06621793112424E-08,1.03059019901114E-08,1.00856487500335E-08,9.90063149848529E-09,9.72994265460184E-09,9.60096779024508E-09,9.60096779024508E-09, +2.02317193500188E-07,2.02317193500188E-07,2.02694983821282E-07,1.93642053942905E-07,1.87920788475968E-07,1.84318275485721E-07,1.81257966546361E-07,1.78423473577966E-07,1.76276015903906E-07,1.76276015903906E-07, +3.38530136303568E-06,3.38530136303568E-06,3.38845939815861E-06,3.25642835057216E-06,3.17235185926058E-06,3.11829958140178E-06,3.07183837430443E-06,3.02862637000546E-06,2.99577557404839E-06,2.99577557404839E-06, +4.93511086226238E-05,4.93511086226238E-05,4.9354497612065E-05,4.77197527735351E-05,4.66663763576603E-05,4.59717814845068E-05,4.53668332085604E-05,4.48015789215297E-05,4.43698134610839E-05,4.43698134610839E-05, +0.000611309092112656,0.000611309092112656,0.000610871141551233,0.000594287420231745,0.000583401245782779,0.000575988060858169,0.000569433068621362,0.000563274964489876,0.000558537518082559,0.000558537518082559, +0.00621491593459616,0.00621491593459616,0.00620617272845342,0.00607540088316454,0.00598692451020454,0.00592401730403583,0.00586736870337917,0.00581378871321739,0.00577207679186428,0.00577207679186428, +0.0492795329751014,0.0492795329751014,0.0491823852712906,0.0484463273732428,0.0479212956735558,0.0475240041297616,0.0471578088219301,0.0468081853386115,0.0465297039202294,0.0465297039202294, +0.281026636117076,0.281026636117076,0.280370889475153,0.277840705115374,0.275837015971843,0.274162652827773,0.272569104157243,0.271024544501141,0.269726049609406,0.269726049609406, + +00:01:27, +1.21372790530502E-08,1.21372790530502E-08,1.21729822177087E-08,1.15689196437707E-08,1.11859470344771E-08,1.09485592849099E-08,1.07493097277569E-08,1.05656700717495E-08,1.0427197704695E-08,1.0427197704695E-08, +1.21372790530502E-08,1.21372790530502E-08,1.21729822177087E-08,1.15689196437707E-08,1.11859470344771E-08,1.09485592849099E-08,1.07493097277569E-08,1.05656700717495E-08,1.0427197704695E-08,1.0427197704695E-08, +2.16945158492372E-07,2.16945158492372E-07,2.17357536704261E-07,2.07813495007371E-07,2.01730668387589E-07,1.97890548600864E-07,1.94630941040861E-07,1.91614731601971E-07,1.89334324698474E-07,1.89334324698474E-07, +3.59222410121221E-06,3.59222410121221E-06,3.59569211193858E-06,3.45794891895561E-06,3.3694925749123E-06,3.31248085187648E-06,3.26351225742035E-06,3.21801030071271E-06,3.18348940410166E-06,3.18348940410166E-06, +5.18195252586524E-05,5.18195252586524E-05,5.18246801743083E-05,5.01369602943045E-05,4.90402889137773E-05,4.83153635580157E-05,4.76844323650638E-05,4.70954212689911E-05,4.66464132990514E-05,4.66464132990514E-05, +0.000635160956284083,0.000635160956284083,0.000634723893842728,0.000617779424360664,0.000606563618541629,0.000598907576549783,0.000592141910757141,0.000585791142788206,0.000580914973103973,0.000580914973103973, +0.00639015324288491,0.00639015324288491,0.00638132414235167,0.00624905092714218,0.00615882625041735,0.00609452559953906,0.00603665001624936,0.00598195001725208,0.00593944371963068,0.00593944371963068, +0.0501519997548012,0.0501519997548012,0.0500542141506556,0.0493166634972402,0.0487864672311356,0.0483843758513267,0.0480138736383758,0.047660351216589,0.0473792093706006,0.0473792093706006, +0.283251447584562,0.283251447584562,0.282595681073147,0.280078570182171,0.278072261421245,0.276392660729039,0.274794314591941,0.273245678995866,0.271945147070442,0.271945147070442, + +00:01:28, +1.31447395404984E-08,1.31447395404984E-08,1.31838530607629E-08,1.25405299307788E-08,1.21292361557427E-08,1.18736109123197E-08,1.16592231806829E-08,1.1461824832263E-08,1.13132851491348E-08,1.13132851491348E-08, +1.31447395404984E-08,1.31447395404984E-08,1.31838530607629E-08,1.25405299307788E-08,1.21292361557427E-08,1.18736109123197E-08,1.16592231806829E-08,1.1461824832263E-08,1.13132851491348E-08,1.13132851491348E-08, +2.32435107280113E-07,2.32435107280113E-07,2.32884670140435E-07,2.22829982969697E-07,2.16367883021172E-07,2.12277688391268E-07,2.08808456967708E-07,2.05601345808627E-07,2.03181585816594E-07,2.03181585816594E-07, +3.80902202291088E-06,3.80902202291088E-06,3.81282227908404E-06,3.66920429890784E-06,3.5762029711378E-06,3.51610974176604E-06,3.46453182611472E-06,3.41664969579143E-06,3.38039686527879E-06,3.38039686527879E-06, +5.43781542779628E-05,5.43781542779628E-05,5.43852219272603E-05,5.26436221134241E-05,5.15025126517276E-05,5.0746344484722E-05,5.00886613751341E-05,4.94752200575873E-05,4.90085217586127E-05,4.90085217586127E-05, +0.000659618721290159,0.000659618721290159,0.000659183282300713,0.000641876105343316,0.000630325708170912,0.000622422196678074,0.000615441924538175,0.000608895137127492,0.000603878158739116,0.000603878158739116, +0.00656789933540051,0.00656789933540051,0.00655898768722627,0.00642522395688642,0.00633324485637465,0.00626753962455366,0.00620842735430615,0.00615259990932799,0.00610929589363543,0.00610929589363543, +0.0510273843001469,0.0510273843001469,0.0509289787565156,0.0501899881863298,0.0496546738358619,0.0492477974252646,0.0488730001907655,0.0485155949428103,0.0482318109023415,0.0482318109023415, +0.285459902651465,0.285459902651465,0.284804173494779,0.282299933360226,0.280291120104159,0.278606376433342,0.277003312587362,0.27545068048612,0.274148171672103,0.274148171672103, + +00:01:29, +1.42225560822208E-08,1.42225560822208E-08,1.42653579434213E-08,1.35807738058318E-08,1.31394573517672E-08,1.28644356286289E-08,1.26339582682282E-08,1.24219539336359E-08,1.22627507846657E-08,1.22627507846657E-08, +1.42225560822208E-08,1.42225560822208E-08,1.42653579434213E-08,1.35807738058318E-08,1.31394573517672E-08,1.28644356286289E-08,1.26339582682282E-08,1.24219539336359E-08,1.22627507846657E-08,1.22627507846657E-08, +2.48826160759625E-07,2.48826160759625E-07,2.49315655110742E-07,2.38730316522739E-07,2.31870627375369E-07,2.27517408697953E-07,2.23827833056086E-07,2.20420298002229E-07,2.17854562956068E-07,2.17854562956068E-07, +4.03603059124245E-06,4.03603059124245E-06,4.0401864561027E-06,3.89052915841758E-06,3.79281406901103E-06,3.72951397512095E-06,3.67522206591334E-06,3.6248672669534E-06,3.58681927878401E-06,3.58681927878401E-06, +5.70290158332537E-05,5.70290158332537E-05,5.70381490054943E-05,5.52417669693379E-05,5.40550656189178E-05,5.32667285105089E-05,5.25815127329923E-05,5.19429587125359E-05,5.14581175437613E-05,5.14581175437613E-05, +0.000684688700322597,0.000684688700322597,0.00068425564273195,0.000666583861170318,0.0006546939417763,0.00064653833791678,0.00063933951479661,0.000632593349678114,0.000627433483081376,0.000627433483081376, +0.00674814698894648,0.00674814698894648,0.006739156179727,0.0066039128036626,0.00651017345962778,0.00644305269163352,0.00638269416095336,0.00632573196891605,0.00628162699490205,0.00628162699490205, +0.0519055974395036,0.0519055974395036,0.0518065896909146,0.051066210512307,0.0505258244973196,0.0501141782330964,0.0497350981020513,0.0493738263083663,0.0490874183024544,0.0490874183024544, +0.287652164497845,0.287652164497845,0.28699652802873,0.284504960265326,0.282493754843231,0.280803961590658,0.279196258786378,0.277639708480443,0.276335281877588,0.276335281877588, + +00:01:30, +1.53747129647909E-08,1.53747129647909E-08,1.54214996829999E-08,1.46935814572973E-08,1.42204628167495E-08,1.39248275779422E-08,1.36772618789857E-08,1.34497634809506E-08,1.32792735387516E-08,1.32792735387516E-08, +1.53747129647909E-08,1.53747129647909E-08,1.54214996829999E-08,1.46935814572973E-08,1.42204628167495E-08,1.39248275779422E-08,1.36772618789857E-08,1.34497634809506E-08,1.32792735387516E-08,1.32792735387516E-08, +2.66158663385915E-07,2.66158663385915E-07,2.66690992057607E-07,2.55554521605147E-07,2.48278313311927E-07,2.43648628924751E-07,2.39727584160901E-07,2.36109758758949E-07,2.33391204489534E-07,2.33391204489534E-07, +4.2735916753704E-06,4.2735916753704E-06,4.27812763453649E-06,4.12226463417944E-06,4.01966335102955E-06,3.95302770360541E-06,3.8959143590919E-06,3.84299210254333E-06,3.80308433512102E-06,3.80308433512102E-06, +5.97741416523999E-05,5.97741416523999E-05,5.9785499181163E-05,5.79334354410203E-05,5.66999779695827E-05,5.58785320810945E-05,5.5164991180044E-05,5.45006329771906E-05,5.39971917440181E-05,5.39971917440181E-05, +0.000710377123754922,0.000710377123754922,0.000709947227812829,0.000691909005854524,0.000679674663487969,0.000671262335004133,0.000663841005135487,0.00065689210198369,0.000651587273916689,0.000651587273916689, +0.00693088867464358,0.00693088867464358,0.0069218221278109,0.00678510998481527,0.00668960487296566,0.00662105779481354,0.00655944356115616,0.0065013394563498,0.00645643038407099,0.00645643038407099, +0.0527865515200397,0.0527865515200397,0.0526869590705648,0.0519452411076645,0.0513998297707611,0.050983429191469,0.0506000785243694,0.0502349566270235,0.0499459428771976,0.0499459428771976, +0.289828394395126,0.289828394395126,0.289172904108386,0.286693814554532,0.284680326571655,0.282985575971287,0.281373311965125,0.279812920636694,0.278506634317212,0.278506634317212, + +00:01:31, +1.66053664949625E-08,1.66053664949625E-08,1.66564540579733E-08,1.58830545843909E-08,1.53762738665684E-08,1.50587479351139E-08,1.4793046225851E-08,1.45491235069639E-08,1.43666954117481E-08,1.43666954117481E-08, +1.66053664949625E-08,1.66053664949625E-08,1.66564540579733E-08,1.58830545843909E-08,1.53762738665684E-08,1.50587479351139E-08,1.4793046225851E-08,1.45491235069639E-08,1.43666954117481E-08,1.43666954117481E-08, +2.84474202056554E-07,2.84474202056554E-07,2.85052429873238E-07,2.733438705592E-07,2.65631588804284E-07,2.60711493243266E-07,2.56547440408421E-07,2.5270910654883E-07,2.49830662591821E-07,2.49830662591821E-07, +4.52205354849053E-06,4.52205354849053E-06,4.52699523885139E-06,4.36475832985747E-06,4.25709476068628E-06,4.18699150691214E-06,4.1269464855995E-06,4.07135966895729E-06,4.02952609584751E-06,4.02952609584751E-06, +6.26155745809952E-05,6.26155745809952E-05,6.2629321402879E-05,6.0720679480895E-05,5.94392914985339E-05,5.85837833800714E-05,5.78411132458877E-05,5.71502504559096E-05,5.66277473777884E-05,5.66277473777884E-05, +0.000736690138595865,0.000736690138595865,0.00073626420652886,0.000717857768867323,0.000705274133858536,0.000696600440130637,0.000688952637311521,0.000681797634334553,0.000676345778088531,0.000676345778088531, +0.00711611656716804,0.00711611656716804,0.00710697774003536,0.00696880771332146,0.00687153159997409,0.00680154761910004,0.006738668370904,0.00667941532226931,0.00663369911084942,0.00663369911084942, +0.0536701603838065,0.0536701603838065,0.0535700005033265,0.0528269921406593,0.0522766017328907,0.0518554627280862,0.0514678541150609,0.0510988987113912,0.0508072974283591,0.0508072974283591, +0.291988751730732,0.291988751730732,0.291333459335012,0.288866657951972,0.286850994357153,0.285151377489935,0.283534629056892,0.281970472785709,0.280662383811748,0.280662383811748, + +00:01:32, +1.79188499839844E-08,1.79188499839844E-08,1.79745748234751E-08,1.71534714175093E-08,1.66110859290955E-08,1.62703298538316E-08,1.59853937576939E-08,1.57240728572283E-08,1.55290263485641E-08,1.55290263485641E-08, +1.79188499839844E-08,1.79188499839844E-08,1.79745748234751E-08,1.71534714175093E-08,1.66110859290955E-08,1.62703298538316E-08,1.59853937576939E-08,1.57240728572283E-08,1.55290263485641E-08,1.55290263485641E-08, +3.0381562482745E-07,3.0381562482745E-07,3.04442984717646E-07,2.92140901117741E-07,2.83972357019968E-07,2.78747389636317E-07,2.7432836618339E-07,2.70258946701621E-07,2.67213312212416E-07,2.67213312212416E-07, +4.78177088383194E-06,4.78177088383194E-06,4.78714512232663E-06,4.61836431232028E-06,4.50545869999777E-06,4.43175239114561E-06,4.36866262196054E-06,4.31031181004249E-06,4.26648499330913E-06,4.26648499330913E-06, +6.55553681267564E-05,6.55553681267564E-05,6.55716753364412E-05,6.36055619496882E-05,6.22750591766538E-05,6.13845218685859E-05,6.06119067909166E-05,5.98938301584591E-05,5.93517989372156E-05,5.93517989372156E-05, +0.000763633807986943,0.000763633807986943,0.000763212663659053,0.000744436294620749,0.000731498529307509,0.000722558822373061,0.000714680570663989,0.000707316105187361,0.000701715160909182,0.000701715160909182, +0.00730382255379546,0.00730382255379546,0.00729461493465784,0.00715499790713972,0.00705594584439461,0.00698451454976239,0.00692036110647542,0.00685995221686781,0.00681342592326387,0.00681342592326387, +0.054556339344192,0.054556339344192,0.0544556290650435,0.0537113772907796,0.0531560539580212,0.0527301927580129,0.0523383390130648,0.0519655668494568,0.0516713962298981,0.0516713962298981, +0.294133394032395,0.294133394032395,0.293478349500626,0.291023650274263,0.289005915425629,0.287301522229462,0.285680365175682,0.284112518954638,0.282802683395464,0.282802683395464, + +00:01:33, +1.93196787940432E-08,1.93196787940432E-08,1.93803987892623E-08,1.85092918017359E-08,1.79292735983825E-08,1.75638834786954E-08,1.72585621349686E-08,1.69788241392023E-08,1.677044917441E-08,1.677044917441E-08, +1.93196787940432E-08,1.93196787940432E-08,1.93803987892623E-08,1.85092918017359E-08,1.79292735983825E-08,1.75638834786954E-08,1.72585621349686E-08,1.69788241392023E-08,1.677044917441E-08,1.677044917441E-08, +3.24227059453515E-07,3.24227059453515E-07,3.24906958659189E-07,3.11989435212938E-07,3.03343795229356E-07,2.97798968772423E-07,2.9311257895022E-07,2.88801130209021E-07,2.85580769885588E-07,2.85580769885588E-07, +5.05310474870567E-06,5.05310474870567E-06,5.05893956096982E-06,4.8834431058757E-06,4.76511202501611E-06,4.68766378519988E-06,4.62141333818084E-06,4.56019674450403E-06,4.51430782837865E-06,4.51430782837865E-06, +6.8595586005956E-05,6.8595586005956E-05,6.86146309075845E-05,6.65901561533933E-05,6.52093446883194E-05,6.42827978268407E-05,6.34794105506933E-05,6.27334020461324E-05,6.21713719347148E-05,6.21713719347148E-05, +0.000791214110742977,0.000791214110742977,0.000790798599303886,0.000771650641994075,0.000758353941610913,0.000749143567173322,0.000741030881588399,0.000733453590629535,0.00072770150561595,0.00072770150561595, +0.00749399824325386,0.00749399824325386,0.00748472534854574,0.00734367219835896,0.00724283951928662,0.00716995068142977,0.00710451399350832,0.00704294249894472,0.00699560327671961,0.00699560327671961, +0.0554450051627422,0.0554450051627422,0.0553437612767287,0.0545983117246036,0.0540381014945978,0.053607534660347,0.0532114488156776,0.0528348767814859,0.0525381550049465,0.0525381550049465, +0.296262476992114,0.296262476992114,0.29560772861058,0.29316494945556,0.291145245184518,0.289436164464309,0.287810673639454,0.286239211389965,0.284927684338833,0.284927684338833, + +00:01:34, +2.08125554457195E-08,2.08125554457195E-08,2.08786509590108E-08,1.99551623423781E-08,1.93353957515957E-08,1.89439010201892E-08,1.86169892681738E-08,1.83177687342682E-08,1.80953245935591E-08,1.80953245935591E-08, +2.08125554457195E-08,2.08125554457195E-08,2.08786509590108E-08,1.99551623423781E-08,1.93353957515957E-08,1.89439010201892E-08,1.86169892681738E-08,1.83177687342682E-08,1.80953245935591E-08,1.80953245935591E-08, +3.45753931747295E-07,3.45753931747295E-07,3.46489958130638E-07,3.32934597599738E-07,3.23790373533549E-07,3.17910162704064E-07,3.12943567901E-07,3.08378772356086E-07,3.04975912370901E-07,3.04975912370901E-07, +5.33642259662802E-06,5.33642259662802E-06,5.34274724548554E-06,5.16036168453278E-06,5.03641803935196E-06,4.95508553515795E-06,4.88555559268458E-06,4.82136906134487E-06,4.77334776622629E-06,4.77334776622629E-06, +7.17383016920497E-05,7.17383016920497E-05,7.17602678469185E-05,6.96765453825147E-05,6.82442219709286E-05,6.72806718975934E-05,6.64456736822752E-05,6.56710065797615E-05,6.50885024513642E-05,6.50885024513642E-05, +0.000819436940934298,0.000819436940934298,0.000819027928455636,0.000799506783903577,0.000785846377434791,0.000776360675860988,0.000768009563053676,0.000760216083887243,0.000754310812871102,0.000754310812871102, +0.00768663497438969,0.00768663497438969,0.00767730034589974,0.00753482194215097,0.00743220425599637,0.00735784782699664,0.00729111897587955,0.00722837824476864,0.00718022334287012,0.00718022334287012, +0.0563360760263451,0.0563360760263451,0.0562343150820952,0.0554877120720456,0.0549226608420832,0.0544874052552536,0.0540871005556737,0.0537067456772798,0.0534074909031666,0.0534074909031666, +0.29837615448979,0.29837615448979,0.297721748905837,0.295290711572261,0.29326913724581,0.291555456683604,0.289925705993051,0.288350700580215,0.287037536170952,0.287037536170952, + +00:01:35, +2.24023747853158E-08,2.24023747853158E-08,2.24742497297816E-08,2.14959216113685E-08,2.08342007275431E-08,2.04150618914126E-08,2.00652984180449E-08,1.97454818715538E-08,1.95081962500199E-08,1.95081962500199E-08, +2.24023747853158E-08,2.24023747853158E-08,2.24742497297816E-08,2.14959216113685E-08,2.08342007275431E-08,2.04150618914126E-08,2.00652984180449E-08,1.97454818715538E-08,1.95081962500199E-08,1.95081962500199E-08, +3.68442983748821E-07,3.68442983748821E-07,3.69238912193909E-07,3.55022834287111E-07,3.45357873404306E-07,3.39126203382688E-07,3.33866112423312E-07,3.29036271174741E-07,3.25442895117049E-07,3.25442895117049E-07, +5.6320982575461E-06,5.6320982575461E-06,5.63894327132515E-06,5.44949346231968E-06,5.31974648573667E-06,5.23438389673984E-06,5.16145272530898E-06,5.09418971336575E-06,5.04396433014789E-06,5.04396433014789E-06, +7.4985597966653E-05,7.4985597966653E-05,7.50106752372157E-05,7.28668224537521E-05,7.13817747566987E-05,7.03802146318207E-05,6.95127553126547E-05,6.87086942697888E-05,6.81052366873211E-05,6.81052366873211E-05, +0.000848308107509448,0.000848308107509448,0.000847906480609848,0.000828010606914214,0.000813981757911319,0.000804216065218139,0.000795622524161613,0.000787609494875699,0.000781549000304223,0.000781549000304223, +0.00788172382465024,0.00788172382465024,0.00787233102679435,0.0077284382255304,0.00762403141293656,0.00754819752634045,0.00748016772439714,0.00741625125675395,0.00736727801830052,0.00736727801830052, +0.0572294715247708,0.0572294715247708,0.0571272098254274,0.0563794964029808,0.0558096499281982,0.0553697227813549,0.0549652126787802,0.0545810921137851,0.0542793224784584,0.0542793224784584, +0.300474578616536,0.300474578616536,0.299820560884973,0.297401090867349,0.29537774344878,0.293659549613947,0.292025612030805,0.290447135278345,0.289132386701637,0.289132386701637, + +00:01:36, +2.4094229210893E-08,2.4094229210893E-08,2.41723121504765E-08,2.31366054133362E-08,2.24306315656148E-08,2.19822379054144E-08,2.16083033563378E-08,2.12667277624239E-08,2.10137958489922E-08,2.10137958489922E-08, +2.4094229210893E-08,2.4094229210893E-08,2.41723121504765E-08,2.31366054133362E-08,2.24306315656148E-08,2.19822379054144E-08,2.16083033563378E-08,2.12667277624239E-08,2.10137958489922E-08,2.10137958489922E-08, +3.92342291700112E-07,3.92342291700112E-07,3.93202090606844E-07,3.78301930770355E-07,3.68093406029171E-07,3.61493640983557E-07,3.5592630038096E-07,3.50819325712536E-07,3.47027170542114E-07,3.47027170542114E-07, +5.94051192619326E-06,5.94051192619326E-06,5.94790912684603E-06,5.75121828168659E-06,5.61547353565201E-06,5.52593152582726E-06,5.44947444838418E-06,5.37902600875228E-06,5.32652339347798E-06,5.32652339347798E-06, +7.83395664730169E-05,7.83395664730169E-05,7.83679510632038E-05,7.616308925428E-05,7.46240961168958E-05,7.35835060367072E-05,7.26827240894754E-05,7.18485252285595E-05,7.12236305144266E-05,7.12236305144266E-05, +0.000877833333957182,0.000877833333957182,0.000877439999416739,0.000857167910891965,0.0008427659182563,0.000832715567085365,0.000823875589747355,0.000815639649790534,0.000809421902095809,0.000809421902095809, +0.0080792556183859,0.0080792556183859,0.00806980823553869,0.00792451187592602,0.00781831208418,0.00774099105485524,0.00767165164530895,0.00760655307195447,0.00755675893302814,0.00755675893302814, +0.0581251126285628,0.0581251126285628,0.0580223662297871,0.0572735842042447,0.0566989880865132,0.0562544068734719,0.0558457050215027,0.055457836053051,0.0551535696670108,0.0551535696670108, +0.30255789969766,0.30255789969766,0.301904313325886,0.29949623977439,0.297471213882404,0.295748592241897,0.29411053981885,0.292528662523843,0.29121238204324,0.29121238204324, + +00:01:37, +2.58934139558223E-08,2.58934139558223E-08,2.59781592380727E-08,2.48824521101318E-08,2.41298313039294E-08,2.36504985319446E-08,2.32510135860353E-08,2.28864647944846E-08,2.26170483379522E-08,2.26170483379522E-08, +2.58934139558223E-08,2.58934139558223E-08,2.59781592380727E-08,2.48824521101318E-08,2.41298313039294E-08,2.36504985319446E-08,2.32510135860353E-08,2.28864647944846E-08,2.26170483379522E-08,2.26170483379522E-08, +4.17501283817962E-07,4.17501283817962E-07,4.18429121685574E-07,4.02821030057915E-07,3.92045430455125E-07,3.85060362033762E-07,3.79171546200966E-07,3.73774954109936E-07,3.69775506123529E-07,3.69775506123529E-07, +6.26205014860274E-06,6.26205014860274E-06,6.27003267960884E-06,6.06592240002271E-06,5.92398177705624E-06,5.83010746709299E-06,5.74999683592619E-06,5.67625160077679E-06,5.6213971696154E-06,5.6213971696154E-06, +8.18023072721465E-05,8.18023072721465E-05,8.18342017640072E-05,7.95674562887697E-05,7.79732880086496E-05,7.6892635126112E-05,7.59576577341783E-05,7.50925687249892E-05,7.44457490311523E-05,7.44457490311523E-05, +0.000908018258006632,0.000908018258006632,0.000907634142371389,0.000886984408695627,0.000872204607426805,0.00086186492800771,0.000852774500019734,0.000844312290739073,0.000837935268600878,0.000837935268600878, +0.0082792209349757,0.0082792209349757,0.00826972256886102,0.00812303346956671,0.00801503710787078,0.00793621943180452,0.00786556188863103,0.00779927497037764,0.00774865745882383,0.00774865745882383, +0.0590229216672738,0.0590229216672738,0.0589197063755498,0.058169896356999,0.0575905960343845,0.0571413785407097,0.0567284987892934,0.056336898820527,0.0560301537656928,0.0560301537656928, +0.304626266315329,0.304626266315329,0.30397315330722,0.301576308941192,0.299549696907484,0.297822731836135,0.296180635717121,0.294595427664514,0.293277666632154,0.293277666632154, + +00:01:38, +2.78054324286436E-08,2.78054324286436E-08,2.78973213504072E-08,2.67389080025643E-08,2.5937148335459E-08,2.54251162124172E-08,2.49986396197838E-08,2.46098507839171E-08,2.43230771461883E-08,2.43230771461883E-08, +2.78054324286436E-08,2.78054324286436E-08,2.78973213504072E-08,2.67389080025643E-08,2.5937148335459E-08,2.54251162124172E-08,2.49986396197838E-08,2.46098507839171E-08,2.43230771461883E-08,2.43230771461883E-08, +4.439707578588E-07,4.439707578588E-07,4.44971009956192E-07,4.28630650486379E-07,4.17263771524274E-07,4.09875607336901E-07,4.03650608760327E-07,3.97951511479662E-07,3.93736002291234E-07,3.93736002291234E-07, +6.59710580680795E-06,6.59710580680795E-06,6.60570816084186E-06,6.39399847431715E-06,6.24566020023593E-06,6.1472971407635E-06,6.06340231097118E-06,5.9862464756429E-06,5.92896420018921E-06,5.92896420018921E-06, +8.53759284016978E-05,8.53759284016978E-05,8.54115417883791E-05,8.30820422292935E-05,8.14314608245003E-05,8.03096994736614E-05,7.93396425977238E-05,7.84429027417539E-05,7.77736661200392E-05,7.77736661200392E-05, +0.000938868431364491,0.000938868431364491,0.000938494480541573,0.000917465725906879,0.000902303487817805,0.000891669808919375,0.000882324910240282,0.000873633075410334,0.000867094766011455,0.000867094766011455, +0.00848161011677952,0.00848161011677952,0.00847206438392026,0.00832399333968607,0.00821419707445647,0.0081338734284968,0.00806188935629914,0.00799440798312254,0.00794296471735736,0.00794296471735736, +0.0599228223080419,0.0599228223080419,0.0598191536792662,0.0590683551144594,0.0584843958512296,0.0580305601448842,0.0576135165350592,0.0572182030836977,0.056908997410778,0.056908997410778, +0.306679825330932,0.306679825330932,0.306027226229517,0.303641447253121,0.301613339178475,0.299882113969337,0.298236044401053,0.296647574377979,0.295328383250036,0.295328383250036, + +00:01:39, +2.98360016079935E-08,2.98360016079935E-08,2.99355436142563E-08,2.87116327680852E-08,2.78581418208772E-08,2.73115717318523E-08,2.68565983153445E-08,2.64422482849358E-08,2.61372094815857E-08,2.61372094815857E-08, +2.98360016079935E-08,2.98360016079935E-08,2.99355436142563E-08,2.87116327680852E-08,2.78581418208772E-08,2.73115717318523E-08,2.68565983153445E-08,2.64422482849358E-08,2.61372094815857E-08,2.61372094815857E-08, +4.71802898469627E-07,4.71802898469627E-07,4.72880153589664E-07,4.55782703317499E-07,4.4379963759528E-07,4.35989989688111E-07,4.29413609066229E-07,4.23398707581749E-07,4.18958110117671E-07,4.18958110117671E-07, +6.94607810175836E-06,6.94607810175836E-06,6.95533614810155E-06,6.73584554399355E-06,6.58090418181295E-06,6.47789232754384E-06,6.39007963107962E-06,6.30939693850125E-06,6.24960934139324E-06,6.24960934139324E-06, +8.90625454377852E-05,8.90625454377852E-05,8.9102093152859E-05,8.67089734682477E-05,8.5000732944817E-05,8.38368047686072E-05,8.28307732190294E-05,8.19016135351441E-05,8.12094640077689E-05,8.12094640077689E-05, +0.000970389319488126,0.000970389319488126,0.000970026498332119,0.000948617400597466,0.000933068134996617,0.00092213578486606,0.000912532390439784,0.000903607576782622,0.00089690597605677,0.00089690597605677, +0.0086864132769202,0.0086864132769202,0.00867682380614754,0.00852738158454889,0.0084157823347446,0.0083339435762872,0.00826062471014677,0.00819194290034514,0.00813967158817015,0.00813967158817015, +0.0608247395345012,0.0608247395345012,0.0607206328728442,0.0599688840799792,0.0593803109571389,0.0589218753792825,0.0585006821380031,0.0581016728310479,0.0577900245569971,0.0577900245569971, +0.308718721907121,0.308718721907121,0.30806667583609,0.305691801856094,0.30366228566502,0.301926882539747,0.300276908882995,0.298685244692873,0.297364673044739,0.297364673044739, + +00:01:40, +3.19910574913481E-08,3.19910574913481E-08,3.20987914074355E-08,3.08065049531378E-08,2.98985871568568E-08,2.9315559646542E-08,2.8830518266821E-08,2.83892299551399E-08,2.80649816834352E-08,2.80649816834352E-08, +3.19910574913481E-08,3.19910574913481E-08,3.20987914074355E-08,3.08065049531378E-08,2.98985871568568E-08,2.9315559646542E-08,2.8830518266821E-08,2.83892299551399E-08,2.80649816834352E-08,2.80649816834352E-08, +5.01051294319187E-07,5.01051294319187E-07,5.02210361614076E-07,4.84330510111254E-07,4.71705638044442E-07,4.6345551137332E-07,4.5651204772362E-07,4.50167624288194E-07,4.45492648798474E-07,4.45492648798474E-07, +7.30937253447999E-06,7.30937253447999E-06,7.3193235461591E-06,7.09186901194886E-06,6.93011546693653E-06,6.82229115173403E-06,6.73042387203934E-06,6.64609559766514E-06,6.58372374851804E-06,6.58372374851804E-06, +9.28642810598224E-05,9.28642810598224E-05,9.29079850029816E-05,9.04503836744199E-05,8.86832302932227E-05,8.74760643745844E-05,8.64331518862585E-05,8.5470795197717E-05,8.47552328280047E-05,8.47552328280047E-05, +0.00100258630139355,0.00100258630139355,0.0010022355932847,0.000980444883132362,0.000964504037474037,0.000953268344763813,0.000943402425171258,0.000934241282867603,0.000927374395740078,0.000927374395740078, +0.00889362030689878,0.00889362030689878,0.00888399073692113,0.00873318807530318,0.00861978300778679,0.00853642017440827,0.00846175837971292,0.00839187027905398,0.00833876871647867,0.00833876871647867, +0.0617285996260209,0.0617285996260209,0.0616240699830465,0.0608714081854817,0.0602782660918147,0.0598152492477528,0.0593899207827929,0.0589872333513537,0.0586731604569156,0.0586731604569156, +0.310743099529559,0.310743099529559,0.310091644233631,0.307727518179242,0.305696679673201,0.303957179792453,0.302303370533323,0.30070857900977,0.299386675550966,0.299386675550966, + +00:01:41, +3.42767605963055E-08,3.42767605963055E-08,3.43932558936258E-08,3.30296275188622E-08,3.20644814985204E-08,3.14429937661679E-08,3.09262452504026E-08,3.04565839755107E-08,3.01121446300177E-08,3.01121446300177E-08, +3.42767605963055E-08,3.42767605963055E-08,3.43932558936258E-08,3.30296275188622E-08,3.20644814985204E-08,3.14429937661679E-08,3.09262452504026E-08,3.04565839755107E-08,3.01121446300177E-08,3.01121446300177E-08, +5.31770955003724E-07,5.31770955003724E-07,5.33016870898503E-07,5.1432881986919E-07,5.01035800540495E-07,4.92325581446784E-07,4.84998822184182E-07,4.78310732831239E-07,4.73391822917873E-07,4.73391822917873E-07, +7.68740088551003E-06,7.68740088551003E-06,7.69808356614256E-06,7.46248062382648E-06,7.29370214969072E-06,7.18089806256636E-06,7.0848364097966E-06,6.99674134705491E-06,6.93170485870892E-06,6.93170485870892E-06, +9.67832646185174E-05,9.67832646185174E-05,9.68313531776609E-05,9.43084133523248E-05,9.24810858951521E-05,9.12295988913972E-05,9.01488882010868E-05,8.91525492238763E-05,8.84130701871307E-05,8.84130701871307E-05, +0.00103546466949718,0.00103546466949718,0.00103512707591202,0.00101295353600783,0.000996616596511071,0.0009850728911933,0.000974940413298272,0.000965539596489772,0.000958505437110995,0.000958505437110995, +0.00910322088404604,0.00910322088404604,0.00909355486107769,0.00894140246366097,0.0088261889885938,0.00874129329763346,0.0086652805698829,0.00859418045073946,0.00854024652081151,0.00854024652081151, +0.0626343301372692,0.0626343301372692,0.062529392311299,0.0617758536702372,0.0611781872938363,0.060710608044118,0.0602811589390545,0.0598748112132941,0.0595583316406279,0.0595583316406279, +0.312753100028363,0.312753100028363,0.312102271912541,0.309748739957247,0.307716662866506,0.305973146340376,0.304315569101275,0.302717716121808,0.301394528710639,0.301394528710639, + +00:01:42, +3.66995015131108E-08,3.66995015131108E-08,3.68253596086106E-08,3.53873334388341E-08,3.43620493347259E-08,3.37000126890697E-08,3.31498477233431E-08,3.26503195237803E-08,3.22846691996983E-08,3.22846691996983E-08, +3.66995015131108E-08,3.66995015131108E-08,3.68253596086106E-08,3.53873334388341E-08,3.43620493347259E-08,3.37000126890697E-08,3.31498477233431E-08,3.26503195237803E-08,3.22846691996983E-08,3.22846691996983E-08, +5.64018327721862E-07,5.64018327721862E-07,5.65356362902983E-07,5.45833825942446E-07,5.31845588087418E-07,5.22655032781159E-07,5.14928243770969E-07,5.07881910829522E-07,5.02709239493026E-07,5.02709239493026E-07, +8.08058119263497E-06,8.08058119263497E-06,8.09203570296495E-06,7.8480984455548E-06,7.67207865174748E-06,7.55412381379354E-06,7.45372490064474E-06,7.3617393469005E-06,7.29395637197948E-06,7.29395637197948E-06, +0.000100821631707133,0.000100821631707133,0.000100874339776865,9.82852094049233E-05,9.63964394396653E-05,9.50995357199551E-05,9.39800986460682E-05,9.29489840785014E-05,9.21850807330136E-05,9.21850807330136E-05, +0.00106902962949037,0.00106902962949037,0.00106870616956532,0.00104614863372328,0.00102941112596016,0.00101755474022842,0.00100715166781754,0.000997507835100255,0.000990304427072295,0.000990304427072295, +0.00931520447881351,0.00931520447881351,0.00930550565426288,0.00915201418941127,0.0090349899556845,0.00894855280377612,0.0088711812683652,0.00879886352884001,0.00874409520048355,0.00874409520048355, +0.0635418598780952,0.0635418598780952,0.0634365284138063,0.062682148059978,0.062080001880244,0.0616078793319096,0.0611743243411818,0.0607643342453789,0.060445465895767,0.060445465895767, +0.314748863599254,0.314748863599254,0.314098697767008,0.311755609252371,0.309722375286514,0.307974921184973,0.306313642735497,0.304712793235041,0.303388368892999,0.303388368892999, + +00:01:43, +3.92659065071133E-08,3.92659065071133E-08,3.9401762096591E-08,3.78861913474916E-08,3.67977481148532E-08,3.60929853893533E-08,3.55076223748745E-08,3.49766722998827E-08,3.45887517842421E-08,3.45887517842421E-08, +3.92659065071133E-08,3.92659065071133E-08,3.9401762096591E-08,3.78861913474916E-08,3.67977481148532E-08,3.60929853893533E-08,3.55076223748745E-08,3.49766722998827E-08,3.45887517842421E-08,3.45887517842421E-08, +5.97851313713321E-07,5.97851313713321E-07,5.99286980189247E-07,5.78903182699053E-07,5.6419191582971E-07,5.54500138884526E-07,5.46356054473143E-07,5.38936459086516E-07,5.3349992479167E-07,5.3349992479167E-07, +8.48933772696236E-06,8.48933772696236E-06,8.50160571106827E-06,8.24914683918182E-06,8.06566569929616E-06,7.94238544155775E-06,7.83750325970013E-06,7.74150100273163E-06,7.67088823050994E-06,7.67088823050994E-06, +0.000104981523736122,0.000104981523736122,0.000105039092732692,0.000102382924699836,0.000100431436844632,9.90880086304744E-05,9.79289061552179E-05,9.68622147687441E-05,9.6073375726904E-05,9.6073375726904E-05, +0.00110328630024577,0.00110328630024577,0.00110297801033419,0.00108003536268589,0.00106289285213986,0.00105071912129827,0.00104004141571473,0.0010301512306239,0.00102277660722013,0.00102277660722013, +0.00952956036190691,0.00952956036190691,0.00951983239012441,0.00936501248776855,0.0092461753784722,0.00915818834102748,0.00907945025300768,0.00900590941604798,0.00895030474290999,0.00895030474290999, +0.0644511188937248,0.0644511188937248,0.0643454080819681,0.0635902201463458,0.0629836384264373,0.0625069919244144,0.0620693459684608,0.061655731516186,0.0613344922478212,0.0613344922478212, +0.316730528824421,0.316730528824421,0.316081059114815,0.31374826647617,0.311713955373313,0.309962641736659,0.308297728004312,0.306693945988525,0.305368330914431,0.305368330914431, + +00:01:44, +4.19828431698222E-08,4.19828431698222E-08,4.2129365595229E-08,4.05330112378887E-08,3.9378273925735E-08,3.86285168545011E-08,3.80060997277369E-08,3.74421101021761E-08,3.70308198530442E-08,3.70308198530442E-08, +4.19828431698222E-08,4.19828431698222E-08,4.2129365595229E-08,4.05330112378887E-08,3.9378273925735E-08,3.86285168545011E-08,3.80060997277369E-08,3.74421101021761E-08,3.70308198530442E-08,3.70308198530442E-08, +6.33329284456343E-07,6.33329284456343E-07,6.34868342687042E-07,6.13596021945294E-07,5.9813316761478E-07,5.87918630479E-07,5.7933944350542E-07,5.71531118155844E-07,5.65820340917672E-07,5.65820340917672E-07, +8.91410096735587E-06,8.91410096735587E-06,8.92722557851419E-06,8.66605643703696E-06,8.47489029828019E-06,8.3461062405707E-06,8.23659163769526E-06,8.13644394268533E-06,8.06291659626004E-06,8.06291659626004E-06, +0.000109265087511239,0.000109265087511239,0.000109327765383955,0.000106603717639155,0.000104588229825395,0.000103197157334058,0.000101997439687922,0.000100894362419103,0.000100080072618591,0.000100080072618591, +0.00113823971375435,0.00113823971375435,0.00113794764697778,0.00111461882114698,0.00109706691374197,0.00108457117708132,0.00107361479785256,0.00106347492933869,0.00105592713371668,0.00105592713371668, +0.00974627761126504,0.00974627761126504,0.0097365241473504,0.00958038639655977,0.00945973452449104,0.00937018935513624,0.00929007709895604,0.00921530781145858,0.00915886493076347,0.00915886493076347, +0.0653620384452658,0.0653620384452658,0.0652559623230939,0.0644999999666671,0.0638890267463837,0.063407875865031,0.0629661540255015,0.0625489333149064,0.0622253409407558,0.0622253409407558, +0.31869823269309,0.31869823269309,0.318049491716896,0.315726850410899,0.313691539985632,0.311936443834953,0.310267959915722,0.308661308474112,0.307334548058023,0.307334548058023, + +00:01:45, +4.48574261172146E-08,4.48574261172146E-08,4.50153207680514E-08,4.33348502073985E-08,4.2110567217362E-08,4.13134537721329E-08,4.0652049788986E-08,4.00533384531082E-08,3.96175375669495E-08,3.96175375669495E-08, +4.48574261172146E-08,4.48574261172146E-08,4.50153207680514E-08,4.33348502073985E-08,4.2110567217362E-08,4.13134537721329E-08,4.0652049788986E-08,4.00533384531082E-08,3.96175375669495E-08,3.96175375669495E-08, +6.70513097618923E-07,6.70513097618923E-07,6.72161563711081E-07,6.49972969096098E-07,6.33729212307283E-07,6.22969711835708E-07,6.13937063627025E-07,6.0572408466825E-07,5.99728402159232E-07,5.99728402159232E-07, +9.35530757326399E-06,9.35530757326399E-06,9.36933349945187E-06,9.09926411425141E-06,8.90018570797201E-06,8.76571573863523E-06,8.65141639611922E-06,8.54699199316078E-06,8.47046382692636E-06,8.47046382692636E-06, +0.000113674474815228,0.000113674474815228,0.000113742516054368,0.000110949751732956,0.000108868975467027,0.000107429127057755,0.000106187833806276,0.000105047553849885,0.000104207294624914,0.000104207294624914, +0.00117389481509243,0.00117389481509243,0.00117362004088628,0.00114990401916908,0.00113193836177004,0.00111911596343102,0.00110787686889003,0.00109748399178635,0.00108976107719416,0.00108976107719416, +0.00996534511888713,0.00996534511888713,0.00995556981655588,0.00979812476325323,0.00967565646646584,0.00958454509643322,0.00950305118565748,0.0094270482175645,0.00936976534897716,0.00936976534897716, +0.0662745509905164,0.0662745509905164,0.0661681233414095,0.0654114187840501,0.0647960978731322,0.0643104624079307,0.0638646799229731,0.0634438711321889,0.0631179434179337,0.0631179434179337, +0.320652110621818,0.320652110621818,0.320004129796634,0.317691498230621,0.315655264420725,0.313896461768347,0.312224471937127,0.310615013255997,0.309287152092864,0.309287152092864, + +00:01:46, +4.78970227339332E-08,4.78970227339332E-08,4.80670324828316E-08,4.62990182499698E-08,4.50018185759729E-08,4.41548902645494E-08,4.34524877487269E-08,4.28173062729804E-08,4.23558114403212E-08,4.23558114403212E-08, +4.78970227339332E-08,4.78970227339332E-08,4.80670324828316E-08,4.62990182499698E-08,4.50018185759729E-08,4.41548902645494E-08,4.34524877487269E-08,4.28173062729804E-08,4.23558114403212E-08,4.23558114403212E-08, +7.09465112759068E-07,7.09465112759068E-07,7.11229265723813E-07,6.88096159089609E-07,6.7104141985044E-07,6.59714076861122E-07,6.50209047215141E-07,6.41575027415198E-07,6.35283491094674E-07,6.35283491094674E-07, +9.81340035597246E-06,9.81340035597246E-06,9.82837384499368E-06,9.54921295966817E-06,9.34199141291735E-06,9.20164966953905E-06,9.08241008073577E-06,8.97357515285148E-06,8.89395845027393E-06,8.89395845027393E-06, +0.00011821184199317,0.00011821184199317,0.000118285507634442,0.000115423195176599,0.000113275835800258,0.000111786068123206,0.000110502228255965,0.000109323921159145,0.000108457170311738,0.000108457170311738, +0.00121025646241745,0.00121025646241745,0.00121000006607187,0.00118589587862284,0.00116751215950833,0.0011543584493316,0.001142832597232,0.00113218339271344,0.00112428342268934,0.00112428342268934, +0.0101867515975115,0.0101867515975115,0.0101769581070204,0.0100182162518323,0.00989393008922804,0.00980124462670357,0.00971836170371276,0.00964111994709953,0.00958299539159673,0.00958299539159673, +0.067188590165073,0.067188590165073,0.0670818245193533,0.0663244090677981,0.0657047840396268,0.0652146839990182,0.0647648562586381,0.0643404776412823,0.0640122323033301,0.0640122323033301, +0.32259229647451,0.32259229647451,0.321945106058915,0.319642345522009,0.317605262433968,0.315842828293911,0.314167396014788,0.312555191389987,0.311226273293079,0.311226273293079, + +00:01:47, +5.11092589619953E-08,5.11092589619953E-08,5.12921656345515E-08,4.94330840935295E-08,4.80594745431252E-08,4.71601736696715E-08,4.6414679725401E-08,4.57412116004475E-08,4.52527960499979E-08,4.52527960499979E-08, +5.11092589619953E-08,5.11092589619953E-08,5.12921656345515E-08,4.94330840935295E-08,4.80594745431252E-08,4.71601736696715E-08,4.6414679725401E-08,4.57412116004475E-08,4.52527960499979E-08,4.52527960499979E-08, +7.50249206769524E-07,7.50249206769524E-07,7.52135595839396E-07,7.28029252041261E-07,7.10132677069519E-07,6.98213924929913E-07,6.88217022088002E-07,6.79145103184213E-07,6.72546474450949E-07,6.72546474450949E-07, +1.0288828248311E-05,1.0288828248311E-05,1.03047971325297E-05,1.00163522451734E-05,9.80075309328023E-06,9.65434994435129E-06,9.53001139350942E-06,9.41662956518508E-06,9.33383513687262E-06,9.33383513687262E-06, +0.000122879349541593,0.000122879349541593,0.000122958907167161,0.000120026220431918,0.000117810977381198,0.000116270135528963,0.000114942767550753,0.000113725601308218,0.000112831833179486,0.000112831833179486, +0.00124732942699187,0.00124732942699187,0.00124709250918815,0.0012225992332126,0.00120379318252029,0.00119030351688335,0.00117848686500803,0.00116757802104168,0.00115949906960755,0.00115949906960755, +0.0104104855871482,0.0104104855871482,0.0104006775532792,0.0102406493495172,0.0101145440964809,0.0100202768259098,0.00993599766157914,0.0098575121297336,0.00979854426848413,0.00979854426848413, +0.0681040907637327,0.0681040907637327,0.0679970003991562,0.0672389044741347,0.0666150186598168,0.0661204742571866,0.0656666167986806,0.0652386866794687,0.064908141383038,0.064908141383038, +0.324518922582154,0.324518922582154,0.323872551708926,0.321579526304867,0.319541666258218,0.317775674656629,0.316096862593021,0.314481972442516,0.313152040456608,0.313152040456608, + +00:01:48, +5.45020251326204E-08,5.45020251326204E-08,5.46986510115326E-08,5.27448810811067E-08,5.12912434793294E-08,5.03369103669765E-08,4.95461485562438E-08,4.88325073583788E-08,4.8315899789768E-08,4.8315899789768E-08, +5.45020251326204E-08,5.45020251326204E-08,5.46986510115326E-08,5.27448810811067E-08,5.12912434793294E-08,5.03369103669765E-08,4.95461485562438E-08,4.88325073583788E-08,4.8315899789768E-08,4.8315899789768E-08, +7.9293078906255E-07,7.9293078906255E-07,7.94946241064443E-07,7.69837448632889E-07,7.51067403212886E-07,7.38532976459655E-07,7.28024127072973E-07,7.18496972341295E-07,7.1157971871013E-07,7.1157971871013E-07, +1.07820462728444E-05,1.07820462728444E-05,1.07990599935121E-05,1.05011373934804E-05,1.027692259362E-05,1.01242646211527E-05,9.99466516297002E-06,9.87659748920105E-06,9.79053467126824E-06,9.79053467126824E-06, +0.000127679161701412,0.000127679161701412,0.000127764885437549,0.000124761003812368,0.000122476570874914,0.000120883488536573,0.000119511600560709,0.000118254735710909,0.000117333421252313,0.000117333421252313, +0.00128511839323405,0.00128511839323405,0.00128490206957712,0.00126001882853002,0.00124078621867548,0.00122695596131634,0.00121484446807969,0.00120367267986683,0.00119541283171527,0.00119541283171527, +0.010636535461469,0.010636535461469,0.0106267165215714,0.010465412373337,0.0103374870174165,0.0102416303987684,0.0101559478921275,0.0100762137186225,0.0100164010118758,0.0100164010118758, +0.0690209887221852,0.0690209887221852,0.0689135866647013,0.0681548398272357,0.0675267363100571,0.0670277679558639,0.0665698964593237,0.0661384332297844,0.0658056055870586,0.0658056055870586, +0.326432119762298,0.326432119762298,0.325786596470719,0.323503173052354,0.321464606622896,0.319695130608473,0.318013000633137,0.316395484509401,0.315064580923738,0.315064580923738, + +00:01:49, +5.80834818397738E-08,5.80834818397738E-08,5.82946912033109E-08,5.62425130942432E-08,5.47051014708121E-08,5.36929716470163E-08,5.28546796315119E-08,5.20989071636871E-08,5.15527906689707E-08,5.15527906689707E-08, +5.80834818397738E-08,5.80834818397738E-08,5.82946912033109E-08,5.62425130942432E-08,5.47051014708121E-08,5.36929716470163E-08,5.28546796315119E-08,5.20989071636871E-08,5.15527906689707E-08,5.15527906689707E-08, +8.37576816490525E-07,8.37576816490525E-07,8.39728443271258E-07,8.13587505232545E-07,7.93911565226183E-07,7.8073648822292E-07,7.69695027315122E-07,7.59694814155895E-07,7.52447105459382E-07,7.52447105459382E-07, +1.12935155085791E-05,1.12935155085791E-05,1.13116251397399E-05,1.1004029944398E-05,1.07709578901318E-05,1.06118478732304E-05,1.04768223130465E-05,1.03539272688968E-05,1.0264503921619E-05,1.0264503921619E-05, +0.000132613446054785,0.000132613446054785,0.000132705616566174,0.000129629725072226,0.00012727479064297,0.000125628290260523,0.00012421088010422,0.000122913469826451,0.000121964076671026,0.000121964076671026, +0.00132362795879543,0.00132362795879543,0.00132343335934293,0.0012981593221345,0.00127849596820425,0.00126432049103164,0.00125191011607523,0.00124047208648508,0.00123202943716034,0.00123202943716034, +0.0108648894340564,0.0108648894340564,0.0108550632161471,0.0106924934765565,0.0105627472131879,0.0104652938811822,0.0103782010590559,0.0102972134968147,0.0102365544827985,0.0102365544827985, +0.06993922109899,0.06993922109899,0.0698315201236605,0.0690721511005615,0.0684398727107965,0.0679365010048439,0.0674746312887323,0.0670396534030244,0.0667045609713728,0.0667045609713728, +0.328332017338247,0.328332017338247,0.327687368605522,0.325413416710927,0.323374212772831,0.321601324427223,0.319915937632119,0.318295854234345,0.316964020595378,0.316964020595378, + +00:01:50, +6.18620658540069E-08,6.18620658540069E-08,6.20887665488187E-08,5.99343605172403E-08,5.83092982779646E-08,5.723649962309E-08,5.63483267710667E-08,5.55483911797226E-08,5.49714021538239E-08,5.49714021538239E-08, +6.18620658540069E-08,6.18620658540069E-08,6.20887665488187E-08,5.99343605172403E-08,5.83092982779646E-08,5.723649962309E-08,5.63483267710667E-08,5.55483911797226E-08,5.49714021538239E-08,5.49714021538239E-08, +8.84255807998319E-07,8.84255807998319E-07,8.86551013899504E-07,8.59347748740908E-07,8.38732692755378E-07,8.24891268392434E-07,8.13295929321988E-07,8.02804341864113E-07,7.95214046480046E-07,7.95214046480046E-07, +1.18237030562153E-05,1.18237030562153E-05,1.18429613281759E-05,1.15254975196147E-05,1.12833230563822E-05,1.11175599557681E-05,1.09769398304007E-05,1.08490733010727E-05,1.07561958078279E-05,1.07561958078279E-05, +0.000137684373125957,0.000137684373125957,0.000137783277606706,0.000134634566999906,0.00013220781433499,0.000130506707262106,0.00012904276254389,0.000127703952756296,0.000126725945289813,0.000126725945289813, +0.00136286263466311,0.00136286263466311,0.00136269090345137,0.00133702528365984,0.00131692704377901,0.00130240172766927,0.00128968843245102,0.00127798087244618,0.00126935352851909,0.00126935352851909, +0.0110955355645153,0.0110955355645153,0.011085705685436,0.0109218806549586,0.0107903128832387,0.0106912556465324,0.010602745663163,0.010520500083518,0.0104589933773447,0.0104589933773447, +0.0708587260578347,0.0708587260578347,0.0707507386899014,0.0699907753984873,0.0693543647085478,0.0688466104324,0.0683807584491956,0.0679422844200238,0.0676049447002898,0.0676049447002898, +0.330218743158013,0.330218743158013,0.329574994929825,0.327310386720004,0.325270612486841,0.323494382935027,0.321805799641054,0.320183206827196,0.318850483951097,0.318850483951097, + +00:01:51, +6.58464960751667E-08,6.58464960751667E-08,6.60896411234267E-08,6.38290862407824E-08,6.21123633240188E-08,6.09759131836313E-08,6.00354181418914E-08,5.91892120098134E-08,5.85799390500636E-08,5.85799390500636E-08, +6.58464960751667E-08,6.58464960751667E-08,6.60896411234267E-08,6.38290862407824E-08,6.21123633240188E-08,6.09759131836313E-08,6.00354181418914E-08,5.91892120098134E-08,5.85799390500636E-08,5.85799390500636E-08, +9.33037859003545E-07,9.33037859003545E-07,9.35484348382355E-07,9.07188091160331E-07,8.85599892874606E-07,8.71065691315189E-07,8.58894595740396E-07,8.4789281746597E-07,8.39947498571659E-07,8.39947498571659E-07, +1.23730820019745E-05,1.23730820019745E-05,1.23935433243265E-05,1.20660137860307E-05,1.18144882275715E-05,1.16418671710633E-05,1.1495480730291E-05,1.13624960017065E-05,1.12660692682008E-05,1.12660692682008E-05, +0.000142894115986163,0.000142894115986163,0.000143000048147559,0.000139777715015467,0.000137277822484332,0.000135520909147301,0.000134009407386398,0.000132628336844822,0.000131621176276867,0.000131621176276867, +0.00140282684528689,0.00140282684528689,0.00140267913985447,0.00137662119494599,0.00135608397062148,0.00134120420620193,0.00132818395457867,0.00131620358363236,0.00130738966286927,0.00130738966286927, +0.0113284617644503,0.0113284617644503,0.0113186318280813,0.0111535617529872,0.0110201720714928,0.0109195039118323,0.010829570048483,0.0107460619402294,0.010683706232811,0.010683706232811, +0.0717794428500689,0.0717794428500689,0.0716711813661634,0.0709106509382237,0.0702701502581363,0.0697580343676746,0.0692882161995872,0.068846264594215,0.0685066950290677,0.0685066950290677, +0.332092423612994,0.332092423612994,0.331449600833223,0.329194211031351,0.327153932096081,0.325374431516715,0.323682711283316,0.322057666081951,0.320724094066912,0.320724094066912, + +00:01:52, +7.00457795225359E-08,7.00457795225359E-08,7.03063687633854E-08,6.79356417034674E-08,6.61231117224814E-08,6.49199139838592E-08,6.39245622151006E-08,6.30299006305246E-08,6.23868834254677E-08,6.23868834254677E-08, +7.00457795225359E-08,7.00457795225359E-08,7.03063687633854E-08,6.79356417034674E-08,6.61231117224814E-08,6.49199139838592E-08,6.39245622151006E-08,6.30299006305246E-08,6.23868834254677E-08,6.23868834254677E-08, +9.83994655500965E-07,9.83994655500965E-07,9.86600440293423E-07,9.57180043882735E-07,9.34583864534923E-07,9.19329712011554E-07,9.06560359861351E-07,8.9502906625275E-07,8.86715978106901E-07,8.86715978106901E-07, +1.29421313800356E-05,1.29421313800356E-05,1.29638518642148E-05,1.26260584176681E-05,1.23649295633533E-05,1.21852418323014E-05,1.20329140209983E-05,1.18946617708875E-05,1.17945892246621E-05,1.17945892246621E-05, +0.000148244849862653,0.000148244849862653,0.000148358109917713,0.000145061356772381,0.000142486998107938,0.00014067306816873,0.000139112976886386,0.000137688777284026,0.00013665192171898,0.00013665192171898, +0.00144352492873014,0.00144352492873014,0.00144340241963914,0.00141695145019524,0.00139597118663489,0.00138073237505372,0.001367401133857,0.00135514468036219,0.00134614231188819,0.00134614231188819, +0.0115636558033089,0.0115636558033089,0.0115538293988401,0.0113875244697511,0.0112523126724071,0.0111500267437445,0.0110586624082861,0.010973887376729,0.0109106814337021,0.0109106814337021, +0.0727013117975111,0.0727013117975111,0.0725927882269963,0.0718317170320257,0.0711871684052215,0.0706707120233427,0.0701969438780953,0.0697515333144536,0.0694097512868026,0.0694097512868026, +0.333953183656407,0.333953183656407,0.333311310296028,0.331065016128198,0.329024296502136,0.327241594137867,0.325546795772497,0.323919354394524,0.322584972632845,0.322584972632845, + +00:01:53, +7.44692173609538E-08,7.44692173609538E-08,7.47482991261993E-08,7.2263272969762E-08,7.03506503418486E-08,6.90774924752285E-08,6.80246537609982E-08,6.70792723631941E-08,6.64010005708279E-08,6.64010005708279E-08, +7.44692173609538E-08,7.44692173609538E-08,7.47482991261993E-08,7.2263272969762E-08,7.03506503418486E-08,6.90774924752285E-08,6.80246537609982E-08,6.70792723631941E-08,6.64010005708279E-08,6.64010005708279E-08, +1.03719948788751E-06,1.03719948788751E-06,1.03997289521086E-06,1.00939673169275E-06,9.85756912730209E-07,9.69754880395593E-07,9.56364139849244E-07,9.44283491060613E-07,9.35589575313632E-07,9.35589575313632E-07, +1.35313361336062E-05,1.35313361336062E-05,1.35543736149799E-05,1.32061170561928E-05,1.29351292092454E-05,1.2748162225919E-05,1.25897146668433E-05,1.24460429563424E-05,1.23422265465572E-05,1.23422265465572E-05, +0.000153738751751896,0.000153738751751896,0.000153859646396771,0.000150487681763613,0.000147837526310425,0.000145965358831766,0.000144355635654439,0.000142887431722275,0.000141820336230171,0.000141820336230171, +0.0014849611368436,0.0014849611368436,0.00148486500719932,0.00145802035615198,0.00143659304256036,0.00142099059624295,0.00140734433584825,0.00139480853751873,0.0013856158619751,0.0013856158619751, +0.011801105314097,0.011801105314097,0.0117912860143532,0.0116237563648938,0.0114867224368901,0.0113828120644661,0.0112900107909455,0.0112039645569431,0.0111399072176018,0.0111399072176018, +0.0736242742755218,0.0736242742755218,0.0735155004019598,0.0727539140696824,0.0721053592690899,0.0715845836785424,0.0711068818852218,0.0706580310281103,0.0703140538595812,0.0703140538595812, +0.335801146821463,0.335801146821463,0.335160245906659,0.332922927044091,0.330881829194878,0.329095993362628,0.327398174930109,0.325768392780273,0.32443323997024,0.32443323997024, + +00:01:54, +7.91264109614607E-08,7.91264109614607E-08,7.9425083785456E-08,7.68215268428941E-08,7.48043839061129E-08,7.345793397121E-08,7.23448798807229E-08,7.13464328822966E-08,7.06313449979207E-08,7.06313449979207E-08, +7.91264109614607E-08,7.91264109614607E-08,7.9425083785456E-08,7.68215268428941E-08,7.48043839061129E-08,7.345793397121E-08,7.23448798807229E-08,7.13464328822966E-08,7.06313449979207E-08,7.06313449979207E-08, +1.09272726450453E-06,1.09272726450453E-06,1.09567694429524E-06,1.0639129064827E-06,1.03919296237671E-06,1.02241435521299E-06,1.00837845269171E-06,9.95728086246817E-07,9.86639968280345E-07,9.86639968280345E-07, +1.41411870746635E-05,1.41411870746635E-05,1.41656011341309E-05,1.3806681270078E-05,1.35255752566599E-05,1.3331112572587E-05,1.31663635498269E-05,1.30171178155807E-05,1.29094580130734E-05,1.29094580130734E-05, +0.000159378000037032,0.000159378000037032,0.000159506842429299,0.000156058880932086,0.000153331593892482,0.00015139995750484,0.000149739550269225,0.00014822645987717,0.000147128576564411,0.000147128576564411, +0.0015271396354613,0.0015271396354613,0.00152707108043059,0.00149983213230511,0.00147795380215664,0.00146198314554838,0.00144801784043748,0.00143519944470094,0.001425814614397,0.001425814614397, +0.0120407977989649,0.0120407977989649,0.0120309891587874,0.0118622448643303,0.0117233889780882,0.0116178476574828,0.0115236031056751,0.0114362815046769,0.0113713716809154,0.0113713716809154, +0.074548272696342,0.074548272696342,0.0744392600590773,0.073677183501286,0.0730246640257113,0.072499590662071,0.0720179716670444,0.071565699224425,0.0712195441738945,0.0712195441738945, +0.337636435239303,0.337636435239303,0.336996528878797,0.334768067381473,0.332726652270091,0.330937750371297,0.329236969203034,0.327604900891295,0.326269015048849,0.326269015048849, + +00:01:55, +8.40272679950006E-08,8.40272679950006E-08,8.43466823586247E-08,8.16202570111831E-08,7.94940211295635E-08,7.80708247479175E-08,7.68947260730159E-08,7.58407842591754E-08,7.50872664730211E-08,7.50872664730211E-08, +8.40272679950006E-08,8.40272679950006E-08,8.43466823586247E-08,8.16202570111831E-08,7.94940211295635E-08,7.80708247479175E-08,7.68947260730159E-08,7.58407842591754E-08,7.50872664730211E-08,7.50872664730211E-08, +1.15065452489398E-06,1.15065452489398E-06,1.15378945757802E-06,1.12080496067605E-06,1.09496757190277E-06,1.07738291769316E-06,1.06267742786671E-06,1.04943645138508E-06,1.03994043668155E-06,1.03994043668155E-06, +1.47721808423924E-05,1.47721808423924E-05,1.47980328274892E-05,1.44282485124416E-05,1.41367617015875E-05,1.3934582986844E-05,1.37633474299239E-05,1.36083704766935E-05,1.34967662743089E-05,1.34967662743089E-05, +0.000165164774109617,0.000165164774109617,0.00016530188384352,0.000161777146285566,0.000158971388963627,0.000156979042034025,0.000155266888893857,0.000153708023152596,0.000152578801232512,0.000152578801232512, +0.00157006450461803,0.00157006450461803,0.00157002473094671,0.00154239091111258,0.00152005764240248,0.00150371421269789,0.0014894258420145,0.0014763216063977,0.00146674278545723,0.00146674278545723, +0.0122827206346699,0.0122827206346699,0.0122729261893515,0.0121029772658544,0.0119622997770432,0.011855121173195,0.0117594271281391,0.0116708261092197,0.0116050627844841,0.0116050627844841, +0.075473250492689,0.075473250492689,0.0753640103885437,0.0746014678202726,0.0739450248910587,0.0734156753358401,0.0729301556987382,0.0724744804181172,0.0721261646803061,0.0721261646803061, +0.339459169656682,0.339459169656682,0.338820279068325,0.336600559330013,0.334558886446856,0.332766984977668,0.331063297680753,0.32942899703348,0.328092415503694,0.328092415503694, + +00:01:56, +8.91820085577075E-08,8.91820085577075E-08,8.95233686663324E-08,8.66696302263051E-08,8.44295808843787E-08,8.29260581780929E-08,8.1683982334634E-08,8.05720310396732E-08,7.97784160844923E-08,7.97784160844923E-08, +8.91820085577075E-08,8.91820085577075E-08,8.95233686663324E-08,8.66696302263051E-08,8.44295808843787E-08,8.29260581780929E-08,8.1683982334634E-08,8.05720310396732E-08,7.97784160844923E-08,7.97784160844923E-08, +1.21105945276565E-06,1.21105945276565E-06,1.21438895695743E-06,1.18015094035643E-06,1.15315794654569E-06,1.1347369849122E-06,1.11933682072354E-06,1.10548380467675E-06,1.09556587521974E-06,1.09556587521974E-06, +1.54248198603529E-05,1.54248198603529E-05,1.54521729058478E-05,1.50713220775881E-05,1.47691884019652E-05,1.45590694354115E-05,1.43811589040615E-05,1.4220290897834E-05,1.41046398110211E-05,1.41046398110211E-05, +0.000171101253995703,0.000171101253995703,0.000171246957074401,0.000167644670516032,0.000164759100559384,0.000162704791361941,0.000160939820896523,0.00015933428426,0.000158173170123233,0.000158173170123233, +0.00161373973878736,0.00161373973878736,0.00161372996431711,0.00158570073824695,0.00156290865372075,0.00154618790157909,0.00153157244967761,0.00151817914218372,0.00150840450668595,0.00150840450668595, +0.0125268610779154,0.0125268610779154,0.0125170843416899,0.0123459407446184,0.0122034421882221,0.0120946201344185,0.0119974705059361,0.011907586130826,0.0118409683590752,0.0118409683590752, +0.0763991521016091,0.0763991521016091,0.0762896955866799,0.0755267105467333,0.0748663851046838,0.0743327810785881,0.0738433774683521,0.0733843181332508,0.0730338588373731,0.0730338588373731, +0.341269469453421,0.341269469453421,0.340631614990045,0.33842052368468,0.336378651084708,0.334583815646143,0.332877278112334,0.331240798183347,0.329903557651694,0.329903557651694, + +00:01:57, +9.46011713262968E-08,9.46011713262968E-08,9.49657369216182E-08,9.198013251198E-08,8.96213983994948E-08,8.80338408969524E-08,8.67227492929252E-08,8.55501863541873E-08,8.47147523429779E-08,8.47147523429779E-08, +9.46011713262968E-08,9.46011713262968E-08,9.49657369216182E-08,9.198013251198E-08,8.96213983994948E-08,8.80338408969524E-08,8.67227492929252E-08,8.55501863541873E-08,8.47147523429779E-08,8.47147523429779E-08, +1.27402188867231E-06,1.27402188867231E-06,1.27755562889897E-06,1.24203055809903E-06,1.21384295135237E-06,1.19455462286368E-06,1.17843402557464E-06,1.16394699607467E-06,1.15359280678076E-06,1.15359280678076E-06, +1.60996122924063E-05,1.60996122924063E-05,1.61285313403798E-05,1.57364110562878E-05,1.54233610337593E-05,1.52050736942223E-05,1.50202963638118E-05,1.48533748254106E-05,1.47335728930841E-05,1.47335728930841E-05, +0.000177189619986321,0.000177189619986321,0.000177344248791187,0.000173663646623577,0.000170696918262918,0.000168579385151027,0.000166760516475443,0.000165107406843954,0.00016391384412865,0.00016391384412865, +0.00165816924713975,0.00165816924713975,0.00165819070032486,0.00162976557286151,0.00160651084022358,0.00158940823047087,0.00157446168745826,0.00156077608693647,0.00155080382505181,0.00155080382505181, +0.0127732062705705,0.0127732062705705,0.0127634507351548,0.0125911223584878,0.0124468034449236,0.0123363319417619,0.0122377207639617,0.0121465492060741,0.0120790761107499,0.0120790761107499, +0.0773259229485805,0.0773259229485805,0.0772162608401327,0.076452856210988,0.0757886889135474,0.0752508522698435,0.0747575814608373,0.0742951568873483,0.0739425710958155,0.0739425710958155, +0.343067452659612,0.343067452659612,0.34243065383418,0.340228079863556,0.338186064200567,0.336388359508615,0.334679026923193,0.333040420004647,0.331702556508082,0.331702556508082, + +00:01:58, +1.00295619742075E-07,1.00295619742075E-07,1.00684707947661E-07,9.75625754015654E-08,9.50801314892373E-08,9.34046989983908E-08,9.20214443690782E-08,9.07855780586653E-08,8.99065473127169E-08,8.99065473127169E-08, +1.00295619742075E-07,1.00295619742075E-07,1.00684707947661E-07,9.75625754015654E-08,9.50801314892373E-08,9.34046989983908E-08,9.20214443690782E-08,9.07855780586653E-08,8.99065473127169E-08,8.99065473127169E-08, +1.33962334239024E-06,1.33962334239024E-06,1.34337133683769E-06,1.30652520550183E-06,1.27710312388127E-06,1.25691555923425E-06,1.24004808849522E-06,1.22490452011669E-06,1.2140993952996E-06,1.2140993952996E-06, +1.67970719974306E-05,1.67970719974306E-05,1.68276238168266E-05,1.64240302898225E-05,1.60997910457956E-05,1.58731033041912E-05,1.56812639518306E-05,1.55081237510238E-05,1.53840655366868E-05,1.53840655366868E-05, +0.000183432052272386,0.000183432052272386,0.000183595945529421,0.000179836267544869,0.000176787031831191,0.000174605003411246,0.000172731146288197,0.000171029555112062,0.000169802984773849,0.000169802984773849, +0.00170335685381987,0.00170335685381987,0.00170341077324415,0.00167458928787616,0.00165086811997793,0.00163337913229531,0.00161809749456611,0.00160411639107348,0.00159394470319409,0.00159394470319409, +0.0130217432447711,0.0130217432447711,0.0130120123779597,0.0128385090532743,0.0126923706645616,0.0125802438788831,0.012480165309649,0.012387702853104,0.012319373626111,0.012319373626111, +0.0782535094318642,0.0782535094318642,0.0781436523103152,0.0773798503374212,0.0767118815560983,0.0761698342741375,0.075672713142323,0.0752069421757501,0.0748522468829287,0.0748522468829287, +0.3448532359726,0.3448532359726,0.344217511482662,0.342023345925415,0.339981242485443,0.338180732381119,0.336468659231639,0.334827976864744,0.333489525802592,0.333489525802592, + +00:01:59, +1.06276548222076E-07,1.06276548222076E-07,1.06691535422473E-07,1.03428102203033E-07,1.00816766810188E-07,9.90494842600334E-08,9.75908079705466E-08,9.62888549050521E-08,9.5364392772492E-08,9.5364392772492E-08, +1.06276548222076E-07,1.06276548222076E-07,1.06691535422473E-07,1.03428102203033E-07,1.00816766810188E-07,9.90494842600334E-08,9.75908079705466E-08,9.62888549050521E-08,9.5364392772492E-08,9.5364392772492E-08, +1.40794700500235E-06,1.40794700500235E-06,1.41191963327974E-06,1.37371796541391E-06,1.34302068660253E-06,1.32190119588129E-06,1.30425971982796E-06,1.28843652846604E-06,1.27716545833373E-06,1.27716545833373E-06, +1.7517718482856E-05,1.7517718482856E-05,1.75499716884958E-05,1.71347003228302E-05,1.67989956133669E-05,1.65636715257607E-05,1.6364571517071E-05,1.61850448671761E-05,1.60566234603002E-05,1.60566234603002E-05, +0.000189830730584077,0.000189830730584077,0.000190004233327498,0.000186164725786224,0.000183031630825665,0.000180783826132242,0.000178853881085468,0.000177102893469232,0.000175842753850984,0.000175842753850984, +0.00174930629824255,0.00174930629824255,0.00174939393213678,0.0017201756702822,0.00169598432529059,0.00167810445488921,0.00166248372565355,0.00164820392080935,0.0016378310196746,0.0016378310196746, +0.0132724589279061,0.0132724589279061,0.013262756172217,0.0130880876678484,0.0129401308538292,0.0128263431176279,0.0127247914380925,0.012631034476739,0.0125618483774329,0.0125618483774329, +0.0791818589070979,0.0791818589070979,0.0790718171180849,0.0783076394285722,0.077635909246599,0.0770896734254602,0.076588718944635,0.0761196204562168,0.0757628325872376,0.0757628325872376, +0.346626934773731,0.346626934773731,0.345992302525202,0.343806438587046,0.341764301320922,0.339961048780268,0.338246288865183,0.336603581850781,0.335264577995436,0.335264577995436, + +00:02:00, +1.12555488395833E-07,1.12555488395833E-07,1.12997812149038E-07,1.09588194289803E-07,1.0684262614476E-07,1.04979380395622E-07,1.0344190971115E-07,1.02070992739694E-07,1.01099206404721E-07,1.01099206404721E-07, +1.12555488395833E-07,1.12555488395833E-07,1.12997812149038E-07,1.09588194289803E-07,1.0684262614476E-07,1.04979380395622E-07,1.0344190971115E-07,1.02070992739694E-07,1.01099206404721E-07,1.01099206404721E-07, +1.47907776068171E-06,1.47907776068171E-06,1.48328577160069E-06,1.44369362385845E-06,1.41167955899407E-06,1.38959462101E-06,1.37115130639005E-06,1.35462484215589E-06,1.34287247934134E-06,1.34287247934134E-06, +1.82620768570485E-05,1.82620768570485E-05,1.82961019281003E-05,1.78689473549798E-05,1.75214975906496E-05,1.72772972922512E-05,1.70707345688042E-05,1.68846510217863E-05,1.6751758039446E-05,1.6751758039446E-05, +0.00019638783383473,0.00019638783383473,0.000196571297367776,0.000192651213061323,0.000189432904247606,0.000187118032920016,0.000185130891349243,0.000183329586156382,0.000182035313057729,0.000182035313057729, +0.0017960212354066,0.0017960212354066,0.00179614384116687,0.00176652842146553,0.00174186320301222,0.00172358796129448,0.00170762415109917,0.00169304245843162,0.00168246656924864,0.00168246656924864, +0.0135253401474896,0.0135253401474896,0.0135156689188614,0.0133398449391341,0.013190070913746,0.0130746167230511,0.0129715863370555,0.0128765313734902,0.0128064877276766,0.0128064877276766, +0.0801109196721295,0.0801109196721295,0.0800007033286553,0.079236170949478,0.0785607191596928,0.0780103170119578,0.077505546250055,0.077033139133768,0.0766742755433869,0.0766742755433869, +0.348388663144869,0.348388663144869,0.347755140275168,0.345577473240344,0.343535354795433,0.341729421939463,0.340012028376643,0.338367346785624,0.33702782429307,0.33702782429307, + +00:02:01, +1.19144315366282E-07,1.19144315366282E-07,1.1961547634939E-07,1.16054677415906E-07,1.13169372709955E-07,1.11205909333216E-07,1.09586154657344E-07,1.08143300728203E-07,1.07122238011191E-07,1.07122238011191E-07, +1.19144315366282E-07,1.19144315366282E-07,1.1961547634939E-07,1.16054677415906E-07,1.13169372709955E-07,1.11205909333216E-07,1.09586154657344E-07,1.08143300728203E-07,1.07122238011191E-07,1.07122238011191E-07, +1.55310219817291E-06,1.55310219817291E-06,1.55755671753838E-06,1.51653868164811E-06,1.48316536933097E-06,1.46008062104751E-06,1.44080692338016E-06,1.42355296353559E-06,1.41130361966182E-06,1.41130361966182E-06, +1.90306777805742E-05,1.90306777805742E-05,1.9066547078468E-05,1.8627303191505E-05,1.82678254619597E-05,1.80145051620465E-05,1.78002742294763E-05,1.76074606715373E-05,1.74699862602948E-05,1.74699862602948E-05, +0.000203105539769261,0.000203105539769261,0.000203299321622293,0.000199297919933602,0.000195993040178005,0.00019360980263813,0.000191564346935509,0.000189711796893595,0.000188382823640194,0.000188382823640194, +0.00184350523622601,0.00184350523622601,0.00184366407993318,0.00181365115754749,0.0017885084148595,0.00176983333006684,0.00175352245730946,0.00173863570259503,0.00172785506315433,0.00172785506315433, +0.0137803736359222,0.0137803736359222,0.0137707373224608,0.0135937675069895,0.0134421776445894,0.0133250516583254,0.0132205370918635,0.0131241807364488,0.0130532789353905,0.0130532789353905, +0.0810406409520869,0.0810406409520869,0.0809302599367374,0.0801653933122637,0.0794862594152091,0.0789317132608664,0.0784231433763159,0.0779474465457573,0.077586524017264,0.077586524017264, +0.350138533884696,0.350138533884696,0.349506136785237,0.347336563969159,0.345294515720299,0.343485963824885,0.341765989060022,0.340119382243598,0.33877937466374,0.33877937466374, + +00:02:02, +1.26055253993294E-07,1.26055253993294E-07,1.26556817981099E-07,1.22839728053942E-07,1.19809017489754E-07,1.17740937517685E-07,1.16035289599149E-07,1.14517427605268E-07,1.13445075753941E-07,1.13445075753941E-07, +1.26055253993294E-07,1.26055253993294E-07,1.26556817981099E-07,1.22839728053942E-07,1.19809017489754E-07,1.17740937517685E-07,1.16035289599149E-07,1.14517427605268E-07,1.13445075753941E-07,1.13445075753941E-07, +1.63010862196941E-06,1.63010862196941E-06,1.63482116037817E-06,1.59234136569061E-06,1.55756546616609E-06,1.53344569221151E-06,1.51331234598294E-06,1.49530608791616E-06,1.4825437301963E-06,1.4825437301963E-06, +1.98240574163716E-05,1.98240574163716E-05,1.98618452021532E-05,1.94103051926304E-05,1.90385132918799E-05,1.87758252696445E-05,1.85537171864311E-05,1.83539978340879E-05,1.82118306721257E-05,1.82118306721257E-05, +0.000209986024617164,0.000209986024617164,0.000210190488503112,0.000206107035463352,0.00020271422542218,0.000200261313053502,0.000198156416721473,0.000196251688527771,0.000194887446040297,0.000194887446040297, +0.00189176178787767,0.00189176178787767,0.00189195814381836,0.00186154740974271,0.00183592353775488,0.00181684415560206,0.00180018224703799,0.00178498726863335,0.00177400012941969,0.00177400012941969, +0.0140375460351435,0.0140375460351435,0.0140279479959185,0.0138498419189728,0.0136964377507136,0.0135776347895369,0.0134716306901875,0.0133739696600674,0.0133022091595016,0.0133022091595016, +0.0819709728846793,0.0819709728846793,0.0818604368519086,0.0810952558609769,0.0804124790632037,0.0798538113236792,0.0793414595618285,0.0788624919471764,0.0784995271913525,0.0784995271913525, +0.351876658524791,0.351876658524791,0.351245402862862,0.349083823565915,0.347041895645578,0.345230785151277,0.343508280966182,0.341859797566008,0.340519337852834,0.340519337852834, + +00:02:03, +1.3330088519834E-07,1.3330088519834E-07,1.33834485074652E-07,1.29955879754297E-07,1.26773925589619E-07,1.2459668223597E-07,1.22801409344224E-07,1.21205367947927E-07,1.20079652419772E-07,1.20079652419772E-07, +1.3330088519834E-07,1.3330088519834E-07,1.33834485074652E-07,1.29955879754297E-07,1.26773925589619E-07,1.2459668223597E-07,1.22801409344224E-07,1.21205367947927E-07,1.20079652419772E-07,1.20079652419772E-07, +1.71018706318464E-06,1.71018706318464E-06,1.71516952382859E-06,1.67119163998262E-06,1.63496892949977E-06,1.60977805177155E-06,1.58875506066898E-06,1.56997111491291E-06,1.55667936278584E-06,1.55667936278584E-06, +2.0642757378863E-05,2.0642757378863E-05,2.06825398299786E-05,2.02184962219177E-05,1.98341006742873E-05,1.95617932756043E-05,1.93315956425301E-05,1.91247920391781E-05,1.89778193386756E-05,1.89778193386756E-05, +0.000217031462750112,0.000217031462750112,0.000217246978517319,0.00021308074685955,0.000209598645159049,0.000207074740486795,0.000204909268257343,0.000202951422684809,0.000201551339547666,0.000201551339547666, +0.00194079429416521,0.00194079429416521,0.00194102944435456,0.00191022062473324,0.00188411206418321,0.00186462394847908,0.00184760703972158,0.00183210068888821,0.0018209053131868,0.0018209053131868, +0.0142968439011776,0.0142968439011776,0.0142872874650664,0.0141080546349989,0.0139528378452575,0.0138323528903723,0.0137248540267168,0.0136258851448317,0.0135532654639965,0.0135532654639965, +0.0829018665057276,0.0829018665057276,0.0827911848842046,0.0820257088566613,0.0813393280692304,0.0807765612615427,0.0802604449511385,0.0797782254961878,0.0794132351503103,0.0794132351503103, +0.353603147345487,0.353603147345487,0.352973048085529,0.350819363547997,0.348777604875693,0.346963995397512,0.345239012918302,0.343588700876456,0.342247821398022,0.342247821398022, + +00:02:04, +1.40894152288773E-07,1.40894152288773E-07,1.41461490090193E-07,1.37416029524083E-07,1.34076822611556E-07,1.31785717963579E-07,1.29896963033576E-07,1.28219468470764E-07,1.27038251706901E-07,1.27038251706901E-07, +1.40894152288773E-07,1.40894152288773E-07,1.41461490090193E-07,1.37416029524083E-07,1.34076822611556E-07,1.31785717963579E-07,1.29896963033576E-07,1.28219468470764E-07,1.27038251706901E-07,1.27038251706901E-07, +1.7934292901152E-06,1.7934292901152E-06,1.79869397658562E-06,1.75318121629E-06,1.71546658163659E-06,1.68916764900067E-06,1.66722427618799E-06,1.6476366594831E-06,1.63379878128532E-06,1.63379878128532E-06, +2.14873246820337E-05,2.14873246820337E-05,2.15291799085395E-05,2.10524245935646E-05,2.06551326803119E-05,2.03729503154188E-05,2.01344472656984E-05,1.99203782786582E-05,1.97684857884083E-05,1.97684857884083E-05, +0.000224244026344166,0.000224244026344166,0.000224470969926711,0.000220221239136436,0.000216648482595136,0.000214052259467454,0.000211825067422697,0.000209813159426327,0.000208376661956072,0.000208376661956072, +0.00199060607589818,0.00199060607589818,0.00199088130960469,0.00195967416505853,0.00193307740256458,0.00191317613581959,0.00189580027183271,0.00187997941305433,0.00186857407705241,0.00186857407705241, +0.0145582537085732,0.0145582537085732,0.0145487421731538,0.0143683920318867,0.0142113644547444,0.0140891926466974,0.0139801939077253,0.0138799141018261,0.0138064348224963,0.0138064348224963, +0.0838332737349193,0.0838332737349193,0.0837224557299314,0.0829567034626671,0.0822667572998391,0.0816999140308796,0.0811800505806071,0.0806945982398801,0.0803275988667712,0.0803275988667712, +0.355318109391519,0.355318109391519,0.354689180815816,0.352543294173912,0.35050175248486,0.348685702821952,0.346958292527134,0.345306199095953,0.343964931644193,0.343964931644193, + +00:02:05, +1.48848367300228E-07,1.48848367300228E-07,1.49451216292118E-07,1.45233444224277E-07,1.41730801048203E-07,1.39320982730802E-07,1.37334760477382E-07,1.35572434341545E-07,1.34333514532227E-07,1.34333514532227E-07, +1.48848367300228E-07,1.48848367300228E-07,1.49451216292118E-07,1.45233444224277E-07,1.41730801048203E-07,1.39320982730802E-07,1.37334760477382E-07,1.35572434341545E-07,1.34333514532227E-07,1.34333514532227E-07, +1.87992881849438E-06,1.87992881849438E-06,1.88548844258387E-06,1.83840356451277E-06,1.7991509977276E-06,1.77170617581582E-06,1.74881093425359E-06,1.72839306265671E-06,1.71399197233095E-06,1.71399197233095E-06, +2.23583116865084E-05,2.23583116865084E-05,2.24023197466982E-05,2.19126440186847E-05,2.15021598052584E-05,2.1209842947343E-05,2.09628151374265E-05,2.07412969554707E-05,2.05843689637338E-05,2.05843689637338E-05, +0.000231625885046635,0.000231625885046635,0.000231864638412179,0.000227530694774882,0.000223865918623308,0.000221196042393386,0.00021890597808746,0.000216839056910982,0.00021536556922443,0.00021536556922443, +0.00204120037128616,0.00204120037128616,0.00204151698455879,0.00200991130952044,0.00198282287764286,0.00196250406166311,0.0019447652972476,0.00192862680854043,0.00191700980142441,0.00191700980142441, +0.0148217618547422,0.0148217618547422,0.0148122984852316,0.0146308404078004,0.0144720040235749,0.0143481406610313,0.0142376370555326,0.0141360433571943,0.0140617041227267,0.0140617041227267, +0.0847651473617852,0.0847651473617852,0.0846542019576939,0.0838881917301925,0.0831947185082989,0.0826238214692331,0.082100228364315,0.0816115621002441,0.081242570187365,0.081242570187365, +0.35702165248746,0.35702165248746,0.356393908216263,0.354255724459229,0.352214446332301,0.350396014477606,0.348666226206054,0.347012397957829,0.345670773758203,0.345670773758203, + +00:02:06, +1.57177217355624E-07,1.57177217355624E-07,1.57817424139976E-07,1.53421766983494E-07,1.49749326694404E-07,1.47215784507096E-07,1.45127978509402E-07,1.43277335515761E-07,1.41978445357709E-07,1.41978445357709E-07, +1.57177217355624E-07,1.57177217355624E-07,1.57817424139976E-07,1.53421766983494E-07,1.49749326694404E-07,1.47215784507096E-07,1.45127978509402E-07,1.43277335515761E-07,1.41978445357709E-07,1.41978445357709E-07, +1.96978092143446E-06,1.96978092143446E-06,1.97564861093314E-06,1.92695392273324E-06,1.88611651599615E-06,1.85748707710502E-06,1.83360771991769E-06,1.81233240195855E-06,1.79735065579984E-06,1.79735065579984E-06, +2.32562760456538E-05,2.32562760456538E-05,2.3302518961099E-05,2.27997135505997E-05,2.2375737914518E-05,2.20730230992081E-05,2.18172477002574E-05,2.15880938316142E-05,2.14260131692057E-05,2.14260131692057E-05, +0.000239179205647596,0.000239179205647596,0.000239430156742814,0.000235011293388534,0.000231253131486281,0.00022850825919534,0.00022615416177752,0.000224031271060375,0.000222520215142393,0.000222520215142393, +0.00209258033634701,0.00209258033634701,0.00209293963154501,0.00206093525360282,0.00203335173088926,0.00201261098735729,0.00199450538762941,0.00197804616084536,0.00196621578489353,0.00196621578489353, +0.0150873546641959,0.0150873546641959,0.0150779426924356,0.0148953859865861,0.0147347429184158,0.0146091834569165,0.0144971701128627,0.0143942596564969,0.0143190601708853,0.0143190601708853, +0.0856974410318937,0.0856974410318937,0.0855863769946381,0.0848201265840553,0.0841231643205416,0.0835482362813314,0.0830209310801831,0.0825290698603653,0.0821581018189529,0.0821581018189529, +0.358713883252946,0.358713883252946,0.358087336264048,0.355956762192298,0.353915793077275,0.352095036227079,0.350362919185912,0.348707402022442,0.347365451743415,0.347365451743415, + +00:02:07, +1.65894771039276E-07,1.65894771039276E-07,1.66574257694178E-07,1.61995023626893E-07,1.58146245074716E-07,1.55483807602127E-07,1.53290167358477E-07,1.51347613088583E-07,1.49986418534348E-07,1.49986418534348E-07, +1.65894771039276E-07,1.65894771039276E-07,1.66574257694178E-07,1.61995023626893E-07,1.58146245074716E-07,1.55483807602127E-07,1.53290167358477E-07,1.51347613088583E-07,1.49986418534348E-07,1.49986418534348E-07, +2.06308263905635E-06,2.06308263905635E-06,2.06927194553897E-06,2.01892930694592E-06,1.97645924764597E-06,1.94660556074009E-06,1.9217090716331E-06,1.89954850152011E-06,1.88396829495977E-06,1.88396829495977E-06, +2.41817806507366E-05,2.41817806507366E-05,2.42303424207329E-05,2.37141975291718E-05,2.32764281885029E-05,2.296304801425E-05,2.26982987042882E-05,2.24613199751189E-05,2.22939680187268E-05,2.22939680187268E-05, +0.000246906151756085,0.000246906151756085,0.000247169694449759,0.000242665211394785,0.0002388122964449,0.000235991077005973,0.000233571777344993,0.000231391955229587,0.000229842751000553,0.000229842751000553, +0.00214474904532893,0.00214474904532893,0.00214515233065437,0.00211274910990502,0.00208466712092029,0.00206350009196269,0.00204502373282592,0.00202824067394882,0.00201619524461972,0.00201619524461972, +0.0153550183926841,0.0153550183926841,0.0153456610161699,0.0151620149220063,0.0149995674324859,0.0148723074831879,0.0147587796471005,0.0146545496689691,0.0145784896959085,0.0145784896959085, +0.0866301092332596,0.0866301092332596,0.0865189351129036,0.085752461808687,0.0850520482213215,0.084473112025367,0.0839421123563092,0.0834470751508306,0.0830741473150756,0.0830741473150756, +0.360394907117703,0.360394907117703,0.359769569765466,0.357646513949753,0.355605898193891,0.353782872757331,0.352048475529685,0.350391314691696,0.349049068454055,0.349049068454055, + +00:02:08, +1.7501548478459E-07,1.7501548478459E-07,1.75736251034964E-07,1.70967629118653E-07,1.66935787885331E-07,1.64139119081927E-07,1.61835257035584E-07,1.59797085662699E-07,1.58371184662251E-07,1.58371184662251E-07, +1.7501548478459E-07,1.7501548478459E-07,1.75736251034964E-07,1.70967629118653E-07,1.66935787885331E-07,1.64139119081927E-07,1.61835257035584E-07,1.59797085662699E-07,1.58371184662251E-07,1.58371184662251E-07, +2.15993278780535E-06,2.15993278780535E-06,2.16645769440589E-06,2.11442852046792E-06,2.07027708645014E-06,2.03915860727309E-06,2.01321119100273E-06,1.99013694187968E-06,1.97394010630772E-06,1.97394010630772E-06, +2.51353935751647E-05,2.51353935751647E-05,2.51863601905813E-05,2.46566655242079E-05,2.42047970666312E-05,2.38804801959823E-05,2.36065271527156E-05,2.3361531706063E-05,2.31887883817923E-05,2.31887883817923E-05, +0.000254808883480978,0.000254808883480978,0.000255085417504804,0.000250494621690544,0.000246545585451215,0.000243646659833637,0.000241160980643161,0.00023892325988235,0.00023733532526527,0.00023733532526527, +0.00219770949114558,0.00219770949114558,0.00219815808017908,0.0021653559085888,0.00213677212392969,0.00211517447267148,0.00209632344128112,0.00207921347071599,0.00206695131673262,0.00206695131673262, +0.0156247392312356,0.0156247392312356,0.0156154396121922,0.0154307133018742,0.0152664637897429,0.0151374991181424,0.0150224521544502,0.0149168999916786,0.0148399793536387,0.0148399793536387, +0.0875631072829648,0.0875631072829648,0.0874518314162825,0.08668515203435,0.0859813245405904,0.0853984030994884,0.0848637266575159,0.0843655324363436,0.0839906610626102,0.0839906610626102, +0.362064828336361,0.362064828336361,0.361440712370232,0.359325085111799,0.357284865985741,0.355459627594228,0.353722998146932,0.352064238223363,0.350721725609375,0.350721725609375, + +00:02:09, +1.8455420927386E-07,1.8455420927386E-07,1.85318334693137E-07,1.80354394016499E-07,1.76132579448857E-07,1.73196175198649E-07,1.70777563734928E-07,1.68639955730534E-07,1.67146876965275E-07,1.67146876965275E-07, +1.8455420927386E-07,1.8455420927386E-07,1.85318334693137E-07,1.80354394016499E-07,1.76132579448857E-07,1.73196175198649E-07,1.70777563734928E-07,1.68639955730534E-07,1.67146876965275E-07,1.67146876965275E-07, +2.26043196945187E-06,2.26043196945187E-06,2.26730689862236E-06,2.21355216302871E-06,2.16766971801968E-06,2.13524497931558E-06,2.10821205221426E-06,2.08419506946936E-06,2.06736306909597E-06,2.06736306909597E-06, +2.61176880178409E-05,2.61176880178409E-05,2.61711474743673E-05,2.5627692277963E-05,2.51614161903927E-05,2.48258873521429E-05,2.45424972464536E-05,2.42892905416569E-05,2.41110343287973E-05,2.41110343287973E-05, +0.000262889557116583,0.000262889557116583,0.000263179488003749,0.000258501693332856,0.000254455166826365,0.000251477168240901,0.000248923924206089,0.000246627332270878,0.000245000083258152,0.000245000083258152, +0.00225146458582389,0.00225146458582389,0.00225195979706358,0.00221875859783809,0.00218966973413352,0.00216763714523956,0.00214840754046019,0.00213096759331574,0.00211848705674561,0.00211848705674561, +0.0158965033101053,0.0158965033101053,0.015887264574604,0.0157014671520904,0.0155354181489699,0.0154047446736112,0.0152881740639968,0.0151812971535876,0.015103515730896,0.015103515730896, +0.0884963913139856,0.0884963913139856,0.0883850218270837,0.0876181527235716,0.0869109484400822,0.0863240647285005,0.0857857292721064,0.0852843970025486,0.0849075982686333,0.0849075982686333, +0.363723750003084,0.363723750003084,0.363100866585593,0.360992579877293,0.35895279960033,0.357125403116907,0.35538658880806,0.353726273745212,0.352383523807629,0.352383523807629, + +00:02:10, +1.94526195848645E-07,1.94526195848645E-07,1.95335842091022E-07,1.90170530936752E-07,1.85751643180425E-07,1.8266982783238E-07,1.80131796247568E-07,1.77890816069342E-07,1.76328017678738E-07,1.76328017678738E-07, +1.94526195848645E-07,1.94526195848645E-07,1.95335842091022E-07,1.90170530936752E-07,1.85751643180425E-07,1.8266982783238E-07,1.80131796247568E-07,1.77890816069342E-07,1.76328017678738E-07,1.76328017678738E-07, +2.36468257977603E-06,2.36468257977603E-06,2.37192240102626E-06,2.31640263953826E-06,2.26873862875069E-06,2.2349652305993E-06,2.20681141115885E-06,2.18182200578775E-06,2.1643359345442E-06,2.1643359345442E-06, +2.71292422456568E-05,2.71292422456568E-05,2.71852845564428E-05,2.66278576467726E-05,2.61468623455242E-05,2.57998423377424E-05,2.55067783278524E-05,2.5245163140427E-05,2.50612710754401E-05,2.50612710754401E-05, +0.000271150324832922,0.000271150324832922,0.000271454063854537,0.000266688591224352,0.000262543204943277,0.000259484759027811,0.000256862756932948,0.000254506316120359,0.00025283916684018,0.00025283916684018, +0.00230601716096391,0.00230601716096391,0.00230656031736801,0.00227296004433098,0.00224336286422821,0.00222089104443151,0.00220127897728737,0.00218350600365171,0.00217080543998281,0.00217080543998281, +0.0161702967026269,0.0161702967026269,0.0161611219397462,0.0159742624405817,0.0158064166077671,0.0156740303989362,0.0155559317416713,0.0154477276195191,0.0153690853494542,0.0153690853494542, +0.0894299182622259,0.0894299182622259,0.0893184630731962,0.0885514201577916,0.0878408759001049,0.0872500529507717,0.0867080762988263,0.0862036249430565,0.0858249149474852,0.0858249149474852, +0.365371774065989,0.365371774065989,0.364750133790254,0.36264910127862,0.360609801043324,0.358780300571949,0.357039348158399,0.355377521268956,0.35403456253986,0.35403456253986, + +00:02:11, +2.04947102929243E-07,2.04947102929243E-07,2.05804515992145E-07,2.0043166102836E-07,1.95808408063594E-07,1.92575330943502E-07,1.89913062386051E-07,1.87564656147645E-07,1.85929524448695E-07,1.85929524448695E-07, +2.04947102929243E-07,2.04947102929243E-07,2.05804515992145E-07,2.0043166102836E-07,1.95808408063594E-07,1.92575330943502E-07,1.89913062386051E-07,1.87564656147645E-07,1.85929524448695E-07,1.85929524448695E-07, +2.47278881693538E-06,2.47278881693538E-06,2.48040885455021E-06,2.42308416853277E-06,2.37358711444916E-06,2.33842171471732E-06,2.30911081423308E-06,2.2831186562573E-06,2.26495923473689E-06,2.26495923473689E-06, +2.81706395351547E-05,2.81706395351547E-05,2.82293567428414E-05,2.76577465418428E-05,2.71617174033237E-05,2.68029230972433E-05,2.64999448235471E-05,2.6229721245524E-05,2.60400689262471E-05,2.60400689262471E-05, +0.000279593334370745,0.000279593334370745,0.000279911298470164,0.000275057475803537,0.000270811859914191,0.000267671584919903,0.000264979623777034,0.000262562351318125,0.00026085471410051,0.00026085471410051, +0.00236136996821031,0.00236136996821031,0.00236196239674338,0.00232796303372362,0.00229785434586068,0.00227493902447785,0.00225494061859607,0.00223683158380576,0.00222390936201862,0.00222390936201862, +0.0164461054289752,0.0164461054289752,0.016436997690003,0.0162490850811476,0.0160794452064483,0.0159453424848529,0.0158257114941238,0.0157161777940311,0.0156366746699233,0.0156366746699233, +0.0903636458537509,0.0903636458537509,0.090252112675352,0.0894849114242217,0.0887710637065374,0.0881763246053423,0.0876307246340258,0.0871231731466726,0.0867425679080356,0.0867425679080356, +0.367009001341377,0.367009001341377,0.366388614248132,0.364294751196353,0.362255971192608,0.360424420087362,0.35868137573209,0.357018079704012,0.355674940203511,0.355674940203511, + +00:02:12, +2.15833002441752E-07,2.15833002441752E-07,2.16740514958124E-07,2.11153820454409E-07,2.06318715134528E-07,2.02928347034063E-07,2.00136875418552E-07,1.97676868541546E-07,1.95966716741264E-07,1.95966716741264E-07, +2.15833002441752E-07,2.15833002441752E-07,2.16740514958124E-07,2.11153820454409E-07,2.06318715134528E-07,2.02928347034063E-07,2.00136875418552E-07,1.97676868541546E-07,1.95966716741264E-07,1.95966716741264E-07, +2.58485668951487E-06,2.58485668951487E-06,2.5928727302459E-06,2.5337027902971E-06,2.48232028863261E-06,2.44571859354487E-06,2.4152136068231E-06,2.38818771876533E-06,2.36933529120479E-06,2.36933529120479E-06, +2.92424681133859E-05,2.92424681133859E-05,2.9303954301523E-05,2.87179488692265E-05,2.82065682611313E-05,2.78357126058987E-05,2.75225761864636E-05,2.72435416271857E-05,2.70480032172488E-05,2.70480032172488E-05, +0.000288220728741257,0.000288220728741257,0.00028855334046638,0.000283610502739935,0.000279263287283011,0.000276039794260972,0.000273276665439505,0.00027079757360751,0.000269048859049946,0.000269048859049946, +0.00241752567973498,0.00241752567973498,0.00241816871091813,0.00238377027114522,0.00235314693011026,0.00232978385954411,0.00230939525159087,0.00229094713649331,0.00227780163912917,0.00227780163912917, +0.016723915459838,0.016723915459838,0.0167148777575148,0.0165259209372129,0.0163544899318442,0.0162186670672816,0.0160974995725044,0.015986634025198,0.0159062700955418,0.0159062700955418, +0.0912975325922196,0.0912975325922196,0.0911859289345826,0.0904185844029109,0.0897014694380263,0.0891028373192327,0.0885536319590222,0.088042999284821,0.087660514741144,0.087660514741144, +0.368635531527782,0.368635531527782,0.36801640712193,0.365929630373731,0.363891409812154,0.362057860686374,0.36031276996579,0.358648046871072,0.357304754115853,0.357304754115853, + +00:02:13, +2.27200386251238E-07,2.27200386251238E-07,2.28160419811258E-07,2.22353466879568E-07,2.17298823972901E-07,2.13744953616662E-07,2.10819160510998E-07,2.0824325535937E-07,2.06455322260507E-07,2.06455322260507E-07, +2.27200386251238E-07,2.27200386251238E-07,2.28160419811258E-07,2.22353466879568E-07,2.17298823972901E-07,2.13744953616662E-07,2.10819160510998E-07,2.0824325535937E-07,2.06455322260507E-07,2.06455322260507E-07, +2.70099402425857E-06,2.70099402425857E-06,2.70942232498693E-06,2.64836637466351E-06,2.59504509050785E-06,2.55696184533896E-06,2.52522494147018E-06,2.49713369188791E-06,2.47756822318967E-06,2.47756822318967E-06, +3.03453210979926E-05,3.03453210979926E-05,3.04096724018402E-05,2.98090594690134E-05,2.92820067820064E-05,2.88987988102786E-05,2.85752568370106E-05,2.82872060243827E-05,2.80856542578341E-05,2.80856542578341E-05, +0.000297034645930564,0.000297034645930564,0.00029738233336416,0.000292349822634074,0.000287899637722498,0.000284591530710606,0.000281756018067832,0.000279214114286396,0.000277423731319094,0.000277423731319094, +0.00247448688873018,0.00247448688873018,0.00247518185619541,0.00244038438170398,0.00240924328798181,0.00238542824421124,0.00236464558432071,0.00234585538553014,0.00233248500875528,0.00233248500875528, +0.0170037127200013,0.0170037127200013,0.0169947480278032,0.0168047558254898,0.0166315367210155,0.0164939902310282,0.0163712821761541,0.0162590826083042,0.0161778579758783,0.0161778579758783, +0.0922315377465123,0.0922315377465123,0.0921198709198681,0.091352397754016,0.0906320514533815,0.0900295494949485,0.0894767567276566,0.0889630617991633,0.0885787138073143,0.0885787138073143, +0.370251463219814,0.370251463219814,0.36963361048653,0.36755383843092,0.365516215565712,0.363680720301053,0.361933628212189,0.360267519515503,0.358924100527232,0.358924100527232, + +00:02:14, +2.39066172599511E-07,2.39066172599511E-07,2.40081240101319E-07,2.34047485961981E-07,2.28765419198031E-07,2.25041649689308E-07,2.21976261175696E-07,2.19280034673179E-07,2.17411483373372E-07,2.17411483373372E-07, +2.39066172599511E-07,2.39066172599511E-07,2.40081240101319E-07,2.34047485961981E-07,2.28765419198031E-07,2.25041649689308E-07,2.21976261175696E-07,2.19280034673179E-07,2.17411483373372E-07,2.17411483373372E-07, +2.8213104734825E-06,2.8213104734825E-06,2.83016776884964E-06,2.76718462848607E-06,2.71187029262435E-06,2.67225927251629E-06,2.63925178571711E-06,2.61006288279598E-06,2.58976395559181E-06,2.58976395559181E-06, +3.14797964365396E-05,3.14797964365396E-05,3.15471110532521E-05,3.09316780537625E-05,3.03886297336282E-05,2.99927745680107E-05,2.96585761034846E-05,2.93613010856724E-05,2.91536072718116E-05,2.91536072718116E-05, +0.000306037218608842,0.000306037218608842,0.000306400415296971,0.000301277580722322,0.000296723056736284,0.000293328932946484,0.000290419812958972,0.00028781409991045,0.0002859814558612,0.0002859814558612, +0.00253225610991192,0.00253225610991192,0.00253300434996083,0.00249780791100323,0.00246614601090958,0.00244187479396679,0.00242069424616307,0.00240155897630998,0.00238796212997639,0.00238796212997639, +0.0172854830918476,0.0172854830918476,0.0172765943433086,0.0170855755195522,0.0169105714648766,0.0167712980133971,0.0166470454562088,0.0165335097894489,0.0164514246104463,0.0164514246104463, +0.0931656213385503,0.0931656213385503,0.0930538984559753,0.0922863109052721,0.091562768879166,0.090956420298178,0.0904000581540446,0.0898833198894091,0.089497124224539,0.089497124224539, +0.371856893921835,0.371856893921835,0.371240321342221,0.369167473879096,0.367130486030323,0.365293095785737,0.363544046753357,0.361876593320565,0.360533074634148,0.360533074634148, + +00:02:15, +2.51447712546041E-07,2.51447712546041E-07,2.52520420575034E-07,2.46253197848079E-07,2.40735616968712E-07,2.36835362214767E-07,2.33624945724946E-07,2.30803846955629E-07,2.28851763540192E-07,2.28851763540192E-07, +2.51447712546041E-07,2.51447712546041E-07,2.52520420575034E-07,2.46253197848079E-07,2.40735616968712E-07,2.36835362214767E-07,2.33624945724946E-07,2.30803846955629E-07,2.28851763540192E-07,2.28851763540192E-07, +2.94591752216828E-06,2.94591752216828E-06,2.95522103217157E-06,2.89026910279051E-06,2.83290650820284E-06,2.79172050910885E-06,2.75740292963475E-06,2.72708341484305E-06,2.70603022659947E-06,2.70603022659947E-06, +3.26464968451245E-05,3.26464968451245E-05,3.27168750433148E-05,3.20864091462047E-05,3.15270387264482E-05,3.11182375867649E-05,3.07731281617164E-05,3.04664183092907E-05,3.02524523377031E-05,3.02524523377031E-05, +0.00031523057384423,0.00031523057384423,0.000315609718722821,0.000310395916586558,0.000305735684365729,0.000302254134371436,0.000299270176267266,0.00029659965200106,0.000294724152659677,0.000294724152659677, +0.00259083578003302,0.00259083578003302,0.00259163863119991,0.00255604332566739,0.00252385761127126,0.00249912604570644,0.00247754378831833,0.00245806047629261,0.00244423558399497,0.00244423558399497, +0.0175692124187699,0.0175692124187699,0.0175604025068432,0.0173683657533218,0.017191580011732,0.0170505764077169,0.0169247755191161,0.0168099017690648,0.0167269562522325,0.0167269562522325, +0.0940997441313045,0.0940997441313045,0.0939879721114817,0.0932202840396607,0.0924935815974781,0.0918834096456803,0.0913234962005152,0.0908037335013143,0.0904157058563317,0.0904157058563317, +0.373451920061438,0.373451920061438,0.372836635627751,0.370770634134318,0.36873431770965,0.366895082930289,0.365144120813907,0.363475362920454,0.362131770592157,0.362131770592157, + +00:02:16, +2.64362796410521E-07,2.64362796410521E-07,2.65495847646795E-07,2.58988363668811E-07,2.53226971485243E-07,2.4914345260288E-07,2.45782413728146E-07,2.42831761520705E-07,2.40793153749258E-07,2.40793153749258E-07, +2.64362796410521E-07,2.64362796410521E-07,2.65495847646795E-07,2.58988363668811E-07,2.53226971485243E-07,2.4914345260288E-07,2.45782413728146E-07,2.42831761520705E-07,2.40793153749258E-07,2.40793153749258E-07, +3.07492849473737E-06,3.07492849473737E-06,3.08469593228733E-06,3.01773319959919E-06,2.95826619813879E-06,2.91545702789698E-06,2.87978899302855E-06,2.84830523483412E-06,2.82647659499996E-06,2.82647659499996E-06, +3.38460297462919E-05,3.38460297462919E-05,3.39195738749743E-05,3.32738620162421E-05,3.26978401511222E-05,3.2275790362508E-05,3.19195119739842E-05,3.1603153982508E-05,3.13827843282991E-05,3.13827843282991E-05, +0.000324616832821432,0.000324616832821432,0.000325012370141077,0.000319706963868692,0.000314939654901601,0.000311369262825274,0.000308309228717045,0.000305572886757958,0.000303653936440317,0.000303653936440317, +0.00265022825840544,0.00265022825840544,0.0026510870610251,0.00261509301387733,0.00258238052291186,0.00255718445824547,0.0025351966843141,0.00251536237550186,0.00250130787463103,0.00250130787463103, +0.0178548865085039,0.0178548865085039,0.0178461582849593,0.0176531122244695,0.0174745481707266,0.0173318113667823,0.0172044584300679,0.0170882447053534,0.0170044391111407,0.0170044391111407, +0.0950338676169903,0.0950338676169903,0.0949220531869829,0.0941542780832722,0.0934244502339223,0.0928104781933607,0.0922470315657372,0.0917242633148655,0.0913344192999436,0.0913344192999436, +0.375036637002756,0.375036637002756,0.374422648233214,0.372363415531233,0.370327806047135,0.36848677647318,0.366733944573989,0.365063921913176,0.363720281528605,0.363720281528605, + +00:02:17, +2.77829660215615E-07,2.77829660215615E-07,2.79025855869084E-07,2.72271192035808E-07,2.66257481492141E-07,2.61983723194363E-07,2.58466302470915E-07,2.55381282966834E-07,2.53253078953985E-07,2.53253078953985E-07, +2.77829660215615E-07,2.77829660215615E-07,2.79025855869084E-07,2.72271192035808E-07,2.66257481492141E-07,2.61983723194363E-07,2.58466302470915E-07,2.55381282966834E-07,2.53253078953985E-07,2.53253078953985E-07, +3.20845856150559E-06,3.20845856150559E-06,3.21870813994187E-06,3.14969217843123E-06,3.08806367768051E-06,3.04358214721947E-06,3.00652243232451E-06,2.97384011997549E-06,2.95121444717205E-06,2.95121444717205E-06, +3.50790072062786E-05,3.50790072062786E-05,3.5155821703189E-05,3.44946506172718E-05,3.39016451152481E-05,3.34660401170557E-05,3.30983312272233E-05,3.27721091202756E-05,3.25452028495013E-05,3.25452028495013E-05, +0.000334198110565031,0.000334198110565031,0.000334610489814068,0.000329212849990004,0.000324337096600583,0.000320676440301373,0.000317539085319967,0.000314735914776543,0.000312772916388182,0.000312772916388182, +0.00271043582743136,0.00271043582743136,0.00271135192321165,0.00267495928591462,0.0026417171016769,0.00261605241283955,0.00259365533051901,0.00257346708703318,0.00255918142882614,0.00255918142882614, +0.0181424911363779,0.0181424911363779,0.0181338474112372,0.0179398005977333,0.0177594617152126,0.0176149888062115,0.0174860802163501,0.0173685247176367,0.017283859357353,0.017283859357353, +0.0959679540054462,0.0959679540054462,0.0958561037034813,0.0950882546933594,0.094355336145766,0.0937375873245307,0.0931706256730296,0.0926448707326459,0.0922532258747612,0.0922532258747612, +0.376611139059587,0.376611139059587,0.37599845301277,0.373945913336573,0.371911045438985,0.37006827011439,0.368313611182103,0.366642362873241,0.365298699555189,0.365298699555189, + +00:02:18, +2.91866992128432E-07,2.91866992128432E-07,2.93129234401145E-07,2.86120345535982E-07,2.79845596780044E-07,2.7537442374458E-07,2.71694693414733E-07,2.68470357620904E-07,2.66249404511187E-07,2.66249404511187E-07, +2.91866992128432E-07,2.91866992128432E-07,2.93129234401145E-07,2.86120345535982E-07,2.79845596780044E-07,2.7537442374458E-07,2.71694693414733E-07,2.68470357620904E-07,2.66249404511187E-07,2.66249404511187E-07, +3.34662474481812E-06,3.34662474481812E-06,3.35737518538099E-06,3.28626316247761E-06,3.22241512278207E-06,3.1762110374607E-06,3.13771754713465E-06,3.10380168450528E-06,3.08035700375935E-06,3.08035700375935E-06, +3.63460458716153E-05,3.63460458716153E-05,3.64262372709087E-05,3.57493935218609E-05,3.51390693794387E-05,3.46895987349487E-05,3.43101942705557E-05,3.39738894031898E-05,3.3740312178479E-05,3.3740312178479E-05, +0.000343976515667507,0.000343976515667507,0.000344406191493441,0.000338915695875315,0.000333930131406599,0.000330177782668011,0.00032696185509705,0.000324090840769883,0.000322083195869186,0.000322083195869186, +0.00277146069314272,0.00277146069314272,0.00277243542474213,0.00273564437471432,0.00270186962595443,0.00267573221371458,0.00265292204666544,0.00263237694757027,0.0026178585971567,0.0026178585971567, +0.0184320120484841,0.0184320120484841,0.0184234555894919,0.0182284165081536,0.0180463063860339,0.0179000946077231,0.0177696268706112,0.017650727889628,0.0175652031246103,0.0175652031246103, +0.096901966212692,0.096901966212692,0.0967900863909513,0.0960221762465798,0.0952862014102796,0.094664699138349,0.094094240658852,0.0935655178683822,0.0931720876108838,0.0931720876108838, +0.378175519508349,0.378175519508349,0.377564142797198,0.375518221762483,0.373484129246988,0.371639656528148,0.369883212767756,0.368210777364205,0.366867115780365,0.366867115780365, + +00:02:19, +3.06493938899249E-07,3.06493938899249E-07,3.07825233474443E-07,3.00554947223072E-07,2.94010224685325E-07,2.89334257905834E-07,2.85486118655638E-07,2.82117379981718E-07,2.79800442618988E-07,2.79800442618988E-07, +3.06493938899249E-07,3.06493938899249E-07,3.07825233474443E-07,3.00554947223072E-07,2.94010224685325E-07,2.89334257905834E-07,2.85486118655638E-07,2.82117379981718E-07,2.79800442618988E-07,2.79800442618988E-07, +3.48954592486486E-06,3.48954592486486E-06,3.50081646411934E-06,3.42756514445154E-06,3.36143857613082E-06,3.31346072721476E-06,3.27349048650174E-06,3.2383053860045E-06,3.21401932602471E-06,3.21401932602471E-06, +3.76477669051116E-05,3.76477669051116E-05,3.77314438444363E-05,3.70387138567992E-05,3.64107332927537E-05,3.59470826996803E-05,3.55557140521689E-05,3.52091051148003E-05,3.49687212011665E-05,3.49687212011665E-05, +0.000353954150021949,0.000353954150021949,0.000354401582151281,0.000348817615681964,0.000343720874676943,0.000339875399394459,0.000336579640805422,0.0003336397632954,0.000331586872156332,0.000331586872156332, +0.00283330498574879,0.00283330498574879,0.002834339696359,0.00279715043642572,0.00276284029722558,0.00273622608860513,0.00271299907638086,0.00269209421791032,0.00267734165435582,0.00267734165435582, +0.0187234349647722,0.0187234349647722,0.018714968496901,0.0185189455642294,0.0183350678947299,0.0181871146223327,0.0180550843540511,0.0179348402726241,0.0178484565134128,0.0178484565134128, +0.0978358678496652,0.0978358678496652,0.0977239646770811,0.0969560058274221,0.0962170088132569,0.0955917764384419,0.095017839361474,0.0944861675356677,0.0940909672378762,0.0940909672378762, +0.379729870600855,0.379729870600855,0.37911980940629,0.377080433979664,0.375047149811157,0.373201027375497,0.37144284045394,0.369769255951031,0.368425620321574,0.368425620321574, + +00:02:20, +3.21730112296061E-07,3.21730112296061E-07,3.23133570853427E-07,3.15594587104681E-07,3.08770736585908E-07,3.03882389706664E-07,2.99859567380498E-07,2.96341199161417E-07,2.93924958752919E-07,2.93924958752919E-07, +3.21730112296061E-07,3.21730112296061E-07,3.23133570853427E-07,3.15594587104681E-07,3.08770736585908E-07,3.03882389706664E-07,2.99859567380498E-07,2.96341199161417E-07,2.93924958752919E-07,2.93924958752919E-07, +3.63734284517644E-06,3.63734284517644E-06,3.64915324238613E-06,3.57371899211428E-06,3.50525395284983E-06,3.45545010912668E-06,3.4139592548234E-06,3.37746853138879E-06,3.3523183218856E-06,3.3523183218856E-06, +3.89847959212489E-05,3.89847959212489E-05,3.90720691481973E-05,3.83632392375555E-05,3.77172617275192E-05,3.72391130293006E-05,3.68355080555675E-05,3.64783710782874E-05,3.62310433491268E-05,3.62310433491268E-05, +0.000364133108559442,0.000364133108559442,0.000364598761715973,0.000358920716533582,0.00035371143491321,0.000349771393281799,0.000346394538669759,0.000343384774486229,0.000341286036160635,0.000341286036160635, +0.0028959707601912,0.0028959707601912,0.00289706679312493,0.00285947955098088,0.00282463124062308,0.00279753618930094,0.00277388858772729,0.00275262108349752,0.0027376327998436,0.0027376327998436, +0.0190167455820655,0.0190167455820655,0.0190083717870562,0.0188113733509949,0.0186257319266597,0.0184760346734706,0.0183424385995321,0.0182208478886183,0.018133605594143,0.018133605594143, +0.0987696232111319,0.0987696232111319,0.0986577026761865,0.0978897072168154,0.0971477218377133,0.0965187827216992,0.0959413853098193,0.0954067832368593,0.0950098281736955,0.0950098281736955, +0.381274283576927,0.381274283576927,0.380665543661088,0.378632642130334,0.376600198462215,0.374752473316697,0.372992584369451,0.371317888212295,0.369974302317328,0.369974302317328, + +00:02:21, +3.37595595533485E-07,3.37595595533485E-07,3.39074438290165E-07,3.31259328623319E-07,3.24146974391845E-07,3.19038450026706E-07,3.14834492319401E-07,3.11161125323407E-07,3.08642178098723E-07,3.08642178098723E-07, +3.37595595533485E-07,3.37595595533485E-07,3.39074438290165E-07,3.31259328623319E-07,3.24146974391845E-07,3.19038450026706E-07,3.14834492319401E-07,3.11161125323407E-07,3.08642178098723E-07,3.08642178098723E-07, +3.7901381178012E-06,3.7901381178012E-06,3.80250866224884E-06,3.72484745347676E-06,3.65398304587554E-06,3.60229994541084E-06,3.5592437174559E-06,3.52141028258097E-06,3.49537275163057E-06,3.49537275163057E-06, +4.03577629210075E-05,4.03577629210075E-05,4.0448745298944E-05,3.97236017021638E-05,3.90592840135602E-05,3.85663152114238E-05,3.81501982352257E-05,3.77823065925361E-05,3.75278965358074E-05,3.75278965358074E-05, +0.000374515478991139,0.000374515478991139,0.000374999822812791,0.000369227098258659,0.000363903913497009,0.000359867860198476,0.000356408638118407,0.000353327959787233,0.000351182772166685,0.000351182772166685, +0.00295945999670631,0.00295945999670631,0.00296061869499041,0.00292263372267026,0.0028872445054974,0.00285966459220118,0.00283559267374858,0.00281395965496443,0.0027987341582653,0.0027987341582653, +0.0193119295770036,0.0193119295770036,0.0193036510929384,0.0191056854330194,0.01891828414405,0.018766840560024,0.0186316755146129,0.0185087367333381,0.018420636410112,0.018420636410112, +0.0997031972647703,0.0997031972647703,0.099591265178294,0.0988232448809179,0.098078304652758,0.0974456821672436,0.0968648427124829,0.0963273291521471,0.0959286345137881,0.0959286345137881, +0.382808848676836,0.382808848676836,0.382201435395957,0.380174937341014,0.378143365533914,0.376294084023461,0.374532533661044,0.372856762752232,0.371513249939122,0.371513249939122, + +00:02:22, +3.54110949694615E-07,3.54110949694615E-07,3.55668507971385E-07,3.47569715130012E-07,3.4015925702916E-07,3.34822543065641E-07,3.30430816192717E-07,3.26596936115353E-07,3.23971791980431E-07,3.23971791980431E-07, +3.54110949694615E-07,3.54110949694615E-07,3.55668507971385E-07,3.47569715130012E-07,3.4015925702916E-07,3.34822543065641E-07,3.30430816192717E-07,3.26596936115353E-07,3.23971791980431E-07,3.23971791980431E-07, +3.94805622816344E-06,3.94805622816344E-06,3.96100774641541E-06,3.88107516167739E-06,3.80774953101097E-06,3.7541328730472E-06,3.70946560599769E-06,3.67025166186459E-06,3.64330323331712E-06,3.64330323331712E-06, +4.17673022261522E-05,4.17673022261522E-05,4.18621087394191E-05,4.11204376445648E-05,4.04374338718721E-05,3.99293191376645E-05,3.95004109516639E-05,3.91215353676301E-05,3.8859903092214E-05,3.8859903092214E-05, +0.000385103341554969,0.000385103341554969,0.000385606850509212,0.000379738853133874,0.000374300404430457,0.000370166888820566,0.000366624021524186,0.000363471397695674,0.000361279157572864,0.000361279157572864, +0.00302377460139427,0.00302377460139427,0.00302499730736836,0.0029866148807254,0.00295068206599015,0.00292261329887608,0.00289811335302499,0.0028761119686807,0.00286064778003694,0.00286064778003694, +0.019608972608911,0.019608972608911,0.019600792029819,0.0194018673573317,0.0192127101889655,0.0190595180593023,0.018922780984508,0.0187984927792077,0.0187095349805312,0.0187095349805312, +0.100636555640423,0.100636555640423,0.100524617638393,0.0997565839600817,0.0990087221026395,0.0983724396255702,0.0977881764469182,0.0972477701287918,0.0968473510203546,0.0968473510203546, +0.384333655153579,0.384333655153579,0.383727573470508,0.38170740973515,0.379676740375185,0.377825948191032,0.376062776505427,0.374385967212618,0.373042550403193,0.373042550403193, + +00:02:23, +3.71297220144373E-07,3.71297220144373E-07,3.729369389565E-07,3.64546776349009E-07,3.56828386915516E-07,3.5125525280478E-07,3.46668938151376E-07,3.42668883095787E-07,3.39933964282272E-07,3.39933964282272E-07, +3.71297220144373E-07,3.71297220144373E-07,3.729369389565E-07,3.64546776349009E-07,3.56828386915516E-07,3.5125525280478E-07,3.46668938151376E-07,3.42668883095787E-07,3.39933964282272E-07,3.39933964282272E-07, +4.11122353960359E-06,4.11122353960359E-06,4.1247774027155E-06,4.04252863953678E-06,3.96667897165498E-06,3.91107340865533E-06,3.86474852325322E-06,3.82411555691889E-06,3.79623224785116E-06,3.79623224785116E-06, +4.3214052413001E-05,4.3214052413001E-05,4.33128001715036E-05,4.25543877474283E-05,4.18523493477559E-05,4.13287590375282E-05,4.08867769059769E-05,4.04966854597928E-05,4.02276897020272E-05,4.02276897020272E-05, +0.000395898768767009,0.000395898768767009,0.000396421922064925,0.000390458065632181,0.000384902994081417,0.000380670560376735,0.000377042763949843,0.000373817159506523,0.00037157726263619,0.00037157726263619, +0.00308891640679466,0.00308891640679466,0.0030902044617152,0.00305142487990788,0.00301494582161426,0.00298638423663549,0.00296145257023474,0.00293907998730891,0.00292337564189812,0.00292337564189812, +0.0199078603225938,0.0199078603225938,0.0198997801980887,0.0196999046562705,0.0195089956862062,0.01935405292993,0.0192157408749739,0.0190901019782369,0.0190002873034104,0.0190002873034104, +0.101569664619516,0.101569664619516,0.101457726165849,0.100689690257991,0.0999389396959596,0.0992990206078547,0.0987113520487908,0.098168071670529,0.097765943111781,0.097765943111781, +0.385848791284992,0.385848791284992,0.385244045781367,0.383230148445547,0.381200411362145,0.3793481535501,0.377583400121101,0.375905588284499,0.374562289982132,0.374562289982132, + +00:02:24, +3.8917594293297E-07,3.8917594293297E-07,3.90901383605185E-07,3.82212034832174E-07,3.74175656426264E-07,3.68357649459851E-07,3.63569740208922E-07,3.59397698152904E-07,3.56549337862966E-07,3.56549337862966E-07, +3.8917594293297E-07,3.8917594293297E-07,3.90901383605185E-07,3.82212034832174E-07,3.74175656426264E-07,3.68357649459851E-07,3.63569740208922E-07,3.59397698152904E-07,3.56549337862966E-07,3.56549337862966E-07, +4.27976829760073E-06,4.27976829760073E-06,4.29394642826139E-06,4.20933630378986E-06,4.13089882320825E-06,4.07324795304723E-06,4.02521794787748E-06,3.98312672553565E-06,3.95428414374877E-06,3.95428414374877E-06, +4.46986562457022E-05,4.46986562457022E-05,4.4801464488874E-05,4.40260969144807E-05,4.33046727434444E-05,4.2765273411781E-05,4.23099310738365E-05,4.19083892057988E-05,4.16318873361865E-05,4.16318873361865E-05, +0.00040690382517746,0.00040690382517746,0.000407447106686528,0.000401386812175632,0.000395713760933482,0.000391380948397894,0.000387666932898155,0.000384367309062386,0.000382079150221786,0.000382079150221786, +0.00315488717246812,0.00315488717246812,0.0031562419161182,0.00311706550110455,0.00308003759784064,0.00305097925910403,0.00302561219672222,0.00300286560036707,0.00298691964747152,0.00298691964747152, +0.0202085783510662,0.0202085783510662,0.0202006011860144,0.0199997828502626,0.0198071262461309,0.0196504309146662,0.0195105410351223,0.019383550264839,0.019292879358384,0.019292879358384, +0.102502491124643,0.102502491124643,0.102390557513986,0.101622530230972,0.100868923595055,0.100225391275426,0.0996343357014983,0.0990881999271369,0.0986843768522317,0.0986843768522317, +0.387354344385703,0.387354344385703,0.386750939273787,0.384743241626653,0.382714465909932,0.380860786878559,0.379094490780037,0.377415711719766,0.376072554016334,0.376072554016334, + +00:02:25, +4.07769151188048E-07,4.07769151188048E-07,4.09583993993084E-07,4.00587512401613E-07,3.9222285434942E-07,3.86151295923537E-07,3.81154593663943E-07,3.76804599914118E-07,3.73839040960994E-07,3.73839040960994E-07, +4.07769151188048E-07,4.07769151188048E-07,4.09583993993084E-07,4.00587512401613E-07,3.9222285434942E-07,3.86151295923537E-07,3.81154593663943E-07,3.76804599914118E-07,3.73839040960994E-07,3.73839040960994E-07, +4.45382063367838E-06,4.45382063367838E-06,4.46864551328935E-06,4.38162846899631E-06,4.30053843715666E-06,4.24078479545924E-06,4.19100123870193E-06,4.1474118000184E-06,4.11758514158048E-06,4.11758514158048E-06, +4.62217606090432E-05,4.62217606090432E-05,4.6328750709194E-05,4.55362142023634E-05,4.47950505502416E-05,4.42395049653233E-05,4.3770512638995E-05,4.33572831568815E-05,4.30731311869675E-05,4.30731311869675E-05, +0.000418120567131242,0.000418120567131242,0.000418684465286889,0.000412527160892914,0.000406734775340685,0.000402300118471512,0.000398498588066663,0.000395123902508048,0.000392786875556944,0.000392786875556944, +0.00322168858558376,0.00322168858558376,0.00322311135588861,0.00318353845192848,0.00314595914669097,0.00311640014680242,0.00309059403107241,0.00306747062479743,0.0030512816278288,0.0030512816278288, +0.0205111123182083,0.0205111123182083,0.0205032405724275,0.0203014874505293,0.0201070874674096,0.0199486377431541,0.0198071673001638,0.0196788235585767,0.019587297109467,0.019587297109467, +0.103435002709311,0.103435002709311,0.103323079069822,0.10255507097747,0.101798640605542,0.101151518429404,0.100557094225851,0.100008121684165,0.099602618941404,0.099602618941404, +0.388850400818925,0.388850400818925,0.388248339953119,0.386246776466662,0.384218990484397,0.382363934013119,0.380596133819204,0.378916422342579,0.377573426925306,0.377573426925306, + +00:02:26, +4.27099381494115E-07,4.27099381494115E-07,4.29007428314256E-07,4.19695736579136E-07,4.10992272328159E-07,4.04658254196356E-07,3.99445365511421E-07,3.94911300144967E-07,3.9182469358943E-07,3.9182469358943E-07, +4.27099381494115E-07,4.27099381494115E-07,4.29007428314256E-07,4.19695736579136E-07,4.10992272328159E-07,4.04658254196356E-07,3.99445365511421E-07,3.94911300144967E-07,3.9182469358943E-07,3.9182469358943E-07, +4.63351256899414E-06,4.63351256899414E-06,4.64900724468236E-06,4.55953735113003E-06,4.47572906483282E-06,4.41381411746396E-06,4.36222763874231E-06,4.31709929126479E-06,4.28626333809904E-06,4.28626333809904E-06, +4.77840164408152E-05,4.77840164408152E-05,4.78953119058628E-05,4.70853927520455E-05,4.6324133380202E-05,4.5752100539592E-05,4.52691649263121E-05,4.48440080121603E-05,4.45520606015752E-05,4.45520606015752E-05, +0.000429551042533173,0.000429551042533173,0.000430136050249154,0.000423881171381578,0.000417968099286902,0.000413430128000589,0.000409539781107012,0.000406088988049597,0.000403702485989778,0.000403702485989778, +0.00328932226151198,0.00328932226151198,0.00329081439416026,0.00325084536732523,0.00321271214733614,0.00318264860773474,0.00315639979969115,0.00313289680554122,0.00311646334206253,0.00311646334206253, +0.0208154478413553,0.0208154478413553,0.0208076839293421,0.0206050039617246,0.0204088649397056,0.0202486591346004,0.0201056054940818,0.0199759077668408,0.0198835265077416,0.0198835265077416, +0.104367167547842,0.104367167547842,0.104255258843963,0.103487280227691,0.102728058166026,0.102077369500492,0.101479595069912,0.100927804352822,0.100520636704439,0.100520636704439, +0.390337046008096,0.390337046008096,0.389736332896132,0.387740839199465,0.385714070613631,0.38385767986075,0.382088413651948,0.380407804060633,0.379064992218817,0.379064992218817, + +00:02:27, +4.47189680257897E-07,4.47189680257897E-07,4.49194857268944E-07,4.39559747001126E-07,4.30506711289406E-07,4.23901091804466E-07,4.18464424841623E-07,4.13740010135961E-07,4.10528413918916E-07,4.10528413918916E-07, +4.47189680257897E-07,4.47189680257897E-07,4.49194857268944E-07,4.39559747001126E-07,4.30506711289406E-07,4.23901091804466E-07,4.18464424841623E-07,4.13740010135961E-07,4.10528413918916E-07,4.10528413918916E-07, +4.81897801761427E-06,4.81897801761427E-06,4.83516610917495E-06,4.7431970708487E-06,4.65660386085676E-06,4.59246799656288E-06,4.53902827888943E-06,4.49231959253281E-06,4.46044871005123E-06,4.46044871005123E-06, +4.93860786637568E-05,4.93860786637568E-05,4.95018051393462E-05,4.86742897198149E-05,4.78925758973735E-05,4.73037110445154E-05,4.68065353343308E-05,4.6369208551612E-05,4.60693190152779E-05,4.60693190152779E-05, +0.00044119729061771,0.00044119729061771,0.00044180390519538,0.000435450894474945,0.000429415786149945,0.000424773025967251,0.000420792555388883,0.000417264605718128,0.000414828020752448,0.000414828020752448, +0.00335778974442233,0.00335778974442233,0.00335935257249339,0.00331898781018433,0.00328029820670013,0.0032497262779811,0.00322303115739098,0.00319914581611906,0.00318246647786381,0.00318246647786381, +0.0211215705338214,0.0211215705338214,0.0211139168245081,0.0209103178845035,0.0207124442462894,0.0205504808003867,0.0204058414322385,0.0202747887874598,0.020181553493976,0.020181553493976, +0.105298954425438,0.105298954425438,0.105187065460657,0.104419126333411,0.103657144337966,0.103002912538933,0.102401806298997,0.101847215960019,0.101438398081991,0.101438398081991, +0.391814364448363,0.391814364448363,0.391215002262183,0.389225515116431,0.387199790899358,0.385342108409992,0.383571413779213,0.381889939876289,0.380547332507917,0.380547332507917, + +00:02:28, +4.68063610058209E-07,4.68063610058209E-07,4.70169970435299E-07,4.60203101817451E-07,4.50789487857105E-07,4.43902888202984E-07,4.38234649225133E-07,4.3331344707598E-07,4.29972824647402E-07,4.29972824647402E-07, +4.68063610058209E-07,4.68063610058209E-07,4.70169970435299E-07,4.60203101817451E-07,4.50789487857105E-07,4.43902888202984E-07,4.38234649225133E-07,4.3331344707598E-07,4.29972824647402E-07,4.29972824647402E-07, +5.01035278947406E-06,5.01035278947406E-06,5.02725849624146E-06,4.93274365644451E-06,4.84329788625672E-06,4.77688040946085E-06,4.72153618128355E-06,4.67320498289166E-06,4.64027311767461E-06,4.64027311767461E-06, +5.10286061171006E-05,5.10286061171006E-05,5.11488913881123E-05,5.03035662078725E-05,4.95010367486271E-05,4.88949913900452E-05,4.83832752674251E-05,4.7933533568609E-05,4.76255538841059E-05,4.76255538841059E-05, +0.000453061341723243,0.000453061341723243,0.00045369006475977,0.000447238372013662,0.000441079880470304,0.00043633085270096,0.000432258945768501,0.000428652787137995,0.000426165510728929,0.000426165510728929, +0.00342709250788619,0.00342709250788619,0.00342872736148318,0.00338796727195537,0.00334871886006896,0.00331763472229563,0.00329048968798222,0.00326621925921664,0.00324929265210518,0.00324929265210518, +0.0214294660073584,0.0214294660073584,0.0214219248238964,0.0212174147180253,0.0210178109665847,0.0208540884466148,0.0207078609239148,0.0205754525112438,0.020481364001177,0.020481364001177, +0.10623033272839,0.10623033272839,0.106118468147997,0.105350578257938,0.104585867795698,0.10392811620462,0.103323696585826,0.102766325138568,0.102355871620446,0.102355871620446, +0.393282439717912,0.393282439717912,0.392684431304253,0.390700888578039,0.388676235028161,0.386817302742103,0.385045216800626,0.383362911897547,0.382020529515798,0.382020529515798, + +00:02:29, +4.89745255979014E-07,4.89745255979014E-07,4.91956982623679E-07,4.81649884073007E-07,4.71864440748805E-07,4.64687241163437E-07,4.58779431082624E-07,4.53654840410836E-07,4.50181059355259E-07,4.50181059355259E-07, +4.89745255979014E-07,4.89745255979014E-07,4.91956982623679E-07,4.81649884073007E-07,4.71864440748805E-07,4.64687241163437E-07,4.58779431082624E-07,4.53654840410836E-07,4.50181059355259E-07,4.50181059355259E-07, +5.20777459302512E-06,5.20777459302512E-06,5.22542270066863E-06,5.12831504647703E-06,5.03594811127111E-06,4.96718723502314E-06,4.90988626237345E-06,4.85988963035842E-06,4.82587030788017E-06,4.82587030788017E-06, +5.27122614877451E-05,5.27122614877451E-05,5.2837235479196E-05,5.19738871945516E-05,5.11501784940983E-05,5.05266004172871E-05,5.00000400675431E-05,4.95376358020495E-05,4.92214166171371E-05,4.92214166171371E-05, +0.000465145217070905,0.000465145217070905,0.000465796554366486,0.000459245636621877,0.000452962417724536,0.000448105639651309,0.000443940978361691,0.000440255555299593,0.000437716978227302,0.000437716978227302, +0.00349723195548377,0.00349723195548377,0.00349894016137291,0.00345778517326859,0.00341797557170428,0.00338637543470914,0.00335877690486888,0.00333411866727528,0.00331694341142863,0.00331694341142863, +0.0217391198745503,0.0217391198745503,0.021731693494122,0.0215262799623903,0.0213249506786489,0.0211594677765856,0.0210116497747852,0.0208778848244634,0.0207829439570777,0.0207829439570777, +0.107161272434454,0.107161272434454,0.10704943672827,0.106281605566238,0.105514197816616,0.104852949757356,0.104245235200829,0.10368510111753,0.103273026462292,0.103273026462292, +0.394741354489151,0.394741354489151,0.394144702379833,0.392167043025341,0.390143485782578,0.388283345042069,0.386509904425426,0.384826801348884,0.383484664088519,0.383484664088519, + +00:02:30, +5.12259231924284E-07,5.12259231924284E-07,5.14580640212163E-07,5.03924708070533E-07,4.9375593715414E-07,4.86278273143958E-07,4.80122684038012E-07,4.74787938185636E-07,4.71176768844403E-07,4.71176768844403E-07, +5.12259231924284E-07,5.12259231924284E-07,5.14580640212163E-07,5.03924708070533E-07,4.9375593715414E-07,4.86278273143958E-07,4.80122684038012E-07,4.74787938185636E-07,4.71176768844403E-07,4.71176768844403E-07, +5.41138303757079E-06,5.41138303757079E-06,5.42979892481384E-06,5.33005109208971E-06,5.23469341783291E-06,5.16352625691646E-06,5.10421533566129E-06,5.05250959472126E-06,5.0173759171219E-06,5.0173759171219E-06, +5.4437711241074E-05,5.4437711241074E-05,5.45675060184141E-05,5.36859214641861E-05,5.28406675372624E-05,5.21992008292567E-05,5.16574889455681E-05,5.11821718681005E-05,5.08575625083946E-05,5.08575625083946E-05, +0.000477450928547881,0.000477450928547881,0.000478125390012021,0.000471474711488021,0.000465065424103261,0.000460099409165381,0.000455840670321456,0.000452074924336654,0.000449484436756564,0.000449484436756564, +0.00356820942141532,0.00356820942141532,0.00356999230267118,0.00352844286455956,0.0034880697354614,0.00345594983913649,0.00342789425164916,0.00340284550308721,0.00338542023283824,0.00338542023283824, +0.0220505177511461,0.0220505177511461,0.022043208404802,0.0218368991210129,0.0216338489615889,0.0214666044932148,0.0213171937893282,0.0211820716112646,0.0210862792865612,0.0210862792865612, +0.108091744103358,0.108091744103358,0.107979941608467,0.107212178415213,0.106442104271498,0.105777383047267,0.105166392002601,0.104603513712713,0.104189832336642,0.104189832336642, +0.396191190539745,0.396191190539745,0.395595896961675,0.393624060991284,0.391601625052043,0.389740316609467,0.387965557483255,0.386281688581942,0.384939816205593,0.384939816205593, + +00:02:31, +5.3563068691335E-07,5.3563068691335E-07,5.38066227461935E-07,5.27052725713338E-07,5.16488879093873E-07,5.08700637640867E-07,5.02288849253625E-07,4.96737013369569E-07,4.92984127460052E-07,4.92984127460052E-07, +5.3563068691335E-07,5.3563068691335E-07,5.38066227461935E-07,5.27052725713338E-07,5.16488879093873E-07,5.08700637640867E-07,5.02288849253625E-07,4.96737013369569E-07,4.92984127460052E-07,4.92984127460052E-07, +5.62131963529086E-06,5.62131963529086E-06,5.64052928055035E-06,5.53809355901102E-06,5.43967460173766E-06,5.36603716593497E-06,5.30466211413433E-06,5.25120283005066E-06,5.21492747395436E-06,5.21492747395436E-06, +5.62056255514465E-05,5.62056255514465E-05,5.63403753202548E-05,5.54403415366504E-05,5.45731740546671E-05,5.39134591212795E-05,5.33562849123218E-05,5.2867802191578E-05,5.25346506683764E-05,5.25346506683764E-05, +0.000489980478495192,0.000489980478495192,0.000490678578052092,0.000483927610150156,0.000477390916293734,0.000472314174269653,0.000467960029620067,0.000464112899308027,0.000461469890807906,0.000461469890807906, +0.00364002617111621,0.00364002617111621,0.00364188504677313,0.0035999416266976,0.00355900267541146,0.00352635928998808,0.00349784310272016,0.00347240116039517,0.00345472452429725,0.00345472452429725, +0.022363645258331,0.022363645258331,0.0223564551308527,0.022149257702932,0.0219444913979136,0.0217754843013855,0.0216244787731751,0.0214879987560219,0.0213913559140219,0.0213913559140219, +0.109021718867471,0.109021718867471,0.108909953770923,0.108142267544132,0.107369557614989,0.106701386505364,0.106087137428503,0.105521533317318,0.105106259549898,0.105106259549898, +0.397632028763507,0.397632028763507,0.397038095648402,0.395072024111869,0.393050733843692,0.391188297869185,0.389412255934807,0.387727653086088,0.386386064990431,0.386386064990431, + +00:02:32, +5.59885311355394E-07,5.59885311355394E-07,5.62439572811189E-07,5.510596328266E-07,5.40088709758119E-07,5.31979525520267E-07,5.25302901746025E-07,5.19526870161792E-07,5.15627839393788E-07,5.15627839393788E-07, +5.59885311355394E-07,5.59885311355394E-07,5.62439572811189E-07,5.510596328266E-07,5.40088709758119E-07,5.31979525520267E-07,5.25302901746025E-07,5.19526870161792E-07,5.15627839393788E-07,5.15627839393788E-07, +5.83772780295695E-06,5.83772780295695E-06,5.85775779090075E-06,5.752586129242E-06,5.65103437449658E-06,5.57486156201266E-06,5.51136721238486E-06,5.45610918689957E-06,5.41866440127953E-06,5.41866440127953E-06, +5.80166782323793E-05,5.80166782323793E-05,5.81565193374629E-05,5.72378235965931E-05,5.63483719253458E-05,5.56700455110614E-05,5.50970947092304E-05,5.45951909369862E-05,5.42533439552419E-05,5.42533439552419E-05, +0.000502735859499926,0.000502735859499926,0.000503458114993045,0.000496606336285877,0.000489940901266998,0.000484751938456411,0.000480301054835627,0.000476371475983911,0.000473675335640459,0.000473675335640459, +0.00371268340187542,0.00371268340187542,0.00371461958658516,0.00367228267161783,0.00363077564646729,0.00359760507278525,0.00356862476388666,0.00354278696449599,0.00352485762532918,0.00352485762532918, +0.0226784880249383,0.0226784880249383,0.0226714192547263,0.0224633412250597,0.0222568635758244,0.0220860929102388,0.0219334905353968,0.0217956521456294,0.0216981597656657,0.0216981597656657, +0.109951168422609,0.109951168422609,0.109839444764113,0.109071844265215,0.108296528876225,0.10762493113425,0.107007442485415,0.106439130892726,0.106022278976558,0.106022278976558, +0.39906394918114,0.39906394918114,0.398471378174987,0.396511013137168,0.394490892293018,0.392627368382001,0.39085007888234,0.389164773498818,0.387823488720654,0.387823488720654, + +00:02:33, +5.85049343301783E-07,5.85049343301783E-07,5.87727055146255E-07,5.75971675455884E-07,5.64581419822421E-07,5.56140671328325E-07,5.49190356681165E-07,5.43182850277055E-07,5.39133144966571E-07,5.39133144966571E-07, +5.85049343301783E-07,5.85049343301783E-07,5.87727055146255E-07,5.75971675455884E-07,5.64581419822421E-07,5.56140671328325E-07,5.49190356681165E-07,5.43182850277055E-07,5.39133144966571E-07,5.39133144966571E-07, +6.06075286334001E-06,6.06075286334001E-06,6.08163039136032E-06,5.9736744024313E-06,5.86891736487601E-06,5.79014295592343E-06,5.72447314841951E-06,5.66737041419398E-06,5.62872801828415E-06,5.62872801828415E-06, +5.98715466664422E-05,5.98715466664422E-05,6.00166175903428E-05,5.90790474223867E-05,5.81669386599322E-05,5.74696338684489E-05,5.68805887386765E-05,5.63650059392375E-05,5.60143089056761E-05,5.60143089056761E-05, +0.000515719054191886,0.000515719054191886,0.000516465987287724,0.000509512883506718,0.000502717376069543,0.000497414695474651,0.000492865734943091,0.000488852640636539,0.000486102757071468,0.000486102757071468, +0.00378618224345743,0.00378618224345743,0.00378819704715303,0.00374546714295629,0.00370338983501285,0.00366968840477938,0.0036402404729734,0.00361400417284792,0.00359582080762275,0.00359582080762275, +0.0229950316896021,0.0229950316896021,0.0229880863685878,0.0227791352143698,0.0225709510914452,0.0223984160354054,0.022244214890731,0.0221050176717329,0.0220066767717503,0.0220066767717503, +0.110880065018989,0.110880065018989,0.110768386693583,0.11000088045436,0.109222989649608,0.108547988498969,0.107927278740622,0.107356277959433,0.106937862050172,0.106937862050172, +0.400487030950844,0.400487030950844,0.39989582342309,0.397941107942192,0.395922179674401,0.39405760685503,0.392279104580046,0.390593127616047,0.389252164838272,0.389252164838272, + +00:02:34, +6.1114957467493E-07,6.1114957467493E-07,6.13955610048612E-07,6.01815656141586E-07,5.89993553740335E-07,5.81210359578902E-07,5.73977275647535E-07,5.67730839209751E-07,5.63525826890389E-07,5.63525826890389E-07, +6.1114957467493E-07,6.1114957467493E-07,6.13955610048612E-07,6.01815656141586E-07,5.89993553740335E-07,5.81210359578902E-07,5.73977275647535E-07,5.67730839209751E-07,5.63525826890389E-07,5.63525826890389E-07, +6.29054204631131E-06,6.29054204631131E-06,6.31229493091168E-06,6.20150589693962E-06,6.09347012012498E-06,6.01202677067035E-06,5.94412434515958E-06,5.88513016081525E-06,5.84526154206896E-06,5.84526154206896E-06, +6.17709117348895E-05,6.17709117348895E-05,6.19213530958012E-05,6.0964696314815E-05,6.00295553294997E-05,5.93129016449032E-05,5.87074409940591E-05,5.8177918634076E-05,5.78182156654539E-05,5.78182156654539E-05, +0.000528932035044635,0.000528932035044635,0.000529704171135795,0.000522649235157062,0.000515722327619492,0.000510304429125452,0.00050565604910971,0.000501558369835261,0.000498754131270878,0.000498754131270878, +0.00386052375872706,0.00386052375872706,0.00386261848629294,0.00381949611668815,0.0037768463595358,0.00374261043557426,0.0037126914004409,0.00368605397568147,0.00366761527564038,0.00366761527564038, +0.0233132619028526,0.0233132619028526,0.0233064420764336,0.0230966252100281,0.0228867395509922,0.0227124394011767,0.0225566376617503,0.0224160812329024,0.0223168928687661,0.0223168928687661, +0.111808381452315,0.111808381452315,0.111696752213025,0.110929348542019,0.110148912085722,0.109470530717998,0.10884661831285,0.108272946588116,0.107852980754429,0.107852980754429, +0.401901352378778,0.401901352378778,0.401311509431272,0.399362387537607,0.397344674411489,0.395479091152022,0.393699410444284,0.392012792402244,0.390672169959721,0.390672169959721, + +00:02:35, +6.38213357472399E-07,6.38213357472399E-07,6.41152736016502E-07,6.28618940167971E-07,6.16352216011225E-07,6.07215431017211E-07,5.99690272905999E-07,5.93197272475093E-07,5.88832216507234E-07,5.88832216507234E-07, +6.38213357472399E-07,6.38213357472399E-07,6.41152736016502E-07,6.28618940167971E-07,6.16352216011225E-07,6.07215431017211E-07,5.99690272905999E-07,5.93197272475093E-07,5.88832216507234E-07,5.88832216507234E-07, +6.52724448963872E-06,6.52724448963872E-06,6.5499011727324E-06,6.43623005059497E-06,6.32484110689223E-06,6.24066034256559E-06,6.17046713163365E-06,6.10953397687561E-06,6.06841008897135E-06,6.06841008897135E-06, +6.37154577470466E-05,6.37154577470466E-05,6.387141229615E-05,6.28954570255199E-05,6.1936906494147E-05,6.1200529802708E-05,6.0578328989582E-05,6.00346039882245E-05,5.96657379197253E-05,5.96657379197253E-05, +0.000542376764180902,0.000542376764180902,0.000543174632288484,0.000536017364117492,0.000528957732507241,0.000523423113061769,0.000518673966494873,0.000514490630246012,0.000511631424560293,0.000511631424560293, +0.00393570894427699,0.00393570894427699,0.00393788489522536,0.00389437060176851,0.00385114627126305,0.0038163722477516,0.00378597865000428,0.00375893749661333,0.00374024216722982,0.00374024216722982, +0.0236331643291555,0.0236331643291555,0.0236264719961534,0.0234157967654633,0.0232042145728863,0.023028148742619,0.0228707446809732,0.0227288287367479,0.0226287940015607,0.0226287940015607, +0.112736091055013,0.112736091055013,0.112624514515483,0.11185722150422,0.111074268882383,0.110392530454382,0.109765433863434,0.109189109390851,0.108767607614387,0.108767607614387, +0.403306990929388,0.403306990929388,0.40271851340507,0.400774930080317,0.398758454087456,0.396891898303541,0.395111073063692,0.393423844000447,0.392083579885783,0.392083579885783, + +00:02:36, +6.66268609944976E-07,6.66268609944976E-07,6.69346500659873E-07,6.56409461785533E-07,6.43685077421939E-07,6.34183288858206E-07,6.26356521615013E-07,6.19609141826088E-07,6.15079200004098E-07,6.15079200004098E-07, +6.66268609944976E-07,6.66268609944976E-07,6.69346500659873E-07,6.56409461785533E-07,6.43685077421939E-07,6.34183288858206E-07,6.26356521615013E-07,6.19609141826088E-07,6.15079200004098E-07,6.15079200004098E-07, +6.77101123947958E-06,6.77101123947958E-06,6.79460079459731E-06,6.67799822114058E-06,6.56318071183462E-06,6.47619292200273E-06,6.40364974386416E-06,6.34072931468844E-06,6.29832067558275E-06,6.29832067558275E-06, +6.57058723694743E-05,6.57058723694743E-05,6.58674849876914E-05,6.48720196852274E-05,6.38896801313504E-05,6.31332027439337E-05,6.24939336897928E-05,6.19357404292775E-05,6.15575528230433E-05,6.15575528230433E-05, +0.000556055193182325,0.000556055193182325,0.000556879325857696,0.000549619232612581,0.000542425556800557,0.00053677271059264,0.000531921446054324,0.000527651378435135,0.000524736593216297,0.000524736593216297, +0.00401173873105782,0.00401173873105782,0.00401399719921145,0.00397009154077558,0.003926290554799,0.0038909748574993,0.00386010325925498,0.00383265579326326,0.00381370255423877,0.00381370255423877, +0.0239547246488959,0.0239547246488959,0.0239481617615365,0.0237366354503832,0.0235233617898079,0.0233455298076306,0.0231865217929179,0.0230432461019782,0.0229423661254056,0.0229423661254056, +0.113663167687591,0.113663167687591,0.113551647324698,0.112784472853721,0.111999033275841,0.111313960906997,0.110683698587631,0.110104739512448,0.109681715687834,0.109681715687834, +0.4047040232356,0.4047040232356,0.404116911726947,0.402178812883898,0.400163595455113,0.398296104516995,0.396514168209147,0.394826357742149,0.393486469611367,0.393486469611367, + +00:02:37, +6.95343822747447E-07,6.95343822747447E-07,6.98565546867352E-07,6.85215730405382E-07,6.72020381261108E-07,6.62141904998402E-07,6.54003760029942E-07,6.46994001445059E-07,6.42294224602709E-07,6.42294224602709E-07, +6.95343822747447E-07,6.95343822747447E-07,6.98565546867352E-07,6.85215730405382E-07,6.72020381261108E-07,6.62141904998402E-07,6.54003760029942E-07,6.46994001445059E-07,6.42294224602709E-07,6.42294224602709E-07, +7.0219952505723E-06,7.0219952505723E-06,7.04654738897727E-06,6.9269636863772E-06,6.80864124191849E-06,6.71877567392298E-06,6.64382232544962E-06,6.57886552943488E-06,6.53514221946268E-06,6.53514221946268E-06, +6.77428465549295E-05,6.77428465549295E-05,6.79102642491044E-05,6.68950777317761E-05,6.5888567564105E-05,6.51116082391779E-05,6.44549394388924E-05,6.38820097753608E-05,6.34943409291551E-05,6.34943409291551E-05, +0.000569969262903492,0.000569969262903492,0.000570820196129499,0.000563456792023068,0.000556127755854078,0.000550355174491764,0.000545400436348714,0.000541042560677532,0.00053807158327809,0.00053807158327809, +0.00408861398501031,0.00408861398501031,0.00409095625819158,0.00404665981055615,0.00400228012876607,0.00396641921524221,0.00393506620028499,0.00390720985787366,0.0038879974431323,0.0038879974431323, +0.0242779285603081,0.0242779285603081,0.0242714970242226,0.0240591268527346,0.0238441668506956,0.0236645683589435,0.0235039548561017,0.0233593192604052,0.0232575952080089,0.0232575952080089, +0.114589585730144,0.114589585730144,0.11447812488659,0.113711076631311,0.112923179032105,0.11223479580196,0.111601386206056,0.11101981062194,0.110595278556789,0.110595278556789, +0.406092525108874,0.406092525108874,0.405506779966115,0.403574112428894,0.401560174446902,0.399691785186552,0.397908770843615,0.396220408157042,0.394880913335167,0.394880913335167, + +00:02:38, +7.25468065060823E-07,7.25468065060823E-07,7.28839098944034E-07,7.15066836764406E-07,7.01386949504764E-07,6.91119826199868E-07,6.82660297675205E-07,6.75379974108422E-07,6.7050530472274E-07,6.7050530472274E-07, +7.25468065060823E-07,7.25468065060823E-07,7.28839098944034E-07,7.15066836764406E-07,7.01386949504764E-07,6.91119826199868E-07,6.82660297675205E-07,6.75379974108422E-07,6.7050530472274E-07,6.7050530472274E-07, +7.28035138612805E-06,7.28035138612805E-06,7.30589646283615E-06,7.18328164400165E-06,7.06137692441589E-06,6.96856167797728E-06,6.89113692784408E-06,6.82409387952857E-06,6.77902553955081E-06,6.77902553955081E-06, +6.98270744711432E-05,6.98270744711432E-05,7.00004463696545E-05,6.89653278379651E-05,6.7934263388874E-05,6.71364373561036E-05,6.64620338898368E-05,6.58740971645766E-05,6.54767861205772E-05,6.54767861205772E-05, +0.000584120903290265,0.000584120903290265,0.000584999176381921,0.0005775319827024,0.000570066274123201,0.000564172446810422,0.00055911287535647,0.000554666112769104,0.000551638330359422,0.000551638330359422, +0.00416633550769962,0.00416633550769962,0.00416876286742598,0.00412407622287281,0.00407911584644752,0.00404270620627529,0.00401086838031351,0.00398260061793141,0.00396312777561256,0.00396312777561256, +0.0246027617813527,0.0246027617813527,0.0245964634555998,0.0243832565806083,0.0241666154226908,0.0239852501760708,0.0238230297449853,0.0236770341588929,0.0235744672314732,0.0235744672314732, +0.115515320073981,0.115515320073981,0.115403921960861,0.114637007397246,0.113846680438413,0.113155009384157,0.112518470956259,0.111934296904187,0.111508270319122,0.111508270319122, +0.407472571549133,0.407472571549133,0.406888192888231,0.40496090437298,0.402948266184749,0.401079014902909,0.399294955131857,0.397606068982651,0.396266984469194,0.396266984469194, + +00:02:39, +7.56670990684796E-07,7.56670990684796E-07,7.60196968718806E-07,7.45992459059955E-07,7.3181418897204E-07,7.21146180245103E-07,7.12355021487986E-07,7.04795757323459E-07,6.99741028117221E-07,6.99741028117221E-07, +7.56670990684796E-07,7.56670990684796E-07,7.60196968718806E-07,7.45992459059955E-07,7.3181418897204E-07,7.21146180245103E-07,7.12355021487986E-07,7.04795757323459E-07,6.99741028117221E-07,6.99741028117221E-07, +7.54623641742471E-06,7.54623641742471E-06,7.57280543712814E-06,7.44710921114361E-06,7.32154390659757E-06,7.22570592838587E-06,7.14574751033572E-06,7.07656752668011E-06,7.03012335627905E-06,7.03012335627905E-06, +7.19592534294359E-05,7.19592534294359E-05,7.2138730777245E-05,7.10834698392453E-05,7.00274654033682E-05,6.92083843877951E-05,6.85159079332497E-05,6.79126909842573E-05,6.75055755379741E-05,6.75055755379741E-05, +0.000598512033202337,0.000598512033202337,0.000599418188707048,0.000591846733797602,0.00058424304498231,0.000578226458694713,0.000573060690290936,0.000568523959843466,0.00056543875946479,0.00056543875946479, +0.0042449040369513,0.0042449040369513,0.00424741775813705,0.00420234152505294,0.00415679849643205,0.00411983665139871,0.00408751064231559,0.00405882893679202,0.00403909442924082,0.00403909442924082, +0.0249292100515421,0.0249292100515421,0.0249230467486496,0.0247090102640926,0.0244906931930276,0.0243075610572007,0.0241437323518648,0.0239963767612551,0.0238929681942,0.0238929681942, +0.116440346113387,0.116440346113387,0.116329013812738,0.115562240222817,0.114769512294823,0.11407457640892,0.113434927584433,0.112848173051617,0.112420665580319,0.112420665580319, +0.408844236754555,0.408844236754555,0.408261224464972,0.406339263560983,0.404327944989798,0.402457867462951,0.400672794450023,0.398983413173828,0.397644755648186,0.397644755648186, + +00:02:40, +7.8898284409919E-07,7.8898284409919E-07,7.92669561620016E-07,7.78022869052808E-07,7.63332097449691E-07,7.52250682061574E-07,7.4311740193227E-07,7.35270629435866E-07,7.30030561978925E-07,7.30030561978925E-07, +7.8898284409919E-07,7.8898284409919E-07,7.92669561620016E-07,7.78022869052808E-07,7.63332097449691E-07,7.52250682061574E-07,7.4311740193227E-07,7.35270629435866E-07,7.30030561978925E-07,7.30030561978925E-07, +7.81980902310488E-06,7.81980902310488E-06,7.8474336459971E-06,7.71860542360256E-06,7.58930025512466E-06,7.49036533349749E-06,7.4078099397264E-06,7.33644153566323E-06,7.28859029138527E-06,7.28859029138527E-06, +7.41400838131885E-05,7.41400838131885E-05,7.43258199663307E-05,7.32502066612704E-05,7.21688745341739E-05,7.13281467809511E-05,7.06172556261678E-05,6.99984828000446E-05,6.95813995093614E-05,6.95813995093614E-05, +0.000613144560239999,0.000613144560239999,0.000614079143837372,0.000606402963074438,0.000598659990547328,0.000592519130207063,0.000587245797421771,0.000582618016192886,0.000579474784809868,0.000579474784809868, +0.00432432024748876,0.00432432024748876,0.00432692159815323,0.00428145640063913,0.0042353288032601,0.00419781130755478,0.00416499376565267,0.00413589561430554,0.00411589821806143,0.00411589821806143, +0.0252572591337142,0.0252572591337142,0.0252512326197409,0.0250363735570735,0.0248163858708712,0.0246314868210381,0.0244660485887114,0.0243173330500995,0.0242130841127436,0.0242130841127436, +0.117364639737514,0.117364639737514,0.117253376204834,0.116486750682052,0.115691649905946,0.114993472133815,0.114350731337241,0.113761414256096,0.113332439445358,0.113332439445358, +0.410207594131243,0.410207594131243,0.409625947883482,0.407709264034777,0.405699284392013,0.40382841587927,0.402042361395103,0.400352512912133,0.399014298738892,0.399014298738892, + +00:02:41, +8.22434466493207E-07,8.22434466493207E-07,8.2628788271825E-07,8.11188938137209E-07,7.95971269784217E-07,7.84463639814673E-07,7.74977499081974E-07,7.66834455706819E-07,7.61403659016488E-07,7.61403659016488E-07, +8.22434466493207E-07,8.22434466493207E-07,8.2628788271825E-07,8.11188938137209E-07,7.95971269784217E-07,7.84463639814673E-07,7.74977499081974E-07,7.66834455706819E-07,7.61403659016488E-07,7.61403659016488E-07, +8.1012297881799E-06,8.1012297881799E-06,8.12994233568025E-06,7.99793123478698E-06,7.86480595514116E-06,7.76269871504993E-06,7.67748198971405E-06,7.60387287378453E-06,7.5545828674307E-06,7.5545828674307E-06, +7.63702690061893E-05,7.63702690061893E-05,7.65624194257129E-05,7.54662442473286E-05,7.43591947642505E-05,7.34964250639357E-05,7.27667741206359E-05,7.21321672848158E-05,7.17049514791519E-05,7.17049514791519E-05, +0.000628020380575089,0.000628020380575089,0.000628983940976369,0.000621202576746837,0.00061331902150254,0.000607052370151993,0.000601670101900554,0.000596950185093433,0.000593748309646137,0.000593748309646137, +0.00440458475157207,0.00440458475157207,0.0044072749925542,0.00436142147004076,0.00431470742807164,0.00427663086846646,0.00424331846670472,0.00421380138744429,0.00419353989322746,0.00419353989322746, +0.0255868948157577,0.0255868948157577,0.0255810068103731,0.0253653321389842,0.0251436791891042,0.0249570133085956,0.0247899643889602,0.0246398890286223,0.0245348010236122,0.0245348010236122, +0.118288177322392,0.118288177322392,0.118176985389142,0.117410514843545,0.116613069072802,0.115911672310569,0.115265857953782,0.114673996200922,0.114243567510722,0.114243567510722, +0.411562716302763,0.411562716302763,0.410982435555704,0.409070979043038,0.40706235713966,0.405190732389573,0.403403727794275,0.40171343961509,0.400375684849243,0.400375684849243, + +00:02:42, +8.5705730176128E-07,8.5705730176128E-07,8.61083542735037E-07,8.45522143376771E-07,8.29762903940363E-07,8.17815960967867E-07,8.07965968671951E-07,7.99517694358368E-07,7.93890663499058E-07,7.93890663499058E-07, +8.5705730176128E-07,8.5705730176128E-07,8.61083542735037E-07,8.45522143376771E-07,8.29762903940363E-07,8.17815960967867E-07,8.07965968671951E-07,7.99517694358368E-07,7.93890663499058E-07,7.93890663499058E-07, +8.39066120274201E-06,8.39066120274201E-06,8.42049466311816E-06,8.28524951435794E-06,8.14822290906918E-06,8.04286680713418E-06,7.95492333997998E-06,7.87902041005865E-06,7.82825950702292E-06,7.82825950702292E-06, +7.86505153208744E-05,7.86505153208744E-05,7.88492375662337E-05,7.7732291485675E-05,7.65991330603157E-05,7.57139227747053E-05,7.49651635921734E-05,7.43144421474753E-05,7.38769279370651E-05,7.38769279370651E-05, +0.000643141378786075,0.000643141378786075,0.000644134467633257,0.000636247469310538,0.000628222036931667,0.000621828075906087,0.000616335497590581,0.000611522358634291,0.000608261226089685,0.000608261226089685, +0.0044856980996378,0.0044856980996378,0.00448847848431707,0.0044422372911866,0.00439493496925505,0.00435629596527722,0.00432248539950378,0.00429254693093191,0.00427202014362794,0.00427202014362794, +0.025918102912288,0.025918102912288,0.0259123550888704,0.0256958717165051,0.0254725589060626,0.025284126384934,0.025115465709249,0.0249640307223522,0.0248581049850211,0.0248581049850211, +0.119210935723071,0.119210935723071,0.119099818099144,0.118333509262422,0.117533746084796,0.116829153177119,0.116180283657671,0.115585895052938,0.11515402585653,0.11515402585653, +0.412909675119563,0.412909675119563,0.412330759127592,0.41042448105088,0.408417235208663,0.406544888465955,0.404756964714119,0.403066263945319,0.401728984337393,0.401728984337393, + +00:02:43, +8.92883402464358E-07,8.92883402464358E-07,8.97088764016303E-07,8.81054573505047E-07,8.64738807024807E-07,8.52339158308859E-07,8.42114068115684E-07,8.33351402585947E-07,8.27522517268257E-07,8.27522517268257E-07, +8.92883402464358E-07,8.92883402464358E-07,8.97088764016303E-07,8.81054573505047E-07,8.64738807024807E-07,8.52339158308859E-07,8.42114068115684E-07,8.33351402585947E-07,8.27522517268257E-07,8.27522517268257E-07, +8.68826766038673E-06,8.68826766038673E-06,8.71925569427317E-06,8.58072504657928E-06,8.43971493510926E-06,8.33103225486412E-06,8.24029557498304E-06,8.16204491409103E-06,8.1097805317464E-06,8.1097805317464E-06, +8.09815319264817E-05,8.09815319264817E-05,8.11869856483901E-05,8.00490601367812E-05,7.88893993001382E-05,7.7981346388632E-05,7.72131271681295E-05,7.65460080616303E-05,7.60980283469172E-05,7.60980283469172E-05, +0.000658509427697256,0.000658509427697256,0.000659532599461924,0.00065153952338093,0.000643370924153148,0.000636848133252151,0.000631243866900801,0.000626336417551212,0.000623015414954141,0.000623015414954141, +0.00456766078093979,0.00456766078093979,0.00457053255496352,0.00452390436017823,0.00447601196309706,0.00443680716719194,0.00440249515636862,0.00437213285787375,0.0043513395965163,0.0043513395965163, +0.0262508692662749,0.0262508692662749,0.0262452632520273,0.0260279780252148,0.0258030108072224,0.0256128119408535,0.0254425385311089,0.0252897441808462,0.0251829820785951,0.0251829820785951, +0.120132892265879,0.120132892265879,0.12002185154205,0.119255710972421,0.118453657711832,0.11774589144978,0.117093985149248,0.116497087454773,0.11606379103879,0.11606379103879, +0.414248541668263,0.414248541668263,0.4136709894882,0.411769841749351,0.409763989811843,0.407890954824059,0.406102142469712,0.404411055819553,0.403074266820658,0.403074266820658, + +00:02:44, +9.29945435755452E-07,9.29945435755452E-07,9.34336386469396E-07,9.1781893488961E-07,9.00931401273849E-07,8.88065355940549E-07,8.77453662488464E-07,8.68367242536814E-07,8.62330765716299E-07,8.62330765716299E-07, +9.29945435755452E-07,9.29945435755452E-07,9.34336386469396E-07,9.1781893488961E-07,9.00931401273849E-07,8.88065355940549E-07,8.77453662488464E-07,8.68367242536814E-07,8.62330765716299E-07,8.62330765716299E-07, +8.99421545634754E-06,8.99421545634754E-06,9.02639240215867E-06,8.88452452837652E-06,8.73944776544791E-06,8.62735961275397E-06,8.53376218246288E-06,8.45310905467033E-06,8.39930816080268E-06,8.39930816080268E-06, +8.33640307771343E-05,8.33640307771343E-05,8.3576377709885E-05,8.24172647605219E-05,8.12307061997564E-05,8.02994052462402E-05,7.95113708559466E-05,7.88275685941703E-05,7.83689550753122E-05,7.83689550753122E-05, +0.000674126388222025,0.000674126388222025,0.000675180200103958,0.000667080609535039,0.000658767558559599,0.000652114416217511,0.000646397080623878,0.000641394231064069,0.000638012745587711,0.000638012745587711, +0.00465047322419053,0.00465047322419053,0.00465343762520755,0.00460642311194394,0.00455793888443345,0.00451816498211888,0.00448334826854041,0.00445255972038822,0.00443149881813994,0.00443149881813994, +0.0265851797506247,0.0265851797506247,0.0265797171267074,0.0263616368311932,0.026135020706838,0.025943055894538,0.025771168862606,0.0256170154793367,0.0255094184110249,0.0255094184110249, +0.121054024740803,0.121054024740803,0.120943063391152,0.120177097478104,0.119372781196534,0.118661864315538,0.118006939597901,0.117407550517203,0.116972840081771,0.116972840081771, +0.41557938628083,0.41557938628083,0.415003196778668,0.413107132064814,0.411102691408031,0.409229001432122,0.40743933063361,0.405747884417542,0.404411601184326,0.404411601184326, + +00:02:45, +9.68276689268315E-07,9.68276689268315E-07,9.72859873462553E-07,9.55848557458476E-07,9.38373730003922E-07,9.25027295235646E-07,9.140172304749E-07,9.0459748725327E-07,8.98347563729066E-07,8.98347563729066E-07, +9.68276689268315E-07,9.68276689268315E-07,9.72859873462553E-07,9.55848557458476E-07,9.38373730003922E-07,9.25027295235646E-07,9.140172304749E-07,9.0459748725327E-07,8.98347563729066E-07,8.98347563729066E-07, +9.3086727853453E-06,9.3086727853453E-06,9.34207366458125E-06,9.19681656710699E-06,9.04758904417463E-06,8.93201534280576E-06,8.83548855165436E-06,8.75237739807249E-06,8.69700650936243E-06,8.69700650936243E-06, +8.57987265398735E-05,8.57987265398735E-05,8.60181304931323E-05,8.48376226433175E-05,8.36237692406411E-05,8.2668811480877E-05,8.18606034713496E-05,8.11598301337671E-05,8.06904133202515E-05,8.06904133202515E-05, +0.00068999410921018,0.00068999410921018,0.000691079121035772,0.000682872586157636,0.00067441380346141,0.000667628786916418,0.000661796997778325,0.000656697656718478,0.000653255075714283,0.000653255075714283, +0.004734135798203,0.004734135798203,0.00473719405560371,0.00468979392089307,0.00464071614730032,0.00460036985731219,0.00456504520681917,0.004533828010239,0.00451249831437061,0.00451249831437061, +0.0269210202697158,0.0269210202697158,0.0269157025713951,0.0266968339325778,0.0264685744495332,0.0262748441931509,0.0261013427399375,0.0259458307203332,0.0258374001156753,0.0258374001156753, +0.121974311393988,0.121974311393988,0.121863431778294,0.121097646747191,0.120291094246602,0.119577049424464,0.118919124634519,0.118317261811624,0.117881150470493,0.117881150470493, +0.416902278543626,0.416902278543626,0.416327450401075,0.414436422168198,0.412433409711073,0.410559097519891,0.408768598044714,0.407076818190834,0.40574105559036,0.40574105559036, + +00:02:46, +1.00791107696811E-06,1.00791107696811E-06,1.01269331768566E-06,9.95177400587735E-07,9.77099463523801E-07,9.63258340753762E-07,9.518378702796E-07,9.42075026579478E-07,9.35605681593003E-07,9.35605681593003E-07, +1.00791107696811E-06,1.00791107696811E-06,1.01269331768566E-06,9.95177400587735E-07,9.77099463523801E-07,9.63258340753762E-07,9.518378702796E-07,9.42075026579478E-07,9.35605681593003E-07,9.35605681593003E-07, +9.63180973915442E-06,9.63180973915442E-06,9.6664702615983E-06,9.51777167804338E-06,9.36430832491079E-06,9.24516781230902E-06,9.14564197121541E-06,9.06001640607896E-06,9.00304158663146E-06,9.00304158663146E-06, +8.82863365226573E-05,8.82863365226573E-05,8.85129633727357E-05,8.73108537252479E-05,8.60693065968209E-05,8.50902799463319E-05,8.42615365664788E-05,8.35435018193141E-05,8.30631110396789E-05,8.30631110396789E-05, +0.000706114427299232,0.000706114427299232,0.00070723120141977,0.000698917299291417,0.000690311509934438,0.000683393095396538,0.000677445465454688,0.000672248540231452,0.000668744251278562,0.000668744251278562, +0.00481864881253287,0.00481864881253287,0.00482180214719556,0.00477401710157055,0.00472434410558568,0.00468342218001501,0.00464758638220067,0.00461593815946781,0.00459433853133553,0.00459433853133553, +0.0272583767608897,0.0272583767608897,0.0272532054777025,0.0270335551610742,0.0268036579118458,0.026608162814386,0.0264330462289809,0.0262761760351768,0.0261669133541481,0.0261669133541481, +0.122893730920353,0.122893730920353,0.122782935286462,0.122017337203009,0.121208575027275,0.120491424882237,0.119830518344048,0.119226199362648,0.118788700143336,0.118788700143336, +0.418217287306345,0.418217287306345,0.417643819027197,0.415757781484127,0.413756213698714,0.411881311587434,0.410090012817012,0.408397924871445,0.40706269748599,0.40706269748599, + +00:02:47, +1.04888314496297E-06,1.04888314496297E-06,1.0538714469712E-06,1.03584005894926E-06,1.01714290500734E-06,1.00279248611985E-06,9.90949305499884E-07,9.80833373030768E-07,9.74138510864699E-07,9.74138510864699E-07, +1.04888314496297E-06,1.04888314496297E-06,1.0538714469712E-06,1.03584005894926E-06,1.01714290500734E-06,1.00279248611985E-06,9.90949305499884E-07,9.80833373030768E-07,9.74138510864699E-07,9.74138510864699E-07, +9.96379830388832E-06,9.96379830388832E-06,9.99975487269328E-06,9.84756228157309E-06,9.68977706815268E-06,9.56698729135501E-06,9.4643916268706E-06,9.37619443371095E-06,9.31758129363298E-06,9.31758129363298E-06, +9.08275806023421E-05,9.08275806023421E-05,9.10615982829573E-05,8.98376805271573E-05,8.85680390619869E-05,8.75645281444262E-05,8.67148843579856E-05,8.59792954683229E-05,8.54877588799813E-05,8.54877588799813E-05, +0.000722489166769683,0.000722489166769683,0.00072363826795952,0.00071521658249123,0.000706462516671772,0.000699409179489463,0.000693344318665737,0.000688048715341061,0.00068448210629521,0.00068448210629521, +0.00490401251812069,0.00490401251812069,0.00490726214216424,0.00485909290931134,0.00480882305368129,0.00476732227810289,0.00473097214651379,0.00469889054102772,0.00467701985604891,0.00467701985604891, +0.0275972351958977,0.0275972351958977,0.0275922117718316,0.027371786383422,0.0271402570037267,0.0269429977679724,0.0267662654267986,0.0266080375855507,0.0264979443178,0.0264979443178, +0.123812262456318,0.123812262456318,0.123701552942485,0.122936147717068,0.122125202153916,0.121404969242794,0.120741099258173,0.120134341640806,0.119695467484753,0.119695467484753, +0.419524480690831,0.419524480690831,0.418952370607145,0.417071278699929,0.41507117162136,0.413195711413832,0.411403642348219,0.409711271480423,0.408376593612188,0.408376593612188, + +00:02:48, +1.09122807727532E-06,1.09122807727532E-06,1.09642963007427E-06,1.0778717683174E-06,1.05853899632566E-06,1.04366435986286E-06,1.03138589095941E-06,1.0209066676243E-06,1.01398007020202E-06,1.01398007020202E-06, +1.09122807727532E-06,1.09122807727532E-06,1.09642963007427E-06,1.0778717683174E-06,1.05853899632566E-06,1.04366435986286E-06,1.03138589095941E-06,1.0209066676243E-06,1.01398007020202E-06,1.01398007020202E-06, +1.03048123570065E-05,1.03048123570065E-05,1.03421020736712E-05,1.01863627001161E-05,1.00241686383313E-05,9.89764595006803E-06,9.7919085987728E-06,9.70108172668244E-06,9.64079542070844E-06,9.64079542070844E-06, +9.34231811526648E-05,9.34231811526648E-05,9.3664759645193E-05,9.24188280777663E-05,9.11206899765955E-05,9.00922761525873E-05,8.92213636551058E-05,8.84679255052934E-05,8.79650701044591E-05,8.79650701044591E-05, +0.000739120139404232,0.000739120139404232,0.000740302134758908,0.000731772256682301,0.000722868649839522,0.000715678864665241,0.000709495380200633,0.000704100003660041,0.000700470462701936,0.000700470462701936, +0.00499022710793407,0.00499022710793407,0.00499357422447691,0.00494502154089476,0.00489415322713442,0.00485207042072729,0.00481520279305803,0.00478268546941653,0.00476054261704377,0.00476054261704377, +0.0279375815823059,0.0279375815823059,0.027932707415993,0.0277115135028163,0.0274783576699951,0.0272793350971362,0.0271009864630991,0.0269414015649468,0.0268304792292167,0.0268304792292167, +0.124729885572648,0.124729885572648,0.124619264209853,0.123854057601743,0.123040954684715,0.122317661501086,0.121650846348105,0.121041667555376,0.120601431318112,0.120601431318112, +0.420823926099779,0.420823926099779,0.42025317237789,0.418376981774531,0.416378351010745,0.414502364065762,0.412709553328299,0.411016924336292,0.409682810012043,0.409682810012043, + +00:02:49, +1.13498170157195E-06,1.13498170157195E-06,1.14040388241066E-06,1.12130841133352E-06,1.10132332383761E-06,1.08590923121355E-06,1.07318261850162E-06,1.06232968566994E-06,1.05516501115567E-06,1.05516501115567E-06, +1.13498170157195E-06,1.13498170157195E-06,1.14040388241066E-06,1.12130841133352E-06,1.10132332383761E-06,1.08590923121355E-06,1.07318261850162E-06,1.06232968566994E-06,1.05516501115567E-06,1.05516501115567E-06, +1.06550276640454E-05,1.06550276640454E-05,1.06936883332768E-05,1.05343491547635E-05,1.03676583005914E-05,1.0237317855556E-05,1.01283658585852E-05,1.00348504185739E-05,9.97285564473921E-06,9.97285564473921E-06, +9.60738629722411E-05,9.60738629722411E-05,9.63231742954715E-05,9.50550238408077E-05,9.37279851549846E-05,9.26742465514259E-05,9.178169378773E-05,9.10101088900752E-05,9.04957605217868E-05,9.04957605217868E-05, +0.000756009144350872,0.000756009144350872,0.000757224603185213,0.000748586130022429,0.000739531722936593,0.000732203963890852,0.000725900460483028,0.000720404214533337,0.000716711130216527,0.000716711130216527, +0.00507729271760957,0.00507729271760957,0.00508073852053493,0.00503180313519844,0.00498033480329946,0.00493766681895906,0.00490027855724098,0.00486732320131038,0.0048449070850039,0.0048449070850039, +0.0282794019648563,0.0282794019648563,0.0282746784097824,0.0280527224602867,0.0278179458917492,0.0276171608800179,0.0274371955016541,0.0272762542000883,0.0271645043436434,0.0271645043436434, +0.125646580267406,0.125646580267406,0.125536048981639,0.124771046603077,0.123955812113496,0.123229481085946,0.12255973901749,0.121948156447304,0.121506570898627,0.121506570898627, +0.422115690225327,0.422115690225327,0.421546290871688,0.419674957947223,0.417677818688468,0.415801335905965,0.414007811747879,0.412314949063393,0.410981412039018,0.410981412039018, + +00:02:50, +1.18018049485166E-06,1.18018049485166E-06,1.18583087175175E-06,1.16618652322741E-06,1.14553212413756E-06,1.12956301586026E-06,1.11637512274186E-06,1.10513784252038E-06,1.09772862392019E-06,1.09772862392019E-06, +1.18018049485166E-06,1.18018049485166E-06,1.18583087175175E-06,1.16618652322741E-06,1.14553212413756E-06,1.12956301586026E-06,1.11637512274186E-06,1.10513784252038E-06,1.09772862392019E-06,1.09772862392019E-06, +1.10146218750763E-05,1.10146218750763E-05,1.10546920095377E-05,1.08916997616395E-05,1.07204232172918E-05,1.05861789685829E-05,1.04739382662864E-05,1.03776745277295E-05,1.03139355260917E-05,1.03139355260917E-05, +9.87803532125971E-05,9.87803532125971E-05,9.90375714119939E-05,9.7746997642203E-05,9.63906528125219E-05,9.53111643523326E-05,9.43965965344859E-05,9.36065650462373E-05,9.30805484144771E-05,9.30805484144771E-05, +0.00077315796798985,0.00077315796798985,0.000774407461736088,0.000765659997768097,0.00075645353665841,0.000748986277492629,0.00074256135743307,0.00073696314489954,0.000733205906197753,0.000733205906197753, +0.00516520942609416,0.00516520942609416,0.00516875509982152,0.00511943777385166,0.00506736790198913,0.00502411162643167,0.00498619961721565,0.00495280393619712,0.00493011347339569,0.00493011347339569, +0.0286226824267885,0.0286226824267885,0.0286181107915144,0.0283953992360339,0.0281590076877353,0.0279564612310482,0.0277748787416746,0.0276125817523115,0.0275000059503734,0.0275000059503734, +0.126562326959017,0.126562326959017,0.126451887573536,0.125687094893699,0.124869754362646,0.124140407853072,0.123467757095416,0.122853788082254,0.122410865906422,0.122410865906422, +0.423399839057532,0.423399839057532,0.422831791924395,0.420965273746325,0.418969640774433,0.417092692601609,0.415298482906553,0.413605410600115,0.412272464365109,0.412272464365109, + +00:02:51, +1.22686158908955E-06,1.22686158908955E-06,1.23274792387543E-06,1.21254329749438E-06,1.19120228975926E-06,1.17466228166167E-06,1.1609996867772E-06,1.14936719927924E-06,1.1417068430431E-06,1.1417068430431E-06, +1.22686158908955E-06,1.22686158908955E-06,1.23274792387543E-06,1.21254329749438E-06,1.19120228975926E-06,1.17466228166167E-06,1.1609996867772E-06,1.14936719927924E-06,1.1417068430431E-06,1.1417068430431E-06, +1.13837745208917E-05,1.13837745208917E-05,1.14252933458358E-05,1.12585945279897E-05,1.10826424442307E-05,1.09444071399659E-05,1.08288025667005E-05,1.07297299538802E-05,1.06642105052881E-05,1.06642105052881E-05, +0.000101543381306249,0.000101543381306249,0.000101808682442729,0.000100495481597296,9.91094234927999E-05,9.80037569251111E-05,9.70667960508497E-05,9.6258015789461E-05,9.57201544673677E-05,9.57201544673677E-05, +0.000790568383804433,0.000790568383804433,0.000791852485910398,0.000782995642144484,0.000773635878764559,0.000766027593022548,0.000759479856333266,0.000753778579156163,0.000749956575510141,0.000749956575510141, +0.0052539772562861,0.0052539772562861,0.00525762397554892,0.00520792548188815,0.00515525258612516,0.00511140493998404,0.00507296609451744,0.00503912781700942,0.00501616193909976,0.00501616193909976, +0.0289674090911198,0.0289674090911198,0.0289629906395169,0.0287395298507252,0.0285015291156747,0.0282972223022819,0.0281140224191443,0.0279503705189055,0.0278369703740957,0.0278369703740957, +0.127477106479434,0.127477106479434,0.127366760716996,0.126602183065848,0.125782761776147,0.125050422078115,0.124374880829537,0.123758542643748,0.123314296439678,0.123314296439678, +0.424676437892743,0.424676437892743,0.424109740683668,0.422247994997725,0.420253882695171,0.41837649913254,0.416581631421082,0.414888373207023,0.413556030988896,0.413556030988896, + +00:02:52, +1.27506277683686E-06,1.27506277683686E-06,1.28119302817173E-06,1.26041659152713E-06,1.23837137483489E-06,1.22124425431549E-06,1.20709324785283E-06,1.19505446846626E-06,1.18713625309144E-06,1.18713625309144E-06, +1.27506277683686E-06,1.27506277683686E-06,1.28119302817173E-06,1.26041659152713E-06,1.23837137483489E-06,1.22124425431549E-06,1.20709324785283E-06,1.19505446846626E-06,1.18713625309144E-06,1.18713625309144E-06, +1.17626670089236E-05,1.17626670089236E-05,1.18056744667085E-05,1.16352153479974E-05,1.14544969265971E-05,1.13121821066991E-05,1.11931373857555E-05,1.10911944744945E-05,1.10238578994055E-05,1.10238578994055E-05, +0.000104363678894849,0.000104363678894849,0.00010463724103308,0.000103301210038157,0.000101885029994895,0.000100752753925663,9.97930187973032E-05,9.89651852559737E-05,9.84153016961451E-05,9.84153016961451E-05, +0.000808242152255468,0.000808242152255468,0.000809561438082866,0.000800594832219308,0.000791080523950295,0.000783329685128384,0.000776657729698175,0.000770852289028748,0.000766964910392549,0.000766964910392549, +0.00534359617567505,0.00534359617567505,0.00534734510530461,0.00529726622839779,0.00524398886238828,0.00519954680030276,0.00516057805470057,0.00512629493075749,0.00510305258304214,0.00510305258304214, +0.0293135681218866,0.0293135681218866,0.029309304073384,0.0290851003667499,0.02884549627355,0.0286394302846917,0.0284546128081141,0.0282896068344117,0.0281753839762013,0.0281753839762013, +0.128390900067421,0.128390900067421,0.128280649552483,0.127516292124504,0.126694815112718,0.125959504449876,0.125281090879298,0.124662400726424,0.124216843007906,0.124216843007906, +0.425945551341855,0.425945551341855,0.425380201617079,0.423523186833311,0.421530609192067,0.41965281979943,0.417857321233481,0.416163900474877,0.41483217524349,0.41483217524349, + +00:02:53, +1.3248225167753E-06,1.3248225167753E-06,1.33120484320244E-06,1.30984493220121E-06,1.28707760070819E-06,1.26934682298196E-06,1.25469340298396E-06,1.24223701963851E-06,1.23405409427436E-06,1.23405409427436E-06, +1.3248225167753E-06,1.3248225167753E-06,1.33120484320244E-06,1.30984493220121E-06,1.28707760070819E-06,1.26934682298196E-06,1.25469340298396E-06,1.24223701963851E-06,1.23405409427436E-06,1.23405409427436E-06, +1.21514826188956E-05,1.21514826188956E-05,1.21960193733836E-05,1.2021745998332E-05,1.18361694946525E-05,1.1689685487807E-05,1.15671232264721E-05,1.14622477408612E-05,1.13930568982057E-05,1.13930568982057E-05, +0.000107241979757407,0.000107241979757407,0.000107523982953641,0.000106164919440979,0.000104718207300703,0.00010355888722374,0.000102575993467551,0.000101728799831039,0.000101166715375922,0.000101166715375922, +0.000826181020659673,0.000826181020659673,0.000827536067382514,0.000818459323780488,0.00080878923372188,0.000800894315427672,0.00079409673714788,0.000788186033443735,0.000784232670330532,0.000784232670330532, +0.00543406609698134,0.00543406609698134,0.00543791839169675,0.00538745992717757,0.00533357668186733,0.00528853719256368,0.00524903550797387,0.00521430530916105,0.00519078545082486,0.00519078545082486, +0.0296611457253469,0.0296611457253469,0.0296570372551909,0.029432096889435,0.029190895300851,0.0289830714094219,0.028796636221956,0.0286302770718837,0.028515233156051,0.028515233156051, +0.129303689361926,0.129303689361926,0.129193535622822,0.128429403480639,0.127605895539064,0.126867636063604,0.126186368309268,0.125565343329391,0.12511848652531,0.12511848652531, +0.427207243338467,0.427207243338467,0.426643238520109,0.424790913699294,0.422799884329468,0.420921718231819,0.419125615619013,0.41743205533255,0.416100959804379,0.416100959804379, + +00:02:54, +1.37617993922502E-06,1.37617993922502E-06,1.38282270221343E-06,1.3608675214133E-06,1.33735986150061E-06,1.31900854586116E-06,1.30383841453227E-06,1.29095288496646E-06,1.28249826802096E-06,1.28249826802096E-06, +1.37617993922502E-06,1.37617993922502E-06,1.38282270221343E-06,1.3608675214133E-06,1.33735986150061E-06,1.31900854586116E-06,1.30383841453227E-06,1.29095288496646E-06,1.28249826802096E-06,1.28249826802096E-06, +1.25504064982129E-05,1.25504064982129E-05,1.25965139390495E-05,1.24183721334307E-05,1.22278448591447E-05,1.20771007799307E-05,1.19509424646853E-05,1.18430712739045E-05,1.17719885599988E-05,1.17719885599988E-05, +0.000110179019738614,0.000110179019738614,0.000110469646028052,0.000109087348353575,0.000107609692502378,0.000106422890830779,0.000105416450916813,0.000104549588077516,0.000103975122969884,0.000103975122969884, +0.000844386723071636,0.000844386723071636,0.000845778109574829,0.000836590859217568,0.000826763756275721,0.000818723232385439,0.000811798625285219,0.000805781558405083,0.000801761601932436,0.000801761601932436, +0.00552538687879411,0.00552538687879411,0.00552934368299841,0.00547850643738111,0.00542401594070731,0.00537837604707252,0.00533833840983569,0.00530315892928068,0.00527936053335588,0.00527936053335588, +0.0300101281511446,0.0300101281511446,0.0300061763906703,0.0297805055682224,0.0295377123797822,0.029328131949003,0.0291400790145784,0.0289723676441089,0.0288565043522034,0.0288565043522034, +0.130215456395571,0.130215456395571,0.130105400866651,0.129341498944557,0.128515984623228,0.127774798414407,0.127090694582576,0.126467351849695,0.126019208304259,0.126019208304259, +0.428461577146927,0.428461577146927,0.427898914524051,0.426051239364416,0.424061771502697,0.422183257396053,0.420386577194068,0.418692900054847,0.417362446697174,0.417362446697174, + +00:02:55, +1.42917485160506E-06,1.42917485160506E-06,1.43608661859887E-06,1.41352424157103E-06,1.38925772962959E-06,1.37026865572327E-06,1.35456721573592E-06,1.34124076476416E-06,1.33250734251223E-06,1.33250734251223E-06, +1.42917485160506E-06,1.42917485160506E-06,1.43608661859887E-06,1.41352424157103E-06,1.38925772962959E-06,1.37026865572327E-06,1.35456721573592E-06,1.34124076476416E-06,1.33250734251223E-06,1.33250734251223E-06, +1.29596256570901E-05,1.29596256570901E-05,1.3007345903864E-05,1.28252812805181E-05,1.26297096064563E-05,1.24746133526479E-05,1.23447793445021E-05,1.22338484597358E-05,1.21608358072421E-05,1.21608358072421E-05, +0.000113175536677266,0.000113175536677266,0.000113474970060973,0.000112069237322989,0.000110560224729868,0.000109345500827841,0.000108315124090212,0.000107428280664508,0.000106841254058018,0.000106841254058018, +0.000862860980169482,0.000862860980169482,0.000864289286947642,0.000854991167406872,0.000845005826381255,0.000836818171195677,0.000829765127576719,0.000823640596874588,0.000819553438809203,0.000819553438809203, +0.00561755832620831,0.00561755832620831,0.00562162077379062,0.0055704055641671,0.00551530648075638,0.00546906323990447,0.00542848666170793,0.00539285571414812,0.00536877776747809,0.00536877776747809, +0.0303605016934377,0.0303605016934377,0.0303567077303504,0.0301303125978083,0.0298859337364316,0.0296745982185288,0.0294849275816042,0.0293158650047915,0.0291991840436059,0.0291991840436059, +0.131126183588231,0.131126183588231,0.131016227611983,0.130252560719354,0.129425064328048,0.128680973390752,0.127994051554448,0.127368408075873,0.126918990048858,0.126918990048858, +0.429708615370276,0.429708615370276,0.429147292103809,0.427304226928057,0.425316333445959,0.423437499603121,0.421640267923952,0.419946496270216,0.418616697305255,0.418616697305255, + +00:02:56, +1.48384774384542E-06,1.48384774384542E-06,1.4910372913164E-06,1.46785566103363E-06,1.44281146127791E-06,1.42316706539047E-06,1.40691941619203E-06,1.39314003297224E-06,1.38412055816619E-06,1.38412055816619E-06, +1.48384774384542E-06,1.48384774384542E-06,1.4910372913164E-06,1.46785566103363E-06,1.44281146127791E-06,1.42316706539047E-06,1.40691941619203E-06,1.39314003297224E-06,1.38412055816619E-06,1.38412055816619E-06, +1.33793289634233E-05,1.33793289634233E-05,1.3428704869705E-05,1.32426628343642E-05,1.30419521934915E-05,1.28824104435323E-05,1.27488199734974E-05,1.26347645449441E-05,1.25597834218784E-05,1.25597834218784E-05, +0.000116232270334821,0.000116232270334821,0.000116540696766193,0.00011511132882325,0.000113570545078585,0.000112327455293653,0.000111272747951262,0.000110365610296113,0.000109765840265946,0.000109765840265946, +0.000881605499144154,0.000881605499144154,0.000883071308200658,0.000873661963600338,0.000863517165267545,0.000855180853666502,0.000847997964237202,0.000841764868655858,0.000837609901457837,0.000837609901457837, +0.00571058019146035,0.00571058019146035,0.00571474940560405,0.00566315705934614,0.00560744809021141,0.00556059859354264,0.00551948011156879,0.00548339553339562,0.00545903703659726,0.00545903703659726, +0.0307122526919895,0.0307122526919895,0.0307086175706576,0.0304815042192458,0.0302355456419021,0.0300224565767957,0.0298311683615106,0.0296607556496993,0.0295432587507475,0.0295432587507475, +0.132035853740721,0.132035853740721,0.131925998569854,0.131162571394468,0.130333117004717,0.129586143268076,0.128896421465843,0.128268494181619,0.127817813848618,0.127817813848618, +0.430948419958088,0.430948419958088,0.430388433085601,0.42854993882823,0.426563632240148,0.424684506516387,0.422886749130568,0.421192904968369,0.419863772377318,0.419863772377318, + +00:02:57, +1.54023979374982E-06,1.54023979374982E-06,1.54771611025214E-06,1.52390303950229E-06,1.49806200181312E-06,1.47774437316993E-06,1.46093530729076E-06,1.44669074259301E-06,1.43737783307523E-06,1.43737783307523E-06, +1.54023979374982E-06,1.54023979374982E-06,1.54771611025214E-06,1.52390303950229E-06,1.49806200181312E-06,1.47774437316993E-06,1.46093530729076E-06,1.44669074259301E-06,1.43737783307523E-06,1.43737783307523E-06, +1.38097071374056E-05,1.38097071374056E-05,1.38607822946643E-05,1.36707080517858E-05,1.34647629423036E-05,1.3300681152952E-05,1.31632523176516E-05,1.30460066316277E-05,1.29690180404155E-05,1.29690180404155E-05, +0.000119349962324086,0.000119349962324086,0.000119667569694878,0.000118214367183263,0.000116641396537213,0.000115369494232788,0.000114290059410482,0.000113362311640284,0.00011274961519386,0.00011274961519386, +0.000900621973592299,0.000900621973592299,0.000902125868338614,0.00089260494931801,0.000882299480513559,0.000873812988108976,0.000866498842118027,0.000860156080281925,0.000855932697148493,0.000855932697148493, +0.00580445217456231,0.00580445217456231,0.00580872926755919,0.00575676062202605,0.00570044050426218,0.00565298187751517,0.00561131855458444,0.005574778203884,0.00555013817130887,0.00555013817130887, +0.0310653675332244,0.0310653675332244,0.0310618922549823,0.0308340667210112,0.0305865344134059,0.0303716934274058,0.0301787878367339,0.0300070261177733,0.0298887150367759,0.0298887150367759, +0.132944450028577,0.132944450028577,0.132834696828082,0.132071513939338,0.131240125386436,0.130490290702494,0.129797786937187,0.129167592719544,0.128715662172224,0.128715662172224, +0.432181052214211,0.432181052214211,0.431622398654559,0.429788436849474,0.427803729320554,0.425924339159231,0.4241260815,0.422432186507799,0.421103732034828,0.421103732034828, + +00:02:58, +1.59839287230811E-06,1.59839287230811E-06,1.6061651615348E-06,1.58170833335941E-06,1.55505099115618E-06,1.53404186823657E-06,1.51665586759995E-06,1.50193363107658E-06,1.49231976839461E-06,1.49231976839461E-06, +1.59839287230811E-06,1.59839287230811E-06,1.6061651615348E-06,1.58170833335941E-06,1.55505099115618E-06,1.53404186823657E-06,1.51665586759995E-06,1.50193363107658E-06,1.49231976839461E-06,1.49231976839461E-06, +1.42509527458912E-05,1.42509527458912E-05,1.43037714872893E-05,1.41096100458931E-05,1.38983340344656E-05,1.3729616438612E-05,1.35882661960313E-05,1.34677636721708E-05,1.33887281487497E-05,1.33887281487497E-05, +0.000122529356038064,0.000122529356038064,0.000122856334163988,0.000121379098514868,0.000119773523915665,0.000118472359503981,0.000117367797254141,0.000116419121257828,0.0001157933143456,0.0001157933143456, +0.000919912083412683,0.000919912083412683,0.000921454648568012,0.000911821812244125,0.000901354465942063,0.000892716269229537,0.000885269454598925,0.000878815924906426,0.000874523519815156,0.000874523519815156, +0.00589917392393451,0.00589917392393451,0.00590355999700484,0.00585121589925548,0.00579428340573392,0.00574621280903088,0.00570400173373912,0.00566700349032936,0.00564208095002362,0.00564208095002362, +0.0314198326512494,0.0314198326512494,0.0314165181747097,0.0311879864400348,0.0309388864153241,0.0307222952198346,0.0305277725347375,0.0303546629922024,0.0302355395085792,0.0302355395085792, +0.133851955995935,0.133851955995935,0.133742305845114,0.13297937169716,0.132146072582174,0.131393398724599,0.130698130962208,0.130065686615025,0.129612517861397,0.129612517861397, +0.433406572804406,0.433406572804406,0.432849249362241,0.431019782130645,0.429036685484473,0.427157057922587,0.425358325090001,0.423664400623204,0.422336635779378,0.422336635779378, + +00:02:59, +1.65834954895753E-06,1.65834954895753E-06,1.66642723279784E-06,1.64131420095564E-06,1.6138207690984E-06,1.59210153596479E-06,1.57412276819947E-06,1.55891012565706E-06,1.5489876536814E-06,1.5489876536814E-06, +1.65834954895753E-06,1.65834954895753E-06,1.66642723279784E-06,1.64131420095564E-06,1.6138207690984E-06,1.59210153596479E-06,1.57412276819947E-06,1.55891012565706E-06,1.5489876536814E-06,1.5489876536814E-06, +1.47032601965101E-05,1.47032601965101E-05,1.4757867600574E-05,1.4559563780084E-05,1.43428595051878E-05,1.41694091098427E-05,1.40240532752176E-05,1.39002264637659E-05,1.3819104076736E-05,1.3819104076736E-05, +0.000125771196578957,0.000125771196578957,0.000126107737184854,0.000124606270641071,0.000122967673773212,0.000121636794748605,0.000120506702073155,0.000119536777531541,0.000118897675057862,0.000118897675057862, +0.000939477494706127,0.000939477494706127,0.000941059316197395,0.000931314226126768,0.000920683801517122,0.000911892378026013,0.000904311481483382,0.000897746082198349,0.000893384049949867,0.000893384049949867, +0.00599474503703643,0.00599474503703643,0.0059992411801549,0.00594652248666565,0.0058889764257282,0.00584029105361333,0.00579752934046383,0.00576007110592845,0.00573486509959149,0.00573486509959149, +0.0317756345288416,0.0317756345288416,0.0317724817702166,0.0315432497626972,0.0312925880602299,0.0310742484504626,0.030878109029046,0.0307036529014629,0.0305837188178323,0.0305837188178323, +0.134758355549503,0.134758355549503,0.134648809443967,0.133886128378739,0.133050942070522,0.132295450733364,0.131597436901866,0.130962759160165,0.130508364124858,0.130508364124858, +0.434625041763886,0.434625041763886,0.434069045134039,0.432244035172605,0.430262560898711,0.42838272257238,0.426583539337389,0.424889606432813,0.423562542499946,0.423562542499946, + +00:03:00, +1.72015309679189E-06,1.72015309679189E-06,1.72854581838882E-06,1.70276400784406E-06,1.67441438056561E-06,1.65196606320841E-06,1.63337837796431E-06,1.61766234863794E-06,1.60742347218261E-06,1.60742347218261E-06, +1.72015309679189E-06,1.72015309679189E-06,1.72854581838882E-06,1.70276400784406E-06,1.67441438056561E-06,1.65196606320841E-06,1.63337837796431E-06,1.61766234863794E-06,1.60742347218261E-06,1.60742347218261E-06, +1.51668257315364E-05,1.51668257315364E-05,1.52232676257032E-05,1.50207660617906E-05,1.47985352371847E-05,1.46202538216373E-05,1.44708070634837E-05,1.43435876426877E-05,1.42603379925091E-05,1.42603379925091E-05, +0.000129076230687356,0.000129076230687356,0.000129422527391961,0.00012789663302446,0.000126224594346787,0.000124863545319313,0.000123707516192146,0.000122716020595508,0.000122063436429564,0.000122063436429564, +0.000959319859678902,0.000959319859678902,0.000960941524541124,0.000951083850681058,0.000940289153245138,0.000931342981687165,0.000923626588897543,0.000916948218240268,0.000912515954500451,0.000912515954500451, +0.00609116506099574,0.00609116506099574,0.00609577235272321,0.00604267992911011,0.00598451914426196,0.0059352162257332,0.00589190101526335,0.00585398071298223,0.00582849029592426,0.00582849029592426, +0.0321327596984017,0.0321327596984017,0.0321297695318343,0.0318998431257918,0.0316476258098782,0.0314275396635745,0.0312297839402449,0.0310539825203246,0.0309332396620091,0.0309332396620091, +0.135663632952629,0.135663632952629,0.135554191806273,0.134791768056441,0.133954717693639,0.133196430490136,0.132495688478367,0.131858794007829,0.131403184532372,0.131403184532372, +0.435836518504765,0.435836518504765,0.435281845276503,0.433461255845807,0.431481415107008,0.429601392256877,0.427801783065336,0.426107862445622,0.424781510480072,0.424781510480072, + +00:03:01, +1.78384749771777E-06,1.78384749771777E-06,1.79256512452519E-06,1.76610183196045E-06,1.7368755808288E-06,1.71367884352757E-06,1.69446576879546E-06,1.67823312262581E-06,1.66766990607195E-06,1.66766990607195E-06, +1.78384749771777E-06,1.78384749771777E-06,1.79256512452519E-06,1.76610183196045E-06,1.7368755808288E-06,1.71367884352757E-06,1.69446576879546E-06,1.67823312262581E-06,1.66766990607195E-06,1.66766990607195E-06, +1.56418474215124E-05,1.56418474215124E-05,1.5700170385552E-05,1.5493415535979E-05,1.52655589542936E-05,1.50823470684417E-05,1.49287229047248E-05,1.47980416783178E-05,1.47126238965556E-05,1.47126238965556E-05, +0.000132445206671619,0.000132445206671619,0.000132801454971909,0.00013125093669583,0.000129545035479494,0.000128153358208868,0.000126970983598673,0.000125957592264568,0.000125291339251386,0.000125291339251386, +0.000979440816549562,0.000979440816549562,0.000981102912826608,0.000971132331495803,0.000960172173079405,0.000951069733495724,0.000943216429192591,0.000936423985430058,0.000931920886771728,0.000931920886771728, +0.00618843349323538,0.00618843349323538,0.00619315300055641,0.0061396877213025,0.00608091109090452,0.00603098788943883,0.00598711634834141,0.00594873192351793,0.00592295616461632,0.00592295616461632, +0.0324911947428761,0.0324911947428761,0.0324883680007782,0.0322577530174543,0.0320039861761616,0.0317821554523229,0.031582783936947,0.0314056385708228,0.0312840887853616,0.0312840887853616, +0.136567772819459,0.136567772819459,0.136458437466405,0.135696275158236,0.134857383651297,0.134096322112725,0.133392869769287,0.132753775165783,0.132296963008899,0.132296963008899, +0.437041061823403,0.437041061823403,0.436487708484564,0.434671503397785,0.432693307037352,0.43081312551394,0.429013114490578,0.427319226568533,0.425993597404929,0.425993597404929, + +00:03:02, +1.84947744755685E-06,1.84947744755685E-06,1.85853007439536E-06,1.83137246874875E-06,1.80124884066043E-06,1.77728398236207E-06,1.75742872079786E-06,1.74066597571139E-06,1.7297703416341E-06,1.7297703416341E-06, +1.84947744755685E-06,1.84947744755685E-06,1.85853007439536E-06,1.83137246874875E-06,1.80124884066043E-06,1.77728398236207E-06,1.75742872079786E-06,1.74066597571139E-06,1.7297703416341E-06,1.7297703416341E-06, +1.61285251586332E-05,1.61285251586332E-05,1.61887765279444E-05,1.59777126784066E-05,1.57441302148494E-05,1.55558871776984E-05,1.53979979721438E-05,1.52637848669266E-05,1.51761576155424E-05,1.51761576155424E-05, +0.000135878874337452,0.000135878874337452,0.000136245271592607,0.000134669934183014,0.00013292974854931,0.000131506981979163,0.000130297849872656,0.000129262235963968,0.000128582125935482,0.000128582125935482, +0.000999841989459157,0.000999841989459157,0.00100154510610496,0.000991461299943608,0.000980334498828127,0.000971074272734893,0.000963082640850556,0.000956175022386034,0.000951600486330135,0.000951600486330135, +0.00628654978209862,0.00628654978209862,0.00629138256026473,0.00623754530845204,0.00617815174541262,0.00612760555898472,0.00608317488022402,0.0060443242999091,0.0060182622815637,0.0060182622815637, +0.0328509262966466,0.0328509262966466,0.032848263770046,0.0326169659780593,0.0323616557220332,0.0321380824596612,0.0319370957367262,0.0317586078231979,0.0316362529798666,0.0316362529798666, +0.137470760109189,0.137470760109189,0.137361531305698,0.136599634461836,0.135758924495013,0.134995110069579,0.134288965201772,0.133647686990923,0.133189683828822,0.133189683828822, +0.438238729907658,0.438238729907658,0.43768669284867,0.435874836460548,0.433898295009206,0.43201798027818,0.430217591230525,0.428523756113406,0.427198860368318,0.427198860368318, + +00:03:03, +1.91708836109364E-06,1.91708836109364E-06,1.9264863132046E-06,1.89862143623101E-06,1.86757935143528E-06,1.84282630215003E-06,1.82231172740428E-06,1.80500514659715E-06,1.79376887439567E-06,1.79376887439567E-06, +1.91708836109364E-06,1.91708836109364E-06,1.9264863132046E-06,1.89862143623101E-06,1.86757935143528E-06,1.84282630215003E-06,1.82231172740428E-06,1.80500514659715E-06,1.79376887439567E-06,1.79376887439567E-06, +1.66270606498923E-05,1.66270606498923E-05,1.66892885186732E-05,1.64738597886397E-05,1.62344504048172E-05,1.60410743031489E-05,1.58788312616949E-05,1.57410153252127E-05,1.56511367959037E-05,1.56511367959037E-05, +0.000139377984917713,0.000139377984917713,0.000139754730332673,0.000138154379439948,0.000136379486398016,0.000134925166690457,0.000133688862116001,0.000132630696659207,0.000131936540445398,0.000131936540445398, +0.0010205249883848,0.0010205249883848,0.00102226971516504,0.00101207237309438,0.00100077775406587,0.000991358224598252,0.000983226848393523,0.000976202953855476,0.000971556378911759,0.000971556378911759, +0.00638551332747188,0.00638551332747188,0.00639046041985044,0.00633625208689671,0.00627624053836313,0.00622506869945813,0.00618007610238085,0.0061407573554938,0.00611440817358114,0.00611440817358114, +0.0332119410463887,0.0332119410463887,0.0332094434852834,0.0329774686010857,0.0327206210623976,0.0324953073792432,0.0322927061070193,0.032112877096804,0.03198971908614,0.03198971908614, +0.1383725801204,0.1383725801204,0.138263458546758,0.137501831088927,0.136659325122279,0.135892779174054,0.135183959546835,0.134540514183587,0.134081331610276,0.134081331610276, +0.439429580344053,0.439429580344053,0.438878855861833,0.437071313057871,0.435096436740647,0.433216013888033,0.431415270310279,0.429721507804019,0.428397355879567,0.428397355879567, + +00:03:04, +1.98672637706761E-06,1.98672637706761E-06,1.99648021316457E-06,1.96789498002091E-06,1.93591303017529E-06,1.91035134739114E-06,1.88916000044461E-06,1.87129558967056E-06,1.85971031420206E-06,1.85971031420206E-06, +1.98672637706761E-06,1.98672637706761E-06,1.99648021316457E-06,1.96789498002091E-06,1.93591303017529E-06,1.91035134739114E-06,1.88916000044461E-06,1.87129558967056E-06,1.85971031420206E-06,1.85971031420206E-06, +1.71376574099931E-05,1.71376574099931E-05,1.72019106342849E-05,1.69820609828341E-05,1.67367227306865E-05,1.65381104178971E-05,1.63714235852891E-05,1.6229932983604E-05,1.61377608971884E-05,1.61377608971884E-05, +0.000142943291002431,0.000142943291002431,0.000143330585611088,0.000141705027775965,0.000139895003260359,0.000138408663830827,0.000137144768882437,0.000136063720786098,0.000135355328226188,0.000135355328226188, +0.00104149140905655,0.00104149140905655,0.00104327833645079,0.00103296715363219,0.00102150354804837,0.00101192320010304,0.00100365066229619,0.000996509390626508,0.000991790176333699,0.000991790176333699, +0.00648532348140531,0.00648532348140531,0.00649038591933404,0.00643580740473413,0.00637517685178363,0.00632337672740337,0.00627781945784436,0.0062380305551907,0.00621139331901719,0.00621139331901719, +0.0335742257319001,0.0335742257319001,0.0335718938456201,0.0333392475339507,0.03308086886497,0.0328538169562916,0.032649601865997,0.0324684332609847,0.0323444739943196,0.0323444739943196, +0.13927321848549,0.13927321848549,0.139164204747863,0.138402850499485,0.137558570770879,0.136789314578775,0.136077837913738,0.135432241781961,0.134971891309552,0.134971891309552, +0.440613670124839,0.440613670124839,0.440064254426585,0.438260990612498,0.436287789355407,0.43440728309273,0.432606208169569,0.430912537782941,0.429589139870338,0.429589139870338, + +00:03:05, +2.05843836310915E-06,2.05843836310915E-06,2.06855887842597E-06,2.03924007828003E-06,2.00629652453739E-06,1.97990538965364E-06,1.95801947515944E-06,1.9395829800222E-06,1.92764019023936E-06,1.92764019023936E-06, +2.05843836310915E-06,2.05843836310915E-06,2.06855887842597E-06,2.03924007828003E-06,2.00629652453739E-06,1.97990538965364E-06,1.95801947515944E-06,1.9395829800222E-06,1.92764019023936E-06,1.92764019023936E-06, +1.76605207540289E-05,1.76605207540289E-05,1.77268489546321E-05,1.75025221862823E-05,1.72511522121298E-05,1.70471993072361E-05,1.68759775637627E-05,1.67307395793232E-05,1.66362311851729E-05,1.66362311851729E-05, +0.000146575546469084,0.000146575546469084,0.000146973593117087,0.000145322635785353,0.000143477054693458,0.000141958226245856,0.000140666320107583,0.000139562056181045,0.00013883923613475,0.00013883923613475, +0.00106274283287754,0.00106274283287754,0.00106457255198193,0.00105414722977547,0.00104251347563076,0.00103277079600679,0.00102435567890176,0.00101709592944329,0.00101230347640876,0.00101230347640876, +0.006585979548731,0.006585979548731,0.00659115835137803,0.0065362105624498,0.00647496001978042,0.00642252901144382,0.00637640434182683,0.00633614331611299,0.00630921714836712,0.00630921714836712, +0.0339377671468988,0.0339377671468988,0.0339356016044742,0.0337022894788137,0.0334423858511051,0.0332135979884361,0.0330077698834037,0.0328252632359202,0.0327005046449184,0.0327005046449184, +0.140172661165182,0.140172661165182,0.140063755797448,0.139302678486191,0.138456647013286,0.137684701770078,0.136970585744467,0.13632285515657,0.135861348215598,0.135861348215598, +0.441791055654974,0.441791055654974,0.441242944861846,0.439443925953248,0.437472409389827,0.435591844059195,0.43379046066959,0.432096901618311,0.430774267701358,0.430774267701358, + +00:03:06, +2.13227192061827E-06,2.13227192061827E-06,2.14277014995335E-06,2.11270444661611E-06,2.07877721774359E-06,2.05153543252426E-06,2.02893681515729E-06,2.00991371840791E-06,1.99760475600035E-06,1.99760475600035E-06, +2.13227192061827E-06,2.13227192061827E-06,2.14277014995335E-06,2.11270444661611E-06,2.07877721774359E-06,2.05153543252426E-06,2.02893681515729E-06,2.00991371840791E-06,1.99760475600035E-06,1.99760475600035E-06, +1.81958577899333E-05,1.81958577899333E-05,1.82643113551972E-05,1.80354511257296E-05,1.77779456744288E-05,1.75685465612423E-05,1.73926976196147E-05,1.72436386492204E-05,1.71467507247396E-05,1.71467507247396E-05, +0.000150275506413116,0.000150275506413116,0.000150684509740314,0.000149007961277159,0.000147126397506463,0.000145574608068565,0.000144254267039247,0.000143126452011556,0.000142389012370403,0.000142389012370403, +0.00108428082684736,0.00108428082684736,0.00108615392927788,0.00107561417520042,0.001063809117189,0.00105390259472722,0.00104534348034107,0.00103796415292445,0.0010330978628634,0.0010330978628634, +0.00668748078767869,0.00668748078767869,0.00669277696190808,0.00663746081354281,0.00657558932916412,0.00652252487290168,0.00647583010233497,0.00643509500818008,0.00640787904488363,0.00640787904488363, +0.0343025521397929,0.0343025521397929,0.0343005535703287,0.034066581193351,0.0338051587965953,0.0335746373265216,0.0333671970813683,0.0331833539934425,0.0330577980296466,0.0330577980296466, +0.141070894443127,0.141070894443127,0.140962097908672,0.140201301168923,0.139353539751164,0.138578926562541,0.137862188808286,0.137212340004853,0.136749687944601,0.136749687944601, +0.442961792759016,0.442961792759016,0.442414982909707,0.440620175322031,0.438650352799723,0.436769752378838,0.43496808309976,0.433274654310542,0.431952794169054,0.431952794169054, + +00:03:07, +2.20827538958556E-06,2.20827538958556E-06,2.21916261034131E-06,2.18833654292249E-06,2.15340323345254E-06,2.12528921650017E-06,2.10195941731459E-06,2.0823349361541E-06,2.06965099419409E-06,2.06965099419409E-06, +2.20827538958556E-06,2.20827538958556E-06,2.21916261034131E-06,2.18833654292249E-06,2.15340323345254E-06,2.12528921650017E-06,2.10195941731459E-06,2.0823349361541E-06,2.06965099419409E-06,2.06965099419409E-06, +1.87438774107057E-05,1.87438774107057E-05,1.88145074991892E-05,1.85810573214632E-05,1.83173117406709E-05,1.81023595671392E-05,1.79217899695134E-05,1.77688355223768E-05,1.76695243725275E-05,1.76695243725275E-05, +0.000154043927078719,0.000154043927078719,0.000154464093501253,0.000152761763205285,0.000150843789690483,0.000149258564649606,0.00014790936216798,0.000146757658707,0.000146005406405691,0.000146005406405691, +0.00110610694348863,0.00110610694348863,0.00110802402128486,0.00109736954896778,0.00108539203854462,0.00107532016426539,0.00106661563445501,0.0010591156294848,0.00105417490525892,0.00105417490525892, +0.00678982641048891,0.00678982641048891,0.00679524095073161,0.00673955736514888,0.00667706402007265,0.00662336358641508,0.00657609604078223,0.00653488495472686,0.00650737834518516,0.00650737834518516, +0.0346685676144206,0.0346685676144206,0.0346667366074778,0.0344321094915001,0.0341691745324398,0.0339369218753865,0.0337278704351846,0.0335426925578236,0.0334163411922051,0.0334163411922051, +0.141967904920581,0.141967904920581,0.141859217614073,0.141098704989341,0.140249235209934,0.139471975093601,0.138752633196375,0.138100682345821,0.13763689643465,0.13763689643465, +0.44412593668792,0.44412593668792,0.443580423742131,0.441789794380771,0.439821674967169,0.437941063074273,0.436139130184391,0.434445850298929,0.433124773512115,0.433124773512115, + +00:03:08, +2.28649785335443E-06,2.28649785335443E-06,2.29778558857147E-06,2.26618557215805E-06,2.2302234405717E-06,2.20121522382246E-06,2.17713541661774E-06,2.15689450000557E-06,2.14382662159793E-06,2.14382662159793E-06, +2.28649785335443E-06,2.28649785335443E-06,2.29778558857147E-06,2.26618557215805E-06,2.2302234405717E-06,2.20121522382246E-06,2.17713541661774E-06,2.15689450000557E-06,2.14382662159793E-06,2.14382662159793E-06, +1.93047902864138E-05,1.93047902864138E-05,1.93776488294182E-05,1.91395520791765E-05,1.88694608237199E-05,1.86488475014346E-05,1.84634626165764E-05,1.83065373124803E-05,1.8204758769354E-05,1.8204758769354E-05, +0.000157881565789896,0.000157881565789896,0.000158313103481934,0.00015658480159885,0.0001546299903488,0.000153010852487722,0.000151632359157891,0.000150456427889621,0.000149689168917456,0.000149689168917456, +0.00112822272077668,0.00112822272077668,0.00113018436630624,0.00111941489545265,0.00110726379089272,0.00109702505813213,0.00108817369472007,0.00108055191326019,0.00107553615891586,0.00107553615891586, +0.00689301558402351,0.00689301558402351,0.00689854947215362,0.0068424993786605,0.0067793832865915,0.00672504438055274,0.00667720141259844,0.00663551243311055,0.00660771433986186,0.00660771433986186, +0.0350358005307635,0.0350358005307635,0.0350341376367455,0.0347988612441774,0.0345344199455852,0.0343004385946126,0.0340897769740644,0.0339032660065329,0.0337761212290505,0.0337761212290505, +0.142863679511179,0.142863679511179,0.142755101760306,0.141994876705554,0.141143719933445,0.140363833818253,0.13964190531656,0.138987868514804,0.138522959940485,0.138522959940485, +0.445283542125749,0.445283542125749,0.444739321967559,0.44295283821824,0.440986430707181,0.43910583060595,0.437303656089268,0.435610543468178,0.434290259417958,0.434290259417958, + +00:03:09, +2.36698914332398E-06,2.36698914332398E-06,2.37868916470933E-06,2.34630149106676E-06,2.30928745800955E-06,2.27936268325002E-06,2.25451369094637E-06,2.23364101691498E-06,2.22018009385152E-06,2.22018009385152E-06, +2.36698914332398E-06,2.36698914332398E-06,2.37868916470933E-06,2.34630149106676E-06,2.30928745800955E-06,2.27936268325002E-06,2.25451369094637E-06,2.23364101691498E-06,2.22018009385152E-06,2.22018009385152E-06, +1.98788088559761E-05,1.98788088559761E-05,1.99539485599497E-05,1.97111484816126E-05,1.94346051179633E-05,1.92082213218336E-05,1.90179253424272E-05,1.88569529099794E-05,1.87526623324147E-05,1.87526623324147E-05, +0.000161789180881802,0.000161789180881802,0.000162232299756939,0.000160477837492864,0.00015848575962736,0.000156832229160479,0.000155424012777731,0.000154223512305821,0.000153441051718167,0.000153441051718167, +0.00115062968207241,0.00115062968207241,0.00115263648793595,0.00114175174427757,0.00112942591073309,0.00111901881527751,0.00111001920017711,0.00110227454403555,0.00109718316484147,0.00109718316484147, +0.00699704743037335,0.00699704743037335,0.00700270163558979,0.00694628597034435,0.00688254627737126,0.0068275664384259,0.00677914542783698,0.00673697667531494,0.00670888627407893,0.00670888627407893, +0.0354042379056323,0.0354042379056323,0.035402743636177,0.0351668233799669,0.034900881979637,0.0346651744992474,0.0344529037818616,0.0342650614709687,0.0341371252901314,0.0341371252901314, +0.14375820543577,0.14375820543577,0.143649737502963,0.142889803386873,0.142036980778713,0.141254489503833,0.140529991888113,0.139873885158267,0.139407865028327,0.139407865028327, +0.446434663196309,0.446434663196309,0.445891731637448,0.444109361356806,0.442144674274333,0.440264108878695,0.438461714428156,0.436768787154853,0.435449305029123,0.435449305029123, + +00:03:10, +2.44979984359186E-06,2.44979984359186E-06,2.4619241745404E-06,2.4287350128363E-06,2.39064565936693E-06,2.35978157477345E-06,2.33414386579714E-06,2.31262383877325E-06,2.29876061019188E-06,2.29876061019188E-06, +2.44979984359186E-06,2.44979984359186E-06,2.4619241745404E-06,2.4287350128363E-06,2.39064565936693E-06,2.35978157477345E-06,2.33414386579714E-06,2.31262383877325E-06,2.29876061019188E-06,2.29876061019188E-06, +2.04661473187289E-05,2.04661473187289E-05,2.05436216675422E-05,2.0296061379989E-05,2.001295859084E-05,1.97806937589315E-05,1.95853896990317E-05,1.94202929740149E-05,1.93134452472615E-05,1.93134452472615E-05, +0.000165767531632382,0.000165767531632382,0.000166222443324711,0.000164441632859197,0.000162411858645576,0.000160723453255306,0.00015928507883226,0.000158059665757718,0.00015726180768753,0.00015726180768753, +0.00117332933605815,0.00117332933605815,0.00117538189499504,0.00116438161024867,0.00115187991980445,0.00114130296002359,0.0011321536753632,0.001124285047176,0.00111911744966045,0.00111911744966045, +0.00710192102746327,0.00710192102746327,0.00710769650617656,0.00705091621195561,0.00698655209624216,0.00693092889829753,0.00688192725177918,0.00683927686855205,0.00681089334817746,0.00681089334817746, +0.0357738668133253,0.0357738668133253,0.0357725416417022,0.0355359828857821,0.0352685476355447,0.035031116660498,0.0348172379977698,0.0346280661371608,0.0344993405795979,0.0344993405795979, +0.144651470217353,0.144651470217353,0.144543112301465,0.143783472408645,0.142929004910746,0.142143929224878,0.141416879936642,0.140758719228721,0.140291598570785,0.140291598570785, +0.447579353469688,0.447579353469688,0.447037706252714,0.445259417759089,0.443296459369276,0.441415951248175,0.439613358269214,0.437920634153739,0.436601962949582,0.436601962949582, + +00:03:11, +2.53498129553625E-06,2.53498129553625E-06,2.54754221414477E-06,2.51353761169489E-06,2.47434917756688E-06,2.44252263426792E-06,2.4160763189473E-06,2.39389306708018E-06,2.37961811812886E-06,2.37961811812886E-06, +2.53498129553625E-06,2.53498129553625E-06,2.54754221414477E-06,2.51353761169489E-06,2.47434917756688E-06,2.44252263426792E-06,2.4160763189473E-06,2.39389306708018E-06,2.37961811812886E-06,2.37961811812886E-06, +2.10670216257785E-05,2.10670216257785E-05,2.11468848828712E-05,2.08945073852083E-05,2.06047369741508E-05,2.03664793076885E-05,2.01660690003161E-05,1.99967699241351E-05,1.98873194595632E-05,1.98873194595632E-05, +0.000169817378194321,0.000169817378194321,0.00017028429603917,0.000168476950537866,0.000166409049427436,0.000164685284300813,0.000163216314093913,0.000161965643034993,0.00016115219070438,0.00016115219070438, +0.00119632317667661,0.00119632317667661,0.00119842208147124,0.00118730599329486,0.00117462732502189,0.00116387900200015,0.00115457863024654,0.00114658493356108,0.00114134052554856,0.00114134052554856, +0.00720763540965405,0.00720763540965405,0.00721353310537836,0.00715638913134934,0.00709139980282584,0.00703513085418868,0.00698554600553594,0.00694241215586102,0.00691373471827244,0.00691373471827244, +0.0361446743862616,0.0361446743862616,0.0361435187477736,0.035906326807502,0.0356374039722592,0.035398252206399,0.0351827668169924,0.0349922672464469,0.0348627543564841,0.0348627543564841, +0.145543461676076,0.145543461676076,0.145435213914048,0.144675871447164,0.143819779797454,0.143032140358068,0.142302556789054,0.1416423579797,0.141174147741843,0.141174147741843, +0.448717665968713,0.448717665968713,0.4481772987701,0.446403060834536,0.444441839145182,0.442561410527276,0.440758640141334,0.439066136724124,0.437748285250969,0.437748285250969, + +00:03:12, +2.62258560233636E-06,2.62258560233636E-06,2.63559564440967E-06,2.60076152744574E-06,2.5604499094223E-06,2.52763735808462E-06,2.50036218505734E-06,2.4774995575545E-06,2.46280331806025E-06,2.46280331806025E-06, +2.62258560233636E-06,2.62258560233636E-06,2.63559564440967E-06,2.60076152744574E-06,2.5604499094223E-06,2.52763735808462E-06,2.50036218505734E-06,2.4774995575545E-06,2.46280331806025E-06,2.46280331806025E-06, +2.16816494711446E-05,2.16816494711446E-05,2.17639566815428E-05,2.15067048588567E-05,2.12101577551557E-05,2.09657942186903E-05,2.07601783135721E-05,2.05865979317968E-05,2.04744986666522E-05,2.04744986666522E-05, +0.000173939481527299,0.000173939481527299,0.000174418620541665,0.000172584554168656,0.000170478094832934,0.000168718482698443,0.000167218476234762,0.000165942199847044,0.000165112955578878,0.000165112955578878, +0.00121961268307274,0.00121961268307274,0.00122175852646157,0.00121052637841013,0.00119766961841727,0.00118674843608351,0.00117729556016444,0.00116917569952196,0.00116385389016946,0.00116385389016946, +0.0073141895683415,0.0073141895683415,0.0073202104115917,0.00726270371308873,0.00719708841314393,0.0071401713564819,0.00709000076664659,0.00704638163670421,0.00701740949684811,0.00701740949684811, +0.0365166478155885,0.0365166478155885,0.0365156621079779,0.0362778422505799,0.0360074381073641,0.0357665683224538,0.0355494774913871,0.0353576520961232,0.035227353935364,0.035227353935364, +0.146434167924324,0.146434167924324,0.146326030392811,0.145566988474668,0.144709293204633,0.143919110577249,0.143187010068599,0.142524788960825,0.142055500011927,0.142055500011927, +0.449849653175334,0.449849653175334,0.449310561608464,0.447540343445907,0.445580866214101,0.443700538992404,0.441897612040395,0.440205346596002,0.438888323478728,0.438888323478728, + +00:03:13, +2.71266563343083E-06,2.71266563343083E-06,2.72613759547908E-06,2.69045976993841E-06,2.64900052014072E-06,2.61517800757983E-06,2.58705336021204E-06,2.56349492468284E-06,2.54836766782588E-06,2.54836766782588E-06, +2.71266563343083E-06,2.71266563343083E-06,2.72613759547908E-06,2.69045976993841E-06,2.64900052014072E-06,2.61517800757983E-06,2.58705336021204E-06,2.56349492468284E-06,2.54836766782588E-06,2.54836766782588E-06, +2.23102502826954E-05,2.23102502826954E-05,2.23950572749E-05,2.21328739039934E-05,2.18294401674604E-05,2.15788564891977E-05,2.13679344506491E-05,2.11899929116539E-05,2.10751983088589E-05,2.10751983088589E-05, +0.000178134603330581,0.000178134603330581,0.000178626180193252,0.000176765208123069,0.00017461975848983,0.000172823809654428,0.000171292323758796,0.000169990092755433,0.000169144857985006,0.000169144857985006, +0.00124319931953864,0.00124319931953864,0.00124539269411793,0.00123404423559875,0.00122100827708264,0.00120991274233838,0.00120030594576428,0.0011920588267817,0.00118665902661437,0.00118665902661437, +0.00742158245255238,0.00742158245255238,0.0074277273607462,0.00736985889905008,0.00730361690022355,0.00724604941252175,0.00719529056967464,0.00715118436756038,0.00712191675335037,0.00712191675335037, +0.0368897743517636,0.0368897743517636,0.0368889589356228,0.0366505163806287,0.0363786372176817,0.0361360522522499,0.0359173573300844,0.035724208040069,0.0355931266869826,0.0355931266869826, +0.147323577361871,0.147323577361871,0.147215550078852,0.146456811754415,0.14559753319103,0.144804827848528,0.144070227689991,0.143406000012939,0.142935643143043,0.142935643143043, +0.450975367036915,0.450975367036915,0.450437546654989,0.448671317915685,0.446713592653242,0.444833388389703,0.443030325435441,0.4413383149762,0.440022128658195,0.440022128658195, + +00:03:14, +2.80527502891328E-06,2.80527502891328E-06,2.81922197113995E-06,2.78268612347646E-06,2.74005444776546E-06,2.7051976135811E-06,2.67620250639922E-06,2.65193154620672E-06,2.63636338720006E-06,2.63636338720006E-06, +2.80527502891328E-06,2.80527502891328E-06,2.81922197113995E-06,2.78268612347646E-06,2.74005444776546E-06,2.7051976135811E-06,2.67620250639922E-06,2.65193154620672E-06,2.63636338720006E-06,2.63636338720006E-06, +2.29530452128789E-05,2.29530452128789E-05,2.30404086006248E-05,2.27732363557362E-05,2.24628051816964E-05,2.22058858539875E-05,2.19895559589401E-05,2.18071725126397E-05,2.16896355606387E-05,2.16896355606387E-05, +0.000182403505975938,0.000182403505975938,0.000182907739007315,0.000181019677436618,0.000178834804725758,0.000177002027112086,0.000175438615934527,0.000174110079106671,0.000173248654393385,0.000173248654393385, +0.00126708453546131,0.00126708453546131,0.00126932603359554,0.0012578610198235,0.00124464476311671,0.00123337338596265,0.00122361125294739,0.00121523578239839,0.00120975740334484,0.00120975740334484, +0.00752981296953726,0.00752981296953726,0.00753608284690241,0.00747785358902468,0.00741098419469974,0.00735276398721209,0.00730141440680072,0.00725681936251497,0.00722725551477628,0.00722725551477628, +0.0372640413051131,0.0372640413051131,0.0372633965042984,0.0370243364239795,0.0367509885398527,0.0365066912980499,0.0362863937000816,0.0360919224893464,0.035960060038861,0.035960060038861, +0.148211678671123,0.148211678671123,0.148103761597474,0.147345329835825,0.146484488103481,0.145689280425449,0.144952197854604,0.144285979263317,0.143814565183998,0.143814565183998, +0.452094858972452,0.452094858972452,0.451558305271312,0.449796036032389,0.447840070011173,0.445960009941194,0.44415683127478,0.442465092554424,0.441149751300586,0.441149751300586, + +00:03:15, +2.90046820386443E-06,2.90046820386443E-06,2.9149034531443E-06,2.87749515116066E-06,2.83366590755269E-06,2.79774998078985E-06,2.76786305592548E-06,2.742862567547E-06,2.72684346232153E-06,2.72684346232153E-06, +2.90046820386443E-06,2.90046820386443E-06,2.9149034531443E-06,2.87749515116066E-06,2.83366590755269E-06,2.79774998078985E-06,2.76786305592548E-06,2.742862567547E-06,2.72684346232153E-06,2.72684346232153E-06, +2.36102571292542E-05,2.36102571292542E-05,2.370023431314E-05,2.34280157716431E-05,2.31104754959961E-05,2.28471037759892E-05,2.26252631121615E-05,2.24383561088423E-05,2.2318029321493E-05,2.2318029321493E-05, +0.000186746952440909,0.000186746952440909,0.000187264061582542,0.000185348727741481,0.000183123998500673,0.000181253897684452,0.000179658112727922,0.000178302916965317,0.000177425102004418,0.000177425102004418, +0.00129126976527326,0.00129126976527326,0.0012935599790044,0.00128197817095674,0.00126858052357416,0.0012571318172351,0.00124721293281593,0.00123870801871128,0.0012331504741383,0.0012331504741383, +0.00763887998536018,0.00763887998536018,0.00764527572284631,0.0075866866413172,0.00751918918541447,0.00746031400361039,0.00740837122841226,0.0073632855938473,0.00733342476626059,0.00733342476626059, +0.0376394360463659,0.0376394360463659,0.0376389621484156,0.0373992896682172,0.0371244793708928,0.0368784728213572,0.0366565740268121,0.0364607829127753,0.0363281414758775,0.0363281414758775, +0.14909846081242,0.14909846081242,0.148990653853467,0.148232531549713,0.147370146572129,0.146572456844238,0.145832909045741,0.145164715120955,0.144692254465683,0.144692254465683, +0.45320817987871,0.45320817987871,0.452672888299578,0.450914549056824,0.448960349313942,0.44708045435084,0.445277179992007,0.44358572950923,0.442271241408923,0.442271241408923, + +00:03:16, +2.99830035262015E-06,2.99830035262015E-06,3.01323750546662E-06,2.97494219916732E-06,2.92988989628364E-06,2.89288969211974E-06,2.86208921576848E-06,2.83634190616527E-06,2.81986165006056E-06,2.81986165006056E-06, +2.99830035262015E-06,2.99830035262015E-06,3.01323750546662E-06,2.97494219916732E-06,2.92988989628364E-06,2.89288969211974E-06,2.86208921576848E-06,2.83634190616527E-06,2.81986165006056E-06,2.81986165006056E-06, +2.42821106048234E-05,2.42821106048234E-05,2.43747597738123E-05,2.40974374218969E-05,2.37726755262682E-05,2.35027334367198E-05,2.32752779009317E-05,2.30837647901799E-05,2.29606002066889E-05,2.29606002066889E-05, +0.000191165706242422,0.000191165706242422,0.000191695913036263,0.000189753125199518,0.000187488105339664,0.000185580184587265,0.000183951574735681,0.00018256936504742,0.000181674958681768,0.000181674958681768, +0.00131575642840603,0.00131575642840603,0.00131809594936347,0.00130639711373436,0.00129281699041788,0.00128118947146604,0.00127111242162255,0.00126247697328971,0.00125683967803658,0.00125683967803658, +0.00774878232548502,0.00774878232548502,0.00775530480068058,0.00769635687334081,0.00762823072001246,0.00756869834351872,0.00751615994369016,0.00747058199261466,0.00744042345165912,0.00744042345165912, +0.0380159460071649,0.0380159460071649,0.0380156432637197,0.0377753634626924,0.0374990970687241,0.0372513842434581,0.0370278857946905,0.0368307768374851,0.0366973585408251,0.0366973585408251, +0.149983913019419,0.149983913019419,0.149876216026463,0.149118406003587,0.148254497505714,0.147454345919129,0.146712350023978,0.146042196271927,0.145568699596442,0.145568699596442, +0.454315380136281,0.454315380136281,0.45378134606842,0.452026907728237,0.45007448107112,0.44819477181053,0.446391421511945,0.444700275513919,0.443386648483882,0.443386648483882, + +00:03:17, +3.09882745297494E-06,3.09882745297494E-06,3.11428037849598E-06,3.07508340096097E-06,3.02878219651132E-06,2.99067211297016E-06,2.95893597186491E-06,2.9324242558613E-06,2.91547248232233E-06,2.91547248232233E-06, +3.09882745297494E-06,3.09882745297494E-06,3.11428037849598E-06,3.07508340096097E-06,3.02878219651132E-06,2.99067211297016E-06,2.95893597186491E-06,2.9324242558613E-06,2.91547248232233E-06,2.91547248232233E-06, +2.49688319081709E-05,2.49688319081709E-05,2.5064212040962E-05,2.47817282792926E-05,2.44496313962752E-05,2.417299972652E-05,2.3939824023151E-05,2.37436213528759E-05,2.36175705377798E-05,2.36175705377798E-05, +0.000195660531370773,0.000195660531370773,0.000196204058938154,0.000194233636435654,0.000191927891266137,0.000189981651572308,0.000188319763118869,0.00018691018265431,0.000185998982886179,0.000185998982886179, +0.00134054592924641,0.00134054592924641,0.00134293534855775,0.00133111925771262,0.00131735558047413,0.00130554776895076,0.00129531114072296,0.00128654406888492,0.00128082643929721,0.00128082643929721, +0.00785951877535858,0.00785951877535858,0.0078661688524124,0.0078068630622088,0.00773810760553353,0.00767791584807151,0.00762477942119216,0.00757870744923327,0.00754825047412908,0.00754825047412908, +0.0383935586805545,0.0383935586805545,0.0383934273077818,0.0381525452190096,0.0378748290526837,0.0376254130459403,0.0374003165476349,0.0372018918494426,0.0370676988349443,0.0370676988349443, +0.15086802479455,0.15086802479455,0.15076043756636,0.150002942577022,0.149137530086938,0.148334936737757,0.147590509822582,0.146918411674816,0.146443889457503,0.146443889457503, +0.45541650961557,0.45541650961557,0.454883728398862,0.453133162270399,0.451182515281773,0.449303012005992,0.44749960525652,0.445808779742358,0.444496021529565,0.444496021529565, + +00:03:18, +3.20210627032001E-06,3.20210627032001E-06,3.21808911316224E-06,3.17797568144089E-06,3.13039938074136E-06,3.09115339543441E-06,3.0584590933337E-06,3.03116509100615E-06,3.01373127028606E-06,3.01373127028606E-06, +3.20210627032001E-06,3.20210627032001E-06,3.21808911316224E-06,3.17797568144089E-06,3.13039938074136E-06,3.09115339543441E-06,3.0584590933337E-06,3.03116509100615E-06,3.01373127028606E-06,3.01373127028606E-06, +2.56706489934098E-05,2.56706489934098E-05,2.57688198596806E-05,2.54811170090337E-05,2.51415709275164E-05,2.48581292345953E-05,2.46191268741866E-05,2.44181502897398E-05,2.42891643329299E-05,2.42891643329299E-05, +0.000200232192223973,0.000200232192223973,0.000200789265244323,0.000198791028471653,0.000196444122735369,0.000194459062861117,0.000192763439536904,0.000191326129606739,0.000190397933609657,0.000190397933609657, +0.00136563965709549,0.00136563965709549,0.00136807956529806,0.00135614599722768,0.00134219769539036,0.00133020811492583,0.00131981049653125,0.00131091071338463,0.00130511216734753,0.00130511216734753, +0.00797108808099024,0.00797108808099024,0.00797786661053783,0.00791820394532271,0.00784881860900161,0.00778796531831998,0.00773422848943296,0.00768766081405602,0.00765690469670608,0.00765690469670608, +0.0387722616214472,0.0387722616214472,0.0387723018004676,0.0385308224114935,0.0382516628040088,0.0380005467711887,0.0377738538895659,0.0375741155939569,0.0374391500184344,0.0374391500184344, +0.151750785904536,0.151750785904536,0.151643308188824,0.150886130917108,0.150019233767899,0.149214218656624,0.148467377742997,0.147793350556218,0.147317813198483,0.147317813198483, +0.456511617682695,0.456511617682695,0.455980084610148,0.454233362397609,0.452284501440348,0.450405224122626,0.448601780150555,0.44691129087473,0.445599409059199,0.445599409059199, + +00:03:19, +3.3081943617157E-06,3.3081943617157E-06,3.32472154499584E-06,3.28367676102095E-06,3.23479881554616E-06,3.19439048244171E-06,3.16071513663382E-06,3.13262067071033E-06,3.1146941085794E-06,3.1146941085794E-06, +3.3081943617157E-06,3.3081943617157E-06,3.32472154499584E-06,3.28367676102095E-06,3.23479881554616E-06,3.19439048244171E-06,3.16071513663382E-06,3.13262067071033E-06,3.1146941085794E-06,3.1146941085794E-06, +2.63877914899407E-05,2.63877914899407E-05,2.64888136514612E-05,2.61958339583382E-05,2.58487236289207E-05,2.55583502388649E-05,2.53134135368643E-05,2.51075777802552E-05,2.49756072970467E-05,2.49756072970467E-05, +0.00020488145354248,0.00020488145354248,0.000205452298231783,0.00020342606866027,0.000201037566568451,0.000199013183079069,0.000197283366081912,0.00019581796617939,0.000194872570310002,0.000194872570310002, +0.00139103898613034,0.00139103898613034,0.00139352997308364,0.00138147871135795,0.00136734472159593,0.00135517189952809,0.00134461188047798,0.00133557829977039,0.00132969825674159,0.00132969825674159, +0.00808348894952827,0.00808348894952827,0.00809039676862271,0.00803037822095688,0.00796036245801011,0.00789884551581316,0.00784450593746103,0.00779744089794683,0.00776638494287802,0.00776638494287802, +0.0391520424470674,0.0391520424470674,0.0391522543243836,0.0389101825776324,0.0386295858662998,0.0383767730228585,0.0381484854848835,0.0379474357761623,0.0378116998109417,0.0378116998109417, +0.152632186375989,0.152632186375989,0.152524817870855,0.151767960933969,0.150899598265601,0.150092181296636,0.149342943350399,0.148667002406307,0.148190460232965,0.148190460232965, +0.457600753205325,0.457600753205325,0.457070463525502,0.455327557320624,0.4533804885425,0.451501456851269,0.449697994627494,0.448007857103207,0.446696859100768,0.446696859100768, + +00:03:20, +3.41715007989752E-06,3.41715007989752E-06,3.43423630812059E-06,3.39224515964213E-06,3.34203866561194E-06,3.30044111183273E-06,3.2657614496561E-06,3.23684804292629E-06,3.21841787938729E-06,3.21841787938729E-06, +3.41715007989752E-06,3.41715007989752E-06,3.43423630812059E-06,3.39224515964213E-06,3.34203866561194E-06,3.30044111183273E-06,3.2657614496561E-06,3.23684804292629E-06,3.21841787938729E-06,3.21841787938729E-06, +2.71204906920257E-05,2.71204906920257E-05,2.72244255036433E-05,2.69261111458594E-05,2.65713206863509E-05,2.62738926956224E-05,2.60229127712727E-05,2.58121316804781E-05,2.56771268117239E-05,2.56771268117239E-05, +0.000209609080344307,0.000209609080344307,0.000210193924433313,0.000208139524619807,0.000205708989886619,0.000203644777189849,0.000201880305213462,0.000200386453035754,0.000199423652845725,0.000199423652845725, +0.00141674527536847,0.00141674527536847,0.00141928793016733,0.00140711876388908,0.00139279803026553,0.00138044049775649,0.00136971666897105,0.00136054820607764,0.00135458608711972,0.00135458608711972, +0.00819672004983253,0.00819672004983253,0.00820375798187994,0.00814338454883942,0.00807273784130388,0.00801055516317545,0.00795561051543199,0.00790804647285178,0.0078766899971555,0.0078766899971555, +0.0395328888373744,0.0395328888373744,0.0395332725253024,0.0392906133185013,0.0390085858459615,0.0387540794663264,0.0385241990589224,0.0383218401614795,0.0381853359920256,0.0381853359920256, +0.153512216491072,0.153512216491072,0.153404956846421,0.152648422796349,0.15177861355753,0.150968814538709,0.150217196469326,0.149539356974484,0.149061820234138,0.149061820234138, +0.458683964558432,0.458683964558432,0.458154913477811,0.456415795752506,0.45447052509083,0.452591758393882,0.450788296635052,0.449098526137555,0.447788419202571,0.447788419202571, + +00:03:21, +3.52903257721521E-06,3.52903257721521E-06,3.546692839179E-06,3.50374020071731E-06,3.4521778977181E-06,3.40936382036798E-06,3.37365617574862E-06,3.34390504848488E-06,3.32496025649501E-06,3.32496025649501E-06, +3.52903257721521E-06,3.52903257721521E-06,3.546692839179E-06,3.50374020071731E-06,3.4521778977181E-06,3.40936382036798E-06,3.37365617574862E-06,3.34390504848488E-06,3.32496025649501E-06,3.32496025649501E-06, +2.78689795481804E-05,2.78689795481804E-05,2.79758891586767E-05,2.76721822509245E-05,2.73095949519239E-05,2.700498822901E-05,2.67478550043802E-05,2.65320415127506E-05,2.63939519249982E-05,2.63939519249982E-05, +0.000214415837860536,0.000214415837860536,0.000215014910572729,0.000212932164169073,0.000210459160045997,0.00020835461043031,0.000206555019693687,0.000205032351163396,0.000204051941411329,0.000204051941411329, +0.00144275986863481,0.00144275986863481,0.0014453547795235,0.00143306750328169,0.00141855897728526,0.0014060152694365,0.00139512622335909,0.00138582179535843,0.0013797770231708,0.0013797770231708, +0.00831078001304374,0.00831078001304374,0.00831794886774323,0.00825722155072944,0.00818594340935741,0.00812309294468069,0.00806754093517855,0.00801947627236677,0.00798781860563895,0.00798781860563895, +0.0399147885354644,0.0399147885354644,0.0399153441125672,0.0396721022991623,0.0393886504126224,0.0391324538291211,0.0389009823983856,0.0386973165760548,0.038560046401604,0.038560046401604, +0.154390866783226,0.154390866783226,0.154283715602165,0.153527506927272,0.152656269877297,0.151844108519444,0.151090127179367,0.150410404265074,0.14993188313051,0.14993188313051, +0.459761299629981,0.459761299629981,0.459233482315239,0.457498125914398,0.455554659100563,0.45367617646917,0.451872733640795,0.450183345210666,0.44887413643871,0.44887413643871, + +00:03:22, +3.64390180950456E-06,3.64390180950456E-06,3.66215138118956E-06,3.61822201500766E-06,3.56527628464842E-06,3.52121794766849E-06,3.48445825767489E-06,3.45385032506511E-06,3.43437970926461E-06,3.43437970926461E-06, +3.64390180950456E-06,3.64390180950456E-06,3.66215138118956E-06,3.61822201500766E-06,3.56527628464842E-06,3.52121794766849E-06,3.48445825767489E-06,3.45385032506511E-06,3.43437970926461E-06,3.43437970926461E-06, +2.86334926503869E-05,2.86334926503869E-05,2.87434400032064E-05,2.84342826025922E-05,2.806378093315E-05,2.77518701203112E-05,2.74884723194708E-05,2.726753845523E-05,2.71263133409229E-05,2.71263133409229E-05, +0.000219302491471223,0.000219302491471223,0.000219916023500561,0.000217804755262756,0.000215288844572733,0.000213143448245739,0.00021130827252279,0.000209756421809597,0.000208758196472982,0.000208758196472982, +0.00146908409453137,0.00146908409453137,0.00147173184881854,0.00145932626264169,0.00144462890322136,0.00143189755918727,0.0014208418898977,0.00141140041564683,0.00140527241459717,0.00140527241459717, +0.00842566743314906,0.00842566743314906,0.00843296800643708,0.00837188781099068,0.0082999777749495,0.00823645750682269,0.00818029587077697,0.00813172899230172,0.0080997694765823,0.0080997694765823, +0.0402977293479529,0.0402977293479529,0.0402984568594746,0.0400546372490461,0.0397697672995337,0.0395118839013316,0.039278823351757,0.0390738529071793,0.0389358189403773,0.0389358189403773, +0.155268128032971,0.155268128032971,0.155161084873173,0.154405203999767,0.153532557710358,0.152718053626864,0.151961725810929,0.151280134533108,0.150800639101681,0.150800639101681, +0.46083280582654,0.46083280582654,0.460306217406776,0.458574595541232,0.456632938105146,0.454754758318129,0.45295135263765,0.451262361084024,0.449954057414511,0.449954057414511, + +00:03:23, +3.76181853989122E-06,3.76181853989122E-06,3.78067298733556E-06,3.73575154443033E-06,3.68139440903352E-06,3.63606364008843E-06,3.59822744150466E-06,3.56674331109676E-06,3.54673550654438E-06,3.54673550654438E-06, +3.76181853989122E-06,3.76181853989122E-06,3.78067298733556E-06,3.73575154443033E-06,3.68139440903352E-06,3.63606364008843E-06,3.59822744150466E-06,3.56674331109676E-06,3.54673550654438E-06,3.54673550654438E-06, +2.9414266223132E-05,2.9414266223132E-05,2.95273150569832E-05,2.92126491685362E-05,2.88341147818937E-05,2.85147732970643E-05,2.82449984453993E-05,2.80188553312404E-05,2.78744434089619E-05,2.78744434089619E-05, +0.000224269806641716,0.000224269806641716,0.000224898030130146,0.00022275806592721,0.000220198811098565,0.000218012056225517,0.000216140826874958,0.000214559426417399,0.000213543178704591,0.000213543178704591, +0.00149571926640943,0.00149571926640943,0.00149842045038388,0.00148589635969315,0.00147100913329161,0.00145808869639131,0.00144686499971811,0.00143728539992686,0.00143107359608216,0.00143107359608216, +0.00854138086754413,0.00854138086754413,0.00854881394154319,0.00848738187716125,0.00841483951373414,0.00835064745888208,0.00829387395910995,0.00824480329124128,0.00821254128095318,0.00821254128095318, +0.0406816991453361,0.0406816991453361,0.040682598603639,0.0404382059623123,0.0401519243039471,0.0398923575359964,0.0396577098296944,0.0394514371036869,0.039312641570232,0.039312641570232, +0.156143991263762,0.156143991263762,0.156037055638814,0.155281504932661,0.154407467789788,0.153590640496229,0.152831982941058,0.15214853828016,0.151668078574189,0.151668078574189, +0.461898530078822,0.461898530078822,0.461373165647708,0.459645251887351,0.457705409161785,0.455827550709523,0.454024200149348,0.4523356200531,0.451028228271876,0.451028228271876, + +00:03:24, +3.88284434252616E-06,3.88284434252616E-06,3.90231952468482E-06,3.8563905457968E-06,3.80059366712419E-06,3.75396185451893E-06,3.71502428043647E-06,3.68264424959526E-06,3.66208772051084E-06,3.66208772051084E-06, +3.88284434252616E-06,3.88284434252616E-06,3.90231952468482E-06,3.8563905457968E-06,3.80059366712419E-06,3.75396185451893E-06,3.71502428043647E-06,3.68264424959526E-06,3.66208772051084E-06,3.66208772051084E-06, +3.02115381122729E-05,3.02115381122729E-05,3.0327752961602E-05,3.00075205437544E-05,2.96208342831607E-05,2.92939343219995E-05,2.90176687456709E-05,2.8786226598446E-05,2.86385761132067E-05,2.86385761132067E-05, +0.000229318548859389,0.000229318548859389,0.000229961697374143,0.000227792864196673,0.000225189827296803,0.00022296120003921,0.000221053446034678,0.000219442126562054,0.000218407648924262,0.000218407648924262, +0.00152266668234427,0.00152266668234427,0.00152542188119168,0.00151277909675379,0.00149770097733924,0.00148458999516682,0.00147319686879851,0.00146347806610303,0.00145718188726012,0.00145718188726012, +0.00865791883759138,0.00865791883759138,0.00866548518056299,0.00860370226051969,0.00853052716480769,0.00846566137348961,0.00840827380042597,0.00835869779110202,0.00832613265298954,0.00832613265298954, +0.0410666858623339,0.0410666858623339,0.0410677572473357,0.0408227962981901,0.0405351092874739,0.040273862649472,0.0400376298054021,0.0398300571763333,0.0396905023146243,0.0396905023146243, +0.157018447737917,0.157018447737917,0.156911619118638,0.156156400886439,0.155280991092134,0.154461860005901,0.153700889389332,0.153015606250249,0.152534192217412,0.152534192217412, +0.46295851884716,0.46295851884716,0.462434373465028,0.460710141732077,0.4587721188569,0.456894599945295,0.45509132223579,0.453403167952677,0.452096694694567,0.452096694694567, + +00:03:25, +4.00704160625234E-06,4.00704160625234E-06,4.0271536778402E-06,3.98020159448149E-06,3.92293627249499E-06,3.8749743621229E-06,3.83491013855184E-06,3.80161419192847E-06,3.78049723044264E-06,3.78049723044264E-06, +4.00704160625234E-06,4.00704160625234E-06,4.0271536778402E-06,3.98020159448149E-06,3.92293627249499E-06,3.8749743621229E-06,3.83491013855184E-06,3.80161419192847E-06,3.78049723044264E-06,3.78049723044264E-06, +3.10255477737339E-05,3.10255477737339E-05,3.11449939690711E-05,3.08191369391088E-05,3.04241788437121E-05,3.00895913818038E-05,2.98067202073481E-05,2.95698883378521E-05,2.94189470614209E-05,2.94189470614209E-05, +0.000234449483570797,0.000234449483570797,0.000235107792081487,0.000232909918049919,0.000230262660818741,0.000227991645373066,0.000226046893333469,0.000224405283887874,0.000223352368031181,0.000223352368031181, +0.00154992762511232,0.00154992762511232,0.00155273742283286,0.00153997576071291,0.0015247057298094,0.00151140275434251,0.00149983879793787,0.00148997971697344,0.0014835985926891,0.0014835985926891, +0.0087752798291746,0.0087752798291746,0.00878298019547645,0.00872084743664706,0.00864703923127219,0.00858149778718564,0.00852349395889489,0.00847341107768597,0.00844054219075277,0.00844054219075277, +0.0414526774982138,0.0414526774982138,0.0414539207578265,0.0412083961813008,0.0409193101764228,0.0406563872217819,0.040418571314984,0.0402097011981546,0.0400693892589447,0.0400693892589447, +0.157891488952609,0.157891488952609,0.157784766768342,0.157029883259164,0.156153118833322,0.155331703273284,0.154568436213818,0.153881329425806,0.153398970939542,0.153398970939542, +0.464012818126907,0.464012818126907,0.463489886822778,0.461769311385187,0.459833113311524,0.457955951865906,0.456152764498358,0.454465050162115,0.453159501913429,0.453159501913429, + +00:03:26, +4.13447353820205E-06,4.13447353820205E-06,4.15523895252001E-06,4.10724808802025E-06,4.04848525967785E-06,3.99916375200016E-06,3.95794719450028E-06,3.92371500151478E-06,3.90202572642601E-06,3.90202572642601E-06, +4.13447353820205E-06,4.13447353820205E-06,4.15523895252001E-06,4.10724808802025E-06,4.04848525967785E-06,3.99916375200016E-06,3.95794719450028E-06,3.92371500151478E-06,3.90202572642601E-06,3.90202572642601E-06, +3.1856536262037E-05,3.1856536262037E-05,3.19792799302169E-05,3.16477401696996E-05,3.12443894805124E-05,3.0901984275717E-05,3.06123914297875E-05,3.03700782426364E-05,3.0215793473913E-05,3.0215793473913E-05, +0.000239663376119261,0.000239663376119261,0.000240337080974768,0.000238109995347345,0.000235418079230507,0.00023310415786695,0.000231121932087036,0.000229449660045512,0.000228378096942904,0.000228378096942904, +0.00157750336217083,0.00157750336217083,0.00158036834149767,0.00156748762301185,0.0015520246697281,0.00153852825743496,0.00152679207273224,0.00151679164020527,0.00151032500182586,0.00151032500182586, +0.0088934622932498,0.0088934622932498,0.00890129742329707,0.0088388158459853,0.00876437418079491,0.008698155200976,0.00863953296315999,0.00858894170123054,0.00855576845667711,0.00855576845667711, +0.0418396621170959,0.0418396621170959,0.0418410771676653,0.0415949936019603,0.0413045149621206,0.0410399192969468,0.0408005224577779,0.0405903573048076,0.0404492905508626,0.0404492905508626, +0.158763106635911,0.158763106635911,0.158656490275798,0.157901943682469,0.157023842464633,0.156200161650825,0.155434614707088,0.154745699023708,0.154262405883614,0.154262405883614, +0.465061473453773,0.465061473453773,0.464539751227316,0.462822806692339,0.460888438186628,0.45901165185561,0.45720857208515,0.455521311610543,0.454216694711539,0.454216694711539, + +00:03:27, +4.26520416732456E-06,4.26520416732456E-06,4.28663967906827E-06,4.23759424963819E-06,4.17730448772505E-06,4.12659343478254E-06,4.08419844511492E-06,4.04900935745216E-06,4.02673571299134E-06,4.02673571299134E-06, +4.26520416732456E-06,4.26520416732456E-06,4.28663967906827E-06,4.23759424963819E-06,4.17730448772505E-06,4.12659343478254E-06,4.08419844511492E-06,4.04900935745216E-06,4.02673571299134E-06,4.02673571299134E-06, +3.27047462186703E-05,3.27047462186703E-05,3.2830854282926E-05,3.24935736430755E-05,3.20817088090106E-05,3.17313544039606E-05,3.14349226132099E-05,3.11870356068126E-05,3.10293541722434E-05,3.10293541722434E-05, +0.000244960991682886,0.000244960991682886,0.000245650330588064,0.00024339386376851,0.00024065684995036,0.000238299503051712,0.000236279325532847,0.00023457601662965,0.000233485596533072,0.000233485596533072, +0.00160539514563991,0.00160539514563991,0.00160831588795868,0.00159531593962683,0.00157965906068365,0.00156596777262834,0.00155405796355352,0.0015439151083128,0.00153736238900345,0.00153736238900345, +0.0090124646463922,0.0090124646463922,0.00902043526662295,0.00895760589439148,0.00888253044616397,0.00881563208088399,0.00875638930688622,0.00870528817695479,0.00867180997811551,0.00867180997811551, +0.0422276278482404,0.0422276278482404,0.0422292145749861,0.0419825766164643,0.0416907117012125,0.0414244469832965,0.0411834713966713,0.0409720136948914,0.0408301944006535,0.0408301944006535, +0.159633292742917,0.159633292742917,0.159526781557141,0.158772574017606,0.157893153668739,0.157067226722072,0.1562994163923,0.155608706491365,0.155124488423599,0.155124488423599, +0.466104529909093,0.466104529909093,0.465584011732535,0.46387067304042,0.461938138688378,0.46006174484766,0.458258789696153,0.456571996781991,0.455268317429299,0.455268317429299, + +00:03:28, +4.39929834784365E-06,4.39929834784365E-06,4.42142101589425E-06,4.37130513170651E-06,4.30945864370134E-06,4.2573276461586E-06,4.21372770895829E-06,4.17756075807765E-06,4.15469051268028E-06,4.15469051268028E-06, +4.39929834784365E-06,4.39929834784365E-06,4.42142101589425E-06,4.37130513170651E-06,4.30945864370134E-06,4.2573276461586E-06,4.21372770895829E-06,4.17756075807765E-06,4.15469051268028E-06,4.15469051268028E-06, +3.35704218602966E-05,3.35704218602966E-05,3.36999620402282E-05,3.33568823472845E-05,3.29363810312617E-05,3.25779447560045E-05,3.22745555471075E-05,3.20210013137309E-05,3.18598695677668E-05,3.18598695677668E-05, +0.000250343095213026,0.000250343095213026,0.000251048307205212,0.000248762290750119,0.000245979740186427,0.000243578446286994,0.000241519836768153,0.000239785115117132,0.000238675627569549,0.000238675627569549, +0.00163360421228692,0.00163360421228692,0.0016365812975561,0.00162346195105424,0.00160761015081049,0.00159372255275668,0.00158163772553062,0.00157135137863778,0.00156471201341118,0.00156471201341118, +0.00913228527133952,0.00913228527133952,0.00914039209418398,0.0090772159536883,0.00900150642584009,0.00893392685849857,0.00887406144930469,0.00882244898560192,0.00878866524788169,0.00878866524788169, +0.0426165628863169,0.0426165628863169,0.0426183211437734,0.0423711333473554,0.042077888515946,0.0418099584537626,0.041567406358399,0.0413546586302505,0.0412120890815067,0.0412120890815067, +0.16050203945191,0.16050203945191,0.160395632752919,0.159641766351557,0.158761044355809,0.157932890297801,0.157162833019336,0.156470343502875,0.15598521016056,0.15598521016056, +0.467142032125029,0.467142032125029,0.466622712944996,0.464912955362821,0.462982259573333,0.461106275329457,0.459303461588352,0.457617149720454,0.456314413969465,0.456314413969465, + +00:03:29, +4.53682176264457E-06,4.53682176264457E-06,4.55964895284088E-06,4.50844661912794E-06,4.4450132461046E-06,4.39143145032733E-06,4.34659962979766E-06,4.30943352445692E-06,4.28595426954319E-06,4.28595426954319E-06, +4.53682176264457E-06,4.53682176264457E-06,4.55964895284088E-06,4.50844661912794E-06,4.4450132461046E-06,4.39143145032733E-06,4.34659962979766E-06,4.30943352445692E-06,4.28595426954319E-06,4.28595426954319E-06, +3.44538089668059E-05,3.44538089668059E-05,3.45868497782242E-05,3.42379128387681E-05,3.38086519238881E-05,3.3441999898674E-05,3.31315335984909E-05,3.2872217824418E-05,3.27075816500142E-05,3.27075816500142E-05, +0.000255810451373188,0.000255810451373188,0.000256531776798549,0.00025421604342447,0.000251387516874906,0.000248941752699482,0.000246844228688437,0.000245077716805521,0.000243948950653001,0.000243948950653001, +0.00166213178351324,0.00166213178351324,0.00166516579018553,0.00165192688229818,0.00163587917277535,0.00162179383528843,0.00160953259853299,0.00159910169333224,0.00159237511907688,0.00159237511907688, +0.00925292251753122,0.00925292251753122,0.0092611662413851,0.00919764436221043,0.00912130048450434,0.00905303793151876,0.00899254781575337,0.00894042257397805,0.00890633272478852,0.00890633272478852, +0.0430064554916575,0.0430064554916575,0.0430083851041144,0.0427606519836722,0.0424660335944353,0.0421964419461547,0.0419523156338232,0.0417382804362611,0.0415949629298164,0.0415949629298164, +0.161369339160598,0.161369339160598,0.161263036224304,0.160509512993211,0.15962750665966,0.158797144412199,0.158024856561008,0.157330601955232,0.156844562918864,0.156844562918864, +0.468174024289707,0.468174024289707,0.467655899029017,0.465949698144657,0.46402084515357,0.462145287347621,0.460342631580771,0.458656814034896,0.457355027802102,0.457355027802102, + +00:03:30, +4.6778409265902E-06,4.6778409265902E-06,4.70139031448171E-06,4.64908543265041E-06,4.58403464821488E-06,4.52897074338071E-06,4.48287968000979E-06,4.44469280380353E-06,4.42059195256625E-06,4.42059195256625E-06, +4.6778409265902E-06,4.6778409265902E-06,4.70139031448171E-06,4.64908543265041E-06,4.58403464821488E-06,4.52897074338071E-06,4.48287968000979E-06,4.44469280380353E-06,4.42059195256625E-06,4.42059195256625E-06, +3.53551548692149E-05,3.53551548692149E-05,3.54917656238603E-05,3.51369132301018E-05,3.46987688258869E-05,3.43237659641001E-05,3.40061016999787E-05,3.37409291657601E-05,3.35727339749175E-05,3.35727339749175E-05, +0.000261363824478398,0.000261363824478398,0.000262101504968099,0.000259755888558368,0.000256880946618725,0.000254390187121623,0.000252253263926318,0.000250454582752105,0.000249306326155909,0.000249306326155909, +0.00169097906534332,0.00169097906534332,0.00169407057028786,0.00168071194286045,0.00166446734376586,0.00165018284231336,0.00163774380715653,0.00162716727934356,0.00162035293485165,0.00162035293485165, +0.00937437470164398,0.00937437470164398,0.0093827560108456,0.00931888942534694,0.00924191095360198,0.00917296366429406,0.00911184679821401,0.00905920735548721,0.00902481083418259,0.00902481083418259, +0.0433972939904915,0.0433972939904915,0.0433993947524351,0.0431511207811825,0.0428551351909098,0.0425838857634184,0.0423381875781958,0.0421228675020984,0.0419788043454547,0.0419788043454547, +0.162235184482404,0.162235184482404,0.162128984549362,0.161375806469594,0.160492532933986,0.159659981319101,0.158885479209311,0.158189473964602,0.157702538742454,0.157702538742454, +0.469200550152289,0.469200550152289,0.468683613711686,0.466980945427914,0.465053939301748,0.463178824513011,0.461376343059458,0.45969103290419,0.458390201969495,0.458390201969495, + +00:03:31, +4.82242318976586E-06,4.82242318976586E-06,4.8467127633461E-06,4.79328913210857E-06,4.72659004137129E-06,4.67001225661457E-06,4.62263416391454E-06,4.58340457282739E-06,4.55866935902808E-06,4.55866935902808E-06, +4.82242318976586E-06,4.82242318976586E-06,4.8467127633461E-06,4.79328913210857E-06,4.72659004137129E-06,4.67001225661457E-06,4.62263416391454E-06,4.58340457282739E-06,4.55866935902808E-06,4.55866935902808E-06, +3.62747084374162E-05,3.62747084374162E-05,3.64149592425543E-05,3.60541331775861E-05,3.56069806262853E-05,3.52234906375168E-05,3.48985063377341E-05,3.46273809185309E-05,3.44555716528792E-05,3.44555716528792E-05, +0.000267003978435019,0.000267003978435019,0.000267758256881238,0.000265382592492498,0.000262460795626664,0.000259924514030784,0.000257747704790903,0.000255916473713351,0.000254748514162035,0.000254748514162035, +0.00172014724841593,0.00172014724841593,0.00172329682684164,0.00170981832673274,0.00169337586548136,0.00167889078053187,0.00166627256071173,0.0016555493484019,0.00164864667439675,0.00164864667439675, +0.00949664010812324,0.00949664010812324,0.0095051596729344,0.00944094941607966,0.0093633361318822,0.00929370238836104,0.00923195675584512,0.00917880171066249,0.00914409796847505,0.00914409796847505, +0.0437890667751656,0.0437890667751656,0.0437913384517192,0.043542528062599,0.0432451816259451,0.0429722782738769,0.0427250106114047,0.0425084082809895,0.0423636017920279,0.0423636017920279, +0.163099568242819,0.163099568242819,0.162993470519377,0.162240639522165,0.161356115748632,0.160521393488301,0.159744693371746,0.159046951862645,0.15855912989118,0.15855912989118, +0.470221653027978,0.470221653027978,0.469705900287817,0.468006740816527,0.466081585456115,0.464206930005677,0.462404638982401,0.460719849081995,0.459419979090986,0.459419979090986, + +00:03:32, +4.97063674065249E-06,4.97063674065249E-06,4.99568480307219E-06,4.94112611959283E-06,4.87274745817642E-06,4.81462355976742E-06,4.76593022103702E-06,4.72563564101221E-06,4.70025311778544E-06,4.70025311778544E-06, +4.97063674065249E-06,4.97063674065249E-06,4.99568480307219E-06,4.94112611959283E-06,4.87274745817642E-06,4.81462355976742E-06,4.76593022103702E-06,4.72563564101221E-06,4.70025311778544E-06,4.70025311778544E-06, +3.72127200677811E-05,3.72127200677811E-05,3.73566818256749E-05,3.69898238686895E-05,3.65335377516468E-05,3.61414231449081E-05,3.58089955392503E-05,3.55318202052696E-05,3.53563413366914E-05,3.53563413366914E-05, +0.000272731676681036,0.000272731676681036,0.000273502797212821,0.000271096921081283,0.000268127829652959,0.000265545497488888,0.000263328313207596,0.000261464150084807,0.000260276274406334,0.000260276274406334, +0.00174963750797771,0.00174963750797771,0.00175284573335749,0.00173924721239106,0.00172260592412601,0.00170791884124639,0.00169512005321414,0.00168424909700986,0.00167725753617291,0.00167725753617291, +0.00961971698971071,0.00961971698971071,0.00962837546630129,0.00956382257551744,0.00948557428593393,0.00941525240297592,0.0093528760155111,0.00929920398769335,0.00926419248766854,0.00926419248766854, +0.0441817623043464,0.0441817623043464,0.0441842046317112,0.0439348622177792,0.0436361612866777,0.0433616079114558,0.043112773218203,0.0428948912904474,0.0427493437971164,0.0427493437971164, +0.163962483475804,0.163962483475804,0.163856487135235,0.163104005103164,0.162218247885933,0.161381373601903,0.160602491667695,0.159903028192906,0.159414328837183,0.159414328837183, +0.471237375802971,0.471237375802971,0.470722801624842,0.469027127481405,0.467103826625441,0.465229646579749,0.463427561884387,0.461743304901579,0.460444401367755,0.460444401367755, + +00:03:33, +5.12255060922799E-06,5.12255060922799E-06,5.14837578148741E-06,5.09266564254559E-06,5.02257577562803E-06,4.96287306418701E-06,4.91283582929792E-06,4.87145365382139E-06,4.84541069248752E-06,4.84541069248752E-06, +5.12255060922799E-06,5.12255060922799E-06,5.14837578148741E-06,5.09266564254559E-06,5.02257577562803E-06,4.96287306418701E-06,4.91283582929792E-06,4.87145365382139E-06,4.84541069248752E-06,4.84541069248752E-06, +3.81694416706188E-05,3.81694416706188E-05,3.83171860778785E-05,3.79442380093493E-05,3.74786921534327E-05,3.70778142405089E-05,3.67378188609888E-05,3.64544956780111E-05,3.6275291209307E-05,3.6275291209307E-05, +0.000278547682126807,0.000278547682126807,0.000279335890085793,0.000276899639633214,0.000273882813937375,0.000271253901082517,0.000268995850658376,0.000267098371841469,0.000265890366215326,0.000265890366215326, +0.00177945100387887,0.00177945100387887,0.00178271844787484,0.00176899976279239,0.00175215869040416,0.00173726820035522,0.001724287463377,0.00171326770643433,0.00170618670343169,0.00170618670343169, +0.00974360356796797,0.00974360356796797,0.00975240159840418,0.00968750711342635,0.00960862365071749,0.0095376119756432,0.00947460287230748,0.00942041250294905,0.00938509271988028,0.00938509271988028, +0.0445753691032085,0.0445753691032085,0.0445779817891034,0.0443281117039093,0.044028062627003,0.0437518631758918,0.0435014639484222,0.0432823051124903,0.0431360189524983,0.0431360189524983, +0.164823923420257,0.164823923420257,0.16471802760387,0.163965896372023,0.163078922337109,0.162239914550738,0.161458866924849,0.160757695707252,0.16026812826134,0.16026812826134, +0.472247760939336,0.472247760939336,0.47173436016765,0.470042148165381,0.468120705393899,0.46624701656827,0.464445153881797,0.462761442280568,0.461463510587542,0.461463510587542, + +00:03:34, +5.27823466999621E-06,5.27823466999621E-06,5.3048558936162E-06,5.24797779678437E-06,5.17614471817762E-06,5.11483002592412E-06,5.06341980813175E-06,5.02092709583224E-06,4.99421038471868E-06,4.99421038471868E-06, +5.27823466999621E-06,5.27823466999621E-06,5.3048558936162E-06,5.24797779678437E-06,5.17614471817762E-06,5.11483002592412E-06,5.06341980813175E-06,5.02092709583224E-06,4.99421038471868E-06,4.99421038471868E-06, +3.9145126657495E-05,3.9145126657495E-05,3.92967262043058E-05,3.89176298111302E-05,3.84426972952212E-05,3.80329161941616E-05,3.76852273758737E-05,3.7395657505871E-05,3.72126709714652E-05,3.72126709714652E-05, +0.000284452757096297,0.000284452757096297,0.00028525829901228,0.00028279151285167,0.000279726513145766,0.000277050487863488,0.000274751078122528,0.000272819898478606,0.000271591548447931,0.000271591548447931, +0.00180958888057102,0.00180958888057102,0.00181291611296074,0.00179907712537351,0.00178203531951782,0.00176694001834839,0.00175377595460614,0.00174260634270064,0.00173543534420921,0.00173543534420921, +0.00986829803379605,0.00986829803379605,0.00987723624603226,0.00981200120875576,0.00973248243009222,0.0096607793426403,0.00959713559008215,0.00954242554149818,0.00950679696186129,0.00950679696186129, +0.0449698757636065,0.0449698757636065,0.0449726584877078,0.044722265045673,0.0444208741677587,0.044143032632926,0.0438910714171699,0.043670638393845,0.0435236159143572,0.0435236159143572, +0.165683881516529,0.165683881516529,0.165578085334753,0.164826306691828,0.163938132298716,0.163097009430837,0.162313812175696,0.16161094736237,0.16112052104976,0.16112052104976, +0.47325285047984,0.47325285047984,0.472740617943355,0.471051845188107,0.469132263925883,0.467259081887962,0.465457456677344,0.463774302725654,0.462477348129308,0.462477348129308, + +00:03:35, +5.4377596449434E-06,5.4377596449434E-06,5.46519618461467E-06,5.40713352945157E-06,5.33352486071561E-06,5.27056454875348E-06,5.2177518215326E-06,5.17412529379802E-06,5.14672133706916E-06,5.14672133706916E-06, +5.4377596449434E-06,5.4377596449434E-06,5.46519618461467E-06,5.40713352945157E-06,5.33352486071561E-06,5.27056454875348E-06,5.2177518215326E-06,5.17412529379802E-06,5.14672133706916E-06,5.14672133706916E-06, +4.01400299284134E-05,4.01400299284134E-05,4.02955578976427E-05,3.99102549782472E-05,3.94258081397867E-05,3.90069827785325E-05,3.86514736606447E-05,3.83555573624896E-05,3.81687318291765E-05,3.81687318291765E-05, +0.000290447663268777,0.000290447663268777,0.000291270786835162,0.000288773304776223,0.000285659691311117,0.000282936020289908,0.000280594756017868,0.00027862948895306,0.000277380579436768,0.000277380579436768, +0.00184005226710717,0.00184005226710717,0.00184343985571083,0.00182948043205195,0.00181223695116642,0.00179693544030575,0.00178358667499692,0.00177226615658873,0.00176500461132194,0.00176500461132194, +0.00999379854795097,0.00999379854795097,0.010002877555825,0.00993730301016024,0.00985714879733998,0.00978475270953814,0.0097204724019527,0.00966524135762422,0.0096293034795117,0.0096293034795117, +0.0453652709442327,0.0453652709442327,0.0453682233586131,0.045117310835405,0.0448145844968919,0.0445351049144813,0.0442815843050125,0.0440598798461348,0.0439121234034749,0.0439121234034749, +0.166542351402997,0.166542351402997,0.166436653936445,0.165685229625841,0.164795871169152,0.163952651539956,0.163167320654066,0.16246277631632,0.161971500290338,0.161971500290338, +0.474252686052707,0.474252686052707,0.473741616566013,0.472056260450886,0.47013854397076,0.46826588404394,0.466464511564754,0.46478192733723,0.463485954967845,0.463485954967845, + +00:03:36, +5.60119710642184E-06,5.60119710642184E-06,5.62946855263187E-06,5.57020464189046E-06,5.49478763148282E-06,5.43014758712131E-06,5.37590238102709E-06,5.33111841963757E-06,5.30301353613358E-06,5.30301353613358E-06, +5.60119710642184E-06,5.60119710642184E-06,5.62946855263187E-06,5.57020464189046E-06,5.49478763148282E-06,5.43014758712131E-06,5.37590238102709E-06,5.33111841963757E-06,5.30301353613358E-06,5.30301353613358E-06, +4.11544078588629E-05,4.11544078588629E-05,4.13139383250468E-05,4.0922370694453E-05,4.04282811360452E-05,4.00002692561915E-05,3.9636811783072E-05,3.93344484133376E-05,3.91437264810678E-05,3.91437264810678E-05, +0.000296533161621016,0.000296533161621016,0.000297374115670142,0.00029484577872444,0.000291683111775089,0.000288911260167715,0.000286527644142427,0.000284527901625016,0.00028325821692993,0.00028325821692993, +0.00187084227714375,0.00187084227714375,0.00187429078775238,0.001860210799229,0.00184276470954854,0.00182725559589722,0.00181372075733341,0.00180224828363153,0.00179489564236457,0.00179489564236457, +0.0101201032415553,0.0101201032415553,0.0101293236447871,0.0100634106365173,0.00998262089568447,0.00990953025171773,0.0098446115108197,0.00978885817533722,0.00975261050839207,0.00975261050839207, +0.0457615433707603,0.0457615433707603,0.045764665100326,0.0455132377332299,0.045209182269612,0.0449280687188255,0.0446729913581419,0.0444500182460522,0.0443015302054085,0.0443015302054085, +0.167399326912686,0.167399326912686,0.167293727213203,0.166542658934075,0.16565213254522,0.164806834374155,0.164019385791722,0.163313175925137,0.162821059269358,0.162821059269358, +0.475247308876326,0.475247308876326,0.474737397241279,0.473055435441438,0.471139586867573,0.46926746413436,0.467466359433382,0.465784356813973,0.464489371678318,0.464489371678318, + +00:03:37, +5.76861947996034E-06,5.76861947996034E-06,5.79774575159745E-06,5.7372637924473E-06,5.66000531490802E-06,5.59365094901933E-06,5.53794284857436E-06,5.49197749335226E-06,5.46315781543683E-06,5.46315781543683E-06, +5.76861947996034E-06,5.76861947996034E-06,5.79774575159745E-06,5.7372637924473E-06,5.66000531490802E-06,5.59365094901933E-06,5.53794284857436E-06,5.49197749335226E-06,5.46315781543683E-06,5.46315781543683E-06, +4.21885182867337E-05,4.21885182867337E-05,4.23521261149444E-05,4.19542356097956E-05,4.14503742058648E-05,4.10130323665568E-05,4.06414972890376E-05,4.03325853028866E-05,4.01379091055932E-05,4.01379091055932E-05, +0.00030271001236996,0.00030271001236996,0.000303569046848304,0.000301009697234179,0.000297797537130043,0.000294976968592711,0.000292550501616627,0.000290515894200248,0.000289225218033237,0.000289225218033237, +0.00190196000894466,0.00190196000894466,0.0019054700052494,0.00189126932779485,0.00187361970336582,0.00185790159938506,0.00184417931908956,0.00183255384411536,0.0018251095597101,0.0018251095597101, +0.0102472102166054,0.0102472102166054,0.0102565726007993,0.0101903221774412,0.0101088968388065,0.0100351101148826,0.00996955108987597,0.00991327418888145,0.00987671625423084,0.00987671625423084, +0.0461586818359715,0.0461586818359715,0.0461619724788997,0.0459100344671868,0.0456046562085281,0.0453219128107191,0.0450652813885289,0.0448410424355176,0.0446918251706537,0.0446918251706537, +0.168254802069953,0.168254802069953,0.168149299161636,0.167398588569921,0.166506910218737,0.165659551624433,0.16487000121501,0.16416213973949,0.163669191468154,0.163669191468154, +0.476236759763891,0.476236759763891,0.475728000771006,0.474049411238614,0.472135433549679,0.470263862855019,0.468463040772775,0.466781631457371,0.465487638440762,0.465487638440762, + +00:03:38, +5.94010004700138E-06,5.94010004700138E-06,5.97010139393547E-06,5.90838449919925E-06,5.82925105437126E-06,5.76114729878503E-06,5.7039454393927E-06,5.65677438586998E-06,5.62722585828712E-06,5.62722585828712E-06, +5.94010004700138E-06,5.94010004700138E-06,5.97010139393547E-06,5.90838449919925E-06,5.82925105437126E-06,5.76114729878503E-06,5.7039454393927E-06,5.65677438586998E-06,5.62722585828712E-06,5.62722585828712E-06, +4.32426204991061E-05,4.32426204991061E-05,4.34103813437002E-05,4.30061098272474E-05,4.2492346730749E-05,4.20455303127099E-05,4.1665787189483E-05,4.13502241416478E-05,4.11515353481119E-05,4.11515353481119E-05, +0.000308978974915895,0.000308978974915895,0.00030985634085918,0.000307265822006393,0.000304003729161583,0.000301133905893082,0.000298664086825941,0.000296594223672857,0.000295282339152961,0.000295282339152961, +0.00193340654538743,0.00193340654538743,0.00193697858890971,0.0019226571031357,0.00190480302582888,0.00188887454962819,0.00187496346243248,0.00186318394308246,0.00185564747051185,0.00185564747051185, +0.0103751175464751,0.0103751175464751,0.0103846224831251,0.010318035693792,0.010235974711355,0.0101614904155674,0.0100952892831119,0.0100384875632391,0.0100016188934277,0.0100016188934277, +0.0465566751998733,0.0465566751998733,0.0465601343280476,0.04630768983334,0.0460009951037733,0.0457166260215493,0.0454584432740617,0.0452329413218233,0.045082997214793,0.045082997214793, +0.169108771087213,0.169108771087213,0.169003363967414,0.168253012676831,0.167360198173209,0.166510797173413,0.165719160741562,0.16500966150139,0.164515890559814,0.164515890559814, +0.47722107912799,0.47722107912799,0.476713467557789,0.475038228517044,0.473126124549331,0.471255120503885,0.469454595677182,0.467773791176195,0.466480795044516,0.466480795044516, + +00:03:39, +6.11571294756461E-06,6.11571294756461E-06,6.14660995320408E-06,6.08364114260782E-06,6.00259885489278E-06,5.93271015982775E-06,5.87398322471259E-06,5.82558182181585E-06,5.79529020055597E-06,5.79529020055597E-06, +6.11571294756461E-06,6.11571294756461E-06,6.14660995320408E-06,6.08364114260782E-06,6.00259885489278E-06,5.93271015982775E-06,5.87398322471259E-06,5.82558182181585E-06,5.79529020055597E-06,5.79529020055597E-06, +4.43169752189133E-05,4.43169752189133E-05,4.44889655221631E-05,4.40782548892096E-05,4.35544595383919E-05,4.30980227480817E-05,4.2709939947231E-05,4.23876224930811E-05,4.2184862307837E-05,4.2184862307837E-05, +0.000315340807786118,0.000315340807786118,0.000316236757294306,0.000313614913848429,0.000310302448791587,0.00030738283157242,0.000304869157364044,0.00030276364626848,0.00030143033593905,0.00030143033593905, +0.00196518295397121,0.00196518295397121,0.00196881760399407,0.00195437519514285,0.00193631575466525,0.00192017553008861,0.00190607427422765,0.0018941396703354,0.00188651046670752,0.00188651046670752, +0.0105038232764148,0.0105038232764148,0.0105134713229132,0.010446549218181,0.0103638525694539,0.0102886692416418,0.0102218242058168,0.0101644964346297,0.0101273165735531,0.0101273165735531, +0.0469555123897986,0.0469555123897986,0.0469591395492431,0.046706192695876,0.0463981878131141,0.0461121972494502,0.0458524659586705,0.0456257038777635,0.0454750353186301,0.0454750353186301, +0.169961228361722,0.169961228361722,0.169855916002027,0.16910592558505,0.168211990580547,0.167360565092081,0.166566858377042,0.16585573514095,0.16536115040595,0.16536115040595, +0.478200306985134,0.478200306985134,0.477693837609448,0.476021927551731,0.474111700002201,0.472241276985585,0.47044106385,0.468760875490907,0.467468880892604,0.467468880892604, + +00:03:40, +6.29553318283664E-06,6.29553318283664E-06,6.32734676666098E-06,6.26310896809777E-06,6.18012358574726E-06,6.10841391728052E-06,6.04813013445601E-06,5.99847338220948E-06,5.96742423338485E-06,5.96742423338485E-06, +6.29553318283664E-06,6.29553318283664E-06,6.32734676666098E-06,6.26310896809777E-06,6.18012358574726E-06,6.10841391728052E-06,6.04813013445601E-06,5.99847338220948E-06,5.96742423338485E-06,5.96742423338485E-06, +4.54118445914841E-05,4.54118445914841E-05,4.55881415820907E-05,4.5170933763896E-05,4.46369748891119E-05,4.4170770763015E-05,4.37742154636797E-05,4.34450393603791E-05,4.32381485246585E-05,4.32381485246585E-05, +0.000321796268579096,0.000321796268579096,0.000322711054791295,0.000320057732617851,0.000316694456021758,0.000313724504253246,0.000311166469976459,0.00030902491738801,0.000307669963228831,0.000307669963228831, +0.00199729028682684,0.00199729028682684,0.00200098810032715,0.00198642465822378,0.00196815895212923,0.00195180560883968,0.0019375128260462,0.0019254221004436,0.00191769962502528,0.00191769962502528, +0.0106333254240465,0.0106333254240465,0.0106431171236957,0.0105758607554716,0.0104925284412048,0.0104166446528111,0.0103491539450756,0.0102912989110064,0.0102538074138435,0.0102538074138435, +0.0473551824004947,0.0473551824004947,0.0473589771118068,0.0471055319871872,0.0467962232620473,0.0465086154594086,0.0462473384524388,0.0460193191417516,0.0458679285283115,0.0458679285283115, +0.170812168472407,0.170812168472407,0.170706949819599,0.169957321808406,0.169062281797838,0.168208849636571,0.167413088311956,0.166700354773198,0.1662049650535,0.1662049650535, +0.479174482960233,0.479174482960233,0.478669150543465,0.477000548222587,0.475092199651853,0.473222371815824,0.471422484608173,0.469742923538027,0.468451935006064,0.468451935006064, + +00:03:41, +6.47963661768663E-06,6.47963661768663E-06,6.51238803775423E-06,6.44686408856105E-06,6.36190098300313E-06,6.28833382057743E-06,6.22646095984164E-06,6.17552350708853E-06,6.1437022058182E-06,6.1437022058182E-06, +6.47963661768663E-06,6.47963661768663E-06,6.51238803775423E-06,6.44686408856105E-06,6.36190098300313E-06,6.28833382057743E-06,6.22646095984164E-06,6.17552350708853E-06,6.1437022058182E-06,6.1437022058182E-06, +4.65274921709654E-05,4.65274921709654E-05,4.6708173862457E-05,4.62844108315975E-05,4.5740156462164E-05,4.5264036871205E-05,4.48588750653762E-05,4.45227351731283E-05,4.43116539658427E-05,4.43116539658427E-05, +0.000328346113909135,0.000328346113909135,0.000329279990978417,0.000326595037166766,0.00032318050987768,0.000320159681621034,0.000317556780504698,0.000315378791551793,0.000314001974991212,0.000314001974991212, +0.00202972958072866,0.00202972958072866,0.00203349111231048,0.00201880653131512,0.00200033366501382,0.00198376583857645,0.00196928017417405,0.00195703229275173,0.00194921600699176,0.00194921600699176, +0.0107636219798551,0.0107636219798551,0.0107735578618824,0.0107059682832764,0.0106220003271854,0.010545414681112,0.0104772765602626,0.0104188930725466,0.010381089505693,0.010381089505693, +0.0477556742941988,0.0477556742941988,0.0477596360529808,0.0475056967079429,0.0471950904438824,0.0469058696833579,0.0466430498317014,0.0464137762179228,0.0462616659554337,0.0462616659554337, +0.171661586176748,0.171661586176748,0.171556460153749,0.170807196041136,0.169911066364168,0.169055645245007,0.168257844918498,0.167543514694936,0.167047328731595,0.167047328731595, +0.480143646291007,0.480143646291007,0.479639445591356,0.477974130018907,0.476067662854155,0.47419844412576,0.472398896886527,0.470719974074436,0.469429996028221,0.469429996028221, + +00:03:42, +6.66809998310783E-06,6.66809998310783E-06,6.70181083853852E-06,6.63498348678589E-06,6.54800765198695E-06,6.47254598595622E-06,6.40905135591589E-06,6.35680749805837E-06,6.32419922736273E-06,6.32419922736273E-06, +6.66809998310783E-06,6.66809998310783E-06,6.70181083853852E-06,6.63498348678589E-06,6.54800765198695E-06,6.47254598595622E-06,6.40905135591589E-06,6.35680749805837E-06,6.32419922736273E-06,6.32419922736273E-06, +4.76641829066301E-05,4.76641829066301E-05,4.78493280956445E-05,4.74189518708317E-05,4.68642693419367E-05,4.63780849960216E-05,4.59641814904696E-05,4.562097177385E-05,4.54056400126124E-05,4.54056400126124E-05, +0.000334991099351549,0.000334991099351549,0.000335944322419695,0.000333227585286667,0.000329761368353394,0.000326689120368748,0.000324040843830914,0.000321826022344331,0.000320427124271377,0.000320427124271377, +0.00206250185710837,0.00206250185710837,0.00206632765893729,0.00205152183789752,0.00203284092466435,0.00201605725662782,0.00200137735962305,0.00198897129138998,0.0019810606589419,0.0019810606589419, +0.0108947109076751,0.0108947109076751,0.0109047914872506,0.0108368697524489,0.0107522662009438,0.0106749773314049,0.0106061900835299,0.0105472769721405,0.0105091609131404,0.0105091609131404, +0.0481569772007011,0.0481569772007011,0.0481611054779895,0.0479066759271475,0.0475947784198125,0.0473039490202579,0.0470395892391296,0.0468090642762255,0.0466562367771378,0.0466562367771378, +0.172509476407707,0.172509476407707,0.172404441914498,0.171655543154783,0.170758338997493,0.169900946534387,0.169101122747455,0.168385209381649,0.167888235848465,0.167888235848465, +0.481107835832356,0.481107835832356,0.480604761602999,0.478942712043796,0.477038128581638,0.475169532666319,0.473370339242064,0.471692065481625,0.47040310222891,0.47040310222891, + +00:03:43, +6.86100087858455E-06,6.86100087858455E-06,6.89569311201652E-06,6.82754501781051E-06,6.73852106967246E-06,6.66112739888599E-06,6.59597784400942E-06,6.54240152076758E-06,6.5089912704727E-06,6.5089912704727E-06, +6.86100087858455E-06,6.86100087858455E-06,6.89569311201652E-06,6.82754501781051E-06,6.73852106967246E-06,6.66112739888599E-06,6.59597784400942E-06,6.54240152076758E-06,6.5089912704727E-06,6.5089912704727E-06, +4.88221831290722E-05,4.88221831290722E-05,4.90118713935256E-05,4.85748240443803E-05,4.80095800040339E-05,4.75131804567166E-05,4.70903988750494E-05,4.67400124044259E-05,4.65203694466097E-05,4.65203694466097E-05, +0.000341731979388351,0.000341731979388351,0.000342704804560507,0.000339956133653801,0.000336437788356487,0.000333313576141892,0.000330619413823048,0.00032836736235949,0.000326946163135985,0.000326946163135985, +0.00209560812207059,0.00209560812207059,0.00209949874380907,0.00208457158601233,0.00206568174699419,0.00204868088497062,0.00203380540814386,0.00202124012528629,0.00201323461203083,0.00201323461203083, +0.0110265901451733,0.0110265901451733,0.0110368159234311,0.0109685630875729,0.0108833240094884,0.0108053305818609,0.0107358925202924,0.0106764486358736,0.0106380196733528,0.0106380196733528, +0.0485590803173958,0.0485590803173958,0.048563374560089,0.0483084587821863,0.0479952763189721,0.0477028426361626,0.047436945883804,0.0472051725524987,0.0470516302361922,0.0470516302361922, +0.173355834270707,0.173355834270707,0.173250890185231,0.172502358195122,0.171604094591557,0.170744748297524,0.169942916525154,0.169225433484461,0.168727680988398,0.168727680988398, +0.482067090060664,0.482067090060664,0.4815651370509,0.479906333018531,0.478003635427801,0.47613567581246,0.474336849858191,0.472659235769902,0.471371291508643,0.471371291508643, + +00:03:44, +7.05841777438473E-06,7.05841777438473E-06,7.09411367440515E-06,7.02462741120163E-06,6.93351958699422E-06,6.85415591641985E-06,6.78731781411913E-06,6.73238260730923E-06,6.69815517296106E-06,6.69815517296106E-06, +7.05841777438473E-06,7.05841777438473E-06,7.09411367440515E-06,7.02462741120163E-06,6.93351958699422E-06,6.85415591641985E-06,6.78731781411913E-06,6.73238260730923E-06,6.69815517296106E-06,6.69815517296106E-06, +5.00017605362927E-05,5.00017605362927E-05,5.01960722334344E-05,4.97522958852179E-05,4.9176356301247E-05,4.86695899545184E-05,4.82377927393699E-05,4.78801216924088E-05,4.76561064362451E-05,4.76561064362451E-05, +0.000348569507354441,0.000348569507354441,0.000349562191673725,0.000346781437775056,0.000343210525653708,0.000340033803484071,0.000337293243280491,0.000335003563146206,0.000333559842618869,0.000333559842618869, +0.00212904936641028,0.00212904936641028,0.0021330053551541,0.00211795676828015,0.00209885713250213,0.00208163773024556,0.00206656533024081,0.00205383980818035,0.0020457388822474,0.0020457388822474, +0.0111592576043277,0.0111592576043277,0.0111696290683891,0.0111010461874452,0.0110151716737738,0.0109364723844464,0.010866381849709,0.0108064060635068,0.0107676637971045,0.0107676637971045, +0.04896197290932,0.04896197290932,0.0489664325406045,0.0487110344788597,0.0483965733384821,0.0481025397642756,0.0478351090412744,0.0476020903485379,0.0474478356410618,0.0474478356410618, +0.174200655040654,0.174200655040654,0.174095800219698,0.173347636379145,0.172448328212866,0.171587045500024,0.170783221150461,0.170064181827143,0.169565658908745,0.169565658908745, +0.483021447078054,0.483021447078054,0.482520610034414,0.480865031286876,0.478964221611364,0.477096911567383,0.475298466548903,0.473621522582538,0.472334601402731,0.472334601402731, + +00:03:45, +7.26043001377769E-06,7.26043001377769E-06,7.29715221732685E-06,7.22631027325745E-06,7.1330824310858E-06,7.05171026947234E-06,6.98314952721536E-06,6.9268286585476E-06,6.89176864033622E-06,6.89176864033622E-06, +7.26043001377769E-06,7.26043001377769E-06,7.29715221732685E-06,7.22631027325745E-06,7.1330824310858E-06,7.05171026947234E-06,6.98314952721536E-06,6.9268286585476E-06,6.89176864033622E-06,6.89176864033622E-06, +5.12031841796785E-05,5.12031841796785E-05,5.14022004440344E-05,5.09516372823338E-05,5.03648674494193E-05,4.98475815586179E-05,4.94066299739645E-05,4.90415656372234E-05,4.8813116522936E-05,4.8813116522936E-05, +0.000355504435384322,0.000355504435384322,0.00035651723680636,0.000353704251934372,0.000350080334817107,0.00034685055578307,0.000344063083880257,0.000341735375154707,0.000340268912667252,0.000340268912667252, +0.00216282656563191,0.00216282656563191,0.00216684846584759,0.00215167836192111,0.00213236806629163,0.00211492878377486,0.00209965812118845,0.00208677133863943,0.0020785744704297,0.0020785744704297, +0.0112927111719018,0.0112927111719018,0.0113032287949021,0.0112343169255567,0.0111478070891823,0.0110684006654014,0.0109976560251587,0.0109371472289515,0.0108980912692524,0.0108980912692524, +0.0493656443091815,0.0493656443091815,0.0493702687289552,0.0491143922914054,0.0487986587434839,0.048503029704994,0.0482340680536087,0.0479998070321491,0.0478448423659663,0.0478448423659663, +0.175043934159012,0.175043934159012,0.174939167439071,0.174191373092091,0.1732910350977,0.172427833277322,0.171622031691826,0.17090144940316,0.170402164536966,0.170402164536966, +0.483970944616597,0.483970944616597,0.483471218283913,0.481818844819339,0.479919924980471,0.478053277566688,0.476255226762916,0.474578963199861,0.473293069085348,0.473293069085348, + +00:03:46, +7.46711781517706E-06,7.46711781517706E-06,7.50488930992541E-06,7.43267408913502E-06,7.33728970744222E-06,7.25387006502148E-06,7.18355211747415E-06,7.12581844637041E-06,7.08991024806438E-06,7.08991024806438E-06, +7.46711781517706E-06,7.46711781517706E-06,7.50488930992541E-06,7.43267408913502E-06,7.33728970744222E-06,7.25387006502148E-06,7.18355211747415E-06,7.12581844637041E-06,7.08991024806438E-06,7.08991024806438E-06, +5.24267244498781E-05,5.24267244498781E-05,5.26305271910828E-05,5.21731194664519E-05,5.15753840132057E-05,5.10474246920487E-05,5.05971788256543E-05,5.02246115962603E-05,4.99916666072375E-05,4.99916666072375E-05, +0.000362537514359329,0.000362537514359329,0.000363570691726745,0.000360725329139686,0.000357047969170698,0.000353764585217461,0.00035092968612367,0.000348563547683238,0.000347074122088455,0.000347074122088455, +0.00219694067997038,0.00219694067997038,0.0022010290334337,0.00218573732877692,0.00216621551809188,0.00214855502158185,0.00213308476104995,0.00212003570007603,0.00211174236228222,0.00211174236228222, +0.0114269487099146,0.0114269487099146,0.0114376129510327,0.0113683731505666,0.0112812281260009,0.0112011133257159,0.0111297129747134,0.0110686700807408,0.011029300049207,0.011029300049207, +0.0497700839173744,0.0497700839173744,0.0497748725026687,0.0495185215625095,0.0492015218671614,0.0489043018259397,0.0486338123294295,0.0483983120371905,0.0482426398509258,0.0482426398509258, +0.175885667230917,0.175885667230917,0.175780987429042,0.175033563884526,0.174132210649174,0.173267106931757,0.17245934338437,0.171737231372772,0.171237192967737,0.171237192967737, +0.484915620042452,0.484915620042452,0.484416999164897,0.482767811217378,0.48087078301683,0.479004811082486,0.477207167587741,0.475531594543308,0.47424673137355,0.47424673137355, + +00:03:47, +7.67856227420874E-06,7.67856227420874E-06,7.71740640090655E-06,7.64380022490187E-06,7.54622240200661E-06,7.46071578823533E-06,7.38860559443443E-06,7.32943161586618E-06,7.29265944375718E-06,7.29265944375718E-06, +7.67856227420874E-06,7.67856227420874E-06,7.71740640090655E-06,7.64380022490187E-06,7.54622240200661E-06,7.46071578823533E-06,7.38860559443443E-06,7.32943161586618E-06,7.29265944375718E-06,7.29265944375718E-06, +5.36726530625774E-05,5.36726530625774E-05,5.38813249630954E-05,5.34170149956498E-05,5.28081778917314E-05,5.22693901174633E-05,5.18097088834514E-05,5.14295282708644E-05,5.11920249348678E-05,5.11920249348678E-05, +0.00036966949385538,0.00036966949385538,0.000370723306872233,0.000367845421070401,0.000364114180737658,0.000360776642703729,0.000357893799283571,0.000355488828825307,0.000353976218497138,0.000353976218497138, +0.00223139265441363,0.00223139265441363,0.00223554800014917,0.00222013461533463,0.00220040044228046,0.00218251740441211,0.00216684621469723,0.00215363386076716,0.0021452435283948,0.0021452435283948, +0.0115619680561073,0.0115619680561073,0.0115727793605972,0.0115032126867745,0.0114154326298947,0.0113346082415999,0.0112625506016063,0.0112009725424962,0.0111612880713993,0.0111612880713993, +0.0501752812019848,0.0501752812019848,0.050180233307384,0.0499234117033061,0.0496051521107518,0.0493063455619801,0.0490343313439397,0.0487975948636036,0.048641217601796,0.048641217601796, +0.176725850022341,0.176725850022341,0.176621255936964,0.175874204469461,0.174971850434352,0.174104861929697,0.173295151627022,0.172571523060172,0.17207073946008,0.17207073946008, +0.485855510359977,0.485855510359977,0.48535798968206,0.483711967717552,0.48181683283982,0.479951549027452,0.478154325753719,0.47647945317942,0.475195624731245,0.475195624731245, + +00:03:48, +7.89484536570387E-06,7.89484536570387E-06,7.93478582050291E-06,7.85977092951188E-06,7.75996238318103E-06,7.67232880452295E-06,7.5983908450801E-06,7.53774868742682E-06,7.50009654928463E-06,7.50009654928463E-06, +7.89484536570387E-06,7.89484536570387E-06,7.93478582050291E-06,7.85977092951188E-06,7.75996238318103E-06,7.67232880452295E-06,7.5983908450801E-06,7.53774868742682E-06,7.50009654928463E-06,7.50009654928463E-06, +5.4941243044177E-05,5.4941243044177E-05,5.51548675569157E-05,5.46835977408819E-05,5.40635223041516E-05,5.35137499228102E-05,5.30444910643621E-05,5.26565856922223E-05,5.2414461082633E-05,5.2414461082633E-05, +0.000376901122091252,0.000376901122091252,0.000377975831297441,0.000375065278025394,0.000371279720188053,0.00036788747784392,0.000364956171352041,0.000362511965417443,0.000360975948263043,0.000360975948263043, +0.00226618341872695,0.00226618341872695,0.00227040629294862,0.00225487115275208,0.00223492377790785,0.0022168168777565,0.00220094343183274,0.00218756677387543,0.00217907892426335,0.00217907892426335, +0.0116977670244045,0.0116977670244045,0.0117087258236307,0.011638833334587,0.0115504184223755,0.0114688832649511,0.0113961667846961,0.0113340525133914,0.0112940532457439,0.0112940532457439, +0.0505812256987852,0.0505812256987852,0.0505863406568435,0.0503290521933669,0.0500095389435452,0.0497091504152376,0.0494356146389371,0.0491976450774327,0.0490405651902913,0.0490405651902913, +0.177564478457297,0.177564478457297,0.177459968869043,0.17671329071952,0.1758099501814,0.174941093898703,0.174129451979698,0.173404319950678,0.172902799434561,0.172902799434561, +0.486790652215767,0.486790652215767,0.48629422648331,0.484651351195626,0.482758111210527,0.480893527958835,0.479096737637995,0.477422575323788,0.476139785273112,0.476139785273112, + +00:03:49, +8.1160499456165E-06,8.1160499456165E-06,8.15711078236358E-06,8.08066933670522E-06,7.97859240376124E-06,7.88879136150963E-06,7.81298963584679E-06,7.75085105877515E-06,7.71230276281318E-06,7.71230276281318E-06, +8.1160499456165E-06,8.1160499456165E-06,8.15711078236358E-06,8.08066933670522E-06,7.97859240376124E-06,7.88879136150963E-06,7.81298963584679E-06,7.75085105877515E-06,7.71230276281318E-06,7.71230276281318E-06, +5.62327687173759E-05,5.62327687173759E-05,5.64514300631901E-05,5.59731428714077E-05,5.53416917751164E-05,5.47807775069141E-05,5.4301797599092E-05,5.39060552071518E-05,5.36592459442518E-05,5.36592459442518E-05, +0.000384233145877383,0.000384233145877383,0.000385329012623007,0.000382385648871556,0.000378545336787103,0.00037509783887383,0.000372117548988652,0.000369633702987481,0.000368074056459258,0.000368074056459258, +0.00230131388747886,0.00230131388747886,0.00230560482353157,0.00228994785688496,0.00226978644872349,0.00225145437187569,0.00223537734701297,0.00222183537747179,0.00221324949031215,0.00221324949031215, +0.0118343434053729,0.0118343434053729,0.0118454501168468,0.0117752328709804,0.0116861833012663,0.0116039362238168,0.0115305593789272,0.0114679078686106,0.0114275934580975,0.0114275934580975, +0.0509879070112184,0.0509879070112184,0.0509931841328749,0.0507354325806791,0.0504146719028738,0.0501127059550886,0.0498376518228177,0.0495984523108339,0.049440672253998,0.049440672253998, +0.178401548615093,0.178401548615093,0.178297122287568,0.177550818664159,0.176646505776782,0.175775798624744,0.174962240160529,0.174235617687957,0.17373336847051,0.17373336847051, +0.48772108190266,0.48772108190266,0.487225745863729,0.485585998170615,0.483694654535752,0.481830784082413,0.480034439268456,0.478360996844958,0.47707924876847,0.47707924876847, + +00:03:50, +8.34225975286615E-06,8.34225975286615E-06,8.38446538536788E-06,8.30657946683231E-06,8.20219610279548E-06,8.11018659093638E-06,8.03248461455326E-06,7.96882100691739E-06,7.9293601607688E-06,7.9293601607688E-06, +8.34225975286615E-06,8.34225975286615E-06,8.38446538536788E-06,8.30657946683231E-06,8.20219610279548E-06,8.11018659093638E-06,8.03248461455326E-06,7.96882100691739E-06,7.9293601607688E-06,7.9293601607688E-06, +5.75475056866633E-05,5.75475056866633E-05,5.77712888517525E-05,5.72859268401296E-05,5.66429621201428E-05,5.60707475649612E-05,5.55819020176562E-05,5.5178209463795E-05,5.49266517160853E-05,5.49266517160853E-05, +0.000391666310565196,0.000391666310565196,0.0003927835969849,0.000389807280992867,0.00038591177834398,0.000382408472611711,0.000379378677469239,0.000376854785703357,0.000375271286811007,0.000375271286811007, +0.0023367849600687,0.0023367849600687,0.00234114448837101,0.00232536562831552,0.00230498936320355,0.0022864308018265,0.00227014887967359,0.0022564405945599,0.00224775615191788,0.00224775615191788, +0.0119716949666738,0.0119716949666738,0.0119829499940944,0.0119124090499589,0.0118227250411613,0.0117397649228531,0.0116657262157856,0.0116025364598033,0.0115619065707137,0.0115619065707137, +0.0513953148103717,0.0513953148103717,0.0514007533853626,0.0511425424816146,0.0508205405940903,0.0505170018181509,0.0502404325705696,0.0500000062620736,0.0498415284963759,0.0498415284963759, +0.179237056727621,0.179237056727621,0.17913271240819,0.178386784486915,0.177481513262504,0.176608972049453,0.175793512043124,0.175065412071306,0.174562442303302,0.174562442303302, +0.488646835363683,0.488646835363683,0.488152583769496,0.486515944808789,0.484626498871949,0.482763353256404,0.480967466327604,0.479294753268277,0.478014050645108,0.478014050645108, + +00:03:51, +8.573559411105E-06,8.573559411105E-06,8.61693461536354E-06,8.53758622860182E-06,8.43085800736708E-06,8.33659851048357E-06,8.25695931225734E-06,8.19174169002049E-06,8.15135169972503E-06,8.15135169972503E-06, +8.573559411105E-06,8.573559411105E-06,8.61693461536354E-06,8.53758622860182E-06,8.43085800736708E-06,8.33659851048357E-06,8.25695931225734E-06,8.19174169002049E-06,8.15135169972503E-06,8.15135169972503E-06, +5.88857308237212E-05,5.88857308237212E-05,5.91147215569219E-05,5.86222273688428E-05,5.79676104308981E-05,5.73839360738946E-05,5.68850791348973E-05,5.6473322397219E-05,5.62169518827738E-05,5.62169518827738E-05, +0.000399201359996963,0.000399201359996963,0.000400340328984256,0.000397330920240021,0.000393379791161148,0.000389820124407524,0.000386740300635201,0.000384175956322435,0.000382568381644955,0.000382568381644955, +0.00237259752075571,0.00237259752075571,0.00237702616874352,0.00236112535238289,0.00234053341458028,0.00232174706748973,0.00230525893415621,0.00229138333310208,0.00228259981943521,0.00228259981943521, +0.0121098194535136,0.0121098194535136,0.0121212231868087,0.0120503596030091,0.0119600413938824,0.0118763671437788,0.0118016651037507,0.0117379361155352,0.0116969904226937,0.0116969904226937, +0.051803438834941,0.051803438834941,0.0518090381322093,0.0515503715808879,0.0512271346905369,0.0509220277082624,0.0506439466237555,0.0504022966955165,0.050243123686751,0.050243123686751, +0.180070999176694,0.180070999176694,0.179966735597237,0.179221184522712,0.178314968833402,0.177440610267426,0.17662326365388,0.175893699052963,0.175390016821668,0.175390016821668, +0.489567948195955,0.489567948195955,0.489074775801754,0.487441226927621,0.48555367992913,0.48369127099533,0.481895854156398,0.480223879779702,0.478944225993059,0.478944225993059, + +00:03:52, +8.81003443040975E-06,8.81003443040975E-06,8.85460434682912E-06,8.77377542075252E-06,8.66466353430095E-06,8.56811202551855E-06,8.4864981450364E-06,8.41969714921423E-06,8.37836121821595E-06,8.37836121821595E-06, +8.81003443040975E-06,8.81003443040975E-06,8.85460434682912E-06,8.77377542075252E-06,8.66466353430095E-06,8.56811202551855E-06,8.4864981450364E-06,8.41969714921423E-06,8.37836121821595E-06,8.37836121821595E-06, +6.02477222527423E-05,6.02477222527423E-05,6.04820070627146E-05,5.99823234334E-05,5.93159150603955E-05,5.8720620277721E-05,5.82116050359145E-05,5.77916692149277E-05,5.7530421202783E-05,5.7530421202783E-05, +0.000406839036456194,0.000406839036456194,0.000407999951637749,0.000404957310880575,0.000400950119984242,0.000397333538092716,0.000394203160843332,0.000391597956141361,0.000389966081839041,0.000389966081839041, +0.00240875243868969,0.00240875243868969,0.00241325073076101,0.00239722789921487,0.00237641948087288,0.0023574040535996,0.00234070839973666,0.00232666448604696,0.00231778138822397,0.00231778138822397, +0.0122487145890882,0.0122487145890882,0.0122602674044599,0.0121890822395494,0.0120981300889302,0.0120137406458253,0.011938373828743,0.0118741046417347,0.0118328428304328,0.0118328428304328, +0.0522122688911847,0.0522122688911847,0.0522180281592874,0.051958909631505,0.051634443933503,0.0513277733964489,0.051048183790486,0.050805313441604,0.0506454476602968,0.0506454476602968, +0.180903372491427,0.180903372491427,0.180799188369078,0.180054015255198,0.179146868834468,0.17827070952356,0.177451491169338,0.176720474735464,0.176216088065056,0.176216088065056, +0.490484455654538,0.490484455654538,0.489992357220435,0.488361879999689,0.486476233074716,0.484614572473823,0.482819637758041,0.481148411229556,0.479869809568332,0.479869809568332, + +00:03:53, +9.05177120889812E-06,9.05177120889812E-06,9.09756134446069E-06,9.01523373364916E-06,8.9036989917939E-06,8.8048129307675E-06,8.72118641569222E-06,8.65277231031801E-06,8.61047343847391E-06,8.61047343847391E-06, +9.05177120889812E-06,9.05177120889812E-06,9.09756134446069E-06,9.01523373364916E-06,8.9036989917939E-06,8.8048129307675E-06,8.72118641569222E-06,8.65277231031801E-06,8.61047343847391E-06,8.61047343847391E-06, +6.16337593356642E-05,6.16337593356642E-05,6.18734254879756E-05,6.13664952487942E-05,6.06881556081076E-05,6.00810786727321E-05,5.95617570614067E-05,5.91335263822857E-05,5.88673356938639E-05,5.88673356938639E-05, +0.000414580080618563,0.000414580080618563,0.000415763206328512,0.000412687195549658,0.00040862350795249,0.00040494945593054,0.000401767998916182,0.000399121524946438,0.000397465126772841,0.000397465126772841, +0.00244525056794318,0.00244525056794318,0.00244981902540389,0.00243367412376129,0.00241264842491999,0.00239340262977482,0.00237649815065493,0.0023622849313585,0.00235330173867798,0.00235330173867798, +0.0123883780750245,0.0123883780750245,0.0124000803349957,0.012328574647376,0.0122369888339322,0.0121518831661829,0.0120758501545678,0.012011039822135,0.0119694615880624,0.0119694615880624, +0.0526217948528696,0.0526217948528696,0.0526277133203819,0.0523681464547029,0.052042458132175,0.0517342287208824,0.0514531339453832,0.0512090463968225,0.0510484903180064,0.0510484903180064, +0.181734173345652,0.181734173345652,0.181630067383524,0.180885273314134,0.179977209758222,0.179099266210436,0.178278190913575,0.177545735369049,0.177040652221025,0.177040652221025, +0.491396392656242,0.491396392656242,0.490905362948035,0.489277939156527,0.487394193337337,0.485533292530402,0.483738851801717,0.482068382136241,0.480790835796598,0.480790835796598, + +00:03:54, +9.2988570342699E-06,9.2988570342699E-06,9.34589326468271E-06,9.26204875080216E-06,9.14805158096865E-06,9.04678791191114E-06,8.9611103153803E-06,8.89105298549237E-06,8.84777396809211E-06,8.84777396809211E-06, +9.2988570342699E-06,9.2988570342699E-06,9.34589326468271E-06,9.26204875080216E-06,9.14805158096865E-06,9.04678791191114E-06,8.9611103153803E-06,8.89105298549237E-06,8.84777396809211E-06,8.84777396809211E-06, +6.30441226573241E-05,6.30441226573241E-05,6.32892581714301E-05,6.27750242541617E-05,6.20846129049985E-05,6.14655909926443E-05,6.0935813792932E-05,6.04991716078592E-05,6.02279726184281E-05,6.02279726184281E-05, +0.000422425231503363,0.000422425231503363,0.00042363083275759,0.000420521315201213,0.000416400696549678,0.000412668618566911,0.000409435554092948,0.000406747400964536,0.000405066254278455,0.000405066254278455, +0.00248209274754509,0.00248209274754509,0.00248673188855581,0.00247046486582888,0.00244922109441365,0.00242974365055103,0.00241262904614651,0.00239824553204672,0.00238916173625523,0.00238916173625523, +0.0125288075918173,0.0125288075918173,0.0125406596452809,0.0124688344931039,0.0123766153150854,0.0122907924204423,0.0122140918233544,0.012148739418713,0.0121068444678888,0.0121068444678888, +0.0530320066612061,0.0530320066612061,0.0530380835371234,0.0527780719398798,0.0524511671635755,0.0521413835868299,0.0518587870295345,0.0516134855236627,0.0514522416266557,0.0514522416266557, +0.182563398555376,0.182563398555376,0.182459369443269,0.181714955472816,0.180805988242125,0.179926276865747,0.179103359355635,0.178369477349095,0.177863705622689,0.177863705622689, +0.492303793783385,0.492303793783385,0.491813827573347,0.490189439192432,0.488307595410595,0.486447465671188,0.48465353062629,0.482983826689904,0.481707338776833,0.481707338776833, + +00:03:55, +9.5513800852726E-06,9.5513800852726E-06,9.59968865708314E-06,9.51430895031123E-06,9.39780939735178E-06,9.29412454710454E-06,9.20635692516354E-06,9.1346258748151E-06,9.09034930161192E-06,9.09034930161192E-06, +9.5513800852726E-06,9.5513800852726E-06,9.59968865708314E-06,9.51430895031123E-06,9.39780939735178E-06,9.29412454710454E-06,9.20635692516354E-06,9.1346258748151E-06,9.09034930161192E-06,9.09034930161192E-06, +6.44790940105358E-05,6.44790940105358E-05,6.47297876566601E-05,6.42081930977097E-05,6.35055689984779E-05,6.2874438193659E-05,6.23340550380871E-05,6.18888838286754E-05,6.16126104688418E-05,6.16126104688418E-05, +0.000430375226425508,0.000430375226425508,0.00043160356889594,0.000428460409059787,0.000424282425555663,0.000420491764981805,0.000417206563980907,0.00041447632081453,0.000412770200591922,0.000412770200591922, +0.00251927980151585,0.00251927980151585,0.00252399014103979,0.00250760095011759,0.00248613832193471,0.00246642795541484,0.0024491019304753,0.00243454713619978,0.0024253622315097,0.0024253622315097, +0.0126700007992618,0.0126700007992618,0.0126820029815322,0.0126098594226041,0.0125170071975955,0.0124304661030321,0.0123530965559913,0.0122872011721228,0.0122449892208269,0.0122449892208269, +0.053442894324776,0.053442894324776,0.053449128798912,0.053188676044516,0.0528605609724935,0.0525492279665934,0.0522651330504378,0.0520186208505694,0.0518566916187564,0.0518566916187564, +0.183391045076284,0.183391045076284,0.183287091491376,0.182543058645544,0.181633201066028,0.180751738169754,0.179926993107007,0.179191697213598,0.178685244746192,0.178685244746192, +0.493206693287507,0.493206693287507,0.492717785355143,0.491096414568222,0.489216473656774,0.487357126073581,0.485563708243958,0.48389477875606,0.482619352284914,0.482619352284914, + +00:03:56, +9.80942943309172E-06,9.80942943309172E-06,9.85903696577286E-06,9.77210370623291E-06,9.65306143227533E-06,9.54691130842086E-06,9.45701421749028E-06,9.38357856778206E-06,9.33828682203496E-06,9.33828682203496E-06, +9.80942943309172E-06,9.80942943309172E-06,9.85903696577286E-06,9.77210370623291E-06,9.65306143227533E-06,9.54691130842086E-06,9.45701421749028E-06,9.38357856778206E-06,9.33828682203496E-06,9.33828682203496E-06, +6.5938956381093E-05,6.5938956381093E-05,6.6195297677007E-05,6.56662856215694E-05,6.49513071372814E-05,6.43079024394459E-05,6.37567618156089E-05,6.33029431954039E-05,6.30215289526414E-05,6.30215289526414E-05, +0.000438430800948062,0.000438430800948062,0.000439682150936974,0.00043650521457287,0.000432269432998427,0.000428419632441196,0.000425081764507378,0.000422309019459273,0.000420577700305174,0.000420577700305174, +0.0025568125389039,0.0025568125389039,0.00256159458865575,0.00254508318625827,0.00252340092498972,0.00250345636883931,0.00248591763296793,0.00247119057701757,0.00246190406012458,0.00246190406012458, +0.0128119553368826,0.0128119553368826,0.012824107969749,0.0127516470614363,0.0126581621261115,0.012570901887652,0.0124928620525576,0.0124264228021265,0.0123838935768306,0.0123838935768306, +0.0538544479194505,0.0538544479194505,0.0538608391628334,0.0535999487940869,0.0532706295714068,0.0529577518994408,0.0526721620819372,0.0524244424718824,0.0522618303925005,0.0522618303925005, +0.184217110001276,0.184217110001276,0.184113230608796,0.183369579885126,0.18245884514967,0.181575646942798,0.180749088919139,0.180012391640694,0.17950526620823,0.17950526620823, +0.494105125093033,0.494105125093033,0.493617270225817,0.491998899414948,0.490120862110506,0.488262307589891,0.486469418343849,0.484801271879168,0.483526909777171,0.483526909777171, + +00:03:57, +1.00730950426655E-05,1.00730950426655E-05,1.01240285306692E-05,1.00355232898721E-05,9.91389757420228E-06,9.80523756321923E-06,9.71317105759674E-06,9.63799954473258E-06,9.59167480225988E-06,9.59167480225988E-06, +1.00730950426655E-05,1.00730950426655E-05,1.01240285306692E-05,1.00355232898721E-05,9.91389757420228E-06,9.80523756321923E-06,9.71317105759674E-06,9.63799954473258E-06,9.59167480225988E-06,9.59167480225988E-06, +6.74239939327004E-05,6.74239939327004E-05,6.76860731404043E-05,6.71495868465795E-05,6.64221117562778E-05,6.57662670860531E-05,6.52042163404016E-05,6.47416310574631E-05,6.44550089776735E-05,6.44550089776735E-05, +0.000446592688835313,0.000446592688835313,0.000447867313249644,0.00044465646736378,0.000440362455106684,0.000436452956449537,0.000433061889872222,0.000430246230158103,0.000428489486318517,0.000428489486318517, +0.00259469175382363,0.00259469175382363,0.00259954602221953,0.00258291236885183,0.00256100970604925,0.00254082970032081,0.00252307696804953,0.00250817667284674,0.0024987880429469,0.0024987880429469, +0.0129546688243574,0.0129546688243574,0.0129669722161401,0.0128941950152777,0.0128000777251564,0.0127120974277023,0.0126333859927498,0.0125664020080195,0.0125235552453187,0.0125235552453187, +0.0542666575883001,0.0542666575883001,0.0542732047535658,0.0540118802819673,0.0536813630403941,0.0533669454915277,0.0530798642641502,0.0528309405477687,0.0526676481116961,0.0526676481116961, +0.185041590558041,0.185041590558041,0.184937784011933,0.184194516380424,0.183282917550202,0.182398000142834,0.181569643680988,0.180831557446214,0.180323766763603,0.180323766763603, +0.4949991228009,0.4949991228009,0.49451231579498,0.492896927537557,0.491020794482391,0.489163043750927,0.487370694295594,0.485703339286169,0.484430044393897,0.484430044393897, + +00:03:58, +1.03424677739246E-05,1.03424677739246E-05,1.03947545887041E-05,1.03046588709973E-05,1.01804086099759E-05,1.00691935754365E-05,9.97491720483388E-06,9.89797817819954E-06,9.85060240644395E-06,9.85060240644395E-06, +1.03424677739246E-05,1.03424677739246E-05,1.03947545887041E-05,1.03046588709973E-05,1.01804086099759E-05,1.00691935754365E-05,9.97491720483388E-06,9.89797817819954E-06,9.85060240644395E-06,9.85060240644395E-06, +6.8934491991837E-05,6.8934491991837E-05,6.92024001141427E-05,6.86583829570008E-05,6.79182684612077E-05,6.72498166667467E-05,6.6676702008492E-05,6.62052299480532E-05,6.59133326371619E-05,6.59133326371619E-05, +0.00045486162200639,0.00045486162200639,0.000456159788332076,0.000452914901185096,0.000448562226263036,0.000444592470702789,0.000441147672500884,0.000438288684419881,0.000436506289793646,0.000436506289793646, +0.0026329182254947,0.0026329182254947,0.0026378452176032,0.00262108927750976,0.00259896545258755,0.0025785487444173,0.00256058073528089,0.00254550622721712,0.00253601498602363,0.00253601498602363, +0.0130981388619382,0.0130981388619382,0.0131105933075457,0.013037500870347,0.0129427515995532,0.0128540503567084,0.0127746660363044,0.0127071364690531,0.0126639719155965,0.0126639719155965, +0.0546795135414975,0.0546795135414975,0.0546862157632787,0.0544244606693267,0.0540927515270401,0.0537767989158114,0.0534882298033869,0.0532381053041464,0.0530741350056943,0.0530741350056943, +0.185864484106675,0.185864484106675,0.185760749050239,0.18501786545394,0.184105415459769,0.183218794863018,0.182388654416611,0.18164919158128,0.181140743302817,0.181140743302817, +0.495888719692129,0.495888719692129,0.495402955353014,0.493790532418518,0.491916304162578,0.490059367769533,0.488267569152837,0.486601013889973,0.485328788962819,0.485328788962819, + +00:03:59, +1.0617639382956E-05,1.0617639382956E-05,1.06713072749561E-05,1.05796025189805E-05,1.04526862259929E-05,1.03388705068032E-05,1.02423433139186E-05,1.01636047341841E-05,1.01151596912894E-05,1.01151596912894E-05, +1.0617639382956E-05,1.0617639382956E-05,1.06713072749561E-05,1.05796025189805E-05,1.04526862259929E-05,1.03388705068032E-05,1.02423433139186E-05,1.01636047341841E-05,1.01151596912894E-05,1.01151596912894E-05, +7.04707370325522E-05,7.04707370325522E-05,7.07445658095704E-05,7.01929612851666E-05,6.94400640133555E-05,6.87588368767816E-05,6.81745033819155E-05,6.76940235691204E-05,6.73967831947044E-05,6.73967831947044E-05, +0.00046323833048941,0.00046323833048941,0.000464560306765745,0.000461281247872642,0.000456869478957672,0.000452838907041983,0.000449339842997968,0.00044643711195657,0.000444628840107198,0.000444628840107198, +0.00267149271828262,0.00267149271828262,0.00267649293577667,0.00265961467689594,0.00263726893712359,0.002616614280788,0.002598429719397,0.0025831800288795,0.00257358568063908,0.00257358568063908, +0.0132423630308668,0.0132423630308668,0.0132549688118555,0.0131815621938247,0.0130861813348467,0.012996758288742,0.0129166998234174,0.0128486238448518,0.0128051412572742,0.0128051412572742, +0.0550930060562104,0.0550930060562104,0.0550998624515239,0.0548376801850182,0.0545047852463321,0.054187302411956,0.0538972489720605,0.0536459270325999,0.0534812813693084,0.0534812813693084, +0.186685788137333,0.186685788137333,0.186582123203856,0.185839624559436,0.184926336203106,0.184038028329324,0.183206118282799,0.182465291129942,0.181956192849708,0.181956192849708, +0.496773948731366,0.496773948731366,0.496289221874581,0.494679747221392,0.492807424224297,0.490951312544098,0.489160075656715,0.487494328292909,0.486223176002516,0.486223176002516, + +00:04:00, +1.08987025230919E-05,1.08987025230919E-05,1.09537796237073E-05,1.08604472038605E-05,1.07308230093007E-05,1.06143604179837E-05,1.05155409361095E-05,1.04349703733553E-05,1.03854376072546E-05,1.03854376072546E-05, +1.08987025230919E-05,1.08987025230919E-05,1.09537796237073E-05,1.08604472038605E-05,1.07308230093007E-05,1.06143604179837E-05,1.05155409361095E-05,1.04349703733553E-05,1.03854376072546E-05,1.03854376072546E-05, +7.20330166611999E-05,7.20330166611999E-05,7.23128585667314E-05,7.17536102960707E-05,7.09877863141585E-05,7.0293614558108E-05,6.96979061735358E-05,6.92082967762537E-05,6.89056450692029E-05,6.89056450692029E-05, +0.000471723542376176,0.000471723542376176,0.000473069597170209,0.00046975623730002,0.000465284943742623,0.000461192995407344,0.000457639130101362,0.000454692240637347,0.000452857864804843,0.000452857864804843, +0.00271041598174071,0.00271041598174071,0.00271548992285071,0.0026984893167698,0.00267592091726341,0.00265502707423439,0.0026366246903469,0.00262119885184474,0.0026115009033537,0.0026115009033537, +0.0133873388937868,0.0133873388937868,0.0134000962784231,0.0133263765342691,0.0132303644977218,0.0131402188188374,0.013059484975158,0.0129908617758269,0.0129470609206801,0.0129470609206801, +0.0555071254764886,0.0555071254764886,0.0555141351451188,0.055251529125458,0.0549174544805482,0.0545984462862307,0.0543069121085897,0.0540543960902878,0.0538890775627245,0.0538890775627245, +0.187505500267916,0.187505500267916,0.187401904081288,0.186659791279593,0.185745677235198,0.184855697898199,0.184022032566734,0.183279853306843,0.182770112559118,0.182770112559118, +0.497654842570367,0.497654842570367,0.497171148022088,0.495564604794371,0.493694187427348,0.491838910662003,0.490048246239292,0.488383314790135,0.48711323772581,0.48711323772581, + +00:04:01, +1.11857507459236E-05,1.11857507459236E-05,1.12422655694242E-05,1.11472867973304E-05,1.10149124486185E-05,1.08957562696402E-05,1.07946025203071E-05,1.07121671521739E-05,1.06615279996899E-05,1.06615279996899E-05, +1.11857507459236E-05,1.11857507459236E-05,1.12422655694242E-05,1.11472867973304E-05,1.10149124486185E-05,1.08957562696402E-05,1.07946025203071E-05,1.07121671521739E-05,1.06615279996899E-05,1.06615279996899E-05, +7.36216196011109E-05,7.36216196011109E-05,7.39075678389444E-05,7.33406195718953E-05,7.25617243897539E-05,7.18544376840147E-05,7.12471972318011E-05,7.07483355635172E-05,7.04402038197282E-05,7.04402038197282E-05, +0.000480317983777418,0.000480317983777418,0.000481688386158372,0.00047834059733369,0.000473809349186568,0.000469655463792946,0.000466046260636892,0.000463054796443259,0.0004611940895559,0.0004611940895559, +0.00274968875065333,0.00274968875065333,0.00275483691012117,0.00273771393203074,0.00271492213574384,0.00269378787474245,0.00267516640333487,0.00265956345542427,0.00264976141604419,0.00264976141604419, +0.0135330639951521,0.0135330639951521,0.0135459732384753,0.0134719414220277,0.0133752986364169,0.0132844295234043,0.0132030190938799,0.0131338478835867,0.0130897285372704,0.0130897285372704, +0.0559218622131426,0.0559218622131426,0.0559290242380217,0.0556659978544988,0.0553307495791382,0.0550102209113986,0.0547172096172941,0.0544635028998425,0.0542975140114046,0.0542975140114046, +0.188323618241797,0.188323618241797,0.188220089417111,0.187478363323713,0.186563436138952,0.185671801054258,0.1848363946837,0.184092875454931,0.183582499714597,0.183582499714597, +0.49853143355145,0.49853143355145,0.498048766149117,0.496445137673761,0.494576626221552,0.492722194403042,0.490932113026947,0.489268005372998,0.487999006043106,0.487999006043106, + +00:04:02, +1.14788785022399E-05,1.14788785022399E-05,1.15368599476642E-05,1.14402160736503E-05,1.13050489352828E-05,1.11831519234215E-05,1.10796214140787E-05,1.09952880239419E-05,1.09435236098988E-05,1.09435236098988E-05, +1.14788785022399E-05,1.14788785022399E-05,1.15368599476642E-05,1.14402160736503E-05,1.13050489352828E-05,1.11831519234215E-05,1.10796214140787E-05,1.09952880239419E-05,1.09435236098988E-05,1.09435236098988E-05, +7.52368356772084E-05,7.52368356772084E-05,7.55289841773258E-05,7.49542797964829E-05,7.41621683754694E-05,7.34415953437131E-05,7.28226645254397E-05,7.23144270482212E-05,7.20007461303235E-05,7.20007461303235E-05, +0.000489022378778565,0.000489022378778565,0.000490417398292312,0.000487035053788613,0.000482443421830187,0.000478227038201925,0.000474561959473525,0.000471525503422409,0.00046963823810851,0.00046963823810851, +0.0027893117450803,0.0027893117450803,0.00279453461411443,0.00277728924276385,0.00275427332047737,0.0027328974175263,0.00271405559886288,0.00269827458427175,0.00268836796594485,0.00268836796594485, +0.0136795358616299,0.0136795358616299,0.0136925972055178,0.0136182543696448,0.0135209812811329,0.0134293879606361,0.0133472997636271,0.0132775797713417,0.0132331417200349,0.0132331417200349, +0.056337206743615,0.056337206743615,0.0563445201912006,0.0560810768032948,0.0557446609585973,0.0554226167265997,0.0551281319682813,0.054873237949262,0.0547065812059819,0.0547065812059819, +0.189140139925587,0.189140139925587,0.189036677069721,0.188295338525447,0.187379610622925,0.186486335408011,0.185649202174815,0.184904355043199,0.18439335172615,0.18439335172615, +0.4994037537109,0.4994037537109,0.498922108303806,0.497321378087432,0.495454772750158,0.493601195742796,0.491811707843726,0.490148431732363,0.488880512565692,0.488880512565692, + +00:04:03, +1.17781811428904E-05,1.17781811428904E-05,1.18376584959052E-05,1.17393307104831E-05,1.16013277641164E-05,1.14766421428755E-05,1.13706918646078E-05,1.12844268397763E-05,1.1231518076124E-05,1.1231518076124E-05, +1.17781811428904E-05,1.17781811428904E-05,1.18376584959052E-05,1.17393307104831E-05,1.16013277641164E-05,1.14766421428755E-05,1.13706918646078E-05,1.12844268397763E-05,1.1231518076124E-05,1.1231518076124E-05, +7.68789558005683E-05,7.68789558005683E-05,7.71773992152576E-05,7.65948827397534E-05,7.57894095002568E-05,7.50553777268645E-05,7.44245971280968E-05,7.39068594556347E-05,7.35875597947483E-05,7.35875597947483E-05, +0.000497837449396079,0.000497837449396079,0.000499257356039648,0.000495840330384428,0.00049118788614207,0.00048690844260223,0.000483186949479112,0.000480105083645687,0.000478191032245326,0.000478191032245326, +0.00282928567040263,0.00282928567040263,0.00283458373663414,0.00281721595428676,0.00279397518459833,0.00277235642307299,0.00275329300277431,0.0027373329684261,0.00272732128569023,0.00272732128569023, +0.0138267520025008,0.0138267520025008,0.0138399656757366,0.0137653128722648,0.0136674099444389,0.0135750916709138,0.0134923245505369,0.0134220550243061,0.0133772980638986,0.0133772980638986, +0.0567531496118452,0.0567531496118452,0.0567606135324937,0.0564967564701603,0.056159179102332,0.0558356242372251,0.0555396696973268,0.0552835917917953,0.0551162697021488,0.0551162697021488, +0.189955063306925,0.189955063306925,0.189851665019118,0.189110714840568,0.188194198519078,0.18729929869363,0.18646045270481,0.185714289664461,0.185202666128004,0.185202666128004, +0.500271834782332,0.500271834782332,0.49979120623219,0.498193357958218,0.496328658853206,0.494475946355959,0.492687062214654,0.491024625261897,0.489757788609004,0.489757788609004, + +00:04:04, +1.20837549195745E-05,1.20837549195745E-05,1.21447578543015E-05,1.20447272896554E-05,1.1903845134223E-05,1.1776322594287E-05,1.16679090195686E-05,1.15796783495079E-05,1.15256059344578E-05,1.15256059344578E-05, +1.20837549195745E-05,1.20837549195745E-05,1.21447578543015E-05,1.20447272896554E-05,1.1903845134223E-05,1.1776322594287E-05,1.16679090195686E-05,1.15796783495079E-05,1.15256059344578E-05,1.15256059344578E-05, +7.85482719529258E-05,7.85482719529258E-05,7.88531056528053E-05,7.82627212420705E-05,7.74437400710741E-05,7.66960761080522E-05,7.60532852029165E-05,7.55259221036411E-05,7.52009337011662E-05,7.52009337011662E-05, +0.000506763915534312,0.000506763915534312,0.000508208979730458,0.000504757148702196,0.000500043464475173,0.000495700398882932,0.000491921951476679,0.000488794257163039,0.000486853191739761,0.000486853191739761, +0.00286961121736939,0.00286961121736939,0.00287498496480912,0.0028574947571978,0.00283402842651033,0.00281216559718858,0.00279287932629892,0.00277673932335569,0.00276662209335903,0.00276662209335903, +0.0139747099100544,0.0139747099100544,0.0139880761283958,0.0139131144080313,0.0138145821216732,0.0137215381772065,0.0136380910032374,0.0135672712100952,0.0135221951461189,0.0135221951461189, +0.0571696814281267,0.0571696814281267,0.0571772948564646,0.0569130274204212,0.056574294560519,0.0562492340147855,0.0559518134057473,0.0556945550458193,0.0555265701205375,0.0555265701205375, +0.19076838649231,0.19076838649231,0.190665051364722,0.189924490344771,0.189007197780564,0.188110688766747,0.187270144059833,0.186522677033172,0.18601044057643,0.18601044057643, +0.501135708200019,0.501135708200019,0.500656091381508,0.499061108907282,0.497198316070851,0.49534647761964,0.493558207369002,0.49189661706131,0.490630865195848,0.490630865195848, + +00:04:05, +1.23956969855546E-05,1.23956969855546E-05,1.24582555663633E-05,1.23565032978432E-05,1.22126981497047E-05,1.20822898474393E-05,1.19713689279247E-05,1.18811382025055E-05,1.1825882619679E-05,1.1825882619679E-05, +1.23956969855546E-05,1.23956969855546E-05,1.24582555663633E-05,1.23565032978432E-05,1.22126981497047E-05,1.20822898474393E-05,1.19713689279247E-05,1.18811382025055E-05,1.1825882619679E-05,1.1825882619679E-05, +8.02450771711342E-05,8.02450771711342E-05,8.05563972410866E-05,7.99580891985585E-05,7.91254534572172E-05,7.83639828312031E-05,7.77090199870708E-05,7.71719053873412E-05,7.68411578167787E-05,7.68411578167787E-05, +0.00051580249494292,0.00051580249494292,0.000517272987514746,0.000513786228141684,0.000509010877023832,0.000504603626811069,0.000500767684201247,0.000497593741960279,0.000495625434312758,0.000495625434312758, +0.00291028906214577,0.00291028906214577,0.00291573897114239,0.00289812632742523,0.00287443372993476,0.00285232563104534,0.00283281526609893,0.00281649435000378,0.00280627109251918,0.00280627109251918, +0.0141234070599808,0.0141234070599808,0.0141369260262298,0.0140616564384823,0.0139624952913397,0.0138687249854672,0.0137845966532424,0.0137132258791192,0.0136678305266794,0.0136678305266794, +0.0575867928689583,0.0575867928689583,0.0575945548242489,0.0573298802862598,0.056989997949958,0.0566634366967714,0.0563645537602663,0.0561061183947102,0.0559374731465943,0.0559374731465943, +0.191580107704972,0.191580107704972,0.191476834323222,0.190736663231518,0.189818606479561,0.18892050360229,0.188078274145293,0.187329514983265,0.186816672847582,0.186816672847582, +0.501995405102172,0.501995405102172,0.501516794903465,0.499924662257438,0.498063775646649,0.496212820616608,0.494425174243516,0.492764437939566,0.491499773059586,0.491499773059586, + +00:04:06, +1.27141053962956E-05,1.27141053962956E-05,1.27782500795628E-05,1.26747571271819E-05,1.25279848203052E-05,1.23946413763006E-05,1.22811685406536E-05,1.2188902948425E-05,1.21324444660139E-05,1.21324444660139E-05, +1.27141053962956E-05,1.27141053962956E-05,1.27782500795628E-05,1.26747571271819E-05,1.25279848203052E-05,1.23946413763006E-05,1.22811685406536E-05,1.2188902948425E-05,1.21324444660139E-05,1.21324444660139E-05, +8.19696655315742E-05,8.19696655315742E-05,8.22875687665941E-05,8.16812815433741E-05,8.08348440746042E-05,8.00593912939592E-05,7.93920937762381E-05,7.88451007636044E-05,7.85085231724078E-05,7.85085231724078E-05, +0.000524953903174821,0.000524953903174821,0.000526450095320454,0.00052292828587921,0.000518090841781323,0.000513618843989048,0.000509724864257209,0.000506504253916432,0.000504508475590113,0.000504508475590113, +0.00295131986636224,0.00295131986636224,0.00295684641356139,0.00293911132627771,0.00291519176396056,0.00289283720123022,0.00287310150431639,0.00285659873483508,0.00284626897227406,0.00284626897227406, +0.0142728409117578,0.0142728409117578,0.0142865128158332,0.0142109364089405,0.0141111469155012,0.0140166495850247,0.0139318390153413,0.0138599165649721,0.0138142017486793,0.0138142017486793, +0.0580044746768883,0.0580044746768883,0.0580123841633959,0.0577473057665529,0.0574062799539165,0.0570782229865077,0.0567778814928739,0.056518272586707,0.0563489695304459,0.0563489695304459, +0.192390225282764,0.192390225282764,0.192287012226466,0.191547231809906,0.190628422805127,0.18972874129235,0.188884840983742,0.188134801466041,0.18762136083538,0.18762136083538, +0.502850956334185,0.502850956334185,0.502373347657452,0.500784049036426,0.498925068530799,0.497075006138508,0.495287993485613,0.493628118418045,0.492364542647277,0.492364542647277, + +00:04:07, +1.30390791100292E-05,1.30390791100292E-05,1.31048407458637E-05,1.29995880758013E-05,1.28498040619774E-05,1.27134755596355E-05,1.25974057113957E-05,1.25030700378841E-05,1.24453887078235E-05,1.24453887078235E-05, +1.30390791100292E-05,1.30390791100292E-05,1.31048407458637E-05,1.29995880758013E-05,1.28498040619774E-05,1.27134755596355E-05,1.25974057113957E-05,1.25030700378841E-05,1.24453887078235E-05,1.24453887078235E-05, +8.37223321345205E-05,8.37223321345205E-05,8.4046916035475E-05,8.34325942339334E-05,8.2572207370015E-05,8.1782595932004E-05,8.11027999090347E-05,8.05458007355723E-05,8.02033218470302E-05,8.02033218470302E-05, +0.000534218853544684,0.000534218853544684,0.000535741016812029,0.000532184036826032,0.000527284074497979,0.000522746765812595,0.000518794206076244,0.000515526506761628,0.000513503029060327,0.000513503029060327, +0.00299270427716492,0.00299270427716492,0.00299830793546927,0.00298045040049576,0.00295630318309504,0.00293370096979439,0.00291373870862159,0.00289705314988352,0.00288661640730995,0.00288661640730995, +0.0144230089090346,0.0144230089090346,0.0144368339280456,0.0143609517489006,0.0142605344401678,0.0141653094489713,0.0140798155879849,0.0140073407848174,0.0139613063387188,0.0139613063387188, +0.0584227176603531,0.0584227176603531,0.0584307736677034,0.0581652946267042,0.0578231313219698,0.0574935836530012,0.0571917874006791,0.0569310084347689,0.0567610500867604,0.0567610500867604, +0.193198737676098,0.193198737676098,0.193095583519379,0.192356194502578,0.191436645061097,0.190535400044082,0.189689842712777,0.188938534548076,0.188424502549421,0.188424502549421, +0.503702392451839,0.503702392451839,0.503225780213733,0.501639299980158,0.499782225383349,0.497933064689034,0.496146695456528,0.494487688733672,0.493225204122791,0.493225204122791, + +00:04:08, +1.33707179882437E-05,1.33707179882437E-05,1.34381278221774E-05,1.33310963482858E-05,1.31782556973753E-05,1.30388916815418E-05,1.29201791970286E-05,1.28237378230621E-05,1.27648134802155E-05,1.27648134802155E-05, +1.33707179882437E-05,1.33707179882437E-05,1.34381278221774E-05,1.33310963482858E-05,1.31782556973753E-05,1.30388916815418E-05,1.29201791970286E-05,1.28237378230621E-05,1.27648134802155E-05,1.27648134802155E-05, +8.55033730884647E-05,8.55033730884647E-05,8.58347358577694E-05,8.52123242350986E-05,8.43378398052892E-05,8.35338922033438E-05,8.28414327514012E-05,8.22742988371169E-05,8.1925846952265E-05,8.1925846952265E-05, +0.000543598057087978,0.000543598057087978,0.000545146463349531,0.000541554193587289,0.000536591288639854,0.000531988105429241,0.000527976421875774,0.000524661212035528,0.000522609806033003,0.000522609806033003, +0.00303444292726693,0.00303444292726693,0.00304012416579732,0.00302214418230444,0.00299776862731591,0.00297491758430389,0.00295472753226267,0.00293785825280107,0.00292731405794456,0.00292731405794456, +0.0145739084800109,0.0145739084800109,0.0145878867783319,0.0145116998724115,0.0144106552956811,0.0143147020345471,0.0142285238536682,0.0141554960397693,0.0141091418072804,0.0141091418072804, +0.0588415126935087,0.0588415126935087,0.0588497141970459,0.05858383769847,0.0582405428698334,0.0579095095307816,0.0576062623457566,0.0573443168164264,0.0571737056946008,0.0571737056946008, +0.194005643445908,0.194005643445908,0.193902546757912,0.193163549843661,0.19224327166401,0.191340478177645,0.190493277582991,0.189740712409173,0.189226096112922,0.189226096112922, +0.504549743724466,0.504549743724466,0.504074122856594,0.502490445535915,0.500635276577363,0.498787026487065,0.497001310234431,0.495343178842011,0.494081787369874,0.494081787369874, + +00:04:09, +1.37091227961003E-05,1.37091227961003E-05,1.37782124707442E-05,1.36693830560597E-05,1.35134404562721E-05,1.33709899319109E-05,1.32495886581673E-05,1.31510055582255E-05,1.30908178195829E-05,1.30908178195829E-05, +1.37091227961003E-05,1.37091227961003E-05,1.37782124707442E-05,1.36693830560597E-05,1.35134404562721E-05,1.33709899319109E-05,1.32495886581673E-05,1.31510055582255E-05,1.30908178195829E-05,1.30908178195829E-05, +8.73130854943999E-05,8.73130854943999E-05,8.76513260316111E-05,8.70207695033269E-05,8.61320388414835E-05,8.53135765725492E-05,8.4608287680946E-05,8.40308896172546E-05,8.36763926168186E-05,8.36763926168186E-05, +0.000553092222520551,0.000553092222520551,0.000554667143948292,0.000551039466421499,0.000546013195347942,0.000541343573697373,0.000537272221617962,0.000533909079046295,0.000531829515597782,0.000531829515597782, +0.00307653643500087,0.00307653643500087,0.00308229571905835,0.00306419328946702,0.00303958872212423,0.00301648767789144,0.00299606861411627,0.00297901468690774,0.00296836257017663,0.00296836257017663, +0.0147255370378126,0.0147255370378126,0.0147396687671598,0.0146631781784547,0.0145615068970951,0.0144648247835189,0.0143779612793076,0.0143043798152704,0.0142577056491067,0.0142577056491067, +0.0592608507160573,0.0592608507160573,0.0592691966771978,0.0590029258797793,0.0586585054791897,0.0583259915197374,0.0580212972549869,0.0577581886736264,0.0575869272972735,0.0575869272972735, +0.194810941261647,0.194810941261647,0.194707900607028,0.193969296476739,0.193048301141069,0.192143974124163,0.19129514395594,0.190541333340336,0.190026139760702,0.190026139760702, +0.50539304013808,0.50539304013808,0.504918405587448,0.503337515865512,0.501484252202047,0.499636921469766,0.497851867617502,0.496194618420313,0.494934321995184,0.494934321995184, + +00:04:10, +1.40543952027744E-05,1.40543952027744E-05,1.41251967594401E-05,1.40145502176975E-05,1.38554599759021E-05,1.37098714068158E-05,1.35857346595892E-05,1.34849734001795E-05,1.34235016640675E-05,1.34235016640675E-05, +1.40543952027744E-05,1.40543952027744E-05,1.41251967594401E-05,1.40145502176975E-05,1.38554599759021E-05,1.37098714068158E-05,1.35857346595892E-05,1.34849734001795E-05,1.34235016640675E-05,1.34235016640675E-05, +8.91517674300669E-05,8.91517674300669E-05,8.9496985327392E-05,8.88582289707822E-05,8.7955102922993E-05,8.71219464949567E-05,8.64036610712496E-05,8.58158686245207E-05,8.54552539708882E-05,8.54552539708882E-05, +0.000562702056198757,0.000562702056198757,0.000564303765239124,0.000560640563200599,0.000555550503397943,0.000550813879145817,0.000546682312969259,0.000543270814830103,0.000541162864583813,0.000541162864583813, +0.00311898540437233,0.00311898540437233,0.00312482319540125,0.00310659832533966,0.00308176407859857,0.00305841186930921,0.00303776257873927,0.00302052308124258,0.00300976257573668,0.00300976257573668, +0.0148778919808627,0.0148778919808627,0.0148921772803722,0.014815384051319,0.0147130866445522,0.0146156751225564,0.0145281253166159,0.0144539895814647,0.0144069953435737,0.0144069953435737, +0.0596807227330679,0.0596807227330679,0.05968921209965,0.0594225501345482,0.0590770100975096,0.0587430205849444,0.0584368831198908,0.0581726150125707,0.0580007059021691,0.0580007059021691, +0.195614629899316,0.195614629899316,0.195511643838717,0.19477343315286,0.193851732128134,0.192945886423727,0.19209544030216,0.191340395741784,0.190824631837189,0.190824631837189, +0.506232311398461,0.506232311398461,0.505758658127907,0.504180540848415,0.502329182065839,0.500482779295643,0.498698397126974,0.497042036870539,0.495782837331287,0.495782837331287, + +00:04:11, +1.44066377817234E-05,1.44066377817234E-05,1.44791836620097E-05,1.43667007591606E-05,1.42044168012292E-05,1.40556381088224E-05,1.39287186705855E-05,1.38257424086449E-05,1.376296585395E-05,1.376296585395E-05, +1.44066377817234E-05,1.44066377817234E-05,1.44791836620097E-05,1.43667007591606E-05,1.42044168012292E-05,1.40556381088224E-05,1.39287186705855E-05,1.38257424086449E-05,1.376296585395E-05,1.376296585395E-05, +9.10197179341671E-05,9.10197179341671E-05,9.13720134718936E-05,9.07250025294145E-05,8.98073314616379E-05,8.89593004008349E-05,8.82278502761312E-05,8.76295323913053E-05,8.7262727130527E-05,8.7262727130527E-05, +0.000572428262080127,0.000572428262080127,0.000574057031429066,0.000570358189370538,0.000565203919160583,0.000560399727933978,0.000556207401260483,0.000552747124111183,0.000550610557519766,0.000550610557519766, +0.00316179042511441,0.00316179042511441,0.00316770718066644,0.00314935987892721,0.00312429529345009,0.00310069076298274,0.00307981003642154,0.00306238405061575,0.00305151469213873,0.00305151469213873, +0.0150309706932489,0.0150309706932489,0.0150454096895559,0.0149683148609709,0.0148653919236552,0.0147672504636035,0.0146790134024716,0.0146043227935672,0.0145570083550603,0.0145570083550603, +0.0601011198147908,0.0601011198147908,0.0601097515214216,0.0598427014924886,0.0594960477378672,0.0591605877564896,0.058853010996458,0.0585875869035492,0.0584150325805993,0.0584150325805993, +0.196416708239521,0.196416708239521,0.196313775330045,0.195575958728568,0.194653563367746,0.193746213723427,0.192894165199195,0.19213789812099,0.191621570794459,0.191621570794459, +0.50706758693421,0.50706758693421,0.506594909922819,0.505019550084835,0.503170095699464,0.501324629347573,0.499540928010132,0.497885463322336,0.496627362439621,0.496627362439621, + +00:04:12, +1.47659540108812E-05,1.47659540108812E-05,1.4840277058225E-05,1.47259385139592E-05,1.456041438514E-05,1.44083929472275E-05,1.42786430652378E-05,1.41734145465617E-05,1.41093121319661E-05,1.41093121319661E-05, +1.47659540108812E-05,1.47659540108812E-05,1.4840277058225E-05,1.47259385139592E-05,1.456041438514E-05,1.44083929472275E-05,1.42786430652378E-05,1.41734145465617E-05,1.41093121319661E-05,1.41093121319661E-05, +9.29172369905426E-05,9.29172369905426E-05,9.32767111323874E-05,9.26213910150081E-05,9.16890248207176E-05,9.08259376795172E-05,9.00811536138806E-05,8.94721784181534E-05,8.9099109181974E-05,8.9099109181974E-05, +0.000582271541684578,0.000582271541684578,0.000583927644262691,0.000580193047912421,0.000574974146562483,0.00057010182381252,0.000565848189447451,0.000562338709262412,0.000560173296594386,0.000560173296594386, +0.00320495207274317,0.00320495207274317,0.00321094824644232,0.00319247852493985,0.00316718294907864,0.00314332494906575,0.00312221158323979,0.00310459819566161,0.00309361952273308,0.00309361952273308, +0.0151847705450869,0.0151847705450869,0.0151993633524064,0.0151219679634202,0.0150184201058361,0.0149195482042465,0.0148306229592854,0.0147553768922295,0.0147077421333143,0.0147077421333143, +0.0605220330964672,0.0605220330964672,0.0605308060648656,0.0602633710489113,0.0599156094787498,0.059578684129289,0.05926967200497,0.0590030954807673,0.0588298984676265,0.0588298984676265, +0.197217175265567,0.197217175265567,0.19711429406123,0.196376872163978,0.195453793707184,0.194544954775412,0.193691317329676,0.192933839090758,0.192416955190307,0.192416955190307, +0.507898895899764,0.507898895899764,0.507427190143262,0.505854572898768,0.50400702235895,0.502162500735785,0.500379489243281,0.498724926635981,0.497467926113416,0.497467926113416, + +00:04:13, +1.51324482727782E-05,1.51324482727782E-05,1.52085817339707E-05,1.509236822324E-05,1.49235570885638E-05,1.4768239738223E-05,1.46356111226216E-05,1.45280926803187E-05,1.44626431435487E-05,1.44626431435487E-05, +1.51324482727782E-05,1.51324482727782E-05,1.52085817339707E-05,1.509236822324E-05,1.49235570885638E-05,1.4768239738223E-05,1.46356111226216E-05,1.45280926803187E-05,1.44626431435487E-05,1.44626431435487E-05, +9.48446255123264E-05,9.48446255123264E-05,9.52113799007074E-05,9.45476961912014E-05,9.3600484299036E-05,9.27221586635032E-05,9.19638703514575E-05,9.13441051580328E-05,9.09646981659491E-05,9.09646981659491E-05, +0.000592232594056166,0.000592232594056166,0.000593916302983942,0.000590145839304198,0.000584861887047573,0.000579920868084593,0.00057560537807214,0.00057204627026644,0.000569851781617574,0.000569851781617574, +0.00324847090861416,0.00324847090861416,0.00325454695012277,0.00323595482385083,0.00321042761362991,0.00318631500349607,0.00316496780111226,0.00314716610289281,0.00313607765676011,0.00313607765676011, +0.0153392888928799,0.0153392888928799,0.0153540356130883,0.0152763407010833,0.0151721685487196,0.0150725657280767,0.0149829513953626,0.0149071493039014,0.0148591941138136,0.0148591941138136, +0.0609434537781338,0.0609434537781338,0.06095236691747,0.0606845499645247,0.0603356864638621,0.0599973008629,0.0596868573298179,0.059419131942168,0.0592452947618887,0.0592452947618887, +0.198016030061573,0.198016030061573,0.197913199113751,0.197176172520868,0.19625242209655,0.195342108434985,0.194486895479414,0.193728217367317,0.193210783686351,0.193210783686351, +0.508726267178372,0.508726267178372,0.508255527689511,0.50668563834101,0.504839991028604,0.502996422300818,0.501214109534681,0.499560455405293,0.498304556880589,0.498304556880589, + +00:04:14, +1.55062258545888E-05,1.55062258545888E-05,1.55842033812557E-05,1.54660955358008E-05,1.52939501805171E-05,1.51352832049852E-05,1.49997270269352E-05,1.48898805799094E-05,1.48230624369971E-05,1.48230624369971E-05, +1.55062258545888E-05,1.55062258545888E-05,1.55842033812557E-05,1.54660955358008E-05,1.52939501805171E-05,1.51352832049852E-05,1.49997270269352E-05,1.48898805799094E-05,1.48230624369971E-05,1.48230624369971E-05, +9.68021853260659E-05,9.68021853260659E-05,9.71763222772959E-05,9.65042207334807E-05,9.55420121148991E-05,9.46482646125308E-05,9.38763006886614E-05,9.324561200057E-05,9.28597930619187E-05,9.28597930619187E-05, +0.000602312115725374,0.000602312115725374,0.000604023704298521,0.000600217261482899,0.000594867839539059,0.000589857559567607,0.000585479665224402,0.000581870504677348,0.000579646709982017,0.000579646709982017, +0.00329234747997979,0.00329234747997979,0.00329850383496542,0.00327978932195503,0.00325402984105339,0.00322966148805239,0.00320807925785456,0.00319008834475535,0.00317888966940497,0.00317888966940497, +0.0154945230798738,0.0154945230798738,0.0155094238025924,0.0154314304031405,0.0153266345964837,0.0152263004050513,0.0151359961052608,0.0150596374411884,0.0150113617181242,0.0150113617181242, +0.0613653731244219,0.0613653731244219,0.0613744253316532,0.0611062294652275,0.060756269901926,0.0604164291813289,0.0601045582193144,0.0598356875492484,0.0596612127254192,0.0596612127254192, +0.198813271810627,0.198813271810627,0.198710489668486,0.19797385896081,0.197049447586883,0.196137673658722,0.19528089853553,0.194521031768464,0.194003055046158,0.194003055046158, +0.509549729385042,0.509549729385042,0.509079951193961,0.507512775192128,0.505669030423961,0.503826422616431,0.502044817327436,0.500392077960507,0.499137283006601,0.499137283006601, + +00:04:15, +1.58873929481058E-05,1.58873929481058E-05,1.59672485981517E-05,1.58472270080306E-05,1.56716998380762E-05,1.5509628977691E-05,1.5371095867556E-05,1.5258882919015E-05,1.51906744635729E-05,1.51906744635729E-05, +1.58873929481058E-05,1.58873929481058E-05,1.59672485981517E-05,1.58472270080306E-05,1.56716998380762E-05,1.5509628977691E-05,1.5371095867556E-05,1.5258882919015E-05,1.51906744635729E-05,1.51906744635729E-05, +9.87902191558211E-05,9.87902191558211E-05,9.91718416552268E-05,9.84912682131504E-05,9.75139113900885E-05,9.66045576976233E-05,9.58187457422731E-05,9.51769992562591E-05,9.47846937723314E-05,9.47846937723314E-05, +0.000612510800671946,0.000612510800671946,0.000614250542336824,0.000610408009807422,0.000604992700401936,0.000599912594555548,0.000595471746504203,0.000591812107582857,0.000589558776625347,0.000589558776625347, +0.00333658232004765,0.00333658232004765,0.00334281943015098,0.00332398255142853,0.00329799017116138,0.00327336495041207,0.00325154650723628,0.00323336547968452,0.00322205612185333,0.00322205612185333, +0.0156504704364092,0.0156504704364092,0.0156655252390881,0.0155872343858907,0.0154818155802156,0.0153807495918481,0.0152897544701447,0.0152128387032056,0.0151642423542543,0.0151642423542543, +0.0617877824643518,0.0617877824643518,0.0617969726245549,0.0615284008418972,0.0611773510664741,0.0608360603728325,0.0605227659855013,0.0602527536268715,0.0600776436834605,0.0600776436834605, +0.19960889979296,0.19960889979296,0.199506165003881,0.198769930743329,0.197844869328312,0.196931649502625,0.196073325484619,0.195312281211718,0.19479376813341,0.19479376813341, +0.510369310869444,0.510369310869444,0.50990048902402,0.508336011965404,0.506494168994687,0.504652529992488,0.502871640802362,0.501219822371111,0.499966132497271,0.499966132497271, + +00:04:16, +1.62760566496413E-05,1.62760566496413E-05,1.63578248886583E-05,1.62358701037777E-05,1.60569131462743E-05,1.58913835934607E-05,1.57498236390229E-05,1.56352052750135E-05,1.55655845775222E-05,1.55655845775222E-05, +1.62760566496413E-05,1.62760566496413E-05,1.63578248886583E-05,1.62358701037777E-05,1.60569131462743E-05,1.58913835934607E-05,1.57498236390229E-05,1.56352052750135E-05,1.55655845775222E-05,1.55655845775222E-05, +0.00010080903060724,0.00010080903060724,0.000101198242304207,0.000100509143081282,9.95164861338127E-05,9.85913409851115E-05,9.77915075301721E-05,9.71385681406441E-05,9.67397011068286E-05,9.67397011068286E-05, +0.000622829340288258,0.000622829340288258,0.00062459750861741,0.000620718777021856,0.000615237163406044,0.000610086666781836,0.000605582314984417,0.000601871771567054,0.000599588673992835,0.000599588673992835, +0.00338117594803972,0.00338117594803972,0.00338749425084339,0.00336853503038898,0.00334230912968885,0.00331742592420979,0.00329537008903864,0.00327699805216189,0.00326557756134794,0.00326557756134794, +0.0158071282802683,0.0158071282802683,0.0158223372282722,0.0157437499531017,0.0156377088182638,0.0155359106322177,0.0154442238581364,0.0153667504759276,0.015317833417004,0.015317833417004, +0.0622106731911226,0.0622106731911226,0.0622200001778224,0.0619510554501736,0.0615989212956396,0.0612561857897159,0.0609414720039516,0.0606703215630725,0.0604945790242739,0.0604945790242739, +0.200402913384158,0.200402913384158,0.200300224494145,0.199564387224089,0.198638686568225,0.197724035120307,0.196864175410932,0.196101964712514,0.195582921910088,0.195582921910088, +0.511185039718786,0.511185039718786,0.510717169284967,0.509155376909729,0.507315434927459,0.505474772477805,0.503694607880809,0.502043716448655,0.500791133101576,0.500791133101576, + +00:04:17, +1.66723249598556E-05,1.66723249598556E-05,1.67560406624958E-05,1.66321331941431E-05,1.6449698097927E-05,1.62806544962269E-05,1.61360172409458E-05,1.60189541289173E-05,1.59478990360259E-05,1.59478990360259E-05, +1.66723249598556E-05,1.66723249598556E-05,1.67560406624958E-05,1.66321331941431E-05,1.6449698097927E-05,1.62806544962269E-05,1.61360172409458E-05,1.60189541289173E-05,1.59478990360259E-05,1.59478990360259E-05, +0.000102858924151616,0.000102858924151616,0.000103255829354559,0.000102558150652644,0.000101550041226637,0.000100608918420635,9.97948889554303E-05,9.91306207584774E-05,9.87251167664303E-05,9.87251167664303E-05, +0.00063326842334322,0.00063326842334322,0.00063506529201102,0.000631150253219358,0.00062560191968967,0.00062038046738273,0.000615812061174141,0.000612050186673674,0.000609737092000629,0.000609737092000629, +0.00342612886925243,0.00342612886925243,0.00343252879825079,0.00341344726295691,0.00338698722835416,0.00336184492909713,0.00333955052911297,0.00332098659277309,0.00330945452124618,0.00330945452124618, +0.0159644939170197,0.0159644939170197,0.0159798570637138,0.0159009743963563,0.0157943116165866,0.0156917808573314,0.0155994016246617,0.0155213701325345,0.0154721322883118,0.0154721322883118, +0.0626340367618971,0.0626340367618971,0.0626434994373918,0.0623741847102376,0.0620209719919408,0.0616767968481247,0.0613606677135673,0.0610883828088608,0.0609120101989436,0.0609120101989436, +0.201195312053396,0.201195312053396,0.201092667607477,0.200357227853113,0.199430898649479,0.198514829761195,0.197653447494598,0.196890081382421,0.196370515434691,0.196370515434691, +0.511996943760646,0.511996943760646,0.511530019822774,0.509970898012479,0.508132856148799,0.506293177862957,0.504513746227456,0.502863787749522,0.501612312314393,0.501612312314393, + +00:04:18, +1.70763067835134E-05,1.70763067835134E-05,1.71620052348252E-05,1.70361255572025E-05,1.68501635933838E-05,1.66775500365312E-05,1.65297844778425E-05,1.64102368652367E-05,1.63377249990771E-05,1.63377249990771E-05, +1.70763067835134E-05,1.70763067835134E-05,1.71620052348252E-05,1.70361255572025E-05,1.68501635933838E-05,1.66775500365312E-05,1.65297844778425E-05,1.64102368652367E-05,1.63377249990771E-05,1.63377249990771E-05, +0.000104940205109922,0.000104940205109922,0.000105344908781186,0.000104638597089616,0.0001036148824044,0.000102657594813124,0.000101829193790386,0.000101153460087858,0.0001007412433277,0.0001007412433277, +0.000643828735946724,0.000643828735946724,0.000645654578705126,0.000641703125806569,0.000636087657723702,0.000630794684861265,0.000626161672982563,0.000622348040369899,0.000620004717999508,0.000620004717999508, +0.00347144157511761,0.00347144157511761,0.00347792355968743,0.00345871973931781,0.00343202496492068,0.00340662247080294,0.00338408833944008,0.0033653316182665,0.00335368752107845,0.00335368752107845, +0.0161225646403572,0.0161225646403572,0.0161380820271954,0.0160589049953949,0.0159516212690957,0.0158483575861249,0.0157552851127932,0.0156766950337541,0.0156271363375964,0.0156271363375964, +0.0630578646975827,0.0630578646975827,0.0630674619132652,0.0627977801065863,0.0624434946220616,0.062097885027833,0.061780344616372,0.0615069288780171,0.0613299287211767,0.0613299287211767, +0.201986095361704,0.201986095361704,0.201883493904318,0.201148452173023,0.200221505008628,0.199304032768775,0.198441141009863,0.19767663042739,0.197156547860483,0.197156547860483, +0.512805050565783,0.512805050565783,0.512339068226898,0.510782603002341,0.508946460327882,0.507107773683064,0.505329083253074,0.503680063577666,0.502429697379231,0.502429697379231, + +00:04:19, +1.74881119291683E-05,1.74881119291683E-05,1.75758288258961E-05,1.74479573776548E-05,1.72584194402069E-05,1.70821794712476E-05,1.69312340589025E-05,1.68091617717719E-05,1.67351705292856E-05,1.67351705292856E-05, +1.74881119291683E-05,1.74881119291683E-05,1.75758288258961E-05,1.74479573776548E-05,1.72584194402069E-05,1.70821794712476E-05,1.69312340589025E-05,1.68091617717719E-05,1.67351705292856E-05,1.67351705292856E-05, +0.000107053179636836,0.000107053179636836,0.000107465787387527,0.000106750789386089,0.000105711316242107,0.000104737675818765,0.000103894726660699,0.000103207389964351,0.000102788384226889,0.000102788384226889, +0.000654510961514615,0.000654510961514615,0.000656366052169031,0.000652378079468566,0.000646695063276308,0.000641330005051738,0.000636631835683355,0.000632766017510702,0.000630392236739189,0.000630392236739189, +0.00351711454326422,0.00351711454326422,0.00352367900863627,0.0035043529357851,0.00347742282325919,0.00345175904119467,0.00342898401819047,0.00341003363161277,0.0033982770666074,0.0033982770666074, +0.0162813377324366,0.0162813377324366,0.0162970093890496,0.016217539018454,0.0161096350579976,0.0160056381256386,0.0159118716535889,0.0158327225282001,0.0157828429220961,0.0157828429220961, +0.0634821485826075,0.0634821485826075,0.0634918791792835,0.0632218331878026,0.0628664807166266,0.0625194418720265,0.0622004942772997,0.0619259513468862,0.0617483261670984,0.0617483261670984, +0.202775262960257,0.202775262960257,0.202672703035634,0.201938059817315,0.201010505174189,0.200091643578853,0.199227255323367,0.198461611146029,0.197941018433766,0.197941018433766, +0.513609387450903,0.513609387450903,0.513144341833031,0.511590519352116,0.509756274879305,0.507918587220531,0.506140646117245,0.504492570987322,0.503243315290915,0.503243315290915, + +00:04:20, +1.79078511087746E-05,1.79078511087746E-05,1.79976225606222E-05,1.78677397463991E-05,1.76745763527783E-05,1.74946529632339E-05,1.73404755976795E-05,1.72158380393326E-05,1.71403445916114E-05,1.71403445916114E-05, +1.79078511087746E-05,1.79078511087746E-05,1.79976225606222E-05,1.78677397463991E-05,1.76745763527783E-05,1.74946529632339E-05,1.73404755976795E-05,1.72158380393326E-05,1.71403445916114E-05,1.71403445916114E-05, +0.000109198154704747,0.000109198154704747,0.000109618772789493,0.000108895035351351,0.00010783965013782,0.00010684946792495,0.000105991793029391,0.000105292715065088,0.000104866843744067,0.000104866843744067, +0.000665315780734212,0.000665315780734212,0.000667200393119492,0.000663175796134364,0.000657424819378176,0.000651987111084726,0.000647223231879602,0.000643304800303714,0.000640900330333149,0.000640900330333149, +0.00356314823758084,0.00356314823758084,0.0035697956048125,0.00355034731486382,0.0035231812734111,0.00349725511834043,0.00347423804978538,0.00345509312206524,0.00344322364988801,0.00344322364988801, +0.0164408104642076,0.0164408104642076,0.0164566364084924,0.0163768737226005,0.0162683502541288,0.0161636197713537,0.0160691585664272,0.0159894499527071,0.0159392493872027,0.0159392493872027, +0.0639068800646932,0.0639068800646932,0.063916742872895,0.0636463355663221,0.0632899218699735,0.0629414589870823,0.0626211083239785,0.0623454418541648,0.0621671941750426,0.0621671941750426, +0.203562814588692,0.203562814588692,0.203460294741221,0.202726050508661,0.201797898764928,0.200877661717853,0.200011789892443,0.199245022927901,0.198723926492176,0.198723926492176, +0.514409981481394,0.514409981481394,0.513945867725833,0.512394674281483,0.510562326965828,0.508725645507762,0.506948461731062,0.505301336785674,0.504053192798247,0.504053192798247, + +00:04:21, +1.83356359372287E-05,1.83356359372287E-05,1.84274984680859E-05,1.8295584660039E-05,1.80987459518336E-05,1.79150815809101E-05,1.77576196117109E-05,1.76303757613857E-05,1.75533570530254E-05,1.75533570530254E-05, +1.83356359372287E-05,1.83356359372287E-05,1.84274984680859E-05,1.8295584660039E-05,1.80987459518336E-05,1.79150815809101E-05,1.77576196117109E-05,1.76303757613857E-05,1.75533570530254E-05,1.75533570530254E-05, +0.000111375438087758,0.000111375438087758,0.000111804173399399,0.000111071643593965,0.000110000192296531,0.000108993278434216,0.000108120699180872,0.000107409740892856,0.000106976926987235,0.000106976926987235, +0.000676243871530343,0.000676243871530343,0.000678158279486894,0.000674096954942948,0.000668277606288279,0.000662766683352644,0.000657936541469265,0.000653965068274631,0.000651529678223986,0.000651529678223986, +0.00360954310827908,0.00360954310827908,0.00361627379422771,0.00359670332531515,0.00356930077165252,0.00354311116657185,0.00351985090495861,0.00350051056522105,0.00348852774932848,0.00348852774932848, +0.0166009800957423,0.0166009800957423,0.0166169603339528,0.0165369063540626,0.0164277641172893,0.0163222998075242,0.0162271431593381,0.0161468746326608,0.0160963530667928,0.0160963530667928, +0.0643320508546227,0.0643320508546227,0.0643420446949203,0.0640712789181951,0.06371380973992,0.0633639280423432,0.0630421784465112,0.0627653921006861,0.0625865244453389,0.0625865244453389, +0.204348750073457,0.204348750073457,0.204246268848045,0.203512424057233,0.202583685488177,0.201662086801132,0.200794744263439,0.200026865251861,0.199505271463015,0.199505271463015, +0.515206859474034,0.515206859474034,0.514743672741615,0.513195094759728,0.511364643501079,0.509528975329843,0.507752556759792,0.506106387535505,0.504859356406628,0.504859356406628, + +00:04:22, +1.87715789318383E-05,1.87715789318383E-05,1.88655694809708E-05,1.87316050203156E-05,1.85310407639247E-05,1.83435772977661E-05,1.81827775220659E-05,1.80528859336313E-05,1.79743186820995E-05,1.79743186820995E-05, +1.87715789318383E-05,1.87715789318383E-05,1.88655694809708E-05,1.87316050203156E-05,1.85310407639247E-05,1.83435772977661E-05,1.81827775220659E-05,1.80528859336313E-05,1.79743186820995E-05,1.79743186820995E-05, +0.000113585338345665,0.000113585338345665,0.000114022298409887,0.000113280923505641,0.000112193251714027,0.000111169415448174,0.000110281752204955,0.000109558773760175,0.000109118939876427,0.000109118939876427, +0.000687295909031925,0.000687295909031925,0.000689240386381945,0.000685142232209848,0.000679254101460186,0.000673669399475839,0.000668772441611181,0.000664747498233143,0.000662280957149306,0.000662280957149306, +0.00365629959195756,0.00365629959195756,0.00366311400925488,0.00364342140222164,0.00361578176055897,0.00358932763654777,0.00356582304081916,0.00354628642308314,0.00353418982975189,0.00353418982975189, +0.0167618438765596,0.0167618438765596,0.0167779784033978,0.0166976341485568,0.0165878738965709,0.0164816755075063,0.016385822729331,0.0163049938823257,0.016254151283555,0.016254151283555, +0.0647576527260051,0.0647576527260051,0.0647677764093127,0.0644966549828448,0.0641381360475277,0.0637868407698889,0.0634636963972504,0.0631857938491999,0.0630063087400946,0.0630063087400946, +0.205133069326182,0.205133069326182,0.205030625268599,0.204297180359059,0.203367865138178,0.202444918531332,0.201576118070078,0.200807137684402,0.200285052861602,0.200285052861602, +0.51600004799966,0.51600004799966,0.515537783471002,0.513991807508449,0.512163251152226,0.510328603227187,0.5085529576255,0.506907749557801,0.505661832380656,0.505661832380656, + +00:04:23, +1.9215793511721E-05,1.9215793511721E-05,1.9311949434923E-05,1.91759146334694E-05,1.89715742208105E-05,1.87802529917964E-05,1.86160616528226E-05,1.84834804535081E-05,1.84033411485242E-05,1.84033411485242E-05, +1.9215793511721E-05,1.9215793511721E-05,1.9311949434923E-05,1.91759146334694E-05,1.89715742208105E-05,1.87802529917964E-05,1.86160616528226E-05,1.84834804535081E-05,1.84033411485242E-05,1.84033411485242E-05, +0.00011582816480795,0.00011582816480795,0.000116273457777843,0.000115523185245099,0.000114419138160751,0.000113378187851428,0.000112475259980859,0.000111740120773362,0.000111293189127799,0.000111293189127799, +0.000698472565539068,0.000698472565539068,0.000700447386062911,0.000696312301394249,0.000690354979508904,0.000684695934269216,0.000679731606691581,0.000675652764239393,0.000673154841108136,0.000673154841108136, +0.00370341811166675,0.00370341811166675,0.00371031666869411,0.00369050196705322,0.00366262466907092,0.00363590496531862,0.00361215490091459,0.00359242114412292,0.00358021034245865,0.00358021034245865, +0.0169233990459464,0.0169233990459464,0.0169396878446545,0.0168590543316106,0.0167486768306821,0.0166417441340823,0.0165451945627177,0.0164638050051677,0.0164126413493131,0.0164126413493131, +0.0651836775150363,0.0651836775150363,0.0651939298429158,0.0649224555628226,0.0645628925768618,0.0642101889643032,0.0638856539905714,0.063606638924148,0.0634265388829735,0.0634265388829735, +0.205915772342074,0.205915772342074,0.205813363999295,0.205080319394403,0.204150437594447,0.203226156696748,0.202355911031831,0.201585839878041,0.201063270289653,0.201063270289653, +0.51678957338581,0.51678957338581,0.516328226261558,0.514784839004213,0.512958176342619,0.511124555498151,0.509349690509654,0.507705448934336,0.506460646746687,0.506460646746687, + +00:04:24, +1.96683939971323E-05,1.96683939971323E-05,1.97667530678427E-05,1.96286282095305E-05,1.94204606587766E-05,1.9225222444865E-05,1.9057585230473E-05,1.89222721196263E-05,1.88405370225569E-05,1.88405370225569E-05, +1.96683939971323E-05,1.96683939971323E-05,1.97667530678427E-05,1.96286282095305E-05,1.94204606587766E-05,1.9225222444865E-05,1.9057585230473E-05,1.89222721196263E-05,1.88405370225569E-05,1.88405370225569E-05, +0.000118104227557749,0.000118104227557749,0.000118557962208311,0.000117798739721933,0.00011667816216566,0.000115619905295491,0.000114701531161215,0.000113954089816589,0.000113499982237716,0.000113499982237716, +0.000709774510490703,0.000709774510490703,0.000711779947903381,0.000707607833066625,0.000701580912178262,0.000695846959709398,0.000690814708291152,0.000686681537570964,0.000684152001327865,0.000684152001327865, +0.00375089907697448,0.00375089907697448,0.00375788217783897,0.00373794542773381,0.00370982991256004,0.00368284357639157,0.00365884691529514,0.00363891516334379,0.00362658972528965,0.00362658972528965, +0.0170856428332746,0.0170856428332746,0.0171020858757278,0.017021164118882,0.0169101701482692,0.0168025029397819,0.0167052559354328,0.0166233052941739,0.0165718205653464,0.0165718205653464, +0.0656101171202563,0.0656101171202563,0.0656204968852168,0.0653486725235588,0.0649880711747469,0.0646339644824375,0.06430804310264,0.0640279192114376,0.063847206758971,0.063847206758971, +0.206696859198341,0.206696859198341,0.206594485118872,0.205861841226171,0.204931402820174,0.204005801169734,0.203134122952324,0.202362971569723,0.201839923433682,0.201839923433682, +0.517575461719329,0.517575461719329,0.517115027220385,0.515574215481199,0.513749445254403,0.511916858201626,0.510142781355688,0.508499511510216,0.507255825295373,0.507255825295373, + +00:04:25, +2.01294956087226E-05,2.01294956087226E-05,2.02300960191039E-05,2.00898613615383E-05,1.9877815317884E-05,1.96786003419978E-05,1.9507462383258E-05,1.93693746311317E-05,1.92860197743977E-05,1.92860197743977E-05, +2.01294956087226E-05,2.01294956087226E-05,2.02300960191039E-05,2.00898613615383E-05,1.9877815317884E-05,1.96786003419978E-05,1.9507462383258E-05,1.93693746311317E-05,1.92860197743977E-05,1.92860197743977E-05, +0.000120413837415836,0.000120413837415836,0.000120876123138404,0.00012010789858047,0.000118970635000074,0.000117894878182694,0.000116960875156052,0.000116200989535936,0.000115739627466826,0.000115739627466826, +0.000721202410432745,0.000721202410432745,0.00072323873836056,0.000719029494876923,0.000712932568308822,0.000707123144902413,0.00070202241515261,0.000697834486690391,0.000695273106231711,0.000695273106231711, +0.00379874288403216,0.00379874288403216,0.0038058109285436,0.00378575217870879,0.00375739789289608,0.00373014387979638,0.00370589950057854,0.00368576890234524,0.00367332840269018,0.00367332840269018, +0.0172485724583142,0.0172485724583142,0.0172651697051145,0.0171839607164749,0.0170723510682334,0.0169639491671994,0.01686600411335,0.0167834920321687,0.0167316862227049,0.0167316862227049, +0.0660369635023025,0.0660369635023025,0.0660474694880966,0.0657752977931106,0.06541366375052,0.0650581592431701,0.0647308556711774,0.0644496266582089,0.0642683043141843,0.0642683043141843, +0.207476330052641,0.207476330052641,0.207373988786842,0.206641745998343,0.205710760860645,0.20478385190512,0.203910753717768,0.203138532579256,0.202615012063437,0.202615012063437, +0.518357738848946,0.518357738848946,0.517898212216689,0.516359962933798,0.514537083831092,0.512705537159587,0.510932255871545,0.509289962896403,0.50804739358416,0.50804739358416, + +00:04:26, +2.05992144667254E-05,2.05992144667254E-05,2.07020948287049E-05,2.05597306046913E-05,2.03437543411466E-05,2.01405022706053E-05,1.99658081404315E-05,1.98249025869976E-05,1.97399037734965E-05,1.97399037734965E-05, +2.05992144667254E-05,2.05992144667254E-05,2.07020948287049E-05,2.05597306046913E-05,2.03437543411466E-05,2.01405022706053E-05,1.99658081404315E-05,1.98249025869976E-05,1.97399037734965E-05,1.97399037734965E-05, +0.000122757305924588,0.000122757305924588,0.000123228252721221,0.000122450974183633,0.000121296868661534,0.000120203417650102,0.000119253602116794,0.000118481129323443,0.000118012433824137,0.000118012433824137, +0.000732756928986771,0.000732756928986771,0.00073482442094409,0.00073057795152326,0.000724410613806321,0.00071852515605192,0.000713355393148815,0.000709112277213194,0.000706518821406705,0.000706518821406705, +0.0038469499156416,0.0038469499156416,0.00385410329929046,0.00383392260101291,0.00380532899851455,0.00377780627215188,0.00375331306001553,0.00373298276938779,0.0037204267857745,0.0037204267857745, +0.0174121851315433,0.0174121851315433,0.0174289365321142,0.0173474413212506,0.0172352168000446,0.0171260800493072,0.0170274363525941,0.0169443624921255,0.0168922356025223,0.0168922356025223, +0.0664642086836609,0.0664642086836609,0.0664748396655768,0.0662023233619068,0.0658396622757794,0.0654827652271628,0.0651540836952212,0.064871753272601,0.0646898235555805,0.0646898235555805, +0.208254185141554,0.208254185141554,0.208151875241946,0.207420033934427,0.206488511841681,0.205560308938664,0.204685803295413,0.203912522807764,0.203388536030349,0.203388536030349, +0.519136430387822,0.519136430387822,0.518677806884311,0.51714210711918,0.51532111778012,0.513490617959617,0.511718139532179,0.510076828472201,0.508835376939767,0.508835376939767, + +00:04:27, +2.10776675900744E-05,2.10776675900744E-05,2.11828669363489E-05,2.1038353355426E-05,2.08183947736394E-05,2.0611044719635E-05,2.04327384314542E-05,2.02889714852477E-05,2.02023042877888E-05,2.02023042877888E-05, +2.10776675900744E-05,2.10776675900744E-05,2.11828669363489E-05,2.1038353355426E-05,2.08183947736394E-05,2.0611044719635E-05,2.04327384314542E-05,2.02889714852477E-05,2.02023042877888E-05,2.02023042877888E-05, +0.000125134945331969,0.000125134945331969,0.000125614663809765,0.000124828279596806,0.00012365717585766,0.000122545835553419,0.000121580022920248,0.000120794819301154,0.000120318711051084,0.000120318711051084, +0.000744438726819226,0.000744438726819226,0.000746537656185395,0.000742253864721154,0.000736015711610651,0.00073005365642795,0.000724814305251393,0.000720515571876436,0.000717889809572201,0.000717889809572201, +0.00389552054132259,0.00389552054132259,0.00390275965525872,0.00388245706233905,0.00385362360448488,0.00382583113673326,0.00380108798355609,0.00378055715945847,0.00376788527239116,0.00376788527239116, +0.0175764780544541,0.0175764780544541,0.017593383547135,0.0175116031211363,0.0173987645440509,0.0172888928097654,0.0171895498998502,0.0171059139374756,0.0170534659763245,0.0170534659763245, +0.0668918447484127,0.0668918447484127,0.0669025994935629,0.0666297412824887,0.0662660587841308,0.0659077744766138,0.0655777192348836,0.0652942911235134,0.0651117565507606,0.0651117565507606, +0.209030424779077,0.209030424779077,0.208928144800646,0.208196705335943,0.207264655968112,0.206335172385529,0.205459271732025,0.204684942236168,0.204160495266015,0.204160495266015, +0.519911561716066,0.519911561716066,0.519453836624236,0.517920673559842,0.516101572575359,0.514272125957409,0.512500457582036,0.510860133387715,0.509619800460626,0.509619800460626, + +00:04:28, +2.15649728954521E-05,2.15649728954521E-05,2.16725306804544E-05,2.15258479304268E-05,2.13018545615356E-05,2.10903450786528E-05,2.09083700851179E-05,2.0761697722109E-05,2.06733374828625E-05,2.06733374828625E-05, +2.15649728954521E-05,2.15649728954521E-05,2.16725306804544E-05,2.15258479304268E-05,2.13018545615356E-05,2.10903450786528E-05,2.09083700851179E-05,2.0761697722109E-05,2.06733374828625E-05,2.06733374828625E-05, +0.000127547068575507,0.000127547068575507,0.00012803566994086,0.000127240128571704,0.000126051869990008,0.000124922444450904,0.0001239404491526,0.000123142370305169,0.000122658769605608,0.000122658769605608, +0.000756248461611151,0.000756248461611151,0.000758379101607551,0.000754057893173289,0.000747748521665354,0.00074170930633618,0.000736399811499896,0.000732045030507795,0.000729386730548902,0.000729386730548902, +0.00394445511738099,0.00394445511738099,0.00395178034839323,0.00393135591710748,0.0039022820725794,0.00387421884353981,0.00384922464791619,0.00382849245433705,0.00381570424718886,0.00381570424718886, +0.0177414484198551,0.0177414484198551,0.0177585079319977,0.0176764432954284,0.0175629914917847,0.0174523846632279,0.0173523419926688,0.0172681436224128,0.0172153746063343,0.0172153746063343, +0.0673198638419788,0.0673198638419788,0.0673307411095854,0.0670575436692486,0.0666928453709298,0.0663331790950076,0.0660017544111053,0.0657172323403645,0.0655340954277202,0.0655340954277202, +0.209805049355148,0.209805049355148,0.209702797855637,0.208971760580929,0.208039193522276,0.207108442438775,0.206231159152396,0.205455790923694,0.204930889780696,0.204930889780696, +0.52068315798322,0.52068315798322,0.520226326607068,0.518695687546113,0.516878473459606,0.515050086279222,0.5132792350375,0.511639902566284,0.510400689019302,0.510400689019302, + +00:04:29, +2.2061249196269E-05,2.2061249196269E-05,2.21712052970979E-05,2.2022333545566E-05,2.17942525510752E-05,2.15785216368562E-05,2.13928208285997E-05,2.12431985910952E-05,2.11531204210554E-05,2.11531204210554E-05, +2.2061249196269E-05,2.2061249196269E-05,2.21712052970979E-05,2.2022333545566E-05,2.17942525510752E-05,2.15785216368562E-05,2.13928208285997E-05,2.12431985910952E-05,2.11531204210554E-05,2.11531204210554E-05, +0.000129993989266282,0.000129993989266282,0.000130491585319086,0.000129686835530253,0.000128481265137941,0.000127333557587292,0.000126335193093408,0.000125524093869694,0.000125032920646224,0.000125032920646224, +0.000768186788028421,0.000768186788028421,0.000770349411695681,0.00076599069253979,0.000759609700887651,0.000753492763087727,0.000748112568971469,0.000743701309995163,0.000741010241228408,0.000741010241228408, +0.00399375398697755,0.00399375398697755,0.00400116571747417,0.00398061950653575,0.00395130475134276,0.00392296974936346,0.00389772341664537,0.00387678902266291,0.00386388408168308,0.00386388408168308, +0.0179070934121699,0.0179070934121699,0.0179243068602341,0.017841959015094,0.017727894826265,0.0176165528156449,0.0175158098597672,0.0174310487921946,0.0173779587457734,0.0173779587457734, +0.0677482581708609,0.0677482581708609,0.067759256712537,0.0674857226981654,0.0671200141930218,0.0667589712468614,0.0664261814054081,0.0661405691128469,0.0659568323746066,0.0659568323746066, +0.210578059334189,0.210578059334189,0.210475834874381,0.209745200122466,0.20881212486253,0.207880119367886,0.207001465757861,0.206225069006395,0.205699719661848,0.205699719661848, +0.521451244110715,0.521451244110715,0.520995301775475,0.519467174138637,0.517651845447043,0.515824523824322,0.514054496689314,0.512416160706881,0.511178067264877,0.511178067264877, + +00:04:30, +2.25666162015741E-05,2.25666162015741E-05,2.26790109188863E-05,2.25279303147749E-05,2.22957084874635E-05,2.20756935820169E-05,2.18862092864476E-05,2.17335922820205E-05,2.16417710604828E-05,2.16417710604828E-05, +2.25666162015741E-05,2.25666162015741E-05,2.26790109188863E-05,2.25279303147749E-05,2.22957084874635E-05,2.20756935820169E-05,2.18862092864476E-05,2.17335922820205E-05,2.16417710604828E-05,2.16417710604828E-05, +0.000132476021672916,0.000132476021672916,0.000132982724800715,0.000132168715548474,0.000130945676042501,0.000129779488877715,0.000128764567699605,0.000127940302211099,0.000127441476016105,0.000127441476016105, +0.000780254357692513,0.000780254357692513,0.000782449237867861,0.000778052915409033,0.000771599903138993,0.000765404680969467,0.000759953231751042,0.000755485064256751,0.000752760995543275,0.000752760995543275, +0.0040434174801972,0.0040434174801972,0.0040509160881872,0.00403024815870916,0.00400069197616211,0.00397208419785782,0.00394658464019472,0.00392544722000243,0.00391242513432327,0.00391242513432327, +0.0180734102077322,0.0180734102077322,0.0180907774973834,0.0180081474430672,0.0178934717222961,0.0177813944645617,0.0176799507213275,0.0175946266834401,0.01754121563916,0.01754121563916, +0.0681770200023799,0.0681770200023799,0.0681881385624074,0.0679142706065367,0.0675475574684789,0.0671851431574686,0.0668509924596421,0.0665642936906796,0.0663799596394744,0.0663799596394744, +0.211349455253671,0.211349455253671,0.211247256397667,0.210517024487237,0.209583450421797,0.208650203517313,0.207770191824856,0.206992776695711,0.206466985072672,0.206466985072672, +0.522215844794302,0.522215844794302,0.521760786846608,0.520235158170822,0.518421713325666,0.516595463267388,0.51482626710497,0.513188932286484,0.511951959625311,0.511951959625311, + +00:04:31, +2.30811945148977E-05,2.30811945148977E-05,2.31960685737618E-05,2.30427592488467E-05,2.28063430137014E-05,2.25819809993551E-05,2.23886549794963E-05,2.2232997879946E-05,2.21394082539973E-05,2.21394082539973E-05, +2.30811945148977E-05,2.30811945148977E-05,2.31960685737618E-05,2.30427592488467E-05,2.28063430137014E-05,2.25819809993551E-05,2.23886549794963E-05,2.2232997879946E-05,2.21394082539973E-05,2.21394082539973E-05, +0.00013499348070558,0.00013499348070558,0.000135509403877661,0.000134686084340383,0.000133445418090301,0.000132260552891642,0.000131228886589507,0.000130391308211977,0.000129884748227167,0.000129884748227167, +0.000792451819151774,0.000792451819151774,0.00079467922844655,0.000790245211268963,0.000783719779196132,0.000777445711214869,0.000771922450902036,0.000767396944211715,0.000764639644437586,0.000764639644437586, +0.00409344591411898,0.00409344591411898,0.00410103177319423,0.00408024218865182,0.0040504440693377,0.00402156251960783,0.00399580865598563,0.00397446738891706,0.00396132775056057,0.00396132775056057, +0.0182403959750775,0.0182403959750775,0.0182579170012839,0.0181750057345426,0.0180597193467626,0.0179469067994135,0.0178447617892911,0.0177588745244239,0.0177051425226029,0.0177051425226029, +0.0686061416644119,0.0686061416644119,0.0686173789800157,0.068343179692709,0.0679754674763338,0.0676116871126404,0.0672761798757323,0.066988398383358,0.0668034695300358,0.0668034695300358, +0.212119237722709,0.212119237722709,0.212017063038194,0.211287234274098,0.210353170706133,0.209418695305043,0.20853733770349,0.207758914277037,0.207232686250682,0.207232686250682, +0.522976984506445,0.522976984506445,0.522522806314489,0.520999664251266,0.519188101659682,0.517362929060893,0.51559457063107,0.513958241562427,0.512722390309773,0.512722390309773, + +00:04:32, +2.36051056330249E-05,2.36051056330249E-05,2.37225001837389E-05,2.35669422541706E-05,2.33262776693463E-05,2.3097504870345E-05,2.29002783237162E-05,2.27415353640559E-05,2.26461517480801E-05,2.26461517480801E-05, +2.36051056330249E-05,2.36051056330249E-05,2.37225001837389E-05,2.35669422541706E-05,2.33262776693463E-05,2.3097504870345E-05,2.29002783237162E-05,2.27415353640559E-05,2.26461517480801E-05,2.26461517480801E-05, +0.000137546681900009,0.000137546681900009,0.000138071938661444,0.000137239258241905,0.000135980807297418,0.000134777064836823,0.000133728464026837,0.000132877425405224,0.000132363050444162,0.000132363050444162, +0.000804779817853214,0.000804779817853214,0.000807040028630531,0.000802568226478941,0.00079596997672271,0.000789616501975352,0.000784020874437583,0.000779437597751294,0.000776646835838042,0.000776646835838042, +0.00414383959288652,0.00414383959288652,0.00415151307220466,0.00413060189839823,0.00410056134015411,0.0040714050322,0.00404539578847899,0.00402384985903197,0.00401059226291626,0.00401059226291626, +0.0184080478752311,0.0184080478752311,0.0184257225223615,0.0183425310372646,0.0182266348589208,0.0181130870018173,0.0180102402676489,0.0179237895353665,0.0178697366240925,0.0178697366240925, +0.0690356155451205,0.0690356155451205,0.0690469703467392,0.0687724423158051,0.0684037365563112,0.0680385954584427,0.0677017360154211,0.0674128755598997,0.0672273544134103,0.0672273544134103, +0.212887407420671,0.212887407420671,0.212785255479173,0.212055830152678,0.211121286293311,0.21018559522119,0.209302903816137,0.208523482108323,0.207996823506304,0.207996823506304, +0.523734687498695,0.523734687498695,0.523281384452372,0.521760716766141,0.519951034791889,0.518126945437447,0.516359431395663,0.514724112574713,0.513489383310943,0.513489383310943, + +00:04:33, +2.41384719447028E-05,2.41384719447028E-05,2.4258428563573E-05,2.41006021313981E-05,2.3855634889206E-05,2.36223870714525E-05,2.34212006289921E-05,2.32593256064677E-05,2.31621221816636E-05,2.31621221816636E-05, +2.41384719447028E-05,2.41384719447028E-05,2.4258428563573E-05,2.41006021313981E-05,2.3855634889206E-05,2.36223870714525E-05,2.34212006289921E-05,2.32593256064677E-05,2.31621221816636E-05,2.31621221816636E-05, +0.000140135941401532,0.000140135941401532,0.000140670645867164,0.000139828554194796,0.000138552160293311,0.000137329340543245,0.000136263614904751,0.000135398967958115,0.000134876696468784,0.000134876696468784, +0.000817238996114801,0.000817238996114801,0.000819532280467371,0.000815022604242099,0.000808351140241366,0.000801917698292145,0.000796249147292261,0.000791607669710452,0.000788783214625552,0.000788783214625552, +0.00419459880777901,0.00419459880777901,0.00420236027204727,0.00418132757706538,0.00415104408495206,0.00412161204029317,0.00409534634924501,0.00407359494710519,0.00406021899105062,0.00406021899105062, +0.018576363061992,0.018576363061992,0.0185941912039146,0.018510720491814,0.0183942154106863,0.0182799322458595,0.0181763833527291,0.0180893689287215,0.0180349951637877,0.0180349951637877, +0.0694654340926882,0.0694654340926882,0.0694769051042412,0.0692020508954483,0.0688323571085565,0.0684658606009327,0.0681276533000084,0.0678377176485889,0.0676516067158704,0.0676516067158704, +0.213653965095816,0.213653965095816,0.213551834472958,0.212822812862004,0.211887797831437,0.210950903826609,0.210066890656058,0.209286480618693,0.208759397221493,0.208759397221493, +0.524488977804034,0.524488977804034,0.524036545315078,0.522518339881566,0.520710536846012,0.518887536412129,0.517120873310549,0.515486569148303,0.514252962407293,0.514252962407293, + +00:04:34, +2.46814167292801E-05,2.46814167292801E-05,2.48039774193629E-05,2.46438625740423E-05,2.43945380019637E-05,2.41567503728044E-05,2.3951544097836E-05,2.37864903709724E-05,2.36874410848873E-05,2.36874410848873E-05, +2.46814167292801E-05,2.46814167292801E-05,2.48039774193629E-05,2.46438625740423E-05,2.43945380019637E-05,2.41567503728044E-05,2.3951544097836E-05,2.37864903709724E-05,2.36874410848873E-05,2.36874410848873E-05, +0.000142761575949112,0.000142761575949112,0.000143305842797503,0.000142454289730593,0.000141159794304748,0.000139917696447108,0.000138834654729883,0.000137956250656404,0.000137426000723788,0.000137426000723788, +0.000829829993098267,0.000829829993098267,0.000832156622826383,0.00082760898457821,0.000820863911106359,0.000814349942068679,0.000808607911294332,0.000803907801840036,0.000801049422607339,0.000801049422607339, +0.00424572383728272,0.00424572383728272,0.00425357364674244,0.00423241950092533,0.00420189258720062,0.0041721838356898,0.00414566063703354,0.00412370295709735,0.00411020824183243,0.00411020824183243, +0.0187453386822145,0.0187453386822145,0.0187633201823958,0.01867957123189,0.0185624581469184,0.0184474396983806,0.0183431882334807,0.018255609909459,0.0182009153543002,0.0182009153543002, +0.0698955898150441,0.0698955898150441,0.0699071757541951,0.0696319979114855,0.0692613215933627,0.068893475005891,0.0685539242100893,0.0682629171367176,0.0680762189225849,0.0680762189225849, +0.214418911563947,0.214418911563947,0.214316800839691,0.213588183209139,0.21265270603758,0.211714621751531,0.21082929878604,0.210047910307086,0.209520407848372,0.209520407848372, +0.525239879239184,0.525239879239184,0.524788312741296,0.523272557545939,0.521466631729026,0.519644725784777,0.51787892007356,0.516245634895387,0.515013151165334,0.515013151165334, + +00:04:35, +2.52340641552793E-05,2.52340641552793E-05,2.53592713470848E-05,2.51968481670094E-05,2.49431112287369E-05,2.47007184367905E-05,2.44914318240316E-05,2.432315231171E-05,2.42222308777864E-05,2.42222308777864E-05, +2.52340641552793E-05,2.52340641552793E-05,2.53592713470848E-05,2.51968481670094E-05,2.49431112287369E-05,2.47007184367905E-05,2.44914318240316E-05,2.432315231171E-05,2.42222308777864E-05,2.42222308777864E-05, +0.000145423902859413,0.000145423902859413,0.000145977847326732,0.00014511678295457,0.000143804027139754,0.000142542449574817,0.000141441899606407,0.00014054958888843,0.000140011278237117,0.000140011278237117, +0.00084255344478242,0.00084255344478242,0.000844913691372102,0.000840328004297066,0.000833508927476698,0.000826913872043469,0.000821097805138493,0.000816338632779429,0.000813446098489543,0.000813446098489543, +0.00429721494716301,0.00429721494716301,0.00430515345757501,0.00428387793347836,0.00425310711756997,0.00422312069740776,0.0041963389378449,0.00417417418024192,0.00416056030940895,0.00416056030940895, +0.0189149718760852,0.0189149718760852,0.018933106587689,0.0188490803845892,0.0187313602057007,0.0186156065192559,0.0185106520917537,0.0184225096753457,0.0183674944009738,0.0183674944009738, +0.0703260752795898,0.0703260752795898,0.0703377748580066,0.0700622759037074,0.0696906225308936,0.0693214311985524,0.0689805412852893,0.0686884665703244,0.0685011835773598,0.0685011835773598, +0.215182247707093,0.215182247707093,0.215080155465976,0.214351942067851,0.213416011696429,0.212476749694223,0.211590128837056,0.210807771740919,0.210279855907892,0.210279855907892, +0.525987415406898,0.525987415406898,0.525536710355868,0.524023393492246,0.522219343133441,0.520398537142257,0.518633595170816,0.517001333217611,0.515769972941839,0.515769972941839, + +00:04:36, +2.57965392789033E-05,2.57965392789033E-05,2.5924435831062E-05,2.57596843850638E-05,2.55014796815681E-05,2.52544158165991E-05,2.50409877912119E-05,2.48694349717758E-05,2.47666148689122E-05,2.47666148689122E-05, +2.57965392789033E-05,2.57965392789033E-05,2.5924435831062E-05,2.57596843850638E-05,2.55014796815681E-05,2.52544158165991E-05,2.50409877912119E-05,2.48694349717758E-05,2.47666148689122E-05,2.47666148689122E-05, +0.000148123240010881,0.000148123240010881,0.000148686977884747,0.000147816352529729,0.00014648517717158,0.000145203917526986,0.000144085666220112,0.000143179298629251,0.000142632844626054,0.000142632844626054, +0.000855409983936959,0.000855409983936959,0.000857804118538265,0.00085318029697237,0.000846286824289789,0.000839610123763519,0.000833719464359129,0.000828900798029721,0.000825973877850335,0.000825973877850335, +0.00434907239053676,0.00434907239053676,0.00435709995316755,0.00433570312552652,0.00430468793400473,0.00427442289175266,0.00424738152500126,0.00422500889511592,0.00421127547527638,0.00421127547527638, +0.0190852597773969,0.0190852597773969,0.0191035475433843,0.0190192450706811,0.0189009187186181,0.018784429861673,0.0186787721025754,0.0185900654172211,0.0185347295021619,0.0185347295021619, +0.0707568831129235,0.0707568831129235,0.0707686950365341,0.0704928774715661,0.0701202525009062,0.0697497217633341,0.0694074971239974,0.0691143585539314,0.0689264932823773,0.0689264932823773, +0.215943974472207,0.215943974472207,0.215841899303569,0.215114090377297,0.214177715658969,0.213237288419663,0.212349381506953,0.211566065554772,0.211037741988516,0.211037741988516, +0.526731609698218,0.526731609698218,0.526281761572034,0.524770871240343,0.522968694539565,0.521148993860706,0.519384921878945,0.517753687308293,0.516523450886042,0.516523450886042, + +00:04:37, +2.63689680424757E-05,2.63689680424757E-05,2.64995972423664E-05,2.63324975912275E-05,2.60697693618498E-05,2.58179679546849E-05,2.56003368713706E-05,2.54254627817617E-05,2.53207172538883E-05,2.53207172538883E-05, +2.63689680424757E-05,2.63689680424757E-05,2.64995972423664E-05,2.63324975912275E-05,2.60697693618498E-05,2.58179679546849E-05,2.56003368713706E-05,2.54254627817617E-05,2.53207172538883E-05,2.53207172538883E-05, +0.000150859905827842,0.000150859905827842,0.000151433553441128,0.000150553317660801,0.00014920356332269,0.000147902418462473,0.000146766271822498,0.00014584569642478,0.000145291016081385,0.000145291016081385, +0.00086840024009679,0.00086840024009679,0.000870828533502291,0.000866166492916131,0.000859198233235581,0.000852439329558224,0.000846473521304071,0.000841594929927365,0.000838633393113525,0.000838633393113525, +0.00440129640794538,0.00440129640794538,0.004409413369554,0.0043878953152476,0.00435663528179755,0.00432609067239058,0.00429878865921844,0.00427620736771119,0.00426235400835089,0.00426235400835089, +0.0192561995138193,0.0192561995138193,0.0192746401670489,0.0191900624048798,0.0190711308110305,0.0189539068724055,0.0188475454344245,0.018758274319271,0.0187026178495008,0.0187026178495008, +0.0711880060005608,0.0711880060005608,0.0711999289698069,0.0709237952738912,0.0705502041424701,0.0701783393435617,0.0698347843830964,0.0695405857502778,0.0693521406979313,0.0693521406979313, +0.216704092869884,0.216704092869884,0.216602033368089,0.215874629140735,0.214937818841181,0.213996238758242,0.213107057559149,0.212322792449091,0.21179406674492,0.21179406674492, +0.52747248529471,0.52747248529471,0.527023489593664,0.525515014099206,0.523714709217741,0.521896119107746,0.520132923267287,0.518502720154609,0.517273607941811,0.517273607941811, + +00:04:38, +2.69514772728148E-05,2.69514772728148E-05,2.70848828371559E-05,2.69154150351124E-05,2.66481071586835E-05,2.63915011811718E-05,2.61696048233068E-05,2.59913610582308E-05,2.58846631138986E-05,2.58846631138986E-05, +2.69514772728148E-05,2.69514772728148E-05,2.70848828371559E-05,2.69154150351124E-05,2.66481071586835E-05,2.63915011811718E-05,2.61696048233068E-05,2.59913610582308E-05,2.58846631138986E-05,2.58846631138986E-05, +0.000153634219264634,0.000153634219264634,0.000154217893489215,0.000153327998078279,0.00015195950504878,0.000150638271082425,0.000149484034214895,0.000148549099375959,0.000147986109351587,0.000147986109351587, +0.000881524839536839,0.000881524839536839,0.000883987562160269,0.000879287219153555,0.000872243782731223,0.00086540211851378,0.000859360605108856,0.000854421657618344,0.000851425273522671,0.000851425273522671, +0.00445388722742811,0.00445388722742811,0.00446209393025392,0.00444045472826965,0.00440894939366335,0.0043781242804213,0.00435056058867818,0.00432776985150602,0.00431379616504004,0.00431379616504004, +0.019427788207166,0.019427788207166,0.0194463815704939,0.0193615294961128,0.0192419936023429,0.0191240346920836,0.0190169692495003,0.0189271335592971,0.0188711566281791,0.0188711566281791, +0.0716194366866551,0.0716194366866551,0.0716314693967409,0.0713550220286044,0.070980470153685,0.070607276641193,0.0702623957776915,0.0699671408800525,0.0697781185421621,0.0697781185421621, +0.217462603973107,0.217462603973107,0.217360558737758,0.216633559424247,0.215696322222757,0.214753601604487,0.213863157821364,0.213077953188914,0.212548830896718,0.212548830896718, +0.528210065170672,0.528210065170672,0.527761917417451,0.526255845169165,0.524457410230556,0.522639935844673,0.52087762220007,0.519248454539747,0.518020466849793,0.518020466849793, + +00:04:39, +2.75441946795437E-05,2.75441946795437E-05,2.76804207549458E-05,2.75085648511884E-05,2.72366208471721E-05,2.69751427121887E-05,2.67489182910045E-05,2.65672560021264E-05,2.64585784141108E-05,2.64585784141108E-05, +2.75441946795437E-05,2.75441946795437E-05,2.76804207549458E-05,2.75085648511884E-05,2.72366208471721E-05,2.69751427121887E-05,2.67489182910045E-05,2.65672560021264E-05,2.64585784141108E-05,2.64585784141108E-05, +0.00015644649978975,0.00015644649978975,0.00015704031803022,0.000156140714022476,0.000154753322322808,0.00015341179461436,0.000152239271732601,0.000151289825122939,0.000150718441727033,0.000150718441727033, +0.000894784405247362,0.000894784405247362,0.000897281827102437,0.000892543099398451,0.000885424097896219,0.000878499116448091,0.000872381341671475,0.000867381607032826,0.000864350145115685,0.000864350145115685, +0.00450684506459585,0.00450684506459585,0.00451514184634697,0.0044933815777458,0.00446163048981384,0.00443052394445195,0.00440269754910089,0.00437969658753732,0.00436560218931464,0.00436560218931464, +0.019600022973658,0.019600022973658,0.0196187688600388,0.0195336434477858,0.0194135042062722,0.0192948104554611,0.0191870407039892,0.019096640308983,0.0190403430172048,0.0190403430172048, +0.0720511679737151,0.0720511679737151,0.0720633091148531,0.0717865505124309,0.0714110432913966,0.0710365264165399,0.0706903240808371,0.0703940167216237,0.0702044195907879,0.0702044195907879, +0.218219508916001,0.218219508916001,0.218117476552148,0.217390882355492,0.216453226845842,0.215509377915798,0.214617683184362,0.21383154860262,0.213302035227205,0.213302035227205, +0.52894437209531,0.52894437209531,0.528497067835091,0.526993387344099,0.525196820435024,0.523380466828623,0.521619041338556,0.519990913045043,0.518764050149535,0.518764050149535, + +00:04:40, +2.81472488533342E-05,2.81472488533342E-05,2.82863400168159E-05,2.81120760569857E-05,2.78354390866477E-05,2.75690206481409E-05,2.73384048019462E-05,2.71532746971155E-05,2.70425900020345E-05,2.70425900020345E-05, +2.81472488533342E-05,2.81472488533342E-05,2.82863400168159E-05,2.81120760569857E-05,2.78354390866477E-05,2.75690206481409E-05,2.73384048019462E-05,2.71532746971155E-05,2.70425900020345E-05,2.70425900020345E-05, +0.000159297067370019,0.000159297067370019,0.000159901147557357,0.000158991786227607,0.00015758533561907,0.000156223308796265,0.000155032303229045,0.000154068191829296,0.000153488331024223,0.000153488331024223, +0.000908179556909751,0.000908179556909751,0.000910711947589157,0.000905934754029117,0.000898739800528083,0.000891730945886179,0.000885536353627632,0.00088047540086032,0.000877408630699927,0.000877408630699927, +0.00456017012270538,0.00456017012270538,0.0045685573165479,0.00454667606442952,0.00451467877803251,0.00448328988067109,0.00445519976381878,0.00443198780447318,0.00441777231278114,0.00441777231278114, +0.0197729009241843,0.0197729009241843,0.0197917991367719,0.019706401358044,0.01958565973111,0.0194662312916786,0.019357756948328,0.0192667917341578,0.0192101741896681,0.0192101741896681, +0.0724831927223204,0.0724831927223204,0.0724954409799738,0.0722183735606104,0.0718419163709103,0.0714660814879882,0.0711185621232609,0.0708212061107674,0.070631036676835,0.070631036676835, +0.218974808892619,0.218974808892619,0.218872788010957,0.218146599122475,0.217208533813795,0.216263568711211,0.215370634600715,0.214583579580689,0.214053680582121,0.214053680582121, +0.529675428634901,0.529675428634901,0.529228963435426,0.527727663313616,0.525932962484743,0.524117734614709,0.522357203143164,0.520730118052092,0.519504380181582,0.519504380181582, + +00:04:41, +2.87607692640875E-05,2.87607692640875E-05,2.89027705235528E-05,2.87260785512329E-05,2.84446914188349E-05,2.81732639719161E-05,2.79381927653618E-05,2.77495451078679E-05,2.76368256058142E-05,2.76368256058142E-05, +2.87607692640875E-05,2.87607692640875E-05,2.89027705235528E-05,2.87260785512329E-05,2.84446914188349E-05,2.81732639719161E-05,2.79381927653618E-05,2.77495451078679E-05,2.76368256058142E-05,2.76368256058142E-05, +0.000162186242454811,0.000162186242454811,0.00016280070304001,0.000161881535905906,0.000160455865897286,0.000159073133860724,0.000157863448059984,0.000156884518166265,0.000156296095570038,0.000156296095570038, +0.000921710910872824,0.000921710910872824,0.00092427853952739,0.000919462800064738,0.000912191509078495,0.000905098226036082,0.000898826260326481,0.000893703658525315,0.000890601349827797,0.000890601349827797, +0.00461386259273391,0.00461386259273391,0.00462234052728189,0.00460033837675029,0.00456809445375,0.00453642229292317,0.00450806744384943,0.00448464371868584,0.00447030675475432,0.00447030675475432, +0.0199464191645586,0.0199464191645586,0.0199654694968075,0.0198798003200309,0.0197584572799833,0.0196382943245246,0.0195291151274636,0.019437584995055,0.0193806473130016,0.0193806473130016, +0.072915503850836,0.072915503850836,0.0729278579059574,0.0726504840666055,0.072273082265703,0.0718959347317161,0.0715471027930866,0.0712487019403932,0.0710579626903657,0.0710579626903657, +0.219728505155741,0.219728505155741,0.219626494372805,0.218900710972332,0.217962244289967,0.21701617507018,0.21612201308359,0.215334047074495,0.214803767868435,0.214803767868435, +0.530403257154918,0.530403257154918,0.529957626606569,0.528458695565197,0.526665858832029,0.524851761558131,0.523092129875572,0.521466091744827,0.520241479089548,0.520241479089548, + +00:04:42, +2.93848862590502E-05,2.93848862590502E-05,2.95298430537287E-05,2.93507031119307E-05,2.90645082659488E-05,2.87880025470259E-05,2.85484114704134E-05,2.83561960782706E-05,2.82414138324578E-05,2.82414138324578E-05, +2.93848862590502E-05,2.93848862590502E-05,2.95298430537287E-05,2.93507031119307E-05,2.90645082659488E-05,2.87880025470259E-05,2.85484114704134E-05,2.83561960782706E-05,2.82414138324578E-05,2.82414138324578E-05, +0.000165114345960265,0.000165114345960265,0.000165739305907922,0.000164810284731773,0.000163365234586734,0.000161961590519081,0.000160733026067711,0.000159739123297005,0.000159142054186026,0.000159142054186026, +0.000935379080129611,0.000935379080129611,0.000937982215447648,0.000933127851142267,0.00092577983862994,0.000918601572765253,0.000912251677806863,0.000907066996163414,0.000903928918772809,0.000903928918772809, +0.00466792265345407,0.00466792265345407,0.00467649165276025,0.00465436869088958,0.00462187770011987,0.00458992137278343,0.00456130078796973,0.00453766453432506,0.00452320572233047,0.00452320572233047, +0.020120574795773,0.020120574795773,0.0201397770315397,0.0200538374221423,0.0199318939511099,0.0198109966726914,0.0197011123811091,0.0196090172465692,0.0195517595492366,0.0195517595492366, +0.0733480943351248,0.0733480943351248,0.0733605528643919,0.0730828749818089,0.0727045339071342,0.0723260790814101,0.0719759390355552,0.0716764971602686,0.0714851905782046,0.0714851905782046, +0.220480599015692,0.220480599015692,0.220378596954043,0.219653219210144,0.218714359496497,0.217767198131377,0.216871819705554,0.216082952095102,0.215552298053147,0.215552298053147, +0.531127879822135,0.531127879822135,0.530683079538004,0.529186506386323,0.52739553173002,0.525582569816271,0.523823843600791,0.522198856111584,0.520975368822165,0.520975368822165, + +00:04:43, +3.00197310608671E-05,3.00197310608671E-05,3.01676892617162E-05,2.99860813943624E-05,2.96950209287298E-05,2.94133671156831E-05,2.9169191084315E-05,2.8973357329578E-05,2.88564841660018E-05,2.88564841660018E-05, +3.00197310608671E-05,3.00197310608671E-05,3.01676892617162E-05,2.99860813943624E-05,2.96950209287298E-05,2.94133671156831E-05,2.9169191084315E-05,2.8973357329578E-05,2.88564841660018E-05,2.88564841660018E-05, +0.000168081699253564,0.000168081699253564,0.000168717278035429,0.000167778354825949,0.000166313763570398,0.000164888999945622,0.000163641357565314,0.000162632326860889,0.000162026526172711,0.000162026526172711, +0.000949184674294622,0.000949184674294622,0.000951823584481449,0.000946930517493793,0.000939505400872853,0.000932241598577441,0.000925813218774024,0.000920566026597951,0.000917391950506156,0.000917391950506156, +0.00472235047150925,0.00472235047150925,0.00473101085505645,0.00470876717085723,0.00467602868809462,0.00464378729963305,0.00461489998279023,0.0045910504433919,0.00457646941046087,0.00457646941046087, +0.0202953649142485,0.0202953649142485,0.020314718827893,0.0202285097482788,0.0201059668380524,0.0199843354500291,0.0198737458439971,0.0197810856385089,0.0197235080552563,0.0197235080552563, +0.0737809572082586,0.0737809572082586,0.0737935188843057,0.0735155393152493,0.0731362642841537,0.0727565075279802,0.0724050638527439,0.072104584776742,0.0719127133436628,0.0719127133436628, +0.221231091839181,0.221231091839181,0.221129097127589,0.22040412519776,0.219464880713137,0.21851663909151,0.217620055597392,0.216830295712094,0.21629927216211,0.21629927216211, +0.53184931860671,0.53184931860671,0.531405344222657,0.529911117866576,0.528122003234765,0.526310181350752,0.52455236618921,0.522928432947132,0.521706071135306,0.521706071135306, + +00:04:44, +3.06654357655709E-05,3.06654357655709E-05,3.08164416756409E-05,3.06323459290404E-05,3.03363615844144E-05,3.00494892968158E-05,2.98006626503897E-05,2.96011594584986E-05,2.94821669656118E-05,2.94821669656118E-05, +3.06654357655709E-05,3.06654357655709E-05,3.08164416756409E-05,3.06323459290404E-05,3.03363615844144E-05,3.00494892968158E-05,2.98006626503897E-05,2.96011594584986E-05,2.94821669656118E-05,2.94821669656118E-05, +0.000171088624137224,0.000171088624137224,0.000171734941725718,0.000170786068739733,0.000169301775169173,0.000167855683761804,0.000166588763320947,0.000165564448957829,0.000164949831293932,0.000164949831293932, +0.000963128299581595,0.000963128299581595,0.000965803252339241,0.000960871405924406,0.000953368804083238,0.000946018912590069,0.000939511492576826,0.000934201359317094,0.00093099105467375,0.00093099105467375, +0.00477714620148922,0.00477714620148922,0.00478589828418253,0.0047635339685681,0.00473054757650222,0.00469802024073482,0.00466886520282979,0.0046448016258128,0.00463009800202574,0.00463009800202574, +0.0204707866120817,0.0204707866120817,0.0204902919685694,0.0204038143780929,0.0202806730299676,0.020158307765796,0.0200470126461296,0.0199537873158466,0.019895889983046,0.019895889983046, +0.0742140855602277,0.0742140855602277,0.0742267490518746,0.0739484701332954,0.0735682664430102,0.0731872131192728,0.072834470303284,0.0725329578524635,0.0723405240462613,0.0723405240462613, +0.221979985048161,0.221979985048161,0.221877996321776,0.221153430352648,0.220213809276085,0.219264499204166,0.218366721946955,0.217576079052418,0.21704469127887,0.21704469127887, +0.532567595284242,0.532567595284242,0.532124442458948,0.530632551899709,0.528845295207275,0.527034617929479,0.52527771931863,0.523654843854692,0.522433607593989,0.522433607593989, + +00:04:45, +3.13221333405093E-05,3.13221333405093E-05,3.14762336952703E-05,3.12896301195905E-05,3.09886632846434E-05,3.06965015840176E-05,3.04429580860631E-05,3.02397339352188E-05,3.01185934636211E-05,3.01185934636211E-05, +3.13221333405093E-05,3.13221333405093E-05,3.14762336952703E-05,3.12896301195905E-05,3.09886632846434E-05,3.06965015840176E-05,3.04429580860631E-05,3.02397339352188E-05,3.01185934636211E-05,3.01185934636211E-05, +0.000174135442833435,0.000174135442833435,0.000174792619695125,0.000173833749439229,0.000172329592126078,0.000170861964020507,0.000169575564542148,0.00016853581013263,0.000167912289761219,0.000167912289761219, +0.000977210558781727,0.000977210558781727,0.000979921821288819,0.000974951119790534,0.000967370653100785,0.000959934120512083,0.000953347105185428,0.000947973600451425,0.000944726837573751,0.000944726837573751, +0.00483230998600614,0.00483230998600614,0.00484115407816578,0.00481866922391912,0.00478543451212282,0.004752620351309,0.00472319661059064,0.00469891824951408,0.00468409166790842,0.00468409166790842, +0.0206468369772892,0.0206468369772892,0.0206664935322926,0.0205797483872346,0.0204560096118529,0.0203329107249052,0.0202209099130241,0.0201271194189648,0.0200689024799396,0.0200689024799396, +0.0746474725376492,0.0746474725376492,0.074660236510126,0.0743816605593587,0.0740005334869561,0.0736181889597826,0.073264151502077,0.0729616095061045,0.072768615801452,0.072768615801452, +0.222727280118699,0.222727280118699,0.222625296019222,0.221901136146755,0.220961146576844,0.220010779778664,0.219111819998017,0.218320303299239,0.217788556543528,0.217788556543528, +0.533282731437798,0.533282731437798,0.532840395852813,0.531350830185698,0.529565429315564,0.527755901128657,0.52599992447626,0.524378110247917,0.523157999574347,0.523157999574347, + +00:04:46, +3.19899576222099E-05,3.19899576222099E-05,3.21471995898418E-05,3.19580682405738E-05,3.16520599533071E-05,3.13545373434357E-05,3.10962101807938E-05,3.08892131013638E-05,3.07658957635057E-05,3.07658957635057E-05, +3.19899576222099E-05,3.19899576222099E-05,3.21471995898418E-05,3.19580682405738E-05,3.16520599533071E-05,3.13545373434357E-05,3.10962101807938E-05,3.08892131013638E-05,3.07658957635057E-05,3.07658957635057E-05, +0.000177222477968426,0.000177222477968426,0.000177890635057472,0.000176921720289636,0.000175397537590534,0.000173908163190325,0.000172602082860182,0.000171546731359379,0.000170914222218199,0.000170914222218199, +0.000991432051242384,0.000991432051242384,0.000994179890134217,0.000989170258978772,0.000981511549307457,0.0009739878246223,0.000967320659169462,0.000961883352752,0.00095859990213457,0.00095859990213457, +0.00488784195577085,0.00488784195577085,0.00489677836312573,0.00487417306486656,0.00484068962976583,0.00480758777460955,0.00477789435663374,0.00475340047049669,0.00473845056706999,0.00473845056706999, +0.0208235130940475,0.0208235130940475,0.0208433205940483,0.0207563088475929,0.0206319736647898,0.0205081414281683,0.0203954347659577,0.0203010790838996,0.0202425426888634,0.0202425426888634, +0.0750811113434738,0.0750811113434738,0.0750939744586427,0.0748151037735954,0.0744330585759527,0.0740494282103628,0.0736941006200092,0.0733905329120756,0.0731969817803372,0.0731969817803372, +0.223472978579876,0.223472978579876,0.22337099775572,0.222647244105396,0.221706894061094,0.220755482178933,0.219855351049156,0.219062969690827,0.218530869151612,0.218530869151612, +0.533994748459926,0.533994748459926,0.533553225819714,0.532065974232767,0.530282427036655,0.528474052334781,0.5267190029607,0.525098253352865,0.523879268265592,0.523879268265592, + +00:04:47, +3.26690433141834E-05,3.26690433141834E-05,3.28294744958281E-05,3.26377954352467E-05,3.23266863843287E-05,3.20237308115967E-05,3.17605525939423E-05,3.15497301678962E-05,3.14242068377973E-05,3.14242068377973E-05, +3.26690433141834E-05,3.26690433141834E-05,3.28294744958281E-05,3.26377954352467E-05,3.23266863843287E-05,3.20237308115967E-05,3.17605525939423E-05,3.15497301678962E-05,3.14242068377973E-05,3.14242068377973E-05, +0.000180350052556877,0.000180350052556877,0.000181029311308441,0.000180050305039576,0.000178505935102658,0.000176994604139901,0.000175668640314428,0.000174597534025871,0.000173955949725034,0.000173955949725034, +0.00100579337284628,0.00100579337284628,0.00100857805419507,0.00100352941988518,0.000995792090606568,0.000988180623748218,0.000981432753676668,0.000975931215568882,0.000972610847893343,0.000972610847893343, +0.00494374222966945,0.00494374222966945,0.00495277125335145,0.00493004560750364,0.00489631305234728,0.0048629226420007,0.00483295857965441,0.0048082484329114,0.00479317484662414,0.00479317484662414, +0.0210008120429309,0.0210008120429309,0.021020770225322,0.0209334928275337,0.0208085622661837,0.0206839969725361,0.0205705843222062,0.0204756634425808,0.0204168077485763,0.0204168077485763, +0.0755149952366913,0.0755149952366913,0.0755279561532653,0.0752487930126069,0.0748658349263736,0.0744809240879342,0.0741243108836654,0.0738197213002437,0.0736256152093887,0.0736256152093887, +0.224217082012693,0.224217082012693,0.224115103119138,0.223391755806152,0.222451053227585,0.221498607822403,0.220597316452649,0.219804079519447,0.219271630352977,0.219271630352977, +0.534703667554638,0.534703667554638,0.534262953586609,0.532778005359394,0.530996309658569,0.529189092746609,0.527434975883895,0.525815294209937,0.52459743467194,0.52459743467194, + +00:04:48, +3.33595259846655E-05,3.33595259846655E-05,3.35231944146419E-05,3.33289477132591E-05,3.3012678239386E-05,3.27042170931697E-05,3.24361198525771E-05,3.2221419212953E-05,3.20936605259349E-05,3.20936605259349E-05, +3.33595259846655E-05,3.33595259846655E-05,3.35231944146419E-05,3.33289477132591E-05,3.3012678239386E-05,3.27042170931697E-05,3.24361198525771E-05,3.2221419212953E-05,3.20936605259349E-05,3.20936605259349E-05, +0.00018351848998636,0.00018351848998636,0.000184208972309989,0.000183219827805456,0.000181655108577612,0.000180121610122288,0.000178775559336797,0.000177688539918066,0.000177037793742904,0.000177037793742904, +0.00102029511599113,0.00102029511599113,0.00102311690528646,0.00101802919539506,0.00101021287140233,0.00100251311324531,0.000995683984412018,0.000990117784830154,0.000986760270974885,0.000986760270974885, +0.0050000109148402,0.0050000109148402,0.00500913285137909,0.00498628695613837,0.0049523048909675,0.00491862507303378,0.00488838940655833,0.00486346226913414,0.00484826464191238,0.00484826464191238, +0.0211787309011455,0.0211787309011455,0.0211988394943333,0.0211112973921357,0.0209857724900006,0.0208604744513359,0.0207463556952819,0.0206508696230685,0.0205916947939068,0.0205916947939068, +0.0759491175320359,0.0759491175320359,0.0759621749057934,0.0756827215691389,0.0752988558107067,0.0749126698651931,0.0745547755750408,0.0742491679556471,0.0740545093701644,0.0740545093701644, +0.224959592049003,0.224959592049003,0.224857613748349,0.22413467287779,0.223193625627052,0.222240158178922,0.221337717613386,0.220543634130279,0.220010841450715,0.220010841450715, +0.535409509739374,0.535409509739374,0.534969600193915,0.533486944696282,0.531707098282289,0.529901043377105,0.528147864173069,0.5265292536758,0.525312519614522,0.525312519614522, + +00:04:49, +3.40615420642983E-05,3.40615420642983E-05,3.422849621028E-05,3.40316619482928E-05,3.37101720455718E-05,3.33961321586696E-05,3.31230473492205E-05,3.29044151796207E-05,3.27743915320547E-05,3.27743915320547E-05, +3.40615420642983E-05,3.40615420642983E-05,3.422849621028E-05,3.40316619482928E-05,3.37101720455718E-05,3.33961321586696E-05,3.31230473492205E-05,3.29044151796207E-05,3.27743915320547E-05,3.27743915320547E-05, +0.000186728114001831,0.000186728114001831,0.000187429942274805,0.000186430613055886,0.000184845382289986,0.000183289504759363,0.000181923162736192,0.000180820071204591,0.000180160076118518,0.000180160076118518, +0.00103493786956978,0.00103493786956978,0.00103779703169922,0.00103267017486322,0.00102477448257988,0.0010169858849768,0.0010100749436173,0.00100444365302139,0.0010010487640711,0.0010010487640711, +0.00505664810675061,0.00505664810675061,0.0050658632480697,0.00504289720337166,0.00500866524498895,0.0049746951755243,0.00494418695253777,0.00491904209984173,0.00490372007657952,0.00490372007657952, +0.0213572667427605,0.0213572667427605,0.0213775254662668,0.0212897196034218,0.0211636014070008,0.021037570954505,0.0209227459951671,0.0208266947497875,0.0207672009559875,0.0207672009559875, +0.0763834715996886,0.0763834715996886,0.0763966240836855,0.07611688279178,0.075732114557255,0.0753446588703177,0.0749854880312523,0.0746788662182098,0.0744836575990243,0.0744836575990243, +0.225700510370457,0.225700510370457,0.225598531332169,0.224875996999202,0.223934612861138,0.222980134769678,0.222076555987806,0.221281634920349,0.220748503800086,0.220748503800086, +0.536112295846935,0.536112295846935,0.535673186497436,0.534192813188323,0.532414813823701,0.530609925055365,0.528857688572639,0.527240152425281,0.526024543733273,0.526024543733273, + +00:04:50, +3.4775228843751E-05,3.4775228843751E-05,3.49455176069064E-05,3.4746075875638E-05,3.44193051929934E-05,3.40996128420979E-05,3.38214713395328E-05,3.35988538736507E-05,3.34665354227192E-05,3.34665354227192E-05, +3.4775228843751E-05,3.4775228843751E-05,3.49455176069064E-05,3.4746075875638E-05,3.44193051929934E-05,3.40996128420979E-05,3.38214713395328E-05,3.35988538736507E-05,3.34665354227192E-05,3.34665354227192E-05, +0.00018997924869016,0.00018997924869016,0.000190692545750809,0.000189682985596127,0.000188077080858229,0.000186498612026277,0.00018511177368301,0.000183992450421281,0.000183323119068674,0.000183323119068674, +0.00104972221895078,0.00104972221895078,0.00105261901818073,0.00104745294409464,0.00103947751148578,0.00103159952729388,0.00102460622005119,0.0010189094091656,0.00101547691642089,0.00101547691642089, +0.00511365388927482,0.00511365388927482,0.00512296252268724,0.00509987643017571,0.00506539420211447,0.0050311330456293,0.00500035132114812,0.00497498803408788,0.00495954126264942,0.00495954126264942, +0.0215364166389357,0.0215364166389357,0.0215568252035002,0.0214687565205882,0.0213420460849691,0.0212152835688226,0.0210997523285445,0.0210031359437572,0.0209433233624857,0.0209433233624857, +0.0768180508649809,0.0768180508649809,0.0768312971097588,0.0765512700846589,0.0761656045498376,0.0757768844866739,0.0754164416442481,0.0751088094824544,0.0749130532868456,0.0749130532868456, +0.226439838707467,0.226439838707467,0.22633785760831,0.225615729898356,0.224674016581342,0.223718539166153,0.222813833082839,0.222018083337477,0.221484618807467,0.221484618807467, +0.536812046527407,0.536812046527407,0.536373733170278,0.534895631596523,0.533119477015512,0.53131575842852,0.529564469646097,0.527948010953245,0.526733527488796,0.526733527488796, + +00:04:51, +3.5500724471281E-05,3.5500724471281E-05,3.56743971863768E-05,3.5472328089711E-05,3.51402159323127E-05,3.48147968385243E-05,3.4531528939936E-05,3.43048719611129E-05,3.41702286245857E-05,3.41702286245857E-05, +3.5500724471281E-05,3.5500724471281E-05,3.56743971863768E-05,3.5472328089711E-05,3.51402159323127E-05,3.48147968385243E-05,3.4531528939936E-05,3.43048719611129E-05,3.41702286245857E-05,3.41702286245857E-05, +0.000193272218464702,0.000193272218464702,0.000193997107605704,0.000192977270552595,0.000191350529229121,0.000189749256235946,0.000188341715693686,0.000187206000455756,0.000186527245164852,0.000186527245164852, +0.00106464874595945,0.00106464874595945,0.00106758344591612,0.00106237808532575,0.00105432254190894,0.00104635462501643,0.00103927839896973,0.00103351563880363,0.00103004531379045,0.00103004531379045, +0.00517102833477127,0.00517102833477127,0.00518043074297689,0.00515722470597256,0.00512249183846557,0.00508793876792502,0.00505688260438463,0.00503130016937938,0.00501572830060104,0.00501572830060104, +0.021716177658147,0.021716177658147,0.0217367357658292,0.0216484052002298,0.0215211035889422,0.0213936093781365,0.0212773717990249,0.0211801903228197,0.021120059137831,0.021120059137831, +0.0772528488080955,0.0772528488080955,0.0772661874618869,0.0769858769071415,0.0765993192274878,0.0762093401525198,0.0758476298605168,0.0755389911972146,0.0753426898787358,0.0753426898787358, +0.227177578838187,0.227177578838187,0.227075594362365,0.226353873351272,0.225411838487983,0.224455372989078,0.22354955045488,0.222752980879242,0.222219187929312,0.222219187929312, +0.53750878225005,0.53750878225005,0.537071260704738,0.535595420499917,0.533821108409148,0.532018563963612,0.530268227777885,0.528652849576451,0.527439491164205,0.527439491164205, + +00:04:52, +3.62381679502357E-05,3.62381679502357E-05,3.64152743857028E-05,3.62105580415122E-05,3.58730433722257E-05,3.55418227016078E-05,3.52533581251782E-05,3.50226069659904E-05,3.48856084220157E-05,3.48856084220157E-05, +3.62381679502357E-05,3.62381679502357E-05,3.64152743857028E-05,3.62105580415122E-05,3.58730433722257E-05,3.55418227016078E-05,3.52533581251782E-05,3.50226069659904E-05,3.48856084220157E-05,3.48856084220157E-05, +0.000196607348049919,0.000196607348049919,0.000197343953011559,0.000196313793357404,0.000194666052662296,0.000193041762023597,0.000191613312615277,0.000190461044532049,0.000189772777317856,0.000189772777317856, +0.00107971802885936,0.00107971802885936,0.00108269089250999,0.00107744617720596,0.00106931015406211,0.00106125175941419,0.00105409206210738,0.00104826292397504,0.00104475453845415,0.00104475453845415, +0.00522877150416045,0.00522877150416045,0.00523826796524351,0.00521494208871288,0.00517995821866113,0.00514511241548467,0.00511378088275942,0.00508797859175256,0.00507228127944467,0.00507228127944467, +0.0218965468664077,0.0218965468664077,0.0219172542106891,0.0218286626965632,0.0217007709814328,0.0215725454635888,0.0214556015073721,0.0213578550018644,0.0212974054034407,0.0212974054034407, +0.0776878589637674,0.0776878589637674,0.0777012886726981,0.0774206967735257,0.0770332520841521,0.0766420193607094,0.076279046180795,0.0759694048653457,0.0757725608737456,0.0757725608737456, +0.227913732587507,0.227913732587507,0.227811743426789,0.227090429181002,0.226148080329178,0.225190637907419,0.224283709708765,0.223486329091969,0.222952212671135,0.222952212671135, +0.538202523305169,0.538202523305169,0.537765789414166,0.536292200297457,0.534519728376627,0.532718361949455,0.530968983175234,0.52935468843538,0.528142454866952,0.528142454866952, + +00:04:53, +3.69876991364952E-05,3.69876991364952E-05,3.71682894944583E-05,3.69609060360247E-05,3.66179274768834E-05,3.62808298410587E-05,3.5987097725838E-05,3.57521972677141E-05,3.56128129546236E-05,3.56128129546236E-05, +3.69876991364952E-05,3.69876991364952E-05,3.71682894944583E-05,3.69609060360247E-05,3.66179274768834E-05,3.62808298410587E-05,3.5987097725838E-05,3.57521972677141E-05,3.56128129546236E-05,3.56128129546236E-05, +0.000199984962466046,0.000199984962466046,0.00020073340742946,0.000199692879732963,0.000198023976714806,0.000196376454331348,0.000194926888610095,0.000193757906195268,0.000193060038762497,0.000193060038762497, +0.00109493064233435,0.00109493064233435,0.00109794193196861,0.00109265779477988,0.00108444092456371,0.00107629150818836,0.00106904778765839,0.00106315184319944,0.00105960516917573,0.00105960516917573, +0.00528688344700303,0.00528688344700303,0.00529647423443035,0.00527302862495496,0.00523779339589611,0.00520265404995651,0.00517104622537872,0.00514502337585006,0.00512920027679843,0.00512920027679843, +0.0220775213274875,0.0220775213274875,0.0220983775933737,0.0220095260616458,0.0218810453226504,0.0217520889038369,0.0216344385517235,0.0215361270930488,0.021475359277941,0.021475359277941, +0.0781230749209841,0.0781230749209841,0.0781365943292712,0.0778557232527372,0.0774673966683875,0.0770749156583953,0.0767106841597747,0.0764000440434351,0.0762026598245806,0.0762026598245806, +0.228648301826068,0.228648301826068,0.228546306679912,0.227825399256643,0.226882743899837,0.225924335637372,0.225016312496773,0.224218129569724,0.223683694586509,0.223683694586509, +0.53889328980597,0.53889328980597,0.538457339434817,0.536985991209874,0.535215357112411,0.53341517249847,0.531666755869991,0.530053547496049,0.528842438530623,0.528842438530623, + +00:04:54, +3.77494587358571E-05,3.77494587358571E-05,3.79335836521263E-05,3.77235132295548E-05,3.73750090632532E-05,3.70319585200416E-05,3.673288742577E-05,3.64937820986389E-05,3.63519812147678E-05,3.63519812147678E-05, +3.77494587358571E-05,3.77494587358571E-05,3.79335836521263E-05,3.77235132295548E-05,3.73750090632532E-05,3.70319585200416E-05,3.673288742577E-05,3.64937820986389E-05,3.63519812147678E-05,3.63519812147678E-05, +0.000203405387013801,0.000203405387013801,0.000204165796594188,0.000203114855676618,0.000201424627225738,0.000199753658392842,0.000198282768140387,0.000197096909296319,0.000196389353042319,0.000196389353042319, +0.0011102871574709,0.0011102871574709,0.00111333713468246,0.00110801350946979,0.00109971542642022,0.00109147444545371,0.00108414615025875,0.00107818297145824,0.00107459778119008,0.00107459778119008, +0.00534536420157802,0.00534536420157802,0.00535504958419788,0.00533148434994391,0.00529599741202064,0.00526056372164211,0.00522867869002031,0.00520243458499767,0.005186485358965,0.005186485358965, +0.0222590981031281,0.0222590981031281,0.0222801029672509,0.0221909923455926,0.0220619236707197,0.0219322367752723,0.0218138800278091,0.0217150037060177,0.0216539178773861,0.0216539178773861, +0.0785584903226844,0.0785584903226844,0.0785720980728324,0.0782909499680237,0.0779017465830583,0.0775080226467307,0.0771425374058092,0.0768309023415112,0.0766329803373121,0.0766329803373121, +0.229381288469291,0.229381288469291,0.229279286044964,0.228558785492353,0.227615831040678,0.226656467941374,0.225747360517642,0.224948383953331,0.224413635276075,0.224413635276075, +0.539581101690382,0.539581101690382,0.539145930727669,0.537676813281523,0.535908014635238,0.5341090155485,0.532361565720421,0.530749446551804,0.529539461916721,0.529539461916721, + +00:04:55, +3.85235883013626E-05,3.85235883013626E-05,3.87112988453895E-05,3.8498521627015E-05,3.81444297984233E-05,3.77953498525195E-05,3.74908677594919E-05,3.7247501541461E-05,3.71032530449822E-05,3.71032530449822E-05, +3.85235883013626E-05,3.85235883013626E-05,3.87112988453895E-05,3.8498521627015E-05,3.81444297984233E-05,3.77953498525195E-05,3.74908677594919E-05,3.7247501541461E-05,3.71032530449822E-05,3.71032530449822E-05, +0.000206868947259152,0.000206868947259152,0.000207641446498968,0.000206580047445348,0.000204868330300884,0.000203173699717935,0.000201681275953059,0.000200478377976657,0.000199761043994379,0.000199761043994379, +0.001125788141741,0.001125788141741,0.00112887706740935,0.00112351388905872,0.00111513422900892,0.00110680114172112,0.00109938772096852,0.00109335688017689,0.00108973294618536,0.00108973294618536, +0.00540421379496125,0.00540421379496125,0.00541399403700285,0.00539030928769098,0.00535457029761916,0.00531884146957478,0.0052866783232111,0.00526021227128148,0.00524413658100853,0.00524413658100853, +0.0224412742532559,0.0224412742532559,0.022462427383975,0.0223730585967893,0.0222434030818951,0.0221129861522359,0.0219939230291668,0.0218944819481182,0.0218330783154734,0.0218330783154734, +0.0789940988654575,0.0789940988654575,0.0790077935984504,0.0787263705966482,0.078336295485032,0.0779413339805707,0.0775745995806186,0.0772619734227522,0.0770635160710873,0.0770635160710873, +0.23011269447642,0.23011269447642,0.23001068348911,0.229290589846385,0.228347343637254,0.227387036627132,0.226476855515595,0.225677093929403,0.225142036386575,0.225142036386575, +0.540265978722869,0.540265978722869,0.539831583080233,0.538364686382209,0.536597720789932,0.534799910864606,0.53305343241299,0.531442405225084,0.53023354461643,0.53023354461643, + +00:04:56, +3.93102302305663E-05,3.93102302305663E-05,3.95015779053624E-05,3.92860740791481E-05,3.89263321968482E-05,3.85711458005412E-05,3.82611801095139E-05,3.80134965265774E-05,3.78667691353503E-05,3.78667691353503E-05, +3.93102302305663E-05,3.93102302305663E-05,3.95015779053624E-05,3.92860740791481E-05,3.89263321968482E-05,3.85711458005412E-05,3.82611801095139E-05,3.80134965265774E-05,3.78667691353503E-05,3.78667691353503E-05, +0.000210375969018131,0.000210375969018131,0.000211160683380258,0.000210088781540515,0.000208355412297458,0.000206636904077422,0.000205122737064453,0.000203902636653104,0.000203175435734067,0.000203175435734067, +0.0011414341589855,0.0011414341589855,0.00114456229325788,0.00113915949767387,0.00113069789806123,0.00112227216388057,0.00111477306725461,0.00110867413720758,0.00110501123228565,0.00110501123228565, +0.00546343224310389,0.00546343224310389,0.0054733076041775,0.00544950345105306,0.00541351207208977,0.00537748732159822,0.00534504516030504,0.00531835647562518,0.00530215398683173,0.00530215398683173, +0.0226240468361921,0.0226240468361921,0.0226453478936971,0.0225557218621029,0.0224254806107727,0.0222943341072311,0.0221745646473546,0.0220745589246123,0.0220128377037569,0.0220128377037569, +0.0794298942992406,0.0794298942992406,0.0794436746547312,0.0791619788695827,0.078771037084875,0.0783748433681729,0.0780068643989945,0.0776932510031938,0.077494260737838,0.077494260737838, +0.230842521849583,0.230842521849583,0.23074050102251,0.230020814320145,0.229077283618996,0.228116043546668,0.227204799279394,0.226404261229387,0.225868899609894,0.225868899609894, +0.540947940496217,0.540947940496217,0.540514316108328,0.539049630208986,0.537284495249193,0.535487878040838,0.533742375464125,0.532132442969176,0.530924706052351,0.530924706052351, + +00:04:57, +4.0109527762748E-05,4.0109527762748E-05,4.03045645047673E-05,4.00863142796965E-05,3.97208596175376E-05,3.93594891714695E-05,3.904396670361E-05,3.87919088293877E-05,3.86426710208217E-05,3.86426710208217E-05, +4.0109527762748E-05,4.0109527762748E-05,4.03045645047673E-05,4.00863142796965E-05,3.97208596175376E-05,3.93594891714695E-05,3.904396670361E-05,3.87919088293877E-05,3.86426710208217E-05,3.86426710208217E-05, +0.000213926778341697,0.000213926778341697,0.000214723833702591,0.000213641384692658,0.00021188619980887,0.000210143597487828,0.000208607476745173,0.000207370010002701,0.000206632852639981,0.000206632852639981, +0.00115722576939786,0.00115722576939786,0.00116039337167149,0.00115495089577057,0.00114640699564632,0.00113788807518457,0.00113030275297407,0.00112413530681235,0.00112043320403401,0.00112043320403401, +0.00552301955091124,0.00552301955091124,0.00553299028600884,0.00550906684181234,0.00547282274372371,0.00543650129444524,0.00540377922556099,0.00537686722786753,0.00536053760925314,0.00536053760925314, +0.0228074129088591,0.0228074129088591,0.0228288615452711,0.022738979187089,0.0226081533104994,0.0224762777111328,0.0223558019721602,0.0222552317388865,0.0221931931518565,0.0221931931518565, +0.0798658704270169,0.0798658704270169,0.0798797350435128,0.0795977685712005,0.0792059651465476,0.0788085445708974,0.0784393256285044,0.0781247288514361,0.07792520810199,0.07792520810199, +0.231570772632869,0.231570772632869,0.231468740697385,0.230749460957256,0.229805652958275,0.228843490595381,0.227931193641394,0.227129887628628,0.226594226682118,0.226594226682118, +0.541627006433297,0.541627006433297,0.541194149257849,0.539731664287937,0.537968357515364,0.536172936501988,0.534428414221957,0.532819579069939,0.531612965480222,0.531612965480222, + +00:04:58, +4.09216249760692E-05,4.09216249760692E-05,4.11204031550538E-05,4.08993867625128E-05,4.05281562611885E-05,4.01605236151543E-05,3.98393706120328E-05,3.95828810675393E-05,3.94311010784718E-05,3.94311010784718E-05, +4.09216249760692E-05,4.09216249760692E-05,4.11204031550538E-05,4.08993867625128E-05,4.05281562611885E-05,4.01605236151543E-05,3.98393706120328E-05,3.95828810675393E-05,3.94311010784718E-05,3.94311010784718E-05, +0.000217521701500658,0.000217521701500658,0.00021833122414348,0.000217238183846356,0.000215461019649546,0.000213694106196242,0.000212135820504962,0.000210880822947625,0.000210133619338851,0.000210133619338851, +0.00117316352950833,0.00117316352950833,0.00117637085841274,0.00117088864011658,0.00116226208015532,0.00115364943523204,0.00114597733835777,0.00113974094964667,0.001135999422376,0.001135999422376, +0.00558297571232158,0.00558297571232158,0.0055930420718182,0.00556899945075607,0.00553250230978503,0.00549588339381676,0.00546288053222096,0.00543574454684,0.00541928747008462,0.00541928747008462, +0.0229913695269847,0.0229913695269847,0.0230129653864578,0.0229228276161966,0.0227914182329788,0.0226588140333944,0.0225376320918075,0.0224364974926585,0.0223741417676653,0.0223741417676653, +0.0803020211045121,0.0803020211045121,0.0803159686195589,0.0800337335389688,0.0796410734870984,0.0792424314029064,0.0788719770891948,0.0785564007883502,0.0783563519801702,0.0783563519801702, +0.232297448911415,0.232297448911415,0.232195404607106,0.231476531842641,0.230532453669475,0.229569379711116,0.228656040476628,0.227853974945444,0.227318019382614,0.227318019382614, +0.542303195788811,0.542303195788811,0.541871101806503,0.540410807975933,0.538649326922177,0.536855105505327,0.535111567868042,0.533503832647521,0.532298341990621,0.532298341990621, + +00:04:59, +4.17466667846728E-05,4.17466667846728E-05,4.19492392034622E-05,4.17254368986163E-05,4.1348367167261E-05,4.09743936210482E-05,4.06475357446716E-05,4.03865566981158E-05,4.02322025247043E-05,4.02322025247043E-05, +4.17466667846728E-05,4.17466667846728E-05,4.19492392034622E-05,4.17254368986163E-05,4.1348367167261E-05,4.09743936210482E-05,4.06475357446716E-05,4.03865566981158E-05,4.02322025247043E-05,4.02322025247043E-05, +0.000221161064970645,0.000221161064970645,0.000221983181578368,0.000220879506145136,0.000219080198839819,0.000217288756665215,0.000215708094077635,0.000214435400640147,0.000213678060690515,0.000213678060690515, +0.00118924799216861,0.00118924799216861,0.00119249530554825,0.00118697328377696,0.00117826370628588,0.00116955679995267,0.00116179737999449,0.00115549162274342,0.00115171044464359,0.00115171044464359, +0.00564330071038516,0.00564330071038516,0.00565346294004076,0.00562930125775647,0.0055925507565903,0.00555563361446083,0.00552234908258834,0.00549498844044457,0.00547840358020891,0.00547840358020891, +0.0231759137453029,0.0231759137453029,0.0231976564641255,0.023107264192969,0.022975272429074,0.0228419401422513,0.0227200520931603,0.0226183532861806,0.0225556806575532,0.0225556806575532, +0.0807383402398914,0.0807383402398914,0.0807523692902525,0.0804698676631405,0.0800763559763583,0.0796764977308631,0.0793048126532947,0.0789882606867844,0.078787686240915,0.078787686240915, +0.233022552810513,0.233022552810513,0.232920494885296,0.232202029101622,0.231257687808086,0.23029371287326,0.229379341701893,0.22857652504022,0.228040279533117,0.228040279533117, +0.54297652765102,0.54297652765102,0.542545192865537,0.541087080462377,0.539327422636485,0.537534404142314,0.535791855419059,0.534185222658041,0.532980854510648,0.532980854510648, + +00:05:00, +4.25847989357278E-05,4.25847989357278E-05,4.27912188300328E-05,4.25646108931932E-05,4.21816382109988E-05,4.18012445152665E-05,4.14686068481547E-05,4.12030800147695E-05,4.10461194123988E-05,4.10461194123988E-05, +4.25847989357278E-05,4.25847989357278E-05,4.27912188300328E-05,4.25646108931932E-05,4.21816382109988E-05,4.18012445152665E-05,4.14686068481547E-05,4.12030800147695E-05,4.10461194123988E-05,4.10461194123988E-05, +0.000224845195417137,0.000224845195417137,0.000225680033065644,0.000224565678916443,0.000222744064590861,0.000220927875557702,0.000219324623406064,0.00021803406844765,0.000217266501772948,0.000217266501772948, +0.00120547970653692,0.00120547970653692,0.00120876726143391,0.00120320537609922,0.00119441242502722,0.00118561072159166,0.00117776343081555,0.00117138787949736,0.00116756682453957,0.00116756682453957, +0.00570399451734335,0.00570399451734335,0.00571425285830528,0.00568997223185075,0.00565296805958855,0.00561575194025183,0.00558218486810634,0.00555459890573164,0.00553788593965735,0.00553788593965735, +0.0233610426177524,0.0233610426177524,0.0233829318244484,0.0232922859602434,0.0231597129488079,0.0230256531049217,0.0229030590619228,0.0228007962184411,0.0227378069265684,0.0227378069265684, +0.081174821793456,0.081174821793456,0.0811889310152896,0.0809061648864457,0.0805118065366346,0.0801107374736301,0.0797378262449179,0.0794203024712694,0.0792192048043762,0.0792192048043762, +0.23374608649473,0.23374608649473,0.233644013704941,0.232925954899031,0.231981357469805,0.231016492101842,0.230101099274857,0.229297539814513,0.228761008996833,0.228761008996833, +0.54364702094345,0.54364702094345,0.543216441381433,0.541760500770918,0.540002663659969,0.538210851340288,0.536469295728498,0.534863767895265,0.53366052180558,0.53366052180558, + +00:05:01, +4.34361680064197E-05,4.34361680064197E-05,4.36464890445591E-05,4.34170557825419E-05,4.30281161003941E-05,4.26412224575917E-05,4.23027295028959E-05,4.20325961447981E-05,4.1872996628002E-05,4.1872996628002E-05, +4.34361680064197E-05,4.34361680064197E-05,4.36464890445591E-05,4.34170557825419E-05,4.30281161003941E-05,4.26412224575917E-05,4.23027295028959E-05,4.20325961447981E-05,4.1872996628002E-05,4.1872996628002E-05, +0.000228574419680555,0.000228574419680555,0.000229422105831713,0.000228297029656666,0.000226452944289683,0.000224611789722072,0.000222985734627219,0.000221677151937702,0.000220899267867346,0.000220899267867346, +0.00122185921806349,0.00122185921806349,0.00122518727070062,0.00121958546269906,0.00121070878364556,0.00120181174869492,0.00119387604007976,0.00118743026965,0.00118356911212236,0.00118356911212236, +0.00576505709470786,0.00576505709470786,0.00577541178351389,0.00575101233132116,0.00571375418344116,0.00567623834426978,0.0056423878694365,0.00561457592897807,0.00559773453768777,0.00559773453768777, +0.0235467531976715,0.0235467531976715,0.0235687885131012,0.0234778899603459,0.0233447368415607,0.0232099499878049,0.0230866500828379,0.0229838233873617,0.0229205176786355,0.0229205176786355, +0.0816114597773386,0.0816114597773386,0.0816256478063715,0.0813426192037834,0.0809474191424038,0.0805451446019679,0.0801710118397653,0.0798525201177235,0.0796509016420285,0.0796509016420285, +0.234468052167042,0.234468052167042,0.234365963277524,0.233648311438339,0.232703464789658,0.231737719456656,0.230821315193184,0.230017021210172,0.229480209677562,0.229480209677562, +0.544314694426572,0.544314694426572,0.543884866137596,0.542431087761152,0.540675068830824,0.538884465864147,0.537143907488317,0.535539486992253,0.534337362480524,0.534337362480524, + +00:05:02, +4.43009214008855E-05,4.43009214008855E-05,4.45151976834876E-05,4.42829194309648E-05,4.38879483730979E-05,4.34944744384236E-05,4.31500501200868E-05,4.28752510461674E-05,4.27129798885643E-05,4.27129798885643E-05, +4.43009214008855E-05,4.43009214008855E-05,4.45151976834876E-05,4.42829194309648E-05,4.38879483730979E-05,4.34944744384236E-05,4.31500501200868E-05,4.28752510461674E-05,4.27129798885643E-05,4.27129798885643E-05, +0.000232349064761403,0.000232349064761403,0.000233209727256123,0.000232073886016227,0.000230207165484188,0.000228340826177171,0.000226691754057266,0.000225364976863181,0.000224576684443267,0.000224576684443267, +0.00123838706847654,0.00123838706847654,0.0012417558742404,0.00123611408544644,0.00122715332567003,0.00121816042609471,0.00121013575335889,0.00120361933927491,0.00119971785379126,0.00119971785379126, +0.00582648839334003,0.00582648839334003,0.00583693966192195,0.00581242150377522,0.00577490908210199,0.00573709278887974,0.00570295805653737,0.00567491948576534,0.00565794935286246,0.00565794935286246, +0.0237330425379908,0.0237330425379908,0.0237552235754518,0.0236640732352847,0.0235303411562636,0.0233948278566759,0.023270822239882,0.0231674318899934,0.0231038100167513,0.0231038100167513, +0.0820482482551996,0.0820482482551996,0.0820625137268979,0.0817792246619123,0.0813831878200055,0.0809797131382329,0.080604363464827,0.0802849076531574,0.0800827707763748,0.0800827707763748, +0.235188452067981,0.235188452067981,0.235086345852164,0.234369100960795,0.233424011941134,0.232457397036393,0.231539991493669,0.230734971208476,0.230197883518828,0.230197883518828, +0.544979566699477,0.544979566699477,0.544550485756013,0.543098860130307,0.541344656825428,0.539555266317997,0.537815709230588,0.536212398422997,0.535011394982033,0.535011394982033, + +00:05:03, +4.5179207347096E-05,4.5179207347096E-05,4.53974934067639E-05,4.51623505276047E-05,4.47612833932768E-05,4.43611482756748E-05,4.40107159386337E-05,4.37311915044785E-05,4.35662157387222E-05,4.35662157387222E-05, +4.5179207347096E-05,4.5179207347096E-05,4.53974934067639E-05,4.51623505276047E-05,4.47612833932768E-05,4.43611482756748E-05,4.40107159386337E-05,4.37311915044785E-05,4.35662157387222E-05,4.35662157387222E-05, +0.00023616945780547,0.00023616945780547,0.000237043224856759,0.000235896575784731,0.000234007055868293,0.000232115312097441,0.000230443008176728,0.000229097869147462,0.000228299077143829,0.000228299077143829, +0.00125506379576857,0.00125506379576857,0.00125847360919297,0.00125279178245207,0.001243746590879,0.00123465729489572,0.0012265431125235,0.00121995563076342,0.00121601359227209,0.00121601359227209, +0.00588828835353027,0.00588828835353027,0.00589883642921802,0.00587419968622595,0.0058364326988975,0.00579831522581126,0.00576389538874319,0.00573562954105783,0.00571853035312623,0.00571853035312623, +0.0239199076914229,0.0239199076914229,0.0239422340567503,0.0238508328269406,0.0237165229415911,0.0235802837768779,0.0234555726164571,0.0233516188227083,0.0232876810431768,0.0232876810431768, +0.0824851813419224,0.0824851813419224,0.08249952289166,0.0822159753591422,0.0818191066473347,0.0814144371560746,0.0810378751980835,0.0807174591553785,0.0805148062806523,0.0805148062806523, +0.235907288474799,0.235907288474799,0.23580516371478,0.235088325744583,0.234143001135331,0.233175526977787,0.232257130251381,0.231451391829282,0.230914032503026,0.230914032503026, +0.545641656201516,0.545641656201516,0.545213318698899,0.543763836414893,0.542011446159996,0.540223271146793,0.538484719329122,0.536882520504027,0.535682637599713,0.535682637599713, + +00:05:04, +4.60711748936836E-05,4.60711748936836E-05,4.62935256946257E-05,4.605549858323E-05,4.56482703484159E-05,4.52413926116121E-05,4.48848750220413E-05,4.46005651298814E-05,4.4432851547626E-05,4.4432851547626E-05, +4.60711748936836E-05,4.60711748936836E-05,4.62935256946257E-05,4.605549858323E-05,4.56482703484159E-05,4.52413926116121E-05,4.48848750220413E-05,4.46005651298814E-05,4.4432851547626E-05,4.4432851547626E-05, +0.000240035926089101,0.000240035926089101,0.000240922926275093,0.000239765426876172,0.000237852943267102,0.000235935574798109,0.000234239823615693,0.000232876154869662,0.000232066771770961,0.000232066771770961, +0.00127188993418318,0.00127188993418318,0.0012753410089327,0.00126961908805444,0.00126048911528685,0.00125130289246151,0.00124309865572927,0.00123643968281084,0.00123245686660334,0.00123245686660334, +0.00595045690507748,0.00595045690507748,0.00596110201060387,0.00593634680517217,0.00589832496660693,0.005859905596238,0.00582519981484279,0.00579670604928114,0.00577947749588457,0.00577947749588457, +0.0241073457106495,0.0241073457106495,0.0241298170023162,0.0240381657772536,0.023903279246149,0.0237663148135119,0.0236408982955809,0.0235363812813898,0.0234721278596282,0.0234721278596282, +0.0829222532033092,0.0829222532033092,0.0829366694665323,0.0826528654450246,0.0822551697535353,0.0818493107801339,0.0814715411682074,0.0811501687526952,0.0809470022785382,0.0809470022785382, +0.236624563700642,0.236624563700642,0.236522419187261,0.235805988103991,0.234860434620122,0.23389211145478,0.232972733578836,0.232166285130187,0.231628658650585,0.231628658650585, +0.546300981213933,0.546300981213933,0.545873383270324,0.544426034992356,0.542675455192205,0.540888498637953,0.539150956001075,0.537549871396016,0.536351108467812,0.536351108467812, + +00:05:05, +4.69769739067188E-05,4.69769739067188E-05,4.72034448443427E-05,4.69625139269651E-05,4.65490592460682E-05,4.61353569096453E-05,4.57726762552427E-05,4.54835203539356E-05,4.53130355058153E-05,4.53130355058153E-05, +4.69769739067188E-05,4.69769739067188E-05,4.72034448443427E-05,4.69625139269651E-05,4.65490592460682E-05,4.61353569096453E-05,4.57726762552427E-05,4.54835203539356E-05,4.53130355058153E-05,4.53130355058153E-05, +0.000243948797004516,0.000243948797004516,0.000244849159261497,0.00024368076731421,0.000241745155622149,0.000239801941720429,0.000238082527139098,0.000236700160249936,0.000235880094270723,0.000235880094270723, +0.00128886601420228,0.00128886601420228,0.00129235860305606,0.00128659653280712,0.00127738143113109,0.00126809775240148,0.00125980291740363,0.00125307203040297,0.00124904821212261,0.00124904821212261, +0.00601299396736861,0.00601299396736861,0.0060237363208745,0.00599886277667888,0.00596058580754258,0.00592186383085733,0.00588687127315841,0.00585814895440052,0.00584079072808192,0.00584079072808192, +0.0242953536485051,0.0242953536485051,0.024317969457722,0.0242260691284081,0.0240906071186609,0.0239529180316233,0.0238267963600729,0.023721716361619,0.0236571475674629,0.0236571475674629, +0.0833594580557761,0.0833594580557761,0.0833739476681654,0.0830898891200441,0.0826913713186923,0.0822843281857394,0.0819053555542647,0.0815830306236208,0.0813793529438548,0.0813793529438548, +0.237340280093742,0.237340280093742,0.237238114626648,0.236522090388595,0.235576314679325,0.234607152677695,0.233686803625165,0.232879653205705,0.232341764019142,0.232341764019142, +0.546957559861474,0.546957559861474,0.546530697617815,0.545085474082689,0.543336702122811,0.541550966922954,0.539814437308534,0.538214469105348,0.537016825566791,0.537016825566791, + +00:05:06, +4.78967550664332E-05,4.78967550664332E-05,4.81274019669051E-05,4.78835477029703E-05,4.74638009105522E-05,4.70431914510626E-05,4.6674269341377E-05,4.63802064264173E-05,4.62069166220401E-05,4.62069166220401E-05, +4.78967550664332E-05,4.78967550664332E-05,4.81274019669051E-05,4.78835477029703E-05,4.74638009105522E-05,4.70431914510626E-05,4.6674269341377E-05,4.63802064264173E-05,4.62069166220401E-05,4.62069166220401E-05, +0.000247908398045208,0.000247908398045208,0.000248822251660624,0.000247642925217504,0.000245684020976705,0.000243714740416988,0.00024197144563206,0.000240570211634851,0.000239739370718676,0.000239739370718676, +0.00130599256253365,0.00130599256253365,0.00130952691736938,0.00130372464346657,0.00129442406685997,0.00128504240455816,0.00127665642823296,0.00126985320480312,0.00126578816045361,0.00126578816045361, +0.00607589944945819,0.00607589944945819,0.00608673926449828,0.00606174750645764,0.00602321513363013,0.00598418984997,0.00594890969162468,0.00591995818999937,0.00590246998627996,0.00590246998627996, +0.0244839285581592,0.0244839285581592,0.0245066884689745,0.0244145399230144,0.0242785036081515,0.0241400904963857,0.0240132638927388,0.0239076211588593,0.0238427372678651,0.0238427372678651, +0.0837967901660486,0.0837967901660486,0.0838113517636786,0.0835270406353087,0.0831277055735251,0.0827194835986057,0.0823393125854156,0.0820160389965772,0.0818118525002746,0.0818118525002746, +0.238054440036617,0.238054440036617,0.237952252424336,0.237236634982453,0.236290643631897,0.235320652892426,0.234399342575311,0.233591498186457,0.233053350702729,0.233053350702729, +0.547611410113977,0.547611410113977,0.547185279733947,0.545742171750043,0.54399520499724,0.542210693978918,0.540475181160089,0.538876331485684,0.537679806724869,0.537679806724869, + +00:05:07, +4.88306698638915E-05,4.88306698638915E-05,4.906554898366E-05,4.88187518670686E-05,4.83926469795976E-05,4.79650473317145E-05,4.75898047985139E-05,4.72907734120744E-05,4.71146447200309E-05,4.71146447200309E-05, +4.88306698638915E-05,4.88306698638915E-05,4.906554898366E-05,4.88187518670686E-05,4.83926469795976E-05,4.79650473317145E-05,4.75898047985139E-05,4.72907734120744E-05,4.71146447200309E-05,4.71146447200309E-05, +0.000251915056791388,0.000251915056791388,0.000252842531396853,0.000251652228785123,0.000249669867461144,0.00024767429853708,0.000245906906085281,0.000244486635482804,0.000243644927305323,0.000243644927305323, +0.00132327010209902,0.00132327010209902,0.0013268464738771,0.00132100394298033,0.00131161754712051,0.00130213737499494,0.00129365971515008,0.00128678373353955,0.00128267723949345,0.00128267723949345, +0.006139173250148,0.006139173250148,0.00615011073569707,0.00612500088994702,0.00608621284648892,0.00604688356355988,0.00601131498786764,0.00598213367935776,0.00596451519673598,0.00596451519673598, +0.0246730674932943,0.0246730674932943,0.0246959710826933,0.0246035752042882,0.0244669657641263,0.0243278292732826,0.0242002979765517,0.0240940927686378,0.0240288940620268,0.0240288940620268, +0.0842342438508569,0.0842342438508569,0.0842488760703522,0.0839643142922413,0.0835641667990797,0.0831547712945297,0.0827734065406155,0.0824491881495988,0.0822444952210252,0.0822444952210252, +0.238767045945285,0.238767045945285,0.238664835005287,0.237949624303315,0.237003423831136,0.236032614379635,0.235110352649229,0.234301822238376,0.233763420830973,0.233763420830973, +0.548262549787947,0.548262549787947,0.547837147457915,0.54639614590431,0.544650981707164,0.54286769763017,0.541133205312384,0.539535476239498,0.538340069619562,0.538340069619562, + +00:05:08, +4.9778870597612E-05,4.9778870597612E-05,5.00180386228974E-05,4.97682791833226E-05,4.93357499009389E-05,4.89010764586457E-05,4.8519433956327E-05,4.82153721873301E-05,4.80363704352162E-05,4.80363704352162E-05, +4.9778870597612E-05,4.9778870597612E-05,5.00180386228974E-05,4.97682791833226E-05,4.93357499009389E-05,4.89010764586457E-05,4.8519433956327E-05,4.82153721873301E-05,4.80363704352162E-05,4.80363704352162E-05, +0.000255969100895508,0.000255969100895508,0.000256910326459792,0.000255709006282006,0.000253703023278378,0.000251680943812142,0.000249889235580513,0.000248449758349513,0.000247597090321605,0.000247597090321605, +0.00134069915202246,0.00134069915202246,0.00134431779077042,0.00133843495047568,0.00132896239274689,0.00131938318598428,0.00131081330132223,0.0013038641403932,0.00129971597340043,0.00129971597340043, +0.00620281525806662,0.00620281525806662,0.00621385061852632,0.006188622812393,0.00614957883751236,0.0061099448713737,0.00607408706928376,0.00604467533553102,0.00602692627548128,0.00602692627548128, +0.0248627675082828,0.0248627675082828,0.0248858143462864,0.0247931720162262,0.0246559906367502,0.0245161314282853,0.0243878956948308,0.0242811282867238,0.0242156150513271,0.0242156150513271, +0.0846718134766315,0.0846718134766315,0.0846865149553205,0.0844017044422707,0.084000749326422,0.0835901855990887,0.0832076317483164,0.0828824724100362,0.0826772754285948,0.0826772754285948, +0.2394781002685,0.2394781002685,0.23937586482725,0.238661060801849,0.237714657663894,0.236743039453977,0.235819836101101,0.235010627561918,0.234471976568314,0.234471976568314, +0.54891099654811,0.54891099654811,0.548486318477081,0.547047414302691,0.545304049992058,0.543521995549784,0.54178852737165,0.540191920919606,0.538997631779197,0.538997631779197, + +00:05:09, +5.0741510370137E-05,5.0741510370137E-05,5.0985024416385E-05,5.07322832205599E-05,5.02932629288588E-05,4.98514315466755E-05,4.94633089527161E-05,4.91541544369344E-05,4.89722452113888E-05,4.89722452113888E-05, +5.0741510370137E-05,5.0741510370137E-05,5.0985024416385E-05,5.07322832205599E-05,5.02932629288588E-05,4.98514315466755E-05,4.94633089527161E-05,4.91541544369344E-05,4.89722452113888E-05,4.89722452113888E-05, +0.000260070858067841,0.000260070858067841,0.000261025964889861,0.000259813586024503,0.000257783816689365,0.000255735004041256,0.000253918761276082,0.000252459906873572,0.000251596186144465,0.000251596186144465, +0.00135828022761926,0.00135828022761926,0.00136194138241631,0.00135601818124857,0.00134645912074929,0.00133678035599622,0.00132811770613938,0.001321094945386,0.00131690488258217,0.00131690488258217, +0.00626682535174914,0.00626682535174914,0.00627795878695526,0.00625261314892943,0.00621331298794827,0.00617337366300083,0.00613722583311901,0.00610758306142839,0.00608970312839967,0.00608970312839967, +0.02505302565836,0.02505302565836,0.0250762153081238,0.0249833274037807,0.0248455752770223,0.0247049940280296,0.0245760541314172,0.0244687248093057,0.0244028973375091,0.0244028973375091, +0.0851094934591985,0.0851094934591985,0.0851242628352638,0.0848392054865228,0.0844374475363303,0.0840257208873367,0.0836419825861675,0.0833158861542596,0.0831101874944363,0.0831101874944363, +0.240187605486984,0.240187605486984,0.240085344380007,0.239370946960871,0.238424347549807,0.237451930463317,0.236527795218569,0.235717916391297,0.235179020113229,0.235179020113229, +0.549556767908949,0.549556767908949,0.549132810328517,0.547695994551243,0.545954427440743,0.544173605261108,0.542441164795223,0.540845682930667,0.539652510584412,0.539652510584412, + +00:05:10, +5.17187430845522E-05,5.17187430845522E-05,5.19666606958539E-05,5.17109183488489E-05,5.12653401206812E-05,5.08162661149284E-05,5.04215827303777E-05,5.01072726505653E-05,4.99224212973216E-05,4.99224212973216E-05, +5.17187430845522E-05,5.17187430845522E-05,5.19666606958539E-05,5.17109183488489E-05,5.12653401206812E-05,5.08162661149284E-05,5.04215827303777E-05,5.01072726505653E-05,4.99224212973216E-05,4.99224212973216E-05, +0.000264220656062137,0.000264220656062137,0.000265189774763931,0.000263966296365983,0.000261912575998675,0.000259836807076718,0.000257995810392485,0.000256517407762065,0.000255642541222476,0.000255642541222476, +0.00137601384038511,0.00137601384038511,0.00137971775934697,0.0013737541467531,0.00136410824430311,0.00135432939968739,0.00134557344520304,0.00133847666476944,0.00133424448368419,0.00133424448368419, +0.00633120339971677,0.00633120339971677,0.00634243510494701,0.00631697176465848,0.00627741516897921,0.00623716981795304,0.00620073116654796,0.00617085674989161,0.00615284565130587,0.00615284565130587, +0.025243838999795,0.025243838999795,0.0252671710177076,0.0251740384130305,0.0250357167369482,0.0248944141399882,0.0247647703708477,0.0246568794331638,0.024590738022853,0.024590738022853, +0.0855472782634754,0.0855472782634754,0.0855621141761021,0.0852768118755117,0.0848742558589887,0.0844613715835028,0.0840764534807166,0.0837494238073628,0.0835432258386728,0.0835432258386728, +0.240895564112688,0.240895564112688,0.240793276184613,0.240079285294598,0.239132495940537,0.238159289787977,0.237234232321976,0.236423690993722,0.235884553697469,0.235884553697469, +0.550199881236228,0.550199881236228,0.549776640400513,0.548341904106414,0.546602131492902,0.544822544139278,0.543091134893042,0.541496779530679,0.540304723269638,0.540304723269638, + +00:05:11, +5.27107234409577E-05,5.27107234409577E-05,5.29631025894342E-05,5.27043397359251E-05,5.22521363332139E-05,5.17957344833143E-05,5.13944090333271E-05,5.10748801193802E-05,5.08870517433329E-05,5.08870517433329E-05, +5.27107234409577E-05,5.27107234409577E-05,5.29631025894342E-05,5.27043397359251E-05,5.22521363332139E-05,5.17957344833143E-05,5.13944090333271E-05,5.10748801193802E-05,5.08870517433329E-05,5.08870517433329E-05, +0.000268418822661337,0.000268418822661337,0.000269402084181041,0.0002681674656825,0.00026608962954013,0.000263986680809674,0.000262120710198054,0.000260622587776254,0.000259736482061534,0.000259736482061534, +0.00139390049798576,0.00139390049798576,0.00139764742824966,0.00139164335459134,0.00138191027273859,0.00137203082789034,0.00136318103031539,0.00135600981101363,0.00135173528957885,0.00135173528957885, +0.00639594926055651,0.00639594926055651,0.00640727942653872,0.00638169851473105,0.00634188524180293,0.00630133320574434,0.00626460294675284,0.00623449628377361,0.00621635373002405,0.00621635373002405, +0.0254352045900591,0.0254352045900591,0.0254586785258402,0.0253653020913488,0.0252264120697099,0.0250843888326421,0.024954041498525,0.024845589255842,0.0247791342103483,0.0247791342103483, +0.0859851624031671,0.0859851624031671,0.0860000634926879,0.0857145181088321,0.0853111687736803,0.0848971321606877,0.0845110389071111,0.0841830798428669,0.0839763849298025,0.0839763849298025, +0.241601978688053,0.241601978688053,0.241499662792668,0.240786078347905,0.239839105319025,0.238865119839987,0.237939149763617,0.23712795366865,0.236588579585316,0.236588579585316, +0.550840353748491,0.550840353748491,0.550417825934083,0.548985160276555,0.547247179440592,0.545468829412703,0.543738454829134,0.542145227832445,0.540954286924562,0.540954286924562, + +00:05:12, +5.37176069328887E-05,5.37176069328887E-05,5.39745060180423E-05,5.37127033435684E-05,5.32538072191431E-05,5.27899917689591E-05,5.23819424033687E-05,5.20571309325168E-05,5.18662903978021E-05,5.18662903978021E-05, +5.37176069328887E-05,5.37176069328887E-05,5.39745060180423E-05,5.37127033435684E-05,5.32538072191431E-05,5.27899917689591E-05,5.23819424033687E-05,5.20571309325168E-05,5.18662903978021E-05,5.18662903978021E-05, +0.000272665685663361,0.000272665685663361,0.000273663221248179,0.000272417422358545,0.000270315305662516,0.000268184953155828,0.000266293787994681,0.000264775773717324,0.000263878335210619,0.000263878335210619, +0.0014119407042471,0.0014119407042471,0.00141573089195694,0.00140968630850353,0.00139986571153088,0.00138988514760336,0.00138094096946883,0.0013736948927967,0.00136937780935476,0.00136937780935476, +0.00646106278300076,0.00646106278300076,0.00647249159592169,0.00644679324442716,0.00640672305771258,0.00636586368597068,0.00632884104100269,0.00629850153601714,0.0062802272404663,0.0062802272404663, +0.0256271194879918,0.0256271194879918,0.0256507348847896,0.0255571154875701,0.0254176583298332,0.0252749151756481,0.0251438646008863,0.0250348513758155,0.0249680830038615,0.0249680830038615, +0.086423140440462,0.086423140440462,0.0864381053484996,0.0861523187348506,0.0857481808084804,0.0853329971405622,0.0849457333887992,0.0846168487824241,0.0844096592844036,0.0844096592844036, +0.242306851785291,0.242306851785291,0.242204506785585,0.241491328695601,0.240544178198757,0.239569423062352,0.238642549927008,0.237830706747057,0.237291100072844,0.237291100072844, +0.551478202518549,0.551478202518549,0.551056384024446,0.549625780223415,0.547889588429727,0.546112478164548,0.544383141623075,0.542791044805034,0.541601218495579,0.541601218495579, + +00:05:13, +5.47395498436891E-05,5.47395498436891E-05,5.50010276917199E-05,5.47361659239318E-05,5.42705092233779E-05,5.37991938825865E-05,5.33843381765195E-05,5.30541799735453E-05,5.2860291903636E-05,5.2860291903636E-05, +5.47395498436891E-05,5.47395498436891E-05,5.50010276917199E-05,5.47361659239318E-05,5.42705092233779E-05,5.37991938825865E-05,5.33843381765195E-05,5.30541799735453E-05,5.2860291903636E-05,5.2860291903636E-05, +0.00027696157286697,0.00027696157286697,0.000277973514066135,0.000276716494772858,0.000274589932715359,0.000272431952041217,0.000270515371103619,0.000268977292412211,0.000268068427247622,0.000268068427247622, +0.00143013495914548,0.00143013495914548,0.0014339686494373,0.00142788350835866,0.00141797506229042,0.0014078928619806,0.00139885376683597,0.00139153241499462,0.00138717254830646,0.00138717254830646, +0.00652654380600693,0.00652654380600693,0.00653807144752139,0.00651225578923633,0.00647192845817713,0.00643076110838977,0.00639344530673239,0.00636287236973343,0.00634446604871109,0.00634446604871109, +0.0258195807539633,0.0258195807539633,0.0258433371484519,0.0257494756521527,0.0256094525733522,0.0254659902400044,0.0253342367655689,0.0252246628926573,0.025157581508303,0.025157581508303, +0.0868612069857282,0.0868612069857282,0.0868762343553353,0.0865902083503984,0.086185286539951,0.0857689610930647,0.085380531497232,0.0850507251955218,0.0848430434668399,0.0848430434668399, +0.243010186005675,0.243010186005675,0.242907810773882,0.242195038941709,0.241247717123042,0.240272201928324,0.239344435226165,0.23853195259071,0.237992117487194,0.237992117487194, +0.552113444474947,0.552113444474947,0.551692331622495,0.550263780963626,0.548529375461548,0.546753507334186,0.545025212151444,0.543434247275217,0.542245534787223,0.542245534787223, + +00:05:14, +5.5776709242836E-05,5.5776709242836E-05,5.60428251059246E-05,5.57748850158224E-05,5.53023995793481E-05,5.48234975248518E-05,5.44017524793822E-05,5.40661829168721E-05,5.38692116946873E-05,5.38692116946873E-05, +5.5776709242836E-05,5.5776709242836E-05,5.60428251059246E-05,5.57748850158224E-05,5.53023995793481E-05,5.48234975248518E-05,5.44017524793822E-05,5.40661829168721E-05,5.38692116946873E-05,5.38692116946873E-05, +0.000281306812057686,0.000281306812057686,0.000282333290715429,0.000281065011284316,0.000278913839034783,0.000276728005388059,0.000274785786851349,0.000273227470699478,0.00027230708476524,0.00027230708476524, +0.0014484837587986,0.0014484837587986,0.00145236119578614,0.00144623545014554,0.00143623882275378,0.00142605447032265,0.00141691992275994,0.00140952287867142,0.00140512000792462,0.00140512000792462, +0.00659239215883699,0.00659239215883699,0.00660401880607755,0.0065780859749379,0.00653750127492156,0.00649602531300072,0.00645841559162174,0.00642760863828081,0.00640907001108181,0.00640907001108181, +0.0260125854500357,0.0260125854500357,0.0260364823725121,0.0259423796373398,0.0258017918579711,0.0256576110982138,0.025525155081573,0.0254150209072011,0.0253476268297906,0.0253476268297906, +0.0872993566972104,0.0872993566972104,0.0873144451730069,0.0870281816004637,0.0866224805928339,0.0862050186360996,0.0858154278515646,0.085484703699187,0.0852765320889659,0.0852765320889659, +0.243711983978838,0.243711983978838,0.243609577396475,0.242897211718768,0.241949724664303,0.240973458940698,0.240044808104894,0.239231693591462,0.238691634185864,0.238691634185864, +0.552746096403418,0.552746096403418,0.55232568553624,0.55089917937016,0.549166557394083,0.547391933718645,0.545664683149252,0.544074851928893,0.542887252463581,0.542887252463581, + +00:05:15, +5.68292429822178E-05,5.68292429822178E-05,5.71000565377744E-05,5.68290189409356E-05,5.63496363052535E-05,5.58630601826269E-05,5.54343422254712E-05,5.50932962240952E-05,5.48932059921235E-05,5.48932059921235E-05, +5.68292429822178E-05,5.68292429822178E-05,5.71000565377744E-05,5.68290189409356E-05,5.63496363052535E-05,5.58630601826269E-05,5.54343422254712E-05,5.50932962240952E-05,5.48932059921235E-05,5.48932059921235E-05, +0.000285701730993798,0.000285701730993798,0.000286742879242305,0.000285463300217896,0.000283287352929431,0.000281073441100669,0.000279105362555516,0.000277526635415285,0.000276594634356946,0.000276594634356946, +0.00146698759545668,0.00146698759545668,0.00147090902221723,0.0014647426259641,0.00145465748677485,0.00144437046806748,0.00143513993374511,0.00142766678106976,0.00142322068588654,0.00142322068588654, +0.00665860766113701,0.00665860766113701,0.00667033348672408,0.00664428361768126,0.0066034413300071,0.00656165613012382,0.00652375173367447,0.00649271018534333,0.00647403897422512,0.00647403897422512, +0.026206130640121,0.026206130640121,0.0262301676146014,0.0261358244973179,0.0259946732432245,0.0258497748244436,0.0257166166394228,0.0256059225217026,0.0255382160758103,0.0255382160758103, +0.087737584280727,0.087737584280727,0.0877527325090344,0.0874662331778847,0.0870597576397462,0.0866411644352354,0.0862504171183588,0.085918778957691,0.0857101198098327,0.0857101198098327, +0.24441224836209,0.24441224836209,0.244309809319996,0.243597849687136,0.242650203423378,0.241673196631107,0.240743671036089,0.239929932170546,0.239389652556005,0.239389652556005, +0.553376174948318,0.553376174948318,0.552956462432249,0.551531992173777,0.549801150943578,0.548027773974033,0.54630157121136,0.544712875312492,0.543526388049699,0.543526388049699, + +00:05:16, +5.78973096923645E-05,5.78973096923645E-05,5.81728810422445E-05,5.78987268000417E-05,5.74123782002666E-05,5.69180401252394E-05,5.64822651114915E-05,5.6135677140312E-05,5.59324318007502E-05,5.59324318007502E-05, +5.78973096923645E-05,5.78973096923645E-05,5.81728810422445E-05,5.78987268000417E-05,5.74123782002666E-05,5.69180401252394E-05,5.64822651114915E-05,5.6135677140312E-05,5.59324318007502E-05,5.59324318007502E-05, +0.000290146657392432,0.000290146657392432,0.000291202607644807,0.000289911689850704,0.000287710802666462,0.000285468587051453,0.000283474425510941,0.000281875113379406,0.000280931402603023,0.000280931402603023, +0.00148564695749403,0.00148564695749403,0.00148961261605441,0.00148340552401722,0.00147323154431643,0.00146284134678175,0.00145351429244825,0.00144596461560192,0.00144147507604707,0.00144147507604707, +0.00672519012301665,0.00672519012301665,0.00673701529506899,0.00671084852406609,0.0066697484359114,0.00662765338048009,0.00658945356129722,0.0065581768450093,0.00653937277518943,0.00653937277518943, +0.0264002133901369,0.0264002133901369,0.0264243899344526,0.0263298072883725,0.0261880937906337,0.0260424784946841,0.0259086185313241,0.0257973648399973,0.0257293463553753,0.0257293463553753, +0.0881758844893675,0.0881758844893675,0.0881910911183409,0.0879043578230435,0.0874971124008745,0.0870773932034041,0.086685494011285,0.0863529456822538,0.086143801335394,0.086143801335394, +0.24511098183974,0.24511098183974,0.245008509238105,0.244296955534316,0.243349156028833,0.24237141755934,0.241441026521052,0.240626670777898,0.240086175013738,0.240086175013738, +0.554003696614043,0.554003696614043,0.553584678837058,0.552162235964457,0.550433172685922,0.548661044616943,0.546935892793878,0.54534833383437,0.544162957932958,0.544162957932958, + +00:05:17, +5.89810687786328E-05,5.89810687786328E-05,5.92614584483192E-05,5.89841684691269E-05,5.84907848406885E-05,5.79885964006637E-05,5.75456796135697E-05,5.71934836903809E-05,5.69870469052856E-05,5.69870469052856E-05, +5.89810687786328E-05,5.89810687786328E-05,5.92614584483192E-05,5.89841684691269E-05,5.84907848406885E-05,5.79885964006637E-05,5.75456796135697E-05,5.71934836903809E-05,5.69870469052856E-05,5.69870469052856E-05, +0.000294641918915697,0.000294641918915697,0.000295712803858921,0.000294410508398093,0.00029218451645763,0.000289913771066967,0.000287893302975706,0.00028627323138134,0.000285317716056671,0.000285317716056671, +0.00150446232940099,0.00150446232940099,0.00150847246072382,0.00150222462860286,0.00149196148144221,0.00148146759415257,0.00147204348766997,0.00146441687184115,0.00145988366842988,0.00145988366842988, +0.0067921393451285,0.0067921393451285,0.00680406402727428,0.00677778049122248,0.00673642239560859,0.0066940168752709,0.00665552089337852,0.00662400844184982,0.00660507124150323,0.00660507124150323, +0.0265948307681599,0.0265948307681599,0.0266191463940533,0.0265243250690414,0.0263820505638616,0.0262357191869035,0.0261011578513203,0.0259893449676569,0.025921014779182,0.025921014779182, +0.0886142521231906,0.0886142521231906,0.0886295158029479,0.0883425503235595,0.0879345396436704,0.0875136997006,0.0871206532908252,0.0867871986307496,0.0865775714182122,0.0865775714182122, +0.245808187122433,0.245808187122433,0.245705679870833,0.24499453197428,0.244046585136287,0.243068124312659,0.242136877088811,0.241321911891471,0.240781204003467,0.240781204003467, +0.554628677766435,0.554628677766435,0.554210351138579,0.552789927192811,0.551062639058052,0.549291762025854,0.547567664215551,0.545981243766185,0.544796978364451,0.544796978364451, + +00:05:18, +6.00806804173446E-05,6.00806804173446E-05,6.0365949355097E-05,6.00855045954885E-05,5.95850165760594E-05,5.90748888316667E-05,5.86247449834393E-05,5.8266874675135E-05,5.80572098665901E-05,5.80572098665901E-05, +6.00806804173446E-05,6.00806804173446E-05,6.0365949355097E-05,6.00855045954885E-05,5.95850165760594E-05,5.90748888316667E-05,5.86247449834393E-05,5.8266874675135E-05,5.80572098665901E-05,5.80572098665901E-05, +0.000299187843156903,0.000299187843156903,0.0003002737957448,0.000298960083999839,0.000296708822445423,0.000294409320914065,0.0002923623221573,0.000290721316166473,0.000289753901230188,0.000289753901230188, +0.00152343419177626,0.00152343419177626,0.00152748903574636,0.00152120042010654,0.00151084778030909,0.00150024969397951,0.00149072800434663,0.00148302403551341,0.00147844694921918,0.00147844694921918, +0.0068594551187475,0.0068594551187475,0.00687147947013563,0.00684507930689096,0.00680346300264934,0.00676074641625745,0.00672195353936759,0.00669020479099723,0.00667113419125341,0.00667113419125341, +0.0267899798445761,0.0267899798445761,0.0268144340577957,0.0267193749002655,0.026576540628865,0.0264294939812012,0.0262942316954457,0.0261818600121427,0.026113218459764,0.026113218459764, +0.089052682028922,0.089052682028922,0.0890680014116712,0.0887808055139841,0.0883720341825462,0.0879500787335796,0.0875558897639759,0.0872215326074123,0.0870114248571652,0.0870114248571652, +0.246503866946495,0.246503866946495,0.246401323963918,0.245690581746816,0.24474249342775,0.24376331950514,0.242831225295461,0.242015658016574,0.241474741997222,0.241474741997222, +0.555251134634167,0.555251134634167,0.55483349558748,0.553415082171478,0.551689566359342,0.549919942442504,0.548196901659127,0.546611621244253,0.545428465460332,0.545428465460332, + +00:05:19, +6.11963055518807E-05,6.11963055518807E-05,6.14865151278517E-05,6.12028965937852E-05,6.06952345252236E-05,6.01770780119077E-05,5.97196212445805E-05,5.9356009667552E-05,5.91430800178484E-05,5.91430800178484E-05, +6.11963055518807E-05,6.11963055518807E-05,6.14865151278517E-05,6.12028965937852E-05,6.06952345252236E-05,6.01770780119077E-05,5.97196212445805E-05,5.9356009667552E-05,5.91430800178484E-05,5.91430800178484E-05, +0.000303784757626856,0.000303784757626856,0.000304885911073055,0.000303560744706408,0.000301284048689298,0.000298955564286105,0.00029688181019886,0.000295219694422333,0.000294240284581224,0.000294240284581224, +0.00154256302131962,0.00154256302131962,0.00154666281673066,0.00154033337499429,0.00152989091915993,0.00151918812616714,0.00150956832354256,0.00150178658848947,0.0014971654007517,0.0014971654007517, +0.00692713722585012,0.00692713722585012,0.00693926140116213,0.00691274474950248,0.00687087004124075,0.00682784179584025,0.00678875129935319,0.00675676569822355,0.00673756143316352,0.00673756143316352, +0.0269856576922299,0.0269856576922299,0.0270102499926248,0.0269149538455376,0.0267715610540439,0.0266237999599584,0.0264878371618759,0.0263749070829565,0.0263059545116435,0.0263059545116435, +0.0894911690996541,0.0894911690996541,0.0895065428398171,0.0892191182754957,0.0888095908785715,0.0883865251555616,0.0879911982839521,0.0876559424625414,0.0874453564971533,0.0874453564971533, +0.247198024073296,0.247198024073296,0.247095444288164,0.24638510761688,0.245436883610966,0.244457005777015,0.243524073723508,0.242707911685222,0.242166791493994,0.242166791493994, +0.555871083310114,0.555871083310114,0.555454128298556,0.554037717076508,0.552313970752976,0.550545601973252,0.548823621172711,0.547239482270895,0.546057435203155,0.546057435203155, + +00:05:20, +6.232810588873E-05,6.232810588873E-05,6.2623317894049E-05,6.23365066420427E-05,6.18216005723498E-05,6.12953253019933E-05,6.08304691883141E-05,6.04610490088766E-05,6.0244817460708E-05,6.0244817460708E-05, +6.232810588873E-05,6.232810588873E-05,6.2623317894049E-05,6.23365066420427E-05,6.18216005723498E-05,6.12953253019933E-05,6.08304691883141E-05,6.04610490088766E-05,6.0244817460708E-05,6.0244817460708E-05, +0.00030843298974023,0.00030843298974023,0.000309549477511133,0.000308212818465293,0.000305910523151973,0.00030355282878924,0.000301452094165466,0.000299768692764904,0.000298777192499108,0.000298777192499108, +0.00156184929082497,0.00156184929082497,0.00156599427536626,0.00155962396580588,0.00154909137231658,0.0015382833667178,0.00152856492244268,0.00152070500877737,0.00151603950150911,0.00151603950150911, +0.00699518543919357,0.00699518543919357,0.00700740958865582,0.00698077658825828,0.0069386432863262,0.0068953027971384,0.00685591396414237,0.00682369096001875,0.00680435276667192,0.00680435276667192, +0.0271818613865699,0.0271818613865699,0.0272065912681844,0.0271110589710479,0.0269671089103894,0.0268186342079861,0.0266819713510768,0.0265684832917898,0.0264992200514801,0.0264992200514801, +0.0899297082745448,0.0899297082745448,0.0899451350288794,0.0896574835355953,0.0892472046391695,0.0888230338659274,0.0884265737498906,0.0880904230922083,0.0878793612288067,0.0878793612288067, +0.24789066128861,0.24789066128861,0.247788043638807,0.247078112373961,0.246129758418776,0.245149185794031,0.244215424981227,0.243398675455486,0.242857355019098,0.242857355019098, +0.556488539752712,0.556488539752712,0.556072265252084,0.554657847948728,0.552935868267308,0.551168756590429,0.549447838671101,0.547864842715767,0.546683903443199,0.546683903443199, + +00:05:21, +6.34762438934945E-05,6.34762438934945E-05,6.37765205393186E-05,6.34864976776155E-05,6.29642773629065E-05,6.24297928254876E-05,6.19574503698512E-05,6.15821538046998E-05,6.13625830613716E-05,6.13625830613716E-05, +6.34762438934945E-05,6.34762438934945E-05,6.37765205393186E-05,6.34864976776155E-05,6.29642773629065E-05,6.24297928254876E-05,6.19574503698512E-05,6.15821538046998E-05,6.13625830613716E-05,6.13625830613716E-05, +0.000313132866802011,0.000313132866802011,0.000314264822609767,0.000312916633107426,0.00031058857368581,0.00030820144192879,0.000306073501030524,0.000304368637725022,0.000303364951291248,0.000303364951291248, +0.00158129346917374,0.00158129346917374,0.00158548387941734,0.00157907266114842,0.00156844961017341,0.00155753588772485,0.00154771827434548,0.00153977977051527,0.00153506972611084,0.00153506972611084, +0.00706359952239488,0.00706359952239488,0.00707592379179118,0.00704917458320961,0.00700678250366508,0.00696312919406891,0.00692344131533905,0.00689098036366905,0.00687150798200993,0.00687150798200993, +0.0273785880057924,0.0273785880057924,0.0274034549569598,0.0273076873458285,0.0271631812716279,0.0270139938126712,0.0268766313659504,0.0267625857526694,0.0266930121982174,0.0266930121982174, +0.0903682945385176,0.0903682945385176,0.0903837729662368,0.0900958962678026,0.0896848704178149,0.0892595998099224,0.0888620111065551,0.0885249694379632,0.0883134339881931,0.0883134339881931, +0.248581781402002,0.248581781402002,0.248479124834889,0.247769598831452,0.246821120608483,0.245839862246815,0.24490528170203,0.244087951910865,0.243546435123531,0.243546435123531, +0.557103519787296,0.557103519787296,0.55668792229516,0.555275490695092,0.553555274797203,0.551789422133668,0.550069569937116,0.548487718317174,0.547307885899772,0.547307885899772, + +00:05:22, +6.46408827868508E-05,6.46408827868508E-05,6.49462867033836E-05,6.46530333931052E-05,6.41234282995953E-05,6.35806434648789E-05,6.31007271042985E-05,6.27194859209932E-05,6.24965384466458E-05,6.24965384466458E-05, +6.46408827868508E-05,6.46408827868508E-05,6.49462867033836E-05,6.46530333931052E-05,6.41234282995953E-05,6.35806434648789E-05,6.31007271042985E-05,6.27194859209932E-05,6.24965384466458E-05,6.24965384466458E-05, +0.000317884715994024,0.000317884715994024,0.000319032273789504,0.00031767251633368,0.000315318528019271,0.000312901731095678,0.000310746357662226,0.000309019855734851,0.000308003887169609,0.000308003887169609, +0.00160089602132873,0.00160089602132873,0.00160513209271662,0.00159867992569042,0.00158796609919107,0.00157694615736618,0.00156702884865638,0.00155901134396466,0.00155425654530716,0.00155425654530716, +0.0071323792300098,0.0071323792300098,0.00714480376069451,0.00711793848533741,0.00707528744991245,0.00703132075142581,0.00699133312542263,0.00695863368733504,0.00693902686027979,0.00693902686027979, +0.0275758346309834,0.0275758346309834,0.027600838134419,0.027504836041894,0.0273597752143643,0.0272098758641195,0.0270718143119784,0.0269572115821023,0.0268873280732279,0.0268873280732279, +0.0908069229219621,0.0908069229219621,0.0908224516848513,0.0905343514913529,0.0901225832137314,0.0896962179783574,0.0892975053440412,0.0889595764865423,0.0887475697565267,0.0887475697565267, +0.249271387246213,0.249271387246213,0.249168690718646,0.24845956982604,0.247510972961229,0.246529037850255,0.245593646543846,0.244775743659661,0.244234034383355,0.244234034383355, +0.557716039107427,0.557716039107427,0.557301115143027,0.555890661090013,0.554172206105367,0.552407614311221,0.550688830622899,0.549108124683372,0.547929398162511,0.547929398162511, + +00:05:23, +6.58221865404685E-05,6.58221865404685E-05,6.61327807759476E-05,6.58362782322364E-05,6.52992175382395E-05,6.47480408575025E-05,6.42604624626203E-05,6.38732079801001E-05,6.36468459999461E-05,6.36468459999461E-05, +6.58221865404685E-05,6.58221865404685E-05,6.61327807759476E-05,6.58362782322364E-05,6.52992175382395E-05,6.47480408575025E-05,6.42604624626203E-05,6.38732079801001E-05,6.36468459999461E-05,6.36468459999461E-05, +0.000322688864361533,0.000322688864361533,0.000323852158327313,0.000322480795701438,0.000320100713743454,0.000317654023552958,0.000315470990810077,0.000313722673114421,0.000312694326237265,0.000312694326237265, +0.00162065740832817,0.00162065740832817,0.00162493937515975,0.00161844622015604,0.00160764130189068,0.00159651463989817,0.00158649711088139,0.00157840019550394,0.00157360042597272,0.00157360042597272, +0.00720152430761174,0.00720152430761174,0.00721404923652313,0.0071870680366318,0.00714415787269849,0.00709987722495921,0.00705958915782639,0.00702665070012977,0.00700690917353261,0.00700690917353261, +0.0277735983462571,0.0277735983462571,0.0277987378791513,0.0277025021343811,0.027556887818222,0.0274062774552972,0.027267517297364,0.0271523578992169,0.0270821648004544,0.0270821648004544, +0.0912455885004356,0.0912455885004356,0.0912611662629667,0.0909728442708943,0.090560338071591,0.0901328834073114,0.0897330514974815,0.0893942392695761,0.0891817635598762,0.0891817635598762, +0.24995948167656,0.24995948167656,0.249856744154907,0.249148028217097,0.248199318281393,0.247216715342886,0.246280522188506,0.245462053334369,0.244920155399078,0.244920155399078, +0.558326113276202,0.558326113276202,0.557911859380381,0.55650337477669,0.554786677823655,0.553023348701259,0.551305636251216,0.549726077293848,0.548548455692657,0.548548455692657, + +00:05:24, +6.70203198728866E-05,6.70203198728866E-05,6.73361678925382E-05,6.70363973856895E-05,6.64918099836311E-05,6.59321493914215E-05,6.54368202675573E-05,6.50434833566828E-05,6.48136688572588E-05,6.48136688572588E-05, +6.70203198728866E-05,6.70203198728866E-05,6.73361678925382E-05,6.70363973856895E-05,6.64918099836311E-05,6.59321493914215E-05,6.54368202675573E-05,6.50434833566828E-05,6.48136688572588E-05,6.48136688572588E-05, +0.000327545638799923,0.000327545638799923,0.000328724803343274,0.000327341798611247,0.000324935458298711,0.000322458646422417,0.000320247727091511,0.000318477416058262,0.000317436594475033,0.000317436594475033, +0.00164057808728031,0.00164057808728031,0.00164490618270002,0.00163837200131986,0.00162747567684838,0.00161624179564997,0.00160612352262124,0.00159794678762226,0.00159310183110038,0.00159310183110038, +0.00727103449187045,0.00727103449187045,0.00728365995154451,0.00725656297017151,0.00721339351070793,0.00716879836145424,0.00712820916701589,0.00709503116219669,0.0070751546848462,0.0070751546848462, +0.0279718762388929,0.0279718762388929,0.0279971512730036,0.027900682701685,0.0277545161659805,0.0276031956821698,0.0274637374331708,0.0273480218259026,0.0272775195065499,0.0272775195065499, +0.0916842863943645,0.0916842863943645,0.0916999118238082,0.0914113697161865,0.0909981300812125,0.0905695911778338,0.0901686446467523,0.0898289528632972,0.0896160104688752,0.0896160104688752, +0.250646067570346,0.250646067570346,0.250543288030496,0.249834976886087,0.248886159395979,0.247902897486287,0.246965911341147,0.246146883591074,0.245604800795051,0.245604800795051, +0.558933757727549,0.558933757727549,0.558520170462664,0.557113647268407,0.555398705454378,0.553636640753164,0.551920002216729,0.550341591500599,0.549165073824322,0.549165073824322, + +00:05:25, +6.8235448245348E-05,6.8235448245348E-05,6.85566139303106E-05,6.82535567868929E-05,6.77013712853359E-05,6.71331342012643E-05,6.66299650895033E-05,6.62304761736281E-05,6.599717090306E-05,6.599717090306E-05, +6.8235448245348E-05,6.8235448245348E-05,6.85566139303106E-05,6.82535567868929E-05,6.77013712853359E-05,6.71331342012643E-05,6.66299650895033E-05,6.62304761736281E-05,6.599717090306E-05,6.599717090306E-05, +0.00033245536604146,0.00033245536604146,0.000333650535787345,0.000332255852293556,0.000329823088961339,0.00032731592667125,0.000325076892978577,0.000323284410622097,0.000322231017728175,0.000322231017728175, +0.0016606585113582,0.0016606585113582,0.00166503296734337,0.0016584577220019,0.00164746967869018,0.00163612808101811,0.0016259085415657,0.0016176515789139,0.0016127612197954,0.0016127612197954, +0.00734090951063063,0.00734090951063063,0.00735363562921525,0.00732642301020309,0.00728299409375926,0.00723808389880982,0.00719719289856712,0.0071637748247875,0.00714376314840272,0.00714376314840272, +0.0281706653994703,0.0281706653994703,0.0281960754012144,0.0280993748255943,0.0279526573437119,0.0278006276438384,0.0276604718334598,0.0275442004869471,0.0274733893210155,0.0274733893210155, +0.0921230117687468,0.0921230117687468,0.0921386835352826,0.0918499229817988,0.0914359543772622,0.0910063364156484,0.0906042799161801,0.09026371238825,0.0900503055984312,0.0900503055984312, +0.251331147826279,0.251331147826279,0.251228325253656,0.250520418735985,0.249571499154037,0.248587587064493,0.247649816729619,0.246830237108861,0.246287973218878,0.246287973218878, +0.559538987767512,0.559538987767512,0.559126063717348,0.557721493949826,0.556008304371577,0.554247505788801,0.552531943787266,0.55095468252938,0.549779267765738,0.549779267765738, + +00:05:26, +6.94677378575919E-05,6.94677378575919E-05,6.97942855038087E-05,6.94879231077731E-05,6.89280678334568E-05,6.83511611640213E-05,6.78400622423393E-05,6.74343512979105E-05,6.71975167661929E-05,6.71975167661929E-05, +6.94677378575919E-05,6.94677378575919E-05,6.97942855038087E-05,6.94879231077731E-05,6.89280678334568E-05,6.83511611640213E-05,6.78400622423393E-05,6.74343512979105E-05,6.71975167661929E-05,6.71975167661929E-05, +0.000337418372642129,0.000337418372642129,0.000338629682426209,0.000337223283795528,0.000334763932830364,0.000332226191098826,0.000329958814784713,0.000328143982709632,0.000327077921693191,0.000327077921693191, +0.00168089912979491,0.00168089912979491,0.0016853201771438,0.00167870383106302,0.00166762375808724,0.00165617394846149,0.00164585262148842,0.00163751502407279,0.00163257904727005,0.00163257904727005, +0.00741114908299039,0.00741114908299039,0.00742397598425993,0.00739664787222003,0.00735295934288387,0.00730773356611739,0.00726654008924466,0.00723288143033986,0.00721273430956634,0.00721273430956634, +0.0283699629220006,0.0283699629220006,0.0283955073525458,0.0282985755914226,0.0281513084409133,0.027998570442674,0.0278577176154238,0.0277408910101712,0.0276697713763349,0.0276697713763349, +0.0925617598328558,0.0925617598328558,0.0925774766096791,0.0922884992668107,0.0918738061389543,0.0914431142908574,0.0910399524742492,0.0906985130089997,0.0904846441074372,0.0904846441074372, +0.252014725363904,0.252014725363904,0.251911858753469,0.251204356690695,0.250255340426075,0.249270786883411,0.2483322411039,0.24751211658923,0.246969675340827,0.246969675340827, +0.560141818575511,0.560141818575511,0.559729554345198,0.558326930078264,0.556615489822298,0.554855959003774,0.553141476105072,0.551565365480954,0.550391052600496,0.550391052600496, + +00:05:27, +7.07173556436072E-05,7.07173556436072E-05,7.1049349960687E-05,7.07396637544651E-05,7.01720667543564E-05,6.95863968948003E-05,6.90672777792274E-05,6.86552743364143E-05,6.84148718157039E-05,6.84148718157039E-05, +7.07173556436072E-05,7.07173556436072E-05,7.1049349960687E-05,7.07396637544651E-05,7.01720667543564E-05,6.95863968948003E-05,6.90672777792274E-05,6.86552743364143E-05,6.84148718157039E-05,6.84148718157039E-05, +0.000342434984968561,0.000342434984968561,0.000343662569830208,0.000342244419967942,0.000339758316814398,0.000337189766323529,0.000334893818651592,0.00033305645805941,0.000331977631904676,0.000331977631904676, +0.00170130038787903,0.00170130038787903,0.00170576825619913,0.00169911077340066,0.00168793836175139,0.00167637984649672,0.00166595621224202,0.00165753757388755,0.00165255576483843,0.00165255576483843, +0.00748175291937962,0.00748175291937962,0.00749468072274975,0.00746723726304174,0.00742328897040501,0.00737774708373936,0.0073362504670796,0.00730235071255502,0.00728206790496064,0.00728206790496064, +0.0285697659040577,0.0285697659040577,0.0285954442194127,0.0284982820881392,0.0283504665506388,0.0281970211844497,0.0280554718995204,0.0279380905265617,0.0278666628081083,0.0278666628081083, +0.0930005258399436,0.0930005258399436,0.0930162863033713,0.0927270938145117,0.0923116805897522,0.0918799200176465,0.0914756575333098,0.0911333499338431,0.0909190211984823,0.0909190211984823, +0.252696803123035,0.252696803123035,0.252593891479298,0.251886793694492,0.250937686103491,0.249952499770249,0.249013187235531,0.248192524755527,0.247649909853259,0.247649909853259, +0.560742265205604,0.560742265205604,0.560330657421523,0.558929970784951,0.557220276927846,0.555462015468673,0.553748614188039,0.552173655332317,0.55100044328877,0.55100044328877, + +00:05:28, +7.19844692673439E-05,7.19844692673439E-05,7.23219753773916E-05,7.20089468629822E-05,7.14335359063397E-05,7.0839008742541E-05,7.03117784883626E-05,6.98934116317138E-05,6.96494021566369E-05,6.96494021566369E-05, +7.19844692673439E-05,7.19844692673439E-05,7.23219753773916E-05,7.20089468629822E-05,7.14335359063397E-05,7.0839008742541E-05,7.03117784883626E-05,6.98934116317138E-05,6.96494021566369E-05,6.96494021566369E-05, +0.000347505529185027,0.000347505529185027,0.000348749524360352,0.000347319587452172,0.000344806567618578,0.000342206978769681,0.000339882230536053,0.000338022162231751,0.000336930473722273,0.000336930473722273, +0.00172186272695062,0.00172186272695062,0.00172637764464704,0.0017196789899449,0.00170841393243112,0.00169674621969377,0.00168621975975348,0.00167771967523673,0.00167269181991178,0.00167269181991178, +0.00755272072163811,0.00755272072163811,0.00756574954218108,0.00753819088089233,0.00749398268001656,0.00744812416338758,0.00740632375144738,0.00737218239647523,0.00735176366254596,0.00735176366254596, +0.0287700714469054,0.0287700714469054,0.0287958830980109,0.0286984914084964,0.0285501287696279,0.0283959769784706,0.0282537318096015,0.0281357961704017,0.0280640607551825,0.0280640607551825, +0.0934393050869465,0.0934393050869465,0.0934551079165193,0.0931657019121029,0.0927495729970713,0.0923167488539901,0.0919113903492866,0.0915682184145195,0.0913534321175638,0.0913534321175638, +0.253377384063211,0.253377384063211,0.25327442640023,0.252567732711464,0.251618539098012,0.250632728572952,0.24969265791705,0.248871464352377,0.248328679470064,0.248328679470064, +0.561340342587718,0.561340342587718,0.560929387897416,0.559530631076282,0.557822680685023,0.556065690130307,0.554353372930938,0.552779566937914,0.551607454668523,0.551607454668523, + +00:05:29, +7.32692471183861E-05,7.32692471183861E-05,7.36123305548022E-05,7.32959412948463E-05,7.27126438752967E-05,7.210916478569E-05,7.15737318886857E-05,7.11489302578147E-05,7.09012746257884E-05,7.09012746257884E-05, +7.32692471183861E-05,7.32692471183861E-05,7.36123305548022E-05,7.32959412948463E-05,7.27126438752967E-05,7.210916478569E-05,7.15737318886857E-05,7.11489302578147E-05,7.09012746257884E-05,7.09012746257884E-05, +0.000352630331240532,0.000352630331240532,0.000353890872155417,0.000352449112667251,0.000349909011731594,0.000347278154654548,0.000344924376197109,0.000343041420595777,0.000341936772317692,0.000341936772317692, +0.00174258658439733,0.00174258658439733,0.00174714877866149,0.00174040891765491,0.00172905090890776,0.001717273508672,0.00170664370602002,0.00169806177108451,0.00169298765599403,0.00169298765599403, +0.0076240521830936,0.0076240521830936,0.00763718213155382,0.00760950841547924,0.00756504016686171,0.00751886450820149,0.0074767596531455,0.0074423761985611,0.00742182130169659,0.00742182130169659, +0.0289708766556239,0.0289708766556239,0.0289968210884417,0.0288992006491554,0.0287502921984326,0.0285954349377015,0.028452494473042,0.0283340050793993,0.02826196235978,0.02826196235978, +0.0938780929141895,0.0938780929141895,0.0938939367927733,0.0936043188903987,0.0931874786719814,0.0927535961013584,0.0923471462213887,0.0920031137459222,0.0917878721537998,0.0917878721537998, +0.254056471163147,0.254056471163147,0.25395346650453,0.253247176724963,0.252297902341144,0.25131147615965,0.250370655961439,0.249548938145134,0.249005986926101,0.249005986926101, +0.561936065528877,0.561936065528877,0.561525760600976,0.560128925835048,0.55842271596736,0.556666997812918,0.554955767106621,0.553383115030843,0.552212101456707,0.552212101456707, + +00:05:30, +7.45718583075854E-05,7.45718583075854E-05,7.49205850138356E-05,7.46008166326802E-05,7.4009559970306E-05,7.33970338278361E-05,7.28533062255558E-05,7.24219980158549E-05,7.21706567874216E-05,7.21706567874216E-05, +7.45718583075854E-05,7.45718583075854E-05,7.49205850138356E-05,7.46008166326802E-05,7.4009559970306E-05,7.33970338278361E-05,7.28533062255558E-05,7.24219980158549E-05,7.21706567874216E-05,7.21706567874216E-05, +0.000357809716855971,0.000357809716855971,0.000359086939119121,0.000357633321797017,0.000355065975412799,0.00035240361997543,0.000350020581183045,0.000348114558316513,0.000346996852661817,0.000346996852661817, +0.001763472393651,0.001763472393651,0.00176808209044947,0.00176130098951569,0.00174984972599216,0.0017379621500965,0.00172722848910516,0.00171856430047665,0.00171344371267772,0.00171344371267772, +0.00769574698863964,0.00769574698863964,0.00770897817144959,0.0076811895480717,0.0076364611176114,0.00758996781282627,0.00754755787447097,0.00751293182676875,0.00749224053327779,0.00749224053327779, +0.0291721786392327,0.0291721786392327,0.0291982552948353,0.0291004069108099,0.0289509539415417,0.0287953921788921,0.0286517570208652,0.0285327143948138,0.0284603647676253,0.0284603647676253, +0.094316884705094,0.094316884705094,0.0943327683189776,0.0940429401235303,0.0936253929689111,0.093190457104424,0.0927829204918197,0.0924380312658109,0.0922223366391426,0.0922223366391426, +0.254734067420205,0.254734067420205,0.254631014799111,0.253925128737073,0.252975778783625,0.251988745418115,0.251047184201582,0.250224948919336,0.249681834976658,0.249681834976658, +0.562529448714415,0.562529448714415,0.562119790238518,0.560724869821656,0.559020397526326,0.557265953219386,0.555555811367223,0.553984314224039,0.552814398250444,0.552814398250444, + +00:05:31, +7.58924726626565E-05,7.58924726626565E-05,7.62469089910104E-05,7.59237431757606E-05,7.53244542192003E-05,7.47027853933067E-05,7.41506704663836E-05,7.37127834297655E-05,7.34577169289426E-05,7.34577169289426E-05, +7.58924726626565E-05,7.58924726626565E-05,7.62469089910104E-05,7.59237431757606E-05,7.53244542192003E-05,7.47027853933067E-05,7.41506704663836E-05,7.37127834297655E-05,7.34577169289426E-05,7.34577169289426E-05, +0.000363044011511391,0.000363044011511391,0.00036433805090739,0.000362872540777348,0.000360277784679396,0.000357583700496831,0.000355171170818591,0.000353241900342064,0.000352111039511898,0.000352111039511898, +0.00178452058418453,0.00178452058418453,0.00178917800824809,0.00178235563453513,0.00177081081452153,0.00175881257667475,0.0017479745431352,0.00173922769853683,0.00173406042564023,0.00173406042564023, +0.00776780481481325,0.00776780481481325,0.00778113733410974,0.007753233951579,0.00770824521054264,0.00766143376349066,0.00761871810929775,0.00758384898062681,0.0075630210597227,0.0075630210597227, +0.0293739745108126,0.0293739745108126,0.0294001828254718,0.0293021072983069,0.0291521111075037,0.0289958458227009,0.0288515165878669,0.0287319212615794,0.0286592651280697,0.0286592651280697, +0.0947556758858837,0.0947556758858837,0.0947715979248758,0.094481561028649,0.0940633112853523,0.0936273272507702,0.0932187085454889,0.0928729663545253,0.092656820948093,0.092656820948093, +0.255410175849868,0.255410175849868,0.255307074309002,0.254601591768079,0.253652171394898,0.252664539255224,0.251722245489733,0.250899499480169,0.25035622639691,0.25035622639691, +0.56312050670917,0.56312050670917,0.56271149139577,0.561318477675333,0.559615739992531,0.55786257093242,0.55615352024534,0.554583179011453,0.553414359528195,0.553414359528195, + +00:05:32, +7.72312607237339E-05,7.72312607237339E-05,7.75914734339745E-05,7.72648919355341E-05,7.66574973640929E-05,7.60265897227262E-05,7.54659942962269E-05,7.50214557418951E-05,7.47626240565367E-05,7.47626240565367E-05, +7.72312607237339E-05,7.72312607237339E-05,7.75914734339745E-05,7.72648919355341E-05,7.66574973640929E-05,7.60265897227262E-05,7.54659942962269E-05,7.50214557418951E-05,7.47626240565367E-05,7.47626240565367E-05, +0.000368333540433314,0.000368333540433314,0.000369644532915703,0.00036816709528348,0.000365544765293721,0.000362818721737719,0.000360376470192179,0.000358423771390893,0.000357279657398815,0.000357279657398815, +0.00180573158150903,0.00180573158150903,0.00181043695632192,0.00180357327774143,0.00179193460135675,0.00177982521715367,0.001768882298296,0.00176005239646324,0.00175483822664037,0.00175483822664037, +0.00784022532987243,0.00784022532987243,0.00785365928351318,0.00782564129062863,0.00778039211561661,0.00773326203808474,0.00769024004315391,0.0076551273513133,0.00763416257510905,0.00763416257510905, +0.0295762613876252,0.0295762613876252,0.0296026007929,0.0295042989207667,0.0293537608090464,0.0291967929938159,0.0290517703127369,0.0289316228284279,0.0288586605942129,0.0288586605942129, +0.0951944619252939,0.0951944619252939,0.0952104210828165,0.0949201770656313,0.094501229061566,0.0940642019705996,0.0936545058097229,0.0933079144346986,0.0930913204974144,0.0930913204974144, +0.256084799485224,0.256084799485224,0.255981648076833,0.255276568855949,0.254327083162581,0.253338860596437,0.252395842696983,0.25157259265194,0.251029163981393,0.251029163981393, +0.56370925395867,0.56370925395867,0.563300878539056,0.561909763915324,0.560208757876909,0.558456865415734,0.556748908155198,0.555179723769211,0.554011999650921,0.554011999650921, + +00:05:33, +7.85883937388918E-05,7.85883937388918E-05,7.89544499969956E-05,7.86244346310955E-05,7.80088608568681E-05,7.73686177685365E-05,7.67994481133476E-05,7.63481849085934E-05,7.60855478907671E-05,7.60855478907671E-05, +7.85883937388918E-05,7.85883937388918E-05,7.89544499969956E-05,7.86244346310955E-05,7.80088608568681E-05,7.73686177685365E-05,7.67994481133476E-05,7.63481849085934E-05,7.60855478907671E-05,7.60855478907671E-05, +0.000373678628582162,0.000373678628582162,0.000375006710266522,0.000373517310717404,0.000370867242750603,0.000368109008958862,0.000365636804143286,0.000363660495939157,0.000362503030614433,0.000362503030614433, +0.00182710580717142,0.00182710580717142,0.00183185935496078,0.00182495434018081,0.00181322150937993,0.0018010004963169,0.00178995218083008,0.00178103882152561,0.00177577754351529,0.00177577754351529, +0.00791300819387353,0.00791300819387353,0.00792654367545401,0.0078984112216441,0.00785290149455662,0.00780545230623747,0.00776212335329865,0.00772676662173229,0.00770566476523571,0.00770566476523571, +0.0297790363912298,0.0297790363912298,0.0298055063140542,0.0297069788916994,0.0295559001631962,0.0293982308210743,0.0292525153381789,0.0291318162480081,0.029058548323024,0.029058548323024, +0.0956332383342795,0.0956332383342795,0.0956492333074605,0.0953587837367843,0.0949391417802886,0.0945010767364442,0.0940903077539788,0.0937428709709726,0.0935258307458493,0.0935258307458493, +0.256757941376459,0.256757941376459,0.256654739162328,0.255950063055824,0.255000517091956,0.254011712385276,0.253067978712753,0.25224423127756,0.251700650543486,0.251700650543486, +0.564295704790306,0.564295704790306,0.563887966016468,0.562498742942064,0.560799465571895,0.559048851015211,0.557341989393814,0.555773962756767,0.55460733286322,0.55460733286322, + +00:05:34, +7.99640436596277E-05,7.99640436596277E-05,8.03360110364143E-05,8.00025436846298E-05,7.93787168546336E-05,7.87290411904803E-05,7.81512030247314E-05,7.76931415957601E-05,7.74266588621365E-05,7.74266588621365E-05, +7.99640436596277E-05,7.99640436596277E-05,8.03360110364143E-05,8.00025436846298E-05,7.93787168546336E-05,7.87290411904803E-05,7.81512030247314E-05,7.76931415957601E-05,7.74266588621365E-05,7.74266588621365E-05, +0.000379079600639758,0.000379079600639758,0.000380424907796816,0.00037892351219536,0.000376245542264813,0.000373454887150257,0.00037095249724986,0.00036895239820815,0.000367781483199036,0.000367781483199036, +0.00184864367875219,0.00184864367875219,0.00185344562047769,0.0018464992389156,0.00183467195749231,0.00182233883498248,0.00181118461303407,0.00180218739706243,0.00179687880017769,0.00179687880017769, +0.00798615305874829,0.00798615305874829,0.00799979015761895,0.00797154339292272,0.00792577300092576,0.00787800422939402,0.00783436770879917,0.0077987664665904,0.00777752730769908,0.00777752730769908, +0.0299822966475992,0.0299822966475992,0.030008896510369,0.0299101443291203,0.0297585262913933,0.0296001564375793,0.0294537488110274,0.029332498677004,0.0292589254754591,0.0292589254754591, +0.0960720006657253,0.0960720006657253,0.0960880301554881,0.0957973765865525,0.0953770449664396,0.0949379470628754,0.0945261098895575,0.094177831469713,0.0939603471938354,0.0939603471938354, +0.25742960459036,0.25742960459036,0.2573263506418,0.256622077439518,0.255672476205461,0.254683097582819,0.253738656444279,0.252914418218038,0.252370688914896,0.252370688914896, +0.564879873414485,0.564879873414485,0.564472768059019,0.563085429038352,0.561387877352583,0.559638541960057,0.557932778142136,0.556365910118034,0.555200373294468,0.555200373294468, + +00:05:35, +8.13583831363087E-05,8.13583831363087E-05,8.17363296060623E-05,8.13993922168183E-05,8.07672382151375E-05,8.01080323510478E-05,7.95214308415707E-05,7.90564971743543E-05,7.87861281066106E-05,7.87861281066106E-05, +8.13583831363087E-05,8.13583831363087E-05,8.17363296060623E-05,8.13993922168183E-05,8.07672382151375E-05,8.01080323510478E-05,7.95214308415707E-05,7.90564971743543E-05,7.87861281066106E-05,7.87861281066106E-05, +0.000384536780996912,0.000384536780996912,0.000385899450045657,0.000384386024535409,0.000381679988758599,0.00037885668101864,0.000376323873815831,0.000374299802151812,0.000373115338928848,0.000373115338928848, +0.00187034560986358,0.00187034560986358,0.00187519616520732,0.00186820838702256,0.00185628636061246,0.00184384065000082,0.00183258001325644,0.00182349854247861,0.00181814241661335,0.00181814241661335, +0.0080596595683809,0.0080596595683809,0.00807339836966461,0.00804503744471306,0.00799900628020453,0.00795091746089295,0.00790697277060727,0.00787112655247313,0.00784974987196929,0.00784974987196929, +0.0301860392872327,0.0301860392872327,0.0302127685078921,0.0301137923556631,0.0299616363196062,0.0298025669808151,0.0296554678823638,0.0295336672762504,0.0294597892165779,0.0294597892165779, +0.0965107445141569,0.0965107445141569,0.0965268072253082,0.0962359512012253,0.0958149341868296,0.095374808506216,0.0949619077693181,0.0946127914787262,0.0943948653832226,0.0943948653832226, +0.258099792209825,0.258099792209825,0.257996485607665,0.257292615095022,0.256342963542191,0.255353019167201,0.254407878816116,0.253583156351976,0.253039281945162,0.253039281945162, +0.565461773925783,0.565461773925783,0.565055298781793,0.563669836370497,0.561974007377874,0.560225952363935,0.558521288466176,0.556955579882515,0.555791134959927,0.555791134959927, + +00:05:36, +8.27715855135827E-05,8.27715855135827E-05,8.31555794526446E-05,8.28151540422087E-05,8.21745984921488E-05,8.15057643108878E-05,8.09103040747115E-05,8.04384237158693E-05,8.01641274611065E-05,8.01641274611065E-05, +8.27715855135827E-05,8.27715855135827E-05,8.31555794526446E-05,8.28151540422087E-05,8.21745984921488E-05,8.15057643108878E-05,8.09103040747115E-05,8.04384237158693E-05,8.01641274611065E-05,8.01641274611065E-05, +0.000390050493741098,0.000390050493741098,0.000391430661241917,0.000389905172245096,0.000387170906849308,0.000384314714975084,0.000381751257858709,0.000379703031444337,0.000378504921303637,0.000378504921303637, +0.00189221201014809,0.00189221201014809,0.00189711139750456,0.00189008219359158,0.00187806512967484,0.001865506354253,0.0018541387958956,0.00184497267324339,0.00183956880887901,0.00183956880887901, +0.00813352735868461,0.00813352735868461,0.00814736794329448,0.00811889300929222,0.00807260096986809,0.00802419164604319,0.00797993819163589,0.007943846537921,0.0079223321194662,0.0079223321194662, +0.0303902614452676,0.0303902614452676,0.0304171194373947,0.0303179200986905,0.030165227378444,0.0300054595927602,0.0298576697076297,0.0297353192108468,0.0296611367156574,0.0296611367156574, +0.0969494655154524,0.0969494655154524,0.0969655601567678,0.0966745032086455,0.0962528050498701,0.0958116566642524,0.0953976969873932,0.0950477465869763,0.0948293808969916,0.0948293808969916, +0.25876850733338,0.25876850733338,0.258665147167954,0.257961679126023,0.257011982157412,0.256021480133123,0.255075648769646,0.25425044857508,0.253706432501155,0.253706432501155, +0.566041420304069,0.566041420304069,0.565635572185072,0.564251978989461,0.562557869691609,0.560811096226093,0.559107534318127,0.557542985966409,0.556379631761862,0.556379631761862, + +00:05:37, +8.4203824825755E-05,8.4203824825755E-05,8.45939350110868E-05,8.42500036645512E-05,8.36009719308035E-05,8.29224108241824E-05,8.23179959300639E-05,8.18390939877707E-05,8.15608294589438E-05,8.15608294589438E-05, +8.4203824825755E-05,8.4203824825755E-05,8.45939350110868E-05,8.42500036645512E-05,8.36009719308035E-05,8.29224108241824E-05,8.23179959300639E-05,8.18390939877707E-05,8.15608294589438E-05,8.15608294589438E-05, +0.00039562106264421,0.00039562106264421,0.000397018865292039,0.000395481279509197,0.000392718620837094,0.000389829313122683,0.000387234973097259,0.000385162409467851,0.000383950553534398,0.000383950553534398, +0.00191424328527718,0.00191424328527718,0.00191919172174355,0.00191212106372462,0.00190000867162859,0.00188733635664934,0.00187586137139823,0.00186661020088853,0.00186115838910049,0.00186115838910049, +0.00820775605767837,0.00820775605767837,0.00822169850233577,0.00819310971104295,0.00814655669946337,0.00809782642220079,0.0080532636168353,0.00801692607350547,0.00799527370363524,0.00799527370363524, +0.0305949602615881,0.0305949602615881,0.0306219464344806,0.0305225246904036,0.0303692966032662,0.0302088314199981,0.0300603514467382,0.0299374516502695,0.0298629651463043,0.0298629651463043, +0.0973881593465549,0.0973881593465549,0.097404284630863,0.0971130282779188,0.0966906532052837,0.0962484871759476,0.0958334731789056,0.0954826924243036,0.0952638893589728,0.0952638893589728, +0.259435753074707,0.259435753074707,0.259332338445844,0.258629272651425,0.257679535122074,0.256688483491367,0.255741969262596,0.254916297799674,0.254372143466598,0.254372143466598, +0.566618826415633,0.566618826415633,0.566213602155457,0.564831870831987,0.563139478223694,0.561393987432476,0.559691529537467,0.55812814217371,0.556965877490626,0.556965877490626, + +00:05:38, +8.56552757921292E-05,8.56552757921292E-05,8.60515713998485E-05,8.57041162720991E-05,8.50465334629155E-05,8.4358146333988E-05,8.37446803039784E-05,8.32586814488995E-05,8.29764073252617E-05,8.29764073252617E-05, +8.56552757921292E-05,8.56552757921292E-05,8.60515713998485E-05,8.57041162720991E-05,8.50465334629155E-05,8.4358146333988E-05,8.37446803039784E-05,8.32586814488995E-05,8.29764073252617E-05,8.29764073252617E-05, +0.000401248811150415,0.000401248811150415,0.000402664385767906,0.000401114670177559,0.000398323454692716,0.000395400799244322,0.000392775342939275,0.000390678259300188,0.000389452558531134,0.000389452558531134, +0.0019364398369504,0.0019364398369504,0.00194143753831693,0.00193432539853507,0.00192211738943674,0.00190933106212832,0.00189774814625798,0.00188841153300689,0.00188291156547122,0.00188291156547122, +0.00828234528556306,0.00828234528556306,0.00829638966281601,0.00826768716653048,0.00822087309068601,0.00817182141884544,0.00812694868326922,0.00809036480190468,0.00806857427002302,0.00806857427002302, +0.0308001328809332,0.0308001328809332,0.0308272466396927,0.0307276032679491,0.0305738411342908,0.0304126796138267,0.0302635102641835,0.0301400617684813,0.030065271686565,0.030065271686565, +0.0978268217251864,0.0978268217251864,0.0978429763694502,0.0975515221191249,0.0971284743438152,0.0966852957211563,0.0962692320196849,0.0959176246611433,0.0956983864335661,0.0956983864335661, +0.26010153256218,0.26010153256218,0.259998062579185,0.259295398804883,0.258345625522343,0.257354032268324,0.256406843268561,0.25558070695423,0.255036417741586,0.255036417741586, +0.567194006014286,0.567194006014286,0.566789402466976,0.565409525721716,0.563718846791208,0.561974639756832,0.560273287852059,0.558711062197301,0.557549885825752,0.557549885825752, + +00:05:39, +8.71261138123147E-05,8.71261138123147E-05,8.75286644162024E-05,8.71776677328765E-05,8.65114587022537E-05,8.5813145967541E-05,8.51905317785868E-05,8.46973602448402E-05,8.44110349724E-05,8.44110349724E-05, +8.71261138123147E-05,8.71261138123147E-05,8.75286644162024E-05,8.71776677328765E-05,8.65114587022537E-05,8.5813145967541E-05,8.51905317785868E-05,8.46973602448402E-05,8.44110349724E-05,8.44110349724E-05, +0.000406934062364078,0.000406934062364078,0.000408367545894791,0.000406805667753024,0.00040398573204542,0.000401029496790537,0.000398372690469431,0.00039625090370275,0.000395011258890707,0.000395011258890707, +0.00195880206289475,0.00195880206289475,0.00196384924363541,0.00195669559514729,0.0019443916820756,0.00193149087165579,0.00191979952301449,0.00191037707325128,0.00190482874225099,0.00190482874225099, +0.00835729465479765,0.00835729465479765,0.00837144103303937,0.00834262498457909,0.00829554975745696,0.00824617625765683,0.00820099302019064,0.00816416235797901,0.00814223345635277,0.00814223345635277, +0.0310057764530016,0.0310057764530016,0.0310330171986179,0.0309331529735237,0.0307788581167007,0.0306170013303651,0.0304671433291486,0.0303431467440391,0.0302680535190339,0.0302680535190339, +0.0982654484095628,0.0982654484095628,0.0982816311349596,0.0979899804830284,0.0975662641969444,0.0971220780203393,0.096704969225986,0.0963525390082462,0.0961328678254618,0.0961328678254618, +0.260765848938406,0.260765848938406,0.260662322720043,0.259960060734344,0.259010256459135,0.258018129505525,0.257070273776542,0.256243678982892,0.255699258242115,0.255699258242115, +0.56776697274246,0.56776697274246,0.567362986782175,0.565984957370284,0.5642959890995,0.562553066861792,0.560852822879229,0.559291759620019,0.558131670337014,0.558131670337014, + +00:05:40, +8.86165149615012E-05,8.86165149615012E-05,8.90253905314808E-05,8.86708345899125E-05,8.7995923939786E-05,8.728758553153E-05,8.66557256171096E-05,8.61553052032552E-05,8.58648869952475E-05,8.58648869952475E-05, +8.86165149615012E-05,8.86165149615012E-05,8.90253905314808E-05,8.86708345899125E-05,8.7995923939786E-05,8.728758553153E-05,8.66557256171096E-05,8.61553052032552E-05,8.58648869952475E-05,8.58648869952475E-05, +0.000412677139037792,0.000412677139037792,0.0004141286685394,0.00041255459537944,0.000409705776170915,0.00040671572886746,0.000404027338437223,0.000401880665108442,0.00040062697688479,0.00040062697688479, +0.00198133035686438,0.00198133035686438,0.00198642723012766,0.00197923204669651,0.00196683194453456,0.00195381618222451,0.00194201590025262,0.00193250722133356,0.00192691031976502,0.00192691031976502, +0.00843260377017501,0.00843260377017501,0.00844685221366286,0.0084179227663486,0.00837058630599898,0.00832089055259077,0.00827539624911744,0.00823831836884638,0.00821625089259951,0.00821625089259951, +0.0312118881325557,0.0312118881325557,0.0312392552619901,0.0311391709544782,0.0309843447007477,0.0308217937306587,0.0306712478156108,0.0305467037602005,0.0304713078309597,0.0304713078309597, +0.0987040351981091,0.0987040351981091,0.0987202447301084,0.0984283991607921,0.0980040185365992,0.0975588298342805,0.0971406805542082,0.0967874312163992,0.0965673292793626,0.0965673292793626, +0.261428705359775,0.261428705359775,0.261325122034253,0.26062326160159,0.259673431047659,0.258680778259184,0.257732263790483,0.256905216845023,0.256360667899625,0.256360667899625, +0.568337740132292,0.568337740132292,0.567934368653205,0.566558179378417,0.564870918743274,0.563129282299956,0.561430148126833,0.559870247915727,0.558711244485493,0.558711244485493, + +00:05:41, +9.01266559856996E-05,9.01266559856996E-05,9.05419268862893E-05,9.0183794056443E-05,8.95001061388897E-05,8.87816415073351E-05,8.81404377591294E-05,8.76326918291852E-05,8.73381386665549E-05,8.73381386665549E-05, +9.01266559856996E-05,9.01266559856996E-05,9.05419268862893E-05,9.0183794056443E-05,8.95001061388897E-05,8.87816415073351E-05,8.81404377591294E-05,8.76326918291852E-05,8.73381386665549E-05,8.73381386665549E-05, +0.000418478363560481,0.000418478363560481,0.000419948076197996,0.000418361775829769,0.000415483909979435,0.000412459818224851,0.000409739609244996,0.000407567865609712,0.000406300034447893,0.000406300034447893, +0.00200402510864053,0.00200402510864053,0.00200917188624045,0.00200193514232901,0.00198943856781609,0.0019763073868539,0.00196439767260211,0.00195480237302414,0.00194915669440335,0.00194915669440335, +0.0085082722288976,0.0085082722288976,0.00852262279777219,0.00849358010541043,0.00844598233491278,0.00839596390995502,0.00835015798390785,0.00831283245395734,0.00829062620106508,0.00829062620106508, +0.0314184650795224,0.0314184650795224,0.0314459579857908,0.031345654363418,0.0311902980418547,0.031027053980783,0.0308758209024452,0.0307507300050277,0.0306750318143499,0.0306750318143499, +0.0991425779291766,0.0991425779291766,0.0991588129976158,0.0988667739836905,0.0984417331748702,0.0979955469638037,0.0975763618006151,0.0972222970761473,0.0970017665797059,0.0970017665797059, +0.262090104996019,0.262090104996019,0.261986463700971,0.261285004581799,0.260335152416967,0.259341981599749,0.258392816328823,0.257565323514752,0.257020649660544,0.257020649660544, +0.56890632160669,0.56890632160669,0.56850356152289,0.567129205237009,0.565443649207665,0.563703299514951,0.562005276994322,0.560446540450362,0.559288621624621,0.559288621624621, + +00:05:42, +9.16567142969507E-05,9.16567142969507E-05,9.20784512856877E-05,9.17167240110794E-05,9.10241829305302E-05,9.02954910462342E-05,8.96448448158321E-05,8.91296963003168E-05,8.88309659322159E-05,8.88309659322159E-05, +9.16567142969507E-05,9.16567142969507E-05,9.20784512856877E-05,9.17167240110794E-05,9.10241829305302E-05,9.02954910462342E-05,8.96448448158321E-05,8.91296963003168E-05,8.88309659322159E-05,8.88309659322159E-05, +0.0004243380579456,0.0004243380579456,0.000425826090984621,0.000424227531494274,0.000421320456003886,0.000418262087244227,0.000415509824936063,0.000413312826946662,0.000412030753165487,0.000412030753165487, +0.00202688670403183,0.00202688670403183,0.00203208359643915,0.00202480526720263,0.00201221193893612,0.00199896487459019,0.0019869452307374,0.00197726292015166,0.00197156825862052,0.00197156825862052, +0.00858429962065289,0.00858429962065289,0.00859875237095743,0.00856959658782354,0.00852173743525301,0.00847139592848498,0.00842527783083561,0.00838770422517,0.00836535899645291,0.00836535899645291, +0.0316255044590939,0.0316255044590939,0.0316531225313489,0.0315526003583032,0.0313967153007163,0.0312327792519439,0.0310808597735271,0.0309552226714893,0.030879222666073,0.030879222666073, +0.0995810724807607,0.0995810724807607,0.0995973318199192,0.099305100822825,0.098879403963726,0.0984322252494912,0.098012008801056,0.0976571324175171,0.097436175550388,0.097436175550388, +0.262750051029781,0.262750051029781,0.262646350912241,0.261945292863107,0.260995423709512,0.260001742611455,0.259051934424053,0.258224001980528,0.257679206485841,0.257679206485841, +0.5694727304804,0.5694727304804,0.569070578725787,0.567698048328186,0.566014193869295,0.564275131842488,0.562578222773783,0.561020650482974,0.559863815001215,0.559863815001215, + +00:05:43, +9.32068679685025E-05,9.32068679685025E-05,9.36351421943409E-05,9.32698029929473E-05,9.25683326084075E-05,9.18293119645772E-05,9.1169124065215E-05,9.0646495462217E-05,9.03435454065155E-05,9.03435454065155E-05, +9.32068679685025E-05,9.32068679685025E-05,9.36351421943409E-05,9.32698029929473E-05,9.25683326084075E-05,9.18293119645772E-05,9.1169124065215E-05,9.0646495462217E-05,9.03435454065155E-05,9.03435454065155E-05, +0.000430256543819421,0.000430256543819421,0.000431763034619403,0.000430152184368805,0.000427215736388096,0.000424122857927069,0.000421338307182906,0.000419115870495256,0.000417819454262205,0.000417819454262205, +0.00204991552487484,0.00204991552487484,0.0020551627412084,0.00204784280248747,0.00203515244092465,0.00202178903050682,0.00200965896137783,0.00199988925060307,0.00199414540093551,0.00199414540093551, +0.00866068552768845,0.00866068552768845,0.00867524051138845,0.00864597179221012,0.00859785119060396,0.0085471861994191,0.0085007553886649,0.00846293328682464,0.00844044888594253,0.00844044888594253, +0.0318330034418243,0.0318330034418243,0.031860746065437,0.0317600061025454,0.0316035936433973,0.0314389667205783,0.0312863616178313,0.0311601789575612,0.0310838775879592,0.0310838775879592, +0.10001951477022,0.10001951477022,0.100035797118891,0.0997433755888393,0.0993170267947303,0.0988688605714032,0.0984476174306879,0.09809193310974,0.0978705520544886,0.0978705520544886, +0.263408546656183,0.263408546656183,0.263304786872564,0.262604129646175,0.261654248080718,0.26066006439189,0.259709621122277,0.258881255244684,0.25833634135059,0.25833634135059, +0.570036979961045,0.570036979961045,0.569635433489231,0.568264721926364,0.56658256599733,0.564844792511404,0.563148998650977,0.561592591166757,0.560436837756506,0.560436837756506, + +00:05:44, +9.47772957299558E-05,9.47772957299558E-05,9.52121787316375E-05,9.4843210196793E-05,9.41327341240717E-05,9.3383282738929E-05,9.27134534472638E-05,9.21832668235371E-05,9.18760543673458E-05,9.18760543673458E-05, +9.47772957299558E-05,9.47772957299558E-05,9.52121787316375E-05,9.4843210196793E-05,9.41327341240717E-05,9.3383282738929E-05,9.27134534472638E-05,9.21832668235371E-05,9.18760543673458E-05,9.18760543673458E-05, +0.000436234142409408,0.000436234142409408,0.000437759228416952,0.000436136056043166,0.000433170072875134,0.000430042451883126,0.00042722537727547,0.000424977317255611,0.000423666458590136,0.000423666458590136, +0.00207311194903487,0.00207311194903487,0.00207840969705323,0.002071048125367,0.00205826045282664,0.00204478023570507,0.00203253924728811,0.00202268174832391,0.002016888505932,0.002016888505932, +0.00873742952488697,0.00873742952488697,0.00875208678989006,0.00872270528983094,0.00867432317715506,0.008623334306574,0.00857659024872512,0.00853851923581814,0.00851589546926394,0.00851589546926394, +0.0320409592037268,0.0320409592037268,0.0320688257603678,0.0319678687651039,0.0318109302414293,0.0316456135684508,0.0314923236295307,0.0313655960663249,0.0312889937868996,0.0312889937868996, +0.100457900753996,0.100457900753996,0.100474204855558,0.100181594231637,0.0997545975987593,0.099305448848798,0.0988831836036985,0.0985266950609778,0.0983048919939963,0.0983048919939963, +0.264065595082411,0.264065595082411,0.263961774798483,0.263261518143775,0.262311628698548,0.261316950051567,0.260365879482787,0.259537086323007,0.258992057243537,0.258992057243537, +0.570599083150169,0.570599083150169,0.570198138934373,0.568829239199288,0.567148778754511,0.565412294644689,0.563717617706359,0.562162375550065,0.561007702927148,0.561007702927148, + +00:05:45, +9.63681769623795E-05,9.63681769623795E-05,9.68097406667784E-05,9.64371254680601E-05,9.57175670820077E-05,9.49575825011808E-05,9.42780115590977E-05,9.37401885511833E-05,9.34286707513909E-05,9.34286707513909E-05, +9.63681769623795E-05,9.63681769623795E-05,9.68097406667784E-05,9.64371254680601E-05,9.57175670820077E-05,9.49575825011808E-05,9.42780115590977E-05,9.37401885511833E-05,9.34286707513909E-05,9.34286707513909E-05, +0.000442271174532681,0.000442271174532681,0.000443814993274846,0.000442179467689585,0.000439183786795744,0.000436021190318805,0.000433171356109545,0.000430897487840382,0.00042957208661721,0.00042957208661721, +0.00209647635040714,0.00209647635040714,0.00210182483650031,0.00209442160903936,0.00208153634970328,0.00206793886731509,0.00205558646727906,0.00204564079331891,0.00203979795425894,0.00203979795425894, +0.00881453117984085,0.00881453117984085,0.00882929077001691,0.00879979664466056,0.00875115296377601,0.00869983982641943,0.00865278199498532,0.00861446166167818,0.00859169833877167,0.00859169833877167, +0.0322493689263671,0.0322493689263671,0.032277358794087,0.0321761855205794,0.0320187222719053,0.03185271698275,0.0316987430080921,0.0315714712060641,0.0314945684749425,0.0314945684749425, +0.100896226427333,0.100896226427333,0.100912551029817,0.1006197527401,0.100192112345721,0.0997419860398541,0.0993187032730308,0.0989614142180484,0.0987391913095359,0.0987391913095359, +0.264721199527298,0.264721199527298,0.264617317918165,0.263917461580367,0.262967568743091,0.261972402713506,0.261020712577642,0.260191498244319,0.259646357166678,0.259646357166678, +0.571159053044256,0.571159053044256,0.570758708077205,0.569391613209068,0.567712845198186,0.565977651260509,0.564284092916096,0.56273001657742,0.561576423446221,0.561576423446221, + +00:05:46, +9.79796916933957E-05,9.79796916933957E-05,9.84280084138361E-05,9.8051729297936E-05,9.732301173469E-05,9.65523910336322E-05,9.58629776500843E-05,9.53174394654582E-05,9.50015731492806E-05,9.50015731492806E-05, +9.79796916933957E-05,9.79796916933957E-05,9.84280084138361E-05,9.8051729297936E-05,9.732301173469E-05,9.65523910336322E-05,9.58629776500843E-05,9.53174394654582E-05,9.50015731492806E-05,9.50015731492806E-05, +0.000448367960584569,0.000448367960584569,0.000449930649662211,0.000448282740051257,0.000445257199056846,0.000442059394025651,0.000439176564175239,0.000436876702463228,0.000435536658415665,0.000435536658415665, +0.00212000909891814,0.00212000909891814,0.00212540852809953,0.00211796362271897,0.00210498050263339,0.00209126529849711,0.00207880099620861,0.00206876676165292,0.0020628741226313,0.0020628741226313, +0.00889199005292669,0.00889199005292669,0.00890685200812817,0.00887724541346215,0.00882834011209183,0.00877670232815293,0.00872933020412845,0.00869076014663721,0.00866785707951858,0.00866785707951858, +0.0324582297969561,0.0324582297969561,0.0324863423502653,0.0323849535493059,0.0322269669175732,0.0320602741561822,0.0319056169583715,0.0317778015903596,0.0317005988693892,0.0317005988693892, +0.101334487824005,0.101334487824005,0.101350831680161,0.101057847141808,0.100629567044273,0.100178468141392,0.0997541724301082,0.0993960865661531,0.0991734459800956,0.0991734459800956, +0.265375363220926,0.265375363220926,0.265271419470994,0.264571963191699,0.263622071406146,0.262626425512815,0.261674123491252,0.260844494050059,0.260299244134843,0.260299244134843, +0.571716902535747,0.571716902535747,0.571317153829569,0.569951856913196,0.568274778281322,0.56654087527321,0.564848437153064,0.563295527090505,0.562143012144224,0.562143012144224, + +00:05:47, +9.96120205922347E-05,9.96120205922347E-05,0.000100067163026784,9.96872028183694E-05,9.89492489776076E-05,9.81678887640419E-05,9.74685316169239E-05,9.69151990351712E-05,9.65949408007137E-05,9.65949408007137E-05, +9.96120205922347E-05,9.96120205922347E-05,0.000100067163026784,9.96872028183694E-05,9.89492489776076E-05,9.81678887640419E-05,9.74685316169239E-05,9.69151990351712E-05,9.65949408007137E-05,9.65949408007137E-05, +0.000454524820527257,0.000454524820527257,0.000456106517608386,0.000454446193430999,0.000451390630130148,0.000448157383368922,0.000445241321545533,0.000442915280927372,0.000441560493650607,0.000441560493650607, +0.00214371056052733,0.00214371056052733,0.0021491611364259,0.00214167453163844,0.00212859327871522,0.00211475989844298,0.00210218320498315,0.00209206002545199,0.00208611738383121,0.00208611738383121, +0.0089698056973794,0.0089698056973794,0.00898477005346187,0.00895505114586216,0.00890588417655745,0.00885392137377421,0.00880623444562533,0.00876741426570606,0.00874437126932955,0.00874437126932955, +0.0326675390084406,0.0326675390084406,0.0326957736183886,0.0325941700374414,0.0324356613669265,0.0322682822870638,0.0321129426907057,0.0319845844381826,0.0319070821928868,0.0319070821928868, +0.101772681016033,0.101772681016033,0.101789042883396,0.101495873502758,0.101066957741549,0.100614891188599,0.100189587104561,0.0998307081286045,0.0996076520227563,0.0996076520227563, +0.266028089404223,0.266028089404223,0.265924082707177,0.265225026224399,0.264275139890818,0.263279021596288,0.262326115319974,0.261496076793876,0.260950721175283,0.260950721175283, +0.572272644414042,0.572272644414042,0.571873489000165,0.570509983165555,0.568834590853513,0.567101979494319,0.56541066318784,0.56385891982915,0.562707481750054,0.562707481750054, + +00:05:48, +0.000101265344964762,0.000101265344964762,0.000101727386194496,0.000101343727797059,0.000100596460344261,9.98042567606505E-05,9.90948539987049E-05,9.85336473727188E-05,9.82089535895519E-05,9.82089535895519E-05, +0.000101265344964762,0.000101265344964762,0.000101727386194496,0.000101343727797059,0.000100596460344261,9.98042567606505E-05,9.90948539987049E-05,9.85336473727188E-05,9.82089535895519E-05,9.82089535895519E-05, +0.000460742073878519,0.000460742073878519,0.000462342916691682,0.000460670147679974,0.000457584400040832,0.000454315478276249,0.000451365947864937,0.000449013542614251,0.000447643911568653,0.000447643911568653, +0.00216758109722907,0.00216758109722907,0.00217308302208165,0.00216555469705067,0.00215237504106848,0.00213842303237795,0.00212573346055908,0.00211552095290489,0.00210952810670934,0.00210952810670934, +0.00904797765936612,0.00904797765936612,0.00906304444820904,0.00903321338442467,0.00898378470453219,0.00893149651815931,0.00888349428180841,0.00884442358674748,0.00882124047887471,0.00882124047887471, +0.0328772937595921,0.0328772937595921,0.032905649793846,0.0328038321770558,0.0326448028142943,0.0324767385794114,0.0323207174210042,0.0321918169739858,0.0321140156735205,0.0321140156735205, +0.102210802113414,0.102210802113414,0.102227180754366,0.101933827927088,0.101504280522875,0.101051251254753,0.100624943363954,0.100265274966556,0.100041805492421,0.100041805492421, +0.266679381328572,0.266679381328572,0.266575310887345,0.265876653935592,0.264926777411122,0.263930194122003,0.262976691171711,0.262146249541231,0.261600791327272,0.261600791327272, +0.57282629136649,0.57282629136649,0.572427726295536,0.571066004717418,0.56939229566197,0.567660976633526,0.565970783689681,0.564420207432307,0.563269844891973,0.563269844891973, + +00:05:49, +0.000102939846748477,0.000102939846748477,0.000103408860235722,0.000103021486632413,0.000102264828001127,0.000101461676727173,0.00010074212597193,0.000100172965229137,9.98437920388839E-05,9.98437920388839E-05, +0.000102939846748477,0.000102939846748477,0.000103408860235722,0.000103021486632413,0.000102264828001127,0.000101461676727173,0.00010074212597193,0.000100172965229137,9.98437920388839E-05,9.98437920388839E-05, +0.00046702003970054,0.00046702003970054,0.000468640166028233,0.000466954922186527,0.000463838828356347,0.000460533998226388,0.000457550762338226,0.000455171806472251,0.000453787230986677,0.000453787230986677, +0.00219162106705483,0.00219162106705483,0.00219717454169863,0.00218960447623132,0.00217632614883661,0.00216225506156277,0.00214945212594467,0.00213914990826475,0.00213310665618649,0.00213310665618649, +0.00912650547805983,0.00912650547805983,0.00914167472758754,0.00911173166472543,0.00906204123635385,0.00900942730913448,0.00896110926794517,0.00892178767054928,0.00889846427174263,0.00889846427174263, +0.0330874912550939,0.0330874912550939,0.0331159680780165,0.0330139371662183,0.0328543884599285,0.0326856402430306,0.0325289383708379,0.0323994964277931,0.0323213965449027,0.0323213965449027, +0.102648847263843,0.102648847263843,0.102665241445676,0.102371706556797,0.101941531511496,0.10148754445095,0.101060237313514,0.100699783178732,0.100475902481546,0.100475902481546, +0.267329242255428,0.267329242255428,0.267225107282176,0.266526849592505,0.265576987191592,0.264579946258933,0.26362585416552,0.262795015368998,0.262249457641709,0.262249457641709, +0.573377855979371,0.573377855979371,0.572979878321052,0.571619934218437,0.569947905352504,0.568217879299661,0.566528811227493,0.564979402439007,0.563830114098572,0.563830114098572, + +00:05:50, +0.000104635708507479,0.000104635708507479,0.000105111768094031,0.000104720662348483,0.000103954534742604,0.000103140330997766,0.000102410529345511,0.000101833333989123,0.000101499637306061,0.000101499637306061, +0.000104635708507479,0.000104635708507479,0.000105111768094031,0.000104720662348483,0.000103954534742604,0.000103140330997766,0.000102410529345511,0.000101833333989123,0.000101499637306061,0.000101499637306061, +0.000473359036588836,0.000473359036588836,0.000474998584260936,0.000473300835865099,0.000470154234175281,0.000466813262238065,0.000463796083719275,0.000461390391005536,0.000459990770280627,0.000459990770280627, +0.00221583082407569,0.00221583082407569,0.002221436047941,0.0022138242224815,0.00220044695718935,0.00218625634329601,0.00217333956020217,0.00216294725185105,0.00215685339325554,0.00215685339325554, +0.00920538868571275,0.00920538868571275,0.0092206604199156,0.00919060551542568,0.00914065330541264,0.0090877132875498,0.00903907895231142,0.00899950607089726,0.0089760422045131,0.0089760422045131, +0.0332981287056268,0.0332981287056268,0.0333267256783538,0.0332244822090819,0.0330644155100901,0.0328949844936031,0.0327376027675266,0.0326076200352876,0.0325292220462617,0.0325292220462617, +0.103086812652445,0.103086812652445,0.103103221147419,0.102809505571472,0.1023787068683,0.101923766925829,0.101495465095861,0.101134228901159,0.100909939119874,0.100909939119874, +0.267977675455943,0.267977675455943,0.267873475172006,0.26717561647209,0.266225772466895,0.265228281186555,0.264273607431224,0.263442377365082,0.262896723180729,0.262896723180729, +0.573927350738864,0.573927350738864,0.57352995758188,0.572171784217613,0.570501432470501,0.568772700001658,0.567084758270792,0.565536517289323,0.564388301799718,0.564388301799718, + +00:05:51, +0.000106353113427417,0.000106353113427417,0.000106836293332728,0.000106441438589868,0.000105665763985918,0.000104840402531963,0.000104100246555744,0.00010351493566603,0.000103176671177705,0.000103176671177705, +0.000106353113427417,0.000106353113427417,0.000106836293332728,0.000106441438589868,0.000105665763985918,0.000104840402531963,0.000104100246555744,0.00010351493566603,0.000103176671177705,0.000103176671177705, +0.000479759382661258,0.000479759382661258,0.000481418489548484,0.000479708207145237,0.000476530936116333,0.000473153588858913,0.000470102230299974,0.000467669614262966,0.000466254847374447,0.000466254847374447, +0.00224021071840506,0.00224021071840506,0.00224586788950809,0.00223821428513068,0.00222473781732558,0.00221042723091665,0.00219739611845019,0.00218691334005189,0.00218076867498362,0.00218076867498362, +0.00928462680772939,0.00928462680772939,0.00930000104668516,0.00926983445834564,0.0092196204382247,0.00916635398735249,0.00911740287626412,0.00907757833464791,0.00905397382682972,0.00905397382682972, +0.0335092033279524,0.0335092033279524,0.0335379198084694,0.0334354645159671,0.0332748811771331,0.0331047685527715,0.0329467078442248,0.0328161850378976,0.0327374894225283,0.0327374894225283, +0.103524694501497,0.103524694501497,0.103541116086901,0.103247221188014,0.102815802791545,0.102359914865303,0.10193062289074,0.101568608306899,0.101343911574166,0.101343911574166, +0.26862468421059,0.26862468421059,0.268520417846468,0.267822957860652,0.266873136481456,0.265875202094475,0.264919954109036,0.264088338628034,0.263542591017325,0.263542591017325, +0.574474788032009,0.574474788032009,0.57407797648394,0.572721567164267,0.571052889461879,0.569325451149512,0.567638637190648,0.566091564325301,0.56494442032749,0.56494442032749, + +00:05:52, +0.000108092245310399,0.000108092245310399,0.000108582620129746,0.000108183999616595,0.000107398699766014,0.000106562074909584,0.000105811460661246,0.000105217952896838,0.000104875076064688,0.000104875076064688, +0.000108092245310399,0.000108092245310399,0.000108582620129746,0.000108183999616595,0.000107398699766014,0.000106562074909584,0.000105811460661246,0.000105217952896838,0.000104875076064688,0.000104875076064688, +0.00048622139554709,0.00048622139554709,0.00048790019955449,0.000486177353960701,0.000482969252307373,0.000479555296154498,0.000476469519899249,0.000474009793827103,0.000472579779729081,0.000472579779729081, +0.00226476109620166,0.00226476109620166,0.00227047041113766,0.00226277500953991,0.00224919907647641,0.00223476807380695,0.00222162215186639,0.00221104852532644,0.00220485285451451,0.00220485285451451, +0.00936421936273935,0.00936421936273935,0.00937969612263477,0.00934941800853777,0.00929894215450543,0.00924534893565995,0.00919608057431413,0.00915600400180076,0.00913225868147217,0.00913225868147217, +0.0337207123449957,0.0337207123449957,0.0337495476882141,0.0336468813034435,0.0334857826795878,0.0333149896482232,0.033156250840006,0.033025188682881,0.0329461959244197,0.0329461959244197, +0.103962489070163,0.103962489070163,0.103978922528366,0.103684849660361,0.103252815516583,0.102795984492285,0.102365706914749,0.102002917605782,0.101777816047935,0.101777816047935, +0.269270271808802,0.269270271808802,0.269165938604118,0.268468877053483,0.267519082489086,0.266520712182055,0.265564897349183,0.264732902266683,0.264187064234965,0.264187064234965, +0.575020180147654,0.575020180147654,0.574623947334856,0.573269295408995,0.57160228867404,0.569876145055215,0.568190460260623,0.566644555791901,0.56549848191711,0.56549848191711, + +00:05:53, +0.000109853288569884,0.000109853288569884,0.000110350933272514,0.000109948530298971,0.00010915352673041,0.000108305532325625,0.000107544355337872,0.000106942568937088,0.000106595034997084,0.000106595034997084, +0.000109853288569884,0.000109853288569884,0.000110350933272514,0.000109948530298971,0.00010915352673041,0.000108305532325625,0.000107544355337872,0.000106942568937088,0.000106595034997084,0.000106595034997084, +0.000492745392376238,0.000492745392376238,0.000494444031436704,0.000492708593738652,0.000489469500374598,0.000486018701697437,0.000482898269852155,0.00048041124680331,0.00047896588433157,0.00047896588433157, +0.00228948229967282,0.00228948229967282,0.00229524395360928,0.00228750673710532,0.0022738310779085,0.0022592792173956,0.00224601800769031,0.00223535315620774,0.0022291062810714,0.0022291062810714, +0.00944416586266987,0.00944416586266987,0.0094597451558224,0.00942935567435966,0.00937861796724248,0.00932469765283257,0.00927511157419855,0.00923478260557053,0.00921089630442831,0.00921089630442831, +0.0339326529859252,0.0339326529859252,0.0339616065437575,0.0338587297944096,0.0336971172422407,0.0335256450137721,0.0333662289999448,0.0332346282234084,0.0331553388085238,0.0331553388085238, +0.104400192654219,0.104400192654219,0.104416636772732,0.104122387279219,0.103689741315593,0.103231972066424,0.102800713421077,0.102437153044142,0.102211648781183,0.102211648781183, +0.269914441548612,0.269914441548612,0.269810040752078,0.2691133773545,0.268163613752619,0.267164814658045,0.266208440311541,0.265376071399761,0.264830145927229,0.264830145927229, +0.575563539277392,0.575563539277392,0.575167882344893,0.573814981204605,0.572149642356814,0.570424793933698,0.568740239657701,0.567195503837913,0.56605049870786,0.56605049870786, + +00:05:54, +0.000111636428225547,0.000111636428225547,0.000112141418152792,0.000111735216112412,0.000110930430134036,0.000110070959585107,0.000109299114873604,0.000108688967655801,0.000108336731619096,0.000108336731619096, +0.000111636428225547,0.000111636428225547,0.000112141418152792,0.000111735216112412,0.000110930430134036,0.000110070959585107,0.000109299114873604,0.000108688967655801,0.000108336731619096,0.000108336731619096, +0.000499331689768513,0.000499331689768513,0.000501050301836321,0.000499302243388947,0.000496031997431776,0.000492544122556611,0.00048938879699908,0.000486874289808943,0.00048541347768424,0.00048541347768424, +0.00231437466707797,0.00231437466707797,0.002320188853748,0.00231240980526178,0.00229863416092766,0.00228396100316105,0.00227058402922656,0.00225982757730568,0.00225352929995975,0.00225352929995975, +0.00952446581281802,0.00952446581281802,0.00954014764769776,0.00950964695754668,0.00945864738276852,0.00940439965254621,0.00935449539695286,0.00931391367245898,0.00928988622496586,0.00928988622496586, +0.0341450224862318,0.0341450224862318,0.0341740936076668,0.0340710072181716,0.0339088820962148,0.0337367318894387,0.0335766395751976,0.0334445009186442,0.0333649153373795,0.0333649153373795, +0.10483780158579,0.10483780158579,0.104854255157312,0.10455983037179,0.104126576497307,0.103667873883832,0.103235638699235,0.102871310904552,0.102645406050137,0.102645406050137, +0.270557196736301,0.270557196736301,0.270452727605687,0.269756462075892,0.268806733543554,0.267807512740225,0.266850586165276,0.266017849155549,0.265471839197447,0.265471839197447, +0.576104877516492,0.576104877516492,0.575709793627887,0.574358636707063,0.572694962663383,0.570971409903751,0.569287987463205,0.567744420516873,0.566600482743989,0.566600482743989, + +00:05:55, +0.000113441849898115,0.000113441849898115,0.00011395426076149,0.000113544243132241,0.000112729595834039,0.000111858542097917,0.000111075924163416,0.000110457333530362,0.000110100350183958,0.000110100350183958, +0.000113441849898115,0.000113441849898115,0.00011395426076149,0.000113544243132241,0.000112729595834039,0.000111858542097917,0.000111075924163416,0.000110457333530362,0.000110100350183958,0.000110100350183958, +0.000505980603823001,0.000505980603823001,0.000507719326867381,0.000505958619293516,0.000502657060069586,0.000499131875286467,0.000495941417675026,0.000493399238962625,0.000491922875793981,0.000491922875793981, +0.00233943853273234,0.00233943853273234,0.00234530544442835,0.00233748454748689,0.0023236086608827,0.00230881376863516,0.00229532055584826,0.00228447212931029,0.00227812225257057,0.00227812225257057, +0.00960511871192269,0.00960511871192269,0.00962090309317448,0.00959029135328436,0.00953902990083358,0.00948445444186434,0.0094342315569827,0.00939339672232648,0.00936922796570394,0.00936922796570394, +0.0343578180878057,0.0343578180878057,0.0343870061189828,0.0342837108105197,0.0341210744790462,0.0339482475215288,0.0337874798230823,0.0336548040338262,0.0335749227795576,0.0335749227795576, +0.105275312233079,0.105275312233079,0.105291774055555,0.104997175301501,0.10456331740674,0.104103686276819,0.103670479074792,0.103305387505561,0.103079084166988,0.103079084166988, +0.271198540686057,0.271198540686057,0.271094002488151,0.270398134537774,0.269448445141701,0.268448809655053,0.267491338088489,0.266658238671516,0.266112147158336,0.266112147158336, +0.576644206864817,0.576644206864817,0.57624969320216,0.574900273976405,0.573238261651204,0.571516004988931,0.569833715663703,0.568291317787963,0.567148445975616,0.567148445975616, + +00:05:56, +0.000115269739804183,0.000115269739804183,0.000115789647683456,0.000115375798028474,0.000114551210284567,0.00011366846587361,0.00011287496870411,0.000112247851641384,0.000111886075548806,0.000111886075548806, +0.000115269739804183,0.000115269739804183,0.000115789647683456,0.000115375798028474,0.000114551210284567,0.00011366846587361,0.00011287496870411,0.000112247851641384,0.000111886075548806,0.000111886075548806, +0.000512692450107528,0.000512692450107528,0.000514451422106265,0.000512678037295833,0.000509345004345052,0.000505782275916416,0.000502556447698986,0.000499986409873625,0.000498494394161611,0.000498494394161611, +0.00236467422701106,0.00236467422701106,0.00237059405457844,0.00236273129330517,0.00234875490916954,0.00233383784740707,0.00232022792300065,0.00230928714899523,0.00230288547638382,0.00230288547638382, +0.0096861240522362,0.0096861240522362,0.00970201098070188,0.00967128835028036,0.00961976501467724,0.00956486152131002,0.00951431956213541,0.00947323126846327,0.00944892104268424,0.00944892104268424, +0.0345710370390127,0.0345710370390127,0.0346003413232948,0.0344968378138034,0.0343336916347611,0.0341601891627103,0.0339987470071551,0.0338655348403433,0.0337853584097381,0.0337853584097381, +0.105712721000103,0.105712721000103,0.105729189876768,0.105434418467739,0.104999960424926,0.104539405613627,0.104105230909114,0.103739379201435,0.103512679479628,0.103512679479628, +0.271838476719629,0.271838476719629,0.271733868730201,0.271038398067844,0.270088751834841,0.269088708637314,0.268130699267867,0.267297243093976,0.266751072931655,0.266751072931655, +0.57718153922773,0.57718153922773,0.576787592991429,0.575439904977659,0.573779551282921,0.572058591118476,0.570377436151905,0.568836207516902,0.567694400259614,0.567694400259614, + +00:05:57, +0.000117120284751002,0.000117120284751002,0.000117647766092244,0.000117230068060565,0.000116395460531532,0.000115500917516194,0.000114696434589128,0.000114060707667549,0.000113694093169532,0.000113694093169532, +0.000117120284751002,0.000117120284751002,0.000117647766092244,0.000117230068060565,0.000116395460531532,0.000115500917516194,0.000114696434589128,0.000114060707667549,0.000113694093169532,0.000113694093169532, +0.00051946754364822,0.00051946754364822,0.000521246902581279,0.000519460812690488,0.000516096145771063,0.000512495639940317,0.000509234202363418,0.000506636117631313,0.00050512834777134,0.00050512834777134, +0.00239008207635329,0.00239008207635329,0.00239605500918444,0.00238815036829254,0.00237407323323551,0.0023590335691273,0.002345306462205,0.00233427296922158,0.00232781930497213,0.00232781930497213, +0.00976748131959566,0.00976748131959566,0.00978347079233651,0.00975263743083624,0.00970085221110038,0.00964562038493744,0.00959475891377133,0.00955341681766049,0.00952896496544191,0.00952896496544191, +0.0347846765947674,0.0347846765947674,0.0348140964728146,0.0347103854770052,0.0345467308139494,0.0343725540720889,0.034210438397287,0.0340766906158122,0.0339962195087876,0.0339962195087876, +0.106150024326427,0.106150024326427,0.106166499065861,0.105871556305581,0.105436501968648,0.104975028298167,0.104539890599099,0.104173282381893,0.103946188371388,0.103946188371388, +0.272477008165996,0.272477008165996,0.272372329669762,0.271677256001047,0.270727656918381,0.269727212929781,0.268768672898345,0.26793486557774,0.267388619647862,0.267388619647862, +0.577716886416994,0.577716886416994,0.577323504825706,0.575977541581747,0.574318843427261,0.572599180128188,0.570919160727553,0.569379101476833,0.56823835736049,0.56823835736049, + +00:05:58, +0.000118993672131246,0.000118993672131246,0.000119528803744858,0.000119107241072145,0.000118262534207343,0.000117356084218888,0.000116540508503344,0.000115896087880414,0.000115524589095605,0.000115524589095605, +0.000118993672131246,0.000118993672131246,0.000119528803744858,0.000119107241072145,0.000118262534207343,0.000117356084218888,0.000116540508503344,0.000115896087880414,0.000115524589095605,0.000115524589095605, +0.000526306198919148,0.000526306198919148,0.000528106082762334,0.000526307260212841,0.000522910799305998,0.000519272282306063,0.000515974996423802,0.000513348676794721,0.000511825051080324,0.000511825051080324, +0.00241566240326679,0.00241566240326679,0.00242168862929518,0.00241374209408098,0.00239956395658395,0.00238440125951215,0.00237055650106279,0.0023594299189418,0.00235292406800471,0.00235292406800471, +0.00984918999349404,0.00984918999349404,0.00986528200381335,0.00983433807091887,0.00978229097053678,0.00972673052040325,0.00967554910683468,0.00963395287028088,0.00960935923707624,0.00960935923707624, +0.0349987340166061,0.0349987340166061,0.0350282688264475,0.0349243510558125,0.034760189273838,0.0345853395152815,0.0344225512697379,0.0342882686441522,0.0342075033638339,0.0342075033638339, +0.106587218686902,0.106587218686902,0.106603698103072,0.10630858528553,0.105872938490175,0.105410550769754,0.104974454576918,0.104607093471847,0.104379607260787,0.104379607260787, +0.27311413836104,0.27311413836104,0.273009388651625,0.27231471167925,0.271365163695023,0.270364325782883,0.269405262182768,0.268571109285783,0.268024790445769,0.268024790445769, +0.578250260151659,0.578250260151659,0.577857440442184,0.576513195566376,0.574856149859928,0.573137783761324,0.571458901098298,0.569920011349191,0.568780328951257,0.568780328951257, + +00:05:59, +0.000120890089917757,0.000120890089917757,0.000121432948976469,0.000121007505485726,0.00012015261952562,0.000119234153758858,0.000118407377717829,0.000117754179139206,0.000117377749964876,0.000117377749964876, +0.000120890089917757,0.000120890089917757,0.000121432948976469,0.000121007505485726,0.00012015261952562,0.000119234153758858,0.000118407377717829,0.000117754179139206,0.000117377749964876,0.000117377749964876, +0.000533208729832072,0.000533208729832072,0.000535029276550716,0.000533217694028779,0.000529789279343434,0.000526112517405251,0.000522779144088297,0.000520124401382183,0.000518584818008298,0.000518584818008298, +0.00244141552633259,0.00244141552633259,0.00244749523202709,0.00243950678836344,0.00242522739877899,0.00240994124034825,0.00239597836326005,0.00238475832320401,0.00237820009125156,0.00237820009125156, +0.00993124954715088,0.00993124954715088,0.0099474440846167,0.00991638974023159,0.00986408076712422,0.00980819140903756,0.00975668962992421,0.00971483892032917,0.00969010335432093,0.00969010335432093, +0.0352132065727577,0.0352132065727577,0.0352428556498633,0.0351387318126878,0.0349740642783621,0.0347985427644885,0.0346350829072296,0.034500266215658,0.0344192072683396,0.0344192072683396, +0.107024300591403,0.107024300591403,0.107040783503711,0.106745501913249,0.106309266476996,0.105845969502845,0.105408919309755,0.105040808931149,0.104812932601265,0.104812932601265, +0.273749870647226,0.273749870647226,0.27364504902712,0.272950768450913,0.27200127547444,0.271000050454368,0.270040470331562,0.269205977388912,0.268659588472217,0.268659588472217, +0.578781672058944,0.578781672058944,0.578389411486119,0.577046878616926,0.575391482264481,0.573674413669468,0.571996668880571,0.570458948724572,0.569320326614291,0.569320326614291, + +00:06:00, +0.000122809726658261,0.000122809726658261,0.000123360390695117,0.000122931050297387,0.000122065905275888,0.000121135314491933,0.000120297230084592,0.000119635168885587,0.000119253762998356,0.000119253762998356, +0.000122809726658261,0.000122809726658261,0.000123360390695117,0.000122931050297387,0.000122065905275888,0.000121135314491933,0.000120297230084592,0.000119635168885587,0.000119253762998356,0.000119253762998356, +0.000540175449726275,0.000540175449726275,0.000542016797268954,0.00054019242772456,0.000536731899701951,0.000533016659062952,0.000529646959007486,0.000526963604861076,0.000525407961927323,0.000525407961927323, +0.00246734176020996,0.00246734176020996,0.0024734751305693,0.00246544476489902,0.00245106387545065,0.00243565382949743,0.002421572368572,0.00241025850315642,0.00240364769658784,0.00240364769658784, +0.0100136594475828,0.0100136594475828,0.0100299564980508,0.0099987919022849,0.00994622106877545,0.00989000252591461,0.00983817996536362,0.00979607445552221,0.00977119680761417,0.00977119680761417, +0.0354280915382127,0.0354280915382127,0.0354578542155645,0.0353535250169381,0.0351883530982347,0.0350121610985646,0.0348480305990168,0.0347126806270721,0.0346313285221746,0.0346313285221746, +0.107461266584567,0.107461266584567,0.107477751817893,0.107182302729298,0.106745482451556,0.106281281006779,0.105843281299549,0.10547442525433,0.105246160880934,0.105246160880934, +0.274384208373279,0.274384208373279,0.274279314153803,0.273585429670774,0.272635995572948,0.271634390208987,0.27067430056241,0.269839473065441,0.269293016881744,0.269293016881744, +0.579311133675101,0.579311133675101,0.578919429511696,0.577578602327324,0.575924852233209,0.574209081413393,0.572532475600438,0.570995925103582,0.569858361842187,0.569858361842187, + +00:06:01, +0.00012475277147007,0.00012475277147007,0.000125311318376386,0.000124878065071441,0.000124002580818239,0.00012305975534729,0.0001222102540313,0.000121539245138397,0.00012115281599497,0.00012115281599497, +0.00012475277147007,0.00012475277147007,0.000125311318376386,0.000124878065071441,0.000124002580818239,0.00012305975534729,0.0001222102540313,0.000121539245138397,0.00012115281599497,0.00012115281599497, +0.00054720667135849,0.00054720667135849,0.000549068957650774,0.000547231774296754,0.000543738973615029,0.000539985020527568,0.000536578754264215,0.000533866600137648,0.000532294795651599,0.000532294795651599, +0.00249344141564156,0.00249344141564156,0.00249962863418897,0.00249155633351837,0.00247707369830006,0.00246153934090175,0.00244733883286789,0.00243593077605208,0.00242926720199857,0.00242926720199857, +0.0100964191556734,0.0100964191556734,0.0101128187013099,0.0100815440144671,0.0100287113372487,0.00997216333992318,0.00992001958927155,0.0098776589573588,0.00985263908116832,0.00985263908116832, +0.0356433861947918,0.0356433861947918,0.0356732618029539,0.035568727944782,0.0354030530110151,0.0352261918030883,0.0350613916409573,0.0349255091816545,0.0348438644316856,0.0348438644316856, +0.107898113245534,0.107898113245534,0.107914599630279,0.107618984308874,0.107181582970998,0.106716481825519,0.106277537082734,0.105907938970345,0.105679288622319,0.105679288622319, +0.275017154893882,0.275017154893882,0.274912187395144,0.274218698699539,0.273269327313196,0.272267348318175,0.271306756099932,0.270471599500869,0.269925078836269,0.269925078836269, +0.579838656446281,0.579838656446281,0.57944750598289,0.578108378200908,0.576456271267987,0.574741798463922,0.573066332694454,0.571530951897687,0.570394446038594,0.570394446038594, + +00:06:02, +0.000126719414034758,0.000126719414034758,0.00012728592205806,0.000126848739935074,0.000125962836077989,0.00012500766582213,0.000124146638555979,0.000123466596488373,0.000123075097326288,0.000123075097326288, +0.000126719414034758,0.000126719414034758,0.00012728592205806,0.000126848739935074,0.000125962836077989,0.00012500766582213,0.000124146638555979,0.000123466596488373,0.000123075097326288,0.000123075097326288, +0.000554302706892917,0.000554302706892917,0.000556186069831154,0.000554336046142275,0.000550810813721047,0.000547017914460786,0.000543574842363522,0.000540833699546942,0.000539245631427393,0.000539245631427393, +0.00251971479945889,0.00251971479945889,0.00252595604823692,0.00251784180012924,0.002503257175105,0.00248759808458883,0.00247327806811612,0.00246177545525382,0.00245505892158344,0.00245505892158344, +0.0101795281262435,0.0101795281262435,0.0101960301455487,0.0101646455281142,0.010111551028218,0.0100546733138366,0.0100022079716313,0.00995959190118919,0.00993442965303942,0.00993442965303942, +0.0358590878312115,0.0358590878312115,0.0358890756984002,0.0357843378794156,0.0356181613011755,0.0354406321704286,0.0352751633355799,0.0351387491892518,0.0350568123097661,0.0350568123097661, +0.108334837187688,0.108334837187688,0.108351323559817,0.108055543261549,0.107617564626901,0.107151568537392,0.106711683229987,0.10634134664232,0.106112312382104,0.106112312382104, +0.275648713569366,0.275648713569366,0.275543672120219,0.27485057890357,0.273901274023852,0.272898928059735,0.271937840175377,0.271102359887573,0.270555777504771,0.270555777504771, +0.580364251729381,0.580364251729381,0.579973652274318,0.578636217651284,0.576985750781135,0.575272576202771,0.573598251510504,0.572064040430047,0.570928590519056,0.570928590519056, + +00:06:03, +0.000128709844592816,0.000128709844592816,0.000129284392334757,0.00012884326557297,0.000127946861540296,0.000126979235976318,0.000126106573221685,0.000125417412092856,0.000125020795931245,0.000125020795931245, +0.000128709844592816,0.000128709844592816,0.000129284392334757,0.00012884326557297,0.000127946861540296,0.000126979235976318,0.000126106573221685,0.000125417412092856,0.000125020795931245,0.000125020795931245, +0.000561463867891339,0.000561463867891339,0.000563368445336464,0.000561505555048508,0.00055794773205336,0.000554115652927626,0.000550635535222663,0.000547865214842803,0.000546260780923044,0.000546260780923044, +0.00254616221458788,0.00254616221458788,0.00255245767415335,0.00254430146672237,0.00252961460972559,0.00251383036667734,0.00249939038238948,0.00248779285023937,0.00248102316556197,0.00248102316556197, +0.0102629858081201,0.0102629858081201,0.0102795902759513,0.0102480958885801,0.010194739591343,0.0101375319043827,0.0100847445763603,0.0100418727562843,0.0100165679951962,0.0100165679951962, +0.0360751937431497,0.0360751937431497,0.0361052931953024,0.0360003521110772,0.0358336752601663,0.0356554794998124,0.0354893429921513,0.0353523979663639,0.0352701694759232,0.0352701694759232, +0.108771435058403,0.108771435058403,0.108787920259482,0.108491976231009,0.10805342404502,0.10758653775483,0.107145716345973,0.106774644867295,0.106545228750884,0.106545228750884, +0.276278887765411,0.276278887765411,0.276173771703414,0.275481073654591,0.274531839039299,0.273529132717534,0.272567556026311,0.271731757424491,0.271185116062984,0.271185116062984, +0.580887930792888,0.580887930792888,0.580497879672079,0.579162132003173,0.577513302096256,0.575801425923386,0.574128243308633,0.572595201936341,0.571460806511829,0.571460806511829, + +00:06:04, +0.000130724253938291,0.000130724253938291,0.000131306920352542,0.000130861833221914,0.000129954848244771,0.000128974656427019,0.000128090248151163,0.000127391881670458,0.00012699010131082,0.00012699010131082, +0.000130724253938291,0.000130724253938291,0.000131306920352542,0.000130861833221914,0.000129954848244771,0.000128974656427019,0.000128090248151163,0.000127391881670458,0.00012699010131082,0.00012699010131082, +0.000568690465303325,0.000568690465303325,0.000570616395074708,0.000568740612183534,0.000565150040030485,0.00056127854738658,0.000557761144161226,0.000554961457187993,0.000553340555219062,0.000553340555219062, +0.00257278396005475,0.00257278396005475,0.00257913380947395,0.00257093563137751,0.00255614630211029,0.00254023648938276,0.00252567607987072,0.00251398326660678,0.0025071602402788,0.0025071602402788, +0.0103467916442062,0.0103467916442062,0.0103634985318011,0.0103318945353058,0.0102782764703388,0.0102207385623129,0.0101676288613792,0.0101245009859045,0.0100990535735891,0.0100990535735891, +0.0362917012333088,0.0362917012333088,0.0363219115941525,0.03621676793711,0.0360495921864799,0.0358707310973884,0.0357039279267417,0.0355664528362106,0.0354839332563443,0.0354839332563443, +0.109207903538783,0.109207903538783,0.109224386416019,0.108928279894799,0.10848915788503,0.10802138612412,0.107579633069087,0.107207830275977,0.106978034352905,0.106978034352905, +0.276907680852752,0.276907680852752,0.276802489524125,0.276110186329385,0.27516102569934,0.274157965581202,0.273195906896318,0.272359795316826,0.27181309769309,0.27181309769309, +0.581409704817707,0.581409704817707,0.581020199374589,0.579686132493248,0.578038936449073,0.576328358831774,0.574656319261872,0.573124447565592,0.5719911051587,0.5719911051587, + +00:06:05, +0.000132762833413397,0.000132762833413397,0.000133353697803527,0.000132904634665372,0.000131986987780063,0.000130994118343296,0.000130097854021485,0.000129390195495732,0.000128983203522713,0.000128983203522713, +0.000132762833413397,0.000132762833413397,0.000133353697803527,0.000132904634665372,0.000131986987780063,0.000130994118343296,0.000130097854021485,0.000129390195495732,0.000128983203522713,0.000128983203522713, +0.000575982809456528,0.000575982809456528,0.000577930229325853,0.000576041528086436,0.000572418048446371,0.000568506908679842,0.000564951979891343,0.000562122737144379,0.000560485264798328,0.000560485264798328, +0.00259958033099211,0.00259958033099211,0.00260598474783604,0.00259774458826972,0.00258285254830202,0.00256681675102333,0.00255213546085832,0.00254034700608004,0.00253347044820922,0.00253347044820922, +0.0104309450715489,0.0104309450715489,0.0104477543465493,0.0104160409018887,0.0103621611030448,0.0103042927324715,0.0102508602786808,0.0102074760473684,0.0101818858482186,0.0101818858482186, +0.0365086076114779,0.0365086076114779,0.0365389282025971,0.036433582662024,0.0362659093857132,0.0360863842762905,0.0359189154622885,0.035780911128795,0.035698100983961,0.035698100983961, +0.10964423934341,0.10964423934341,0.109660718749689,0.109364450964066,0.108924762840267,0.108456110325144,0.108013430071207,0.107640899532487,0.107410725845822,0.107410725845822, +0.277535096206891,0.277535096206891,0.277429828966474,0.276737920309511,0.275788837348896,0.274785429945839,0.273822896034702,0.272986476775746,0.272439725583423,0.272439725583423, +0.581929584897991,0.581929584897991,0.581540622493401,0.580208230270963,0.578562664988255,0.576853386047319,0.575182490457047,0.57365178838097,0.572519497515793,0.572519497515793, + +00:06:06, +0.000134825774903112,0.000134825774903112,0.00013542491692044,0.000134971862228055,0.000134043472278428,0.000133037813440705,0.000132129582058656,0.000131412544393799,0.000131000293175992,0.000131000293175992, +0.000134825774903112,0.000134825774903112,0.00013542491692044,0.000134971862228055,0.000134043472278428,0.000133037813440705,0.000132129582058656,0.000131412544393799,0.000131000293175992,0.000131000293175992, +0.000583341210047079,0.000583341210047079,0.000585310257732253,0.000583408612657716,0.000579752067460768,0.000575801047023639,0.000572208352507989,0.000569349364663233,0.000567695219536373,0.000567695219536373, +0.00262655161864517,0.00262655161864517,0.00263301077898511,0.00262472862767579,0.00260973364044457,0.00259357144602622,0.00257876882177242,0.00256688436651488,0.002559954087965,0.002559954087965, +0.0105154455214086,0.0105154455214086,0.0105323571478841,0.0105005344161515,0.0104463929214943,0.0103881938538647,0.0103344382743983,0.010290797392121,0.0102650642732033,0.0102650642732033, +0.0367259101945935,0.0367259101945935,0.0367563403354973,0.0366507935975557,0.0364826241706283,0.0363024363567001,0.0361343029286585,0.0359957701809673,0.0359126699985127,0.0359126699985127, +0.110080439220092,0.110080439220092,0.110096914014011,0.109800486183302,0.109360235637478,0.108890707071131,0.108447104057442,0.108073849334108,0.107843299920447,0.107843299920447, +0.278161137207814,0.278161137207814,0.27805579341902,0.277364278981014,0.276415277337725,0.275411529111716,0.274448526696198,0.27361180501809,0.27306500292817,0.27306500292817, +0.58244758204195,0.58244758204195,0.582059160054023,0.580728436399374,0.57908449877623,0.577376518603595,0.57570676789559,0.574177235360595,0.573045994554367,0.573045994554367, + +00:06:07, +0.00013691327082976,0.00013691327082976,0.000137520770471187,0.000137063708770467,0.000136124494410274,0.000135105933975858,0.000134185624032218,0.000133459119734974,0.000133041561425723,0.000133041561425723, +0.00013691327082976,0.00013691327082976,0.000137520770471187,0.000137063708770467,0.000136124494410274,0.000135105933975858,0.000134185624032218,0.000133459119734974,0.000133041561425723,0.000133041561425723, +0.000590765976130066,0.000590765976130066,0.000592756789289167,0.00059084217514979,0.000587152406589688,0.000583161271998648,0.000579530571479377,0.000576641649075605,0.000574970728691763,0.000574970728691763, +0.00265369811037832,0.00265369811037832,0.00266021218878139,0.00265188803598103,0.00263678986678916,0.00262050086493394,0.002605576455161,0.00259359564190481,0.00258661145430029,0.00258661145430029, +0.0106002924193268,0.0106002924193268,0.0106173063577984,0.0105853745002105,0.0105309713519824,0.0104724413597286,0.0104183622888734,0.0103744644658016,0.0103485882968483,0.0103485882968483, +0.0369436063067985,0.0369436063067985,0.0369741453149874,0.0368683980627274,0.0366997338612121,0.036518884665906,0.0363500876627096,0.0362110273364857,0.0361276376466085,0.0361276376466085, +0.110516499949608,0.110516499949608,0.110532968995515,0.110236382330091,0.109795573036562,0.109325173108401,0.108880651765881,0.108506676411043,0.108275753300498,0.108275753300498, +0.278785807239709,0.278785807239709,0.278680386274484,0.277989265734147,0.277040349020135,0.276036266384001,0.275072802140686,0.274235783266085,0.273688932927087,0.273688932927087, +0.58296370717266,0.58296370717266,0.582575822996721,0.581246761855944,0.579604448789999,0.577897767449169,0.576229162494337,0.574700799398332,0.573570607161603,0.573570607161603, + +00:06:08, +0.000139025514147564,0.000139025514147564,0.000139641451753389,0.000139180367683428,0.000138230247378695,0.000137198672740975,0.000136266172249824,0.00013553011342936,0.000135107199967579,0.000135107199967579, +0.000139025514147564,0.000139025514147564,0.000139641451753389,0.000139180367683428,0.000138230247378695,0.000137198672740975,0.000136266172249824,0.00013553011342936,0.000135107199967579,0.000135107199967579, +0.000598257416110117,0.000598257416110117,0.00060027013233537,0.000598342524157589,0.000594619374695959,0.00059058789254051,0.000586918945637446,0.000583999899082808,0.00058231210089656,0.00058231210089656, +0.00268102008968174,0.00268102008968174,0.00268758925920676,0.00267922309568605,0.0026640215117013,0.00264760529441092,0.00263255864970631,0.00262048112238739,0.00261344283811787,0.00261344283811787, +0.0106854851851943,0.0106854851851943,0.0107026013926583,0.0106705605705441,0.0106158958151349,0.0105570346775977,0.0105026317567248,0.0104584767083117,0.0104324573617121,0.0104324573617121, +0.0371616932795004,0.0371616932795004,0.0371923404705321,0.0370863933839041,0.0369172357847347,0.0367357265383638,0.03656626700835,0.036426679946077,0.0363430012817873,0.0363430012817873, +0.110952418345461,0.110952418345461,0.110968880513485,0.110672136214856,0.110230771830321,0.109759505216116,0.109314069967343,0.108939377526161,0.108708082742359,0.108708082742359, +0.279409109690697,0.279409109690697,0.27930361092947,0.278612883963095,0.277664055754706,0.276659645072469,0.275695725632906,0.274858414747059,0.274311518785215,0.274311518785215, +0.58347797112886,0.58347797112886,0.583090622177321,0.581763217533354,0.580122525921926,0.578417143448388,0.576749685086308,0.575222491304569,0.574093346141388,0.574093346141388, + +00:06:09, +0.000141162698337192,0.000141162698337192,0.000141787154588905,0.000141322032882585,0.000140360924913979,0.000139316223058418,0.000138371419551795,0.000137625717921433,0.000137197401032435,0.000137197401032435, +0.000141162698337192,0.000141162698337192,0.000141787154588905,0.000141322032882585,0.000140360924913979,0.000139316223058418,0.000138371419551795,0.000137625717921433,0.000137197401032435,0.000137197401032435, +0.000605815837732064,0.000605815837732064,0.00060785059454386,0.000605909967609245,0.000602153279979872,0.000598081216930435,0.000594373783168442,0.000591424422746975,0.000589719644146893,0.000589719644146893, +0.0027085178361784,0.0027085178361784,0.00271514226837183,0.00270673408541399,0.00269142885566772,0.00267488501725034,0.00265971569023145,0.00264754109425071,0.0026404485264755,0.0026404485264755, +0.0107710232333182,0.0107710232333182,0.0107882416632703,0.0107560920380606,0.0107011657259758,0.0106419732293726,0.0105872461069147,0.0105428335538817,0.0105166709046743,0.0105166709046743, +0.0373801684514276,0.0373801684514276,0.0374109231389821,0.0373047768948498,0.0371351272758057,0.0369529593157535,0.0367828383165966,0.0366427253674948,0.036558758264577,0.036558758264577, +0.111388191253626,0.111388191253626,0.111404645419708,0.111107744680611,0.110665828844208,0.110193700206032,0.109747355465135,0.109371949474756,0.109140285034829,0.109140285034829, +0.28003104795256,0.28003104795256,0.279925470784202,0.279235137065709,0.278286400904018,0.277281668491233,0.276317300442188,0.27547970269317,0.2749327637126,0.2749327637126, +0.58399038466574,0.58399038466574,0.583603568367993,0.58227781424029,0.580638740980538,0.578934657382174,0.577268346421496,0.575742321807001,0.574614222215088,0.574614222215088, + +00:06:10, +0.000143325017400275,0.000143325017400275,0.000143958073318333,0.000143488898802903,0.00014251672126811,0.000141458778775199,0.000140501559305662,0.000139746126184599,0.000139312357380937,0.000139312357380937, +0.000143325017400275,0.000143325017400275,0.000143958073318333,0.000143488898802903,0.00014251672126811,0.000141458778775199,0.000140501559305662,0.000139746126184599,0.000139312357380937,0.000139312357380937, +0.000613441548071712,0.000613441548071712,0.000615498482912652,0.000613544812756875,0.000609754429969927,0.000605641552785906,0.000601895391603589,0.000598915527481727,0.000597193665793607,0.000597193665793607, +0.00273619162563107,0.00273619162563107,0.00274287149052316,0.00273442127991773,0.00271901217530366,0.00270234031238111,0.00268704785770714,0.00267477583993998,0.00266762880259255,0.00266762880259255, +0.0108569059724899,0.0108569059724899,0.010874226574949,0.0108419683081652,0.0107867804939951,0.0107272564313873,0.0106722047628168,0.0106275344311387,0.0106012283570025,0.0106012283570025, +0.0375990291686846,0.0375990291686846,0.0376298906646294,0.037523545936782,0.03735340567643,0.0371705803470357,0.0369997989456321,0.0368591609655774,0.036774905962552,0.036774905962552, +0.111823815552303,0.111823815552303,0.11184026059823,0.111543204602705,0.111100740936075,0.11062775492225,0.110180505094803,0.109804389084301,0.109572356998881,0.109572356998881, +0.28065162542048,0.28065162542048,0.280545969242254,0.279856028443237,0.278907387834382,0.277902339958472,0.276937529842179,0.276099650341127,0.275552670924021,0.275552670924021, +0.58450095845572,0.58450095845572,0.584114672258034,0.58279056270223,0.581153104691299,0.579450319948791,0.577785157167635,0.57626030155139,0.575133246022309,0.575133246022309, + +00:06:11, +0.00014551266585392,0.00014551266585392,0.000146154402795503,0.000145681160393144,0.000144697831209237,0.000143626534257481,0.000142656785400688,0.000141891531715743,0.000141452262298063,0.000141452262298063, +0.00014551266585392,0.00014551266585392,0.000146154402795503,0.000145681160393144,0.000144697831209237,0.000143626534257481,0.000142656785400688,0.000141891531715743,0.000141452262298063,0.000141452262298063, +0.000621134853526691,0.000621134853526691,0.000623214103755673,0.000621247366167459,0.000617423131513669,0.000613269207051471,0.000609484077809856,0.000606473520042922,0.00060473447253301,0.00060473447253301, +0.00276404172994973,0.00276404172994973,0.00277077719605078,0.00276228495008743,0.00274677174336022,0.00272997145487513,0.00271455542925881,0.00270218563806448,0.0026949839458568,0.0026949839458568, +0.0109431328060512,0.0109431328060512,0.0109605555275839,0.010928188780828,0.0108727395232162,0.0108128836944765,0.0107575071422828,0.0107125787631724,0.0106861291444187,0.0106861291444187, +0.0378182727848061,0.0378182727848061,0.0378492403992595,0.0377426978584249,0.0375720683360618,0.0373885869885069,0.0372171462608605,0.0370759841123037,0.0369914417503897,0.0369914417503897, +0.112259288151674,0.112259288151674,0.112275722965105,0.111978512888578,0.111535504995931,0.111061666240971,0.110613515723887,0.110236693214204,0.11000429548742,0.11000429548742, +0.281270845492775,0.281270845492775,0.281165109710294,0.280475561500063,0.279527019915575,0.278521662796164,0.277556417110575,0.276718260931931,0.27617124363872,0.27617124363872, +0.585009703089226,0.585009703089226,0.584623944454639,0.583301473562221,0.581665627697389,0.57996414176462,0.578300127910964,0.576776441102326,0.575650428121657,0.575650428121657, + +00:06:12, +0.000147725838725197,0.000147725838725197,0.000148376338381944,0.000147899013110323,0.000146904450016144,0.00014581968438506,0.000144837292242377,0.000144062128529754,0.000143617309587658,0.000143617309587658, +0.000147725838725197,0.000147725838725197,0.000148376338381944,0.000147899013110323,0.000146904450016144,0.00014581968438506,0.000144837292242377,0.000144062128529754,0.000143617309587658,0.000143617309587658, +0.00062889605980741,0.00062889605980741,0.000630997762693743,0.000629017933713811,0.000625159690768614,0.000620964485989627,0.000617140147980818,0.000614098706519499,0.000612342370397716,0.000612342370397716, +0.00279206841719897,0.00279206841719897,0.00279885965149581,0.00279032536295825,0.00277470782873199,0.00275777871595464,0.00274223867817372,0.00272977076340457,0.00272251423183146,0.00272251423183146, +0.0110297031319613,0.0110297031319613,0.0110472279157059,0.01101475285065,0.0109590422122626,0.0108988544240426,0.0108431526577091,0.010797965967602,0.0107713726871655,0.0107713726871655, +0.0380378966608089,0.0380378966608089,0.0380689697022041,0.037962230016062,0.0377911126116571,0.0376069766038528,0.0374348776349615,0.0372931921868479,0.0372083630099255,0.0372083630099255, +0.112694605993652,0.112694605993652,0.112711029468148,0.112413666477513,0.111970117945687,0.111495431070249,0.111046384251679,0.110668858755569,0.110436097385039,0.110436097385039, +0.281888711570653,0.281888711570653,0.281782895597831,0.281093739643459,0.280145300520584,0.279139640329829,0.278173965528863,0.277335537710603,0.276788485080139,0.276788485080139, +0.58551662907545,0.58551662907545,0.585131395483667,0.583810557381645,0.582176320560468,0.580476133364914,0.57881326915698,0.577290750943982,0.576165778991482,0.576165778991482, + +00:06:13, +0.000149964731545613,0.000149964731545613,0.000150624075941343,0.000150142652914153,0.000149136773472693,0.000148038424545826,0.00014704327474696,0.00014625811115404,0.000145807693566959,0.000145807693566959, +0.000149964731545613,0.000149964731545613,0.000150624075941343,0.000150142652914153,0.000149136773472693,0.000148038424545826,0.00014704327474696,0.00014625811115404,0.000145807693566959,0.000145807693566959, +0.00063672547192809,0.00063672547192809,0.000638849764645659,0.00063685682056564,0.000632964413193276,0.000628727695171805,0.000624863907627604,0.000621791392324416,0.000620017664747569,0.000620017664747569, +0.00282027195160577,0.00282027195160577,0.00282711911955833,0.00281854278171819,0.00280282069646486,0.00278576236299988,0.00277009787390842,0.00275753148691901,0.00275021993226234,0.00275021993226234, +0.0111166163428631,0.0111166163428631,0.0111342431285539,0.0111016599069301,0.0110456879544245,0.0109851680201216,0.0109291407161026,0.010883695456642,0.0108569584000724,0.0108569584000724, +0.0382578981652439,0.0382578981652439,0.0382890759403913,0.038182139773586,0.0380105358677255,0.0378257465642006,0.0376529904479432,0.037510782575633,0.0374256671302064,0.0374256671302064, +0.11312976605164,0.11312976605164,0.113146177086692,0.11284866234039,0.112404576738917,0.111929046349746,0.111479107608983,0.111100882630952,0.110867759607779,0.110867759607779, +0.282505227057957,0.282505227057957,0.282399330316959,0.281710566283326,0.280762233025351,0.27975627588827,0.278790178382061,0.277951483925935,0.277404398475662,0.277404398475662, +0.586021746843106,0.586021746843106,0.585637035790395,0.584317824640985,0.582685193761432,0.580986305204554,0.579324591331189,0.577803241480851,0.576679309030625,0.576679309030625, + +00:06:14, +0.000152229540345574,0.000152229540345574,0.000152897811833985,0.000152412276261476,0.000151394997862257,0.000150282950630212,0.000149274928335873,0.000148479674623019,0.000148023609061099,0.000148023609061099, +0.000152229540345574,0.000152229540345574,0.000152897811833985,0.000152412276261476,0.000151394997862257,0.000150282950630212,0.000149274928335873,0.000148479674623019,0.000148023609061099,0.000148023609061099, +0.000644623394197912,0.000644623394197912,0.000646770413819357,0.000644764331180712,0.000640837603538286,0.000636559139469443,0.000632655661569944,0.000629551882185678,0.000627760660260673,0.000627760660260673, +0.00284865259356735,0.00284865259356735,0.00285555585910545,0.00284693746571625,0.00283111060776399,0.00281392265955687,0.00279813328209631,0.00278546807575235,0.00277810131508527,0.00277810131508527, +0.0112038718261486,0.0112038718261486,0.0112216005501404,0.0111889093337311,0.0111326761377253,0.0110718238774496,0.011015470719147,0.0109697666371677,0.010942885692621,0.010942885692621, +0.0384782746742454,0.0384782746742454,0.0385095564883952,0.0384024245025487,0.0382303354763801,0.0380448942481706,0.0378714820871942,0.037728752672383,0.0376433515075435,0.0376433515075435, +0.113564765330291,0.113564765330291,0.113581162831343,0.113283497479441,0.11283887836061,0.112362509050495,0.111911682757869,0.111532761794123,0.111299279102894,0.111299279102894, +0.283120395360918,0.283120395360918,0.283014417282118,0.282326044831953,0.281377820808524,0.280371572803324,0.27940505895847,0.278566102830234,0.278018987056359,0.278018987056359, +0.58652506674118,0.58652506674118,0.586140875740266,0.584823285740569,0.583192257701163,0.581494667658791,0.579834104779845,0.578313923038487,0.577191028559145,0.577191028559145, + +00:06:15, +0.000154520461648828,0.000154520461648828,0.000155197742911179,0.000154708080100676,0.000153679319962135,0.00015255345902563,0.000151532448930211,0.000150727014472601,0.0001502652513976,0.0001502652513976, +0.000154520461648828,0.000154520461648828,0.000155197742911179,0.000154708080100676,0.000153679319962135,0.00015255345902563,0.000151532448930211,0.000150727014472601,0.0001502652513976,0.0001502652513976, +0.000652590130212231,0.000652590130212231,0.000654760013703186,0.000652740769296098,0.000648779565837599,0.000644459123045148,0.000640515713927303,0.000637380480137463,0.000635571660924504,0.000635571660924504, +0.00287721059965925,0.00287721059965925,0.00288417012517946,0.0028755096704706,0.002859577820002,0.00284225986534539,0.00282634516455546,0.00281358079324263,0.00280615864443367,0.00280615864443367, +0.0112914689640246,0.0112914689640246,0.0113092995593174,0.0112765005099454,0.0112200061449869,0.0111588213855286,0.0111021420632682,0.0110561789107807,0.0110291539690106,0.0110291539690106, +0.0386990235715805,0.0386990235715805,0.0387304087284834,0.0386230815822092,0.0384505088173865,0.0382644170419255,0.0380903499475339,0.0379470998781736,0.0378614135455631,0.0378614135455631, +0.113999600865261,0.113999600865261,0.114015983743739,0.113718168928007,0.113273019826928,0.112795816174652,0.11234410669144,0.11196449322983,0.111730652848609,0.111730652848609, +0.283734219887921,0.283734219887921,0.28362815990985,0.282940178703774,0.281992067251213,0.280985534409614,0.280018610549425,0.27917939767907,0.278632254056735,0.278632254056735, +0.587026599039667,0.587026599039667,0.586642925619628,0.585326951001319,0.583697522701272,0.582001231023982,0.580341819770679,0.578822805864229,0.577700947819044,0.577700947819044, + +00:06:16, +0.000156837692466894,0.000156837692466894,0.000157524066509674,0.00015703026186608,0.000155989937037952,0.000154850146610891,0.000153816032945177,0.000153000326734651,0.000152532816400845,0.000152532816400845, +0.000156837692466894,0.000156837692466894,0.000157524066509674,0.00015703026186608,0.000155989937037952,0.000154850146610891,0.000153816032945177,0.000153000326734651,0.000152532816400845,0.000152532816400845, +0.000660625982843908,0.000660625982843908,0.000662818867057258,0.000660786437919522,0.0006567906033998,0.000652427949343964,0.000648444368110116,0.000645277489511328,0.000643450970027117,0.000643450970027117, +0.00290594622264358,0.00290594622264358,0.00291296216900635,0.00290425964767714,0.00288822258672735,0.00287077423626716,0.00285473377929656,0.0028418698989292,0.00283439218064635,0.00283439218064635, +0.0113794071335783,0.0113794071335783,0.0113973395298413,0.0113644328093605,0.0113076773538961,0.0112461599286919,0.0111891541396993,0.0111429316738739,0.011115762628223,0.011115762628223, +0.0389201422486958,0.0389201422486958,0.0389516300506648,0.0388441083995807,0.0386710532782104,0.038484312339219,0.0383095914312614,0.038165821601482,0.0380798506552566,0.0380798506552566, +0.114434269722977,0.114434269722977,0.114450636896307,0.114152673750299,0.113706998184966,0.113228964755261,0.112776376433591,0.112396073953559,0.112161877853886,0.112161877853886, +0.284346704049266,0.284346704049266,0.284240561618564,0.283552971315132,0.282604975736747,0.281598164044308,0.280630836449051,0.279791371731038,0.27924420271449,0.27924420271449, +0.587526353930304,0.587526353930304,0.587143195636468,0.585828830665488,0.584200999004828,0.582506005518319,0.580847746493626,0.579329900127921,0.578209076974988,0.578209076974988, + +00:06:17, +0.000159181430293479,0.000159181430293479,0.000159876980446053,0.000159379019472343,0.000158327046838055,0.000157173210750606,0.000156125877284508,0.000155299807931444,0.000154826500386542,0.000154826500386542, +0.000159181430293479,0.000159181430293479,0.000159876980446053,0.000159379019472343,0.000158327046838055,0.000157173210750606,0.000156125877284508,0.000155299807931444,0.000154826500386542,0.000154826500386542, +0.000668731254234715,0.000668731254234715,0.000670947275904903,0.000668901639320796,0.000664871018799502,0.00066046592108472,0.000656441926811106,0.000653243212927524,0.000651398890148446,0.000651398890148446, +0.00293485971147749,0.00293485971147749,0.00294193223800432,0.00293318764521802,0.00291704515767285,0.00289946602441419,0.00288329938053108,0.00287033564856073,0.00286280218027546,0.00286280218027546, +0.0114676857068412,0.0114676857068412,0.0114857198304381,0.0114527056007239,0.011395689137069,0.0113338388861688,0.0112765063345456,0.0112300243176962,0.0112027110640869,0.0112027110640869, +0.0391416281047641,0.0391416281047641,0.0391732178527342,0.0390655023494762,0.0388919662540642,0.0387045775414431,0.0385292039482037,0.0383849152582352,0.038298660255029,0.038298660255029, +0.11486876900039,0.11486876900039,0.114885119392025,0.114587009041152,0.114140810512508,0.113661951856013,0.113208489038771,0.112827501011301,0.112592951158189,0.112592951158189, +0.284957851256935,0.284957851256935,0.284851625828303,0.284164426084046,0.283216549650442,0.282209465046881,0.281241739954026,0.280402028247514,0.279854836270272,0.279854836270272, +0.588024341527294,0.588024341527294,0.587641695921135,0.586328934897384,0.58470269677709,0.58300900128255,0.581351895061537,0.579835215922625,0.578715426115013,0.578715426115013, + +00:06:18, +0.000161551873098883,0.000161551873098883,0.000162256683011121,0.000161754551308825,0.00016069084758788,0.000159522849289581,0.000158462179334894,0.000157625655070092,0.00015714650015617,0.00015714650015617, +0.000161551873098883,0.000161551873098883,0.000162256683011121,0.000161754551308825,0.00016069084758788,0.000159522849289581,0.000158462179334894,0.000157625655070092,0.00015714650015617,0.00015714650015617, +0.000676906245786848,0.000676906245786848,0.00067914554152421,0.000677086675023352,0.00067302111386884,0.000668573340251476,0.000664508691996699,0.000661277952286388,0.000659415723151696,0.000659415723151696, +0.00296395131132177,0.00296395131132177,0.00297108057579257,0.00296229390717057,0.00294604577876443,0.00292833547807735,0.00291204221867961,0.00289897829410344,0.0028913888960946,0.0028913888960946, +0.0115563040508547,0.0115563040508547,0.0115744398248678,0.0115413182478081,0.0114840408621161,0.0114218576321499,0.011364198028849,0.0113174562284167,0.0112899986653424,0.0112899986653424, +0.0393634785467293,0.0393634785467293,0.0393951695403173,0.0392872608345528,0.0391132451479517,0.0389252100576745,0.0387491849157627,0.0386043782718572,0.0385178397707467,0.0385178397707467, +0.115303095824745,0.115303095824745,0.115319428364186,0.115021171925793,0.114574453917794,0.11409477457101,0.11364044159175,0.113258771479316,0.113023869831249,0.113023869831249, +0.285567664924367,0.285567664924367,0.285461355960516,0.284774546429981,0.283826792379369,0.282819440758882,0.281851324363348,0.281011370492421,0.280464157967443,0.280464157967443, +0.588520571868019,0.588520571868019,0.588138436527057,0.586827273784094,0.585202626106219,0.583510228380691,0.581854275510892,0.580338763265328,0.57922000525123,0.57922000525123, + +00:06:19, +0.000163949219324385,0.000163949219324385,0.000164663372964281,0.000164157056233953,0.000163081537984319,0.000161899260547196,0.000160825136960376,0.000159978065636975,0.000159493012991409,0.000159493012991409, +0.000163949219324385,0.000163949219324385,0.000164663372964281,0.000164157056233953,0.000163081537984319,0.000161899260547196,0.000160825136960376,0.000159978065636975,0.000159493012991409,0.000159493012991409, +0.000685151258154519,0.000685151258154519,0.000687413964439664,0.00068534184579587,0.00068124118968905,0.000676750508085068,0.000672644964898537,0.000669382008759834,0.000667501770174826,0.000667501770174826, +0.00299322126354965,0.00299322126354965,0.00300040742220028,0.00299157867381618,0.00297522469213001,0.00295738284175505,0.00294096254038041,0.00292779808374944,0.00292015257710719,0.00292015257710719, +0.0116452615277333,0.0116452615277333,0.0116634988719885,0.0116302701094748,0.011572731891707,0.0115102155358511,0.0114522285986521,0.0114052267871886,0.0113776248157051,0.0113776248157051, +0.0395856909893502,0.0395856909893502,0.0396174825269137,0.0395093812653554,0.0393348873707124,0.0391462073047187,0.0389695317589598,0.0388242080733152,0.0387373866357833,0.0387373866357833, +0.11573724735334,0.11573724735334,0.115753560976155,0.115455159559595,0.115007925539275,0.114527430024529,0.114072231207385,0.113689882463903,0.113454630972833,0.113454630972833, +0.286176148466231,0.286176148466231,0.286069755437837,0.285383335773627,0.284435707312123,0.283428094523705,0.282459592978104,0.281619401732,0.281072171051847,0.281072171051847, +0.589015054913756,0.589015054913756,0.588633427431449,0.587323857336194,0.585700797003989,0.584009696800731,0.582354897802499,0.580840552097633,0.579722824320517,0.579722824320517, + +00:06:20, +0.000166373667876624,0.000166373667876624,0.000167097249527889,0.000166586733569565,0.000165499317190072,0.000164302643311769,0.000163214948496738,0.000162357237592147,0.000161866236648565,0.000161866236648565, +0.000166373667876624,0.000166373667876624,0.000167097249527889,0.000166586733569565,0.000165499317190072,0.000164302643311769,0.000163214948496738,0.000162357237592147,0.000161866236648565,0.000161866236648565, +0.000693466591235649,0.000693466591235649,0.000695752844413872,0.00069366745164399,0.00068953154658215,0.000684997725074732,0.000680851046005068,0.000677555682782939,0.000675657331622122,0.000675657331622122, +0.00302266980575576,0.00302266980575576,0.00302991301327569,0.00302104218164953,0.00300458213610859,0.00298660835616214,0.00297006058849804,0.00295679526192535,0.00294909346855495,0.00294909346855495, +0.0117345574947289,0.0117345574947289,0.0117528963258205,0.0117195605397387,0.0116617615836344,0.0115989119615776,0.0115405974150621,0.0114933353702131,0.0114655888939291,0.0114655888939291, +0.0398082628552432,0.0398082628552432,0.0398401542339389,0.0397318610603585,0.0395568903410644,0.0393675667071546,0.0391902419104812,0.0390444021011637,0.0389572982910648,0.0389572982910648, +0.116171220773297,0.116171220773297,0.116187514421139,0.115888969127852,0.115441222545386,0.114959915370787,0.114503855030387,0.114120831101165,0.113885231712512,0.113885231712512, +0.286783305298215,0.286783305298215,0.286676827683864,0.28599079753668,0.285043297838607,0.284035429686363,0.283066549101244,0.282226125234581,0.281678878771583,0.281678878771583, +0.589507800550371,0.589507800550371,0.589126678536015,0.587818695488458,0.586197219406495,0.584507416455332,0.582853771822189,0.581340592286455,0.580223893185209,0.580223893185209, + +00:06:21, +0.00016882541812196,0.00016882541812196,0.00016955851238161,0.000169043783095252,0.000167944384827979,0.00016673319683491,0.000165631812745885,0.000164763369363731,0.000164266369352972,0.000164266369352972, +0.00016882541812196,0.00016882541812196,0.00016955851238161,0.000169043783095252,0.000167944384827979,0.00016673319683491,0.000165631812745885,0.000164763369363731,0.000164266369352972,0.000164266369352972, +0.000701852544163653,0.000701852544163653,0.00070416248043939,0.000702063791802125,0.00069789248410271,0.000693315290949835,0.000689127235053247,0.000685799274045611,0.000683882707155865,0.000683882707155865, +0.00305229717176529,0.00305229717176529,0.00305959758129539,0.00305068466338789,0.00303411834525948,0.00301601225823901,0.0029993366021323,0.00298597006930097,0.00297821181192656,0.00297821181192656, +0.011824191304294,0.011824191304294,0.0118426315356094,0.0118091888878317,0.0117511292908774,0.011687946268788,0.0116293038443145,0.0115817813488025,0.0115538902738709,0.0115538902738709, +0.0400311915749234,0.0400311915749234,0.0400631820907651,0.039954697646007,0.0397792514856456,0.0395892856973761,0.0394113128107204,0.0392649578015888,0.0391775721851134,0.0391775721851134, +0.116605013301323,0.116605013301323,0.116621285921952,0.116322597845532,0.115874342134303,0.115392227793709,0.114935310235089,0.114551614556783,0.114315669209432,0.114315669209432, +0.287389138836803,0.287389138836803,0.287282576122944,0.28659693514162,0.285649567349806,0.284641449593271,0.283672196037359,0.282831544270361,0.282284284376778,0.282284284376778, +0.589998818589016,0.589998818589016,0.589618199667642,0.588311798100552,0.586691903174843,0.585003397182518,0.5833509073815,0.581838893624703,0.580723221633775,0.580723221633775, + +00:06:22, +0.000171304669880834,0.000171304669880834,0.000172047361656751,0.000171528405042687,0.000170416940975355,0.000169191120825866,0.000168075928970206,0.000167196659842307,0.00016669360979339,0.00016669360979339, +0.000171304669880834,0.000171304669880834,0.000172047361656751,0.000171528405042687,0.000170416940975355,0.000169191120825866,0.000168075928970206,0.000167196659842307,0.00016669360979339,0.00016669360979339, +0.000710309415299311,0.000710309415299311,0.000712643170730629,0.000710531164725363,0.000706324301029714,0.000701703504671692,0.000697473831020315,0.00069411308148436,0.000692178195688089,0.000692178195688089, +0.00308210359164331,0.00308210359164331,0.00308946135477381,0.00308050634798062,0.00306383355037174,0.00304559478116076,0.00302879081662721,0.00301532274279823,0.00300750784496651,0.00300750784496651, +0.0119141623041447,0.0119141623041447,0.0119327038458895,0.0118991544982655,0.0118408343616658,0.0117773178121571,0.0117183472478354,0.0116705640894432,0.0116425283245515,0.0116425283245515, +0.0402544745868457,0.0402544745868457,0.0402865635347613,0.0401778884567563,0.0400019682390544,0.0398113617156339,0.0396327419078205,0.0394858726284502,0.0393982057740903,0.0393982057740903, +0.117038622183484,0.117038622183484,0.117054872730779,0.116756042957053,0.116307281533713,0.115824364506693,0.115366594025214,0.114982230025781,0.114745940652085,0.114745940652085, +0.287993652499067,0.287993652499067,0.287887004179962,0.287201752011508,0.286254519237579,0.285246157592025,0.284276537092468,0.283435662111187,0.28288839111937,0.28288839111937, +0.590488118766814,0.590488118766814,0.590108000579088,0.588803174957726,0.58718485809584,0.585497648746359,0.583846314218359,0.582335465831951,0.581220819381496,0.581220819381496, + +00:06:23, +0.000173811623422107,0.000173811623422107,0.000174563997930592,0.000174040800089932,0.0001729171861583,0.000171676615445849,0.000170547496886927,0.000169657308375281,0.000169148157116386,0.000169148157116386, +0.000173811623422107,0.000173811623422107,0.000174563997930592,0.000174040800089932,0.0001729171861583,0.000171676615445849,0.000170547496886927,0.000169657308375281,0.000169148157116386,0.000169148157116386, +0.000718837502222739,0.000718837502222739,0.000721195212715868,0.000719069868081466,0.00071482729535852,0.00071016266442547,0.000705891132115674,0.000702497403274152,0.000700544095372431,0.000700544095372431, +0.00311208929170419,0.00311208929170419,0.00311950455847279,0.00311050746061883,0.00309372797847376,0.00307535615434666,0.00305842346358025,0.00304485351560022,0.00303698180168414,0.00303698180168414, +0.0120044698373238,0.0120044698373238,0.0120231125965465,0.0119894567108953,0.0119308761395423,0.011867025941639,0.0118077269823053,0.0117596829538582,0.01173150241022,0.01173150241022, +0.0404781093374432,0.0404781093374432,0.040510296011331,0.0404014309351106,0.040225038043889,0.0400337922100757,0.0398545266577148,0.0397071440433227,0.0396191965218371,0.0396191965218371, +0.11747204469497,0.11747204469497,0.117488272128951,0.117189301736046,0.116740038000585,0.116256322752385,0.115797703633653,0.115412674732306,0.115176043258082,0.115176043258082, +0.288596849702464,0.288596849702464,0.288490115280136,0.287805251569772,0.286858156894444,0.285849557031195,0.284879575573802,0.284038482030339,0.283491202252893,0.283491202252893, +0.590975710747541,0.590975710747541,0.590596090949661,0.589292835771498,0.587676093882675,0.585990180837647,0.584340001997753,0.582830318555111,0.581716696071125,0.581716696071125, + +00:06:24, +0.000176346479457394,0.000176346479457394,0.000177108622220702,0.000176581169355754,0.000175445321346009,0.000174189881302359,0.000173046716662458,0.000172145514761252,0.000171630210920709,0.000171630210920709, +0.000176346479457394,0.000176346479457394,0.000177108622220702,0.000176581169355754,0.000175445321346009,0.000174189881302359,0.000173046716662458,0.000172145514761252,0.000171630210920709,0.000171630210920709, +0.000727437101725445,0.000727437101725445,0.000729818903029346,0.000727680198742952,0.000723401764292902,0.000718693067612199,0.00071437943577286,0.000710952536820359,0.000708980703596069,0.000708980703596069, +0.00314225449452132,0.00314225449452132,0.0031497274134114,0.0031406882227452,0.00312380185284296,0.00310529660346968,0.00308823477085172,0.00307456261716049,0.00306663391236276,0.00306663391236276, +0.0120951132422628,0.0120951132422628,0.0121138571228798,0.0120800948609815,0.0120212539634256,0.0119570700025302,0.0118974423997206,0.0118491372990696,0.0118208118904146,0.0118208118904146, +0.0407020932811655,0.0407020932811655,0.0407343769739507,0.0406253225316609,0.0404484583507854,0.0402565746367849,0.0400766645241664,0.0399287695155362,0.0398405418999161,0.0398405418999161, +0.117905278139868,0.117905278139868,0.117921481426708,0.117622371485126,0.117172608820934,0.116688099802444,0.116228636322229,0.115842945929396,0.115605974273927,0.115605974273927, +0.289198733864628,0.289198733864628,0.289091912848811,0.288407437240006,0.287460483713373,0.286451651260109,0.28548131478959,0.284640007302322,0.284092721032261,0.284092721032261, +0.591461604122295,0.591461604122295,0.591082480385888,0.589780790180331,0.588165620175591,0.586481003074564,0.584831980312393,0.583323461369093,0.582210861273552,0.582210861273552, + +00:06:25, +0.000178909439135385,0.000178909439135385,0.000179681435979247,0.000179149714393914,0.000178001547945067,0.000176731119443494,0.00017557378890672,0.000174661479244358,0.000174139971251649,0.000174139971251649, +0.000178909439135385,0.000178909439135385,0.000179681435979247,0.000179149714393914,0.000178001547945067,0.000176731119443494,0.00017557378890672,0.000174661479244358,0.000174139971251649,0.000174139971251649, +0.000736108509802482,0.000736108509802482,0.000738514537503457,0.00073636245277928,0.000732048004237195,0.000727295010840857,0.000722939038641597,0.000719478778750798,0.000717488316971758,0.000717488316971758, +0.00317259941893682,0.00317259941893682,0.00318013013687583,0.00317104885206396,0.00315405539301576,0.00313541635046624,0.00311822496257429,0.00310445027321237,0.00309646440356907,0.00309646440356907, +0.0121860918528438,0.0121860918528438,0.0122049367556648,0.0121710682792526,0.0121119671676729,0.0120474493355309,0.0119874928474562,0.0119389264774601,0.0119104561200255,0.0119104561200255, +0.0409264238805158,0.0409264238805158,0.0409588038842052,0.0408495607051207,0.0406722266184548,0.0404797064598188,0.0402991529788074,0.0401507465222148,0.0400622393876497,0.0400622393876497, +0.118338319850936,0.118338319850936,0.118354497962975,0.118055249535662,0.117604991309594,0.117119692957319,0.116659389381479,0.116273040898756,0.116035730974792,0.116035730974792, +0.289799308403172,0.289799308403172,0.28969240031126,0.289008312445771,0.288061503087591,0.287052443628657,0.286081758048865,0.285240241202657,0.284692950713564,0.284692950713564, +0.591945808410161,0.591945808410161,0.591567178422186,0.590267047750296,0.588653446542554,0.586970125003348,0.585322258683373,0.583814903777458,0.582703324488452,0.582703324488452, + +00:06:26, +0.00018150070403616,0.00018150070403616,0.000182282641087287,0.000181746637187456,0.000180586067793736,0.000179300531352247,0.00017812891466747,0.000177205402508619,0.000176677638595385,0.000176677638595385, +0.00018150070403616,0.00018150070403616,0.000182282641087287,0.000181746637187456,0.000180586067793736,0.000179300531352247,0.00017812891466747,0.000177205402508619,0.000176677638595385,0.000176677638595385, +0.000744852021644686,0.000744852021644686,0.000747282411161026,0.000745116925449119,0.000740766310788528,0.000735968789920563,0.000731570236579951,0.000728076424907864,0.000726067231329948,0.000726067231329948, +0.00320312428007154,0.00320312428007154,0.00321071294242953,0.00320158956255102,0.00318448881479758,0.00316571561354605,0.00314839425916266,0.0031345167057786,0.00312647349816257,0.00312647349816257, +0.0122774049984617,0.0122774049984617,0.012296350821214,0.0122623762919667,0.0122030150821412,0.0121381632768078,0.0120778776683268,0.0120290498368349,0.0120004344493557,0.0120004344493557, +0.0411510986060867,0.0411510986060867,0.0411835742118239,0.0410741429223618,0.0408963403137189,0.0407031851512453,0.0405219895011754,0.0403730725483147,0.0402842864721589,0.0402842864721589, +0.118771167189373,0.118771167189373,0.118787319105133,0.11848793324755,0.118037182809992,0.11755109954602,0.117089960130422,0.116702956950537,0.116465310664294,0.116465310664294, +0.290398576735495,0.290398576735495,0.290291581092492,0.289607880610397,0.288661218410374,0.287651937487084,0.286680908661251,0.285839187007683,0.285291894553864,0.285291894553864, +0.592428333058874,0.592428333058874,0.592050194521516,0.590751617975742,0.589139582479912,0.587457556098942,0.585810846560822,0.584304655213068,0.583194095144934,0.583194095144934, + +00:06:27, +0.000184120476165491,0.000184120476165491,0.000184912439849067,0.000184372140142986,0.000183199083156231,0.000181898318940803,0.000180712295424613,0.00017977748567227,0.000179243413873332,0.000179243413873332, +0.000184120476165491,0.000184120476165491,0.000184912439849067,0.000184372140142986,0.000183199083156231,0.000181898318940803,0.000180712295424613,0.00017977748567227,0.000179243413873332,0.000179243413873332, +0.000753667931631015,0.000753667931631015,0.000756122818207687,0.000753943911192716,0.000749556978729147,0.000744714699852852,0.00074027332464657,0.000736745770340749,0.000734717741711002,0.000734717741711002, +0.00323382928933518,0.00323382928933518,0.00324147603992343,0.00323231056446428,0.00321510233027308,0.00319619460720221,0.00317874287732344,0.00316476213318103,0.00315666141530529,0.00315666141530529, +0.0123690520040848,0.0123690520040848,0.012388098641439,0.012354018220973,0.0122943970322496,0.0122292111580552,0.0121685962006488,0.0121195067204828,0.0120907462241825,0.0120907462241825, +0.0413761149365949,0.0413761149365949,0.0414086854347141,0.0412990666584485,0.0411207969115454,0.0409270081911786,0.0407451715787508,0.0405957450866611,0.0405066806483995,0.0405066806483995, +0.119203817544598,0.119203817544598,0.119219942248793,0.118920420008986,0.118469180693919,0.117982316925893,0.117520345916342,0.117132691423113,0.116894710674275,0.116894710674275, +0.29099654227859,0.29099654227859,0.290889458617056,0.290206145156792,0.289259633074857,0.288250136185797,0.287278769936772,0.286436847994352,0.285889555810993,0.285889555810993, +0.592909187445461,0.592909187445461,0.592531538076037,0.591234510279943,0.589624037413046,0.587943305765647,0.586297753324549,0.584792725038726,0.583683182602175,0.583683182602175, + +00:06:28, +0.000186768957949141,0.000186768957949141,0.000187571034986299,0.000187026426084941,0.000185840796716993,0.000184524684544819,0.000183324133084505,0.000182377930282079,0.000181837498436467,0.000181837498436467, +0.000186768957949141,0.000186768957949141,0.000187571034986299,0.000187026426084941,0.000185840796716993,0.000184524684544819,0.000183324133084505,0.000182377930282079,0.000181837498436467,0.000181837498436467, +0.000762556533320969,0.000762556533320969,0.000765036052024344,0.000762843703624348,0.000758420302018835,0.000753533034824044,0.000749048597093021,0.000745487109297759,0.000743440142357497,0.000743440142357497, +0.00326471465443651,0.00326471465443651,0.00327241963550636,0.00326321206435403,0.00324589614781652,0.00322685354222136,0.00320927103006513,0.00319518677005044,0.00318702837047159,0.00318702837047159, +0.0124610321903163,0.0124610321903163,0.0124801795339111,0.0124459933837731,0.0123861123390402,0.0123205923065562,0.0122596477783006,0.0122102964672369,0.012181390785818,0.012181390785818, +0.0416014703589148,0.0416014703589148,0.0416341350389944,0.0415243293966707,0.0413455938950816,0.0411511730678138,0.0409686967069914,0.0408187616379838,0.0407294194191992,0.0407294194191992, +0.119636268334023,0.119636268334023,0.119652364817573,0.119352707236239,0.118900982361306,0.118413342482397,0.117950544114562,0.117562241682856,0.117323928364577,0.117323928364577, +0.291593208448854,0.291593208448854,0.291486036308856,0.290803109507255,0.289856750473838,0.288847043075168,0.287875345185656,0.287033227440037,0.286485937743356,0.286485937743356, +0.593388380876895,0.593388380876895,0.593011218407749,0.591715734015752,0.590106820697016,0.588427383337764,0.586782988284675,0.58527912254781,0.584170596150056,0.584170596150056, + +00:06:29, +0.000189446352227145,0.000189446352227145,0.000190258629632432,0.00018970969824985,0.000188511411574945,0.000187179830917696,0.00018596462997425,0.000185006938307662,0.000184460094059657,0.000184460094059657, +0.000189446352227145,0.000189446352227145,0.000190258629632432,0.00018970969824985,0.000188511411574945,0.000187179830917696,0.00018596462997425,0.000185006938307662,0.000184460094059657,0.000184460094059657, +0.000771518119447106,0.000771518119447106,0.00077402240515973,0.000771816595524869,0.000767356573787415,0.000762424088197708,0.00075789634735621,0.000754300735218712,0.000752234726706622,0.000752234726706622, +0.0032957805793938,0.0032957805793938,0.00330354393163554,0.00329429426507359,0.0032768704721023,0.00325769262569404,0.00323997892670831,0.00322579082733666,0.00321757457545809,0.00321757457545809, +0.0125533448734544,0.0125533448734544,0.0125725928119217,0.0125383010935815,0.012478160319239,0.0124123060452435,0.0123510317307836,0.0123014184115352,0.0122723674711699,0.0122723674711699, +0.0418271623681117,0.0418271623681117,0.041859920519027,0.0417499286285758,0.041570728755687,0.0413756772774607,0.0411925623893672,0.041042119710952,0.0409525002952917,0.0409525002952917, +0.120068517002834,0.120068517002834,0.120084584262873,0.119784792373431,0.119332585240001,0.118844173628881,0.118380552128223,0.117991605123921,0.117752961122828,0.117752961122828, +0.292188578661905,0.292188578661905,0.292081317590966,0.291398777083286,0.290452573999599,0.28944266150535,0.288470637718144,0.287628328622341,0.287081043609741,0.287081043609741, +0.593865922590725,0.593865922590725,0.593489244769131,0.59219529846624,0.590587941617203,0.588909798080225,0.587266560682273,0.585763856964901,0.584656345009786,0.584656345009786, + +00:06:30, +0.000192152862248092,0.000192152862248092,0.00019297542732692,0.000192422160280588,0.000191211131237753,0.000189863961224849,0.000188633988835982,0.000187664712135787,0.000187111402935965,0.000187111402935965, +0.000192152862248092,0.000192152862248092,0.00019297542732692,0.000192422160280588,0.000191211131237753,0.000189863961224849,0.000188633988835982,0.000187664712135787,0.000187111402935965,0.000187111402935965, +0.000780552981907652,0.000780552981907652,0.000783082169323048,0.000780862878834353,0.000776366086327355,0.000771388152507208,0.000766816868050899,0.000763186940727438,0.000761101787382659,0.000761101787382659, +0.00332702726454539,0.00332702726454539,0.00333484912708734,0.00332555736578998,0.00330802550411557,0.00328871206102519,0.0032708667728959,0.00325657451231866,0.00324830023839384,0.00324830023839384, +0.012645989365553,0.012645989365553,0.0126653377845431,0.0126309406593861,0.0125705402853165,0.01250435169276,0.0124427473832826,0.0123928718834808,0.0123636756128014,0.0123636756128014, +0.0420531884674726,0.0420531884674726,0.0420860393774486,0.0419758618540001,0.041796198992965,0.0416005183245762,0.0414167661373931,0.0412658168222083,0.0411759207953509,0.0411759207953509, +0.120500561023768,0.120500561023768,0.120516598063655,0.120216672892311,0.119763986785542,0.119274807806365,0.118810367388067,0.118420779168026,0.118181806364219,0.118181806364219, +0.292782656332404,0.292782656332404,0.292675305885448,0.291993151305412,0.291047107043711,0.290036994826085,0.289064650844305,0.288222154818908,0.287674876669129,0.287674876669129, +0.59434182175571,0.59434182175571,0.593965626343773,0.592673212845328,0.591067409389938,0.589390559189222,0.587748479689984,0.586246937446401,0.585140438334522,0.585140438334522, + +00:06:31, +0.000194888691663401,0.000194888691663401,0.000195721632009482,0.000195164016220626,0.000193940159616064,0.000192577279037964,0.00019133241282115,0.000190351454564671,0.000189791627670965,0.000189791627670965, +0.000194888691663401,0.000194888691663401,0.000195721632009482,0.000195164016220626,0.000193940159616064,0.000192577279037964,0.00019133241282115,0.000190351454564671,0.000189791627670965,0.000189791627670965, +0.000789661411759194,0.000789661411759194,0.000792215635376716,0.000789982844644818,0.000785449131086457,0.000780425519448355,0.000775810450962313,0.00077214601762436,0.000770041616189562,0.000770041616189562, +0.00335845490656036,0.00335845490656036,0.00336633541696806,0.00335700156199485,0.00333936144116308,0.00331991204794475,0.00330193477060367,0.00328753802861492,0.00327920556375052,0.00327920556375052, +0.012738964974481,0.012738964974481,0.0127584137566876,0.0127239113860081,0.0126632515455474,0.0125967285635186,0.0125347940567253,0.0124846562089016,0.0124553145389908,0.0124553145389908, +0.0422795461685376,0.0422795461685376,0.0423124891252002,0.0422021265810988,0.0420220021147938,0.0418256937217956,0.0416413054706616,0.0414898504964006,0.041399678446024,0.041399678446024, +0.120932397896892,0.120932397896892,0.120948403726222,0.120648346292037,0.120195184480945,0.119705242483317,0.119239987352219,0.118849761264234,0.11861046153129,0.11861046153129, +0.293375444873871,0.293375444873871,0.293268004613176,0.292586235593002,0.291640352996864,0.290630046386527,0.289657387873852,0.288814709307238,0.288267440180505,0.288267440180505, +0.594816087472446,0.594816087472446,0.594440372247001,0.59314948629842,0.59154523316313,0.589869675792833,0.588228754412642,0.586728373081154,0.58562288520998,0.58562288520998, + +00:06:32, +0.000197654044521577,0.000197654044521577,0.00019849744801435,0.000197935470508271,0.000196698701017755,0.000195319988329251,0.000194060105484784,0.000193067368798269,0.000192500971277034,0.000192500971277034, +0.000197654044521577,0.000197654044521577,0.00019849744801435,0.000197935470508271,0.000196698701017755,0.000195319988329251,0.000194060105484784,0.000193067368798269,0.000192500971277034,0.000192500971277034, +0.000798843699209467,0.000798843699209467,0.000801423093329188,0.000799176783193051,0.000794605998660639,0.000789536479872131,0.000784877387038836,0.000781178256879168,0.000779054504103619,0.000779054504103619, +0.00339006369844938,0.00339006369844938,0.00339800299272492,0.00338862704551547,0.0033708784768841,0.0033512927825185,0.00333318311815076,0.00331868157619387,0.00331029075235293,0.00331029075235293, +0.0128322710039821,0.0128322710039821,0.0128518200291678,0.012817212574162,0.0127562934040712,0.0126894359677623,0.0126271710678423,0.0125767707094096,0.0125472835737911,0.0125472835737911, +0.0425062329911291,0.0425062329911291,0.0425392672815564,0.0424287203263748,0.0422481356373558,0.0420512009899635,0.0418661779168734,0.0417142182662143,0.0416237707819629,0.0416237707819629, +0.121364025149389,0.121364025149389,0.121379998783997,0.121079810098954,0.120626175836474,0.120135475155437,0.119669409505966,0.11927854888874,0.119038924093714,0.119038924093714, +0.293966947698521,0.293966947698521,0.293859417193662,0.2931780333641,0.292232315248682,0.291221819535059,0.29024885211596,0.289405995364508,0.288858737402682,0.288858737402682, +0.595288728773978,0.595288728773978,0.594913491526494,0.593624127903019,0.592021422016882,0.59034715695163,0.588707393887879,0.587208172891049,0.58610369465504,0.58610369465504, + +00:06:33, +0.00020044912526248,0.00020044912526248,0.000201303080064519,0.000200736727970897,0.000199486960142159,0.00019809229346569,0.000196817270779762,0.000195812658440557,0.000195239637167648,0.000195239637167648, +0.00020044912526248,0.00020044912526248,0.000201303080064519,0.000200736727970897,0.000199486960142159,0.00019809229346569,0.000196817270779762,0.000195812658440557,0.000195239637167648,0.000195239637167648, +0.000808100133610235,0.000808100133610235,0.000810704832327874,0.000808444983853517,0.000803836978786807,0.000798721323777522,0.000794017966384796,0.000790283948623585,0.00078814074126621,0.00078814074126621, +0.0034218538295757,0.0034218538295757,0.00342985204215717,0.00342043400452588,0.00340257680126152,0.00338285445715892,0.00336461201021049,0.00335000535138453,0.00334155600138945,0.00334155600138945, +0.0129259067537339,0.0129259067537339,0.0129455558987548,0.0129108435205142,0.0128496651609507,0.0127824732116232,0.0127198777292257,0.0126692147024602,0.0126395820370889,0.0126395820370889, +0.0427332464633804,0.0427332464633804,0.0427663713741532,0.042655640614707,0.0424745970851665,0.042277037658163,0.0420913810118681,0.0419389176724027,0.0418481953458555,0.0418481953458555, +0.12179544033534,0.12179544033534,0.121811380797309,0.121511061866374,0.121056958389431,0.120565503345438,0.120098631361548,0.119707139544652,0.119467191548084,0.119467191548084, +0.294557168217084,0.294557168217084,0.294449547044884,0.293768548035247,0.292822997187553,0.291812317619119,0.290839046879094,0.289996016267392,0.289448771594117,0.289448771594117, +0.595759754626413,0.595759754626413,0.595384993162896,0.594097146669344,0.592495984964108,0.590823011659296,0.589184407086734,0.587686345831622,0.586582875622352,0.586582875622352, + +00:06:34, +0.000203274138711569,0.000203274138711569,0.000204138733265984,0.000203567993819181,0.000202305142074296,0.000200894399203266,0.000199604113051072,0.000198587527489804,0.000198007829151661,0.000198007829151661, +0.000203274138711569,0.000203274138711569,0.000204138733265984,0.000203567993819181,0.000202305142074296,0.000200894399203266,0.000199604113051072,0.000198587527489804,0.000198007829151661,0.000198007829151661, +0.000817431003450253,0.000817431003450253,0.000820061140652153,0.000817787735131358,0.000813142360335818,0.000807980340304427,0.00080323247825334,0.000799463382144219,0.000797300616976648,0.000797300616976648, +0.00345382548566625,0.00345382548566625,0.00346188274942733,0.00345242262355818,0.00343445660063308,0.00341459726063628,0.00339622163782118,0.0033815095468872,0.0033730015044228,0.0033730015044228, +0.0130198715194066,0.0130198715194066,0.0130396206582379,0.0130048035177427,0.0129433661122317,0.0128758395971816,0.0128129133493887,0.0127619875014108,0.0127322092446633,0.0127322092446633, +0.0429605841217635,0.0429605841217635,0.0429937989390153,0.0428828849793775,0.0427013839911017,0.0425032012637445,0.0423169122996529,0.0421639462638168,0.0420729496884553,0.0420729496884553, +0.122226641035505,0.122226641035505,0.122242547353175,0.121942099174365,0.121487529703933,0.120995324602833,0.120527650457938,0.120135530761783,0.119895261417696,0.119895261417696, +0.295146109838643,0.295146109838643,0.295038397583121,0.294357783021318,0.293412402200461,0.292401543985031,0.291427975470833,0.29058477529189,0.290037546012737,0.290037546012737, +0.596229173929529,0.596229173929529,0.595854886070422,0.594568551540939,0.592968930951137,0.591297248843219,0.589659802914253,0.588162900792656,0.587060436998921,0.587060436998921, + +00:06:35, +0.000206129290074155,0.000206129290074155,0.000207004613101981,0.000206429473641323,0.000205153452279098,0.000203726510681208,0.000202420837030057,0.000201392180332844,0.000200805751427589,0.000200805751427589, +0.000206129290074155,0.000206129290074155,0.000207004613101981,0.000206429473641323,0.000205153452279098,0.000203726510681208,0.000202420837030057,0.000201392180332844,0.000200805751427589,0.000200805751427589, +0.000826836596348331,0.000826836596348331,0.000829492305706463,0.000827205324655489,0.000822522431305535,0.000817313817726666,0.000812521211039406,0.000808716845875508,0.000806534419685114,0.000806534419685114, +0.00348597884882291,0.00348597884882291,0.00349409529507257,0.00348459308351396,0.00346651805770268,0.00344652137808985,0.00342801218839719,0.00341319435178441,0.00340462745140083,0.00340462745140083, +0.0131141645927213,0.0131141645927213,0.0131340135964824,0.0130990918545949,0.0130373955500013,0.0129695344225249,0.0129062772328234,0.012855088415579,0.0128251645082437,0.0128251645082437, +0.0431882435111159,0.0431882435111159,0.043221547520582,0.0431104509620973,0.042928493896425,0.0427296893523526,0.042542769332431,0.0423893015974335,0.0422980313686101,0.0422980313686101, +0.122657624857112,0.122657624857112,0.122673496065083,0.122372919629531,0.121917887370701,0.12142493650372,0.120956464360632,0.120563720096434,0.120323131252344,0.120323131252344, +0.295733775970472,0.295733775970472,0.29562597222279,0.294945741735356,0.294000533672814,0.292989501977831,0.292015641197701,0.291172275713155,0.29062506391577,0.29062506391577, +0.596696995517368,0.596696995517368,0.596323179097455,0.595038351395276,0.593440268858314,0.591769877365095,0.590133590210078,0.588637846598767,0.587536387606703,0.587536387606703, + +00:06:36, +0.000209014784929639,0.000209014784929639,0.000209900925427208,0.000209321373397264,0.000208032096595623,0.000206588833416218,0.000205267647828668,0.000204226821739342,0.000203633608577879,0.000203633608577879, +0.000209014784929639,0.000209014784929639,0.000209900925427208,0.000209321373397264,0.000208032096595623,0.000206588833416218,0.000205267647828668,0.000204226821739342,0.000203633608577879,0.000203633608577879, +0.000836317199046471,0.000836317199046471,0.000838998614013494,0.000836698039171776,0.000831977478813969,0.000826722043445074,0.000821884452272771,0.00081804462739275,0.00081584243698568,0.00081584243698568, +0.00351831409753385,0.00351831409753385,0.00352648985601621,0.00351694556167584,0.00349876135155193,0.00347862699103916,0.00345998384574007,0.0034450599515519,0.0034364340286675,0.0034364340286675, +0.0132087852615083,0.0132087852615083,0.0132287339984876,0.0131937078159462,0.0131317527624462,0.0130635569818053,0.0129999686800593,0.0129485167503009,0.0129184471355682,0.0129184471355682, +0.0434162221846656,0.0434162221846656,0.0434496146717323,0.0433383361130319,0.0431559243508126,0.0429564994779534,0.0427689496706288,0.0426149812383838,0.0425234379532905,0.0425234379532905, +0.123088389433645,0.123088389433645,0.123104224572781,0.122803520864797,0.122348029006844,0.121854336650566,0.121385070661437,0.120991705131189,0.120750798628103,0.120750798628103, +0.296320170017871,0.296320170017871,0.29621227437628,0.295532427588412,0.294587394988284,0.293576194941105,0.292602047365002,0.291758520805325,0.291211328559571,0.291211328559571, +0.597163228158833,0.597163228158833,0.596789881027142,0.595506555044346,0.593910007500592,0.592240906021515,0.590605777749035,0.589111192009985,0.588010736203178,0.588010736203178, + +00:06:37, +0.000211930829225754,0.000211930829225754,0.000212827876462059,0.000212243899412905,0.00021094128123127,0.000209481573296688,0.000208144750933705,0.000207091656856046,0.000206491605563178,0.000206491605563178, +0.000211930829225754,0.000211930829225754,0.000212827876462059,0.000212243899412905,0.00021094128123127,0.000209481573296688,0.000208144750933705,0.000207091656856046,0.000206491605563178,0.000206491605563178, +0.000845873097403111,0.000845873097403111,0.000848580351207464,0.000846266164536309,0.000841507789092512,0.000836205303980685,0.000831322488611201,0.000827447013405229,0.000825224955609421,0.000825224955609421, +0.00355083140668509,0.00355083140668509,0.00355906660557936,0.00354948023171917,0.0035311866576517,0.00351091427739554,0.00349213679004981,0.00347710652806978,0.00346842141897395,0.00346842141897395, +0.0133037328097643,0.0133037328097643,0.0133237811454447,0.0132886506828579,0.0132264370339109,0.0131579065652984,0.0130939869877208,0.0130422718069885,0.0130120564304412,0.0130120564304412, +0.043644517704057,0.043644517704057,0.0436779979538093,0.0435665379908251,0.0433836729123788,0.0431836292028596,0.0429954508829224,0.0428409827599791,0.0427491670176162,0.0427491670176162, +0.123518932424631,0.123518932424631,0.123534730542066,0.1232339005392,0.122777952255645,0.122283522671999,0.121813466978263,0.1214194834747,0.121178261147126,0.121178261147126, +0.29690529538401,0.29690529538401,0.296797307453804,0.296117843989387,0.295172989528645,0.294161626216828,0.293187197276656,0.292343513841361,0.291796343199462,0.291796343199462, +0.597627880558271,0.597627880558271,0.597255000577978,0.595973171235254,0.594378155628122,0.592710343544548,0.591076374241717,0.589582945722339,0.588483491481936,0.588483491481936, + +00:06:38, +0.000214877629272793,0.000214877629272793,0.000215785672786844,0.000215197258374316,0.000213881212755988,0.000212404936576926,0.000211052352201052,0.000209986891201046,0.000209379947716596,0.000209379947716596, +0.000214877629272793,0.000214877629272793,0.000215785672786844,0.000215197258374316,0.000213881212755988,0.000212404936576926,0.000211052352201052,0.000209986891201046,0.000209379947716596,0.000209379947716596, +0.000855504576386445,0.000855504576386445,0.000858237802027484,0.00085590998570876,0.00085111364747926,0.000845763884968003,0.000840835605833682,0.000836924289749419,0.00083468226141761,0.00083468226141761, +0.00358353094757211,0.00358353094757211,0.00359182571349268,0.00358219726372378,0.0035637941478739,0.00354338341147363,0.00352447119793627,0.00350933425963378,0.00350058980148976,0.00350058980148976, +0.0133990065177102,0.0133990065177102,0.0134191543147942,0.0133839197326341,0.0133214476449549,0.01325258245946,0.0131883314485847,0.0131363528831871,0.0131059916927904,0.0131059916927904, +0.0438731276393738,0.0438731276393738,0.0439066949366432,0.0437950541626228,0.0436117371476997,0.0434110760977555,0.0432222705462623,0.0430673037437375,0.0429752161448824,0.0429752161448824, +0.123949251515428,0.123949251515428,0.123965011664568,0.123664056337673,0.123207654786349,0.122712492222596,0.122241650954909,0.121847052761483,0.121605516437433,0.121605516437433, +0.297489155469778,0.297489155469778,0.297381074863233,0.296701994344875,0.295757320673618,0.294745799145201,0.293771094235036,0.292927258092885,0.292380111089566,0.292380111089566, +0.598090961356054,0.598090961356054,0.597718546404388,0.596438208650799,0.594844721926834,0.593178198602321,0.591545388335052,0.590053116368422,0.588954662073235,0.588954662073235, + +00:06:39, +0.000217855391737842,0.000217855391737842,0.000218774521336005,0.000218181657321943,0.000216852098096481,0.000215359129871372,0.000213990657849911,0.000212912730658021,0.000212298840737959,0.000212298840737959, +0.000217855391737842,0.000217855391737842,0.000218774521336005,0.000218181657321943,0.000216852098096481,0.000215359129871372,0.000213990657849911,0.000212912730658021,0.000212298840737959,0.000212298840737959, +0.000865211920067837,0.000865211920067837,0.000867971250311012,0.000865629786745833,0.000860795338412426,0.000855398071148371,0.000850424088833746,0.000846476741382287,0.000844214639395016,0.000844214639395016, +0.0036164128879116,0.0036164128879116,0.00362476734590825,0.00361509682418598,0.00359658399050336,0.00357603456400313,0.00355698724243068,0.00354174332096672,0.00353293935181425,0.00353293935181425, +0.0134946056618475,0.0134946056618475,0.0135148527802823,0.0134795142388792,0.0134167838724101,0.0133475839469837,0.0132830013516373,0.0132307592726319,0.0132002522187235,0.0132002522187235, +0.0441020495691623,0.0441020495691623,0.044135703198574,0.0440238822040948,0.0438401146318357,0.0436388377417206,0.0434494062458985,0.043293941779408,0.0432015829265851,0.0432015829265851, +0.124379344417021,0.124379344417021,0.124395065657546,0.124093985970839,0.123637134293959,0.123141242982676,0.12266962026086,0.122274410651712,0.122032562152703,0.122032562152703, +0.298071753673627,0.298071753673627,0.297963580009956,0.297284882059016,0.296340391800713,0.295328717064498,0.294353741540819,0.29350975683002,0.29296263548265,0.29296263548265, +0.598552479129155,0.598552479129155,0.598180527097302,0.596901675910053,0.595309715019012,0.593644479799591,0.592012828612881,0.590521712517956,0.589424256544573,0.589424256544573, + +00:06:40, +0.000220864323639005,0.000220864323639005,0.000221794629392333,0.000221197303644813,0.000219854144530411,0.000218344360148802,0.000216959874457031,0.000215869381470482,0.000215248490688069,0.000215248490688069, +0.000220864323639005,0.000220864323639005,0.000221794629392333,0.000221197303644813,0.000219854144530411,0.000218344360148802,0.000216959874457031,0.000215869381470482,0.000215248490688069,0.000215248490688069, +0.00087499541161532,0.00087499541161532,0.000877780978987399,0.000875425850794802,0.000870553145423838,0.000865108146363417,0.000860088221612876,0.000856104652374676,0.000853822373643268,0.000853822373643268, +0.00364947739185335,0.00364947739185335,0.00365789166541158,0.00364817907603052,0.00362955635024975,0.00360886790214062,0.00358968509299734,0.00357433388322999,0.003565470241988,0.003565470241988, +0.0135905295150154,0.0135905295150154,0.0136108758120179,0.0135754334715545,0.0135124449894376,0.0134429103068577,0.0133779959821309,0.0133254902653051,0.0132948373005855,0.0132948373005855, +0.0443312810804535,0.0443312810804535,0.0443650203264727,0.0442530196994569,0.0440688029483543,0.0438669117222523,0.0436768555754038,0.043520894464995,0.0434282649624445,0.0434282649624445, +0.124809208865809,0.124809208865809,0.124824890263677,0.1245236871748,0.124066388499017,0.123569772658086,0.123097372591081,0.122701554831009,0.122459395972075,0.122459395972075, +0.298653093391428,0.298653093391428,0.298544826296725,0.297866510533342,0.296922206285084,0.295910383310913,0.294935142492823,0.294091013321239,0.293543919629968,0.293543919629968, +0.599012442391713,0.599012442391713,0.59864095118472,0.597363581568931,0.595773143463864,0.594109195678307,0.592478703596511,0.59098874267836,0.589892283401245,0.589892283401245, + +00:06:41, +0.000223904632339628,0.000223904632339628,0.00022484620458118,0.000224244405074739,0.000222887559680599,0.000221360834726548,0.000219960208950937,0.000218857050236019,0.00021822910398295,0.00021822910398295, +0.000223904632339628,0.000223904632339628,0.00022484620458118,0.000224244405074739,0.000222887559680599,0.000221360834726548,0.000219960208950937,0.000218857050236019,0.00021822910398295,0.00021822910398295, +0.00088485533328719,0.00088485533328719,0.000887667270071516,0.000885298460087139,0.000880387351132529,0.000874894393548596,0.000869828287274012,0.000865808305904785,0.000863505747374329,0.000863505747374329, +0.00368272461999226,0.00368272461999226,0.00369119883103373,0.00368144417862285,0.00366271138825975,0.00364188358948151,0.00362256491554537,0.00360710611403521,0.00359818264050443,0.00359818264050443, +0.0136867773464465,0.0136867773464465,0.0137072226765285,0.0136716766970343,0.013608430265584,0.0135385608144212,0.0134733146216402,0.0134205451474917,0.013389746227014,0.013389746227014, +0.0445608197687841,0.0445608197687841,0.0445946439157619,0.0444824642414909,0.0442977996893505,0.0440952956352881,0.0439046161366961,0.0437481594067812,0.0436552598604294,0.0436552598604294, +0.125238842623406,0.125238842623406,0.125254483250849,0.12495315771093,0.124495415147406,0.123998078980005,0.123524905665806,0.123128483010246,0.122886015599937,0.122886015599937, +0.299233178016322,0.299233178016322,0.299124817123512,0.298446883166638,0.297502767499375,0.296490801218409,0.295515300387864,0.294671030833209,0.294123966781108,0.294123966781108, +0.599470859595599,0.599470859595599,0.599099827132281,0.597823934120758,0.596235015758086,0.594572354718177,0.59294302174528,0.591454215295292,0.590358751086891,0.590358751086891, + +00:06:42, +0.000226976525542516,0.000226976525542516,0.000227929454864672,0.000227323169680514,0.00022595255150922,0.000224408761264696,0.000222991868606149,0.000221875943900532,0.000221240887388095,0.000221240887388095, +0.000226976525542516,0.000226976525542516,0.000227929454864672,0.000227323169680514,0.00022595255150922,0.000224408761264696,0.000222991868606149,0.000221875943900532,0.000221240887388095,0.000221240887388095, +0.00089479196642568,0.00089479196642568,0.000897630404657478,0.000895247895932227,0.000890298237238418,0.000884757094726819,0.000879644568015133,0.000875587984251726,0.000873265042904042,0.000873265042904042, +0.00371615472938044,0.00371615472938044,0.00372468899826355,0.00371489228778132,0.00369604926212925,0.0036750817860721,0.00365562687244058,0.00364006017745601,0.0036310767123215,0.0036310767123215, +0.0137833484218231,0.0137833484218231,0.0138038926368164,0.0137682431781623,0.0137047389668377,0.01363453474142,0.0135689565481182,0.0135159232018353,0.0134849782829953,0.0134849782829953, +0.044790663238217,0.044790663238217,0.0448245715704357,0.0447122134315647,0.0445271024554676,0.0443239870852265,0.0441326855400604,0.0439757342193496,0.0438825652367786,0.0438825652367786, +0.125668243476427,0.125668243476427,0.125683842411958,0.125382395365668,0.124924212010138,0.124426159704729,0.123952217230344,0.123555192925337,0.12331241876573,0.12331241876573, +0.299812010938583,0.299812010938583,0.299703555887367,0.299026003354791,0.298082078813577,0.297069974118572,0.296094218520603,0.295249812630646,0.294702780183843,0.294702780183843, +0.599927739130968,0.599927739130968,0.599557163343816,0.598282741996829,0.59669534033642,0.595033965337216,0.593405791457101,0.591918138753208,0.590823667984045,0.590823667984045, + +00:06:43, +0.000230080211284157,0.000230080211284157,0.000231044588535915,0.000230433805862114,0.000229049328311999,0.000227488347760294,0.000226055061037403,0.000224926269752473,0.000224284048012711,0.000224284048012711, +0.000230080211284157,0.000230080211284157,0.000231044588535915,0.000230433805862114,0.000229049328311999,0.000227488347760294,0.000226055061037403,0.000224926269752473,0.000224284048012711,0.000224284048012711, +0.000904805591450726,0.000904805591450726,0.000907670662912449,0.000905274438711162,0.000900286084516069,0.000894696531002165,0.000889537345122934,0.000885443968789175,0.000883100541645772,0.000883100541645772, +0.00374976787353947,0.00374976787353947,0.00375836231906001,0.0037485235557896,0.00372957012591565,0.00370846264842179,0.00368887112251755,0.00367319623403993,0.00366415261887359,0.00366415261887359, +0.0138802420033322,0.0138802420033322,0.0139008849524134,0.0138651321743064,0.0138013703556844,0.013730831356063,0.0136649210359518,0.0136116237073938,0.0135805327499201,0.0135805327499201, +0.0450208091013603,0.0450208091013603,0.0450548009030784,0.0449422648796512,0.0447567088559164,0.0445529836849473,0.0443610614041698,0.0442036165256052,0.0441101787160229,0.0441101787160229, +0.126097409236294,0.126097409236294,0.1261129655647,0.125811397950315,0.125352776883152,0.124854012613473,0.124379305054867,0.123981682337039,0.123738603223741,0.123738603223741, +0.300389595545473,0.300389595545473,0.300281045982278,0.29960387449066,0.298660143594888,0.297647905340468,0.296671900183406,0.295827361976165,0.295280363083982,0.295280363083982, +0.600383089326815,0.600383089326815,0.600012968161898,0.59874001356696,0.597154125572205,0.595494035892299,0.593867021069014,0.5923805213759,0.591287042414679,0.591287042414679, + +00:06:44, +0.000233215897928934,0.000233215897928934,0.0002341918142132,0.000233576522344894,0.000232178098712406,0.000230599802541554,0.000229149994193871,0.000228008235417075,0.000227358793303962,0.000227358793303962, +0.000233215897928934,0.000233215897928934,0.0002341918142132,0.000233576522344894,0.000232178098712406,0.000230599802541554,0.000229149994193871,0.000228008235417075,0.000227358793303962,0.000227358793303962, +0.000914896487853817,0.000914896487853817,0.000917788324070532,0.000915378367870643,0.000910351172808551,0.000904712982553692,0.000899506898966589,0.00089537653997911,0.000893012524104129,0.000893012524104129, +0.00378356420247268,0.00378356420247268,0.00379221894186467,0.00378233813140919,0.00376327413015038,0.00374202632951534,0.00372229782109168,0.0037065144408204,0.00369741051808339,0.00369741051808339, +0.0139774573497207,0.0139774573497207,0.0139981988794367,0.0139623429414148,0.0138983236911624,0.0138274499230769,0.0137612073560167,0.0137076459396945,0.0136764089056383,0.0136764089056383, +0.0452512549793865,0.0452512549793865,0.0452853295348824,0.0451726162043459,0.0449866165084935,0.0447822830558308,0.044589741356105,0.0444318039567948,0.0443380979310059,0.0443380979310059, +0.126526337739027,0.126526337739027,0.126541850551371,0.12624016330083,0.12578110758711,0.125281635512169,0.124806166934217,0.124407949030752,0.124164566752908,0.124164566752908, +0.30096593522111,0.30096593522111,0.300857290799035,0.30018049996393,0.299236965207573,0.298224598210501,0.297248348666195,0.296403682130143,0.295856718725226,0.295856718725226, +0.600836918451516,0.600836918451516,0.600467249868391,0.599195757140038,0.597611379777926,0.595952574679701,0.594326718857721,0.59284137142703,0.591748882640733,0.591748882640733, + +00:06:45, +0.000236383794163341,0.000236383794163341,0.000237371340834215,0.000236751528173781,0.000235339071655847,0.000233743334262052,0.000232276876353378,0.000231122048850587,0.000230465331041204,0.000230465331041204, +0.000236383794163341,0.000236383794163341,0.000237371340834215,0.000236751528173781,0.000235339071655847,0.000233743334262052,0.000232276876353378,0.000231122048850587,0.000230465331041204,0.000230465331041204, +0.000925064934191937,0.000925064934191937,0.000927983666426759,0.000925559961916952,0.000920493781021375,0.000914806728629322,0.000909553508991596,0.000905385977365633,0.000903001269868782,0.000903001269868782, +0.00381754386267769,0.00381754386267769,0.00382625901161424,0.00381633615989202,0.00379716142185137,0.00377577297882533,0.00375590711997149,0.00374001495132889,0.00373085056437402,0.00373085056437402, +0.0140749937163506,0.0140749937163506,0.0140958336706432,0.0140598747320702,0.0139955982289179,0.0139243897037613,0.013857814775733,0.0138039891707884,0.0137726060245136,0.0137726060245136, +0.0454819985020494,0.0454819985020494,0.0455161550956655,0.0454032650328847,0.0452168230395994,0.0450118828277765,0.044818723031374,0.0446602941525272,0.0445663205229033,0.0445663205229033, +0.126955026845045,0.126955026845045,0.126970495238666,0.126668689277626,0.126209201967192,0.125709026231259,0.125232800687699,0.12483399081632,0.124590307156619,0.124590307156619, +0.30154103334633,0.30154103334633,0.301432293725097,0.300755883160985,0.299812547012825,0.298800056052274,0.297823567256316,0.29697877635057,0.296431850349031,0.296431850349031, +0.601289234713371,0.601289234713371,0.600920016684988,0.599649980964566,0.598067111205752,0.596409589935637,0.594784893040123,0.593300697110668,0.592209196864649,0.592209196864649, + +00:06:46, +0.000239584108990202,0.000239584108990202,0.000240583377650244,0.000239959032707471,0.000238532456403859,0.000236919151894929,0.000235435916116614,0.0002342679183345,0.000233603869330226,0.000233603869330226, +0.000239584108990202,0.000239584108990202,0.000240583377650244,0.000239959032707471,0.000238532456403859,0.000236919151894929,0.000235435916116614,0.0002342679183345,0.000233603869330226,0.000233603869330226, +0.000935311208081589,0.000935311208081589,0.000938256967331149,0.000935819498410015,0.000930714187116524,0.000924978047539821,0.000919677453713718,0.000915472559568881,0.000913067057608356,0.000913067057608356, +0.0038517069971589,0.0038517069971589,0.00386048266975327,0.00385051778299319,0.00383123214453578,0.00380970274232461,0.00378969916747095,0.00377369791560709,0.00376447290868115,0.00376447290868115, +0.0141728503552526,0.0141728503552526,0.0141937885754837,0.0141577267955444,0.014093193221259,0.0140216499560435,0.0139547425591188,0.0139006526693054,0.0138691233774783,0.0138691233774783, +0.0457130373077017,0.0457130373077017,0.0457472752238876,0.0456342090011597,0.0454473260842551,0.0452417806392203,0.0450480040739299,0.0448890847607918,0.0447948441412426,0.0447948441412426, +0.12738347443897,0.12738347443897,0.127398897517476,0.127096973765373,0.1266370578929,0.126136182625504,0.125659204158889,0.125259805527833,0.125015822262515,0.125015822262515, +0.302114893298561,0.302114893298561,0.30200605814446,0.301330027464771,0.300386892368633,0.299374282186457,0.298397559238402,0.29755264789292,0.297005761194463,0.297005761194463, +0.601740046261134,0.601740046261134,0.601371276773746,0.600102693229196,0.598521328048073,0.596865089836793,0.595241551773849,0.593758506571816,0.592667993229893,0.592667993229893, + +00:06:47, +0.000242817051722877,0.000242817051722877,0.000243828134220379,0.000243199245612625,0.000241758462528297,0.00024012746472709,0.000238627322401353,0.000237446052469778,0.000236774616597488,0.000236774616597488, +0.000242817051722877,0.000242817051722877,0.000243828134220379,0.000243199245612625,0.000241758462528297,0.00024012746472709,0.000238627322401353,0.000237446052469778,0.000236774616597488,0.000236774616597488, +0.000945635586192904,0.000945635586192904,0.000948608503182871,0.000946157253957555,0.000941012668106563,0.000935227216652866,0.000929879010713001,0.000925636564279022,0.00092321016506442,0.00092321016506442, +0.00388605374544019,0.00388605374544019,0.00389489005424692,0.00388488313898376,0.00386548643823274,0.003843815762499,0.00382367410842189,0.00380756348021931,0.00379827769846535,0.00379827769846535, +0.0142710265151807,0.0142710265151807,0.0142920628401569,0.0142558983778525,0.0141911079172106,0.0141192299345325,0.0140519899668447,0.0139976357005076,0.0139659602320868,0.0139659602320868, +0.0459443690433108,0.0459443690433108,0.0459786875666654,0.0458654457537347,0.0456781232861184,0.0454719741371518,0.0452775821361887,0.0451181734379763,0.0450236664439204,0.0450236664439204, +0.127811678429423,0.127811678429423,0.127827055302691,0.127525014672796,0.127064673257857,0.126563102573777,0.126085375215433,0.125685391023429,0.125441109922292,0.125441109922292, +0.302687518451692,0.302687518451692,0.302578587437528,0.301902936254674,0.300960004629654,0.299947279930649,0.298970327894232,0.29812530001001,0.297578454498065,0.297578454498065, +0.602189361184544,0.602189361184544,0.601821038237617,0.60055390206326,0.598974038438032,0.597319082500852,0.595696703157777,0.594214807896924,0.593125279821476,0.593125279821476, + +00:06:48, +0.000246082831979483,0.000246082831979483,0.000247105820405719,0.000246472376858063,0.000245017299905532,0.000243368482353404,0.000241851304436663,0.000240656660171086,0.000239977781584352,0.000239977781584352, +0.000246082831979483,0.000246082831979483,0.000247105820405719,0.000246472376858063,0.000245017299905532,0.000243368482353404,0.000241851304436663,0.000240656660171086,0.000239977781584352,0.000239977781584352, +0.000956038344243844,0.000956038344243844,0.000959038549424477,0.000956573504209327,0.000951389500048848,0.000945554512387191,0.000940158456627886,0.000935878268250336,0.000933430869045554,0.000933430869045554, +0.00392058424357767,0.00392058424357767,0.00392948129959381,0.00391943236266369,0.00389992443949622,0.00387811217835994,0.00385783208418665,0.00384161178826487,0.0038322650777244,0.0038322650777244, +0.0143695214416655,0.0143695214416655,0.0143906557076636,0.0143543887218065,0.0142893415625676,0.014217128890573,0.0141495562562879,0.0140949375263431,0.0140631158525696,0.0140631158525696, +0.0461759913644741,0.0461759913644741,0.0462103897797879,0.0460969729438605,0.0459092122974986,0.0457024609771302,0.0455074548790459,0.0453475578488839,0.0452527850972206,0.0452527850972206, +0.128239636748831,0.128239636748831,0.128254966533004,0.127952809932475,0.127492045979607,0.126989783978872,0.126511311748853,0.126110745185105,0.12586616801151,0.12586616801151, +0.303258912175945,0.303258912175945,0.303149884980991,0.302474612906387,0.301531887147079,0.300519052599254,0.29954187650261,0.298696735951873,0.298149933493727,0.298149933493727, +0.602637187514848,0.602637187514848,0.602269309120965,0.601003615537302,0.599425250450044,0.597771575987016,0.596150355232556,0.594669609114415,0.593581064666468,0.593581064666468, + +00:06:49, +0.000249381659677105,0.000249381659677105,0.000250416646363578,0.000249778636708956,0.000248309178710638,0.000246642414670901,0.000245108071757122,0.000243899950661016,0.000243213573341323,0.000243213573341323, +0.000249381659677105,0.000249381659677105,0.000250416646363578,0.000249778636708956,0.000248309178710638,0.000246642414670901,0.000245108071757122,0.000243899950661016,0.000243213573341323,0.000243213573341323, +0.000966519756994483,0.000966519756994483,0.000969547380536233,0.000967068523851444,0.000961844958039805,0.00095596021020683,0.0009505160671494,0.000946197947295382,0.000943729445421505,0.000943729445421505, +0.00395529862417259,0.00395529862417259,0.00396425653683904,0.00395416558537486,0.00393454628141802,0.0039125921254574,0.00389217323267067,0.00387584297939066,0.00386643518700585,0.00386643518700585, +0.0144683343770676,0.0144683343770676,0.0144895664178588,0.0144531970670688,0.0143878933999491,0.0143153460722986,0.0142474406815848,0.0141925574054998,0.0141605894998865,0.0141605894998865, +0.0464079019354333,0.0464079019354333,0.04644237952773,0.0463287882334884,0.0461405907793718,0.0459332388232992,0.0457376199718922,0.0455772356667498,0.0454821977758302,0.0454821977758302, +0.128667347353232,0.128667347353232,0.12868262917071,0.128380357500656,0.127919173999418,0.127416224767306,0.126937011674352,0.126535865918514,0.126290994429398,0.126290994429398, +0.303829077837759,0.303829077837759,0.303719954147698,0.303045060791792,0.302102543268515,0.301089603503349,0.300112208339231,0.299266958965626,0.298720201412551,0.298720201412551, +0.60308353322532,0.60308353322532,0.602716097410093,0.60145184166359,0.59987497210032,0.598222578296521,0.596602515981115,0.595122918195185,0.594035355734504,0.594035355734504, + +00:06:50, +0.00025271374502601,0.00025271374502601,0.000253760822541692,0.000253118235721032,0.000251634309411586,0.000249949471872976,0.000248397834197032,0.000247176133464318,0.000246482201222282,0.000246482201222282, +0.00025271374502601,0.00025271374502601,0.000253760822541692,0.000253118235721032,0.000251634309411586,0.000249949471872976,0.000248397834197032,0.000247176133464318,0.000246482201222282,0.000246482201222282, +0.000977080098241374,0.000977080098241374,0.000980135270030529,0.000977642586600783,0.00097237931620931,0.000966444584615436,0.000960952117015439,0.000956595876279254,0.000954106169117433,0.000954106169117433, +0.00399019701638423,0.00399019701638423,0.00399921589358724,0.00398908293501419,0.00396935209364081,0.00394725573589273,0.00392669768833529,0.00391025718980381,0.00390078816341957,0.00390078816341957, +0.0145674645606304,0.0145674645606304,0.0145887942075056,0.0145523226502051,0.0144867626688506,0.0144138807246853,0.0143456424936848,0.0142904945934576,0.0142583804317793,0.0142583804317793, +0.0466400984290886,0.0466400984290886,0.0466746544836655,0.0465608892932834,0.0463722564013935,0.0461643053484017,0.0459680750926289,0.0458072045732565,0.0457119021628556,0.0457119021628556, +0.129094808222078,0.129094808222078,0.129110041201519,0.128807655357044,0.128346055282091,0.127842422889124,0.127362472930618,0.126960751152781,0.12671558709866,0.12671558709866, +0.304398018799663,0.304398018799663,0.30428879830654,0.303614283278837,0.302671976337854,0.301658935950564,0.300681326676557,0.299835972295342,0.299289261482724,0.299289261482724, +0.603528406231769,0.603528406231769,0.60316141103375,0.60189858839664,0.600323211347379,0.59867209737315,0.597053193329173,0.595574743053117,0.594488160938291,0.594488160938291, + +00:06:51, +0.000256079298523866,0.000256079298523866,0.00025713855967243,0.000256491384734764,0.000254992902763444,0.000253289864443586,0.000251720801884632,0.000250485418402125,0.000249783874878719,0.000249783874878719, +0.000256079298523866,0.000256079298523866,0.00025713855967243,0.000256491384734764,0.000254992902763444,0.000253289864443586,0.000251720801884632,0.000250485418402125,0.000249783874878719,0.000249783874878719, +0.000987719640812004,0.000987719640812004,0.000990802490446372,0.00098829596519948,0.000982992847715141,0.000977007909150693,0.000971466880005128,0.000967072329113914,0.00096456131410823,0.00096456131410823, +0.00402527954594305,0.00402527954594305,0.00403435949401575,0.00402418453604686,0.00400434200237131,0.00398210313833174,0.00396140558221058,0.00394485455228441,0.00393532414065045,0.00393532414065045, +0.0146669112285328,0.0146669112285328,0.0146883383103272,0.0146517647047367,0.0145859486056976,0.0145127320896041,0.0144441609404024,0.0143887483425418,0.0143564879028247,0.0143564879028247, +0.046872578527011,0.046872578527011,0.0469072123294802,0.0467932738026366,0.0466042068419125,0.0463956582337937,0.0461988179276817,0.0460374622585487,0.0459418959498371,0.0459418959498371, +0.129522017358042,0.129522017358042,0.129537200634352,0.12923470150462,0.128772687815759,0.128268376317704,0.127787693479637,0.127385398840306,0.127139943965286,0.127139943965286, +0.304965738420159,0.304965738420159,0.304856420822329,0.304182283731418,0.30324018969516,0.302227053244954,0.301249234783692,0.30040377918193,0.299857116929396,0.299857116929396, +0.60397181439305,0.60397181439305,0.60360525786364,0.602343863633718,0.600769976092557,0.599120141103735,0.597502395145743,0.596025091545573,0.594939488134105,0.594939488134105, + +00:06:52, +0.000259478530949954,0.000259478530949954,0.000260550068766999,0.000259898294869578,0.000258385169802564,0.000256663803151455,0.000255077185236319,0.000253828015586184,0.000253118804253976,0.000253118804253976, +0.000259478530949954,0.000259478530949954,0.000260550068766999,0.000259898294869578,0.000258385169802564,0.000256663803151455,0.000255077185236319,0.000253828015586184,0.000253118804253976,0.000253118804253976, +0.000998438656559334,0.000998438656559334,0.00100154931334397,0.000999028931409509,0.000993685824737527,0.000987650456378805,0.000982060628933275,0.000977627578752619,0.000975095153412935,0.000975095153412935, +0.00406054633516379,0.00406054633516379,0.00406968745888787,0.00405947050951959,0.00403951613039355,0.00401713445801781,0.00399629704190837,0.00397963519619834,0.00397004324897123,0.00397004324897123, +0.0147666736139412,0.0147666736139412,0.0147881979570589,0.0147515224611933,0.0146854504438975,0.0146118994058734,0.0145429952664699,0.0144873179019744,0.0144549111644863,0.0144549111644863, +0.0471053399194549,0.0471053399194549,0.0471400507557825,0.0470259394496771,0.0468364397879823,0.0466272951694564,0.0464298461720149,0.0462680064212472,0.0461721768367633,0.0461721768367633, +0.129948972786829,0.129948972786829,0.129964105501159,0.129661493969441,0.1291990696117,0.128694083049572,0.128212671306499,0.127809806956579,0.127564062998361,0.127564062998361, +0.30553224005361,0.30553224005361,0.305422825055687,0.304749065509264,0.303807186676545,0.302793958686886,0.301815935926266,0.300970382863008,0.300423770974553,0.300423770974553, +0.604413765511567,0.604413765511567,0.604047645714925,0.60278767521535,0.601215274180508,0.599566717318659,0.597950129243623,0.596473971473896,0.595389345122286,0.595389345122286, + +00:06:53, +0.000262911653359393,0.000262911653359393,0.000263995561109658,0.00026333917751805,0.000261811321840788,0.000260071499044277,0.000258467194950859,0.000257204135413087,0.000256487199577478,0.000256487199577478, +0.000262911653359393,0.000262911653359393,0.000263995561109658,0.00026333917751805,0.000261811321840788,0.000260071499044277,0.000258467194950859,0.000257204135413087,0.000256487199577478,0.000256487199577478, +0.00100923741635642,0.00100923741635642,0.00101237600929941,0.00100984175600735,0.00100445851847377,0.000998372497889077,0.000992733635644906,0.000988261897184424,0.000985707959089226,0.000985707959089226, +0.00409599750295876,0.00409599750295876,0.00410519990556623,0.0040949409730741,0.00407487459708222,0.00405234981678508,0.00403137219163522,0.00401459924751027,0.00400494561525532,0.00400494561525532, +0.0148667509470613,0.0148667509470613,0.0148883723755003,0.0148515951471645,0.0147852674138917,0.0147113819093107,0.0146421447135891,0.0145862025179268,0.0145536494651664,0.0145536494651664, +0.0473383803053697,0.0473383803053697,0.0473731674619154,0.0472588839312824,0.0470689529353729,0.0468592138540091,0.0466611575291435,0.046498834768462,0.0464027425320849,0.0464027425320849, +0.130375672556986,0.130375672556986,0.130390753856722,0.130088030800452,0.129625198704144,0.129119541104202,0.128637404419208,0.128233973499986,0.127987942189878,0.127987942189878, +0.306097527050126,0.306097527050126,0.305988014362927,0.305314631967823,0.304372970614058,0.303359655572917,0.302381433366312,0.301535786572789,0.300989226836901,0.300989226836901, +0.604854267333766,0.604854267333766,0.604488582346723,0.603230030925822,0.601659113399707,0.600011833792352,0.598396403379898,0.596921390583896,0.59583773964772,0.59583773964772, + +00:06:54, +0.000266378877077357,0.000266378877077357,0.000267475248251933,0.000266814244340113,0.000265271570459645,0.000263513163442925,0.00026189104200361,0.0002606139885585,0.000259889271358977,0.000259889271358977, +0.000266378877077357,0.000266378877077357,0.000267475248251933,0.000266814244340113,0.000265271570459645,0.000263513163442925,0.00026189104200361,0.0002606139885585,0.000259889271358977,0.000259889271358977, +0.00102011619009111,0.00102011619009111,0.00102328284789936,0.00102073470877871,0.00101531119913297,0.00100917430428858,0.00100348617100988,0.000998975555428773,0.000996400002228,0.000996400002228, +0.00413163316485113,0.00413163316485113,0.00414089694802624,0.00413059604096051,0.00411041751841612,0.0040877493330718,0.00406663115220562,0.00404974682879663,0.00404003136298985,0.00404003136298985, +0.0149671424551897,0.0149671424551897,0.0149888607905662,0.0149519819873513,0.0148853987432072,0.014811178832785,0.0147416085204829,0.0146854014335709,0.0146527020502575,0.0146527020502575, +0.0475716973924099,0.0475716973924099,0.0476065601559657,0.0474921049530892,0.0473017439885812,0.0470914119947202,0.0468927497111457,0.046729945015805,0.0466335907527265,0.0466335907527265, +0.130802114739707,0.130802114739707,0.130817143778466,0.130514310069294,0.130051073150079,0.129544748523833,0.129061890848497,0.128657896491625,0.128411579554549,0.128411579554549, +0.306661602755451,0.306661602755451,0.306551992095951,0.305878986458153,0.30493754483557,0.303924147195682,0.302945730362156,0.302099993541961,0.301553487731745,0.301553487731745, +0.60529332755063,0.60529332755063,0.604928075462598,0.603670938493669,0.602101501482938,0.600455498243778,0.598841225256417,0.597367356566334,0.596284679400333,0.596284679400333, + +00:06:55, +0.000269880413693302,0.000269880413693302,0.000270989342006834,0.000270323707257263,0.000268766127504556,0.000266989007935654,0.000265348937640742,0.000264057785971401,0.000263325230382793,0.000263325230382793, +0.000269880413693302,0.000269880413693302,0.000270989342006834,0.000270323707257263,0.000268766127504556,0.000266989007935654,0.000265348937640742,0.000264057785971401,0.000263325230382793,0.000263325230382793, +0.00103107524666087,0.00103107524666087,0.00103427009773598,0.00103170805851342,0.0010262441359308,0.00102005614519688,0.00101431850491758,0.00100976882353017,0.00100717155294803,0.00100717155294803, +0.00416745343298841,0.00416745343298841,0.00417677869686958,0.004166435824051,0.00414614500699165,0.00412333312193369,0.00410207404105522,0.00408507805925875,0.00407530061228867,0.00407530061228867, +0.0150678473627646,0.0150678473627646,0.0150896624243379,0.0150526822036174,0.014985843656508,0.0149112894062674,0.0148413859229467,0.0147849138891301,0.0147520681621937,0.0147520681621937, +0.0478052888969456,0.0478052888969456,0.0478402265547744,0.0477256002295021,0.047534810660841,0.0473238873075179,0.0471246204386739,0.0469613348874016,0.0468647192240996,0.0468647192240996, +0.131228297428653,0.131228297428653,0.131243273366273,0.130940329870116,0.130476691029067,0.12996970337328,0.129486128647638,0.129081573975119,0.12883497312962,0.12883497312962, +0.307224470510857,0.307224470510857,0.307114761602133,0.306442132326811,0.305500912664667,0.304487436843782,0.303508830168296,0.302663006997576,0.302116556870876,0.302116556870876, +0.605730953798162,0.605730953798162,0.60536613271105,0.604110405592172,0.602542446107787,0.600897718336926,0.599284602520284,0.597811877057405,0.596730172015559,0.596730172015559, + +00:06:56, +0.000273416475055188,0.000273416475055188,0.000274538054443072,0.000273867778446773,0.000272295205079036,0.000270499244372319,0.000268841093373463,0.000267535738868313,0.000266795287702053,0.000266795287702053, +0.000273416475055188,0.000273416475055188,0.000274538054443072,0.000273867778446773,0.000272295205079036,0.000270499244372319,0.000268841093373463,0.000267535738868313,0.000266795287702053,0.000266795287702053, +0.00104211485396759,0.00104211485396759,0.00104533802640177,0.00104276207300025,0.00103725759708441,0.00103101828924091,0.00102523090627173,0.00102064197055296,0.00101802288039073,0.00101802288039073, +0.00420345841615595,0.00420345841615595,0.00421284525933785,0.00420246042985341,0.00418205717203647,0.00415910129505741,0.00413770097225412,0.00412059305473607,0.00411075347990557,0.00411075347990557, +0.015168864891417,0.015168864891417,0.015190776496114,0.0151536950150398,0.0150866013756458,0.0150117128568823,0.0149414761538988,0.0148847391219307,0.014851747040501,0.014851747040501, +0.0480391525440716,0.0480391525440716,0.0480741643839445,0.047959367483703,0.0477681506741322,0.0475566375170002,0.0473567674409656,0.0471930021159017,0.047096125680113,0.047096125680113, +0.13165421873976,0.13165421873976,0.131669140742293,0.131366088319388,0.130902050443054,0.130394403739744,0.129910115892257,0.129505004016432,0.129258120974687,0.129258120974687, +0.307786133653038,0.307786133653038,0.30767632622422,0.30700407291575,0.306063077420536,0.305049527801673,0.304070736035299,0.303224830162934,0.302678437462456,0.302678437462456, +0.606167153657874,0.606167153657874,0.605802761685997,0.604548439839834,0.60298195489712,0.601338501681284,0.599726542764331,0.598254959639211,0.597174225074822,0.597174225074822, + +00:06:57, +0.000276987273263717,0.000276987273263717,0.00027812159787929,0.000277446670335903,0.000275859015538912,0.000274044084858587,0.000272367720972243,0.000271048058727545,0.000270299654632942,0.000270299654632942, +0.000276987273263717,0.000276987273263717,0.00027812159787929,0.000277446670335903,0.000275859015538912,0.000274044084858587,0.000272367720972243,0.000271048058727545,0.000270299654632942,0.000270299654632942, +0.00105323527891263,0.00105323527891263,0.00105648690048459,0.00105389701902202,0.00104835184980738,0.00104206100404982,0.00103622364298523,0.00103159526457611,0.00102895425271493,0.00102895425271493, +0.00423964821979051,0.00423964821979051,0.00424909673932624,0.00423866996252498,0.00421815411942318,0.00419505396077416,0.00417351205652033,0.00415629192771948,0.00414639007924749,0.00414639007924749, +0.0152701942600209,0.0152701942600209,0.0152922022224602,0.0152550196379596,0.0151876711197108,0.0151124484089579,0.0150418784434315,0.0149848763664514,0.0149517379218482,0.0149517379218482, +0.0482732860676157,0.0482732860676157,0.0483083713778499,0.0481934044476587,0.0480017617591892,0.047789660356444,0.0475891884558529,0.0474249444424901,0.0473278078631838,0.0473278078631838, +0.132079876811054,0.132079876811054,0.132094744050756,0.131791583555712,0.131327149516182,0.13081884773263,0.130333850680152,0.129928184703683,0.129681021171511,0.129681021171511, +0.308346595514006,0.308346595514006,0.308236689300227,0.307564811562213,0.306624042417865,0.305610423349557,0.30463145120969,0.303785466257475,0.30323913271091,0.30323913271091, +0.606601934657257,0.606601934657257,0.60623796992725,0.604985048800868,0.603420035419566,0.601777855832318,0.60016705352759,0.598696611840234,0.597616846106001,0.597616846106001, + +00:06:58, +0.000280593020666558,0.000280593020666558,0.000281740184878284,0.000281060595596122,0.000279457771486529,0.000277623741750154,0.000275929032461049,0.000274594957283435,0.000273838542748952,0.000273838542748952, +0.000280593020666558,0.000280593020666558,0.000281740184878284,0.000281060595596122,0.000279457771486529,0.000277623741750154,0.000275929032461049,0.000274594957283435,0.000273838542748952,0.000273838542748952, +0.00106443678739176,0.00106443678739176,0.00106771698556276,0.00106511316235057,0.00105952716030475,0.00105318455625004,0.00104729698197513,0.0010426289726882,0.00103996593709186,0.00103996593709186, +0.00427602294599396,0.00427602294599396,0.00428553323739734,0.00427506452288623,0.00425443595168305,0.00423119122407333,0.00420950740123323,0.00419217478736461,0.00418221052038786,0.00418221052038786, +0.0153718346847429,0.0153718346847429,0.0153939388172597,0.0153566552860312,0.0152890521050816,0.0152134952840765,0.0151425920188608,0.0150853248543744,0.0150520400400966,0.0150520400400966, +0.0485076872101473,0.0485076872101473,0.048542845279642,0.0484277088621285,0.0482356416555089,0.0480229535678139,0.0478218812297719,0.0476571596168961,0.0475597635242469,0.0475597635242469, +0.132505269802473,0.132505269802473,0.132520081457796,0.13221681373964,0.131751986394609,0.131243033483362,0.130757331131104,0.130351114146965,0.130103671823835,0.130103671823835, +0.30890585942099,0.30890585942099,0.308795854163331,0.308124351598631,0.307183810966734,0.306170126763283,0.305190978933843,0.304344918496674,0.303798645816817,0.303798645816817, +0.607035304270255,0.607035304270255,0.606671764920989,0.605420239985668,0.603856695189989,0.602215788291941,0.600606142295767,0.599136841135797,0.598058042583892,0.598058042583892, + +00:06:59, +0.00028423392985259,0.00028423392985259,0.000285394028241239,0.00028470976713733,0.000283091685764974,0.000281238427646972,0.000279525240111574,0.000278176646520593,0.000277412163875129,0.000277412163875129, +0.00028423392985259,0.00028423392985259,0.000285394028241239,0.00028470976713733,0.000283091685764974,0.000281238427646972,0.000279525240111574,0.000278176646520593,0.000277412163875129,0.000277412163875129, +0.00107571964429037,0.00107571964429037,0.00107902854620019,0.00107641076774202,0.00107078379376819,0.00106438921146031,0.00105845118915764,0.0010537433609824,0.00105105819970009,0.00105105819970009, +0.00431258269354706,0.00431258269354706,0.00432215485079495,0.00431164420843478,0.00429090276801997,0.00426751318661618,0.00424568711044715,0.00422824173950538,0.00421821491008001,0.00421821491008001, +0.0154737853790922,0.0154737853790922,0.0154959854917625,0.0154586011702729,0.0153907435454751,0.0153148527011244,0.0152436161047764,0.0151860838146342,0.0151526526263496,0.0151526526263496, +0.0487423537229835,0.0487423537229835,0.0487775838412571,0.0486622784766708,0.0484697881113574,0.0482565149017696,0.048054843517771,0.0478896453974022,0.0477919904227643,0.0477919904227643, +0.132930395895675,0.132930395895675,0.132945151151255,0.13264177705349,0.132176559246318,0.131666959145198,0.131180555386703,0.130773790478165,0.130526071057207,0.130526071057207, +0.309463928696338,0.309463928696338,0.309353824141782,0.308682696352527,0.30774238637252,0.306728641314238,0.305749322445882,0.304903190091934,0.3043569799768,0.3043569799768, +0.607467269917736,0.607467269917736,0.607104154100229,0.605854020851277,0.604291941669954,0.602652306508981,0.601043816501695,0.59957565494853,0.598497821930675,0.598497821930675, + +00:07:00, +0.000287910213646144,0.000287910213646144,0.000289083341001965,0.000288394398102083,0.000286760971452295,0.000284888355387471,0.000283156556437476,0.000281793338668154,0.000281020730082337,0.000281020730082337, +0.000287910213646144,0.000287910213646144,0.000289083341001965,0.000288394398102083,0.000286760971452295,0.000284888355387471,0.000283156556437476,0.000281793338668154,0.000281020730082337,0.000281020730082337, +0.00108708411347862,0.00108708411347862,0.00109042184594165,0.00108779009893195,0.00108212201437116,0.00107567523428687,0.00106968652944328,0.00106493869455153,0.00106223130572061,0.00106223130572061, +0.00434932755792326,0.00434932755792326,0.00435896167345806,0.00434840911335937,0.00432755466432428,0.0043040199467497,0.00428205128490504,0.0042644928866675,0.00425440335177068,0.00425440335177068, +0.01557604555397,0.01557604555397,0.0155983414546346,0.0155608564991155,0.015492744651996,0.015416519876341,0.0153449499230908,0.0152871524734676,0.0152535749090025,0.0152535749090025, +0.0489772833661968,0.0489772833661968,0.0490125848234219,0.0488971110496487,0.048704198883777,0.0484903421176734,0.048288073083519,0.0481223995508525,0.0480244863267336,0.0480244863267336, +0.133355253293864,0.133355253293864,0.133369951340513,0.133066471701162,0.13260086626094,0.13209062289305,0.131603521610162,0.131196211850781,0.130948217018796,0.130948217018796, +0.310020806657417,0.310020806657417,0.309910602558796,0.309239849146417,0.308299771935794,0.307285970269247,0.306306484979575,0.305460284250482,0.30491413838343,0.30491413838343, +0.607897838967949,0.607897838967949,0.607535144845283,0.606286398801855,0.604725782268196,0.603087417879639,0.601480083525804,0.600013060648823,0.598936191516362,0.598936191516362, + +00:07:01, +0.000291622085101248,0.000291622085101248,0.000292808336421135,0.00029211470185983,0.000290465841855731,0.000288573738042795,0.000286823194188624,0.000285445246194028,0.000284664453681512,0.000284664453681512, +0.000291622085101248,0.000291622085101248,0.000292808336421135,0.00029211470185983,0.000290465841855731,0.000288573738042795,0.000286823194188624,0.000285445246194028,0.000284664453681512,0.000284664453681512, +0.00109853045780672,0.00109853045780672,0.00110189714730811,0.00109925141863075,0.00109354208526424,0.00108704288831866,0.00108100326673203,0.00107621523748328,0.00107348551933199,0.00107348551933199, +0.00438625763130261,0.00438625763130261,0.00439595379603481,0.00438535932855389,0.00436439173318686,0.00434071159952046,0.00431860002205217,0.0043009283280821,0.00429077594561356,0.00429077594561356, +0.0156786144177179,0.0156786144177179,0.015701005912007,0.0156634204784518,0.0155950546331858,0.0155184960233683,0.0154465926930889,0.0153885300544624,0.0153548061137913,0.0153548061137913, +0.04921247390862,0.04921247390862,0.049247845995659,0.049132204348236,0.0489388717385916,0.0487244329835965,0.0485215676993119,0.0483554198526605,0.0482572490126957,0.0482572490126957, +0.133779840221605,0.133779840221605,0.133794480256301,0.133490895907956,0.133024905649571,0.132514022923303,0.132026227986137,0.131618376439745,0.131370107877215,0.131370107877215, +0.310576496616523,0.310576496616523,0.310466192732467,0.309795813297713,0.308855970952224,0.307842116890478,0.306862469764238,0.306016204175274,0.305470124225119,0.305470124225119, +0.608327018736987,0.608327018736987,0.607964744484222,0.606717381189138,0.605158224341074,0.60352112974795,0.601914950696566,0.600449065555278,0.599373158659248,0.599373158659248, + +00:07:02, +0.00029536975749588,0.00029536975749588,0.000296569227980541,0.000295870892001148,0.000294206510505942,0.000292294788911036,0.000290525366345342,0.000289132581799162,0.000288343547217931,0.000288343547217931, +0.00029536975749588,0.00029536975749588,0.000296569227980541,0.000295870892001148,0.000294206510505942,0.000292294788911036,0.000290525366345342,0.000289132581799162,0.000288343547217931,0.000288343547217931, +0.00111005893910034,0.00111005893910034,0.0011134547117921,0.00111079498851903,0.0011050442685705,0.00109849243612272,0.00109240166390865,0.0010875732528554,0.00108482110370563,0.00108482110370563, +0.00442337300258578,0.00442337300258578,0.00443313130589657,0.00442249494163153,0.00440141406391316,0.00437758823668857,0.00435533341604998,0.00433754815969946,0.00432733278848296,0.00432733278848296, +0.0157814911761667,0.0157814911761667,0.0158039780675242,0.0157662923116847,0.0156976726950715,0.0156207803532996,0.015548543631476,0.015490215778606,0.0154563454638409,0.0154563454638409, +0.0494479231278518,0.0494479231278518,0.0494833651362917,0.0493675561484215,0.0491738044504116,0.048958785276325,0.0487553251460794,0.0485887040868153,0.0484902762657416,0.0484902762657416, +0.13420415492465,0.13420415492465,0.134218736150521,0.133915047920396,0.133448675644592,0.132937157453636,0.132448672720552,0.132040282441247,0.131791741822344,0.131791741822344, +0.311131001880783,0.311131001880783,0.311020597975673,0.310350592118636,0.309410986712482,0.308397084435343,0.307417280024634,0.306570953064888,0.306024940686021,0.306024940686021, +0.608754816489238,0.608754816489238,0.608392960293327,0.607146975312896,0.605589275193031,0.603953449406229,0.602348425290948,0.600883676935158,0.599808730626364,0.599808730626364, + +00:07:03, +0.000299153444326225,0.000299153444326225,0.000300366229377337,0.000299663182331987,0.000297983191151253,0.000296051721511477,0.000294263286112662,0.000292855558411801,0.000292058223465479,0.000292058223465479, +0.000299153444326225,0.000299153444326225,0.000300366229377337,0.000299663182331987,0.000297983191151253,0.000296051721511477,0.000294263286112662,0.000292855558411801,0.000292058223465479,0.000292058223465479, +0.001121669818156,0.001121669818156,0.00112509479985324,0.0011224210692431,0.00111662882538094,0.0011100241392395,0.00110388198283803,0.00109901300273108,0.00109623832100107,0.00109623832100107, +0.00446067375740809,0.00446067375740809,0.00447049428715213,0.00445981603693893,0.00443862174253737,0.00441464994674174,0.00439225155778993,0.0043743524742027,0.00436407397398755,0.00436407397398755, +0.0158846750326849,0.0158846750326849,0.015907257122392,0.0158694711997757,0.015800598041214,0.0157233720747277,0.0156508019524268,0.0155922088643341,0.0155581921797141,0.0155581921797141, +0.0496836288102617,0.0496836288102617,0.0497191400324481,0.0496031642350129,0.0494089948026391,0.0491933967813649,0.0489893432133909,0.0488222500458886,0.0487235658795194,0.0487235658795194, +0.134628195669754,0.134628195669754,0.134642717296072,0.134338926006048,0.133872174499489,0.133360024722844,0.132870854040422,0.132461928072555,0.132213117065152,0.132213117065152, +0.311684325752071,0.311684325752071,0.311573821595985,0.310904188916119,0.309964822502153,0.308950876156406,0.307970918980883,0.307124534113436,0.306578590945936,0.306578590945936, +0.609181239437833,0.609181239437833,0.60881979949754,0.607575188421382,0.606018942077039,0.604384384095523,0.602780514534859,0.601316902004828,0.600242914633907,0.600242914633907, + +00:07:04, +0.00030297335930094,0.00030297335930094,0.000304199554518303,0.000303491786867919,0.000301796097751894,0.00029984474957884,0.000298037166914584,0.000296614389181759,0.000295808695420925,0.000295808695420925, +0.00030297335930094,0.00030297335930094,0.000304199554518303,0.000303491786867919,0.000301796097751894,0.00029984474957884,0.000298037166914584,0.000296614389181759,0.000295808695420925,0.000295808695420925, +0.00113336335473665,0.00113336335473665,0.00113681767091379,0.00113412992041054,0.00112829601575003,0.00112163825817844,0.0011154444843606,0.00111053474815433,0.00110773743236135,0.00110773743236135, +0.00449815997815365,0.00449815997815365,0.00450804282066187,0.00449732269557047,0.00447601485183665,0.00445189681490933,0.00442935453490748,0.00441134136102174,0.00440099959248413,0.00440099959248413, +0.0159881651882258,0.0159881651882258,0.0160108422754254,0.0159729563412926,0.0159038298727561,0.0158262703937929,0.015753366867633,0.0156945085275779,0.0156603454794588,0.0156603454794588, +0.0499195887509931,0.0499195887509931,0.0499551684800641,0.0498390264016406,0.049644440587471,0.0494282652929467,0.0492236196994605,0.0490560555310399,0.0489571156562398,0.0489571156562398, +0.135051960744505,0.135051960744505,0.135066421986669,0.134762528453341,0.134295400488677,0.133782622990659,0.133292770193673,0.132883311571843,0.132634231837527,0.132634231837527, +0.312236471526912,0.312236471526912,0.312125866895579,0.311456606991723,0.310517481601639,0.309503495301288,0.308523389848363,0.307676950510464,0.307131078180216,0.307131078180216, +0.609606294745092,0.609606294745092,0.609245269270907,0.608002027711778,0.606447232195047,0.604813941006054,0.603211225603585,0.601748747930195,0.600675717847689,0.600675717847689, + +00:07:05, +0.00030682971633542,0.00030682971633542,0.00030806941751411,0.000307356919828394,0.000305645444474251,0.000303674087057537,0.000301847222388335,0.000300409287474688,0.000299595176298202,0.000299595176298202, +0.00030682971633542,0.00030682971633542,0.00030806941751411,0.000307356919828394,0.000305645444474251,0.000303674087057537,0.000301847222388335,0.000300409287474688,0.000299595176298202,0.000299595176298202, +0.00114513980756723,0.00114513980756723,0.00114862358335431,0.00114592180058586,0.00114004609869134,0.00113333505241347,0.0011270894282879,0.00112213874914549,0.00111931869790854,0.00111931869790854, +0.00453583174396955,0.00453583174396955,0.00454577698405207,0.00453501499538258,0.0045135934713454,0.00448932892317658,0.00446664243179607,0.00444851490634712,0.00443810973109148,0.00443810973109148, +0.0160919608413757,0.0160919608413757,0.0161147327230961,0.0160767469324571,0.01600736738847,0.0159294745142311,0.015856237586351,0.0157971139818125,0.0157628045786563,0.0157628045786563, +0.0501558007539674,0.0501558007539674,0.0501914482838871,0.0500751404507602,0.0498801396059026,0.0496633886140294,0.0494581524111517,0.0492901183520215,0.0491909234066811,0.0491909234066811, +0.135475448457143,0.135475448457143,0.135489848536669,0.135185853571397,0.134718351907322,0.13420495053758,0.133714419448972,0.133304431198016,0.133055084392095,0.133055084392095, +0.312787442496403,0.312787442496403,0.312676737171148,0.312007849641549,0.311068967286076,0.310054945112577,0.309074695837625,0.308228205440864,0.30768240555967,0.30768240555967, +0.610029989522964,0.610029989522964,0.609669376737022,0.608427500330641,0.606874152698422,0.605242127277654,0.603640565622232,0.60217922182714,0.601107147383561,0.601107147383561, + +00:07:06, +0.000310722729546077,0.000310722729546077,0.000311976032673592,0.000311258795631006,0.000309531445685128,0.000307539948095935,0.000305693666378643,0.000304240466866363,0.000303417879522694,0.000303417879522694, +0.000310722729546077,0.000310722729546077,0.000311976032673592,0.000311258795631006,0.000309531445685128,0.000307539948095935,0.000305693666378643,0.000304240466866363,0.000303417879522694,0.000303417879522694, +0.00115699943433038,0.00115699943433038,0.00116051279450937,0.00115779696728621,0.0011518793321732,0.00114511478037865,0.00113881707339813,0.00113382526469678,0.00113098237673928,0.00113098237673928, +0.0045736891307801,0.0045736891307801,0.00458369685172924,0.00457289301100813,0.00455135767736961,0.00452694635029878,0.00450411532962127,0.00448587319314404,0.00447540447370436,0.00447540447370436, +0.0161960611884004,0.0161960611884004,0.0162189276595797,0.0161808421671919,0.0161112097848048,0.0160329836374208,0.0159594133154492,0.0159000244381034,0.0158655686904678,0.0158655686904678, +0.0503922626318864,0.0503922626318864,0.0504279772574772,0.050311504193655,0.0501160896677301,0.0498987645563036,0.0496929391639813,0.049524436327183,0.0494249869501942,0.0494249869501942, +0.135898657136389,0.135898657136389,0.135912995280898,0.13560889968985,0.13514102707117,0.13462700566469,0.134135800095552,0.133725285230536,0.133475673002053,0.133475673002053, +0.313337241946124,0.313337241946124,0.313226435713824,0.31255792015615,0.311619282825246,0.310605228827746,0.309624840154298,0.30877830208478,0.308232576250472,0.308232576250472, +0.610452330833462,0.610452330833462,0.610092128969458,0.608851613374335,0.607299710688387,0.605668950000202,0.604068541666149,0.602608330761949,0.601537210307845,0.601537210307845, + +00:07:07, +0.000314652613244621,0.000314652613244621,0.000315919614498021,0.00031519762888576,0.000313454315946007,0.000311442547040622,0.000309576712932012,0.000308108141136968,0.000307277018725525,0.000307277018725525, +0.000314652613244621,0.000314652613244621,0.000315919614498021,0.00031519762888576,0.000313454315946007,0.000311442547040622,0.000309576712932012,0.000308108141136968,0.000307277018725525,0.000307277018725525, +0.00116894249166218,0.00116894249166218,0.00117248556066337,0.00116975567697721,0.00116379597311452,0.00115697769946397,0.00115062767743186,0.00114559455276795,0.00114272872692038,0.00114272872692038, +0.0046117322113012,0.0046117322113012,0.00462180249489454,0.0046109568138709,0.00458930754300132,0.00456474917181562,0.00454177330633489,0.00452341630116639,0.00451288390100744,0.00451288390100744, +0.0163004654232924,0.0163004654232924,0.0163234262768018,0.0162852412371674,0.016215356255933,0.0161367969624298,0.0160628932594548,0.016003239105154,0.0159686370256817,0.0159686370256817, +0.0506289722062343,0.0506289722062343,0.0506647532232098,0.050548115450437,0.0503522885915527,0.0501343909401946,0.0499279777821222,0.0497590072834746,0.0496593041147062,0.0496593041147062, +0.136321585131274,0.136321585131274,0.136335860574476,0.136031665158675,0.135563424316366,0.135048786693493,0.13455691044304,0.134145871969254,0.133895995960996,0.133895995960996, +0.313885873156055,0.313885873156055,0.313774965809086,0.313106821820457,0.312168431483491,0.311154349679058,0.310173825999006,0.309327243617525,0.308781593414076,0.308781593414076, +0.610873325689092,0.610873325689092,0.610513532992201,0.609274373889472,0.607723913216449,0.606094416214053,0.604495160761364,0.603036081751736,0.601965913637757,0.601965913637757, + +00:07:08, +0.00031861958193235,0.00031861958193235,0.000319900377675399,0.00031917363438935,0.000317414270007323,0.000315382098430678,0.000313496576291005,0.000312012524265384,0.000311172807737863,0.000311172807737863, +0.00031861958193235,0.00031861958193235,0.000319900377675399,0.00031917363438935,0.000317414270007323,0.000315382098430678,0.000313496576291005,0.000312012524265384,0.000311172807737863,0.000311172807737863, +0.00118096923514805,0.00118096923514805,0.00118454213704641,0.00118179818506881,0.00117579627738062,0.00116892406601105,0.00116252149708776,0.00115744687028201,0.00115455800548457,0.00115455800548457, +0.00464996105505466,0.00464996105505466,0.00466009398155824,0.00464920647220006,0.00462744313813303,0.00460273746006553,0.00457961643668921,0.00456114430697086,0.00455054809048944,0.00455054809048944, +0.0164051727378172,0.0164051727378172,0.0164282277644848,0.0163899433318482,0.0163198059937976,0.0162409136860623,0.0161666766206007,0.0161067571893518,0.0160720087927601,0.0160720087927601, +0.0508659273072793,0.0508659273072793,0.0509017740122759,0.0507849720500485,0.0505887342047737,0.0503702655948638,0.0501632660984072,0.0499938290564511,0.0498938727367239,0.0498938727367239, +0.136744230810962,0.136744230810962,0.136758442792643,0.136454148348017,0.135985541999289,0.135470291965733,0.134977748821284,0.134566189734236,0.134316051582746,0.134316051582746, +0.314433339400498,0.314433339400498,0.31432233073669,0.313654557913688,0.312716416519633,0.311702310893489,0.310721656567282,0.30987503320949,0.309329460207126,0.309329460207126, +0.611292981053283,0.611292981053283,0.610933595780079,0.609695788873333,0.608146767284834,0.606518532910463,0.604920429885003,0.603462481764867,0.602393264341828,0.602393264341828, + +00:07:09, +0.000322623850294447,0.000322623850294447,0.000323918537074747,0.000323187027119448,0.000321411522802742,0.00031935881699196,0.000317453470888532,0.000315953830423496,0.00031510546058522,0.00031510546058522, +0.000322623850294447,0.000322623850294447,0.000323918537074747,0.000323187027119448,0.000321411522802742,0.00031935881699196,0.000317453470888532,0.000315953830423496,0.00031510546058522,0.00031510546058522, +0.00119307991931857,0.00119307991931857,0.00119668277783029,0.00119392474591126,0.00118788049977916,0.00118095413530912,0.00117449878801847,0.00116938247312106,0.00116647046842629,0.00116647046842629, +0.00468837572838274,0.00468837572838274,0.00469857137655427,0.0046876420510448,0.0046657645294723,0.00464091128420013,0.00461764479225129,0.00459905728393114,0.00458839711645718,0.00458839711645718, +0.0165101823215589,0.0165101823215589,0.0165333313101937,0.016494947638539,0.0164245581881576,0.016345333002905,0.0162707625988713,0.0162105778948143,0.0161756831978848,0.0161756831978848, +0.0511031257740748,0.0511031257740748,0.0511390374646828,0.0510220718302625,0.0508254243436017,0.0506063863582109,0.05039880195433,0.0502288994902736,0.0501286906613364,0.0501286906613364, +0.137166592564585,0.137166592564585,0.137180740330593,0.136876347648014,0.136407378496377,0.13589151984323,0.135398313580187,0.134986236865596,0.134735838201184,0.134735838201184, +0.314979643947999,0.314979643947999,0.314868533770581,0.314201131709278,0.31326324118689,0.312249115692642,0.311268335049485,0.31042167402606,0.30987617978137,0.30987617978137, +0.611711303840807,0.611711303840807,0.611352324259181,0.610115865274299,0.608568279846901,0.606941307032011,0.605344355965705,0.603887537721377,0.602819269340319,0.602819269340319, + +00:07:10, +0.000326665633194284,0.000326665633194284,0.000327974307740411,0.00032723802222899,0.000325446289443449,0.000323372917631388,0.000321447611342151,0.000319932273970492,0.000319075191481769,0.000319075191481769, +0.000326665633194284,0.000326665633194284,0.000327974307740411,0.00032723802222899,0.000325446289443449,0.000323372917631388,0.000321447611342151,0.000319932273970492,0.000319075191481769,0.000319075191481769, +0.00120527479764559,0.00120527479764559,0.00120890773612451,0.00120613561279119,0.00120004889405614,0.00119306816159091,0.00118655980482649,0.00118140161612212,0.00117846637069754,0.00117846637069754, +0.00472697629446255,0.00472697629446255,0.00473723474155478,0.00472626361228889,0.00470427178055631,0.00467927071019867,0.0046558584414173,0.00463715530225216,0.00462643105004986,0.00462643105004986, +0.0166154933619667,0.0166154933619667,0.0166387360993817,0.0166002533424307,0.0165296120266346,0.0164500541053728,0.0163751503920486,0.0163147004234356,0.0162796594450032,0.0162796594450032, +0.051340565454459,0.051340565454459,0.0513765414292541,0.051259412637682,0.0510623568530508,0.0508427510768744,0.0506345832000474,0.0504642164377117,0.0503637557422173,0.0503637557422173, +0.13758866880107,0.13758866880107,0.137602751603302,0.137298261468636,0.136828932203954,0.136312468707706,0.135818603089537,0.135406011723326,0.135155354170084,0.135155354170084, +0.315524790061268,0.315524790061268,0.315413578178823,0.314746546474795,0.313808908732803,0.312794767292668,0.311813864630718,0.310967169227537,0.310421755283579,0.310421755283579, +0.6121283009182,0.6121283009182,0.611769725307278,0.610534609992266,0.608988457807573,0.607362745473014,0.605766945884047,0.60431125649338,0.603243935505634,0.603243935505634, + +00:07:11, +0.000330745145667738,0.000330745145667738,0.000332067904886368,0.000331326835040488,0.000329518785212446,0.000327424615431246,0.000325479212448374,0.000323948069447186,0.000323082214824662,0.000323082214824662, +0.000330745145667738,0.000330745145667738,0.000332067904886368,0.000331326835040488,0.000329518785212446,0.000327424615431246,0.000325479212448374,0.000323948069447186,0.000323082214824662,0.000323082214824662, +0.00121755412253824,0.00121755412253824,0.00122121726397238,0.00121843103792767,0.00121230171289204,0.00120526639802871,0.00119870480106016,0.00119350455307313,0.00119054596620383,0.00119054596620383, +0.00476576281332069,0.00476576281332069,0.00477608413508479,0.00476507121466542,0.00474296495176653,0.00471781580088259,0.00469425744942688,0.00467543842898436,0.00466464995925324,0.00466464995925324, +0.0167211050443993,0.0167211050443993,0.0167444413154357,0.0167058596266452,0.0166349666947578,0.0165550761837544,0.0164798391957577,0.016419123974931,0.0163839367358737,0.0163839367358737, +0.0515782442050557,0.0515782442050557,0.051614283763629,0.0514969923277397,0.0512995295869399,0.0510793576062322,0.05087060769438,0.0506997777601452,0.0505990658416265,0.0505990658416265, +0.138010457948975,0.138010457948975,0.138024475045358,0.137719888239506,0.137250201538069,0.13673313696062,0.136238615738839,0.135825512687134,0.13557459786294,0.13557459786294, +0.316068780997104,0.316068780997104,0.315957467223523,0.31529080547187,0.314353422399152,0.313339268904187,0.312358248490748,0.311511521969053,0.310966189855466,0.310966189855466, +0.612543979104172,0.612543979104172,0.612185805754241,0.610952029879068,0.60940730802374,0.607782855079945,0.606188206472944,0.604733644905477,0.603667269662724,0.603667269662724, + +00:07:12, +0.000334862602917508,0.000334862602917508,0.000336199543890549,0.000335453681040333,0.000333629225558852,0.000331514125643487,0.000329548489176975,0.000328001431570335,0.000327126745188359,0.000327126745188359, +0.000334862602917508,0.000334862602917508,0.000336199543890549,0.000335453681040333,0.000333629225558852,0.000331514125643487,0.000329548489176975,0.000328001431570335,0.000327126745188359,0.000327126745188359, +0.00122991814533906,0.00122991814533906,0.00123361161234728,0.00123081127246845,0.0012246392078979,0.00121754909673051,0.00121093402920977,0.00120569153670899,0.00120270950780023,0.00120270950780023, +0.00480473534184783,0.00480473534184783,0.00481511961253693,0.0048040649137715,0.00478184410034341,0.00475654661593016,0.00473284187837768,0.00471390672803809,0.004703053908914,0.004703053908914, +0.0168270165521708,0.0168270165521708,0.0168504461397206,0.0168117656722807,0.0167406213760089,0.0166603984262577,0.0165848282035118,0.0165238477468828,0.0164885142701108,0.0164885142701108, +0.0518161598912727,0.0518161598912727,0.0518522623342608,0.0517348087646968,0.0515369404078922,0.051316203810401,0.0511068733048128,0.0509355813275646,0.050834618830411,0.050834618830411, +0.138431958456318,0.138431958456318,0.138445909110797,0.138141226409742,0.137671184934319,0.137153523022998,0.136658349937148,0.13624473815627,0.135993567672811,0.135993567672811, +0.316611620006326,0.316611620006326,0.316500204160753,0.315833911956122,0.314896785421886,0.313882623732215,0.31290148980393,0.312054735400496,0.311509486633602,0.311509486633602, +0.612958345170022,0.612958345170022,0.612600572382442,0.611368131738882,0.609824837304682,0.608201642651835,0.606608144518061,0.605154709735167,0.604089278589494,0.604089278589494, + +00:07:13, +0.00033901822030745,0.00033901822030745,0.000340369440289164,0.000339618775873115,0.000337777826092222,0.000335641663684045,0.000333655656665317,0.000332092575226969,0.000331208997318963,0.000331208997318963, +0.00033901822030745,0.00033901822030745,0.000340369440289164,0.000339618775873115,0.000337777826092222,0.000335641663684045,0.000333655656665317,0.000332092575226969,0.000331208997318963,0.000331208997318963, +0.00124236711632032,0.00124236711632032,0.00124609103114886,0.0012432765664862,0.00123706162961165,0.00122991650873615,0.00122324774070365,0.00121796281870764,0.00121495724728742,0.00121495724728742, +0.00484389393381341,0.00484389393381341,0.00485434122618609,0.00484324476208309,0.00482090928040116,0.00479546321189106,0.00477161178723982,0.00475256026019799,0.00474164296075408,0.00474164296075408, +0.0169332270665946,0.0169332270665946,0.0169567497516245,0.0169179706584562,0.0168465752518675,0.0167660200190543,0.0166901166067572,0.0166288709347846,0.0165933912452303,0.0165933912452303, +0.0520543103873008,0.0520543103873008,0.0520904750164156,0.051972859821641,0.0517745871873337,0.0515532875622361,0.0513433779074948,0.0511716250185713,0.0510704125880053,0.0510704125880053, +0.138853168790413,0.138853168790413,0.138867052272936,0.138562274447783,0.138091880847689,0.13757362533527,0.137077804112906,0.136663686549373,0.136412262012145,0.136412262012145, +0.317153310333697,0.317153310333697,0.317041792240488,0.316375869177086,0.315439001031049,0.314424834976081,0.313443591739132,0.31259681266643,0.312051648749346,0.312051648749346, +0.613371405840038,0.613371405840038,0.613014031927172,0.611782922328641,0.610241052412466,0.608619114940681,0.607026766758216,0.60557445771324,0.604509969017202,0.604509969017202, + +00:07:14, +0.00034321221335691,0.00034321221335691,0.000344577809771041,0.000343822335335956,0.000341964802576867,0.000339807445127161,0.000337800930212682,0.000336221715468735,0.000335329186128566,0.000335329186128566, +0.00034321221335691,0.00034321221335691,0.000344577809771041,0.000343822335335956,0.000341964802576867,0.000339807445127161,0.000337800930212682,0.000336221715468735,0.000335329186128566,0.000335329186128566, +0.00125490128468023,0.00125490128468023,0.00125865576919942,0.00125582716897491,0.00124956922749435,0.00124236888401362,0.00123564618590445,0.00123031864968628,0.00122728943540793,0.00122728943540793, +0.00488323863988031,0.00488323863988031,0.00489374902520434,0.00488261080896979,0.00486016054294254,0.00483456564220112,0.00481056723187047,0.00479139908313747,0.00478041717338511,0.00478041717338511, +0.017039735767028,0.017039735767028,0.0170633513286026,0.0170244737623562,0.0169528275018552,0.0168719401463244,0.0167957035949178,0.0167341927320863,0.0166985668566929,0.0166985668566929, +0.0522926935761121,0.0522926935761121,0.0523289196941695,0.0522111433804841,0.0520124678054912,0.0517906067433295,0.0515801193872386,0.0514079067203776,0.0513064450024314,0.0513064450024314, +0.139274087437708,0.139274087437708,0.139287903024206,0.138983030841229,0.138512287752385,0.137993442357103,0.137496976713779,0.137082356304296,0.136830679312626,0.136830679312626, +0.317693855217857,0.317693855217857,0.317582234706526,0.316916680378144,0.315980072450707,0.314965905829363,0.313984557459657,0.313137756906022,0.312592679328761,0.312592679328761, +0.613783167791905,0.613783167791905,0.613426191077035,0.612196408358437,0.610655960062355,0.609035278651848,0.607444079885774,0.605992895524177,0.604929347630852,0.604929347630852, + +00:07:15, +0.00034744479773508,0.00034744479773508,0.00034882486817197,0.000348064575372847,0.000346190370926184,0.000344011685699714,0.000341984525274609,0.000340389067506242,0.000339487526689602,0.000339487526689602, +0.00034744479773508,0.00034744479773508,0.00034882486817197,0.000348064575372847,0.000346190370926184,0.000344011685699714,0.000341984525274609,0.000340389067506242,0.000339487526689602,0.000339487526689602, +0.00126752089853938,0.00126752089853938,0.00127130607424034,0.00126846332784626,0.00126216224992665,0.00125490647145537,0.00124812961410537,0.00124275927919762,0.00123970632184231,0.00123970632184231, +0.00492276950761967,0.00492276950761967,0.00493334305567568,0.00492216310070978,0.00489959793587374,0.00487385395719707,0.00484970826502845,0.00483042325143325,0.00481937660232288,0.00481937660232288, +0.0171465418309162,0.0171465418309162,0.0171702500462209,0.0171312741592738,0.0170593773035794,0.0169781579903003,0.0169015883554388,0.0168398123302374,0.016804040297949,0.016804040297949, +0.0525313073494574,0.0525313073494574,0.0525675942604062,0.0524496573319594,0.0522505801513896,0.0520281592440085,0.0518170956375187,0.0516444243288058,0.0515427139702985,0.0515427139702985, +0.139694712903618,0.139694712903618,0.139708459875992,0.139403494096675,0.138932404141668,0.138412972567238,0.137915866206491,0.137500745877952,0.137248818025004,0.137248818025004, +0.318233257891254,0.318233257891254,0.318121534796428,0.317456348796455,0.31652000289888,0.315505839479813,0.314524390123175,0.313677571252967,0.313132581492546,0.313132581492546, +0.614193637657098,0.614193637657098,0.613837056474348,0.612608596491918,0.611069566923207,0.609450140444465,0.607860090547046,0.606410029806543,0.605347421069589,0.605347421069589, + +00:07:16, +0.000351716189255349,0.000351716189255349,0.00035311083146906,0.000352345712068995,0.000350454747197003,0.000348254601275566,0.000346206657457244,0.000344594846703419,0.000343684234229207,0.000343684234229207, +0.000351716189255349,0.000351716189255349,0.00035311083146906,0.000352345712068995,0.000350454747197003,0.000348254601275566,0.000346206657457244,0.000344594846703419,0.000343684234229207,0.000343684234229207, +0.00128022620493716,0.00128022620493716,0.00128404219292854,0.00128118528992615,0.00127484094420522,0.00126752951887479,0.0012606982735266,0.00125528495572624,0.00125220815520555,0.00125220815520555, +0.00496248658152568,0.00496248658152568,0.00497312336061097,0.00496190168050474,0.00493922150401927,0.00491332820413135,0.00488903493638896,0.00486963281657987,0.00485852130000188,0.00485852130000188, +0.0172536444338357,0.0172536444338357,0.0172774450782001,0.0172383710226551,0.0171662238327775,0.017084672731311,0.017007770073831,0.0169457289187314,0.0169098107604821,0.0169098107604821, +0.0527701496078633,0.0527701496078633,0.0528064966168134,0.052688399575618,0.0524889221228493,0.0522659429633332,0.0520543045604704,0.0518811757482867,0.0517792173968011,0.0517792173968011, +0.140115043712365,0.140115043712365,0.140128721358469,0.139823662739548,0.139352228527694,0.13883221446333,0.138334471076665,0.137918853746151,0.137666676618942,0.137666676618942, +0.318771521580076,0.318771521580076,0.31865969574145,0.317994877662891,0.317058795587471,0.316044639109285,0.315063092881651,0.314216258835421,0.313671358355958,0.313671358355958, +0.614602822021278,0.614602822021278,0.614246634715538,0.613019493346688,0.611481879617867,0.609863706931815,0.608274805342679,0.606825867153376,0.605764195927085,0.605764195927085, + +00:07:17, +0.000356026603869675,0.000356026603869675,0.000357435915775111,0.000356665961645183,0.000354758147583937,0.000352536407869912,0.000350467542511699,0.000348839268571879,0.000347919524123594,0.000347919524123594, +0.000356026603869675,0.000356026603869675,0.000357435915775111,0.000356665961645183,0.000354758147583937,0.000352536407869912,0.000350467542511699,0.000348839268571879,0.000347919524123594,0.000347919524123594, +0.00129301744982832,0.00129301744982832,0.00129686437083311,0.00129399330095126,0.00128760555653929,0.00128023827300264,0.00127335241131173,0.00126789592668497,0.00126479518304341,0.00126479518304341, +0.00500238990303049,0.00500238990303049,0.00501308997996288,0.00500182658849479,0.00497903128913689,0.00495298842718694,0.00492854729255823,0.0049090278270044,0.00489785131578986,0.00489785131578986, +0.0173610427495375,0.0173610427495375,0.0173849355964583,0.0173457635241421,0.0172733662633599,0.017191483547825,0.0171142479337139,0.0170519416851491,0.0170158774338523,0.0170158774338523, +0.053009218260629,0.053009218260629,0.053045624673879,0.0529273680198251,0.0527274916264822,0.0525039558090933,0.0522917440668868,0.0521181588918577,0.052015953195718,0.052015953195718, +0.140535078406819,0.140535078406819,0.14054868602044,0.140243535313945,0.139771759441351,0.139251166561782,0.138752789828661,0.138336678403438,0.138084253582849,0.138084253582849, +0.31930864950419,0.31930864950419,0.319196720766476,0.318532270201972,0.317596453722205,0.31658230789367,0.315600668881274,0.314753822775922,0.314209013028748,0.314209013028748, +0.615010727424683,0.615010727424683,0.614654932351531,0.613429105494698,0.611892904723558,0.610275984681727,0.608688230828042,0.607240414112571,0.606179678751923,0.606179678751923, + +00:07:18, +0.000360376257662962,0.000360376257662962,0.000361800337332981,0.000361025540452139,0.000359100788413744,0.000356857321633641,0.00035476739632842,0.000353122548765302,0.000352193611892432,0.000352193611892432, +0.000360376257662962,0.000360376257662962,0.000361800337332981,0.000361025540452139,0.000359100788413744,0.000356857321633641,0.00035476739632842,0.000353122548765302,0.000352193611892432,0.000352193611892432, +0.00130589487807956,0.00130589487807956,0.0013097728524319,0.00130688760556573,0.00130045633204732,0.00129303297948366,0.00128609227352427,0.00128059243841144,0.00127746765182892,0.00127746765182892, +0.00504247951051904,0.00504247951051904,0.00505324295064086,0.00504193786177358,0.00501902732993268,0.00499283466749226,0.00496824537708833,0.00494860832808102,0.00493736669600244,0.00493736669600244, +0.0174687359499904,0.0174687359499904,0.017492720771154,0.0174534508336153,0.0173808037674531,0.0172985896164933,0.0172210211168589,0.0171584498152012,0.0171222395057395,0.0171222395057395, +0.0532485112258221,0.0532485112258221,0.0532849763508867,0.0531665605817555,0.0529662865776881,0.0527421956978054,0.0525294120762166,0.0523553716811608,0.0522529192894098,0.0522529192894098, +0.140954815548333,0.140954815548333,0.140968352429177,0.140663110382473,0.140190995432095,0.13966982739759,0.139170820985419,0.138754218362938,0.138501547423726,0.138501547423726, +0.319844644877077,0.319844644877077,0.319732613089958,0.319068529631803,0.318132980502558,0.31711884900283,0.316137121262393,0.315290266191332,0.314745548615085,0.314745548615085, +0.615417360362512,0.615417360362512,0.615061955888137,0.613837439462631,0.612302648772273,0.610686980216961,0.609100373513606,0.607653677187261,0.606593876047977,0.606593876047977, + +00:07:19, +0.000364765366847449,0.000364765366847449,0.000366204312509984,0.000365424664964917,0.0003634828861397,0.000361217558847715,0.000359106434931566,0.000357444903073814,0.00035650671319324,0.00035650671319324, +0.000364765366847449,0.000364765366847449,0.000366204312509984,0.000365424664964917,0.0003634828861397,0.000361217558847715,0.000359106434931566,0.000357444903073814,0.00035650671319324,0.00035650671319324, +0.0013188587334662,0.0013188587334662,0.00132276788110829,0.00131986844731784,0.00131339351475361,0.00130591388287318,0.00129891810514426,0.00129337473616456,0.00129022580695894,0.00129022580695894, +0.00508275543934409,0.00508275543934409,0.00509358230652616,0.0050822355344033,0.00505920966207598,0.00503286696313611,0.00500812923049193,0.00498837436214579,0.0049770674839178,0.0049770674839178, +0.017576723205423,0.017576723205423,0.0176007997707288,0.0175614321192367,0.0174885355154425,0.017405990112193,0.0173280888032319,0.0172652524927715,0.0172288961619855,0.0172288961619855, +0.0534880264302744,0.0534880264302744,0.0535245495759113,0.0534059751873888,0.0532053049006498,0.0529806605547084,0.0527673065165604,0.0525928120464391,0.0524901136088162,0.0524901136088162, +0.14137425371659,0.14137425371659,0.141387719170263,0.141082386526092,0.140609935067798,0.140088195524181,0.139588563088301,0.139171472156195,0.138918556667008,0.138918556667008, +0.320379510905768,0.320379510905768,0.320267375923853,0.319603659164009,0.318668379121697,0.317654265600533,0.31667245315945,0.315825592192762,0.315280968213494,0.315280968213494, +0.615822727285308,0.615822727285308,0.615467711786435,0.61424450173229,0.612711118251154,0.611096700015587,0.609511239865328,0.608065662836194,0.60700679427479,0.60700679427479, + +00:07:20, +0.00036919414775711,0.00036919414775711,0.000370648057792281,0.000369863551777286,0.000367904657335988,0.000365617335917547,0.000363484874473401,0.000361806547418389,0.000360859043815784,0.000360859043815784, +0.00036919414775711,0.00036919414775711,0.000370648057792281,0.000369863551777286,0.000367904657335988,0.000365617335917547,0.000363484874473401,0.000361806547418389,0.000360859043815784,0.000360859043815784, +0.00133190925866896,0.00133190925866896,0.00133584969914794,0.00133293606865685,0.00132641734758515,0.0013188812266339,0.00131183015006493,0.00130624306412125,0.00130306989275077,0.00130306989275077, +0.00512321772184119,0.00512321772184119,0.00513410807848689,0.00512271963742983,0.00509957831821457,0.00507308534918266,0.00504819889025721,0.00502832596851137,0.00501695371979139,0.00501695371979139, +0.0176850036843662,0.0176850036843662,0.017709171761949,0.0176697065474918,0.0175965606760145,0.0175136842080687,0.0174354501710359,0.0173723488999593,0.0173358465866373,0.0173358465866373, +0.0537277618095769,0.0537277618095769,0.0537643422858132,0.0536456097715039,0.0534445445283284,0.0532193483137593,0.053005425324667,0.052830477926534,0.052727534093453,0.052727534093453, +0.141793391509443,0.141793391509443,0.141806784847433,0.141501362343954,0.141028576934583,0.140506269513257,0.140006014696931,0.139588438333018,0.139335279856406,0.139335279856406, +0.32091325079079,0.32091325079079,0.320801012473564,0.320137662003681,0.319202652766421,0.318188560844388,0.317206667700916,0.316359803885515,0.315815274916786,0.315815274916786, +0.616226834599336,0.616226834599336,0.615872206463153,0.614650298740979,0.613118319602871,0.611505150511367,0.609920836305027,0.608476377474111,0.607418439847946,0.607418439847946, + +00:07:21, +0.000373662816842061,0.000373662816842061,0.000375131789779296,0.000374342417596136,0.000372366318692087,0.000370056869367397,0.000367902931228688,0.000366207697845253,0.000365250819676493,0.000365250819676493, +0.000373662816842061,0.000373662816842061,0.000375131789779296,0.000374342417596136,0.000372366318692087,0.000370056869367397,0.000367902931228688,0.000366207697845253,0.000365250819676493,0.000365250819676493, +0.00134504669527075,0.00134504669527075,0.00134901854773569,0.00134609071092983,0.00133952807236842,0.00133193525313259,0.00132482865108947,0.00131919766537308,0.00131600015243886,0.00131600015243886, +0.00516386638734368,0.00516386638734368,0.00517482029439315,0.00516339019889784,0.00514013332798969,0.00511348985768644,0.00508845439086274,0.00506846318348186,0.00505702544087068,0.00505702544087068, +0.0177935765536951,0.0177935765536951,0.0178178359099479,0.0177782732832315,0.0177048784161988,0.017621671075575,0.017543104396753,0.017479738217121,0.0174430899619883,0.0174430899619883, +0.0539677153080745,0.0539677153080745,0.054004352426233,0.0538854622776732,0.0536840034024574,0.0534582569176287,0.0532437664459294,0.0530683672688809,0.0529651786914081,0.0529651786914081, +0.142212227542759,0.142212227542759,0.142225548082416,0.141920036453247,0.14144691963667,0.140924047954638,0.140423174389041,0.140005115461324,0.139751715553754,0.139751715553754, +0.321445867726101,0.321445867726101,0.321333525937882,0.320670541349312,0.319735804617096,0.318721737885787,0.317739768009227,0.316892904369014,0.316348471811996,0.316348471811996, +0.616629688666961,0.616629688666961,0.616275446291039,0.615054836881875,0.613524259226004,0.611912338094121,0.610329169210749,0.608885827472109,0.607828819139438,0.607828819139438, + +00:07:22, +0.00037817159066299,0.00037817159066299,0.000379655725178132,0.000378861479235889,0.000376868087007185,0.000374536375834783,0.000372360821589107,0.000370648570520305,0.000369682256812881,0.000369682256812881, +0.00037817159066299,0.00037817159066299,0.000379655725178132,0.000378861479235889,0.000376868087007185,0.000374536375834783,0.000372360821589107,0.000370648570520305,0.000369682256812881,0.000369682256812881, +0.00135827128375361,0.00135827128375361,0.00136227466695248,0.00135933261437864,0.00135272592982629,0.00134507620363705,0.00133791384992779,0.0013322387819231,0.00132901682817156,0.00132901682817156, +0.00520470146219781,0.00520470146219781,0.00521571897913215,0.00520424724386601,0.00518087471805128,0.00515408051770744,0.00512889576379236,0.00510878604036759,0.00509728268140994,0.00509728268140994, +0.0179024409786703,0.0179024409786703,0.0179267913782668,0.0178871314897133,0.0178134879014095,0.0177299498845185,0.0176510506551857,0.0175874196229123,0.0175506254686206,0.0175506254686206, +0.05420788487886,0.05420788487886,0.0542445779515844,0.0541255306582565,0.0539236794735373,0.0536973843176949,0.0534823278343795,0.0533064780295052,0.0532030453593374,0.0532030453593374, +0.142630760450262,0.142630760450262,0.142644007514785,0.142338407489039,0.14186496179622,0.141341529456104,0.140840040760318,0.140421502126987,0.140167862338854,0.140167862338854, +0.321977364899039,0.321977364899039,0.321864919508931,0.321202300392745,0.3202678378476,0.31925379986984,0.318271757200728,0.317424896736746,0.316880561980322,0.316880561980322, +0.617031295807015,0.617031295807015,0.616677437599237,0.615458122504407,0.613928943475407,0.612318269110106,0.610736244917143,0.609294019158014,0.608237938478034,0.608237938478034, + +00:07:23, +0.000382720685885582,0.000382720685885582,0.000384220080798009,0.000383420953612927,0.000381410179184596,0.000379056072064891,0.000376858762057674,0.000375129381723545,0.000374153571377979,0.000374153571377979, +0.000382720685885582,0.000382720685885582,0.000384220080798009,0.000383420953612927,0.000381410179184596,0.000379056072064891,0.000376858762057674,0.000375129381723545,0.000374153571377979,0.000374153571377979, +0.00137158326349563,0.00137158326349563,0.00137561829577236,0.00137266201813691,0.00136601115957502,0.00135830431831296,0.00135108598719349,0.00134536665468267,0.00134212016100798,0.00134212016100798, +0.00524572296977783,0.00524572296977783,0.00525680415462337,0.00524529079442222,0.00522180251207311,0.00519485735532617,0.00516952303755023,0.00514929456950004,0.00513772547268509,0.00513772547268509, +0.0180115961229793,0.0180115961229793,0.0180360373288962,0.0179962803286429,0.0179223882954871,0.0178385198030984,0.0177592881194991,0.0176953922943289,0.0176584522854458,0.0176584522854458, +0.054448268483768,0.054448268483768,0.0544850168250485,0.0543658128743939,0.0541635707008285,0.0539367284740386,0.0537211074526835,0.0535448081730171,0.0534411320624605,0.0534411320624605, +0.143048988883386,0.143048988883386,0.143062161801797,0.142756474104123,0.142282702053178,0.141758712643246,0.14125661242425,0.14083759693368,0.140583718809322,0.140583718809322, +0.322507745490261,0.322507745490261,0.322395196372108,0.321732942319113,0.320798755625265,0.319784749935324,0.318802638385607,0.3179557840762,0.317411548497059,0.317411548497059, +0.617431662295165,0.617431662295165,0.617078186673651,0.61586016191462,0.614332378662584,0.612722949862378,0.61114206971582,0.60970095881674,0.608645804149641,0.608645804149641, + +00:07:24, +0.000387310319274968,0.000387310319274968,0.00038882507354471,0.000388021057740032,0.000385992812226192,0.000383616174905013,0.000381396969243177,0.000379650347843516,0.000378664979634782,0.000378664979634782, +0.000387310319274968,0.000387310319274968,0.00038882507354471,0.000388021057740032,0.000385992812226192,0.000383616174905013,0.000381396969243177,0.000379650347843516,0.000378664979634782,0.000378664979634782, +0.00138498287276802,0.00138498287276802,0.0013890496720596,0.00138607916022716,0.00137938400012136,0.00137161983622096,0.00136434530240072,0.00135858152346838,0.0013553103909149,0.0013553103909149, +0.00528693093050114,0.00528693093050114,0.00529807583983381,0.0052865208696988,0.00526291673076805,0.0052358203936588,0.00521033623767578,0.00518998879824672,0.00517835384300858,0.00517835384300858, +0.0181210411487772,0.0181210411487772,0.0181455729223168,0.0181057189602147,0.0180315787607387,0.0179473799979484,0.0178678159612612,0.0178036554067484,0.0177665695897465,0.0177665695897465, +0.0546888640933681,0.0546888640933681,0.0547256670185659,0.0546063068959984,0.0544036750523449,0.0541762873554361,0.0539601032721356,0.0537833556726066,0.0536794367745552,0.0536794367745552, +0.143466911511112,0.143466911511112,0.143480009618241,0.143174234968867,0.142700139065123,0.142175596159308,0.141672888011971,0.14125339850273,0.14099928358044,0.14099928358044, +0.323037012673696,0.323037012673696,0.322924359706035,0.32226247030679,0.321328561110821,0.32031459121462,0.319332414667842,0.318485569468809,0.317941434431544,0.317941434431544, +0.617830794364281,0.617830794364281,0.617477699757316,0.616260961375547,0.614734571056049,0.613126386611153,0.611546649855717,0.610106652690649,0.60905242239766,0.60905242239766, + +00:07:25, +0.000391940707690186,0.000391940707690186,0.000393470920415033,0.000392662008720832,0.000390616203226844,0.000388216901298982,0.000385975659854622,0.000384211685371755,0.000383216697950706,0.000383216697950706, +0.000391940707690186,0.000391940707690186,0.000393470920415033,0.000392662008720832,0.000390616203226844,0.000388216901298982,0.000385975659854622,0.000384211685371755,0.000383216697950706,0.000383216697950706, +0.00139847034873226,0.00139847034873226,0.00140256903256582,0.00139958427755794,0.00139284468885959,0.00138502299531369,0.00137769203396132,0.0013718836269991,0.00136858775676374,0.00136858775676374, +0.00532832536184345,0.00532832536184345,0.00533953405079319,0.00532793748588783,0.00530421739190329,0.00527696965287234,0.00525133538675878,0.00523086875102616,0.00521916781774428,0.00521916781774428, +0.0182307752167274,0.0182307752167274,0.0182553973175395,0.0182154465431525,0.0181410584579792,0.0180565296341767,0.0179766333504838,0.0179122081339702,0.017874976557217,0.017874976557217, +0.0549296696869576,0.0549296696869576,0.0549665265128291,0.0548470107017491,0.0546439905048463,0.054416058939353,0.0541993132726523,0.0540221185100374,0.053917957477952,0.053917957477952, +0.143884527019824,0.143884527019824,0.143897549656292,0.143591688771055,0.143117271507113,0.142592178665038,0.142088866172112,0.141668905472959,0.141414555285,0.141414555285, +0.323565169616485,0.323565169616485,0.323452412682503,0.322790887527334,0.321857257458343,0.320843326833659,0.319861089145144,0.31901425598989,0.318470222847095,0.318470222847095, +0.618228698204791,0.618228698204791,0.617875983050749,0.616660527107563,0.61513552688169,0.613528585574172,0.611949991543454,0.610511106979909,0.609457799423345,0.609457799423345, + +00:07:26, +0.000396612068078644,0.000396612068078644,0.00039815783849127,0.000397344023744269,0.000395280569368886,0.000392858468281633,0.000390595050695691,0.00038881361089726,0.000387808942792057,0.000387808942792057, +0.000396612068078644,0.000396612068078644,0.00039815783849127,0.000397344023744269,0.000395280569368886,0.000392858468281633,0.000390595050695691,0.00038881361089726,0.000387808942792057,0.000387808942792057, +0.00141204592743719,0.00141204592743719,0.0014161766129272,0.00141317760592105,0.0014063934620688,0.00139851403243295,0.00139112641918183,0.00138527320289299,0.00138195249632765,0.00138195249632765, +0.005369906278354,0.005369906278354,0.00538117880060926,0.00536954065625645,0.00534570451031566,0.00531830515019983,0.00529252050445442,0.00527193444932286,0.00526016741932245,0.00526016741932245, +0.0183407974860413,0.0183407974860413,0.0183655096721457,0.0183254622347495,0.0182508265465712,0.0181659678754067,0.0180857394556631,0.0180210496482565,0.017983672362003,0.017983672362003, +0.0551706832525536,0.0551706832525536,0.055207593297275,0.0550879222790819,0.0548845150438308,0.0546560412119368,0.0544387354427656,0.0542610946756414,0.0541566921635283,0.0541566921635283, +0.144301834113158,0.144301834113158,0.144314780625349,0.144008834215744,0.143534098071534,0.143008458838536,0.142504545570651,0.142084116500541,0.141829532573158,0.141829532573158, +0.324092219478935,0.324092219478935,0.323979358466424,0.323318197145438,0.322384847815199,0.32137095991187,0.320388664908899,0.319541846708591,0.318997916800955,0.318997916800955, +0.618625379965041,0.618625379965041,0.618273042712314,0.617058865288751,0.615535252323124,0.613929552927052,0.612352100943687,0.610914327842844,0.609861941386151,0.609861941386151, + +00:07:27, +0.000401324617470611,0.000401324617470611,0.000402886044935685,0.000402067320079077,0.000399986127916574,0.000397541092973265,0.000395255358659214,0.000393456341100965,0.000392441930718509,0.000392441930718509, +0.000401324617470611,0.000401324617470611,0.000402886044935685,0.000402067320079077,0.000399986127916574,0.000397541092973265,0.000395255358659214,0.000393456341100965,0.000392441930718509,0.000392441930718509, +0.00142570984381635,0.00142570984381635,0.00142987264766182,0.00142685937998885,0.00142003055491011,0.00141209318330691,0.00140464869426072,0.00139875048766469,0.00139540484627859,0.00139540484627859, +0.00541167369167081,0.00541167369167081,0.00542301009948305,0.00541133039116218,0.00538737809792694,0.00535982689995555,0.00533389160749842,0.00531318591170235,0.00530135266725468,0.00530135266725468, +0.0184511071145188,0.0184511071145188,0.0184759091423271,0.0184357651909079,0.0183608821844651,0.0182756938838171,0.0181951334438195,0.0181301791203716,0.0180926561767425,0.0180926561767425, +0.0554119027868857,0.0554119027868857,0.0554488653700759,0.055329039624182,0.0551252466635265,0.0548962321680093,0.0546783677796159,0.054500282168311,0.0543956388307017,0.0543956388307017, +0.144718831511847,0.144718831511847,0.144731701251898,0.144425670025104,0.14395061746795,0.143424435375103,0.142919924890763,0.142499030258851,0.142244214112287,0.142244214112287, +0.324618165414469,0.324618165414469,0.324505200215778,0.323844402318883,0.322911335321997,0.321897493562125,0.320915145044119,0.320068344687836,0.319524519344238,0.319524519344238, +0.619020845751647,0.619020845751647,0.618668884858575,0.617455982055254,0.615933753522056,0.61432929480364,0.612752984179459,0.611316321396282,0.610264854404083,0.610264854404083, + +00:07:28, +0.000406078572973707,0.000406078572973707,0.000407655756985012,0.000406832115068266,0.000404733096210577,0.000402264992574124,0.00039995680072165,0.000398140092750231,0.000397115878377603,0.000397115878377603, +0.000406078572973707,0.000406078572973707,0.000407655756985012,0.000406832115068266,0.000404733096210577,0.000402264992574124,0.00039995680072165,0.000398140092750231,0.000397115878377603,0.000397115878377603, +0.00143946233168528,0.00143946233168528,0.00144365737016699,0.00144062983331165,0.00143375620142404,0.00142576068254743,0.00141825909428563,0.00141231571672249,0.00140894504218458,0.00140894504218458, +0.00545362761053594,0.00545362761053594,0.00546502795472427,0.00545330669806831,0.00542923816375921,0.00540153491355031,0.00537544870972215,0.0053546231538262,0.00534272357814893,0.00534272357814893, +0.0185617032585873,0.0185617032585873,0.0185865948829249,0.0185463545661788,0.0184712245282386,0.0183857068201812,0.0183048144805373,0.0182395957196224,0.018201927172605,0.018201927172605, +0.0556533262953866,0.0556533262953866,0.0556903407381308,0.0555703607419742,0.0553661833668827,0.0551366298110587,0.0549182082889449,0.0547396789954931,0.0546347954874231,0.0546347954874231, +0.145135517953579,0.145135517953579,0.145148310279353,0.144842194938281,0.144366828422952,0.143840106987096,0.143335002832673,0.142913645438317,0.142658598586825,0.142658598586825, +0.325143010569576,0.325143010569576,0.32502994108157,0.324369506198484,0.323436723112538,0.32242293089069,0.321440532629386,0.320593752984269,0.320050033521873,0.320050033521873, +0.619415101629844,0.619415101629844,0.619063515564641,0.617851883501625,0.616331036578624,0.614727817296364,0.613152647332547,0.611717093715904,0.61066654455404,0.61066654455404, + +00:07:29, +0.000410874151767414,0.000410874151767414,0.000412467191944968,0.000411638626123631,0.000409521691662471,0.000407030384358896,0.000404699593937589,0.000402865082693348,0.000401831002499249,0.000401831002499249, +0.000410874151767414,0.000410874151767414,0.000412467191944968,0.000411638626123631,0.000409521691662471,0.000407030384358896,0.000404699593937589,0.000402865082693348,0.000401831002499249,0.000401831002499249, +0.00145330362373889,0.00145330362373889,0.0014575310127167,0.00145448919831511,0.00144757063452792,0.00143951676364739,0.00143195785323065,0.00142596912436564,0.00142257331850691,0.00142257331850691, +0.00549576804081077,0.00549576804081077,0.00550723237076662,0.00549546958155927,0.0054712847139502,0.00544342919950671,0.00541719182206781,0.00539624618846711,0.00538428016572456,0.00538428016572456, +0.0186725850733408,0.0186725850733408,0.018697566047469,0.0186572295138011,0.0185818527331362,0.0184960058439066,0.0184147817300042,0.0183492986138971,0.0183114845193308,0.0183114845193308, +0.0558949517921836,0.0558949517921836,0.0559320174170558,0.055811883646114,0.0556073231655612,0.0553772321532311,0.0551582549850873,0.054979283173181,0.0548741601501697,0.0548741601501697, +0.145551892192845,0.145551892192845,0.145564606467914,0.145258407711238,0.144782729680015,0.144255472403775,0.143749778113508,0.143327960746273,0.14307268469813,0.14307268469813, +0.325666758083764,0.325666758083764,0.325553584207779,0.324893511928048,0.323961014313765,0.322947274997174,0.321964830736803,0.321118074648208,0.320574462372553,0.320574462372553, +0.619808153623836,0.619808153623836,0.619456940864519,0.61824657568118,0.616727107551753,0.615125126456573,0.613551096443806,0.612116650836585,0.611067017872161,0.611067017872161, + +00:07:30, +0.0004157115710976,0.0004157115710976,0.000417320567184773,0.000416487070720268,0.000414352131749247,0.000411837485671216,0.000409483955434258,0.000407631527854049,0.000406587519890245,0.000406587519890245, +0.0004157115710976,0.0004157115710976,0.000417320567184773,0.000416487070720268,0.000414352131749247,0.000411837485671216,0.000409483955434258,0.000407631527854049,0.000406587519890245,0.000406587519890245, +0.00146723395154894,0.00146723395154894,0.00147149380645909,0.00146843770629778,0.00146147408601333,0.00145336165897816,0.00144574520395375,0.0014397109437817,0.00143628990859752,0.00143628990859752, +0.00553809498549135,0.00553809498549135,0.00554962334918315,0.00553781904335611,0.00551351775176874,0.00548550976347448,0.00545912095260366,0.00543805502552406,0.00542602244082739,0.00542602244082739, +0.0187837517125794,0.0187837517125794,0.0188088217882167,0.0187683891857404,0.0186927659531077,0.018606590113074,0.0185250343550501,0.0184592869697046,0.0184213273852704,0.0184213273852704, +0.0561367773000896,0.0561367773000896,0.056173893431175,0.0560536063589776,0.0558486640799266,0.0556180372153212,0.0553985058909624,0.0552190927259065,0.0551137308439368,0.0551137308439368, +0.145967953000796,0.145967953000796,0.14598058859442,0.145674307116615,0.145198319999345,0.144670530371161,0.144164249467152,0.143741974906817,0.143486471164339,0.143486471164339, +0.326189411089517,0.326189411089517,0.326076132731312,0.325416422644327,0.324484212045717,0.323470528974482,0.322488042431946,0.321641312723588,0.321097808928686,0.321097808928686, +0.620200007717135,0.620200007717135,0.619849166751455,0.618640064606338,0.617121972459494,0.615521228294886,0.613948337513509,0.612514998752729,0.611466280354156,0.611466280354156, + +00:07:31, +0.000420591048271054,0.000420591048271054,0.000422216100131691,0.000421377666391103,0.000419224634007836,0.000416686513918184,0.000414310102406046,0.000412439645226042,0.000411385647428813,0.000411385647428813, +0.000420591048271054,0.000420591048271054,0.000422216100131691,0.000421377666391103,0.000419224634007836,0.000416686513918184,0.000414310102406046,0.000412439645226042,0.000411385647428813,0.000411385647428813, +0.00148125354556158,0.00148125354556158,0.00148554598141409,0.00148247558742863,0.00147546678654369,0.00146729559978706,0.00145962137819417,0.00145354140704394,0.00145009504469637,0.00145009504469637, +0.00558060844472374,0.00558060844472374,0.00559220088870174,0.00558035508233185,0.00555593727763013,0.00552777660824578,0.00550123610653918,0.00548004967203738,0.0054679504114448,0.0054679504114448, +0.0188952023288469,0.0188952023288469,0.0189203612561909,0.018879832732727,0.0188039633408471,0.0187174587844761,0.0186355715171862,0.0185695599522131,0.0185314549374228,0.0185314549374228, +0.0563788008505926,0.0563788008505926,0.0564159668135097,0.0562955269116518,0.0560902041390363,0.0558590430267638,0.0556389590380661,0.0554591056867317,0.0553535056022302,0.0553535056022302, +0.146383699165098,0.146383699165098,0.146396255452202,0.14608989194358,0.145613598157737,0.14508527965189,0.144578415644101,0.144155686660664,0.143899956720219,0.143899956720219, +0.326710972712247,0.326710972712247,0.326597589781967,0.325938241476973,0.325006319421484,0.323992695908764,0.323010170773814,0.322163470247917,0.321620076216338,0.321620076216338, +0.620590669852901,0.620590669852901,0.620240199178271,0.619032356248963,0.617515637279364,0.615916128781528,0.614344376501686,0.612912143418611,0.611864337955646,0.611864337955646, + +00:07:32, +0.000425512800650036,0.000425512800650036,0.000427154008265582,0.000426310630721443,0.000424139416029647,0.000421577686564904,0.000419178252109041,0.000417289651867549,0.000416225602059141,0.000416225602059141, +0.000425512800650036,0.000425512800650036,0.000427154008265582,0.000426310630721443,0.000424139416029647,0.000421577686564904,0.000419178252109041,0.000417289651867549,0.000416225602059141,0.000416225602059141, +0.00149536263509493,0.00149536263509493,0.00149968776647098,0.00149660307074475,0.00148954896565188,0.00148131881619494,0.00147358660657003,0.00146746074510884,0.00146398895792897,0.00146398895792897, +0.00562330841581936,0.00562330841581936,0.00563496498522045,0.00562307769452703,0.00559854328911163,0.00557022973377061,0.00554353728624038,0.00552223013220396,0.00551006408272085,0.00551006408272085, +0.0190069360734696,0.0190069360734696,0.0190321836012187,0.0189915593042948,0.0189154440478309,0.0188286110136559,0.0187463923766429,0.0186801167252884,0.0186418663414742,0.0186418663414742, +0.0566210204838461,0.0566210204838461,0.0566582356057683,0.0565376433439232,0.0563319413806306,0.0561002476256235,0.055879612466461,0.0556993200972402,0.0555934824670569,0.0555934824670569, +0.146799129489785,0.146799129489785,0.146811605850941,0.146505160997689,0.14602856294843,0.145499719025066,0.14499227541132,0.144569094765001,0.144313140117024,0.144313140117024, +0.327231446070254,0.327231446070254,0.327117958482381,0.326458971548495,0.325527339547162,0.324513778879374,0.32353121881478,0.322684550252227,0.322141267255194,0.322141267255194, +0.620980145934282,0.620980145934282,0.620630044057709,0.619423456540706,0.617908107948691,0.616309833846662,0.614739219328453,0.613308090748705,0.612261196592491,0.612261196592491, + +00:07:33, +0.000430477045646844,0.000430477045646844,0.000432134509113466,0.000431286181343529,0.000429096695455121,0.000426511221129035,0.000424088621855582,0.000422181764895866,0.000421107600785945,0.000421107600785945, +0.000430477045646844,0.000430477045646844,0.000432134509113466,0.000431286181343529,0.000429096695455121,0.000426511221129035,0.000424088621855582,0.000422181764895866,0.000421107600785945,0.000421107600785945, +0.00150956144833676,0.00150956144833676,0.00151391938938616,0.00151082038414905,0.00150372085173788,0.00149543153719383,0.00148764111857581,0.00148146918781366,0.00147797187830382,0.00147797187830382, +0.00566619489327042,0.00566619489327042,0.00567791563182302,0.00566598687316516,0.00564133578096791,0.00561286913717213,0.00558602449124504,0.00556459640739242,0.00555236345697144,0.00555236345697144, +0.0191189520965941,0.0191189520965941,0.0191442879719686,0.0191035680488185,0.0190272072243558,0.0189400459549443,0.0188574960924083,0.0187909564515322,0.018752560761836,0.018752560761836, +0.0568634342486586,0.0568634342486586,0.0569006978583352,0.0567799537042676,0.0565738738511217,0.0563416490585847,0.0561204642247672,0.0559397340075283,0.0558336594889169,0.0558336594889169, +0.147214242795118,0.147214242795118,0.147226638616523,0.146920113100736,0.146443213180962,0.145913847286121,0.145405827552101,0.144982197993351,0.144726020122358,0.144726020122358, +0.327750834274683,0.327750834274683,0.327637241947996,0.326978615974219,0.32604727552181,0.325033780958825,0.324051189600552,0.323204555761026,0.322661385058503,0.322661385058503, +0.621368441824743,0.621368441824743,0.621018707262757,0.619813371373335,0.618299390364938,0.616702349380728,0.615132871874349,0.613702846618013,0.612656862141121,0.612656862141121, + +00:07:34, +0.000435484000718392,0.000435484000718392,0.000437157820244109,0.000436304535931117,0.000434096689968296,0.000431487335175347,0.000429041429008823,0.000427116201481927,0.000426031860669042,0.000426031860669042, +0.000435484000718392,0.000435484000718392,0.000437157820244109,0.000436304535931117,0.000434096689968296,0.000431487335175347,0.000429041429008823,0.000427116201481927,0.000426031860669042,0.000426031860669042, +0.00152385021234223,0.00152385021234223,0.00152824107678088,0.00152512775440799,0.00151798267206656,0.00150963399064465,0.0015017851425801,0.00149556696387401,0.00149204403471014,0.00149204403471014, +0.00570926786876529,0.00570926786876529,0.00572105281879429,0.00570908260866822,0.00568431474514653,0.00565569481276214,0.005628697718278,0.00560714849615834,0.00559484853369946,0.00559484853369946, +0.0192312495472244,0.0192312495472244,0.0192566735159879,0.0192158581135514,0.0191392520195764,0.0190517627614986,0.0189688818222655,0.0189020782923195,0.0188635373616824,0.0188635373616824, +0.0571060402024824,0.0571060402024824,0.0571433516302597,0.0570224560498385,0.0568159996055829,0.0565832453809415,0.0563615123701524,0.0561803454761947,0.0560740347267935,0.0560740347267935, +0.147629037917445,0.147629037917445,0.147641352590899,0.147334747090615,0.146857547681026,0.146327663246671,0.145819070865918,0.145394995135424,0.145138595520028,0.145138595520028, +0.328269140429486,0.328269140429486,0.328155443287013,0.327497177862246,0.326566130437408,0.325552705212742,0.324570086170123,0.323723489792255,0.323180432633038,0.323180432633038, +0.621755563348397,0.621755563348397,0.621406194626986,0.620202106599071,0.618689490386041,0.617093681234766,0.615525339980657,0.614096416862394,0.613051340438861,0.613051340438861, + +00:07:35, +0.000440533883360802,0.000440533883360802,0.000442224159262614,0.000441365912194066,0.00043913961729139,0.000436506246310307,0.000434036890977317,0.000432093178844897,0.000430998598817939,0.000430998598817939, +0.000440533883360802,0.000440533883360802,0.000442224159262614,0.000441365912194066,0.00043913961729139,0.000436506246310307,0.000434036890977317,0.000432093178844897,0.000430998598817939,0.000430998598817939, +0.00153822915303165,0.00153822915303165,0.00154265305413911,0.00153952540714948,0.00153233465276548,0.00152392640327493,0.00151601890582327,0.00150975430088162,0.00150620565491543,0.00150620565491543, +0.00575252733120395,0.00575252733120395,0.00576437653363573,0.00575236488867218,0.00572748017080344,0.00569870675205643,0.00567155696126651,0.00564988639425943,0.00563751930960999,0.00563751930960999, +0.0193438275732597,0.0193438275732597,0.0193693393797405,0.0193284286446623,0.0192515775815425,0.0191637605853392,0.0190805487228304,0.0190134814078363,0.0189747953029878,0.0189747953029878, +0.0573488364114026,0.0573488364114026,0.0573861949892441,0.0572651484464553,0.0570583167077372,0.0568250346565864,0.0566027549683217,0.0564211525703315,0.0563146062481434,0.0563146062481434, +0.148043513709057,0.148043513709057,0.14805574663194,0.147749061821178,0.147271565290334,0.146741165734376,0.146232004168291,0.145807484996985,0.145550865109906,0.145550865109906, +0.328786367631376,0.328786367631376,0.328672565600358,0.328014660313412,0.327083907378817,0.326070554699824,0.325087911555732,0.324241355357242,0.323698412979046,0.323698412979046, +0.622141516290334,0.622141516290334,0.621792511944871,0.620589668030911,0.619078413830734,0.617483835220749,0.615916629449734,0.614488807278883,0.61344463728425,0.61344463728425, + +00:07:36, +0.000445626911104016,0.000445626911104016,0.000447333743805037,0.000446470527872944,0.0004442256951794,0.00044156817217667,0.000439075225209607,0.000437112914246765,0.000436008032386431,0.000436008032386431, +0.000445626911104016,0.000445626911104016,0.000447333743805037,0.000446470527872944,0.0004442256951794,0.00044156817217667,0.000439075225209607,0.000437112914246765,0.000436008032386431,0.000436008032386431, +0.00155269849518841,0.00155269849518841,0.00155715554580542,0.00155401356686077,0.00154677701882279,0.0015383090006767,0.00153034263441529,0.00152403142530202,0.00152045696556329,0.00152045696556329, +0.00579597326671346,0.00579597326671346,0.00580788676108092,0.00579583369804257,0.00577083204431853,0.00574190494379029,0.00571460221135552,0.00569281009467086,0.00568037577862548,0.00568037577862548, +0.0194566853215306,0.0194566853215306,0.0194822847086426,0.0194412787872727,0.0193641830572363,0.0192760385773868,0.0191924959495886,0.0191251649571165,0.0190863337465642,0.0190863337465642, +0.0575918209501254,0.0575918209501254,0.0576292260116321,0.0575080289685913,0.0573008232299451,0.0570670149579993,0.0568441900935067,0.0566621533655133,0.0565553721288869,0.0565553721288869, +0.148457669038049,0.148457669038049,0.148469819613303,0.148163056162095,0.147685264866471,0.147154353592797,0.146644626290644,0.146219666399708,0.145962827707793,0.145962827707793, +0.329302518969796,0.329302518969796,0.32918861198164,0.328531066421254,0.327600609423738,0.3265873324718,0.325604668782818,0.324758155460663,0.32421532909021,0.32421532909021, +0.62252630639694,0.62252630639694,0.622177664972118,0.620976061442959,0.619466166478876,0.617872817111896,0.616306746045328,0.614880023626015,0.613836758437365,0.613836758437365, + +00:07:37, +0.00045076330150642,0.00045076330150642,0.00045248679153301,0.000451618600733645,0.00044935514141471,0.000446673330448086,0.000444156649188837,0.000442175624986959,0.000441060378567225,0.000441060378567225, +0.00045076330150642,0.00045076330150642,0.00045248679153301,0.000451618600733645,0.00044935514141471,0.000446673330448086,0.000444156649188837,0.000442175624986959,0.000441060378567225,0.000441060378567225, +0.00156725846245686,0.00156725846245686,0.00157174877498298,0.00156859245688644,0.00156130999408516,0.00155278200730439,0.00154475655333353,0.00153839856247241,0.0015347981921712,0.0015347981921712, +0.00583960565866338,0.00583960565866338,0.00585158348311106,0.00583948901889,0.00581437034931117,0.00578528937393391,0.00575783345692305,0.00573591958760047,0.00572341793190104,0.00572341793190104, +0.0195698219378363,0.0195698219378363,0.0195955086471003,0.0195544076854926,0.0194770675926084,0.0193885958874995,0.019304722656932,0.0192371280980787,0.0191981518520977,0.0191981518520977, +0.0578349919019658,0.0578349919019658,0.057872442782396,0.0577510956993614,0.0575435172531932,0.0573091843662361,0.0570858158284548,0.0569033459457868,0.0567963304533973,0.0567963304533973, +0.148871502788184,0.148871502788184,0.148883570424289,0.148576728998713,0.148098645282757,0.147567225681262,0.147056936080167,0.146631538181043,0.146374482145278,0.146374482145278, +0.32981759752688,0.32981759752688,0.329703585517119,0.329046399271968,0.328116239642677,0.327103041573394,0.326120360869984,0.325273893100495,0.324731183953603,0.324731183953603, +0.622909939376223,0.622909939376223,0.622561659425987,0.621361292570743,0.619852754071766,0.618260632643,0.616695695492897,0.615270071624138,0.614227709620132,0.614227709620132, + +00:07:38, +0.000455943272149481,0.000455943272149481,0.000457683520128389,0.000456810348562032,0.000454528173801728,0.000451821938823725,0.000449281380427378,0.000447281528396977,0.000446155854586566,0.000446155854586566, +0.000455943272149481,0.000455943272149481,0.000457683520128389,0.000456810348562032,0.000454528173801728,0.000451821938823725,0.000449281380427378,0.000447281528396977,0.000446155854586566,0.000446155854586566, +0.00158190927734033,0.00158190927734033,0.00158643296373157,0.0015832622994264,0.00157593380125581,0.00156734564647275,0.00155926088642077,0.00155285593659952,0.00154922955912838,0.00154922955912838, +0.00588342448768128,0.00588342448768128,0.00589546667897053,0.00588333083058575,0.0058580950666557,0.0058288600257079,0.00580125068359557,0.00577921486050408,0.00576664575783964,0.00576664575783964, +0.0196832365669804,0.0196832365669804,0.0197090103385446,0.0196678144824577,0.0195902303326147,0.0195014316645086,0.0194172279981956,0.019349369987563,0.019310248778185,0.019310248778185, +0.058078347358836,0.058078347358836,0.0581158433951241,0.0579943467305091,0.0577863968670811,0.0575515409709164,0.0573276302644174,0.0571447284036597,0.0570374793144899,0.0570374793144899, +0.149285013858753,0.149285013858753,0.149296997969702,0.148990079231921,0.148511705428112,0.147979780874725,0.147468932399681,0.147043099194077,0.1467858272696,0.1467858272696, +0.330331606377416,0.330331606377416,0.330217489285663,0.329560661944377,0.328630801098905,0.32761768504228,0.326634990828955,0.325788571267981,0.325245980549648,0.325245980549648, +0.623292420898124,0.623292420898124,0.622944500985606,0.621745367111538,0.620238182312469,0.618647287510743,0.617083483479926,0.615658956955726,0.614617496516641,0.614617496516641, + +00:07:39, +0.000461167040632404,0.000461167040632404,0.000462924147287904,0.000462045989158583,0.00045974501016152,0.00045701421502292,0.000454449636461468,0.000452430841835031,0.000451294677698887,0.000451294677698887, +0.000461167040632404,0.000461167040632404,0.000462924147287904,0.000462045989158583,0.00045974501016152,0.00045701421502292,0.000454449636461468,0.000452430841835031,0.000451294677698887,0.000451294677698887, +0.00159665116119919,0.00159665116119919,0.00160120833296572,0.00159802331553407,0.00159064866189259,0.00158200014035496,0.00157385585638309,0.00156740377075759,0.00156375128969374,0.00156375128969374, +0.00592742973166825,0.00592742973166825,0.00593953632518238,0.00592735910977733,0.00590200617449707,0.00587261687959875,0.00584485387426337,0.00582269589810079,0.0058100592421074,0.0058100592421074, +0.019796928352807,0.019796928352807,0.019822788925468,0.0197814983203642,0.0197036704212522,0.0196145450562552,0.0195300111256933,0.0194618897813663,0.0194226236823695,0.0194226236823695, +0.0583218854212316,0.0583218854212316,0.0583594259520079,0.0582377801623934,0.0580294601698086,0.0577940828702114,0.0575696315011385,0.0573862988400893,0.0572788168134113,0.0572788168134113, +0.149698201164437,0.149698201164437,0.149710101169721,0.149403105778009,0.148924444206914,0.148392018063628,0.147880614127498,0.147454348307398,0.147196861943517,0.147196861943517, +0.330844548588811,0.330844548588811,0.330730326358724,0.330073857509892,0.329144296848422,0.328131265909053,0.32714856166454,0.32630219294759,0.325759721852079,0.325759721852079, +0.623673756594837,0.623673756594837,0.623326195292286,0.622128290724679,0.620622456866127,0.619032787374006,0.617470115656236,0.616046685265695,0.615006124773456,0.615006124773456, + +00:07:40, +0.000466434824566804,0.000466434824566804,0.000468208890717842,0.000467325740333064,0.00046500586832648,0.000462250376779817,0.000459661634845871,0.000457623782680704,0.000456477065181471,0.000456477065181471, +0.000466434824566804,0.000466434824566804,0.000468208890717842,0.000467325740333064,0.00046500586832648,0.000462250376779817,0.000459661634845871,0.000457623782680704,0.000456477065181471,0.000456477065181471, +0.00161148433424899,0.00161148433424899,0.00161607510245281,0.00161287572511447,0.00160545479640611,0.00159674570998065,0.001588541684788,0.00158204228688636,0.0015783636059939,0.0015783636059939, +0.00597162136581436,0.00597162136581436,0.00598379239556395,0.00597157383040408,0.0059461036482664,0.00591655991337434,0.00588864300909597,0.0058663626823883,0.00585365836764882,0.00585365836764882, +0.0199108964382362,0.0199108964382362,0.0199368435494598,0.0198954583405052,0.0198173870015944,0.0197279352096257,0.0196430711907539,0.019574686634279,0.0195352757211773,0.0195352757211773, +0.0585656041982197,0.0585656041982197,0.0586031885638284,0.0584813941039757,0.058272705268163,0.0580368081708313,0.0578118176468424,0.0576280553644709,0.0575203410598271,0.0575203410598271, +0.150111063635177,0.150111063635177,0.150122878959755,0.149815807568536,0.149336860538866,0.148803936153769,0.148291980157288,0.147865284404961,0.147607585045168,0.147607585045168, +0.33135642722106,0.33135642722106,0.331242099800294,0.330585989032487,0.329656729939926,0.328643787197185,0.327661076374597,0.326814761116974,0.326272410827903,0.326272410827903, +0.624053952061116,0.624053952061116,0.623706747949835,0.622510069031875,0.621005583360272,0.619417137854183,0.617855597634294,0.616433262161704,0.615393599999922,0.615393599999922, + +00:07:41, +0.00047174684157139,0.00047174684157139,0.000473537968128733,0.000472649819899213,0.000470310966135,0.00046753064183805,0.000464917593148543,0.000462860568329629,0.000461703234329129,0.000461703234329129, +0.00047174684157139,0.00047174684157139,0.000473537968128733,0.000472649819899213,0.000470310966135,0.00046753064183805,0.000464917593148543,0.000462860568329629,0.000461703234329129,0.000461703234329129, +0.00162640901555862,0.00162640901555862,0.00163103349081138,0.00162781974692252,0.00162035242405797,0.00161158257523411,0.0016033185920625,0.00159677170578918,0.00159306672902121,0.00159306672902121, +0.00601599936261421,0.00601599936261421,0.00602823486124238,0.00601597496371278,0.00599038746069653,0.00596068910209947,0.0059326180655575,0.00591021519265824,0.00589744311470215,0.00589744311470215, +0.0200251399652994,0.0200251399652994,0.020051173351241,0.0200096936833053,0.0199313792158272,0.0198416012705874,0.0197564073437565,0.0196877597001201,0.0196482040501527,0.0196482040501527, +0.0588095018074246,0.0588095018074246,0.0588471293499424,0.0587251866728054,0.058516130277505,0.0582797149880123,0.0580541868182214,0.0578699960946258,0.0577620501718106,0.0577620501718106, +0.150523600216034,0.150523600216034,0.150535330290313,0.150228183550193,0.149748953358859,0.149215534066163,0.148703029397945,0.148275906385953,0.148017995467937,0.148017995467937, +0.331867245326712,0.331867245326712,0.331752812666881,0.331097059568656,0.330168103414774,0.329155251922996,0.328172537949994,0.32732627874694,0.326784050437359,0.326784050437359, +0.624433012854586,0.624433012854586,0.624086164524866,0.622890707617518,0.621387567385135,0.619800344535486,0.61823993498952,0.616818693214463,0.615779927768468,0.615779927768468, + +00:07:42, +0.000477103309266672,0.000477103309266672,0.000478911597230057,0.000478018445669438,0.000475660521426166,0.000472855227945432,0.000470217728945328,0.000468141416188178,0.000466973402448893,0.000466973402448893, +0.000477103309266672,0.000477103309266672,0.000478911597230057,0.000478018445669438,0.000475660521426166,0.000472855227945432,0.000470217728945328,0.000468141416188178,0.000466973402448893,0.000466973402448893, +0.00164142542304857,0.00164142542304857,0.00164608371550935,0.00164285559856132,0.00163534176295903,0.00162651095485251,0.0016181867974913,0.00161159224713111,0.00160786087863194,0.00160786087863194, +0.00606056369188247,0.00606056369188247,0.00607286369067022,0.00606056247827327,0.00603485758183765,0.00600500441815133,0.00597677901842218,0.00595425340551149,0.00594141346081463,0.00594141346081463, +0.0201396580751743,0.0201396580751743,0.0201657774706994,0.0201242034883558,0.0200456462052833,0.0199555423842234,0.0198700187341657,0.0198011081317723,0.0197614078238929,0.0197614078238929, +0.0590535763750148,0.0590535763750148,0.0590912464382687,0.0589691559950063,0.0587597333217553,0.058522801445503,0.058296737140423,0.0581121191567886,0.0580039422758304,0.0580039422758304, +0.150935809867056,0.150935809867056,0.150947454126871,0.150640232684667,0.150160721616839,0.14962681073691,0.149113760773451,0.148686213164661,0.148428092120325,0.148428092120325, +0.332377005950837,0.332377005950837,0.332262468007474,0.331607072167391,0.330678420306954,0.329665663095617,0.328682949374577,0.327836748801405,0.327294643633886,0.327294643633886, +0.624810944496045,0.624810944496045,0.624464450547099,0.623270212028991,0.621768414493951,0.620182412965253,0.618623133260588,0.617202983958035,0.616165113614908,0.616165113614908, + +00:07:43, +0.000482504445269682,0.000482504445269682,0.000484329995724969,0.000483431835449541,0.000481054752034468,0.000478224352848654,0.000475562259814654,0.00047346654366817,0.000472287786854731,0.000472287786854731, +0.000482504445269682,0.000482504445269682,0.000484329995724969,0.000483431835449541,0.000481054752034468,0.000478224352848654,0.000475562259814654,0.00047346654366817,0.000472287786854731,0.000472287786854731, +0.0016565337734893,0.0016565337734893,0.00166122599286244,0.00165798349648047,0.00165042303006773,0.00164153106642418,0.00163314651921501,0.00162650412943719,0.0016227462735444,0.0016227462735444, +0.00610531432076936,0.00610531432076936,0.006117678849641,0.00610533633999402,0.0060795139790729,0.00604950583123511,0.00602112583978969,0.00599847729487357,0.00598556938085783,0.00598556938085783, +0.0202544499082197,0.0202544499082197,0.0202806550469241,0.0202389868944494,0.0201601871104773,0.0200697576947677,0.0199839045105665,0.0199147310812173,0.0198748861960839,0.0198748861960839, +0.0592978260356885,0.0592978260356885,0.0593355379652734,0.059213300205262,0.0590035125333801,0.0587660656755515,0.0585394667470368,0.0583544226855947,0.0582460155067376,0.0582460155067376, +0.151347691563149,0.151347691563149,0.151359249449737,0.151051953948514,0.150572164277675,0.150037765117064,0.14952417322275,0.14909620367034,0.148837873925817,0.148837873925817, +0.332885712131,0.332885712131,0.332771068863513,0.332116029870145,0.331187683643051,0.330175023716957,0.329192313625135,0.328346174237369,0.327804193364085,0.327804193364085, +0.62518775246977,0.62518775246977,0.62484161150967,0.62364858777697,0.622148130203267,0.620563348654247,0.619005197949729,0.617586139890134,0.616549163038741,0.616549163038741, + +00:07:44, +0.000487950467188705,0.000487950467188705,0.000489793381305041,0.000488890207033449,0.000486493875784527,0.00048363823428801,0.000480951403332263,0.000478836168181597,0.000477646604862264,0.000477646604862264, +0.000487950467188705,0.000487950467188705,0.000489793381305041,0.000488890207033449,0.000486493875784527,0.00048363823428801,0.000480951403332263,0.000478836168181597,0.000477646604862264,0.000477646604862264, +0.00167173428249953,0.00167173428249953,0.00167646053803252,0.00167320365597457,0.0016655964411885,0.00165664312638697,0.00164819797422852,0.00164150757009067,0.00163772313133728,0.00163772313133728, +0.00615025121377626,0.00615025121377626,0.00616268030130481,0.0061502965121378,0.00612435661713398,0.00609419330839948,0.00606565849910065,0.00604288683200998,0.00602991084704299,0.00602991084704299, +0.0203695146040093,0.0203695146040093,0.0203958052182397,0.0203540430396141,0.0202750010711401,0.0201842463456395,0.0200980638206988,0.0200286276995698,0.019988638319534,0.019988638319534, +0.0595422489326593,0.0595422489326593,0.0595800020759554,0.0594576174468008,0.059247466053377,0.0590095058188905,0.058782373780081,0.0585969048240671,0.0584882680077533,0.0584882680077533, +0.151759244293945,0.151759244293945,0.151770715253923,0.15146334633302,0.150983280321023,0.150448396172499,0.149934265699609,0.149505876847082,0.149247339822747,0.149247339822747, +0.333393366897227,0.333393366897227,0.333278618268863,0.332623935710807,0.331695896442219,0.330683336781674,0.329700633671368,0.328854558004876,0.328312702567687,0.328312702567687, +0.625563442223814,0.625563442223814,0.625217652869426,0.624025840335726,0.622526719993236,0.620943157076953,0.619386134523025,0.617968166472421,0.616932081503445,0.616932081503445, + +00:07:45, +0.00049344159261804,0.00049344159261804,0.000495301971645018,0.00049439377819797,0.000491978110485839,0.000489097089992135,0.000486385377065944,0.000484250507135362,0.000483050073783519,0.000483050073783519, +0.00049344159261804,0.00049344159261804,0.000495301971645018,0.00049439377819797,0.000491978110485839,0.000489097089992135,0.000486385377065944,0.000484250507135362,0.000483050073783519,0.000483050073783519, +0.00168702716454477,0.00168702716454477,0.00169178756502617,0.00168851629118164,0.00168086221097021,0.00167184735002665,0.00166334137837928,0.00165660278533133,0.00165279166844789,0.00165279166844789, +0.00619537433277123,0.00619537433277123,0.00620786800618388,0.0061954429553373,0.00616938545811676,0.00613906681405216,0.00611037696315205,0.00608748198554159,0.00607443782893632,0.00607443782893632, +0.0204848513013664,0.0204848513013664,0.0205112271222402,0.0204693710611476,0.0203900872262528,0.0202990074794776,0.0202124958114915,0.020142797137112,0.0201026633462087,0.0201026633462087, +0.0597868432176419,0.0597868432176419,0.0598246369238315,0.0597021058713814,0.0594915920312596,0.059253120024724,0.0590254563899886,0.0588395637236032,0.0587306979304551,0.0587306979304551, +0.152170467063668,0.152170467063668,0.152181850549009,0.151874408844075,0.151394068741199,0.150858702883779,0.150344037172493,0.149915231653688,0.149656488764175,0.149656488764175, +0.333899973271981,0.333899973271981,0.333785119249782,0.333130792715673,0.332203061716147,0.331190605277142,0.330207912475853,0.329361903046986,0.328820174177515,0.328820174177515, +0.625938019170303,0.625938019170303,0.625592580047223,0.624401975143425,0.622904189307917,0.621321843671881,0.619765948410706,0.618349069130798,0.617313874436767,0.617313874436767, + +00:07:46, +0.000498978039132764,0.000498978039132764,0.000500855984397594,0.000499942766697557,0.000497507673927536,0.00049460113767276,0.000491864398570288,0.000489709777926038,0.000488498410921681,0.000488498410921681, +0.000498978039132764,0.000498978039132764,0.000500855984397594,0.000499942766697557,0.000497507673927536,0.00049460113767276,0.000491864398570288,0.000489709777926038,0.000488498410921681,0.000488498410921681, +0.00170241263293575,0.00170241263293575,0.00170720728669314,0.0017039216150817,0.00169622055290471,0.00168714395147542,0.00167857694636581,0.00167178999025393,0.00166795210017059,0.00166795210017059, +0.00624068363700455,0.00624068363700455,0.00625324192218825,0.00624077562761075,0.00621460046149691,0.00618412630997546,0.00615528119611271,0.00613226272145999,0.00611915029347439,0.00611915029347439, +0.0206004591383972,0.0206004591383972,0.0206269198958226,0.0205849700956505,0.0205054447140807,0.0204140402381738,0.020327199629097,0.020257238543328,0.0202169604272646,0.0202169604272646, +0.0600316070508368,0.0600316070508368,0.0600694406709208,0.0599467636392769,0.0597358886250432,0.0594969064507117,0.0592687127355938,0.0590823975439611,0.0589733034347637,0.0589733034347637, +0.152581358891006,0.152581358891006,0.152592654359018,0.152285140502043,0.151804528547048,0.151268684246026,0.150753486624435,0.150324267063534,0.150065319717753,0.150065319717753, +0.334405534270133,0.334405534270133,0.334290574824897,0.333636603903418,0.332709182469037,0.331696832183423,0.330714152994017,0.329868212299741,0.329326611119459,0.329326611119459, +0.626311488685729,0.626311488685729,0.625966398428221,0.62477699760242,0.623280543555573,0.62169941384185,0.620144645007439,0.618728853255696,0.61769454723102,0.61769454723102, + +00:07:47, +0.000504560024283528,0.000504560024283528,0.000506455637188205,0.000505537390259104,0.000503082783873166,0.000500150595019488,0.000497388685381462,0.00049521419793464,0.000493991833565875,0.000493991833565875, +0.000504560024283528,0.000504560024283528,0.000506455637188205,0.000505537390259104,0.000503082783873166,0.000500150595019488,0.000497388685381462,0.00049521419793464,0.000493991833565875,0.000493991833565875, +0.00171789089982705,0.00171789089982705,0.001722719914725,0.00171941983949538,0.00171167167932541,0.0017025331437104,0.00169390489173614,0.00168706939880662,0.00168320464065522,0.00168320464065522, +0.00628617908312429,0.00628617908312429,0.00629880200463126,0.00628629448437755,0.00626000158414552,0.00622937175534186,0.00620037115953876,0.0061772290031429,0.00616404820497942,0.00616404820497942, +0.0207163372525243,0.0207163372525243,0.0207428826752202,0.02070083927906,0.0206210726722066,0.0205293437629073,0.020442174418924,0.0203719510669367,0.0203315287130829,0.0203315287130829, +0.0602765386009153,0.0602765386009153,0.0603144114877293,0.0601915889192591,0.0599803540012286,0.0597408632629551,0.059512140984117,0.0593254044532452,0.0592160826889289,0.0592160826889289, +0.152991918808987,0.152991918808987,0.153003125722286,0.15269554034163,0.152214658761811,0.151678339268796,0.151162613052907,0.15073298206445,0.150473831665598,0.150473831665598, +0.334910052898934,0.334910052898934,0.334794988005177,0.334141372285071,0.33321426169757,0.332202020473236,0.331219358174107,0.330373488692133,0.329832016312439,0.329832016312439, +0.626683856111244,0.626683856111244,0.626339113362175,0.625150913079543,0.623655788108957,0.622075872954286,0.620522229672621,0.619107524202364,0.61807410524336,0.61807410524336, + +00:07:48, +0.000510187765591355,0.000510187765591355,0.00051210114760984,0.000511177866576745,0.000508703658055489,0.00050574567969458,0.000502958455011997,0.000500763984521421,0.000499530558985955,0.000499530558985955, +0.000510187765591355,0.000510187765591355,0.00051210114760984,0.000511177866576745,0.000508703658055489,0.00050574567969458,0.000502958455011997,0.000500763984521421,0.000499530558985955,0.000499530558985955, +0.00173346217621566,0.00173346217621566,0.0017383256596538,0.00173501117508256,0.00172721580140591,0.00171801513855228,0.00170932542688635,0.00170244122378948,0.00169854950290559,0.00169854950290559, +0.0063318606251919,0.0063318606251919,0.00634454820624525,0.00633199947847394,0.00630558878034472,0.00627480310672953,0.00624564681238908,0.00622238079136956,0.00620913152517468,0.00620913152517468, +0.0208324847805198,0.0208324847805198,0.0208591145960357,0.0208169777466828,0.0207369702375638,0.0206449171941772,0.0205574193256714,0.0204869338559255,0.0204463673533028,0.0204463673533028, +0.0605216360450035,0.0605216360450035,0.0605595475532343,0.0604365798885833,0.0602249863347872,0.0599849886359818,0.0597557393111507,0.0595685826278926,0.0594590338695158,0.0594590338695158, +0.153402145864845,0.153402145864845,0.153413263691334,0.153105607411759,0.152624458423005,0.152087666975947,0.151571415469693,0.151141375658589,0.150882023604167,0.150882023604167, +0.335413532157991,0.335413532157991,0.335298361793907,0.334645100863987,0.333718302390888,0.332706173111931,0.331723530957157,0.330877735146079,0.330336392668378,0.330336392668378, +0.627055126752942,0.627055126752942,0.626710730163724,0.625523726906398,0.624029928305605,0.622451226341505,0.620898707730659,0.619485087291158,0.61845255379608,0.61845255379608, + +00:07:49, +0.000515861480542471,0.000515861480542471,0.000517792733217867,0.000516864413306678,0.000514370514171291,0.000511386609327767,0.000508573924945596,0.000506359355020674,0.000505114804427317,0.000505114804427317, +0.000515861480542471,0.000515861480542471,0.000517792733217867,0.000516864413306678,0.000514370514171291,0.000511386609327767,0.000508573924945596,0.000506359355020674,0.000505114804427317,0.000505114804427317, +0.00174912667193972,0.00174912667193972,0.00175402473085079,0.00175069583134114,0.00174285312915871,0.00173359014666392,0.00172483876305925,0.0017179056768531,0.00171398689877807,0.00171398689877807, +0.00637772821469772,0.00637772821469772,0.0063904804771971,0.00637789056016859,0.00635136200180334,0.00632042031813795,0.00629110811104076,0.0062677180443361,0.00625440021319985,0.00625440021319985, +0.0209489008585384,0.0209489008585384,0.0209756147932738,0.0209333846332279,0.0208531365464694,0.0207607596718359,0.0206729334933612,0.0206021860575836,0.0205614754968548,0.0205614754968548, +0.0607668975686671,0.0607668975686671,0.0608048470548676,0.0606817347329712,0.0604697838091443,0.0602292807527299,0.059999505900644,0.0598119302526579,0.0597021551613899,0.0597021551613899, +0.153812039119898,0.153812039119898,0.153823067332744,0.153515340775441,0.153033926582287,0.152496666405515,0.151979892900761,0.151549446862298,0.151289894544132,0.151289894544132, +0.335915975039247,0.335915975039247,0.335800699186667,0.335147792635828,0.334221307530558,0.333209293057466,0.332226674276968,0.33138095457639,0.330839743092173,0.330839743092173, +0.627425305882152,0.627425305882152,0.627081254112675,0.625895444379645,0.624402969448122,0.622825479300999,0.621274084471261,0.619861547807814,0.618829898176884,0.618829898176884, + +00:07:50, +0.000521581386583141,0.000521581386583141,0.000523530611524885,0.00052259724806201,0.000520083569876222,0.000517073601511075,0.000514235312631957,0.000512000526735566,0.000510744787105727,0.000510744787105727, +0.000521581386583141,0.000521581386583141,0.000523530611524885,0.00052259724806201,0.000520083569876222,0.000517073601511075,0.000514235312631957,0.000512000526735566,0.000510744787105727,0.000510744787105727, +0.00176488459567724,0.00176488459567724,0.00176981733652519,0.00176647401660579,0.00175858387143397,0.00174925837754913,0.00174044511034297,0.00173346296849718,0.00172951703898016,0.00172951703898016, +0.00642378180057659,0.00642378180057659,0.00643659876510387,0.00642396767717828,0.00639732119767249,0.0063662233410034,0.00633675500930462,0.00631324071767097,0.00629985422562634,0.00629985422562634, +0.0210655846221492,0.0210655846221492,0.0210923824013734,0.0210500590728389,0.0209695707346564,0.0208768703351215,0.0207887160653712,0.0207177068185342,0.0206768522919929,0.0206768522919929, +0.0610123213658948,0.0610123213658948,0.0610503081884996,0.060927051646595,0.0607147446161634,0.0604737378045326,0.060243438944888,0.0600554455205986,0.0599454447577028,0.0599454447577028, +0.15422159764942,0.15422159764942,0.154232535727028,0.153924739509652,0.153443062305335,0.152905336609586,0.152388044386142,0.151957194706003,0.151697443510249,0.151697443510249, +0.336417384526949,0.336417384526949,0.336302003171305,0.335649450588535,0.334723280090556,0.333711383260372,0.332728791060075,0.331883149890742,0.331342070481663,0.331342070481663, +0.627794398735714,0.627794398735714,0.627450690454288,0.626266070761286,0.624774916804463,0.623198637095719,0.621648365149709,0.620236911003736,0.619206143639171,0.619206143639171, + +00:07:51, +0.00052734770111453,0.00052734770111453,0.000529314999995581,0.000528376588407614,0.000525843042779639,0.000522806873793672,0.00051994283548162,0.000517687716932978,0.000516420724202169,0.000516420724202169, +0.00052734770111453,0.00052734770111453,0.000529314999995581,0.000528376588407614,0.000525843042779639,0.000522806873793672,0.00051994283548162,0.000517687716932978,0.000516420724202169,0.000516420724202169, +0.0017807361549449,0.0017807361549449,0.00178570368372302,0.00178234593804683,0.00177440823591837,0.00176502003955142,0.00175614467766977,0.00174911330806929,0.00174514013306923,0.00174514013306923, +0.00647002132922339,0.00647002132922339,0.00648290301504838,0.0064702307746835,0.00644346631456121,0.00641221212421459,0.00638258745844063,0.00635894876445031,0.0063454935164727,0.0063454935164727, +0.0211825352063685,0.0211825352063685,0.02120941655424,0.0211670001991261,0.0210862719373065,0.0209932483226904,0.0209047661844673,0.0208334952847674,0.0207924968863277,0.0207924968863277, +0.0612579056390822,0.0612579056390822,0.0612959291584224,0.0611725288320602,0.0609598669561293,0.0607183579911023,0.0604875366444999,0.0602991266330599,0.060188900859877,0.060188900859877, +0.154630820542519,0.154630820542519,0.154641667968509,0.154333802705205,0.153851864671718,0.153313676654173,0.152795868979802,0.152364618234073,0.152104669541242,0.152104669541242, +0.336917763597633,0.336917763597633,0.336802276727918,0.336150077702307,0.335224223037243,0.334212446663738,0.333229884225722,0.332384323989653,0.331843377727608,0.331843377727608, +0.628162410516263,0.628162410516263,0.627819044399555,0.626635611278944,0.625145775608217,0.623570704954353,0.622021554987142,0.62061118209627,0.619581295402308,0.619581295402308, + +00:07:52, +0.000533160641487585,0.000533160641487585,0.000535146116041622,0.000534202651855009,0.000531649150439484,0.000528586643676727,0.000525696710860824,0.000523421142838367,0.000522142832857705,0.000522142832857705, +0.000533160641487585,0.000533160641487585,0.000535146116041622,0.000534202651855009,0.000531649150439484,0.000528586643676727,0.000525696710860824,0.000523421142838367,0.000522142832857705,0.000522142832857705, +0.00179668155609692,0.00179668155609692,0.00180168397832604,0.00179831180166909,0.00179032642913392,0.00178087533985283,0.00177193767281475,0.00176485690376359,0.00176085638945125,0.00176085638945125, +0.00651644674450861,0.00651644674450861,0.0065293931695948,0.00651667979534412,0.00648979729655209,0.00645838661412818,0.00642860540717338,0.00640484213521337,0.00639131803721994,0.00639131803721994, +0.0212997517456916,0.0212997517456916,0.0213267163852774,0.0212842071451986,0.0212032392890813,0.0211098927726491,0.0210210829928357,0.020949550601672,0.0209084084268582,0.0209084084268582, +0.061503648599015,0.061503648599015,0.061541708177333,0.0614181645003889,0.0612051490377315,0.0609631395205138,0.0607317972084072,0.0605429717996593,0.0604325216775907,0.0604325216775907, +0.155039706902011,0.155039706902011,0.155050463165195,0.154742529466627,0.154260332774774,0.153721685619091,0.153203365749519,0.152771716504705,0.152511571689674,0.152511571689674, +0.337417115220099,0.337417115220099,0.337301522828831,0.336649676949582,0.335724139329335,0.334712486203182,0.333729956685842,0.332884479766455,0.332343667713659,0.332343667713659, +0.628529346392502,0.628529346392502,0.628186321125479,0.627004071126144,0.625515551058883,0.623941688071605,0.622393659170831,0.620984366268977,0.619955358651906,0.619955358651906, + +00:07:53, +0.000539020424997927,0.000539020424997927,0.00054102417701655,0.000540075655857256,0.000537502110357166,0.000534413128608295,0.000531497156086385,0.000529201021630649,0.00052791133016836,0.00052791133016836, +0.000539020424997927,0.000539020424997927,0.00054102417701655,0.000540075655857256,0.000537502110357166,0.000534413128608295,0.000531497156086385,0.000529201021630649,0.00052791133016836,0.00052791133016836, +0.00181272100432398,0.00181272100432398,0.00181775842505069,0.00181437181231096,0.00180633865643698,0.00179682448447282,0.00178782430239476,0.00178069396261965,0.00177666601537955,0.00177666601537955, +0.00656305798779389,0.00656305798779389,0.00657606916880429,0.00656331467931498,0.00653631408521691,0.00650474675458432,0.0064748088017076,0.00645092077797789,0.00643732773682692,0.00643732773682692, +0.0214172333741243,0.0214172333741243,0.0214442810274189,0.0214016790436956,0.0213204719241544,0.0212268028225863,0.0211376656321148,0.0210658719140678,0.0210245860600034,0.0210245860600034, +0.061749548464852,0.061749548464852,0.0617876434663157,0.0616639568710023,0.0614505890780472,0.0612080806091879,0.0609762188538318,0.0607869792382708,0.0606763054287621,0.0606763054287621, +0.155448255844298,0.155448255844298,0.155458920438655,0.155150918912038,0.154668465721488,0.154129362597833,0.153610533776762,0.153178488589801,0.152918149021829,0.152918149021829, +0.337915442355393,0.337915442355393,0.337799744438572,0.337148251295012,0.336223031917892,0.335211504806829,0.334229011345028,0.333383620107269,0.332842943316332,0.332842943316332, +0.628895211499484,0.628895211499484,0.628552525775348,0.627371455462587,0.625884248322146,0.624311591608466,0.622764682854449,0.621356468671905,0.620328338540089,0.620328338540089, + +00:07:54, +0.000544927268880768,0.000544927268880768,0.000546949400210706,0.000545995817803875,0.000543402139972472,0.000540286545978216,0.0005373443884206,0.000535027570437095,0.000533726433180022,0.000533726433180022, +0.000544927268880768,0.000544927268880768,0.000546949400210706,0.000545995817803875,0.000543402139972472,0.000540286545978216,0.0005373443884206,0.000535027570437095,0.000533726433180022,0.000533726433180022, +0.0018288547036522,0.0018288547036522,0.00183392722744708,0.0018305261736433,0.00182244512201719,0.00181286767826726,0.0018038047718673,0.00179662469052132,0.00179256921695372,0.00179256921695372, +0.0066098549979476,0.0066098549979476,0.00662293095025052,0.00661013536426151,0.0065830166196322,0.00655129248692228,0.00652119758574357,0.0064971846382555,0.00648352256174574,0.00648352256174574, +0.0215349792252141,0.0215349792252141,0.0215621096131589,0.0215194150268175,0.0214379689762429,0.0213439776096039,0.0212545132434267,0.0211824583662365,0.0211410289316347,0.0211410289316347, +0.0619956034641082,0.0619956034641082,0.0620337332548249,0.0619099041717035,0.0616961853025237,0.061453179481875,0.0612207998062735,0.0610311471750089,0.0609202503395335,0.0609202503395335, +0.155856466499249,0.155856466499249,0.1558670389239,0.155558970173027,0.155076262632367,0.154536706697451,0.15401737215657,0.153584933574843,0.153324400617588,0.153324400617588, +0.338412747956783,0.338412747956783,0.338296944513857,0.337645803695449,0.336720903746287,0.335709505395289,0.334727051100514,0.333881747890985,0.333341207404986,0.333341207404986, +0.629260010938876,0.629260010938876,0.628917663459008,0.627737769414426,0.626251872530152,0.624680420692489,0.623134631158345,0.621727494421859,0.620700240185765,0.620700240185765, + +00:07:55, +0.000550881390305845,0.000550881390305845,0.000552922002846172,0.000551963355015781,0.000549349456658496,0.000546207113113034,0.000543238625066159,0.00054090100632825,0.000539588358883358,0.000539588358883358, +0.000550881390305845,0.000550881390305845,0.000552922002846172,0.000551963355015781,0.000549349456658496,0.000546207113113034,0.000543238625066159,0.00054090100632825,0.000539588358883358,0.000539588358883358, +0.00184508285694219,0.00184508285694219,0.0018501905878981,0.00184677508816862,0.00183864602889659,0.00182900512492741,0.00181987928552944,0.00181264929219566,0.00180856619911852,0.00180856619911852, +0.00665683771136037,0.00665683771136037,0.00666997844903533,0.0066571417853754,0.00662990483639492,0.0065980237499959,0.0065677717004926,0.00654363365906712,0.00652990245593701,0.00652990245593701, +0.0216529884320813,0.0216529884320813,0.0216802012745835,0.0216374142263572,0.021555729578638,0.0214614162703486,0.0213716249674082,0.0212993091019535,0.0212577361871064,0.0212577361871064, +0.0622418118326372,0.0622418118326372,0.0622799757806674,0.0621560046386589,0.0619419359449612,0.0616984343716373,0.0614655382994935,0.0612754738442124,0.0611643546442558,0.0611643546442558, +0.156264338010075,0.156264338010075,0.15627481776926,0.15596668239453,0.15548372264132,0.154943717038433,0.154423879997428,0.153991050558776,0.153730325570309,0.153730325570309, +0.338909034969743,0.338909034969743,0.338793126003571,0.33814233709992,0.337217757750194,0.336206490881637,0.335224078842149,0.334378865989233,0.333838462841798,0.333838462841798, +0.629623749779233,0.629623749779233,0.629281739253132,0.628103018074533,0.626618428781774,0.625048180418054,0.623503509169807,0.622097448602669,0.621071068674889,0.621071068674889, + +00:07:56, +0.000556883006372373,0.000556883006372373,0.000558942202071725,0.000557978484740238,0.000555344277716576,0.000552175047270937,0.000549180083161079,0.00054682154631287,0.000545497324208755,0.000545497324208755, +0.000556883006372373,0.000556883006372373,0.000558942202071725,0.000557978484740238,0.000555344277716576,0.000552175047270937,0.000549180083161079,0.00054682154631287,0.000545497324208755,0.000545497324208755, +0.00186140566588811,0.00186140566588811,0.00186654870761852,0.00186311875722014,0.00185494157892868,0.00184523702697901,0.0018360480465169,0.00182876797121196,0.00182465716566284,0.00182465716566284, +0.00670400606196065,0.00670400606196065,0.00671721159780423,0.00670433387539014,0.00667697866963802,0.00664494048018923,0.00661453108469253,0.00659026778095834,0.0065764673608853,0.0065764673608853, +0.0217712601274498,0.0217712601274498,0.0217985551434013,0.0217556757737304,0.0216737528642361,0.0215791179410427,0.0214889999442421,0.0214164232645188,0.0213747069712867,0.0213747069712867, +0.0624881718146133,0.0624881718146133,0.0625263692899843,0.062402256516381,0.0621878392474947,0.0619438435198321,0.0617104325754977,0.061519957488428,0.0614086165854712,0.0614086165854712, +0.156671869533212,0.156671869533212,0.156682256136267,0.156374054734713,0.155890844895541,0.155350392754583,0.154830056421151,0.154396838653887,0.154135922986709,0.154135922986709, +0.339404306331935,0.339404306331935,0.33928829184875,0.338637854449613,0.337713596857564,0.336702464171392,0.33572009745238,0.334874977266367,0.334334712481742,0.334334712481742, +0.629986433056264,0.629986433056264,0.629644758201489,0.628467206502772,0.626983922142884,0.625414875846641,0.623871321943332,0.62246633626545,0.62144082906073,0.62144082906073, + +00:07:57, +0.000562932334104019,0.000562932334104019,0.000565010214957819,0.000564041424145831,0.000561386820371269,0.000558190565636711,0.000555168979773664,0.000552789407332874,0.000551453546021276,0.000551453546021276, +0.000562932334104019,0.000562932334104019,0.000565010214957819,0.000564041424145831,0.000561386820371269,0.000558190565636711,0.000555168979773664,0.000552789407332874,0.000551453546021276,0.000551453546021276, +0.00187782333101684,0.00187782333101684,0.0018830017866542,0.00187955738096104,0.0018713319727976,0.00186156358578138,0.0018523112568031,0.00184498092998075,0.00184084231921872,0.00184084231921872, +0.00675135998123022,0.00675135998123022,0.00676463032676203,0.00675171156459666,0.00672423805104602,0.00669204261143199,0.00666147567462311,0.00663708694201483,0.00662321721561445,0.00662321721561445, +0.0218897934436774,0.0218897934436774,0.0219171703509733,0.021874198800006,0.021792037965569,0.0216970817575141,0.0216066373136875,0.0215337999967872,0.021491940428589,0.021491940428589, +0.0627346816625141,0.0627346816625141,0.0627729120372326,0.0626486580577097,0.062433893460576,0.0621894051760939,0.0619554808845195,0.0617645963583934,0.0616530344138975,0.0616530344138975, +0.157079060238202,0.157079060238202,0.157089353199532,0.15678108636485,0.156297628555382,0.155756732992904,0.155235900562764,0.154802296985689,0.154541191986747,0.154541191986747, +0.339898564973192,0.339898564973192,0.33978244498256,0.339132358677859,0.33820842398861,0.337197428162496,0.336215109806227,0.335370084579441,0.334829959172565,0.334829959172565, +0.630348065773096,0.630348065773096,0.630006725315208,0.628830339726261,0.627348357646617,0.625780512007085,0.624238074500886,0.622834162428868,0.621809526364129,0.621809526364129, + +00:07:58, +0.000569029590443891,0.000569029590443891,0.000571126258491584,0.000570152390317464,0.00056747730176533,0.000564253885316722,0.000561205531897472,0.000558804806258319,0.000557457241115631,0.000557457241115631, +0.000569029590443891,0.000569029590443891,0.000571126258491584,0.000570152390317464,0.00056747730176533,0.000564253885316722,0.000561205531897472,0.000558804806258319,0.000557457241115631,0.000557457241115631, +0.00189433605168719,0.00189433605168719,0.00189955002388132,0.00189609115838368,0.00188781741001738,0.00187798500152663,0.00186866911719828,0.00186128836975291,0.00185712186126048,0.00185712186126048, +0.00679889939821975,0.00679889939821975,0.00681223456368837,0.00679927478085894,0.00677168290987064,0.00673933007521515,0.00670860540412149,0.00668409107787767,0.0066701519567029,0.0066701519567029, +0.0220085875127862,0.0220085875127862,0.0220360460283436,0.0219929824359365,0.0219105840148344,0.0218153068552275,0.0217245362151103,0.0216514384411995,0.0216094357030018,0.0216094357030018, +0.0629813396371018,0.0629813396371018,0.0630196022851671,0.0628952075237939,0.0626800968429555,0.0624351175983167,0.0622006814850022,0.0620093887130204,0.0618976063884107,0.0618976063884107, +0.157485909307576,0.157485909307576,0.157496108146631,0.157187776469207,0.156704072794241,0.156162736913474,0.155641411570385,0.1552074246928,0.154946131703502,0.154946131703502, +0.340391813815499,0.340391813815499,0.340275588330287,0.339625852710118,0.338702242055788,0.337691385745299,0.33670911877127,0.335864190778187,0.335324205754767,0.335324205754767, +0.630708652900537,0.630708652900537,0.630367645573038,0.629192422739635,0.627711740293633,0.626145093895845,0.624603771832164,0.623200932079394,0.622177165573758,0.622177165573758, + +00:07:59, +0.000575174992249552,0.000575174992249552,0.00057729054957184,0.000576311600251371,0.000573615938954717,0.000570365223333907,0.000567289956446314,0.000564867959882396,0.000563508626211175,0.000563508626211175, +0.000575174992249552,0.000575174992249552,0.00057729054957184,0.000576311600251371,0.000573615938954717,0.000570365223333907,0.000567289956446314,0.000564867959882396,0.000563508626211175,0.000563508626211175, +0.00191094402608916,0.00191094402608916,0.00191619361700567,0.00191272028730889,0.00190439808893121,0.00189450147323886,0.00188512182734874,0.00187769049061884,0.0018734959921038,0.0018734959921038, +0.0068466242395643,0.0068466242395643,0.00686002423395327,0.00684702344962953,0.00681931317294634,0.00678680280060641,0.00675592020459765,0.00673128012175876,0.00671727151829906,0.00671727151829906, +0.0221276414664918,0.0221276414664918,0.0221551813062684,0.0221120258119872,0.0220293901439254,0.0219337923693139,0.0218426957875133,0.0217693377398117,0.0217271919381189,0.0217271919381189, +0.0632281440074053,0.0632281440074053,0.0632664383048216,0.0631419031840725,0.0629264476616636,0.0626809790526356,0.0624460326435819,0.0622543328193777,0.0621423307760282,0.0621423307760282, +0.157892415936732,0.157892415936732,0.157902520177984,0.157594124244922,0.157110176798444,0.156568403689337,0.156046588605106,0.15561222092683,0.155350741283061,0.155350741283061, +0.340884055772981,0.340884055772981,0.340767724809318,0.340118339463956,0.339195053963778,0.338184339802537,0.337202127207624,0.336357298704999,0.335817455061582,0.335817455061582, +0.631068199377332,0.631068199377332,0.630727523921612,0.629553460505312,0.628074075052378,0.626508626477259,0.62496841889485,0.623566650171568,0.622543751646378,0.622543751646378, + +00:08:00, +0.00058136875628805,0.00058136875628805,0.000583503305004137,0.000582519270850146,0.000579802948903618,0.000576524796622795,0.000573422470249262,0.000570979084916437,0.00056960791794692,0.00056960791794692, +0.00058136875628805,0.00058136875628805,0.000583503305004137,0.000582519270850146,0.000579802948903618,0.000576524796622795,0.000573422470249262,0.000570979084916437,0.00056960791794692,0.00056960791794692, +0.00192764745124324,0.00192764745124324,0.001932932762562,0.00192944496438535,0.00192107420671076,0.00191111319877351,0.00190166958573603,0.00189418749150765,0.00188996491090499,0.00188996491090499, +0.00689453442949883,0.00689453442949883,0.00690799926053271,0.00689495749396518,0.00686712876470593,0.00683446071426574,0.00680342000504985,0.00677865400445618,0.00676457583213662,0.00676457583213662, +0.0222469544362335,0.0222469544362335,0.0222745753152459,0.0222313280583659,0.0221484554844603,0.0220525374345999,0.0219611151695661,0.0218874970343255,0.0218452082771692,0.0218452082771692, +0.0634750930507011,0.0634750930507011,0.0635134183754899,0.0633887433162557,0.0631729441919919,0.0629269878134092,0.0626915326350694,0.0624994269526732,0.0623872058518913,0.0623872058518913, +0.158298579333827,0.158298579333827,0.158308588506744,0.158000128901891,0.157515939767125,0.15697373250638,0.156451430840878,0.156016684852262,0.1557550198844,0.1557550198844, +0.341375293751885,0.341375293751885,0.341258857329127,0.340609821849041,0.339686862609474,0.33867629320932,0.337694137967924,0.336849411194913,0.336309709918959,0.336309709918959, +0.631426710110426,0.631426710110426,0.631086365275702,0.629913457953744,0.628435366859341,0.626871114683805,0.625332020614868,0.623931321628246,0.622909289507093,0.622909289507093, + +00:08:01, +0.000587611099230967,0.000587611099230967,0.000589764741495813,0.000588775618917804,0.000586038548479492,0.000582732822024542,0.000579603290045685,0.000577138397984954,0.00057575533287657,0.00057575533287657, +0.000587611099230967,0.000587611099230967,0.000589764741495813,0.000588775618917804,0.000586038548479492,0.000582732822024542,0.000579603290045685,0.000577138397984954,0.00057575533287657,0.00057575533287657, +0.00194444652299979,0.00194444652299979,0.00194976765591345,0.00194626538508903,0.00193784595935558,0.00192782037481664,0.0019183125896763,0.00191077957018647,0.00190652881566018,0.00190652881566018, +0.0069426298898737,0.0069426298898737,0.00695615956402406,0.00694307683454237,0.00691512960719606,0.00688230374046089,0.00685110473208,0.00682621265436951,0.00681206482754988,0.00681206482754988, +0.0223665255532034,0.0223665255532034,0.0223942271855453,0.0223508883050524,0.022267779167812,0.0221715411856382,0.0220797934996341,0.0220059154661176,0.0219634838630464,0.0219634838630464, +0.0637221850524949,0.0637221850524949,0.0637605407847067,0.0636357262063059,0.0634195847174744,0.0631731421632003,0.0629371797424321,0.0627446693962365,0.0626322298992476,0.0626322298992476, +0.158704398719656,0.158704398719656,0.158714312358678,0.158405789662653,0.157921360912112,0.15737872256322,0.156855937464399,0.156420815646341,0.156158966679273,0.156158966679273, +0.341865530650567,0.341865530650567,0.341748988791261,0.341100302767119,0.340177670881965,0.33916724883311,0.338185153897308,0.337340531075589,0.33680097314554,0.33680097314554, +0.631784189975213,0.631784189975213,0.631444174518475,0.630272419983678,0.628795620619311,0.627232563416348,0.625694581886641,0.624294951340855,0.623273784049598,0.623273784049598, + +00:08:02, +0.000593902237649495,0.000593902237649495,0.000596075075651069,0.000595080861154849,0.000592322954448136,0.000588989516281984,0.000585832632480298,0.000583346115620683,0.000581951087463568,0.000581951087463568, +0.000593902237649495,0.000593902237649495,0.000596075075651069,0.000595080861154849,0.000592322954448136,0.000588989516281984,0.000585832632480298,0.000583346115620683,0.000581951087463568,0.000581951087463568, +0.00196134143603848,0.00196134143603848,0.00196669849125098,0.00196318174372258,0.00195471354169256,0.00194462319688438,0.00193505103531961,0.00192746692325971,0.00192318790320465,0.00192318790320465, +0.00699091054017016,0.00699091054017016,0.00700450506266172,0.00699138138967286,0.0069633156200928,0.00693033180108283,0.0068989743099091,0.00687395599751524,0.00685973843148906,0.00685973843148906, +0.0224863539483751,0.0224863539483751,0.0225141360472356,0.0224707056818269,0.0223873603251366,0.0222908027567355,0.0221987299158083,0.0221245921762687,0.0220820178383382,0.0220820178383382, +0.0639694183065023,0.0639694183065023,0.0640078038282283,0.0638828501484178,0.063666367529868,0.0634194403927577,0.0631829722567763,0.062990058441501,0.0628774012094335,0.0628774012094335, +0.159109873327538,0.159109873327538,0.159119690972052,0.158811105762272,0.158326439457814,0.157783373071091,0.157260107674995,0.156824612498955,0.156562580852094,0.156562580852094, +0.34235476935948,0.34235476935948,0.34223812208933,0.341589785112008,0.340667481662521,0.339657209533711,0.338675177833401,0.337830661167293,0.337291247552646,0.337291247552646, +0.632140643815789,0.632140643815789,0.631800956501743,0.630630351462407,0.629154841205629,0.627592977544399,0.626056107573336,0.624657544169644,0.623637240136431,0.623637240136431, + +00:08:03, +0.000600242388009523,0.000600242388009523,0.000602434523966072,0.000601435214153369,0.000598656383468769,0.00059529509603472,0.000592110714098237,0.000589602454259664,0.000588195398076177,0.000588195398076177, +0.000600242388009523,0.000600242388009523,0.000602434523966072,0.000601435214153369,0.000598656383468769,0.00059529509603472,0.000592110714098237,0.000589602454259664,0.000588195398076177,0.000588195398076177, +0.00197833238386774,0.00197833238386774,0.0019837254615929,0.00198019423341492,0.0019716771473754,0.00196152185932238,0.00195188511764938,0.0019442497461685,0.00193994236921219,0.00193994236921219, +0.00703937629751581,0.00703937629751581,0.00705303567233253,0.00703987107531921,0.00701168672071719,0.00697854481566127,0.00694702866039266,0.00692188395754202,0.0069075965685356,0.0069075965685356, +0.0226064387525328,0.0226064387525328,0.0226343010302143,0.0225907793182988,0.0225071980874026,0.0224103212819824,0.0223179235559339,0.0222435263055928,0.0222008093453552,0.0222008093453552, +0.0642167911146294,0.0642167911146294,0.064255205810013,0.0641301134449993,0.0639132909291334,0.0636658808009972,0.0634289084773278,0.0632355923879857,0.063122718081856,0.063122718081856, +0.159515002403207,0.159515002403207,0.159524723597522,0.159216076448226,0.158731174641106,0.158187683253726,0.157663940684511,0.157228074612528,0.156965861599827,0.156965861599827, +0.342843012761161,0.342843012761161,0.342726260108988,0.342078271769583,0.34115629782458,0.340146178163251,0.339164212606299,0.338319804282883,0.337780535944259,0.337780535944259, +0.632496076445207,0.632496076445207,0.632156716046216,0.630987257226024,0.629513033460438,0.62795236190636,0.626416602507115,0.62501910494393,0.623999662599218,0.623999662599218, + +00:08:04, +0.000606631766666747,0.000606631766666747,0.000608843302824068,0.000607838894392152,0.000605039052089139,0.000601649777814202,0.000598437751340149,0.000595907630236325,0.000594488480982566,0.000594488480982566, +0.000606631766666747,0.000606631766666747,0.000608843302824068,0.000607838894392152,0.000605039052089139,0.000601649777814202,0.000598437751340149,0.000595907630236325,0.000594488480982566,0.000594488480982566, +0.00199541955882432,0.00199541955882432,0.00200084875878444,0.00199730304612078,0.00198873696888419,0.0019785165553053,0.00196881503048183,0.00196112823319009,0.00195679240819453,0.00195679240819453, +0.00708802707670008,0.00708802707670008,0.00710175130659127,0.00708854580511034,0.00706024282405071,0.0070269427013801,0.00699526770303604,0.00696999645574605,0.00695563916091746,0.00695563916091746, +0.0227267790962994,0.0227267790962994,0.0227547212642357,0.0227111083439352,0.0226272915854192,0.0225300958952813,0.0224373735576389,0.0223627169946659,0.0223198575261597,0.0223198575261597, +0.0644643017869537,0.0644643017869537,0.0645027450422014,0.0643775144066513,0.0641603532234154,0.063912461694982,0.0636749867114139,0.0634812695432768,0.0633681788239745,0.0633681788239745, +0.159919785204695,0.159919785204695,0.159929409498017,0.159620700980295,0.159135565711215,0.15859165234725,0.158067435717194,0.157631201201902,0.157368808131873,0.157368808131873, +0.343330263730217,0.343330263730217,0.343213405727928,0.342565765617761,0.341644122233736,0.34063415756617,0.339652261038552,0.338807963227791,0.338268841117006,0.338268841117006, +0.632850492645716,0.632850492645716,0.63251145794175,0.631343142079666,0.629870202194933,0.628310721309772,0.626776071489381,0.62537963846234,0.624361056238922,0.624361056238922, + +00:08:05, +0.000613070589861807,0.000613070589861807,0.000615301628490524,0.00061429211823182,0.000611471176740645,0.000608053778038858,0.000604813960537306,0.0006022618597786,0.000600830552345922,0.000600830552345922, +0.000613070589861807,0.000613070589861807,0.000615301628490524,0.00061429211823182,0.000611471176740645,0.000608053778038858,0.000604813960537306,0.0006022618597786,0.000600830552345922,0.000600830552345922, +0.00201260315207285,0.00201260315207285,0.00201806857349734,0.00201450837262034,0.00200589319752498,0.00199560747683638,0.00198584096646552,0.00197810257743733,0.00197373821350078,0.00197373821350078, +0.00713686279018967,0.00713686279018967,0.00715065187667617,0.00713740549035696,0.00710898384275077,0.00707552537309287,0.00704369135500984,0.00701829341108635,0.00700386612852439,0.00700386612852439, +0.0228473741101648,0.0228473741101648,0.0228753958789387,0.0228316918880887,0.0227476399498642,0.0226501257303748,0.0225570790583625,0.022482163383854,0.0224391615225939,0.0224391615225939, +0.0647119486417042,0.0647119486417042,0.0647504198450964,0.064625051352148,0.0644075527290228,0.0641591813899041,0.0639212052744445,0.063727088223009,0.0636137817512822,0.0636137817512822, +0.160324221002221,0.160324221002221,0.16033374794863,0.160024978630449,0.159539611929607,0.158995279600061,0.158470592009588,0.158033991494232,0.157771419669958,0.157771419669958, +0.343816525133316,0.343816525133316,0.343699561815869,0.343052269526497,0.342130957747726,0.341121150579206,0.340139325945156,0.339295140800009,0.338756165860144,0.338756165860144, +0.633203897169014,0.633203897169014,0.632865186947592,0.631698010797764,0.630226352189606,0.628668060531562,0.62713451929102,0.62573914949306,0.624721425826077,0.624721425826077, + +00:08:06, +0.000619559073715437,0.000619559073715437,0.000621809717108289,0.000620795101909988,0.000617952973733489,0.000614507313009225,0.00061123955790674,0.000608665359003058,0.000607221828219588,0.000607221828219588, +0.000619559073715437,0.000619559073715437,0.000621809717108289,0.000620795101909988,0.000617952973733489,0.000614507313009225,0.00061123955790674,0.000608665359003058,0.000607221828219588,0.000607221828219588, +0.00202988335360549,0.00202988335360549,0.00203538509522956,0.0020318104025189,0.00202314602342948,0.00201279481474706,0.00200296311708087,0.0019951729708582,0.00199077997731696,0.00199077997731696, +0.00718588334814395,0.00718588334814395,0.00719973729152434,0.00718645004006712,0.00715790968716626,0.00712429274333815,0.00709229953116527,0.00706677474020009,0.00705227738892319,0.00705227738892319, +0.0229682229245137,0.0229682229245137,0.0229963240038748,0.0229525290800255,0.0228682423113123,0.022770409920874,0.0226770391953835,0.0226018646133416,0.0225587204763084,0.0225587204763084, +0.0649597300052414,0.0649597300052414,0.0649982285471432,0.0648727226084164,0.064654887770409,0.0644060382090638,0.0641675624898925,0.0639730467508471,0.0638595251872879,0.0638595251872879, +0.160728309078085,0.160728309078085,0.160737738236507,0.160428908682732,0.15994331256988,0.159398564272729,0.158873408810418,0.158436444728869,0.158173695448025,0.158173695448025, +0.344301799829176,0.344301799829176,0.344184731234545,0.343537786357767,0.342616807216418,0.341607160031381,0.340625410133532,0.339781339790077,0.339242512955543,0.339242512955543, +0.633556294736486,0.633556294736486,0.63321790779262,0.632051868124286,0.630581488194491,0.629024384318283,0.627491950652644,0.626097642774069,0.625080776101035,0.625080776101035, + +00:08:07, +0.000626097434223638,0.000626097434223638,0.000628367784692771,0.000627348061536437,0.000624484659251843,0.000621010598903115,0.000617714759546393,0.000615118343910055,0.000613662524542212,0.000613662524542212, +0.000626097434223638,0.000626097434223638,0.000628367784692771,0.000627348061536437,0.000624484659251843,0.000621010598903115,0.000617714759546393,0.000615118343910055,0.000613662524542212,0.000613662524542212, +0.00204726035224162,0.00204726035224162,0.00205279851230498,0.00204920932424662,0.00204049563555473,0.00203007875869664,0.00202018167263983,0.00201233960423542,0.00200791789066559,0.00200791789066559, +0.00723508865843041,0.00723508865843041,0.00724900745778718,0.00723567936096163,0.00720702026535294,0.00717324472235503,0.00714109214404947,0.00711544035741783,0.00710087285737297,0.00710087285737297, +0.0230893246696532,0.0230893246696532,0.0231175047685355,0.0230736190489523,0.0229890978002624,0.0228909476002858,0.0227972531058476,0.0227218198231595,0.0226785335287898,0.0226785335287898, +0.0652076442120374,0.0652076442120374,0.0652461694849085,0.0651205265105159,0.0649023566801511,0.0646530304838507,0.064414056689275,0.0642191434584665,0.0641054074634968,0.0641054074634968, +0.161132048726551,0.161132048726551,0.161141379660737,0.160832490433159,0.16034666691765,0.159801505637874,0.15927588538048,0.158838560157256,0.15857563471212,0.15857563471212, +0.344786090668555,0.344786090668555,0.344668916837694,0.344022318965563,0.343101673481805,0.342092188743993,0.341110516403521,0.340266562981065,0.339727885177676,0.339727885177676, +0.633907690039447,0.633907690039447,0.633569625175588,0.63240471877298,0.630935614929401,0.629379697386355,0.627848370284831,0.626455123013381,0.625439111774202,0.625439111774202, + +00:08:08, +0.000632685887252873,0.000632685887252873,0.000634976047127145,0.000633951213088314,0.000631066449349035,0.000627563851770787,0.000624239781430294,0.00062162103037891,0.00062015285713292,0.00062015285713292, +0.000632685887252873,0.000632685887252873,0.000634976047127145,0.000633951213088314,0.000631066449349035,0.000627563851770787,0.000624239781430294,0.00062162103037891,0.00062015285713292,0.00062015285713292, +0.00206473433562757,0.00206473433562757,0.00207030901187316,0.00206670532505827,0.00205794222168289,0.00204745949717201,0.00203749682228556,0.0020296026671861,0.00202515214340529,0.00202515214340529, +0.00728447862664005,0.00728447862664005,0.00729846227984585,0.00728509335748954,0.00725631548308892,0.00722238121809848,0.00719006910392085,0.0071642901747788,0.00714965244684037,0.00714965244684037, +0.0232106784758401,0.0232106784758401,0.0232389373023794,0.0231949609240443,0.023110205547165,0.023011737902041,0.0229177199267954,0.0228420281532121,0.0227985998213884,0.0227985998213884, +0.0654556896046558,0.0654556896046558,0.0654942410030608,0.0653684614016181,0.0651499577989299,0.0649001565537234,0.0646606862121336,0.0644653766855346,0.0643514269193915,0.0643514269193915, +0.161535439253744,0.161535439253744,0.161544671532241,0.161235723189604,0.160749674270444,0.160204102980066,0.159678020992537,0.159240337042817,0.158977236720291,0.158977236720291, +0.345269400494243,0.345269400494243,0.345152121471054,0.344505870195881,0.343585559377987,0.342576239530602,0.341594647547366,0.340750813148567,0.340212285293602,0.340212285293602, +0.634258087739378,0.634258087739378,0.633920343765367,0.632756567427611,0.631288737084174,0.629734004422305,0.628203782868357,0.626811594889281,0.62579643752627,0.62579643752627, + +00:08:09, +0.000639324648535281,0.000639324648535281,0.000641634720157569,0.000640604772405355,0.000637698559942762,0.000634167287530153,0.000630814839403755,0.000628173634163097,0.000626693041686514,0.000626693041686514, +0.000639324648535281,0.000639324648535281,0.000641634720157569,0.000640604772405355,0.000637698559942762,0.000634167287530153,0.000630814839403755,0.000628173634163097,0.000626693041686514,0.000626693041686514, +0.0020823054902364,0.0020823054902364,0.00208791677990921,0.00208429859103311,0.00207548596842102,0.00206493721748739,0.00205490875399208,0.00204696234816137,0.00204248292423046,0.00204248292423046, +0.00733405315610273,0.00733405315610273,0.00734810165982663,0.00733469193184356,0.00730579524389009,0.0072717021362547,0.00723923031876439,0.00721332410204617,0.00719861606801481,0.00719861606801481, +0.0233322834733081,0.0233322834733081,0.0233606207348593,0.0233165538344714,0.0232315646824494,0.0231327799595205,0.0230384387951891,0.0229624887433053,0.0229189184953455,0.0229189184953455, +0.0657038645337307,0.0657038645337307,0.0657424414543486,0.0656165256329854,0.0653976894755093,0.0651474147661894,0.0649074494060146,0.0647117447796908,0.0645975819024128,0.0645975819024128, +0.161938479977539,0.161938479977539,0.161947613173668,0.161638606271691,0.16115233393759,0.160606355595714,0.160079814931207,0.159641774660848,0.15937850074247,0.15937850074247, +0.345751732141051,0.345751732141051,0.345634347972351,0.344988442886715,0.344068467731169,0.343059315197022,0.342077806349704,0.341234093060681,0.340695716062956,0.340695716062956, +0.634607492468165,0.634607492468165,0.634270068201172,0.6331074187422,0.631640859318905,0.630087310082999,0.628558193054438,0.627167063050555,0.626152758008457,0.626152758008457, + +00:08:10, +0.000646013933663916,0.000646013933663916,0.000648344019388433,0.00064730895518512,0.00064438120681032,0.000640821121961999,0.000637440149178586,0.000634776370885463,0.000633283293768683,0.000633283293768683, +0.000646013933663916,0.000646013933663916,0.000648344019388433,0.00064730895518512,0.00064438120681032,0.000640821121961999,0.000637440149178586,0.000634776370885463,0.000633283293768683,0.000633283293768683, +0.00209997400136779,0.00209997400136779,0.00210562200121361,0.00210198930707472,0.00209312706120095,0.00208251210578419,0.00207241765456414,0.00206441883444619,0.00205991042067101,0.00205991042067101, +0.00738381214790255,0.00738381214790255,0.00739792549761633,0.00738447498397543,0.00735545944902551,0.00732120738025654,0.00728857569430694,0.00726254204672224,0.00724776362932366,0.00724776362932366, +0.0234541387922941,0.0234541387922941,0.0234825541954485,0.0234383969094254,0.0233531743365504,0.0232540729060833,0.0231594088479403,0.0230832007331727,0.0230394886918204,0.0230394886918204, +0.0659521673579467,0.0659521673579467,0.0659907691995806,0.0658647175639505,0.0656455500667155,0.0653948034767848,0.0651543446264492,0.0649582460965276,0.0648438707679403,0.0648438707679403, +0.162341170227457,0.162341170227457,0.162350203919285,0.162041139010685,0.161554645240108,0.161008262792956,0.160481266492857,0.160042872298414,0.159779426060376,0.159779426060376, +0.346233088435809,0.346233088435809,0.346115599171293,0.345470039868048,0.344550401359649,0.343541418541309,0.342559995587555,0.341716405478006,0.341178180237937,0.341178180237937, +0.634955908828332,0.634955908828332,0.634618803092808,0.63345727734126,0.631991986264183,0.630439618995878,0.628911605464956,0.627521532116727,0.626508077842732,0.626508077842732, + +00:08:11, +0.000652753958088002,0.000652753958088002,0.000655104160277623,0.00065406397697826,0.00065111460558386,0.00064752557070523,0.000644115926328335,0.000641429456033459,0.000639923828811243,0.000639923828811243, +0.000652753958088002,0.000652753958088002,0.000655104160277623,0.00065406397697826,0.00065111460558386,0.00064752557070523,0.000644115926328335,0.000641429456033459,0.000639923828811243,0.000639923828811243, +0.00211774005314787,0.00211774005314787,0.00212342485941216,0.00211977765691098,0.00211086568427923,0.00210018434703085,0.00209002370963697,0.00208197231215911,0.00207743481909216,0.00207743481909216, +0.00743375550089318,0.00743375550089318,0.00744793369087761,0.00743444241161139,0.00740530799753282,0.00737089685129881,0.00733810513403248,0.0073119439140637,0.00729709503694742,0.00729709503694742, +0.0235762435630653,0.0235762435630653,0.0236047368136676,0.0235604892781461,0.0234750336399346,0.0233756158750922,0.0232806292219359,0.0232041632625031,0.0231603095519174,0.0231603095519174, +0.0662005964440177,0.0662005964440177,0.0662392226076039,0.0661130355618951,0.065893537937416,0.0656423210490535,0.0654013702369338,0.0652048789995702,0.0650902918792728,0.0650902918792728, +0.162743509344551,0.162743509344551,0.162752443114869,0.16244332074939,0.161956607510607,0.161409823891554,0.160882374985498,0.160443629254236,0.160180011967404,0.160180011967404, +0.34671347219735,0.34671347219735,0.346595877889561,0.345950663961846,0.345031363073812,0.344022552353752,0.343041218030311,0.342197753153624,0.341659680563294,0.341659680563294, +0.635303341393269,0.635303341393269,0.634966553020893,0.633806147820028,0.632342122521321,0.630790935759192,0.629264024692694,0.627875006678285,0.626862401622045,0.626862401622045, + +00:08:12, +0.000659544937108216,0.000659544937108216,0.000661915358131811,0.000660870053183798,0.000657898971745659,0.00065428084925213,0.000650842386283546,0.000648133104954402,0.00064661486210739,0.00064661486210739, +0.000659544937108216,0.000659544937108216,0.000661915358131811,0.000660870053183798,0.000657898971745659,0.00065428084925213,0.000650842386283546,0.000648133104954402,0.00064661486210739,0.00064661486210739, +0.00213560382852919,0.00213560382852919,0.00214132553695596,0.00213766382309401,0.00212870202073703,0.00211795412502278,0.00210772710367621,0.00209962296625212,0.00209505630469422,0.00209505630469422, +0.00748388311171318,0.00748388311171318,0.00749812613506437,0.00748459411026745,0.00745534078623359,0.00742077044835361,0.00738781853919738,0.00736152960709678,0.00734661019483493,0.00734661019483493, +0.0236985969159449,0.0236985969159449,0.0237271677191102,0.0236828300699477,0.023597141723127,0.0234974079999408,0.0234020990540649,0.0233253754709665,0.023281380216712,0.023281380216712, +0.0664491501666661,0.0664491501666661,0.0664878000552829,0.0663614780022287,0.0661416514604985,0.0658899658545271,0.0656485246089089,0.065451641860257,0.0653368436076087,0.0653368436076087, +0.163145496681312,0.163145496681312,0.163154330117608,0.16284515084204,0.162358220093176,0.161811038222791,0.161283139728675,0.160844044838596,0.160580257768518,0.160580257768518, +0.347192886236512,0.347192886236512,0.347075186940808,0.34643031798205,0.34551135567612,0.344502719416867,0.343521476439731,0.342678138833096,0.342140219776321,0.342140219776321, +0.63564979470747,0.63564979470747,0.635313322537093,0.634154034744694,0.632691272662591,0.631141264942222,0.62961545530156,0.628227491296909,0.627215733910559,0.627215733910559, + +00:08:13, +0.000666387085871985,0.000666387085871985,0.00066877782810176,0.000667727399044437,0.000664734520623418,0.000661087172943656,0.000657619744327037,0.00065488753285075,0.000653356608806981,0.000653356608806981, +0.000666387085871985,0.000666387085871985,0.00066877782810176,0.000667727399044437,0.000664734520623418,0.000661087172943656,0.000657619744327037,0.00065488753285075,0.000653356608806981,0.000653356608806981, +0.00215356550929072,0.00215356550929072,0.00215932421512142,0.00215564798700023,0.00214663625248017,0.00213582162238229,0.00212552801997778,0.00211737098051052,0.00211277506151248,0.00211277506151248, +0.00753419487480131,0.00753419487480131,0.007548502723437,0.00753492997326482,0.00750555770974865,0.00747082806818561,0.00743771580884565,0.00741129902663247,0.00739630900471847,0.00739630900471847, +0.0238211979813384,0.0238211979813384,0.0238498460414692,0.0238054184142444,0.0237194977167368,0.0236194484140794,0.0235238174812449,0.0234468364982409,0.0234026998272775,0.0234026998272775, +0.0666978269086014,0.0666978269086014,0.0667364999274783,0.066610043268367,0.0663898890168496,0.0661377362727036,0.0658958061217397,0.0656985330579195,0.0655835243320253,0.0655835243320253, +0.163547131601554,0.163547131601554,0.163555864295989,0.163246628654194,0.162759482343279,0.162211905129361,0.16168356005337,0.161244118373222,0.160980162780151,0.160980162780151, +0.347671333356128,0.347671333356128,0.347553529130647,0.346909004734572,0.345990381961108,0.344981922505388,0.344000773569925,0.343157565254449,0.342619800606842,0.342619800606842, +0.63599527328675,0.63599527328675,0.635659116164349,0.634500942652632,0.633039441231447,0.631490611085516,0.629965901826817,0.628578990505696,0.627568079243867,0.627568079243867, + +00:08:14, +0.000673280619368809,0.000673280619368809,0.000675691785177657,0.000674636229641889,0.000671621467385583,0.000667944756964742,0.000664448215589206,0.000661692954775404,0.000660149283911835,0.000660149283911835, +0.000673280619368809,0.000673280619368809,0.000675691785177657,0.000674636229641889,0.000671621467385583,0.000667944756964742,0.000664448215589206,0.000661692954775404,0.000660149283911835,0.000660149283911835, +0.00217162527603786,0.00217162527603786,0.00217742107401034,0.0021737303288304,0.00216466856023921,0.00215378702055866,0.00214342664066791,0.00213521653755289,0.00213059127241717,0.00213059127241717, +0.00758469068241176,0.00758469068241176,0.00759906334707774,0.00758544989174516,0.00755595866051345,0.00752106960536736,0.00748779683982409,0.00746125207128164,0.00744619136612892,0.00744619136612892, +0.0239440458897592,0.0239440458897592,0.0239727709105619,0.0239282534405761,0.0238421007514831,0.0237417362510405,0.0236457836404473,0.0235685454840374,0.0235242675247104,0.0235242675247104, +0.0669466250604994,0.0669466250604994,0.066985320617025,0.0668587297517103,0.0666382489953336,0.0663856306910263,0.0661432131626949,0.0659455509797617,0.0658303324394598,0.0658303324394598, +0.163948413480316,0.163948413480316,0.163957045029697,0.163647753562633,0.163160393627653,0.162612423965269,0.162083635301889,0.16164384919119,0.161379726330099,0.161379726330099, +0.348148816351021,0.348148816351021,0.348030907256651,0.347386727017289,0.346468444715376,0.345460164386259,0.344479112167353,0.343636035148167,0.343098425777202,0.343098425777202, +0.636339781618481,0.636339781618481,0.636003938397101,0.634846876052626,0.633386632742755,0.631838978701108,0.630315368775305,0.628929508809384,0.627919442129224,0.627919442129224, + +00:08:15, +0.000680225752425609,0.000680225752425609,0.000682657444184467,0.000681596759892221,0.00067856002703668,0.000674853816339629,0.000671328015043355,0.000668549585627029,0.00066699310227105,0.00066699310227105, +0.000680225752425609,0.000680225752425609,0.000682657444184467,0.000681596759892221,0.00067856002703668,0.000674853816339629,0.000671328015043355,0.000668549585627029,0.00066699310227105,0.00066699310227105, +0.00218978330820255,0.00218978330820255,0.00219561629255001,0.00219191102760982,0.00218279912356952,0.00217185049982818,0.00216142314670311,0.00215315981883107,0.0021485051191134,0.0021485051191134, +0.00763537042462945,0.00763537042462945,0.0076498078949059,0.00763615375468591,0.00760654352879331,0.00757149495229453,0.00753806152679757,0.00751138863747017,0.00749625717641081,0.00749625717641081, +0.0240671397718537,0.0240671397718537,0.0240959414563555,0.0240513342786338,0.0239649499582202,0.0238642706444651,0.0237679966687235,0.0236905015681268,0.023646082450157,0.023646082450157, +0.0671955430209802,0.0671955430209802,0.0672342605247108,0.0671075358516217,0.0668867297927705,0.0666336475048632,0.0663907441269258,0.06619269402084,0.066077266324688,0.066077266324688, +0.164349341703756,0.164349341703756,0.164357871709514,0.164048524955258,0.163560953324203,0.163012594095725,0.162483364827769,0.162043236636823,0.161778947757419,0.161778947757419, +0.348625338008,0.348625338008,0.348507324108345,0.347863487620041,0.346945546717587,0.34593744781863,0.344956494970814,0.344113551237187,0.343576098002264,0.343576098002264, +0.636683324161806,0.636683324161806,0.636347793701513,0.635191839425095,0.633732851683017,0.632186372272744,0.630663860625665,0.629279050684574,0.628269827045758,0.628269827045758, + +00:08:16, +0.000687222699702089,0.000687222699702089,0.000689675019777306,0.000688609204541228,0.000685550414412683,0.000681814565927219,0.000678259357501033,0.000675457640145396,0.000673888278576349,0.000673888278576349, +0.000687222699702089,0.000687222699702089,0.000689675019777306,0.000688609204541228,0.000685550414412683,0.000681814565927219,0.000678259357501033,0.000675457640145396,0.000673888278576349,0.000673888278576349, +0.00220803978404339,0.00220803978404339,0.00221391004849339,0.0022101902611884,0.00220102812085144,0.00219001223929425,0.00217951771787029,0.0021712010046302,0.00216651678214117,0.00216651678214117, +0.00768623398938522,0.00768623398938522,0.00770073625369314,0.00768704144891556,0.00765731220269872,0.00762210399920113,0.0075885097622641,0.00756170861945409,0.0075465063307375,0.0075465063307375, +0.0241904787584272,0.0241904787584272,0.0242193568089922,0.0241746600582844,0.0240880444679631,0.0239870507281272,0.0238904557032304,0.0238127038903645,0.0237681437448381,0.0237681437448381, +0.0674445791965868,0.0674445791965868,0.0674833180592543,0.0673564599754054,0.0671353298139146,0.0668817851174847,0.0666383974174461,0.0664399605840424,0.0663243243903042,0.0663243243903042, +0.164749915669053,0.164749915669053,0.164758343737214,0.164448942230982,0.163961160821898,0.163412414897043,0.162882747995666,0.162442280065584,0.162177826412327,0.162177826412327, +0.349100901105855,0.349100901105855,0.348982782467204,0.348339289324621,0.347421690738455,0.346413775553848,0.34543292471144,0.344590116236888,0.344052819989394,0.344052819989394, +0.637025905347867,0.637025905347867,0.636690686515696,0.635535837222313,0.63407810251059,0.632532796256102,0.631011381828556,0.629627620579946,0.628619238444696,0.628619238444696, + +00:08:17, +0.000694271675686128,0.000694271675686128,0.000696744726436838,0.00069567377815983,0.000692592844176394,0.000688827220416451,0.000685242457607403,0.00068241733290675,0.000680835027357443,0.000680835027357443, +0.000694271675686128,0.000694271675686128,0.000696744726436838,0.00069567377815983,0.000692592844176394,0.000688827220416451,0.000685242457607403,0.00068241733290675,0.000680835027357443,0.000680835027357443, +0.00222639488064582,0.00222639488064582,0.00223230251841933,0.00222856820624096,0.00221935572929049,0.00220827241688756,0.00219771053278682,0.00218934027406879,0.00218462644087547,0.00218462644087547, +0.00773728126247107,0.00773728126247107,0.00775184830807863,0.0077381128591289,0.00770826456820059,0.00767289663417474,0.00763914143657005,0.00761221190933466,0.00759693872212613,0.00759693872212613, +0.0243140619804681,0.0243140619804681,0.0243430160988142,0.0242982299095959,0.0242113834119124,0.0241100756359595,0.0240131598812549,0.0239351515907158,0.0238904505500746,0.0238904505500746, +0.0676937320017633,0.0676937320017633,0.0677324916372828,0.0676055005382842,0.0673840474714323,0.0671300419400431,0.0668861714451103,0.0666873490800677,0.0665715050467007,0.0665715050467007, +0.1651501347843,0.1651501347843,0.165158460525464,0.164849004799638,0.164361015520672,0.163811885756539,0.163281784181262,0.162840978843977,0.162576361656095,0.162576361656095, +0.349575508415356,0.349575508415356,0.349457285106652,0.34881413490478,0.34789687954075,0.346889150335454,0.345908404112692,0.345065732855083,0.344528594438459,0.344528594438459, +0.637367529580019,0.637367529580019,0.637032621249924,0.635878873868633,0.634422389655908,0.63287825507901,0.631357936806875,0.629975222916479,0.628967680749578,0.628967680749578, + +00:08:18, +0.000701372894689187,0.000701372894689187,0.000703866778464695,0.000702790695139486,0.000699687530812853,0.000695891994321693,0.000692277529836636,0.000689428878319192,0.00068783356297742,0.00068783356297742, +0.000701372894689187,0.000701372894689187,0.000703866778464695,0.000702790695139486,0.000699687530812853,0.000695891994321693,0.000692277529836636,0.000689428878319192,0.00068783356297742,0.00068783356297742, +0.00224484877392236,0.00224484877392236,0.00225079387773282,0.00224704503826747,0.00223778212491762,0.00222663120936632,0.00221600176890075,0.00220757780509886,0.0022028342735264,0.0022028342735264, +0.00778851212755526,0.00778851212755526,0.00780314394058432,0.00778936786790221,0.00775940050914545,0.00772387274317166,0.00768995643792524,0.0076628983970734,0.00764755424145274,0.00764755424145274, +0.0244378885691728,0.0244378885691728,0.0244669184563875,0.0244220429628618,0.0243349659214784,0.0242333445020778,0.0241361083402393,0.0240578438092809,0.0240130020073123,0.0240130020073123, +0.0679429998588332,0.0679429998588332,0.0679817796833107,0.0678546559633778,0.0676328811858805,0.0673784163915503,0.0671340646285924,0.0669348579274049,0.0668188067120469,0.0668188067120469, +0.165549998468409,0.165549998468409,0.16555822149772,0.165248712081868,0.164760516831321,0.16421100607243,0.163680472771159,0.163239332349448,0.162974552860954,0.162974552860954, +0.350049162699247,0.350049162699247,0.349930834792054,0.349288027126215,0.348371115879288,0.347363574899177,0.346382935890351,0.345540403792019,0.345003424041815,0.345003424041815, +0.637708201234052,0.637708201234052,0.637373602286855,0.6362209537607,0.634765717521701,0.633222753141666,0.631703529955971,0.630321862087666,0.629315158356471,0.629315158356471, + +00:08:19, +0.000708526570841744,0.000708526570841744,0.000711041389978922,0.000709960169687633,0.000706834688624769,0.000703009101978166,0.00069936478848732,0.000696492490618092,0.000694884099628148,0.000694884099628148, +0.000708526570841744,0.000708526570841744,0.000711041389978922,0.000709960169687633,0.000706834688624769,0.000703009101978166,0.00069936478848732,0.000696492490618092,0.000694884099628148,0.000694884099628148, +0.00226340163861289,0.00226340163861289,0.00226938430066527,0.00226562093159338,0.00225630748258948,0.00224508879231645,0.00223439160249099,0.00222591377450613,0.0022211404571393,0.0022211404571393, +0.00783992646619757,0.00783992646619757,0.00785462303163006,0.00784080635570848,0.00781071990727066,0.0077750322100321,0.007740954652418,0.00771376797050718,0.00769835277746725,0.00769835277746725, +0.0245619576559701,0.0245619576559701,0.0245910630125271,0.0245460983486253,0.0244587911283063,0.0243568564608055,0.0242593002178058,0.0241807796863196,0.0241357972581466,0.0241357972581466, +0.0681923811979768,0.0681923811979768,0.0682311806297164,0.0681039246816798,0.0678818293856838,0.0676269068988562,0.0673820753943648,0.0671824855523118,0.0670662278122682,0.0670662278122682, +0.165949506151006,0.165949506151006,0.165957626088132,0.165648063509031,0.165159664175404,0.164609775253734,0.164078813162782,0.163637339970285,0.163372399409992,0.163372399409992, +0.350521866712245,0.350521866712245,0.350403434280718,0.349760968746576,0.348844402500929,0.347837051972932,0.346856522752515,0.346014131740363,0.345477311484308,0.345477311484308, +0.638047924658402,0.638047924658402,0.637713633981746,0.636562081267674,0.63510809048321,0.63356629481685,0.632048165643862,0.630667542459725,0.629661675634183,0.629661675634183, + +00:08:20, +0.000715732918088749,0.000715732918088749,0.000718268774909433,0.000717182415823148,0.000714034531727965,0.000710178757537381,0.000706504447677892,0.000703608383861519,0.000701986851325711,0.000701986851325711, +0.000715732918088749,0.000715732918088749,0.000718268774909433,0.000717182415823148,0.000714034531727965,0.000710178757537381,0.000706504447677892,0.000703608383861519,0.000701986851325711,0.000701986851325711, +0.00228205364828493,0.00228205364828493,0.00228807396027492,0.00228429605936993,0.0022749319759888,0.00226364534015195,0.00225288020866757,0.00224434835791022,0.00223954516759496,0.00223954516759496, +0.00789152415786433,0.00789152415786433,0.00790628545954871,0.00789242820093257,0.00786222264221956,0.00782637491649529,0.00779213596403028,0.00776482051536321,0.00774933421680844,0.00774933421680844, +0.0246862683725456,0.0246862683725456,0.0247154488983203,0.0246703951977033,0.0245828581642997,0.0244806106466982,0.0243827346517808,0.0243039583622753,0.024258835444347,0.024258835444347, +0.0684418744572096,0.0684418744572096,0.0684806929167205,0.0683533051320356,0.0681308905071126,0.0678755118966268,0.067630202176677,0.0674302303887937,0.0673137667810253,0.0673137667810253, +0.166348657272336,0.166348657272336,0.166356673741442,0.166047058523099,0.165558456985145,0.165008192720171,0.164476804764278,0.164035001105517,0.163769900697055,0.163769900697055, +0.35099362320104,0.35099362320104,0.350875086321893,0.350232962515456,0.349316742144575,0.348309584276812,0.347329167399595,0.346486919385203,0.34595025944326,0.34595025944326, +0.638386704174368,0.638386704174368,0.638052720662663,0.636902260731438,0.6354495128884,0.633908884450137,0.632391848211446,0.631012268371812,0.630007236924474,0.630007236924474, + +00:08:21, +0.000722992150185102,0.000722992150185102,0.000725549146993507,0.000724457647371833,0.000721287274046861,0.000717401174962606,0.0007136967213421,0.000710776771925693,0.000709142031905857,0.000709142031905857, +0.000722992150185102,0.000722992150185102,0.000725549146993507,0.000724457647371833,0.000721287274046861,0.000717401174962606,0.0007136967213421,0.000710776771925693,0.000709142031905857,0.000709142031905857, +0.00230080497533405,0.00230080497533405,0.00230686302844719,0.00230307059357461,0.00229365577762474,0.0022823010261152,0.00227146776137194,0.00226288172976495,0.00225804857960993,0.00225804857960993, +0.00794330507994355,0.00794330507994355,0.00795813110060133,0.00794423327988632,0.00791390859155663,0.00787790074221458,0.00784350025465271,0.00781605591527402,0.00780049844401894,0.00780049844401894, +0.0248108198508648,0.0248108198508648,0.0248400752451508,0.0247949326412103,0.0247071661616449,0.0246046061945673,0.024506410780219,0.0244273789777999,0.0243821157078813,0.0243821157078813, +0.0686914780823595,0.0686914780823595,0.0687303149923629,0.0686027957611199,0.0683800629942605,0.0681242298273221,0.0678784434175332,0.0676780908785825,0.0675614220596924,0.0675614220596924, +0.166747451283166,0.166747451283166,0.166755363912885,0.166445696576561,0.165956894703329,0.165406257902065,0.16487444699442,0.164432315164819,0.164167056126652,0.164167056126652, +0.351464434904289,0.351464434904289,0.351345793656766,0.350704011174397,0.349788137541171,0.348781174523091,0.347800872524309,0.346958769404042,0.34642227058847,0.34642227058847, +0.63872454407632,0.63872454407632,0.638390866630698,0.637241496466815,0.635789989058172,0.634250526360111,0.632734581972707,0.631356044136229,0.630351846542265,0.630351846542265, + +00:08:22, +0.000730304480691152,0.000730304480691152,0.00073288271977129,0.00073178607796192,0.000728593129309966,0.000724676568024353,0.000720941823224476,0.000717997868500461,0.000716349855019476,0.000716349855019476, +0.000730304480691152,0.000730304480691152,0.00073288271977129,0.00073178607796192,0.000728593129309966,0.000724676568024353,0.000720941823224476,0.000717997868500461,0.000716349855019476,0.000716349855019476, +0.00231965579098427,0.00231965579098427,0.00232575167589513,0.00232194470501159,0.00231247905883334,0.00230105602227737,0.00229015443337736,0.00228151406335864,0.00227665086673675,0.00227665086673675, +0.00799526910775999,0.00799526910775999,0.00801015982899219,0.0079962214668237,0.00796577763078258,0.00792960956477252,0.00789504740409954,0.00786747405179244,0.00785184534156015,0.00785184534156015, +0.0249356112231977,0.0249356112231977,0.024964941184722,0.0249197098105821,0.0248317142528343,0.0247288422395042,0.0246303277414274,0.0245510406737771,0.0245056371909393,0.0245056371909393, +0.0689411905270445,0.0689411905270445,0.0689800453124801,0.0688523950234135,0.0686293452990217,0.0683730591411738,0.0681267975666714,0.0679260654711148,0.0678091920973364,0.0678091920973364, +0.167145887644681,0.167145887644681,0.167153696068095,0.166843977132325,0.166354976783211,0.165803970240244,0.16527173928251,0.164829281568412,0.164563865113855,0.164563865113855, +0.351934304552621,0.351934304552621,0.351815559018463,0.351174117456884,0.350258591413697,0.349251825416216,0.348271640811682,0.347429684466792,0.34689334758221,0.34689334758221, +0.63906144863191,0.63906144863191,0.638728076160174,0.637579792761774,0.636129523286576,0.634591224838571,0.633076371214932,0.631698874038635,0.630695508775842,0.630695508775842, + +00:08:23, +0.000737670122968221,0.000737670122968221,0.000740269706581334,0.000739167921019603,0.000735952311045402,0.000732005150295885,0.000728239966875843,0.000725271887084797,0.000723610534128095,0.000723610534128095, +0.000737670122968221,0.000737670122968221,0.000740269706581334,0.000739167921019603,0.000735952311045402,0.000732005150295885,0.000728239966875843,0.000725271887084797,0.000723610534128095,0.000723610534128095, +0.00233860626528848,0.00233860626528848,0.0023447400721599,0.0023409185633122,0.00233140198977797,0.00231991049953887,0.00230894039628921,0.00230024553081448,0.00229535220136434,0.00229535220136434, +0.00804741611459021,0.00804741611459021,0.00806237151688384,0.00804839263395585,0.00801782963334943,0.00798150125969591,0.00794677729012369,0.00791907480440653,0.00790337478982713,0.00790337478982713, +0.0250606416221415,0.0250606416221415,0.0250900458490807,0.0250447258375985,0.0249565015706899,0.0248533179169035,0.0247544846739886,0.0246749425913461,0.0246293990359569,0.0246293990359569, +0.0691910102526503,0.0691910102526503,0.0692298823406826,0.0691021013811805,0.0688787358810684,0.068621998296163,0.0683752630815407,0.0681741526235103,0.068057075350695,0.068057075350695, +0.167543965828396,0.167543965828396,0.167551669683006,0.167241899663621,0.166752702688416,0.166201329185947,0.165668681068278,0.165225899746969,0.164960327084204,0.164960327084204, +0.352403234868631,0.352403234868631,0.35228438513205,0.351643284088348,0.350728106477171,0.349721539652808,0.34874147493904,0.347899667235773,0.347363493079214,0.347363493079214, +0.639397422082278,0.639397422082278,0.639064353498857,0.637917153877644,0.636468119841016,0.634930984150741,0.633417220198906,0.632040762338245,0.631038227887068,0.631038227887068, + +00:08:24, +0.000745089290174149,0.000745089290174149,0.000747710320556147,0.000746603389764589,0.000743365032576443,0.000739387135148749,0.000735591365648836,0.000732599040982318,0.000730924282499398,0.000730924282499398, +0.000745089290174149,0.000745089290174149,0.000747710320556147,0.000746603389764589,0.000743365032576443,0.000739387135148749,0.000735591365648836,0.000732599040982318,0.000730924282499398,0.000730924282499398, +0.00235765656712901,0.00235765656712901,0.00236382838561135,0.00235999233693549,0.0023504247394499,0.0023388646276298,0.00232782582054552,0.00231907630309092,0.00231415275471838,0.00231415275471838, +0.00809974597167753,0.00809974597167753,0.00811476603441214,0.00810074665146612,0.00807006447067559,0.00803357570047078,0.00799868978843167,0.00797085805055448,0.00795508666716354,0.00795508666716354, +0.025185910180644,0.025185910180644,0.0252153883706395,0.025169979854407,0.0250815272483863,0.0249780323624862,0.0248788807167845,0.0247990838719255,0.0247534003856391,0.0247534003856391, +0.069440935728307,0.069440935728307,0.0694798245483318,0.0693519133044458,0.0691282332078275,0.0688710457579979,0.0686238384272797,0.0684223508005503,0.0683050702841553,0.0683050702841553, +0.167941685316053,0.167941685316053,0.167949284243758,0.167639463653905,0.16715007189284,0.166598334200725,0.166065271801793,0.165622169141519,0.165356441473609,0.165356441473609, +0.352871228566886,0.352871228566886,0.35275227471453,0.352111513786164,0.351196685438651,0.350190319921661,0.349210377576011,0.348368720365707,0.347832709726682,0.347832709726682, +0.639732468642261,0.639732468642261,0.639399702868158,0.638253584049315,0.636805782962457,0.635269808535472,0.633757133159127,0.63238171326804,0.631380008111576,0.631380008111576, + +00:08:25, +0.000752562195258865,0.000752562195258865,0.000755204774617772,0.000754092697205677,0.000750831507017084,0.000746822735748332,0.000742996232693448,0.000739979543296833,0.00073829131320277,0.00073829131320277, +0.000752562195258865,0.000752562195258865,0.000755204774617772,0.000754092697205677,0.000750831507017084,0.000746822735748332,0.000742996232693448,0.000739979543296833,0.00073829131320277,0.00073829131320277, +0.00237680686421809,0.00237680686421809,0.0023830167834485,0.00237916619316877,0.00236954747566881,0.00235791857511048,0.00234681087541738,0.00233800654998213,0.00233305269686175,0.00233305269686175, +0.00815225854824706,0.00815225854824706,0.00816734324970127,0.00815328338752514,0.00812248201216081,0.00808583275855745,0.00805078477269855,0.00802282366563951,0.00800698084987642,0.00800698084987642, +0.0253114160320262,0.0253114160320262,0.0253409678821999,0.0252954709935452,0.0252067904194738,0.025102984712323,0.025003515009019,0.0249234636572358,0.0248776403829835,0.0248776403829835, +0.0696909654308671,0.0696909654308671,0.0697298704145168,0.0696018292709711,0.0693778357544582,0.0691202000000909,0.0688725220766942,0.0686706584746554,0.0685531753697319,0.0685531753697319, +0.168339045599531,0.168339045599531,0.168346539246599,0.168036668596763,0.167547083880562,0.166994984756347,0.166461510943361,0.166018089203352,0.165752207728259,0.165752207728259, +0.353338288353921,0.353338288353921,0.353219230474848,0.352578809259654,0.35166433099723,0.350658168903739,0.349678351384518,0.348836846503721,0.348301000164274,0.348301000164274, +0.640066592500591,0.640066592500591,0.63973412846334,0.638589087485445,0.637142516865632,0.635607702205448,0.634096114304,0.632721731034966,0.631720853658982,0.631720853658982, + +00:08:26, +0.000760089050959973,0.000760089050959973,0.000762753281473393,0.000761636056136351,0.000758351947267633,0.000754312165049439,0.000750454780952604,0.000747413606927905,0.000745711839104859,0.000745711839104859, +0.000760089050959973,0.000760089050959973,0.000762753281473393,0.000761636056136351,0.000758351947267633,0.000754312165049439,0.000750454780952604,0.000747413606927905,0.000745711839104859,0.000745711839104859, +0.00239605732309851,0.00239605732309851,0.00240230543170025,0.0023984402981283,0.00238877036508341,0.00237707250937207,0.00236589572900952,0.0023570364401185,0.00235205219669498,0.00235205219669498, +0.00820495371152064,0.00820495371152064,0.00822010302887863,0.00820600270830571,0.00817508212520125,0.00813827230340539,0.00810306211458282,0.00807497152304469,0.00805905721225108,0.00805905721225108, +0.0254371583100055,0.0254371583100055,0.0254667835169749,0.0254211983879633,0.0253322902179008,0.0252281741028568,0.0251283866902414,0.0250480810893228,0.0250021181713029,0.0250021181713029, +0.0699410978448815,0.0699410978448815,0.0699800184260315,0.0698518477662324,0.0696275420038287,0.0693694595035359,0.069121312510235,0.0689190741258639,0.0688013890870449,0.0688013890870449, +0.168736046180749,0.168736046180749,0.168743434197794,0.168433513995821,0.167943738145741,0.167391280334705,0.166857397963437,0.166413659393921,0.166147625304526,0.166147625304526, +0.353804416928241,0.353804416928241,0.35368525511389,0.353045173210088,0.352131045844038,0.351125089272177,0.350145399018786,0.349304048289339,0.348768367024108,0.348768367024108, +0.640399797820102,0.640399797820102,0.640067634453716,0.638923668368664,0.637478325739238,0.635944669347388,0.634434167816045,0.633060819820131,0.632060768713075,0.632060768713075, + +00:08:27, +0.000767670069798376,0.000767670069798376,0.000770356053610953,0.000769233679130409,0.000765926566010317,0.000761855635791894,0.000757967223157751,0.000754901444566441,0.000753186072865165,0.000753186072865165, +0.000767670069798376,0.000767670069798376,0.000770356053610953,0.000769233679130409,0.000765926566010317,0.000761855635791894,0.000757967223157751,0.000754901444566441,0.000753186072865165,0.000753186072865165, +0.00241540810914419,0.00241540810914419,0.00242169449522597,0.0024178148167599,0.00240809357317211,0.00239632659663708,0.00238508054826083,0.00237616614096716,0.00237115142195682,0.00237115142195682, +0.00825783132673171,0.00825783132673171,0.00827304523608981,0.00825890447799785,0.00822786467520437,0.00819089420246821,0.00815552168374125,0.00812730149414777,0.00811131562656585,0.00811131562656585, +0.0255631361487174,0.0255631361487174,0.0255928344086111,0.0255471611710467,0.0254580257780363,0.0253535996709255,0.0252534949003686,0.02517293531058,0.0251268328942483,0.0251268328942483, +0.0701913314625773,0.0701913314625773,0.0702302670773511,0.0701019672833963,0.0698773504464927,0.069618822757086,0.0693702082159751,0.0691675962418091,0.0690497099232982,0.0690497099232982, +0.169132686571574,0.169132686571574,0.169139968613531,0.168829999364643,0.168340034192528,0.167787220427719,0.167252932342528,0.166808879184757,0.16654269366887,0.16654269366887, +0.354269616980327,0.354269616980327,0.354150351324484,0.353510608330685,0.352596832662246,0.35159108369228,0.350611523125333,0.349770328354483,0.349234812930758,0.349234812930758, +0.640732088737928,0.640732088737928,0.640400224982855,0.639257330855774,0.637813213746144,0.636280714122244,0.634771297852089,0.633398983779009,0.63239975743202,0.63239975743202, + +00:08:28, +0.000775305464073904,0.000775305464073904,0.000778013303294804,0.000776885778537606,0.000773555575704923,0.000769453360496166,0.000765533771824474,0.000762443268690304,0.000760714226931652,0.000760714226931652, +0.000775305464073904,0.000775305464073904,0.000778013303294804,0.000776885778537606,0.000773555575704923,0.000769453360496166,0.000765533771824474,0.000762443268690304,0.000760714226931652,0.000760714226931652, +0.0024348593865609,0.0024348593865609,0.00244118413771623,0.00243728991283966,0.00242751726424368,0.00241568100196014,0.00240436549894501,0.0023953958188326,0.00239035053922474,0.00239035053922474, +0.00831089125714025,0.00831089125714025,0.00832616973351349,0.00831198855882366,0.00828082952560389,0.00824369832121852,0.00820816334784377,0.00817981344833601,0.00816375596310688,0.00816375596310688, +0.0256893486827381,0.0256893486827381,0.0257191196912105,0.0256733584766376,0.0255839962346921,0.0254792605537838,0.0253788387797074,0.0252980254637712,0.0252517836958315,0.0252517836958315, +0.0704416647838342,0.0704416647838342,0.0704806148706088,0.0703521863232963,0.0701272595806666,0.0698682882571297,0.0696192076895875,0.0694162233176979,0.0692981363732569,0.0692981363732569, +0.169528966293728,0.169528966293728,0.169536142019828,0.169226124226648,0.168735971534972,0.168182804537248,0.167648113571099,0.167203748057367,0.166937412297749,0.166937412297749, +0.354733891192632,0.354733891192632,0.354614521791407,0.353975117306614,0.353061694127063,0.352056154821525,0.351076726342973,0.350235689323474,0.349700340501251,0.349700340501251, +0.641063469365699,0.641063469365699,0.640731904168777,0.639590079077945,0.638147185023588,0.636615840665398,0.635107508543469,0.633736227041634,0.632737823948554,0.632737823948554, + +00:08:29, +0.000782995445860981,0.000782995445860981,0.000785725242561383,0.000784592566479319,0.000781239188584456,0.000777105551459013,0.000773154639248137,0.000770039291559948,0.000768296513536378,0.000768296513536378, +0.000782995445860981,0.000782995445860981,0.000785725242561383,0.000784592566479319,0.000781239188584456,0.000777105551459013,0.000773154639248137,0.000770039291559948,0.000768296513536378,0.000768296513536378, +0.00245441131838693,0.00245441131838693,0.00246077452169357,0.00245686574897475,0.00244704160143803,0.00243513588922861,0.0024237507456712,0.00241472563885722,0.00240964971391562,0.00240964971391562, +0.0083641333640476,0.0083641333640476,0.00837947638137625,0.00836525481105218,0.00833397653787465,0.00829668452316281,0.00826098697258825,0.00823250725302086,0.00821637809018284,0.00821637809018284, +0.0258157950471064,0.0258157950471064,0.025845638499353,0.0257997894390571,0.0257102007231445,0.0256051558891259,0.025504417468977,0.0254233506920525,0.0253769697204467,0.0253769697204467, +0.0706920963161612,0.0706920963161612,0.0707310603155722,0.0706025033944099,0.0703772679122055,0.0701178545076687,0.0698683094343225,0.0696649538562873,0.0695466669392256,0.0695466669392256, +0.169924884878696,0.169924884878696,0.169931953952438,0.16962188811501,0.169131549696923,0.168578032174993,0.168042941149484,0.167598265503152,0.167331780677526,0.167331780677526, +0.355197242239588,0.355197242239588,0.355077769191383,0.354438702815001,0.353525632905743,0.352520305309559,0.351541011302819,0.350700133813029,0.35016495234507,0.35016495234507, +0.641393943789741,0.641393943789741,0.641062676104149,0.639921917140919,0.638480243683369,0.636950053086863,0.635442803996222,0.634072553712792,0.633074972370177,0.633074972370177, + +00:08:30, +0.00079074022700431,0.00079074022700431,0.000793492083214898,0.000792354254844249,0.000788977616650824,0.000784812420749157,0.000780830037499544,0.000777689725214075,0.000775933144691155,0.000775933144691155, +0.00079074022700431,0.00079074022700431,0.000793492083214898,0.000792354254844249,0.000788977616650824,0.000784812420749157,0.000780830037499544,0.000777689725214075,0.000775933144691155,0.000775933144691155, +0.00247406406649388,0.00247406406649388,0.00248046580851321,0.00247654248660413,0.00246666674672691,0.00245469142116334,0.00244323645188469,0.00243415576502208,0.00242904911028631,0.00242904911028631, +0.0084175575068113,0.0084175575068113,0.00843296503796745,0.00841870309301431,0.00838730557154748,0.00834985266985624,0.00831399242171526,0.00828538277365274,0.00826918187413963,0.00826918187413963, +0.0259424743773449,0.0259424743773449,0.0259723899681171,0.0259264531931269,0.0258366383791563,0.0257312848151065,0.0256302301093307,0.0255489101389944,0.025502390112893,0.025502390112893, +0.0709426245746733,0.0709426245746733,0.0709816019296197,0.0708529170128341,0.0706273739545803,0.0703675200202938,0.0701175119609849,0.069913786367863,0.0697953001310253,0.0697953001310253, +0.170320441867633,0.170320441867633,0.170327403956765,0.17001729057257,0.169526768211949,0.168972902862407,0.168437414587796,0.167992431023304,0.167725798304378,0.167725798304378, +0.355659672787607,0.355659672787607,0.355540096193087,0.354901367524929,0.353988651657581,0.352983537798207,0.352004380628279,0.351163664432262,0.350628651064149,0.350628651064149, +0.641723516071268,0.641723516071268,0.641392544856481,0.640252849125199,0.63881239381205,0.637283355471473,0.635777188291284,0.634407967872217,0.633411206779348,0.633411206779348, + +00:08:31, +0.000798540019114577,0.000798540019114577,0.000801314036823053,0.000800171055284125,0.000796771071670541,0.000792574180202979,0.000788560178420625,0.000785394781465317,0.000783624332183227,0.000783624332183227, +0.000798540019114577,0.000798540019114577,0.000801314036823053,0.000800171055284125,0.000796771071670541,0.000792574180202979,0.000788560178420625,0.000785394781465317,0.000783624332183227,0.000783624332183227, +0.00249381779158744,0.00249381779158744,0.00250025815836394,0.00249632028599945,0.00248639286091481,0.00247434775931947,0.00246282277986767,0.00245368636014753,0.00244854889143439,0.00244854889143439, +0.00847116354285982,0.00847116354285982,0.00848663555965399,0.00847233326111758,0.00844081648422401,0.00840320262091749,0.00836717955702283,0.00833843987373573,0.0083221671793751,0.0083221671793751, +0.026069385809482,0.026069385809482,0.0260993732331018,0.0260533488741901,0.0259633083389979,0.0258576464703631,0.0257562758423774,0.0256747029486036,0.025628044018396,0.025628044018396, +0.0711932480820679,0.0711932480820679,0.0712322382377169,0.0711034257022623,0.0708775762288535,0.0706172833141627,0.0703668137879109,0.070162719370216,0.0700440344659718,0.0700440344659718, +0.170715636811278,0.170715636811278,0.170722491587765,0.170412331151746,0.169921626623237,0.169367416130609,0.16883153340583,0.168386244128729,0.168119464684205,0.168119464684205, +0.356121185495084,0.356121185495084,0.356001505457151,0.355363114097441,0.354450753033921,0.353445854921464,0.35246683693506,0.351626283782682,0.351091439252877,0.351091439252877, +0.642052190246576,0.642052190246576,0.64172151446832,0.640582879086246,0.639143639471144,0.637615751879075,0.636110665484677,0.634742473574781,0.633746531233673,0.633746531233673, + +00:08:32, +0.000806395033564185,0.000806395033564185,0.000809191314712785,0.000808043179209455,0.000804619765170456,0.000800391041420235,0.000796345273620145,0.000793154671895941,0.000791370287570973,0.000791370287570973, +0.000806395033564185,0.000806395033564185,0.000809191314712785,0.000808043179209455,0.000804619765170456,0.000800391041420235,0.000796345273620145,0.000793154671895941,0.000791370287570973,0.000791370287570973, +0.00251367265320822,0.00251367265320822,0.00252015173026898,0.00251619930626586,0.00250622010363974,0.00249410506408724,0.00248250989073995,0.002473317585894,0.00246814921929886,0.00246814921929886, +0.00852495132770737,0.00852495132770737,0.00854048780089509,0.0085261451698609,0.00849450913159148,0.00845673423404342,0.00842054823838115,0.00839167841484222,0.0083753338683536,0.0083753338683536, +0.0261965284800728,0.0261965284800728,0.0262265874304475,0.0261804756181327,0.0260902097394687,0.0259842399940369,0.0258825538102033,0.0258007282653442,0.0257539305826293,0.0257539305826293, +0.0714439653686013,0.0714439653686013,0.0714829677723927,0.0713540279939601,0.0711278732636559,0.0708671429159757,0.0706162134409455,0.0704117513886203,0.0702928684688524,0.0702928684688524, +0.171110469269859,0.171110469269859,0.171117216409865,0.170807009414441,0.170316124483506,0.169761571520284,0.16922529713298,0.168779704339945,0.168512779332543,0.168512779332543, +0.356581783012404,0.356581783012404,0.356461999636169,0.355823945185545,0.35491193967816,0.353907259305507,0.352928382831168,0.3520879944582,0.351553319498095,0.351553319498095, +0.642379970327232,0.642379970327232,0.642049588957441,0.64091201105467,0.639473984697313,0.637947246344724,0.636443239607702,0.635076074850682,0.634080949766095,0.634080949766095, + +00:08:33, +0.000814305481483009,0.000814305481483009,0.000817124127966034,0.000815970837785283,0.000812523908433514,0.000808263215759798,0.000804185534469437,0.000800969607853573,0.000799171222179632,0.000799171222179632, +0.000814305481483009,0.000814305481483009,0.000817124127966034,0.000815970837785283,0.000812523908433514,0.000808263215759798,0.000804185534469437,0.000800969607853573,0.000799171222179632,0.000799171222179632, +0.00253362880973265,0.00253362880973265,0.00254014668208684,0.002536179705343,0.00252614863337417,0.00251396349469281,0.00250229794445985,0.00249304960276278,0.00248785025466093,0.00248785025466093, +0.0085789207149686,0.0085789207149686,0.00859452161425697,0.00858013867184938,0.00854838336743746,0.00851044736502391,0.00847409832374723,0.00844509825662753,0.00842868180162065,0.00842868180162065, +0.0263239015262201,0.0263239015262201,0.0263540316968565,0.0263078325614045,0.0262173417179178,0.0261110645257939,0.0260090631553929,0.025926985234159,0.0258800489517357,0.0258800489517357, +0.0716947749720649,0.0716947749720649,0.0717337890737153,0.0716047224267412,0.0713782635951625,0.0711170973599527,0.0708657094534192,0.07066088095581,0.0705418006719035,0.0705418006719035, +0.171504938813008,0.171504938813008,0.171511577996865,0.171201324931957,0.170710261354921,0.170155368581605,0.169618705308147,0.169172811187001,0.168905741774471,0.168905741774471, +0.357041467981943,0.357041467981943,0.356921581374696,0.356283863434221,0.355372214225746,0.354367753568692,0.353389020916913,0.352548799045123,0.3520142943791,0.3520142943791, +0.642706860300268,0.642706860300268,0.642376772317035,0.641240249036423,0.639803433502551,0.638277842878871,0.636774914667126,0.635408775705635,0.634414466385084,0.634414466385084, + +00:08:34, +0.000822271573754173,0.000822271573754173,0.000825112687415525,0.000823954241926976,0.000820483712494526,0.000816190914335426,0.00081208117209816,0.000808839800446956,0.000807027347097055,0.000807027347097055, +0.000822271573754173,0.000822271573754173,0.000825112687415525,0.000823954241926976,0.000820483712494526,0.000816190914335426,0.00081208117209816,0.000808839800446956,0.000807027347097055,0.000807027347097055, +0.00255368641837387,0.00255368641837387,0.0025602431705123,0.00255626164000587,0.00254617860742599,0.00253392320919924,0.00252218709982502,0.00251288257009685,0.00250765215714482,0.00250765215714482, +0.00863307155637324,0.00863307155637324,0.00864873685042757,0.00863431361780896,0.00860243904366455,0.00856434186775644,0.00852782966917954,0.00849869925684452,0.00848221083781751,0.00848221083781751, +0.0264515040855951,0.0264515040855951,0.0264817051696143,0.0264354188410394,0.0263447034122651,0.0262381192058458,0.0261358030210498,0.0260534730004908,0.0260063982723481,0.0260063982723481, +0.0719456754377613,0.0719456754377613,0.0719847006892684,0.0718555075469439,0.0716287457670687,0.0713671451878095,0.0711153003661249,0.0709101066119562,0.0707908296147877,0.0707908296147877, +0.171899045019671,0.171899045019671,0.171905575931859,0.171595277284902,0.171104036808999,0.170548806874135,0.170011757479651,0.169565564209389,0.169298351544525,0.169298351544525, +0.357500243038075,0.357500243038075,0.357380253309259,0.356742871480422,0.355831579304187,0.35482734032156,0.353848753784907,0.353008700122161,0.352474366467643,0.352474366467643, +0.643032864128362,0.643032864128362,0.642703068515898,0.641567597012982,0.640131989874378,0.638607545467547,0.637105694645368,0.635740580121054,0.634747085074818,0.634747085074818, + +00:08:35, +0.000830293521009856,0.000830293521009856,0.000833157203640589,0.00083199360229604,0.000828499388135975,0.000824174348011549,0.000820032397390073,0.000816765460541719,0.000814938873169475,0.000814938873169475, +0.000830293521009856,0.000830293521009856,0.000833157203640589,0.00083199360229604,0.000828499388135975,0.000824174348011549,0.000820032397390073,0.000816765460541719,0.000814938873169475,0.000814938873169475, +0.0025738456351827,0.0025738456351827,0.0025804413510774,0.0025764452658659,0.0025663101819394,0.00255398436450735,0.00254217751447334,0.00253281664608173,0.00252755508521864,0.00252755508521864, +0.00868740370178077,0.00868740370178077,0.00870313335823118,0.00868866985660112,0.00865667601030509,0.0086184175942608,0.00858174212885265,0.00855248127135815,0.00853592083369565,0.00853592083369565, +0.0265793352964578,0.0265793352964578,0.0266096069866094,0.0265632335946761,0.0264722939610214,0.0263654031749706,0.0262627725508179,0.0261801907103026,0.0261329776916107,0.0261329776916107, +0.0721966653184808,0.0721966653184808,0.0722357011741272,0.0721063819084061,0.0718793183305664,0.0716172849487345,0.0713649847272944,0.0711594269046445,0.0710399538445713,0.0710399538445713, +0.172292787478022,0.172292787478022,0.17229920980714,0.171988866063107,0.171497450426523,0.170941885966745,0.170404453205143,0.169957962955948,0.169690608186612,0.169690608186612, +0.357958110807174,0.357958110807174,0.357838018068358,0.357200971953081,0.356290037533055,0.355286022166836,0.35430758402007,0.353467700260427,0.352933538327935,0.352933538327935, +0.64335798575003,0.64335798575003,0.643028481498617,0.641894058941539,0.640459657776023,0.638936358072552,0.637435583500686,0.63607149205424,0.635078809795371,0.635078809795371, + +00:08:36, +0.000838371533627112,0.000838371533627112,0.000841257886962995,0.000840089129295949,0.000836571145883839,0.000832213727399084,0.000828039420978847,0.000824746798756176,0.000822906010997306,0.000822906010997306, +0.000838371533627112,0.000838371533627112,0.000841257886962995,0.000840089129295949,0.000836571145883839,0.000832213727399084,0.000828039420978847,0.000824746798756176,0.000822906010997306,0.000822906010997306, +0.00259410661504863,0.00259410661504863,0.00260074137815243,0.0025967307373719,0.002586543511896,0.00257414711635675,0.00256226934488386,0.00255285198774641,0.00254755919619525,0.00254755919619525, +0.00874191699919503,0.00874191699919503,0.00875771098464306,0.00874320723523751,0.0087110941155358,0.00867267439469369,0.00863583555507172,0.00860644415415997,0.00858981164413135,0.00858981164413135, +0.0267073942976774,0.0267073942976774,0.0267377362863536,0.0266912759605777,0.0266001125033088,0.0264929155745331,0.0263899708889013,0.0263071375100988,0.0262597863571993,0.0262597863571993, +0.0724477431744769,0.0724477431744769,0.0724867890908338,0.0723573440724418,0.0721299798443196,0.0718675151993641,0.0716147610925754,0.0714088403888513,0.0712891719157007,0.0712891719157007, +0.172686165785374,0.172686165785374,0.172692479224117,0.172382090865536,0.171890501797457,0.171334605437526,0.170796792051518,0.170350006984789,0.17008251125392,0.17008251125392, +0.358415073907625,0.358415073907625,0.358294878272475,0.357658167473117,0.356747591523988,0.355743801699442,0.354765514199633,0.353925802023441,0.353391812516645,0.353391812516645, +0.643682229079804,0.643682229079804,0.643353015185756,0.64221963875519,0.640786441146611,0.63926428463164,0.637764585167359,0.636401515438561,0.635409644482891,0.635409644482891, + +00:08:37, +0.000846505821723727,0.000846505821723727,0.00084941494744281,0.00084824103306801,0.00084469919600344,0.00084030926285127,0.000836102453243885,0.000832784025457151,0.000830928970930964,0.000830928970930964, +0.000846505821723727,0.000846505821723727,0.00084941494744281,0.00084824103306801,0.00084469919600344,0.00084030926285127,0.000836102453243885,0.000832784025457151,0.000830928970930964,0.000830928970930964, +0.00261446951170087,0.00261446951170087,0.00262114340494704,0.00261711820781122,0.00260687875111584,0.00259441161932683,0.00258246274637781,0.00257298875096426,0.00256766464623319,0.00256766464623319, +0.00879661129477878,0.00879661129477878,0.00881246957480399,0.00879792559889451,0.00876569320569233,0.00872711211736328,0.00869010979828709,0.00866058775738265,0.00864388312214008,0.00864388312214008, +0.0268356802287524,0.0268356802287524,0.0268660922080019,0.0268195450776526,0.0267281581788808,0.0266206555465049,0.026517397180085,0.0264343125469452,0.0263868234173416,0.0263868234173416, +0.0726989075734428,0.0726989075734428,0.0727379630093735,0.0726083926078168,0.0723807288744407,0.0721178345037599,0.0718646280250079,0.0716583456269211,0.0715384823899797,0.0715384823899797, +0.173079179548093,0.173079179548093,0.173085383793229,0.172774951300202,0.172283190520857,0.171726964873701,0.171188773594831,0.1707416958632,0.170474060308835,0.170474060308835, +0.358871134949824,0.358871134949824,0.35875083653408,0.358114460653441,0.357204243880699,0.356200681506491,0.355222546893139,0.354383007967131,0.353849191582904,0.353849191582904, +0.644005598008423,0.644005598008423,0.643676673474037,0.642544340363109,0.641112343901344,0.639591329058699,0.638092703555868,0.636730654183633,0.635739593049786,0.635739593049786, + +00:08:38, +0.000854696595154087,0.000854696595154087,0.000857628594874286,0.00085644952348724,0.000852883748495322,0.000848461164459532,0.000844221704306178,0.000840877350755821,0.000839007963066705,0.000839007963066705, +0.000854696595154087,0.000854696595154087,0.000857628594874286,0.00085644952348724,0.000852883748495322,0.000848461164459532,0.000844221704306178,0.000840877350755821,0.000839007963066705,0.000839007963066705, +0.0026349344777094,0.0026349344777094,0.00264164758351128,0.00263760782931076,0.00262731605225845,0.00261477802683783,0.00260275787311955,0.00259322709045408,0.00258787159033768,0.00258787159033768, +0.00885148643286821,0.00885148643286821,0.00886740897203483,0.00885282479092782,0.00882047312528386,0.00878173060874377,0.00874456470710876,0.0087149119313144,0.00869813511889098,0.00869813511889098, +0.02696419222983,0.02696419222983,0.0269946738913723,0.0269480400854732,0.026856430128142,0.0267486222334842,0.0266450505697546,0.0265617149684888,0.0265140880208374,0.0265140880208374, +0.0729501570904868,0.0729501570904868,0.0729892215071501,0.0728595260907236,0.0726315639944659,0.0723682414333841,0.0721145840950006,0.0719079411885428,0.0717878838365464,0.0717878838365464, +0.173471828381515,0.173471828381515,0.173477923133858,0.173167446984079,0.172675516204787,0.172118963871537,0.171580397420208,0.171133029167565,0.170865254922853,0.170865254922853, +0.359326296536189,0.359326296536189,0.359205895457634,0.358569854098961,0.35765999719898,0.356656664167301,0.355678684662453,0.354839320639837,0.354305678068311,0.354305678068311, +0.644328096403004,0.644328096403004,0.643999460236522,0.642868167650739,0.641437369931687,0.639917495243932,0.638419942553079,0.637058912175502,0.6360686593849,0.6360686593849, + +00:08:39, +0.00086294406350508,0.00086294406350508,0.000865899038781768,0.00086471481015828,0.000861125013091143,0.000856669642049365,0.000852397384024178,0.000849026984503588,0.000847143197242498,0.000847143197242498, +0.00086294406350508,0.00086294406350508,0.000865899038781768,0.00086471481015828,0.000861125013091143,0.000856669642049365,0.000852397384024178,0.000849026984503588,0.000847143197242498,0.000847143197242498, +0.00265550166448608,0.00265550166448608,0.00266225406473678,0.0026581997528382,0.00264785556682404,0.00263524649115193,0.00262315487811767,0.00261356715978105,0.0026081801823616,0.0026081801823616, +0.00890654225598746,0.00890654225598746,0.00892252901785099,0.00890790465288696,0.00887543371700763,0.00883652971348985,0.00879920012832081,0.00876941652441339,0.0087525674837212,0.0087525674837212, +0.0270929294417262,0.0270929294417262,0.0271234804769651,0.0270767601242959,0.0269849274921677,0.0268768147787159,0.0267729302039164,0.0266893439229783,0.0266415793170786,0.0266415793170786, +0.0732014903081084,0.0732014903081084,0.0732405631689617,0.0731107431047578,0.0728824837853308,0.0726187345670757,0.0723646278803071,0.0721576256507268,0.0720373748318499,0.0720373748318499, +0.17386411190986,0.17386411190986,0.173870096874246,0.173559577543018,0.17306747846623,0.172510602036269,0.171971663121764,0.171524006483277,0.171256094676496,0.171256094676496, +0.359780561261163,0.359780561261163,0.359660057639599,0.359024350406591,0.358114854066708,0.357111752253391,0.356133930061759,0.355294742582317,0.354761274506931,0.354761274506931, +0.644649728107229,0.644649728107229,0.644321379322791,0.643191124479968,0.641761523105542,0.640242787054038,0.638746306022417,0.637386293276819,0.636396847353691,0.636396847353691, + +00:08:40, +0.000871248436092016,0.000871248436092016,0.000874226488415626,0.000873037102411321,0.0008694231992496,0.000864934905176241,0.000860629701989695,0.000857233136287968,0.000855334883033917,0.000855334883033917, +0.000871248436092016,0.000871248436092016,0.000874226488415626,0.000873037102411321,0.0008694231992496,0.000864934905176241,0.000860629701989695,0.000857233136287968,0.000855334883033917,0.000855334883033917, +0.00267617122228581,0.00267617122228581,0.0026829629983579,0.00267889412820311,0.00266849744515461,0.00265581716337437,0.00264365391322609,0.00263400911135783,0.00262859057500655,0.00262859057500655, +0.00896177860486305,0.00896177860486305,0.0089778295519769,0.00896316502452975,0.0089305748217634,0.00889150927445122,0.00885401590689587,0.00882410138332214,0.00880718006415034,0.00880718006415034, +0.0272218910059447,0.0272218910059447,0.0272525111059822,0.0272057043350801,0.0271136494127233,0.0270052323261106,0.0269010352292165,0.0268171985592831,0.0267692964560685,0.0267692964560685, +0.0734529058161739,0.0734529058161739,0.0734919865869762,0.0733620422408929,0.0731334868353465,0.0728693124910266,0.0726147579660029,0.0724073975977813,0.0722869539596266,0.0722869539596266, +0.174256029766146,0.174256029766146,0.174261904651409,0.173951342611665,0.173459076931012,0.172901878982005,0.172362570302519,0.171914627404656,0.171646579159229,0.171646579159229, +0.360233931711223,0.360233931711223,0.360113325668447,0.359477952165257,0.358568817063851,0.357565948328497,0.356588285637572,0.35574927632775,0.355215983425303,0.355215983425303, +0.644970496941521,0.644970496941521,0.644642434559126,0.643513214689308,0.642084807267432,0.640567208332388,0.639071797804047,0.637712801327017,0.636724160798406,0.636724160798406, + +00:08:41, +0.000879609921954574,0.000879609921954574,0.000882611152748214,0.000881416609298062,0.000877778516152374,0.000873257163121548,0.000868918867523826,0.000865496015428513,0.00086358322975005,0.00086358322975005, +0.000879609921954574,0.000879609921954574,0.000882611152748214,0.000881416609298062,0.000877778516152374,0.000873257163121548,0.000868918867523826,0.000865496015428513,0.00086358322975005,0.00086358322975005, +0.00269694330020772,0.00269694330020772,0.00270377453295297,0.00269969110405823,0.00268924183643519,0.00267649019345464,0.00266425512914513,0.00265455309644565,0.00264910291982391,0.00264910291982391, +0.0090171953184383,0.0090171953184383,0.00903331041236041,0.00901860574383673,0.00898589627866789,0.00894666913268695,0.00890901188600946,0.00887896635288185,0.00886197270589468,0.00886197270589468, +0.0273510760646965,0.0273510760646965,0.0273817649203462,0.0273348718595077,0.0272425950322832,0.0271338740202643,0.0270293647929609,0.0269452780269131,0.0268972385884417,0.0268972385884417, +0.073704402211892,0.073704402211892,0.0737434903607068,0.0736134220974562,0.0733845717401747,0.0731199737987571,0.0728649729444607,0.0726572556212886,0.0725366198108775,0.0725366198108775, +0.174647581592111,0.174647581592111,0.174653346111057,0.174342741833375,0.173850311233708,0.173292794331648,0.17275311857431,0.172304891534864,0.172036707969379,0.172036707969379, +0.360686410464888,0.360686410464888,0.360565702124662,0.359930661955906,0.359021888762478,0.358019254948569,0.357041753928735,0.356202924401737,0.355669807342444,0.355669807342444, +0.645290406703215,0.645290406703215,0.644962629748677,0.643834442094072,0.642407226238672,0.640890762899203,0.639396421715045,0.638038440142488,0.637050603538257,0.637050603538257, + +00:08:42, +0.000888028729852771,0.000888028729852771,0.000891053240469847,0.000889853539587689,0.000886191172700099,0.00088163662488854,0.000877265089672898,0.000873815830972751,0.000871888446429442,0.000871888446429442, +0.000888028729852771,0.000888028729852771,0.000891053240469847,0.000889853539587689,0.000886191172700099,0.00088163662488854,0.000877265089672898,0.000873815830972751,0.000871888446429442,0.000871888446429442, +0.00271781804619636,0.00271781804619636,0.00272468881594549,0.00272059082790068,0.00271008888869507,0.00269726573018766,0.00268495867542276,0.00267519926515545,0.00266971736721601,0.00266971736721601, +0.0090727922338877,0.0090727922338877,0.00908897143518718,0.00907422664702557,0.00904139792506919,0.00900200912747991,0.00896418790705433,0.0089340112761467,0.00891694525288151,0.00891694525288151, +0.0274804837609181,0.0274804837609181,0.0275112410627191,0.0274642618400011,0.0273717634940499,0.027262739006477,0.0271579180431339,0.0270735814760378,0.0270254048654831,0.0270254048654831, +0.0739559780997894,0.0739559780997894,0.0739950730969871,0.0738648812801038,0.0736357371028031,0.0733707170910922,0.0731152714153274,0.0729071983200821,0.0727863709838442,0.0727863709838442, +0.175038767038125,0.175038767038125,0.175044420907507,0.17473377486013,0.174241181017568,0.173683347716815,0.173143307557716,0.172694798485825,0.172426480714044,0.172426480714044, +0.361138000092727,0.361138000092727,0.361017189580753,0.36038248235151,0.35947407172676,0.358471674661783,0.357494337466436,0.356655689322313,0.356122748769848,0.356122748769848, +0.645609461166741,0.645609461166741,0.645281968671647,0.644154810486549,0.64272878381755,0.641213454551726,0.639720181549576,0.63836321351675,0.637376179369594,0.637376179369594, + +00:08:43, +0.000896505068262958,0.000896505068262958,0.000899552959984813,0.000898348101762882,0.000894661377508361,0.000890073499198326,0.000885668577204439,0.000882192791692149,0.000880250741836061,0.000880250741836061, +0.000896505068262958,0.000896505068262958,0.000899552959984813,0.000898348101762882,0.000894661377508361,0.000890073499198326,0.000885668577204439,0.000882192791692149,0.000880250741836061,0.000880250741836061, +0.00273879560704298,0.00273879560704298,0.00274570599360544,0.00274159344607326,0.00273103874880904,0.00271814392121505,0.00270576470045572,0.00269594776644904,0.00269043406643721,0.00269043406643721, +0.00912856918663125,0.00912856918663125,0.00914481245489502,0.00913002756856541,0.00909707959656113,0.00905752909635108,0.00901954380965478,0.00898923599439809,0.00897209754726336,0.00897209754726336, +0.027610113238291,0.027610113238291,0.0276409386765207,0.0275938734197425,0.0275011539419727,0.0273918264307717,0.0272866941284172,0.0272021080575054,0.0271537944391467,0.0271537944391467, +0.0742076320916865,0.0742076320916865,0.0742467334099472,0.0741164184017961,0.0738869815335213,0.0736215409761368,0.0733656519854996,0.0731572243002219,0.0730362060839854,0.0730362060839854, +0.175429585763108,0.175429585763108,0.175435128703606,0.175124441352457,0.174631685934428,0.174073538777748,0.17353313688197,0.173084347878139,0.172815897009022,0.172815897009022, +0.361588703157364,0.361588703157364,0.361467790601261,0.360833415917078,0.359925368512984,0.358923210008544,0.357946038774201,0.357107573599946,0.356574810211502,0.356574810211502, +0.64592766408379,0.64592766408379,0.645600455085459,0.644474323636178,0.643049483779497,0.641535287064396,0.640043081079064,0.638687125220627,0.637700892066075,0.637700892066075, + +00:08:44, +0.000905039145373836,0.000905039145373836,0.000908110519407398,0.00090690050401584,0.000903189338903713,0.000898567994485874,0.000894129538603176,0.000890627106078104,0.000888670324455278,0.000888670324455278, +0.000905039145373836,0.000905039145373836,0.000908110519407398,0.00090690050401584,0.000903189338903713,0.000898567994485874,0.000894129538603176,0.000890627106078104,0.000888670324455278,0.000888670324455278, +0.00275987612838683,0.00275987612838683,0.00276682621105062,0.0027626991037658,0.00275209156249877,0.00273912491302636,0.0027266733514908,0.00271679874814031,0.00271125316559516,0.00271125316559516, +0.00918452601034874,0.00918452601034874,0.00920083330418812,0.00918600834119118,0.0091529411269976,0.00911322887507385,0.0090750794316809,0.00904464034715891,0.00902742942943219,0.00902742942943219, +0.0277399636412595,0.0277399636412595,0.0277708569059474,0.027723705742692,0.027630765520766,0.0275211354399131,0.0274156921982091,0.0273308569228611,0.027282406462075,0.027282406462075, +0.0744593628066726,0.0744593628066726,0.0744984699209879,0.0743680320827728,0.0741383036498958,0.0738724440692518,0.0736161132690998,0.0734073321749718,0.0732861237239536,0.0732861237239536, +0.175820037434456,0.175820037434456,0.175825469170646,0.175514740979349,0.175021825644634,0.17446336716324,0.173922606184878,0.173473539341003,0.173204956478721,0.173204956478721, +0.362038522213488,0.362038522213488,0.361917507742767,0.361283465209666,0.360375781669558,0.359373863521495,0.35839686036791,0.357558579737546,0.357025994163877,0.357025994163877, +0.646245019183488,0.646245019183488,0.645918092724932,0.644792985289723,0.643369329877262,0.64185626418902,0.640365124052363,0.639010179002413,0.638024745378835,0.638024745378835, + +00:08:45, +0.000913631169082504,0.000913631169082504,0.00091672612655794,0.000915510954244337,0.000911775264919719,0.00090712031889604,0.000902648182067053,0.000899118982337959,0.000897147402489884,0.000897147402489884, +0.000913631169082504,0.000913631169082504,0.00091672612655794,0.000915510954244337,0.000911775264919719,0.00090712031889604,0.000902648182067053,0.000899118982337959,0.000897147402489884,0.000897147402489884, +0.00278105975471645,0.00278105975471645,0.00278804961224795,0.00278390794501648,0.00277324747433408,0.00276020885096045,0.00274768477462611,0.00273775235689649,0.00273217481165201,0.00273217481165201, +0.00924066253699399,0.00924066253699399,0.00925703381405139,0.00924216879591787,0.0092089823485068,0.0091691082976883,0.0091307946092628,0.00910022417220766,0.00908294073803357,0.00908294073803357, +0.0278700341150494,0.0278700341150494,0.0279009948959898,0.0278537579536056,0.0277605973759277,0.0276506651814259,0.0275449114026422,0.0274598272243663,0.0274112400876167,0.0274112400876167, +0.0747111688710814,0.0747111688710814,0.0747502812587569,0.0746197209505283,0.074389702076745,0.0741234249930293,0.0738666538874525,0.0736575205647749,0.0735361225235711,0.0735361225235711, +0.17621012172795,0.17621012172795,0.176215441988285,0.175904673418177,0.175411599816957,0.174852832530548,0.174311715112742,0.173862372512133,0.173593658756082,0.173593658756082, +0.362487459807866,0.362487459807866,0.3623663435539,0.36173263277838,0.36082531373702,0.359823637725525,0.358846804755801,0.358008710230472,0.357476303115948,0.357476303115948, +0.646561530172567,0.646561530172567,0.646234885302446,0.645110799171439,0.643688325841078,0.642176389654942,0.640686314195925,0.63933237858804,0.638347743036658,0.638347743036658, + +00:08:46, +0.000922281346990522,0.000922281346990522,0.000925399988958911,0.000924179660047798,0.000920419363293023,0.000915730680279625,0.000911224715503278,0.000907668628391037,0.000905682183856122,0.000905682183856122, +0.000922281346990522,0.000922281346990522,0.000925399988958911,0.000924179660047798,0.000920419363293023,0.000915730680279625,0.000911224715503278,0.000907668628391037,0.000905682183856122,0.000905682183856122, +0.00280234662937107,0.00280234662937107,0.00280937634001491,0.00280522011271325,0.00279450662773438,0.00278139587920676,0.00276879911481238,0.00275880873823939,0.00275319915042564,0.00275319915042564, +0.0092969785968091,0.0092969785968091,0.00931341381376461,0.00929850876205474,0.0092652030915055,0.00922516719651538,0.00918668917680477,0.00915598730559266,0.00913863130998078,0.00913863130998078, +0.0280003238056857,0.0280003238056857,0.0280313517924512,0.0279840291980534,0.027890648653757,0.0277804148036128,0.0276743508926022,0.0275890181150164,0.0275402944698458,0.0275402944698458, +0.0749630489184662,0.0749630489184662,0.0750021660591235,0.0748714836397865,0.0746411754461152,0.0743744823772684,0.0741172724690599,0.0739077880972301,0.0737862011098062,0.0737862011098062, +0.176599838327685,0.176599838327685,0.176605046844468,0.176294238354621,0.175801008128515,0.175241934545317,0.174700463320276,0.174250847037679,0.1739820034825,0.1739820034825, +0.362935518479344,0.362935518479344,0.362814300575349,0.362180921164389,0.361273967248043,0.360272535137776,0.359295874438474,0.358457967566534,0.35792573954919,0.35792573954919, +0.646877200735531,0.646877200735531,0.646550836508117,0.645427768983245,0.644006475378835,0.642495667169212,0.641006655213969,0.639653727681249,0.638669888746139,0.638669888746139, + +00:08:47, +0.000930989886400004,0.000930989886400004,0.000934132313831019,0.000932906828723403,0.000929121841459442,0.000924399286189452,0.000919859346524386,0.000916276251864703,0.000914274876179748,0.000914274876179748, +0.000930989886400004,0.000930989886400004,0.000934132313831019,0.000932906828723403,0.000929121841459442,0.000924399286189452,0.000919859346524386,0.000916276251864703,0.000914274876179748,0.000914274876179748, +0.002823736894542,0.002823736894542,0.0028308065360209,0.00282663574859528,0.00281586916497005,0.00280268614080675,0.0027900165158543,0.00277996803654676,0.00277432632659099,0.00277432632659099, +0.00935347401833854,0.00935347401833854,0.00936997313091658,0.00935502806721954,0.00932160318471322,0.00928140540217115,0.00924276296699946,0.00921192958164608,0.00919450098046892,0.00919450098046892, +0.0281308318600107,0.0281308318600107,0.0281619267419647,0.028114518622437,0.0280209185013725,0.0279103834555724,0.0278040098197456,0.027718428748559,0.0276695687635795,0.0276695687635795, +0.0752150015895755,0.0752150015895755,0.0752541229651537,0.0751233187924763,0.074892722397255,0.0746256148589508,0.0743679676495778,0.0741581334070681,0.0740363581167498,0.0740363581167498, +0.176989186925985,0.176989186925985,0.176994283435346,0.17668343548258,0.176190050264691,0.175630672881498,0.17508885047053,0.174638962572148,0.174369990307742,0.174369990307742, +0.363382700758864,0.363382700758864,0.363261381339872,0.362628332900937,0.361721744727451,0.360720558267649,0.359744071908903,0.358906354226003,0.358374305937586,0.358374305937586, +0.647192034534824,0.647192034534824,0.646865950009956,0.645743898404888,0.644323782176246,0.642814100416752,0.641326150788648,0.639974229963756,0.638991186191853,0.638991186191853, + +00:08:48, +0.000939756994309734,0.000939756994309734,0.000942923308089334,0.000941692667262212,0.000937882906550083,0.000933126343876476,0.000928552282444339,0.000924942060090454,0.000922925686792113,0.000922925686792113, +0.000939756994309734,0.000939756994309734,0.000942923308089334,0.000941692667262212,0.000937882906550083,0.000933126343876476,0.000928552282444339,0.000924942060090454,0.000922925686792113,0.000922925686792113, +0.00284523069127402,0.00284523069127402,0.00285234034078878,0.00284815499325436,0.0028373352271639,0.00282407977765529,0.00281133712041192,0.00280123039505359,0.00279555648368141,0.00279555648368141, +0.00941014862844337,0.00941014862844337,0.00942671159141932,0.0094117265373526,0.00937818245516641,0.00933782274358082,0.0092990158108419,0.00926805083299806,0.00925054958298892,0.00925054958298892, +0.0282615574257015,0.0282615574257015,0.0282927188920112,0.0282452253740074,0.0281514060667296,0.0280405702872173,0.0279338873365179,0.0278480582795121,0.0277990621243958,0.0277990621243958, +0.0754670255323279,0.0754670255323279,0.0755061506270853,0.0753752250577061,0.0751443415765909,0.0748768210822158,0.0746187380717914,0.0744085551361273,0.074286592185591,0.074286592185591, +0.177378167223327,0.177378167223327,0.177383151465198,0.177072264504101,0.176578725919059,0.17601904722127,0.175476876234807,0.175026718778326,0.174757618889872,0.174757618889872, +0.363829009169468,0.363829009169468,0.363707588372304,0.363074870513348,0.362168648692221,0.361167709616815,0.36019139965244,0.359353872681618,0.358822004747638,0.358822004747638, +0.647506035210996,0.647506035210996,0.647180229454046,0.646059191094115,0.644640249897015,0.643131693060522,0.641644804580209,0.640293889095409,0.639311639036517,0.639311639036517, + +00:08:49, +0.000948582877411309,0.000948582877411309,0.000951773178339443,0.000950537382345318,0.000946702765387484,0.000941912060285906,0.000937303730274638,0.000933666260100027,0.000931634822726274,0.000931634822726274, +0.000948582877411309,0.000948582877411309,0.000951773178339443,0.000950537382345318,0.000946702765387484,0.000941912060285906,0.000937303730274638,0.000933666260100027,0.000931634822726274,0.000931634822726274, +0.00286682815946691,0.00286682815946691,0.00287397789369626,0.00286977798613645,0.00285890495429265,0.00284557693050213,0.00283276107000204,0.00282259595585355,0.00281688976408996,0.00281688976408996, +0.00946700225231523,0.00946700225231523,0.00948362901952205,0.00946860399673096,0.0094349407282325,0.00939441904799294,0.00935544753764365,0.00932435089059069,0.00930677694934157,0.00930677694934157, +0.0283924996512872,0.0283924996512872,0.0284237273909365,0.0283761486008819,0.028282110498638,0.0281709744492913,0.0280639825961708,0.0279779058631814,0.0279287737086517,0.0279287737086517, +0.0757191194017874,0.0757191194017874,0.075758247702303,0.075627201091739,0.0753960316377022,0.075128099698336,0.074869582385591,0.0746590519333298,0.0745369019645936,0.0745369019645936, +0.177766778928264,0.177766778928264,0.177771650646355,0.177460725129295,0.176967034793298,0.176407057254963,0.17586454029259,0.175414115327201,0.175144888895167,0.175144888895167, +0.364274446226313,0.364274446226313,0.364152924189567,0.363520536519038,0.362614681651497,0.361613991679224,0.360637860146824,0.359800525398593,0.35926883843837,0.35926883843837, +0.647819206382868,0.647819206382868,0.647493678464694,0.646373650686832,0.644955882182997,0.643448448741685,0.641962620227164,0.640612708714359,0.639631250921154,0.639631250921154, + +00:08:50, +0.000957467742085301,0.000957467742085301,0.000960682130873624,0.000959441180340022,0.000955581624481779,0.000950756642053361,0.000946113896720467,0.000942449058621535,0.000940402490713123,0.000940402490713123, +0.000957467742085301,0.000957467742085301,0.000960682130873624,0.000959441180340022,0.000955581624481779,0.000950756642053361,0.000946113896720467,0.000942449058621535,0.000940402490713123,0.000940402490713123, +0.00288852943787689,0.00288852943787689,0.00289571933297752,0.00289150486554321,0.00288057848518844,0.00286717773895334,0.00285428850499964,0.00284406485990033,0.0028383263090709,0.0028383263090709, +0.00952403471349042,0.00952403471349042,0.00954072523782529,0.00952566026798242,0.00949187782762402,0.00945119414099335,0.00941205797504671,0.009380829583692,0.00936318290965145,0.00936318290965145, +0.0285236576861666,0.0285236576861666,0.0285549513879682,0.0285072874520615,0.0284130309467786,0.0283015950933868,0.0281942947527802,0.0281079706556782,0.0280587026735007,0.0280587026735007, +0.0759712818601386,0.0759712818601386,0.0760104128553135,0.0758792455579677,0.0756477912412959,0.0753794493656926,0.0751204992479476,0.0749096224546577,0.0747872861090719,0.0747872861090719, +0.178155021757345,0.178155021757345,0.178159780699118,0.177848817076265,0.177354976597124,0.176794702680978,0.176251842331461,0.175801151897882,0.175531799998047,0.175531799998047, +0.364719014436678,0.364719014436678,0.364597391300685,0.363965333427526,0.363059846106598,0.362059406941112,0.36108345586219,0.360246314834625,0.359714809461337,0.359714809461337, +0.648131551647689,0.648131551647689,0.647806300644602,0.646687280797269,0.645270682654367,0.643764371079767,0.642279601346444,0.640930692437217,0.639950025465252,0.639950025465252, + +00:08:51, +0.000966411794397451,0.000966411794397451,0.000969650371667051,0.000968404267296034,0.000964519690026893,0.000959660295501049,0.000954982988176859,0.000951290662075623,0.000949228897177545,0.000949228897177545, +0.000966411794397451,0.000966411794397451,0.000969650371667051,0.000968404267296034,0.000964519690026893,0.000959660295501049,0.000954982988176859,0.000951290662075623,0.000949228897177545,0.000949228897177545, +0.0029103346641182,0.0029103346641182,0.00291756479572468,0.00291333576863352,0.00290235595754041,0.00288888234147287,0.0028759195646394,0.00286563724700917,0.00285986625874105,0.00285986625874105, +0.0095812458338639,0.0095812458338639,0.00959800006729484,0.00958289517209954,0.00954899357541256,0.00950814784651925,0.00946884694903756,0.00943748673990987,0.00941976729238085,0.00941976729238085, +0.0286550306806245,0.0286550306806245,0.0286863900332328,0.0286386410774475,0.028544166561721,0.0284324313719619,0.0283248229612625,0.0282382518139361,0.0281888481769094,0.0281888481769094, +0.0762235115766615,0.0762235115766615,0.0762626447577201,0.0761313571268894,0.075899619055182,0.0756308687497505,0.0753714873228887,0.0751602653631281,0.0750377432813666,0.0750377432813666, +0.178542895435039,0.178542895435039,0.178547541351688,0.178236540071026,0.177742551048205,0.17718198320571,0.176638782047025,0.176187828177525,0.175918351880993,0.175918351880993, +0.365162716299975,0.365162716299975,0.365040992206791,0.364409263740444,0.363504144551029,0.36250395788101,0.361528189261078,0.360691243439898,0.36015992026063,0.36015992026063, +0.648443074581305,0.648443074581305,0.648118099575027,0.647000085018145,0.645584654909776,0.64407946367282,0.642595751533565,0.641247843859213,0.640267966266924,0.640267966266924, + +00:08:52, +0.00097541524009488,0.00097541524009488,0.000978678106374017,0.000977426848941699,0.000973517167896756,0.000968623226633968,0.000963911210724889,0.000960191276571659,0.000958114248234601,0.000958114248234601, +0.00097541524009488,0.00097541524009488,0.000978678106374017,0.000977426848941699,0.000973517167896756,0.000968623226633968,0.000963911210724889,0.000960191276571659,0.000958114248234601,0.000958114248234601, +0.0029322439746646,0.0029322439746646,0.00293951441788944,0.00293527083142512,0.00292423750789621,0.00291069087538408,0.00289765438701717,0.00288731325585826,0.00288150975208128,0.00288150975208128, +0.00963863543370322,0.00963863543370322,0.00965545332727568,0.00964030852845359,0.00960628779204281,0.00956527998687314,0.00952581428396104,0.00949432218520599,0.00947652992434366,0.00947652992434366, +0.028786617785849,0.028786617785849,0.0288180424777726,0.0287702086278585,0.0286755164949397,0.0285634824383572,0.0284555663773926,0.0283687484957288,0.0283192093776757,0.0283192093776757, +0.0764758072277069,0.0764758072277069,0.0765149420881977,0.0763835344760805,0.0761515137542482,0.0758823565230338,0.0756225452814736,0.0754109793287699,0.0752882721508209,0.0752882721508209, +0.17893039969366,0.17893039969366,0.178934932340085,0.178623893847429,0.178129757872088,0.177568898543475,0.177025359142833,0.176574143861255,0.176304544234472,0.176304544234472, +0.36560555430776,0.36560555430776,0.365483729401136,0.364852329951551,0.363947579470491,0.362947646969756,0.36197206279844,0.3611353136571,0.360604173272889,0.360604173272889, +0.648753778738311,0.648753778738311,0.648429078815939,0.647312066920823,0.645897802526517,0.644393730097579,0.642911074362781,0.641564166554358,0.640585076903067,0.640585076903067, + +00:08:53, +0.000984478284602329,0.000984478284602329,0.000987765540324185,0.000986509130680247,0.000982574263641543,0.000977645641136135,0.000972898770127885,0.000969151107903935,0.000967058749685728,0.000967058749685728, +0.000984478284602329,0.000984478284602329,0.000987765540324185,0.000986509130680247,0.000982574263641543,0.000977645641136135,0.000972898770127885,0.000969151107903935,0.000967058749685728,0.000967058749685728, +0.00295425750485103,0.00295425750485103,0.00296156833428467,0.00295731018879621,0.00294622327166371,0.00293260347687133,0.00291949310909156,0.00290909302399035,0.00290325692693803,0.00290325692693803, +0.00969620333166242,0.00969620333166242,0.00971308483550595,0.00969790015480849,0.00966376029634641,0.00962259038273672,0.00958295980253427,0.0095513357439096,0.00953347063071919,0.00953347063071919, +0.028918418153948,0.028918418153948,0.0289499078735614,0.0289019892550466,0.0288070798988311,0.0286947474468125,0.0285865241578201,0.0284994598596861,0.0284497854354447,0.0284497854354447, +0.0767281674966713,0.0767281674966713,0.0767673035324677,0.0766357762901716,0.0764034740204347,0.0761339113651008,0.0758736718017691,0.0756617630285988,0.0755388713937562,0.0755388713937562, +0.179317534273292,0.179317534273292,0.179321953408075,0.179010878147086,0.178516596802123,0.177955448416432,0.177411573330309,0.176960098652095,0.176690376756863,0.176690376756863, +0.366047530943745,0.366047530943745,0.365925605369108,0.365294534546739,0.364390153342891,0.363390476670504,0.362415078921652,0.361578527921422,0.361047570927306,0.361047570927306, +0.649063667652215,0.649063667652215,0.648739241906178,0.647623230055473,0.646210129060679,0.644707173909626,0.643225573387249,0.641879664075597,0.64090136092952,0.64090136092952, + +00:08:54, +0.000993601133018423,0.000993601133018423,0.000996912878518869,0.00099565131758607,0.000991691182483939,0.000986727744366835,0.000981945871827674,0.000978170361547906,0.000976062607014976,0.000976062607014976, +0.000993601133018423,0.000993601133018423,0.000996912878518869,0.00099565131758607,0.000991691182483939,0.000986727744366835,0.000981945871827674,0.000978170361547906,0.000976062607014976,0.000976062607014976, +0.00297637538887519,0.00297637538887519,0.0029837266785861,0.00297945397448711,0.00296831338311255,0.00295462028098157,0.00294143586668546,0.00293097668781418,0.00292510792002482,0.00292510792002482, +0.0097539493447959,0.0097539493447959,0.00977089440813072,0.00975566986733468,0.00972141090555592,0.00968007885318477,0.00964028332586044,0.00960852723873138,0.00959058923506594,0.00959058923506594, +0.0290504309379654,0.0290504309379654,0.0290819853735215,0.0290339821117136,0.0289388559267294,0.0288262255524836,0.0287176954600858,0.0286303850653113,0.0285805755107259,0.0285805755107259, +0.0769805910739716,0.0769805910739716,0.0770197277832729,0.0768880812608217,0.0766554985427094,0.0763855319625191,0.0761248655688251,0.0759126151465934,0.0757895396934483,0.0757895396934483, +0.179704298921714,0.179704298921714,0.179708604307093,0.179397492719297,0.178903067579388,0.178341632554506,0.177797424328675,0.177345692260885,0.17707584915438,0.17707584915438, +0.366488648683811,0.366488648683811,0.366366622588236,0.365735880004048,0.364831868638353,0.363832449438733,0.362857240070519,0.362020888660574,0.361490115645637,0.361490115645637, +0.649372744835592,0.649372744835592,0.649048592363617,0.64793357795123,0.646521638047305,0.645019798643539,0.643539252139179,0.642194339954968,0.641216821881216,0.641216821881216, + +00:08:55, +0.00100278399011196,0.00100278399011196,0.00100612032562733,0.00100485361440102,0.00100086812931543,0.000995869741356903,0.000991052720940843,0.000987249242656443,0.000985126025385257,0.000985126025385257, +0.00100278399011196,0.00100278399011196,0.00100612032562733,0.00100485361440102,0.00100086812931543,0.000995869741356903,0.000991052720940843,0.000987249242656443,0.000985126025385257,0.000985126025385257, +0.00299859775979923,0.00299859775979923,0.00300598958333394,0.00300170232110196,0.00299050797537587,0.00297674142162602,0.00296348279448769,0.00295296438260617,0.00294706286692381,0.00294706286692381, +0.00981187328857223,0.00981187328857223,0.00982888185971586,0.00981361748062294,0.00977923943531856,0.00973774521569896,0.00969778467344264,0.00966589649077719,0.00964788555933537,0.00964788555933537, +0.0291826552918973,0.0291826552918973,0.0292142741315396,0.0291661863515275,0.0290708437329234,0.0289579159114581,0.0288490794426385,0.0287615232729974,0.0287115787649096,0.0287115787649096, +0.0772330766570204,0.0772330766570204,0.0772722135403522,0.0771404480866939,0.0769075860170425,0.0766372170088409,0.0763761252746498,0.0761635343736709,0.0760402757401024,0.0760402757401024, +0.180090693394322,0.180090693394322,0.180094884796174,0.179783737320973,0.179289169952616,0.178727450695318,0.178182911864871,0.177730924406212,0.177460961141001,0.177460961141001, +0.366928909996014,0.366928909996014,0.366806783528205,0.366176368793677,0.36527272781923,0.364273567722258,0.363298548677289,0.362462398294789,0.361931809842207,0.361931809842207, +0.64968101378024,0.64968101378024,0.649357133685312,0.648243114116346,0.646832333000554,0.645331607813054,0.643852114129992,0.642508197703754,0.64153146327234,0.64153146327234, + +00:08:56, +0.00101202706031823,0.00101202706031823,0.00101538808598309,0.00101411622553073,0.00101010530869263,0.00100507183680502,0.00100021952225503,0.000996387956056118,0.000994249209634627,0.000994249209634627, +0.00101202706031823,0.00101202706031823,0.00101538808598309,0.00101411622553073,0.00101010530869263,0.00100507183680502,0.00100021952225503,0.000996387956056118,0.000994249209634627,0.000994249209634627, +0.00302092474955141,0.00302092474955141,0.00302835717993464,0.00302405536011043,0.00301280718045202,0.0029989670315818,0.0029856340260546,0.00297505624251195,0.00296912190208742,0.00296912190208742, +0.00986997497688791,0.00986997497688791,0.00988704700326176,0.00987174280769814,0.00983724569971008,0.00979558928618165,0.00975546366319756,0.00972344331956175,0.00970535942388556,0.00970535942388556, +0.029315090370708,0.029315090370708,0.0293467733024823,0.0292986011291378,0.0292030424726717,0.0290898176807717,0.0289806752648511,0.0288928736440431,0.0288427943602832,0.0288427943602832, +0.0774856229502006,0.0774856229502006,0.0775247595104152,0.077392875473429,0.0771597351463813,0.076888965204578,0.0766274496181851,0.0764145194076623,0.0762910782308296,0.0762910782308296, +0.180476717454063,0.180476717454063,0.180480794641871,0.180169611716563,0.179674903678118,0.179112902584108,0.178568035673489,0.178115794814335,0.17784571243839,0.17784571243839, +0.367368317340604,0.367368317340604,0.367246090650869,0.366616003377998,0.365712733340118,0.364713833961242,0.363739007166663,0.362903059236837,0.362372655923925,0.362372655923925, +0.649988477957334,0.649988477957334,0.649664869347658,0.64855184203835,0.647142217413846,0.645642604911216,0.644164162850472,0.642821240812637,0.641845288596477,0.641845288596477, + +00:08:57, +0.00102133054773534,0.00102133054773534,0.00102471636358032,0.00102343935504096,0.00101940292483358,0.00101433423507404,0.00100944648022523,0.00100558670624351,0.00100343236427259,0.00100343236427259, +0.00102133054773534,0.00102133054773534,0.00102471636358032,0.00102343935504096,0.00101940292483358,0.00101433423507404,0.00100944648022523,0.00100558670624351,0.00100343236427259,0.00100343236427259, +0.00304335648892785,0.00304335648892785,0.00305082959866261,0.00304651322184947,0.00303521112920625,0.00302129724249367,0.0030078896938118,0.00299725240054805,0.00299128515883993,0.00299128515883993, +0.00992825422208112,0.00992825422208112,0.0099453896502171,0.00993004566003302,0.00989542951124846,0.0098536108789696,0.00981332011146924,0.00978116754302235,0.00976301064749493,0.00976301064749493, +0.0294477353303459,0.0294477353303459,0.0294794820422121,0.0294312256001916,0.029335451302219,0.0292219300184241,0.0291124820870362,0.0290244353406694,0.0289742214600472,0.0289742214600472, +0.0777382286648404,0.0777382286648404,0.077777364407117,0.0776453621336209,0.0774119446406251,0.0771407752571767,0.0768788373052823,0.0766655689532887,0.0765419458696222,0.0765419458696222, +0.180862370871356,0.180862370871356,0.180866333618192,0.180555115677981,0.180060268519711,0.179497987973662,0.178952795496696,0.178500303219112,0.178230102775828,0.178230102775828, +0.367806873170031,0.367806873170031,0.367684546410261,0.367054786211565,0.366151887647861,0.365153250588203,0.364178617955801,0.363342873892032,0.362812656290288,0.362812656290288, +0.650295140817579,0.650295140817579,0.649971802806546,0.648859765184196,0.647451294760024,0.645952793410531,0.644475401770919,0.643133472751849,0.642158301326767,0.642158301326767, + +00:08:58, +0.00103069465612058,0.00103069465612058,0.00103410536207015,0.00103282320665401,0.00102876118161418,0.00102365714018735,0.00101873379897016,0.00101484569738153,0.00101267569347642,0.00101267569347642, +0.00103069465612058,0.00103069465612058,0.00103410536207015,0.00103282320665401,0.00102876118161418,0.00102365714018735,0.00101873379897016,0.00101484569738153,0.00101267569347642,0.00101267569347642, +0.00306589310759424,0.00306589310759424,0.00307340696866201,0.00306907603552509,0.00305771995137253,0.00304373218487577,0.00303024992905579,0.00301955298860354,0.00301355276937915,0.00301355276937915, +0.00998671083494533,0.00998671083494533,0.0100039096104924,0.00998852584756186,0.00995379068090761,0.00991180980684767,0.00987135383304272,0.00983906897753245,0.00982083904737575,0.00982083904737575, +0.0295805893277588,0.0295805893277588,0.029612399507603,0.0295640589213489,0.0294680693788114,0.0293542520833948,0.0292444990704624,0.0291562075260349,0.0291058592283311,0.0291058592283311, +0.0779908925191881,0.0779908925191881,0.0780300269510331,0.0778979067867909,0.0776642132165996,0.0773926458809931,0.077130287048677,0.0769166817221362,0.0767928773673297,0.0767928773673297, +0.18124765342402,0.18124765342402,0.181251501506521,0.180940248984536,0.180445264248649,0.179882706624242,0.179337191084162,0.178884449361927,0.178614131890137,0.178614131890137, +0.368244579928964,0.368244579928964,0.368122153252609,0.367492719741128,0.366590193181569,0.365591820028031,0.364617383454337,0.363781844658242,0.363251813333393,0.363251813333393, +0.650601005791359,0.650601005791359,0.650277937497506,0.649166887000421,0.6477595684915,0.646262176763121,0.6447858343413,0.643444896971323,0.642470504916057,0.642470504916057, + +00:08:59, +0.00104011958888683,0.00104011958888683,0.00104355528475715,0.00104226798374506,0.00103818028256451,0.00103304075582523,0.0010280816822686,0.0010241651332958,0.00102197940108752,0.00102197940108752, +0.00104011958888683,0.00104011958888683,0.00104355528475715,0.00104226798374506,0.00103818028256451,0.00103304075582523,0.0010280816822686,0.0010241651332958,0.00102197940108752,0.00102197940108752, +0.00308853473408765,0.00308853473408765,0.00309608941794854,0.00309174392921418,0.00308033377555531,0.00306627198811335,0.00305271486195573,0.00304195813744173,0.00303592486477809,0.00303592486477809, +0.010045344624743,0.010045344624743,0.0100626066924739,0.0100471831786941,0.010012329018131,0.00997018588106245,0.00992956464115759,0.00989714743791528,0.00987884443918781,0.00987884443918781, +0.0297136515209095,0.0297136515209095,0.0297455248565552,0.0296971002502978,0.029600895860712,0.0294867830356583,0.0293767253773695,0.0292881893642519,0.0292377068302094,0.0292377068302094, +0.0782436132383869,0.0782436132383869,0.0782827458696339,0.0781505081593625,0.0779165395980321,0.0776445757972678,0.0773817975679648,0.0771678564326318,0.0770438714416339,0.0770438714416339, +0.181632564897206,0.181632564897206,0.181636298095548,0.181325011422858,0.180829890643545,0.180267058303511,0.179721222192987,0.17926823299162,0.178997799525612,0.178997799525612, +0.368681440054295,0.368681440054295,0.368558913616345,0.367929806405647,0.367027652372627,0.366029544697996,0.365055306064387,0.3642199739259,0.363690129437945,0.363690129437945, +0.650906076288893,0.650906076288893,0.650583276835867,0.649473210913292,0.64806704204041,0.646570758400869,0.645095463991395,0.643755516900841,0.642781902797042,0.642781902797042, + +00:09:00, +0.00104960554909895,0.00104960554909895,0.00105306633459569,0.00105177388933863,0.0010476604308653,0.00104248528532127,0.00103749033355576,0.001033545217471,0.0010313436906078,0.0010313436906078, +0.00104960554909895,0.00104960554909895,0.00105306633459569,0.00105177388933863,0.0010476604308653,0.00104248528532127,0.00103749033355576,0.001033545217471,0.0010313436906078,0.0010313436906078, +0.00311128149581835,0.00311128149581835,0.00311887707341126,0.00311451702986633,0.00310305272923136,0.00308891678046461,0.00307528462155519,0.00306446797670195,0.00305840157498671,0.00305840157498671, +0.0101041553992192,0.0101041553992192,0.0101214807030368,0.0101060174603279,0.0100710443308454,0.0100287389113358,0.00998795234752163,0.00995540273745735,0.00993702663705185,0.00993702663705185, +0.029846921068791,0.029846921068791,0.0298788572480107,0.0298303487457697,0.0297339299072157,0.0296195220361994,0.0295091601709842,0.0294203800204014,0.0293697634317166,0.0293697634317166, +0.0784963895544498,0.0784963895544498,0.0785355198972591,0.0784031649846358,0.0781689225155257,0.0778965637341011,0.0776333675895761,0.0774190918100188,0.0772949268170249,0.0772949268170249, +0.182017105083324,0.182017105083324,0.1820207231812,0.181709402786825,0.181214147490304,0.180651042786462,0.180104888587632,0.179651653864415,0.179381105433946,0.179381105433946, +0.369117455975163,0.369117455975163,0.368994829932123,0.368366048636304,0.367464267644712,0.36646642700776,0.365492388180564,0.364657264078015,0.36412760698127,0.36412760698127, +0.651210355700377,0.651210355700377,0.650887824216899,0.649778740328955,0.648373718818761,0.646878541735573,0.64540429413095,0.644065335950182,0.643092498382422,0.643092498382422, + +00:09:01, +0.00105915273947022,0.00105915273947022,0.0010626387141864,0.00106134112610502,0.00105720182934433,0.00105199093165879,0.00104695995591976,0.0010429861530473,0.00104076876519608,0.00104076876519608, +0.00105915273947022,0.00105915273947022,0.0010626387141864,0.00106134112610502,0.00105720182934433,0.00105199093165879,0.00104695995591976,0.0010429861530473,0.00104076876519608,0.00104076876519608, +0.00313413351907159,0.00313413351907159,0.00314177006081446,0.00313739546330571,0.00312587693875163,0.00311166668906248,0.00309795933577394,0.00308708263490123,0.00308098302883363,0.00308098302883363, +0.0101631429646148,0.0101631429646148,0.0101805314475589,0.0101650284978639,0.0101299364254742,0.0100874687058786,0.0100465167623243,0.010013834687922,0.00999538545356309,0.00999538545356309, +0.0299803971314412,0.0299803971314412,0.030012395841968,0.0299638035675541,0.0298671706786645,0.0297524682470288,0.0296418026155351,0.0295527786605489,0.0295020281998627,0.0295020281998627, +0.0787492202062341,0.0787492202062341,0.0787883477750929,0.078655876002762,0.0784213607065344,0.0781486084264277,0.0778849958467518,0.0776703865863324,0.0775460422247767,0.0775460422247767, +0.182401273781972,0.182401273781972,0.182404776566567,0.182093422877496,0.181598034582051,0.18103465985535,0.180488190039848,0.180034711743848,0.179764049374163,0.179764049374163, +0.369552630112956,0.369552630112956,0.369429904622827,0.368801448856516,0.367900041413798,0.366902469359388,0.365928632189983,0.36509371749018,0.364564248333325,0.364564248333325, +0.651513847396136,0.651513847396136,0.651191583015965,0.650083478633587,0.648679602218578,0.647185530159089,0.645712328149822,0.64437435750927,0.64340229506504,0.64340229506504, + +00:09:02, +0.00106876136235882,0.00106876136235882,0.00107227262577269,0.0010709698963568,0.00106680468047292,0.00106155789746728,0.00105649075209801,0.00105248814281677,0.00105025482766451,0.00105025482766451, +0.00106876136235882,0.00106876136235882,0.00107227262577269,0.0010709698963568,0.00106680468047292,0.00106155789746728,0.00105649075209801,0.00105248814281677,0.00105025482766451,0.00105025482766451, +0.00315709092900954,0.00315709092900954,0.00316476850479956,0.00316037935423296,0.00314880652934312,0.0031345218399165,0.00312073913140977,0.00310980223943617,0.00310366935402793,0.00310366935402793, +0.0102223071256807,0.0102223071256807,0.0102397587299343,0.0102242160952182,0.0101890051069511,0.010146375071404,0.0101052576942501,0.0100724430995626,0.0100539206998046,0.0100539206998046, +0.0301140788699582,0.0301140788699582,0.0301461397994969,0.0300974638765134,0.0300006173364621,0.0298856208311972,0.0297746518762678,0.0296853844517592,0.0296345003026486,0.0296345003026486, +0.0790021039394162,0.0790021039394162,0.079041228251138,0.0789086399607183,0.0786738529153374,0.0784007086159919,0.0781366810795186,0.0779217395003749,0.0777972164029223,0.0777972164029223, +0.182785070799865,0.182785070799865,0.182788458061835,0.182477071503042,0.181981551719061,0.181417909299617,0.180871126328603,0.180417406400698,0.180146631112545,0.180146631112545, +0.369986964881332,0.369986964881332,0.369864140103588,0.369236009481951,0.368334976088176,0.367337674147363,0.366364040472278,0.365529336530588,0.365000055856705,0.365000055856705, +0.651816554726767,0.651816554726767,0.651494556588663,0.650387429193539,0.648984695612055,0.647491727043481,0.646019569418124,0.644682584948315,0.643711296218032,0.643711296218032, + +00:09:03, +0.0010784316197643,0.0010784316197643,0.00108196827123718,0.00108066040204528,0.00107646918636241,0.00107118638501891,0.00106608292447368,0.00106205138921987,0.00105980208047503,0.00105980208047503, +0.0010784316197643,0.0010784316197643,0.00108196827123718,0.00108066040204528,0.00107646918636241,0.00107118638501891,0.00106608292447368,0.00106205138921987,0.00105980208047503,0.00105980208047503, +0.00318015384967313,0.00318015384967313,0.00318787252888701,0.00318346882622713,0.00317184162511079,0.00315748235791472,0.00314362413414033,0.00313262691658469,0.00312646067716094,0.00312646067716094, +0.0102816476856903,0.0102816476856903,0.0102991623525866,0.0102835800548365,0.0102482501787335,0.0102054578131408,0.0101641749504922,0.0101312277811365,0.0101126321853608,0.0101126321853608, +0.0302479654465142,0.0302479654465142,0.0302800882827527,0.0302313288345973,0.0301342690430885,0.0300189789528109,0.0299077071194598,0.0298181965621114,0.0297671789090807,0.0297671789090807, +0.0792550395064666,0.0792550395064666,0.0792941600801905,0.0791614556122822,0.0789263978930138,0.0786528630513222,0.0783884220346635,0.0781731492976912,0.0780484480962299,0.0780484480962299, +0.183168495950768,0.183168495950768,0.183171767484217,0.18286034847867,0.182364698708688,0.181800790915829,0.181253697240017,0.180799737612919,0.180528850422563,0.180528850422563, +0.370420462686231,0.370420462686231,0.370297538781798,0.369669732920536,0.368769074068465,0.367772043758597,0.366798615399612,0.365964123560038,0.365435031906658,0.365435031906658, +0.652118481023287,0.652118481023287,0.651796748270976,0.650690595355483,0.649289002351696,0.647797135741162,0.646326021286369,0.644990021617963,0.64401950519497,0.64401950519497, + +00:09:04, +0.00108816371332408,0.00108816371332408,0.00109172585209829,0.00109041284475706,0.00108619554876066,0.00108087659622499,0.00107573667507222,0.00107167609434187,0.00106941072573584,0.00106941072573584, +0.00108816371332408,0.00108816371332408,0.00109172585209829,0.00109041284475706,0.00108619554876066,0.00108087659622499,0.00107573667507222,0.00107167609434187,0.00106941072573584,0.00106941072573584, +0.00320332240398399,0.00320332240398399,0.00321108225547825,0.00320666400174759,0.00319498234903952,0.00318054836682555,0.00316661446852502,0.00315555679150795,0.00314935712370809,0.00314935712370809, +0.0103411644464537,0.0103411644464537,0.0103587421164822,0.010343120177707,0.0103076714428158,0.0102647167348472,0.0102232683367658,0.0101901885399176,0.0101715197183306,0.0101715197183306, +0.0303820560243706,0.0303820560243706,0.0304142404549908,0.0303653976048572,0.0302681249621146,0.0301525417770455,0.0300409675124349,0.0299512141607135,0.0299000631891857,0.0299000631891857, +0.0795080256666243,0.0795080256666243,0.0795471420238145,0.0794143217180057,0.0791789943974175,0.0789050704877062,0.0786402174657097,0.0784246147305444,0.0782997360561777,0.0782997360561777, +0.183551549055427,0.183551549055427,0.183554704657882,0.183243253626561,0.182747475365298,0.182183304507599,0.18163590256729,0.181181705165568,0.18091070708481,0.18091070708481, +0.370853125925886,0.370853125925886,0.370730103057121,0.370102621572479,0.369202337747622,0.368205580572442,0.367232359336688,0.366398080931949,0.365869178831094,0.365869178831094, +0.652419629597273,0.652419629597273,0.652098161379413,0.650992980446558,0.649592525770461,0.648101759585042,0.646631687085614,0.645296670849432,0.644326925330002,0.644326925330002, + +00:09:05, +0.00109795784431002,0.00109795784431002,0.00110154556950673,0.00110022742571057,0.00109598396904863,0.00109062873263251,0.00108545220555785,0.00108136245990944,0.00107908096519789,0.00107908096519789, +0.00109795784431002,0.00109795784431002,0.00110154556950673,0.00110022742571057,0.00109598396904863,0.00109062873263251,0.00108545220555785,0.00108136245990944,0.00107908096519789,0.00107908096519789, +0.00322659671374641,0.00322659671374641,0.00323439780585764,0.00322996500213605,0.00321822882299605,0.00320371998929977,0.00318971025800684,0.00317859198825214,0.00317235881803074,0.00317235881803074, +0.0104008572083307,0.0104008572083307,0.010418497821144,0.0104028362633737,0.010367268699743,0.0103241516388241,0.010282537657321,0.0102493251817104,0.0102305831053408,0.0102305831053408, +0.0305163497678921,0.0305163497678921,0.0305485954805809,0.0304996693514602,0.0304021842582161,0.0302863084701608,0.0301744322235778,0.0300844364177168,0.0300331523140253,0.0300331523140253, +0.0797610611858714,0.0797610611858714,0.0798001728503166,0.0796672370451904,0.0794316411931513,0.0791573296871657,0.0788920661328914,0.0786761345578908,0.0785510790409299,0.0785510790409299, +0.1839342299415,0.1839342299415,0.183937269413889,0.183625786775798,0.1831298815102,0.182565449885526,0.182017742110633,0.18156330885074,0.18129220088693,0.18129220088693, +0.37128495699084,0.37128495699084,0.371161835321511,0.370534677830275,0.369634769510963,0.368638286960705,0.367665274640762,0.366831210992373,0.366302498970598,0.366302498970598, +0.652720003741009,0.652720003741009,0.652398799211153,0.651294587774508,0.649895269181908,0.648405601888667,0.646936570127602,0.645602535954658,0.644633559937996,0.644633559937996, + +00:09:06, +0.00110781421362498,0.00110781421362498,0.00111142762424214,0.00111010434575264,0.0011058346482369,0.0011004429954207,0.0010952297172301,0.00109111068728707,0.00108881300025145,0.00108881300025145, +0.00110781421362498,0.00110781421362498,0.00111142762424214,0.00111010434575264,0.0011058346482369,0.0011004429954207,0.0010952297172301,0.00109111068728707,0.00108881300025145,0.00108881300025145, +0.00324997689964931,0.00324997689964931,0.00325781930019453,0.00325337194761857,0.003241581167731,0.00322699734687244,0.00321291162491442,0.00320173262975045,0.00319546588337811,0.00319546588337811, +0.0104607257702439,0.0104607257702439,0.0104784292646643,0.0104627281099502,0.0104270417486239,0.0103837623259279,0.0103419827149568,0.0103086375108627,0.0102898221515595,0.0102898221515595, +0.0306508458425602,0.0306508458425602,0.0306831525250207,0.0306341432397032,0.0305364460971878,0.0304202781995147,0.0303081004223487,0.0302178625043308,0.0301664454557105,0.0301664454557105, +0.0800141448369083,0.0800141448369083,0.0800532513347202,0.0799202003678617,0.0796843370515418,0.0794096394184313,0.0791439668031292,0.0789277075453556,0.0788024758153117,0.0788024758153117, +0.18431653844349,0.18431653844349,0.184319461590117,0.184007947762302,0.183511916971577,0.182947226867123,0.182399215677205,0.181944548467498,0.181673331623555,0.181673331623555, +0.371715958263961,0.371715958263961,0.371592737959224,0.370965904078729,0.370066371736169,0.369070165287662,0.368097363661658,0.367263516080004,0.36673499465844,0.36673499465844, +0.653019606727622,0.653019606727622,0.652698665044185,0.651595420627831,0.650197235880339,0.648708665946361,0.647240673704902,0.645907620226433,0.644939412314678,0.644939412314678, + +00:09:07, +0.00111773302179937,0.00111773302179937,0.00112137221670962,0.00112004380535511,0.0011157477869623,0.0011103195853976,0.00110506941102036,0.00110092097747375,0.00109860703192259,0.00109860703192259, +0.00111773302179937,0.00111773302179937,0.00112137221670962,0.00112004380535511,0.0011157477869623,0.0011103195853976,0.00110506941102036,0.00110092097747375,0.00109860703192259,0.00109860703192259, +0.00327346308126823,0.00327346308126823,0.00328134685754522,0.00327688495730754,0.00326503950288087,0.00325038055996492,0.00323621869046388,0.00322497883782499,0.00321867844188916,0.00321867844188916, +0.0105207699296925,0.0105207699296925,0.0105385362437181,0.0105227955141325,0.0104869903871442,0.0104435485955843,0.0104016033110339,0.0103681253302791,0.0103492366607087,0.0103492366607087, +0.0307855434149878,0.0307855434149878,0.0308179107549496,0.0307688184360266,0.0306709096459572,0.0305544501335774,0.0304419712792966,0.0303514915928365,0.0302999417874154,0.0302999417874154, +0.0802672753991277,0.0802672753991277,0.0803063762587405,0.0801732104667431,0.0799370807506141,0.0796619984569175,0.0793959182500048,0.0791793324652083,0.0790539251507853,0.0790539251507853, +0.184698474402675,0.184698474402675,0.184701281031202,0.18438973642876,0.183893581584422,0.183328635276749,0.182780323081039,0.182325423821806,0.18205409909623,0.18205409909623, +0.372146132120452,0.372146132120452,0.372022813346834,0.37139630269496,0.370497146793304,0.369501217910067,0.368528628741775,0.367694998526192,0.367166668220587,0.367166668220587, +0.653318441811226,0.653318441811226,0.652997762137449,0.651895482275915,0.650498429140935,0.649010955033366,0.647544001091047,0.646211926938546,0.645244485736771,0.645244485736771, + +00:09:08, +0.00112771446898778,0.00112771446898778,0.0011313795469364,0.00113004600461144,0.00112572358548448,0.00112025870299666,0.00111497148748849,0.00111079353109942,0.00110846326086984,0.00110846326086984, +0.00112771446898778,0.00112771446898778,0.0011313795469364,0.00113004600461144,0.00112572358548448,0.00112025870299666,0.00111497148748849,0.00111079353109942,0.00110846326086984,0.00110846326086984, +0.00329705537706737,0.00329705537706737,0.00330498059585502,0.00330050414920378,0.00328860394697009,0.00327386974788686,0.00325963157476086,0.00324833073318869,0.00324199661459455,0.00324199661459455, +0.0105809894827649,0.0105809894827649,0.0105988185535765,0.0105830382712122,0.01054711441158,0.0105035102458015,0.0104613992454878,0.010427788441434,0.0104088264350784,0.0104088264350784, +0.0309204416529324,0.0309204416529324,0.0309528693381626,0.0309036941080278,0.0308055740725985,0.0306888234419447,0.0305760439660739,0.0304853228566013,0.0304336404833921,0.0304336404833921, +0.0805204516585896,0.0805204516585896,0.0805595464107587,0.0804262661292309,0.080189871075066,0.079914405584697,0.0796479192537365,0.0794310080963374,0.0793054258254246,0.0793054258254246, +0.185080037667048,0.185080037667048,0.185082727588467,0.184771152624562,0.184274875190467,0.183709674945547,0.183161064142981,0.182705934726464,0.182434503113353,0.182434503113353, +0.37257548092787,0.37257548092787,0.372452063853247,0.371825876048427,0.370927097044831,0.369931447177172,0.368959072216104,0.368125660654954,0.367597521975714,0.367597521975714, +0.653616512227058,0.653616512227058,0.653296093730974,0.652194775969178,0.650798852219896,0.649312472405984,0.647846555540676,0.646515459345917,0.645548783462134,0.645548783462134, + +00:09:09, +0.00113775875496565,0.00113775875496565,0.00114144981456849,0.00114011114323337,0.00113576224368259,0.00113026054827338,0.00112493614681944,0.00112072854842169,0.0011183818873807,0.0011183818873807, +0.00113775875496565,0.00113775875496565,0.00114144981456849,0.00114011114323337,0.00113576224368259,0.00113026054827338,0.00112493614681944,0.00112072854842169,0.0011183818873807,0.0011183818873807, +0.00332075390440168,0.00332075390440168,0.00332872063196037,0.00332422964019865,0.00331227461741311,0.00329746502883829,0.00328315039680252,0.00327178843544737,0.0032654205214186,0.0032654205214186, +0.0106413842241521,0.0106413842241521,0.0106592759881198,0.0106434561750899,0.0106074136168107,0.0105636470731829,0.0105213703168422,0.010487626644385,0.0104685912755386,0.0104685912755386, +0.0310555397253099,0.0310555397253099,0.0310880274436236,0.0310387694244748,0.0309404385463458,0.0308233972953524,0.0307103176554498,0.030619355470092,0.0305675407189835,0.0305675407189835, +0.0807736724079961,0.0807736724079961,0.0808127605857966,0.0806793661493687,0.0804427068162427,0.0801668595904761,0.0798999686011542,0.0796827332242266,0.0795569766238912,0.0795569766238912, +0.185461228091245,0.185461228091245,0.185463801119858,0.185152196205734,0.184655797638118,0.184090345711372,0.183541438690621,0.183086081001041,0.182814543490108,0.182814543490108, +0.37300400704614,0.37300400704614,0.372880491839715,0.372254626500936,0.371356224845621,0.370360855430734,0.369388696412243,0.368555504782988,0.368027558235222,0.368027558235222, +0.653913821191618,0.653913821191618,0.653593663046018,0.652493304939204,0.651098508354582,0.649613221301708,0.648148340289667,0.646818220684738,0.645852308729898,0.645852308729898, + +00:09:10, +0.00114786607912588,0.00114786607912588,0.00115158321886733,0.00115023942054759,0.00114586396105194,0.00114032532090191,0.00113496358881985,0.00113072622932239,0.00112836311136833,0.00112836311136833, +0.00114786607912588,0.00114786607912588,0.00115158321886733,0.00115023942054759,0.00114586396105194,0.00114032532090191,0.00113496358881985,0.00113072622932239,0.00112836311136833,0.00112836311136833, +0.00334455877951889,0.00334455877951889,0.00335256708159091,0.00334806154607607,0.00333605163051646,0.00332116651991165,0.00330677527447959,0.00329535206310169,0.0032889502811813,0.0032889502811813, +0.010701953947161,0.010701953947161,0.0107199083398503,0.0107040490182881,0.0106678877963322,0.0106239588729405,0.0105815163222219,0.0105476397377855,0.0105285309815533,0.0105285309815533, +0.0311908368022076,0.0311908368022076,0.0312233842414784,0.0311740435553191,0.0310755022376062,0.0309581708656887,0.0308447915213238,0.0307535886088888,0.0307016416706377,0.0307016416706377, +0.0810269364466655,0.0810269364466655,0.0810660175854911,0.0809325093278217,0.0806955867721115,0.0804193592695693,0.0801520650856745,0.0799345066409293,0.0798085763374097,0.0798085763374097, +0.185842045536481,0.185842045536481,0.185844501489879,0.185532867034872,0.185036348782392,0.184470647418729,0.183921446558227,0.183465862471809,0.183194220048396,0.183194220048396, +0.373431712827568,0.373431712827568,0.373308099659855,0.372682556406659,0.371784532542973,0.370789445005033,0.369817503650403,0.368984533219687,0.36845677930324,0.36845677930324, +0.654210371902802,0.654210371902802,0.653890473285204,0.652791072398888,0.65139740076365,0.649913204939364,0.648449358555276,0.647120214172606,0.6461550647606,0.6461550647606, + +00:09:11, +0.00115803664047554,0.00115803664047554,0.00116177995870649,0.00116043103549246,0.00115602893670066,0.0011504532201718,0.00114505401291474,0.00114078677330425,0.0011384071323682,0.0011384071323682, +0.00115803664047554,0.00115803664047554,0.00116177995870649,0.00116043103549246,0.00115602893670066,0.0011504532201718,0.00114505401291474,0.00114078677330425,0.0011384071323682,0.0011384071323682, +0.00336847011756164,0.00336847011756164,0.0033765200593716,0.00337199998151476,0.00335993510148093,0.00334497433709391,0.00333050632457841,0.0033190217335492,0.00331258601160031,0.00331258601160031, +0.010762698443727,0.010762698443727,0.0107807153999055,0.0107648165919646,0.0107285367422702,0.0106844454389082,0.0106418370573659,0.010607827518898,0.0105886453511929,0.0105886453511929, +0.0313263320548977,0.0313263320548977,0.0313589389030679,0.0313095156717091,0.0312107643179736,0.0310931433260084,0.0309794647387394,0.0308880214496986,0.030835942515921,0.030835942515921, +0.0812802425805075,0.0812802425805075,0.0813193162180688,0.0811856944718513,0.0809485097472362,0.0806719034238736,0.0804042075072757,0.0801863271450445,0.0800602237637426,0.0800602237637426, +0.18622248987049,0.18622248987049,0.186224828569524,0.185913164981079,0.185416528484851,0.184850579918707,0.184301087586684,0.183845278971678,0.183573532616774,0.183573532616774, +0.373858600616858,0.373858600616858,0.37373488965966,0.373109668112147,0.372212022476625,0.371217218226886,0.37024549624343,0.369412748267146,0.368885187476649,0.368885187476649, +0.654506167540041,0.654506167540041,0.654186527632651,0.653088081542561,0.651695532647186,0.650212426519244,0.648749613536267,0.647421443008655,0.646457054756317,0.646457054756317, + +00:09:12, +0.0011682706376326,0.0011682706376326,0.00117204023256842,0.0011706861866147,0.00116625736934644,0.00116064444498466,0.00115520761814421,0.00115091037948759,0.00114851414953471,0.00114851414953471, +0.0011682706376326,0.0011682706376326,0.00117204023256842,0.0011706861866147,0.00116625736934644,0.00116064444498466,0.00115520761814421,0.00115091037948759,0.00114851414953471,0.00114851414953471, +0.00339248803256961,0.00339248803256961,0.00340057967882489,0.00339604506009032,0.00338392514440367,0.00336888859526867,0.00335434366278304,0.00334279756308639,0.00333632782929304,0.00333632782929304, +0.0108236175044274,0.0108236175044274,0.0108416969580712,0.0108257586859247,0.0107893602453927,0.0107451065635542,0.0107023323166405,0.010668189783607,0.0106489341811473,0.0106489341811473, +0.0314620246558499,0.0314620246558499,0.0314946906009411,0.0314451849460027,0.0313462239602411,0.0312283138505455,0.0311143364838968,0.0310226531703685,0.0309704424335315,0.0309704424335315, +0.0815335896219976,0.0815335896219976,0.0815726552983205,0.0814389203952894,0.0812014745527517,0.0809244908618443,0.0806563946724729,0.0804381935416917,0.0803119177071664,0.0803119177071664, +0.186602560967452,0.186602560967452,0.186604782236219,0.186293089919899,0.185796336613535,0.185230143068914,0.184680361623425,0.184224330340132,0.183952481030388,0.183952481030388, +0.374284672751128,0.374284672751128,0.374160864177518,0.373535963956347,0.372638696978773,0.371644177415658,0.370672676496813,0.369840152220183,0.369312785045087,0.369312785045087, +0.654801211264432,0.654801211264432,0.654481829254116,0.653384335546134,0.651992907186841,0.650510889223239,0.649049108413054,0.647721910373694,0.646758281900801,0.646758281900801, + +00:09:13, +0.00117856826882264,0.00117856826882264,0.00118236423854118,0.00118100507206615,0.00117654945731328,0.00117089919385087,0.0011654246031601,0.00116109724660701,0.00115868436163794,0.00115868436163794, +0.00117856826882264,0.00117856826882264,0.00118236423854118,0.00118100507206615,0.00117654945731328,0.00117089919385087,0.0011654246031601,0.00116109724660701,0.00115868436163794,0.00115868436163794, +0.0034166126374817,0.0034166126374817,0.0034247460523729,0.00342019689427746,0.00340802187228039,0.00339290940821833,0.00337828740367736,0.00336667966691081,0.00336017584977869,0.00336017584977869, +0.0108847109184941,0.0108847109184941,0.0109028528027944,0.0108868750886351,0.0108503580951234,0.0108059420379946,0.010763001893052,0.0107287263264322,0.0107093972667389,0.0107093972667389, +0.0315979137787445,0.0315979137787445,0.0316306385088675,0.0315810505517799,0.0314818803384138,0.0313636816147259,0.0312494059341661,0.0311574829498984,0.0311051406033118,0.0311051406033118, +0.0817869763901516,0.0817869763901516,0.0818260336475756,0.0816921859185129,0.0814544800063384,0.0811771203984688,0.080908625394293,0.0806901046424862,0.0805636569784463,0.0805636569784463, +0.186982258707939,0.186982258707939,0.186984362373753,0.186672641733254,0.1861757730429,0.185609336733416,0.185059268522369,0.184603016423167,0.18433106513091,0.18433106513091, +0.374709931559923,0.374709931559923,0.374586025544224,0.373961446270619,0.37306455837408,0.372070324883281,0.371099046708699,0.370266747366348,0.369739574290964,0.369739574290964, +0.655095506218871,0.655095506218871,0.654776381297119,0.653679837567225,0.652289527545968,0.650808596214974,0.649347846347822,0.648021619430337,0.64705874935961,0.64705874935961, + +00:09:14, +0.0011889297318756,0.0011889297318756,0.00119275217431522,0.00119138788960056,0.00118690539852822,0.00118121766488637,0.0011757051662228,0.00117134757300811,0.00116891796706037,0.00116891796706037, +0.0011889297318756,0.0011889297318756,0.00119275217431522,0.00119138788960056,0.00118690539852822,0.00118121766488637,0.0011757051662228,0.00117134757300811,0.00116891796706037,0.00116891796706037, +0.00344084404413818,0.00344084404413818,0.0034490192913396,0.00344445559545219,0.00343222539700753,0.00341703688862625,0.00340233766074721,0.00339066815912315,0.00338413018748036,0.00338413018748036, +0.0109459784738265,0.0109459784738265,0.0109641827211959,0.0109481655872361,0.0109115300795545,0.0108669516520058,0.0108238455782596,0.0107894369405406,0.0107700344019354,0.0107700344019354, +0.0317339985984848,0.0317339985984848,0.0317667818018499,0.0317171116638559,0.0316177326277216,0.0314992457951807,0.0313846722681003,0.0312925099684544,0.0312400362062626,0.0312400362062626, +0.0820404017105005,0.0820404017105005,0.0820794500936767,0.0819454898684185,0.0817075249321971,0.0814297908552419,0.0811608984922502,0.0809420592655149,0.0808154403948122,0.0808154403948122, +0.187361582978843,0.187361582978843,0.187363568872215,0.18705182030938,0.186554837653756,0.185988160782667,0.185437808143857,0.184981337073223,0.184709284766475,0.184709284766475, +0.375134379365234,0.375134379365234,0.375010376083,0.374386117378749,0.373489608979699,0.372495662934266,0.371524609169908,0.370692535985935,0.370165557489476,0.370165557489476, +0.655389055528187,0.655389055528187,0.655070186891083,0.653974590745293,0.652585396869749,0.651105550639941,0.649645830484668,0.648320573323132,0.647358460280235,0.647358460280235, + +00:09:15, +0.00119935522422262,0.00119935522422262,0.00120320423718018,0.00120183483657038,0.00119732539051816,0.00119160005580941,0.00118604950519794,0.00118166155664428,0.00117921516379359,0.00117921516379359, +0.00119935522422262,0.00119935522422262,0.00120320423718018,0.00120183483657038,0.00119732539051816,0.00119160005580941,0.00118604950519794,0.00118166155664428,0.00117921516379359,0.00117921516379359, +0.00346518236328291,0.00346518236328291,0.00347339950595306,0.00346882127389407,0.00345653582938452,0.00344127114807893,0.00342649454638254,0.00341476315272939,0.00340819095572717,0.00340819095572717, +0.0110074199570046,0.0110074199570046,0.0110256864990835,0.0110096299675549,0.0109728759854592,0.0109281351940376,0.0108848631625885,0.0108503214177601,0.0108308453793626,0.0108308453793626, +0.0318702782912097,0.0318702782912097,0.0319031196561364,0.0318533674582928,0.0317537800046316,0.0316350055697582,0.0315201346654478,0.0314277334073813,0.0313751284245546,0.0313751284245546, +0.0822938644150648,0.0822938644150648,0.0823329034709543,0.0821988310783967,0.0819606081610231,0.0816825010601407,0.0814132127923205,0.0811940562353105,0.0810672667799333,0.0810672667799333, +0.18774053367332,0.18774053367332,0.187742401627938,0.187430625542766,0.186933530333201,0.186366615093454,0.185815980354591,0.185359292149127,0.185087139791618,0.185087139791618, +0.375558018481511,0.375558018481511,0.375433918109509,0.374809979596965,0.373913851105282,0.372920193865719,0.371949366163947,0.371117520352,0.370590736908621,0.370590736908621, +0.655681862299271,0.655681862299271,0.655363249147455,0.654268598201773,0.652880518285328,0.651401755625623,0.649943063949726,0.648618775178692,0.647657417792238,0.647657417792238, + +00:09:16, +0.0012098449428928,0.0012098449428928,0.0012137206240217,0.00121234610992359,0.00120780963040668,0.00120204656393735,0.00119645781755323,0.00119203939507342,0.00118957614943512,0.00118957614943512, +0.0012098449428928,0.0012098449428928,0.0012137206240217,0.00121234610992359,0.00120780963040668,0.00120204656393735,0.00119645781755323,0.00119203939507342,0.00118957614943512,0.00118957614943512, +0.00348962770456558,0.00348962770456558,0.00349788680534768,0.00349329403878842,0.003480953279116,0.00346561229706825,0.00345075817187962,0.00343896475964295,0.00343235826675642,0.00343235826675642, +0.0110690351533013,0.0110690351533013,0.0110873639209645,0.0110712680141179,0.0110343955983052,0.0109894924512259,0.0109460544350426,0.010911379548592,0.0108918299903169,0.0108918299903169, +0.0320067520343059,0.0320067520343059,0.032039651249233,0.0319898171124118,0.03189002164686,0.0317709601175365,0.0316557923071647,0.031563152449215,0.0315104164415419,0.0315104164415419, +0.0825473633423296,0.0825473633423296,0.0825863926202009,0.0824522083883063,0.0822137285299813,0.0819352498475989,0.081665567126917,0.0814460943828281,0.0813191349638942,0.0813191349638942, +0.188119110690724,0.188119110690724,0.188120860543427,0.187809057334091,0.187311850974562,0.186744699548829,0.18619378502757,0.185736881516027,0.18546463006721,0.18546463006721, +0.375980851215681,0.375980851215681,0.375856653931872,0.375233035233958,0.374337287052999,0.373343919967354,0.372373319967026,0.371541702730373,0.371015114809206,0.371015114809206, +0.655973929621203,0.655973929621203,0.655655571159847,0.654561863040201,0.653174894901943,0.651697214281632,0.650239549851297,0.648916228105824,0.647955625007369,0.647955625007369, + +00:09:17, +0.00122039908451005,0.00122039908451005,0.00122430153131829,0.00122292190620053,0.00121835831491084,0.00121255738618352,0.00120693030035526,0.0012024812854548,0.00120000112118519,0.00120000112118519, +0.00122039908451005,0.00122039908451005,0.00122430153131829,0.00122292190620053,0.00121835831491084,0.00121255738618352,0.00120693030035526,0.0012024812854548,0.00120000112118519,0.00120000112118519, +0.00351418017654393,0.00351418017654393,0.00352248129756648,0.00351787399822867,0.0035054778548141,0.00349006044499371,0.00347512864744324,0.00346327309068687,0.00345663223171573,0.00345663223171573, +0.0111308238466957,0.0111308238466957,0.0111492147700587,0.011133079510164,0.0110960887022669,0.0110510232094056,0.0110074191833167,0.0109726111222234,0.0109529880247785,0.0109529880247785, +0.03214341900642,0.03214341900642,0.0321763757599153,0.0321264598048057,0.0320264567333848,0.0319071086188358,0.0317916443754276,0.0316987662776952,0.0316458994417739,0.0316458994417739, +0.0828008973372187,0.0828008973372187,0.0828399163886461,0.0827056206444494,0.0824668848826802,0.0821880360584821,0.0819179603348652,0.0816981725454193,0.0815710437831698,0.0815710437831698, +0.188497313936548,0.188497313936548,0.188498945527307,0.18818711559016,0.18768979947733,0.187122414038049,0.186571222042029,0.186114105045329,0.185841755460399,0.185841755460399, +0.376402879867162,0.376402879867162,0.376278585850683,0.375655286590891,0.374759919117555,0.37376684352151,0.372796472848067,0.37196508537967,0.371438693444865,0.371438693444865, +0.656265260565386,0.656265260565386,0.655947156004155,0.654854388346346,0.653468529811052,0.651991929699832,0.650535291279979,0.649212935195656,0.648253085019704,0.648253085019704, + +00:09:18, +0.00123101784528997,0.00123101784528997,0.0012349471551382,0.0012335624215308,0.00122897164033809,0.00122313271905401,0.00121746715026631,0.00121298742454584,0.00121049027584356,0.00121049027584356, +0.00123101784528997,0.00123101784528997,0.0012349471551382,0.0012335624215308,0.00122897164033809,0.00122313271905401,0.00121746715026631,0.00121298742454584,0.00121049027584356,0.00121049027584356, +0.00353883988668608,0.00353883988668608,0.00354718308956337,0.00354256125921859,0.00353010966400072,0.00351461570016468,0.00349960608218893,0.00348768825559604,0.00348101296066527,0.00348101296066527, +0.0111927858198854,0.0111927858198854,0.0112112388283107,0.0111950642376568,0.0111579550802381,0.0111127272531231,0.0110689571938102,0.0110340159265405,0.0110143192714236,0.0110143192714236, +0.0322802783874703,0.0322802783874703,0.0323132923682403,0.0322632947153503,0.032163084444457,0.0320434502552301,0.0319276900536452,0.0318345740777772,0.0317815766110077,0.0317815766110077, +0.0830544652510697,0.0830544652510697,0.0830934736299306,0.0829590666995454,0.0827200760691467,0.0824408585400622,0.0821703912613776,0.0819502895668082,0.0818229920806009,0.0818229920806009, +0.18887514332236,0.18887514332236,0.188876656494254,0.188564800223848,0.188067375747101,0.187499758456515,0.186948291283376,0.18649096261464,0.186218515844548,0.186218515844548, +0.376824106727883,0.376824106727883,0.376699716159026,0.376076735961422,0.3751817495862,0.374188966803166,0.373218827068726,0.372387670551311,0.371861475062075,0.371861475062075, +0.656555858185668,0.656555858185668,0.656238006738692,0.655146177188334,0.653761426086463,0.652285904954467,0.650830291308789,0.649508899521763,0.648549800905766,0.648549800905766, + +00:09:19, +0.00124170142103672,0.00124170142103672,0.0012456576911363,0.00124426785163016,0.00123964980258315,0.0012337727586446,0.00122806856354125,0.00122355800869901,0.00122104380980636,0.00122104380980636, +0.00124170142103672,0.00124170142103672,0.0012456576911363,0.00124426785163016,0.00123964980258315,0.0012337727586446,0.00122806856354125,0.00122355800869901,0.00122104380980636,0.00122104380980636, +0.00356360694137277,0.00356360694137277,0.00357199228720549,0.00356735592767466,0.00355484881310983,0.00353927816980269,0.00352419058414523,0.00351221036301941,0.00350550056257994,0.00350550056257994, +0.0112549208542992,0.0112549208542992,0.011273435876403,0.0112572219772974,0.0112199945138451,0.0111746043656491,0.0111306682516386,0.0110955937481404,0.0110758235176374,0.0110758235176374, +0.032417329358659,0.032417329358659,0.0324504002555582,0.0324003210252162,0.0322999039616131,0.0321799842095595,0.0320639285264707,0.0319705750356447,0.0319174471362202,0.0319174471362202, +0.0833080659416084,0.0833080659416084,0.0833470632040811,0.0832125454127055,0.082973300945801,0.0826937161459925,0.0824228587580292,0.0822024442970663,0.0820749787053693,0.0820749787053693, +0.189252598765747,0.189252598765747,0.189253993364942,0.188942111154035,0.188444579695516,0.187876732705712,0.187324992643133,0.186867454107705,0.186594911099173,0.186594911099173, +0.377244534082298,0.377244534082298,0.377120047142493,0.376497385631717,0.375602780738754,0.374610292079956,0.373640384883402,0.372809460489532,0.372283461900166,0.372283461900166, +0.65684572551847,0.65684572551847,0.656528126404311,0.655437232616782,0.654053586784459,0.652579143102288,0.651124552993293,0.649804124140294,0.648845775724649,0.648845775724649, + +00:09:20, +0.00125245000713991,0.00125245000713991,0.00125643333455104,0.00125503839179741,0.00125039299712489,0.00124447770063765,0.00123873473602441,0.00123419323385867,0.00123166191906299,0.00123166191906299, +0.00125245000713991,0.00125245000713991,0.00125643333455104,0.00125503839179741,0.00125039299712489,0.00124447770063765,0.00123873473602441,0.00123419323385867,0.00123166191906299,0.00123166191906299, +0.00358848144589972,0.00358848144589972,0.00359690899527554,0.00359225810842841,0.00357969540748987,0.00356404796004377,0.00354888226025598,0.00353683952052225,0.00353009514535164,0.00353009514535164, +0.0113172287301098,0.0113172287301098,0.011335805693768,0.0113195525085373,0.0112822067834587,0.0112366543289912,0.0111925521406471,0.0111573443723445,0.011137500549526,0.011137500549526, +0.0325545711024831,0.0325545711024831,0.0325876986045242,0.0325375379168803,0.0324369144676859,0.0323167096659415,0.0322003589798131,0.0321067683387207,0.0320535102056201,0.0320535102056201, +0.0835616982729237,0.0835616982729237,0.0836006839774848,0.0834660556494076,0.0832265583754308,0.0829466077362826,0.0826753616827325,0.0824546355925881,0.0823270025129735,0.0823270025129735, +0.189629680190249,0.189629680190249,0.189630956065977,0.189319048305547,0.188821411240195,0.188253336693146,0.187701326018877,0.187243579414347,0.186970941109882,0.186970941109882, +0.3776641642074,0.3776641642074,0.3775395810792,0.376917237880467,0.376023014847614,0.375030821612186,0.374061148539256,0.373230457431398,0.372704656191335,0.372704656191335, +0.657134865582912,0.657134865582912,0.656817518024534,0.655727557664917,0.654345014943924,0.652871647182679,0.65141807937173,0.650098612090095,0.649141012518146,0.649141012518146, + +00:09:21, +0.0012632637985716,0.0012632637985716,0.00126727428020136,0.00126587423691141,0.00126120141902332,0.001255247740299,0.00124946586314647,0.00124489329555798,0.001242344799193,0.001242344799193, +0.0012632637985716,0.0012632637985716,0.00126727428020136,0.00126587423691141,0.00126120141902332,0.001255247740299,0.00124946586314647,0.00124489329555798,0.001242344799193,0.001242344799193, +0.00361346350447998,0.00361346350447998,0.00362193331747415,0.00361726790522877,0.00360464955140602,0.00358892517594074,0.00357368121638257,0.00356157583458841,0.00355479681579152,0.00355479681579152, +0.0113797092262463,0.0113797092262463,0.0113983480586011,0.0113820556095904,0.0113445916682072,0.0112988769239061,0.0112546086434224,0.0112192675832103,0.0111993501519298,0.0111993501519298, +0.0326920028027465,0.0326920028027465,0.0327251865991091,0.0326749445741371,0.0325741151468165,0.0324536258097827,0.0323369806008496,0.0322431531756798,0.0321897650086595,0.0321897650086595, +0.0838153611154421,0.0838153611154421,0.083854334822864,0.0837195962814705,0.0834798472271658,0.0831995321772727,0.0829278988997124,0.082706862316066,0.0825790623652036,0.0825790623652036, +0.190006387525306,0.190006387525306,0.190007544529841,0.1896956116091,0.189197870304688,0.188629570332287,0.188077291314178,0.187619338430405,0.18734660576832,0.18734660576832, +0.378082999372746,0.378082999372746,0.377958320239805,0.377336294978909,0.37644245417778,0.375450557652848,0.374481120276224,0.373650663606823,0.373125060160664,0.373125060160664, +0.657423281380936,0.657423281380936,0.657106184605672,0.656017155348701,0.654635713586468,0.653163420217779,0.651710873465134,0.65039236639283,0.64943551431087,0.64943551431087, + +00:09:22, +0.00127414298988319,0.00127414298988319,0.00127818072248368,0.00127677558142799,0.00127207526291654,0.00126608307247494,0.00126026213992144,0.00125565838891585,0.00125309264536301,0.00125309264536301, +0.00127414298988319,0.00127414298988319,0.00127818072248368,0.00127677558142799,0.00127207526291654,0.00126608307247494,0.00126026213992144,0.00125565838891585,0.00125309264536301,0.00125309264536301, +0.00363855322024625,0.00363855322024625,0.00364706535642224,0.00364238542074447,0.00362971134804264,0.0036139099214656,0.00359858755730633,0.00358641941062264,0.00357960567963224,0.00357960567963224, +0.0114423621204066,0.0114423621204066,0.0114610627478726,0.0114447310574456,0.0114071489459887,0.0113612719299128,0.0113168375413054,0.0112813631635442,0.0112613721084351,0.0112613721084351, +0.0328296236445711,0.0328296236445711,0.032862863424611,0.03281254018211,0.0327115051844653,0.0325907318277904,0.0324737925780363,0.03237972873646,0.0323262107360454,0.0323262107360454, +0.0840690533459024,0.0840690533459024,0.0841080146192507,0.0839731661870285,0.0837331663764528,0.083452488341609,0.0831804692794814,0.0829591233364661,0.0828311571301174,0.0828311571301174, +0.190382720706192,0.190382720706192,0.190383758694832,0.190071801001235,0.189573956818403,0.189005433542508,0.188452888438539,0.18799473105768,0.187721904972103,0.187721904972103, +0.378501041840465,0.378501041840465,0.378376266887522,0.377754559190836,0.376861100986862,0.375869502447637,0.374900302327034,0.37407008123858,0.373544676026134,0.373544676026134, +0.657710975897427,0.657710975897427,0.657394129136951,0.65630602866696,0.65492568571655,0.653454465212609,0.652002938277457,0.650685390053109,0.649729284110374,0.649729284110374, + +00:09:23, +0.00128508777520245,0.00128508777520245,0.0012891528553689,0.001287742619377,0.00128301472301769,0.0012769838915892,0.0012711237609436,0.00126648870863384,0.00126390565232366,0.00126390565232366, +0.00128508777520245,0.00128508777520245,0.0012891528553689,0.001287742619377,0.00128301472301769,0.0012769838915892,0.0012711237609436,0.00126648870863384,0.00126390565232366,0.00126390565232366, +0.00366375069525331,0.00366375069525331,0.00367230521366345,0.00366761075656646,0.00365488089950566,0.00363900229951186,0.00362360138673083,0.00361137035295291,0.00360452184153033,0.00360452184153033, +0.0115051871890698,0.0115051871890698,0.0115239495373406,0.0115075786278798,0.0114698783934836,0.0114238391253041,0.0113792386144037,0.0113436308949141,0.011323566201387,0.011323566201387, +0.0329674328144074,0.0329674328144074,0.0330007282676665,0.032950323927262,0.0328490837674231,0.0327280269079832,0.0326107941011201,0.0325164942122734,0.0324628465797514,0.0324628465797514, +0.0843227738473303,0.0843227738473303,0.084361722251961,0.0842267642505062,0.0839865147050302,0.0837054751082185,0.0834330716988151,0.0832114175290029,0.0830832856820149,0.0830832856820149, +0.190758679673964,0.190758679673964,0.190759598505005,0.190447616424263,0.189949670716559,0.189380926249027,0.188828117307341,0.188369757203871,0.188096838624766,0.188096838624766, +0.378918293865281,0.378918293865281,0.378793423278141,0.378172032772619,0.377278957525104,0.376287658234966,0.375318696917219,0.374488712542317,0.373963505998636,0.373963505998636, +0.657997952100341,0.657997952100341,0.657681354590634,0.6565941806015,0.655214934321602,0.653744785155186,0.652294276795692,0.650977686058602,0.650022324907278,0.650022324907278, + +00:09:24, +0.00129609834823051,0.00129609834823051,0.00130019087239945,0.0012987755443593,0.00129401999311204,0.00128795039163992,0.00128205092038446,0.00127738444899322,0.00127478401440659,0.00127478401440659, +0.00129609834823051,0.00129609834823051,0.00130019087239945,0.0012987755443593,0.00129401999311204,0.00128795039163992,0.00128205092038446,0.00127738444899322,0.00127478401440659,0.00127478401440659, +0.0036890560304804,0.0036890560304804,0.00369765298966654,0.00369294401321033,0.00368015830682498,0.00366420241189701,0.00364872280728425,0.00363642876483271,0.00362954540506848,0.00362954540506848, +0.0115681842075087,0.0115681842075087,0.011587008201563,0.0115705980954692,0.0115327797861669,0.0114865782871599,0.011441811641604,0.0114060705576613,0.0113859322119015,0.0113859322119015, +0.0331054295000463,0.0331054295000463,0.0331387803162608,0.0330882949974068,0.032986850083822,0.0328655102397026,0.0327479843611494,0.0326534487956178,0.0325996717330289,0.0325996717330289, +0.0845765215090137,0.0845765215090137,0.0846154566125702,0.0844803893625928,0.0842398911009021,0.0839584913622833,0.0836857050407266,0.0834637437751151,0.0833354469014146,0.0833354469014146, +0.191134264375397,0.191134264375397,0.191135063910117,0.190823057826208,0.190325011940119,0.18975604838285,0.18920297784178,0.188744416782521,0.1884714066357,0.1884714066357, +0.379334757694525,0.379334757694525,0.379209791660046,0.378588717973224,0.377696026035397,0.376705027245984,0.375736306265135,0.374906559726574,0.374381552281989,0.374381552281989, +0.658284212940818,0.658284212940818,0.657967863922141,0.656881614117233,0.655503462372147,0.654034383016654,0.65258489198999,0.651269257380166,0.650314639675382,0.650314639675382, + +00:09:25, +0.0013071749022389,0.0013071749022389,0.00131129496668628,0.00130987454954382,0.00130509126655395,0.00129898276619669,0.00129304381198984,0.00128834580385187,0.00128572792552144,0.00128572792552144, +0.0013071749022389,0.0013071749022389,0.00131129496668628,0.00130987454954382,0.00130509126655395,0.00129898276619669,0.00129304381198984,0.00128834580385187,0.00128572792552144,0.00128572792552144, +0.00371446932583368,0.00371446932583368,0.00372310878382786,0.00371838529011875,0.00370554366995695,0.00368951035936485,0.00367395192052181,0.00366159474844349,0.00365467647275788,0.00365467647275788, +0.0116313529498021,0.0116313529498021,0.0116502385139102,0.0116337892336028,0.0115958528983205,0.0115494891913589,0.0115045564005843,0.011468681930913,0.011448469919878,0.011448469919878, +0.0332436128906291,0.0332436128906291,0.0332770187597392,0.0332264525817197,0.0331248033231463,0.0330031810136239,0.0328853625504855,0.032790591680288,0.0327366853904179,0.0327366853904179, +0.0848302952264768,0.0848302952264768,0.084869216598887,0.0847340404202166,0.0844932944583139,0.0842115359952164,0.0839383681944422,0.0837161009624409,0.0835876396750281,0.0835876396750281, +0.191509474762933,0.191509474762933,0.191510154865564,0.191198125160747,0.190699980435739,0.190130799880708,0.189577469968815,0.189118709712957,0.188845608920095,0.188845608920095, +0.37975043556816,0.37975043556816,0.37962537427423,0.37900461703423,0.378112308753299,0.377121611704591,0.376153132581976,0.375323624992798,0.374798817072956,0.374798817072956, +0.658569761353307,0.658569761353307,0.65825366007017,0.657168332162296,0.655791272821922,0.654323261751396,0.652874786813786,0.651560106971959,0.65060623137179,0.65060623137179, + +00:09:26, +0.00131831763006664,0.00131831763006664,0.00132246533090598,0.00132103982766463,0.00131622873626401,0.00131008120839761,0.00130410262907683,0.0012993729666414,0.00129673757915283,0.00129673757915283, +0.00131831763006664,0.00131831763006664,0.00132246533090598,0.00132103982766463,0.00131622873626401,0.00131008120839761,0.00130410262907683,0.0012993729666414,0.00129673757915283,0.00129673757915283, +0.00373999068014863,0.00373999068014863,0.00374867269447379,0.00374393468566399,0.0037310370877868,0.003714926241588,0.0036992888269281,0.00368686840489694,0.00367991514604061,0.00367991514604061, +0.0116946931888469,0.0116946931888469,0.0117136402465769,0.0116971518144936,0.0116590975030457,0.0116125716125911,0.0115674726678261,0.0115314647925946,0.0115111791040115,0.0115111791040115, +0.0333819821766587,0.0333819821766587,0.0334154427888171,0.0333647958707475,0.0332629426762429,0.0331410384217662,0.0330229278628132,0.032927922061386,0.0328738867477583,0.0328738867477583, +0.0850840939014549,0.0850840939014549,0.0851230011149283,0.0849877163265201,0.0847467236777262,0.0844646079046358,0.0841910600553765,0.0839684879847929,0.0838398628957363,0.0838398628957363, +0.191884310794618,0.191884310794618,0.191884871332331,0.191572818387154,0.191074576155703,0.190505180685009,0.189951593621106,0.189492635920232,0.189219445398885,0.189219445398885, +0.380165329718791,0.380165329718791,0.380040173354315,0.379419732189842,0.378527807907047,0.377537413827454,0.376569178071789,0.375739910535354,0.375215302561255,0.375215302561255, +0.658854600255683,0.658854600255683,0.658538745956814,0.657454337668169,0.656078368607998,0.654611424297157,0.653163964203908,0.65185023777156,0.650897102937025,0.650897102937025, + +00:09:27, +0.00132952672411725,0.00132952672411725,0.00133370215729786,0.00133227157101807,0.00132743259472607,0.00132124591094635,0.00131522756453089,0.00131046613036412,0.00130781316835747,0.00130781316835747, +0.00132952672411725,0.00132952672411725,0.00133370215729786,0.00133227157101807,0.00132743259472607,0.00132124591094635,0.00131522756453089,0.00131046613036412,0.00130781316835747,0.00130781316835747, +0.00376562019119258,0.00376562019119258,0.00377434481886327,0.00376959229715034,0.00375663865813111,0.00374045015717033,0.00372473362591958,0.00371224983423748,0.00370526152529205,0.00370526152529205, +0.0117582046963706,0.0117582046963706,0.0117772131705945,0.0117606856091915,0.0117225133722752,0.0116758253243702,0.0116305602186268,0.011594418919442,0.0115740595418044,0.0115740595418044, +0.0335205365500097,0.0335205365500097,0.0335540515955907,0.0335033240564196,0.033401267335332,0.033279081657504,0.0331606794931514,0.0330654391353327,0.0330112750022007,0.0330112750022007, +0.0853379164418699,0.0853379164418699,0.0853768090708942,0.0852414159908343,0.0850001776657901,0.0847177059943399,0.0844437795251074,0.0842209037421341,0.0840921154625639,0.0840921154625639, +0.192258772434049,0.192258772434049,0.19225921327693,0.191947137470242,0.191448799057877,0.190879190743772,0.190325348736958,0.18986619533507,0.189592915998689,0.189592915998689, +0.380579442371685,0.380579442371685,0.380454191126567,0.379834065666915,0.378942525717582,0.377952435824026,0.376984444931493,0.376155418541548,0.375631010929579,0.375631010929579, +0.659138732549366,0.659138732549366,0.658823124487682,0.657739633549795,0.656364752650895,0.65489887357516,0.653452427080705,0.652139652700087,0.651187257295147,0.651187257295147, + +00:09:28, +0.00134080237635596,0.00134080237635596,0.00134500563766107,0.00134356997145981,0.00133870303398438,0.00133247706610925,0.00132641881080293,0.0013216254875902,0.0013189548857612,0.0013189548857612, +0.00134080237635596,0.00134080237635596,0.00134500563766107,0.00134356997145981,0.00133870303398438,0.00133247706610925,0.00132641881080293,0.0013216254875902,0.0013189548857612,0.0013189548857612, +0.00379135795566713,0.00379135795566713,0.00380012525319023,0.00379535822081668,0.00378234847774038,0.00376608220364942,0.00375028641584698,0.00373773913544466,0.00373071570982323,0.00373071570982323, +0.0118218872429431,0.0118218872429431,0.0118409570558432,0.0118243903875954,0.0117861002767852,0.0117392500990453,0.0116938188271118,0.0116575440870133,0.0116371110095792,0.0116371110095792, +0.033659275203939,0.033659275203939,0.033692844373547,0.0336420363320574,0.0335397764940172,0.0334173099155768,0.0332986166378638,0.0332031420998778,0.0331488493522166,0.0331488493522166, +0.0855917617618041,0.0855917617618041,0.0856306393831422,0.0854951383286535,0.0852536553353213,0.0849708291742823,0.0846965255113512,0.0844733471405528,0.084344396280656,0.084344396280656, +0.192632859650317,0.192632859650317,0.192633180671346,0.192321082380312,0.191822649105642,0.191252830010575,0.190698735260267,0.190239387893811,0.189966020651756,0.189966020651756, +0.380992775744792,0.380992775744792,0.380867429809916,0.380247619684967,0.379356464398558,0.37836667989656,0.377398935350891,0.376570151191637,0.376045944353607,0.376045944353607, +0.659422161119436,0.659422161119436,0.659106798552013,0.658024222705696,0.656650427854703,0.655185612490226,0.653740178348153,0.65242835466231,0.651476697353871,0.651476697353871, + +00:09:29, +0.00135214477830677,0.00135214477830677,0.00135637596335177,0.00135493522040206,0.00135004024564074,0.00134377486571245,0.00133767655990643,0.00133285123045468,0.00133016292355606,0.00133016292355606, +0.00135214477830677,0.00135214477830677,0.00135637596335177,0.00135493522040206,0.00135004024564074,0.00134377486571245,0.00133767655990643,0.00133285123045468,0.00133016292355606,0.00133016292355606, +0.00381720406921072,0.00381720406921072,0.00382601409258619,0.00382123255183899,0.00380816664230147,0.00379182247749909,0.0037759472939978,0.00376333640643556,0.00375627779788333,0.00375627779788333, +0.0118857405979892,0.0118857405979892,0.0119048716710643,0.0118882659184649,0.011849857986208,0.0118028457078135,0.0117572482662465,0.0117208400697014,0.0117003332824902,0.0117003332824902, +0.0337981973330958,0.0337981973330958,0.033831820317574,0.0337809318923853,0.0336784693472955,0.0335557223920998,0.0334367384946693,0.0333410301541103,0.0332866089976093,0.0332866089976093, +0.0858456287814758,0.0858456287814758,0.0858844909741624,0.0857488822616096,0.0855071556052757,0.0852239763605465,0.0849492969279384,0.084725817092238,0.0845967042612527,0.0845967042612527, +0.193006572417954,0.193006572417954,0.193006773492984,0.19269465309309,0.192196126267844,0.191626098444501,0.191071753140462,0.19061221353835,0.190338759295908,0.190338759295908, +0.381405332048756,0.381405332048756,0.381279891615975,0.380660396456201,0.379769626156364,0.378780148240128,0.37781265151269,0.376984110658847,0.376460105002025,0.376460105002025, +0.659704888834749,0.659704888834749,0.659389771022797,0.658308108018093,0.656935397107196,0.655471643930886,0.654027220893979,0.652716346546772,0.651765426004679,0.651765426004679, + +00:09:30, +0.00136355412104961,0.00136355412104961,0.00136781332528028,0.00136636750881073,0.00136144442085164,0.00135513950113906,0.00134900100341456,0.00134414355065467,0.00134143747349746,0.00134143747349746, +0.00136355412104961,0.00136355412104961,0.00136781332528028,0.00136636750881073,0.00136144442085164,0.00135513950113906,0.00134900100341456,0.00134414355065467,0.00134143747349746,0.00134143747349746, +0.00384315862640112,0.00384315862640112,0.00385201143112276,0.0038472153843329,0.0038340932464402,0.0038176710741319,0.00380171635659879,0.00378904174406733,0.00378194788666207,0.00378194788666207, +0.0119497645298003,0.0119497645298003,0.011968956783872,0.0119523119694325,0.0119137862690433,0.0118666119207318,0.0118208483078485,0.0117843066407459,0.0117637261345359,0.0117637261345359, +0.0339373021335315,0.0339373021335315,0.0339709786239705,0.0339200099335399,0.0338173450915678,0.0336943182845737,0.0335750442626521,0.033479102498469,0.0334245531395241,0.0334245531395241, +0.0860995164272139,0.0860995164272139,0.0861383627725521,0.0860026467174477,0.0857606774007232,0.0854771464753216,0.0852020926947882,0.0849783125154553,0.0848490383216647,0.0848490383216647, +0.193379910716873,0.193379910716873,0.193379991724608,0.193067849589678,0.192569230518739,0.191998996010077,0.191444402332452,0.190984672216088,0.190711131874487,0.190711131874487, +0.381817113486941,0.381817113486941,0.381691578749054,0.381072398185517,0.380182013190143,0.379192843042635,0.378225595592513,0.377397299109388,0.376873495036535,0.376873495036535, +0.659986918548055,0.659986918548055,0.659672044756883,0.658591292353016,0.657219663279947,0.655756970769496,0.654313557589772,0.653003631225895,0.652053446122935,0.652053446122935, + +00:09:31, +0.00137503059521759,0.00137503059521759,0.00137931791390827,0.00137786702720259,0.00137291575032547,0.00136657116332629,0.00136039233245734,0.00135550263944646,0.00135277872690129,0.00135277872690129, +0.00137503059521759,0.00137503059521759,0.00137931791390827,0.00137786702720259,0.00137291575032547,0.00136657116332629,0.00136039233245734,0.00135550263944646,0.00135277872690129,0.00135277872690129, +0.00386922172075799,0.00386922172075799,0.00387811736181422,0.00387330681135625,0.00386012838372387,0.0038436280879017,0.00382759369881843,0.0038148552441396,0.00380772607229222,0.00380772607229222, +0.0120139588055466,0.0120139588055466,0.0120332121607654,0.0120165283070161,0.0119778848926709,0.0119305485067289,0.0118846187225995,0.0118479435722449,0.0118272893385703,0.0118272893385703, +0.0340765888027098,0.0340765888027098,0.0341103184904561,0.03405926965308,0.0339564029246482,0.033833096791895,0.0337135331422717,0.0336173583347529,0.0335626809804584,0.0335626809804584, +0.0863534236314327,0.0863534236314327,0.0863922537129904,0.0862564306299999,0.0860142196528236,0.0857303384468766,0.0854549117378842,0.0852308323345219,0.0851013973852492,0.0851013973852492, +0.193752874532315,0.193752874532315,0.193752835354294,0.193440671856496,0.192941961837937,0.192371522677224,0.191816682796567,0.191356763879873,0.191083138336296,0.191083138336296, +0.382228122255442,0.382228122255442,0.382102493406183,0.381483627070539,0.380593627691806,0.379604766484842,0.378637769758921,0.377809718702472,0.377286116611877,0.377286116611877, +0.660268253096108,0.660268253096108,0.659953622595099,0.658873778560422,0.657503229228446,0.656041595862356,0.654599191291095,0.653290211556102,0.652340760567999,0.652340760567999, + +00:09:32, +0.00138657439099412,0.00138657439099412,0.001390889919246,0.00138943396564254,0.00138445442431972,0.00137807004276269,0.00137185073771884,0.00136692868764268,0.00136418687464108,0.00136418687464108, +0.00138657439099412,0.00138657439099412,0.001390889919246,0.00138943396564254,0.00138445442431972,0.00137807004276269,0.00137185073771884,0.00136692868764268,0.00136418687464108,0.00136418687464108, +0.00389539344474543,0.00389539344474543,0.00390433197662007,0.00389950692491169,0.00388627214666386,0.00386969361210614,0.0038535794147695,0.00384077700139701,0.00383361244985208,0.00383361244985208, +0.0120783231912891,0.0120783231912891,0.0120976375671406,0.0120809146966301,0.0120421536233623,0.0119946552336175,0.0119485592800573,0.011911750635167,0.0118910226663156,0.0118910226663156, +0.0342160565395164,0.0342160565395164,0.0342498391161805,0.0341987102499963,0.034095642045774,0.0339720571143654,0.0338522043353729,0.0337557968661304,0.0337009917242719,0.0337009917242719, +0.0866073493326068,0.0866073493326068,0.0866461627362135,0.0865102329391605,0.0862677812988005,0.0859835512095357,0.0857077529892496,0.0854833754797819,0.0853537803813852,0.0853537803813852, +0.194125463854799,0.194125463854799,0.19412530437537,0.193813119885229,0.193314320210345,0.192743678421203,0.19218859449851,0.191728488487947,0.19145477863555,0.19145477863555, +0.382638360543108,0.382638360543108,0.382512637777126,0.381894085301624,0.381004471846052,0.380015920740374,0.379049176173427,0.378221371590327,0.37769797187584,0.37769797187584, +0.66054889529978,0.66054889529978,0.660234507362361,0.659155569474309,0.657786097792209,0.656325522049816,0.6548841248376,0.653576090377921,0.652627372183337,0.652627372183337, + +00:09:33, +0.00139818569811024,0.00139818569811024,0.00140252953084959,0.00140106851374084,0.00139606063263822,0.00138963632948534,0.00138337640943436,0.00137842188560957,0.00137566210714525,0.00137566210714525, +0.00139818569811024,0.00139818569811024,0.00140252953084959,0.00140106851374084,0.00139606063263822,0.00138963632948534,0.00138337640943436,0.00137842188560957,0.00137566210714525,0.00137566210714525, +0.00392167388977458,0.00392167388977458,0.00393065536644769,0.00392581581594928,0.00391252462671823,0.00389586773898933,0.00387967359751158,0.00386680710953176,0.00385960711336797,0.00385960711336797, +0.0121428574519912,0.0121428574519912,0.0121622327673023,0.0121454709025979,0.0121065922262927,0.012058931868106,0.0120126697486677,0.0119757275993634,0.0119549258883736,0.0119549258883736, +0.0343557045442683,0.0343557045442683,0.0343895397017332,0.0343383309247208,0.0342350616556151,0.0341111984537017,0.0339910570451957,0.0338944172971497,0.0338394845761961,0.0338394845761961, +0.0868612924752464,0.0868612924752464,0.0869000887889891,0.086764052590861,0.0865213612819166,0.0862367837036534,0.0859606153869225,0.0857359408875825,0.0856061862454492,0.0856061862454492, +0.194497678680063,0.194497678680063,0.194497398786363,0.194185193672774,0.193686305626119,0.193115463222556,0.192560137409295,0.192099846003893,0.191826052731816,0.191826052731816, +0.383047830531556,0.383047830531556,0.382922014044403,0.382303775061887,0.381414547830385,0.380426307975747,0.379459816990511,0.378632259918214,0.378109062969282,0.378109062969282, +0.660828847964174,0.660828847964174,0.660514701867789,0.659436667912826,0.658068271794891,0.656608752156396,0.65516836105314,0.653861270516104,0.652913283796636,0.652913283796636, + +00:09:34, +0.00140986470584178,0.00140986470584178,0.00141423693781822,0.00141277086065035,0.00140773456462841,0.00140127021307713,0.0013949695373877,0.00138998242326411,0.00138720461439427,0.00138720461439427, +0.00140986470584178,0.00140986470584178,0.00141423693781822,0.00141277086065035,0.00140773456462841,0.00140127021307713,0.0013949695373877,0.00138998242326411,0.00138720461439427,0.00138720461439427, +0.00394806314620622,0.00394806314620622,0.00395708762115487,0.00395223357436912,0.00393888591429433,0.00392215055974432,0.00390587633905363,0.00389294566118608,0.00388571015581677,0.00388571015581677, +0.0122075613515308,0.0122075613515308,0.0122269975244759,0.0122101966881634,0.0121712004655527,0.0121233781758104,0.0120769498957763,0.0120398742335794,0.0120189987742378,0.0120189987742378, +0.0344955320187234,0.0344955320187234,0.0345294194491529,0.0344781308791359,0.0343746609562833,0.0342505200130454,0.0341300904763846,0.0340332188337487,0.0339781587428445,0.0339781587428445, +0.0871152520098717,0.0871152520098717,0.0871540308240914,0.0870178885370447,0.0867749585514487,0.0864900348755898,0.0862134978749311,0.0859885275002486,0.0858586139187903,0.0858586139187903, +0.194869519009014,0.194869519009014,0.194869118590952,0.194556893221186,0.194057918080605,0.193486877067058,0.192931311505201,0.192470836396579,0.192196960589965,0.192196960589965, +0.383456534395194,0.383456534395194,0.383330624383307,0.382712698527215,0.381823857815132,0.38083593035038,0.37986969435764,0.379042385824445,0.378519392026143,0.378519392026143, +0.661108113878735,0.661108113878735,0.660794208904815,0.659717076678385,0.658349754044402,0.656891288990889,0.655451902745876,0.654145754779731,0.653198498219911,0.653198498219911, + +00:09:35, +0.00142161160300671,0.00142161160300671,0.00142601232879149,0.0014245411950639,0.00141947640917863,0.00141297188266402,0.00140663031090839,0.00140161049007134,0.00139881458591792,0.00139881458591792, +0.00142161160300671,0.00142161160300671,0.00142601232879149,0.0014245411950639,0.00141947640917863,0.00141297188266402,0.00140663031090839,0.00140161049007134,0.00139881458591792,0.00139881458591792, +0.00397456130335338,0.00397456130335338,0.00398362882955253,0.00397876028902396,0.00396535609875139,0.0039485421645158,0.0039321877303566,0.00391919274795486,0.00391192166912847,0.00391192166912847, +0.0122724346527122,0.0122724346527122,0.0122919316008191,0.0122750918155031,0.0122359781041604,0.0121879939212661,0.0121413994876403,0.0121041903054665,0.0120832410923047,0.0120832410923047, +0.0346355381660898,0.0346355381660898,0.0346694775619363,0.034618109316584,0.0345144391513419,0.0343900209969718,0.0342693038349984,0.0341722006832637,0.0341170134322218,0.0341170134322218, +0.0873692268929882,0.0873692268929882,0.0874079878002762,0.0872717397356413,0.0870285720626623,0.0867433036776851,0.0864663994032694,0.0862411342660591,0.0861110623487066,0.0861110623487066, +0.195240984847672,0.195240984847672,0.195240463797906,0.194928218537623,0.194429157574289,0.19385791994566,0.193302116767716,0.192841459640108,0.192567502180116,0.192567502180116, +0.383864474301235,0.383864474301235,0.38373847096192,0.383120857866288,0.382232403963462,0.381244790016611,0.380278810415282,0.379451751440397,0.378928961173465,0.378928961173465, +0.661386695817357,0.661386695817357,0.661073031251296,0.659996798557774,0.658630547333013,0.657173135346476,0.655734752708392,0.654429545962323,0.653483018249615,0.653483018249615, + +00:09:36, +0.00143342657796242,0.00143342657796242,0.00143785589194673,0.00143637970521155,0.00143128635471541,0.00142474152691231,0.00141835891886898,0.00141330627504159,0.00141049221079257,0.00141049221079257, +0.00143342657796242,0.00143342657796242,0.00143785589194673,0.00143637970521155,0.00143128635471541,0.00142474152691231,0.00141835891886898,0.00141330627504159,0.00141049221079257,0.00141049221079257, +0.00400116844948396,0.00400116844948396,0.0040102790794073,0.00400539604772189,0.00399193526840324,0.0039750426424027,0.00395860786133598,0.00394554846038817,0.00393824174418873,0.00393824174418873, +0.0123374771172773,0.0123374771172773,0.0123570347574336,0.0123401560457376,0.0123009249040727,0.0122527788679395,0.0122060182894401,0.0121686755815937,0.0121476526098861,0.0121476526098861, +0.0347757221910349,0.0347757221910349,0.0348097132450474,0.0347582654418762,0.0346543954458142,0.0345297006114993,0.0344086963285193,0.0343113620544398,0.0342560478537336,0.0342560478537336, +0.087623216087062,0.087623216087062,0.0876619586822558,0.0875256051505425,0.087282200776787,0.0869965890682355,0.0867193189278722,0.0864937601392221,0.08636353048842,0.08636353048842, +0.195612076207123,0.195612076207123,0.195611434421039,0.195299169634299,0.194800024112745,0.194228591854439,0.193672553183482,0.193211715713762,0.192937677477584,0.192937677477584, +0.384271652409718,0.384271652409718,0.384145555941136,0.383528255240599,0.382640188431403,0.38165288911972,0.380687167296927,0.379860358890529,0.379337772531402,0.379337772531402, +0.661664596538499,0.661664596538499,0.66135117166962,0.660275836322264,0.658910654437465,0.657454294000836,0.656016913717801,0.654712646841951,0.653766846666749,0.653766846666749, + +00:09:37, +0.00144530981860306,0.00144530981860306,0.00144976781499629,0.00144828657885793,0.00144316458920084,0.00143657933402603,0.00143015554968237,0.00142506996672779,0.00142223767763846,0.00142223767763846, +0.00144530981860306,0.00144530981860306,0.00144976781499629,0.00144828657885793,0.00144316458920084,0.00143657933402603,0.00143015554968237,0.00142506996672779,0.00142223767763846,0.00142223767763846, +0.00402788467182342,0.00402788467182342,0.00403703845744425,0.00403214093722901,0.00401862351052093,0.00400165208146079,0.00398513682086442,0.00397201288799388,0.00396467047084143,0.00396467047084143, +0.012402688505918,0.012402688505918,0.012422306754377,0.012405389138943,0.0123660406261976,0.01231773277824,0.0122708060652915,0.0122333298274597,0.0122122330932205,0.0122122330932205, +0.0349160832996942,0.0349160832996942,0.0349501257049265,0.0348985984613011,0.0347945290461932,0.0346695580640986,0.0345482671658619,0.0344507021574393,0.0343952612181953,0.0343952612181953, +0.0878772185604943,0.0878772185604943,0.0879159424406737,0.0877794837515762,0.087535843660991,0.087249890011468,0.0869722554105906,0.0867464040798504,0.0866160172970525,0.0866160172970525, +0.195982793103461,0.195982793103461,0.195982030479156,0.195669746528428,0.19517051770658,0.194598892794546,0.194042620744249,0.193581604601955,0.193307486462827,0.193307486462827, +0.384678070873528,0.384678070873528,0.384551881474678,0.383934892804469,0.383047213367863,0.382060229797943,0.3810947671291,0.380268210292401,0.379745828213244,0.379745828213244, +0.661941818785283,0.661941818785283,0.661628632906819,0.660554192727721,0.659190078119084,0.657734767716252,0.656298388535852,0.654995060181341,0.654049986236967,0.654049986236967, + +00:09:38, +0.0014572615123569,0.0014572615123569,0.00146174828518501,0.00146026200329968,0.0014551113001299,0.0014484854917442,0.0014420203912991,0.00143690175322281,0.00143405117461702,0.00143405117461702, +0.0014572615123569,0.0014572615123569,0.00146174828518501,0.00146026200329968,0.0014551113001299,0.0014484854917442,0.0014420203912991,0.00143690175322281,0.00143405117461702,0.00143405117461702, +0.00405471005655743,0.00405471005655743,0.00406390704934951,0.00405899504327209,0.00404542091133541,0.0040283705687054,0.0040117746967744,0.00399858611924026,0.0039912079378913,0.0039912079378913, +0.012468068578287,0.012468068578287,0.0124877473506739,0.0124707908541631,0.012431325030405,0.0123828554135314,0.0123357625782564,0.0122981528075041,0.0122769823074845,0.0122769823074845, +0.0350566206996803,0.0350566206996803,0.0350907141494986,0.035039107582634,0.0349348391604498,0.0348095925637012,0.0346880155573828,0.0345902202038513,0.0345346527378417,0.0345346527378417, +0.0881312332875967,0.0881312332875967,0.08816993805208,0.088033374514482,0.0877894996883565,0.0875032054775154,0.0872252078191679,0.0869990650539373,0.0868685217396017,0.0868685217396017, +0.196353135557742,0.196353135557742,0.196352251996,0.196039949242172,0.195540638371385,0.194968822772151,0.194412319446816,0.193951126294175,0.193676929121396,0.193676929121396, +0.38508373183841,0.38508373183841,0.384957449709115,0.384340772705068,0.383453480914644,0.38246681418249,0.38150161203138,0.380675307756689,0.380153130325429,0.380153130325429, +0.662218365285614,0.662218365285614,0.661905417694671,0.660831870514708,0.659468821123881,0.658014559239719,0.656579179909039,0.655276788727983,0.654332439710686,0.654332439710686, + +00:09:39, +0.0014692818461837,0.0014692818461837,0.0014737974892875,0.00147230616536277,0.00146712667452788,0.00146046018733829,0.00145395363120473,0.00144880182215678,0.0014459328894282,0.0014459328894282, +0.0014692818461837,0.0014692818461837,0.0014737974892875,0.00147230616536277,0.00146712667452788,0.00146046018733829,0.00145395363120473,0.00144880182215678,0.0014459328894282,0.0014459328894282, +0.00408164468883454,0.00408164468883454,0.00409088493977301,0.00408595845054132,0.00407232755604025,0.00405519819011406,0.00403852157586085,0.00402526824155859,0.00401785423310653,0.00401785423310653, +0.0125336170930103,0.0125336170930103,0.0125533563043281,0.0125363609494206,0.012496777875539,0.0124481465341433,0.0124008875903555,0.0123631442851191,0.0123419000168047,0.0123419000168047, +0.0351973336000917,0.0351973336000917,0.0352314777881824,0.0351797920151449,0.0350753249980416,0.0349498033207088,0.034827940714889,0.0347299154067007,0.0346742216263357,0.0346742216263357, +0.0883852592485667,0.0883852592485667,0.0884239444989063,0.0882872764208861,0.0880431678378547,0.0877565344423922,0.0874781751272143,0.0872517420333323,0.0871210427869162,0.0871210427869162, +0.19672310359593,0.19672310359593,0.196722099000203,0.196409777802593,0.195910386127684,0.195338381798396,0.194781649292984,0.194320280784937,0.194046005443884,0.194046005443884, +0.385488637442992,0.385488637442992,0.385362262783885,0.384745897082433,0.383858993206462,0.382872644397563,0.381907704116419,0.381081653387203,0.38055968096756,0.38055968096756, +0.662494238752273,0.662494238752273,0.662181528749813,0.661108872408601,0.659746886182664,0.658293671303049,0.656859290568708,0.655557835214235,0.654614209823189,0.654614209823189, + +00:09:40, +0.00148137100657211,0.00148137100657211,0.00148591561360566,0.00148441925139995,0.00147921089894775,0.00147250360760953,0.00146595545641724,0.00146077036069445,0.00145788300930785,0.00145788300930785, +0.00148137100657211,0.00148137100657211,0.00148591561360566,0.00148441925139995,0.00147921089894775,0.00147250360760953,0.00146595545641724,0.00146077036069445,0.00145788300930785,0.00145788300930785, +0.0041086886527689,0.0041086886527689,0.0041179722123312,0.004113031242693,0.00409934352879434,0.00408213503062922,0.00406537754388381,0.00405205934134584,0.00404460944322138,0.00404460944322138, +0.0125993338076977,0.0125993338076977,0.0126191333723335,0.0126020991817287,0.0125623989194291,0.0125136058993833,0.0124661808625788,0.0124283040226611,0.0124069859842689,0.0124069859842689, +0.0353382212115211,0.0353382212115211,0.0353724158318983,0.0353206509696075,0.0352159857699217,0.0350901895470016,0.0349680418516468,0.0348697869804565,0.0348139670987773,0.0348139670987773, +0.0886392954294623,0.0886392954294623,0.0886779607694407,0.0885411884582759,0.0882968470943207,0.0880098758879691,0.0877311563141831,0.0875044339957166,0.0873735794156719,0.0873735794156719, +0.197092697248845,0.197092697248845,0.197091571525237,0.196779232241603,0.196279761000882,0.195707569889342,0.195150610289508,0.194689068073732,0.194414715425871,0.194414715425871, +0.385892789818802,0.385892789818802,0.38576632283131,0.385150268069487,0.384263752370969,0.383277722560377,0.382313045489956,0.381487249280901,0.380965482232423,0.380965482232423, +0.662769441883035,0.662769441883035,0.662456968773841,0.661385201119685,0.660024276011143,0.658572106622983,0.657138723231157,0.655838202357431,0.65489529929473,0.65489529929473, + +00:09:41, +0.00149352917953712,0.00149352917953712,0.00149810284396604,0.0014966014472882,0.00149136415946762,0.00148461593888639,0.00147802605348439,0.00147280755553263,0.00146990172102512,0.00146990172102512, +0.00149352917953712,0.00149352917953712,0.00149810284396604,0.0014966014472882,0.00149136415946762,0.00148461593888639,0.00147802605348439,0.00147280755553263,0.00146990172102512,0.00146990172102512, +0.00413584203144299,0.00413584203144299,0.00414516894960977,0.00414021350235228,0.00412646891272463,0.00410918117416092,0.00409234268557113,0.00407895950396729,0.00407147365393885,0.00407147365393885, +0.0126652184789552,0.0126652184789552,0.0126850783106859,0.0126680053071022,0.0126281879189016,0.0125792332675476,0.0125316421548977,0.0124936317814619,0.012472239971938,0.012472239971938, +0.0354792827460638,0.0354792827460638,0.0355135274930772,0.0354616836583071,0.0353568206885466,0.0352307504559466,0.0351083181823904,0.035009834141041,0.0349538883717121,0.0349538883717121, +0.0888933408221776,0.0888933408221776,0.0889319858578031,0.0887951096199759,0.0885505364484289,0.0882632288019492,0.0879841503653459,0.0877571399245788,0.0876261306083474,0.0876261306083474, +0.197461916552117,0.197461916552117,0.197460669609358,0.197148312595908,0.196648763021215,0.196076387065918,0.195519202448039,0.195057488164977,0.194783059067881,0.194783059067881, +0.386296191090287,0.386296191090287,0.386169631976615,0.385553887792061,0.384667760528767,0.383682050781173,0.382717638250838,0.381892097527911,0.381370536206004,0.381370536206004, +0.663043977360764,0.663043977360764,0.662731740453419,0.661660859343267,0.660300993310035,0.658849867901286,0.657417480597749,0.656117892859983,0.655175710830642,0.655175710830642, + +00:09:42, +0.00150575655061748,0.00150575655061748,0.00151035936571735,0.00150885293842618,0.00150358664168821,0.00149679736702202,0.00149016560848118,0.00148491359289758,0.00148198921087983,0.00148198921087983, +0.00150575655061748,0.00150575655061748,0.00151035936571735,0.00150885293842618,0.00150358664168821,0.00149679736702202,0.00149016560848118,0.00148491359289758,0.00148198921087983,0.00148198921087983, +0.00416310490691032,0.00416310490691032,0.00417247523316637,0.00416750531111593,0.00415370378992885,0.00413633670358955,0.00411941708462116,0.00410596881375923,0.00409844694993333,0.00409844694993333, +0.0127312708623957,0.0127312708623957,0.0127511908743943,0.0127340790805696,0.0126941446297912,0.0126450283959331,0.0125972712262762,0.0125591273218404,0.0125376617408566,0.0125376617408566, +0.0356205174173262,0.0356205174173262,0.0356548119856683,0.035602889295049,0.0354978289678849,0.0353714852624062,0.0352487689233303,0.0351500561058383,0.0350939846631402,0.0350939846631402, +0.0891473944244179,0.0891473944244179,0.0891860187639202,0.0890490389051221,0.0888042348966681,0.0885165921778424,0.0882371562717683,0.0880098588091909,0.0878786953531998,0.0878786953531998, +0.197830761546135,0.197830761546135,0.197829393295565,0.197517018906966,0.197017392223699,0.196444833353873,0.195887425785081,0.19542554106796,0.195151036375324,0.195151036375324, +0.386698843374833,0.386698843374833,0.386572192337952,0.385956758368907,0.38507101979343,0.384085631163239,0.383121484491034,0.382296200211544,0.381774844967504,0.381774844967504, +0.663317847853523,0.663317847853523,0.663005846460381,0.661935849759778,0.660577040765167,0.659126957824862,0.657695565355008,0.656396909409483,0.655455447121434,0.655455447121434, + +00:09:43, +0.00151805330487324,0.00151805330487324,0.00152268536372797,0.00152117390973174,0.00151587853073031,0.00150904807739168,0.0015023743070073,0.00149708865854242,0.00149414566469995,0.00149414566469995, +0.00151805330487324,0.00151805330487324,0.00152268536372797,0.00152117390973174,0.00151587853073031,0.00150904807739168,0.0015023743070073,0.00149708865854242,0.00149414566469995,0.00149414566469995, +0.0041904773601982,0.0041904773601982,0.00419989114353342,0.00419490674955509,0.00418104824147832,0.00416360170076858,0.00414660082370544,0.00413308735403164,0.00412552941485326,0.00412552941485326, +0.0127974907126507,0.0127974907126507,0.0128174708174921,0.0128003202561837,0.0127602688069523,0.0127109910408483,0.0126630678346821,0.0126247904031138,0.0126032510510654,0.0126032510510654, +0.0357619244404339,0.0357619244404339,0.0357962685251475,0.0357442670951666,0.0356390098234253,0.0355123931827467,0.0353893932921618,0.0352904520937024,0.0352342551925245,0.0352342551925245, +0.0894014552396749,0.0894014552396749,0.0894400584935008,0.0893029753186374,0.0890579414413167,0.0887699650149417,0.0884901730302853,0.0882625896445837,0.0881312726442408,0.0881312726442408, +0.198199232275994,0.198199232275994,0.198197742631544,0.197885351220931,0.197385648648085,0.196812908783726,0.196255280321939,0.195793226796799,0.195518647358452,0.195518647358452, +0.387100748782782,0.387100748782782,0.386974006026413,0.386358881911724,0.385473532271519,0.384488465802928,0.383524586295656,0.382699559408312,0.382178410589359,0.382178410589359, +0.663591056014674,0.663591056014674,0.663279289451833,0.662210175034874,0.660852421047583,0.659403379065846,0.657972980174725,0.656675254678808,0.655734510842899,0.655734510842899, + +00:09:44, +0.00153041962688317,0.00153041962688317,0.00153508102238339,0.00153356454563943,0.00152824001123228,0.00152136825489026,0.00151465233418461,0.00150933293774468,0.00150637126783903,0.00150637126783903, +0.00153041962688317,0.00153041962688317,0.00153508102238339,0.00153356454563943,0.00152824001123228,0.00152136825489026,0.00151465233418461,0.00150933293774468,0.00150637126783903,0.00150637126783903, +0.00421795947131051,0.00421795947131051,0.00422741676022087,0.00422241789721808,0.00420850234742067,0.0041909762465273,0.00417389398447148,0.00416031520707088,0.00415272113132388,0.00415272113132388, +0.0128638777833817,0.0128638777833817,0.0128839178930487,0.0128667285870335,0.0128265602042702,0.0127771209576249,0.0127290317370987,0.0126906207836088,0.0126690076616114,0.0126690076616114, +0.0359035030320396,0.0359035030320396,0.0359378963285249,0.035885816275529,0.0357803624721844,0.0356534734348458,0.0355301905080731,0.0354310213249657,0.0353746991807986,0.0353746991807986, +0.0896555222772021,0.0896555222772021,0.0896941040580112,0.0895569178712071,0.0893116550904177,0.0890233463182978,0.0887431996434774,0.0885153314315229,0.0883838614812124,0.0883838614812124, +0.198567328791453,0.198567328791453,0.198565717669622,0.198253309588611,0.197753532338803,0.197180613390715,0.196622766084667,0.196160545370385,0.195885892032308,0.195885892032308, +0.387501909417454,0.387501909417454,0.387375075146055,0.38676026052517,0.385875300062605,0.384890556789677,0.383926945742977,0.38310217718795,0.382581235137253,0.382581235137253, +0.663863604482981,0.663863604482981,0.663552072070259,0.662483837819541,0.66112713681364,0.659679134281716,0.658249727714061,0.656952931326221,0.65601290465621,0.65601290465621, + +00:09:45, +0.00154285570074235,0.00154285570074235,0.00154754652558384,0.00154602503009804,0.00154067126734762,0.00153375808392982,0.00152699987465462,0.00152164661530369,0.00151866620517372,0.00151866620517372, +0.00154285570074235,0.00154285570074235,0.00154754652558384,0.00154602503009804,0.00154067126734762,0.00153375808392982,0.00152699987465462,0.00152164661530369,0.00151866620517372,0.00151866620517372, +0.00424555131923047,0.00424555131923047,0.00425505216171898,0.00425003883263316,0.00423606618678267,0.0042184604206736,0.00420129664754546,0.00418765245414245,0.00418002218094987,0.00418002218094987, +0.0129304318272909,0.0129304318272909,0.0129505318531802,0.012933303825255,0.0128930185746723,0.012843417900629,0.0127951626895357,0.012756618220673,0.0127349313305599,0.0127349313305599, +0.0360452524103307,0.0360452524103307,0.036079694614353,0.0360275360545491,0.0359218861327147,0.0357947252381007,0.0356711597917533,0.0355717630214471,0.0355153158503759,0.0355153158503759, +0.0899095945519903,0.0899095945519903,0.0899481544746503,0.0898108655792536,0.0895653748577548,0.0892767350986955,0.0889962351196458,0.088768083176485,0.0886364608695629,0.0886364608695629, +0.198935051146879,0.198935051146879,0.19893331846672,0.198620894065413,0.198121043344922,0.197547947214751,0.196989883104027,0.196527496812339,0.196252770416678,0.196252770416678, +0.387902327375163,0.387902327375163,0.387775401793914,0.387160896306889,0.386276325259287,0.385291906206023,0.384328564904444,0.383504055613425,0.382983320670141,0.382983320670141, +0.664135495882711,0.664135495882711,0.663824196943621,0.662756840750198,0.661401190705119,0.659954226115388,0.658525810615643,0.657229941995472,0.656290631208028,0.656290631208028, + +00:09:46, +0.00155536171005969,0.00155536171005969,0.00156008205674179,0.00155855554656815,0.00155317248274248,0.00154621774843706,0.00153941711257605,0.00153402987553819,0.00153103066110124,0.00153103066110124, +0.00155536171005969,0.00155536171005969,0.00156008205674179,0.00155855554656815,0.00155317248274248,0.00154621774843706,0.00153941711257605,0.00153402987553819,0.00153103066110124,0.00153103066110124, +0.00427325298192342,0.00427325298192342,0.00428279742550112,0.00427776963331138,0.00426373983757302,0.00424605430199677,0.00422880889253499,0.0042150991754937,0.00420743264431811,0.00420743264431811, +0.0129971525961331,0.0129971525961331,0.013017312449061,0.0130000457220425,0.0129596436701395,0.0129098816232721,0.0128614604470404,0.0128227824706861,0.0128010218150055,0.0128010218150055, +0.0361871717950377,0.0361871717950377,0.0362216626027341,0.0361694256521911,0.0360635800251122,0.0359361478134365,0.0358123003654004,0.03571267640646,0.0356561044251567,0.0356561044251567, +0.0901636710847426,0.0901636710847426,0.0902022087663248,0.0900648174649121,0.0898190997628266,0.0895301303726282,0.0892492784727885,0.0890208438916329,0.0888890698204226,0.0888890698204226, +0.199302399401207,0.199302399401207,0.1993005450843,0.198988104711298,0.198488181720094,0.19791491030037,0.197356631415431,0.19689408115096,0.196619282536042,0.196619282536042, +0.388302004745238,0.388302004745238,0.388174988060027,0.387560791347525,0.386676609947207,0.385692516127625,0.384729445844702,0.383905196740962,0.383384669240258,0.383384669240258, +0.664406732823735,0.664406732823735,0.664095666685456,0.663029186448795,0.661674585349317,0.660228657195318,0.658801231507673,0.657506289315896,0.656567693130593,0.656567693130593, + +00:09:47, +0.00156793783795551,0.00156793783795551,0.00157268779877956,0.00157115627801975,0.0015657438405933,0.00155874743185099,0.00155190423162235,0.0015464829022838,0.00154346481953696,0.00154346481953696, +0.00156793783795551,0.00156793783795551,0.00157268779877956,0.00157115627801975,0.0015657438405933,0.00155874743185099,0.00155190423162235,0.0015464829022838,0.00154346481953696,0.00154346481953696, +0.00430106453633964,0.00430106453633964,0.00431065262802663,0.00430561037574936,0.00429152337678515,0.00427375796827026,0.0042564307980319,0.00424265545035656,0.00423495260100044,0.00423495260100044, +0.0130640398407262,0.0130640398407262,0.0130842594309349,0.0130669540276597,0.0130264352417172,0.0129765118780226,0.0129279247637092,0.0128891132890708,0.0128672788710829,0.0128672788710829, +0.0363292604074413,0.0363292604074413,0.0363637995153279,0.0363114842899779,0.036205443371024,0.036077740383313,0.0359536114527291,0.0358537607048201,0.0357970641305364,0.0357970641305364, +0.0904177509018504,0.0904177509018504,0.090456265961625,0.090318772556006,0.0900728288308231,0.0897835311622744,0.0895023287225758,0.0892736125947919,0.0891416873505804,0.0891416873505804, +0.199669373617885,0.199669373617885,0.199667397588324,0.199354941590736,0.19885494752251,0.198281502696681,0.197723011058902,0.197260298419179,0.196985428419524,0.196985428419524, +0.388700943610045,0.388700943610045,0.388573836027454,0.387959947730743,0.387076156205074,0.386092388623278,0.385129590621608,0.384305602620055,0.383785282893147,0.383785282893147, +0.664677317901626,0.664677317901626,0.66436648389498,0.663300877522914,0.661947323359153,0.660502430135605,0.659075993004017,0.657781975902513,0.656844093041831,0.656844093041831, + +00:09:48, +0.00158058426705916,0.00158058426705916,0.00158536393412693,0.00158382740692983,0.00157838552358434,0.0015713473171204,0.00156446141497929,0.00155900587889062,0.00155596886391192,0.00155596886391192, +0.00158058426705916,0.00158058426705916,0.00158536393412693,0.00158382740692983,0.00157838552358434,0.0015713473171204,0.00156446141497929,0.00155900587889062,0.00155596886391192,0.00155596886391192, +0.00432898605841718,0.00432898605841718,0.00433861784474362,0.00433356113543218,0.00431941688040009,0.00430157149625454,0.00428416244161502,0.00427032135695036,0.00426258212955637,0.00426258212955637, +0.0131310933109626,0.0131310933109626,0.0131513725481258,0.0131340284914508,0.0130933930395264,0.0130433084164165,0.0129945553926982,0.012955610430304,0.0129337022539784,0.0129337022539784, +0.0364715174703798,0.0364715174703798,0.0365061045753586,0.0364537111909988,0.0363474753936558,0.036219502171733,0.0360950922789784,0.0359950151428533,0.0359381941934138,0.0359381941934138, +0.0906718330353683,0.0906718330353683,0.0907103250947998,0.0905727298860217,0.0903265610926002,0.0900369364954726,0.0897553848943263,0.0895263883094259,0.089394312482459,0.089394312482459, +0.200035973864832,0.200035973864832,0.200033876049204,0.199721404772654,0.199221340814854,0.198647724457323,0.198089022079022,0.197626148654512,0.19735120810085,0.19735120810085, +0.389099146044999,0.389099146044999,0.388971947772292,0.388358367533247,0.387474966104681,0.386491525754936,0.38552900128625,0.384705275293488,0.384185163667666,0.384185163667666, +0.664947253697761,0.664947253697761,0.664636651157188,0.663571916565871,0.662219407333264,0.660775547536085,0.659350097704311,0.658057004356129,0.657119833545447,0.657119833545447, + +00:09:49, +0.0015933011795066,0.0015933011795066,0.00159811064471877,0.00159656911528002,0.00159109771390537,0.00158401758670159,0.00157708884534257,0.00157159898822081,0.00156854297717042,0.00156854297717042, +0.0015933011795066,0.0015933011795066,0.00159811064471877,0.00159656911528002,0.00159109771390537,0.00158401758670159,0.00157708884534257,0.00157159898822081,0.00156854297717042,0.00156854297717042, +0.00435701762308468,0.00435701762308468,0.0043666931500918,0.0043616219868362,0.00434742042338931,0.0043294949616999,0.00431200389985298,0.00429809697248456,0.00429032130753585,0.00429032130753585, +0.0131983127558202,0.0131983127558202,0.0132186515490491,0.0132012688618515,0.0131605168127746,0.0131102709890686,0.0130613520862347,0.0130222736479282,0.0130002917179407,0.0130002917179407, +0.0366139422082568,0.0366139422082568,0.0366485770076229,0.0365961055799164,0.0364896753177793,0.036361432404249,0.0362367420709191,0.0361364389484029,0.0360794938421978,0.0360794938421978, +0.0909259165229902,0.0909259165229902,0.0909643852057325,0.0908266884940849,0.0905802955846559,0.0902903454056974,0.0900084460189827,0.0897791700646133,0.0896469442440918,0.0896469442440918, +0.200402200214389,0.200402200214389,0.200399980541754,0.200087494330392,0.199587361664253,0.199013575640416,0.198454664524883,0.197991631899012,0.197716621618297,0.197716621618297, +0.389496614118591,0.389496614118591,0.389369325363698,0.388756052824803,0.387873041710925,0.386889929577727,0.385927679882968,0.385104216797355,0.384584313596013,0.384584313596013, +0.665216542779415,0.665216542779415,0.664906171042947,0.66384230615681,0.662490839856104,0.661048011982432,0.659623548194056,0.65833137726343,0.657394917231026,0.657394917231026, + +00:09:50, +0.00160608875693807,0.00160608875693807,0.00161092811199273,0.00160938158455426,0.0016038805932493,0.0015967584225559,0.00158978670491541,0.00158426241264619,0.00158118734176763,0.00158118734176763, +0.00160608875693807,0.00160608875693807,0.00161092811199273,0.00160938158455426,0.0016038805932493,0.0015967584225559,0.00158978670491541,0.00158426241264619,0.00158118734176763,0.00158118734176763, +0.00438515930426422,0.00438515930426422,0.0043948786175054,0.00438979300343195,0.00437553407971753,0.00435752843934926,0.00433995524830702,0.00432598237316155,0.00431817021148209,0.00431817021148209, +0.0132656979233735,0.0132656979233735,0.0132860961812224,0.0132686748864,0.0132278063097671,0.0131773993456836,0.0131283145956275,0.0130891026945616,0.0130670470162918,0.0130670470162918, +0.0367565338470483,0.0367565338470483,0.0367912160384962,0.0367386666829739,0.0366320423697392,0.0365035303079714,0.0363785600568613,0.0362780313508377,0.0362209623068156,0.0362209623068156, +0.0911800004080244,0.0911800004080244,0.0912184453399162,0.0910806474249353,0.0908340313491054,0.0905437569320347,0.0902615111330876,0.0900319568950226,0.0898995816690982,0.0898995816690982, +0.200768052743273,0.200768052743273,0.200765711145146,0.200453210341656,0.199953010142231,0.199379056308517,0.198819938450048,0.198356748199222,0.198081669014647,0.198081669014647, +0.389893349892404,0.389893349892404,0.38976597086391,0.389153005668256,0.388270385081824,0.387287602139973,0.386325628449365,0.38550242916107,0.384982734703738,0.384982734703738, +0.665485187699861,0.665485187699861,0.665175046109098,0.664112048860804,0.662761623498045,0.661319826046255,0.659896347044717,0.658605097197079,0.657669346674125,0.657669346674125, + +00:09:51, +0.00161894718049578,0.00161894718049578,0.00162381651688687,0.00162226499573647,0.00161673434280985,0.00160957000614746,0.00160255517540623,0.00159699633404588,0.00159390213966722,0.00159390213966722, +0.00161894718049578,0.00161894718049578,0.00162381651688687,0.00162226499573647,0.00161673434280985,0.00160957000614746,0.00160255517540623,0.00159699633404588,0.00159390213966722,0.00159390213966722, +0.00441341117487419,0.00441341117487419,0.00442317431941599,0.00441807425768697,0.00440375792234566,0.00438567200294109,0.00436801656153383,0.00435397763417949,0.00434612891693434,0.00434612891693434, +0.0133332485608039,0.0133332485608039,0.0133537061912764,0.0133362463117478,0.0132952612779175,0.0132446932350669,0.0131954426712788,0.0131560973219099,0.0131339679014382,0.0131339679014382, +0.0368992916143095,0.0368992916143095,0.0369340208959402,0.0368813937280021,0.0367745757774602,0.0366457951115748,0.0365205454666618,0.0364197915810588,0.0363625988187199,0.0363625988187199, +0.0914340837393695,0.0914340837393695,0.0914725045484291,0.0913346057289024,0.0910877674336569,0.0907971701191582,0.0905145792787596,0.0902847478408894,0.0901522237966606,0.0901522237966606, +0.20113353153253,0.20113353153253,0.201131067942863,0.200818552888475,0.200318286324666,0.19974416652857,0.199184843912496,0.19872149760613,0.19844635033714,0.19844635033714, +0.390289355421132,0.390289355421132,0.390161886328261,0.389549228119551,0.388666998268539,0.387684545483212,0.386722849016334,0.385899914407395,0.385380429009767,0.385380429009767, +0.665753190998465,0.665753190998465,0.665443278898549,0.664381147228949,0.663031760815467,0.661590992285195,0.660168496813814,0.658878166715814,0.657943124436375,0.657943124436375, + +00:09:52, +0.00163187663082157,0.00163187663082157,0.00163677603983739,0.00163521952930829,0.00162965914327924,0.00162245251844084,0.00161539443802628,0.00160980093380399,0.00160668755233903,0.00160668755233903, +0.00163187663082157,0.00163187663082157,0.00163677603983739,0.00163521952930829,0.00162965914327924,0.00162245251844084,0.00161539443802628,0.00160980093380399,0.00160668755233903,0.00160668755233903, +0.00444177330683216,0.00444177330683216,0.00445158032725539,0.00444646582106876,0.00443209202323364,0.00441392572521223,0.00439618791308837,0.00438208282973509,0.00437419749843064,0.00437419749843064, +0.0134009644144114,0.0134009644144114,0.0134214813249658,0.0134039828836705,0.0133628814637588,0.0133121524051352,0.013262736062694,0.0132232572807767,0.0132010541248813,0.0132010541248813, +0.0370422147391822,0.0370422147391822,0.0370769908095098,0.037024285944426,0.0369172747704541,0.0367882260453055,0.0366626975317309,0.0365617188715072,0.036504402610896,0.036504402610896, +0.0916881655714899,0.0916881655714899,0.0917265618879107,0.0915885624618812,0.0913415028915869,0.0910505840173042,0.0907676495036691,0.0905375419479916,0.0904048696715,0.0904048696715, +0.201498636667494,0.201498636667494,0.201496051022655,0.201183522057148,0.200683190291741,0.200108906371861,0.199549380974583,0.199085880175124,0.19881066563743,0.19881066563743, +0.390684632752601,0.390684632752601,0.390557073805207,0.389944722227749,0.389062883315392,0.38808076164221,0.38711934360807,0.386296674552448,0.385777398526413,0.385777398526413, +0.666020555200783,0.666020555200783,0.665710871940375,0.664649603798464,0.663301254350862,0.661861513243018,0.660440000045024,0.659150588364541,0.65821625306557,0.65821625306557, + +00:09:53, +0.00164487728805464,0.00164487728805464,0.0016498068607764,0.00164824536524676,0.00164265517484596,0.00163540613989873,0.00162830467348739,0.00162267639280722,0.00161954376075672,0.00161954376075672, +0.00164487728805464,0.00164487728805464,0.0016498068607764,0.00164824536524676,0.00164265517484596,0.00163540613989873,0.00162830467348739,0.00162267639280722,0.00161954376075672,0.00161954376075672, +0.00447024577105776,0.00447024577105776,0.00448009671145855,0.00447496776404761,0.00446053645334336,0.00444228967790077,0.00442446937552674,0.00441029803302647,0.00440237602951076,0.00440237602951076, +0.0134688452296247,0.0134688452296247,0.0134894213271802,0.0134718843470788,0.0134306666129542,0.013379776602928,0.0133301945184935,0.0132905823210743,0.0132683054372287,0.0132683054372287, +0.0371853024524011,0.0371853024524011,0.0372201250103593,0.0371673425632722,0.0370601385798267,0.0369308223409883,0.0368050154850397,0.0367038124561705,0.0366463729178693,0.0366463729178693, +0.0919422449643916,0.0919422449643916,0.0919806164205368,0.0918425166853078,0.0915952367817162,0.0913039976822483,0.0910207208610144,0.0907903382676261,0.0906575183438521,0.0906575183438521, +0.201863368237735,0.201863368237735,0.20186066047649,0.201548117938208,0.2010477221279,0.200473275913976,0.199913549702991,0.199449895965942,0.19917461497154,0.19917461497154, +0.39107918392779,0.39107918392779,0.390951535336339,0.390339490035052,0.389458042259884,0.388476252644986,0.387515114242093,0.386692711605728,0.386173645259398,0.386173645259398, +0.666287282818653,0.666287282818653,0.665977827749908,0.664917421092782,0.663570106632921,0.662131391449713,0.66071085926827,0.659422364674432,0.658488735095766,0.658488735095766, + +00:09:54, +0.0016579493318293,0.0016579493318293,0.00166290915912961,0.00166134268302213,0.00165572261719248,0.00164843105047973,0.00164128606199965,0.00163562289144268,0.00163247094539547,0.00163247094539547, +0.0016579493318293,0.0016579493318293,0.00166290915912961,0.00166134268302213,0.00165572261719248,0.00164843105047973,0.00164128606199965,0.00163562289144268,0.00163247094539547,0.00163247094539547, +0.00449882863747558,0.00449882863747558,0.0045087235414665,0.0045035801560996,0.00448909128264156,0.00447076393174896,0.00445286102040904,0.00443862331625596,0.0044306645827189,0.0044306645827189, +0.0135368907510126,0.0135368907510126,0.0135575259419545,0.0135399504460289,0.0134986164703076,0.0134475655746175,0.0133978177864227,0.0133580721918348,0.0133357215882044,0.0133357215882044, +0.0373285539863012,0.0373285539863012,0.0373634227312496,0.0373105628171746,0.0372031664382842,0.0370735832320333,0.0369474985611267,0.0368460715705903,0.0367885089757118,0.0367885089757118, +0.0921963209835982,0.0921963209835982,0.0922346672139958,0.0920964674661347,0.0918489681683856,0.0915574101752809,0.091273792409498,0.0910431358565849,0.0909101688694444,0.0909101688694444, +0.20222772633702,0.20222772633702,0.202224896400516,0.201912340626371,0.201411881921804,0.200837275234752,0.20027735016869,0.199813545042634,0.199538198399813,0.199538198399813, +0.391473010980845,0.391473010980845,0.391345272956406,0.390733533576821,0.389852477132719,0.388871020512828,0.387910162929261,0.387088027570133,0.386569171207868,0.386569171207868, +0.666553376350292,0.666553376350292,0.666244148828836,0.665184601621647,0.663838320176637,0.662400629421587,0.660981076999819,0.659693498163012,0.658760573047371,0.658760573047371, + +00:09:55, +0.00167109294127273,0.00167109294127273,0.00167608311381415,0.00167451166159562,0.00166886164949301,0.00166152742963606,0.00165433878326913,0.00164864060959554,0.00164546928622973,0.00164546928622973, +0.00167109294127273,0.00167109294127273,0.00167608311381415,0.00167451166159562,0.00166886164949301,0.00166152742963606,0.00165433878326913,0.00164864060959554,0.00164546928622973,0.00164546928622973, +0.0045275219750181,0.0045275219750181,0.00453746088572922,0.00453230306570944,0.00451775658010274,0.00449934855650609,0.00448136291830225,0.00446705875063304,0.00445906322960664,0.00445906322960664, +0.0136051007222938,0.0136051007222938,0.0136257949124799,0.0136081809237336,0.0135667307797747,0.0135155190655202,0.013465605613363,0.0134257266412202,0.0134033023266603,0.0134033023266603, +0.0374719685748235,0.0374719685748235,0.0375068832065546,0.0374539459403817,0.0373463575801399,0.0372165079534427,0.037090145996105,0.0369884954518687,0.0369308100220494,0.0369308100220494, +0.0924503927001262,0.0924503927001262,0.0924887133414639,0.092350413876807,0.0921026961214314,0.0918108205631828,0.0915268632133023,0.0912959337771314,0.0911628203094716,0.0911628203094716, +0.202591711063265,0.202591711063265,0.20258875889501,0.202276190220493,0.201775669766283,0.201200904418235,0.200640782446886,0.200176827473511,0.199901415986871,0.199901415986871, +0.391866115939105,0.391866115939105,0.391738288693336,0.391126854881594,0.390246189957817,0.389265067260311,0.388304491673792,0.38748262444197,0.386963978364416,0.386963978364416, +0.666818838280388,0.666818838280388,0.666509837665293,0.665451147881209,0.664105897483392,0.662669229661352,0.661250655742374,0.659963991334258,0.65903176942724,0.65903176942724, + +00:09:56, +0.00168430829500277,0.00168430829500277,0.00168932890323637,0.00168775247941719,0.00168207245041133,0.00167469545631138,0.00166746301649571,0.00166172972664678,0.00165853896273095,0.00165853896273095, +0.00168430829500277,0.00168430829500277,0.00168932890323637,0.00168775247941719,0.00168207245041133,0.00167469545631138,0.00166746301649571,0.00166172972664678,0.00165853896273095,0.00165853896273095, +0.00455632585162858,0.00455632585162858,0.00456630881170863,0.00456113656037351,0.00454653241371213,0.00452804362093143,0.00450997513878313,0.00449560440637711,0.00448757204073575,0.00448757204073575, +0.0136734748863485,0.0136734748863485,0.0136942279811144,0.0136765755225724,0.0136350092844735,0.0135836368201067,0.0135335577453426,0.0134935454165335,0.0134710474005857,0.0134710474005857, +0.0376155454535225,0.0376155454535225,0.0376505056722673,0.0375974911687625,0.0374897112413206,0.037359595741817,0.0372329570276687,0.0371310833386753,0.0370732752960683,0.0370732752960683, +0.0927044591904613,0.0927044591904613,0.0927427538815815,0.092604354995238,0.0923564197161614,0.092064227918202,0.0917799323420659,0.0915487310969766,0.0914154717305727,0.0914154717305727, +0.202955322518493,0.202955322518493,0.202952248064338,0.202639666823529,0.202139085758297,0.201564163552635,0.201003846616981,0.200539743331104,0.200264267801571,0.200264267801571, +0.39225850082312,0.39225850082312,0.392130584568255,0.391519455971106,0.390639182752338,0.389658394895321,0.388698102473285,0.387876504210985,0.387358068715093,0.387358068715093, +0.667083671080191,0.667083671080191,0.666774896733952,0.665717062354113,0.664372841041051,0.662937194658226,0.661519597985163,0.660233846678688,0.659302326728766,0.659302326728766, + +00:09:57, +0.00169759557112572,0.00169759557112572,0.00170264670528963,0.00170106531442344,0.0016953551980986,0.00168793530893855,0.0016806589403708,0.00167489042147102,0.00167168015386536,0.00167168015386536, +0.00169759557112572,0.00169759557112572,0.00170264670528963,0.00170106531442344,0.0016953551980986,0.00168793530893855,0.0016806589403708,0.00167489042147102,0.00167168015386536,0.00167168015386536, +0.00458524033426403,0.00458524033426403,0.00459526738588147,0.0045900807066027,0.00457541885046858,0.00455684919279714,0.0045386977504411,0.00452426035272047,0.00451619108568106,0.00451619108568106, +0.0137420129852283,0.0137420129852283,0.0137628248893931,0.0137451339841025,0.0137034517266943,0.0136519185820129,0.0136016739275468,0.0135615282642294,0.013538956557119,0.013538956557119, +0.0377592838595715,0.0377592838595715,0.0377942893660063,0.0377411977398129,0.037633226659373,0.0375028458353616,0.0373759308950993,0.0372738344712535,0.037215904038522,0.037215904038522, +0.0929585195365342,0.0929585195365342,0.0929967879184286,0.0928582899047849,0.0926101380333307,0.0923176313180287,0.0920329988708601,0.0918015268892555,0.0916681222048067,0.0916681222048067, +0.203318560808792,0.203318560808792,0.203315364016912,0.203002770542486,0.202502129998889,0.201927052730281,0.201366542762528,0.200902292692119,0.200626753916959,0.200626753916959, +0.392650167646668,0.392650167646668,0.392522162595506,0.391911338860311,0.391031457526702,0.390051005419067,0.389090997318732,0.388269668860371,0.38775144423943,0.38775144423943, +0.66734787720761,0.66734787720761,0.66703932849612,0.665982347509593,0.664639153324058,0.66320452688802,0.661787906204034,0.660503066673454,0.659572247431972,0.659572247431972, + +00:09:58, +0.0017109549472342,0.0017109549472342,0.00171603669735222,0.00171445034403539,0.0017087100701912,0.00170124716543749,0.00169392673307523,0.00168812287243431,0.00168489303809175,0.00168489303809175, +0.0017109549472342,0.0017109549472342,0.00171603669735222,0.00171445034403539,0.0017087100701912,0.00170124716543749,0.00169392673307523,0.00168812287243431,0.00168489303809175,0.00168489303809175, +0.00461426548889813,0.00461426548889813,0.00462433667374233,0.00461913556992546,0.00460441595638759,0.00458576533889122,0.00456753082088118,0.00455302665791114,0.00454492043303337,0.00454492043303337, +0.013810714760167,0.013810714760167,0.0138315853780392,0.0138138560490692,0.0137720578479114,0.0137203640940501,0.0136699539043286,0.0136296749299244,0.0136070295425576,0.0136070295425576, +0.0379031830317696,0.0379031830317696,0.0379382335270218,0.037885064892662,0.03777690307347,0.0376462574738934,0.0375190668392722,0.0374167480914273,0.0373586954917376,0.0373586954917376, +0.0932125728256962,0.0932125728256962,0.0932508145415008,0.0931122176942247,0.0928638501591179,0.0925710298457724,0.0922860618801649,0.0920543202325035,0.0919207708096298,0.0919207708096298, +0.203681426044265,0.203681426044265,0.203678106865142,0.203365501488379,0.202864802593141,0.202289572047579,0.201728870971189,0.201264475637397,0.200988874410225,0.200988874410225, +0.393041118416779,0.393041118416779,0.392913024782669,0.392302505557402,0.391423016284605,0.390442900826106,0.389483178194541,0.388662120366793,0.388144106910456,0.388144106910456, +0.667611459107295,0.667611459107295,0.667303135399824,0.666247005803565,0.664904836793524,0.663471228813229,0.662055582861547,0.660771653782431,0.6598415340036,0.6598415340036, + +00:09:59, +0.00172438660040499,0.00172438660040499,0.00172949905628514,0.00172790774515639,0.00172213724380856,0.00171463120321304,0.00170726657227698,0.00170142725739189,0.00169817779335931,0.00169817779335931, +0.00172438660040499,0.00172438660040499,0.00172949905628514,0.00172790774515639,0.00172213724380856,0.00171463120321304,0.00170726657227698,0.00170142725739189,0.00169817779335931,0.00169817779335931, +0.00464340138052421,0.00464340138052421,0.00465351673980656,0.00464830121489075,0.0046335237965042,0.00461479212502042,0.00459647441672689,0.00458190338921579,0.00457376015040231,0.00457376015040231, +0.0138795799515911,0.0138795799515911,0.013900509186974,0.0138827414574163,0.0138408273887922,0.013788973098216,0.0137383974192195,0.0136979851584074,0.0136752661023685,0.0136752661023685, +0.0380472422105474,0.0380472422105474,0.0380823373962019,0.0380290918680777,0.0379207397244162,0.0377898298988464,0.0376623641026634,0.0375598234426072,0.0375016488996222,0.0375016488996222, +0.093466618150696,0.093466618150696,0.0935048328456854,0.0933661374577303,0.0931175551851005,0.092824422589937,0.0925391204558452,0.092307110210633,0.0921734166278715,0.0921734166278715, +0.204043918338997,0.204043918338997,0.204040476725401,0.203727859776192,0.203227103650134,0.20265172160497,0.20209083133469,0.201626292251863,0.201350629362666,0.201350629362666, +0.393431355133751,0.393431355133751,0.393303173130582,0.392692958063827,0.391813861023041,0.390834083104358,0.389874647078556,0.389053860700402,0.388536058694716,0.388536058694716, +0.667874419210737,0.667874419210737,0.667566319879906,0.666511039678717,0.665169893897318,0.663737302883123,0.662322630407061,0.661039610456306,0.660110188897203,0.660110188897203, + +00:10:00, +0.00173789070719693,0.00173789070719693,0.00174303395843009,0.00174143769417003,0.00173563689555113,0.00172808759915279,0.00172067863512915,0.00171480375368612,0.00171153459710547,0.00171153459710547, +0.00173789070719693,0.00173789070719693,0.00174303395843009,0.00174143769417003,0.00173563689555113,0.00172808759915279,0.00172067863512915,0.00171480375368612,0.00171153459710547,0.00171153459710547, +0.00467264807315818,0.00467264807315818,0.00468280764761328,0.00467757770507099,0.00466274243487601,0.00464392961601327,0.00462552860362321,0.00461089061292267,0.00460271030441929,0.00460271030441929, +0.0139486082991301,0.0139486082991301,0.0139695960553276,0.0139517899482963,0.0139097600892089,0.0138577453357045,0.0138070042149394,0.0137664586936505,0.0137436659811987,0.0137436659811987, +0.0381914606379731,0.0381914606379731,0.0382266002160781,0.038173277908473,0.0380647358546546,0.0379335623532783,0.0378058219293548,0.0377030597697972,0.0376447635076693,0.0376447635076693, +0.0937206546096551,0.0937206546096551,0.0937588419312376,0.0936200482948464,0.0933712522082314,0.0930778086443978,0.0927921736891274,0.0925598959129096,0.0924260587477111,0.0924260587477111, +0.204406037811004,0.204406037811004,0.204402473717975,0.204089845524835,0.203589033282903,0.203013501506883,0.202452423948778,0.201987742624493,0.201712018859637,0.201712018859637, +0.393820879791173,0.393820879791173,0.393692609633362,0.393082698374315,0.392203993732322,0.391224554235127,0.390265405942071,0.389444891824856,0.388927301552287,0.388927301552287, +0.66813675993635,0.66813675993635,0.667828884358111,0.666774451564596,0.665434327070157,0.66400275153384,0.662589051276822,0.661306939132673,0.660378214553232,0.660378214553232, + +00:10:01, +0.00175146744364879,0.00175146744364879,0.00175664157960731,0.00175504036693801,0.0017492092014982,0.00174161652962502,0.00173416309826778,0.00172825253814432,0.00172496362625374,0.00172496362625374, +0.00175146744364879,0.00175146744364879,0.00175664157960731,0.00175504036693801,0.0017492092014982,0.00174161652962502,0.00173416309826778,0.00172825253814432,0.00172496362625374,0.00172496362625374, +0.00470200562984156,0.00470200562984156,0.00471220945972835,0.00470696510306508,0.00469207193458618,0.00467317787572299,0.00465469344623951,0.00463998839434452,0.00463177096074035,0.00463177096074035, +0.0140177995416269,0.0140177995416269,0.014038845721449,0.0140210012600811,0.0139788556882479,0.0139266805469166,0.0138757740334075,0.0138350952788188,0.0138122289228856,0.0138122289228856, +0.0383358375577584,0.0383358375577584,0.0383710212308314,0.0383176222579116,0.038208890708272,0.0380774540818759,0.0379494395650411,0.0378464563196001,0.0377880385629648,0.0377880385629648, +0.0939746813060441,0.0939746813060441,0.0940128409037561,0.0938739493104654,0.0936249403308149,0.0933311871083774,0.0930452206765758,0.092812676433929,0.0926786962626545,0.0926786962626545, +0.204767784582195,0.204767784582195,0.204764097967026,0.204451458857098,0.203950591608396,0.203374911861698,0.20281364891318,0.202348826848263,0.20207304299051,0.20207304299051, +0.394209694375942,0.394209694375942,0.394081336278421,0.393471728476891,0.392593416396096,0.391614316193123,0.390655456749853,0.389835215697336,0.389317837436799,0.389317837436799, +0.668398483689564,0.668398483689564,0.668090831243176,0.667037243877701,0.665698138733698,0.66426757718847,0.662854847894057,0.661573642236111,0.660645613399126,0.660645613399126, + +00:10:02, +0.00176511698527727,0.00176511698527727,0.00177032209511357,0.00176871593879815,0.00176285433720591,0.00175521817047662,0.00174772013780974,0.00174177378707664,0.00173846505721162,0.00173846505721162, +0.00176511698527727,0.00176511698527727,0.00177032209511357,0.00176871593879815,0.00176285433720591,0.00175521817047662,0.00174772013780974,0.00174177378707664,0.00173846505721162,0.00173846505721162, +0.00473147411264441,0.00473147411264441,0.00474172223774739,0.00473646347050144,0.00472151235774637,0.00470253696703049,0.00468396900827252,0.00466919679782151,0.00466094218404917,0.00466094218404917, +0.014087153417148,0.014087153417148,0.0141082579229164,0.0140903751303721,0.0140481139242205,0.0139957784714705,0.0139447066157522,0.0139038946562811,0.0138809546704675,0.0138809546704675, +0.0384803722152641,0.0384803722152641,0.0385155996862979,0.0384621241621136,0.0383532035310048,0.0382215043309617,0.0380932162570354,0.037990012340224,0.0379314733141929,0.0379314733141929, +0.094228697348659,0.094228697348659,0.0942668288741595,0.0941278396148037,0.0938786186604826,0.093584557086422,0.0932982605200689,0.0930654508735931,0.0929313282715109,0.0929313282715109, +0.20512915877833,0.20512915877833,0.205125349600549,0.204812699899613,0.204311778747431,0.203735952781702,0.203174506331563,0.202709545020112,0.202433701848635,0.202433701848635, +0.394597800868287,0.394597800868287,0.394469355046491,0.393860050352898,0.392982130991369,0.392003370946474,0.391044801460157,0.390224834268568,0.389707668295451,0.389707668295451, +0.668659592862911,0.668659592862911,0.668352162930917,0.667299419021571,0.665961331296622,0.664531782257144,0.663120022669057,0.661839722178283,0.660912387849396,0.660912387849396, + +00:10:03, +0.00177883950707487,0.00177883950707487,0.00178407567972012,0.00178246458456231,0.00177657247770518,0.00176889269703099,0.00176134992935073,0.00175536767627401,0.00175203906586851,0.00175203906586851, +0.00177883950707487,0.00177883950707487,0.00178407567972012,0.00178246458456231,0.00177657247770518,0.00176889269703099,0.00176134992935073,0.00175536767627401,0.00175203906586851,0.00175203906586851, +0.00476105358266839,0.00476105358266839,0.00477134604229877,0.00476607286804094,0.00475106376549984,0.00473200695184739,0.00471335535244929,0.00469851588672419,0.00469022403805994,0.00469022403805994, +0.014156669662994,0.014156669662994,0.0141778323965478,0.0141599112960106,0.0141175345346733,0.0140650388482118,0.0140138017023216,0.0139728565676202,0.0139498429661935,0.0139498429661935, +0.038625063857506,0.038625063857506,0.0386603348299743,0.038606782868461,0.0384976735702448,0.0383657123484987,0.0382371512542747,0.038133727081488,0.0380750670116427,0.0380750670116427, +0.0944827018515973,0.0944827018515973,0.0945208049586626,0.0943817183233777,0.0941322863101699,0.0938379176883774,0.093551292326776,0.0933182183370873,0.0931839538783693,0.0931839538783693, +0.205490160528978,0.205490160528978,0.20548622875033,0.205173568782811,0.204672594824655,0.204096624383044,0.203534996311486,0.203069897240901,0.202793995531294,0.202793995531294, +0.394985201241784,0.394985201241784,0.394856667911641,0.394247665977017,0.393370139488522,0.392391720456752,0.391433442024749,0.390613749482837,0.39009679606903,0.39009679606903, +0.668920089836114,0.668920089836114,0.668612881804318,0.66756097938687,0.666223907154724,0.664795369137126,0.663384577999269,0.662105181358014,0.66117854030572,0.66117854030572, + +00:10:04, +0.00179263518350792,0.00179263518350792,0.00179790250767069,0.00179628647851439,0.00179036379749968,0.00178264028408607,0.00177505264796317,0.00176903438100608,0.00176568582759365,0.00176568582759365, +0.00179263518350792,0.00179263518350792,0.00179790250767069,0.00179628647851439,0.00179036379749968,0.00178264028408607,0.00177505264796317,0.00176903438100608,0.00176568582759365,0.00176568582759365, +0.00479074410004972,0.00479074410004972,0.00480108093304663,0.00479579335538,0.00478072621802436,0.00476158789111897,0.00474285254053017,0.00472794572345648,0.00471961658552034,0.00471961658552034, +0.0142263480157096,0.0142263480157096,0.0142475688784108,0.0142296094930875,0.0141871172563979,0.0141344614152237,0.0140830590326937,0.0140419807536427,0.0140188935515341,0.0140188935515341, +0.03876991173316,0.03876991173316,0.0388052259110233,0.0387515976260032,0.0386423000750442,0.0385100773840967,0.0383812438073263,0.0382775997948282,0.0382188189072132,0.0382188189072132, +0.0947366939342345,0.0947366939342345,0.0947747682787523,0.09463558455698,0.0943859423980921,0.0940912680293662,0.0938043152091338,0.0935709779348567,0.0934365721925753,0.0934365721925753, +0.205850789967477,0.205850789967477,0.205846735551904,0.205534065640884,0.205033039968505,0.204456926785699,0.203895118964367,0.203429883615368,0.203153924139665,0.203153924139665, +0.395371897463381,0.395371897463381,0.395243276841299,0.394634577317288,0.393757443851332,0.39277936667899,0.391821380388922,0.391001963278009,0.39048522269193,0.39048522269193, +0.669179976976172,0.669179976976172,0.668872990233618,0.667821927351478,0.666485868691,0.665058340212894,0.663648516269375,0.662370022161384,0.661444073157019,0.661444073157019, + +00:10:05, +0.00180650418851456,0.00180650418851456,0.00181180275267949,0.00181018179440836,0.00180422847056386,0.00179646110591228,0.0017888284681942,0.00178277407601915,0.00177940551723406,0.00177940551723406, +0.00180650418851456,0.00180650418851456,0.00181180275267949,0.00181018179440836,0.00180422847056386,0.00179646110591228,0.0017888284681942,0.00178277407601915,0.00177940551723406,0.00177940551723406, +0.00482054572396224,0.00482054572396224,0.00483092696869393,0.0048256249912536,0.00481049977453535,0.0047912798448272,0.0047724606333118,0.00475748636945858,0.00474911988821449,0.00474911988821449, +0.0142961882110938,0.0142961882110938,0.0143174671038325,0.0142994694569541,0.0142568618254417,0.0142040459098374,0.0141524783456866,0.0141112669543897,0.0140881061671908,0.0140881061671908, +0.0389149150925682,0.0389149150925682,0.0389502721802793,0.0388965676854624,0.0387870822961218,0.0386545986890176,0.0385254931683927,0.0384216297333031,0.0383627282544194,0.0383627282544194, +0.0949906727212001,0.0949906727212001,0.0950287179611645,0.094889437441656,0.0946395860477206,0.0943446072297634,0.094057328284823,0.093823728782583,0.0936891823287081,0.0936891823287081, +0.206211047230892,0.206211047230892,0.20620687014452,0.205894190611738,0.205393114311163,0.204816860113425,0.204254874405434,0.203789504252088,0.203513487778775,0.203513487778775, +0.395757891493412,0.395757891493412,0.395629183796268,0.395020786335127,0.394144046036994,0.393166311561702,0.392208618491516,0.391389477585549,0.390872950092171,0.390872950092171, +0.669439256637446,0.669439256637446,0.669132490576396,0.668082265280572,0.666747218275734,0.66532069785623,0.663911839851387,0.662634246961807,0.661708988779549,0.661708988779549, + +00:10:06, +0.00182044669550279,0.00182044669550279,0.00182577658792925,0.00182415070546628,0.00181816667034096,0.00181035533625057,0.00180267756406366,0.00179658693553421,0.00179319830911255,0.00179319830911255, +0.00182044669550279,0.00182044669550279,0.00182577658792925,0.00182415070546628,0.00181816667034096,0.00181035533625057,0.00180267756406366,0.00179658693553421,0.00179319830911255,0.00179319830911255, +0.00485045851262038,0.00485045851262038,0.00486088420698546,0.00485556783343829,0.00484038449328881,0.0048210828719938,0.00480217969063013,0.00478713788520998,0.00477873400696592,0.00477873400696592, +0.01436618998421,0.01436618998421,0.0143875268074103,0.0143694909222316,0.0143267679771173,0.014273792068642,0.0142220593793682,0.0141807149091464,0.0141574805531068,0.0141574805531068, +0.0390600731877434,0.0390600731877434,0.0390954728902529,0.0390416922992386,0.0389320194858675,0.0387992755161804,0.0386698985913174,0.0385658161515992,0.0385067943083979,0.0385067943083979, +0.0952446373423542,0.0952446373423542,0.0952826531378596,0.0951432761086797,0.0948932163877595,0.0945979344151733,0.0943103306767449,0.0940764700011613,0.0939417834065573,0.0939417834065573, +0.206570932459975,0.206570932459975,0.206566632671092,0.206253943836959,0.205752817988519,0.205176424493722,0.204614262753691,0.204148759263436,0.203872686557463,0.203872686557463, +0.396143185285625,0.396143185285625,0.396014390730753,0.395406294985351,0.394529947996136,0.393552557046898,0.392595158264935,0.391776294330536,0.391259980191413,0.391259980191413, +0.669697931161748,0.669697931161748,0.669391385177657,0.668341995526719,0.667007958266582,0.665582444426303,0.664174551104725,0.662897858120123,0.661973289536986,0.661973289536986, + +00:10:07, +0.00183446287734847,0.00183446287734847,0.00183982418606926,0.00183819338437638,0.00183217856974107,0.00182432314831045,0.00181660010906216,0.0018104731332449,0.00180706437702569,0.00180706437702569, +0.00183446287734847,0.00183446287734847,0.00183982418606926,0.00183819338437638,0.00183217856974107,0.00182432314831045,0.00181660010906216,0.0018104731332449,0.00180706437702569,0.00180706437702569, +0.00488048252328227,0.00488048252328227,0.00489095270471091,0.00488562193875529,0.00487038043158445,0.00485099703068321,0.00483200977136336,0.00481690033023247,0.00480845900164055,0.00480845900164055, +0.0144363530693959,0.0144363530693959,0.0144577477230213,0.0144396736228215,0.014396835446013,0.0143436996274945,0.0142918018710668,0.0142503243564525,0.0142270164484768,0.0142270164484768, +0.0392053852723749,0.0392053852723749,0.039240827295137,0.0391869707214149,0.0390771108983477,0.0389441071201672,0.0388144593315906,0.0387101583060367,0.0386510163259123,0.0386510163259123, +0.0954985869327642,0.0954985869327642,0.0955365729459998,0.0953970996945303,0.0951468325521217,0.0948512487164062,0.0945633215129982,0.0943292007166772,0.0941943745510996,0.0941943745510996, +0.206930445799125,0.206930445799125,0.206926023278169,0.206613325461772,0.20611215114013,0.205535620057793,0.204973284131875,0.204507648765542,0.20423152058834,0.20423152058834, +0.396527780787195,0.396527780787195,0.396398899592376,0.395791105216193,0.394915151672843,0.393938105070112,0.39298100163517,0.392162415431688,0.39164631490498,0.39164631490498, +0.669956002878418,0.669956002878418,0.669649676369918,0.668601120429953,0.667268091008659,0.665843582269756,0.664436652376303,0.663160857984675,0.662236977780506,0.662236977780506, + +00:10:08, +0.0018485529063934,0.0018485529063934,0.0018539457192135,0.00185231000329112,0.00184626434113922,0.00183836471476802,0.00183059627614905,0.00182443284231558,0.00182100389424185,0.00182100389424185, +0.0018485529063934,0.0018485529063934,0.0018539457192135,0.00185231000329112,0.00184626434113922,0.00183836471476802,0.00183059627614905,0.00182443284231558,0.00182100389424185,0.00182100389424185, +0.00491061781225272,0.00491061781225272,0.0049211325177079,0.00491578736307354,0.00490048764576871,0.00488102237800567,0.00486195093343506,0.0048467737630931,0.00483829493114968,0.00483829493114968, +0.0145066772002736,0.0145066772002736,0.0145281295838323,0.0145100172919152,0.0144670639660027,0.0144137683215298,0.0143617055573808,0.0143200950341122,0.0142967135917567,0.0142967135917567, +0.0393508506018331,0.0393508506018331,0.0393863346508108,0.0393324022077624,0.0392223557893107,0.0390890927572277,0.0389591746463537,0.0388546554545744,0.0387953935653585,0.0387953935653585, +0.0957525206326808,0.0957525206326808,0.095790476527925,0.0956509073408689,0.0954004336799058,0.0951045492694545,0.0948162999268559,0.0945819200603833,0.0944469548924759,0.0944469548924759, +0.207289587396351,0.207289587396351,0.207285042115887,0.206972335634999,0.206471113909181,0.205894446940501,0.205331938666415,0.204866172878254,0.204589989987746,0.204589989987746, +0.396911679938746,0.396911679938746,0.396782712322197,0.396175218969327,0.395299659004677,0.394322957560411,0.393366150521812,0.392547842801374,0.392031956141874,0.392031956141874, +0.670213474104415,0.670213474104415,0.669907366473289,0.668859642317868,0.667527618834622,0.666104113720787,0.664698146000616,0.663423248891401,0.662500055848873,0.662500055848873, + +00:10:09, +0.00186271695444345,0.00186271695444345,0.00186814135893869,0.0018665007338253,0.00186042415637344,0.0018524802077641,0.00184466623775056,0.00183846623537935,0.00183501703349928,0.00183501703349928, +0.00186271695444345,0.00186271695444345,0.00186814135893869,0.0018665007338253,0.00186042415637344,0.0018524802077641,0.00184466623775056,0.00183846623537935,0.00183501703349928,0.00183501703349928, +0.00494086443488632,0.00494086443488632,0.00495142370086506,0.00494606416131272,0.0049307061912378,0.00491115897012022,0.00489200323381709,0.00487675824140721,0.00486824185345299,0.00486824185345299, +0.0145771621097597,0.0145771621097597,0.01459867212231,0.0145805216620043,0.0145374532702556,0.0144839978851709,0.0144317701741888,0.0143900266792036,0.0143665717206742,0.0143665717206742, +0.0394964684331749,0.0394964684331749,0.0395319942148454,0.0394779860157452,0.0393677534161911,0.0392342316852844,0.039104043794405,0.0389993068568153,0.0389399252867701,0.0389399252867701, +0.0960064375875149,0.0960064375875149,0.0960443630311295,0.0959046981945145,0.0956540189153721,0.0953578352154699,0.0950692650567419,0.0948346271686763,0.0946995235659687,0.0946995235659687, +0.207648357403228,0.207648357403228,0.207643689337935,0.207330974509019,0.206829706442442,0.206252905280336,0.205690226487395,0.205224331725098,0.204948094875715,0.204948094875715, +0.397294884674375,0.397294884674375,0.397165830854736,0.396558638179883,0.395683471922693,0.394707116440424,0.393750606838078,0.392932578345637,0.392416905804797,0.392416905804797, +0.670470347144398,0.670470347144398,0.670164457795557,0.669117563505692,0.667786544064752,0.666364041101236,0.66495903429982,0.663685033163907,0.662762526068518,0.662762526068518, + +00:10:10, +0.00187695519276663,0.00187695519276663,0.00188241127628243,0.00188076574705421,0.00187465818674293,0.00186666979890229,0.00185881016575786,0.00185257348453618,0.00184910396700412,0.00184910396700412, +0.00187695519276663,0.00187695519276663,0.00188241127628243,0.00188076574705421,0.00187465818674293,0.00186666979890229,0.00185881016575786,0.00185257348453618,0.00184910396700412,0.00184910396700412, +0.00497122244559049,0.00497122244559049,0.00498182630812512,0.0049764523874464,0.00496103612244083,0.00494140686223784,0.00492216672853271,0.00490685382184142,0.00489829982556151,0.00489829982556151, +0.0146478075300747,0.0146478075300747,0.0146693750702306,0.0146511864648902,0.0146080030912463,0.0145543880521384,0.0145019954566593,0.0144601190280894,0.014436590572238,0.014436590572238, +0.0396422380251485,0.0396422380251485,0.0396778052465084,0.0396237214045251,0.039513303038115,0.0393795231639379,0.0392490660362048,0.0391441117740117,0.0390846107518235,0.0390846107518235, +0.0962603369478143,0.0962603369478143,0.0962982316082387,0.096158471407421,0.0959075874079197,0.0956111057007398,0.095322216046208,0.0950873211830744,0.0949520797119784,0.0949520797119784, +0.208006755974863,0.208006755974863,0.208001965101514,0.207689242239736,0.207187928890236,0.206610995219367,0.206048147728513,0.205582125433238,0.205305835375931,0.205305835375931, +0.397677396921666,0.397677396921666,0.397548257117991,0.396941364776474,0.396066592351463,0.395090583626356,0.394134372490825,0.393316623964211,0.392801165790168,0.392801165790168, +0.670726624290806,0.670726624290806,0.670420952632274,0.669374886296377,0.668044869007042,0.666623366720665,0.665219319583814,0.663946213113557,0.663024390753625,0.663024390753625, + +00:10:11, +0.00189126779209125,0.00189126779209125,0.0018967556417414,0.00189510521351175,0.00188896660300616,0.00188093365924713,0.00187302823152515,0.00186675476135094,0.00186326486642856,0.00186326486642856, +0.00189126779209125,0.00189126779209125,0.0018967556417414,0.00189510521351175,0.00188896660300616,0.00188093365924713,0.00187302823152515,0.00186675476135094,0.00186326486642856,0.00186326486642856, +0.00500169189782852,0.00500169189782852,0.00501234039248794,0.00500695209450508,0.00499147749288284,0.00497176610862442,0.00495244147265959,0.00493706056011671,0.0049284689035407,0.0049284689035407, +0.0147186131927531,0.0147186131927531,0.0147402381586897,0.0147220114316937,0.0146787131607645,0.0146249385554606,0.0145723811392604,0.014530371816426,0.014506769882748,0.014506769882748, +0.0397881586381977,0.0397881586381977,0.0398237670067684,0.039769607634966,0.0396590039159048,0.0395249664544713,0.0393942406338798,0.0392890694690698,0.039229449223843,0.039229449223843, +0.0965142178692402,0.0965142178692402,0.0965520814169856,0.0964122261366536,0.096161138312063,0.0958643598766643,0.095575152043911,0.0953400012501936,0.0952046224760011,0.0952046224760011, +0.208364783269852,0.208364783269852,0.2083598695673,0.208047138986531,0.207545781406391,0.206968716903213,0.206405702527044,0.205939554133438,0.205663211615693,0.205663211615693, +0.398059218601716,0.398059218601716,0.397929993033461,0.397323400681209,0.396449022209092,0.395473361028008,0.394517449380569,0.393699981550541,0.393184737988138,0.393184737988138, +0.670982307823944,0.670982307823944,0.67067685326683,0.66963161298068,0.668302595957273,0.666882092876442,0.665479004150324,0.664206791039552,0.663285652206208,0.663285652206208, + +00:10:12, +0.00190565492260406,0.00190565492260406,0.00191117462526943,0.00190951930318865,0.00190334957537905,0.00189527195932227,0.00188732060586785,0.0018810102368516,0.00187749990290893,0.00187749990290893, +0.00190565492260406,0.00190565492260406,0.00191117462526943,0.00190951930318865,0.00190334957537905,0.00189527195932227,0.00188732060586785,0.0018810102368516,0.00187749990290893,0.00187749990290893, +0.00503227284412272,0.00503227284412272,0.00504296600601365,0.00503756333457929,0.00502203035512791,0.0050022367626039,0.00498282752033286,0.00496737851101138,0.0049587491425134,0.0049587491425134, +0.0147895788286534,0.0147895788286534,0.0148112611181119,0.0147929962928653,0.0147495832099247,0.0146956491274829,0.0146429269557701,0.0146007847791739,0.0145771093878049,0.0145771093878049, +0.0399342295344673,0.0399342295344673,0.0399698787582999,0.0399156439696392,0.0398048553120834,0.039670560819855,0.0395395668512286,0.0394341792065551,0.0393744399678053,0.0393744399678053, +0.0967680795125441,0.0967680795125441,0.0968059116201876,0.0966659615443655,0.096414670787408,0.0961175968997328,0.0958280722035894,0.0955926665217258,0.0954571510086055,0.0954571510086055, +0.208722439450246,0.208722439450246,0.208717402899404,0.208404664912231,0.207903264148212,0.207326070480997,0.206762891023799,0.206296617960024,0.206020223725875,0.206020223725875, +0.398440351629148,0.398440351629148,0.398311040516162,0.397704747809718,0.396830763407242,0.395855450548797,0.394899839401508,0.394082652991799,0.393567624282617,0.393567624282617, +0.67123740001206,0.67123740001206,0.670932161970542,0.669887745837242,0.668559727199099,0.667140221853819,0.665738090284984,0.664466769229009,0.663546312716196,0.663546312716196, + +00:10:13, +0.00192011675394845,0.00192011675394845,0.00192566839627581,0.00192400818553059,0.00191780727353317,0.00190968486910857,0.00190168745906069,0.00189534008152732,0.00189180924704382,0.00189180924704382, +0.00192011675394845,0.00192011675394845,0.00192566839627581,0.00192400818553059,0.00191780727353317,0.00190968486910857,0.00190168745906069,0.00189534008152732,0.00189180924704382,0.00189180924704382, +0.00506296533605742,0.00506296533605742,0.00507370319982572,0.00506828615882269,0.00505269476080224,0.0050328188765613,0.00501332492474819,0.00499780772836414,0.00498914059666293,0.00498914059666293, +0.0148607041679673,0.0148607041679673,0.0148824436782607,0.0148641407781943,0.014820612969176,0.0147665194998783,0.0147136326392856,0.0146713576506069,0.0146476088223201,0.0146476088223201, +0.0400804499778068,0.0400804499778068,0.0401161397654874,0.0400618296728272,0.0399508564908791,0.0398163055247516,0.0396850439537259,0.0395794402526969,0.0395195822503452,0.0395195822503452, +0.0970219210435444,0.0970219210435444,0.0970597213857233,0.0969196767977748,0.09666818399863,0.0963708159315013,0.0960809756840409,0.0958453161544152,0.0957096644654103,0.0957096644654103, +0.20907972468151,0.20907972468151,0.209074565265336,0.208761820183068,0.208260377276434,0.207683056105312,0.207119713363089,0.206653317050843,0.206376871840887,0.206376871840887, +0.39882079791214,0.39882079791214,0.398691401474654,0.39808540807117,0.397211817851149,0.396236854085777,0.395281544441537,0.394464640168905,0.393949826551282,0.393949826551282, +0.671491903111429,0.671491903111429,0.671186881002731,0.670143287132672,0.66881626500413,0.667397755926016,0.665996580261412,0.664726149957045,0.663806374561511,0.663806374561511, + +00:10:14, +0.00193465345522265,0.00193465345522265,0.00194023712362343,0.0019385720294365,0.00193233986659394,0.00192417255804238,0.00191612896083596,0.00190974446532667,0.00190619306889229,0.00190619306889229, +0.00193465345522265,0.00193465345522265,0.00194023712362343,0.0019385720294365,0.00193233986659394,0.00192417255804238,0.00191612896083596,0.00190974446532667,0.00190619306889229,0.00190619306889229, +0.00509376942428215,0.00509376942428215,0.00510455202411407,0.00509912061745519,0.00508347076059729,0.00506351250194587,0.00504393373816482,0.00502834826507716,0.00501964331923606,0.00501964331923606, +0.0149319889402297,0.0149319889402297,0.014953785568248,0.0149354446168189,0.0148918021683119,0.0148375494036559,0.014784497922233,0.0147420901643219,0.0147182679205254,0.0147182679205254, +0.0402268192337755,0.0402268192337755,0.0402625492944302,0.0402081640105283,0.0400970067182301,0.0399621998355202,0.0398306712085274,0.039724851875393,0.0396648753397594,0.0396648753397594, +0.0972757416331035,0.0972757416331035,0.0973135098865092,0.097173371069141,0.0969216771154493,0.0966240161385687,0.0963338616490989,0.0960979493100359,0.0959621620070614,0.0959621620070614, +0.209436639132485,0.209436639132485,0.209431356835968,0.209118604968643,0.20861712095519,0.208039673932179,0.207476169692686,0.207009651547229,0.206733156098637,0.206733156098637, +0.399200559352439,0.399200559352439,0.399071077811054,0.398465383368294,0.397592187439646,0.396617573529656,0.395662566382269,0.394845944956546,0.394331346665604,0.394331346665604, +0.671745819366433,0.671745819366433,0.671441012610803,0.670398239121624,0.669072211632007,0.667654697354302,0.666254476341297,0.664984935486854,0.664065840008149,0.664065840008149, + +00:10:15, +0.00194926519497795,0.00194926519497795,0.00195488097562702,0.00195321100325677,0.00194694752313886,0.0019387351950137,0.00193064528038167,0.00192422355765574,0.001920651537972,0.001920651537972, +0.00194926519497795,0.00194926519497795,0.00195488097562702,0.00195321100325677,0.00194694752313886,0.0019387351950137,0.00193064528038167,0.00192422355765574,0.001920651537972,0.001920651537972, +0.00512468515851467,0.00512468515851467,0.00513551252813816,0.00513006675976606,0.00511435840427284,0.00509431768927411,0.0050746540119087,0.0050590001731191,0.00505025736254613,0.00505025736254613, +0.015003432874328,0.015003432874328,0.0150252865165434,0.0150069075372353,0.0149631505364794,0.0149087385691718,0.014855522536377,0.0148129820532489,0.0147890864159823,0.0147890864159823, +0.0403733365696469,0.0403733365696469,0.0404091066129464,0.0403546462504607,0.0402433052617883,0.0401082430202207,0.0399764478844741,0.0398704133442147,0.0398103185060118,0.0398103185060118, +0.0975295404571048,0.0975295404571048,0.0975672763004769,0.0974270435357422,0.0971751493126091,0.0968771966925545,0.0965867292676106,0.0963505651553692,0.0962146427992091,0.0962146427992091, +0.209793182975357,0.209793182975357,0.209787777785493,0.209475019441888,0.208973495351973,0.208395924121016,0.207832260163787,0.207365621593963,0.207089076640495,0.207089076640495, +0.39957963784538,0.39957963784538,0.399450071421059,0.398844675597401,0.397971874065179,0.396997610764817,0.396042907099054,0.395226569223193,0.394712186490863,0.394712186490863, +0.671999151009635,0.671999151009635,0.671694559030329,0.670652604046882,0.669327569330486,0.667911048388069,0.666511780774473,0.665243128069786,0.664324711310257,0.664324711310257, + +00:10:16, +0.00196395214121696,0.00196395214121696,0.00196960012005148,0.00196792527479148,0.00196163041119579,0.00195337294836447,0.0019452365863398,0.00193877752737646,0.00193518482325748,0.00193518482325748, +0.00196395214121696,0.00196395214121696,0.00196960012005148,0.00196792527479148,0.00196163041119579,0.00195337294836447,0.0019452365863398,0.00193877752737646,0.00193518482325748,0.00193518482325748, +0.00515571258754414,0.00515571258754414,0.00516658476023016,0.00516112463411702,0.00514535774066015,0.00512523448813294,0.00510548579637548,0.00508976350352817,0.00508098277797604,0.00508098277797604, +0.0150750356985121,0.0150750356985121,0.0150969462509844,0.0150785292673077,0.0150346578021891,0.0149800867261374,0.0149267062128307,0.0148840330496599,0.0148600640415917,0.0148600640415917, +0.0405200012544121,0.0405200012544121,0.0405558109905771,0.0405012756620671,0.040389751390924,0.0402544343486185,0.0401223732520971,0.0400161239304104,0.0399559110207376,0.0399559110207376, +0.0977833166964292,0.0977833166964292,0.0978210198105496,0.0976806933798517,0.0974285997698517,0.0971303567700757,0.0968395777134132,0.0966031628621809,0.0964671060124859,0.0964671060124859, +0.21014935638561,0.21014935638561,0.210143828291394,0.209831063779026,0.209329500637594,0.208751806834596,0.208187984930976,0.207721227339237,0.207444633611257,0.207444633611257, +0.399958035279913,0.399958035279913,0.39982838419397,0.3992232866484,0.398350879613828,0.397376967669337,0.396422568460998,0.395606514831122,0.395092347886166,0.395092347886166, +0.672251900261865,0.672251900261865,0.671947522485123,0.670906384139433,0.669582340335515,0.668166811264918,0.666768495798999,0.665500729945426,0.664582990710212,0.664582990710212, + +00:10:17, +0.00197871446139188,0.00197871446139188,0.00198439472411007,0.00198271501128876,0.0019763886982412,0.00196808598588679,0.00195990304680451,0.00195340654280476,0.00194979309317831,0.00194979309317831, +0.00197871446139188,0.00197871446139188,0.00198439472411007,0.00198271501128876,0.0019763886982412,0.00196808598588679,0.00195990304680451,0.00195340654280476,0.00194979309317831,0.00194979309317831, +0.00518685175923417,0.00518685175923417,0.00519776876779801,0.00519229428794544,0.00517646881766504,0.00515626294718277,0.0051364291410337,0.00512063830641527,0.00511181961598134,0.00511181961598134, +0.0151467971404033,0.0151467971404033,0.0151687644987851,0.0151503095342775,0.0151063236933242,0.0150515936036299,0.0149980486820645,0.0149552428851792,0.0149312005296037,0.0149312005296037, +0.040666812558785,0.040666812558785,0.0407026616985904,0.0406480515165184,0.0405363443767299,0.0404007730921881,0.0402684465836214,0.0401619829069111,0.0401016521572479,0.0401016521572479, +0.098037069536933,0.098037069536933,0.0980747396046198,0.0979343197887154,0.0976820276718962,0.0973834955527236,0.0970924061653121,0.0968557416071989,0.0967195508224837,0.0967195508224837, +0.210505159541998,0.210505159541998,0.210499508534402,0.210186738159542,0.209685136986153,0.209107322239011,0.208543344152186,0.208076468934617,0.207799827159103,0.207799827159103, +0.400335753538618,0.400335753538618,0.400206018012706,0.399601218404822,0.398729205965331,0.397755646115008,0.396801552330982,0.39598578363643,0.395471832704469,0.395471832704469, +0.672504069332293,0.672504069332293,0.672199905187319,0.671159581618549,0.669836526871314,0.668421988210731,0.667024623641236,0.665757743341673,0.664840680438701,0.664840680438701, + +00:10:18, +0.00199355232240277,0.00199355232240277,0.00199926495446279,0.00199758037944301,0.00199122255119847,0.00198287447482122,0.00197464482932046,0.00196811077170884,0.0019644765156174,0.0019644765156174, +0.00199355232240277,0.00199355232240277,0.00199926495446279,0.00199758037944301,0.00199122255119847,0.00198287447482122,0.00197464482932046,0.00196811077170884,0.0019644765156174,0.0019644765156174, +0.00521810272052603,0.00521810272052603,0.0052290645973286,0.00522357576776741,0.00520769168227109,0.00518740311416062,0.0051674840944278,0.00515162463096695,0.00514276792609332,0.00514276792609332, +0.0152187169270043,0.0152187169270043,0.0152407409865461,0.0152222480647726,0.0151781479371503,0.0151232589301012,0.0150695496739161,0.015026611290792,0.0150024956116266,0.0150024956116266, +0.0408137697552056,0.0408137697552056,0.0408496580099856,0.0407949730867176,0.0406830834920252,0.040547258524118,0.0404146671529707,0.0403079895483339,0.0402475411905341,0.0402475411905341, +0.0982907981694241,0.0982907981694241,0.0983284348755255,0.0981879219545283,0.0979354322084149,0.0976366122270415,0.0973452138070575,0.0971083005720902,0.0969719764097315,0.0969719764097315, +0.210860592626506,0.210860592626506,0.210854818698464,0.210542042766141,0.210040404574997,0.209462470503637,0.208898337988664,0.208431346535003,0.208154657435564,0.208154657435564, +0.400712794497724,0.400712794497724,0.400582974753829,0.39997847274384,0.399106854993099,0.398133647967355,0.39717986056568,0.396364377489056,0.395850642792591,0.395850642792591, +0.672755660418509,0.672755660418509,0.672451709337451,0.671412198691863,0.670090131150451,0.668676581439751,0.667280166515927,0.666014170474814,0.665097782714795,0.665097782714795, + +00:10:19, +0.00200846589059589,0.00200846589059589,0.00201421097721468,0.00201252154539331,0.00200613213643625,0.00199773858185512,0.00198946210088109,0.00198289038130749,0.00197923525790924,0.00197923525790924, +0.00200846589059589,0.00200846589059589,0.00201421097721468,0.00201252154539331,0.00200613213643625,0.00199773858185512,0.00198946210088109,0.00198289038130749,0.00197923525790924,0.00197923525790924, +0.00524946551744169,0.00524946551744169,0.00526047229439088,0.00525496911918091,0.0052390263805427,0.00521865503588325,0.00519865070418128,0.00518272252544863,0.00517382775692204,0.00517382775692204, +0.0152907947847082,0.0152907947847082,0.0153128754402638,0.015294344584817,0.0152501302603246,0.0151950824333874,0.0151412089175997,0.0150981379968544,0.0150739490186365,0.0150739490186365, +0.0409608721178443,0.0409608721178443,0.0409967991994971,0.0409420396473039,0.040829968011359,0.0406938899193142,0.0405610342357708,0.0404541431309862,0.0403935773972719,0.0403935773972719, +0.09854450178964,0.09854450178964,0.0985821048210283,0.0984414990744123,0.0981888125740111,0.0978897059845015,0.0975979998273227,0.0973608389434391,0.0972243819596726,0.0972243819596726, +0.211215655824313,0.211215655824313,0.211209758970705,0.210896977784712,0.210395303584687,0.209817251801096,0.209252966604934,0.208785860298601,0.208509124595487,0.208509124595487, +0.401089160027135,0.401089160027135,0.400959256287561,0.400355051536287,0.399483828564237,0.398510975085653,0.397557495015581,0.396742298232799,0.396228779991236,0.396228779991236, +0.673006675706597,0.673006675706597,0.67270293712453,0.67166423755545,0.67034315537392,0.668930593154662,0.66753512662627,0.666270013549605,0.665354299746026,0.665354299746026, + +00:10:20, +0.00202345533176206,0.00202345533176206,0.00202923295791416,0.00202753867472173,0.00202111761976675,0.00201267847312092,0.00200435502792689,0.00199774553826835,0.00199406948683822,0.00199406948683822, +0.00202345533176206,0.00202345533176206,0.00202923295791416,0.00202753867472173,0.00202111761976675,0.00201267847312092,0.00200435502792689,0.00199774553826835,0.00199406948683822,0.00199406948683822, +0.00528094019508702,0.00528094019508702,0.00529199190363902,0.00528647438686894,0.00527047295762829,0.00525001875825032,0.00522992901699978,0.00521393203720759,0.00520499915615946,0.00520499915615946, +0.015363030439308,0.015363030439308,0.0153851675853393,0.0153665988198401,0.0153222703889053,0.0152670638407183,0.0152130261417153,0.0151698227331026,0.0151455604809869,0.0151455604809869, +0.0411081189226055,0.0411081189226055,0.0411440845435977,0.0410892504746565,0.040976997211015,0.0408406665544039,0.0407075471093543,0.0406004429328703,0.0405397600558256,0.0405397600558256, +0.0987981795982244,0.0987981795982244,0.09883574864379,0.0986950503503928,0.0984421679681959,0.0981427760214823,0.0978507634196807,0.0976133559127243,0.0974767666626431,0.0974767666626431, +0.211570349323756,0.211570349323756,0.211564329541393,0.211251543404294,0.21074983419896,0.210171666307223,0.209607230168763,0.209140010386878,0.208863228796997,0.208863228796997, +0.401464851990443,0.401464851990443,0.401334864477808,0.400730956646678,0.399860128539567,0.398887629322953,0.397934457525007,0.397119547705338,0.39660624613501,0.39660624613501, +0.673257117371215,0.673257117371215,0.672953590726117,0.671915700393896,0.670595601731218,0.669184025546658,0.667789506163999,0.666525274759342,0.665610233728465,0.665610233728465, + +00:10:21, +0.00203852081113496,0.00203852081113496,0.00204433106155144,0.00204263193245172,0.00203617916644416,0.00202769431419455,0.00201932377634381,0.00201267640870625,0.00200897936863697,0.00200897936863697, +0.00203852081113496,0.00203852081113496,0.00204433106155144,0.00204263193245172,0.00203617916644416,0.00202769431419455,0.00201932377634381,0.00201267640870625,0.00200897936863697,0.00200897936863697, +0.00531252679765491,0.00531252679765491,0.00532362346881555,0.00531809161460271,0.00530203145776342,0.00528149432624746,0.00526131907867421,0.0052452532126761,0.00523628217058249,0.00523628217058249, +0.0154354236160056,0.0154354236160056,0.0154576171465883,0.0154390104946858,0.0153945680483605,0.0153392028787264,0.0152850010742581,0.0152416652286622,0.0152173297284174,0.0152173297284174, +0.0412555094471318,0.0412555094471318,0.041291513320503,0.041236604846898,0.0411241703690144,0.0409875877077402,0.0408542050527643,0.040746888233687,0.0406860884462521,0.0406860884462521, +0.099051830800705,0.099051830800705,0.09908936555135,0.0989485749893764,0.0986954975953656,0.0983958215392464,0.0981035037825823,0.0978658506762969,0.0977291297138485,0.0977291297138485, +0.211924673316298,0.211924673316298,0.211918530603904,0.211605739817044,0.211103996604695,0.210525714201026,0.209961128851122,0.209493796964532,0.209216970201461,0.209216970201461, +0.401839872244955,0.401839872244955,0.401709801182177,0.40110618993323,0.400235756773645,0.399263612526097,0.398310749932128,0.397496127738248,0.39698304305244,0.39698304305244, +0.673506987575666,0.673506987575666,0.673203672308402,0.672166589380384,0.670847472400419,0.669436880795528,0.668043307309453,0.666779956285939,0.665865586846795,0.665865586846795, + +00:10:22, +0.00205366249338956,0.00205366249338956,0.00205950545255687,0.00205780148304648,0.002051316941163,0.00204278627009372,0.00203436851146156,0.00202768315818157,0.00202396506898463,0.00202396506898463, +0.00205366249338956,0.00205366249338956,0.00205950545255687,0.00205780148304648,0.002051316941163,0.00204278627009372,0.00203436851146156,0.00202768315818157,0.00202396506898463,0.00202396506898463, +0.00534422536842839,0.00534422536842839,0.00535536703275451,0.00534982084524477,0.00533370192427395,0.00531308178394946,0.00529282093408388,0.00527668609737456,0.0052676768460561,0.0052676768460561, +0.0155079740394216,0.0155079740394216,0.0155302238482498,0.0155115793336215,0.0154670229635782,0.0154114992734563,0.0153571334426276,0.0153136652120572,0.0152892564900635,0.0152892564900635, +0.041403042970807,0.041403042970807,0.0414390848101742,0.041384102043898,0.04127148676512,0.0411346526594047,0.0410010073467578,0.0408934783148395,0.0408325618503047,0.0408325618503047, +0.0993054546074705,0.0993054546074705,0.0993429547561029,0.0992020722031278,0.098948800664779,0.0986488417439174,0.0983562201193337,0.0981183224353579,0.0979814703133426,0.0979814703133426, +0.21227862799649,0.21227862799649,0.212272362354688,0.211959567218196,0.211457790991879,0.210879395664655,0.210314662826155,0.209847220199454,0.209570348973452,0.209570348973452, +0.402214222641707,0.402214222641707,0.402084068251997,0.401480753247882,0.40061071511478,0.399638926535738,0.398686374068989,0.397872040157023,0.397359172565994,0.397359172565994, +0.673756288471979,0.673756288471979,0.673453184026278,0.672416906676759,0.671098769548252,0.669689161069722,0.668296532231657,0.667034060300003,0.666120361274386,0.666120361274386, + +00:10:23, +0.00206888054264051,0.00206888054264051,0.00207475629479937,0.00207304749040741,0.00206653110805657,0.00205795450527641,0.00204948939805202,0.00204276595169858,0.00203902675300529,0.00203902675300529, +0.00206888054264051,0.00206888054264051,0.00207475629479937,0.00207304749040741,0.00206653110805657,0.00205795450527641,0.00204948939805202,0.00204276595169858,0.00203902675300529,0.00203902675300529, +0.00537603594978384,0.00537603594978384,0.00538722263738464,0.00538166212075217,0.00536548439957921,0.0053447811745234,0.0053244346271996,0.00530823073591456,0.00529918322753645,0.00529918322753645, +0.0155806814336036,0.0155806814336036,0.0156029874139953,0.0155843050603479,0.0155396348588745,0.015483952750374,0.0154294229736371,0.0153858224112195,0.0153613404944656,0.0153613404944656, +0.0415507187747601,0.0415507187747601,0.0415867982943224,0.0415317413472771,0.0414189456808396,0.0412818606912121,0.0411479532738102,0.0410402124594375,0.0409791795514372,0.0409791795514372, +0.0995590502337485,0.0995590502337485,0.0995965154752754,0.0994555412082476,0.099202076390535,0.0989018358464577,0.0986089116380738,0.0983707703959361,0.0982337876660043,0.0982337876660043, +0.212632213561936,0.212632213561936,0.212625824993231,0.212313025806029,0.211811217553568,0.211232710883367,0.21066783227114,0.210200280262697,0.209923365280719,0.209923365280719, +0.402587905025491,0.402587905025491,0.402457667532341,0.401854648436316,0.400985005405059,0.40001357318636,0.399061331761523,0.39824728678109,0.397734636492098,0.397734636492098, +0.674005022200977,0.674005022200977,0.673702128023416,0.672666654433612,0.671349495330176,0.669940868526432,0.668549183088393,0.667287588960908,0.666374559173371,0.666374559173371, + +00:10:24, +0.00208417512244056,0.00208417512244056,0.00209008375158489,0.00208837011787256,0.00208182183069532,0.00207319918363922,0.00206468660032764,0.00205792495370386,0.00205416458526632,0.00205416458526632, +0.00208417512244056,0.00208417512244056,0.00209008375158489,0.00208837011787256,0.00208182183069532,0.00207319918363922,0.00206468660032764,0.00205792495370386,0.00205416458526632,0.00205416458526632, +0.00540795858319413,0.00540795858319413,0.00541919032373251,0.00541361548217965,0.00539737892519517,0.00537659254023182,0.00535616020108683,0.00533988717200204,0.00533080135907395,0.00533080135907395, +0.0156535455220363,0.0156535455220363,0.015675907566938,0.0156571873980074,0.0156124034580036,0.0155565630343757,0.0155018693935223,0.015458136553498,0.0154335814695779,0.0154335814695779, +0.0416985361418688,0.0416985361418688,0.0417346530564112,0.0416795220404096,0.0415665463994295,0.0414292110867132,0.0412950421181182,0.0411870899523005,0.0411259408348071,0.0411259408348071, +0.0998126168995824,0.0998126168995824,0.0998500469309046,0.0997089812261493,0.0994553239915498,0.0991548030626461,0.0988615775517524,0.0986231937688658,0.0984860809815165,0.0984860809815165, +0.212985430213262,0.212985430213262,0.212978918722025,0.212666115781834,0.212164276485858,0.211585660045488,0.211020637366457,0.210552977328434,0.210276019294145,0.210276019294145, +0.402960921234868,0.402960921234868,0.402830600862045,0.402227877337975,0.401358629480361,0.400387554306298,0.399435624829572,0.398621869423833,0.398109436641156,0.398109436641156, +0.674253190892354,0.674253190892354,0.673950506432337,0.672915834790347,0.67159965189045,0.670192005311664,0.668801262026274,0.667540544416867,0.666628182694718,0.666628182694718, + +00:10:25, +0.00209954639577902,0.00209954639577902,0.00210548798565486,0.00210376952821504,0.00209718927208537,0.00208852046851587,0.00207996028193984,0.0020731603280847,0.0020693787297768,0.0020693787297768, +0.00209954639577902,0.00209954639577902,0.00210548798565486,0.00210376952821504,0.00209718927208537,0.00208852046851587,0.00207996028193984,0.0020731603280847,0.0020693787297768,0.0020693787297768, +0.00543999330923174,0.00543999330923174,0.0054512701319257,0.00544568096968283,0.00542938554173759,0.00540851592243586,0.00538799769790885,0.00537165544844037,0.00536253128381641,0.00536253128381641, +0.0157265660276496,0.0157265660276496,0.015748984029642,0.0157302260691935,0.015685328484166,0.015629329849797,0.0155744724279508,0.0155306073656675,0.015505979142778,0.015505979142778, +0.0418464943567626,0.0418464943567626,0.0418826483816608,0.0418274434084272,0.0417142882058978,0.0415767031311985,0.0414422731656039,0.0413341100799616,0.04127284498728,0.04127284498728, +0.10006615382981,0.10006615382981,0.100103548349815,0.0999623914830372,0.0997085426915347,0.0994077426130553,0.0991142170781077,0.0988755917697651,0.0987383494743432,0.0987383494743432, +0.21333827815408,0.21333827815408,0.213331643746533,0.213018837349878,0.212516967987848,0.211938243342382,0.211373078295552,0.210905311573933,0.210628311187718,0.210628311187718, +0.403333273102194,0.403333273102194,0.403202870073727,0.402600441786087,0.401731589170382,0.400760871717758,0.399809255086908,0.398995789892608,0.398483574817566,0.398483574817566, +0.674500796664748,0.674500796664748,0.674198321374489,0.673164449875258,0.671849241362212,0.67044257356031,0.669052771180817,0.667792928805007,0.666881233978302,0.666881233978302, + +00:10:26, +0.00211499452508021,0.00211499452508021,0.00212096915918464,0.00211924588364155,0.00211263359466696,0.00210391852267559,0.00209531060597752,0.00208847223816754,0.00208466934998595,0.00208466934998595, +0.00211499452508021,0.00211499452508021,0.00212096915918464,0.00211924588364155,0.00211263359466696,0.00210391852267559,0.00209531060597752,0.00208847223816754,0.00208466934998595,0.00208466934998595, +0.00547214016757199,0.00547214016757199,0.00548346210119601,0.00547785862252132,0.00546150428892523,0.00544055136159842,0.00541994715892984,0.00540353560713352,0.00539437304401214,0.00539437304401214, +0.0157997426728284,0.0157997426728284,0.0158222165241308,0.0158034207959598,0.0157584096600183,0.0157022529204222,0.015647231802031,0.0156032345739378,0.0155785332408752,0.0155785332408752, +0.0419945927058264,0.0419945927058264,0.0420307835570506,0.0419755047382222,0.0418621703870076,0.0417243361117015,0.0415896457039179,0.0414812721306711,0.0414198912974325,0.0414198912974325, +0.100319660254039,0.100319660254039,0.100357018963595,0.100215771209884,0.0999617317189735,0.0996606537230299,0.0993668294396442,0.0991279636190134,0.0989905923637079,0.0989905923637079, +0.213690757590951,0.213690757590951,0.213684000275152,0.213371190717371,0.212869292261605,0.212290460968414,0.211725155244906,0.211257283179515,0.210980241138497,0.210980241138497, +0.403704962453634,0.403704962453634,0.403574476993809,0.402972343607682,0.402103886298651,0.401133527236835,0.400182224341248,0.399369049988762,0.398857052819742,0.398857052819742, +0.674747841625814,0.674747841625814,0.674445574960316,0.673412501805603,0.672098265867546,0.670692575396223,0.669303712676519,0.668044744251439,0.667133715152979,0.667133715152979, + +00:10:27, +0.00213051967220198,0.00213051967220198,0.00213652743378206,0.00213479934579087,0.00212815496031294,0.00211939350832166,0.00211073773496543,0.00210386084671641,0.00210003660878158,0.00210003660878158, +0.00213051967220198,0.00213051967220198,0.00213652743378206,0.00213479934579087,0.00212815496031294,0.00211939350832166,0.00211073773496543,0.00210386084671641,0.00210003660878158,0.00210003660878158, +0.00550439919699619,0.00550439919699619,0.00551576626988259,0.00551014847906201,0.005493735205583,0.00547269889728736,0.0054520086245181,0.00543552768908916,0.00542632668101308,0.00542632668101308, +0.015873075179421,0.015873075179421,0.0158956047718965,0.0158767712998285,0.0158316467076816,0.0157753319694928,0.0157201472403212,0.015676017903963,0.0156512434901203,0.0156512434901203, +0.0421428304772032,0.0421428304772032,0.0421790578713225,0.0421237053184502,0.0420101922312803,0.041872109317002,0.0417371590224427,0.0416285753944,0.0415670790555561,0.0415670790555561, +0.100573135406627,0.100573135406627,0.100610458008578,0.100469119642408,0.1002148903071,0.0999135356226641,0.0996194138636108,0.0993803085417296,0.099242808873572,0.099242808873572, +0.214042868733359,0.214042868733359,0.214035988519183,0.213723176094435,0.213221249512134,0.21264231312092,0.212076868403997,0.211608892328523,0.211331809326572,0.211331809326572, +0.40407599110919,0.40407599110919,0.403945423442538,0.403343584623614,0.402475522682551,0.401505522673534,0.400554534394277,0.399741651507655,0.399229872440133,0.399229872440133, +0.674994327872297,0.674994327872297,0.674692269289333,0.673659992687674,0.672346727517561,0.670942012932288,0.669554088626924,0.668295992871334,0.667385628336658,0.667385628336658, + +00:10:28, +0.00214612199843418,0.00214612199843418,0.00215216297048595,0.00215043007573238,0.0021437535303273,0.00213494558708991,0.00212624183086276,0.00211932631593143,0.00211548066848856,0.00211548066848856, +0.00214612199843418,0.00214612199843418,0.00215216297048595,0.00215043007573238,0.0021437535303273,0.00213494558708991,0.00212624183086276,0.00211932631593143,0.00211548066848856,0.00211548066848856, +0.00553677043539481,0.00553677043539481,0.00554818267543517,0.00554255057678217,0.00552607832964515,0.00550495856817862,0.00548418213414914,0.00546763173442184,0.00545839223527794,0.00545839223527794, +0.0159465632687483,0.0159465632687483,0.015969148493909,0.0159502773017998,0.0159050393487504,0.0158485667197168,0.0157932184668382,0.0157489570808496,0.0157241096162138,0.0157241096162138, +0.0422912069607978,0.0422912069607978,0.0423274706149842,0.0422720444395339,0.0421583530289985,0.0420200220376292,0.0418848124122962,0.0417760191628428,0.0417144075536603,0.0417144075536603, +0.10082657852666,0.10082657852666,0.100863864725816,0.100722436021051,0.100468017693877,0.100166387546779,0.0998719695819786,0.0996326257677505,0.0994949982326123,0.0994949982326123, +0.214394611793669,0.214394611793669,0.2143876086928,0.214074793694065,0.21357283994734,0.212993800000173,0.212428217965271,0.211960139207291,0.211683015935039,0.211683015935039, +0.404446360882715,0.404446360882715,0.404315711234003,0.403714166648578,0.402846500133343,0.401876859831788,0.400926187041666,0.400113596238676,0.399602035465236,0.399602035465236, +0.675240257490098,0.675240257490098,0.674938406450195,0.673906924616868,0.672594628412458,0.671190888270494,0.669803901134697,0.668546676768989,0.66763697563637,0.66763697563637, + +00:10:29, +0.00216180166449725,0.00216180166449725,0.00216787592976464,0.00216613823396462,0.00215942946544369,0.00215057492004722,0.00214182305506159,0.0021348688074473,0.00213100169086729,0.00213100169086729, +0.00216180166449725,0.00216180166449725,0.00216787592976464,0.00216613823396462,0.00215942946544369,0.00215057492004722,0.00214182305506159,0.0021348688074473,0.00213100169086729,0.00213100169086729, +0.00556925391977069,0.00556925391977069,0.00558071135441722,0.00557506495227269,0.0055585336981585,0.00553733041205946,0.00551646772640889,0.00549984778235609,0.00549056974637533,0.00549056974637533, +0.0160202066616124,0.0160202066616124,0.0160428474106241,0.0160239385223606,0.015978587304302,0.0159219568932771,0.0158664452050663,0.0158220518291664,0.0157971313443153,0.0157971313443153, +0.0424397214482794,0.0424397214482794,0.0424760210803118,0.0424205213936652,0.0423066520722091,0.0421680735658648,0.0420326051663346,0.0419236027294214,0.0418618760854759,0.0418618760854759, +0.101079988857926,0.101079988857926,0.10111723836106,0.100975719590958,0.100721113121973,0.100419208734902,0.100124495831419,0.0998849145316084,0.0997471596741996,0.0997471596741996, +0.214745986987103,0.214745986987103,0.21473886101301,0.214426043732102,0.213924063778001,0.213344921809345,0.212779204124103,0.212311024005108,0.21203386114996,0.21203386114996, +0.404816073581935,0.404816073581935,0.40468534217616,0.404084091491137,0.40321682045618,0.402247540509478,0.401297184073092,0.400484885965263,0.399973543675624,0.399973543675624, +0.675485632554352,0.675485632554352,0.675183988520772,0.674153299677763,0.672841970641603,0.671439203502004,0.670053152291693,0.668796798037901,0.667887759148343,0.667887759148343, + +00:10:30, +0.0021775588305407,0.0021775588305407,0.00218366647151459,0.00218192398041387,0.00217518292582402,0.00216628166769007,0.00215748156838543,0.0021504884823318,0.00214659983711224,0.00214659983711224, +0.0021775588305407,0.0021775588305407,0.00218366647151459,0.00218192398041387,0.00217518292582402,0.00216628166769007,0.00215748156838543,0.0021504884823318,0.00214659983711224,0.00214659983711224, +0.00560184968624221,0.00560184968624221,0.00561335234250916,0.00560769164124128,0.00559110134728557,0.00556981446583159,0.00554886543899686,0.0055321758712296,0.00552285925298688,0.00552285925298688, +0.0160940050783057,0.0160940050783057,0.0161167012419929,0.0160977546814929,0.0160522902949044,0.0159955022118408,0.0159398271779666,0.0158953018729526,0.015870308399052,0.015870308399052, +0.0425883732330846,0.0425883732330846,0.0426247085613527,0.0425691354748087,0.0424550886547263,0.0423162631957463,0.0421805365791557,0.042071325389288,0.0420094839464583,0.0420094839464583, +0.101333365648898,0.101333365648898,0.101370578164738,0.101228969601949,0.100974175838738,0.100671998431242,0.100376991853282,0.10013717407251,0.0999992924363771,0.0999992924363771, +0.215096994531699,0.215096994531699,0.215089745699628,0.214776926427197,0.214274921217728,0.213695678754481,0.213129827078772,0.212661546914184,0.212384345160334,0.212384345160334, +0.40518513100847,0.40518513100847,0.405054318070846,0.404453360953736,0.403586485450129,0.402617566498456,0.401667527272254,0.40085552246492,0.400344398845953,0.400344398845953, +0.675730455129496,0.675730455129496,0.675429017568213,0.674399119944185,0.673088756283598,0.671686960707229,0.670301844179033,0.669046358760838,0.668137980958066,0.668137980958066, + +00:10:31, +0.00219339365614177,0.00219339365614177,0.0021995347550589,0.00219778747443269,0.00219101407105702,0.00218206598994315,0.00217321753108779,0.00216618550108436,0.0021622752678505,0.0021622752678505, +0.00219339365614177,0.00219339365614177,0.0021995347550589,0.00219778747443269,0.00219101407105702,0.00218206598994315,0.00217321753108779,0.00216618550108436,0.0021622752678505,0.0021622752678505, +0.00563455777004647,0.00563455777004647,0.00564610567451157,0.00564043067851563,0.00562378131230784,0.0056024107655144,0.00558137530872926,0.00556461603849634,0.00555526079291042,0.00555526079291042, +0.0161679582386192,0.0161679582386192,0.0161907097074701,0.0161717254986831,0.0161261480406258,0.0160692023965678,0.0160133641079848,0.0159687069357266,0.0159436405045276,0.0159436405045276, +0.0427371616104204,0.0427371616104204,0.0427735323539287,0.0427178859787042,0.0426036620721343,0.0424645902230694,0.0423286059471016,0.042219186439328,0.0421572304337906,0.0421572304337906, +0.101586708152707,0.101586708152707,0.101623883391931,0.101482185308507,0.101227205096186,0.100924755884671,0.100629456893575,0.100389403634314,0.100251395761838,0.100251395761838, +0.215447634648287,0.215447634648287,0.215440262975241,0.215127442000782,0.21462541248294,0.214046071044463,0.213480087030422,0.213011708129622,0.212734468158064,0.212734468158064, +0.405553534957852,0.405553534957852,0.405422640713807,0.404821976832722,0.403955496908193,0.402986939584559,0.402037218416895,0.401225507509241,0.400714602744994,0.400714602744994, +0.675974727269337,0.675974727269337,0.675673495649025,0.674644387479277,0.673334987406352,0.671934161955893,0.670549978867165,0.669295361009905,0.668387643140365,0.668387643140365, + +00:10:32, +0.00220930630030396,0.00220930630030396,0.002215480939146,0.00221372887479859,0.00220692306015683,0.0021979280461579,0.00218903110285075,0.00218196002363462,0.00217802814314029,0.00217802814314029, +0.00220930630030396,0.00220930630030396,0.002215480939146,0.00221372887479859,0.00220692306015683,0.0021979280461579,0.00218903110285075,0.00218196002363462,0.00217802814314029,0.00217802814314029, +0.00566737820554252,0.00566737820554252,0.00567897138434836,0.00567328209804669,0.00565657362762891,0.00563511934624812,0.00561399737154225,0.00559716832072977,0.0055877744030631,0.0055877744030631, +0.0162420658618518,0.0162420658618518,0.0162648725260229,0.01624585069293,0.0162001602610428,0.0161430571681191,0.0160870557170608,0.0160422667404953,0.0160171273843308,0.0160171273843308, +0.0428860858772667,0.0428860858772667,0.0429224917556384,0.0428667722028691,0.0427523716217899,0.042613053945391,0.0424768125682619,0.0423671851781633,0.0423051148463864,0.0423051148463864, +0.101840015627125,0.101840015627125,0.101877153302353,0.101735365969745,0.101480200150971,0.1011774803487,0.100881890202938,0.100641602465511,0.100503468897906,0.100503468897906, +0.21579790756045,0.21579790756045,0.215790413065175,0.215477590677034,0.214975537792827,0.214396098890978,0.213829984183031,0.213361507849381,0.213084230337921,0.213084230337921, +0.405921287219547,0.405921287219547,0.405790311894709,0.40518994091837,0.404323856617329,0.403355661547632,0.402406259278822,0.401594842863923,0.401084157135639,0.401084157135639, +0.676218451017121,0.676218451017121,0.675917424809133,0.674889104335574,0.673580666067148,0.672180809307105,0.67079755841594,0.669543806846617,0.668636747759467,0.668636747759467, + +00:10:33, +0.00222529692145569,0.00222529692145569,0.00223150518194823,0.00222974833971263,0.00222291005156166,0.00221386799511116,0.00220492244278354,0.00219781220934101,0.00219385862246957,0.00219385862246957, +0.00222529692145569,0.00222529692145569,0.00223150518194823,0.00222974833971263,0.00222291005156166,0.00221386799511116,0.00220492244278354,0.00219781220934101,0.00219385862246957,0.00219385862246957, +0.00570031102621454,0.00570031102621454,0.00571194950507,0.00570624593291181,0.00568947832677774,0.00566794024229701,0.00564673166249505,0.00562983275362595,0.00562040011948456,0.00562040011948456, +0.0163163276668183,0.0163163276668183,0.0163391894161395,0.016320129982754,0.0162743266752494,0.0162170662466661,0.0161609017266368,0.0161159810097621,0.0160907687615444,0.0160907687615444, +0.0430351453323791,0.0430351453323791,0.0430715860658596,0.0430157934466015,0.0429012166028252,0.042761653662032,0.0426251557424766,0.0425153209061548,0.0424531364848931,0.0424531364848931, +0.102093287334539,0.102093287334539,0.102130387160327,0.101988510849392,0.101733160264363,0.101430171081457,0.101134291036627,0.100893769819198,0.10075551109651,0.10075551109651, +0.216147813494495,0.216147813494495,0.216140196197468,0.215827372682846,0.215325297369319,0.214745762508485,0.214179518743384,0.213710946274246,0.213433631897517,0.213433631897517, +0.406288389576975,0.406288389576975,0.406157333397166,0.405557254994897,0.404691566358468,0.403723734161545,0.402774651623922,0.401963530288786,0.40145306377493,0.40145306377493, +0.676461628405605,0.676461628405605,0.676160807083958,0.675133272555067,0.673825794312713,0.672426904809431,0.67104458487468,0.669791698321965,0.668885296869071,0.668885296869071, + +00:10:34, +0.00224136567744891,0.00224136567744891,0.00224760764106051,0.0022458460267981,0.00223897520313241,0.00222988599500376,0.00222089170942119,0.00221374221698934,0.00220976686475464,0.00220976686475464, +0.00224136567744891,0.00224136567744891,0.00224760764106051,0.0022458460267981,0.00223897520313241,0.00222988599500376,0.00222089170942119,0.00221374221698934,0.00220976686475464,0.00220976686475464, +0.00573335626467505,0.00573335626467505,0.00574504006885675,0.00573932221531798,0.00572249544241184,0.0057008734870526,0.00567957821577315,0.00566260937200674,0.00565313797734007,0.00565313797734007, +0.0163907433718582,0.0163907433718582,0.0164136600958378,0.0163945630862054,0.0163486470018653,0.0162912293518987,0.0162349018576663,0.0161898494655357,0.0161645643587535,0.0161645643587535, +0.0431843392762916,0.0431843392762916,0.0432208145857524,0.0431649490109825,0.0430501963161505,0.04291038867408,0.0427736347713385,0.0426635929254056,0.0426012946516945,0.0426012946516945, +0.102346522541933,0.102346522541933,0.102383584234767,0.102241619215768,0.101986084702228,0.101682827345666,0.101386658654487,0.101145904953062,0.101007521614167,0.101007521614167, +0.216497352679422,0.216497352679422,0.216489612602833,0.216176788247794,0.215674691437058,0.215095062114187,0.214528690921033,0.214060023607797,0.21378267303727,0.21378267303727, +0.40665484380753,0.40665484380753,0.406523706998758,0.405923920840487,0.405058627906534,0.404091159194217,0.403142397212184,0.402331571537795,0.401821324414069,0.401821324414069, +0.676704261457125,0.676704261457125,0.676403644498476,0.675376894169272,0.674070374179289,0.672672450500957,0.671291060282243,0.670039037476485,0.669133292512417,0.669133292512417, + +00:10:35, +0.0022575127255578,0.0022575127255578,0.00226378847349901,0.00226202209309916,0.00225511867215133,0.00224598220345922,0.00223693906072314,0.00222975020479143,0.00222575302833875,0.00222575302833875, +0.0022575127255578,0.0022575127255578,0.00226378847349901,0.00226202209309916,0.00225511867215133,0.00224598220345922,0.00223693906072314,0.00222975020479143,0.00222575302833875,0.00222575302833875, +0.00576651395266811,0.00576651395266811,0.0057782431070218,0.00577251097660506,0.00575562500632049,0.00573391911303685,0.00571253706469152,0.00569549820982294,0.00568598801092371,0.00568598801092371, +0.0164653126948446,0.0164653126948446,0.0164882842826735,0.0164691497208726,0.0164231209590443,0.0163655462030339,0.0163090558306221,0.016263871829339,0.0162385138980543,0.0162385138980543, +0.0433336670113187,0.0433336670113187,0.0433701766182611,0.0433142381988785,0.0431993100644563,0.0430592582843918,0.0429222489581959,0.0428120005397636,0.0427495886509133,0.0427495886509133, +0.102599720520861,0.102599720520861,0.10263674379915,0.102494690341763,0.102238972735008,0.101935448408627,0.101638992320936,0.101398007129356,0.101259499711957,0.101259499711957, +0.216846525346895,0.216846525346895,0.216838662514633,0.216525837604109,0.216023720223362,0.215443997927997,0.214877500928272,0.214408740056377,0.214131353960374,0.214131353960374, +0.407020651682598,0.407020651682598,0.406889434471047,0.406289940227305,0.405425043030468,0.404457938407631,0.403509497797715,0.402698968359076,0.402188940798445,0.402188940798445, +0.676946352183658,0.676946352183658,0.676645939067294,0.675619971199301,0.674314407692698,0.672917448409359,0.671536986667091,0.670285826340325,0.66938073672235,0.66938073672235, + +00:10:36, +0.00227373822247739,0.00227373822247739,0.00228004783569983,0.00227827669507956,0.00227134061532076,0.00226215677752241,0.00225306465407189,0.0022458363303838,0.00224181727099073,0.00224181727099073, +0.00227373822247739,0.00227373822247739,0.00228004783569983,0.00227827669507956,0.00227134061532076,0.00226215677752241,0.00225306465407189,0.0022458363303838,0.00224181727099073,0.00224181727099073, +0.00579978412107255,0.00579978412107255,0.00581155865001459,0.005805812247249,0.00578886704942795,0.00576707715190536,0.00574560824169773,0.00572849930015751,0.00571895025366154,0.00571895025366154, +0.016540035353192,0.016540035353192,0.016563061693749,0.0165438896038913,0.0164977482644832,0.0164400165188246,0.0163833633655056,0.0163380478222169,0.0163126171010624,0.0163126171010624, +0.0434831278415583,0.0434831278415583,0.0435196714681169,0.0434636603149437,0.0433485571522158,0.0432082617975958,0.0430709976081556,0.0429605430548239,0.0428980177884144,0.0428980177884144, +0.102852880547432,0.102852880547432,0.102889865131503,0.102747723504813,0.102491823637697,0.10218803354219,0.101891291304939,0.101650075614877,0.101511444655503,0.101511444655503, +0.217195331731205,0.217195331731205,0.217187346168845,0.216874520986643,0.216372383958195,0.215792570172506,0.215225948980104,0.214757095829059,0.214479674872767,0.214479674872767, +0.407385814967579,0.407385814967579,0.407254517579604,0.406655314921524,0.405790813493241,0.404824073557854,0.403875955128763,0.403065722494937,0.402555914667645,0.402555914667645, +0.677187902586897,0.677187902586897,0.676887692794711,0.675862505655928,0.674557896868412,0.673161900551971,0.671782366047361,0.670532066933312,0.66962763152139,0.66962763152139, + +00:10:37, +0.00229004232432233,0.00229004232432233,0.00229638588351774,0.00229460998862135,0.00228764118876177,0.00227840987365822,0.00226926864627172,0.00226200075082626,0.00225795974990368,0.00225795974990368, +0.00229004232432233,0.00229004232432233,0.00229638588351774,0.00229460998862135,0.00228764118876177,0.00227840987365822,0.00226926864627172,0.00226200075082626,0.00225795974990368,0.00225795974990368, +0.00583316679990516,0.00583316679990516,0.00584498672742394,0.00583922605686503,0.00582222160179668,0.00580034763445061,0.00577879177837523,0.00576161267522869,0.00575202473811472,0.00575202473811472, +0.0166149110638653,0.0166149110638653,0.0166379920457217,0.0166187824519522,0.0165725286354298,0.0165146400175676,0.0164578241818545,0.0164123771647455,0.0163868736889213,0.0163868736889213, +0.0436327210728937,0.0436327210728937,0.0436692984418399,0.0436132146656222,0.0434979368856875,0.0433573985200942,0.0432198800280849,0.0431092197779318,0.043046581371807,0.043046581371807, +0.103106001902282,0.103106001902282,0.103142947514371,0.103000717986882,0.102744636689817,0.102440582022737,0.102143554879987,0.101902109680946,0.101763355714953,0.101763355714953, +0.217543772069246,0.217543772069246,0.21753566380403,0.217222838632838,0.216720682874138,0.216140779072954,0.215574035294209,0.215105091137617,0.2148276359831,0.2148276359831, +0.407750335421907,0.407750335421907,0.407618958084023,0.407020046683341,0.406155941051881,0.40518956639506,0.404241770947734,0.403431835681883,0.402922247755478,0.402922247755478, +0.677428914658312,0.677428914658312,0.677128907674791,0.676104499539654,0.674800843711616,0.673405808935852,0.672027200430929,0.670777761265021,0.669873978921798,0.669873978921798, + +00:10:38, +0.00230642518662556,0.00230642518662556,0.00231280277222489,0.00231102212902361,0.00230402054801295,0.00229474164775031,0.00228555119354736,0.00227824362260067,0.00227418062169363,0.00227418062169363, +0.00230642518662556,0.00230642518662556,0.00231280277222489,0.00231102212902361,0.00230402054801295,0.00229474164775031,0.00228555119354736,0.00227824362260067,0.00227418062169363,0.00227418062169363, +0.00586666201832392,0.00586666201832392,0.00587852736798131,0.00587275243421091,0.00585568869263059,0.00583373059060515,0.00581208770544646,0.00579483836639323,0.00578521149598277,0.00578521149598277, +0.0166899395433877,0.0166899395433877,0.0167130750548122,0.0166938279813095,0.0166474617886915,0.0165894164171124,0.0165324379987515,0.0164868595770402,0.0164612833823112,0.0164612833823112, +0.0437824460129958,0.0437824460129958,0.0438190568477414,0.0437629005591503,0.0436474485729169,0.043506667760066,0.0433688955266141,0.0432580300181848,0.0431952787104472,0.0431952787104472, +0.103359083870557,0.103359083870557,0.103395990234805,0.103253673074438,0.102997411175404,0.10269309313116,0.102395782324079,0.102154108603386,0.102015232164951,0.102015232164951, +0.217891846600479,0.217891846600479,0.217883615661308,0.217570790782699,0.217068617206361,0.2164886248572,0.215921760090915,0.215452726196497,0.215175237502706,0.215175237502706, +0.40811421479907,0.40811421479907,0.407982757737944,0.407384137266997,0.406520427457487,0.405554418663545,0.40460694699121,0.403797309650639,0.403287941789993,0.403287941789993, +0.677669390379219,0.677669390379219,0.677369585691422,0.676345954840778,0.67504325021728,0.673649175557851,0.672271491815475,0.671022911334834,0.67011978092564,0.67011978092564, + +00:10:39, +0.00232288696433708,0.00232288696433708,0.00232929865650958,0.00232751327100122,0.00232047884802911,0.00231115225509981,0.00230191245154273,0.00229456510160961,0.00229048004239825,0.00229048004239825, +0.00232288696433708,0.00232288696433708,0.00232929865650958,0.00232751327100122,0.00232047884802911,0.00231115225509981,0.00230191245154273,0.00229456510160961,0.00229048004239825,0.00229048004239825, +0.00590026980463123,0.00590026980463123,0.00591218059956404,0.00590639140719018,0.00588926835027822,0.00586722604944479,0.00584549605277611,0.00582817640414952,0.00581851055810663,0.00581851055810663, +0.0167651205078496,0.0167651205078496,0.0167883104368125,0.0167690259077895,0.0167225474406437,0.0166643454348691,0.0166072045348327,0.0165614947787637,0.0165358459014566,0.0165358459014566, +0.0439323019713256,0.0439323019713256,0.0439689459959262,0.0439127173055587,0.0437970915237393,0.0436560688274685,0.0435180434141392,0.0434069730864352,0.0433441091154406,0.0433441091154406, +0.10361212574189,0.10361212574189,0.103648992584334,0.103506588058432,0.103250146382976,0.102945566152839,0.102647972919698,0.102406071662501,0.102267073284626,0.102267073284626, +0.218239555566906,0.218239555566906,0.218231201984321,0.217918377678761,0.217416187192584,0.21683610775569,0.216269123593168,0.215800001222781,0.215522479645572,0.215522479645572, +0.408477454846628,0.408477454846628,0.408345918289075,0.4077475884208,0.406884274455254,0.40591863210175,0.404971484989969,0.404162146126167,0.403652998493493,0.403652998493493, +0.677909331720843,0.677909331720843,0.677609728818388,0.676586873539457,0.675285118370221,0.673892002404672,0.67251524218855,0.671267519132016,0.670365039524854,0.670365039524854, + +00:10:40, +0.00233942781182272,0.00233942781182272,0.00234587369047503,0.00234408356868364,0.00233701624318008,0.00232764185042413,0.00231835257531965,0.00231096534317513,0.00230685816747557,0.00230685816747557, +0.00233942781182272,0.00233942781182272,0.00234587369047503,0.00234408356868364,0.00233701624318008,0.00232764185042413,0.00231835257531965,0.00231096534317513,0.00230685816747557,0.00230685816747557, +0.00593399018627711,0.00593399018627711,0.00594594644919855,0.00594014300285535,0.00592296060223602,0.00590083403919186,0.00587901684937429,0.00586162681814085,0.00585192195447196,0.00585192195447196, +0.0168404536729162,0.0168404536729162,0.0168636979070947,0.0168443759467985,0.0167977853072375,0.016739426787817,0.0166821235082958,0.016636282489135,0.0166105609661352,0.0166105609661352, +0.044082288259136,0.044082288259136,0.0441189651982942,0.0440626642166743,0.0439468650497813,0.0438056010340397,0.0436673230028235,0.0435560482952928,0.0434930718996443,0.0434930718996443, +0.103865126810378,0.103865126810378,0.103901953858947,0.103759462234277,0.103502841605523,0.103198000377621,0.102900125953789,0.102657998143055,0.10251887835756,0.10251887835756, +0.218586899213041,0.218586899213041,0.218578423019209,0.218265599566061,0.217763393073059,0.217183228001428,0.216616126026498,0.216146916436163,0.215869362628305,0.215869362628305, +0.408840057306236,0.408840057306236,0.408708441479205,0.408110401887142,0.407247483784486,0.406282208442276,0.405335386669007,0.404526346827684,0.40401741958256,0.40401741958256, +0.678148740644387,0.678148740644387,0.677849339019432,0.676827257605777,0.675526450145168,0.674134291452944,0.67275845352764,0.67151158663577,0.670609756701317,0.670609756701317, + +00:10:41, +0.0023560478828629,0.0023560478828629,0.00236252802763818,0.0023607331756137,0.00235363288724952,0.0023442105878557,0.00233487171935665,0.0023274445020375,0.00232331515180275,0.00232331515180275, +0.0023560478828629,0.0023560478828629,0.00236252802763818,0.0023607331756137,0.00235363288724952,0.0023442105878557,0.00233487171935665,0.0023274445020375,0.00232331515180275,0.00232331515180275, +0.00596782318986244,0.00596782318986244,0.00597982494306358,0.00597400724741115,0.00595676547515153,0.00593455458721842,0.00591265012339976,0.00589518963715853,0.00588544571421223,0.00588544571421223, +0.0169159387538361,0.0169159387538361,0.0169392371806185,0.0169198778133312,0.0168731751040086,0.0168146601925127,0.0167571946369084,0.016711222426937,0.0166854282956861,0.0166854282956861, +0.0442324041894739,0.0442324041894739,0.0442691137685428,0.0442127406061221,0.0440967684644629,0.0439552636933006,0.0438167336066005,0.0437052549591262,0.0436421663776696,0.0436421663776696, +0.104118086374563,0.104118086374563,0.10415487335907,0.104012294901826,0.103755496140477,0.103450395099799,0.103152240717742,0.102909887334252,0.102770646671778,0.102770646671778, +0.218933877785875,0.218933877785875,0.218925279014577,0.218612456692109,0.218110235090529,0.217529985829946,0.216962767618996,0.216493472058917,0.216215886670106,0.216215886670106, +0.409202023913661,0.409202023913661,0.409070329044233,0.408472579402518,0.407610057178624,0.40664514941191,0.405698653747551,0.404889913468683,0.404381206768069,0.404381206768069, +0.678387619101092,0.678387619101092,0.678088418248318,0.677067108999815,0.675767247506831,0.674376044669279,0.673001127800234,0.671755115815306,0.670853934426904,0.670853934426904, + +00:10:42, +0.00237274733065145,0.00237274733065145,0.00237926182092851,0.0023774622447464,0.00237032893343366,0.00236085862094075,0.0023514700375477,0.00234400273235393,0.00233985114967478,0.00233985114967478, +0.00237274733065145,0.00237274733065145,0.00237926182092851,0.0023774622447464,0.00237032893343366,0.00236085862094075,0.0023514700375477,0.00234400273235393,0.00233985114967478,0.00233985114967478, +0.00600176884114218,0.00600176884114218,0.00601381610649343,0.00600798416621778,0.00599068299482665,0.00596838772004945,0.00594639590216309,0.00592886488914511,0.00591908186561194,0.00591908186561194, +0.0169915754654495,0.0169915754654495,0.01701492797194,0.0169955312219787,0.0169487165460851,0.0168900453650984,0.0168324176380162,0.016786314310525,0.0167604476090176,0.0167604476090176, +0.044382649077182,0.044382649077182,0.0444193910221685,0.0443629457893275,0.0442468010829998,0.0441050561205569,0.0439662745411752,0.0438545923940659,0.0437913918658837,0.0437913918658837, +0.104371003737411,0.104371003737411,0.104407750389546,0.104265085365351,0.104008109289693,0.10370274961809,0.103404316507364,0.103161738529711,0.103022377519717,0.103022377519717, +0.219280491534853,0.219280491534853,0.219271770221467,0.218958949306856,0.218456713490208,0.217876381479274,0.217309048601279,0.216839668315866,0.216562051992737,0.216562051992737, +0.409563356398805,0.409563356398805,0.409431582714182,0.408834122697551,0.407971996365259,0.407007456731638,0.406061287939084,0.405252847756948,0.40474436175521,0.40474436175521, +0.678625969032306,0.678625969032306,0.6783269684489,0.677306429671702,0.676007512409962,0.674617264010341,0.673243266963882,0.671998108629905,0.671097574663556,0.671097574663556, + +00:10:43, +0.00238952630779443,0.00238952630779443,0.00239607522268686,0.00239427092844779,0.00238710453434024,0.00237758610263818,0.00236814768320106,0.00236064018769745,0.00235646631480334,0.00235646631480334, +0.00238952630779443,0.00238952630779443,0.00239607522268686,0.00239427092844779,0.00238710453434024,0.00237758610263818,0.00236814768320106,0.00236064018769745,0.00235646631480334,0.00235646631480334, +0.00603582716502863,0.00603582716502863,0.00604791996398117,0.00604207378379412,0.00602471318622084,0.0060023334633661,0.00598025421212991,0.00596265260119759,0.0059528304361098,0.0059528304361098, +0.0170673635221962,0.0170673635221962,0.0170907699952195,0.0170713358869365,0.0170244093481956,0.0169655820213098,0.0169077922285508,0.016861557857835,0.0168356186246157,0.0168356186246157, +0.044533022238901,0.044533022238901,0.0445697962764686,0.0445132790835174,0.0443969622224046,0.044254977632901,0.0441159451240268,0.0440040599180058,0.0439407476824124,0.0439407476824124, +0.104623878206287,0.104623878206287,0.104660584259611,0.104517832933522,0.10426068035943,0.103955063235612,0.103656352622867,0.103413551027452,0.103274070198213,0.103274070198213, +0.219626740711839,0.219626740711839,0.219617896893329,0.219305077662667,0.218802828519745,0.218222415189913,0.21765496920646,0.217185505434354,0.216907858820494,0.216907858820494, +0.409924056485722,0.409924056485722,0.409792204213221,0.409195033497008,0.408333303066156,0.407369132116668,0.406423290951359,0.405615151394578,0.405106886243502,0.405106886243502, +0.678863792369542,0.678863792369542,0.678564991555183,0.677545221561691,0.676247246799418,0.67485795142291,0.673484872966265,0.672240567028983,0.671340679363342,0.671340679363342, + +00:10:44, +0.00240638496630898,0.00240638496630898,0.0024129683846643,0.0024111593784938,0.00240395984198724,0.00239439318531837,0.00238490480903808,0.00237735702105565,0.00237316080031556,0.00237316080031556, +0.00240638496630898,0.00240638496630898,0.0024129683846643,0.0024111593784938,0.00240395984198724,0.00239439318531837,0.00238490480903808,0.00237735702105565,0.00237316080031556,0.00237316080031556, +0.0060699981855946,0.0060699981855946,0.0060821365391819,0.00607627612382098,0.00605885607345439,0.00603639184200894,0.00601422507892412,0.00599655279957058,0.00598669145230193,0.00598669145230193, +0.0171433026381233,0.0171433026381233,0.0171667629642295,0.0171472915220129,0.0171002532246774,0.0170412698764842,0.0169833181250385,0.0169369527863913,0.0169109410605522,0.0169109410605522, +0.044683522993071,0.044683522993071,0.0447203288505434,0.0446637398077226,0.0445472512014891,0.0444050275492138,0.0442657446744102,0.0441536568506055,0.0440902331471416,0.0440902331471416, +0.104876709092939,0.104876709092939,0.104913374282879,0.104770536919385,0.104513208660329,0.10420733525987,0.103908348368839,0.103665324129868,0.103525724008476,0.103525724008476, +0.219972625571093,0.219972625571093,0.219963659285993,0.219650842014293,0.2191485804292,0.218568087204803,0.218000529670127,0.217530983644216,0.217253307380176,0.217253307380176, +0.410284125892639,0.410284125892639,0.410152195259683,0.40955531351982,0.408693978997269,0.407730177276447,0.406784664486423,0.405976826078001,0.405468781926818,0.405468781926818, +0.679101091034546,0.679101091034546,0.678802489491386,0.677783486600217,0.676486452610229,0.675098108843941,0.673725947745254,0.672482492952151,0.671583250468524,0.671583250468524, + +00:10:45, +0.00242332345762218,0.00242332345762218,0.00242994145802101,0.00242812774606914,0.00242089500780187,0.00241128002076203,0.00240174156719204,0.00239415338482956,0.00238993475875286,0.00238993475875286, +0.00242332345762218,0.00242332345762218,0.00242994145802101,0.00242812774606914,0.00242089500780187,0.00241128002076203,0.00240174156719204,0.00239415338482956,0.00238993475875286,0.00238993475875286, +0.00610428192607669,0.00610428192607669,0.006116465854916,0.00611059120914438,0.00609311167981167,0.00607056287998113,0.00604830852733107,0.00603056550967954,0.00602066493994504,0.00602066493994504, +0.0172193925268941,0.0172193925268941,0.0172429065923625,0.0172233978406367,0.0171762478894843,0.0171171086455689,0.0170589950436075,0.0170124988133151,0.0169864146344924,0.0169864146344924, +0.0448341506599333,0.0448341506599333,0.0448709880652973,0.0448143272827789,0.0446976673408657,0.0445552051901666,0.0444156725133581,0.0443033825132921,0.0442398475817193,0.0442398475817193, +0.105129495713474,0.105129495713474,0.105166119777312,0.105023196640343,0.104765693507388,0.104459565002726,0.104160303054227,0.103917057143709,0.103777338256069,0.103777338256069, +0.220318146369239,0.220318146369239,0.220309057657639,0.21999624261884,0.219493969471012,0.218913397769296,0.218345730230303,0.217876103177752,0.21759839790106,0.21759839790106, +0.410643566331975,0.410643566331975,0.410511557566088,0.409914964479103,0.409054025868767,0.408090593914684,0.407145410240632,0.406337873497995,0.405830050493398,0.405830050493398, +0.679337866939357,0.679337866939357,0.679039464172004,0.678021226707963,0.676725131767655,0.67533773820063,0.673966493228972,0.672723888329279,0.671825289911616,0.671825289911616, + +00:10:46, +0.00244034193256995,0.00244034193256995,0.00244699459332517,0.00244517618176616,0.00243791018261937,0.0024282467601591,0.00241865810920704,0.00241102943083244,0.00240678834206978,0.00240678834206978, +0.00244034193256995,0.00244034193256995,0.00244699459332517,0.00244517618176616,0.00243791018261937,0.0024282467601591,0.00241865810920704,0.00241102943083244,0.00240678834206978,0.00240678834206978, +0.00613867840887853,0.00613867840887853,0.00615090793317232,0.00614501906177871,0.00612748002774429,0.0061048466004517,0.00608250458130081,0.00606469075610394,0.0060547509239596,0.0060547509239596, +0.0172956329017952,0.0172956329017952,0.0173192005926394,0.017299654555865,0.0172523930561946,0.0171930980431287,0.0171348226999966,0.0170881956553321,0.0170620390637037,0.0170620390637037, +0.0449849045615321,0.0449849045615321,0.0450217732434405,0.044965040831329,0.0448482099629491,0.0447055098782227,0.0445657279636826,0.0444532362292618,0.0443895903095578,0.0443895903095578, +0.105382237388336,0.105382237388336,0.105418820065208,0.105275811418131,0.105018134219948,0.104711751780385,0.104412215992316,0.104168749380059,0.10402891225089,0.10402891225089, +0.220663303365238,0.220663303365238,0.220654092268773,0.220341279735744,0.219838995899974,0.219258347131129,0.218690571127428,0.218220864269694,0.217943130614866,0.217943130614866, +0.411002379510364,0.411002379510364,0.410870292839161,0.410273988082178,0.409413445385048,0.408450383729364,0.407505529904671,0.406698295339705,0.406190693625868,0.406190693625868, +0.67957412198637,0.67957412198637,0.679275917501876,0.678258443795917,0.676963286187255,0.675576841410478,0.67420651133586,0.67296475508056,0.672066799615448,0.672066799615448, + +00:10:47, +0.00245744054139593,0.00245744054139593,0.00246412794055187,0.00246230483558383,0.00245500551668198,0.00244529355410763,0.00243565458603684,0.00242798531028872,0.00242372170163289,0.00242372170163289, +0.00245744054139593,0.00245744054139593,0.00246412794055187,0.00246230483558383,0.00245500551668198,0.00244529355410763,0.00243565458603684,0.00242798531028872,0.00242372170163289,0.00242372170163289, +0.00617318765557397,0.00617318765557397,0.00618546279511146,0.00617955970291005,0.00616196113887444,0.00613924302575874,0.00611681326395128,0.00609892856259048,0.0060889494284331,0.0060889494284331, +0.0173720234757448,0.0173720234757448,0.0173956446777172,0.0173760613803916,0.0173286884380192,0.0172692377833538,0.0172108008095627,0.0171640430287805,0.0171378140650627,0.0171378140650627, +0.045135784021716,0.045135784021716,0.0451726837094909,0.0451158797778237,0.0449988783919576,0.044855940937639,0.0447159103499769,0.0446032173234823,0.0445394606558354,0.0445394606558354, +0.105634933442289,0.105634933442289,0.105671474473174,0.1055283805788,0.105270530121667,0.10496389491337,0.104664086500707,0.104420400154317,0.10428044530715,0.10428044530715, +0.22100809682036,0.22100809682036,0.220998763382191,0.220685953626742,0.220183659973201,0.219602935540391,0.219035052604322,0.218565267157182,0.218287505755736,0.218287505755736, +0.411360567128669,0.411360567128669,0.411228402779853,0.410632386030589,0.409772239244761,0.408809548412772,0.407865025163574,0.407058093282664,0.406550713001263,0.406550713001263, +0.679809858068398,0.679809858068398,0.679511851376237,0.678495139765442,0.677200917774943,0.675815420381349,0.674446003974737,0.67320509511657,0.672307781493228,0.672307781493228, + +00:10:48, +0.00247461943375043,0.00247461943375043,0.00248134164908208,0.00247951385692661,0.00247218115963783,0.00246242055261273,0.0024527311480438,0.00244502117383285,0.0024407349882196,0.0024407349882196, +0.00247461943375043,0.00247461943375043,0.00248134164908208,0.00247951385692661,0.00247218115963783,0.00246242055261273,0.0024527311480438,0.00244502117383285,0.0024407349882196,0.0024407349882196, +0.00620780968691039,0.00620780968691039,0.006220130461069,0.00621421315289937,0.00619655503399808,0.00617375217741267,0.00615123459757155,0.00613327895205633,0.00612326047662317,0.00612326047662317, +0.0174485639613003,0.0174485639613003,0.0174722385598964,0.0174526180265541,0.0174051337478092,0.0173455275800682,0.0172869290872887,0.0172400406496191,0.0172137393550641,0.0172137393550641, +0.0452867883661396,0.0452867883661396,0.0453237187897749,0.0452668434485237,0.0451496719539151,0.0450064976944674,0.0448662189986171,0.0447533251226936,0.0446894579474977,0.0446894579474977, +0.105887583204392,0.105887583204392,0.105924082332107,0.105780903452692,0.105522880540499,0.105215993726503,0.104915913901299,0.104672008786175,0.104531936743351,0.104531936743351, +0.221352526998155,0.221352526998155,0.221343071262962,0.221030264555842,0.220527961950105,0.219947163249502,0.219379174906164,0.218909312079734,0.2186315235602,0.2186315235602, +0.411718130882008,0.411718130882008,0.411585889083357,0.410990160020127,0.410130409140827,0.40916808965151,0.40822389769674,0.407417269000811,0.40691011029104,0.40691011029104, +0.680045077068731,0.680045077068731,0.679747267680788,0.678731316508329,0.677438028427052,0.676053477011532,0.674684973044857,0.673444910338326,0.672548237448603,0.672548237448603, + +00:10:49, +0.00249187875868935,0.00249187875868935,0.00249863586770156,0.00249680339460348,0.00248943726053995,0.00247962790508545,0.0024698879449978,0.00246213717150823,0.00245782835201715,0.00245782835201715, +0.00249187875868935,0.00249187875868935,0.00249863586770156,0.00249680339460348,0.00248943726053995,0.00247962790508545,0.0024698879449978,0.00246213717150823,0.00245782835201715,0.00245782835201715, +0.00624254452281185,0.00624254452281185,0.00625491095055876,0.00624897943128581,0.00623126173308817,0.00620837407609945,0.00618576860362502,0.00616774194659226,0.00615768409096083,0.00615768409096083, +0.0175252540706666,0.0175252540706666,0.0175489819511295,0.0175293242063423,0.0174817286980637,0.0174219671467369,0.0173632072477917,0.0173161882334349,0.0172898146498275,0.0172898146498275, +0.0454379169222645,0.0454379169222645,0.0454748778124292,0.0454179311715006,0.0453005899766516,0.0451571794765567,0.0450166532377637,0.0449035589554106,0.04483958151326,0.04483958151326, +0.106140186007981,0.106140186007981,0.106176642977175,0.106033379374422,0.105775184808676,0.105468047548884,0.105167697520264,0.104923574599597,0.10478338588227,0.10478338588227, +0.221696594164428,0.221696594164428,0.22168701617839,0.221374212789299,0.220871902092369,0.22029103051318,0.219722938280461,0.219252999279216,0.21897518426715,0.21897518426715, +0.41207507245977,0.41207507245977,0.411942753439134,0.411347311740845,0.410487956760455,0.409526009126517,0.408582149177958,0.407775824162508,0.407268887161102,0.407268887161102, +0.680279780861201,0.680279780861201,0.679982168291754,0.678966975906866,0.677674620030398,0.676291013189805,0.674923420435978,0.673684202637353,0.672788169375716,0.672788169375716, + +00:10:50, +0.00250921866467316,0.00250921866467316,0.00251601074459987,0.00251417359682686,0.00250677396784516,0.00249691576034182,0.00248712512607516,0.00247933345276614,0.00247500194262146,0.00247500194262146, +0.00250921866467316,0.00250921866467316,0.00251601074459987,0.00251417359682686,0.00250677396784516,0.00249691576034182,0.00248712512607516,0.00247933345276614,0.00247500194262146,0.00247500194262146, +0.00627739218238241,0.00627739218238241,0.00628980428227601,0.00628385855678989,0.00626608125529796,0.00624310874168384,0.00622041530275265,0.00620231756746591,0.00619222029305367,0.00619222029305367, +0.0176020935157033,0.0176020935157033,0.0176258745630282,0.0176061796314058,0.0175584730009379,0.0174985561964743,0.0174396350053303,0.0173924854954511,0.0173660396651061,0.0173660396651061, +0.0455891690193612,0.0455891690193612,0.0456261601074019,0.0455691422766382,0.0454516317898056,0.0453079856135534,0.0451672123973629,0.0450539181519239,0.0449898306836081,0.0449898306836081, +0.106392741190647,0.106392741190647,0.106429155747792,0.106285807682855,0.106027442262687,0.105720055713871,0.105419436688032,0.105175096922801,0.105034792050931,0.105034792050931, +0.22204029858721,0.22204029858721,0.222030598397997,0.221717798595584,0.221215480663914,0.220634537588415,0.220066342977018,0.219596328999821,0.219318488117816,0.219318488117816, +0.412431393545635,0.412431393545635,0.412298997530927,0.411703842877079,0.410844883785165,0.409883308513086,0.408939781275418,0.408133760430559,0.407627045271809,0.407627045271809, +0.680513971310237,0.680513971310237,0.680216555075941,0.67920211983389,0.677910694462335,0.676528030795491,0.675161348028414,0.673922973895738,0.673027579159272,0.673027579159272, + +00:10:51, +0.00252663929956591,0.00252663929956591,0.00253346642736935,0.00253162461121163,0.00252419142941315,0.00251428426660175,0.00250444283985765,0.00249661016646466,0.00249225590903612,0.00249225590903612, +0.00252663929956591,0.00252663929956591,0.00253346642736935,0.00253162461121163,0.00252419142941315,0.00251428426660175,0.00250444283985765,0.00249661016646466,0.00249225590903612,0.00249225590903612, +0.00631235268390933,0.00631235268390933,0.00632481047410072,0.00631885054731678,0.00630101361896421,0.00627795619321259,0.00625517471477618,0.00623700583512499,0.00622686910368905,0.00622686910368905, +0.0176790820079327,0.0176790820079327,0.0177029161068712,0.0176831840130612,0.0176353663682503,0.017575294442051,0.0175162120738125,0.0174689321505346,0.0174424141162939,0.0174424141162939, +0.0457405439885099,0.0457405439885099,0.0457775650064537,0.0457204760956337,0.0456027967248244,0.0454589154369036,0.0453178958091481,0.0452044020443016,0.0451402047908004,0.0451402047908004, +0.106645248094215,0.106645248094215,0.106681619987603,0.106538187721087,0.106279652243254,0.105972017559058,0.105671130739266,0.105426575088236,0.105286154580594,0.105286154580594, +0.22238364053673,0.22238364053673,0.222373818193485,0.222061022245363,0.221558697930878,0.220977684734442,0.220409389247917,0.219939301488033,0.219661435355732,0.219661435355732, +0.412787095817593,0.412787095817593,0.412654623036786,0.41205975510747,0.411201191890806,0.410239989480887,0.409296795651737,0.408491079462232,0.407984586278005,0.407984586278005, +0.680747650270929,0.680747650270929,0.680450429890801,0.679436750152857,0.678146253590817,0.676764531698523,0.6753987576931,0.674161225986193,0.673266468674593,0.673266468674593, + +00:10:52, +0.00254414081063417,0.00254414081063417,0.00255100306300412,0.00254915658477417,0.00254168979250542,0.00253173357148807,0.0025218412343314,0.00251396746086769,0.00250959039967134,0.00250959039967134, +0.00254414081063417,0.00254414081063417,0.00255100306300412,0.00254915658477417,0.00254168979250542,0.00253173357148807,0.0025218412343314,0.00251396746086769,0.00250959039967134,0.00250959039967134, +0.0063474260448663,0.0063474260448663,0.00635992954310086,0.00635395541995954,0.00633605884161042,0.00631291644891771,0.00629004685870136,0.00627180676920045,0.00626163054283731,0.00626163054283731, +0.0177562192585474,0.0177562192585474,0.017780106293612,0.0177603370623005,0.0177124085114906,0.0176521815959026,0.0175929381668036,0.0175455279132039,0.0175189377184334,0.0175189377184334, +0.045892041162602,0.045892041162602,0.0459290918431593,0.0458719319619992,0.0457540841149657,0.0456099682798537,0.0454687028066415,0.0453550099663907,0.0452907031688691,0.0452907031688691, +0.106897706064726,0.106897706064726,0.106934035044459,0.106790518836425,0.106531814095315,0.106223932426257,0.105922779012843,0.105678008432565,0.105537472806728,0.105537472806728, +0.222726620285391,0.222726620285391,0.222716675838722,0.222403884011462,0.221901554161585,0.221320472212716,0.220752077347486,0.220281916992607,0.220004026226714,0.220004026226714, +0.413142180947967,0.413142180947967,0.413009631629083,0.412415050104981,0.411556882747572,0.410596053693983,0.40965319396397,0.408847782909271,0.408341511829029,0.408341511829029, +0.680980819589085,0.680980819589085,0.68068379458449,0.679670868717892,0.678381299274463,0.677000517759498,0.675635651291649,0.674398960772114,0.673504839787679,0.673504839787679, + +00:10:53, +0.00256172334454611,0.00256172334454611,0.00256862079789918,0.00256676966393136,0.00255926920378435,0.00254926382202554,0.00253932045688596,0.00253140548364391,0.00252700556234295,0.00252700556234295, +0.00256172334454611,0.00256172334454611,0.00256862079789918,0.00256676966393136,0.00255926920378435,0.00254926382202554,0.00253932045688596,0.00253140548364391,0.00252700556234295,0.00252700556234295, +0.00638261228191673,0.00638261228191673,0.00639516150553556,0.00638917319100239,0.00637121693995011,0.00634798952621973,0.00632503175272114,0.00630672038850973,0.00629650462965497,0.00629650462965497, +0.0178335049784178,0.0178335049784178,0.0178574448338861,0.017837638489798,0.0177895991418272,0.0177292173701363,0.0176698129975337,0.0176222724976366,0.0175956101862235,0.0175956101862235, +0.0460436598763409,0.0460436598763409,0.0460807399529078,0.0460235092110622,0.0459054932952988,0.0457611434774521,0.045619632725155,0.0455057412538182,0.0454413251536214,0.0454413251536214, +0.107150114452413,0.107150114452413,0.107186400270397,0.107042800380364,0.106783927168004,0.106475799661473,0.106174380851834,0.105929396296641,0.105788746068991,0.105788746068991, +0.223069238107741,0.223069238107741,0.223059171609703,0.22274638416885,0.222244049626521,0.22166290028688,0.22109440753227,0.22062417576454,0.220346260978833,0.220346260978833, +0.413496650603429,0.413496650603429,0.413364024974534,0.412769729536918,0.41191195802003,0.410951502810849,0.410008977863639,0.409203872417922,0.40869782356874,0.40869782356874, +0.681213481101291,0.681213481101291,0.680916650995923,0.679904477373855,0.678615833362606,0.677235990829742,0.675872030676413,0.67463618010764,0.673742694355267,0.673742694355267, + +00:10:54, +0.00257938704737051,0.00257938704737051,0.00258631977784938,0.00258446399449964,0.00257692980931223,0.00256687516463989,0.00255688065431332,0.00254892438186579,0.00254450154427137,0.00254450154427137, +0.00257938704737051,0.00257938704737051,0.00258631977784938,0.00258446399449964,0.00257692980931223,0.00256687516463989,0.00255688065431332,0.00254892438186579,0.00254450154427137,0.00254450154427137, +0.00641791141091694,0.00641791141091694,0.00643050637685841,0.00642450387592391,0.00640648792989003,0.00638317544173086,0.00636012941421896,0.00634174671105996,0.00633149138248791,0.00633149138248791, +0.0179109388780999,0.0179109388780999,0.0179349314380191,0.0179150880059182,0.0178669379701149,0.0178064014765391,0.0177468362789051,0.0176991656176772,0.0176724312340271,0.0176724312340271, +0.0461953994662435,0.0461953994662435,0.0462325086729045,0.0461752071799668,0.0460570236027053,0.0459124403665499,0.0457706849017916,0.0456565952439927,0.0455920700826412,0.0455920700826412, +0.107402472611682,0.107402472611682,0.107438715021623,0.107295031708568,0.107035990814625,0.10672761861489,0.106425935603485,0.106180738025489,0.106039973711216,0.106039973711216, +0.223411494280451,0.223411494280451,0.223401305784535,0.223088522994605,0.222586184598306,0.222004969222746,0.221436380061012,0.220966078057043,0.220688139862385,0.220688139862385, +0.41385050644502,0.41385050644502,0.413717804734216,0.413123795064951,0.412266419367131,0.411306338484396,0.410364148996741,0.409559349628945,0.409053523135529,0.409053523135529, +0.68144563663497,0.68144563663497,0.681149000954839,0.680137577956396,0.678849857695361,0.677470952751362,0.676107897690538,0.674872885837707,0.67398003422489,0.67398003422489, + +00:10:55, +0.00259713206457586,0.00259713206457586,0.00260410014804854,0.00260223972169411,0.00259467175455034,0.00258456774515686,0.00257452197280692,0.00256652430200862,0.00256207849208065,0.00256207849208065, +0.00259713206457586,0.00259713206457586,0.00260410014804854,0.00260223972169411,0.00259467175455034,0.00258456774515686,0.00257452197280692,0.00256652430200862,0.00256207849208065,0.00256207849208065, +0.00645332344691944,0.00645332344691944,0.00646596417172072,0.00645994748940035,0.00644187182653346,0.00641847421125832,0.00639533985977189,0.00637688575405116,0.00636659081887462,0.00636659081887462, +0.0179885206678425,0.0179885206678425,0.0180125658160336,0.0179926853207233,0.0179444247069024,0.0178837336265851,0.0178240077235,0.0177762069868442,0.0177494005758782,0.0177494005758782, +0.0463472592706405,0.0463472592706405,0.0463843973421714,0.046327025207675,0.0462086743758803,0.0460638582858022,0.0459218586754465,0.0458075712761055,0.0457429372952898,0.0457429372952898, +0.107654779901095,0.107654779901095,0.107690978658487,0.10754721218085,0.107288004392638,0.106979388640844,0.106677442619194,0.106432032968285,0.106291155081382,0.106291155081382, +0.223753389082281,0.223753389082281,0.223743078643401,0.223430300767891,0.22292795935167,0.222346679288263,0.221777995194618,0.221307624125515,0.221029663129867,0.221029663129867, +0.414203750128173,0.414203750128173,0.414070972563594,0.413477248345129,0.412620268442234,0.411660562361983,0.410718709003774,0.409914216177636,0.409408612162341,0.409408612162341, +0.681677288008437,0.681677288008437,0.681380846281854,0.680370172292016,0.67908337410368,0.67770540535731,0.676343254168026,0.675109079798114,0.674216861234931,0.674216861234931, + +00:10:56, +0.00261495854102938,0.00261495854102938,0.00262196205308854,0.00262009699012763,0.00261249518435804,0.00260234170880129,0.00259224455796072,0.00258420538994958,0.00257973655179753,0.00257973655179753, +0.00261495854102938,0.00261495854102938,0.00262196205308854,0.00262009699012763,0.00261249518435804,0.00260234170880129,0.00259224455796072,0.00258420538994958,0.00257973655179753,0.00257973655179753, +0.00648884840417615,0.00648884840417615,0.0065015349039747,0.00649550404530883,0.00647736864418339,0.0064538858498075,0.00643066310515394,0.00641213753387948,0.00640180295554939,0.00640180295554939, +0.0180662500575948,0.0180662500575948,0.0180903476776569,0.0180704301439803,0.0180220590624393,0.0179612135314429,0.0179013270435879,0.0178533963183381,0.0178265179254901,0.0178265179254901, +0.0464992386296781,0.0464992386296781,0.046536405301548,0.0464789626349668,0.0463604449553331,0.0462153965756689,0.0460731533868079,0.0459586686911314,0.0458939261327077,0.0458939261327077, +0.107907035683343,0.107907035683343,0.107943190545466,0.107799341161152,0.107539967263637,0.107231109097809,0.106928901254493,0.106683280478337,0.106542289531603,0.106542289531603, +0.224094922794064,0.224094922794064,0.224084490468542,0.223771717769934,0.223269374163425,0.222688030753492,0.222119253196137,0.221648814227519,0.221370831035951,0.221370831035951, +0.414556383302727,0.414556383302727,0.41442353011253,0.413830091027905,0.412973506893124,0.412014176085439,0.411072659519754,0.410268473693846,0.409763092276694,0.409763092276694, +0.681908437030959,0.681908437030959,0.681612188788522,0.680602262198123,0.679316384409406,0.677939350471437,0.676578101933789,0.675344763815573,0.674453177214685,0.674453177214685, + +00:10:57, +0.00263286662099618,0.00263286662099618,0.00263990563695842,0.00263803594380988,0.00263040024299187,0.00262019720019622,0.00261004855476831,0.00260196779096678,0.00259747586885047,0.00259747586885047, +0.00263286662099618,0.00263286662099618,0.00263990563695842,0.00263803594380988,0.00263040024299187,0.00262019720019622,0.00261004855476831,0.00260196779096678,0.00259747586885047,0.00259747586885047, +0.00652448629614167,0.00652448629614167,0.00653721858667678,0.00653117355673061,0.00651297839634581,0.00648941037158526,0.00646609916533921,0.00644750206614038,0.00643712780844546,0.00643712780844546, +0.0181441267570138,0.0181441267570138,0.0181682767323286,0.0181483221851686,0.0180998407466841,0.0180388409019831,0.0179787939511332,0.0179307333250486,0.0179037829962621,0.0179037829962621, +0.0466513368853182,0.0466513368853182,0.0466885318936924,0.0466310188044416,0.0465123346833884,0.0463670545784158,0.0462245683783586,0.0461098868318303,0.046045035937815,0.046045035937815, +0.108159239325231,0.108159239325231,0.108195350051144,0.108051418017523,0.107791878793328,0.107482779348371,0.107180310869029,0.106934479913065,0.1067933764181,0.1067933764181, +0.224436095698672,0.224436095698672,0.22442554154423,0.224112774283991,0.223610429312438,0.223029023890582,0.222460154330732,0.221989648622755,0.221711643837458,0.221711643837458, +0.41490840761295,0.41490840761295,0.414775479025311,0.414182324758151,0.413326136362029,0.412367181291084,0.411426002174232,0.410622123801997,0.410116965100695,0.410116965100695, +0.682139085502814,0.682139085502814,0.68184303027739,0.680833849483087,0.679548890425339,0.678172789908554,0.676812442803709,0.67557993970777,0.674688983984415,0.674688983984415, + +00:10:58, +0.00265085644813835,0.00265085644813835,0.00265793104304351,0.00265605672614655,0.00264838707410466,0.00263813436336196,0.00262793410762195,0.00261981164973834,0.00261529658806874,0.00261529658806874, +0.00265085644813835,0.00265085644813835,0.00265793104304351,0.00265605672614655,0.00264838707410466,0.00263813436336196,0.00262793410762195,0.00261981164973834,0.00261529658806874,0.00261529658806874, +0.00656023713547649,0.00656023713547649,0.0065730152320908,0.00656695603595433,0.00654870109573296,0.00652504779000312,0.00650164805450516,0.00648297936563186,0.00647256539269832,0.00647256539269832, +0.0182221504754717,0.0182221504754717,0.0182463526892072,0.0182263611534875,0.0181777694693112,0.0181166154487858,0.0180564081578025,0.0180082177195619,0.0179811955012875,0.0179811955012875, +0.0468035533813397,0.0468035533813397,0.0468407764630817,0.0467831930605188,0.0466643429041866,0.0465188316381152,0.0463761029943764,0.0462612250427478,0.0461962660553129,0.0461962660553129, +0.108411390197658,0.108411390197658,0.108447456548189,0.1083034421221,0.108043738351508,0.107734398759215,0.10743167082654,0.107185630633979,0.107044415101189,0.107044415101189, +0.224776908080996,0.224776908080996,0.224766232156738,0.224453470595334,0.223951125079612,0.223369658973745,0.222800698865658,0.222330127573033,0.222052101793331,0.222052101793331, +0.41525982469756,0.41525982469756,0.415126820940665,0.414533951175181,0.413678158485644,0.412719579609747,0.411778738591314,0.410975168121101,0.410470232251059,0.410470232251059, +0.682369235215343,0.682369235215343,0.682073372542056,0.681064935946305,0.679780893955283,0.678405725474482,0.677046278584693,0.67581460928342,0.674924283355406,0.674924283355406, + +00:10:59, +0.0026689281655141,0.0026689281655141,0.00267603841412459,0.00267415947993847,0.00266645582074472,0.0026561533417153,0.00264590136031174,0.00263773711034154,0.00263319885368153,0.00263319885368153, +0.0026689281655141,0.0026689281655141,0.00267603841412459,0.00267415947993847,0.00266645582074472,0.0026561533417153,0.00264590136031174,0.00263773711034154,0.00263319885368153,0.00263319885368153, +0.00659610093405023,0.00659610093405023,0.00660892485169129,0.00660285149447929,0.00658453675426655,0.00656079811768053,0.00653730978603582,0.00651856944635766,0.00650811572264883,0.00650811572264883, +0.0183003209220632,0.0183003209220632,0.0183245752571784,0.0183045467578631,0.0182558449397183,0.0181945368821476,0.0181341693749717,0.0180858492141683,0.0180587551533605,0.0180587551533605, +0.0469558874633389,0.0469558874633389,0.046993138356013,0.0469354847494383,0.0468164689636849,0.0466707271006469,0.046527756580935,0.0464126826702161,0.0463476158316846,0.0463476158316846, +0.108663487675592,0.108663487675592,0.108699509413334,0.108555412851089,0.108295545312051,0.107985966701097,0.107682980494839,0.107436732006664,0.107295404945253,0.107295404945253, +0.225117360227918,0.225117360227918,0.22510656259432,0.224793806991215,0.224291461747853,0.223709936279227,0.223140887070232,0.22267025134225,0.222392205164611,0.222392205164611, +0.415610636189738,0.415610636189738,0.415477557491779,0.414884971912768,0.414029574895148,0.413071372666781,0.412130870389679,0.411327608264781,0.410822895339127,0.410822895339127, +0.68259888795101,0.68259888795101,0.682303217367224,0.681295523378248,0.680012396794111,0.678638158966117,0.677279611074728,0.676048774342323,0.675159077130023,0.675159077130023, + +00:11:00, +0.00268708191557691,0.00268708191557691,0.00269422789237706,0.00269234434738077,0.00268460662535496,0.00267425427806857,0.00266395045602474,0.00265574431625189,0.00265118280931707,0.00265118280931707, +0.00268708191557691,0.00268708191557691,0.00269422789237706,0.00269234434738077,0.00268460662535496,0.00267425427806857,0.00266395045602474,0.00265574431625189,0.00265118280931707,0.00265118280931707, +0.00663207770294494,0.00663207770294494,0.0066449474561667,0.00663885994301863,0.00662048538308102,0.00659666136644808,0.00657308437252502,0.00655427232153049,0.00654377881184649,0.00654377881184649, +0.0183786378056125,0.0183786378056125,0.0184029441448614,0.0183828787069558,0.0183340668670335,0.0182726049120891,0.0182120773137338,0.0181636275208693,0.0181364616649838,0.0181364616649838, +0.0471083384787299,0.0471083384787299,0.0471456169206037,0.0470878932192611,0.0469687122096575,0.0468227403136988,0.0466795284859051,0.0465642590623551,0.046499084615196,0.046499084615196, +0.108915531138058,0.108915531138058,0.108951508027361,0.108807329584743,0.108547299052879,0.108237482548829,0.107934239245792,0.107687783400753,0.10754634531873,0.10754634531873, +0.225457452428288,0.225457452428288,0.225446533147186,0.225133783760846,0.22463143960205,0.224049856085287,0.223480719215811,0.223010020196361,0.222731954214411,0.222731954214411, +0.415960843717155,0.415960843717155,0.415827690306322,0.415235388599165,0.414380387216222,0.413422562082088,0.4124823991826,0.411679445841284,0.411174955970886,0.411174955970886, +0.682828045483455,0.682828045483455,0.682532566528761,0.681525613560524,0.680243400727815,0.678870092171481,0.67751244206294,0.676282436675423,0.675393367101769,0.675393367101769, + +00:11:01, +0.00270531784017472,0.00270531784017472,0.00271249961937009,0.00271061147006208,0.00270283962977209,0.00269243731462889,0.00268208153734411,0.00267383341034231,0.00266924859800172,0.00266924859800172, +0.00270531784017472,0.00270531784017472,0.00271249961937009,0.00271061147006208,0.00270283962977209,0.00269243731462889,0.00268208153734411,0.00267383341034231,0.00266924859800172,0.00266924859800172, +0.00666816745245828,0.00666816745245828,0.00668108305542264,0.00667498139150266,0.00665654699252678,0.00663263754735078,0.00660897182577962,0.00659008800357526,0.0065795546730526,0.0065795546730526, +0.0184571008346808,0.0184571008346808,0.0184814590606166,0.0184613567091674,0.0184124349601228,0.0183508192483621,0.0182901316849055,0.0182415523513847,0.0182143147483757,0.0182143147483757, +0.0472609057767459,0.0472609057767459,0.0472982115067922,0.04724041781987,0.0471210719916966,0.0469748706267676,0.0468314180589548,0.0467159535690732,0.0466506717558965,0.0466506717558965, +0.109167519968108,0.109167519968108,0.109203451775073,0.109059191707344,0.108798998955952,0.108488945681261,0.1081854464553,0.107938784189915,0.107797235594087,0.107797235594087, +0.225797184972899,0.225797184972899,0.225786144107474,0.225473401195377,0.224971058929048,0.224389418672169,0.223820195575765,0.22334943440336,0.223071349207892,0.223071349207892, +0.416310448901985,0.416310448901985,0.416177221006462,0.415585202857123,0.414730597069069,0.413773149470133,0.412833326577957,0.412030682453506,0.411526415746984,0.411526415746984, +0.683056709577553,0.683056709577553,0.682761421793754,0.681755208265929,0.680473907533568,0.679101526869778,0.67774477332965,0.676515598064859,0.675627155055336,0.675627155055336, + +00:11:02, +0.00272363608054914,0.00272363608054914,0.0027308537360659,0.00272896098896375,0.00272115497522583,0.00271070259299731,0.00270029474624829,0.00269200453488228,0.00268739636215921,0.00268739636215921, +0.00272363608054914,0.00272363608054914,0.0027308537360659,0.00272896098896375,0.00272115497522583,0.00271070259299731,0.00270029474624829,0.00269200453488228,0.00268739636215921,0.00268739636215921, +0.00670437019210678,0.00670437019210678,0.00671733165858514,0.00671121584908202,0.00669272159217348,0.00666872667065122,0.00664497215682271,0.00662601650413221,0.0066154433182435,0.0066154433182435, +0.0185357097175736,0.0185357097175736,0.0185601197125525,0.0185399804726482,0.0184909489275969,0.0184291796004565,0.0183683321990349,0.0183196234171604,0.0182923141154775,0.0182923141154775, +0.0474135887084393,0.0474135887084393,0.0474509214663383,0.04739305790297,0.0472735476612127,0.0471271173911592,0.0469834246515506,0.0468677655420678,0.0468023766056202,0.0468023766056202, +0.109419453552811,0.109419453552811,0.109455340045283,0.109310998607179,0.109050644407239,0.108740355481255,0.108436601503279,0.108189733751829,0.108048075147806,0.108048075147806, +0.226136558154462,0.226136558154462,0.226125395769228,0.225812659587864,0.225310320017627,0.224728624322081,0.224159316425457,0.223688494233249,0.223410390412236,0.223410390412236, +0.416659453360929,0.416659453360929,0.416526151208886,0.415934416303912,0.415080206068433,0.414123136439966,0.413183654178262,0.412381319699005,0.411877276262752,0.411877276262752, +0.683284881989464,0.683284881989464,0.682989784920562,0.681984309258506,0.680703918979772,0.679332464831448,0.677976606646423,0.676748260284019,0.67586044276666,0.67586044276666, + +00:11:03, +0.00274203677733461,0.00274203677733461,0.00274929038281888,0.00274739304445904,0.0027395528023381,0.00272905025416802,0.00271859022411021,0.002710257831537,0.00270562624360972,0.00270562624360972, +0.00274203677733461,0.00274203677733461,0.00274929038281888,0.00274739304445904,0.0027395528023381,0.00272905025416802,0.00271859022411021,0.002710257831537,0.00270562624360972,0.00270562624360972, +0.00674068593062908,0.00674068593062908,0.00675369327400388,0.006747563324131,0.00672900919081319,0.00670492874583291,0.00668108537589686,0.00666205783406023,0.00665144475861373,0.00665144475861373, +0.0186144641623471,0.0186144641623471,0.0186389258085332,0.0186187497053041,0.0185696084778184,0.0185076856776081,0.0184466785664085,0.0183978404293747,0.0183704594779603,0.0183704594779603, +0.0475663866266818,0.0475663866266818,0.0476037461528238,0.0475458128220885,0.0474261385714349,0.0472794799599895,0.0471355476169577,0.0470196943348261,0.0469541985179859,0.0469541985179859, +0.109671331283228,0.109671331283228,0.109707172230789,0.109562749676528,0.109302234796705,0.10899171133567,0.108687703773637,0.108440631468171,0.10829886336036,0.10829886336036, +0.226475572267581,0.226475572267581,0.226464288428377,0.226151559233254,0.225649223158471,0.225067473319166,0.22449808204221,0.224027199958019,0.223749078096623,0.223749078096623, +0.417007858705231,0.417007858705231,0.41687448252482,0.416283030551338,0.41542921582362,0.414472524595239,0.413533383580674,0.412731359170021,0.412227539108218,0.412227539108218, +0.683512564466694,0.683512564466694,0.683217657658873,0.682212918293597,0.680933436826118,0.679562907818226,0.678207943776128,0.676980425097603,0.676093232002982,0.676093232002982, + +00:11:04, +0.00276052007055767,0.00276052007055767,0.00276780969937493,0.00276590777631241,0.0027580332511223,0.00274748043852759,0.00273696811169649,0.00272859344136664,0.00272393838356914,0.00272393838356914, +0.00276052007055767,0.00276052007055767,0.00276780969937493,0.00276590777631241,0.0027580332511223,0.00274748043852759,0.00273696811169649,0.00272859344136664,0.00272393838356914,0.00272393838356914, +0.00677711467598919,0.00677711467598919,0.00679016790925542,0.00678402382425075,0.00676540979646372,0.00674124378160342,0.00671731149246732,0.00669821200343998,0.00668755900457928,0.00668755900457928, +0.0186933638768162,0.0186933638768162,0.0187178770561847,0.0186976641148036,0.0186484133189091,0.0185863371888048,0.0185251704970581,0.0184762030989462,0.0184487505472324,0.0184487505472324, +0.0477192988861657,0.0477192988861657,0.0477566849216525,0.0476986819325761,0.0475788440774118,0.0474319576881846,0.0472877863102407,0.0471717393026256,0.0471061368483984,0.0471061368483984, +0.109923152554391,0.109923152554391,0.109958947728355,0.109814444311635,0.109553769518287,0.109243012635341,0.10893875265426,0.108691476724586,0.108549599616197,0.108549599616197, +0.226814227608731,0.226814227608731,0.226802822382702,0.226490100428354,0.225987768644153,0.225405965949482,0.224836492705294,0.224365551851621,0.224087412532209,0.224087412532209, +0.4173556665407,0.4173556665407,0.417222216560045,0.416631047205764,0.415777627938515,0.414821315534225,0.413882516377016,0.413080802453494,0.412577205868129,0.412577205868129, +0.683739758748143,0.683739758748143,0.683445041749756,0.6824410371179,0.681162462823639,0.679792857583193,0.678438786472992,0.677212094261665,0.676325524522894,0.676325524522894, + +00:11:05, +0.00277908609963623,0.00277908609963623,0.00278641182487068,0.00278450532367873,0.00277659646098253,0.00276599328585422,0.00275542854916665,0.0027470115048255,0.00274233292264827,0.00274233292264827, +0.00277908609963623,0.00277908609963623,0.00278641182487068,0.00278450532367873,0.00277659646098253,0.00276599328585422,0.00275542854916665,0.0027470115048255,0.00274233292264827,0.00274233292264827, +0.00681365643537968,0.00681365643537968,0.00682675557114648,0.00682059735627252,0.00680192341637182,0.00677767178589765,0.00675365051522525,0.00673447902157717,0.00672378606578077,0.00672378606578077, +0.0187724085685607,0.0187724085685607,0.0187969731629026,0.018776723408585,0.0187273631587567,0.0186651338427941,0.018603807700768,0.0185547111365402,0.0185271870344462,0.0185271870344462, +0.0478723248434033,0.0478723248434033,0.047909737130051,0.0478516645916062,0.047731663536011,0.0475845499324816,0.0474401400882639,0.0473238998025348,0.0472581909540487,0.0472581909540487, +0.11017491676529,0.11017491676529,0.110210665938692,0.110066081912698,0.109805247969877,0.10949425877506,0.10918974753699,0.108942268910679,0.108800283303717,0.108800283303717, +0.227152524476234,0.227152524476234,0.227140997931823,0.22682828347181,0.226325956769101,0.225744102500976,0.22517454869589,0.224703550189944,0.224425393992098,0.224425393992098, +0.417702878467724,0.417702878467724,0.417569354914922,0.416978467868129,0.416125444011599,0.415169510849838,0.414231054153797,0.413429651131083,0.412926278121966,0.412926278121966, +0.683966466564161,0.683966466564161,0.683671938925718,0.682668667469521,0.681390998714764,0.680022315870829,0.67866913648265,0.677443269523678,0.676557322076397,0.676557322076397, + +00:11:06, +0.00279773500337877,0.00279773500337877,0.00280509689783274,0.00280318582510262,0.00279524257071289,0.00278458893531699,0.00277397167607239,0.00276551216176129,0.00276081000085202,0.00276081000085202, +0.00279773500337877,0.00279773500337877,0.00280509689783274,0.00280318582510262,0.00279524257071289,0.00278458893531699,0.00277397167607239,0.00276551216176129,0.00276081000085202,0.00276081000085202, +0.00685031121522498,0.00685031121522498,0.00686345626571713,0.00685728392626089,0.0068385500570164,0.00681421276588109,0.00679010245209096,0.00677085889700572,0.00676012595108666,0.00676012595108666, +0.0188515979449329,0.0188515979449329,0.0188762138358587,0.018855927293863,0.0188064577050217,0.0187440753480903,0.018682589887082,0.0186333642525764,0.0186057686505054,0.0186057686505054, +0.0480254638567278,0.0480254638567278,0.0480629021370683,0.0480047601581761,0.0478845963059201,0.0477372560514283,0.0475926083096921,0.0474761751934138,0.0474103601939145,0.0474103601939145, +0.110426623318844,0.110426623318844,0.110462326266439,0.11031766188384,0.110056669553301,0.109745449153556,0.109440687817603,0.109193007419986,0.109050913815258,0.109050913815258, +0.227490463170232,0.227490463170232,0.227478815377168,0.227166108664082,0.226663787829585,0.226081883263461,0.225512250297075,0.225041195250791,0.224763022751318,0.224763022751318, +0.418049496081296,0.418049496081296,0.417915899184404,0.417325294133966,0.416472665635973,0.415517112129649,0.41457899849223,0.413777906779184,0.413274757443963,0.413274757443963, +0.684192689636604,0.684192689636604,0.683898350910755,0.682895811078029,0.681619046233371,0.680251284417072,0.678898995542204,0.677673952622579,0.676788626404953,0.676788626404953, + +00:11:07, +0.00281646691998369,0.00281646691998369,0.00282386505617704,0.0028219494185177,0.00281397171849674,0.00280326752547512,0.00279259763135682,0.00278409555141434,0.00277936975757867,0.00277936975757867, +0.00281646691998369,0.00281646691998369,0.00282386505617704,0.0028219494185177,0.00281397171849674,0.00280326752547512,0.00279259763135682,0.00278409555141434,0.00277936975757867,0.00277936975757867, +0.00688707902118455,0.00688707902118455,0.00690026999824405,0.00689408353951706,0.00687528972411182,0.006850866727953,0.00682666731021711,0.00680735163749098,0.00679657866859644,0.00679657866859644, +0.018930931713064,0.018930931713064,0.0189555987820077,0.0189352754776358,0.0188856966651449,0.0188231614129809,0.0187615167653105,0.018712162157235,0.0186844951060717,0.0186844951060717, +0.0481787152862933,0.0481787152862933,0.0482161793035766,0.0481579679931063,0.0480376417476466,0.0478900754053839,0.0477451903349906,0.0476285648359141,0.0475626439287609,0.0475626439287609, +0.110678271621892,0.110678271621892,0.110713928120141,0.110569183633096,0.1103080336743,0.109996583173476,0.109691572895793,0.109443691649961,0.109301490547069,0.109301490547069, +0.22782804399267,0.22782804399267,0.227816275021954,0.227503576307426,0.227001262123683,0.226419308528591,0.225849597793797,0.225378487313858,0.225100299086801,0.225100299086801, +0.418395520971028,0.418395520971028,0.418261850958064,0.417671527593425,0.416819294399375,0.415864120955908,0.414926350968245,0.414125570968948,0.413622645403127,0.413622645403127, +0.684418429678884,0.684418429678884,0.684124279420406,0.683122469664506,0.681846607104841,0.680479764949362,0.679128365380271,0.677904145288825,0.677019439241538,0.677019439241538, + +00:11:08, +0.00283528198703858,0.00283528198703858,0.00284271643720814,0.00284079624124594,0.00283278404190606,0.00282202919427731,0.00281130655335378,0.00280276181241693,0.00279801233161916,0.00279801233161916, +0.00283528198703858,0.00283528198703858,0.00284271643720814,0.00284079624124594,0.00283278404190606,0.00282202919427731,0.00281130655335378,0.00280276181241693,0.00279801233161916,0.00279801233161916, +0.00692395985815618,0.00692395985815618,0.00693719677324379,0.00693099620058203,0.0069121424226111,0.00688763367774968,0.0068633450959919,0.00684395725003296,0.00683314422564386,0.00683314422564386, +0.0190104095798712,0.0190104095798712,0.0190351277080947,0.019014767666692,0.0189650797463534,0.0189023917455338,0.018840588044537,0.0187911045604644,0.0187633661115718,0.0187633661115718, +0.0483320784940751,0.0483320784940751,0.0483695679922708,0.0483112874590411,0.0481907992235181,0.0480430073565194,0.0478978855264255,0.0477810680924798,0.0477150415211406,0.0477150415211406, +0.110929861085163,0.110929861085163,0.110965470912235,0.110820646572392,0.110559339742511,0.110247660241363,0.109942402175154,0.109694321001954,0.1095520128993,0.1095520128993, +0.228165267247266,0.228165267247266,0.22815337717116,0.227840686705863,0.227338379951267,0.226756378589841,0.226186591472847,0.225715426660706,0.225437223277357,0.225437223277357, +0.418740954721173,0.418740954721173,0.418607211820105,0.418017169831285,0.417165331884196,0.41621053890556,0.415273113152516,0.414472645266296,0.413969943563251,0.413969943563251, +0.68464368839602,0.68464368839602,0.684349726161804,0.683348644941607,0.682073683046112,0.680707759186703,0.679357247717036,0.678133849244448,0.677249762310696,0.677249762310696, + +00:11:09, +0.00285418034151957,0.00285418034151957,0.00286165117761854,0.00285972642999698,0.00285167967790073,0.00284087407906104,0.00283009857978712,0.00282151108279252,0.00281673786115633,0.00281673786115633, +0.00285418034151957,0.00285418034151957,0.00286165117761854,0.00285972642999698,0.00285167967790073,0.00284087407906104,0.00283009857978712,0.00282151108279252,0.00281673786115633,0.00281673786115633, +0.00696095373027915,0.00696095373027915,0.00697423659447596,0.00696802191323986,0.00694910815670912,0.00692451362014767,0.00690013581504236,0.00688067574086951,0.00686982262880008,0.00686982262880008, +0.0190900312520647,0.0190900312520647,0.0191148003206611,0.0190944035676172,0.019044606655668,0.018981766053604,0.0189198034336252,0.0188701911719876,0.0188423813772045,0.0188423813772045, +0.0484855528438693,0.0484855528438693,0.0485230675676692,0.0484647179204486,0.0483440680976821,0.0481960512688173,0.0480506932480643,0.0479336843273473,0.0478675523353942,0.0478675523353942, +0.111181391123266,0.111181391123266,0.111216954059024,0.111072050117524,0.110810587171448,0.110498679767642,0.110193175063157,0.109944894881192,0.109802480275976,0.109802480275976, +0.228502133239494,0.228502133239494,0.22849012213151,0.228177440165161,0.227675141613975,0.227093093742479,0.22652323162284,0.226052013574739,0.225773795603651,0.225773795603651, +0.419085798910642,0.419085798910642,0.418951983349384,0.41836222242698,0.417510779667502,0.416556367550264,0.415619286610472,0.414819131231944,0.414316653482938,0.414316653482938, +0.684868467484695,0.684868467484695,0.684574692833733,0.683574338613602,0.682300275765729,0.68093526883971,0.679585644264307,0.678363066203101,0.677479597328589,0.677479597328589, + +00:11:10, +0.00287316211979063,0.00287316211979063,0.00288066941348805,0.00287874012086746,0.00287065876282792,0.00285980231655189,0.00284897384777004,0.00284034349995509,0.00283554648376428,0.00283554648376428, +0.00287316211979063,0.00287316211979063,0.00288066941348805,0.00287874012086746,0.00287065876282792,0.00285980231655189,0.00284897384777004,0.00284034349995509,0.00283554648376428,0.00283554648376428, +0.00699806064093754,0.00699806064093754,0.00701138946494648,0.00700516068052093,0.00698618692984593,0.00696150655926699,0.00693703947223749,0.00691750711547953,0.00690661388387691,0.00690661388387691, +0.0191697964361541,0.0191697964361541,0.0191946163260522,0.0191741828868007,0.0191242770999097,0.0190612840448405,0.018999162641226,0.0189494217013091,0.0189215406129473,0.0189215406129473, +0.0486391377012937,0.0486391377012937,0.0486766773961129,0.0486182587436206,0.0484974477361066,0.0483492065080718,0.0482036128657756,0.0480864129065457,0.0480201757376504,0.0480201757376504, +0.111432861154665,0.111432861154665,0.111468376980663,0.111323393688141,0.111061775378481,0.110749641166598,0.110443890971131,0.110195412696764,0.110052892084981,0.110052892084981, +0.228838642276557,0.228838642276557,0.228826510211443,0.228513836992812,0.228011547415187,0.227429454283549,0.226859518534192,0.226388248341182,0.226110016348179,0.226110016348179, +0.419430055113023,0.419430055113023,0.419296167119431,0.418706686954613,0.417855639321053,0.416901608456412,0.415964872902319,0.415165030421414,0.414662776715615,0.414662776715615, +0.685092768633304,0.685092768633304,0.684799181126673,0.683799552376439,0.682526386963898,0.681162295610663,0.679813556725568,0.678591797870117,0.677708946003049,0.677708946003049, + +00:11:11, +0.00289222745760295,0.00289222745760295,0.00289977128028313,0.00289783744934046,0.00288972143242141,0.00287881404286289,0.00286793249380439,0.00285925920070847,0.00285443833640763,0.00285443833640763, +0.00289222745760295,0.00289222745760295,0.00289977128028313,0.00289783744934046,0.00288972143242141,0.00287881404286289,0.00286793249380439,0.00285925920070847,0.00285443833640763,0.00285443833640763, +0.00703528059276338,0.00703528059276338,0.00704865538691084,0.00704241250470514,0.00702337874470993,0.00699861249847437,0.00697405607169153,0.00695445137858618,0.00694351799593,0.00694351799593, +0.0192497048384554,0.0192497048384554,0.0192745754304233,0.0192541053304427,0.0192040907857068,0.0191409454266931,0.0190786653757837,0.0190287958577219,0.019000843528563,0.019000843528563, +0.0487928324337869,0.0487928324337869,0.0488303968457663,0.0487719092966725,0.0486509375065796,0.0485024724418892,0.0483566437472297,0.0482392531978971,0.0481729110958267,0.0481729110958267, +0.111684270601663,0.111684270601663,0.111719739101137,0.111574676707725,0.111312903784818,0.111000543856354,0.11069454931425,0.110445873861596,0.110303247738039,0.110303247738039, +0.229174794667366,0.229174794667366,0.229162541721096,0.22884987749801,0.228347597660009,0.227765460511842,0.227195452499095,0.226724131247061,0.226445885795249,0.226445885795249, +0.419773724896602,0.419773724896602,0.419639764698468,0.419050564982981,0.418199912411318,0.41724626318515,0.416309873583055,0.415510344385056,0.415008314809552,0.415008314809552, +0.685316593522006,0.685316593522006,0.685023192722858,0.684024287917787,0.682752018332535,0.681388841193556,0.680040986796022,0.678820045942555,0.67793781003363,0.67793781003363, + +00:11:12, +0.00291137649009435,0.00291137649009435,0.00291895691285634,0.0029170185502848,0.00290886782180102,0.00289790939349393,0.00288697465378005,0.00287825832124568,0.00287341355544089,0.00287341355544089, +0.00291137649009435,0.00291137649009435,0.00291895691285634,0.0029170185502848,0.00290886782180102,0.00289790939349393,0.00288697465378005,0.00287825832124568,0.00287341355544089,0.00287341355544089, +0.00707261358763995,0.00707261358763995,0.00708603436187728,0.00707977738732513,0.00706068360324109,0.00703583144038647,0.00701118561676712,0.00699150853416008,0.00698053496926201,0.00698053496926201, +0.0193297561650975,0.0193297561650975,0.0193546773397467,0.0193341706045602,0.0192840474195009,0.0192207499064187,0.0191583113455433,0.0191083133503138,0.0190802898336068,0.0190802898336068, +0.0489466364106088,0.0489466364106088,0.0489842252866163,0.0489256689495432,0.048804536778709,0.0486558484396873,0.0485097852618983,0.0483922045710167,0.0483257577796289,0.0483257577796289, +0.111935618890378,0.111935618890378,0.111971039848243,0.11182589860357,0.111563971815486,0.111251387258857,0.110945149511505,0.110696277792434,0.110553546650694,0.110553546650694, +0.22951059072252,0.22951059072252,0.229498216972282,0.229185561991625,0.228683292655243,0.228101112727879,0.227531033811497,0.227059662581174,0.226781404230952,0.226781404230952, +0.420116809824378,0.420116809824378,0.419982777649424,0.419393858075585,0.418543600499501,0.417590333292391,0.416654290202494,0.415855074668064,0.415353269307878,0.415353269307878, +0.685539943822777,0.685539943822777,0.685246729296322,0.684248546917093,0.68297717155532,0.681614907274152,0.680267936162653,0.679047812109251,0.678166191111659,0.678166191111659, + +00:11:13, +0.00293060935178859,0.00293060935178859,0.00293822644544566,0.00293628355795452,0.00292809806547196,0.0029170885033311,0.00290610046297433,0.00289734099714827,0.00289247227660782,0.00289247227660782, +0.00293060935178859,0.00293060935178859,0.00293822644544566,0.00293628355795452,0.00292809806547196,0.0029170885033311,0.00290610046297433,0.00289734099714827,0.00289247227660782,0.00289247227660782, +0.00711005962670494,0.00711005962670494,0.00712352639061005,0.00711725532916955,0.00709810150663423,0.00707316338687309,0.00704842811007856,0.00702867858542249,0.00701766480742583,0.00701766480742583, +0.0194099501220289,0.0194099501220289,0.0194349217598181,0.0194143784149943,0.019364146707554,0.0193006971910884,0.0192381002585569,0.0191879738879746,0.0191598792374329,0.0191598792374329, +0.0491005490028403,0.0491005490028403,0.0491381620904729,0.0490795370739951,0.0489582449239229,0.0488093338726961,0.0486630367810545,0.0485452663973125,0.0484787151605517,0.0484787151605517, +0.112186905450733,0.112186905450733,0.11222227865357,0.112077058806767,0.111814978899312,0.111502170799856,0.111195690985692,0.110946623909828,0.110803788242291,0.110803788242291, +0.229846030754279,0.229846030754279,0.229833536278464,0.229520890786185,0.22901863270937,0.228436411233886,0.227866262767076,0.227394842634073,0.227116571943146,0.227116571943146, +0.420459311454087,0.420459311454087,0.420325207529961,0.419736567790657,0.418886705141551,0.417933820328838,0.416998124305278,0.416199222810495,0.415697641748604,0.415697641748604, +0.685762821199458,0.685762821199458,0.685469792512952,0.684472331045629,0.68320184830775,0.68184049553003,0.680494406504269,0.679275098050873,0.678394090920287,0.678394090920287, + +00:11:14, +0.00294992617659487,0.00294992617659487,0.00295758001167398,0.00295563260598827,0.00294741229732429,0.00293635150664613,0.00292531005605131,0.00291650736338572,0.00291161463504077,0.00291161463504077, +0.00294992617659487,0.00294992617659487,0.00295758001167398,0.00295563260598827,0.00294741229732429,0.00293635150664613,0.00292531005605131,0.00291650736338572,0.00291161463504077,0.00291161463504077, +0.00714761871035373,0.00714761871035373,0.00716113147313261,0.00715484633028627,0.00713563245534218,0.00711060833906038,0.00708578355349499,0.00706596153484855,0.00705490751322778,0.00705490751322778, +0.0194902864150245,0.0194902864150245,0.0195153083962633,0.0194947284674163,0.0194443883559553,0.0193807869875939,0.0193180318226902,0.0192677771794022,0.0192396114492008,0.0192396114492008, +0.0492545695833832,0.0492545695833832,0.0492922066309685,0.0492335130436135,0.0491120613154688,0.0489629281139568,0.048816397677773,0.048698438049986,0.0486317826118783,0.0486317826118783, +0.112438129716426,0.112438129716426,0.112473454952483,0.112328156752181,0.112065924468903,0.111752893908884,0.111446173163392,0.111196911638111,0.111053971935961,0.111053971935961, +0.230181115076547,0.230181115076547,0.230168499954736,0.229855864195853,0.229353618132525,0.228771356333772,0.228201139663224,0.227729671698041,0.22745138922143,0.22745138922143, +0.420801231338218,0.420801231338218,0.420667055892485,0.420078695681177,0.419229227888187,0.418276725839999,0.417341377430897,0.416542790347287,0.416041433664634,0.416041433664634, +0.685985227307807,0.685985227307807,0.685692384030541,0.684695641966544,0.683426050257182,0.68206560763064,0.680720399491555,0.679501905439966,0.678621511134537,0.678621511134537, + +00:11:15, +0.0029693270978072,0.0029693270978072,0.0029770177445485,0.00297506582740873,0.00296681065063234,0.0029556985370958,0.00294460356706126,0.00293575755431485,0.00293084076526011,0.00293084076526011, +0.0029693270978072,0.0029693270978072,0.0029770177445485,0.00297506582740873,0.00296681065063234,0.0029556985370958,0.00294460356706126,0.00293575755431485,0.00293084076526011,0.00293084076526011, +0.00718529083824258,0.00718529083824258,0.00719884960873088,0.00719255038998558,0.00717327644907906,0.0071481662973341,0.0071232519481436,0.00710335738417043,0.00709226308873074,0.00709226308873074, +0.0195707647496918,0.0195707647496918,0.0195958369545446,0.0195752204673343,0.0195247720706269,0.0194610190026541,0.0193981057456294,0.0193477229331095,0.0193194861778824,0.0193194861778824, +0.0494086975269596,0.0494086975269596,0.0494463582835575,0.0493875962338066,0.0492659853284139,0.0491166305383223,0.0489698673269301,0.0488517189040316,0.0487849595086809,0.0487849595086809, +0.112689291124921,0.112689291124921,0.112724568184098,0.112579191878435,0.112316807960629,0.11200355601924,0.111696595474949,0.111447140405381,0.111304097158597,0.111304097158597, +0.230515844004848,0.230515844004848,0.2305031083178,0.230190482536405,0.229688249236477,0.229105948333108,0.228535664799017,0.22806415006707,0.227785856357122,0.227785856357122, +0.421142571024028,0.421142571024028,0.421008324284171,0.420420243294887,0.419571170284913,0.418619051366209,0.417684051113709,0.416885778808276,0.416384646583787,0.416384646583787, +0.686207163795548,0.686207163795548,0.685914505498832,0.684918481334917,0.68364977906289,0.682290245237347,0.680945916787124,0.679728235941007,0.678848453421355,0.678848453421355, + +00:11:16, +0.00298881224810386,0.00298881224810386,0.00299653977646019,0.00299458335462213,0.00298629325805416,0.00297512972772135,0.00296398112944012,0.00295509170367919,0.00295015080117362,0.00295015080117362, +0.00298881224810386,0.00298881224810386,0.00299653977646019,0.00299458335462213,0.00298629325805416,0.00297512972772135,0.00296398112944012,0.00295509170367919,0.00295015080117362,0.00295015080117362, +0.00722307600929183,0.00722307600929183,0.00723668079595643,0.00723036750684345,0.00721103348682347,0.0071858372613428,0.00716083329441283,0.00714086613438056,0.00712973153525742,0.00712973153525742, +0.0196513848314775,0.0196513848314775,0.0196765071399673,0.0196558541200999,0.019605297557331,0.0195413929428215,0.0194783217348872,0.0194278108574309,0.019399503132268,0.019399503132268, +0.0495629322101123,0.0495629322101123,0.0496006164255164,0.0495417860218053,0.0494200163396444,0.0492704405224565,0.049123445105203,0.0490051083362366,0.0489382452278201,0.0489382452278201, +0.112940389117422,0.112940389117422,0.112975617791271,0.112830163627889,0.112567628814602,0.112254156567968,0.111946957354455,0.111697309643481,0.111554163340839,0.111554163340839, +0.230850217856302,0.230850217856302,0.230837361685948,0.230524746125209,0.230022526334608,0.229440187539105,0.228869838475201,0.228398278036838,0.22811997364324,0.22811997364324, +0.421483332053569,0.421483332053569,0.421349014246978,0.420761212174316,0.41991253387204,0.418960798442646,0.418026146882957,0.417228189718214,0.416727282028814,0.416727282028814, +0.68642863230242,0.68642863230242,0.686136158559571,0.685140850797799,0.683873036376114,0.682514410003487,0.681170960045563,0.679954091210447,0.679074919439662,0.679074919439662, + +00:11:17, +0.00300838175954687,0.00300838175954687,0.00301614623918328,0.00301418531941767,0.00300586025163098,0.00299464521094801,0.00298344287600886,0.00297450994460847,0.0029695448760759,0.0029695448760759, +0.00300838175954687,0.00300838175954687,0.00301614623918328,0.00301418531941767,0.00300586025163098,0.00299464521094801,0.00298344287600886,0.00297450994460847,0.0029695448760759,0.0029695448760759, +0.00726097422168917,0.00726097422168917,0.00727462503262974,0.00726829767870471,0.00724890356682171,0.00722362123000102,0.00719852759195558,0.00717848778573478,0.00716731285339348,0.00716731285339348, +0.0197321463656739,0.0197321463656739,0.0197573186576863,0.0197366291309144,0.0196859645216764,0.0196219085144887,0.0195586794978099,0.0195080406605286,0.0194796620209732,0.0194796620209732, +0.0497172730112036,0.0497172730112036,0.0497549804359432,0.0496960817866621,0.0495741537278653,0.0494243574448344,0.04927713039107,0.0491586057251813,0.0490916391479452,0.0490916391479452, +0.113191423138859,0.113191423138859,0.113226603220573,0.113081071446622,0.11281838647466,0.112504694995841,0.11219725823973,0.111947418787981,0.111804169917054,0.111804169917054, +0.231184236949611,0.231184236949611,0.231171260379036,0.230858655281203,0.230356449741888,0.229774074260592,0.229203660994166,0.22873205590469,0.228453741374476,0.228453741374476, +0.421823515963699,0.421823515963699,0.42168912731767,0.421101603856794,0.420253320184701,0.419301968599349,0.418367666262784,0.417570024596787,0.417069341517415,0.417069341517415, +0.686649634460228,0.686649634460228,0.686357344846559,0.685362751994273,0.684095823840104,0.68273810357441,0.681395530913486,0.68017947289677,0.6793009108404,0.6793009108404, + +00:11:18, +0.00302803576358149,0.00302803576358149,0.00303583726387476,0.00303387185296702,0.00302551176278671,0.00301424511858439,0.003002988938973,0.00299401240961801,0.00298902312264786,0.00298902312264786, +0.00302803576358149,0.00302803576358149,0.00303583726387476,0.00303387185296702,0.00302551176278671,0.00301424511858439,0.003002988938973,0.00299401240961801,0.00298902312264786,0.00298902312264786, +0.0072989854728928,0.0072989854728928,0.00731268231584336,0.00730634090268632,0.007286886686591,0.00726151820149252,0.00723633483969242,0.00721622233775557,0.00720500704299074,0.00720500704299074, +0.0198130490574256,0.0198130490574256,0.0198382712127121,0.0198175452048352,0.019766772669124,0.0197025654238948,0.0196391787415834,0.0195884120503995,0.0195599625524453,0.0195599625524453, +0.0498717193104157,0.0498717193104157,0.0499094496957569,0.0498504829092517,0.0497283968736001,0.0495783806857416,0.0494309225648103,0.0493122104512385,0.0492451406494939,0.0492451406494939, +0.113442392637866,0.113442392637866,0.113477523922276,0.113331914784416,0.113069080388345,0.112755170747338,0.112447497572302,0.112197467278162,0.112054116325318,0.112054116325318, +0.23151790160503,0.23151790160503,0.231504804718465,0.231192210324874,0.230690019774861,0.230107608807994,0.229537132659924,0.229065483969614,0.22878715984718,0.22878715984718, +0.422163124286105,0.422163124286105,0.422028665027835,0.421441419874475,0.420593530752871,0.419642563361237,0.418708610772257,0.417911284958634,0.417410826562257,0.417410826562257, +0.686870171892891,0.686870171892891,0.686578065985695,0.685584186555493,0.684318143090177,0.682961327587534,0.681619631029581,0.680404382640532,0.67952642926658,0.67952642926658, + +00:11:19, +0.00304777439103566,0.00304777439103566,0.00305561298107382,0.00305364308582386,0.00304524792232746,0.00303392958182205,0.00302261944992207,0.00301359923060823,0.00300858567295611,0.00300858567295611, +0.00304777439103566,0.00304777439103566,0.00305561298107382,0.00305364308582386,0.00304524792232746,0.00303392958182205,0.00302261944992207,0.00301359923060823,0.00300858567295611,0.00300858567295611, +0.00733710975963467,0.00733710975963467,0.00735085264196516,0.0073444971751805,0.00732498284292271,0.00729952817327351,0.00727425503581476,0.00725406978923523,0.00724281410317039,0.00724281410317039, +0.0198940926117354,0.0198940926117354,0.0199193645099174,0.019898602046782,0.0198477217049943,0.0197833633771321,0.0197198191732398,0.0196689247348809,0.0196404044349694,0.0196404044349694, +0.0500262704897497,0.0500262704897497,0.0500640235876971,0.0500049887722695,0.0498827451591899,0.0497325096272737,0.0495848210085033,0.0494659218965735,0.0493987491146919,0.0493987491146919, +0.113693297066765,0.113693297066765,0.11372837935033,0.113582693094731,0.113319710006887,0.113005583270633,0.112697674797393,0.112447454556995,0.112304002007399,0.112304002007399, +0.231851212144351,0.231851212144351,0.231837995027161,0.231525411578238,0.231023236751614,0.230440791493316,0.229870253778092,0.229398562532219,0.229120229359333,0.229120229359333, +0.42250215854732,0.42250215854732,0.422367628903898,0.421780661754352,0.420933167101387,0.419982584248127,0.419048981925378,0.418251972313362,0.41775173867099,0.41775173867099, +0.687090246216488,0.687090246216488,0.686798323595029,0.685805156104738,0.684539995753759,0.683184083672393,0.681843262024658,0.680628822074417,0.679751476353334,0.679751476353334, + +00:11:20, +0.00306759777211956,0.00306759777211956,0.00307547352070148,0.00307349914792338,0.00306506886044101,0.00305369873123495,0.0030423345398291,0.00303327053886412,0.00302823265845251,0.00302823265845251, +0.00306759777211956,0.00306759777211956,0.00307547352070148,0.00307349914792338,0.00306506886044101,0.00305369873123495,0.0030423345398291,0.00303327053886412,0.00302823265845251,0.00302823265845251, +0.00737534707792368,0.00737534707792368,0.00738913600664151,0.00738276649185805,0.00736319203188552,0.0073376511420758,0.00731228817778804,0.00729203013823903,0.00728073403232608,0.00728073403232608, +0.019975276733471,0.019975276733471,0.0200005982540434,0.0199797993615436,0.0199288113344729,0.0198643020801517,0.0198006004996636,0.0197495784216575,0.0197209873766752,0.0197209873766752, +0.0501809259330253,0.0501809259330253,0.0502187014963233,0.0501595987602316,0.0500371979687935,0.0498867436533361,0.0497388251060287,0.0496197394451434,0.0495524639275527,0.0495524639275527, +0.113944135881547,0.113944135881547,0.113979168962347,0.113833405834695,0.113570274785186,0.113255932017568,0.112947789363893,0.112697380071123,0.112553826408735,0.112553826408735, +0.232184168890879,0.232184168890879,0.232170831629553,0.231858259364818,0.231356100991765,0.230773622630114,0.230203024655866,0.22973129189472,0.229452950210529,0.229452950210529, +0.422840620268743,0.422840620268743,0.422706020467149,0.422119331018276,0.421272230749963,0.420322032774753,0.419388781231108,0.418592088165565,0.418092079346268,0.418092079346268, +0.68730985903931,0.68730985903931,0.687018119284806,0.686025662257462,0.684761383450437,0.683406373450681,0.682066425521698,0.68085279282328,0.679976053727959,0.679976053727959, + +00:11:21, +0.00308750603642515,0.00308750603642515,0.00309541901206003,0.00309344016858184,0.00308497470669642,0.00307355269677899,0.00306213433905014,0.00305302646505471,0.00304796420997359,0.00304796420997359, +0.00308750603642515,0.00308750603642515,0.00309541901206003,0.00309344016858184,0.00308497470669642,0.00307355269677899,0.00306213433905014,0.00305302646505471,0.00304796420997359,0.00304796420997359, +0.00741369742304889,0.00741369742304889,0.00742753240480052,0.00742114884767144,0.00740151424882868,0.00737588710391004,0.00735043426235497,0.00733010338210844,0.00731876682812721,0.00731876682812721, +0.0200566011273709,0.0200566011273709,0.020081972149706,0.0200611368537832,0.0200100412626169,0.0199453812387704,0.0198815224275979,0.0198303728182674,0.0198017110855429,0.0198017110855429, +0.0503356850258804,0.0503356850258804,0.0503734828080145,0.0503143122594742,0.0501917546883864,0.0500410821496434,0.0498929342430657,0.0497736624826972,0.0497062844738775,0.0497062844738775, +0.114194908541851,0.114194908541851,0.114229892219583,0.114084052465078,0.113820774181788,0.113506216443642,0.113197840724351,0.112947243270843,0.112803588978421,0.112803588978421, +0.232516772169414,0.232516772169414,0.232503314851556,0.232190754009627,0.231688612816439,0.231106102533481,0.230535445602005,0.230063672360909,0.229785322701956,0.229785322701956, +0.423178510966654,0.423178510966654,0.423043841233752,0.422457429182977,0.421610723213212,0.420660910450781,0.41972801019338,0.418931634014841,0.418431850085764,0.418431850085764, +0.687529011961906,0.687529011961906,0.68723745465752,0.686245706621335,0.684982307792007,0.683628198536305,0.682289123135901,0.681076296504197,0.680200163009968,0.680200163009968, + +00:11:22, +0.00310749931292566,0.00310749931292566,0.00311544958383266,0.00311346627649612,0.00310496559004351,0.00309349160779159,0.00308201897732379,0.00307286713923266,0.00306778045774015,0.00306778045774015, +0.00310749931292566,0.00310749931292566,0.00311544958383266,0.00311346627649612,0.00310496559004351,0.00309349160779159,0.00308201897732379,0.00307286713923266,0.00306778045774015,0.00306778045774015, +0.0074521607895827,0.0074521607895827,0.00746604183065522,0.0074596442368581,0.00743994948838518,0.00741423605406889,0.00738869328553866,0.00736828951746426,0.007356912487522,0.007356912487522, +0.020138065498051,0.020138065498051,0.0201634859014018,0.0201426142280458,0.0200914111943613,0.0200266005586768,0.019962584663651,0.0199113076321084,0.0198825752694097,0.0198825752694097, +0.05049054715577,0.05049054715577,0.0505283669109685,0.0504691286581526,0.0503464147057602,0.0501955245037191,0.0500471478070926,0.0499276903967752,0.0498602101412544,0.0498602101412544, +0.114445614510949,0.114445614510949,0.11448054858692,0.114334632450277,0.114071207658876,0.113756436007987,0.11344782833495,0.113197043610088,0.113053289169185,0.113053289169185, +0.232849022306232,0.232849022306232,0.232835445020543,0.232522895839142,0.232020772548248,0.231438231520023,0.230867516926808,0.23039570423614,0.230117347136369,0.230117347136369, +0.423515832152235,0.423515832152235,0.423381092714772,0.422794957760081,0.421948646000661,0.420999218780832,0.42006667031112,0.419270611355812,0.418771052382187,0.418771052382187, +0.687747706577129,0.687747706577129,0.687456331307956,0.686465290796299,0.685202770382517,0.68384956053543,0.682511356474733,0.681299334726512,0.680423805811135,0.680423805811135, + +00:11:23, +0.00312757772997523,0.00312757772997523,0.00313556536408298,0.00313357759974328,0.00312504163881249,0.00311351559299119,0.00310198858377072,0.00309279269083371,0.00308768153135669,0.00308768153135669, +0.00312757772997523,0.00312757772997523,0.00313556536408298,0.00313357759974328,0.00312504163881249,0.00311351559299119,0.00310198858377072,0.00309279269083371,0.00308768153135669,0.00308768153135669, +0.00749073717138409,0.00749073717138409,0.00750466427770676,0.00749825265294361,0.00747849774447499,0.00745269798713024,0.00742706524264584,0.00740658854020986,0.00739517100674073,0.00739517100674073, +0.0202196695500105,0.0202196695500105,0.0202451392135144,0.0202242311887632,0.0201729208345251,0.0201079597454373,0.0200437869143025,0.0199923825704442,0.0199635796359761,0.0199635796359761, +0.0506455117119663,0.0506455117119663,0.0506833531952013,0.050624047346241,0.0505011774105223,0.0503500701048945,0.0502014651873866,0.0500818225767084,0.0500142403190584,0.0500142403190584, +0.114696253255726,0.114696253255726,0.114731137532844,0.114585145258298,0.114321574682243,0.114006590173353,0.11369775165549,0.113446780546409,0.113302926437377,0.113302926437377, +0.23318091962906,0.23318091962906,0.233167222465335,0.232854685181289,0.232352580511268,0.231770009907839,0.231199238942091,0.230727387827306,0.230449023818078,0.230449023818078, +0.42385258533159,0.42385258533159,0.423717776416187,0.423131918256125,0.422286000616771,0.421336959264495,0.420404763078263,0.419609021678139,0.419109687723301,0.419109687723301, +0.687965944470185,0.687965944470185,0.687674750823238,0.686684416374608,0.685422772818321,0.684070461046526,0.682733127137971,0.681521909091884,0.680646983735545,0.680646983735545, + +00:11:24, +0.00314774141530843,0.00314774141530843,0.00315576648025467,0.0031537742657802,0.0031452029807135,0.00313362478047688,0.00312204328689327,0.00311280324867628,0.00310766755981104,0.00310766755981104, +0.00314774141530843,0.00314774141530843,0.00315576648025467,0.0031537742657802,0.0031452029807135,0.00313362478047688,0.00312204328689327,0.00311280324867628,0.00310766755981104,0.00310766755981104, +0.00752942656160177,0.00752942656160177,0.0075433997387476,0.00753697408874484,0.00751715901030818,0.0074912728969604,0.00746555012827003,0.00744500044553426,0.00743354238129887,0.00743354238129887, +0.020301412987638,0.020301412987638,0.0203269317903207,0.0203059874402608,0.0202545698878174,0.0201894585045022,0.0201251288859089,0.0200735973404105,0.0200447238928117,0.0200447238928117, +0.0508005780855573,0.0508005780855573,0.0508384410525461,0.0507790677155312,0.0506560421940945,0.0505047183443084,0.0503558857750228,0.050236058413618,0.0501683743984505,0.0501683743984505, +0.114946824246663,0.114946824246663,0.114981658529431,0.114835590360738,0.114571874721278,0.114256678406089,0.113947610149373,0.113696453540957,0.113552500242942,0.113552500242942, +0.233512464467059,0.233512464467059,0.233498647516172,0.23318612236542,0.232684037031024,0.232101438016504,0.231530611961174,0.23105872344282,0.230780353052921,0.230780353052921, +0.424188772005758,0.424188772005758,0.424053893838908,0.423468312172583,0.422622788560957,0.421674133396349,0.420742289983773,0.419946866466539,0.419447757591942,0.419447757591942, +0.688183727218678,0.688183727218678,0.687892714782879,0.68690308494088,0.685642316688123,0.684290901660417,0.682954436717755,0.681744021194333,0.680869698379635,0.680869698379635, + +00:11:25, +0.0031679904960399,0.0031679904960399,0.00317605305917104,0.00317405640144314,0.00316544974283626,0.00315381929772795,0.00314218321457502,0.00313289894096104,0.00312773867147385,0.00312773867147385, +0.0031679904960399,0.0031679904960399,0.00317605305917104,0.00317405640144314,0.00316544974283626,0.00315381929772795,0.00314218321457502,0.00313289894096104,0.00312773867147385,0.00312773867147385, +0.00756822895267739,0.00756822895267739,0.00758224820586472,0.00757580853637322,0.00755593327838821,0.00752996077671727,0.00750414793629474,0.0074835252279154,0.00747202660600028,0.00747202660600028, +0.0203832955152179,0.0203832955152179,0.0204088633359965,0.0203878826867635,0.0203363580588433,0.0202710965412123,0.0202066102847108,0.0201549516490215,0.0201260077473619,0.0201260077473619, +0.0509557456694463,0.0509557456694463,0.0509936298766527,0.0509341891596323,0.0508110084497131,0.0506594686149065,0.0505104089628737,0.0503903973004152,0.0503226117723775,0.0503226117723775, +0.115197326957817,0.115197326957817,0.115232111052327,0.115085967232765,0.114822107248948,0.114506700176125,0.114197403283581,0.113946062058466,0.113802010049412,0.113802010049412, +0.233843657150804,0.233843657150804,0.2338297205047,0.233517207722294,0.233015142434467,0.232432516167044,0.231861636298853,0.231389711392596,0.231111335148246,0.231111335148246, +0.424524393670739,0.424524393670739,0.424389446478799,0.423804141005878,0.422959011327601,0.422010742665978,0.421079252511656,0.420284147200805,0.419785263466034,0.419785263466034, +0.688401056392658,0.688401056392658,0.688110224758821,0.687121298072139,0.685861403573021,0.684510883960322,0.683175286798628,0.681965672620286,0.681091951332247,0.681091951332247, + +00:11:26, +0.00318832509866392,0.00318832509866392,0.00319642522703466,0.00319442413294741,0.00318578205164967,0.00317409927160353,0.00316240849408036,0.00315307989527048,0.00314789499409823,0.00314789499409823, +0.00318832509866392,0.00318832509866392,0.00319642522703466,0.00319442413294741,0.00318578205164967,0.00317409927160353,0.00316240849408036,0.00315307989527048,0.00314789499409823,0.00314789499409823, +0.00760714433634876,0.00760714433634876,0.00762120967044281,0.00761475598723788,0.00759482054051505,0.00756876161885352,0.00754285865989659,0.00752216288112323,0.00751062367494032,0.00751062367494032, +0.0204653168369359,0.0204653168369359,0.0204909335546229,0.0204699166324015,0.0204182850521101,0.0203528735608042,0.0202882308168378,0.0202364452031754,0.0202074309069533,0.0202074309069533, +0.0511110138583513,0.0511110138583513,0.0511489190629866,0.0510894110739695,0.0509660755724272,0.0508143203114402,0.0506650341456086,0.0505448386318,0.0504769518355713,0.0504769518355713, +0.115447760866804,0.115447760866804,0.115482494580731,0.1153362753531,0.115072271741779,0.114756654956952,0.11444713052866,0.11419560556723,0.114051455323879,0.114051455323879, +0.234174498012267,0.234174498012267,0.234160441763947,0.233847941584058,0.233345897049955,0.23276324468192,0.232192312271384,0.231720351988023,0.231441970412892,0.231441970412892, +0.424859451817504,0.424859451817504,0.424724435826696,0.424139406247401,0.423294670406076,0.42234678855799,0.421415652140983,0.420620865355822,0.420122206818609,0.420122206818609, +0.688617933554666,0.688617933554666,0.68832728231549,0.687339057337868,0.686080035046556,0.684730409521909,0.683395678957585,0.682186864948624,0.681313744174668,0.681313744174668, + +00:11:27, +0.00320874534905408,0.00320874534905408,0.00321688310942704,0.00321487758588698,0.00320620003300144,0.00319446482834219,0.00318271925205412,0.00317334623856848,0.0031681366548193,0.0031681366548193, +0.00320874534905408,0.00320874534905408,0.00321688310942704,0.00321487758588698,0.00320620003300144,0.00319446482834219,0.00318271925205412,0.00317334623856848,0.0031681366548193,0.0031681366548193, +0.00764617270365296,0.00764617270365296,0.00766028412316743,0.00765381643204884,0.00763382078778838,0.00760767541511982,0.00758168229154855,0.00756091339822291,0.00754933358150906,0.00754933358150906, +0.0205474766568856,0.0205474766568856,0.0205731421501923,0.0205520889812165,0.0205003505720333,0.020434789268417,0.0203699901883153,0.020318077709661,0.0202889930788004,0.0202889930788004, +0.051266382048804,0.051266382048804,0.0513043080088281,0.0512447328557834,0.0511212429590987,0.0509692728304664,0.0508197607196931,0.0506993818042612,0.050631393984548,0.050631393984548, +0.115698125454781,0.115698125454781,0.115732808597374,0.115586514204001,0.115322367679837,0.115006542225609,0.114696791358704,0.114445083539095,0.114300835536984,0.114300835536984, +0.234504987384792,0.234504987384792,0.234490811628307,0.234178324284229,0.233676301207233,0.233093623885008,0.232522640196466,0.232050645541956,0.231772259157167,0.231772259157167, +0.425193947932018,0.425193947932018,0.425058863368422,0.424474109383532,0.423629767280761,0.422682272552035,0.421751490345903,0.420957022401584,0.42045858911782,0.42045858911782, +0.688834360259779,0.688834360259779,0.688543889009834,0.687556364300046,0.68629821267476,0.684949479913336,0.683615614764121,0.682407599750729,0.681535078480681,0.681535078480681, + +00:11:28, +0.00322925137246294,0.00322925137246294,0.00323742683130823,0.00323541688523417,0.00322670381211773,0.00321491609356163,0.00320311561452121,0.00319369809719999,0.00318846378015382,0.00318846378015382, +0.00322925137246294,0.00322925137246294,0.00323742683130823,0.00323541688523417,0.00322670381211773,0.00321491609356163,0.00320311561452121,0.00319369809719999,0.00318846378015382,0.00318846378015382, +0.00768531404492962,0.00768531404492962,0.00769947155402821,0.00769298986082023,0.0076729340106108,0.00764670215656796,0.00762061882302308,0.00759977677157799,0.00758815631839439,0.00758815631839439, +0.020629774679074,0.020629774679074,0.0206554888266137,0.0206343994371675,0.0205825543229424,0.0205168433690976,0.0204518881050703,0.0203998488751631,0.0203706939700112,0.0203706939700112, +0.0514218496391485,0.0514218496391485,0.0514597961132716,0.0514001539041288,0.0512765100084005,0.0511243255703461,0.0509745880833877,0.050854026216075,0.0507859376176078,0.0507859376176078, +0.115948420206429,0.115948420206429,0.115983052588506,0.115836683271244,0.115572394546713,0.11525636146266,0.114946385251333,0.11469449544943,0.114550150162896,0.114550150162896, +0.234835125603078,0.234835125603078,0.234820830433517,0.234508356157672,0.234006355237414,0.233423654101578,0.232852620393214,0.232380592368684,0.232102201692832,0.232102201692832, +0.425527883495259,0.425527883495259,0.425392730584806,0.424808251895658,0.423964303431057,0.423017196122823,0.422086768595665,0.421292619803211,0.420794411826964,0.420794411826964, +0.689050338055656,0.689050338055656,0.688760046391371,0.6877732205132,0.686515938016195,0.685168096695295,0.683835095780273,0.682627878590525,0.681755955816605,0.681755955816605, + +00:11:29, +0.00324984329352163,0.00324984329352163,0.00325805651701653,0.00325604215533926,0.00324729351360289,0.00323545319225826,0.00322359770688624,0.00321413559689063,0.00320887649599981,0.00320887649599981, +0.00324984329352163,0.00324984329352163,0.00325805651701653,0.00325604215533926,0.00324729351360289,0.00323545319225826,0.00322359770688624,0.00321413559689063,0.00320887649599981,0.00320887649599981, +0.007724568349824,0.007724568349824,0.00773877195232204,0.00773227626287343,0.00771216019869098,0.00768584183355404,0.00765966824539527,0.0076387529928535,0.0076270918775852,0.0076270918775852, +0.0207122106074276,0.0207122106074276,0.0207379732877195,0.0207168477041369,0.020664896009087,0.0205990355678073,0.0205339242729372,0.0204817584062692,0.0204525332875932,0.0204525332875932, +0.0515774160295413,0.0515774160295413,0.0516153827772243,0.0515556736198743,0.0514318761208165,0.051279477931244,0.0511295156367477,0.0510087712673049,0.0509405821348336,0.0509405821348336, +0.116198644609932,0.116198644609932,0.116233226043874,0.116086782044105,0.115822351829501,0.115506112152178,0.115195911687677,0.114943840777117,0.114799398679294,0.114799398679294, +0.235164913003165,0.235164913003165,0.235150498516643,0.23483803754058,0.234336059472961,0.233753335658274,0.233182253182149,0.232710192783921,0.232431798333078,0.232431798333078, +0.425861259983232,0.425861259983232,0.425726038951703,0.425141835260186,0.42429828033141,0.423351560740142,0.42242148835463,0.421627659020968,0.421129676404493,0.421129676404493, +0.689265868482586,0.689265868482586,0.688975756002235,0.68798962752445,0.686733212622005,0.685386261421061,0.684054123560665,0.682847703024528,0.681976377741346,0.681976377741346, + +00:11:30, +0.00327052123623957,0.00327052123623957,0.00327877229026818,0.00327675351993029,0.00326796926143904,0.00325607624880694,0.00324416565393319,0.00323465886274632,0.0032293749276362,0.0032293749276362, +0.00327052123623957,0.00327052123623957,0.00327877229026818,0.00327675351993029,0.00326796926143904,0.00325607624880694,0.00324416565393319,0.00323465886274632,0.0032293749276362,0.0032293749276362, +0.00776393560729024,0.00776393560729024,0.00777818530665619,0.00777167562684027,0.00775149934104686,0.00772509443574166,0.00769883054904604,0.00767784205301917,0.00766614025037452,0.00766614025037452, +0.0207947841457982,0.0207947841457982,0.0208205952372705,0.0207994334859359,0.0207473753346424,0.0206813655694272,0.0206160983976638,0.0205638060094747,0.0205345107384595,0.0205345107384595, +0.0517330806219493,0.0517330806219493,0.0517710674034051,0.0517112914057004,0.0515873406986396,0.051434729315127,0.0512845427816218,0.0511636163598002,0.0510953269380908,0.0510953269380908, +0.116448798156964,0.116448798156964,0.116483328456706,0.116336810015343,0.116072239018785,0.115755793781728,0.115445370152362,0.115193119004533,0.115048580567353,0.115048580567353, +0.235494349922405,0.235494349922405,0.235479816216056,0.23516736877046,0.234665414247668,0.2340826688831,0.233511538885171,0.233039447104782,0.232761049392508,0.232761049392508, +0.42619407886699,0.42619407886699,0.426058789940011,0.425474860948569,0.424631699451326,0.423685367868872,0.422755651082296,0.421962141510281,0.421464384304037,0.421464384304037, +0.689480953073525,0.689480953073525,0.689191019377221,0.688205586873551,0.686950038035958,0.685603975636536,0.684272699652555,0.683067074601885,0.682196345806434,0.682196345806434, + +00:11:31, +0.0032912853240042,0.0032912853240042,0.00329957427415705,0.00329755110211267,0.00328873117898588,0.00327678538696065,0.00326481957982511,0.00325526801925299,0.00324995919972249,0.00324995919972249, +0.0032912853240042,0.0032912853240042,0.00329957427415705,0.00329755110211267,0.00328873117898588,0.00327678538696065,0.00326481957982511,0.00325526801925299,0.00324995919972249,0.00324995919972249, +0.00780341580559447,0.00780341580559447,0.00781771160495157,0.00781118794066618,0.00779095142600879,0.00776445995210507,0.00773810572366529,0.00771704394235253,0.00770530142736268,0.00770530142736268, +0.0208774949979686,0.0208774949979686,0.0209033543789624,0.0208821564863108,0.0208299920037156,0.0207638330787641,0.020698410184917,0.0206459913911891,0.0206166260294345,0.0206166260294345, +0.0518888428201495,0.0518888428201495,0.0519268493963442,0.0518670066660993,0.0517429031459717,0.0515900791257638,0.0514396689216517,0.0513185608971959,0.0512501714310261,0.0512501714310261, +0.116698880342668,0.116698880342668,0.116733359323693,0.11658676668118,0.116322055608616,0.11600540584235,0.115694760133486,0.115442329617527,0.11529769531172,0.11529769531172, +0.235823436699453,0.235823436699453,0.235808783871417,0.235496350186112,0.234994419896637,0.234411654105396,0.233840477825543,0.233368355649763,0.23308995518712,0.23308995518712, +0.426526341612651,0.426526341612651,0.426390985015689,0.425807330427317,0.424964562255388,0.424018618969008,0.423089258233305,0.422296068721755,0.421798536974415,0.421798536974415, +0.689695593354149,0.689695593354149,0.689405838043825,0.688421100092936,0.687166415794489,0.685821240880292,0.684490825595878,0.683285994864423,0.682415861556074,0.682415861556074, + +00:11:32, +0.00331213567958061,0.00331213567958061,0.00332046259115435,0.00331843502436894,0.00330957938898032,0.0032975807298502,0.00328555960810376,0.00327596319027622,0.0032706294362984,0.0032706294362984, +0.00331213567958061,0.00331213567958061,0.00332046259115435,0.00331843502436894,0.00330957938898032,0.0032975807298502,0.00328555960810376,0.00327596319027622,0.0032706294362984,0.0032706294362984, +0.00784300893231804,0.00784300893231804,0.00785735083444581,0.00785081319161339,0.00783051644122272,0.00780393837093234,0.00777749375825505,0.00775635865044211,0.00774457539846041,0.00774457539846041, +0.0209603428676588,0.0209603428676588,0.020986250416431,0.0209650164089481,0.0209127457203509,0.0208464378005563,0.0207808593402889,0.0207283142577418,0.0206988788672597,0.0206988788672597, +0.0520447020297274,0.0520447020297274,0.052082728162381,0.0520228188073731,0.0518985628687215,0.0517455267687237,0.0515948934622705,0.0514736042849113,0.0514051150190667,0.0514051150190667, +0.116948890665637,0.116948890665637,0.116983318144972,0.116836651541287,0.1165718010965,0.116254947828538,0.115944081122606,0.115691472105409,0.115546742400505,0.115546742400505, +0.236152173674245,0.236152173674245,0.236137401823658,0.235824982127608,0.235323076756267,0.23474029165582,0.234169070327874,0.233696918738726,0.233418516034283,0.233418516034283, +0.426858049681418,0.426858049681418,0.426722625639775,0.426139245158019,0.425296870203276,0.424351315495676,0.423422311257472,0.422629442101189,0.422132135859659,0.422132135859659, +0.68990979084289,0.68990979084289,0.689620213522296,0.688636168707768,0.687382347426747,0.686038058683614,0.684708502923289,0.683504465346693,0.682634926527188,0.682634926527188, + +00:11:33, +0.00333307242511132,0.00333307242511132,0.00334143736310841,0.00333940540855851,0.00333051401353625,0.00331846239998393,0.00330638586168938,0.00329674449906096,0.00329138576078359,0.00329138576078359, +0.00333307242511132,0.00333307242511132,0.00334143736310841,0.00333940540855851,0.00333051401353625,0.00331846239998393,0.00330638586168938,0.00329674449906096,0.00329138576078359,0.00329138576078359, +0.00788271497436062,0.00788271497436062,0.00789710298169647,0.00789055136626404,0.00787019437365335,0.0078435296798285,0.00781699464113261,0.00779578616619053,0.00778396215289202,0.00778396215289202, +0.021043327458531,0.021043327458531,0.0210692830532581,0.0210480129574811,0.0209956361885357,0.0209291794394795,0.0208634455693023,0.0208107743153879,0.0207812689585996,0.0207812689585996, +0.0522006576580765,0.0522006576580765,0.052238703109664,0.0521787272376331,0.0520543192746045,0.0519010716513751,0.0517502158107023,0.0516287459301491,0.0515601571094196,0.0515601571094196, +0.117198828627901,0.117198828627901,0.117233204424106,0.117086464098762,0.116821474983375,0.116504419238226,0.116193332614719,0.115940545960928,0.115795721325256,0.115795721325256, +0.236480561187975,0.236480561187975,0.23646567041496,0.236153264936277,0.235651385164227,0.235068581866331,0.234497316718098,0.234025136692877,0.233746732252724,0.233746732252724, +0.427189204529592,0.427189204529592,0.427053713268404,0.42647060659736,0.425628624749784,0.424683458899147,0.423754811599794,0.422962263089596,0.422465182399023,0.422465182399023, +0.690123547050988,0.690123547050988,0.689834147325672,0.688850794235975,0.687597834454638,0.686254430570548,0.684925733160209,0.68372248757601,0.682853542249457,0.682853542249457, + +00:11:34, +0.00335409568211604,0.00335409568211604,0.00336249871124438,0.00336046237591742,0.00335153517414432,0.00333943051924747,0.00332729846288037,0.00331761206823124,0.00331222829597738,0.00331222829597738, +0.00335409568211604,0.00335409568211604,0.00336249871124438,0.00336046237591742,0.00335153517414432,0.00333943051924747,0.00332729846288037,0.00331761206823124,0.00331222829597738,0.00331222829597738, +0.0079225339179434,0.0079225339179434,0.00793696803258417,0.00793040245052341,0.00790998520958731,0.00788323386571874,0.00785660835993369,0.00783532647781766,0.0078234616791985,0.0078234616791985, +0.0211264484741962,0.0211264484741962,0.0211524519929772,0.0211311458354946,0.0210786631122062,0.0210120577001524,0.0209461685774165,0.0208933712703138,0.0208637960100474,0.0208637960100474, +0.0523567091143964,0.0523567091143964,0.0523947736481485,0.0523347313667984,0.0522101717731409,0.0520567131828851,0.0519056353759609,0.0517839852418945,0.0517152971110704,0.0517152971110704, +0.117448693734906,0.117448693734906,0.117483017668071,0.117336203860117,0.117071076773598,0.116753819572768,0.116442514108245,0.116189550680256,0.116044631580945,0.116044631580945, +0.236808599583084,0.236808599583084,0.236793589988743,0.236481198954686,0.235979345459446,0.235396525070172,0.234825217323455,0.234353009834748,0.234074604162507,0.234074604162507, +0.427519807608597,0.427519807608597,0.427384249352826,0.426801416197139,0.425959827344837,0.425015050624861,0.424086760700468,0.423294533123218,0.422797678027008,0.422797678027008, +0.690336863482528,0.690336863482528,0.690047640959828,0.689064978188299,0.687812878392867,0.686470358057941,0.685142517824868,0.683940063072498,0.683071710245365,0.683071710245365, + +00:11:35, +0.00337520557149138,0.00337520557149138,0.00338364675616405,0.0033816060470581,0.00337264299167164,0.0033604852089035,0.00334829753335304,0.00333856601978989,0.00333315716405843,0.00333315716405843, +0.00337520557149138,0.00337520557149138,0.00338364675616405,0.0033816060470581,0.00337264299167164,0.0033604852089035,0.00334829753335304,0.00333856601978989,0.00333315716405843,0.00333315716405843, +0.00796246574861221,0.00796246574861221,0.00797694597231578,0.00797036642962301,0.00794988893463629,0.00792305091485148,0.0078963349016156,0.00787497957286374,0.00786307396524067,0.00786307396524067, +0.0212097056182189,0.0212097056182189,0.0212357569390791,0.0212144147465312,0.0211618261952531,0.0210950722871422,0.0210290280700331,0.0209761048286429,0.0209464597281306,0.0209464597281306, +0.0525128558096921,0.0525128558096921,0.0525509391895964,0.0524908306065944,0.0523661197756548,0.0522124507742179,0.0520611515688487,0.0519393216309145,0.0518705344347823,0.0518705344347823, +0.117698485495498,0.117698485495498,0.117732757387233,0.117585870335258,0.117320605974926,0.117003148336924,0.116691625105009,0.116438485762974,0.116293472665952,0.116293472665952, +0.23713628920324,0.23713628920324,0.237121160889637,0.236808784526619,0.236306957982088,0.235724121601847,0.235152772472478,0.23468053848818,0.234402132085014,0.234402132085014, +0.427849860364989,0.427849860364989,0.427714235339424,0.427131675404287,0.426290479433511,0.425346092113437,0.424418159994913,0.423626253633544,0.423129624173374,0.423129624173374, +0.690549741634483,0.690549741634483,0.690260695923516,0.689278722068337,0.688027480748985,0.686685842655487,0.685358858428346,0.684157193349135,0.683289432030244,0.683289432030244, + +00:11:36, +0.00339640221351063,0.00339640221351063,0.00340488161784557,0.00340283654196914,0.0033938375863616,0.00338162658959149,0.00336938319416139,0.00335960647511829,0.00335417248658449,0.00335417248658449, +0.00339640221351063,0.00339640221351063,0.00340488161784557,0.00340283654196914,0.0033938375863616,0.00338162658959149,0.00336938319416139,0.00335960647511829,0.00335417248658449,0.00335417248658449, +0.00800251045124071,0.00800251045124071,0.00801703678542751,0.00801044328812376,0.0079899055337402,0.00796298081280161,0.00793617425246032,0.00791474543819255,0.00790279899820231,0.00790279899820231, +0.0212930985941233,0.0212930985941233,0.0213191975950175,0.0212978193940966,0.021245125141527,0.0211782229049703,0.0211120237525013,0.0210589746964415,0.0210292598193169,0.0210292598193169, +0.0526690971567727,0.0526690971567727,0.0527071991475743,0.0526470243705521,0.0525221626952729,0.0523682838381334,0.0522167638019556,0.052094754509756,0.0520258684930954,0.0520258684930954, +0.117948203421904,0.117948203421904,0.117982423095337,0.117835463037468,0.117570062098497,0.117252405038839,0.116940665110226,0.11668735071205,0.116542244082045,0.116542244082045, +0.237463630393315,0.237463630393315,0.237448383463475,0.237136021997066,0.236634223073539,0.236051371797107,0.235479982494966,0.235007722978304,0.234729316342926,0.234729316342926, +0.428179364240483,0.428179364240483,0.428043672669731,0.427461385660882,0.426620582456045,0.425676584800696,0.424749010913782,0.423957426047328,0.423461022263156,0.423461022263156, +0.690762182996762,0.690762182996762,0.690473313708413,0.689492027372586,0.688241643023429,0.686900885865766,0.685574756474617,0.684373879911794,0.683506709112313,0.683506709112313, + +00:11:37, +0.00341768572782361,0.00341768572782361,0.00342620341564332,0.00342415398001515,0.00341511907783367,0.00340285478132752,0.00339055556573683,0.00338073355497614,0.00337527438449219,0.00337527438449219, +0.00341768572782361,0.00341768572782361,0.00342620341564332,0.00342415398001515,0.00341511907783367,0.00340285478132752,0.00339055556573683,0.00338073355497614,0.00337527438449219,0.00337527438449219, +0.0080426680100335,0.0080426680100335,0.00805724045578814,0.00805063300991915,0.00803003499117031,0.00800302354447356,0.00797612639807769,0.00795462405999449,0.00794263676459325,0.00794263676459325, +0.0213766271053988,0.0213766271053988,0.0214027736642144,0.021381359481665,0.0213285596548439,0.0212615092581182,0.0211951553301239,0.0211419805797241,0.0211121959900194,0.0211121959900194, +0.0528254325702498,0.0528254325702498,0.0528635529374521,0.0528033120740061,0.0526782999469232,0.0525242117891867,0.0523724714896579,0.0522502832927457,0.052181298700325,0.052181298700325, +0.118197847029718,0.118197847029718,0.118232014309484,0.118084981483389,0.117819444658813,0.117501589190027,0.117189633632478,0.116936145033822,0.116790945334367,0.116790945334367, +0.237790623499375,0.237790623499375,0.237775258057268,0.237462911712199,0.236961141076387,0.236378275992933,0.235806847721973,0.235334563631524,0.235056157260209,0.235056157260209, +0.428508320671963,0.428508320671963,0.428372562780449,0.427790548404172,0.426950137847867,0.426006530117678,0.425079314882984,0.424288051786602,0.423791873716685,0.423791873716685, +0.690974189052249,0.690974189052249,0.690685495799157,0.689704895590483,0.688455366709563,0.687115489184291,0.685790213460593,0.684590124259284,0.683723542992726,0.683723542992726, + +00:11:38, +0.00343905623345638,0.00343905623345638,0.00344761226828767,0.00344555847993649,0.0034364875850832,0.00342416990350404,0.00341181476788804,0.00340194737950123,0.00339646297809676,0.00339646297809676, +0.00343905623345638,0.00343905623345638,0.00344761226828767,0.00344555847993649,0.0034364875850832,0.00342416990350404,0.00341181476788804,0.00340194737950123,0.00339646297809676,0.00339646297809676, +0.00808293840852927,0.00808293840852927,0.00809755696660206,0.00809093557823833,0.00807027729053241,0.00804317909410446,0.00801619132340851,0.00799461542378973,0.00798258725025252,0.00798258725025252, +0.0214602908555054,0.0214602908555054,0.0214864848500657,0.0214650347126849,0.021412129438991,0.0213449310510324,0.0212784225081625,0.0212251221844589,0.0211952679466025,0.0211952679466025, +0.0529818614665366,0.0529818614665366,0.0530199999764021,0.0529596931340939,0.0528345309473338,0.052680234043726,0.052528274048117,0.0524059073959879,0.0523368244725611,0.0523368244725611, +0.118447415837881,0.118447415837881,0.118481530550116,0.118334425193006,0.118068753173728,0.117750700305355,0.117438530183707,0.117184868237987,0.117039575931412,0.117039575931412, +0.238117268868657,0.238117268868657,0.23810178501919,0.237789454019355,0.237287712334403,0.236704834527513,0.23613336848579,0.235661060775498,0.235382655162093,0.235382655162093, +0.428836731091504,0.428836731091504,0.428700907103465,0.428119165066589,0.427279147039605,0.426335929490653,0.425409073323695,0.424618132268698,0.424122179949603,0.424122179949603, +0.691185761276842,0.691185761276842,0.690897243673393,0.689917328204449,0.688668653293726,0.687329654099546,0.686005230876165,0.684805927883395,0.683939935165609,0.683939935165609, + +00:11:39, +0.00346051384881115,0.00346051384881115,0.00346910829388483,0.00346705015984917,0.00345794322648123,0.00344557207488974,0.00343316091980069,0.00342324806820922,0.00341773838709185,0.00341773838709185, +0.00346051384881115,0.00346051384881115,0.00346910829388483,0.00346705015984917,0.00345794322648123,0.00344557207488974,0.00343316091980069,0.00342324806820922,0.00341773838709185,0.00341773838709185, +0.00812332162960394,0.00812332162960394,0.00813798630041249,0.00813135097564932,0.00811063241476993,0.00808344744526729,0.00805636901272768,0.0080347195144313,0.00802265044035143,0.00802265044035143, +0.0215440895478789,0.0215440895478789,0.0215703308559467,0.0215488447905844,0.021495834197732,0.0214284879881304,0.0213618249918432,0.0213083992165739,0.0212784753953874,0.0212784753953874, +0.053138383263846,0.053138383263846,0.0531765396833973,0.0531161669697539,0.0529908551150309,0.0528363500198917,0.0526841708952781,0.0525616262373644,0.0524924452276667,0.0524924452276667, +0.118696909368663,0.118696909368663,0.118730971341,0.118583793689632,0.118317987164422,0.117999737903025,0.117687354279187,0.117433519837577,0.117288135385017,0.117288135385017, +0.238443566849554,0.238443566849554,0.238427964698561,0.238115649267023,0.237613937192528,0.23703104774023,0.236459545119923,0.235987214739118,0.235708810375052,0.235708810375052, +0.42916459692639,0.42916459692639,0.42902870706587,0.428447237075767,0.427607611457106,0.426664784341149,0.425738287652382,0.424947668906262,0.424451942372878,0.424451942372878, +0.691396901139502,0.691396901139502,0.691108558801816,0.690129326689931,0.688881504255269,0.687543382093033,0.686219810204243,0.685021292268939,0.684155887118102,0.684155887118102, + +00:11:40, +0.00348205869166605,0.00348205869166605,0.00349069160991669,0.00348862913724467,0.00347948611977437,0.0034670614136293,0.00345459414003732,0.00344463573999344,0.00343910073054931,0.00343910073054931, +0.00348205869166605,0.00348205869166605,0.00349069160991669,0.00348862913724467,0.00347948611977437,0.0034670614136293,0.00345459414003732,0.00344463573999344,0.00343910073054931,0.00343910073054931, +0.00816381765547379,0.00816381765547379,0.00817852843910455,0.00817187918406207,0.00815110034616705,0.00812382858087397,0.0080966594496473,0.00807493631610822,0.00806282631939673,0.00806282631939673, +0.0216280228859369,0.0216280228859369,0.0216543113852172,0.0216327894187766,0.0215796736348125,0.0215121797738058,0.0214453624863621,0.0213918113819616,0.0213618180426576,0.0213618180426576, +0.05329499738219,0.05329499738219,0.0533331714792098,0.0532727330017241,0.0531472718703383,0.0529925591376152,0.0528401614508691,0.0527174392365322,0.0526481603852771,0.0526481603852771, +0.118946327147651,0.118946327147651,0.118980336209211,0.118833086499885,0.118567146155393,0.118248701504557,0.117936105437514,0.117682099348944,0.117536623210336,0.117536623210336, +0.238769517791596,0.238769517791596,0.238753797445831,0.238441497804823,0.237939815996851,0.237356915971641,0.236785377959079,0.236313025852498,0.236034623226793,0.236034623226793, +0.429491919599126,0.429491919599126,0.429355964089978,0.42877476585456,0.427935532521456,0.42699309608596,0.426066959280813,0.425276663107269,0.424781162392822,0.424781162392822, +0.691607610102289,0.691607610102289,0.691319442648209,0.690340892515442,0.689093921066599,0.687756674639307,0.686433952920801,0.68523621889379,0.684371400330404,0.684371400330404, + +00:11:41, +0.00350369087917503,0.00350369087917503,0.0035123623332407,0.00351029552898981,0.00350111638208462,0.00348863803724334,0.00347611454653716,0.00346611051312475,0.00346055012691902,0.00346055012691902, +0.00350369087917503,0.00350369087917503,0.0035123623332407,0.00351029552898981,0.00350111638208462,0.00348863803724334,0.00347611454653716,0.00346611051312475,0.00346055012691902,0.00346055012691902, +0.00820442646769858,0.00820442646769858,0.00821918336390843,0.00821252018473163,0.00819168106635187,0.00816432248317853,0.0081370626171198,0.00811526581234864,0.00810311487123364,0.00810311487123364, +0.0217120905730839,0.0217120905730839,0.0217384261412275,0.0217168683006648,0.0216636474539651,0.0215960061124341,0.0215290346968905,0.0214753583864849,0.0214452955946639,0.0214452955946639, +0.0534517032433771,0.0534517032433771,0.0534898947864097,0.053429390652541,0.053303780635375,0.053148860818617,0.052996245136399,0.0528733458149229,0.0528039693667981,0.0528039693667981, +0.119195668703726,0.119195668703726,0.119229624685112,0.119082303153677,0.118816229674431,0.118497590634771,0.118184783180588,0.117930606291748,0.117785038925832,0.117785038925832, +0.239095122045436,0.239095122045436,0.239079283612559,0.23876699998349,0.238265349094595,0.237682439563463,0.237110867339148,0.236638494446954,0.236360094046232,0.236360094046232, +0.429818700527464,0.429818700527464,0.42968267959334,0.429101752821061,0.428262911648993,0.427320866137165,0.426395089616079,0.425605116275045,0.42510984141111,0.42510984141111, +0.691817889620405,0.691817889620405,0.691529896669486,0.690552027142606,0.689305905193219,0.687969533206024,0.686647660494916,0.685450709228926,0.684586476275813,0.684586476275813, + +00:11:42, +0.00352541052786767,0.00352541052786767,0.0035341205800897,0.00353204945132661,0.00352283412990927,0.00351030206262817,0.00349772225661594,0.00348767250525134,0.0034820866940287,0.0034820866940287, +0.00352541052786767,0.00352541052786767,0.0035341205800897,0.00353204945132661,0.00352283412990927,0.00351030206262817,0.00349772225661594,0.00348767250525134,0.0034820866940287,0.0034820866940287, +0.00824514804718468,0.00824514804718468,0.00825995105540247,0.00825327395826125,0.00823237455629952,0.00820492913378018,0.00817757849744107,0.00815570798602287,0.00814351607904902,0.00814351607904902, +0.0217962923127163,0.0217962923127163,0.021822674827323,0.0218010811396481,0.0217477553589155,0.0216799667083775,0.0216128413285804,0.0215590399359826,0.0215289077576305,0.0215289077576305, +0.053608500271012,0.053608500271012,0.0536467090293633,0.0535861393465374,0.0534603808340546,0.0533052544864055,0.0531524213751569,0.0530293453957413,0.0529598715954052,0.0529598715954052, +0.119444933569049,0.119444933569049,0.119478836302339,0.119331443184192,0.11906523725261,0.118746404821774,0.118433387033594,0.118179040188933,0.118033382053253,0.118033382053253, +0.23942037996283,0.23942037996283,0.239404423551401,0.239092156154858,0.238590536834098,0.238007618858552,0.237436013597186,0.236963620854985,0.236685223163481,0.236685223163481, +0.430144941124413,0.430144941124413,0.430008854988763,0.429428199388615,0.42858975025133,0.427648095902151,0.426722680060609,0.425933029808279,0.425437980824791,0.425437980824791, +0.692027741142234,0.692027741142234,0.691739922315734,0.690762732026195,0.689517458093771,0.688181959253979,0.686860934388809,0.685664764738471,0.684801116420765,0.684801116420765, + +00:11:43, +0.00354721775364913,0.00354721775364913,0.00355596646607187,0.00355389101987221,0.00354463947912074,0.00353205360605575,0.00351941738696579,0.00350932183339859,0.00350371054908379,0.00350371054908379, +0.00354721775364913,0.00354721775364913,0.00355596646607187,0.00355389101987221,0.00354463947912074,0.00353205360605575,0.00351941738696579,0.00350932183339859,0.00350371054908379,0.00350371054908379, +0.00828598237418819,0.00828598237418819,0.00830083149351631,0.00829414048460553,0.00827318079633524,0.00824564851362645,0.00821820707225352,0.00819626281934654,0.00818402992537441,0.00818402992537441, +0.0218806278082284,0.0218806278082284,0.0219070571468497,0.0218854276391264,0.0218319970533869,0.0217640612659907,0.0216967820865701,0.0216428557362742,0.0216126542377598,0.0216126542377598, +0.0537653878904931,0.0537653878904931,0.0538036136342316,0.0537429785098413,0.0536170718920829,0.0534617395662758,0.0533086895922102,0.0531854374039637,0.0531158664960418,0.0531158664960418, +0.119694121279045,0.119694121279045,0.119727970597788,0.119580506127875,0.119314168424265,0.118995143596937,0.118681916524986,0.118427400566714,0.118281652117619,0.118281652117619, +0.239745291896621,0.239745291896621,0.23972921761609,0.239416966671841,0.238915379564797,0.23833245420089,0.237760817071396,0.237288405410256,0.237010010909829,0.237010010909829, +0.43047064279826,0.43047064279826,0.430334491684328,0.429754106965844,0.428916049735365,0.427974786783623,0.427049732012187,0.426260405101041,0.425765582026311,0.425765582026311, +0.692237166109385,0.692237166109385,0.691949521030251,0.690973008614172,0.689728581220077,0.688393954237147,0.687073776057887,0.685878386879734,0.685015322224876,0.685015322224876, + +00:11:44, +0.00356911267179996,0.00356911267179996,0.00357790010617056,0.00357582034961875,0.00356653254496656,0.00355389278317354,0.00354120005365512,0.00353105861396894,0.00352542180866727,0.00352542180866727, +0.00356911267179996,0.00356911267179996,0.00357790010617056,0.00357582034961875,0.00356653254496656,0.00355389278317354,0.00354120005365512,0.00353105861396894,0.00352542180866727,0.00352542180866727, +0.00832692942831803,0.00832692942831803,0.00834182465753398,0.00833511974307347,0.00831409976613754,0.00828648060301631,0.00825894832254921,0.00823693029388367,0.00822465639208917,0.00822465639208917, +0.0219650967630172,0.0219650967630172,0.0219915728031599,0.0219699075025061,0.0219163722411059,0.0218482894896259,0.0217808566759888,0.0217268054931657,0.0216965347412381,0.0216965347412381, +0.0539223655290116,0.0539223655290116,0.0539606080289688,0.0538999075703743,0.0537738532369569,0.0536183154853077,0.0534650492144032,0.0533416212663369,0.0532719534954182,0.0532719534954182, +0.119943231372384,0.119943231372384,0.119977027111589,0.119829491524409,0.119563022726978,0.119243806494883,0.118930371186474,0.118675686954562,0.118529848647205,0.118529848647205, +0.240069858200725,0.240069858200725,0.24005366616142,0.239741431888421,0.239239877637214,0.238656945935565,0.238085278101116,0.237612848447587,0.237334457617726,0.237334457617726, +0.430795806952588,0.430795806952588,0.430659591083409,0.430079476956657,0.429241811503307,0.428300940179623,0.427376246863969,0.4265872435428,0.426092646403524,0.426092646403524, +0.692446165956728,0.692446165956728,0.692158694249592,0.691182858347732,0.689939276017176,0.688605519602721,0.687286186950782,0.686091577103251,0.685229095140981,0.685229095140981, + +00:11:45, +0.0035910953969761,0.0035910953969761,0.00359992161474427,0.0035978375549333,0.00358851344206921,0.00357581970900443,0.00356307037212849,0.00355288296274178,0.00354722058873957,0.00354722058873957, +0.0035910953969761,0.0035910953969761,0.00359992161474427,0.0035978375549333,0.00358851344206921,0.00357581970900443,0.00356307037212849,0.00355288296274178,0.00354722058873957,0.00354722058873957, +0.00836798918853907,0.00836798918853907,0.00838293052609702,0.00837621171233166,0.00835513144474129,0.00832742538160322,0.00829980222867296,0.00827771039054977,0.0082653954604235,0.0082653954604235, +0.0220496988804875,0.0220496988804875,0.0220762214996167,0.0220545204332047,0.0220008806258073,0.0219326510836383,0.0218650648019627,0.0218108889124549,0.0217805489742406,0.0217805489742406, +0.0540794326155494,0.0540794326155494,0.0541176916433203,0.0540569259578496,0.053930724297963,0.0537749816723643,0.0536214996703559,0.0534978964113764,0.0534281320220102,0.0534281320220102, +0.120192263390966,0.120192263390966,0.1202260053871,0.120078398916703,0.119811799701558,0.119492393053471,0.119178750553,0.118923898885183,0.118777971173524,0.118777971173524, +0.24039407923011,0.24039407923011,0.240377769543232,0.240065552159625,0.239564031402934,0.238981094408758,0.238409397026797,0.237936950302929,0.237658563620766,0.237658563620766, +0.43112043498629,0.43112043498629,0.430984154584686,0.43040431076027,0.429567036952684,0.428626557483549,0.4277022260045,0.426913546518439,0.426419175339714,0.426419175339714, +0.692654742112441,0.692654742112441,0.6923674434036,0.691392282661342,0.690149543923369,0.688816656791159,0.687498168509393,0.686304336852823,0.685442436615179,0.685442436615179, + +00:11:46, +0.00361316604320873,0.00361316604320873,0.00362203110552658,0.00361994274955779,0.00361058228442609,0.00359783449794661,0.00358502845720653,0.00357479499487332,0.00356910700463842,0.00356910700463842, +0.00361316604320873,0.00361316604320873,0.00362203110552658,0.00361994274955779,0.00361058228442609,0.00359783449794661,0.00358502845720653,0.00357479499487332,0.00356910700463842,0.00356910700463842, +0.00840916163317521,0.00840916163317521,0.00842414907720756,0.00841741637040729,0.0083962758105408,0.0083684828283983,0.0083407687703254,0.0083186030896149,0.0083062471109616,0.0083062471109616, +0.0221344338640576,0.0221344338640576,0.0221610029395996,0.0221392661346562,0.0220855219112394,0.022017145752391,0.0219494061696197,0.0218951056999363,0.0218646966429366,0.0218646966429366, +0.054236588580878,0.054236588580878,0.0542748639088215,0.0542140331037706,0.0540876845061752,0.0539317375580906,0.0537780403904622,0.0536542622693653,0.0535844015060571,0.0535844015060571, +0.120441216879905,0.120441216879905,0.120474904970882,0.120327227850873,0.12006049889203,0.119740902813775,0.11942705416273,0.119172035894505,0.119026019231311,0.119026019231311, +0.240717955340783,0.240717955340783,0.240701528118394,0.240389327841515,0.239887841214593,0.239304899967723,0.238733174189988,0.23826071131335,0.237982329253669,0.237982329253669, +0.431444528293589,0.431444528293589,0.431308183582166,0.430728609771225,0.429891727476369,0.42895164008417,0.428027670817729,0.427239315408273,0.426745170213604,0.426745170213604, +0.692862895998042,0.692862895998042,0.692575769915456,0.691601282982779,0.690359386370256,0.689027367236217,0.687709722168922,0.686516667565558,0.685655348086865,0.685655348086865, + +00:11:47, +0.00363532472390427,0.00363532472390427,0.00364422869162605,0.00364213604660898,0.00363273918540944,0.00361993726377358,0.00360707442308585,0.00359679482489654,0.0035910811710788,0.0035910811710788, +0.00363532472390427,0.00363532472390427,0.00364422869162605,0.00364213604660898,0.00363273918540944,0.00361993726377358,0.00360707442308585,0.00359679482489654,0.0035910811710788,0.0035910811710788, +0.00845044673991248,0.00845044673991248,0.00846548028823144,0.00845873369469131,0.00843753284129295,0.00840965292177338,0.0083818479265661,0.0083596083707068,0.00834721132364466,0.00834721132364466, +0.022219301417164,0.022219301417164,0.0222459168265095,0.0222241443103164,0.0221702958011695,0.0221017732002601,0.0220338804840945,0.0219794555614063,0.0219489774534951,0.0219489774534951, +0.054393832857556,0.054393832857556,0.0544321242587958,0.0543712284414291,0.0542447332944537,0.0540885825749116,0.0539346708068884,0.0538107182723524,0.0537407613795609,0.0537407613795609, +0.120690091387508,0.120690091387508,0.120723725412687,0.120575977876227,0.120309119845615,0.11998933532007,0.119675281557031,0.119420097521662,0.119273992358505,0.119273992358505, +0.241041486889775,0.241041486889775,0.241024942244788,0.240712759291168,0.240211307425861,0.239628362960771,0.239056609933322,0.23858413181702,0.238305754852267,0.238305754852267, +0.431768088264055,0.431768088264055,0.431631679465199,0.431052375379406,0.430215884462588,0.429276189365644,0.428352582683029,0.427564551588062,0.427070632399381,0.427070632399381, +0.693070629028433,0.693070629028433,0.692783675201711,0.691809860733172,0.690568804782775,0.689237652364991,0.68792084935792,0.686728570671909,0.685867830988775,0.685867830988775, + +00:11:48, +0.00365757155184427,0.00365757155184427,0.00366651448552622,0.0036644175585784,0.00365498425776634,0.00364212811963403,0.00362920838333899,0.00361888256672107,0.00361314320215283,0.00361314320215283, +0.00365757155184427,0.00365757155184427,0.00366651448552622,0.0036644175585784,0.00365498425776634,0.00364212811963403,0.00362920838333899,0.00361888256672107,0.00361314320215283,0.00361314320215283, +0.00849184448580218,0.00849184448580218,0.00850692413590127,0.00850016366194152,0.00847890251412025,0.00845093563946407,0.00842303967581664,0.00840072621281388,0.008388288077774,0.008388288077774, +0.0223043012432664,0.0223043012432664,0.0223309628637736,0.0223091546636676,0.0222552019993882,0.0221865331316403,0.0221184874505341,0.0220639382026686,0.0220333911120895,0.0220333911120895, +0.0545511648799283,0.0545511648799283,0.054589472128353,0.0545285114059035,0.0544018700974429,0.0542455161570308,0.0540913903535714,0.0539672638541509,0.0538972110762844,0.0538972110762844, +0.120938886465265,0.120938886465265,0.120972466265439,0.120824648545245,0.12055766211271,0.120237690119816,0.119923432280456,0.119668083308974,0.119521890096236,0.119521890096236, +0.24136467423512,0.24136467423512,0.241348012281293,0.241035846866662,0.240534430391425,0.239951483737258,0.239379704600499,0.238907212153193,0.238628840753486,0.238628840753486, +0.43209111628262,0.43209111628262,0.431954643618494,0.431375608970054,0.430539509294947,0.429600206707535,0.428676962975209,0.427889256429033,0.427395563266706,0.427395563266706, +0.693277942611937,0.693277942611937,0.692991160672328,0.692018017327039,0.690777800579247,0.689447513597957,0.688131551498318,0.686940047595713,0.686079886747025,0.686079886747025, + +00:11:49, +0.00367990663918544,0.00367990663918544,0.00368888859908558,0.00368678739733235,0.00367731761361864,0.00366440717805183,0.00365143045091437,0.00364105833363316,0.00363529321132971,0.00363529321132971, +0.00367990663918544,0.00367990663918544,0.00368888859908558,0.00368678739733235,0.00367731761361864,0.00366440717805183,0.00365143045091437,0.00364105833363316,0.00363529321132971,0.00363529321132971, +0.00853335484726386,0.00853335484726386,0.00854848059631953,0.00854170624828561,0.00852038480551395,0.0084923309585729,0.00846434399586365,0.0084419565942884,0.00842947735201411,0.00842947735201411, +0.0223894330458533,0.0223894330458533,0.022416140754851,0.0223942968982242,0.022340240209715,0.0222714252509493,0.0222032267741026,0.0221485533295393,0.0221179373249028,0.0221179373249028, +0.0547085840841237,0.0547085840841237,0.0547469069543872,0.054685881434057,0.0545590943515697,0.0544025377404284,0.0542481984662177,0.0541238984503367,0.0540537500317497,0.0540537500317497, +0.121187601667828,0.121187601667828,0.121221127085221,0.121073239413568,0.120806125246881,0.120485966763642,0.120171505880732,0.119915992801933,0.119769711988805,0.119769711988805, +0.241687517735845,0.241687517735845,0.241670738587769,0.24135859092706,0.240857210466973,0.240274262647565,0.239702458536266,0.239229952662191,0.238951587295331,0.238951587295331, +0.432413613729599,0.432413613729599,0.43227707742214,0.431698311923789,0.430862603352441,0.429923693484827,0.429000813064534,0.42821343129789,0.427719964180733,0.427719964180733, +0.693484838150342,0.693484838150342,0.693198227730722,0.692225754172331,0.690986375171405,0.689656952349011,0.688341830005473,0.687151099754232,0.686291516781147,0.686291516781147, + +00:11:50, +0.00370233009745958,0.00370233009745958,0.00371135114353757,0.00370924567411188,0.00369973936446297,0.00368677455092603,0.00367374073813624,0.00366332223829563,0.00365753131145567,0.00365753131145567, +0.00370233009745958,0.00370233009745958,0.00371135114353757,0.00370924567411188,0.00369973936446297,0.00368677455092603,0.00367374073813624,0.00366332223829563,0.00365753131145567,0.00365753131145567, +0.00857497780008852,0.00857497780008852,0.00859014964496167,0.00858336142922428,0.0085619796913371,0.00853383885557234,0.00850576086386192,0.00848329949284943,0.00847077912439569,0.00847077912439569, +0.0224746965284466,0.0224746965284466,0.0225014502032368,0.0224795707175369,0.0224254101360035,0.0223564492626335,0.0222880981599865,0.0222333006478518,0.0222026157981331,0.0222026157981331, +0.0548660899080534,0.0548660899080534,0.0549044281755753,0.054843337964536,0.0547164054950419,0.0545596467628596,0.0544050945823008,0.0542806214982469,0.0542103776832365,0.0542103776832365, +0.121436236552996,0.121436236552996,0.121469707431255,0.121321750039978,0.121054508804837,0.120734164805328,0.120419501908736,0.120163825549189,0.12001745758367,0.12001745758367, +0.242010017751949,0.242010017751949,0.241993121525041,0.241680991832393,0.241179648009181,0.240596700043081,0.240024872086408,0.239552353685392,0.239273994816867,0.239273994816867, +0.432735581980702,0.432735581980702,0.432598982251617,0.432020485616621,0.431185168009473,0.430246651067944,0.429324134316743,0.428537077556838,0.428043836502124,0.428043836502124, +0.693691317038931,0.693691317038931,0.693404877773796,0.692433072670465,0.691194529964445,0.689865970025506,0.688551686288205,0.687361728558188,0.68650272250413,0.68650272250413, + +00:11:51, +0.00372484203757362,0.00372484203757362,0.00373390222949057,0.00373179249953278,0.00372224962117074,0.00370923034953081,0.00369613935670466,0.00368567439274784,0.00367985761475394,0.00367985761475394, +0.00372484203757362,0.00372484203757362,0.00373390222949057,0.00373179249953278,0.00372224962117074,0.00370923034953081,0.00369613935670466,0.00368567439274784,0.00367985761475394,0.00367985761475394, +0.00861671331944159,0.00861671331944159,0.00863193125667913,0.00862512917963429,0.00860368714682765,0.00857545930630789,0.00854729025633747,0.00852475488558597,0.00851219337231873,0.00851219337231873, +0.0225600913946066,0.0225600913946066,0.0225868909124678,0.0225649758251984,0.0225107114821456,0.0224416048711724,0.0223731013133994,0.0223181798634617,0.0222874262379979,0.0222874262379979, +0.0550236817914091,0.0550236817914091,0.0550620352323751,0.0550008804377679,0.0548738029678459,0.0547168426638527,0.0545620781410603,0.0544374324369779,0.0543670934697807,0.0543670934697807, +0.121684790681698,0.121684790681698,0.121718206865887,0.121570179986382,0.121302812346418,0.120982283801788,0.120667419918488,0.120411581102529,0.12026512643143,0.12026512643143, +0.242332174644392,0.242332174644392,0.242315161454885,0.242003049943646,0.241501743375693,0.240918796276194,0.240346945597724,0.239874415565205,0.239596063658209,0.239596063658209, +0.433057022407055,0.433057022407055,0.432920359477819,0.432342131419973,0.431507204635874,0.430569080822765,0.429646928093059,0.428860196563591,0.428367181587066,0.428367181587066, +0.693897380666527,0.693897380666527,0.693611112191984,0.692639974216363,0.691402266357054,0.690074568028288,0.68876112174883,0.687571935411806,0.686713505322457,0.686713505322457, + +00:11:52, +0.00374744256980959,0.00374744256980959,0.0037565419669279,0.00375442798358565,0.00374484849398816,0.00373177468451551,0.00371862641769553,0.00370811490840565,0.00370227223282471,0.00370227223282471, +0.00374744256980959,0.00374744256980959,0.0037565419669279,0.00375442798358565,0.00374484849398816,0.00373177468451551,0.00371862641769553,0.00370811490840565,0.00370227223282471,0.00370227223282471, +0.00865856137986605,0.00865856137986605,0.00867382540570247,0.00866700947377155,0.00864550714660147,0.00861719228600119,0.00858893214919058,0.00856632274896,0.00855372007255555,0.00855372007255555, +0.022645617347937,0.022645617347937,0.0226724625861272,0.0226505119248477,0.0225961439520771,0.0225268917810838,0.0224582359395871,0.0224031906822522,0.0223723683507397,0.0223723683507397, +0.0551813591756608,0.0551813591756608,0.0552197275670233,0.0551585082959592,0.0550312862117453,0.0548741248847075,0.0547191485834996,0.0545943307073839,0.0545238968321725,0.0545238968321725, +0.12193326361798,0.12193326361798,0.121966624954571,0.121818528817796,0.121551035434581,0.121230323313058,0.120915259467125,0.120659259016865,0.120512718085807,0.120512718085807, +0.242653988775077,0.242653988775077,0.242636858740013,0.242324765622742,0.24182349692511,0.241240551700267,0.240668679418021,0.240196138645065,0.2399177941605,0.2399177941605, +0.433377936375216,0.433377936375216,0.433241210467067,0.432663250700694,0.431828714596916,0.430890984110644,0.429969195750214,0.429182789671394,0.428690000787289,0.428690000787289, +0.694103030415531,0.694103030415531,0.693816932369282,0.692846460198498,0.691609585741455,0.690282747751741,0.688970137783208,0.687781721712847,0.686923866636144,0.686923866636144, + +00:11:53, +0.00377013180382468,0.00377013180382468,0.00377927046520792,0.00377715223563588,0.00376753609253626,0.00375440766590465,0.00374120203156054,0.00373064389606144,0.00372477527664512,0.00372477527664512, +0.00377013180382468,0.00377013180382468,0.00377927046520792,0.00377715223563588,0.00376753609253626,0.00375440766590465,0.00374120203156054,0.00373064389606144,0.00372477527664512,0.00372477527664512, +0.00870052195528547,0.00870052195528547,0.00871583206564437,0.00870900228527416,0.00868743966465549,0.00865903776925299,0.00863068651769885,0.00860800305880948,0.00859535920125385,0.00859535920125385, +0.0227312740920898,0.0227312740920898,0.0227581649278494,0.0227361787201756,0.0226817072497825,0.0226123096969289,0.0225435017438327,0.0224883328101386,0.0224574418426308,0.0224574418426308, +0.0553391215040558,0.0553391215040558,0.0553775046235336,0.055316220983094,0.0551888546702789,0.0550314928684932,0.0548763053523844,0.0547513157520752,0.0546807872129548,0.0546807872129548, +0.122181654928983,0.122181654928983,0.122214961265855,0.12206679610233,0.121799177635378,0.121478282902275,0.121163020114894,0.120906858850216,0.120760232103633,0.120760232103633, +0.242975460506836,0.242975460506836,0.242958213744054,0.242646139232528,0.24214490901697,0.241561966669629,0.240990073896088,0.24051752326941,0.240239186665899,0.240239186665899, +0.433698325247191,0.433698325247191,0.433561536581128,0.432983844821076,0.432149699253331,0.431212362288418,0.430290938640456,0.429504858229037,0.429012295450076,0.429012295450076, +0.694308267661954,0.694308267661954,0.694022339683293,0.69305253199892,0.691816489503442,0.690490510583821,0.689178735780772,0.68799108885265,0.687133807838779,0.687133807838779, + +00:11:54, +0.00379290984865125,0.00379290984865125,0.00380208783306399,0.00379996536442374,0.00379031252581094,0.00377712940309796,0.00376386630812723,0.00375326146588412,0.0037473668565693,0.0037473668565693, +0.00379290984865125,0.00379290984865125,0.00380208783306399,0.00379996536442374,0.00379031252581094,0.00377712940309796,0.00376386630812723,0.00375326146588412,0.0037473668565693,0.0037473668565693, +0.00874259501900709,0.00874259501900709,0.00875795120950273,0.00875110758716548,0.00872948467437066,0.00870099573004628,0.00867255333652027,0.00864979579035147,0.00863711073393975,0.00863711073393975, +0.0228170613307702,0.0228170613307702,0.0228439976413246,0.0228219759149288,0.0227674010792994,0.0226978583233169,0.0226288984314614,0.0225736059530735,0.022542646419978,0.022542646419978, +0.0554969682216156,0.0554969682216156,0.0555353658476948,0.0554740179449314,0.0553465077887584,0.0551889460600469,0.0550335478922408,0.0549083870154162,0.0548377640564215,0.0548377640564215, +0.122429964184932,0.122429964184932,0.122463215371361,0.122314981411172,0.122047238517947,0.121726162135665,0.121410701425131,0.121154380163692,0.12100766804483,0.12100766804483, +0.243296590203414,0.243296590203414,0.243279226831543,0.242967171136756,0.242465980011738,0.241883041539557,0.241311129381691,0.240838569783668,0.240560241517565,0.240560241517565, +0.43401819038045,0.43401819038045,0.433881339177231,0.433303915138875,0.432470159961327,0.431533216708435,0.430612158111574,0.429826403580872,0.429334066918287,0.429334066918287, +0.694513093775462,0.694513093775462,0.694227335505261,0.693258190993304,0.692022979022418,0.69069785790609,0.68938691712457,0.688200038216168,0.687343330317556,0.687343330317556, + +00:11:55, +0.00381577681269691,0.00381577681269691,0.00382499417860459,0.00382286747806442,0.00381317790218302,0.00379994000487041,0.00378661935659903,0.00377596772741914,0.00377004708232833,0.00377004708232833, +0.00381577681269691,0.00381577681269691,0.00382499417860459,0.00382286747806442,0.00381317790218302,0.00379994000487041,0.00378661935659903,0.00377596772741914,0.00377004708232833,0.00377004708232833, +0.00878478054372484,0.00878478054372484,0.00880018280966372,0.00879332535185719,0.0087716421485151,0.00874306614174932,0.00871453257969625,0.0086917009181851,0.00867897464552079,0.00867897464552079, +0.0229029787677414,0.0229029787677414,0.0229299604303041,0.0229079032129155,0.0228532251447238,0.0227835373649098,0.0227144257078449,0.0226590098170516,0.0226279817891276,0.0226279817891276, +0.0556548987751349,0.0556548987751349,0.0556933106870686,0.0556318986290042,0.055504245014267,0.055346483905971,0.0551908756493535,0.0550655439435237,0.0549948268086154,0.0549948268086154, +0.12267819095912,0.12267819095912,0.12271138684577,0.122563084318569,0.12229521765449,0.121973960582524,0.121658302964244,0.121401822521481,0.1212550254724,0.1212550254724, +0.243617378229453,0.243617378229453,0.243599898367905,0.243287861700075,0.242786710270788,0.24220377666626,0.241631846225548,0.241159278534244,0.24088095905964,0.24088095905964, +0.434337533127948,0.434337533127948,0.434200619608083,0.433623463007321,0.432790098072604,0.431853548718562,0.430932855506909,0.430147427066828,0.42965531653037,0.42965531653037, +0.694717510119407,0.694717510119407,0.694431921200109,0.693463438550983,0.692229055671435,0.690904791093762,0.689594683191301,0.688408571182005,0.687552435453317,0.687552435453317, + +00:11:56, +0.00383873280374456,0.00383873280374456,0.00384798960931339,0.00384585868404811,0.00383613232939833,0.00382283957937231,0.00380946128555527,0.00379876278958854,0.00379281606303032,0.00379281606303032, +0.00383873280374456,0.00383873280374456,0.00384798960931339,0.00384585868404811,0.00383613232939833,0.00382283957937231,0.00380946128555527,0.00379876278958854,0.00379281606303032,0.00379281606303032, +0.00882707850152241,0.00882707850152241,0.00884252683790478,0.00883565555115232,0.00881391205924707,0.00878524897711865,0.00875662422065466,0.00873371841629462,0.00872095091028901,0.00872095091028901, +0.0229890261068292,0.0229890261068292,0.0230160529986048,0.0229939603180093,0.0229391791502146,0.0228693465264273,0.0228000832784072,0.0227445441081146,0.0227134476564703,0.0227134476564703, +0.0558129126131792,0.0558129126131792,0.055851338590988,0.0557898624846163,0.0556620657956568,0.055504105854632,0.0553482880717637,0.0552227859842652,0.055151974917327,0.055151974917327, +0.122926334827888,0.122926334827888,0.122959475266808,0.122811104401814,0.122543114620259,0.122221677815203,0.121905824301702,0.121649185490827,0.121502303952403,0.121502303952403, +0.243937824950481,0.243937824950481,0.24392022871944,0.243608211288008,0.243107100156386,0.242524172406868,0.241952224779324,0.2414796498685,0.241201339637238,0.241201339637238, +0.434656354838135,0.434656354838135,0.43451937922189,0.433942489775141,0.433109514934373,0.432173359662204,0.431253032165371,0.430467930022429,0.429976045620377,0.429976045620377, +0.69492151805087,0.69492151805087,0.694636098126477,0.693668276034984,0.692434720817228,0.691111311515734,0.689802035351353,0.688616689122455,0.687761124620583,0.687761124620583, + +00:11:57, +0.00386177792895247,0.00386177792895247,0.00387107423204931,0.0038689390892401,0.00385917591457778,0.00384582823412935,0.00383239220295127,0.00382164676069101,0.00381567390716045,0.00381567390716045, +0.00386177792895247,0.00386177792895247,0.00387107423204931,0.0038689390892401,0.00385917591457778,0.00384582823412935,0.00383239220295127,0.00382164676069101,0.00381567390716045,0.00381567390716045, +0.00886948886387629,0.00886948886387629,0.00888498326539771,0.00887809815624827,0.00885629437811804,0.00882754420830219,0.00879882823221285,0.00877584825805246,0.00876303950192395,0.00876303950192395, +0.0230752030519269,0.0230752030519269,0.023102275050114,0.0230801469341546,0.0230252627999985,0.0229552855126518,0.0228858708486283,0.0228302085323557,0.0227990437284461,0.0227990437284461, +0.0559710091860826,0.0559710091860826,0.0560094490105547,0.0559479089628407,0.0558199695835472,0.0556618113561582,0.0555057846092675,0.0553801125872568,0.0553092078320921,0.0553092078320921, +0.123174395370612,0.123174395370612,0.123207480215231,0.123059041241231,0.122790928993543,0.122469313409094,0.122153265010014,0.121896468642022,0.121749503053945,0.121749503053945, +0.244257930732894,0.244257930732894,0.244240218253308,0.243928220266945,0.243427150031683,0.242844229119412,0.242272265395606,0.241799684134745,0.241521383596424,0.241521383596424, +0.43497465685498,0.43497465685498,0.434837619362366,0.434260996786574,0.433428411889369,0.432492650878321,0.431572689421458,0.430787913778806,0.430296255517984,0.430296255517984, +0.695125118920691,0.695125118920691,0.694839867636755,0.693872704802069,0.692639975820252,0.691317420534621,0.690008974968841,0.688824393403533,0.687969399187598,0.687969399187598, + +00:11:58, +0.00388491229485441,0.00388491229485441,0.00389424815304664,0.00389210879988087,0.00388230876421745,0.00386890607604271,0.00385541221611844,0.00384461974840192,0.00383862072258101,0.00383862072258101, +0.00388491229485441,0.00388491229485441,0.00389424815304664,0.00389210879988087,0.00388230876421745,0.00386890607604271,0.00385541221611844,0.00384461974840192,0.00383862072258101,0.00383862072258101, +0.00891201160165878,0.00891201160165878,0.00892755206271166,0.0089206531377399,0.00889878907607574,0.0088699518068422,0.00884114458658069,0.00881809041622219,0.00880524039349564,0.00880524039349564, +0.0231615093070002,0.0231615093070002,0.0231886262887936,0.023166462765371,0.0231114757983744,0.0230413540284325,0.0229717881240497,0.0229160027959245,0.0228847697115487,0.0228847697115487, +0.0561291879459462,0.0561291879459462,0.0561676413986375,0.0561060375165178,0.0559779558303226,0.0558195998624374,0.0556633647134136,0.0555375232038617,0.0554665250041899,0.0554665250041899, +0.123422372169687,0.123422372169687,0.123455401274805,0.123306894420155,0.123038660355647,0.122716866942613,0.122400624664719,0.122143671548384,0.121996622349161,0.121996622349161, +0.24457769594394,0.24457769594394,0.244559867337515,0.244247889004123,0.24374686026069,0.243163947162814,0.242591968427896,0.242119381682216,0.241841091284206,0.241841091284206, +0.435292440517982,0.435292440517982,0.435155341368757,0.434578985381384,0.433746790275872,0.432811423701444,0.431891828605268,0.431107379662719,0.4306159475485,0.4306159475485, +0.695328314073512,0.695328314073512,0.695043231077126,0.694076726202766,0.692844822034721,0.691523119506802,0.690215503401638,0.689031685385019,0.68817726051636,0.68817726051636, + +00:11:59, +0.00390813600735969,0.00390813600735969,0.00391751147791514,0.00391536792158622,0.00390553098418874,0.00389207321138915,0.0038785214317643,0.00386768185977344,0.00386165661653148,0.00386165661653148, +0.00390813600735969,0.00390813600735969,0.00391751147791514,0.00391536792158622,0.00390553098418874,0.00389207321138915,0.0038785214317643,0.00386768185977344,0.00386165661653148,0.00386165661653148, +0.00895464668514106,0.00895464668514106,0.00897023319981621,0.0089633204656225,0.00894139612346713,0.00891247174367836,0.00888357325536359,0.00886044486296159,0.00884755355746765,0.00884755355746765, +0.0232479445760913,0.0232479445760913,0.0232751064186856,0.0232529075157579,0.0231978178497185,0.0231275517786905,0.0230578348102786,0.0230019266050321,0.0229706253123305,0.0229706253123305, +0.0562874483466353,0.0562874483466353,0.0563259152098698,0.0562642476002529,0.0561360239901305,0.0559774708271154,0.0558210278375018,0.0556950172871877,0.0556239258866418,0.0556239258866418, +0.123670264810512,0.123670264810512,0.123703238032293,0.12355466352492,0.12328630829088,0.122964337997181,0.122647902844364,0.122390793786245,0.122243661413201,0.122243661413201, +0.244897120951712,0.244897120951712,0.244879176340898,0.244567217867615,0.244066231208272,0.243483326896868,0.242911334230592,0.242438742861067,0.242160463048514,0.242160463048514, +0.435609707162188,0.435609707162188,0.435472546575855,0.434896456894882,0.434064651427719,0.433129679461691,0.432210451042517,0.431426328996568,0.430935123032891,0.430935123032891, +0.695531104847809,0.695531104847809,0.695246189787598,0.694280341581412,0.693049260808645,0.691728409782445,0.690421622001418,0.689238566420491,0.688384709962659,0.688384709962659, + +00:12:00, +0.00393144917175337,0.00393144917175337,0.00394086431164021,0.00393871655934739,0.00392884267973844,0.00391532974582112,0.00390171995597266,0.00389083320123463,0.00388478169562863,0.00388478169562863, +0.00393144917175337,0.00393144917175337,0.00394086431164021,0.00393871655934739,0.00392884267973844,0.00391532974582112,0.00390171995597266,0.00389083320123463,0.00388478169562863,0.00388478169562863, +0.00899739408399616,0.00899739408399616,0.00901302664608431,0.00900610010929483,0.00898411549004151,0.00895510398915076,0.0089261142095655,0.00890291156982561,0.00888997896570006,0.00888997896570006, +0.023334508563324,0.023334508563324,0.023361715143916,0.023339480889499,0.0232842886584883,0.0232138784684237,0.0231440106129929,0.0230879796659549,0.0230566102374072,0.0230566102374072, +0.0564457898437783,0.0564457898437783,0.0564842699006478,0.056422538670414,0.0562941735188789,0.0561354237055935,0.0559787734365804,0.0558525942920854,0.0557814099342084,0.0557814099342084, +0.123918072881472,0.123918072881472,0.12395099007744,0.123802348144844,0.12353387238654,0.123211726157214,0.122895099130494,0.122637834934935,0.122490619824212,0.122490619824212, +0.245216206125123,0.245216206125123,0.245198145633112,0.244886207226313,0.24438526324013,0.24380236868223,0.243230363158977,0.242757768022352,0.242479499238189,0.242479499238189, +0.435926458118212,0.435926458118212,0.435789236314012,0.43521341265794,0.434381996674323,0.433447419484784,0.432528558054556,0.43174476309841,0.431253783287787,0.431253783287787, +0.695733492575928,0.695733492575928,0.695448745102038,0.694483552276184,0.693253293483863,0.691933292705553,0.69062733211369,0.68944503785736,0.688591748876113,0.688591748876113, + +00:12:01, +0.00395485189269629,0.00395485189269629,0.00396430675858297,0.00396215481753119,0.00395224395548892,0.0039386757843669,0.00392500789420368,0.0039140738785915,0.0039079960658666,0.0039079960658666, +0.00395485189269629,0.00395485189269629,0.00396430675858297,0.00396215481753119,0.00395224395548892,0.0039386757843669,0.00392500789420368,0.0039140738785915,0.0039079960658666,0.0039079960658666, +0.00904025376730201,0.00904025376730201,0.00905593237029539,0.00904899203756216,0.00902694714495344,0.00899784851300292,0.00896876741959194,0.00894549050776943,0.00893251658945251,0.00893251658945251, +0.0234212009729082,0.0234212009729082,0.0234484521686996,0.0234261825908673,0.0233708879292279,0.0233003338027106,0.0232303152379457,0.0231741616850404,0.0231427241934625,0.0231427241934625, +0.0566042118947635,0.0566042118947635,0.0566427049291278,0.0565809101851301,0.0564524038742349,0.0562934579550265,0.0561366009674445,0.0560102536751468,0.0559389766033885,0.0559389766033885, +0.124165795973924,0.124165795973924,0.124198657002954,0.124049947872207,0.123781352232894,0.123459031010106,0.123142213107631,0.122884794576763,0.122737497163325,0.122737497163325, +0.245534951833902,0.245534951833902,0.245516775584615,0.245204857449917,0.244703956722787,0.2441210728804,0.243549055569201,0.243076457518011,0.242798200202967,0.242798200202967, +0.436242694712249,0.436242694712249,0.436105411909162,0.435529853997006,0.434698827340688,0.433764645092063,0.432846150958387,0.432062683281976,0.431571929625508,0.431571929625508, +0.695935478584124,0.695935478584124,0.695650898348215,0.694686359619137,0.693456921396079,0.692137769613991,0.69083263507783,0.689651101036906,0.688798378600205,0.688798378600205, + +00:12:02, +0.0039783442742253,0.0039783442742253,0.00398783892248045,0.00398568279988021,0.00397573491543825,0.00396211143143077,0.00394838535129405,0.00393740399702718,0.00393129983261704,0.00393129983261704, +0.0039783442742253,0.0039783442742253,0.00398783892248045,0.00398568279988021,0.00397573491543825,0.00396211143143077,0.00394838535129405,0.00393740399702718,0.00393129983261704,0.00393129983261704, +0.00908322570354446,0.00908322570354446,0.00909895034063827,0.00909199621863923,0.00906989105676583,0.00904070528438481,0.00901153285525298,0.00898818164715141,0.00897516639938712,0.00897516639938712, +0.0235080215091444,0.0235080215091444,0.0235353171973446,0.0235130123242292,0.0234576153665718,0.0233869174867155,0.0233167483909698,0.0232604723687105,0.0232289668872524,0.0232289668872524, +0.0567627139587375,0.0567627139587375,0.0568012197552247,0.0567393616042883,0.0566107145156217,0.0564515730343208,0.0562945098886339,0.0561679948947022,0.0560966253524165,0.0560966253524165, +0.124413433682182,0.124413433682182,0.124446238404497,0.124297462302246,0.124028747423168,0.123706252146208,0.123389244363265,0.123131672297008,0.122984293014638,0.122984293014638, +0.245853358448573,0.245853358448573,0.245835066566655,0.245523168908917,0.245022312023574,0.244439439853711,0.243867411818268,0.243394811700857,0.243116566293467,0.243116566293467, +0.436558418266091,0.436558418266091,0.43642107468283,0.435845782234122,0.435015144747429,0.434081357600506,0.433163231066675,0.432380090856685,0.431889563354068,0.431889563354068, +0.696137064192593,0.696137064192593,0.695852650847827,0.694888764936239,0.693660145874903,0.69234184183953,0.691037532227122,0.689856757294315,0.689004600472316,0.689004600472316, + +00:12:03, +0.00400192641975338,0.00400192641975338,0.00401146090644576,0.0040093006095129,0.00399931566296039,0.00398563679079308,0.00397185243145707,0.00396082366110205,0.00395469310062921,0.00395469310062921, +0.00400192641975338,0.00400192641975338,0.00401146090644576,0.0040093006095129,0.00399931566296039,0.00398563679079308,0.00397185243145707,0.00396082366110205,0.00395469310062921,0.00395469310062921, +0.00912630986062024,0.00912630986062024,0.00914208052471423,0.0091351126201533,0.00911294719345287,0.00908367427185583,0.00905441048576625,0.00903098495773607,0.00901792836557154,0.00901792836557154, +0.0235949698764279,0.0235949698764279,0.0236223099342568,0.0235999697940489,0.02354447067525,0.0234736292256928,0.0234033097779823,0.0233469114234671,0.0233153380256104,0.0233153380256104, +0.0569212954966029,0.0569212954966029,0.056959813840609,0.0568978923895321,0.056769104904217,0.0566097684041316,0.056452499660431,0.0563258174108192,0.0562543556412605,0.0562543556412605, +0.124660985603501,0.124660985603501,0.124693733880661,0.124544891033129,0.124276057553528,0.123953389158823,0.123636192487833,0.123378467683898,0.123231006965201,0.123231006965201, +0.246171426340445,0.246171426340445,0.246153018951255,0.245841141974584,0.245340329510617,0.244757469965312,0.244185432264024,0.243712830924559,0.243434597861174,0.243434597861174, +0.436873630097146,0.436873630097146,0.436736225952157,0.436161198686943,0.435330950210782,0.434397558322741,0.433479799687769,0.432696987127663,0.432206685777202,0.432206685777202, +0.69633825071551,0.69633825071551,0.696054003916544,0.69509076954741,0.693862968243879,0.692545510707876,0.691242024888791,0.690062007958713,0.689210415823764,0.689210415823764, + +00:12:04, +0.00402559843206982,0.00402559843206982,0.00403517281296827,0.00403300834892386,0.00402298630080533,0.00400925196561052,0.00399540923828287,0.00398433297475384,0.00397817597403015,0.00397817597403015, +0.00402559843206982,0.00402559843206982,0.00403517281296827,0.00403300834892386,0.00402298630080533,0.00400925196561052,0.00399540923828287,0.00398433297475384,0.00397817597403015,0.00397817597403015, +0.00916950620583998,0.00916950620583998,0.00918532288953999,0.0091783412091471,0.00915611552240308,0.0091267554433878,0.00909740027975992,0.00907390040869712,0.00906080245748191,0.00906080245748191, +0.023682045779254,0.023682045779254,0.0237094300839445,0.0236870547048933,0.0236314535600921,0.0235604687249917,0.0234899991049892,0.0234334785558961,0.0234018373154513,0.0234018373154513, +0.057079955971016,0.057079955971016,0.0571184866487053,0.0570565020042587,0.0569275745029503,0.0567680435268616,0.0566105697448585,0.0564837206852999,0.0564121669316203,0.0564121669316203, +0.12490845133806,0.12490845133806,0.124941143032962,0.124792233665946,0.124523282223064,0.124200441644178,0.123883057074707,0.123625180328597,0.123477638605001,0.123477638605001, +0.246489155881596,0.246489155881596,0.2464706331112,0.246158777018954,0.245658009552822,0.245075163579158,0.24450311726514,0.244030515543633,0.243752295258426,0.243752295258426, +0.437188331518451,0.437188331518451,0.437050867029909,0.436476104668749,0.435646245042625,0.434713248567064,0.433795858125716,0.433013373395755,0.432523298194372,0.432523298194372, +0.696539039461062,0.696539039461062,0.696254958864037,0.695292374766549,0.694065389820526,0.692748777538708,0.691446114384036,0.690266854353203,0.689415825979832,0.689415825979832, + +00:12:05, +0.0040493604133404,0.0040493604133404,0.00405897474391377,0.00405680611998394,0.00404674693109932,0.00403295705841623,0.00401905587473854,0.00400793204129785,0.00400174855632478,0.00400174855632478, +0.0040493604133404,0.0040493604133404,0.00405897474391377,0.00405680611998394,0.00404674693109932,0.00403295705841623,0.00401905587473854,0.00400793204129785,0.00400174855632478,0.00400174855632478, +0.00921281470593123,0.00921281470593123,0.00922867740155068,0.00922168195208186,0.00919939601042229,0.00916994876636799,0.0091405022052757,0.00911692796862043,0.00910378864400581,0.00910378864400581, +0.0237692489222216,0.0237692489222216,0.0237966773510225,0.023774266761436,0.0237185637260319,0.0236474356900601,0.0235768160780896,0.0235201734726721,0.0234884644637761,0.0234884644637761, +0.0572386948463845,0.0572386948463845,0.0572772376446891,0.0572151899136171,0.0570861227765011,0.0569263978666579,0.0567687196056773,0.0566417041816789,0.0565700586869253,0.0565700586869253, +0.12515583048895,0.12515583048895,0.125188465465815,0.125039489804693,0.124770421033778,0.124447409201422,0.124129837720178,0.123871809825192,0.123724187526948,0.123724187526948, +0.246806547444862,0.246806547444862,0.246787909420022,0.246476074414812,0.245975352519863,0.24539252105999,0.2448204671811,0.244347865913421,0.2440696588384,0.2440696588384, +0.437502523838691,0.437502523838691,0.437364999224498,0.436790501488462,0.435961030550494,0.435028429637455,0.434111407680275,0.433329250957541,0.43283940190079,0.43283940190079, +0.696739431731483,0.696739431731483,0.696455516994016,0.695493581901577,0.694267411916369,0.692951643645714,0.691649802028069,0.690471297794895,0.689620832259813,0.689620832259813, + +00:12:06, +0.0040732124651076,0.0040732124651076,0.00408286680052471,0.00408069402394049,0.00407059765534505,0.00405675217112003,0.00404279244316831,0.00403162096342706,0.00402541095039614,0.00402541095039614, +0.0040732124651076,0.0040732124651076,0.00408286680052471,0.00408069402394049,0.00407059765534505,0.00405675217112003,0.00404279244316831,0.00403162096342706,0.00402541095039614,0.00402541095039614, +0.00925623532704139,0.00925623532704139,0.00927214402660284,0.00926513481484028,0.00924278862373661,0.00921325420760205,0.00918371622977179,0.00916006760550696,0.00914688689344526,0.00914688689344526, +0.0238565790100382,0.0238565790100382,0.0238840514402167,0.023861605668462,0.0238058008781115,0.0237345298264497,0.0236637604034806,0.0236069958805627,0.0235752191776766,0.0235752191776766, +0.0573975115888651,0.0573975115888651,0.0574360662954855,0.0573739555845055,0.0572447491912958,0.0570848308894103,0.0569269487083845,0.0567997673652214,0.0567280303723323,0.0567280303723323, +0.125403122662156,0.125403122662156,0.125435700786527,0.125286659056254,0.125017473590566,0.124694291432599,0.124376534023439,0.124118355770673,0.123970653326857,0.123970653326857, +0.247123601403819,0.247123601403819,0.247104848251989,0.246793034535682,0.246292358782167,0.245709542773328,0.245137482372187,0.244664882390084,0.244386688955098,0.244386688955098, +0.437816208362214,0.437816208362214,0.437678623839996,0.437104390450664,0.436275308037596,0.435343102833595,0.434426449646935,0.433644621105355,0.433154998187428,0.433154998187428, +0.696939428823089,0.696939428823089,0.696655679604266,0.695694392254469,0.694469035836978,0.693154110336622,0.691853089130147,0.690675339594948,0.689825435977036,0.689825435977036, + +00:12:07, +0.0040971546882908,0.0040971546882908,0.00410684908342043,0.00410467216141761,0.00409453857442188,0.00408063740500859,0.00406661904529378,0.00405539984321238,0.0040491632585055,0.0040491632585055, +0.0040971546882908,0.0040971546882908,0.00410684908342043,0.00410467216141761,0.00409453857442188,0.00408063740500859,0.00406661904529378,0.00405539984321238,0.0040491632585055,0.0040491632585055, +0.00929976803474073,0.00929976803474073,0.00931572272997737,0.00930869976272947,0.00928629332799539,0.00925667173331702,0.00922704232012588,0.00920331928677578,0.00919009717351969,0.00919009717351969, +0.0239440357475238,0.0239440357475238,0.0239715520563683,0.0239490711308717,0.0238931647214861,0.0238217508398197,0.023750831787461,0.0236939454864329,0.0236621011643392,0.0236621011643392, +0.0575564056663616,0.0575564056663616,0.0575949720697658,0.0575327984855689,0.0574034532155064,0.0572433420627489,0.0570852565202108,0.0569579097029209,0.0568860814547235,0.0568860814547235, +0.125650327466543,0.125650327466543,0.125682848605278,0.125533741030389,0.125264439501204,0.124941087942641,0.124623145586573,0.12436481776492,0.124217035603435,0.124217035603435, +0.247440318132774,0.247440318132774,0.247421449982093,0.247109657755813,0.246609028710901,0.246026229085455,0.245454163199469,0.244981565330585,0.244703385963337,0.244703385963337, +0.438129386389046,0.438129386389046,0.43799174217615,0.437417772855615,0.436589078802829,0.435657269450878,0.43474098531693,0.433959485127295,0.433470088341037,0.433470088341037, +0.697139032026312,0.697139032026312,0.696855447986675,0.695894807121285,0.694670262881998,0.693356178913238,0.692055976993604,0.690878981058596,0.690029638438903,0.690029638438903, + +00:12:08, +0.00412118718318651,0.00412118718318651,0.00413092169259736,0.00412874063241631,0.00411856978858605,0.00410461286074571,0.0040905357822141,0.00407926878210279,0.0040730055822926,0.0040730055822926, +0.00412118718318651,0.00412118718318651,0.00413092169259736,0.00412874063241631,0.00411856978858605,0.00410461286074571,0.0040905357822141,0.00407926878210279,0.0040730055822926,0.0040730055822926, +0.00934341279402531,0.00934341279402531,0.00935941347638256,0.00935237676048399,0.00932991008827424,0.00930020130916427,0.00927048044263809,0.00924668297926697,0.00923341945136886,0.00923341945136886, +0.0240316188396158,0.0240316188396158,0.0240591789044382,0.0240366628536854,0.0239806549614279,0.0239090984359417,0.0238380299364364,0.0237810219972496,0.0237491101310501,0.0237491101310501, +0.057715376548522,0.057715376548522,0.057753954437946,0.057691718087197,0.0575622343190472,0.0574019308560415,0.0572436425101186,0.0571161306634969,0.0570442114027039,0.0570442114027039, +0.125897444513841,0.125897444513841,0.125929908535105,0.125780735339717,0.125511318376334,0.125187798339348,0.124869672014535,0.124611195410692,0.124463333958266,0.124463333958266, +0.247756698006752,0.247756698006752,0.247737714986029,0.247425944450166,0.246925362677958,0.246342580363403,0.245770510024786,0.245297915092676,0.245019750218727,0.245019750218727, +0.43844205921491,0.43844205921491,0.438304355528403,0.437730649999262,0.436902344140794,0.435970930780432,0.435055015977253,0.434273844307246,0.433784673644161,0.433784673644161, +0.697338242625735,0.697338242625735,0.697054823427276,0.696094827792211,0.694871094345185,0.693557850671478,0.692258466915891,0.691082223485188,0.690233440946924,0.690233440946924, + +00:12:09, +0.00414531004946861,0.00414531004946861,0.00415508472742925,0.00415289953631483,0.00414269139747096,0.00412867863837249,0.00411454275440617,0.00410322788092557,0.00409693802277583,0.00409693802277583, +0.00414531004946861,0.00414531004946861,0.00415508472742925,0.00415289953631483,0.00414269139747096,0.00412867863837249,0.00411454275440617,0.00410322788092557,0.00409693802277583,0.00409693802277583, +0.00938716956932004,0.00938716956932004,0.00940321622995695,0.00939616577226873,0.00937363886907795,0.00934384290022249,0.00931403056303395,0.00929015864924464,0.00927685369355582,0.00927685369355582, +0.0241193279913727,0.0241193279913727,0.0241469316895112,0.0241243805420474,0.0240682713033306,0.0239965723207036,0.0239253545569229,0.0238682251200858,0.0238362457851988,0.0238362457851988, +0.0578744237067363,0.0578744237067363,0.0579130128721838,0.0578507138615214,0.0577210919735729,0.0575605967403916,0.0574021061487995,0.0572744297173927,0.0572024196865997,0.0572024196865997, +0.126144473418628,0.126144473418628,0.126176880191889,0.126027641599701,0.125758109829444,0.125434422233376,0.125116112915141,0.124857488313606,0.124709547995796,0.124709547995796, +0.24807274140148,0.24807274140148,0.248053643640192,0.247741894994399,0.247241361055946,0.246658596974938,0.246086523210736,0.245613932034884,0.245335782077667,0.245335782077667, +0.438754228131239,0.438754228131239,0.438616465187904,0.438043023173264,0.437215105341814,0.43628408810913,0.435368542910676,0.434587699924888,0.434098755375152,0.434098755375152, +0.697537061900123,0.697537061900123,0.697253807206275,0.696294455551586,0.695071531514441,0.693759126901402,0.692460560188605,0.69128506816822,0.69043684479675,0.69043684479675, + +00:12:10, +0.00416952338618857,0.00416952338618857,0.0041793382866675,0.00417714897186884,0.00416690350008738,0.00415283483730761,0.00413864006172493,0.00412727723988655,0.00412096068035246,0.00412096068035246, +0.00416952338618857,0.00416952338618857,0.0041793382866675,0.00417714897186884,0.00416690350008738,0.00415283483730761,0.00413864006172493,0.00412727723988655,0.00412096068035246,0.00412096068035246, +0.00943103832448152,0.00943103832448152,0.0094471309542724,0.00944006676168195,0.00941747963434347,0.00938759647100063,0.00935769264646734,0.00933374626239983,0.00932039986606989,0.00932039986606989, +0.0242071629079784,0.0242071629079784,0.0242348101168002,0.0242122239012305,0.0241560134527136,0.0240841722001142,0.0240128053555519,0.023955554562125,0.023923507834283,0.023923507834283, +0.0580335466141343,0.0580335466141343,0.0580721468463764,0.0580097852824135,0.0578800256524761,0.057719339188636,0.0575606469086721,0.0574328063367732,0.0573607057784555,0.0573607057784555, +0.12639141379832,0.12639141379832,0.126423763194341,0.126274459428634,0.126004813476862,0.125680959238222,0.125362467899048,0.125103696082124,0.124955677323318,0.124955677323318, +0.248388448693373,0.248388448693373,0.248369236321658,0.248057509764855,0.247557024218174,0.246974279288551,0.246402203120664,0.245929616516498,0.245651481897325,0.245651481897325, +0.439065894425194,0.439065894425194,0.438928072441529,0.438354893665001,0.43752736369195,0.43659674271961,0.43568156739576,0.434901053255714,0.434412334808187,0.434412334808187, +0.697735491122462,0.697735491122462,0.697452400598088,0.69649369167794,0.695271575671846,0.69396000888725,0.692662258097526,0.691487516395367,0.690639851278208,0.690639851278208, + +00:12:11, +0.00419382729177576,0.00419382729177576,0.00420368246844133,0.00420148903721175,0.00419120619482372,0.00417708155634756,0.00416282780340355,0.0041514169585703,0.00414507365479884,0.00414507365479884, +0.00419382729177576,0.00419382729177576,0.00420368246844133,0.00420148903721175,0.00419120619482372,0.00417708155634756,0.00416282780340355,0.0041514169585703,0.00414507365479884,0.00414507365479884, +0.00947501902280107,0.00947501902280107,0.00949115761233695,0.00948407969175817,0.00946143234744284,0.00943146198544086,0.00940146665752342,0.00937744578385345,0.00936405793432954,0.00936405793432954, +0.0242951232947471,0.0242951232947471,0.0243228138916505,0.02430019263664,0.024243881115226,0.0241718977803071,0.0241003820390739,0.0240430100306656,0.0240108959859128,0.0240108959859128, +0.0581927447455829,0.0581927447455829,0.0582313558361581,0.0581689318254816,0.0580390348308849,0.057878157675342,0.0577192642638795,0.0575912599955226,0.0575190691520325,0.0575190691520325, +0.126638265273149,0.126638265273149,0.126670557163984,0.126521188447624,0.126251428937731,0.125927408970205,0.125608736579742,0.125349818327541,0.125201721550956,0.125201721550956, +0.248703820259526,0.248703820259526,0.248684493408173,0.248372789138551,0.247872352538636,0.247289627673444,0.246717550118644,0.246244968897559,0.245966850035628,0.245966850035628, +0.43937705937968,0.43937705937968,0.439239178571893,0.438666262757593,0.437839120473012,0.436908895890287,0.435994090706873,0.435213905571048,0.43472541321328,0.43472541321328, +0.697933531559985,0.697933531559985,0.697650604871372,0.696692537444027,0.695471228093693,0.694160497907471,0.692863561922646,0.691689569448521,0.690842461675331,0.690842461675331, + +00:12:12, +0.00421822186403769,0.00421822186403769,0.00422811737025815,0.00422591982985498,0.00421559957944635,0.00420141889366694,0.00418710607805372,0.0041756471359404,0.00416927704527069,0.00416927704527069, +0.00421822186403769,0.00421822186403769,0.00422811737025815,0.00422591982985498,0.00421559957944635,0.00420141889366694,0.00418710607805372,0.0041756471359404,0.00416927704527069,0.00416927704527069, +0.00951911162700765,0.00951911162700765,0.00953529616659781,0.00952820452497111,0.00950549697118615,0.0094754394069215,0.0094453525602216,0.00942125717815926,0.00940782786318537,0.00940782786318537, +0.0243832088571264,0.0243832088571264,0.024410942719544,0.0243882864538176,0.0243318739966511,0.0242597487675449,0.0241880843143629,0.0241305912331245,0.0240984099478145,0.0240984099478145, +0.0583520175776838,0.0583520175776838,0.0583906393188977,0.058328152968069,0.0581981189856601,0.0580370516768056,0.0578779576902873,0.0577497901692418,0.0576775092828057,0.0576775092828057, +0.126885027466154,0.126885027466154,0.126917261725139,0.126767828280578,0.126497955834001,0.126173771048458,0.125854918573524,0.125595854663968,0.125447680291652,0.125447680291652, +0.249018856477699,0.249018856477699,0.248999415278138,0.248687733493163,0.248187346392003,0.247604642499514,0.247032564569473,0.246559989538841,0.246281886851249,0.246281886851249, +0.439687724273359,0.439687724273359,0.439549784857369,0.438977131729915,0.438150376962584,0.43722054889537,0.436306114114208,0.435526258138057,0.435037991856302,0.435037991856302, +0.69813118447421,0.69813118447421,0.697848421289059,0.696890994116856,0.69567049005052,0.694360595234762,0.693064472938206,0.691891228603817,0.691044677266394,0.691044677266394, + +00:12:13, +0.00424270720016028,0.00424270720016028,0.00425264308900379,0.00425044144668825,0.00424008375109986,0.00422584694681874,0.00421147498366592,0.00419996787033972,0.00419357095030331,0.00419357095030331, +0.00424270720016028,0.00424270720016028,0.00425264308900379,0.00425044144668825,0.00424008375109986,0.00422584694681874,0.00421147498366592,0.00419996787033972,0.00419357095030331,0.00419357095030331, +0.00956331609927082,0.00956331609927082,0.00957954657894427,0.00957244122323669,0.00954967346782447,0.00951952869825994,0.00948935031801845,0.00946518040930672,0.009451709616923,0.009451709616923, +0.0244714193007024,0.0244714193007024,0.0244991963061028,0.0244765050584461,0.0244199918029104,0.0243477248682236,0.0242759118884208,0.0242182978770422,0.0241860494278355,0.0241860494278355, +0.0585113645887707,0.0585113645887707,0.0585499967736957,0.058487448189251,0.0583572775953931,0.0581960206710486,0.0580367266654806,0.0579083963352467,0.057836025647962,0.057836025647962, +0.127131700003165,0.127131700003165,0.127163876504913,0.127014378554188,0.126744393790413,0.126420045094907,0.126101013499495,0.125841804708316,0.125693553161152,0.125693553161152, +0.249333557726301,0.249333557726301,0.249314002310601,0.249002343207015,0.248502006153609,0.247919324137343,0.247347246838651,0.246874678801844,0.246596592703592,0.246596592703592, +0.439997890380671,0.439997890380671,0.439859892572102,0.439287501856617,0.43846113443403,0.43753170300488,0.436617638883793,0.435838112219766,0.435350071998991,0.435350071998991, +0.698328451120972,0.698328451120972,0.698045851108391,0.697089062957727,0.695869362807145,0.694560302136096,0.693264992412728,0.692092495131672,0.691246499323946,0.691246499323946, + +00:12:14, +0.00426728339670822,0.00426728339670822,0.00427725972094284,0.0042750539839799,0.00426465880630734,0.0042503658127346,0.00423593461760968,0.00422437925949065,0.00421795546781189,0.00421795546781189, +0.00426728339670822,0.00426728339670822,0.00427725972094284,0.0042750539839799,0.00426465880630734,0.0042503658127346,0.00423593461760968,0.00422437925949065,0.00421795546781189,0.00421795546781189, +0.00960763240120361,0.00960763240120361,0.00962390881071066,0.00961678974791587,0.0095939617990528,0.00956372982171562,0.00953345989381062,0.00950921544072399,0.00949570315926601,0.00949570315926601, +0.0245597543312032,0.0245597543312032,0.0245875743570942,0.024564848156353,0.0245082342400673,0.0244358257888767,0.0243638644683809,0.0243061296700862,0.0242738141339477,0.0242738141339477, +0.0586707852589072,0.0586707852589072,0.0587094276813825,0.0586468169698324,0.0585165101404033,0.0583550641378162,0.0581955706687621,0.058067077972565,0.0579946177263978,0.0579946177263978, +0.127378282512786,0.127378282512786,0.12741040113318,0.127260838897918,0.126990742434481,0.12666623073426,0.126347020979537,0.126087668080284,0.125939339777987,0.125939339777987, +0.249647924384385,0.249647924384385,0.249628254885241,0.249316618659064,0.248816332199437,0.248233672958187,0.247661597292375,0.247189037048776,0.246910967952782,0.246910967952782, +0.440307558971843,0.440307558971843,0.440169502986026,0.439597374408131,0.438771394156516,0.437842359484661,0.436928666277511,0.436149469075077,0.435661654898971,0.435661654898971, +0.698525332750455,0.698525332750455,0.698242895580949,0.697286745222261,0.696067847622696,0.694759619872757,0.693465121609047,0.692293370296815,0.691447929114845,0.691447929114845, + +00:12:15, +0.0042919505496252,0.0042919505496252,0.00430196736171895,0.00429975753737718,0.00428932484097076,0.00427497558772514,0.00426048507663388,0.0042488814004954,0.00424243069509173,0.00424243069509173, +0.0042919505496252,0.0042919505496252,0.00430196736171895,0.00429975753737718,0.00428932484097076,0.00427497558772514,0.00426048507663388,0.0042488814004954,0.00424243069509173,0.00424243069509173, +0.00965206049386552,0.00965206049386552,0.00966838282267922,0.00966125005981765,0.00963836192601294,0.0096080427389929,0.00957768124993779,0.0095533622352808,0.00953980845337882,0.00953980845337882, +0.0246482136545031,0.0246482136545031,0.0246760765784337,0.0246533154535147,0.024596601014332,0.0245240512361789,0.0244519417615129,0.0243940863200554,0.0243617037742522,0.0243617037742522, +0.058830279069884,0.058830279069884,0.0588689315245151,0.0588062587923451,0.0586758161027353,0.0585141815585745,0.0583544891811497,0.0582258345619346,0.0581532849987162,0.0581532849987162, +0.127624774626381,0.127624774626381,0.127656835242572,0.127507208943986,0.127237001396483,0.12691232759399,0.126592940638307,0.126333444402343,0.126185039763466,0.126185039763466, +0.249961956831626,0.249961956831626,0.249942173382357,0.249630560228893,0.249130324906106,0.248547689333957,0.247975616297522,0.247503064642546,0.24722501295965,0.24722501295965, +0.440616731312912,0.440616731312912,0.440478617364879,0.439906750650696,0.439081157395022,0.438152519596398,0.437239197553114,0.436460329958781,0.435972741809765,0.435972741809765, +0.698721830607226,0.698721830607226,0.698439555952687,0.697484042160435,0.696265945750646,0.694958549700373,0.693664861784344,0.69249385535832,0.691648967900283,0.691648967900283, + +00:12:16, +0.0043167087542343,0.0043167087542343,0.00432676610635517,0.00432455220190661,0.00431408195037123,0.00429967636748027,0.00428512645686708,0.00427347438983633,0.0042669967288186,0.0042669967288186, +0.0043167087542343,0.0043167087542343,0.00432676610635517,0.00432455220190661,0.00431408195037123,0.00429967636748027,0.00428512645686708,0.00427347438983633,0.0042669967288186,0.0042669967288186, +0.00969660033776538,0.00969660033776538,0.00971296857508307,0.00970582211920194,0.00968287380929648,0.009652467411244,0.00962201434818554,0.00959762075529135,0.00958402546186964,0.00958402546186964, +0.0247367969766269,0.0247367969766269,0.0247647026761899,0.0247419066560605,0.0246850918320645,0.0246124009169505,0.024540143475226,0.0244821675348844,0.024449718056983,0.024449718056983, +0.0589898455052165,0.0589898455052165,0.0590285077873748,0.0589657731410456,0.0588351949661566,0.0586733724165082,0.0585134816853734,0.0583846655858006,0.0583120269472252,0.0583120269472252, +0.127871175978063,0.127871175978063,0.127903178468458,0.127753488327351,0.12748317030944,0.127158335304324,0.126838772103214,0.126579133299722,0.126430652741654,0.126430652741654, +0.250275655448319,0.250275655448319,0.250255758182855,0.249944168296692,0.249443984650864,0.248861373637216,0.248289304221636,0.247816761946747,0.247538728085721,0.247538728085721, +0.440925408665736,0.440925408665736,0.440787236970219,0.440215631846368,0.439390425410362,0.438462184597634,0.437549233964235,0.436770696121571,0.43628333398081,0.43628333398081, +0.698917945930264,0.698917945930264,0.698635833463966,0.697680955016613,0.696463658438842,0.695157092868946,0.693864214190178,0.692693951569638,0.691849616935829,0.691849616935829, + +00:12:17, +0.00434155810523828,0.00434155810523828,0.00435165604925428,0.00434943807197432,0.00433893022916937,0.00432446824706954,0.00430985885381781,0.00429815832337621,0.00429165366504898,0.00429165366504898, +0.00434155810523828,0.00434155810523828,0.00435165604925428,0.00434943807197432,0.00433893022916937,0.00432446824706954,0.00430985885381781,0.00429815832337621,0.00429165366504898,0.00429165366504898, +0.00974125189286431,0.00974125189286431,0.00975766602760909,0.00975050588578248,0.00972749740894762,0.00969700379907189,0.00966645914978829,0.00964199096251723,0.00962835414679333,0.00962835414679333, +0.0248255040037535,0.0248255040037535,0.0248534523565881,0.0248306214702764,0.0247737063997794,0.0247008745381613,0.0246284693170736,0.0245703730226472,0.0245378566905115,0.0245378566905115, +0.0591494840501419,0.0591494840501419,0.0591881559559647,0.0591253595019119,0.0589946462161547,0.0588326361965178,0.0586725476658736,0.0585435705283129,0.0584708430559348,0.0584708430559348, +0.128117486204674,0.128117486204674,0.128149430448934,0.1279996766857,0.127729248809108,0.127404253498225,0.127084515004408,0.126824734400395,0.12667617833936,0.12667617833936, +0.250589020615358,0.250589020615358,0.250569009668236,0.250257443243251,0.249757311811566,0.249174726241157,0.248602661432919,0.248130129325643,0.247852113693202,0.247852113693202, +0.441233592288009,0.441233592288009,0.44109536305944,0.440524019253036,0.439699199459193,0.438771355741781,0.437858776760409,0.437080568810064,0.436593432657475,0.436593432657475, +0.699113679952995,0.699113679952995,0.698831729349584,0.697877485029577,0.696660986929544,0.695355250622888,0.694063180072518,0.692893660178629,0.692049877471452,0.692049877471452, + +00:12:18, +0.00436649869671993,0.00436649869671993,0.00437663728419915,0.00437441524136639,0.00436386977140567,0.00434935132094245,0.0043346823623749,0.00432293329635855,0.00431640159922041,0.00431640159922041, +0.00436649869671993,0.00436649869671993,0.00437663728419915,0.00437441524136639,0.00436386977140567,0.00434935132094245,0.0043346823623749,0.00432293329635855,0.00431640159922041,0.00431640159922041, +0.00978601511857855,0.00978601511857855,0.0098024751394008,0.00979530131872973,0.00977223268446616,0.00974165186253323,0.00971101561543216,0.00968647281817034,0.00967279446965431,0.00967279446965431, +0.0249143344422201,0.0249143344422201,0.0249423253260139,0.0249194596026096,0.0248624444241495,0.0247894718069346,0.0247169189947573,0.0246587024915611,0.02462611938335,0.02462611938335, +0.0593091941916169,0.0593091941916169,0.0593478755180068,0.0592850173626413,0.0591541693399349,0.0589919723852169,0.0588316866087979,0.0587025488753242,0.0586297328105549,0.0586297328105549, +0.128363704945776,0.128363704945776,0.128395590824807,0.128245773659432,0.127975236533958,0.127650081811377,0.127330168974768,0.127070247335062,0.126921616186127,0.126921616186127, +0.25090205271423,0.25090205271423,0.250881928220587,0.250570385449945,0.250070306766674,0.249487747519598,0.248915688300218,0.248443167144163,0.24816517014497,0.24816517014497, +0.441541283433279,0.441541283433279,0.441402996885785,0.440831914124442,0.440007480794039,0.43908003427814,0.438167827187084,0.437389949266809,0.436903039081071,0.436903039081071, +0.69930903390332,0.69930903390332,0.699027244838806,0.698073633432562,0.696857932459448,0.695553024201048,0.694261760671776,0.693092982427593,0.692249750751558,0.692249750751558, + +00:12:19, +0.00439153062214247,0.00439153062214247,0.00440170990435311,0.00439948380324923,0.00438890067050082,0.00437432568292882,0.00435959707680787,0.00434779940340796,0.00434124062615182,0.00434124062615182, +0.00439153062214247,0.00439153062214247,0.00440170990435311,0.00439948380324923,0.00438890067050082,0.00437432568292882,0.00435959707680787,0.00434779940340796,0.00434124062615182,0.00434124062615182, +0.00983088997378245,0.00983088997378245,0.00984739586906131,0.0098402083766738,0.00981707959481035,0.00978641156114122,0.00975568370525791,0.00973106628291569,0.00971734639140943,0.00971734639140943, +0.0250032879985261,0.0250032879985261,0.0250313212910177,0.0250084207596716,0.0249513056120098,0.024878192430551,0.0248054922161302,0.0247471556499913,0.024714505844156,0.024714505844156, +0.0594689754183149,0.0594689754183149,0.0595076659629394,0.0594447462126475,0.0593137638264172,0.05915138047093,0.0589908980019991,0.058861600114387,0.0587886956984926,0.0587886956984926, +0.128609831843632,0.128609831843632,0.12864165923958,0.128491778891642,0.128221133125164,0.127895819882176,0.127575733649885,0.127315671737142,0.127166965914212,0.127166965914212, +0.251214752127,0.251214752127,0.251194514222564,0.250882995298725,0.250382969895235,0.249800437846968,0.24922838519301,0.248755875767882,0.248477897804559,0.248477897804559, +0.441848483350966,0.441848483350966,0.441710139698366,0.441139317710191,0.440315270663297,0.439388221451913,0.438476386485635,0.437698838730305,0.437212154488869,0.437212154488869, +0.699504009003653,0.699504009003653,0.699222381155401,0.698269401453286,0.697054496259724,0.695750414836748,0.694459957222835,0.693291919553305,0.692449238015018,0.692449238015018, + +00:12:20, +0.00441665397434985,0.00441665397434985,0.00442687400226031,0.00442464385016995,0.00441402301925613,0.00439939142623915,0.00438460309076721,0.00437275673853048,0.00436617084004385,0.00436617084004385, +0.00441665397434985,0.00441665397434985,0.00442687400226031,0.00442464385016995,0.00441402301925613,0.00439939142623915,0.00438460309076721,0.00437275673853048,0.00436617084004385,0.00436617084004385, +0.00987587641681127,0.00987587641681127,0.00989242817465614,0.00988522701770728,0.00986203809839975,0.00983128285386849,0.00980046337886377,0.00977577131687438,0.00976200987247085,0.00976200987247085, +0.0250923643793367,0.0250923643793367,0.0251204399583184,0.0250975046482427,0.0250402896703612,0.0249670361164526,0.0248941886892017,0.0248357322064542,0.0248030157817362,0.0248030157817362, +0.0596288272206234,0.0596288272206234,0.0596675267819148,0.0596045455430582,0.059473429166234,0.0593108599436896,0.0591501813350323,0.0590207237347511,0.0589477312088496,0.0589477312088496, +0.128855866543194,0.128855866543194,0.128887635339441,0.128737692028111,0.128466938226591,0.128141467351709,0.127821208668046,0.12756100724275,0.127412227158574,0.127412227158574, +0.2515271192363,0.2515271192363,0.251506768057384,0.251195273172103,0.250695301576874,0.250112797598293,0.249540752481393,0.249068255563011,0.248790297036149,0.248790297036149, +0.442155193286369,0.442155193286369,0.442016792742176,0.44144623125577,0.440622570311261,0.439695918504219,0.438784455893384,0.438007238435016,0.437520780114115,0.437520780114115, +0.699698606470945,0.699698606470945,0.699417139517669,0.698464790313978,0.697250679556047,0.695947423757811,0.694657770955085,0.693490472787041,0.692648340495202,0.692648340495202, + +00:12:21, +0.00444186884556718,0.00444186884556718,0.00445212966984612,0.00444989547405675,0.00443923690985385,0.004424548643465,0.00440970049728479,0.00439780539511392,0.00439119233447919,0.00439119233447919, +0.00444186884556718,0.00444186884556718,0.00445212966984612,0.00444989547405675,0.00443923690985385,0.004424548643465,0.00440970049728479,0.00439780539511392,0.00439119233447919,0.00439119233447919, +0.00992097440546412,0.00992097440546412,0.00993757201371616,0.00993035719938816,0.00990710815311818,0.00987626569915001,0.00984535459530836,0.00982058787962641,0.00980678487270892,0.00980678487270892, +0.0251815632914874,0.0251815632914874,0.0252096810348068,0.0251867109752754,0.0251293963063745,0.0250560025722464,0.0249830081221406,0.0249244318696217,0.02489164890505,0.02489164890505, +0.0597887490906412,0.0597887490906412,0.0598274574677959,0.059764414846712,0.0596331648517272,0.0594704102952337,0.0593095360991523,0.0591799192273615,0.0591068388324201,0.0591068388324201, +0.129101808692089,0.129101808692089,0.129133518773245,0.128983512717288,0.128712651484776,0.128387023863746,0.128066593670224,0.12780625349069,0.127657399556859,0.127657399556859, +0.251839154425318,0.251839154425318,0.251818690108812,0.251507219453144,0.251007302191783,0.250424827149187,0.249852790536074,0.249380306896387,0.249102368204552,0.249102368204552, +0.442461414480691,0.442461414480691,0.442322957258106,0.441752656002562,0.44092938097813,0.440003126672111,0.439092036643612,0.438315149611385,0.437828917186044,0.437828917186044, +0.69989282751672,0.69989282751672,0.699611521138473,0.698659801231417,0.697446483568625,0.696144052186595,0.694855203092453,0.693688643354613,0.69284705942001,0.69284705942001, + +00:12:22, +0.00446717532740111,0.00446717532740111,0.00447747699841752,0.00447523876621931,0.00446454243385765,0.00444979742657939,0.00443488938877423,0.00442294546592824,0.00441630520242299,0.00441630520242299, +0.00446717532740111,0.00446717532740111,0.00447747699841752,0.00447523876621931,0.00446454243385765,0.00444979742657939,0.00443488938877423,0.00442294546592824,0.00441630520242299,0.00441630520242299, +0.00996618389700683,0.00996618389700683,0.00998282734324041,0.00997559887874271,0.00995228971631655,0.00992136005488596,0.00989035731311353,0.00986551593021356,0.00985167135145504,0.00985167135145504, +0.025270884441987,0.025270884441987,0.0252990442275501,0.0252760394478985,0.0252186252273942,0.0251450915057086,0.0250719502232797,0.0250132543483247,0.0249804049232138,0.0249804049232138, +0.0599487405221758,0.0599487405221758,0.059987457515154,0.0599243536181557,0.0597929703769455,0.0596300310190028,0.0594689617873113,0.0593391860848552,0.0592660180616876,0.0592660180616876, +0.129347657940605,0.129347657940605,0.129379309192499,0.129229240610277,0.128958272548918,0.12863248906472,0.128311888300061,0.128051410122441,0.12790248274939,0.12790248274939, +0.252150858077785,0.252150858077785,0.252130280761149,0.251818834525449,0.251318972120705,0.250736526875837,0.250164499728354,0.249692030135459,0.249414111675202,0.249414111675202, +0.442767148171048,0.442767148171048,0.44262863448296,0.442058593187862,0.44123570390003,0.440309847188588,0.439399129965572,0.438622573485851,0.438136566929893,0.438136566929893, +0.700086673347104,0.700086673347104,0.699805527225269,0.698854435416955,0.697641909512231,0.696340301340023,0.695052254853429,0.693886432476398,0.693045396011901,0.693045396011901, + +00:12:23, +0.00449257351084023,0.00449257351084023,0.00450291607866351,0.00450067381734923,0.00448993968221294,0.00447513786693716,0.0044601698570313,0.00444817704312592,0.00444150953622318,0.00444150953622318, +0.00449257351084023,0.00449257351084023,0.00450291607866351,0.00450067381734923,0.00448993968221294,0.00447513786693716,0.0044601698570313,0.00444817704312592,0.00444150953622318,0.00444150953622318, +0.0100115048481748,0.0100115048481748,0.010028194119699,0.0100209520122683,0.0099975827448157,0.00996656587844456,0.00993547149026726,0.00991055542714226,0.00989666926750451,0.00989666926750451, +0.0253603275380222,0.0253603275380222,0.025388529243795,0.0253654897734208,0.0253079761409425,0.0252343026247882,0.0251610147011188,0.0251021993515574,0.025069283545505,0.025069283545505, +0.0601088010107407,0.0601088010107407,0.060147526420266,0.060084361353642,0.0599528452376417,0.0597897216101377,0.0596284578941558,0.0594985238015593,0.0594252683908232,0.0594252683908232, +0.129593413941673,0.129593413941673,0.129625006251355,0.129474875360824,0.12920380107086,0.128877862603718,0.128557092203856,0.128296476782135,0.128147476379146,0.128147476379146, +0.252462230577966,0.252462230577966,0.252441540399223,0.25213011877315,0.251630311744927,0.251047897154997,0.250475880430122,0.250003425648278,0.249725527814142,0.249725527814142, +0.443072395590486,0.443072395590486,0.44293382564947,0.442364044044892,0.441541540309023,0.440616081282613,0.439705737084508,0.438929511280859,0.43844373056692,0.43844373056692, +0.700280145162855,0.700280145162855,0.699999158980141,0.699048694076555,0.697836958596238,0.696536172429613,0.695248927451105,0.694083841367371,0.693243351487925,0.693243351487925, + +00:12:24, +0.00451806348625548,0.00451806348625548,0.00452844700065554,0.00452620071752042,0.00451542874524735,0.00450057005527542,0.00448554199323428,0.00447350021824238,0.00446680542761088,0.00446680542761088, +0.00451806348625548,0.00451806348625548,0.00452844700065554,0.00452620071752042,0.00451542874524735,0.00450057005527542,0.00448554199323428,0.00447350021824238,0.00446680542761088,0.00446680542761088, +0.0100569372151758,0.0100569372151758,0.010073672299036,0.0100664165559363,0.0100429871949093,0.0100118831266649,0.00998069708422646,0.00995570632838644,0.00994177857911937,0.00994177857911937, +0.0254498922869606,0.0254498922869606,0.025478135790972,0.0254550616593347,0.0253974487547223,0.0253236356376106,0.0252502012643293,0.0251912665884807,0.025158284481365,0.025158284481365, +0.0602689300535526,0.0602689300535526,0.0603076636811112,0.0602444375511262,0.0601127889312699,0.0599494815654763,0.0597880239160243,0.0596579318734878,0.059584589315682,0.059584589315682, +0.12983907635086,0.12983907635086,0.129870609606586,0.129720416625303,0.129449236705079,0.129123144132464,0.128802205030548,0.128541453116552,0.128392380091754,0.128392380091754, +0.252773272310645,0.252773272310645,0.252752469408375,0.252441072580896,0.251941321446268,0.251358938363968,0.250786933013837,0.250314493803483,0.250036616988015,0.250036616988015, +0.443377157967997,0.443377157967997,0.443238531986312,0.442669009802816,0.441846891433127,0.440921830179125,0.440011859221666,0.43923596421488,0.438750409314413,0.438750409314413, +0.700473244159395,0.700473244159395,0.700192417599825,0.699242578410813,0.698031632024644,0.696731666661508,0.695445222093198,0.694280871237133,0.693440927059754,0.693440927059754, + +00:12:25, +0.00454364534340058,0.00454364534340058,0.00455406985384794,0.00455181955618957,0.00454100971267114,0.00452609408171395,0.00451100588794441,0.00449891508219632,0.00449219296770079,0.00449219296770079, +0.00454364534340058,0.00454364534340058,0.00455406985384794,0.00455181955618957,0.00454100971267114,0.00452609408171395,0.00451100588794441,0.00449891508219632,0.00449219296770079,0.00449219296770079, +0.0101024809536929,0.0101024809536929,0.0101192618366721,0.010111992465195,0.0100885030223668,0.01005731175586,0.0100260340519199,0.0100009685913904,0.00998699924403127,0.00998699924403127, +0.0255395783963549,0.0255395783963549,0.0255678635766986,0.02554475481332,0.0254870427766219,0.0254130902524816,0.0253395096217574,0.0252804557684263,0.0252474074404038,0.0252474074404038, +0.0604291271495283,0.0604291271495283,0.0604678687973691,0.0604045817102635,0.0602728009569828,0.0601093103835515,0.0599476593509447,0.059817409798339,0.0597439803338014,0.0597439803338014, +0.130084644826349,0.130084644826349,0.130116118917581,0.129965864062697,0.129694579108671,0.129368333305304,0.129047226431705,0.128786338775103,0.128637193535473,0.128637193535473, +0.253083983661117,0.253083983661117,0.25306306817445,0.25275169633384,0.252252001607064,0.251669650880597,0.251097657852521,0.250625234970292,0.250347379564048,0.250347379564048, +0.443681436528535,0.443681436528535,0.44354275471812,0.442973491686755,0.442151758496329,0.441227095099057,0.440317497594311,0.439541933502422,0.439056604385711,0.439056604385711, +0.70066597152684,0.70066597152684,0.700385304275745,0.699436089614998,0.698225930996104,0.69692678523651,0.695641139982086,0.694477523289942,0.693638123933711,0.693638123933711, + +00:12:26, +0.00456931917141246,0.00456931917141246,0.00457978472707837,0.00457753042219656,0.00456668267357764,0.00455171003575565,0.0045365616311063,0.00452442172529022,0.00451767224699162,0.00451767224699162, +0.00456931917141246,0.00456931917141246,0.00457978472707837,0.00457753042219656,0.00456668267357764,0.00455171003575565,0.0045365616311063,0.00452442172529022,0.00451767224699162,0.00451767224699162, +0.0101481360188875,0.0101481360188875,0.0101649626875077,0.0101576796949721,0.0101341301824359,0.0101028517218194,0.0100714823497509,0.0100463421730714,0.0100323312194443,0.0100323312194443, +0.0256293855739465,0.0256293855739465,0.0256577123087834,0.0256345689432475,0.0255767579147178,0.025502666177891,0.025428939482428,0.0253697666008999,0.0253366521324035,0.0253366521324035, +0.0605893917992827,0.0605893917992827,0.060628141270416,0.0605647933324065,0.0604328808156288,0.0602692075645875,0.0601073636986309,0.0599769570754934,0.0599034409443978,0.0599034409443978, +0.130330119028927,0.130330119028927,0.130361533846325,0.130211217334593,0.129939827941333,0.129613429779196,0.12929215606151,0.129031133409813,0.128881916361179,0.128881916361179, +0.253394365015176,0.253394365015176,0.253373337083783,0.25306199041763,0.252562352610162,0.251980035083258,0.251408055319748,0.250935649518489,0.250657815910044,0.250657815910044, +0.443985232493027,0.443985232493027,0.443846495065504,0.443277490917805,0.4424561427186,0.44153187725935,0.440622653415744,0.439847420354048,0.439362316990213,0.439362316990213, +0.700858328450028,0.700858328450028,0.70057782019404,0.699629228879075,0.698419856703964,0.697121529350107,0.695836682314835,0.694673798724743,0.6938349433108,0.6938349433108, + +00:12:27, +0.00459508505881173,0.00459508505881173,0.00460559170856823,0.00460333340376494,0.00459244771644372,0.00457741800628696,0.00456220931204835,0.00455002023721066,0.00454324335536645,0.00454324335536645, +0.00459508505881173,0.00459508505881173,0.00460559170856823,0.00460333340376494,0.00459244771644372,0.00457741800628696,0.00456220931204835,0.00455002023721066,0.00454324335536645,0.00454324335536645, +0.0101939023654017,0.0101939023654017,0.0102107748059257,0.0102034781996781,0.010179868629846,0.0101485029798119,0.0101170419336003,0.0100918270298232,0.0100777744620377,0.0100777744620377, +0.0257193135276691,0.0257193135276691,0.0257476816952293,0.0257245037571826,0.025666593877279,0.0255923631225162,0.0255184905555483,0.0254591987955858,0.0254260182673218,0.0254260182673218, +0.060749723505125,0.060749723505125,0.0607884806033228,0.0607250719206019,0.0605930280097491,0.060429172610498,0.0602671364604811,0.0601365732060104,0.0600629706483642,0.0600629706483642, +0.130575498621974,0.130575498621974,0.130606854057388,0.13045647610516,0.130184982865355,0.129858433213694,0.129536993576743,0.129275836675312,0.129126548222354,0.129126548222354, +0.253704416759104,0.253704416759104,0.253683276523192,0.253371955218397,0.252872374838904,0.252290091350841,0.251718125789628,0.251245737818414,0.25096792639437,0.25096792639437, +0.444288547078394,0.444288547078394,0.444149754245059,0.443581008713047,0.44276004531591,0.441836177872965,0.44092732789531,0.440152425976385,0.439667548333395,0.439667548333395, +0.701050316108553,0.701050316108553,0.700769966535595,0.699821997387737,0.698613410336286,0.697315900192502,0.696031850283227,0.6948696987352,0.69403138638674,0.69403138638674, + +00:12:28, +0.0046209430935031,0.0046209430935031,0.0046314908859232,0.00462922858850236,0.0046183049291302,0.00460321808157833,0.00458794901948321,0.00457571070702885,0.00456890638209321,0.00456890638209321, +0.0046209430935031,0.0046209430935031,0.0046314908859232,0.00462922858850236,0.0046183049291302,0.00460321808157833,0.00458794901948321,0.00457571070702885,0.00456890638209321,0.00456890638209321, +0.0102397799473615,0.0102397799473615,0.0102566981457942,0.0102493879332087,0.0102257183188104,0.0101942654845889,0.0101627127588294,0.0101374231175178,0.0101233289279691,0.0101233289279691, +0.0258093619656522,0.0258093619656522,0.0258377714442374,0.0258145589633891,0.0257565503727701,0.0256821807952258,0.0256081625505116,0.0255487520623495,0.0255155055552957,0.0255155055552957, +0.0609101217710567,0.0609101217710567,0.0609488863008515,0.060885416979588,0.0607532420435753,0.0605892050248828,0.0604269771395743,0.0602962576926257,0.0602225689482677,0.0602225689482677, +0.130820783271442,0.130820783271442,0.13085207921791,0.13070164004114,0.130430043545602,0.130103343270933,0.129781738636774,0.129520448228818,0.129371088775068,0.129371088775068, +0.254014139279657,0.254014139279657,0.253992886879963,0.253681591122745,0.253182068677121,0.252599820062747,0.252027869636801,0.251555500240949,0.251277711385945,0.251277711385945, +0.44459138149756,0.44459138149756,0.444452533469389,0.443884046285568,0.443063467500244,0.442139998148903,0.441231522238419,0.440456951572145,0.439972299616824,0.439972299616824, +0.701241935676789,0.701241935676789,0.700961744476068,0.700014396320438,0.69880659307588,0.697509898948645,0.696226645073797,0.695065224509722,0.694227454351986,0.694227454351986, + +00:12:29, +0.0046468933627759,0.0046468933627759,0.00465748234613366,0.00465521606340112,0.00464425439888241,0.00462911034928468,0.00461378084150823,0.00460149322320102,0.00459466141582513,0.00459466141582513, +0.0046468933627759,0.0046468933627759,0.00465748234613366,0.00465521606340112,0.00464425439888241,0.00462911034928468,0.00461378084150823,0.00460149322320102,0.00459466141582513,0.00459466141582513, +0.0102857687183796,0.0102857687183796,0.0103027326604694,0.0102954088489478,0.0102716792030295,0.0102401391903868,0.0102084947802825,0.0101831303915092,0.0101689945728765,0.0101689945728765, +0.0258995305962249,0.0258995305962249,0.0259279812642106,0.0259047342703325,0.0258466271098553,0.0257721189050835,0.0256979551769009,0.0256384261112422,0.0256051137066455,0.0256051137066455, +0.0610705861027681,0.0610705861027681,0.0611093578694526,0.0610458280157916,0.0609135224230259,0.0607493043130251,0.0605868852406676,0.0604560100397491,0.0603822353483464,0.0603822353483464, +0.13106597264585,0.13106597264585,0.131097208997591,0.130946708811832,0.130675009649505,0.130348159615617,0.130026390903545,0.129764967730127,0.129615537677972,0.129615537677972, +0.254323532964061,0.254323532964061,0.254302168541842,0.253990898517741,0.253491434509117,0.252909221598871,0.252337287236424,0.251864937157512,0.25158717125423,0.25158717125423, +0.444893736959473,0.444893736959473,0.444754833947114,0.444186604844469,0.443366410479616,0.442443339292214,0.441535237646558,0.440760998340134,0.440276572038172,0.440276572038172, +0.701433188323924,0.701433188323924,0.701153155185925,0.700206426851417,0.698999406100332,0.697703526798265,0.696421067867852,0.695260377231493,0.694423148391769,0.694423148391769, + +00:12:30, +0.00467293595330449,0.00467293595330449,0.00468356617557517,0.00468129591483859,0.00467029621233059,0.00465509489644589,0.00463970486560592,0.00462736787356887,0.00462050854460114,0.00462050854460114, +0.00467293595330449,0.00467293595330449,0.00468356617557517,0.00468129591483859,0.00467029621233059,0.00465509489644589,0.00463970486560592,0.00462736787356887,0.00462050854460114,0.00462050854460114, +0.010331868631558,0.010331868631558,0.0103488783027983,0.0103415408997704,0.0103177512356936,0.0102861240509298,0.0102543879522897,0.0102289488066358,0.0102147713518821,0.0102147713518821, +0.0259898191279192,0.0259898191279192,0.0260183108637568,0.0259950293866836,0.0259368237974016,0.0258621771613511,0.0257878681444923,0.0257282206525039,0.0256948424318781,0.0256948424318781, +0.0612311160076359,0.0612311160076359,0.0612698948172625,0.0612063045373251,0.0610738686557037,0.0609094699818888,0.0607468602701938,0.0606158297534609,0.060541969354507,0.060541969354507, +0.131311066416264,0.131311066416264,0.131342243068669,0.131191682089081,0.13091988084704,0.130592881915007,0.130270950041555,0.130009394841594,0.129859894592276,0.129859894592276, +0.254632598199995,0.254632598199995,0.254611121897025,0.254299877790901,0.253800472719664,0.253218296339595,0.25264637896416,0.25217404894004,0.251896306369215,0.251896306369215, +0.445195614669115,0.445195614669115,0.445056656882888,0.444488685594887,0.443668875458083,0.442746202504018,0.441838475317304,0.441064567475272,0.440580366791232,0.440580366791232, +0.701624075213987,0.701624075213987,0.701344199830465,0.700398090149732,0.699191850582038,0.697896784915892,0.696615119841512,0.695455158078507,0.694618469686116,0.694618469686116, + +00:12:31, +0.00469907095114883,0.00469907095114883,0.00470974246000904,0.00470746822857773,0.00469643045549043,0.00468117180948727,0.00466572117864444,0.00465333474536008,0.00464644785584636,0.00464644785584636, +0.00469907095114883,0.00469907095114883,0.00470974246000904,0.00470746822857773,0.00469643045549043,0.00468117180948727,0.00466572117864444,0.00465333474536008,0.00464644785584636,0.00464644785584636, +0.0103780796394912,0.0103780796394912,0.0103951350251219,0.0103877840380449,0.0103639343694855,0.0103322200194328,0.0103003922286702,0.0102748783172232,0.0102606592195944,0.0102606592195944, +0.0260802272694738,0.0260802272694738,0.0261087599516927,0.0260854440213221,0.0260271401444823,0.0259523552734926,0.0258779011632588,0.0258181353965672,0.0257846914416905,0.0257846914416905, +0.0613917109947201,0.0613917109947201,0.0614304966540999,0.0613668460539837,0.0612342802508932,0.0610697015401153,0.0609069017362583,0.0607757163415098,0.0607017704743217,0.0607017704743217, +0.131556064256286,0.131556064256286,0.131587181105917,0.13143655954726,0.131164656810721,0.130837509838901,0.130515415717852,0.130253729228125,0.130104159181743,0.130104159181743, +0.254941335375583,0.254941335375583,0.254919747334144,0.254608529330183,0.254109183693986,0.253527044665773,0.252955145196167,0.252482835960985,0.252205117101412,0.252205117101412, +0.445497015827518,0.445497015827518,0.445358003477416,0.444790289738006,0.443970863635763,0.443048588981514,0.442141236444342,0.441367660168602,0.44088368506593,0.44088368506593, +0.701814597505878,0.701814597505878,0.701534879569849,0.700589387379285,0.699383927688227,0.698089674470893,0.696808802165729,0.695649568223589,0.694813419409884,0.694813419409884, + +00:12:32, +0.00472529844175492,0.00472529844175492,0.00473601128458274,0.0047337330897676,0.00472265721376358,0.00470734117422005,0.00469182986687806,0.00467939392518877,0.00467247943637257,0.00467247943637257, +0.00472529844175492,0.00472529844175492,0.00473601128458274,0.0047337330897676,0.00472265721376358,0.00470734117422005,0.00469182986687806,0.00467939392518877,0.00467247943637257,0.00467247943637257, +0.0104244016942683,0.0104244016942683,0.0104415027792773,0.0104341382156367,0.0104102285565834,0.0103784270486045,0.0103465075627343,0.0103209188770871,0.010306658130111,0.010306658130111, +0.0261707547298374,0.0261707547298374,0.0261993282370473,0.0261759778833399,0.026117575860381,0.0260426529511774,0.0259680539433735,0.0259081700540608,0.0258746604469737,0.0258746604469737, +0.0615523705747608,0.0615523705747608,0.0615911628914634,0.0615274520772424,0.0613947567195571,0.0612299984980213,0.0610670091486364,0.06093566931331,0.060861638217026,0.060861638217026, +0.131800965842042,0.131800965842042,0.13183202278662,0.13168134086326,0.131409337215584,0.13108204305963,0.130759787602014,0.130497970557159,0.130348331112672,0.130348331112672, +0.255249744879383,0.255249744879383,0.25522804524226,0.254916853523975,0.254417567817751,0.253835466958727,0.253263586309087,0.252791298593295,0.252513603821839,0.252513603821839, +0.445797941631782,0.445797941631782,0.445658874927465,0.445091418471072,0.444272376208847,0.443350499917997,0.442443522217478,0.441670277607305,0.441186528048341,0.441186528048341, +0.702004756353397,0.702004756353397,0.701725195559131,0.700780319698856,0.699575638580995,0.698282196627497,0.69700211600632,0.695843608834429,0.695007998732791,0.695007998732791, + +00:12:33, +0.00475161850995535,0.00475161850995535,0.00476237273383048,0.00476009058294391,0.00474897657193814,0.00473360307584192,0.00471803101594771,0.00470554549905595,0.00469860337237872,0.00469860337237872, +0.00475161850995535,0.00475161850995535,0.00476237273383048,0.00476009058294391,0.00474897657193814,0.00473360307584192,0.00471803101594771,0.00470554549905595,0.00469860337237872,0.00469860337237872, +0.0104708347474768,0.0104708347474768,0.0104879815166012,0.0104806033839103,0.0104566337486639,0.0104247450906497,0.0103927339072871,0.010367070439536,0.0103527680370219,0.0103527680370219, +0.0262614012181721,0.0262614012181721,0.026290015429065,0.0262666306820448,0.0262081306545942,0.0261330699042838,0.0260583261952136,0.025998324335813,0.0259647491588159,0.0259647491588159, +0.061713094260176,0.061713094260176,0.0617518930425286,0.0616881221202531,0.0615552975743337,0.0613903603675949,0.0612271820187701,0.0610956881799382,0.0610215720935154,0.0610215720935154, +0.132045770852163,0.132045770852163,0.132076767790569,0.131926025716478,0.131653921739174,0.131326481252034,0.131004065366138,0.130742118498658,0.130592410053885,0.130592410053885, +0.255557827100378,0.255557827100378,0.255536016010851,0.255224850761084,0.254725625477061,0.254143563600229,0.253571702680038,0.253099437210411,0.252821766902014,0.252821766902014, +0.446098393275085,0.446098393275085,0.445959272425882,0.445392072987409,0.444573414369611,0.443651936502874,0.442745333822651,0.44197242097472,0.441488896920702,0.441488896920702, +0.702194552905271,0.702194552905271,0.701915148948285,0.700970888262128,0.69976698441733,0.698474352544827,0.697195062523999,0.696037281073608,0.695202208819438,0.695202208819438, + +00:12:34, +0.00477803123996979,0.00477803123996979,0.00478882689167375,0.00478654079202949,0.0047753886141892,0.00475995759893753,0.0047443247108814,0.00473178955235009,0.00472481974945137,0.00472481974945137, +0.00477803123996979,0.00477803123996979,0.00478882689167375,0.00478654079202949,0.0047753886141892,0.00475995759893753,0.0047443247108814,0.00473178955235009,0.00472481974945137,0.00472481974945137, +0.0105173787502043,0.0105173787502043,0.0105345711879324,0.0105271794937325,0.0105031498969044,0.0104711740972722,0.0104390712146304,0.010413332957374,0.0103989888934118,0.0103989888934118, +0.026352166443857,0.026352166443857,0.0263808212372092,0.0263574021269634,0.0262988042368355,0.0262236058429023,0.0261487176293632,0.0260885979528548,0.0260549572885059,0.0260549572885059, +0.0618738815650578,0.0618738815650578,0.0619126866221447,0.0618488556978413,0.0617159023295341,0.0615507866624937,0.0613874198597658,0.0612557724541307,0.0611815716163427,0.0611815716163427, +0.132290478967778,0.132290478967778,0.132321415800043,0.132170613788797,0.13189841006153,0.131570824093459,0.131248248684827,0.130986172725092,0.130836395676714,0.130836395676714, +0.255865582427962,0.255865582427962,0.255843660029801,0.255532521430729,0.255033357058441,0.254451334972496,0.253879494686599,0.253407252186251,0.253129606713941,0.253129606713941, +0.446398371946701,0.446398371946701,0.446259197161606,0.445692254476433,0.44487397930644,0.443952899921674,0.443046672441951,0.442274091450349,0.441790792861428,0.441790792861428, +0.702383988305184,0.702383988305184,0.702104740882235,0.701161094217715,0.699957966349144,0.698666143376926,0.697387642874399,0.696230586098628,0.695396050829342,0.695396050829342, + +00:12:35, +0.00480453671540556,0.00480453671540556,0.0048153738414218,0.00481308380033489,0.0048018934240794,0.00478640482747899,0.00477071103609485,0.00475812616984757,0.00475112865256523,0.00475112865256523, +0.00480453671540556,0.00480453671540556,0.0048153738414218,0.00481308380033489,0.0048018934240794,0.00478640482747899,0.00477071103609485,0.00475812616984757,0.00475112865256523,0.00475112865256523, +0.0105640336530422,0.0105640336530422,0.0105812717436143,0.010573866495475,0.0105497769519861,0.0105177140196779,0.0104855194365663,0.0104597063829037,0.0104453206518629,0.0104453206518629, +0.0264430501164914,0.0264430501164914,0.0264717453711657,0.0264482919278451,0.0263895963170385,0.0263142604773393,0.0262392279566172,0.0261789906164241,0.0261452845475371,0.0261452845475371, +0.0620347320051699,0.0620347320051699,0.0620735431468316,0.0620096523265036,0.0618765705011388,0.0617112768980412,0.0615477221863911,0.0614159216502808,0.0613416362997153,0.0613416362997153, +0.132535089872497,0.132535089872497,0.132565966499795,0.13241510476458,0.132142801865173,0.131815071263735,0.131492337235177,0.131230132911425,0.131080287654986,0.131080287654986, +0.256173011251936,0.256173011251936,0.256150977689393,0.255839865922524,0.255340762948829,0.254758781458178,0.254186962706805,0.253714743895204,0.253437123630102,0.253437123630102, +0.446697878832014,0.446697878832014,0.446558650319686,0.445991964123667,0.445174072203832,0.444253391356068,0.443347539253632,0.442575290209881,0.442092217045122,0.442092217045122, +0.702573063691805,0.702573063691805,0.702293972500881,0.701350938709194,0.700148585523297,0.698857570272785,0.697579858208105,0.696423525061942,0.695589525916964,0.695589525916964, + +00:12:36, +0.00483113501925813,0.00483113501925813,0.00484201366577223,0.00483971969055888,0.00482849108455943,0.00481294484482648,0.00479719007539191,0.00478455543571322,0.00477753016608367,0.00477753016608367, +0.00483113501925813,0.00483113501925813,0.00484201366577223,0.00483971969055888,0.00482849108455943,0.00481294484482648,0.00479719007539191,0.00478455543571322,0.00477753016608367,0.00477753016608367, +0.010610799406088,0.010610799406088,0.0106280831334981,0.010620664339017,0.0105965148640969,0.0105643648085772,0.0105320785243991,0.0105061906679287,0.0104917632644581,0.0104917632644581, +0.0265340519458984,0.0265340519458984,0.0265627875408462,0.0265392997946649,0.0264805066053603,0.0264050335181203,0.0263298568879845,0.0262695020379686,0.0262357306476102,0.0262357306476102, +0.0621956450979447,0.0621956450979447,0.0622344621347772,0.0621705115244043,0.0620373016067948,0.061871830591224,0.0617080885150718,0.0615761352844362,0.0615017656594925,0.0615017656594925, +0.132779603252398,0.132779603252398,0.132810419577045,0.132659498330652,0.132387096835094,0.132059222445168,0.131736330696759,0.131473998735105,0.131324085665014,0.131324085665014, +0.256480113962491,0.256480113962491,0.256457969380294,0.256146884626476,0.255647843535563,0.255065903440346,0.254494107119131,0.254021912712116,0.253744318023445,0.253744318023445, +0.446996915112532,0.446996915112532,0.446857633081291,0.446291203110755,0.445473694242419,0.44455341198388,0.443647935432124,0.442876018425197,0.442393170642595,0.442393170642595, +0.702761780198814,0.702761780198814,0.70248284493913,0.701540422875131,0.700338843081632,0.699048634376374,0.697771709670681,0.696616099110976,0.695782635231737,0.695782635231737, + +00:12:37, +0.0048578262339117,0.0048578262339117,0.00486874644681156,0.00486644854478905,0.00485518167796862,0.00483957773372872,0.0048237619119652,0.00481107743350087,0.00480402437375924,0.00480402437375924, +0.0048578262339117,0.0048578262339117,0.00486874644681156,0.00486644854478905,0.00485518167796862,0.00483957773372872,0.0048237619119652,0.00481107743350087,0.00480402437375924,0.00480402437375924, +0.0106576759589479,0.0106576759589479,0.0106750053069453,0.0106675729737485,0.0106433635829339,0.0106111264141879,0.0105787484289388,0.0105527857637566,0.010538316682783,0.010538316682783, +0.0266251716421279,0.0266251716421279,0.026653947456391,0.026630425437627,0.0265715348121848,0.0264959246759932,0.0264206041346916,0.0263601319291489,0.026326295300637,0.026326295300637, +0.0623566203624798,0.0623566203624798,0.0623954431058341,0.0623314328113726,0.062198095165813,0.062032447260689,0.0618685183638891,0.0617364128742952,0.061661959213182,0.061661959213182, +0.133024018796016,0.133024018796016,0.133054774721459,0.13290379417629,0.132631294658738,0.132303277322525,0.131980228751615,0.131717769876047,0.131567789385579,0.131567789385579, +0.256786890950202,0.256786890950202,0.256764635493551,0.256453577932971,0.255954599206378,0.255372701302485,0.254800928302487,0.25432875901228,0.254051190267374,0.254051190267374, +0.447295481965901,0.447295481965901,0.447156146623729,0.446589972615477,0.445772846598978,0.444852962979103,0.44394786214805,0.443176277264391,0.442693654820874,0.442693654820874, +0.702950138954934,0.702950138954934,0.702671359326921,0.701729547849107,0.700528740160996,0.699239336826667,0.697963198402696,0.696808309388165,0.695975379918094,0.695975379918094, + +00:12:38, +0.00488461044113978,0.00488461044113978,0.00489557226601576,0.00489327044450238,0.00488196528603551,0.00486630357632358,0.00485042662839656,0.00483769224615384,0.0048306113587342,0.0048306113587342, +0.00488461044113978,0.00488461044113978,0.00489557226601576,0.00489327044450238,0.00488196528603551,0.00486630357632358,0.00485042662839656,0.00483769224615384,0.0048306113587342,0.0048306113587342, +0.0107046632607401,0.0107046632607401,0.0107220382128307,0.0107145923485724,0.0106903230577062,0.0106579987862381,0.0106255291005037,0.0105994916212016,0.0105849808579295,0.0105849808579295, +0.0267164089154602,0.0267164089154602,0.026745224828173,0.0267216685671679,0.0266626806481258,0.0265869336619317,0.0265114694081853,0.0264508800018427,0.0264169782187437,0.0264169782187437, +0.0625176573195354,0.0625176573195354,0.0625564855815167,0.0624924157088992,0.0623589506991646,0.0621931264267402,0.0620290112525769,0.0618967539392047,0.0618222164799379,0.0618222164799379, +0.133268336194326,0.133268336194326,0.13329903162514,0.133147991993206,0.132875395025993,0.132547235583022,0.132224031084236,0.131961446016622,0.131811398497921,0.131811398497921, +0.257093342606019,0.257093342606019,0.257070976420576,0.256759946232763,0.256261030349388,0.255679175428483,0.255107426636204,0.254635283171431,0.254357740735741,0.254357740735741, +0.447593580565923,0.447593580565923,0.44745419212046,0.446888273811765,0.44607153044645,0.445152045511909,0.44424732056824,0.44347606789178,0.442993670743221,0.442993670743221, +0.703138141083955,0.703138141083955,0.702859516789256,0.701918314759752,0.700718277893271,0.699429678757671,0.698154325539754,0.697000157030975,0.696167761115493,0.696167761115493, + +00:12:39, +0.00491148772210572,0.00491148772210572,0.00492249120425086,0.00492018547056577,0.00490884198987839,0.00489312245413865,0.00487718430665769,0.00486439995600555,0.0048572912035411,0.0048572912035411, +0.00491148772210572,0.00491148772210572,0.00492249120425086,0.00492018547056577,0.00490884198987839,0.00489312245413865,0.00487718430665769,0.00486439995600555,0.0048572912035411,0.0048572912035411, +0.010751761260097,0.010751761260097,0.0107691817995447,0.0107617224119077,0.0107373932371378,0.0107049818739687,0.0106724204889226,0.0106463081905874,0.0106317557404978,0.0106317557404978, +0.0268077634764089,0.0268077634764089,0.0268366193668006,0.0268130288939598,0.0267539438240308,0.0266780601871384,0.0266024524201369,0.0265417459681472,0.0265077791142742,0.0265077791142742, +0.0626787554915313,0.0626787554915313,0.0627175890849981,0.0626534597401337,0.0625198677294784,0.0623538676113358,0.0621895667025182,0.062057158000157,0.0619825369805571,0.0619825369805571, +0.133512555140733,0.133512555140733,0.133543189982616,0.133392091475538,0.133119397629176,0.132791096916308,0.132467737381554,0.132205026841643,0.132054912685722,0.132054912685722, +0.257399469321254,0.257399469321254,0.257376992553138,0.257065989916967,0.256567137353082,0.255985326202619,0.255413602500026,0.254941485565727,0.254663969802831,0.254663969802831, +0.447891212082564,0.447891212082564,0.44775177074111,0.447186107869714,0.446369746953949,0.445450660748672,0.444546311855743,0.44377539146792,0.443293219569142,0.443293219569142, +0.703325787704764,0.703325787704764,0.703047318446222,0.702106724730764,0.700907457405403,0.699619661298455,0.698345092212523,0.697191643171932,0.696359779958447,0.696359779958447, + +00:12:40, +0.00493845815736331,0.00493845815736331,0.00494950334177354,0.00494719370323672,0.00493581187000595,0.00492003444809177,0.00490403502811069,0.00489120064478004,0.00488406399010327,0.00488406399010327, +0.00493845815736331,0.00493845815736331,0.00494950334177354,0.00494719370323672,0.00493581187000595,0.00492003444809177,0.00490403502811069,0.00489120064478004,0.00488406399010327,0.00488406399010327, +0.0107989699051684,0.0107989699051684,0.0108164360149966,0.0108089631116921,0.0107845740694702,0.0107520756261361,0.0107194225435383,0.0106932354217497,0.0106786412805997,0.0106786412805997, +0.0268992350357246,0.0268992350357246,0.0269281307831206,0.0269045061289136,0.0268453240509834,0.0267693039630483,0.0266935528824446,0.0266327295403831,0.0265986976997934,0.0265986976997934, +0.0628399144025434,0.0628399144025434,0.0628787531411067,0.0628145644298813,0.0626808457810376,0.0625146703380851,0.062350184236743,0.0622176245797865,0.0621429202374768,0.0621429202374768, +0.13375667533106,0.13375667533106,0.133787249490825,0.133636092319835,0.13336330216302,0.133034861014455,0.132711347332927,0.132448512038355,0.132298331635097,0.132298331635097, +0.257705271487573,0.257705271487573,0.257682684283357,0.257371709377046,0.256872920606312,0.256291154009556,0.255719456274099,0.255247366571747,0.254969877843358,0.254969877843358, +0.448188377681975,0.448188377681975,0.448048883651486,0.447483475955599,0.44666749728678,0.445748809851972,0.444844837169844,0.444074249149618,0.443592302454408,0.443592302454408, +0.703513079931367,0.703513079931367,0.703234765413027,0.702294778880945,0.701096279819427,0.699809285573176,0.698535499546758,0.697382768938649,0.696551437576555,0.696551437576555, + +00:12:41, +0.00496552182685739,0.00496552182685739,0.0049766087582317,0.00497429522216383,0.00496287500631782,0.0049470396384917,0.0049309788735086,0.00491809439359256,0.00491092979973545,0.00491092979973545, +0.00496552182685739,0.00496552182685739,0.0049766087582317,0.00497429522216383,0.00496287500631782,0.0049470396384917,0.0049309788735086,0.00491809439359256,0.00491092979973545,0.00491092979973545, +0.0108462891436239,0.0108462891436239,0.0108638008066168,0.0108563143953845,0.010831865502465,0.0107992799910153,0.0107665352132098,0.0107402732640392,0.0107256374278609,0.0107256374278609, +0.0269908233043977,0.0269908233043977,0.0270197587882221,0.0269960999831823,0.0269368210403073,0.0268606647013317,0.0267847705072374,0.0267238304310972,0.0266897336880903,0.0266897336880903, +0.0630011335783009,0.0630011335783009,0.0630399772763237,0.0629757293045995,0.0628418843797768,0.0626755341322455,0.0625108633799243,0.0623781532023675,0.0623033657747712,0.0623033657747712, +0.13400069646353,0.13400069646353,0.1340312098491,0.133879994225042,0.133607108324661,0.133278527571944,0.132954860630126,0.132691901296416,0.132541655034579,0.132541655034579, +0.258010749496986,0.258010749496986,0.257988052003686,0.257677105004807,0.257178380498281,0.256596659234329,0.256024988338965,0.255552926566479,0.25527546523245,0.25527546523245, +0.448485078526503,0.448485078526503,0.448345532013589,0.447780379231891,0.446964782606452,0.446046493980617,0.445142897666074,0.444372642089949,0.443890920551059,0.443890920551059, +0.703700018872926,0.703700018872926,0.703421858800018,0.702482478324221,0.701284746252494,0.699998552701105,0.698725548663331,0.697573535453856,0.69674273509452,0.69674273509452, + +00:12:42, +0.00499267880992444,0.00499267880992444,0.0050038075326651,0.0050014901063875,0.0049900314781052,0.00497413810503863,0.00495801592299608,0.00494508128295014,0.00493788871314432,0.00493788871314432, +0.00499267880992444,0.00499267880992444,0.0050038075326651,0.0050014901063875,0.0049900314781052,0.00497413810503863,0.00495801592299608,0.00494508128295014,0.00493788871314432,0.00493788871314432, +0.0108937189226556,0.0108937189226556,0.0109112761213599,0.0109037762099682,0.0108792674834072,0.0108465949164023,0.0108137584463153,0.010787421666324,0.010772744131424,0.010772744131424, +0.0270825279936617,0.0270825279936617,0.027111503093439,0.027087810168164,0.0270284345035689,0.0269521421138976,0.0268761050068777,0.0268150483530663,0.0267808867921814,0.0267808867921814, +0.0631624125461835,0.0631624125461835,0.0632012610187796,0.0631369538923954,0.0630029830532789,0.0628364585207195,0.062671603658376,0.0625387433938104,0.0624638731181489,0.0624638731181489, +0.134244618238757,0.134244618238757,0.134275070759161,0.134123796892493,0.133850815813626,0.133522096285652,0.133198276967324,0.13293519430789,0.132784882575105,0.132784882575105, +0.25831590374184,0.25831590374184,0.258293096106911,0.257982177192385,0.257483517418539,0.256901842262337,0.256330199075544,0.255858165927305,0.255580732345641,0.255580732345641, +0.448781315774705,0.448781315774705,0.44864171698563,0.448076818857267,0.447261604070692,0.446343714289652,0.445440494496228,0.444670571438265,0.444189075007426,0.444189075007426, +0.703886605633776,0.703886605633776,0.703608599712715,0.702669824169675,0.701472857816902,0.700187463796657,0.698915240678258,0.697763943835422,0.696933673632185,0.696933673632185, + +00:12:43, +0.00501992918529319,0.00501992918529319,0.00503109974350596,0.00502877843434047,0.00501728136405149,0.00500132992682487,0.00498514625610992,0.00497216139275217,0.00496494081042912,0.00496494081042912, +0.00501992918529319,0.00501992918529319,0.00503109974350596,0.00502877843434047,0.00501728136405149,0.00500132992682487,0.00498514625610992,0.00497216139275217,0.00496494081042912,0.00496494081042912, +0.0109412591889813,0.0109412591889813,0.0109588619057073,0.0109513485019533,0.0109267799591071,0.0108940203496169,0.0108610921907548,0.0108346805769926,0.0108199613399511,0.0108199613399511, +0.0271743488149963,0.0271743488149963,0.0272033634103534,0.0271796363955051,0.0271201641525806,0.0270437359128969,0.0269675560939652,0.0269063830192998,0.0268721567253139,0.0268721567253139, +0.0633237508352175,0.0633237508352175,0.0633626038982509,0.0632982377230221,0.0631641413307718,0.0629974430320516,0.0628324046000495,0.0626993946816593,0.0626244417949498,0.0626244417949498, +0.134488440359734,0.134488440359734,0.134518831925099,0.134367500025892,0.134094424331819,0.133765566854839,0.133441596041082,0.133178390767233,0.133028013950007,0.133028013950007, +0.258620734614803,0.258620734614803,0.258597816986135,0.258286926332238,0.257788331756969,0.257206703479332,0.256635088865134,0.256163085032001,0.255885679558864,0.255885679558864, +0.449077090581364,0.449077090581364,0.448937439722044,0.448372795986627,0.447557962833459,0.446640471930377,0.445737628808376,0.444968038340216,0.444486766968143,0.444486766968143, +0.704072841313458,0.704072841313458,0.703794989251831,0.702856817521568,0.701660615620117,0.700376019969416,0.699104576702724,0.697953995196386,0.697124254304555,0.697124254304555, + +00:12:44, +0.00504727303108524,0.00504727303108524,0.00505848546857959,0.00505616028384853,0.00504462474223288,0.00502861518233539,0.00501236995177969,0.00499933480229104,0.00499208617108222,0.00499208617108222, +0.00504727303108524,0.00504727303108524,0.00505848546857959,0.00505616028384853,0.00504462474223288,0.00502861518233539,0.00501236995177969,0.00499933480229104,0.00499208617108222,0.00499208617108222, +0.0109889098888466,0.0109889098888466,0.0110065581056697,0.0109990312173792,0.0109744028759036,0.0109415562375053,0.0109085363939527,0.0108820499439566,0.0108672890016263,0.0108672890016263, +0.0272662854801306,0.0272662854801306,0.0272953394507987,0.0272715783771031,0.027212009699404,0.0271354458107253,0.0270591234813391,0.0269978341430431,0.0269635432009687,0.0269635432009687, +0.0634851479760735,0.0634851479760735,0.0635240054461576,0.0634595803278759,0.0633253587431254,0.063158487196425,0.0629932657345304,0.0628601065950887,0.0627850713341421,0.0627850713341421, +0.134732162531816,0.134732162531816,0.134762493053363,0.134611103331302,0.134337933583508,0.134008938981137,0.133684817550334,0.133421490371278,0.133271048854994,0.133271048854994, +0.258925242508864,0.258925242508864,0.258902215034772,0.258591352817136,0.25809282390378,0.257511243271412,0.256939658089395,0.256467684258717,0.256190307248438,0.256190307248438, +0.449372404097502,0.449372404097502,0.449232701373504,0.448668311771108,0.447853860044961,0.446936768050359,0.44603430174688,0.445265043937754,0.444783997574156,0.444783997574156, +0.704258727006741,0.704258727006741,0.703981028513308,0.703043459479373,0.701848020764806,0.70056422232416,0.699293557843113,0.698143690644983,0.697314478221824,0.697314478221824, + +00:12:45, +0.0050747104248157,0.0050747104248157,0.00508596478510505,0.00508363573213109,0.00507206169011902,0.00505599394944852,0.00503968708832835,0.00502660159025269,0.00501932487398973,0.00501932487398973, +0.0050747104248157,0.0050747104248157,0.00508596478510505,0.00508363573213109,0.00507206169011902,0.00505599394944852,0.00503968708832835,0.00502660159025269,0.00501932487398973,0.00501932487398973, +0.0110366709680279,0.0110366709680279,0.0110543646667902,0.0110468243018179,0.0110221361796667,0.0109892025264433,0.0109560910028608,0.010929529714653,0.010914727064159,0.010914727064159, +0.0273583377010461,0.0273583377010461,0.0273874309268626,0.0273636358251102,0.0273039708563527,0.0272272715200265,0.0271508068820823,0.0270894014377809,0.0270550459328638,0.0270550459328638, +0.0636466035010627,0.0636466035010627,0.0636854651955594,0.063620981239993,0.0634866348228487,0.0633195905456589,0.0631541865930359,0.0630208786649006,0.0629457612663192,0.0629457612663192, +0.134975784462713,0.134975784462713,0.135006053852749,0.134854606517134,0.134581343275313,0.134252212368533,0.13392794119638,0.133664492819222,0.133513986988146,0.133513986988146, +0.259229427817314,0.259229427817314,0.259206290646535,0.258895457040152,0.258396994249495,0.25781546202501,0.257243907130341,0.256771963985978,0.256494615791057,0.256494615791057, +0.449667257470395,0.449667257470395,0.449527503086935,0.448963367358098,0.448149296851663,0.447232603793443,0.446330514452403,0.445561589369157,0.445080767962743,0.445080767962743, +0.704444263803653,0.704444263803653,0.704166718588332,0.703229751137794,0.702035074348859,0.700752071960892,0.699482185201032,0.698333031284668,0.697504346489404,0.697504346489404, + +00:12:46, +0.00510224144339383,0.00510224144339383,0.00511353776969577,0.00511120485580187,0.00509959228457367,0.00508346630543655,0.00506709774347289,0.0050539618347173,0.00504665699743213,0.00504665699743213, +0.00510224144339383,0.00510224144339383,0.00511353776969577,0.00511120485580187,0.00509959228457367,0.00508346630543655,0.00506709774347289,0.0050539618347173,0.00504665699743213,0.00504665699743213, +0.011084542371835,0.011084542371835,0.0111022815341466,0.011094727700376,0.0110699798158002,0.0110369591623381,0.0110037559639606,0.0109771198360474,0.0109622754747859,0.0109622754747859, +0.0274505051899798,0.0274505051899798,0.0274796375508901,0.0274558084519359,0.0273960473359956,0.0273192127536953,0.0272426060095234,0.0271810846172399,0.0271466646349571,0.0271466646349571, +0.0638081169441341,0.0638081169441341,0.0638469826811526,0.0637824399940464,0.0636479691040861,0.0634807526132049,0.0633151667084114,0.0631817104235214,0.0631065111236968,0.0631065111236968, +0.135219305862471,0.135219305862471,0.135249514034387,0.135098009294134,0.134824653116194,0.134495386723362,0.134170966682866,0.133907397812619,0.133756828049895,0.133756828049895, +0.259533290933745,0.259533290933745,0.259510044215432,0.259199239394654,0.258700843184945,0.258119360126882,0.257547836370333,0.257075924592664,0.256798605563787,0.256798605563787, +0.449961651843586,0.449961651843586,0.449821846005528,0.449257963891249,0.44844427439631,0.447527980299774,0.446626268061928,0.445857675769034,0.445377079267524,0.445377079267524, +0.704629452789505,0.704629452789505,0.704352060563371,0.703415693586797,0.702221777465417,0.700939569974864,0.699670459873336,0.698522018214145,0.697693860207949,0.697693860207949, + +00:12:47, +0.00512986616312367,0.00512986616312367,0.0051412044983602,0.00513886773086954,0.00512721660185529,0.00511103232696637,0.00509460199432495,0.00508141561315985,0.00507408261908486,0.00507408261908486, +0.00512986616312367,0.00512986616312367,0.0051412044983602,0.00513886773086954,0.00512721660185529,0.00511103232696637,0.00509460199432495,0.00508141561315985,0.00507408261908486,0.00507408261908486, +0.0111325240451141,0.0111325240451141,0.0111503086523543,0.011142741357698,0.0111179337292442,0.0110848260906318,0.0110515312232664,0.0110248202546365,0.0110099341802739,0.0110099341802739, +0.0275427876594271,0.0275427876594271,0.0275719590354864,0.02754809597025,0.02748823885116,0.0274112692248804,0.0273345205772405,0.0272728833953922,0.0272383990214497,0.0272383990214497, +0.0639696878408711,0.0639696878408711,0.0640085574392675,0.0639439561263425,0.0638093611226147,0.0636419729341444,0.0634762056151275,0.0633426014049991,0.06326732044011,0.06326732044011, +0.135462726443465,0.135462726443465,0.135492873311726,0.135341311375369,0.135067862817437,0.134738461754289,0.134413893715779,0.13415020505536,0.133999571743015,0.133999571743015, +0.259836832252037,0.259836832252037,0.259813476135751,0.259502700274293,0.259004371101259,0.258422937964103,0.257851446192067,0.25737956645801,0.257102276944051,0.257102276944051, +0.450255588356898,0.450255588356898,0.450115731268754,0.449552102510493,0.44873879381793,0.447822898705802,0.446921563708767,0.446153304268343,0.445672932618473,0.445672932618473, +0.704814295044914,0.704814295044914,0.704537055520191,0.703601287911636,0.702408131202897,0.701126717456602,0.699858382952158,0.698710652527391,0.69788302047338,0.69788302047338, + +00:12:48, +0.00515758465970473,0.00515758465970473,0.0051689650465025,0.00516662443273838,0.0051549347176178,0.00513869209010016,0.00512219991739148,0.00510896300245079,0.00510160181601898,0.00510160181601898, +0.00515758465970473,0.00515758465970473,0.0051689650465025,0.00516662443273838,0.0051549347176178,0.00513869209010016,0.00512219991739148,0.00510896300245079,0.00510160181601898,0.00510160181601898, +0.0111806159322499,0.0111806159322499,0.0111984459655689,0.0111908652179686,0.0111659978644783,0.0111328032563037,0.0110994167263275,0.0110726309164505,0.011057703126923,0.011057703126923, +0.0276351848221449,0.0276351848221449,0.0276643950935203,0.0276404980929857,0.0275805451149339,0.0275034406469877,0.0274265502990641,0.0273647974864581,0.0273302488067888,0.0273302488067888, +0.0641313157284882,0.0641313157284882,0.0641701890078645,0.0641055291748183,0.0639708104158409,0.0638032510451848,0.0636373028492772,0.0635035511449997,0.06342818875101,0.06342818875101, +0.135706045920381,0.135706045920381,0.135736131400525,0.135584512476214,0.135310972092643,0.134981437172301,0.134656722003428,0.134392914253665,0.134242217772612,0.134242217772612, +0.260140052166348,0.260140052166348,0.260116586802054,0.259805840072997,0.259307578389854,0.258726195924056,0.258154736978565,0.257682889961589,0.257405630309619,0.257405630309619, +0.450549068146453,0.450549068146453,0.450409160012378,0.449845784352055,0.449032856251858,0.448117360144301,0.447216402522578,0.446448475994406,0.445968329141936,0.445968329141936, +0.704998791645837,0.704998791645837,0.704721704535889,0.703786535192876,0.702594136645022,0.701313515491932,0.700045955524932,0.698898935313683,0.698071828376914,0.698071828376914, + +00:12:49, +0.00518539700823266,0.00518539700823266,0.00519681948892321,0.00519447503620901,0.00518274670691117,0.00516644567029601,0.00514989158857537,0.00513660407885671,0.00512921466470183,0.00512921466470183, +0.00518539700823266,0.00518539700823266,0.00519681948892321,0.00519447503620901,0.00518274670691117,0.00516644567029601,0.00514989158857537,0.00513660407885671,0.00512921466470183,0.00512921466470183, +0.0112288179771688,0.0112288179771688,0.0112466934174889,0.0112390992249154,0.0112141721655237,0.011180890603873,0.0111474124182315,0.0111205517670562,0.0111055822605689,0.0111055822605689, +0.0277276963911544,0.0277276963911544,0.0277569454381265,0.0277330145333426,0.02767296584067,0.0275957267336833,0.0275186948890796,0.0274568266049094,0.0274222137056708,0.0274222137056708, +0.0642930001458282,0.0642930001458282,0.064331876926531,0.0642671586790375,0.0641323165227972,0.063964586484657,0.063798457948572,0.0636645591808046,0.0635891155934611,0.0635891155934611, +0.13594926401021,0.13594926401021,0.135979288018839,0.135827612314342,0.135553980657713,0.135224312690691,0.134899451256435,0.134635525116071,0.134484765846106,0.134484765846106, +0.260442951071107,0.260442951071107,0.260419376609169,0.260108659184963,0.259610465442426,0.259029134394421,0.258457709113168,0.25798589548331,0.257708666038606,0.257708666038606, +0.45084209234468,0.45084209234468,0.450702133368475,0.450139010548466,0.449326462829745,0.44841136574438,0.447510785629378,0.446743192070918,0.446263269960643,0.446263269960643, +0.705182943663586,0.705182943663586,0.704906008682913,0.703971436506422,0.70277979487084,0.70149996516201,0.70023317867442,0.699086867657626,0.698260285005089,0.698260285005089, + +00:12:50, +0.00521330328319988,0.00521330328319988,0.00522476789981992,0.00522241961547898,0.00521065264418215,0.00519429314240864,0.00517767708317616,0.00516433891804095,0.00515692124099762,0.00515692124099762, +0.00521330328319988,0.00521330328319988,0.00522476789981992,0.00522241961547898,0.00521065264418215,0.00519429314240864,0.00517767708317616,0.00516433891804095,0.00515692124099762,0.00515692124099762, +0.0112771301233412,0.0112771301233412,0.0112950509513584,0.0112874433218115,0.0112624565759461,0.0112290880774015,0.0111955182436063,0.0111685827515593,0.0111535715265852,0.0111535715265852, +0.0278203220797443,0.0278203220797443,0.027849609782709,0.0278256450047893,0.0277655007419875,0.0276881271988958,0.027610954061631,0.0275489704654719,0.0275142934330442,0.0275142934330442, +0.0644547406333588,0.0644547406333588,0.0644936207364787,0.064428844180188,0.0642938789841389,0.0641259787925117,0.0639596704523398,0.0638256250513073,0.0637501005061377,0.0637501005061377, +0.13619238043223,0.13619238043223,0.136222342887005,0.136070610609711,0.135796888230838,0.135467088025048,0.135142081187722,0.134878037353417,0.134727215673225,0.134727215673225, +0.260745529361007,0.260745529361007,0.260721845952179,0.260411158004643,0.259913032650943,0.259331753763168,0.258760362979525,0.258288583403404,0.258011384509455,0.258011384509455, +0.451134662080331,0.451134662080331,0.450994652465441,0.450431782228581,0.44961961467957,0.4487049166315,0.447804714151555,0.447037453617962,0.446557756193717,0.446557756193717, +0.705366752164864,0.705366752164864,0.705089969029093,0.704155992923543,0.702965106954757,0.701686067543342,0.700420053478737,0.699274450639173,0.698448391439787,0.698448391439787, + +00:12:51, +0.00524130355849632,0.00524130355849632,0.00525281035278798,0.00525045824414354,0.00523865260327495,0.00522223458069004,0.00520555647589068,0.00519216759506429,0.00518472162016815,0.00518472162016815, +0.00524130355849632,0.00524130355849632,0.00525281035278798,0.00525045824414354,0.00523865260327495,0.00522223458069004,0.00520555647589068,0.00519216759506429,0.00518472162016815,0.00518472162016815, +0.0113255523137844,0.0113255523137844,0.0113435185099695,0.0113358974514785,0.0113108510388582,0.0112773956204962,0.011243734146623,0.0112167238146074,0.0112016708698868,0.0112016708698868, +0.0279130616014734,0.0279130616014734,0.0279423878409437,0.0279183892210667,0.0278581495327759,0.0277806417568202,0.0277033275313232,0.0276412287831291,0.0276064877041128,0.0276064877041128, +0.0646165367331691,0.0646165367331691,0.0646554199805398,0.0645905852210783,0.0644554973421412,0.0642874275103166,0.0641209399015209,0.0639867482970104,0.0639111430293211,0.0639111430293211, +0.136435394907995,0.136435394907995,0.136465295727634,0.136313507084548,0.136039694532486,0.135709762893244,0.1353846115125,0.135120450678832,0.134969566965987,0.134969566965987, +0.261047787430993,0.261047787430993,0.261023995226415,0.260713336926742,0.260215280407633,0.259634054418548,0.259062698961586,0.258590954102415,0.258313786100932,0.258313786100932, +0.451426778478498,0.451426778478498,0.451286718428007,0.450724100517585,0.449912312925659,0.448998013927485,0.448098189207882,0.447331261752027,0.446851788956693,0.446851788956693, +0.705550218211783,0.705550218211783,0.705273586637664,0.704340205510898,0.703150073966558,0.701871823707812,0.700606581011376,0.699461685333656,0.698636148758264,0.698636148758264, + +00:12:52, +0.00526939790741011,0.00526939790741011,0.00528094692082119,0.00527859099519634,0.00526674665743193,0.00525027005879021,0.00523352984081372,0.00522009018438563,0.00521261587687346,0.00521261587687346, +0.00526939790741011,0.00526939790741011,0.00528094692082119,0.00527859099519634,0.00526674665743193,0.00525027005879021,0.00523352984081372,0.00522009018438563,0.00521261587687346,0.00521261587687346, +0.0113740844910651,0.0113740844910651,0.0113920960356654,0.0113844615562888,0.0113593554969229,0.0113258131763121,0.0112920600709988,0.0112649749003921,0.0112498802349318,0.0112498802349318, +0.0280059146701736,0.0280059146701736,0.0280352793267815,0.0280112468961905,0.0279509119271974,0.0278732701219199,0.0277958150130253,0.0277336012731241,0.0276987962343383,0.0276987962343383, +0.0647783879889666,0.0647783879889666,0.0648172742031637,0.0647523813461342,0.0646171711406955,0.0644489321812529,0.0642822658386651,0.0641479284600223,0.0640722427048968,0.0640722427048968, +0.136678307161325,0.136678307161325,0.136708146265592,0.136556301463343,0.13628239928539,0.13595233701542,0.135627041948253,0.135362764807725,0.135211819438693,0.135211819438693, +0.261349725676253,0.261349725676253,0.261325824827448,0.261015196346205,0.260517209104981,0.259936036749085,0.25936471744359,0.258893007961196,0.258615871192116,0.258615871192116, +0.451718442660621,0.451718442660621,0.451578332377256,0.451015966537016,0.450204558688694,0.449290658750536,0.448391211913534,0.447624617586012,0.447145369361529,0.447145369361529, +0.70573334286189,0.70573334286189,0.70545686256729,0.704524075330562,0.703334696971433,0.702057234722709,0.700792762341236,0.699648572811808,0.698823558033171,0.698823558033171, + +00:12:53, +0.00529758640262824,0.00529758640262824,0.0053091776763125,0.00530681794103008,0.00529493487929431,0.00527839964975781,0.00526159725143877,0.00524810675986266,0.00524060408517249,0.00524060408517249, +0.00529758640262824,0.00529758640262824,0.0053091776763125,0.00530681794103008,0.00529493487929431,0.00527839964975781,0.00526159725143877,0.00524810675986266,0.00524060408517249,0.00524060408517249, +0.0114227265973021,0.0114227265973021,0.0114407834703426,0.0114331355781683,0.011407969892355,0.0113743406875546,0.0113404959599993,0.0113133359526524,0.0112981995657247,0.0112981995657247, +0.0280988809999527,0.0280988809999527,0.0281282839544509,0.028104217744454,0.0280437876396896,0.02796601200893,0.0278884162218731,0.0278260876509634,0.0277912187394431,0.0277912187394431, +0.0649402939460742,0.0649402939460742,0.0649791829504143,0.0649142321013955,0.0647788999253066,0.0646104923501121,0.0644436478079289,0.0643091650840543,0.0642333990763505,0.0642333990763505, +0.136921116918292,0.136921116918292,0.136950894227994,0.136798993472831,0.136525002214534,0.136194810113977,0.13586937221473,0.135604979457771,0.135453972807909,0.135453972807909, +0.261651344492213,0.261651344492213,0.261627335151078,0.261316736658209,0.260818819135714,0.260237701143564,0.259666418810061,0.259194745360895,0.258917640162392,0.258917640162392, +0.452009655744506,0.452009655744506,0.451869495430632,0.451307381404772,0.450496353085731,0.449582852215244,0.448683783380093,0.447917522229249,0.44743849851662,0.44743849851662, +0.705916127168199,0.705916127168199,0.70563979787209,0.704707603440048,0.703518977030003,0.70224230165075,0.700978598532642,0.69983511413979,0.69901062033258,0.69901062033258, + +00:12:54, +0.00532586911623732,0.00532586911623732,0.00533750269105475,0.00533513915343732,0.0053232173409029,0.00530662342604092,0.00528975878065868,0.00527621739475256,0.00526868631852381,0.00526868631852381, +0.00532586911623732,0.00532586911623732,0.00533750269105475,0.00533513915343732,0.0053232173409029,0.00530662342604092,0.00528975878065868,0.00527621739475256,0.00526868631852381,0.00526868631852381, +0.0114714785741689,0.0114714785741689,0.0114895807554536,0.0114819194585991,0.0114566941669246,0.0114229780964823,0.0113890417564413,0.0113618069146765,0.0113466288058187,0.0113466288058187, +0.0281919603051972,0.0281919603051972,0.0282214014384608,0.0281973014804313,0.0281367763849688,0.02805886713286,0.0279811308732724,0.0279186876324194,0.0278837549354139,0.0278837549354139, +0.0651022541514263,0.0651022541514263,0.065141145769966,0.0650761370345129,0.0649406832430889,0.0647721075632929,0.0646050853550716,0.064470457714417,0.0643946116887659,0.0643946116887659, +0.137163823907207,0.137163823907207,0.137193539344189,0.137041582841982,0.136767503047142,0.13643718191356,0.136111602033929,0.1358470943489,0.13569602679246,0.13569602679246, +0.261952644274527,0.261952644274527,0.261928526593328,0.261617958258155,0.261120110892796,0.260539047991028,0.259967803445795,0.259496166682947,0.259219093391439,0.259219093391439, +0.452300418844338,0.452300418844338,0.452160208701958,0.451598346235128,0.450787697230208,0.449874595432606,0.448975904715573,0.44820997678751,0.447731177526808,0.447731177526808, +0.706098572179204,0.706098572179204,0.705822393601663,0.704890790892337,0.703702915198345,0.702427025550105,0.701164090645376,0.700021310379212,0.699197336720012,0.699197336720012, + +00:12:55, +0.00535424611972429,0.00535424611972429,0.0053659220362414,0.00536355470361112,0.00535159411369882,0.00533494145948772,0.00531801450076641,0.0053044221617127,0.00529686264978627,0.00529686264978627, +0.00535424611972429,0.00535424611972429,0.0053659220362414,0.00536355470361112,0.00535159411369882,0.00533494145948772,0.00531801450076641,0.0053044221617127,0.00529686264978627,0.00529686264978627, +0.0115203403628963,0.0115203403628963,0.0115384878320097,0.0115308131386221,0.0115055282619594,0.0114717253449096,0.0114376974026953,0.0114103877293051,0.0113951678983184,0.0113951678983184, +0.0282851523005754,0.0282851523005754,0.0283146314936033,0.0282904978189795,0.0282298778780322,0.0281518352089967,0.0280739586829015,0.0280114009335329,0.0279764045385035,0.0279764045385035, +0.0652642681535661,0.0652642681535661,0.0653031622111012,0.0652380956947446,0.0651025206427636,0.0649337773687981,0.0647665780274527,0.0646318058980177,0.0645558800888209,0.0645558800888209, +0.13740642785861,0.13740642785861,0.137436081345749,0.137284069301992,0.137009901512667,0.13667945214105,0.136353731130089,0.136089109203283,0.135937981113413,0.135937981113413, +0.262253625419066,0.262253625419066,0.262229399550434,0.261918861541662,0.261421084769419,0.260840077680763,0.260268871735852,0.259797272309069,0.259520231259223,0.259520231259223, +0.452590733070692,0.452590733070692,0.452450473301448,0.451888862138747,0.451078592231965,0.450165889510035,0.449267577024421,0.448501982363023,0.448023407493399,0.448023407493399, +0.706280678938916,0.706280678938916,0.706004650801116,0.705073638735898,0.703886512528016,0.702611407474421,0.701349239734698,0.700207162587165,0.699383708254458,0.699383708254458, + +00:12:56, +0.00538271748397715,0.00538271748397715,0.00539443578246724,0.00539206466214585,0.00538006526852422,0.00536335382134725,0.00534636448345568,0.00533272113280136,0.00532513315121974,0.00532513315121974, +0.00538271748397715,0.00538271748397715,0.00539443578246724,0.00539206466214585,0.00538006526852422,0.00536335382134725,0.00534636448345568,0.00533272113280136,0.00532513315121974,0.00532513315121974, +0.0115693119042751,0.0115693119042751,0.0115875046405837,0.0115798165588394,0.0115544721183475,0.0115205823742091,0.0114864628406881,0.0114590783389336,0.0114438167858825,0.0114438167858825, +0.0283784567010394,0.0283784567010394,0.0284079738349567,0.0283838064752419,0.0283230918341612,0.0282449159529068,0.028166899366714,0.0281042272706167,0.0280691672652346,0.0280691672652346, +0.0654263355026421,0.0654263355026421,0.0654652318247061,0.0654001076329529,0.0652644116746551,0.0650955013162308,0.0649281253740286,0.064793209183357,0.0647172038247851,0.0647172038247851, +0.137648928505255,0.137648928505255,0.137678519966455,0.137526452586264,0.137252197342778,0.136921620525548,0.136595759229674,0.13633102374532,0.136179835494068,0.136179835494068, +0.262554288321913,0.262554288321913,0.262529954418837,0.262219446904555,0.261721741158995,0.261140790602295,0.260569624065552,0.260098062621247,0.259821054145992,0.259821054145992, +0.452880599530551,0.452880599530551,0.45274029033572,0.452178930222699,0.451369039197252,0.450456735551377,0.44955880140754,0.448793540054483,0.448315189514176,0.448315189514176, +0.706462448486877,0.706462448486877,0.70618657051108,0.705256148014717,0.704069770066078,0.702795448472851,0.701534046851369,0.700392671816239,0.699569735990404,0.699569735990404, + +00:12:57, +0.00541128327928568,0.00541128327928568,0.00542304399972917,0.00542066909903789,0.00540863087562307,0.0053918605822701,0.00537480879982177,0.00536111437947843,0.0053534978944858,0.0053534978944858, +0.00541128327928568,0.00541128327928568,0.00542304399972917,0.00542066909903789,0.00540863087562307,0.0053918605822701,0.00537480879982177,0.00536111437947843,0.0053534978944858,0.0053534978944858, +0.0116183931386586,0.0116183931386586,0.0116366311213119,0.0116289296594173,0.0116035256765396,0.0115695491253147,0.0115353380119057,0.0115078786855148,0.0114925754107261,0.0114925754107261, +0.0284718732218286,0.0284718732218286,0.0285014281778876,0.0284772271646504,0.0284164179689236,0.0283381090804397,0.0282599526409417,0.0281971663602575,0.0281620428324018,0.0281620428324018, +0.0655884557504044,0.0655884557504044,0.065627354163268,0.065562172401601,0.065426355890688,0.0652572789567916,0.0650897269453488,0.0649546671205253,0.0648785824465157,0.0648785824465157, +0.137891325582101,0.137891325582101,0.137920854942287,0.137768732430402,0.137494390271346,0.137163686798366,0.136837686061363,0.136572837701634,0.136421589659943,0.136421589659943, +0.262854633379356,0.262854633379356,0.262830191595178,0.262519714742859,0.262022080455148,0.26144118714538,0.26087006082046,0.260398538001733,0.260121562432259,0.260121562432259, +0.453170019327317,0.453170019327317,0.45302966090781,0.452468551590467,0.451659039228747,0.450747134656921,0.449849578962298,0.449084650957067,0.448606524683409,0.448606524683409, +0.706643881858192,0.706643881858192,0.706368153767745,0.705438319768317,0.704252688855123,0.702979149590074,0.701718513041682,0.700577839114548,0.699755420977859,0.699755420977859, + +00:12:58, +0.00543994357534224,0.00543994357534224,0.00545174675742691,0.00544936808368641,0.00543729100464184,0.00542046181230921,0.00540334752036222,0.00538960197260616,0.0053819569506485,0.0053819569506485, +0.00543994357534224,0.00543994357534224,0.00545174675742691,0.00544936808368641,0.00543729100464184,0.00542046181230921,0.00540334752036222,0.00538960197260616,0.0053819569506485,0.0053819569506485, +0.0116675840059652,0.0116675840059652,0.0116858672138975,0.0116781523800885,0.011652688876552,0.0116186255387235,0.0115843228573954,0.0115567887105615,0.0115414437146239,0.0115414437146239, +0.0285654015784719,0.0285654015784719,0.0285949942380541,0.0285707596029284,0.0285098559981765,0.0284314143077302,0.0283531182220971,0.0282902179193193,0.0282550309570748,0.0282550309570748, +0.0657506284502023,0.0657506284502023,0.0657895287808719,0.0657242895547498,0.0655883528443834,0.0654191098432754,0.0652513822935536,0.0651161792612002,0.0650400155054552,0.0650400155054552, +0.138133618826298,0.138133618826298,0.138163086011412,0.138010908572198,0.137736480034435,0.137405650693014,0.13707951135604,0.136814550801048,0.136663243338768,0.136663243338768, +0.263154660987874,0.263154660987874,0.263130111476285,0.26281966545279,0.262322103051705,0.261741267699995,0.261170182386383,0.260698698833029,0.260421756498804,0.260421756498804, +0.453458993560822,0.453458993560822,0.453318586117186,0.452757727341966,0.451948593425566,0.451037087923415,0.45013991078254,0.449375316162447,0.44889741409187,0.44889741409187, +0.706824980083551,0.706824980083551,0.706549401602876,0.705620155031786,0.704435269933298,0.703162511866319,0.701902639347478,0.70076266552576,0.699940764262375,0.699940764262375, + +00:12:59, +0.00546869844124247,0.00546869844124247,0.00548054412436382,0.00547816168489414,0.00546604572463032,0.00544915758092059,0.00543198071497759,0.00541818398244985,0.00541051039017503,0.00541051039017503, +0.00546869844124247,0.00546869844124247,0.00548054412436382,0.00547816168489414,0.00546604572463032,0.00544915758092059,0.00543198071497759,0.00541818398244985,0.00541051039017503,0.00541051039017503, +0.0117168844456812,0.0117168844456812,0.0117352128576125,0.0117274846601551,0.011701961657969,0.011667811554499,0.0116334173177689,0.0116058083551493,0.0115904216389119,0.0115904216389119, +0.0286590414867907,0.0286590414867907,0.0286886717314085,0.0286644035060931,0.0286034056380693,0.0285248313512013,0.0284463958269764,0.0283833816649457,0.028348131356601,0.028348131356601, +0.0659128531569799,0.0659128531569799,0.0659517552331969,0.0658864586480539,0.0657504020908556,0.0655809935300674,0.0654130909723699,0.0652777451586425,0.0652015025546277,0.0652015025546277, +0.138375807977177,0.138375807977177,0.138405212914168,0.138252980751617,0.13797846637029,0.137647511945186,0.137321234846776,0.137056162774584,0.136904796260464,0.136904796260464, +0.263454371544135,0.263454371544135,0.263429714459166,0.263119299430749,0.262621809342687,0.26204103265633,0.261469989149359,0.260998545497885,0.260721636726656,0.260721636726656, +0.453747523327346,0.453747523327346,0.45360706705976,0.453046458573555,0.452237702883277,0.451326596444076,0.450429797958605,0.449665536758803,0.449187858826846,0.449187858826846, +0.707005744189248,0.707005744189248,0.706730315043841,0.705801654835799,0.704617514334326,0.703345536337393,0.702086426806177,0.700947152089114,0.700125766885073,0.700125766885073, + +00:13:00, +0.00549754794548607,0.00549754794548607,0.0055094361687476,0.00550704997086809,0.00549489510404237,0.0054779479569641,0.00546070845297217,0.00544686047867868,0.00543915828293652,0.00543915828293652, +0.00549754794548607,0.00549754794548607,0.0055094361687476,0.00550704997086809,0.00549489510404237,0.0054779479569641,0.00546070845297217,0.00544686047867868,0.00543915828293652,0.00543915828293652, +0.0117662943968629,0.0117662943968629,0.0117846679913008,0.0117769264384907,0.0117513439599457,0.0117171071122734,0.0116826213332044,0.0116549375599188,0.011639509124491,0.011639509124491, +0.0287527926629012,0.0287527926629012,0.0287824603741993,0.0287581585904585,0.0286970666050455,0.0286183599275665,0.0285397851726619,0.0284766573145628,0.0284413437486082,0.0284413437486082, +0.0660751294272735,0.0660751294272735,0.0661140330775131,0.0660486792387591,0.0659125031868092,0.0657429295731407,0.0655748525371087,0.0654393643676938,0.0653630431486357,0.0653630431486357, +0.138617892776236,0.138617892776236,0.138647235393061,0.138494948710788,0.138220349019322,0.137889270292752,0.137562856268825,0.137297673355445,0.137146248157141,0.137146248157141, +0.263753765444985,0.263753765444985,0.263729000941007,0.263418617073311,0.262921199722304,0.262340482404779,0.261769481495649,0.26129807837929,0.261021203497092,0.261021203497092, +0.454035609719629,0.454035609719629,0.453895104827903,0.453334746378051,0.452526368693916,0.451615661308608,0.450719241577334,0.449955313830832,0.449477859972152,0.449477859972152, +0.707186175197214,0.707186175197214,0.706910895113634,0.705982820206644,0.704799423087535,0.703528224034703,0.702269876450799,0.701131299839449,0.700310429882667,0.700310429882667, + +00:13:01, +0.0055264921559776,0.0055264921559776,0.00553842295819114,0.0055360330092204,0.00552383921073669,0.00550683300870418,0.00548953080305482,0.00547563153036637,0.00546790069820877,0.00546790069820877, +0.0055264921559776,0.0055264921559776,0.00553842295819114,0.0055360330092204,0.00552383921073669,0.00550683300870418,0.00548953080305482,0.00547563153036637,0.00546790069820877,0.00546790069820877, +0.0118158137981398,0.0118158137981398,0.0118342325533804,0.0118264776535432,0.01180083572121,0.0117665121512502,0.0117319348434497,0.0117041762650783,0.0116887061118286,0.0116887061118286, +0.0288466548232172,0.0288466548232172,0.0288763598829745,0.0288520245726379,0.0287908386158462,0.0287119997538329,0.0286332859765249,0.0285700445858818,0.0285346678510072,0.0285346678510072, +0.066237456819208,0.066237456819208,0.0662763618726779,0.0662109508856986,0.0660746556905353,0.0659049175300524,0.0657366665446614,0.0656010364447727,0.0655246368436573,0.0655246368436573, +0.138859872967129,0.138859872967129,0.138889153192744,0.138736812193993,0.138462127724099,0.138130925475745,0.137804375359607,0.137539082279005,0.137387598763079,0.137387598763079, +0.264052843087441,0.264052843087441,0.264027971319154,0.263717618777218,0.263220274584944,0.262639617335936,0.262068659811732,0.261597297860461,0.261320457191625,0.261320457191625, +0.454323253826883,0.454323253826883,0.454182700510459,0.45362259184474,0.452814591945996,0.451904283603209,0.451008242722088,0.450244648459768,0.449767418608144,0.449767418608144, +0.707366274125034,0.707366274125034,0.707091142830899,0.706163652166243,0.704980997217876,0.703710575985279,0.702452989309986,0.701315109807224,0.70049475428749,0.70049475428749, + +00:13:02, +0.00555553114002723,0.00555553114002723,0.00556750455971324,0.00556511086696908,0.00555287811197761,0.00553581280381069,0.00551844783333966,0.005504497205992,0.00549673770467298,0.00549673770467298, +0.00555553114002723,0.00555553114002723,0.00556750455971324,0.00556511086696908,0.00555287811197761,0.00553581280381069,0.00551844783333966,0.005504497205992,0.00549673770467298,0.00549673770467298, +0.0118654425877167,0.0118654425877167,0.011883906481846,0.0118761382433376,0.011850436880066,0.0118160266102067,0.0117813577878242,0.0117535244104066,0.0117380125409618,0.0117380125409618, +0.0289406276844528,0.0289406276844528,0.0289703699745836,0.0289460011695463,0.0288847213875121,0.0288057505473034,0.028726897956228,0.0286635431969018,0.0286281033819946,0.0286281033819946, +0.0663998348924937,0.0663998348924937,0.0664387411791331,0.0663732731492894,0.0662368591619082,0.0660669569599404,0.0658985325534965,0.0657627609478717,0.0656862831974423,0.0656862831974423, +0.139101748295654,0.139101748295654,0.139130966060009,0.138978570947651,0.138703802229336,0.138372477236346,0.138045791858696,0.137780389282797,0.13762884781472,0.13762884781472, +0.264351604868683,0.264351604868683,0.264326625991116,0.264016304939375,0.263519034325167,0.262938437840583,0.262367524484292,0.261896204324838,0.261619398191997,0.261619398191997, +0.454610456734806,0.454610456734806,0.454469855192756,0.453909996059392,0.453102373724524,0.452192464410592,0.451296802472759,0.45053354172339,0.450056535811729,0.450056535811729, +0.707546041985971,0.707546041985971,0.707271059209952,0.706344151732178,0.705162237745953,0.703892593211798,0.702635766408029,0.701498583018544,0.700678741127511,0.700678741127511, + +00:13:03, +0.00558466496435156,0.00558466496435156,0.00559668103973948,0.00559428361053882,0.00558201187443589,0.00556488740935965,0.00554745961134688,0.00553345757344077,0.00552566937041655,0.00552566937041655, +0.00558466496435156,0.00558466496435156,0.00559668103973948,0.00559428361053882,0.00558201187443589,0.00556488740935965,0.00554745961134688,0.00553345757344077,0.00552566937041655,0.00552566937041655, +0.0119151807033763,0.0119151807033763,0.0119336897142719,0.011925908145478,0.0119001473743957,0.0118656504274968,0.0118308901052218,0.0118029819352552,0.0117874283514997,0.0117874283514997, +0.0290347109636248,0.0290347109636248,0.0290644903661808,0.0290400880984029,0.0289787146373862,0.0288996120255795,0.0288206208297279,0.0287571528659119,0.0287216500600553,0.0287216500600553, +0.0665622632084223,0.0665622632084223,0.066601170558901,0.0665356455915295,0.0663991131623822,0.0662290474235199,0.0660604501236564,0.065924537436554,0.0658479817693096,0.0658479817693096, +0.139343518509744,0.139343518509744,0.139372673743778,0.139220224720311,0.138945372281878,0.138613925318877,0.138287105507813,0.138021594106502,0.137869995050654,0.137869995050654, +0.264650051186045,0.264650051186045,0.264624965354548,0.264314675956836,0.263817479337697,0.263236944309682,0.262666075900214,0.262194798156072,0.261918026880173,0.261918026880173, +0.454897219525594,0.454897219525594,0.45475656995662,0.454196960104275,0.453389715111013,0.452480204809989,0.45158492190578,0.450821994696036,0.450345212656382,0.450345212656382, +0.707725479788995,0.707725479788995,0.70745064526081,0.706524319917714,0.705343145688041,0.70407427673261,0.702818208764891,0.701681720495185,0.700862391426366,0.700862391426366, + +00:13:04, +0.00561389369507438,0.00561389369507438,0.00562595246410293,0.00562355130576182,0.00561124056418951,0.00559405689183405,0.00557656620400356,0.00556251270000475,0.00555469576293384,0.00555469576293384, +0.00561389369507438,0.00561389369507438,0.00562595246410293,0.00562355130576182,0.00561124056418951,0.00559405689183405,0.00557656620400356,0.00556251270000475,0.00555469576293384,0.00555469576293384, +0.011965028082482,0.011965028082482,0.0119835821878139,0.0119757872971506,0.0119499671416623,0.0119153835410532,0.0118805317341135,0.0118525487785512,0.0118369534826261,0.0118369534826261, +0.029128904378055,0.029128904378055,0.0291587207752266,0.029134285076734,0.0290728180831164,0.0289935839065637,0.0289144543152781,0.0288508733114945,0.028815307603965,0.028815307603965, +0.0667247413298645,0.0667247413298645,0.0667636495755816,0.0666980677759937,0.0665614172549881,0.0663911884830806,0.0662224188167543,0.06608636547195,0.0660097321201434,0.0660097321201434, +0.139585183359452,0.139585183359452,0.139614275995087,0.139461773262639,0.139186837630692,0.138855269469787,0.13852831605081,0.138262696491937,0.138111040211611,0.138111040211611, +0.264948182437011,0.264948182437011,0.264922989807249,0.264612732226801,0.264115610017415,0.263535137134371,0.262964314446574,0.262493079738024,0.262216343638328,0.262216343638328, +0.455183543277958,0.455183543277958,0.455042845880388,0.454483485058168,0.453676617183494,0.452767505877172,0.451872602094143,0.451110008448615,0.450633450212156,0.450633450212156, +0.707904588538797,0.707904588538797,0.707629901989205,0.706704157731821,0.705523722056114,0.704255627561757,0.70300031739623,0.701864523254612,0.701045706203377,0.701045706203377, + +00:13:05, +0.0056432173977275,0.0056432173977275,0.00565531889804505,0.00565291401787854,0.00564056424672448,0.00562332131712464,0.0056057676776444,0.0055916626523837,0.00558381694912695,0.00558381694912695, +0.0056432173977275,0.0056432173977275,0.00565531889804505,0.00565291401787854,0.00564056424672448,0.00562332131712464,0.0056057676776444,0.0055916626523837,0.00558381694912695,0.00558381694912695, +0.0120149846619804,0.0120149846619804,0.0120335838392127,0.0120257756351262,0.0119998961189121,0.0119652258883901,0.0119302826125496,0.0119022248787994,0.0118865878731018,0.0118865878731018, +0.0292232076453732,0.0292232076453732,0.0292530609194912,0.029228591822375,0.029167031442658,0.0290876659084621,0.029008398131431,0.0289447042525272,0.0289090757327929,0.0289090757327929, +0.0668872688212657,0.0668872688212657,0.0669261777943485,0.0668605392678311,0.0667237710043296,0.0665533797024827,0.0663844381959704,0.0662482446167544,0.0661715338123905,0.0661715338123905, +0.139826742596938,0.139826742596938,0.139855772567077,0.139703216327404,0.139428198026855,0.13909650943764,0.138769423233659,0.138503696183042,0.138351983040446,0.138351983040446, +0.265245999019204,0.265245999019204,0.265220699747155,0.264910474146607,0.264413426759349,0.263833016705954,0.263262240510633,0.262791049454749,0.262514348848843,0.262514348848843, +0.455469429067133,0.455469429067133,0.455328684038924,0.454769571996371,0.453963081016529,0.45305436868446,0.452159844107409,0.451397584048621,0.450921249545696,0.450921249545696, +0.708083369235821,0.708083369235821,0.707808830396615,0.706883666179202,0.705703967857864,0.704436646708999,0.703182093313418,0.702046992310008,0.701228686473576,0.701228686473576, + +00:13:06, +0.00567263613725157,0.00567263613725157,0.00568478040621646,0.00568237181153859,0.00566998298693566,0.00565268075053077,0.00563506409801256,0.00562090749668586,0.00561303299530651,0.00561303299530651, +0.00567263613725157,0.00567263613725157,0.00568478040621646,0.00568237181153859,0.00566998298693566,0.00565268075053077,0.00563506409801256,0.00562090749668586,0.00561303299530651,0.00561303299530651, +0.0120650503784033,0.0120650503784033,0.0120836946047956,0.0120758730957625,0.0120499342427774,0.012015177406606,0.0119801426781626,0.0119520101740852,0.0119363314612672,0.0119363314612672, +0.0293176204835193,0.0293176204835193,0.0293475105170563,0.0293230080534733,0.0292613544342758,0.029181857749787,0.0291024519970408,0.0290386454081858,0.0290029541659043,0.0290029541659043, +0.0670498452486432,0.0670498452486432,0.0670887547819459,0.067023059633761,0.0668861739765804,0.0667156206471536,0.0665465078260492,0.0664101744352225,0.0663333864100562,0.0663333864100562, +0.140068195976465,0.140068195976465,0.140097163214981,0.13994455366947,0.139669453223542,0.139337644973105,0.139010426804443,0.138744592925872,0.138592823282129,0.138592823282129, +0.265543501330378,0.265543501330378,0.265518095572325,0.265207902113721,0.264710929958669,0.264130583415893,0.263559854479828,0.263088707690496,0.2628120428943,0.2628120428943, +0.455754877964893,0.455754877964893,0.455614085503627,0.455055221990723,0.454249107681227,0.453340794300736,0.452446649011721,0.451684722560145,0.45120861172025,0.45120861172025, +0.708261822876283,0.708261822876283,0.707987431480286,0.707062846260307,0.705883884096728,0.70461733517984,0.703363537523572,0.702229128670295,0.70141133324773,0.70141133324773, + +00:13:07, +0.00570214997799688,0.00570214997799688,0.00571433705267775,0.0057119247508015,0.00569949684912761,0.00568213525676119,0.00566445553026047,0.00565024729842872,0.00564234396719248,0.00564234396719248, +0.00570214997799688,0.00570214997799688,0.00571433705267775,0.0057119247508015,0.00569949684912761,0.00568213525676119,0.00566445553026047,0.00565024729842872,0.00564234396719248,0.00564234396719248, +0.012115225167871,0.012115225167871,0.0121339144204794,0.0121260796150065,0.0121000814494789,0.0120652380323856,0.0120301118681694,0.012001904602077,0.0119861841850451,0.0119861841850451, +0.0294121426107459,0.0294121426107459,0.0294420692863179,0.0294175334884902,0.0293557867765473,0.0292761591493589,0.0291966156312658,0.0291326964979465,0.0290969426229629,0.0290969426229629, +0.0672124701795825,0.0672124701795825,0.0672513801066851,0.0671856284420696,0.0670486257394802,0.0668779108840852,0.0667086272732953,0.0665721544931672,0.0664952894787021,0.0664952894787021, +0.140309543254379,0.140309543254379,0.140338447696114,0.140185785045782,0.139910602976016,0.139578675828944,0.139251326513342,0.138985386468583,0.138833560683733,0.138833560683733, +0.265840689768416,0.265840689768416,0.265815177680943,0.265505016525731,0.265008120010677,0.264427837655799,0.263857156741765,0.263386054829694,0.263109426157465,0.263109426157465, +0.456039891039563,0.456039891039563,0.455899051342449,0.455340436109612,0.454534698245254,0.453626783791457,0.452733017869816,0.451971425043888,0.451495537795685,0.451495537795685, +0.708439950452192,0.708439950452192,0.708165706233249,0.707241698971365,0.706063471771907,0.704797693975542,0.70354465102957,0.702410933340152,0.701593647532361,0.701593647532361, + +00:13:08, +0.00573175898372421,0.00573175898372421,0.00574398890090037,0.00574157289913759,0.00572910589701537,0.00571168489993485,0.00569394203895062,0.00567968212253987,0.00567174992991495,0.00567174992991495, +0.00573175898372421,0.00573175898372421,0.00574398890090037,0.00574157289913759,0.00572910589701537,0.00571168489993485,0.00569394203895062,0.00567968212253987,0.00567174992991495,0.00567174992991495, +0.0121655089660943,0.0121655089660943,0.012184243221773,0.0121763951283977,0.0121503376748284,0.0121154077020028,0.0120801901193742,0.0120519081000287,0.0120361459819428,0.0120361459819428, +0.0295067737456207,0.0295067737456207,0.0295367369459886,0.0295121678462038,0.0294503281883642,0.0293705698263095,0.029290888753571,0.0292268572415883,0.0291910408239334,0.0291910408239334, +0.0673751431832337,0.0673751431832337,0.0674140533384412,0.0673482452626067,0.0672111258623317,0.0670402499818294,0.066870796105571,0.0667341843579554,0.0666572425854416,0.0666572425854416, +0.140550784189102,0.140550784189102,0.140579625769861,0.140426910215358,0.140151647041614,0.13981960176,0.139492122112623,0.13922607656142,0.139074194994424,0.139074194994424, +0.266137564731315,0.266137564731315,0.266111946471304,0.265801817780342,0.265304997310804,0.264724779817429,0.264154147684211,0.263683091256947,0.263406499021292,0.263406499021292, +0.456324469356034,0.456324469356034,0.456183582619904,0.455625215417988,0.454819853772847,0.45391233821867,0.45301895174104,0.452257692557174,0.451782028828495,0.451782028828495, +0.708617752951376,0.708617752951376,0.708343655644351,0.707420225304404,0.706242731878392,0.70497772409316,0.703725434830079,0.702592407320048,0.70177563032977,0.70177563032977, + +00:13:09, +0.00576146321760565,0.00576146321760565,0.00577373601376743,0.00577131631942882,0.00575881019372533,0.00574132974358179,0.00572352368805643,0.00570921203335779,0.00570125094801495,0.00570125094801495, +0.00576146321760565,0.00576146321760565,0.00577373601376743,0.00577131631942882,0.00575881019372533,0.00574132974358179,0.00572352368805643,0.00570921203335779,0.00570125094801495,0.00570125094801495, +0.0122159017083772,0.0122159017083772,0.0122346809437797,0.0122268195710698,0.012200702854231,0.0121656863513233,0.0121303773681705,0.0121020206047823,0.0120862167890549,0.0120862167890549, +0.0296015136070287,0.0296015136070287,0.0296315132150998,0.0296069108457111,0.0295449783889354,0.0294650895000837,0.0293852710837303,0.029321127359196,0.0292852484890839,0.0292852484890839, +0.0675378638303087,0.0675378638303087,0.0675767740486493,0.0675109096667823,0.0673736739159971,0.0672026375104958,0.0670330138922921,0.0668962635985049,0.0668192452989377,0.0668192452989377, +0.140791918541121,0.140791918541121,0.140820697197666,0.140667928939272,0.140392585179738,0.140060422523187,0.139732813356628,0.139466662956709,0.139314725965447,0.139314725965447, +0.266434126617184,0.266434126617184,0.266408402341807,0.266098306275365,0.265601562254597,0.265021410292677,0.264450827695087,0.263979817357029,0.263703261868906,0.263703261868906, +0.456608613975773,0.456608613975773,0.456467680397085,0.455909560977377,0.455104575324825,0.454197458641021,0.453304451681357,0.45254352615396,0.452068085871815,0.452068085871815, +0.708795231357504,0.708795231357504,0.708521280698271,0.70759842624727,0.706421665406988,0.705157426525551,0.703905889919572,0.702773551606255,0.70195728263806,0.70195728263806, + +00:13:10, +0.00579126274222545,0.00579126274222545,0.00580357845357456,0.0058011550739696,0.00578860980179611,0.00577106985064393,0.00575320054096304,0.00573883709463269,0.0057308470854453,0.0057308470854453, +0.00579126274222545,0.00579126274222545,0.00580357845357456,0.0058011550739696,0.00578860980179611,0.00577106985064393,0.00575320054096304,0.00573883709463269,0.0057308470854453,0.0057308470854453, +0.0122664033296193,0.0122664033296193,0.0122852275211998,0.0122773528777537,0.0122511769226877,0.0122160739158066,0.0121806735505442,0.0121522420527702,0.0121363965430655,0.0121363965430655, +0.0296963619141751,0.0296963619141751,0.0297263978130045,0.0297017622064306,0.0296397370977893,0.0295597178904423,0.0294797623418291,0.0294155065711618,0.0293795653389884,0.0293795653389884, +0.0677006316930771,0.0677006316930771,0.0677395418103012,0.0676736212275628,0.0675362694728942,0.0673650730417475,0.0671952802044253,0.067058391785281,0.0669812971893988,0.0669812971893988, +0.141032946072974,0.141032946072974,0.141061661743019,0.140908840980648,0.140633417151843,0.140301137877475,0.139973400001764,0.139707145408842,0.13955515335012,0.13955515335012, +0.266730375824236,0.266730375824236,0.266704545690951,0.266394482408711,0.265897815237717,0.265317729473562,0.264747197162462,0.264276233514873,0.263999715083601,0.263999715083601, +0.456892325956839,0.456892325956839,0.456751345731673,0.456193473845894,0.455388863958607,0.45448214611377,0.453589518743367,0.452828926884853,0.452353709975437,0.452353709975437, +0.708972386650106,0.708972386650106,0.708698582375546,0.707776302783654,0.706600273344329,0.70533680226141,0.704086017288355,0.702954367190875,0.702138605451158,0.702138605451158, + +00:13:11, +0.00582115761958087,0.00582115761958087,0.00583351628203078,0.00583108922446769,0.00581850478317933,0.00580090528347594,0.00578297266046818,0.00576855736952734,0.00576053840557139,0.00576053840557139, +0.00582115761958087,0.00582115761958087,0.00583351628203078,0.00583108922446769,0.00581850478317933,0.00580090528347594,0.00578297266046818,0.00576855736952734,0.00576053840557139,0.00576053840557139, +0.0123170137643185,0.0123170137643185,0.0123358828883329,0.0123279949827797,0.012301759814798,0.0122665703305089,0.0122310786020753,0.0122025723800177,0.0121866851802512,0.0121866851802512, +0.0297913183865869,0.0297913183865869,0.029821390459379,0.0297967216481041,0.0297346040347758,0.029654454717464,0.0295743622482665,0.0295099945981884,0.0294739910945292,0.0294739910945292, +0.0678634463453628,0.0678634463453628,0.0679023561979422,0.0678363795194678,0.0676989121069937,0.0675275561487979,0.067357594614484,0.0672205684902931,0.067143397828576,0.067143397828576, +0.141273866549241,0.141273866549241,0.141302519171448,0.141149646104647,0.140874142721423,0.140541747583886,0.14021388180649,0.139947523674268,0.139795476903814,0.139795476903814, +0.267026312750781,0.267026312750781,0.267000376917327,0.266690346578387,0.266193756655928,0.265613737752229,0.265043256474542,0.264572340115563,0.264295859048831,0.264295859048831, +0.457175606353893,0.457175606353893,0.457034579677951,0.456476955078255,0.455672720728218,0.454766401688804,0.453874153976313,0.453113895797117,0.452638902185817,0.452638902185817, +0.709149219804599,0.709149219804599,0.708875561652591,0.707953855893112,0.706778556672911,0.705515852285282,0.704265817922589,0.703134855061862,0.702319599758837,0.702319599758837, + +00:13:12, +0.00585114791108306,0.00585114791108306,0.00586354956025933,0.00586111883204504,0.00584849519924058,0.00583083610384611,0.00581284010878299,0.00579837292061789,0.00579032497117205,0.00579032497117205, +0.00585114791108306,0.00585114791108306,0.00586354956025933,0.00586111883204504,0.00584849519924058,0.00583083610384611,0.00581284010878299,0.00579837292061789,0.00579032497117205,0.00579032497117205, +0.012367732946573,0.012367732946573,0.0123866469790809,0.0123787458200802,0.0123524514647623,0.0123171755300854,0.0122815924579414,0.0122530115221458,0.012237082636483,0.012237082636483, +0.0298863827441159,0.0298863827441159,0.0299164908742258,0.0298917888907997,0.0298295789200691,0.029749299701548,0.0296690705237579,0.0296045911612911,0.0295685254768991,0.0295685254768991, +0.0680263073625411,0.0680263073625411,0.0680652167876672,0.0679991841185668,0.0678616013938152,0.0676900864064076,0.0675199566965256,0.0673827932870914,0.0673055467897591,0.0673055467897591, +0.141514679736533,0.141514679736533,0.141543269250505,0.141390344078454,0.141114761654006,0.140782251405476,0.140454258531306,0.140187797511481,0.140035696383953,0.140035696383953, +0.267321937795215,0.267321937795215,0.267295896419611,0.266985899182484,0.266489386905092,0.265909435520934,0.265339006019666,0.264868137544331,0.264591694148201,0.264591694148201, +0.457458456218213,0.457458456218213,0.457317383286819,0.456760005725789,0.455956146684307,0.455050226414648,0.454158358426096,0.453398433934691,0.452923663546092,0.452923663546092, +0.709325731792304,0.709325731792304,0.709052219501724,0.708131086551088,0.706956516371104,0.705694577577589,0.704445292804308,0.703315016203042,0.702500266546739,0.702500266546739, + +00:13:13, +0.00588123367755789,0.00588123367755789,0.00589367834879857,0.00589124395723866,0.00587858111076019,0.00586086237293719,0.0058428029475329,0.00582828380989478,0.0058202068444404,0.0058202068444404, +0.00588123367755789,0.00588123367755789,0.00589367834879857,0.00589124395723866,0.00587858111076019,0.00586086237293719,0.0058428029475329,0.00582828380989478,0.0058202068444404,0.0058202068444404, +0.0124185608100845,0.0124185608100845,0.0124375197269496,0.012429605323192,0.0124032518063844,0.0123678894487927,0.0123322150529191,0.0123035594143733,0.0122875888472291,0.0122875888472291, +0.0299815547069404,0.0299815547069404,0.0300116987778754,0.0299869636549135,0.0299246614741694,0.0298442525634164,0.0297638868893371,0.0296992959817999,0.029663168207604,0.029663168207604, +0.0681892143215346,0.0681892143215346,0.0682281231571175,0.0681620346024751,0.0680243369104236,0.0678526633908804,0.0676823660261477,0.0675450657507633,0.0674677436477741,0.0674677436477741, +0.141755385403479,0.141755385403479,0.141783911749757,0.14163093467127,0.141355273717138,0.141022649107325,0.140694529938745,0.14042796668101,0.140275811549994,0.140275811549994, +0.26761725135602,0.26761725135602,0.267591104596554,0.267281140619174,0.266784706381162,0.266204823172043,0.265634446186299,0.265163626186546,0.264887220765463,0.264887220765463, +0.457740876597706,0.457740876597706,0.457599757605804,0.457042626836454,0.456239142874157,0.455333621336479,0.454442133135287,0.453682542338195,0.453207995096088,0.453207995096088, +0.709501923580472,0.709501923580472,0.709228556891184,0.708307995728936,0.707134153413181,0.705872979114651,0.704624442911446,0.703494851594138,0.702680606796397,0.702680606796397, + +00:13:14, +0.00591141497924686,0.00591141497924686,0.00592390270760287,0.00592146466000154,0.00590876257793417,0.00589098415134727,0.0058728612377585,0.00585829009876349,0.00585018408698466,0.00585018408698466, +0.00591141497924686,0.00591141497924686,0.00592390270760287,0.00592146466000154,0.00590876257793417,0.00589098415134727,0.0058728612377585,0.00585829009876349,0.00585018408698466,0.00585018408698466, +0.01246949728816,0.01246949728816,0.012488501065052,0.0124805734252587,0.0124541607730737,0.0124187120204916,0.0123829463213874,0.0123542159915194,0.0123382037475573,0.0123382037475573, +0.0300768339955679,0.0300768339955679,0.0301070138909889,0.0300822456611721,0.0300198514179058,0.0299393130241158,0.0298588110663587,0.0297941087813622,0.0297579190084649,0.0297579190084649, +0.06835216680081,0.06835216680081,0.0683910748854771,0.068324930550351,0.0681871182354263,0.0680152866800602,0.0678448221804849,0.0677073854579304,0.067629987978979,0.067629987978979, +0.141995983320717,0.141995983320717,0.142024446440772,0.1418714176543,0.141595678680372,0.14126294045653,0.140934695793357,0.140668030945407,0.140515822163418,0.140515822163418, +0.267912253831752,0.267912253831752,0.267886001846979,0.267576071286701,0.267079715480173,0.266499901098021,0.265929577363021,0.26545880642771,0.265182439284507,0.265182439284507, +0.458022868536918,0.458022868536918,0.457881703679074,0.457324819454846,0.4565217103417,0.455616587496137,0.454725479143142,0.453966222044951,0.453491897872335,0.453491897872335, +0.709677796132307,0.709677796132307,0.709404574785157,0.708484584393943,0.707311468769339,0.706051057868709,0.704803269217858,0.703674362210792,0.702860621485255,0.702860621485255, + +00:13:15, +0.00594169187580795,0.00594169187580795,0.00595422269604345,0.00595178099970348,0.00593903966037509,0.00592120149909066,0.00590301503991637,0.00588839184804553,0.00588025675982907,0.00588025675982907, +0.00594169187580795,0.00594169187580795,0.00595422269604345,0.00595178099970348,0.00593903966037509,0.00592120149909066,0.00590301503991637,0.00588839184804553,0.00588025675982907,0.00588025675982907, +0.0125205423137145,0.0125205423137145,0.0125395909261104,0.0125316500590337,0.0125051782978483,0.0124696431786492,0.0124337861973295,0.0124049811880064,0.0123889272721373,0.0123889272721373, +0.0301722203308373,0.0301722203308373,0.0302024359345601,0.0301776346306348,0.0301151484724378,0.0300344808050205,0.0299538427765002,0.0298890292819449,0.0298527776016208,0.0298527776016208, +0.0685151643803745,0.0685151643803745,0.0685540715534695,0.0684878715428919,0.0683499449489691,0.0681779558533276,0.0680073247382052,0.0678697519867449,0.0677922793612611,0.0677922793612611, +0.142236473260881,0.142236473260881,0.142264873097112,0.142111792800741,0.141835976315259,0.14150312522219,0.141174755861702,0.140907990069235,0.140755727987723,0.140755727987723, +0.268206945621034,0.268206945621034,0.268180588569773,0.267870691583376,0.26737441459824,0.266794669691426,0.266224399938526,0.265753678653448,0.265477350089354,0.265477350089354, +0.458304433077054,0.458304433077054,0.458163222547452,0.457606584622214,0.456803850127526,0.45589912593214,0.45500839748561,0.454249474088985,0.45377537290808,0.45377537290808, +0.709853350406982,0.709853350406982,0.709580274143794,0.708660853509346,0.707488463405716,0.706228814807946,0.704981772693337,0.703853549024581,0.703040311586693,0.703040311586693, + +00:13:16, +0.00597206442631653,0.00597206442631653,0.00598463837290932,0.00598219303513203,0.00596941241711293,0.00595151447559878,0.00593326441388,0.00591858911797919,0.00591042492341468,0.00591042492341468, +0.00597206442631653,0.00597206442631653,0.00598463837290932,0.00598219303513203,0.00596941241711293,0.00595151447559878,0.00593326441388,0.00591858911797919,0.00591042492341468,0.00591042492341468, +0.0125716958192736,0.0125716958192736,0.0125907892424587,0.0125828351568816,0.0125563043133367,0.0125206828563416,0.0124847346143355,0.0124558549378616,0.0124397593552435,0.0124397593552435, +0.0302677134339208,0.0302677134339208,0.0302979646299175,0.0302731302846958,0.0302105523592583,0.0301297556278342,0.0300489817417646,0.0299840572058367,0.0299477437095301,0.0299477437095301, +0.0686782066417727,0.0686782066417727,0.0687171127433539,0.0686508571623307,0.0685128166327327,0.0683406704915961,0.0681698732795067,0.0680321649168862,0.067954617374033,0.067954617374033, +0.142476854998591,0.142476854998591,0.142505191494318,0.142352059885769,0.142076166395337,0.141743203175396,0.141414709912337,0.141147843819061,0.140995528788409,0.140995528788409, +0.268501327122553,0.268501327122553,0.268474865163881,0.268165001907566,0.267668804131544,0.267089129344905,0.26651891430161,0.266048243249501,0.265771953564148,0.265771953564148, +0.45858557125598,0.45858557125598,0.458444315248423,0.457887923376472,0.457085563268898,0.456181237679694,0.455290889195346,0.454532299501048,0.454058421233297,0.454058421233297, +0.710028587359665,0.710028587359665,0.709755655923237,0.70883680403436,0.70766513828442,0.706406250896506,0.705159954303643,0.704032413003046,0.703219678070045,0.703219678070045, + +00:13:17, +0.00600253268926627,0.00600253268926627,0.00601514979640816,0.00601270082449336,0.00599988090659605,0.00598192313972103,0.00596360941894065,0.00594888196822051,0.0059406886376003,0.0059406886376003, +0.00600253268926627,0.00600253268926627,0.00601514979640816,0.00601270082449336,0.00599988090659605,0.00598192313972103,0.00596360941894065,0.00594888196822051,0.0059406886376003,0.0059406886376003, +0.0126229577369757,0.0126229577369757,0.0126420959460452,0.0126341286507818,0.0126075387517807,0.012571830986256,0.0125357915056048,0.0125068371747202,0.0124906999307572,0.0124906999307572, +0.0303633130263263,0.0303633130263263,0.0303935996987269,0.0303687323450862,0.0303060628001951,0.030225137214592,0.0301442276844823,0.0300791922756503,0.0300428170549735,0.0300428170549735, +0.0688412931680824,0.0688412931680824,0.0688801980389217,0.0688138869924326,0.0686757328699298,0.0685034301773091,0.0683324673861143,0.0681946238295576,0.0681170015982299,0.0681170015982299, +0.142717128310444,0.142717128310444,0.142745401409903,0.142592218686536,0.142316248696119,0.141983174089221,0.141654557715805,0.14138759196344,0.141235224332967,0.141235224332967, +0.268795398735051,0.268795398735051,0.268768832028296,0.268459002657694,0.267962884476332,0.267383280451183,0.266813120841167,0.266342500601721,0.266066250093153,0.266066250093153, +0.458866284108246,0.458866284108246,0.458724982816155,0.458168836752212,0.457366850799765,0.456462923770706,0.455572955301728,0.454814699308622,0.454341043874699,0.454341043874699, +0.710203507941539,0.710203507941539,0.709930721075634,0.709012436924196,0.707841494363543,0.70658336709452,0.705337815010517,0.70421095510971,0.703398721900624,0.703398721900624, + +00:13:18, +0.00603309672256998,0.00603309672256998,0.00604575702416723,0.0060433044254132,0.006030445186692,0.00601242754972574,0.00599405011380824,0.00597927045784411,0.00597104796166332,0.00597104796166332, +0.00603309672256998,0.00603309672256998,0.00604575702416723,0.0060433044254132,0.006030445186692,0.00601242754972574,0.00599405011380824,0.00597927045784411,0.00597104796166332,0.00597104796166332, +0.0126743279985745,0.0126743279985745,0.0126935109684344,0.0126855304723301,0.0126588815450376,0.0126230875006935,0.0125869568039487,0.0125579278318276,0.0125417489321689,0.0125417489321689, +0.0304590188298997,0.0304590188298997,0.030489340862993,0.0304644405338765,0.0304016795174135,0.030320625287663,0.0302395803273134,0.0301744342143246,0.0301379973610562,0.0301379973610562, +0.0690044235439115,0.0690044235439115,0.0690433270254933,0.0689769606184915,0.0688386932453009,0.0686662344944358,0.0684951066412757,0.0683571283074827,0.0682794316163055,0.0682794316163055, +0.142957292974999,0.142957292974999,0.142985502623338,0.142832268982148,0.142556222995082,0.142223037738709,0.141894299044627,0.141627234272908,0.141474814390872,0.141474814390872, +0.269089160857317,0.269089160857317,0.269062489562058,0.268752694232227,0.268256656028905,0.267677123403057,0.267107019946179,0.266636451096066,0.26636024006074,0.26636024006074, +0.459146572665092,0.459146572665092,0.459005226281505,0.458449325780714,0.457647713750773,0.456744185233797,0.455854596830864,0.455096674535936,0.454623241855752,0.454623241855752, +0.710378113099824,0.710378113099824,0.710105470549166,0.709187753130084,0.708017532597188,0.706760164358125,0.705515355771709,0.704389176304098,0.703577444039739,0.703577444039739, + +00:13:19, +0.00606375658356061,0.00606375658356061,0.00607646011323426,0.00607400389493773,0.00606110531468853,0.00604302776330101,0.00602458655661228,0.0060097546453441,0.00600150295430063,0.00600150295430063, +0.00606375658356061,0.00606375658356061,0.00607646011323426,0.00607400389493773,0.00606110531468853,0.00604302776330101,0.00602458655661228,0.0060097546453441,0.00600150295430063,0.00600150295430063, +0.0127258065354417,0.0127258065354417,0.0127450342408104,0.0127370405527414,0.0127103326245828,0.0126744523315713,0.0126382304417926,0.0126091268420418,0.012592906292581,0.012592906292581, +0.0305548305668268,0.0305548305668268,0.0305851878450621,0.0305602545734783,0.0304974022334182,0.0304162195697524,0.0303350393932499,0.030269782745127,0.0302332843512096,0.0302332843512096, +0.0691675973553946,0.0691675973553946,0.0692064992899142,0.0691400776273261,0.0690016973451109,0.0688290830284683,0.0686577906297587,0.0685196779349022,0.0684419070122292,0.0684419070122292, +0.143197348772769,0.143197348772769,0.143225494916042,0.143072210553665,0.142796089071658,0.142462793900863,0.142133933673287,0.141866770519969,0.141714298733568,0.141714298733568, +0.269382613888183,0.269382613888183,0.269355838164242,0.269046077029672,0.268550119185617,0.267970658593394,0.267400612005715,0.266930095118587,0.266653923851386,0.266653923851386, +0.459426437954461,0.459426437954461,0.459285046672033,0.458729391489962,0.457928153149277,0.457025023094313,0.456135814805605,0.455378226203977,0.454905016196686,0.454905016196686, +0.710552403777797,0.710552403777797,0.710279905288067,0.70936275359929,0.708193253935489,0.706936643639486,0.705692577540995,0.704567077541761,0.703755845444722,0.703755845444722, + +00:13:20, +0.00609451232899208,0.00609451232899208,0.00610725912007843,0.00610479928953451,0.00609186134729445,0.00607372383755568,0.00605521880490274,0.00604033458863497,0.00603205367362951,0.00603205367362951, +0.00609451232899208,0.00609451232899208,0.00610725912007843,0.00610479928953451,0.00609186134729445,0.00607372383755568,0.00605521880490274,0.00604033458863497,0.00603205367362951,0.00603205367362951, +0.0127773932785688,0.0127773932785688,0.0127966656939783,0.0127886588228522,0.0127618919215121,0.0127259254104253,0.0126896123511785,0.0126604341378359,0.0126441719447101,0.0126441719447101, +0.0306507479596355,0.0306507479596355,0.0306811403676237,0.0306561741866469,0.0305932306710555,0.0305119197839034,0.0304306046056178,0.0303652375916554,0.030328677749194,0.030328677749194, +0.0693308141901893,0.0693308141901893,0.0693697144205514,0.0693032376072769,0.0691647447571462,0.0689919753664178,0.0688205189378472,0.0686822722975703,0.0686044273714822,0.0686044273714822, +0.143437295486212,0.143437295486212,0.143465378071374,0.143312043184081,0.143035846707219,0.142702442354636,0.142373461378226,0.142106200479085,0.14195367713446,0.14195367713446, +0.269675758226516,0.269675758226516,0.269648878233955,0.269339151448568,0.268843274342864,0.268263886415117,0.267693897408917,0.267223433055427,0.266947301849664,0.266947301849664, +0.459705881001014,0.459705881001014,0.459564445012018,0.459009034904655,0.458208170019357,0.45730543837434,0.456416610245561,0.455659355330501,0.455186367914507,0.455186367914507, +0.710726380914813,0.710726380914813,0.710454026232643,0.709537439275144,0.708368659324628,0.707112805886816,0.705869481268199,0.704744659774294,0.703933927068942,0.703933927068942, + +00:13:21, +0.00612536401504026,0.00612536401504026,0.00613815410059123,0.00613569066509339,0.00612271334064057,0.0061045158290202,0.00608594691565096,0.00607101034505253,0.00606270017718853,0.00606270017718853, +0.00612536401504026,0.00612536401504026,0.00613815410059123,0.00613569066509339,0.00612271334064057,0.0061045158290202,0.00608594691565096,0.00607101034505253,0.00606270017718853,0.00606270017718853, +0.0128290881585701,0.0128290881585701,0.0128484052583672,0.0128403852131228,0.0128135593665441,0.0127775066684124,0.0127411024637672,0.0127118496513001,0.0126955458208892,0.0126955458208892, +0.0307467707311978,0.0307467707311978,0.0307771981537129,0.0307521990964826,0.0306891645535153,0.0306077256534994,0.0305262756880794,0.0304607984778406,0.0304241772791007,0.0304241772791007, +0.0694940736374724,0.0694940736374724,0.0695329720072905,0.0694664401482024,0.0693278350707103,0.0691549110968112,0.068983291153338,0.0688449109827514,0.0687669922810544,0.0687669922810544, +0.143677132899714,0.143677132899714,0.143705151874618,0.143551766658322,0.143275495685073,0.142941982880917,0.142612881937825,0.142345523926666,0.142192949368902,0.142192949368902, +0.269968594271212,0.269968594271212,0.269941610170328,0.269631917887481,0.269136121897077,0.268556807261204,0.267986876545001,0.267516465292811,0.267240374440236,0.267240374440236, +0.459984902826141,0.459984902826141,0.459843422322463,0.459288257046219,0.458487765381825,0.457585432092713,0.456696984167106,0.455940062930045,0.455467298023009,0.455467298023009, +0.710900045446327,0.710900045446327,0.710627834319293,0.709711811097054,0.708543749706864,0.707288652044396,0.706046067899214,0.704921923949361,0.704111689861834,0.704111689861834, + +00:13:22, +0.00615631169730389,0.00615631169730389,0.00616914511008746,0.00616667807692751,0.00615366135028065,0.00613540379364763,0.00611677094525062,0.00610178197135476,0.00609344252193844,0.00609344252193844, +0.00615631169730389,0.00615631169730389,0.00616914511008746,0.00616667807692751,0.00615366135028065,0.00613540379364763,0.00611677094525062,0.00610178197135476,0.00609344252193844,0.00609344252193844, +0.012880891105685,0.012880891105685,0.0129002528640324,0.0128922196536399,0.0128653348900227,0.0128291960363126,0.0127927007108413,0.0127633733141448,0.0127470278530707,0.0127470278530707, +0.0308428986047322,0.0308428986047322,0.0308733609267124,0.0308483290264337,0.0307852036043333,0.0307036369022662,0.0306220523646349,0.030556465127948,0.0305197826653535,0.0305197826653535, +0.069657375287937,0.069657375287937,0.0696962716415312,0.0696296848414754,0.0694909678766207,0.0693178898096874,0.0691461068655371,0.0690075935792166,0.0689296013294411,0.0689296013294411, +0.143916860799585,0.143916860799585,0.143944816112974,0.143791380763228,0.143515035790448,0.143181415262526,0.1428521951324,0.142584740641059,0.142432115214187,0.142432115214187, +0.270261122421191,0.270261122421191,0.270234034372511,0.269924376744999,0.269428662244722,0.268849421524681,0.268279549803244,0.267809192217043,0.26753314200785,0.26753314200785, +0.460263504447972,0.460263504447972,0.460121979621115,0.459567058932818,0.45876694025424,0.457865005265029,0.456976937583398,0.456220350013943,0.455747807532786,0.455747807532786, +0.711073398303913,0.711073398303913,0.710801330480531,0.709885870000532,0.708718526020544,0.707464183052601,0.706222338376022,0.705098871010712,0.704289134768912,0.704289134768912, + +00:13:23, +0.0061873554308055,0.0061873554308055,0.0062002322033061,0.00619776157977417,0.0061847054311923,0.00616638778681448,0.00614769094951861,0.00613264952372278,0.00612428076426311,0.00612428076426311, +0.0061873554308055,0.0061873554308055,0.0062002322033061,0.00619776157977417,0.0061847054311923,0.00616638778681448,0.00614769094951861,0.00613264952372278,0.00612428076426311,0.00612428076426311, +0.0129328020497799,0.0129328020497799,0.012952208440658,0.0129441620741188,0.0129172184219194,0.012880993444532,0.0128444070233067,0.0128150050577025,0.012798617972828,0.012798617972828, +0.0309391313038051,0.0309391313038051,0.0309696284103543,0.0309445637002977,0.0308813475473928,0.0307996532542737,0.0307179343596252,0.0306522372665801,0.0306154936327117,0.0306154936327117, +0.0698207187337883,0.0698207187337883,0.0698596129161847,0.0697929712799795,0.0696541427672054,0.0694809110965941,0.0693089656652565,0.06917031967724,0.0690922541066388,0.0690922541066388, +0.144156478974047,0.144156478974047,0.14418437057555,0.144030885287546,0.143754466810483,0.143420739284198,0.143091400744192,0.142823850402538,0.142671174449535,0.142671174449535, +0.270553343075387,0.270553343075387,0.270526151239666,0.270216528419719,0.269720895782285,0.269141729598613,0.268571917572981,0.268101614214494,0.267825604937327,0.267825604937327, +0.460541686881393,0.460541686881393,0.460400117922473,0.45984544157937,0.459045695650921,0.45814415890366,0.457256471504386,0.45650021759033,0.456027897451243,0.456027897451243, +0.711246440415288,0.711246440415288,0.710974515645009,0.710059616917211,0.708892989200133,0.707639399847912,0.706398293636719,0.705275501898205,0.704466262731794,0.704466262731794, + +00:13:24, +0.00621849526999235,0.00621849526999235,0.00623141543441131,0.00622894122779579,0.00621584563777797,0.00619746786332174,0.00617870698369599,0.00616361305776177,0.00615521495997044,0.00615521495997044, +0.00621849526999235,0.00621849526999235,0.00623141543441131,0.00622894122779579,0.00621584563777797,0.00619746786332174,0.00617870698369599,0.00616361305776177,0.00615521495997044,0.00615521495997044, +0.0129848209203512,0.0129848209203512,0.0130042719175589,0.012996212403906,0.0129692098918355,0.0129328988231048,0.012896221331696,0.0128667448129302,0.0128503161113584,0.0128503161113584, +0.0310354685523336,0.0310354685523336,0.0310660003287224,0.0310409028422239,0.0309775961069271,0.0308957744339384,0.0308139213977334,0.0307481146186783,0.0307113099062716,0.0307113099062716, +0.0699841035687404,0.0699841035687404,0.0700229954256694,0.069956299058106,0.0698173593362992,0.069643974550584,0.0694718671448106,0.0693330888685959,0.069254950204143,0.069254950204143, +0.144395987213219,0.144395987213219,0.144423815053348,0.14427028002192,0.143993788534217,0.143659954732576,0.143330498557349,0.143062852993291,0.142910126856086,0.142910126856086, +0.270845256632747,0.270845256632747,0.270817961170959,0.270508373310252,0.270012822906274,0.2694337318761,0.268863980243599,0.268393731671602,0.268117763613564,0.268117763613564, +0.460819451138053,0.460819451138053,0.4606778382378,0.460123405997557,0.459324032582959,0.458422894017765,0.457535586936823,0.456779666664162,0.456307568782609,0.456307568782609, +0.711419172704326,0.711419172704326,0.711147390737531,0.710233052774869,0.709067140176229,0.707814303362947,0.706573934615528,0.705451817547827,0.704643074688223,0.704643074688223, + +00:13:25, +0.00624973126873743,0.00624973126873743,0.00626269485699339,0.00626021707458092,0.00624708202386589,0.00622864407739576,0.00620981910244891,0.00619467262850188,0.0061862451642933,0.0061862451642933, +0.00624973126873743,0.00624973126873743,0.00626269485699339,0.00626021707458092,0.00624708202386589,0.00622864407739576,0.00620981910244891,0.00619467262850188,0.0061862451642933,0.0061862451642933, +0.0130369476465273,0.0130369476465273,0.0130564432236833,0.0130483705719811,0.013021309229005,0.0129849121016955,0.0129481435661699,0.012918592510412,0.0129021221994853,0.0129021221994853, +0.031131910074587,0.031131910074587,0.031162476406254,0.031137346176715,0.0310739490075209,0.0309920001660252,0.0309100132039869,0.0308440969095252,0.0308072312114687,0.0308072312114687, +0.0701475293880128,0.0701475293880128,0.0701864187659077,0.0701196677717495,0.0699806171792402,0.0698070797662113,0.0696348108980124,0.0694959007465546,0.0694176892149434,0.0694176892149434, +0.144635385309112,0.144635385309112,0.144663149339255,0.144509564758878,0.14423300075258,0.143899061396197,0.143569488357925,0.143301748197412,0.143148972216886,0.143148972216886, +0.271136863492219,0.271136863492219,0.271109464565558,0.270799911815205,0.270304444013204,0.269725428750269,0.269155738204527,0.26868554497486,0.268409618421516,0.268409618421516, +0.461096798226381,0.461096798226381,0.460955141575139,0.460400953195835,0.459601952058226,0.458701211613303,0.457814284884276,0.457058698237223,0.456586822527949,0.456586822527949, +0.711591596091085,0.711591596091085,0.711319956679078,0.710406178497446,0.709240979875583,0.707988894526472,0.706749262242825,0.705627818891714,0.704819571572083,0.704819571572083, + +00:13:26, +0.00628106348034034,0.00628106348034034,0.00629407052406969,0.00629158917314514,0.00627841464271102,0.00625991648268924,0.0062410273598696,0.00622582829039918,0.00621737143189044,0.00621737143189044, +0.00628106348034034,0.00628106348034034,0.00629407052406969,0.00629158917314514,0.00627841464271102,0.00625991648268924,0.0062410273598696,0.00622582829039918,0.00621737143189044,0.00621737143189044, +0.0130891821570712,0.0130891821570712,0.0131087222876154,0.0131006365069599,0.0130735163622962,0.0130370332096017,0.0130001736565202,0.0129705480803613,0.0129540361676608,0.0129540361676608, +0.0312284555951886,0.0312284555951886,0.0312590563677418,0.0312338934286291,0.031170405974113,0.0310883301756492,0.0310062095037597,0.0309401838647462,0.0309032572740795,0.0309032572740795, +0.0703109957883264,0.0703109957883264,0.0703498825343223,0.0702830770183051,0.0701439158928662,0.0699702263395285,0.0697977965201705,0.0696587549058793,0.0695804707335215,0.0695804707335215, +0.144874673055617,0.144874673055617,0.144902373228033,0.144748739292824,0.144472103258382,0.144138059065486,0.143808369933862,0.143540535800891,0.143387710316878,0.143387710316878, +0.271428164052752,0.271428164052752,0.271400661822624,0.271091144333185,0.270595759499601,0.27001682061427,0.269447191845235,0.268977054510812,0.268701169746201,0.268701169746201, +0.461373729151593,0.461373729151593,0.46123202893932,0.46067808417945,0.459879455081392,0.45897911269304,0.458092566347145,0.457337313308137,0.456865659685174,0.456865659685174, +0.711763711491825,0.711763711491825,0.71149221438683,0.710578995005066,0.709414509221122,0.708163174263427,0.706924277445158,0.705803506858169,0.704995754313426,0.704995754313426, + +00:13:27, +0.00631249195752832,0.00631249195752832,0.00632554248808562,0.00632305757593205,0.00630984354699601,0.00629128513228219,0.00627233180947727,0.00625708009733661,0.00624859381684746,0.00624859381684746, +0.00631249195752832,0.00631249195752832,0.00632554248808562,0.00632305757593205,0.00630984354699601,0.00629128513228219,0.00627233180947727,0.00625708009733661,0.00624859381684746,0.00624859381684746, +0.0131415243803826,0.0131415243803826,0.0131611090375772,0.013153010137096,0.0131258312202148,0.0130892620757562,0.013052311532172,0.0130226114526231,0.0130060579459676,0.0130060579459676, +0.0313251048391182,0.0313251048391182,0.0313557399383362,0.0313305443231818,0.0312669667319975,0.0311847641882779,0.0311025100227739,0.031036375210312,0.030999387820224,0.030999387820224, +0.0704745023679005,0.0704745023679005,0.0705133863298326,0.0704465263966642,0.0703072550755112,0.0701334138680823,0.0699608236080854,0.0698216509428227,0.0697432943558467,0.0697432943558467, +0.145113850248491,0.145113850248491,0.145141486516307,0.144987803420026,0.144711095846302,0.144376947532742,0.144047143074985,0.143779215591601,0.143626340942892,0.143626340942892, +0.271719158713284,0.271719158713284,0.271691553341305,0.271382071262784,0.270886769761988,0.270307907861267,0.269738341555223,0.26926826066605,0.268992417972686,0.268992417972686, +0.461650244915712,0.461650244915712,0.461508501331976,0.460954799950449,0.460156542653932,0.459256598256568,0.458370432322664,0.457615512872383,0.457144081249054,0.457144081249054, +0.711935519819024,0.711935519819024,0.711664164774179,0.710751503214059,0.709587729131971,0.708337143494944,0.707098981145266,0.705978882371687,0.705171623838485,0.705171623838485, + +00:13:28, +0.00634401675245719,0.00634401675245719,0.00635711080091562,0.00635462233481425,0.0063413687888322,0.00632275007868287,0.00630373250421909,0.00628842810262494,0.00627991237267774,0.00627991237267774, +0.00634401675245719,0.00634401675245719,0.00635711080091562,0.00635462233481425,0.0063413687888322,0.00632275007868287,0.00630373250421909,0.00628842810262494,0.00627991237267774,0.00627991237267774, +0.0131939742445005,0.0131939742445005,0.0132136034014314,0.0132054913902837,0.0131782537309058,0.0131415986287294,0.0131045571221858,0.0130747825566765,0.0130581874641216,0.0130581874641216, +0.0314218575317138,0.0314218575317138,0.0314525268435466,0.031427298585948,0.0313636310068262,0.031281301929733,0.0311989144871023,0.0311326706725402,0.0310956225763674,0.0310956225763674, +0.0706380487264488,0.0706380487264488,0.0706769297528513,0.0706100155072113,0.0704706343270016,0.0702966419509104,0.0701238917600458,0.0699845884551232,0.0699061596793727,0.0699061596793727, +0.145352916685353,0.145352916685353,0.145380489002557,0.145226756938607,0.144949978312876,0.144615726592129,0.144285807572988,0.144017787359291,0.143864863883633,0.143864863883633, +0.272009847872741,0.272009847872741,0.271982139520731,0.271672693002582,0.27117747519688,0.270598690884434,0.270029187724019,0.269559163827201,0.269283363486082,0.269283363486082, +0.46192634651757,0.46192634651757,0.461784559751553,0.46123110150769,0.460433215774142,0.459533669300312,0.458647883804922,0.457893297922302,0.45742208821123,0.45742208821123, +0.712107021981405,0.712107021981405,0.711835808750757,0.710923704036974,0.709760640523467,0.708510803138366,0.707273374262101,0.706153946352972,0.7053471810697,0.7053471810697, + +00:13:29, +0.0063756379167123,0.0063756379167123,0.00638877551386411,0.00638628350109434,0.00637299041976056,0.00635431137382879,0.00633522949647118,0.00631987235900371,0.0063113271523234,0.0063113271523234, +0.0063756379167123,0.0063756379167123,0.00638877551386411,0.00638628350109434,0.00637299041976056,0.00635431137382879,0.00633522949647118,0.00631987235900371,0.0063113271523234,0.0063113271523234, +0.0132465316771053,0.0132465316771053,0.0132662053066831,0.0132580801940599,0.0132307838221559,0.0131940427967316,0.0131569103552603,0.013127061321637,0.0131104246514746,0.0131104246514746, +0.0315187133986731,0.0315187133986731,0.0315494168092438,0.0315241559428637,0.0314603985246103,0.0313779431261924,0.0312954226231696,0.0312290699780974,0.0311919612693217,0.0311919612693217, +0.070801634465176,0.070801634465176,0.0708405124052806,0.0707735439518205,0.0706340532486531,0.0704599101885381,0.0702870005758254,0.0701475670420018,0.0700690663030343,0.0700690663030343, +0.145591872165668,0.145591872165668,0.145619380487107,0.145465599648534,0.145188750456492,0.144854396039668,0.144524363221425,0.144256250895573,0.144103278929673,0.144103278929673, +0.272300231930028,0.272300231930028,0.272272420760008,0.271963009951133,0.271467876200784,0.27088917007695,0.270319730741168,0.269849764380926,0.269574006671542,0.269574006671542, +0.462202034952828,0.462202034952828,0.462060205193322,0.461506989846857,0.46070947543715,0.459810326817543,0.45892492178487,0.458170669447113,0.457699681560224,0.457699681560224, +0.71227821888395,0.71227821888395,0.71200714722245,0.71109559838261,0.709933244307182,0.708684154107272,0.707447457710845,0.706328699718955,0.705522426925733,0.705522426925733, + +00:13:30, +0.00640735550130959,0.00640735550130959,0.00642053667766652,0.00641804112550585,0.00640470849075272,0.00638596906908768,0.00636682283803955,0.00635141291864219,0.00634283820815625,0.00634283820815625, +0.00640735550130959,0.00640735550130959,0.00642053667766652,0.00641804112550585,0.00640470849075272,0.00638596906908768,0.00636682283803955,0.00635141291864219,0.00634283820815625,0.00634283820815625, +0.0132991966055214,0.0132991966055214,0.0133189146804829,0.013310776475607,0.013283421421396,0.0132465945076154,0.0132093711597343,0.0131794476762588,0.0131627694370158,0.0131627694370158, +0.031615672166056,0.031615672166056,0.0316464095616617,0.031621116120228,0.0315572690117224,0.0314746875041921,0.0313920341577548,0.0313255728540009,0.0312884036262485,0.0312884036262485, +0.0709652591867741,0.0709652591867741,0.0710041338905085,0.0709371113338512,0.0707975114432664,0.0706232181829743,0.070450149656679,0.0703105863041583,0.0702320138272439,0.0702320138272439, +0.145830716490741,0.145830716490741,0.145858160772113,0.145704331351608,0.145427412077375,0.145092955673221,0.144762809815702,0.144494605993912,0.14434158587344,0.14434158587344, +0.272590311284025,0.272590311284025,0.272562397458212,0.272253022506966,0.271757973170186,0.27117934583199,0.270609970996232,0.270140062713913,0.26986434791425,0.26986434791425, +0.462477311213984,0.462477311213984,0.462335438649393,0.461782465960468,0.460985322634926,0.46008657179839,0.459201547250335,0.458447628432922,0.457976862281452,0.457976862281452, +0.712449111427922,0.712449111427922,0.71217818109142,0.711267187156025,0.710105541390945,0.708857197311488,0.707621232402934,0.706503143382817,0.705697362321492,0.705697362321492, + +00:13:31, +0.00643916955669647,0.00643916955669647,0.00645239434249023,0.00644989525821429,0.00643652305221192,0.00641772321525847,0.00639851258016106,0.00638304983314038,0.0063744455919788,0.0063744455919788, +0.00643916955669647,0.00643916955669647,0.00645239434249023,0.00644989525821429,0.00643652305221192,0.00641772321525847,0.00639851258016106,0.00638304983314038,0.0063744455919788,0.0063744455919788, +0.0133519689567191,0.0133519689567191,0.0133717314496283,0.0133635801617543,0.0133361664557033,0.0132992536888779,0.0132619394635893,0.0132319415489371,0.0132152217493749,0.0132152217493749, +0.0317127335602859,0.0317127335602859,0.0317435048273992,0.0317181788447048,0.0316542421948982,0.0315715347906279,0.0314887488179931,0.0314221790276211,0.0313849493746599,0.0313849493746599, +0.0711289224954191,0.0711289224954191,0.0711677938134057,0.0711007172581456,0.0709610085151243,0.0707865655377082,0.0706133386053393,0.0704736458437678,0.0703950018538877,0.0703950018538877, +0.146069449463703,0.146069449463703,0.146096829661553,0.145942951851454,0.145665962977576,0.145331405292488,0.145001147153063,0.144732852449619,0.144579784509208,0.144579784509208, +0.27288008633358,0.27288008633358,0.272852070014383,0.272542731068573,0.272047766501548,0.271469218542721,0.270899908878779,0.27043005921287,0.270154387599417,0.270154387599417, +0.462752176290386,0.462752176290386,0.462610261108724,0.462057530837893,0.461260758356294,0.460362405229852,0.459477761186029,0.458724175862733,0.458253631357235,0.458253631357235, +0.712619700510886,0.712619700510886,0.712348911256124,0.711438471258561,0.710277532678859,0.709029933657117,0.707794699246071,0.706677278254008,0.705871988168148,0.705871988168148, + +00:13:32, +0.00647108013275292,0.00647108013275292,0.00648434855793562,0.00648184594881811,0.00646843415397402,0.00644957386257228,0.00643029877350446,0.00641478315352998,0.00640614935502516,0.00640614935502516, +0.00647108013275292,0.00647108013275292,0.00648434855793562,0.00648184594881811,0.00646843415397402,0.00644957386257228,0.00643029877350446,0.00641478315352998,0.00640614935502516,0.00640614935502516, +0.0134048486573175,0.0134048486573175,0.0134246555405671,0.0134164911789815,0.0133890188518037,0.0133520202676632,0.0133146151944518,0.0132845428677106,0.0132677815168241,0.0132677815168241, +0.0318098973081522,0.0318098973081522,0.0318407023334215,0.0318153438433249,0.0317513178012383,0.0316684847127574,0.0315855663313773,0.0315188882266829,0.0314815982424212,0.0314815982424212, +0.0712926239967668,0.0712926239967668,0.0713314917803215,0.0712643613310239,0.0711245440699878,0.0709499518577057,0.0707765670260133,0.0706367452644774,0.0705580299863227,0.0705580299863227, +0.146308070889505,0.146308070889505,0.146335386961222,0.146181460953509,0.145904402960969,0.145569744698989,0.145239375032581,0.144970990059836,0.144817874633085,0.144817874633085, +0.273169557477503,0.273169557477503,0.273141438827519,0.272832136034409,0.272337256591305,0.271758788602296,0.27118954477838,0.270719754264518,0.270444126112277,0.270444126112277, +0.463026631168244,0.463026631168244,0.462884673557136,0.462332185465358,0.461535783586948,0.46063782809581,0.459753564573561,0.459000312716462,0.45852998976681,0.45852998976681, +0.712789987026724,0.712789987026724,0.712519338611336,0.711609451587865,0.71044921907132,0.709202364046549,0.707967859144252,0.706851105238265,0.706046305373154,0.706046305373154, + +00:13:33, +0.00650308727879242,0.00650308727879242,0.00651639937303704,0.00651389324634975,0.00650044184530853,0.00648152106069344,0.00646218146817135,0.00644661293027534,0.0064379495479621,0.0064379495479621, +0.00650308727879242,0.00650308727879242,0.00651639937303704,0.00651389324634975,0.00650044184530853,0.00648152106069344,0.00646218146817135,0.00644661293027534,0.0064379495479621,0.0064379495479621, +0.0134578356335863,0.0134578356335863,0.0134776868793985,0.0134695094534198,0.0134419785360741,0.0134048941707645,0.0133673982795953,0.0133372515602634,0.0133204486672804,0.0133204486672804, +0.0319071631368112,0.0319071631368112,0.0319380018070629,0.0319126108434873,0.0318484955582103,0.0317655369982017,0.0316824864257602,0.0316157001792677,0.0315783499577522,0.0315783499577522, +0.0714563632979499,0.0714563632979499,0.0714952273990801,0.0714280431602817,0.0712881177150922,0.0711133767494059,0.0709398345243785,0.0707998841714027,0.0707210978293727,0.0707210978293727, +0.146546580574905,0.146546580574905,0.146573832478715,0.146419858465015,0.146142731833232,0.145807973696062,0.145477493255152,0.145209018623531,0.145055856043006,0.145055856043006, +0.273458725114562,0.273458725114562,0.273430504296573,0.273121237802882,0.272626443835853,0.272048056403849,0.2714788790846,0.271009148255589,0.270733563838076,0.270733563838076, +0.463300676830641,0.463300676830641,0.46315867697732,0.462606430825965,0.461810399309458,0.460912841377038,0.460028958391454,0.459276039970947,0.458805938486342,0.458805938486342, +0.71295997186566,0.71295997186566,0.712689464048162,0.711780129037904,0.710620601465039,0.709374489378487,0.708140712997785,0.707024625237633,0.706220314840266,0.706220314840266, + +00:13:34, +0.00653519104356298,0.00653519104356298,0.00654854683626383,0.00654603719927658,0.00653254617491956,0.00651356485872045,0.00649416071369717,0.00647853921327449,0.00646984622088996,0.00646984622088996, +0.00653519104356298,0.00653519104356298,0.00654854683626383,0.00654603719927658,0.00653254617491956,0.00651356485872045,0.00649416071369717,0.00647853921327449,0.00646984622088996,0.00646984622088996, +0.0135109298114483,0.0135109298114483,0.0135308253918765,0.013522634910855,0.0134950454345449,0.0134578753246266,0.0134202886459429,0.0133900675539277,0.0133732231283077,0.0133732231283077, +0.0320045307737886,0.0320045307737886,0.0320354029760277,0.0320099795729614,0.03194577519365,0.0318626913749474,0.0317795088293561,0.0317126146138153,0.0316752042492295,0.0316752042492295, +0.0716201400075739,0.0716201400075739,0.0716590002789777,0.0715917623551856,0.0714517290591441,0.0712768398207174,0.0711031407075799,0.0709630621711239,0.0708842049893253,0.0708842049893253, +0.146784978328457,0.146784978328457,0.146812166023421,0.146658144195008,0.146380949401842,0.146046092088848,0.145715501623477,0.145446937941483,0.145293728538721,0.145293728538721, +0.273747589643476,0.273747589643476,0.273719266820443,0.27341003677235,0.272915328631549,0.272337022340486,0.271767912186998,0.271298241572817,0.271022701162073,0.271022701162073, +0.463574314257545,0.463574314257545,0.463432272348856,0.462880267899697,0.462084606503286,0.461187446051213,0.460303943615147,0.459551358599959,0.459081478488935,0.459081478488935, +0.713129655914273,0.713129655914273,0.712859288454062,0.711950504498986,0.710791680753059,0.709546310547963,0.708313261703302,0.707197839150483,0.706394017469562,0.706394017469562, + +00:13:35, +0.00656739147524815,0.00656739147524815,0.00658079099552133,0.00657827785550199,0.00656474719094689,0.00654570530518704,0.00652623655905221,0.00651056205186012,0.00650183942334371,0.00650183942334371, +0.00656739147524815,0.00656739147524815,0.00658079099552133,0.00657827785550199,0.00656474719094689,0.00654570530518704,0.00652623655905221,0.00651056205186012,0.00650183942334371,0.00650183942334371, +0.0135641311164818,0.0135641311164818,0.0135840710034113,0.0135758674767297,0.0135482194729018,0.013510963655348,0.0134732862200697,0.0134429907756861,0.0134261048271197,0.0134261048271197, +0.0321019999469812,0.0321019999469812,0.0321329055683921,0.0321074497598886,0.032043156435764,0.0319599475713481,0.0318766332707427,0.0318096312591257,0.031772160845788,0.031772160845788, +0.0717839537357137,0.0717839537357137,0.0718228100307781,0.0717555185264701,0.0716153777123174,0.0714403406810146,0.0712664851842258,0.0711262788716828,0.0710473510739278,0.0710473510739278, +0.147023263960505,0.147023263960505,0.147050387406511,0.146896317954307,0.146619055476066,0.146284099684281,0.14595339994206,0.145684747816277,0.145531491921785,0.145531491921785, +0.27403615146291,0.27403615146291,0.274007726797971,0.273698533341116,0.273203911374704,0.272625686805285,0.272056644475115,0.271587034602932,0.271311538469527,0.271311538469527, +0.463847544425823,0.463847544425823,0.463705460648218,0.463153697663432,0.462358406144796,0.461461643092931,0.460578521217015,0.459826269574214,0.459356610744646,0.459356610744646, +0.713299040055521,0.713299040055521,0.713028812712867,0.712120578857782,0.710962457824776,0.709717828446358,0.708485506153787,0.707370747871531,0.706567414157462,0.706567414157462, + +00:13:36, +0.00659968862146805,0.00659968862146805,0.00661313189815192,0.00661061526236638,0.00659704494096697,0.00657794244806314,0.00655840905264261,0.00654268149480057,0.00653392920429389,0.00653392920429389, +0.00659968862146805,0.00659968862146805,0.00661313189815192,0.00661061526236638,0.00659704494096697,0.00657794244806314,0.00655840905264261,0.00654268149480057,0.00653392920429389,0.00653392920429389, +0.0136174394739227,0.0136174394739227,0.0136374236390724,0.0136292070761451,0.0136015005764885,0.0135641590886834,0.0135263909282046,0.0134960211521734,0.0134790936905814,0.0134790936905814, +0.0321995703846582,0.0321995703846582,0.0322305093126063,0.032205021132784,0.0321406390131304,0.0320573053161265,0.0319738594788627,0.0319067498443608,0.0318692194767228,0.0318692194767228, +0.0719478040939099,0.0719478040939099,0.0719866562667093,0.0719193112863337,0.0717790632862498,0.0716038789411345,0.0714298675643845,0.0712895338825788,0.0712105356923843,0.0712105356923843, +0.14726143728317,0.14726143728317,0.147288496440931,0.147134379555503,0.146857049866947,0.146521996291081,0.146191188017194,0.145922448052289,0.14576914599555,0.14576914599555, +0.274324410971469,0.274324410971469,0.274295884627934,0.273986727907418,0.273492192461576,0.272914050191285,0.272345076338472,0.271875527732657,0.271600076145696,0.271600076145696, +0.464120368309247,0.464120368309247,0.463978242848788,0.463426721090958,0.462631799207263,0.461735433473714,0.460852692166376,0.460100773861385,0.459631336220489,0.459631336220489, +0.713468125168759,0.713468125168759,0.713198037704801,0.712290352997339,0.711132933565954,0.709889043961421,0.70865744723859,0.707543352291858,0.706740505796743,0.706740505796743, + +00:13:37, +0.00663208252928035,0.00663208252928035,0.00664556959093603,0.00664304946664818,0.00662943947199395,0.00661027633475594,0.00659067824231138,0.00657489759030087,0.00656611561214765,0.00656611561214765, +0.00663208252928035,0.00663208252928035,0.00664556959093603,0.00664304946664818,0.00662943947199395,0.00661027633475594,0.00659067824231138,0.00657489759030087,0.00656611561214765,0.00656611561214765, +0.0136708548086666,0.0136708548086666,0.0136908832235899,0.0136826536338638,0.0136548886703089,0.0136174615500455,0.0135796026962332,0.0135491586096795,0.0135321896452122,0.0135321896452122, +0.0322972418154634,0.0322972418154634,0.032328213937496,0.0323026934205381,0.0322382226547015,0.0321547643383756,0.0320711871830257,0.0320039700990463,0.0319663798716909,0.0319663798716909, +0.0721116906951651,0.0721116906951651,0.0721505386004603,0.0720831402484355,0.0719427853940389,0.0717674542133726,0.0715932874595811,0.0714528268147657,0.0713737584553518,0.0713737584553518, +0.147499498110342,0.147499498110342,0.147526492941388,0.147372328812954,0.147094932387297,0.14675978171974,0.146428865656952,0.146160038455681,0.146006690565152,0.146006690565152, +0.274612368567694,0.274612368567694,0.274583740709041,0.274274620869429,0.273780172288366,0.273202112891483,0.272633208166563,0.272163721348701,0.271888314575832,0.271888314575832, +0.464392786878513,0.464392786878513,0.464250619920869,0.46369933915298,0.46290478666089,0.462008818162023,0.461126457429502,0.460374872426112,0.459905655880455,0.459905655880455, +0.713636912129754,0.713636912129754,0.713366964306498,0.712459827797104,0.711303108858752,0.710059957977289,0.708829085843447,0.70771565329893,0.706913293276563,0.706913293276563, + +00:13:38, +0.00666457324518137,0.00666457324518137,0.00667810412009316,0.00667558051456489,0.00666193083048068,0.00664270701211088,0.00662304417533945,0.00660721038600371,0.00659839869474976,0.00659839869474976, +0.00666457324518137,0.00666457324518137,0.00667810412009316,0.00667558051456489,0.00666193083048068,0.00664270701211088,0.00662304417533945,0.00660721038600371,0.00659839869474976,0.00659839869474976, +0.0137243770452717,0.0137243770452717,0.0137444496813577,0.0137362070743117,0.0137083836790291,0.0136708709645081,0.0136329214496995,0.0136024030741511,0.0135853926171872,0.0135853926171872, +0.0323950139684166,0.0323950139684166,0.032426019172264,0.0324004663524184,0.0323359070898048,0.032252324367561,0.0321686161129102,0.0321012917530732,0.0320636417607131,0.0320636417607131, +0.0722756131539406,0.0722756131539406,0.0723144566471768,0.0722470050278912,0.0721065436502391,0.0719310661114798,0.0717567444827934,0.071616157280648,0.0715370189749368,0.0715370189749368, +0.147737446257668,0.147737446257668,0.147764376724346,0.147610165542769,0.147332702851688,0.146997455782518,0.146666432671176,0.146397518834389,0.146244125437505,0.146244125437505, +0.274900024650054,0.274900024650054,0.274871295439925,0.274562212625249,0.274067851251211,0.273489875298828,0.27292104034885,0.27245161583775,0.272176254145171,0.272176254145171, +0.464664801101245,0.464664801101245,0.464522592831694,0.463971552817133,0.463177369472816,0.46228179812327,0.461399817969633,0.460648566230013,0.460179570685519,0.460179570685519, +0.71380540181071,0.71380540181071,0.71353559339102,0.712629004132944,0.711472984581733,0.710230571374504,0.709000422850501,0.707887651776614,0.707085777482478,0.707085777482478, + +00:13:39, +0.00669716081510705,0.00669716081510705,0.00671073553128297,0.00670820845177414,0.0066945190623198,0.0066752345264127,0.00665550689844662,0.00663961992899049,0.00663077849938358,0.00663077849938358, +0.00669716081510705,0.00669716081510705,0.00671073553128297,0.00670820845177414,0.0066945190623198,0.0066752345264127,0.00665550689844662,0.00663961992899049,0.00663077849938358,0.00663077849938358, +0.0137780061079602,0.0137780061079602,0.0137981229364351,0.0137898673215805,0.0137619855269802,0.0137243872568074,0.0136863471138084,0.0136557544711945,0.0136387025323405,0.0136387025323405, +0.0324928865729153,0.0324928865729153,0.0325239247464917,0.0324983396580713,0.032433692048145,0.0323499851335222,0.0322661459985646,0.0321987145366998,0.0321610048741756,0.0321610048741756, +0.0724395710861524,0.0724395710861524,0.0724784100234581,0.0724109052412699,0.0722703376708576,0.0720947142506585,0.0719202382484487,0.0717795248940775,0.0717003168646917,0.0717003168646917, +0.147975281542543,0.147975281542543,0.148002147608009,0.147847889562804,0.147570361076438,0.147235018293427,0.146903888871469,0.146634888998112,0.146481450421288,0.146481450421288, +0.275187379616943,0.275187379616943,0.275158549219142,0.274849503572902,0.274355229746181,0.273777337806218,0.273208573274759,0.272739211586468,0.272463895238931,0.272463895238931, +0.464936411942013,0.464936411942013,0.46479416254544,0.464243363047993,0.463449548607129,0.462554374319831,0.461672774746987,0.460921856231697,0.460453081593649,0.460453081593649, +0.713973595080281,0.713973595080281,0.713703925827878,0.712797882877156,0.71164256160989,0.710400885030032,0.709171459138314,0.708059348605196,0.707257959296458,0.707257959296458, + +00:13:40, +0.00672984528443403,0.00672984528443403,0.00674346386960625,0.0067409333233747,0.00672720421284474,0.00670785892338649,0.00668806645779266,0.00667212626578233,0.00666325507277215,0.00666325507277215, +0.00672984528443403,0.00672984528443403,0.00674346386960625,0.0067409333233747,0.00672720421284474,0.00670785892338649,0.00668806645779266,0.00667212626578233,0.00666325507277215,0.00666325507277215, +0.0138317419206215,0.0138317419206215,0.0138519029125495,0.0138436342994298,0.0138156941381598,0.013778010351345,0.013739879613428,0.0137092127260774,0.0136921193161666,0.0136921193161666, +0.0325908593587365,0.0325908593587365,0.0326219303901412,0.0325963130675235,0.0325315772598056,0.0324477463664743,0.0323637765704096,0.0322962381805534,0.0322584689428319,0.0322584689428319, +0.0726035641091677,0.0726035641091677,0.072642398347353,0.07257484050659,0.0724341670733509,0.0722583982475589,0.0720837683724198,0.0719429292703496,0.0718636517396113,0.0718636517396113, +0.148213003784101,0.148213003784101,0.148239805412317,0.148085500692648,0.147807906879606,0.147472469068225,0.147141234071185,0.146872148758303,0.146718665326936,0.146718665326936, +0.275474433866675,0.275474433866675,0.27544550244516,0.275136494110325,0.274642308169273,0.274064500806489,0.273495807333672,0.273026508981488,0.272751238242305,0.272751238242305, +0.46520762036234,0.46520762036234,0.465065330023239,0.464514770807093,0.463721325024874,0.462826547711052,0.461945328718771,0.461194743386773,0.460726189559821,0.460726189559821, +0.714141492803593,0.714141492803593,0.713871962483046,0.712966464898496,0.711811840814661,0.710570899817283,0.709342195581895,0.708230744661406,0.707429839596908,0.707429839596908, + +00:13:41, +0.00676262669798065,0.00676262669798065,0.00677628917960603,0.00677375517390755,0.00675998632683081,0.00674058024819871,0.00672072289897833,0.00670472944234111,0.00669582846107915,0.00669582846107915, +0.00676262669798065,0.00676262669798065,0.00677628917960603,0.00677375517390755,0.00675998632683081,0.00674058024819871,0.00672072289897833,0.00670472944234111,0.00669582846107915,0.00669582846107915, +0.0138855844068135,0.0138855844068135,0.0139057895330982,0.0138975079312894,0.0138695094362348,0.0138317401721897,0.0137935188730918,0.0137627777637313,0.0137456428938231,0.0137456428938231, +0.0326889320560383,0.0326889320560383,0.0327200358335566,0.0326943863111839,0.0326295624552503,0.0325456077970099,0.0324615075592395,0.0323938624156315,0.032356033697804,0.032356033697804, +0.0727675918418013,0.0727675918418013,0.0728064212383565,0.072738810443316,0.072598031476621,0.0724221177202759,0.072247334472022,0.0721063700261996,0.0720270232161294,0.0720270232161294, +0.148450612803207,0.148450612803207,0.148477349958933,0.148322998753615,0.14804534008098,0.147709807924405,0.147378468085418,0.147109297928163,0.146955769966634,0.146955769966634, +0.275761187797476,0.275761187797476,0.27573215551636,0.275423184635369,0.274929086916403,0.274351364692415,0.273782742914921,0.273313508409404,0.273038283540456,0.273038283540456, +0.465478427320717,0.465478427320717,0.465336096223187,0.464785777052926,0.46399269968407,0.463098319253266,0.462217480839191,0.461467228647864,0.460998895536031,0.460998895536031, +0.714309095842258,0.714309095842258,0.714039704218986,0.713134751062191,0.71198082306395,0.710740616606128,0.70951263305271,0.708401840818426,0.707601419258689,0.707601419258689, + +00:13:42, +0.00679550510000808,0.00679550510000808,0.00680921150526861,0.00680667404735696,0.00679286544849621,0.00677339854545824,0.00675347626704641,0.00673742950407049,0.00672849870990999,0.00672849870990999, +0.00679550510000808,0.00679550510000808,0.00680921150526861,0.00680667404735696,0.00679286544849621,0.00677339854545824,0.00675347626704641,0.00673742950407049,0.00672849870990999,0.00672849870990999, +0.0139395334897654,0.0139395334897654,0.013959782721151,0.0139514881402613,0.0139234313445435,0.0138855766430799,0.013847264817001,0.0138164495087539,0.0137992731901329,0.0137992731901329, +0.0327871043953613,0.0327871043953613,0.0328182408074656,0.0327925591198446,0.032727647365325,0.0326435691561004,0.0325593386962237,0.0324915869733042,0.0324536988705848,0.0324536988705848, +0.0729316539043121,0.0729316539043121,0.0729704783174062,0.0729028146723546,0.0727619305010119,0.0725858722883447,0.0724109361660091,0.0722698467797998,0.0721904309121151,0.0721904309121151, +0.148688108422443,0.148688108422443,0.148714781071238,0.148560383568734,0.148282660502067,0.147947034681187,0.147615590730994,0.147346336322625,0.1471927641543,0.1471927641543, +0.276047641807483,0.276047641807483,0.276018508831027,0.275709575545793,0.275215566383406,0.274637929856702,0.274069380407787,0.273600210256771,0.273325031518513,0.273325031518513, +0.465748833772611,0.465748833772611,0.465606462100359,0.465056382740965,0.464263673539716,0.463369689899801,0.462489232059466,0.461739312964615,0.461271200471298,0.461271200471298, +0.714476405054399,0.714476405054399,0.714207151894659,0.713302742229959,0.712149509222141,0.710910036262917,0.709682772418705,0.708572637945919,0.707772699153129,0.707772699153129, + +00:13:43, +0.0068284805342213,0.0068284805342213,0.00684223089002463,0.00683968998715149,0.0068258416215031,0.00680631385921746,0.00678632660648272,0.00677022649581697,0.00676126586431279,0.00676126586431279, +0.0068284805342213,0.0068284805342213,0.00684223089002463,0.00683968998715149,0.0068258416215031,0.00680631385921746,0.00678632660648272,0.00677022649581697,0.00676126586431279,0.00676126586431279, +0.0139935890923798,0.0139935890923798,0.014013882399452,0.0140055748491223,0.0139774597860977,0.0139395196874257,0.0139011173690263,0.013870227885411,0.0138530101295862,0.0138530101295862, +0.0328853761076304,0.0328853761076304,0.0329165450429813,0.0328908312246832,0.032825831721259,0.0327416301750978,0.0326572697129087,0.0325894115853152,0.032551464193039,0.032551464193039, +0.0730957499183989,0.0730957499183989,0.0731345692068784,0.0730668528160508,0.072925863768306,0.072749661572738,0.0725745730745701,0.072433359150755,0.0723538744468693,0.0723538744468693, +0.1489254904661,0.1489254904661,0.148952098574314,0.148797654962741,0.148519867966086,0.148184149159505,0.147852601826461,0.147583263758348,0.147429647705582,0.147429647705582, +0.276333796294734,0.276333796294734,0.276304562787345,0.275995667239255,0.275501746966025,0.274924196691979,0.274355720201492,0.273886614910096,0.273611482561563,0.273611482561563, +0.466018840670478,0.466018840670478,0.465876428606818,0.465326588823668,0.464534247543807,0.463640660600993,0.462760583327838,0.462010997283705,0.461543105311686,0.461543105311686, +0.714643421294662,0.714643421294662,0.714374306365549,0.713470439260029,0.712317900150123,0.7110791596505,0.709852614544324,0.70874313691004,0.70794368014805,0.70794368014805, + +00:13:44, +0.00686155304377019,0.00686155304377019,0.00687534737675011,0.00687280303616511,0.00685891488895868,0.00683932623297328,0.00681927396121725,0.00680312046187094,0.00679412996877948,0.00679412996877948, +0.00686155304377019,0.00686155304377019,0.00687534737675011,0.00687280303616511,0.00685891488895868,0.00683932623297328,0.00681927396121725,0.00680312046187094,0.00679412996877948,0.00679412996877948, +0.0140477511372349,0.0140477511372349,0.0140680884904225,0.014059767980326,0.014031594683585,0.0139935692283115,0.0139550764527109,0.013924112817639,0.0139068536363428,0.0139068536363428, +0.0329837469241564,0.0329837469241564,0.0330149482716034,0.0329892023572639,0.0329241152546668,0.0328397905857361,0.0327553003412197,0.0326873359837838,0.0326493293974054,0.0326493293974054, +0.0732598795071976,0.0732598795071976,0.0732986935305843,0.073230924498185,0.0730898309017205,0.0729134851958618,0.0727382448193251,0.0725969067600999,0.072517353441121,0.072517353441121, +0.149162758760172,0.149162758760172,0.149189302294942,0.149034812762065,0.148756962297954,0.148421151182003,0.148089501192078,0.14782008005371,0.147666420437847,0.147666420437847, +0.276619651657168,0.276619651657168,0.276590317783394,0.276281460113312,0.275787629059911,0.275210165590798,0.274641762685192,0.274172722755834,0.273897637054646,0.273897637054646, +0.466288448963775,0.466288448963775,0.466145996691626,0.465596396250493,0.464804422645341,0.463911232304195,0.463031535589581,0.462282282548858,0.461814611000308,0.461814611000308, +0.714810145414237,0.714810145414237,0.714541168483679,0.713637843007154,0.7124859967053,0.71124798762824,0.710022160290524,0.708913338573457,0.708114363107779,0.708114363107779, + +00:13:45, +0.0068947226712506,0.0068947226712506,0.00690856100776755,0.00690601323671824,0.00689208529341627,0.00687243570966822,0.00685231837462515,0.00683611144596769,0.00682709106724679,0.00682709106724679, +0.0068947226712506,0.0068947226712506,0.00690856100776755,0.00690601323671824,0.00689208529341627,0.00687243570966822,0.00685231837462515,0.00683611144596769,0.00682709106724679,0.00682709106724679, +0.0141020195465868,0.0141020195465868,0.0141224009161624,0.014114067456005,0.014085835959371,0.0140477251884975,0.0140091419912719,0.013978104229047,0.0139608036342346,0.0139608036342346, +0.0330822165766373,0.0330822165766373,0.0331134502252201,0.0330876722495391,0.0330224976975496,0.0329380501201332,0.0328534303134615,0.0327853599012063,0.0327472942162979,0.0327472942162979, +0.0734240422952768,0.0734240422952768,0.073462850913767,0.0733950293439685,0.0732538315259035,0.0730773427815521,0.0729019510233224,0.0727604892302947,0.0726808675170242,0.0726808675170242, +0.149399913132343,0.149399913132343,0.149426392061586,0.149271856794827,0.14899394332428,0.148658040573018,0.148326288649807,0.148056785028792,0.147903082170169,0.147903082170169, +0.276905208292616,0.276905208292616,0.276875774217142,0.27656695456541,0.276073213060615,0.275495836945626,0.274927508247975,0.274458534180384,0.274183495382754,0.274183495382754, +0.466557659598969,0.466557659598969,0.466415167300857,0.465865805967909,0.465074199790332,0.46418140595379,0.463302089787014,0.462553169700856,0.462085718477336,0.462085718477336, +0.714976578260875,0.714976578260875,0.714707739097626,0.713804954322635,0.712653799741615,0.711416521052037,0.710191410514797,0.709083243795367,0.708284748893168,0.708284748893168, + +00:13:46, +0.00692798945870545,0.00692798945870545,0.00694187182484701,0.00693932063057887,0.00692535287687634,0.00690564233169147,0.00688545988952781,0.00686919949128851,0.00686014920309736,0.00686014920309736, +0.00692798945870545,0.00692798945870545,0.00694187182484701,0.00693932063057887,0.00692535287687634,0.00690564233169147,0.00688545988952781,0.00686919949128851,0.00686014920309736,0.00686014920309736, +0.0141563942423714,0.0141563942423714,0.0141768195984529,0.0141684731979729,0.0141401835355015,0.0141019874904227,0.014063313907603,0.014032202042919,0.0140148600467673,0.0140148600467673, +0.0331807847971601,0.0331807847971601,0.0332120506361092,0.0331862406338512,0.0331209787822968,0.033036408510792,0.0329516593623211,0.0328834830704577,0.0328453583827074,0.0328453583827074, +0.0735882379086344,0.0735882379086344,0.0736270409830972,0.0735591669800403,0.0734178652669305,0.0732412339550709,0.0730656913110345,0.0729241061852222,0.0728444162981539,0.0728444162981539, +0.149636953411977,0.149636953411977,0.14966336770439,0.14950878689082,0.149230810873357,0.148894817158578,0.148562964023305,0.148293378505375,0.148139632723322,0.148139632723322, +0.277190466598798,0.277190466598798,0.277160932486445,0.276852150992884,0.276358499363585,0.27578121114884,0.275212957278855,0.27474404957008,0.274469057930821,0.274469057930821, +0.46682647351955,0.46682647351955,0.466683941377608,0.466134818919404,0.465343579921823,0.464451182491203,0.463572246859512,0.462823659677546,0.462356428680018,0.462356428680018, +0.715142720678905,0.715142720678905,0.714874019052544,0.713971774054335,0.712821310109566,0.711584760774341,0.710360366071185,0.709252853431518,0.708454838361616,0.708454838361616, + +00:13:47, +0.00696135344762573,0.00696135344762573,0.00697527986920715,0.00697272525896357,0.00695871768078762,0.00693894614087997,0.00691869854819394,0.00690238464046176,0.00689330441916076,0.00689330441916076, +0.00696135344762573,0.00696135344762573,0.00697527986920715,0.00697272525896357,0.00695871768078762,0.00693894614087997,0.00691869854819394,0.00690238464046176,0.00689330441916076,0.00689330441916076, +0.0142108751462069,0.0142108751462069,0.0142313444587585,0.0142229851277271,0.0141946373337046,0.0141563560562064,0.0141175921242766,0.0140864061822159,0.0140690227971231,0.0140690227971231, +0.0332794513182022,0.0332794513182022,0.0333107492369401,0.0332849072429335,0.0332195582416873,0.0331348654906022,0.0330499872208684,0.0329817052247931,0.0329435216300036,0.0329435216300036, +0.0737524659746944,0.0737524659746944,0.0737912633666696,0.0737233370344635,0.0735819317523008,0.0734051583431032,0.0732294653083544,0.0730877572501837,0.0730079994095026,0.0730079994095026, +0.14987387943011,0.14987387943011,0.149900229055164,0.149745602881508,0.149467564775148,0.149131480766388,0.148799527137911,0.148529860306926,0.148376071919771,0.148376071919771, +0.277475426973318,0.277475426973318,0.277445792989037,0.27713704979295,0.276643488364159,0.276066288592723,0.275498110166766,0.275029269311191,0.274754325083718,0.274754325083718, +0.467094891666043,0.467094891666043,0.466952319862009,0.466403436045499,0.465612563979894,0.464720562854908,0.463842007743518,0.463093753413855,0.462626742542682,0.462626742542682, +0.715308573509254,0.715308573509254,0.715040009190178,0.714138303046698,0.712988528656224,0.711752707644174,0.710529027810297,0.70942216833422,0.708624632367079,0.708624632367079, + +00:13:48, +0.00699481467895167,0.00699481467895167,0.00700878518151636,0.00700622716253865,0.0069921797460482,0.00697234717851951,0.00695203439234065,0.00693566693556388,0.00692655675771457,0.00692655675771457, +0.00699481467895167,0.00699481467895167,0.00700878518151636,0.00700622716253865,0.0069921797460482,0.00697234717851951,0.00695203439234065,0.00693566693556388,0.00692655675771457,0.00692655675771457, +0.0142654621793958,0.0142654621793958,0.0142859754182293,0.0142776031664503,0.0142491972753929,0.0142108308076507,0.0141719765635459,0.0141407165695782,0.0141232918081623,0.0141232918081623, +0.0333782158726326,0.0333782158726326,0.0334095457607748,0.0333836718099122,0.0333182358088913,0.0332334207928417,0.033148413622558,0.0330800260978492,0.0330417836919358,0.0330417836919358, +0.0739167261223022,0.0739167261223022,0.0739555176939999,0.0738875391367213,0.0737460306109337,0.0735691155737526,0.0733932726425924,0.0732514420518957,0.073171616477477,0.073171616477477, +0.150110691019442,0.150110691019442,0.150136975947376,0.149982304600013,0.149704204861278,0.149368031225822,0.149035977820638,0.148766230258592,0.148612399583659,0.148612399583659, +0.277760089813659,0.277760089813659,0.277730356122528,0.2774216513627,0.276928180457561,0.276351069669458,0.275782967300559,0.275314193789911,0.275039297226253,0.275039297226253, +0.467362914976017,0.467362914976017,0.467220303691233,0.466671658283761,0.465881152901676,0.464989547980442,0.464111373372549,0.463363451841797,0.462896660996752,0.462896660996752, +0.715474137589462,0.715474137589462,0.715205710348882,0.714304542140769,0.71315545622525,0.711920362507141,0.710697396579331,0.709591189352369,0.708794131760095,0.708794131760095, + +00:13:49, +0.00702837319307376,0.00702837319307376,0.00704238780189381,0.0070398263814212,0.00702573911300657,0.00700584548534576,0.00698546746313448,0.00696904641812052,0.00695990626048543,0.00695990626048543, +0.00702837319307376,0.00702837319307376,0.00704238780189381,0.0070398263814212,0.00702573911300657,0.00700584548534576,0.00698546746313448,0.00696904641812052,0.00695990626048543,0.00695990626048543, +0.0143201552629273,0.0143201552629273,0.014340712397703,0.0143323272350128,0.014303863281666,0.0142654116662429,0.0142264671473471,0.0141951331273276,0.0141776670024262,0.0141776670024262, +0.033477078193714,0.033477078193714,0.0335084399410696,0.0334825340683078,0.0334170112174717,0.0333320741511781,0.0332469383012307,0.0331784454236463,0.0331401443026351,0.0331401443026351, +0.0740810179817221,0.0740810179817221,0.0741198035960201,0.0740517729177136,0.0739101614731651,0.0737331052765385,0.0735571129424722,0.0734151602184865,0.0733352671298943,0.0733352671298943, +0.150347388014325,0.150347388014325,0.150373608216142,0.150218891881106,0.149940730965028,0.149604468367915,0.149272315900167,0.149002488187189,0.148848615540803,0.148848615540803, +0.278044455517177,0.278044455517177,0.278014622284398,0.2777059560991,0.277212576038898,0.276635554771124,0.276067529068994,0.275598823392359,0.275323974743158,0.275323974743158, +0.467630544384097,0.467630544384097,0.467487893799512,0.466939486568808,0.466149347621358,0.465258138800417,0.464380344677213,0.463632755890487,0.463166184970757,0.463166184970757, +0.7156394137537,0.7156394137537,0.715371123363639,0.714470492174204,0.713322093656913,0.712087726205457,0.710865473222087,0.709759917331462,0.708963337387797,0.708963337387797, + +00:13:50, +0.0070620290298339,0.0070620290298339,0.0070760877699106,0.00707352295518021,0.00705939582146277,0.00703944110154543,0.00701899780119255,0.00700252312910759,0.00699335296865015,0.00699335296865015, +0.0070620290298339,0.0070620290298339,0.0070760877699106,0.00707352295518021,0.00705939582146277,0.00703944110154543,0.00701899780119255,0.00700252312910759,0.00699335296865015,0.00699335296865015, +0.014374954317479,0.014374954317479,0.0143955553177071,0.0143871572539751,0.0143586352733119,0.0143200985531572,0.0142810637973014,0.0142496557774694,0.0142321483021387,0.0142321483021387, +0.0335760380151036,0.0335760380151036,0.0336074315116765,0.033581493752036,0.0335158842013852,0.0334308252996702,0.0333455609911151,0.033276962936589,0.0332386031966157,0.0332386031966157, +0.0742453411846329,0.0742453411846329,0.0742841207050756,0.0742160380097533,0.0740743239707436,0.0738971270823916,0.0737209858381272,0.0735789113794922,0.0734989509959784,0.0734989509959784, +0.150583970250756,0.150583970250756,0.150610125698219,0.150455364561198,0.150177142921323,0.149840792025349,0.149508541206833,0.149238633921192,0.14908471961868,0.14908471961868, +0.2783285244811,0.2783285244811,0.278298591871994,0.277989964398983,0.277496675503151,0.276919744289691,0.276351795860739,0.27588315850457,0.275608358019094,0.275608358019094, +0.467897780821973,0.467897780821973,0.467755091118141,0.467206921832327,0.466417149070203,0.465526336244529,0.464648922585216,0.463901666486149,0.463435315390339,0.463435315390339, +0.715804402832791,0.715804402832791,0.715536249066074,0.714636153981296,0.713488441788108,0.712254799577955,0.711033258578986,0.709928353113613,0.709132250093933,0.709132250093933, + +00:13:51, +0.00709578222852644,0.00709578222852644,0.0071098851245908,0.00710731692283769,0.00709314991066946,0.00707313406675731,0.00705262544658362,0.00703609710895236,0.00702689692283676,0.00702689692283676, +0.00709578222852644,0.00709578222852644,0.0071098851245908,0.00710731692283769,0.00709314991066946,0.00707313406675731,0.00705262544658362,0.00703609710895236,0.00702689692283676,0.00702689692283676, +0.0144298592634197,0.0144298592634197,0.0144505040984612,0.0144420931435895,0.01441351317081,0.014374891389257,0.0143357664347176,0.014304284441695,0.0142867356292085,0.0142867356292085, +0.0336750950708549,0.0336750950708549,0.0337065202068447,0.0336805505954099,0.0336148544949843,0.0335296739727693,0.0334442814268289,0.0333755783714684,0.0333371601087762,0.0333371601087762, +0.0744096953641244,0.0744096953641244,0.0744484686549214,0.0743803340465623,0.0742385177368267,0.0740611806236511,0.0738848909610973,0.0737426951658534,0.0736626677063567,0.0736626677063567, +0.150820437566365,0.150820437566365,0.150846528231995,0.15069172247833,0.150413440566723,0.150077002032452,0.149744653572617,0.149474667290728,0.149320711646422,0.149320711646422, +0.278612297102518,0.278612297102518,0.278582265282524,0.278273676659045,0.277780479245177,0.277203638617017,0.276635768064362,0.276167199512492,0.275892447438636,0.275892447438636, +0.468164625218417,0.468164625218417,0.468021896575497,0.46747396500308,0.466684558176555,0.465794141239566,0.464917108021374,0.464170184552128,0.463704053178268,0.463704053178268, +0.715969105654219,0.715969105654219,0.715701088284475,0.714801528392989,0.71365450145237,0.712421583460111,0.711200753487089,0.710096497537573,0.709300870718879,0.709300870718879, + +00:13:52, +0.00712963282789934,0.00712963282789934,0.00714377990441259,0.00714120832286972,0.00712700141933301,0.0071069244200734,0.00708635043882916,0.00706976839753452,0.00706053816312559,0.00706053816312559, +0.00712963282789934,0.00712963282789934,0.00714377990441259,0.00714120832286972,0.00712700141933301,0.0071069244200734,0.00708635043882916,0.00706976839753452,0.00706053816312559,0.00706053816312559, +0.014484870020811,0.014484870020811,0.0145055586598791,0.0144971348238026,0.0144684968943328,0.0144297900950974,0.0143905749805939,0.0143590190413832,0.0143414289052316,0.0143414289052316, +0.033774249095419,0.033774249095419,0.0338057057612216,0.0337797043331408,0.033713921833018,0.0336286199053208,0.0335430993433802,0.0334742914634629,0.0334358147744014,0.0334358147744014, +0.0745740801546938,0.0745740801546938,0.0746128470807182,0.0745446606632684,0.0744027424059777,0.0742252655340602,0.0740488279443249,0.0739065112099115,0.0738264168930564,0.0738264168930564, +0.151056789800411,0.151056789800411,0.151082815657476,0.150927965472167,0.150649623739413,0.150313098225181,0.14998065283114,0.149710588127564,0.149556591454803,0.149556591454803, +0.278895773778383,0.278895773778383,0.278865642913052,0.27855709327584,0.278063987659696,0.277487238144838,0.276919446068326,0.276450946801982,0.276176243386275,0.276176243386275, +0.468431078499285,0.468431078499285,0.468288311097041,0.467740617006917,0.466951575865852,0.466061554709427,0.465184901907625,0.464438311008901,0.46397239925445,0.46397239925445, +0.716133523042156,0.716133523042156,0.715865641843809,0.714966616236894,0.713820273479898,0.712588078684055,0.711367958780111,0.710264351438746,0.709469200099664,0.709469200099664, + +00:13:53, +0.00716358086615521,0.00716358086615521,0.00717777214730938,0.00717519719320761,0.00716095038561466,0.00714081220003998,0.00712017281690448,0.0071035370341873,0.00709427672905039,0.00709427672905039, +0.00716358086615521,0.00716358086615521,0.00717777214730938,0.00717519719320761,0.00716095038561466,0.00714081220003998,0.00712017281690448,0.0071035370341873,0.00709427672905039,0.00709427672905039, +0.0145399865094096,0.0145399865094096,0.0145607189215707,0.0145522822142574,0.0145235863637479,0.0144847945909266,0.01444548935562,0.0144138594976034,0.0143962280514931,0.0143962280514931, +0.033873499823646,0.033873499823646,0.0339049879098546,0.0338789547003398,0.0338130859506339,0.0337276628325655,0.0336420144761692,0.0335731019481403,0.0335345669291633,0.0335345669291633, +0.0747384951922422,0.0747384951922422,0.0747772556190289,0.0747090174964011,0.0745669976141616,0.0743893814487633,0.0742127964221515,0.0740703591454052,0.0739901981895008,0.0739901981895008, +0.151293026793766,0.151293026793766,0.151318987816284,0.151164093383985,0.150885692279196,0.150549080441116,0.150216538817649,0.149946396265103,0.149792358876233,0.149792358876233, +0.279178954905503,0.279178954905503,0.279148725160496,0.278840214645776,0.278347201141293,0.27777054326477,0.277202830260988,0.276734400758797,0.276459746246412,0.276459746246412, +0.468697141587538,0.468697141587538,0.468554335605338,0.468006878766785,0.467218203060636,0.466328577575124,0.465452305163036,0.464706046774089,0.464240354535938,0.464240354535938, +0.71629765581747,0.71629765581747,0.716029910565739,0.715131418337305,0.713985758697565,0.712754286078593,0.71153487528844,0.710431915649204,0.709637239069979,0.709637239069979, + +00:13:54, +0.0071976263809525,0.0071976263809525,0.00721186189067089,0.00720928357123901,0.00719499684713156,0.00717479744465878,0.00715409261923981,0.00713740305769855,0.00712811265959939,0.00712811265959939, +0.0071976263809525,0.0071976263809525,0.00721186189067089,0.00720928357123901,0.00719499684713156,0.00717479744465878,0.00715409261923981,0.00713740305769855,0.00712811265959939,0.00712811265959939, +0.0145952086486697,0.0145952086486697,0.0146159848028444,0.0146075352342951,0.0145787814986206,0.014539904796689,0.0145005094801795,0.0144688057311167,0.0144511329889695,0.0144511329889695, +0.0339728469907861,0.0339728469907861,0.0340043663881925,0.033978301432519,0.033912346583379,0.0338268024901407,0.0337410265609896,0.0336720095614587,0.0336334163091229,0.0336334163091229, +0.0749029401140703,0.0749029401140703,0.0749416939078148,0.0748734041838885,0.0747312829987412,0.0745535280043018,0.074376796030314,0.0742342386074668,0.0741540112305058,0.0741540112305058, +0.151529148388912,0.151529148388912,0.151555044551642,0.151400106056664,0.151121646027484,0.150784948519453,0.150452311369014,0.150182091538368,0.150028013744746,0.150028013744746, +0.279461840880535,0.279461840880535,0.279431512421619,0.279123041165111,0.278630120084412,0.2780535543683,0.277485921030592,0.277017561768595,0.27674295640335,0.27674295640335, +0.468962815403243,0.468962815403243,0.468819971020061,0.468272751202744,0.467484440680564,0.466595210754799,0.465719318703816,0.464973392762462,0.464507919936944,0.464507919936944, +0.71646150479775,0.71646150479775,0.71619389526864,0.715295935515222,0.71415095792894,0.71292020646922,0.711701503839154,0.710599190997707,0.709804988460198,0.709804988460198, + +00:13:55, +0.00723176940940654,0.00723176940940654,0.00724604917134429,0.00724346749380899,0.00722914084095796,0.00720888019138803,0.00718810988372145,0.00717136650631185,0.00716204599321643,0.00716204599321643, +0.00723176940940654,0.00723176940940654,0.00724604917134429,0.00724346749380899,0.00722914084095796,0.00720888019138803,0.00718810988372145,0.00717136650631185,0.00716204599321643,0.00716204599321643, +0.0146505363577446,0.0146505363577446,0.014671356222709,0.0146628938029576,0.0146340822182155,0.0145951206320265,0.0145556352743517,0.014523857662379,0.0145061436383309,0.0145061436383309, +0.0340722903324916,0.0340722903324916,0.0341038409320863,0.0340777442655931,0.0340117034672012,0.0339260386140822,0.0338401353340296,0.033771014039768,0.0337323626507315,0.0337323626507315, +0.0750674145588757,0.0750674145588757,0.075106161586432,0.0750378203650527,0.0748955981984741,0.0747177048386105,0.0745408264059412,0.0743981492326187,0.0743178556522766,0.0743178556522766, +0.151765154429927,0.151765154429927,0.151790985708367,0.151636003334679,0.151357484827285,0.15102070230099,0.150687970323712,0.150417673783999,0.150263555895995,0.150263555895995, +0.279744432099984,0.279744432099984,0.279714005093029,0.279405573229947,0.278912744883348,0.278336271846782,0.277768718765262,0.277300430216929,0.277025874241293,0.277025874241293, +0.469228100863591,0.469228100863591,0.469085218258004,0.468538235231972,0.467750289642419,0.46686145516373,0.465985943443329,0.465240349885956,0.464775096368845,0.464775096368845, +0.716625070797316,0.716625070797316,0.716357596767617,0.715460168588361,0.714315871994301,0.713085840678141,0.711867845256038,0.71076617830972,0.709972449097395,0.709972449097395, + +00:13:56, +0.00726600998809072,0.00726600998809072,0.00728033402563533,0.00727774899722124,0.0072633824036263,0.00724306047714361,0.00722222464769282,0.00720542741772762,0.00719607676780201,0.00719607676780201, +0.00726600998809072,0.00726600998809072,0.00728033402563533,0.00727774899722124,0.0072633824036263,0.00724306047714361,0.00722222464769282,0.00720542741772762,0.00719607676780201,0.00719607676780201, +0.0147059695554894,0.0147059695554894,0.0147268330998762,0.0147183578389895,0.0146894884414991,0.0146504420162809,0.0146108666579141,0.0145790152115423,0.0145612599199428,0.0145612599199428, +0.0341718295848174,0.0341718295848174,0.0342034112777909,0.0341772829358805,0.0341111563384508,0.0340253709408251,0.0339393405318736,0.0338701151198114,0.0338314056908318,0.0338314056908318, +0.0752319181667482,0.0752319181667482,0.0752706582956279,0.0752022656806073,0.0750599428535086,0.0748819115910144,0.0747048871875499,0.0745620906587699,0.0744817310924035,0.0744817310924035, +0.152001044762482,0.152001044762482,0.152026811132863,0.151871785064088,0.151593208523201,0.151256341628123,0.150923515521823,0.150653142840238,0.150498985167238,0.150498985167238, +0.280026728960198,0.280026728960198,0.279996203571173,0.279687811236227,0.279195075932249,0.278618696091434,0.278051223853001,0.277583006489237,0.27730850014434,0.27730850014434, +0.469492998882905,0.469492998882905,0.469350078233095,0.468803331768777,0.46801575086012,0.467127311714345,0.466252180292099,0.465506919053681,0.4650418847402,0.4650418847402, +0.716788354627239,0.716788354627239,0.716521015874522,0.715624118371175,0.714480501710656,0.713251189524284,0.712033900359599,0.710932878407427,0.71013962180536,0.71013962180536, + +00:13:57, +0.00730034815303757,0.00730034815303757,0.00731471648930944,0.00731212811723911,0.00729772157112832,0.00727733833830017,0.00725643694795561,0.00723958582910422,0.00723020502071448,0.00723020502071448, +0.00730034815303757,0.00730034815303757,0.00731471648930944,0.00731212811723911,0.00729772157112832,0.00727733833830017,0.00725643694795561,0.00723958582910422,0.00723020502071448,0.00723020502071448, +0.0147615081604625,0.0147615081604625,0.0147824153527621,0.01477392726084,0.0147450000871415,0.0147058688684961,0.0146662035503442,0.0146342782984574,0.0146164817538686,0.0146164817538686, +0.0342714644842229,0.0342714644842229,0.0343030771619666,0.0342769171801045,0.0342107049338817,0.0341247992072053,0.0340386418915035,0.0339693125387268,0.0339305451666598,0.0339305451666598, +0.0753964505791671,0.0753964505791671,0.0754351836775372,0.0753667397726526,0.0752243166053801,0.0750461479022244,0.0748689780150417,0.0747260625252121,0.0746456371898589,0.0746456371898589, +0.152236819233824,0.152236819233824,0.152262520673107,0.152107451092531,0.15182881696141,0.151491866344834,0.15115894680502,0.150888498546929,0.150734301397332,0.150734301397332, +0.280308731857362,0.280308731857362,0.280278108252332,0.279969755579729,0.279477113625105,0.278900827493333,0.278333436681686,0.277865290970846,0.277590834496481,0.277590834496481, +0.469757510372649,0.469757510372649,0.469614551856403,0.46906804172461,0.468280825244735,0.467392781316233,0.466518030157825,0.465773101171929,0.465308285956756,0.465308285956756, +0.716951357095359,0.716951357095359,0.716684153397968,0.715787785674868,0.714644847891755,0.713416253823318,0.712199669967086,0.71109929210975,0.710306507404615,0.710306507404615, + +00:13:58, +0.00733478393973994,0.00733478393973994,0.00734919659759292,0.00734660488908681,0.00733215837891624,0.00731171381069226,0.00729074682077092,0.00727384177705906,0.00726443078877107,0.00726443078877107, +0.00733478393973994,0.00733478393973994,0.00734919659759292,0.00734660488908681,0.00733215837891624,0.00731171381069226,0.00729074682077092,0.00727384177705906,0.00726443078877107,0.00726443078877107, +0.0148171520909283,0.0148171520909283,0.0148381028994898,0.0148296019866654,0.0148006170735186,0.0147614011074202,0.0147216458708216,0.0146896468426754,0.0146718090598713,0.0146718090598713, +0.0343711947675733,0.0343711947675733,0.0344028383216798,0.0343766467353949,0.0343103489906524,0.0342243231504606,0.0341380391502999,0.0340686060340479,0.0340297808158456,0.0340297808158456, +0.0755610114389966,0.0755610114389966,0.0755997373756783,0.0755312422846728,0.0753887190970072,0.0752104134143342,0.075033098529699,0.0748900644726164,0.0748095735849934,0.0748095735849934, +0.152472477692776,0.152472477692776,0.152498114178647,0.15234300126921,0.152064309989667,0.151727276296685,0.151394264016558,0.151123740745499,0.150969504426727,0.150969504426727, +0.280590441187493,0.280590441187493,0.280559719532618,0.280251406656066,0.279758858355748,0.279182666443411,0.278615357639062,0.278147284046959,0.27787287768159,0.27787287768159, +0.470021636241443,0.470021636241443,0.469878640036153,0.469332366008076,0.468545513704488,0.467657864876149,0.466783493945391,0.466038897144189,0.465574300921458,0.465574300921458, +0.717114079006296,0.717114079006296,0.716847010143349,0.715951171307415,0.714808911348112,0.713581034387671,0.712365154892501,0.711265420232364,0.710473106712431,0.710473106712431, + +00:13:59, +0.00736931738315208,0.00736931738315208,0.00738377438517399,0.00738117934745052,0.00736669286190383,0.00734618692961544,0.00732515430186036,0.00730819529766975,0.00729875410824907,0.00729875410824907, +0.00736931738315208,0.00736931738315208,0.00738377438517399,0.00738117934745052,0.00736669286190383,0.00734618692961544,0.00732515430186036,0.00730819529766975,0.00729875410824907,0.00729875410824907, +0.0148729012648588,0.0148729012648588,0.0148938956578913,0.0148853819343308,0.0148563393187145,0.0148170386515073,0.0147771935382305,0.0147451207634505,0.0147272417574162,0.0147272417574162, +0.0344710201721402,0.0344710201721402,0.0345026944944048,0.0344764713392889,0.0344100882463276,0.0343239425082323,0.0342375320460434,0.0341679953437055,0.0341291123764149,0.0341291123764149, +0.0757256003904829,0.0757256003904829,0.0757643190349499,0.0756957728615316,0.0755531499726887,0.0753747077708163,0.0751972483741815,0.0750540961430297,0.0749735399195326,0.0749735399195326, +0.152708019989721,0.152708019989721,0.152733591500586,0.152578435444891,0.152299687457287,0.151962571330805,0.151629467001269,0.151358869278957,0.151204594097451,0.151204594097451, +0.28087185734644,0.28087185734644,0.280841037807968,0.280532764860675,0.280040310517845,0.279464213332447,0.27889698711274,0.278428986102657,0.278154630083423,0.278154630083423, +0.470285377395069,0.470285377395069,0.47014234367773,0.469596305524941,0.468809817144772,0.467922563298032,0.467048572556872,0.466304307871154,0.465839930534464,0.465839930534464, +0.717276521161473,0.717276521161473,0.717009586912854,0.716114276073573,0.714972692887014,0.713745532026545,0.712530355946624,0.711431263587714,0.710639420542847,0.710639420542847, + +00:14:00, +0.0074039485176908,0.0074039485176908,0.00741844988620402,0.00741585152647955,0.00740132505446762,0.00738075772982745,0.00735965942640717,0.0073426464264752,0.0073331750148869,0.0073331750148869, +0.0074039485176908,0.0074039485176908,0.00741844988620402,0.00741585152647955,0.00740132505446762,0.00738075772982745,0.00735965942640717,0.0073426464264752,0.0073331750148869,0.0073331750148869, +0.014928755599936,0.014928755599936,0.0149497935455094,0.0149412670214122,0.014912166740523,0.01487278141892,0.0148328464711611,0.0148006999797416,0.0147827797656721,0.0147827797656721, +0.0345709404356037,0.0345709404356037,0.0346026454180246,0.0345763907297325,0.0345099224388796,0.0344236570185665,0.034337120316916,0.0342674802060292,0.0342285395867906,0.0342285395867906, +0.07589021707925,0.07589021707925,0.0759289283016269,0.0758603311494693,0.0757176088780992,0.0755390306165186,0.0753614271925228,0.0752181571798708,0.0751375358365728,0.0751375358365728, +0.152943445976598,0.152943445976598,0.152968952491581,0.152813753471886,0.152534949215141,0.152197751295884,0.15186455560555,0.15159388399188,0.151439570253104,0.151439570253104, +0.281152980729875,0.281152980729875,0.28112206347414,0.280813830588818,0.280321470504895,0.279745468551068,0.279178325490187,0.278710397522892,0.278436092085616,0.278436092085616, +0.470548734736486,0.470548734736486,0.470405663683697,0.469859861178145,0.469073736468159,0.468186877483011,0.467313266891553,0.466569334250731,0.466105175693149,0.466105175693149, +0.717438684359128,0.717438684359128,0.717171884505486,0.716277100774905,0.715136193312548,0.713909747545933,0.71269527393702,0.711596822985033,0.710805449706681,0.710805449706681, + +00:14:01, +0.00743867737723666,0.00743867737723666,0.00745322313429862,0.00745062145978744,0.00743605499044801,0.00741542624554933,0.00739426222905739,0.00737719519847676,0.00736769354388527,0.00736769354388527, +0.00743867737723666,0.00743867737723666,0.00745322313429862,0.00745062145978744,0.00743605499044801,0.00741542624554933,0.00739426222905739,0.00737719519847676,0.00736769354388527,0.00736769354388527, +0.0149847150135538,0.0149847150135538,0.0150057964796003,0.0149972571651989,0.0149680992564503,0.0149286293275311,0.0148886045879123,0.0148563844102145,0.0148384230035143,0.0148384230035143, +0.034670955296053,0.034670955296053,0.0347026908308324,0.034676404645082,0.0346098513066888,0.0345234664199148,0.0344368037015024,0.0343670603597481,0.0343280621857936,0.0343280621857936, +0.0760548611522964,0.0760548611522964,0.0760935648233571,0.0760249167960982,0.0758820954602857,0.0757033815976604,0.0755256346301265,0.075382247227927,0.0753015609805782,0.0753015609805782, +0.15317875550689,0.15317875550689,0.153204197005825,0.153048955204052,0.152770095115646,0.152432816042165,0.152099529677355,0.151828784730407,0.151674432738852,0.151674432738852, +0.281433811733293,0.281433811733293,0.281402796926713,0.281094604235576,0.280602338710227,0.280026432489744,0.27945937315873,0.278991518692483,0.278717264071672,0.278717264071672, +0.470811709165837,0.470811709165837,0.470668600953802,0.470123033867812,0.469337272574411,0.468450808329417,0.467577577845929,0.466833977178054,0.466370037292118,0.466370037292118, +0.717600569394333,0.717600569394333,0.717333903717074,0.716439646209788,0.715299413425606,0.714073681748634,0.712859909668062,0.711762099230356,0.710971195011552,0.710971195011552, + +00:14:02, +0.00747350399513501,0.00747350399513501,0.0074880941625388,0.00748548918045319,0.00747088270315038,0.00745019251046655,0.00742896274392096,0.00741184164813933,0.00740230972990831,0.00740230972990831, +0.00747350399513501,0.00747350399513501,0.0074880941625388,0.00748548918045319,0.00747088270315038,0.00745019251046655,0.00742896274392096,0.00741184164813933,0.00740230972990831,0.00740230972990831, +0.0150407794228201,0.0150407794228201,0.0150619043771349,0.0150533522826953,0.0150241367837164,0.014984582294926,0.0149444678064935,0.0149121739732441,0.0148941713895259,0.0148941713895259, +0.0347710644919881,0.0347710644919881,0.0348028304715328,0.0347765128241045,0.0347098745885459,0.0346233704511361,0.0345365819387908,0.0344667355439926,0.0344276799126444,0.0344276799126444, +0.076219532257991,0.076219532257991,0.0762582282491572,0.0761895294503997,0.0760466093676642,0.0758677603618292,0.0756898703337625,0.0755463659333508,0.0754656149973767,0.0754656149973767, +0.153413948435616,0.153413948435616,0.153439324899049,0.153284040496776,0.153005125012756,0.152667765421432,0.152334389066187,0.152063571342231,0.151909181401413,0.151909181401413, +0.281714350752004,0.281714350752004,0.281683238561076,0.281375086195846,0.280882915526992,0.280307105538777,0.279740130505546,0.279272349996109,0.278998146424968,0.278998146424968, +0.471074301580462,0.471074301580462,0.470931156384988,0.470385824491262,0.46960042636049,0.468714356732791,0.467841506313723,0.467098237545494,0.46663451622322,0.46663451622322, +0.717762177059005,0.717762177059005,0.717495645340293,0.716601913173436,0.715462354023908,0.714237335434271,0.713024263940943,0.711927093126537,0.711136657261892,0.711136657261892, + +00:14:03, +0.00750842840419726,0.00750842840419726,0.00752306300347213,0.00752045472102232,0.00750580822534635,0.00748505655773021,0.0074637610045729,0.00744658580939254,0.00743702360708469,0.00743702360708469, +0.00750842840419726,0.00750842840419726,0.00752306300347213,0.00752045472102232,0.00750580822534635,0.00748505655773021,0.0074637610045729,0.00744658580939254,0.00743702360708469,0.00743702360708469, +0.0150969487445589,0.0150969487445589,0.0151181171548016,0.0151095522906228,0.0150802792392578,0.0150406402384044,0.0150004360446265,0.014968068586916,0.0149500248420006,0.0149500248420006, +0.0348712677623205,0.0348712677623205,0.0349030640792428,0.0348767150059797,0.0348099920236521,0.0347233688514976,0.0346364547681748,0.0345665054982953,0.0345273925069643,0.0345273925069643, +0.0763842300460699,0.0763842300460699,0.0764229182294092,0.0763541687627202,0.0762111502500153,0.0760321665579767,0.0758541339515638,0.0757105129436555,0.0756296975341569,0.0756296975341569, +0.153649024619325,0.153649024619325,0.153674336028502,0.153519009206972,0.153240038761951,0.152902599287005,0.15256913362309,0.152298243676588,0.152143816089053,0.152143816089053, +0.28199459818113,0.28199459818113,0.281963388772429,0.281655276864334,0.28116320134816,0.280587488088308,0.280020597917657,0.279552891818311,0.27927873952874,0.27927873952874, +0.471336512874905,0.471336512874905,0.471193330871405,0.470648233943021,0.469863198720569,0.468977523585899,0.468105053185894,0.467362116242665,0.466898613375551,0.466898613375551, +0.71792350814193,0.71792350814193,0.717657110164677,0.716763902457912,0.715625015902018,0.714400709399306,0.713188337553697,0.712091805473264,0.711301837258964,0.711301837258964, + +00:14:04, +0.00754345063670194,0.00754345063670194,0.00755812968911393,0.00755551811350812,0.00754083158927481,0.00752001841995812,0.00749865704405443,0.00748142771563185,0.00747183520900874,0.00747183520900874, +0.00754345063670194,0.00754345063670194,0.00755812968911393,0.00755551811350812,0.00754083158927481,0.00752001841995812,0.00749865704405443,0.00748142771563185,0.00747183520900874,0.00747183520900874, +0.0151532228953124,0.0151532228953124,0.0151744347290078,0.0151658571054223,0.0151365265397292,0.0150968030749827,0.015056509219748,0.0150240681690293,0.015005983278944,0.015005983278944, +0.0349715648463748,0.0349715648463748,0.0350033913934931,0.0349770109303008,0.0349102033516209,0.0348234613606757,0.0347364219294542,0.0346663699625922,0.0346271997087765,0.0346271997087765, +0.0765489541676323,0.0765489541676323,0.0765876344158571,0.0765188343847677,0.0763757177584816,0.0761965998364154,0.0760184251330225,0.0758746879077126,0.0757938082394637,0.0757938082394637, +0.153883983916083,0.153883983916083,0.153909230252952,0.153753861193067,0.153474836220234,0.153137317493729,0.152803763200637,0.152532801584248,0.152378336651575,0.152378336651575, +0.282274554415603,0.282274554415603,0.282243247955778,0.281935176635556,0.281443196566518,0.280867580528302,0.280300775781931,0.279833144543481,0.279559043766086,0.279559043766086, +0.471598343940928,0.471598343940928,0.471455125304419,0.470910263114827,0.47012559054604,0.469240309778736,0.468368219350647,0.46762561415644,0.46716232963547,0.46716232963547, +0.71808456342877,0.71808456342877,0.717818298976639,0.716925614852144,0.715787399851356,0.714563804437056,0.713352131301208,0.712256237067079,0.711466735800878,0.711466735800878, + +00:14:05, +0.00757857072439594,0.00757857072439594,0.00759329425094834,0.00759067938939275,0.00757595282664317,0.00755507812923602,0.00753365089487413,0.00751636739971972,0.00750674456874164,0.00750674456874164, +0.00757857072439594,0.00757857072439594,0.00759329425094834,0.00759067938939275,0.00757595282664317,0.00755507812923602,0.00753365089487413,0.00751636739971972,0.00750674456874164,0.00750674456874164, +0.0152096017913427,0.0152096017913427,0.0152308570158822,0.0152222666432558,0.0151928786015054,0.0151530707213957,0.0151126872490112,0.0150801726370979,0.0150620466180762,0.0150620466180762, +0.0350719554838895,0.0350719554838895,0.0351038121542291,0.0350774003370756,0.0350105083124793,0.0349236477187577,0.0348364831628359,0.0347663286772242,0.0347271012585073,0.0347271012585073, +0.0767137042751371,0.0767137042751371,0.0767523764616025,0.0766835259696077,0.0765403115455629,0.0763610598488147,0.0761827435289861,0.0760388904757474,0.0759579467631957,0.0759579467631957, +0.154118826185469,0.154118826185469,0.154144007432673,0.153988596314997,0.153709517246119,0.153371919897967,0.153038277652927,0.152767244917512,0.152612742940311,0.152612742940311, +0.28255421985016,0.28255421985016,0.28252281650593,0.282214785903829,0.281722901574664,0.281147383248553,0.280580664485074,0.280113108555862,0.27983905951996,0.27983905951996, +0.471859795667523,0.471859795667523,0.471716540572624,0.471171912895649,0.470387602725528,0.469502716198544,0.468631005693442,0.467888732170955,0.467425665886605,0.467425665886605, +0.718245343702087,0.718245343702087,0.71797921255948,0.717087051141945,0.715949506660218,0.714726621337709,0.713515645975233,0.712420388701387,0.711631353682607,0.711631353682607, + +00:14:06, +0.00761378869849559,0.00761378869849559,0.00762855671992961,0.00762593857962843,0.0076111719686285,0.00759023571711872,0.0075687425890091,0.00755140489398677,0.00754175171881255,0.00754175171881255, +0.00761378869849559,0.00761378869849559,0.00762855671992961,0.00762593857962843,0.0076111719686285,0.00759023571711872,0.0075687425890091,0.00755140489398677,0.00754175171881255,0.00754175171881255, +0.0152660853486343,0.0152660853486343,0.0152873839312768,0.0152787808200087,0.0152493353406837,0.015209443094099,0.0151689700492879,0.0151363819083532,0.0151182147768335,0.0151182147768335, +0.0351724394150183,0.0351724394150183,0.0352043261018124,0.035177882966728,0.0351109066466683,0.0350239276662427,0.0349366382089359,0.0348663813829378,0.0348270968969874,0.0348270968969874, +0.0768784800223991,0.0768784800223991,0.0769171440211016,0.0768482431716598,0.0767049312651133,0.0765255462481974,0.0763470887916545,0.0762031202993357,0.0761221127566007,0.0761221127566007, +0.154353551288563,0.154353551288563,0.154378667429436,0.154223214434194,0.15394408169962,0.15360640635759,0.153272676835569,0.153001573530194,0.152847034808113,0.152847034808113, +0.282833594879338,0.282833594879338,0.282802094817489,0.282494105063268,0.282002316765001,0.281426896638671,0.280860264413626,0.280392784239541,0.280118787173166,0.280118787173166, +0.472120868940914,0.472120868940914,0.47197757756185,0.471433184171688,0.4706492361449,0.469764743729815,0.468893413097005,0.468151471167627,0.467688623009868,0.467688623009868, +0.718405849741352,0.718405849741352,0.718139851693414,0.717248212110022,0.71611133711379,0.714889160888342,0.713678882364411,0.712584261166478,0.711795691696001,0.711795691696001, + +00:14:07, +0.0076491045896879,0.0076491045896879,0.00766391712648315,0.00766129571463861,0.0076464890458787,0.00762549121463125,0.00760393215790612,0.00758654023023288,0.00757685669121973,0.00757685669121973, +0.0076491045896879,0.0076491045896879,0.00766391712648315,0.00766129571463861,0.0076464890458787,0.00762549121463125,0.00760393215790612,0.00758654023023288,0.00757685669121973,0.00757685669121973, +0.015322673482896,0.015322673482896,0.0153440153907687,0.0153353995512916,0.0153058966730856,0.0152659201092706,0.015225357537171,0.0151926958997456,0.0151744876723707,0.0151744876723707, +0.0352730163803316,0.0352730163803316,0.0353049329770213,0.0352784585600985,0.0352113980950447,0.0351243009440425,0.0350368868087797,0.034966527820887,0.0349271863654532,0.0349271863654532, +0.0770432810645854,0.0770432810645854,0.0770819367501611,0.0770129856466941,0.0768695765723372,0.0766900586889359,0.0765114605745755,0.0763673770314003,0.0762863058722727,0.0762863058722727, +0.154588159087938,0.154588159087938,0.154613210106502,0.154457715413583,0.154178529442248,0.153840776731968,0.153506960605682,0.153235787277623,0.153081212109346,0.153081212109346, +0.28311267989747,0.28311267989747,0.283081083284852,0.282773134507787,0.28228144252974,0.281706121088087,0.281139575953958,0.28067217197845,0.280398227108356,0.280398227108356, +0.472381564644577,0.472381564644577,0.472238237155176,0.471694077826396,0.470910491687273,0.470026393254305,0.469155442441341,0.468413832025156,0.467951201883458,0.467951201883458, +0.718566082322965,0.718566082322965,0.718300217155574,0.717409098535998,0.716272891994163,0.715051423872931,0.713841841254286,0.71274785524954,0.711959750629804,0.711959750629804, + +00:14:08, +0.00768451842813168,0.00768451842813168,0.00769937550050679,0.00769675082431913,0.00768190408851364,0.00766084465227004,0.00763921963248279,0.00762177343972842,0.00761205951743174,0.00761205951743174, +0.00768451842813168,0.00768451842813168,0.00769937550050679,0.00769675082431913,0.00768190408851364,0.00766084465227004,0.00763921963248279,0.00762177343972842,0.00761205951743174,0.00761205951743174, +0.0153793661095626,0.0153793661095626,0.0154007513096625,0.0153921227524425,0.0153625625142591,0.0153225016828134,0.0152818496289758,0.0152491145279466,0.0152308652215629,0.0152308652215629, +0.0353736861208167,0.0353736861208167,0.0354056325210525,0.0353791268584457,0.0353119823988819,0.0352247672934831,0.0351372287038036,0.0350667677326335,0.0350273694055476,0.0350273694055476, +0.0772081070582117,0.0772081070582117,0.0772467543059346,0.0771777530518274,0.0770342471237857,0.0768545968267487,0.0766758585326418,0.0765316603262071,0.0764505257641481,0.0764505257641481, +0.154822649447654,0.154822649447654,0.154847635328614,0.154692099117569,0.154412860336999,0.154075030881966,0.153741128821879,0.153469886016625,0.153315274699877,0.153315274699877, +0.283391475298682,0.283391475298682,0.28335978230221,0.283051874631088,0.282560279260889,0.281985056986043,0.281418599492267,0.280951272156356,0.280677379708024,0.280677379708024, +0.472641883659245,0.472641883659245,0.472498520232941,0.471954594740478,0.471171370233028,0.470287665651043,0.469417094603739,0.468675815619538,0.468213403382877,0.468213403382877, +0.718726042220268,0.718726042220268,0.718460309720034,0.717569711196425,0.71643417208035,0.715213411072373,0.714004523427316,0.712911171734675,0.712123531269671,0.712123531269671, + +00:14:09, +0.00772003024345877,0.00772003024345877,0.00773493187137193,0.00773230393803943,0.00771741712612639,0.0076962960600041,0.00767460504312873,0.00765710455321538,0.00764736022838855,0.00764736022838855, +0.00772003024345877,0.00772003024345877,0.00773493187137193,0.00773230393803943,0.00771741712612639,0.0076962960600041,0.00767460504312873,0.00765710455321538,0.00764736022838855,0.00764736022838855, +0.0154361631437972,0.0154361631437972,0.0154575916029921,0.0154489503385288,0.0154193327794805,0.0153791877303568,0.0153384462407425,0.0153056377093512,0.0152873473410077,0.0152873473410077, +0.0354744483778797,0.0354744483778797,0.0355064244755216,0.0354798876034473,0.035412659299871,0.0353253264563055,0.0352376636358561,0.0351671008601487,0.0351276457593214,0.0351276457593214, +0.0773729576611383,0.0773729576611383,0.0774115963469191,0.0773425450455193,0.0771989425773529,0.0770191603186969,0.0768402823220871,0.0766959698393619,0.0766147720875022,0.0766147720875022, +0.155057022233246,0.155057022233246,0.155081942961986,0.154926365412031,0.154647074248345,0.154309168669929,0.153975181344265,0.153703869605522,0.15354922243707,0.15354922243707, +0.283669981476891,0.283669981476891,0.283638192263534,0.283330325826662,0.282838827350251,0.28226370472159,0.281697335414574,0.281230085156858,0.280956245354503,0.280956245354503, +0.472901826862918,0.472901826862918,0.472758427672748,0.472214735791909,0.471431872659816,0.470548561796343,0.469678370458785,0.468937422824078,0.468475228380938,0.468475228380938, +0.718885730203561,0.718885730203561,0.718620130157823,0.717730050864798,0.716595178148301,0.715375123264497,0.714166929662891,0.713074211402913,0.71228703439818,0.71228703439818, + +00:14:10, +0.00775564006477514,0.00775564006477514,0.0077705862679247,0.0077679550846437,0.00775302818778437,0.00773184546727619,0.00771008841970675,0.00769253360090851,0.00768275885450276,0.00768275885450276, +0.00775564006477514,0.00775564006477514,0.0077705862679247,0.0077679550846437,0.00775302818778437,0.00773184546727619,0.00771008841970675,0.00769253360090851,0.00768275885450276,0.00768275885450276, +0.0154930645004933,0.0154930645004933,0.0155145361855226,0.015505882224349,0.0154762073837563,0.0154359781672587,0.0153951472882382,0.0153622653600795,0.015343933947027,0.015343933947027, +0.0355753028933464,0.0355753028933464,0.0356073085824648,0.0355807405372012,0.0355134285401217,0.0354259781746669,0.0353381913471988,0.0352675269458143,0.0352280151692343,0.0352280151692343, +0.0775378325325671,0.0775378325325671,0.077576462532951,0.077507361287569,0.0773636625922724,0.0771837488231802,0.0770047316004827,0.0768603052278064,0.0767790444989452,0.0767790444989452, +0.15529127731172,0.15529127731172,0.155316132874298,0.155160514164311,0.15488117104223,0.154543189959678,0.154209118034423,0.15393773790412,0.153783055179773,0.153783055179773, +0.283948198825798,0.283948198825798,0.283916313562583,0.283608488487784,0.283117087189423,0.282542064683583,0.281975784106719,0.281508611363388,0.281234824429964,0.281234824429964, +0.473161395130876,0.473161395130876,0.473017960349482,0.472474501855942,0.471691999842573,0.470809082563811,0.469939270878372,0.469198654509395,0.468736677747775,0.468736677747775, +0.71904514704012,0.71904514704012,0.71877967923694,0.717890118311573,0.716755910970918,0.715536561224083,0.714329060737351,0.713236975032231,0.71245026079485,0.71245026079485, + +00:14:11, +0.00779134792066216,0.00779134792066216,0.00780633871848718,0.00780370429245208,0.00778873730203055,0.007767492903004,0.00774566979155399,0.00772806061249653,0.00771825542566073,0.00771825542566073, +0.00779134792066216,0.00779134792066216,0.00780633871848718,0.00780370429245208,0.00778873730203055,0.007767492903004,0.00774566979155399,0.00772806061249653,0.00771825542566073,0.00771825542566073, +0.0155500700942764,0.0155500700942764,0.0155715849717524,0.0155629183244352,0.0155331862418254,0.0154928729086081,0.0154519526869584,0.0154189973959788,0.0154006249556691,0.0154006249556691, +0.0356762494094629,0.0356762494094629,0.0357082845843394,0.0356816854022263,0.0356142898621638,0.0355267221911419,0.0354388115805073,0.0353680457324236,0.0353284773781562,0.0353284773781562, +0.0777027313330374,0.0777027313330374,0.0777413525252028,0.0776722014391111,0.0775284068291132,0.0773483619999332,0.0771692060267336,0.0770246661498149,0.0769433426564194,0.0769433426564194, +0.155525414551539,0.155525414551539,0.155550204934685,0.15539454524321,0.155115150586057,0.154777094616502,0.154442938755409,0.154171490773699,0.154016772788317,0.154016772788317, +0.284226127738884,0.284226127738884,0.28419414659289,0.283886363007509,0.28339505916979,0.282820137260681,0.282253945954355,0.281786851159201,0.281513117316404,0.281513117316404, +0.473420589335688,0.473420589335688,0.473277119135315,0.472733893805114,0.471951752653526,0.471069228824357,0.470199796731709,0.469459511543435,0.468997752350852,0.468997752350852, +0.719204293494206,0.719204293494206,0.718938957722366,0.718049914304181,0.71691637131807,0.715697725722872,0.714490917423996,0.713399463397564,0.712613211236158,0.712613211236158, + +00:14:12, +0.00782715383917771,0.00782715383917771,0.00784218925085854,0.00783955158926186,0.0078245444968846,0.00780323839558133,0.00778134918748313,0.00776368561714328,0.00775384997122374,0.00775384997122374, +0.00782715383917771,0.00782715383917771,0.00784218925085854,0.00783955158926186,0.0078245444968846,0.00780323839558133,0.00778134918748313,0.00776368561714328,0.00775384997122374,0.00775384997122374, +0.0156071798395063,0.0156071798395063,0.0156287378759151,0.0156200585530545,0.0155902692681612,0.0155498718692261,0.0155088623521297,0.0154758337326257,0.0154574202827109,0.0154574202827109, +0.0357772876688971,0.0357772876688971,0.0358093522240251,0.0357827219414637,0.0357152430089476,0.0356275582487233,0.0355395240788727,0.0354686569631823,0.0354290321293679,0.0354290321293679, +0.0778676537244222,0.0778676537244222,0.0779062659861791,0.0778370651626122,0.0776931749497764,0.0775129995100221,0.0773337052610749,0.0771890522649903,0.0771076662191947,0.0771076662191947, +0.15575943382262,0.15575943382262,0.155784159013731,0.155628458518975,0.15534901274868,0.155010882507146,0.154676643371744,0.154405128077012,0.154250375124498,0.154250375124498, +0.28450376860941,0.28450376860941,0.284471691747767,0.284163949778667,0.283672743682521,0.283097922841338,0.282531821342948,0.282064804927374,0.281791124395652,0.281791124395652, +0.473679410347219,0.473679410347219,0.473535904899718,0.472992912509265,0.472211131962205,0.471329001446205,0.470459948885332,0.469719994791481,0.469258453054972,0.469258453054972, +0.719363170327089,0.719363170327089,0.719097966376086,0.718209439607043,0.717076559956611,0.715858617529589,0.714652500493106,0.713561677270822,0.712775886495548,0.712775886495548, + +00:14:13, +0.00786305784785743,0.00786305784785743,0.00787813789231631,0.00787549700234863,0.00786044979984415,0.00783908197287927,0.00781712663578356,0.00779940864348893,0.0077895425200292,0.0077895425200292, +0.00786305784785743,0.00786305784785743,0.00787813789231631,0.00787549700234863,0.00786044979984415,0.00783908197287927,0.00781712663578356,0.00779940864348893,0.0077895425200292,0.0077895425200292, +0.0156643936502791,0.0156643936502791,0.0156859948119815,0.0156773028242114,0.0156474563769732,0.0156069749636687,0.0155658761987113,0.015532774285328,0.0155143198436594,0.0155143198436594, +0.0358784174147397,0.0358784174147397,0.0359105112448247,0.035883849898278,0.0358162877238455,0.0357284860908232,0.0356403285858021,0.03556936038171,0.0355296791665625,0.0355296791665625, +0.0780325993699249,0.0780325993699249,0.0780712025797131,0.0780019521218674,0.0778579666174916,0.0776776610158411,0.0774982289650685,0.077353463234261,0.0772720148478658,0.0772720148478658, +0.155993334996324,0.155993334996324,0.15601799498346,0.155862253863297,0.1555827574004,0.155244553499807,0.154910231749403,0.154638649678267,0.154483862051578,0.154483862051578, +0.28478112183041,0.28478112183041,0.284748949420294,0.284441249193863,0.283950141118565,0.283375421813803,0.282809410657771,0.282342473050804,0.282068846049358,0.282068846049358, +0.473937859032645,0.473937859032645,0.473794318509471,0.473251558835538,0.472470138635452,0.471588401294903,0.470719728203113,0.469980105116161,0.46951878072229,0.46951878072229, +0.719521778297053,0.719521778297053,0.719256705957098,0.718368694981586,0.717236477650391,0.716019237409951,0.714813810711955,0.713723617420908,0.712938287343454,0.712938287343454, + +00:14:14, +0.00789905997371588,0.00789905997371588,0.0079141846696175,0.00791154055846754,0.00789645323788589,0.00787502366224744,0.00785300216422257,0.00783522971965109,0.00782533310039181,0.00782533310039181, +0.00789905997371588,0.00789905997371588,0.0079141846696175,0.00791154055846754,0.00789645323788589,0.00787502366224744,0.00785300216422257,0.00783522971965109,0.00782533310039181,0.00782533310039181, +0.0157217114404288,0.0157217114404288,0.0157433556936619,0.0157346510516497,0.0157047474822091,0.0156641821062284,0.015622994141397,0.0155898189691266,0.015571323553754,0.015571323553754, +0.035979638390505,0.035979638390505,0.0360117613904655,0.0359850690164574,0.0359174237506526,0.0358295054612741,0.0357412248452201,0.0356701557320409,0.0356304182338465,0.0356304182338465, +0.0781975679340752,0.0781975679340752,0.0782361619709628,0.0781668619819962,0.0780227814968128,0.0778423461811081,0.0776627768015992,0.077517898719877,0.077436388204348,0.077436388204348, +0.156227117945446,0.156227117945446,0.156251712717326,0.156095931149294,0.155816384412952,0.155478107464124,0.15514370375581,0.154872055443126,0.15471723343427,0.15471723343427, +0.285058187794691,0.285058187794691,0.28502592000332,0.28471826164547,0.284227251868651,0.283652634566115,0.283086714283899,0.2826198559122,0.282346282658992,0.282346282658992, +0.474195936256461,0.474195936256461,0.474052360828674,0.473509833648396,0.472728773537433,0.471847429233331,0.470979135546269,0.470239843377457,0.469778736212321,0.469778736212321, +0.719680118159418,0.719680118159418,0.719415177221432,0.718527681186257,0.717396125160274,0.716179586126684,0.714974848844821,0.713885284613727,0.713100414547307,0.713100414547307, + +00:14:15, +0.00793516024324772,0.00793516024324772,0.00795032960899983,0.00794768228385444,0.00793255483746688,0.0079110634905151,0.00788897580004654,0.00787114887322608,0.00786122174010473,0.00786122174010473, +0.00793516024324772,0.00793516024324772,0.00795032960899983,0.00794768228385444,0.00793255483746688,0.0079110634905151,0.00788897580004654,0.00787114887322608,0.00786122174010473,0.00786122174010473, +0.0157791331235298,0.0157791331235298,0.0158008204344073,0.0157921031488541,0.0157621424975569,0.0157214932109363,0.0156802160946175,0.0156469676987976,0.0156284313279686,0.0156284313279686, +0.0360809503401318,0.0360809503401318,0.0361131024051002,0.0360863790402158,0.0360186508335879,0.0359306161043298,0.0358422126014697,0.035771042758625,0.0357312490757404,0.0357312490757404, +0.0783625590827259,0.0783625590827259,0.0784011438264074,0.078331794409439,0.0781876192536151,0.0780070546708619,0.0778273484348708,0.0776823583854064,0.077600785951874,0.077600785951874, +0.156460782544211,0.156460782544211,0.156485312090206,0.15632949025151,0.156049893659501,0.155711544271169,0.155377059259827,0.155105345238694,0.154950489138734,0.154950489138734, +0.285334966894823,0.285334966894823,0.285302603889459,0.284994987525628,0.284504076323278,0.283929561486097,0.283363732606209,0.282896953894081,0.28262343460584,0.28262343460584, +0.47445364288049,0.47445364288049,0.474310032718754,0.473767737809632,0.472987037529645,0.472106086121713,0.471238171773374,0.470499210432719,0.470038320381948,0.470038320381948, +0.719838190666554,0.719838190666554,0.71957338092216,0.718686398976538,0.717555503244151,0.716339664439541,0.71513561565301,0.714046679612207,0.713262268871558,0.713262268871558, + +00:14:16, +0.00797135868242898,0.00797135868242898,0.00798657273618293,0.00798392220422714,0.00796875462452566,0.00794720148399243,0.00792504756998213,0.00790716613129007,0.00789720846644079,0.00789720846644079, +0.00797135868242898,0.00797135868242898,0.00798657273618293,0.00798392220422714,0.00796875462452566,0.00794720148399243,0.00792504756998213,0.00790716613129007,0.00789720846644079,0.00789720846644079, +0.0158366586128982,0.0158366586128982,0.0158583889474122,0.0158496590290527,0.0158196413364469,0.0157789081915639,0.0157375419725419,0.0157042203888541,0.0156856430810132,0.0156856430810132, +0.0361823530079846,0.0361823530079846,0.0362145340333074,0.0361877797141929,0.0361199687172951,0.0360318177646664,0.0359432915993128,0.035872021206329,0.0358321714371802,0.0358321714371802, +0.0785275724830488,0.0785275724830488,0.0785661478138437,0.0784967490719534,0.0783524795550909,0.0781717861514579,0.0779919435304033,0.0778468418957315,0.0777652077549901,0.0777652077549901, +0.156694328668259,0.156694328668259,0.156718792978395,0.156562931045907,0.156283285014631,0.155944863793439,0.15561029813175,0.155338518933512,0.155183629032568,0.155183629032568, +0.285611459523143,0.285611459523143,0.285579001471085,0.285271427226237,0.284780614872718,0.284206202961359,0.283640466009372,0.283173767378774,0.282900302270998,0.282900302270998, +0.474710979763893,0.474710979763893,0.474567335038478,0.474025272178372,0.473244931470929,0.472364372817626,0.471496837740367,0.47075820713667,0.470297534085434,0.470297534085434, +0.719995996567893,0.719995996567893,0.719731317809417,0.718844849104963,0.717714612656956,0.716499473105314,0.715296111894864,0.71420780317631,0.713423851077687,0.713423851077687, + +00:14:17, +0.00800765531671817,0.00800765531671817,0.00802291407636956,0.00802026034478655,0.00800505262448348,0.00798343766847169,0.00796121750023747,0.00794328152040026,0.00793329330615365,0.00793329330615365, +0.00800765531671817,0.00800765531671817,0.00802291407636956,0.00802026034478655,0.00800505262448348,0.00798343766847169,0.00796121750023747,0.00794328152040026,0.00793329330615365,0.00793329330615365, +0.0158942878215946,0.0158942878215946,0.0159160611456157,0.0159073186052185,0.0158772439120531,0.0158364269616251,0.0157949716890798,0.0157615769535484,0.015742958727336,0.015742958727336, +0.0362838461388546,0.0362838461388546,0.036316056020093,0.0362892707834553,0.0362213771468436,0.0361331101873832,0.0360444615839322,0.0359730908204373,0.0359331850635181,0.0359331850635181, +0.0786926078035311,0.0786926078035311,0.0787311736023821,0.0786617256386109,0.0785173620697463,0.0783365402905646,0.0781565617550283,0.0780113489170456,0.0779296532795528,0.0779296532795528, +0.156927756194646,0.156927756194646,0.156952155259593,0.156796253409851,0.156516558354336,0.15617806590485,0.155843420243295,0.155571576397547,0.155416652984798,0.155416652984798, +0.285887666071747,0.285887666071747,0.285855113140328,0.285547581138958,0.285056867907009,0.284482559379287,0.283916914877853,0.283450296748409,0.283176886035374,0.283176886035374, +0.47496794776318,0.47496794776318,0.47482426864396,0.474282437611093,0.473502456217477,0.472622290176011,0.471755134300564,0.47101683434142,0.470556378174433,0.470556378174433, +0.720153536609946,0.720153536609946,0.71988898863041,0.719003032321128,0.717873454150683,0.716659012877847,0.715456338325776,0.714368656063047,0.713585161924218,0.713585161924218, + +00:14:18, +0.00804405017105758,0.00804405017105758,0.00805935365424681,0.00805669673021795,0.00804144886224556,0.00801977206922841,0.00799748561650339,0.00797949506659612,0.00796947628547902,0.00796947628547902, +0.00804405017105758,0.00804405017105758,0.00805935365424681,0.00805669673021795,0.00804144886224556,0.00801977206922841,0.00799748561650339,0.00797949506659612,0.00796947628547902,0.00796947628547902, +0.0159520206624249,0.0159520206624249,0.0159738369417042,0.0159650817900715,0.0159349501372958,0.0158940494343781,0.0158525051578836,0.0158190373068736,0.0158003781811255,0.0158003781811255, +0.0363854294779602,0.0363854294779602,0.0364176681108911,0.0363908519934978,0.0363228758677296,0.0362344931180037,0.0361457223009314,0.036074251346653,0.0360342897005236,0.0360342897005236, +0.078857664713972,0.078857664713972,0.0788962208624435,0.0788267237797926,0.0786822664673972,0.0785013167571602,0.0783212027768861,0.0781758791168494,0.078094122192725,0.078094122192725, +0.157161065001827,0.157161065001827,0.1571853988129,0.15702945722211,0.156749713556016,0.156411150480728,0.156076425467595,0.155804517502188,0.155649560865873,0.155649560865873, +0.286163586932486,0.286163586932486,0.286130939289075,0.285823449655206,0.28533283581595,0.284758631127044,0.284193079595907,0.283726542384914,0.283453186279678,0.283453186279678, +0.47522454773222,0.47522454773222,0.475080834388675,0.47453923496163,0.473759612622844,0.472879839049182,0.472013062304663,0.47127509289647,0.470814853497993,0.470814853497993, +0.720310811536315,0.720310811536315,0.720046394129438,0.719160949371712,0.718032028474395,0.716818284508057,0.715616295698209,0.714529239026494,0.713746202166739,0.713746202166739, + +00:14:19, +0.00808054326987441,0.00808054326987441,0.00809589149398727,0.00809323138469219,0.0080779433622022,0.00805620471102264,0.00803385194395457,0.00801580679540056,0.00800575743013584,0.00800575743013584, +0.00808054326987441,0.00808054326987441,0.00809589149398727,0.00809323138469219,0.0080779433622022,0.00805620471102264,0.00803385194395457,0.00801580679540056,0.00800575743013584,0.00800575743013584, +0.0160098570479435,0.0160098570479435,0.0160317162481128,0.0160229484960806,0.0159927599248433,0.0159517755228276,0.0159101422923498,0.015876601362566,0.0158579013563121,0.0158579013563121, +0.0364871027709485,0.0364871027709485,0.0365193700515646,0.036492523090244,0.0364244646258767,0.0363359663024767,0.0362470734963364,0.0361755025310988,0.0361354850943844,0.0361354850943844, +0.0790227428854787,0.0790227428854787,0.0790612892657549,0.0789917431671857,0.078847192419166,0.0786661152215288,0.0784858662654219,0.0783404321639469,0.0782586141629724,0.0782586141629724, +0.157394254969656,0.157394254969656,0.157418523518807,0.157262542362842,0.156982750498466,0.156644117397798,0.156309313679189,0.156037342120232,0.155882352547655,0.155882352547655, +0.286439222496967,0.286439222496967,0.286406480308961,0.286099033166148,0.285608518989104,0.285034418591565,0.284468960547572,0.284002504670013,0.283729203384422,0.283729203384422, +0.47548078052225,0.47548078052225,0.475337033123465,0.474795665081183,0.474016401537956,0.473137020286832,0.472270622600758,0.471532983648727,0.471072960902575,0.471072960902575, +0.720467822087712,0.720467822087712,0.720203535047902,0.719318601000486,0.718190336374243,0.716977288743941,0.715775984761706,0.714689552817807,0.713906972557909,0.713906972557909, + +00:14:20, +0.00811713463708204,0.00811713463708204,0.00813252761925034,0.00812986433186685,0.00811453614823012,0.00809273561810014,0.0080703165072508,0.00805221673182112,0.00804213676532746,0.00804213676532746, +0.00811713463708204,0.00811713463708204,0.00813252761925034,0.00812986433186685,0.00811453614823012,0.00809273561810014,0.0080703165072508,0.00805221673182112,0.00804213676532746,0.00804213676532746, +0.0160677968904542,0.0160677968904542,0.0160896989770276,0.0160809186354656,0.0160506731871136,0.0160096051397263,0.0159678830056215,0.0159342690341063,0.0159155281665703,0.0159155281665703, +0.0365888657638958,0.0365888657638958,0.0366211615884064,0.036594283820047,0.0365261431676368,0.0364375294871769,0.0363485149165963,0.0362768441203183,0.0362367709917074,0.0362367709917074, +0.079187841990463,0.079187841990463,0.0792263784853464,0.0791567834737803,0.0790121395974777,0.0788309353552567,0.0786505518913818,0.0785050077284424,0.0784231288600602,0.0784231288600602, +0.157627325979371,0.157627325979371,0.157651529259189,0.15749550871359,0.157215669061868,0.156876966534182,0.156542084754017,0.156270050125881,0.15611502790341,0.15611502790341, +0.286714573156545,0.286714573156545,0.286681736591367,0.2863743320627,0.285883917815787,0.285309922159554,0.284744558116669,0.284278183985223,0.284004937729915,0.284004937729915, +0.475736646981886,0.475736646981886,0.47559286569655,0.475051728818331,0.474272823811124,0.47339383473605,0.472527816034348,0.471790507442512,0.471330701232053,0.471330701232053, +0.720624569001969,0.720624569001969,0.72036041212432,0.71947598794833,0.718348378593481,0.717136026330596,0.715935406262909,0.714849598185235,0.714067473847479,0.714067473847479, + +00:14:21, +0.00815382429608122,0.00815382429608122,0.00816926205318336,0.00816659559488757,0.00815122724369356,0.0081293648141936,0.00810687933053816,0.00808872490035121,0.00807861431574291,0.00807861431574291, +0.00815382429608122,0.00815382429608122,0.00816926205318336,0.00816659559488757,0.00815122724369356,0.0081293648141936,0.00810687933053816,0.00808872490035121,0.00807861431574291,0.00807861431574291, +0.0161258401020124,0.0161258401020124,0.016147785040387,0.0161389921201988,0.0161086898362765,0.0160675381975771,0.0160257272105899,0.0159920402347222,0.0159732585253206,0.0159732585253206, +0.0366907182033084,0.0366907182033084,0.03672304246814,0.0366961339296907,0.0366279112397915,0.0365391824189059,0.0364500463085841,0.0363782758612763,0.0363381471395195,0.0363381471395195, +0.0793529617026373,0.0793529617026373,0.0793914881955472,0.0793218443738652,0.0791771076760563,0.0789957768312288,0.0788152593268097,0.0786696054817366,0.0785876659550493,0.0785876659550493, +0.157860277913591,0.157860277913591,0.157884415917295,0.157728356157274,0.157448469127787,0.157109697769386,0.15677473856941,0.156502641394733,0.156347586807804,0.156347586807804, +0.286989639302321,0.286989639302321,0.286956708527422,0.286649346735523,0.286159032685069,0.28558514221748,0.285019872686799,0.284553580711851,0.284280389696261,0.284280389696261, +0.475992147957128,0.475992147957128,0.475848332953539,0.47530742701904,0.474528880288045,0.473650283241325,0.472784643448346,0.472047665119567,0.471588075327731,0.471588075327731, +0.720781053014054,0.720781053014054,0.720517026094344,0.719633110953247,0.718506155872476,0.717294498010231,0.716094560945568,0.715009375874134,0.714227706782303,0.714227706782303, + +00:14:22, +0.00819061226976129,0.00819061226976129,0.00820609481842286,0.00820342519638915,0.00818801667144557,0.00816609232252383,0.00814354043745024,0.00812533132497127,0.00811519010555801,0.00811519010555801, +0.00819061226976129,0.00819061226976129,0.00820609481842286,0.00820342519638915,0.00818801667144557,0.00816609232252383,0.00814354043745024,0.00812533132497127,0.00811519010555801,0.00811519010555801, +0.0161839865944275,0.0161839865944275,0.0162059743498844,0.0161971688620074,0.0161668097842555,0.0161255746086349,0.0160836748198964,0.0160499148773903,0.0160310923457313,0.0160310923457313, +0.0367926598361238,0.0367926598361238,0.0368250124379207,0.0367980731663905,0.0367297685895523,0.0366409248448931,0.0365516674195977,0.03647979750136,0.0364396132852689,0.0364396132852689, +0.0795181016970115,0.0795181016970115,0.0795566180719819,0.0794869255430243,0.0793420963299209,0.0791606393236249,0.0789799882450435,0.0788342250965228,0.0787522251202926,0.0787522251202926, +0.158093110656306,0.158093110656306,0.158117183377743,0.157961084578179,0.157681150579156,0.157342310984294,0.157007275004081,0.156735115803773,0.156580029136892,0.156580029136892, +0.287264421325141,0.287264421325141,0.287231396507991,0.286924077575019,0.286433863985769,0.285860079151573,0.285294904641335,0.284828695230985,0.284555559663354,0.284555559663354, +0.476247284291379,0.476247284291379,0.476103435737437,0.475562760526671,0.474784571811822,0.473906366644558,0.473041105683085,0.472304457519067,0.471845084028348,0.471845084028348, +0.720937274856086,0.720937274856086,0.720673377690772,0.719789970750377,0.718663668948727,0.717452704522181,0.716253449550559,0.715168886626984,0.714387672106353,0.714387672106353, + +00:14:23, +0.00822749858050142,0.00822749858050142,0.00824302593709582,0.00824035315849686,0.00822490445382923,0.00820291816580103,0.00818029985110935,0.00816203602915004,0.00815186415843666,0.00815186415843666, +0.00822749858050142,0.00822749858050142,0.00824302593709582,0.00824035315849686,0.00822490445382923,0.00820291816580103,0.00818029985110935,0.00816203602915004,0.00815186415843666,0.00815186415843666, +0.016242236279264,0.016242236279264,0.0162642668169696,0.0162554487723749,0.0162250329427297,0.0161837142849085,0.0161417257459345,0.0161078928748373,0.0160890295407203,0.0160890295407203, +0.0368946904097114,0.0368946904097114,0.036927071245336,0.0369001012777938,0.0368317149645617,0.0367427565127966,0.0366533779973611,0.0365814087883803,0.0365411691768255,0.0365411691768255, +0.0796832616498886,0.0796832616498886,0.0797217677915669,0.0796520266581332,0.0795071052353826,0.0793255225079161,0.0791447383207113,0.0789988662467838,0.0789168060294316,0.0789168060294316, +0.15832582409287,0.15832582409287,0.158349831526511,0.158193693861952,0.157913713300276,0.15757480606116,0.15723969393812,0.156967473231366,0.156812354768109,0.156812354768109, +0.28753891961559,0.28753891961559,0.287505800923679,0.287198524971331,0.286708412106453,0.286134733347824,0.285569654363424,0.285103527923499,0.284830448010875,0.284830448010875, +0.476502056825445,0.476502056825445,0.476358174888658,0.475817730181993,0.475039899222967,0.47416208578507,0.473297203576336,0.47256088547763,0.47210172817009,0.47210172817009, +0.721093235257348,0.721093235257348,0.720829467643564,0.719946568072014,0.718820918556877,0.717610646602923,0.716412072815898,0.715328131183399,0.714547370560732,0.714547370560732, + +00:14:24, +0.00826448325017182,0.00826448325017182,0.00828005543082084,0.00827737950282765,0.00826189061267886,0.00823984236622598,0.00821715759412775,0.00819883903584574,0.00818863649753201,0.00818863649753201, +0.00826448325017182,0.00826448325017182,0.00828005543082084,0.00827737950282765,0.00826189061267886,0.00823984236622598,0.00821715759412775,0.00819883903584574,0.00818863649753201,0.00818863649753201, +0.0163005890678441,0.0163005890678441,0.0163226623528505,0.0163138317625432,0.0162833592231355,0.0162419571381626,0.0161998799008517,0.0161659741395426,0.0161470700229574,0.0161470700229574, +0.0369968096718733,0.0369968096718733,0.0370292186384068,0.0370022180119814,0.0369337501128942,0.0368446771707041,0.0367551777900246,0.036683109470572,0.0366428145624822,0.0366428145624822, +0.0798484412388617,0.0798484412388617,0.0798869370325068,0.0798171473973553,0.0796721340700403,0.0794904260608613,0.0793095092297279,0.079163528607788,0.0790814083573929,0.0790814083573929, +0.158558418109994,0.158558418109994,0.158582360250928,0.158426183895594,0.158146157176802,0.157807182883601,0.157471995252985,0.157199713557249,0.157044563580267,0.157044563580267, +0.287813134563989,0.287813134563989,0.287779922164825,0.287472689314337,0.286982677435431,0.286409105191978,0.28584412223598,0.285378079170044,0.285105055118288,0.285105055118288, +0.476756466397549,0.476756466397549,0.476612551245031,0.476072336823191,0.47529486335941,0.474417441499614,0.473552937963308,0.472816949829324,0.472358008586597,0.472358008586597, +0.721248934944301,0.721248934944301,0.720985296679854,0.720102903647613,0.718977905428727,0.71776832498609,0.716570431476753,0.715487110280147,0.714706802883693,0.714706802883693, + +00:14:25, +0.00830156630013497,0.00830156630013497,0.00831718332070942,0.00831450425049136,0.00829897516932124,0.00827686494549126,0.00825411368860887,0.00823574036750727,0.00822550714548767,0.00822550714548767, +0.00830156630013497,0.00830156630013497,0.00831718332070942,0.00831450425049136,0.00829897516932124,0.00827686494549126,0.00825411368860887,0.00823574036750727,0.00822550714548767,0.00822550714548767, +0.0163590448712488,0.0163590448712488,0.0163811608684955,0.0163723177435146,0.0163417885366687,0.0163003030799193,0.0162581371965513,0.01622415858374,0.0162052137048657,0.0162052137048657, +0.0370990173708451,0.0370990173708451,0.037131454365588,0.0371044231174678,0.0370358737830568,0.0369466865671334,0.0368570665461661,0.0367848992965949,0.0367445491909552,0.0367445491909552, +0.0800136401428099,0.0800136401428099,0.0800521254742906,0.0799822874401382,0.0798371825127773,0.0796553496605034,0.0794743006492915,0.0793282118560858,0.0792460317803842,0.0792460317803842, +0.158790892595734,0.158790892595734,0.158814769439669,0.158658554567448,0.158378482095738,0.158039441336588,0.157704178831494,0.157431836662524,0.157276655453543,0.157276655453543, +0.288087066560394,0.288087066560394,0.288053760621498,0.287746570993645,0.287256660360752,0.286683195069532,0.286118308641684,0.285652349351045,0.285379381364839,0.285379381364839, +0.477010513843344,0.477010513843344,0.476866565641815,0.476326581285874,0.475549465056516,0.474672434622381,0.473808309676662,0.473072651405677,0.472613926108975,0.472613926108975, +0.721404374640599,0.721404374640599,0.721140865523964,0.720258978203814,0.71913463029325,0.717925740402482,0.716728526265463,0.715645824651157,0.714865969810646,0.714865969810646, + +00:14:26, +0.00833874775124687,0.00833874775124687,0.00835440962736716,0.00835172742209198,0.00833615814457689,0.00831398592478252,0.00829116815614853,0.00827274004607548,0.00826247612443897,0.00826247612443897, +0.00833874775124687,0.00833874775124687,0.00835440962736716,0.00835172742209198,0.00833615814457689,0.00831398592478252,0.00829116815614853,0.00827274004607548,0.00826247612443897,0.00826247612443897, +0.0164176036003208,0.0164176036003208,0.0164397622746351,0.0164309066260534,0.0164003207942863,0.0163587520214605,0.0163164975446943,0.0162824461194194,0.0162634604986238,0.0162634604986238, +0.0372013132552967,0.0372013132552967,0.0372337781757695,0.0372067163432023,0.0371380857239902,0.0370487844510337,0.036959044014792,0.0368867780155349,0.0368463728113857,0.0368463728113857, +0.080178858041895,0.080178858041895,0.0802173327976883,0.0801474464672102,0.0800022502437576,0.0798202929861657,0.0796391122578794,0.0794929156695061,0.0794106759758914,0.0794106759758914, +0.159023247439491,0.159023247439491,0.159047058982743,0.158890805767196,0.158610687945431,0.158271581306439,0.157936244557816,0.157663842429647,0.157508630269473,0.157508630269473, +0.288360715994591,0.288360715994591,0.288327316683495,0.288020170398595,0.287530361270201,0.286957003365733,0.286392213962976,0.285926338846699,0.285653427129549,0.285653427129549, +0.477264199995914,0.477264199995914,0.4771202189117,0.476580464403088,0.475803705147084,0.474927065985013,0.474063319546524,0.473327991035688,0.472869481565801,0.472869481565801, +0.721559555067102,0.721559555067102,0.721296174897421,0.720414792464447,0.719291093876608,0.718082893580084,0.716886357911543,0.71580427502754,0.715024872074176,0.715024872074176, + +00:14:27, +0.00837602762385825,0.00837602762385825,0.00839173437089503,0.00838904903772886,0.00837343955876124,0.00835120532477967,0.00832832101783618,0.00830983809298436,0.00829954345601414,0.00829954345601414, +0.00837602762385825,0.00837602762385825,0.00839173437089503,0.00838904903772886,0.00837343955876124,0.00835120532477967,0.00832832101783618,0.00830983809298436,0.00829954345601414,0.00829954345601414, +0.0164762651656652,0.0164762651656652,0.0164984664817637,0.016489598320688,0.0164589559067085,0.0164173038738295,0.0163749608567012,0.0163408366583287,0.0163218103161674,0.0163218103161674, +0.0373036970743334,0.0373036970743334,0.0373361898182766,0.0373090974385697,0.0372403856850691,0.0371509705717859,0.0370611099453378,0.0369887453769045,0.03694828517334,0.03694828517334, +0.0803440946175572,0.0803440946175572,0.0803825586847469,0.0803126241605761,0.0801673369444222,0.0799852557184482,0.0798039437352452,0.0796576397271526,0.0795753406226743,0.0795753406226743, +0.159255482531994,0.159255482531994,0.15927922877149,0.159122937385848,0.158842774615559,0.158503602680812,0.158168192317467,0.157895730742426,0.157740487910944,0.157740487910944, +0.288634083256093,0.288634083256093,0.288600590740338,0.288293487918252,0.287803780551299,0.287230530465572,0.286665838582056,0.286200048036974,0.285927192791213,0.285927192791213, +0.477517525685791,0.477517525685791,0.477373511884827,0.476833987005322,0.476057584461366,0.47518133641661,0.474317968400485,0.473582969545834,0.473124675783138,0.473124675783138, +0.72171447694189,0.72171447694189,0.721451225518967,0.720570347150551,0.719447296902161,0.718239785244077,0.717043927141709,0.715962462137597,0.715183510404059,0.715183510404059, + +00:14:28, +0.00841340593781583,0.00841340593781583,0.00842915757089057,0.00842646911699798,0.00841081943168592,0.00838852316565814,0.00836557229425609,0.00834703452916225,0.00833670916133554,0.00833670916133554, +0.00841340593781583,0.00841340593781583,0.00842915757089057,0.00842646911699798,0.00841081943168592,0.00838852316565814,0.00836557229425609,0.00834703452916225,0.00833670916133554,0.00833670916133554, +0.0165350294776524,0.0165350294776524,0.0165572734001415,0.0165483927377124,0.01651769378442,0.0164759585478328,0.0164335270437541,0.016399330111976,0.0163802630691917,0.0163802630691917, +0.037406168577496,0.037406168577496,0.037438689042871,0.0374115661533909,0.0373427734161033,0.0372532446792038,0.0371632640876687,0.0370908011306439,0.0370502860268106,0.0370502860268106, +0.0805093495525125,0.0805093495525125,0.0805478028187871,0.0804778202035145,0.0803324422974856,0.0801502375392241,0.0799687947624145,0.0798223837094003,0.0797400254007633,0.0797400254007633, +0.1594875977653,0.1594875977653,0.159511278698572,0.159354949315738,0.159074741997128,0.158735505348696,0.158400021997299,0.15812750148601,0.157972228262186,0.157972228262186, +0.288907168734137,0.288907168734137,0.288873583181271,0.288566523941405,0.288076918591296,0.287503776753784,0.286939182880881,0.286473477301601,0.286200678728398,0.286200678728398, +0.477770491740962,0.477770491740962,0.477626445388787,0.477087149920521,0.476311103827071,0.475435246743741,0.474572257063619,0.473837587760083,0.47337950958454,0.47337950958454, +0.721869140980278,0.721869140980278,0.721606018104574,0.720725642980386,0.719603240090485,0.718396416116854,0.717201234679883,0.716120386706835,0.71534188552727,0.71534188552727, + +00:14:29, +0.00845088271246353,0.00845088271246353,0.00846667924644916,0.00846398767899318,0.00844829778266,0.00842593946709012,0.00840292200548866,0.00838432937503313,0.0083739732610209,0.0083739732610209, +0.00845088271246353,0.00845088271246353,0.00846667924644916,0.00846398767899318,0.00844829778266,0.00842593946709012,0.00840292200548866,0.00838432937503313,0.0083739732610209,0.0083739732610209, +0.0165938964464193,0.0165938964464193,0.0166161829397963,0.0166072897871886,0.0165765343376726,0.016534715954042,0.0164921960167984,0.0164579263916311,0.0164388186691525,0.0164388186691525, +0.0375087275147622,0.0375087275147622,0.0375412755997518,0.0375141222379239,0.0374452486673384,0.0373556065235347,0.037265506192081,0.0371929450271215,0.0371523751222171,0.0371523751222171, +0.080674622530748,0.080674622530748,0.0807130648843991,0.0806430342805731,0.0804975659869319,0.080315238131636,0.0801336650216816,0.079987147297892,0.0799047299914563,0.0799047299914563, +0.159719593032784,0.159719593032784,0.159743208657963,0.159586841450511,0.159306589982461,0.158967289200403,0.158631733485494,0.158359154546879,0.158203851208765,0.158203851208765, +0.289179972817682,0.289179972817682,0.289146294395257,0.288839278856562,0.28834977577717,0.287776742614842,0.287212247241156,0.286746627020072,0.286473885319437,0.286473885319437, +0.478023098986878,0.478023098986878,0.477879020248639,0.477339953974091,0.476564264069374,0.475688797790451,0.474826186358488,0.474091846499896,0.473633983791062,0.473633983791062, +0.722023547894826,0.722023547894826,0.72176055336746,0.720880680669447,0.719758924159382,0.718552786918032,0.717358281247209,0.716278049457984,0.715499998168001,0.715499998168001, + +00:14:30, +0.00848845796664374,0.00848845796664374,0.00850429941616526,0.0085016047423074,0.0084858746304912,0.00846345424824577,0.00844037017111158,0.0084217226505178,0.00841133577518454,0.00841133577518454, +0.00848845796664374,0.00848845796664374,0.00850429941616526,0.0085016047423074,0.0084858746304912,0.00846345424824577,0.00844037017111158,0.0084217226505178,0.00841133577518454,0.00841133577518454, +0.0166528659818714,0.0166528659818714,0.0166751950105257,0.0166662893789478,0.0166354774764865,0.0165935760027957,0.0165509676865445,0.0165166254083272,0.0164974770272687,0.0164974770272687, +0.037611373636547,0.037611373636547,0.0376439492395558,0.0376167654428642,0.0375478111894565,0.0374580558554599,0.0373678360093023,0.0372951768171348,0.0372545522104066,0.0372545522104066, +0.0808399132375189,0.0808399132375189,0.0808783445674396,0.0808082660775658,0.0806627076980115,0.0804802571800926,0.080298554196606,0.0801519301755345,0.0800694540773142,0.0800694540773142, +0.15995146822913,0.15995146822913,0.159975018544944,0.159818613685122,0.159538318465192,0.159198954127564,0.158863326671556,0.158590689812842,0.158435356637577,0.158435356637577, +0.289452495895405,0.289452495895405,0.289418724770974,0.28911175305195,0.288622352495623,0.288049428432959,0.287485032044339,0.287019497571641,0.286746812942427,0.286746812942427, +0.478275348246463,0.478275348246463,0.478131237286916,0.477592399988913,0.47681706601093,0.475941990378273,0.475079757105152,0.474345746584246,0.473888099221271,0.473888099221271, +0.722177698395357,0.722177698395357,0.721914832018099,0.721035460930478,0.719914349823897,0.718708898364467,0.717515067562071,0.716435451111005,0.715657849047675,0.715657849047675, + +00:14:31, +0.00852613171869859,0.00852613171869859,0.00854201809813366,0.00853932032503392,0.00852354999348716,0.00850106752779451,0.00847791681020111,0.00845921437503511,0.00844879672343863,0.00844879672343863, +0.00852613171869859,0.00852613171869859,0.00854201809813366,0.00853932032503392,0.00852354999348716,0.00850106752779451,0.00847791681020111,0.00845921437503511,0.00844879672343863,0.00844879672343863, +0.0167119379936843,0.0167119379936843,0.0167343095218981,0.0167253914225928,0.0166945231106523,0.0166525386042013,0.0166098419634698,0.0165754270728633,0.0165562380545236,0.0165562380545236, +0.0377141066937036,0.0377141066937036,0.0377467097133582,0.0377194955193461,0.0376504607335768,0.0375605924260961,0.0374702532904923,0.0373974962519113,0.0373568170426552,0.0373568170426552, +0.0810052213593444,0.0810052213593444,0.0810436415550279,0.0809735152815686,0.0808278671172371,0.0806452943702647,0.0804634619720087,0.0803167320264951,0.080234197342158,0.080234197342158, +0.160183223250324,0.160183223250324,0.160206708256096,0.160050265915824,0.159769927340258,0.159430500023116,0.159094801446303,0.158822107173026,0.158666744436837,0.158666744436837, +0.289724738355699,0.289724738355699,0.289690874696814,0.289383946915507,0.28889464913308,0.288321834592077,0.287757537671632,0.287292089335315,0.287019461975225,0.287019461975225, +0.478527240340124,0.478527240340124,0.478383097323631,0.47784448878535,0.477069510471879,0.476194825326236,0.475332970121179,0.474599288829617,0.474141856691252,0.474141856691252, +0.722331593188969,0.722331593188969,0.722068854764238,0.721189984473485,0.720069517796331,0.718864751170266,0.7176715943401,0.716592592383107,0.715815438884957,0.715815438884957, + +00:14:32, +0.00856390398647112,0.00856390398647112,0.00857983530995073,0.00857713444476767,0.00856132388945669,0.00853877932390624,0.00851556194133333,0.00849680456750325,0.00848635612489436,0.00848635612489436, +0.00856390398647112,0.00856390398647112,0.00857983530995073,0.00857713444476767,0.00856132388945669,0.00853877932390624,0.00851556194133333,0.00849680456750325,0.00848635612489436,0.00848635612489436, +0.016771112391306,0.016771112391306,0.0167935263832557,0.0167845958274993,0.0167536711497331,0.0167116036681367,0.0166688187578206,0.0166343312958057,0.0166151016616672,0.0166151016616672, +0.037816926437524,0.037816926437524,0.0378495567726738,0.0378223122189426,0.0377531970512566,0.0376632159869952,0.0375727577872441,0.0374999030831091,0.037459169370668,0.037459169370668, +0.0811705465840047,0.0811705465840047,0.081208955535542,0.0811387815809162,0.0809930439323802,0.0808103493890817,0.0806283880339683,0.0804815525361982,0.0803989594710652,0.0803989594710652, +0.160414857993649,0.160414857993649,0.16043827768929,0.160281798040161,0.160001416503893,0.1596619267813,0.159326157701861,0.159053406517868,0.158898014496073,0.158898014496073, +0.289996700586667,0.289996700586667,0.289962744560877,0.289655860834886,0.289166666075683,0.288593961475871,0.288029764503981,0.287564402689854,0.287291832795449,0.287291832795449, +0.478778776085762,0.478778776085762,0.478634601176292,0.478096221181256,0.477321598269856,0.476447303450874,0.475585826221653,0.474852474050021,0.47439525701462,0.47439525701462, +0.722485232980046,0.722485232980046,0.722222622310906,0.72134425200575,0.720224428786251,0.719020346046801,0.717827862294193,0.716749473988759,0.715972768395768,0.715972768395768, + +00:14:33, +0.00860177478730662,0.00860177478730662,0.00861775106871565,0.00861504711860638,0.00859919633571103,0.00857658965425258,0.00855330558258534,0.00853449324634094,0.00852401399816326,0.00852401399816326, +0.00860177478730662,0.00860177478730662,0.00861775106871565,0.00861504711860638,0.00859919633571103,0.00857658965425258,0.00855330558258534,0.00853449324634094,0.00852401399816326,0.00852401399816326, +0.0168303890839587,0.0168303890839587,0.016852845503715,0.0168439025028182,0.0168129215030656,0.0167707711042523,0.0167278979796137,0.0166933379874896,0.0166740677592179,0.0166740677592179, +0.0379198326197396,0.0379198326197396,0.0379524901694571,0.0379252152936668,0.0378560198944916,0.037765926290146,0.0376753492515842,0.0376023970628176,0.0375616089465802,0.0375616089465802, +0.0813358886005367,0.0813358886005367,0.0813742861986152,0.0813040646651984,0.0811582378324677,0.0809754219247282,0.080793332069818,0.0806463913913213,0.080563740150366,0.080563740150366, +0.160646372357673,0.160646372357673,0.160669726743682,0.160513209956962,0.160232785853618,0.159893234297649,0.159557395331656,0.159284587739111,0.15912916670612,0.15912916670612, +0.290268382976125,0.290268382976125,0.290234334750972,0.289927495197447,0.289438403709292,0.288865809467743,0.28830171292207,0.287836438013771,0.287563925780467,0.287563925780467, +0.479029956298777,0.479029956298777,0.47888574965991,0.478347597991986,0.477573330220003,0.476699425566236,0.475838326219183,0.475105303057003,0.474648301002527,0.474648301002527, +0.722638618470274,0.722638618470274,0.722376135360433,0.721498264231843,0.720379083500509,0.719175683702724,0.717983872134522,0.716906096639706,0.7161298382933,0.7161298382933, + +00:14:34, +0.00863974413805381,0.00863974413805381,0.0086557653910317,0.00865305836315193,0.00863716734906507,0.00861449853600814,0.00859114775153656,0.00857228042946871,0.00856177036135837,0.00856177036135837, +0.00863974413805381,0.00863974413805381,0.0086557653910317,0.00865305836315193,0.00863716734906507,0.00861449853600814,0.00859114775153656,0.00857228042946871,0.00856177036135837,0.00856177036135837, +0.0168897679806399,0.0168897679806399,0.0169122667921696,0.016903311357477,0.0168722740797627,0.0168300408219729,0.0167870795386385,0.0167524470580213,0.016733136257464,0.016733136257464, +0.0380228249925221,0.0380228249925221,0.0380555096561035,0.038028204495972,0.037958929015717,0.0378687230879739,0.0377780274359736,0.0377049779435584,0.0376641355229577,0.0376641355229577, +0.0815012470992305,0.0815012470992305,0.0815396332351326,0.0814693642252563,0.0813234485077778,0.0811405116666399,0.0809582937681415,0.0808112482797919,0.0807285390676395,0.0807285390676395, +0.160877766242248,0.160877766242248,0.160901055319704,0.160744501566335,0.160464035288235,0.160124422468985,0.159788514230403,0.159515650729792,0.159360200959112,0.159360200959112, +0.290539785911593,0.290539785911593,0.290505645654611,0.290198850390255,0.289709862419476,0.289137378950819,0.288573383306322,0.28810819568532,0.287835741307402,0.287835741307402, +0.479280781792082,0.479280781792082,0.479136543587005,0.478598620030406,0.477824707134974,0.476951192483893,0.476090470923913,0.475357776659651,0.474900989463672,0.474900989463672, +0.722791750358655,0.722791750358655,0.722529394612457,0.721652021853638,0.720533482643251,0.719330764843979,0.718139624568549,0.717062461044979,0.716286649288028,0.716286649288028, + +00:14:35, +0.00867781205506615,0.00867781205506615,0.00869387829300751,0.00869116819451157,0.00867523694583865,0.00865250598585178,0.00862908846526995,0.0086101661343101,0.00859962523209554,0.00859962523209554, +0.00867781205506615,0.00867781205506615,0.00869387829300751,0.00869116819451157,0.00867523694583865,0.00865250598585178,0.00862908846526995,0.0086101661343101,0.00859962523209554,0.00859962523209554, +0.0169492489901251,0.0169492489901251,0.0169717901572917,0.0169628223001819,0.0169317287887147,0.016889412730499,0.0168463633444584,0.01681165841728,0.0167923070664659,0.0167923070664659, +0.038125903308484,0.038125903308484,0.0381586149854495,0.0381312795787529,0.0380619241678078,0.0379716061333426,0.0378807920933084,0.037807645478286,0.0377667488527982,0.0377667488527982, +0.0816666217716262,0.0816666217716262,0.0817049963372272,0.0816346799531785,0.0814886756498368,0.0813056183055006,0.0811232728187695,0.0809761228907838,0.0808933559117109,0.0808933559117109, +0.161109039548495,0.161109039548495,0.161132263319058,0.160975672769654,0.160695164707821,0.160355491193407,0.160019514294106,0.159746595384238,0.159591117148472,0.159591117148472, +0.290810909780295,0.290810909780295,0.290776677659009,0.290469926800078,0.289981042591519,0.289408670307947,0.288844776036892,0.288379676082504,0.288107279753125,0.288107279753125, +0.479531253376109,0.479531253376109,0.479386983767617,0.478849288106901,0.478075729824948,0.477202605012951,0.476342261143531,0.475609895664606,0.475153323204311,0.475153323204311, +0.722944629341516,0.722944629341516,0.722682400763942,0.721805525570324,0.720687626915932,0.719485590173815,0.718295120301043,0.717218567910909,0.716443202087725,0.716443202087725, + +00:14:36, +0.00871597855420307,0.00871597855420307,0.00873208979025829,0.00872937662829917,0.00871340514185781,0.00869061201996784,0.00866712774037327,0.00864815037779297,0.00863757862749462,0.00863757862749462, +0.00871597855420307,0.00871597855420307,0.00873208979025829,0.00872937662829917,0.00871340514185781,0.00869061201996784,0.00866712774037327,0.00864815037779297,0.00863757862749462,0.00863757862749462, +0.0170088320209691,0.0170088320209691,0.0170314155075336,0.0170224352394193,0.0169912855385915,0.0169488867388093,0.016905749306413,0.0168709719749191,0.0168515800960576,0.0168515800960576, +0.0382290673206795,0.0382290673206795,0.0382618059107735,0.0382344402953458,0.0381650051040797,0.0380745751795537,0.0379836429769206,0.0379103994203881,0.0378694486895313,0.0378694486895313, +0.0818320123105098,0.0818320123105098,0.0818703751982762,0.0818000115422979,0.0816539189514152,0.0814707415332381,0.0812882689127765,0.0811410149147131,0.0810581903726473,0.0810581903726473, +0.161340192178803,0.161340192178803,0.161363350644706,0.161206723469559,0.160926174013717,0.160586440370287,0.160250395420045,0.159977421598058,0.159821915168908,0.159821915168908, +0.291081754969158,0.291081754969158,0.291047431151078,0.290740724813385,0.290251944610409,0.289679683921694,0.289115891493669,0.288650879583062,0.288378541494251,0.288378541494251, +0.479781371858821,0.479781371858821,0.479637071009318,0.479099603029385,0.478326399097637,0.477453663960057,0.476593697683279,0.475861660876068,0.475405303028262,0.475405303028262, +0.723097256112526,0.723097256112526,0.722835154509191,0.721958776078419,0.720841517017329,0.7196401603928,0.718450360034085,0.717374417941142,0.716599497397471,0.716599497397471, + +00:14:37, +0.00875424365083125,0.00875424365083125,0.00877039989790713,0.00876768367963651,0.00875167195245601,0.00872881665404743,0.00870526559294032,0.00868623317635068,0.00867563056418076,0.00867563056418076, +0.00875424365083125,0.00875424365083125,0.00877039989790713,0.00876768367963651,0.00875167195245601,0.00872881665404743,0.00870526559294032,0.00868623317635068,0.00867563056418076,0.00867563056418076, +0.0170685169815079,0.0170685169815079,0.01709114275113,0.0170821500834578,0.0170509442378441,0.0170084627556618,0.0169652373336198,0.0169303876403687,0.016910955255849,0.016910955255849, +0.0383323167826048,0.0383323167826048,0.0383650821857966,0.0383376863995294,0.0382681715782895,0.0381776299803483,0.0380865798405785,0.0380132395236868,0.0379722347870196,0.0379722347870196, +0.0819974184099097,0.0819974184099097,0.0820357695128978,0.0819653586871879,0.0818191781065241,0.0816358810430208,0.0814532817424765,0.0813059240432352,0.0812230421417543,0.0812230421417543, +0.16157122403682,0.16157122403682,0.161594317200867,0.161437653569942,0.161157063108526,0.160817269900263,0.160481157506769,0.160208129268136,0.160052594916406,0.160052594916406, +0.291352321864806,0.291352321864806,0.291317906517427,0.291011244816342,0.290522568860839,0.289950420174343,0.289386730056268,0.288921806564475,0.28864952690714,0.28864952690714, +0.480031138045716,0.480031138045716,0.479886806117216,0.479349565603307,0.478576715758293,0.477704370129408,0.476844781345958,0.476113073095809,0.475656929736919,0.475656929736919, +0.723249631362709,0.723249631362709,0.722987656539854,0.722111774071781,0.720995153643553,0.719794476198832,0.71860534446709,0.717530011836651,0.71675553591967,0.71675553591967, + +00:14:38, +0.00879260735982586,0.00879260735982586,0.00880880863058627,0.00880608936315451,0.00879003739247546,0.00876711990328967,0.00874350203857224,0.00872441454592342,0.00871378105828564,0.00871378105828564, +0.00879260735982586,0.00879260735982586,0.00880880863058627,0.00880608936315451,0.00879003739247546,0.00876711990328967,0.00874350203857224,0.00872441454592342,0.00871378105828564,0.00871378105828564, +0.0171283037798602,0.0171283037798602,0.0171509717960993,0.0171419667403499,0.0171107047947066,0.0170681406895961,0.0170248273349757,0.0169899053228368,0.0169704324552268,0.0169704324552268, +0.0384356514481987,0.0384356514481987,0.038468443564683,0.0384410176455253,0.0383714233446362,0.0382807702899071,0.0381896024384877,0.038116165542439,0.0380751068995593,0.0380751068995593, +0.082162839765093,0.082162839765093,0.0822011789769471,0.0821307210836584,0.0819844528104119,0.081801036529254,0.0816183110014202,0.0814708499692411,0.0813879109115725,0.0813879109115725, +0.161802135027442,0.161802135027442,0.161825162893007,0.161668462975945,0.1613878318961,0.161047979685229,0.160711800454093,0.160438718292621,0.16028315628822,0.16028315628822, +0.291622610853559,0.291622610853559,0.291588104144358,0.29128148719481,0.290792915727204,0.290220879447889,0.289657292104029,0.289192457403956,0.288920236367891,0.288920236367891, +0.480280552739842,0.480280552739842,0.480136189893968,0.479599176631668,0.478826680609719,0.477954724322762,0.477095512931941,0.476364133123178,0.475908204129257,0.475908204129257, +0.723401755780453,0.723401755780453,0.723139907544947,0.722264520241626,0.721148537488065,0.719948538287155,0.718760074296813,0.717685350295748,0.716911318354065,0.716911318354065, + +00:14:39, +0.00883106969557185,0.00883106969557185,0.00884731600243831,0.00884459369299456,0.00882850147626833,0.00880552178240294,0.00878183709237871,0.0087626945019594,0.0087520301254487,0.0087520301254487, +0.00883106969557185,0.00883106969557185,0.00884731600243831,0.00884459369299456,0.00882850147626833,0.00880552178240294,0.00878183709237871,0.0087626945019594,0.0087520301254487,0.0087520301254487, +0.0171881923239298,0.0171881923239298,0.0172109025502455,0.0172018851179338,0.0171705671171978,0.0171279204489348,0.017084519219159,0.0170495249313115,0.0170300116033572,0.0170300116033572, +0.0385390710718438,0.0385390710718438,0.0385718898020407,0.038544433787999,0.0384747601577608,0.0383839958628509,0.0382927105252913,0.0382191772313371,0.0381780647818807,0.0381780647818807, +0.0823282760725623,0.0823282760725623,0.0823666032875127,0.0822960984287528,0.0821497427595601,0.0819662076875763,0.0817833563843907,0.0816357923868535,0.081552796375874,0.081552796375874, +0.162032925056813,0.162032925056813,0.162055887627833,0.161899151593951,0.161618480281538,0.161278569628329,0.160942324163084,0.160669188570924,0.160513599182864,0.160513599182864, +0.291892622321428,0.291892622321428,0.291858024417865,0.29155145233434,0.291062985593598,0.290491062124039,0.289927578016016,0.28946283247845,0.289190670252339,0.289190670252339, +0.480529616741803,0.480529616741803,0.480385223139788,0.479848436915019,0.479076294452278,0.478204727339446,0.477345893239181,0.476614841755114,0.476159127001843,0.476159127001843, +0.723553630051528,0.723553630051528,0.723291908210863,0.722417015276535,0.721301669241685,0.720102347350371,0.718914550217365,0.717840434014097,0.717066845397743,0.717066845397743, + +00:14:40, +0.00886963067196518,0.00886963067196518,0.00888592202711756,0.00888319668280972,0.00886706421769807,0.0088440223056062,0.00882027076897926,0.00880107305941614,0.00879037778081843,0.00879037778081843, +0.00886963067196518,0.00886963067196518,0.00888592202711756,0.00888319668280972,0.00886706421769807,0.0088440223056062,0.00882027076897926,0.00880107305941614,0.00879037778081843,0.00879037778081843, +0.0172481825214068,0.0172481825214068,0.0172709349211603,0.0172619051238351,0.0172305311131229,0.0171878019417857,0.0171443128946314,0.0171092463745624,0.0170896926091872,0.0170896926091872, +0.0386425754083664,0.0386425754083664,0.038675420652922,0.0386479345820599,0.0385781817727476,0.0384873064542418,0.0383959038560711,0.0383222743455097,0.038281108189149,0.038281108189149, +0.0824937270300514,0.0824937270300514,0.0825320421429131,0.082461490420744,0.0823150476516803,0.0821313942148563,0.0819484175874006,0.0818007509914235,0.0817176982296585,0.0817176982296585, +0.16226359403231,0.16226359403231,0.162286491313282,0.162129719331574,0.161849008171175,0.161509039633952,0.161172728536062,0.160899540003708,0.160743923500112,0.160743923500112, +0.292162356654118,0.292162356654118,0.292127667723626,0.291821140620176,0.291332778843813,0.290760968584208,0.290197588171011,0.289732932164634,0.289460828936054,0.289460828936054, +0.480778330849769,0.480778330849769,0.480633906652456,0.48009734725148,0.479325558083903,0.478454379976362,0.477595923063219,0.476865199786149,0.476409699148844,0.476409699148844, +0.723705254859095,0.723705254859095,0.723443659221381,0.722569259862471,0.721454549592608,0.720255904078451,0.719068772920226,0.717995263684731,0.717222117745155,0.717222117745155, + +00:14:41, +0.00890829030241417,0.00890829030241417,0.00892462671779123,0.00892189834576602,0.00890572563014064,0.00888262148663021,0.00885880308250452,0.00883955023276173,0.00882882403905364,0.00882882403905364, +0.00890829030241417,0.00890829030241417,0.00892462671779123,0.00892189834576602,0.00890572563014064,0.00888262148663021,0.00885880308250452,0.00883955023276173,0.00882882403905364,0.00882882403905364, +0.0173082742797695,0.0173082742797695,0.0173310688162242,0.0173220266654685,0.0172905966900756,0.0172477850760429,0.0172042082696392,0.0171690695611426,0.0171494753814463,0.0171494753814463, +0.0387461642130374,0.0387461642130374,0.0387790358728243,0.0387515197832623,0.0386816879451246,0.0385907018195833,0.0384991821863476,0.0384254566405219,0.038384236876965,0.038384236876965, +0.0826591923365223,0.0826591923365223,0.082697495242693,0.0826268967591307,0.08248036718571,0.0822965958091886,0.0821134943076878,0.0819657254795273,0.0818826161691503,0.0818826161691503, +0.162494141862542,0.162494141862542,0.162516973858522,0.162360166097659,0.162079415472577,0.16173938960772,0.161403013476584,0.161129772492883,0.160974129140981,0.160974129140981, +0.292431814237018,0.292431814237018,0.29239703444701,0.292090552437245,0.291602295861331,0.291030599209514,0.290467322947516,0.290002756838908,0.289730712794337,0.289730712794337, +0.481026695859483,0.481026695859483,0.480882241227326,0.480345908436745,0.479574472300104,0.478703683028004,0.477845603197192,0.477115208008424,0.476659921362035,0.476659921362035, +0.723856630883719,0.723856630883719,0.723595161257684,0.72272125468279,0.721607179226414,0.720409209158752,0.719222743094259,0.718149839998058,0.717377136088128,0.717377136088128, + +00:14:42, +0.00894704859984067,0.00894704859984067,0.00896343008714077,0.00896069869454376,0.00894448572648578,0.00892131933871882,0.00889743404659748,0.00887812603597609,0.00886736891432464,0.00886736891432464, +0.00894704859984067,0.00894704859984067,0.00896343008714077,0.00896069869454376,0.00894448572648578,0.00892131933871882,0.00889743404659748,0.00887812603597609,0.00886736891432464,0.00886736891432464, +0.0173684675062864,0.0173684675062864,0.0173913041426088,0.0173822496500397,0.0173507637554393,0.0173078697593893,0.0172642052522155,0.0172289943993904,0.0172093598286486,0.0172093598286486, +0.0388498372415727,0.0388498372415727,0.0388827352176903,0.0388551891476057,0.0387852784308637,0.0386941817148209,0.038602545272081,0.0385287238723765,0.0384874506013654,0.0384874506013654, +0.082824671692161,0.082824671692161,0.0828629622876196,0.082792317144634,0.0826457010618096,0.0824618121698902,0.0822785862437123,0.0821307155489621,0.0820475498917944,0.0820475498917944, +0.16272456845734,0.16272456845734,0.162747335173936,0.162590491802265,0.162309702094532,0.161969619456488,0.161633178889445,0.161359885941594,0.16120421600773,0.16120421600773, +0.292700995455205,0.292700995455205,0.292666124973064,0.292359688170161,0.291871537029329,0.291299954380779,0.290736782723744,0.290272306877399,0.290000322202219,0.290000322202219, +0.481274712564272,0.481274712564272,0.481130227657335,0.480594121264087,0.479823037893975,0.478952637286456,0.478094934431846,0.47736486721169,0.47690979443081,0.47690979443081, +0.724007758803386,0.724007758803386,0.72374641499837,0.722873000418254,0.721759558826085,0.720562263276023,0.719376461425718,0.718304163641878,0.717531901115873,0.717531901115873, + +00:14:43, +0.0089859055766814,0.0089859055766814,0.00900233214736312,0.00899959774133875,0.00898334451913834,0.00896011587463021,0.00893616367441475,0.00891680048255223,0.00890601242031462,0.00890601242031462, +0.0089859055766814,0.0089859055766814,0.00900233214736312,0.00899959774133875,0.00898334451913834,0.00896011587463021,0.00893616367441475,0.00891680048255223,0.00890601242031462,0.00890601242031462, +0.0174287621080174,0.0174287621080174,0.0174516408072784,0.017442573984547,0.0174110322163894,0.0173680558992977,0.0173243037501817,0.017289020797431,0.017269345859094,0.017269345859094, +0.0389535942501342,0.0389535942501342,0.0389865184439089,0.0389589424315355,0.0388889529863819,0.0387977458963428,0.0387059928696715,0.0386320757975138,0.0385907491188237,0.0385907491188237, +0.0829901647983746,0.0829901647983746,0.0830284429796795,0.0829577512791938,0.0828110489813583,0.0826270429974973,0.0824436930951526,0.0822957208987429,0.082212499096253,0.082212499096253, +0.162954873727751,0.162954873727751,0.162977575171121,0.162820696356669,0.162539867947046,0.162199729088329,0.161863224680666,0.161589880254222,0.161434184003854,0.161434184003854, +0.292969900693437,0.292969900693437,0.292934939686518,0.292628548203218,0.292140502730671,0.291569034478525,0.291005967877622,0.290541582655951,0.290269657534454,0.290269657534454, +0.481522381755057,0.481522381755057,0.481377866733015,0.480841986524376,0.48007125565621,0.47920124354141,0.478343917555538,0.477614178183324,0.477159319142187,0.477159319142187, +0.724158639293509,0.724158639293509,0.723897421119463,0.723024497747044,0.721911689072012,0.720715067112424,0.719529928598266,0.718458235301396,0.717686413515003,0.717686413515003, + +00:14:44, +0.00902486124488922,0.00902486124488922,0.00904133291017199,0.00903859549786359,0.0090223020200195,0.00899901110663824,0.00897499197862788,0.00895557358549751,0.0089447545702208,0.0089447545702208, +0.00902486124488922,0.00902486124488922,0.00904133291017199,0.00903859549786359,0.0090223020200195,0.00899901110663824,0.00897499197862788,0.00895557358549751,0.0089447545702208,0.0089447545702208, +0.0174891579918162,0.0174891579918162,0.0175120787169916,0.0175029995757831,0.0174714019798947,0.0174283434030329,0.0173845036711496,0.0173491486631784,0.0173294333808705,0.0173294333808705, +0.0390574349953297,0.0390574349953297,0.0390903853083152,0.0390627793919435,0.0389927113685412,0.0389013941209805,0.0388095247359602,0.0387355121728132,0.0386941321862507,0.0386941321862507, +0.083155671357787,0.083155671357787,0.0831939370220741,0.083123198865965,0.0829764106469507,0.0827922879937615,0.0826088145629019,0.0824607412290987,0.0823774634824019,0.0823774634824019, +0.163185057586029,0.163185057586029,0.163207693762878,0.163050779673348,0.162769912941334,0.162429718412533,0.162093150757488,0.16181975533637,0.161664033034072,0.161664033034072, +0.293238530336151,0.293238530336151,0.29320347897178,0.29289713292039,0.292409193347907,0.291837839882969,0.291274878786785,0.29081058455013,0.290538719165521,0.290538719165521, +0.481769704220358,0.481769704220358,0.481625159242498,0.481089505006078,0.480319126375104,0.47944950258017,0.478592553354251,0.477863141708333,0.477408496280821,0.477408496280821, +0.724309273026944,0.724309273026944,0.724048180294427,0.723175747344772,0.722063570642013,0.720867621347536,0.719683145292984,0.718612055659232,0.717840673969544,0.717840673969544, + +00:14:45, +0.00906391561593439,0.00906391561593439,0.00908043238679912,0.00907769197534899,0.00906135824056807,0.00903800504653365,0.00901391897142455,0.00899444535733493,0.00898359537675579,0.00898359537675579, +0.00906391561593439,0.00906391561593439,0.00908043238679912,0.00907769197534899,0.00906135824056807,0.00903800504653365,0.00901391897142455,0.00899444535733493,0.00898359537675579,0.00898359537675579, +0.0175496550643314,0.0175496550643314,0.017572617778303,0.0175635263303367,0.0175318729527191,0.0174887321776534,0.0174448049225225,0.0174093779043369,0.0173896223018559,0.0173896223018559, +0.0391613592342139,0.0391613592342139,0.0391943355681919,0.0391666997861684,0.0390965533346495,0.0390051261460094,0.0389131406282295,0.0388390327555926,0.038797599560995,0.038797599560995, +0.0833211910742357,0.0833211910742357,0.0833594441192171,0.0832886596093141,0.0831417857623932,0.0829575468616459,0.0827739503490651,0.0826257762414695,0.0825424427513273,0.0825424427513273, +0.163415119945631,0.163415119945631,0.163437690863207,0.163280741665981,0.162999836989813,0.162659587339598,0.162322957028367,0.162049511094858,0.161893763004324,0.161893763004324, +0.293506884767465,0.293506884767465,0.293471743212932,0.293165442705327,0.29267760926327,0.292106370974024,0.291543515828575,0.291079312935216,0.290807507469619,0.290807507469619, +0.482016680746307,0.482016680746307,0.481872105971527,0.481336677495271,0.480566650836567,0.479697415187661,0.4788408426116,0.478111758569364,0.477657326629009,0.477657326629009, +0.724459660674003,0.724459660674003,0.724198693194177,0.723326749884492,0.72221520421134,0.721019926658373,0.719836112188386,0.718765625395436,0.717994683160944,0.717994683160944, + +00:14:46, +0.00910306870080587,0.00910306870080587,0.0091196305879956,0.00911688718454501,0.00910051319174178,0.00907709770562536,0.00905294466450993,0.00903341581010439,0.00902253485214879,0.00902253485214879, +0.00910306870080587,0.00910306870080587,0.0091196305879956,0.00911688718454501,0.00910051319174178,0.00907709770562536,0.00905294466450993,0.00903341581010439,0.00902253485214879,0.00902253485214879, +0.0176102532320086,0.0176102532320086,0.0176332578975651,0.0176241541545944,0.0175924450414235,0.017549222130013,0.0175052074114975,0.017469708428403,0.0174499125297188,0.0174499125297188, +0.0392653667242886,0.0392653667242886,0.039298368981269,0.0392707033719963,0.039200478642461,0.0391089417291488,0.0390168403042033,0.03894263730361,0.0389011510008436,0.0389011510008436, +0.0834867236527682,0.0834867236527682,0.0835249639767301,0.0834541332148154,0.0833071740327003,0.0831228193053222,0.0829391001569543,0.082790825638502,0.0827074366053216,0.0827074366053216, +0.163645060721208,0.163645060721208,0.163667566387298,0.163510582249438,0.163229640006095,0.162889335781222,0.162552643402963,0.162279147437718,0.16212337382176,0.16212337382176, +0.293774964371169,0.293774964371169,0.29373973279373,0.293433477941354,0.292945750858675,0.292374628131297,0.291811879380036,0.291347768186201,0.291076022820666,0.291076022820666, +0.482263312116653,0.482263312116653,0.482118707703464,0.481583504775652,0.48081382982413,0.479944982146441,0.479088786108839,0.478360029546712,0.4779058109667,0.4779058109667, +0.724609802902466,0.724609802902466,0.724348960487094,0.723477506036718,0.722366590452697,0.721171983719396,0.719988829960427,0.718918945187498,0.718148441768092,0.718148441768092, + +00:14:47, +0.0091423205100126,0.0091423205100126,0.00915892752403313,0.00915618113572236,0.00913976688401856,0.0091162890947418,0.00909206906910789,0.00907248495536396,0.00906157300814692,0.00906157300814692, +0.0091423205100126,0.0091423205100126,0.00915892752403313,0.00915618113572236,0.00913976688401856,0.0091162890947418,0.00909206906910789,0.00907248495536396,0.00906157300814692,0.00906157300814692, +0.0176709524010921,0.0176709524010921,0.0176939989809298,0.0176848829547423,0.0176531181523674,0.0176098131667624,0.0175657110450669,0.0175301401426669,0.0175103039719215,0.0175103039719215, +0.0393694572235037,0.0393694572235037,0.0394024853057245,0.0393747899076611,0.0393044870501767,0.0392128406285632,0.0391206235220482,0.0390463255750634,0.0390047862640226,0.0390047862640226, +0.083652268799638,0.083652268799638,0.0836904963014394,0.0836196193892476,0.0834725751640912,0.0832881050301665,0.0831042636910862,0.0829558891240465,0.0828724447478808,0.0828724447478808, +0.163874879828599,0.163874879828599,0.163897320251527,0.163740301339773,0.163459321904979,0.163118963650296,0.162782209792138,0.162508664274185,0.162352865394741,0.162352865394741, +0.294042769530726,0.294042769530726,0.294007448097599,0.293701239011468,0.293213618515716,0.292642611734081,0.292079969817917,0.291615950677791,0.291344265592293,0.291344265592293, +0.482509599112774,0.482509599112774,0.482364965219299,0.481829987628543,0.481060664118955,0.480192204236704,0.479336384624875,0.47860795541833,0.478153950071505,0.478153950071505, +0.724759700377591,0.724759700377591,0.724498982839035,0.723628016469429,0.72251773003625,0.721323793202522,0.720141299282523,0.719072015710361,0.718301950467323,0.718301950467323, + +00:14:48, +0.00918167105358475,0.00918167105358475,0.00919832320470532,0.00919557383867369,0.0091791193273978,0.0091555792242321,0.00913129219596235,0.00911165280419116,0.00910070985601642,0.00910070985601642, +0.00918167105358475,0.00918167105358475,0.00919832320470532,0.00919557383867369,0.0091791193273978,0.0091555792242321,0.00913129219596235,0.00911165280419116,0.00910070985601642,0.00910070985601642, +0.0177317524776264,0.0177317524776264,0.0177548409343504,0.0177457126367676,0.0177138921917106,0.0176705051943512,0.0176263157300202,0.0175906729542144,0.0175707965357204,0.0175707965357204, +0.0394736304902568,0.0394736304902568,0.0395066843001851,0.039478959151845,0.039408578316445,0.039316822602862,0.0392244900403735,0.0391500973285914,0.0391085051091975,0.0391085051091975, +0.0838178262223017,0.0838178262223017,0.0838560408013723,0.0837851178405901,0.0836379888639861,0.083453403742756,0.0832694406571779,0.0831209664031535,0.0830374668837001,0.0830374668837001, +0.164104577184823,0.164104577184823,0.164126952373446,0.163969898854218,0.163688882602449,0.163348470860901,0.163011656107945,0.162738061514692,0.162582237632822,0.162582237632822, +0.294310300629271,0.294310300629271,0.294274889507634,0.293968726298335,0.293481212615661,0.292910322161359,0.292347787518662,0.291883860784396,0.291612236157845,0.291612236157845, +0.482755542513684,0.482755542513684,0.482610879297658,0.482076126832903,0.481307154499844,0.480439082236295,0.479583638936269,0.478855536959836,0.478401744718702,0.478401744718702, +0.724909353762128,0.724909353762128,0.724648760913345,0.723778281848085,0.722668623629636,0.721475355777143,0.720293520825555,0.719224837636436,0.718455209932438,0.718455209932438, + +00:14:49, +0.00922112034107506,0.00922112034107506,0.00923781763932895,0.00923506530271488,0.00921857053140168,0.00919496810396747,0.00917061405533847,0.00915091936718424,0.00913994540654402,0.00913994540654402, +0.00922112034107506,0.00922112034107506,0.00923781763932895,0.00923506530271488,0.00921857053140168,0.00919496810396747,0.00917061405533847,0.00915091936718424,0.00913994540654402,0.00913994540654402, +0.0177926533674581,0.0177926533674581,0.0178157836635828,0.0178066431064606,0.0177747670654148,0.0177312981190295,0.0176870213729453,0.0176513067699287,0.0176313901281688,0.0176313901281688, +0.0395778862833947,0.0395778862833947,0.0396109657237264,0.0395832108636794,0.0395127522003618,0.0394208874111008,0.0393284396182317,0.039253952323274,0.0392123072954737,0.0392123072954737, +0.0839833956294148,0.0839833956294148,0.0840215971857535,0.0839506282780193,0.0838034148410026,0.0836187151508655,0.0834346307621438,0.0832860571820698,0.0832025027186708,0.0832025027186708, +0.164334152708074,0.164334152708074,0.164356462671777,0.164199374711175,0.163918322015662,0.163577857328297,0.163240982263623,0.162967339070859,0.162811490446751,0.162811490446751, +0.294577558049605,0.294577558049605,0.294542057406596,0.294235940184288,0.293748533539456,0.293177759791796,0.292615332858413,0.292151498880133,0.291879934890377,0.291879934890377, +0.483001143096042,0.483001143096042,0.482856450714814,0.482321923165335,0.481553301743246,0.480685616920714,0.479830549817251,0.479102774944523,0.478649195681249,0.478649195681249, +0.725058763716333,0.725058763716333,0.72479829537087,0.723928302835639,0.722819271897981,0.72162667211013,0.720445495257886,0.719377411635611,0.718608220834708,0.718608220834708, + +00:14:50, +0.0092606683815601,0.0092606683815601,0.00927741083674529,0.00927465553668631,0.00925812050507642,0.00923445574334243,0.00921003465702401,0.00919028465446345,0.00917927967003812,0.00917927967003812, +0.0092606683815601,0.0092606683815601,0.00927741083674529,0.00927465553668631,0.00925812050507642,0.00923445574334243,0.00921003465702401,0.00919028465446345,0.00917927967003812,0.00917927967003812, +0.0178536549762372,0.0178536549762372,0.0178768270741876,0.0178676742694158,0.0178357426792454,0.0177921918468494,0.0177478278802307,0.0177120414964918,0.0176920846561181,0.0176920846561181, +0.0396822243622131,0.0396822243622131,0.0397153293358736,0.0396875448027445,0.0396170084614714,0.039525034812781,0.0394324720151194,0.039357890318633,0.0393161925823973,0.0393161925823973, +0.0841489767308282,0.0841489767308282,0.0841871651650014,0.0841161504119053,0.0839688528049521,0.0837840389634636,0.0835998337140917,0.0834511611682351,0.0833675519598767,0.0833675519598767, +0.164563606317712,0.164563606317712,0.164585851066407,0.164428728830212,0.164147640062941,0.163807122968917,0.163470188173591,0.163196496855491,0.163040623748464,0.163040623748464, +0.294844542174196,0.294844542174196,0.294808952176907,0.294502881051325,0.294015581667714,0.293444925003743,0.292882606213006,0.292418865338822,0.292147362162651,0.292147362162651, +0.483246401634161,0.483246401634161,0.483101680244692,0.482567377400096,0.481799106623268,0.480931809063128,0.480077118039725,0.479349670143366,0.478896303729787,0.478896303729787, +0.725207930897975,0.725207930897975,0.72494758686997,0.724078080092551,0.722969675503908,0.721777742865849,0.720597223245373,0.719529738375262,0.718760983842893,0.718760983842893, + +00:14:51, +0.00930031518364157,0.00930031518364157,0.00931710280532139,0.00931434454895419,0.00929776925699362,0.0092740421512761,0.00924955401033058,0.00922974867567233,0.00921871265633014,0.00921871265633014, +0.00930031518364157,0.00930031518364157,0.00931710280532139,0.00931434454895419,0.00929776925699362,0.0092740421512761,0.00924955401033058,0.00922974867567233,0.00921871265633014,0.00921871265633014, +0.0179147572094194,0.0179147572094194,0.0179379710715318,0.0179288060310343,0.0178968189387734,0.0178531862836669,0.0178087351580668,0.0177728770403865,0.0177528800262193,0.0177528800262193, +0.0397866444864574,0.0397866444864574,0.0398197748966018,0.0397919607290705,0.0397213468597668,0.0396292645678511,0.0395365869909772,0.039461911074632,0.0394201607299553,0.0394201607299553, +0.0843145692375851,0.0843145692375851,0.0843527444507248,0.084281683953808,0.0841343024668363,0.0839493748907094,0.0837650492223194,0.0836162780702786,0.0835326143155908,0.0835326143155908, +0.164792937934259,0.164792937934259,0.164815117478381,0.164657961132053,0.164376836663774,0.16403626770036,0.163699273753438,0.163425534782571,0.163269637451073,0.163269637451073, +0.295111253385173,0.295111253385173,0.295075574200653,0.294769549281107,0.29428235738072,0.293711818175227,0.293149607957968,0.292685960533984,0.292414518347136,0.292414518347136, +0.483491318900016,0.483491318900016,0.483346568658883,0.482812490309104,0.482044569911681,0.481177659434374,0.48032334437328,0.479596223325031,0.479143069632654,0.479143069632654, +0.725356855962354,0.725356855962354,0.725096636066531,0.724227614276796,0.723119835107551,0.721928568706176,0.720748705451376,0.719681818520271,0.71891349962325,0.71891349962325, + +00:14:52, +0.00934006075544756,0.00934006075544756,0.00935689355295135,0.00935413234741181,0.00933751679525149,0.00931372733621352,0.00928917212409495,0.00926931143997899,0.00925824437477577,0.00925824437477577, +0.00934006075544756,0.00934006075544756,0.00935689355295135,0.00935413234741181,0.00933751679525149,0.00931372733621352,0.00928917212409495,0.00926931143997899,0.00925824437477577,0.00925824437477577, +0.0179759599722672,0.0179759599722672,0.0179992155607901,0.0179900382965249,0.0179579957493765,0.0179142813351434,0.017869743112448,0.0178338133078975,0.0178137761449252,0.0178137761449252, +0.039891146416323,0.039891146416323,0.0399243021663362,0.0398964584031377,0.0398257671556899,0.0397335764367064,0.0396407843061909,0.0395660143516778,0.0395242114985763,0.0395242114985763, +0.0844801728619167,0.0844801728619167,0.0845183347557191,0.0844472286164738,0.0842997635388436,0.0841147226439486,0.0839302769973111,0.0837814075980153,0.0836976894952714,0.0836976894952714, +0.16502214747939,0.16502214747939,0.16504426182989,0.164887071538573,0.164605911738801,0.164265291441387,0.163928238919922,0.163654452767247,0.163498531468862,0.163498531468862, +0.29537769206433,0.29537769206433,0.295341923859577,0.295035945254954,0.294548861058424,0.293978439683955,0.293416338468516,0.292952784838836,0.292681403816,0.292681403816, +0.483735895663252,0.483735895663252,0.483591116726646,0.483057262661948,0.482289692377931,0.481423168802975,0.480569229585195,0.479842435255883,0.479389494155889,0.479389494155889, +0.725505539562306,0.725505539562306,0.725245443613973,0.724376906043876,0.723269751366566,0.722079150290503,0.720899942536775,0.719833652733032,0.719065768839548,0.719065768839548, + +00:14:53, +0.00937990510463389,0.00937990510463389,0.00939678308705763,0.00939401893948085,0.00937736312747618,0.00935351130612691,0.00932888900668029,0.0093089729560774,0.00929787483425624,0.00929787483425624, +0.00937990510463389,0.00937990510463389,0.00939678308705763,0.00939401893948085,0.00937736312747618,0.00935351130612691,0.00932888900668029,0.0093089729560774,0.00929787483425624,0.00929787483425624, +0.018037263169852,0.018037263169852,0.0180605604469467,0.018051370970906,0.0180192730162412,0.0179754769067475,0.0179308516491739,0.0178948502051141,0.0178747729184916,0.0178747729184916, +0.0399957299124558,0.0399957299124558,0.040028910905953,0.0400010375858769,0.0399302691101322,0.03983797018019,0.039745063721591,0.03967019991062,0.0396283446491307,0.0396283446491307, +0.0846457873172394,0.0846457873172394,0.0846839357939628,0.0846127841138319,0.0844652357343454,0.0842800819357105,0.0840955167507342,0.0839465494624427,0.0838627772095588,0.0838627772095588, +0.165251234875926,0.165251234875926,0.165273284044275,0.165116059972792,0.164834865209809,0.164494194111912,0.164157083590957,0.163883250725836,0.16372730571728,0.16372730571728, +0.295643858593117,0.295643858593117,0.29560800153508,0.295302069353845,0.294815093080442,0.294244789907309,0.293682798119551,0.293219338626292,0.292948018941115,0.292948018941115, +0.483980132691196,0.483980132691196,0.483835325214921,0.483301695225897,0.482534474789146,0.481668337935142,0.480814774440451,0.480088306699997,0.479635578063244,0.479635578063244, +0.725653982348224,0.725653982348224,0.725394010163267,0.724525956046838,0.723419424936144,0.722229488275755,0.721050935159976,0.719985241673464,0.719217792153075,0.719217792153075, + +00:14:54, +0.00941984823838539,0.00941984823838539,0.00943677141459236,0.00943400433211272,0.00941730826082308,0.00939339406851698,0.00936870466597752,0.00934873323218866,0.00933760404317965,0.00933760404317965, +0.00941984823838539,0.00941984823838539,0.00943677141459236,0.00943400433211272,0.00941730826082308,0.00939339406851698,0.00936870466597752,0.00934873323218866,0.00933760404317965,0.00933760404317965, +0.0180986667070553,0.0180986667070553,0.0181220056347972,0.0181128039590073,0.0180806506443644,0.0180367729037567,0.0179920606738513,0.0179559876379306,0.0179358702529792,0.0179358702529792, +0.0401003947359526,0.0401003947359526,0.0401336008767794,0.0401056980386697,0.0400348524844352,0.039942445559593,0.039849424998454,0.0397744675127518,0.0397325599429315,0.0397325599429315, +0.0848114123181505,0.0848114123181505,0.084849547280614,0.0847783501609906,0.084630718767893,0.0844454524797038,0.084260768195435,0.084111703375737,0.0840278771702717,0.0840278771702717, +0.16548020004783,0.16548020004783,0.165502184046008,0.165344926358866,0.165063696999729,0.164722975632993,0.164385807685609,0.164111928575805,0.163955960112934,0.163955960112934, +0.295909753352639,0.295909753352639,0.295873807608217,0.295567921958415,0.295081053826053,0.294510869222343,0.293948987285661,0.29348562226896,0.293214364094048,0.293214364094048, +0.484224030748861,0.484224030748861,0.484079194888337,0.483545788765905,0.482778917910145,0.481913167594788,0.481059979701738,0.480333838419161,0.479881322116188,0.479881322116188, +0.725802184968059,0.725802184968059,0.725542336362943,0.724674764936279,0.723568856469021,0.722379583316398,0.721201683976927,0.720136585999025,0.719369570222658,0.719369570222658, + +00:14:55, +0.00945989016341719,0.00945989016341719,0.0094768585420386,0.00947408853178977,0.00945735220197811,0.00943337563041424,0.00940861910940656,0.00938859227606231,0.0093774320094822,0.0093774320094822, +0.00945989016341719,0.00945989016341719,0.0094768585420386,0.00947408853178977,0.00945735220197811,0.00943337563041424,0.00940861910940656,0.00938859227606231,0.0093774320094822,0.0093774320094822, +0.0181601704885709,0.0181601704885709,0.0181835510289501,0.0181743371654713,0.0181421285385549,0.0180981692312588,0.0180533700918956,0.0180172255120492,0.0179970680542553,0.0179970680542553, +0.0402051406483613,0.0402051406483613,0.0402383718405942,0.0402104395233493,0.0401395170403906,0.0400470023366548,0.0399538678985024,0.0398788169198105,0.0398368571417343,0.0398368571417343, +0.084977047580425,0.084977047580425,0.0850151689320065,0.084943926474234,0.0847962123552133,0.0846108339908135,0.0844260310454362,0.0842768690512498,0.0841929890904039,0.0841929890904039, +0.165709042920197,0.165709042920197,0.165730961760695,0.165573670622082,0.165292407032624,0.164951635926832,0.164614411124092,0.164340486235775,0.164184494573585,0.164184494573585, +0.296175376723659,0.296175376723659,0.296139342459696,0.295833503448953,0.295346743674194,0.294776678005782,0.294214906341115,0.293751636139138,0.293480439646064,0.293480439646064, +0.484467590598957,0.484467590598957,0.484322726509219,0.483789544044624,0.483023022503446,0.482157658543531,0.481304846129462,0.48057903117289,0.480126727073919,0.480126727073919, +0.725950148067341,0.725950148067341,0.725690422859105,0.724823333360361,0.723718046615491,0.722529436064454,0.721352189641129,0.720287686364724,0.719521103704665,0.719521103704665, + +00:14:56, +0.00950003088597599,0.00950003088597599,0.00951704447541167,0.00951427154452669,0.00949749495715901,0.00947345599838025,0.00944863234391764,0.00942855009497761,0.00941735874062954,0.00941735874062954, +0.00950003088597599,0.00950003088597599,0.00951704447541167,0.00951427154452669,0.00949749495715901,0.00947345599838025,0.00944863234391764,0.00942855009497761,0.00941735874062954,0.00941735874062954, +0.0182217744189059,0.0182217744189059,0.0182451965338282,0.0182359704947548,0.0182037066034352,0.0181596657941538,0.0181147798085327,0.0180785637329805,0.0180583662279952,0.0180583662279952, +0.0403099674116817,0.0403099674116817,0.040343223559628,0.0403152618022005,0.0402442625402408,0.0401516402735635,0.0400583921839051,0.0399832478939779,0.0399412360077383,0.0399412360077383, +0.0851426928210123,0.0851426928210123,0.0851808004656468,0.0851095127710183,0.0849617162132059,0.0847762261850972,0.0845913050159325,0.0844420462035046,0.0843581126841206,0.0843581126841206, +0.165937763419251,0.165937763419251,0.165959617115065,0.165802292688853,0.165520995233686,0.165180174916762,0.164842893827755,0.164568923625507,0.164412909018136,0.164412909018136, +0.296440729086591,0.296440729086591,0.296404606469874,0.296098814205397,0.295612163003461,0.29504221663402,0.294480555659863,0.294017380608811,0.293746245968119,0.293746245968119, +0.4847108130019,0.4847108130019,0.484565920837599,0.48403296182241,0.483266789329276,0.482401811540706,0.481549374481754,0.48082388571843,0.480371793693372,0.480371793693372, +0.726097872289185,0.726097872289185,0.725838270295441,0.72497166196482,0.723866996023418,0.72267904716951,0.721502452803646,0.720438543423129,0.719672393253024,0.719672393253024, + +00:14:57, +0.00954027041184143,0.00954027041184143,0.00955732922026047,0.00955455337587172,0.00953773653211665,0.00951363517850897,0.0094887443759926,0.00946860669574481,0.00945738424361798,0.00945738424361798, +0.00954027041184143,0.00954027041184143,0.00955732922026047,0.00955455337587172,0.00953773653211665,0.00951363517850897,0.0094887443759926,0.00946860669574481,0.00945738424361798,0.00945738424361798, +0.018283478402383,0.018283478402383,0.0183069420536705,0.0182977038511311,0.0182653847434429,0.0182212624971553,0.0181762897288005,0.0181400022060462,0.0181197646796842,0.0181197646796842, +0.0404148747883655,0.0404148747883655,0.0404481557965639,0.0404201646379601,0.0403490887466792,0.0402563591329567,0.0401629976172779,0.0400877601978806,0.0400456963035861,0.0400456963035861, +0.085308347758032,0.085308347758032,0.0853464416002101,0.0852751087699681,0.0851272300599392,0.0849416287797816,0.0847565898232875,0.0846072345481931,0.084523247666755,0.084523247666755, +0.166166361472335,0.166166361472335,0.166188150036964,0.166030792486708,0.165749461529229,0.165408592527243,0.165071255719084,0.164797240665902,0.16464120336663,0.16464120336663, +0.296705810821497,0.296705810821497,0.296669600018757,0.296363854607338,0.295877312192107,0.295307485483118,0.294745935615529,0.294282856049652,0.294011783430861,0.294011783430861, +0.484953698715817,0.484953698715817,0.484808778631222,0.484276042857332,0.483510219145578,0.482645627343372,0.481793565514482,0.48106840281077,0.480616522729224,0.480616522729224, +0.726245358274304,0.726245358274304,0.725985879313232,0.725119751392984,0.724015705338248,0.722828417278733,0.721652474113119,0.720589157824382,0.719823439519232,0.719823439519232, + +00:14:58, +0.00958060874632734,0.00958060874632734,0.00959771278166871,0.00959493403090802,0.00957807693213634,0.00955391317642803,0.00952895521164615,0.00950876208470648,0.00949750852497586,0.00949750852497586, +0.00958060874632734,0.00958060874632734,0.00959771278166871,0.00959493403090802,0.00957807693213634,0.00955391317642803,0.00952895521164615,0.00950876208470648,0.00949750852497586,0.00949750852497586, +0.0183452823431415,0.0183452823431415,0.0183687874925337,0.018359537138691,0.0183271628628326,0.0182829592447924,0.0182378997575504,0.0182015408363797,0.0181812633146188,0.0181812633146188, +0.0405198625413168,0.0405198625413168,0.0405531683145373,0.0405251477938173,0.0404539954228507,0.0403611586779212,0.0402676839616839,0.0401923535945904,0.0401502377923646,0.0401502377923646, +0.0854740121107709,0.0854740121107709,0.0855120920555368,0.0854407141908732,0.085292753614647,0.085107041493259,0.0849218851850302,0.0847724338021719,0.0846883937548047,0.0846883937548047, +0.166394837007906,0.166394837007906,0.166416560455348,0.166259169944286,0.165977805846679,0.165636888683855,0.165299496721686,0.165025437278987,0.164869377540243,0.164869377540243, +0.296970622308089,0.296970622308089,0.296934323485998,0.296628625034012,0.296142191618036,0.295572484928799,0.295011046581417,0.294548062833019,0.294277052404626,0.294277052404626, +0.48519624849656,0.48519624849656,0.485051300645553,0.48451878790518,0.483753312708018,0.482889106706321,0.482037419981251,0.481312583202646,0.480860914933906,0.480860914933906, +0.726392606661024,0.726392606661024,0.726133250551369,0.725267602285777,0.724164175203019,0.722977547036877,0.721802254215776,0.72073953021621,0.719974243152367,0.719974243152367, + +00:14:59, +0.00962104589428304,0.00962104589428304,0.00963819516425629,0.00963541351425494,0.00961851616203911,0.00959428999730004,0.00956926485642723,0.0095490162677388,0.0095377315907648,0.0095377315907648, +0.00962104589428304,0.00962104589428304,0.00963819516425629,0.00963541351425494,0.00961851616203911,0.00959428999730004,0.00956926485642723,0.0095490162677388,0.0095377315907648,0.0095377315907648, +0.0184071861451394,0.0184071861451394,0.0184307327542941,0.0184214702613446,0.0183890408656774,0.0183447559414111,0.0182996097994493,0.0182631795289287,0.0182428620379088,0.0182428620379088, +0.0406249304338924,0.0406249304338924,0.0406582608771368,0.0406302110334142,0.0405589823323519,0.040466038671994,0.0403724509806338,0.0402970278476249,0.0402548602376051,0.0402548602376051, +0.0856396855996793,0.0856396855996793,0.0856777515526292,0.0856063287546847,0.0854582865977249,0.0852724640450836,0.0850871908198512,0.0849376436834589,0.0848535506659285,0.0848535506659285, +0.166623189955531,0.166623189955531,0.16664484830028,0.166487424991333,0.166206028114575,0.165865063313294,0.165527616760292,0.165253513387915,0.165097431461274,0.165097431461274, +0.297235163925724,0.297235163925724,0.297198777250891,0.2968931258643,0.296406801658807,0.29583721534645,0.295275888930501,0.294813001329949,0.294542053259436,0.294542053259436, +0.485438463097707,0.485438463097707,0.48529348763379,0.484761197719473,0.483996070769996,0.483132250382086,0.482280938633421,0.481556427644552,0.481104971057608,0.481104971057608, +0.726539618085287,0.726539618085287,0.726280384646359,0.725415215281734,0.724312406258373,0.723126437086299,0.721951793755445,0.720889661243936,0.720124804799099,0.720124804799099, + +00:15:00, +0.00966158186009468,0.00966158186009468,0.00967877637218058,0.00967599183006935,0.00965905422618304,0.00963476564582388,0.00960967331542025,0.00958936925025282,0.00957805344658099,0.00957805344658099, +0.00966158186009468,0.00966158186009468,0.00967877637218058,0.00967599183006935,0.00965905422618304,0.00963476564582388,0.00960967331542025,0.00958936925025282,0.00957805344658099,0.00957805344658099, +0.0184691897121548,0.0184691897121548,0.0184927777426486,0.0184835031228231,0.0184510186558704,0.018406652491176,0.0183614197589808,0.0183249181884562,0.0183045607544786,0.0183045607544786, +0.0407300782299022,0.0407300782299022,0.0407634332484042,0.0407353541208459,0.0406640492392316,0.0405709988791621,0.0404772984380865,0.0404017827209474,0.040359563403284,0.040359563403284, +0.0858053679463671,0.0858053679463671,0.0858434198136477,0.0857719521835116,0.0856238287307266,0.0854378961559682,0.0852525064475996,0.0851028639112299,0.0850187181189426,0.0850187181189426, +0.166851420245875,0.166851420245875,0.166873013502917,0.166715557558693,0.166434128262554,0.166093116343361,0.165755615760741,0.165481468916954,0.165325365053144,0.165325365053144, +0.297499436053405,0.297499436053405,0.297462961692375,0.297157357476728,0.296671142691627,0.296101677111117,0.295540463035425,0.295077671911162,0.294806786364999,0.294806786364999, +0.485680343270579,0.485680343270579,0.48553534034687,0.485003273051471,0.484238494082655,0.483375059120947,0.482524122220107,0.481799936884748,0.481348691848291,0.481348691848291, +0.726686393180673,0.726686393180673,0.726427282232341,0.725562591017013,0.724460399142569,0.723275088066966,0.722101093373561,0.721039551550488,0.720275125103701,0.720275125103701, + +00:15:01, +0.0097022166476865,0.0097022166476865,0.00971945640913771,0.00971666898204691,0.00969969112846455,0.00967534012623603,0.00965018059324644,0.00962982103719581,0.00961847409755651,0.00961847409755651, +0.0097022166476865,0.0097022166476865,0.00971945640913771,0.00971666898204691,0.00969969112846455,0.00967534012623603,0.00965018059324644,0.00962982103719581,0.00961847409755651,0.00961847409755651, +0.0185312929477876,0.0185312929477876,0.018554922361117,0.0185456356266802,0.0185130961371264,0.018468648798072,0.0184233295404471,0.0183867567195422,0.0183663593690688,0.0183663593690688, +0.0408353056936095,0.0408353056936095,0.0408686851928349,0.0408405768206609,0.0407691959079909,0.0406760390638633,0.0405822260984488,0.0405066179789679,0.0404643470538225,0.0404643470538225, +0.085971058873601,0.085971058873601,0.0860090965619073,0.0859375842006176,0.0857893797363608,0.0856033375477805,0.0854178317892791,0.085268094205815,0.085183895833817,0.085183895833817, +0.1670795278107,0.1670795278107,0.167101055995511,0.166943567578301,0.166662106221349,0.16632104770296,0.165983493649983,0.165709303791484,0.165553178240383,0.165553178240383, +0.297763439069774,0.297763439069774,0.297726877189028,0.297421320249463,0.296935215093349,0.296365870597503,0.295804769268506,0.295342074947052,0.295071252090702,0.295071252090702, +0.485921889764241,0.485921889764241,0.485776859533476,0.485245014650177,0.484480583394884,0.483617533670945,0.482766971488193,0.482043111669267,0.481592078051689,0.481592078051689, +0.726832932578403,0.726832932578403,0.726573943941094,0.725709730125405,0.724608154491491,0.723423500616471,0.722250153709186,0.721189201776418,0.720425204708062,0.720425204708062, + +00:15:02, +0.0097429502605222,0.0097429502605222,0.0097602352783639,0.00975744497342341,0.00974042687231971,0.00971601344231186,0.00969078669406511,0.00967037163305249,0.00965899354836061,0.00965899354836061, +0.0097429502605222,0.0097429502605222,0.0097602352783639,0.00975744497342341,0.00974042687231971,0.00971601344231186,0.00969078669406511,0.00967037163305249,0.00965899354836061,0.00965899354836061, +0.0185934957554607,0.0185934957554607,0.0186171665130431,0.0186078676762938,0.0185752732129836,0.0185307447659057,0.0184853390479705,0.0184486950265855,0.0184282577862381,0.0184282577862381, +0.0409406125897312,0.0409406125897312,0.0409740164753783,0.0409458788978614,0.0408744221035836,0.0407811589909861,0.0406872337265765,0.0406115333865429,0.0405692109540878,0.0405692109540878, +0.0861367581053002,0.0861367581053002,0.0861747815218745,0.0861032245304167,0.0859549393384873,0.0857687879435398,0.0855831665670449,0.0854333342886953,0.0853490835316727,0.0853490835316727, +0.167307512582855,0.167307512582855,0.167328975711398,0.167171454983177,0.166889961922785,0.166548857322087,0.166211250356064,0.165937017937989,0.165780870948631,0.165780870948631, +0.298027173353113,0.298027173353113,0.297990524119065,0.297685014560308,0.297199019240474,0.296629796179968,0.296068808001724,0.295606210807691,0.295335450805615,0.295335450805615, +0.486163103325513,0.486163103325513,0.486018045940047,0.485486423262349,0.484722339453332,0.483859674777883,0.483009487182336,0.482285952741924,0.481835130411324,0.481835130411324, +0.726979236907352,0.726979236907352,0.72672037040205,0.725856633238346,0.724755672938663,0.723571675370041,0.722398975399009,0.721338612559902,0.720575044251699,0.720575044251699, + +00:15:03, +0.00978378270160617,0.00978378270160617,0.00980111298263673,0.00979831980697608,0.00978126146072555,0.00975678559736693,0.00973149162157497,0.00971102104184642,0.00969961180320102,0.00969961180320102, +0.00978378270160617,0.00978378270160617,0.00980111298263673,0.00979831980697608,0.00978126146072555,0.00975678559736693,0.00973149162157497,0.00971102104184642,0.00969961180320102,0.00969961180320102, +0.0186557980384224,0.0186557980384224,0.0186795101015964,0.0186701991748675,0.018637549786805,0.018592940298307,0.0185474481854948,0.0185107330138052,0.0184902559103645,0.0184902559103645, +0.0410459986834383,0.0410459986834383,0.0410794268614377,0.0410512601179036,0.0409797275914165,0.0408863584258703,0.0407923210877745,0.0407165287089762,0.0406741548693929,0.0406741548693929, +0.0863024653665334,0.0863024653665334,0.0863404744191628,0.0862688728984706,0.0861205072621136,0.0859342470674132,0.0857485105041998,0.0855985838824991,0.0855142809347774,0.0855142809347774, +0.167535374496271,0.167535374496271,0.167556772584991,0.167399219707421,0.167117695299767,0.166776545131828,0.166438885808127,0.16616461128405,0.166008443104625,0.166008443104625, +0.298290639281345,0.298290639281345,0.298253902860339,0.297948440786708,0.297462555509145,0.296893454232526,0.296332579606724,0.295870079862821,0.295599382878482,0.295599382878482, +0.486403984698979,0.486403984698979,0.486258900310784,0.485727499632509,0.484963763002415,0.484101483185339,0.483251670044976,0.482528460844323,0.482077849668509,0.482077849668509, +0.727125306794065,0.727125306794065,0.726866562242303,0.726003300984927,0.72490295511526,0.72371961296055,0.722547559077369,0.721487784536762,0.720724644371763,0.720724644371763, + +00:15:04, +0.00982471397348487,0.00982471397348487,0.00984208952427653,0.00983929348502487,0.00982219489620139,0.0097976565942583,0.00977229537901545,0.00975176926714122,0.00974032886582523,0.00974032886582523, +0.00982471397348487,0.00982471397348487,0.00984208952427653,0.00983929348502487,0.00982219489620139,0.0097976565942583,0.00977229537901545,0.00975176926714122,0.00974032886582523,0.00974032886582523, +0.0187181996997471,0.0187181996997471,0.0187419530297738,0.0187326300254322,0.01869992576178,0.018655235298731,0.0186096568567874,0.0185728705852421,0.0185523536456472,0.0185523536456472, +0.0411514637403561,0.0411514637403561,0.0411849161168713,0.0411567202466978,0.0410851121373499,0.0409916371343074,0.0408974879477967,0.0408216037120187,0.040779178565497,0.040779178565497, +0.086468180383515,0.086468180383515,0.0865061749805302,0.0864345290314846,0.0862860832333913,0.0860997146447124,0.085913863325191,0.0857638427109987,0.0856794877665427,0.0856794877665427, +0.167763113485955,0.167763113485955,0.167784446551777,0.167626861686207,0.167345306286277,0.167004111064351,0.1666663999364,0.166392083758339,0.166235894636197,0.166235894636197, +0.298553837232024,0.298553837232024,0.298517013790335,0.29821159930574,0.297725824275147,0.29715684512884,0.296596084454815,0.29613368248186,0.295863048677726,0.295863048677726, +0.486644534626994,0.486644534626994,0.486499423387664,0.485968244502951,0.48520485478432,0.484342959634674,0.483493520816344,0.482770636715866,0.482320236562358,0.482320236562358, +0.727271142862762,0.727271142862762,0.727012520086624,0.726149733991907,0.725050001650114,0.723867314018529,0.722695905376257,0.721636718340471,0.720874005703057,0.720874005703057, + +00:15:05, +0.00986574407824809,0.00986574407824809,0.00988316490514761,0.0098803660094338,0.0098632271808101,0.00983862643538587,0.00981319796916799,0.00979261631204191,0.00978114473952181,0.00978114473952181, +0.00986574407824809,0.00986574407824809,0.00988316490514761,0.0098803660094338,0.0098632271808101,0.00983862643538587,0.00981319796916799,0.00979261631204191,0.00978114473952181,0.00978114473952181, +0.0187807006423376,0.0187807006423376,0.0188044952004012,0.0187951601308477,0.0187624010409263,0.0187176296704591,0.0186719649654403,0.0186351076447607,0.0186145508961082,0.0186145508961082, +0.0412570075265644,0.0412570075265644,0.0412904840079917,0.0412622590506091,0.0411905755076974,0.0410969948825404,0.0410027340728469,0.0409267581618691,0.040884281808606,0.040884281808606, +0.0866339028836017,0.0866339028836017,0.0866718829338752,0.0866001926573045,0.0864516669796127,0.0862651904018899,0.0860792247556065,0.0859291104991069,0.0858447037515203,0.0858447037515203, +0.167990729487984,0.167990729487984,0.16801199754831,0.167854380855773,0.167572794817367,0.167231555052899,0.166893792672192,0.166619435290614,0.166463225472265,0.166463225472265, +0.298816767582343,0.298816767582343,0.298779857286172,0.298474490494116,0.297988825913905,0.297419969242227,0.296859322916966,0.296397019033889,0.29612644857144,0.29612644857144, +0.486884753849692,0.486884753849692,0.486739615910438,0.486208658613744,0.485445615539018,0.484584104865037,0.483735040234471,0.483012481093762,0.482562291829794,0.482562291829794, +0.727416745735351,0.727416745735351,0.727158244557468,0.726295932883724,0.725196813169733,0.724014779172177,0.722844014925331,0.721785414602165,0.721023128878043,0.721023128878043, + +00:15:06, +0.00990687301753029,0.00990687301753029,0.00992433912665961,0.00992153738161226,0.00990435831615948,0.00987969512269362,0.00985419939435735,0.00983356217919621,0.0098220594271217,0.0098220594271217, +0.00990687301753029,0.00990687301753029,0.00992433912665961,0.00992153738161226,0.00990435831615948,0.00987969512269362,0.00985419939435735,0.00983356217919621,0.0098220594271217,0.0098220594271217, +0.018843300768926,0.018843300768926,0.0188671365161347,0.0188577893938043,0.0188249755270908,0.0187801233166009,0.0187343724148721,0.0186974440960503,0.0186768475655934,0.0186768475655934, +0.0413626298085979,0.0413626298085979,0.0413961303015666,0.0413678762964573,0.0412961174692266,0.0412024314372645,0.0411080592295787,0.0410319918251743,0.0409894643653728,0.0409894643653728, +0.086799632595289,0.086799632595289,0.0868375980082332,0.0867658635049125,0.0866172582292074,0.0864306740665358,0.0862445945221717,0.0860943869728735,0.0860099286153984,0.0860099286153984, +0.168218222439496,0.168218222439496,0.168239425512203,0.168081777153419,0.167800160829155,0.167458877031785,0.167121063947889,0.166846665811712,0.16669043554283,0.16669043554283, +0.299079430709123,0.299079430709123,0.299042433724598,0.298737114728179,0.298251560800481,0.297682826945649,0.297122295363804,0.296660089887661,0.296389582927391,0.296389582927391, +0.487124643104996,0.487124643104996,0.486979478616651,0.486448742702749,0.485686046004271,0.484824919613376,0.483976229035192,0.483253994713031,0.482804016205557,0.482804016205557, +0.727562116031441,0.727562116031441,0.727303736274989,0.726441898282503,0.725343390298305,0.724162009047376,0.722991888351927,0.721933873950656,0.721172014526854,0.721172014526854, + +00:15:07, +0.00994810079251193,0.00994810079251193,0.00996561218976881,0.0099628076025163,0.00994558830340351,0.00992086265767101,0.0098952996564529,0.00987460687079587,0.00986307293099954,0.00986307293099954, +0.00994810079251193,0.00994810079251193,0.00996561218976881,0.0099628076025163,0.00994558830340351,0.00992086265767101,0.0098952996564529,0.00987460687079587,0.00986307293099954,0.00986307293099954, +0.0189059999820758,0.0189059999820758,0.0189298768794626,0.0189205177168242,0.0188876491229518,0.0188427161400957,0.0187968791083292,0.018759879842627,0.018739243557775,0.018739243557775, +0.0414683303534463,0.0414683303534463,0.0415018547648191,0.0414735717515171,0.0414017377891591,0.0413079465656274,0.0412134631850957,0.0411373044690291,0.0410947260028973,0.0410947260028973, +0.0869653692482075,0.0869653692482075,0.0870033199337733,0.0869315413044244,0.0867828567117382,0.086596165367374,0.0864099723527457,0.0862596718594816,0.0861751620849988,0.0861751620849988, +0.168445592278689,0.168445592278689,0.168466730382121,0.168309050517499,0.168027404258814,0.167686076936385,0.167348213696943,0.167073775253541,0.166917524778965,0.166917524778965, +0.299341826988819,0.299341826988819,0.29930474348199,0.298999472383902,0.298514029309574,0.297945418611713,0.297385002165613,0.296922895411592,0.296652452113015,0.296652452113015, +0.487364203128624,0.487364203128624,0.487219012241639,0.486688497505618,0.485926146915638,0.485065404614444,0.484217087952159,0.483495178306516,0.483045410422211,0.483045410422211, +0.72770725436835,0.72770725436835,0.727448995857045,0.726587630808072,0.725489733657715,0.724309004267693,0.72313952628107,0.722082097012441,0.721320663277305,0.721320663277305, + +00:15:08, +0.00998942740392072,0.00998942740392072,0.0100069840949794,0.01000417667265,0.00998691714324371,0.00996212904135423,0.00993649875686998,0.00991575038857792,0.00990418525307493,0.00990418525307493, +0.00998942740392072,0.00998942740392072,0.0100069840949794,0.01000417667265,0.00998691714324371,0.00996212904135423,0.00993649875686998,0.00991575038857792,0.00990418525307493,0.00990418525307493, +0.0189687981841833,0.0189687981841833,0.0189927161927068,0.0189833450022631,0.0189504217310203,0.0189054080437142,0.0188594849488879,0.0188224147878349,0.0188017387761523,0.0188017387761523, +0.0415741089285545,0.0415741089285545,0.0416076571654276,0.0415793451835187,0.041507436235171,0.0414135400352291,0.0413189457069524,0.0412426958609773,0.041200066488727,0.041200066488727, +0.0871311125731197,0.0871311125731197,0.0871690484417944,0.0870972257870854,0.0869484621578986,0.0867616640342589,0.0865753579763182,0.0864249648872448,0.0863404038882728,0.0863404038882728, +0.16867283894481,0.16867283894481,0.168693912097781,0.168536200887414,0.16825452504457,0.16791315470313,0.16757524185387,0.167300763549078,0.167144493112813,0.167144493112813, +0.299603956797511,0.299603956797511,0.299566786934352,0.299261563836886,0.298776231815516,0.298207744612671,0.297647443692332,0.29718543597376,0.296915056495415,0.296915056495415, +0.487603434654096,0.487603434654096,0.487458217518546,0.486927923755811,0.486165919006485,0.485305560600807,0.484457617716847,0.483736032604889,0.48328647521015,0.48328647521015, +0.72785216136112,0.72785216136112,0.727594023919216,0.726733131077967,0.725635843867549,0.724455765454402,0.723286929335484,0.722230084411713,0.721469075754904,0.721469075754904, + +00:15:09, +0.010030852852033,0.010030852852033,0.010048454842345,0.0100456445920667,0.0100283448359304,0.0100034942743275,0.00997779669657115,0.00995699273382603,0.00994539639481376,0.00994539639481376, +0.010030852852033,0.010030852852033,0.010048454842345,0.0100456445920667,0.0100283448359304,0.0100034942743275,0.00997779669657115,0.00995699273382603,0.00994539639481376,0.00994539639481376, +0.019031695277479,0.019031695277479,0.0190556543580242,0.0190462711523121,0.0190132932536415,0.0189681989300595,0.0189221898394552,0.018885048834848,0.0188643331240535,0.0188643331240535, +0.0416799653018233,0.0416799653018233,0.0417135372715263,0.0416851963606476,0.0416132125753927,0.0415192116141227,0.0414245065631537,0.0413481657690112,0.0413054855908571,0.0413054855908571, +0.0872968623019163,0.0872968623019163,0.0873347832647222,0.0872629166852672,0.0871140742995084,0.0869271697981721,0.0867407511230057,0.0865902657856029,0.0865056537542983,0.0865056537542983, +0.16889996237815,0.16889996237815,0.168920970599937,0.168763228203609,0.168481523125694,0.168140110269504,0.16780214835424,0.167527630632357,0.16737134047758,0.16737134047758, +0.299865820510908,0.299865820510908,0.299828564457313,0.299523389462356,0.299038168692272,0.298469805320419,0.297909620313551,0.297447711941905,0.297177396441357,0.297177396441357, +0.487842338412747,0.487842338412747,0.487697095178327,0.487167022184595,0.486405363007993,0.485545388302856,0.484697819058559,0.483976558336661,0.483527211297613,0.483527211297613, +0.727996837622521,0.727996837622521,0.72773882107481,0.726878399707449,0.725781721545113,0.724602293226486,0.723434098135603,0.722377836770373,0.721617252582863,0.721617252582863, + +00:15:10, +0.010072377136675,0.010072377136675,0.0100900244314697,0.0100872113603704,0.0100698713812642,0.0100449583567245,0.0100191934760676,0.00999833390737178,0.00998670635722955,0.00998670635722955, +0.010072377136675,0.010072377136675,0.0100900244314697,0.0100872113603704,0.0100698713812642,0.0100449583567245,0.0100191934760676,0.00999833390737178,0.00998670635722955,0.00998670635722955, +0.0190946911640293,0.0190946911640293,0.0191186912774083,0.0191092960689985,0.0190762635929964,0.0190310887015694,0.018984993682771,0.0189477818866715,0.0189270265046375,0.0189270265046375, +0.041785899241609,0.041785899241609,0.0418194948517053,0.0417911250515451,0.0417190665784096,0.0416249610708142,0.0415301455221554,0.0414537139615724,0.0414109830777309,0.0414109830777309, +0.0874626181676126,0.0874626181676126,0.0875005241361053,0.0874286137324641,0.0872796928695106,0.0870926823912185,0.0869061515240483,0.0867555742851191,0.086670911413276,0.086670911413276, +0.169126962520038,0.169126962520038,0.16914790583038,0.168990132407561,0.168708398442497,0.168366943574036,0.168028933134676,0.167754376438469,0.167598066807526,0.167598066807526, +0.300127418504342,0.300127418504342,0.300090076426124,0.299784949635166,0.299299840313435,0.29873160110649,0.298171532398512,0.297709723683427,0.297439472317275,0.297439472317275, +0.48808091513373,0.48808091513373,0.487935645949756,0.487405793521059,0.486644479649164,0.485784888448809,0.484937692704439,0.484216756228184,0.483767619410683,0.483767619410683, +0.728141283763068,0.728141283763068,0.727883387934876,0.72702343730951,0.725927367305437,0.724748588200653,0.723581033299584,0.722525354708042,0.721765194382108,0.721765194382108, + +00:15:11, +0.0101140002572243,0.0101140002572243,0.0101316928615093,0.0101288769767171,0.010111496778597,0.0100865212882296,0.0100606890954202,0.010039773909596,0.0100281151408847,0.0100281151408847, +0.0101140002572243,0.0101140002572243,0.0101316928615093,0.0101288769767171,0.010111496778597,0.0100865212882296,0.0100606890954202,0.010039773909596,0.0100281151408847,0.0100281151408847, +0.0191577857457379,0.0191577857457379,0.0191818268526909,0.0191724196541882,0.0191393326511033,0.0190940772605172,0.0190478963814093,0.0190106138461432,0.0189898188208952,0.0189898188208952, +0.0418919105167239,0.0418919105167239,0.0419255296750108,0.0418971310253084,0.0418249980132619,0.0417307881742629,0.0416358623528648,0.0415593402075518,0.04151655871824,0.04151655871824, +0.0876283799043455,0.0876283799043455,0.0876662707906117,0.0875943166632898,0.087445317601968,0.0872582015466231,0.0870715589118059,0.0869208901174763,0.0868361765965261,0.0868361765965261, +0.169353839312839,0.169353839312839,0.169374717731931,0.169216913441782,0.168935150936322,0.168593654556292,0.168255596132842,0.16798100090355,0.167824672037963,0.167824672037963, +0.300388751152771,0.300388751152771,0.300351323215658,0.300046244729788,0.299561247052231,0.298993132342058,0.298433180316107,0.297971471565381,0.297701284489261,0.297701284489261, +0.488319165544025,0.488319165544025,0.488173870559437,0.487644238492118,0.486883269656831,0.486024061764721,0.485177239379476,0.484456627003666,0.4840077002733,0.4840077002733, +0.728285500391028,0.728285500391028,0.728027725108211,0.727168244494885,0.726072781761288,0.724894650991344,0.723727735443312,0.722672638842067,0.721912901771293,0.721912901771293, + +00:15:12, +0.0101557222126109,0.0101557222126109,0.0101734601311732,0.0101706414398159,0.0101532210268336,0.010128183068079,0.0101022835542413,0.0100813127404301,0.0100696227458918,0.0100696227458918, +0.0101557222126109,0.0101557222126109,0.0101734601311732,0.0101706414398159,0.0101532210268336,0.010128183068079,0.0101022835542413,0.0100813127404301,0.0100696227458918,0.0100696227458918, +0.0192209789243475,0.0192209789243475,0.0192450609855434,0.0192356418095863,0.0192025003298192,0.0191571645090139,0.01911089783778,0.0190735446159355,0.0190527099756508,0.0190527099756508, +0.0419979988964367,0.0419979988964367,0.0420316415109453,0.0420032140514907,0.0419310066494452,0.0418366926938817,0.0417416568246403,0.0416650442762897,0.0416222122817244,0.0416222122817244, +0.0877941472473692,0.0877941472473692,0.0878320229640258,0.0877600252134737,0.0876109482320595,0.0874237269987274,0.0872369730197552,0.0870862130154736,0.0870014490364848,0.0870014490364848, +0.169580592699939,0.169580592699939,0.169601406248433,0.169443571249801,0.16916178054954,0.16882024315687,0.168482137287442,0.168207503964781,0.168051156105246,0.168051156105246, +0.30064981883077,0.30064981883077,0.300612305200409,0.300307275120317,0.299822389281508,0.299254399397931,0.298694564434873,0.298232955954479,0.297962833323067,0.297962833323067, +0.488557090368449,0.488557090368449,0.48841176973181,0.487882357822524,0.487121733755665,0.486262908974496,0.485416459806514,0.484696171385176,0.484247454607267,0.484247454607267, +0.728429488112435,0.728429488112435,0.728171833201376,0.727312821872065,0.726217965523183,0.725040482210744,0.723874205180419,0.722819689787537,0.722060375366804,0.722060375366804, + +00:15:13, +0.0101975430013188,0.0101975430013188,0.0102153262387252,0.0102125047479308,0.0101950441244328,0.0101699436950625,0.0101439768516955,0.0101229503993573,0.010111229171915,0.010111229171915, +0.0101975430013188,0.0101975430013188,0.0102153262387252,0.0102125047479308,0.0101950441244328,0.0101699436950625,0.0101439768516955,0.0101229503993573,0.010111229171915,0.010111229171915, +0.0192842706014412,0.0192842706014412,0.0193083935774784,0.0192989624367396,0.0192657665308418,0.0192203503490091,0.0191739979541301,0.0191365740985567,0.0191156998715641,0.0191156998715641, +0.0421041641504721,0.0421041641504721,0.0421378301294679,0.0421093739001017,0.0420370922569103,0.0419426743995371,0.0418475287072921,0.0417708259375765,0.041727943537973,0.041727943537973, +0.0879599199330526,0.0879599199330526,0.0879977803932444,0.0879257391198573,0.0877765844960767,0.0875892584829862,0.0874023935824858,0.087251542713023,0.0871667284667012,0.0871667284667012, +0.169807222625748,0.169807222625748,0.169827971324748,0.169670105776171,0.169388287225543,0.169046709317397,0.168708556538211,0.168433885560376,0.168277518946768,0.168277518946768, +0.300910621912537,0.300910621912537,0.300873022754487,0.300568041180468,0.300083267373743,0.299515402644554,0.298955685122993,0.298494177217086,0.298224119184104,0.298224119184104, +0.488794690329663,0.488794690329663,0.488649344189157,0.488120152234871,0.487359872668185,0.486501430799887,0.485655354706257,0.484935390092648,0.484486883132259,0.484486883132259, +0.728573247531094,0.728573247531094,0.728315712818704,0.727457170047303,0.726362919199396,0.725186082468797,0.724020443122287,0.722966508157289,0.722207615782777,0.722207615782777, + +00:15:14, +0.010239462621387,0.010239462621387,0.0102572911819848,0.0102544668988813,0.0102369660694091,0.0102118031675243,0.0101857689865013,0.010164686885414,0.0101529344181712,0.0101529344181712, +0.010239462621387,0.010239462621387,0.0102572911819848,0.0102544668988813,0.0102369660694091,0.0102118031675243,0.0101857689865013,0.010164686885414,0.0101529344181712,0.0101529344181712, +0.0193476606784438,0.0193476606784438,0.0193718245298514,0.019362381437037,0.0193291311557103,0.0192836346822932,0.0192371966325452,0.0191997021963522,0.019178788411131,0.019178788411131, +0.0422104060490116,0.0422104060490116,0.0422440953009942,0.0422156103416073,0.0421432546060636,0.0420487330615496,0.0419534777710822,0.0418766849616525,0.0418337522572236,0.0418337522572236, +0.0881256976988752,0.0881256976988752,0.0881635428162732,0.0880914581203914,0.0879422261314205,0.0877547957359639,0.0875678203356972,0.0874168789451461,0.0873320146218333,0.0873320146218333, +0.170033729035688,0.170033729035688,0.170054412906746,0.169896516966451,0.169614670908737,0.169273052980518,0.168934853825909,0.168660145629582,0.168503760500954,0.168503760500954, +0.301171160771887,0.301171160771887,0.301133476251619,0.30082854328357,0.300343881701033,0.299776142452003,0.299216542748293,0.298755135719219,0.298485142437437,0.298485142437437, +0.489031966148177,0.489031966148177,0.488886594651613,0.488357622449604,0.487597687114761,0.486739627960511,0.485893924797279,0.485174283843895,0.48472598656583,0.48472598656583, +0.728716779248597,0.728716779248597,0.728459364562309,0.72760128962463,0.72650764339597,0.725331452373207,0.724166449878063,0.723113094561923,0.722354623631104,0.722354623631104, + +00:15:15, +0.0102814810704113,0.0102814810704113,0.010299354958329,0.0102965278900444,0.0102789868593334,0.0102537614833647,0.0102276599569325,0.0102065221971912,0.0101947384834317,0.0101947384834317, +0.0102814810704113,0.0102814810704113,0.010299354958329,0.0102965278900444,0.0102789868593334,0.0102537614833647,0.0102276599569325,0.0102065221971912,0.0101947384834317,0.0101947384834317, +0.0194111490566238,0.0194111490566238,0.0194353537438618,0.0194258987117122,0.0193925941058074,0.0193470174104981,0.0193004937749515,0.0192629288115066,0.0192419754966859,0.0192419754966859, +0.0423167243626934,0.0423167243626934,0.0423504367963967,0.0423219231469301,0.0422494934677671,0.0421548684506935,0.0420595037867247,0.0419826211192081,0.0419396382101631,0.0419396382101631, +0.088291480283424,0.088291480283424,0.088329309972224,0.0882571819541316,0.0881078728765976,0.0879203384953309,0.087733253016195,0.0875822214479702,0.0874973072376451,0.0874973072376451, +0.170260111876193,0.170260111876193,0.170280730941306,0.170122804767211,0.16984093154454,0.169499274089894,0.169161029092317,0.168886284112666,0.168729880707255,0.168729880707255, +0.301431435782251,0.301431435782251,0.301393666065147,0.301088781802571,0.300604232635101,0.300036619189989,0.299477137678243,0.299015831826544,0.298745903447788,0.298745903447788, +0.489268918542362,0.489268918542362,0.489123521837175,0.488594769185027,0.487835177813626,0.486977501173853,0.486132170796034,0.485412853354613,0.484964765623419,0.484964765623419, +0.728860083864331,0.728860083864331,0.7286027890321,0.72774518120586,0.72665213871673,0.72547659252946,0.724312226054669,0.723259449609809,0.722501399521444,0.722501399521444, + +00:15:16, +0.010323598345545,0.010323598345545,0.0103415175646929,0.0103386877183557,0.010321106491335,0.0102958186400412,0.0102696497608191,0.0102484563328355,0.010236641366023,0.010236641366023, +0.010323598345545,0.010323598345545,0.0103415175646929,0.0103386877183557,0.010321106491335,0.0102958186400412,0.0102696497608191,0.0102484563328355,0.010236641366023,0.010236641366023, +0.0194747356370947,0.0194747356370947,0.0194989811205549,0.0194895141618442,0.0194561552823608,0.0194104984350994,0.0193638892831167,0.0193262538460447,0.0193052610304027,0.0193052610304027, +0.0424231188626125,0.0424231188626125,0.0424568543870051,0.0424283120874495,0.0423558086133388,0.0422610803381977,0.0421656065253857,0.0420886341813842,0.042045601167928,0.042045601167928, +0.0884572674263897,0.0884572674263897,0.0884950816013104,0.0884229103612358,0.0882735244712171,0.0880858864998606,0.0878986913618876,0.0877475699587256,0.087662606051003,0.087662606051003, +0.170486371094694,0.170486371094694,0.170506925376304,0.170348969126015,0.17006706907937,0.169725372590193,0.169387082280229,0.169112300950915,0.168955879506143,0.168955879506143, +0.301691447316675,0.301691447316675,0.301653592568025,0.301348757110034,0.300864320547285,0.300296833227847,0.29973747027995,0.299276265904375,0.299006402579528,0.299006402579528, +0.489505548228456,0.489505548228456,0.489360126461704,0.488831593157311,0.488072345480883,0.487215051155274,0.486370093416857,0.485651099338387,0.48520322101836,0.48520322101836, +0.729003161975488,0.729003161975488,0.728745986825785,0.727888845390606,0.726796405763288,0.725621503540825,0.724457772256809,0.7234055739071,0.722647944061236,0.722647944061236, + +00:15:17, +0.010365814443501,0.010365814443501,0.0103837789975718,0.0103809463803105,0.0103633249621023,0.0103379746345701,0.0103117383955489,0.0102904892900508,0.0102786430638284,0.0102786430638284, +0.010365814443501,0.010365814443501,0.0103837789975718,0.0103809463803105,0.0103633249621023,0.0103379746345701,0.0103117383955489,0.0102904892900508,0.0102786430638284,0.0102786430638284, +0.019538420320816,0.019538420320816,0.0195627065608232,0.0195532276883592,0.0195198145864443,0.0194740776574173,0.0194273830586521,0.0193896772018332,0.0193686449142964,0.0193686449142964, +0.042529589320321,0.042529589320321,0.0425633478446057,0.0425347769350017,0.0424621998145526,0.042367368495745,0.0422717857586839,0.0421947239197724,0.0421516409021042,0.0421516409021042, +0.0886230588685637,0.0886230588685637,0.0886608574448449,0.0885886430829602,0.0884391806559868,0.0882514394894256,0.0880641351117828,0.0879129242157413,0.0878279107998722,0.0878279107998722, +0.170712506639622,0.170712506639622,0.170732996160609,0.170575009991427,0.170293083460644,0.169951348427087,0.169613013333447,0.169338196086629,0.169181756839102,0.169181756839102, +0.301951195747818,0.301951195747818,0.301913256132819,0.30160846957813,0.301124145808546,0.300556784934546,0.299997540920161,0.299536438317673,0.29926664019668,0.29926664019668, +0.48974185592057,0.48974185592057,0.489596409238937,0.489068095080501,0.488309190830512,0.487452278618019,0.486607693371978,0.485889022506705,0.485441353461888,0.485441353461888, +0.729146014177077,0.729146014177077,0.728888958538891,0.728032282776284,0.726940445135058,0.725766186008369,0.724603089086985,0.72355146805774,0.722794257855707,0.722794257855707, + +00:15:18, +0.0104081293605522,0.0104081293605522,0.0104261392530221,0.0104233038719654,0.0104056422678846,0.0103802294635275,0.010353925858069,0.0103326210660993,0.0103207435742894,0.0103207435742894, +0.0104081293605522,0.0104081293605522,0.0104261392530221,0.0104233038719654,0.0104056422678846,0.0103802294635275,0.010353925858069,0.0103326210660993,0.0103207435742894,0.0103207435742894, +0.0196022030085955,0.0196022030085955,0.0196265299654077,0.0196170391920322,0.0195835719189796,0.0195377549786189,0.0194909750030133,0.0194531987805825,0.0194321270502248,0.0194321270502248, +0.0426361355078279,0.0426361355078279,0.0426699169414426,0.04264131746188,0.0425686668436387,0.0424737326954733,0.0423780412586904,0.0423008901064149,0.0422577571847274,0.0422577571847274, +0.088788854351834,0.088788854351834,0.0888266372452353,0.088754379861656,0.0886048411727102,0.0884169972049945,0.0882295840059844,0.0880782839584425,0.0879932212233137,0.0879932212233137, +0.170938518460399,0.170938518460399,0.17095894324408,0.170800927312993,0.17051897463677,0.170177201547245,0.169838822196776,0.169563969463112,0.169407512648625,0.169407512648625, +0.302210681447949,0.302210681447949,0.302172657131706,0.301867919578646,0.301383708789458,0.300816474678677,0.300257349965257,0.299796349431043,0.299526616662915,0.299526616662915, +0.489977842330701,0.489977842330701,0.489832370880496,0.489304275666524,0.488545714574378,0.487689184273227,0.486844971371527,0.486126623568958,0.485679163663149,0.485679163663149, +0.729288641061932,0.729288641061932,0.729031704764766,0.72817549395813,0.727084257429265,0.725910640530967,0.724748177145502,0.723697132663475,0.722940341507882,0.722940341507882, + +00:15:19, +0.0104505430925338,0.0104505430925338,0.0104685983266625,0.0104657601889394,0.0104480584044932,0.0104225831230506,0.0103962121448867,0.010374851657803,0.0103629428944068,0.0103629428944068, +0.0104505430925338,0.0104505430925338,0.0104685983266625,0.0104657601889394,0.0104480584044932,0.0104225831230506,0.0103962121448867,0.010374851657803,0.0103629428944068,0.0103629428944068, +0.0196660836010902,0.0196660836010902,0.0196904512348998,0.0196809485734882,0.0196474271807378,0.0196015302997186,0.0195546650175025,0.0195168184838474,0.0194957073398897,0.0194957073398897, +0.0427427571975998,0.0427427571975998,0.0427765614502168,0.0427479334408348,0.0426752094732833,0.0425801727099746,0.0424843727979289,0.0424071325138048,0.0423639497882831,0.0423639497882831, +0.0889546536191825,0.0889546536191825,0.0889924207459812,0.0889201204407658,0.0887705057642825,0.0885825593886283,0.0883950377856887,0.0882436489273466,0.0881585370614807,0.0881585370614807, +0.171164406507429,0.171164406507429,0.171184766577556,0.171026721041245,0.170744742557142,0.170402931898325,0.170064508816016,0.169789621024669,0.169633146878209,0.169633146878209, +0.302469904788949,0.302469904788949,0.30243179593647,0.302127107482976,0.301643009860214,0.301075902828457,0.300516897781258,0.300055999608733,0.299786332341552,0.299786332341552, +0.490213508168732,0.490213508168732,0.490068012095891,0.489540135625197,0.488781917422237,0.487925768829934,0.487081928123539,0.486363903232452,0.485916652329203,0.485916652329203, +0.729431043220727,0.729431043220727,0.72917422609459,0.728318479529206,0.727227843240955,0.726054867705311,0.724893037030482,0.723842568323865,0.723086195618595,0.723086195618595, + +00:15:20, +0.0104930556348437,0.0104930556348437,0.0105111562136756,0.0105083153264155,0.0104905733673029,0.0104650356088394,0.0104385972520712,0.0104171810615451,0.0104052410207422,0.0104052410207422, +0.0104930556348437,0.0104930556348437,0.0105111562136756,0.0105083153264155,0.0104905733673029,0.0104650356088394,0.0104385972520712,0.0104171810615451,0.0104052410207422,0.0104052410207422, +0.0197300619988079,0.0197300619988079,0.0197544702697422,0.0197449557332038,0.0197113802723407,0.0196654035215805,0.0196184530032695,0.0195805362130294,0.0195593856848384,0.0195593856848384, +0.0428494541625605,0.0428494541625605,0.0428832811440871,0.0428546246450736,0.0427818274766293,0.0426866883122961,0.0425907801493762,0.0425134509148865,0.0424702184857071,0.0424702184857071, +0.089120456414681,0.089120456414681,0.0891582076916704,0.0890858645648206,0.0889361741746876,0.0887481257834768,0.0885604961931813,0.0884090188640599,0.088323858055615,0.088323858055615, +0.171390170732097,0.171390170732097,0.171410466112851,0.171252391127691,0.170970387172134,0.170628539428971,0.170290073137958,0.170015150716599,0.169858659472344,0.169858659472344, +0.302728866142307,0.302728866142307,0.302690672918502,0.302386033662122,0.301902049390617,0.301335069751726,0.300776184733813,0.300315389214631,0.300045787595555,0.300045787595555, +0.490448854142448,0.490448854142448,0.490303333592533,0.489775675664237,0.489017800081748,0.488162032995085,0.487318564333969,0.486600862202414,0.486153820165035,0.486153820165035, +0.729573221241977,0.729573221241977,0.729316523117392,0.728461240080409,0.727371203163003,0.726198868125923,0.725037669337871,0.723987775636293,0.723231820786502,0.723231820786502, + +00:15:21, +0.0105356669824444,0.0105356669824444,0.0105538129088091,0.0105509692791418,0.010533187151253,0.0105075869161577,0.0104810811752545,0.010459609273271,0.0104476379494193,0.0104476379494193, +0.0105356669824444,0.0105356669824444,0.0105538129088091,0.0105509692791418,0.010533187151253,0.0105075869161577,0.0104810811752545,0.010459609273271,0.0104476379494193,0.0104476379494193, +0.0197941381021089,0.0197941381021089,0.0198185869702309,0.0198090605715086,0.0197754310942622,0.0197293745449194,0.0196823388613133,0.0196443518693778,0.0196231619864656,0.0196231619864656, +0.0429562261760913,0.0429562261760913,0.0429900757966696,0.0429613908482616,0.0428885206272756,0.0427932792759396,0.0426972630864618,0.0426198450830554,0.0425765630503852,0.0425765630503852, +0.089286262483488,0.089286262483488,0.0893239978279759,0.0892516119794358,0.0891018461489947,0.0889136961337759,0.0887259589718333,0.0885743935112745,0.0884891839480441,0.0884891839480441, +0.17161581108676,0.17161581108676,0.171636041802753,0.171477937524808,0.171195908433093,0.170854024088808,0.170515515110378,0.170240558485191,0.170084050376514,0.170084050376514, +0.302987565879117,0.302987565879117,0.302949288448798,0.302644698486693,0.302160827750085,0.301593975815945,0.301035211188205,0.300574518612267,0.30030498278753,0.30030498278753, +0.490683880957535,0.490683880957535,0.490538336075737,0.490010896489261,0.489253363258476,0.488397977473538,0.48755488070669,0.486837501182002,0.486390667873564,0.486390667873564, +0.72971517571206,0.72971517571206,0.729458596420052,0.728603776200486,0.727514337786129,0.726342642385159,0.725182074661454,0.724132755195973,0.723377217608085,0.723377217608085, + +00:15:22, +0.0105783771298645,0.0105783771298645,0.0105965684063774,0.0105937220414331,0.0105758997508488,0.0105502370398345,0.0105236639096332,0.0105021362884899,0.010490133676125,0.010490133676125, +0.0105783771298645,0.0105783771298645,0.0105965684063774,0.0105937220414331,0.0105758997508488,0.0105502370398345,0.0105236639096332,0.0105021362884899,0.010490133676125,0.010490133676125, +0.0198583118112071,0.0198583118112071,0.0198828012365164,0.0198732629885868,0.01983957954683,0.0197934432703023,0.0197463224924834,0.019708265353991,0.0196870361460141,0.0196870361460141, +0.043063073012031,0.043063073012031,0.0430969451820383,0.0430682318245211,0.0429952886992783,0.0428999453748622,0.0428038213830683,0.0427263147921584,0.0426829832561536,0.0426829832561536, +0.0894520715718452,0.0894520715718452,0.0894897909016522,0.0894173624313082,0.0892675214333544,0.0890792701848432,0.0888914258660983,0.0887397726127644,0.0886545144821772,0.0886545144821772, +0.171841327524744,0.171841327524744,0.17186149360101,0.171703360186039,0.171421306292336,0.171079385828432,0.170740834682029,0.170465844277716,0.170309319537186,0.170309319537186, +0.30324600437008,0.30324600437008,0.303207642897957,0.302903102326902,0.302419345307645,0.301852621388197,0.301293977509346,0.300833388164806,0.300563918279728,0.300563918279728, +0.490918589317595,0.490918589317595,0.490773020248731,0.490245798803804,0.489488607655903,0.488633602968074,0.487790877943509,0.487073820872307,0.486627196155646,0.486627196155646, +0.729856907215215,0.729856907215215,0.729600446587314,0.72874608847604,0.727657247698902,0.726486191073228,0.725326253592858,0.724277507595964,0.723522386677668,0.723522386677668, + +00:15:23, +0.0106211860711991,0.0106211860711991,0.0106394227002622,0.0106365736071716,0.0106187111601632,0.0105929859742654,0.0105663454499696,0.0105447621022761,0.0105327281961108,0.0105327281961108, +0.0106211860711991,0.0106211860711991,0.0106394227002622,0.0106365736071716,0.0106187111601632,0.0105929859742654,0.0105663454499696,0.0105447621022761,0.0105327281961108,0.0105327281961108, +0.0199225830261716,0.0199225830261716,0.0199471129686049,0.0199375628844785,0.0199038255302269,0.01985760959815,0.0198104037974817,0.0197722765678183,0.019751008064577,0.019751008064577, +0.0431699944446763,0.0431699944446763,0.0432038890747248,0.0431751473484319,0.0431021314671495,0.0430066863834758,0.0429104548135316,0.0428328598164936,0.0427894788772992,0.0427894788772992, +0.0896178834270742,0.0896178834270742,0.0896555866605318,0.0895831156682124,0.0894331997749958,0.0892448476830753,0.0890568966215087,0.0889051559133827,0.0888198494025026,0.0888198494025026, +0.172066720000335,0.172066720000335,0.172086821462332,0.171928659065786,0.171646580703142,0.171304624599408,0.170966031802638,0.17069100804242,0.170534466901806,0.170534466901806, +0.303504181985499,0.303504181985499,0.303465736636183,0.303161245552567,0.302677602431933,0.30211100683518,0.301552484061777,0.301091998235051,0.300822594434036,0.300822594434036, +0.491152979924152,0.491152979924152,0.491007386812668,0.490480383309319,0.489723533975432,0.488868910179404,0.488026556744169,0.487309821972367,0.486863405710082,0.486863405710082, +0.729998416333561,0.729998416333561,0.729742074201798,0.728888177491542,0.727799933487753,0.726629514778192,0.725470206721569,0.724422033427178,0.723667328587425,0.723667328587425, + +00:15:24, +0.0106640938001124,0.0106640938001124,0.0106823757839149,0.010679523969809,0.0106616213728375,0.0106358337134139,0.0106091257905928,0.01058748670927,0.0105754215041946,0.0105754215041946, +0.0106640938001124,0.0106640938001124,0.0106823757839149,0.010679523969809,0.0106616213728375,0.0106358337134139,0.0106091257905928,0.01058748670927,0.0105754215041946,0.0105754215041946, +0.0199869516469282,0.0199869516469282,0.0200115220663603,0.0200019601590811,0.0199681689444924,0.0199218734287384,0.0198745826768633,0.0198363854116612,0.0198150776430989,0.0198150776430989, +0.0432769902487815,0.0432769902487815,0.0433109072497184,0.0432821371950316,0.0432090487058586,0.0431135020766477,0.0430171631526408,0.0429394799308111,0.0428960496885592,0.0428960496885592, +0.0897836977975729,0.0897836977975729,0.0898213848535219,0.0897488714389972,0.0895988809222228,0.0894104283759443,0.0892223709846726,0.0890705431590578,0.0889851884545836,0.0889851884545836, +0.172291988468776,0.172291988468776,0.172312025342381,0.172153834119404,0.171871731619745,0.171529740354263,0.171191106422902,0.170916049728524,0.170759492418796,0.170759492418796, +0.303762099095282,0.303762099095282,0.303723570033277,0.303419128533106,0.302935599491194,0.302369132523212,0.301810731209664,0.301350349185439,0.301081011611984,0.301081011611984, +0.491387053476654,0.491387053476654,0.491241436466625,0.490714650705185,0.489958142916398,0.489103899806176,0.488261917806357,0.48754550517917,0.487099297233631,0.487099297233631, +0.730139703647103,0.730139703647103,0.729883479844007,0.729030043829339,0.727942395736985,0.726772614085985,0.725613934634938,0.724566333278389,0.723812043927387,0.723812043927387, + +00:15:25, +0.0107071003098379,0.0107071003098379,0.0107254276503568,0.0107225731223675,0.0107046303820832,0.0106787802508126,0.0106520049254006,0.0106303101036799,0.0106182135947611,0.0106182135947611, +0.0107071003098379,0.0107071003098379,0.0107254276503568,0.0107225731223675,0.0107046303820832,0.0106787802508126,0.0106520049254006,0.0106303101036799,0.0106182135947611,0.0106182135947611, +0.0200514175732607,0.0200514175732607,0.0200760284295052,0.0200664547121507,0.0200326096895236,0.0199862346621999,0.0199388590310386,0.0199005917861748,0.019879244782377,0.019879244782377, +0.0433840601995587,0.0433840601995587,0.0434179994824665,0.0433892011398152,0.0433160401908313,0.0432203922297004,0.0431239461756383,0.0430461749103122,0.0430026954651216,0.0430026954651216, +0.0899495144328121,0.0899495144328121,0.089987185230601,0.0899146294935827,0.0897645646244108,0.0895760120119942,0.0893878487032702,0.0892359340967903,0.0891505313850555,0.0891505313850555, +0.172517132886259,0.172517132886259,0.172537105197765,0.172378885303196,0.172096758997332,0.17175473304648,0.171416058494475,0.171140969286213,0.170984396037542,0.170984396037542, +0.304019756068935,0.304019756068935,0.303981143458644,0.303676751637538,0.303193336853277,0.302626998818224,0.302068719316802,0.30160844137804,0.301339170174736,0.301339170174736, +0.491620810672487,0.491620810672487,0.491475169907619,0.490948601688722,0.490192435176074,0.489338572544983,0.488496961825716,0.487780871187661,0.487334871421009,0.487334871421009, +0.730280769733742,0.730280769733742,0.730024664092338,0.729171688069667,0.72808463502878,0.726915489580418,0.725757437918191,0.724710407736246,0.723956533285457,0.723956533285457, + +00:15:26, +0.0107502055931803,0.0107502055931803,0.0107685782921813,0.0107657210574409,0.010747738180683,0.0107218255795648,0.01069498284786,0.0106732322792831,0.0106611044617641,0.0106611044617641, +0.0107502055931803,0.0107502055931803,0.0107685782921813,0.0107657210574409,0.010747738180683,0.0107218255795648,0.01069498284786,0.0106732322792831,0.0106611044617641,0.0106611044617641, +0.0201159807048126,0.0201159807048126,0.0201406319576224,0.020131046443304,0.0200971476650774,0.0200506931985251,0.0200032327602741,0.0199648955918692,0.0199435093830631,0.0199435093830631, +0.0434912040726778,0.0434912040726778,0.0435251655488742,0.0434963389587355,0.0434231056979505,0.0433273566184116,0.0432308036582199,0.0431529445306504,0.0431094159826252,0.0431094159826252, +0.0901153330833324,0.0901153330833324,0.0901529875428156,0.0900803895829563,0.0899302506320032,0.0897415983408374,0.0895533295260505,0.0894013284746493,0.0893158779416223,0.0893158779416223, +0.172742153209923,0.172742153209923,0.172762060986037,0.172603812574409,0.172321662792037,0.171979602630495,0.17164088796997,0.171365766666631,0.171209177708395,0.171209177708395, +0.304277153275566,0.304277153275566,0.304238457281283,0.303934115234484,0.303450814885638,0.302884606085762,0.302326448746604,0.301866275174556,0.301597070483093,0.301597070483093, +0.491854252206982,0.491854252206982,0.491708587830608,0.491182236955186,0.490426411449679,0.48957292909037,0.488731689495846,0.488015920690753,0.487570128964902,0.487570128964902, +0.730421615169285,0.730421615169285,0.730165627523093,0.729313110790658,0.728226651943215,0.727058141843189,0.725900717154442,0.724854257385277,0.724100797247417,0.724100797247417, + +00:15:27, +0.0107934096425168,0.0107934096425168,0.0108118277015549,0.0108089677671964,0.0107909447609923,0.0107649696923453,0.0107380595510095,0.010716253229427,0.0107040940987269,0.0107040940987269, +0.0107934096425168,0.0107934096425168,0.0108118277015549,0.0108089677671964,0.0107909447609923,0.0107649696923453,0.0107380595510095,0.010716253229427,0.0107040940987269,0.0107040940987269, +0.0201806409410881,0.0201806409410881,0.0202053325501564,0.020195735252019,0.0201617827707713,0.0201152489375639,0.0200677037646944,0.0200292967291112,0.0200078713456645,0.0200078713456645, +0.0435984216442667,0.0435984216442667,0.0436324052253045,0.043603550428203,0.0435302450035558,0.0434343950190146,0.0433377353765353,0.0432597885679308,0.0432162110171598,0.0432162110171598, +0.0902811535007402,0.0902811535007402,0.0903187915422765,0.0902461514591699,0.0900959386965082,0.0899071871131519,0.0897188132028279,0.0895667260417694,0.089481227873053,0.089481227873053, +0.172967049397844,0.172967049397844,0.172986892665683,0.172828615891223,0.172546442960931,0.172204349061685,0.17186559480295,0.171590441821877,0.171433837382661,0.171433837382661, +0.304534291083879,0.304534291083879,0.304495511869791,0.304191219692159,0.303708033955336,0.303141954690984,0.302583919862112,0.302123850936317,0.301854712897489,0.301854712897489, +0.492087378773417,0.492087378773417,0.491941690928502,0.49141555719779,0.490660072430384,0.489806970134841,0.488966101508315,0.488250654379332,0.487805070555974,0.487805070555974, +0.730562240527456,0.730562240527456,0.730306370710487,0.729454312568349,0.728368447058265,0.727200571453894,0.726043772924697,0.724997882807907,0.724244836396937,0.724244836396937, + +00:15:28, +0.0108367124497984,0.0108367124497984,0.0108551758702182,0.0108523132433753,0.0108342501149405,0.0108082125814025,0.0107812350274595,0.010759372947031,0.0107471824987445,0.0107471824987445, +0.0108367124497984,0.0108367124497984,0.0108551758702182,0.0108523132433753,0.0108342501149405,0.0108082125814025,0.0107812350274595,0.010759372947031,0.0107471824987445,0.0107471824987445, +0.020245398181454,0.020245398181454,0.0202701301064149,0.0202605210376367,0.0202265149060852,0.0201799017790272,0.0201322719442832,0.0200937950981254,0.0200723305705461,0.0200723305705461, +0.0437057126909113,0.0437057126909113,0.0437397182885787,0.0437108353250859,0.0436374578844438,0.0435415072081979,0.0434447411071872,0.0433667067987104,0.043323080345266,0.043323080345266, +0.0904469754377051,0.0904469754377051,0.0904845969821555,0.0904119148753358,0.0902616285704951,0.0900727780806772,0.0898842994844788,0.0897321265483472,0.0896465809291787,0.0896465809291787, +0.173191821409032,0.173191821409032,0.173211600196122,0.173053295212752,0.172771099462022,0.172428972296371,0.172090178947923,0.171814994705001,0.171658375012598,0.171658375012598, +0.304791169862175,0.304791169862175,0.304752307592361,0.304448065378376,0.30396499442903,0.303399044998659,0.302841133025982,0.302381169024284,0.302112097777992,0.302112097777992, +0.492320191063031,0.492320191063031,0.49217447989217,0.4916485631077,0.49089341880932,0.490040696368868,0.489200198552665,0.488485072942262,0.488039696882868,0.488039696882868, +0.730702646379903,0.730702646379903,0.730446894226658,0.729595293976697,0.728510020949817,0.727342778990037,0.726186605807871,0.725141284584462,0.724388651315588,0.724388651315588, + +00:15:29, +0.0108801140065511,0.0108801140065511,0.0108986227894881,0.0108957574772951,0.0108776542340324,0.0108515542385591,0.0108245092693942,0.010802591424587,0.0107903696544841,0.0107903696544841, +0.0108801140065511,0.0108801140065511,0.0108986227894881,0.0108957574772951,0.0108776542340324,0.0108515542385591,0.0108245092693942,0.010802591424587,0.0107903696544841,0.0107903696544841, +0.0203102523251406,0.0203102523251406,0.0203350245255699,0.0203254036993629,0.0202913439703627,0.0202446516224879,0.0201969371988851,0.0201583905989957,0.0201368869579309,0.0201368869579309, +0.0438130769896554,0.0438130769896554,0.0438471045159758,0.0438181934267102,0.043744744117868,0.0436486929631057,0.0435518206272324,0.0434736989999983,0.0434300237439355,0.0434300237439355, +0.0906127986479557,0.0906127986479557,0.0906504036166823,0.090577679585624,0.0904273200075913,0.0902383709962113,0.0900497881229386,0.0898975297456379,0.0898119368608889,0.0898119368608889, +0.173416469203426,0.173416469203426,0.173436183537697,0.173277850499035,0.172995632254245,0.172653472291805,0.172314640360336,0.172039425269993,0.171882790551408,0.171882790551408, +0.305047789978353,0.305047789978353,0.305008844816779,0.304704652660543,0.304221696672981,0.303655877373166,0.303098088600494,0.302638229799044,0.302369225484298,0.302369225484298, +0.492552689765027,0.492552689765027,0.492406955410448,0.491881255374049,0.491126451275588,0.490274108480894,0.489433981316422,0.488719177066399,0.488274008632221,0.488274008632221, +0.730842833296211,0.730842833296211,0.730587198641676,0.729736055587582,0.728651374191678,0.727484765027039,0.72632921638079,0.725284463293178,0.724532242582848,0.724532242582848, + +00:15:30, +0.0109236143038772,0.0109236143038772,0.010942168450258,0.0109393004598502,0.0109211571093492,0.0108949946552135,0.0108678822685728,0.0108459086541615,0.0108336555581872,0.0108336555581872, +0.0109236143038772,0.0109236143038772,0.010942168450258,0.0109393004598502,0.0109211571093492,0.0108949946552135,0.0108678822685728,0.0108459086541615,0.0108336555581872,0.0108336555581872, +0.0203752032712434,0.0203752032712434,0.0204000157066593,0.0203903831362689,0.0203562698628121,0.0203094983673828,0.0202616994282064,0.0202230831316669,0.0202015404079024,0.0202015404079024, +0.0439205143180007,0.0439205143180007,0.0439545636852329,0.0439256245108597,0.0438521034815389,0.0437559520613375,0.043658973714181,0.0435807649492555,0.043537040990611,0.043537040990611, +0.0907786228862768,0.0907786228862768,0.0908162112011408,0.0907434453452585,0.0905930127624785,0.0904039656136076,0.0902152788711976,0.090062935385952,0.0899772954201284,0.0899772954201284, +0.173640992741886,0.173640992741886,0.173660642651672,0.17350228171103,0.173220041297459,0.17287784900617,0.17253897899657,0.172263733471783,0.172107083953234,0.172107083953234, +0.305304151799903,0.305304151799903,0.305265123910424,0.304960981905662,0.304478141053049,0.303912452178491,0.303354786947544,0.302895033620808,0.302626096375737,0.302626096375737, +0.492784875566581,0.492784875566581,0.492639118170144,0.492113634683943,0.491359170516261,0.490507207157348,0.489667450485099,0.488952967436591,0.488508006488664,0.488508006488664, +0.730982801843908,0.730982801843908,0.730727284523555,0.729876597970823,0.728792507355585,0.727626530138248,0.726471605218209,0.725427419510215,0.724675610776114,0.724675610776114, + +00:15:31, +0.0109672133324569,0.0109672133324569,0.0109858128430001,0.0109829421815135,0.0109647587315504,0.0109385338223415,0.0109113540163309,0.0108893246273965,0.0108770402016703,0.0108770402016703, +0.0109672133324569,0.0109672133324569,0.0109858128430001,0.0109829421815135,0.0109647587315504,0.0109385338223415,0.0109113540163309,0.0108893246273965,0.0108770402016703,0.0108770402016703, +0.0204402509187247,0.0204402509187247,0.0204651035485883,0.0204554592472934,0.0204212924825085,0.0203744419130136,0.0203265585318174,0.0202878725959458,0.0202662908204051,0.0202662908204051, +0.044028024453907,0.044028024453907,0.0440620955745451,0.0440331283557759,0.043959535753624,0.0438632842809484,0.0437662001459971,0.0436879044243952,0.0436441318631866,0.0436441318631866, +0.0909444479085057,0.0909444479085057,0.0909820194918658,0.0909092119105137,0.0907587065908898,0.0905695616877708,0.0903807714832983,0.090228343222652,0.090142656359894,0.090142656359894, +0.173865391986191,0.173865391986191,0.173884977500223,0.17372658881061,0.173444326552443,0.173102102398569,0.172763194813932,0.172487919266232,0.172331255173154,0.172331255173154, +0.305560255693907,0.305560255693907,0.305521145240267,0.305217053480327,0.304734327934693,0.304168769778229,0.303611228428645,0.303151580849413,0.302882710811261,0.302882710811261, +0.49301674915285,0.49301674915285,0.492870968856045,0.492345701722467,0.491591577216397,0.490739993082645,0.489900606742206,0.489186444735687,0.488741691134836,0.488741691134836, +0.731122552588478,0.731122552588478,0.73086715243826,0.730016921694182,0.728933421011216,0.727768074894948,0.726613772892814,0.725570153809664,0.724818756470712,0.724818756470712, + +00:15:32, +0.0110109110825495,0.0110109110825495,0.0110295559577662,0.0110266826323377,0.0110084590908745,0.0109821717304974,0.0109549245035814,0.0109328393355111,0.0109205235763265,0.0109205235763265, +0.0110109110825495,0.0110109110825495,0.0110295559577662,0.0110266826323377,0.0110084590908745,0.0109821717304974,0.0109549245035814,0.0109328393355111,0.0109205235763265,0.0109205235763265, +0.0205053951664144,0.0205053951664144,0.0205302879501309,0.0205206319312438,0.0204864117283947,0.0204394821585486,0.0203915144091527,0.0203527588915029,0.0203311380952465,0.0203311380952465, +0.0441356071757922,0.0441356071757922,0.0441696999625655,0.0441407047401581,0.0440670407127476,0.043970689400449,0.0438734997010984,0.0437951172037828,0.0437512961400073,0.0437512961400073, +0.0911102734715291,0.0911102734715291,0.0911478282462397,0.0910749790387115,0.0909244012496059,0.0907351589746542,0.090546265714332,0.0903937530101491,0.0903080194342307,0.0903080194342307, +0.17408966689903,0.17408966689903,0.174109188046436,0.173950771760559,0.173668487980885,0.173326232429026,0.172987287770656,0.172711982610129,0.172555304167172,0.172555304167172, +0.305816102027043,0.305816102027043,0.305776909172867,0.305472867750723,0.304990257682967,0.304424830535578,0.303867413404924,0.303407871844317,0.303139069149455,0.303139069149455, +0.493248311206976,0.493248311206976,0.493102508150931,0.492577457172694,0.491823672059042,0.490972466939196,0.490133450769256,0.489419609644548,0.488975063251385,0.488975063251385, +0.731262086093367,0.731262086093367,0.731006802949718,0.730157027323375,0.729074115726195,0.727909399866367,0.726755719975235,0.725712666763557,0.724961680239902,0.724961680239902, + +00:15:33, +0.0110547075439945,0.0110547075439945,0.0110733977841893,0.0110705218019568,0.0110522581771409,0.0110259083698151,0.0109985937208164,0.0109764527693023,0.0109641056731268,0.0109641056731268, +0.0110547075439945,0.0110547075439945,0.0110733977841893,0.0110705218019568,0.0110522581771409,0.0110259083698151,0.0109985937208164,0.0109764527693023,0.0109641056731268,0.0109641056731268, +0.0205706359130118,0.0205706359130118,0.0205955688099308,0.0205859010867972,0.0205516274992826,0.0205046190030239,0.0204565669595136,0.0204177419178736,0.0203960821320984,0.0203960821320984, +0.0442432622625319,0.0442432622625319,0.0442773766284053,0.0442483534431634,0.0441746181379912,0.0440781671988055,0.0439808721583562,0.0439024030662355,0.0438585335998694,0.0438585335998694, +0.0912760993332795,0.0912760993332795,0.0913136372226891,0.0912407464882178,0.091090096496452,0.0909007572312562,0.0907117613204351,0.0905591645038996,0.0904733843982291,0.0904733843982291, +0.174313817443997,0.174313817443997,0.174333274254301,0.174174830524561,0.173892525545383,0.173550239058475,0.173211257825891,0.172935923461183,0.172779230892217,0.172779230892217, +0.306071691165574,0.306071691165574,0.306032416074374,0.305728425082626,0.30524593066252,0.304680634813341,0.304123342237123,0.303663906964601,0.303395171748523,0.303395171748523, +0.493479562410099,0.493479562410099,0.493333736735571,0.492808901715692,0.49205545572524,0.491204629407416,0.490365983245774,0.489652462842049,0.489208123516979,0.489208123516979, +0.731401402919996,0.731401402919996,0.731146236619827,0.730296915422084,0.729214592066107,0.728050505619692,0.726897447034056,0.725854958941874,0.725104382654896,0.725104382654896, + +00:15:34, +0.0110986027062133,0.0110986027062133,0.0111173383114847,0.0111144596795869,0.0110961559797507,0.0110697437300097,0.0110423616581082,0.0110201649191471,0.0110077864826213,0.0110077864826213, +0.0110986027062133,0.0110986027062133,0.0111173383114847,0.0111144596795869,0.0110961559797507,0.0110697437300097,0.0110423616581082,0.0110201649191471,0.0110077864826213,0.0110077864826213, +0.0206359730570871,0.0206359730570871,0.0206609460265034,0.0206512666125023,0.020616939693855,0.0205698523453447,0.0205217160820689,0.0204828215744595,0.0204611228304981,0.0204611228304981, +0.0443509894934599,0.0443509894934599,0.0443851253516334,0.0443560742444065,0.0442822678088932,0.0441857174554393,0.0440883172970957,0.0440097617910229,0.0439658440220204,0.0439658440220204, +0.0914419252527319,0.0914419252527319,0.0914794461806815,0.0914065140184388,0.0912557920902942,0.0910663562156167,0.090877258058786,0.0907245774604021,0.0906387510080215,0.0906387510080215, +0.174537843585589,0.174537843585589,0.174557236088706,0.174398765067202,0.174116439209435,0.173774122248758,0.173435104939697,0.173159741778019,0.173003035306138,0.173003035306138, +0.306327023475354,0.306327023475354,0.306287666310525,0.3059837258414,0.305501347237597,0.304936182973924,0.304379015285595,0.303919686568965,0.303651018966297,0.303651018966297, +0.493710503441359,0.493710503441359,0.493564655288742,0.493040036030529,0.492286928894039,0.491436481165731,0.490598204849302,0.489885005005092,0.489440872608313,0.489440872608313, +0.731540503627767,0.731540503627767,0.731285454008466,0.730436586551966,0.729354850594506,0.728191392720072,0.727038954635823,0.725997030912559,0.725246864284858,0.725246864284858, + +00:15:35, +0.0111425965582104,0.0111425965582104,0.0111613775284514,0.0111584962540281,0.0111401524876885,0.011113677800379,0.0110862283051107,0.011063975775003,0.011051565994941,0.011051565994941, +0.0111425965582104,0.0111425965582104,0.0111613775284514,0.0111584962540281,0.0111401524876885,0.011113677800379,0.0110862283051107,0.011063975775003,0.011051565994941,0.011051565994941, +0.0207014064970824,0.0207014064970824,0.0207264194982366,0.0207167284067805,0.0206823482106661,0.0206351820842868,0.0205869616758564,0.0205479977605302,0.0205262600898498,0.0205262600898498, +0.0444587886483678,0.0444587886483678,0.044492945912277,0.04446386692396,0.0443899895054486,0.0442933399502278,0.0441958348970958,0.0441171931578668,0.0440732271861592,0.0440732271861592, +0.0916077509899004,0.0916077509899004,0.0916452548807217,0.0915722813898179,0.0914214877910367,0.091231955686814,0.0910427556876019,0.0908899916371936,0.0908041190207789,0.0908041190207789, +0.174761745289199,0.174761745289199,0.174781073515429,0.17462257535396,0.174340228937437,0.173997881962617,0.173658829073043,0.173383437520173,0.173226717367693,0.173226717367693, +0.306582099321826,0.306582099321826,0.306542660246642,0.306238770391996,0.305756507772033,0.305191475379336,0.304634432910306,0.304175211015726,0.30390661116023,0.30390661116023, +0.493941134977906,0.493941134977906,0.493795264487227,0.493270860794283,0.492518092242498,0.491668022890582,0.490830116255406,0.490117236808604,0.489673311200113,0.489673311200113, +0.731679388774075,0.731679388774075,0.731424455673502,0.730576041272658,0.729494891872921,0.728332061730631,0.727180243345055,0.726138883241522,0.72538912569692,0.72538912569692, + +00:15:36, +0.0111866890885745,0.0111866890885745,0.0112055154234735,0.0112026315136657,0.0111842476895235,0.0111577105698044,0.0111301936510608,0.0111078853264101,0.0110954441997983,0.0110954441997983, +0.0111866890885745,0.0111866890885745,0.0112055154234735,0.0112026315136657,0.0111842476895235,0.0111577105698044,0.0111301936510608,0.0111078853264101,0.0110954441997983,0.0110954441997983, +0.020766936131313,0.020766936131313,0.0207919891233927,0.0207822863679273,0.020747852948144,0.0207006081184981,0.0206523036397842,0.020613270375224,0.0205914938094262,0.0205914938094262, +0.0445666595075053,0.0445666595075053,0.0446008380908208,0.044571731262354,0.0444977830081097,0.0444010344635035,0.0443034247385892,0.0442246969469409,0.0441806828724357,0.0441806828724357, +0.091773576305835,0.091773576305835,0.0918110630843489,0.0917380483638327,0.0915871833596177,0.0913975554049615,0.0912082539661351,0.0910554067928466,0.0909694881947075,0.0909694881947075, +0.174985522521106,0.174985522521106,0.175004786501139,0.174846261351198,0.174563894694673,0.17422151816369,0.173882430187797,0.173607010648087,0.173450277036549,0.173450277036549, +0.306836919070018,0.306836919070018,0.306797398247635,0.306493559098952,0.306011412629258,0.305446512391182,0.304889595470829,0.30443048066282,0.304161948687395,0.304161948687395, +0.494171457694905,0.494171457694905,0.494025565005829,0.493501376682049,0.492748946445695,0.491899255256437,0.491061718137686,0.490349158925556,0.489905439965146,0.489905439965146, +0.731818058914315,0.731818058914315,0.7315632421708,0.730715280141791,0.729634716460869,0.728472513212477,0.72732131372425,0.726280516492651,0.725531167456189,0.725531167456189, + +00:15:37, +0.0112308802854802,0.0112308802854802,0.0112497519845217,0.0112468654464713,0.0112284415734108,0.0112018420267525,0.0111742576847795,0.0111518935624918,0.011139421086489,0.011139421086489, +0.0112308802854802,0.0112308802854802,0.0112497519845217,0.0112468654464713,0.0112284415734108,0.0112018420267525,0.0111742576847795,0.0111518935624918,0.011139421086489,0.011139421086489, +0.0208325618579694,0.0208325618579694,0.0208576548001093,0.0208479403941135,0.020813453804591,0.0207661303464996,0.0207177418726324,0.0206786393175499,0.0206568238883696,0.0206568238883696, +0.0446746018515798,0.0446746018515798,0.0447088016682076,0.0446796670405762,0.0446056480977855,0.0445088007760543,0.044411086602262,0.0443322729388712,0.0442882108614512,0.0442882108614512, +0.0919394009626183,0.0919394009626183,0.0919768705541327,0.091903814702991,0.0917528785580066,0.0915631551312042,0.0913737526546701,0.0912208226869657,0.0911348582890458,0.0911348582890458, +0.175209175248478,0.175209175248478,0.175228375013384,0.175069823026165,0.174787436447315,0.174445030816508,0.174105908246723,0.173830461123101,0.173673714273275,0.173673714273275, +0.307091483084543,0.307091483084543,0.307051880677993,0.30674809232639,0.30626606217229,0.305701294370671,0.305144503326347,0.304685495867798,0.304417031904486,0.304417031904486, +0.494401472265545,0.494401472265545,0.494255557517371,0.493731584366943,0.492979492176733,0.492130178935795,0.49129301116778,0.490580772026958,0.490137259574226,0.490137259574226, +0.731956514601894,0.731956514601894,0.731701814054237,0.730854303714997,0.729774324915863,0.72861274772471,0.727462166333899,0.726421931227824,0.725672990125756,0.725672990125756, + +00:15:38, +0.011275170136689,0.011275170136689,0.0112940871991541,0.0112911980400042,0.0112727341270927,0.0112460721592764,0.0112184203946735,0.0111960004719564,0.0111834966438934,0.0111834966438934, +0.011275170136689,0.011275170136689,0.0112940871991541,0.0112911980400042,0.0112727341270927,0.0112460721592764,0.0112184203946735,0.0111960004719564,0.0111834966438934,0.0111834966438934, +0.0208982835751179,0.0208982835751179,0.0209234164264006,0.0209136903833867,0.0208791506781855,0.0208317486666869,0.0207832762730539,0.0207441044863886,0.0207222502256934,0.0207222502256934, +0.0447826154617564,0.0447826154617564,0.0448168364258379,0.0447876740400719,0.0447135845558415,0.0446166386691238,0.0445188202692543,0.0444399209147359,0.0443958109342583,0.0443958109342583, +0.0921052247233617,0.0921052247233617,0.0921426770536706,0.0920695801708278,0.0919185731492005,0.0917287546277153,0.0915392515145202,0.0913862390801842,0.0913002290640607,0.0913002290640607, +0.17543270343936,0.17543270343936,0.175451839020591,0.175293260346985,0.175010854162416,0.174668419886486,0.174329263213478,0.174053788907451,0.173897029039335,0.173897029039335, +0.307345791729598,0.307345791729598,0.307306107901794,0.307002370438017,0.306520456763736,0.305955821678607,0.305399156835651,0.304940256987826,0.304671861167815,0.304671861167815, +0.494631179361048,0.494631179361048,0.494485242692712,0.493961484520114,0.493209730106749,0.492360794599194,0.491523996015371,0.490812076781874,0.490368770696221,0.490368770696221, +0.732094756388236,0.732094756388236,0.731840171875704,0.73099311254592,0.729913717793421,0.728752765824433,0.727602801732492,0.726563128006914,0.725814594266705,0.725814594266705, + +00:15:39, +0.0113195586295509,0.0113195586295509,0.0113385210545181,0.011335629281413,0.0113171253379004,0.0112904009550169,0.0112626817687365,0.0112402060430986,0.0112276708604777,0.0112276708604777, +0.0113195586295509,0.0113195586295509,0.0113385210545181,0.011335629281413,0.0113171253379004,0.0112904009550169,0.0112626817687365,0.0112402060430986,0.0112276708604777,0.0112276708604777, +0.0209641011807024,0.0209641011807024,0.0209892739001595,0.0209795362336728,0.0209449434669835,0.0208974629773319,0.0208489067395763,0.020809665780494,0.0207877727202834,0.0207877727202834, +0.0448907001196582,0.0448907001196582,0.04492494214557,0.0448957520427438,0.0448215921641003,0.0447245479244107,0.0446266255211596,0.0445476406560652,0.0445034828723605,0.0445034828723605, +0.0922710473522028,0.0922710473522028,0.0923084823475841,0.092235344531902,0.0920842668972209,0.0918943536576934,0.0917047503080238,0.0915516557341609,0.0914656002810447,0.0914656002810447, +0.175656107062671,0.175656107062671,0.175675178492056,0.175516573282655,0.175234147807902,0.174891685339919,0.174552495052602,0.174276993964261,0.174120221297088,0.174120221297088, +0.307599845368964,0.307599845368964,0.307560080282693,0.307256393797122,0.306774596765793,0.30621009467539,0.305653556357135,0.305194764379682,0.30492643683331,0.30492643683331, +0.494860579650671,0.494860579650671,0.494714621200745,0.494191077810747,0.493439660904919,0.492591102915218,0.491754673348197,0.491043073857427,0.49059997399806,0.49059997399806, +0.732232784822795,0.732232784822795,0.731978316185119,0.731131707186222,0.730052895647075,0.728892568066757,0.727743220476527,0.726704107387802,0.725955980438125,0.725955980438125, + +00:15:40, +0.0113640457510056,0.0113640457510056,0.0113830535373513,0.0113801591574367,0.0113616151927547,0.0113348284012039,0.0113070417945502,0.0112845102638004,0.0112719437242951,0.0112719437242951, +0.0113640457510056,0.0113640457510056,0.0113830535373513,0.0113801591574367,0.0113616151927547,0.0113348284012039,0.0113070417945502,0.0112845102638004,0.0112719437242951,0.0112719437242951, +0.0210300145725455,0.0210300145725455,0.0210552271191578,0.021045477842777,0.0210108320689192,0.0209632731765835,0.0209146331706027,0.0208753230984945,0.0208533912708992,0.0208533912708992, +0.0449988556073658,0.0449988556073658,0.0450331186097196,0.0450039008309521,0.0449296707048408,0.0448325283240689,0.0447345021400252,0.0446554319448414,0.0446112264577128,0.0446112264577128, +0.0924368686143015,0.0924368686143015,0.0924742862015153,0.0924011075517933,0.0922499595671105,0.0920599519853586,0.0918702487985418,0.0917170724115768,0.0916309717023125,0.0916309717023125, +0.175879386088202,0.175879386088202,0.175898393397945,0.175739761803038,0.17545731735257,0.175114827143976,0.174775603729516,0.17450007625754,0.174343291009775,0.174343291009775, +0.307853644366004,0.307853644366004,0.307813798183928,0.307510162766576,0.307028482540241,0.306464113721017,0.3059077022488,0.305449018399757,0.305180759256515,0.305180759256515, +0.495089673801716,0.495089673801716,0.494943693708412,0.494420364906072,0.493669285238466,0.492821104550503,0.491985043832054,0.491273763918806,0.490830870144738,0.490830870144738, +0.732370600453063,0.732370600453063,0.732116247530435,0.731270088185596,0.730191859028382,0.729032155004818,0.72788342312052,0.726844869926382,0.726097149197114,0.726097149197114, + +00:15:41, +0.0114086314875839,0.0114086314875839,0.0114276846339833,0.011424787654406,0.011406203678168,0.011379354484658,0.011351500459286,0.0113289131215329,0.0113163152229872,0.0113163152229872, +0.0114086314875839,0.0114086314875839,0.0114276846339833,0.011424787654406,0.011406203678168,0.011379354484658,0.011351500459286,0.0113289131215329,0.0113163152229872,0.0113163152229872, +0.0210960236483501,0.0210960236483501,0.0211212759810484,0.0211115151083852,0.0210768163818073,0.0210291791624694,0.0209804554644136,0.0209410763388941,0.0209191057761755,0.0209191057761755, +0.0451070817074174,0.0451070817074174,0.0451413656010602,0.0451121201875141,0.0450378199607988,0.0449405796507078,0.0448424499083517,0.0447632945634986,0.0447190414727211,0.0447190414727211, +0.0926026882758369,0.0926026882758369,0.092640088382124,0.0925668689970982,0.0924156509249295,0.0922255493759495,0.0920357467504535,0.0918824888761319,0.0917963430911976,0.0917963430911976, +0.176102540486603,0.176102540486603,0.17612148370928,0.175962825878858,0.175680362766083,0.175337845266698,0.174998589210515,0.174723035752176,0.174566238141519,0.174566238141519, +0.30810718908366,0.30810718908366,0.308067261968315,0.307763677708831,0.307282114448451,0.306717879175079,0.30616159486825,0.305703019404053,0.305434828792591,0.305434828792591, +0.495318462479538,0.495318462479538,0.495172460880705,0.494649346471371,0.493898603772667,0.493050800169745,0.492215108130808,0.491504147629269,0.491061459799329,0.491061459799329, +0.732508203824578,0.732508203824578,0.732253966457651,0.731408256091771,0.730330608486929,0.729171527189777,0.728023410217015,0.726985416176574,0.726238101098792,0.726238101098792, + +00:15:42, +0.0114533158254088,0.0114533158254088,0.0114724143303366,0.0114695147582447,0.0114508907802451,0.0114239791917913,0.0113960577497062,0.0113734146033571,0.0113607853437858,0.0113607853437858, +0.0114533158254088,0.0114533158254088,0.0114724143303366,0.0114695147582447,0.0114508907802451,0.0114239791917913,0.0113960577497062,0.0113734146033571,0.0113607853437858,0.0113607853437858, +0.0211621283057002,0.0211621283057002,0.0211874203833663,0.0211776479280655,0.0211428963033433,0.0210951808328972,0.0210463735191678,0.0210069254000744,0.0209849161346234,0.0209849161346234, +0.0452153782028087,0.0452153782028087,0.0452496829028226,0.0452204098957046,0.0451460397151663,0.0450487016873917,0.0449504686090932,0.0448712282949231,0.0448269277002425,0.0448269277002425, +0.0927685061040038,0.0927685061040038,0.0928058886570843,0.0927326286354273,0.0925813407377527,0.0923911455957197,0.0922012439291541,0.0920479048925417,0.0919617142120492,0.0919617142120492, +0.176325570229387,0.176325570229387,0.176344449397944,0.176185765481695,0.175903284018961,0.175560739676989,0.175221451462764,0.174945872413929,0.174789062657319,0.174789062657319, +0.308360479884455,0.308360479884455,0.308320471998248,0.308016938985918,0.307535492851374,0.306971391396759,0.30641523457269,0.305956767748179,0.305688645796308,0.305688645796308, +0.49554694634755,0.49554694634755,0.495400923380675,0.494878023169985,0.49412761717086,0.493280190435709,0.492444866906395,0.491734225650156,0.491291743622984,0.491291743622984, +0.732645595480933,0.732645595480933,0.732391473510818,0.731546211450525,0.730469144570346,0.729310685170835,0.728163182316592,0.727125746690329,0.726378836696311,0.726378836696311, + +00:15:43, +0.0114980987501972,0.0114980987501972,0.011517242611928,0.0115143404544711,0.0114956764846848,0.0114687025086092,0.0114407136521654,0.0114180146959257,0.0114053540735134,0.0114053540735134, +0.0114980987501972,0.0114980987501972,0.011517242611928,0.0115143404544711,0.0114956764846848,0.0114687025086092,0.0114407136521654,0.0114180146959257,0.0114053540735134,0.0114053540735134, +0.0212283284420629,0.0212283284420629,0.0212536602235299,0.0212438761992693,0.0212090717311057,0.0211612780856559,0.0211123872329038,0.0210728701802951,0.0210508222446317,0.0210508222446317, +0.045323744876993,0.045323744876993,0.045358070298695,0.0453287697392553,0.0452543297515918,0.04515689421764,0.0450585580256572,0.044979232922453,0.0449348849235851,0.0449348849235851, +0.09293432186701,0.09293432186701,0.0929716867950809,0.092898386235402,0.0927470287736662,0.092556740411935,0.092366740101051,0.0922133202265343,0.0921270848302289,0.0921270848302289, +0.176548475288917,0.176548475288917,0.176567290436667,0.176408580583983,0.17612608108258,0.175783510344613,0.175444190454293,0.175168586209429,0.175011764523045,0.175011764523045, +0.30861351713049,0.30861351713049,0.308573428635701,0.308269946959446,0.307788618109547,0.307224650744833,0.306668621718928,0.306210263787356,0.305942210622051,0.305942210622051, +0.495775126067231,0.495775126067231,0.495629081869442,0.495106395663318,0.494356326094451,0.493509276009231,0.492674320818835,0.491963998640893,0.491521722274944,0.491521722274944, +0.732782775963787,0.732782775963787,0.73252876923205,0.731683954805691,0.730607467824315,0.729449629495242,0.728302739967875,0.727265862017644,0.726519356540859,0.726519356540859, + +00:15:44, +0.0115429802472609,0.0115429802472609,0.01156216946387,0.0115592647281992,0.0115405607767812,0.0115135244207114,0.0114854681526115,0.0114627133854842,0.0114500213985851,0.0114500213985851, +0.0115429802472609,0.0115429802472609,0.01156216946387,0.0115592647281992,0.0115405607767812,0.0115135244207114,0.0114854681526115,0.0114627133854842,0.0114500213985851,0.0114500213985851, +0.0212946239547892,0.0212946239547892,0.0213199953988422,0.0213101998193328,0.0212753425625569,0.0212274708184171,0.0211784965035414,0.0211389105776957,0.0211168240044684,0.0211168240044684, +0.0454321815138806,0.0454321815138806,0.0454665275728229,0.045437199502355,0.04536268985418,0.0452651570254271,0.0451667179419047,0.0450873082298782,0.0450429129265079,0.0450429129265079, +0.093100135334072,0.093100135334072,0.0931374825658065,0.0930641415666507,0.0929127148017637,0.0927223335928694,0.0925322350335604,0.0923787346448466,0.0922924547121073,0.0922924547121073, +0.176771255638406,0.176771255638406,0.176790006799027,0.176631271158999,0.176348753929165,0.176006157240189,0.175666806153992,0.175391177106168,0.175234343705432,0.175234343705432, +0.308866301183442,0.308866301183442,0.308826132242221,0.308522701990601,0.308041490583088,0.307477657577667,0.306921756663371,0.306463507876409,0.306195523623815,0.306195523623815, +0.496003002298134,0.496003002298134,0.495856937006198,0.495334464610851,0.49458473120292,0.493738057549228,0.492903470526233,0.492193467258998,0.491751396412547,0.491751396412547, +0.732919745812869,0.732919745812869,0.732665854161531,0.731821486699166,0.730745578792574,0.7295883607083,0.728442083717543,0.727405762706563,0.726659661181674,0.726659661181674, + +00:15:45, +0.0115879603015081,0.0115879603015081,0.0116071948708725,0.0116042875641401,0.0115855436414249,0.0115584449132936,0.0115303212365875,0.0115075106578722,0.0114947873050099,0.0114947873050099, +0.0115879603015081,0.0115879603015081,0.0116071948708725,0.0116042875641401,0.0115855436414249,0.0115584449132936,0.0115303212365875,0.0115075106578722,0.0114947873050099,0.0114947873050099, +0.0213610147411155,0.0213610147411155,0.0213864258064926,0.021376618685478,0.0213417086950442,0.021293758928736,0.0212447012288827,0.0212050464902971,0.0211829213122818,0.0211829213122818, +0.0455406878978391,0.0455406878978391,0.0455750545098088,0.0455456989696493,0.0454711198074917,0.0453734898951821,0.0452749481421495,0.0451954540014404,0.0451510114932209,0.0451510114932209, +0.0932659462754128,0.0932659462754128,0.0933032757399576,0.0932298943998061,0.0930783985921437,0.0928879249078024,0.0926977284951045,0.0925441479152216,0.0924578236250609,0.0924578236250609, +0.176993911251911,0.176993911251911,0.177012598459442,0.176853837180863,0.176571302531786,0.176228680335182,0.175889298531603,0.175613645072497,0.175456800172074,0.175456800172074, +0.309118832404568,0.309118832404568,0.309078583178932,0.308775204440147,0.308294110631698,0.307730412253217,0.307174639762024,0.30671650036977,0.306448585155205,0.306448585155205, +0.496230575697889,0.496230575697889,0.496084489448214,0.495562230670141,0.494812833153831,0.493966535712706,0.493132316684791,0.49242263216009,0.491980766691231,0.491980766691231, +0.733056505565995,0.733056505565995,0.732802728837526,0.731958807670923,0.730883478016933,0.729726879353381,0.728581214110337,0.727545449303194,0.72679975116605,0.72679975116605, + +00:15:46, +0.0116330388974448,0.0116330388974448,0.0116523188172433,0.0116494089466035,0.0116306250631047,0.0116034639711483,0.0115752728892326,0.011552406498525,0.0115396517783917,0.0115396517783917, +0.0116330388974448,0.0116330388974448,0.0116523188172433,0.0116494089466035,0.0116306250631047,0.0116034639711483,0.0115752728892326,0.011552406498525,0.0115396517783917,0.0115396517783917, +0.0214275006981649,0.0214275006981649,0.0214529513435574,0.0214431326948145,0.0214081700258019,0.0213601423140536,0.0213110013066132,0.0212712778160024,0.0212491140661021,0.0212491140661021, +0.0456492638136933,0.0456492638136933,0.0456836508947124,0.0456542679262405,0.0455796193965439,0.0454818926117889,0.0453832484111589,0.0453036700218329,0.0452591804083848,0.0452591804083848, +0.0934317544622578,0.0934317544622578,0.0934690660892322,0.0933956445065015,0.0932440799159059,0.0930535141270154,0.0928632202551077,0.0927095598064049,0.092623191337469,0.092623191337469, +0.177216442104325,0.177216442104325,0.177235065393164,0.177076278624528,0.17679372686435,0.176451079601905,0.17611166755772,0.17583599007762,0.175679133891422,0.175679133891422, +0.309371111154697,0.309371111154697,0.309330781806533,0.309027454668422,0.308546478614656,0.307982915129028,0.30742727137049,0.306969241621477,0.306701395569432,0.306701395569432, +0.496457846922215,0.496457846922215,0.49631173985085,0.495789694496834,0.495040632602834,0.494194711154764,0.49336085994881,0.492651493997892,0.492209833764542,0.492209833764542, +0.733193055759066,0.733193055759066,0.73293939379639,0.732095918259015,0.731021166037276,0.729865185971926,0.728720131689071,0.727684922351709,0.726939627039347,0.726939627039347, + +00:15:47, +0.0116782160191759,0.0116782160191759,0.0116975412868903,0.0116946288594985,0.0116758050259083,0.0116485815786667,0.0116203230952834,0.0115974008924744,0.0115846148039309,0.0115846148039309, +0.0116782160191759,0.0116782160191759,0.0116975412868903,0.0116946288594985,0.0116758050259083,0.0116485815786667,0.0116203230952834,0.0115974008924744,0.0115846148039309,0.0115846148039309, +0.0214940817229484,0.0214940817229484,0.0215195719070017,0.0215097417443401,0.0214747264519517,0.0214266208716967,0.0213773966343039,0.0213376044525984,0.0213154021638423,0.0213154021638423, +0.0457579090467247,0.0457579090467247,0.04579231651305,0.0457629061576878,0.0456881884068095,0.0455903649605862,0.0454916185341529,0.0454119560762006,0.0453674194571111,0.0453674194571111, +0.0935975596668317,0.0935975596668317,0.0936348533863258,0.0935613916593677,0.0934097585451481,0.0932191010217888,0.0930287100839939,0.0928749700881415,0.0927885576187099,0.0927885576187099, +0.177438848171376,0.177438848171376,0.177457407576278,0.17729859546578,0.177016026901601,0.176673355013509,0.176333913203777,0.176058212091588,0.175901344832775,0.175901344832775, +0.309623137794234,0.309623137794234,0.309582728485293,0.309279453035338,0.308798594890823,0.308235166562232,0.307679651843969,0.307221731985168,0.306953955219319,0.306953955219319, +0.496684816624924,0.496684816624924,0.496538688867559,0.496016856744666,0.495268130203676,0.494422584528603,0.4935891009707,0.492880053424243,0.492438598284144,0.492438598284144, +0.733329396926089,0.733329396926089,0.733075849572571,0.732232818999588,0.731158643391574,0.730003281103463,0.728858836994637,0.727824182394363,0.727079289344997,0.727079289344997, + +00:15:48, +0.0117234916504067,0.0117234916504067,0.0117428622633222,0.0117399472863357,0.0117210835135243,0.0116937977198395,0.0116654718390755,0.0116424938243505,0.0116296763664258,0.0116296763664258, +0.0117234916504067,0.0117234916504067,0.0117428622633222,0.0117399472863357,0.0117210835135243,0.0116937977198395,0.0116654718390755,0.0116424938243505,0.0116296763664258,0.0116296763664258, +0.0215607577123662,0.0215607577123662,0.0215862873936806,0.0215764457309428,0.0215413778705046,0.0214931944988805,0.0214438871094118,0.021404026297757,0.0213817855032997,0.0213817855032997, +0.0458666233826719,0.0458666233826719,0.0459010511507949,0.0458716134500067,0.0457968266242169,0.0456989067273669,0.0456000582968047,0.0455203119501397,0.0454757284249617,0.0454757284249617, +0.0937633616623557,0.0937633616623557,0.0938006374049284,0.0937271356320297,0.0935754342529629,0.0933846853643983,0.0931941977531827,0.0930403785311724,0.0929539222391585,0.0929539222391585, +0.177661129429619,0.177661129429619,0.177679624985693,0.177520787681232,0.177238202619109,0.176895506543976,0.176556035442052,0.176280311085297,0.176123432966278,0.176123432966278, +0.309874912683157,0.309874912683157,0.309834423575057,0.30953119990038,0.309050459818637,0.308487166909548,0.307931781537257,0.307473971814088,0.307206264457291,0.307206264457291, +0.496911485457927,0.496911485457927,0.496765337149897,0.496243718065478,0.495495326608207,0.494650156485532,0.493817040400986,0.493108311089099,0.492667060899821,0.492667060899821, +0.733465529599173,0.733465529599173,0.733212096698629,0.732369510426888,0.731295910615893,0.730141165285608,0.728997330566019,0.727963229971492,0.72721873862452,0.72721873862452, + +00:15:49, +0.0117688657744443,0.0117688657744443,0.0117882817296501,0.0117853642102277,0.011766460509243,0.0117391123782589,0.0117107191045445,0.011687685278383,0.0116748364502735,0.0116748364502735, +0.0117688657744443,0.0117688657744443,0.0117882817296501,0.0117853642102277,0.011766460509243,0.0117391123782589,0.0117107191045445,0.011687685278383,0.0116748364502735,0.0116748364502735, +0.0216275285632091,0.0216275285632091,0.0216530977003402,0.0216432445514015,0.0216081241783619,0.0215598630927088,0.0215104726292813,0.0214705432490364,0.0214482639821572,0.0214482639821572, +0.0459754066077298,0.0459754066077298,0.0460098545943767,0.0459803895896689,0.0459055338351505,0.0458075176983784,0.04570856748524,0.045628737429698,0.0455841070979493,0.0455841070979493, +0.0939291602230436,0.0939291602230436,0.0939664179197213,0.0938928761991035,0.0937411068134342,0.0935502669281117,0.0933596830350866,0.0932057849072316,0.0931192849701823,0.0931192849701823, +0.177883285856432,0.177883285856432,0.177901717599139,0.177742855248317,0.177460253993271,0.177117534168122,0.176778034245654,0.176502287030479,0.176345398262916,0.176345398262916, +0.310126436181016,0.310126436181016,0.310085867435238,0.309782695622607,0.309302073756112,0.308738916527279,0.308183660804742,0.30772596146108,0.307458323635379,0.307458323635379, +0.497137854071244,0.497137854071244,0.496991685347523,0.496470279109212,0.495722222466384,0.494877427674974,0.494044678888315,0.493336267640545,0.492895222259488,0.492895222259488, +0.733601454308547,0.733601454308547,0.733348135705233,0.732505993073267,0.731432968244401,0.730278839054078,0.729135612940296,0.728102065621532,0.727357975417523,0.727357975417523, + +00:15:50, +0.0118143383741987,0.0118143383741987,0.0118337996685889,0.0118308796138911,0.011811935995958,0.011784525537119,0.0117560648752278,0.011732975238402,0.0117200950394717,0.0117200950394717, +0.0118143383741987,0.0118143383741987,0.0118337996685889,0.0118308796138911,0.011811935995958,0.011784525537119,0.0117560648752278,0.011732975238402,0.0117200950394717,0.0117200950394717, +0.0216943941721596,0.0216943941721596,0.021720002723619,0.0217101381023876,0.0216749652723166,0.021626626550176,0.021577153091146,0.0215371552038822,0.0215148374979846,0.0215148374979846, +0.0460842585085502,0.0460842585085502,0.0461187266306818,0.0460892343636024,0.0460143098264498,0.0459161976603223,0.0458171458860372,0.0457372323013742,0.0456925552625368,0.0456925552625368, +0.0940949551240988,0.0940949551240988,0.0941321947063737,0.0940586131361928,0.0939067760016346,0.0937158454871862,0.0935251657031077,0.0933711889890428,0.0932846455841387,0.0932846455841387, +0.178105317430012,0.178105317430012,0.178123685395161,0.177964798145282,0.177682181001302,0.177339437861584,0.176999909588522,0.176724139899699,0.176567240694509,0.176567240694509, +0.310377708646933,0.310377708646933,0.310337060424822,0.310033940560649,0.30955343706084,0.308990415771315,0.308435290000408,0.307977701278589,0.307710133105219,0.307710133105219, +0.497363923113008,0.497363923113008,0.497217734108217,0.49669654052393,0.495948818426281,0.495104398744473,0.494272017079459,0.493563923724799,0.493123083009191,0.493123083009191, +0.733737171582566,0.733737171582566,0.73348396712118,0.732642267469198,0.731569816809381,0.730416302942699,0.729273684652654,0.728240689881019,0.727497000261715,0.727497000261715, + +00:15:51, +0.0118599094321842,0.0118599094321842,0.0118794160624585,0.0118764934796477,0.0118575099561677,0.0118300371792179,0.0118015091342654,0.0117783636878402,0.0117654521176198,0.0117654521176198, +0.0118599094321842,0.0118599094321842,0.0118794160624585,0.0118764934796477,0.0118575099561677,0.0118300371792179,0.0118015091342654,0.0117783636878402,0.0117654521176198,0.0117654521176198, +0.0217613544357933,0.0217613544357933,0.0217870023600493,0.0217771262804659,0.0217419010490546,0.021693484768168,0.0216439283921293,0.0216038620596292,0.02158150594824,0.02158150594824, +0.0461931788722408,0.0461931788722408,0.0462276670470524,0.0461981475591913,0.0461231543854099,0.0460249464003543,0.0459257932862273,0.0458457963521184,0.0458010727056374,0.0458010727056374, +0.0942607461417114,0.0942607461417114,0.0942979675415396,0.0942243462198857,0.0940724415936211,0.0938814208168645,0.0936906455316341,0.0935365905503162,0.0934500038543716,0.0934500038543716, +0.178327224129368,0.178327224129368,0.178345528353117,0.178186616351187,0.177903983621229,0.177561217600818,0.177221661445418,0.176945869666352,0.176788960233707,0.176788960233707, +0.3106287304396,0.3106287304396,0.310588002902363,0.310284935072705,0.309804550089989,0.309241664997128,0.308686669477829,0.308229191618659,0.30796169321805,0.30796169321805, +0.497589693229472,0.497589693229472,0.497443484077874,0.49692250295581,0.496175115134096,0.495331070339702,0.494499055619329,0.493791279986217,0.493350643793124,0.493350643793124, +0.733872681947716,0.733872681947716,0.733619591473397,0.732778334143277,0.731706456841231,0.730553557483414,0.729411546236396,0.728379103284602,0.727635813692916,0.727635813692916, + +00:15:52, +0.0119055789305209,0.0119055789305209,0.0119251308931851,0.0119222057894253,0.0119031823719761,0.011875647286959,0.0118470518644014,0.0118238506097333,0.01181090766792,0.01181090766792, +0.0119055789305209,0.0119055789305209,0.0119251308931851,0.0119222057894253,0.0119031823719761,0.011875647286959,0.0118470518644014,0.0118238506097333,0.01181090766792,0.01181090766792, +0.0218284092505801,0.0218284092505801,0.0218540965060584,0.0218442089820965,0.0218089314051558,0.0217604376434635,0.0217107984292461,0.021670663713502,0.0216482692302705,0.0216482692302705, +0.046302167486366,0.046302167486366,0.0463366756312871,0.0463071289642754,0.0462320672997809,0.0461337637060839,0.0460345094732935,0.0459544293693314,0.0459096592146145,0.0459096592146145, +0.0944265330530542,0.0944265330530542,0.0944637362028544,0.0943900752277515,0.0942381033664331,0.0940469926933719,0.0938561222960371,0.0937019893657452,0.0936153595552081,0.0936153595552081, +0.178549005934319,0.178549005934319,0.178567246453166,0.178408309845898,0.178125661831893,0.177782873363095,0.177443289791926,0.177167476304653,0.177010556853985,0.177010556853985, +0.31087950191728,0.31087950191728,0.310838695225984,0.310535679516544,0.310055413200299,0.309492664559772,0.308937799590173,0.308480432832931,0.308213004324711,0.308213004324711, +0.497815165065018,0.497815165065018,0.497668935900522,0.49714816704916,0.496401113234154,0.495557443104471,0.494725795150974,0.494018337067304,0.493577905253625,0.493577905253625, +0.734007985928629,0.734007985928629,0.733755009286949,0.732914193622234,0.731842888868484,0.730690603206293,0.729549198222946,0.728517306365052,0.72777441624506,0.72777441624506, + +00:15:53, +0.0119513468509358,0.0119513468509358,0.0119709441423025,0.0119680165247597,0.0119489532250945,0.0119213558423517,0.0118926930479857,0.011869435986722,0.0118564616731792,0.0118564616731792, +0.0119513468509358,0.0119513468509358,0.0119709441423025,0.0119680165247597,0.0119489532250945,0.0119213558423517,0.0118926930479857,0.011869435986722,0.0118564616731792,0.0118564616731792, +0.0218955585128855,0.0218955585128855,0.0219212850579697,0.0219113861036354,0.0218760562370957,0.0218274850727355,0.021777763099404,0.0217375600626166,0.0217151272413143,0.0217151272413143, +0.0464112241389457,0.0464112241389457,0.0464457521716402,0.0464161783671502,0.046341048357768,0.0462426493655745,0.0461432942351714,0.0460631311408651,0.0460183145772814,0.0460183145772814, +0.0945923156362801,0.0945923156362801,0.0946295004689316,0.0945557999383374,0.0944037610980881,0.094212560893913,0.0940215957726679,0.0938673852110033,0.0937807124619555,0.0937807124619555, +0.178770662825486,0.178770662825486,0.178788839676274,0.178629878610083,0.178347215612936,0.178004405126495,0.177664794604441,0.177388959789639,0.177232030529638,0.177232030529638, +0.311130023437802,0.311130023437802,0.311089137753374,0.310786174249505,0.310306026748085,0.309743414813883,0.309188680690196,0.308731425272644,0.308464066775643,0.308464066775643, +0.49804033926216,0.49804033926216,0.49789409021832,0.49737353344642,0.496626813368918,0.495783517680726,0.494952236315594,0.494245095608715,0.49380486803119,0.49380486803119, +0.734143084048084,0.734143084048084,0.733890221085053,0.733049846430945,0.731979113417805,0.730827440639537,0.729686641141861,0.728655299653268,0.727912808450211,0.727912808450211, + +00:15:54, +0.0119972131747644,0.0119972131747644,0.0120168557909538,0.0120139256667959,0.0119948224968431,0.0119671628270133,0.0119384326669749,0.0119151198010531,0.0119021141158098,0.0119021141158098, +0.0119972131747644,0.0119972131747644,0.0120168557909538,0.0120139256667959,0.0119948224968431,0.0119671628270133,0.0119384326669749,0.0119151198010531,0.0119021141158098,0.0119021141158098, +0.0219628021189717,0.0219628021189717,0.0219885679120039,0.0219786575413359,0.0219432754412463,0.0218946269525521,0.0218448222994044,0.0218045510039818,0.0217820798785013,0.0217820798785013, +0.0465203486184559,0.0465203486184559,0.046554896456822,0.0465252955565667,0.0464500973480309,0.0463516031673428,0.0462521473602485,0.0461719014550217,0.0461270385819015,0.0461270385819015, +0.0947580936705187,0.0947580936705187,0.0947952601193601,0.0947215201311654,0.0945694145675791,0.0943781251966686,0.0941870657388542,0.0940327778627408,0.093946062350898,0.093946062350898, +0.178992194784289,0.178992194784289,0.179010308004198,0.178851322625204,0.178568644944801,0.178225812869904,0.17788617586017,0.177610320097156,0.177453381235777,0.177453381235777, +0.311380295358566,0.311380295358566,0.311339330841792,0.311036419628494,0.310556391089235,0.309993916113678,0.309439313130244,0.308982169288635,0.308714880920888,0.308714880920888, +0.498265216461555,0.498265216461555,0.49811894767157,0.497598602788171,0.496852216178992,0.496009294708567,0.495178379752541,0.494471556249267,0.494031532764475,0.494031532764475, +0.734277976827021,0.734277976827021,0.734025227389082,0.733185293092433,0.732115131014009,0.730964070309492,0.729823875520838,0.728793083678286,0.728050990838563,0.728050990838563, + +00:15:55, +0.0120431778829518,0.0120431778829518,0.0120628658198921,0.0120599331962889,0.0120407901681514,0.0120130682221702,0.0119842707029335,0.0119609020345807,0.0119478649778313,0.0119478649778313, +0.0120431778829518,0.0120431778829518,0.0120628658198921,0.0120599331962889,0.0120407901681514,0.0120130682221702,0.0119842707029335,0.0119609020345807,0.0119478649778313,0.0119478649778313, +0.022030139964999,0.022030139964999,0.0220559449642807,0.0220460231913502,0.0220105889138775,0.0219618631793782,0.0219119759259437,0.0218716364345001,0.0218491270388546,0.0218491270388546, +0.0466295407138283,0.0466295407138283,0.0466641082759981,0.0466344803217311,0.0465592140596842,0.0464606249003592,0.0463610686373641,0.0462807401005542,0.0462358310171875,0.0462358310171875, +0.0949238669358728,0.0949238669358728,0.0949610149347002,0.0948872355867291,0.0947350635548711,0.0945436853807922,0.0943525319728973,0.0941981670985817,0.0941114089992934,0.0941114089992934, +0.179213601792942,0.179213601792942,0.17923165141949,0.179072641873518,0.178789949808724,0.178447096573006,0.178107433537123,0.177831557203863,0.177674608948323,0.177674608948323, +0.311630318036536,0.311630318036536,0.311589274848059,0.311286416009982,0.310806506579209,0.310244168812953,0.309689697262251,0.309232665231334,0.308965447110084,0.308965447110084, +0.498489797302006,0.498489797302006,0.498343508898723,0.497823375713144,0.497077322303131,0.496234774826244,0.495404226099329,0.494697719625943,0.494257900090304,0.494257900090304, +0.734412664784548,0.734412664784548,0.734160028718574,0.733320534127882,0.732250942180063,0.731100492740654,0.729960901885724,0.728930658967289,0.728188963938457,0.728188963938457, + +00:15:56, +0.0120892409560539,0.0120892409560539,0.0121089742094824,0.0121060390936056,0.0120868562195607,0.012059072008659,0.0120302071370357,0.0120067826687677,0.0119937142408714,0.0119937142408714, +0.0120892409560539,0.0120892409560539,0.0121089742094824,0.0121060390936056,0.0120868562195607,0.012059072008659,0.0120302071370357,0.0120067826687677,0.0119937142408714,0.0119937142408714, +0.0220975719470269,0.0220975719470269,0.0221234161108194,0.0221134829497302,0.0220779965511584,0.0220291936495765,0.0219792238756149,0.0219388162509692,0.0219162686192917,0.0219162686192917, +0.0467388002144498,0.0467388002144498,0.0467733874187893,0.0467437324523047,0.0466683982822967,0.0465697143540471,0.0464700578558094,0.0463896468666657,0.0463446916723019,0.0463446916723019, +0.0950896352134157,0.0950896352134157,0.0951267646964809,0.0950529460864903,0.0949007078408983,0.094709241226407,0.0945179942540686,0.0943635526971205,0.0942767521853703,0.0942767521853703, +0.179434883834448,0.179434883834448,0.179452869905485,0.179293836338066,0.179011130186734,0.178668256216279,0.178328567614111,0.178052671087218,0.177895713644002,0.177895713644002, +0.311880091828244,0.311880091828244,0.311838970128564,0.31153616375001,0.311056373573036,0.310494173265085,0.309939833437739,0.309482913450764,0.309215765692468,0.309215765692468, +0.498714082420471,0.498714082420471,0.498567774536383,0.49804785285822,0.497302132378245,0.496459958670172,0.495629775991642,0.494923586373897,0.494483970643678,0.494483970643678, +0.734547148437948,0.734547148437948,0.734294625591241,0.733455570056646,0.732386547437096,0.73123670845568,0.730097720760521,0.729068026045615,0.728326728276383,0.728326728276383, + +00:15:57, +0.0121354023742391,0.0121354023742391,0.0121551809397027,0.0121522433387261,0.0121330206312244,0.0121051741669284,0.0120762419500665,0.0120527616846871,0.0120396618861676,0.0120396618861676, +0.0121354023742391,0.0121354023742391,0.0121551809397027,0.0121522433387261,0.0121330206312244,0.0121051741669284,0.0120762419500665,0.0120527616846871,0.0120396618861676,0.0120396618861676, +0.0221650979610155,0.0221650979610155,0.0221909812475405,0.0221810367124288,0.0221454982491583,0.0220966182594087,0.0220465660449085,0.0220060903500833,0.0219835045166259,0.0219835045166259, +0.0468481269101626,0.0468481269101626,0.0468827336752719,0.0468530517384037,0.0467776498058916,0.046678871318283,0.046579114805327,0.0464986215430098,0.0464536203368567,0.0464536203368567, +0.0952553982851875,0.0952553982851875,0.0952925091871965,0.0952186514128759,0.09506634720756,0.0948747925146029,0.0946834523626065,0.094528934437919,0.0944420916883244,0.0944420916883244, +0.179656040892594,0.179656040892594,0.179673963446302,0.179514906002672,0.179232186061642,0.178889291780994,0.17854957807074,0.178273661725482,0.178116695300343,0.178116695300343, +0.312129617089787,0.312129617089787,0.312088417039258,0.31178566320418,0.311305992425316,0.310743929823025,0.310189722007817,0.309732914296545,0.309465837016875,0.309465837016875, +0.498938072452068,0.498938072452068,0.498791745219316,0.498272034858443,0.497526647039406,0.496684846874932,0.495855030063335,0.495149157126464,0.494709745057778,0.494709745057778, +0.734681428302686,0.734681428302686,0.734429018522976,0.733590401396251,0.73252194730441,0.731372717975393,0.730234332667398,0.729205185436763,0.728464284376991,0.728464284376991, + +00:15:58, +0.0121816621172894,0.0121816621172894,0.0122014859901451,0.0121985459112446,0.0121792833829101,0.0121513746770397,0.012122375122423,0.012098839063023,0.0120857078945683,0.0120857078945683, +0.0121816621172894,0.0121816621172894,0.0122014859901451,0.0121985459112446,0.0121792833829101,0.0121513746770397,0.012122375122423,0.012098839063023,0.0120857078945683,0.0120857078945683, +0.0222327179028266,0.0222327179028266,0.0222586402702669,0.0222486843753013,0.0222130939038482,0.0221641369050368,0.0221140023302139,0.0220734586284339,0.0220508346275673,0.0220508346275673, +0.0469575205912641,0.0469575205912641,0.0469921468359767,0.0469624379705988,0.0468869684209458,0.046788095583396,0.0466882392761109,0.0466076639196897,0.0465626168009128,0.0465626168009128, +0.0954211559341921,0.0954211559341921,0.0954582481903037,0.0953843513492747,0.0952319814377186,0.0950403390274329,0.0948489060797134,0.0946943121015032,0.0946074272883157,0.0946074272883157, +0.179877072951946,0.179877072951946,0.179894932026838,0.179735850851938,0.179453117417042,0.179110203249204,0.178770464887403,0.178494529097707,0.178337553895667,0.178337553895667, +0.312378894176825,0.312378894176825,0.312337615935658,0.312034914727662,0.311555363490219,0.310993438839304,0.310439363323177,0.309982668117887,0.309715661431734,0.309715661431734, +0.499161768030081,0.499161768030081,0.499015421580456,0.498495922347024,0.497750866919858,0.496909440073278,0.496079988946444,0.495374432515162,0.494935223963971,0.494935223963971, +0.734815504892423,0.734815504892423,0.734563208027865,0.733725028662411,0.732657142299484,0.731508521818793,0.730370738126697,0.729342137662404,0.728601632763098,0.728601632763098, + +00:15:59, +0.0122280201646018,0.0122280201646018,0.0122478893400176,0.0122449467903713,0.0122256444540004,0.0121976735186687,0.0121686066341157,0.0121450147840726,0.0121318522465342,0.0121318522465342, +0.0122280201646018,0.0122280201646018,0.0122478893400176,0.0122449467903713,0.0122256444540004,0.0121976735186687,0.0121686066341157,0.0121450147840726,0.0121318522465342,0.0121318522465342, +0.0223004316682249,0.0223004316682249,0.0223263930747251,0.0223164258341065,0.0222807834111019,0.0222317494825243,0.0221815326278202,0.0221409209825116,0.0221182588487241,0.0221182588487241, +0.0470669810485062,0.0470669810485062,0.0471016266918895,0.0470718909399153,0.0469963539183902,0.0468973869401681,0.0467974310588059,0.0467167737872586,0.0466716808549803,0.0466716808549803, +0.0955869079443939,0.0955869079443939,0.0956239814902178,0.095550045680034,0.0953976103151953,0.0952058805479101,0.0950143551875523,0.0948596854693599,0.0947727587664654,0.0947727587664654, +0.180097979997844,0.180097979997844,0.180115775632759,0.179956670871238,0.179673924237303,0.179330990603744,0.178991228045284,0.178715273183736,0.178558289409091,0.178558289409091, +0.312627923444583,0.312627923444583,0.312586567172841,0.312283918675186,0.311804487121482,0.311242700666028,0.310688757734099,0.31023217526359,0.30996523928507,0.30996523928507, +0.499385169785971,0.499385169785971,0.499238804250911,0.498719515955347,0.497974792651016,0.497133738896148,0.496304653271195,0.495599413169704,0.495160407991821,0.495160407991821, +0.734949378719016,0.734949378719016,0.73469719461819,0.73385945236903,0.732792132937987,0.731644120503062,0.730506937656942,0.729478883242389,0.728738773955699,0.728738773955699, + +00:16:00, +0.0122744764951896,0.0122744764951896,0.012294390968145,0.012291445954933,0.0122721038234945,0.0122440706711069,0.0122149364647697,0.0121912888277468,0.0121780949221396,0.0121780949221396, +0.0122744764951896,0.0122744764951896,0.012294390968145,0.012291445954933,0.0122721038234945,0.0122440706711069,0.0122149364647697,0.0121912888277468,0.0121780949221396,0.0121780949221396, +0.0223682391528792,0.0223682391528792,0.0223942395565462,0.0223842609845078,0.0223485666666969,0.0222994558878375,0.0222491568339183,0.0222084773087068,0.0221857770766039,0.0221857770766039, +0.0471765080730957,0.0471765080730957,0.0472111730344502,0.0471814104378326,0.0471058060896091,0.0470067451798334,0.0469066899445082,0.0468259509367193,0.046780812290018,0.046780812290018, +0.0957526541007151,0.0957526541007151,0.0957897088723101,0.095715734190457,0.0955632336247678,0.0953714168600046,0.0951797994692439,0.0950250543239338,0.0949380859048524,0.0949380859048524, +0.180318762016401,0.180318762016401,0.180336494250501,0.180177366046714,0.179894606507564,0.179551653828227,0.179211867526344,0.178935893964195,0.178778901820515,0.178778901820515, +0.312876705247849,0.312876705247849,0.312835271105447,0.312532675401049,0.31205336367241,0.311491715654879,0.310937905590444,0.310481436082047,0.310214570924501,0.310214570924501, +0.499608278349376,0.499608278349376,0.499461893859969,0.498942816312976,0.498198424862482,0.497357743972665,0.496529023666004,0.495824099718,0.495385297769089,0.495385297769089, +0.735083050292535,0.735083050292535,0.734830978804439,0.733993673028214,0.73292691973378,0.731779514543576,0.730642931774847,0.729615422694752,0.728875708473972,0.728875708473972, + +00:16:01, +0.0123210310876837,0.0123210310876837,0.0123409908529705,0.0123380433833752,0.0123186614700094,0.0122905661132629,0.0122613645936265,0.0122376611735721,0.0122244359010739,0.0122244359010739, +0.0123210310876837,0.0123210310876837,0.0123409908529705,0.0123380433833752,0.0123186614700094,0.0122905661132629,0.0122613645936265,0.0122376611735721,0.0122244359010739,0.0122244359010739, +0.0224361402523638,0.0224361402523638,0.0224621796112674,0.0224521897220748,0.0224164435663161,0.0223672560168465,0.0223168748446011,0.0222761275033113,0.0222533892076147,0.0222533892076147, +0.0472861014566935,0.0472861014566935,0.0473207856555531,0.0472909962562841,0.0472153247264402,0.0471161700940784,0.0470160157247645,0.046935195159524,0.0468900108974336,0.0468900108974336, +0.0959183941890316,0.0959183941890316,0.0959554301229044,0.0958814166667989,0.0957288511521663,0.0955369477486402,0.0953452387088629,0.0951904184486242,0.0951034084865105,0.0951034084865105, +0.180539418994492,0.180539418994492,0.180557087867262,0.180397936365271,0.180115164213732,0.179772192907033,0.179432383313321,0.179156391420493,0.178999391110623,0.178999391110623, +0.313125239940972,0.313125239940972,0.313083728087678,0.312781185259107,0.312301993495876,0.311740484157113,0.311186807241658,0.31073045092124,0.310463656697239,0.310463656697239, +0.499831094348123,0.499831094348123,0.499684691035108,0.499165824047663,0.498421764182042,0.497581455930146,0.496753100757491,0.496048492786164,0.495609893921746,0.495609893921746, +0.735216520121262,0.735216520121262,0.734964561095316,0.734127691150276,0.733061503198929,0.731914704453912,0.730778720995324,0.729751756535729,0.729012436835286,0.729012436835286, + +00:16:02, +0.0123676839203338,0.0123676839203338,0.0123876889725568,0.0123847390537629,0.0123653173717813,0.0123371598236635,0.0123078909995448,0.0122841318006914,0.0122708751626425,0.0122708751626425, +0.0123676839203338,0.0123676839203338,0.0123876889725568,0.0123847390537629,0.0123653173717813,0.0123371598236635,0.0123078909995448,0.0122841318006914,0.0122708751626425,0.0122708751626425, +0.0225041348621594,0.0225041348621594,0.022530213134333,0.0225202119422837,0.0224844140055489,0.0224351497653265,0.0223846865558655,0.0223438714625192,0.0223210951380665,0.0223210951380665, +0.0473957609914146,0.0473957609914146,0.0474304643475466,0.0474006481876567,0.0473249096211742,0.0472256614750414,0.0471254081915718,0.047044506247574,0.046999276469083,0.046999276469083, +0.0960841279961707,0.0960841279961707,0.0961211450292741,0.0960470928962642,0.0958944626840711,0.0957024729996912,0.0955106726914356,0.0953557776277821,0.0952687262954248,0.0952687262954248, +0.180759950919755,0.180759950919755,0.180777556470999,0.180618381814574,0.180335597342474,0.179992607825311,0.179652775389723,0.17937676553481,0.179219757260875,0.179219757260875, +0.313373527877863,0.313373527877863,0.313331938473293,0.313029448602778,0.312550376944317,0.311989006523559,0.311435463036767,0.31097922012874,0.310712496950088,0.310712496950088, +0.50005361840823,0.50005361840823,0.499907196401998,0.499388539785352,0.498644811235681,0.497804875394109,0.496976885170477,0.496272592998521,0.495834197073975,0.495834197073975, +0.735349788711706,0.735349788711706,0.735097941997746,0.734261507243749,0.733195883843713,0.732049690745854,0.730914305831491,0.729887885279753,0.729148959555212,0.729148959555212, + +00:16:03, +0.0124144349710102,0.0124144349710102,0.0124344853045876,0.0124315329437821,0.0124120715066669,0.0123838517804551,0.0123545156610022,0.0123307006878658,0.0123174126857684,0.0123174126857684, +0.0124144349710102,0.0124144349710102,0.0124344853045876,0.0124315329437821,0.0124120715066669,0.0123838517804551,0.0123545156610022,0.0123307006878658,0.0123174126857684,0.0123174126857684, +0.0225722228776544,0.0225722228776544,0.0225983400210954,0.0225883275405195,0.0225524778798919,0.0225031370289592,0.022452591863613,0.0224117090824285,0.0223888947641721,0.0223888947641721, +0.047505486469828,0.047505486469828,0.0475402089032325,0.0475103660247912,0.0474345605665546,0.0473352191153122,0.0472348671373776,0.0471538839932197,0.0471086087972703,0.0471086087972703, +0.0962498553099073,0.0962498553099073,0.0962868533796384,0.0962127626670032,0.0960600680081089,0.0958679923999795,0.095676101202936,0.0955211316467067,0.0954340391165293,0.0954340391165293, +0.180980357780581,0.180980357780581,0.180997900050422,0.18083870238304,0.180555905881216,0.180212898568971,0.179873043739828,0.179597016290099,0.179440000253505,0.179440000253505, +0.313621569411993,0.313621569411993,0.313579902615614,0.313277465785041,0.312798514369736,0.31223728310462,0.31168387332438,0.311227744051703,0.310961092029442,0.310961092029442, +0.500275851153918,0.500275851153918,0.500129410584508,0.499610964150186,0.498867566647584,0.498028002988279,0.497200377528001,0.496496400977615,0.496058207848177,0.496058207848177, +0.735482856568608,0.735482856568608,0.735231122016886,0.734395121815386,0.73333006217663,0.732184473929403,0.73104968679468,0.730023809439473,0.72928527714753,0.72928527714753, + +00:16:04, +0.0124612842172044,0.0124612842172044,0.012481379826369,0.0124784250307413,0.0124589238521447,0.0124306419614053,0.012401238556096,0.0123773678134755,0.0123640484489938,0.0123640484489938, +0.0124612842172044,0.0124612842172044,0.012481379826369,0.0124784250307413,0.0124589238521447,0.0124306419614053,0.012401238556096,0.0123773678134755,0.0123640484489938,0.0123640484489938, +0.0226404041941463,0.0226404041941463,0.022666560166817,0.0226565364120764,0.0226206350847506,0.0225712177033335,0.0225205906636515,0.0224796402590417,0.0224567879820485,0.0224567879820485, +0.0476152776849563,0.0476152776849563,0.0476500191158662,0.047620149560981,0.0475442773557775,0.0474448428079325,0.0473443923550795,0.04726332818926,0.0472180076747477,0.0472180076747477, +0.0964155759189613,0.0964155759189613,0.0964525549631601,0.0963784257681092,0.09622566691285,0.0960335057372712,0.0958415240302834,0.0956864802916425,0.095599346735703,0.095599346735703, +0.181200639566117,0.181200639566117,0.181218118594989,0.181058898059836,0.180776089818135,0.180433065124681,0.180093188348674,0.179817143670079,0.179660120071511,0.179660120071511, +0.313869364896393,0.313869364896393,0.31382762086752,0.313525237158434,0.313046406123701,0.312485314250271,0.311932038452686,0.311476023036875,0.311209442281288,0.311209442281288, +0.500497793207611,0.500497793207611,0.500351334204716,0.499833097764517,0.499090031040143,0.498250839334591,0.497423578451317,0.496719917344212,0.49628192686498,0.49628192686498, +0.735615724194949,0.735615724194949,0.735364101656131,0.734528535370177,0.733464038704404,0.732319054512784,0.731184864394447,0.730159529525755,0.729421390124235,0.729421390124235, + +00:16:05, +0.0125082316360311,0.0125082316360311,0.0125283725148305,0.0125254152915723,0.0125058743853163,0.0124775303439038,0.0124480596625453,0.0124241331555216,0.0124107824304808,0.0124107824304808, +0.0125082316360311,0.0125082316360311,0.0125283725148305,0.0125254152915723,0.0125058743853163,0.0124775303439038,0.0124480596625453,0.0124241331555216,0.0124107824304808,0.0124107824304808, +0.0227086787068425,0.0227086787068425,0.0227348734666705,0.0227248384521592,0.0226888855154406,0.0226393916839473,0.0225886828516958,0.0225476648882677,0.0225247746877181,0.0225247746877181, +0.0477251344302752,0.0477251344302752,0.0477598947791564,0.047729998589973,0.0476540597824913,0.0475545323463947,0.0474539836380246,0.0473728386289427,0.0473274728947151,0.0473274728947151, +0.0965812896129939,0.0965812896129939,0.0966182495699416,0.0965440819896151,0.0963912591878047,0.0961990128002735,0.0960069409613385,0.0958518233497759,0.0957646489397674,0.0957646489397674, +0.181420796266252,0.181420796266252,0.181438212094906,0.181278968834876,0.180996149142156,0.180653107479862,0.180313209202056,0.18003714765923,0.17988011669866,0.17988011669866, +0.314116914683653,0.314116914683653,0.31407509358145,0.313772763075055,0.313294052557343,0.312733100310057,0.312179958769453,0.311724057430589,0.311457548051199,0.311457548051199, +0.500719445189946,0.500719445189946,0.500572967882914,0.500054941248906,0.499312205033965,0.498473385053203,0.497646488559908,0.496943142717308,0.496505354743244,0.496505354743244, +0.735748392091957,0.735748392091957,0.735496881417123,0.734661748411351,0.733597813931995,0.732453433002455,0.731319839138575,0.730295046047694,0.729557298995548,0.729557298995548, + +00:16:06, +0.012555277204229,0.012555277204229,0.0125754633465266,0.012572503702832,0.0125529230829079,0.0125245169049639,0.0124949789576915,0.0124709966916269,0.0124576146080131,0.0124576146080131, +0.012555277204229,0.012555277204229,0.0125754633465266,0.012572503702832,0.0125529230829079,0.0125245169049639,0.0124949789576915,0.0124709966916269,0.0124576146080131,0.0124576146080131, +0.0227770463108619,0.0227770463108619,0.0228032798157406,0.0227932335558845,0.0227572290671883,0.0227076588662081,0.0226568683233693,0.0226157828659223,0.0225928547771097,0.0225928547771097, +0.0478350564997138,0.0478350564997138,0.0478698356872645,0.0478399129059664,0.0477639076407964,0.0476642875246425,0.0475636407800097,0.0474824151059637,0.0474370042508201,0.0474370042508201, +0.0967469961826048,0.0967469961826048,0.0967839369910221,0.0967097311224904,0.0965568446234207,0.0963645133786317,0.0961723517849008,0.0960171606092326,0.0959299455164827,0.0959299455164827, +0.181640827871621,0.181640827871621,0.181658180541114,0.181498914698812,0.181216083842948,0.180873025622681,0.180533106286522,0.180257028242788,0.180099990119474,0.180099990119474, +0.314364219125921,0.314364219125921,0.314322321109397,0.31402004388656,0.313541454021356,0.312980641633095,0.312427634622028,0.311971847578759,0.311705409684341,0.311705409684341, +0.500940807719781,0.500940807719781,0.500794312237609,0.500276495222134,0.499534089247878,0.498695640762496,0.497869108471485,0.497166077714138,0.496728492100067,0.496728492100067, +0.73588086075912,0.73588086075912,0.735629461799755,0.734794761440385,0.733731388362609,0.732587609903115,0.731454611533089,0.730430359512619,0.729693004269919,0.729693004269919, + +00:16:07, +0.0126024208981627,0.0126024208981627,0.012622652297638,0.0126196902407038,0.0126000699212712,0.0125716016212238,0.0125419964185004,0.0125179583990374,0.0125045449589973,0.0125045449589973, +0.0126024208981627,0.0126024208981627,0.012622652297638,0.0126196902407038,0.0126000699212712,0.0125716016212238,0.0125419964185004,0.0125179583990374,0.0125045449589973,0.0125045449589973, +0.0228455069012355,0.0228455069012355,0.022871779109025,0.0228617216182821,0.0228256656351326,0.0227760191454346,0.022725146974205,0.0226839940877299,0.0226610281460599,0.0226610281460599, +0.0479450436876538,0.0479450436876538,0.0479798416348047,0.0479498923036129,0.0478738207252451,0.04777410813707,0.047673363575281,0.0475920574144668,0.0475466015371574,0.0475466015371574, +0.0969126954193289,0.0969126954193289,0.0969496170183746,0.0968753729586377,0.0967224230110795,0.0965300072629258,0.0963377562907055,0.0961824918590741,0.0960952362545456,0.0960952362545456, +0.181860734373595,0.181860734373595,0.181878023925295,0.181718735643031,0.181435893910919,0.181092819542051,0.180752879589371,0.180476785406742,0.180319740319229,0.180319740319229, +0.314611278574904,0.314611278574904,0.314569303802914,0.314267079944164,0.313788610865997,0.313227938568072,0.312675066357336,0.312219393826887,0.311953027525464,0.311953027525464, +0.501161881414196,0.501161881414196,0.501015367885538,0.500497760301208,0.499755684298936,0.498917607079085,0.498091438801999,0.497388722950174,0.496951339550791,0.496951339550791, +0.736013130694184,0.736013130694184,0.735761843302186,0.734927574957014,0.7338647624977,0.732721585717709,0.731589182082256,0.730565470426103,0.729828506454042,0.729828506454042, + +00:16:08, +0.0126496626938234,0.0126496626938234,0.0126699393439729,0.0126669748809984,0.0126473148763854,0.0126187844689483,0.0125891120215627,0.0125650182546239,0.0125515734604641,0.0125515734604641, +0.0126496626938234,0.0126496626938234,0.0126699393439729,0.0126669748809984,0.0126473148763854,0.0126187844689483,0.0125891120215627,0.0125650182546239,0.0125515734604641,0.0125515734604641, +0.0229140603729082,0.0229140603729082,0.0229403712414355,0.0229303025342958,0.0228941951143255,0.0228444724168574,0.0227935186996466,0.0227522984493244,0.0227292946903143,0.0227292946903143, +0.0480550957889295,0.0480550957889295,0.0480899124168434,0.0480599365780163,0.047983798830841,0.0478839939785219,0.0477831518185337,0.0477017653490437,0.0476562645482689,0.0476562645482689, +0.0970783871156332,0.0970783871156332,0.0971152894449025,0.0970410072908902,0.0968879941430937,0.0966954942446675,0.0965031542694199,0.0963478168892944,0.0962605209435854,0.0962605209435854, +0.182080515764278,0.182080515764278,0.182097742239856,0.181938431659654,0.181655579337211,0.181312489227622,0.180972529098644,0.180696419137828,0.180539367283952,0.180539367283952, +0.314858093381865,0.314858093381865,0.314816042013109,0.314513871598636,0.314035523441084,0.313474991463241,0.31292225432188,0.312466696520059,0.312200401918907,0.312200401918907, +0.501382666888505,0.501382666888505,0.501236135441669,0.500718737101365,0.499976990802427,0.49913928461782,0.498313480165645,0.497611079039142,0.497173897709008,0.497173897709008, +0.736145202393172,0.736145202393172,0.735894026420842,0.735060189459234,0.733997936836984,0.73285536094744,0.731723551288598,0.73070037929197,0.729963806052857,0.729963806052857, + +00:16:09, +0.0126970025668304,0.0126970025668304,0.0127173244609685,0.0127143575991554,0.0126946579238577,0.0126660654240293,0.0126363257430962,0.012612176234883,0.0125987000890697,0.0125987000890697, +0.0126970025668304,0.0126970025668304,0.0127173244609685,0.0127143575991554,0.0126946579238577,0.0126660654240293,0.0126363257430962,0.012612176234883,0.0125987000890697,0.0125987000890697, +0.0229827066207394,0.0229827066207394,0.0230090561077995,0.0229989761987845,0.022962817399734,0.0229130185756208,0.0228619833950497,0.0228206958462503,0.0227976543055283,0.0227976543055283, +0.0481652125988273,0.0481652125988273,0.0482000478288993,0.0481700455247321,0.0480938417530391,0.0479939448442929,0.0478930053049115,0.0478115387047338,0.0477659930791433,0.0477659930791433, +0.0972440710649137,0.0972440710649137,0.0972809540644364,0.0972066339130079,0.0970535578127032,0.0968609741162974,0.0966685455126409,0.0965131354908176,0.0964257993741611,0.0964257993741611, +0.182300172036503,0.182300172036503,0.182317335477936,0.182158002741528,0.181875140113695,0.18153203466978,0.181192054803119,0.180915929423526,0.180758871000415,0.180758871000415, +0.315104663897624,0.315104663897624,0.315062536090645,0.314760419200305,0.314282192095997,0.313721800666429,0.313169198861738,0.312713756002941,0.312447533208595,0.312447533208595, +0.501603164756258,0.501603164756258,0.501456615519208,0.50093942623608,0.500198009371879,0.499360673991798,0.498535233174867,0.49783314659302,0.497396167186568,0.497396167186568, +0.736277076350383,0.736277076350383,0.736026011650429,0.735192605443315,0.734130911878441,0.732988936091773,0.731857719652901,0.730835086612302,0.730098903569561,0.730098903569561, + +00:16:10, +0.0127444404924328,0.0127444404924328,0.012764807623692,0.0127618383702449,0.0127420990389253,0.0127134444619879,0.0126836375589461,0.0126594323159385,0.0126459248210971,0.0126459248210971, +0.0127444404924328,0.0127444404924328,0.012764807623692,0.0127618383702449,0.0127420990389253,0.0127134444619879,0.0126836375589461,0.0126594323159385,0.0126459248210971,0.0126459248210971, +0.0230514455395047,0.0230514455395047,0.0230778336028605,0.0230677425065238,0.0230315323862404,0.0229816575167833,0.0229305409556832,0.0228891861739642,0.0228661068872686,0.0228661068872686, +0.0482753939130857,0.0482753939130857,0.0483102476669425,0.0482802189397676,0.048203949287745,0.0481039605301277,0.0480029238300069,0.0479213772770235,0.0478757869252157,0.0478757869252157, +0.0974097470614923,0.0974097470614923,0.0974466106717316,0.0973722526196749,0.097219113814073,0.0970264466711814,0.0968339298128913,0.096678447455494,0.0965910713377587,0.0965910713377587, +0.182519703183829,0.182519703183829,0.182536803633392,0.182377448882221,0.182094576232969,0.18175145585964,0.181411456692314,0.181135316252053,0.18097825145613,0.18097825145613, +0.315350990472555,0.315350990472555,0.31530878638574,0.315006723099053,0.314528617179674,0.313968366525025,0.313415900322565,0.312960572619784,0.312694421738039,0.312694421738039, +0.50182337562925,0.50182337562925,0.501676808729604,0.501159828317074,0.500418740619065,0.499581775812365,0.498756698440366,0.498054926222047,0.497618148593584,0.497618148593584, +0.736408753058404,0.736408753058404,0.736157799483935,0.735324823403808,0.734263688118327,0.733122311648446,0.731991687674216,0.730969592887447,0.730233799505612,0.730233799505612, + +00:16:11, +0.0127919764455104,0.0127919764455104,0.0128123888068424,0.0128094171689683,0.0127896381964565,0.0127609215579753,0.0127310474445875,0.0127067864735426,0.0126932476324574,0.0126932476324574, +0.0127919764455104,0.0127919764455104,0.0128123888068424,0.0128094171689683,0.0127896381964565,0.0127609215579753,0.0127310474445875,0.0127067864735426,0.0126932476324574,0.0126932476324574, +0.0231202770238964,0.0231202770238964,0.0231467036212799,0.0231366013522066,0.0231003399686441,0.0230503891353192,0.0229991912767299,0.0229577693278357,0.0229346523310145,0.0229346523310145, +0.0483856395278948,0.0483856395278948,0.048420511727395,0.0483904566195809,0.0483141212313152,0.0482140408322203,0.0481129071898605,0.0480312808618464,0.0479856458823678,0.0479856458823678, +0.0975754149006137,0.0975754149006137,0.097612259062464,0.0975378632064964,0.0973846619422894,0.0971919117036078,0.0969993069636173,0.0968437525760976,0.0967563366267876,0.0967563366267876, +0.182739109200532,0.182739109200532,0.182756146700801,0.18259677007602,0.182313887688351,0.181970752789044,0.181630734756473,0.181354579612362,0.181197508639345,0.181197508639345, +0.315597073456588,0.315597073456588,0.315554793248166,0.31525278364432,0.314774799040614,0.314214689385989,0.313662359049591,0.313207146714419,0.312941067850334,0.312941067850334, +0.502043300117527,0.502043300117527,0.501896715682561,0.501379943954315,0.500639185154009,0.499802590689126,0.498977876571107,0.498276418534729,0.497839842538436,0.497839842538436, +0.736540233008117,0.736540233008117,0.736289390412643,0.735456843833549,0.734396266051182,0.733255488113476,0.732125455849873,0.73110389861603,0.730368494360741,0.730368494360741, + +00:16:12, +0.0128396104005752,0.0128396104005752,0.0128600679847512,0.0128570939696601,0.0128372753709516,0.0128084966867741,0.0127785553751255,0.0127542386830775,0.0127406684986911,0.0127406684986911, +0.0128396104005752,0.0128396104005752,0.0128600679847512,0.0128570939696601,0.0128372753709516,0.0128084966867741,0.0127785553751255,0.0127542386830775,0.0127406684986911,0.0127406684986911, +0.0231892009685253,0.0231892009685253,0.0232156660576377,0.0232055526304447,0.0231692400416624,0.0231192133261195,0.0230679342532882,0.0230264452031483,0.0230032905321584,0.0230032905321584, +0.0484959492398959,0.0484959492398959,0.0485308398071296,0.0485007583610814,0.0484243573805564,0.0483241855472141,0.0482229551809608,0.0481412492555827,0.0480955697469269,0.0480955697469269, +0.0977410743784419,0.0977410743784419,0.097777899033228,0.097703465469995,0.097550201993357,0.0973573690087843,0.0971646767591849,0.0970090506463228,0.096921595034578,0.096921595034578, +0.182958390081606,0.182958390081606,0.182975364675451,0.182815966317925,0.182533074473875,0.182189925450553,0.181849888986568,0.181573719494135,0.181416642539041,0.181416642539041, +0.31584291319921,0.31584291319921,0.31580055702725,0.315498601185097,0.315020738026877,0.314460769595846,0.31390857538762,0.313453478630259,0.313187471888159,0.313187471888159, +0.502262938829389,0.502262938829389,0.502116336986035,0.50159977375603,0.500859343584995,0.500023119229947,0.499198768174322,0.498497624137846,0.498061249627781,0.498061249627781, +0.736671516688705,0.736671516688705,0.736420784926136,0.735588667223669,0.734528646169833,0.733388465981165,0.732259024675487,0.731238004294956,0.73050298863296,0.73050298863296, + +00:16:13, +0.0128873423317724,0.0128873423317724,0.0129078451313841,0.0129048687462886,0.012885010536545,0.0128561698228001,0.0128261613252976,0.0128017889195564,0.0127881873949695,0.0127881873949695, +0.0128873423317724,0.0128873423317724,0.0129078451313841,0.0129048687462886,0.012885010536545,0.0128561698228001,0.0128261613252976,0.0128017889195564,0.0127881873949695,0.0127881873949695, +0.0232582172679212,0.0232582172679212,0.0232847208064339,0.0232745962357696,0.0232382324999317,0.0231881299839932,0.023136769780373,0.0230952136951012,0.0230720213860078,0.0230720213860078, +0.0486063228461817,0.0486063228461817,0.0486412317034701,0.0486111239616287,0.0485346575327253,0.0484343944722015,0.0483330676002442,0.0482512822550592,0.0482055583156665,0.0482055583156665, +0.0979067252920579,0.0979067252920579,0.0979435303815326,0.0978690592076083,0.0977157337641959,0.0975228183828347,0.0973300389948772,0.0971743414607812,0.0970868463553773,0.0970868463553773, +0.183177545822755,0.183177545822755,0.183194457553342,0.183035037603647,0.182752136584289,0.182408973837447,0.182068919374293,0.18179273588778,0.181635653144925,0.181635653144925, +0.316088510049458,0.316088510049458,0.316046078071871,0.315744176069933,0.315266434486077,0.314706607500685,0.31415454968103,0.313699568710296,0.313433634193778,0.313433634193778, +0.5024822923714,0.5024822923714,0.502335673246251,0.501819318328707,0.50107921651857,0.500243362040962,0.499419373855518,0.498718543636457,0.498282370466556,0.498282370466556, +0.736802604587662,0.736802604587662,0.736551983512304,0.735720294063602,0.734660828965405,0.733521245744112,0.732392394644965,0.731371910419417,0.730637282818562,0.730637282818562, + +00:16:14, +0.0129351722128823,0.0129351722128823,0.0129557202203425,0.0129527414724581,0.0129328436670059,0.0129039409401027,0.0128738652694741,0.0128494371576252,0.0128358042960958,0.0128358042960958, +0.0129351722128823,0.0129351722128823,0.0129557202203425,0.0129527414724581,0.0129328436670059,0.0129039409401027,0.0128738652694741,0.0128494371576252,0.0128358042960958,0.0128358042960958, +0.0233273258165346,0.0233273258165346,0.0233538677620894,0.0233437320626339,0.0233073172380086,0.0232571390036681,0.0232056977529168,0.0231640746988099,0.0231408447877855,0.0231408447877855, +0.0487167601442951,0.0487167601442951,0.0487516872141909,0.0487215532190329,0.0486450214855282,0.0485446674047235,0.0484432442450939,0.0483613796575486,0.0483156113858052,0.0483156113858052, +0.0980723674394558,0.0980723674394558,0.0981091529057988,0.0980346442176853,0.0978812570526383,0.0976882596227959,0.0974953934668909,0.0973396248149989,0.0972520903843475,0.0972520903843475, +0.18339657642039,0.18339657642039,0.183413425331175,0.1832539839296,0.182971074015048,0.182627897943717,0.182287825912059,0.182011628784424,0.181854540447426,0.181854540447426, +0.316333864355924,0.316333864355924,0.31629135673046,0.315989508646927,0.315511888765391,0.314952203446163,0.314400282273772,0.313945417297101,0.313679555109035,0.313679555109035, +0.502701361348394,0.502701361348394,0.502554725067697,0.502038578277103,0.501298804559552,0.500463319726583,0.499639694218483,0.498939177633904,0.498503205657986,0.498503205657986, +0.736933497190798,0.736933497190798,0.736682986657355,0.735851724841092,0.73479281492733,0.733653827893215,0.732525566250512,0.731505617482907,0.73077137741214,0.73077137741214, + +00:16:15, +0.0129831000173213,0.0129831000173213,0.0130036932248643,0.0130007121214092,0.0129807747357399,0.0129518100123674,0.0129216671816602,0.0128971833715632,0.0128835191765067,0.0128835191765067, +0.0129831000173213,0.0129831000173213,0.0130036932248643,0.0130007121214092,0.0129807747357399,0.0129518100123674,0.0129216671816602,0.0128971833715632,0.0128835191765067,0.0128835191765067, +0.0233965265087374,0.0233965265087374,0.0234231068189472,0.023412960005412,0.0233764941503713,0.0233262402797923,0.0232747180657708,0.0232330281093074,0.0232097606326316,0.0232097606326316, +0.0488272609322298,0.0488272609322298,0.0488622061375163,0.0488320459315541,0.0487554490371208,0.0486550041427694,0.0485534849133407,0.0484715412607697,0.0484257287550068,0.0484257287550068, +0.0982380006195402,0.0982380006195402,0.0982747664053564,0.0982002202994835,0.0980467716574256,0.0978536925266152,0.0976607399723339,0.0975049005054129,0.097417326917562,0.097417326917562, +0.183615481871623,0.183615481871623,0.183632268006354,0.183472805292898,0.183189886762309,0.182846697764064,0.182506608592988,0.182230398175913,0.182073304437695,0.182073304437695, +0.316578976466753,0.316578976466753,0.316536393350999,0.316234599263732,0.315757101211548,0.3151975577775,0.314645773509369,0.314191024732824,0.313925234975358,0.313925234975358, +0.502920146363479,0.502920146363479,0.502773493053142,0.502257554204251,0.501518108311037,0.500682992889502,0.499859729865293,0.499159526731824,0.498723755803587,0.498723755803587, +0.737064194982249,0.737064194982249,0.736813794845816,0.735982960042201,0.734924604543352,0.733786212917685,0.732658539982642,0.73163912597722,0.730905272906584,0.730905272906584, + +00:16:16, +0.0130311257181429,0.0130311257181429,0.0130517641178255,0.0130487806660211,0.0130288037157901,0.0129997770129159,0.0129695670354966,0.012945027535285,0.0129313320102734,0.0129313320102734, +0.0130311257181429,0.0130311257181429,0.0130517641178255,0.0130487806660211,0.0130288037157901,0.0129997770129159,0.0129695670354966,0.012945027535285,0.0129313320102734,0.0129313320102734, +0.0234658192388242,0.0234658192388242,0.0234924378712736,0.0234822799584017,0.0234457631314201,0.0233954337069354,0.0233438306137061,0.0233020738215456,0.0232787688156042,0.0232787688156042, +0.0489378250084293,0.0489378250084293,0.0489727882721207,0.0489426018979017,0.0488659399861079,0.0487654044847765,0.0486637894032619,0.0485817668628868,0.0485359102213803,0.0485359102213803, +0.0984036246321229,0.0984036246321229,0.0984403706804408,0.0983657872531659,0.0982122773782052,0.0980191168931464,0.0978260783092215,0.0976701683293686,0.0975825557520023,0.0975825557520023, +0.183834262174265,0.183834262174265,0.183850985576976,0.183691501691353,0.183408574822929,0.18306537329389,0.182725267410913,0.182449044054804,0.182291945107594,0.182291945107594, +0.316823846729642,0.316823846729642,0.316781188281024,0.316479448267554,0.316002072170838,0.315442670839479,0.314891023730916,0.314436391359193,0.314170674133756,0.314170674133756, +0.503138648018042,0.503138648018042,0.502991977803634,0.502476246711465,0.5017371283744,0.500902382130696,0.500079481396315,0.499379591530149,0.498944021503176,0.498944021503176, +0.737194698444482,0.737194698444482,0.736944408560547,0.736114000151315,0.735056198299533,0.733918401305046,0.732791316330183,0.731772436392465,0.731038969793095,0.731038969793095, + +00:16:17, +0.0130792492880396,0.0130792492880396,0.0130999328717417,0.013096947078812,0.0130769305798385,0.0130478419147083,0.0130175648042615,0.0129929696223417,0.0129792427711033,0.0129792427711033, +0.0130792492880396,0.0130792492880396,0.0130999328717417,0.013096947078812,0.0130769305798385,0.0130478419147083,0.0130175648042615,0.0129929696223417,0.0129792427711033,0.0129792427711033, +0.0235352039010133,0.0235352039010133,0.0235618608132592,0.0235516918158249,0.0235151240754791,0.0234647191795889,0.023413035291415,0.0233712117303961,0.0233478692316804,0.0233478692316804, +0.0490484521717869,0.0490484521717869,0.0490834334171279,0.0490532209172346,0.0489764941315428,0.0488758682296298,0.048774157513581,0.0486920562625093,0.0486461555834788,0.0486461555834788, +0.09856923927792,0.09856923927792,0.0986059655321899,0.0985313448797979,0.0983777740155276,0.0981845325221476,0.0979914082764737,0.0978354280851165,0.0977477766855555,0.0977477766855555, +0.184052917326822,0.184052917326822,0.184069578041833,0.183910073123468,0.183627138194462,0.183283924529299,0.182943802360371,0.182667566414361,0.182510462449695,0.182510462449695, +0.317068475491838,0.317068475491838,0.31702574186762,0.31672405600515,0.316246801989105,0.315687542976449,0.315136033281079,0.314681517517515,0.314415872924817,0.314415872924817, +0.503356866911761,0.503356866911761,0.50321017991851,0.502694656398343,0.501955865349309,0.50112148804944,0.500298949410217,0.499599372627114,0.499164003354875,0.499164003354875, +0.737325008058305,0.737325008058305,0.737074828282746,0.736244845651153,0.735187596680264,0.73405039354115,0.732923895780285,0.73190554921707,0.731172468561192,0.731172468561192, + +00:16:18, +0.0131274706993438,0.0131274706993438,0.0131481994587689,0.0131452113319412,0.0131251553002077,0.013096004690344,0.0130656604608712,0.0130410096059219,0.0130272514323407,0.0130272514323407, +0.0131274706993438,0.0131274706993438,0.0131481994587689,0.0131452113319412,0.0131251553002077,0.013096004690344,0.0130656604608712,0.0130410096059219,0.0130272514323407,0.0130272514323407, +0.0236046803894481,0.0236046803894481,0.02363137553902,0.023621195471829,0.0235845768767972,0.0235340965921683,0.0234823319935117,0.0234404417306515,0.0234170617757578,0.0234170617757578, +0.0491591422216454,0.0491591422216454,0.0491941413721111,0.0491639027891606,0.0490871112729274,0.0489863951766616,0.048884589043468,0.0488024092586918,0.0487564646403001,0.0487564646403001, +0.0987348443585484,0.0987348443585484,0.0987715507626414,0.098696892981344,0.098543261370843,0.0983499392142775,0.0981567296739124,0.098000679571809,0.0979129895170108,0.0979129895170108, +0.184271447328489,0.184271447328489,0.1842880454004,0.184128519588434,0.18384557687515,0.183502351467088,0.183162213436596,0.182885965248554,0.182728856457277,0.182728856457277, +0.317312863100142,0.317312863100142,0.317270054457422,0.316968422822829,0.316491291011748,0.315932174532317,0.315380802502094,0.31492640354867,0.31466083168871,0.31466083168871, +0.503574803642603,0.503574803642603,0.503428099995398,0.502912783862781,0.502174319833723,0.501340311243305,0.50051813450397,0.499818870619264,0.499383701955117,0.499383701955117, +0.73745512430287,0.73745512430287,0.737205054491955,0.736375497022773,0.735318800168272,0.734182190110178,0.733056278818428,0.732038464937788,0.731305769698715,0.731305769698715, + +00:16:19, +0.0131757899240293,0.0131757899240293,0.0131965638507053,0.0131935733972098,0.0131734778488614,0.0131442653120633,0.0131138539778819,0.0130891474588532,0.013075357966969,0.013075357966969, +0.0131757899240293,0.0131757899240293,0.0131965638507053,0.0131935733972098,0.0131734778488614,0.0131442653120633,0.0131138539778819,0.0130891474588532,0.013075357966969,0.013075357966969, +0.0236742485981977,0.0236742485981977,0.0237009819425986,0.0236907908204879,0.0236541214295487,0.0236035658390132,0.0235517206145336,0.0235097637170265,0.0234863463426551,0.0234863463426551, +0.0492698949577964,0.0492698949577964,0.0493049119370919,0.0492746473137359,0.0491977912102113,0.0490969851256514,0.0489950837925384,0.0489128256509334,0.0488668371912856,0.0488668371912856, +0.0989004396765235,0.0989004396765235,0.0989371261747293,0.0988624313606651,0.0987087392464989,0.0985153367710929,0.0983220423022578,0.0981659225894977,0.0980781940460565,0.0980781940460565, +0.184489852179144,0.184489852179144,0.18450638765284,0.184346841086125,0.184063890863922,0.183720654104746,0.183380500635521,0.18310424055205,0.18294712712432,0.18294712712432, +0.317557009900903,0.317557009900903,0.317514126396616,0.317212549066449,0.316735539583722,0.316176565850558,0.315625331735768,0.315171049793118,0.314905550765184,0.314905550765184, +0.503792458806837,0.503792458806837,0.50364573863023,0.50313062970097,0.502392492423905,0.501558852308168,0.500737037272857,0.500038086101459,0.49960311789865,0.49960311789865, +0.737585047655687,0.737585047655687,0.737335087666069,0.736505954745581,0.735449809244625,0.734313791494652,0.733188465928429,0.732171184039707,0.731438873691837,0.731438873691837, + +00:16:20, +0.0132242069337124,0.0132242069337124,0.0132450260189924,0.0132420332460625,0.0132218981974065,0.0131926237517481,0.0131621453274912,0.0131373831536036,0.0131235623476109,0.0131235623476109, +0.0132242069337124,0.0132242069337124,0.0132450260189924,0.0132420332460625,0.0132218981974065,0.0131926237517481,0.0131621453274912,0.0131373831536036,0.0131235623476109,0.0131235623476109, +0.0237439084212585,0.0237439084212585,0.0237706799179652,0.0237604777558028,0.0237237576278352,0.0236731268143892,0.0236212010489427,0.0235791775841587,0.0235557228271138,0.0235557228271138, +0.0493807101804803,0.0493807101804803,0.0494157449125408,0.049385454291465,0.0493085337437921,0.049207637876825,0.0491056415608532,0.0490233052391773,0.0489772730363205,0.0489772730363205, +0.0990660250352555,0.0990660250352555,0.099102691572281,0.0990279598215152,0.0988742074457362,0.0986807249950451,0.0984873459631258,0.0983311569391303,0.0982433900732773,0.0982433900732773, +0.184708131879348,0.184708131879348,0.184724604799991,0.184565037617094,0.184282080160389,0.18393883244045,0.18359866395377,0.183322392320213,0.183165274445501,0.183165274445501, +0.317800916240021,0.317800916240021,0.317757958030935,0.317456435081421,0.316979548049536,0.316420717274204,0.315869621323476,0.315415456590891,0.315150030493565,0.315150030493565, +0.504009832999037,0.504009832999037,0.503863096417241,0.503348194507409,0.502610383714424,0.501777111838217,0.500955658310478,0.50025701966688,0.499822251778548,0.499822251778548, +0.737714778592624,0.737714778592624,0.737464928281342,0.736636219297337,0.735580624388741,0.73444519817544,0.733320457592448,0.732303707006259,0.731571781025069,0.731571781025069, + +00:16:21, +0.0132727216996537,0.0132727216996537,0.0132935859347163,0.0132905908495884,0.0132704163170939,0.0132410799809241,0.0132105344815385,0.0131857166622827,0.0131718645465309,0.0131718645465309, +0.0132727216996537,0.0132727216996537,0.0132935859347163,0.0132905908495884,0.0132704163170939,0.0132410799809241,0.0132105344815385,0.0131857166622827,0.0131718645465309,0.0131718645465309, +0.0238136597525549,0.0238136597525549,0.0238404693590185,0.0238302561717038,0.0237934853656858,0.0237427794124886,0.0236907731911261,0.0236486832266103,0.0236251911237989,0.0236251911237989, +0.0494915876903859,0.0494915876903859,0.049526640099376,0.0494963235233004,0.0494193386745143,0.049318353230855,0.0492162621489185,0.0491338478238111,0.0490877719757332,0.0490877719757332, +0.0992316002390465,0.0992316002390465,0.0992682467600145,0.0991934781685385,0.0990396657726868,0.0988461036894773,0.0986526404590248,0.0984963824225472,0.0984085774001509,0.0984085774001509, +0.184926286430339,0.184926286430339,0.184942696843366,0.184783109182569,0.184500144764842,0.184156886473057,0.183816703388652,0.183540420549096,0.183383298416189,0.183383298416189, +0.318044582462945,0.318044582462945,0.318001549705664,0.317700081212702,0.317223316753253,0.316664629145849,0.316113671606163,0.315659624281598,0.315394271212757,0.315394271212757, +0.504226926812088,0.504226926812088,0.504080173948978,0.503565478874906,0.50282799429816,0.501995090425959,0.501173998208755,0.500475671907033,0.500041104186211,0.500041104186211, +0.737844317587919,0.737844317587919,0.737594576812395,0.736766291154162,0.735711246078393,0.734576410631763,0.733452254290998,0.732436034319221,0.73170449218127,0.73170449218127, + +00:16:22, +0.0133213341927587,0.0133213341927587,0.0133422435686091,0.0133392461785228,0.0133190321788201,0.0132896339707613,0.0132590214115074,0.013234147956643,0.0132202645356355,0.0132202645356355, +0.0133213341927587,0.0133213341927587,0.0133422435686091,0.0133392461785228,0.0133190321788201,0.0132896339707613,0.0132590214115074,0.013234147956643,0.0132202645356355,0.0132202645356355, +0.0238835024859405,0.0238835024859405,0.0239103501595872,0.0239001259620505,0.023863304537059,0.0238125235274315,0.0237604369353975,0.0237182805388685,0.0236947511273,0.0236947511273, +0.0496025272886497,0.0496025272886497,0.0496375972989638,0.0496072548106417,0.0495302058036695,0.0494291309888596,0.0493269453576851,0.0492444532056655,0.0491983338102953,0.0491983338102953, +0.0993971650930877,0.0993971650930877,0.0994337915435349,0.0993589862072663,0.0992051140323704,0.0990114726586214,0.0988179255933527,0.098661598842479,0.0985737558290454,0.0985737558290454, +0.185144315834026,0.185144315834026,0.185160663785151,0.185001055784451,0.184718084678241,0.184374816202103,0.184034618938161,0.183758325235439,0.183601199032441,0.183601199032441, +0.318288008914675,0.318288008914675,0.318244901765633,0.317943487804801,0.317466846038491,0.316908301807648,0.316357482924341,0.315903553204422,0.315638273261244,0.315638273261244, +0.50444374083719,0.50444374083719,0.504296971816308,0.503782483394589,0.503045324766314,0.502212788662222,0.501392057557939,0.50069404341176,0.500259675711374,0.500259675711374, +0.737973665114187,0.737973665114187,0.737724033732225,0.736896170790547,0.735841674789721,0.734707429341203,0.733583856502949,0.732568166458729,0.731837007641649,0.731837007641649, + +00:16:23, +0.0133700443835797,0.0133700443835797,0.01339099889105,0.0133879992032482,0.0133677457531283,0.0133382856920757,0.0133076060885261,0.0132826770080813,0.0132687622864752,0.0132687622864752, +0.0133700443835797,0.0133700443835797,0.01339099889105,0.0133879992032482,0.0133677457531283,0.0133382856920757,0.0133076060885261,0.0132826770080813,0.0132687622864752,0.0132687622864752, +0.0239534365151995,0.0239534365151995,0.0239803222134308,0.0239700870206335,0.0239332150358431,0.023882359053267,0.0238301921759982,0.0237879694153473,0.0237644027321325,0.0237644027321325, +0.0497135287768561,0.0497135287768561,0.0497486163131176,0.0497182479553359,0.0496411349329959,0.0495399709524027,0.0494376909885482,0.049355121186015,0.0493089583412208,0.0493089583412208, +0.099562719403456,0.099562719403456,0.0995993257293318,0.0995244837441139,0.0993705520306912,0.0991768317075949,0.098983201170394,0.0988268060025432,0.0987389251632159,0.0987389251632159, +0.185362220092989,0.185362220092989,0.185378505628197,0.185218877425304,0.184935899902221,0.184592621627799,0.18425241060097,0.183976106376667,0.183818976291002,0.183818976291002, +0.318531195939757,0.318531195939757,0.318488014555222,0.318186655201775,0.317710136248418,0.317151735601317,0.316601055618091,0.316147243698118,0.315882036977084,0.315882036977084, +0.504660275663869,0.504660275663869,0.504513490608418,0.503999208655905,0.50326237570841,0.502430207136164,0.501609836946616,0.50091213476924,0.500477966942114,0.500477966942114, +0.738102821642424,0.738102821642424,0.737853299512207,0.737025858679359,0.735971910997234,0.734838254779713,0.733715264705539,0.732700103903281,0.731969327885777,0.731969327885777, + +00:16:24, +0.0134188522423168,0.0134188522423168,0.0134398518720669,0.0134368498937956,0.0134165570102097,0.0133870351153307,0.0133562884833695,0.0133313037876398,0.0133173577702457,0.0133173577702457, +0.0134188522423168,0.0134188522423168,0.0134398518720669,0.0134368498937956,0.0134165570102097,0.0133870351153307,0.0133562884833695,0.0133313037876398,0.0133173577702457,0.0133173577702457, +0.024023461734047,0.024023461734047,0.0240503854142407,0.0240401392411751,0.0240032167558579,0.0239522858839741,0.0239000388070981,0.0238577497503879,0.0238341458327387,0.0238341458327387, +0.0498245919570364,0.0498245919570364,0.0498596969440979,0.0498293027596767,0.0497521258646779,0.0496508729234934,0.049548498843347,0.0494658515665767,0.0494196453701661,0.0494196453701661, +0.0997282629771113,0.0997282629771113,0.0997648491247761,0.0996899705863778,0.0995359795744354,0.0993421806423982,0.0991484669953166,0.0989920037072413,0.0989040852068017,0.0989040852068017, +0.18557999921047,0.18557999921047,0.185596222376015,0.185436574108358,0.185153590439079,0.184810302751026,0.184470078376424,0.18419376397088,0.184036630189292,0.184036630189292, +0.318774143882286,0.318774143882286,0.318730888418358,0.318429583747229,0.317953187725756,0.317394930868129,0.316844390027058,0.316390696101015,0.316125562697912,0.316125562697912, +0.504876531879979,0.504876531879979,0.504729730912828,0.504215655246635,0.503479147712304,0.502647346435279,0.501827336961711,0.501129946565995,0.500695978464852,0.500695978464852, +0.738231787642017,0.738231787642017,0.737982374622108,0.737155355291846,0.736101955173822,0.734968887421616,0.733846479374378,0.732831847129746,0.732101453391593,0.732101453391593, + +00:16:25, +0.0134677577388192,0.0134677577388192,0.0134888024813374,0.0134857982198462,0.0134654659199052,0.013435882210638,0.0134050685664597,0.0133800282660076,0.013366050957789,0.013366050957789, +0.0134677577388192,0.0134677577388192,0.0134888024813374,0.0134857982198462,0.0134654659199052,0.013435882210638,0.0134050685664597,0.0133800282660076,0.013366050957789,0.013366050957789, +0.0240935780361309,0.0240935780361309,0.0241205396556411,0.0241102825173305,0.024073309590855,0.0240223039134629,0.0239699767227968,0.0239276214382601,0.0239039803234887,0.0239039803234887, +0.049935716631669,0.049935716631669,0.0499708389946116,0.049940419026404,0.0498631784013455,0.0497618367045857,0.0496593687243646,0.0495766441495104,0.0495303946992295,0.0495303946992295, +0.0998937956218934,0.0998937956218934,0.0999303615381169,0.0998554465422324,0.0997013964712678,0.0995075192699112,0.0993137228741688,0.099157191761956,0.0990692357648234,0.0990692357648234, +0.185797653190372,0.185797653190372,0.185813814032776,0.185654145837498,0.185371156291775,0.185027859573329,0.184687622264541,0.184411298016853,0.184254160725411,0.184254160725411, +0.319016853085905,0.319016853085905,0.318973523698513,0.318672273784316,0.318196000812781,0.317637887948918,0.317087486490457,0.316633910751016,0.316368850760939,0.316368850760939, +0.505092510071708,0.505092510071708,0.504945693315393,0.50443182375289,0.503695641364188,0.5028642071454,0.502044558188496,0.5013474793869,0.500913710864363,0.500913710864363, +0.73836056358075,0.73836056358075,0.738111259530088,0.737284661097651,0.736231807790758,0.735099327739623,0.733977500983455,0.732963396613369,0.732233384635411,0.732233384635411, + +00:16:26, +0.0135167608425867,0.0135167608425867,0.0135378506881904,0.013534844150732,0.013514472451706,0.0134848269477594,0.013453946307868,0.0134288504135219,0.0134148418195948,0.0134148418195948, +0.0135167608425867,0.0135167608425867,0.0135378506881904,0.013534844150732,0.013514472451706,0.0134848269477594,0.013453946307868,0.0134288504135219,0.0134148418195948,0.0134148418195948, +0.0241637853150325,0.0241637853150325,0.0241907848311905,0.0241805167426888,0.0241434934345197,0.0240924130355756,0.0240400058171249,0.0239975843731635,0.0239739060986818,0.0239739060986818, +0.0500469026036785,0.0500469026036785,0.0500820422678122,0.0500515965587036,0.0499742923460742,0.0498728620985781,0.0497703004343271,0.0496874987374181,0.0496412061309508,0.0496412061309508, +0.100059317146519,0.100059317146519,0.100095862778479,0.100020911420727,0.0998668025297288,0.0996728473978905,0.0994789686138766,0.0993223699729476,0.0992343766431798,0.0992343766431798, +0.186015182037254,0.186015182037254,0.186031280603307,0.185871592617267,0.185588597463925,0.185245292096918,0.184905042266006,0.184628708514033,0.184471567898129,0.184471567898129, +0.319259323893804,0.319259323893804,0.319215920738709,0.318914725655737,0.318438575851317,0.317880607184075,0.317330345347067,0.316876887985594,0.31661190150295,0.31661190150295, +0.505308210823586,0.505308210823586,0.505161378400307,0.504647714759126,0.503911857248595,0.503080789850707,0.502261501210595,0.501564733815184,0.501131164723777,0.501131164723777, +0.738489149924812,0.738489149924812,0.73823995470271,0.737413776564809,0.736361469317708,0.735229576204832,0.73410833000515,0.733094752827782,0.732365122091925,0.732365122091925, + +00:16:27, +0.0135658615227708,0.0135658615227708,0.0135869964616072,0.0135839876554378,0.0135635765747557,0.0135338692961076,0.0135029216773157,0.0134777702001694,0.0134637303258017,0.0134637303258017, +0.0135658615227708,0.0135658615227708,0.0135869964616072,0.0135839876554378,0.0135635765747557,0.0135338692961076,0.0135029216773157,0.0134777702001694,0.0134637303258017,0.0134637303258017, +0.0242340834642676,0.0242340834642676,0.0242611208343823,0.0242508418107744,0.0242137681804714,0.0241626131440876,0.0241101259840445,0.0240676384492283,0.0240439230525472,0.0240439230525472, +0.0501581496764357,0.0501581496764357,0.0501933065672986,0.0501628351602071,0.0500854675023847,0.0499839489088132,0.0498812937764037,0.0497984151333436,0.0497520794683112,0.0497520794683112, +0.100224827360578,0.100224827360578,0.100261352655858,0.100186365031784,0.100032197559232,0.0998381648349664,0.0996442040222405,0.0994875381473516,0.0993995076486447,0.0993995076486447, +0.186232585756327,0.186232585756327,0.186248622093082,0.186088914452855,0.185805913959798,0.185462600324656,0.185122338382164,0.18484599546253,0.184688851706886,0.184688851706886, +0.31950155664872,0.31950155664872,0.31945807988151,0.319156939703739,0.318680913182741,0.318123088913549,0.317572966935233,0.317119628141795,0.316854715260307,0.316854715260307, +0.505523634718489,0.505523634718489,0.505376786750114,0.504863328848142,0.504127795948408,0.503297095133734,0.502478166609989,0.501781710432437,0.501348340624589,0.501348340624589, +0.738617547138802,0.738617547138802,0.738368460604948,0.737542702159762,0.73649094022274,0.735359633286737,0.734238966910233,0.733225916245008,0.73249666623422,0.73249666623422, + +00:16:28, +0.0136150597481763,0.0136150597481763,0.0136362397702227,0.013633228702602,0.013612778257851,0.0135830092247479,0.0135519946441758,0.0135267875955875,0.0135127164461989,0.0135127164461989, +0.0136150597481763,0.0136150597481763,0.0136362397702227,0.013633228702602,0.013612778257851,0.0135830092247479,0.0135519946441758,0.0135267875955875,0.0135127164461989,0.0135127164461989, +0.0243044723772876,0.0243044723772876,0.024331547558646,0.0243212576150474,0.0242841337222649,0.0242329041327086,0.0241803371174508,0.0241377835605164,0.0241140310792453,0.0241140310792453, +0.050269457653757,0.050269457653757,0.0503046316971153,0.050274134634991,0.0501967036742421,0.0500950969390773,0.0499923485542062,0.0499093931407725,0.0498630145147327,0.0498630145147327, +0.100390326074532,0.100390326074532,0.100426830981121,0.100351807186193,0.100197581370059,0.10000347139064,0.0998094289079324,0.0996526960931758,0.0995646285888646,0.0995646285888646, +0.186449864353451,0.186449864353451,0.18646583850822,0.186306111350102,0.186023105784314,0.185679784260064,0.185339510615019,0.185063158863118,0.184906012151782,0.184906012151782, +0.319743551692937,0.319743551692937,0.319700001469029,0.319398916270117,0.31892301314798,0.318365333476849,0.317815351592865,0.317362131556233,0.317097292368944,0.317097292368944, +0.505738782337645,0.505738782337645,0.50559191894571,0.505078666601092,0.504343458044863,0.503513123575371,0.502694554967023,0.501998409818619,0.501565239146663,0.501565239146663, +0.738745755685738,0.738745755685738,0.738496777700191,0.737671438347365,0.736620220972326,0.735489499453236,0.734369412167878,0.733356887335469,0.732628017533775,0.732628017533775, + +00:16:29, +0.0136643554872621,0.0136643554872621,0.0136855805823271,0.0136825672605181,0.0136620774694431,0.0136322467023993,0.013601165177474,0.0135759025690655,0.0135618001502269,0.0135618001502269, +0.0136643554872621,0.0136643554872621,0.0136855805823271,0.0136825672605181,0.0136620774694431,0.0136322467023993,0.013601165177474,0.0135759025690655,0.0135618001502269,0.0135618001502269, +0.0243749519474806,0.0243749519474806,0.0244020648973482,0.0243917640489051,0.0243545899533913,0.0243032858950835,0.0242506391111729,0.0242080196010226,0.0241842300728686,0.0241842300728686, +0.050380826339904,0.050380826339904,0.0504160174617517,0.0503854947875766,0.0503080006660558,0.0502063059936,0.0501034645717884,0.050020432563631,0.0499740110740777,0.0499740110740777, +0.10055581309971,0.10055581309971,0.100592297566001,0.10051723769561,0.100362953773361,0.10016876687528,0.0999746430804928,0.0998178436192968,0.0997297392723549,0.0997297392723549, +0.186667017835128,0.186667017835128,0.186682929855487,0.186523183315486,0.186240172943038,0.18589684390731,0.18555655896723,0.185280198717227,0.185123049233581,0.185123049233581, +0.319985309368283,0.319985309368283,0.319941685842923,0.319640655696211,0.319164876087514,0.318607341213038,0.318057499657437,0.317604398565096,0.317339633164368,0.317339633164368, +0.505953654260642,0.505953654260642,0.50580677556635,0.505293728597487,0.504558844117557,0.503728875754874,0.502910666860411,0.50221483255206,0.501781860868238,0.501781860868238, +0.738873776027062,0.738873776027062,0.738624906450251,0.737799985590888,0.736749312031353,0.73561917517064,0.734499666245668,0.73348766656799,0.732759176460475,0.732759176460475, + +00:16:30, +0.0137137487081429,0.0137137487081429,0.0137350188658668,0.0137320032971363,0.0137114741776392,0.0136815816974359,0.0136504332458899,0.0136251150895462,0.0136109814069793,0.0136109814069793, +0.0137137487081429,0.0137137487081429,0.0137350188658668,0.0137320032971363,0.0137114741776392,0.0136815816974359,0.0136504332458899,0.0136251150895462,0.0136109814069793,0.0136109814069793, +0.0244455220681724,0.0244455220681724,0.024472672743794,0.024462361005683,0.0244251367672795,0.0243737583247933,0.0243210318589749,0.0242783464646756,0.0242545199274428,0.0242545199274428, +0.0504922555395832,0.0504922555395832,0.050527463666142,0.0504969154229297,0.0504193582826789,0.0503175758770538,0.050214641633646,0.0501315332062865,0.0500850689506489,0.0500850689506489, +0.100721288248306,0.100721288248306,0.100757752223092,0.100682656372557,0.10052831458115,0.10033405110012,0.100139846350328,0.0999829805354574,0.0998948395084977,0.0998948395084977, +0.186884046208502,0.186884046208502,0.186899896142281,0.186740130356126,0.186457115442173,0.186113779271208,0.185773483442105,0.185497115026944,0.1853399629537,0.1853399629537, +0.320226830016133,0.320226830016133,0.320183133344394,0.319882158322907,0.319406502341369,0.318849112460737,0.318299411465989,0.317846429504141,0.31758173798166,0.31758173798166, +0.50616825106543,0.50616825106543,0.506021357189654,0.505508515415203,0.50477395474445,0.503944352249866,0.503126502867242,0.502430979209472,0.501998206365934,0.501998206365934, +0.73900160862265,0.73900160862265,0.738752847315372,0.737928344352028,0.736878213863128,0.735748660903675,0.734629729609598,0.733618254409813,0.732890143482612,0.732890143482612, + +00:16:31, +0.0137632393785905,0.0137632393785905,0.0137845545884459,0.013781536780064,0.0137609683502038,0.013731014177888,0.013699798817759,0.013674425125627,0.0136602601852037,0.0136602601852037, +0.0137632393785905,0.0137632393785905,0.0137845545884459,0.013781536780064,0.0137609683502038,0.013731014177888,0.013699798817759,0.013674425125627,0.0136602601852037,0.0136602601852037, +0.0245161826326272,0.0245161826326272,0.0245433709912273,0.0245330483786556,0.0244957740572964,0.0244443213153568,0.0243915152545569,0.0243487640453388,0.0243249005369279,0.0243249005369279, +0.0506037450579455,0.0506037450579455,0.0506389701156643,0.0506083963464597,0.0505307763294082,0.0504289063945538,0.0503258795447161,0.0502426948735466,0.0501961879491886,0.0501961879491886, +0.100886751333377,0.100886751333377,0.10092319476585,0.100848063030412,0.100693663606302,0.100499323877254,0.100305038528707,0.100148106652264,0.100059929107538,0.100059929107538, +0.187100949481351,0.187100949481351,0.187116737376637,0.186956952479775,0.186673933288562,0.186330590357215,0.185990284043599,0.185713907795002,0.185556753314208,0.185556753314208, +0.320468113977408,0.320468113977408,0.320424344314188,0.320123424490636,0.319647892249122,0.319090647558123,0.318541087355122,0.318088224708692,0.317823607155474,0.317823607155474, +0.506382573328328,0.506382573328328,0.506235664391611,0.505723027630486,0.504988790501875,0.504159553636348,0.503342063562985,0.502646850365947,0.502214276214754,0.502214276214754, +0.739129253930815,0.739129253930815,0.738880600754234,0.738056515090915,0.737006926929387,0.735877957115491,0.734759602724089,0.733748651326598,0.733020919066895,0.733020919066895, + +00:16:32, +0.0138128274660348,0.0138128274660348,0.0138341877173274,0.013831167676568,0.0138105599545596,0.0137805441114437,0.0137492618610729,0.013723832645561,0.0137096364533033,0.0137096364533033, +0.0138128274660348,0.0138128274660348,0.0138341877173274,0.013831167676568,0.0138105599545596,0.0137805441114437,0.0137492618610729,0.013723832645561,0.0137096364533033,0.0137096364533033, +0.0245869335340494,0.0245869335340494,0.0246141595328324,0.0246038260610378,0.0245665017167489,0.0245149747602307,0.0244620891915561,0.0244192722368118,0.0243953717952193,0.0243953717952193, +0.0507152947005858,0.0507152947005858,0.0507505366161406,0.0507199373640198,0.050642254611983,0.050540297351657,0.0504371781103768,0.0503539173706586,0.0503073678748784,0.0503073678748784, +0.101052202168835,0.101052202168835,0.10108862500859,0.101013457483413,0.100859000662547,0.100664585019638,0.100470219427758,0.100313221781182,0.100225007880583,0.100225007880583, +0.187317727662087,0.187317727662087,0.18733345356722,0.187173649694816,0.18689062648968,0.186547277171423,0.18620696077631,0.185930577024781,0.185773420317821,0.185773420317821, +0.320709161592572,0.320709161592572,0.320665319092595,0.320364454539377,0.319889046149901,0.319331946842929,0.318782527661001,0.318329784513645,0.318065241020036,0.318065241020036, +0.506596621624034,0.506596621624034,0.506449697746587,0.505937265817954,0.505203351964543,0.504374480488702,0.503557349521496,0.502862446594973,0.502430070988096,0.502430070988096, +0.739256712408316,0.739256712408316,0.739008167223963,0.738184498266116,0.737135451690299,0.736007064267672,0.734889286051988,0.733878857782429,0.733151503678458,0.733151503678458, + +00:16:33, +0.0138625129375653,0.0138625129375653,0.0138839182194345,0.0138808959535752,0.0138602489577895,0.0138301714654499,0.0137988223434815,0.0137733376172589,0.0137591101793381,0.0137591101793381, +0.0138625129375653,0.0138625129375653,0.0138839182194345,0.0138808959535752,0.0138602489577895,0.0138301714654499,0.0137988223434815,0.0137733376172589,0.0137591101793381,0.0137591101793381, +0.0246577746655837,0.0246577746655837,0.024685038261735,0.0246746939459854,0.0246373196388841,0.0245857185528114,0.0245327535635477,0.0244898709328309,0.0244659335961485,0.0244659335961485, +0.0508269042735425,0.0508269042735425,0.0508621629738363,0.0508315382819059,0.0507537929365857,0.0506517485543624,0.0505485371364467,0.0504652005033099,0.0504186085333391,0.0504186085333391, +0.101217640569454,0.101217640569454,0.101254042766478,0.10117883954665,0.101024325564473,0.100829834341081,0.100635388860466,0.100478325734536,0.100390075639594,0.100390075639594, +0.187534380759749,0.187534380759749,0.18755004472332,0.187390222010258,0.187107195053632,0.186763839720561,0.186423513645471,0.186147122720305,0.185989963967902,0.185989963967902, +0.320949973201635,0.320949973201635,0.320906058019451,0.320605248808649,0.32012996438238,0.319573010652444,0.319023732719355,0.318571109253463,0.318306639909143,0.318306639909143, +0.506810396525624,0.506810396525624,0.50666345782733,0.506151230550611,0.505417639705544,0.504589133379694,0.503772361315021,0.503077768468427,0.502645591257754,0.502645591257754, +0.739383984510365,0.739383984510365,0.739135547180133,0.738312294334646,0.737263788604474,0.736135982820239,0.735018780054581,0.734008874239827,0.733281897780866,0.733281897780866, + +00:16:34, +0.0139122957599325,0.0139122957599325,0.0139337460613521,0.013930721577674,0.0139100353266371,0.0138798962069137,0.0138484802322941,0.0138229400082894,0.0138086813310262,0.0138086813310262, +0.0139122957599325,0.0139122957599325,0.0139337460613521,0.013930721577674,0.0139100353266371,0.0138798962069137,0.0138484802322941,0.0138229400082894,0.0138086813310262,0.0138086813310262, +0.0247287059203168,0.0247287059203168,0.0247560070710028,0.0247456519265965,0.0247082277168906,0.0246565525864355,0.0246035082640461,0.0245605600270706,0.0245365858334846,0.0245365858334846, +0.0509385735832975,0.0509385735832975,0.0509738489954594,0.050943198906857,0.0508653911098403,0.05076325980911,0.0506599564291845,0.0505765440776265,0.0505299097306297,0.0505299097306297, +0.101383066350856,0.101383066350856,0.101419447855535,0.101344209036067,0.101189638127518,0.100995071656247,0.10080054664067,0.100643418325503,0.100555132197391,0.100555132197391, +0.187750908783999,0.187750908783999,0.18776651085485,0.187606669435732,0.187323638989148,0.186980278011983,0.186639942656953,0.186363544886232,0.186206384268449,0.186206384268449, +0.32119054914415,0.32119054914415,0.321146561434133,0.320845807637519,0.320370647284783,0.319813839323511,0.319264702865473,0.318812199262177,0.318547804156161,0.318547804156161, +0.507023898604562,0.507023898604562,0.506876945204976,0.506364922399845,0.505631654296361,0.504803512880486,0.503987099514205,0.503292816556593,0.502860837593925,0.502860837593925, +0.739511070690632,0.739511070690632,0.739262741076778,0.738439903751971,0.737391938128972,0.736264713231656,0.735148085191594,0.734138701159751,0.733412101836118,0.733412101836118, + +00:16:35, +0.013962175899549,0.013962175899549,0.0139836712093277,0.0139806445151158,0.0139599190275085,0.0139297183025039,0.0138982354944802,0.0138726397858814,0.0138583498757448,0.0138583498757448, +0.013962175899549,0.013962175899549,0.0139836712093277,0.0139806445151158,0.0139599190275085,0.0139297183025039,0.0138982354944802,0.0138726397858814,0.0138583498757448,0.0138583498757448, +0.0247997271912782,0.0247997271912782,0.0248270658536469,0.0248166998959126,0.0247792258438997,0.0247274767543811,0.0246743531865057,0.0246313394131443,0.0246073284009349,0.0246073284009349, +0.0510503024367749,0.0510503024367749,0.0510855944881608,0.0510549190460539,0.050977048938813,0.0508748309227808,0.050771435795289,0.0506879479001736,0.0506412712732477,0.0506412712732477, +0.101548479329515,0.101548479329515,0.101584840092628,0.101509565768453,0.101354938167971,0.101160296780647,0.100965692583061,0.100808499368113,0.100720177367642,0.100720177367642, +0.187967311745121,0.187967311745121,0.18798285197234,0.18782299198149,0.187539958305579,0.187196592053673,0.186856247817256,0.186579843527856,0.1864226812241,0.1864226812241, +0.321430889759215,0.321430889759215,0.321386829675562,0.321086131364597,0.320611095194882,0.320054433192528,0.319505438434209,0.319053054873386,0.318788734094032,0.318788734094032, +0.507237128430705,0.507237128430705,0.507090160449053,0.506578341935438,0.505845396306867,0.505017619560635,0.504201564688096,0.503507591428158,0.503075810565215,0.503075810565215, +0.739637971401256,0.739637971401256,0.739389749366394,0.738567326972016,0.737519900719305,0.736393255958842,0.735277201921203,0.734268339001607,0.733542116304662,0.733542116304662, + +00:16:36, +0.0140121533224907,0.0140121533224907,0.0140336936292731,0.0140306647318162,0.0140099000264735,0.013979637718552,0.0139480880966715,0.0139224369169246,0.013908115780532,0.013908115780532, +0.0140121533224907,0.0140121533224907,0.0140336936292731,0.0140306647318162,0.0140099000264735,0.013979637718552,0.0139480880966715,0.0139224369169246,0.013908115780532,0.013908115780532, +0.0248708383714409,0.0248708383714409,0.0248982145026227,0.024887837746919,0.0248503139129862,0.0247984909498688,0.024745288224322,0.0247022089846053,0.0246781611921461,0.0246781611921461, +0.0511620906413414,0.0511620906413414,0.0511973992595329,0.0511666985071194,0.051088766231011,0.0509864617026962,0.0508829750418979,0.0507994117779544,0.0507526929681281,0.0507526929681281, +0.101713879322753,0.101713879322753,0.10175021929547,0.101674909561446,0.101520225502964,0.101325509530642,0.101130826503177,0.100973568677244,0.100885210964868,0.100885210964868, +0.188183589654015,0.188183589654015,0.188199068086936,0.188039189658396,0.187756153012894,0.187412781854235,0.187072429133505,0.186796018651102,0.186638854840122,0.186638854840122, +0.321670995385471,0.321670995385471,0.321626863082203,0.321326220328038,0.320851308449995,0.320294792595447,0.319745939759975,0.319293676420258,0.319029430055262,0.319029430055262, +0.507450086572306,0.507450086572306,0.507303104127488,0.506791489725569,0.506058866305336,0.505231453988103,0.50441575740415,0.503722093650223,0.503290510738641,0.503290510738641, +0.739764687092844,0.739764687092844,0.73951657249995,0.738694564447174,0.737647676829448,0.736521611457172,0.735406130700043,0.734397788223256,0.733671941645394,0.733671941645394, + +00:16:37, +0.0140622279944984,0.0140622279944984,0.0140838132867653,0.0140807821933559,0.0140599782892667,0.0140296544210534,0.0139980380051625,0.0139723313679713,0.0139579790120877,0.0139579790120877, +0.0140622279944984,0.0140622279944984,0.0140838132867653,0.0140807821933559,0.0140599782892667,0.0140296544210534,0.0139980380051625,0.0139723313679713,0.0139579790120877,0.0139579790120877, +0.0249420393537231,0.0249420393537231,0.0249694529108308,0.0249590653725464,0.0249214918171694,0.0248695950660625,0.0248163132708329,0.0247731686349482,0.0247490841007053,0.0247490841007053, +0.0512739380048056,0.0512739380048056,0.0513092631176101,0.0512785370981173,0.0512005427943822,0.0510981519566175,0.0509945739765882,0.0509109355184103,0.0508641746226434,0.0508641746226434, +0.101879266148734,0.101879266148734,0.101915585282618,0.101840240233523,0.101685499950476,0.101490709723437,0.1012959482174,0.101138626068619,0.101050232804431,0.101050232804431, +0.188399742522194,0.188399742522194,0.188415159210393,0.188255262477927,0.187972223121675,0.187628847422891,0.187288486613449,0.18701207026252,0.186854905122411,0.186854905122411, +0.321910866361102,0.321910866361102,0.321866661992062,0.321566074865538,0.321091287386991,0.320534917867774,0.319986207176746,0.319534064235524,0.319269892371931,0.319269892371931, +0.507662773596024,0.507662773596024,0.507515776806614,0.507004366336821,0.506272064858449,0.505445016729262,0.504629678228237,0.503936323788306,0.503504938679644,0.503504938679644, +0.739891218214486,0.739891218214486,0.739643210926892,0.73882161662831,0.737775266911844,0.736649780180488,0.735534871983207,0.734527049281018,0.733801578315667,0.733801578315667, + +00:16:38, +0.014112399880979,0.014112399880979,0.0141340301470482,0.0141309968649828,0.0141101537812892,0.0140797683756692,0.0140480851859125,0.0140223231052373,0.0140079395367751,0.0140079395367751, +0.014112399880979,0.014112399880979,0.0141340301470482,0.0141309968649828,0.0141101537812892,0.0140797683756692,0.0140480851859125,0.0140223231052373,0.0140079395367751,0.0140079395367751, +0.0250133300309882,0.0250133300309882,0.025040780971118,0.0250303826656718,0.0249927594494142,0.0249407889960706,0.024887428219319,0.0248442182576094,0.0248200970201411,0.0248200970201411, +0.0513858443354172,0.0513858443354172,0.0514211858708677,0.0513904346275527,0.0513123784373151,0.0512099014927455,0.0511062324073752,0.05102251892942,0.0509757160446031,0.0509757160446031, +0.102044639626465,0.102044639626465,0.102080937873468,0.102005557604003,0.101850761329322,0.101655897177076,0.101461057542956,0.101303671358805,0.101215242702539,0.101215242702539, +0.188615770361777,0.188615770361777,0.188631125355074,0.188471210452165,0.188188168643114,0.187844788769478,0.187504420265456,0.187227998369281,0.187070832077487,0.187070832077487, +0.322150503023836,0.322150503023836,0.322106226742688,0.321805695314337,0.321331032342283,0.32077480934457,0.320226241018059,0.319774218651484,0.319510121375688,0.319510121375688, +0.507875190066926,0.507875190066926,0.507728179051171,0.507216972334186,0.506484992531295,0.505658308348896,0.504843327724647,0.504150282406349,0.503719094952086,0.503719094952086, +0.740017565213755,0.740017565213755,0.739769665095149,0.738948483964767,0.737902671417412,0.736777762581102,0.735663426224262,0.73465612262968,0.733931026771299,0.733931026771299, + +00:16:39, +0.0141626689470065,0.0141626689470065,0.0141843441750334,0.0141813087116125,0.0141604264676093,0.0141299795477269,0.0140982296045462,0.0140724120946032,0.0140579973206219,0.0140579973206219, +0.0141626689470065,0.0141626689470065,0.0141843441750334,0.0141813087116125,0.0141604264676093,0.0141299795477269,0.0140982296045462,0.0140724120946032,0.0140579973206219,0.0140579973206219, +0.0250847102960469,0.0250847102960469,0.0251121985762784,0.0251017895191192,0.0250641167026319,0.0250120726329467,0.0249586329630055,0.0249153577459684,0.0248911998439244,0.0248911998439244, +0.0514978094418672,0.0514978094418672,0.0515331673282217,0.0515023909043707,0.0514242729686381,0.0513217101197204,0.0512179501427122,0.0511341618192995,0.0510873170422528,0.0510873170422528, +0.10220999957579,0.10220999957579,0.102246276888252,0.102170861493041,0.102016009459158,0.101821071710443,0.101626154297909,0.101468704365208,0.10138024047624,0.10138024047624, +0.188831673185491,0.188831673185491,0.188846966533943,0.188687033593796,0.188403989589009,0.188060605904443,0.187720230098508,0.187443802979177,0.187286635712491,0.187286635712491, +0.322389905710941,0.322389905710941,0.322345557671171,0.32204508201122,0.321570543651832,0.321014467360448,0.320466041617009,0.320014140000004,0.319750117397749,0.319750117397749, +0.508087336548495,0.508087336548495,0.507940311424317,0.507429308281073,0.50669764988738,0.505871329410212,0.505056706456096,0.504363970066722,0.503932980118262,0.503932980118262, +0.740143728536718,0.740143728536718,0.739895935451144,0.739075166904374,0.73802989079555,0.736905559109806,0.735791793875249,0.734785008722502,0.73406028746658,0.73406028746658, + +00:16:40, +0.0142130351573235,0.0142130351573235,0.0142347553353022,0.01423171769783,0.0142107963129643,0.0141802879022221,0.0141484712263556,0.0141225983016161,0.0141081523293214,0.0141081523293214, +0.0142130351573235,0.0142130351573235,0.0142347553353022,0.01423171769783,0.0142107963129643,0.0141802879022221,0.0141484712263556,0.0141225983016161,0.0141081523293214,0.0141081523293214, +0.0251561800416572,0.0251561800416572,0.0251837056190544,0.0251732858256608,0.0251355634696814,0.0250834458696911,0.0250299273950623,0.0249865869933487,0.0249623924654696,0.0249623924654696, +0.0516098331332867,0.0516098331332867,0.0516452072990283,0.0516144057379566,0.0515362261976189,0.0514335776466207,0.0513297269914902,0.0512458639968011,0.0511989774242747,0.0511989774242747, +0.102375345817391,0.102375345817391,0.102411602148037,0.102336151721624,0.102181244160473,0.101986233143258,0.10179123830116,0.101633724906072,0.10154522594342,0.10154522594342, +0.189047451006662,0.189047451006662,0.189062682760565,0.188902731916106,0.188619685971761,0.188276298838838,0.187935916122198,0.187659484100612,0.18750231603518,0.18750231603518, +0.32262907475923,0.32262907475923,0.322584655114145,0.322284235292513,0.321809821651145,0.321253892249574,0.320705609306251,0.320253828612515,0.3199898807689,0.3199898807689, +0.508299213602634,0.508299213602634,0.50815217448763,0.50764137473931,0.506910037488633,0.506084080474842,0.505269814983727,0.50457738733023,0.5041465947389,0.5041465947389, +0.740269708627941,0.740269708627941,0.740022022439794,0.739201665893456,0.738156925494146,0.737033170215876,0.735919975386691,0.734913708011227,0.734189360854276,0.734189360854276, + +00:16:41, +0.0142634984763428,0.0142634984763428,0.0142852635921058,0.0142822237878908,0.0142612632817615,0.0142306934038196,0.0141988100163006,0.0141728816914905,0.0141584045282343,0.0141584045282343, +0.0142634984763428,0.0142634984763428,0.0142852635921058,0.0142822237878908,0.0142612632817615,0.0142306934038196,0.0141988100163006,0.0141728816914905,0.0141584045282343,0.0141584045282343, +0.0252277391605262,0.0252277391605262,0.0252553019921373,0.0252448714780178,0.0252070996433699,0.0251549085992512,0.0251013114086056,0.0250579058930188,0.0250336747781353,0.0250336747781353, +0.0517219152192472,0.0517219152192472,0.0517573055930836,0.051726478938135,0.0516482379339644,0.0515455038829633,0.0514415627630373,0.0513576252711137,0.0513106969997862,0.0513106969997862, +0.102540678172781,0.102540678172781,0.102576913474721,0.102501428111572,0.102346465254586,0.102151381296072,0.101956309372443,0.101798732800473,0.101710198922796,0.101710198922796, +0.189263103839215,0.189263103839215,0.1892782740491,0.189118305432978,0.188835257804369,0.188491867584319,0.188151478346727,0.187875041742603,0.187717873053922,0.187717873053922, +0.322868010505057,0.322868010505057,0.322823519407783,0.322523155494083,0.322048866675275,0.321493084345665,0.320944944418002,0.320493284820013,0.320229411819495,0.320229411819495, +0.508510821789671,0.508510821789671,0.508363768801115,0.50785317226915,0.507122155895409,0.506296562102849,0.505482653867123,0.504790534756117,0.504359939373173,0.504359939373173, +0.740395505930494,0.740395505930494,0.740147926504522,0.739327981376832,0.738283775959582,0.737160596347079,0.736047971207603,0.735042220946082,0.734318247385637,0.734318247385637, + +00:16:42, +0.014314058868148,0.014314058868148,0.0143358689093679,0.0143328269457223,0.0143118273380797,0.0142811960168547,0.0142492459390109,0.0142232622291096,0.0142087538823893,0.0142087538823893, +0.014314058868148,0.014314058868148,0.0143358689093679,0.0143328269457223,0.0143118273380797,0.0142811960168547,0.0142492459390109,0.0142232622291096,0.0142087538823893,0.0142087538823893, +0.0252993875453102,0.0252993875453102,0.0253269875881688,0.0253165463688617,0.0252787251164543,0.0252264607145229,0.0251727848966986,0.0251293143381933,0.0251050466752257,0.0251050466752257, +0.0518340555097594,0.0518340555097594,0.0518694620206226,0.0518386103151696,0.0517603079878199,0.0516574886387028,0.0515534572671185,0.0514694454518617,0.0514224755783402,0.0514224755783402, +0.1027059964643,0.1027059964643,0.10274221069103,0.102666690485533,0.102511672563646,0.102316515990267,0.102121367332323,0.10196372786832,0.101875159233919,0.101875159233919, +0.189478631697666,0.189478631697666,0.189493740414298,0.189333754158883,0.189050705100426,0.188707312153142,0.188366916782898,0.188090475914773,0.187933306777698,0.187933306777698, +0.323106713284319,0.323106713284319,0.323062150887801,0.322761842951342,0.322287679058823,0.321732043981995,0.321184047284036,0.32073250895306,0.320468710879456,0.320468710879456, +0.508722161668367,0.508722161668367,0.508575094923209,0.50806470142928,0.507334005666498,0.506508774852731,0.505695223664307,0.505003412902074,0.504573014578698,0.504573014578698, +0.74052112088596,0.74052112088596,0.740273648087259,0.73945411379783,0.73841044263674,0.737287837949683,0.736175781785493,0.735170547975788,0.734446947510406,0.734446947510406, + +00:16:43, +0.0143647162964952,0.0143647162964952,0.0143865712506847,0.0143835271349252,0.0143624884456701,0.0143317957053345,0.0142997789587872,0.0142737398790266,0.014259200356485,0.014259200356485, +0.0143647162964952,0.0143647162964952,0.0143865712506847,0.0143835271349252,0.0143624884456701,0.0143317957053345,0.0142997789587872,0.0142737398790266,0.014259200356485,0.014259200356485, +0.0253711250886166,0.0253711250886166,0.0253987622997418,0.0253883103908148,0.0253504397816417,0.0252981021083514,0.0252443477523527,0.0252008122220336,0.0251765080499911,0.0251765080499911, +0.0519462538152734,0.0519462538152734,0.0519816763923195,0.0519507996797627,0.0518724361697689,0.0517695317242311,0.0516654103139348,0.051581324349105,0.0515343129699243,0.0515343129699243, +0.10287130051512,0.10287130051512,0.102907493620514,0.102831938666978,0.102676865910629,0.102481637048051,0.102286412002194,0.102128709930349,0.10204010669717,0.10204010669717, +0.189694034597123,0.189694034597123,0.189709081871499,0.189549078108883,0.189266027874116,0.188922632558157,0.188582231442116,0.188305786627347,0.188148617216089,0.188148617216089, +0.323345183432452,0.323345183432452,0.323300549889455,0.323000297999242,0.322526259135933,0.321970771491385,0.321422918235688,0.320971501341782,0.320707778278272,0.320707778278272, +0.508933233795919,0.508933233795919,0.508786153410787,0.508275962776822,0.507545587359125,0.506720719281432,0.505907524931749,0.505216022324239,0.504785820911543,0.504785820911543, +0.740646553934441,0.740646553934441,0.740399187628456,0.739580063598288,0.738536925969011,0.737414895468456,0.736303407566373,0.735298689547566,0.734575461676819,0.734575461676819, + +00:16:44, +0.0144154707248145,0.0144154707248145,0.0144373705793273,0.0144343243187743,0.014413246567958,0.0143824924329392,0.0143504090396019,0.0143243146054663,0.0143097439148906,0.0143097439148906, +0.0144154707248145,0.0144154707248145,0.0144373705793273,0.0144343243187743,0.014413246567958,0.0143824924329392,0.0143504090396019,0.0143243146054663,0.0143097439148906,0.0143097439148906, +0.0254429516830041,0.0254429516830041,0.0254706260194009,0.0254601634364516,0.0254222435315906,0.0253698326735321,0.0253159998685281,0.0252723994376491,0.0252480587956294,0.0252480587956294, +0.0520585099466778,0.0520585099466778,0.0520939485192866,0.0520630468430545,0.0519846222908324,0.0518816329503768,0.0517774217141233,0.0516932617733384,0.0516462089849603,0.0516462089849603, +0.103036590149233,0.103036590149233,0.103072762087548,0.102997172480201,0.102842045119332,0.102646744292455,0.102451443204271,0.102293678808124,0.102205041133752,0.102205041133752, +0.189909312553279,0.189909312553279,0.189924298436625,0.189764277298624,0.189481226140211,0.189137828812805,0.18879742233638,0.188520973891152,0.18836380437928,0.18836380437928, +0.323583421284435,0.323583421284435,0.323538716747542,0.323238520972277,0.322764607240296,0.322209267206211,0.32166155760385,0.321210262315869,0.320946614344999,0.320946614344999, +0.509144038727966,0.509144038727966,0.508996944819167,0.50848695686734,0.507756901528961,0.50693239594434,0.506119558224371,0.505428363577208,0.504998358926236,0.504998358926236, +0.740771805514562,0.740771805514562,0.740524545567084,0.739705831218564,0.7386632263983,0.737541769346682,0.736430848994764,0.735426646107142,0.734703790331619,0.734703790331619, + +00:16:45, +0.0144663221162108,0.0144663221162108,0.014488266858242,0.0144852184602204,0.0144641016680439,0.0144332861630231,0.0144011361451013,0.0143749863723259,0.0143603845216478,0.0143603845216478, +0.0144663221162108,0.0144663221162108,0.014488266858242,0.0144852184602204,0.0144641016680439,0.0144332861630231,0.0144011361451013,0.0143749863723259,0.0143603845216478,0.0143603845216478, +0.0255148672209842,0.0255148672209842,0.0255425786396442,0.0255321053982995,0.0254941362589119,0.0254416523028116,0.025387741138135,0.0253440758780981,0.0253196988052864,0.0253196988052864, +0.0521708237152991,0.0521708237152991,0.052206278213074,0.0521753516166228,0.0520968661624684,0.051993792128405,0.0518894912787563,0.0518052575354908,0.0517581634343041,0.0517581634343041, +0.103201865191453,0.103201865191453,0.103238015917324,0.103162391750317,0.103007210014372,0.102811837547334,0.102616460761596,0.102458634324028,0.102369962365694,0.102369962365694, +0.19012446558241,0.19012446558241,0.19013939012618,0.189979351744334,0.189696299914066,0.189352900931116,0.189012489478282,0.188736037717608,0.188578868278055,0.188578868278055, +0.323821427174789,0.323821427174789,0.3237766517964,0.323476512204482,0.323002723705148,0.322447531458399,0.321899965718973,0.321448792204574,0.321185219408261,0.321185219408261, +0.509354577018596,0.509354577018596,0.509207469702114,0.508697684254849,0.507967948730127,0.507143805395297,0.506331324095551,0.505640437214039,0.505210629175767,0.505210629175767, +0.740896876063479,0.740896876063479,0.740649722340646,0.739831417097541,0.73878934436503,0.737668460026157,0.7365581065137,0.735554418098757,0.734831933920057,0.734831933920057, + +00:16:46, +0.0145172704334651,0.0145172704334651,0.0145392600500524,0.0145362095218911,0.0145150537087048,0.0144841768586166,0.0144519602386058,0.0144257551431764,0.0144111221404716,0.0144111221404716, +0.0145172704334651,0.0145172704334651,0.0145392600500524,0.0145362095218911,0.0145150537087048,0.0144841768586166,0.0144519602386058,0.0144257551431764,0.0144111221404716,0.0144111221404716, +0.0255868715950217,0.0255868715950217,0.0256146200529233,0.0256041361688397,0.0255661178561697,0.0255135608888889,0.0254595714540348,0.0254158414363887,0.0253914279720576,0.0253914279720576, +0.0522831949329017,0.0522831949329017,0.0523186652856693,0.0522877138124827,0.0522091675965719,0.0521060090700166,0.0520016188193408,0.0519173114469255,0.0518701761292448,0.0518701761292448, +0.103367125467413,0.103367125467413,0.103403254935852,0.103327596303255,0.103172360421183,0.102976916637357,0.102781464498025,0.102623576301267,0.102534870215843,0.102534870215843, +0.19033949370137,0.19033949370137,0.190354356957244,0.190194301462815,0.189911249211616,0.189567848927703,0.189227432881003,0.188950978118729,0.188793808923788,0.188793808923788, +0.324059201437575,0.324059201437575,0.324014355369906,0.323714272029435,0.323240608863269,0.322685564579426,0.322138142911067,0.321687091336717,0.321423593796247,0.321423593796247, +0.509564849220349,0.509564849220349,0.509417728611849,0.508908145491814,0.508178729515196,0.507354948186605,0.506542823097134,0.505852243786254,0.505422632211593,0.505422632211593, +0.741021766016887,0.741021766016887,0.74077471838518,0.739956821672631,0.738915280308155,0.737794967947206,0.736685180564739,0.735682005965169,0.734959892885902,0.734959892885902, + +00:16:47, +0.0145683156390364,0.0145683156390364,0.01459035011706,0.0145872974660923,0.0145661026523953,0.0145351644824265,0.0145028812831123,0.0144766208812644,0.0144619567347516,0.0144619567347516, +0.0145683156390364,0.0145683156390364,0.01459035011706,0.0145872974660923,0.0145661026523953,0.0145351644824265,0.0145028812831123,0.0144766208812644,0.0144619567347516,0.0144619567347516, +0.0256589646975359,0.0256589646975359,0.0256867501516452,0.0256762556405084,0.0256381882158823,0.0255855583244159,0.0255314907090404,0.02548769600548,0.0254632461889884,0.0254632461889884, +0.0523956234116872,0.0523956234116872,0.0524311095494969,0.0524001332430855,0.0523215264054736,0.0522182835873478,0.0521138041478185,0.0520294233194391,0.0519822468815045,0.0519822468815045, +0.103532370803561,0.103532370803561,0.103568478969956,0.103492785965759,0.103337496166016,0.103141981388013,0.102946454238236,0.102788504563862,0.102699764507866,0.102699764507866, +0.190554396927587,0.190554396927587,0.19056919894747,0.190409126471446,0.190126074049373,0.189782672817761,0.189442252558308,0.189165795107118,0.189008626328448,0.189008626328448, +0.324296744406393,0.324296744406393,0.324251827801478,0.323951800780253,0.323478263046987,0.322923366900322,0.322376089509698,0.321925160040677,0.321661737836714,0.321661737836714, +0.509774855884224,0.509774855884224,0.509627722099052,0.509118341129161,0.508389244435203,0.507565824869027,0.50675405577943,0.506063783843849,0.505634368583645,0.505634368583645, +0.741146475809023,0.741146475809023,0.740899534135266,0.740082045379785,0.739041034665158,0.737921293548682,0.736812071587965,0.735809410147661,0.735087667671443,0.735087667671443, + +00:16:48, +0.014619457695062,0.014619457695062,0.014641537021246,0.0146384822548094,0.0146172484612492,0.0145862489968382,0.0145538992412945,0.0145275835495123,0.0145128882675536,0.0145128882675536, +0.014619457695062,0.014619457695062,0.014641537021246,0.0146384822548094,0.0146172484612492,0.0145862489968382,0.0145538992412945,0.0145275835495123,0.0145128882675536,0.0145128882675536, +0.0257311464209016,0.0257311464209016,0.0257589688281724,0.0257484637056976,0.0257103472305233,0.0256576445019987,0.0256034987959179,0.0255596394782826,0.0255351533490754,0.0255351533490754, +0.0525081089642937,0.0525081089642937,0.0525436108174174,0.052512609721319,0.0524339424019402,0.0523306154929698,0.0522260470765651,0.0521415929652611,0.052094375503238,0.052094375503238, +0.103697601027156,0.103697601027156,0.10373368784727,0.103657960565383,0.103502617075929,0.103307031625599,0.103111429807715,0.102953418936649,0.102864645066241,0.102864645066241, +0.190769175279063,0.190769175279063,0.190783916115081,0.190623826788172,0.190340774444419,0.189997372617059,0.189656948524543,0.18938048869596,0.189223320504585,0.189223320504585, +0.324534056414387,0.324534056414387,0.324489069424076,0.324189098789595,0.32371568658817,0.323160938751666,0.322613805843992,0.322162998644399,0.321899651856982,0.321899651856982, +0.509984597559686,0.509984597559686,0.509837450712865,0.509328271716278,0.508599494039648,0.507776435991797,0.506965022691223,0.506275057935296,0.505845838840332,0.505845838840332, +0.741271005872676,0.741271005872676,0.741024170024033,0.740207088653497,0.739166607872064,0.738047437267972,0.736938780021998,0.735936631086051,0.735215258717501,0.735215258717501, + +00:16:49, +0.0146706965633598,0.0146706965633598,0.0146928207242722,0.0146897638497086,0.0146684910970804,0.0146374303639162,0.0146050140755049,0.0145786431105208,0.0145639167016206,0.0145639167016206, +0.0146706965633598,0.0146706965633598,0.0146928207242722,0.0146897638497086,0.0146684910970804,0.0146374303639162,0.0146050140755049,0.0145786431105208,0.0145639167016206,0.0145639167016206, +0.0258034166574498,0.0258034166574498,0.0258312759748242,0.0258207602567558,0.0257825947925221,0.0257298193141984,0.0256755956073868,0.02563167174766,0.0256071493452675,0.0256071493452675, +0.0526206514037955,0.0526206514037955,0.0526561689027276,0.0526251430605065,0.0525464153991734,0.0524430045998883,0.0523383474183893,0.0522538201970538,0.0522065618070319,0.0522065618070319, +0.103862815966268,0.103862815966268,0.103898881396237,0.10382311993049,0.103667722978792,0.103472067177226,0.103276391032762,0.103118319245275,0.10302951171626,0.10302951171626, +0.190983828774366,0.190983828774366,0.190998508478867,0.190838402431509,0.190555350414408,0.190211948341941,0.189871520794632,0.189595058899023,0.189437891465337,0.189437891465337, +0.324771137794238,0.324771137794238,0.324726080570195,0.324426166389661,0.323952879818233,0.323398280463587,0.32285129224263,0.322400607475389,0.32213733618394,0.32213733618394, +0.510194074794665,0.510194074794665,0.510046915000904,0.509537937801025,0.508809478876501,0.507986782102623,0.507175724379776,0.506486066607549,0.506057043528547,0.506057043528547, +0.741395356639188,0.741395356639188,0.741148626483163,0.740331951926813,0.739292000363442,0.738173399541009,0.737065306303998,0.73606366921869,0.73534266646343,0.73534266646343, + +00:16:50, +0.0147220322054288,0.0147220322054288,0.0147442011874826,0.0147411422121382,0.0147198305213845,0.0146887085454059,0.0146562257477756,0.0146297995265692,0.0146150419993742,0.0146150419993742, +0.0147220322054288,0.0147220322054288,0.0147442011874826,0.0147411422121382,0.0147198305213845,0.0146887085454059,0.0146562257477756,0.0146297995265692,0.0146150419993742,0.0146150419993742, +0.025875775299469,0.025875775299469,0.0259036714838779,0.0258931451859893,0.0258549307942653,0.025802082653532,0.0257477810361217,0.0257037927064294,0.0256792340704663,0.0256792340704663, +0.0527332505437027,0.0527332505437027,0.0527687836191594,0.0527377330744061,0.0526589452108097,0.0525554507215427,0.0524507049865333,0.0523661048279116,0.0523188056059044,0.0523188056059044, +0.104028015449773,0.104028015449773,0.104064059446104,0.103988263890247,0.10383281370328,0.103637087870808,0.103441337740484,0.103283205316195,0.103194364284023,0.103194364284023, +0.191198357432629,0.191198357432629,0.191212976058177,0.191052853420531,0.190769801977556,0.190426400009322,0.190085969384074,0.189809505730652,0.189652339224419,0.189652339224419, +0.325007988878169,0.325007988878169,0.324962861571874,0.324663003912189,0.324189843068136,0.323635392365766,0.323088549033851,0.322637986860718,0.322374791144039,0.322374791144039, +0.51040328813557,0.51040328813557,0.510256115509257,0.509747339929734,0.509019199492208,0.508196863747691,0.507386161390838,0.506696810406051,0.506267983193673,0.506267983193673, +0.741519528538467,0.741519528538467,0.741272903942901,0.740456635631333,0.739417212572414,0.738299180802275,0.73719165086967,0.736190524982477,0.735469891347128,0.735469891347128, + +00:16:51, +0.0147734645824506,0.0147734645824506,0.0147956783719044,0.0147926173031298,0.01477126669534,0.0147400835027346,0.0147075342198197,0.0146810527596172,0.0146662641229156,0.0146662641229156, +0.0147734645824506,0.0147734645824506,0.0147956783719044,0.0147926173031298,0.01477126669534,0.0147400835027346,0.0147075342198197,0.0146810527596172,0.0146662641229156,0.0146662641229156, +0.0259482222392056,0.0259482222392056,0.0259761552475693,0.025965618385663,0.0259273551280976,0.0258744344124735,0.0258200549747526,0.0257760022473624,0.0257514074175278,0.0257514074175278, +0.0528459061979603,0.0528459061979603,0.0528814547808795,0.0528503795772109,0.0527715316509195,0.052667953671806,0.0525631195946714,0.0524784466713602,0.0524311067133049,0.0524311067133049, +0.104193199307353,0.104193199307353,0.104229221826922,0.104153392274623,0.103997889078869,0.103802093535066,0.103606269758792,0.103448076976672,0.103359202596437,0.103359202596437, +0.191412761273543,0.191412761273543,0.191427318872921,0.191267179774875,0.190984129152645,0.190640727636679,0.190300294308937,0.190023829205765,0.18986666379612,0.18986666379612, +0.325244609997943,0.325244609997943,0.32519941276069,0.32489961168846,0.32442657666838,0.323872274787433,0.323325576545452,0.322875137127016,0.322612017063297,0.322612017063297, +0.510612238127287,0.510612238127287,0.510465052782495,0.509956478647218,0.509228656431697,0.508406681471674,0.507596334268646,0.506907289874736,0.506478658379585,0.506478658379585, +0.741643521998986,0.741643521998986,0.741397002832059,0.740581140197221,0.73954224493066,0.738424781484805,0.737317814153273,0.736317198812861,0.735596933805038,0.735596933805038, + +00:16:52, +0.0148249936552908,0.0148249936552908,0.0148472522382491,0.0148441890833994,0.0148227995798094,0.0147915551970129,0.0147589394530326,0.0147324027713059,0.0147175830340273,0.0147175830340273, +0.0148249936552908,0.0148249936552908,0.0148472522382491,0.0148441890833994,0.0148227995798094,0.0147915551970129,0.0147589394530326,0.0147324027713059,0.0147175830340273,0.0147175830340273, +0.0260207573688652,0.0260207573688652,0.0260487271580936,0.0260381797480012,0.0259998676863222,0.0259468744834544,0.0258924173158662,0.0258483002631863,0.0258236692792625,0.0258236692792625, +0.0529586181809482,0.0529586181809482,0.0529941822024893,0.0529630823835479,0.0528841745340071,0.0527805132649841,0.0526755910569102,0.0525908455413568,0.0525434649431133,0.0525434649431133, +0.104358367369488,0.104358367369488,0.104394368369541,0.104318504914387,0.104162948935839,0.103967083999519,0.103771186916402,0.103612934054768,0.103524026481209,0.103524026481209, +0.191627040317359,0.191627040317359,0.191641536943564,0.19148138151473,0.191198331959012,0.190854931242055,0.190514495585856,0.190238029339852,0.190080865195304,0.190080865195304, +0.325481001484861,0.325481001484861,0.325435734467758,0.325135990049294,0.324663080949013,0.324108928057369,0.323562375104784,0.323112058600476,0.322849014267297,0.322849014267297, +0.51082092531319,0.51082092531319,0.510673727363673,0.510165354496777,0.509437850238382,0.508616235817735,0.50780624355593,0.507117505556038,0.50668906962866,0.50668906962866, +0.741767337447796,0.741767337447796,0.74152092357802,0.740705466053208,0.739667097868425,0.738550202020197,0.737443796587627,0.736443691143845,0.735723794272158,0.735723794272158, + +00:16:53, +0.0148766193845002,0.0148766193845002,0.0148989227469144,0.0148958575133493,0.0148744291353405,0.014843123589036,0.0148104414084935,0.0147838495229592,0.014768998694174,0.014768998694174, +0.0148766193845002,0.0148766193845002,0.0148989227469144,0.0148958575133493,0.0148744291353405,0.014843123589036,0.0148104414084935,0.0147838495229592,0.014768998694174,0.014768998694174, +0.0260933805806136,0.0260933805806136,0.0261213871076066,0.0261108291651887,0.0260724683612024,0.0260194027588654,0.0259648679520065,0.0259206866465846,0.0258960195484372,0.0258960195484372, +0.0530713863074803,0.0530713863074803,0.0531069656990235,0.0530758413084775,0.0529968736750097,0.0528931293158153,0.0527881191877876,0.052703301252289,0.0526558801096396,0.0526558801096396, +0.104523519467459,0.104523519467459,0.104559498905608,0.104483601641105,0.104327993105263,0.104132059094488,0.103936089042826,0.103777776379349,0.103688835766851,0.103688835766851, +0.191841194584881,0.191841194584881,0.191855630291124,0.191695458660839,0.191412410416548,0.191069010844051,0.19072857323203,0.190452106148968,0.190294943437402,0.190294943437402, +0.325717163669766,0.325717163669766,0.325671827023734,0.325372139325052,0.324899356239625,0.324345352503904,0.323798945038758,0.323348751606854,0.323085783081186,0.323085783081186, +0.51102935023514,0.51102935023514,0.510882139794339,0.5103739680202,0.509646781454169,0.50882552732753,0.508015889793922,0.507327457990892,0.506899217481779,0.506899217481779, +0.741890975310526,0.741890975310526,0.741644666606749,0.740829613626601,0.739791771814521,0.738675442838616,0.737569598604114,0.736570002407998,0.735850473182048,0.735850473182048, + +00:16:54, +0.014928341730316,0.014928341730316,0.014950689857985,0.0149476225530684,0.0149261553221678,0.0148947886392846,0.0148620400469661,0.0148353929755852,0.0148205110645041,0.0148205110645041, +0.014928341730316,0.014928341730316,0.014950689857985,0.0149476225530684,0.0149261553221678,0.0148947886392846,0.0148620400469661,0.0148353929755852,0.0148205110645041,0.0148205110645041, +0.0261660917665774,0.0261660917665774,0.0261941349882256,0.0261835665293714,0.0261451570449619,0.0260920191310564,0.0260374067756761,0.0259931612901986,0.0259684581177751,0.0259684581177751, +0.0531842103928042,0.0531842103928042,0.0532198050859506,0.0531886561674935,0.0531096288892975,0.0530058016394697,0.0529007038022724,0.0528158136189747,0.0527683520276236,0.0527683520276236, +0.10468865543334,0.10468865543334,0.104724613267562,0.104648682287136,0.104493021419012,0.104297018651087,0.104100975968375,0.103942603780075,0.103853630282668,0.103853630282668, +0.192055224097462,0.192055224097462,0.192069598937163,0.191909411234494,0.191626364545699,0.191282966461821,0.190942527265216,0.190666059649732,0.19050889853841,0.19050889853841, +0.32595309688304,0.32595309688304,0.325907690758812,0.325608059845634,0.325135402869349,0.324581548454916,0.324035286673837,0.323585216471467,0.323322323829673,0.323322323829673, +0.511237513433497,0.511237513433497,0.511090290614535,0.510582319757772,0.509855450619461,0.509034556541219,0.508225273522358,0.507537147718743,0.50710910247833,0.50710910247833, +0.742014436011393,0.742014436011393,0.741768232342795,0.740953583343287,0.739916267196342,0.7388005043688,0.73769522063269,0.736696133036456,0.735976970966832,0.735976970966832, + +00:16:55, +0.014980160652663,0.014980160652663,0.0150025535312337,0.0149994841623345,0.0149779781002137,0.0149465503079268,0.0149137353289003,0.0148870330898771,0.0148721201058506,0.0148721201058506, +0.014980160652663,0.014980160652663,0.0150025535312337,0.0149994841623345,0.0149779781002137,0.0149465503079268,0.0149137353289003,0.0148870330898771,0.0148721201058506,0.0148721201058506, +0.026238890818845,0.026238890818845,0.0262669706920301,0.0262563917326576,0.0262179336297863,0.0261647234923381,0.0261100336793369,0.0260657240866274,0.0260409848799572,0.0260409848799572, +0.0532970902526006,0.0532970902526006,0.0533327001791717,0.0533015267765219,0.0532224399926724,0.0531185300515491,0.0530133447157642,0.0529283824566612,0.052880880512234,0.052880880512234, +0.1048537751,0.1048537751,0.104889711288637,0.104813746685631,0.104658033709746,0.104461962501225,0.104265847524152,0.104107416087403,0.104018409858764,0.104018409858764, +0.192269128877001,0.192269128877001,0.192283442903791,0.19212323925753,0.191840194367454,0.191496798115073,0.191156357703728,0.190879889859321,0.190722730514885,0.190722730514885, +0.326188801454603,0.326188801454603,0.326143326002725,0.325843751940479,0.325371221166863,0.324817516237836,0.324271400336042,0.323821453519191,0.323558636837035,0.323558636837035, +0.511445415447119,0.511445415447119,0.511298180362808,0.510790410248279,0.510063858273164,0.509243323997464,0.508434395279484,0.507746575277548,0.50731872515622,0.50731872515622, +0.742137719973207,0.742137719973207,0.7418916212093,0.741077375627742,0.740040584439861,0.738925387038068,0.737820663101887,0.736822083458931,0.736103288057208,0.736103288057208, + +00:16:56, +0.0150320761111551,0.0150320761111551,0.0150545137261231,0.0150514423006145,0.0150298974290897,0.0149984085548185,0.0149655272144335,0.0149387698262147,0.014923825778733,0.014923825778733, +0.0150320761111551,0.0150320761111551,0.0150545137261231,0.0150514423006145,0.0150298974290897,0.0149984085548185,0.0149655272144335,0.0149387698262147,0.014923825778733,0.014923825778733, +0.0263117776294676,0.0263117776294676,0.0263398941110626,0.0263293046671187,0.0262907980078235,0.0262375157349825,0.0261827485554111,0.0261383749284295,0.0261135997276231,0.0261135997276231, +0.0534100257029828,0.0534100257029828,0.05344565079502,0.0534144529519208,0.0533353068013681,0.0532313143680858,0.0531260417440925,0.0530410075810253,0.0529934653790684,0.0529934653790684, +0.105018878301097,0.105018878301097,0.105054792802853,0.104978794670528,0.104823029810915,0.104626890477598,0.104430703542053,0.10427221313258,0.104183174326032,0.104183174326032, +0.192482908945941,0.192482908945941,0.192497162213659,0.192336942752326,0.19205389990335,0.191710505824064,0.191370064566434,0.191093596795471,0.190936439383944,0.190936439383944, +0.326424277713915,0.326424277713915,0.326378733084745,0.326079215938567,0.325606811460387,0.32505325617964,0.324507286350951,0.324057463074467,0.32379472242711,0.32379472242711, +0.511653056813374,0.511653056813374,0.511505809576209,0.510998240029013,0.51027200495269,0.509451830233442,0.508643255602063,0.507955741203784,0.507528086051873,0.507528086051873, +0.742260827617377,0.742260827617377,0.742014833628,0.741200990903031,0.740164723969639,0.739050091272324,0.737945926438822,0.736947854103714,0.73622942488245,0.73622942488245, + +00:16:57, +0.0150840880650964,0.0150840880650964,0.0151065704018067,0.0151034969270667,0.0150819132680978,0.0150503633395058,0.0150174156633914,0.0149906031446656,0.0149756280433578,0.0149756280433578, +0.0150840880650964,0.0150840880650964,0.0151065704018067,0.0151034969270667,0.0150819132680978,0.0150503633395058,0.0150174156633914,0.0149906031446656,0.0149756280433578,0.0149756280433578, +0.02638475209046,0.02638475209046,0.0264129051373299,0.0264023052247899,0.0263637500711847,0.0263103957512239,0.0262555512962818,0.0262111137081237,0.0261863025533721,0.0261863025533721, +0.0535230165604959,0.0535230165604959,0.0535586567502605,0.05352743451048,0.0534482291320493,0.0533441544055427,0.053238794703516,0.0531536888081722,0.0531061064441524,0.0531061064441524, +0.105183964871074,0.105183964871074,0.105219857645016,0.105143826076551,0.104988009556757,0.104791802413692,0.104595543854761,0.104436994747644,0.104347923516156,0.104347923516156, +0.192696564327264,0.192696564327264,0.192710756889954,0.192550521741796,0.192267481175462,0.191924089609593,0.191583647872749,0.191307180476467,0.191150025163254,0.191150025163254, +0.326659525989975,0.326659525989975,0.326613912333682,0.326314452168417,0.325842174077685,0.325288768606856,0.324742945043697,0.324293245461293,0.324030580923301,0.324030580923301, +0.511860438068138,0.511860438068138,0.511713178790302,0.511205809635779,0.510479891193965,0.509660075784842,0.508851855025375,0.50816464603245,0.507737185700239,0.507737185700239, +0.742383759363916,0.742383759363916,0.742137870019238,0.741324429590823,0.740288686208835,0.739174617496064,0.7380710110692,0.737073445397686,0.73635538187042,0.73635538187042, + +00:16:58, +0.0151361964734823,0.0151361964734823,0.01515872351713,0.0151556480005411,0.0151340255762315,0.015102414621225,0.0150694006352899,0.0150425330049866,0.0150275268596205,0.0150275268596205, +0.0151361964734823,0.0151361964734823,0.01515872351713,0.0151556480005411,0.0151340255762315,0.015102414621225,0.0150694006352899,0.0150425330049866,0.0150275268596205,0.0150275268596205, +0.0264578140938016,0.0264578140938016,0.0264860036628036,0.0264753932976715,0.0264367897119455,0.0263833634332601,0.0263284417942944,0.0262839403181895,0.0262590932497636,0.0262590932497636, +0.0536360626421169,0.0536360626421169,0.0536717178620897,0.0536404712694197,0.0535612068018112,0.0534570499808126,0.0533516034107227,0.0532664259546352,0.0532188035239391,0.0532188035239391, +0.105349034645163,0.105349034645163,0.105384905650714,0.105308840739206,0.10515297278229,0.104956698143776,0.104760368295745,0.104601760765416,0.104512657261606,0.104512657261606, +0.192910095044488,0.192910095044488,0.192924226956399,0.192763976249392,0.192480938206404,0.192137549493002,0.191797107642635,0.191520640921147,0.191363487871038,0.191363487871038, +0.326894546611322,0.326894546611322,0.326848864077886,0.326549460958088,0.326077309346062,0.32552405384556,0.324978376738966,0.32452880100323,0.324266212648572,0.324266212648572, +0.512067559745804,0.512067559745804,0.511920288539169,0.511413119602898,0.510687517531432,0.509868061185878,0.50906019408323,0.508373290297076,0.507946024634798,0.507946024634798, +0.742506515631448,0.742506515631448,0.742260730801965,0.741447692111388,0.740412471579207,0.739298966132382,0.738195917417322,0.73719885776632,0.736481159447568,0.736481159447568, + +00:16:59, +0.0151884012950013,0.0151884012950013,0.0152109730306319,0.0152078954795816,0.0151862343121775,0.0151545623589048,0.0151214820893357,0.0150945593666247,0.0150795221871062,0.0150795221871062, +0.0151884012950013,0.0151884012950013,0.0152109730306319,0.0152078954795816,0.0151862343121775,0.0151545623589048,0.0151214820893357,0.0150945593666247,0.0150795221871062,0.0150795221871062, +0.0265309635314373,0.0265309635314373,0.0265591895794215,0.0265485687777296,0.0265099168221468,0.0264564186732528,0.026401419941757,0.0263568546510684,0.0263319717093185,0.0263319717093185, +0.0537491637652536,0.0537491637652536,0.0537848339481342,0.053753563046391,0.053674239628179,0.0535700009112174,0.0534644676828289,0.0533792188373754,0.053331556435309,0.053331556435309, +0.105514087459373,0.105514087459373,0.105549936656318,0.10547383849478,0.105317919323315,0.105121577502902,0.104925176699256,0.104766511019503,0.104677375395635,0.104677375395635, +0.193123501121664,0.193123501121664,0.193137572437247,0.192977306299094,0.192694271019322,0.192350885496171,0.192010443896594,0.19173397814889,0.191576827526062,0.191576827526062, +0.327129339906034,0.327129339906034,0.327083588645245,0.326784242635177,0.326312217592369,0.325759112221377,0.325213581761002,0.324764130023398,0.324501617925454,0.324501617925454, +0.512274422379288,0.512274422379288,0.512127139355412,0.511620170463211,0.510894884498056,0.510075786969288,0.509268273307964,0.508581674529724,0.508154603387565,0.508154603387565, +0.742629096837216,0.742629096837216,0.742383416393747,0.741570778883608,0.740536080501119,0.739423137602975,0.738320645906091,0.737324091633687,0.736606758038941,0.736606758038941, + +00:17:00, +0.0152407024880354,0.0152407024880354,0.0152633189005459,0.0152602393224263,0.0152385394343163,0.0152068065111672,0.0151736599844281,0.0151466821887185,0.0151316139850912,0.0151316139850912, +0.0152407024880354,0.0152407024880354,0.0152633189005459,0.0152602393224263,0.0152385394343163,0.0152068065111672,0.0151736599844281,0.0151466821887185,0.0151316139850912,0.0151316139850912, +0.026604200295278,0.026604200295278,0.0266324627790876,0.0266218315568966,0.0265831312937952,0.0265295613633288,0.0264744856309417,0.0264298565991647,0.0264049378245199,0.0264049378245199, +0.0538623197477441,0.0538623197477441,0.0538980048264512,0.0538667096594746,0.0537873274291073,0.0536830070145079,0.0535773873373787,0.0534920672737808,0.0534443649955692,0.0534443649955692, +0.105679123150495,0.105679123150495,0.105714950498972,0.105638819180338,0.105482849016409,0.105286440326899,0.105089968900326,0.104931245344293,0.104842077752279,0.104842077752279, +0.193336782583371,0.193336782583371,0.193350793357277,0.193190511915411,0.192907479637894,0.192564097641514,0.192223656655671,0.191947192179622,0.191790044147639,0.191790044147639, +0.327363906201726,0.327363906201726,0.327318086363183,0.327018797526822,0.326546899142997,0.32599394405948,0.325448560433602,0.324999232844478,0.324736797076037,0.324736797076037, +0.512481026500032,0.512481026500032,0.512333731770163,0.511826962748087,0.511101992625332,0.510283253666341,0.509476093230451,0.508789799260995,0.508362922489097,0.508362922489097, +0.742751503397081,0.742751503397081,0.742505927210772,0.741693690324983,0.740659513393548,0.73954713232815,0.738445196957017,0.737449147422463,0.736732178068189,0.736732178068189, + +00:17:01, +0.0152931000106622,0.0152931000106622,0.0153157610848015,0.0153126794870094,0.015290940900724,0.0152591470363287,0.0152259342791599,0.0151989014300994,0.0151838022125443,0.0151838022125443, +0.0152931000106622,0.0152931000106622,0.0153157610848015,0.0153126794870094,0.015290940900724,0.0152591470363287,0.0152259342791599,0.0151989014300994,0.0151838022125443,0.0151838022125443, +0.0266775242772021,0.0266775242772021,0.0267058231536739,0.0266951815270728,0.0266564330188645,0.0266027913955807,0.0265476387540853,0.0265029460548464,0.026477991487814,0.026477991487814, +0.0539755304078566,0.0539755304078566,0.0540112303155272,0.0539799109271805,0.0539004700229797,0.0537960681088632,0.0536903621923439,0.0536049710816663,0.0535572290224526,0.0535572290224526, +0.105844141556093,0.105844141556093,0.105879947016599,0.105803782633716,0.105647761698927,0.105451286452374,0.105254744734764,0.105095963574951,0.10500676416635,0.10500676416635, +0.193549939454716,0.193549939454716,0.193563889741794,0.193403593123378,0.193120564086324,0.192777185951977,0.192436745941443,0.192160283033803,0.192003137755622,0.192003137755622, +0.327598245825553,0.327598245825553,0.327552357558666,0.327253125959699,0.326781354323881,0.326228549684592,0.325683313080122,0.325234109788712,0.324971750421977,0.324971750421977, +0.512687372638011,0.512687372638011,0.512540066313085,0.512033496987429,0.511308842443287,0.510490461806844,0.509683654380105,0.508997665020034,0.508570982468493,0.508570982468493, +0.742873735725537,0.742873735725537,0.742628263667856,0.741816426851633,0.740782770674091,0.739670950726831,0.738569570990224,0.737574025553937,0.73685741995757,0.73685741995757, + +00:17:02, +0.0153455938206557,0.0153455938206557,0.0153682995410252,0.0153652159309624,0.0153434386691735,0.0153115838924017,0.0152783049318188,0.015251217049293,0.0152360868281278,0.0152360868281278, +0.0153455938206557,0.0153455938206557,0.0153682995410252,0.0153652159309624,0.0153434386691735,0.0153115838924017,0.0152783049318188,0.015251217049293,0.0152360868281278,0.0152360868281278, +0.0267509353690559,0.0267509353690559,0.0267792705950206,0.0267686185801268,0.0267298218892961,0.0266761086620679,0.02662087920339,0.026576122910446,0.0265511325916107,0.0265511325916107, +0.0540887955642885,0.0540887955642885,0.0541245102342778,0.0540931666684476,0.0540136672286082,0.0539091840128899,0.053803392066123,0.0537179300792726,0.053670148334118,0.053670148334118, +0.106009142514508,0.106009142514508,0.106044926047891,0.105968728693525,0.105812657208993,0.105616115716706,0.105419504039153,0.105260665547416,0.105171434473438,0.105171434473438, +0.193762971761325,0.193762971761325,0.193776861616624,0.193616549948549,0.193333524389341,0.192990150451031,0.192649711776019,0.192373250732432,0.192216108370399,0.192216108370399, +0.327832359104208,0.327832359104208,0.327786402558197,0.327487228260023,0.327015583460499,0.326462929420981,0.325917840023467,0.3254687611779,0.32520647828449,0.32520647828449, +0.512893461321733,0.512893461321733,0.51274614351238,0.512239773709674,0.511515434480485,0.510697411919144,0.509890957284887,0.509205272334535,0.508778783853404,0.508778783853404, +0.742995794235709,0.742995794235709,0.742750426178445,0.74193898887831,0.740905852758966,0.739794593216562,0.738693768424455,0.737698726448013,0.736982484127957,0.736982484127957, + +00:17:03, +0.0153981838754875,0.0153981838754875,0.0154209342265418,0.015417848611615,0.0153960326971354,0.0153641170370955,0.0153307719003886,0.0153036290045201,0.015288467790199,0.015288467790199, +0.0153981838754875,0.0153981838754875,0.0154209342265418,0.015417848611615,0.0153960326971354,0.0153641170370955,0.0153307719003886,0.0153036290045201,0.015288467790199,0.015288467790199, +0.0268244334626545,0.0268244334626545,0.0268528049949376,0.0268421426078963,0.0268032977970001,0.0267495130548174,0.0266942068710246,0.0266493870582616,0.0266243610282852,0.0266243610282852, +0.0542021150361662,0.0542021150361662,0.054237844402047,0.0542064767026428,0.0541269188652323,0.054022354545622,0.0539164767775406,0.053830944085266,0.0537831227491492,0.0537831227491492, +0.106174125864848,0.106174125864848,0.10620988743231,0.106133657199143,0.105977535385503,0.105780927958048,0.105584246650849,0.105425351098402,0.105336088509903,0.105336088509903, +0.193975879529347,0.193975879529347,0.193989709008108,0.193829382416996,0.193546360572191,0.193202991162675,0.192862554182037,0.192586095297038,0.192428956012894,0.192428956012894, +0.328066246363925,0.328066246363925,0.328020221687815,0.327721104753548,0.32724958687787,0.326697083592467,0.326152141586101,0.325703187333404,0.325440980984356,0.325440980984356, +0.513099293078253,0.513099293078253,0.51295196389479,0.512445793441802,0.511721769264037,0.510904104530137,0.510098002471307,0.509412621730746,0.508986327170036,0.508986327170036, +0.743117679339365,0.743117679339365,0.742872415154626,0.742061376818396,0.741028760063025,0.739918060213513,0.738817789677078,0.737823250523218,0.73710737099884,0.73710737099884, + +00:17:04, +0.0154508701323284,0.0154508701323284,0.0154736650983759,0.0154705774859966,0.0154487229417795,0.0154167464278179,0.0153833351425506,0.0153561372536981,0.0153409450568112,0.0153409450568112, +0.0154508701323284,0.0154508701323284,0.0154736650983759,0.0154705774859966,0.0154487229417795,0.0154167464278179,0.0153833351425506,0.0153561372536981,0.0153409450568112,0.0153409450568112, +0.0268980184497831,0.0268980184497831,0.0269264262452045,0.0269157535021892,0.0268768606338563,0.0268230044658249,0.0267676216491251,0.0267227383905573,0.0266976766901782,0.0266976766901782, +0.0543154886430442,0.0543154886430442,0.0543512326386068,0.0543198408495607,0.0542402247525192,0.0541355795265199,0.0540296161458474,0.0539440129187378,0.0538961520865545,0.0538961520865545, +0.10633909144699,0.10633909144699,0.106374831010085,0.106298567990715,0.106142396068119,0.105945723015316,0.105748972407975,0.105590020065391,0.105500726112878,0.105500726112878, +0.194188662785444,0.194188662785444,0.194202431943103,0.194042090555305,0.193759072660642,0.193415708111427,0.193075273182663,0.192798816749681,0.192641680704561,0.192641680704561, +0.328299907930474,0.328299907930474,0.3282538152731,0.327954755765569,0.327483364900558,0.326931012522418,0.32638621809004,0.325937388576142,0.325675258841917,0.325675258841917, +0.513304868433171,0.513304868433171,0.513157527985608,0.512651556709341,0.511927847319597,0.511110540165267,0.51030479046443,0.509619713733474,0.509193612943155,0.509193612943155, +0.743239391446916,0.743239391446916,0.74299423100713,0.742183591083919,0.741151492999753,0.740041352132491,0.73894163516409,0.737947598196707,0.73723208098834,0.73723208098834, + +00:17:05, +0.0155036525480492,0.0155036525480492,0.0155264921132528,0.0155234025108376,0.0155015093599762,0.0154694720216761,0.0154359946156845,0.0154087417544423,0.0153935185857152,0.0153935185857152, +0.0155036525480492,0.0155036525480492,0.0155264921132528,0.0155234025108376,0.0155015093599762,0.0154694720216761,0.0154359946156845,0.0154087417544423,0.0153935185857152,0.0153935185857152, +0.0269716902221972,0.0269716902221972,0.0270001342375724,0.0269894511547845,0.0269505102917146,0.0268965827870552,0.0268411234297959,0.0267961767995647,0.0267710794695969,0.0267710794695969, +0.0544289162049046,0.0544289162049046,0.0544646747641564,0.0544332589294231,0.0543535847105625,0.0542488587754704,0.0541428099907192,0.0540571363992038,0.0540092361657661,0.0540092361657661, +0.106504039101579,0.106504039101579,0.106539756622207,0.106463460909149,0.106307239097267,0.106110500728195,0.105913681149422,0.105754672286634,0.105665347120262,0.105665347120262, +0.19440132155679,0.19440132155679,0.194415030448977,0.194254674390575,0.19397166068097,0.193628301322321,0.19328786880158,0.193011415112942,0.19285428246738,0.19285428246738, +0.328533344129164,0.328533344129164,0.32848718363917,0.328188181620917,0.327716917852666,0.327164716533747,0.326620069856858,0.326171365226596,0.325909312177076,0.325909312177076, +0.513510187910637,0.513510187910637,0.513362836308677,0.512857064036371,0.512133669171377,0.511316719348537,0.510511321787885,0.509826548866088,0.509400641696093,0.509400641696093, +0.743360930967426,0.743360930967426,0.743115874145338,0.742305632085546,0.741274051981279,0.740164469386938,0.739065305300129,0.738071769884269,0.737356614513205,0.737356614513205, + +00:17:06, +0.0155565310792223,0.0155565310792223,0.0155794152276001,0.0155763236425705,0.0155543919082973,0.0155222937754783,0.0154887502768699,0.0154614424640669,0.0154461883343604,0.0154461883343604, +0.0155565310792223,0.0155565310792223,0.0155794152276001,0.0155763236425705,0.0155543919082973,0.0155222937754783,0.0154887502768699,0.0154614424640669,0.0154461883343604,0.0154461883343604, +0.027045448671624,0.027045448671624,0.027073928863764,0.0270632354574327,0.0270242466623963,0.0269702479104434,0.0269147121051102,0.0268697021774832,0.0268445692588161,0.0268445692588161, +0.0545423975421569,0.0545423975421569,0.0545781705993219,0.0545467307628783,0.0544669985598819,0.0543621921127853,0.0542560581322566,0.0541703143466037,0.0541223748066398,0.0541223748066398, +0.106668968670017,0.106668968670017,0.106704664110429,0.106628335796114,0.106472064314134,0.106275260937131,0.106078372714845,0.105919307601144,0.105829951370718,0.105829951370718, +0.19461385587107,0.19461385587107,0.194627504553602,0.194467133950411,0.194184124659965,0.193840770820909,0.193500341062993,0.193223890409927,0.193066761323855,0.193066761323855, +0.328766555284844,0.328766555284844,0.328720327110678,0.328421382643964,0.327950246057842,0.327398195948918,0.326853697207678,0.326405117604805,0.326143141309301,0.326143141309301, +0.513715252033361,0.513715252033361,0.513567889386399,0.513062315945528,0.512339235342143,0.511522642602511,0.510717596963862,0.510033127650528,0.509607413950749,0.509607413950749, +0.743482298308616,0.743482298308616,0.743237344977288,0.742427500232601,0.741396437418379,0.740287412388943,0.739188800498472,0.738195766000335,0.737480971988823,0.737480971988823, + +00:17:07, +0.0156095056821228,0.0156095056821228,0.0156324343975486,0.015629340837331,0.0156073705430177,0.0155752116457346,0.0155416020828877,0.0155142393395865,0.015498954259896,0.015498954259896, +0.0156095056821228,0.0156095056821228,0.0156324343975486,0.015629340837331,0.0156073705430177,0.0155752116457346,0.0155416020828877,0.0155142393395865,0.015498954259896,0.015498954259896, +0.0271192936897629,0.0271192936897629,0.0271478100154748,0.0271371063018573,0.0270980696376946,0.0270439997278957,0.0269883875671113,0.0269433144164812,0.026918145950079,0.026918145950079, +0.0546559324756368,0.0546559324756368,0.0546917199651556,0.0546602561710003,0.0545804661214229,0.0544755793592019,0.0543693603909843,0.0542835465813006,0.0542355678294543,0.0542355678294543, +0.106833879994469,0.106833879994469,0.106869553317263,0.106793192494037,0.106636871560668,0.106440003483331,0.106243046944659,0.106083925848697,0.105994538703674,0.105994538703674, +0.194826265756474,0.194826265756474,0.194839854285358,0.194679469262923,0.194396464624923,0.19405311663325,0.193712689991622,0.193436242664261,0.193279117297012,0.193279117297012, +0.328999541721899,0.328999541721899,0.328953246011819,0.328654359158621,0.328183349839276,0.327631451089941,0.327087100463183,0.326638646030366,0.326376746557619,0.326376746557619, +0.513920061322614,0.513920061322614,0.513772687739739,0.513267312958011,0.512544546353229,0.511728310448319,0.510923616513126,0.510239450607306,0.5098139302276,0.5098139302276, +0.74360349387687,0.74360349387687,0.743358643909677,0.742549195933064,0.74151864972048,0.740410181549243,0.739312121171044,0.738319586957981,0.737605153829225,0.737605153829225, + +00:17:08, +0.0156625763127297,0.0156625763127297,0.0156855495789337,0.0156824540509597,0.0156604452201162,0.0156282255886583,0.0155945499902209,0.0155671323377174,0.0155518163191724,0.0155518163191724, +0.0156625763127297,0.0156625763127297,0.0156855495789337,0.0156824540509597,0.0156604452201162,0.0156282255886583,0.0155945499902209,0.0155671323377174,0.0155518163191724,0.0155518163191724, +0.0271932251682866,0.0271932251682866,0.0272217775843741,0.027211063579755,0.0271719791093757,0.0271178381312902,0.027062149707813,0.0270170134086968,0.0269918094355978,0.0269918094355978, +0.0547695208266064,0.0547695208266064,0.0548053226831354,0.0547738349752889,0.054693987216556,0.0545890203358815,0.0544827165878505,0.0543968329240806,0.0543488150549108,0.0543488150549108, +0.106998772917858,0.106998772917858,0.107034424085975,0.106958030846101,0.10680166067957,0.106604728208758,0.106407703680037,0.106248526869828,0.106159108959313,0.106159108959313, +0.195038551241694,0.195038551241694,0.195052079673124,0.194891680356721,0.194608680603644,0.194265338785915,0.193924915612697,0.193648471900082,0.193491350410393,0.193491350410393, +0.329232303764255,0.329232303764255,0.329185940666324,0.328887111488336,0.3284162295197,0.327864482278376,0.327320279943605,0.326871950822438,0.326610128240619,0.326610128240619, +0.514124616298234,0.514124616298234,0.513977231888228,0.513472055593587,0.512749602724532,0.511933723405663,0.511129380955013,0.510445518255512,0.510020191045701,0.510020191045701, +0.743724518077241,0.743724518077241,0.743479771347873,0.742670719593576,0.741640689295671,0.740532777277235,0.739435267728426,0.738443233168931,0.737729160447091,0.737729160447091, + +00:17:09, +0.0157157429267273,0.0157157429267273,0.0157387607272965,0.0157356632390028,0.0157136158952771,0.0156813355601676,0.0156475939550561,0.0156201214148784,0.0156047744687422,0.0156047744687422, +0.0157157429267273,0.0157157429267273,0.0157387607272965,0.0157356632390028,0.0157136158952771,0.0156813355601676,0.0156475939550561,0.0156201214148784,0.0156047744687422,0.0156047744687422, +0.0272672429988418,0.0272672429988418,0.0272958314621053,0.0272851071827971,0.0272459749691797,0.0271917630124777,0.027135998419201,0.0270907990462389,0.0270655596075548,0.0270655596075548, +0.0548831624167528,0.0548831624167528,0.0549189785751643,0.0548874669976683,0.0548075616670758,0.0547025148644094,0.0545961265442266,0.0545101731961518,0.0544621163041322,0.0544621163041322, +0.107163647283858,0.107163647283858,0.107199276260585,0.10712285069624,0.106966431514296,0.106769434956131,0.106572342762909,0.106413110505828,0.106323661978579,0.106323661978579, +0.195250712355922,0.195250712355922,0.195264180746277,0.195103767260915,0.194820772624427,0.194477437305976,0.194137017951959,0.193860578142042,0.193703460688051,0.193703460688051, +0.329464841735375,0.329464841735375,0.329418411397463,0.329119639956097,0.328648885421386,0.32809728983533,0.327553235968734,0.327105032299737,0.326843286676453,0.326843286676453, +0.51432891747863,0.51432891747863,0.514181522349972,0.513676544370594,0.512954404974525,0.51213888199282,0.511334890807442,0.51065133111282,0.510226196922693,0.510226196922693, +0.743845371313456,0.743845371313456,0.743600727695914,0.742792071619448,0.741762556550703,0.740655199980974,0.739558240579858,0.738566705043571,0.737852992253754,0.737852992253754, + +00:17:10, +0.0157690054795062,0.0157690054795062,0.0157920677978854,0.0157889683567138,0.0157668825238914,0.0157345415158859,0.0157007339332849,0.0156732065271925,0.0156578286648616,0.0156578286648616, +0.0157690054795062,0.0157690054795062,0.0157920677978854,0.0157889683567138,0.0157668825238914,0.0157345415158859,0.0157007339332849,0.0156732065271925,0.0156578286648616,0.0156578286648616, +0.0273413470730498,0.0273413470730498,0.0273699715402872,0.02735923700263,0.0273200571088209,0.0272657742632827,0.0272099335932332,0.0271646712211875,0.0271393963581033,0.0271393963581033, +0.0549968570681882,0.0549968570681882,0.0550326874635698,0.0550011520604872,0.0549211892952013,0.0548160627667942,0.0547095900819064,0.0546235672191444,0.0545754713986627,0.0545754713986627, +0.107328502936898,0.107328502936898,0.107364109685862,0.107287651889138,0.107131183909053,0.106934123568919,0.106736964035956,0.106577676598742,0.106488197603168,0.106488197603168, +0.195462749128845,0.195462749128845,0.195476157534687,0.195315730005108,0.195032740716071,0.194689412221008,0.194348997035652,0.1940725614153,0.193915448154555,0.193915448154555, +0.329697155958261,0.329697155958261,0.329650658528042,0.329351944884431,0.328881317866153,0.328329874081457,0.327785968857912,0.327337890780539,0.327076222182833,0.327076222182833, +0.514532965380789,0.514532965380789,0.514385559641652,0.513880779805945,0.51315895362026,0.512343786726649,0.511540146586917,0.510856889695493,0.510431948374803,0.510431948374803, +0.743966053987921,0.743966053987921,0.743721513356517,0.742913252414667,0.741884251891,0.740777450067184,0.739681040133243,0.738690002990947,0.737976649659208,0.737976649659208, + +00:17:11, +0.0158223639261648,0.0158223639261648,0.015845470745657,0.0158423693590545,0.0158202450610578,0.0157878434111441,0.0157539698805046,0.0157263876304879,0.0157109788634918,0.0157109788634918, +0.0158223639261648,0.0158223639261648,0.015845470745657,0.0158423693590545,0.0158202450610578,0.0157878434111441,0.0157539698805046,0.0157263876304879,0.0157109788634918,0.0157109788634918, +0.027415537282508,0.027415537282508,0.0274441977105147,0.0274334529308759,0.0273942254199894,0.0273398717755039,0.0272839551218409,0.0272386298255951,0.027213319579368,0.027213319579368, +0.0551106046034492,0.0551106046034492,0.0551464491711033,0.0551148899865179,0.0550348699235743,0.0549296638654671,0.0548231070231057,0.0547370148151094,0.0546888801604673,0.0546888801604673, +0.107493339722152,0.107493339722152,0.107528924207324,0.107452434270229,0.107295917708796,0.107098793891341,0.106901567342611,0.106742224991367,0.106652715675527,0.106652715675527, +0.195674661590643,0.195674661590643,0.195688010068718,0.195527568619395,0.195244584907867,0.194901263559082,0.194560852890525,0.194284421745523,0.194127312834976,0.194127312834976, +0.329929246755454,0.329929246755454,0.329882682380407,0.329584026595405,0.329113527175357,0.32856223533696,0.328018478930036,0.327570526582678,0.327308935077035,0.327308935077035, +0.514736760520279,0.514736760520279,0.514589344278534,0.514084762415139,0.513363249177368,0.512548438122595,0.511745148808531,0.511062194518385,0.510637445916856,0.510637445916856, +0.744086566501728,0.744086566501728,0.743842128731085,0.743034262381897,0.742005775720659,0.740899527941261,0.739803666795157,0.738813127418773,0.738100133072115,0.738100133072115, + +00:17:12, +0.0158758182215101,0.0158758182215101,0.0158989695252773,0.0158958662006961,0.015873703461584,0.0158412412009809,0.0158073017520201,0.0157796646802991,0.0157642250202998,0.0157642250202998, +0.0158758182215101,0.0158758182215101,0.0158989695252773,0.0158958662006961,0.015873703461584,0.0158412412009809,0.0158073017520201,0.0157796646802991,0.0157642250202998,0.0157642250202998, +0.0274898135187901,0.0274898135187901,0.0275185098643596,0.027507754859134,0.0274684797943513,0.0274140554409154,0.0273580628969294,0.0273126747514873,0.0272873291634464,0.0272873291634464, +0.0552244048454957,0.0552244048454957,0.0552602635209395,0.0552286805989557,0.0551486033752596,0.0550433179832815,0.0549366771904616,0.0548505158065188,0.0548023424119313,0.0548023424119313, +0.107658157485543,0.107658157485543,0.107693719671232,0.107617197685689,0.107460632759223,0.107263445768363,0.107066152527053,0.106906755527245,0.106817216038852,0.106817216038852, +0.195886449771988,0.195886449771988,0.195899738379219,0.195739283134361,0.195456305229597,0.195112991348767,0.194772585543824,0.194496159158877,0.194339054754892,0.194339054754892, +0.330161114449031,0.330161114449031,0.330114483276442,0.329815885410623,0.329345513669901,0.328794373921588,0.328250766503555,0.327802940023547,0.327541425675893,0.327541425675893, +0.514940303411255,0.514940303411255,0.514792876774468,0.514288492712259,0.513567292160072,0.512752836694693,0.511949897985971,0.51126724609495,0.510842690062274,0.510842690062274, +0.74420690925466,0.74420690925466,0.743962574219708,0.743155101922488,0.742127128442461,0.741021434007281,0.739926120970852,0.738936078733439,0.738223442899806,0.738223442899806, + +00:17:13, +0.0159293683200596,0.0159293683200596,0.0159525640911232,0.0159494588360206,0.0159272576799882,0.0158947348401448,0.0158607295028447,0.0158330376318687,0.01581756709066,0.01581756709066, +0.0159293683200596,0.0159293683200596,0.0159525640911232,0.0159494588360206,0.0159272576799882,0.0158947348401448,0.0158607295028447,0.0158330376318687,0.01581756709066,0.01581756709066, +0.027564175673447,0.027564175673447,0.0275929078933714,0.0275821426789811,0.0275428201235499,0.0274883251512675,0.0274322568103791,0.0273868058908636,0.0273614250024094,0.0273614250024094, +0.055338257617711,0.055338257617711,0.055374130336676,0.0553425237214185,0.055262389473744,0.0551570249435124,0.055050300407032,0.0549640700162644,0.0549158579758595,0.0549158579758595, +0.107822956073737,0.107822956073737,0.107858495924591,0.107781941982437,0.107625328906777,0.107428079045694,0.107230719434207,0.107071268050668,0.106981698537085,0.106981698537085, +0.196098113704034,0.196098113704034,0.196111342497526,0.195950873581074,0.19566790171153,0.195324595619121,0.19498419502329,0.19470777368203,0.194550673940382,0.194550673940382, +0.33039275936061,0.33039275936061,0.330346061537568,0.330047521651228,0.329577277670227,0.32902629015464,0.328482831896473,0.328035131420099,0.327773694295804,0.327773694295804, +0.515143594566463,0.515143594566463,0.514996157641899,0.51449197120998,0.513771083081185,0.512956982955576,0.512154394631526,0.511472044937241,0.511047681323083,0.511047681323083, +0.744327082645197,0.744327082645197,0.744082850221172,0.743275771436482,0.74224831045787,0.741143168668004,0.740048403064261,0.739058857340012,0.738346579548289,0.738346579548289, + +00:17:14, +0.0159830141760418,0.0159830141760418,0.0160062543972834,0.0160031472191222,0.0159809076705,0.0159483242830949,0.0159142530877013,0.0158865064401479,0.0158710050296552,0.0158710050296552, +0.0159830141760418,0.0159830141760418,0.0160062543972834,0.0160031472191222,0.0159809076705,0.0159483242830949,0.0159142530877013,0.0158865064401479,0.0158710050296552,0.0158710050296552, +0.0276386236380079,0.0276386236380079,0.0276673916890781,0.0276566162819725,0.0276172462992062,0.0275626807982871,0.0275065367540459,0.0274610231356982,0.0274356069883021,0.0274356069883021, +0.0554521627439008,0.0554521627439008,0.0554880494423323,0.055456419177946,0.055376228042936,0.0552707845698556,0.0551639764962951,0.0550776772676578,0.0550294266754758,0.0550294266754758, +0.107987735334141,0.107987735334141,0.108023252815144,0.10794666700813,0.107790005998642,0.107592693569784,0.10739526790974,0.107235762406668,0.107146163014913,0.107146163014913, +0.196309653418423,0.196309653418423,0.196322822455455,0.196162339991084,0.195879374384422,0.195536076399691,0.19519568135716,0.194919265342144,0.194762170418021,0.194762170418021, +0.330624181811347,0.330624181811347,0.330577417484746,0.330278935637904,0.32980881949632,0.329257984354962,0.32871467542635,0.328267101088843,0.328005741252726,0.328005741252726, +0.515346634497245,0.515346634497245,0.515199187391868,0.514695198419573,0.513974622452118,0.513160877416474,0.512358639256086,0.511676591555922,0.511252420209917,0.511252420209917, +0.744447087070518,0.744447087070518,0.744202957132965,0.743396271322617,0.742369322167048,0.741264732324877,0.740170513478005,0.739181463642246,0.738469543422256,0.738469543422256, + +00:17:15, +0.0160367557433981,0.0160367557433981,0.01606004039756,0.0160569313038082,0.0160346533870617,0.0160020094840019,0.0159678724610239,0.0159400710597982,0.015924538792078,0.015924538792078, +0.0160367557433981,0.0160367557433981,0.01606004039756,0.0160569313038082,0.0160346533870617,0.0160020094840019,0.0159678724610239,0.0159400710597982,0.015924538792078,0.015924538792078, +0.0277131573039809,0.0277131573039809,0.0277419611429871,0.0277311755596427,0.0276917582129199,0.027637122273679,0.0275809026197624,0.0275353263779412,0.0275098750131444,0.0275098750131444, +0.0555661200482929,0.0555661200482929,0.0556020206623497,0.0555703667929992,0.0554901189071649,0.0553845966864273,0.0552777052821485,0.0551913373844292,0.0551430483344226,0.0551430483344226, +0.1081524951149,0.1081524951149,0.108187990191371,0.108111372611163,0.107954663882736,0.107757289187823,0.107559797800059,0.107400238441018,0.107310609317761,0.107310609317761, +0.196521068947273,0.196521068947273,0.196534178285301,0.196373682396421,0.196090723279507,0.195747433720509,0.195407044574157,0.195130634166875,0.194973544214879,0.194973544214879, +0.330855382121935,0.330855382121935,0.330808551438472,0.330510127690872,0.330040139467708,0.329489456840946,0.328946297410296,0.32849884934585,0.328237566862179,0.328237566862179, +0.515549423713546,0.515549423713546,0.515401966534016,0.514898174850912,0.514177910782884,0.513364520587226,0.512562632369154,0.511880886460266,0.511456907232025,0.511456907232025, +0.744566922926514,0.744566922926514,0.744322895351279,0.743516601978332,0.742490163968849,0.741386125378045,0.740292452613398,0.739303898042585,0.738592334925085,0.738592334925085, + +00:17:16, +0.0160905929757834,0.0160905929757834,0.0161139220454694,0.0161108110436003,0.0160884947833296,0.01605579039675,0.0160215875769587,0.0159937314451925,0.015978168332432,0.015978168332432, +0.0160905929757834,0.0160905929757834,0.0161139220454694,0.0161108110436003,0.0160884947833296,0.01605579039675,0.0160215875769587,0.0159937314451925,0.015978168332432,0.015978168332432, +0.027787776562854,0.027787776562854,0.0278166161465858,0.0278058204035061,0.0277663557562704,0.0277116494691264,0.0276553542993387,0.0276097155095188,0.0275842289689323,0.0275842289689323, +0.0556801293555361,0.0556801293555361,0.0557160438215904,0.0556843663914598,0.0556040618911805,0.0554984611177638,0.0553914865889093,0.0553050501907274,0.0552567227767603,0.0552567227767603, +0.108317235264894,0.108317235264894,0.108352707902487,0.108276058640664,0.108119302407713,0.107921865747735,0.107724308952307,0.10756469600023,0.107475037291795,0.107475037291795, +0.196732360323182,0.196732360323182,0.196745410019835,0.196584900829591,0.196301948428501,0.195958667612091,0.195618284703491,0.195341880184366,0.195184795358518,0.195184795358518, +0.331086360612609,0.331086360612609,0.331039463718785,0.330741098129892,0.330271237903461,0.329720707930534,0.329177698164977,0.328730376506747,0.328469171439243,0.328469171439243, +0.515751962723915,0.515751962723915,0.515604495576594,0.515100901012475,0.514380948582103,0.513567912976277,0.512766374478843,0.512084930158166,0.511661142897272,0.511661142897272, +0.744686590607784,0.744686590607784,0.744442665271019,0.743636763799775,0.742610836260835,0.741507348226352,0.740414220870452,0.739426160942167,0.738714954458851,0.738714954458851, + +00:17:17, +0.0161445258265678,0.0161445258265678,0.0161678992942436,0.0161647863917361,0.0161424318126753,0.0161096669749377,0.0160753983893651,0.0160474875504163,0.0160318936049328,0.0160318936049328, +0.0161445258265678,0.0161445258265678,0.0161678992942436,0.0161647863917361,0.0161424318126753,0.0161096669749377,0.0160753983893651,0.0160474875504163,0.0160318936049328,0.0160318936049328, +0.0278624813060954,0.0278624813060954,0.0278913565913426,0.0278805507050582,0.0278410388208171,0.0277862622762919,0.027729891684563,0.0276841904223344,0.0276586687476385,0.0276586687476385, +0.0557941904907003,0.0557941904907003,0.0558301187453368,0.0557984177986299,0.0557180568201521,0.0556123776888203,0.0555053202413126,0.0554188155111191,0.0553704498269667,0.0553704498269667, +0.108481955633736,0.108481955633736,0.108517405798438,0.108440724946494,0.108283921422962,0.108086423098178,0.107888801214363,0.10772913493155,0.107639446783915,0.107639446783915, +0.19694352757922,0.19694352757922,0.1969565176923,0.19679599532357,0.196513049863592,0.19616977810543,0.195829401774857,0.195553003423251,0.195395923876986,0.195395923876986, +0.331317117603138,0.331317117603138,0.331270154645257,0.330971847274264,0.330502115122191,0.329951737941215,0.329408878006612,0.328961682886719,0.328700555298559,0.328700555298559, +0.515954252035512,0.515954252035512,0.515806775026462,0.515303377411352,0.514583736357008,0.51377105509069,0.512969866091888,0.512288723156133,0.511865127712147,0.511865127712147, +0.744806090507648,0.744806090507648,0.744562267285806,0.743756757181806,0.742731339439274,0.741628401267349,0.740535818647883,0.739548252740834,0.738837402424325,0.738837402424325, + +00:17:18, +0.0161985542488377,0.0161985542488377,0.0162219720968317,0.0162188573011697,0.0161964644281866,0.0161636391718788,0.0161293048518175,0.0161013393292689,0.0160857145635095,0.0160857145635095, +0.0161985542488377,0.0161985542488377,0.0162219720968317,0.0162188573011697,0.0161964644281866,0.0161636391718788,0.0161293048518175,0.0161013393292689,0.0160857145635095,0.0160857145635095, +0.0279372714251552,0.0279372714251552,0.0279661823687079,0.027955366355776,0.0279158072981007,0.0278609605868181,0.0278045146672023,0.0277587510082697,0.027733194241213,0.027733194241213, +0.0559083032792754,0.0559083032792754,0.0559442452592913,0.0559125208402306,0.0558321035196686,0.0557263462249708,0.0556192060645118,0.0555326331705878,0.0554842293099363,0.0554842293099363, +0.108646656071771,0.108646656071771,0.108682083729899,0.10860537137924,0.108448520778597,0.108250961088541,0.108053274434835,0.107893555082956,0.107803837641752,0.107803837641752, +0.197154570748928,0.197154570748928,0.197167501336408,0.197006965911808,0.19672402761744,0.196380765231994,0.196040395818427,0.195764003912642,0.19560692979882,0.19560692979882, +0.331547653412834,0.331547653412834,0.331500624537002,0.331202375442828,0.330732771442052,0.330182547190025,0.329639837250974,0.329192768800513,0.32893171875433,0.32893171875433, +0.516156292154113,0.516156292154113,0.516008805389097,0.515505604553249,0.514786274613448,0.513973947436146,0.513173107713644,0.512492265959306,0.512068862181765,0.512068862181765, +0.744925423018148,0.744925423018148,0.744681701787983,0.743876582518003,0.74285167389915,0.741749284897298,0.740657246343116,0.739670173837135,0.738959679220982,0.738959679220982, + +00:17:19, +0.0162526781953968,0.0162526781953968,0.0162761404059005,0.0162730237245738,0.0162505925826693,0.0162177069406042,0.0161833069176057,0.0161552867352647,0.0161396311618059,0.0161396311618059, +0.0162526781953968,0.0162526781953968,0.0162761404059005,0.0162730237245738,0.0162505925826693,0.0162177069406042,0.0161833069176057,0.0161552867352647,0.0161396311618059,0.0161396311618059, +0.0280121468114651,0.0280121468114651,0.0280410933701143,0.0280302672471191,0.0279906610796435,0.0279357442923287,0.0278792231390038,0.0278333971591849,0.0278078053415841,0.0278078053415841, +0.0560224675471706,0.0560224675471706,0.0560584231895755,0.0560266753424023,0.055946201815737,0.0558403665520071,0.0557331438840774,0.0556465029945341,0.05559806105098,0.05559806105098, +0.108811336430069,0.108811336430069,0.108846741548271,0.108769997790219,0.108613100325461,0.10841547956894,0.108217728463064,0.108057956303157,0.107968209713672,0.107968209713672, +0.197365489866316,0.197365489866316,0.197378360986336,0.197217812628217,0.196934881723177,0.196591629023727,0.196251266864853,0.195974881682135,0.195817813153034,0.195817813153034, +0.331777968360545,0.331777968360545,0.331730873712671,0.331432682953961,0.330963207180741,0.33041313599355,0.32987057621339,0.32942363456243,0.329162662120318,0.329162662120318, +0.516358083584113,0.516358083584113,0.516210587168596,0.51570758294249,0.514988563855891,0.514176590516951,0.513376099848096,0.512695559071454,0.512272346809873,0.512272346809873, +0.745044588530058,0.745044588530058,0.744800969168622,0.743996240200666,0.742971840034166,0.741869999511177,0.740778504352291,0.739791924628327,0.739081785247009,0.739081785247009, + +00:17:20, +0.0163068976187675,0.0163068976187675,0.0163304041738365,0.0163272856143401,0.0163048162286476,0.0162718702338626,0.0162374045397369,0.0162093297216343,0.0161936433531813,0.0161936433531813, +0.0163068976187675,0.0163068976187675,0.0163304041738365,0.0163272856143401,0.0163048162286476,0.0162718702338626,0.0162374045397369,0.0162093297216343,0.0161936433531813,0.0161936433531813, +0.02808710735644,0.02808710735644,0.0281160894869777,0.0281052532705301,0.0280656000569507,0.0280106132844288,0.0279540169916948,0.0279081287669202,0.0278825019406593,0.0278825019406593, +0.0561366831207145,0.0561366831207145,0.0561726523627293,0.0561408811317037,0.0560603515347828,0.0559544384961387,0.0558471335259968,0.0557604248087744,0.0557119448758242,0.0557119448758242, +0.108975996560427,0.108975996560427,0.109011379105679,0.108934604031467,0.108777659915122,0.108579978390219,0.108382163149113,0.10822233844159,0.108132562848765,0.108132562848765, +0.197576284965856,0.197576284965856,0.197589096676726,0.197428535507175,0.197145612214397,0.196802369513041,0.196462014945259,0.196185636761802,0.196028573969125,0.196028573969125, +0.332008062764659,0.332008062764659,0.331960902490453,0.33166277012558,0.331193422655499,0.33064350466792,0.330101095208739,0.329654280486333,0.329393385709848,0.329393385709848, +0.516559626828533,0.516559626828533,0.516412120867682,0.515909313082027,0.515190604587434,0.51437898483604,0.513578842997861,0.512898602994982,0.512475582098856,0.512475582098856, +0.745163587432881,0.745163587432881,0.744920069817527,0.744115730620827,0.743091838236748,0.741990545502687,0.740899593070267,0.73991350551039,0.739203720899307,0.739203720899307, + +00:17:21, +0.0163612124711921,0.0163612124711921,0.0163847633527465,0.0163816429225809,0.016359135318366,0.0163261290041221,0.0162915976709364,0.0162634682413258,0.0162477510907125,0.0162477510907125, +0.0163612124711921,0.0163612124711921,0.0163847633527465,0.0163816429225809,0.016359135318366,0.0163261290041221,0.0162915976709364,0.0162634682413258,0.0162477510907125,0.0162477510907125, +0.0281621529514787,0.0281621529514787,0.0281911706106984,0.0281803243174358,0.028140624121511,0.0280855674547064,0.0280288961169845,0.027982945723296,0.0279572839303259,0.0279572839303259, +0.0562509498266536,0.0562509498266536,0.0562869326057108,0.0562551380351109,0.0561745525036483,0.0560685618839919,0.0559611748166733,0.0558743984395407,0.0558258806106105,0.0558258806106105, +0.109140636315364,0.109140636315364,0.109175996254969,0.109099189955743,0.108942199399868,0.10874445740394,0.108546578343772,0.108386701348415,0.108296896896847,0.108296896896847, +0.197786956082485,0.197786956082485,0.197799708442678,0.197639134583519,0.19735621912516,0.197012986732813,0.196672640091239,0.196396269182187,0.196239212277063,0.196239212277063, +0.332237936943102,0.332237936943102,0.332190711188077,0.331892637275143,0.331423418183106,0.330873653528816,0.330331394551456,0.329884706885642,0.329623889835805,0.329623889835805, +0.516760922389024,0.516760922389024,0.516613406987708,0.51611079547344,0.515392397309803,0.51458113089498,0.513781337664195,0.513101398230935,0.51267856854974,0.51267856854974, +0.745282420114863,0.745282420114863,0.74503900412324,0.744235054168249,0.743211668898055,0.742110923264257,0.74102051289063,0.740034916878024,0.739325486573498,0.739325486573498, + +00:17:22, +0.0164156227046342,0.0164156227046342,0.016439217894459,0.0164360956011304,0.0164135498037902,0.0163804832035711,0.0163458862636491,0.0163177022470061,0.0163019543271942,0.0163019543271942, +0.0164156227046342,0.0164156227046342,0.016439217894459,0.0164360956011304,0.0164135498037902,0.0163804832035711,0.0163458862636491,0.0163177022470061,0.0163019543271942,0.0163019543271942, +0.0282372834879641,0.0282372834879641,0.0282663366326612,0.0282554802792477,0.028215733164797,0.0281606066947324,0.0281038604065638,0.0280578479201139,0.0280321512024519,0.0280321512024519, +0.0563652674921524,0.0563652674921524,0.0564012637458952,0.0563694458800173,0.056288804549593,0.056182736542609,0.056075267582926,0.0559884237134797,0.0559398680818947,0.0559398680818947, +0.109305255548118,0.109305255548118,0.109340592849706,0.109263755416526,0.109106718632706,0.108908916462391,0.108710973898552,0.108551044874515,0.108461211708458,0.108461211708458, +0.197997503251596,0.197997503251596,0.198010196319752,0.197849609892545,0.197566702489983,0.197223480716386,0.196883142334857,0.196606778974308,0.196449728107292,0.196449728107292, +0.332467591213339,0.332467591213339,0.332420300122809,0.332122284719645,0.331653194079888,0.331103582891466,0.330561474555529,0.330114914073335,0.329854174810635,0.329854174810635, +0.51696197076587,0.51696197076587,0.516814446028663,0.516312030616944,0.515593942523361,0.514783029193978,0.513983584346992,0.513303945279004,0.512881306662196,0.512881306662196, +0.745401086962994,0.745401086962994,0.745157772473047,0.744354211231437,0.743331332407981,0.742231133187047,0.741141264205694,0.740156159124658,0.739447082663929,0.739447082663929, + +00:17:23, +0.0164701282707794,0.0164701282707794,0.0164937677505255,0.0164906436015456,0.0164680596366086,0.0164349327841196,0.0164002702700405,0.016372031691062,0.0163562530151407,0.0163562530151407, +0.0164701282707794,0.0164701282707794,0.0164937677505255,0.0164906436015456,0.0164680596366086,0.0164349327841196,0.0164002702700405,0.016372031691062,0.0163562530151407,0.0163562530151407, +0.0283124988572647,0.0283124988572647,0.028341587444237,0.0283307210473628,0.0282909270782665,0.028235730896062,0.0281789097521069,0.0281328352491575,0.0281071036488867,0.0281071036488867, +0.0564796359447923,0.0564796359447923,0.0565156456110748,0.0564838044942329,0.0564031075002924,0.0562969622994483,0.0561894116519888,0.0561025004576526,0.0560539071166468,0.0560539071166468, +0.109469854112646,0.109469854112646,0.10950516874417,0.109428300268007,0.109271217467361,0.109073355418572,0.108875349665683,0.108715368871493,0.108625507134855,0.108625507134855, +0.198207926509038,0.198207926509038,0.198220560343958,0.198059961470002,0.197777062343842,0.197433851497564,0.19709352170864,0.196817166169649,0.196660121490724,0.196660121490724, +0.332697025892375,0.332697025892375,0.332649669611456,0.332351712775622,0.331882750661712,0.331333293070647,0.3307913355345,0.330344902361949,0.330084240946344,0.330084240946344, +0.517162772457995,0.517162772457995,0.517015238489176,0.516513019011393,0.515795240727109,0.514984680231883,0.514185583544796,0.513506244637525,0.513083796934545,0.513083796934545, +0.745519588363014,0.745519588363014,0.745276375252982,0.74447320219764,0.74345082915516,0.742351175660957,0.741261847406513,0.740277232642452,0.739568509563679,0.739568509563679, + +00:17:24, +0.0165247291210371,0.0165247291210371,0.0165484128722217,0.0165452868751078,0.016522664768233,0.0164894776974006,0.016454749641998,0.0164264565256012,0.016410647106787,0.016410647106787, +0.0165247291210371,0.0165247291210371,0.0165484128722217,0.0165452868751078,0.016522664768233,0.0164894776974006,0.016454749641998,0.0164264565256012,0.016410647106787,0.016410647106787, +0.028387798950735,0.028387798950735,0.0284169229367826,0.0284060465131646,0.0283662057533631,0.0283109399502349,0.0282540440452715,0.0282079076021933,0.028182141161462,0.028182141161462, +0.0565940550125714,0.0565940550125714,0.0566300780294576,0.0565982137059832,0.0565174611838374,0.0564112389823826,0.0563036068515099,0.0562166284995343,0.0561679975422501,0.0561679975422501, +0.109634431863618,0.109634431863618,0.109669723793354,0.109592824365094,0.109435695758271,0.109237774126202,0.109039705498108,0.108879673191667,0.108789783028014,0.108789783028014, +0.198418225891113,0.198418225891113,0.19843080055176,0.19827018935209,0.197987298722166,0.197644099110605,0.197303778245577,0.197027430800159,0.19687039245874,0.19687039245874, +0.332926241296755,0.332926241296755,0.332878819970361,0.33258092175915,0.332112088243988,0.331562784380681,0.331020977801462,0.33057467206358,0.3303140885545,0.3303140885545, +0.517363327962966,0.517363327962966,0.517215784866517,0.516713761154285,0.515996292418693,0.515186084506193,0.514387335754801,0.513708296803494,0.513286039863765,0.513286039863765, +0.745637924699417,0.745637924699417,0.745394812847834,0.744592027452855,0.743570159526971,0.742471051074628,0.741382262882877,0.740398137822309,0.739689767664562,0.739689767664562, + +00:17:25, +0.0165794252065412,0.0165794252065412,0.0166031532105484,0.0166000253728235,0.0165773651498001,0.0165441178947711,0.0165093243311322,0.016480976702454,0.0164651365540899,0.0164651365540899, +0.0165794252065412,0.0165794252065412,0.0166031532105484,0.0166000253728235,0.0165773651498001,0.0165441178947711,0.0165093243311322,0.016480976702454,0.0164651365540899,0.0164651365540899, +0.0284631836597161,0.0284631836597161,0.0284923430016423,0.0284814565680236,0.0284415690815169,0.0283862337487768,0.0283292631777,0.0282830648709712,0.0282572636319925,0.0282572636319925, +0.0567085245239035,0.0567085245239035,0.0567445608296674,0.0567126733439092,0.056631865428734,0.0565255664196997,0.0564178530095514,0.0563308076670125,0.0562821391865004,0.0562821391865004, +0.109798988656417,0.109798988656417,0.109834257852963,0.109757327563402,0.109600153360584,0.109402172439711,0.109204041249489,0.109043957688072,0.108954039240628,0.108954039240628, +0.198628401434572,0.198628401434572,0.198640916980068,0.198480293575459,0.198197411660834,0.197854223590225,0.197513911979116,0.19723757289825,0.197080541043183,0.197080541043183, +0.333155237742559,0.333155237742559,0.333107751515408,0.332809911985843,0.332341207141668,0.331792057135441,0.331250401669067,0.330804223489881,0.330543717946233,0.330543717946233, +0.517563637776998,0.517563637776998,0.517416085656608,0.516914257541767,0.516197098094411,0.515387242513056,0.514588841472857,0.513910102272559,0.513488035945492,0.513488035945492, +0.745756096355458,0.745756096355458,0.745513085641149,0.744710687381837,0.743689323909547,0.742590759815452,0.741502511023325,0.740518875053874,0.739810857357136,0.739810857357136, + +00:17:26, +0.0166342164781518,0.0166342164781518,0.0166579887162333,0.016654859045426,0.0166321607321729,0.0165988533273133,0.0165639942887781,0.0165355921731741,0.0165197213087293,0.0165197213087293, +0.0166342164781518,0.0166342164781518,0.0166579887162333,0.016654859045426,0.0166321607321729,0.0165988533273133,0.0165639942887781,0.0165355921731741,0.0165197213087293,0.0165197213087293, +0.028538652875537,0.028538652875537,0.0285678475301482,0.028556951103298,0.0285170169541453,0.0284616121831995,0.0284045670410198,0.0283583069472257,0.0283324709522767,0.0283324709522767, +0.0568230443076177,0.0568230443076177,0.0568590938407426,0.0568271832370664,0.0567463200639024,0.0566399444401008,0.0565321499545883,0.0564450377883879,0.0563963318776057,0.0563963318776057, +0.109963524347135,0.109963524347135,0.109998770779409,0.109921809719257,0.109764590130159,0.109566550214239,0.109368356774194,0.109208222214453,0.109118275626098,0.109118275626098, +0.198838453176612,0.198838453176612,0.198850909666239,0.198690274177203,0.198407401196174,0.198064224971591,0.19772392294316,0.197447592496791,0.197290567276356,0.197290567276356, +0.333384015545412,0.333384015545412,0.333336464562019,0.333038683770857,0.332570107669249,0.332021111648347,0.331479607449516,0.331033556952065,0.33077312943223,0.33077312943223, +0.517763702394961,0.517763702394961,0.517616141354025,0.517114508668636,0.516397658249211,0.515588154747277,0.514790101193473,0.514111661539037,0.513689785674026,0.513689785674026, +0.745874103713159,0.745874103713159,0.745631194015241,0.744829182368099,0.743808322687776,0.742710302269573,0.741622592215149,0.740639444725539,0.739931779030703,0.739931779030703, + +00:17:27, +0.0166891028864558,0.0166891028864558,0.0167129193397315,0.0167097878433762,0.0166870514659416,0.016653683945836,0.0166187594659959,0.0165903028890399,0.0165744013221095,0.0165744013221095, +0.0166891028864558,0.0166891028864558,0.0167129193397315,0.0167097878433762,0.0166870514659416,0.016653683945836,0.0166187594659959,0.0165903028890399,0.0165744013221095,0.0165744013221095, +0.0286142064895148,0.0286142064895148,0.0286434364136214,0.0286325300103347,0.0285925492626536,0.028537075145002,0.0284799555268446,0.028433633722676,0.0284077630140977,0.0284077630140977, +0.0569376141929577,0.0569376141929577,0.056973676892136,0.0569417432149243,0.0568608249186765,0.0567543728727004,0.0566464975155085,0.0565593186923725,0.0565105754441856,0.0565105754441856, +0.11012803879257,0.11012803879257,0.11016326242981,0.110086270689688,0.10992900592356,0.109730907305632,0.109532651927302,0.109372466625266,0.109282492038539,0.109282492038539, +0.199048381154876,0.199048381154876,0.199060778648071,0.198900131194859,0.198617267364957,0.198274103290317,0.197933811172064,0.197657489629109,0.197500471191021,0.197500471191021, +0.333612575020473,0.333612575020473,0.333564959425156,0.333267237428885,0.33279879014077,0.332249948232367,0.331708595454568,0.331262672760902,0.331002323322744,0.331002323322744, +0.517963522310379,0.517963522310379,0.517815952452,0.517314515028351,0.516597973376702,0.515788821702324,0.514991115409825,0.514312975095907,0.513891289542337,0.513891289542337, +0.745991947153309,0.745991947153309,0.745749138351189,0.74494751279392,0.743927156245306,0.742829678821894,0.741742506844395,0.740759847224454,0.74005253307332,0.74005253307332, + +00:17:28, +0.0167440843817688,0.0167440843817688,0.0167679450312274,0.0167648117168641,0.016742037301425,0.0167086097008755,0.0166736198135729,0.0166451088010558,0.0166291765453601,0.0166291765453601, +0.0167440843817688,0.0167440843817688,0.0167679450312274,0.0167648117168641,0.016742037301425,0.0167086097008755,0.0166736198135729,0.0166451088010558,0.0166291765453601,0.0166291765453601, +0.0286898443929557,0.0286898443929557,0.0287191095433719,0.0287081931804702,0.028668165898436,0.028612622525671,0.0285554285267748,0.0285090450890276,0.0284831397092237,0.0284831397092237, +0.0570522340095813,0.0570522340095813,0.0570883098137141,0.0570563531073659,0.0569753798228033,0.0568688515470255,0.0567608955216114,0.0566736502080902,0.0566248697152706,0.0566248697152706, +0.110292531850227,0.110292531850227,0.110327732661988,0.110250710332427,0.110093400598054,0.109895243570444,0.109696926564598,0.109536690775672,0.109446688332769,0.109446688332769, +0.199258185407446,0.199258185407446,0.199270523963801,0.199109864666404,0.198827010204399,0.198483858582466,0.198143576700636,0.197867264328981,0.197710252820393,0.197710252820393, +0.333840916482446,0.333840916482446,0.33379323641932,0.333495573274164,0.333027254869813,0.332478567200018,0.331937365995532,0.331491571226722,0.331231299927585,0.331231299927585, +0.51816309801544,0.51816309801544,0.518015519442428,0.517514277113031,0.516798043969155,0.515989243870329,0.515191884613756,0.514514043434825,0.514092548042067,0.514092548042067, +0.746109627055476,0.746109627055476,0.74586691902885,0.745065679040351,0.744045824964555,0.742948889856083,0.741862255295871,0.740880082936525,0.740173119871798,0.740173119871798, + +00:17:29, +0.0167991609141356,0.0167991609141356,0.0168230657406352,0.0168199306158098,0.0167971181886712,0.0167636305426971,0.0167285752820241,0.0167000098599532,0.0166840469293376,0.0166840469293376, +0.0167991609141356,0.0167991609141356,0.0168230657406352,0.0168199306158098,0.0167971181886712,0.0167636305426971,0.0167285752820241,0.0167000098599532,0.0166840469293376,0.0166840469293376, +0.028765566477156,0.028765566477156,0.0287948668107004,0.0287839405050308,0.0287438667528763,0.0286882542166822,0.0286309859323982,0.0285845409379722,0.0285586009294093,0.0285586009294093, +0.0571669035875595,0.0571669035875595,0.0572029924357562,0.0571710127446866,0.0570899846064421,0.0569833802930151,0.056875343802608,0.0567880321650752,0.0567392145203014,0.0567392145203014, +0.110457003378311,0.110457003378311,0.110492181334463,0.110415128505909,0.110257774011609,0.110059558865928,0.109861180542569,0.109700894521536,0.109610864364313,0.109610864364313, +0.199467865972841,0.199467865972841,0.199480145652103,0.19931947463025,0.199036629752153,0.198693490884539,0.198353219564126,0.198076916630637,0.19791991219814,0.19791991219814, +0.33406904024557,0.33406904024557,0.33402129585855,0.333723691620469,0.333255502169503,0.332706968863364,0.332165919383274,0.331720252659413,0.331460059556126,0.331460059556126, +0.518362430001,0.518362430001,0.518214842815872,0.517713795413461,0.51699787051751,0.516189421742096,0.515392409295784,0.51471486704612,0.514293561663535,0.514293561663535, +0.746227143798007,0.746227143798007,0.745984536426858,0.745183681487216,0.744164329226711,0.743067935754577,0.741981837953154,0.741000152246427,0.740293539811712,0.740293539811712, + +00:17:30, +0.0168543324333321,0.0168543324333321,0.0168782814176007,0.0168751444898648,0.0168522940774598,0.016818746421296,0.0167836258215937,0.0167550060161922,0.0167390124246263,0.0167390124246263, +0.0168543324333321,0.0168543324333321,0.0168782814176007,0.0168751444898648,0.0168522940774598,0.016818746421296,0.0167836258215937,0.0167550060161922,0.0167390124246263,0.0167390124246263, +0.0288413726334022,0.0288413726334022,0.0288707081068982,0.0288597718753337,0.0288196517173487,0.0287639701095003,0.0287066276352912,0.0286601211611891,0.0286341465663958,0.0286341465663958, +0.0572816227573762,0.0572816227573762,0.057317724588954,0.0572857219575942,0.0572046391001641,0.0570979589410196,0.0569898421886198,0.0569024643932719,0.0568536096891286,0.0568536096891286, +0.110621453235726,0.110621453235726,0.110656608306456,0.110579525069263,0.110422126022893,0.110223853050038,0.110025413718405,0.109865077719428,0.109775019989399,0.109775019989399, +0.199677422890015,0.199677422890015,0.199689643752082,0.199528961125244,0.199246126046307,0.19890300023348,0.198562739798232,0.198286446568753,0.198129449358379,0.198129449358379, +0.334296946623627,0.334296946623627,0.334249138056427,0.333951592781114,0.333483532352509,0.332935153534021,0.332394255928214,0.331948717368422,0.331688602517299,0.331688602517299, +0.518561518756583,0.518561518756583,0.518413923061567,0.517913070419098,0.517197453511377,0.516389355807103,0.515592689945106,0.514915446418803,0.514494330895743,0.514494330895743, +0.746344497758035,0.746344497758035,0.746101990922633,0.745301520513123,0.744282669411739,0.743186816898585,0.742101255198591,0.741120055537599,0.740413793277404,0.740413793277404, + +00:17:31, +0.0169095988888658,0.0169095988888658,0.0169335920115022,0.0169304532884133,0.016907564917302,0.0168739572863989,0.0168387713822561,0.0168100972199619,0.0167940729815394,0.0167940729815394, +0.0169095988888658,0.0169095988888658,0.0169335920115022,0.0169304532884133,0.016907564917302,0.0168739572863989,0.0168387713822561,0.0168100972199619,0.0167940729815394,0.0167940729815394, +0.0289172627529724,0.0289172627529724,0.0289466333232484,0.0289356871826877,0.028895520683218,0.0288397700955802,0.028782353527019,0.0287357856503458,0.0287097765119121,0.0287097765119121, +0.0573963913499272,0.0573963913499272,0.057432506104411,0.0574004805772079,0.0573193431349515,0.0572125873217998,0.0571043905101786,0.0570169467230341,0.0569680550520116,0.0569680550520116, +0.110785881282073,0.110785881282073,0.110821013437881,0.110743899882317,0.110586456491268,0.110388125981426,0.110189625949991,0.110029240226613,0.109939155064952,0.109939155064952, +0.199886856198356,0.199886856198356,0.199899018303277,0.199738324190664,0.199455499125385,0.199112386666671,0.198772137439091,0.198495854178447,0.198338864335671,0.198338864335671, +0.334524635929937,0.334524635929937,0.334476763326071,0.334179277068956,0.333711345731043,0.333163121523149,0.332622375940324,0.332176965662754,0.331916929119601,0.331916929119601, +0.518760364770391,0.518760364770391,0.518612760667424,0.518112102618076,0.517396793439043,0.516589046553506,0.5157927270496,0.515115782040571,0.51469485622638,0.51469485622638, +0.746461689311484,0.746461689311484,0.746219282892386,0.745419196495463,0.744400845898386,0.743305533668097,0.742220507413307,0.74123979319226,0.740533880651989,0.740533880651989, + +00:17:32, +0.0169649602299775,0.0169649602299775,0.0169889974714516,0.0169858569605731,0.0169629306574425,0.0169292630874647,0.0168940119137174,0.0168652834211825,0.0168492285501206,0.0168492285501206, +0.0169649602299775,0.0169649602299775,0.0169889974714516,0.0169858569605731,0.0169629306574425,0.0169292630874647,0.0168940119137174,0.0168652834211825,0.0168492285501206,0.0168492285501206, +0.0289932367271367,0.0289932367271367,0.0290226423510266,0.0290116863183939,0.0289714735418413,0.0289156540663679,0.0288581634991367,0.0288115342970985,0.0287854906576754,0.0287854906576754, +0.0575112091965201,0.0575112091965201,0.0575473368136417,0.0575152884350575,0.0574340965421974,0.0573272652665269,0.0572189885982253,0.0571314789851245,0.0570825504396186,0.0570825504396186, +0.110950287377649,0.110950287377649,0.110985396589346,0.110908252805587,0.110750765276792,0.110552377519436,0.110353817095912,0.110193381901055,0.110103269448597,0.110103269448597, +0.200096165937679,0.200096165937679,0.200108269345653,0.199947563866215,0.199664749028338,0.199321650221925,0.198981412523277,0.198705139495281,0.198548157165021,0.198548157165021, +0.334752108477361,0.334752108477361,0.334704171980141,0.334406744796391,0.333938942616862,0.333390873141459,0.332850279729133,0.332404997850974,0.332145039671086,0.332145039671086, +0.518958968529304,0.518958968529304,0.518811356120034,0.518310892497208,0.517595890787479,0.516788494468148,0.515992521095834,0.51531587439781,0.514895138141826,0.514895138141826, +0.746578718833075,0.746578718833075,0.746336412711119,0.745536709810418,0.744518859064186,0.743424086441889,0.74233959497721,0.741359365591406,0.740653802317359,0.740653802317359, + +00:17:33, +0.0170204164056422,0.0170204164056422,0.0170444977462957,0.0170413554551968,0.0170183912468605,0.016984663773686,0.0169493473654163,0.016920564569506,0.0169044790801452,0.0169044790801452, +0.0170204164056422,0.0170204164056422,0.0170444977462957,0.0170413554551968,0.0170183912468605,0.016984663773686,0.0169493473654163,0.016920564569506,0.0169044790801452,0.0169044790801452, +0.029069294447158,0.029069294447158,0.0290987350815014,0.0290877691737466,0.0290475101845679,0.0289916219133006,0.0289340574431899,0.0288873669930931,0.028861288895392,0.028861288895392, +0.0576260761288731,0.0576260761288731,0.057662216548571,0.0576301453630833,0.0575488991537043,0.0574419926067814,0.0573336362841099,0.057246061010714,0.0571970956830254,0.0571970956830254, +0.111114671383439,0.111114671383439,0.111149757622149,0.111072583700285,0.110915052240211,0.110716607524107,0.110517987015443,0.110357502601411,0.11026736299865,0.11026736299865, +0.200305352148226,0.200305352148226,0.200317396919599,0.200156680192029,0.199873875794549,0.199530790937488,0.199190565087802,0.198914302555255,0.198757327881874,0.198757327881874, +0.3349793645783,0.3349793645783,0.334931364330835,0.334633996275358,0.334166323321266,0.333618408699212,0.333077967603723,0.332632814241203,0.33237293447937,0.33237293447937, +0.51915733051889,0.51915733051889,0.519009709904675,0.518509440541991,0.517794746042338,0.516987700036558,0.516192072569065,0.515515723975601,0.515095177127155,0.515095177127155, +0.746695586696327,0.746695586696327,0.746453380752636,0.745654060832968,0.744636709285465,0.743542475597523,0.742458518268993,0.741478773114819,0.740773558654189,0.740773558654189, + +00:17:34, +0.0170759673645706,0.0170759673645706,0.0171000927846177,0.0170969487208736,0.0170739466342706,0.0170401592939904,0.0170047776865252,0.0169759406143175,0.0169598245211207,0.0169598245211207, +0.0170759673645706,0.0170759673645706,0.0171000927846177,0.0170969487208736,0.0170739466342706,0.0170401592939904,0.0170047776865252,0.0169759406143175,0.0169598245211207,0.0169598245211207, +0.0291454358042926,0.0291454358042926,0.0291749114059352,0.0291639356400337,0.0291236305027404,0.0290676735278082,0.0290100352507155,0.0289632836299659,0.0289371711167582,0.0289371711167582, +0.0577409919791146,0.0577409919791146,0.0577771451415337,0.057745051193635,0.0576637508016843,0.0575567691745525,0.0574483333995905,0.0573606926313812,0.0573116906137153,0.0573116906137153, +0.111279033161121,0.111279033161121,0.111314096398275,0.111236892428305,0.111079317242961,0.110880815856166,0.11068213556855,0.110521602187031,0.110431435574123,0.110431435574123, +0.200514414870662,0.200514414870662,0.200526401065927,0.200365673208658,0.20008287946382,0.199739808852035,0.199399595170108,0.199123343394802,0.198966376522112,0.198966376522112, +0.335206404544696,0.335206404544696,0.335158340689895,0.334861031817333,0.334393488155098,0.333845728506215,0.33330543987273,0.332860415141126,0.332600613851634,0.332600613851634, +0.519355451223403,0.519355451223403,0.519207822505314,0.518707747236614,0.517993359687966,0.517186663742957,0.516391381953247,0.515715331257724,0.515294973666141,0.515294973666141, +0.746812293273567,0.746812293273567,0.746570187389547,0.745771249936891,0.744754396937346,0.743660701511357,0.742577277666142,0.741598016141069,0.740893150041941,0.740893150041941, + +00:17:35, +0.0171316130552098,0.0171316130552098,0.0171557825347377,0.0171526367059295,0.0171295967681245,0.0170957495970413,0.017060302825952,0.0170314115047364,0.0170152648222889,0.0170152648222889, +0.0171316130552098,0.0171316130552098,0.0171557825347377,0.0171526367059295,0.0171295967681245,0.0170957495970413,0.017060302825952,0.0170314115047364,0.0170152648222889,0.0170152648222889, +0.0292216606897913,0.0292216606897913,0.0292511712155853,0.0292401856085376,0.0291998343876953,0.0291438088013133,0.0290860968132424,0.0290392840993441,0.0290131372134606,0.0290131372134606, +0.0578559565797825,0.0578559565797825,0.0578921224252737,0.0578600057594712,0.0577786513187581,0.0576715948022376,0.0575630797768327,0.0574753736791117,0.0574263350635781,0.0574263350635781, +0.111443372573057,0.111443372573057,0.111478412780397,0.111401178852229,0.111243560147164,0.111045002377027,0.11084626261589,0.110685680517954,0.110595487034714,0.110595487034714, +0.200723354146074,0.200723354146074,0.200735281825867,0.200574542957075,0.20029176007638,0.199948704004663,0.199608502808067,0.199332262050791,0.199175303122052,0.199175303122052, +0.335433228688032,0.335433228688032,0.335385101368599,0.335087851733338,0.334620437428745,0.334072832871827,0.333532696844345,0.333087800857981,0.332828078094615,0.332828078094615, +0.519553331125792,0.519553331125792,0.519405694404611,0.518905813063958,0.518191732207401,0.517385386070266,0.516590449731035,0.51591469672666,0.515494528241263,0.515494528241263, +0.746928838935932,0.746928838935932,0.746686832993268,0.745888277494774,0.744871922393756,0.743778764558548,0.742695873544942,0.741717095047523,0.741012576858869,0.741012576858869, + +00:17:36, +0.0171873534257449,0.0171873534257449,0.0172115669447145,0.0172084193584293,0.0171853415966118,0.0171514346312393,0.0171159227323404,0.0170869771896174,0.0170707999326263,0.0170707999326263, +0.0171873534257449,0.0171873534257449,0.0172115669447145,0.0172084193584293,0.0171853415966118,0.0171514346312393,0.0171159227323404,0.0170869771896174,0.0170707999326263,0.0170707999326263, +0.0292979689948995,0.0292979689948995,0.0293275144017038,0.029316518970536,0.0292761217307638,0.0292200276252326,0.0291622420222921,0.0291153682928469,0.0290891870771773,0.0290891870771773, +0.0579709697638237,0.0579709697638237,0.0580071482329434,0.0579750088937586,0.0578936005379541,0.0577864693226418,0.0576778752484093,0.0575901039862972,0.0575410288649096,0.0575410288649096, +0.111607689482295,0.111607689482295,0.111642706631867,0.111565442835323,0.111407780815624,0.11120916694879,0.111010368018802,0.110849737454903,0.11075951724081,0.11075951724081, +0.200932170015963,0.200932170015963,0.200944039241067,0.200783289478668,0.200500517672874,0.200157476434897,0.199817288039978,0.199541058560517,0.19938410771844,0.19938410771844, +0.335659837319329,0.335659837319329,0.335611646677769,0.335314456333933,0.334847171452142,0.334299722104954,0.333759738826315,0.333314971698571,0.333055327514615,0.333055327514615, +0.519750970707703,0.519750970707703,0.519603326083926,0.519103638505602,0.518389864082381,0.517583867500106,0.516789276383789,0.5161138208636,0.515693841333709,0.515693841333709, +0.747045224053375,0.747045224053375,0.746803317934033,0.74600514387801,0.744989286027425,0.743896665113058,0.742814306280478,0.741836010210347,0.741131839482026,0.741131839482026, + +00:17:37, +0.0172431884241002,0.0172431884241002,0.0172674459623466,0.0172642966261775,0.0172411810676613,0.0172072143447235,0.0171716373540718,0.0171426376175522,0.0171264298008457,0.0171264298008457, +0.0172431884241002,0.0172431884241002,0.0172674459623466,0.0172642966261775,0.0172411810676613,0.0172072143447235,0.0171716373540718,0.0171426376175522,0.0171264298008457,0.0171264298008457, +0.0293743606108587,0.0293743606108587,0.0294039408555394,0.0293929356173024,0.0293524924232725,0.029296329890977,0.0292384707693798,0.029191536102086,0.0291653205995783,0.0291653205995783, +0.0580860313645934,0.0580860313645934,0.0581222223981031,0.0580900604300718,0.0580085982927083,0.0579013925689769,0.057792719647299,0.0577048833857355,0.057655771850411,0.057655771850411, +0.111771983752562,0.111771983752562,0.111806977816721,0.111729684241529,0.111571979111828,0.111373309434236,0.111174451639312,0.111013772859288,0.110923526053482,0.110923526053482, +0.20114086252225,0.20114086252225,0.201152673353586,0.200991912815242,0.200709152294364,0.200366126182677,0.200025950904564,0.199749732961706,0.199592790348453,0.199592790348453, +0.335886230749153,0.335886230749153,0.335837976927766,0.33554084592922,0.335073690534763,0.334526396514053,0.333986566125941,0.333541927969254,0.333282362417497,0.333282362417497, +0.519948370449486,0.519948370449486,0.519800718023323,0.519301224041827,0.518587755793349,0.517782108512802,0.516987862391577,0.516312704148445,0.515892913423377,0.515892913423377, +0.747161448994668,0.747161448994668,0.746919642580891,0.746121849456812,0.745106488209898,0.744014403547657,0.742932576246642,0.741954762004511,0.741250938287266,0.741250938287266, + +00:17:38, +0.0172991179979401,0.0172991179979401,0.0173234195351731,0.0173202684567192,0.0172971151289423,0.0172630886853725,0.0172274466392662,0.0171983927368699,0.0171821543753975,0.0171821543753975, +0.0172991179979401,0.0172991179979401,0.0173234195351731,0.0173202684567192,0.0172971151289423,0.0172630886853725,0.0172274466392662,0.0171983927368699,0.0171821543753975,0.0171821543753975, +0.0294508354289065,0.0294508354289065,0.029480450468337,0.0294694354401071,0.0294289463565442,0.0293727154899528,0.0293147829460145,0.0292677874186664,0.0292415376723265,0.0292415376723265, +0.0582011412158543,0.0582011412158543,0.0582373447547202,0.0582051602023922,0.0581236444168633,0.0580163643748609,0.0579076128068865,0.0578197117106292,0.0577705638531884,0.0577705638531884, +0.111936255248268,0.111936255248268,0.11197122619967,0.111893902935472,0.11173615489994,0.111537429696825,0.111338513340123,0.1111777865932,0.111087513334485,0.111087513334485, +0.201349431707265,0.201349431707265,0.201361184205897,0.20120041300901,0.200917663982325,0.200574653288363,0.200234491440968,0.199958285292505,0.199801351049693,0.199801351049693, +0.336112409287608,0.336112409287608,0.336064092428491,0.335767020828843,0.33529999498563,0.33475285640713,0.334213179050078,0.333768669975948,0.333509183108684,0.333509183108684, +0.520145530830197,0.520145530830197,0.519997870701571,0.519498570151624,0.518785407819453,0.517980109587394,0.517186208233182,0.516511347059813,0.516091744988886,0.516091744988886, +0.747277514127409,0.747277514127409,0.74703580730172,0.746238394600211,0.745223529311535,0.744131980233929,0.743050683816138,0.742073350803795,0.74136987364925,0.74136987364925, + +00:17:39, +0.0173551420946702,0.0173551420946702,0.0173794876104753,0.0173763347973418,0.0173531437278656,0.0173190576008055,0.0172833505357834,0.0172542424956391,0.0172379736044704,0.0172379736044704, +0.0173551420946702,0.0173551420946702,0.0173794876104753,0.0173763347973418,0.0173531437278656,0.0173190576008055,0.0172833505357834,0.0172542424956391,0.0172379736044704,0.0172379736044704, +0.0295273933402777,0.0295273933402777,0.0295570431313393,0.0295460183302175,0.0295054834218983,0.0294491843135622,0.0293911784437005,0.0293441221341869,0.029317838187078,0.029317838187078, +0.0583162991517761,0.0583162991517761,0.0583525151371689,0.0583203080451074,0.0582387387446676,0.0581313845743176,0.0580225545609613,0.0579345887945857,0.0578854047067517,0.0578854047067517, +0.112100503834496,0.112100503834496,0.112135451646102,0.112058098782447,0.1119003080448,0.111701527600696,0.11150255298462,0.111341778519409,0.11125147894625,0.11125147894625, +0.201557877613747,0.201557877613747,0.201569571840878,0.201408790102594,0.201126052778643,0.200783057792728,0.200442909688752,0.200166715591483,0.200009789860185,0.200009789860185, +0.336338373244341,0.336338373244341,0.336289993489388,0.335992981341988,0.33552608511331,0.334979102091739,0.334439577905136,0.333995198024132,0.333735789893162,0.333735789893162, +0.520342452327602,0.520342452327602,0.520194784596153,0.519695677312692,0.518982820638554,0.518177871201633,0.517384314386104,0.516709750075043,0.516290336507574,0.516290336507574, +0.747393419818027,0.747393419818027,0.747151812463224,0.746354779676063,0.745340409701519,0.744249395542277,0.743168629360488,0.742191776980794,0.741488645941454,0.741488645941454, + +00:17:40, +0.0174112606614391,0.0174112606614391,0.0174356501352776,0.0174324955950759,0.0174092668115845,0.0173751210383839,0.017339348991224,0.0173101868416681,0.0172938874359929,0.0172938874359929, +0.0174112606614391,0.0174112606614391,0.0174356501352776,0.0174324955950759,0.0174092668115845,0.0173751210383839,0.017339348991224,0.0173101868416681,0.0172938874359929,0.0172938874359929, +0.0296040342362048,0.0296040342362048,0.0296337187357869,0.0296226841788993,0.0295821035106517,0.0295257362532038,0.0294676571539373,0.0294205401402413,0.0293942220354833,0.0293942220354833, +0.0584315050069349,0.0584315050069349,0.0584677333802289,0.0584355037930109,0.0583538811107752,0.0582464530017756,0.0581375447437176,0.0580495144716158,0.0580002942450147,0.0580002942450147, +0.112264729377006,0.112264729377006,0.112299654022078,0.112222271648425,0.112064438411921,0.11186560301066,0.111666570436862,0.111505748501362,0.111415422751889,0.111415422751889, +0.201766200284844,0.201766200284844,0.201777836301815,0.201617044139023,0.201334318725613,0.200991339736958,0.200651205687893,0.200375023897628,0.200218106818373,0.200218106818373, +0.336564122928539,0.336564122928539,0.336515680419442,0.336218727777383,0.335751961225914,0.335205133874987,0.334665762997083,0.334221512418844,0.333962183075479,0.333962183075479, +0.520539135418184,0.520539135418184,0.520391460183266,0.519892546001447,0.519179994727232,0.51837539383199,0.517582181326567,0.516907913670198,0.516488688455506,0.516488688455506, +0.747509166431784,0.747509166431784,0.747267658430941,0.746471005051056,0.745457129747857,0.74436664984193,0.743286413250034,0.742310040906921,0.741607255536168,0.741607255536168, + +00:17:41, +0.0174674736451389,0.0174674736451389,0.0174919070563488,0.0174887507966962,0.0174654843269966,0.0174312789452119,0.017395441952931,0.0173662257225068,0.0173498958176345,0.0173498958176345, +0.0174674736451389,0.0174674736451389,0.0174919070563488,0.0174887507966962,0.0174654843269966,0.0174312789452119,0.017395441952931,0.0173662257225068,0.0173498958176345,0.0173498958176345, +0.0296807580079191,0.0296807580079191,0.0297104771729193,0.0296994328774167,0.0296588065141198,0.0296023712002738,0.0295442189682209,0.0294970413284184,0.0294706891091878,0.0294706891091878, +0.0585467586163121,0.0585467586163121,0.0585829993190855,0.0585507472813009,0.0584690713502448,0.0583615694920678,0.0582525831897529,0.0581644885761339,0.0581152323022939,0.0581152323022939, +0.112428931742228,0.112428931742228,0.112463833194328,0.112386421400046,0.112228545867489,0.112029655792203,0.111830565561581,0.11166969640318,0.111579344615185,0.111579344615185, +0.201974399764105,0.201974399764105,0.201985977632392,0.201825175161728,0.201542461865934,0.201199499162646,0.200859379478782,0.200583210250344,0.200426301963121,0.200426301963121, +0.336789658648933,0.336789658648933,0.336741153527178,0.336444260443298,0.335977623631096,0.335430952063528,0.334891734631439,0.334447613464681,0.334188362959745,0.334188362959745, +0.520735580577146,0.520735580577146,0.520587897937831,0.520089176693025,0.519376930560784,0.518572677953659,0.51777980952952,0.517105838320069,0.516686801307475,0.516686801307475, +0.747624754332784,0.747624754332784,0.747383345569249,0.74658707109071,0.74557368981739,0.744483743500941,0.743404035853946,0.742428142952414,0.741725702804505,0.741725702804505, + +00:17:42, +0.0175237809924065,0.0175237809924065,0.0175482583202031,0.0175451003487232,0.0175217962207442,0.017487531268138,0.0174516293679905,0.0174223590854478,0.0174059986968067,0.0174059986968067, +0.0175237809924065,0.0175237809924065,0.0175482583202031,0.0175451003487232,0.0175217962207442,0.017487531268138,0.0174516293679905,0.0174223590854478,0.0174059986968067,0.0174059986968067, +0.0297575645466508,0.0297575645466508,0.0297873183339757,0.0297762643170336,0.0297355923236166,0.0296790890461663,0.0296208637780444,0.0295736255903035,0.0295472392998323,0.0295472392998323, +0.0586620598152945,0.0586620598152945,0.0586983127893283,0.0586660383455801,0.0585843092985392,0.0584767338804308,0.0583676697340682,0.0582795109429569,0.0582302187133079,0.0582302187133079, +0.112593110797261,0.112593110797261,0.112627989030251,0.112550547904619,0.112392630278357,0.11219368581148,0.111994538224181,0.111833622089655,0.111743244400596,0.111743244400596, +0.202182476095484,0.202182476095484,0.202193995876699,0.20203318321454,0.201750482242706,0.201407536111791,0.201067431102217,0.200791274689448,0.200634375333706,0.200634375333706, +0.337014980713793,0.337014980713793,0.336966413120665,0.336669579647547,0.33620307263606,0.335656556963569,0.335117493113282,0.3346735014658,0.334414329849631,0.334414329849631, +0.520931788278415,0.520931788278415,0.520784098333491,0.520285569861288,0.519573628613235,0.518769724040563,0.517977199468642,0.517303524498182,0.51688467553701,0.51688467553701, +0.747740183883974,0.747740183883974,0.747498874241367,0.746702978159388,0.745690090275794,0.744600676886201,0.743521497540223,0.742546083486341,0.741843988116404,0.741843988116404, + +00:17:43, +0.0175801826496253,0.0175801826496253,0.0176047038731015,0.0176015441974242,0.0175782024392161,0.0175438779537562,0.0175079111832332,0.017478586877527,0.0174621960206644,0.0174621960206644, +0.0175801826496253,0.0175801826496253,0.0176047038731015,0.0176015441974242,0.0175782024392161,0.0175438779537562,0.0175079111832332,0.017478586877527,0.0174621960206644,0.0174621960206644, +0.0298344537436301,0.0298344537436301,0.0298642421101951,0.0298531783890137,0.0298124608304559,0.0297558896822741,0.0296975914748984,0.0296502928174786,0.0296238724990542,0.0296238724990542, +0.0587774084396729,0.0587774084396729,0.0588136736269512,0.0587813768218548,0.0586995947915245,0.0585919460025043,0.0584828042120667,0.0583945814073034,0.0583452533131771,0.0583452533131771, +0.112757266409873,0.112757266409873,0.112792121397913,0.112714651030117,0.112556691512044,0.112357692935312,0.112158488290734,0.111997525426251,0.11190712197325,0.11190712197325, +0.202390429323329,0.202390429323329,0.202401891079218,0.202241068341687,0.201958379899432,0.201615450626798,0.201275360599407,0.200999217255166,0.200842326969816,0.200842326969816, +0.337240089430933,0.337240089430933,0.337191459507511,0.336894685697483,0.336428308547552,0.335881948880863,0.335343038747244,0.334899176725918,0.33464008404837,0.33464008404837, +0.521127758994645,0.521127758994645,0.520980061842619,0.520481725978824,0.519770089357338,0.518966532565356,0.518174351616349,0.517500972676799,0.517082311616379,0.517082311616379, +0.747855455447149,0.747855455447149,0.747614244809365,0.746818726620295,0.745806331487585,0.744717450363435,0.743638798675702,0.742663862876601,0.741962111840637,0.741962111840637, + +00:17:44, +0.0176366785629256,0.0176366785629256,0.0176612436610528,0.017658082288814,0.0176347029285484,0.0176003189484071,0.0175642873452354,0.0175349090455255,0.0175184877361067,0.0175184877361067, +0.0176366785629256,0.0176366785629256,0.0176612436610528,0.017658082288814,0.0176347029285484,0.0176003189484071,0.0175642873452354,0.0175349090455255,0.0175184877361067,0.0175184877361067, +0.0299114254900878,0.0299114254900878,0.0299412483928178,0.0299301749846217,0.0298894119259515,0.0298327729999894,0.0297744019502718,0.0297270429015229,0.0297005885984876,0.0297005885984876, +0.0588928043256421,0.0588928043256421,0.058929081668351,0.0588967625465345,0.0588149276654696,0.0587072056943302,0.0585979864595536,0.0585096998047936,0.0584603359374228,0.0584603359374228, +0.112921398448494,0.112921398448494,0.112956230166039,0.112878730645176,0.112720729436734,0.112521677031186,0.112322415627978,0.112161406279096,0.11207097719894,0.11207097719894, +0.202598259492386,0.202598259492386,0.202609663284827,0.202448830587793,0.202166154880009,0.20182324275047,0.201483168011962,0.201207037988132,0.20105015691155,0.20105015691155, +0.33746498510771,0.33746498510771,0.337416292994869,0.337119578900005,0.336653331671865,0.336107128120719,0.335568371837513,0.335124639548312,0.33486562585876,0.33486562585876, +0.521323493197226,0.521323493197226,0.521175788936321,0.520677645516956,0.51996631326458,0.519163103999428,0.518371266443796,0.517698183326926,0.517279710016593,0.517279710016593, +0.747970569382961,0.747970569382961,0.747729457634163,0.746934316835486,0.745922413816124,0.744834064297214,0.743755939626059,0.742781481489934,0.742080074344811,0.742080074344811, + +00:17:45, +0.0176932686781862,0.0176932686781862,0.017717877629815,0.0177147145686567,0.0176912976346257,0.0176568541981789,0.0176207578003203,0.0175913255359704,0.0175748737897786,0.0175748737897786, +0.0176932686781862,0.0176932686781862,0.017717877629815,0.0177147145686567,0.0176912976346257,0.0176568541981789,0.0176207578003203,0.0175913255359704,0.0175748737897786,0.0175748737897786, +0.0299884796772559,0.0299884796772559,0.0300183370730854,0.0300072539951238,0.0299664455014184,0.0299097388907044,0.0298512950956529,0.0298038757340143,0.0297773874897644,0.0297773874897644, +0.0590082473097996,0.0590082473097996,0.0590445367503272,0.0590121953564307,0.0589303077570455,0.058822512792352,0.0587132163127351,0.058624865971448,0.0585754664219666,0.0585754664219666, +0.113085506782218,0.113085506782218,0.113120315204019,0.113042786619093,0.11288474392127,0.112685637967251,0.112486320103315,0.112325264514984,0.112234809944127,0.112234809944127, +0.202805966647796,0.202805966647796,0.202817312538796,0.202656469997874,0.20237380722873,0.202030912526008,0.201690853381896,0.201414736929387,0.201257865199413,0.201257865199413, +0.337689668051021,0.337689668051021,0.337640913889432,0.337344259561555,0.336878142314837,0.336332094987993,0.335793492687833,0.335349890235821,0.335090955583158,0.335090955583158, +0.521518991356283,0.521518991356283,0.521371280084442,0.520873328945744,0.520162300805187,0.51935943881291,0.518567944420882,0.517895156918314,0.517476871207407,0.517476871207407, +0.748085526050918,0.748085526050918,0.747844513075541,0.747049749165868,0.746038337623625,0.744950519050955,0.743872920755818,0.742898939691921,0.742197875995373,0.742197875995373, + +00:17:46, +0.0177499529410357,0.0177499529410357,0.0177746057248958,0.0177714409824668,0.0177479865030826,0.0177134836489089,0.0176773224945591,0.0176478362951357,0.0176313541280714,0.0176313541280714, +0.0177499529410357,0.0177499529410357,0.0177746057248958,0.0177714409824668,0.0177479865030826,0.0177134836489089,0.0176773224945591,0.0176478362951357,0.0176313541280714,0.0176313541280714, +0.0300656161963683,0.0300656161963683,0.030095508042242,0.0300844153117881,0.0300435614481732,0.0299867872458124,0.0299282708025295,0.0298807912065293,0.029854269064515,0.029854269064515, +0.0591237372291454,0.0591237372291454,0.0591600387100812,0.0591276750887569,0.0590457349033246,0.0589378671334145,0.0588284936082181,0.0587400797436874,0.0586906446031297,0.0586906446031297, +0.113249591280796,0.113249591280796,0.113284376381899,0.113206818821824,0.113048734835155,0.112849575612317,0.112650201584809,0.112489100001371,0.112398620075932,0.112398620075932, +0.203013550835087,0.203013550835087,0.203024838886786,0.202863986617333,0.20258133699028,0.20223845999701,0.201898416751621,0.201622314120371,0.201465451874313,0.201465451874313, +0.337914138567309,0.337914138567309,0.337865322497438,0.337568727988117,0.337102740781855,0.336556849787093,0.336018401601506,0.33557492909084,0.335316073523486,0.335316073523486, +0.521714253940681,0.521714253940681,0.521566535755569,0.521068776733988,0.520358052448126,0.519555537474678,0.518764386016252,0.518091893919462,0.51767379565733,0.51767379565733, +0.748200325809392,0.748200325809392,0.747959411492138,0.74716502397121,0.746154103271154,0.745066814986927,0.74398974242835,0.743016237846993,0.742315517157619,0.742315517157619, + +00:17:47, +0.0178067312968531,0.0178067312968531,0.0178314278915549,0.0178282614755096,0.0178047694793042,0.0177702072461843,0.0177339813737719,0.0177044412690441,0.0176879286971249,0.0176879286971249, +0.0178067312968531,0.0178067312968531,0.0178314278915549,0.0178282614755096,0.0178047694793042,0.0177702072461843,0.0177339813737719,0.0177044412690441,0.0176879286971249,0.0176879286971249, +0.0301428349386617,0.0301428349386617,0.0301727611915344,0.0301616588258859,0.0301207596575348,0.0300639179567078,0.03000532896239,0.0299577892106439,0.0299312332143688,0.0299312332143688, +0.059239273921081,0.059239273921081,0.0592755873852158,0.0592432015811273,0.05916120894178,0.0590532685547627,0.0589438181830091,0.0588553409583317,0.0588058703176326,0.0588058703176326, +0.113413651814639,0.113413651814639,0.11344841357038,0.113370827123979,0.11321270204855,0.113013489835851,0.112814059941181,0.112652912606373,0.112562407462138,0.112562407462138, +0.203221012100176,0.203221012100176,0.20323224237484,0.203071380491963,0.202788744209733,0.202445885207466,0.202105858163947,0.201829769602926,0.20167291697756,0.20167291697756, +0.338138396962557,0.338138396962557,0.338089519124666,0.337792984485219,0.337327127377848,0.336781392821977,0.336243098881388,0.335799756415329,0.335540979981227,0.335540979981227, +0.521909281418034,0.521909281418034,0.521761556417033,0.521263989349236,0.520553568661111,0.519751400452355,0.518960591697305,0.518288394797627,0.517870483833626,0.517870483833626, +0.748314969015622,0.748314969015622,0.748074153241464,0.747280141610141,0.746269711118637,0.745182952466257,0.744106405005882,0.743133376318432,0.742432998195691,0.742432998195691, + +00:17:48, +0.0178636036907695,0.0178636036907695,0.0178883440748039,0.0178851759928036,0.0178616465084279,0.0178270249353437,0.0177907343835293,0.0177611404034676,0.0177445974428274,0.0177445974428274, +0.0178636036907695,0.0178636036907695,0.0178883440748039,0.0178851759928036,0.0178616465084279,0.0178270249353437,0.0177907343835293,0.0177611404034676,0.0177445974428274,0.0177445974428274, +0.030220135795376,0.030220135795376,0.030250096412213,0.0302389844286918,0.030198040020825,0.0301411309147872,0.0300824694667238,0.0300348696379345,0.0300082798309549,0.0300082798309549, +0.0593548572234091,0.0593548572234091,0.0593911826137342,0.0593587746715567,0.0592767297102851,0.0591687168940412,0.0590591898745139,0.0589706494525998,0.0589211434025939,0.0589211434025939, +0.113577688254811,0.113577688254811,0.113612426640819,0.113534811396821,0.113376645432267,0.113177380507974,0.11297789504181,0.112816702198764,0.112726171971184,0.112726171971184, +0.203428350489367,0.203428350489367,0.203439523049388,0.20327865166794,0.202996028932547,0.202653188201754,0.202313177662076,0.202037103419289,0.201880260550861,0.201880260550861, +0.338362443542292,0.338362443542292,0.338313504076438,0.338017029357934,0.337551302407295,0.337005724396156,0.336467584829892,0.336024372510807,0.335765675257429,0.335765675257429, +0.522104074254704,0.522104074254704,0.52195634253492,0.521458967257786,0.520748849910607,0.519947028212321,0.519156561930194,0.518484660018823,0.518066936202318,0.518066936202318, +0.748429456025722,0.748429456025722,0.748188738679896,0.74739510244016,0.746385161524867,0.745298931848933,0.744222908849502,0.743250355468377,0.74255031947259,0.74255031947259, + +00:17:49, +0.0179205700676691,0.0179205700676691,0.0179453542194083,0.0179421844791203,0.0179186175353442,0.0178839366614777,0.0178475814691533,0.0178179336439291,0.0178013603108179,0.0178013603108179, +0.0179205700676691,0.0179205700676691,0.0179453542194083,0.0179421844791203,0.0179186175353442,0.0178839366614777,0.0178475814691533,0.0178179336439291,0.0178013603108179,0.0178013603108179, +0.0302975186577549,0.0302975186577549,0.0303275135955327,0.0303163920114844,0.0302754024293692,0.03021842601145,0.0301596922070221,0.0301120323799784,0.0300854088059028,0.0300854088059028, +0.0594704869743326,0.0594704869743326,0.0595068242340396,0.0594743941984595,0.0593922970471125,0.0592842119892939,0.059174608520537,0.0590860050641083,0.05903646369553,0.05903646369553, +0.113741700473027,0.113741700473027,0.113776415465223,0.113698771512266,0.113540564857772,0.113341247499462,0.113141706756728,0.11298046864797,0.112889913472166,0.112889913472166, +0.203635566049343,0.203635566049343,0.20364668095724,0.203485800191822,0.203203191204567,0.202860369024643,0.202520375289601,0.202244315612092,0.202087482636321,0.202087482636321, +0.338586278611587,0.338586278611587,0.33853727765762,0.338240862910878,0.33777526617422,0.337229844812691,0.336691859748989,0.336248777678352,0.3359901596527,0.3359901596527, +0.522298632915807,0.522298632915807,0.522150894574065,0.521653710924688,0.520943896661833,0.520142421219709,0.519352297179836,0.518680690047825,0.518263153228193,0.518263153228193, +0.748543787194679,0.748543787194679,0.74830316816269,0.747509906817636,0.746500454847502,0.74541475349381,0.74433925431916,0.74336717565783,0.742667481350174,0.742667481350174, + +00:17:50, +0.0179776303721903,0.0179776303721903,0.0180024582698885,0.0179992868789865,0.0179756825046981,0.017940942369431,0.0179045225757187,0.0178748209357031,0.0178582172464864,0.0178582172464864, +0.0179776303721903,0.0179776303721903,0.0180024582698885,0.0179992868789865,0.0179756825046981,0.017940942369431,0.0179045225757187,0.0178748209357031,0.0178582172464864,0.0178582172464864, +0.030374983417047,0.030374983417047,0.0304050126327531,0.0303938814655476,0.0303528467744975,0.0302958031380993,0.0302369970747787,0.0301892773283546,0.0301626200308433,0.0301626200308433, +0.0595861630124541,0.0595861630124541,0.0596225120849345,0.0595900600006489,0.0595079107909334,0.0593997536789629,0.0592900739592806,0.0592014076308713,0.0591518310343544,0.0591518310343544, +0.113905688341655,0.113905688341655,0.113940379916245,0.113862707342877,0.113704460197179,0.113505090681739,0.113305494956619,0.113144211824073,0.113053631834833,0.113053631834833, +0.20384265882717,0.20384265882717,0.203853716145586,0.203692826110543,0.203410231072017,0.203067427721283,0.202727451090505,0.202451406224358,0.202294583276436,0.202294583276436, +0.338809902475055,0.338809902475055,0.338760840172622,0.33846448544821,0.337999018982196,0.337453754374197,0.336915923940204,0.336472972218607,0.336214433467215,0.336214433467215, +0.522492957865218,0.522492957865218,0.522345212998067,0.521848220813752,0.52113870937877,0.520337579938416,0.519547797909909,0.518876485348177,0.518459135374806,0.518459135374806, +0.748657962876364,0.748657962876364,0.748417442043981,0.747624555097816,0.746615591443075,0.745530417758612,0.744455441773676,0.74348383724666,0.742784484189166,0.742784484189166, + +00:17:51, +0.0180347845487267,0.0180347845487267,0.0180596561705206,0.0180564831366848,0.0180328413608899,0.0179980420038026,0.0179615576480537,0.0179318022238171,0.0179151681949758,0.0179151681949758, +0.0180347845487267,0.0180347845487267,0.0180596561705206,0.0180564831366848,0.0180328413608899,0.0179980420038026,0.0179615576480537,0.0179318022238171,0.0179151681949758,0.0179151681949758, +0.0304525299645059,0.0304525299645059,0.0304825934151395,0.0304714526821702,0.0304303729475444,0.0303732621861419,0.0303143839614904,0.0302666043746442,0.0302399133974088,0.0302399133974088, +0.0597018851767751,0.0597018851767751,0.0597382460056197,0.0597057719173366,0.0596235707808176,0.0595153418018881,0.0594055860293441,0.0593168569912998,0.0592672452573771,0.0592672452573771, +0.114069651733708,0.114069651733708,0.114104319867188,0.114026618761862,0.113868331323248,0.113668909926879,0.113469259512817,0.113307931597802,0.113217326929582,0.113217326929582, +0.20404962887029,0.20404962887029,0.20406062866199,0.203899729471418,0.203617148581501,0.203274364337209,0.202934405109157,0.2026583752995,0.202501562514095,0.202501562514095, +0.339033315436856,0.339033315436856,0.338984191925397,0.338687897273636,0.338222561134342,0.337677453382838,0.337139777704623,0.336696956431773,0.336438497000708,0.336438497000708, +0.522687049565573,0.522687049565573,0.522539298269285,0.522042497387551,0.521333288524158,0.520532504831104,0.519743064582862,0.519072046382194,0.518654883104482,0.518654883104482, +0.748771983423536,0.748771983423536,0.748531560676791,0.747739047634831,0.746730571666999,0.74564592499994,0.744571471570743,0.743600340593605,0.742901328349159,0.742901328349159, + +00:17:52, +0.0180920325414287,0.0180920325414287,0.018116947865338,0.018113773196255,0.0180900940480766,0.0180552355089473,0.0180186866307416,0.017988877453053,0.0179722131011824,0.0179722131011824, +0.0180920325414287,0.0180920325414287,0.018116947865338,0.018113773196255,0.0180900940480766,0.0180552355089473,0.0180186866307416,0.017988877453053,0.0179722131011824,0.0179722131011824, +0.0305301581913913,0.0305301581913913,0.0305602558339633,0.0305491055526476,0.0305079808398505,0.0304508030469898,0.0303918527586578,0.0303440134104313,0.0303172887972342,0.0303172887972342, +0.0598176533066955,0.0598176533066955,0.0598540258356943,0.059821529788132,0.0597392768562317,0.0596309761973063,0.0595211445697236,0.0594323529842007,0.0593827062033038,0.0593827062033038, +0.114233590522845,0.114233590522845,0.114268235191997,0.114190505643075,0.114032178109386,0.113832705107601,0.113633000297301,0.113471627840537,0.113380998627463,0.113380998627463, +0.20425647622652,0.20425647622652,0.204267418554392,0.204106510322133,0.203823943779998,0.203481178918333,0.203141237390307,0.202865222881317,0.202708420392571,0.202708420392571, +0.339256517800692,0.339256517800692,0.339207333219443,0.338911098690405,0.338445892933324,0.337900942140333,0.337363421342885,0.336920730617612,0.336662350552481,0.336662350552481, +0.522880908478276,0.522880908478276,0.522733150848847,0.522236541107425,0.521527634559508,0.520727196359207,0.519938097659915,0.519267373610966,0.518850396878325,0.518850396878325, +0.748885849187841,0.748885849187841,0.748645524413029,0.747853384781694,0.746845395873565,0.745761275573274,0.744687344066931,0.743716686056279,0.743018014188617,0.743018014188617, + +00:17:53, +0.018149374294204,0.018149374294204,0.0181743332981322,0.0181711570014949,0.018147440510173,0.0181125228289772,0.0180759094681218,0.0180460465679476,0.0180293519097575,0.0180293519097575, +0.018149374294204,0.018149374294204,0.0181743332981322,0.0181711570014949,0.018147440510173,0.0181125228289772,0.0180759094681218,0.0180460465679476,0.0180293519097575,0.0180293519097575, +0.0306078679889695,0.0306078679889695,0.0306379997805028,0.0306268399682818,0.0305856703427624,0.03052842561206,0.0304694033577862,0.0304215043273036,0.0303947461219575,0.0303947461219575, +0.0599334672420129,0.0599334672420129,0.0599698514151543,0.0599373334530412,0.0598550288570394,0.0597466567048508,0.0596367494198109,0.0595478954487763,0.0594982137112354,0.0594982137112354, +0.114397504583368,0.114397504583368,0.114432125765258,0.11435436786101,0.114196000429639,0.113996476097268,0.113796717182696,0.113635300424301,0.113544646800167,0.113544646800167, +0.204463200944048,0.204463200944048,0.204474085871099,0.204313168710745,0.204030616714861,0.203687871510947,0.203347947979088,0.20307194901399,0.202915156955527,0.202915156955527, +0.339479509869811,0.339479509869811,0.3394302643578,0.339134090001313,0.338669014681357,0.338124220947949,0.337586855155191,0.337144295075451,0.336885994421396,0.336885994421396, +0.523074535063502,0.523074535063502,0.522926771196651,0.522430352433483,0.521721747945101,0.520921654982928,0.520132897601066,0.51946246749436,0.519045677156217,0.519045677156217, +0.748999560519822,0.748999560519822,0.748759333603499,0.747967566890312,0.746960064415957,0.745876469832979,0.744803059617693,0.743832873991179,0.743134542064884,0.743134542064884, + +00:17:54, +0.0182068097507193,0.0182068097507193,0.0182318124124541,0.018228634495962,0.018204880690853,0.0181699039077621,0.0181332261042909,0.0181033095127943,0.0180865845651084,0.0180865845651084, +0.0182068097507193,0.0182068097507193,0.0182318124124541,0.018228634495962,0.018204880690853,0.0181699039077621,0.0181332261042909,0.0181033095127943,0.0180865845651084,0.0180865845651084, +0.0306856592485139,0.0306856592485139,0.030715825146044,0.0307046558203821,0.0306634413476337,0.030606129772776,0.0305470356503855,0.0304990770168532,0.0304722852632205,0.0304722852632205, +0.0600493268229215,0.0600493268229215,0.0600857225843923,0.0600531827524669,0.0599708266235004,0.0598623831645506,0.0597524004193932,0.0596634842246239,0.0596137676206671,0.0596137676206671, +0.114561393790218,0.114561393790218,0.114595991462197,0.114518205290799,0.114359798158695,0.114160222769881,0.113960410042268,0.113798949221761,0.113708271320031,0.113708271320031, +0.204669803071433,0.204669803071433,0.20468063066079,0.204519704685681,0.204237167433814,0.203894442161715,0.203554536921011,0.203278553742083,0.203121772247006,0.203121772247006, +0.339702291947005,0.339702291947005,0.339652985643055,0.339356871508698,0.338891926680204,0.338347290106512,0.337810079441295,0.337367650104176,0.337109428905881,0.337109428905881, +0.5232679297802,0.5232679297802,0.523120159771371,0.522623931824612,0.521915629139995,0.521115881161253,0.520327464865094,0.519657328491028,0.519240724396824,0.519240724396824, +0.749113117768921,0.749113117768921,0.748872988597906,0.748081594311484,0.747074577646245,0.74599150813231,0.744918618577369,0.743948904753682,0.743250912334187,0.743250912334187, + +00:17:55, +0.0182643388544014,0.0182643388544014,0.0182893851516152,0.0182862056229743,0.0182624145335503,0.0182273786889315,0.0181906364831037,0.0181606662316441,0.0181439110113993,0.0181439110113993, +0.0182643388544014,0.0182643388544014,0.0182893851516152,0.0182862056229743,0.0182624145335503,0.0182273786889315,0.0181906364831037,0.0181606662316441,0.0181439110113993,0.0181439110113993, +0.0307635318613059,0.0307635318613059,0.0307937318218809,0.0307825530002661,0.0307412937458257,0.0306839154205677,0.030624749527972,0.0305767313706769,0.0305499061126695,0.0305499061126695, +0.0601652318900122,0.0601652318900122,0.0602016391841967,0.060169077527207,0.0600866699962696,0.0599781554168295,0.0598680974086521,0.0597791191517344,0.059729367771488,0.059729367771488, +0.114725258018976,0.114725258018976,0.114759832158676,0.114682017808212,0.114523571171878,0.114323945000082,0.114124078749925,0.113962574106224,0.113871872060032,0.113871872060032, +0.204876282657602,0.204876282657602,0.204887052972508,0.204726118295734,0.204443595984949,0.204100890917673,0.20376100426196,0.203485037110538,0.20332826631143,0.20332826631143, +0.339924864334611,0.339924864334611,0.339875497377339,0.339579443514448,0.339114629231176,0.338570149916395,0.338033094500514,0.337590796002235,0.337332654303927,0.337332654303927, +0.523461093086097,0.523461093086097,0.523313317030462,0.522817279738474,0.522109278602025,0.521309875351947,0.520521799909563,0.519851957058411,0.519435539057603,0.519435539057603, +0.749226521283486,0.749226521283486,0.748986489744855,0.748195467394912,0.747188935915398,0.746106390823413,0.745034021299192,0.744064778698059,0.743367125351639,0.743367125351639, + +00:17:56, +0.0183219615484378,0.0183219615484378,0.0183470514586887,0.0183438703256113,0.0183200419814599,0.0182849471158749,0.0182481405481745,0.0182181166683066,0.0182013311925528,0.0182013311925528, +0.0183219615484378,0.0183219615484378,0.0183470514586887,0.0183438703256113,0.0183200419814599,0.0182849471158749,0.0182481405481745,0.0182181166683066,0.0182013311925528,0.0182013311925528, +0.0308414857186353,0.0308414857186353,0.0308717196993163,0.0308605313992601,0.0308192274287077,0.0307617824468726,0.0307025448820678,0.0306544672803771,0.0306276085619557,0.0306276085619557, +0.0602811822842711,0.0602811822842711,0.0603176010557512,0.0602850176184547,0.0602025588163966,0.060093973302506,0.0599838402281632,0.0598948000704927,0.0598450140039804,0.0598450140039804, +0.114889097145856,0.114889097145856,0.114923647731193,0.114845805289654,0.114687319345147,0.11448764266315,0.11428772318021,0.114126174951637,0.114035448893788,0.114035448893788, +0.205082639751844,0.205082639751844,0.20509335285566,0.204932409590059,0.204649902416724,0.204307217826227,0.203967350048196,0.203691399164674,0.203534639193602,0.203534639193602, +0.340147227334512,0.340147227334512,0.340097799862329,0.339801806319994,0.339337122635131,0.338792800677527,0.338255900631717,0.337813733067639,0.337555670913091,0.337555670913091, +0.523654025437706,0.523654025437706,0.523506243430162,0.52301039663152,0.522302696787813,0.521503638011562,0.520715903190825,0.520046353652737,0.5196301215948,0.5196301215948, +0.749339771410771,0.749339771410771,0.74909983739186,0.748309186489199,0.747303139573286,0.746221118257335,0.745149268135287,0.74418049617747,0.743483181471243,0.743483181471243, + +00:17:57, +0.0183796777757785,0.0183796777757785,0.0184048112765103,0.0184016285467156,0.0183777629775394,0.0183426091317437,0.0183057382428785,0.0182756607663514,0.0182588450522511,0.0182588450522511, +0.0183796777757785,0.0183796777757785,0.0184048112765103,0.0184016285467156,0.0183777629775394,0.0183426091317437,0.0183057382428785,0.0182756607663514,0.0182588450522511,0.0182588450522511, +0.0309195207118012,0.0309195207118012,0.0309497886696626,0.0309385909086996,0.0308972422876579,0.0308397307431361,0.0307804216042024,0.0307322846375626,0.0307053925027361,0.0307053925027361, +0.0603971778470793,0.0603971778470793,0.0604336080406337,0.0604010028677972,0.0603184929253253,0.0602098366627919,0.0600996287188952,0.060010526821676,0.059960706158819,0.059960706158819, +0.115052911047708,0.115052911047708,0.115087438056875,0.115009567612158,0.114851042555094,0.114651315634996,0.114451343208301,0.11428975163258,0.114199001695551,0.114199001695551, +0.205288874403812,0.205288874403812,0.205299530360013,0.205138578618175,0.20485608677796,0.20451342293515,0.204173574326347,0.203897639950181,0.203740890938697,0.203740890938697, +0.340369381248136,0.340369381248136,0.340319893399246,0.340023960226314,0.339559407192479,0.33901524268939,0.338478498133338,0.338036461597961,0.337778479030493,0.337778479030493, +0.523846727290325,0.523846727290325,0.523698939425495,0.523203282958983,0.522495884152769,0.521697169595442,0.520909775164027,0.520240518729034,0.519824472463459,0.519824472463459, +0.749452868496943,0.749452868496943,0.749213031885347,0.748422751941857,0.747417188968683,0.746335690784022,0.745264359436683,0.744296057543978,0.7435990810459,0.7435990810459, + +00:17:58, +0.0184374874791368,0.0184374874791368,0.01846266454768,0.0184594802288934,0.0184355774645094,0.0184003646794516,0.0183634295103523,0.0183332984691089,0.0183164525339367,0.0183164525339367, +0.0184374874791368,0.0184374874791368,0.01846266454768,0.0184594802288934,0.0184355774645094,0.0184003646794516,0.0183634295103523,0.0183332984691089,0.0183164525339367,0.0183164525339367, +0.0309976367321125,0.0309976367321125,0.0310279386242421,0.0310167314199301,0.0309753382140641,0.0309177602008123,0.0308583795859129,0.0308101833338488,0.0307832578266741,0.0307832578266741, +0.0605132184202124,0.0605132184202124,0.0605496599808162,0.0605170331172153,0.0604344721648925,0.0603257453392923,0.0602154627222095,0.0601262992464539,0.0600764440770703,0.0600764440770703, +0.115216699602011,0.115216699602011,0.115251203013481,0.115173304653391,0.115014740678942,0.114814963792162,0.114614938710011,0.114453304024269,0.114362530340207,0.114362530340207, +0.205494986663518,0.205494986663518,0.205505585535693,0.205344625429958,0.20506214911784,0.204719506292578,0.204379677143411,0.204103759513122,0.203947021592264,0.203947021592264, +0.340591326376457,0.340591326376457,0.340541778288858,0.340245905533931,0.339781483203177,0.33923747625102,0.338700887303363,0.338258981890337,0.338001078952817,0.338001078952817, +0.524039199098044,0.524039199098044,0.523891405470278,0.523395939174891,0.522688841151092,0.521890470557724,0.521103416283113,0.520434452741126,0.520018592117423,0.520018592117423, +0.74956581288709,0.74956581288709,0.749326073570658,0.748536164099314,0.747531084449272,0.74645010875233,0.745379295553312,0.744411463148544,0.743714824427413,0.743714824427413, + +00:17:59, +0.0184953906009905,0.0184953906009905,0.0185206112145627,0.0185174253145162,0.0184934853848556,0.0184582137016765,0.0184212142934956,0.0183910297196718,0.0183741535808137,0.0183741535808137, +0.0184953906009905,0.0184953906009905,0.0185206112145627,0.0185174253145162,0.0184934853848556,0.0184582137016765,0.0184212142934956,0.0183910297196718,0.0183741535808137,0.0183741535808137, +0.0310758336708883,0.0310758336708883,0.0311061694543879,0.0310949528243077,0.0310535150993241,0.0309958707113646,0.0309364187187448,0.0308881632608588,0.0308612044254401,0.0308612044254401, +0.060629303845839,0.060629303845839,0.0606657567186636,0.0606331082090826,0.0605504963773279,0.0604416991740044,0.0603313420798592,0.0602421171863871,0.060192227600192,0.060192227600192, +0.115380462686873,0.115380462686873,0.115414942479396,0.115337016291645,0.115178413594539,0.114978587011821,0.114778509561781,0.114616832002551,0.114526034703277,0.114526034703277, +0.20570097658133,0.20570097658133,0.205711518433181,0.205550550075639,0.205268089485903,0.204925467947011,0.204585658546751,0.204309757899928,0.204153031200222,0.204153031200222, +0.340813063019994,0.340813063019994,0.340763454831478,0.340467642542917,0.340003350966733,0.339459501661005,0.338923068439343,0.338481294241466,0.338223470976314,0.338223470976314, +0.524231441313747,0.524231441313747,0.524083642017127,0.523588365732066,0.52288156823578,0.522083541351341,0.521296827000825,0.520628156141642,0.520212481009341,0.520212481009341, +0.749678604925217,0.749678604925217,0.749438962792055,0.748649423306912,0.74764482636165,0.746564372510025,0.745494076834016,0.744526713341039,0.743830411966485,0.743830411966485, + +00:18:00, +0.018553387083583,0.018553387083583,0.0185786512192893,0.0185754637457218,0.0185514866808292,0.0185161561408609,0.018479092534972,0.0184488544608958,0.0184319481358494,0.0184319481358494, +0.018553387083583,0.018553387083583,0.0185786512192893,0.0185754637457218,0.0185514866808292,0.0185161561408609,0.018479092534972,0.0184488544608958,0.0184319481358494,0.0184319481358494, +0.0311541114194588,0.0311541114194588,0.0311844810514445,0.0311732550131999,0.0311317728348464,0.0310740621662661,0.0310145388942525,0.0309662243102236,0.0309392321907122,0.0309392321907122, +0.060745433966521,0.060745433966521,0.0607818980969332,0.0607492279861649,0.060666565405253,0.060557698009317,0.0604472666339887,0.0603579804834274,0.0603080565700321,0.0603080565700321, +0.115544200181028,0.115544200181028,0.115578656333631,0.115500702405837,0.115342061180363,0.115142185171772,0.114942055640682,0.114780335443902,0.114689514660907,0.114689514660907, +0.205906844207972,0.205906844207972,0.205917329103312,0.205756352605804,0.205473907932047,0.205131307947306,0.204791518584092,0.204515635157395,0.204358919808857,0.204358919808857, +0.341034591478816,0.341034591478816,0.340984923326966,0.340689171552889,0.340225010782202,0.339681319217489,0.339145041838383,0.338703398947608,0.338445655396798,0.338445655396798, +0.524423454389119,0.524423454389119,0.524275649517453,0.52378056308213,0.523074065858631,0.522276382428033,0.521490007768715,0.520821629382018,0.520406139590668,0.520406139590668, +0.749791244954258,0.749791244954258,0.749551699892726,0.748762529908914,0.747758415051334,0.746678482403789,0.745608703626549,0.744641808470244,0.743945844012733,0.743945844012733, + +00:18:01, +0.0186114768689242,0.0186114768689242,0.0186367845037583,0.0186335954644151,0.0186095812944482,0.0185741919392136,0.0185370641772104,0.0185067726354012,0.0184898361417745,0.0184898361417745, +0.0186114768689242,0.0186114768689242,0.0186367845037583,0.0186335954644151,0.0186095812944482,0.0185741919392136,0.0185370641772104,0.0185067726354012,0.0184898361417745,0.0184898361417745, +0.0312324698691662,0.0312324698691662,0.031262873306768,0.0312516378779859,0.0312101113120509,0.0311523344570008,0.0310927400039998,0.0310443663735832,0.0310173410141767,0.0310173410141767, +0.060861608625212,0.060861608625212,0.0608980839587741,0.0608653922916194,0.0607826790916807,0.0606737416880101,0.0605632362271327,0.0604738889799165,0.0604239308288287,0.0604239308288287, +0.115707911963834,0.115707911963834,0.11574234445582,0.115664362875505,0.115505683315511,0.115305758150437,0.115105576824409,0.114943814225423,0.114852970089874,0.114852970089874, +0.206112589594519,0.206112589594519,0.206123017597272,0.205962033071391,0.20567960450652,0.205337026342678,0.204997257303522,0.204721391332684,0.204564687464821,0.204564687464821, +0.341255912052534,0.341255912052534,0.341206184074728,0.340910492863014,0.340446462948191,0.33990292921817,0.339366807797151,0.338925296304588,0.33866763250965,0.33866763250965, +0.524615238774649,0.524615238774649,0.524467428421474,0.523972531675508,0.523266334470245,0.522468994238342,0.521682959037141,0.521014872912501,0.520599568311674,0.520599568311674, +0.749903733316076,0.749903733316076,0.749664285214789,0.748875484248512,0.747871850862762,0.746792438779222,0.745723176277585,0.744756748883857,0.744061120914686,0.744061120914686, + +00:18:02, +0.0186696598987924,0.0186696598987924,0.0186950110096366,0.0186918204122696,0.0186677691674987,0.0186323210387104,0.0185951291624057,0.0185647841855737,0.0185478175410853,0.0185478175410853, +0.0186696598987924,0.0186696598987924,0.0186950110096366,0.0186918204122696,0.0186677691674987,0.0186323210387104,0.0185951291624057,0.0185647841855737,0.0185478175410853,0.0185478175410853, +0.0313109089113645,0.0313109089113645,0.0313413461117275,0.0313301013100573,0.0312885304223695,0.0312306874750636,0.031171021939561,0.0311225893425869,0.0310955307875288,0.0310955307875288, +0.0609778276652575,0.0609778276652575,0.0610143141477263,0.0609816009689943,0.0608988372800142,0.0607898300532535,0.060679250702216,0.0605898425185855,0.0605398502192087,0.0605398502192087, +0.115871597915272,0.115871597915272,0.115906006726216,0.115827997580811,0.115669279879703,0.115469305826864,0.115269072991281,0.115107268224842,0.115016400867577,0.115016400867577, +0.206318212792398,0.206318212792398,0.206328583966595,0.206167591523686,0.205885179259923,0.205542623182696,0.205202874753484,0.204927026473316,0.204770334215126,0.204770334215126, +0.341477025040309,0.341477025040309,0.341427237373717,0.341131606772004,0.340667707762858,0.3401243319603,0.339588366611872,0.339146986607795,0.338889402609816,0.338889402609816, +0.52480679491963,0.52480679491963,0.524658979178216,0.524164271961432,0.523458374520033,0.522661377231623,0.521875681255274,0.521207887182154,0.520792767621442,0.520792767621442, +0.75001607035147,0.75001607035147,0.749776719099295,0.748988286667827,0.747985134139298,0.746906241980851,0.745837495132719,0.744871534928494,0.744176243019789,0.744176243019789, + +00:18:03, +0.0187279361147344,0.0187279361147344,0.0187533306783604,0.0187501385307284,0.018726050241536,0.0186905433810955,0.0186532874325206,0.0186228890535657,0.0186058922760439,0.0186058922760439, +0.0187279361147344,0.0187279361147344,0.0187533306783604,0.0187501385307284,0.018726050241536,0.0186905433810955,0.0186532874325206,0.0186228890535657,0.0186058922760439,0.0186058922760439, +0.0313894284374208,0.0313894284374208,0.031419899357705,0.0314086452008188,0.0313670300572466,0.0313091211119612,0.0312493845925211,0.0312008931088938,0.0311738014024732,0.0311738014024732, +0.0610940909303935,0.0610940909303935,0.0611305885077203,0.0610978538622275,0.0610150398140469,0.060905962948607,0.0607953099025523,0.0607058409425541,0.0606558145841878,0.0606558145841878, +0.11603525791594,0.11603525791594,0.11606964302569,0.115991606402531,0.115832850753279,0.115632828080716,0.115432544020239,0.115270697320507,0.115179806872039,0.115179806872039, +0.206523713853381,0.206523713853381,0.206534028263161,0.206373028014321,0.206090632243206,0.205748098517282,0.205408370982779,0.205132540627171,0.204975860107148,0.204975860107148, +0.34169793074085,0.34169793074085,0.341648083522435,0.341352513578121,0.340888745523909,0.340345527740687,0.339809718578331,0.339368470152181,0.339110965991806,0.339110965991806, +0.52499812327217,0.52499812327217,0.524850302235516,0.524355784387948,0.523650186456216,0.522853531856045,0.522068174871105,0.521400672638857,0.520985737967879,0.520985737967879, +0.750128256400176,0.750128256400176,0.749889001886233,0.749100937507913,0.74809826522324,0.747019892352131,0.745951660536474,0.744986166949697,0.744291210674413,0.744291210674413, + +00:18:04, +0.0187863054580673,0.0187863054580673,0.0188117434511369,0.0188085497610052,0.0187844244578855,0.0187488589078826,0.0187115389292859,0.0186810871812972,0.0186640602886799,0.0186640602886799, +0.0187863054580673,0.0187863054580673,0.0188117434511369,0.0188085497610052,0.0187844244578855,0.0187488589078826,0.0187115389292859,0.0186810871812972,0.0186640602886799,0.0186640602886799, +0.0314680283387159,0.0314680283387159,0.0314985329360963,0.031487269441689,0.0314456101081398,0.0313876352592127,0.0313278278544765,0.0312792775641739,0.0312521527507249,0.0312521527507249, +0.0612103982647459,0.0612103982647459,0.0612469068830762,0.0612141508156466,0.0611312865379611,0.0610221402180191,0.0609114136718441,0.0608218840953303,0.0607718237671693,0.0607718237671693, +0.116198891847054,0.116198891847054,0.116233253235731,0.116155189222058,0.115996395817192,0.115796324792278,0.115595989790842,0.115434101391386,0.115343187981904,0.115343187981904, +0.206729092829584,0.206729092829584,0.206739350539194,0.206578342595272,0.206295963507665,0.205953452396706,0.20561374604056,0.205337933842484,0.205181265188617,0.205181265188617, +0.341918629452411,0.341918629452411,0.341868722818929,0.341573213579172,0.341109576528604,0.340566516855692,0.340030863991876,0.339589747232261,0.3393323229497,0.3393323229497, +0.52518922427919,0.52518922427919,0.525041398040027,0.524547069401916,0.523841770725832,0.523045458558595,0.522260440331442,0.521593229729317,0.521178479797711,0.521178479797711, +0.750240291800875,0.750240291800875,0.750001133914533,0.749213437108766,0.748211244455818,0.747133390235449,0.746065672832301,0.745100645291937,0.744406024223852,0.744406024223852, + +00:18:05, +0.0188447678698795,0.0188447678698795,0.018870249268945,0.0188670540440856,0.018842891757644,0.0188072675603559,0.0187698835942024,0.0187393785104572,0.0187223215207912,0.0187223215207912, +0.0188447678698795,0.0188447678698795,0.018870249268945,0.0188670540440856,0.018842891757644,0.0188072675603559,0.0187698835942024,0.0187393785104572,0.0187223215207912,0.0187223215207912, +0.0315467085066444,0.0315467085066444,0.0315772467383117,0.0315659739241004,0.0315242704665206,0.0314662298083502,0.0314063516170357,0.0313577426001084,0.0313305847240096,0.0313305847240096, +0.0613267495128302,0.0613267495128302,0.0613632691185027,0.0613304916739678,0.0612475772963278,0.0611383617058264,0.0610275618541812,0.0609379718208094,0.0608878776119435,0.0608878776119435, +0.116362499590444,0.116362499590444,0.116396837238437,0.1163187459214,0.116159914953011,0.115959795842447,0.115759410183265,0.115597480317066,0.115506544076431,0.115506544076431, +0.206934349773469,0.206934349773469,0.206944550847259,0.206783535318858,0.206501173104937,0.206158684871585,0.205818999976331,0.205543206167845,0.20538654950762,0.20538654950762, +0.342139121472795,0.342139121472795,0.342089155560796,0.341793707072517,0.341330201073751,0.340787299601235,0.34025180314741,0.339810818142115,0.33955347377714,0.33955347377714, +0.525380098386431,0.525380098386431,0.525232267037222,0.524738127449014,0.524033127774739,0.52323715778508,0.522452478081921,0.521785558899065,0.521370993556495,0.521370993556495, +0.750352176891195,0.750352176891195,0.750113115522074,0.749325785809322,0.748324072177205,0.747246735972131,0.746179532362589,0.745214970298617,0.744520684012334,0.744520684012334, + +00:18:06, +0.0189033232910316,0.0189033232910316,0.0189288480725363,0.018925651320728,0.0189014520816807,0.0188657692795712,0.0188283213685414,0.0187977629825047,0.0187806759139454,0.0187806759139454, +0.0189033232910316,0.0189033232910316,0.0189288480725363,0.018925651320728,0.0189014520816807,0.0188657692795712,0.0188283213685414,0.0187977629825047,0.0187806759139454,0.0187806759139454, +0.0316254688326158,0.0316254688326158,0.0316560406557764,0.0316447585395007,0.0316030110238749,0.0315449046509195,0.03148495577182,0.0314362881083903,0.0314090972140644,0.0314090972140644, +0.0614431445195506,0.0614431445195506,0.0614796750590971,0.0614468762822952,0.0613639119341056,0.0612546272567531,0.0611437542940409,0.0610541039632731,0.0610039759626872,0.0610039759626872, +0.116526081028555,0.116526081028555,0.116560394916523,0.116482276383174,0.116323408042917,0.116123241112735,0.115922805078299,0.115760833977748,0.115669875035498,0.115669875035498, +0.207139484737834,0.207139484737834,0.20714962924026,0.206988606237736,0.206706261087004,0.206363795992883,0.206024132839944,0.205748357652194,0.205591713112597,0.205591713112597, +0.342359407099355,0.342359407099355,0.342309382045179,0.342013994355062,0.341550619455711,0.341007876272788,0.340472536339403,0.340031683175389,0.339774418767337,0.339774418767337, +0.525570746038458,0.525570746038458,0.525422909671398,0.524928958973746,0.524224258047619,0.523428629980138,0.522644288567006,0.521977660592463,0.52156327968862,0.52156327968862, +0.750463912007716,0.750463912007716,0.750224947045685,0.749437983947467,0.748436748726517,0.747359929902442,0.746293239468666,0.745329142312077,0.744635190383019,0.744635190383019, + +00:18:07, +0.0189619716621577,0.0189619716621577,0.0189875398024367,0.0189843415314651,0.0189601053706385,0.0189243640063572,0.0188868521933462,0.0188562405386696,0.0188391234094806,0.0188391234094806, +0.0189619716621577,0.0189619716621577,0.0189875398024367,0.0189843415314651,0.0189601053706385,0.0189243640063572,0.0188868521933462,0.0188562405386696,0.0188391234094806,0.0188391234094806, +0.0317043092080548,0.0317043092080548,0.0317349145799312,0.031723623179353,0.0316818316717034,0.0316236596784804,0.0315636402104637,0.031514913980725,0.0314876901126383,0.0314876901126383, +0.061559583130199,0.061559583130199,0.0615961245503442,0.0615633044861203,0.0614802902966402,0.0613709367159102,0.0612599908362867,0.0611702803673895,0.0611201186639632,0.0611201186639632, +0.116689636044438,0.116689636044438,0.116723926153307,0.116645780490605,0.1164868749697,0.116286660485263,0.116086174357345,0.115924162254246,0.115833180739595,0.115833180739595, +0.207344497775818,0.207344497775818,0.207354585771437,0.207193555404899,0.206911227506184,0.206568785811903,0.206229144681597,0.205953388344821,0.205796756052338,0.205796756052338, +0.34257948662899,0.34257948662899,0.34252940256877,0.342234075723263,0.341770831970398,0.341228247165382,0.34069306386188,0.34025234262529,0.339995158213068,0.339995158213068, +0.525761167678661,0.525761167678661,0.525613326385681,0.525119564419443,0.524415161987982,0.523619875587231,0.522835872229993,0.522169535252708,0.52175533863731,0.52175533863731, +0.750575497485973,0.750575497485973,0.750336628821148,0.749550031860036,0.748549274441816,0.747472972365594,0.746406794490802,0.7454431616736,0.74474954367801,0.74474954367801, + +00:18:08, +0.0190207129236666,0.0190207129236666,0.0190463243989471,0.0190431246166045,0.019018851564935,0.0189830516813164,0.018945476009433,0.0189148111199543,0.0188976639485069,0.0188976639485069, +0.0190207129236666,0.0190207129236666,0.0190463243989471,0.0190431246166045,0.019018851564935,0.0189830516813164,0.018945476009433,0.0189148111199543,0.0188976639485069,0.0188976639485069, +0.0317832295244021,0.0317832295244021,0.0318138684022331,0.0318025677351364,0.0317607323015226,0.0317024947826077,0.0316424048246153,0.0315936201088311,0.0315663633114931,0.0315663633114931, +0.0616760651904548,0.0616760651904548,0.0617126174381155,0.0616797761313211,0.0615967122296638,0.0614872899287947,0.0613762713261678,0.0612865008782119,0.0612363055607191,0.0612363055607191, +0.116853164521754,0.116853164521754,0.116887430832719,0.116809258127527,0.116650315616758,0.116450053842763,0.116249517902414,0.116087465027985,0.115996461069823,0.115996461069823, +0.207549388940893,0.207549388940893,0.207559420494365,0.207398382873676,0.207116072415135,0.206773654380291,0.206434035551832,0.206158298295362,0.20600167837598,0.20600167837598, +0.34279936035815,0.34279936035815,0.342749217427813,0.342453951473126,0.341990838913276,0.341448412573603,0.34091338600843,0.340472796784593,0.340215692406676,0.340215692406676, +0.525951363749264,0.525951363749264,0.525803517622027,0.525309944228264,0.524605840038168,0.52381089504866,0.523027229513015,0.522361183321838,0.521947170844628,0.521947170844628, +0.750686933660461,0.750686933660461,0.750448161183206,0.749661929882823,0.748661649660121,0.747585863699751,0.746520197768216,0.745557028723414,0.744863744238352,0.744863744238352, + +00:18:09, +0.0190795470157427,0.0190795470157427,0.0191052018021447,0.0191020005162301,0.0190776906047634,0.0190418322448262,0.0190041927573922,0.0189734746671344,0.0189562974719071,0.0189562974719071, +0.0190795470157427,0.0190795470157427,0.0191052018021447,0.0191020005162301,0.0190776906047634,0.0190418322448262,0.0190041927573922,0.0189734746671344,0.0189562974719071,0.0189562974719071, +0.0318622296731149,0.0318622296731149,0.0318929020141557,0.0318815920983467,0.0318397128048651,0.0317814098548914,0.0317212495059374,0.0316724063844408,0.0316451167024035,0.0316451167024035, +0.0617925905463838,0.0617925905463838,0.0618291535686685,0.0617962910641616,0.0617131775792944,0.0616036867412892,0.0614925956093186,0.061402765341178,0.0613525364982868,0.0613525364982868, +0.117016666344771,0.117016666344771,0.117050908839289,0.116972709178377,0.116813729868091,0.11661342106857,0.116412835596127,0.116250742180997,0.116159715907891,0.116159715907891, +0.207754158286865,0.207754158286865,0.207764133462949,0.207603088697728,0.207320795866845,0.206978401750029,0.206638805501532,0.206363087553796,0.206206480133007,0.206206480133007, +0.343019028582834,0.343019028582834,0.342968826918096,0.342673621900205,0.342210640579363,0.341668372791594,0.341133503072204,0.340693045945638,0.340436021640074,0.340436021640074, +0.526141334691323,0.526141334691323,0.525993483821228,0.525500098841208,0.524796292639357,0.524001688805562,0.523218360857046,0.52255260524073,0.522138776751479,0.522138776751479, +0.750798220864641,0.750798220864641,0.750559544465567,0.74977367835058,0.748773874717403,0.747698604242027,0.746633449639081,0.745670743800696,0.744977792404037,0.744977792404037, + +00:18:10, +0.0191384738783471,0.0191384738783471,0.0191641719518839,0.0191609691702033,0.0191366224300939,0.0191007056370404,0.0190630023775894,0.0190322311207598,0.0190150239203381,0.0190150239203381, +0.0191384738783471,0.0191384738783471,0.0191641719518839,0.0191609691702033,0.0191366224300939,0.0191007056370404,0.0190630023775894,0.0190322311207598,0.0190150239203381,0.0190150239203381, +0.0319413095456675,0.0319413095456675,0.0319720153071903,0.0319606961604971,0.0319187730732803,0.0318604047869376,0.031800174146108,0.0317512726993006,0.0317239501771585,0.0317239501771585, +0.0619091590444378,0.0619091590444378,0.0619457327886465,0.0619128491312908,0.0618296861920346,0.0617201269996609,0.0616089635317577,0.0615190736021098,0.0614688113223823,0.0614688113223823, +0.117180141398356,0.117180141398356,0.117214360058151,0.117136133528193,0.116977117608306,0.116776762046626,0.116576127321706,0.116413993595921,0.116322945136117,0.116322945136117, +0.207958805867871,0.207958805867871,0.207968724731425,0.207807672931046,0.207525397914637,0.207183027973434,0.206843454581919,0.206567756170445,0.206411161373245,0.206411161373245, +0.343238491598588,0.343238491598588,0.343188231334961,0.342893087299606,0.342430237263228,0.341888128113054,0.341353415345913,0.340913090400329,0.34065614620474,0.34065614620474, +0.526331080944735,0.526331080944735,0.526183225422916,0.52569002869811,0.524986520231564,0.524192257297913,0.523409266701903,0.522743801449109,0.522330156797619,0.522330156797619, +0.75090935943094,0.75090935943094,0.750670779000901,0.749885277597022,0.748885949948597,0.747811194328498,0.746746550440522,0.745784307243579,0.74509168851401,0.74509168851401, + +00:18:11, +0.0191974934512188,0.0191974934512188,0.0192232347877977,0.0192200305181639,0.0191956469806749,0.0191596717978898,0.0191219048101663,0.0190910804211561,0.0190738432342318,0.0190738432342318, +0.0191974934512188,0.0191974934512188,0.0192232347877977,0.0192200305181639,0.0191956469806749,0.0191596717978898,0.0191219048101663,0.0190910804211561,0.0190738432342318,0.0190738432342318, +0.0320204690335518,0.0320204690335518,0.0320512081728458,0.0320398798131184,0.0319979129983349,0.031939479470369,0.0318791786368206,0.0318302189451719,0.0318028636275609,0.0318028636275609, +0.0620257705314536,0.0620257705314536,0.0620623549450772,0.0620294501797423,0.0619462379147716,0.0618366105505609,0.0617253749398874,0.0616354255072124,0.0615851298791042,0.0615851298791042, +0.117343589567982,0.117343589567982,0.117377784375039,0.117299531062613,0.117140478722607,0.116940076661472,0.11673939296298,0.116577219156002,0.116486148637421,0.116486148637421, +0.208163331738375,0.208163331738375,0.208173194354356,0.208012135627946,0.207729878612163,0.207387533103157,0.20704798284455,0.20677230419597,0.206615722146862,0.206615722146862, +0.343457749700511,0.343457749700511,0.343407430973298,0.343112347965986,0.342649629258995,0.342107678831242,0.341573123121831,0.341132930440137,0.34087606639172,0.34087606639172, +0.526520602948238,0.526520602948238,0.526372742865565,0.525879734237648,0.52517652325365,0.524382600964539,0.523599947486252,0.52293477238555,0.522521311421651,0.522521311421651, +0.75102034969076,0.75102034969076,0.750781865120856,0.749996727954836,0.748997875687602,0.747923634294201,0.746859500508629,0.745897719389152,0.745205432906172,0.745205432906172, + +00:18:12, +0.019256605673876,0.019256605673876,0.0192823902492987,0.0192791844995312,0.0192547641960337,0.0192187306670835,0.0191808999950423,0.0191500225084256,0.0191327553537964,0.0191327553537964, +0.019256605673876,0.019256605673876,0.0192823902492987,0.0192791844995312,0.0192547641960337,0.0192187306670835,0.0191808999950423,0.0191500225084256,0.0191327553537964,0.0191327553537964, +0.0320997080282781,0.0320997080282781,0.0321304805026498,0.0321191429477599,0.0320771324716137,0.0320186337968255,0.0319582628697849,0.0319092450138314,0.0318818569454291,0.0318818569454291, +0.0621424248546525,0.0621424248546525,0.0621790198853724,0.0621460940569335,0.0620628325947761,0.0619531372410239,0.0618418296804928,0.0617518209030734,0.0617014920149337,0.0617014920149337, +0.117507010739718,0.117507010739718,0.117541181676284,0.117462901667874,0.117303813096798,0.11710336479825,0.116902632404376,0.116740418745083,0.116649326295326,0.116649326295326, +0.208367735953168,0.208367735953168,0.20837754238663,0.208216476843072,0.207934238013401,0.207591917192178,0.207252390341318,0.206976731681369,0.206820162504363,0.206820162504363, +0.343676803183252,0.343676803183252,0.343626426127546,0.343331404193551,0.34286881686034,0.342327025238971,0.341792626691793,0.341352566356098,0.341095782491629,0.341095782491629, +0.526709901139419,0.526709901139419,0.526562036586497,0.526069215897348,0.525366302143323,0.524572720243113,0.523790403647611,0.523125518487482,0.522712241061035,0.522712241061035, +0.751131191974477,0.751131191974477,0.750892803156051,0.750108029755677,0.749109652267286,0.748035924473139,0.746972300178453,0.746010980573468,0.745319025917385,0.745319025917385, + +00:18:13, +0.0193158104856167,0.0193158104856167,0.0193416382755798,0.0193384310535051,0.0193139740154778,0.0192778821841101,0.0192399878719151,0.0192090573224481,0.0191917602190174,0.0191917602190174, +0.0193158104856167,0.0193158104856167,0.0193416382755798,0.0193384310535051,0.0193139740154778,0.0192778821841101,0.0192399878719151,0.0192090573224481,0.0191917602190174,0.0191917602190174, +0.0321790264213753,0.0321790264213753,0.0322098321881489,0.03219848545599,0.0321564313847198,0.0320978676579646,0.0320374267367278,0.031988350797072,0.0319609300225967,0.0319609300225967, +0.0622591218616396,0.0622591218616396,0.0622957274573273,0.0622627806106649,0.0621794700797017,0.0620697069184669,0.0619583276007415,0.0618682596366623,0.0618178975767336,0.0618178975767336, +0.117670404800229,0.117670404800229,0.117704551848812,0.117626245230807,0.117467120617278,0.117266626342699,0.117065845530919,0.11690359224761,0.116812477993956,0.116812477993956, +0.208572018567364,0.208572018567364,0.208581768883456,0.208420696631391,0.208138476172656,0.207796180293807,0.207456677124447,0.207181038677974,0.207024482496592,0.207024482496592, +0.34389565234101,0.34389565234101,0.343845217091697,0.34355025627606,0.343087800360494,0.342546167628614,0.342011926347199,0.341571998438815,0.34131529479465,0.34131529479465, +0.526898975954711,0.526898975954711,0.526751107021887,0.526258474113585,0.525555857337141,0.52476261557016,0.523980635622353,0.523316040191192,0.522902946152088,0.522902946152088, +0.75124188661145,0.75124188661145,0.751003593436087,0.75021918333018,0.74922128001949,0.748148065198287,0.747084949784016,0.746124091131547,0.745432467883476,0.745432467883476, + +00:18:14, +0.0193751078255202,0.0193751078255202,0.0194009788056161,0.0193977701190676,0.019373276378096,0.0193371262882387,0.0192991683802621,0.0192681848028825,0.0192508577696586,0.0192508577696586, +0.0193751078255202,0.0193751078255202,0.0194009788056161,0.0193977701190676,0.019373276378096,0.0193371262882387,0.0192991683802621,0.0192681848028825,0.0192508577696586,0.0192508577696586, +0.032258424104392,0.032258424104392,0.0322892631209094,0.0322779072293966,0.0322358096292756,0.0321771809454622,0.032116670129393,0.0320675361867033,0.0320400827509135,0.0320400827509135, +0.0623758614004029,0.0623758614004029,0.0624124775091196,0.062379509689119,0.0622961502175841,0.0621863194306891,0.0620748685481825,0.06198474155533,0.0619343464117476,0.0619343464117476, +0.117833771636775,0.117833771636775,0.117867894780144,0.117789561638836,0.117630401171041,0.117429861181153,0.117229032228234,0.117066739548622,0.11697560361803,0.11697560361803, +0.208776179636399,0.208776179636399,0.208785873900364,0.208624795048187,0.208342593144552,0.208000322461678,0.207660843246491,0.20738522523745,0.207228682174723,0.207228682174723, +0.344114297467533,0.344114297467533,0.344063804159293,0.343768904506823,0.343306580052241,0.342765106292102,0.34223102237901,0.341791226978459,0.341534603590533,0.341534603590533, +0.527087827829407,0.527087827829407,0.526939954606761,0.526447509321591,0.525745189270518,0.524952287381064,0.524170643845711,0.523506337931827,0.523093427129991,0.523093427129991, +0.751352433930022,0.751352433930022,0.751114236289548,0.750330189007958,0.749332759275034,0.748260056801594,0.747197449658311,0.746237051397379,0.745545759139237,0.745545759139237, + +00:18:15, +0.0194344976324483,0.0194344976324483,0.0194604117781653,0.0194572016349832,0.0194326712227597,0.0193964629185199,0.0193584414593414,0.0193274048891674,0.0193100479452636,0.0193100479452636, +0.0194344976324483,0.0194344976324483,0.0194604117781653,0.0194572016349832,0.0194326712227597,0.0193964629185199,0.0193584414593414,0.0193274048891674,0.0193100479452636,0.0193100479452636, +0.0323379009688965,0.0323379009688965,0.0323687731925179,0.0323574081595877,0.032315267096923,0.0322565735510131,0.0321959929395428,0.0321468010745519,0.0321193150222462,0.0321193150222462, +0.0624926433193128,0.0624926433193128,0.0625292698893088,0.0624962811408605,0.0624128728568406,0.0623029746258707,0.0621914523707457,0.0621012665068076,0.0620508383675996,0.0620508383675996, +0.117997111137209,0.117997111137209,0.118031210358389,0.117952850779975,0.117793654645671,0.117593069200537,0.117392192382535,0.117229860533757,0.117138703052866,0.117138703052866, +0.208980219216027,0.208980219216027,0.208989857493203,0.208828772149067,0.208546588984039,0.20820434374975,0.20786488876033,0.207589291411791,0.207432761590264,0.207432761590264, +0.344332738856124,0.344332738856124,0.344282187623425,0.343987349178702,0.34352515622792,0.342983841520925,0.342449915077749,0.342010252264764,0.3417537091686,0.3417537091686, +0.527276457197653,0.527276457197653,0.527128579775007,0.526636321955453,0.525934298377727,0.525141736110068,0.524360428751783,0.5236964121434,0.523283684428789,0.523283684428789, +0.751462834257523,0.751462834257523,0.751224732044007,0.750441047117612,0.749444090363716,0.748371899613988,0.74730980013331,0.746349861703928,0.745658900018438,0.745658900018438, + +00:18:16, +0.0194939798450459,0.0194939798450459,0.0195199371317689,0.0195167255398005,0.0194921584881234,0.0194558920137872,0.0194178070481928,0.0193867175205227,0.0193693306851562,0.0193693306851562, +0.0194939798450459,0.0194939798450459,0.0195199371317689,0.0195167255398005,0.0194921584881234,0.0194558920137872,0.0194178070481928,0.0193867175205227,0.0193693306851562,0.0193693306851562, +0.032417456906478,0.032417456906478,0.0324483622945818,0.0324369881381919,0.0323948036793242,0.0323360453663314,0.0322753950589577,0.0322261453524622,0.0321986267284789,0.0321986267284789, +0.0626094674671214,0.0626094674671214,0.0626461044468357,0.0626130948148346,0.0625296378462691,0.0624196723525725,0.0623080789167411,0.0622178343392063,0.0621673732922934,0.0621673732922934, +0.118160423189973,0.118160423189973,0.118194498472246,0.118116112542827,0.117956880929341,0.117756250288369,0.117555325880632,0.117392955089243,0.117301776184372,0.117301776184372, +0.20918413736232,0.20918413736232,0.209193719718136,0.209032627989951,0.208750463746379,0.208408244212304,0.208068813719169,0.207793237253321,0.207636720795052,0.207636720795052, +0.344550976799636,0.344550976799636,0.34450036777674,0.34420559058411,0.343743529179425,0.343202373606131,0.342668604733506,0.342229074587035,0.341972611817739,0.341972611817739, +0.527464864492459,0.527464864492459,0.527316982959372,0.526824912448122,0.526123185091902,0.525330962190281,0.524549990773529,0.523886263258794,0.523473718481399,0.523473718481399, +0.751573087920279,0.751573087920279,0.751335081026027,0.750551757986727,0.749555273614323,0.748483593965381,0.747422001539964,0.746462522383137,0.745771890853822,0.745771890853822, + +00:18:17, +0.0195535544017423,0.0195535544017423,0.0195795548047537,0.019576341771853,0.0195517381126267,0.0195154135126577,0.0194772650856391,0.0194461226359503,0.0194287059284422,0.0194287059284422, +0.0195535544017423,0.0195535544017423,0.0195795548047537,0.019576341771853,0.0195517381126267,0.0195154135126577,0.0194772650856391,0.0194461226359503,0.0194287059284422,0.0194287059284422, +0.0324970918087465,0.0324970918087465,0.0325280303187297,0.0325166470568594,0.0324744192681623,0.0324155962831516,0.0323548763794374,0.0323055689122973,0.0322780177615133,0.0322780177615133, +0.0627263336929615,0.0627263336929615,0.0627629810310216,0.0627299505603669,0.0626464450350476,0.0625364124597352,0.0624247480348583,0.0623344449010162,0.0622839510342112,0.0622839510342112, +0.118323707684097,0.118323707684097,0.118357759011002,0.118279346816583,0.118120079910813,0.117919404332755,0.117718432609922,0.1175560231019,0.117464822899049,0.117464822899049, +0.209387934131665,0.209387934131665,0.20939746063164,0.209236362627074,0.208954217487155,0.208612023903939,0.208272618176538,0.207997062814688,0.207840559841251,0.207840559841251, +0.344769011590472,0.344769011590472,0.344718344911433,0.344423629015015,0.343961699198203,0.343420702838327,0.342887091635932,0.342447694234143,0.342191311826409,0.342191311826409, +0.5276530501457,0.5276530501457,0.527505164591474,0.527013281231414,0.526311849845046,0.52551996605368,0.524739330342786,0.524075891709763,0.523663529719609,0.523663529719609, +0.75168319524361,0.75168319524361,0.751445283561168,0.750662321941886,0.74966630935463,0.74859514018467,0.74753405420821,0.746575033765934,0.745884731977115,0.745884731977115, + +00:18:18, +0.0196132212407527,0.0196132212407527,0.0196392647352324,0.0196360502692605,0.0196114100344943,0.0195750273535333,0.0195368155102871,0.0195056201742352,0.01948817361401,0.01948817361401, +0.0196132212407527,0.0196132212407527,0.0196392647352324,0.0196360502692605,0.0196114100344943,0.0195750273535333,0.0195368155102871,0.0195056201742352,0.01948817361401,0.01948817361401, +0.0325768055673337,0.0325768055673337,0.0326077771566123,0.0325963848072619,0.0325541137551415,0.0324952261932284,0.0324344367928014,0.0323850716459387,0.0323574880132698,0.0323574880132698, +0.0628432418463462,0.0628432418463462,0.0628798994915674,0.0628468482271625,0.0627632942727335,0.0626531947966784,0.0625414595741656,0.0624510980411059,0.0624005714421139,0.0624005714421139, +0.118486964509195,0.118486964509195,0.118520991864525,0.118442553491017,0.118283251479432,0.118082531222385,0.11788151245839,0.117719064459135,0.117627843083986,0.117627843083986, +0.209591609580759,0.209591609580759,0.209601080290505,0.209439976116981,0.209157850262259,0.20881568287957,0.208476302186284,0.208200768148861,0.208044278781349,0.208044278781349, +0.344986843520592,0.344986843520592,0.344936119319254,0.344641464762937,0.34417966657526,0.343638829507681,0.343105376074243,0.342666111494527,0.342409809482638,0.342409809482638, +0.527841014588121,0.527841014588121,0.527693125101796,0.527201428736015,0.526500293068028,0.525708748131113,0.524928447890261,0.524265297926939,0.523853118574086,0.523853118574086, +0.751793156551839,0.751793156551839,0.751555339973991,0.750772739308663,0.749777197911404,0.748706538599745,0.747645958466973,0.74668739618223,0.745997423719026,0.745997423719026, + +00:18:19, +0.0196729803000787,0.0196729803000787,0.0196990668611048,0.0196958509699299,0.019671174191738,0.0196347334746022,0.0195964582605286,0.0195652100739468,0.019547733680532,0.019547733680532, +0.0196729803000787,0.0196729803000787,0.0196990668611048,0.0196958509699299,0.019671174191738,0.0196347334746022,0.0195964582605286,0.0195652100739468,0.019547733680532,0.019547733680532, +0.0326565980738938,0.0326565980738938,0.0326876026999027,0.0326762012810935,0.0326338870319882,0.0325749349883378,0.0325140761908894,0.0324646534452879,0.0324370373756879,0.0324370373756879, +0.0629601917771682,0.0629601917771682,0.0629968596785532,0.0629637876653054,0.0628801854092628,0.0627700192131002,0.0626582133841094,0.0625677936087217,0.0625172343651396,0.0625172343651396, +0.118650193555466,0.118650193555466,0.118684196923268,0.118605732456483,0.118446395525127,0.118245630846535,0.118044565314607,0.117882079048944,0.117790836626858,0.117790836626858, +0.209795163766612,0.209795163766612,0.209804578751826,0.209643468516529,0.209361362127899,0.209019221194428,0.208679865802575,0.208404353309134,0.208247877668156,0.208247877668156, +0.345204472881504,0.345204472881504,0.345153691291504,0.344859098118949,0.344397431601156,0.343856753903919,0.343323458337219,0.342884326656193,0.342628105074025,0.342628105074025, +0.52802875824934,0.52802875824934,0.527880864919697,0.527389355391485,0.526688515190594,0.525897308852303,0.52511734384554,0.524454482339832,0.524042485474377,0.524042485474377, +0.751902972168291,0.751902972168291,0.751665250588059,0.750883010411639,0.749887939610413,0.74881778953749,0.747757714644173,0.746799609960931,0.746109966409255,0.746109966409255, + +00:18:20, +0.0197328315175095,0.0197328315175095,0.0197589611200593,0.0197557438115564,0.0197310305221573,0.0196945318138393,0.0196561932745415,0.0196248922734399,0.0196073860664655,0.0196073860664655, +0.0197328315175095,0.0197328315175095,0.0197589611200593,0.0197557438115564,0.0197310305221573,0.0196945318138393,0.0196561932745415,0.0196248922734399,0.0196073860664655,0.0196073860664655, +0.0327364692201036,0.0327364692201036,0.032767506840297,0.0327560963700715,0.0327137389904512,0.0326547225602777,0.0325937944655619,0.0325443142022662,0.0325166657407267,0.0325166657407267, +0.0630771833356987,0.0630771833356987,0.0631138614424374,0.0630807687252574,0.0629971182949495,0.0628868855590765,0.0627750093145132,0.062684531453487,0.0626339396528032,0.0626339396528032, +0.118813394713688,0.118813394713688,0.118847374078262,0.118768883603917,0.118609511938407,0.118408703095062,0.118207591067726,0.118045066759903,0.117953803415927,0.117953803415927, +0.209998596746539,0.209998596746539,0.210007956073009,0.20984683988288,0.209564753140589,0.209222638904057,0.208883309079893,0.208607818349118,0.208451356554805,0.208451356554805, +0.345421899964272,0.345421899964272,0.345371061119037,0.345076529373678,0.344614994566007,0.34407447631633,0.343541338713205,0.343102340006716,0.342846198887739,0.342846198887739, +0.52821628155785,0.52821628155785,0.528068384473414,0.527577061626259,0.526876516641366,0.526085648645855,0.525306018637092,0.524643445376838,0.524231630848914,0.524231630848914, +0.752012642415304,0.752012642415304,0.751775015725943,0.750993135574394,0.749998534776423,0.748928893323788,0.747869323066725,0.746911675429935,0.746222360376492,0.746222360376492, + +00:18:21, +0.0197927748306234,0.0197927748306234,0.0198189474495734,0.0198157287316245,0.0197909789633407,0.0197544223090077,0.0197160204902909,0.0196846667108559,0.0196671307100538,0.0196671307100538, +0.0197927748306234,0.0197927748306234,0.0198189474495734,0.0198157287316245,0.0197909789633407,0.0197544223090077,0.0197160204902909,0.0196846667108559,0.0196671307100538,0.0196671307100538, +0.0328164188976632,0.0328164188976632,0.0328474894695149,0.0328360699659363,0.032793669522302,0.032734588800868,0.032673591508701,0.0326240538088155,0.0325963730003653,0.0325963730003653, +0.063194216372587,0.063194216372587,0.0632309046340558,0.063197791257858,0.0631140927804845,0.06300379368506,0.0628918472155776,0.0628013114254014,0.0627506871549958,0.0627506871549958, +0.118976567875221,0.118976567875221,0.119010523221117,0.118932006824832,0.118772600610358,0.118571747858402,0.118370589607481,0.118208027481172,0.118116743340034,0.118116743340034, +0.210201908578163,0.210201908578163,0.210211212311761,0.210050090273501,0.209768023357151,0.20942593606431,0.209086632073034,0.208811163322738,0.208654715494743,0.208654715494743, +0.345639125059513,0.345639125059513,0.345588229092264,0.345293758817305,0.344832355759486,0.34429199703376,0.343759017490111,0.343320151833241,0.343064091210518,0.343064091210518, +0.528403584941028,0.528403584941028,0.528255684190064,0.527764547867653,0.527064297847849,0.526273767939256,0.525494472692272,0.524832187465239,0.524420555125016,0.524420555125016, +0.752122167614223,0.752122167614223,0.751884635709228,0.751103115119519,0.750108983733208,0.749039850283525,0.747980784060545,0.74702359291614,0.746334605948427,0.746334605948427, + +00:18:22, +0.0198528101767883,0.0198528101767883,0.0198790257869149,0.0198758056674092,0.0198510194526666,0.0198144048976599,0.0197759398455305,0.0197445333241234,0.0197269675493274,0.0197269675493274, +0.0198528101767883,0.0198528101767883,0.0198790257869149,0.0198758056674092,0.0198510194526666,0.0198144048976599,0.0197759398455305,0.0197445333241234,0.0197269675493274,0.0197269675493274, +0.0328964469982966,0.0328964469982966,0.0329275504793004,0.0329161219604527,0.0328736785193362,0.0328145336019514,0.0327534672122104,0.032703872156899,0.0326761590466037,0.0326761590466037, +0.06331129073886,0.06331129073886,0.0633479891046213,0.0633148551143231,0.0632311087169356,0.0631207434418798,0.0630087269378789,0.0629181333748402,0.062867476721984,0.062867476721984, +0.119139712931999,0.119139712931999,0.119173644244016,0.119095102011316,0.118935661432645,0.118734765027569,0.118533560824185,0.118370961102492,0.118279656288603,0.118279656288603, +0.21040509931941,0.21040509931941,0.210414347526095,0.210253219746163,0.209971172834712,0.209629112731347,0.209289834837107,0.209014388284238,0.208857954541735,0.208857954541735, +0.345856148457398,0.345856148457398,0.345805195501145,0.345510786739566,0.345049515470822,0.344509316344618,0.343976494955413,0.34353776242248,0.343281782328674,0.343281782328674, +0.528590668825131,0.528590668825131,0.528442764495649,0.527951814541871,0.527251859236431,0.526461667158878,0.525682706437323,0.525020709031209,0.524609258728896,0.524609258728896, +0.752231548085415,0.752231548085415,0.751994110858511,0.751212949368618,0.750219286803549,0.749150660740594,0.748092097950555,0.747135362745447,0.746446703451749,0.746446703451749, + +00:18:23, +0.0199129374931634,0.0199129374931634,0.0199391960691434,0.019935974555977,0.0199111519273044,0.0198744795171384,0.0198359512778029,0.0198044920509599,0.0197868965221049,0.0197868965221049, +0.0199129374931634,0.0199129374931634,0.0199391960691434,0.019935974555977,0.0199111519273044,0.0198744795171384,0.0198359512778029,0.0198044920509599,0.0197868965221049,0.0197868965221049, +0.0329765534137524,0.0329765534137524,0.0330076897614219,0.0329962522454097,0.0329537658733731,0.0328945568553943,0.0328334214680166,0.0327837691385015,0.0327560237714631,0.0327560237714631, +0.0634284062859209,0.0634284062859209,0.063465114705723,0.0634319601462448,0.0633481659557461,0.0632377346807403,0.0631256483323686,0.0630349971525536,0.0629843082044089,0.0629843082044089, +0.11930282977653,0.11930282977653,0.11933673703972,0.11925816905603,0.119098694297504,0.118897754494152,0.118696504608726,0.118533867514177,0.118442542151633,0.118442542151633, +0.210608169028505,0.210608169028505,0.210617361774321,0.210456228358938,0.2101742016307,0.209832168961637,0.209492917427527,0.20921749328817,0.20906107374986,0.20906107374986, +0.346072970447652,0.346072970447652,0.346021960635196,0.345727613429752,0.345266473988803,0.344726434536875,0.344193771396152,0.343755172060716,0.343499272528086,0.343499272528086, +0.528777533635306,0.528777533635306,0.528629625815061,0.528138862074,0.527439201232389,0.526649346729985,0.52587072029738,0.525209010499816,0.524797742085661,0.524797742085661, +0.752340784148265,0.752340784148265,0.752103441493412,0.751322638642312,0.750329444309242,0.749261325017899,0.748203265060686,0.747246985242762,0.746558653212153,0.746558653212153, + +00:18:24, +0.0199731567166994,0.0199731567166994,0.0199994582331109,0.0199962353341869,0.0199713763242158,0.0199346461045772,0.0198960547244416,0.0198645428288726,0.0198469175659943,0.0198469175659943, +0.0199731567166994,0.0199731567166994,0.0199994582331109,0.0199962353341869,0.0199713763242158,0.0199346461045772,0.0198960547244416,0.0198645428288726,0.0198469175659943,0.0198469175659943, +0.0330567380358039,0.0330567380358039,0.0330879072076731,0.0330764607126217,0.0330339314762567,0.0329746584530866,0.0329134541680689,0.0328637446456302,0.0328359670669867,0.0328359670669867, +0.0635455628655489,0.0635455628655489,0.0635822812893253,0.0635491062055901,0.0634652643487344,0.0633547672532211,0.0632426112503729,0.0631519026096661,0.0631011814532859,0.0631011814532859, +0.119465918301897,0.119465918301897,0.119499801501555,0.119421207852208,0.119261699097743,0.119060716150313,0.118859420852569,0.118696746607121,0.118605400819701,0.118605400819701, +0.210811117763976,0.210811117763976,0.210820255115049,0.210659116170193,0.210377109802846,0.210035104811948,0.209695879900019,0.209420478389397,0.209264073173506,0.209264073173506, +0.346289591319554,0.346289591319554,0.34623852478349,0.34594423917671,0.345483231601773,0.344943351898062,0.344410847098936,0.343972381033801,0.34371656209421,0.34371656209421, +0.528964179795594,0.528964179795594,0.528816268572082,0.528325690888023,0.527626324259892,0.526836807076737,0.526058514696477,0.525397092295026,0.524986005619316,0.524986005619316, +0.75244987612118,0.75244987612118,0.752212627932573,0.75143218326024,0.750439456571099,0.749371843437359,0.74831428571388,0.747358460732005,0.74667045555434,0.74667045555434, + +00:18:25, +0.0200334677841406,0.0200334677841406,0.0200598122154629,0.0200565879386917,0.0200316925801554,0.0199949045969027,0.0199562501225713,0.0199246855951593,0.0199070306183937,0.0199070306183937, +0.0200334677841406,0.0200334677841406,0.0200598122154629,0.0200565879386917,0.0200316925801554,0.0199949045969027,0.0199562501225713,0.0199246855951593,0.0199070306183937,0.0199070306183937, +0.0331370007562502,0.0331370007562502,0.0331682027098735,0.0331567472539285,0.0331141752198564,0.0330548382869428,0.0329935652043403,0.0329437985703151,0.0329159888252399,0.0329159888252399, +0.0636627603298984,0.0636627603298984,0.0636994887077674,0.0636662931447008,0.0635824037480934,0.0634718410112758,0.0633596155435916,0.0632688495976756,0.0632180963200034,0.0632180963200034, +0.119628978401751,0.119628978401751,0.119662837523422,0.119584218293649,0.119424675726743,0.119223649888785,0.11902230944775,0.118859598272789,0.118768232183958,0.118768232183958, +0.211013945584645,0.211013945584645,0.211023027607183,0.210861883238596,0.210579897409178,0.210237920339355,0.209898722310612,0.20962334364309,0.209466952867373,0.209466952867373, +0.346506011361939,0.346506011361939,0.346454888234652,0.34616066426884,0.345699788597636,0.345160068715272,0.344627722349937,0.344189389627156,0.343933651312068,0.343933651312068, +0.529150607728926,0.529150607728926,0.529002693189391,0.528512301406814,0.527813228742007,0.527024048622187,0.526246090057545,0.525584954839708,0.525174049752772,0.525174049752772, +0.7525588243216,0.7525588243216,0.752321670493662,0.751541583541066,0.750549323908954,0.749482216319911,0.748425160232097,0.747469789536106,0.746782110802026,0.746782110802026, + +00:18:26, +0.0200938706320252,0.0200938706320252,0.0201202579526399,0.0201170323059388,0.0200921006316724,0.0200552549308346,0.0200165374091096,0.0199849202869097,0.0199672356164929,0.0199672356164929, +0.0200938706320252,0.0200938706320252,0.0201202579526399,0.0201170323059388,0.0200921006316724,0.0200552549308346,0.0200165374091096,0.0199849202869097,0.0199672356164929,0.0199672356164929, +0.0332173414669161,0.0332173414669161,0.0332485761598688,0.0332371117611963,0.0331944969960671,0.0331350962489025,0.033073754468828,0.0330239308046096,0.0329960889383112,0.0329960889383112, +0.0637799985314983,0.0637799985314983,0.0638167368137625,0.0637835208162922,0.0636995840063894,0.0635889558072313,0.063476661064098,0.0633858379684529,0.0633350526563226,0.0633350526563226, +0.119792009970311,0.119792009970311,0.119825844999784,0.119747200274723,0.119587624078448,0.119386555602869,0.119185170286872,0.119022422403216,0.118931036136123,0.118931036136123, +0.21121665254963,0.21121665254963,0.211225679309924,0.211064529623105,0.210782564508018,0.210440615601227,0.210101444715637,0.209826089104726,0.209669712886466,0.209669712886466, +0.346722230863198,0.346722230863198,0.346671051276863,0.346376888994101,0.345916145263853,0.345376585275163,0.344844397434897,0.344406198125773,0.344150540466258,0.344150540466258, +0.529336817857136,0.529336817857136,0.529188900088566,0.528698694052152,0.527999915100698,0.527211071788294,0.526433446802423,0.525772598555636,0.525361874907842,0.525361874907842, +0.752667629065992,0.752667629065992,0.752430569493381,0.751650839802483,0.750659046641666,0.749592443985514,0.748535888936317,0.747580971977017,0.746893619277944,0.746893619277944, + +00:18:27, +0.0201543651966866,0.0201543651966866,0.0201807953808778,0.0201775683721713,0.0201526004151112,0.0201156970428875,0.0200769165207675,0.0200452468410066,0.0200275324972741,0.0200275324972741, +0.0201543651966866,0.0201543651966866,0.0201807953808778,0.0201775683721713,0.0201526004151112,0.0201156970428875,0.0200769165207675,0.0200452468410066,0.0200275324972741,0.0200275324972741, +0.0332977600596534,0.0332977600596534,0.0333290274495317,0.0333175541263178,0.0332748966968101,0.0332154322309307,0.0331540218535537,0.0331041412405908,0.0330762672983124,0.0330762672983124, +0.063897277323251,0.063897277323251,0.0639340254603973,0.063900789073453,0.0638168049765618,0.0637061114937874,0.0635937476643375,0.0635028675742409,0.0634520503143766,0.0634520503143766, +0.119955012902363,0.119955012902363,0.119988823825671,0.119910153690361,0.11975054404737,0.119549433186433,0.119348003263111,0.119185218891007,0.119093812568489,0.119093812568489, +0.211419238718342,0.211419238718342,0.21142821028276,0.211267055382972,0.210985111157986,0.210643190655234,0.210304047171727,0.210028714830084,0.209872353286095,0.209872353286095, +0.346938250111276,0.346938250111276,0.346887014197861,0.346592913640007,0.346132301887443,0.345592901863952,0.345060872639124,0.344622806814216,0.34436722984095,0.34436722984095, +0.529522810600959,0.529522810600959,0.529374889690089,0.528884869244713,0.528186383756834,0.527397876995919,0.526620585351853,0.525960023863494,0.525549481505254,0.525549481505254, +0.752776290669864,0.752776290669864,0.752539325247464,0.751759952361215,0.750768625087122,0.749702526753154,0.748646472146544,0.747692008375711,0.747004981303845,0.747004981303845, + +00:18:28, +0.0202149514142547,0.0202149514142547,0.0202414244362097,0.0202381960734294,0.0202131918666124,0.0201762308693714,0.0201373873940509,0.0201056651941266,0.0200879211975128,0.0200879211975128, +0.0202149514142547,0.0202149514142547,0.0202414244362097,0.0202381960734294,0.0202131918666124,0.0201762308693714,0.0201373873940509,0.0201056651941266,0.0200879211975128,0.0200879211975128, +0.0333782564263407,0.0333782564263407,0.0334095564707618,0.0333980742412132,0.0333553742140334,0.0332958461250184,0.0332343672505644,0.0331844297703606,0.0331565237973795,0.0331565237973795, +0.0640145965584323,0.0640145965584323,0.0640513545011306,0.064018097769644,0.0639340665119221,0.0638233079240157,0.0637108751971274,0.0636199382676539,0.0635690891466698,0.0635690891466698, +0.120117987093256,0.120117987093256,0.120151773896676,0.120073078436059,0.119913435528583,0.11971228253391,0.119510808270205,0.119347987629335,0.119256561373913,0.119256561373913, +0.21162170415048,0.21162170415048,0.211630620585472,0.211469460577739,0.211187537417991,0.210845645559339,0.210506529735812,0.210231220875244,0.210074874121872,0.210074874121872, +0.347154069393676,0.347154069393676,0.34710277728494,0.34680873849363,0.346348258754988,0.345809018767422,0.345277148247491,0.344839215976617,0.344583719719885,0.344583719719885, +0.529708586380037,0.529708586380037,0.529560662413348,0.529070827404084,0.528372635130188,0.527584464664834,0.526807506125491,0.526147231182876,0.525736869964644,0.525736869964644, +0.752884809447758,0.752884809447758,0.752647938070685,0.751868921533022,0.750878059562241,0.749812464940847,0.748756910181812,0.747802899052188,0.747116197200505,0.747116197200505, + +00:18:29, +0.0202756292206565,0.0202756292206565,0.0203021450544664,0.0202989153455509,0.0202738749221143,0.0202368563463928,0.0201979499652613,0.0201661752827413,0.0201484016537796,0.0201484016537796, +0.0202756292206565,0.0202756292206565,0.0203021450544664,0.0202989153455509,0.0202738749221143,0.0202368563463928,0.0201979499652613,0.0201661752827413,0.0201484016537796,0.0201484016537796, +0.0334588304588842,0.0334588304588842,0.033490163115487,0.03347867199783,0.0334359294397122,0.0333763378231833,0.0333147905519327,0.0332647962860456,0.033236858327673,0.033236858327673, +0.0641319560906901,0.0641319560906901,0.0641687237897936,0.0641354467586977,0.0640513684661533,0.0639405449513592,0.0638280435156557,0.0637370499016768,0.0636861690060768,0.0636861690060768, +0.1202809324389,0.1202809324389,0.120314695108951,0.120235974407871,0.120076298417723,0.119875103540295,0.119673585202457,0.119510728511934,0.119419282445818,0.119419282445818, +0.211824048906036,0.211824048906036,0.211832910278128,0.211671745267235,0.211389843347233,0.211047980371798,0.210708892465119,0.210433607296588,0.210277275449712,0.210277275449712, +0.347369688997457,0.347369688997457,0.347318340824949,0.347024363841598,0.346564016152624,0.346024936270918,0.345493224544443,0.345055425896683,0.344800010386379,0.344800010386379, +0.529894145612919,0.529894145612919,0.529746218676642,0.529256568948757,0.528558669639447,0.527770835213721,0.526994209541905,0.526334220932296,0.525924040704569,0.525924040704569, +0.752993185713264,0.752993185713264,0.752756408276861,0.751977747632704,0.75098735038298,0.749922258865644,0.748867203360183,0.747913644325475,0.747227267287728,0.747227267287728, + +00:18:30, +0.0203363985516175,0.0203363985516175,0.0203629571712774,0.0203597261241727,0.0203346495173536,0.0202975734098564,0.0202586041704973,0.0202267770431184,0.0202089738024402,0.0202089738024402, +0.0203363985516175,0.0203363985516175,0.0203629571712774,0.0203597261241727,0.0203346495173536,0.0202975734098564,0.0202586041704973,0.0202267770431184,0.0202089738024402,0.0202089738024402, +0.0335394820492184,0.0335394820492184,0.0335708472756633,0.0335593472881444,0.0335165622658497,0.03345690721747,0.0333952916497577,0.0333452406797981,0.0333172707813784,0.0333172707813784, +0.0642493557740437,0.0642493557740437,0.0642861331805882,0.0642528358948174,0.0641687106933091,0.0640578224296315,0.0639452524734812,0.0638542023296648,0.0638032897458424,0.0638032897458424, +0.120443848835765,0.120443848835765,0.120477587359207,0.120398841502412,0.120239132610985,0.120037896101143,0.11983633395473,0.119673441433104,0.11958197567819,0.11958197567819, +0.212026273045285,0.212026273045285,0.212035079421081,0.211873909511575,0.211592029005199,0.211250195151159,0.210911135417169,0.210635874150791,0.210479557325826,0.210479557325826, +0.347585109209235,0.347585109209235,0.347533705104297,0.347239789970097,0.346779574366053,0.346240654659349,0.345709101813989,0.345271436857689,0.345016102123322,0.345016102123322, +0.530079488717072,0.530079488717072,0.529931558897183,0.529442094296143,0.528744487702211,0.527956989060178,0.527180696018584,0.526520993529186,0.526110994142505,0.526110994142505, +0.753101419779017,0.753101419779017,0.752864736178856,0.752086430974103,0.751096497864335,0.750031908843632,0.748977351998759,0.748024244513636,0.747338191884351,0.747338191884351, + +00:18:31, +0.0203972593426628,0.0203972593426628,0.0204238607220727,0.0204206283447317,0.0203955155878666,0.0203583819954651,0.0203193499456551,0.0202874704113229,0.0202696375796574,0.0202696375796574, +0.0203972593426628,0.0203972593426628,0.0204238607220727,0.0204206283447317,0.0203955155878666,0.0203583819954651,0.0203193499456551,0.0202874704113229,0.0202696375796574,0.0202696375796574, +0.0336202110893065,0.0336202110893065,0.0336516088432756,0.0336401000041611,0.0335972725844774,0.033537554199951,0.0334758704361649,0.0334257628437962,0.0333977610507068,0.0333977610507068, +0.0643667954628834,0.0643667954628834,0.0644035825280871,0.0643702650325767,0.0642860930478133,0.0641751402130159,0.0640625019245317,0.0639713954053419,0.0639204512195802,0.0639204512195802, +0.120606736180879,0.120606736180879,0.120640450544711,0.12056167961685,0.120401938005119,0.120200660112566,0.11999905442245,0.119836126287703,0.119744640965575,0.119744640965575, +0.212228376628786,0.212228376628786,0.212237128074966,0.212075953371157,0.211794094451662,0.211452289956256,0.211113258649775,0.210838021494824,0.210681719806722,0.210681719806722, +0.347800330315184,0.347800330315184,0.347748870408947,0.347455017164872,0.346994933680532,0.346456174217189,0.34592478033971,0.345487249142485,0.345231995213175,0.345231995213175, +0.530264616108875,0.530264616108875,0.530116683491101,0.529627403862566,0.528930089734995,0.528142926620724,0.527366965971936,0.526707549389901,0.526297730694852,0.526297730694852, +0.753209511956702,0.753209511956702,0.752972922088581,0.752194971870108,0.751205502320346,0.75014141518994,0.74908735641368,0.748134699933771,0.747448971308246,0.747448971308246, + +00:18:32, +0.0204582115291178,0.0204582115291178,0.0204848556420829,0.0204816219424658,0.02045647306899,0.0204192820387222,0.0203801872264302,0.0203482553232179,0.0203303929213918,0.0203303929213918, +0.0204582115291178,0.0204582115291178,0.0204848556420829,0.0204816219424658,0.02045647306899,0.0204192820387222,0.0203801872264302,0.0203482553232179,0.0203303929213918,0.0203303929213918, +0.0337010174711406,0.0337010174711406,0.0337324477103385,0.0337209300379142,0.0336780602876556,0.0336182786627266,0.0335565268033074,0.0335063626702448,0.0334783290278956,0.0334783290278956, +0.0644842750119698,0.0644842750119698,0.0645210716872322,0.0644877340269187,0.064403515384459,0.064292498156065,0.0641797917231042,0.0640886289828012,0.0640376532812724,0.0640376532812724, +0.120769594371824,0.120769594371824,0.120803284563285,0.120724488648909,0.120564714497431,0.120363395471233,0.120161746501595,0.119998782971149,0.119907278203079,0.119907278203079, +0.212430359717383,0.212430359717383,0.2124390563007,0.212277876906663,0.211996039746678,0.211654264846214,0.21131526222104,0.211040049385952,0.210883762949202,0.210883762949202, +0.348015352601034,0.348015352601034,0.347963837024422,0.347670045711226,0.347210094380882,0.346671495228476,0.346140260404754,0.345702863033491,0.345447689937975,0.345447689937975, +0.530449528203631,0.530449528203631,0.530301592873448,0.529812498063273,0.529115476153238,0.528328648310799,0.527553019817295,0.526893888929723,0.526484250776938,0.526484250776938, +0.75331746255706,0.75331746255706,0.753080966317003,0.752303370632661,0.751314364064102,0.750250778218743,0.749197216920128,0.748245010902022,0.747559605876322,0.747559605876322, + +00:18:33, +0.0205192550461096,0.0205192550461096,0.0205459418663409,0.0205427068524151,0.0205175218958625,0.0204802734749314,0.0204411159483178,0.0204091317144658,0.0203912397634026,0.0203912397634026, +0.0205192550461096,0.0205192550461096,0.0205459418663409,0.0205427068524151,0.0205175218958625,0.0204802734749314,0.0204411159483178,0.0204091317144658,0.0203912397634026,0.0203912397634026, +0.0337819010867428,0.0337819010867428,0.033813363768896,0.0338018372814677,0.0337589252674739,0.033699080497926,0.033637260643366,0.0335870400513758,0.0335589746052088,0.0335589746052088, +0.0646017942764327,0.0646017942764327,0.0646386005133349,0.064605242733155,0.0645209775584078,0.0644098961136996,0.0642971217238639,0.0642059029165033,0.0641548957852687,0.0641548957852687, +0.120932423306735,0.120932423306735,0.120966089313301,0.120887268496865,0.12072746198578,0.120526102074368,0.120324410088702,0.120161411379414,0.120069887286365,0.120069887286365, +0.212632222372197,0.212632222372197,0.21264086415948,0.21247968017905,0.212197864950584,0.211856119880438,0.211517146189354,0.211241957881729,0.211085686810359,0.211085686810359, +0.348230176352076,0.348230176352076,0.348178605235803,0.347884875894021,0.347425056751485,0.346886617976812,0.346355542291839,0.345918278812702,0.345663186579335,0.345663186579335, +0.530634225415565,0.530634225415565,0.5304862874582,0.529997377312433,0.529300647371303,0.52851415454477,0.527738857968925,0.527080012562865,0.526670554803021,0.526670554803021, +0.753425271889892,0.753425271889892,0.753188869174147,0.752411627572756,0.75142308340774,0.750359998243264,0.749306933832334,0.748355177733574,0.747670095904533,0.747670095904533, + +00:18:34, +0.0205803898285678,0.0205803898285678,0.0206071193296827,0.0206038830094228,0.0205786620034253,0.0205413562391987,0.0205021360466145,0.0204700995205292,0.0204521780412491,0.0204521780412491, +0.0205803898285678,0.0205803898285678,0.0206071193296827,0.0206038830094228,0.0205786620034253,0.0205413562391987,0.0205021360466145,0.0204700995205292,0.0204521780412491,0.0204521780412491, +0.0338628618281652,0.0338628618281652,0.0338943569110229,0.0338828216269158,0.0338398674160519,0.0337799595977075,0.0337180718485499,0.0336677948794486,0.0336396976749374,0.0336396976749374, +0.0647193531117706,0.0647193531117706,0.0647561688620743,0.0647227910069654,0.0646384794251894,0.0645273339412085,0.0644144917818432,0.0643232170612761,0.0642721785862859,0.0642721785862859, +0.1210952228843,0.1210952228843,0.121128864693682,0.121050019059542,0.120890180368576,0.120688779819744,0.12048704508086,0.120324011409026,0.120232468111648,0.120232468111648, +0.212833964654629,0.212833964654629,0.212842551712778,0.212681363249557,0.212399570123999,0.212057855118617,0.211718910613395,0.211443747039999,0.211287491447578,0.211287491447578, +0.348444801853157,0.348444801853157,0.34839317532773,0.348099507997677,0.347639821076284,0.347101542745367,0.346570626283252,0.346133496761683,0.345878485418439,0.345878485418439, +0.53081870815783,0.53081870815783,0.530670767658259,0.530182042023146,0.52948560380248,0.528699445735935,0.527924480840019,0.527265920702473,0.526856643186295,0.526856643186295, +0.753532940264056,0.753532940264056,0.753296630969098,0.752519743000445,0.751531660662457,0.75046907557578,0.749416507463578,0.748465200742663,0.747780441707882,0.747780441707882, + +00:18:35, +0.0206416158112258,0.0206416158112258,0.0206683879667485,0.0206651503481362,0.0206398933264234,0.020602530266433,0.0205632474564185,0.0205311586766723,0.0205132076902914,0.0205132076902914, +0.0206416158112258,0.0206416158112258,0.0206683879667485,0.0206651503481362,0.0206398933264234,0.020602530266433,0.0205632474564185,0.0205311586766723,0.0205132076902914,0.0205132076902914, +0.0339438995874907,0.0339438995874907,0.0339754270288248,0.0339638829663834,0.0339208866255396,0.0338609158542589,0.0337989603110969,0.0337486270467508,0.0337204981294003,0.0337204981294003, +0.0648369513738499,0.0648369513738499,0.0648737765894974,0.0648403787043969,0.0647560208407002,0.0646448114942471,0.0645319017524415,0.0644405712723139,0.064389501539407,0.064389501539407, +0.121257993003752,0.121257993003752,0.1212916106039,0.121212740236313,0.121052869544774,0.120851428605687,0.120649651375708,0.120486582957063,0.120395020575698,0.120395020575698, +0.213035586626356,0.213035586626356,0.213044119022344,0.212882926179696,0.212601155327815,0.212259470620723,0.211920555552123,0.211645416918891,0.211489176918531,0.211489176918531, +0.348659229388686,0.348659229388686,0.3486075475844,0.348313942306176,0.347854387638785,0.347316269816875,0.346785512660849,0.346348517161575,0.34609358673605,0.34609358673605, +0.531002976842512,0.531002976842512,0.530855033885463,0.530366492607439,0.529670345858991,0.528884522296524,0.528109888842709,0.527451613760632,0.527042516338891,0.527042516338891, +0.75364046798748,0.75364046798748,0.753404252010005,0.752627717224845,0.751640096138504,0.750578010527624,0.749525938126196,0.748575080242577,0.747890643600418,0.747890643600418, + +00:18:36, +0.0207029329286216,0.0207029329286216,0.0207297477119836,0.020726508803008,0.0207012157994065,0.020663795491347,0.0206244501126317,0.0205923091179615,0.0205743286456917,0.0205743286456917, +0.0207029329286216,0.0207029329286216,0.0207297477119836,0.020726508803008,0.0207012157994065,0.020663795491347,0.0206244501126317,0.0205923091179615,0.0205743286456917,0.0205743286456917, +0.0340250142568333,0.0340250142568333,0.0340565740144387,0.0340450211920269,0.0340019827881177,0.0339419491597984,0.0338799259232745,0.0338295364455988,0.0338013758609446,0.0338013758609446, +0.0649545889189043,0.0649545889189043,0.0649914235520179,0.0649580056818632,0.0648736016612036,0.0647623286288373,0.0646493514914238,0.0645579654051769,0.0645068645000807,0.0645068645000807, +0.121420733564876,0.121420733564876,0.12145432694397,0.121375431927096,0.12121552941388,0.121014048331066,0.120812228871435,0.120649125921155,0.120557544575834,0.120557544575834, +0.213237088349328,0.213237088349328,0.213245566150198,0.213084369031252,0.212802620623203,0.212460966447002,0.21212208106478,0.211846967576819,0.211690743281176,0.211690743281176, +0.348873459242629,0.348873459242629,0.348821722289574,0.34852817910306,0.348068756722054,0.347530799473636,0.34700020170606,0.346563340293092,0.346308490812505,0.346308490812505, +0.531187031880627,0.531187031880627,0.531039086550581,0.530550729476279,0.529854873951996,0.529069384637704,0.528295082388064,0.527637092148365,0.527228174671882,0.527228174671882, +0.753747855367161,0.753747855367161,0.753511732604088,0.752735550554134,0.751748390145198,0.750686803409188,0.74963522613158,0.748684816545659,0.748000701895246,0.748000701895246, + +00:18:37, +0.020764341115099,0.020764341115099,0.0207911984996398,0.0207879583082971,0.0207626293567302,0.0207251518484587,0.0206857439499599,0.0206535507792667,0.0206355408424151,0.0206355408424151, +0.020764341115099,0.020764341115099,0.0207911984996398,0.0207879583082971,0.0207626293567302,0.0207251518484587,0.0206857439499599,0.0206535507792667,0.0206355408424151,0.0206355408424151, +0.0341062057283389,0.0341062057283389,0.0341377977600335,0.0341262361960345,0.0340831557959984,0.0340230594065747,0.0339609685773798,0.0339105229683377,0.033882330761946,0.033882330761946, +0.065072265603534,0.065072265603534,0.0651091096064153,0.0650756717961435,0.0649912217433281,0.0648798852013665,0.0647668408549208,0.0646753993157901,0.0646242673241204,0.0646242673241204, +0.121583444467996,0.121583444467996,0.121617013614453,0.121538094032352,0.121378159875941,0.1211766388953,0.120974777466777,0.120811640199479,0.120720040009924,0.120720040009924, +0.213438469885767,0.213438469885767,0.213446893158631,0.213285691866281,0.213003966071605,0.21266234265798,0.212323487210887,0.212048399072478,0.211892190593753,0.211892190593753, +0.349087491698513,0.349087491698513,0.349035699726568,0.348742218671429,0.348282928608722,0.347745131997518,0.347214693699883,0.346777966436522,0.346523197927715,0.346523197927715, +0.531370873682134,0.531370873682134,0.531222926063323,0.530734753039567,0.530039188491589,0.529254033169582,0.528480061886096,0.527822356275642,0.527413618595285,0.527413618595285, +0.753855102709166,0.753855102709166,0.753619073057636,0.752843243295564,0.751856542990921,0.750795454529928,0.749744371790187,0.748794409963312,0.748110616904532,0.748110616904532, + +00:18:38, +0.0208258403048085,0.0208258403048085,0.020852740263776,0.0208494987980696,0.020824133932557,0.0207865992720922,0.0207471289029141,0.0207148835952623,0.0206968442152309,0.0206968442152309, +0.0208258403048085,0.0208258403048085,0.020852740263776,0.0208494987980696,0.020824133932557,0.0207865992720922,0.0207471289029141,0.0207148835952623,0.0206968442152309,0.0206968442152309, +0.0341874738941853,0.0341874738941853,0.0342190981578106,0.0342075278706265,0.0341644055414257,0.0341042464868678,0.0340420881657403,0.0339915865073427,0.0339633627248094,0.0339633627248094, +0.065189981284705,0.065189981284705,0.0652268346098348,0.0651933769043824,0.0651088809440677,0.0649974810685867,0.0648843696994276,0.0647928728604429,0.0647417098677037,0.0647417098677037, +0.121746125613983,0.121746125613983,0.121779670516449,0.121700726453086,0.121540760831546,0.12133920019835,0.121137297061013,0.120974125690756,0.120882506776382,0.120882506776382, +0.213639731298166,0.213639731298166,0.213648100110207,0.213486894747112,0.213205191734736,0.212863599314454,0.212524774050245,0.212249711464847,0.212093518914786,0.212093518914786, +0.349301327039426,0.349301327039426,0.349249480178261,0.348956061293947,0.348496903580983,0.347959267669954,0.347428988922886,0.346992395871728,0.346737708361172,0.346737708361172, +0.531554502655931,0.531554502655931,0.531406552832341,0.530918563706147,0.530223289886811,0.529438468301211,0.528664827745764,0.528007406551378,0.527598848518068,0.527598848518068, +0.753962210318641,0.753962210318641,0.753726273676018,0.752950795755455,0.751964554983124,0.75090396419837,0.749853375411537,0.748903860806003,0.748220388939499,0.748220388939499, + +00:18:39, +0.0208874304317085,0.0208874304317085,0.0209143729382594,0.0209111302062002,0.0208857294608573,0.0208481376963787,0.0208086049058117,0.0207763075004283,0.0207582386987133,0.0207582386987133, +0.0208874304317085,0.0208874304317085,0.0209143729382594,0.0209111302062002,0.0208857294608573,0.0208481376963787,0.0208086049058117,0.0207763075004283,0.0207582386987133,0.0207582386987133, +0.0342688186465833,0.0342688186465833,0.0343004751000041,0.0342888961080563,0.0342457319166761,0.0341855102929893,0.0341232845807143,0.0340727269550187,0.0340444716419695,0.0340444716419695, +0.0653077358197483,0.0653077358197483,0.0653445984197859,0.0653111208640888,0.0652265791207802,0.0651151160876144,0.0650019378818031,0.0649103858957884,0.0648591919873716,0.0648591919873716, +0.121908776904247,0.121908776904247,0.1219422975516,0.121863329090839,0.121703332181827,0.121501732140716,0.121299787553966,0.121136582294252,0.121044944774165,0.121044944774165, +0.213840872649285,0.213840872649285,0.213849187067751,0.213687977736336,0.213406297674579,0.213064736477496,0.212725941642927,0.212450904813178,0.212294728303077,0.212294728303077, +0.349514965548016,0.349514965548016,0.349463063927093,0.349169707252839,0.348710681920594,0.348173206771946,0.347643087655212,0.347206628878147,0.34695202239194,0.34695202239194, +0.531737919209861,0.531737919209861,0.531589967265233,0.531102161883808,0.530407178545643,0.529622690440588,0.528849380374975,0.528192243383443,0.527783864848147,0.527783864848147, +0.754069178499812,0.754069178499812,0.753833334763677,0.753058208239208,0.752072426428332,0.751012332722107,0.74996223730422,0.749013169383267,0.748330018310437,0.748330018310437, + +00:18:40, +0.0209491114295661,0.0209491114295661,0.0209760964567668,0.0209728524663728,0.0209474158754103,0.0209097670552574,0.0208701718927773,0.0208378224290511,0.0208197242272429,0.0208197242272429, +0.0209491114295661,0.0209491114295661,0.0209760964567668,0.0209728524663728,0.0209474158754103,0.0209097670552574,0.0208701718927773,0.0208378224290511,0.0208197242272429,0.0208197242272429, +0.0343502398777767,0.0343502398777767,0.0343819284788817,0.0343703408006103,0.0343271348140588,0.0342668507172829,0.0342045577146917,0.0341539442038017,0.0341256574058913,0.0341256574058913, +0.0654255290663591,0.0654255290663591,0.0654624008941421,0.0654289035331351,0.0653443161311872,0.0652327901159291,0.0651195452592695,0.0650279382788424,0.0649767135400279,0.0649767135400279, +0.122071398240736,0.122071398240736,0.122104894622085,0.122025901847691,0.121865873828451,0.12166423462344,0.121462248845999,0.121299009909776,0.121207353902773,0.121207353902773, +0.214041894002151,0.214041894002151,0.214050154094358,0.213888940896814,0.213607283953384,0.213265754208448,0.212926990049282,0.212651979177003,0.212495818817708,0.212495818817708, +0.349728407506493,0.349728407506493,0.349676451255064,0.34938315682989,0.348924263908877,0.348386949584063,0.347856990176573,0.347420665734791,0.347166140298662,0.347166140298662, +0.531921123750716,0.531921123750716,0.531773169768543,0.53128554797929,0.530590854875021,0.529806699994663,0.52903372018059,0.528376867178658,0.527968667992396,0.527968667992396, +0.754176007555988,0.754176007555988,0.753940256624144,0.7531654810513,0.752180157632147,0.75112056040781,0.750070957775898,0.749122336003708,0.748439505326706,0.748439505326706, + +00:18:41, +0.0210108832319586,0.0210108832319586,0.0210379107527852,0.0210346655120816,0.0210091931098054,0.0209714872824769,0.020931829797744,0.0208994283152248,0.0208813007350074,0.0208813007350074, +0.0210108832319586,0.0210108832319586,0.0210379107527852,0.0210346655120816,0.0210091931098054,0.0209714872824769,0.020931829797744,0.0208994283152248,0.0208813007350074,0.0208813007350074, +0.0344317374800429,0.0344317374800429,0.0344634581867448,0.0344518618406087,0.0344086141259164,0.034348267652125,0.0342859074600938,0.0342352381461584,0.0342069199090704,0.0342069199090704, +0.0655433608825963,0.0655433608825963,0.0655802418911401,0.0655467247697567,0.0654620918333729,0.065350503011373,0.0652371916894111,0.0651455298669829,0.0650942743829384,0.0650942743829384, +0.122233989525935,0.122233989525935,0.122267461630617,0.122188444626257,0.122028385673623,0.121826707548101,0.121624680838015,0.121461408437674,0.121369734062248,0.121369734062248, +0.214242795420053,0.214242795420053,0.214251001253383,0.214089784291667,0.213808150633668,0.213466652568918,0.213127919329931,0.212852934616128,0.212696790518033,0.212696790518033, +0.349941653196627,0.349941653196627,0.349889642443737,0.34959641030645,0.349137649826719,0.348600496386443,0.348070696766254,0.347634506720249,0.347380062359558,0.347380062359558, +0.53210411668424,0.53210411668424,0.531956160747772,0.531468722398283,0.53077431928083,0.529990497369341,0.529217847568425,0.528561278342802,0.528153258356645,0.528153258356645, +0.754282697789566,0.754282697789566,0.754047039560032,0.753272614495294,0.752287748899252,0.751228647561227,0.750179537133311,0.749231360975005,0.748548850296736,0.748548850296736, + +00:18:42, +0.0210727457722737,0.0210727457722737,0.021099815759613,0.0210965692766324,0.0210710610974427,0.0210332983115961,0.0209935785544541,0.0209611250928522,0.0209429681560025,0.0209429681560025, +0.0210727457722737,0.0210727457722737,0.021099815759613,0.0210965692766324,0.0210710610974427,0.0210332983115961,0.0209935785544541,0.0209611250928522,0.0209429681560025,0.0209429681560025, +0.0345133113456936,0.0345133113456936,0.0345450641159293,0.0345334591204062,0.0344901697446253,0.0344297609899252,0.0343673337093746,0.0343166086745874,0.0342882590440337,0.0342882590440337, +0.0656612311268818,0.0656612311268818,0.0656981212693788,0.0656645844325514,0.0655799060857838,0.0654682546321504,0.0653548770301742,0.0652631605179496,0.06521187437373,0.06521187437373, +0.122396550662863,0.122396550662863,0.122429998480442,0.122350957329685,0.12219086762008,0.121989150816812,0.121787083431451,0.12162377777883,0.121532085153166,0.121532085153166, +0.214443576966545,0.214443576966545,0.214451728608444,0.214290507984279,0.214008897778209,0.213667431620783,0.213328729545762,0.213053771190629,0.212897643463684,0.212897643463684, +0.350154702899752,0.350154702899752,0.350102637774236,0.34980946796343,0.349350839954569,0.348813847458792,0.348284207703114,0.347848152112686,0.347593788852427,0.347593788852427, +0.532286898415131,0.532286898415131,0.532138940607374,0.531651685545431,0.530957572167911,0.530174082969481,0.529401762943257,0.528745477280618,0.52833763634569,0.52833763634569, +0.754389249502033,0.754389249502033,0.754153683873049,0.753379608873839,0.752395200533413,0.751336594487188,0.750287975682277,0.749340244603915,0.748658053528036,0.748658053528036, + +00:18:43, +0.0211346989837116,0.0211346989837116,0.0211618114103612,0.0211585636931435,0.0211330197715346,0.0210952000759849,0.0210554180964603,0.0210229126956456,0.0210047264240334,0.0210047264240334, +0.0211346989837116,0.0211346989837116,0.0211618114103612,0.0211585636931435,0.0211330197715346,0.0210952000759849,0.0210554180964603,0.0210229126956456,0.0210047264240334,0.0210047264240334, +0.0345949613670751,0.0345949613670751,0.0346267461588058,0.034615132532392,0.0345718015625962,0.0345113306231265,0.0344488363550208,0.0343980556816193,0.0343696747033396,0.0343696747033396, +0.0657791396579993,0.0657791396579993,0.0658160388878189,0.065782482380478,0.0656977587472275,0.0655860448368265,0.0654726011398661,0.0653808300898427,0.0653295133703905,0.0653295133703905, +0.122559081555072,0.122559081555072,0.12259250507534,0.122513439861655,0.122353319571094,0.122151564332219,0.12194945652828,0.121786117834665,0.121694407076643,0.121694407076643, +0.214644238705437,0.214644238705437,0.214652336223416,0.214491112038294,0.214209525450048,0.213868091426183,0.213529420757934,0.213254488960854,0.21309837771456,0.21309837771456, +0.350367556896764,0.350367556896764,0.350315437527249,0.350022330081304,0.349563834572446,0.349027003080384,0.348497523265584,0.348061602189842,0.347807320054645,0.347807320054645, +0.532469469347048,0.532469469347048,0.532321509750763,0.531834437824341,0.531140613940066,0.530357457198906,0.529585466708826,0.528929464395811,0.528521802363288,0.528521802363288, +0.754495662993971,0.754495662993971,0.754260189863992,0.753486464488677,0.752502512837487,0.751444401489608,0.750396273727698,0.749448987196276,0.748767115327192,0.748767115327192, + +00:18:44, +0.021196742799285,0.021196742799285,0.0212238976379541,0.0212206486945465,0.0211950690651064,0.0211571925088257,0.0211173483571268,0.0210847910571281,0.0210665754727154,0.0210665754727154, +0.021196742799285,0.021196742799285,0.0212238976379541,0.0212206486945465,0.0211950690651064,0.0211571925088257,0.0211173483571268,0.0210847910571281,0.0210665754727154,0.0210665754727154, +0.0346766874365687,0.0346766874365687,0.0347085042077802,0.0346968819689904,0.0346535094722746,0.0345929764442062,0.0345304152895523,0.0344795790598172,0.034451166779579,0.034451166779579, +0.0658970863350941,0.0658970863350941,0.0659339946057822,0.0659004184728564,0.0658156496768724,0.0657038734843273,0.0655903638771541,0.0654985384411224,0.0654471912312673,0.0654471912312673, +0.122721582106644,0.122721582106644,0.122754981319617,0.122675892126375,0.122515741430463,0.122313947997501,0.122111800031007,0.121948428507132,0.121856699734325,0.121856699734325, +0.214844780700802,0.214844780700802,0.214852824162432,0.214691596517612,0.214410033712485,0.214068632047521,0.213729993027869,0.213455087987419,0.213298993330833,0.213298993330833, +0.350580215468121,0.350580215468121,0.350528041983025,0.350234996940112,0.349776633959931,0.349239963530066,0.348710643731669,0.348274857229034,0.348020656243165,0.348020656243165, +0.532651829882611,0.532651829882611,0.532503868580317,0.532016979637579,0.531323445000057,0.530540620460402,0.529768959267837,0.529113240091056,0.528705756812166,0.528705756812166, +0.75460193856506,0.75460193856506,0.754366557832758,0.753593181640641,0.752609686113418,0.751552068871492,0.750504431573564,0.749557589057012,0.748876035999876,0.748876035999876, + +00:18:45, +0.0212588771518207,0.0212588771518207,0.0212860743751307,0.0212828242135876,0.0212572089109973,0.021219275543114,0.0211793692696302,0.0211467601106343,0.0211285152354752,0.0211285152354752, +0.0212588771518207,0.0212588771518207,0.0212860743751307,0.0212828242135876,0.0212572089109973,0.021219275543114,0.0211793692696302,0.0211467601106343,0.0211285152354752,0.0211285152354752, +0.0347584894465914,0.0347584894465914,0.0347903381552944,0.0347787073226616,0.0347352933661412,0.034674698345676,0.0346120704055228,0.0345611787017776,0.0345327351653752,0.0345327351653752, +0.0660150710176721,0.0660150710176721,0.0660519882829503,0.0660183925693664,0.0659335787342465,0.0658217404339383,0.0657081651010652,0.0656162854306084,0.0655649078150671,0.0655649078150671, +0.122884052222189,0.122884052222189,0.122917427118109,0.12283831402858,0.122678133102515,0.122476301716365,0.122274113842667,0.122110709698716,0.122018963028393,0.122018963028393, +0.215045203016965,0.215045203016965,0.215053192489882,0.214891961486389,0.214610422629077,0.214269053547459,0.213930446417254,0.213655568331207,0.213499490372943,0.213499490372943, +0.350792678893847,0.350792678893847,0.350740451421379,0.350447468819455,0.349989238396173,0.34945272908625,0.348923569378947,0.348487917507158,0.348233797694523,0.348233797694523, +0.532833980423405,0.532833980423405,0.532686017497377,0.532199311386678,0.531506065749616,0.530723573155724,0.529952241021966,0.529296804767997,0.528889500094026,0.528889500094026, +0.75470807651408,0.75470807651408,0.754472788078343,0.753699760629664,0.752716720662247,0.751659596934935,0.750612449522954,0.749666050490135,0.748984815850842,0.748984815850842, + +00:18:46, +0.0213211019739608,0.0213211019739608,0.0213483415544451,0.0213450901828285,0.0213194392418619,0.0212814491116599,0.0212414807669605,0.0212088197893119,0.0211905456455517,0.0211905456455517, +0.0213211019739608,0.0213211019739608,0.0213483415544451,0.0213450901828285,0.0213194392418619,0.0212814491116599,0.0212414807669605,0.0212088197893119,0.0211905456455517,0.0211905456455517, +0.0348403672895961,0.0348403672895961,0.0348722478938261,0.0348606084859019,0.0348171531367125,0.0347564962200828,0.0346938015955204,0.0346428545001302,0.0346143797533849,0.0346143797533849, +0.0661330935655992,0.0661330935655992,0.0661700197793648,0.0661364045300469,0.0660515457792372,0.0659396455453041,0.0658260046709852,0.0657340709174788,0.065682662980855,0.065682662980855, +0.123046491806844,0.123046491806844,0.123079842376175,0.123000705473532,0.122840494492105,0.122638625393043,0.122436397866825,0.12227296131243,0.122181196861556,0.122181196861556, +0.215245505718508,0.215245505718508,0.215253441270406,0.215092207009036,0.214810692263638,0.21446935598892,0.214130780988036,0.213855930053363,0.213699868901592,0.213699868901592, +0.351004947453527,0.351004947453527,0.350952666121689,0.350659745998501,0.350201648159887,0.349665300026922,0.34913630048457,0.348700783300684,0.348446744684829,0.348446744684829, +0.533015921369984,0.533015921369984,0.532867956902257,0.532381433472141,0.531688476589442,0.530906315685596,0.530135312371862,0.529480158827255,0.52907303260954,0.52907303260954, +0.754814077138919,0.754814077138919,0.754578880898848,0.75380620175478,0.752823616784113,0.751766985981132,0.750720327878043,0.749774371798748,0.74909345518394,0.74909345518394, + +00:18:47, +0.0213834171981628,0.0213834171981628,0.0214106991082684,0.0214074465346474,0.0213817599901706,0.0213437131470886,0.0213036827819223,0.0212709700261219,0.0212526666359971,0.0212526666359971, +0.0213834171981628,0.0213834171981628,0.0214106991082684,0.0214074465346474,0.0213817599901706,0.0213437131470886,0.0213036827819223,0.0212709700261219,0.0212526666359971,0.0212526666359971, +0.0349223208580725,0.0349223208580725,0.0349542333158902,0.0349425853512441,0.034899088676541,0.034838369960009,0.0347756087521678,0.0347246063475389,0.0346961004362982,0.0346961004362982, +0.0662511538391005,0.0662511538391005,0.0662880889554257,0.0662544542152956,0.0661695506720902,0.0660575886784275,0.0659438824466581,0.0658518947612697,0.0658004565880538,0.0658004565880538, +0.123208900766269,0.123208900766269,0.123242226999698,0.123163066367013,0.123002825504608,0.122800918932296,0.122598652007571,0.122435183251817,0.122343401137053,0.122343401137053, +0.215445688870263,0.215445688870263,0.215453570568899,0.215292333150213,0.215010842680233,0.214669539435082,0.214330996802425,0.214056173215297,0.213900128977751,0.213900128977751, +0.351217021426312,0.351217021426312,0.351164686362895,0.350871828755982,0.350413863529357,0.349877676629638,0.349348837325267,0.348913454885665,0.348659497489777,0.348659497489777, +0.533197653121876,0.533197653121876,0.533049687194243,0.532563346293441,0.531870677919206,0.531088848449717,0.53031817371715,0.529663302668429,0.529256354758363,0.529256354758363, +0.75491994073657,0.75491994073657,0.754684836591482,0.753912505314126,0.752930374778258,0.751874236310374,0.750828066940102,0.749882553285052,0.74920195430211,0.74920195430211, + +00:18:48, +0.0214458227567018,0.0214458227567018,0.021473146968789,0.02146989320124,0.0214441710882111,0.0214060675818417,0.0213659752471356,0.0213332107538405,0.0213148781396781,0.0213148781396781, +0.0214458227567018,0.0214458227567018,0.021473146968789,0.02146989320124,0.0214441710882111,0.0214060675818417,0.0213659752471356,0.0213332107538405,0.0213148781396781,0.0213148781396781, +0.0350043500445468,0.0350043500445468,0.0350362943140385,0.035024637811258,0.0349810998782162,0.0349203194580727,0.0348574917681229,0.0348064341367021,0.0347778971068394,0.0347778971068394, +0.0663692516987594,0.0663692516987594,0.0664061956718911,0.0663725414858678,0.066287593273409,0.0661755696936691,0.066061798288185,0.0659697568218743,0.0659182884964434,0.0659182884964434, +0.123371279006646,0.123371279006646,0.123404580895082,0.123325396615329,0.123165126045926,0.122963182239406,0.122760876169518,0.122597375420942,0.122505575758646,0.122505575758646, +0.215645752537315,0.215645752537315,0.215653580450503,0.215492339974833,0.215210873943181,0.214869603949377,0.214531093922887,0.214256297878678,0.214100270662648,0.214100270662648, +0.351428901090918,0.351428901090918,0.351376512423506,0.351083717370196,0.350625884782431,0.350089859171524,0.349561180177341,0.349125932537727,0.34887205638464,0.34887205638464, +0.533379176077581,0.533379176077581,0.533231208771594,0.532745050249029,0.532052670137557,0.531271171846766,0.530500825456435,0.529846236690096,0.52943946693913,0.52943946693913, +0.75502566760314,0.75502566760314,0.754790655452564,0.75401867160495,0.753036994943028,0.751981348222057,0.750935667009503,0.749990595250345,0.749310313507391,0.749310313507391, + +00:18:49, +0.0215083185816707,0.0215083185816707,0.0215356850680136,0.0215324301146207,0.021506672468089,0.0214685123481782,0.021428358095037,0.0213955419050593,0.0213771800892767,0.0213771800892767, +0.0215083185816707,0.0215083185816707,0.0215356850680136,0.0215324301146207,0.021506672468089,0.0214685123481782,0.021428358095037,0.0213955419050593,0.0213771800892767,0.0213771800892767, +0.0350864547415832,0.0350864547415832,0.0351184307808604,0.0351067657585512,0.0350631866343644,0.0350023446069289,0.0349394505360792,0.0348883377603531,0.0348597696577675,0.0348597696577675, +0.0664873870055171,0.0664873870055171,0.0665243397898763,0.0664906662028759,0.0664056734441539,0.066293588451746,0.0661797520560239,0.0660876569595423,0.0660361585661598,0.0660361585661598, +0.12353362643468,0.12353362643468,0.123566903969251,0.123487696125303,0.123327396022475,0.123125415220174,0.122923070257804,0.122759537724396,0.122667720630623,0.122667720630623, +0.215845696784995,0.215845696784995,0.215853470980607,0.215692227548056,0.21541078611705,0.215069549595492,0.214731072412143,0.214456304105434,0.214300294017775,0.214300294017775, +0.351640586725625,0.351640586725625,0.351588144581593,0.351295412119006,0.35083771219653,0.350301847929278,0.349773329316668,0.349338216532079,0.349084421644269,0.349084421644269, +0.533560490634582,0.533560490634582,0.533412522031554,0.532926545736336,0.532234453642123,0.5314532862744,0.530683267987306,0.530028961289822,0.529622369549462,0.529622369549462, +0.75513125803385,0.75513125803385,0.754896337777528,0.75412470092361,0.753143477575877,0.752088322014683,0.751043128385724,0.750098497995029,0.74941853310092,0.74941853310092, + +00:18:50, +0.0215709046049812,0.0215709046049812,0.0215983133377689,0.0215950572066232,0.0215692640617293,0.0215310473781754,0.0214908312578804,0.0214579634121868,0.0214395724172911,0.0214395724172911, +0.0215709046049812,0.0215709046049812,0.0215983133377689,0.0215950572066232,0.0215692640617293,0.0215310473781754,0.0214908312578804,0.0214579634121868,0.0214395724172911,0.0214395724172911, +0.0351686348417834,0.0351686348417834,0.0352006426089836,0.0351889690857691,0.0351453488376495,0.0350844452992691,0.0350214849487665,0.0349703171112609,0.0349417179818764,0.0349417179818764, +0.0666055596206721,0.0666055596206721,0.0666425211708535,0.0666088282277887,0.0665237910456416,0.0664116448137318,0.0662977436109887,0.066205595034879,0.0661540666576947,0.0661540666576947, +0.123695942957592,0.123695942957592,0.123729196129646,0.123649964804277,0.123489635341194,0.123287617780924,0.123085234178086,0.122921670067291,0.122829835657793,0.122829835657793, +0.216045521678882,0.216045521678882,0.216053242224848,0.215891995935286,0.215610579266656,0.215269376437362,0.214930932333169,0.21465619195775,0.214500199104879,0.214500199104879, +0.35185207860828,0.35185207860828,0.351799583114795,0.351506913279843,0.351049346048638,0.350513643179171,0.349985285018705,0.349550307143506,0.349296593543099,0.349296593543099, +0.533741597189341,0.533741597189341,0.533593627370346,0.533107833151772,0.532416028829515,0.531635192129262,0.530865501706337,0.530211476864159,0.529805062985968,0.529805062985968, +0.755236712323041,0.755236712323041,0.755001883860926,0.754230593565578,0.753249822973373,0.752195157985863,0.75115045136735,0.750206261818611,0.749526613382943,0.749526613382943, + +00:18:51, +0.0216335807583655,0.0216335807583655,0.0216610317097018,0.0216577744089019,0.0216319458008767,0.02159367260373,0.0215533946677384,0.0215204752074494,0.021502055056037,0.021502055056037, +0.0216335807583655,0.0216335807583655,0.0216610317097018,0.0216577744089019,0.0216319458008767,0.02159367260373,0.0215533946677384,0.0215204752074494,0.021502055056037,0.021502055056037, +0.0352508902377876,0.0352508902377876,0.0352829296910741,0.0352712476855955,0.0352275863807736,0.0351666214278224,0.035103594898951,0.03505237208223,0.0350237419719955,0.0350237419719955, +0.0667237694058786,0.0667237694058786,0.0667607396766502,0.0667270274224305,0.0666419459395441,0.0665297386410552,0.0664157728142483,0.0663235709088448,0.0662720126318948,0.0662720126318948, +0.123858228483118,0.123858228483118,0.123891457284221,0.123812202560105,0.123651843909535,0.123449789828495,0.123247367836539,0.123083772355256,0.122991920745486,0.122991920745486, +0.2162452272848,0.2162452272848,0.216252894249106,0.216091645202174,0.215810253457061,0.215469084539174,0.215130673749194,0.214855961498066,0.214699985985965,0.214699985985965, +0.352063377016295,0.352063377016295,0.352010828300316,0.351718221129703,0.351260786615313,0.350725245197045,0.350197047558481,0.349762204646375,0.349508572355145,0.349508572355145, +0.533922496137308,0.533922496137308,0.53377452518318,0.533288912890737,0.53259739609533,0.531816889806982,0.531047527009092,0.53039378380865,0.529987547644248,0.529987547644248, +0.755342030764174,0.755342030764174,0.755107293996431,0.754336349825448,0.753356031431199,0.752301856432323,0.751257636252078,0.750313887019707,0.749634554652808,0.749634554652808, + +00:18:52, +0.0216963469733765,0.0216963469733765,0.0217238401152809,0.0217205816529328,0.0216947176170975,0.0216563879565592,0.0216160482565031,0.0215830772228922,0.0215646279376486,0.0215646279376486, +0.0216963469733765,0.0216963469733765,0.0217238401152809,0.0217205816529328,0.0216947176170975,0.0216563879565592,0.0216160482565031,0.0215830772228922,0.0215646279376486,0.0215646279376486, +0.0353332208222747,0.0353332208222747,0.035365291919837,0.0353536014507532,0.0353098991564771,0.0352488728853556,0.0351857802794361,0.0351345025661017,0.0351058415209904,0.0351058415209904, +0.0668420162231469,0.0668420162231469,0.0668789951694495,0.0668452636489806,0.0667601379878884,0.0666478697954996,0.0665338395273263,0.0664415844427543,0.0663899963499607,0.0663899963499607, +0.124020482919511,0.124020482919511,0.124053687341445,0.123974409301158,0.123814021635464,0.12361193127024,0.123409471139856,0.123245844494441,0.123153975799547,0.123153975799547, +0.216444813668816,0.216444813668816,0.216452427119502,0.216291175414612,0.216009808753572,0.21566867396536,0.215330296723697,0.215055612789073,0.214899654723291,0.214899654723291, +0.352274482226651,0.352274482226651,0.352221880414927,0.351929335945151,0.35147203417268,0.350936654258316,0.350408617210604,0.349973909314631,0.349720358354003,0.349720358354003, +0.534103187872921,0.534103187872921,0.533955215864255,0.533469785347616,0.532778555834153,0.531998379702181,0.531229344290128,0.530575882517832,0.530169823918899,0.530169823918899, +0.755447213649838,0.755447213649838,0.755212568476841,0.754441969996932,0.753462103244157,0.752408417649904,0.751364683336718,0.750421373896048,0.74974235720898,0.74974235720898, + +00:18:53, +0.0217592031813893,0.0217592031813893,0.0217867384857973,0.0217834788700144,0.0217575794417797,0.0217191933682013,0.0216787919558871,0.0216457693903801,0.0216272909940793,0.0216272909940793, +0.0217592031813893,0.0217592031813893,0.0217867384857973,0.0217834788700144,0.0217575794417797,0.0217191933682013,0.0216787919558871,0.0216457693903801,0.0216272909940793,0.0216272909940793, +0.0354156264879631,0.0354156264879631,0.0354477291880169,0.0354360302740043,0.0353922870575394,0.0353311995646738,0.0352680409830627,0.0352167084557539,0.0351880165217629,0.0351880165217629, +0.0669602999348418,0.0669602999348418,0.0669972875117885,0.0669635367699723,0.0668783670530553,0.0667660381392024,0.0666519436120999,0.0665596354982757,0.0665080176734466,0.0665080176734466, +0.124182706175535,0.124182706175535,0.1242158862103,0.124136584936315,0.123976168427459,0.123774042014027,0.123571543995242,0.123407886391509,0.123316000726341,0.123316000726341, +0.216644280897237,0.216644280897237,0.216651840902398,0.216490586638732,0.216209245221737,0.215868144780598,0.215529801320404,0.215255145893714,0.215099205379369,0.215099205379369, +0.352485394515892,0.352485394515892,0.352432739734965,0.352140258002319,0.351683088996433,0.351147870637973,0.350619994249258,0.3501854214218,0.349931951812853,0.349931951812853, +0.53428367278961,0.53428367278961,0.534135699806765,0.533650450915789,0.532959508439564,0.532179662208475,0.531410953942999,0.53075777338524,0.530351892203515,0.530351892203515, +0.755552261271748,0.755552261271748,0.755317707594082,0.75454745437287,0.753568038706171,0.752514841933568,0.751471592917201,0.750528722744479,0.749850021349033,0.749850021349033, + +00:18:54, +0.0218221493136019,0.0218221493136019,0.0218497267523656,0.0218464659912686,0.0218205312061347,0.0217820887700172,0.0217416256974245,0.0217085516415987,0.0216900441571029,0.0216900441571029, +0.0218221493136019,0.0218221493136019,0.0218497267523656,0.0218464659912686,0.0218205312061347,0.0217820887700172,0.0217416256974245,0.0217085516415987,0.0216900441571029,0.0216900441571029, +0.0354981071276108,0.0354981071276108,0.0355302413883982,0.0355185340481506,0.0354747499767793,0.0354136013586208,0.0353503769027095,0.0352989896441017,0.0352702668672517,0.0352702668672517, +0.0670786204036821,0.0670786204036821,0.067115616566558,0.0670818466482923,0.066996632997779,0.0668842435346541,0.0667700849307996,0.0666777239374301,0.0666260764642592,0.0666260764642592, +0.124344898160464,0.124344898160464,0.124378053800273,0.124298729374966,0.124138284194509,0.123936121968235,0.123733586310416,0.123569897953637,0.123477995432744,0.123477995432744, +0.21684362903661,0.21684362903661,0.216851135664395,0.216689878940906,0.216408562927344,0.216067497049809,0.21572918760329,0.215454560875183,0.21529863801696,0.21529863801696, +0.352696114160134,0.352696114160134,0.352643406536338,0.352350987576906,0.351893951361838,0.351358894610578,0.350831178948205,0.350396741240991,0.350143353004454,0.350143353004454, +0.534463951279799,0.534463951279799,0.534315977402898,0.533830909987632,0.533140254304139,0.532360737718477,0.531592356360257,0.530939456803411,0.530533752890692,0.530533752890692, +0.755657173920754,0.755657173920754,0.755422711639211,0.75465280324523,0.753673838110291,0.752621129577401,0.751578365288578,0.750635933860967,0.749957547369663,0.749957547369663, + +00:18:55, +0.0218851853010366,0.0218851853010366,0.021912804845925,0.0219095429476421,0.0218835728411979,0.0218450740931911,0.021804549412472,0.0217714239080557,0.0217528873583147,0.0217528873583147, +0.0218851853010366,0.0218851853010366,0.021912804845925,0.0219095429476421,0.0218835728411979,0.0218450740931911,0.021804549412472,0.0217714239080557,0.0217528873583147,0.0217528873583147, +0.0355806626340157,0.0355806626340157,0.0356128284138058,0.0356011126660343,0.0355572878070555,0.0354960781600797,0.0354327879312937,0.0353813460240981,0.0353525924504331,0.0353525924504331, +0.0671969774927402,0.0671969774927402,0.0672339821970018,0.0672001931471802,0.0671149356851463,0.0670024858446979,0.0668882633460079,0.0667958496225907,0.0667441725846574,0.0667441725846574, +0.12450705878408,0.12450705878408,0.124540190021361,0.124460842527006,0.12430036884611,0.124098171041751,0.123895597993608,0.123731879088513,0.123639959826145,0.123639959826145, +0.217042858153719,0.217042858153719,0.21705031147233,0.216889052387742,0.216607761936423,0.216266730838157,0.215928455636572,0.215653857796919,0.215497952699074,0.215497952699074, +0.352906641435059,0.352906641435059,0.352853881094518,0.352561524944183,0.352104621543731,0.35156972645027,0.351042171580787,0.35060786904489,0.350354562201151,0.350354562201151, +0.534644023734913,0.534644023734913,0.534496049043841,0.534011162954518,0.53332079381945,0.532541606623799,0.531773551933458,0.531120933163885,0.530715406372029,0.530715406372029, +0.75576195188684,0.75576195188684,0.755527580902421,0.754758016905112,0.753779501748696,0.752727280874615,0.751685000745025,0.750743007540599,0.750064935566685,0.750064935566685, + +00:18:56, +0.0219483110745405,0.0219483110745405,0.0219759726972402,0.021972709669907,0.0219467042778298,0.0219081492687315,0.0218675630322096,0.0218343861210812,0.0218158205291322,0.0218158205291322, +0.0219483110745405,0.0219483110745405,0.0219759726972402,0.021972709669907,0.0219467042778298,0.0219081492687315,0.0218675630322096,0.0218343861210812,0.0218158205291322,0.0218158205291322, +0.0356632929000166,0.0356632929000166,0.0356954901571051,0.0356837660205382,0.0356399004412668,0.035578629861973,0.0355152739617714,0.0354637774887343,0.035434993164321,0.035434993164321, +0.0673153710654409,0.0673153710654409,0.0673523842667158,0.0673185761302273,0.0672332749785959,0.0671207649325284,0.0670064787206591,0.0669140124164819,0.0668623058972512,0.0668623058972512, +0.124669187956673,0.124669187956673,0.124702294784067,0.124622924302839,0.124462422292263,0.12426018914397,0.124057578953554,0.123893829704335,0.123801893814443,0.123801893814443, +0.217241968315584,0.217241968315584,0.217249368393272,0.217088107046084,0.216806842315238,0.216465846211044,0.216127605484711,0.215853036722606,0.215697149488967,0.215697149488967, +0.353116976615917,0.353116976615917,0.353064163684549,0.352771870378988,0.35231509981652,0.351780366430759,0.351252972419921,0.350818805105768,0.35056557967487,0.35056557967487, +0.534823890545379,0.534823890545379,0.534675915119786,0.534191210206824,0.533501127376076,0.53272226931506,0.531954541053162,0.53130220285721,0.530896853038136,0.530896853038136, +0.755866595459128,0.755866595459128,0.755632315673042,0.75486309564275,0.7538850299127,0.752833296117553,0.751791499579846,0.750849944077591,0.750172186235039,0.750172186235039, + +00:18:57, +0.0220115265647867,0.0220115265647867,0.0220392302369023,0.0220359660886618,0.0220099254467169,0.0219713142274724,0.0219306664876421,0.0218974382118293,0.0218788436007964,0.0218788436007964, +0.0220115265647867,0.0220115265647867,0.0220392302369023,0.0220359660886618,0.0220099254467169,0.0219713142274724,0.0219306664876421,0.0218974382118293,0.0218788436007964,0.0218788436007964, +0.0357459978184932,0.0357459978184932,0.0357782265112029,0.035766494004586,0.0357225877723527,0.0356612563572634,0.0355978348871379,0.03554628393104,0.0355174689019675,0.0355174689019675, +0.067433800985561,0.067433800985561,0.0674708226396472,0.0674369954613762,0.0673516507419175,0.0672390806616915,0.0671247309180382,0.067032212182179,0.0669804762650014,0.0669804762650014, +0.124831285589037,0.124831285589037,0.124864367999396,0.124784974613368,0.124624444443475,0.124422176184792,0.1242195290995,0.124055749709809,0.123963797306045,0.123963797306045, +0.217440959589458,0.217440959589458,0.217448306494528,0.217287042983008,0.217005804130287,0.216664843234111,0.216326637212411,0.216052097716174,0.215896228450143,0.215896228450143, +0.353327119977528,0.353327119977528,0.353274254581041,0.352982024155728,0.352525386454184,0.351990814825332,0.351463581738106,0.351029549695477,0.350776405697124,0.350776405697124, +0.535003552100627,0.535003552100627,0.534855576019927,0.534371052133931,0.533681255363598,0.532902726181883,0.53213532410894,0.531483266272945,0.531078093278632,0.531078093278632, +0.755971104925885,0.755971104925885,0.755736916239545,0.754968039747518,0.753990422892748,0.752939175597692,0.751897862085478,0.750956743765288,0.750279299668794,0.750279299668794, + +00:18:58, +0.0220748317022755,0.0220748317022755,0.0221025773953302,0.0220993121343327,0.022073236278373,0.022034568900074,0.0219938597095996,0.021960580111279,0.0219419565043727,0.0219419565043727, +0.0220748317022755,0.0220748317022755,0.0221025773953302,0.0220993121343327,0.022073236278373,0.022034568900074,0.0219938597095996,0.021960580111279,0.0219419565043727,0.0219419565043727, +0.0358287772823668,0.0358287772823668,0.0358610373690476,0.0358492965111433,0.035805349693294,0.0357439575389541,0.0356804706004284,0.0356288652440842,0.0356000195564636,0.0356000195564636, +0.0675522671172281,0.0675522671172281,0.067589297180094,0.0675554510049198,0.0674700628392511,0.0673574328960832,0.0672430198017804,0.0671504487831073,0.0670986835512183,0.0670986835512183, +0.124993351592466,0.124993351592466,0.125026409578853,0.12494699337,0.124786435210754,0.12458413207462,0.124381448341194,0.124217639014146,0.124125670209863,0.124125670209863, +0.217639832042827,0.217639832042827,0.217647125843632,0.217485860265821,0.217204647448305,0.216863721973235,0.216525550884612,0.216251040841792,0.216095189646345,0.216095189646345, +0.353537071794281,0.353537071794281,0.353484154058177,0.353191986548381,0.352735481730274,0.352201071906851,0.351673999807419,0.35124010308545,0.350987040539006,0.350987040539006, +0.535183008789097,0.535183008789097,0.535035032132471,0.534550689124229,0.533861178170607,0.533082977612905,0.532315901489375,0.53166412379966,0.531259127482151,0.531259127482151, +0.756075480574521,0.756075480574521,0.755841382889548,0.755072849507934,0.754095680978429,0.753044919605644,0.752004088553493,0.751063406896168,0.750386276161149,0.750386276161149, + +00:18:59, +0.022138226417335,0.022138226417335,0.022166014102771,0.0221627477371744,0.0221366367031397,0.0220979132170239,0.0220571426287387,0.0220238117502348,0.0220051591707518,0.0220051591707518, +0.022138226417335,0.022138226417335,0.022166014102771,0.0221627477371744,0.0221366367031397,0.0220979132170239,0.0220571426287387,0.0220238117502348,0.0220051591707518,0.0220051591707518, +0.0359116311846004,0.0359116311846004,0.0359439226236296,0.0359321734332173,0.0358881860971129,0.0358267333000891,0.0357631809947181,0.0357115213209752,0.0356826450209394,0.0356826450209394, +0.0676707693249207,0.0676707693249207,0.0677078077527041,0.067673942625501,0.0675885111350866,0.0674758214999493,0.0673613452358703,0.0672687220830411,0.0672169276195616,0.0672169276195616, +0.125155385878757,0.125155385878757,0.125188419434446,0.125108980484641,0.124948394505609,0.124746056724359,0.124543336588887,0.12437949752706,0.124287512435316,0.124287512435316, +0.217838585743407,0.217838585743407,0.217845826508348,0.217684558962062,0.217403372336255,0.217062482494525,0.216724346566493,0.216449866163872,0.21629403314156,0.21629403314156, +0.353746832340135,0.353746832340135,0.353693862389707,0.353401757830498,0.352945385917914,0.352411137947756,0.351884226899516,0.351450465546706,0.351197484471196,0.351197484471196, +0.53536226099824,0.53536226099824,0.535214283844634,0.53473012156512,0.534040896184708,0.533263023995773,0.532496273582064,0.531844775824944,0.531439956036344,0.531439956036344, +0.756179722691594,0.756179722691594,0.755945715909814,0.755177525211656,0.754200804458471,0.753150528431163,0.752110179274599,0.751169933761845,0.750493116004438,0.750493116004438, + +00:19:00, +0.0222017106401224,0.0222017106401224,0.0222295402893014,0.0222262728272708,0.0222001266511878,0.0221613471086379,0.0221205151755436,0.022087133059328,0.0220684515306506,0.0220684515306506, +0.0222017106401224,0.0222017106401224,0.0222295402893014,0.0222262728272708,0.0222001266511878,0.0221613471086379,0.0221205151755436,0.022087133059328,0.0220684515306506,0.0220684515306506, +0.0359945594181994,0.0359945594181994,0.036026882167982,0.0360151246638579,0.0359710968768737,0.0359095835337539,0.035845965963123,0.0357942520548614,0.0357653451885644,0.0357653451885644, +0.0677893074734666,0.0677893074734666,0.0678263542224747,0.0677924701881115,0.0677069954942625,0.0675942463378841,0.0674797070846413,0.0673870319461034,0.0673352083340392,0.0673352083340392, +0.125317388360205,0.125317388360205,0.125350397478678,0.125270935869694,0.125110322240045,0.124907950045414,0.124705193753332,0.124541325158769,0.124449323892323,0.124449323892323, +0.218037220759141,0.218037220759141,0.21804440855667,0.217883139139495,0.217601978861332,0.217261124864327,0.216923024323469,0.216648573747061,0.216492759000014,0.216492759000014, +0.35395640188862,0.35395640188862,0.353903379848953,0.353611338275196,0.353155099289803,0.35262101322006,0.352094263285636,0.351660637349844,0.351407737763959,0.351407737763959, +0.535541309114522,0.535541309114522,0.535393331542649,0.534909349843022,0.534220409792519,0.533442865717153,0.532676440773625,0.532025222735408,0.531620579327882,0.531620579327882, +0.756283831562817,0.756283831562817,0.756049915586259,0.755282067145497,0.754305793620751,0.753256002363147,0.752216134538649,0.751276324653074,0.750599819490134,0.750599819490134, + +00:19:01, +0.0222652843006248,0.0222652843006248,0.0222931558848283,0.0222898873345365,0.0222637060525182,0.0222248705050611,0.0221839772803267,0.0221505439690178,0.0221318335146136,0.0221318335146136, +0.0222652843006248,0.0222652843006248,0.0222931558848283,0.0222898873345365,0.0222637060525182,0.0222248705050611,0.0221839772803267,0.0221505439690178,0.0221318335146136,0.0221318335146136, +0.0360775618762121,0.0360775618762121,0.0361099158951806,0.0360981500961577,0.0360540819256831,0.0359925081330757,0.0359288253987999,0.0358770573389316,0.0358481199525483,0.0358481199525483, +0.0679078814280427,0.0679078814280427,0.0679449364547513,0.0679110335580913,0.0678255157819657,0.0677127072748302,0.0675981052127746,0.0675053782367649,0.0674535255590067,0.0674535255590067, +0.125479358949602,0.125479358949602,0.125512343624549,0.125432859438058,0.125272218326565,0.125069811949685,0.124867019745779,0.124703121819988,0.124611104491304,0.124611104491304, +0.2182357371582,0.2182357371582,0.218242872056813,0.218081600866113,0.217800467090957,0.217459649149214,0.217121584221189,0.216847163656245,0.216691367286169,0.216691367286169, +0.354165780712836,0.354165780712836,0.354112706708808,0.353820728155169,0.35336462211821,0.352830697995356,0.352304109236595,0.351870618765049,0.351617800687144,0.351617800687144, +0.535720153523428,0.535720153523428,0.535572175611768,0.535088374343369,0.534399719379678,0.53362250316273,0.532856403449695,0.532205464916682,0.531800997742462,0.531800997742462, +0.756387807473056,0.756387807473056,0.756153982203953,0.755386475595416,0.754410648752291,0.753361341689638,0.752321954634639,0.751382579859751,0.75070638690885,0.75070638690885, + +00:19:02, +0.0223289473286603,0.0223289473286603,0.0223568608190904,0.0223535911887175,0.0223273748369625,0.0222884833362691,0.0222475288732302,0.0222140444095919,0.0221953050530133,0.0221953050530133, +0.0223289473286603,0.0223289473286603,0.0223568608190904,0.0223535911887175,0.0223273748369625,0.0222884833362691,0.0222475288732302,0.0222140444095919,0.0221953050530133,0.0221953050530133, +0.0361606384517297,0.0361606384517297,0.0361930236983447,0.0361812496232524,0.0361371411366906,0.0360755069912239,0.0360117591949473,0.0359599370664153,0.0359309692061412,0.0359309692061412, +0.0680264910541739,0.0680264910541739,0.0680635543152273,0.068029632601128,0.0679440718637305,0.0678312041760775,0.0677165394852986,0.0676237608198433,0.0675718791591668,0.0675718791591668, +0.125641297560233,0.125641297560233,0.12567425778555,0.125594751103124,0.125434082678167,0.12523164234957,0.125028814477977,0.124864887421932,0.124772854143178,0.124772854143178, +0.218434135008979,0.218434135008979,0.21844121707722,0.21827994421013,0.217998837092779,0.217658055415989,0.217320026325531,0.217045635956541,0.216889858064726,0.216889858064726, +0.354374969085456,0.354374969085456,0.354321843241736,0.354029927742679,0.353573954674981,0.353040192544812,0.352513765022792,0.352080410062089,0.351827673510185,0.351827673510185, +0.535898794609461,0.535898794609461,0.535750816436263,0.535267195450619,0.534578825330843,0.533801936717213,0.533036161994937,0.532385502753425,0.531981211664806,0.531981211664806, +0.756491650706337,0.756491650706337,0.756257916047125,0.755490750846531,0.754515370139269,0.753466546697831,0.752427639850713,0.75148869967092,0.750812818550344,0.750812818550344, + +00:19:03, +0.0223926996538788,0.0223926996538788,0.0224206550216586,0.0224173843193921,0.0223911329341846,0.0223521855320684,0.0223111698842263,0.0222776343111678,0.0222588660760518,0.0222588660760518, +0.0223926996538788,0.0223926996538788,0.0224206550216586,0.0224173843193921,0.0223911329341846,0.0223521855320684,0.0223111698842263,0.0222776343111678,0.0222588660760518,0.0222588660760518, +0.0362437890378872,0.0362437890378872,0.0362762054706372,0.0362644231383216,0.0362202744030891,0.0361585800014106,0.0360947672448056,0.0360428911305834,0.036013892842634,0.036013892842634, +0.0681451362177327,0.0681451362177327,0.068182207669943,0.068148267183256,0.0680626636054379,0.0679497369072627,0.0678350097675885,0.0677421795605029,0.0676902689995683,0.0676902689995683, +0.125803204105879,0.125803204105879,0.125836139875669,0.125756610778778,0.125595915208341,0.125393441157961,0.125190577862169,0.125026621876312,0.124934572759359,0.124934572759359, +0.218632414380097,0.218632414380097,0.218639443686556,0.218478169239986,0.218197088934669,0.217856343731683,0.217518350702608,0.217243990713303,0.217088231400617,0.217088231400617, +0.354583967278722,0.354583967278722,0.354530789719773,0.354238937309564,0.353783097231534,0.353249497139177,0.35272323091421,0.352290011510317,0.352037356502106,0.352037356502106, +0.536077232756152,0.536077232756152,0.535929254399432,0.535445813548252,0.534757728029698,0.533981166764334,0.533215716793044,0.532565336629326,0.532161221478666,0.532161221478666, +0.756595361545845,0.756595361545845,0.756361717399163,0.755594893183116,0.754619958067017,0.753571617674072,0.752533190474167,0.751594684374774,0.750919114703521,0.750919114703521, + +00:19:04, +0.0224565412057631,0.0224565412057631,0.0224845384219371,0.022481266655972,0.0224549802736811,0.022415977022098,0.0223749002431188,0.0223413136036938,0.0223225165137611,0.0223225165137611, +0.0224565412057631,0.0224565412057631,0.0224845384219371,0.022481266655972,0.0224549802736811,0.022415977022098,0.0223749002431188,0.0223413136036938,0.0223225165137611,0.0223225165137611, +0.0363270135278637,0.0363270135278637,0.0363594611052655,0.0363476705345889,0.036303481618115,0.036241727056891,0.0361778494416573,0.0361259194247484,0.0360968907553592,0.0360968907553592, +0.0682638167849383,0.0682638167849383,0.0683008963852851,0.0682669371708556,0.0681812908733148,0.0680683053343681,0.067953515925365,0.0678606343242533,0.0678086949456054,0.0678086949456054, +0.125965078500808,0.125965078500808,0.125997989809378,0.125918438379393,0.125757715831065,0.125555208288239,0.12535230981109,0.125188325095331,0.125096260251757,0.125096260251757, +0.218830575340394,0.218830575340394,0.218837551953704,0.21867627602434,0.218395222684723,0.218054514163551,0.217716557418758,0.217442227992113,0.217286487359008,0.217286487359008, +0.354792775564452,0.354792775564452,0.354739546414528,0.354447757127231,0.353992050058866,0.353458612048775,0.352932507180409,0.352499423378671,0.352246849931514,0.352246849931514, +0.536255468346058,0.536255468346058,0.536107489883602,0.535624229018777,0.534936427858956,0.534160193686859,0.533395068226738,0.532744966927104,0.532341027566829,0.532341027566829, +0.756698940273933,0.756698940273933,0.756465386542621,0.755698902888609,0.754724412820026,0.753676554903866,0.752638606791452,0.751700534258658,0.751025275656439,0.751025275656439, + +00:19:05, +0.0225204719136298,0.0225204719136298,0.0225485109491645,0.0225452381277032,0.0225189167847826,0.0224798577358298,0.0224387198795438,0.0224050822169495,0.0223862562960047,0.0223862562960047, +0.0225204719136298,0.0225204719136298,0.0225485109491645,0.0225452381277032,0.0225189167847826,0.0224798577358298,0.0224387198795438,0.0224050822169495,0.0223862562960047,0.0223862562960047, +0.0364103118148825,0.0364103118148825,0.0364427904954812,0.0364309917053224,0.036386762675049,0.0363249480509637,0.036261005678828,0.036209021842265,0.0361799628376907,0.0361799628376907, +0.0683825326223559,0.0683825326223559,0.0684196203279857,0.0683856424306526,0.0682999535339334,0.0681869093237214,0.0680720578246939,0.0679791249769493,0.0679271568630174,0.0679271568630174, +0.126126920659781,0.126126920659781,0.12615980750164,0.12608023381983,0.12591948446081,0.125716943654278,0.125514010237967,0.125349996991686,0.125257916532775,0.125257916532775, +0.219028617958928,0.219028617958928,0.219035541947767,0.218874264632069,0.218593238411256,0.218252566779072,0.217914646540547,0.217640347858784,0.217484626005295,0.217484626005295, +0.355001394214034,0.355001394214034,0.354948113597183,0.354656387466665,0.354200813427545,0.35366753754351,0.353141594090535,0.352708645935674,0.352456154066604,0.352456154066604, +0.536433501760767,0.536433501760767,0.53628552327013,0.535802442243735,0.535114925200359,0.534339017866584,0.533574216677775,0.532924394028515,0.532520630311115,0.532520630311115, +0.75680238717212,0.75680238717212,0.756568923759218,0.75580278024561,0.754828734681947,0.753781358671877,0.752743889088175,0.751806249609075,0.751131301696308,0.751131301696308, + +00:19:06, +0.0225844917066306,0.0225844917066306,0.0226125725324146,0.0226092986636671,0.0225829423966546,0.0225438276025702,0.0225026287229707,0.0224689400805474,0.0224500853524782,0.0224500853524782, +0.0225844917066306,0.0225844917066306,0.0226125725324146,0.0226092986636671,0.0225829423966546,0.0225438276025702,0.0225026287229707,0.0224689400805474,0.0224500853524782,0.0224500853524782, +0.0364936837922118,0.0364936837922118,0.0365261935345813,0.0365143865438349,0.0364701174672162,0.0364082428769711,0.0363442358496861,0.0362921982765303,0.0362631089830448,0.0362631089830448, +0.0685012835968959,0.0685012835968959,0.0685383793651218,0.0685043828297173,0.0684186514542105,0.0683055487419948,0.0681906353319853,0.0680976513847897,0.0680456546178874,0.0680456546178874, +0.126288730498042,0.126288730498042,0.126321592867906,0.126241997015438,0.12608122101253,0.125878647170437,0.125675679056518,0.125511637478564,0.125419541515305,0.125419541515305, +0.219226542304978,0.219226542304978,0.219233413738065,0.21907213513227,0.218791136182804,0.218450501645949,0.218112618134765,0.217838350379354,0.217682647405103,0.217682647405103, +0.355209823498431,0.355209823498431,0.355156491538491,0.354864828598422,0.354409387607718,0.353876273892866,0.353350491913317,0.352917679449437,0.35266526917516,0.35266526917516, +0.536611333380898,0.536611333380898,0.536463354939407,0.535980453603699,0.535293220434684,0.53451763968434,0.533753162526951,0.533103618314355,0.532700030092386,0.532700030092386, +0.756905702521097,0.756905702521097,0.756672329329847,0.755906525535889,0.7549329239356,0.753886029261929,0.752849037649106,0.751911830711684,0.751237193109496,0.751237193109496, + +00:19:07, +0.0226486005137526,0.0226486005137526,0.0226767231005977,0.0226734481927813,0.0226470570382984,0.0226078865514603,0.0225666267027033,0.0225328871239333,0.0225140036127104,0.0225140036127104, +0.0226486005137526,0.0226486005137526,0.0226767231005977,0.0226734481927813,0.0226470570382984,0.0226078865514603,0.0225666267027033,0.0225328871239333,0.0225140036127104,0.0225140036127104, +0.0365771293531653,0.0365771293531653,0.0366096701159079,0.036597854943485,0.0365535458879867,0.0364916114283002,0.0364275398476438,0.0363754486209846,0.0363463290848802,0.0363463290848802, +0.0686200695758132,0.0686200695758132,0.0686571733641143,0.0686231582354638,0.0685373845014065,0.068424223456204,0.0683092483139931,0.0682162134143167,0.068164188076642,0.068164188076642, +0.126450507931324,0.126450507931324,0.126483345824106,0.126403727882049,0.126242925401667,0.126040318751565,0.125837316180945,0.12567324646964,0.125581135112729,0.125581135112729, +0.219424348448036,0.219424348448036,0.219431167394134,0.219269887594254,0.218988916068118,0.218648318832103,0.218310472268427,0.218036235620089,0.217880551624284,0.217880551624284, +0.355418063688179,0.355418063688179,0.355364680508783,0.355073080792633,0.354617772869107,0.354084821365907,0.353559200917065,0.353126524187654,0.352874195524551,0.352874195524551, +0.536788963586111,0.536788963586111,0.536640985270862,0.53615826347828,0.535471313941747,0.534696059519998,0.533931906154099,0.53328264016446,0.532879227290545,0.532879227290545, +0.75700888660073,0.75700888660073,0.756775603534571,0.756010139040386,0.75503698086297,0.753990566957017,0.75295405275818,0.752017277851309,0.751342950181534,0.751342950181534, + +00:19:08, +0.0227127982638198,0.0227127982638198,0.0227409625824611,0.0227376866438006,0.0227112606385521,0.0226720345114776,0.0226307137478805,0.022596923276388,0.0225780110060642,0.0225780110060642, +0.0227127982638198,0.0227127982638198,0.0227409625824611,0.0227376866438006,0.0227112606385521,0.0226720345114776,0.0226307137478805,0.022596923276388,0.0225780110060642,0.0225780110060642, +0.0366606483911021,0.0366606483911021,0.0366932201328492,0.0366813967976765,0.0366370478307758,0.0365750535983825,0.0365109175661574,0.0364587727691112,0.0364296230366988,0.0364296230366988, +0.0687388904267066,0.0687388904267066,0.0687760021927277,0.0687419685156495,0.068656152543125,0.0685429333337078,0.0684278966378139,0.0683348109324153,0.0682827571060503,0.0682827571060503, +0.12661225287584,0.12661225287584,0.126645066286658,0.126565426335976,0.126404597544142,0.12620195831299,0.125998921525939,0.125834823879076,0.125742697238918,0.125742697238918, +0.219622036457811,0.219622036457811,0.219628802985724,0.219467522087546,0.219186578136167,0.218846018405674,0.218508209008768,0.218234003647479,0.218078338728915,0.218078338728915, +0.355626115053389,0.355626115053389,0.355572680777963,0.355281144319006,0.354825969481013,0.354293180231276,0.353767721369676,0.353335180417608,0.353082933381737,0.353082933381737, +0.536966392755104,0.536966392755104,0.536818414642965,0.536335872246129,0.535649206100401,0.53487427775247,0.534110447938097,0.533461459957712,0.533058222284543,0.533058222284543, +0.757111939690061,0.757111939690061,0.756878746652633,0.756113621039214,0.755140905745216,0.754094972039301,0.753058934698497,0.752122591311939,0.751448573197113,0.751448573197113, + +00:19:09, +0.0227770848854939,0.0227770848854939,0.0228052909065902,0.022802013945318,0.0227755531260916,0.0227362714114366,0.0226948897874775,0.0226610484670272,0.0226421074617377,0.0226421074617377, +0.0227770848854939,0.0227770848854939,0.0228052909065902,0.022802013945318,0.0227755531260916,0.0227362714114366,0.0226948897874775,0.0226610484670272,0.0226421074617377,0.0226421074617377, +0.0367442407994274,0.0367442407994274,0.0367768434788394,0.0367650119998596,0.0367206231890447,0.0366585692806946,0.0365943688987275,0.0365421706144376,0.0365129907320457,0.0365129907320457, +0.0688577460175177,0.0688577460175177,0.0688948657190688,0.0688608135383739,0.0687749554473118,0.0686616782422073,0.0685465801708864,0.0684534438063127,0.0684013615732233,0.0684013615732233, +0.126773965248288,0.126773965248288,0.126806754172456,0.126727092294014,0.126566237356361,0.126363565770528,0.126160495006671,0.125996369621518,0.125904227808224,0.125904227808224, +0.219819606404222,0.219819606404222,0.219826320582794,0.219665038681884,0.219384122456132,0.219043600435018,0.218705828423243,0.218431654528235,0.218276008785298,0.218276008785298, +0.355833977863746,0.355833977863746,0.355780492615507,0.355489019446822,0.355033977712312,0.354501350757196,0.353976053538628,0.353543648406169,0.353291483013265,0.353291483013265, +0.537143621265617,0.537143621265617,0.536995643433228,0.53651328028494,0.535826897288546,0.535052294759713,0.534288788256872,0.533640078072041,0.533237015452375,0.533237015452375, +0.757214862067314,0.757214862067314,0.756981758962454,0.756216971811667,0.75524469886267,0.754199244790116,0.753163683752329,0.752227771376731,0.751554062440093,0.751554062440093, + +00:19:10, +0.0228414603072754,0.0228414603072754,0.0228697080014099,0.0228664300257656,0.0228399344294314,0.0228005971799896,0.0227591547503065,0.0227252626248036,0.0227062929087647,0.0227062929087647, +0.0228414603072754,0.0228414603072754,0.0228697080014099,0.0228664300257656,0.0228399344294314,0.0228005971799896,0.0227591547503065,0.0227252626248036,0.0227062929087647,0.0227062929087647, +0.036827906471593,0.036827906471593,0.0368605400473595,0.036848700443531,0.0368042718563007,0.0367421583687588,0.0366778937388993,0.0366256420505353,0.03659643206451,0.03659643206451, +0.0689766362165306,0.0689766362165306,0.0690137638115865,0.0689796931720786,0.0688937930822544,0.068780458049745,0.0686652987809909,0.0685721119035771,0.0685200013456135,0.0685200013456135, +0.126935644965841,0.126935644965841,0.126968409398875,0.126888725673437,0.126727844755208,0.126525141040471,0.126322036538797,0.126157883612096,0.126065726735485,0.126065726735485, +0.220017058357401,0.220017058357401,0.220023720255516,0.219862437447215,0.219581549097409,0.219241064988708,0.218903330579527,0.218629188329288,0.218473561859954,0.218473561859954, +0.356041652388511,0.356041652388511,0.355988116290471,0.355696706444939,0.355241797831459,0.354709333211474,0.354184197690985,0.353751928419794,0.353499844685273,0.353499844685273, +0.537320649494438,0.537320649494438,0.537172672018212,0.536690487971454,0.536004387883127,0.535230110918733,0.534466927487396,0.533818494884426,0.533415607171091,0.533415607171091, +0.757317654009896,0.757317654009896,0.757084640741638,0.756320191636216,0.755348360494841,0.754303385489973,0.753268300201122,0.752332818328014,0.751659418193505,0.751659418193505, + +00:19:11, +0.0229059244575042,0.0229059244575042,0.0229342137951848,0.0229309348134156,0.0229044044769257,0.0228650117456279,0.0228235085650181,0.0227895656785069,0.0227705672760166,0.0227705672760166, +0.0229059244575042,0.0229059244575042,0.0229342137951848,0.0229309348134156,0.0229044044769257,0.0228650117456279,0.0228235085650181,0.0227895656785069,0.0227705672760166,0.0227705672760166, +0.0369116453010976,0.0369116453010976,0.0369443097319375,0.0369324620222344,0.0368879937260976,0.0368258207561432,0.0367614919802636,0.0367091869710202,0.0366799469277251,0.0366799469277251, +0.0690955608923709,0.0690955608923709,0.0691326963390707,0.0690986072855456,0.0690126653165811,0.0688992726247044,0.0687840523362483,0.0686908150921174,0.0686386762910134,0.0686386762910134, +0.127097291946155,0.127097291946155,0.127130031883766,0.127050326391993,0.126889419658043,0.126686684039591,0.126483546038451,0.126319365766419,0.126227193936022,0.126227193936022, +0.22021439238769,0.22021439238769,0.220221002074269,0.220059718453698,0.219778858129603,0.219438412135529,0.219100715545509,0.218826605117791,0.218670998019627,0.218670998019627, +0.356249138896521,0.356249138896521,0.356195552071483,0.355904205581792,0.355449430106488,0.354917127861496,0.354392154093399,0.353960020724529,0.353708018663487,0.353708018663487, +0.537497477817403,0.537497477817403,0.537349500773527,0.536867495681462,0.536181678260138,0.535407726605585,0.534644866005699,0.533996710770904,0.533593997816794,0.533593997816794, +0.757420315794402,0.757420315794402,0.757187392266976,0.756423280790518,0.755451890920422,0.754407394418559,0.753372784325497,0.752437732447293,0.751764640739552,0.751764640739552, + +00:19:12, +0.0229704772643607,0.0229704772643607,0.0229988082160207,0.0229955282363814,0.0229689631967696,0.0229295150366829,0.0228879511601018,0.0228539575567655,0.0228349304922023,0.0228349304922023, +0.0229704772643607,0.0229704772643607,0.0229988082160207,0.0229955282363814,0.0229689631967696,0.0229295150366829,0.0228879511601018,0.0228539575567655,0.0228349304922023,0.0228349304922023, +0.0369954571814869,0.0369954571814869,0.0370281524261487,0.0370162966295606,0.0369717886920363,0.0369095563364623,0.0368451635164566,0.0367928052695536,0.0367635352153688,0.0367635352153688, +0.0692145199140051,0.0692145199140051,0.0692516631706515,0.0692175557478973,0.0691315720192602,0.0690181218358088,0.0689028407051195,0.0688095532401823,0.0687573862775556,0.0687573862775556, +0.127258906107357,0.127258906107357,0.127291621545455,0.127211894367908,0.127050961982703,0.126848194685138,0.126645023422246,0.126480816000576,0.126388629325631,0.126388629325631, +0.220411608565637,0.220411608565637,0.22041816610964,0.220256881771696,0.219976049622526,0.219635641944478,0.219297983389293,0.21902390496111,0.218868317331278,0.218868317331278, +0.356456437656188,0.356456437656188,0.356402800226751,0.356111517125393,0.355656874805011,0.355124734974231,0.354599923012103,0.354167925586007,0.353916005213224,0.353916005213224, +0.537674106609401,0.537674106609401,0.537526130073834,0.537044303789804,0.536358768794627,0.53558514219538,0.534822604186861,0.534174726106564,0.533772187764646,0.533772187764646, +0.757522847696615,0.757522847696615,0.75729001381445,0.756526239551414,0.755555290417287,0.754511271854745,0.753477136405258,0.75254251401525,0.751869730359614,0.751869730359614, + +00:19:13, +0.0230351186558671,0.0230351186558671,0.0230634911918654,0.023060210222618,0.0230336105169993,0.0229941069813267,0.0229524824638871,0.022918438188047,0.0228993824858698,0.0228993824858698, +0.0230351186558671,0.0230351186558671,0.0230634911918654,0.023060210222618,0.0230336105169993,0.0229941069813267,0.0229524824638871,0.022918438188047,0.0228993824858698,0.0228993824858698, +0.0370793420063546,0.0370793420063546,0.0371120680236164,0.0371002041591483,0.0370556566477647,0.0369933650033772,0.0369289082411607,0.0368764968398419,0.0368471968211642,0.0368471968211642, +0.0693335131507397,0.0693335131507397,0.0693706641757991,0.0693365384285957,0.0692505130595995,0.069137005552121,0.0690216637564046,0.0689283262163597,0.0688761311737116,0.0688761311737116, +0.127420487368051,0.127420487368051,0.127453178302741,0.127373429519878,0.127212471647498,0.127009672894836,0.12680646860727,0.126642234231135,0.12655003282059,0.12655003282059, +0.220608706961997,0.220608706961997,0.220615212432422,0.220453927471779,0.220173123646202,0.219832754484762,0.219495134179198,0.21922108792683,0.219065519862085,0.219065519862085, +0.356663548935504,0.356663548935504,0.356609861024057,0.356318641343331,0.35586413219422,0.355332154816231,0.354807504712919,0.354375643269453,0.354123804599391,0.354123804599391, +0.537850536244375,0.537850536244375,0.537702560292852,0.537220912670381,0.536535659860698,0.535762358062283,0.535000142405026,0.53435254126556,0.533950177388868,0.533950177388868, +0.757625249991514,0.757625249991514,0.75739250565923,0.756629068194938,0.755658559262499,0.754615018076586,0.75358135671939,0.752647163311749,0.751974687334249,0.751974687334249, + +00:19:14, +0.0230998485598879,0.0230998485598879,0.0231282626505095,0.0231249806999238,0.0230983463654938,0.0230587875075732,0.0230171024045446,0.0229830075006591,0.0229639231854069,0.0229639231854069, +0.0230998485598879,0.0230998485598879,0.0231282626505095,0.0231249806999238,0.0230983463654938,0.0230587875075732,0.0230171024045446,0.0229830075006591,0.0229639231854069,0.0229639231854069, +0.0371632996693423,0.0371632996693423,0.037196056418012,0.0371841845046843,0.0371395974869788,0.0370772466505964,0.0370127260481045,0.0369602615756375,0.0369309316388797,0.0369309316388797, +0.0694525404722206,0.0694525404722206,0.0694896992243223,0.0694555551974413,0.0693694883072454,0.0692559236430425,0.0691405213592422,0.0690471338895757,0.0689949108482911,0.0689949108482911, +0.127582035647312,0.127582035647312,0.127614702074893,0.127534931767072,0.12737394857121,0.127171118586881,0.126967881511087,0.126803620375136,0.126711404337651,0.126711404337651, +0.220805687647728,0.220805687647728,0.220812141113608,0.220650855624721,0.220370080270856,0.220029749825797,0.219692167983751,0.219418154082747,0.219262605679442,0.219262605679442, +0.356870473002035,0.356870473002035,0.356816734730763,0.356525578502773,0.356071202540887,0.355539387653631,0.355014899461255,0.354583174039679,0.354331417086488,0.354331417086488, +0.538026767095328,0.538026767095328,0.537878791803358,0.537397322696147,0.536712351831512,0.535939374579524,0.535177481033397,0.534530156621106,0.534127967062745,0.534127967062745, +0.757727522953271,0.757727522953271,0.757494868075685,0.756731766996315,0.75576169773231,0.754718633361326,0.753685445546064,0.752751680615838,0.7520795119432,0.7520795119432, + +00:19:15, +0.0231646669041309,0.0231646669041309,0.0231931225195877,0.0231898395959407,0.0231631706699755,0.023123556543279,0.0230818109100868,0.023047665422751,0.0230285525190424,0.0230285525190424, +0.0231646669041309,0.0231646669041309,0.0231931225195877,0.0231898395959407,0.0231631706699755,0.023123556543279,0.0230818109100868,0.023047665422751,0.0230285525190424,0.0230285525190424, +0.03724733006414,0.03724733006414,0.0372801175030556,0.0372682375599037,0.0372236111034224,0.0371612011718758,0.0370966168310636,0.0370440993707389,0.0370147395623296,0.0370147395623296, +0.0695716017484324,0.0695716017484324,0.0696087681863681,0.0695746059245727,0.0694884976321822,0.0693748759783125,0.0692594133831087,0.0691659761290942,0.0691137251704415,0.0691137251704415, +0.127743550864686,0.127743550864686,0.127776192781652,0.127696401029128,0.127535392673092,0.127332531679941,0.127129262051733,0.126964974350095,0.12687274379404,0.12687274379404, +0.221002550693992,0.221002550693992,0.221008952224397,0.220847666301499,0.22056691956692,0.220226628037206,0.219889084871693,0.219615103496871,0.219459574850954,0.219459574850954, +0.357077210122927,0.357077210122927,0.357023421613806,0.356732328870466,0.356278086111365,0.355746433752149,0.355222107522107,0.354790518161087,0.354538842938602,0.354538842938602, +0.538202799534323,0.538202799534323,0.538054824977192,0.537573534239122,0.536888845079294,0.53611619211939,0.535354620444242,0.534707572545483,0.534305557158629,0.534305557158629, +0.757829666855258,0.757829666855258,0.757597101337382,0.756834336229966,0.755864706102166,0.754822117985399,0.753789403162642,0.752856066205751,0.752184204465395,0.752184204465395, + +00:19:16, +0.0232295736161484,0.0232295736161484,0.0232580707265793,0.0232547868381555,0.0232280833580112,0.0231884140161444,0.0231466079083689,0.023112411882314,0.0230932704148466,0.0230932704148466, +0.0232295736161484,0.0232295736161484,0.0232580707265793,0.0232547868381555,0.0232280833580112,0.0231884140161444,0.0231466079083689,0.023112411882314,0.0230932704148466,0.0230932704148466, +0.0373314330844866,0.0373314330844866,0.0373642511725161,0.0373523632185908,0.0373076973908882,0.0372452284610189,0.0371805804838607,0.0371280101189913,0.0370986204853745,0.0370986204853745, +0.0696906968496975,0.0696906968496975,0.0697278709324209,0.0696936904804655,0.0696075409047315,0.0694938624280073,0.0693783396978177,0.0692848528045161,0.069232574009647,0.069232574009647, +0.127905032940186,0.127905032940186,0.127937650343223,0.127857837226151,0.127696803872863,0.127493912093154,0.127290610147713,0.127126296073998,0.127034051107456,0.127034051107456, +0.221199296172153,0.221199296172153,0.221205645836186,0.221044359573289,0.220763641605027,0.220423389188814,0.220085884911969,0.219811936237422,0.21965642744444,0.21965642744444, +0.357283760564902,0.357283760564902,0.357229921939705,0.356938892712734,0.356484783171586,0.355953293377087,0.355429129160056,0.35499767589767,0.354746082419417,0.354746082419417, +0.538378633932489,0.538378633932489,0.538230660185257,0.537749547670389,0.537065139975331,0.53629281105324,0.535531561008896,0.53488478941004,0.534482948047942,0.534482948047942, +0.757931681970051,0.757931681970051,0.757699205717088,0.756936776169511,0.75596758464671,0.754925472224435,0.753893229845677,0.752960320358916,0.75228876517895,0.75228876517895, + +00:19:17, +0.0232945686233379,0.0232945686233379,0.0233231071988095,0.0233198223539009,0.0232930843570131,0.0232533598537145,0.0232114933270902,0.0231772468071823,0.0231580768007328,0.0231580768007328, +0.0232945686233379,0.0232945686233379,0.0233231071988095,0.0233198223539009,0.0232930843570131,0.0232533598537145,0.0232114933270902,0.0231772468071823,0.0231580768007328,0.0231580768007328, +0.0374156086241702,0.0374156086241702,0.037448457320212,0.0374365613745789,0.0373918562432174,0.037329328411878,0.0372646169003663,0.0372119937142869,0.0371825743019216,0.0371825743019216, +0.0698098256466754,0.0698098256466754,0.069847007333302,0.0698128087359322,0.0697266179955511,0.0696128828625398,0.0694973001735189,0.0694037637857784,0.0693514572357281,0.0693514572357281, +0.128066481794293,0.128066481794293,0.128099074680281,0.128019240278712,0.127858182090709,0.127655259746124,0.127451925718002,0.127287585465302,0.127195326196067,0.127195326196067, +0.221395924153773,0.221395924153773,0.221402222020571,0.221240935511466,0.220960246456012,0.220620033350654,0.220282568173732,0.220008652372828,0.219853163527928,0.219853163527928, +0.357490124594264,0.357490124594264,0.357436235974555,0.357145270295483,0.356691293987066,0.356159966793333,0.355635964639275,0.355204647513012,0.354953135792207,0.354953135792207, +0.53855427066002,0.53855427066002,0.538406297797525,0.537925363360097,0.537241236889981,0.536469231751497,0.535708303097767,0.5350618075852,0.534660140101177,0.534660140101177, +0.758033568569429,0.758033568569429,0.757801181486777,0.757039087087774,0.756070333639781,0.755028696353259,0.753996925870916,0.753064443351951,0.752393194361173,0.752393194361173, + +00:19:18, +0.0233596518529433,0.0233596518529433,0.02338823186345,0.0233849460703562,0.0233581735942394,0.0233183939833797,0.0232764670937945,0.0232421701250345,0.0232229716044577,0.0232229716044577, +0.0233596518529433,0.0233596518529433,0.02338823186345,0.0233849460703562,0.0233581735942394,0.0233183939833797,0.0232764670937945,0.0232421701250345,0.0232229716044577,0.0232229716044577, +0.0374998565770286,0.0374998565770286,0.0375327358400114,0.037520831921751,0.0374760875543006,0.0374135009183538,0.0373487259744987,0.0372960500505651,0.037266600905925,0.037266600905925, +0.0699289880103621,0.0699289880103621,0.0699661772601686,0.0699319605621206,0.0698457287756348,0.0697319371526585,0.0696162946806978,0.0695227089431537,0.0694703747188404,0.0694703747188404, +0.128227897347952,0.128227897347952,0.12826046571396,0.128180610107844,0.128019527247283,0.127816574558924,0.127613208682043,0.127448842442932,0.127356568978511,0.127356568978511, +0.221592434710612,0.221592434710612,0.221598680849345,0.221437394187605,0.221156734190907,0.220816560592958,0.220479134726342,0.220205251971725,0.220049783169655,0.220049783169655, +0.357696302476895,0.357696302476895,0.357642363984031,0.357351461884196,0.356897618822901,0.356366454265358,0.355842614223521,0.355411433270289,0.355160003319838,0.355160003319838, +0.538729710086181,0.538729710086181,0.538581738183039,0.538100981677467,0.537417136192671,0.53664545458366,0.535884847080336,0.535238627440459,0.534837133687902,0.534837133687902, +0.75813532692438,0.75813532692438,0.757903028917627,0.75714126925678,0.756172953354426,0.755131790645896,0.754100491513309,0.753168435460671,0.752497492288568,0.752497492288568, + +00:19:19, +0.0234248232320553,0.0234248232320553,0.0234534446475202,0.0234501579145482,0.0234233509967957,0.023383516332377,0.0233415291358714,0.0233071817633939,0.0232879547536228,0.0232879547536228, +0.0234248232320553,0.0234248232320553,0.0234534446475202,0.0234501579145482,0.0234233509967957,0.023383516332377,0.0233415291358714,0.0233071817633939,0.0232879547536228,0.0232879547536228, +0.0375841768369495,0.0375841768369495,0.0376170866258326,0.0376051747540402,0.0375603912180781,0.037497745874396,0.0374329076002246,0.0373801790218133,0.0373507001913866,0.0373507001913866, +0.0700481838120895,0.0700481838120895,0.0700853805845131,0.0700511458305141,0.0699648731163112,0.0698510251694468,0.0697353230901748,0.0696416881472493,0.0695893263294745,0.0695893263294745, +0.128389279522573,0.128389279522573,0.128421823365859,0.128341946635045,0.128180839263697,0.127977856452086,0.127774458959743,0.127610066926279,0.127517779373892,0.127517779373892, +0.221788827914626,0.221788827914626,0.221795022394498,0.221633735673474,0.221353104880943,0.221012970986158,0.220675584639358,0.220401735102954,0.220246286438066,0.220246286438066, +0.357902294478256,0.357902294478256,0.357848306233391,0.357557467743939,0.35710375794377,0.35657275605722,0.356049078176144,0.355618033432267,0.35536668526477,0.35536668526477, +0.538904952579312,0.538904952579312,0.538756981709916,0.538276402990794,0.537592838251901,0.536821479918299,0.536061193325158,0.535415249344392,0.535013929176767,0.535013929176767, +0.758236957305103,0.758236957305103,0.758004748280029,0.757243322947766,0.756275444062891,0.755234755375577,0.754203927047002,0.753272296960094,0.752601659236834,0.752601659236834, + +00:19:20, +0.023490082687613,0.023490082687613,0.0235187454778881,0.0235154578133524,0.0234886164916359,0.0234487268277909,0.0234066793805571,0.0233722816496298,0.0233530261756749,0.0233530261756749, +0.023490082687613,0.023490082687613,0.0235187454778881,0.0235154578133524,0.0234886164916359,0.0234487268277909,0.0234066793805571,0.0233722816496298,0.0233530261756749,0.0233530261756749, +0.0376685692978708,0.0376685692978708,0.0377015095716443,0.0376895897654299,0.0376447671285403,0.037582063174004,0.0375171616715595,0.037464380522067,0.0374348720523557,0.0374348720523557, +0.070167412923524,0.070167412923524,0.0702046171781623,0.0701703644129299,0.0700840508892432,0.0699701467843225,0.0698543852731042,0.0697607012690066,0.0697083119384548,0.0697083119384548, +0.128550628240023,0.128550628240023,0.128583147558038,0.128503249782271,0.128342118061525,0.128139105346608,0.127935676471473,0.127771258835198,0.127678957301779,0.127678957301779, +0.221985103837966,0.221985103837966,0.221991246728212,0.221829960041037,0.221549358597547,0.221209264600887,0.220871917982543,0.22059810183556,0.220442673401808,0.220442673401808, +0.358108100863389,0.358108100863389,0.358054062987469,0.357763288139358,0.357309711613935,0.356778872432562,0.35625535676008,0.355824448261305,0.355573181889058,0.355573181889058, +0.539079998506828,0.539079998506828,0.538932028745349,0.538451627667449,0.53776834343525,0.536997308123066,0.536237342199871,0.535591673664655,0.535190526935499,0.535190526935499, +0.758338459981012,0.758338459981012,0.758106339843588,0.757345248431177,0.756377806036636,0.755337590814737,0.754307232745348,0.753376028124436,0.752705695480876,0.752705695480876, + +00:19:21, +0.0235554301464044,0.0235554301464044,0.0235841342812712,0.0235808456934936,0.0235539700055627,0.0235140253965541,0.0234719177549353,0.0234374697109585,0.0234181857979075,0.0234181857979075, +0.0235554301464044,0.0235554301464044,0.0235841342812712,0.0235808456934936,0.0235539700055627,0.0235140253965541,0.0234719177549353,0.0234374697109585,0.0234181857979075,0.0234181857979075, +0.0377530338537814,0.0377530338537814,0.0377860045714661,0.0377740768499544,0.0377292151797277,0.0376664527112267,0.0376014880825681,0.0375486544454102,0.03751911638293,0.03751911638293, +0.0702866752166665,0.0702866752166665,0.0703238869132769,0.0702896161815189,0.0702032619664272,0.0700893018690366,0.0699734811009741,0.0698797481797004,0.069827331416939,0.069827331416939, +0.128711943422633,0.128711943422633,0.128744438213012,0.128664519471936,0.128503363562802,0.128300321163947,0.128096861138064,0.127932418090007,0.127840102682205,0.127840102682205, +0.222181262552977,0.222181262552977,0.222187353922861,0.22202606736245,0.221745495412341,0.221405441507972,0.22106813482586,0.220794352238792,0.220638944129733,0.220638944129733, +0.358313721896919,0.358313721896919,0.358259634510684,0.357968923334683,0.357515480097243,0.356984803654615,0.356461450237858,0.356030678019357,0.35577949345435,0.35577949345435, +0.539254848235222,0.539254848235222,0.539106879655612,0.538626656073883,0.537943652109376,0.537172939564692,0.536413294071194,0.535767900767987,0.535366927330911,0.535366927330911, +0.758439835220737,0.758439835220737,0.758207803877123,0.757447045976674,0.756480039546328,0.75544029723502,0.754410408880908,0.75347962922712,0.752809601294797,0.752809601294797, + +00:19:22, +0.0236208655350674,0.0236208655350674,0.0236496109842373,0.0236463214815473,0.0236194114652287,0.0235794119654487,0.0235372441859381,0.0235027458744439,0.0234834335474613,0.0234834335474613, +0.0236208655350674,0.0236208655350674,0.0236496109842373,0.0236463214815473,0.0236194114652287,0.0235794119654487,0.0235372441859381,0.0235027458744439,0.0234834335474613,0.0234834335474613, +0.0378375703987211,0.0378375703987211,0.0378705715193689,0.0378586359016989,0.0378137352657319,0.0377509143801635,0.0376858867273645,0.0376330006859758,0.0376034330772557,0.0376034330772557, +0.0704059705638514,0.0704059705638514,0.0704431896623508,0.0704089010087651,0.0703225062201923,0.0702084902956732,0.0700926104456049,0.0699988287509379,0.0699463846364174,0.0699463846364174, +0.128873224993187,0.128873224993187,0.128905695253755,0.128825755626913,0.128664575690018,0.128461503826018,0.128258012880809,0.128093544611484,0.128001215435663,0.128001215435663, +0.222377304132194,0.222377304132194,0.222383344051012,0.22222205771006,0.221941515397138,0.221601501778437,0.221264235239469,0.220990486382095,0.220835098690897,0.220835098690897, +0.358519157843048,0.358519157843048,0.358465021067034,0.358174373593722,0.357721063657122,0.357190549986196,0.356667358871595,0.356236722967966,0.355985620221889,0.355985620221889, +0.539429502130072,0.539429502130072,0.539281534806061,0.538801488575627,0.538118764640017,0.537348374608991,0.53658904930493,0.535943931020213,0.535543130728904,0.535543130728904, +0.758541083292129,0.758541083292129,0.758309140648675,0.757548715853134,0.756582144861852,0.755542874907284,0.754513455725453,0.75358310054078,0.752913376951911,0.752913376951911, + +00:19:23, +0.0236863887800908,0.0236863887800908,0.0237151755132055,0.0237118851039399,0.0236849407971378,0.023644886461107,0.0236026586003473,0.0235681100669986,0.0235487693513254,0.0235487693513254, +0.0236863887800908,0.0236863887800908,0.0237151755132055,0.0237118851039399,0.0236849407971378,0.023644886461107,0.0236026586003473,0.0235681100669986,0.0235487693513254,0.0235487693513254, +0.0379221788267813,0.0379221788267813,0.0379552103094752,0.0379432668148003,0.0378983272806955,0.037835448074964,0.0377703575001127,0.037717419137946,0.0376878220295282,0.0376878220295282, +0.0705252988377458,0.0705252988377458,0.0705625252982098,0.0705282187674843,0.0704417835232,0.0703277119366482,0.0702117731791494,0.0701179428546583,0.070065471468712,0.070065471468712, +0.12903447287493,0.12903447287493,0.129066918603696,0.128986958170527,0.128825754366119,0.128622653255193,0.128419131621458,0.128254638320867,0.128162295483107,0.128162295483107, +0.222573228648343,0.222573228648343,0.22257921718542,0.222417931156403,0.222137418623942,0.221797445483501,0.221460219293729,0.221186504335119,0.221031137154554,0.221031137154554, +0.358724408965566,0.358724408965566,0.358670222920101,0.35837963917987,0.357926462556587,0.357396111689709,0.356873082923001,0.356442583368272,0.356191562452512,0.356191562452512, +0.539603960556039,0.539603960556039,0.539455994561137,0.5389761255373,0.538293681392,0.537523613620864,0.536764608265974,0.536119764786249,0.535719137494468,0.535719137494468, +0.75864220446226,0.75864220446226,0.758410350425506,0.757650258328654,0.756684122252308,0.755645324101601,0.754616373549966,0.753686442337259,0.753017022724741,0.753017022724741, + +00:19:24, +0.0237519998078152,0.0237519998078152,0.0237808277944472,0.0237775364869503,0.0237505579276454,0.0237104488100124,0.0236681609247948,0.023633562215385,0.0236141931363381,0.0236141931363381, +0.0237519998078152,0.0237519998078152,0.0237808277944472,0.0237775364869503,0.0237505579276454,0.0237104488100124,0.0236681609247948,0.023633562215385,0.0236141931363381,0.0236141931363381, +0.0380068590321051,0.0380068590321051,0.0380399208359595,0.0380279694834473,0.0379829911188126,0.0379200536898291,0.0378549002950271,0.0378019096955528,0.0377722831339918,0.0377722831339918, +0.0706446599113487,0.0706446599113487,0.0706818936940117,0.0706475693308238,0.0705610937484426,0.0704469666647089,0.0703309691740914,0.0702370903631321,0.0701845917859759,0.0701845917859759, +0.129195686991556,0.129195686991556,0.129228108186716,0.129148127026558,0.128986899514506,0.128783769374299,0.128580217282217,0.128415699139852,0.128323342745946,0.128323342745946, +0.222769036174338,0.222769036174338,0.222774973399026,0.222613687774204,0.222333205164949,0.221993272694572,0.221656087059191,0.221382406167708,0.221227059590157,0.221227059590157, +0.358929475527839,0.358929475527839,0.358875240333048,0.358584720356102,0.358131677058238,0.357601489027147,0.357078622653376,0.356648259481007,0.356397320406654,0.356397320406654, +0.539778223876871,0.539778223876871,0.539630259284371,0.539150567322609,0.538468402729238,0.537698656964303,0.536939971318308,0.536295402430102,0.535894947991686,0.535894947991686, +0.758743198997431,0.758743198997431,0.758511433474103,0.757751673670554,0.756785971986016,0.755747645087261,0.754719162624647,0.753789654887615,0.753120538885022,0.753120538885022, + +00:19:25, +0.0238176985444339,0.0238176985444339,0.023846567754087,0.0238432755567107,0.0238162627829597,0.0237760989385003,0.0237337510857637,0.0236991022462159,0.023679704829188,0.023679704829188, +0.0238176985444339,0.0238176985444339,0.023846567754087,0.0238432755567107,0.0238162627829597,0.0237760989385003,0.0237337510857637,0.0236991022462159,0.023679704829188,0.023679704829188, +0.038091610908888,0.038091610908888,0.0381247029930485,0.0381127438018808,0.0380677266743291,0.0380047311190108,0.0379395150063725,0.0378864722530781,0.0378568162849408,0.0378568162849408, +0.0707640536579906,0.0707640536579906,0.0708012947232447,0.0707669525722615,0.0706804367692435,0.0705662543529332,0.0704501983032452,0.0703562711489601,0.0703037454606926,0.0703037454606926, +0.129356867267213,0.129356867267213,0.129389263927147,0.129309262119235,0.12914801105903,0.128944852106617,0.128741269785746,0.128576726990588,0.128484357146048,0.128484357146048, +0.22296472678328,0.22296472678328,0.222970612764959,0.222809327636373,0.222528875092542,0.222188983483253,0.221851838606602,0.221578191949901,0.221422866067357,0.221422866067357, +0.359134357792821,0.359134357792821,0.359080073568622,0.358789617384978,0.358336707424257,0.357806682260091,0.357283978323612,0.3568537515665,0.356602894344343,0.356602894344343, +0.53995229245541,0.53995229245541,0.539804329338384,0.539324814294351,0.538642929014737,0.537873505002391,0.537115138825011,0.536470844314876,0.536070562583735,0.536070562583735, +0.758844067163169,0.758844067163169,0.758612390060182,0.75785296214538,0.756887694330521,0.755849838132775,0.754821823218916,0.753892738462123,0.753223925703705,0.753223925703705, + +00:19:26, +0.0238834849159938,0.0238834849159938,0.0239123953181034,0.023909102239207,0.0238820552891427,0.0238418367727591,0.0237994290095894,0.0237647300859557,0.0237453043564145,0.0237453043564145, +0.0238834849159938,0.0238834849159938,0.0239123953181034,0.023909102239207,0.0238820552891427,0.0238418367727591,0.0237994290095894,0.0237647300859557,0.0237453043564145,0.0237453043564145, +0.0381764343513779,0.0381764343513779,0.0382095566750217,0.0381975896643945,0.0381525338415433,0.0380894802568128,0.038024201528465,0.0379711067048544,0.0379414213767195,0.0379414213767195, +0.0708834799513323,0.0708834799513323,0.0709207282597275,0.0708863683656051,0.0707998124592556,0.0706855748747289,0.0705694604397551,0.0704754850850727,0.0704229323656754,0.0704229323656754, +0.129518013626502,0.129518013626502,0.129550385749773,0.129470363373239,0.129309088923993,0.129105901375878,0.128902289055159,0.128737721795679,0.128645338605734,0.128645338605734, +0.223160300548453,0.223160300548453,0.223166135356532,0.223004850816008,0.222724428479288,0.222384577921331,0.2220474740069,0.221773861751934,0.221618556656,0.221618556656, +0.359339056023048,0.359339056023048,0.359284722889154,0.358994330528642,0.358541553916418,0.358011691649712,0.357489150194194,0.357059059884673,0.356808284525207,0.356808284525207, +0.54012616665359,0.54012616665359,0.539978205084893,0.539498866814417,0.538817260610596,0.538048158097307,0.537290111148258,0.536646090802773,0.536245981632895,0.536245981632895, +0.758944809224234,0.758944809224234,0.758713220448689,0.757954124018906,0.756989289552591,0.755951903505879,0.754924355601415,0.753995693330279,0.753327183450961,0.753327183450961, + +00:19:27, +0.0239493588483963,0.0239493588483963,0.0239783104123301,0.0239750164602802,0.0239479353721107,0.0239076622388311,0.0238651946224602,0.0238304456609211,0.0238109916444093,0.0238109916444093, +0.0239493588483963,0.0239493588483963,0.0239783104123301,0.0239750164602802,0.0239479353721107,0.0239076622388311,0.0238651946224602,0.0238304456609211,0.0238109916444093,0.0238109916444093, +0.0382613292538756,0.0382613292538756,0.0382944817762117,0.0382825069653347,0.038237412514806,0.0381743009975908,0.0381089597556717,0.0380558129452646,0.0380260983037227,0.0380260983037227, +0.0710029386653647,0.0710029386653647,0.071040194177608,0.0710058165849918,0.070919220692461,0.0708049281038326,0.0706887554570944,0.0705947320447296,0.0705421523740662,0.0705421523740662, +0.129679125994468,0.129679125994468,0.129711473579822,0.129631430713697,0.129470133034145,0.129266917106262,0.12906327501402,0.128898683478181,0.128806287047778,0.128806287047778, +0.223355757543328,0.223355757543328,0.223361541247241,0.223200257386386,0.222919865397944,0.222580056080786,0.222242993331214,0.221969415644235,0.221814131426127,0.221814131426127, +0.35954357048064,0.35954357048064,0.359489188556558,0.359198860048824,0.358746216796076,0.358216517456768,0.357694138525199,0.357264184695044,0.357013491208468,0.357013491208468, +0.540299846832442,0.540299846832442,0.540151886884711,0.539672725243797,0.538991397878013,0.538222616610329,0.537464888649323,0.536821142255093,0.536421205500543,0.536421205500543, +0.759045425444622,0.759045425444622,0.758813924903806,0.758055159556137,0.757090757918227,0.756053841473534,0.75502676004001,0.754098519760802,0.75343031239618,0.75343031239618, + +00:19:28, +0.0240153202673982,0.0240153202673982,0.0240443129624565,0.0240410181456275,0.0240139029576358,0.0239735752626133,0.0239310478504187,0.0238962488972822,0.0238767666194169,0.0238767666194169, +0.0240153202673982,0.0240153202673982,0.0240443129624565,0.0240410181456275,0.0240139029576358,0.0239735752626133,0.0239310478504187,0.0238962488972822,0.0238767666194169,0.0238767666194169, +0.0383462955107352,0.0383462955107352,0.0383794781910044,0.0383674955991012,0.0383223625885209,0.0382591932357529,0.0381937895824118,0.0381405908687432,0.0381108469603959,0.0381108469603959, +0.0711224296744074,0.0711224296744074,0.0711596923513626,0.0711252971048869,0.0710386613431704,0.0709243139143098,0.0708080832290646,0.0707140119015185,0.0706614053593355,0.0706614053593355, +0.129840204296607,0.129840204296607,0.12987252734297,0.129792464066182,0.129631143314684,0.129427899222399,0.129224227586341,0.1290596119616,0.128967202395403,0.128967202395403, +0.223551097841557,0.223551097841557,0.223556830510763,0.223395547420969,0.223115185921445,0.222775418033779,0.222438396650861,0.222164853697422,0.222009590447968,0.222009590447968, +0.3597479014273,0.3597479014273,0.359693470832335,0.359403206206838,0.358950696324176,0.35842115994161,0.357898943576298,0.357469126256728,0.357218514652946,0.357218514652946, +0.540473333352095,0.540473333352095,0.540325375097751,0.539846389942577,0.539165341177284,0.538396880901834,0.537639471688585,0.536995999032244,0.536596234547162,0.536596234547162, +0.759145916087562,0.759145916087562,0.758914503688949,0.758156069021315,0.757192099692659,0.756155652301932,0.755129036801796,0.754201218021638,0.753533312807979,0.753533312807979, + +00:19:29, +0.0240813690986129,0.0240813690986129,0.024110402894029,0.0241071072208024,0.0240799579713463,0.0240395757698586,0.023996988619362,0.0239621397210632,0.0239426292075356,0.0239426292075356, +0.0240813690986129,0.0240813690986129,0.024110402894029,0.0241071072208024,0.0240799579713463,0.0240395757698586,0.023996988619362,0.0239621397210632,0.0239426292075356,0.0239426292075356, +0.0384313330163645,0.0384313330163645,0.0384645458138396,0.0384525554601475,0.038407383957145,0.03834415686576,0.0382786909031563,0.038225440369776,0.0381956672412359,0.0381956672412359, +0.0712419528531088,0.0712419528531088,0.0712792226557959,0.0712448098000835,0.0711581342860219,0.0710437321805534,0.070927443629795,0.0708333245293548,0.070780691195281,0.070780691195281, +0.130001248458856,0.130001248458856,0.130033546965338,0.129953463356711,0.129792119691252,0.129588847649363,0.129385146696584,0.129220507169891,0.129128084572283,0.129128084572283, +0.223746321516972,0.223746321516972,0.223752003220954,0.223590720993398,0.223310390122911,0.22297066385266,0.222633684037346,0.222360175982304,0.22220493379195,0.22220493379195, +0.359952049124319,0.359952049124319,0.359897569977568,0.359607369263583,0.35915499276125,0.358625619364177,0.358103565606756,0.357673884828435,0.357423355117062,0.357423355117062, +0.540646626571784,0.540646626571784,0.540498670083031,0.54001986126995,0.539339090867807,0.538570951331305,0.537813860625525,0.537170661493738,0.536771069132344,0.536771069132344, +0.759246281415529,0.759246281415529,0.759014957066776,0.758256852677915,0.757293315140352,0.756257336256497,0.755231186153098,0.754303788379961,0.753636184954202,0.753636184954202, + +00:19:30, +0.0241475052675108,0.0241475052675108,0.0241765801324515,0.0241732836112164,0.0241461003387278,0.0241056636861763,0.0240630168550434,0.0240281180581435,0.0240085793347183,0.0240085793347183, +0.0241475052675108,0.0241475052675108,0.0241765801324515,0.0241732836112164,0.0241461003387278,0.0241056636861763,0.0240630168550434,0.0240281180581435,0.0240085793347183,0.0240085793347183, +0.0385164416652253,0.0385164416652253,0.038549684539211,0.0385376864429811,0.0384924765151892,0.0384291917821258,0.0383636636124287,0.0383103613429006,0.0382805590407909,0.0382805590407909, +0.0713615080764446,0.0713615080764446,0.0713987849660393,0.0713643545457018,0.0712776393959807,0.0711631827772831,0.0710468365337418,0.0709526698024807,0.0709000097560272,0.0709000097560272, +0.1301622584076,0.1301622584076,0.130194532373487,0.130114428511744,0.129953062089932,0.129749762312675,0.129546032269655,0.129381369027454,0.129288933502537,0.129288933502537, +0.223941428643585,0.223941428643585,0.223947059451852,0.223785778177492,0.223505478075643,0.223165793609959,0.222828855562361,0.222555382569878,0.222400161528683,0.222400161528683, +0.360156013832572,0.360156013832572,0.36010148625293,0.359811349479548,0.359359106367419,0.358829895984002,0.358308004875431,0.357878460668474,0.357628012858831,0.357628012858831, +0.540819726849845,0.540819726849845,0.540671772198672,0.540193139584211,0.53951264730809,0.538744828257332,0.537988055818736,0.537345129998197,0.536945709614787,0.536945709614787, +0.759346521690237,0.759346521690237,0.759115285299186,0.758357510788657,0.75739440452501,0.756358893601891,0.755333208359475,0.754406231102176,0.753738929101922,0.753738929101922, + +00:19:31, +0.0242137286994206,0.0242137286994206,0.0242428446029866,0.0242395472421396,0.0242123299851242,0.0241718389370332,0.0241291324830727,0.0240941838342585,0.024074616926774,0.024074616926774, +0.0242137286994206,0.0242137286994206,0.0242428446029866,0.0242395472421396,0.0242123299851242,0.0241718389370332,0.0241291324830727,0.0240941838342585,0.024074616926774,0.024074616926774, +0.0386016213518336,0.0386016213518336,0.038634894261667,0.0386228884421636,0.0385776401572179,0.038514297879418,0.0384487076048054,0.0383953536827069,0.038365522253661,0.038365522253661, +0.0714810952197175,0.0714810952197175,0.0715183791575511,0.0714839312171881,0.0713971765483382,0.071282665579545,0.0711662618156874,0.0710720475954646,0.0710193609160248,0.0710193609160248, +0.130323234069662,0.130323234069662,0.13035548349442,0.130275359458181,0.130113970437253,0.129910643138295,0.129706884230903,0.129542197459135,0.129449749110732,0.129449749110732, +0.224136419295584,0.224136419295584,0.224141999277667,0.223980719047249,0.223700449853119,0.223360807378387,0.223023911297779,0.222750473531326,0.22259527372897,0.22259527372897, +0.360359795812521,0.360359795812521,0.360305219918675,0.360015147114804,0.359563037402391,0.359033990060207,0.358512261640778,0.358082854034749,0.357832488135869,0.357832488135869, +0.540992634543726,0.540992634543726,0.540844681801906,0.540366225242765,0.539686010855744,0.538918512037612,0.538162057625921,0.537519404903356,0.537120156352306,0.537120156352306, +0.759446637172647,0.759446637172647,0.759215488647325,0.7584580436155,0.757495368109576,0.75646032460201,0.755435103685723,0.754508546453925,0.753841545517446,0.753841545517446, + +00:19:32, +0.0242800393195298,0.0242800393195298,0.0243091962307563,0.0243058980387015,0.0242786468357383,0.0242381014477546,0.0241953354289172,0.0241603369750007,0.0241407419093677,0.0241407419093677, +0.0242800393195298,0.0242800393195298,0.0243091962307563,0.0243058980387015,0.0242786468357383,0.0242381014477546,0.0241953354289172,0.0241603369750007,0.0241407419093677,0.0241407419093677, +0.0386868719707602,0.0386868719707602,0.0387201748758106,0.0387081613523117,0.0386628747778504,0.0385994750522575,0.0385338227749159,0.0384804172838373,0.0384505567744987,0.0384505567744987, +0.0716007141585563,0.0716007141585563,0.071638005106115,0.0716035396903143,0.0715167456187113,0.0714021804627108,0.0712857193507395,0.0711914577832001,0.0711387445500498,0.0711387445500498, +0.130484175372306,0.130484175372306,0.130516400255581,0.130436256123362,0.130274844660178,0.130071490052626,0.12986770250612,0.129702992390223,0.129610531321876,0.129610531321876, +0.224331293547335,0.224331293547335,0.224336822772788,0.224175543676842,0.223895305528994,0.223555705230839,0.223218851315659,0.222945448938017,0.222790270463796,0.222790270463796, +0.360563395324214,0.360563395324214,0.36050877123465,0.360218762429013,0.359766786125464,0.359237901851507,0.358716336160846,0.358287065184764,0.358036781205393,0.358036781205393, +0.541165350009983,0.541165350009983,0.541017399249075,0.54053911860213,0.539859181867496,0.539092003028958,0.538335866403895,0.537693486566065,0.537294409701828,0.537294409701828, +0.75954662812297,0.75954662812297,0.759315567371585,0.75855845141965,0.757596206156236,0.756561629519994,0.755536872395878,0.754610734700087,0.753944034466317,0.753944034466317, + +00:19:33, +0.0243464370528863,0.0243464370528863,0.0243756349407433,0.024372335925892,0.0243450508156331,0.0243044511435252,0.0242616256179031,0.0242265774058201,0.0242069542080222,0.0242069542080222, +0.0243464370528863,0.0243464370528863,0.0243756349407433,0.024372335925892,0.0243450508156331,0.0243044511435252,0.0242616256179031,0.0242265774058201,0.0242069542080222,0.0242069542080222, +0.0387721934166307,0.0387721934166307,0.0388055262763001,0.0387935050680968,0.0387481802717603,0.0386847231953196,0.0386190090174431,0.0385655520409874,0.038535662498009,0.038535662498009, +0.0717203647689152,0.0717203647689152,0.0717576626878396,0.0717231798411771,0.0716363464830414,0.0715217273024768,0.0714052090143308,0.0713109002409056,0.0712581605332026,0.0712581605332026, +0.130645082243234,0.130645082243234,0.130677282584847,0.130597118435063,0.130435684686112,0.13023230298251,0.13002848702154,0.129863753746448,0.129771280061421,0.129771280061421, +0.224526051473377,0.224526051473377,0.224531530011776,0.224370252140617,0.224090045177102,0.223750487240383,0.22341367568824,0.223140308861502,0.222985151804335,0.222985151804335, +0.360766812627286,0.360766812627286,0.360712140460284,0.360422195681425,0.359970352795525,0.35944163161621,0.358920228693279,0.358491094375621,0.358240892324217,0.358240892324217, +0.541337873604287,0.541337873604287,0.541189924895636,0.540711820017933,0.540032160699185,0.539265301587295,0.538509482508591,0.537867375342291,0.5374684700194,0.5374684700194, +0.759646494800667,0.759646494800667,0.759415521731611,0.758658734461564,0.757696918926424,0.756662808618227,0.755638514753216,0.75471279610478,0.754046396213318,0.754046396213318, + +00:19:34, +0.0244129218243985,0.0244129218243985,0.0244421606577912,0.0244388608285624,0.0244115418497325,0.0243708879493897,0.0243280029752156,0.0242929050520257,0.0242732537481185,0.0242732537481185, +0.0244129218243985,0.0244129218243985,0.0244421606577912,0.0244388608285624,0.0244115418497325,0.0243708879493897,0.0243280029752156,0.0242929050520257,0.0242732537481185,0.0242732537481185, +0.0388575855841264,0.0388575855841264,0.0388909483578491,0.0388789194842458,0.0388335565336764,0.0387700422033343,0.0387042662271238,0.0386507578489058,0.0386208393189498,0.0386208393189498, +0.0718400469270732,0.0718400469270732,0.071877351779158,0.0718428515461971,0.0717559790175943,0.0716413059748632,0.0715247306822177,0.0714303748441234,0.0713776087409079,0.0713776087409079, +0.130805954610586,0.130805954610586,0.130838130410534,0.130757946321497,0.130596490442896,0.130393081855226,0.130189237703832,0.13002448145398,0.129931995255259,0.129931995255259, +0.224720693148424,0.224720693148424,0.224726121069367,0.224564844513096,0.224284668871449,0.223945153480269,0.223608384487941,0.223335053373516,0.223179917821941,0.223179917821941, +0.360970047980961,0.360970047980961,0.360915327854597,0.360625447130875,0.360173737671054,0.359645179612215,0.359123939495319,0.35869494186402,0.358444821748756,0.358444821748756, +0.541510205681427,0.541510205681427,0.541362259096163,0.540884329844923,0.540204947705767,0.539438408067669,0.538682906295064,0.538041071587122,0.53764233766019,0.53764233766019, +0.759746237464454,0.759746237464454,0.7595153519863,0.758758893000946,0.75779750668082,0.756763862158338,0.755740031020259,0.754814730931366,0.754148631022471,0.754148631022471, + +00:19:35, +0.0244794935588366,0.0244794935588366,0.024508773306606,0.0245054726714261,0.0244781198628219,0.0244374117902539,0.0243944674259004,0.0243593198387863,0.024339640454897,0.024339640454897, +0.0244794935588366,0.0244794935588366,0.024508773306606,0.0245054726714261,0.0244781198628219,0.0244374117902539,0.0243944674259004,0.0243593198387863,0.024339640454897,0.024339640454897, +0.0389430483679841,0.0389430483679841,0.0389764410152272,0.0389644044955414,0.0389190034583828,0.0388554319710859,0.0387895942987492,0.0387360346023947,0.0387060871321323,0.0387060871321323, +0.0719597605096332,0.0719597605096332,0.0719970722568267,0.0719625546821185,0.0718756430989589,0.0717609163562139,0.0716442842304802,0.0715498814687191,0.0714970890489131,0.0714970890489131, +0.130966792402934,0.130966792402934,0.130998943661389,0.130918739711307,0.130757261858802,0.130553826598488,0.130349954480106,0.130185175439428,0.130092676829718,0.130092676829718, +0.224915218647361,0.224915218647361,0.224920596020464,0.224759320868968,0.224479176686213,0.224139704023919,0.223802977787359,0.223529682545973,0.223374568588151,0.223374568588151, +0.361173101644051,0.361173101644051,0.361118333676197,0.360828517035791,0.360376941010117,0.359848546097018,0.359327468823804,0.358898607906262,0.358648569735028,0.358648569735028, +0.541682346595309,0.541682346595309,0.54153440220435,0.541056648436966,0.540377543241319,0.539611322824244,0.538856138117487,0.538214575654771,0.537816012978491,0.537816012978491, +0.759845856372304,0.759845856372304,0.759615058393807,0.758858927296758,0.75789796967936,0.756864790401209,0.755841421458779,0.754916539442455,0.754250739157044,0.754250739157044, + +00:19:36, +0.0245461521808336,0.0245461521808336,0.0245754728117569,0.0245721713790595,0.0245447847795497,0.0245040225908857,0.0244610188948646,0.0244258216911307,0.0244061142534581,0.0244061142534581, +0.0245461521808336,0.0245461521808336,0.0245754728117569,0.0245721713790595,0.0245447847795497,0.0245040225908857,0.0244610188948646,0.0244258216911307,0.0244061142534581,0.0244061142534581, +0.0390285816629965,0.0390285816629965,0.0390620041432602,0.0390499599968222,0.0390045209407194,0.0389408923934145,0.0388749931271647,0.0388213821963106,0.0387914058324216,0.0387914058324216, +0.0720795053935213,0.0720795053935213,0.072116823997925,0.0720822891260077,0.0719953386040466,0.0718805583231949,0.0717638695355206,0.0716694199908808,0.0716166013332885,0.0716166013332885, +0.131127595549285,0.131127595549285,0.131159722266594,0.131079498533572,0.130917998862539,0.130714537140445,0.130510637277904,0.130345835629834,0.130253324711565,0.130253324711565, +0.225109628045242,0.225109628045242,0.225114954940142,0.224953681283096,0.224673568695746,0.224334138944931,0.223997455659267,0.223724196450967,0.223569104174682,0.223569104174682, +0.361375973874957,0.361375973874957,0.36132115818328,0.361031405654189,0.360579963070376,0.360051731327706,0.35953081693517,0.359102092758247,0.358852136538649,0.358852136538649, +0.541854296698962,0.541854296698962,0.541706354573015,0.54122877614705,0.540549947659038,0.53978404621031,0.539029178329161,0.538387887898575,0.53798949632772,0.53798949632772, +0.759945351781451,0.759945351781451,0.759714641211547,0.758958837607217,0.75799830818123,0.75696559360697,0.755942686329795,0.755018221899902,0.754352720879553,0.754352720879553, + +00:19:37, +0.0246128976148859,0.0246128976148859,0.0246422590976767,0.0246389568759032,0.0246115365244277,0.024570720275916,0.024527657306877,0.0244924105339496,0.0244726750687633,0.0244726750687633, +0.0246128976148859,0.0246128976148859,0.0246422590976767,0.0246389568759032,0.0246115365244277,0.024570720275916,0.024527657306877,0.0244924105339496,0.0244726750687633,0.0244726750687633, +0.0391141853640131,0.0391141853640131,0.0391476376368303,0.0391355858829834,0.0390901088755821,0.0390264233652151,0.0389604626072707,0.0389068005255639,0.0388767953147364,0.0388767953147364, +0.0721992814559862,0.0721992814559862,0.0722366068798542,0.0722020547552534,0.0721150654100907,0.0720002317527945,0.0718834864740632,0.0717889902871184,0.0717361454704259,0.0717361454704259, +0.131288363979076,0.131288363979076,0.131320466155759,0.1312402227178,0.131078701383244,0.130875213409678,0.130671286025202,0.130506461952678,0.130413938828003,0.130413938828003, +0.225303921417291,0.225303921417291,0.225309197903645,0.225147925830509,0.224867844974568,0.224528458317073,0.224191818176616,0.223918595160767,0.22376352465343,0.22376352465343, +0.361578664931667,0.361578664931667,0.361523801633633,0.361234113243674,0.360782804109082,0.360254735560963,0.359733984085449,0.359305396675475,0.35905552241484,0.35905552241484, +0.54202605634454,0.54202605634454,0.541878116554098,0.54140071332729,0.54072216131125,0.539956578578282,0.539202027282515,0.538561008671002,0.538162788060425,0.538162788060425, +0.76004472394839,0.76004472394839,0.759814100696194,0.759058624189801,0.758098522444876,0.757066272035011,0.756043825893583,0.755119778564817,0.754454576451764,0.754454576451764, + +00:19:38, +0.0246797297853543,0.0246797297853543,0.0247091320886634,0.0247058290862622,0.024678375021832,0.0246375047698391,0.0245943825865696,0.0245590862919959,0.0245393228256361,0.0245393228256361, +0.0246797297853543,0.0246797297853543,0.0247091320886634,0.0247058290862622,0.024678375021832,0.0246375047698391,0.0245943825865696,0.0245590862919959,0.0245393228256361,0.0245393228256361, +0.0391998593659395,0.0391998593659395,0.0392333413908764,0.0392212820489767,0.0391757671579232,0.0391120247814389,0.0390460026340228,0.0389922894851201,0.03896225547405,0.03896225547405, +0.0723190885745981,0.0723190885745981,0.0723564207803371,0.0723218514475651,0.0722348233946458,0.0721199365223218,0.0720031349231536,0.0719085922342628,0.0718557213370381,0.0718557213370381, +0.131449097622174,0.131449097622174,0.131481175258924,0.131400912193928,0.131239369350485,0.131035855335198,0.13083190065041,0.130667054335871,0.130574519106666,0.130574519106666, +0.225498098838899,0.225498098838899,0.225503324986381,0.225342054586403,0.22506200559737,0.224722662214289,0.224386065412527,0.224112878747823,0.223957830096469,0.223957830096469, +0.361781175071763,0.361781175071763,0.361726264284632,0.361436640061444,0.360985464383079,0.360457559053067,0.359936970530273,0.359508519913048,0.359258727618422,0.359258727618422, +0.542197625883325,0.542197625883325,0.542049688498672,0.541572460328928,0.540894184549406,0.540128920279706,0.539374685329106,0.538733938323649,0.538335888528287,0.538335888528287, +0.760143973128883,0.760143973128883,0.759913437103689,0.759158287301248,0.758198612728002,0.757166825943975,0.756144840409672,0.755221209697564,0.754556306134694,0.754556306134694, + +00:19:39, +0.0247466486164649,0.0247466486164649,0.0247760917088805,0.0247727879343078,0.0247453001960044,0.0247043759970142,0.0246611946584383,0.0246258488898855,0.0246060574487626,0.0246060574487626, +0.0247466486164649,0.0247466486164649,0.0247760917088805,0.0247727879343078,0.0247453001960044,0.0247043759970142,0.0246611946584383,0.0246258488898855,0.0246060574487626,0.0246060574487626, +0.039285603563739,0.039285603563739,0.0393191153003947,0.039307048389811,0.0392614956827515,0.0391976965370932,0.0391316131024323,0.0390778489699992,0.0390477862053903,0.0390477862053903, +0.0724389266272486,0.0724389266272486,0.0724762655774168,0.072441679080973,0.0723546124355866,0.0722396725094066,0.0721228147601573,0.0720282257094653,0.0719753288101584,0.0719753288101584, +0.131609796408874,0.131609796408874,0.131641849506554,0.131561566892317,0.131400002694256,0.131196462846445,0.130992481082365,0.130827612707756,0.13073506547562,0.13073506547562, +0.225692160385623,0.225692160385623,0.225697336263924,0.225536067626141,0.225256050639006,0.224916750710687,0.224580197440298,0.224307047284755,0.224152020576049,0.224152020576049, +0.361983504552414,0.361983504552414,0.361928546393245,0.361638986364286,0.361187944148805,0.360660202059891,0.360139776524873,0.359711462725668,0.359461752403819,0.359461752403819, +0.54236900566573,0.54236900566573,0.542221070756937,0.541744017502337,0.541066017724089,0.540301071665257,0.539547152819628,0.538906677207251,0.538508798082119,0.538508798082119, +0.760243099577958,0.760243099577958,0.760012650689241,0.759257827197564,0.758298579287578,0.757267255591769,0.756245730136853,0.755322515557762,0.754657910188618,0.754657910188618, + +00:19:40, +0.02481365403231,0.02481365403231,0.0248431378823581,0.0248398333440773,0.0248123119710524,0.024771333881666,0.0247280934468436,0.0246926982520986,0.0246728788626928,0.0246728788626928, +0.02481365403231,0.02481365403231,0.0248431378823581,0.0248398333440773,0.0248123119710524,0.024771333881666,0.0247280934468436,0.0246926982520986,0.0246728788626928,0.0246728788626928, +0.0393714178524317,0.0393714178524317,0.0394049592604389,0.0393928848005525,0.0393472943451332,0.0392834385272418,0.0392172939075661,0.039163478875277,0.0391333874038403,0.0391333874038403, +0.0725587954921495,0.0725587954921495,0.0725961411494566,0.0725615375338267,0.0724744324111075,0.0723594395919982,0.07224252586276,0.0721478905901968,0.0720949677671395,0.0720949677671395, +0.131770460269897,0.131770460269897,0.131802488829543,0.131722186743758,0.131560601344979,0.131357035873286,0.131153027250335,0.130988136997104,0.130895577863363,0.130895577863363, +0.225886106133184,0.225886106133184,0.225891231812014,0.225729965025249,0.225449980174501,0.225110723880546,0.224774214333393,0.224501100844358,0.224346096164591,0.224346096164591, +0.362185653630382,0.362185653630382,0.362130648216028,0.361841152408581,0.361390243662288,0.360862664836906,0.360342402324078,0.359914225367641,0.35966459702506,0.35966459702506, +0.542540196041299,0.542540196041299,0.542392263678229,0.541915385197023,0.541237661185016,0.540473033084747,0.539719430103908,0.539079225671677,0.538681517071876,0.538681517071876, +0.760342103549916,0.760342103549916,0.760111741707327,0.759357244134022,0.758398422379835,0.757367561235563,0.756346495333176,0.755423696404292,0.754759388873067,0.754759388873067, + +00:19:41, +0.0248807459568489,0.0248807459568489,0.0249102705329941,0.024906965239476,0.0248794102709511,0.0248383783478855,0.0247950788760118,0.0247596343029802,0.0247397869918412,0.0247397869918412, +0.0248807459568489,0.0248807459568489,0.0249102705329941,0.024906965239476,0.0248794102709511,0.0248383783478855,0.0247950788760118,0.0247596343029802,0.0247397869918412,0.0247397869918412, +0.0394573021270957,0.0394573021270957,0.0394908731661205,0.0394787911763251,0.0394331630401917,0.0393692506470052,0.0393030449445476,0.0392491790960846,0.0392190589645381,0.0392190589645381, +0.0726786950478319,0.0726786950478319,0.0727160473751387,0.0726814266847949,0.0725942831997221,0.0724792376483649,0.072362268108966,0.0722675867542472,0.0722146380856531,0.0722146380856531, +0.131931089136387,0.131931089136387,0.131963093159204,0.131882771679461,0.131721165233498,0.131517574346014,0.131313539084013,0.131148627133115,0.131056056198819,0.131056056198819, +0.226079936157465,0.226079936157465,0.22608501170655,0.225923746859415,0.225643794279039,0.225304581798313,0.22496811616545,0.2246950394996,0.224540056934694,0.224540056934694, +0.362387622562021,0.362387622562021,0.362332570009133,0.3620431384503,0.361592363179155,0.361064947639177,0.360544848182319,0.360116808092873,0.359867261735776,0.359867261735776, +0.542711197358715,0.542711197358715,0.542563267611019,0.542086563761628,0.54140911528104,0.540644804887124,0.539891517530913,0.539251584065937,0.538854045846648,0.538854045846648, +0.760440985298331,0.760440985298331,0.7602107104117,0.759456538365166,0.758498142260276,0.757467743131793,0.756447136255956,0.755524752495298,0.754860742446835,0.754860742446835, + +00:19:42, +0.024947924313909,0.024947924313909,0.0249774895845543,0.0249741835442772,0.0249465950195432,0.0249055093196311,0.0248621508700356,0.0248266569667414,0.0248067817604877,0.0248067817604877, +0.024947924313909,0.024947924313909,0.0249774895845543,0.0249741835442772,0.0249465950195432,0.0249055093196311,0.0248621508700356,0.0248266569667414,0.0248067817604877,0.0248067817604877, +0.039543256282867,0.039543256282867,0.0395768569126091,0.0395647674123107,0.0395191016631078,0.0394551327915613,0.0393888661085565,0.0393349495276094,0.0393048007826778,0.0393048007826778, +0.0727986251731463,0.0727986251731463,0.0728359841334638,0.0728013464128645,0.0727141646802618,0.0725990665570932,0.0724820413770982,0.0723873140797246,0.0723343396436891,0.0723343396436891, +0.132091682939915,0.132091682939915,0.132123662427275,0.132043321631061,0.131881694291081,0.131678078195345,0.131474016513519,0.131309083045415,0.13121650041134,0.13121650041134, +0.226273650534514,0.226273650534514,0.226278676023595,0.22611741320449,0.225837493027971,0.225498324538597,0.225161903010272,0.224888863323617,0.224733902959125,0.224733902959125, +0.362589411603275,0.362589411603275,0.362534312028302,0.362244944745008,0.361794302954624,0.36126705072137,0.360747114353624,0.360319211154874,0.360069746789203,0.360069746789203, +0.542882009965797,0.542882009965797,0.54273408290292,0.542257553543934,0.541580380360153,0.540816387420477,0.540063415448752,0.539423752738184,0.539026384754672,0.539026384754672, +0.760539745076052,0.760539745076052,0.760309557055386,0.759555710144812,0.758597739183673,0.757567801536163,0.756547653161777,0.755625684088187,0.754961971167979,0.754961971167979, + +00:19:43, +0.0250151890271863,0.0250151890271863,0.025044794960674,0.0250414881821235,0.0250138661405404,0.0249727267207294,0.0249293093528751,0.0248937661674597,0.0248738630927787,0.0248738630927787, +0.0250151890271863,0.0250151890271863,0.025044794960674,0.0250414881821235,0.0250138661405404,0.0249727267207294,0.0249293093528751,0.0248937661674597,0.0248738630927787,0.0248738630927787, +0.03962928021494,0.03962928021494,0.0396629103951327,0.0396508134037497,0.0396051101091208,0.0395410848561452,0.0394747572948295,0.0394207900650949,0.0393906127535092,0.0393906127535092, +0.0729185857472607,0.0729185857472607,0.0729559513037504,0.0729212965973399,0.0728340767318758,0.0727189261970873,0.0726018455457966,0.0725070724450545,0.0724540723195547,0.0724540723195547, +0.132252241612467,0.132252241612467,0.132284196565913,0.132203836530612,0.132042188449416,0.131838547352417,0.131634459469392,0.131469504664053,0.131376910430701,0.131376910430701, +0.226467249340536,0.226467249340536,0.226472224839368,0.226310964136484,0.226031076496807,0.225691952176174,0.225355574941829,0.225082572389714,0.224927634310823,0.224927634310823, +0.362791021009682,0.362791021009682,0.362735874528869,0.362446571547863,0.361996063243508,0.361468974337746,0.360949201091625,0.360521434806759,0.360272052438181,0.360272052438181, +0.543052634209507,0.543052634209507,0.542904709900684,0.542428354890864,0.54175145676949,0.540987781032038,0.540235124204678,0.539595732035717,0.53919853414333,0.53919853414333, +0.760638383135209,0.760638383135209,0.760408281890691,0.759654759726053,0.758697213404073,0.757667736703649,0.756648046306491,0.755726491439637,0.755063075293823,0.755063075293823, + +00:19:44, +0.0250825400202464,0.0250825400202464,0.0251121865848586,0.0251088790765278,0.0250812235575239,0.0250400304748757,0.0249965542483587,0.0249609618290804,0.0249410309127277,0.0249410309127277, +0.0250825400202464,0.0250825400202464,0.0251121865848586,0.0251088790765278,0.0250812235575239,0.0250400304748757,0.0249965542483587,0.0249609618290804,0.0249410309127277,0.0249410309127277, +0.0397153738185677,0.0397153738185677,0.0397490335089781,0.0397369290459409,0.0396911882735281,0.03962710673605,0.0395607183986604,0.0395067006038413,0.0394764947723386,0.0394764947723386, +0.0730385766496611,0.0730385766496611,0.0730759487656338,0.0730412771178424,0.0729540192340301,0.0728388164475678,0.0727216804940184,0.0726268617289792,0.0725738359918738,0.0725738359918738, +0.132412765086454,0.132412765086454,0.132444695507694,0.132364316310585,0.132202647640611,0.13199898174879,0.131794867882598,0.131629891919502,0.131537286187103,0.131537286187103, +0.226660732651896,0.226660732651896,0.226665658230249,0.226504399731565,0.226224544761218,0.225885464785981,0.225549132034259,0.225276166771367,0.225121251062894,0.225121251062894, +0.362992451036373,0.362992451036373,0.362937257765763,0.362648019113617,0.362197644300217,0.361670718742164,0.361151108649554,0.360723479301243,0.360474178935157,0.360474178935157, +0.543223070435951,0.543223070435951,0.543075148950208,0.542598968148486,0.541922344855328,0.541158986068184,0.540406644145089,0.53976752230498,0.53937049435915,0.53937049435915, +0.760736899727211,0.760736899727211,0.7605068851692,0.759753687361261,0.758796565174797,0.757767548888502,0.756748315945223,0.755827174805594,0.75516405508096,0.75516405508096, + +00:19:45, +0.0251499772165258,0.0251499772165258,0.0251796643804844,0.0251763561508736,0.0251486671939457,0.0251074205056356,0.0250638854801838,0.0250282438754172,0.0250082851442163,0.0250082851442163, +0.0251499772165258,0.0251499772165258,0.0251796643804844,0.0251763561508736,0.0251486671939457,0.0251074205056356,0.0250638854801838,0.0250282438754172,0.0250082851442163,0.0250082851442163, +0.0398015369890621,0.0398015369890621,0.0398352261494912,0.0398231142342423,0.0397773360516855,0.0397131983266268,0.0396467493154006,0.0395926810392058,0.0395624467345291,0.0395624467345291, +0.0731585977601497,0.0731585977601497,0.0731959763990656,0.0731612878543091,0.0730739920665063,0.0729587371880719,0.0728415461010366,0.0727466818105572,0.0726936305395866,0.0726936305395866, +0.132573253294701,0.132573253294701,0.13260515918561,0.132524760903871,0.132363071797191,0.13215938131644,0.13195524168452,0.131790244742656,0.131697627611165,0.131697627611165, +0.226854100545116,0.226854100545116,0.226858976272773,0.226697720066059,0.226417897897033,0.226078862443117,0.225742574361859,0.225469646542213,0.225314753288612,0.225314753288612, +0.363193701938074,0.363193701938074,0.363138461993506,0.362849287696617,0.362399046378757,0.361872284188084,0.361352837280245,0.360925344890649,0.360676126532181,0.360676126532181, +0.543393318990381,0.543393318990381,0.543245400396539,0.542769393662013,0.542093044963093,0.541330002874439,0.540577975615536,0.539939123891571,0.539542265747812,0.539542265747812, +0.760835295102754,0.760835295102754,0.760605367141785,0.759852493302089,0.758895794748447,0.757867238344249,0.756848462332373,0.755927734441279,0.755264910785255,0.755264910785255, + +00:19:46, +0.025217500539332,0.025217500539332,0.0252472282707994,0.0252439193284164,0.025216196973129,0.0251748967364452,0.0251313029719179,0.0250956122301531,0.0250756257109951,0.0250756257109951, +0.025217500539332,0.025217500539332,0.0252472282707994,0.0252439193284164,0.025216196973129,0.0251748967364452,0.0251313029719179,0.0250956122301531,0.0250756257109951,0.0250756257109951, +0.0398877696217943,0.0398877696217943,0.0399214882120773,0.0399093688640711,0.0398635533390081,0.0397993595232853,0.0397328499404593,0.0396787312666029,0.0396484685355004,0.0396484685355004, +0.0732786489588449,0.0732786489588449,0.0733160340843129,0.0732813286869927,0.0731939951094018,0.0730786882984518,0.0729614422464397,0.0728665325691621,0.0728134558419483,0.0728134558419483, +0.132733706170451,0.132733706170451,0.132765587533069,0.132685170243773,0.132523460852097,0.132319745987761,0.13211558080696,0.131950563064827,0.13185793463393,0.13185793463393, +0.227047353096874,0.227047353096874,0.227052179043632,0.226890925216446,0.226611135980239,0.226272145222839,0.225935901999094,0.225663011776056,0.225508141061417,0.225508141061417, +0.363394773969102,0.363394773969102,0.363339487466216,0.363050377550804,0.36260026973273,0.362073670928564,0.361554387236134,0.361127031826904,0.360877895480911,0.360877895480911, +0.5435633802172,0.5435633802172,0.543415464583871,0.54293963177581,0.54226355743736,0.541500831795481,0.540749118960719,0.540110537140239,0.539713848654153,0.539713848654153, +0.760933569511819,0.760933569511819,0.760703728058601,0.759951177799475,0.758994902376907,0.757966805323698,0.75694848572162,0.75602817060119,0.755365642661848,0.755365642661848, + +00:19:47, +0.025285109911845,0.025285109911845,0.0253148781789245,0.0253115685322845,0.0252838128182695,0.0252424590906123,0.0251988066469993,0.0251630668168413,0.0251430525366843,0.0251430525366843, +0.025285109911845,0.025285109911845,0.0253148781789245,0.0253115685322845,0.0252838128182695,0.0252424590906123,0.0251988066469993,0.0251630668168413,0.0251430525366843,0.0251430525366843, +0.0399740716121954,0.0399740716121954,0.0400078195922013,0.039995692830904,0.0399498400309702,0.0398855902214937,0.0398190201693037,0.0397648511815047,0.0397345600707299,0.0397345600707299, +0.0733987301261803,0.0733987301261803,0.0734361217019576,0.0734013994964603,0.0733140282431283,0.0731986696588743,0.0730813688101309,0.0729864138844823,0.0729333117785289,0.0729333117785289, +0.132894123647361,0.132894123647361,0.132925980483893,0.132845544264009,0.132683814738684,0.132480075695565,0.132275885182136,0.132110846817747,0.132018207186856,0.132018207186856, +0.227240490384003,0.227240490384003,0.227245266619671,0.227084015259364,0.226804259086979,0.226465313200563,0.226129115020585,0.225856262546864,0.225701414454913,0.225701414454913, +0.363595667383373,0.363595667383373,0.363540334437603,0.363251288929715,0.362801314615334,0.362274879216262,0.361755758769262,0.36132854036154,0.361079486032613,0.361079486032613, +0.543733254459961,0.543733254459961,0.543585341855552,0.543109682833393,0.542433882621858,0.541671473175137,0.540920074524494,0.54028176239489,0.539885243422161,0.539885243422161, +0.761031723203677,0.761031723203677,0.760801968169094,0.760049741103641,0.759093888311343,0.758066250078938,0.757048386365923,0.756128483539103,0.755466250965155,0.755466250965155, + +00:19:48, +0.0253528052571178,0.0253528052571178,0.0253826140278541,0.0253793036854795,0.0253515146524358,0.0253101074913172,0.0252663964287381,0.0252306075589062,0.0252105655447752,0.0252105655447752, +0.0253528052571178,0.0253528052571178,0.0253826140278541,0.0253793036854795,0.0253515146524358,0.0253101074913172,0.0252663964287381,0.0252306075589062,0.0252105655447752,0.0252105655447752, +0.0400604428557559,0.0400604428557559,0.0400942201853883,0.0400820860302778,0.0400361960231056,0.0399718903167794,0.0399052598974598,0.0398510406794413,0.0398207212357524,0.0398207212357524, +0.0735188411429039,0.0735188411429039,0.0735562391328957,0.0735215001635929,0.0734340913484115,0.0733186811498204,0.0732013256723272,0.07310632563652,0.0730531982292121,0.0730531982292121, +0.133054505659499,0.133054505659499,0.133086337972315,0.13300588289871,0.132844133390721,0.132640370373074,0.132436154742681,0.132271095933562,0.132178445201819,0.132178445201819, +0.227433512483488,0.227433512483488,0.227438239077887,0.227276990271599,0.226997267293548,0.226658366451864,0.226322213501116,0.226049398928766,0.225894573542867,0.225894573542867, +0.363796382434395,0.363796382434395,0.363741003160976,0.363452022086484,0.363002181279368,0.362475909303436,0.36195695213127,0.361529870745694,0.361280898438157,0.361280898438157, +0.543902942061374,0.543902942061374,0.543755032554086,0.543279547177435,0.54260402085947,0.541841927356395,0.541090842649875,0.540452799998587,0.540056450394986,0.540056450394986, +0.761129756426891,0.761129756426891,0.760900087722,0.760148183464102,0.75919275280221,0.758165572861343,0.757148164517522,0.756228673508074,0.755566735948873,0.755566735948873, + +00:19:49, +0.0254205864980775,0.0254205864980775,0.0254504357404568,0.0254471247108776,0.0254193023985708,0.0253778418616134,0.0253340722403168,0.0252982343796439,0.0252781646586302,0.0252781646586302, +0.0254205864980775,0.0254205864980775,0.0254504357404568,0.0254471247108776,0.0254193023985708,0.0253778418616134,0.0253340722403168,0.0252982343796439,0.0252781646586302,0.0252781646586302, +0.0401468832480269,0.0401468832480269,0.0401806898872235,0.0401685483577893,0.040122621211008,0.0400582597047292,0.039991569020512,0.0399372996560009,0.0399069519261607,0.0399069519261607, +0.0736389818900776,0.0736389818900776,0.0736763862583364,0.0736416305695847,0.0735541843062902,0.0734387226520841,0.0733213127135588,0.0732262677055907,0.073173115074195,0.073173115074195, +0.133214852141347,0.133214852141347,0.133246659932977,0.133166186082415,0.133004416742385,0.132800629953924,0.132596389421644,0.132431310344832,0.13233864861111,0.13233864861111, +0.227626419472468,0.227626419472468,0.227631096495429,0.227469850330092,0.227190160676399,0.22685130505247,0.226515197515627,0.226242420996051,0.226087618399209,0.226087618399209, +0.363996919375274,0.363996919375274,0.363941493889237,0.36365257727384,0.363202869977226,0.362676761441946,0.362157967573405,0.36173102323011,0.361482132948023,0.361482132948023, +0.544072443363305,0.544072443363305,0.543924537021133,0.543449225149764,0.542773972492236,0.542012194681398,0.541261423679037,0.540623650293556,0.540227469914939,0.540227469914939, +0.761227669429319,0.761227669429319,0.760998086965351,0.760246505129662,0.759291496099251,0.758264773921576,0.757247820427946,0.756328740760445,0.755667097865981,0.755667097865981, + +00:19:50, +0.025488453557526,0.025488453557526,0.0255183432394767,0.02551503153123,0.025487175979492,0.0254456621244288,0.0254018340047916,0.0253659472022234,0.0253458498014844,0.0253458498014844, +0.025488453557526,0.025488453557526,0.0255183432394767,0.02551503153123,0.025487175979492,0.0254456621244288,0.0254018340047916,0.0253659472022234,0.0253458498014844,0.0253458498014844, +0.0402333926846199,0.0402333926846199,0.0402672285933528,0.040255079709096,0.0402091154903312,0.0401446982809895,0.040077947434104,0.0400236280068304,0.0399932520376059,0.0399932520376059, +0.0737591522490764,0.0737591522490764,0.0737965629598017,0.0737617905959424,0.0736743069981155,0.0735587940467718,0.0734413298146686,0.0733462399723222,0.0732930621939869,0.0732930621939869, +0.133375163027795,0.133375163027795,0.133406946300934,0.133326453750072,0.133164664728264,0.132960854372162,0.132756589152482,0.132591489984532,0.132498817347433,0.132498817347433, +0.227819211428231,0.227819211428231,0.227823838949595,0.227662595511933,0.227382939312132,0.227044129078264,0.226708067139216,0.226435328823167,0.226280549098026,0.226280549098026, +0.364197278458711,0.364197278458711,0.364141806874886,0.363852954744111,0.363403380960903,0.362877435883252,0.36235880534652,0.361931998065141,0.361683189812299,0.361683189812299, +0.544241758706781,0.544241758706781,0.544093855597517,0.543618717091371,0.542943737861359,0.542182275491452,0.541431817953315,0.540794313621187,0.540398302323495,0.540398302323495, +0.761325462458116,0.761325462458116,0.761095966146474,0.76034470634842,0.759390118451503,0.758363853509587,0.757347354348011,0.756428685547844,0.755767336968745,0.755767336968745, + +00:19:51, +0.0255564063581407,0.0255564063581407,0.0255863364475339,0.0255830240691643,0.0255551353178928,0.0255135682025662,0.0254696816450928,0.0254337459496874,0.0254136208964461,0.0254136208964461, +0.0255564063581407,0.0255564063581407,0.0255863364475339,0.0255830240691643,0.0255551353178928,0.0255135682025662,0.0254696816450928,0.0254337459496874,0.0254136208964461,0.0254136208964461, +0.040319971061207,0.040319971061207,0.0403538361994832,0.0403416799799162,0.0402956787567897,0.0402312059412668,0.0401643950339388,0.0401100256276356,0.0400796214657975,0.0400796214657975, +0.0738793521015873,0.0738793521015873,0.0739167691191254,0.0738819801244843,0.0737944593055505,0.0736788952153017,0.0735613768568111,0.0734662423176544,0.0734130394694089,0.0734130394694089, +0.133535438254141,0.133535438254141,0.133567197011642,0.133486685837037,0.133324877283355,0.133121043562242,0.132916753869065,0.132751634786048,0.132658951343902,0.132658951343902, +0.228011888428214,0.228011888428214,0.228016466517834,0.227855225894362,0.2275756032775,0.227236838605282,0.226900822447138,0.226628122484721,0.226473365713568,0.226473365713568, +0.364397459937006,0.364397459937006,0.364341942370022,0.364053154749221,0.363603714481991,0.363077932878417,0.362559465701069,0.362132795500744,0.36188406928068,0.36188406928068, +0.544410888431991,0.544410888431991,0.544262988623222,0.543788023342408,0.543113317307203,0.542352170127028,0.541602025813211,0.540964790322034,0.540568947961297,0.540568947961297, +0.761423135759738,0.761423135759738,0.761193725511996,0.760442787367775,0.759488620107295,0.758462811874621,0.757446766527825,0.756528508121189,0.755867453508716,0.755867453508716, + +00:19:52, +0.0256244448224758,0.0256244448224758,0.0256544152871255,0.0256511022471847,0.0256231803363429,0.0255815600187043,0.0255376150840259,0.025501630544953,0.0254814778664977,0.0254814778664977, +0.0256244448224758,0.0256244448224758,0.0256544152871255,0.0256511022471847,0.0256231803363429,0.0255815600187043,0.0255376150840259,0.025501630544953,0.0254814778664977,0.0254814778664977, +0.0404066182735218,0.0404066182735218,0.0404405126013827,0.0404283490660291,0.0403823109061585,0.0403177825813277,0.0402509117157792,0.0401964924141813,0.0401660601065041,0.0401660601065041, +0.0739995813296092,0.0739995813296092,0.0740370046184523,0.0740021990373397,0.0739146411105689,0.0737990260394033,0.0736814537214519,0.0735862746228379,0.0735330467815933,0.0735330467815933, +0.133695677756089,0.133695677756089,0.133727412000967,0.133646882279071,0.133485054343059,0.133281197459026,0.133076883505669,0.132911744683172,0.132819050534044,0.132819050534044, +0.228204450550004,0.228204450550004,0.228208979277738,0.228047741554765,0.227768152649403,0.227429433709711,0.227093463514798,0.226820802055474,0.226666068320239,0.226666068320239, +0.364597464062054,0.364597464062054,0.364541900626339,0.364253177540692,0.363803870791685,0.363278252678107,0.362759948887116,0.362333415786487,0.362084771602473,0.362084771602473, +0.54457983287829,0.54457983287829,0.544431936437399,0.543957144242194,0.543282711169299,0.542521878927763,0.541772047598397,0.541135080735823,0.540739407168154,0.540739407168154, +0.761520689579942,0.761520689579942,0.761291365307847,0.760540748434421,0.759587001314257,0.75856164926522,0.757546057216788,0.756628208730688,0.755967447736738,0.755967447736738, + +00:19:53, +0.0256925688729628,0.0256925688729628,0.0257225796806264,0.0257192659876736,0.0256913109572896,0.0256496374953987,0.0256056342442722,0.0255696009108125,0.0255494206344964,0.0255494206344964, +0.0256925688729628,0.0256925688729628,0.0257225796806264,0.0257192659876736,0.0256913109572896,0.0256496374953987,0.0256056342442722,0.0255696009108125,0.0255494206344964,0.0255494206344964, +0.040493334217359,0.040493334217359,0.0405272576948808,0.0405150868632755,0.0404690118342741,0.0404044280969995,0.040337497375448,0.0402830282622918,0.0402525678555533,0.0402525678555533, +0.0741198398154519,0.0741198398154519,0.0741572693402381,0.0741224472169482,0.074034852295455,0.073919186401116,0.0738015602903671,0.0737063367694337,0.0736530840119826,0.0736530840119826, +0.133855881469748,0.133855881469748,0.133887591205177,0.133807043012338,0.133645195843182,0.133441315997783,0.133236977996979,0.133071819610107,0.132979114851793,0.132979114851793, +0.228396897871331,0.228396897871331,0.22840137730705,0.228240142570675,0.227960587504892,0.22762191446789,0.227285990417758,0.227013367610345,0.226858656992601,0.226858656992601, +0.36479729108535,0.36479729108535,0.36474168189513,0.364453023369648,0.364003850140777,0.363478395532589,0.362960255154326,0.362533859171544,0.362285297026593,0.362285297026593, +0.544748592384201,0.544748592384201,0.54460069937837,0.544126080129216,0.543451919786345,0.542691402232462,0.541941883647712,0.541305185201449,0.540909680283051,0.540909680283051, +0.761618124163791,0.761618124163791,0.761388885779259,0.760638589794359,0.759685262319317,0.758660365929221,0.757645226663597,0.756727787625847,0.756067319902946,0.756067319902946, + +00:19:54, +0.0257607784319114,0.0257607784319114,0.0257908295502899,0.0257875152128917,0.0257595271030585,0.0257178005550824,0.0256737390483903,0.0256376569699348,0.0256174491231756,0.0256174491231756, +0.0257607784319114,0.0257607784319114,0.0257908295502899,0.0257875152128917,0.0257595271030585,0.0257178005550824,0.0256737390483903,0.0256376569699348,0.0256174491231756,0.0256174491231756, +0.0405801187885752,0.0405801187885752,0.040614071375869,0.040601893267558,0.040555781437034,0.0404911423841704,0.0404241519088282,0.0403696330678515,0.0403391446088323,0.0403391446088323, +0.0742401274417351,0.0742401274417351,0.0742775631672477,0.0742427245460589,0.0741550927428024,0.0740393761827892,0.0739216964456421,0.0738264286393127,0.0737731510423287,0.0737731510423287, +0.134016049331629,0.134016049331629,0.134047734560942,0.133967167973405,0.133805301719932,0.133601399114184,0.133397037278083,0.133231859501463,0.13313914423149,0.13313914423149, +0.228589230470072,0.228589230470072,0.228593660683652,0.22843242901977,0.228152907921162,0.227814280956304,0.227478403231729,0.227205819224404,0.22705113180537,0.22705113180537, +0.364996941257988,0.364996941257988,0.364941286427288,0.364652692486809,0.364203652779664,0.363678361691737,0.363160384751976,0.362734125904699,0.362485645801565,0.362485645801565, +0.544917167287417,0.544917167287417,0.544769277783624,0.544294831341131,0.543620943496212,0.542860740379103,0.54211153429917,0.541475104056982,0.541079767644145,0.541079767644145, +0.761715439755654,0.761715439755654,0.761486287170774,0.760736311692891,0.759783403368703,0.758758962113762,0.757744275116248,0.756827245055466,0.756167070256772,0.756167070256772, + +00:19:55, +0.0258290734215103,0.0258290734215103,0.0258591648182491,0.0258558498449792,0.0258278286958542,0.025786049120067,0.0257419294188159,0.0257057986448654,0.025685563255145,0.025685563255145, +0.0258290734215103,0.0258290734215103,0.0258591648182491,0.0258558498449792,0.0258278286958542,0.025786049120067,0.0257419294188159,0.0257057986448654,0.025685563255145,0.025685563255145, +0.0406669718830888,0.0406669718830888,0.0407009535403007,0.040688768174841,0.0406426196103976,0.0405779253387898,0.0405108752118634,0.0404563067268046,0.0404257902622881,0.0404257902622881, +0.0743604440913883,0.0743604440913883,0.0743978859825553,0.0743630309077299,0.0742753623355137,0.0741595952670807,0.0740418620696717,0.0739465501146545,0.0738932477546928,0.0738932477546928, +0.134176181278646,0.134176181278646,0.134207842005334,0.134127257099238,0.13396537190992,0.133761446744303,0.133557061284476,0.133391864292252,0.13329913860788,0.13329913860788, +0.228781448424249,0.228781448424249,0.228785829485574,0.228624600979871,0.228345113975553,0.228006533251588,0.227670702032573,0.227398156972873,0.227243492833415,0.227243492833415, +0.36519641483066,0.36519641483066,0.365140714473304,0.364852185142497,0.36440327895834,0.363878151405026,0.363360337928945,0.362934216234346,0.362685818175526,0.362685818175526, +0.545085557924806,0.545085557924806,0.544937671989826,0.544463398214771,0.543789782635942,0.543029893704839,0.54228099988996,0.54164483763967,0.541249669588771,0.541249669588771, +0.761812636599214,0.761812636599214,0.761583569726241,0.760833914374628,0.759881424707953,0.758857438065285,0.757843202822039,0.756926581267646,0.756266699046945,0.756266699046945, + +00:19:56, +0.0258974537638283,0.0258974537638283,0.0259275854065174,0.0259242698059568,0.0258962156577611,0.0258543831125431,0.0258102052778638,0.025774025858028,0.0257537629528919,0.0257537629528919, +0.0258974537638283,0.0258974537638283,0.0259275854065174,0.0259242698059568,0.0258962156577611,0.0258543831125431,0.0258102052778638,0.025774025858028,0.0257537629528919,0.0257537629528919, +0.0407538933968808,0.0407538933968808,0.040787904084192,0.0407757114811512,0.0407295262503862,0.0406647768568686,0.0405976671805582,0.0405430491351557,0.0405125047119277,0.0405125047119277, +0.0744807896476495,0.0744807896476495,0.0745182376695434,0.0744833661853271,0.0743956609567995,0.074279843536957,0.0741620570451584,0.0740667010779468,0.0740133740314441,0.0740133740314441, +0.13433627724811,0.13433627724811,0.13436791347582,0.134287310327204,0.134125406350156,0.133921458824615,0.133717049952052,0.133551833917889,0.133459097916114,0.133459097916114, +0.228973551812025,0.228973551812025,0.228977883790984,0.228816658528942,0.22853720574555,0.228198671430521,0.227862886896301,0.227590380931128,0.227435740151758,0.227435740151758, +0.365395712053657,0.365395712053657,0.365339966283271,0.365051501586634,0.364602728926405,0.364077764921536,0.363560114933724,0.363134130408488,0.362885814396223,0.362885814396223, +0.54525376463241,0.54525376463241,0.545105882332819,0.544631781086142,0.543958437541756,0.543198862545999,0.542450280756452,0.541814386285938,0.541419386453444,0.541419386453444, +0.761909714937461,0.761909714937461,0.761680733688822,0.760931398083492,0.75997932658191,0.758955794029538,0.757942010027571,0.757025796509789,0.756366206521497,0.756366206521497, + +00:19:57, +0.0259659193808147,0.0259659193808147,0.0259960912369891,0.0259927750177262,0.0259646879107446,0.0259228024545818,0.0258785665477276,0.0258423385317248,0.0258220481387822,0.0258220481387822, +0.0259659193808147,0.0259659193808147,0.0259960912369891,0.0259927750177262,0.0259646879107446,0.0259228024545818,0.0258785665477276,0.0258423385317248,0.0258220481387822,0.0258220481387822, +0.0408408832259945,0.0408408832259945,0.0408749229036213,0.0408627230825781,0.0408165012530834,0.0407516968344792,0.0406845277109783,0.0406298601889701,0.0405992878538186,0.0405992878538186, +0.0746011639940646,0.0746011639940646,0.074638618111902,0.0746037302625241,0.0745159884901778,0.0744001208756918,0.0742822812551126,0.0741868814119851,0.0741335297552591,0.0741335297552591, +0.134496337177734,0.134496337177734,0.13452794891027,0.134447327595066,0.134285404978046,0.134081435291994,0.133877003217107,0.133711768314194,0.133619022091742,0.133619022091742, +0.229165540711704,0.229165540711704,0.229169823678195,0.229008601745088,0.228729183308779,0.228390695570028,0.22805495789907,0.227782491174691,0.227627873835573,0.227627873835573, +0.365594833176874,0.365594833176874,0.365539042106879,0.365250642068741,0.364802002933059,0.364277202489954,0.363759716014409,0.363333868674739,0.363085634711015,0.363085634711015, +0.545421787745449,0.545421787745449,0.545273909147621,0.54479998029043,0.544126908549051,0.543367647238093,0.542619377234193,0.541983750331396,0.541588918573859,0.541588918573859, +0.762006675012705,0.762006675012705,0.761777779300996,0.761028763062716,0.760077109234725,0.759054030251576,0.758040696978751,0.757124891028604,0.75646559292776,0.75646559292776, + +00:19:58, +0.0260344701943006,0.0260344701943006,0.0260646822314408,0.0260613654020711,0.0260332453766514,0.0259913070681348,0.0259470131504816,0.0259107365881376,0.0258904187350606,0.0258904187350606, +0.0260344701943006,0.0260344701943006,0.0260646822314408,0.0260613654020711,0.0260332453766514,0.0259913070681348,0.0259470131504816,0.0259107365881376,0.0258904187350606,0.0258904187350606, +0.0409279412665363,0.0409279412665363,0.0409620098947303,0.0409498028752738,0.0409035445146352,0.0408386851677564,0.040771456699251,0.0407167397843743,0.0406861395840889,0.0406861395840889, +0.0747215670144869,0.0747215670144869,0.0747590271936278,0.074724123023301,0.0746363448194733,0.0745204271668654,0.0744025345828513,0.0743070909998714,0.0742537148091213,0.0742537148091213, +0.134656361005625,0.134656361005625,0.134687948246944,0.134607308840982,0.134445367731394,0.134241376083712,0.134036921016334,0.133871667417383,0.133778911070717,0.133778911070717, +0.229357415201731,0.229357415201731,0.229361649225654,0.229200430706552,0.228921046743008,0.228582605747178,0.228246915117185,0.227974487779235,0.227819893960179,0.227819893960179, +0.365793778449804,0.365793778449804,0.365737942193424,0.365449606837945,0.365001101227106,0.364476464358572,0.363959141418706,0.363533431280324,0.363285279366873,0.363285279366873, +0.545589627598327,0.545589627598327,0.545441752768436,0.544967996162003,0.544295195992408,0.543536248115812,0.542788289657915,0.542152930110835,0.541758266284899,0.541758266284899, +0.762103517066572,0.762103517066572,0.761874706804554,0.761126009554848,0.760174772909867,0.759152146975766,0.758139263920796,0.757223865070106,0.756564858512375,0.756564858512375, + +00:19:59, +0.0261031061259995,0.0261031061259995,0.0261333583115317,0.0261300408806581,0.026101887977211,0.0260598968750358,0.0260155450080808,0.0259792199493287,0.0259588746638521,0.0259588746638521, +0.0261031061259995,0.0261031061259995,0.0261333583115317,0.0261300408806581,0.026101887977211,0.0260598968750358,0.0260155450080808,0.0259792199493287,0.0259588746638521,0.0259588746638521, +0.0410150674146755,0.0410150674146755,0.0410491649537238,0.0410369507554538,0.0409906559312507,0.0409257417528972,0.0408584540415653,0.0408036878175559,0.0407730597989277,0.0407730597989277, +0.0748419985930765,0.0748419985930765,0.074879464799024,0.0748445443519437,0.0747567298288165,0.0746407622943644,0.0745228169119976,0.074427329725014,0.0743739290763203,0.0743739290763203, +0.134816348670285,0.134816348670285,0.134847911424501,0.134767254003506,0.134605294548401,0.134401281137436,0.134196803286825,0.134031531164071,0.133938764789389,0.133938764789389, +0.22954917536069,0.22954917536069,0.229553360511951,0.229392145491718,0.229112796126146,0.228774402039182,0.228438758627096,0.228166370820578,0.228011800601049,0.228011800601049, +0.365992548121541,0.365992548121541,0.365936666791799,0.365648396142971,0.365200024056955,0.364675550775287,0.364158391393929,0.36373281847208,0.363484748610383,0.363484748610383, +0.545757284524628,0.545757284524628,0.545609413528647,0.545135829034411,0.54446330020559,0.543704665513031,0.542957018361538,0.542321925958234,0.541927429920632,0.541927429920632, +0.762200241340007,0.762200241340007,0.761971516440612,0.761223137801754,0.760272317850115,0.759250144445786,0.758237711098235,0.757322718879619,0.756664003521289,0.756664003521289, + +00:20:00, +0.026171827097508,0.026171827097508,0.0262021193988046,0.0261988013750372,0.0261706156340359,0.0261285717970009,0.0260841620423622,0.0260477885372416,0.0260274158471625,0.0260274158471625, +0.026171827097508,0.026171827097508,0.0262021193988046,0.0261988013750372,0.0261706156340359,0.0261285717970009,0.0260841620423622,0.0260477885372416,0.0260274158471625,0.0260274158471625, +0.0411022615666452,0.0411022615666452,0.0411363879768701,0.0411241666193968,0.0410778353992019,0.0410128664861613,0.0409455196341722,0.040890704184764,0.0408600483945856,0.0408600483945856, +0.0749624586142988,0.0749624586142988,0.0749999308126988,0.0749649941330438,0.0748771434026435,0.0747611261423804,0.07464312812648,0.0745475974711265,0.0744941724404509,0.0744941724404509, +0.13497630011061,0.13497630011061,0.135007838381989,0.134927163021583,0.134765185367656,0.134561150391228,0.134356649966068,0.134191359491272,0.134098583184506,0.134098583184506, +0.229740821267299,0.229740821267299,0.22974495761581,0.229583746179106,0.229304431536239,0.22896608452339,0.228630488505393,0.228358140374686,0.228203593833797,0.228203593833797, +0.366191142440783,0.366191142440783,0.366135216150502,0.365847010232148,0.365398771670617,0.364874461987604,0.364357466187004,0.363932030496454,0.363684042687742,0.363684042687742, +0.545924758857123,0.545924758857123,0.545776891760829,0.545303479240392,0.544631221521546,0.543872899762815,0.543125563678168,0.542490738206764,0.542096409814316,0.542096409814316, +0.762296848073279,0.762296848073279,0.762068208449604,0.76132014804462,0.760369744297568,0.759348022904631,0.75833603875491,0.757421452701781,0.756763028199761,0.756763028199761, + +00:20:01, +0.0262406330303068,0.0262406330303068,0.0262709654146871,0.0262676468066433,0.0262394282686228,0.0261973317556299,0.0261528641750456,0.0261164422737017,0.0260960422068792,0.0260960422068792, +0.0262406330303068,0.0262406330303068,0.0262709654146871,0.0262676468066433,0.0262394282686228,0.0261973317556299,0.0261528641750456,0.0261164422737017,0.0260960422068792,0.0260960422068792, +0.0411895236187419,0.0411895236187419,0.0412236788605014,0.0412114503634454,0.0411650828148244,0.0411000592638712,0.0410326533733854,0.0409777887823097,0.0409471052673743,0.0409471052673743, +0.0750829469629249,0.0750829469629249,0.0751204251195653,0.0750854722514969,0.0749975854256945,0.07488151859541,0.0747634681105316,0.074667894122227,0.0746144447854126,0.0746144447854126, +0.135136215265887,0.135136215265887,0.135167729058849,0.135087035834549,0.134925040128144,0.134720983783543,0.134516460991942,0.134351152336393,0.134258366193212,0.134258366193212, +0.229932353000417,0.229932353000417,0.229936440616091,0.22977523284737,0.229495953051471,0.229157653277295,0.228822104828813,0.228549796517665,0.228395273734187,0.228395273734187, +0.366389561655829,0.366389561655829,0.366333590517633,0.36604544935341,0.36559734431571,0.365073198242636,0.364556366044464,0.364131067599508,0.363883161844761,0.363883161844761, +0.546092050927774,0.546092050927774,0.545944187796741,0.54547094711187,0.544798960272416,0.544040951197416,0.543293925940102,0.542659367188784,0.542265206298403,0.542265206298403, +0.762393337505982,0.762393337505982,0.762164783071291,0.761417040523955,0.760467052493645,0.759445782594616,0.75843424713398,0.757520066780544,0.756861932792364,0.756861932792364, + +00:20:02, +0.0263095238457616,0.0263095238457616,0.0263398962804918,0.0263365770967961,0.0263083258023531,0.0262661766724067,0.026221651327734,0.0261851810804176,0.0261647536647722,0.0261647536647722, +0.0263095238457616,0.0263095238457616,0.0263398962804918,0.0263365770967961,0.0263083258023531,0.0262661766724067,0.026221651327734,0.0261851810804176,0.0261647536647722,0.0261647536647722, +0.0412768534673262,0.0412768534673262,0.0413110375010141,0.0412988018840061,0.0412523980745174,0.0411873199824127,0.0411198551555807,0.0410649415065661,0.0410342303136678,0.0410342303136678, +0.07520346352403,0.07520346352403,0.0752409476048407,0.0752059785925027,0.0751180557830138,0.0750019395382534,0.0748838367486895,0.0747882195626379,0.0747347459954088,0.0747347459954088, +0.135296094075794,0.135296094075794,0.13532758339491,0.135246872382129,0.135084858769239,0.134880781253227,0.134676236302723,0.134510909637233,0.134418113753044,0.134418113753044, +0.230123770639034,0.230123770639034,0.230127809591788,0.229966605575301,0.229687360750161,0.229349108378526,0.229013607674232,0.22874133932577,0.228586840378124,0.228586840378124, +0.366587806014582,0.366587806014582,0.366531790140895,0.366243713754293,0.365795742239455,0.365271759787102,0.364755091212456,0.364329930026916,0.364082106326865,0.364082106326865, +0.54625916106773,0.54625916106773,0.546111301967339,0.545638232979964,0.54496651678953,0.544208820148281,0.543462105478832,0.542827813235851,0.542433819704537,0.542433819704537, +0.762489709877037,0.762489709877037,0.762261240544761,0.761513815479591,0.760564242679088,0.759543423757374,0.758532336477921,0.757618561359178,0.756960717542986,0.756960717542986, + +00:20:03, +0.0263784994651237,0.0263784994651237,0.0264089119174175,0.0264055921667017,0.0263773081564941,0.0263351064687003,0.0262905234219151,0.0262540048789812,0.0262335501424949,0.0262335501424949, +0.0263784994651237,0.0263784994651237,0.0264089119174175,0.0264055921667017,0.0263773081564941,0.0263351064687003,0.0262905234219151,0.0262540048789812,0.0262335501424949,0.0262335501424949, +0.0413642510088231,0.0413642510088231,0.0413984637948688,0.0413862210775497,0.0413397810747439,0.041274648538235,0.0412071248771973,0.041152162253969,0.0411214234299021,0.0411214234299021, +0.0753240081829929,0.0753240081829929,0.0753614981540451,0.075326513041564,0.0752385543599486,0.0751223888560139,0.0750042339257939,0.0749085736769844,0.0748550759549463,0.0748550759549463, +0.135455936480398,0.135455936480398,0.135487401330391,0.135406672604439,0.135244641230702,0.135040542739515,0.134835975837074,0.134670631331987,0.134577825801932,0.134577825801932, +0.230315074262275,0.230315074262275,0.230319064622028,0.230157864441823,0.229878654710764,0.229540449904849,0.229204997118663,0.228932768875392,0.228778293841659,0.228778293841659, +0.36678587576455,0.36678587576455,0.366729815267595,0.366441803681939,0.365993965688682,0.365470146867331,0.364953641936736,0.364528618023966,0.364280876379096,0.364280876379096, +0.546426089607338,0.546426089607338,0.546278234602768,0.545805337174985,0.545133891403413,0.544376506946048,0.543630102625046,0.542996076678715,0.542602250363562,0.542602250363562, +0.762585965424696,0.762585965424696,0.762357581108429,0.761610473150689,0.760661315093963,0.759640946633862,0.758630307028535,0.757716936680272,0.757059382694833,0.757059382694833, + +00:20:04, +0.0264475598095311,0.0264475598095311,0.02647801224655,0.026474691937453,0.0264463752521998,0.0264041210657657,0.0263594803789616,0.0263229135908694,0.0263024315615848,0.0263024315615848, +0.0264475598095311,0.0264475598095311,0.02647801224655,0.026474691937453,0.0264463752521998,0.0264041210657657,0.0263594803789616,0.0263229135908694,0.0263024315615848,0.0263024315615848, +0.0414517161397221,0.0414517161397221,0.0414859576385909,0.0414737078406116,0.0414272317120313,0.0413620448278512,0.0412944624347373,0.0412394509210167,0.0412086845125755,0.0412086845125755, +0.0754445808254957,0.0754445808254957,0.0754820766530016,0.0754470754844858,0.0753590810421487,0.0752428664340976,0.0751246595269878,0.0750289563501947,0.0749754345488342,0.0749754345488342, +0.135615742420152,0.135615742420152,0.135647182805894,0.135566436441976,0.135404387452682,0.13520026818203,0.13499567953405,0.134830317359237,0.134737502278197,0.134737502278197, +0.230506263949398,0.230506263949398,0.23051020578607,0.230349009525991,0.230069835011868,0.229731677934168,0.229396273239262,0.229124085243066,0.228969634200981,0.228969634200981, +0.366983771152842,0.366983771152842,0.366927666144645,0.366639719383092,0.366192014909824,0.365668359729259,0.365152018462673,0.36472713183556,0.364479472246108,0.364479472246108, +0.546592836876139,0.546592836876139,0.546444986032372,0.54597226002644,0.545301084443784,0.544544011920557,0.543797917708629,0.54316415784733,0.542770498605521,0.542770498605521, +0.762682104386543,0.762682104386543,0.762453805000046,0.761707013775739,0.760758269977664,0.759738351464363,0.758728159026943,0.757815192985737,0.757157928490432,0.757157928490432, + +00:20:05, +0.0265167048000091,0.0265167048000091,0.0265471971888627,0.0265438763300307,0.0265155270105112,0.0264732203847444,0.0264285221201322,0.026391907137444,0.0263713978434643,0.0263713978434643, +0.0265167048000091,0.0265167048000091,0.0265471971888627,0.0265438763300307,0.0265155270105112,0.0264732203847444,0.0264285221201322,0.026391907137444,0.0263713978434643,0.0263713978434643, +0.0415392487565775,0.0415392487565775,0.0415735189287705,0.0415612620697918,0.0415147498829716,0.0414495087478383,0.0413818677247665,0.0413268074042704,0.0412960134582491,0.0412960134582491, +0.0755651813375225,0.0755651813375225,0.0756026829878347,0.0755676658073749,0.0754796357155654,0.0753633721582121,0.0752451134377158,0.0751493674674985,0.0750958216621836,0.0750958216621836, +0.135775511835896,0.135775511835896,0.135806927762408,0.135726163835626,0.135564097375715,0.135359957520784,0.135155347333092,0.134989967657956,0.134897143120549,0.134897143120549, +0.23069733977979,0.23069733977979,0.230701233163304,0.230540040906991,0.230260901732194,0.229922792544519,0.229587436113319,0.229315288505466,0.229160861532423,0.229160861532423, +0.367181492426175,0.367181492426175,0.367125343018562,0.366837461104104,0.366389890148924,0.365866398618436,0.365350221035248,0.364925471706213,0.364677894172175,0.364677894172175, +0.546759403202872,0.546759403202872,0.546611556584696,0.546139001863036,0.545468096239564,0.544711335400844,0.543965551058668,0.543332057070848,0.542938564759657,0.542938564759657, +0.762778126999496,0.762778126999496,0.762549912456693,0.761803437592565,0.760855107568916,0.759835638488488,0.758825892713596,0.757913330516809,0.757256355171634,0.757256355171634, + +00:20:06, +0.026585934357471,0.026585934357471,0.0266164666652178,0.0266131452653042,0.0265847633523578,0.0265424043466656,0.0264976485665725,0.0264609854399534,0.0264404489094419,0.0264404489094419, +0.026585934357471,0.026585934357471,0.0266164666652178,0.0266131452653042,0.0265847633523578,0.0265424043466656,0.0264976485665725,0.0264609854399534,0.0264404489094419,0.0264404489094419, +0.0416268487560087,0.0416268487560087,0.0416611475620631,0.0416488836617558,0.0416023354842215,0.0415370401948377,0.0414693406439143,0.0414142316003549,0.041383410163547,0.041383410163547, +0.075685809605359,0.075685809605359,0.0757233170449704,0.075688283896639,0.075600218266451,0.0754839059143659,0.0753655955437236,0.0752698069144267,0.0752162371804068,0.0752162371804068, +0.135935244668852,0.135935244668852,0.135966636141305,0.135885854726656,0.135723770940717,0.135519610696172,0.135314979174028,0.135149582167502,0.135056748268086,0.135056748268086, +0.23088830183297,0.23088830183297,0.230892146833248,0.230730958664139,0.230451854950593,0.230113793814074,0.229778485818261,0.229506378739403,0.229351975912455,0.229351975912455, +0.367379039830869,0.367379039830869,0.367322846135468,0.367035029090934,0.36658759165163,0.366064263780016,0.365548249899054,0.365123637880058,0.364876142401183,0.364876142401183, +0.546925788915478,0.546925788915478,0.546777946587484,0.546305563012681,0.545634927118875,0.544878477715149,0.544133003003454,0.543499774677629,0.543106449154422,0.543106449154422, +0.762874033499811,0.762874033499811,0.762645903714791,0.761899744838323,0.760951828105774,0.759932807945178,0.758923508328271,0.758011349514053,0.757354662979615,0.757354662979615, + +00:20:07, +0.0266552484027192,0.0266552484027192,0.0266858205963666,0.0266824986640319,0.0266540841985579,0.0266116728724469,0.0265668596393155,0.0265301484195326,0.0265095846807124,0.0265095846807124, +0.0266552484027192,0.0266552484027192,0.0266858205963666,0.0266824986640319,0.0266540841985579,0.0266116728724469,0.0265668596393155,0.0265301484195326,0.0265095846807124,0.0265095846807124, +0.0417145160347004,0.0417145160347004,0.0417488434351896,0.041736572513234,0.0416899884125026,0.0416246390655554,0.0415568810888742,0.0415017234059582,0.0414708745251567,0.0414708745251567, +0.0758064655155918,0.0758064655155918,0.0758439787111348,0.0758089296389861,0.0757208285813581,0.0756044675888683,0.0754861057310573,0.0753902745768108,0.0753366809892163,0.0753366809892163, +0.136094940860625,0.136094940860625,0.136126307884338,0.136045509056715,0.135883408088991,0.135679227648971,0.135474574997071,0.13530916082762,0.135216317660293,0.135216317660293, +0.231079150188584,0.231079150188584,0.231082946875548,0.23092176287688,0.230642694746046,0.230304681821134,0.22996942243165,0.229697356021824,0.229542977417684,0.229542977417684, +0.367576413612851,0.367576413612851,0.367520175741091,0.367232423589145,0.366785119663201,0.366261955458768,0.365746105298299,0.365321630600841,0.365074217176638,0.365074217176638, +0.547091994341102,0.547091994341102,0.546944156367686,0.546471943802487,0.545801577409041,0.545045439190918,0.544300273870484,0.543667310995236,0.543274152117471,0.543274152117471, +0.762969824123084,0.762969824123084,0.762741779010099,0.761995935749508,0.761048431825632,0.760029860072708,0.75902100611008,0.758109250217362,0.757452852154881,0.757452852154881, + +00:20:08, +0.026724646856446,0.026724646856446,0.0267552589029508,0.0267519364468626,0.0267234894698196,0.026681025882895,0.0266361552592829,0.0265993959972048,0.0265788050783583,0.0265788050783583, +0.026724646856446,0.026724646856446,0.0267552589029508,0.0267519364468626,0.0267234894698196,0.026681025882895,0.0266361552592829,0.0265993959972048,0.0265788050783583,0.0265788050783583, +0.0418022504894031,0.0418022504894031,0.0418366064449366,0.0418243285210228,0.0417777085646019,0.041712305256762,0.041644488956404,0.0415892827178324,0.041558406439829,0.041558406439829, +0.0759271489551077,0.0759271489551077,0.0759646678733539,0.0759296029214235,0.0758414665471387,0.0757250570683279,0.075606643886063,0.0755107703407819,0.0754571529746243,0.0754571529746243, +0.136254600353202,0.136254600353202,0.136285942933641,0.136205126767833,0.136043008762216,0.135838808320343,0.135634134742816,0.13546870357844,0.135375851237038,0.135375851237038, +0.231269884926406,0.231269884926406,0.231273633369978,0.231112453624784,0.230833421197663,0.230495456644133,0.23016024603118,0.229888220429813,0.229733866124856,0.229733866124856, +0.367773614017656,0.367773614017656,0.367717332080767,0.367429644843909,0.366982474428503,0.366459473899071,0.365943787476803,0.365519450111926,0.365272118741662,0.365272118741662, +0.547258019806094,0.547258019806094,0.547110186251456,0.546638144558772,0.545968047436594,0.545212220154802,0.544467363986462,0.543834666350444,0.543441673975671,0.543441673975671, +0.763065499104253,0.763065499104253,0.762837538577718,0.762092010561954,0.761144918965216,0.760126795108687,0.759118386297465,0.75820703286596,0.757550922937265,0.757550922937265, + +00:20:09, +0.0267941296392341,0.0267941296392341,0.026824781505503,0.0268214585343362,0.0267929790867418,0.0267504632987066,0.0267055353472854,0.0266687280938814,0.0266481100233502,0.0266481100233502, +0.0267941296392341,0.0267941296392341,0.026824781505503,0.0268214585343362,0.0267929790867418,0.0267504632987066,0.0267055353472854,0.0266687280938814,0.0266481100233502,0.0266481100233502, +0.0418900520169332,0.0418900520169332,0.0419244364881568,0.0419121515819841,0.0418654958373723,0.0418000386652935,0.0417321641433262,0.0416769094327935,0.0416460058043786,0.0416460058043786, +0.0760478598110926,0.0760478598110926,0.0760853844189526,0.0760503036312577,0.0759621320509438,0.0758456742396521,0.0757272098953853,0.07563129409277,0.0755776530229424,0.0755776530229424, +0.136414223088949,0.136414223088949,0.136445541231725,0.136364707802417,0.136202572902453,0.135998352651828,0.135793658352241,0.135628210360472,0.135535348938573,0.135535348938573, +0.231460506126336,0.231460506126336,0.231464206396437,0.231303030987549,0.231024034384681,0.230686118361634,0.230350956694678,0.230078972040588,0.22992464211085,0.22992464211085, +0.367970641290423,0.367970641290423,0.367914315399438,0.367626693100004,0.36717965619201,0.366656819344915,0.366141296678003,0.365717096656293,0.365469847338995,0.365469847338995, +0.547423865636015,0.547423865636015,0.547276036564161,0.546804165607063,0.546134337527275,0.545378820932662,0.544634273677304,0.54400184106924,0.543609015055101,0.543609015055101, +0.7631610586776,0.7631610586776,0.762933182652091,0.762187969510837,0.761241289760596,0.760223613290062,0.759215649128205,0.758304697698408,0.757648875565937,0.757648875565937, + +00:20:10, +0.0268636966715577,0.0268636966715577,0.0268943883244476,0.0268910648468841,0.0268625529698144,0.026819985040469,0.026774999824024,0.0267381446303636,0.0267174994365478,0.0267174994365478, +0.0268636966715577,0.0268636966715577,0.0268943883244476,0.0268910648468841,0.0268625529698144,0.026819985040469,0.026774999824024,0.0267381446303636,0.0267174994365478,0.0267174994365478, +0.0419779205141731,0.0419779205141731,0.042012333461769,0.0420000415930464,0.041953350127732,0.0418878391880513,0.0418199065465278,0.0417646034477221,0.0417336725156844,0.0417336725156844, +0.0761685979710315,0.0761685979710315,0.076206128235554,0.0761710316560929,0.0760828249802223,0.0759663189900469,0.0758478036459676,0.0757518457195037,0.0756981810207801,0.0756981810207801, +0.136573809010609,0.136573809010609,0.136605102721479,0.136524252103252,0.13636210045214,0.136157860585346,0.135953145766703,0.13578768111461,0.135694810705533,0.135694810705533, +0.231651013868398,0.231651013868398,0.231654666034947,0.231493495044997,0.231214534386463,0.230876667052329,0.230541554500103,0.230269610931498,0.23011530545268,0.23011530545268, +0.368167495675901,0.368167495675901,0.368111125941653,0.367823568601819,0.367376665197809,0.366853992039903,0.366338633144948,0.365914570476539,0.365667403210996,0.365667403210996, +0.547589532155635,0.547589532155635,0.547441707630376,0.546970007272099,0.546300448006036,0.545545241849573,0.544801003268139,0.544168835476822,0.543776175681054,0.543776175681054, +0.763256503076754,0.763256503076754,0.763028711467011,0.762283812830676,0.761337544447181,0.760320314853122,0.759312794839419,0.758402244952601,0.757746710279399,0.757746710279399, + +00:20:11, +0.0269333478737833,0.0269333478737833,0.0269640792801017,0.0269607553048305,0.0269322110394201,0.0268895910286613,0.0268445486100903,0.0268076455273426,0.0267869732387007,0.0267869732387007, +0.0269333478737833,0.0269333478737833,0.0269640792801017,0.0269607553048305,0.0269322110394201,0.0268895910286613,0.0268445486100903,0.0268076455273426,0.0267869732387007,0.0267869732387007, +0.0420658558780718,0.0420658558780718,0.0421002972627586,0.0420879984512043,0.0420412713326658,0.0419757067220021,0.0419077160629613,0.0418523646595631,0.0418214064706896,0.0418214064706896, +0.0762893633227071,0.0762893633227071,0.076326899211079,0.076291786883831,0.0762035452227208,0.0760869912070154,0.0759684250250504,0.075872425108009,0.0758187368550448,0.0758187368550448, +0.136733358061301,0.136733358061301,0.136764627346168,0.136683759613497,0.136521591354093,0.136317332063195,0.136112596927939,0.135947115782127,0.13585423647893,0.13585423647893, +0.231841408232742,0.231841408232742,0.231845012365655,0.231683845877073,0.231404921282498,0.231067102795036,0.230732039525541,0.230460137180027,0.230305856227494,0.230305856227494, +0.368364177418447,0.368364177418447,0.368307763951573,0.36802027159335,0.367573501689595,0.367050992227249,0.366535797120304,0.36611187181488,0.365864786599642,0.365864786599642, +0.547755019688937,0.547755019688937,0.547607199773893,0.547135669877831,0.546466379197042,0.545711483229823,0.544967553083311,0.544335649897609,0.543943156178039,0.543943156178039, +0.763351832534695,0.763351832534695,0.763124125255616,0.76237954075534,0.761433683259727,0.760416900033496,0.759409823667566,0.758499674865776,0.757844427315494,0.757844427315494, + +00:20:12, +0.0270030831661702,0.0270030831661702,0.0270338542926756,0.0270305298283929,0.027001953215834,0.026959281183655,0.0269141816259678,0.0268772307054007,0.0268565313504492,0.0268565313504492, +0.0270030831661702,0.0270030831661702,0.0270338542926756,0.0270305298283929,0.027001953215834,0.026959281183655,0.0269141816259678,0.0268772307054007,0.0268565313504492,0.0268565313504492, +0.0421538580056449,0.0421538580056449,0.0421883277881777,0.0421760220535191,0.0421292593492245,0.042063641164179,0.0419955925896443,0.0419401929653267,0.0419092075664019,0.0419092075664019, +0.0764101557541995,0.0764101557541995,0.076447697233745,0.0764125692026703,0.0763242926664824,0.0762076907783578,0.0760890739201714,0.0759930321456088,0.0759393204129405,0.0759393204129405, +0.13689287018452,0.13689287018452,0.13692411504943,0.136843230276688,0.136681045551498,0.136476767028047,0.136272011778062,0.136106514304672,0.136013626200158,0.136013626200158, +0.232031689299638,0.232031689299638,0.232035245468829,0.231874083563845,0.231595195152396,0.231257425668701,0.230922411849209,0.230650550863786,0.23049629451257,0.23049629451257, +0.368560686762025,0.368560686762025,0.368504229672964,0.368216802318203,0.367770165910675,0.367247820149784,0.366732788846354,0.366309000913149,0.366061997746531,0.366061997746531, +0.547920328559121,0.547920328559121,0.547772513317718,0.547301153747428,0.546632131423677,0.545877545396917,0.545133923446385,0.544502284655235,0.544109956869786,0.544109956869786, +0.763447047283751,0.763447047283751,0.763219424250398,0.762475153518043,0.761529706432336,0.760513369066159,0.759506735848448,0.75859698767451,0.757942026911403,0.757942026911403, + +00:20:13, +0.0270729024688717,0.0270729024688717,0.0271037132822739,0.0271003883376829,0.0270717794192253,0.0270290554257145,0.0269838987920323,0.0269469000850121,0.026926173692325,0.026926173692325, +0.0270729024688717,0.0270729024688717,0.0271037132822739,0.0271003883376829,0.0270717794192253,0.0270290554257145,0.0269838987920323,0.0269469000850121,0.026926173692325,0.026926173692325, +0.0422419267939749,0.0422419267939749,0.0422764249351456,0.0422641122971191,0.0422173140745259,0.0421516424116809,0.0420835360236603,0.0420280882620879,0.0419970756998941,0.0419970756998941, +0.0765309751538853,0.0765309751538853,0.0765685221920659,0.0765333785011054,0.0764450671998463,0.0763284175921703,0.0762097502191645,0.0761136667199224,0.0760599315819678,0.0760599315819678, +0.137052345324134,0.137052345324134,0.137083565775275,0.13700266403673,0.13684046298792,0.136636165422949,0.136431390259559,0.136265876624272,0.136172979810986,0.136172979810986, +0.232221857149479,0.232221857149479,0.232225365424858,0.232064208185501,0.231785356075893,0.231447635752392,0.231112671549449,0.230840852060519,0.230686620385317,0.230686620385317, +0.36875702395021,0.36875702395021,0.368700523349203,0.368413161019593,0.367966658103966,0.36744447604995,0.366929608564997,0.366505958012798,0.366259036892879,0.366259036892879, +0.548085459088606,0.548085459088606,0.547937648584077,0.547466459203277,0.546797705008539,0.54604342867358,0.545300114680143,0.544668740072559,0.544276578079245,0.544276578079245, +0.763542147555606,0.763542147555606,0.7633146086832,0.762570651351353,0.761625614198457,0.760609722185433,0.759603531617212,0.758694183614724,0.75803950930365,0.75803950930365, + +00:20:14, +0.0271428057019355,0.0271428057019355,0.0271736561688961,0.0271703307527072,0.027141689569658,0.0270989136749984,0.0270537000285529,0.0270166535865435,0.0269959001847523,0.0269959001847523, +0.0271428057019355,0.0271428057019355,0.0271736561688961,0.0271703307527072,0.027141689569658,0.0270989136749984,0.0270537000285529,0.0270166535865435,0.0269959001847523,0.0269959001847523, +0.0423300621402117,0.0423300621402117,0.0423645886008488,0.0423522690791998,0.0423054354057543,0.0422397103616733,0.0421715462621584,0.0421160504469874,0.042085010768304,0.042085010768304, +0.0766518214104371,0.0766518214104371,0.0766893739748509,0.076654214667926,0.0765658687114468,0.0764491715368443,0.0763304538101588,0.0762343287188645,0.0761805702499226,0.0761805702499226, +0.137211783424382,0.137211783424382,0.137242979468085,0.137162060837901,0.13699984360729,0.136795527191321,0.136590732315294,0.136425202683329,0.136332297253558,0.136332297253558, +0.232411911862777,0.232411911862777,0.232415372314251,0.23225421982235,0.231975404132845,0.231637733125302,0.231302818704732,0.231031040848094,0.230876833923273,0.230876833923273, +0.368953189226188,0.368953189226188,0.368896645223278,0.368609347940349,0.368162978511999,0.367640960169803,0.367126256517748,0.366702743354898,0.366455904279524,0.366455904279524, +0.548250411599032,0.548250411599032,0.548102605894417,0.547631586566986,0.546963100273452,0.546209133381759,0.545466127106592,0.544835016471661,0.544443020128593,0.544443020128593, +0.763637133581302,0.763637133581302,0.763409678785222,0.762666034487191,0.761721406790893,0.760705959624991,0.759700211208355,0.758791262921687,0.758136874728104,0.758136874728104, + +00:20:15, +0.0272127927853049,0.0272127927853049,0.0272436828724376,0.0272403569933681,0.027211683587091,0.02716885585156,0.0271235852556928,0.0270864911302551,0.027065710748048,0.027065710748048, +0.0272127927853049,0.0272127927853049,0.0272436828724376,0.0272403569933681,0.027211683587091,0.02716885585156,0.0271235852556928,0.0270864911302551,0.027065710748048,0.027065710748048, +0.0424182639415725,0.0424182639415725,0.0424528186825411,0.0424404922970241,0.0423936232401614,0.0423278449113883,0.0422596232023541,0.0422040794172314,0.0421730126688349,0.0421730126688349, +0.0767726944128225,0.0767726944128225,0.0768102524712038,0.0767750775922163,0.076686697090213,0.0765699525010663,0.0764511845815784,0.0763550180306445,0.0763012363048957,0.0763012363048957, +0.137371184429874,0.137371184429874,0.137402356072612,0.137321420624848,0.137159187353913,0.136954852276953,0.136750037888502,0.136584492424618,0.136491578470395,0.136491578470395, +0.232601853520162,0.232601853520162,0.232605266217633,0.232444118554819,0.232165339403226,0.231827717866747,0.231492853393651,0.231221117304509,0.231066935204104,0.231066935204104, +0.369149182832752,0.369149182832752,0.369092595537787,0.368805363322906,0.368359127376917,0.367837272751017,0.36732273294574,0.366899357180141,0.366652600146925,0.366652600146925, +0.548415186411259,0.548415186411259,0.54826738556941,0.547796536159386,0.547128317539461,0.546374659842626,0.545631961046964,0.545001114173848,0.544609283339229,0.544609283339229, +0.763732005591236,0.763732005591236,0.763504634787024,0.762761303156834,0.761817084441801,0.760802081617857,0.759796774855723,0.758888225830014,0.758234123419982,0.758234123419982, + +00:20:16, +0.0272828636388192,0.0272828636388192,0.0273137933126904,0.0273104669794647,0.0272817613913798,0.0272388818753482,0.0271935543935098,0.0271564126363014,0.0271356053024231,0.0271356053024231, +0.0272828636388192,0.0272828636388192,0.0273137933126904,0.0273104669794647,0.0272817613913798,0.0272388818753482,0.0271935543935098,0.0271564126363014,0.0271356053024231,0.0271356053024231, +0.0425065320953421,0.0425065320953421,0.0425411150775446,0.0425287818479225,0.0424818774750661,0.0424160459581249,0.0423477667415292,0.0422921750700923,0.0422610812987558,0.0422610812987558, +0.0768935940503036,0.0768935940503036,0.0769311575705226,0.0768959671633545,0.0768075522253678,0.0766907603738164,0.0765719424221415,0.0764757345437662,0.0764219296352719,0.0764219296352719, +0.137530548285588,0.137530548285588,0.137561695533974,0.137480743342585,0.137318494172461,0.137114140624008,0.136909306922789,0.136743745791287,0.136650823404386,0.136650823404386, +0.232791682202385,0.232791682202385,0.23279504721575,0.232633904463453,0.232355161967131,0.232017590056164,0.231682775694924,0.231411081507886,0.231256924305603,0.231256924305603, +0.369345005012308,0.369345005012308,0.369288374534938,0.369001207409316,0.368555104940475,0.368033414034878,0.367519038089725,0.367095799728839,0.366849124735161,0.366849124735161, +0.548579783845376,0.548579783845376,0.548431987928953,0.547961308300534,0.547293357126836,0.546540008376577,0.545797616821718,0.545167033499657,0.544775368031786,0.544775368031786, +0.763826763815168,0.763826763815168,0.763599476918522,0.762856457590917,0.761912647382693,0.760898088396407,0.759893222792513,0.758985072573674,0.75833125561385,0.75833125561385, + +00:20:17, +0.0273530181822148,0.0273530181822148,0.0273839874093435,0.0273806606306932,0.0273519229022766,0.0273089916662083,0.0272636073619577,0.0272264180247319,0.0272055837679833,0.0272055837679833, +0.0273530181822148,0.0273530181822148,0.0273839874093435,0.0273806606306932,0.0273519229022766,0.0273089916662083,0.0272636073619577,0.0272264180247319,0.0272055837679833,0.0272055837679833, +0.0425948664988735,0.0425948664988735,0.0426294776832488,0.0426171376292935,0.0425701980078552,0.0425043133992495,0.0424359767770321,0.0423803373029084,0.0423492165554015,0.0423492165554015, +0.0770145202124364,0.0770145202124364,0.0770520891624986,0.0770168832710118,0.0769284340064273,0.0768115950443681,0.0766927272208595,0.0765964781470265,0.0765426501297296,0.0765426501297296, +0.137689874936869,0.137689874936869,0.137720997797657,0.137640028936493,0.137477764007974,0.137273392177014,0.13706853936213,0.136902962726854,0.136810031998796,0.136810031998796, +0.232981397990311,0.232981397990311,0.23298471538946,0.232823577628914,0.232544871904774,0.232207349773109,0.231872585687392,0.231600933536473,0.231446801305688,0.231446801305688, +0.369540656006875,0.369540656006875,0.369483982456554,0.369196880441239,0.368750911444043,0.36822938426229,0.367715172190074,0.367292071240924,0.367045478283936,0.367045478283936, +0.548744204220699,0.548744204220699,0.54859641329217,0.548125903309716,0.547458219355077,0.546705179303239,0.545963094750545,0.545332774768854,0.544941274526124,0.544941274526124, +0.763921408482221,0.763921408482221,0.763694205408998,0.762951498019436,0.762008095844439,0.760993980192379,0.759989555251282,0.759081803385987,0.758428271543626,0.758428271543626, + +00:20:18, +0.0274232563351256,0.0274232563351256,0.0274542650819845,0.0274509378666479,0.0274221680394316,0.0273791851438824,0.0273337440808865,0.0272965072154917,0.0272756460647297,0.0272756460647297, +0.0274232563351256,0.0274232563351256,0.0274542650819845,0.0274509378666479,0.0274221680394316,0.0273791851438824,0.0273337440808865,0.0272965072154917,0.0272756460647297,0.0272756460647297, +0.0426832670495877,0.0426832670495877,0.0427179063971121,0.0427055595386038,0.0426585847359832,0.0425926471321957,0.0425242532062784,0.0424685660130847,0.0424374183361732,0.0424374183361732, +0.0771354727890696,0.0771354727890696,0.0771730471371156,0.077137825805152,0.0770493423231999,0.0769324564022876,0.0768135388670366,0.0767172487295154,0.0766633976772398,0.0766633976772398, +0.13784916432943,0.13784916432943,0.137880262809512,0.13779927735232,0.137636996805857,0.137432606880867,0.137227735150869,0.137062143175205,0.136969204197256,0.136969204197256, +0.23317100096492,0.23317100096492,0.233174270819739,0.233013138131977,0.232734469296484,0.232396997097257,0.232062283450015,0.23179067346864,0.231636566282402,0.231636566282402, +0.369736136058082,0.369736136058082,0.369679419544066,0.36939238265995,0.368946547128605,0.368425183673774,0.367911135486777,0.36748817195595,0.367241661032573,0.367241661032573, +0.548908447855774,0.548908447855774,0.548760661977419,0.548290321505448,0.547622904542915,0.546870172941471,0.546128395152367,0.545498338300439,0.545107003141339,0.545107003141339, +0.764015939820883,0.764015939820883,0.763788820487097,0.76304642467175,0.762103430057271,0.761089757236864,0.760085772463938,0.75917841849963,0.758525171442583,0.758525171442583, + +00:20:19, +0.0274935780170845,0.0274935780170845,0.0275246262500996,0.0275212986068222,0.0274924967223932,0.0274494622280109,0.0274039644700433,0.0273666801284227,0.0273457921125596,0.0273457921125596, +0.0274935780170845,0.0274935780170845,0.0275246262500996,0.0275212986068222,0.0274924967223932,0.0274494622280109,0.0274039644700433,0.0273666801284227,0.0273457921125596,0.0273457921125596, +0.0427717336449744,0.0427717336449744,0.0428064011166609,0.0427940474733886,0.0427470375569727,0.0426810470544649,0.0426125959267506,0.0425568610980928,0.0425256865385383,0.0425256865385383, +0.0772564516703445,0.0772564516703445,0.0772940313846494,0.0772587946560307,0.0771702770657862,0.0770533443374328,0.076934377250269,0.0768380461806145,0.0767841721670656,0.0767841721670656, +0.138008416409344,0.138008416409344,0.138039490515752,0.137958488536174,0.137796192511878,0.137591784680828,0.137386894233716,0.137221287080595,0.137128339943766,0.137128339943766, +0.233360491207309,0.233360491207309,0.233363713587676,0.233202586053534,0.232923954222704,0.232586532108401,0.232251869061876,0.231980301382878,0.231826219313911,0.231826219313911, +0.369931445407171,0.369931445407171,0.369874686038521,0.369587714306337,0.369142012234759,0.368620812509467,0.368106928219442,0.367684102113094,0.367437673220021,0.367437673220021, +0.549072515068381,0.549072515068381,0.548924734302289,0.548454563205479,0.547787413008312,0.547034989609365,0.54629351834534,0.545663724412648,0.545272554195763,0.545272554195763, +0.764110358059011,0.764110358059011,0.763883322380834,0.763141237776584,0.762198650250784,0.761185419760318,0.760181874661754,0.759274918146638,0.75862195554335,0.75862195554335, + +00:20:20, +0.0275639831475232,0.0275639831475232,0.0275950708330747,0.027591742770609,0.0275629088706094,0.0275198228381327,0.0274742684490735,0.0274369366832641,0.0274160218312673,0.0274160218312673, +0.0275639831475232,0.0275639831475232,0.0275950708330747,0.027591742770609,0.0275629088706094,0.0275198228381327,0.0274742684490735,0.0274369366832641,0.0274160218312673,0.0274160218312673, +0.0428602661825918,0.0428602661825918,0.0428949617394908,0.0428826013312516,0.0428355563684148,0.0427695130636265,0.0427010048359986,0.0426452224554713,0.0426140210600312,0.0426140210600312, +0.077377456746694,0.077377456746694,0.077415041795667,0.0773797897141942,0.0772912381245773,0.0771742587399529,0.0770552422604442,0.0769588703899971,0.0769049734887615,0.0769049734887615, +0.138167631123052,0.138167631123052,0.138198680862953,0.138117662434526,0.13795535107217,0.137750925522522,0.137546016555747,0.137380394387643,0.137287439182693,0.137287439182693, +0.233549868798684,0.233549868798684,0.233553043774471,0.233391921474587,0.233113326763994,0.232775954886452,0.232441342602176,0.232169817357803,0.232015760478503,0.232015760478503, +0.370126584294999,0.370126584294999,0.370069782180579,0.369782875620903,0.36933730700272,0.368816271009124,0.368302550627299,0.367879861951154,0.367633515084851,0.367633515084851, +0.549236406175532,0.549236406175532,0.549088630583606,0.548618628726793,0.547951745068467,0.547199629624248,0.54645846464686,0.545828933422955,0.545437928006964,0.545437928006964, +0.764204663423829,0.764204663423829,0.763977711317591,0.76323593756203,0.762293756653938,0.76128096799256,0.760277862075362,0.759371302558405,0.758718624077914,0.758718624077914, + +00:20:21, +0.0276344716457738,0.0276344716457738,0.0276655987501964,0.0276622702773018,0.0276334044034282,0.0275902668936862,0.027544655937521,0.0275072767996533,0.0274863351405451,0.0274863351405451, +0.0276344716457738,0.0276344716457738,0.0276655987501964,0.0276622702773018,0.0276334044034282,0.0275902668936862,0.027544655937521,0.0275072767996533,0.0274863351405451,0.0274863351405451, +0.0429488645600669,0.0429488645600669,0.0429835881632661,0.0429712210098654,0.0429241410679692,0.0428580450573179,0.0427894798316402,0.0427336499828261,0.042702421798253,0.042702421798253, +0.0774984879088418,0.0774984879088418,0.0775360782610259,0.0775008108704794,0.0774122253902552,0.0772951995002876,0.0771761337877401,0.0770797212476269,0.0770258015321726,0.0770258015321726, +0.138326808417351,0.138326808417351,0.138357833798052,0.13827679899421,0.138114472433226,0.137910029351937,0.1377051020624,0.137539465041337,0.137446501858769,0.137446501858769, +0.233739133820368,0.233739133820368,0.233742261461437,0.233581144476252,0.233302587001026,0.232965265511435,0.232630704150232,0.232359221472146,0.232205189854587,0.232205189854587, +0.370321552962034,0.370321552962034,0.370264708210515,0.369977866843764,0.369532431672317,0.369011559412119,0.3684980029492,0.368075451708552,0.367829186865259,0.367829186865259, +0.549400121493481,0.549400121493481,0.549252351137433,0.548782518385613,0.548115901039817,0.547364093302688,0.54662323437356,0.545993965648075,0.545603124891753,0.545603124891753, +0.764298856141938,0.764298856141938,0.764071987524122,0.763330524255549,0.76238874949506,0.761376402162774,0.760373734934759,0.759467571965689,0.758815177277626,0.758815177277626, + +00:20:22, +0.0277050434310692,0.0277050434310692,0.0277362099206522,0.0277328810460951,0.0277039832400983,0.0276607943140101,0.0276151268548293,0.0275777003971267,0.0275567319599835,0.0275567319599835, +0.0277050434310692,0.0277050434310692,0.0277362099206522,0.0277328810460951,0.0277039832400983,0.0276607943140101,0.0276151268548293,0.0275777003971267,0.0275567319599835,0.0275567319599835, +0.0430375286750962,0.0430375286750962,0.0430722802857206,0.0430599064069719,0.0430127915533643,0.0429466429332451,0.042878020811361,0.0428221435778304,0.0427908886508722,0.0427908886508722, +0.077619545047802,0.077619545047802,0.0776571406718734,0.077621858016013,0.0775332387537912,0.0774161665091663,0.0772970517226247,0.0772005986437578,0.077146656187434,0.077146656187434, +0.138485948239403,0.138485948239403,0.138516949268344,0.138435898162415,0.138273556541898,0.13806909611542,0.137864150699475,0.137698498987022,0.13760552791709,0.13760552791709, +0.233928286353789,0.233928286353789,0.233931366729997,0.233770255139755,0.233491735014585,0.233154464063487,0.23281995378548,0.23254851380476,0.232394507520691,0.232394507520691, +0.370516351648362,0.370516351648362,0.370459464368215,0.370172688214652,0.369727386482998,0.369206677957443,0.368693285423615,0.368270871623332,0.368024688799065,0.368024688799065, +0.549563661337718,0.549563661337718,0.549415896279074,0.548946232497401,0.548279881238038,0.547528380960491,0.546787827841317,0.546158821403963,0.545768145166184,0.545768145166184, +0.764392936439309,0.764392936439309,0.764166151226557,0.763424998083975,0.762483629001849,0.761471722499512,0.760469493469307,0.759563726598613,0.758911615373197,0.758911615373197, + +00:20:23, +0.0277756984225438,0.0277756984225438,0.0278069042635319,0.0278035749960856,0.0277746452997703,0.027731405018344,0.0276856811203423,0.0276482073951202,0.0276272122090728,0.0276272122090728, +0.0277756984225438,0.0277756984225438,0.0278069042635319,0.0278035749960856,0.0277746452997703,0.027731405018344,0.0276856811203423,0.0276482073951202,0.0276272122090728,0.0276272122090728, +0.0431262584254455,0.0431262584254455,0.0431610380046573,0.0431486574203824,0.0431015077223979,0.0430353065891827,0.0429666276729148,0.0429107031382252,0.0428794215156245,0.0428794215156245, +0.0777406280548782,0.0777406280548782,0.077778228919646,0.0777429310422103,0.0776542781064457,0.0775371596576074,0.077417995955855,0.0773215024689326,0.07726753734497,0.07726753734497, +0.138645050536723,0.138645050536723,0.138676027221483,0.138594959886691,0.138432603345398,0.138228125759679,0.138023162413135,0.137857496170409,0.137764517303112,0.137764517303112, +0.23411732648049,0.23411732648049,0.234120359661683,0.233959253546431,0.233680770885565,0.233343550622863,0.23300909158747,0.232737694434613,0.232583713555462,0.232583713555462, +0.370710980593681,0.370710980593681,0.370654050893184,0.370367339972914,0.369922171673826,0.36940162688371,0.368888398288641,0.368466121933165,0.368220021123716,0.368220021123716, +0.549727026022978,0.549727026022978,0.549579266323076,0.54910977137686,0.548443685978049,0.547692492912709,0.546952245365249,0.546323501005823,0.545932989145555,0.545932989145555, +0.764486904541292,0.764486904541292,0.7642602026504,0.763519359273515,0.762578395401375,0.761566929230697,0.76056513790774,0.759659766686667,0.759007938594707,0.759007938594707, + +00:20:24, +0.0278464365392347,0.0278464365392347,0.0278776816978279,0.0278743520462727,0.0278453905014969,0.0278020989258294,0.0277563186533049,0.0277187977129703,0.0276977758072032,0.0276977758072032, +0.0278464365392347,0.0278464365392347,0.0278776816978279,0.0278743520462727,0.0278453905014969,0.0278020989258294,0.0277563186533049,0.0277187977129703,0.0276977758072032,0.0276977758072032, +0.0432150537089501,0.0432150537089501,0.0432498612179492,0.0432374739479775,0.0431902894729368,0.0431240359229741,0.0430553003141235,0.0429993285618195,0.0429680202903135,0.0429680202903135, +0.0778617368216625,0.0778617368216625,0.0778993428960683,0.0778640298407751,0.0777753433397675,0.0776581788369181,0.0775389663784768,0.077442432613983,0.0773884448954934,0.0773884448954934, +0.138804115257188,0.138804115257188,0.138835067605477,0.138753984114943,0.138591612791293,0.13838711823178,0.1381821371499,0.138016456537567,0.137923469962655,0.137923469962655, +0.23430625428212,0.23430625428212,0.234309240338134,0.234148139777724,0.23386969469497,0.233532525269925,0.233198117635867,0.232926763440792,0.232772808037666,0.232772808037666, +0.370905440037305,0.370905440037305,0.370848468024542,0.370561822357515,0.370116787483483,0.369596406429149,0.369083341781992,0.368661202875343,0.368415184076282,0.368415184076282, +0.549890215863237,0.549890215863237,0.549742461583229,0.549273135337942,0.548607315574013,0.547856429473637,0.547116487259724,0.546488004768102,0.546097657144412,0.546097657144412, +0.764580760672616,0.764580760672616,0.764354142020535,0.763613608049756,0.76267304892008,0.761662022583625,0.76066066847816,0.759755692458709,0.759104147171601,0.759104147171601, + +00:20:25, +0.0279172577000819,0.0279172577000819,0.0279485421424362,0.0279452121155593,0.0279162187642343,0.0278728759555103,0.0278270393728638,0.0277894712699148,0.0277684226736659,0.0277684226736659, +0.0279172577000819,0.0279172577000819,0.0279485421424362,0.0279452121155593,0.0279162187642343,0.0278728759555103,0.0278270393728638,0.0277894712699148,0.0277684226736659,0.0277684226736659, +0.0433039144235154,0.0433039144235154,0.043338749823539,0.0433263558877081,0.0432791367029177,0.043212830832532,0.0431440386328782,0.0430880197464904,0.0430566848728107,0.0430566848728107, +0.0779828712400356,0.0779828712400356,0.0780204824931531,0.0779851543036986,0.0778964343455927,0.0777792239386927,0.0776599628818233,0.0775633889700283,0.0775093787300051,0.0775093787300051, +0.138963142349027,0.138963142349027,0.13899407036869,0.13891297079543,0.138750584827506,0.138546073479145,0.138341074856648,0.138175380034926,0.138082385841897,0.138082385841897, +0.234495069840436,0.234495069840436,0.234498008841099,0.234336913915184,0.234058506523916,0.23372138808515,0.23338703201045,0.233115720902497,0.232961791046182,0.232961791046182, +0.371099730218166,0.371099730218166,0.371042716001024,0.370756135607034,0.370311234150267,0.369791016831614,0.369278116141009,0.368856114686786,0.368610177893461,0.368610177893461, +0.550053231171722,0.550053231171722,0.549905482372573,0.549436324693842,0.548770770339342,0.548020190956819,0.547280553838357,0.546652333004501,0.54626214947655,0.54626214947655, +0.764674505057391,0.764674505057391,0.764447969561226,0.76370774463766,0.762767589783788,0.761757002784966,0.760756085408043,0.75985150414297,0.759200241332697,0.759200241332697, + +00:20:26, +0.0279881618239295,0.0279881618239295,0.0280194855161572,0.0280161551227525,0.0279871300068424,0.0279437360263341,0.0278978431980686,0.0278602279850935,0.0278391527276536,0.0278391527276536, +0.0279881618239295,0.0279881618239295,0.0280194855161572,0.0280161551227525,0.0279871300068424,0.0279437360263341,0.0278978431980686,0.0278602279850935,0.0278391527276536,0.0278391527276536, +0.0433928404671167,0.0433928404671167,0.0434277037194399,0.0434153031375949,0.0433680493103468,0.0433016912158384,0.0432328425271383,0.0431767765901834,0.0431454151610558,0.0431454151610558, +0.0781040312021653,0.0781040312021653,0.0781416476031997,0.0781063043232589,0.0780175510160446,0.077900294854813,0.0777809853575153,0.0776843714284751,0.0776303387397932,0.0776303387397932, +0.139122131760824,0.139122131760824,0.139153035459841,0.139071919876764,0.138909519402316,0.13870499144955,0.138499975480613,0.138334266609271,0.138241264887371,0.138241264887371, +0.234683773237299,0.234683773237299,0.234686665252429,0.23452557604047,0.234247206453621,0.233910139149123,0.233575834791108,0.233304566899043,0.233150662660006,0.233150662660006, +0.371293851374811,0.371293851374811,0.371236795060983,0.37095027995967,0.370505511912098,0.369985458328578,0.369472721602654,0.369050857604039,0.368805002811578,0.368805002811578, +0.550216072260907,0.550216072260907,0.550068329003396,0.549599339757005,0.548934050586695,0.54818377767505,0.547444445414015,0.546816486027969,0.546426466455019,0.546426466455019, +0.76476813791911,0.76476813791911,0.76454168549612,0.763801769261572,0.762862018217696,0.761851870060767,0.760851388924242,0.759947201967055,0.759296221306184,0.759296221306184, + +00:20:27, +0.0280591488295261,0.0280591488295261,0.0280905117376962,0.0280871809865648,0.0280581241480859,0.0280146790571522,0.0279687300478721,0.0279310677775489,0.0279099658882616,0.0279099658882616, +0.0280591488295261,0.0280591488295261,0.0280905117376962,0.0280871809865648,0.0280581241480859,0.0280146790571522,0.0279687300478721,0.0279310677775489,0.0279099658882616,0.0279099658882616, +0.0434818317377998,0.0434818317377998,0.0435167228037352,0.043504315595729,0.0434570271933005,0.0433906169709449,0.0433217118949327,0.0432655989909129,0.0432342110530567,0.0432342110530567, +0.0782252166005063,0.0782252166005063,0.078262838118794,0.0782274797920202,0.0781386932435324,0.0780213914774469,0.0779020336974595,0.0778053798810166,0.077751324816432,0.077751324816432, +0.139281083441516,0.139281083441516,0.139311962827996,0.139230831307911,0.139068416464351,0.138863872091126,0.138658838969387,0.138493116207743,0.138400107045971,0.138400107045971, +0.23487236455468,0.23487236455468,0.234875209654083,0.234714126235343,0.234435794565415,0.234098778542535,0.233764526057843,0.233493301509858,0.233339422958249,0.233339422958249, +0.371487803745406,0.371487803745406,0.371430705442389,0.371144255653238,0.370699621006513,0.370179731157134,0.369667158403516,0.369245431863273,0.368999659066584,0.368999659066584, +0.550378739442516,0.550378739442516,0.550231001787238,0.54976218083913,0.549097156627986,0.548347189940375,0.547608162298818,0.546980464150711,0.546590608392121,0.546590608392121, +0.764861659480652,0.764861659480652,0.76463529004825,0.76389568214522,0.762956334446388,0.761946624636455,0.760946579252986,0.760042786157945,0.759392087319627,0.759392087319627, + +00:20:28, +0.028130218635526,0.028130218635526,0.0281616207256645,0.028158289625614,0.0281292011066347,0.0280857049667208,0.0280396998411311,0.0280019905662273,0.0279808620744884,0.0279808620744884, +0.028130218635526,0.028130218635526,0.0281616207256645,0.028158289625614,0.0281292011066347,0.0280857049667208,0.0280396998411311,0.0280019905662273,0.0279808620744884,0.0279808620744884, +0.0435708881336812,0.0435708881336812,0.043605806974579,0.0435933931602719,0.0435460702499256,0.0434796079959729,0.0434106466343595,0.043354486846762,0.0433230724468902,0.0433230724468902, +0.0783464273277993,0.0783464273277993,0.0783840539328075,0.0783486806028322,0.078259860920751,0.0781425136990479,0.0780231077938488,0.0779264142196317,0.077872336851782,0.077872336851782, +0.13943999734039,0.13943999734039,0.139470852422577,0.139389705038184,0.139227275962591,0.139022715352357,0.13881766527091,0.138651928777839,0.138558912264943,0.138558912264943, +0.23506084387465,0.23506084387465,0.23506364212812,0.23490256458167,0.23462427094073,0.23428730634619,0.233953105890765,0.23368192481448,0.233528072020133,0.233528072020133, +0.371681587567731,0.371681587567731,0.371624447382831,0.371338062925174,0.370893561670669,0.370373835554001,0.369861426779806,0.369439837700284,0.369194146894059,0.369194146894059, +0.55054123302753,0.55054123302753,0.550393501034895,0.549924848251169,0.549260088774378,0.548510428064096,0.547771704804142,0.54714426768419,0.546754575599414,0.546754575599414, +0.764955069964284,0.764955069964284,0.764728783440035,0.763989483511716,0.763050538693826,0.762041266736838,0.761041656619884,0.760138256941998,0.759487839599966,0.759487839599966, + +00:20:29, +0.0282013711604896,0.0282013711604896,0.0282328123985798,0.0282294809584249,0.0282003608010654,0.0281568136737019,0.0281107524966076,0.028072996269979,0.0280518412052366,0.0280518412052366, +0.0282013711604896,0.0282013711604896,0.0282328123985798,0.0282294809584249,0.0282003608010654,0.0281568136737019,0.0281107524966076,0.028072996269979,0.0280518412052366,0.0280518412052366, +0.0436600095529478,0.0436600095529478,0.0436949561301963,0.0436825357294562,0.043635178378439,0.043568664189114,0.0434996466435865,0.043443440055883,0.0434119992407019,0.0434119992407019, +0.0784676632770701,0.0784676632770701,0.0785052949383964,0.0784699066488295,0.0783810539406799,0.0782636614123545,0.0781442075391608,0.0780474743365843,0.0779933747379887,0.0779933747379887, +0.139598873407084,0.139598873407084,0.139629704193351,0.139548541017249,0.139386097846367,0.139181521182075,0.138976454333478,0.138810704267408,0.138717680491886,0.138717680491886, +0.235249211279385,0.235249211279385,0.235251962756706,0.235090891161419,0.234812635661103,0.234475722640993,0.234141574370096,0.233870436892561,0.233716609924992,0.233716609924992, +0.37187520307919,0.37187520307919,0.371818021119515,0.371531702012531,0.371087334141345,0.370567771755517,0.370055526967362,0.369634075350499,0.369388466529211,0.369388466529211, +0.550703553326184,0.550703553326184,0.550555827056417,0.550087342303327,0.549422847336296,0.548673492356772,0.547935073240619,0.547307896939124,0.546918368387718,0.546918368387718, +0.765048369591664,0.765048369591664,0.764822165893286,0.764083173583562,0.763144631183362,0.762135796586108,0.761136621249929,0.760233614544955,0.759583478373523,0.759583478373523, + +00:20:30, +0.0282726063228844,0.0282726063228844,0.0283040866748672,0.0283007549034295,0.0282716031498611,0.0282280050966636,0.0281818879329692,0.0281440848075596,0.0281229031993132,0.0281229031993132, +0.0282726063228844,0.0282726063228844,0.0283040866748672,0.0283007549034295,0.0282716031498611,0.0282280050966636,0.0281818879329692,0.0281440848075596,0.0281229031993132,0.0281229031993132, +0.043749195893858,0.043749195893858,0.0437841701688833,0.0437717432015851,0.0437243514771288,0.0436577854486299,0.043588711820851,0.0435324585164976,0.0435009913327066,0.0435009913327066, +0.0785889243416295,0.0785889243416295,0.0786265610290016,0.0785911578234305,0.078502272196583,0.0783848345103893,0.0782653328261577,0.0781685601244228,0.0781144383674818,0.0781144383674818, +0.139757711591583,0.139757711591583,0.139788518090433,0.139707339195115,0.139544882065358,0.139340289529463,0.139135206105736,0.138969442624649,0.138876411674754,0.138876411674754, +0.235437466851162,0.235437466851162,0.235440171622105,0.235279106056661,0.235000888808173,0.234664027507957,0.234329931576161,0.23405883782386,0.233905036752271,0.233905036752271, +0.372068650516801,0.372068650516801,0.372011426889267,0.371725173151983,0.371280938654939,0.370761539997645,0.370249459201646,0.36982814504897,0.369582618206878,0.369582618206878, +0.550865700647972,0.550865700647972,0.550717980161114,0.550249663305073,0.54958543262342,0.548836383128219,0.548098267918145,0.547471352225496,0.547081987067112,0.547081987067112, +0.765141558583839,0.765141558583839,0.764915437629202,0.764176752582649,0.763238612137731,0.762230214407842,0.761231473367495,0.760328859191938,0.759679003865998,0.759679003865998, + +00:20:31, +0.0283439240410853,0.0283439240410853,0.0283754434728601,0.0283721113789676,0.0283429280714128,0.0282992791540815,0.0282531060687897,0.0282152560976304,0.028194047975431,0.028194047975431, +0.0283439240410853,0.0283439240410853,0.0283754434728601,0.0283721113789676,0.0283429280714128,0.0282992791540815,0.0282531060687897,0.0282152560976304,0.028194047975431,0.028194047975431, +0.0438384470547411,0.0438384470547411,0.0438734489890071,0.0438610154750334,0.0438135894443536,0.0437469716728531,0.0436778420644608,0.0436215421268971,0.0435900486211883,0.0435900486211883, +0.0787102104150721,0.0787102104150721,0.0787478520983469,0.0787124340203371,0.0786235155820072,0.0785060328864587,0.0783864835478852,0.0782896714759795,0.0782355276329752,0.0782355276329752, +0.139916511844221,0.139916511844221,0.139947294064287,0.13986609952214,0.139703628569588,0.139499020344052,0.139293920536679,0.139128143798113,0.139035105761848,0.139035105761848, +0.235625610672359,0.235625610672359,0.235628268806682,0.235467209349569,0.235189030463684,0.2348522210282,0.234518177589395,0.234247127688245,0.234093352581525,0.234093352581525, +0.372261930117204,0.372261930117204,0.372204664928534,0.371918476579822,0.371474375447473,0.370955140515972,0.370443223717748,0.370022047030378,0.369776602161525,0.369776602161525, +0.551027675301647,0.551027675301647,0.550879960657559,0.550411811565134,0.54974784494469,0.548999100687516,0.548261289145875,0.54763463385255,0.547245431946939,0.547245431946939, +0.765234637161255,0.765234637161255,0.765008598868379,0.764270220730259,0.763332481779063,0.762324520425007,0.761326213196345,0.760423991107454,0.759774416302477,0.759774416302477, + +00:20:32, +0.028415324233376,0.028415324233376,0.0284468827108004,0.0284435503032883,0.02841433548402,0.0283706357643386,0.0283244068225505,0.0282865100587595,0.028265275452209,0.028265275452209, +0.028415324233376,0.028415324233376,0.0284468827108004,0.0284435503032883,0.02841433548402,0.0283706357643386,0.0283244068225505,0.0282865100587595,0.028265275452209,0.028265275452209, +0.043927762933998,0.043927762933998,0.0439627924890068,0.043950352448247,0.0439028921785434,0.0438362227601866,0.0437670372727934,0.0437106907854425,0.0436791710045007,0.0436791710045007, +0.0788315213912756,0.0788315213912756,0.0788691680404394,0.078833735133534,0.0787447839907825,0.0786272564341516,0.078507659597672,0.0784108082843696,0.0783566424274656,0.0783566424274656, +0.140075274115673,0.140075274115673,0.140106032065717,0.140024821949027,0.139862337309428,0.13965771357572,0.139452597575648,0.1392868077367,0.139193762701821,0.139193762701821, +0.235813642825455,0.235813642825455,0.235816254392903,0.235655201122414,0.235377060709479,0.23504030328294,0.234706312490338,0.234435306565692,0.234281557492417,0.234281557492417, +0.37245504211666,0.37245504211666,0.372397735473382,0.372111612531964,0.371667644754589,0.371148573545709,0.370636820750384,0.370215781529033,0.369970418627248,0.369970418627248, +0.551189477595228,0.551189477595228,0.551041768853584,0.550573787391498,0.549910084608314,0.549161645343007,0.548424137232231,0.547797742128795,0.547408703335808,0.547408703335808, +0.76532760554375,0.76532760554375,0.765101649830809,0.76436357824707,0.763426240328877,0.762418714859959,0.761420840959631,0.760519010515398,0.759869715907432,0.759869715907432, + +00:20:33, +0.0284868068179494,0.0284868068179494,0.0285184043068398,0.0285150715945499,0.0284858253058913,0.0284420748457268,0.0283957901126405,0.028357846609422,0.028336585548173,0.028336585548173, +0.0284868068179494,0.0284868068179494,0.0285184043068398,0.0285150715945499,0.0284858253058913,0.0284420748457268,0.0283957901126405,0.028357846609422,0.028336585548173,0.028336585548173, +0.0440171434301014,0.0440171434301014,0.0440522005673931,0.0440397540197437,0.0439922595781996,0.0439255386091044,0.0438562973442974,0.0437999043905652,0.0437683583810673,0.0437683583810673, +0.0789528571644005,0.0789528571644005,0.0789905087495683,0.0789550610572876,0.0788660773170207,0.0787485050473393,0.0786288608691292,0.0785319704429905,0.0784777826442321,0.0784777826442321, +0.140233998356963,0.140233998356963,0.140264732045874,0.14018350642682,0.140021008235591,0.139816369174687,0.139611237172332,0.139445434389656,0.139352382443673,0.139352382443673, +0.236001563393026,0.236001563393026,0.236004128463329,0.235843081457565,0.2355649796275,0.235228274353501,0.234894336359633,0.234623374536282,0.234469651564717,0.234469651564717, +0.372647986751049,0.372647986751049,0.372590638759498,0.372304581243943,0.371860746811553,0.371341839321691,0.370830250533897,0.370409348778874,0.370164067837775,0.370164067837775, +0.551351107835996,0.551351107835996,0.551203405056291,0.550735591091423,0.55007215192176,0.549324017402299,0.5485868124849,0.547960677362009,0.547571801541595,0.547571801541595, +0.765420463950563,0.765420463950563,0.76519459073588,0.764456825353153,0.763519888008086,0.762512797934446,0.761515356879894,0.760613917639054,0.759964902904722,0.759964902904722, + +00:20:34, +0.0285583717129082,0.0285583717129082,0.0285900081790404,0.0285866751708212,0.0285573974551455,0.0285135963164474,0.0284672558573576,0.0284292656680014,0.0284079781817567,0.0284079781817567, +0.0285583717129082,0.0285583717129082,0.0285900081790404,0.0285866751708212,0.0285573974551455,0.0285135963164474,0.0284672558573576,0.0284292656680014,0.0284079781817567,0.0284079781817567, +0.0441065884415958,0.0441065884415958,0.0441416731227485,0.0441292200881131,0.0440816915418952,0.0440149191181519,0.0439456221774916,0.0438891828407665,0.0438576106493815,0.0438576106493815, +0.079074217628889,0.079074217628889,0.079111874120304,0.0790764116861459,0.078987395455115,0.0788697786201745,0.0787500872561494,0.0786531578455217,0.0785989481768357,0.0785989481768357, +0.140392684519455,0.140392684519455,0.140423393956249,0.140342152906906,0.140179641299136,0.13997498709152,0.139769839276764,0.139604023706573,0.139510964936749,0.139510964936749, +0.236189372457747,0.236189372457747,0.236191891100623,0.236030850437489,0.235752787299791,0.235416134321305,0.235082249278027,0.234811331680203,0.234657634878302,0.234657634878302, +0.372840764255871,0.372840764255871,0.37278337502219,0.372497382950919,0.372053681853253,0.37153493807838,0.37102351330226,0.370602749013471,0.370357550026464,0.370357550026464, +0.551512566330502,0.551512566330502,0.551364869572047,0.550897222971432,0.550234047191766,0.54948621717227,0.548749315210842,0.548123439859239,0.547734726871449,0.547734726871449, +0.765513212600334,0.765513212600334,0.765287421802381,0.764549962267982,0.763613425037001,0.762606769869612,0.76160976117907,0.760708712701097,0.760059977517595,0.760059977517595, + +00:20:35, +0.028630018836266,0.028630018836266,0.028661694245375,0.0286583609500819,0.0286290518498117,0.0285852000946116,0.028538803974909,0.02850076715279,0.0284794532713024,0.0284794532713024, +0.028630018836266,0.028630018836266,0.028661694245375,0.0286583609500819,0.0286290518498117,0.0285852000946116,0.028538803974909,0.02850076715279,0.0284794532713024,0.0284794532713024, +0.0441960978670978,0.0441960978670978,0.044231210053728,0.0442187505520167,0.0441711879682749,0.0441043641859456,0.0440350116709661,0.0439785260346184,0.0439469277080072,0.0439469277080072, +0.0791956026794646,0.0791956026794646,0.0792332640474979,0.0791977869149374,0.0791087382997394,0.0789910770470908,0.0788713386529062,0.0787743703859234,0.0787201389191181,0.0787201389191181, +0.140551332554854,0.140551332554854,0.140582017748675,0.140500761341014,0.140338236451459,0.140133567277128,0.139928403839321,0.139762575637387,0.139669510130741,0.139669510130741, +0.236377070102389,0.236377070102389,0.236379542387539,0.236218508144751,0.235940483808489,0.235603883267875,0.23527005132637,0.234999178077746,0.234845507513153,0.234845507513153, +0.373033374866252,0.373033374866252,0.372975944496389,0.372690017887672,0.372246450114203,0.371727870049863,0.371216609289071,0.370795982466024,0.370550865426304,0.370550865426304, +0.551673853384564,0.551673853384564,0.55152616270649,0.551058683337316,0.55039577072434,0.549648244959068,0.548911645716284,0.548286029926806,0.547897479631788,0.547897479631788, +0.765605851711105,0.765605851711105,0.765380143248506,0.764642989210428,0.76370685163533,0.762700630885996,0.761704054078489,0.760803395923596,0.760154939968695,0.760154939968695, + +00:20:36, +0.0287017481059476,0.0287017481059476,0.0287334624237287,0.0287301288502236,0.0287007884078309,0.0286568860982417,0.028610434383412,0.0285723509819895,0.0285510107350614,0.0285510107350614, +0.0287017481059476,0.0287017481059476,0.0287334624237287,0.0287301288502236,0.0287007884078309,0.0286568860982417,0.028610434383412,0.0285723509819895,0.0285510107350614,0.0285510107350614, +0.0442856716052965,0.0442856716052965,0.0443208112590588,0.0443083453101887,0.0442607487560555,0.0441938737111738,0.0441244657233818,0.0440679338707638,0.0440363094555787,0.0440363094555787, +0.0793170122111312,0.0793170122111312,0.0793546784262814,0.0793191866387704,0.0792301057458477,0.0791124002228017,0.0789926149538533,0.0788956079584361,0.0788413547652018,0.0788413547652018, +0.140709942415206,0.140709942415206,0.140740603375322,0.140659331681208,0.140496793644299,0.140292109682757,0.14008693081072,0.139921090132378,0.139828017975683,0.139828017975683, +0.236564656409818,0.236564656409818,0.236567082406929,0.23640605466201,0.236128069235833,0.235791521274832,0.235457742585611,0.235186913809304,0.235033269549356,0.235033269549356, +0.373225818816937,0.373225818816937,0.373168347416649,0.372882486288604,0.372439051828539,0.371920635469854,0.37140953872756,0.370989049369364,0.370744014269917,0.370744014269917, +0.551834969303274,0.551834969303274,0.551687284764532,0.551219972494143,0.550557322824762,0.549810101068112,0.549073804306728,0.548448447870303,0.548060060128307,0.548060060128307, +0.765698381500324,0.765698381500324,0.765472755291851,0.764735906398766,0.763800168022184,0.762794381203537,0.761798235798877,0.760897967528017,0.760249790480057,0.760249790480057, + +00:20:37, +0.0287735594397904,0.0287735594397904,0.0288053126318987,0.0288019787890505,0.0287726070470558,0.0287286542452713,0.0286821470008949,0.028644017073712,0.0286226504911952,0.0286226504911952, +0.0287735594397904,0.0287735594397904,0.0288053126318987,0.0288019787890505,0.0287726070470558,0.0287286542452713,0.0286821470008949,0.028644017073712,0.0286226504911952,0.0286226504911952, +0.0443753095549533,0.0443753095549533,0.0444104766375408,0.0443980042614355,0.0443503738040262,0.0442834475925968,0.0442139842334714,0.0441574062479162,0.0441257557908009,0.0441257557908009, +0.0794384461191724,0.0794384461191724,0.0794761171520652,0.0794406107530327,0.0793514976886728,0.0792337480423003,0.0791139160537241,0.0790168704575802,0.0789625956094886,0.0789625956094886, +0.140868514052893,0.140868514052893,0.140899150788698,0.140817863879894,0.140655312829731,0.140450614259998,0.140245420142022,0.140079567142168,0.139986488421952,0.139986488421952, +0.236752131462995,0.236752131462995,0.236754511241738,0.236593490072019,0.236315543664155,0.235979048423896,0.235645323136803,0.235374538955375,0.2352209210671,0.2352209210671, +0.373418096342295,0.373418096342295,0.373360584017147,0.373074788387743,0.372631487230023,0.372113234571694,0.371602301850586,0.371181949955952,0.370936996789556,0.370936996789556, +0.551995914390997,0.551995914390997,0.551848236050356,0.55138109074625,0.550718703797586,0.549971785804099,0.549235791286955,0.548610693994602,0.548222468665976,0.548222468665976, +0.765790802184846,0.765790802184846,0.765565258149418,0.764828714050676,0.763893374416074,0.762888021041576,0.761892306560363,0.760992427735221,0.760344529273113,0.760344529273113, + +00:20:38, +0.0288454527555442,0.0288454527555442,0.0288772447875959,0.0288739106842798,0.0288445076852525,0.0288005044535466,0.0287539417452977,0.0287157653459808,0.028694372457776,0.028694372457776, +0.0288454527555442,0.0288454527555442,0.0288772447875959,0.0288739106842798,0.0288445076852525,0.0288005044535466,0.0287539417452977,0.0287157653459808,0.028694372457776,0.028694372457776, +0.0444650116149027,0.0444650116149027,0.0445002060880467,0.0444877273046364,0.0444400630110483,0.0443730857290465,0.0443035671000388,0.0442469430648605,0.0442152666124498,0.0442152666124498, +0.0795599042991512,0.0795599042991512,0.0795975801205389,0.0795620591533903,0.0794729140237267,0.0793551204008583,0.0792352418475308,0.0791381577781547,0.0790838613466595,0.0790838613466595, +0.141027047420637,0.141027047420637,0.14105765994165,0.140976357889812,0.140813793960168,0.140609080960775,0.140403871784624,0.140238006617717,0.140144921420265,0.140144921420265, +0.236939495344975,0.236939495344975,0.236941828975005,0.236780814457625,0.23650290717588,0.236166464796883,0.235832793061093,0.235562053596555,0.235408462146676,0.235408462146676, +0.373610207676318,0.373610207676318,0.373552654531682,0.37326692441874,0.372823756552044,0.372305667588352,0.371794898890636,0.371374684457884,0.371129813217109,0.371129813217109, +0.552156688951375,0.552156688951375,0.552009016867426,0.551542038397254,0.550879913946642,0.550133299470999,0.549397606961019,0.548772768603851,0.548384705549045,0.548384705549045, +0.765883113980933,0.765883113980933,0.765657652037622,0.764921412383245,0.763986471034918,0.762981550618855,0.761986266582474,0.761086776765471,0.760439156568696,0.760439156568696, + +00:20:39, +0.028917427970873,0.028917427970873,0.0289492588084448,0.028945924453543,0.0289164902401003,0.0288724366408266,0.0288258185344727,0.0287875957167309,0.0287661765527874,0.0287661765527874, +0.028917427970873,0.028917427970873,0.0289492588084448,0.028945924453543,0.0289164902401003,0.0288724366408266,0.0288258185344727,0.0287875957167309,0.0287661765527874,0.0287661765527874, +0.0445547776840519,0.0445547776840519,0.0445899995095223,0.0445775143387435,0.0445298162760562,0.0444627880194276,0.04439321422196,0.044336544220453,0.0443048418193723,0.0443048418193723, +0.0796813866469088,0.0796813866469088,0.0797190672276699,0.0796835317357874,0.0795943546467988,0.0794765171940256,0.0793565922305638,0.0792594698152372,0.0792051518716736,0.0792051518716736, +0.141185542471494,0.141185542471494,0.141216130787356,0.141134813664037,0.140972236988359,0.140767509737353,0.140562285690263,0.140396408510327,0.140303316921679,0.140303316921679, +0.237126748138904,0.237126748138904,0.23712903568986,0.236968027901768,0.236690159853531,0.236353770475705,0.236020152439731,0.235749457813541,0.235595892868474,0.235595892868474, +0.373802153052624,0.373802153052624,0.373744559193679,0.373458894614872,0.373015860027614,0.372497934752425,0.371987330079831,0.371567253106887,0.371322463784098,0.371322463784098, +0.552317293287327,0.552317293287327,0.552169627518481,0.551702815750051,0.55104095357504,0.550294642372066,0.549559251632258,0.548934672001482,0.548546771081046,0.548546771081046, +0.765975317104263,0.765975317104263,0.765749937172283,0.765014001612969,0.764079458096039,0.763074970153523,0.762080116084143,0.761181014838433,0.760533672587037,0.760533672587037, + +00:20:40, +0.0289894850033548,0.0289894850033548,0.029021354611985,0.0290180200143861,0.0289885546291932,0.0289444507247844,0.0288977772861852,0.0288595081038098,0.0288380626941251,0.0288380626941251, +0.0289894850033548,0.0289894850033548,0.029021354611985,0.0290180200143861,0.0289885546291932,0.0289444507247844,0.0288977772861852,0.0288595081038098,0.0288380626941251,0.0288380626941251, +0.0446446076613815,0.0446446076613815,0.0446798568009865,0.0446673652627821,0.0446196334980569,0.044552554362717,0.0444829254981827,0.0444262096136214,0.044394481310487,0.044394481310487, +0.0798028930585641,0.0798028930585641,0.0798405783697032,0.0798050283964452,0.0797158194539561,0.0795979383176292,0.079477967098391,0.0793808064641826,0.0793264670797678,0.0793264670797678, +0.141343999158854,0.141343999158854,0.141374563279329,0.141293231155977,0.141130641867385,0.140925900542329,0.140720661811012,0.140554772771634,0.140461674877588,0.140461674877588, +0.237313889928021,0.237313889928021,0.237316131469525,0.237155130487478,0.236877301779719,0.236540965542369,0.236207401354059,0.235936751687128,0.235783213312987,0.235783213312987, +0.373993932704453,0.373993932704453,0.373936298236189,0.373650699209041,0.373207797889375,0.372690036296138,0.372179595649921,0.371759656134321,0.371514948721677,0.371514948721677, +0.552477727701055,0.552477727701055,0.552330068305543,0.551863423106814,0.551201822985171,0.550455814809831,0.549720725603291,0.549096404490207,0.548708665564793,0.548708665564793, +0.766067411769922,0.766067411769922,0.76584211376864,0.765106481955754,0.764172335816171,0.763168279863134,0.762173855283709,0.761275142173176,0.760628077547771,0.760628077547771, + +00:20:41, +0.0290616237704829,0.0290616237704829,0.0290935321156714,0.0290901972842708,0.0290607007700401,0.0290165466230073,0.0289698179181147,0.0289315024249783,0.028910030799598,0.028910030799598, +0.0290616237704829,0.0290616237704829,0.0290935321156714,0.0290901972842708,0.0290607007700401,0.0290165466230073,0.0289698179181147,0.0289315024249783,0.028910030799598,0.028910030799598, +0.0447345014459452,0.0447345014459452,0.0447697778615318,0.0447572799758509,0.0447095145761306,0.0446423846579642,0.0445727008277271,0.0445159391433655,0.0444841849847838,0.0444841849847838, +0.0799244234305132,0.0799244234305132,0.07996211344316,0.0799265490318613,0.0798373083415418,0.0797193836677731,0.0795993663468572,0.0795021676206231,0.0794478068664561,0.0794478068664561, +0.14150241743644,0.14150241743644,0.141532957371416,0.141451610319375,0.141289008550663,0.141084253328634,0.140879000099278,0.140713099353613,0.140619995239726,0.140619995239726, +0.237500920795656,0.237500920795656,0.237503116397309,0.237342122297876,0.237064333037151,0.236728050078974,0.236394539885519,0.236123935298212,0.235970423560805,0.235970423560805, +0.374185546864673,0.374185546864673,0.374127871891886,0.373842338433773,0.373399570369594,0.372881972451346,0.372371695832288,0.37195189377118,0.371707268260636,0.371707268260636, +0.552637992494042,0.552637992494042,0.552490339529918,0.552023860769003,0.551362522478706,0.550616817086113,0.549882029176023,0.549257966372027,0.548870389302387,0.548870389302387, +0.766159398192416,0.766159398192416,0.765934182041342,0.765198853626922,0.764265104411459,0.763261479964655,0.762267484398916,0.761369158988174,0.76072237166994,0.76072237166994, + +00:20:42, +0.0291338441896664,0.0291338441896664,0.0291657912368751,0.0291624561805746,0.0291329285800659,0.029088724252998,0.029041940347855,0.0290035785979113,0.0289820807869285,0.0289820807869285, +0.0291338441896664,0.0291338441896664,0.0291657912368751,0.0291624561805746,0.0291329285800659,0.029088724252998,0.029041940347855,0.0290035785979113,0.0289820807869285,0.0289820807869285, +0.0448244589368708,0.0448244589368708,0.0448597625903243,0.0448472583771222,0.0447994594094307,0.0447322788042918,0.0446625401096857,0.044605732708757,0.0445739527413245,0.0445739527413245, +0.0800459776594286,0.0800459776594286,0.080083672344838,0.0800480935388094,0.0799588212061753,0.0798408531408372,0.0797207898720832,0.0796235531804667,0.0795691711275284,0.0795691711275284, +0.141660797258307,0.141660797258307,0.141691313017792,0.1416099511083,0.141447336991939,0.141242568049535,0.141037300507804,0.140871388208573,0.140778277960157,0.140778277960157, +0.237687840825224,0.237687840825224,0.237689990556615,0.237529003416172,0.23725125370862,0.236915024167714,0.236581568115645,0.23631100872778,0.236157523692615,0.236157523692615, +0.374376995765775,0.374376995765775,0.374319280393071,0.374033812521223,0.373591177700166,0.373073743449535,0.372563630857946,0.372143966248092,0.371899422631402,0.371899422631402, +0.552798087967056,0.552798087967056,0.552650441492197,0.552184129037362,0.551523052356606,0.550777649502015,0.550043162651643,0.549419357948226,0.549031942595215,0.549031942595215, +0.766251276585666,0.766251276585666,0.766026142204458,0.765291116841207,0.76435776409746,0.763354570674462,0.76236100364692,0.761463065501313,0.76081655517199,0.76081655517199, + +00:20:43, +0.029206146178231,0.029206146178231,0.029238131892884,0.0292347966205922,0.029205237976612,0.0291609835321752,0.0291141444929151,0.0290757365401982,0.0290542125737534,0.0290542125737534, +0.029206146178231,0.029206146178231,0.029238131892884,0.0292347966205922,0.029205237976612,0.0291609835321752,0.0291141444929151,0.0290757365401982,0.0290542125737534,0.0290542125737534, +0.0449144800333593,0.0449144800333593,0.044949810886604,0.0449373003658419,0.0448894678971843,0.0448222367008954,0.0447524432432238,0.0446955902089398,0.0446637844792429,0.0446637844792429, +0.0801675556422582,0.0801675556422582,0.0802052549718097,0.0801696618143381,0.0800803579447509,0.0799623466334766,0.0798422375704654,0.0797449630398974,0.0796905597590504,0.0796905597590504, +0.14181913857884,0.14181913857884,0.141849630172963,0.141768253477154,0.141605627145289,0.141400844658625,0.141195562989663,0.141029639289154,0.140936522991282,0.140936522991282, +0.237874650100234,0.237874650100234,0.237876754030928,0.237715773925663,0.237438063877011,0.237101887890872,0.236768486126068,0.23649797205692,0.236344513789203,0.236344513789203, +0.37456827963988,0.37456827963988,0.374510523971672,0.374225121703172,0.373782620112615,0.37326534952182,0.372755400957544,0.372335873795321,0.372091412064034,0.372091412064034, +0.552958014420154,0.552958014420154,0.552810374492259,0.552344228211923,0.551683412919116,0.550938312357926,0.550204126330632,0.549580579519382,0.549193325743955,0.549193325743955, +0.766343047163014,0.766343047163014,0.766117994471475,0.765383271812762,0.764450315089147,0.763447552208344,0.762454413244291,0.761556861929886,0.760910628271779,0.760910628271779, + +00:20:44, +0.0292785296534197,0.0292785296534197,0.029310554000904,0.0293072185215359,0.0292776288769369,0.0292333243778743,0.0291864302707205,0.029147976169344,0.0291264260776246,0.0291264260776246, +0.0292785296534197,0.0292785296534197,0.029310554000904,0.0293072185215359,0.0292776288769369,0.0292333243778743,0.0291864302707205,0.029147976169344,0.0291264260776246,0.0291264260776246, +0.0450045646346862,0.0450045646346862,0.0450399226496848,0.0450274058413299,0.0449795399386919,0.0449122582470439,0.0448424101275793,0.0447855115431302,0.044753680097745,0.044753680097745, +0.0802891572762252,0.0802891572762252,0.0803268612214224,0.0802912537557705,0.0802019184544375,0.0800838640426211,0.0799637093386749,0.0798663970953737,0.0798119726573629,0.0798119726573629, +0.141977441352751,0.141977441352751,0.142007908791762,0.141926517380667,0.14176387896512,0.141559083109832,0.14135378749826,0.141187852548331,0.141094730285835,0.141094730285835, +0.238061348704279,0.238061348704279,0.238063406903824,0.237902433909737,0.237624763625299,0.237288641330824,0.236955293998508,0.236684825366813,0.236531393931448,0.236531393931448, +0.374759398718732,0.374759398718732,0.374701602859245,0.374416266211029,0.373973897838095,0.373456790898947,0.372947006361361,0.372527616642765,0.37228323678823,0.37228323678823, +0.553117772152681,0.553117772152681,0.552970138829271,0.552504158592006,0.551843604465773,0.551098805953528,0.550364920512761,0.549741631385362,0.549354539048577,0.549354539048577, +0.766434710137222,0.766434710137222,0.766209739055303,0.76547531875516,0.764542757600911,0.763540424781508,0.762547713407009,0.761650548490601,0.761004591186574,0.761004591186574, + +00:20:45, +0.0293509945323934,0.0293509945323934,0.029383057478059,0.0293797218005363,0.0293501011982172,0.029305746707348,0.0292587975986129,0.0292202974027701,0.02919872121601,0.02919872121601, +0.0293509945323934,0.0293509945323934,0.029383057478059,0.0293797218005363,0.0293501011982172,0.029305746707348,0.0292587975986129,0.0292202974027701,0.02919872121601,0.02919872121601, +0.0450947126402009,0.0450947126402009,0.0451300977789552,0.0451175747029804,0.0450696754333281,0.0450023433420798,0.0449324406620634,0.0448754966106173,0.0448436394961092,0.0448436394961092, +0.0804107824588269,0.0804107824588269,0.0804484909912975,0.0804128692607034,0.080323502632678,0.0802054052654745,0.0800852050736571,0.0799878552436286,0.0799334097190808,0.0799334097190808, +0.142135705535083,0.142135705535083,0.142166148829349,0.142084742773894,0.141922092406163,0.141717283357408,0.141511973987331,0.141346027939408,0.14125289979688,0.14125289979688, +0.238247936721038,0.238247936721038,0.238249949258965,0.238088983451863,0.237811353036543,0.237475284570035,0.23714199181478,0.236871568738731,0.236718164200325,0.236718164200325, +0.374950353233706,0.374950353233706,0.374892517286972,0.374607246275831,0.374165011107388,0.373648067811294,0.373138447299312,0.372719195019958,0.372474897033325,0.372474897033325, +0.553277361463273,0.553277361463273,0.553129734801695,0.552663920476225,0.552003627295403,0.551259130587796,0.550525545497093,0.549902513845329,0.549515582808344,0.549515582808344, +0.766526265720478,0.766526265720478,0.766301376168274,0.765567257881394,0.764635091846562,0.763633188608577,0.762640904350473,0.76174412539958,0.761098444133057,0.761098444133057, + +00:20:46, +0.029423540732232,0.029423540732232,0.0294556422413921,0.0294523063746429,0.0294226548575484,0.0293782504377672,0.0293312463938518,0.0292927001578143,0.0292710979062939,0.0292710979062939, +0.029423540732232,0.029423540732232,0.0294556422413921,0.0294523063746429,0.0294226548575484,0.0293782504377672,0.0293312463938518,0.0292927001578143,0.0292710979062939,0.0292710979062939, +0.0451849239493274,0.0451849239493274,0.0452203361738777,0.0452078068502617,0.0451598742805416,0.0450924918854191,0.0450225347460604,0.044965545310763,0.0449336625736865,0.0449336625736865, +0.0805324310878345,0.0805324310878345,0.0805701441793293,0.0805345082270069,0.080445110377188,0.080326970199514,0.0802067246726307,0.0801093373816685,0.0800548708410924,0.0800548708410924, +0.142293931081202,0.142293931081202,0.14232435024121,0.142242929612215,0.142080267423479,0.141875445355936,0.141670122410936,0.14150416541602,0.14141103147781,0.14141103147781, +0.238434414234277,0.238434414234277,0.238436381180094,0.238275422635599,0.237997832193892,0.237661817691056,0.237328579656788,0.237058202254043,0.236904824676904,0.236904824676904, +0.375141143415802,0.375141143415802,0.375083267485665,0.374798062128245,0.374355960150905,0.373839180488872,0.373329724000947,0.37291060915607,0.37266639302829,0.37266639302829, +0.553436782649862,0.553436782649862,0.553289162707286,0.552823514162486,0.552163481706128,0.551419286558996,0.550686001581988,0.550063227197739,0.549676457321817,0.549676457321817, +0.766617714124394,0.766617714124394,0.766392906022143,0.765659089403883,0.764727318039331,0.763725843903595,0.762733986289499,0.76183759287236,0.761192187327324,0.761192187327324, + +00:20:47, +0.0294961681699345,0.0294961681699345,0.0295283082078663,0.0295249721608251,0.0294952897719452,0.0294508354862217,0.0294037765736148,0.0293651843517324,0.0293435560657779,0.0293435560657779, +0.0294961681699345,0.0294961681699345,0.0295283082078663,0.0295249721608251,0.0294952897719452,0.0294508354862217,0.0294037765736148,0.0293651843517324,0.0293435560657779,0.0293435560657779, +0.0452751984615641,0.0452751984615641,0.0453106377339898,0.045298102182717,0.0452501363798554,0.045182703776552,0.045112692279028,0.0450556575430022,0.0450237492299009,0.0450237492299009, +0.080654103061292,0.080654103061292,0.0806918206836848,0.0806561705528233,0.080566741585956,0.0804485587424893,0.0803282680330871,0.0802308434067728,0.0801763559205594,0.0801763559205594, +0.142452117946799,0.142452117946799,0.142482512983155,0.142401077851337,0.14223840397245,0.142033569060321,0.141828232723468,0.141662264932126,0.141569125282348,0.141569125282348, +0.238620781327846,0.238620781327846,0.238622702751042,0.238461751544587,0.238184201180577,0.237848240776529,0.237515057606526,0.237244725994206,0.237091375442345,0.237091375442345, +0.375331769495652,0.375331769495652,0.375273853685763,0.374988713998565,0.37454674519869,0.374030129161324,0.37352083669545,0.37310185927991,0.372857725001736,0.372857725001736, +0.553596036009674,0.553596036009674,0.553448422843093,0.552982939947992,0.552323167995365,0.551579274164695,0.550846289065104,0.55022377174035,0.549837162886855,0.549837162886855, +0.766709055560011,0.766709055560011,0.766484328828098,0.765750813534468,0.764819436391874,0.763818390880026,0.762826959438324,0.761930951123901,0.761285820984891,0.761285820984891, + +00:20:48, +0.0295688767624202,0.0295688767624202,0.0296010552943649,0.0295977190759729,0.0295680058583424,0.0295235017697207,0.0294763880549984,0.0294377499016985,0.0294160956116818,0.0294160956116818, +0.0295688767624202,0.0295688767624202,0.0296010552943649,0.0295977190759729,0.0295680058583424,0.0295235017697207,0.0294763880549984,0.0294377499016985,0.0294160956116818,0.0294160956116818, +0.0453655360764844,0.0453655360764844,0.0454010023589038,0.0453884605999639,0.0453404616308668,0.0452729789150426,0.0452029131604978,0.0451458332068432,0.0451138993642492,0.0451138993642492, +0.0807757982775155,0.0807757982775155,0.080813520402803,0.0807778561365667,0.0806883961572421,0.0805701707924219,0.0804498350527899,0.0803523732164929,0.0802978648549152,0.0802978648549152, +0.142610266087889,0.142610266087889,0.142640637011316,0.142559187447286,0.142396502008783,0.142191654425795,0.14198630487964,0.141820326442017,0.141727181164544,0.141727181164544, +0.238807038085678,0.238807038085678,0.238808914055721,0.238647970262551,0.238370460079917,0.238034553909181,0.237701425746077,0.237431140040769,0.237277816577901,0.237277816577901, +0.375522231703515,0.375522231703515,0.375464276117337,0.375179202116717,0.374737366480418,0.374220914057925,0.37371178561164,0.373292945619923,0.373048893181909,0.373048893181909, +0.553755121839233,0.553755121839233,0.553607515505468,0.553142198129245,0.552482686459832,0.551739093701755,0.551006408243396,0.550384147770217,0.549997699800617,0.549997699800617, +0.766800290237798,0.766800290237798,0.76657564479675,0.765842430484419,0.764911447116271,0.763910829750759,0.762919824010608,0.762024200368578,0.76137934532069,0.76137934532069, + +00:20:49, +0.0296416664265294,0.0296416664265294,0.0296738834176924,0.0296705470368972,0.0296408030335959,0.0295962492051939,0.0295490807550188,0.0295103967248056,0.0294887164611439,0.0294887164611439, +0.0296416664265294,0.0296416664265294,0.0296738834176924,0.0296705470368972,0.0296408030335959,0.0295962492051939,0.0295490807550188,0.0295103967248056,0.0294887164611439,0.0294887164611439, +0.0454559366937365,0.0454559366937365,0.0454914299483068,0.0454788820016951,0.045430849933248,0.0453633172005293,0.0452931972900751,0.0452360722018676,0.0452041128763015,0.0452041128763015, +0.0808975166350931,0.0808975166350931,0.0809352432353938,0.0808995648769223,0.0808100739895775,0.0806918062476049,0.0805714256297742,0.0804739267086519,0.0804193975418651,0.0804193975418651, +0.142768375460809,0.142768375460809,0.142798722282145,0.142717258356411,0.142554561488506,0.142349701407911,0.142144338834493,0.141978349900304,0.141885199078772,0.141885199078772, +0.238993184591788,0.238993184591788,0.238995015178126,0.238834078873297,0.238556608975311,0.238220757171825,0.237887684157612,0.237617444475372,0.237464148164915,0.237464148164915, +0.37571253026928,0.37571253026928,0.375654535010085,0.375369526712257,0.374927824225393,0.374411535407586,0.373902570977973,0.37348386840419,0.373239897796699,0.373239897796699, +0.553914040434364,0.553914040434364,0.55376644099006,0.553301289002045,0.552642037395543,0.55189874546634,0.551166359413124,0.5505443555837,0.550158068359564,0.550158068359564, +0.766891418367657,0.766891418367657,0.766666854138146,0.765933940464438,0.76500335042403,0.76400316072811,0.763012580219433,0.762117340820195,0.761472760549078,0.761472760549078, + +00:20:50, +0.0297145370790239,0.0297145370790239,0.0297467924945755,0.029743455960331,0.0297136812144828,0.0296690777094917,0.0296218545906124,0.0295831247380665,0.029561418531222,0.029561418531222, +0.0297145370790239,0.0297145370790239,0.0297467924945755,0.029743455960331,0.0297136812144828,0.0296690777094917,0.0296218545906124,0.0295831247380665,0.029561418531222,0.029561418531222, +0.0455464002130439,0.0455464002130439,0.0455819204019614,0.0455693662876785,0.045521301186746,0.045453718532725,0.0453835445674392,0.0453263744277308,0.0452943896657014,0.0452943896657014, +0.0810192580328834,0.0810192580328834,0.081056989080438,0.0810212966728455,0.0809317749817639,0.0808134650066017,0.0806930396623457,0.0805955037813438,0.0805409538793853,0.0805409538793853, +0.142926446022216,0.142926446022216,0.142956768752417,0.142875290535382,0.142712582367969,0.142507709962547,0.14230233454339,0.142136335261926,0.142043178979733,0.142043178979733, +0.239179220930274,0.239179220930274,0.239181006202332,0.239020077460713,0.238742647950245,0.238406850647357,0.238073832923389,0.237803639379742,0.237650370284822,0.237650370284822, +0.375902665422468,0.375902665422468,0.37584463059334,0.375559688014372,0.375118118662556,0.374601993438851,0.374093193022542,0.373674627860435,0.373430739073631,0.373430739073631, +0.554072792090194,0.554072792090194,0.553925199591822,0.553460212861498,0.552801221097817,0.552058229753919,0.55132614286985,0.550704395476462,0.550318268859463,0.550318268859463, +0.766982440158924,0.766982440158924,0.766757957061764,0.766025343684655,0.765095146526088,0.764095384023821,0.76310522827731,0.762210372691975,0.761566066883833,0.761566066883833, + +00:20:51, +0.0297874886365876,0.0297874886365876,0.0298197824416632,0.0298164457629298,0.0297866403177027,0.0297419871993865,0.0296947094786366,0.0296559338584145,0.0296342017388941,0.0296342017388941, +0.0297874886365876,0.0297874886365876,0.0298197824416632,0.0298164457629298,0.0297866403177027,0.0297419871993865,0.0296947094786366,0.0296559338584145,0.0296342017388941,0.0296342017388941, +0.0456369265342055,0.0456369265342055,0.0456724736197055,0.0456599133577571,0.0456118152911828,0.0455441828114174,0.0454739548923438,0.045416739784162,0.0453847296321661,0.0453847296321661, +0.0811410223700157,0.0811410223700157,0.0811787578371859,0.0811430514235617,0.0810534990328727,0.0809351469682458,0.0808146770490803,0.0807171043329325,0.0806625337657221,0.0806625337657221, +0.143084477729088,0.143084477729088,0.143114776379224,0.143033283941185,0.142870564603841,0.142665680045898,0.142460291962013,0.142294282482142,0.142201120822448,0.142201120822448, +0.239365147185311,0.239365147185311,0.239366887212493,0.239205966108769,0.238928577088283,0.23859283441876,0.238259872125751,0.237989724835693,0.237836483019142,0.237836483019142, +0.376092637392229,0.376092637392229,0.376034563096062,0.37574968625188,0.375308250020476,0.374792288379899,0.374283651973077,0.373865224216017,0.373621417239871,0.373621417239871, +0.554231377101154,0.554231377101154,0.554083791605013,0.553618970002011,0.552960237861278,0.552217546859265,0.551485758908443,0.550864267743472,0.550478301595388,0.550478301595388, +0.76707335582037,0.76707335582037,0.766848953776518,0.766116640354635,0.765186835632817,0.764187499849065,0.763197768396176,0.762303296196573,0.76165926453816,0.76165926453816, + +00:20:52, +0.0298605210158275,0.0298605210158275,0.0298928531755279,0.0298895163612724,0.0298596802598782,0.0298149775915729,0.0297676453358708,0.0297288240027041,0.0297070660010589,0.0297070660010589, +0.0298605210158275,0.0298605210158275,0.0298928531755279,0.0298895163612724,0.0298596802598782,0.0298149775915729,0.0297676453358708,0.0297288240027041,0.0297070660010589,0.0297070660010589, +0.0457275155570955,0.0457275155570955,0.0457630895014525,0.0457505231118496,0.0457023921464558,0.045634709936469,0.0455644281646169,0.0455071681709643,0.0454751326754866,0.0454751326754866, +0.0812628095458885,0.0812628095458885,0.0813005494051572,0.0812648290285652,0.0811752460422444,0.0810568520316398,0.0809363376888233,0.0808387282620518,0.0807841370993916,0.0807841370993916, +0.143242470538719,0.143242470538719,0.143272745119974,0.143191238531127,0.143028508153109,0.14282361161448,0.142618211046369,0.142452191516533,0.142359024562263,0.142359024562263, +0.239550963441158,0.239550963441158,0.239552658292845,0.239391744901511,0.239114396473071,0.238778708569096,0.238445801847127,0.238175700925127,0.238022486449484,0.238022486449484, +0.376282446407346,0.376282446407346,0.376224332746845,0.375939521653233,0.375498218527359,0.374982420458545,0.374473948056945,0.374055657697938,0.373811932522229,0.373811932522229, +0.554389795760982,0.554389795760982,0.554242217323196,0.5537775607173,0.553119087979855,0.552376697076456,0.551645207823078,0.55102397267901,0.55063816686172,0.55063816686172, +0.767164165560204,0.767164165560204,0.76693984449076,0.76620783068338,0.765278417954017,0.764279508414445,0.763290200787399,0.76239611154607,0.761752353724691,0.761752353724691, + +00:20:53, +0.0299336341332744,0.0299336341332744,0.0299660046126661,0.0299626676718618,0.0299328009575552,0.0298880488026684,0.0298406620790164,0.0298017950877117,0.0297800112345369,0.0297800112345369, +0.0299336341332744,0.0299336341332744,0.0299660046126661,0.0299626676718618,0.0299328009575552,0.0298880488026684,0.0298406620790164,0.0298017950877117,0.0297800112345369,0.0297800112345369, +0.0458181671816643,0.0458181671816643,0.0458537679471919,0.0458411954499503,0.0457930316525376,0.0457252998078174,0.0456549642841612,0.0455976594880154,0.045565598695528,0.045565598695528, +0.0813846194601694,0.0813846194601694,0.08142236368414,0.0813866293876185,0.0812970159094879,0.0811785800961551,0.0810580214806886,0.0809603754676042,0.0809057637791784,0.0809057637791784, +0.14340042440872,0.14340042440872,0.143430674932394,0.143349154262827,0.143186412973074,0.142981504625126,0.14277609175278,0.142610062321,0.142516890154842,0.142516890154842, +0.23973666978215,0.23973666978215,0.2397383195277,0.239577413923066,0.239300106188334,0.238964473181511,0.238631622170029,0.238361567730032,0.238208380657545,0.238208380657545, +0.376472092696233,0.376472092696233,0.376413939773914,0.376129194446514,0.375688024411044,0.375172389902239,0.374664081501151,0.374245928532837,0.374002285147152,0.374002285147152, +0.554548048362724,0.554548048362724,0.554400477039246,0.553935985300389,0.553277771746787,0.552535680698882,0.551804489907243,0.551183510576664,0.550797864952153,0.550797864952153, +0.767254869586076,0.767254869586076,0.767030629412279,0.766298914879326,0.765369893698928,0.76437140993,0.763382525661781,0.762488818951978,0.761845334655488,0.761845334655488, + +00:20:54, +0.0300068279053833,0.0300068279053833,0.0300392366694989,0.0300358996111252,0.0300060023272044,0.0299612007492148,0.0299137596246984,0.0298748470301361,0.0298530373560707,0.0298530373560707, +0.0300068279053833,0.0300068279053833,0.0300392366694989,0.0300358996111252,0.0300060023272044,0.0299612007492148,0.0299137596246984,0.0298748470301361,0.0298530373560707,0.0298530373560707, +0.0459088813079377,0.0459088813079377,0.0459445088569888,0.0459319302721294,0.0458837337094768,0.0458159523254752,0.0457455631509541,0.0456882136352671,0.0456561275922294,0.0456561275922294, +0.0815064520127941,0.0815064520127941,0.0815442005741903,0.081508452400752,0.08141880853448,0.0813003310614307,0.0811797283240583,0.0810820458487602,0.0810274137041359,0.0810274137041359, +0.143558339297019,0.143558339297019,0.143588565774523,0.143507031094222,0.143344279021357,0.143139359034986,0.142933934037888,0.142767894851763,0.14267471755617,0.14267471755617, +0.239922266292699,0.239922266292699,0.239923871001448,0.239762973257638,0.239485706317878,0.23915012833923,0.238817333177052,0.238547325332479,0.238394165725106,0.238394165725106, +0.376661576486938,0.376661576486938,0.376603384405128,0.376318704859441,0.375877667899003,0.375362196938069,0.374854052532341,0.374436036946995,0.374192475340731,0.374192475340731, +0.554706135198737,0.554706135198737,0.554558571045347,0.554094244043612,0.553436289454624,0.552694498019245,0.551963605453735,0.551342881729338,0.550957396159693,0.550957396159693, +0.767345468105075,0.767345468105075,0.767121308748309,0.766389893150353,0.765461263076226,0.764463204605205,0.763474743229557,0.762581418625242,0.761938207542045,0.761938207542045, + +00:20:55, +0.0300801022485344,0.0300801022485344,0.0301125492623728,0.0301092120954157,0.0300792842852212,0.0300344333476778,0.0299869378894654,0.0299479797465996,0.0299261442823257,0.0299261442823257, +0.0300801022485344,0.0300801022485344,0.0301125492623728,0.0301092120954157,0.0300792842852212,0.0300344333476778,0.0299869378894654,0.0299479797465996,0.0299261442823257,0.0299261442823257, +0.0459996578360179,0.0459996578360179,0.0460353121309847,0.0460227274785331,0.0459744982173974,0.0459066673895309,0.0458362246650483,0.045778830512746,0.0457467192656046,0.0457467192656046, +0.081628307103966,0.081628307103966,0.0816660599756312,0.081630297968263,0.0815406238173644,0.0814221048273731,0.0813014581185821,0.0812037393049581,0.0811490867735845,0.0811490867735845, +0.143716215161856,0.143716215161856,0.143746417604714,0.14366486898356,0.14350210625589,0.143297174801524,0.143091737858649,0.142925689065358,0.142832506722548,0.142832506722548, +0.240107753057295,0.240107753057295,0.240109312798553,0.239948422989507,0.239671196945583,0.23933567412556,0.239002934950873,0.238732973814624,0.238579841734035,0.238579841734035, +0.376850898007141,0.376850898007141,0.376792666867981,0.376508053119364,0.376067149218346,0.37555184179276,0.375043861376798,0.374625983166336,0.374382503328698,0.374382503328698, +0.55486405656069,0.55486405656069,0.554716499632998,0.554252337238619,0.553594641395228,0.552853149329558,0.55212255475467,0.551502086429249,0.551116760776663,0.551116760776663, +0.767435961323736,0.767435961323736,0.767211882705523,0.766480765703778,0.765552526294027,0.764554892648971,0.763566853700398,0.762673910776243,0.762030972595289,0.762030972595289, + +00:20:56, +0.0301534570790336,0.0301534570790336,0.0301859423075606,0.0301826050410122,0.0301526467479269,0.0301077465144488,0.0300601967897904,0.0300211931536484,0.0299993319298913,0.0299993319298913, +0.0301534570790336,0.0301534570790336,0.0301859423075606,0.0301826050410122,0.0301526467479269,0.0301077465144488,0.0300601967897904,0.0300211931536484,0.0299993319298913,0.0299993319298913, +0.0460904966660835,0.0460904966660835,0.0461261776693974,0.046113586969384,0.0460653250764997,0.0459974449001483,0.0459269487265715,0.0458695100205535,0.0458373736157417,0.0458373736157417, +0.0817501846341554,0.0817501846341554,0.0817879417890524,0.0817521659907153,0.0816624616585512,0.0815439012941554,0.081423210764176,0.081325455735903,0.081270782887112,0.081270782887112, +0.143874051961785,0.143874051961785,0.143904230381634,0.143822667889403,0.143659894634918,0.143454951882519,0.143249503172336,0.143083444918639,0.142990257610594,0.142990257610594, +0.240293130160502,0.240293130160502,0.240294645003559,0.240133763203029,0.239856578155409,0.239521110623886,0.23918842757425,0.238918513258705,0.23876540876628,0.23876540876628, +0.377040057484158,0.377040057484158,0.376981787389598,0.37669723945327,0.376256468595817,0.375741324692674,0.375233508260447,0.374815767416422,0.374572369336428,0.374572369336428, +0.555021812739569,0.555021812739569,0.554874263093012,0.554410265176371,0.553752827859777,0.55301163492115,0.552281338101475,0.55166112496793,0.551275959094699,0.551275959094699, +0.767526349448039,0.767526349448039,0.767302351490043,0.766571532746364,0.765643683559887,0.76464647426965,0.763658857283414,0.762766295614798,0.762123630025582,0.762123630025582, + +00:20:57, +0.0302268923131131,0.0302268923131131,0.0302594157212617,0.0302560783641204,0.0302260896315692,0.0301811401658446,0.030133536242072,0.0300944871677532,0.030072600215281,0.030072600215281, +0.0302268923131131,0.0302268923131131,0.0302594157212617,0.0302560783641204,0.0302260896315692,0.0301811401658446,0.030133536242072,0.0300944871677532,0.030072600215281,0.030072600215281, +0.0461813976983894,0.0461813976983894,0.0462171053725211,0.0462045086449809,0.04615621418706,0.0460882847575669,0.0460177352357266,0.0459602520588659,0.0459280905428038,0.0459280905428038, +0.0818720845040986,0.0818720845040986,0.0819098459153093,0.0818740563689383,0.0817843219587165,0.0816657203622163,0.0815449861610224,0.0814471950415662,0.0813925019445722,0.0813925019445722, +0.144031849655671,0.144031849655671,0.144062004064259,0.143980427770622,0.143817644116998,0.143612690236062,0.143407229936536,0.143241162368772,0.143147970177242,0.143147970177242, +0.240478397686962,0.240478397686962,0.240479867701079,0.240318993982634,0.240041850031391,0.239706437917669,0.239373811130021,0.239103943747043,0.238950866903874,0.238950866903874, +0.377229055144936,0.377229055144936,0.377170746196739,0.376886264087779,0.376445626257796,0.37593064586381,0.375422993408852,0.375005389922462,0.374762073588941,0.374762073588941, +0.555179404025675,0.555179404025675,0.55503186171552,0.554568028147149,0.553910849138765,0.553169955084669,0.552439955784899,0.551819997636235,0.551434991404761,0.551434991404761, +0.767616632683409,0.767616632683409,0.767392715307434,0.766662194484319,0.765734735080807,0.764737949675035,0.763750754187154,0.762858573350161,0.762216180042724,0.762216180042724, + +00:20:58, +0.0303004078669327,0.0303004078669327,0.0303329694196029,0.0303296319808735,0.0302996128523229,0.0302546142181089,0.0302069561626343,0.0301678617053104,0.0301459490549334,0.0301459490549334, +0.0303004078669327,0.0303004078669327,0.0303329694196029,0.0303296319808735,0.0302996128523229,0.0302546142181089,0.0302069561626343,0.0301678617053104,0.0301459490549334,0.0301459490549334, +0.0462723608332671,0.0462723608332671,0.0463080951407269,0.0462954924056994,0.046247165449431,0.0461791868621026,0.0461085840927924,0.0460510565279348,0.0460188699470289,0.0460188699470289, +0.0819940066147976,0.0819940066147976,0.0820317722555224,0.0819959690040262,0.0819062046188012,0.0817875619322602,0.0816667842095692,0.0815689571221844,0.0815142438460845,0.0815142438460845, +0.14418960820269,0.14418960820269,0.144219738611874,0.144138148586398,0.143975354660998,0.143770389820555,0.143564918109146,0.143398841373239,0.14330564437974,0.14330564437974, +0.240663555721388,0.240663555721388,0.240664980975803,0.240504115412827,0.24022701265764,0.239891656090449,0.239559085701103,0.23928926536204,0.239136216228933,0.239136216228933, +0.37741789121606,0.37741789121606,0.377359543515803,0.377075127249147,0.376634622430302,0.376119805531809,0.375612317047217,0.375194850909304,0.374951616310898,0.374951616310898, +0.555336830708628,0.555336830708628,0.555189295789972,0.554725626440553,0.554068705522005,0.553328110110083,0.55259840809501,0.551978704724339,0.551593857997127,0.551593857997127, +0.767706811234725,0.767706811234725,0.767482974362714,0.766752751123299,0.765825681063232,0.764829319072364,0.763842544619612,0.762950744191031,0.762308622855955,0.762308622855955, + +00:20:59, +0.0303740036565795,0.0303740036565795,0.0304066033186393,0.0304032658073327,0.0303732163262906,0.0303281685874125,0.0302804564677284,0.0302413166826422,0.030219378365213,0.030219378365213, +0.0303740036565795,0.0303740036565795,0.0304066033186393,0.0304032658073327,0.0303732163262906,0.0303281685874125,0.0302804564677284,0.0302413166826422,0.030219378365213,0.030219378365213, +0.046363385971125,0.046363385971125,0.0463991468744625,0.0463865381519916,0.046338178764042,0.0462701511141472,0.0461994951981233,0.0461419233280872,0.0461097117287302,0.0461097117287302, +0.0821159508675194,0.0821159508675194,0.0821537207110769,0.082117903797338,0.0820281095400106,0.0819094259052556,0.0817886048105288,0.0816907418782593,0.0816360084920333,0.0816360084920333, +0.144347327562325,0.144347327562325,0.144377433984074,0.144295830296223,0.144133026226092,0.143928050594711,0.143722567648377,0.143556481889833,0.143463280175646,0.143463280175646, +0.240848604348566,0.240848604348566,0.240849984912493,0.240689127578186,0.240412066118337,0.240076765225842,0.239744251370492,0.239474478186175,0.239321456823653,0.239321456823653, +0.377606565923749,0.377606565923749,0.37754817957282,0.377263829163267,0.376823457338988,0.376308803921949,0.375801479400392,0.37538415060144,0.375140997726607,0.375140997726607, +0.555494093077369,0.555494093077369,0.55534656560514,0.554883060345501,0.554226397298633,0.553486100286679,0.552756695321199,0.552137246521738,0.551752559161399,0.551752559161399, +0.767796885306314,0.767796885306314,0.76757312886035,0.766843202868407,0.765916521713057,0.764920582668319,0.763934228788222,0.763042808345545,0.762400958673956,0.762400958673956, + +00:21:00, +0.0304476795980694,0.0304476795980694,0.0304803173343549,0.0304769797594882,0.0304468999695035,0.0304018031898541,0.0303540370735324,0.0303148520159976,0.0302928880624104,0.0302928880624104, +0.0304476795980694,0.0304476795980694,0.0304803173343549,0.0304769797594882,0.0304468999695035,0.0304018031898541,0.0303540370735324,0.0303148520159976,0.0302928880624104,0.0302928880624104, +0.0464544730124485,0.0464544730124485,0.0464902604742529,0.046477645784387,0.0464292540313988,0.0463611774141687,0.0462904684521495,0.0462328523597255,0.046200615788296,0.046200615788296, +0.082237917163795,0.082237917163795,0.0822756911836216,0.0822398606504959,0.0821500366238141,0.0820313121824353,0.0819104478648778,0.0818125492105568,0.0817577957830672,0.0817577957830672, +0.144505007694368,0.144505007694368,0.144535090140759,0.144453472859891,0.144290658771765,0.144085672517551,0.143880178512747,0.143714083876657,0.143620877522834,0.143620877522834, +0.241033543653356,0.241033543653356,0.24103487959598,0.240874030563358,0.240597010497742,0.240261765407539,0.239929308221261,0.239659582302009,0.239506588770308,0.239506588770308, +0.377795079493859,0.377795079493859,0.377736654593459,0.37745237005567,0.377012131209148,0.376497641259148,0.375990480692864,0.375573289223009,0.375330218060019,0.375330218060019, +0.555651191420163,0.555651191420163,0.555503671449118,0.555040330150239,0.554383924757107,0.55364392590307,0.552914817752182,0.552295623317255,0.551911095186506,0.551911095186506, +0.767886855101957,0.767886855101957,0.767663179004262,0.766933549924198,0.766007257235623,0.76501174066903,0.764025806899867,0.763134766021287,0.762493187704851,0.762493187704851, + +00:21:01, +0.0305214356073476,0.0305214356073476,0.030554111382663,0.0305507737532596,0.0305206636979217,0.0304755179414611,0.0304276978961525,0.030388467621553,0.0303664780627436,0.0303664780627436, +0.0305214356073476,0.0305214356073476,0.030554111382663,0.0305507737532596,0.0305206636979217,0.0304755179414611,0.0304276978961525,0.030388467621553,0.0303664780627436,0.0303664780627436, +0.0465456218578003,0.0465456218578003,0.0465814358407003,0.0465688152034917,0.0465203911520844,0.0464522656627119,0.0463815037553776,0.046323843523328,0.0462915820261904,0.0462915820261904, +0.082359905405419,0.082359905405419,0.0823976835750687,0.0823618394653855,0.0822719857719438,0.0821532206652951,0.0820323132738562,0.0819343790201063,0.0818796056200985,0.0818796056200985, +0.144662648558918,0.144662648558918,0.144692707042135,0.144611076237505,0.144448252257807,0.144243255548403,0.144037750661085,0.143871647292124,0.143778436379484,0.143778436379484, +0.241218373720686,0.241218373720686,0.241219665111169,0.241058824453065,0.240781845880184,0.240446656719303,0.240114256336558,0.23984457779218,0.239691612151254,0.239691612151254, +0.377983432151882,0.377983432151882,0.377924968803026,0.377640750151521,0.377200644265713,0.376686317767966,0.376179321148766,0.37576226699779,0.375519277534732,0.375519277534732, +0.555808126024599,0.555808126024599,0.555660613609329,0.555197436142336,0.554541288185211,0.553801587247195,0.553072775676001,0.55245383539904,0.552069466360702,0.552069466360702, +0.76797672082489,0.76797672082489,0.767753124997823,0.767023792494683,0.766097887835723,0.765102793280076,0.764117279160878,0.763226617425289,0.76258531015621,0.76258531015621, + +00:21:02, +0.0305952716002888,0.0305952716002888,0.0306279853794073,0.0306246477044967,0.0305945074274354,0.0305493127581902,0.0305014388516236,0.0304621634154131,0.0304401482823582,0.0304401482823582, +0.0305952716002888,0.0305952716002888,0.0306279853794073,0.0306246477044967,0.0305945074274354,0.0305493127581902,0.0305014388516236,0.0304621634154131,0.0304401482823582,0.0304401482823582, +0.0466368324078203,0.0466368324078203,0.046672672874484,0.0466600463099895,0.0466115900267586,0.0465434157603983,0.0464726010083901,0.0464148967194488,0.0463826103429531,0.0463826103429531, +0.0824819154944491,0.0824819154944491,0.0825196977875926,0.0824838401441546,0.0823939568863943,0.0822751512555937,0.0821542009389669,0.0820562312082004,0.0820014379043025,0.0820014379043025, +0.144820250116376,0.144820250116376,0.144850284648715,0.144768640389473,0.144605806644311,0.144400799646901,0.144195284052525,0.144029172094956,0.143935956704086,0.143935956704086, +0.241403094635556,0.241403094635556,0.241404341543034,0.241243509332096,0.240966572350062,0.240631439244973,0.240299095799607,0.240029464739404,0.239876527048922,0.239876527048922, +0.378171624122949,0.378171624122949,0.378113122426464,0.377828969675627,0.377388996733254,0.376874833672603,0.376368000991872,0.37595108414921,0.375708176373988,0.375708176373988, +0.555964897177593,0.555964897177593,0.555817392372519,0.555354378608687,0.554698487870054,0.553959084606319,0.553230569380026,0.552611883054572,0.552227672971573,0.552227672971573, +0.768066482677807,0.768066482677807,0.767842967043867,0.767113930783322,0.766188413717604,0.76519374070649,0.764208645777034,0.763318362764027,0.762677326235049,0.762677326235049, + +00:21:03, +0.0306691874926986,0.0306691874926986,0.0307019392403621,0.0306986015289801,0.0306684310738652,0.0306231875559279,0.0305752598559097,0.0305359393136111,0.0305138986373285,0.0305138986373285, +0.0306691874926986,0.0306691874926986,0.0307019392403621,0.0306986015289801,0.0306684310738652,0.0306231875559279,0.0305752598559097,0.0305359393136111,0.0305138986373285,0.0305138986373285, +0.046728104563226,0.046728104563226,0.0467639714763612,0.0467513390046414,0.0467028505561584,0.0466346276079259,0.0465637601118464,0.0465060118487181,0.0464737006391997,0.0464737006391997, +0.0826039473332048,0.0826039473332048,0.0826417337236298,0.0826058625892126,0.0825159498694221,0.0823971038553513,0.0822761107619747,0.0821781056763934,0.0821232925371166,0.0821232925371166, +0.144977812327451,0.144977812327451,0.145007822921312,0.144926165276502,0.144763321891677,0.144558304772985,0.14435277864651,0.144186658244181,0.144093438455437,0.144093438455437, +0.241587706483037,0.241587706483037,0.241588908976615,0.241428085285311,0.241151189991848,0.240816113068459,0.240483826693707,0.240214243226472,0.240061333545824,0.240061333545824, +0.378359655631826,0.378359655631826,0.378301115688353,0.378017028852429,0.377577188835981,0.377063189196901,0.376556520445602,0.376139740900341,0.375896914800677,0.375896914800677, +0.556121505165392,0.556121505165392,0.555974008024767,0.555511157835518,0.554855524098077,0.554116418267039,0.553388199150959,0.552769766570661,0.552385715306032,0.552385715306032, +0.76815614086286,0.76815614086286,0.767932705344682,0.767203964993038,0.766278835084968,0.765284583152755,0.764299906953567,0.763410002243431,0.762769236147835,0.762769236147835, + +00:21:04, +0.0307431832003136,0.0307431832003136,0.0307759728812337,0.030772635142422,0.0307424345529628,0.0306971422504915,0.0306491608249051,0.0306097952321098,0.0305877290436577,0.0305877290436577, +0.0307431832003136,0.0307431832003136,0.0307759728812337,0.030772635142422,0.0307424345529628,0.0306971422504915,0.0306491608249051,0.0306097952321098,0.0305877290436577,0.0305877290436577, +0.0468194382248125,0.0468194382248125,0.0468553315471667,0.0468426931882862,0.0467941726410985,0.0467259011060702,0.0466549809664821,0.0465971888118425,0.0465648528156217,0.0465648528156217, +0.0827260008242676,0.0827260008242676,0.0827637912858778,0.0827279067032302,0.0826379646235448,0.0825190783668498,0.0823980426449062,0.0823000023265017,0.0822451694202401,0.0822451694202401, +0.145135335153151,0.145135335153151,0.145165321821041,0.145083650859606,0.144920797960606,0.144715770886897,0.144510234402785,0.144344105699134,0.144250881592642,0.144250881592642, +0.241772209348265,0.241772209348265,0.241773367497024,0.241612552397638,0.241335698890083,0.241000678273744,0.240668449102231,0.24039891333625,0.240246031724545,0.240246031724545, +0.378547526902919,0.378547526902919,0.378488948812914,0.378204927906012,0.377765220797745,0.377251384564343,0.376744879733019,0.3763282374739,0.376085493037337,0.376085493037337, +0.556277950273573,0.556277950273573,0.556130460851482,0.555667774108387,0.555012397155051,0.554273588515281,0.553545665274833,0.552927486233449,0.552543593650331,0.552543593650331, +0.768245695581662,0.768245695581662,0.76802234010202,0.767293895326209,0.766369152140973,0.765375320822811,0.764391062895164,0.763501536068883,0.762861040100485,0.762861040100485, + +00:21:05, +0.0308172586388025,0.0308172586388025,0.0308500862176602,0.0308467484604666,0.030816517780412,0.0307711767576297,0.0307231416744347,0.0306837310868022,0.0306616394172789,0.0306616394172789, +0.0308172586388025,0.0308172586388025,0.0308500862176602,0.0308467484604666,0.030816517780412,0.0307711767576297,0.0307231416744347,0.0306837310868022,0.0306616394172789,0.0306616394172789, +0.0469108332934528,0.0469108332934528,0.0469467529878131,0.0469341087618404,0.0468855561824709,0.0468172361556837,0.0467462634731099,0.0466884275096049,0.0466560667729871,0.0466560667729871, +0.0828480758704797,0.0828480758704797,0.0828858703772946,0.0828499723891381,0.0827600010515403,0.0826410746926314,0.0825199964900485,0.0824219210606024,0.082367068455633,0.082367068455633, +0.145292818554786,0.145292818554786,0.14532278130932,0.145241097100095,0.1450782348121,0.144873197949183,0.1446676512814,0.144501514419452,0.144408286075109,0.144408286075109, +0.241956603316444,0.241956603316444,0.241957717189437,0.241796910754071,0.241520099129376,0.241185134944879,0.240852963108623,0.240583475151679,0.240430621667746,0.240430621667746, +0.378735238160274,0.378735238160274,0.378676622024006,0.378392667060097,0.377953092842038,0.377439419998056,0.37693307907683,0.376516574092253,0.37627391130615,0.37627391130615, +0.556434232787045,0.556434232787045,0.556286751137408,0.555824227712184,0.555169107326082,0.554430595636308,0.553702968037016,0.553085042328416,0.552701308290053,0.552701308290053, +0.768335147035289,0.768335147035289,0.768111871517092,0.767383721984675,0.766459365088236,0.765465953920054,0.764482113805964,0.763592964445217,0.762952738298368,0.762952738298368, + +00:21:06, +0.0308914137237664,0.0308914137237664,0.0309242791652127,0.0309209413986913,0.0308906806718289,0.0308452909930228,0.0307972023202548,0.0307577467935121,0.0307356296740559,0.0307356296740559, +0.0308914137237664,0.0308914137237664,0.0309242791652127,0.0309209413986913,0.0308906806718289,0.0308452909930228,0.0307972023202548,0.0307577467935121,0.0307356296740559,0.0307356296740559, +0.047002289670098,0.047002289670098,0.0470382356992914,0.0470255856262985,0.0469770010812453,0.0469086326576962,0.0468376075326193,0.0467797278428648,0.04674734241214,0.04674734241214, +0.0829701723749434,0.0829701723749434,0.0830079709010983,0.0829720595501271,0.0828820590564464,0.0827630927354985,0.0826419721999489,0.0825438617810327,0.082488989545516,0.082488989545516, +0.145450262493967,0.145450262493967,0.145480201347864,0.145398503959582,0.145235632407461,0.145030585920688,0.144825029242706,0.144658884365077,0.14456565186255,0.14456565186255, +0.242140888472847,0.242140888472847,0.242141958139098,0.241981160439672,0.241704390794404,0.241369483165985,0.2410373687964,0.240767928755775,0.240615103458163,0.240615103458163, +0.378922789627575,0.378922789627575,0.378864135545127,0.378580246538046,0.378140805191992,0.37762729572081,0.377121118699391,0.376704750977411,0.37646216982895,0.37646216982895, +0.556590352990053,0.556590352990053,0.556442879166623,0.555980518931135,0.555325654895608,0.554587439914716,0.553860107722214,0.553242435140377,0.55285885951012,0.55285885951012, +0.768424495424281,0.768424495424281,0.768201299790575,0.767473445169736,0.766549474128833,0.76555648264734,0.764573059889567,0.763684287576726,0.763044330946309,0.763044330946309, + +00:21:07, +0.0309656483707397,0.0309656483707397,0.0309985516393959,0.0309952138726067,0.030964923142763,0.0309194848722843,0.0308713426780534,0.0308318422679948,0.0308096997297835,0.0308096997297835, +0.0309656483707397,0.0309656483707397,0.0309985516393959,0.0309952138726067,0.030964923142763,0.0309194848722843,0.0308713426780534,0.0308318422679948,0.0308096997297835,0.0308096997297835, +0.0470938072557774,0.0470938072557774,0.0471297795826704,0.0471171236827333,0.0470685072384695,0.0470000905131151,0.0469290130459771,0.0468710897125586,0.0468386796340014,0.0468386796340014, +0.0830922902410209,0.0830922902410209,0.0831300927607658,0.0830941680896468,0.0830041385415599,0.0828851323985127,0.0827639696774142,0.0826658243903899,0.0826109325923692,0.0826109325923692, +0.145607666932604,0.145607666932604,0.145637581898686,0.145555871399977,0.14539299070829,0.145187934762559,0.144982368247355,0.144816215496253,0.14472297891498,0.14472297891498, +0.242325064902811,0.242325064902811,0.242326090431316,0.242165301539568,0.241888573969911,0.241553723021255,0.24122166624915,0.240952274231624,0.240799477178605,0.240799477178605, +0.379110181528146,0.379110181528146,0.379051489599416,0.378767666562863,0.378328358070382,0.377815011955019,0.377308998822699,0.376892768351032,0.376650268827218,0.376650268827218, +0.55674631116618,0.55674631116618,0.556598845222544,0.556136648048802,0.555482040147408,0.554744121634442,0.55401708461447,0.553399664953486,0.553016247594792,0.553016247594792, +0.768513740948645,0.768513740948645,0.768290625122613,0.767563065082161,0.766639479464307,0.765646907206985,0.764663901349031,0.763775505667158,0.763135818248589,0.763135818248589, + +00:21:08, +0.0310399624951908,0.0310399624951908,0.0310729035556488,0.0310695657976577,0.0310392451086975,0.0309937583109605,0.0309455626634517,0.0309060174259376,0.0308838495001884,0.0308838495001884, +0.0310399624951908,0.0310399624951908,0.0310729035556488,0.0310695657976577,0.0310392451086975,0.0309937583109605,0.0309455626634517,0.0309060174259376,0.0308838495001884,0.0308838495001884, +0.0471853859515984,0.0471853859515984,0.0472213845390975,0.0472087228322955,0.0471600745552693,0.0470916096230257,0.0470204799142273,0.0469625130196996,0.0469300783395688,0.0469300783395688, +0.0832144293723331,0.0832144293723331,0.0832522358600329,0.0832162979114053,0.0831262394104362,0.0830071935849943,0.0828859888255102,0.0827878087915298,0.0827328974989318,0.0827328974989318, +0.145765031832902,0.145765031832902,0.145794922924097,0.145713199383484,0.145550309676485,0.14534524443624,0.145139668256301,0.144973507773524,0.144880267192715,0.144880267192715, +0.242509132691738,0.242509132691738,0.242510114151463,0.242349334138952,0.242072648740706,0.241737854594946,0.241405855550529,0.241136511662384,0.240983742911955,0.240983742911955, +0.379297414084954,0.379297414084954,0.379238684409654,0.378954927357194,0.378515751699624,0.378002568922741,0.377496719668401,0.377080626434426,0.376838208522083,0.376838208522083, +0.556902107598347,0.556902107598347,0.556754649587926,0.556292615348089,0.555638263364598,0.554900641078759,0.554173898997169,0.55355673205124,0.553173472827674,0.553173472827674, +0.768602883807856,0.768602883807856,0.768379847712816,0.767652581922181,0.76672938129566,0.765737227800768,0.764754638386874,0.763866618919722,0.76322720040895,0.76322720040895, + +00:21:09, +0.0311143560125223,0.0311143560125223,0.031147334829345,0.0311439970892242,0.0311136464850502,0.0310681112245321,0.031019862192004,0.0309802721829608,0.0309580789009296,0.0309580789009296, +0.0311143560125223,0.0311143560125223,0.031147334829345,0.0311439970892242,0.0311136464850502,0.0310681112245321,0.031019862192004,0.0309802721829608,0.0309580789009296,0.0309580789009296, +0.0472770256587473,0.0472770256587473,0.0473130504697987,0.0473003829762147,0.0472517029328486,0.0471831898885909,0.0471120080384915,0.0470539976653783,0.0470215384299167,0.0470215384299167, +0.0833365896727592,0.0833365896727592,0.083374400102893,0.0833384489193684,0.0832483615668885,0.0831292761985214,0.0830080295475607,0.0829098148875669,0.0828548841682016,0.0828548841682016, +0.145922357157364,0.145922357157364,0.145952224386704,0.145870487872606,0.145707589274241,0.145502514903472,0.145296929230793,0.145130761157734,0.145037516656371,0.145037516656371, +0.242693091925093,0.242693091925093,0.242694029384977,0.242533258323078,0.242256615191665,0.241921877971383,0.241589936784264,0.241320641131286,0.241167900741166,0.241167900741166, +0.379484487520604,0.379484487520604,0.379425720198263,0.379142029143323,0.378702986301781,0.378189966845679,0.37768428145779,0.377268325448548,0.377025989134327,0.377025989134327, +0.557057742568818,0.557057742568818,0.556910292544867,0.55644842111124,0.555794324829636,0.555056998530285,0.554330551153036,0.553713636716476,0.553330535491709,0.553330535491709, +0.768691924200859,0.768691924200859,0.768468967760263,0.767741995889498,0.766819179823363,0.765827444629933,0.76484527120508,0.763957627537089,0.76331847763059,0.76331847763059, + +00:21:10, +0.0311888288380725,0.0311888288380725,0.0312218453757939,0.0312185076626213,0.0311881271871741,0.0311425435284141,0.0310942411791986,0.0310546064546182,0.0310323878475998,0.0310323878475998, +0.0311888288380725,0.0311888288380725,0.0312218453757939,0.0312185076626213,0.0311881271871741,0.0311425435284141,0.0310942411791986,0.0310546064546182,0.0310323878475998,0.0310323878475998, +0.0473687262784889,0.0473687262784889,0.0474047772760787,0.0473921040157988,0.0473433922724897,0.0472748312110518,0.0472035973199687,0.0471455435507623,0.0471130598061966,0.0471130598061966, +0.0834587710464361,0.0834587710464361,0.0834965853935968,0.0834606210177591,0.0833705049149872,0.0832513801429297,0.0831300917471471,0.0830318425818731,0.0829768925034337,0.0829768925034337, +0.146079642868788,0.146079642868788,0.146109486249406,0.14602773683014,0.145864829464049,0.145659746126294,0.14545415113238,0.145287975610023,0.145194727266862,0.145194727266862, +0.242876942688405,0.242876942688405,0.242877836217357,0.242717074177267,0.242440473407726,0.242105793234959,0.24177391003415,0.241504662721628,0.241351950749262,0.241351950749262, +0.379671402057346,0.379671402057346,0.379612597187306,0.379328972143182,0.378890062098556,0.378377205945181,0.377871684411806,0.377455865614004,0.377213610884378,0.377213610884378, +0.557213216359197,0.557213216359197,0.557065774374809,0.556604065619841,0.555950224824323,0.55521319427098,0.554487041364143,0.553870379231379,0.553487435869189,0.553487435869189, +0.768780862326071,0.768780862326071,0.768557985463508,0.76783130718328,0.766908875247355,0.765917557895189,0.764935800005094,0.764048531721394,0.763409650116173,0.763409650116173, + +00:21:11, +0.0312633808871152,0.0312633808871152,0.031296435110241,0.0312930974331006,0.031262687130358,0.0312170551379571,0.0311686995404586,0.0311290201563977,0.031106776255725,0.031106776255725, +0.0312633808871152,0.0312633808871152,0.031296435110241,0.0312930974331006,0.031262687130358,0.0312170551379571,0.0311686995404586,0.0311290201563977,0.031106776255725,0.031106776255725, +0.0474604877121666,0.0474604877121666,0.0474965648593209,0.0474838858524345,0.0474351424755537,0.0473665334917278,0.0472952476599359,0.0472371505770968,0.0472046423696375,0.0472046423696375, +0.0835809733977574,0.0835809733977574,0.0836187916366518,0.0835828141110567,0.0834926693590589,0.0833735053223115,0.0832521753281077,0.0831538917780774,0.0830989224081407,0.0830989224081407, +0.146236888930265,0.146236888930265,0.146266708475398,0.146184946219175,0.146022030208689,0.145816938067037,0.145611333922905,0.145445151091831,0.1453518989854,0.1453518989854, +0.243060685067266,0.243060685067266,0.243061534734163,0.242900781786899,0.242624223473892,0.242289600470129,0.241957775384048,0.241688576516779,0.241535893019337,0.241535893019337, +0.379858157917069,0.379858157917069,0.379799315598489,0.379515756578341,0.379076979311296,0.378564286442243,0.378058928751039,0.377643247151049,0.377401073992319,0.377401073992319, +0.557368529250435,0.557368529250435,0.557221095358537,0.556759549154825,0.556105963629806,0.55536922858215,0.554643369911907,0.554026959877479,0.553644174241751,0.553644174241751, +0.768869698381382,0.768869698381382,0.768646901020575,0.767920516002172,0.766998467767045,0.766007567796714,0.765026224987832,0.764139331674236,0.763500718067826,0.763500718067826, + +00:21:12, +0.031338012074861,0.031338012074861,0.0313711039478687,0.0313677663158503,0.0313373262298271,0.0312916459684475,0.0312432371911423,0.031203513203722,0.031181244040766,0.031181244040766, +0.031338012074861,0.031338012074861,0.0313711039478687,0.0313677663158503,0.0313373262298271,0.0312916459684475,0.0312432371911423,0.031203513203722,0.031181244040766,0.031181244040766, +0.0475523098612033,0.0475523098612033,0.047588413120988,0.0475757283875877,0.04752695344348,0.0474582966320164,0.0473869589597482,0.0473288186457047,0.0472962860215456,0.0472962860215456, +0.0837031966313733,0.0837031966313733,0.083741018736821,0.0837050281039963,0.0836148548036866,0.0834956516410151,0.083374280194537,0.0832759623800652,0.0832209737860916,0.0832209737860916, +0.146394095305179,0.146394095305179,0.146423891028164,0.146342116003091,0.14617919147124,0.145974090688329,0.145768477564507,0.145602287564891,0.145509031773493,0.145509031773493, +0.243244319147327,0.243244319147327,0.243245125021018,0.243084381237416,0.242807865475227,0.242473299761416,0.242141532917886,0.241872382600176,0.241719727634556,0.241719727634556, +0.380044755321309,0.380044755321309,0.379985875653163,0.379702382670017,0.379263738160996,0.378751208557505,0.378246014695726,0.37783047027959,0.37758837867788,0.37758837867788, +0.557523681522831,0.557523681522831,0.557376255776186,0.556914871996472,0.556261541526578,0.55552510174445,0.554799537077095,0.554183378935656,0.553800750890383,0.553800750890383, +0.768958432564159,0.768958432564159,0.768735714628964,0.768009622544288,0.767087957581311,0.766097474534157,0.765116546353675,0.764230027596682,0.763591681687141,0.763591681687141, + +00:21:13, +0.0314127223164575,0.0314127223164575,0.0314458518037966,0.0314425142259962,0.031412044400744,0.0313663159351083,0.0313178540465441,0.0312780855119492,0.0312557911181187,0.0312557911181187, +0.0314127223164575,0.0314127223164575,0.0314458518037966,0.0314425142259962,0.031412044400744,0.0313663159351083,0.0313178540465441,0.0312780855119492,0.0312557911181187,0.0312557911181187, +0.0476441926271007,0.0476441926271007,0.0476803219626217,0.0476676315228032,0.0476188250777873,0.0475501205333937,0.0474787311208385,0.0474205476579865,0.0473879906633046,0.0473879906633046, +0.0838254406521896,0.0838254406521896,0.083863266599123,0.0838272629015683,0.083737061153708,0.0836178190036443,0.0834964062507852,0.0833980542919777,0.0833430465413109,0.0833430465413109, +0.146551261957206,0.146551261957206,0.146581033871481,0.146499246145562,0.146336313215068,0.146131203953086,0.145925582019618,0.145759384991233,0.145666125592943,0.145666125592943, +0.243427845014302,0.243427845014302,0.243428607163605,0.243267872614322,0.242991399496859,0.242656891193403,0.24232518271966,0.242056081055321,0.241903454678148,0.241903454678148, +0.380231194491243,0.380231194491243,0.380172277572321,0.379888850639071,0.379450338868293,0.378937972511255,0.378432942465754,0.378017535219184,0.377775525160448,0.377775525160448, +0.55767867345603,0.55767867345603,0.557531255907239,0.557070034424411,0.556416958794483,0.555680814037881,0.554955543139821,0.554339636686141,0.553957166095422,0.553957166095422, +0.769047065071246,0.769047065071246,0.768824426485653,0.768098627007219,0.767177344888509,0.766187278306638,0.765206764302476,0.764320619689267,0.763682541175179,0.763682541175179, + +00:21:14, +0.0314875115269903,0.0314875115269903,0.0315206785930829,0.031517341078602,0.0314868415582089,0.0314410649530998,0.0313925500218952,0.0313527369963737,0.0313304174031149,0.0313304174031149, +0.0314875115269903,0.0314875115269903,0.0315206785930829,0.031517341078602,0.0314868415582089,0.0314410649530998,0.0313925500218952,0.0313527369963737,0.0313304174031149,0.0313304174031149, +0.0477361359114398,0.0477361359114398,0.047772291285843,0.0477595951597049,0.047710757280073,0.0476420050974147,0.0475705640447182,0.0475123375154208,0.0474797561963763,0.0474797561963763, +0.0839477053653669,0.0839477053653669,0.0839855351288308,0.0839495184090173,0.0838592883142157,0.0837400073150575,0.0836185534014573,0.0835201674182112,0.0834651405780786,0.0834651405780786, +0.14670838885031,0.14670838885031,0.146738136969413,0.146656336610547,0.146493395403829,0.146288277824519,0.146082647250962,0.145916443333178,0.145823180405849,0.145823180405849, +0.243611262753964,0.243611262753964,0.243611981247664,0.243451256003178,0.243174825623974,0.242840374850738,0.242508724873426,0.242239671965785,0.242087074233414,0.242087074233414, +0.380417475647692,0.380417475647692,0.380358521576601,0.380075160706006,0.379636781653472,0.379124578523431,0.378619712280658,0.378204442189039,0.377962513659057,0.377962513659057, +0.557833505329031,0.557833505329031,0.557686096030532,0.557225036717621,0.556572215712713,0.5558363657418,0.555111388379555,0.554495733408516,0.55411342013656,0.55411342013656, +0.769135596098966,0.769135596098966,0.768913036787098,0.768187529588033,0.767266629886467,0.76627697931275,0.765296879033562,0.764411108151999,0.763773296732471,0.763773296732471, + +00:21:15, +0.0315623796214833,0.0315623796214833,0.0315955842307243,0.0315922467886705,0.0315617176172606,0.0315158929375203,0.0314673250323638,0.0314274675722266,0.0314051228110226,0.0314051228110226, +0.0315623796214833,0.0315623796214833,0.0315955842307243,0.0315922467886705,0.0315617176172606,0.0315158929375203,0.0314673250323638,0.0314274675722266,0.0314051228110226,0.0314051228110226, +0.0478281396158812,0.0478281396158812,0.0478643209923526,0.0478516191999964,0.0478027499520138,0.047733950225713,0.0476624576329772,0.0476041881195642,0.0475715825223,0.0475715825223, +0.0840699906763204,0.0840699906763204,0.0841078242314716,0.084071794531842,0.0839815361905561,0.0838622164803673,0.0837407215514126,0.0836423016634161,0.083587255800929,0.083587255800929, +0.146865475948745,0.146865475948745,0.146895200286316,0.146813387362297,0.146650438001471,0.146445312266128,0.146239673221554,0.146073462553339,0.145980196174598,0.145980196174598, +0.243794572452144,0.243794572452144,0.243795247358995,0.243634531489605,0.24335814394182,0.24302375081813,0.242692159463307,0.242423155415203,0.242270586383718,0.242270586383718, +0.380603599011122,0.380603599011122,0.380544607886285,0.380261313090974,0.379823066736463,0.379311026813617,0.378806324359627,0.378391191408015,0.378149344392398,0.378149344392398, +0.557988177420184,0.557988177420184,0.557840776424252,0.557379879154437,0.556727312559817,0.555991757134915,0.555267073075119,0.55465166938172,0.554269513292842,0.554269513292842, +0.769224025843121,0.769224025843121,0.769001545729236,0.768276330483279,0.76735581277249,0.766366577750562,0.76538689074573,0.764501493184356,0.763863948559019,0.763863948559019, + +00:21:16, +0.0316373265148997,0.0316373265148997,0.0316705686316571,0.0316672312711436,0.0316366724928768,0.0315907998034066,0.0315421789930562,0.0315022771546763,0.0314799072570474,0.0314799072570474, +0.0316373265148997,0.0316373265148997,0.0316705686316571,0.0316672312711436,0.0316366724928768,0.0315907998034066,0.0315421789930562,0.0315022771546763,0.0314799072570474,0.0314799072570474, +0.0479202036421651,0.0479202036421651,0.0479564109839307,0.0479437035454606,0.0478948029953656,0.0478259558200013,0.0477544117872838,0.0476960993720517,0.0476634695426934,0.0476634695426934, +0.0841922964907187,0.0841922964907187,0.0842301338128257,0.0841940911757941,0.0841038046883287,0.0839844464049398,0.0838629106057642,0.0837644569324971,0.0837093921146503,0.0837093921146503, +0.147022523217052,0.147022523217052,0.147052223786829,0.146970398365347,0.146807440972226,0.146602307241699,0.146396659894701,0.146230442614623,0.146137172861871,0.146137172861871, +0.24397777419473,0.24397777419473,0.243978405583456,0.243817699159283,0.243541354535703,0.243207019180348,0.242875486573489,0.242606531487276,0.24245399121249,0.24245399121249, +0.380789564801646,0.380789564801646,0.380730536721303,0.380447308013772,0.380009194336845,0.379497317601045,0.378992778921497,0.378577783094627,0.378336017578813,0.378336017578813, +0.558142690007194,0.558142690007194,0.557995297365942,0.557534562012545,0.556882249613695,0.55614698849529,0.555422597504692,0.554807444884047,0.55442544584267,0.55442544584267, +0.769312354498999,0.769312354498999,0.769089953507486,0.768365029888983,0.767444893743364,0.766456073817622,0.765476799637257,0.764591774985292,0.763954496854297,0.763954496854297, + +00:21:17, +0.0317123521221425,0.0317123521221425,0.0317456317107575,0.0317422944409035,0.0317117060999751,0.0316657854657346,0.0316171118190175,0.0315771656588296,0.0315547706563322,0.0315547706563322, +0.0317123521221425,0.0317123521221425,0.0317456317107575,0.0317422944409035,0.0317117060999751,0.0316657854657346,0.0316171118190175,0.0315771656588296,0.0315547706563322,0.0315547706563322, +0.0480123278921114,0.0480123278921114,0.0480485611624373,0.0480358480979602,0.047986916311964,0.0479180217820714,0.0478464264093853,0.0477880711745965,0.0477554171592521,0.0477554171592521, +0.0843146227144837,0.0843146227144837,0.0843524637789261,0.084316408246878,0.0842260937133858,0.0841066969943937,0.0839851204698781,0.0838866331306117,0.083831549424284,0.083831549424284, +0.14717953062006,0.14717953062006,0.147209207435878,0.147127369584521,0.146964404280614,0.14675926271531,0.146553607233994,0.146387383480221,0.146294110430639,0.146294110430639, +0.244160868067669,0.244160868067669,0.244161456006962,0.244000759097948,0.243724457490988,0.243390180022223,0.243058706288219,0.242789800265767,0.242637288803227,0.242637288803227, +0.380975373239021,0.380975373239021,0.380916308301228,0.380633145693841,0.380195164673844,0.379683451104598,0.379179076184759,0.378764217467039,0.3785225334363,0.3785225334363, +0.558297043367123,0.558297043367123,0.558149659132504,0.557689085568991,0.557037027151607,0.556302060100345,0.55557796194581,0.55496306019315,0.554581218063806,0.554581218063806, +0.769400582261371,0.769400582261371,0.769178260316751,0.768453628000656,0.767533872995355,0.766545467710955,0.765566605905894,0.764681953753238,0.764044941817256,0.764044941817256, + +00:21:18, +0.0317874563580549,0.0317874563580549,0.0318207733828425,0.031817436212773,0.0317868183534134,0.0317408498394203,0.0316921234252317,0.0316521329997317,0.0316297129239586,0.0316297129239586, +0.0317874563580549,0.0317874563580549,0.0318207733828425,0.031817436212773,0.0317868183534134,0.0317408498394203,0.0316921234252317,0.0316521329997317,0.0316297129239586,0.0316297129239586, +0.04810451226762,0.04810451226762,0.0481407714298123,0.0481280527594379,0.048079089803724,0.0480101480137944,0.0479385014011077,0.0478801034289906,0.0478474252737504,0.0478474252737504, +0.0844369692537897,0.0844369692537897,0.0844748140360579,0.0844387456513499,0.0843484031718317,0.0842289681546001,0.0841073510493727,0.0840088301631701,0.0839537276351242,0.0839537276351242, +0.147336498122882,0.147336498122882,0.147366151198674,0.147284300984925,0.147121327891442,0.146916178651321,0.146710515203317,0.146544285113618,0.146451008844162,0.146451008844162, +0.244343854156965,0.244343854156965,0.244344398715482,0.244183711391392,0.243907452893096,0.243573233428645,0.243241818691805,0.242972961834503,0.242820479239488,0.242820479239488, +0.381161024542651,0.381161024542651,0.381101922845281,0.380818826350272,0.380380977966331,0.379869427542809,0.379365216367552,0.378950494743071,0.37870889218251,0.37870889218251, +0.558451237776393,0.558451237776393,0.558303862000197,0.557843450100179,0.55719164545017,0.55645697222686,0.55573316667537,0.555118515586043,0.554736830233371,0.554736830233371, +0.769488709324495,0.769488709324495,0.76926646635142,0.768542125013293,0.767622750724211,0.766634759627067,0.765656309748875,0.764772029686101,0.764135283646323,0.764135283646323, + +00:21:19, +0.0318626391374214,0.0318626391374214,0.0318959935626707,0.0318926565015162,0.0318620091679907,0.0318159928393199,0.0317672137266229,0.0317271790923674,0.0317047339749472,0.0317047339749472, +0.0318626391374214,0.0318626391374214,0.0318959935626707,0.0318926565015162,0.0318620091679907,0.0318159928393199,0.0317672137266229,0.0317271790923674,0.0317047339749472,0.0317047339749472, +0.0481967566706707,0.0481967566706707,0.0482330416880758,0.048220317431916,0.0481713233726406,0.0481023344171208,0.0480306366643562,0.0479721960371046,0.047939493788041,0.047939493788041, +0.0845593360150626,0.0845593360150626,0.0845971844907575,0.0845611032957172,0.084470732970022,0.0843512597916815,0.0842296022501181,0.0841310479358341,0.0840759266527167,0.0840759266527167, +0.147493425690914,0.147493425690914,0.147523055040712,0.147441192531949,0.147278211769798,0.14707305501438,0.146867383766836,0.146701147478583,0.146607868065985,0.146607868065985, +0.244526732548674,0.244526732548674,0.244527233795041,0.244366556125463,0.244090340827507,0.243756179484559,0.243424823868616,0.243156016277373,0.243003562604895,0.243003562604895, +0.381346518931586,0.381346518931586,0.381287380572331,0.381004350201802,0.380566634432831,0.380055247133862,0.379551199687671,0.379136615140199,0.37889509403475,0.37889509403475, +0.558605273510783,0.558605273510783,0.558457906244641,0.557997655881874,0.557346104785362,0.556611725150979,0.555888211969629,0.555273811339101,0.55489228262785,0.55489228262785, +0.769576735882114,0.769576735882114,0.769354571805369,0.768630521121375,0.767711527125164,0.766723949761947,0.765745911362912,0.76486200298127,0.764225522539404,0.764225522539404, + +00:21:20, +0.0319379003749681,0.0319379003749681,0.0319712921649423,0.0319679552218393,0.0319372784584475,0.031891214380231,0.0318423826380558,0.0318023038516612,0.0317798337242583,0.0317798337242583, +0.0319379003749681,0.0319379003749681,0.0319712921649423,0.0319679552218393,0.0319372784584475,0.031891214380231,0.0318423826380558,0.0318023038516612,0.0317798337242583,0.0317798337242583, +0.0482890610033237,0.0482890610033237,0.0483253718393281,0.0483126420174974,0.0482636169207884,0.0481945808940808,0.0481228321011152,0.0480643489008881,0.0480316226040551,0.0480316226040551, +0.0846817229049794,0.0846817229049794,0.0847195750498121,0.084683481086738,0.0845930830145628,0.0844735718120112,0.0843518739782354,0.0842532863545172,0.084198146382859,0.084198146382859, +0.147650313289837,0.147650313289837,0.147679918927768,0.147598044191266,0.147435055881054,0.147229891769416,0.147024212889003,0.14685797053917,0.146764688059943,0.146764688059943, +0.24470950332891,0.24470950332891,0.244709961331719,0.244549293386064,0.244273121379754,0.243939018274973,0.243607721903082,0.243338963678328,0.243186538983132,0.243186538983132, +0.381531856624525,0.381531856624525,0.381472681700894,0.381189717466817,0.380752134291514,0.380240910095589,0.379737026362563,0.37932257887555,0.379081139209982,0.379081139209982, +0.558759150845438,0.558759150845438,0.558611792140821,0.558151703189202,0.557500405432523,0.556766319148204,0.556043098104211,0.555428947728064,0.555047575523091,0.555047575523091, +0.769664662127466,0.769664662127466,0.769442576871966,0.76871881651887,0.767800202392933,0.76681303831107,0.765835410944203,0.764951873835614,0.764315658693885,0.764315658693885, + +00:21:21, +0.0320132399853634,0.0320132399853634,0.0320466691043003,0.0320433322883909,0.0320126261394669,0.0319665143768929,0.031917630074336,0.0318775071924787,0.0318550120867926,0.0318550120867926, +0.0320132399853634,0.0320132399853634,0.0320466691043003,0.0320433322883909,0.0320126261394669,0.0319665143768929,0.031917630074336,0.0318775071924787,0.0318550120867926,0.0318550120867926, +0.0483814251677194,0.0483814251677194,0.0484177617857499,0.048405026418365,0.0483559703503224,0.0482868873467843,0.0482150876134484,0.0481565619223696,0.0481238116238031,0.0481238116238031, +0.0848041298304678,0.0848041298304678,0.084841985620259,0.0848058789314203,0.0847154532123105,0.084595904122213,0.0844741661400963,0.0843755453253831,0.084320386731599,0.084320386731599, +0.147807160885612,0.147807160885612,0.147836742825899,0.147754855928829,0.147591860190864,0.147386688881645,0.147181002534554,0.147014754259721,0.146921468790154,0.146921468790154, +0.24489216658384,0.24489216658384,0.244892581411649,0.24473192325915,0.244455794635427,0.244121749884948,0.243790512879688,0.243521804121377,0.243369408457944,0.243369408457944, +0.381717037839814,0.381717037839814,0.381657826449135,0.381374928363352,0.380937477760202,0.380426416645478,0.379922696609327,0.379508386165908,0.379267027924823,0.379267027924823, +0.558912870054865,0.558912870054865,0.558765519963083,0.558305592296656,0.55765454766636,0.556920754493405,0.556197825354102,0.555583925028038,0.555202709194309,0.555202709194309, +0.769752488253275,0.769752488253275,0.769530481744068,0.768807011399237,0.767888776721724,0.766902025469394,0.765924808688428,0.765041642445486,0.764405692306634,0.764405692306634, + +00:21:22, +0.0320886578832187,0.0320886578832187,0.0321221242953312,0.0321187876157631,0.0320880521256745,0.0320418927439872,0.0319929559502111,0.0319527890296265,0.0319302689773917,0.0319302689773917, +0.0320886578832187,0.0320886578832187,0.0321221242953312,0.0321187876157631,0.0320880521256745,0.0320418927439872,0.0319929559502111,0.0319527890296265,0.0319302689773917,0.0319302689773917, +0.0484738490660788,0.0484738490660788,0.0485102114296024,0.0484974705367821,0.0484483835634777,0.0483792536774211,0.0483074031034992,0.048248835003657,0.0482160607493741,0.0482160607493741, +0.084926556698705,0.084926556698705,0.0849644161093848,0.0849282967370215,0.0848378434703708,0.08471825662916,0.0845964786423223,0.0844978247548456,0.0844426476052346,0.0844426476052346, +0.14796396844448,0.14796396844448,0.147993526701443,0.147911627710872,0.147748624665162,0.147543446316559,0.147337752668509,0.147171498604858,0.14707821022102,0.14707821022102, +0.245074722399682,0.245074722399682,0.245075094121017,0.24491444583073,0.244638360680169,0.244304374399601,0.243973196882982,0.24370453769059,0.243552171113139,0.243552171113139, +0.38190206279545,0.38190206279545,0.381842815034866,0.381559983109091,0.381122665056367,0.380611767000665,0.380108210644719,0.379694037227713,0.37945276039555,0.37945276039555, +0.55906643141294,0.55906643141294,0.558919089985144,0.558459323478093,0.557808531760944,0.557075031460818,0.556352393993658,0.555738743513497,0.555357683916086,0.555357683916086, +0.769840214451764,0.769840214451764,0.769618286614024,0.768895105955424,0.767977250305232,0.766990911431369,0.766014104790755,0.765131309006724,0.764495623574004,0.764495623574004, + +00:21:23, +0.0321641539830892,0.0321641539830892,0.032197657652565,0.0321943211184915,0.0321635563316398,0.0321173493961385,0.0320683601803713,0.0320281492778531,0.0320056043108389,0.0320056043108389, +0.0321641539830892,0.0321641539830892,0.032197657652565,0.0321943211184915,0.0321635563316398,0.0321173493961385,0.0320683601803713,0.0320281492778531,0.0320056043108389,0.0320056043108389, +0.0485663326007035,0.0485663326007035,0.0486027206732274,0.0485899742750928,0.0485408564625696,0.0484716797882609,0.0483997784734904,0.0483411680469372,0.0483083698829365,0.0483083698829365, +0.0850490034171178,0.0850490034171178,0.085086866424725,0.0850507344110476,0.0849602536960981,0.0848406292399745,0.0847188113917839,0.0846201245495678,0.0845649289103134,0.0845649289103134, +0.148120735932962,0.148120735932962,0.148150270521015,0.148068359503905,0.147905349270162,0.147700164039936,0.147494463256168,0.147328203539489,0.147234912317229,0.147234912317229, +0.245257170862708,0.245257170862708,0.24525749954606,0.245096861186867,0.244820819599677,0.244486891904107,0.244155773997565,0.243887164470098,0.243734827032582,0.243734827032582, +0.382086931709075,0.382086931709075,0.382027647675551,0.381744881921367,0.381307696397131,0.380796961377942,0.380293568685147,0.379879532277062,0.379638336838094,0.379638336838094, +0.559219835192903,0.559219835192903,0.559072502480086,0.55861289700674,0.557962357989714,0.557229150324048,0.556506804296603,0.555893403458285,0.555512499962376,0.555512499962376, +0.769927840914646,0.769927840914646,0.769705991673681,0.768983100379876,0.768065623336646,0.767079696390931,0.766103299445841,0.765220873714653,0.764585452691834,0.764585452691834, + +00:21:24, +0.0322397281994739,0.0322397281994739,0.0322732690904766,0.0322699327110567,0.0322391386718764,0.0321928842479153,0.0321438426794495,0.0321035878518497,0.0320810180018597,0.0320810180018597, +0.0322397281994739,0.0322397281994739,0.0322732690904766,0.0322699327110567,0.0322391386718764,0.0321928842479153,0.0321438426794495,0.0321035878518497,0.0320810180018597,0.0320810180018597, +0.048658875673976,0.048658875673976,0.0486952894190477,0.0486825375357218,0.0486333889499941,0.0485641655816538,0.0484922136257249,0.0484335609544768,0.048400738926738,0.048400738926738, +0.085171469893381,0.085171469893381,0.0852093364740633,0.0851731918612526,0.085082683797095,0.0849630218620269,0.0848411642956004,0.0847424446164615,0.0846872305536313,0.0846872305536313, +0.148277463317858,0.148277463317858,0.148306974251508,0.148225051274719,0.148062033972354,0.147856842017828,0.147651134263111,0.147484869028801,0.147391575043746,0.147391575043746, +0.245439512059242,0.245439512059242,0.245439797773066,0.245279169413672,0.245003171479701,0.244669302483691,0.244338244308095,0.244069684544086,0.243917376300198,0.243917376300198, +0.382271644797985,0.382271644797985,0.382212324588303,0.381929625017164,0.38149257199927,0.380981999993752,0.380478770946676,0.380064871529706,0.379823757468045,0.379823757468045, +0.559373081667367,0.559373081667367,0.559225757720364,0.558766313155194,0.558116026625481,0.55738311135607,0.556661056536032,0.556047905135617,0.555667157606502,0.555667157606502, +0.770015367833134,0.770015367833134,0.769793597114379,0.769070994864529,0.768153896008646,0.767168380541509,0.766192392847832,0.765310336764088,0.764675179855449,0.764675179855449, + +00:21:25, +0.032315380446817,0.032315380446817,0.0323489585234857,0.032345622307884,0.0323147990608426,0.0322684972138303,0.0322194033620225,0.0321791046662507,0.0321565099651226,0.0321565099651226, +0.032315380446817,0.032315380446817,0.0323489585234857,0.032345622307884,0.0323147990608426,0.0322684972138303,0.0322194033620225,0.0321791046662507,0.0321565099651226,0.0321565099651226, +0.0487514781883594,0.0487514781883594,0.0487879175695667,0.0487751602211746,0.0487259809282277,0.04865671096003,0.0485847084625852,0.0485260136286221,0.0484931677831055,0.0484931677831055, +0.0852939560354178,0.0852939560354178,0.0853318261654308,0.0852956689956382,0.0852051336812116,0.0850854344029355,0.0849635372611387,0.0848647848626865,0.0848095524422328,0.0848095524422328, +0.148434150566243,0.148434150566243,0.148463637860092,0.148381702990379,0.148218678738508,0.148013480216568,0.147807765655197,0.14764149503826,0.147548198365819,0.147548198365819, +0.245621746075657,0.245621746075657,0.245621988888374,0.245461370597309,0.245185416406041,0.244851606223636,0.244520607899287,0.244252097996798,0.244099818999969,0.244099818999969, +0.382456202279124,0.382456202279124,0.382396845989885,0.382114212613119,0.38167729207921,0.381166883064194,0.380663817645026,0.380250055201057,0.380009022500652,0.380009022500652, +0.559526171108316,0.559526171108316,0.559378855977803,0.558919572195424,0.558269537940426,0.557536914829233,0.556815150984413,0.556202248818083,0.555821657121164,0.555821657121164, +0.770102795397938,0.770102795397938,0.769881103126958,0.769158789600817,0.768242068513405,0.767256964076027,0.766281385190366,0.765399698349331,0.764764805259665,0.764764805259665, + +00:21:26, +0.032391110639508,0.032391110639508,0.032424725865958,0.0324213898233447,0.0323905374129422,0.0323441882083409,0.0322950421426115,0.0322546996356341,0.0322320801152395,0.0322320801152395, +0.032391110639508,0.032391110639508,0.032424725865958,0.0324213898233447,0.0323905374129422,0.0323441882083409,0.0322950421426115,0.0322546996356341,0.0322320801152395,0.0322320801152395, +0.0488441400463982,0.0488441400463982,0.0488806050273693,0.0488678422340377,0.0488186322998278,0.0487493158259004,0.0486772628865342,0.048618525971799,0.0485856563544459,0.0485856563544459, +0.0854164617513984,0.0854164617513984,0.0854543354071058,0.0854181657224524,0.0853276032565447,0.0852078667705655,0.0850859301960132,0.0849871451956502,0.0849318944834096,0.0849318944834096, +0.148590797645469,0.148590797645469,0.148620261314212,0.148538314618225,0.148375283535667,0.148170078602764,0.147964357398564,0.147798081533613,0.147704782248976,0.147704782248976, +0.245803872998376,0.245803872998376,0.245804072978373,0.245643464823992,0.245367554464549,0.245033803209275,0.244702864855911,0.244434404912535,0.244282155215935,0.244282155215935, +0.382640604369087,0.382640604369087,0.382581212096712,0.382298644925518,0.381861856853029,0.381351610805019,0.380848708995574,0.380435083506183,0.380194132150821,0.380194132150821, +0.559679103787109,0.559679103787109,0.559531797523604,0.559072674398772,0.558422892206106,0.557690561015257,0.556969087913592,0.556356434777645,0.555975998778435,0.555975998778435, +0.770190123799269,0.770190123799269,0.769968509901758,0.769246484779674,0.768330141042597,0.7673454471869,0.766370276666574,0.765488958664181,0.764854329098786,0.764854329098786, + +00:21:27, +0.0324669186918827,0.0324669186918827,0.0325005710322055,0.0324972351717562,0.0324663536425251,0.0324199571458503,0.0323707589356824,0.0323303726745225,0.0323077283667665,0.0323077283667665, +0.0324669186918827,0.0324669186918827,0.0325005710322055,0.0324972351717562,0.0324663536425251,0.0324199571458503,0.0323707589356824,0.0323303726745225,0.0323077283667665,0.0323077283667665, +0.048936861150718,0.048936861150718,0.0489733516951214,0.0489605834769787,0.0489113429674327,0.0488419800818562,0.0487698768001149,0.0487110978865135,0.0486782045432453,0.0486782045432453, +0.0855389869497397,0.0855389869497397,0.0855768641076124,0.0855406819501897,0.0854500924314376,0.0853303188730285,0.0852083430080847,0.0851095255230065,0.0850542565847003,0.0850542565847003, +0.148747404523161,0.148747404523161,0.148776844581585,0.148694886125873,0.148531848331151,0.148326637143303,0.148120909459627,0.147954628480884,0.147861326659022,0.147861326659022, +0.245985892913873,0.245985892913873,0.245986050129499,0.245825452179982,0.245549585741128,0.245215893525993,0.244885015262788,0.244616605375651,0.244464385032193,0.244464385032193, +0.382824851284123,0.382824851284123,0.38276542312485,0.382482922170299,0.38204626653646,0.381536183431634,0.381033445213353,0.38061995665981,0.380379086633118,0.380379086633118, +0.559831879974477,0.559831879974477,0.559684582628343,0.559225620035956,0.558576089693451,0.557844050185242,0.557122867594786,0.556510463285647,0.556130182849766,0.556130182849766, +0.770277353226839,0.770277353226839,0.770055817628619,0.76933408059153,0.768418113787391,0.767433830066043,0.766459067469083,0.765578117901926,0.764943751566613,0.764943751566613, + +00:21:28, +0.0325428045182235,0.0325428045182235,0.0325764939364872,0.0325731582673831,0.0325422476638879,0.0324958039407078,0.0324465536556471,0.0324061236973836,0.0323834546342046,0.0323834546342046, +0.0325428045182235,0.0325428045182235,0.0325764939364872,0.0325731582673831,0.0325422476638879,0.0324958039407078,0.0324465536556471,0.0324061236973836,0.0323834546342046,0.0323834546342046, +0.0490296414040257,0.0490296414040257,0.0490661574755702,0.0490533838527467,0.0490041128337616,0.0489347036305697,0.0488625501059508,0.0488037292753515,0.0487708122520703,0.0487708122520703, +0.0856615315391045,0.0856615315391045,0.0856994121757208,0.0856632175875899,0.085572601114479,0.0854527906186821,0.0853307756054603,0.0852319257526558,0.08517663865389,0.08517663865389, +0.14890397116722,0.14890397116722,0.148933387630202,0.148851417481209,0.14868837309255,0.148483155805341,0.148277421805074,0.148111135846372,0.148017831562039,0.148017831562039, +0.246167805908667,0.246167805908667,0.246167920428237,0.246007332751589,0.245731510321728,0.245397877259226,0.245067059204794,0.244798699470559,0.244646508532894,0.244646508532894, +0.383008943240129,0.383008943240129,0.382949479290019,0.382667044563056,0.38223052134489,0.381720601159102,0.381218026513054,0.380804674876325,0.380563886161771,0.380563886161771, +0.559984499940533,0.559984499940533,0.559837211561974,0.559378409377074,0.558729130672771,0.557997382609662,0.557276490298596,0.556664334612808,0.556284209605987,0.556284209605987, +0.770364483869864,0.770364483869864,0.770143026496886,0.769421577226321,0.768505986938456,0.767522112904868,0.766547757790017,0.765667176255353,0.765033072856439,0.765033072856439, + +00:21:29, +0.0326187680327599,0.0326187680327599,0.0326524944930099,0.0326491590244376,0.0326182193912743,0.0325717285072094,0.0325224262168632,0.0324819526186308,0.0324592588319999,0.0324592588319999, +0.0326187680327599,0.0326187680327599,0.0326524944930099,0.0326491590244376,0.0326182193912743,0.0325717285072094,0.0325224262168632,0.0324819526186308,0.0324592588319999,0.0324592588319999, +0.0491224807091095,0.0491224807091095,0.0491590222715445,0.0491462432641719,0.0490969418016149,0.0490274863747937,0.0489552827067457,0.048896420040979,0.0488634793835668,0.0488634793835668, +0.0857840954284011,0.0857840954284011,0.0858219795204457,0.0857857725436378,0.0856951292145024,0.0855752819161287,0.0854532278964922,0.0853543457927437,0.085299040599009,0.085299040599009, +0.149060497545815,0.149060497545815,0.149089890428327,0.149007908652393,0.14884485778773,0.148639634556312,0.148433894401869,0.148267603596653,0.148174296924385,0.148174296924385, +0.246349612069327,0.246349612069327,0.24634968396112,0.246189106625172,0.24591332829235,0.245579754494463,0.245248996766858,0.244980687281721,0.244828525802245,0.244828525802245, +0.383192880452658,0.383192880452658,0.38313338080759,0.382851012319033,0.382414621493359,0.381904864202141,0.381402453109026,0.380989238369773,0.380748530950666,0.380748530950666, +0.560136963954765,0.560136963954765,0.559989684593832,0.5595310426916,0.558882015413755,0.558150558558375,0.557429956295,0.55681804902923,0.55643807931731,0.55643807931731, +0.770451515917065,0.770451515917065,0.770230136695407,0.769508974873483,0.768593760685963,0.767610295894287,0.766636347820998,0.765756133916745,0.765122293161052,0.765122293161052, + +00:21:30, +0.0326948091496699,0.0326948091496699,0.0327285726159284,0.03272523735708,0.032694268738876,0.0326477307595986,0.0325983765336355,0.0325578593526236,0.0325351408745447,0.0325351408745447, +0.0326948091496699,0.0326948091496699,0.0327285726159284,0.03272523735708,0.032694268738876,0.0326477307595986,0.0325983765336355,0.0325578593526236,0.0325351408745447,0.0325351408745447, +0.0492153789688396,0.0492153789688396,0.0492519459859547,0.0492391616141661,0.0491898297738747,0.0491203282173623,0.0490480745052843,0.0489891700861428,0.0489562058404616,0.0489562058404616, +0.0859066785267825,0.0859066785267825,0.0859445660510464,0.0859083467275624,0.0858176766405859,0.0856977926742156,0.0855756997897775,0.085476785551661,0.0854214623283329,0.0854214623283329, +0.149216983627391,0.149216983627391,0.149246352944493,0.149164359607853,0.149001302384825,0.14879607336392,0.148590327217251,0.148424031698578,0.148330722712692,0.148330722712692, +0.246531311482467,0.246531311482467,0.246531340814724,0.246370773887135,0.246095039739042,0.245761525317239,0.245430828033959,0.245162568893655,0.245010436924506,0.245010436924506, +0.383376663136914,0.383376663136914,0.383317127892589,0.383034825653129,0.382598567196561,0.382088972775127,0.381586725215275,0.381173647353858,0.380933021213349,0.380933021213349, +0.560289272286046,0.560289272286046,0.560142001992631,0.559683520248391,0.559034744185472,0.558303578300617,0.55758326585336,0.556971606804397,0.556591792253329,0.556591792253329, +0.770538449556672,0.770538449556672,0.770317148412539,0.769596273721959,0.768681435219589,0.767698379224714,0.766724837753149,0.765844991077884,0.765211412672741,0.765211412672741, + +00:21:31, +0.0327709277830795,0.0327709277830795,0.0328047282193465,0.0328013931794196,0.0327703956208334,0.0327238106120668,0.0326744045202159,0.0326338438136687,0.032611100676178,0.032611100676178, +0.0327709277830795,0.0327709277830795,0.0328047282193465,0.0328013931794196,0.0327703956208334,0.0327238106120668,0.0326744045202159,0.0326338438136687,0.032611100676178,0.032611100676178, +0.0493083360861675,0.0493083360861675,0.0493449285217929,0.0493321388057229,0.0492827766535039,0.0492132290611905,0.0491409254044319,0.0490819793136696,0.0490489915255611,0.0490489915255611, +0.0860292807436456,0.0860292807436456,0.086067171677026,0.0860309400488361,0.0859402433020512,0.0858203228020337,0.0856981911941573,0.0855992449380425,0.0855439037503815,0.0855439037503815, +0.149373429380658,0.149373429380658,0.149402775147501,0.14932077031629,0.149157706852241,0.14895247219614,0.148746720218728,0.148580420119268,0.148487108893867,0.148487108893867, +0.246712904234748,0.246712904234748,0.246712891075674,0.246552334623927,0.246276644747898,0.24594318981314,0.245612553091127,0.245344344390931,0.245192241983992,0.245192241983992, +0.383560291507757,0.383560291507757,0.383500720759694,0.383218484779897,0.382782358668849,0.382272927092092,0.38177084304547,0.381357902041948,0.381117357163031,0.381117357163031, +0.560441425202629,0.560441425202629,0.56029416402647,0.559835842315688,0.559187317256375,0.558456442105009,0.557736419242422,0.557125008207177,0.556745348683023,0.556745348683023, +0.77062528497642,0.77062528497642,0.770404061836145,0.769683473960199,0.768769010728511,0.767786363086067,0.766813227777094,0.765933747930053,0.765300431583291,0.765300431583291, + +00:21:32, +0.0328471238470642,0.0328471238470642,0.0328809612173174,0.0328776264055148,0.0328465999512358,0.0327999679787542,0.0327505100908047,0.0327099059160201,0.032687138151186,0.032687138151186, +0.0328471238470642,0.0328471238470642,0.0328809612173174,0.0328776264055148,0.0328465999512358,0.0327999679787542,0.0327505100908047,0.0327099059160201,0.032687138151186,0.032687138151186, +0.0494013519641269,0.0494013519641269,0.0494379697821333,0.0494251747419176,0.0493757823435476,0.0493061888092749,0.0492338353071349,0.0491748476264671,0.0491418363417526,0.0491418363417526, +0.0861519019886311,0.0861519019886311,0.0861897963081306,0.0861535524171746,0.0860628291084629,0.0859428722089174,0.0858207020187162,0.0857217238607667,0.0856663647739184,0.0856663647739184, +0.149529834774599,0.149529834774599,0.149559157006423,0.149477140746669,0.149314071158653,0.149108831021217,0.148903073374081,0.148736768826118,0.148643455435088,0.148643455435088, +0.246894390412877,0.246894390412877,0.246894334830638,0.246733788922045,0.246458143405059,0.246124748067799,0.245794172023443,0.24552601385817,0.245373941065067,0.245373941065067, +0.3837437657797,0.3837437657797,0.38368415962324,0.383401989913547,0.382965996124229,0.382456727366726,0.381954806812934,0.38154200264707,0.381301539012582,0.381301539012582, +0.560593422972153,0.560593422972153,0.560446170962834,0.559988009161114,0.559339734894301,0.558609150239557,0.557889416730316,0.557278253505826,0.556898748874756,0.556898748874756, +0.770712022363558,0.770712022363558,0.770490877153599,0.76977057577616,0.768856487401416,0.767874247667768,0.766901518082963,0.766022404664037,0.765389350083992,0.765389350083992, + +00:21:33, +0.0329233972556493,0.0329233972556493,0.0329572715238444,0.0329539369493744,0.0329228816441222,0.03287620277375,0.0328266931595506,0.0327860455738802,0.0327632532138026,0.0327632532138026, +0.0329233972556493,0.0329233972556493,0.0329572715238444,0.0329539369493744,0.0329228816441222,0.03287620277375,0.0328266931595506,0.0327860455738802,0.0327632532138026,0.0327632532138026, +0.0494944265058334,0.0494944265058334,0.0495310696701318,0.0495182693259074,0.0494688467471323,0.0493992073646932,0.0493268041164205,0.0492677749275236,0.0492347401920038,0.0492347401920038, +0.0862745421716221,0.0862745421716221,0.0863124398543487,0.0862761837425357,0.0861854339696284,0.0860654408044435,0.0859432321727818,0.0858442222289554,0.0857888453079503,0.0857888453079503, +0.149686199778461,0.149686199778461,0.149715498490596,0.149633470868225,0.149470395273001,0.149265149807664,0.14905938665136,0.148893077786793,0.148799762303805,0.148799762303805, +0.247075770103602,0.247075770103602,0.24707567216633,0.246915136868028,0.246639535796712,0.246306200166895,0.245975684916035,0.245707577380044,0.24555553425215,0.24555553425215, +0.38392708616691,0.38392708616691,0.383867444697215,0.383585341267942,0.383149479776364,0.382640373812376,0.382138616730656,0.381725949381912,0.381485566974536,0.381485566974536, +0.560745265861643,0.560745265861643,0.560598023068592,0.560140021051682,0.559491997366475,0.558761702971655,0.558042258584561,0.557431342967987,0.557051993096283,0.557051993096283, +0.770798661904844,0.770798661904844,0.770577594551788,0.769857579357309,0.7689438654265,0.767962033158747,0.76698970886039,0.766110961470126,0.765478168365635,0.765478168365635, + +00:21:34, +0.0329997479228103,0.0329997479228103,0.0330336590528814,0.0330303247249577,0.0329992406134823,0.0329525149110934,0.0329029536405516,0.0328622627014,0.0328394457782104,0.0328394457782104, +0.0329997479228103,0.0329997479228103,0.0330336590528814,0.0330303247249577,0.0329992406134823,0.0329525149110934,0.0329029536405516,0.0328622627014,0.0328394457782104,0.0328394457782104, +0.0495875596144845,0.0495875596144845,0.0496242280890266,0.0496114224609316,0.0495619697674663,0.0494922846306047,0.0494198317353973,0.0493607611199083,0.0493277029793631,0.0493277029793631, +0.0863972012027442,0.0863972012027442,0.0864351022259107,0.086398833935119,0.0863080577955964,0.0861880284984309,0.0860657815659238,0.0859667399519725,0.0859113452617263,0.0859113452617263, +0.149842524361761,0.149842524361761,0.149871799569624,0.149789760650457,0.149626679164494,0.149421428524264,0.149215660018882,0.149049346969227,0.148956029467738,0.148956029467738, +0.247257043393718,0.247257043393718,0.247256903169504,0.24709637854846,0.246820822009088,0.246487546196158,0.246157091854082,0.245889035041274,0.24573702162971,0.24573702162971, +0.384110252883211,0.384110252883211,0.384050576195264,0.383768539056601,0.383332809838575,0.382823866642051,0.38232227301128,0.381909742458825,0.381669441261089,0.381669441261089, +0.560896954137513,0.560896954137513,0.560749720610006,0.560291878253793,0.55964410493951,0.558914100568085,0.558194945072067,0.557584276860693,0.557205081614747,0.557205081614747, +0.770885203786552,0.770885203786552,0.770664214217109,0.769944484890627,0.769031144991467,0.768049719747441,0.767077800298515,0.766199418538115,0.765566886618515,0.765566886618515, + +00:21:35, +0.0330761757624738,0.0330761757624738,0.0331101237183338,0.0331067896461753,0.0330756767732563,0.033028904304774,0.0329792914478557,0.0329385572126798,0.0329157157585409,0.0329157157585409, +0.0330761757624738,0.0330761757624738,0.0331101237183338,0.0331067896461753,0.0330756767732563,0.033028904304774,0.0329792914478557,0.0329385572126798,0.0329157157585409,0.0329157157585409, +0.0496807511933603,0.0496807511933603,0.0497174449421382,0.0497046340503116,0.0496551513078401,0.0495854205102506,0.0495129180672553,0.0494538061067715,0.0494207246069597,0.0494207246069597, +0.0865198789923646,0.0865198789923646,0.0865577833332882,0.0865215029053652,0.0864307004966571,0.08631063520094,0.0861883501079535,0.0860892769394238,0.0860338645447374,0.0860338645447374, +0.149998808494277,0.149998808494277,0.150028060213374,0.14994601006313,0.149782922802605,0.149577667140063,0.149371893445236,0.149205576341625,0.149112256894875,0.149112256894875, +0.247438210370062,0.247438210370062,0.247438027926959,0.247277514049967,0.247002002128462,0.246668786241358,0.246338392922808,0.246070386926631,0.245918403282265,0.245918403282265, +0.384293266142083,0.384293266142083,0.384233554330688,0.383951583492703,0.38351598652384,0.383007206068416,0.382505775867116,0.382093382089824,0.381853162084102,0.381853162084102, +0.561048488065566,0.561048488065566,0.560901263852724,0.560443581033236,0.559796057879409,0.559066343295018,0.558347476459133,0.557737055450368,0.557358014696684,0.557358014696684, +0.77097164819447,0.77097164819447,0.770750736335478,0.770031292562606,0.769118326283533,0.768137307621799,0.767165792585988,0.766287776057306,0.765655505032435,0.765655505032435, + +00:21:36, +0.0331526806885181,0.0331526806885181,0.0331866654340586,0.0331833316268895,0.0331521900373362,0.0331053708687325,0.0330557064954612,0.03301492902177,0.0329920630688756,0.0329920630688756, +0.0331526806885181,0.0331526806885181,0.0331866654340586,0.0331833316268895,0.0331521900373362,0.0331053708687325,0.0330557064954612,0.03301492902177,0.0329920630688756,0.0329920630688756, +0.0497740011458231,0.0497740011458231,0.0498107201328694,0.0497979039974511,0.049748391271626,0.0496786149069536,0.0496060630152657,0.0495469097913445,0.0495138049780039,0.0495138049780039, +0.0866425754510913,0.0866425754510913,0.0866804830871932,0.0866441905639554,0.0865533619833413,0.0864332608222718,0.0863109377089232,0.0862118331011561,0.086156403066716,0.086156403066716, +0.150155052146056,0.150155052146056,0.150184280391979,0.150102219076272,0.149939126157073,0.149733865624375,0.149528086899272,0.149361765872456,0.149268444553472,0.149268444553472, +0.247619271119511,0.247619271119511,0.247619046525536,0.247458543459217,0.247183076241153,0.246849920388313,0.246519588207487,0.246251633120935,0.246099679294383,0.246099679294383, +0.384476126156662,0.384476126156662,0.384416379316445,0.384134474789081,0.383699010044795,0.383190392303797,0.382689125510133,0.382276868486586,0.382036729655099,0.382036729655099, +0.561199867911,0.561199867911,0.56105265306179,0.560595129655195,0.559947856451567,0.559218431418022,0.558499853011451,0.557889679002831,0.557510792608022,0.557510792608022, +0.771057995313903,0.771057995313903,0.770837161092323,0.770118002559255,0.769205409489429,0.768224796969281,0.76725368591097,0.766376034216511,0.765744023796704,0.765744023796704, + +00:21:37, +0.0332292626147734,0.0332292626147734,0.0332632841138655,0.0332599505809151,0.0332287803195661,0.033181914516861,0.0331321986973175,0.0330913780426717,0.0330684876232458,0.0330684876232458, +0.0332292626147734,0.0332292626147734,0.0332632841138655,0.0332599505809151,0.0332287803195661,0.033181914516861,0.0331321986973175,0.0330913780426717,0.0330684876232458,0.0330684876232458, +0.0498673093753176,0.0498673093753176,0.0499040535647057,0.0498912322058363,0.0498416895622788,0.0497718677241184,0.0496992664827814,0.04964007207694,0.0496069439957869,0.0496069439957869, +0.0867652904897725,0.0867652904897725,0.086803201398578,0.0867668968218106,0.0866760421664196,0.0865559052729675,0.0864335442791256,0.086334408347257,0.0862789607376349,0.0862789607376349, +0.150311255287403,0.150311255287403,0.150340460075831,0.150258387660174,0.150095289197898,0.149890023946776,0.14968424035011,0.149517915530457,0.149424592412054,0.149424592412054, +0.247800225728986,0.247800225728986,0.247799959052116,0.247639466862921,0.247364044433521,0.247030948722886,0.246700677793435,0.246432773709054,0.24628084975068,0.24628084975068, +0.384658833139741,0.384658833139741,0.384599051365151,0.384317213158226,0.383881880613737,0.383373425560181,0.382872322151963,0.382460201860451,0.382220144185269,0.382220144185269, +0.561351093938403,0.561351093938403,0.561203888501641,0.560746524384246,0.560099500920774,0.559370365202054,0.558652074994109,0.558042147783295,0.557663415614085,0.557663415614085, +0.771144245329675,0.771144245329675,0.770923488672594,0.770204615066097,0.769292394795399,0.768312187976861,0.767341480461134,0.766464193204053,0.765832443100143,0.765832443100143, + +00:21:38, +0.0333059214550231,0.0333059214550231,0.033339979671517,0.0333366464220202,0.0333054475337429,0.0332585351630042,0.0332087679673259,0.0331679041893369,0.0331449893356341,0.0331449893356341, +0.0333059214550231,0.0333059214550231,0.033339979671517,0.0333366464220202,0.0333054475337429,0.0332585351630042,0.0332087679673259,0.0331679041893369,0.0331449893356341,0.0331449893356341, +0.0499606757853713,0.0499606757853713,0.0499974451412149,0.049984618579036,0.0499350460833355,0.0498651788652318,0.049792528373237,0.049733292866952,0.0497001415636813,0.0497001415636813, +0.0868880240194965,0.0868880240194965,0.086925938178634,0.0868896215900909,0.0867987409569018,0.0866785684638079,0.0865561697290932,0.0864570025880538,0.0864015374677069,0.0864015374677069, +0.150467417888889,0.150467417888889,0.150496599235588,0.150414515785389,0.150251411895343,0.150046142077107,0.14984035376713,0.14967402528463,0.149580700439407,0.149580700439407, +0.247981074285448,0.247981074285448,0.247980765593619,0.247820284347827,0.247544906791969,0.247211871330981,0.246881661766017,0.2466138087759,0.24646191473582,0.24646191473582, +0.38484138730377,0.38484138730377,0.384781570689077,0.38449979881229,0.384064598442619,0.383556306049217,0.383055366003901,0.382643382422426,0.382403405885466,0.382403405885466, +0.56150216641176,0.56150216641176,0.561354970436109,0.560897765484362,0.560250991551213,0.559522144911471,0.558804142671592,0.55819446205637,0.557815883979596,0.557815883979596, +0.77123039842613,0.77123039842613,0.77100971926076,0.770291130268177,0.769379282387205,0.768399480831026,0.767429176423665,0.766552253207767,0.765920763131083,0.765920763131083, + +00:21:39, +0.0333826571230037,0.0333826571230037,0.0334167520207296,0.0334134190639261,0.0333821915936166,0.0333352327209595,0.0332854142193396,0.0332445073756695,0.0332215681199745,0.0332215681199745, +0.0333826571230037,0.0333826571230037,0.0334167520207296,0.0334134190639261,0.0333821915936166,0.0333352327209595,0.0332854142193396,0.0332445073756695,0.0332215681199745,0.0332215681199745, +0.0500541002795943,0.0500541002795943,0.0500908947660479,0.0500780630207015,0.0500284607384156,0.0499585482338629,0.0498858485901491,0.0498265720648561,0.0497933975851409,0.0497933975851409, +0.0870107759515902,0.0870107759515902,0.0870486933387913,0.0870123647801952,0.0869214582660366,0.0868012503058125,0.0866788139695974,0.0865796157341133,0.0865241331673844,0.0865241331673844, +0.150623539921344,0.150623539921344,0.150652697842165,0.150570603422728,0.150407494219933,0.150202219985469,0.149996427119978,0.149830095104239,0.149736768604586,0.149736768604586, +0.248161816875897,0.248161816875897,0.248161466237008,0.248000996000727,0.247725663402941,0.247392688298546,0.247062540210641,0.246794738406434,0.246642874334514,0.246642874334514, +0.38502378886086,0.38502378886086,0.384963937500156,0.38468223196308,0.384247163743056,0.383739033982212,0.383238257276905,0.382826410383181,0.38258651496621,0.38258651496621, +0.561653085594454,0.561653085594454,0.561505899128426,0.561048853218913,0.560402328606468,0.559673770810025,0.558956056307782,0.558346622086067,0.557968197968675,0.557968197968675, +0.771316454787133,0.771316454787133,0.77109585304081,0.770377548350058,0.769466072450127,0.768486675717782,0.767516773985266,0.766640214415001,0.766008984077367,0.766008984077367, + +00:21:40, +0.0334594695324057,0.0334594695324057,0.0334936010751739,0.0334902684203088,0.0334590124128915,0.0334120071044776,0.0333621373671651,0.033321187515526,0.0332982238901531,0.0332982238901531, +0.0334594695324057,0.0334594695324057,0.0334936010751739,0.0334902684203088,0.0334590124128915,0.0334120071044776,0.0333621373671651,0.033321187515526,0.0332982238901531,0.0332982238901531, +0.0501475827616797,0.0501475827616797,0.0501844023429383,0.050171565434567,0.0501219334312211,0.0500519757336628,0.049979227037116,0.0499199095742097,0.0498867119637013,0.0498867119637013, +0.0871335461976192,0.0871335461976192,0.0871714667907181,0.0871351263037602,0.0870441940053106,0.0869239507102392,0.0868014769116484,0.0867022476962406,0.0866467477473584,0.0866467477473584, +0.150779621355858,0.150779621355858,0.150808755866736,0.150726650543263,0.15056353614245,0.150358257642225,0.15015246037856,0.149986124958814,0.149892796876907,0.149892796876907, +0.248342453587372,0.248342453587372,0.248342061069282,0.24818160190845,0.24790631435292,0.247573399711571,0.247243313212758,0.246975562685661,0.24682372863152,0.24682372863152, +0.385206038022778,0.385206038022778,0.38514615200998,0.384864512822067,0.384429576726323,0.383921609570138,0.383420996181598,0.38300928595305,0.382769471637688,0.382769471637688, +0.561803851749267,0.561803851749267,0.56165667484122,0.561199787850669,0.56055351234952,0.55982524316087,0.559107816165961,0.558498628135794,0.558120357844843,0.558120357844843, +0.771402414596075,0.771402414596075,0.771181890196257,0.770463869495823,0.769552765168964,0.768573772822653,0.767604273332154,0.766728077012621,0.766097106126355,0.766097106126355, + +00:21:41, +0.0335363585968744,0.0335363585968744,0.0335705267484753,0.0335671944047987,0.0335359099052261,0.0334888582272634,0.033438937324562,0.0333979445227155,0.0333749565600086,0.0333749565600086, +0.0335363585968744,0.0335363585968744,0.0335705267484753,0.0335671944047987,0.0335359099052261,0.0334888582272634,0.033438937324562,0.0333979445227155,0.0333749565600086,0.0333749565600086, +0.0502411231354035,0.0502411231354035,0.0502779677757027,0.0502651257244495,0.0502154640655368,0.0501454612683652,0.0500726636178181,0.0500133052986516,0.0499800846029792,0.0499800846029792, +0.087256334669387,0.087256334669387,0.0872942584463202,0.08725790607266,0.087166948086448,0.0870466695885836,0.086924158466494,0.0868248983854793,0.0867693811185581,0.0867693811185581, +0.150935662163779,0.150935662163779,0.150964773280735,0.150882657118323,0.150719537633936,0.150514255017998,0.150308453513044,0.150142114818144,0.150048785225947,0.150048785225947, +0.248522984506951,0.248522984506951,0.248522550177479,0.248362102157864,0.24808685972843,0.247754005656087,0.247423980857864,0.247156281698631,0.247004477711641,0.247004477711641, +0.385388135000952,0.385388135000952,0.385328214429797,0.385046641600378,0.384611837603357,0.38410403302363,0.383603582928266,0.383192009342037,0.382952276109752,0.382952276109752, +0.56195446513838,0.56195446513838,0.561807297836525,0.561350569641799,0.560704543042751,0.55997656222656,0.559259422508815,0.558650480468364,0.558272363871023,0.558272363871023, +0.771488278035868,0.771488278035868,0.77126783091014,0.770550093889082,0.769639360728037,0.768660772330682,0.767691674650068,0.766815841187008,0.766185129464921,0.766185129464921, + +00:21:42, +0.0336133242300099,0.0336133242300099,0.0336475289542148,0.0336441969309819,0.0336128839842341,0.0335657860029764,0.0335158140052441,0.033474778311001,0.0334517660433331,0.0334517660433331, +0.0336133242300099,0.0336133242300099,0.0336475289542148,0.0336441969309819,0.0336128839842341,0.0335657860029764,0.0335158140052441,0.033474778311001,0.0334517660433331,0.0334517660433331, +0.0503347213046247,0.0503347213046247,0.050371590968241,0.0503587437942492,0.0503090525452304,0.0502390047417864,0.0501661582360183,0.0501067591419029,0.0500735154066735,0.0500735154066735, +0.0873791412789341,0.0873791412789341,0.08741706821774,0.0873807039990055,0.0872897204214097,0.0871694068525782,0.0870468585456196,0.0869475677131103,0.0868920331921502,0.0868920331921502, +0.151091662316713,0.151091662316713,0.151120750055852,0.151038623119495,0.150875498665692,0.150670212083667,0.150464406493857,0.150298064652279,0.150204733621547,0.150204733621547, +0.248703409721751,0.248703409721751,0.248702933648674,0.248542496835875,0.248267299616033,0.247934506218165,0.247604543231496,0.247336895530439,0.247185121659724,0.247185121659724, +0.385570080006468,0.385570080006468,0.385510124970519,0.385228618508802,0.384793946584754,0.384286304552983,0.383786017726861,0.383374580759809,0.383134928591923,0.383134928591923, +0.56210492602338,0.56210492602338,0.561957768375773,0.561501198853878,0.560855420947946,0.560127728269051,0.559410875598432,0.558802179345993,0.558424216309544,0.558424216309544, +0.771574045288954,0.771574045288954,0.771353675365021,0.770636221712967,0.769725859311192,0.768747674426436,0.767778978124264,0.766903507124063,0.766273054279459,0.766273054279459, + +00:21:43, +0.0336903663453684,0.0336903663453684,0.0337246076059291,0.0337212759124004,0.0336899345634851,0.0336427903452313,0.0335927673228799,0.0335516887940994,0.0335286522538725,0.0335286522538725, +0.0336903663453684,0.0336903663453684,0.0337246076059291,0.0337212759124004,0.0336899345634851,0.0336427903452313,0.0335927673228799,0.0335516887940994,0.0335286522538725,0.0335286522538725, +0.0504283771732858,0.0504283771732858,0.050465271824536,0.0504524195479494,0.0504026987742524,0.0503326060578252,0.0502597107955614,0.0502002710077666,0.0501670042785647,0.0501670042785647, +0.0875019659385378,0.0875019659385378,0.0875398960173563,0.0875035199951435,0.0874125109223928,0.0872921624141922,0.0871695770607469,0.0870702555906511,0.0870147038795382,0.0870147038795382, +0.151247621786523,0.151247621786523,0.151276686164031,0.151194548518622,0.151031419209275,0.150826128810372,0.150620319291685,0.15045397443153,0.150360642033806,0.150360642033806, +0.248883729318923,0.248883729318923,0.24888321156998,0.248722786029424,0.248447634102329,0.248114901483917,0.247785000419232,0.247517404266222,0.247365660560661,0.247365660560661, +0.385751873250076,0.385751873250076,0.385691883842717,0.385410443757791,0.384975903880775,0.38446842436816,0.383968300787,0.383557000415702,0.383317429293388,0.383317429293388, +0.562255234665256,0.562255234665256,0.562108086719805,0.561651675747882,0.561006146326296,0.560278741549707,0.559562175696305,0.558953725030303,0.558575915422138,0.558575915422138, +0.771659716537303,0.771659716537303,0.771439423742994,0.770722253150137,0.769812261101797,0.768834479294002,0.767866183939522,0.766991075009208,0.76636088075588,0.76636088075588, + +00:21:44, +0.0337674848564622,0.0337674848564622,0.0338017626171119,0.0337984312625527,0.0337670615565047,0.0337198711675985,0.0336697971910931,0.0336286758856825,0.0336056151053272,0.0336056151053272, +0.0337674848564622,0.0337674848564622,0.0338017626171119,0.0337984312625527,0.0337670615565047,0.0337198711675985,0.0336697971910931,0.0336286758856825,0.0336056151053272,0.0336056151053272, +0.0505220906454125,0.0505220906454125,0.0505590102486542,0.0505461528896164,0.0504964026566364,0.0504262651204632,0.050353321200375,0.0502938408001277,0.0502605511225154,0.0502605511225154, +0.0876248085607111,0.0876248085607111,0.0876627417577836,0.0876263539736565,0.0875353195018301,0.0874149361856302,0.0872923139238339,0.0871929619298557,0.0871373930923623,0.0871373930923623, +0.151403540545326,0.151403540545326,0.151432581577473,0.151350433287801,0.151187299236494,0.150982005169508,0.150776191877471,0.150609844126464,0.150516510433082,0.150516510433082, +0.249063943385657,0.249063943385657,0.249063384028544,0.248902969825491,0.248627863273955,0.248295191539493,0.247965352506694,0.247697807991158,0.247546094499386,0.247546094499386, +0.385933514942183,0.385933514942183,0.385873491256624,0.385592117557455,0.385157709701343,0.384650392678785,0.384150432317966,0.383739268518718,0.383499778423004,0.383499778423004, +0.562405391324402,0.562405391324402,0.562258253128866,0.561802000584197,0.561156719438396,0.560429602329296,0.559713323063335,0.559105117782324,0.558727461469948,0.558727461469948, +0.771745291962413,0.771745291962413,0.77152507622568,0.770808188382779,0.769898566282748,0.768921187116994,0.767953292280146,0.767078545027387,0.766448609079618,0.766448609079618, + +00:21:45, +0.0338446796767606,0.0338446796767606,0.0338789939012139,0.0338756628948947,0.0338442648767756,0.0337970283836048,0.0337469035234632,0.0337057394993774,0.0336826545113528,0.0336826545113528, +0.0338446796767606,0.0338446796767606,0.0338789939012139,0.0338756628948947,0.0338442648767756,0.0337970283836048,0.0337469035234632,0.0337057394993774,0.0336826545113528,0.0336826545113528, +0.0506158616251137,0.0506158616251137,0.0506528061447452,0.0506399437234002,0.0505901640964992,0.050519981833765,0.0504469893544692,0.0503874684229537,0.0503541558424703,0.0503541558424703, +0.0877476690582026,0.0877476690582026,0.0877856053518711,0.0877492058473619,0.0876581460723894,0.0875377280793323,0.0874150690470738,0.0873156866427136,0.087260100742498,0.087260100742498, +0.151559418565494,0.151559418565494,0.151588436268632,0.151506277399381,0.151343138719417,0.151137841132723,0.150932024222415,0.150765673707908,0.150672338789991,0.150672338789991, +0.249244052009177,0.249244052009177,0.24924345111155,0.249083048311089,0.248807987217586,0.248475376471081,0.24814559957954,0.247878106790469,0.247726423560876,0.247726423560876, +0.386115005292861,0.386115005292861,0.386054947422134,0.385773640117571,0.385339364256042,0.384832209694148,0.384332412528709,0.383921385277529,0.383681976189297,0.383681976189297, +0.562555396260623,0.562555396260623,0.56240826786261,0.561952173622614,0.561307140544249,0.560580310867993,0.559864317959832,0.559256357862495,0.558878854713524,0.558878854713524, +0.771830771745314,0.771830771745314,0.771610632994231,0.77089402759261,0.769984775036468,0.769007798078552,0.768040303329963,0.767165917363067,0.766536239435628,0.766536239435628, + +00:21:46, +0.0339219507196906,0.0339219507196906,0.0339563013716435,0.0339529707228396,0.0339215444377376,0.033874261906734,0.033824086233526,0.0337828795487672,0.0337597703855602,0.0337597703855602, +0.0339219507196906,0.0339219507196906,0.0339563013716435,0.0339529707228396,0.0339215444377376,0.033874261906734,0.033824086233526,0.0337828795487672,0.0337597703855602,0.0337597703855602, +0.0507096900165822,0.0507096900165822,0.0507466594170426,0.0507337919535341,0.0506839829980409,0.050613756101878,0.0505407151619365,0.0504811537802944,0.0504478183424561,0.0504478183424561, +0.0878705473439955,0.0878705473439955,0.0879084867127026,0.0878720755293112,0.0877809905469727,0.0876605380079731,0.087537842342895,0.0874384296414494,0.0873828267420561,0.0873828267420561, +0.151715255819651,0.151715255819651,0.151744250210215,0.151662080825968,0.151498937630361,0.151293636671922,0.151087816297971,0.150921463146942,0.150828127075405,0.150828127075405, +0.249424055276742,0.249424055276742,0.249423412906216,0.249263021573269,0.248988006019932,0.248655456364908,0.24832574172347,0.248058300749417,0.247906647830152,0.247906647830152, +0.386296344511843,0.386296344511843,0.386236252548806,0.385955011647574,0.385520867754123,0.385013875623204,0.384514241627846,0.384103350900473,0.383864022800461,0.383864022800461, +0.562705249733131,0.562705249733131,0.562558131180102,0.562102195122335,0.561457409903271,0.560730867425388,0.560015160645516,0.559407445530664,0.559030095412827,0.559030095412827, +0.771916156066571,0.771916156066571,0.771696094229333,0.770979770960879,0.770070887544911,0.769094312361343,0.768127217272328,0.767253192200241,0.766623772008392,0.766623772008392, + +00:21:47, +0.0339992978986368,0.0339992978986368,0.0340336849417676,0.0340303546597594,0.0339989001527889,0.0339515716504276,0.0339013452347745,0.0338600959473914,0.0338369626415168,0.0338369626415168, +0.0339992978986368,0.0339992978986368,0.0340336849417676,0.0340303546597594,0.0339989001527889,0.0339515716504276,0.0339013452347745,0.0338600959473914,0.0338369626415168,0.0338369626415168, +0.0508035757240943,0.0508035757240943,0.0508405699698633,0.0508276974843351,0.0507778592655449,0.050707587829033,0.0506344985269525,0.0505748967762821,0.0505415385265822,0.0505415385265822, +0.0879934433313072,0.0879934433313072,0.0880313857535956,0.0879949629327897,0.0879038528387158,0.0877833658844613,0.0876606337239598,0.087561190838522,0.0875055710033819,0.0875055710033819, +0.151871052280675,0.151871052280675,0.15190002337518,0.151817843540414,0.1516546959419,0.151449391759262,0.151243568075848,0.151077212414904,0.150983875260454,0.150983875260454, +0.249603953275645,0.249603953275645,0.249603269499792,0.249442889699114,0.249167919767738,0.248835431307236,0.248505779024222,0.248238389953305,0.248086767392272,0.248086767392272, +0.386477532808523,0.386477532808523,0.386417406845857,0.386136232356566,0.385702220404499,0.385195390674574,0.384695919823663,0.384285165595561,0.384045918464361,0.384045918464361, +0.562854952000552,0.562854952000552,0.562707843339817,0.562252065341975,0.561607527774285,0.560881272260478,0.560165851379519,0.559558381046096,0.559181183827232,0.559181183827232, +0.772001445106281,0.772001445106281,0.771781460111205,0.771065418668366,0.77015690398956,0.769180730147566,0.768214034290123,0.767340369722429,0.766711206981915,0.766711206981915, + +00:21:48, +0.0340767211269429,0.0340767211269429,0.034111144524912,0.0341078146189847,0.0340763319352862,0.0340289575280849,0.0339786804406592,0.0339373886087466,0.0339142311927469,0.0339142311927469, +0.0340767211269429,0.0340767211269429,0.034111144524912,0.0341078146189847,0.0340763319352862,0.0340289575280849,0.0339786804406592,0.0339373886087466,0.0339142311927469,0.0339142311927469, +0.0508975186520102,0.0508975186520102,0.0509345377076082,0.0509216602202038,0.0508717928033783,0.0508014769195439,0.0507283393537757,0.0506686973151317,0.0506353162990402,0.0506353162990402, +0.0881163569335886,0.0881163569335886,0.0881543023881008,0.0881178679713157,0.0880267328609877,0.0879062116219386,0.087783443103164,0.087683970146624,0.0876283334390543,0.0876283334390543, +0.152026807921692,0.152026807921692,0.152055755736734,0.151973565515826,0.151810413626853,0.151605106367153,0.151399279528008,0.151232921483384,0.151139583316519,0.151139583316519, +0.249783746093214,0.249783746093214,0.249783020979564,0.24962265277574,0.249347728547783,0.249015301384366,0.248685711567573,0.248418374487475,0.248266782332338,0.248266782332338, +0.386658570391961,0.386658570391961,0.386598410522173,0.38631730245331,0.385883422415749,0.385376755056547,0.384877447324112,0.38446682957047,0.384227663388532,0.384227663388532, +0.563004503320922,0.563004503320922,0.562857404599644,0.562401784539559,0.56175749441553,0.561031525631675,0.560316390420389,0.559709164667466,0.559332120215529,0.559332120215529, +0.772086639044077,0.772086639044077,0.771866730819602,0.771150970895386,0.770242824551432,0.769267051618949,0.768300754565763,0.76742745011268,0.766798544539731,0.766798544539731, + +00:21:49, +0.0341542203179117,0.0341542203179117,0.0341886800343618,0.0341853505138056,0.0341538396985451,0.0341064194530641,0.0340560917645885,0.034014757446287,0.0339915759527318,0.0339915759527318, +0.0341542203179117,0.0341542203179117,0.0341886800343618,0.0341853505138056,0.0341538396985451,0.0341064194530641,0.0340560917645885,0.034014757446287,0.0339915759527318,0.0339915759527318, +0.0509915187047739,0.0509915187047739,0.0510285625347621,0.0510156800656247,0.0509657835159916,0.0508954232778078,0.0508222375467474,0.0507625553011409,0.0507291515641044,0.0507291515641044, +0.0882392880645235,0.0882392880645235,0.0882772365300013,0.08824079055864,0.0881496305273901,0.0880290751337798,0.0879062703936368,0.0878067674786813,0.0877511139618859,0.0877511139618859, +0.152182522716081,0.152182522716081,0.152211447268335,0.152129246725558,0.151966090658294,0.151760780468253,0.151554950626665,0.151388590324226,0.151295251215237,0.151295251215237, +0.249963433816807,0.249963433816807,0.249962667432849,0.249802310890297,0.249527432446882,0.24919506668263,0.248865539439336,0.248598254437306,0.24844669273549,0.24844669273549, +0.38683945747088,0.38683945747088,0.386779263786301,0.386498222146238,0.386064473996117,0.385557968977076,0.385058824336814,0.384648343032549,0.384409257780181,0.384409257780181, +0.563153903951693,0.563153903951693,0.563006815216888,0.56255135297253,0.561907310084659,0.561181627796808,0.560466778026086,0.559859796652868,0.559482904835922,0.559482904835922, +0.772171738059133,0.772171738059133,0.771951906533816,0.77123642782179,0.770328649411079,0.769353276956754,0.76838737828119,0.767514433553571,0.766885784864904,0.766885784864904, + +00:21:50, +0.0342317953848056,0.0342317953848056,0.0342662913833624,0.0342629622574723,0.0342314233558413,0.0341839573386826,0.0341335791199299,0.0340922023734252,0.0340689968349111,0.0340689968349111, +0.0342317953848056,0.0342317953848056,0.0342662913833624,0.0342629622574723,0.0342314233558413,0.0341839573386826,0.0341335791199299,0.0340922023734252,0.0340689968349111,0.0340689968349111, +0.0510855757869135,0.0510855757869135,0.0511226443558937,0.0511097569251662,0.0510598313079193,0.0509894268083054,0.0509161930102923,0.0508564706386902,0.0508230442261317,0.0508230442261317, +0.0883622366380279,0.0883622366380279,0.0884001880933124,0.0883637306087451,0.0882725457517562,0.0881519563335918,0.0880291155087395,0.0879295827478524,0.0878739124849216,0.0878739124849216, +0.152338196637468,0.152338196637468,0.152367097943688,0.152284887143213,0.152121727009542,0.151916414035474,0.151710581344284,0.151544218909525,0.151450878928495,0.151450878928495, +0.250143016533816,0.250143016533816,0.250142208946996,0.249981864129966,0.249707031551882,0.2493747272884,0.24904526272536,0.248778029888219,0.248626498686907,0.248626498686907, +0.387020194253666,0.387020194253666,0.386959966846454,0.386678991643441,0.386245375353514,0.385739032643784,0.385240051069061,0.384829706188817,0.384590701846185,0.384590701846185, +0.563303154149734,0.563303154149734,0.563156075448271,0.562700770897746,0.562056975038741,0.561331579013119,0.560617014453992,0.560010277259813,0.559633537946035,0.559633537946035, +0.772256742330159,0.772256742330159,0.77203698743268,0.771321789626968,0.770414378748587,0.769439406341776,0.768473905617883,0.767601320227214,0.766972928140025,0.766972928140025, + +00:21:51, +0.0343094462408477,0.0343094462408477,0.0343439784851197,0.0343406497631956,0.0343090828204106,0.0342615710982176,0.0342111424200098,0.0341697233035325,0.0341464937526828,0.0341464937526828, +0.0343094462408477,0.0343094462408477,0.0343439784851197,0.0343406497631956,0.0343090828204106,0.0342615710982176,0.0342111424200098,0.0341697233035325,0.0341464937526828,0.0341464937526828, +0.051179689803041,0.051179689803041,0.051216783075656,0.0512038907034807,0.0511539360837794,0.051083487415601,0.0510102056489181,0.0509504432322431,0.0509169941895618,0.0509169941895618, +0.0884852025682495,0.0884852025682495,0.0885231569922806,0.0884866880358448,0.088395478448151,0.0882748551352128,0.0881519783620651,0.0880524158675277,0.0879967289214385,0.0879967289214385, +0.152493829659726,0.152493829659726,0.152522707736748,0.152440486742641,0.152277322654168,0.152072007041974,0.15186617165358,0.151699807211627,0.151606466428434,0.151606466428434, +0.250322494331664,0.250322494331664,0.250321645609384,0.250161312581961,0.24988652594966,0.249554283288078,0.249224881511533,0.248957700925669,0.248806200271806,0.248806200271806, +0.387200780948372,0.387200780948372,0.387140519910508,0.38685961115268,0.386426126695517,0.385919946263961,0.385421127727814,0.385010919245965,0.384771995793094,0.384771995793094, +0.563452254171333,0.563452254171333,0.563305185549932,0.562850038571484,0.562206489534266,0.561481379537273,0.560767099960904,0.56016060674523,0.559784019802911,0.559784019802911, +0.772341652035407,0.772341652035407,0.772121973694566,0.771407056489846,0.770500012743581,0.769525439954348,0.768560336756853,0.767688110315252,0.767059974547222,0.767059974547222, + +00:21:52, +0.0343871727992217,0.0343871727992217,0.0344217412528008,0.0344184129441474,0.0343868180054498,0.0343392606449067,0.0342887815781148,0.0342473201499396,0.0342240666194041,0.0342240666194041, +0.0343871727992217,0.0343871727992217,0.0344217412528008,0.0344184129441474,0.0343868180054498,0.0343392606449067,0.0342887815781148,0.0342473201499396,0.0342240666194041,0.0342240666194041, +0.0512738606578528,0.0512738606578528,0.0513109785987859,0.0512980813053048,0.0512480977482742,0.0511776050043426,0.0511042753672162,0.0510444729863463,0.0510110013589175,0.0510110013589175, +0.0886081857695673,0.0886081857695673,0.0886461431413829,0.0886096627543834,0.0885184285308699,0.0883977714527123,0.088274858867438,0.0881752667513289,0.0881195631849453,0.0881195631849453, +0.152649421756976,0.152649421756976,0.152678276621712,0.152596045497937,0.152432877565985,0.152227559461159,0.152021721527517,0.151855355203128,0.151762013687443,0.151762013687443, +0.250501867297805,0.250501867297805,0.250500977507425,0.250340656333525,0.250065915727129,0.249733734768102,0.249404395883774,0.249137267635148,0.248985797575442,0.248985797575442, +0.387381217762716,0.387381217762716,0.387320923186008,0.387040080881382,0.386606728229369,0.386100710044567,0.385602054519704,0.385191982410356,0.38495313982713,0.38495313982713, +0.563601204272195,0.563601204272195,0.563454145777431,0.56299915624944,0.562355853827139,0.561631029625352,0.560917034803042,0.560310785365471,0.559934350663013,0.559934350663013, +0.772426467352671,0.772426467352671,0.772206865497386,0.771492228588892,0.770585551575224,0.769611377974338,0.768646671878648,0.767774803998864,0.767146924268153,0.767146924268153, + +00:21:53, +0.0344649749730731,0.0344649749730731,0.0344995795995347,0.0344962517134614,0.034464628824117,0.0344170258919486,0.0343664965074917,0.0343249928259371,0.0343017153483918,0.0343017153483918, +0.0344649749730731,0.0344649749730731,0.0344995795995347,0.0344962517134614,0.034464628824117,0.0344170258919486,0.0343664965074917,0.0343249928259371,0.0343017153483918,0.0343017153483918, +0.0513680882561296,0.0513680882561296,0.0514052308301051,0.0513923286354593,0.0513423162061897,0.0512717794792617,0.051198402069861,0.0511385598056294,0.0511050656388044,0.0511050656388044, +0.0887311861565904,0.0887311861565904,0.0887691464553267,0.0887326546790355,0.0886413959144384,0.0885207052003899,0.0883977569389132,0.0882981353131085,0.0882424151891812,0.0882424151891812, +0.152804972903585,0.152804972903585,0.152833804573024,0.152751563383444,0.152588391719056,0.152383071266682,0.152177230939304,0.152010862856873,0.151917520678161,0.151917520678161, +0.250681135519721,0.250681135519721,0.250680204728557,0.250519895471933,0.250245200971231,0.24991308181494,0.249583805928039,0.249316730102187,0.249165290683107,0.249165290683107, +0.38756150490408,0.38756150490408,0.387501176880164,0.387220401036638,0.386787180161981,0.386281324192228,0.385782831651034,0.385372895888025,0.38513413415419,0.38513413415419, +0.563750004707449,0.563750004707449,0.563602956385751,0.563148124186734,0.562505068172692,0.561780529532861,0.561066819236048,0.56046081337631,0.560084530782228,0.560084530782228, +0.772511188459288,0.772511188459288,0.772291663018599,0.771577306102118,0.77067099542222,0.769697220581155,0.768732911163354,0.767861401458763,0.767233777484013,0.767233777484013, + +00:21:54, +0.0345428526755093,0.0345428526755093,0.0345774934384125,0.0345741659842335,0.0345425151895324,0.0344948667525033,0.0344442871213483,0.0344027412447764,0.0343794398529229,0.0343794398529229, +0.0345428526755093,0.0345428526755093,0.0345774934384125,0.0345741659842335,0.0345425151895324,0.0344948667525033,0.0344442871213483,0.0344027412447764,0.0343794398529229,0.0343794398529229, +0.0514623725027365,0.0514623725027365,0.0514995396745194,0.0514866325988492,0.0514365913623965,0.0513660107451741,0.051292585661611,0.0512327035948056,0.0511991869339113,0.0511991869339113, +0.0888542036441581,0.0888542036441581,0.0888921668490488,0.0888556637247048,0.0887643805136116,0.0886436562927749,0.0885206724907753,0.0884210214669492,0.0883652848481159,0.0883652848481159, +0.152960483074162,0.152960483074162,0.152989291565373,0.152907040373745,0.152743865087685,0.152538542432441,0.152332699862402,0.152166330145953,0.152072987373475,0.152072987373475, +0.250860299084925,0.250860299084925,0.250859327360251,0.250699030084486,0.250424381768937,0.250092324515095,0.249763111730318,0.249496088412348,0.249344679680128,0.249344679680128, +0.387741642579516,0.387741642579516,0.387681281199851,0.38740057182521,0.386967482699934,0.386461788913244,0.385963459327776,0.385553659884679,0.385314978979842,0.385314978979842, +0.563898655731647,0.563898655731647,0.563751617629297,0.563296942637907,0.562654132825676,0.56192987951473,0.561216453514988,0.560610691032947,0.560234560415869,0.560234560415869, +0.772595815532143,0.772595815532143,0.772376366435207,0.771662289207076,0.770756344462813,0.769782967953747,0.768819054790596,0.767947902875204,0.767320534375533,0.767320534375533, + +00:21:55, +0.0346208058196002,0.0346208058196002,0.0346554826824883,0.0346521556695226,0.0346204770147788,0.0345727831396932,0.0345221533328541,0.0344805653196695,0.0344572400462353,0.0344572400462353, +0.0346208058196002,0.0346208058196002,0.0346554826824883,0.0346521556695226,0.0346204770147788,0.0345727831396932,0.0345221533328541,0.0344805653196695,0.0344572400462353,0.0344572400462353, +0.0515567133026231,0.0515567133026231,0.0515939050370191,0.0515809931004643,0.051530923121849,0.0514602987069792,0.0513868260473079,0.0513269042586714,0.0512933651490103,0.0512933651490103, +0.0889772381473388,0.0889772381473388,0.089015204237715,0.0889786898065238,0.0888873822433737,0.0887666246446258,0.0886436054375387,0.0885439251271633,0.0884881720759488,0.0884881720759488, +0.153115952243561,0.153115952243561,0.153144737573689,0.153062476443669,0.152899297646422,0.15269397293258,0.152488128270512,0.152321757043706,0.152228413746518,0.152228413746518, +0.25103935808096,0.25103935808096,0.251038345490002,0.250878060258517,0.25060345820725,0.250271462955099,0.249942313376634,0.249675342651231,0.249523964651869,0.249523964651869, +0.387921630995742,0.387921630995742,0.387861236351614,0.387580593453523,0.387147636049477,0.386642104413582,0.386143937755577,0.385734274605699,0.385495674509329,0.385495674509329, +0.564047157598764,0.564047157598764,0.563900129761902,0.563445611856927,0.562803048040271,0.562079079825311,0.561365937894355,0.560760418590007,0.560384439818673,0.560384439818673, +0.772680348747666,0.772680348747666,0.77246097592376,0.771747178080865,0.770841598874795,0.769868620270606,0.768905102939539,0.768034308427977,0.767407195122985,0.767407195122985, + +00:21:56, +0.0346988343183792,0.0346988343183792,0.0347335472447798,0.0347302206823508,0.034698514212902,0.034650774966603,0.0346000950551407,0.0345584649637905,0.0345351158415283,0.0345351158415283, +0.0346988343183792,0.0346988343183792,0.0347335472447798,0.0347302206823508,0.034698514212902,0.034650774966603,0.0346000950551407,0.0345584649637905,0.0345351158415283,0.0345351158415283, +0.0516511105608237,0.0516511105608237,0.0516883268226793,0.0516754100453787,0.0516253113895862,0.0515546432696608,0.0514811231318775,0.0514211617021067,0.0513876001889569,0.0513876001889569, +0.0891002895814294,0.0891002895814294,0.0891382585367191,0.0891017328398535,0.0890104010189367,0.0888896101709296,0.0887665556939463,0.088666846208292,0.0886110767871083,0.0886110767871083, +0.153271380386879,0.153271380386879,0.153300142573145,0.153217871568286,0.153054689370058,0.152849362741484,0.152643516137584,0.152477143523717,0.152383799770671,0.152383799770671, +0.251218312595393,0.251218312595393,0.251217259205338,0.251056986081385,0.2507824303732,0.250450497221516,0.25012141095304,0.249854492904468,0.249703145683727,0.249703145683727, +0.388101470359141,0.388101470359141,0.388041042541666,0.387760466127676,0.387327640416526,0.38682227089888,0.386324267139755,0.385914740256142,0.38567622094757,0.38567622094757, +0.564195510562204,0.564195510562204,0.564048493036822,0.563594132097188,0.56295181407008,0.562228130718387,0.561515272628067,0.560909996301541,0.560534169244805,0.560534169244805, +0.772764788281834,0.772764788281834,0.772545491660353,0.771831972900133,0.770926758835498,0.769954177709766,0.768991055788891,0.768120618296417,0.767493759906177,0.767493759906177, + +00:21:57, +0.0347769380848433,0.0347769380848433,0.0348116870382684,0.0348083609357044,0.0347766266969117,0.034728842146281,0.0346781122013021,0.0346364400902754,0.034613067151963,0.034613067151963, +0.0347769380848433,0.0347769380848433,0.0348116870382684,0.0348083609357044,0.0347766266969117,0.034728842146281,0.0346781122013021,0.0346364400902754,0.034613067151963,0.034613067151963, +0.0517455641824573,0.0517455641824573,0.0517828049366599,0.0517698833387511,0.0517197560707315,0.0516490443382867,0.0515754768203295,0.0515154758300751,0.0514818919586899,0.0514818919586899, +0.0892233578619551,0.0892233578619551,0.089261329661683,0.0892247927402822,0.0891334367557408,0.0890126127869013,0.0888895231749694,0.0887897846251047,0.0887339988962511,0.0887339988962511, +0.153426767479453,0.153426767479453,0.153455506539153,0.153373225722906,0.153210040233626,0.153004711833784,0.152798863437807,0.152632489559813,0.152539145419557,0.152539145419557, +0.251397162715821,0.251397162715821,0.251396068593808,0.251235807640478,0.250961298353849,0.250629427400939,0.250300404545625,0.250033539257725,0.249882222861134,0.249882222861134, +0.388281160875769,0.388281160875769,0.388220699975886,0.387940190053432,0.38750749600667,0.387002288574451,0.3865044476853,0.386095057040735,0.385856618499158,0.385856618499158, +0.564343714874799,0.564343714874799,0.564196707706745,0.563742503611512,0.563100431168137,0.562377032447168,0.561664457969474,0.561059424421033,0.560683748947863,0.560683748947863, +0.772849134310177,0.772849134310177,0.772629913820635,0.771916673841071,0.771011824521804,0.770039640448805,0.769076913516905,0.768206832659399,0.767580228904461,0.767580228904461, + +00:21:58, +0.0348551170319536,0.0348551170319536,0.0348899019759003,0.0348865763425342,0.0348548143797814,0.0348069845917388,0.0347562046843958,0.0347144906122232,0.0346910938906633,0.0346910938906633, +0.0348551170319536,0.0348551170319536,0.0348899019759003,0.0348865763425342,0.0348548143797814,0.0348069845917388,0.0347562046843958,0.0347144906122232,0.0346910938906633,0.0346910938906633, +0.0518400740727277,0.0518400740727277,0.0518773392842055,0.051864412885825,0.0518142570704931,0.0517435018180092,0.0516698870177573,0.0516098465476241,0.0515762403632318,0.0515762403632318, +0.0893464429046685,0.0893464429046685,0.0893844175284555,0.0893478694236253,0.089256489369453,0.0891356324079831,0.0890125077958066,0.0889127402925989,0.088856938318262,0.088856938318262, +0.153582113496862,0.153582113496862,0.153610829447368,0.153528538883081,0.153365350212399,0.153160020184349,0.152954170145618,0.152787795126066,0.152694450667045,0.152694450667045, +0.251575908529869,0.251575908529869,0.251574773742993,0.251414525023209,0.251140062236282,0.250808253579992,0.250479294240505,0.250212481796701,0.250061196269556,0.250061196269556, +0.388460702751347,0.388460702751347,0.388400208859825,0.388119765436226,0.387687203025167,0.387182157645274,0.386684479596879,0.386275225163884,0.386036867368361,0.386036867368361, +0.56449177078881,0.56449177078881,0.564344774023788,0.563890726652152,0.563248899586904,0.562525785264292,0.561813494171355,0.561208703201396,0.560833179180871,0.560833179180871, +0.772933387007774,0.772933387007774,0.772714242579803,0.772001281079425,0.771096796110141,0.770125008664852,0.769162676301375,0.768292951695343,0.767666602296731,0.767666602296731, + +00:21:59, +0.0349333710726363,0.0349333710726363,0.0349681919705866,0.0349648668157558,0.03493307717445,0.0348852022159528,0.0348343724174432,0.0347926164426961,0.0347691959707158,0.0347691959707158, +0.0349333710726363,0.0349333710726363,0.0349681919705866,0.0349648668157558,0.03493307717445,0.0348852022159528,0.0348343724174432,0.0347926164426961,0.0347691959707158,0.0347691959707158, +0.0519346401369236,0.0519346401369236,0.0519719297706456,0.051958998591929,0.0519088142941634,0.0518380156140647,0.0517643536293388,0.0517042737598849,0.0516706453076887,0.0516706453076887, +0.0894695446255489,0.0894695446255489,0.0895075220531118,0.0894709628059245,0.089379558775967,0.089258668949844,0.0891355094718836,0.089035713125999,0.0889798949682529,0.0889798949682529, +0.153737418414922,0.153737418414922,0.153766111273681,0.153683811024599,0.153520619281892,0.153315287768289,0.15310943623569,0.15294306019679,0.152849715487246,0.152849715487246, +0.251754550125184,0.251754550125184,0.251753374740496,0.251593138317019,0.251318722107613,0.250986975845325,0.250658080123829,0.250391320607125,0.25024006599449,0.25024006599449, +0.388640096191267,0.388640096191267,0.388579569398703,0.388299192481163,0.387866761676945,0.387361878316006,0.386864363078829,0.386455244829669,0.386216967759125,0.386216967759125, +0.564639678555928,0.564639678555928,0.564492692239501,0.564038801470792,0.563397219578278,0.562674389421833,0.561962381485922,0.561357832894977,0.56098246019629,0.56098246019629, +0.773017546549259,0.773017546549259,0.772798478112607,0.772085794790488,0.771181673776489,0.770210282534578,0.769248344319648,0.768378975582214,0.767752880261427,0.767752880261427, + +00:22:00, +0.035011700119783,0.035011700119783,0.0350465569352042,0.0350432322682506,0.0350114149938211,0.034963494931864,0.0349126153134296,0.0348708174947201,0.0348473733051709,0.0348473733051709, +0.035011700119783,0.035011700119783,0.0350465569352042,0.0350432322682506,0.0350114149938211,0.034963494931864,0.0349126153134296,0.0348708174947201,0.0348473733051709,0.0348473733051709, +0.0520292622804188,0.0520292622804188,0.0520665763013948,0.0520536403624762,0.05200342764712,0.0519325856317744,0.0518588765603358,0.0517987573720724,0.0517651066972506,0.0517651066972506, +0.089592662940802,0.089592662940802,0.0896306431519531,0.0895940728034476,0.0895026448914021,0.0893817223283791,0.0892585281188526,0.089158703040756,0.0891028687615625,0.0891028687615625, +0.153892682209689,0.153892682209689,0.153921351994222,0.153839042123488,0.153675847417853,0.153470514560955,0.153264661682939,0.15309828474654,0.153004939854514,0.153004939854514, +0.251933087589441,0.251933087589441,0.251931871673947,0.251771647609372,0.251497278054985,0.251165594283619,0.250836762281775,0.25057005577476,0.250418832121467,0.250418832121467, +0.388819341400592,0.388819341400592,0.388758781797408,0.388478471393019,0.388046172166607,0.387541450790973,0.387044098335165,0.386635116241845,0.386396919875073,0.386396919875073, +0.564787438427282,0.564787438427282,0.564640462604865,0.56418672831855,0.563545391393584,0.562822845171295,0.56211112016482,0.561506813753556,0.561131592246014,0.561131592246014, +0.773101613108819,0.773101613108819,0.772882620593351,0.772170215149108,0.771266457696377,0.77029546223421,0.769333917748614,0.768464904497524,0.767839062976533,0.767839062976533, + +00:22:01, +0.0350901040862511,0.0350901040862511,0.0351249967825962,0.0351216726128664,0.0350898277507648,0.0350418626523787,0.0349909332853056,0.0349490936812859,0.0349256258070432,0.0349256258070432, +0.0350901040862511,0.0350901040862511,0.0351249967825962,0.0351216726128664,0.0350898277507648,0.0350418626523787,0.0349909332853056,0.0349490936812859,0.0349256258070432,0.0349256258070432, +0.0521239404086722,0.0521239404086722,0.0521612787819528,0.052148338102965,0.0520980970348251,0.0520272117765438,0.0519534557160945,0.051893297289486,0.0518596244371912,0.0518596244371912, +0.0897157977668591,0.0897157977668591,0.0897537807415061,0.0897171993326872,0.0896257476321033,0.0895047924597092,0.0893815636525914,0.0892817099525471,0.0892258596137554,0.0892258596137554, +0.154047904857455,0.154047904857455,0.154076551585356,0.153994232156011,0.153831034596273,0.153625700537935,0.15341984646252,0.15325346875011,0.15316012374344,0.15316012374344, +0.25211152101034,0.25211152101034,0.252110264630998,0.251950052987757,0.251675730165562,0.251344108981581,0.25101534080055,0.250748687385397,0.250597494736048,0.250597494736048, +0.388998438584053,0.388998438584053,0.388937846260501,0.388657602376239,0.388225434698423,0.387720875274177,0.387223685569574,0.386814839603847,0.386576723919503,0.386576723919503, +0.564935050653431,0.564935050653431,0.564788085370301,0.56433450744598,0.563693415283587,0.56297115276362,0.562259710459132,0.561655646028351,0.561280575581373,0.561280575581373, +0.773185586860196,0.773185586860196,0.772966670195897,0.772254542329686,0.771351148044887,0.770380547939521,0.769419396764716,0.768550738618336,0.767925150619583,0.767925150619583, + +00:22:02, +0.0351685828848646,0.0351685828848646,0.0352035114255723,0.0352001877624172,0.0351683153581171,0.0351203052903696,0.0350693262459872,0.0350274449153489,0.035003953389312,0.035003953389312, +0.0351685828848646,0.0351685828848646,0.0352035114255723,0.0352001877624172,0.0351683153581171,0.0351203052903696,0.0350693262459872,0.0350274449153489,0.035003953389312,0.035003953389312, +0.0522186744272279,0.0522186744272279,0.0522560371179046,0.052243091718979,0.052192822362826,0.0521218939538635,0.0520480910020455,0.0519878934175088,0.0519541984328683,0.0519541984328683, +0.0898389490203765,0.0898389490203765,0.0898769347385219,0.0898403423103608,0.0897488669146401,0.0896278792601798,0.0895046159892031,0.0894047337772746,0.0893488674406219,0.0893488674406219, +0.154203086334748,0.154203086334748,0.154231710023687,0.154149381098668,0.153986180793374,0.153780845675054,0.153574990549828,0.153408612182536,0.153315267128859,0.153315267128859, +0.252289850475604,0.252289850475604,0.252288553699327,0.25212835453969,0.251854078526537,0.251522520025942,0.251193815766389,0.250927215524859,0.250776053923824,0.250776053923824, +0.389177387946053,0.389177387946053,0.389116762992215,0.388836585634943,0.388404549476339,0.387900151969293,0.387403124985423,0.386994415118783,0.386756380095392,0.386756380095392, +0.565082515484373,0.565082515484373,0.564935560785661,0.56448213910307,0.563841291498487,0.563119312449186,0.562408152619377,0.561804329970015,0.561429410453136,0.561429410453136, +0.773269467976692,0.773269467976692,0.77305062709366,0.772338776506181,0.771435744996655,0.77046553982584,0.769504781543947,0.768636478121259,0.768011143367656,0.768011143367656, + +00:22:03, +0.0352471364284144,0.0352471364284144,0.0352821007769096,0.0352787776296848,0.0352468777286813,0.0351988227586755,0.0351477941083561,0.0351058711098303,0.0350823559649217,0.0350823559649217, +0.0352471364284144,0.0352471364284144,0.0352821007769096,0.0352787776296848,0.0352468777286813,0.0351988227586755,0.0351477941083561,0.0351058711098303,0.0350823559649217,0.0350823559649217, +0.0523134642417153,0.0523134642417153,0.0523508512149204,0.0523379011161869,0.0522876035367548,0.0522166320693086,0.0521427823237039,0.0520825456616085,0.0520488285897237,0.0520488285897237, +0.0899621166182351,0.0899621166182351,0.0900001050599758,0.0899635016534098,0.089872002655806,0.0897509826463608,0.0896276850450154,0.0895277744310658,0.0894718921581771,0.0894718921581771, +0.154358226618334,0.154358226618334,0.154386827286049,0.154304488928193,0.154141285985619,0.153935949948373,0.153730093920491,0.15356371501909,0.153470369985843,0.153470369985843, +0.252468076072978,0.252468076072978,0.252466738966636,0.252306552352708,0.252032323225126,0.251700827503464,0.251372187265556,0.251105640278995,0.250954509770419,0.250954509770419, +0.389356189690669,0.389356189690669,0.389295532196452,0.389015421372919,0.388583516703974,0.38807928107967,0.38758241678575,0.38717384298944,0.386935888605396,0.386935888605396, +0.565229833169544,0.565229833169544,0.565082889100241,0.564629623539249,0.563989020287921,0.563267324477809,0.562556446895513,0.561952865828643,0.56157809711151,0.56157809711151, +0.773353256631165,0.773353256631165,0.773134491459617,0.772422917852105,0.771520248725874,0.770550438068049,0.769590072261853,0.768722123182456,0.768097041397386,0.768097041397386, + +00:22:04, +0.0353257646296591,0.0353257646296591,0.0353607647493531,0.0353574421274185,0.0353255147752282,0.0352774149701025,0.0352263367852608,0.035184372177617,0.0351608334467827,0.0351608334467827, +0.0353257646296591,0.0353257646296591,0.0353607647493531,0.0353574421274185,0.0353255147752282,0.0352774149701025,0.0352263367852608,0.035184372177617,0.0351608334467827,0.0351608334467827, +0.0524083097578493,0.0524083097578493,0.0524457209787559,0.0524327662003427,0.0523824404623291,0.052311426028539,0.0522375295866694,0.0521772539273368,0.0521435148132836,0.0521435148132836, +0.0900853004775395,0.0900853004775395,0.0901232916230668,0.090086677278999,0.0899951547726183,0.089874102535046,0.08975077073658,0.0896508318302721,0.0895949336826604,0.0895949336826604, +0.154513325685208,0.154513325685208,0.154541903349514,0.154459555621553,0.154296350149699,0.154091013334189,0.153885156550378,0.15371877723528,0.1536254322897,0.1536254322897, +0.252646197890233,0.252646197890233,0.252644820520646,0.25248464651437,0.252210464348567,0.251879031500932,0.251550455384341,0.251283961733687,0.251132862361483,0.251132862361483, +0.389534844021647,0.389534844021647,0.389474154076789,0.389194109793631,0.388762336584619,0.388258262808333,0.387761561173275,0.387353123418285,0.38711524965185,0.38711524965185, +0.565377003957819,0.565377003957819,0.565230070562774,0.564776961003385,0.564136601900967,0.563415189098745,0.562704593536938,0.56210125385377,0.561726635806144,0.561726635806144, +0.773436952996035,0.773436952996035,0.773218263466302,0.772506966540534,0.771604659406292,0.770635242840584,0.769675269093535,0.768807673977644,0.768182844884957,0.768182844884957, + +00:22:05, +0.0354044674013255,0.0354044674013255,0.0354395032556161,0.0354361811683358,0.0354042264104964,0.0353560818374242,0.0353049541895168,0.035262948031563,0.0352393857477718,0.0352393857477718, +0.0354044674013255,0.0354044674013255,0.0354395032556161,0.0354361811683358,0.0354042264104964,0.0353560818374242,0.0353049541895168,0.035262948031563,0.0352393857477718,0.0352393857477718, +0.0525032108814301,0.0525032108814301,0.0525406463152523,0.0525276868772859,0.0524773330453515,0.0524062757372998,0.0523323326966265,0.05227201812033,0.0522382570091581,0.0522382570091581, +0.0902085005156177,0.0902085005156177,0.0902464943452167,0.0902098691045162,0.0901183231823171,0.0899972388432523,0.0898738729806719,0.0897739058914686,0.089717991930535,0.089717991930535, +0.154668383512603,0.154668383512603,0.154696938191383,0.15461458115595,0.154451373262543,0.154246035809034,0.154040178415589,0.153873798806854,0.153780454015977,0.153780454015977, +0.25282421601516,0.25282421601516,0.252822798449103,0.252662637112259,0.252388501984125,0.252057132105154,0.25172862020906,0.251462179974841,0.251311111782696,0.251311111782696, +0.389713351142407,0.389713351142407,0.389652628836475,0.389372651100215,0.388941009321242,0.388437097357983,0.387940558350391,0.387532256607461,0.387294463436768,0.387294463436768, +0.565524028097515,0.565524028097515,0.565377105421436,0.564924151743787,0.564284036586145,0.563562906560693,0.562852592792493,0.562249494294373,0.561875026786128,0.561875026786128, +0.773520557243284,0.773520557243284,0.773301943285814,0.772590922744098,0.771688977211217,0.77071995431744,0.769760372213648,0.768893130682092,0.768268554006106,0.768268554006106, + +00:22:06, +0.0354832446561089,0.0354832446561089,0.0355183162083807,0.0355149946651235,0.0354830125471934,0.0354348232733823,0.0353836462339072,0.0353415985844891,0.0353180127807325,0.0353180127807325, +0.0354832446561089,0.0354832446561089,0.0355183162083807,0.0355149946651235,0.0354830125471934,0.0354348232733823,0.0353836462339072,0.0353415985844891,0.0353180127807325,0.0353180127807325, +0.0525981675183437,0.0525981675183437,0.0526356271303362,0.0526226630529413,0.0525722811917099,0.0525011811014211,0.0524271915593441,0.0523668381463091,0.052333055083042,0.052333055083042, +0.0903317166500203,0.0903317166500203,0.0903697131440695,0.0903330770475712,0.0902415078023649,0.0901203914882192,0.0899969916942892,0.0898969965314533,0.089841066818487,0.089841066818487, +0.154823400077981,0.154823400077981,0.154851931789191,0.154769565508814,0.154606355301311,0.154401017349671,0.154195159492462,0.154028779709791,0.153935435140454,0.153935435140454, +0.25300213053557,0.25300213053557,0.253000672839772,0.252840524233979,0.252566436219084,0.252235129402964,0.251906681826057,0.251640295088393,0.251489258119766,0.251489258119766, +0.389891711256042,0.389891711256042,0.389830956678432,0.389551045495483,0.389119535116482,0.388615784930997,0.388119408519171,0.387711242758792,0.387473530161842,0.387473530161842, +0.565670905836393,0.565670905836393,0.565523993923845,0.565071196008209,0.564431324591416,0.563710477111794,0.563000444910463,0.562397587398874,0.562023270299999,0.562023270299999, +0.773604069544456,0.773604069544456,0.773385531089811,0.772674786634994,0.771773202313516,0.770804572672171,0.769845381796407,0.768978493470626,0.768354168936125,0.768354168936125, + +00:22:07, +0.0355620963066739,0.0355620963066739,0.0355972035202986,0.0355938825304374,0.0355618730979957,0.0355136391906873,0.0354624128311833,0.0354203237491839,0.035396714458476,0.035396714458476, +0.0355620963066739,0.0355620963066739,0.0355972035202986,0.0355938825304374,0.0355618730979957,0.0355136391906873,0.0354624128311833,0.0354203237491839,0.035396714458476,0.035396714458476, +0.0526931795745616,0.0526931795745616,0.0527306633300201,0.0527176946333197,0.0526672848073778,0.0525961420268181,0.0525221060806764,0.0524617139110794,0.0524279089407144,0.0524279089407144, +0.0904549487985201,0.0904549487985201,0.0904929479374912,0.0904563010259957,0.0903647085504458,0.0902435603874081,0.0901201267946521,0.0900201036672469,0.0899641582634255,0.0899641582634255, +0.154978375359037,0.154978375359037,0.155006884120703,0.154924508657808,0.154761296243391,0.154555957933096,0.154350099757565,0.154183719920307,0.154090375639149,0.154090375639149, +0.253179941539299,0.253179941539299,0.253178443780441,0.253018307967155,0.252744267140753,0.25241302348122,0.252084640321698,0.251818307160304,0.251667301458429,0.251667301458429, +0.390069924565319,0.390069924565319,0.390009137805258,0.389729293181918,0.389297914172656,0.388794325729427,0.388298111881367,0.387890082073782,0.387652450028447,0.387652450028447, +0.565817637421656,0.565817637421656,0.565670736317067,0.565218094043847,0.564578466164188,0.563857900999635,0.563148150138579,0.562545533415141,0.562171366595737,0.562171366595737, +0.773687490070659,0.773687490070659,0.773469027049518,0.772758558384978,0.771857334885617,0.770889098077889,0.769930298015583,0.769063762517631,0.768439689849865,0.768439689849865, + +00:22:08, +0.0356410222656547,0.0356410222656547,0.0356761651039915,0.0356728446769035,0.0356408079755495,0.0355925295020189,0.0355412538940652,0.0354991234384044,0.0354754906937812,0.0354754906937812, +0.0356410222656547,0.0356410222656547,0.0356761651039915,0.0356728446769035,0.0356408079755495,0.0355925295020189,0.0355412538940652,0.0354991234384044,0.0354754906937812,0.0354754906937812, +0.0527882469561412,0.0527882469561412,0.0528257548204022,0.0528127815245171,0.0527623437984141,0.0526911584194914,0.0526170761665625,0.052556645320531,0.0525228184880391,0.0525228184880391, +0.0905781968791113,0.0905781968791113,0.0906161986435688,0.0905795409578423,0.0904879253444654,0.0903667454585018,0.0902432781992023,0.0901432272160917,0.090087266182481,0.090087266182481, +0.155133309333693,0.155133309333693,0.155161795163912,0.155079410580824,0.154916196066407,0.154710857536536,0.154504999187701,0.154338619414849,0.154245275488309,0.154245275488309, +0.2533576491142,0.2533576491142,0.253356111358915,0.253195988399431,0.252921994836459,0.252590814426802,0.252262495782378,0.251996216276561,0.251845241884447,0.251845241884447, +0.390247991272679,0.390247991272679,0.390187172419222,0.38990739436168,0.389476146691756,0.388972719955005,0.388476668638408,0.388068774753612,0.387831223237639,0.387831223237639, +0.565964223099956,0.565964223099956,0.565817332847611,0.565364846097347,0.564725461551315,0.564005178471249,0.563295708724017,0.562693332590487,0.562319315920771,0.562319315920771, +0.77377081899257,0.77377081899257,0.773552431335726,0.772842238165373,0.771941375099513,0.770973530707269,0.770015121044509,0.769148937997048,0.768525116921731,0.768525116921731, + +00:22:09, +0.0357200224456559,0.0357200224456559,0.0357552008720513,0.0357518810171182,0.0357198170924711,0.0356714941200263,0.0356201693352419,0.0355779975648763,0.0355543413993959,0.0355543413993959, +0.0357200224456559,0.0357200224456559,0.0357552008720513,0.0357518810171182,0.0357198170924711,0.0356714941200263,0.0356201693352419,0.0355779975648763,0.0355543413993959,0.0355543413993959, +0.0528833695692256,0.0528833695692256,0.0529209015076665,0.0529079236327156,0.0528574580709632,0.0527862301855268,0.0527121017230263,0.052651632280639,0.0526177836309644,0.0526177836309644, +0.0907014608100091,0.0907014608100091,0.09073946518061,0.090702796761384,0.0906111581025495,0.0904899466194042,0.0903664458256029,0.0902663670954514,0.090210390493006,0.090210390493006, +0.155288201980104,0.155288201980104,0.155316664897042,0.155234271255984,0.155071054748207,0.15486571613745,0.154659857759901,0.154493478170097,0.154400134664419,0.154400134664419, +0.253535253348146,0.253535253348146,0.253533675663022,0.253373565618473,0.253099619393552,0.252768502326613,0.252440248294511,0.252174022523177,0.252023079483609,0.252023079483609, +0.390425911580239,0.390425911580239,0.390365060722272,0.390085349236605,0.389654232875451,0.389150967809139,0.388655078991404,0.388247320999148,0.388009849990153,0.388009849990153, +0.566110663117391,0.566110663117391,0.565963783761437,0.5655114524148,0.564872310999098,0.564152309773117,0.563443120913403,0.562840985171676,0.56246711852198,0.56246711852198, +0.773854056480431,0.773854056480431,0.77363574411879,0.772925826147066,0.77202532312676,0.771057870732548,0.770099851056078,0.769234020082381,0.768610450325689,0.768610450325689, + +00:22:10, +0.0357990967592528,0.0357990967592528,0.0358343107370413,0.0358309914636488,0.0357989003613476,0.0357505329573294,0.0356991590673724,0.0356569460412944,0.0356332664880364,0.0356332664880364, +0.0357990967592528,0.0357990967592528,0.0358343107370413,0.0358309914636488,0.0357989003613476,0.0357505329573294,0.0356991590673724,0.0356569460412944,0.0356332664880364,0.0356332664880364, +0.052978547320044,0.052978547320044,0.053016103298083,0.053003120864183,0.0529526275312553,0.0528813572310957,0.052807182656177,0.0527466746974632,0.0527128042755235,0.0527128042755235, +0.0908247405096489,0.0908247405096489,0.0908627474671423,0.0908260683551139,0.0907344067430442,0.0906131637882391,0.0904896295917373,0.0903895232230103,0.0903335311125732,0.0903335311125732, +0.15544305327665,0.15544305327665,0.155471493298543,0.155389090661635,0.15522587226687,0.155020533713523,0.154814675451429,0.154648296162961,0.15455495314419,0.15455495314419, +0.25371275432903,0.25371275432903,0.253711136780605,0.253551039711965,0.253277140899402,0.252946087267575,0.252617897944538,0.25235172598619,0.252200814341728,0.252200814341728, +0.39060368568979,0.39060368568979,0.390542802916029,0.390263158008204,0.389832172925086,0.389329069492917,0.388833343141143,0.388425721010935,0.388188330486409,0.388188330486409, +0.566256957719509,0.566256957719509,0.566110089303953,0.565657913241747,0.565019014753287,0.56429929515117,0.563590386952813,0.562988491404924,0.562614774645691,0.562614774645691, +0.773937202704054,0.773937202704054,0.773718965568638,0.773009322500512,0.772109179138478,0.771142118325528,0.770184488222748,0.769319008946695,0.768695690235268,0.768695690235268, + +00:22:11, +0.0358782451189922,0.0358782451189922,0.0359134946114962,0.0359101759290343,0.0358780576947374,0.0358296459265186,0.0357782230030861,0.0357359687803236,0.0357122658723893,0.0357122658723893, +0.0358782451189922,0.0358782451189922,0.0359134946114962,0.0359101759290343,0.0358780576947374,0.0358296459265186,0.0357782230030861,0.0357359687803236,0.0357122658723893,0.0357122658723893, +0.0530737801149114,0.0530737801149114,0.0531113600980078,0.0530983731252731,0.0530478520856063,0.0529765394624547,0.0529023188722093,0.0528417724771484,0.0528078803278343,0.0528078803278343, +0.0909480358966859,0.0909480358966859,0.0909860454219129,0.0909493556577445,0.090857671184515,0.0907363968833501,0.0906128294157088,0.0905126955166731,0.0904566879589759,0.0904566879589759, +0.155597863201939,0.155597863201939,0.155626280347092,0.155543868776352,0.1553806486007,0.15517531024267,0.154969452239776,0.154803073370584,0.154709730904566,0.154709730904566, +0.253890152144763,0.253890152144763,0.253888494799527,0.253728410767608,0.253454559441397,0.253123569336634,0.25279544481892,0.25252932675166,0.252378446544644,0.252378446544644, +0.390781313802799,0.390781313802799,0.390720399201793,0.390440820877665,0.390009967041685,0.389507025207103,0.389011461288097,0.3886039749892,0.388366664926508,0.388366664926508, +0.56640310715131,0.56640310715131,0.56625624972002,0.565804228823182,0.565165573059085,0.564446134850791,0.563737507087776,0.563135851535895,0.562762284537685,0.562762284537685, +0.774020257832821,0.774020257832821,0.773802095854764,0.773092727395737,0.772192943305358,0.771226273657577,0.77026903271654,0.769403904762618,0.768780836823556,0.768780836823556, + +00:22:12, +0.0359574674373924,0.0359574674373924,0.0359927524079229,0.0359894343257857,0.0359572890051706,0.0359088329401556,0.035857361054983,0.0358150656945991,0.0357913394651106,0.0357913394651106, +0.0359574674373924,0.0359574674373924,0.0359927524079229,0.0359894343257857,0.0359572890051706,0.0359088329401556,0.035857361054983,0.0358150656945991,0.0357913394651106,0.0357913394651106, +0.0531690678602293,0.0531690678602293,0.0532066718138828,0.0531936803224257,0.053143131640418,0.0530717767859463,0.0529975102774027,0.0529369255259246,0.0529030116940997,0.0529030116940997, +0.0910713468899946,0.0910713468899946,0.0911093589638876,0.0910726585882066,0.090980951345746,0.0908596458232998,0.0907360452158402,0.0906358838945636,0.090579860950227,0.090579860950227, +0.155752631734807,0.155752631734807,0.15578102602159,0.155698605578936,0.15553538372823,0.155330045703033,0.155124188102664,0.154957809770334,0.154864467922723,0.154864467922723, +0.254067446883272,0.254067446883272,0.25406574980767,0.253905678873123,0.253631875106945,0.253300948620755,0.252972889004143,0.252706824905674,0.252555976178218,0.252555976178218, +0.390958796120412,0.390958796120412,0.390897849780537,0.390618338045853,0.390187615425947,0.389684835152143,0.389189433632415,0.388782083133853,0.388544853510233,0.388544853510233, +0.566549111657245,0.566549111657245,0.566402265253951,0.565950399403552,0.565311986161147,0.564592829116815,0.563884481563272,0.56328306580971,0.562909648443196,0.562909648443196, +0.774103222035685,0.774103222035685,0.773885135146237,0.773176041002332,0.772276615797656,0.771310336899628,0.770353484709041,0.769488707702342,0.768865890263207,0.768865890263207, + +00:22:13, +0.0360367636269445,0.0360367636269445,0.0360720840388006,0.0360687665663864,0.0360365942051497,0.0359880939107742,0.0359365731356345,0.0358942366967271,0.0358704871788276,0.0358704871788276, +0.0360367636269445,0.0360367636269445,0.0360720840388006,0.0360687665663864,0.0360365942051497,0.0359880939107742,0.0359365731356345,0.0358942366967271,0.0358704871788276,0.0358704871788276, +0.053264410462485,0.053264410462485,0.0533020383522363,0.0532890423621666,0.0532384661021782,0.0531670691079986,0.0530927567781226,0.053032133750107,0.0529981982806077,0.0529981982806077, +0.0911946734086679,0.0911946734086679,0.0912326880122504,0.0911959770656495,0.0911042471457397,0.0909829105268695,0.0908592769106729,0.090759088275025,0.0907030500045584,0.0907030500045584, +0.155907358854311,0.155907358854311,0.155935730301166,0.155853301048412,0.155690077628217,0.155484740072979,0.155278883018039,0.15511250533981,0.155019164176061,0.155019164176061, +0.254244638632505,0.254244638632505,0.254242901892929,0.254082844116247,0.253809087983471,0.253478225206923,0.253150230586711,0.252884220534339,0.252733403328338,0.252733403328338, +0.391136132843449,0.391136132843449,0.391075154852915,0.39079570971331,0.390365118278254,0.389862499528162,0.38936726037393,0.388960045644485,0.388722896437052,0.388722896437052, +0.56669497148122,0.56669497148122,0.566548136149514,0.566096425226755,0.565458254303581,0.564739378193531,0.564031310623736,0.563430134470945,0.563056866606914,0.563056866606914, +0.774186095481174,0.774186095481174,0.773968083611696,0.773259263489465,0.7723601967852,0.771394308222186,0.770437844371406,0.769573417937626,0.768950850726438,0.768950850726438, + +00:22:14, +0.0361161336001121,0.0361161336001121,0.0361514894165821,0.0361481725632932,0.0361159732071499,0.0360674287508805,0.0360158591575839,0.0359734816992851,0.0359497089261383,0.0359497089261383, +0.0361161336001121,0.0361161336001121,0.0361514894165821,0.0361481725632932,0.0361159732071499,0.0360674287508805,0.0360158591575839,0.0359734816992851,0.0359497089261383,0.0359497089261383, +0.0533598078282521,0.0533598078282521,0.0533974596196831,0.053384459151108,0.0533338553774605,0.0532624163351255,0.0531880582808196,0.0531273970560957,0.0530934399937313,0.0530934399937313, +0.0913180153720168,0.0913180153720168,0.0913560324864032,0.0913193110094399,0.0912275585037164,0.0911061909130582,0.0909825244189664,0.0908823085766185,0.0908262550404204,0.0908262550404204, +0.156062044539735,0.156062044539735,0.156090393165168,0.156007955164029,0.15584473027964,0.155639393331103,0.155433536964075,0.155267160056837,0.155173819642209,0.155173819642209, +0.254421727480422,0.254421727480422,0.254419951143218,0.254259906584734,0.253986198158421,0.253655399182141,0.253327469653152,0.253061513723784,0.252910728080913,0.252910728080913, +0.391313324172408,0.391313324172408,0.391252314619257,0.390972936080259,0.390542475798663,0.390040018534966,0.389544941712156,0.389137862720374,0.388900793906118,0.388900793906118, +0.566840686866596,0.566840686866596,0.566693862649932,0.566242306536147,0.565604377729953,0.564885782324687,0.564177994513063,0.56357705776363,0.563203939272985,0.563203939272985, +0.77426887833739,0.77426887833739,0.774050941419356,0.773342395025873,0.772443686437389,0.771478187795324,0.770522111874359,0.769658035639798,0.769035718385034,0.769035718385034, + +00:22:15, +0.0361955772693324,0.0361955772693324,0.0362309684536933,0.0362276522289363,0.0361954259236197,0.0361468373729532,0.0360952190333469,0.0360528006148225,0.0360290046196126,0.0360290046196126, +0.0361955772693324,0.0361955772693324,0.0362309684536933,0.0362276522289363,0.0361954259236197,0.0361468373729532,0.0360952190333469,0.0360528006148225,0.0360290046196126,0.0360290046196126, +0.0534552598641909,0.0534552598641909,0.0534929355229239,0.0534799305959483,0.0534292993729248,0.0533578183739267,0.0532834146920301,0.0532227153503766,0.0531887367399288,0.0531887367399288, +0.0914413726995696,0.0914413726995696,0.0914793923059647,0.0914426603391617,0.0913508853391134,0.0912294869010823,0.091105787659698,0.0910055447181233,0.0909494759764814,0.0909494759764814, +0.156216688770585,0.156216688770585,0.156245014593172,0.156162567905257,0.155999341661705,0.15579400545622,0.155588149919171,0.155421773899465,0.155328434299025,0.155328434299025, +0.254598713515003,0.254598713515003,0.254596897646468,0.254436866366354,0.254163205719252,0.253832470633433,0.253504606290011,0.253238704560162,0.253087950521874,0.253087950521874, +0.391490370307468,0.391490370307468,0.391429329279572,0.391150017346598,0.390719688186913,0.390217392372041,0.389722477846291,0.389315534560478,0.389078546116266,0.389078546116266, +0.566986258056194,0.566986258056194,0.566839444997888,0.566388043574543,0.565750356683283,0.565032041753485,0.564324533474602,0.563723835931257,0.563350866685014,0.563350866685014, +0.77435157077201,0.77435157077201,0.774133708737007,0.773425435779871,0.772527084923195,0.771561975788686,0.770606287388193,0.769742560979752,0.769120493410348,0.769120493410348, + +00:22:16, +0.0362750945470166,0.0362750945470166,0.0363105210625349,0.0363072054757202,0.0362749522669818,0.0362263196894449,0.0361746526754122,0.0361321933558615,0.0361083741717926,0.0361083741717926, +0.0362750945470166,0.0362750945470166,0.0363105210625349,0.0363072054757202,0.0362749522669818,0.0362263196894449,0.0361746526754122,0.0361321933558615,0.0361083741717926,0.0361083741717926, +0.0535507664770477,0.0535507664770477,0.0535884659687461,0.0535754566034721,0.0535247979953171,0.0534532751310879,0.053378825918376,0.0533180885395209,0.0532840884257436,0.0532840884257436, +0.0915647453110716,0.0915647453110716,0.0916027673907703,0.091566024974615,0.0914742275715845,0.091352798410375,0.0912290665520619,0.0911287966185358,0.091072712731627,0.091072712731627, +0.156371291526591,0.156371291526591,0.156399594564971,0.15631713925179,0.156153911753837,0.155948576427372,0.15574272186195,0.155576346845972,0.15548300812459,0.15548300812459, +0.25477559682424,0.25477559682424,0.254773741490622,0.254613723548893,0.254340110753444,0.25400943964784,0.253681640583856,0.253415793129645,0.253265070737177,0.253265070737177, +0.391667271448484,0.391667271448484,0.391606199033547,0.391326953711907,0.390896755642422,0.390394621238555,0.389899868975215,0.389493061363441,0.389256153266018,0.389256153266018, +0.56713168529229,0.56713168529229,0.566984883435523,0.566533636584216,0.565896191406054,0.565178156722588,0.564470927751163,0.563870469216776,0.563497649086065,0.563497649086065, +0.774434172952288,0.774434172952288,0.774216385732017,0.773508385919345,0.772610392411163,0.771645672371491,0.770690371082774,0.769826994127954,0.769205175973302,0.769205175973302, + +00:22:17, +0.0363546853455501,0.0363546853455501,0.0363901471554816,0.0363868322160237,0.0363545521496329,0.0363058756127818,0.0362541599962418,0.0362116598348968,0.0361878174951932,0.0361878174951932, +0.0363546853455501,0.0363546853455501,0.0363901471554816,0.0363868322160237,0.0363545521496329,0.0363058756127818,0.0362541599962418,0.0362116598348968,0.0361878174951932,0.0361878174951932, +0.0536463275736557,0.0536463275736557,0.0536840508640235,0.0536710370805505,0.0536203511514696,0.0535487865133808,0.0534742918665649,0.053413516530185,0.0533794949578046,0.0533794949578046, +0.0916881331264841,0.0916881331264841,0.0917261576608713,0.0916894048358158,0.0915975851209994,0.0914761253605856,0.0913523610154688,0.0912520641970691,0.0911959652249595,0.0911959652249595, +0.156525852787701,0.156525852787701,0.156554133060581,0.156471669183543,0.156308440535684,0.156103106223821,0.155897252771258,0.155730878874857,0.155637541097209,0.155637541097209, +0.254952377496143,0.254952377496143,0.254950482763639,0.25479047822015,0.254516913348488,0.254186306312417,0.253858572621272,0.253592779518426,0.253442088812794,0.253442088812794, +0.39184402779499,0.39184402779499,0.39178292408055,0.391503745375445,0.39107367836429,0.39057170533336,0.39007711529749,0.389670443327593,0.389433615553582,0.389433615553582, +0.567276968816623,0.567276968816623,0.567130178204437,0.566679085806897,0.566041882140208,0.565324127474119,0.564617177585019,0.564016957862597,0.563644286718666,0.563644286718666, +0.77451668504506,0.77451668504506,0.774298972571332,0.773591245611763,0.772693609069417,0.77172927771253,0.77077436312754,0.769911335254442,0.769289766244389,0.769289766244389, + +00:22:18, +0.0364343495772936,0.0364343495772936,0.0364698466448839,0.0364665323622013,0.0364342254839447,0.0363855050553648,0.0363337409082716,0.0362911999643972,0.0362673345023025,0.0362673345023025, +0.0364343495772936,0.0364343495772936,0.0364698466448839,0.0364665323622013,0.0364342254839447,0.0363855050553648,0.0363337409082716,0.0362911999643972,0.0362673345023025,0.0362673345023025, +0.0537419430609343,0.0537419430609343,0.0537796901157167,0.0537666719341412,0.053715958748301,0.0536443524276632,0.0535698124433905,0.0535089992291113,0.0534749562428263,0.0534749562428263, +0.0918115360659844,0.0918115360659844,0.0918495630365342,0.0918127998429954,0.0917209579074433,0.091599467671579,0.0914756709695453,0.0913753473731523,0.0913192333757977,0.0913192333757977, +0.156680372534086,0.156680372534086,0.156708630060237,0.156626157680647,0.156462927987115,0.156257594825051,0.156051742626164,0.155885369964843,0.155792033195414,0.155792033195414, +0.255129055618733,0.255129055618733,0.255127121553492,0.254967130467941,0.254693613591892,0.254363070714242,0.254035402488862,0.253769663812718,0.253619004834722,0.253619004834722, +0.392020639546202,0.392020639546202,0.391959504619628,0.391680392536151,0.391250456551296,0.390748644854987,0.390254217011366,0.389847680650947,0.389610933176849,0.389610933176849, +0.567422108870393,0.567422108870393,0.567275329545695,0.566824391483784,0.566187429127147,0.565469954249665,0.564763283217902,0.564163302110597,0.563790779824806,0.563790779824806, +0.774599107216738,0.774599107216738,0.774381469421477,0.773674015024169,0.772776735065655,0.771812791980171,0.770858263691504,0.769995584528827,0.769374264393674,0.769374264393674, + +00:22:19, +0.036514087154583,0.036514087154583,0.0365496194430677,0.0365463058265826,0.0365139721822644,0.0364652079295694,0.0364133953239123,0.036370813656805,0.0363469251055824,0.0363469251055824, +0.036514087154583,0.036514087154583,0.0365496194430677,0.0365463058265826,0.0365139721822644,0.0364652079295694,0.0364133953239123,0.036370813656805,0.0363469251055824,0.0363469251055824, +0.0538376128458899,0.0538376128458899,0.0538753836308727,0.0538623610712884,0.0538116206928162,0.0537399727808791,0.0536653875557323,0.0536045365431277,0.0535704721876084,0.0535704721876084, +0.0919349540499647,0.0919349540499647,0.0919729834382405,0.0919362099165996,0.091844345851216,0.0917228252634353,0.0915989963341332,0.0914986460664299,0.0914425171036756,0.0914425171036756, +0.156834850746134,0.156834850746134,0.156863085544392,0.156780604723456,0.156617374088216,0.156412042210766,0.156206191405957,0.156039820094877,0.155946484397955,0.155946484397955, +0.255305631280046,0.255305631280046,0.255303657948168,0.255143680380092,0.254870211571179,0.254539732940403,0.254212130273247,0.253946446098752,0.253795818888976,0.253795818888976, +0.392197106901015,0.392197106901015,0.392135940849508,0.391856895392646,0.391427090401904,0.390925440001653,0.390431174314775,0.390024773531205,0.389788106333401,0.389788106333401, +0.567567105694264,0.567567105694264,0.567420337699826,0.566969553855534,0.566332832607739,0.565615637290274,0.564909244891011,0.564309502202114,0.563937128645938,0.563937128645938, +0.774681439633319,0.774681439633319,0.774463876448559,0.773756694323188,0.772859770567153,0.771896215342358,0.770942072943254,0.770079742120295,0.769458670590796,0.769458670590796, + +00:22:20, +0.0365938979897302,0.0365938979897302,0.036629465462335,0.0366261525214739,0.036593792156915,0.0365449841477469,0.0364931231555491,0.0364505008245374,0.0364265892174691,0.0364265892174691, +0.0365938979897302,0.0365938979897302,0.036629465462335,0.0366261525214739,0.036593792156915,0.0365449841477469,0.0364931231555491,0.0364505008245374,0.0364265892174691,0.0364265892174691, +0.0539333368356155,0.0539333368356155,0.0539711313166253,0.0539581043991229,0.0539073368921069,0.0538356474800587,0.0537610171105555,0.0537001283791478,0.0536660426990365,0.0536660426990365, +0.0920583869990318,0.0920583869990318,0.0920964187866857,0.0920596349772885,0.0919677488728318,0.091846198056449,0.091722337029289,0.0916219601967617,0.0915658163283425,0.0915658163283425, +0.156989287404453,0.156989287404453,0.157017499493719,0.156935010292541,0.156771778819294,0.15656644836089,0.156360599090148,0.156194229244125,0.156100894683808,0.156100894683808, +0.255482104568132,0.255482104568132,0.255480092035665,0.255320128044447,0.255046707373885,0.254716293078007,0.254388756061067,0.254123126462779,0.25397253106159,0.25397253106159, +0.392373430058005,0.392373430058005,0.392312232968601,0.392033254143232,0.391603580114257,0.391102090971257,0.390607987405334,0.390201722165753,0.389965135220503,0.389965135220503, +0.567711959528365,0.567711959528365,0.567565202906823,0.567114573162273,0.566478092822317,0.565761176836462,0.565055062845011,0.564455558377954,0.564083333422983,0.564083333422983, +0.774763682460381,0.774763682460381,0.774546193818269,0.773839283675024,0.772942715740769,0.771979547966616,0.771025791050957,0.770163808197606,0.769542985004968,0.769542985004968, + +00:22:21, +0.0366737819950238,0.0366737819950238,0.0367093846149648,0.0367060723591578,0.0366736853201961,0.0366248336222246,0.036572924315543,0.0365302613799865,0.0365063267503736,0.0365063267503736, +0.0366737819950238,0.0366737819950238,0.0367093846149648,0.0367060723591578,0.0366736853201961,0.0366248336222246,0.036572924315543,0.0365302613799865,0.0365063267503736,0.0365063267503736, +0.0540291149372908,0.0540291149372908,0.0540669330801953,0.0540539018248624,0.054003107253351,0.0539313764323186,0.0538567010149119,0.0537957746441712,0.0537616676840818,0.0537616676840818, +0.0921818348340064,0.0921818348340064,0.092219869002779,0.0921830749459357,0.0920911668930184,0.0919695859711283,0.0918456929752835,0.0917452896842214,0.0916891309697621,0.0916891309697621, +0.157143682489866,0.157143682489866,0.157171871889106,0.157089374368687,0.156926142160871,0.156720813255564,0.156514965658467,0.156348597391974,0.156255264032168,0.156255264032168, +0.255658475571052,0.255658475571052,0.255656423903995,0.255496473548858,0.255223101087561,0.254892751214175,0.254565279938977,0.254299704991067,0.254149141438617,0.254149141438617, +0.392549609215429,0.392549609215429,0.392488381174997,0.392209468985893,0.391779925886183,0.391278597961383,0.390784656480348,0.390378526751665,0.390142020035112,0.390142020035112, +0.567856670612292,0.567856670612292,0.567709925406146,0.567259449643591,0.566623210010679,0.56590657312821,0.565200737320031,0.564601470878388,0.564229394396328,0.564229394396328, +0.774845835863087,0.774845835863087,0.774628421695879,0.773921783245468,0.773025570752942,0.772062790020046,0.771109418182356,0.770247782929101,0.769627207804981,0.769627207804981, + +00:22:22, +0.0367537390827291,0.0367537390827291,0.0367893768132132,0.0367860652518942,0.0367536515843839,0.036704756265306,0.036652798716231,0.03661009523552,0.0365861376166822,0.0365861376166822, +0.0367537390827291,0.0367537390827291,0.0367893768132132,0.0367860652518942,0.0367536515843839,0.036704756265306,0.036652798716231,0.03661009523552,0.0365861376166822,0.0365861376166822, +0.0541249470581827,0.0541249470581827,0.0541627888288901,0.0541497532558113,0.0540989316838133,0.0540271595448618,0.0539524391759391,0.0538914752452833,0.0538573470498013,0.0538573470498013, +0.0923052974759226,0.0923052974759226,0.0923433340076427,0.0923065297436278,0.0922145998327167,0.0920929889281949,0.0919690640926011,0.0918686344490968,0.0918124609481121,0.0918124609481121, +0.157298035983416,0.157298035983416,0.157326202711656,0.157243696932897,0.157080464093687,0.156875136875148,0.156669291090862,0.15650292451803,0.156409592422448,0.156409592422448, +0.255834744376879,0.255834744376879,0.25583265364118,0.255672716981191,0.255399392799769,0.255069107436043,0.254741701993648,0.254476181769902,0.254325650106129,0.254325650106129, +0.392725644571227,0.392725644571227,0.392664385666469,0.392385540118294,0.391956127915194,0.3914549611693,0.390961181736806,0.390555187485702,0.390318760973869,0.390318760973869, +0.568001239185107,0.568001239185107,0.567854505436724,0.567404183538549,0.566768184412094,0.566051826404969,0.565346268555674,0.56474723994316,0.56437531180583,0.56437531180583, +0.774927900006185,0.774927900006185,0.774710560246248,0.77400419319989,0.773108335769692,0.772145941669334,0.771192954504776,0.770331666482695,0.769711339159203,0.769711339159203, + +00:22:23, +0.0368337691650891,0.0368337691650891,0.036869441969314,0.0368661311119209,0.0368336908617324,0.0367847519892719,0.0367327462699265,0.0366900023034817,0.0366660217287572,0.0366660217287572, +0.0368337691650891,0.0368337691650891,0.036869441969314,0.0368661311119209,0.0368336908617324,0.0367847519892719,0.0367327462699265,0.0366900023034817,0.0366660217287572,0.0366660217287572, +0.0542208331056448,0.0542208331056448,0.0542586984701044,0.0542456585993607,0.0541948100908452,0.0541229967249777,0.054048231500861,0.0539872300896556,0.0539530807033378,0.0539530807033378, +0.0924287748460274,0.0924287748460274,0.0924668137226115,0.0924299992916637,0.0923380476130801,0.0922164068485833,0.092092450301939,0.091991994411889,0.0919358061837834,0.0919358061837834, +0.157452347866358,0.157452347866358,0.15748049194269,0.15739797796639,0.157234744598698,0.157029419200218,0.156823575367497,0.156657210602119,0.156563879834282,0.156563879834282, +0.256010911073699,0.256010911073699,0.256008781335255,0.255848858429323,0.255575582598086,0.255245361830761,0.254918022311766,0.254652556885587,0.254502057150214,0.254502057150214, +0.39290153632302,0.39290153632302,0.392840246640472,0.392561467737787,0.392132186398483,0.391631180791962,0.391137563371384,0.390731704564315,0.390495358233107,0.390495358233107, +0.568145665485346,0.568145665485346,0.567998943236956,0.567548775085675,0.566913016265297,0.566196936905658,0.565491656791008,0.564892865811481,0.564521085890816,0.564521085890816, +0.775009875054011,0.775009875054011,0.774792609633823,0.77408651370325,0.773191010956624,0.772229003080745,0.771276400185122,0.770415459025888,0.76979537923558,0.76979537923558, + +00:22:24, +0.0369138721543248,0.0369138721543248,0.0369495799954793,0.0369462698514536,0.0369138030644733,0.0368648207063804,0.03681276688892,0.0367699824961919,0.0367459789989369,0.0367459789989369, +0.0369138721543248,0.0369138721543248,0.0369495799954793,0.0369462698514536,0.0369138030644733,0.0368648207063804,0.03681276688892,0.0367699824961919,0.0367459789989369,0.0367459789989369, +0.0543167729871179,0.0543167729871179,0.0543546619113196,0.0543416177629891,0.054290742381885,0.0542188878800425,0.0541440778969878,0.0540830390845455,0.0540488685519202,0.0540488685519202, +0.0925522668657799,0.0925522668657799,0.0925903080692322,0.0925534835115542,0.092461510155474,0.0923398396534401,0.092215851524207,0.0921153694933115,0.0920591665973799,0.0920591665973799, +0.157606618120162,0.157606618120162,0.15763473956374,0.157552217450598,0.157388983657073,0.157183660211564,0.156977818468756,0.156811455624281,0.156718126247522,0.156718126247522, +0.256186975749605,0.256186975749605,0.256184807074263,0.256024897981142,0.255751670570097,0.25542151448549,0.255094240980034,0.25482883042444,0.254678362656978,0.254678362656978, +0.393077284668113,0.393077284668113,0.393015964294145,0.392737252041404,0.39230810153293,0.391807257026009,0.391313801580447,0.39090807818364,0.390671812008846,0.390671812008846, +0.568289949751011,0.568289949751011,0.568143239044713,0.56769322452297,0.567057705808497,0.56634190486867,0.565636902264577,0.565038348722036,0.564666716890087,0.564666716890087, +0.775091761170488,0.775091761170488,0.774874570022637,0.774168744920092,0.773273596478929,0.772311974420132,0.771359755389884,0.770499160725759,0.769879328201641,0.769879328201641, + +00:22:25, +0.0369940479626356,0.0369940479626356,0.0370297908038998,0.0370264813826868,0.0369939881048166,0.0369449623288677,0.0368928604854794,0.0368500357259482,0.0368260093395367,0.0368260093395367, +0.0369940479626356,0.0369940479626356,0.0370297908038998,0.0370264813826868,0.0369939881048166,0.0369449623288677,0.0368928604854794,0.0368500357259482,0.0368260093395367,0.0368260093395367, +0.0544127666101298,0.0544127666101298,0.0544506790601044,0.0544376306542615,0.0543867284644577,0.0543148329175188,0.0542399782717161,0.0541789021372967,0.0541447105028631,0.0541447105028631, +0.0926757734568511,0.0926757734568511,0.0927138169692627,0.0926769823250212,0.092584987381475,0.0924632872641235,0.0923392676805269,0.09223875961429,0.0921825421097173,0.0921825421097173, +0.157760846726514,0.157760846726514,0.157788945556553,0.157706415367165,0.157543181250195,0.157337859890192,0.157132020375236,0.156965659564775,0.156872331642235,0.156872331642235, +0.256362938492704,0.256362938492704,0.25636073094626,0.256200835724547,0.255927656803401,0.255597565487406,0.255270358085167,0.255005002472795,0.254854566712544,0.254854566712544, +0.393252889803496,0.393252889803496,0.393191538824312,0.392912893225862,0.392483873515099,0.391983190067765,0.391489896560046,0.391084308539505,0.390848122496797,0.390848122496797, +0.56843409221958,0.56843409221958,0.568287393097339,0.567837532087909,0.567202253279375,0.566486730531868,0.565782005214395,0.565183688912983,0.564812205041916,0.564812205041916, +0.77517355851913,0.77517355851913,0.774956441576313,0.774250887014549,0.773356092501383,0.772394855852929,0.771443020285132,0.770582771748969,0.769963186224494,0.769963186224494, + +00:22:26, +0.0370742965022,0.0370742965022,0.0371100743067457,0.0371067656177943,0.0370742458949517,0.0370251767689485,0.0369730269718506,0.0369301619050255,0.0369061126628494,0.0369061126628494, +0.0370742965022,0.0370742965022,0.0371100743067457,0.0371067656177943,0.0370742458949517,0.0370251767689485,0.0369730269718506,0.0369301619050255,0.0369061126628494,0.0369061126628494, +0.0545088138822955,0.0545088138822955,0.0545467498241146,0.0545336971808305,0.0544827682461755,0.0544108317449559,0.054335932532529,0.0542748191553391,0.0542406064635675,0.0542406064635675, +0.0927992945411227,0.0927992945411227,0.0928373403446719,0.0928004956539976,0.0927084792128707,0.0925867496022027,0.0924626986922316,0.0923621646959618,0.0923059326418235,0.0923059326418235, +0.157915033667308,0.157915033667308,0.157943109903086,0.157860571697948,0.15769733735966,0.157492018217322,0.157286181067748,0.157119822404075,0.157026495998705,0.157026495998705, +0.256538799391111,0.256538799391111,0.256536553039308,0.256376671747445,0.256103541385607,0.255773514923696,0.255446373713894,0.255181073117003,0.255030669403049,0.255030669403049, +0.39342835192584,0.39342835192584,0.393366970427479,0.393088391487564,0.392659502541239,0.392158980113245,0.391665848505921,0.391260395827426,0.39102428989236,0.39102428989236, +0.568578093128005,0.568578093128005,0.568431405631651,0.567981698017437,0.567346658915087,0.566631414132592,0.565926965877953,0.565328886621956,0.564957550584051,0.564957550584051, +0.775255267263042,0.775255267263042,0.775038224458065,0.774332940150343,0.773438499188351,0.772477647544159,0.771526195036526,0.770666292261765,0.770046953470833,0.770046953470833, + +00:22:27, +0.0371546176851759,0.0371546176851759,0.0371904304161664,0.0371871224689295,0.0371545763470469,0.0371054639388164,0.0370532662602582,0.0370103609456771,0.0369862888811453,0.0369862888811453, +0.0371546176851759,0.0371546176851759,0.0371904304161664,0.0371871224689295,0.0371545763470469,0.0371054639388164,0.0370532662602582,0.0370103609456771,0.0369862888811453,0.0369862888811453, +0.0546049147113172,0.0546049147113172,0.0546428741110934,0.0546298172504354,0.0545788616347372,0.0545068842699901,0.054431940586996,0.0543707900461889,0.0543365563415205,0.0543365563415205, +0.0929228300406875,0.0929228300406875,0.0929608781176387,0.0929240234206263,0.0928319855716588,0.0927102265894577,0.092586144480865,0.0924855846596752,0.092429338114937,0.092429338114937, +0.158069178924654,0.158069178924654,0.158097232585509,0.158014686425016,0.157851451967277,0.157646135174386,0.157440300527319,0.15727394412287,0.157180619297432,0.157180619297432, +0.256714558532949,0.256714558532949,0.256712273441482,0.256552406137752,0.256279324404334,0.255949362881559,0.255622287952959,0.255357042443426,0.255206670814647,0.255206670814647, +0.393603671231502,0.393603671231502,0.393542259299839,0.393263747022597,0.392834988807288,0.392334627358149,0.391841657613501,0.39143634024261,0.391200314390627,0.391200314390627, +0.568721952712712,0.568721952712712,0.568575276883944,0.568125722547981,0.567490922952263,0.566775955907656,0.566071784492218,0.565473942086065,0.565102753753717,0.565102753753717, +0.775336887564919,0.775336887564919,0.775119918830699,0.774414904490788,0.773520816703787,0.772560349658433,0.771609279809309,0.770749722429979,0.770130630106935,0.770130630106935, + +00:22:28, +0.0372350114237012,0.0372350114237012,0.0372708590442922,0.0372675518482258,0.0372349793732508,0.0371858237506447,0.0371335782629057,0.0370906327601346,0.0370665379066735,0.0370665379066735, +0.0372350114237012,0.0372350114237012,0.0372708590442922,0.0372675518482258,0.0372349793732508,0.0371858237506447,0.0371335782629057,0.0370906327601346,0.0370665379066735,0.0370665379066735, +0.0547010690049847,0.0547010690049847,0.054739051828871,0.054725990770903,0.054675008537929,0.0546029904003445,0.0545280023427734,0.0544668147174486,0.0544325600442953,0.0544325600442953, +0.0930463798778478,0.0930463798778478,0.0930844302105518,0.0930475655472596,0.0929555063800469,0.092833718147878,0.092709604968181,0.0926090194269888,0.0925527584505071,0.0925527584505071, +0.158223282480871,0.158223282480871,0.158251313586201,0.158168759530647,0.158005525055063,0.157800210743027,0.157594378735188,0.157428024702061,0.157334701519127,0.157334701519127, +0.256890216006351,0.256890216006351,0.25688789224086,0.256728038983396,0.256455005947211,0.256125109448204,0.255798100889116,0.255532910538443,0.255382571033505,0.255382571033505, +0.393778847916527,0.393778847916527,0.39371740563727,0.393438960026735,0.393010332508866,0.392510131997864,0.392017324077906,0.391612141979955,0.391376196186382,0.391376196186382, +0.568865671209606,0.568865671209606,0.56871900708999,0.568269605915441,0.567635045627012,0.566920356093354,0.566216461293634,0.565618855541897,0.565247814787618,0.565247814787618, +0.775418419587054,0.775418419587054,0.775201524856615,0.774496780198789,0.773603045211236,0.772642962359952,0.771692274768315,0.77083306241903,0.770214216298664,0.770214216298664, + +00:22:29, +0.0373154776298943,0.0373154776298943,0.0373513601032335,0.0373480536677977,0.0373154548856922,0.0372662561165864,0.037213962891976,0.0371709772606088,0.0371468596516616,0.0371468596516616, +0.0373154776298943,0.0373154776298943,0.0373513601032335,0.0373480536677977,0.0373154548856922,0.0372662561165864,0.037213962891976,0.0371709772606088,0.0371468596516616,0.0371468596516616, +0.0547972766711748,0.0547972766711748,0.0548352828853652,0.0548222176501473,0.0547712088636241,0.0546991500438288,0.0546241177076039,0.0545628930768073,0.0545286174795516,0.0545286174795516, +0.0931699439751156,0.0931699439751156,0.0932079965460091,0.0931711219564589,0.0930790415604516,0.0929572241996627,0.0928330800761431,0.092732468919671,0.092676193570193,0.092676193570193, +0.158377344318486,0.158377344318486,0.158405352887751,0.158322790997329,0.158159556605248,0.157954244905101,0.157748415672805,0.157582064122763,0.157488742644719,0.157488742644719, +0.257065771899458,0.257065771899458,0.257063409525532,0.256903570372308,0.256630586101874,0.256300754710853,0.255973812609133,0.255708677488444,0.255558370145806,0.255558370145806, +0.39395388217664,0.39395388217664,0.393892409635334,0.393614030695437,0.393185533841284,0.392685494227466,0.392192848093941,0.391787801234049,0.391551935474097,0.391551935474097, +0.569009248854069,0.569009248854069,0.56886259648504,0.568413348355196,0.56777902717492,0.567064614925455,0.566360996518125,0.56576362722552,0.565392733921936,0.565392733921936, +0.775499863491331,0.775499863491331,0.775283042697807,0.774578567436845,0.773685184873835,0.772725485812505,0.771775180077966,0.770916312393925,0.770297712211469,0.770297712211469, + +00:22:30, +0.0373960162158547,0.0373960162158547,0.0374319335050822,0.0374286278397404,0.0373960027964808,0.0373467609487752,0.0372944200596321,0.0372513943592901,0.0372272540283167,0.0372272540283167, +0.0373960162158547,0.0373960162158547,0.0374319335050822,0.0374286278397404,0.0373960027964808,0.0373467609487752,0.0372944200596321,0.0372513943592901,0.0372272540283167,0.0372272540283167, +0.054893537617852,0.054893537617852,0.0549315671885814,0.0549184977961698,0.0548674625197831,0.0547953631083401,0.0547202865893172,0.0546590250320404,0.0546247285550354,0.0546247285550354, +0.0932935222552115,0.0932935222552115,0.0933315770468167,0.0932946925709943,0.0932025910354979,0.0930807446672198,0.0929565697269242,0.0928559330596998,0.0927996433958632,0.0927996433958632, +0.158531364420238,0.158531364420238,0.158559350472956,0.158476780807758,0.158313546600268,0.158108237642671,0.157902411321831,0.157736062366302,0.157642742655343,0.157642742655343, +0.257241226300417,0.257241226300417,0.257238825383593,0.257079000392431,0.25680606495597,0.256476298756734,0.256149423199788,0.255884343379834,0.255734068237744,0.255734068237744, +0.394128774207257,0.394128774207257,0.394067271489282,0.393788959223849,0.393360592999539,0.392860714241723,0.392368229856107,0.391963318199172,0.391727532447942,0.391727532447942, +0.569152685880966,0.569152685880966,0.569006045303825,0.568556950102108,0.567922867831055,0.567208732639212,0.566505390401096,0.565908257372482,0.565537511392335,0.565537511392335, +0.775581219439233,0.775581219439233,0.775364472515865,0.774660266367049,0.773767235854314,0.772807920179476,0.771857995902274,0.770999472519261,0.770381118010391,0.770381118010391, + +00:22:31, +0.0374766270936631,0.0374766270936631,0.0375125791619119,0.037509274276131,0.0374766230177078,0.0374273381593257,0.0373749496780176,0.037331883968349,0.0373077209488257,0.0373077209488257, +0.0374766270936631,0.0374766270936631,0.0375125791619119,0.037509274276131,0.0374766230177078,0.0374273381593257,0.0373749496780176,0.037331883968349,0.0373077209488257,0.0373077209488257, +0.0549898517530682,0.0549898517530682,0.0550279046466121,0.0550148311170593,0.0549637694144535,0.0548916295018623,0.0548165088958297,0.0547552104910102,0.0547208931785791,0.0547208931785791, +0.0934171146410647,0.0934171146410647,0.0934551716359889,0.0934182773138433,0.093326154728019,0.0932042794731654,0.0930800738429053,0.0929794117692616,0.0929231078495953,0.0929231078495953, +0.158685342769071,0.158685342769071,0.158713306324821,0.158630728944838,0.15846749502277,0.15826218893801,0.158056365664138,0.157890019414215,0.157796701532351,0.157796701532351, +0.257416579297383,0.257416579297383,0.257414139903146,0.257254329131711,0.256981442597152,0.256651741673088,0.256324932747871,0.256059908299028,0.255909665395527,0.255909665395527, +0.394303524203479,0.394303524203479,0.394241991394051,0.393963745806805,0.393535510178315,0.393035792235087,0.392543469558593,0.392138693069296,0.391902987301774,0.391902987301774, +0.56929598252464,0.56929598252464,0.569149353780558,0.568700411390518,0.568066567829965,0.567352709469359,0.566649643177434,0.566052746217815,0.565682147433963,0.565682147433963, +0.77566248759184,0.77566248759184,0.775445814471977,0.774741877151092,0.773849198314998,0.77289026562384,0.771940722404844,0.771082542959226,0.770464433860058,0.770464433860058, + +00:22:32, +0.0375573101753824,0.0375573101753824,0.0375932969857783,0.0375899928890287,0.0375573154614462,0.0375079876603339,0.0374555516592568,0.0374124459999365,0.0373882603253557,0.0373882603253557, +0.0375573101753824,0.0375573101753824,0.0375932969857783,0.0375899928890287,0.0375573154614462,0.0375079876603339,0.0374555516592568,0.0374124459999365,0.0373882603253557,0.0373882603253557, +0.055086218984963,0.055086218984963,0.0551242951676376,0.055111217520992,0.0550601294557705,0.0549879491324666,0.0549127845351445,0.0548514493616653,0.0548171112581017,0.0548171112581017, +0.0935407210558119,0.0935407210558119,0.0935787802367476,0.0935418761081912,0.0934497325610556,0.0933278285403233,0.0932035923466758,0.0931029049707512,0.093046586853675,0.093046586853675, +0.158839279348137,0.158839279348137,0.158867220426556,0.158784635391679,0.158621401855606,0.158416098773601,0.158210278681806,0.158043935248249,0.157950619257302,0.157950619257302, +0.257591830978516,0.257591830978516,0.257589353172299,0.257429556678104,0.257156719113081,0.256827083547161,0.256500341340182,0.256235372332455,0.256085161705378,0.256085161705378, +0.394478132360095,0.394478132360095,0.394416569544266,0.394138390638827,0.393710285571988,0.393210728401705,0.39271856739528,0.392313926038086,0.392078300229148,0.392078300229148, +0.569439139018919,0.569439139018919,0.569292522148937,0.568843732454253,0.568210127405683,0.567496545650112,0.566793755081509,0.566197093996034,0.565826642281449,0.565826642281449, +0.775743668109828,0.775743668109828,0.775527068726928,0.774823399950261,0.773931072417809,0.772972522308168,0.772023359748875,0.771165523877599,0.770547659924691,0.770547659924691, + +00:22:33, +0.0376380653730578,0.0376380653730578,0.0376740868887196,0.0376707835904753,0.0376380800397514,0.0375887093638779,0.0375362259154557,0.0374930803661847,0.0374688720700548,0.0374688720700548, +0.0376380653730578,0.0376380653730578,0.0376740868887196,0.0376707835904753,0.0376380800397514,0.0375887093638779,0.0375362259154557,0.0374930803661847,0.0374688720700548,0.0374688720700548, +0.0551826392217635,0.0551826392217635,0.055220738659926,0.0552076569162319,0.0551565425519566,0.0550843219083112,0.0550091134153521,0.0549477415520412,0.0549133827016088,0.0549133827016088, +0.0936643414227971,0.0936643414227971,0.093702402772521,0.0936654888774298,0.0935733244578551,0.0934513917917244,0.0933271251610321,0.0932264125867709,0.0931700803305958,0.0931700803305958, +0.158993174140795,0.158993174140795,0.159021092761579,0.158938500131596,0.158775267081834,0.158569967132132,0.158364150357123,0.15819780985036,0.158104495811966,0.158104495811966, +0.257766981431984,0.257766981431984,0.257764465279166,0.257604683119569,0.257331894591424,0.257002324466211,0.256675649063531,0.256410735566552,0.256260557253527,0.256260557253527, +0.394652598871581,0.394652598871581,0.39459100613424,0.394312893914126,0.39388491937462,0.393385522935412,0.39289352355974,0.3924890172989,0.392253471423309,0.392253471423309, +0.569582155597116,0.569582155597116,0.569435550642143,0.568986913526622,0.568353546791725,0.567640241415173,0.566937726347177,0.566341300941139,0.56597099616891,0.56597099616891, +0.775824761153479,0.775824761153479,0.775608235441106,0.774904834925442,0.774012858324264,0.773054690394628,0.77210590809716,0.771248415437755,0.770630796368104,0.770630796368104, + +00:22:34, +0.0377188925987173,0.0377188925987173,0.0377549487827573,0.0377516462924957,0.0377189166646616,0.037669503182018,0.0376169723587022,0.0375737869792072,0.0375495560950523,0.0375495560950523, +0.0377188925987173,0.0377188925987173,0.0377549487827573,0.0377516462924957,0.0377189166646616,0.037669503182018,0.0376169723587022,0.0375737869792072,0.0375495560950523,0.0375495560950523, +0.0552791123717846,0.0552791123717846,0.0553172350318327,0.0553041492111304,0.0552530086113216,0.0551807477376417,0.0551054954446295,0.0550440869702604,0.0550097074171927,0.0550097074171927, +0.0937879756655707,0.0937879756655707,0.0938260391669442,0.0937891155451572,0.0936969303418714,0.0935749691506063,0.0934506722089777,0.09334993454013,0.0932935882030583,0.0932935882030583, +0.159147027130608,0.159147027130608,0.159174923313509,0.159092323148111,0.158929090684718,0.158723793996496,0.158517980672586,0.158351643202711,0.158258331178319,0.158258331178319, +0.257942030745958,0.257942030745958,0.257939476311866,0.257779708544072,0.257506969119857,0.257177464517502,0.256850856004735,0.256585998087769,0.256435852126218,0.256435852126218, +0.394826923932101,0.394826923932101,0.394765301357973,0.394487255826599,0.394059411779965,0.393560176029734,0.39306833824524,0.39266396704479,0.392428501077199,0.392428501077199, +0.56972503249203,0.56972503249203,0.569578439492846,0.569129954840422,0.568496826221095,0.56778379699773,0.56708155720778,0.566485367286617,0.566115209329949,0.566115209329949, +0.775905766882672,0.775905766882672,0.775689314774498,0.77498618223712,0.77409455619548,0.773136770044982,0.772188367612089,0.771331217802661,0.770713843353703,0.770713843353703, + +00:22:35, +0.0377997917643725,0.0377997917643725,0.0378358825798966,0.0378325809070983,0.0377998252481983,0.0377503690267975,0.0376977909010664,0.0376545657510995,0.0376303123124592,0.0376303123124592, +0.0377997917643725,0.0377997917643725,0.0378358825798966,0.0378325809070983,0.0377998252481983,0.0377503690267975,0.0376977909010664,0.0376545657510995,0.0376303123124592,0.0376303123124592, +0.055375638343429,0.055375638343429,0.0554137841918013,0.0554006943141268,0.055349527542263,0.0552772265287909,0.0552019305312411,0.0551404855245318,0.0551060853130323,0.0551060853130323, +0.0939116237078896,0.0939116237078896,0.0939496893438576,0.0939127560351772,0.0938205501367641,0.0936985605404126,0.0935742334137223,0.0934734707538447,0.0934171103939699,0.0934171103939699, +0.159300838301344,0.159300838301344,0.159328712066174,0.159246104424948,0.159082872647728,0.158877579349795,0.158671769610895,0.158505435287674,0.158412125338547,0.158412125338547, +0.258116979008614,0.258116979008614,0.258114386358522,0.257954633039582,0.257681942786058,0.257352503788303,0.257025962250623,0.256761159982566,0.256611046409707,0.256611046409707, +0.395001107735509,0.395001107735509,0.394939455409157,0.394661476569837,0.394233762981466,0.393734687877889,0.393243011644737,0.392838775468502,0.392603389383455,0.392603389383455, +0.569867769935946,0.569867769935946,0.5697211889332,0.569272856627938,0.568639965926282,0.567927212630459,0.567225247896148,0.566629293265445,0.566259281997657,0.566259281997657, +0.77598668545689,0.77598668545689,0.775770306886695,0.775067442045384,0.774176166192174,0.773218761420593,0.772270738455648,0.771413931134882,0.770796801044491,0.770796801044491, + +00:22:36, +0.0378807627820189,0.0378807627820189,0.0379168881921265,0.0379135873462757,0.0378808057023668,0.0378313068102432,0.0377786814546017,0.0377354165939399,0.037711140634369,0.037711140634369, +0.0378807627820189,0.0378807627820189,0.0379168881921265,0.0379135873462757,0.0378808057023668,0.0378313068102432,0.0377786814546017,0.0377354165939399,0.037711140634369,0.037711140634369, +0.0554722170451871,0.0554722170451871,0.0555103860483629,0.0554972921337479,0.0554460992532659,0.0553737581901792,0.0552984185835383,0.0552369371231517,0.0552025162973935,0.0552025162973935, +0.0940352854737156,0.0940352854737156,0.0940733532273071,0.0940364102714985,0.0939441837663979,0.0938221658847924,0.0936978086986815,0.0935970211511367,0.093540646826444,0.093540646826444, +0.159454607636972,0.159454607636972,0.159482459003599,0.159399843946034,0.159236612954535,0.159031323175333,0.158825517154958,0.158659186087827,0.158565878275043,0.158565878275043, +0.258291826308134,0.258291826308134,0.258289195507261,0.258129456694076,0.257856815677713,0.257527442365894,0.257200967888031,0.256936221337411,0.256786140190257,0.256786140190257, +0.395175150475349,0.395175150475349,0.395113468481171,0.394835556337117,0.394407973172257,0.393909058672787,0.393417543950883,0.393013442762475,0.392778136534406,0.392778136534406, +0.57001036816064,0.57001036816064,0.569863799194852,0.569415619120942,0.568782966139266,0.568070488545525,0.567368798644603,0.566773079110088,0.566403214404615,0.566403214404615, +0.776067517035221,0.776067517035221,0.775851211936889,0.775148614509923,0.774257688474663,0.773300664682425,0.772353020789422,0.771496555596582,0.770879669603068,0.770879669603068, + +00:22:37, +0.0379618055636361,0.0379618055636361,0.0379979655314208,0.0379946655220049,0.0379618579391567,0.0379123164443655,0.0378596439313447,0.0378163394197894,0.0377920409728578,0.0377920409728578, +0.0379618055636361,0.0379618055636361,0.0379979655314208,0.0379946655220049,0.0379618579391567,0.0379123164443655,0.0378596439313447,0.0378163394197894,0.0377920409728578,0.0377920409728578, +0.0555688483856374,0.0555688483856374,0.0556070405101366,0.0555939425786084,0.0555427236529029,0.0554703426303142,0.0553949595099599,0.055333441674503,0.0552990002786289,0.0552990002786289, +0.0941589608872161,0.0941589608872161,0.0941970307415429,0.0941600781783345,0.0940678311548425,0.0939457851075995,0.0938213979874759,0.0937205856554333,0.0936641974237995,0.0936641974237995, +0.159608335121667,0.159608335121667,0.159636164110015,0.159553541695499,0.159390311589013,0.159185025456617,0.158979223287887,0.15881289558595,0.158719589970403,0.158719589970403, +0.2584665727327,0.2584665727327,0.258463903846215,0.25830417959553,0.25803158788251,0.257702280337557,0.257375873003802,0.257111182238782,0.256961133554143,0.256961133554143, +0.395349052344853,0.395349052344853,0.395287340767087,0.39500949532141,0.394582042545163,0.394083288607031,0.393591935356025,0.393187969118847,0.392952742722081,0.392952742722081, +0.570152827397377,0.570152827397377,0.570006270508938,0.569558242550699,0.568925827091517,0.568213624974583,0.567512209684955,0.566916725052502,0.566547006782895,0.566547006782895, +0.776148261776358,0.776148261776358,0.775932030083881,0.775229699790031,0.774339123202869,0.773382479991039,0.772435214774597,0.771579091349519,0.770962449191629,0.770962449191629, + +00:22:38, +0.0380429200211887,0.0380429200211887,0.0380791145097383,0.0380758153462479,0.0380429818705424,0.0379933978411595,0.0379406782433157,0.0378973341406927,0.0378730132399849,0.0378730132399849, +0.0380429200211887,0.0380429200211887,0.0380791145097383,0.0380758153462479,0.0380429818705424,0.0379933978411595,0.0379406782433157,0.0378973341406927,0.0378730132399849,0.0378730132399849, +0.0556655322734461,0.0556655322734461,0.0557037474858295,0.055690645557411,0.0556394006498345,0.055566979757791,0.0554915532190316,0.055429999087056,0.055395537165178,0.055395537165178, +0.0942826498727623,0.0942826498727623,0.0943207218110197,0.0942837596801027,0.0941914922263714,0.0940694181328924,0.0939450012039308,0.0938441641903668,0.0937877621095602,0.0937877621095602, +0.159762020739803,0.159762020739803,0.159789827369853,0.159707197657672,0.159543968535239,0.159338686177357,0.159132887992996,0.158966563765031,0.15887326040743,0.15887326040743, +0.258641218370502,0.258641218370502,0.258638511463517,0.258478801831926,0.258206259488143,0.257877017790581,0.257550677684785,0.257286042773165,0.257136026587648,0.257136026587648, +0.395522813536945,0.395522813536945,0.395461072459666,0.395183293715374,0.394755971292702,0.394257377872916,0.393766186052203,0.393362354729448,0.393127208138203,0.393127208138203, +0.570295147876914,0.570295147876914,0.570148603106087,0.569700727147965,0.569068549013997,0.568356622148782,0.567655481248506,0.567060231324138,0.566690659364064,0.566690659364064, +0.7762289198386,0.7762289198386,0.776012761486076,0.775310698044608,0.774420470536316,0.773464207506603,0.772517320571959,0.771661538555057,0.771045139971971,0.771045139971971, + +00:22:39, +0.0381241060666265,0.0381241060666265,0.0381603350390232,0.0381570367309523,0.0381241774084835,0.0380745509126047,0.0380217843025196,0.0379784006686782,0.0379540573477933,0.0379540573477933, +0.0381241060666265,0.0381241060666265,0.0381603350390232,0.0381570367309523,0.0381241774084835,0.0380745509126047,0.0380217843025196,0.0379784006686782,0.0379540573477933,0.0379540573477933, +0.0557622686173677,0.0557622686173677,0.0558005068842366,0.0557874009789461,0.0557361301528089,0.0556636694812926,0.0555881996193668,0.0555266092693679,0.0554921268655675,0.0554921268655675, +0.0944063523549296,0.0944063523549296,0.0944444263603953,0.094407454701424,0.0943151669054619,0.0941930648849331,0.0940686182720758,0.0939677566797736,0.0939113408074547,0.0939113408074547, +0.159915664475956,0.159915664475956,0.159943448767744,0.159860811817085,0.159697583777489,0.159492305321467,0.159286511253805,0.159120190608261,0.159026889569131,0.159026889569131, +0.258815763309727,0.258815763309727,0.258813018447302,0.258653323491248,0.25838083058231,0.258051654812261,0.257725382017839,0.257460803027053,0.257310819377064,0.257310819377064, +0.39569643424424,0.39569643424424,0.395634663751361,0.395356951711364,0.394929759607085,0.394431326662433,0.393940296231153,0.393536599785807,0.393301532974191,0.393301532974191, +0.570437329829502,0.570437329829502,0.57029079721642,0.56984307314299,0.56921113213716,0.568499480298762,0.567798613566056,0.567203598155938,0.566834172379181,0.566834172379181, +0.776309491379856,0.776309491379856,0.776093406301487,0.775391609432159,0.774501730634133,0.773545847388886,0.772599338341898,0.771743897374157,0.771127742105491,0.771127742105491, + +00:22:40, +0.0382053636118852,0.0382053636118852,0.0382416270312058,0.0382383295880515,0.0382054444649251,0.0381557755706662,0.0381029620209461,0.0380595389157588,0.0380351732083102,0.0380351732083102, +0.0382053636118852,0.0382053636118852,0.0382416270312058,0.0382383295880515,0.0382054444649251,0.0381557755706662,0.0381029620209461,0.0380595389157588,0.0380351732083102,0.0380351732083102, +0.0558590573262445,0.0558590573262445,0.055897318614241,0.0558842087520921,0.055832912070662,0.0557604117095891,0.0556848986196661,0.0556232721300831,0.055588769288411,0.055588769288411, +0.0945300682584967,0.0945300682584967,0.0945681443145307,0.094531163167122,0.0944388551167941,0.0943167252881871,0.0941922491161436,0.0940913630476941,0.094034933441415,0.094034933441415, +0.160069266314899,0.160069266314899,0.160097028288518,0.160014384158468,0.15985115730024,0.159645882873057,0.159440093054033,0.159273776099032,0.159180477438714,0.159180477438714, +0.258990207638569,0.258990207638569,0.258987424885709,0.258827744661483,0.25855530125271,0.258226191489895,0.257899986089825,0.257635463086947,0.257485512008691,0.257485512008691, +0.395869914659043,0.395869914659043,0.395808114834315,0.395530469501422,0.395103407680213,0.394605135167265,0.394114266084305,0.393710704479147,0.393475717421164,0.393475717421164, +0.570579373484887,0.570579373484887,0.570432853069556,0.569985280765518,0.569353576690958,0.56864219965466,0.567941606867895,0.567346825778341,0.566977546058799,0.566977546058799, +0.776389976557641,0.776389976557641,0.776173964687738,0.775472434110798,0.774582903655055,0.773627399797264,0.772681268244406,0.771826167967385,0.771210255753187,0.771210255753187, + +00:22:41, +0.0382866925688867,0.0382866925688867,0.0383229903982027,0.0383196938294654,0.0382867829517987,0.0382370717272948,0.0381842113105701,0.0381407487939325,0.0381163607335477,0.0381163607335477, +0.0382866925688867,0.0382866925688867,0.0383229903982027,0.0383196938294654,0.0382867829517987,0.0382370717272948,0.0381842113105701,0.0381407487939325,0.0381163607335477,0.0381163607335477, +0.055955898309007,0.055955898309007,0.0559941825848138,0.0559810687858157,0.0559297463123178,0.0558572063515388,0.0557816501287176,0.0557199875779333,0.0556854643424093,0.0556854643424093, +0.0946537975084449,0.0946537975084449,0.0946918755984895,0.0946548850022229,0.0945625567852508,0.0944403992673227,0.0943158936605705,0.0942149832183717,0.0941585399355768,0.0941585399355768, +0.160222826241607,0.160222826241607,0.160250565917203,0.160167914666748,0.160004689088168,0.159799418816442,0.159593633377599,0.159427320220938,0.159334023999592,0.159334023999592, +0.259164551445221,0.259164551445221,0.259161730866877,0.259002065430618,0.258729671587047,0.258400627910786,0.258074489987613,0.257810023039356,0.257660104568836,0.257660104568836, +0.396043254973354,0.396043254973354,0.395981425900366,0.395703847277285,0.395276915703683,0.394778803578789,0.394288095802787,0.39388466900039,0.393649761669938,0.393649761669938, +0.57072127907231,0.57072127907231,0.570574770894609,0.57012735024479,0.569495882904835,0.568784780446109,0.568084461383815,0.567489914421285,0.567120780632972,0.567120780632972, +0.776470375529083,0.776470375529083,0.776254436802059,0.775553172238247,0.774663989757427,0.773708864890716,0.772763110439081,0.771908350494909,0.77129268107566,0.77129268107566, + +00:22:42, +0.0383680928495394,0.0383680928495394,0.0384044250519177,0.0384011293671007,0.0383681927810224,0.0383184392944273,0.0382655320833521,0.0382220302151823,0.0381976198355026,0.0381976198355026, +0.0383680928495394,0.0383680928495394,0.0384044250519177,0.0384011293671007,0.0383681927810224,0.0383184392944273,0.0382655320833521,0.0382220302151823,0.0381976198355026,0.0381976198355026, +0.056052791474674,0.056052791474674,0.0560910987050146,0.0560779809891714,0.0560266327867882,0.0559540533160873,0.055878454055397,0.0558167555217376,0.0557822119363503,0.0557822119363503, +0.0947775400299577,0.0947775400299577,0.0948156201375368,0.0947786201319546,0.0946862718359166,0.09456408674721,0.0944395518299947,0.0943386171162526,0.0942821602142785,0.0942821602142785, +0.160376344241251,0.160376344241251,0.160404061639026,0.160321403327053,0.160158179126147,0.159952913136132,0.159747132208626,0.159580822957775,0.159487529235378,0.159487529235378, +0.259338794817877,0.259338794817877,0.259335936478945,0.259176285886643,0.258903941673024,0.258574964162239,0.258248893798075,0.257984482970794,0.257834597143813,0.257834597143813, +0.396216455378863,0.396216455378863,0.396154597141043,0.395877085230384,0.395450283868784,0.39495233208808,0.394461785577422,0.394058493540156,0.393823665911025,0.393823665911025, +0.57086304682051,0.57086304682051,0.57071655092019,0.570269281809544,0.569638051007736,0.568927222902238,0.568227177343101,0.567632864314203,0.56726387633125,0.56726387633125, +0.776550688450921,0.776550688450921,0.776334822801296,0.775633823971839,0.774744989099199,0.773790242827833,0.772844865085128,0.771990445116505,0.771375018233115,0.771375018233115, + +00:22:43, +0.0384495643657392,0.0384495643657392,0.0384859309042416,0.0384826361128516,0.0384496738645012,0.0383998781839874,0.0383469242512393,0.0383033830914774,0.0382789504261575,0.0382789504261575, +0.0384495643657392,0.0384495643657392,0.0384859309042416,0.0384826361128516,0.0384496738645012,0.0383998781839874,0.0383469242512393,0.0383033830914774,0.0382789504261575,0.0382789504261575, +0.0561497367323524,0.0561497367323524,0.0561880668839907,0.0561749452713019,0.0561235714031728,0.0560509525122683,0.0559753103086672,0.0559135758704021,0.0558790119791093,0.0558790119791093, +0.0949012957484205,0.0949012957484205,0.0949393778571395,0.0949023684817462,0.0948100001940776,0.0946877876529212,0.0945632235492567,0.0944622646659851,0.0944057942020608,0.0944057942020608, +0.1605298202992,0.1605298202992,0.160557515439409,0.160474850124704,0.160311627399247,0.160106365816838,0.159900589531431,0.159734284293538,0.159640993129884,0.159640993129884, +0.259512937844732,0.259512937844732,0.259510041810056,0.259350406117546,0.25907811159835,0.258749200331565,0.25842319760809,0.25815884296778,0.258008989819942,0.258008989819942, +0.396389516066953,0.396389516066953,0.39632762874757,0.396050183551843,0.395623512366503,0.395125720885907,0.394635335598732,0.394232178288763,0.393997430334639,0.393997430334639, +0.571004676957726,0.571004676957726,0.57085819337441,0.570411075688019,0.569780081228105,0.569069527251678,0.568369754974541,0.567775675686028,0.567406833382682,0.567406833382682, +0.776630915479508,0.776630915479508,0.776415122841906,0.775714389468518,0.774825901837935,0.773871533766811,0.77292653234136,0.772072451991553,0.771457267385365,0.771457267385365, + +00:22:44, +0.0385311070293693,0.0385311070293693,0.0385675078670533,0.0385642139786,0.0385312261141279,0.038481388307886,0.038428387726165,0.0383848073347729,0.0383603524174812,0.0383603524174812, +0.0385311070293693,0.0385311070293693,0.0385675078670533,0.0385642139786,0.0385312261141279,0.038481388307886,0.038428387726165,0.0383848073347729,0.0383603524174812,0.0383603524174812, +0.0562467339912374,0.0562467339912374,0.0562850870309782,0.0562719615414382,0.0562205620706597,0.0561479038492033,0.0560722187975793,0.0560104485329208,0.0559758643796486,0.0559758643796486, +0.0950250645894194,0.0950250645894194,0.0950631486829648,0.0950261299772278,0.0949337417852206,0.0948115019097292,0.0946869087433982,0.0945859257924192,0.0945294418236659,0.0945294418236659, +0.16068325440102,0.16068325440102,0.160710927303971,0.160628255045219,0.160465033892737,0.160259776843465,0.160054005330533,0.159887704212421,0.159794415667122,0.159794415667122, +0.259686980613981,0.259686980613981,0.259684046948347,0.259524426211318,0.25925218145073,0.258923336506072,0.258597401504539,0.258333103116839,0.258183282683551,0.258183282683551, +0.396562437228704,0.396562437228704,0.396500520910863,0.396223142432479,0.395796601387517,0.395298970162734,0.394808746056934,0.394405723436226,0.394171055130692,0.394171055130692, +0.571146169711696,0.571146169711696,0.570999698484883,0.570552732107952,0.569921973793883,0.569211693722558,0.568512194506424,0.567918348765198,0.567549652015821,0.567549652015821, +0.776711056770809,0.776711056770809,0.776495337079958,0.775794868884842,0.774906728130808,0.773952737865458,0.773008112366196,0.772154371279042,0.771539428691827,0.771539428691827, + +00:22:45, +0.0386127207523012,0.0386127207523012,0.0386491558522199,0.0386458628762159,0.0386128494417831,0.0385629695780214,0.0385099224200502,0.0384663028570109,0.0384418257214288,0.0384418257214288, +0.0386127207523012,0.0386127207523012,0.0386491558522199,0.0386458628762159,0.0386128494417831,0.0385629695780214,0.0385099224200502,0.0384663028570109,0.0384418257214288,0.0384418257214288, +0.0563437831606127,0.0563437831606127,0.0563821590553013,0.0563690297088994,0.0563176046985248,0.0562449072361016,0.0561691794312715,0.0561073734183749,0.0560727690470182,0.0560727690470182, +0.0951488464787414,0.0951488464787414,0.0951869325408805,0.0951499045442293,0.0950574965350327,0.0949352294431078,0.0948106073376618,0.0947096004206058,0.0946531030040374,0.0946531030040374, +0.160836646532469,0.160836646532469,0.160864297218524,0.160781618074313,0.160618398592079,0.160413146201119,0.160207379590647,0.160041082698817,0.159947796831305,0.159947796831305, +0.259860923213818,0.259860923213818,0.25985795198196,0.259698346255949,0.259426151317873,0.259097372773076,0.258771505574307,0.258507263504501,0.258357475820971,0.258357475820971, +0.396735219054885,0.396735219054885,0.396673273821534,0.396395962062806,0.395969551122203,0.395472080108725,0.394982017141946,0.394579129172262,0.394344540488796,0.394344540488796, +0.571287525309661,0.571287525309661,0.571141066478721,0.570694251296586,0.570063728932517,0.569353722542512,0.568654496166538,0.568060883779649,0.567692332458719,0.567692332458719, +0.776791112480407,0.776791112480407,0.77657546567114,0.775875262376981,0.774987468134604,0.774033855281194,0.773089605317668,0.772236203137569,0.771621502311527,0.771621502311527, + +00:22:46, +0.038694405446395,0.038694405446395,0.0387308747715973,0.0387275827175582,0.038694543759336,0.0386446219062801,0.0385915282448031,0.0385478695701208,0.0385233702499426,0.0385233702499426, +0.038694405446395,0.038694405446395,0.0387308747715973,0.0387275827175582,0.038694543759336,0.0386446219062801,0.0385915282448031,0.0385478695701208,0.0385233702499426,0.0385233702499426, +0.0564408841498501,0.0564408841498501,0.0564792828663724,0.0564661496830931,0.0564146991961323,0.0563419625822605,0.0562661921189703,0.0562043504359332,0.0561697258903553,0.0561697258903553, +0.0952726413423734,0.0952726413423734,0.095310729356954,0.0952736921087804,0.0951812643694011,0.0950589701787305,0.0949343192574903,0.0948332884757965,0.0947767776683195,0.0947767776683195, +0.160989996679502,0.160989996679502,0.161017625169077,0.160934939197893,0.16077172148293,0.160566473875096,0.160360712296685,0.160194419737315,0.160101136606841,0.160101136606841, +0.260034765732438,0.260034765732438,0.260031756999033,0.259872166339426,0.259600021287487,0.25927130921989,0.258945509904282,0.2586813242173,0.258531569318539,0.258531569318539, +0.396907861735965,0.396907861735965,0.396845887669889,0.396568642633031,0.396142361760632,0.395645050913738,0.395155149043383,0.394752395686286,0.394517886598263,0.394517886598263, +0.571428743978365,0.571428743978365,0.571282297582544,0.570835633480662,0.570205346870955,0.569495613938674,0.568796660182179,0.568203280956823,0.567834874938936,0.567834874938936, +0.7768710827635,0.7768710827635,0.776655508770753,0.775955570100723,0.775068122005725,0.774114886171049,0.773171011353419,0.772317947725344,0.771703488403101,0.771703488403101, + +00:22:47, +0.0387761610234995,0.0387761610234995,0.0388126645370306,0.0388093734144752,0.0387763089786448,0.0387263452045372,0.0386732051123203,0.0386295073860196,0.0386049859149522,0.0386049859149522, +0.0387761610234995,0.0387761610234995,0.0388126645370306,0.0388093734144752,0.0387763089786448,0.0387263452045372,0.0386732051123203,0.0386295073860196,0.0386049859149522,0.0386049859149522, +0.0565380368684102,0.0565380368684102,0.0565764583736926,0.056563321373515,0.0565118454729346,0.0564390697970654,0.0563632567699894,0.056301379494852,0.0562667348188847,0.0562667348188847, +0.0953964491065018,0.0953964491065018,0.095434539057452,0.0953974925971101,0.0953050452144116,0.0951827240424704,0.0950580444285264,0.0949569898834426,0.0949004657418565,0.0949004657418565, +0.161143304828267,0.161143304828267,0.161170911141829,0.161088218402058,0.160925002551141,0.160719759850891,0.160514003433753,0.160347715312701,0.160254434978335,0.160254434978335, +0.260208508258032,0.260208508258032,0.260205462087701,0.260045886549737,0.259773791447279,0.259445145933831,0.259119414581354,0.258855285341773,0.258705563262596,0.258705563262596, +0.397080365462105,0.397080365462105,0.397018362645931,0.39674118433306,0.396315033492571,0.39581788276733,0.395328141950558,0.394925523167413,0.394691093648106,0.394691093648106, +0.571569825944056,0.571569825944056,0.571423392022473,0.570976878886431,0.57034682783565,0.569637368137685,0.568938686780146,0.568345540523669,0.567977279683534,0.567977279683534, +0.776950967774905,0.776950967774905,0.776735466533719,0.77603579221147,0.775148689900184,0.77419583069167,0.773252330630704,0.772399605200185,0.771785387124795,0.771785387124795, + +00:22:48, +0.0388579873954534,0.0388579873954534,0.0388945250603545,0.0388912348788043,0.0388581450115569,0.0388081393846567,0.0387549529344867,0.0387112162166123,0.0386866726283752,0.0386866726283752, +0.0388579873954534,0.0388579873954534,0.0388945250603545,0.0388912348788043,0.0388581450115569,0.0388081393846567,0.0387549529344867,0.0387112162166123,0.0386866726283752,0.0386866726283752, +0.0566352412258417,0.0566352412258417,0.0566736854868514,0.0566605446897495,0.0566090434384722,0.0565362287899896,0.0564603732937309,0.0563984605044755,0.0563637957419187,0.0563637957419187, +0.0955202696975119,0.0955202696975119,0.0955583615688395,0.0955213059356456,0.0954288389963493,0.0953064909603997,0.0951817827766119,0.0950807045691951,0.0950241671501922,0.0950241671501922, +0.161296570965105,0.161296570965105,0.161324155123173,0.161241455673102,0.161078241782757,0.16087300411419,0.160667252987153,0.160500969409957,0.160407691930589,0.160407691930589, +0.26038215087879,0.26038215087879,0.260379067336101,0.260219506974868,0.259947461884955,0.259618883002212,0.259293219692417,0.259029146964461,0.258879457739487,0.258879457739487, +0.397252730423163,0.397252730423163,0.397190698939357,0.396913587352491,0.396487566507486,0.395990575858758,0.395500996052486,0.39509851180446,0.39486416182704,0.39486416182704, +0.571710771432488,0.571710771432488,0.57156435002414,0.571117987739647,0.570488172052562,0.569778985365693,0.569080576186744,0.568487662706639,0.568119546919084,0.568119546919084, +0.777030767669057,0.777030767669057,0.776815339114575,0.776115928864242,0.775229171973615,0.774276688999317,0.773333563306392,0.772481175719525,0.771867198634467,0.771867198634467, + +00:22:49, +0.0389398844740849,0.0389398844740849,0.038976456253394,0.0389731670223734,0.0389400517699096,0.038890004358492,0.0388367716231764,0.0387929959737927,0.0387684303021175,0.0387684303021175, +0.0389398844740849,0.0389398844740849,0.038976456253394,0.0389731670223734,0.0389400517699096,0.038890004358492,0.0388367716231764,0.0387929959737927,0.0387684303021175,0.0387684303021175, +0.0567324971317823,0.0567324971317823,0.0567709641155269,0.0567578195414691,0.0567062930023742,0.0566334394705947,0.0565575415996844,0.0564955933742353,0.0564609085688571,0.0564609085688571, +0.0956441030419874,0.0956441030419874,0.09568219681778,0.0956451320510124,0.0955526456416971,0.0954302708587888,0.0953055342277872,0.0952044324589039,0.0951478818190694,0.0951478818190694, +0.161449795076549,0.161449795076549,0.161477357099692,0.161394650997509,0.161231439164013,0.161026206650874,0.160820460942382,0.160654182014258,0.1605609074486,0.1605609074486, +0.260555693682899,0.260555693682899,0.260552572832363,0.2603930277028,0.260121032688221,0.259792520512351,0.259466925324363,0.259202909171907,0.259053252835561,0.259053252835561, +0.397424956808692,0.397424956808692,0.397362896739561,0.397085851880623,0.396659960994538,0.396163130376974,0.395673711537881,0.395271361785945,0.395037091323482,0.395037091323482, +0.571851580668925,0.571851580668925,0.57170517181268,0.571258960265573,0.570629379747158,0.569920465848352,0.569222328627787,0.568629647731695,0.568261676871664,0.568261676871664, +0.777110482600013,0.777110482600013,0.776895126667482,0.77619598021368,0.775309568381266,0.774357461249867,0.773414709536968,0.772562659440411,0.771948923089589,0.771948923089589, + +00:22:50, +0.0390218521712129,0.0390218521712129,0.0390584580279644,0.0390551697570009,0.0390220291655307,0.0389719400378865,0.0389186610902527,0.0388748465694435,0.038850258848074,0.038850258848074, +0.0390218521712129,0.0390218521712129,0.0390584580279644,0.0390551697570009,0.0390220291655307,0.0389719400378865,0.0389186610902527,0.0388748465694435,0.038850258848074,0.038850258848074, +0.0568298044959578,0.0568298044959578,0.0568682941694855,0.0568551458384352,0.0568035940743577,0.0567307017485304,0.0566547615974277,0.0565927780136509,0.0565580732091874,0.0565580732091874, +0.09576794906671,0.09576794906671,0.0958060447311344,0.0957689708700332,0.0956764650771356,0.0955540636641059,0.0954292987082911,0.0953281734786171,0.0952716096744295,0.0952716096744295, +0.161602977149321,0.161602977149321,0.161630517058162,0.161547804361954,0.161384594681336,0.161179367447014,0.160973627285126,0.160807353110974,0.160714081517559,0.160714081517559, +0.260729136758545,0.260729136758545,0.260725978664616,0.260566448821516,0.26029450394478,0.259966058551563,0.259640531564088,0.259376572050656,0.259226948637167,0.259226948637167, +0.397597044807944,0.397597044807944,0.397534956235636,0.397257978106449,0.396832217142589,0.396335546510634,0.395846288595158,0.395444073300087,0.395209882325549,0.395209882325549, +0.571992253878136,0.571992253878136,0.57184585761274,0.57139979668898,0.570770451144413,0.570061809810825,0.569363944328598,0.568771495824311,0.568403669766862,0.568403669766862, +0.777190112721451,0.777190112721451,0.77697482934622,0.776275946414044,0.775389879278006,0.774438147598814,0.773495769478532,0.772644056519503,0.772030560647245,0.772030560647245, + +00:22:51, +0.0391038903986469,0.0391038903986469,0.0391405302958724,0.039137242994496,0.0391040771102383,0.0390539463346739,0.0390006212475691,0.0389567679154372,0.0389321581781287,0.0389321581781287, +0.0391038903986469,0.0391038903986469,0.0391405302958724,0.039137242994496,0.0391040771102383,0.0390539463346739,0.0390006212475691,0.0389567679154372,0.0389321581781287,0.0389321581781287, +0.0569271632281831,0.0569271632281831,0.0569656755585826,0.0569525234904973,0.0569009465642286,0.0568280155335345,0.0567520331966264,0.0566900143323296,0.0566552895724848,0.0566552895724848, +0.0958918076986585,0.0958918076986585,0.0959299052359604,0.095892822319728,0.0958002972295424,0.0956778693030167,0.0955530761445599,0.0954519275545806,0.0953953506424119,0.0953953506424119, +0.161756117170335,0.161756117170335,0.161783634985546,0.161700915753302,0.161537708321344,0.161332486488873,0.161126752001268,0.160960482685668,0.16086721412285,0.16086721412285, +0.260902480193908,0.260902480193908,0.260899284920986,0.260739770418991,0.260467875742331,0.260139497207161,0.259814038498485,0.259550135687255,0.25940054523066,0.25940054523066, +0.397768994609866,0.397768994609866,0.397706877616371,0.397429966218663,0.397004335140198,0.396507824448089,0.396018727412432,0.395616646534808,0.395382535021064,0.395382535021064, +0.572132791284403,0.572132791284403,0.571986407648477,0.571540497234151,0.570911386468814,0.570203017477786,0.569505423514011,0.568913207209468,0.568545525829777,0.568545525829777, +0.777269658186671,0.777269658186671,0.777054447304193,0.776355827619215,0.775470104818323,0.774518748201272,0.773576743286803,0.772725367113081,0.772112111464137,0.772112111464137, + +00:22:52, +0.0391859990681878,0.0391859990681878,0.0392226729689157,0.0392193866466594,0.0391861955158423,0.0391360231606787,0.0390826520069691,0.0390387599236359,0.0390141282041555,0.0390141282041555, +0.0391859990681878,0.0391859990681878,0.0392226729689157,0.0392193866466594,0.0391861955158423,0.0391360231606787,0.0390826520069691,0.0390387599236359,0.0390141282041555,0.0390141282041555, +0.0570245732383614,0.0570245732383614,0.0570631081927621,0.057049952407594,0.056998350381881,0.0569253807354332,0.0568493563070344,0.0567873022399667,0.0567525575684123,0.0567525575684123, +0.0960156788650087,0.0960156788650087,0.0960537782595125,0.096016686327313,0.0959241420259918,0.0958016877023837,0.0956768664632268,0.095575694613238,0.0955191046493532,0.0955191046493532, +0.161909215126693,0.161909215126693,0.161936710868996,0.161853985158604,0.161690780070843,0.161485563762905,0.161279835076879,0.161113570724095,0.16102030525005,0.16102030525005, +0.261075724077165,0.261075724077165,0.261072491689594,0.260912992583198,0.260641148168574,0.260312836566457,0.25998744621445,0.259723600168253,0.259574042702395,0.259574042702395, +0.397940806403103,0.397940806403103,0.397878661070252,0.397601816405656,0.397176315175623,0.396679964377394,0.396191028177521,0.395789081677732,0.395555049597552,0.395555049597552, +0.572273193111518,0.572273193111518,0.57212682214356,0.571681062124879,0.571052185944357,0.570344089073421,0.569646766408372,0.569054782111661,0.568687245285019,0.568687245285019, +0.777349119148599,0.777349119148599,0.777133980694428,0.776435623982696,0.775550245156326,0.774599263211973,0.773657631117117,0.77280659137704,0.772193575696584,0.772193575696584, + +00:22:53, +0.0392681780916282,0.0392681780916282,0.0393048859588844,0.0393016006252839,0.0392683842941436,0.0392181704277167,0.0391647532802874,0.0391208225058924,0.0390961688380183,0.0390961688380183, +0.0392681780916282,0.0392681780916282,0.0393048859588844,0.0393016006252839,0.0392683842941436,0.0392181704277167,0.0391647532802874,0.0391208225058924,0.0390961688380183,0.0390961688380183, +0.0571220344364849,0.0571220344364849,0.0571605919820565,0.0571474324997521,0.0570958054372975,0.0570227972641411,0.0569467308384934,0.0568846416463452,0.0568498771067206,0.0568498771067206, +0.0961395624931325,0.0961395624931325,0.0961776637292411,0.0961405628202002,0.096047999393754,0.0959255187892655,0.0958006695911218,0.0956994745812291,0.0956428716217871,0.0956428716217871, +0.162062271005687,0.162062271005687,0.162089744695855,0.162007012565104,0.161843809916828,0.161638599255752,0.161432876498221,0.161266617212201,0.161173354884927,0.161173354884927, +0.26124886849649,0.26124886849649,0.261245599058556,0.261086115402106,0.260814321311201,0.260486076716763,0.260160754798878,0.259896965580197,0.259747441138728,0.259747441138728, +0.398112480376002,0.398112480376002,0.398050306785466,0.397773528855517,0.397348157436823,0.396851966486302,0.396363191077945,0.395961378916187,0.395727426242241,0.395727426242241, +0.572413459582787,0.572413459582787,0.572267101321172,0.571821491584472,0.571192849794555,0.570485024821428,0.569787973235539,0.569196220754899,0.568828828356715,0.568828828356715, +0.777428495759783,0.777428495759783,0.777213429669576,0.776515335657617,0.775630300445748,0.774679692785273,0.773738433124432,0.772887729466895,0.77227495350052,0.77227495350052, + +00:22:54, +0.0393504273807527,0.0393504273807527,0.0393871691775607,0.0393838848421543,0.0393506433569356,0.0393003880475953,0.0392469249793497,0.0392029555740502,0.0391782799915719,0.0391782799915719, +0.0393504273807527,0.0393504273807527,0.0393871691775607,0.0393838848421543,0.0393506433569356,0.0393003880475953,0.0392469249793497,0.0392029555740502,0.0391782799915719,0.0391782799915719, +0.0572195467326345,0.0572195467326345,0.0572581268365873,0.0572449636770873,0.0571933116405494,0.057120265029661,0.0570441567009335,0.056982032461336,0.0569472480972484,0.0569472480972484, +0.0962634585105976,0.0962634585105976,0.0963015615727918,0.0962644517259972,0.0961718692602946,0.0960493624909165,0.0959244854552707,0.0958232673853905,0.0957666514864435,0.0957666514864435, +0.162215284794794,0.162215284794794,0.162242736453649,0.16215999796023,0.161996797846483,0.161791592954246,0.161585876251747,0.161419622136122,0.16132636301344,0.16132636301344, +0.26142191354005,0.26142191354005,0.261418607115984,0.261259138963679,0.260987395257904,0.260659217745386,0.26033396433866,0.260070232009638,0.259920740626017,0.259920740626017, +0.398284016716604,0.398284016716604,0.398221814949898,0.397945103756037,0.397519862111455,0.397023830962271,0.396535216300927,0.396133538437205,0.395899665142065,0.395899665142065, +0.572553590921031,0.572553590921031,0.572407245404009,0.57196178583575,0.57133337824243,0.570625824945022,0.569929044218888,0.569337523362704,0.568970275268503,0.568970275268503, +0.777507788172402,0.777507788172402,0.777292794381917,0.776594962796729,0.775710270839944,0.774760037075148,0.773819149463327,0.772968781537782,0.772356245031501,0.772356245031501, + +00:22:55, +0.0394327468473388,0.0394327468473388,0.0394695225367195,0.0394662392090483,0.0394329726160041,0.0393826759321141,0.0393291670159734,0.0392851590399443,0.0392604615766621,0.0392604615766621, +0.0394327468473388,0.0394327468473388,0.0394695225367195,0.0394662392090483,0.0394329726160041,0.0393826759321141,0.0393291670159734,0.0392851590399443,0.0392604615766621,0.0392604615766621, +0.05731711003698,0.05731711003698,0.0573557126665646,0.0573425458498041,0.0572908689017966,0.0572177839420841,0.0571416338043728,0.0570794745948984,0.057044670449922,0.057044670449922, +0.0963873668451668,0.0963873668451668,0.0964254717180054,0.0963883529725061,0.0962957515532743,0.0961732187347864,0.0960483139828949,0.0959470729527541,0.0958904441702484,0.0958904441702484, +0.16236825648168,0.16236825648168,0.162395686130093,0.162312941331596,0.162149743847177,0.161944544845405,0.161738834324095,0.161572585482184,0.161479329621738,0.161479329621738, +0.261594859296008,0.261594859296008,0.261591515949984,0.261432063355877,0.261160370096369,0.26083225973963,0.26050707492069,0.260243399543123,0.260093941250619,0.260093941250619, +0.398455415612652,0.398455415612652,0.398393185751132,0.398116541294703,0.397691429386879,0.397195557992457,0.396707104033391,0.396305560427521,0.396071766483662,0.396071766483662, +0.572693587348584,0.572693587348584,0.572547254614285,0.572101945101052,0.571473771510525,0.57076648966693,0.570069979581307,0.569478690158118,0.56911158624354,0.56911158624354, +0.777586996538258,0.777586996538258,0.777372074983355,0.776674505552412,0.775790156491895,0.774840296235198,0.773899780288002,0.773049747744455,0.772437450444703,0.772437450444703, + +00:22:56, +0.0395151364031568,0.0395151364031568,0.0395519459481291,0.0395486636377369,0.0395153719831279,0.0394650339930654,0.0394114793019681,0.0393674328154012,0.039342713505126,0.039342713505126, +0.0395151364031568,0.0395151364031568,0.0395519459481291,0.0395486636377369,0.0395153719831279,0.0394650339930654,0.0394114793019681,0.0393674328154012,0.039342713505126,0.039342713505126, +0.0574147242597798,0.0574147242597798,0.0574533493822874,0.0574401789281956,0.0573884771312874,0.0573153539115901,0.057239162058918,0.0571769679570793,0.057142144074756,0.057142144074756, +0.0965112874247978,0.0965112874247978,0.0965493940929168,0.0965122664877236,0.0964196462005481,0.0962970874485194,0.0961721551014108,0.0960708912105472,0.0960142496003227,0.0960142496003227, +0.162521186054197,0.162521186054197,0.162548593713086,0.162465842667003,0.162302647906466,0.162097454916435,0.161891750702096,0.1617255072369,0.161632254696159,0.161632254696159, +0.26176770585252,0.26176770585252,0.261764325648655,0.261604888666651,0.261333245914276,0.261005202786797,0.260680086631856,0.260416468267201,0.260267043098892,0.260267043098892, +0.398626677251588,0.398626677251588,0.398564419376454,0.398287841658707,0.397862859450154,0.397367147763721,0.396878854461967,0.396477445073576,0.396243730453374,0.396243730453374, +0.572833449087299,0.572833449087299,0.572687129173729,0.572241969602231,0.571614029820898,0.5709070192094,0.570210779545205,0.569619721363698,0.5692527615045,0.5692527615045, +0.777666121008785,0.777666121008785,0.777451271625426,0.776753964076673,0.775869957554208,0.77492047041865,0.773980325752282,0.773130628241295,0.772518569894923,0.772518569894923, + +00:22:57, +0.0395975959599705,0.0395975959599705,0.0396344393235516,0.0396311580399847,0.0395978413700791,0.0395474621422341,0.0394938617491361,0.0394497768122397,0.0394250356887931,0.0394250356887931, +0.0395975959599705,0.0395975959599705,0.0396344393235516,0.0396311580399847,0.0395978413700791,0.0395474621422341,0.0394938617491361,0.0394497768122397,0.0394250356887931,0.0394250356887931, +0.0575123893113815,0.0575123893113815,0.0575510368941438,0.0575378628226437,0.0574861362393591,0.0574129748484474,0.0573367413747636,0.057274512458014,0.0572396688818528,0.0572396688818528, +0.0966352201776422,0.0966352201776422,0.0966733286257548,0.09663619219984,0.096543553130165,0.0964209685599541,0.0962960087384292,0.0961947220861916,0.0961380677039826,0.0961380677039826, +0.162674073500379,0.162674073500379,0.162701459190713,0.162618701954436,0.162455510012091,0.162250323154728,0.162044625372764,0.161878387386974,0.16178513822323,0.16178513822323, +0.261940453297738,0.261940453297738,0.261937036300091,0.26177761498395,0.261506022799302,0.261178046974184,0.260852999559046,0.260589438268417,0.260440046257192,0.260440046257192, +0.398797801820556,0.398797801820556,0.398735516012849,0.398459005034939,0.398034152488044,0.397538600462626,0.397050467772989,0.396649192561516,0.396415557237253,0.396415557237253, +0.572973176358549,0.572973176358549,0.572826869303591,0.572381859560662,0.571754153395123,0.571047413794197,0.570351444332508,0.56976061720152,0.569393801273575,0.569393801273575, +0.777745161735047,0.777745161735047,0.777530384459294,0.776833338521146,0.775949674179117,0.775000559778354,0.774060786009616,0.773211423182305,0.772599603536582,0.772599603536582, + +00:22:58, +0.0396801254295378,0.0396801254295378,0.0397170025747429,0.0397137223275502,0.0396803806886238,0.0396299602913991,0.0395763142692725,0.0395321909422715,0.0395074280394851,0.0395074280394851, +0.0396801254295378,0.0396801254295378,0.0397170025747429,0.0397137223275502,0.0396803806886238,0.0396299602913991,0.0395763142692725,0.0395321909422715,0.0395074280394851,0.0395074280394851, +0.0576101051022216,0.0576101051022216,0.0576487751126107,0.0576355974436195,0.0575838461364375,0.0575106466630126,0.0574343716621928,0.0573721080079259,0.0573372447814029,0.0573372447814029, +0.0967591650320452,0.0967591650320452,0.0967972752449417,0.0967601300372389,0.0966674722703672,0.0965448619971224,0.0964198748217547,0.0963185655073034,0.096261898408738,0.096261898408738, +0.162826918808446,0.162826918808446,0.16285428255124,0.162771519182063,0.162608330151977,0.162403149547862,0.1621974583233,0.162031225919295,0.161937980189665,0.161937980189665, +0.262113101719804,0.262113101719804,0.262109647992379,0.261950242395713,0.261678700839117,0.261350792389085,0.261025813789143,0.260762309633317,0.260612950811876,0.260612950811876, +0.398968789506399,0.398968789506399,0.398906475847004,0.398630031609992,0.398205308687011,0.397709916275437,0.397221944152494,0.396820803077192,0.396587247021052,0.396587247021052, +0.573112769383223,0.573112769383223,0.572966475224641,0.572521615197236,0.571894142454298,0.571187673642605,0.570491974164662,0.569901377893181,0.56953470577248,0.56953470577248, +0.777824118867736,0.777824118867736,0.777609413635753,0.776912629037098,0.776029306518484,0.775080564466789,0.774141161213081,0.773292132721111,0.772680551523724,0.772680551523724, + +00:22:59, +0.0397627247236108,0.0397627247236108,0.0397996356134537,0.0397963564121866,0.0397629898505223,0.0397125283523329,0.0396588367741659,0.0396146751173009,0.0395898904690164,0.0395898904690164, +0.0397627247236108,0.0397627247236108,0.0397996356134537,0.0397963564121866,0.0397629898505223,0.0397125283523329,0.0396588367741659,0.0396146751173009,0.0395898904690164,0.0395898904690164, +0.0577078715428255,0.0577078715428255,0.0577465639482537,0.0577333827016825,0.0576816067330372,0.0576083692657311,0.057532052831577,0.0574697545171265,0.0574348716836848,0.0574348716836848, +0.0968831219165452,0.0968831219165452,0.0969212338790923,0.0968840799284965,0.09679140354959,0.0966687676882495,0.0965437532793854,0.0964424214016922,0.096385741642293,0.096385741642293, +0.162979721966803,0.162979721966803,0.16300706378312,0.162924294338237,0.162761108314234,0.162555934083597,0.162350249541092,0.162184022820936,0.162090780582363,0.162090780582363, +0.262285651206855,0.262285651206855,0.262282160813598,0.262122770989874,0.261851280121384,0.261523439118785,0.261198529409029,0.260935082448442,0.260785756849297,0.260785756849297, +0.399139640495663,0.399139640495663,0.399077299065306,0.39880092157016,0.398376328233224,0.397881095388125,0.397393283786226,0.396992276806162,0.396758799990235,0.396758799990235, +0.573252228381734,0.573252228381734,0.573105947157168,0.572661236732369,0.57203399721904,0.57132779897543,0.570632369262637,0.570042003659799,0.569675475222448,0.569675475222448, +0.777902992557181,0.777902992557181,0.777688359305231,0.776991835775423,0.776108854723802,0.775160484636061,0.774221451515378,0.773372757010968,0.772761414010017,0.772761414010017, + +00:23:00, +0.0398453937539365,0.0398453937539365,0.0398823383514296,0.039879060205642,0.0398456687675295,0.0397951662368023,0.039741429175599,0.0396972292491263,0.039672422889195,0.039672422889195, +0.0398453937539365,0.0398453937539365,0.0398823383514296,0.039879060205642,0.0398456687675295,0.0397951662368023,0.039741429175599,0.0396972292491263,0.039672422889195,0.039672422889195, +0.0578056885438077,0.0578056885438077,0.057844403311728,0.0578312185074816,0.0577794179397617,0.057706142567137,0.0576297847933762,0.0575674518960158,0.0575325494990653,0.0575325494990653, +0.0970070907598732,0.0970070907598732,0.0970452044570138,0.0970080418023812,0.0969153468964607,0.0967926855617531,0.0966676440395121,0.0965662896973608,0.0965095973325447,0.0965095973325447, +0.163132482964035,0.163132482964035,0.163159802874985,0.163077027411491,0.162913844487152,0.16270867674988,0.162502999013711,0.16233677807916,0.162243539388411,0.162243539388411, +0.26245810184702,0.26245810184702,0.26245457485182,0.262295200854358,0.262023760733761,0.26169598725057,0.261371146505579,0.261107756800332,0.260958464455809,0.260958464455809, +0.399310354974595,0.399310354974595,0.399247985853849,0.39897167510144,0.398547211312552,0.398052137986365,0.397564486859634,0.397163613933691,0.39693021632997,0.39693021632997, +0.573391553574016,0.573391553574016,0.573245285320987,0.572800724385997,0.572173717909489,0.571467790013001,0.570772629846922,0.570182494722018,0.56981610984424,0.56981610984424, +0.777981782953341,0.777981782953341,0.777767221617789,0.777070958886651,0.776188318946192,0.775240320437909,0.774301657068839,0.773453296204756,0.772842191148759,0.772842191148759, + +00:23:01, +0.0399281324322569,0.0399281324322569,0.0399651107004117,0.03996183361966,0.0399284173513956,0.039877873856569,0.0398240913853486,0.0397798532495395,0.0397550252118226,0.0397550252118226, +0.0399281324322569,0.0399281324322569,0.0399651107004117,0.03996183361966,0.0399284173513956,0.039877873856569,0.0398240913853486,0.0397798532495395,0.0397550252118226,0.0397550252118226, +0.0579035560158718,0.0579035560158718,0.0579422931137773,0.0579291047717544,0.0578772796673034,0.0578039664778527,0.0577275674581387,0.0576652000550816,0.0576302781379993,0.0576302781379993, +0.0971310714909519,0.0971310714909519,0.0971691869077051,0.0971320155878532,0.0970393022397986,0.096916615546243,0.0967915470305182,0.0966901703225045,0.0966334654075828,0.0966334654075828, +0.163285201788909,0.163285201788909,0.163312499815649,0.163229718390541,0.163066538659205,0.162861377534837,0.162655706728911,0.162489491681412,0.162396256595079,0.162396256595079, +0.26263045372842,0.26263045372842,0.262626890195106,0.262467532077084,0.262196142763898,0.261868436871714,0.261543665165667,0.261280332775524,0.261131073717759,0.261131073717759, +0.399480933129145,0.399480933129145,0.399418536398424,0.399142292389533,0.398717958110569,0.398223044255536,0.397735553557872,0.39733481464475,0.397101496225137,0.397101496225137, +0.573530745179528,0.573530745179528,0.573384489935435,0.572940078377581,0.572313304745307,0.571607646975171,0.570912756137534,0.570322851300002,0.569956609858136,0.569956609858136, +0.778060490205811,0.778060490205811,0.777846000723121,0.777149998520942,0.776267699336412,0.775320072023698,0.774381778025425,0.773533750454987,0.772922883092873,0.772922883092873, + +00:23:02, +0.04001094067031,0.04001094067031,0.0400479525721368,0.0400446765659798,0.0400112355138664,0.0399606511233897,0.0399068233151863,0.039862547030327,0.0398376973486948,0.0398376973486948, +0.04001094067031,0.04001094067031,0.0400479525721368,0.0400446765659798,0.0400112355138664,0.0399606511233897,0.0399068233151863,0.039862547030327,0.0398376973486948,0.0398376973486948, +0.0580014738698105,0.0580014738698105,0.0580402332652347,0.0580270414053277,0.0579751918264433,0.0579018409085898,0.0578254007365014,0.0577629989049007,0.0577280575110298,0.0577280575110298, +0.0972550640388959,0.0972550640388959,0.0972931811603563,0.0972560012140638,0.0971632695086141,0.0970405575705204,0.0969154621809786,0.0968140632055105,0.0967573457956893,0.0967573457956893, +0.163437878430373,0.163437878430373,0.163465154594106,0.163382367264283,0.163219190819047,0.163014036426778,0.162808372674631,0.162642163615318,0.162548932189823,0.162548932189823, +0.262802706939166,0.262802706939166,0.262799106931513,0.262639764745959,0.262368426299437,0.262040788069488,0.261716085476159,0.261452810460551,0.261303584721495,0.261303584721495, +0.399651375144965,0.399651375144965,0.399588950884528,0.399312773619841,0.398888568812553,0.398393814380722,0.397906484065804,0.397505879124019,0.397272639860319,0.397272639860319, +0.573669803417253,0.573669803417253,0.573523561219376,0.573079298926108,0.572452757945683,0.571747370081317,0.571052748354013,0.570463073613443,0.570096975483945,0.570096975483945, +0.778139114463822,0.778139114463822,0.777924696770558,0.777228954828094,0.776346996044848,0.775399739544428,0.774461814536728,0.773614119913798,0.773003489994912,0.773003489994912, + +00:23:03, +0.0400938183798295,0.0400938183798295,0.040130863878338,0.0401275889563369,0.0400941231666835,0.0400434979490171,0.0399896248768791,0.0399453105032701,0.0399204392116022,0.0399204392116022, +0.0400938183798295,0.0400938183798295,0.040130863878338,0.0401275889563369,0.0400941231666835,0.0400434979490171,0.0399896248768791,0.0399453105032701,0.0399204392116022,0.0399204392116022, +0.0580994420165055,0.0580994420165055,0.0581382236770224,0.0581250283191171,0.0580731543280518,0.0579997657701484,0.0579232845391898,0.0578608483561376,0.0578258875287883,0.0578258875287883, +0.0973790683330106,0.0973790683330106,0.0974171871443482,0.0973799986103547,0.0972872486321087,0.0971645115635777,0.0970393894196598,0.0969379682749578,0.096881238425338,0.096881238425338, +0.163590512877557,0.163590512877557,0.16361776719953,0.163534974021791,0.163371800955514,0.163166653414194,0.16296099683899,0.162794793868692,0.16270156616028,0.16270156616028, +0.262974861567362,0.262974861567362,0.262971225149084,0.262811898948886,0.262540611428013,0.262213040931156,0.261888407523918,0.26162518994194,0.26147599755336,0.26147599755336, +0.399821681207412,0.399821681207412,0.399759229497363,0.399483118977474,0.399059043603487,0.398564448546716,0.398077278567997,0.397676807555886,0.397443647419813,0.397443647419813, +0.573808728505702,0.573808728505702,0.573662499391199,0.573218386250091,0.572592077729333,0.571886959550345,0.571192606715426,0.570603161881561,0.570237206941004,0.570237206941004, +0.778217655876242,0.778217655876242,0.778003309909068,0.777307827957537,0.776426209221523,0.775479323150732,0.774541766753971,0.773694404732961,0.773084012007059,0.773084012007059, + +00:23:04, +0.040176765472546,0.040176765472546,0.0402138445307452,0.0402105707024635,0.0401770802215852,0.0401264142451995,0.0400724959821894,0.0400281435801454,0.0400032507123302,0.0400032507123302, +0.040176765472546,0.040176765472546,0.0402138445307452,0.0402105707024635,0.0401770802215852,0.0401264142451995,0.0400724959821894,0.0400281435801454,0.0400032507123302,0.0400032507123302, +0.058197460366928,0.058197460366928,0.0582362642601517,0.0582230654241277,0.0581711670830878,0.0580977409734173,0.0580212187770178,0.0579587483195457,0.0579237681019945,0.0579237681019945, +0.0975030843027918,0.0975030843027918,0.0975412047892518,0.0975040077062581,0.0974112395396737,0.0972884774545976,0.0971633286755188,0.0970618854596162,0.0970051432251935,0.0970051432251935, +0.163743105119767,0.163743105119767,0.163770337621275,0.16368753865232,0.163524369057618,0.163319228485755,0.163113579210289,0.162947382429526,0.162854158494271,0.162854158494271, +0.2631469177011,0.2631469177011,0.263143244935856,0.262983934773754,0.262712698237252,0.262385195543975,0.262060631395799,0.261797471306217,0.261648312299694,0.261648312299694, +0.399991851501547,0.399991851501547,0.399929372421832,0.399653328647243,0.399229382668061,0.398734946938013,0.398247937248728,0.397847600124446,0.397614519087622,0.397614519087622, +0.57394752066291,0.57394752066291,0.573801304668823,0.57335734056757,0.572731264314499,0.572026415600686,0.57133233144037,0.570743116323102,0.570377304448174,0.570377304448174, +0.778296114591577,0.778296114591577,0.778081840287256,0.77738661805834,0.776505339016096,0.775558822992877,0.774621634828011,0.773774605063878,0.773164449281126,0.773164449281126, + +00:23:05, +0.0402597818601867,0.0402597818601867,0.0402968944410853,0.0402936217160889,0.0402601065903063,0.0402093999236819,0.0401554365428757,0.040111046172725,0.0400861317626596,0.0400861317626596, +0.0402597818601867,0.0402597818601867,0.0402968944410853,0.0402936217160889,0.0402601065903063,0.0402093999236819,0.0401554365428757,0.040111046172725,0.0400861317626596,0.0400861317626596, +0.0582955288321381,0.0582955288321381,0.0583343549257231,0.0583211526314533,0.0582692300025994,0.0581957664293743,0.0581192033608882,0.0580566987059667,0.0580216991414565,0.0580216991414565, +0.0976271118779253,0.0976271118779253,0.0976652340248276,0.0976280284314953,0.0975352421608903,0.097412455172953,0.097287279877703,0.097185814688446,0.0971290601241112,0.0971290601241112, +0.163895655146489,0.163895655146489,0.163922865848872,0.163840061145303,0.163676895114553,0.163471761630313,0.16326611977701,0.163099929285994,0.163006709179799,0.163006709179799, +0.263318875428466,0.263318875428466,0.263315166379853,0.263155872308446,0.26288468681477,0.262557251995192,0.262232757178653,0.261969654639899,0.261820529046829,0.261820529046829, +0.400161886212133,0.400161886212133,0.400099379842547,0.399823402813667,0.399399586190667,0.398905309738817,0.398418460291982,0.398018257013507,0.397785255047459,0.397785255047459, +0.574086180106447,0.574086180106447,0.573939977269694,0.573496162096115,0.572870317918954,0.572165738450302,0.571471922746969,0.570882937156344,0.57051726822385,0.57051726822385, +0.778374490757973,0.778374490757973,0.778160288053366,0.77746532527921,0.77658438557786,0.775638239220763,0.774701418909339,0.773854721057584,0.77324480196856,0.77324480196856, + +00:23:06, +0.0403428674544764,0.0403428674544764,0.0403800135210829,0.0403767419089399,0.0403432021845793,0.0402924548962063,0.0402384464706931,0.0401940181927772,0.0401690822743674,0.0401690822743674, +0.0403428674544764,0.0403428674544764,0.0403800135210829,0.0403767419089399,0.0403432021845793,0.0402924548962063,0.0402384464706931,0.0401940181927772,0.0401690822743674,0.0401690822743674, +0.0583936473232854,0.0583936473232854,0.0584324955849265,0.0584192898522771,0.0583673429977239,0.0582938420490861,0.0582172382017923,0.0581546994263307,0.0581196805580706,0.0581196805580706, +0.0977511509882864,0.0977511509882864,0.0977892747810255,0.097752060715977,0.0976592564255289,0.0975364446482059,0.0974112429555496,0.0973097558905976,0.0972529890511365,0.0972529890511365, +0.164048162947387,0.164048162947387,0.164075351872028,0.16399254149035,0.163829379115689,0.163624252836896,0.163418618527813,0.163252434426452,0.163159218205046,0.163159218205046, +0.263490734837532,0.263490734837532,0.263486989569092,0.263327711640831,0.263056577248175,0.262729210372049,0.262404784959323,0.262141740029501,0.261992647881098,0.261992647881098, +0.400331785523642,0.400331785523642,0.400269251943821,0.399993341660967,0.399569654355407,0.399075537133042,0.398588847881453,0.398188778406582,0.397955855482749,0.397955855482749, +0.574224707053408,0.574224707053408,0.574078517410792,0.573634851052827,0.573009238759999,0.572304928316684,0.57161138085288,0.571022624599094,0.570657098485957,0.570657098485957, +0.778452784523215,0.778452784523215,0.778238653355284,0.777543949768493,0.776663349055749,0.775717571983931,0.774781119148081,0.77393475286475,0.77332507022044,0.77332507022044, + +00:23:07, +0.0404260221671374,0.0404260221671374,0.0404632016824605,0.0404599311927412,0.0404263669161339,0.0403755790745119,0.0403215256773934,0.0402770595520669,0.0402521021592266,0.0402521021592266, +0.0404260221671374,0.0404260221671374,0.0404632016824605,0.0404599311927412,0.0404263669161339,0.0403755790745119,0.0403215256773934,0.0402770595520669,0.0402521021592266,0.0402521021592266, +0.0584918157516088,0.0584918157516088,0.058530686149041,0.0585174769978716,0.0584655059796874,0.0583919677437081,0.0583153232108101,0.0582527503916566,0.0582177122628218,0.0582177122628218, +0.0978752015639392,0.0978752015639392,0.0979133269879837,0.0978761044898025,0.0977832822635486,0.0976604458101075,0.0975352178385848,0.0974337089954107,0.0973769299355046,0.0973769299355046, +0.164200628512301,0.164200628512301,0.164227795680628,0.164144979677245,0.163981821050574,0.16377670209471,0.163571075451539,0.163404897839434,0.163311685558374,0.163311685558374, +0.263662496016359,0.263662496016359,0.263658714591575,0.263499452858771,0.263228369625065,0.262901070761777,0.262576714824645,0.262313727561529,0.262164668888823,0.262164668888823, +0.400501549620249,0.400501549620249,0.400438988909676,0.400163145373074,0.399739587346088,0.399245629304305,0.398759100200542,0.398359164486898,0.398126320576625,0.398126320576625, +0.574363101720422,0.574363101720422,0.574216925308626,0.573773407654338,0.57314802705447,0.572443985416858,0.571750705975291,0.571162178868692,0.57079679545195,0.57079679545195, +0.778530996034732,0.778530996034732,0.778316936340536,0.777622491674175,0.776742229598334,0.775796821431557,0.774860735694002,0.77401470063568,0.773405254187482,0.773405254187482, + +00:23:08, +0.0405092459098905,0.0405092459098905,0.0405464588369387,0.0405431894792158,0.0405096006966984,0.0404587723703356,0.0404046740747259,0.0403601701623559,0.0403351913290072,0.0403351913290072, +0.0405092459098905,0.0405092459098905,0.0405464588369387,0.0405431894792158,0.0405096006966984,0.0404587723703356,0.0404046740747259,0.0403601701623559,0.0403351913290072,0.0403351913290072, +0.0585900340284363,0.0585900340284363,0.0586289265294349,0.0586157139795983,0.0585637188598052,0.0584901434244849,0.0584134582991104,0.0583508515130515,0.0583157941667835,0.0583157941667835, +0.0979992635351361,0.0979992635351361,0.0980373905760288,0.0980001596832587,0.0979073196050967,0.0977844585885975,0.0976592044565238,0.0975576739324141,0.0975008827066396,0.0975008827066396, +0.164353051831247,0.164353051831247,0.164380197264732,0.164297375695952,0.16413422090893,0.16392910939314,0.163723490537204,0.163557319513653,0.163464111228327,0.163464111228327, +0.263834159053001,0.263834159053001,0.263830341535295,0.263671096050115,0.263400064033028,0.2630728332516,0.262748546861447,0.262485617322485,0.262336592156324,0.262336592156324, +0.400671178685835,0.400671178685835,0.400608590923839,0.400332814133624,0.399909385346224,0.399415586435934,0.398929217432364,0.398529415437391,0.398296650511935,0.398296650511935, +0.574501364323652,0.574501364323652,0.57435520117924,0.573911832116814,0.573286683018732,0.57258290996738,0.571889898330922,0.571301600182012,0.57093635933882,0.57093635933882, +0.778609125439592,0.778609125439592,0.77839513715629,0.777700951143882,0.776821027353827,0.775875987712455,0.774940268696501,0.774094564520319,0.773485354020035,0.773485354020035, + +00:23:09, +0.040592538594455,0.040592538594455,0.0406297848962375,0.0406265166800856,0.0405929034379994,0.0405420346954124,0.0404878915744375,0.0404433499354034,0.0404183496954761,0.0404183496954761, +0.040592538594455,0.040592538594455,0.0406297848962375,0.0406265166800856,0.0405929034379994,0.0405420346954124,0.0404878915744375,0.0404433499354034,0.0404183496954761,0.0404183496954761, +0.0586883020651856,0.0586883020651856,0.0587272166375659,0.0587140007089081,0.058661981549482,0.0585883690027499,0.0585116433779509,0.0584490027017116,0.0584139261811176,0.0584139261811176, +0.0981233368323178,0.0981233368323178,0.0981614654756747,0.0981242262268206,0.0980313683805079,0.0979084829138032,0.0977832027392698,0.097681650631325,0.0976248472941542,0.0976248472941542, +0.164505432894416,0.164505432894416,0.164532556614574,0.164449729536606,0.164286578680657,0.164081474721746,0.163875863774003,0.163709699438,0.163616495203624,0.163616495203624, +0.264005724035495,0.264005724035495,0.264001870488234,0.2638426413027,0.263571660559639,0.263244497928731,0.262920281156551,0.262657409398863,0.262508417769914,0.262508417769914, +0.400840672903989,0.400840672903989,0.400778058169744,0.40050234812596,0.400079048539038,0.399585408710967,0.399099199759739,0.398699531440708,0.398466845471236,0.398466845471236, +0.574639495078794,0.574639495078794,0.574493345238212,0.574050124655956,0.573425206868687,0.572721702184342,0.572028958136031,0.571440888755462,0.571075790363091,0.571075790363091, +0.778687172884512,0.778687172884512,0.778473255949358,0.777779328324886,0.776899742470081,0.775955070975081,0.775019718304619,0.774174344668244,0.773565369868085,0.773565369868085, + +00:23:10, +0.0406759001325491,0.0406759001325491,0.0407131797720755,0.0407099127070716,0.0406762750517624,0.0406253659614763,0.0405711780882735,0.0405265987829664,0.0405015771703982,0.0405015771703982, +0.0406759001325491,0.0406759001325491,0.0407131797720755,0.0407099127070716,0.0406762750517624,0.0406253659614763,0.0405711780882735,0.0405265987829664,0.0405015771703982,0.0405015771703982, +0.0587866197733635,0.0587866197733635,0.0588255563849813,0.0588123370973413,0.0587602939602113,0.0586866443899256,0.0586098783586779,0.0585472038689212,0.0585121082170744,0.0585121082170744, +0.0982474213861117,0.0982474213861117,0.0982855516176225,0.0982483040511497,0.0981554285203044,0.0980325187160395,0.0979072126169138,0.0978056390220484,0.0977488236278491,0.0977488236278491, +0.164657771692173,0.164657771692173,0.164684873720564,0.164602041189518,0.164438894355827,0.164233798070263,0.164028195151308,0.163862037601542,0.163768837473163,0.163768837473163, +0.26417719105187,0.26417719105187,0.264173301538359,0.264014088704352,0.263743159292465,0.263416064880373,0.263091917796768,0.26282910387715,0.262680145815897,0.262680145815897, +0.401010032458006,0.401010032458006,0.400947390830532,0.400671747533132,0.40024857710746,0.399755096312148,0.399269047365201,0.398869512679209,0.398636905636797,0.398636905636797, +0.574777494201078,0.574777494201078,0.574631357700657,0.574188285486998,0.573563598819773,0.57286036228337,0.57216788560641,0.571580044804987,0.571215088740826,0.571215088740826, +0.778765138515849,0.778765138515849,0.778551292866198,0.7778576233641,0.77697837509459,0.776034071367533,0.775099084667035,0.774254041228676,0.773645301881259,0.773645301881259, + +00:23:11, +0.0407593304358907,0.0407593304358907,0.0407966433761713,0.0407933774718943,0.0407597154497123,0.0407087660802597,0.0406545335279775,0.0406099166168001,0.0405848736655359,0.0405848736655359, +0.0407593304358907,0.0407593304358907,0.0407966433761713,0.0407933774718943,0.0407597154497123,0.0407087660802597,0.0406545335279775,0.0406099166168001,0.0405848736655359,0.0405848736655359, +0.0588849870645663,0.0588849870645663,0.0589239456833174,0.0589107230565274,0.0588586560035761,0.0587849694975234,0.0587081631527267,0.0586454549260538,0.058610340185993,0.058610340185993, +0.0983715171273327,0.0983715171273327,0.09840964893276,0.0983723930870943,0.0982794999551947,0.0981565659258082,0.0980312340197338,0.0979296390346769,0.0978728116377126,0.0978728116377126, +0.164810068215059,0.164810068215059,0.164837148573283,0.164754310645172,0.164591167924689,0.1643860794286,0.164180484658664,0.164014333993524,0.163921138026018,0.163921138026018, +0.264348560190139,0.264348560190139,0.264344634773626,0.264185438342885,0.26391456031906,0.263587534193721,0.263263456868901,0.263000700843824,0.262851776380574,0.262851776380574, +0.401179257530889,0.401179257530889,0.401116589089053,0.400841012537899,0.40041797123413,0.399924649421936,0.399438760430994,0.399039359334964,0.398806831190602,0.398806831190602, +0.574915361905275,0.574915361905275,0.574769238781226,0.574326314824715,0.573701859086964,0.572998890479629,0.572306680957387,0.571719068546068,0.571354254687622,0.571354254687622, +0.778843022479609,0.778843022479609,0.778629248052913,0.777935836408082,0.777056925374495,0.776112989037547,0.775178367932071,0.774333654350473,0.77372515020882,0.77372515020882, + +00:23:12, +0.0408428294161973,0.0408428294161973,0.0408801756202434,0.0408769108862744,0.0408432245435739,0.0407922349634949,0.0407379578052923,0.0406933033486584,0.0406682390926505,0.0406682390926505, +0.0408428294161973,0.0408428294161973,0.0408801756202434,0.0408769108862744,0.0408432245435739,0.0407922349634949,0.0407379578052923,0.0406933033486584,0.0406682390926505,0.0406682390926505, +0.05898340385048,0.05898340385048,0.0590223844443003,0.0590091584981853,0.0589570675912485,0.0588833442371439,0.0588064976716216,0.0587437557845713,0.0587086219993011,0.0587086219993011, +0.0984956239869815,0.0984956239869815,0.0985337573521608,0.0984964932656886,0.0984035826160737,0.0982806244737973,0.0981552668781946,0.0980536505994898,0.09799681125392,0.09799681125392, +0.164962322453784,0.164962322453784,0.164989381163486,0.164906537894223,0.164743399377662,0.164538318786842,0.164332732285794,0.164166588603367,0.164073396851441,0.164073396851441, +0.264519831538306,0.264519831538306,0.264515870281978,0.264356690306098,0.264085863726965,0.263758905955956,0.263434898459744,0.263172200385357,0.263023309550234,0.263023309550234, +0.401348348305349,0.401348348305349,0.401285653127863,0.40101014332273,0.400587231101397,0.400094068222495,0.399608339139074,0.399209071589758,0.398976622314345,0.398976622314345, +0.575053098405691,0.575053098405691,0.574906988694109,0.574464212883416,0.573839987884771,0.573137286987822,0.57244534440383,0.571857960193726,0.571493288418617,0.571493288418617, +0.778920824921446,0.778920824921446,0.778707121655253,0.778013967603036,0.777135393456577,0.776191824132508,0.775257568247689,0.774413184182136,0.773804914999674,0.773804914999674, + +00:23:13, +0.0409263969851868,0.0409263969851868,0.0409637764160108,0.0409605128619328,0.040926802245072,0.0408757725229138,0.0408214508319599,0.0407767588902942,0.0407516733635019,0.0407516733635019, +0.0409263969851868,0.0409263969851868,0.0409637764160108,0.0409605128619328,0.040926802245072,0.0408757725229138,0.0408214508319599,0.0407767588902942,0.0407516733635019,0.0407516733635019, +0.0590818700428798,0.0590818700428798,0.0591208725797454,0.0591076433341232,0.0590555286349898,0.058981768520477,0.0589048818269755,0.0588421063560244,0.058806953568515,0.058806953568515, +0.098619741896245,0.098619741896245,0.0986578768070841,0.0986206045181522,0.0985276764340217,0.098404694290881,0.0982793111229472,0.098177673646953,0.0981208224068331,0.0981208224068331, +0.165114534399233,0.165114534399233,0.165141571482098,0.165058722927501,0.164895588705338,0.164690516135246,0.164484938022592,0.164318801420663,0.164225613938857,0.164225613938857, +0.264691005184358,0.264691005184358,0.264687008151345,0.26452784468178,0.264257069603711,0.26393018025425,0.263606242656081,0.26334360258821,0.263194745411161,0.263194745411161, +0.401517304963805,0.401517304963805,0.401454583129231,0.4011791400698,0.400756356891321,0.400263352895703,0.399777783671109,0.399378649625087,0.399146279189436,0.399146279189436, +0.575190703916173,0.575190703916173,0.575044607653036,0.574601979876954,0.573977985427247,0.57327555202219,0.572583876160148,0.571996719962522,0.571632190148488,0.571632190148488, +0.77899854598666,0.77899854598666,0.778784913818616,0.778092017094815,0.777213779487267,0.776270576799441,0.775336685761497,0.774492630871808,0.773884596402367,0.773884596402367, + +00:23:14, +0.0410100330545777,0.0410100330545777,0.0410474456751934,0.0410441833105914,0.0410104484659321,0.0409593786702485,0.0409050125197224,0.0408602831534598,0.0408351763898492,0.0408351763898492, +0.0410100330545777,0.0410100330545777,0.0410474456751934,0.0410441833105914,0.0410104484659321,0.0409593786702485,0.0409050125197224,0.0408602831534598,0.0408351763898492,0.0408351763898492, +0.0591803855536306,0.0591803855536306,0.0592194100015577,0.059206177476239,0.0591540390466509,0.0590802422593013,0.0590033155304907,0.0589405065520528,0.0589053348052397,0.0589053348052397, +0.0987438707864953,0.0987438707864953,0.0987820072289744,0.0987447267758898,0.0986517813403042,0.0985287753081186,0.0984033666848282,0.0983017081077181,0.0982448450269998,0.0982448450269998, +0.16526670404246,0.16526670404246,0.165293719520216,0.165210865736004,0.165047735898482,0.16484267146424,0.164637101859127,0.164470972435183,0.164377789277865,0.164377789277865, +0.264862081216269,0.264862081216269,0.26485804846964,0.264698901557703,0.264428178036813,0.264101357175763,0.263777489544686,0.263514907538837,0.26336608404963,0.26336608404963, +0.401686127688387,0.401686127688387,0.401623379275131,0.401348002960997,0.400925348785669,0.400432503623149,0.399947094208479,0.399548093622162,0.399315801996999,0.399315801996999, +0.575328178650107,0.575328178650107,0.575182095871277,0.57473961601872,0.574115851927983,0.573413685796516,0.572722276440288,0.572135348066558,0.571770960091453,0.571770960091453, +0.779076185820201,0.779076185820201,0.77886262468805,0.778169985028917,0.77729208361264,0.77634924718502,0.775415720620746,0.774571994567275,0.773964194565087,0.773964194565087, + +00:23:15, +0.0410937375360898,0.0410937375360898,0.0411311833095122,0.0411279221439732,0.0410941631178807,0.0410430533172318,0.0409886427803219,0.0409438760499076,0.0409187480834513,0.0409187480834513, +0.0410937375360898,0.0410937375360898,0.0411311833095122,0.0411279221439732,0.0410941631178807,0.0410430533172318,0.0409886427803219,0.0409438760499076,0.0409187480834513,0.0409187480834513, +0.0592789502946868,0.0592789502946868,0.0593179966217317,0.0593047608365199,0.0592525987381717,0.059178765365485,0.059101798693958,0.0590389562843849,0.0590037656211689,0.0590037656211689, +0.0988680105892892,0.0988680105892892,0.0989061485494603,0.0988688599704905,0.0987758972663712,0.0986528674567543,0.0985274334948594,0.0984257539126221,0.0983688790451535,0.0983688790451535, +0.165418831374692,0.165418831374692,0.165445825269107,0.1653629663109,0.165199840948027,0.164994784764425,0.164789223785639,0.164623101636867,0.16452992285824,0.16452992285824, +0.265033059722001,0.265033059722001,0.265028991324766,0.264869861021628,0.264599189113775,0.264272436807643,0.263948639212321,0.263686115323681,0.263537325551907,0.263537325551907, +0.401854816660932,0.401854816660932,0.401792041747249,0.401516732177918,0.401094206965922,0.400601520586133,0.400116270932278,0.399717403761908,0.399485190917872,0.399485190917872, +0.575465522820423,0.575465522820423,0.575319453561645,0.574877121521648,0.574253587600115,0.573551688524125,0.572860545457742,0.572273844719478,0.571909598461274,0.571909598461274, +0.779153744566671,0.779153744566671,0.778940254408252,0.778247871550492,0.77737030597842,0.776427835435563,0.775494672972333,0.774651275415968,0.774043709635667,0.774043709635667, + +00:23:16, +0.0411775103414442,0.0411775103414442,0.0412149892306901,0.0412117292738029,0.0411779461126456,0.0411267963755977,0.0410723415255012,0.0410275374913899,0.0410023883560671,0.0410023883560671, +0.0411775103414442,0.0411775103414442,0.0412149892306901,0.0412117292738029,0.0411779461126456,0.0411267963755977,0.0410723415255012,0.0410275374913899,0.0410023883560671,0.0410023883560671, +0.0593775641780923,0.0593775641780923,0.0594166323523513,0.0594033933270425,0.0593512076215818,0.0592773377509853,0.0592003312292576,0.0591374554648378,0.0591022459280852,0.0591022459280852, +0.098992161236368,0.098992161236368,0.0990303007003547,0.0989930040337274,0.0989000241438569,0.0987769706682166,0.0986515114842471,0.0985498109926872,0.0984929243922126,0.0984929243922126, +0.165570916387322,0.165570916387322,0.165597888720207,0.165515024643529,0.165351903845077,0.165146856026571,0.164941303792541,0.164775189015829,0.164682014669927,0.164682014669927, +0.265203940789498,0.265203940789498,0.265199836804607,0.265040723161299,0.264770102922088,0.264443419237024,0.264119691745738,0.263857226029176,0.263708470004247,0.263708470004247, +0.402023372062989,0.402023372062989,0.401960570726982,0.401685327901868,0.401262931613271,0.400770403965669,0.400285314023314,0.399886580224963,0.399654446132608,0.399654446132608, +0.575602736639593,0.575602736639593,0.575456680936499,0.575014496598216,0.574391192656319,0.573689560417887,0.572998683425545,0.57241221013447,0.572048105471255,0.572048105471255, +0.779231222370322,0.779231222370322,0.779017803123571,0.778325676804338,0.777448446729982,0.776506341697037,0.775573542962802,0.774730473564963,0.774123141761586,0.774123141761586, + +00:23:17, +0.0412613513823638,0.0412613513823638,0.0412988633504519,0.0412956046118072,0.0412617973619567,0.0412106077570812,0.0411561086670042,0.04111126738966,0.0410860971194562,0.0410860971194562, +0.0412613513823638,0.0412613513823638,0.0412988633504519,0.0412956046118072,0.0412617973619567,0.0412106077570812,0.0411561086670042,0.04111126738966,0.0410860971194562,0.0410860971194562, +0.0594762271159808,0.0594762271159808,0.0595153171055903,0.059502074859973,0.0594498656089999,0.0593759593278486,0.0592989130483586,0.0592360040053178,0.0592007756378599,0.0592007756378599, +0.0991163226596565,0.0991163226596565,0.0991544636136539,0.0991171588975569,0.0990241619045791,0.098901084874118,0.0987756005843819,0.0986738792791195,0.0986169809992798,0.0986169809992798, +0.165722959071915,0.165722959071915,0.165749909865119,0.165667040725395,0.165503924580907,0.165298885241621,0.165093341870416,0.164927234562355,0.164834064703045,0.164834064703045, +0.265374724506692,0.265374724506692,0.265370584997036,0.265211488064446,0.264940919549226,0.26461430455103,0.264290647231679,0.264028239741745,0.263879517492899,0.263879517492899, +0.402191794075818,0.402191794075818,0.402128966395435,0.401853790313868,0.40143152290862,0.400939153942482,0.400454223662107,0.400055623191683,0.399823567821476,0.399823567821476, +0.575739820319634,0.575739820319634,0.575593778207738,0.575151741460445,0.574528667308819,0.573827301690213,0.573136690556277,0.572550444524267,0.572186481334245,0.572186481334245, +0.77930861937506,0.77930861937506,0.77909527097801,0.778403400934907,0.777526506012347,0.776584766115059,0.775652330738344,0.774809589160984,0.774202491089966,0.774202491089966, + +00:23:18, +0.0413452605705741,0.0413452605705741,0.0413828055805248,0.0413795480697153,0.0413457167775457,0.0412944873734198,0.0412399441165762,0.0411950656564723,0.0411698742853788,0.0411698742853788, +0.0413452605705741,0.0413452605705741,0.0413828055805248,0.0413795480697153,0.0413457167775457,0.0412944873734198,0.0412399441165762,0.0411950656564723,0.0411698742853788,0.0411698742853788, +0.0595749390205755,0.0595749390205755,0.0596140507937118,0.0596008053475673,0.0595485726126343,0.0594746300082107,0.0593975440633193,0.0593346018178199,0.059299354662453,0.059299354662453, +0.0992404947912632,0.0992404947912632,0.0992786372215373,0.0992413244941185,0.0991483104805387,0.0990252100062542,0.0988997007268379,0.0987979587033093,0.0987410487976422,0.0987410487976422, +0.165874959420203,0.165874959420203,0.165901888695616,0.165819014548175,0.165655903146956,0.165450872400683,0.165245338010017,0.165079238266901,0.164986072947883,0.164986072947883, +0.265545410961498,0.265545410961498,0.265541235989906,0.265382155818784,0.26511163908265,0.264785092836769,0.26446150575687,0.2641991565478,0.264050468104097,0.264050468104097, +0.402360082880388,0.402360082880388,0.402297228933429,0.402022119594647,0.401599981032584,0.401107770697012,0.400623000028893,0.400224532842138,0.399992556164462,0.399992556164462, +0.575876774072109,0.575876774072109,0.575730745586812,0.575288856319905,0.574666011769382,0.573964912553062,0.573274567062062,0.572688548101149,0.572324726262642,0.572324726262642, +0.779385935724445,0.779385935724445,0.779172658115223,0.778481044086302,0.777604483970191,0.776663108834895,0.7757310364448,0.774888622350403,0.774281757767579,0.774281757767579, + +00:23:19, +0.0414292378178029,0.0414292378178029,0.0414668158326392,0.0414635595592592,0.0414297042711472,0.0413784351363526,0.0413238477859644,0.0412789322035826,0.0412537197655964,0.0412537197655964, +0.0414292378178029,0.0414292378178029,0.0414668158326392,0.0414635595592592,0.0414297042711472,0.0413784351363526,0.0413238477859644,0.0412789322035826,0.0412537197655964,0.0412537197655964, +0.0596736998041893,0.0596736998041893,0.0597128333290689,0.0596995847021706,0.0596473285447828,0.0595733497042967,0.059496224186287,0.0594332488144282,0.0593979829139138,0.0593979829139138, +0.0993646775634791,0.0993646775634791,0.0994028214563668,0.0993655007557341,0.0992724698039189,0.0991493459966039,0.0990238118433725,0.0989220491968302,0.0988651277187701,0.0988651277187701, +0.166026917424085,0.166026917424085,0.166053825203638,0.165970946103709,0.165807839534834,0.165602817495037,0.165397292202266,0.165231200120093,0.165138039394901,0.165138039394901, +0.265716000241814,0.265716000241814,0.265711789871057,0.265552726512013,0.265282261609808,0.264955784181338,0.264632267408029,0.264369976533744,0.264221321924069,0.264221321924069, +0.402528238657382,0.402528238657382,0.402465358521493,0.402190315924648,0.40176830616549,0.401276254409412,0.400791643303624,0.400393309356112,0.400161411341265,0.400161411341265, +0.576013598108127,0.576013598108127,0.575867583284715,0.575425841387709,0.574803226249324,0.574102393217942,0.573412313154574,0.572826521076942,0.572462840468388,0.572462840468388, +0.779463171561691,0.779463171561691,0.779249964678522,0.77855860640228,0.77768238074784,0.776741370001462,0.775809660227661,0.77496757327924,0.774360941940844,0.774360941940844, + +00:23:20, +0.0415132830357815,0.0415132830357815,0.0415508940185283,0.041547638992174,0.0415137597544988,0.0414624509576219,0.0414078195869182,0.0413628669427486,0.0413376334718726,0.0413376334718726, +0.0415132830357815,0.0415132830357815,0.0415508940185283,0.041547638992174,0.0415137597544988,0.0414624509576219,0.0414078195869182,0.0413628669427486,0.0413376334718726,0.0413376334718726, +0.0597725093792247,0.0597725093792247,0.0598116646241039,0.0597984128362178,0.0597461333178324,0.0596721183284208,0.0595949533294981,0.0595319449073156,0.0594966603043799,0.0594966603043799, +0.0994888709087776,0.0994888709087776,0.0995270162506863,0.0994896876149077,0.0993966398070854,0.0992734927773281,0.0991479338659256,0.0990461506914386,0.0989892176943169,0.0989892176943169, +0.166178833075626,0.166178833075626,0.166205719381288,0.166122835384006,0.165959733736318,0.165754720516128,0.165549204438254,0.165383120112726,0.165289964034729,0.165289964034729, +0.265886492435524,0.265886492435524,0.265882246728312,0.265723200231814,0.265452787218129,0.265126378671816,0.264802932271859,0.264540699785964,0.264392079039029,0.264392079039029, +0.402696261587193,0.402696261587193,0.402633355339869,0.402358379484026,0.401936498487382,0.401444605259549,0.400960153665965,0.400561952913109,0.400330133531306,0.400330133531306, +0.576150292638348,0.576150292638348,0.576004291511992,0.575562696874522,0.574940310959507,0.574239743895906,0.573549929045034,0.572964363663022,0.572600824162977,0.572600824162977, +0.779540327029669,0.779540327029669,0.779327190810871,0.778636088026253,0.777760196489276,0.776819549759331,0.77588820223207,0.775046442093165,0.774440043755828,0.774440043755828, + +00:23:21, +0.0415973961362444,0.0415973961362444,0.0416350400499295,0.0416317862801987,0.0415978831393413,0.0415465347489727,0.0414918594311896,0.0414468697857302,0.0414216153159726,0.0414216153159726, +0.0415973961362444,0.0415973961362444,0.0416350400499295,0.0416317862801987,0.0415978831393413,0.0415465347489727,0.0414918594311896,0.0414468697857302,0.0414216153159726,0.0414216153159726, +0.0598713676581742,0.0598713676581742,0.0599105445913492,0.0598972896622335,0.0598449868442599,0.0597709357929868,0.0596937314052783,0.0596306900087442,0.0595953867460783,0.0595953867460783, +0.0996130747598137,0.0996130747598137,0.0996512215372211,0.0996138850043244,0.0995208204225853,0.0993976502807694,0.0992720667266192,0.0991702631190734,0.0991133186561185,0.0991133186561185, +0.166330706367058,0.166330706367058,0.166357571220838,0.166274682381238,0.166111585743347,0.165906581455569,0.165701074709239,0.165534998235765,0.165441846858165,0.165441846858165, +0.266056887630494,0.266056887630494,0.266052606649477,0.265893577065854,0.265623215995028,0.265296876395271,0.26497350043505,0.264711326390839,0.264562739535181,0.264562739535181, +0.402864151849928,0.402864151849928,0.402801219568514,0.402526310452649,0.402104558178013,0.401612823427005,0.4011285312953,0.400730463692348,0.40049872291372,0.40049872291372, +0.576286857872979,0.576286857872979,0.576140870478735,0.575699422990558,0.575077266110346,0.574376964797558,0.573687414944214,0.573102076070315,0.572738677557449,0.572738677557449, +0.779617402270905,0.779617402270905,0.779404336654894,0.778713489101287,0.777837931338133,0.776897648252724,0.775966662602819,0.775125228937502,0.77451906335825,0.77451906335825, + +00:23:22, +0.0416815770309302,0.0416815770309302,0.0417192538385838,0.041716001335076,0.0416820743374195,0.0416306864221536,0.0415759672305338,0.0415309406442904,0.0415056652096644,0.0415056652096644, +0.0416815770309302,0.0416815770309302,0.0417192538385838,0.041716001335076,0.0416820743374195,0.0416306864221536,0.0415759672305338,0.0415309406442904,0.0415056652096644,0.0415056652096644, +0.0599702745536197,0.0599702745536197,0.0600094731434268,0.0599962150928318,0.0599438890366315,0.0598698020104877,0.0597925583260426,0.0597294840310652,0.0596941621513246,0.0596941621513246, +0.0997372890494241,0.0997372890494241,0.0997754372488776,0.0997380928568506,0.0996450115831466,0.0995218184394521,0.0993962103577573,0.0992943864118552,0.0992374305361929,0.0992374305361929, +0.166482537290777,0.166482537290777,0.166509380714722,0.166426487087743,0.16626339554803,0.166058400305139,0.165852903006648,0.165686834480341,0.165593687856175,0.165593687856175, +0.266227185914572,0.266227185914572,0.26622286972234,0.266063857101783,0.265793548027906,0.265467277438755,0.265143971984278,0.264881856434734,0.264733303498717,0.264733303498717, +0.403031909625407,0.403031909625407,0.402968951387096,0.402694109010099,0.402272485416855,0.401780909091078,0.401296776370727,0.400898841872765,0.400667179667362,0.400667179667362, +0.576423294021778,0.576423294021778,0.57627732039459,0.575836019945582,0.575214091911804,0.574514056133054,0.573824771062438,0.573239658509297,0.572876400862399,0.572876400862399, +0.779694397427586,0.779694397427586,0.779481402352872,0.778790809770108,0.777915585437703,0.776975665625519,0.776045041484358,0.775203933957223,0.774598000893481,0.774598000893481, + +00:23:23, +0.0417658256315815,0.0417658256315815,0.041803535296237,0.0418002840685534,0.0417663332604824,0.041714905888917,0.0416601428967094,0.0416150794301948,0.0415897830647189,0.0415897830647189, +0.0417658256315815,0.0417658256315815,0.041803535296237,0.0418002840685534,0.0417663332604824,0.041714905888917,0.0416601428967094,0.0416150794301948,0.0415897830647189,0.0415897830647189, +0.060069229978233,0.060069229978233,0.0601084501930483,0.0600951890407167,0.0600428398076031,0.0599687168935061,0.0598914340042948,0.0598283268867185,0.0597929864325238,0.0597929864325238, +0.0998615137106259,0.0998615137106259,0.0998996633187427,0.099862311105533,0.0997692132216782,0.0996459971860812,0.0995203646918245,0.0994185205020863,0.0993615532667394,0.0993615532667394, +0.166634325839345,0.166634325839345,0.16666114785554,0.166578249496023,0.166415163142637,0.166210177056782,0.166004689322071,0.165838628837753,0.165745487019893,0.165745487019893, +0.266397387375591,0.266397387375591,0.266393036034673,0.266234040427233,0.265963783404143,0.265637581889304,0.265314347006206,0.265052290004001,0.264903771015815,0.264903771015815, +0.403199535093163,0.403199535093163,0.403136550974997,0.402861775335672,0.402440280383091,0.401948862430783,0.401464889071063,0.401067087633017,0.400835503970803,0.400835503970803, +0.576559601294056,0.576559601294056,0.576413641468755,0.575972487948909,0.575350788573397,0.5746510181121,0.573961997609578,0.573377111189999,0.573013994287973,0.573013994287973, +0.779771312641558,0.779771312641558,0.779558388046745,0.778868050175098,0.777993158930932,0.777053602021249,0.776123339020787,0.775282557296956,0.774676856506544,0.774676856506544, + +00:23:24, +0.0418501418499459,0.0418501418499459,0.0418878843346394,0.0418846343923828,0.0418506598202834,0.0417991930610196,0.0417443863414787,0.0416992860552129,0.0416739687929102,0.0416739687929102, +0.0418501418499459,0.0418501418499459,0.0418878843346394,0.0418846343923828,0.0418506598202834,0.0417991930610196,0.0417443863414787,0.0416992860552129,0.0416739687929102,0.0416739687929102, +0.0601682338447758,0.0601682338447758,0.0602074756530153,0.0601942114186816,0.0601418390699198,0.0600676803547138,0.0599903583526285,0.0599272184882336,0.0598918595021695,0.0598918595021695, +0.0999857486766166,0.0999857486766166,0.100023899680083,0.0999865396835983,0.099893425271269,0.0997701864535421,0.0996445296614865,0.0995426653222496,0.0994856867801386,0.0994856867801386, +0.166786072005484,0.166786072005484,0.166812872636053,0.166729969598742,0.166566888519603,0.166361911702606,0.166156433647265,0.165990381299465,0.16589724434062,0.16589724434062, +0.266567492101365,0.266567492101365,0.266563105674228,0.266404127129817,0.266133922211105,0.265807789833939,0.265484625587483,0.265222627184979,0.265074142172643,0.265074142172643, +0.403367028432443,0.403367028432443,0.403304018511316,0.40302930960838,0.402607943255622,0.402116683624848,0.40163286957484,0.401235201151475,0.401003696002335,0.401003696002335, +0.576695779898677,0.576695779898677,0.57654983390998,0.576108827209411,0.575487356304194,0.574787850943957,0.574099094795065,0.573514434322003,0.573151458043871,0.573151458043871, +0.779848148054324,0.779848148054324,0.779635293878112,0.778945210458299,0.778070651960426,0.777131457583105,0.776201555355866,0.775361099100985,0.774755630342115,0.774755630342115, + +00:23:25, +0.0419345255977759,0.0419345255977759,0.0419723008655468,0.0419690522183216,0.041935053928581,0.0418835478502226,0.0418286974766084,0.0417835604311178,0.0417582223060161,0.0417582223060161, +0.0419345255977759,0.0419345255977759,0.0419723008655468,0.0419690522183216,0.041935053928581,0.0418835478502226,0.0418286974766084,0.0417835604311178,0.0417582223060161,0.0417582223060161, +0.0602672860660994,0.0602672860660994,0.0603065494362188,0.0602932821396099,0.0602408867364168,0.0601666923068722,0.0600893312837262,0.0600261587482288,0.0599907812728445,0.0599907812728445, +0.100109993880774,0.100109993880774,0.100148146266346,0.100110778524453,0.100017647665187,0.0998943861749,0.0997687051995889,0.0996668208050084,0.0996098310089513,0.0996098310089513, +0.166937775782082,0.166937775782082,0.166964555049187,0.16688164738873,0.166718571671527,0.166513604234883,0.166308135974153,0.166142091857106,0.166048959809822,0.166048959809822, +0.266737500179688,0.266737500179688,0.26673307872874,0.266574117297132,0.266303964536141,0.265977901359665,0.265654807814741,0.265392868063992,0.265244417055354,0.265244417055354, +0.403534389822211,0.403534389822211,0.403471354174864,0.403196712006948,0.402775474213063,0.40228437285172,0.40180071806031,0.401403182606233,0.40117175593997,0.40117175593997, +0.57683183004406,0.57683183004406,0.57668589792657,0.576245037935511,0.57562379531282,0.574924554837441,0.574236062827882,0.573651628114447,0.573288792339347,0.573288792339347, +0.779924903807053,0.779924903807053,0.779712119988234,0.779022290761412,0.778148064668449,0.777209232453932,0.776279690633008,0.775439559513246,0.774834322544525,0.774834322544525, + +00:23:26, +0.0420189767868293,0.0420189767868293,0.0420567848007205,0.0420535374581326,0.0420195154971392,0.0419679701682924,0.0419130762138698,0.0418679024696872,0.0418425435158185,0.0418425435158185, +0.0420189767868293,0.0420189767868293,0.0420567848007205,0.0420535374581326,0.0420195154971392,0.0419679701682924,0.0419130762138698,0.0418679024696872,0.0418425435158185,0.0418425435158185, +0.0603663865551452,0.0603663865551452,0.0604056714556402,0.0603924011164745,0.0603399827200185,0.060265752662832,0.0601883527103598,0.0601251475794115,0.0600897516572207,0.0600897516572207, +0.100234249256654,0.100234249256654,0.100272403011156,0.100235027561681,0.100141880336881,0.100018596283399,0.0998928912391571,0.0997909868832061,0.0997339858859188,0.0997339858859188, +0.167089437162187,0.167089437162187,0.167116195088026,0.167033282858973,0.166870212591168,0.16666525464605,0.166459796294819,0.166293760502473,0.16620063341913,0.16620063341913, +0.266907411698337,0.266907411698337,0.266902955285925,0.266744011016756,0.266473910466581,0.266147916553469,0.265824893774598,0.265563012727353,0.265414595750088,0.265414595750088, +0.403701619441142,0.403701619441142,0.403638558144169,0.403363982709817,0.402942873433746,0.402451930289563,0.401968434705443,0.401571032175101,0.401339683961438,0.401339683961438, +0.576967751938179,0.576967751938179,0.576821833726389,0.576381120335192,0.575760105807453,0.575061130000922,0.574372901916567,0.573788692776025,0.573425997383212,0.573425997383212, +0.780001580040573,0.780001580040573,0.779788866518036,0.779099291225799,0.778225397196926,0.777286926776239,0.776357744995285,0.775517938677334,0.774912933257761,0.774912933257761, + +00:23:27, +0.04210349532887,0.04210349532887,0.042141336051928,0.0421380900235847,0.0421040444377274,0.0420524599270006,0.0419975224650391,0.041952312082703,0.0419269323341039,0.0419269323341039, +0.04210349532887,0.04210349532887,0.042141336051928,0.0421380900235847,0.0421040444377274,0.0420524599270006,0.0419975224650391,0.041952312082703,0.0419269323341039,0.0419269323341039, +0.0604655352249441,0.0604655352249441,0.0605048416243501,0.0604915682623382,0.0604391269337391,0.0603648613355337,0.0602874225453905,0.0602241848945786,0.060188770568059,0.060188770568059, +0.100358514737992,0.100358514737992,0.100396669848318,0.100359286729047,0.100266123219976,0.100142816712464,0.100017087713396,0.0999151634898655,0.0998581513439614,0.0998581513439614, +0.16724105613901,0.16724105613901,0.167267792745818,0.167184876002623,0.167021811271448,0.166816862928702,0.166611414601513,0.166445387227523,0.16635226516034,0.16635226516034, +0.26707722674507,0.26707722674507,0.267072735433479,0.266913808376247,0.266643760089737,0.266317835502322,0.265994883553658,0.265733061261357,0.265584678342971,0.265584678342971, +0.403868717467631,0.403868717467631,0.403805630597474,0.403531121895147,0.403110141095721,0.402619356116259,0.402136019687927,0.401738750035612,0.401507480244191,0.401507480244191, +0.577103545788564,0.577103545788564,0.576957641516854,0.57651707461599,0.57589628799583,0.575197576642328,0.574509612269217,0.57392562851499,0.573563073383834,0.573563073383834, +0.780078176895377,0.780078176895377,0.779865533608104,0.779176211992487,0.778302649687442,0.777364540692191,0.776435718585428,0.775596236736502,0.774991462625468,0.774991462625468, + +00:23:28, +0.042188081135668,0.042188081135668,0.0422259545309428,0.042222709826453,0.0421886406621215,0.0421370170381248,0.0420820361418981,0.0420367891819527,0.0420113886726634,0.0420113886726634, +0.042188081135668,0.042188081135668,0.0422259545309428,0.042222709826453,0.0421886406621215,0.0421370170381248,0.0420820361418981,0.0420367891819527,0.0420113886726634,0.0420113886726634, +0.0605647319886171,0.0605647319886171,0.0606040598555094,0.0605907834903534,0.0605383192906827,0.0604640182380071,0.060386540701769,0.0603232706066159,0.0602878379182096,0.0602878379182096, +0.100482790258703,0.100482790258703,0.100520946711813,0.100483555960493,0.100390376248277,0.100267047395695,0.100141294555688,0.100039350558188,0.0999823273161788,0.0999823273161788, +0.16739263270592,0.16739263270592,0.167419348015969,0.167336426812989,0.167173367705449,0.1669684290756,0.166762990886645,0.166596972024378,0.16650385502541,0.16650385502541, +0.267246945407625,0.267246945407625,0.267242419259079,0.267083509463145,0.266813513492902,0.266487658293179,0.266164777238506,0.265903013752285,0.265754664920116,0.265754664920116, +0.404035684079785,0.404035684079785,0.403972571712738,0.40369812974081,0.403277277376752,0.402786650509408,0.402303473185172,0.401906336365017,0.401675144965399,0.401675144965399, +0.577239211802306,0.577239211802306,0.577093321504944,0.576652900985002,0.576032342085245,0.575333894969145,0.574646194093488,0.57406243553915,0.573700020549141,0.573700020549141, +0.780154694511623,0.780154694511623,0.779942121398688,0.779253053202163,0.778379822281243,0.777442074343615,0.776513611545828,0.77567445383366,0.775069910790947,0.775069910790947, + +00:23:29, +0.0422727341189999,0.0422727341189999,0.0423106401495455,0.0423073967785195,0.0422733040821037,0.0422216414134485,0.0421666171562343,0.0421213336792289,0.0420959124432937,0.0420959124432937, +0.0422727341189999,0.0422727341189999,0.0423106401495455,0.0423073967785195,0.0422733040821037,0.0422216414134485,0.0421666171562343,0.0421213336792289,0.0420959124432937,0.0420959124432937, +0.0606639767593752,0.0606639767593752,0.0607033260623686,0.0606900467137626,0.0606375597040426,0.0605632232833714,0.0604857070925353,0.0604224046284986,0.0603869536206115,0.0603869536206115, +0.100607075752877,0.100607075752877,0.100645233535802,0.100607835190136,0.100514639355765,0.100391288266874,0.100265511699595,0.100163548021554,0.100106513735849,0.100106513735849, +0.167544166856447,0.167544166856447,0.167570860892047,0.167487935283542,0.167324881886414,0.167119953079662,0.166914525142788,0.166748514885322,0.166655403006463,0.166655403006463, +0.267416567773721,0.267416567773721,0.267412006850382,0.26725311436497,0.266983170763351,0.266657385012975,0.266334574915713,0.266072870286405,0.265924555567619,0.265924555567619, +0.404202519455431,0.404202519455431,0.404139381667639,0.4038650064244,0.403444282454324,0.402953813646329,0.402470795374305,0.402073791340288,0.401842678301958,0.401842678301958, +0.577374750186053,0.577374750186053,0.577228873897196,0.576788599648884,0.576168268282554,0.575470085188419,0.574782647596594,0.574199114055876,0.573836839086618,0.573836839086618, +0.780231133029134,0.780231133029134,0.780018630029706,0.77932981499518,0.778456915119241,0.777519527872,0.776591424018536,0.775752590111379,0.77514827789716,0.77514827789716, + +00:23:30, +0.0423574541906494,0.0423574541906494,0.0423953928195238,0.0423921507915733,0.0423580346094633,0.0423063329647622,0.0422512654198411,0.0422059454863301,0.0421805035577968,0.0421805035577968, +0.0423574541906494,0.0423574541906494,0.0423953928195238,0.0423921507915733,0.0423580346094633,0.0423063329647622,0.0422512654198411,0.0422059454863301,0.0421805035577968,0.0421805035577968, +0.060763269450519,0.060763269450519,0.0608026401582682,0.0607893578458979,0.0607368480871023,0.0606624763848357,0.0605849216308186,0.060521586873291,0.0604861175882931,0.0604861175882931, +0.100731371154784,0.100731371154784,0.10076953025462,0.100732124352275,0.1006389124766,0.100515539259956,0.100389739078856,0.100287755813521,0.100230710536429,0.100230710536429, +0.167695658584282,0.167695658584282,0.167722331367775,0.167639401407908,0.167476353807742,0.16727143493397,0.167066017362675,0.1669000158028,0.166806909095783,0.166806909095783, +0.267586093931055,0.267586093931055,0.267581498295026,0.26742262316922,0.26715273198834,0.266827015748629,0.266504276671832,0.266242630949966,0.266094350371563,0.266094350371563, +0.404369223772111,0.404369223772111,0.404306060639569,0.404031752123224,0.403611156505639,0.40312084570406,0.402637986432174,0.402241115138121,0.402010080430482,0.402010080430482, +0.577510161146014,0.577510161146014,0.577364298899708,0.576924170813852,0.57630406679417,0.575606147506757,0.574918972985311,0.574335664272099,0.573973529203313,0.573973529203313, +0.780307492587398,0.780307492587398,0.78009505964074,0.779406497511556,0.778533928342009,0.777596901418498,0.776669156145265,0.775830645711891,0.775226564086727,0.775226564086727, + +00:23:31, +0.0424422412624073,0.0424422412624073,0.0424802124526729,0.0424769717774108,0.0424428321559965,0.0423910916038628,0.042335980844519,0.0422906245150611,0.0422651619279809,0.0422651619279809, +0.0424422412624073,0.0424422412624073,0.0424802124526729,0.0424769717774108,0.0424428321559965,0.0423910916038628,0.042335980844519,0.0422906245150611,0.0422651619279809,0.0422651619279809, +0.0608626099754392,0.0608626099754392,0.0609020020566386,0.0608887168001812,0.0608361843532347,0.0607617774556984,0.0606841842298378,0.0606208172541468,0.0605853297343721,0.0605853297343721, +0.10085567639887,0.10085567639887,0.100893836802782,0.10085642338138,0.100763195545118,0.100639800309076,0.100513976627388,0.100411973867825,0.100354917651552,0.100354917651552, +0.16784710788327,0.16784710788327,0.167873759437037,0.167790825179876,0.167627783462995,0.16742287463176,0.167217467539201,0.16705147476942,0.166958373285814,0.166958373285814, +0.267755523967305,0.267755523967305,0.267750893680625,0.267592035963376,0.267322197255104,0.26699655058704,0.266673882593399,0.266412295829204,0.266264049418014,0.266264049418014, +0.404535797207085,0.404535797207085,0.404472608805641,0.404198367014311,0.403777899707618,0.403287746859357,0.402805046535349,0.40240830793493,0.402177351527308,0.402177351527308, +0.577645444887961,0.577645444887961,0.57749959671814,0.577059614685686,0.57643973782607,0.575742082130326,0.575055170465975,0.574472086394312,0.574110091105837,0.574110091105837, +0.780383773325574,0.780383773325574,0.78017141037104,0.779483100890977,0.778610862089788,0.777674195123925,0.776746808067393,0.77590862077709,0.775304769501931,0.775304769501931, + +00:23:32, +0.0425270952460724,0.0425270952460724,0.0425650989607958,0.0425618596478365,0.0425276966335076,0.042475917242555,0.0424207633420749,0.0423753706772333,0.0423498874656606,0.0423498874656606, +0.0425270952460724,0.0425270952460724,0.0425650989607958,0.0425618596478365,0.0425276966335076,0.042475917242555,0.0424207633420749,0.0423753706772333,0.0423498874656606,0.0423498874656606, +0.0609619982476166,0.0609619982476166,0.0610014116710001,0.0609881234901244,0.0609355684159025,0.0608611264093477,0.0607834948029011,0.060720095684309,0.060684589972055,0.060684589972055, +0.100979991419756,0.100979991419756,0.101018153114976,0.100980732212102,0.10088748849583,0.100764071348544,0.100638224279283,0.100536202118379,0.100479135015029,0.100479135015029, +0.167998514747417,0.167998514747417,0.168025145093872,0.167942206593387,0.16777917084589,0.167574272166432,0.167368875665418,0.167202891777948,0.167109795569163,0.167109795569163, +0.267924857970127,0.267924857970127,0.267920193094775,0.267761352834895,0.26749156665086,0.267165989615087,0.266843392766932,0.266581865010335,0.266433652793022,0.266433652793022, +0.404702239937331,0.404702239937331,0.404639026342686,0.404364851274407,0.403944512236901,0.4034545172887,0.40297197586012,0.402575369906853,0.402344491768498,0.402344491768498, +0.577780601617228,0.577780601617228,0.577634767557717,0.577194931469726,0.576575281583793,0.575877889264858,0.575191240244488,0.574608380628571,0.574246525000361,0.574246525000361, +0.780459975382488,0.780459975382488,0.780247682359525,0.779559625272793,0.778687716502484,0.777751409128762,0.776824379925958,0.775986515448533,0.775382894284716,0.775382894284716, + +00:23:33, +0.0426120160534516,0.0426120160534516,0.0426500522557039,0.0426468143146631,0.0426126279538087,0.0425608097926508,0.0425056128243234,0.042460183884665,0.0424346800826574,0.0424346800826574, +0.0426120160534516,0.0426120160534516,0.0426500522557039,0.0426468143146631,0.0426126279538087,0.0425608097926508,0.0425056128243234,0.042460183884665,0.0424346800826574,0.0424346800826574, +0.0610614341806216,0.0610614341806216,0.0611008689149629,0.0610875778293291,0.0610350001886582,0.0609605231592612,0.0608828532634061,0.0608194220771098,0.060783898214638,0.060783898214638, +0.101104316152241,0.101104316152241,0.101142479126068,0.101105050779263,0.101011791263424,0.100888352312848,0.100762481968811,0.100660440499271,0.100603362560848,0.100603362560848, +0.168149879170884,0.168149879170884,0.168176488332478,0.168093545642542,0.167930515950301,0.16772562753154,0.167520241734538,0.167354266821311,0.167261175938595,0.167261175938595, +0.268094096027157,0.268094096027157,0.26808939662505,0.267930573871215,0.267660840262802,0.267335332919634,0.267012807278932,0.266751338579562,0.266603160582623,0.266603160582623, +0.404868552139548,0.404868552139548,0.40480531342725,0.404531205079977,0.404110994269847,0.403621157168287,0.4031387745825,0.402742301229752,0.402511501329834,0.402511501329834, +0.577915631538714,0.577915631538714,0.577769811623227,0.577330121370879,0.576710698272443,0.576013569115648,0.575327182526316,0.574744547180497,0.574382831092624,0.574382831092624, +0.780536098896635,0.780536098896635,0.780323875744785,0.779636070796025,0.778764491719669,0.777828543573158,0.776901871861668,0.77606432986744,0.775460938576691,0.775460938576691, + +00:23:34, +0.0426970035963602,0.0426970035963602,0.0427350722492174,0.0427318356897117,0.0426976260287203,0.0426457691659707,0.0425905292030867,0.0425450640491818,0.0425195396907998,0.0425195396907998, +0.0426970035963602,0.0426970035963602,0.0427350722492174,0.0427318356897117,0.0426976260287203,0.0426457691659707,0.0425905292030867,0.0425450640491818,0.0425195396907998,0.0425195396907998, +0.061160917688115,0.061160917688115,0.0612003737022273,0.061187079731487,0.0611344795851441,0.0610599676190064,0.0609822595248401,0.0609187963459707,0.0608832543755062,0.0608832543755062, +0.101228650531298,0.101228650531298,0.101266814771097,0.101229379017864,0.101136103782764,0.101012643136649,0.100886749630416,0.100784688944766,0.100727600223172,0.100727600223172, +0.168301201147989,0.168301201147989,0.168327789147205,0.168244842321597,0.168081818770258,0.167876940720797,0.167671565739931,0.167505599892592,0.167412514387034,0.167412514387034, +0.268263238226007,0.268263238226007,0.268258504359,0.268099699159752,0.267830018178106,0.26750458058752,0.267182126215881,0.266920716623067,0.266772572872834,0.266772572872834, +0.405034733990149,0.405034733990149,0.404971470235604,0.404697428607205,0.404277345982538,0.403787666674038,0.403305442878224,0.40290910207921,0.402678380386823,0.402678380386823, +0.578050534856882,0.578050534856882,0.577904729119023,0.577465184593616,0.57684598809669,0.576149121887558,0.575462997516488,0.574880586255277,0.574519009587928,0.574519009587928, +0.780612144006181,0.780612144006181,0.780399990665076,0.779712437599364,0.778841187880586,0.777905598596925,0.776979284014894,0.776142064174698,0.775538902519126,0.775538902519126, + +00:23:35, +0.0427820577866223,0.0427820577866223,0.0428201588531652,0.0428169236848128,0.0427826907700717,0.0427307952743432,0.0426755123901948,0.0426300110826174,0.0426044662019238,0.0426044662019238, +0.0427820577866223,0.0427820577866223,0.0428201588531652,0.0428169236848128,0.0427826907700717,0.0427307952743432,0.0426755123901948,0.0426300110826174,0.0426044662019238,0.0426044662019238, +0.0612604486838471,0.0612604486838471,0.0612999259465834,0.0612866291103795,0.0612340065190923,0.0611594597022402,0.0610817135007795,0.0610182184044029,0.0609826583681341,0.0609826583681341, +0.101352994492076,0.101352994492076,0.101391159985279,0.101353716863078,0.101260425988886,0.101136943754784,0.101011027198721,0.100908947389304,0.100851847936342,0.100851847936342, +0.168452480673204,0.168452480673204,0.16847904753256,0.168396096624963,0.168233079299949,0.168028211728072,0.167822847675124,0.167656890985035,0.167563810907565,0.167563810907565, +0.26843228465427,0.26843228465427,0.268427516384155,0.268268728787898,0.267999100483923,0.267673732705568,0.267351349664243,0.267089999227018,0.266941889749656,0.266941889749656, +0.405200785665272,0.405200785665272,0.405137496943734,0.404863522031996,0.404443567550772,0.403954045981594,0.403471980922748,0.403075772630535,0.402845129114697,0.402845129114697, +0.578185311775763,0.578185311775763,0.578039520249027,0.577600121341976,0.576981151260769,0.576284547785015,0.575598685419604,0.575016498057666,0.574655060691145,0.574655060691145, +0.780688110848966,0.780688110848966,0.780476027258331,0.779788725821169,0.778917805124146,0.777982574339548,0.777056616525673,0.776219718510858,0.775616786252961,0.775616786252961, + +00:23:36, +0.0428671785360715,0.0428671785360715,0.0429053119793859,0.0429020782118058,0.0428678220897016,0.0428158880296059,0.0427605622974865,0.0427150248968131,0.0426894595278735,0.0426894595278735, +0.0428671785360715,0.0428671785360715,0.0429053119793859,0.0429020782118058,0.0428678220897016,0.0428158880296059,0.0427605622974865,0.0427150248968131,0.0426894595278735,0.0426894595278735, +0.0613600270816588,0.0613600270816588,0.0613995255619113,0.061386225879878,0.0613335809043247,0.0612589993227094,0.0611812151048907,0.0611176881660065,0.0610821101060855,0.0610821101060855, +0.101477347969897,0.101477347969897,0.101515514704001,0.101478064250253,0.101384757817002,0.101261254102264,0.101135314608518,0.101033215767502,0.100976105634871,0.100976105634871, +0.168603717741157,0.168603717741157,0.168630263483206,0.168547308547205,0.168384297533715,0.168179440547388,0.167974087533801,0.167808140092039,0.167715065493428,0.167715065493428, +0.268601235399513,0.268601235399513,0.268596432788021,0.268437662843026,0.268168087267387,0.26784278936058,0.267520477710461,0.267259186477561,0.267111111299071,0.267111111299071, +0.405366707340771,0.405366707340771,0.40530339372735,0.405029485529976,0.404609659150073,0.404120295266319,0.403638388891254,0.403242313058758,0.403011747688412,0.403011747688412, +0.578319962498955,0.578319962498955,0.578174185216728,0.577734931819565,0.577116187968484,0.576419847012014,0.575734246439828,0.575152282791983,0.574790984606713,0.574790984606713, +0.7807639995625,0.7807639995625,0.780551985662151,0.779864935599475,0.778994343588929,0.778059470940177,0.777133869533715,0.77629729301614,0.775694589918798,0.775694589918798, + +00:23:37, +0.0429523657565508,0.0429523657565508,0.0429905315397277,0.0429872991825403,0.0429530198994577,0.0429010473436056,0.0428456788368092,0.0428001054036192,0.0427745195805012,0.0427745195805012, +0.0429523657565508,0.0429523657565508,0.0429905315397277,0.0429872991825403,0.0429530198994577,0.0429010473436056,0.0428456788368092,0.0428001054036192,0.0427745195805012,0.0427745195805012, +0.0614596527954804,0.0614596527954804,0.0614991724621812,0.0614858699539439,0.0614332026547529,0.0613585863942502,0.0612807642509292,0.0612172055444713,0.0611816095030135,0.0611816095030135, +0.101601710900258,0.101601710900258,0.101639878862828,0.101602421114911,0.101509099202498,0.101385574114275,0.101259611794779,0.10115749401415,0.101100373253448,0.101100373253448, +0.168754912346629,0.168754912346629,0.168781436993957,0.16869847808304,0.16853547346605,0.168330627172925,0.1681252853098,0.167959347207162,0.167866278138019,0.167866278138019, +0.268770090549283,0.268770090549283,0.268765253658083,0.268606501412485,0.268336978615607,0.268011750639335,0.267689510440962,0.267428278460827,0.267280237607045,0.267280237607045, +0.405532499192223,0.405532499192223,0.40546916076188,0.405195319276492,0.404775620955684,0.404286414703298,0.403804666958647,0.403408723538636,0.403178236282649,0.403178236282649, +0.578454487229626,0.578454487229626,0.578308724225184,0.577869616229559,0.577251098423206,0.57655501977212,0.575869680780896,0.575287940662122,0.57492678153864,0.57492678153864, +0.780839810283969,0.780839810283969,0.780627866013815,0.779941067071984,0.77907080341319,0.778136288537636,0.777211043178394,0.776374787830432,0.775772313656908,0.775772313656908, + +00:23:38, +0.0430376193599132,0.0430376193599132,0.043075817446049,0.0430725865088757,0.0430382841111982,0.0429862731281985,0.0429308619200196,0.0428852525148943,0.042859646271668,0.042859646271668, +0.0430376193599132,0.0430376193599132,0.043075817446049,0.0430725865088757,0.0430382841111982,0.0429862731281985,0.0429308619200196,0.0428852525148943,0.042859646271668,0.042859646271668, +0.0615593257393328,0.0615593257393328,0.0615988665614532,0.0615855612466284,0.0615328716843786,0.0614582208307887,0.0613803608527404,0.0613167704535764,0.0612811564726605,0.0612811564726605, +0.101726083218829,0.101726083218829,0.101764252397494,0.101726787392746,0.101633450080933,0.101509903726177,0.101383918692646,0.101281782064211,0.101224650726938,0.101224650726938, +0.168906064484555,0.168906064484555,0.16893256805978,0.168849605227342,0.168686607091603,0.168481771599016,0.168276440997116,0.168110512324115,0.168017448834894,0.168017448834894, +0.268938850191102,0.268938850191102,0.268933979081801,0.268775244583599,0.26850577461567,0.268180616628592,0.267858447942148,0.267597275262927,0.267449268759526,0.267449268759526, +0.405698161394924,0.405698161394924,0.405634798222474,0.405361023446611,0.40494145314257,0.404452404467342,0.403970815299554,0.40357500424465,0.403344595071814,0.403344595071814, +0.578588886170512,0.578588886170512,0.578443137477023,0.578004174774704,0.577385882827879,0.576690066268468,0.576004988646112,0.575423471871543,0.575062451690503,0.575062451690503, +0.780915543150232,0.780915543150232,0.780703668450273,0.780017120376076,0.779147184734852,0.778213027270417,0.777288137598757,0.77645220309329,0.775849957607232,0.775849957607232, + +00:23:39, +0.0431229392580221,0.0431229392580221,0.0431611696102187,0.043157940102682,0.0431236146367911,0.0430715652952509,0.0430161114589839,0.0429704661425068,0.0429448395132438,0.0429448395132438, +0.0431229392580221,0.0431229392580221,0.0431611696102187,0.043157940102682,0.0431236146367911,0.0430715652952509,0.0430161114589839,0.0429704661425068,0.0429448395132438,0.0429448395132438, +0.0616590458273266,0.0616590458273266,0.0616986077738776,0.0616852996720726,0.0616325879072929,0.0615579025463407,0.0614800048242589,0.0614163828071903,0.0613807509288582,0.0613807509288582, +0.101850464861454,0.101850464861454,0.101888635243909,0.101851163019627,0.101757810388039,0.1016342428735,0.101508235237437,0.101406079852823,0.101348937990377,0.101348937990377, +0.16905717415002,0.16905717415002,0.169083656675795,0.169000689975133,0.168837698405175,0.168632873820149,0.168427554589898,0.168261635436766,0.168168577577761,0.168168577577761, +0.26910751441247,0.26910751441247,0.269102609146612,0.268943892443671,0.268674475354642,0.268349387415091,0.268027290300407,0.267766176969952,0.267618204842442,0.267618204842442, +0.405863694123893,0.405863694123893,0.405800306284005,0.405526598215123,0.405107155885419,0.404618264732983,0.404136834088329,0.403741155351007,0.403510824230041,0.403510824230041, +0.578723159523924,0.578723159523924,0.578577425174447,0.578138607657316,0.577520541385017,0.576824986703764,0.576140170238354,0.575558876623279,0.575197995265453,0.575197995265453, +0.780991198297825,0.780991198297825,0.780779393108151,0.780093095648804,0.779223487691515,0.778289687276687,0.777365152933521,0.776529538943941,0.775927521909378,0.775927521909378, + +00:23:40, +0.0432083253627517,0.0432083253627517,0.0432465879441166,0.0432433598758398,0.0432090113881152,0.0431569237566392,0.0431014273655783,0.0430557461983344,0.0430300992171081,0.0430300992171081, +0.0432083253627517,0.0432083253627517,0.0432465879441166,0.0432433598758398,0.0432090113881152,0.0431569237566392,0.0431014273655783,0.0430557461983344,0.0430300992171081,0.0430300992171081, +0.0617588129736625,0.0617588129736625,0.0617983960136944,0.0617850851445079,0.0617323512376774,0.0616576314550118,0.0615796960795092,0.061516042519271,0.0614803927855278,0.0614803927855278, +0.101974855764148,0.101974855764148,0.102013027338152,0.101975547931592,0.101882180059719,0.101758591491951,0.10163256136464,0.101530387315298,0.101473234978977,0.101473234978977, +0.169208241338265,0.169208241338265,0.169234702837273,0.169151732321589,0.16898874740172,0.168783933830961,0.168578626082447,0.168412716539136,0.168319664360484,0.168319664360484, +0.269276083300862,0.269276083300862,0.269271143939928,0.26911244507998,0.268843080919564,0.268518063085547,0.268196037602101,0.267934983667974,0.267787045941702,0.267787045941702, +0.406029097553871,0.406029097553871,0.405965685121066,0.405692043756542,0.405272729358644,0.404783995674478,0.40430272349905,0.403907177031641,0.403676923931188,0.403676923931188, +0.578857307491741,0.578857307491741,0.578711587519229,0.578272915079286,0.577655074296706,0.576959781280285,0.576275225760072,0.575694155119938,0.575333412466212,0.575333412466212, +0.781066775862961,0.781066775862961,0.780855040123755,0.780168993026897,0.779299712420452,0.778366268694284,0.777442089321078,0.776606795521284,0.776005006702626,0.776005006702626, + +00:23:41, +0.043293777585987,0.043293777585987,0.0433320723596338,0.0433288457402413,0.0432944742770604,0.0432423484242507,0.0431868095516892,0.0431410925942647,0.0431154252951502,0.0431154252951502, +0.043293777585987,0.043293777585987,0.0433320723596338,0.0433288457402413,0.0432944742770604,0.0432423484242507,0.0431868095516892,0.0431410925942647,0.0431154252951502,0.0431154252951502, +0.0618586270926315,0.0618586270926315,0.061898231195234,0.0618849175782554,0.0618321615898029,0.0617574074709971,0.0616794345326052,0.061615749503866,0.0615800819566798,0.0615800819566798, +0.102099255863098,0.102099255863098,0.102137428616477,0.102099942064853,0.102006559032049,0.101882949517405,0.101756897009918,0.101654704387119,0.10159754162812,0.10159754162812, +0.169359266044677,0.169359266044677,0.169385706539635,0.169302732262036,0.169139754076342,0.168934951626246,0.168729655469218,0.168563755625401,0.168470709177081,0.168470709177081, +0.269444556943728,0.269444556943728,0.269439583549137,0.26928090257978,0.269011591397455,0.268686643726653,0.268364689933574,0.268103695443045,0.267955792143197,0.267955792143197, +0.40619437185932,0.40619437185932,0.406130934907975,0.405857360245101,0.405438173736379,0.404949597465808,0.404468483705521,0.404073069460211,0.403842894348842,0.403842894348842, +0.57899133027542,0.57899133027542,0.578845624712715,0.578407097242077,0.577789481764605,0.577094450199886,0.576410155413288,0.575829307563698,0.575468703495077,0.575468703495077, +0.78114227598153,0.78114227598153,0.780930609633064,0.78024481264676,0.779375859058612,0.778442771660723,0.777518946899489,0.776683972963889,0.776082412125927,0.776082412125927, + +00:23:42, +0.0433792958396247,0.0433792958396247,0.0434176227686727,0.0434143976077899,0.0433800032155277,0.0433278392099836,0.0432722579292136,0.0432265052421958,0.0432008176592694,0.0432008176592694, +0.0433792958396247,0.0433792958396247,0.0434176227686727,0.0434143976077899,0.0433800032155277,0.0433278392099836,0.0432722579292136,0.0432265052421958,0.0432008176592694,0.0432008176592694, +0.0619584880986144,0.0619584880986144,0.0619981132329167,0.0619847968877262,0.0619320188780307,0.0618572305085816,0.0617792200977504,0.0617155036751122,0.061679818356414,0.061679818356414, +0.102223665094665,0.102223665094665,0.102261839015306,0.102224345355792,0.102130947241278,0.102007316885912,0.101881242109105,0.101779031003942,0.101721857873362,0.101721857873362, +0.169510248264798,0.169510248264798,0.169536667778454,0.169453689791949,0.169290718424295,0.169085927200946,0.16888064274482,0.168714752689889,0.168621712021724,0.168621712021724, +0.269612935428496,0.269612935428496,0.269607928061604,0.269449265030301,0.26918000687531,0.26885512942508,0.268533247381147,0.268272312381199,0.268124443532798,0.268124443532798, +0.406359517214427,0.406359517214427,0.406296055818773,0.406022547854762,0.405603489192483,0.405115070280681,0.404634114881273,0.404238832810102,0.404008735656316,0.404008735656316, +0.579125228075989,0.579125228075989,0.578979536955829,0.578541154346729,0.577923763989951,0.577228993663992,0.576544959399601,0.575964334156315,0.575603868553919,0.575603868553919, +0.781217698789101,0.781217698789101,0.78100610177174,0.780320554644476,0.779451927742619,0.778519196313192,0.777595725806493,0.77676107141,0.776159738317905,0.776159738317905, + +00:23:43, +0.0434648800355733,0.0434648800355733,0.043503239083148,0.0435000153904011,0.04346559811543,0.0434133960257473,0.0433577724100597,0.0433119840540365,0.0432862762213757,0.0432862762213757, +0.0434648800355733,0.0434648800355733,0.043503239083148,0.0435000153904011,0.04346559811543,0.0434133960257473,0.0433577724100597,0.0433119840540365,0.0432862762213757,0.0432862762213757, +0.0620583959060822,0.0620583959060822,0.0620980420412528,0.0620847229874215,0.0620319230168116,0.0619571004821402,0.0618790526892382,0.061815304947236,0.0617796018989197,0.0617796018989197, +0.102348083395378,0.102348083395378,0.102386258471236,0.102348757740964,0.102255344623822,0.10213169353369,0.102005596598206,0.101903367101595,0.101846183650431,0.101846183650431, +0.169661187994316,0.169661187994316,0.169687586549449,0.169604604906955,0.169441640440986,0.169236860550155,0.16903158790401,0.16886570772708,0.168772672888736,0.168772672888736, +0.269781218842565,0.269781218842565,0.269776177564667,0.269617532518747,0.2693483274401,0.269023520267478,0.268701710031122,0.268440834568445,0.268293000196355,0.268293000196355, +0.406524533793101,0.406524533793101,0.406461048027222,0.406187606759206,0.40576867590054,0.405280414292527,0.404799617199562,0.40440446725443,0.404174448026652,0.404174448026652, +0.579259001094055,0.579259001094055,0.579113324449068,0.578675086593855,0.578057921173554,0.577363411873607,0.576679637920185,0.57609923509912,0.575738907844187,0.575738907844187, +0.781293044420924,0.781293044420924,0.781081516675121,0.780396219155807,0.779527918608776,0.778595542788556,0.777672426179502,0.776838090997535,0.776236985416856,0.776236985416856, + +00:23:44, +0.0435505300857533,0.0435505300857533,0.0435889212149865,0.0435856990000027,0.0435512588886922,0.0434990187834634,0.043443352906147,0.0433975289417065,0.0433718008933898,0.0433718008933898, +0.0435505300857533,0.0435505300857533,0.0435889212149865,0.0435856990000027,0.0435512588886922,0.0434990187834634,0.043443352906147,0.0433975289417065,0.0433718008933898,0.0433718008933898, +0.0621583504295962,0.0621583504295962,0.0621980175348429,0.0621846957919325,0.0621318739206864,0.0620570173061374,0.0619789322214512,0.0619151532345532,0.0618794324984757,0.0618794324984757, +0.102472510701938,0.102472510701938,0.10251068692103,0.102473179157091,0.10237975111627,0.102256079397132,0.102129960413398,0.102027712616075,0.101970518895225,0.101970518895225, +0.169812085229069,0.169812085229069,0.169838462848491,0.169755477602827,0.169592520121966,0.169387751669115,0.169182490941698,0.169016620731605,0.168923591772593,0.168923591772593, +0.269949407273313,0.269949407273313,0.269944332145639,0.2697857051323,0.269516553178771,0.269191816340471,0.268870077969775,0.268609262090774,0.268461462219699,0.268461462219699, +0.406689421768975,0.406689421768975,0.406625911706812,0.406352537131842,0.405933734033858,0.405445629674505,0.404964990833371,0.404569972966036,0.40434003163262,0.40434003163262, +0.5793926495298,0.5793926495298,0.57924698739251,0.578808894183649,0.578191953515801,0.577497705029311,0.576814191175793,0.576234010593023,0.575873821566906,0.575873821566906, +0.781368313011928,0.781368313011928,0.781156854478228,0.780471806316194,0.779603831793064,0.778671811223357,0.777749048155606,0.776915031864088,0.776314153560752,0.776314153560752, + +00:23:45, +0.0436362459020977,0.0436362459020977,0.0436746690761278,0.0436714483485349,0.0436369854472516,0.0435847073950651,0.0435289993294066,0.0434831398171371,0.0434573915872437,0.0434573915872437, +0.0436362459020977,0.0436362459020977,0.0436746690761278,0.0436714483485349,0.0436369854472516,0.0435847073950651,0.0435289993294066,0.0434831398171371,0.0434573915872437,0.0434573915872437, +0.0622583515838075,0.0622583515838075,0.0622980396283774,0.0622847152159404,0.0622318715042859,0.0621569808951274,0.062078858608862,0.0620150484514694,0.0619793100694501,0.0619793100694501, +0.102596946951217,0.102596946951217,0.102635124301624,0.102597609541067,0.102504166655382,0.102380474412796,0.102254333491028,0.102152067483554,0.102094863543815,0.102094863543815, +0.169962939965044,0.169962939965044,0.169989296671596,0.169906307875486,0.16974335746294,0.169538600553219,0.169333351852944,0.169167491698248,0.169074468667923,0.169074468667923, +0.270117500808089,0.270117500808089,0.270112391891807,0.269953782958114,0.269684684178244,0.269360017730659,0.269038351283363,0.268777595034156,0.268629829688638,0.268629829688638, +0.406854181315407,0.406854181315407,0.406790647030754,0.406517339145801,0.406098663765472,0.405610716599499,0.405130235955412,0.404735350117489,0.404505486646717,0.404505486646717, +0.579526173582986,0.579526173582986,0.579380525985808,0.57894257731588,0.578325861216659,0.577631873331263,0.576948619366755,0.57636866083851,0.576008609922679,0.576008609922679, +0.781443504696726,0.781443504696726,0.781232115315763,0.780547316260759,0.779679667431144,0.778748001753818,0.777825591871571,0.776991894146929,0.776391242887241,0.776391242887241, + +00:23:46, +0.0437220273965526,0.0437220273965526,0.0437604825785244,0.0437572633479511,0.0437227777030584,0.0436704617724984,0.0436147115917818,0.0435688165922713,0.0435430482148811,0.0435430482148811, +0.0437220273965526,0.0437220273965526,0.0437604825785244,0.0437572633479511,0.0437227777030584,0.0436704617724984,0.0436147115917818,0.0435688165922713,0.0435430482148811,0.0435430482148811, +0.0623583992834575,0.0623583992834575,0.0623981082366371,0.0623847811742164,0.0623319156823307,0.0622569911637546,0.0621788317660326,0.0621149905124793,0.0620792345263005,0.0620792345263005, +0.102721392080255,0.102721392080255,0.102759570550122,0.102722048829955,0.102628591178085,0.102504878517413,0.102378715767613,0.10227643164037,0.10221921753244,0.10221921753244, +0.170113752198376,0.170113752198376,0.170140088014929,0.170057095721003,0.169894152459757,0.169689407198009,0.169484170632957,0.169318320621942,0.169225303569501,0.169225303569501, +0.270285499534218,0.270285499534218,0.270280356890433,0.270121766083316,0.269852720525417,0.269528124524622,0.269206530058119,0.268945833484537,0.26879810268896,0.26879810268896, +0.407018812605479,0.407018812605479,0.406955254171987,0.406682012973941,0.406263465268142,0.405775675240121,0.405295352738123,0.40490059888109,0.404670813241173,0.404670813241173, +0.579659573452953,0.579659573452953,0.579513940428198,0.579076136189898,0.578459644475674,0.577765916979201,0.577082922692981,0.576503186035649,0.57614327311169,0.57614327311169, +0.781518619609612,0.781518619609612,0.781307299322109,0.780622749124306,0.779755425658356,0.778824114515837,0.777902057463841,0.777068677983004,0.776468253533647,0.776468253533647, + +00:23:47, +0.0438078744810771,0.0438078744810771,0.0438463616341423,0.0438431439102181,0.0438086355680758,0.0437562818277221,0.0437004896052286,0.0436545591790642,0.0436287706882575,0.0436287706882575, +0.0438078744810771,0.0438078744810771,0.0438463616341423,0.0438431439102181,0.0438086355680758,0.0437562818277221,0.0437004896052286,0.0436545591790642,0.0436287706882575,0.0436287706882575, +0.0624584934433778,0.0624584934433778,0.0624982232744926,0.0624848935816217,0.0624320063696316,0.0623570480267527,0.0622788516076149,0.0622149793321676,0.062179205783574,0.062179205783574, +0.102845846026263,0.102845846026263,0.102884025603797,0.102846496960987,0.102753024621476,0.102629291647884,0.10250310717984,0.102400805023033,0.102343580797511,0.102343580797511, +0.170264521925343,0.170264521925343,0.170290836874802,0.170207841135592,0.170044905108413,0.169840171599173,0.169634947277093,0.169469107497767,0.169376096472257,0.169376096472257, +0.270453403538998,0.270453403538998,0.27044822722875,0.27028965459501,0.270020662307159,0.269696136808911,0.269374614380252,0.269113977527842,0.268966281306434,0.268966281306434, +0.407183315812,0.407183315812,0.407119733303174,0.406846558788847,0.406428138714354,0.405940505768708,0.405460341353673,0.405065719428866,0.404836011587945,0.404836011587945, +0.579792849338622,0.579792849338622,0.579647230918494,0.579209571004636,0.578593303491972,0.577899836172443,0.577217101353962,0.576637586384088,0.576277811333704,0.576277811333704, +0.781593657884564,0.781593657884564,0.781382406631335,0.780698105041321,0.779831106609723,0.778900149644995,0.777978445068541,0.77714538350894,0.776545185636969,0.776545185636969, + +00:23:48, +0.043893787067644,0.043893787067644,0.0439323061549612,0.0439290899473162,0.0438945589542806,0.0438421674727079,0.0437863332817153,0.0437403674894835,0.0437145589193407,0.0437145589193407, +0.043893787067644,0.043893787067644,0.0439323061549612,0.0439290899473162,0.0438945589542806,0.0438421674727079,0.0437863332817153,0.0437403674894835,0.0437145589193407,0.0437145589193407, +0.0625586339784899,0.0625586339784899,0.0625983846569048,0.0625850523531078,0.062532143481089,0.0624571513989456,0.0623789180483503,0.0623150148252083,0.062279223755907,0.062279223755907, +0.102970308726618,0.102970308726618,0.103008489400091,0.102970953871562,0.10287746692282,0.102753713741276,0.102627507664564,0.102525187568223,0.102467953275607,0.102467953275607, +0.170415249142374,0.170415249142374,0.170441543247669,0.170358544115615,0.170195615405052,0.169990893752547,0.16978568178086,0.169619852320956,0.169526847371265,0.169526847371265, +0.270621212909699,0.270621212909699,0.270616002993968,0.270457448580271,0.270188509610317,0.269864054670054,0.26954260433595,0.269282027249975,0.269134365626803,0.269134365626803, +0.407347691107503,0.407347691107503,0.407284084596704,0.407010976762828,0.406592684276322,0.406105208357328,0.405625201973957,0.405230711932575,0.405001081858721,0.405001081858721, +0.579926001438497,0.579926001438497,0.579780397655094,0.579342881958605,0.578726838464261,0.57803363110989,0.577351155548769,0.576771862083056,0.576412224788068,0.576412224788068, +0.781668619655246,0.781668619655246,0.781457437377194,0.780773384145974,0.779906710419949,0.778976107276554,0.778054754821474,0.77722201086104,0.776622039333889,0.776622039333889, + +00:23:49, +0.0439797650682399,0.0439797650682399,0.0440183160529748,0.0440151013712397,0.0439805477736633,0.0439281186194414,0.0438722425332238,0.0438262414355097,0.0438004128201114,0.0438004128201114, +0.0439797650682399,0.0439797650682399,0.0440183160529748,0.0440151013712397,0.0439805477736633,0.0439281186194414,0.0438722425332238,0.0438262414355097,0.0438004128201114,0.0438004128201114, +0.0626588208038058,0.0626588208038058,0.0626985922989248,0.0626852574037159,0.0626323269316935,0.0625573011952469,0.0624790310030699,0.0624150969063649,0.0623792883580257,0.0623792883580257, +0.103094780118868,0.103094780118868,0.103132961876613,0.10309541949925,0.103001918019553,0.102878144734827,0.102751917158809,0.102649579212787,0.102592334903478,0.102592334903478, +0.170565933846039,0.170565933846039,0.170592207130134,0.170509204657579,0.170346283345964,0.170141573654113,0.169936374139908,0.169770555086886,0.169677556261752,0.169677556261752, +0.270788927733566,0.270788927733566,0.270783684273266,0.270625148126149,0.27035626252171,0.270031878194556,0.269710500011374,0.269449982736814,0.269302355735789,0.269302355735789, +0.407511938664248,0.407511938664248,0.407448308224695,0.407175267067922,0.406757102125987,0.406269783177775,0.405789934770601,0.405395576563706,0.405166024224919,0.405166024224919, +0.580059029950664,0.580059029950664,0.579913440835978,0.579476069249901,0.578860249590831,0.578167301990025,0.577485085476059,0.576906013331368,0.576546513673709,0.576546513673709, +0.781743505055006,0.781743505055006,0.781532391693123,0.780848586572118,0.779982237223422,0.779051987545458,0.778130986858127,0.77729856017529,0.776698814760765,0.776698814760765, + +00:23:50, +0.0440658083948658,0.0440658083948658,0.0441043912401913,0.0441011780939976,0.0440666019382287,0.0440141351799217,0.0439582172717494,0.0439121809291364,0.0438863323025632,0.0438863323025632, +0.0440658083948658,0.0440658083948658,0.0441043912401913,0.0441011780939976,0.0440666019382287,0.0440141351799217,0.0439582172717494,0.0439121809291364,0.0438863323025632,0.0438863323025632, +0.0627590538344272,0.0627590538344272,0.0627988461156936,0.0627855086485774,0.0627325566365256,0.06265749733066,0.0625791903866947,0.0625152254904906,0.0624793995047455,0.0624793995047455, +0.103219260140728,0.103219260140728,0.103257442971141,0.103219893781784,0.103126377849274,0.103002584565941,0.10287633559977,0.102773979893742,0.10271672561804,0.10271672561804, +0.170716576033058,0.170716576033058,0.170742828518942,0.170659822758135,0.170496908927583,0.170292211300001,0.170087024350039,0.169921215791084,0.169828223139088,0.169828223139088, +0.270956548097815,0.270956548097815,0.270951271153799,0.270792753319664,0.270523921128129,0.270199607468893,0.269878301492663,0.269617844074218,0.269470251719094,0.269470251719094, +0.407676058654223,0.407676058654223,0.407612404358988,0.407339429875892,0.406921392435018,0.406434230401573,0.405954539914961,0.405560313493477,0.40533083885769,0.40533083885769, +0.580191935072791,0.580191935072791,0.580046360658712,0.579609133076204,0.578993537069558,0.578300849010915,0.577618891334072,0.577040040327419,0.576680678189143,0.576680678189143, +0.781818314216881,0.781818314216881,0.781607269712246,0.780923712453295,0.780057687154216,0.779127790586334,0.778207141313667,0.777375031587357,0.776775512053636,0.776775512053636, + +00:23:51, +0.0441519169595374,0.0441519169595374,0.0441905316286336,0.0441873200276133,0.0441527213599962,0.0441002170661624,0.044044257409301,0.043998185882371,0.0439723172787029,0.0439723172787029, +0.0441519169595374,0.0441519169595374,0.0441905316286336,0.0441873200276133,0.0441527213599962,0.0441002170661624,0.044044257409301,0.043998185882371,0.0439723172787029,0.0439723172787029, +0.0628593329855465,0.0628593329855465,0.0628991460224424,0.062885806002914,0.0628328325107557,0.0627577397202782,0.0626793961142352,0.0626154004925282,0.0625795571109715,0.0625795571109715, +0.10334374873008,0.10334374873008,0.103381932621619,0.10334437665707,0.103250846349754,0.10312703317219,0.103000762924805,0.102898389548272,0.102841125356379,0.102841125356379, +0.170867175700289,0.170867175700289,0.170893407410984,0.170810398414078,0.170647492146485,0.170442806686482,0.170237632407197,0.170071834429222,0.169978847998793,0.169978847998793, +0.271124074089636,0.271124074089636,0.27111876372269,0.270960264247812,0.27069148551634,0.270367242579519,0.270046008865931,0.269785611348018,0.269638053662394,0.269638053662394, +0.407840051249141,0.407840051249141,0.407776373171155,0.40750346535823,0.407085555374812,0.406598550199974,0.406119017578122,0.405724922892839,0.405495525927915,0.405495525927915, +0.580324717002135,0.580324717002135,0.580179157320445,0.579742073634779,0.579126701097901,0.578434272370213,0.577752573320632,0.577173943269193,0.576814718532469,0.576814718532469, +0.781893047273592,0.781893047273592,0.781682071567376,0.780998761922729,0.780133060346087,0.779203516533494,0.778283218322945,0.777451425232588,0.776852131348225,0.776852131348225, + +00:23:52, +0.0442380906742851,0.0442380906742851,0.0442767371303397,0.0442735270841255,0.0442389059509999,0.0441863641901915,0.0441303628579021,0.0440842562072345,0.0440583676605512,0.0440583676605512, +0.0442380906742851,0.0442380906742851,0.0442767371303397,0.0442735270841255,0.0442389059509999,0.0441863641901915,0.0441303628579021,0.0440842562072345,0.0440583676605512,0.0440583676605512, +0.0629596581724457,0.0629596581724457,0.0629994919344926,0.0629861493820371,0.0629331544696443,0.0628580282792846,0.0627796481007915,0.06271562182751,0.0626797610916982,0.0626797610916982, +0.103468245824972,0.103468245824972,0.103506430766157,0.103468868063174,0.103375323458926,0.103251490491314,0.103125199071443,0.10302280811373,0.102965534055749,0.102965534055749, +0.171017732844737,0.171017732844737,0.171043943803291,0.170960931622346,0.170798032999395,0.170593359809975,0.170388198307472,0.170222410997119,0.170129430836534,0.170129430836534, +0.271291505796188,0.271291505796188,0.271286162067038,0.271127680997558,0.270858955773083,0.270534783612858,0.270213622217266,0.269953284644025,0.269805761651343,0.269805761651343, +0.408003916620444,0.408003916620444,0.407940214832495,0.407667373686158,0.407249591116495,0.406762742743961,0.406283367930901,0.405889404932472,0.405660085606207,0.405660085606207, +0.580457375935536,0.580457375935536,0.580311831017915,0.579874891122477,0.579259741872906,0.578567572265158,0.577886131633152,0.577307722354259,0.576948634901371,0.576948634901371, +0.781967704357552,0.781967704357552,0.781756797391013,0.781073735113335,0.78020835693248,0.779279165520934,0.778359218020496,0.777527741246015,0.776928672779934,0.776928672779934, + +00:23:53, +0.0443243294511549,0.0443243294511549,0.0443630076573634,0.0443597991755883,0.0443251556232892,0.044272576464052,0.0442165335295905,0.0441703918157624,0.044144483360143,0.044144483360143, +0.0443243294511549,0.0443243294511549,0.0443630076573634,0.0443597991755883,0.0443251556232892,0.044272576464052,0.0442165335295905,0.0441703918157624,0.044144483360143,0.044144483360143, +0.0630600293104975,0.0630600293104975,0.0630998837672557,0.0630865387013483,0.0630335224285417,0.0629583629229523,0.0628799462615538,0.0628158894105579,0.0627800113620097,0.0627800113620097, +0.103592751363621,0.103592751363621,0.103630937343034,0.103593367938333,0.103499809114892,0.103375956461219,0.103249643977378,0.103147235527633,0.103089951653569,0.103089951653569, +0.171168247463549,0.171168247463549,0.171194437693039,0.17111142238002,0.170948531483175,0.17074387066704,0.1705387220471,0.170372945490738,0.170279971648121,0.170279971648121, +0.271458843304605,0.271458843304605,0.271453466273912,0.27129500365584,0.271026331985068,0.27070223065531,0.270381141632734,0.270120864048024,0.26997337577157,0.26997337577157, +0.408167654939302,0.408167654939302,0.408103929514034,0.407831155030623,0.407413499830922,0.406926808204247,0.406447591143846,0.406053759782791,0.405824518062912,0.405824518062912, +0.580589912069423,0.580589912069423,0.580444381947445,0.580007585735739,0.579392659591207,0.578700748892574,0.578019566468629,0.577441377779773,0.577082427493123,0.577082427493123, +0.782042285600863,0.782042285600863,0.781831447315347,0.781148632157715,0.780283577046525,0.779354737682337,0.77843514054054,0.777603979762354,0.77700513648385,0.77700513648385, + +00:23:54, +0.0444106332022082,0.0444106332022082,0.0444493431217738,0.0444461362140713,0.0444114702889292,0.0443588537998022,0.0443027693364191,0.0442565926200046,0.0442306642895273,0.0442306642895273, +0.0444106332022082,0.0444106332022082,0.0444493431217738,0.0444461362140713,0.0444114702889292,0.0443588537998022,0.0443027693364191,0.0442565926200046,0.0442306642895273,0.0442306642895273, +0.0631604463151643,0.0631604463151643,0.0632003214362334,0.0631869738763394,0.0631339363028885,0.063058743566644,0.0629802905118017,0.0629162031568834,0.0628803078370796,0.0628803078370796, +0.103717265284407,0.103717265284407,0.103755452290691,0.103717876220948,0.103624303255921,0.103500431019975,0.103374097580471,0.103271671727669,0.103214378087426,0.103214378087426, +0.171318719554015,0.171318719554015,0.171344889077546,0.171261870684321,0.171098987594834,0.170894339254382,0.17068920362246,0.170523437906189,0.170430470429511,0.170430470429511, +0.271626086701991,0.271626086701991,0.27162067643035,0.271462232309569,0.271193614238979,0.270869583793249,0.270548567198371,0.270288349645775,0.270140896108684,0.270140896108684, +0.408331266376614,0.408331266376614,0.408267517386529,0.407994809562305,0.407577281688679,0.407090746751276,0.406611687387237,0.406217987613943,0.405988823468109,0.405988823468109, +0.580722325599812,0.580722325599812,0.580576810304949,0.58014015767059,0.579525454449026,0.578833802448878,0.578152878023652,0.577574909742481,0.577216096504586,0.577216096504586, +0.782116791135315,0.782116791135315,0.781906021472257,0.78122345318816,0.780358720821043,0.779430233151073,0.778510986016984,0.777680140916005,0.777081522594745,0.777081522594745, + +00:23:55, +0.0444970018395226,0.0444970018395226,0.0445357434356564,0.0445325381116607,0.0444978498600006,0.0444451961095159,0.0443890701904559,0.0443428585320262,0.0443169103607681,0.0443169103607681, +0.0444970018395226,0.0444970018395226,0.0445357434356564,0.0445325381116607,0.0444978498600006,0.0444451961095159,0.0443890701904559,0.0443428585320262,0.0443169103607681,0.0443169103607681, +0.0632609091019991,0.0632609091019991,0.0633008048570175,0.0632874548225922,0.0632343960082148,0.0631591701258125,0.0630806807669047,0.0630165629817878,0.062980650432171,0.062980650432171, +0.103841787525877,0.103841787525877,0.103879975547737,0.103842392849585,0.103748805820444,0.103624914105821,0.103498559818748,0.103396116651688,0.103338813295075,0.103338813295075, +0.171469149113563,0.171469149113563,0.171495297954268,0.171412276532614,0.17124940133152,0.171044765568847,0.170839643030073,0.170673888239722,0.170580927176803,0.170580927176803, +0.271793236075419,0.271793236075419,0.271787792623365,0.271629367045624,0.27136080262147,0.271036843113021,0.270715899000191,0.270455741523015,0.270308322748264,0.270308322748264, +0.408494751103009,0.408494751103009,0.408430978620465,0.408158337451612,0.40774093686008,0.407254558555221,0.406775656831084,0.406382088595805,0.40615300199161,0.40615300199161, +0.580854616722311,0.580854616722311,0.58070911628593,0.58027260712265,0.579658126642173,0.578966733130072,0.578286066494397,0.577708318438719,0.577349642132212,0.577349642132212, +0.782191221092393,0.782191221092393,0.781980519993315,0.781298198336652,0.780433788388543,0.779505652060201,0.77858675458342,0.777756224841057,0.777157831247075,0.777157831247075, + +00:23:56, +0.0445834352751919,0.0445834352751919,0.0446222085111133,0.0446190047804586,0.0445842942486007,0.0445316033052828,0.0444754360037844,0.0444291894639073,0.0444032214859445,0.0444032214859445, +0.0445834352751919,0.0445834352751919,0.0446222085111133,0.0446190047804586,0.0445842942486007,0.0445316033052828,0.0444754360037844,0.0444291894639073,0.0444032214859445,0.0444032214859445, +0.0633614175866448,0.0633614175866448,0.0634013339452899,0.0633879814557786,0.0633349014601412,0.0632596425160003,0.063181116942322,0.0631169688006618,0.0630810390626365,0.0630810390626365, +0.103966318026743,0.103966318026743,0.104004507052944,0.103966917762974,0.103873316747059,0.10374940565716,0.103623030630403,0.103520570237708,0.103463257214433,0.103463257214433, +0.171619536139766,0.171619536139766,0.171645664320805,0.171562639922402,0.171399772690522,0.171195149607424,0.170990040266604,0.170824296487735,0.170731341886244,0.170731341886244, +0.271960291511936,0.271960291511936,0.271954814939937,0.271796407950858,0.271527897219168,0.271204008700943,0.27088313712418,0.270623039765454,0.27047565577587,0.27047565577587, +0.408658109288844,0.408658109288844,0.408594313386058,0.408321738868681,0.407904465515173,0.407418243785989,0.406939499645133,0.406546062897991,0.406317053802962,0.406317053802962, +0.580986785632117,0.580986785632117,0.580841300085483,0.580404934287125,0.579790676366052,0.579099541131752,0.578419132076633,0.577841604064412,0.577483064572044,0.577483064572044, +0.782265575603273,0.782265575603273,0.782054943009785,0.781372867734864,0.780508779881222,0.779580994542466,0.77866244637313,0.777832231671283,0.777234062574984,0.777234062574984, + +00:23:57, +0.0446699334213268,0.0446699334213268,0.0447087382602632,0.0447055361325844,0.0446708033668432,0.044618075299209,0.0445618666885044,0.0445155853277438,0.044489597577151,0.044489597577151, +0.0446699334213268,0.0446699334213268,0.0447087382602632,0.0447055361325844,0.0446708033668432,0.044618075299209,0.0445618666885044,0.0445155853277438,0.044489597577151,0.044489597577151, +0.0634619716848345,0.0634619716848345,0.0635019086168226,0.0634885536916605,0.063435452574378,0.06336016065284,0.0632815989536025,0.0632174205289858,0.0631814736439185,0.0631814736439185, +0.104090856725881,0.104090856725881,0.10412904674525,0.104091450900012,0.103997835974527,0.103873905612557,0.103747509953791,0.103645032423912,0.103587709783586,0.103587709783586, +0.171769880630333,0.171769880630333,0.171795988174893,0.171712960851328,0.171550101669271,0.171345491367242,0.17114039532886,0.170974662646763,0.170881714554218,0.170881714554218, +0.272127253098556,0.272127253098556,0.272121743467018,0.271963355112092,0.271694898118671,0.271371080643306,0.271050281656298,0.270790244458777,0.270642895277032,0.270642895277032, +0.408821341104206,0.408821341104206,0.408757521853254,0.408485013983381,0.408067867823734,0.407581802613219,0.407103215998859,0.406709910689847,0.406480979071446,0.406480979071446, +0.581118832524019,0.581118832524019,0.580973361898293,0.580537139358817,0.579923103815656,0.579232226649104,0.57855207496572,0.577974766815078,0.577616364019716,0.577616364019716, +0.782339854798822,0.782339854798822,0.782129290652621,0.781447461514161,0.78058369543097,0.779656260730307,0.778738061519085,0.777908161540145,0.7773102167123,0.7773102167123, + +00:23:58, +0.0447564961900547,0.0447564961900547,0.044795332595242,0.0447921320801742,0.0447573771268587,0.0447046120034171,0.0446483621567315,0.0446020460356476,0.0445760385464978,0.0445760385464978, +0.0447564961900547,0.0447564961900547,0.044795332595242,0.0447921320801742,0.0447573771268587,0.0447046120034171,0.0446483621567315,0.0446020460356476,0.0445760385464978,0.0445760385464978, +0.0635625713123917,0.0635625713123917,0.0636025287874781,0.06358917144609,0.0635360492667256,0.0634607244520539,0.0633821267163849,0.0633179180823298,0.0632819540915488,0.0632819540915488, +0.104215403562333,0.104215403562333,0.104253594563755,0.104215992199756,0.104122363441776,0.103998413910745,0.103871997727436,0.103769503148647,0.103712170940783,0.103712170940783, +0.171920182583116,0.171920182583116,0.171946269514411,0.171863239317175,0.171700388265335,0.17149579084557,0.171290708213788,0.171124986713489,0.171032045177256,0.171032045177256, +0.272294120922266,0.272294120922266,0.272288578291529,0.272130208616118,0.271861805406548,0.271538059026374,0.271217332682477,0.270957355688643,0.270810041337259,0.270810041337259, +0.408984446718914,0.408984446718914,0.408920604191729,0.408648162965313,0.408231143955273,0.40774523520628,0.407266806061475,0.406873632140455,0.406644777966076,0.406644777966076, +0.581250757592399,0.581250757592399,0.58110530191864,0.580669222532118,0.580055409185572,0.579364789876908,0.578684895356611,0.578107806885829,0.577749540670455,0.577749540670455, +0.782414058809605,0.782414058809605,0.782203563052477,0.781521979805602,0.78065853516937,0.77973145075585,0.778813600153944,0.777984014580795,0.777386293792544,0.777386293792544, + +00:23:59, +0.0448431234935206,0.0448431234935206,0.0448819914282033,0.0448787925353818,0.0448440154407952,0.0447912133300469,0.0447349223205982,0.0446885714997468,0.0446625443061114,0.0446625443061114, +0.0448431234935206,0.0448431234935206,0.0448819914282033,0.0448787925353818,0.0448440154407952,0.0447912133300469,0.0447349223205982,0.0446885714997468,0.0446625443061114,0.0446625443061114, +0.0636632163852298,0.0636632163852298,0.0637031943732086,0.0636898346350092,0.0636366914530743,0.0635613338294542,0.0634827001463975,0.0634184613763535,0.0633824803211487,0.0633824803211487, +0.104339958475301,0.104339958475301,0.104378150447724,0.104340541601429,0.104246899087894,0.104122930490618,0.103996493890021,0.103893982350424,0.103836640624438,0.103836640624438, +0.172070441996102,0.172070441996102,0.172096508337372,0.172013475317865,0.171850632476423,0.171646048039818,0.171440978918477,0.171275268684731,0.171182333752029,0.171182333752029, +0.27246089507002,0.27246089507002,0.272455319500362,0.272296968549699,0.272028619169338,0.27170494393638,0.271384290288623,0.271124373540686,0.270977094042031,0.270977094042031, +0.409147426302518,0.409147426302518,0.409083560570891,0.408811185983807,0.40839429407903,0.407908541734277,0.407430270001925,0.407037227418629,0.406808450655602,0.406808450655602, +0.581382561031233,0.581382561031233,0.581237120340398,0.580801184001015,0.58018759266998,0.579497231009536,0.578817593443853,0.578240724471371,0.577882594719083,0.577882594719083, +0.78248818776588,0.78248818776588,0.782277760339696,0.781596422739939,0.780733299227696,0.779806564750916,0.778889062410059,0.778059790926072,0.777462293948921,0.777462293948921, + +00:24:00, +0.044929815243887,0.044929815243887,0.0449687146713182,0.0449655174103787,0.0449307182208181,0.0448778791912552,0.044821547092254,0.0447751616321862,0.0447491147681347,0.0447491147681347, +0.044929815243887,0.044929815243887,0.0449687146713182,0.0449655174103787,0.0449307182208181,0.0448778791912552,0.044821547092254,0.0447751616321862,0.0447491147681347,0.0447491147681347, +0.0637639068193526,0.0637639068193526,0.0638039052900567,0.0637905431744505,0.0637373790494045,0.063661988700943,0.0635833191594587,0.0635190503268063,0.0634830522484292,0.0634830522484292, +0.104464521404154,0.104464521404154,0.104502714336584,0.104465099044416,0.104371442852133,0.104247455291236,0.104120998380398,0.10401846996792,0.103961118773128,0.103961118773128, +0.172220658867419,0.172220658867419,0.172246704641931,0.172163668851456,0.172000834300381,0.171796262947533,0.171591207440153,0.171425508557453,0.171332580275348,0.171332580275348, +0.272627575628744,0.272627575628744,0.272621967180376,0.272463634999565,0.272195339493551,0.271871735459529,0.271551154560615,0.271291298100513,0.271144053476804,0.271144053476804, +0.409310280024298,0.409310280024298,0.40924639115988,0.408974083207929,0.408557318363979,0.408071722366047,0.407593607988888,0.407200696692922,0.406971997308513,0.406971997308513, +0.581514243034093,0.581514243034093,0.581368817357035,0.580933023959093,0.580319654462656,0.579629550240958,0.578950169421588,0.578373519766003,0.578015526360017,0.578015526360017, +0.782562241797602,0.782562241797602,0.782351882644321,0.781670790447618,0.780807987736918,0.779881602847018,0.778964448419472,0.778135490708509,0.77753821731433,0.77753821731433, + +00:24:01, +0.0450165713533346,0.0450165713533346,0.0450555022367763,0.0450523066173546,0.045017485379111,0.0449646094992166,0.0449082363838655,0.0448618163451276,0.0448357498447275,0.0448357498447275, +0.0450165713533346,0.0450165713533346,0.0450555022367763,0.0450523066173546,0.045017485379111,0.0449646094992166,0.0449082363838655,0.0448618163451276,0.0448357498447275,0.0448357498447275, +0.063864642530854,0.063864642530854,0.0639046614541552,0.063891296980536,0.0638381119717866,0.0637626889825123,0.0636839836714763,0.063619684849527,0.0635836697891908,0.0635836697891908, +0.104589092288422,0.104589092288422,0.104627286169925,0.104589664468266,0.104495994673909,0.104371988251819,0.104245511137577,0.104142965939973,0.104085605325595,0.104085605325595, +0.17237083319533,0.17237083319533,0.172396858426377,0.172313819916143,0.172150993735193,0.171946435566403,0.171741393776185,0.171575706328754,0.171482784744166,0.171482784744166, +0.27279416268533,0.27279416268533,0.272788521418401,0.272630208052418,0.272361966465665,0.272038433682,0.271717925584303,0.271458129453702,0.271310919727007,0.271310919727007, +0.409473008053267,0.409473008053267,0.409409096127568,0.409136854806472,0.408720216978827,0.408234777270161,0.407756820190778,0.407364040131618,0.407135418093029,0.407135418093029, +0.581645803794145,0.581645803794145,0.581500393161618,0.581064742599528,0.580451594756973,0.579761747764739,0.579082623483555,0.578506192963624,0.57814833578727,0.57814833578727, +0.782636221034423,0.782636221034423,0.78242593009609,0.781745083058785,0.780882600827697,0.779956565175361,0.779039758313919,0.77821111406033,0.777614064021359,0.777614064021359, + +00:24:02, +0.0451033917340623,0.0451033917340623,0.0451423540367853,0.0451391600685174,0.0451043168278754,0.0450514041661235,0.044994990107617,0.0449485355507501,0.0449224494480666,0.0449224494480666, +0.0451033917340623,0.0451033917340623,0.0451423540367853,0.0451391600685174,0.0451043168278754,0.0450514041661235,0.044994990107617,0.0449485355507501,0.0449224494480666,0.0449224494480666, +0.0639654234359181,0.0639654234359181,0.0640054627817269,0.0639920959694784,0.0639388901363809,0.0638634345902441,0.0637846935984481,0.0637203648604442,0.0636843328593235,0.0636843328593235, +0.104713671067796,0.104713671067796,0.104751865887498,0.104714237812687,0.104620554492799,0.104496529311752,0.104370032100736,0.104267470205586,0.104210100220744,0.104210100220744, +0.172520964978237,0.172520964978237,0.172546969689137,0.172463928510261,0.172301110778981,0.172096565894251,0.171891537924077,0.171725861995877,0.171632947155573,0.171632947155573, +0.272960656326642,0.272960656326642,0.272954982301235,0.272796687794927,0.27252850017213,0.272205038689938,0.271884603445508,0.271624867685806,0.271477692878042,0.271477692878042, +0.409635610558171,0.409635610558171,0.40957167564256,0.409299500947968,0.408882990092015,0.408397706614924,0.407919906775745,0.407527257902742,0.407298713177111,0.407298713177111, +0.581777243504155,0.581777243504155,0.58163184794681,0.581196340115099,0.5805834137459,0.57989382377404,0.579214955823091,0.578638744257727,0.578281023194453,0.578281023194453, +0.782710125605692,0.782710125605692,0.782499902824439,0.781819300703278,0.780957138630394,0.780031451866847,0.77911499222483,0.778286661113451,0.77768983420229,0.77768983420229, + +00:24:03, +0.0451902762982878,0.0451902762982878,0.0452292699835721,0.0452260776760942,0.0451912124793318,0.0451382631041867,0.0450818081757107,0.0450353191612503,0.0450092134903463,0.0450092134903463, +0.0451902762982878,0.0451902762982878,0.0452292699835721,0.0452260776760942,0.0451912124793318,0.0451382631041867,0.0450818081757107,0.0450353191612503,0.0450092134903463,0.0450092134903463, +0.0640662494508192,0.0640662494508192,0.0641063091890848,0.06409294005758,0.0640397134594378,0.0639642254403101,0.0638854488564615,0.0638210902755763,0.0637850413748071,0.0637850413748071, +0.104838257682131,0.104838257682131,0.104876453429217,0.104838819017551,0.104745122248542,0.104621078410579,0.10449456120921,0.104391982703922,0.104334603397642,0.104334603397642, +0.172671054214676,0.172671054214676,0.172697038428771,0.172613994632276,0.172451185430001,0.172246653929039,0.172041639881473,0.171875975556199,0.171783067506801,0.171783067506801, +0.273127056639509,0.273127056639509,0.273121349915644,0.272963074313731,0.272694940699364,0.272371550569462,0.272051188230025,0.271791512882351,0.271644373015286,0.271644373015286, +0.409798087707489,0.409798087707489,0.409734129873194,0.409462021800677,0.409045637871716,0.408560510568377,0.408082867911674,0.407690350174052,0.407461882728453,0.407461882728453, +0.581908562356485,0.581908562356485,0.581763181904872,0.581327816698179,0.580715111622004,0.580025778461621,0.579347166633129,0.578771173841407,0.578413588774775,0.578413588774775, +0.782783955640458,0.782783955640458,0.782573800958503,0.781893443510636,0.781031601275064,0.780106263052071,0.779190150283328,0.778362131999482,0.777765527989094,0.777765527989094, + +00:24:04, +0.0452772249582476,0.0452772249582476,0.0453162499893825,0.0453130593523309,0.0452781722457192,0.0452251862256356,0.0451686905003671,0.0451221670888432,0.0450960418837788,0.0450960418837788, +0.0452772249582476,0.0452772249582476,0.0453162499893825,0.0453130593523309,0.0452781722457192,0.0452251862256356,0.0451686905003671,0.0451221670888432,0.0450960418837788,0.0450960418837788, +0.0641671204919217,0.0641671204919217,0.0642072005926321,0.0641938291612336,0.0641405818572978,0.0640650614489719,0.0639862493616938,0.063921861011031,0.0638857952517109,0.0638857952517109, +0.104962852071443,0.104962852071443,0.105001048735157,0.104963408022891,0.104869697881037,0.104745635488009,0.1046190984025,0.104516503374309,0.104459114795518,0.104459114795518, +0.172821100903319,0.172821100903319,0.172847064643979,0.172764018280792,0.172601217686646,0.172396699668864,0.172191699646154,0.172026047007239,0.171933145795219,0.171933145795219, +0.27329336371073,0.27329336371073,0.273287624348362,0.273129367695435,0.272861288133754,0.272537969406658,0.272217680023619,0.271958065128834,0.271810960224086,0.271810960224086, +0.409960439669431,0.409960439669431,0.409896458987541,0.409624417532597,0.409208160485839,0.408723189298295,0.408245703766186,0.407853317113046,0.40762492691449,0.40762492691449, +0.582039760543099,0.582039760543099,0.581894395227667,0.581459172540743,0.580846688577453,0.580157612019843,0.579479256106204,0.578903481907355,0.578546032721046,0.578546032721046, +0.78285771126747,0.78285771126747,0.782647624627117,0.781967511610096,0.781105988891461,0.780180998861328,0.779265232620233,0.778437526849727,0.77784114551344,0.77784114551344, + +00:24:05, +0.0453642376261978,0.0453642376261978,0.0454032939664818,0.0454001050094928,0.0453651960392961,0.0453121734427186,0.0452556369938253,0.0452090792457615,0.0451829345405945,0.0451829345405945, +0.0453642376261978,0.0453642376261978,0.0454032939664818,0.0454001050094928,0.0453651960392961,0.0453121734427186,0.0452556369938253,0.0452090792457615,0.0451829345405945,0.0451829345405945, +0.0642680364756804,0.0642680364756804,0.0643081369088621,0.0642947631969217,0.0642414952463911,0.0641659425325811,0.0640870950304119,0.0640226769830061,0.0639865944061937,0.0639865944061937, +0.105087454175909,0.105087454175909,0.105125651745553,0.105088004768898,0.104994281330347,0.10487020048391,0.104743643620266,0.104641032156234,0.104583634353763,0.104583634353763, +0.172971105042974,0.172971105042974,0.17299704833359,0.172913999454548,0.172751207547445,0.172546703111959,0.172341717216037,0.172176076346649,0.172083182018333,0.172083182018333, +0.273459577627073,0.273459577627073,0.273453805686092,0.273295568026615,0.273027542561657,0.272704295287585,0.272384078912026,0.272124524510724,0.271977454589763,0.271977454589763, +0.410122666611944,0.410122666611944,0.410058663153408,0.409786688311459,0.409370558102027,0.40888574297219,0.40840841450664,0.408016158886957,0.407787845902394,0.407787845902394, +0.582170838255558,0.582170838255558,0.582025488106656,0.581590407834366,0.580978144804013,0.580289324640666,0.579611224434451,0.579035668647865,0.578678355225673,0.578678355225673, +0.782931392615176,0.782931392615176,0.782721373958817,0.782041505130593,0.781180301609036,0.780255659424608,0.779340239366059,0.778512845795186,0.77791668690669,0.77791668690669, + +00:24:06, +0.045451314214414,0.045451314214414,0.0454904018271553,0.0454872145598651,0.0454522837723405,0.0453992246677033,0.0453426475683433,0.0452960555442572,0.045269891373042,0.045269891373042, +0.045451314214414,0.045451314214414,0.0454904018271553,0.0454872145598651,0.0454522837723405,0.0453992246677033,0.0453426475683433,0.0452960555442572,0.045269891373042,0.045269891373042, +0.06436899731864,0.06436899731864,0.0644091180543583,0.0643957420812172,0.0643424535432382,0.0642668686075793,0.0641879857789727,0.0641235381077887,0.0640874387545039,0.0640874387545039, +0.105212063935865,0.105212063935865,0.1052502624008,0.105212609195928,0.105118872536692,0.10499477333831,0.104868196802329,0.104765568989347,0.104708162011929,0.104708162011929, +0.17312106663258,0.17312106663258,0.173146989496571,0.173063938152414,0.172901155011059,0.172696664256693,0.172491692589175,0.172326063572222,0.172233176173785,0.172233176173785, +0.273625698475271,0.273625698475271,0.273619894015501,0.273461675393812,0.273193704069397,0.27287052829827,0.272550384980951,0.27229089111346,0.27214385619761,0.27214385619761, +0.410284768702708,0.410284768702708,0.410220742538333,0.409948834304728,0.409532830887661,0.409048171757309,0.408571000300131,0.408178875662757,0.407950639859074,0.407950639859074, +0.582301795685028,0.582301795685028,0.582156460732904,0.581721522770226,0.581109480493054,0.580420916515651,0.579743071809605,0.579167734254832,0.578810556480669,0.578810556480669, +0.783004999811729,0.783004999811729,0.782795049081838,0.782115424200765,0.781254539556942,0.780330244871599,0.779415170651022,0.778588088966556,0.777992152299902,0.777992152299902, + +00:24:07, +0.0455384546351916,0.0455384546351916,0.045577573483708,0.045574387915753,0.0455394353571502,0.0454863398128767,0.0454297221361985,0.0453830958966007,0.045356912293389,0.045356912293389, +0.0455384546351916,0.0455384546351916,0.045577573483708,0.045574387915753,0.0455394353571502,0.0454863398128767,0.0454297221361985,0.0453830958966007,0.045356912293389,0.045356912293389, +0.0644700029374355,0.0644700029374355,0.0645101439457943,0.0644967657307829,0.0644434566644494,0.0643678395904976,0.0642889215238227,0.0642244443017556,0.0641883282129796,0.0641883282129796, +0.105336681291808,0.105336681291808,0.105374880641454,0.105337221244492,0.105243471440453,0.105119353991399,0.104992757888673,0.104890113813458,0.10483269770973,0.10483269770973, +0.173270985671213,0.173270985671213,0.17329688813202,0.173213834373396,0.173051060076284,0.172846583101569,0.172641625763755,0.172476008681884,0.172383128259357,0.172383128259357, +0.273791726342026,0.273791726342026,0.273785889423228,0.273627689883537,0.273359772743266,0.273036668524707,0.272716598316071,0.272457165022457,0.272310165132891,0.272310165132891, +0.410446746109138,0.410446746109138,0.410382697309593,0.410110855679605,0.409694979009855,0.409210475820638,0.408733461313493,0.408341467607156,0.408113308951179,0.408113308951179, +0.582432633022276,0.582432633022276,0.582287313297079,0.581852517539102,0.581240695835548,0.580552387835962,0.579874798423007,0.579299678919755,0.578942636677648,0.578942636677648, +0.78307853298498,0.78307853298498,0.782868650124119,0.782189268948949,0.78132870286403,0.78040475533169,0.779490026605031,0.778663256494232,0.77806754182383,0.77806754182383, + +00:24:08, +0.0456256588008468,0.0456256588008468,0.0456648088484658,0.0456616249894822,0.0456266507060434,0.0455735187905461,0.0455168606096877,0.045470200215082,0.0454439972139221,0.0454439972139221, +0.0456256588008468,0.0456256588008468,0.0456648088484658,0.0456616249894822,0.0456266507060434,0.0455735187905461,0.0455168606096877,0.045470200215082,0.0454439972139221,0.0454439972139221, +0.0645710532487921,0.0645710532487921,0.0646112144999339,0.0645978340623719,0.0645445045267251,0.0644688553979572,0.0643899021814981,0.0643253954813734,0.0642892626980484,0.0642892626980484, +0.105461306184396,0.105461306184396,0.105499506408229,0.105461840855263,0.105368077982171,0.105243942383525,0.105117326819438,0.105014666568538,0.10495724138704,0.10495724138704, +0.17342086215808,0.17342086215808,0.173446744239167,0.173363688116631,0.17320092274205,0.172996459645223,0.172791516738102,0.172625911673696,0.172533038272964,0.172533038272964, +0.273957661314005,0.273957661314005,0.273951791995874,0.273793611582265,0.273525748669523,0.273202716052862,0.272882719003034,0.272623346323095,0.272476381480843,0.272476381480843, +0.410608598998382,0.410608598998382,0.4105445276342,0.410272752603028,0.409857002635459,0.409372655328896,0.408895797713296,0.408503934886605,0.408275853345098,0.408275853345098, +0.582563350457673,0.582563350457673,0.58241804598945,0.581983392331377,0.58137179102207,0.580683738792369,0.580006404465599,0.579431502833735,0.579074596007827,0.579074596007827, +0.783151992262487,0.783151992262487,0.782942177213303,0.782263039503188,0.781402791658852,0.780479190933969,0.779564807357699,0.778738348508304,0.778142855608925,0.778142855608925, + +00:24:09, +0.0457129266237158,0.0457129266237158,0.045752107833775,0.045748925693399,0.0457139297313587,0.0456607615130388,0.0456040629011276,0.0455573684120107,0.0455311460469475,0.0455311460469475, +0.0457129266237158,0.0457129266237158,0.045752107833775,0.045748925693399,0.0457139297313587,0.0456607615130388,0.0456040629011276,0.0455573684120107,0.0455311460469475,0.0455311460469475, +0.0646721481695252,0.0646721481695252,0.0647123296336309,0.064698946992827,0.0646455970468556,0.0645699159466694,0.0644909276686251,0.0644263915631982,0.0643902421262275,0.0643902421262275, +0.105585938554444,0.105585938554444,0.105624139642,0.105586467969072,0.105492692102546,0.105368538455197,0.105241903534928,0.105139227194716,0.105081792983893,0.105081792983893, +0.173570696092519,0.173570696092519,0.173596557817376,0.173513499381389,0.173350743007417,0.173146293886426,0.172941365510672,0.172775772545857,0.172682906212655,0.172682906212655, +0.274123503477844,0.274123503477844,0.274117601820011,0.273959440576441,0.273691631934398,0.273368670968669,0.273048747127455,0.272789435100729,0.272642505326671,0.272642505326671, +0.410770327537329,0.410770327537329,0.410706233678898,0.410434525241668,0.410018901931063,0.409534710448543,0.40905800966585,0.408666277667291,0.408438273206958,0.408438273206958, +0.582693948181195,0.582693948181195,0.582548658999896,0.582114147337039,0.581502766242801,0.580814969575245,0.580137890127928,0.579563206187479,0.579206434662029,0.579206434662029, +0.783225377771512,0.783225377771512,0.783015630476736,0.782336735991223,0.781476806069665,0.780553551807225,0.779639513038335,0.778813365138564,0.778218093785339,0.778218093785339, + +00:24:10, +0.0458002580161562,0.0458002580161562,0.0458394703520031,0.0458362899398708,0.0458012723454555,0.0457480678927026,0.0456913289228553,0.0456446003997162,0.0456183587047911,0.0456183587047911, +0.0458002580161562,0.0458002580161562,0.0458394703520031,0.0458362899398708,0.0458012723454555,0.0457480678927026,0.0456913289228553,0.0456446003997162,0.0456183587047911,0.0456183587047911, +0.0647732876165403,0.0647732876165403,0.0648134892638293,0.0648001044390814,0.0647467341417212,0.064671021153435,0.0645919979019194,0.064527432463876,0.0644912664141237,0.0644912664141237, +0.105710578342927,0.105710578342927,0.105748780283797,0.105711102526909,0.105617313742436,0.105493142147082,0.105366487975602,0.105263795632282,0.10520635244048,0.10520635244048, +0.173720487474002,0.173720487474002,0.173746328866141,0.173663268167071,0.173500520871579,0.173296085824079,0.173091172080055,0.172925591296695,0.172832732076616,0.172832732076616, +0.274289252920143,0.274289252920143,0.274283318982173,0.274125176952473,0.273857422624085,0.273534533358027,0.273214682774921,0.272955431440681,0.272808536755556,0.272808536755556, +0.410931931892598,0.410931931892598,0.410867815610172,0.410596173761937,0.41018067706299,0.409696641345777,0.409220097337204,0.408828496115144,0.408600568702627,0.408600568702627, +0.582824426382424,0.582824426382424,0.582679152517898,0.582244782745685,0.581633621687526,0.580946080374567,0.58026925560015,0.579694789171299,0.579338152830683,0.579338152830683, +0.783298689639021,0.783298689639021,0.78308901004147,0.782410358540504,0.781550746224425,0.780627838079951,0.779714143775951,0.778888306514505,0.778293256482921,0.778293256482921, + +00:24:11, +0.0458876528905467,0.0458876528905467,0.0459268963155391,0.0459237176412863,0.0458886784607145,0.0458354378419064,0.0457786585872284,0.0457318960905484,0.0457056350997989,0.0457056350997989, +0.0458876528905467,0.0458876528905467,0.0459268963155391,0.0459237176412863,0.0458886784607145,0.0458354378419064,0.0457786585872284,0.0457318960905484,0.0457056350997989,0.0457056350997989, +0.0648744715068331,0.0648744715068331,0.0649146933075633,0.0649013063181582,0.0648479157282923,0.0647721709351449,0.0646931127981866,0.0646285181001422,0.0645923354784335,0.0645923354784335, +0.105835225490977,0.105835225490977,0.105873428274812,0.105835744469921,0.105741942842858,0.105617753400005,0.10549108008208,0.105388371821684,0.105330919697156,0.105330919697156, +0.173870236302131,0.173870236302131,0.173896057385085,0.173812994473208,0.17365025633386,0.173445835457216,0.173240936444974,0.173075367924676,0.172982515863166,0.172982515863166, +0.27445490972747,0.27445490972747,0.274448943568863,0.274290820796738,0.274023120824745,0.273700303306807,0.273380526030985,0.273121335428247,0.272974475852644,0.272974475852644, +0.41109341223055,0.41109341223055,0.411029273594243,0.41075769832998,0.410342328197304,0.409858448186532,0.409382060893146,0.408990590395831,0.408762739997714,0.408762739997714, +0.582954785250548,0.582954785250548,0.582809526732547,0.582375298746514,0.581764357545638,0.581077071379921,0.580400501072023,0.579826251975117,0.579469750703825,0.579469750703825, +0.783371927991687,0.783371927991687,0.783162316034261,0.782483907278184,0.781624612250796,0.78070204988034,0.779788699699261,0.778963172765317,0.778368343831221,0.778368343831221, + +00:24:12, +0.0459751111592876,0.0459751111592876,0.0460143856367935,0.0460112087100559,0.0459761479895378,0.04592287127304,0.0458660518066251,0.0458192553968774,0.0457929751443373,0.0457929751443373, +0.0459751111592876,0.0459751111592876,0.0460143856367935,0.0460112087100559,0.0459761479895378,0.04592287127304,0.0458660518066251,0.0458192553968774,0.0457929751443373,0.0457929751443373, +0.0649756997574893,0.0649756997574893,0.0650159416819572,0.0650025525471706,0.0649491417236291,0.0648733652087798,0.064794272274322,0.0647296483888218,0.0646934492359428,0.0646934492359428, +0.105959879939886,0.105959879939886,0.105998083556392,0.105960393739414,0.105866579344985,0.105742372154949,0.10561567979514,0.10551295570353,0.10545549469443,0.10545549469443, +0.174019942576637,0.174019942576637,0.174045743373965,0.173962678299462,0.173799949393714,0.173595542785003,0.173390658604284,0.173225102428396,0.173132257570756,0.173132257570756, +0.274620473986356,0.274620473986356,0.274614475666549,0.274456372195579,0.274188726622506,0.273865980900846,0.273546276981171,0.273287147148689,0.273140322703054,0.273140322703054, +0.41125476871728,0.41125476871728,0.411190607797067,0.410919099111683,0.410503855499807,0.410020131136484,0.409543900499205,0.409152560674762,0.40892478725757,0.40892478725757, +0.583085024974364,0.583085024974364,0.582939781832539,0.582505695528337,0.581894974006138,0.581207942780501,0.580531626732918,0.579957594788459,0.579601228471098,0.579601228471098, +0.783445092955888,0.783445092955888,0.783235548581575,0.782557382331121,0.781698404276144,0.780776187336291,0.779863180936683,0.779037964019896,0.77844335595949,0.77844335595949, + +00:24:13, +0.0460626327348009,0.0460626327348009,0.0461019382281989,0.0460987630586119,0.0460636808443492,0.0460103680985149,0.0459535084934451,0.0459066782310946,0.0458803787507935,0.0458803787507935, +0.0460626327348009,0.0460626327348009,0.0461019382281989,0.0460987630586119,0.0460636808443492,0.0460103680985149,0.0459535084934451,0.0459066782310946,0.0458803787507935,0.0458803787507935, +0.0650769722856849,0.0650769722856849,0.0651172343042252,0.0651038430433219,0.065050412044882,0.0649746038914103,0.0648954762473107,0.0648308232468298,0.0647946076035272,0.0647946076035272, +0.106084541631101,0.106084541631101,0.106122746070041,0.106085050276849,0.105991223190149,0.105866998353056,0.105740287055718,0.105637547218585,0.105580077372972,0.105580077372972, +0.174169606297381,0.174169606297381,0.174195386832663,0.174112319645623,0.173949600050727,0.173745207806736,0.173540338556971,0.173374794806585,0.173281957197969,0.173281957197969, +0.274785945783301,0.274785945783301,0.274779915361663,0.274621831235302,0.274354240103464,0.274031566225948,0.273711935710971,0.273452866687239,0.273306077391876,0.273306077391876, +0.411416001518621,0.411416001518621,0.41135181838434,0.411080376272668,0.410665259136037,0.410181690361046,0.409705616320648,0.409314407117087,0.409086710647284,0.409086710647284, +0.583215145742278,0.583215145742278,0.583069918006184,0.582635973279573,0.582025471257636,0.58133869476511,0.580662632771812,0.580088817800463,0.579732586321754,0.579732586321754, +0.783518184657714,0.783518184657714,0.783308707809583,0.782630783825881,0.781772122427543,0.780850250575405,0.779937587616335,0.779112680406839,0.778518292996681,0.778518292996681, + +00:24:14, +0.0461502175295311,0.0461502175295311,0.0461895540022103,0.0461863805994091,0.0461512769375948,0.0460979282307644,0.0460410285601094,0.0459941645056123,0.0459678458315756,0.0459678458315756, +0.0461502175295311,0.0461502175295311,0.0461895540022103,0.0461863805994091,0.0461512769375948,0.0460979282307644,0.0460410285601094,0.0459941645056123,0.0459678458315756,0.0459678458315756, +0.0651782890086861,0.0651782890086861,0.0652185710916719,0.0652051777239054,0.065151726609291,0.0650758869001968,0.0649967246342276,0.0649320425911706,0.0648958104981518,0.0648958104981518, +0.106209210506228,0.106209210506228,0.106247415757422,0.106209714023847,0.106115874319839,0.105991631935623,0.105864901804906,0.105762146307772,0.105704667673609,0.105704667673609, +0.174319227464355,0.174319227464355,0.174344987761193,0.174261918511612,0.174099208304613,0.173894830521841,0.173689976302153,0.173524445058102,0.173431614743524,0.173431614743524, +0.274951325204768,0.274951325204768,0.274945262740602,0.274787198002181,0.274519661353678,0.274197059367884,0.273877502305844,0.273618494129101,0.273471740004167,0.273471740004167, +0.411577110800145,0.411577110800145,0.411512905521496,0.411241529978295,0.410826539271273,0.410343126025372,0.409867208522484,0.409476129887699,0.409248510331692,0.409248510331692, +0.583345147742305,0.583345147742305,0.583199935441397,0.582766132188249,0.582155849488351,0.581469327522161,0.580793519377293,0.580219921199876,0.579863824444658,0.579863824444658, +0.78359120322296,0.78359120322296,0.783381793844166,0.782704111888738,0.78184576683177,0.780924239724993,0.780011919866044,0.779187322054446,0.778593155071451,0.778593155071451, + +00:24:15, +0.046237865455945,0.046237865455945,0.0462772328713053,0.0462740612449246,0.046238936181743,0.0461855515822439,0.046128611919061,0.0460817141328646,0.0460553762991132,0.0460553762991132, +0.046237865455945,0.046237865455945,0.0462772328713053,0.0462740612449246,0.046238936181743,0.0461855515822439,0.046128611919061,0.0460817141328646,0.0460553762991132,0.0460553762991132, +0.0652796498438491,0.0652796498438491,0.0653199519616919,0.0653065565063045,0.0652530853341864,0.0651772141523896,0.0650980173522372,0.0650333063389381,0.0649970578368713,0.0649970578368713, +0.106333886507028,0.106333886507028,0.106372092560353,0.106334384922181,0.106240532675699,0.106116272844105,0.105989523983956,0.10588675291217,0.105829265537326,0.105829265537326, +0.174468806077677,0.174468806077677,0.174494546159694,0.174411474897477,0.174248774155213,0.174044410929873,0.173839571839077,0.173674053181939,0.173581230206265,0.173581230206265, +0.275116612337184,0.275116612337184,0.275110517889731,0.274952472582453,0.274684990459175,0.274362460412391,0.27404297685122,0.273784029559444,0.273637310624955,0.273637310624955, +0.411738096727162,0.411738096727162,0.411673869373706,0.411402560393667,0.410987696070533,0.410504438294357,0.410028677269465,0.409637729151232,0.409410186475368,0.409410186475368, +0.583475031162071,0.583475031162071,0.583329834325708,0.582896172442008,0.582286108886115,0.581599841239675,0.58092428673756,0.580350905175056,0.579994943028283,0.579994943028283, +0.783664148777132,0.783664148777132,0.783454806810913,0.782777366645675,0.781919337615314,0.780998154912069,0.780086177813338,0.779261889090722,0.77866794231216,0.77866794231216, + +00:24:16, +0.0463255764265322,0.0463255764265322,0.0463649747479844,0.0463618049076587,0.0463266584892849,0.0462732380654313,0.0462162584827648,0.0461693270253071,0.0461429700658576,0.0461429700658576, +0.0463255764265322,0.0463255764265322,0.0463649747479844,0.0463618049076587,0.0463266584892849,0.0462732380654313,0.0462162584827648,0.0461693270253071,0.0461429700658576,0.0461429700658576, +0.0653810547086202,0.0653810547086202,0.0654213768317697,0.0654079793079924,0.0653544881369884,0.0652785855653288,0.0651993543185937,0.0651346144073161,0.0650983495368302,0.0650983495368302, +0.106458569575419,0.106458569575419,0.106496776420806,0.106459062913784,0.106365198199529,0.106240921020113,0.106114153534273,0.106011366973017,0.105953870905262,0.105953870905262, +0.174618342137594,0.174618342137594,0.174644062028436,0.174560988803393,0.174398297602498,0.174193949030516,0.173989125167119,0.173823619177217,0.173730803585173,0.173730803585173, +0.275281807266942,0.275281807266942,0.275275680895376,0.275117655062321,0.274850227505947,0.274527769445175,0.274208359432492,0.273949473063407,0.273802789339237,0.273802789339237, +0.41189895946472,0.41189895946472,0.411834710105884,0.411563467683621,0.411148729698576,0.410665627332634,0.410190022726081,0.409799205072061,0.409571739242631,0.409571739242631, +0.583604796188817,0.583604796188817,0.583459614846259,0.5830260942281,0.582416249638371,0.581730236105291,0.581054935040425,0.580481769913974,0.580125942260716,0.580125942260716, +0.783737021445447,0.783737021445447,0.783527746835126,0.782850548222382,0.781992834904369,0.781071996263354,0.780160361585456,0.77933638164338,0.778742654846873,0.778742654846873, + +00:24:17, +0.0464133503538056,0.0464133503538056,0.0464527795447714,0.0464496115001348,0.0464144437727348,0.046360987592827,0.0463039681637083,0.0462570030954179,0.0462306270442819,0.0462306270442819, +0.0464133503538056,0.0464133503538056,0.0464527795447714,0.0464496115001348,0.0464144437727348,0.046360987592827,0.0463039681637083,0.0462570030954179,0.0462306270442819,0.0462306270442819, +0.065482503520536,0.065482503520536,0.0655228456194802,0.0655094460465326,0.0654559349352069,0.0653800010564444,0.0653007354506413,0.065235966713578,0.0651996855152621,0.0651996855152621, +0.106583259653474,0.106583259653474,0.106621467280912,0.106583747940742,0.106489870833285,0.106365576405413,0.10623879039742,0.106135988431705,0.106078483718717,0.106078483718717, +0.17476783564448,0.17476783564448,0.174793535367813,0.174710460229662,0.174547778646567,0.174343444823583,0.174138636285786,0.173973143043187,0.173880334879353,0.173880334879353, +0.275446910080399,0.275446910080399,0.275440751843828,0.275282745527952,0.27501537257995,0.274692986551906,0.274373650135024,0.274114824726098,0.273968176231977,0.273968176231977, +0.412059699177608,0.412059699177608,0.41199542788268,0.411724252012738,0.4113096403199,0.410826693304581,0.410351245056569,0.409960557814307,0.409733168797542,0.409733168797542, +0.583734443009394,0.583734443009394,0.583589277189804,0.583155897733392,0.582546271932174,0.581860512306255,0.581185464473311,0.580612515604215,0.580256822329656,0.580256822329656, +0.783809821352834,0.783809821352834,0.783600614041816,0.782923656744261,0.78206625882484,0.781145763905281,0.780234471309342,0.779410799839835,0.778817292803359,0.778817292803359, + +00:24:18, +0.0465011871503014,0.0465011871503014,0.0465406471742136,0.0465374809348997,0.0465022919446301,0.0464488000769549,0.0463917408744016,0.0463447422556973,0.0463183471468818,0.0463183471468818, +0.0465011871503014,0.0465011871503014,0.0465406471742136,0.0465374809348997,0.0465022919446301,0.0464488000769549,0.0463917408744016,0.0463447422556973,0.0463183471468818,0.0463183471468818, +0.065583996197223,0.065583996197223,0.0656243582424882,0.0656109566395786,0.0655574256464419,0.0654814605432563,0.0654021606658136,0.0653373631750866,0.0653010656894907,0.0653010656894907, +0.106707956683422,0.106707956683422,0.106746165082954,0.106708439945295,0.10661455051908,0.106490238941928,0.106363434515115,0.106260617229783,0.106203103919144,0.106203103919144, +0.174917286598835,0.174917286598835,0.174942966178346,0.174859889176713,0.174697217287645,0.174492898309013,0.174288105194712,0.17412262477923,0.174029824088044,0.174029824088044, +0.275611920863876,0.275611920863876,0.275605730821343,0.275447744065477,0.275180425767106,0.27485811181822,0.274538849044146,0.274280084632592,0.274133471388109,0.274133471388109, +0.412220316030354,0.412220316030354,0.412156022868486,0.411884913545337,0.411470428098744,0.410987636374314,0.410512344424903,0.410121787541831,0.409894475303909,0.409894475303909, +0.583863971810268,0.583863971810268,0.583718821542713,0.583285583144365,0.582676175954196,0.581990670029432,0.581315875223258,0.580743142432976,0.580387583422417,0.580387583422417, +0.783882548623933,0.783882548623933,0.783673408555706,0.782996692336427,0.782139609502343,0.781219457963987,0.780308507111647,0.779485143807213,0.778891856309097,0.778891856309097, + +00:24:19, +0.0465890867285796,0.0465890867285796,0.0466285775488823,0.0466254131245241,0.046590202917532,0.0465366754303619,0.0464795765273779,0.0464325444186686,0.0464061302861753,0.0464061302861753, +0.0465890867285796,0.0465890867285796,0.0466285775488823,0.0466254131245241,0.046590202917532,0.0465366754303619,0.0464795765273779,0.0464325444186686,0.0464061302861753,0.0464061302861753, +0.0656855326563979,0.0656855326563979,0.0657259146185484,0.0657125110048736,0.0656589601883835,0.065582963943374,0.0655036298816342,0.0654388037092946,0.0654024899769289,0.0654024899769289, +0.106832660607646,0.106832660607646,0.106870869769371,0.10683313886984,0.106739237199178,0.106614908571735,0.106488085829233,0.106385253308957,0.106327731448151,0.106327731448151, +0.175066695001285,0.175066695001285,0.175092354460682,0.175009275645102,0.174846613526081,0.174642309486873,0.174437531893658,0.174272064384853,0.174179271210611,0.174179271210611, +0.275776839703658,0.275776839703658,0.27577061791414,0.275612650760993,0.2753453871533,0.27502314532972,0.274703956245153,0.274445252867932,0.274298674892536,0.274298674892536, +0.412380810187226,0.412380810187226,0.412316495227433,0.41204545244548,0.41163109319909,0.411148456705695,0.410673320994805,0.410282894418241,0.41005565892528,0.41005565892528, +0.583993382777522,0.583993382777522,0.583848248090971,0.583415150647112,0.582805961890721,0.582120709461299,0.58144616747692,0.58087365058707,0.580518225725928,0.580518225725928, +0.783955203383096,0.783955203383096,0.783746130501234,0.783069655123704,0.782212887062201,0.781293078565323,0.780382469118732,0.779559413672347,0.77896634549127,0.77896634549127, + +00:24:20, +0.0466770490012242,0.0466770490012242,0.0467165705813728,0.0467134079816031,0.0466781766040257,0.0466246135656186,0.0465674750351938,0.0465204094968779,0.0464939763747035,0.0464939763747035, +0.0466770490012242,0.0466770490012242,0.0467165705813728,0.0467134079816031,0.0466781766040257,0.0466246135656186,0.0465674750351938,0.0465204094968779,0.0464939763747035,0.0464939763747035, +0.0657871128158675,0.0657871128158675,0.0658275146655059,0.0658141090602512,0.0657605384788113,0.065684511174497,0.0656051430157162,0.0655402882337442,0.0655039582950792,0.0655039582950792, +0.106957371368683,0.106957371368683,0.106995581282756,0.106957844656927,0.106863930816,0.106739585237065,0.106612744281801,0.106509896611085,0.106452366247505,0.106452366247505, +0.175216060852581,0.175216060852581,0.175241700215594,0.175158619635506,0.174995967362353,0.174791678357356,0.174586916382513,0.174421461859693,0.174328676246548,0.174328676246548, +0.275941666685992,0.275941666685992,0.2759354132084,0.275777465700556,0.275510256824384,0.275188087171971,0.274868971823308,0.274610329517128,0.274463786830126,0.274463786830126, +0.412541181812234,0.412541181812234,0.412476845123394,0.412205868876968,0.411791635784659,0.411309154462325,0.410834174929736,0.410443878606887,0.41021671982495,0.41021671982495, +0.584122676096852,0.584122676096852,0.583977557020179,0.583544600427348,0.582935629927651,0.582250630787951,0.581576341420567,0.581004040252929,0.580648749426735,0.580648749426735, +0.784027785754393,0.784027785754393,0.783818780002549,0.78314254523063,0.782286091629454,0.78136662583485,0.78045635745667,0.779633609561777,0.779040760476771,0.779040760476771, + +00:24:21, +0.0467650738808434,0.0467650738808434,0.046804626184305,0.0468014654187558,0.0467662129167205,0.0467126143953199,0.0466554363104296,0.0466083374028949,0.0465818853250307,0.0465818853250307, +0.0467650738808434,0.0467650738808434,0.046804626184305,0.0468014654187558,0.0467662129167205,0.0467126143953199,0.0466554363104296,0.0466083374028949,0.0465818853250307,0.0465818853250307, +0.0658887365935286,0.0658887365935286,0.0659291583012957,0.0659157507236346,0.0658621604355952,0.0657861021544146,0.0657066999857625,0.0656418166660672,0.0656054705615337,0.0656054705615337, +0.107082088909226,0.107082088909226,0.107120299565855,0.10708255724926,0.106988631312119,0.106864268880303,0.106737409815002,0.106634547078181,0.106577008259123,0.106577008259123, +0.175365384153601,0.175365384153601,0.175391003443977,0.175307921148731,0.175145278797061,0.17494100492078,0.174736258661293,0.174570817203513,0.174478039195476,0.174478039195476, +0.27610640189709,0.27610640189709,0.27610011679027,0.27594218897019,0.275675034866173,0.275352937430507,0.27503389586384,0.274775314665157,0.274628807285718,0.274628807285718, +0.412701431069129,0.412701431069129,0.412637072719985,0.412366163003345,0.411952056018917,0.411469729807549,0.410994906392906,0.410604740270864,0.410377658165959,0.410377658165959, +0.584251851953574,0.584251851953574,0.584106748515556,0.583673932670399,0.583065180250505,0.5823804341951,0.581706397240087,0.581134311616599,0.580779154711,0.580779154711, +0.784100295861604,0.784100295861604,0.783891357183519,0.783215362781458,0.782359223328851,0.781440099897839,0.780530172251241,0.779707731601755,0.779115101392202,0.779115101392202, + +00:24:22, +0.0468531612800705,0.0468531612800705,0.0468927442703235,0.0468895853486264,0.0468543117682504,0.0468006778320845,0.0467434602656893,0.046696328049313,0.0466698570497448,0.0466698570497448, +0.0468531612800705,0.0468531612800705,0.0468927442703235,0.0468895853486264,0.0468543117682504,0.0468006778320845,0.0467434602656893,0.046696328049313,0.0466698570497448,0.0466698570497448, +0.0659904039073682,0.0659904039073682,0.0660308454439427,0.0660174359130374,0.0659638259766948,0.0658877368010058,0.0658083007095657,0.0657433889239849,0.0657070266939742,0.0657070266939742, +0.10720681317212,0.10720681317212,0.107245024561568,0.107207276589695,0.107113338630263,0.106988959443989,0.106862082371172,0.106759204652415,0.10670165742508,0.10670165742508, +0.175514664905343,0.175514664905343,0.175540264146851,0.175457180185705,0.175294547830933,0.175090289177588,0.174885558730138,0.174720130416203,0.174627360057145,0.174627360057145, +0.276271045423125,0.276271045423125,0.276264728745857,0.27610682065588,0.275839721364443,0.275517696190825,0.275198728451943,0.274940208396963,0.274793736344114,0.274793736344114, +0.412861558121402,0.412861558121402,0.412797178180561,0.412526334987897,0.41211235406507,0.411630182904458,0.411155515547265,0.410765479573013,0.410538474111091,0.410538474111091, +0.584380910532622,0.584380910532622,0.584235822761939,0.583803147561216,0.583194613044421,0.582510119868075,0.581836335120985,0.581264464863746,0.580909441764504,0.580909441764504, +0.78417273382823,0.78417273382823,0.783963862167722,0.783288107900154,0.782432282284857,0.781513500879276,0.780603913627941,0.779781779918243,0.779189368363875,0.779189368363875, + +00:24:23, +0.0469413111115632,0.0469413111115632,0.0469809247520981,0.0469777676838838,0.0469424730712741,0.046888803788556,0.0468315468136015,0.0467843813487495,0.0467578914614573,0.0467578914614573, +0.0469413111115632,0.0469413111115632,0.0469809247520981,0.0469777676838838,0.0469424730712741,0.046888803788556,0.0468315468136015,0.0467843813487495,0.0467578914614573,0.0467578914614573, +0.0660921146754632,0.0660921146754632,0.0661325760115619,0.0661191645465627,0.0660655350201596,0.0659894150322395,0.0659099451050081,0.0658450049253083,0.0658086266101718,0.0658086266101718, +0.107331544100362,0.107331544100362,0.107369756212947,0.107332002621242,0.107238052713312,0.107113656870815,0.106986761892802,0.106883869276107,0.106826313687603,0.106826313687603, +0.175663903108932,0.175663903108932,0.175689482325361,0.175606396747478,0.175443774464816,0.17523953112835,0.175034816589316,0.174869401497778,0.174776638831429,0.174776638831429, +0.276435597350234,0.276435597350234,0.276429249161233,0.276271360843574,0.276004316404937,0.275682363538386,0.275363469672779,0.275105010797456,0.274958574090088,0.274958574090088, +0.413021563132288,0.413021563132288,0.412957161668222,0.412686384993653,0.412272530086071,0.411790513915883,0.411316002555509,0.41092609667592,0.410699167822877,0.410699167822877, +0.584509852018547,0.584509852018547,0.584364779943787,0.583932245284363,0.583323928494154,0.582639687991825,0.581966155248388,0.581394500179654,0.581039610772649,0.581039610772649, +0.784245099777483,0.784245099777483,0.784036295078457,0.7833607807104,0.78250526862165,0.781586828903859,0.780677581711974,0.779855754636916,0.779263561517813,0.779263561517813, + +00:24:24, +0.0470295232880047,0.0470295232880047,0.0470691675423237,0.0470660123372226,0.0470306967384756,0.0469769921774028,0.0469196958668192,0.046872497213846,0.046845988472804,0.046845988472804, +0.0470295232880047,0.0470295232880047,0.0470691675423237,0.0470660123372226,0.0470306967384756,0.0469769921774028,0.0469196958668192,0.046872497213846,0.046845988472804,0.046845988472804, +0.0661938688159806,0.0661938688159806,0.0662343499223583,0.0662209365424038,0.066167287484129,0.0660911367661743,0.0660116330900615,0.0659466645879381,0.0659102702279872,0.0659102702279872, +0.107456281637103,0.107456281637103,0.107494494463199,0.107456735287063,0.107362773504299,0.107238361103626,0.107111448322536,0.107008540891734,0.106950976989073,0.106950976989073, +0.175813098765614,0.175813098765614,0.17583865798077,0.175755570835224,0.175592958699685,0.175388730773756,0.175184032239217,0.17501863044838,0.174925875518327,0.174925875518327, +0.276600057764517,0.276600057764517,0.276593678122429,0.276435809619183,0.27616882007336,0.275846939558615,0.275528119611471,0.275269721951513,0.275123320608376,0.275123320608376, +0.413181446264764,0.413181446264764,0.413117023345809,0.412846313183384,0.412432584244612,0.411950723004402,0.41147636758008,0.411086591741916,0.410859739463596,0.410859739463596, +0.584638676595524,0.584638676595524,0.584493620245176,0.584061226024031,0.583453126784083,0.58276913875092,0.58209585780704,0.58152441774923,0.581169661920454,0.581169661920454, +0.784317393832297,0.784317393832297,0.784108656038738,0.783433381335596,0.782578182463124,0.781660084096,0.78075117662826,0.77992965588316,0.779337680979749,0.779337680979749, + +00:24:25, +0.0471177977221039,0.0471177977221039,0.0471574725537211,0.0471543192213627,0.0471189826825643,0.0470652429113185,0.0470079073380202,0.0469606755572687,0.0469341479964453,0.0469341479964453, +0.0471177977221039,0.0471177977221039,0.0471574725537211,0.0471543192213627,0.0471189826825643,0.0470652429113185,0.0470079073380202,0.0469606755572687,0.0469341479964453,0.0469341479964453, +0.0662956662471776,0.0662956662471776,0.0663361670946271,0.0663227518188441,0.0662690832868322,0.0661929019209586,0.0661133645827875,0.0660483678298643,0.0660119574653706,0.0660119574653706, +0.107581025725647,0.107581025725647,0.107619239255678,0.107581474530472,0.107487500946409,0.10736307208542,0.107236141603168,0.107133219441924,0.107075647272025,0.107075647272025, +0.175962251876758,0.175962251876758,0.175987791114468,0.17590470245024,0.175742100536633,0.175537888114622,0.175333205680356,0.175167817268273,0.175075070117966,0.175075070117966, +0.276764426752034,0.276764426752034,0.276758015715443,0.276600167068578,0.276333232455379,0.276011424336902,0.275692678353111,0.275434341943976,0.275287975983683,0.275287975983683, +0.413341207681549,0.413341207681549,0.413276763375907,0.413006119719606,0.412592516703132,0.412110810332338,0.411636610783166,0.411246964933081,0.41102018919527,0.41102018919527, +0.584767384447346,0.584767384447346,0.584622343849806,0.584190089964026,0.583582208098203,0.58289847232955,0.582225442981309,0.581654217757,0.581299595392563,0.581299595392563, +0.784389616115323,0.784389616115323,0.784180945171298,0.783505909898857,0.782651023932889,0.781733266579827,0.780824698501432,0.780003483782074,0.779411726875132,0.779411726875132, + +00:24:26, +0.0472061343265952,0.0472061343265952,0.0472458396990371,0.04724268824905,0.0472073308162754,0.0471535559030222,0.0470961811399076,0.0470489162917087,0.047022369945066,0.047022369945066, +0.0472061343265952,0.0472061343265952,0.0472458396990371,0.04724268824905,0.0472073308162754,0.0471535559030222,0.0470961811399076,0.0470489162917087,0.047022369945066,0.047022369945066, +0.0663975068874011,0.0663975068874011,0.0664380274467532,0.0664246102942566,0.0663709223465885,0.0662947104148305,0.0662151395013375,0.0661501145691667,0.0661136882403617,0.0661136882403617, +0.107705776309448,0.107705776309448,0.107743990533895,0.107706220294934,0.107612234982977,0.107487789759346,0.107360841677648,0.107257904869457,0.107200324479144,0.107200324479144, +0.176111362443854,0.176111362443854,0.176136881727964,0.176053791593944,0.175891199976878,0.175687003151886,0.175482336913371,0.175316961957848,0.175224222630595,0.175224222630595, +0.276928704398808,0.276928704398808,0.276922262026229,0.276764433277596,0.276497553636626,0.2761758179586,0.275857145982753,0.275598870859654,0.275452540300681,0.275452540300681, +0.413500847545109,0.413500847545109,0.413436381920844,0.413165804764578,0.412752327623814,0.412270776061756,0.411796732326699,0.411407216411238,0.411180517179672,0.411180517179672, +0.584895975757431,0.584895975757431,0.584750950940999,0.584318837287781,0.583711172620137,0.583027688911529,0.582354910955183,0.581783900387113,0.581429411373239,0.581429411373239, +0.784461766748929,0.784461766748929,0.784253162598588,0.783578366523018,0.782723793154272,0.781806376479184,0.780898147455841,0.780077238458472,0.779485699329122,0.779485699329122, + +00:24:27, +0.0472945330142394,0.0472945330142394,0.0473342688910445,0.0473311193330569,0.0472957410523699,0.0472419310652585,0.0471845171852098,0.0471372193298823,0.0471106542313761,0.0471106542313761, +0.0472945330142394,0.0472945330142394,0.0473342688910445,0.0473311193330569,0.0472957410523699,0.0472419310652585,0.0471845171852098,0.0471372193298823,0.0471106542313761,0.0471106542313761, +0.0664993906550883,0.0664993906550883,0.0665399308972115,0.0665265118871043,0.0664728045818066,0.0663965621661181,0.0663169577639524,0.0662519047240145,0.0662154624710899,0.0662154624710899, +0.107830533332112,0.107830533332112,0.107868748241508,0.107830972524067,0.107736975557492,0.107612514068705,0.107485548489074,0.107382597117267,0.107325008553269,0.107325008553269, +0.176260430468514,0.176260430468514,0.176285929822888,0.176202838267872,0.176040257021759,0.175836075886607,0.175631425939025,0.175466064517617,0.175373333056587,0.175373333056587, +0.277092890790823,0.277092890790823,0.277086417140706,0.276928608332032,0.276661783702692,0.276340120509026,0.276021522585418,0.275763308783319,0.275617013644004,0.275617013644004, +0.413660366017648,0.413660366017648,0.413595879142695,0.413325368480303,0.412912017168585,0.41243062035447,0.411956732372361,0.411567346337962,0.411340723578321,0.411340723578321, +0.585024450708818,0.585024450708818,0.5848794417017,0.584447468178351,0.583840020533128,0.583156788680292,0.582484261912277,0.581913465823342,0.58155911004637,0.58155911004637, +0.784533845855206,0.784533845855206,0.78432530844278,0.783650751330631,0.782796490250318,0.781879413917632,0.78097152361555,0.780150920036884,0.779559598466594,0.779559598466594, + +00:24:28, +0.0473829936978236,0.0473829936978236,0.0474227600425429,0.0474196123861819,0.0473842133036354,0.0473303683107984,0.0472729153866812,0.0472255845845313,0.0471990007681111,0.0471990007681111, +0.0473829936978236,0.0473829936978236,0.0474227600425429,0.0474196123861819,0.0473842133036354,0.0473303683107984,0.0472729153866812,0.0472255845845313,0.0471990007681111,0.0471990007681111, +0.0666013174687662,0.0666013174687662,0.0666418773645671,0.0666284565159402,0.0665747299109854,0.0664984570932388,0.0664188192889626,0.0663537382126665,0.0663172800757738,0.0663172800757738, +0.107955296737397,0.107955296737397,0.107993512322329,0.107955731161636,0.107861722613593,0.10773724495695,0.107610261980699,0.107507296128438,0.107449699437392,0.107449699437392, +0.17640945595247,0.17640945595247,0.176434935400989,0.176351842473685,0.176189271672734,0.175985106319966,0.1757804727582,0.175615124948218,0.17552240139644,0.17552240139644, +0.277256986014024,0.277256986014024,0.277250481144755,0.277092692317645,0.276825922739132,0.276504332073458,0.276185808246088,0.275927655799711,0.275781396098256,0.275781396098256, +0.413819763261121,0.413819763261121,0.413755255203275,0.413484811028531,0.413071585499117,0.41259034337204,0.412116611081577,0.411727354874571,0.411500808552482,0.411500808552482, +0.585152809484173,0.585152809484173,0.585007816314481,0.584575982818416,0.583968752020043,0.583285771818899,0.582613496035827,0.582042914249084,0.581688691595468,0.581688691595468, +0.784605853555965,0.784605853555965,0.784397382825766,0.783723064443968,0.782869115343791,0.781952379018449,0.781044827104341,0.780224528641553,0.779633424412138,0.779633424412138, + +00:24:29, +0.0474715162901617,0.0474715162901617,0.0475113130663586,0.0475081673212505,0.0474727474828861,0.047418867552439,0.0473613756571021,0.0473140119684233,0.0472874094680318,0.0472874094680318, +0.0474715162901617,0.0474715162901617,0.0475113130663586,0.0475081673212505,0.0474727474828861,0.047418867552439,0.0473613756571021,0.0473140119684233,0.0472874094680318,0.0472874094680318, +0.0667032872470519,0.0667032872470519,0.0667438667674747,0.0667304440994072,0.0666766982527134,0.0666003951147001,0.0665207239947883,0.0664556149534712,0.0664191409727216,0.0664191409727216, +0.10808006646921,0.10808006646921,0.108118282720316,0.108080496151561,0.107986476095067,0.107861982367682,0.107734982095925,0.107632001846206,0.107574397074653,0.107574397074653, +0.176558438897574,0.176558438897574,0.176583898464138,0.176500804213161,0.176338243931383,0.176134094453267,0.175929477371902,0.175764143250407,0.175671427650774,0.175671427650774, +0.27742099015432,0.27742099015432,0.277414454124214,0.277256685320154,0.276989970831464,0.27666845273714,0.276350003049712,0.276091911993532,0.275945687748004,0.275945687748004, +0.413979039437223,0.413979039437223,0.413914510264149,0.413644132570754,0.413231032776831,0.41274994527577,0.412276368615523,0.411887242182135,0.411660772263174,0.411660772263174, +0.585281052265784,0.585281052265784,0.585136074961536,0.58470438139028,0.584097367263376,0.583414638510038,0.582742613508695,0.582172245847362,0.581818156203671,0.581818156203671, +0.784677789972736,0.784677789972736,0.784469385869159,0.783795305985024,0.782941668557173,0.782025271904632,0.781118058045713,0.780298064396442,0.779707177290061,0.779707177290061, + +00:24:30, +0.0475601007040943,0.0475601007040943,0.047599927875345,0.0475967840511153,0.0475613435029629,0.0475074287030043,0.0474498979092789,0.0474025013943519,0.0473758802439253,0.0473758802439253, +0.0475601007040943,0.0475601007040943,0.047599927875345,0.0475967840511153,0.0475613435029629,0.0475074287030043,0.0474498979092789,0.0474025013943519,0.0473758802439253,0.0473758802439253, +0.0668052999086523,0.0668052999086523,0.0668458990246793,0.066832474556238,0.0667787095256691,0.066702376149099,0.0666226717999394,0.0665575348648663,0.0665210450803311,0.0665210450803311, +0.108204842471608,0.108204842471608,0.108243059379582,0.108205267437907,0.108111235945855,0.107986726244655,0.107859708778304,0.107756714213957,0.107699101408347,0.107699101408347, +0.176707379305796,0.176707379305796,0.176732819014323,0.176649723488196,0.176487173799404,0.17628304028793,0.176078439781257,0.175913119425066,0.175820411820329,0.175820411820329, +0.277584903297576,0.277584903297576,0.277578336164885,0.277420587425239,0.277153928065165,0.276832482585277,0.276514107081201,0.27625607744945,0.27610988867778,0.27610988867778, +0.414138194707396,0.414138194707396,0.414073644486623,0.413803333268213,0.413390359162891,0.412909426226714,0.41243600513512,0.41204700842147,0.411820614871159,0.411820614871159, +0.585409179235567,0.585409179235567,0.585264217824688,0.584832664075874,0.584225866445246,0.583543388936019,0.582871614513369,0.582301460800823,0.581947504053743,0.581947504053743, +0.784749655226776,0.784749655226776,0.784541317694295,0.783867476075513,0.78301415001267,0.782098092698898,0.781191216562883,0.780371527425229,0.779780857224384,0.779780857224384, + +00:24:31, +0.0476487468524898,0.0476487468524898,0.0476886043823829,0.0476854624886562,0.0476500012767341,0.0475960516753451,0.0475384820560452,0.0474910527751371,0.0474644130086044,0.0474644130086044, +0.0476487468524898,0.0476487468524898,0.0476886043823829,0.0476854624886562,0.0476500012767341,0.0475960516753451,0.0475384820560452,0.0474910527751371,0.0474644130086044,0.0474644130086044, +0.0669073553723645,0.0669073553723645,0.0669479740550154,0.0669345478052551,0.0668807636486206,0.0668044001151223,0.0667246626230151,0.0666594978653792,0.0666229923170893,0.0666229923170893, +0.1083296246888,0.1083296246888,0.108367842244386,0.108330044964893,0.108236002110044,0.108111476531771,0.10798444197154,0.107881433175228,0.107823812381916,0.107823812381916, +0.176856277179228,0.176856277179228,0.176881697053653,0.176798600300808,0.176636061278617,0.176431943825499,0.176227359987512,0.176062053473195,0.175969353905969,0.175969353905969, +0.27774872552962,0.27774872552962,0.277742127352531,0.27758439871854,0.277317794525676,0.276996421703035,0.276678120425429,0.276420152252097,0.276273998972081,0.276273998972081, +0.414297229232828,0.414297229232828,0.414232658031752,0.413962413281894,0.413549564818209,0.413068786385671,0.412595520801039,0.412206653753142,0.411980336536953,0.411980336536953, +0.585537190575067,0.585537190575067,0.585392245085386,0.584960831056758,0.584354249747401,0.583672023278782,0.583000499231967,0.582430559291744,0.582076735328075,0.582076735328075, +0.784821449439061,0.784821449439061,0.784613178422234,0.783939574836873,0.783086559832204,0.782170841523683,0.781264302778789,0.780444917851312,0.77985446433885,0.77985446433885, + +00:24:32, +0.0477374546482437,0.0477374546482437,0.0477773425003811,0.0477742025467807,0.0477387207170955,0.0476847363823392,0.0476271280102609,0.0475796660236256,0.047553007674909,0.047553007674909, +0.0477374546482437,0.0477374546482437,0.0477773425003811,0.0477742025467807,0.0477387207170955,0.0476847363823392,0.0476271280102609,0.0475796660236256,0.047553007674909,0.047553007674909, +0.0670094535570753,0.0670094535570753,0.0670500917774078,0.0670366637653709,0.0669828605404257,0.0669064669315464,0.0668266963827044,0.0667615038736267,0.0667249826015729,0.0667249826015729, +0.108454413065141,0.108454413065141,0.108492631259137,0.108454828676883,0.108360774531873,0.108236233173084,0.108109181619485,0.108006158673706,0.107948529938955,0.107948529938955, +0.177005132520076,0.177005132520076,0.177030532584351,0.17694743465313,0.176784906370956,0.176580805067634,0.176376237992033,0.176210945395916,0.176118253908678,0.176118253908678, +0.277912456936242,0.277912456936242,0.277905827772872,0.27774811928566,0.277481570298398,0.277160270175544,0.276842043167233,0.27658413648607,0.276438018715369,0.276438018715369, +0.414456143174453,0.414456143174453,0.414391551060338,0.414121372772528,0.413708649903443,0.413228025913191,0.412754915773699,0.412366178337467,0.412139937420818,0.412139937420818, +0.585665086465455,0.585665086465455,0.585520156924711,0.58508888251412,0.584482517351214,0.583800541719894,0.583129267846233,0.58255954150203,0.582205850208687,0.582205850208687, +0.784893172730294,0.784893172730294,0.784684968173757,0.784011602390263,0.783158898137425,0.782243518501145,0.781337316816088,0.780518235797809,0.779927998756918,0.779927998756918, + +00:24:33, +0.0478262240042797,0.0478262240042797,0.0478661421422759,0.0478630041384246,0.0478275017369705,0.0477734827368923,0.0477158356848135,0.047668341052691,0.0476416641557054,0.0476416641557054, +0.0478262240042797,0.0478262240042797,0.0478661421422759,0.0478630041384246,0.0478275017369705,0.0477734827368923,0.0477158356848135,0.047668341052691,0.0476416641557054,0.0476416641557054, +0.0671115943817616,0.0671115943817616,0.0671522521108708,0.0671388223555876,0.0670850001200323,0.0670085765172374,0.0669287729977859,0.0668635528083154,0.0668270158524478,0.0668270158524478, +0.108579207545137,0.108579207545137,0.108617426368392,0.108579618518393,0.108485553155727,0.108360996112793,0.108233927666141,0.108130890653228,0.108073254023205,0.108073254023205, +0.177153945330666,0.177153945330666,0.177179325608761,0.177096226547413,0.176933709078476,0.176729624016115,0.176525073796306,0.176359795194471,0.17626711182956,0.17626711182956, +0.278076097603188,0.278076097603188,0.278069437511589,0.27791174921216,0.27764525546869,0.277324028087894,0.277005875391416,0.276748030235927,0.27660194799207,0.27660194799207, +0.414614936692952,0.414614936692952,0.414550323732926,0.414280211900597,0.413867614579,0.413387144969568,0.41291419021327,0.41252558233451,0.41229941768277,0.41229941768277, +0.585792867087532,0.585792867087532,0.585647953523369,0.585216818628774,0.584610669437691,0.583928944440553,0.583257920537539,0.582688407613214,0.582334848877226,0.582334848877226, +0.784964825220903,0.784964825220903,0.784756687069374,0.784083558856567,0.783231165049701,0.782316123753164,0.781410258797157,0.780591481387555,0.780001460601766,0.780001460601766, + +00:24:34, +0.0479150548335494,0.0479150548335494,0.0479550032210323,0.0479518671765515,0.0479163442493107,0.0478622906519377,0.0478046049926179,0.0477570777752341,0.047730382363887,0.047730382363887, +0.0479150548335494,0.0479150548335494,0.0479550032210323,0.0479518671765515,0.0479163442493107,0.0478622906519377,0.0478046049926179,0.0477570777752341,0.047730382363887,0.047730382363887, +0.06721377776549,0.06721377776549,0.0672544549745089,0.0672410234949974,0.0671871823064776,0.0671107287911511,0.0670308923871276,0.0669656445882409,0.0669290919884695,0.0669290919884695, +0.108704008073442,0.108704008073442,0.108742227516858,0.108704414434084,0.108610337926141,0.10848576529525,0.10835868005566,0.108255629057778,0.10819798457856,0.10819798457856, +0.17730271561344,0.17730271561344,0.177328076129342,0.177244975986026,0.177082469403349,0.17687840067284,0.176673867401935,0.176508602870221,0.17641592766984,0.17641592766984, +0.278239647616166,0.278239647616166,0.278232956654326,0.278075288583561,0.277808850121877,0.277487695525139,0.277169617182738,0.276911833586193,0.276765786886572,0.276765786886572, +0.414773609948752,0.414773609948752,0.414708976209812,0.414438930826326,0.414026459005035,0.413546143714848,0.413073344279669,0.412684865904087,0.412458777482573,0.412458777482573, +0.58592053262173,0.58592053262173,0.5857756350617,0.585344639581169,0.584738706187466,0.584057231621583,0.58338645748689,0.582817157806461,0.582463731514973,0.582463731514973, +0.78503640703104,0.78503640703104,0.784828335229316,0.784155444356395,0.783303360690126,0.782388657401342,0.781483128844097,0.780664654743109,0.780074849996294,0.780074849996294, + +00:24:35, +0.0480039470490331,0.0480039470490331,0.0480439256496435,0.0480407915741536,0.048005248167096,0.0479511600404367,0.0478934358466167,0.0478458761041834,0.0478191622123748,0.0478191622123748, +0.0480039470490331,0.0480039470490331,0.0480439256496435,0.0480407915741536,0.048005248167096,0.0479511600404367,0.0478934358466167,0.0478458761041834,0.0478191622123748,0.0478191622123748, +0.0673160036274172,0.0673160036274172,0.0673567002875162,0.0673432671027819,0.067289407018889,0.0672129236723329,0.0671330544696872,0.0670677791322886,0.0670312109284829,0.0670312109284829, +0.108828814594859,0.108828814594859,0.108867034649388,0.108829216368767,0.108735128787798,0.108610540664951,0.10848343873234,0.108380373831492,0.108322721549062,0.108322721549062, +0.177451443370959,0.177451443370959,0.177476784148669,0.177393682971453,0.177231187347861,0.177027135039823,0.176822618810645,0.176657368424644,0.17656470143086,0.17656470143086, +0.278403107060844,0.278403107060844,0.278396385286681,0.278238737485344,0.27797235434324,0.277651272572293,0.277333268625927,0.277075546621353,0.27692953548323,0.27692953548323, +0.414932163102028,0.414932163102028,0.414867508651039,0.414597529709692,0.414185183341451,0.413705022308825,0.413232378132564,0.412844029205764,0.412618016979744,0.412618016979744, +0.58604808324811,0.58604808324811,0.585903201719673,0.585472345551384,0.584866627780805,0.584185403443445,0.58351487887492,0.582945792262564,0.582592498302836,0.582592498302836, +0.785107918280584,0.785107918280584,0.784899912773544,0.784227259010081,0.783375485179519,0.782461119567005,0.78155592707873,0.78073775598675,0.780148167063121,0.780148167063121, + +00:24:36, +0.0480929005637396,0.0480929005637396,0.0481329093411317,0.0481297772442521,0.0480942134033349,0.0480400908153791,0.0479823281597808,0.047934735952495,0.0479080036141173,0.0479080036141173, +0.0480929005637396,0.0480929005637396,0.0481329093411317,0.0481297772442521,0.0480942134033349,0.0480400908153791,0.0479823281597808,0.047934735952495,0.0479080036141173,0.0479080036141173, +0.0674182718867896,0.0674182718867896,0.0674589879691768,0.0674455530982129,0.067391674176483,0.0673151610799178,0.0672352591645117,0.0671699563594332,0.0671333725914221,0.0671333725914221, +0.108953627054335,0.108953627054335,0.108991847710983,0.108954024267399,0.108859925685528,0.108735322166542,0.108608203640629,0.108505124918652,0.108447464878899,0.108447464878899, +0.177600128605895,0.177600128605895,0.177625449669432,0.177542347506294,0.177379862914418,0.177175827119197,0.176971328024273,0.176806091859341,0.176713433114081,0.176713433114081, +0.278566476022848,0.278566476022848,0.278559723494215,0.27840209600295,0.278135768218022,0.277814759314329,0.277496829805669,0.277239169425857,0.277093193866361,0.277093193866361, +0.415090596312704,0.415090596312704,0.415025921216397,0.414756008710418,0.414343787747898,0.413863780911044,0.413391291931374,0.413003072398858,0.41277713633355,0.41277713633355, +0.586175519146367,0.586175519146367,0.586030653676891,0.585599936719128,0.584994434397605,0.584313460086227,0.583643184881898,0.583074311161952,0.582721149421359,0.582721149421359, +0.785179359089142,0.785179359089142,0.784971419821745,0.784299002937686,0.783447538638422,0.782533510371203,0.781628653622601,0.78081078524048,0.78022141192459,0.78022141192459, + +00:24:37, +0.0481819152907067,0.0481819152907067,0.0482219542085484,0.0482188240998972,0.0481832398710649,0.0481290828897832,0.048071281845109,0.0480236572331532,0.0479969064820909,0.0479969064820909, +0.0481819152907067,0.0481819152907067,0.0482219542085484,0.0482188240998972,0.0481832398710649,0.0481290828897832,0.048071281845109,0.0480236572331532,0.0479969064820909,0.0479969064820909, +0.0675205824629435,0.0675205824629435,0.0675613179388645,0.0675478814006516,0.0674939836985664,0.0674174409331303,0.0673375063907379,0.0672721761887389,0.0672355768963109,0.0672355768963109, +0.109078445396969,0.109078445396969,0.10911666664679,0.109078838075086,0.108984728564309,0.108860109744818,0.108732974725122,0.108629882263689,0.10857221451241,0.10857221451241, +0.177748771321039,0.177748771321039,0.177774072694438,0.177690969593265,0.177528496105539,0.177324476913209,0.177119995044779,0.176954773176025,0.176862122721085,0.176862122721085, +0.278729754587764,0.278729754587764,0.278722971362447,0.278565364221778,0.278299091831425,0.277978155836184,0.277660300806614,0.277402702084116,0.277256762120244,0.277256762120244, +0.415248909740451,0.415248909740451,0.415184214065426,0.414914367987977,0.41450227238378,0.414022419680798,0.413550085835268,0.41316199564244,0.41293613570301,0.41293613570301, +0.586302840495831,0.586302840495831,0.586157991112591,0.585727413263746,0.585122126217397,0.584441401729654,0.583771375687724,0.583202714684686,0.582849685050716,0.582849685050716, +0.785250729576049,0.785250729576049,0.785042856493333,0.784370676258997,0.783519521187107,0.782605829934712,0.781701308596982,0.780883742626026,0.780294584702765,0.780294584702765, + +00:24:38, +0.0482709911430016,0.0482709911430016,0.048311060164974,0.0483079320541683,0.0482723274833525,0.0482181361766964,0.0481602968156292,0.0481126398591706,0.0480858707293004,0.0480858707293004, +0.0482709911430016,0.0482709911430016,0.048311060164974,0.0483079320541683,0.0482723274833525,0.0482181361766964,0.0481602968156292,0.0481126398591706,0.0480858707293004,0.0480858707293004, +0.0676229352753051,0.0676229352753051,0.067663690116043,0.0676502519295492,0.0675963355045353,0.0675197631512848,0.0674397960675919,0.0673744385393592,0.0673378237622621,0.0673378237622621, +0.109203269568003,0.109203269568003,0.109241491402105,0.109203657737077,0.109109537369263,0.108984903344717,0.108857751930561,0.10875464581118,0.10869697039408,0.10869697039408, +0.177897371519296,0.177897371519296,0.177922653226607,0.177839549235194,0.177677086923859,0.177473084424224,0.177268619874234,0.177103412376529,0.177010770253567,0.177010770253567, +0.278892942841135,0.278892942841135,0.278886128976854,0.278728542227187,0.278462325268611,0.278141462222753,0.277823681713373,0.277566144680506,0.277420240329123,0.277420240329123, +0.415407103544688,0.415407103544688,0.415342387357414,0.41507260770159,0.414660637408246,0.414180938777132,0.413708760003168,0.413320799095329,0.413095015246896,0.413095015246896, +0.586430047475462,0.586430047475462,0.586285214205642,0.585854775364216,0.585249703419347,0.584569228553081,0.583899451471932,0.58333100301046,0.582978105370718,0.582978105370718, +0.78532202986037,0.78532202986037,0.785114222907453,0.784442279093532,0.783591432945569,0.782678078378034,0.781773892122867,0.780956628264837,0.780367685519435,0.780367685519435, + +00:24:39, +0.0483601280337209,0.0483601280337209,0.0484002271235191,0.0483971010201744,0.0483614761532938,0.0483072505891952,0.0482493729843979,0.0482016837435884,0.0481748962687788,0.0481748962687788, +0.0483601280337209,0.0483601280337209,0.0484002271235191,0.0483971010201744,0.0483614761532938,0.0483072505891952,0.0482493729843979,0.0482016837435884,0.0481748962687788,0.0481748962687788, +0.0677253302433903,0.0677253302433903,0.0677661044202656,0.0677526646044464,0.0676987295138756,0.0676221276537849,0.0675421281143894,0.0674767433305372,0.0674401131084782,0.0674401131084782, +0.109328099512828,0.109328099512828,0.109366321922368,0.109328483198771,0.109234352045661,0.109109702911326,0.108982535201836,0.10887941550585,0.108821732468541,0.108821732468541, +0.178045929203685,0.178045929203685,0.178071191268973,0.177988086435026,0.177825635372125,0.177621649654718,0.17741720251483,0.177252009462804,0.177159375713342,0.177159375713342, +0.279056040868464,0.279056040868464,0.279049196422872,0.278891630104494,0.278625468614702,0.278304678558894,0.277986972610516,0.277729497299363,0.277583628577202,0.277583628577202, +0.415565177884587,0.415565177884587,0.415500441251399,0.415230728010229,0.414818882980199,0.414339338358842,0.413867314593747,0.413479482916101,0.413253775123735,0.413253775123735, +0.586557140263857,0.586557140263857,0.586412323134551,0.585982023199153,0.585377166182254,0.584696940735503,0.584027412413691,0.583459176318604,0.583106410560809,0.583106410560809, +0.785393260060899,0.785393260060899,0.785185519182979,0.784513811560534,0.783663274033533,0.782750255821396,0.781846404320978,0.781029442278087,0.780440714496112,0.780440714496112, + +00:24:40, +0.0484493258759912,0.0484493258759912,0.0484894549973238,0.0484863309110548,0.0484506857940146,0.0483964260403854,0.0483385102645009,0.048290788799477,0.0482639830135883,0.0482639830135883, +0.0484493258759912,0.0484493258759912,0.0484894549973238,0.0484863309110548,0.0484506857940146,0.0483964260403854,0.0483385102645009,0.048290788799477,0.0482639830135883,0.0482639830135883, +0.0678277672868049,0.0678277672868049,0.0678685607711755,0.0678551193449739,0.0678011656461626,0.067724534360124,0.0676445024505355,0.0675790904816052,0.0675424448542508,0.0675424448542508, +0.109452935176978,0.109452935176978,0.109491158153165,0.109453314405711,0.109359172538919,0.109234508389877,0.109107324483982,0.109004191292572,0.108946500680575,0.108946500680575, +0.178194444377336,0.178194444377336,0.178219686824683,0.178136581195817,0.177974141453202,0.177770172607287,0.17756574296887,0.177400564436912,0.177307939102339,0.177307939102339, +0.279219048755212,0.279219048755212,0.279212173785895,0.279054627938975,0.278788521954776,0.278467804929421,0.278150173582579,0.277892760024984,0.27774692694865,0.27774692694865, +0.415723132919066,0.415723132919066,0.415658375906168,0.415388729072616,0.414977009258289,0.414497618584474,0.414025749765428,0.413638047263081,0.413412415491802,0.413412415491802, +0.586684119039251,0.586684119039251,0.58653931807746,0.586109156946804,0.585504514684555,0.584824538455546,0.584155258691808,0.583587234788084,0.583234600800069,0.583234600800069, +0.785464420296159,0.785464420296159,0.785256745438513,0.784585273778979,0.783735044570452,0.782822362384755,0.781918845311762,0.781102184786678,0.780513671754034,0.780513671754034, + +00:24:41, +0.048538584582969,0.048538584582969,0.0485787436995588,0.0485756216399785,0.0485399563186707,0.048485662443403,0.0484277085690535,0.0483799549399358,0.0483531308768198,0.0483531308768198, +0.048538584582969,0.048538584582969,0.0485787436995588,0.0485756216399785,0.0485399563186707,0.048485662443403,0.0484277085690535,0.0483799549399358,0.0483531308768198,0.0483531308768198, +0.0679302463252444,0.0679302463252444,0.0679710590885056,0.0679576160708517,0.0679036438210617,0.0678269831898849,0.0677469189955246,0.0676814799119849,0.0676448189189609,0.0676448189189609, +0.109577776506136,0.109577776506136,0.109616000040228,0.109578151303584,0.109483998794599,0.10935931972575,0.10923211972218,0.109128973116362,0.109071274975105,0.109071274975105, +0.178342917043496,0.178342917043496,0.178368139896998,0.178285033520738,0.178122605170065,0.177918653284636,0.177714241238774,0.177549077301035,0.177456460422605,0.177456460422605, +0.279381966586798,0.279381966586798,0.279375061151276,0.279217535815864,0.278951485373874,0.278630841419112,0.278313284714054,0.278055932941631,0.277910135527597,0.277910135527597, +0.415880968806795,0.415880968806795,0.415816191480261,0.415546611047224,0.41513501640092,0.414655779612327,0.414184065676391,0.413796492294349,0.413570936509131,0.413570936509131, +0.586810983979513,0.586810983979513,0.586666199212148,0.586236176785059,0.585631749104323,0.584952021891476,0.584282990484725,0.583715178597502,0.583362676267216,0.583362676267216, +0.785535510684407,0.785535510684407,0.785327901792391,0.784656665867571,0.78380674467551,0.782894398187796,0.781991215215396,0.781174855911236,0.780586557414165,0.780586557414165, + +00:24:42, +0.0486279040678414,0.0486279040678414,0.0486680931434248,0.0486649731201451,0.0486292876404482,0.0485749597114135,0.0485169678112006,0.0484691820780936,0.0484423397715938,0.0484423397715938, +0.0486279040678414,0.0486279040678414,0.0486680931434248,0.0486649731201451,0.0486292876404482,0.0485749597114135,0.0485169678112006,0.0484691820780936,0.0484423397715938,0.0484423397715938, +0.0680327672784941,0.0680327672784941,0.0680735992920786,0.0680601547018898,0.0680061639583273,0.0679294740627401,0.0678493776689409,0.0677839115411874,0.0677472352220788,0.0677472352220788, +0.109702623446128,0.109702623446128,0.109740847529433,0.109702993838223,0.109608830758406,0.109484136864468,0.109356920861759,0.109253760922386,0.109196055297204,0.109196055297204, +0.178491347205523,0.178491347205523,0.178516550489289,0.178433443413069,0.178271026525802,0.178067091689586,0.177862697327076,0.177697548057468,0.1776049396763,0.1776049396763, +0.279544794448599,0.279544794448599,0.279537858604324,0.279380353820354,0.279114358956994,0.278793788112702,0.278476306089396,0.278219016133525,0.278073254398135,0.278073254398135, +0.416038685706194,0.416038685706194,0.415973888131967,0.415704374092277,0.415292904566246,0.414813821600451,0.414342262484565,0.41395481816774,0.413729338333507,0.413729338333507, +0.586937735262152,0.586937735262152,0.586792966716033,0.58636308289144,0.585758869619268,0.585079391221197,0.584410607970522,0.583843007925101,0.583490637140606,0.583490637140606, +0.785606531343631,0.785606531343631,0.785398988362681,0.784727987944746,0.783878374467618,0.782966363349932,0.782063514151782,0.781247455772118,0.780659371597195,0.780659371597195, + +00:24:43, +0.0487172842438259,0.0487172842438259,0.0487575032421538,0.0487543852647852,0.0487186796725637,0.0486643177576131,0.0486062879041172,0.0485584701271092,0.0485316096110602,0.0485316096110602, +0.0487172842438259,0.0487172842438259,0.0487575032421538,0.0487543852647852,0.0487186796725637,0.0486643177576131,0.0486062879041172,0.0485584701271092,0.0485316096110602,0.0485316096110602, +0.0681353300664289,0.0681353300664289,0.0681761813018067,0.0681627351579876,0.0681087259778038,0.0680320068984513,0.0679518783904576,0.0678863852888132,0.0678496936831641,0.0678496936831641, +0.109827475942925,0.109827475942925,0.109865700566801,0.109827841955606,0.109733668376192,0.109608959751699,0.109481727848189,0.109378554655951,0.109320841592089,0.109320841592089, +0.178639734866884,0.178639734866884,0.178664918605041,0.178581810876206,0.178419405523615,0.178215487825071,0.178011111236422,0.17784597670862,0.1777533768657,0.1777533768657, +0.279707532425948,0.279707532425948,0.279700566230306,0.279543082037592,0.27927714278909,0.278956645094885,0.27863923779302,0.278382009684848,0.278236283644318,0.278236283644318, +0.416196283775434,0.416196283775434,0.416131466019326,0.415862018365748,0.415450673912175,0.414971744706652,0.414500340347634,0.41411302504084,0.413887621122471,0.413887621122471, +0.587064373064315,0.587064373064315,0.586919620766173,0.586489875443114,0.585885876406741,0.585206646622249,0.584538111326919,0.583970722948759,0.583618483598232,0.583618483598232, +0.785677482391553,0.785677482391553,0.785470005267183,0.784799240128673,0.783949934065421,0.783038257990306,0.782135742240554,0.781319984489405,0.780732114423543,0.780732114423543, + +00:24:44, +0.048806725024171,0.048806725024171,0.0488469739090085,0.0488438579871599,0.0488081323282648,0.0487537364952283,0.0486956687610087,0.0486478190001712,0.048620940308399,0.048620940308399, +0.048806725024171,0.048806725024171,0.0488469739090085,0.0488438579871599,0.0488081323282648,0.0487537364952283,0.0486956687610087,0.0486478190001712,0.048620940308399,0.048620940308399, +0.0682379346090136,0.0682379346090136,0.0682788050376919,0.0682653573591342,0.068211329799425,0.06813458161687,0.0680544210798376,0.0679889010745519,0.0679521942218657,0.0679521942218657, +0.109952333942642,0.109952333942642,0.109990559098498,0.109952695601856,0.109858511593952,0.109733788333256,0.109606540627088,0.109503354262514,0.109445633805124,0.109445633805124, +0.178788080031162,0.178788080031162,0.178813244247847,0.178730135913652,0.178567742166815,0.178363841694136,0.178159482969572,0.177994363257013,0.177901771993193,0.177901771993193, +0.279870180604137,0.279870180604137,0.279863184114447,0.279705720552687,0.279439836955078,0.279119412450317,0.2788020799093,0.278544913679744,0.278399223350159,0.278399223350159, +0.416353763172438,0.416353763172438,0.41628892530013,0.416019544025366,0.415608324596364,0.415129549088485,0.414658299423037,0.414271113070993,0.414045785033318,0.414045785033318, +0.587190897562789,0.587190897562789,0.587046161539263,0.586616554616883,0.586012769643731,0.585333788271816,0.584665500731276,0.584098323845996,0.583746215817729,0.583746215817729, +0.785748363945627,0.785748363945627,0.78554095262343,0.784870422537253,0.784021423587294,0.783110082227794,0.782207899601074,0.781392442182911,0.780804786013356,0.780804786013356, + +00:24:45, +0.0488962263221566,0.0488962263221566,0.0489365050572829,0.048933391200562,0.0488976455208298,0.0488432158375167,0.0487851102951108,0.0487372286104988,0.0487103317768201,0.0487103317768201, +0.0488962263221566,0.0488962263221566,0.0489365050572829,0.048933391200562,0.0488976455208298,0.0488432158375167,0.0487851102951108,0.0487372286104988,0.0487103317768201,0.0487103317768201, +0.0683405808263027,0.0683405808263027,0.0683814704198258,0.0683680212254085,0.0683139753432143,0.0682371981379369,0.068157005656933,0.0680914588181827,0.0680547367579217,0.0680547367579217, +0.110077197391539,0.110077197391539,0.110115423070833,0.110077554723236,0.109983360357825,0.109858622555097,0.109731359144218,0.109628159687671,0.109570431881815,0.109570431881815, +0.178936382702048,0.178936382702048,0.178961527421415,0.178878418529023,0.178716036458826,0.178512153299938,0.178307812529399,0.178142707705284,0.178050125061284,0.178050125061284, +0.280032739068414,0.280032739068414,0.280025712341928,0.279868269450703,0.279602441539829,0.279282090263608,0.278964832522572,0.278707728202317,0.278562073599636,0.278562073599636, +0.416511124054881,0.416511124054881,0.416446266131924,0.41617695122861,0.415765856776226,0.41528723490326,0.414816139867965,0.414429082415295,0.414203830223098,0.414203830223098, +0.587317308934001,0.587317308934001,0.587172589211642,0.586743120589192,0.58613954950687,0.585460816346718,0.584792776360592,0.584225810793973,0.583873833976372,0.583873833976372, +0.785819176123043,0.785819176123043,0.785611830548691,0.78494153528812,0.784092843151347,0.783181836181002,0.782279986352437,0.781464828972177,0.780877386486508,0.780877386486508, + +00:24:46, +0.0489857880510937,0.0489857880510937,0.0490260966003027,0.0490229848183155,0.0489872191635688,0.0489327556977667,0.0488746124196901,0.0488266988713415,0.0487997839295642,0.0487997839295642, +0.0489857880510937,0.0489857880510937,0.0490260966003027,0.0490229848183155,0.0489872191635688,0.0489327556977667,0.0488746124196901,0.0488266988713415,0.0487997839295642,0.0487997839295642, +0.0684432686384402,0.0684432686384402,0.0684841773683898,0.0684707266769787,0.0684166625292845,0.0683398563816823,0.0682596320416854,0.0681940584395738,0.0681573212111593,0.0681573212111593, +0.110202066236018,0.110202066236018,0.110240292430258,0.110202419266156,0.110108214614094,0.109983462363322,0.109856183345485,0.109752970877167,0.109695235767814,0.109695235767814, +0.179084642883342,0.179084642883342,0.179109768129558,0.179026658726045,0.178864288403183,0.178660422645745,0.178456099918888,0.178291010056181,0.178198436072588,0.178198436072588, +0.280195207903985,0.280195207903985,0.280188150997888,0.280030728816662,0.279764956628174,0.279444678619331,0.279127495717129,0.278870453336631,0.278724834476685,0.278724834476685, +0.416668366580188,0.416668366580188,0.416603488672004,0.416334240132713,0.415923270608926,0.415444802308043,0.414973861839367,0.4145869332306,0.414361756848619,0.414361756848619, +0.587443607354022,0.587443607354022,0.587298903959291,0.586869573536129,0.586266216172428,0.585587731023421,0.584919938391509,0.584353183969491,0.584001338251077,0.584001338251077, +0.785889919040726,0.785889919040726,0.785682639159968,0.785012578498644,0.784164192875419,0.783253519968268,0.782352002613468,0.781537144976475,0.780949915962606,0.780949915962606, + +00:24:47, +0.0490754101243252,0.0490754101243252,0.0491157484514253,0.0491126387537764,0.0490768531698233,0.0490223559892984,0.0489641750480446,0.0489162296959797,0.0488892966799024,0.0488892966799024, +0.0490754101243252,0.0490754101243252,0.0491157484514253,0.0491126387537764,0.0490768531698233,0.0490223559892984,0.0489641750480446,0.0489162296959797,0.0488892966799024,0.0488892966799024, +0.0685459979656598,0.0685459979656598,0.0685869258036546,0.0685734736341026,0.0685193912778379,0.0684425562682258,0.0683623001541255,0.0682966998586827,0.0682599475014953,0.0682599475014953, +0.110326940422626,0.110326940422626,0.110365167123367,0.110327289177167,0.110233074309184,0.110108307704175,0.109981013176936,0.109877787776889,0.109820045408917,0.109820045408917, +0.179232860578957,0.179232860578957,0.179257966376202,0.179174856508552,0.179012498003527,0.178808649734937,0.178604345141134,0.178439270312564,0.178346705029833,0.178346705029833, +0.280357587196011,0.280357587196011,0.280350500167421,0.280193098735541,0.279927382304898,0.279607177602015,0.279290069577225,0.279033089166713,0.278887506065204,0.278887506065204, +0.416825490905541,0.416825490905541,0.416760593077421,0.416491410894659,0.416080566251383,0.415602251459651,0.415131465493945,0.414744665673517,0.414519565066444,0.414519565066444, +0.587569792998564,0.587569792998564,0.587425105957832,0.586995913633423,0.586392769816321,0.585714532478031,0.585046987000312,0.584480443548997,0.584128728818404,0.584128728818404, +0.785960592815337,0.785960592815337,0.785753378574002,0.785083552285928,0.784235472877088,0.783325133707664,0.782423948502723,0.781609390314812,0.781022374560987,0.781022374560987, + +00:24:48, +0.0491650924552261,0.0491650924552261,0.0492054605240403,0.0492023529203327,0.0491665474529668,0.0491120166254632,0.0490537980935031,0.0490058209977251,0.0489788699411368,0.0489788699411368, +0.0491650924552261,0.0491650924552261,0.0492054605240403,0.0492023529203327,0.0491665474529668,0.0491120166254632,0.0490537980935031,0.0490058209977251,0.0489788699411368,0.0489788699411368, +0.0686487687282849,0.0686487687282849,0.0686897156459808,0.0686762620171276,0.0686221615091665,0.0685452977177764,0.0684650099143735,0.0683993829955565,0.0683626155489353,0.0683626155489353, +0.110451819898052,0.110451819898052,0.110490047096898,0.110452164402963,0.110357939389663,0.110233158524044,0.110105848584766,0.110002610332867,0.109944860751063,0.109944860751063, +0.179381035792912,0.179381035792912,0.179406122165379,0.179323011880488,0.179160665263614,0.178956834571002,0.178752548199343,0.178587488477406,0.178494931935858,0.178494931935858, +0.280519877029611,0.280519877029611,0.280512759935579,0.280355379292275,0.280089718654746,0.279769587296147,0.279452554187072,0.279195635776545,0.279050088449051,0.279050088449051, +0.416982497187872,0.416982497187872,0.416917579504977,0.416648463671188,0.416237743860268,0.415759582514658,0.415288950988155,0.41490227990041,0.414677255032891,0.414677255032891, +0.587695866042984,0.587695866042984,0.587551195382533,0.587122141056448,0.586519210614108,0.585841220886298,0.585173922362928,0.584607589708577,0.584256005854555,0.584256005854555, +0.786031197563275,0.786031197563275,0.785824048907268,0.785154456766813,0.784306683273665,0.783396677516997,0.782495824138494,0.781681565105922,0.781094762400719,0.781094762400719, + +00:24:49, +0.0492548349572034,0.0492548349572034,0.0492952327315696,0.0492921272314047,0.0492563019264048,0.0492017375196448,0.0491434814694266,0.0490954726899206,0.049068503626601,0.049068503626601, +0.0492548349572034,0.0492548349572034,0.0492952327315696,0.0492921272314047,0.0492563019264048,0.0492017375196448,0.0491434814694266,0.0490954726899206,0.049068503626601,0.049068503626601, +0.0687515808467284,0.0687515808467284,0.0687925468158183,0.0687790917464907,0.0687249731436514,0.0686480806506327,0.068567761242639,0.0685021077703309,0.0684653252735743,0.0684653252735743, +0.110576704609126,0.110576704609126,0.110614932297732,0.110577044890381,0.110482809802243,0.110358014769458,0.110230689515308,0.110127438491274,0.110069681740335,0.110069681740335, +0.179529168529337,0.179529168529337,0.179554235501233,0.179471124845906,0.179308790187304,0.179104977157539,0.178900709096832,0.178735664553788,0.178643116793615,0.178643116793615, +0.280682077489858,0.280682077489858,0.280674930387368,0.280517570571756,0.280251965762419,0.279931907786174,0.279614949630842,0.279358093250073,0.279212581712045,0.279212581712045, +0.417139385583867,0.417139385583867,0.417074448111231,0.416805398618794,0.416394803592011,0.415916795629392,0.415446318478214,0.415059776067401,0.414834826904037,0.414834826904037, +0.587821826662281,0.587821826662281,0.587677172408305,0.587248255980222,0.58664553874099,0.585967796423617,0.585300744654931,0.584734622623965,0.584383169535377,0.584383169535377, +0.786101733400675,0.786101733400675,0.785894650275981,0.785225292057876,0.784377824182195,0.783468151513807,0.782567629638804,0.781753669468275,0.781167079600602,0.781167079600602, + +00:24:50, +0.0493446375436968,0.0493446375436968,0.0493850649874678,0.0493819616004452,0.0493461165035753,0.0492915185852587,0.0492332250892076,0.0491851846859408,0.0491581976496599,0.0491581976496599, +0.0493446375436968,0.0493446375436968,0.0493850649874678,0.0493819616004452,0.0493461165035753,0.0492915185852587,0.0492332250892076,0.0491851846859408,0.0491581976496599,0.0491581976496599, +0.068854434241493,0.068854434241493,0.0688954192337068,0.0688819627427182,0.0688278261017635,0.0687509049871824,0.0686705540592206,0.0686048741032314,0.0685680765955964,0.0685680765955964, +0.110701594502821,0.110701594502821,0.110739822672889,0.110701930586397,0.110607685493774,0.110482876387088,0.11035553591504,0.110252272198428,0.110194508322958,0.110194508322958, +0.179677258792468,0.179677258792468,0.179702306388011,0.179619195408966,0.179456872778567,0.179253077498255,0.179048827837029,0.178883798544904,0.178791259606165,0.178791259606165, +0.280844188661784,0.280844188661784,0.280837011607752,0.28067967265883,0.280414123712575,0.280094139156498,0.279777255992664,0.279520461671201,0.279374985937962,0.279374985937962, +0.417296156249968,0.417296156249968,0.417231199052494,0.416962215893724,0.416551745602792,0.41607389095994,0.41560356812009,0.415217154330369,0.414992280835716,0.414992280835716, +0.587947675031101,0.587947675031101,0.587803037209706,0.587374258579408,0.586771754371818,0.586094259265028,0.585427454051538,0.58486154247054,0.584510220036363,0.584510220036363, +0.786172200443412,0.786172200443412,0.785965182796092,0.785296058275431,0.784448895719462,0.783539555815371,0.782639365121414,0.781825703520076,0.78123932627917,0.78123932627917, + +00:24:51, +0.0494345001281786,0.0494345001281786,0.0494749572052221,0.04947185594094,0.0494359910979491,0.0493813597357531,0.0493230288662709,0.0492749568991922,0.0492479519237102,0.0492479519237102, +0.0494345001281786,0.0494345001281786,0.0494749572052221,0.04947185594094,0.0494359910979491,0.0493813597357531,0.0493230288662709,0.0492749568991922,0.0492479519237102,0.0492479519237102, +0.0689573288331706,0.0689573288331706,0.0689983328202753,0.068984874926426,0.0689307203040628,0.0688537706479026,0.0687733882845062,0.0687076819145723,0.0686708694352748,0.0686708694352748, +0.110826489526253,0.110826489526253,0.110864718169532,0.110826821438131,0.11073256641125,0.110607743323748,0.110480387730582,0.110377111400785,0.1103193404453,0.1103193404453, +0.179825306586649,0.179825306586649,0.179850334830072,0.179767223573934,0.179604913041483,0.179401135596966,0.179196904423468,0.179031890454057,0.17893936037668,0.17893936037668, +0.281006210630374,0.281006210630374,0.28099900368165,0.280841685638301,0.280576192589829,0.280256281491479,0.279939473356628,0.279682741123791,0.279537301210541,0.279537301210541, +0.417452809342369,0.417452809342369,0.417387832484833,0.417118915651981,0.416708570048551,0.416230868662139,0.415760700069512,0.415374414844951,0.41514961698352,0.41514961698352, +0.588073411323738,0.588073411323738,0.58792878996094,0.587500149028317,0.586897857681084,0.586220609585218,0.585554050727613,0.584988349423326,0.584637157532652,0.584637157532652, +0.786242598807099,0.786242598807099,0.786035646583292,0.785366755535531,0.784519898001987,0.7836108905387,0.782711030703818,0.781897667379261,0.781311502554691,0.781311502554691, + +00:24:52, +0.0495244226241544,0.0495244226241544,0.0495649092983532,0.049561810166408,0.0495259256230298,0.0494712608846088,0.0494128927140738,0.0493647892431136,0.0493377663621807,0.0493377663621807, +0.0495244226241544,0.0495244226241544,0.0495649092983532,0.049561810166408,0.0495259256230298,0.0494712608846088,0.0494128927140738,0.0493647892431136,0.0493377663621807,0.0493377663621807, +0.069060264542443,0.069060264542443,0.0691012874962424,0.0690878282183193,0.0690336556711987,0.0689566775533596,0.0688762638389732,0.0688105311247571,0.0687737037129719,0.0687737037129719, +0.110951389626675,0.110951389626675,0.110989618734964,0.110951717392842,0.110857452501807,0.110732615526393,0.110605244908694,0.110501956044946,0.110444178053869,0.110444178053869, +0.179973311916332,0.179973311916332,0.179998320831879,0.179915209345186,0.179752910980234,0.179549151457595,0.179344938859793,0.179179940284658,0.179087419108441,0.179087419108441, +0.281168143480568,0.281168143480568,0.281160906693935,0.281003609594927,0.28073817247875,0.280418334875436,0.28010160180678,0.279844931691666,0.27969952761348,0.27969952761348, +0.417609345017021,0.417609345017021,0.417544348564068,0.417275498049324,0.41686527708498,0.416387728891589,0.415917714481964,0.41553155776654,0.4153068355028,0.4153068355028, +0.588199035714132,0.588199035714132,0.588054430835859,0.587625927500906,0.587023848842932,0.58634684755852,0.585680534857669,0.585115043656995,0.584763982199029,0.584763982199029, +0.786312928607089,0.786312928607089,0.786106041753012,0.785437383953968,0.784590831146028,0.783682155800545,0.782782626503246,0.781969561163505,0.781383608545167,0.781383608545167, + +00:24:53, +0.0496144049451628,0.0496144049451628,0.049654921180415,0.0496518241904012,0.0496159199923542,0.0495612219453395,0.0495028165461061,0.0494546816311762,0.0494276408785324,0.0494276408785324, +0.0496144049451628,0.0496144049451628,0.049654921180415,0.0496518241904012,0.0496159199923542,0.0495612219453395,0.0495028165461061,0.0494546816311762,0.0494276408785324,0.0494276408785324, +0.0691632412900812,0.0691632412900812,0.0692042831824161,0.0691908225391929,0.0691366321239101,0.0690596256242093,0.0689791806431879,0.0689134216542787,0.0688765793491391,0.0688765793491391, +0.111076294751486,0.111076294751486,0.111114524316631,0.111076618397931,0.110982343712719,0.110857492942116,0.11073010739628,0.110626806077653,0.110569021095318,0.110569021095318, +0.180121274786074,0.180121274786074,0.180146264398,0.180063152727201,0.179900866599115,0.179697125084174,0.179492931149756,0.179327948040229,0.179235435804839,0.179235435804839, +0.281329987297264,0.281329987297264,0.281322720729436,0.281165444613423,0.280900063463866,0.280580299392643,0.280263641427124,0.280007033458607,0.279861665230434,0.279861665230434, +0.417765763429629,0.417765763429629,0.417700747445777,0.417431963241266,0.41702186686753,0.416544471803643,0.416074611512688,0.415688583250291,0.415463936548664,0.415463936548664, +0.588324548375869,0.588324548375869,0.588179960007964,0.587751594170783,0.587149728031152,0.586472973358916,0.585806906615864,0.585241625345868,0.58489069420993,0.58489069420993, +0.786383189958478,0.786383189958478,0.786176368420424,0.785507943646272,0.784661695267583,0.783753351717394,0.782854152636666,0.782041384990216,0.781455644368337,0.781455644368337, + +00:24:54, +0.0497044470047761,0.0497044470047761,0.0497449927649952,0.0497418979265055,0.0497059741194927,0.0496512428314922,0.0495928002758907,0.0495446339768837,0.049517575386259,0.049517575386259, +0.0497044470047761,0.0497044470047761,0.0497449927649952,0.0497418979265055,0.0497059741194927,0.0496512428314922,0.0495928002758907,0.0495446339768837,0.049517575386259,0.049517575386259, +0.0692662589969459,0.0692662589969459,0.069307319799694,0.069293857809931,0.0692396495830253,0.0691626147811966,0.069082138617806,0.0690163534237189,0.0689794962643169,0.0689794962643169, +0.11120120484822,0.11120120484822,0.111239434862115,0.111201524400939,0.111107239991403,0.110982375518156,0.110854975140381,0.110751661445789,0.110693869516439,0.110693869516439, +0.180269195200539,0.180269195200539,0.180294165533111,0.180211053724566,0.180048779902521,0.17984505648084,0.179640881297219,0.179475913724396,0.179383410469372,0.179383410469372, +0.281491742165314,0.281491742165314,0.281484445872939,0.281327190778458,0.281061865629659,0.28074217512733,0.280425592301623,0.280169046508352,0.280023714145019,0.280023714145019, +0.417922064735655,0.417922064735655,0.417857029285293,0.417588311383079,0.417178339551408,0.416701097553411,0.416231391316686,0.415845491451113,0.41562092027598,0.41562092027598, +0.588449949482188,0.588449949482188,0.588305377650405,0.587877149211202,0.587275495419183,0.586598987160036,0.585933166176008,0.585368094663913,0.585017293739437,0.585017293739437, +0.786453382976101,0.786453382976101,0.786246626700441,0.785578434727717,0.784732490482388,0.783824478405473,0.782925609220785,0.782113138976543,0.781527610141674,0.781527610141674, + +00:24:55, +0.0497945487166004,0.0497945487166004,0.0498351239657151,0.0498320312883407,0.0497960879180491,0.0497413234566472,0.0496828438169835,0.049634646193773,0.0496075697988869,0.0496075697988869, +0.0497945487166004,0.0497945487166004,0.0498351239657151,0.0498320312883407,0.0497960879180491,0.0497413234566472,0.0496828438169835,0.049634646193773,0.0496075697988869,0.0496075697988869, +0.0693693175839872,0.0693693175839872,0.0694103972690628,0.0693969339515068,0.0693427079694616,0.0692656449451556,0.0691851376835721,0.0691193263537486,0.0690824543791349,0.0690824543791349, +0.111326119864556,0.111326119864556,0.111364350319141,0.111326435349545,0.111232141285413,0.111107263201887,0.110979848088182,0.110876522096377,0.110818723264165,0.110818723264165, +0.180417073164494,0.180417073164494,0.180442024241993,0.180358912341971,0.180196650894957,0.179992945651837,0.179788789306146,0.179623837340898,0.179531343105648,0.179531343105648, +0.281653408169523,0.281653408169523,0.281646082209182,0.281488848174656,0.281223579060567,0.280903962163687,0.280587454514196,0.2803309709246,0.280185674440809,0.280185674440809, +0.418078249090315,0.418078249090315,0.418013194237707,0.417744542629789,0.417334695291577,0.416857606295765,0.416388054048716,0.416002282523678,0.415777786839376,0.415777786839376, +0.588575239205977,0.588575239205977,0.588430683935981,0.588002592795068,0.587401151180114,0.586724889135163,0.586059313711559,0.585494451784751,0.585143780961283,0.585143780961283, +0.786523507774536,0.786523507774536,0.786316816707718,0.785648857313316,0.784803216905921,0.783895535980748,0.782996996372046,0.782184823239367,0.78159950598239,0.78159950598239, + +00:24:56, +0.0498847099942759,0.0498847099942759,0.0499253146962305,0.0499222241895604,0.0498862613016616,0.0498314637344189,0.0497729470829741,0.0497247181954142,0.0496976240299757,0.0496976240299757, +0.0498847099942759,0.0498847099942759,0.0499253146962305,0.0499222241895604,0.0498862613016616,0.0498314637344189,0.0497729470829741,0.0497247181954142,0.0496976240299757,0.0496976240299757, +0.0694724169722444,0.0694724169722444,0.069513515511599,0.0695000508849833,0.0694458072042258,0.0693687160370098,0.0692881777613202,0.0692223403651277,0.0691854536143118,0.0691854536143118, +0.111451039748308,0.111451039748308,0.111489270635572,0.111451351191569,0.111357047542444,0.111232155940826,0.111104726187006,0.11100138797658,0.11094358228557,0.11094358228557, +0.180564908682814,0.180564908682814,0.18058984052953,0.180506728584213,0.180344479581032,0.180140792601515,0.179936655180611,0.179771718893578,0.17967923371738,0.17967923371738, +0.281814985394652,0.281814985394652,0.281807629822859,0.281650416886596,0.281385203840984,0.281065660585856,0.280749228148719,0.280492806791005,0.280347546201336,0.280347546201336, +0.418234316648585,0.418234316648585,0.418169242457864,0.417900657136181,0.417490934242758,0.41701399818533,0.416544599863296,0.416158956622417,0.415934536393239,0.415934536393239, +0.588700417719773,0.588700417719773,0.588555879037144,0.58812792509494,0.587526695486686,0.586850679457227,0.586185349395629,0.585620696881651,0.585270156048854,0.585270156048854, +0.786593564468105,0.786593564468105,0.786386938556653,0.785719211517825,0.784873874653401,0.783966524558924,0.783068314206632,0.782256437895314,0.781671332007434,0.781671332007434, + +00:24:57, +0.049974930751477,0.049974930751477,0.0500155648702315,0.0500124765438529,0.0499764941840023,0.0499216635784552,0.0498631099874857,0.0498148498954107,0.0497877379931183,0.0497877379931183, +0.049974930751477,0.049974930751477,0.0500155648702315,0.0500124765438529,0.0499764941840023,0.0499216635784552,0.0498631099874857,0.0498148498954107,0.0497877379931183,0.0497877379931183, +0.0695755570828467,0.0695755570828467,0.0696166744484681,0.0696032085315127,0.069548947208414,0.0694718279777718,0.0693912587719734,0.0693253953787054,0.0692884938906552,0.0692884938906552, +0.111575964447433,0.111575964447433,0.11161419575941,0.111576271874969,0.11148195871033,0.111357053682628,0.111229609384316,0.111126259033702,0.111068446527866,0.111068446527866, +0.180712701760475,0.180712701760475,0.180737614400711,0.180654502456192,0.180492265965457,0.180288597334328,0.180084478924794,0.179919558386385,0.179827082308389,0.179827082308389, +0.281976473925417,0.281976473925417,0.281969088798616,0.281811896998812,0.281546740055257,0.281227270477938,0.280910913289028,0.280654554191182,0.280509329510093,0.280509329510093, +0.418390267565196,0.418390267565196,0.418325174100368,0.418056655056795,0.417647056559431,0.417170273376493,0.416701028914705,0.41631551390152,0.416091169091717,0.416091169091717, +0.588825485195768,0.588825485195768,0.588680963125998,0.588253146283025,0.587652128511291,0.586976358298812,0.586311273400977,0.585746830127536,0.585396419175184,0.585396419175184, +0.786663553170872,0.786663553170872,0.786456992361387,0.785789497455741,0.784944463839788,0.784037444255449,0.783139562840468,0.782327983060744,0.781743088333494,0.781743088333494, + +00:24:58, +0.0500652109019126,0.0500652109019126,0.0501058744014428,0.0501027882649409,0.0500667864787778,0.0500119229024387,0.0499533324441754,0.0499050412073999,0.0498779116019411,0.0498779116019411, +0.0500652109019126,0.0500652109019126,0.0501058744014428,0.0501027882649409,0.0500667864787778,0.0500119229024387,0.0499533324441754,0.0499050412073999,0.0498779116019411,0.0498779116019411, +0.0696787378370122,0.0696787378370122,0.0697198740009253,0.0697064068123362,0.0696521279032113,0.0695749806885433,0.0694943806365437,0.0694284913154197,0.0693915751290616,0.0693915751290616, +0.111700893910024,0.111700893910024,0.111739125638796,0.111701197347842,0.111606874737044,0.111481956375087,0.111354497627715,0.111251135215187,0.111193315938408,0.111193315938408, +0.18086045240256,0.18086045240256,0.180885345860628,0.18080223396291,0.180640010053051,0.180436359854837,0.180232260542979,0.180067355823375,0.179974888882603,0.179974888882603, +0.282137873846487,0.282137873846487,0.282130459221058,0.281973288595792,0.281708187787691,0.281388791923988,0.281072510018912,0.280816213208702,0.280671024450527,0.280671024450527, +0.418546101994636,0.418546101994636,0.418480989319582,0.418212536545934,0.417803062395834,0.417326432023399,0.416857341356979,0.416471954514937,0.41624768508872,0.41624768508872, +0.588950441805804,0.588950441805804,0.5888059363743,0.588378256531185,0.587777450425974,0.587101925832155,0.586437085900019,0.58587285169498,0.585522570512963,0.585522570512963, +0.786733473996649,0.786733473996649,0.786526978235807,0.785859715241308,0.785014984579785,0.784108295185512,0.783210742389218,0.782399458851759,0.781814775076997,0.781814775076997, + +00:24:59, +0.0501555503593267,0.0501555503593267,0.0501962432036241,0.0501931592665823,0.0501571380997297,0.0501022416200861,0.0500436143667346,0.0499952920450529,0.0499681447701046,0.0499681447701046, +0.0501555503593267,0.0501555503593267,0.0501962432036241,0.0501931592665823,0.0501571380997297,0.0501022416200861,0.0500436143667346,0.0499952920450529,0.0499681447701046,0.0499681447701046, +0.0697819591560486,0.0697819591560486,0.0698231140903147,0.0698096456487846,0.0697553492098923,0.0696781740905152,0.0695975432761322,0.0695316280962977,0.0694946972505166,0.0694946972505166, +0.111825828084313,0.111825828084313,0.111864060222009,0.111826127558424,0.111731795570697,0.111606863966134,0.111479390864943,0.111376016468615,0.111318190464689,0.111318190464689, +0.181008160614253,0.181008160614253,0.181033034914475,0.180949923109476,0.180787711848733,0.180584080167705,0.180380000039554,0.180215111208709,0.180122653444055,0.180122653444055, +0.282299185242485,0.282299185242485,0.282291741174738,0.282134591761978,0.281869547122543,0.281550225008019,0.28123401842212,0.280977783927093,0.280832631106046,0.280832631106046, +0.418701820091152,0.418701820091152,0.418636688269625,0.418368301757653,0.417958951905963,0.417482474279953,0.417013537343916,0.416628278616381,0.416404084537917,0.416404084537917, +0.589075287721378,0.589075287721378,0.58893079895346,0.588503256010936,0.587902661402433,0.587227382229145,0.586562787064823,0.585998761756213,0.585648610234533,0.585648610234533, +0.786803327058989,0.786803327058989,0.786596896293544,0.785929864988511,0.785085436987839,0.784179077464043,0.783281852968287,0.782470865384202,0.78188639235411,0.78188639235411, + +00:25:00, +0.0502459490374982,0.0502459490374982,0.0502866711905703,0.0502835894625697,0.0502475489606342,0.0501926196451491,0.0501339556688892,0.0500856023220752,0.0500584374113031,0.0500584374113031, +0.0502459490374982,0.0502459490374982,0.0502866711905703,0.0502835894625697,0.0502475489606342,0.0501926196451491,0.0501339556688892,0.0500856023220752,0.0500584374113031,0.0500584374113031, +0.0698852209613529,0.0698852209613529,0.0699263946380699,0.0699129249622777,0.0698586110498206,0.0697814081049676,0.0697007466119293,0.0696348056424555,0.0695978601760948,0.0695978601760948, +0.111950766918672,0.111950766918672,0.111988999457466,0.111951062455086,0.111856721159537,0.111731776403842,0.111604289043881,0.111500902741709,0.111443070054338,0.111443070054338, +0.181155826400841,0.181155826400841,0.181180681567552,0.181097569901097,0.180935371357528,0.180731758277698,0.180527697419014,0.180362824546655,0.180270375996884,0.180270375996884, +0.282460408197988,0.282460408197988,0.282452934744168,0.282295806581767,0.282030818144026,0.281711569813996,0.281395438582353,0.281139266429841,0.280994149560014,0.280994149560014, +0.418857422008749,0.418857422008749,0.418792271104375,0.418523950845771,0.418114725243574,0.417638400299819,0.417169617029075,0.416784486359324,0.41656036759274,0.41656036759274, +0.589200023113642,0.589200023113642,0.589055551034543,0.588628144893449,0.588027761612023,0.587352727661327,0.586688377067111,0.586124560483117,0.58577453851189,0.58577453851189, +0.786873112471193,0.786873112471193,0.786666746647975,0.785999946811083,0.78515582117814,0.784249791205717,0.783352894692825,0.782542202773658,0.781957940280741,0.781957940280741, + +00:25:01, +0.0503364068502412,0.0503364068502412,0.0503771582761115,0.0503740787667314,0.0503380189753029,0.0502830568914142,0.0502243562643997,0.0501759719522068,0.0501487894392654,0.0501487894392654, +0.0503364068502412,0.0503364068502412,0.0503771582761115,0.0503740787667314,0.0503380189753029,0.0502830568914142,0.0502243562643997,0.0501759719522068,0.0501487894392654,0.0501487894392654, +0.0699885231744113,0.0699885231744113,0.0700297155657139,0.0700162446743248,0.0699619133444488,0.0698846826532696,0.0698039905652141,0.0697380238750981,0.0697010638269595,0.0697010638269595, +0.112075710361607,0.112075710361607,0.11211394329372,0.11207600198634,0.111981651451951,0.111856693636419,0.111729192112545,0.111625793982327,0.111567954655127,0.111567954655127, +0.181303449767713,0.181303449767713,0.181328285825257,0.181245174343085,0.18108298858456,0.180879394189689,0.180675352685956,0.180510495841582,0.180418056545332,0.180418056545332, +0.282621542797527,0.282621542797527,0.282614040013809,0.282456933139508,0.282192000936308,0.281872826425843,0.281556770583273,0.281300660800388,0.281155579895752,0.281155579895752, +0.419012907901192,0.419012907901192,0.41894773797747,0.418679483963864,0.418270382562182,0.417794210236422,0.417325580565774,0.416940577897001,0.416716534406383,0.416716534406383, +0.589324648153403,0.589324648153403,0.589180192788272,0.588752923349549,0.58815275122575,0.5874779622999,0.586813856078262,0.586250248047231,0.585900355516687,0.585900355516687, +0.78694283034631,0.78694283034631,0.786736529412224,0.7860699608225,0.785226137264624,0.784320436524953,0.783423867677722,0.782613471135453,0.782029418972539,0.782029418972539, + +00:25:02, +0.0504269237114056,0.0504269237114056,0.0504677043741136,0.0504646270929313,0.0504285480575829,0.0503735532727033,0.0503148160670617,0.0502664008492225,0.0502392007677551,0.0502392007677551, +0.0504269237114056,0.0504269237114056,0.0504677043741136,0.0504646270929313,0.0504285480575829,0.0503735532727033,0.0503148160670617,0.0502664008492225,0.0502392007677551,0.0502392007677551, +0.0700918657167994,0.0700918657167994,0.0701330767948587,0.0701196047065241,0.070065256015319,0.0699879976568792,0.0699072750573549,0.0698412827155194,0.0698043081243631,0.0698043081243631, +0.112200658361764,0.112200658361764,0.112238891679463,0.112200946100832,0.112106586396462,0.111981615612211,0.111854100019093,0.111750690138466,0.111692844214962,0.111692844214962, +0.181451030720361,0.181451030720361,0.181475847693091,0.181392736440853,0.181230563535058,0.181026987908648,0.180822965845081,0.180658125097965,0.180565695093747,0.180565695093747, +0.282782589125585,0.282782589125585,0.282775057068078,0.282617971519505,0.282353095583509,0.282033994927435,0.281718014508495,0.281461967122134,0.281316922196541,0.281316922196541, +0.419168277922003,0.419168277922003,0.419103089042307,0.418834901265267,0.418425924015064,0.417949904242948,0.417481428107095,0.41709655338241,0.416872585131801,0.416872585131801, +0.589449163011125,0.589449163011125,0.589304724385024,0.588877591549719,0.588277630414282,0.587603086315721,0.586939224269309,0.58637582461975,0.586026061420231,0.586026061420231, +0.787012480797135,0.787012480797135,0.786806244699161,0.786139907135987,0.785296385360972,0.784391013535913,0.783494772037614,0.782684670584657,0.782100828544898,0.782100828544898, + +00:25:03, +0.0505174995348769,0.0505174995348769,0.0505583093984786,0.050555234355069,0.0505191361213571,0.0504641087028736,0.050405334990706,0.0503568889269319,0.0503296713105703,0.0503296713105703, +0.0505174995348769,0.0505174995348769,0.0505583093984786,0.050555234355069,0.0505191361213571,0.0504641087028736,0.050405334990706,0.0503568889269319,0.0503296713105703,0.0503296713105703, +0.0701952485101819,0.0701952485101819,0.0702364782472056,0.070223004980563,0.0701686389840621,0.0700913530373437,0.0700106000098089,0.0699445820851022,0.0699075929896467,0.0699075929896467, +0.112325610867926,0.112325610867926,0.112363844563523,0.112325894747346,0.112231525941731,0.112106542279701,0.111979012711815,0.111875591158262,0.111817738681891,0.111817738681891, +0.181598569264375,0.181598569264375,0.181623367176656,0.181540256199914,0.18137809621435,0.181174539439651,0.180970536901193,0.180805712320382,0.18071329164658,0.18071329164658, +0.282943547266599,0.282943547266599,0.282935985991344,0.282778921806013,0.282514102169704,0.282195075402604,0.28187917044159,0.281623185478434,0.281478176545615,0.281478176545615, +0.419323532224465,0.419323532224465,0.419258324452042,0.418990202903076,0.418581349755255,0.418105482472343,0.417637159805881,0.417252412968309,0.417028519921713,0.417028519921713, +0.589573567856929,0.589573567856929,0.589429145994835,0.589002149664099,0.588402399347939,0.587728099879303,0.587064481810945,0.586501290371525,0.586151656393489,0.586151656393489, +0.787082063936212,0.787082063936212,0.786875892621407,0.786209785864516,0.785366565580613,0.784461522352506,0.78356560788688,0.782755801236083,0.782172169112952,0.782172169112952, + +00:25:04, +0.0506081342345767,0.0506081342345767,0.0506489732631444,0.0506459004670803,0.0506097830805441,0.0505547230958183,0.0504959129491987,0.05044743609918,0.0504202009815445,0.0504202009815445, +0.0506081342345767,0.0506081342345767,0.0506489732631444,0.0506459004670803,0.0506097830805441,0.0505547230958183,0.0504959129491987,0.05044743609918,0.0504202009815445,0.0504202009815445, +0.0702986714763129,0.0702986714763129,0.070339919844545,0.0703264454182181,0.0702720621723981,0.0701947487162993,0.0701139653441221,0.0700479219053183,0.0700109183442403,0.0700109183442403, +0.112450567829009,0.112450567829009,0.112488801894863,0.112450847874802,0.112356470036553,0.112231473587508,0.112103930139143,0.112000496989985,0.111942638004094,0.111942638004094, +0.181746065405449,0.181746065405449,0.181770844281654,0.181687733625882,0.181525586627868,0.181322048787875,0.181118065859196,0.180953257513515,0.180860846208386,0.180860846208386, +0.283104417304959,0.283104417304959,0.28309682686793,0.282939784083243,0.282675020778922,0.282356067935138,0.282040238466085,0.281784315952601,0.281639343026169,0.281639343026169, +0.419478670961622,0.419478670961622,0.419413444359594,0.419145389030149,0.418736659935552,0.418260945077316,0.417792775814736,0.417408156807222,0.417184338928603,0.417184338928603, +0.589697862860593,0.589697862860593,0.589553457787399,0.589126597862487,0.588527058196703,0.587853003160818,0.587189628873519,0.586626645473067,0.586277140607084,0.586277140607084, +0.787151579875834,0.787151579875834,0.786945473291328,0.786279597120805,0.785436678036719,0.784531963088387,0.783636375339647,0.782826863204288,0.78224344079158,0.78224344079158, + +00:25:05, +0.050698827724463,0.050698827724463,0.0507396958820854,0.0507366253429375,0.0507004888490989,0.0506453963654663,0.0505865498564419,0.0505380422798472,0.0505107896945463,0.0505107896945463, +0.050698827724463,0.050698827724463,0.0507396958820854,0.0507366253429375,0.0507004888490989,0.0506453963654663,0.0505865498564419,0.0505380422798472,0.0505107896945463,0.0505107896945463, +0.0704021345370354,0.0704021345370354,0.0704434015087566,0.0704299259413551,0.0703755255021362,0.0702981846154711,0.0702173709819297,0.0701513020977282,0.0701142841096629,0.0701142841096629, +0.11257552919407,0.11257552919407,0.112613763622583,0.112575805432255,0.112481418629862,0.112356409484388,0.112228852249642,0.112125407582044,0.112067542129894,0.112067542129894, +0.181893519149376,0.181893519149376,0.181918279013887,0.181835168724471,0.18167303478114,0.181469515958598,0.181265552724098,0.181100760682145,0.18100835878382,0.18100835878382, +0.283265199325007,0.283265199325007,0.28325757978211,0.283100558435358,0.282835851495146,0.282516972608776,0.282201218665462,0.281945358627903,0.281800421721349,0.281800421721349, +0.419633694286275,0.419633694286275,0.419568448917639,0.419300459799103,0.418891854708513,0.418416292210338,0.417948276286028,0.417563785051432,0.417340042304715,0.417340042304715, +0.589822048191556,0.589822048191556,0.589677659932069,0.589250936314341,0.588651607130212,0.587977796330095,0.587314665627039,0.586751890094545,0.586402514231299,0.586402514231299, +0.787221028728042,0.787221028728042,0.787014986821044,0.786349341017323,0.785506722842216,0.784602335856958,0.783707074509784,0.782897856603577,0.782314643695406,0.782314643695406, + +00:25:06, +0.0507895799185303,0.0507895799185303,0.0508304771693125,0.0508274088966492,0.050791253341013,0.0507361284257829,0.0506772456263734,0.0506287073828498,0.0506014373634802,0.0506014373634802, +0.0507895799185303,0.0507895799185303,0.0508304771693125,0.0508274088966492,0.050791253341013,0.0507361284257829,0.0506772456263734,0.0506287073828498,0.0506014373634802,0.0506014373634802, +0.070505637614282,0.070505637614282,0.070546923161809,0.0705334464719287,0.0704790288951745,0.0704016606566733,0.0703208168449554,0.0702547225839814,0.0702176902075219,0.0702176902075219, +0.112700494912297,0.112700494912297,0.112738729695919,0.112700767368898,0.112606371670726,0.112481349919233,0.112353778992015,0.112250322882985,0.112192451007745,0.112192451007745, +0.182040930502047,0.182040930502047,0.182065671379256,0.181982561501494,0.181820440679798,0.181616940957196,0.181412997501009,0.181248221831158,0.181155829377644,0.181155829377644, +0.283425893411038,0.283425893411038,0.283418244818111,0.283261244946472,0.282996594402309,0.282677789507213,0.282362111123159,0.282106313587563,0.281961412714264,0.281961412714264, +0.419788602350991,0.419788602350991,0.419723338278616,0.419455415362316,0.419046934226459,0.41857152402364,0.418103661371888,0.417719297852991,0.41749563020206,0.41749563020206, +0.589946124018916,0.589946124018916,0.589801752597859,0.589375165188777,0.588776046317766,0.588102479556626,0.587439592241175,0.586877024405788,0.586527777436075,0.586527777436075, +0.78729041060463,0.78729041060463,0.787084433322421,0.786419017666288,0.785576700109773,0.784672640771367,0.783777705510912,0.782968781547998,0.7823857779388,0.7823857779388, + +00:25:07, +0.0508803907308098,0.0508803907308098,0.0509213170388736,0.050918251042261,0.0508820764703143,0.0508269191907696,0.0507680001729674,0.0507194313221397,0.0506921439022863,0.0506921439022863, +0.0508803907308098,0.0508803907308098,0.0509213170388736,0.050918251042261,0.0508820764703143,0.0508269191907696,0.0507680001729674,0.0507194313221397,0.0506921439022863,0.0506921439022863, +0.0706091806300738,0.0706091806300738,0.07065048472576,0.0706370069319827,0.0705825722735001,0.0705051767618089,0.0704243028550122,0.0703581832858159,0.0703211365595138,0.0703211365595138, +0.112825464933018,0.112825464933018,0.11286370006424,0.112825733634056,0.112731329108348,0.112606294841071,0.1124787103151,0.112375242841488,0.11231736458624,0.11231736458624, +0.182188299469454,0.182188299469454,0.182213021383761,0.182129911962864,0.18196780432957,0.181764323789148,0.181560400195136,0.18139564096554,0.181303257994716,0.181303257994716, +0.2835864996473,0.2835864996473,0.283578822060113,0.283421843700654,0.283157249584302,0.282838518714097,0.282522915922567,0.282267180914762,0.282122316087973,0.282122316087973, +0.419943395308093,0.419943395308093,0.419878112594726,0.419610255871929,0.419201898641472,0.418726640669218,0.418258931224211,0.417874695363712,0.417651102772411,0.417651102772411, +0.590070090511432,0.590070090511432,0.589925735953443,0.589499284654576,0.588900375928326,0.58822705300956,0.587564408885255,0.587002048576286,0.586652930391016,0.586652930391016, +0.787359725617142,0.787359725617142,0.78715381290708,0.786488627179668,0.785646609951811,0.784742877944513,0.783848268456394,0.783039638151347,0.782456843635875,0.782456843635875, + +00:25:08, +0.0509712600753697,0.0509712600753697,0.0510122154048538,0.0510091516938558,0.0509729581510679,0.050917768574465,0.0508588134102343,0.0508102140117055,0.050782909224941,0.050782909224941, +0.0509712600753697,0.0509712600753697,0.0510122154048538,0.0510091516938558,0.0509729581510679,0.050917768574465,0.0508588134102343,0.0508102140117055,0.050782909224941,0.050782909224941, +0.0707127635065217,0.0707127635065217,0.0707540861227566,0.0707406072436498,0.070686155559189,0.0706087328528698,0.0705278289340016,0.0704616841250589,0.0704246230874238,0.0704246230874238, +0.11295043920569,0.11295043920569,0.112988674677052,0.11295070417719,0.112856290892066,0.112731244199063,0.11260364616787,0.112500167406371,0.112442282814108,0.112442282814108, +0.182335626057687,0.182335626057687,0.182360329033502,0.182277220114592,0.182115125736286,0.181911664460031,0.181707760811791,0.181543018090378,0.181450644639999,0.181450644639999, +0.283747018117991,0.283747018117991,0.283739311592248,0.283582354781923,0.283317817124964,0.282999160313031,0.282683633147033,0.282427960692635,0.282283131925494,0.282283131925494, +0.42009807330967,0.42009807330967,0.420032772017931,0.419764981479845,0.419356748105397,0.418881642298832,0.418414085994656,0.418029977735172,0.41780646016731,0.41780646016731, +0.590193947837525,0.590193947837525,0.590049610167158,0.589623294880176,0.589024596130512,0.58835151685771,0.587689115728271,0.58712696277519,0.586777973265386,0.586777973265386, +0.787428973876875,0.787428973876875,0.78722312568639,0.786558169669182,0.785716452480501,0.784813047489043,0.783918763459346,0.783110426527167,0.782527840900496,0.782527840900496, + +00:25:09, +0.0510621878663157,0.0510621878663157,0.0511031721813753,0.0511001107655534,0.051063898297376,0.0510086764909443,0.0509496852522214,0.0509010553655719,0.0508737332454568,0.0508737332454568, +0.0510621878663157,0.0510621878663157,0.0511031721813753,0.0511001107655534,0.051063898297376,0.0510086764909443,0.0509496852522214,0.0509010553655719,0.0508737332454568,0.0508737332454568, +0.070816386165825,0.070816386165825,0.0708577272750344,0.0708442473291518,0.0707897786744061,0.0707123288519368,0.0706313950039139,0.0705652250236259,0.0705281497131255,0.0705281497131255, +0.113075417679911,0.113075417679911,0.113113653483994,0.113075678947896,0.112981256971352,0.112856197942506,0.112728586499435,0.112625096526584,0.112567205640212,0.112567205640212, +0.182482910272934,0.182482910272934,0.182507594334674,0.182424485962787,0.182262404905872,0.182058962975522,0.181855079356381,0.18169035321086,0.181597989318556,0.181597989318556, +0.283907448907262,0.283907448907262,0.283899713498599,0.283742778274251,0.283478297108091,0.283159714387571,0.282844262879859,0.282588653004272,0.282443860309802,0.282443860309802, +0.420252636507571,0.420252636507571,0.420187316699957,0.41991959233773,0.419511482769841,0.419036529064003,0.418569125834644,0.418185145118714,0.417961702538059,0.417961702538059, +0.590317696165277,0.590317696165277,0.590173375407004,0.589747196033682,0.58914870709261,0.588475871269552,0.587813712938875,0.587251767171314,0.586902906228112,0.586902906228112, +0.787498155494876,0.787498155494876,0.787292371771476,0.786627645246301,0.785786227807764,0.784883149517354,0.783989190632629,0.783181146788751,0.78259876984627,0.78259876984627, + +00:25:10, +0.0511531740177906,0.0511531740177906,0.0511941872825982,0.0511911281715114,0.0511548968233781,0.05109964285432,0.0510406156130128,0.0509919552978004,0.0509646158778829,0.0509646158778829, +0.0511531740177906,0.0511531740177906,0.0511941872825982,0.0511911281715114,0.0511548968233781,0.05109964285432,0.0510406156130128,0.0509919552978004,0.0509646158778829,0.0509646158778829, +0.0709200485302726,0.0709200485302726,0.0709614081049186,0.0709479271107994,0.0708934415414054,0.0708159646811796,0.0707350009868285,0.0706688059035214,0.0706317163585815,0.0706317163585815, +0.113200400305408,0.113200400305408,0.11323863643484,0.113200657895903,0.113106227295814,0.112981156020833,0.112853531259037,0.112750030151216,0.112692133013552,0.112692133013552, +0.182630152121479,0.182630152121479,0.18265481729357,0.182571709513653,0.182409641844353,0.182206219341395,0.182002355834416,0.181837646332272,0.181745292035549,0.181745292035549, +0.284067792099217,0.284067792099217,0.284060027863201,0.283903114261563,0.283638689617428,0.283320181021225,0.283004805204299,0.282749257932717,0.282604501323823,0.282604501323823, +0.420407085053407,0.420407085053407,0.42034174679229,0.420074088597011,0.419666102786177,0.419191301116018,0.418724050895364,0.418340197665448,0.41811683003573,0.41811683003573, +0.590441335662437,0.590441335662437,0.590297031840644,0.589870988282859,0.589272708982567,0.588600116413224,0.587938200685385,0.587376461933134,0.587027729447784,0.587027729447784, +0.787567270581948,0.787567270581948,0.787361551273213,0.786697054022248,0.785855936045274,0.784953184141593,0.784059550088858,0.783251799049138,0.782669630586556,0.782669630586556, + +00:25:11, +0.0512442184439753,0.0512442184439753,0.0512852606227201,0.0512822038259252,0.0512459536432515,0.051190667578742,0.0511316044067299,0.0510829137224896,0.0510555570363054,0.0510555570363054, +0.0512442184439753,0.0512442184439753,0.0512852606227201,0.0512822038259252,0.0512459536432515,0.051190667578742,0.0511316044067299,0.0510829137224896,0.0510555570363054,0.0510555570363054, +0.0710237505222419,0.0710237505222419,0.0710651285348227,0.0710516465109921,0.0709971440825294,0.0709196402628564,0.0708386468049131,0.0707724266868385,0.0707353229458429,0.0707353229458429, +0.113325387032044,0.113325387032044,0.113363623479496,0.113325640971073,0.113231201815193,0.113106118383608,0.112978480396054,0.112874968229487,0.11281706488326,0.11281706488326, +0.182777351609706,0.182777351609706,0.182801997916582,0.182718890773495,0.18255683655785,0.182353433563524,0.182149590251502,0.181984897460001,0.18189255279624,0.18189255279624, +0.284228047777909,0.284228047777909,0.284220254770039,0.284063362827734,0.283798994736674,0.283480560297457,0.283165260203563,0.282909775560973,0.282765055050443,0.282765055050443, +0.420561419098555,0.420561419098555,0.420496062446182,0.420228470408881,0.419820608305538,0.419345958605928,0.418878861327769,0.418495135526248,0.418271842811158,0.418271842811158, +0.590564866496414,0.590564866496414,0.590420579635405,0.589994671795139,0.589396601967994,0.588724252456528,0.588062579135781,0.587501047228793,0.587152443092657,0.587152443092657, +0.787636319248647,0.787636319248647,0.787430664302232,0.786766396108,0.785925577304455,0.785023151473659,0.784129841940394,0.783322383421119,0.782740423234462,0.782740423234462, + +00:25:12, +0.0513353210590885,0.0513353210590885,0.0513763921159769,0.051373337643028,0.0513370686712114,0.0512817505783979,0.0512226515475314,0.051173930553775,0.0511465566348472,0.0511465566348472, +0.0513353210590885,0.0513353210590885,0.0513763921159769,0.051373337643028,0.0513370686712114,0.0512817505783979,0.0512226515475314,0.051173930553775,0.0511465566348472,0.0511465566348472, +0.0711274920641997,0.0711274920641997,0.0711688884872496,0.0711554054522185,0.0711008862202099,0.0710233555193147,0.0709423323804244,0.0708760872957589,0.0708389693970496,0.0708389693970496, +0.113450377809817,0.113450377809817,0.113488614568003,0.113450628123403,0.113356180479361,0.113231084980531,0.113103433859997,0.112999910710754,0.112942001198604,0.112942001198604, +0.182924508744092,0.182924508744092,0.182949136210196,0.182866029748712,0.182703989052582,0.182500605647878,0.182296782613345,0.182132106599532,0.18203977160599,0.18203977160599, +0.284388216027343,0.284388216027343,0.284380394303053,0.284223524056592,0.28395921254948,0.283640852299681,0.283325627960815,0.283070205971992,0.282925521572499,0.282925521572499, +0.420715638794152,0.420715638794152,0.420650263812647,0.420382737924295,0.419974999478826,0.419500501684549,0.419033557282576,0.418649958851753,0.418426741014947,0.418426741014947, +0.590688288834286,0.590688288834286,0.590544018958281,0.590118246737618,0.58952038621617,0.588848279566932,0.58818684845771,0.587625523226096,0.587277047330649,0.587277047330649, +0.787705301605284,0.787705301605284,0.787499710968918,0.786835671614288,0.785995151696487,0.785093051625202,0.784200066299354,0.783392900017235,0.782811147902843,0.782811147902843, + +00:25:13, +0.051426481777387,0.051426481777387,0.0514675816766428,0.0514645295370916,0.0514282418215108,0.0513728917675131,0.0513137569496135,0.0512650057058298,0.0512376145876688,0.0512376145876688, +0.051426481777387,0.051426481777387,0.0514675816766428,0.0514645295370916,0.0514282418215108,0.0513728917675131,0.0513137569496135,0.0512650057058298,0.0512376145876688,0.0512376145876688, +0.0712312730787015,0.0712312730787015,0.0712726878847909,0.0712592038570559,0.071204667876967,0.0711271103729902,0.0710460576357076,0.0709797876525531,0.0709426556344299,0.0709426556344299, +0.113575372588854,0.113575372588854,0.113613609650533,0.113575619303022,0.113481163238325,0.113356055761433,0.113228391600511,0.113124857544504,0.113066941908987,0.113066941908987, +0.183071623531214,0.183071623531214,0.183096232180994,0.183013126445799,0.182851099334864,0.182647735600525,0.182443932925748,0.182279273756447,0.18218694847026,0.18218694847026, +0.284548296931477,0.284548296931477,0.284540446546131,0.284383598031915,0.284119343139448,0.283801057111264,0.28348590855917,0.283230549248685,0.283085900972787,0.283085900972787, +0.4208697442911,0.4208697442911,0.420804351042464,0.420536891293973,0.420129276456703,0.419654930502461,0.41918813891027,0.418804667792372,0.418581524797467,0.418581524797467, +0.590811602842794,0.590811602842794,0.590667349975932,0.590241713277058,0.589644061894037,0.588972197911569,0.588311008818482,0.587749890092517,0.587401542329346,0.587401542329346, +0.787774217761926,0.787774217761926,0.787568691383411,0.786904880651595,0.7860646593323,0.785162884707627,0.784270223277602,0.783463348949777,0.782881804704307,0.782881804704307, + +00:25:14, +0.0515177005131662,0.0515177005131662,0.0515588292190302,0.0515557794224261,0.0515194730084413,0.0514640910603512,0.0514049205272105,0.0513561390928646,0.051328730808968,0.051328730808968, +0.0515177005131662,0.0515177005131662,0.0515588292190302,0.0515557794224261,0.0515194730084413,0.0514640910603512,0.0514049205272105,0.0513561390928646,0.051328730808968,0.051328730808968, +0.0713350934883917,0.0713350934883917,0.0713765266501272,0.0713630416481704,0.0713084889754099,0.0712309047464076,0.0711498224931969,0.07108352767958,0.0710463815803007,0.0710463815803007, +0.113700371319418,0.113700371319418,0.113738608677392,0.113700614460191,0.113606150042226,0.11348103067628,0.113353353567375,0.113249808680362,0.113191886963943,0.113191886963943, +0.183218695977742,0.183218695977742,0.183243285835654,0.183160180871347,0.182998167411107,0.182794823427629,0.182591041194609,0.182426398936429,0.182334083394606,0.182334083394606, +0.284708290574218,0.284708290574218,0.284700411583112,0.284543584837432,0.284279386590133,0.283961174815528,0.2836461020817,0.283390805473915,0.283246193334053,0.283246193334053, +0.421023735740066,0.421023735740066,0.420958324286175,0.4206909306684,0.420283439389598,0.419809245210013,0.419342606361102,0.418959262498277,0.418736194308855,0.418736194308855, +0.590934808688349,0.590934808688349,0.590790572854684,0.59036507157989,0.589767629168204,0.589096007657239,0.588435060385078,0.587874147995193,0.587525928256001,0.587525928256001, +0.787843067828395,0.787843067828395,0.787637605655609,0.786974023330163,0.786134100322581,0.785232650832091,0.784340312986758,0.783533730330788,0.782952393751213,0.782952393751213, + +00:25:15, +0.0516089771807602,0.0516089771807602,0.0516501346574907,0.0516470872133802,0.0516107621463331,0.0515553483712141,0.0514961421945947,0.0514473306291281,0.0514199052129805,0.0514199052129805, +0.0516089771807602,0.0516089771807602,0.0516501346574907,0.0516470872133802,0.0516107621463331,0.0515553483712141,0.0514961421945947,0.0514473306291281,0.0514199052129805,0.0514199052129805, +0.0714389532160036,0.0714389532160036,0.0714804047060277,0.0714669187483169,0.0714123494382365,0.0713347385621804,0.0712536268754147,0.0711873072992871,0.0711501471570675,0.0711501471570675, +0.113825373951902,0.113825373951902,0.113863611599018,0.113825613545302,0.113731140841334,0.113606009675169,0.113478319710499,0.113374764068083,0.11331683631314,0.11331683631314, +0.183365726090441,0.183365726090441,0.18339029718095,0.183307193032042,0.183145193287817,0.182941869135448,0.182738107425928,0.182573482145255,0.182481176384686,0.182481176384686, +0.284868197039424,0.284868197039424,0.284860289497788,0.284703484556824,0.28443934298504,0.284121205495744,0.283806208611429,0.283550974730499,0.283406398739002,0.283406398739002, +0.421177613291481,0.421177613291481,0.421112183694089,0.420844856197826,0.420437488427708,0.419963445957316,0.41949695978509,0.419113743119411,0.418890749699015,0.418890749699015, +0.591057906537026,0.591057906537026,0.590913687760531,0.590488321812211,0.589891088204951,0.589219708970411,0.588559003324143,0.587998297100932,0.587650205277532,0.587650205277532, +0.787911851914271,0.787911851914271,0.787706453895163,0.787043099759987,0.786203474777771,0.785302350109504,0.784410335538194,0.783604044272066,0.783022915155671,0.783022915155671, + +00:25:16, +0.0517003116945417,0.0517003116945417,0.0517414979064145,0.0517384528243417,0.051702109149555,0.0516466636144422,0.0515874218660767,0.051538580228907,0.0515111377139798,0.0515111377139798, +0.0517003116945417,0.0517003116945417,0.0517414979064145,0.0517384528243417,0.051702109149555,0.0516466636144422,0.0515874218660767,0.051538580228907,0.0515111377139798,0.0515111377139798, +0.0715428521843595,0.0715428521843595,0.0715843219753507,0.0715708350803391,0.0715162491882333,0.0714386117430103,0.0713574707049721,0.0712911264342106,0.0712539522872243,0.0712539522872243, +0.113950380436834,0.113950380436834,0.113988618365979,0.113950616508882,0.113856135586053,0.113730992708329,0.113603289979927,0.113499723657554,0.113441789906379,0.113441789906379, +0.183512713876171,0.183512713876171,0.183537266223747,0.183454162934663,0.183292176971596,0.183088872730339,0.182885131625795,0.182720523388801,0.18262822744625,0.18262822744625, +0.285028016410903,0.285028016410903,0.285020080373897,0.284863297273722,0.284599212407626,0.284281149235138,0.283966228231331,0.283711057101208,0.283566517270289,0.283566517270289, +0.421331377095542,0.421331377095542,0.421265929416278,0.420998668032266,0.420591423720991,0.42011753289425,0.419651199332018,0.419268109805483,0.419045191117621,0.419045191117621, +0.591180896554573,0.591180896554573,0.591036694859137,0.590611464139787,0.590014439170223,0.589343302017221,0.588682837801992,0.58812233757621,0.587774373560527,0.587774373560527, +0.787980570128891,0.787980570128891,0.787775236211486,0.787112110050822,0.786272782808068,0.785371982650534,0.784480291043036,0.783674290885158,0.783093369029544,0.783093369029544, + +00:25:17, +0.0517917039689228,0.0517917039689228,0.0518329188802313,0.0518298761697376,0.0517935139325151,0.0517380367044148,0.0516787594560057,0.0516298878065262,0.0516024282262779,0.0516024282262779, +0.0517917039689228,0.0517917039689228,0.0518329188802313,0.0518298761697376,0.0517935139325151,0.0517380367044148,0.0516787594560057,0.0516298878065262,0.0516024282262779,0.0516024282262779, +0.0716467903163703,0.0716467903163703,0.0716882783810429,0.0716747905671695,0.0716201881482754,0.0715425242116881,0.071461353904569,0.071394985006975,0.0713577968933535,0.0713577968933535, +0.114075390724871,0.114075390724871,0.114113628928976,0.114075623301587,0.113981134226918,0.113855979726123,0.113728264325834,0.113624687398798,0.113566747693595,0.113566747693595, +0.183659659341886,0.183659659341886,0.183684192971008,0.183601090586085,0.183439118469138,0.183235834218751,0.1830321138004,0.182867522673038,0.182775236585149,0.182775236585149, +0.285187748772415,0.285187748772415,0.285179784295133,0.285023023071709,0.2847589949413,0.284441006116886,0.284126161024338,0.283871052668768,0.283726549010527,0.283726549010527, +0.421485027302209,0.421485027302209,0.421419561602582,0.421152366321501,0.420745245419176,0.420271506170461,0.419805325151438,0.41942236270597,0.419199518714114,0.419199518714114, +0.591303778906404,0.591303778906404,0.591159594315837,0.590734498728054,0.590137682229635,0.589466786963474,0.58880656398461,0.58824626958717,0.587898433271243,0.587898433271243, +0.78804922258135,0.78804922258135,0.787843952713746,0.787181054312176,0.786342024523425,0.785441548565601,0.784550179612166,0.78374447028137,0.783163755484448,0.783163755484448, + +00:25:18, +0.0518831539183549,0.0518831539183549,0.0519243974934101,0.0519213571640342,0.0518849764096605,0.0518294675555503,0.0517701548787698,0.0517212532763496,0.051693776664225,0.051693776664225, +0.0518831539183549,0.0518831539183549,0.0519243974934101,0.0519213571640342,0.0518849764096605,0.0518294675555503,0.0517701548787698,0.0517212532763496,0.051693776664225,0.051693776664225, +0.0717507675350358,0.0717507675350358,0.0717922738461401,0.0717787851318291,0.0717241662413268,0.0716464758910928,0.0715652763969936,0.0714988829402934,0.071461680898126,0.071461680898126, +0.114200404766801,0.114200404766801,0.114238643238841,0.114200633874203,0.114106136714595,0.113980970679043,0.113853242698526,0.113749655241965,0.113691709624852,0.113691709624852, +0.183806562494635,0.183806562494635,0.183831077429786,0.183747975993276,0.183586017787233,0.183382753607229,0.183179053956026,0.183014480004033,0.182922203807327,0.182922203807327, +0.285347394207669,0.285347394207669,0.285339401345136,0.285182662034316,0.28491869066942,0.284600776224117,0.284286007073331,0.284030961515856,0.28388649404228,0.28388649404228, +0.421638564061211,0.421638564061211,0.421573080402606,0.421305951215079,0.420898953671755,0.420425365935363,0.419959337392672,0.419576501970117,0.419353732637704,0.419353732637704, +0.591426553757605,0.591426553757605,0.591282386295633,0.590857425742118,0.590260817548474,0.589590163974647,0.588930182037651,0.588370093299627,0.588022384575609,0.588022384575609, +0.788117809380504,0.788117809380504,0.78791260351087,0.787249932653319,0.786411200033553,0.785511047964885,0.784620001356221,0.783814582571757,0.783234074631753,0.783234074631753, + +00:25:19, +0.0519746614573288,0.0519746614573288,0.0520159336604596,0.0520128957217375,0.0519764964954779,0.0519209560823063,0.0518616080487958,0.0518126765527795,0.0517851829422102,0.0517851829422102, +0.0519746614573288,0.0519746614573288,0.0520159336604596,0.0520128957217375,0.0519764964954779,0.0519209560823063,0.0518616080487958,0.0518126765527795,0.0517851829422102,0.0517851829422102, +0.0718547837634444,0.0718547837634444,0.0718963082937666,0.0718828186974276,0.0718281833904398,0.0717504667041923,0.0716692381051225,0.0716028201569673,0.0715656042243011,0.0715656042243011, +0.114325422513543,0.114325422513543,0.114363661246536,0.114325648177649,0.11423114299988,0.114105965517713,0.113978225048443,0.113874627137342,0.113816675650349,0.113816675650349, +0.183953423341558,0.183953423341558,0.183977919607228,0.183894819163296,0.183732874932764,0.183529630902412,0.183325952099052,0.183161395387948,0.183069129118827,0.183069129118827, +0.285506952800324,0.285506952800324,0.285498931607498,0.285342214245025,0.285078299675297,0.284760459639911,0.284445766461144,0.284190783725105,0.284046352448066,0.284046352448066, +0.421791987522041,0.421791987522041,0.42172648596572,0.421459422862313,0.421052548627989,0.420579112338138,0.420113236204808,0.419730527746941,0.419507833037372,0.419507833037372, +0.591549221272932,0.591549221272932,0.591405070963201,0.590980245346756,0.590383845291697,0.589713433215887,0.589053692126441,0.588493808879068,0.588146227639222,0.588146227639222, +0.788186330634966,0.788186330634966,0.787981188711546,0.787318745183278,0.78648030944792,0.78558048095832,0.784689756385592,0.783884627867135,0.783304326582586,0.783304326582586, + +00:25:20, +0.0520662265003754,0.0520662265003754,0.0521075272959284,0.0521044917573932,0.0520680741044936,0.0520125021991799,0.0519531188805501,0.0519041575502575,0.0518766469746613,0.0518766469746613, +0.0520662265003754,0.0520662265003754,0.0521075272959284,0.0521044917573932,0.0520680741044936,0.0520125021991799,0.0519531188805501,0.0519041575502575,0.0518766469746613,0.0518766469746613, +0.0719588389247733,0.0719588389247733,0.0720003816471354,0.0719868911871634,0.0719322395187555,0.0718544965740428,0.0717732389519211,0.0717067965798867,0.0716695667947265,0.0716695667947265, +0.114450443916149,0.114450443916149,0.114488682903153,0.114450666162973,0.114356153033701,0.114230964192887,0.114103211326153,0.113999603035342,0.113941645720413,0.113941645720413, +0.184100241889888,0.184100241889888,0.184124719510575,0.184041620103298,0.183879689912706,0.183676466111031,0.183472808235951,0.18330826883104,0.183216012525782,0.183216012525782, +0.285666424633988,0.285666424633988,0.285658375165758,0.28550167978727,0.28523782204219,0.284920056447298,0.284605439270565,0.284350519379098,0.284206124310359,0.284206124310359, +0.42194529783396,0.42194529783396,0.421879778441064,0.421612781412286,0.421206030436907,0.420732745527734,0.420267021736703,0.419884440185225,0.419661820061866,0.419661820061866, +0.591671781616816,0.591671781616816,0.591527648482888,0.591102957706419,0.590506765623932,0.589836594852013,0.589177094415976,0.588617416490649,0.588269962627352,0.588269962627352, +0.788254786453111,0.788254786453111,0.788049708424221,0.78738749201084,0.786549352875756,0.785649847655599,0.784759444810431,0.783954606278072,0.783374511447826,0.783374511447826, + +00:25:21, +0.0521578489620654,0.0521578489620654,0.052199178314405,0.0521961451855874,0.0521597091512741,0.0521041058207078,0.0520446872885385,0.0519956961832642,0.0519681686760454,0.0519681686760454, +0.0521578489620654,0.0521578489620654,0.052199178314405,0.0521961451855874,0.0521597091512741,0.0521041058207078,0.0520446872885385,0.0519956961832642,0.0519681686760454,0.0519681686760454, +0.0720629329422883,0.0720629329422883,0.072104493829548,0.0720910025243235,0.0720363345495035,0.0719585654237889,0.071877278860443,0.0718108121320299,0.0717735685323383,0.0717735685323383, +0.114575468925798,0.114575468925798,0.114613708159915,0.114575687781352,0.114481166767115,0.11435596665545,0.114228201482357,0.114124582886512,0.114066619785504,0.114066619785504, +0.184247018146951,0.184247018146951,0.184271477147157,0.184188378820527,0.184026462734127,0.183823259239913,0.183619622373289,0.183455100339662,0.183362854034425,0.183362854034425, +0.285825809792221,0.285825809792221,0.285817732103409,0.285661058744432,0.285397257853311,0.285079566729262,0.284765025584332,0.284510168560372,0.284365809711582,0.284365809711582, +0.422098495145995,0.422098495145995,0.422032957977543,0.421766027013846,0.421359399247304,0.420886265652871,0.420420694136984,0.420038239433524,0.419815693859706,0.419815693859706, +0.591794234953356,0.591794234953356,0.591650119018715,0.591225562985229,0.590629578709482,0.589959649047516,0.589300389070927,0.588740916299202,0.588393589704941,0.588393589704941, +0.788323176943075,0.788323176943075,0.788118162757104,0.787456173244552,0.786618330426045,0.785719148166173,0.784829066740643,0.784024517914896,0.783444629338111,0.783444629338111, + +00:25:22, +0.0522495287570097,0.0522495287570097,0.0522908866305186,0.0522878559209462,0.0522514015504259,0.0521957668614668,0.0521363131873062,0.05208729236632,0.052059747960869,0.052059747960869, +0.0522495287570097,0.0522495287570097,0.0522908866305186,0.0522878559209462,0.0522514015504259,0.0521957668614668,0.0521363131873062,0.05208729236632,0.052059747960869,0.052059747960869, +0.0721670657393441,0.0721670657393441,0.0722086447643948,0.0721951526322832,0.0721404684060018,0.0720626731766639,0.0719813577538301,0.0719148667364635,0.0718776093601608,0.0718776093601608, +0.1147004974938,0.1147004974938,0.114738736968172,0.114700712984095,0.114606184151308,0.114480972856416,0.114353195467883,0.114249566641528,0.114191597796212,0.114191597796212, +0.184393752120165,0.184393752120165,0.184418192524398,0.18433509532232,0.184173193404187,0.183970010295974,0.183766394517726,0.183601889920259,0.18350965365108,0.18350965365108, +0.285985108358529,0.285985108358529,0.285977002503889,0.285820351199842,0.285556607191819,0.285238990568736,0.284924525485137,0.284669731351418,0.284525408734114,0.284525408734114, +0.422251579606941,0.422251579606941,0.422186024723831,0.421919159815611,0.421512655207745,0.421039672862034,0.420574253554049,0.420191925640162,0.419969454579183,0.419969454579183, +0.591916581446329,0.591916581446329,0.591772482734378,0.591348061346982,0.590752284712322,0.590082595966561,0.589423576255638,0.58886430846923,0.588517109036607,0.588517109036607, +0.788391502212756,0.788391502212756,0.788186551818165,0.787524788992721,0.786687242207535,0.785788382599253,0.784898622285896,0.784094362887689,0.783514680363834,0.783514680363834, + +00:25:23, +0.0523412657998598,0.0523412657998598,0.0523826521589387,0.0523796238781363,0.0523431512165956,0.0522874852360739,0.0522279964914388,0.0521789460139848,0.0521513847436781,0.0521513847436781, +0.0523412657998598,0.0523412657998598,0.0523826521589387,0.0523796238781363,0.0523431512165956,0.0522874852360739,0.0522279964914388,0.0521789460139848,0.0521513847436781,0.0521513847436781, +0.0722712372393837,0.0722712372393837,0.0723128343751544,0.0722993414345067,0.0722446410116568,0.0721668197559893,0.072085475555313,0.0720189603163424,0.0719816892013067,0.0719816892013067, +0.114825529571593,0.114825529571593,0.114863769279407,0.114825741722639,0.114731205137597,0.114605982746929,0.114478193233692,0.114374554251198,0.114316579703258,0.114316579703258, +0.184540443817037,0.184540443817037,0.184564865649811,0.184481769616104,0.184319881930137,0.184116719286224,0.183913124676013,0.183748637579369,0.183656411382166,0.183656411382166, +0.286144320416371,0.286144320416371,0.286136186450589,0.285979557236783,0.285715870140827,0.285398328048605,0.28508393905562,0.284829207834678,0.284684921460288,0.284684921460288, +0.422404551365363,0.422404551365363,0.422338978828369,0.422072179965964,0.421665798466564,0.421192967303481,0.420727700136064,0.420345498953234,0.420123102368356,0.420123102368356, +0.592038821259185,0.592038821259185,0.591894739793245,0.591470452955151,0.590874883796102,0.590205435772988,0.589546656134126,0.588987593164911,0.58864052078664,0.58864052078664, +0.788459762369813,0.788459762369813,0.788254875715137,0.787593339363419,0.786756088328733,0.78585755106381,0.784968111555612,0.784164141306293,0.783584664635146,0.783584664635146, + +00:25:24, +0.0524330600053079,0.0524330600053079,0.0524744748143757,0.0524714489718651,0.052434958064471,0.0523792608591862,0.0523197371155617,0.0522706570408586,0.0522430789390585,0.0522430789390585, +0.0524330600053079,0.0524330600053079,0.0524744748143757,0.0524714489718651,0.052434958064471,0.0523792608591862,0.0523197371155617,0.0522706570408586,0.0522430789390585,0.0522430789390585, +0.0723754473659386,0.0723754473659386,0.0724170625853942,0.0724035688545463,0.0723488522899636,0.0722710050851752,0.0721896321882103,0.0721230927949101,0.0720858079789768,0.0720858079789768, +0.114950565110746,0.114950565110746,0.114988805045228,0.114950773948547,0.114856229677427,0.114730996278264,0.114603194730874,0.114499545666457,0.114441565457491,0.114441565457491, +0.184687093245167,0.184687093245167,0.184711496531,0.184628401709398,0.18446652831932,0.184263386217766,0.184059812854997,0.183895343323623,0.183803127234194,0.183803127234194, +0.286303446049152,0.286303446049152,0.286295284026846,0.286138676938484,0.285875046783395,0.285557579251702,0.285243266378378,0.284988598092547,0.284844347972385,0.284844347972385, +0.42255741056959,0.42255741056959,0.422491820439368,0.422225087613062,0.421818829171863,0.421346149125237,0.420881034030964,0.420498959520607,0.420276637375059,0.420276637375059, +0.592160954555049,0.592160954555049,0.592016890358361,0.59159273797288,0.590997376124147,0.590328168630312,0.589669628870086,0.589110770550099,0.588763825119005,0.588763825119005, +0.78852795752167,0.78852795752167,0.788323134555515,0.787661824464476,0.786824868897909,0.785926653668573,0.785037534658977,0.784233853280311,0.783654582261958,0.783654582261958, + +00:25:25, +0.0525249112880871,0.0525249112880871,0.0525663545115809,0.0525633311168812,0.0525268220087801,0.0524710936455018,0.0524115349743407,0.0523624253615813,0.0523348304616362,0.0523348304616362, +0.0525249112880871,0.0525249112880871,0.0525663545115809,0.0525633311168812,0.0525268220087801,0.0524710936455018,0.0524115349743407,0.0523624253615813,0.0523348304616362,0.0523348304616362, +0.0724796960426292,0.0724796960426292,0.0725213293187699,0.072507834816043,0.0724531021645055,0.0723752290877198,0.072293827575929,0.0722272640954979,0.0721899656164604,0.0721899656164604, +0.115075604062956,0.115075604062956,0.115113844217375,0.115075809613514,0.11498125772237,0.114856013401821,0.114728199910646,0.114624540838372,0.114566555009892,0.114566555009892, +0.184833700412243,0.184833700412243,0.184858085175661,0.184774991609811,0.184613132579169,0.184410011097792,0.184206459061613,0.184042007159747,0.183949801213769,0.183949801213769, +0.286462485340227,0.286462485340227,0.286454295315947,0.286297710388126,0.286034137202532,0.285716744260815,0.285402507535954,0.285147902207372,0.285003688352644,0.285003688352644, +0.422710157367724,0.422710157367724,0.422644549704807,0.422377882904825,0.421971747471513,0.421499218475098,0.42103425538646,0.420652307489916,0.420430059746895,0.420430059746895, +0.592282981496723,0.592282981496723,0.592138934592447,0.591714916562994,0.591119761859458,0.590450794701724,0.589792494626886,0.589233840788324,0.588887022197344,0.588887022197344, +0.788596087775514,0.788596087775514,0.788391328446558,0.787730244403488,0.786893584023092,0.785995690522036,0.785106891704934,0.784303498919101,0.783724433353938,0.783724433353938, + +00:25:26, +0.0526168195629714,0.0526168195629714,0.0526582911653468,0.052655270227974,0.0526187429642923,0.0525629835097593,0.0525033899824824,0.0524542508908335,0.0524266392260772,0.0524266392260772, +0.0526168195629714,0.0526168195629714,0.0526582911653468,0.052655270227974,0.0526187429642923,0.0525629835097593,0.0525033899824824,0.0524542508908335,0.0524266392260772,0.0524266392260772, +0.0725839831931641,0.0725839831931641,0.0726256344990258,0.072612139242726,0.0725573905589541,0.0724794916872097,0.0723980616419645,0.0723314741415257,0.0722941620371347,0.0722941620371347, +0.115200646380048,0.115200646380048,0.115238886747712,0.115200848669363,0.11510628922413,0.114981034069132,0.114853208724357,0.114749539718136,0.114691548311569,0.114691548311569, +0.184980265326046,0.184980265326046,0.185004631591577,0.184921539325039,0.184759694717207,0.184556593933584,0.184353063302889,0.184188629094554,0.184096433327586,0.184096433327586, +0.2866214383729,0.2866214383729,0.286613220401128,0.286456657668837,0.286193141481199,0.285875823158678,0.285561662610845,0.285307120261451,0.285162942683252,0.285162942683252, +0.422862791907634,0.422862791907634,0.422797166772434,0.422530565988949,0.422124553513157,0.421652175500633,0.421187364350028,0.420805543008572,0.420583369631239,0.420583369631239, +0.592404902246685,0.592404902246685,0.592260872657904,0.591836988887992,0.591242041164715,0.590573314150092,0.589915253567573,0.589356804042791,0.589010112184976,0.589010112184976, +0.788664153238297,0.788664153238297,0.78845945749529,0.787798599287813,0.786962233812077,0.786064661732451,0.78517618280219,0.784373078331785,0.783794218020514,0.783794218020514, + +00:25:27, +0.0527087847447765,0.0527087847447765,0.0527502846905075,0.0527472662199745,0.0527107208458182,0.0526549303667385,0.0525953020547339,0.0525461335433363,0.0525185051470883,0.0525185051470883, +0.0527087847447765,0.0527087847447765,0.0527502846905075,0.0527472662199745,0.0527107208458182,0.0526549303667385,0.0525953020547339,0.0525461335433363,0.0525185051470883,0.0525185051470883, +0.0726883087413404,0.0726883087413404,0.0727299780499946,0.0727164820584132,0.0726617173970696,0.0725837928073199,0.0725023343099002,0.0724357228565012,0.0723983971644652,0.0723983971644652, +0.115325692013974,0.115325692013974,0.115363932588234,0.115325891068042,0.115231324134535,0.115106058231854,0.11497822112348,0.114874542257073,0.11481654531376,0.11481654531376, +0.185126787994442,0.185126787994442,0.185151135786621,0.185068044862871,0.184906214741046,0.184703134732516,0.184499625585944,0.184335209134954,0.184243023582436,0.184243023582436, +0.286780305230424,0.286780305230424,0.286772059365574,0.286615518863693,0.286352059702305,0.286034816027977,0.285720731685499,0.285466252337034,0.28532211104635,0.28532211104635, +0.423015314336958,0.423015314336958,0.422949671789768,0.422683137012894,0.422277247444207,0.421805020349177,0.42134036106892,0.420958666223756,0.420736567175242,0.420736567175242, +0.592526716967091,0.592526716967091,0.592382704716807,0.591958955110053,0.591364214202272,0.590695727137961,0.59003790585487,0.589479660476386,0.589133095244896,0.589133095244896, +0.788732154016734,0.788732154016734,0.788527521808499,0.787866889224573,0.787030818372421,0.786133567407835,0.785245408059212,0.784442591627245,0.783863936370875,0.783863936370875, + +00:25:28, +0.0528008067483594,0.0528008067483594,0.0528423350019385,0.0528393190077553,0.0528027555682098,0.0527469341312603,0.0526872711058837,0.0526380732338514,0.0526104281394167,0.0526104281394167, +0.0528008067483594,0.0528008067483594,0.0528423350019385,0.0528393190077553,0.0528027555682098,0.0527469341312603,0.0526872711058837,0.0526380732338514,0.0526104281394167,0.0526104281394167, +0.0727926726110436,0.0727926726110436,0.0728343598955971,0.0728208631870104,0.0727660826027001,0.0726881323718136,0.072606645503408,0.0725400101640206,0.0725026709220055,0.0725026709220055, +0.115450740916814,0.115450740916814,0.115488981691061,0.115450936761628,0.115356362405542,0.115231085841776,0.11510323705962,0.114999548406636,0.114941545967831,0.114941545967831, +0.18527326842539,0.18527326842539,0.185297597768755,0.185214508231183,0.185052692658388,0.184849633502052,0.184646145917988,0.184481747287944,0.184389571985196,0.184389571985196, +0.286939085995998,0.286939085995998,0.286930812292417,0.286774294055722,0.286510891948709,0.286193722951347,0.285879714842315,0.285625298516323,0.285481193524032,0.285481193524032, +0.423167724803105,0.423167724803105,0.423102064904098,0.422835596123895,0.422429829411846,0.42195775316784,0.421493245690159,0.421111677282421,0.420889652525823,0.420889652525823, +0.592648425819778,0.592648425819778,0.592504430930912,0.592080815391033,0.591486281134165,0.590818033827554,0.59016045165118,0.589602410251669,0.589255971539778,0.589255971539778, +0.78880009021731,0.78880009021731,0.78859552149274,0.787935114320657,0.787099337811444,0.786202407655968,0.78531456758423,0.784512038914123,0.78393358851397,0.78393358851397, + +00:25:29, +0.0528928854886189,0.0528928854886189,0.0529344420145573,0.0529314285062309,0.0528948470463609,0.0528389947181874,0.0527792970507611,0.0527300698771819,0.0527024081178508,0.0527024081178508, +0.0528928854886189,0.0528928854886189,0.0529344420145573,0.0529314285062309,0.0528948470463609,0.0528389947181874,0.0527792970507611,0.0527300698771819,0.0527024081178508,0.0527024081178508, +0.0728970747262477,0.0728970747262477,0.0729387799598428,0.072925282552512,0.0728704860997823,0.072792510304542,0.0727109951462475,0.0726443359877681,0.0726069832333973,0.0726069832333973, +0.115575793040776,0.115575793040776,0.115614034008443,0.115575985702325,0.115481403989235,0.115356116850809,0.115228256484509,0.115124558118402,0.115066550225275,0.115066550225275, +0.185419706626935,0.185419706626935,0.185444017546029,0.185360929437938,0.185199128477022,0.184996090249744,0.184792624306319,0.184628243560613,0.184536078542839,0.184536078542839, +0.287097780752772,0.287097780752772,0.287089479264738,0.286932983327896,0.286669638303216,0.286352544011375,0.28603861216364,0.285784258881472,0.285640190198341,0.285640190198341, +0.423320023453254,0.423320023453254,0.423254346262481,0.422987943468955,0.422582299563029,0.422110374103503,0.42164601836054,0.421264576331295,0.421042625829677,0.421042625829677, +0.59277002896626,0.59277002896626,0.592626051461655,0.592202569892469,0.591608242122107,0.590940234380776,0.590282891118586,0.589725053530885,0.589378741231978,0.589378741231978, +0.788867961946273,0.788867961946273,0.788663456654333,0.788003274682718,0.787167792236234,0.786271182584394,0.785383661485236,0.784581420300826,0.784003174558511,0.784003174558511, + +00:25:30, +0.052985020880496,0.052985020880496,0.0530266056433235,0.0530235946303576,0.0529869951952069,0.0529311120424238,0.0528713798042372,0.0528221233881719,0.0527944449972199,0.0527944449972199, +0.052985020880496,0.052985020880496,0.0530266056433235,0.0530235946303576,0.0529869951952069,0.0529311120424238,0.0528713798042372,0.0528221233881719,0.0527944449972199,0.0527944449972199, +0.073001515011015,0.073001515011015,0.0730432381668294,0.0730297400790006,0.0729749278123409,0.0728969265294447,0.0728153831622669,0.0727487002515159,0.0727113340223703,0.0727113340223703, +0.115700848338195,0.115700848338195,0.115739089492754,0.115701037842464,0.115606448837826,0.115481151210996,0.115353279350004,0.115249571344081,0.115191558037716,0.115191558037716, +0.18556610260721,0.18556610260721,0.185590395126579,0.185507308491188,0.185345522204828,0.185142504983233,0.184939060758325,0.184774697960139,0.184682543262424,0.184682543262424, +0.287256389583843,0.287256389583843,0.287248060365565,0.287091586763139,0.286828298848584,0.286511279290595,0.286197423731774,0.285943133514586,0.285799101151274,0.285799101151274, +0.423472210434357,0.423472210434357,0.42340651601175,0.42314017919485,0.42273465804448,0.422262883302819,0.421798679226629,0.421417363516877,0.421195487233273,0.421195487233273, +0.592891526567731,0.592891526567731,0.592747566470151,0.592324218775577,0.591730097327494,0.59106232895921,0.590405224418848,0.589847590475953,0.589501404483528,0.589501404483528, +0.788935769309639,0.788935769309639,0.788731327399366,0.788071370417176,0.787236181753641,0.786339892300419,0.785452689869987,0.784650735895522,0.784072694612971,0.784072694612971, + +00:25:31, +0.0530772128389735,0.0530772128389735,0.0531188258032389,0.0531158172951342,0.0530791999297257,0.0530232860189157,0.0529635192812246,0.052914233681707,0.0528865386923949,0.0528865386923949, +0.0530772128389735,0.0530772128389735,0.0531188258032389,0.0531158172951342,0.0530791999297257,0.0530232860189157,0.0529635192812246,0.052914233681707,0.0528865386923949,0.0528865386923949, +0.0731059933894961,0.0731059933894961,0.0731477344407426,0.0731342356906468,0.0730794076644889,0.0730013809705493,0.0729198094754022,0.0728531028791242,0.0728157232127422,0.0728157232127422, +0.115825906761531,0.115825906761531,0.115864148096495,0.115826093134501,0.115731496903652,0.115606188874503,0.115478305608091,0.115374588035505,0.1153165693569,0.1153165693569, +0.185712456374435,0.185712456374435,0.185736730518631,0.185653645399073,0.185491873849772,0.185288877710248,0.185085455281485,0.184921110493792,0.184828966151102,0.184828966151102, +0.287414912572254,0.287414912572254,0.287406555677875,0.287250104444322,0.286986873667516,0.286669928871491,0.286356149628967,0.286101922497718,0.285957926464779,0.285957926464779, +0.423624285893132,0.423624285893132,0.423558574298504,0.423292303448127,0.422886905002699,0.422415280912214,0.42195122843477,0.421570038985442,0.421348236882852,0.421348236882852, +0.593012918785068,0.593012918785068,0.592868976117199,0.592445762201256,0.5918518469114,0.591184317724121,0.590527451713409,0.589970021248478,0.589623961456143,0.589623961456143, +0.789003512413192,0.789003512413192,0.788799133833695,0.788139401630218,0.787304506470283,0.786408536911119,0.785521652846004,0.784719985806144,0.784142148785588,0.784142148785588, + +00:25:32, +0.053169461279077,0.053169461279077,0.0532111024093478,0.0532080964156017,0.0531714611649372,0.0531155165626512,0.053055715396678,0.0530064006727146,0.052978689118288,0.052978689118288, +0.053169461279077,0.053169461279077,0.0532111024093478,0.0532080964156017,0.0531714611649372,0.0531155165626512,0.053055715396678,0.0530064006727146,0.052978689118288,0.052978689118288, +0.0732105097859297,0.0732105097859297,0.0732522687058568,0.0732387693117098,0.0731839255804273,0.0731058735519716,0.0730242740096775,0.0729575437945415,0.0729201507284188,0.0729201507284188, +0.115950968263372,0.115950968263372,0.115989209772292,0.115951151531019,0.115856548139175,0.115731229793624,0.115603335210883,0.115499608144636,0.115441584134706,0.115441584134706, +0.185858767936919,0.185858767936919,0.185883023730497,0.185799940169819,0.185638183419907,0.185435208438608,0.185231807883365,0.185067481168928,0.184975347216113,0.184975347216113, +0.287573349800999,0.287573349800999,0.287564965284593,0.287408536454262,0.287145362842665,0.286828492836497,0.286514789937418,0.286260625912876,0.286116666220753,0.286116666220753, +0.423776249976074,0.423776249976074,0.423710521269118,0.423444316375103,0.423039040583954,0.422567567077885,0.422103666131075,0.421722602883037,0.421500874924431,0.421500874924431, +0.593134205778829,0.593134205778829,0.592990280563277,0.592567200330086,0.591973491034584,0.591306200836454,0.590649573163395,0.590092346009743,0.589746412311219,0.589746412311219, +0.789071191362487,0.789071191362487,0.788866876062943,0.788207368427798,0.787372766492544,0.786477116523332,0.785590550520573,0.784789170140388,0.784211537184362,0.784211537184362, + +00:25:33, +0.0532617661158746,0.0532617661158746,0.0533034353767372,0.0533004319068439,0.0532637788159041,0.0532078035886609,0.0531479680655938,0.0530986242761639,0.0530708961898534,0.0530708961898534, +0.0532617661158746,0.0532617661158746,0.0533034353767372,0.0533004319068439,0.0532637788159041,0.0532078035886609,0.0531479680655938,0.0530986242761639,0.0530708961898534,0.0530708961898534, +0.0733150641246429,0.0733150641246429,0.0733568408865341,0.0733433408665365,0.0732884814844454,0.0732104041979153,0.0731287766892049,0.0730620229218039,0.0730246164933939,0.0730246164933939, +0.116076032796428,0.116076032796428,0.116114274472899,0.116076212984726,0.115981602496986,0.115856273920779,0.115728368110617,0.115624631623561,0.115566602323135,0.115566602323135, +0.186005037303055,0.186005037303055,0.186029274770573,0.185946192811738,0.185784450923372,0.185581497176215,0.185378118571617,0.185213809992993,0.185121686464787,0.185121686464787, +0.287731701353018,0.287731701353018,0.287723289268591,0.287566882875726,0.287303766456633,0.286986971267996,0.286673344739277,0.286419243842016,0.286275320501047,0.286275320501047, +0.423928102829447,0.423928102829447,0.423862357069737,0.423596218121871,0.423191064934289,0.422719741945805,0.422255992461433,0.421875055355486,0.421653401503803,0.421653401503803, +0.593255387709255,0.593255387709255,0.593111479968549,0.592688533322329,0.592095029857484,0.591427978456839,0.590771588929613,0.590214564920717,0.589868757209835,0.589868757209835, +0.789138806262844,0.789138806262844,0.788934554192503,0.788275270915639,0.787440961926577,0.786545631243663,0.785659383000747,0.784858289005716,0.784280859917058,0.784280859917058, + +00:25:34, +0.053354127264477,0.053354127264477,0.053395824620537,0.0533928236839876,0.0533561527977316,0.0533001470120178,0.0532402772030111,0.0531909044070662,0.0531631598220872,0.0531631598220872, +0.053354127264477,0.053354127264477,0.053395824620537,0.0533928236839876,0.0533561527977316,0.0533001470120178,0.0532402772030111,0.0531909044070662,0.0531631598220872,0.0531631598220872, +0.0734196563300511,0.0734196563300511,0.0734614509072252,0.0734479502795623,0.0733930753009203,0.0733149728326724,0.0732333174381846,0.0731665401850358,0.0731291204317488,0.0731291204317488, +0.116201100313539,0.116201100313539,0.116239342151193,0.116201277448454,0.116106659929798,0.115981321208513,0.115853404259658,0.115749658424495,0.115691623874316,0.115691623874316, +0.186151264481324,0.186151264481324,0.186175483647343,0.186092403333229,0.185930676368396,0.185727743931064,0.185524387353985,0.185360096973522,0.18526798390454,0.18526798390454, +0.287889967311196,0.287889967311196,0.287881527712686,0.287725143791427,0.28746208459197,0.287145364248319,0.286831814116643,0.286577776367046,0.286433889387462,0.286433889387462, +0.424079844599288,0.424079844599288,0.424014081846278,0.423748008834293,0.42334297819952,0.422871805661719,0.422408207571509,0.422027396548384,0.421805816766532,0.421805816766532, +0.59337646473627,0.59337646473627,0.593232574492861,0.592809761337934,0.592216463540225,0.591549650745588,0.590893499172554,0.590336678142049,0.589990996312754,0.589990996312754, +0.789206357219355,0.789206357219355,0.789002168327538,0.788343109199233,0.7875090928783,0.786614081178488,0.785728150393343,0.784927342509355,0.784350117091206,0.784350117091206, + +00:25:35, +0.0534465446400382,0.0534465446400382,0.0534882700559203,0.0534852716622024,0.0534485830255679,0.0533925467478377,0.0533326427240112,0.0532832409804752,0.0532554799300277,0.0532554799300277, +0.0534465446400382,0.0534465446400382,0.0534882700559203,0.0534852716622024,0.0534485830255679,0.0533925467478377,0.0533326427240112,0.0532832409804752,0.0532554799300277,0.0532554799300277, +0.0735242863266576,0.0735242863266576,0.0735660986924684,0.0735525974753102,0.0734977069543174,0.0734195793806226,0.0733378961809046,0.0732710955084491,0.0732336624676532,0.0732336624676532, +0.116326170767668,0.116326170767668,0.116364412760176,0.116326344875164,0.116231720390451,0.116106371609498,0.115978443610496,0.115874688499776,0.115816648740505,0.115816648740505, +0.186297449480292,0.186297449480292,0.186321650369377,0.186238571742776,0.186076859763289,0.18587394871123,0.185670614238297,0.185506342118136,0.185414239542879,0.185414239542879, +0.28804814775837,0.28804814775837,0.288039680699647,0.287883319284027,0.287620317331171,0.287303671859745,0.286990198151564,0.286736223569823,0.286592372961748,0.286592372961748, +0.424231475431407,0.424231475431407,0.424165695744434,0.423899688658009,0.423494780525237,0.423023758371147,0.422560311606738,0.422179626607106,0.421958120857962,0.421958120857962, +0.593497437019484,0.593497437019484,0.593353564295743,0.592930884536529,0.592337792242614,0.591671217862697,0.591015304052391,0.590458685834075,0.590113129780422,0.590113129780422, +0.789273844336882,0.789273844336882,0.789069718572981,0.788410883383842,0.787577159453404,0.786682466433945,0.785796852804948,0.7849963307583,0.784419308814102,0.784419308814102, + +00:25:36, +0.0535390181577553,0.0535390181577553,0.0535807715981034,0.0535777757567015,0.0535410694146045,0.0534850027112793,0.0534250645437185,0.0533756339114872,0.0533478564287556,0.0533478564287556, +0.0535390181577553,0.0535390181577553,0.0535807715981034,0.0535777757567015,0.0535410694146045,0.0534850027112793,0.0534250645437185,0.0533756339114872,0.0533478564287556,0.0533478564287556, +0.0736289540390539,0.0736289540390539,0.0736707841668906,0.0736572823783918,0.0736023763691899,0.0735242237662336,0.0734425128417409,0.0733756888163438,0.0733382425253644,0.0733382425253644, +0.116451244111902,0.116451244111902,0.116489486252976,0.116451415217936,0.116356783831909,0.116231425076527,0.116103486115745,0.115999721801871,0.115941676874082,0.115941676874082, +0.186443592308608,0.186443592308608,0.186467774945328,0.186384698048948,0.18622300111645,0.186020111524879,0.185816799232468,0.185652545434545,0.185560453387396,0.185560453387396, +0.288206242777319,0.288206242777319,0.288197748312185,0.288041409436134,0.287778464756682,0.287461894184505,0.28714849692604,0.286894585532155,0.286750771305608,0.286750771305608, +0.424382995471386,0.424382995471386,0.424317198909667,0.424051257738427,0.423646472056802,0.423175600219382,0.422712304712334,0.4223317456768,0.42211031392321,0.42211031392321, +0.59361830471819,0.59361830471819,0.593474449536413,0.593051903077434,0.592459016124144,0.591792679967848,0.591137003728986,0.590580588156814,0.590235157772969,0.590235157772969, +0.789341267720061,0.789341267720061,0.789137205033536,0.788478593574497,0.787645161757346,0.786750787115946,0.785865490341914,0.78506525385931,0.784488435192808,0.784488435192808, + +00:25:37, +0.053631547732869,0.053631547732869,0.0536733291623462,0.0536703358827413,0.0536336118800761,0.0535775148175446,0.0535175425772999,0.053468083115241,0.0534402892333944,0.0534402892333944, +0.053631547732869,0.053631547732869,0.0536733291623462,0.0536703358827413,0.0536336118800761,0.0535775148175446,0.0535175425772999,0.053468083115241,0.0534402892333944,0.0534402892333944, +0.0737336593919196,0.0737336593919196,0.0737755072552063,0.0737620049135062,0.0737070834701789,0.0736289059140611,0.0735471673451572,0.0734803200331079,0.0734428605292273,0.0734428605292273, +0.116576320299453,0.116576320299453,0.116614562582844,0.116576488429978,0.11648185020726,0.116356481562522,0.116228531728146,0.116124758283368,0.116066708227552,0.116066708227552, +0.18658969297501,0.18658969297501,0.186613857383934,0.186530782260398,0.186369100436362,0.186166232380261,0.185962942344501,0.185798706930545,0.185706625445771,0.185706625445771, +0.288364252450773,0.288364252450773,0.288355730632962,0.288199414330303,0.287936526950896,0.287620031304775,0.287306710522018,0.2870528623358,0.286909084500694,0.286909084500694, +0.424534404864583,0.424534404864583,0.424468591487218,0.424202716220733,0.423798052939354,0.423327331351495,0.422864187033286,0.422483753902389,0.422262396107172,0.422262396107172, +0.593739067991368,0.593739067991368,0.593595230373772,0.593172817119648,0.592580135343994,0.591914037220409,0.591258598361884,0.590702385269972,0.590357080450212,0.590357080450212, +0.789408627473294,0.789408627473294,0.789204627813679,0.788546239876002,0.787713099895354,0.786819043330169,0.785934063110364,0.785134111918915,0.784557496334154,0.784557496334154, + +00:25:38, +0.0537241332806635,0.0537241332806635,0.0537659426639523,0.053762951955622,0.053726210337261,0.0536700829818787,0.0536100767399658,0.0535605885069184,0.0535327782591103,0.0535327782591103, +0.0537241332806635,0.0537241332806635,0.0537659426639523,0.053762951955622,0.053726210337261,0.0536700829818787,0.0536100767399658,0.0535605885069184,0.0535327782591103,0.0535327782591103, +0.0738384023100224,0.0738384023100224,0.0738802678822182,0.0738667650054406,0.0738118281820137,0.0737336257487486,0.0736518596157053,0.0735849890832167,0.073547516403675,0.073547516403675, +0.116701399283657,0.116701399283657,0.116739641703155,0.11670156446462,0.116606919469716,0.116481541020526,0.116353580400563,0.116249797896984,0.116191742753546,0.116191742753546, +0.186735751488316,0.186735751488316,0.186759897694018,0.186676824385864,0.186515157731592,0.186312311285709,0.186109043582482,0.185944826614018,0.185852755725772,0.185852755725772, +0.288522176861406,0.288522176861406,0.288513627744583,0.288357334049038,0.288094503996153,0.28777808330268,0.287464839021393,0.287211054062464,0.287067312628607,0.287067312628607, +0.424685703756127,0.424685703756127,0.424619873622097,0.424354064249885,0.423949523317806,0.423478951912328,0.423015958714358,0.422635651428576,0.422414367554518,0.422414367554518, +0.593859726997685,0.593859726997685,0.593715906966411,0.593293626821863,0.592701150061029,0.592035289779432,0.591380088110317,0.590824077332941,0.590478897971655,0.590478897971655, +0.789475923700761,0.789475923700761,0.789271987017657,0.78861382239293,0.787780973972429,0.786887235182063,0.786002571216187,0.785202905043411,0.784626492344737,0.784626492344737, + +00:25:39, +0.053816774716467,0.053816774716467,0.0538586120182693,0.0538556238906878,0.0538188647014814,0.0537627071195706,0.0537026669469697,0.0536531500017447,0.0536253234211124,0.0536253234211124, +0.053816774716467,0.053816774716467,0.0538586120182693,0.0538556238906878,0.0538188647014814,0.0537627071195706,0.0537026669469697,0.0536531500017447,0.0536253234211124,0.0536253234211124, +0.0739431827182178,0.0739431827182178,0.073985065972817,0.0739715625790702,0.0739166104295111,0.0738383831950274,0.0737565895780245,0.0736896958912338,0.073652210073228,0.073652210073228, +0.116826481017974,0.116826481017974,0.116864723567407,0.116826643275316,0.116731991572613,0.116606603403708,0.116478632085984,0.116374840595556,0.116316780404819,0.116316780404819, +0.18688176785743,0.18688176785743,0.186905895884487,0.186822824434167,0.186661173010791,0.186458348249645,0.186255102954586,0.186090904492931,0.185998844235251,0.185998844235251, +0.28868001609184,0.28868001609184,0.288671439729604,0.288515168674786,0.288252395974739,0.287936050260293,0.287622882506012,0.287369160793805,0.287225455770901,0.287225455770901, +0.424836892290924,0.424836892290924,0.424771045459093,0.424505301970619,0.424100883336845,0.423630462046502,0.42316761990009,0.422787438399837,0.422566228409697,0.422566228409697, +0.593980281895495,0.593980281895495,0.593836479472606,0.593414332342455,0.592822060433803,0.592156437803661,0.591501473133205,0.5909456645048,0.590600610496489,0.590600610496489, +0.789543156506413,0.789543156506413,0.789339282749492,0.788681341229629,0.787848784093339,0.786955362776848,0.786071014765046,0.785271633338864,0.784695423330923,0.784695423330923, + +00:25:40, +0.0539094719556514,0.0539094719556514,0.0539513371406889,0.0539483516033269,0.0539115748881031,0.0538553871459528,0.0537953131136088,0.053745767514988,0.0537179246346532,0.0537179246346532, +0.0539094719556514,0.0539094719556514,0.0539513371406889,0.0539483516033269,0.0539115748881031,0.0538553871459528,0.0537953131136088,0.053745767514988,0.0537179246346532,0.0537179246346532, +0.0740480005414495,0.0740480005414495,0.0740899014519811,0.074076397559358,0.0740214301375759,0.0739431781777167,0.0738613571568419,0.07379444038181,0.0737569414624945,0.0737569414624945, +0.116951565455987,0.116951565455987,0.116989808129222,0.116951724815644,0.116857066469411,0.116731668665359,0.116603686737522,0.116499886332048,0.116441821134251,0.116441821134251, +0.18702774209134,0.18702774209134,0.187051851964328,0.186968782414212,0.186807146282694,0.186604343280571,0.186401120469068,0.18623694057534,0.186144890982148,0.186144890982148, +0.288837770224642,0.288837770224642,0.288829166670522,0.288672918289943,0.28841020296889,0.288093932259637,0.287780841057669,0.28752718261143,0.287383514009077,0.287383514009077, +0.424987970613653,0.424987970613653,0.424922107142766,0.424656429527442,0.424252133140934,0.423781861898413,0.423319170734799,0.422939114960428,0.422717978816935,0.422717978816935, +0.594100732842841,0.594100732842841,0.593956948050323,0.593534933839489,0.592942866620557,0.592277481451523,0.591622753589156,0.591067146944317,0.590722218183591,0.590722218183591, +0.789610325993974,0.789610325993974,0.789406515112979,0.788748796490218,0.787916530362628,0.787023426219514,0.786139393862371,0.78534029691111,0.784764289398846,0.784764289398846, + +00:25:41, +0.0540022249136334,0.0540022249136334,0.054044117946647,0.0540411350089717,0.0540043408125365,0.0539481229764019,0.0538880151552239,0.0538384409619604,0.0538105818150288,0.0538105818150288, +0.0540022249136334,0.0540022249136334,0.054044117946647,0.0540411350089717,0.0540043408125365,0.0539481229764019,0.0538880151552239,0.0538384409619604,0.0538105818150288,0.0538105818150288, +0.0741528557047488,0.0741528557047488,0.0741947742447769,0.0741812698713548,0.0741262872312008,0.0740480106217234,0.0739661622769726,0.0738992224796843,0.0738617104961706,0.0738617104961706, +0.117076652551401,0.117076652551401,0.117114895342344,0.117076809039303,0.116982144113691,0.116856736758894,0.116728744308411,0.116624935059548,0.116566864894844,0.116566864894844, +0.187173674199114,0.187173674199114,0.187197765942614,0.187114698334987,0.186953077556119,0.186750296387075,0.186547096134273,0.186382934869381,0.186290895974485,0.186290895974485, +0.288995439342327,0.288995439342327,0.288986808649784,0.288830582976853,0.288567925060786,0.288251729382679,0.287938714758106,0.287685119596893,0.287541487424588,0.287541487424588, +0.425138938868768,0.425138938868768,0.425073058817454,0.424807447064639,0.424403272874313,0.423933151612233,0.423470611362581,0.423090681254381,0.422869618920235,0.422869618920235, +0.594221079997455,0.594221079997455,0.594077312857219,0.59365543147072,0.59306356877922,0.592398420881138,0.591743929636466,0.591188524809948,0.59084372119153,0.59084372119153, +0.789677432266943,0.789677432266943,0.789473684211685,0.788816188278591,0.787984212884612,0.787091425614825,0.786207708613363,0.785408895865755,0.78483309065441,0.78483309065441, + +00:25:42, +0.0540950335058737,0.0540950335058737,0.0541369543516242,0.0541339740230994,0.0540971623902362,0.0540409145263387,0.0539807729872,0.0539311702580176,0.0539032948775787,0.0539032948775787, +0.0540950335058737,0.0540950335058737,0.0541369543516242,0.0541339740230994,0.0540971623902362,0.0540409145263387,0.0539807729872,0.0539311702580176,0.0539032948775787,0.0539032948775787, +0.0742577481332352,0.0742577481332352,0.0742996842763587,0.0742861794401992,0.074231181635466,0.0741528804520421,0.074071004863319,0.0740040421096828,0.0739665170990398,0.0739665170990398, +0.117201742258045,0.117201742258045,0.11723998516064,0.117201895900116,0.117107224459157,0.116981807637851,0.116853804752012,0.116749986731265,0.116691911639726,0.116691911639726, +0.187319564189905,0.187319564189905,0.187343637828499,0.18726057220556,0.187098966839968,0.186896207577828,0.186693029958625,0.186528887383279,0.186436859220373,0.186436859220373, +0.289153023527354,0.289153023527354,0.289144365749782,0.288988162817803,0.288725562332556,0.288409441711336,0.288096503689014,0.287842971831701,0.287699376098834,0.287699376098834, +0.4252897972005,0.4252897972005,0.425223900627271,0.424958354726271,0.424554302680997,0.424084331331912,0.423621941927307,0.423242137425508,0.42302114886338,0.42302114886338, +0.594341323516758,0.594341323516758,0.594197574050638,0.593775825393594,0.593184167067414,0.592519256250314,0.591865001433122,0.591309798259839,0.590965119678562,0.590965119678562, +0.789744475428595,0.789744475428595,0.789540790148956,0.788883516698414,0.788051831763379,0.787159361067314,0.786275959122998,0.785477430308174,0.784901827203291,0.784901827203291, + +00:25:43, +0.0541878976478779,0.0541878976478779,0.0542298462711458,0.0542268685612316,0.0541900395367012,0.0541337617112281,0.0540735865249659,0.0540239553185593,0.0539960637376864,0.0539960637376864, +0.0541878976478779,0.0541878976478779,0.0542298462711458,0.0542268685612316,0.0541900395367012,0.0541337617112281,0.0540735865249659,0.0540239553185593,0.0539960637376864,0.0539960637376864, +0.0743626777521157,0.0743626777521157,0.0744046314719683,0.0743911261911176,0.0743361132755395,0.0742577875937549,0.0741758848408713,0.0741088991967195,0.0740713611959731,0.0740713611959731, +0.11732683452987,0.11732683452987,0.117365077538099,0.117326985352027,0.117232307459638,0.117106881255888,0.116978868021805,0.116875041300532,0.116816961322145,0.116816961322145, +0.187465412072947,0.187465412072947,0.187489467631219,0.187406404035085,0.187244814143223,0.187042076861583,0.186838921950634,0.18667479812534,0.186582780728004,0.186582780728004, +0.289310522862129,0.289310522862129,0.289301838052855,0.289145657895027,0.288883114866275,0.288567069327473,0.288254207932033,0.288000739397305,0.287857180113167,0.287857180113167, +0.425440545752856,0.425440545752856,0.425374632716105,0.425109152656175,0.424705222704779,0.424235401201177,0.423773162572627,0.423393483617396,0.42317256878993,0.42317256878993, +0.594461463557864,0.594461463557864,0.594317731787617,0.593896115765245,0.593304661642448,0.59263998771655,0.5919859691368,0.591430967451827,0.591086413802635,0.591086413802635, +0.789811455581979,0.789811455581979,0.78960783302791,0.788950781853131,0.788119387102791,0.787227232681291,0.78634414549602,0.785545900343518,0.784970499150935,0.784970499150935, + +00:25:44, +0.0542808172551963,0.0542808172551963,0.0543227936207821,0.0543198185389349,0.0542829721674755,0.05422666444658,0.0541664556839951,0.0541167960590292,0.0540888883107793,0.0540888883107793, +0.0542808172551963,0.0542808172551963,0.0543227936207821,0.0543198185389349,0.0542829721674755,0.05422666444658,0.0541664556839951,0.0541167960590292,0.0540888883107793,0.0540888883107793, +0.0744676444866854,0.0744676444866854,0.0745096157569356,0.0744961100494239,0.0744410820766772,0.0743627319720317,0.0742808021347072,0.074213793665796,0.0741762427119293,0.0741762427119293, +0.117451929320948,0.117451929320948,0.11749017242883,0.117452077349101,0.11735739306908,0.11723195756679,0.117103934071395,0.117000098720807,0.116942013895474,0.116942013895474, +0.187611217857555,0.187611217857555,0.187635255360091,0.187552193832794,0.187390619474949,0.187187904247177,0.186984772118894,0.186820667103956,0.186728660505656,0.186728660505656, +0.289467937429005,0.289467937429005,0.289459225641285,0.289303068290707,0.289040582743964,0.2887246123129,0.28841182756875,0.28815842237511,0.288014899548886,0.288014899548886, +0.425591184669617,0.425591184669617,0.425525255227622,0.425259840997964,0.424856033089227,0.424386361363532,0.423924273441968,0.423544719973415,0.423323878843225,0.423323878843225, +0.594581500277576,0.594581500277576,0.594437786224884,0.594016302742501,0.593425052661325,0.592760615437035,0.59210683290487,0.59155203254344,0.591207603721388,0.591207603721388, +0.789878372829921,0.789878372829921,0.789674812951443,0.789017983845959,0.788186879006486,0.787295040560837,0.78641226783695,0.785614306076705,0.785039106602558,0.785039106602558, + +00:25:45, +0.0543737922434243,0.0543737922434243,0.0544157963161482,0.054412823871821,0.054375960198148,0.0543196226479487,0.0542593803798055,0.0542096923949157,0.0541817685123293,0.0541817685123293, +0.0543737922434243,0.0543737922434243,0.0544157963161482,0.054412823871821,0.054375960198148,0.0543196226479487,0.0542593803798055,0.0542096923949157,0.0541817685123293,0.0541817685123293, +0.0745726482623268,0.0745726482623268,0.074614637056678,0.0746011309405199,0.0745460879642221,0.0744677135121302,0.0743857566699922,0.0743187254420013,0.0742811615719545,0.0742811615719545, +0.117577026585473,0.117577026585473,0.117615269787067,0.117577171845527,0.117482481241554,0.117357036524458,0.117229002854508,0.117125158945666,0.117067069313209,0.117067069313209, +0.187756981553127,0.187756981553127,0.187781001024513,0.187697941608,0.187536382844294,0.187333689743529,0.18713058047208,0.186966494327599,0.186874498561689,0.186874498561689, +0.289625267310279,0.289625267310279,0.289616528597302,0.289460394086969,0.28919796604759,0.288882070749375,0.2885693626807,0.288316020846466,0.28817253448724,0.28817253448724, +0.425741714094342,0.425741714094342,0.425675768305265,0.425410419895029,0.425006733977688,0.424537211962258,0.424075274678538,0.42369584663671,0.423475079166385,0.423475079166385, +0.59470143383239,0.59470143383239,0.594557737518859,0.594136386481881,0.59354534028074,0.592881139568652,0.592227592894392,0.591672993691898,0.591328689592151,0.591328689592151, +0.789945227275026,0.789945227275026,0.789741730022228,0.789085122779892,0.788254307577877,0.787362784809808,0.78648032625008,0.785682647612431,0.785107649663151,0.785107649663151, + +00:25:46, +0.0544668225282028,0.0544668225282028,0.0545088542729049,0.0545058844755468,0.0544690035443526,0.0544126362309336,0.0543523605279598,0.0543026442417515,0.0542747042578525,0.0542747042578525, +0.0544668225282028,0.0544668225282028,0.0545088542729049,0.0545058844755468,0.0544690035443526,0.0544126362309336,0.0543523605279598,0.0543026442417515,0.0542747042578525,0.0542747042578525, +0.0746776890045106,0.0746776890045106,0.0747196952967005,0.0747061887898949,0.0746511308636054,0.0745727321393951,0.074490748371979,0.0744236944505118,0.0743861177011823,0.0743861177011823, +0.117702126277761,0.117702126277761,0.117740369567162,0.117702268795612,0.117607571931252,0.11748211808292,0.11735407432499,0.11725022192881,0.117192127528966,0.117192127528966, +0.18790270316914,0.18790270316914,0.187926704633963,0.1878436473701,0.187682104260484,0.187479433359637,0.18727634701895,0.187112279804828,0.187020294904547,0.187020294904547, +0.289782512588193,0.289782512588193,0.289773747003081,0.289617635365884,0.289355264859068,0.289039444718604,0.288726813349367,0.288473534892673,0.288330085009426,0.288330085009426, +0.425892134170369,0.425892134170369,0.425826172092254,0.425560889490539,0.425157325513287,0.424687953140417,0.424226166425322,0.423846863750208,0.423626169902307,0.423626169902307, +0.594821264378496,0.594821264378496,0.594677585825657,0.594256367139598,0.59366552465708,0.593001560267977,0.592348249262119,0.591793851054113,0.591449671571948,0.591449671571948, +0.790012019019673,0.790012019019673,0.789808584342713,0.789152198757701,0.788321672920152,0.787430465531838,0.786548320839478,0.785750925055162,0.785176128437476,0.785176128437476, + +00:25:47, +0.0545599080252176,0.0545599080252176,0.0546019674067584,0.0545990002658149,0.0545621021217688,0.0545057051111794,0.0544453960440654,0.0543956515151141,0.0543676954629099,0.0543676954629099, +0.0545599080252176,0.0545599080252176,0.0546019674067584,0.0545990002658149,0.0545621021217688,0.0545057051111794,0.0544453960440654,0.0543956515151141,0.0543676954629099,0.0543676954629099, +0.0747827666387945,0.0747827666387945,0.0748247904025959,0.0748112835231259,0.0747562107003453,0.0746777877792591,0.0745957771660079,0.0745287006165915,0.0744911110248338,0.0744911110248338, +0.117827228352247,0.117827228352247,0.117865471723588,0.117827368153787,0.117732665092486,0.117607202196321,0.117479148436813,0.117375287624061,0.117317188496484,0.117317188496484, +0.188048382715152,0.188048382715152,0.188072366198002,0.187989311128568,0.187827783732827,0.187625135104582,0.187422071768342,0.187258023544282,0.187166049542756,0.187166049542756, +0.289939673344935,0.289939673344935,0.289930880940742,0.289774792209471,0.289512479260256,0.289196734302239,0.288884179656182,0.288630964594978,0.288487551196592,0.288487551196592, +0.426042445040811,0.426042445040811,0.425976466731586,0.425711249927439,0.425307807838927,0.424838585040848,0.424376948825085,0.423997771456615,0.423777151193673,0.423777151193673, +0.594940992071776,0.594940992071776,0.594797331301085,0.594376244871559,0.593785605946425,0.593121877691277,0.592468802164498,0.591914604786692,0.591570549817495,0.591570549817495, +0.790078748166021,0.790078748166021,0.789875376015128,0.789219211881934,0.788388975136277,0.787498082830332,0.786616251708985,0.785819138509139,0.785244543030071,0.785244543030071, + +00:25:48, +0.0546530486502006,0.0546530486502006,0.0546951356334604,0.0546921711583734,0.0546552558461215,0.0545988292043759,0.0545384868437752,0.054488714130626,0.0544607420431072,0.0544607420431072, +0.0546530486502006,0.0546530486502006,0.0546951356334604,0.0546921711583734,0.0546552558461215,0.0545988292043759,0.0545384868437752,0.054488714130626,0.0544607420431072,0.0544607420431072, +0.0748878810908244,0.0748878810908244,0.0749299223000444,0.0749164150658771,0.0748613274000478,0.0747828803572421,0.0747008429775066,0.0746337438655918,0.0745961414682173,0.0745961414682173, +0.11795233276349,0.11795233276349,0.11799057621094,0.117952469874599,0.117857760679688,0.117732288818928,0.117604225144065,0.117500355985363,0.117442252169624,0.117442252169624, +0.188194020200801,0.188194020200801,0.188217985726266,0.188134932892958,0.187973421270712,0.187770794987527,0.187567754729178,0.18740372555468,0.187311762484926,0.187311762484926, +0.29009674966264,0.29009674966264,0.290087930492349,0.289931864699692,0.289669609332962,0.289353939581878,0.289041461682522,0.288788310034578,0.288644933129831,0.288644933129831, +0.426192646848559,0.426192646848559,0.426126652366037,0.425861501348454,0.425458181097289,0.424989107806169,0.424527622020372,0.424148569898419,0.42392802318294,0.42392802318294, +0.59506061706781,0.59506061706781,0.594916974100646,0.594496019833365,0.593905584304552,0.593242091994517,0.592589251757669,0.592035255045936,0.591691324485205,0.591691324485205, +0.790145414816009,0.790145414816009,0.789942105141478,0.789286162254917,0.788456214328993,0.787565636808475,0.786684118962219,0.785887288078379,0.785312893545245,0.785312893545245, + +00:25:49, +0.0547462443189294,0.0547462443189294,0.0547883588688089,0.0547853970690162,0.0547484646331813,0.0546920084262587,0.0546316328427872,0.0545818320039549,0.0545538439140952,0.0545538439140952, +0.0547462443189294,0.0547462443189294,0.0547883588688089,0.0547853970690162,0.0547484646331813,0.0546920084262587,0.0546316328427872,0.0545818320039549,0.0545538439140952,0.0545538439140952, +0.0749930322863334,0.0749930322863334,0.0750350909148138,0.0750215833439006,0.0749664808884062,0.0748880097989516,0.0748059457319903,0.0747388241229513,0.0747012089567286,0.0747012089567286, +0.118077439466164,0.118077439466164,0.118115682983931,0.11807757391272,0.117982858647411,0.117857377905129,0.117729304400957,0.117625426966778,0.117567318502366,0.117567318502366, +0.188339615635802,0.188339615635802,0.188363563228474,0.188280512672905,0.188119016883606,0.187916413017713,0.187713395910459,0.187549385844826,0.187457433739747,0.187457433739747, +0.290253741623384,0.290253741623384,0.290244895739914,0.290088852918455,0.289826655158936,0.289511060639067,0.289198659509713,0.288945571292617,0.288802230890188,0.288802230890188, +0.426342739736284,0.426342739736284,0.426276729138162,0.426011643896087,0.425608445430834,0.42513952157878,0.424678186153507,0.424299259217885,0.42407878601235,0.42407878601235, +0.595180139521869,0.595180139521869,0.595036514379539,0.594615692180312,0.594025459886932,0.593362203333354,0.592709598197471,0.59215580198784,0.591811995731183,0.591811995731183, +0.790212019071353,0.790212019071353,0.79000877182355,0.789353049978755,0.788523390600821,0.787633127569227,0.786751922702575,0.785955373866673,0.785381180087085,0.785381180087085, + +00:25:50, +0.0548394949472274,0.0548394949472274,0.0548816370286476,0.0548786779135833,0.0548417283987649,0.0547852426926088,0.0547248339568451,0.0546750050508138,0.0546470009915699,0.0546470009915699, +0.0548394949472274,0.0548394949472274,0.0548816370286476,0.0548786779135833,0.0548417283987649,0.0547852426926088,0.0547248339568451,0.0546750050508138,0.0546470009915699,0.0546470009915699, +0.0750982201511423,0.0750982201511423,0.0751402961727593,0.0751267882830356,0.0750716710912014,0.0749931760300822,0.0749110853550615,0.074843941314196,0.0748063134158507,0.0748063134158507, +0.118202548415068,0.118202548415068,0.118240791997396,0.118202680222937,0.118107958950328,0.117982469409432,0.117854386161822,0.117750500522492,0.117692387448813,0.117692387448813, +0.188485169029953,0.188485169029953,0.188509098714422,0.188426050478121,0.188264570581057,0.188061989204462,0.187858995321269,0.187695004423604,0.18760306331599,0.18760306331599, +0.290410649309192,0.290410649309192,0.290401776765391,0.290245756947615,0.289983616819875,0.289668097555297,0.289355773219027,0.289102748450187,0.288959444558654,0.288959444558654, +0.426492723846433,0.426492723846433,0.426426697190294,0.42616167771262,0.425758600981802,0.425289826500857,0.424828641366598,0.424449839557064,0.424229439823925,0.424229439823925, +0.595299559588924,0.595299559588924,0.595155952292658,0.594735262067394,0.594145232848731,0.593482211863143,0.592829841639435,0.592276245768096,0.591932563711231,0.591932563711231, +0.790278561033552,0.790278561033552,0.790075376162909,0.789419875155332,0.788590504054059,0.787700555215327,0.786819663033222,0.786023395977589,0.78544940275945,0.78544940275945, + +00:25:51, +0.0549328004509645,0.0549328004509645,0.0549749700288667,0.0549720136079611,0.0549350470587348,0.0548785319192535,0.0548180901017381,0.0547682331869611,0.0547402131912727,0.0547402131912727, +0.0549328004509645,0.0549328004509645,0.0549749700288667,0.0549720136079611,0.0549350470587348,0.0548785319192535,0.0548180901017381,0.0547682331869611,0.0547402131912727,0.0547402131912727, +0.0752034446111594,0.0752034446111594,0.0752455379998238,0.0752320298092089,0.0751768979343015,0.0750983789764161,0.0750162617724098,0.0749490953649392,0.0749114547711539,0.0749114547711539, +0.118327659565117,0.118327659565117,0.118365903206287,0.11832778876016,0.118233061543231,0.118107563286464,0.11797947038111,0.117875576606811,0.117817458963188,0.117817458963188, +0.188630680393127,0.188630680393127,0.188654592193985,0.188571546318399,0.18841008237269,0.188207523557174,0.188004552970768,0.187840581299976,0.187748651222508,0.187748651222508, +0.29056747280203,0.29056747280203,0.290558573650679,0.290402576868968,0.290140494397423,0.289825050412004,0.289512802891684,0.289259841588327,0.289116574216168,0.289116574216168, +0.426642599321236,0.426642599321236,0.426576556664545,0.426311602940116,0.425908647892212,0.425440022714359,0.424978987801529,0.424600311057783,0.424379984759468,0.424379984759468, +0.59541887742364,0.59541887742364,0.595275287994595,0.594854729649301,0.594264903344813,0.593602117738935,0.592949982238789,0.592396586542092,0.592053028580849,0.592053028580849, +0.790345040803883,0.790345040803883,0.790141918260902,0.789486637886312,0.788657554790786,0.787767919849291,0.786887340057108,0.786091354514471,0.78551756166598,0.78551756166598, + +00:25:52, +0.0550261607460569,0.0550261607460569,0.0550683577854027,0.0550654040680823,0.0550284205290002,0.054971876022066,0.0549114011933015,0.0548615163282012,0.0548334804289908,0.0548334804289908, +0.0550261607460569,0.0550261607460569,0.0550683577854027,0.0550654040680823,0.0550284205290002,0.054971876022066,0.0549114011933015,0.0548615163282012,0.0548334804289908,0.0548334804289908, +0.0753087055923803,0.0753087055923803,0.0753508163220373,0.0753373078484347,0.075282161343662,0.0752036185638227,0.0751214749098122,0.0750542862008814,0.0750166329482957,0.0750166329482957, +0.118452772871348,0.118452772871348,0.118491016565676,0.118452899479416,0.118358166381031,0.118232659490972,0.118104557013392,0.118000655174158,0.117942532999833,0.117942532999833, +0.188776149735278,0.188776149735278,0.188800043677115,0.188717000203606,0.188555552268209,0.188353016085331,0.188150068868198,0.187986116482989,0.187894197468234,0.187894197468234, +0.290724212183813,0.290724212183813,0.290715286477624,0.290559312764258,0.290297287973166,0.289981919290574,0.289669748608852,0.289416850788024,0.289273619943618,0.289273619943618, +0.426792366302698,0.426792366302698,0.426726307702807,0.426461419720415,0.426058586303865,0.425590110361025,0.425129225599969,0.424750673861656,0.424530420960565,0.424530420960565, +0.595538093180381,0.595538093180381,0.59539452163964,0.594974095080421,0.59438447152974,0.593721921115478,0.593070020150462,0.592516824464915,0.592173390495231,0.592173390495231, +0.790411458483405,0.790411458483405,0.790208398218657,0.789553338273139,0.788724542912858,0.787835221573414,0.786954953876962,0.786159249580442,0.785585656910087,0.785585656910087, + +00:25:53, +0.0551195757484673,0.0551195757484673,0.055161800214239,0.0551588492099262,0.0551218487255165,0.0550652749169659,0.0550047671474167,0.0549548543903843,0.054926802620557,0.054926802620557, +0.0551195757484673,0.0551195757484673,0.055161800214239,0.0551588492099262,0.0551218487255165,0.0550652749169659,0.0550047671474167,0.0549548543903843,0.054926802620557,0.054926802620557, +0.0754140030208881,0.0754140030208881,0.0754561310655174,0.0754426223268144,0.0753874612453255,0.0753088947182586,0.0752267246931331,0.0751595137478103,0.0751218478730208,0.0751218478730208, +0.118577888288914,0.118577888288914,0.118616132030755,0.118578012335851,0.118483273418759,0.118357757977822,0.118229646013359,0.118125736179078,0.118067609513209,0.118067609513209, +0.188921577066435,0.188921577066435,0.188945453173842,0.188862412143691,0.188700980277398,0.18849846679849,0.188295543022882,0.188131609981764,0.188039702062181,0.188039702062181, +0.290880867536395,0.290880867536395,0.290871915328015,0.290715964715173,0.290453997628638,0.290138704272336,0.289826610451641,0.289573776130212,0.289430581821839,0.289430581821839, +0.426942024932606,0.426942024932606,0.426875950446752,0.42661112819514,0.42620841635834,0.425740089582376,0.425279354903366,0.424900928110075,0.424680748568584,0.424680748568584, +0.59565720701321,0.59565720701321,0.595513653381782,0.595093358514839,0.594503937557772,0.59384162214722,0.593189955529077,0.592636959691348,0.592293649609273,0.592293649609273, +0.790477814172961,0.790477814172961,0.790274816137083,0.789619976417041,0.788791468521913,0.787902460489771,0.787022504595286,0.786227081278401,0.785653688594963,0.785653688594963, + +00:25:54, +0.0552130453742052,0.0552130453742052,0.0552552972314055,0.055252348949519,0.0552153315642858,0.0551587285199191,0.0550981878800112,0.0550482472894066,0.0550201796818503,0.0550201796818503, +0.0552130453742052,0.0552130453742052,0.0552552972314055,0.055252348949519,0.0552153315642858,0.0551587285199191,0.0550981878800112,0.0550482472894066,0.0550201796818503,0.0550201796818503, +0.0755193368228533,0.0755193368228533,0.0755614821564686,0.0755479731705365,0.0754927975654222,0.0754142073657676,0.0753320110483238,0.0752647779316007,0.075227099471161,0.075227099471161, +0.118703005773088,0.118703005773088,0.118741249556831,0.11870312728473,0.118608382611562,0.118482858701998,0.118354737335819,0.118250819576236,0.1181926884579,0.1181926884579, +0.189066962396705,0.189066962396705,0.189090820694274,0.189007782148677,0.188846366410115,0.188643875706288,0.188440975444218,0.188277061805506,0.188185165013442,0.188185165013442, +0.291037438941579,0.291037438941579,0.291028460283583,0.290872532803345,0.290610623445317,0.290295405438564,0.289983388501114,0.289730617695774,0.289587459931613,0.289587459931613, +0.427091575352529,0.427091575352529,0.427025485037833,0.426760728505692,0.426358138197,0.425889960519713,0.425429375852954,0.425051073944216,0.424830967724676,0.424830967724676, +0.595776219075888,0.595776219075888,0.595632683374707,0.595212520106342,0.594623301582866,0.593961220988306,0.593309788528958,0.592756992375873,0.592413806077566,0.592413806077566, +0.790544107973173,0.790544107973173,0.790341172116872,0.789686552419022,0.78885833171937,0.787969636700218,0.787089992314365,0.786294849711026,0.785721656823578,0.785721656823578, + +00:25:55, +0.0553065695393271,0.0553065695393271,0.0553488487529795,0.0553459032029337,0.0553088689613574,0.0552522367469385,0.0551916633070591,0.0551416949412107,0.0551136115287958,0.0551136115287958, +0.0553065695393271,0.0553065695393271,0.0553488487529795,0.0553459032029337,0.0553088689613574,0.0552522367469385,0.0551916633070591,0.0551416949412107,0.0551136115287958,0.0551136115287958, +0.0756247069245335,0.0756247069245335,0.0756668695211832,0.0756533603058772,0.0755981702301691,0.0755195564324809,0.0754373339014229,0.0753700786782146,0.0753323876686351,0.0753323876686351, +0.118828125279261,0.118828125279261,0.118866369099332,0.118828244281434,0.118733493914707,0.118607961618605,0.118479830935703,0.118375905320413,0.118317769788606,0.118317769788606, +0.189212305736273,0.189212305736273,0.189236146248594,0.189153110228666,0.188991710676298,0.188789242818441,0.188586366141685,0.188422471963497,0.188330586331188,0.188330586331188, +0.29119392648111,0.29119392648111,0.291184921426007,0.291029017110351,0.290767165504625,0.29045202287048,0.290140082838275,0.289887375565539,0.289744254353672,0.289744254353672, +0.427241017703813,0.427241017703813,0.427174911617283,0.426910220793255,0.426507751960986,0.42603972331412,0.425579288589744,0.42520111150504,0.424981078569776,0.424981078569776, +0.595895129521877,0.595895129521877,0.595751611771804,0.595331580008415,0.594742563758683,0.594080717792582,0.593429519304129,0.592876922672675,0.592533860054405,0.592533860054405, +0.79061033998445,0.79061033998445,0.790407466258499,0.789753066379875,0.788925132606429,0.788036750306391,0.787157417136264,0.786362554980775,0.78578956169868,0.78578956169868, + +00:25:56, +0.0554001481599367,0.0554001481599367,0.0554424546950853,0.0554395118862906,0.0554024608328271,0.0553457995140837,0.0552851933445813,0.0552351972617858,0.0552070980773649,0.0552070980773649, +0.0554001481599367,0.0554001481599367,0.0554424546950853,0.0554395118862906,0.0554024608328271,0.0553457995140837,0.0552851933445813,0.0552351972617858,0.0552070980773649,0.0552070980773649, +0.0757301132522738,0.0757301132522738,0.0757722930860404,0.0757587836591994,0.0757035791658706,0.0756249418446164,0.075542693178556,0.075475415913701,0.0754377123914492,0.0754377123914492, +0.118953246762943,0.118953246762943,0.118991490613804,0.118953363281466,0.11885860728358,0.118733066682862,0.118604926768054,0.118500993366512,0.118442853460146,0.118442853460146, +0.1893576070954,0.1893576070954,0.189381429847063,0.189298396393833,0.18913701308596,0.188934568144739,0.188731715124839,0.188567840465097,0.188475966024671,0.188475966024671, +0.291350330236677,0.291350330236677,0.291341298836907,0.29118541771771,0.29092362388793,0.290608556649249,0.290296693544076,0.29004404982028,0.289900965168692,0.289900965168692, +0.427390352127587,0.427390352127587,0.427324230326117,0.427059605198794,0.426657257791225,0.426189378106462,0.425729093254535,0.425351040933288,0.4251310812446,0.4251310812446, +0.596013938504338,0.596013938504338,0.595870438726162,0.595450538374244,0.594861724238581,0.594200112713593,0.593549148008314,0.592996750735635,0.592653811693781,0.592653811693781, +0.790676510306982,0.790676510306982,0.790473698662223,0.789819518400171,0.788991871284072,0.788103801409705,0.787224779162828,0.786430197189885,0.785857403322796,0.785857403322796, + +00:25:57, +0.0554937811521847,0.0554937811521847,0.0555361149738945,0.0555331749157575,0.0554961070948385,0.0554394167374612,0.0553787779086453,0.0553287541671676,0.0553006392435758,0.0553006392435758, +0.0554937811521847,0.0554937811521847,0.0555361149738945,0.0555331749157575,0.0554961070948385,0.0554394167374612,0.0553787779086453,0.0553287541671676,0.0553006392435758,0.0553006392435758, +0.0758355557325064,0.0758355557325064,0.0758777527775065,0.0758642431569533,0.0758090242989181,0.0757303635284795,0.0756480888059358,0.0755807895641959,0.0755430735656962,0.0755430735656962, +0.119078370179758,0.119078370179758,0.119116614055907,0.119078484240441,0.118983722673682,0.118858173850109,0.118730024788039,0.118626083669551,0.118567939427458,0.118567939427458, +0.189502866484423,0.189502866484423,0.189526671500017,0.189443640654434,0.189282273649191,0.189079851695051,0.188877022403313,0.188713167319745,0.188621304103219,0.188621304103219, +0.291506650289913,0.291506650289913,0.291497592597849,0.291341734706888,0.291079998676545,0.290765006855985,0.290453220699417,0.290200640540722,0.290057592457299,0.290057592457299, +0.427539578764761,0.427539578764761,0.427473441305131,0.427208881863055,0.426806655828421,0.426338925037387,0.425878789987905,0.425500862369486,0.425280975889651,0.425280975889651, +0.596132646176136,0.596132646176136,0.595989164390571,0.595569395356717,0.59498078317562,0.594319405904588,0.593668674794937,0.593116476718337,0.592773661149388,0.592773661149388, +0.790742619040745,0.790742619040745,0.790539869428086,0.789885908580266,0.789058547853065,0.788170790111361,0.787292078495682,0.786497776440375,0.785925181798234,0.785925181798234, + +00:25:58, +0.0555874684322698,0.0555874684322698,0.0556298295056265,0.0556268922075495,0.0555898076635822,0.0555330883332251,0.0554724169153658,0.0554223655734387,0.0553942349434932,0.0553942349434932, +0.0555874684322698,0.0555874684322698,0.0556298295056265,0.0556268922075495,0.0555898076635822,0.0555330883332251,0.0554724169153658,0.0554223655734387,0.0553942349434932,0.0553942349434932, +0.0759410342917507,0.0759410342917507,0.0759832485221352,0.0759697387256763,0.0759145055557901,0.0758358214104622,0.0757535207098619,0.0756861995559224,0.0756484711175558,0.0756484711175558, +0.119203495485452,0.119203495485452,0.119241739381421,0.119203607114095,0.119108840040633,0.118983283075802,0.118855124950939,0.118751176184669,0.118693027645599,0.118693027645599, +0.189648083913753,0.189648083913753,0.189671871217867,0.189588843020796,0.189427492376157,0.189225093479322,0.189022287986819,0.188858452536957,0.188766600576239,0.188766600576239, +0.291662886722395,0.291662886722395,0.291653802790342,0.291497968159295,0.291236289951725,0.290921373571742,0.290609664385142,0.290357147807533,0.290214136300063,0.290214136300063, +0.427688697756027,0.427688697756027,0.427622544694902,0.427358050926567,0.426955946213064,0.426488364247328,0.426028378930219,0.425650575953945,0.425430762645214,0.425430762645214, +0.596251252689836,0.596251252689836,0.596107788917524,0.595688151108426,0.595099740722565,0.594438597518516,0.593788099817127,0.593236100774068,0.592893408574623,0.592893408574623, +0.790808666285499,0.790808666285499,0.790605978655917,0.789952237020303,0.789125162413955,0.78823771651234,0.787359315236234,0.786565292834043,0.785992897227081,0.785992897227081, + +00:25:59, +0.0556812099164379,0.0556812099164379,0.0557235982065483,0.0557206636779295,0.0556835624552965,0.0556268142175766,0.0555661102809046,0.0555160313967288,0.0554878850932291,0.0554878850932291, +0.0556812099164379,0.0556812099164379,0.0557235982065483,0.0557206636779295,0.0556835624552965,0.0556268142175766,0.0555661102809046,0.0555160313967288,0.0554878850932291,0.0554878850932291, +0.0760465488566131,0.0760465488566131,0.076088780246567,0.0760752702919928,0.0760200228630521,0.0759413154170439,0.075858988816721,0.0757916458151903,0.0757539049732951,0.0757539049732951, +0.119328622635884,0.119328622635884,0.119366866546242,0.119328731858278,0.119233959340167,0.119108394315514,0.118980227212154,0.11887627086712,0.118818118069741,0.118818118069741, +0.189793259393878,0.189793259393878,0.189817029011099,0.189734003503323,0.1895726692771,0.189370293507574,0.189167511885143,0.189003696126327,0.188911855453216,0.188911855453216, +0.291819039615643,0.291819039615643,0.291809929495837,0.291654118156282,0.291392497794672,0.291077656877524,0.290766024682041,0.290513571701329,0.290370596777504,0.290370596777504, +0.427837709241858,0.427837709241858,0.427771540635791,0.427507112529641,0.427105129085427,0.426637695876498,0.426177860221624,0.425800181826759,0.425580441651361,0.425580441651361, +0.596369758197707,0.596369758197707,0.596226312459218,0.595806805781662,0.595218597031879,0.594557687708028,0.593907423227712,0.593355623055817,0.593013054122584,0.593013054122584, +0.79087465214079,0.79087465214079,0.790672026445329,0.790018503820205,0.789191715067076,0.788304580713407,0.787426489485676,0.78663274647247,0.786060549711207,0.786060549711207, + +00:26:00, +0.0557750055209831,0.0557750055209831,0.0558174209929749,0.0558144892432084,0.0557773713862677,0.0557205943067647,0.0556598579214711,0.0556097515532148,0.0555815896089421,0.0555815896089421, +0.0557750055209831,0.0557750055209831,0.0558174209929749,0.0558144892432084,0.0557773713862677,0.0557205943067647,0.0556598579214711,0.0556097515532148,0.0555815896089421,0.0555815896089421, +0.0761520993537873,0.0761520993537873,0.0761943478775297,0.076180837782614,0.0761255761473564,0.0760468454747907,0.0759644930529866,0.0758971282683965,0.0758593750592676,0.0758593750592676, +0.119453751587032,0.119453751587032,0.119491995506381,0.119453858428959,0.119359080528139,0.119233507524936,0.119105331527201,0.119001367672278,0.118943210655177,0.118943210655177, +0.18993839293536,0.18993839293536,0.189962144890274,0.189879122112494,0.189717804362336,0.189515451789904,0.189312694108149,0.189148898097525,0.18905706874371,0.18905706874371, +0.291975109051122,0.291975109051122,0.291965972795732,0.291810184779146,0.291548622286531,0.291233856854277,0.29092230167085,0.290669912302672,0.290526973970088,0.290526973970088, +0.427986613362511,0.427986613362511,0.427920429267941,0.427656066812371,0.427254204585563,0.426786920064896,0.426327234002051,0.425949680127807,0.425730013047945,0.425730013047945, +0.596488162851721,0.596488162851721,0.596344735167552,0.595925359528422,0.595337352255733,0.594676676625481,0.594026645179227,0.593475043716275,0.593132597946073,0.593132597946073, +0.790940576705949,0.790940576705949,0.79073801289572,0.790084709079684,0.789258205912545,0.78837138281511,0.787493601344978,0.78670013745702,0.786128139352262,0.786128139352262, + +00:26:01, +0.0558688551622474,0.0558688551622474,0.0559112977812694,0.0559083688197451,0.0558712343728298,0.0558144285170859,0.055753659753322,0.0557035259591209,0.0556753484068387,0.0556753484068387, +0.0558688551622474,0.0558688551622474,0.0559112977812694,0.0559083688197451,0.0558712343728298,0.0558144285170859,0.055753659753322,0.0557035259591209,0.0556753484068387,0.0556753484068387, +0.0762576857100539,0.0762576857100539,0.0762999513418379,0.0762864411243384,0.0762311653354426,0.0761524115103557,0.0760700333452192,0.0760026468420246,0.0759648813019139,0.0759648813019139, +0.119578882294988,0.119578882294988,0.119617126217968,0.11957898678222,0.119484203560516,0.119358622659875,0.119230437851713,0.11912646655563,0.119068305357315,0.119068305357315, +0.190083484548835,0.190083484548835,0.190107218866028,0.190024198858861,0.189862897642256,0.189660568336482,0.189457834665776,0.189294058460297,0.189202240457361,0.189202240457361, +0.292131095110239,0.292131095110239,0.292121932771365,0.291966168109126,0.291704663508391,0.291389973582891,0.29107849543225,0.290826169692069,0.290683267958224,0.290683267958224, +0.428135410258026,0.428135410258026,0.428069210731279,0.427804913914635,0.427403172853312,0.426936036952305,0.426476500411217,0.426099070996754,0.42587947697461,0.42587947697461, +0.596606466803556,0.596606466803556,0.59646305719413,0.596043812500409,0.595456006546,0.594795564422933,0.594145765823908,0.59359436290784,0.593252040197596,0.593252040197596, +0.791006440080097,0.791006440080097,0.790803938106277,0.790150852898237,0.789324635050263,0.788438122917783,0.7875606509149,0.786767465888837,0.786195666251679,0.786195666251679, + +00:26:02, +0.0559627587566211,0.0559627587566211,0.0560052284878432,0.0560023023239466,0.055965151331365,0.0559083167648851,0.055847515692762,0.0557973545307192,0.0557691614031724,0.0557691614031724, +0.0559627587566211,0.0559627587566211,0.0560052284878432,0.0560023023239466,0.055965151331365,0.0559083167648851,0.055847515692762,0.0557973545307192,0.0557691614031724,0.0557691614031724, +0.0763633078522805,0.0763633078522805,0.0764055905663932,0.076392080244051,0.0763367903541368,0.0762580134504786,0.076175609620066,0.0761082014626452,0.0760704236277612,0.0760704236277612, +0.119704014715961,0.119704014715961,0.119742258637246,0.119704116874262,0.119609328393383,0.119483739676252,0.119355546141439,0.119251567472785,0.119193402131679,0.119193402131679, +0.190228534245015,0.190228534245015,0.190252250949069,0.190169233753052,0.190007949127325,0.189805643157557,0.18960293356804,0.189439177224465,0.189347370603882,0.189347370603882, +0.292286997874344,0.292286997874344,0.292277809504018,0.292122068227407,0.291860621541285,0.291546007144205,0.291234606046869,0.290982343949975,0.290839478822273,0.290839478822273, +0.428284100068224,0.428284100068224,0.428217885165513,0.427953653976093,0.427552034028296,0.42708504667829,0.426625659588622,0.426248354573051,0.426028833570781,0.426028833570781, +0.596724670204592,0.596724670204592,0.596581278690263,0.59616216484903,0.595574560054258,0.594914351252151,0.594264785313698,0.593713580782611,0.593371381029362,0.593371381029362, +0.79107224236214,0.79107224236214,0.790869802175974,0.790216935375148,0.78939100257992,0.788504801121543,0.787627638295981,0.786834731868852,0.786263130510675,0.786263130510675, + +00:26:03, +0.0560567162205429,0.0560567162205429,0.056099213029156,0.0560962896722687,0.0560591221783039,0.0560022589665549,0.0559414256561437,0.0558912371843292,0.0558630285142447,0.0558630285142447, +0.0560567162205429,0.0560567162205429,0.056099213029156,0.0560962896722687,0.0560591221783039,0.0560022589665549,0.0559414256561437,0.0558912371843292,0.0558630285142447,0.0558630285142447, +0.0764689657074215,0.0764689657074215,0.0765112654781841,0.0764977550687239,0.0764424511303521,0.0763636512219863,0.0762812218042609,0.0762137920569154,0.0761760019634237,0.0761760019634237, +0.119829148806276,0.119829148806276,0.119867392720573,0.119829248661398,0.119734454982941,0.119608858530106,0.119480656352245,0.119376670379462,0.119318500933911,0.119318500933911, +0.190373542034683,0.190373542034683,0.190397241150179,0.190314226805765,0.190152958828082,0.189950676263448,0.18974799082503,0.189584254399929,0.189492459193063,0.189492459193063, +0.292442817424731,0.292442817424731,0.292433603074918,0.292277885215114,0.292016496466189,0.291701957618997,0.291390633595278,0.291138435156791,0.290995606642539,0.290995606642539, +0.428432682932713,0.428432682932713,0.428366452710138,0.42810228713619,0.427700788249923,0.427233949382205,0.426774711673555,0.426397530995932,0.426178082975671,0.426178082975671, +0.59684277320592,0.59684277320592,0.596699399806967,0.596280416725396,0.595693012931793,0.595033037264604,0.594383703800246,0.593832697492396,0.59349062059329,0.59349062059329, +0.791137983650772,0.791137983650772,0.79093560520357,0.790282956609486,0.789457308600989,0.788571417526295,0.787694563588548,0.786901935497778,0.786330532230249,0.786330532230249, + +00:26:04, +0.0561507274704999,0.0561507274704999,0.0561932513217166,0.0561903307812154,0.0561531468301254,0.0560962550385365,0.0560353895598677,0.0559851738363187,0.0559569496564048,0.0559569496564048, +0.0561507274704999,0.0561507274704999,0.0561932513217166,0.0561903307812154,0.0561531468301254,0.0560962550385365,0.0560353895598677,0.0559851738363187,0.0559569496564048,0.0559569496564048, +0.0765746592025185,0.0765746592025185,0.0766169760042859,0.0766034655254161,0.0765481475910884,0.0764693247517921,0.0763868698246249,0.0763194185515792,0.076281616235602,0.076281616235602, +0.119954284522372,0.119954284522372,0.119992528424425,0.119954382100059,0.119859583285504,0.119733979177592,0.119605768440114,0.119501775231502,0.119443601719769,0.119443601719769, +0.190518507928696,0.190518507928696,0.190542189480214,0.190459178027775,0.19029792675514,0.190095667664552,0.189893006446911,0.18972928999666,0.18963750623477,0.18963750623477, +0.292598553842636,0.292598553842636,0.292589313565232,0.292433619153318,0.292172288364025,0.291857825087992,0.291546578157994,0.29129444339286,0.291151651499272,0.291151651499272, +0.428581158990881,0.428581158990881,0.428514913504431,0.428250813534157,0.427849435657384,0.427382745203187,0.426923656805088,0.42654660040442,0.42632722532828,0.42632722532828, +0.596960775958331,0.596960775958331,0.596817420694965,0.596398568280328,0.595811365329594,0.59515162261147,0.594502521434905,0.593951713188708,0.593609759041,0.593609759041, +0.791203664044475,0.791203664044475,0.791001347287617,0.790348916700111,0.789523553212732,0.788637972231727,0.787761426892712,0.786969076876114,0.786397871511185,0.786397871511185, + +00:26:05, +0.0562447924230281,0.0562447924230281,0.056287343282082,0.0562844255673398,0.0562472252033574,0.0561903048973194,0.0561294073203829,0.0560791644031032,0.05605092474605,0.05605092474605, +0.0562447924230281,0.0562447924230281,0.056287343282082,0.0562844255673398,0.0562472252033574,0.0561903048973194,0.0561294073203829,0.0560791644031032,0.05605092474605,0.05605092474605, +0.0766803882646998,0.0766803882646998,0.0767227220718608,0.0767092115412731,0.0766538796634322,0.0765750339668963,0.0764925536080652,0.0764250808734672,0.0763872663710836,0.0763872663710836, +0.120079421820805,0.120079421820805,0.12011766570539,0.120079517146788,0.119984713257502,0.119859101574977,0.119730882361141,0.119626881984858,0.119568704445126,0.119568704445126, +0.190663431937984,0.190663431937984,0.190687095950102,0.190604087429927,0.190442852919185,0.190240617371337,0.190037980443921,0.189874284024708,0.189782511738944,0.189782511738944, +0.292754207209239,0.292754207209239,0.292744941056072,0.292589270123031,0.292327997315656,0.292013609631861,0.29170243981548,0.291450368738477,0.291307613472669,0.291307613472669, +0.428729528381903,0.428729528381903,0.428663267687454,0.428399233309006,0.427997976389656,0.427531434280157,0.427072495122078,0.426695562937325,0.426476260767394,0.426476260767394, +0.59707867861233,0.59707867861233,0.596935341504687,0.596516619664352,0.595929617398361,0.595270107443632,0.594621238368738,0.594070628022768,0.593728796523823,0.593728796523823, +0.791269283641523,0.791269283641523,0.791067028526453,0.79041481574567,0.789589736514199,0.788704465337318,0.787828228308371,0.787036156104143,0.786465148454052,0.786465148454052, + +00:26:06, +0.0563389109947126,0.0563389109947126,0.0563814888268587,0.0563785739472439,0.0563413572145763,0.056284408459442,0.0562234788541869,0.056173208801147,0.0561449536996257,0.0561449536996257, +0.0563389109947126,0.0563389109947126,0.0563814888268587,0.0563785739472439,0.0563413572145763,0.056284408459442,0.0562234788541869,0.056173208801147,0.0561449536996257,0.0561449536996257, +0.0767861528211803,0.0767861528211803,0.0768285036081576,0.0768149930435274,0.0767596472745568,0.0766807787943856,0.076598273081576,0.0765307789494966,0.0764929522967425,0.0764929522967425, +0.120204560658243,0.120204560658243,0.120242804520171,0.120204653758245,0.120109844855481,0.119984225678647,0.119855998071539,0.119751990595599,0.11969380906597,0.11969380906597, +0.190808314073549,0.190808314073549,0.190831960570842,0.19074895502314,0.190587737330974,0.190385525394345,0.190182912826373,0.190019236494193,0.1899274757156,0.1899274757156, +0.292909777605661,0.292909777605661,0.292900485628492,0.292744838205209,0.29248362340189,0.292169311331216,0.291858218648144,0.291606211273876,0.291463492642872,0.291463492642872, +0.42887779124474,0.42887779124474,0.428811515398055,0.428547546599539,0.428146410585502,0.427680016751824,0.427221226763173,0.42684441873324,0.426625189431587,0.426625189431587, +0.597196481318125,0.597196481318125,0.597053162386271,0.596634571027703,0.596047769288499,0.595388491911683,0.594739854752513,0.594189442145502,0.593847733192795,0.593847733192795, +0.791334842539977,0.791334842539977,0.791132649018205,0.790480653844598,0.789655858604226,0.78877089694233,0.787894967935209,0.787103173281934,0.786532363159203,0.786532363159203, + +00:26:07, +0.0564330831021872,0.0564330831021872,0.0564756878727021,0.0564727758375786,0.0564355427804077,0.0563785656414914,0.0563176040778256,0.0562673069469624,0.0562390364336259,0.0562390364336259, +0.0564330831021872,0.0564330831021872,0.0564756878727021,0.0564727758375786,0.0564355427804077,0.0563785656414914,0.0563176040778256,0.0562673069469624,0.0562390364336259,0.0562390364336259, +0.0768919527992619,0.0768919527992619,0.076934320540512,0.0769208099594978,0.0768654503517222,0.0767865591614335,0.076704028172238,0.0766365127066712,0.0765986739395392,0.0765986739395392, +0.12032970099147,0.12032970099147,0.120367944825587,0.120329791891203,0.120234978036099,0.120109351445099,0.119981115527634,0.11987710101991,0.119818915538407,0.119818915538407, +0.190953154346466,0.190953154346466,0.190976783353506,0.190893780818402,0.190732580001338,0.19053039174419,0.190327803604652,0.190164147415313,0.190072398174827,0.190072398174827, +0.293065265112967,0.293065265112967,0.293055947363489,0.292900323480751,0.292639166703476,0.292324930266614,0.292013914736336,0.291761971079241,0.291619289089971,0.291619289089971, +0.429025947718134,0.429025947718134,0.428959656774866,0.428695753544338,0.428294738383469,0.427828492756685,0.427369851866803,0.426993167930551,0.42677401145922,0.42677401145922, +0.597314184225636,0.597314184225636,0.597170883489567,0.596752422520326,0.596165821150124,0.595506776165923,0.59485837073671,0.594308155707549,0.593966569198663,0.593966569198663, +0.79140034083769,0.79140034083769,0.791198208860792,0.790546431095121,0.78972191958144,0.788837267145816,0.787961645872697,0.787170128509344,0.786599515726779,0.786599515726779, + +00:26:08, +0.0565273086621353,0.0565273086621353,0.0565699403363171,0.0565670311550444,0.0565297818175264,0.0564727763601036,0.0564117829078941,0.0563614587571108,0.0563331728645928,0.0563331728645928, +0.0565273086621353,0.0565273086621353,0.0565699403363171,0.0565670311550444,0.0565297818175264,0.0564727763601036,0.0564117829078941,0.0563614587571108,0.0563331728645928,0.0563331728645928, +0.0769977881263332,0.0769977881263332,0.0770401727963461,0.0770266622165901,0.0769712888222748,0.0768923749953001,0.0768098188072183,0.0767422820720814,0.0767044312265208,0.0767044312265208, +0.120454842777383,0.120454842777383,0.120493086578568,0.120454931502548,0.120360112756129,0.120234478830946,0.120106234685868,0.120002213214089,0.119944023818654,0.119944023818654, +0.191097952767878,0.191097952767878,0.191121564309237,0.191038564826776,0.190877380941179,0.19067521643156,0.190472652789218,0.190309016798336,0.190217279126789,0.190217279126789, +0.293220669812163,0.293220669812163,0.293211326342001,0.293055726030496,0.29279462730111,0.292480466518556,0.292169528160353,0.2919176482347,0.291775002893998,0.291775002893998, +0.429173997940617,0.429173997940617,0.429107691956305,0.428843854281776,0.428442959921892,0.427976862433019,0.427518370571189,0.427141810667428,0.426922726988442,0.426922726988442, +0.597431787484491,0.597431787484491,0.59728850496413,0.596870174291875,0.596283773133059,0.595624960356363,0.594976786471515,0.594426768859253,0.594085304691881,0.594085304691881, +0.791465778632304,0.791465778632304,0.791263708151925,0.790612147595255,0.789787919544257,0.788903576046617,0.788028262220094,0.787237021886016,0.786666606256706,0.786666606256706, + +00:26:09, +0.0566215875912896,0.0566215875912896,0.0566642461344579,0.0566613398163912,0.0566240742426564,0.056567040531964,0.0565060152610363,0.0564556641482022,0.0564273629091178,0.0564273629091178, +0.0566215875912896,0.0566215875912896,0.0566642461344579,0.0566613398163912,0.0566240742426564,0.056567040531964,0.0565060152610363,0.0564556641482022,0.0564273629091178,0.0564273629091178, +0.0771036587298693,0.0771036587298693,0.0771460603031689,0.0771325497422964,0.0770771626136478,0.0769982262233317,0.0769156449137708,0.0768480869729039,0.0768102240848209,0.0768102240848209, +0.120579985972994,0.120579985972994,0.120618229736159,0.120580072549281,0.120485248972457,0.120359607792914,0.120231355502797,0.12012732713455,0.120069133863045,0.120069133863045, +0.191242709349005,0.191242709349005,0.19126630344925,0.191183307059394,0.191022140161471,0.190819999467214,0.190617460390603,0.190453844653606,0.190362118581722,0.190362118581722, +0.2933759917842,0.2933759917842,0.293366622644909,0.29321104593523,0.292950005275426,0.292635920167488,0.292325059000437,0.292073242820324,0.291930634134933,0.291930634134933, +0.429321942050503,0.429321942050503,0.429255621080578,0.428991848950009,0.428591075338893,0.428125125918896,0.427666783014337,0.427290347081829,0.427071336157191,0.427071336157191, +0.597549291244029,0.597549291244029,0.597406026959231,0.596987826491712,0.59640162538684,0.595743044632722,0.595095102106826,0.59454528175067,0.594203939822614,0.594203939822614, +0.791531156021255,0.791531156021255,0.791329146989103,0.790677803442806,0.789853858590882,0.788969823743362,0.788094817076448,0.787303853511381,0.786733634848698,0.786733634848698, + +00:26:10, +0.0567159198064324,0.0567159198064324,0.0567586051839286,0.0567557017384183,0.0567184199725714,0.0566613580738072,0.0566003010539451,0.0565499230368956,0.0565216064838408,0.0565216064838408, +0.0567159198064324,0.0567159198064324,0.0567586051839286,0.0567557017384183,0.0567184199725714,0.0566613580738072,0.0566003010539451,0.0565499230368956,0.0565216064838408,0.0565216064838408, +0.0772095645374319,0.0772095645374319,0.0772519829885758,0.0772384724641955,0.0771830716533605,0.0771041127729615,0.0770215064192355,0.076953927336402,0.0769160524416593,0.0769160524416593, +0.120705130535425,0.120705130535425,0.120743374255517,0.120705214988513,0.120610386642083,0.120484738287843,0.120356477935089,0.120252442737821,0.120194245628027,0.120194245628027, +0.191387424101131,0.191387424101131,0.191411000784828,0.19132800752746,0.191166857673258,0.190964740861982,0.190762226419408,0.190598630991538,0.190506916549935,0.190506916549935, +0.293531231109968,0.293531231109968,0.293521836353037,0.293366283275678,0.293105300707006,0.292791291293796,0.292480507336771,0.292228754916132,0.292086182892702,0.292086182892702, +0.429469780185896,0.429469780185896,0.429403444285675,0.429139737686982,0.428739084772379,0.428273283352172,0.427815089334042,0.427438777311502,0.427219839103193,0.427219839103193, +0.5976666956533,0.5976666956533,0.597523449623847,0.597105379268914,0.596519378060712,0.595861029144432,0.59521331779225,0.594663694531567,0.594322474740738,0.594322474740738, +0.79159647310177,0.79159647310177,0.791394525469619,0.790743398735373,0.78991973681931,0.789036010334471,0.788161310540595,0.787370623484657,0.786800601602256,0.786800601602256, + +00:26:11, +0.056810305224396,0.056810305224396,0.056853017401583,0.0568501168379752,0.0568128189240947,0.0567557289024174,0.0566946402033631,0.0566442353398991,0.056615903505451,0.056615903505451, +0.056810305224396,0.056810305224396,0.056853017401583,0.0568501168379752,0.0568128189240947,0.0567557289024174,0.0566946402033631,0.0566442353398991,0.056615903505451,0.056615903505451, +0.0773155054766694,0.0773155054766694,0.0773579407802487,0.0773444303099526,0.0772890158690191,0.0772100345717089,0.0771274032510391,0.0770598030899254,0.0770219162243426,0.0770219162243426, +0.120830276421915,0.120830276421915,0.120868520093914,0.120830358777473,0.12073552572212,0.120609870272686,0.120481601939526,0.120377559980541,0.120319359070162,0.120319359070162, +0.191532097035617,0.191532097035617,0.191555656327326,0.191472666242246,0.191311533487657,0.191109440626767,0.190906950886311,0.190743375822619,0.190651673041811,0.190651673041811, +0.293686387870301,0.293686387870301,0.293676967547151,0.293521438132509,0.293260513676371,0.292946579977813,0.292635873249487,0.292384184602086,0.292241649247173,0.292241649247173, +0.429617512484684,0.429617512484684,0.429551161709373,0.429287520630425,0.428886988360045,0.428421334870491,0.427963289667889,0.427587101493984,0.427368235963963,0.427368235963963, +0.597784000861064,0.597784000861064,0.597640773106669,0.597222832772268,0.596637031303633,0.595978914040634,0.595331433677109,0.594782007351422,0.594440909595838,0.594440909595838, +0.791661729970868,0.791661729970868,0.791459843690559,0.790808933570344,0.78998555432733,0.789102135918153,0.788227742711162,0.787437331904855,0.786867506616671,0.786867506616671, + +00:26:12, +0.0569047437620623,0.0569047437620623,0.056947482704325,0.0569445850319611,0.0569072710140996,0.0568501529346286,0.0567890326260821,0.0567386009739704,0.0567102538906869,0.0567102538906869, +0.0569047437620623,0.0569047437620623,0.056947482704325,0.0569445850319611,0.0569072710140996,0.0568501529346286,0.0567890326260821,0.0567386009739704,0.0567102538906869,0.0567102538906869, +0.0774214814753167,0.0774214814753167,0.077463933605956,0.0774504232073193,0.0773949951883159,0.0773159915471797,0.0772333353366945,0.07716571416091,0.0771278153602633,0.0771278153602633, +0.120955423589813,0.120955423589813,0.120993667208733,0.120955503873498,0.120860666169792,0.120735003704509,0.120606727473006,0.120502678819467,0.120444474146124,0.120444474146124, +0.191676728163888,0.191676728163888,0.191700270088169,0.191617283215095,0.191456167615851,0.19125409877254,0.191051633802058,0.19088807915741,0.190796388067804,0.190796388067804, +0.293841462145974,0.293841462145974,0.293832016307958,0.293676510586332,0.293415644263987,0.293101786299814,0.292791156818656,0.292539531958094,0.292397033278162,0.292397033278162, +0.429765139084542,0.429765139084542,0.429698773489238,0.429435197917856,0.429034786239375,0.428569280611285,0.428111384153248,0.4277353197666,0.427516526876806,0.427516526876806, +0.597901207015797,0.597901207015797,0.597757997556102,0.597340187150272,0.596754585264271,0.596096699470184,0.595449449910433,0.594900220359424,0.594559244537214,0.594559244537214, +0.791726926725362,0.791726926725362,0.791525101748801,0.790874408044903,0.79005131121252,0.78916820059241,0.788294113686565,0.78750397887077,0.78693434999102,0.78693434999102, + +00:26:13, +0.0569992353363635,0.0569992353363635,0.0570420010091086,0.0570391062373255,0.0570017761595091,0.0569446300873245,0.0568834782389439,0.0568330198559166,0.0568046575563362,0.0568046575563362, +0.0569992353363635,0.0569992353363635,0.0570420010091086,0.0570391062373255,0.0570017761595091,0.0569446300873245,0.0568834782389439,0.0568330198559166,0.0568046575563362,0.0568046575563362, +0.077527492461195,0.077527492461195,0.0775699613935525,0.0775564510841336,0.0775010095390297,0.0774219836270661,0.077339302603801,0.0772716604768781,0.0772337497769005,0.0772337497769005, +0.121080571996582,0.121080571996582,0.121118815557467,0.121080650234038,0.120985807942439,0.12086013854049,0.120731854492536,0.120627799211465,0.120569590812702,0.120569590812702, +0.191821317497442,0.191821317497442,0.191844842078851,0.191761858457421,0.191600760069097,0.191398715310344,0.191196275177466,0.191032741006541,0.190941061638441,0.190941061638441, +0.293996454017705,0.293996454017705,0.293986982716107,0.293831500717701,0.29357069255026,0.293256910340016,0.292946358124297,0.292694797064006,0.292552335065429,0.292552335065429, +0.429912660122933,0.429912660122933,0.429846279762623,0.429582769686581,0.429182478547639,0.428717120711776,0.428259372927283,0.427883432266465,0.427664711978816,0.427664711978816, +0.598018314265684,0.598018314265684,0.597875123120264,0.59745744255114,0.596872040091009,0.596214385581649,0.595567366640967,0.595018333704477,0.594677479713878,0.594677479713878, +0.791792063461859,0.791792063461859,0.791590299741017,0.790939822256024,0.790117007572252,0.789234204455034,0.788360423565011,0.78757056448099,0.787001131824173,0.787001131824173, + +00:26:14, +0.0570937798642822,0.0570937798642822,0.0571365722329382,0.0571336803710681,0.0570963342772968,0.0570391602774388,0.0569779769588397,0.0569274919025943,0.0568991144192364,0.0568991144192364, +0.0570937798642822,0.0570937798642822,0.0571365722329382,0.0571336803710681,0.0570963342772968,0.0570391602774388,0.0569779769588397,0.0569274919025943,0.0568991144192364,0.0568991144192364, +0.0776335383622121,0.0776335383622121,0.0776760240709793,0.0776625138683198,0.0776070588490255,0.0775280107391464,0.0774453049800441,0.0773776419654382,0.0773397194018193,0.0773397194018193, +0.121205721599795,0.121205721599795,0.121243965097726,0.121205797816656,0.121110950997508,0.12098527473792,0.120856982955237,0.120752921113516,0.120694709026797,0.120694709026797, +0.191965865047846,0.191965865047846,0.191989372310934,0.191906391980706,0.19174531085872,0.191543290251294,0.191340875023425,0.191177361380715,0.191085693764318,0.191085693764318, +0.294151363566151,0.294151363566151,0.294141866852188,0.293986408607109,0.293725658615541,0.293411952178582,0.293101477246371,0.29284997999962,0.292707554688678,0.292707554688678, +0.43006007573711,0.43006007573711,0.429993680666668,0.429730236073695,0.429330065421899,0.428864855308972,0.428407256126942,0.428031439130483,0.427812791406879,0.427812791406879, +0.598135322758626,0.598135322758626,0.597992149946984,0.597574599122797,0.596989395931944,0.596331972523311,0.59568518401717,0.595136347535197,0.594795615274553,0.594795615274553, +0.791857140276761,0.791857140276761,0.791655437763674,0.791005176300477,0.790182643503689,0.78930014760361,0.788426672444499,0.787637088833895,0.787067852214787,0.787067852214787, + +00:26:15, +0.0571883772628512,0.0571883772628512,0.0572311962928687,0.0572283073502392,0.0571909452844865,0.0571337434219555,0.0570725287027111,0.0570220170309102,0.0569936243962747,0.0569936243962747, +0.0571883772628512,0.0571883772628512,0.0572311962928687,0.0572283073502392,0.0571909452844865,0.0571337434219555,0.0570725287027111,0.0570220170309102,0.0569936243962747,0.0569936243962747, +0.0777396191063619,0.0777396191063619,0.077782121566264,0.0777686114878886,0.0777131430462545,0.0776340728112853,0.0775513423931956,0.0774836585542851,0.0774457241626712,0.0774457241626712, +0.121330872357139,0.121330872357139,0.121369115787227,0.121330946579027,0.121236095292561,0.121110412254202,0.120982112818343,0.120878044482712,0.120819828745422,0.120819828745422, +0.192110370826734,0.192110370826734,0.19213386079605,0.192050883796499,0.191889819996114,0.191687823606571,0.191485433350892,0.191321940290705,0.191230284456105,0.191230284456105, +0.294306190871914,0.294306190871914,0.294296668796736,0.294141234334993,0.293880542540121,0.293566911895614,0.293256514264782,0.293005080844675,0.292862692227558,0.292862692227558, +0.43020738606411,0.43020738606411,0.430140976338301,0.42987759721608,0.429477546999001,0.429012484539673,0.428555033888968,0.428179340495351,0.427960765297669,0.427960765297669, +0.59825223264224,0.59825223264224,0.598109078183809,0.597691657012886,0.597106652934886,0.596449460443164,0.595802902187214,0.595254261999914,0.59491365136768,0.59491365136768, +0.791922157266262,0.791922157266262,0.791720515913032,0.791070470274824,0.790248219103789,0.789366030135514,0.788492860422818,0.787703552027653,0.787134511261312,0.787134511261312, + +00:26:16, +0.0572830274491542,0.0572830274491542,0.0573258731060057,0.0573229870919396,0.0572856090981525,0.0572283794379091,0.0571671333875497,0.057116595157821,0.0570881874043882,0.0570881874043882, +0.0572830274491542,0.0572830274491542,0.0573258731060057,0.0573229870919396,0.0572856090981525,0.0572283794379091,0.0571671333875497,0.057116595157821,0.0570881874043882,0.0570881874043882, +0.0778457346217248,0.0778457346217248,0.0778882538075203,0.0778747438709368,0.0778192620587544,0.0777401697714337,0.0776574147711133,0.0775897101711996,0.0775517639871936,0.0775517639871936, +0.12145602422641,0.12145602422641,0.121494267583799,0.121456096478936,0.121361240785271,0.12123555104685,0.1211072440392,0.121003169276259,0.120944949925703,0.120944949925703, +0.19225483484581,0.19225483484581,0.1922783075459,0.19219533391642,0.19203428749274,0.191832315387427,0.191629950170896,0.191466477747354,0.191374833724541,0.191374833724541, +0.294460936015535,0.294460936015535,0.294451388630223,0.294295977981731,0.294035344404235,0.293721789571161,0.293411469259379,0.293160099678857,0.293017747761664,0.293017747761664, +0.430354591240761,0.430354591240761,0.430288166914241,0.430024853250407,0.429624923415583,0.429160008540467,0.42870270634989,0.428327136497554,0.428108633787652,0.428108633787652, +0.598369044063856,0.598369044063856,0.598225907978,0.597808616368763,0.597223811247362,0.596566849488921,0.595920521298987,0.595372077246675,0.595031588141413,0.595031588141413, +0.791987114526356,0.791987114526356,0.79178553428515,0.791135704275424,0.790313734469303,0.789431852147917,0.788558987597553,0.787769954160225,0.787201109061987,0.787201109061987, + +00:26:17, +0.0573777303403254,0.0573777303403254,0.0574206025895056,0.0574177195133209,0.0573803256354198,0.0573230682423843,0.0572617909303976,0.0572112262003335,0.0571828033605641,0.0571828033605641, +0.0573777303403254,0.0573777303403254,0.0574206025895056,0.0574177195133209,0.0573803256354198,0.0573230682423843,0.0572617909303976,0.0572112262003335,0.0571828033605641,0.0571828033605641, +0.0779518848364675,0.0779518848364675,0.077994420722948,0.0779809109456474,0.0779254158146487,0.0778463015476287,0.0777635220417414,0.0776957967440487,0.0776578388032103,0.0776578388032103, +0.121581177165517,0.121581177165517,0.121619420445385,0.121581247474278,0.121486387433422,0.12136069107349,0.121232376575263,0.121128295451474,0.121070072524877,0.121070072524877, +0.192399257116846,0.192399257116846,0.192422712572249,0.192339742352156,0.19217871336013,0.191976765605182,0.191774425494536,0.191610973761575,0.191519341580435,0.191519341580435, +0.294615599077498,0.294615599077498,0.294606026433065,0.294450639627642,0.294190064288059,0.293876585285212,0.293566342309954,0.293315036581794,0.293172721370534,0.293172721370534, +0.430501691403679,0.430501691403679,0.430435252530995,0.430172004313139,0.429772194808073,0.429307427447734,0.428850273646031,0.428474827273368,0.428256397013087,0.428256397013087, +0.59848575717052,0.59848575717052,0.598342639476536,0.597925477337501,0.597340871016613,0.596684139808006,0.596038041500093,0.59548979342324,0.59514942574362,0.59514942574362, +0.792052012152829,0.792052012152829,0.791850492975879,0.791200878398431,0.790379189696778,0.789497613737783,0.788625054066078,0.787836295329366,0.787267645714847,0.787267645714847, + +00:26:18, +0.0574724858535501,0.0574724858535501,0.0575153846605757,0.0575125045315859,0.0574750948134643,0.0574178097525168,0.0573565012483471,0.0573059100755048,0.0572774721818398,0.0572774721818398, +0.0574724858535501,0.0574724858535501,0.0575153846605757,0.0575125045315859,0.0574750948134643,0.0574178097525168,0.0573565012483471,0.0573059100755048,0.0572774721818398,0.0572774721818398, +0.0780580696788428,0.0780580696788428,0.0781006222408334,0.0780871126402895,0.0780316042421473,0.0779524680679931,0.0778696641331099,0.0778019182007855,0.0777639485386308,0.0777639485386308, +0.121706331132479,0.121706331132479,0.121744574330035,0.12170639952306,0.121611535194907,0.121485832291858,0.121357510384102,0.121253422965784,0.121195196500295,0.121195196500295, +0.192543637651681,0.192543637651681,0.192567075886933,0.192484109115461,0.192323097609883,0.192121174271227,0.191918859332978,0.191755428344351,0.191663808034666,0.191663808034666, +0.294770180138226,0.294770180138226,0.294760582285619,0.294605219352987,0.294344702271712,0.294031299117699,0.293721133496243,0.29346989163306,0.293327613133651,0.293327613133651, +0.430648686689271,0.430648686689271,0.430582233324857,0.430319050540524,0.429919361312688,0.429454741397641,0.428997735913502,0.428622412958863,0.428404055110021,0.428404055110021, +0.598602372108996,0.598602372108996,0.59845927282611,0.598042240065888,0.597457832389597,0.596801331547563,0.59615546293785,0.595607410677086,0.595267164321888,0.595267164321888, +0.792116850241266,0.792116850241266,0.791915392080868,0.791265992739793,0.790444584882555,0.789563315001871,0.788691059925563,0.787902575632622,0.787334121317714,0.787334121317714, + +00:26:19, +0.0575672939060647,0.0575672939060647,0.0576102192364748,0.0576073420639883,0.0575699165495128,0.057512603885493,0.0574512642585416,0.0574006467004427,0.0573721937853034,0.0573721937853034, +0.0575672939060647,0.0575672939060647,0.0576102192364748,0.0576073420639883,0.0575699165495128,0.057512603885493,0.0574512642585416,0.0574006467004427,0.0573721937853034,0.0573721937853034, +0.0781642890771896,0.0781642890771896,0.0782068582895486,0.0781933488832184,0.0781378272695458,0.0780586692607362,0.0779758409733349,0.077908074469449,0.077870093121451,0.077870093121451, +0.121831486085426,0.121831486085426,0.12186972919591,0.1218315525834,0.121736684027732,0.121610974659801,0.121482645423396,0.121378551776729,0.121320321809417,0.121320321809417, +0.19268797646222,0.19268797646222,0.192711397501855,0.192628434218157,0.192467440253665,0.192265541397018,0.192063251697458,0.191899841506734,0.191808233098184,0.191808233098184, +0.294924679278086,0.294924679278086,0.294915056268181,0.294759717237968,0.294499258435252,0.294185931148496,0.293875842897923,0.29362466491217,0.29348242313044,0.29348242313044, +0.430795577233731,0.430795577233731,0.430729109431914,0.430465992068603,0.430066423065435,0.42960195052615,0.429145093288206,0.428769893689897,0.428551608214295,0.428551608214295, +0.598718889025765,0.598718889025765,0.598575808173135,0.598158904700433,0.597574695512991,0.596918424854453,0.596272785759297,0.59572492915541,0.59538480402352,0.59538480402352, +0.79218162888705,0.79218162888705,0.791980231695565,0.791331047395257,0.790509920122771,0.789628956036733,0.788757005272973,0.787968795167334,0.787400535968206,0.787400535968206, + +00:26:20, +0.0576621544151568,0.0576621544151568,0.0577051062345126,0.0577022320278332,0.0576647907608435,0.0576074505585502,0.0575460798781749,0.0574954359923055,0.0574669680880932,0.0574669680880932, +0.0576621544151568,0.0576621544151568,0.0577051062345126,0.0577022320278332,0.0576647907608435,0.0576074505585502,0.0575460798781749,0.0574954359923055,0.0574669680880932,0.0574669680880932, +0.0782705429599331,0.0782705429599331,0.078313128797552,0.0782996196028753,0.0782440848252262,0.0781649050541531,0.0780820524906187,0.0780142654781643,0.0779762724797524,0.0779762724797524, +0.121956641982596,0.121956641982596,0.121994885001283,0.121956706613525,0.121861833890012,0.121736118135277,0.121607781650934,0.12150368184196,0.121445448409815,0.121445448409815, +0.192832273560437,0.192832273560437,0.192855677428983,0.192772717672131,0.19261174130321,0.19240986699408,0.192207602599279,0.192044213259845,0.191952616782005,0.191952616782005, +0.295079096577383,0.295079096577383,0.295069448460991,0.294914133362729,0.294653732858682,0.294340481457421,0.294030470594616,0.293779356498584,0.293637151440273,0.293637151440273, +0.430942363173044,0.430942363173044,0.430875880988043,0.430612829033207,0.430213380202112,0.42974905496901,0.42929234590584,0.428917269602123,0.428699056461543,0.428699056461543, +0.598835308067025,0.598835308067025,0.598692245663741,0.598275471387359,0.597691460533187,0.597035419875253,0.596390010111187,0.595842349005123,0.595502344995537,0.595502344995537, +0.79224634818536,0.79224634818536,0.792045011915213,0.791396042460366,0.790575195513359,0.78969453693872,0.788822890205065,0.788034954030635,0.787466889763735,0.787466889763735, + +00:26:21, +0.0577570672981654,0.0577570672981654,0.0578000455720506,0.0577971743404771,0.0577597173647857,0.0577023496889772,0.0576409480244922,0.0575902778683024,0.0575617950073986,0.0575617950073986, +0.0577570672981654,0.0577570672981654,0.0578000455720506,0.0577971743404771,0.0577597173647857,0.0577023496889772,0.0576409480244922,0.0575902778683024,0.0575617950073986,0.0575617950073986, +0.0783768312555843,0.0783768312555843,0.0784194336933878,0.0784059247277874,0.0783503768376562,0.0782711753766247,0.0781882986132491,0.0781204911551422,0.0780824865417026,0.0780824865417026, +0.12208179878234,0.12208179878234,0.122120041704534,0.122081861571771,0.121986984739972,0.121861262676355,0.121732919024616,0.121628813119237,0.121570576259172,0.121570576259172, +0.192976528958371,0.192976528958371,0.192999915680352,0.19291695948934,0.192756000770317,0.192554151074006,0.192351912049814,0.192188543614873,0.192096959097217,0.192096959097217, +0.295233432116366,0.295233432116366,0.295223758944229,0.295068467807353,0.294808125621944,0.294494950124234,0.294185016665887,0.293933966471708,0.293791798142466,0.293791798142466, +0.431089044642986,0.431089044642986,0.431022548128909,0.430759561569958,0.430360232858309,0.429896054861765,0.42943949390189,0.429064540830985,0.42884639998719,0.42884639998719, +0.598951629378694,0.598951629378694,0.598808585443777,0.598391940272612,0.597808127596299,0.597152316756259,0.596507136139995,0.595959670372855,0.595619787384677,0.595619787384677, +0.792311008231173,0.792311008231173,0.792109732834854,0.791460978030459,0.79064041115005,0.789760057803976,0.788888714818394,0.788101052319455,0.787533182801506,0.787533182801506, + +00:26:22, +0.0578520324724811,0.0578520324724811,0.0578950371665017,0.057892168919328,0.0578546962787204,0.0577973011941138,0.0577358686147896,0.0576851722456937,0.0576566744604596,0.0576566744604596, +0.0578520324724811,0.0578520324724811,0.0578950371665017,0.057892168919328,0.0578546962787204,0.0577973011941138,0.0577358686147896,0.0576851722456937,0.0576566744604596,0.0576566744604596, +0.0784831538927405,0.0784831538927405,0.0785257729056863,0.0785122641865678,0.0784567032353894,0.078377480156618,0.0782945792696001,0.0782267514286796,0.078188735235555,0.078188735235555, +0.122206956443117,0.122206956443117,0.122245199264155,0.122207017416584,0.122112136535945,0.12198640824121,0.121858057502453,0.121753945566432,0.121695705315279,0.121695705315279, +0.193120742668129,0.193120742668129,0.193144112268064,0.193061159681803,0.192900218666854,0.192698393648454,0.192496180060502,0.192332832583076,0.192241260054975,0.192241260054975, +0.295387685975221,0.295387685975221,0.295377987798014,0.295222720651867,0.294962436804925,0.294649337228634,0.294339481191242,0.294088494910887,0.293946363316275,0.293946363316275, +0.431235621779123,0.431235621779123,0.431169110989971,0.430906189814268,0.430506981169405,0.430042950339748,0.429586537411636,0.429211707511721,0.428993638926456,0.428993638926456, +0.599067853106409,0.599067853106409,0.598924827658813,0.598508311501854,0.597924696848158,0.597269115643488,0.596624163991912,0.596076893404958,0.595737131337397,0.595737131337397, +0.792375609119267,0.792375609119267,0.792174394549331,0.791525854200676,0.790705567128371,0.789825518728443,0.788954479209309,0.788167090130518,0.787599415178519,0.787599415178519, + +00:26:23, +0.0579470498555464,0.0579470498555464,0.0579900809353309,0.0579872156818459,0.05794972742008,0.0578923049913516,0.0578308415664144,0.0577801190417907,0.0577516063645676,0.0577516063645676, +0.0579470498555464,0.0579470498555464,0.0579900809353309,0.0579872156818459,0.05794972742008,0.0578923049913516,0.0578308415664144,0.0577801190417907,0.0577516063645676,0.0577516063645676, +0.0785895108000846,0.0785895108000846,0.0786321463631637,0.0786186379079156,0.0785630639470654,0.0784838193226858,0.0784008943881314,0.0783330462271591,0.0782950184896487,0.0782950184896487, +0.122332114923494,0.122332114923494,0.122370357638744,0.12233217410652,0.122237289236375,0.122111554788131,0.121983197042565,0.121879079141527,0.121820835536042,0.121820835536042, +0.193264914701881,0.193264914701881,0.193288267204284,0.193205318261607,0.193044395004753,0.19284259472915,0.19264040664285,0.192477080175778,0.1923855196665,0.1923855196665, +0.295541858234079,0.295541858234079,0.295532135102408,0.295376891976237,0.295116666487448,0.294803642850267,0.294493864250133,0.294242941895413,0.294100847040904,0.294100847040904, +0.431382094716813,0.431382094716813,0.431315569706477,0.431052713901341,0.430653625270572,0.430189741538086,0.429733476570149,0.42935876977936,0.429140773414352,0.429140773414352, +0.599183979395528,0.599183979395528,0.599040972454137,0.598624585220469,0.598041168434316,0.597385816682676,0.596741093812851,0.596194018247501,0.595854376999877,0.595854376999877, +0.792440150944217,0.792440150944217,0.792238997153283,0.791590671065954,0.790770663543648,0.78989091980786,0.789020183473958,0.788233067560343,0.787665586991569,0.787665586991569, + +00:26:24, +0.0580421193648555,0.0580421193648555,0.0580851767960547,0.0580823145455426,0.0580448107063491,0.0579873609981336,0.0579258667967658,0.0578751181739563,0.057846590637065,0.057846590637065, +0.0580421193648555,0.0580421193648555,0.0580851767960547,0.0580823145455426,0.0580448107063491,0.0579873609981336,0.0579258667967658,0.0578751181739563,0.057846590637065,0.057846590637065, +0.0786959019063858,0.0786959019063858,0.0787385539946218,0.0787250458206157,0.0786694589014094,0.0785901928034666,0.0785072438973886,0.0784393754790489,0.0784013362324087,0.0784013362324087, +0.122457274182148,0.122457274182148,0.12249551678701,0.122457331600242,0.122362442799815,0.122236702275513,0.12210833760318,0.122004213802611,0.121945966879471,0.121945966879471, +0.193409045071864,0.193409045071864,0.193432380501245,0.193349435240904,0.193188529796013,0.192986754327886,0.192784591808431,0.192621286404371,0.192529737943084,0.192529737943084, +0.295695948973007,0.295695948973007,0.295686200937411,0.295530981860369,0.295270814749281,0.294957867068716,0.294648165921951,0.294397307504519,0.294255249395497,0.294255249395497, +0.431528463591203,0.431528463591203,0.431461924413468,0.431199133966173,0.430800165296776,0.430336428591697,0.429880311512296,0.429505727768727,0.429287803585685,0.429287803585685, +0.599300008391129,0.599300008391129,0.599157019974761,0.598740761573562,0.598157542500046,0.597502420019278,0.596857925748445,0.596311045046274,0.595971524518014,0.595971524518014, +0.792504633800402,0.792504633800402,0.79230354074115,0.79165542872103,0.790835700491005,0.789956261137763,0.789085827708282,0.788298984705248,0.787731698337247,0.787731698337247, + +00:26:25, +0.0581372409179546,0.0581372409179546,0.0581803246662422,0.0581774654279819,0.0581399460550638,0.0580824691319546,0.0580209442232943,0.0579701695596044,0.0579416271953456,0.0579416271953456, +0.0581372409179546,0.0581372409179546,0.0581803246662422,0.0581774654279819,0.0581399460550638,0.0580824691319546,0.0580209442232943,0.0579701695596044,0.0579416271953456,0.0579416271953456, +0.0788023271404987,0.0788023271404987,0.0788449957289487,0.0788314878535385,0.0787758880272326,0.0786966005276847,0.0786136277260028,0.0785457391129033,0.0785076883923457,0.0785076883923457, +0.122582434177866,0.122582434177866,0.12262067666777,0.122582489856523,0.122487597184926,0.122361850661861,0.122233479142637,0.122129349507885,0.12207109930369,0.12207109930369, +0.193553133790381,0.193553133790381,0.193576452171243,0.193493510631911,0.193332623052697,0.19313087245652,0.192928735568884,0.192765451280315,0.192673914896084,0.192673914896084, +0.295849958272016,0.295849958272016,0.295840185382967,0.295684990384112,0.295424881670133,0.295112009963509,0.294802386286031,0.294551591817382,0.294409570459146,0.294409570459146, +0.431674728537235,0.431674728537235,0.431608175245775,0.431345450143552,0.430946601382773,0.430483011635294,0.430027042372734,0.429652581614438,0.429434729575054,0.429434729575054, +0.599415940238011,0.599415940238011,0.599272970365416,0.598856840705959,0.598273819190341,0.597618925798474,0.596974659944049,0.596427973946789,0.596088574037428,0.596088574037428, +0.792569057781997,0.792569057781997,0.792368025407174,0.791720127260441,0.790900678065365,0.790021542813489,0.789151412008024,0.788364841661345,0.787797749311941,0.787797749311941, + +00:26:26, +0.0582324144324424,0.0582324144324424,0.0582755244635144,0.0582726682467798,0.0582351333838127,0.0581776293103616,0.0581160737635022,0.0580652731162011,0.058036715956855,0.058036715956855, +0.0582324144324424,0.0582324144324424,0.0582755244635144,0.0582726682467798,0.0582351333838127,0.0581776293103616,0.0581160737635022,0.0580652731162011,0.058036715956855,0.058036715956855, +0.0789087864313642,0.0789087864313642,0.0789514714951178,0.0789379639356404,0.0788823512534318,0.07880304242415,0.078720045802691,0.0786521370573619,0.078614074898056,0.078614074898056, +0.122707594869541,0.122707594869541,0.12274583723995,0.122707648834243,0.122612752350477,0.122486999905788,0.122358621619385,0.122254486215659,0.12219623276693,0.12219623276693, +0.193697180869797,0.193697180869797,0.193720482226639,0.193637544446908,0.193476674786934,0.193274949126974,0.193072837935915,0.192909574815134,0.192818050536924,0.192818050536924, +0.296003886211057,0.296003886211057,0.295994088518957,0.295838917627254,0.295578867329653,0.295266071614115,0.294956525421652,0.294705794913123,0.294563810310881,0.294563810310881, +0.431820889689641,0.431820889689641,0.431754322338024,0.431491662568058,0.431092933663112,0.430629490803382,0.430173669285918,0.429799331450907,0.429581551516854,0.429581551516854, +0.599531775080696,0.599531775080696,0.599388823770557,0.598972822762209,0.598389998649918,0.597735334165161,0.597091296544737,0.596544805094279,0.596205525703459,0.596205525703459, +0.79263342298298,0.79263342298298,0.792432451245397,0.791784766778524,0.790965596361451,0.79008676493017,0.789216936468722,0.788430638524545,0.787863740011836,0.787863740011836, + +00:26:27, +0.0583276398259696,0.0583276398259696,0.0583707761055448,0.058367922919605,0.0583303726102364,0.0582728414509536,0.0582112553349439,0.0581604287612638,0.0581318568390901,0.0581318568390901, +0.0583276398259696,0.0583276398259696,0.0583707761055448,0.058367922919605,0.0583303726102364,0.0582728414509536,0.0582112553349439,0.0581604287612638,0.0581318568390901,0.0581318568390901, +0.0790152797080085,0.0790152797080085,0.0790579812221884,0.0790444739959635,0.0789888485089892,0.0789095184217581,0.0788264980562556,0.07875856924115,0.0787204956782214,0.0787204956782214, +0.122832756216175,0.122832756216175,0.122870998462581,0.12283280849239,0.122737908255344,0.122612149966017,0.122483764991977,0.122379623884351,0.122321367227532,0.122321367227532, +0.193841186322542,0.193841186322542,0.193864470679859,0.193781536698243,0.193620685010916,0.193418984351238,0.193216898921296,0.193053657020422,0.192962144877094,0.192962144877094, +0.296157732870018,0.296157732870018,0.296147910425204,0.295992763669523,0.295732771807431,0.295420052099943,0.295110583408032,0.294859916870803,0.294717969029678,0.294717969029678, +0.431966947182947,0.431966947182947,0.431900365824632,0.431637771374065,0.431239162272136,0.430775866230259,0.430320192386092,0.42994597741234,0.429728269545273,0.429728269545273, +0.599647513063429,0.599647513063429,0.599504580334362,0.599088707886583,0.598506081023215,0.597851645263964,0.597207835695311,0.596661538633701,0.596322379661171,0.596322379661171, +0.792697729497133,0.792697729497133,0.792496818349662,0.791849347369417,0.791030455473785,0.79015192758274,0.789282401185714,0.788496375390557,0.787929670532912,0.787929670532912, + +00:26:28, +0.0584229170162396,0.0584229170162396,0.0584660795100596,0.0584632293641783,0.0584256636520282,0.0583681054713818,0.0583064888552258,0.0582556364123622,0.0582270497596001,0.0582270497596001, +0.0584229170162396,0.0584229170162396,0.0584660795100596,0.0584632293641783,0.0584256636520282,0.0583681054713818,0.0583064888552258,0.0582556364123622,0.0582270497596001,0.0582270497596001, +0.0791218068995436,0.0791218068995436,0.0791645248393054,0.0791510179636353,0.0790953797229729,0.0790160284494902,0.0789329844155848,0.0788650355930787,0.0788269506616096,0.0788269506616096, +0.122957918176877,0.122957918176877,0.122996160294803,0.12295796879006,0.122863064858514,0.122737300801377,0.122608909219079,0.122504762472486,0.122446502643944,0.122446502643944, +0.193985150161112,0.193985150161112,0.194008417543391,0.193925487398323,0.193764653736902,0.193562978141364,0.193360918536863,0.193197697907834,0.193106197928152,0.193106197928152, +0.29631149832873,0.29631149832873,0.296301651181471,0.296146528590588,0.295886595182998,0.295573951500346,0.295264560324335,0.295013957769429,0.294872046694457,0.294872046694457, +0.432112901151469,0.432112901151469,0.43204630583981,0.431783776695739,0.431385287343981,0.430922138050019,0.430466611807298,0.430092519632737,0.429874883794298,0.429874883794298, +0.599763154330179,0.599763154330179,0.599620240200732,0.599204496223076,0.598622066454396,0.597967859239227,0.59732427754029,0.596778174709733,0.596439136055352,0.596439136055352, +0.792761977418035,0.792761977418035,0.792561126813615,0.791913869127058,0.791095255496693,0.790217030865932,0.789347806254138,0.788562052354889,0.787995540970951,0.787995540970951, + +00:26:29, +0.0585182459210084,0.0585182459210084,0.0585614345948375,0.0585585874982735,0.0585210064269337,0.0584634212893498,0.0584017742420065,0.058350895987118,0.0583222946359858,0.0583222946359858, +0.0585182459210084,0.0585182459210084,0.0585614345948375,0.0585585874982735,0.0585210064269337,0.0584634212893498,0.0584017742420065,0.058350895987118,0.0583222946359858,0.0583222946359858, +0.0792283679351674,0.0792283679351674,0.0792711022756993,0.0792575957678689,0.0792019448245365,0.0791225724364131,0.0790395048096523,0.0789715360420443,0.0789334397770734,0.0789334397770734, +0.123083080710864,0.123083080710864,0.123121322695866,0.123083129686456,0.122988222119078,0.122862452370805,0.122734054259462,0.1226299019387,0.122571638974724,0.122571638974724, +0.194129072398064,0.194129072398064,0.194152322829788,0.194069396559621,0.193908580977211,0.193706930509469,0.193504896794518,0.193341697489094,0.19325020970172,0.19325020970172, +0.296465182666964,0.296465182666964,0.296455310867459,0.29630021247006,0.296040337535824,0.295727769894616,0.295418456249662,0.295167917687949,0.295026043384079,0.295026043384079, +0.432258751729319,0.432258751729319,0.432192142517562,0.43192967866704,0.431531309012578,0.431068306396548,0.430612927683372,0.430238958245896,0.430021394397706,0.430021394397706, +0.599878699024637,0.599878699024637,0.599735803513293,0.599320187915409,0.598737955087347,0.598083976235021,0.597440622223923,0.59689471346678,0.596555795030511,0.596555795030511, +0.792826166839074,0.792826166839074,0.792625376730704,0.791978332145191,0.791159996524299,0.790282074874281,0.78941315176893,0.788627669512847,0.788061351421531,0.788061351421531, + +00:26:30, +0.058613626458085,0.058613626458085,0.0586568412777104,0.058653997239717,0.0586164008527514,0.0585587888226139,0.0584971114129971,0.058446207403205,0.0584175913859006,0.0584175913859006, +0.058613626458085,0.058613626458085,0.0586568412777104,0.058653997239717,0.0586164008527514,0.0585587888226139,0.0584971114129971,0.058446207403205,0.0584175913859006,0.0584175913859006, +0.079334962744163,0.079334962744163,0.0793777134606861,0.0793642073379631,0.0793085437429189,0.0792291503116788,0.079146059167517,0.0790780705170288,0.0790399629535514,0.0790399629535514, +0.123208243777461,0.123208243777461,0.123246485625122,0.123208291140888,0.123113379996235,0.122987604633345,0.122859200072005,0.122755042241734,0.122696776178536,0.122696776178536, +0.194272953046019,0.194272953046019,0.194296186551664,0.194213264194674,0.194052466744229,0.193850841467735,0.193648833706227,0.193485655775991,0.193394180209485,0.193394180209485, +0.29661878596443,0.29661878596443,0.296608889562813,0.296453815387486,0.296193998945324,0.295881507361988,0.295572271263061,0.295321796705253,0.295179959177349,0.295179959177349, +0.432404499050403,0.432404499050403,0.432337875991685,0.432075477421724,0.43167722741165,0.431214371403528,0.430759140147946,0.430385293385408,0.430167801489075,0.430167801489075, +0.599994147290223,0.599994147290223,0.599851270415397,0.599435783107025,0.598853747065679,0.59819999639514,0.597556869890179,0.597011155048969,0.596672356730884,0.596672356730884, +0.792890297853436,0.792890297853436,0.79268956819418,0.792042736517359,0.79122467865053,0.790347059702122,0.789478437824828,0.788693226959536,0.788127101980029,0.788127101980029, + +00:26:31, +0.058709058545331,0.058709058545331,0.0587522994765628,0.0587494585063885,0.0587118468473327,0.0586542079889831,0.0585925002859613,0.0585415705783497,0.0585129399270498,0.0585129399270498, +0.058709058545331,0.058709058545331,0.0587522994765628,0.0587494585063885,0.0587118468473327,0.0586542079889831,0.0585925002859613,0.0585415705783497,0.0585129399270498,0.0585129399270498, +0.0794415912558994,0.0794415912558994,0.0794843583236674,0.079470852603302,0.0794151764074447,0.079335762004525,0.0792526474183234,0.0791846389470993,0.0791465201200673,0.0791465201200673, +0.123333407336098,0.123333407336098,0.123371649042033,0.123333453112772,0.123238538449292,0.123112757548149,0.122984346615696,0.12288018334044,0.122821914214154,0.122821914214154, +0.194416792117661,0.194416792117661,0.194440008721698,0.194357090316079,0.194196311050403,0.193994711028406,0.19379272928402,0.193629572780375,0.1935381094632,0.1935381094632, +0.296772308300777,0.296772308300777,0.296762387347113,0.296607337422357,0.296347579490848,0.296035163981636,0.29572600544352,0.295475594900174,0.295333794153014,0.295333794153014, +0.432550143248419,0.432550143248419,0.432483506395771,0.432221173093337,0.431823042674718,0.431360333204435,0.430905249334446,0.430531525184662,0.430314105201775,0.430314105201775, +0.600109499270079,0.600109499270079,0.59996664105012,0.599551281941096,0.598969442532729,0.598315919863106,0.597673020682754,0.597127499600152,0.596788821300431,0.596788821300431, +0.792954370554114,0.792954370554114,0.792753701297099,0.792107082336909,0.791289301969115,0.79041198544359,0.789543664516369,0.788758724789864,0.788192792741624,0.788192792741624, + +00:26:32, +0.0588045421006615,0.0588045421006615,0.0588478091093326,0.0588449712162205,0.0588073443285819,0.0587496787063192,0.0586879407787154,0.0586369854303309,0.0586083401771915,0.0586083401771915, +0.0588045421006615,0.0588045421006615,0.0588478091093326,0.0588449712162205,0.0588073443285819,0.0587496787063192,0.0586879407787154,0.0586369854303309,0.0586083401771915,0.0586083401771915, +0.0795482533998307,0.0795482533998307,0.0795910367941301,0.079577531493355,0.0795218427475236,0.0794424074442747,0.0793592694913016,0.0792912412614086,0.0792531112057303,0.0792531112057303, +0.123458571346312,0.123458571346312,0.123496812906167,0.123458615561632,0.123363697437661,0.123237911074475,0.123109493849628,0.123005325193773,0.122947053040457,0.122947053040457, +0.194560589625736,0.194560589625736,0.194583789352629,0.194500874936499,0.194340113908243,0.19413853920379,0.193936583539992,0.193773448514165,0.193681997474683,0.193681997474683, +0.296925749755596,0.296925749755596,0.296915804299883,0.296760778654102,0.29650107925169,0.296188739832677,0.295879658869967,0.295629312351488,0.295487548389764,0.295487548389764, +0.43269568445686,0.43269568445686,0.432629033863207,0.432366765815225,0.431968754935094,0.431506191932543,0.431051255376094,0.430677653776843,0.430460305668975,0.430460305668975, +0.600224755107074,0.600224755107074,0.600081915560265,0.599666684560518,0.599085041631561,0.598431746782162,0.597789074745072,0.59724374726391,0.596905188882839,0.596905188882839, +0.793018385033904,0.793018385033904,0.79281777613232,0.792171369696992,0.791353866573587,0.790476852192625,0.789608831937894,0.788824163098538,0.788258423801293,0.788258423801293, + +00:26:33, +0.0589000770420446,0.0589000770420446,0.0589433700940111,0.0589405352871989,0.0589028932144565,0.0588452008925372,0.0587834328091286,0.0587324518769803,0.0587037920541364,0.0587037920541364, +0.0589000770420446,0.0589000770420446,0.0589433700940111,0.0589405352871989,0.0589028932144565,0.0588452008925372,0.0587834328091286,0.0587324518769803,0.0587037920541364,0.0587037920541364, +0.0796549491054968,0.0796549491054968,0.0796977488016467,0.0796842439376771,0.0796285426926508,0.0795490865603361,0.0794659253157665,0.0793978773891947,0.0793597361397349,0.0793597361397349, +0.123583735767747,0.123583735767747,0.123621977177196,0.123583778447096,0.123488856920862,0.123363065171688,0.123234641733002,0.123130467760799,0.123072192616434,0.123072192616434, +0.194704345583052,0.194704345583052,0.19472752845726,0.194644618068655,0.194483875330321,0.194282326006258,0.194080396486299,0.193917282989341,0.193825844255815,0.193825844255815, +0.297079110408416,0.297079110408416,0.297069140500584,0.29691413916209,0.296654498307083,0.296342234994169,0.296033231621273,0.295782949137912,0.295641221966232,0.295641221966232, +0.432841122809013,0.432841122809013,0.432774458527175,0.432512255720524,0.432114364325889,0.431651947720919,0.431197158405909,0.43082367929493,0.430606403023641,0.430606403023641, +0.600339914943806,0.600339914943806,0.600197094088364,0.599781991107914,0.599200544504965,0.598547477295284,0.597905032220281,0.597359898183548,0.597021459621519,0.597021459621519, +0.793082341385408,0.793082341385408,0.792881792792508,0.792235598690564,0.791418372557281,0.790541660042969,0.789673940183544,0.788889541980067,0.788323995253815,0.788323995253815, + +00:26:34, +0.0589956632875018,0.0589956632875018,0.0590389823486428,0.0590361506373631,0.0589984934229674,0.058940774465605,0.058878976295123,0.0588279698361823,0.0587992954757477,0.0587992954757477, +0.0589956632875018,0.0589956632875018,0.0590389823486428,0.0590361506373631,0.0589984934229674,0.058940774465605,0.058878976295123,0.0588279698361823,0.0587992954757477,0.0587992954757477, +0.0797616783025226,0.0797616783025226,0.0798044942758746,0.0797909898659083,0.0797352761724068,0.0796557992822029,0.0795726148211187,0.0795045472597807,0.0794663948513609,0.0794663948513609, +0.123708900560152,0.123708900560152,0.1237471418149,0.123708941728898,0.123614016858517,0.123488219799259,0.123359790225124,0.123255611000687,0.123197332901177,0.123197332901177, +0.194848060002479,0.194848060002479,0.194871226048454,0.194788319725332,0.194627595329273,0.194426071448243,0.194224168135163,0.194061076217948,0.19396964981854,0.19396964981854, +0.297232390338705,0.297232390338705,0.297222396028617,0.29706741902563,0.296807836736201,0.296495649545108,0.296186723776251,0.295936505338106,0.295794814960993,0.295794814960993, +0.432986458437962,0.432986458437962,0.43291978052065,0.432657642942168,0.432259870980007,0.431797600702428,0.431342958556708,0.430969601871704,0.430752397398535,0.430752397398535, +0.600454978922598,0.600454978922598,0.600312176776675,0.599897201725636,0.599315951295458,0.59866311154517,0.598020893251257,0.597475952502099,0.597137633659614,0.597137633659614, +0.793146239701032,0.793146239701032,0.792945751370131,0.792299769410385,0.791482820013337,0.790606409088166,0.789738989347263,0.78895486152876,0.78838950719377,0.78838950719377, + +00:26:35, +0.0590913007551083,0.0590913007551083,0.059134645791326,0.0591318171848061,0.059094144872179,0.059036399343544,0.058974571154674,0.0589235392258744,0.0588948503599418,0.0588948503599418, +0.0590913007551083,0.0590913007551083,0.059134645791326,0.0591318171848061,0.059094144872179,0.059036399343544,0.058974571154674,0.0589235392258744,0.0588948503599418,0.0588948503599418, +0.0798684409206186,0.0798684409206186,0.0799112731465569,0.0798977692077742,0.0798420431164572,0.0797625455394538,0.0796793379368439,0.0796112508025751,0.0795730872699733,0.0795730872699733, +0.123834065683381,0.123834065683381,0.123872306779163,0.12383410536688,0.123739177210359,0.123613374916764,0.123484939285407,0.123380754872716,0.123322473853888,0.123322473853888, +0.194991732896948,0.194991732896948,0.195014882139136,0.194931979919377,0.194771273917795,0.194569775542242,0.194367898498867,0.194204828212092,0.194113414174869,0.194113414174869, +0.297385589625872,0.297385589625872,0.297375570963323,0.29722061832397,0.296961094618156,0.296648983564434,0.296340135413656,0.296089981030672,0.295948327452563,0.295948327452563, +0.433131691476584,0.433131691476584,0.433064999976405,0.432802927612888,0.43240527503015,0.431943151009729,0.431488655961102,0.431115421639739,0.430898288926218,0.430898288926218, +0.600569947185503,0.600569947185503,0.600427163767184,0.600012316555765,0.599431262145287,0.59877864967425,0.598136657980604,0.597591910362323,0.597253711139989,0.597253711139989, +0.79321008007299,0.79321008007299,0.793009651957467,0.792363881949019,0.791547209034699,0.790671099421564,0.789803979522798,0.789020121838731,0.788454959715539,0.788454959715539, + +00:26:36, +0.059186989362993,0.059186989362993,0.0592303603402127,0.0592275348476744,0.0591898474802092,0.0591320754444291,0.0590702173058104,0.0590191599640474,0.0589904566246882,0.0589904566246882, +0.059186989362993,0.059186989362993,0.0592303603402127,0.0592275348476744,0.0591898474802092,0.0591320754444291,0.0590702173058104,0.0590191599640474,0.0589904566246882,0.0589904566246882, +0.0799752368895805,0.0799752368895805,0.0800180853435218,0.0800045818930853,0.0799488434545529,0.0798693252617527,0.0797860945925128,0.0797179879470715,0.079679813325022,0.079679813325022, +0.123959231097395,0.123959231097395,0.123997472029975,0.123959269320985,0.123864337936221,0.123738530483885,0.12361008887337,0.123505899336267,0.123447615433873,0.123447615433873, +0.195135364279451,0.195135364279451,0.195158496742291,0.195075598663696,0.194914911108644,0.194713438300811,0.194511587589756,0.194348538983945,0.194257137336872,0.194257137336872, +0.297538708349263,0.297538708349263,0.297528665383981,0.297373737136299,0.297114272032003,0.296802237131026,0.296493466612181,0.296243376294153,0.296101759519403,0.296101759519403, +0.433276822057554,0.433276822057554,0.433210117027008,0.432948109865208,0.432550576608814,0.43208859877528,0.431634250751501,0.431261138731408,0.431044077739046,0.431044077739046, +0.600684819874303,0.600684819874303,0.600542055201608,0.600127335740108,0.599546477196425,0.598894091824681,0.598252326550656,0.597707771906711,0.597369692205242,0.597369692205242, +0.793273862593301,0.793273862593301,0.793073494646595,0.792427936398839,0.791611539714118,0.790735731136317,0.789868910803702,0.789085323003895,0.788520352913307,0.788520352913307, + +00:26:37, +0.0592827290293385,0.0592827290293385,0.0593261259135088,0.0593233035441685,0.0592856011652297,0.0592278026863886,0.0591659146666141,0.0591148319687451,0.0590861141880094,0.0590861141880094, +0.0592827290293385,0.0592827290293385,0.0593261259135088,0.0593233035441685,0.0592856011652297,0.0592278026863886,0.0591659146666141,0.0591148319687451,0.0590861141880094,0.0590861141880094, +0.0800820661392891,0.0800820661392891,0.0801249307966825,0.0801114278517372,0.0800556771165298,0.0799761383788487,0.0798928847177813,0.0798247586228485,0.0797865729460423,0.0797865729460423, +0.124084396762259,0.124084396762259,0.12412263752743,0.124084433551265,0.123989498996046,0.12386368646041,0.123735238948638,0.12363104435083,0.123572757600545,0.123572757600545, +0.195278954163042,0.195278954163042,0.195302069870966,0.195219175971256,0.195058506914638,0.194857059736569,0.194655235420239,0.194492208545739,0.194400819316684,0.194400819316684, +0.297691746588166,0.297691746588166,0.297681679369812,0.297526775541743,0.297267369056734,0.296955410323703,0.296646717450464,0.296396691207035,0.296255111239914,0.296255111239914, +0.433421850313342,0.433421850313342,0.433355131804824,0.43309318983145,0.432695775848294,0.432233944131336,0.431779743060112,0.431406753278883,0.431189763969177,0.431189763969177, +0.600799597130508,0.600799597130508,0.600656851221392,0.600242259420205,0.599661596590578,0.599009438138349,0.598367899103475,0.597823537277482,0.597485576997698,0.597485576997698, +0.793337587353792,0.793337587353792,0.793137279529407,0.79249193285202,0.791675812144147,0.790800304325383,0.789933783283327,0.789150465117972,0.788585686881062,0.788585686881062, + +00:26:38, +0.0593785196723815,0.0593785196723815,0.0594219424294742,0.059419123192543,0.0593814058454662,0.0593235809876049,0.0592616631552208,0.0592105551580649,0.0591818229679815,0.0591818229679815, +0.0593785196723815,0.0593785196723815,0.0594219424294742,0.059419123192543,0.0593814058454662,0.0593235809876049,0.0592616631552208,0.0592105551580649,0.0591818229679815,0.0591818229679815, +0.0801889285997104,0.0801889285997104,0.0802318094360374,0.0802183070137109,0.080162544032309,0.0800829848205759,0.0799997082423904,0.0799315627595698,0.0798933660626545,0.0798933660626545, +0.124209562638142,0.124209562638142,0.124247803231728,0.124209598017873,0.124114660349877,0.123988842806231,0.123860389470939,0.123756189876,0.123697900313421,0.123697900313421, +0.195422502560833,0.195422502560833,0.195445601538266,0.195362711855084,0.195202061348657,0.195000639862196,0.194798842002784,0.194635836909769,0.194544460126503,0.194544460126503, +0.297844704421807,0.297844704421807,0.297834612999972,0.297679733619369,0.297420385771282,0.297108503221227,0.296799888007081,0.296549925847744,0.29640838269244,0.29640838269244, +0.433566776376213,0.433566776376213,0.433500044442012,0.433238167643734,0.432840872880682,0.432379187209949,0.431925133018942,0.431552265414134,0.431335347748566,0.431335347748566, +0.600914279095361,0.600914279095361,0.600771551967714,0.600357087737325,0.59977662046918,0.599124688756871,0.598483375780853,0.597939206616583,0.597601365659413,0.597601365659413, +0.793401254446095,0.793401254446095,0.793201006697597,0.792555871400548,0.791740026417148,0.790864819081525,0.789998597054836,0.789215548274486,0.788650961712595,0.788650961712595, + +00:26:39, +0.0594743612104127,0.0594743612104127,0.059517809806423,0.0595149937111065,0.0594772614391982,0.0594194102663139,0.0593574626898201,0.059306329450158,0.0592775828827339,0.0592775828827339, +0.0594743612104127,0.0594743612104127,0.059517809806423,0.0595149937111065,0.0594772614391982,0.0594194102663139,0.0593574626898201,0.059306329450158,0.0592775828827339,0.0592775828827339, +0.0802958242008957,0.0802958242008957,0.0803387211916701,0.080325219309072,0.0802694441318964,0.0801898645168534,0.0801065650961661,0.0800384002869842,0.0800001926045636,0.0800001926045636, +0.124334728685319,0.124334728685319,0.124372969103171,0.124334762681068,0.124239821957864,0.124113999481344,0.123985540400108,0.123881335871474,0.123823043532125,0.123823043532125, +0.195566009485997,0.195566009485997,0.195589091757358,0.19550620632827,0.195345574423639,0.195144178690433,0.194942407349922,0.194779424088393,0.194688059778586,0.194688059778586, +0.29799758192935,0.29799758192935,0.29798746635356,0.297832611448184,0.29757332225452,0.297261515902296,0.296952978360551,0.296703080294649,0.296561573955265,0.296561573955265, +0.433711600378231,0.433711600378231,0.433644855070532,0.433383043433975,0.432985867837865,0.432524328142968,0.432070420759793,0.431697675268928,0.431480829208966,0.431480829208966, +0.601028865909833,0.601028865909833,0.60088615758148,0.600471820832468,0.599891548973396,0.599239843821594,0.598598756724314,0.598054780065695,0.597717058332173,0.597717058332173, +0.793464863961655,0.793464863961655,0.793264676242671,0.792619752136215,0.791804182625289,0.790929275497311,0.790063352211191,0.789280572566764,0.788716177501499,0.788716177501499, + +00:26:40, +0.0595702535617771,0.0595702535617771,0.0596137279627236,0.0596109150182219,0.0595731678647597,0.0595152904408059,0.0594533131886552,0.059402154763229,0.0593733938504499,0.0593733938504499, +0.0595702535617771,0.0595702535617771,0.0596137279627236,0.0596109150182219,0.0595731678647597,0.0595152904408059,0.0594533131886552,0.059402154763229,0.0593733938504499,0.0593733938504499, +0.0804027528729809,0.0804027528729809,0.0804456659937491,0.0804321646679715,0.080376377345383,0.0802967773976853,0.0802134552090193,0.0801452711349252,0.08010705250156,0.08010705250156, +0.124459894864168,0.124459894864168,0.124498135102166,0.124459927501213,0.124364983780261,0.124239156445852,0.124110691696085,0.124006482297059,0.123948187216386,0.123948187216386, +0.195709474951767,0.195709474951767,0.195732540541466,0.195649659403958,0.195489046152584,0.195287676234081,0.195085931474246,0.194922970094028,0.194831618285256,0.194831618285256, +0.298150379189898,0.298150379189898,0.298140239509611,0.297985409107132,0.29772617858526,0.297414448445551,0.297105988589334,0.296856154626059,0.296714685106617,0.296714685106617, +0.433856322451257,0.433856322451257,0.433789563822139,0.433527817333887,0.433130760851531,0.432669367062043,0.432215606414267,0.431842982974834,0.431626208481931,0.431626208481931, +0.601143357714629,0.601143357714629,0.60100066820333,0.600586458846365,0.600006382244123,0.599354903473598,0.598714042075111,0.598170257766228,0.597832655157494,0.597832655157494, +0.793528415991721,0.793528415991721,0.79332828825594,0.792683575150619,0.791868280860544,0.790993673665118,0.790128048845165,0.789345538087939,0.788781334341176,0.788781334341176, + +00:26:41, +0.0596661966448744,0.0596661966448744,0.059709696816799,0.0597068870323067,0.0596691250405389,0.0596112214294252,0.0595492145700235,0.0594980310155365,0.0594692557893664,0.0594692557893664, +0.0596661966448744,0.0596661966448744,0.059709696816799,0.0597068870323067,0.0596691250405389,0.0596112214294252,0.0595492145700235,0.0594980310155365,0.0594692557893664,0.0594692557893664, +0.0805097145461874,0.0805097145461874,0.0805526437725277,0.080539143020645,0.0804833436029446,0.0804037233931604,0.0803203785109458,0.0802521752333115,0.0802139456835186,0.0802139456835186, +0.12458506113517,0.12458506113517,0.124623301189226,0.124585092438774,0.124490145777425,0.124364313659959,0.124235843318912,0.124131629112662,0.124073331326036,0.124073331326036, +0.195852898971434,0.195852898971434,0.195875947903875,0.195793071095357,0.19563247654855,0.195431132506,0.195229414388406,0.195066474939153,0.194975135658894,0.194975135658894, +0.298303096282493,0.298303096282493,0.298292932547101,0.298138126675097,0.297878954842254,0.297567300929574,0.297258918771829,0.297009148920227,0.296867716224666,0.296867716224666, +0.434000942726949,0.434000942726949,0.433934170828385,0.43367248947498,0.433275552053164,0.432814304098619,0.432360690113768,0.431988188663219,0.431771485698813,0.431771485698813, +0.601257754650184,0.601257754650184,0.601115083973636,0.60070100191948,0.60012112042199,0.599469867853693,0.598829231974231,0.598285639859325,0.597948156276626,0.597948156276626, +0.793591910627354,0.793591910627354,0.793391842828528,0.79274734053517,0.791932321214697,0.791058013677128,0.790192687049334,0.78941044493095,0.788846432324829,0.788846432324829, + +00:26:42, +0.0597621903781584,0.0597621903781584,0.0598057162871266,0.0598029096718327,0.0597651328849783,0.0597072031505704,0.0596451667522764,0.0595939581253933,0.0595651686177743,0.0595651686177743, +0.0597621903781584,0.0597621903781584,0.0598057162871266,0.0598029096718327,0.0597651328849783,0.0597072031505704,0.0596451667522764,0.0595939581253933,0.0595651686177743,0.0595651686177743, +0.0806167091508212,0.0806167091508212,0.0806596544583442,0.080646154297413,0.0805903428348421,0.0805107024334526,0.0804273349320261,0.0803591125121464,0.0803208720803992,0.0803208720803992, +0.124710227458912,0.124710227458912,0.124748467324962,0.124710257454321,0.124615307909817,0.124489471083975,0.124360995228736,0.124256776278297,0.124198475821012,0.124198475821012, +0.195996281558349,0.195996281558349,0.196019313857929,0.19593644141573,0.195775865624656,0.195574547519111,0.195372856105117,0.195209938636309,0.195118611911943,0.195118611911943, +0.298455733286118,0.298455733286118,0.298445545544943,0.298290764230902,0.298031651104192,0.297720073432884,0.297411768986378,0.297162063255345,0.297020667387521,0.297020667387521, +0.434145461336761,0.434145461336761,0.434078676220623,0.433817059988566,0.433420241574048,0.432959139383942,0.432505671989495,0.432133292465249,0.431916660990765,0.431916660990765, +0.601372056856669,0.601372056856669,0.601229405032503,0.600815450192012,0.600235763647358,0.599584737102424,0.598944326562393,0.598400926485861,0.59806356183055,0.59806356183055, +0.793655347959422,0.793655347959422,0.793455340051365,0.792811048381084,0.791996303779339,0.791122295625331,0.790257266916082,0.789475293188542,0.788911471545468,0.788911471545468, + +00:26:43, +0.0598582346801379,0.0598582346801379,0.0599017862922385,0.0598989828553265,0.0598611913165752,0.0598032355226946,0.0597411696538197,0.0596899360111661,0.0596611322540187,0.0596611322540187, +0.0598582346801379,0.0598582346801379,0.0599017862922385,0.0598989828553265,0.0598611913165752,0.0598032355226946,0.0597411696538197,0.0596899360111661,0.0596611322540187,0.0596611322540187, +0.0807237366172732,0.0807237366172732,0.0807666979816218,0.080753198428681,0.0806973749714208,0.0806177144488204,0.0805343244024257,0.0804660829015181,0.0804278316222466,0.0804278316222466, +0.124835393796082,0.124835393796082,0.124873633470094,0.124835422508528,0.124740470138002,0.124614628678311,0.124486147385809,0.124381923754081,0.124323620661357,0.124323620661357, +0.196139622725921,0.196139622725921,0.196162638417029,0.196079770378401,0.195919213394076,0.195717921286395,0.195516256637149,0.195353361198096,0.195262047056908,0.195262047056908, +0.298608290279692,0.298608290279692,0.29859807858199,0.298443321853309,0.298184267449705,0.297872766033943,0.29756453931126,0.297314897709545,0.297173538673234,0.297173538673234, +0.434289878411949,0.434289878411949,0.43422308013,0.433961529005752,0.433564829545264,0.433103873049058,0.432650552172448,0.432278294511891,0.432061734488741,0.432061734488741, +0.601486264473986,0.601486264473986,0.601343631519768,0.600929803803889,0.600350312060324,0.599699511360066,0.59905932598005,0.598516117786444,0.598178871959981,0.598178871959981, +0.793718728078607,0.793718728078607,0.793518780015194,0.792874698779388,0.792060228645869,0.791186519601525,0.7903217885376,0.789540082953266,0.788976452095912,0.788976452095912, + +00:26:44, +0.0599543294693764,0.0599543294693764,0.059997906750722,0.0599951065013698,0.0599573002538816,0.0598993184643055,0.0598372231931138,0.0597859645912762,0.0597571466164988,0.0597571466164988, +0.0599543294693764,0.0599543294693764,0.059997906750722,0.0599951065013698,0.0599573002538816,0.0598993184643055,0.0598372231931138,0.0597859645912762,0.0597571466164988,0.0597571466164988, +0.0808307968760192,0.0808307968760192,0.0808737742728685,0.0808602753449389,0.080804439943111,0.0807247593696071,0.0806413468523948,0.0805730863315994,0.0805348242391901,0.0805348242391901, +0.124960560107471,0.124960560107471,0.124998799585441,0.124960587562168,0.124865632422647,0.124739786403484,0.124611299750486,0.124507071500234,0.124448765807215,0.124448765807215, +0.196282922487617,0.196282922487617,0.196305921594633,0.196223057996752,0.196062519870047,0.19586125382089,0.195659615997335,0.195496742637175,0.19540544110635,0.19540544110635, +0.298760767342072,0.298760767342072,0.298750531737032,0.298595799621019,0.298336803957363,0.29802537881115,0.297717229824699,0.297467652360904,0.297326330159799,0.297326330159799, +0.434434194083564,0.434434194083564,0.434367382687467,0.434105896657445,0.433709316097693,0.43324850522481,0.432795330793429,0.432423194933913,0.432206706323495,0.432206706323495, +0.601600377641771,0.601600377641771,0.601457763575007,0.601044062894779,0.600464765800717,0.59981419076663,0.599174230367387,0.598631213901417,0.598294086805367,0.598294086805367, +0.793782051075399,0.793782051075399,0.793582162810566,0.792938291820918,0.792124095905496,0.791250685697317,0.790386252005888,0.789604814317481,0.789041374068782,0.789041374068782, + +00:26:45, +0.0600504746644923,0.0600504746644923,0.0600940775812191,0.0600912805285988,0.0600534596155045,0.0599954518939656,0.0599333272886733,0.0598820437841991,0.0598532116236683,0.0598532116236683, +0.0600504746644923,0.0600504746644923,0.0600940775812191,0.0600912805285988,0.0600534596155045,0.0599954518939656,0.0599333272886733,0.0598820437841991,0.0598532116236683,0.0598532116236683, +0.0809378898576198,0.0809378898576198,0.0809808832626768,0.0809673849767617,0.0809115376804276,0.0808318371262407,0.0807484022122681,0.0806801227326478,0.0806418498614437,0.0806418498614437, +0.125085726353974,0.125085726353974,0.125123965631925,0.125085752576122,0.12499079472452,0.124864944220113,0.124736452283224,0.124632219477081,0.124573911218836,0.124573911218836, +0.196426180856962,0.196426180856962,0.196449163404261,0.196366304284222,0.196205785065862,0.196004545135694,0.195802934198566,0.195640082966265,0.195548794072896,0.195548794072896, +0.298913164552056,0.298913164552056,0.298902905088799,0.298748197612671,0.298489260705673,0.298177911842846,0.297869840604856,0.297620327287436,0.297479041925149,0.297479041925149, +0.434578408482458,0.434578408482458,0.43451158402377,0.434250163074351,0.433853701362017,0.433393036041844,0.432940007983039,0.432567993861882,0.43235157662558,0.43235157662558, +0.601714396499398,0.601714396499398,0.601571801337526,0.601158227604079,0.6005791250081,0.599928775461864,0.599289039864326,0.598746214970856,0.598409206506891,0.598409206506891, +0.7938453170401,0.7938453170401,0.793645488527845,0.793001827596322,0.79218790564924,0.791314794004123,0.790450657412752,0.789669487373353,0.789106237556508,0.789106237556508, + +00:26:46, +0.0601466701841594,0.0601466701841594,0.0601902987024271,0.0601875048557053,0.0601496693201057,0.0600916357302923,0.060029481859068,0.0599781735084649,0.0599493271940352,0.0599493271940352, +0.0601466701841594,0.0601466701841594,0.0601902987024271,0.0601875048557053,0.0601496693201057,0.0600916357302923,0.060029481859068,0.0599781735084649,0.0599493271940352,0.0599493271940352, +0.0810450154927203,0.0810450154927203,0.081088024881724,0.0810745272548087,0.0810186681139702,0.0809389476492338,0.0808554904124651,0.0807871920350056,0.0807489084193061,0.0807489084193061, +0.125210892496587,0.125210892496587,0.125249131570571,0.125210917511368,0.125115957004495,0.124990102088918,0.124861604944583,0.124757367645049,0.124699056856572,0.124699056856572, +0.196569397847539,0.196569397847539,0.196592363859486,0.196509509254308,0.196349008994872,0.196147795243962,0.195946211253791,0.195783382198146,0.195692105969228,0.195692105969228, +0.299065481988379,0.299065481988379,0.299055198715959,0.298900515906843,0.298641637773083,0.29833036520731,0.298022371729833,0.297772922567099,0.297631674047162,0.297631674047162, +0.434722521739282,0.434722521739282,0.434655684269456,0.434394328386977,0.433997985468716,0.433537465630603,0.43308458387168,0.432712691426169,0.432496345525355,0.432496345525355, +0.601828321185972,0.601828321185972,0.601685744946369,0.601272298070927,0.600693389821774,0.600043265585246,0.599403754610522,0.598861121134572,0.59852423120447,0.59852423120447, +0.793908526062823,0.793908526062823,0.793708757257205,0.793065306196058,0.792251657967929,0.791378844613169,0.79051500484981,0.789734102212858,0.789171042651331,0.789171042651331, + +00:26:47, +0.0602429159471063,0.0602429159471063,0.0602865700330985,0.0602837794014361,0.0602459292864023,0.0601878698919578,0.0601256868229222,0.0600743536826587,0.0600454932461624,0.0600454932461624, +0.0602429159471063,0.0602429159471063,0.0602865700330985,0.0602837794014361,0.0602459292864023,0.0601878698919578,0.0601256868229222,0.0600743536826587,0.0600454932461624,0.0600454932461624, +0.0811521737120505,0.0811521737120505,0.0811951990607721,0.081181702109824,0.0811258311744227,0.0810460908691834,0.0809626113834898,0.0808942941690995,0.0808559998431605,0.0808559998431605, +0.12533605849641,0.12533605849641,0.125374297362507,0.12533608232899,0.125241119223545,0.125115259970723,0.124986757695227,0.124882515964668,0.124824202680877,0.124824202680877, +0.196712573472988,0.196712573472988,0.196735522973939,0.196652672920565,0.196492191670485,0.19629100415891,0.19608944717602,0.195926640345656,0.195835376808089,0.195835376808089, +0.299217719729713,0.299217719729713,0.299207412697118,0.299052754582051,0.29879393523798,0.298482738982761,0.298174823277674,0.297925438277789,0.297784226603653,0.297784226603653, +0.434866533984485,0.434866533984485,0.434799683554871,0.434538392725628,0.434142168548071,0.433681794121333,0.433229058589554,0.432857287756943,0.432641013152975,0.432641013152975, +0.601942151840339,0.601942151840339,0.601799594540317,0.601386274434193,0.600807560380774,0.600157661275995,0.599518374745367,0.598975932532114,0.598639161037759,0.598639161037759, +0.793971678233494,0.793971678233494,0.793771969088635,0.793128727710396,0.792315352952204,0.791442837615489,0.790579294408486,0.789798658927779,0.789235789445295,0.789235789445295, + +00:26:48, +0.0603392118721173,0.0603392118721173,0.0603828914920413,0.0603801040845933,0.0603422394331666,0.0602841542976897,0.0602219420989153,0.0601705842254201,0.0601417096986674,0.0601417096986674, +0.0603392118721173,0.0603392118721173,0.0603828914920413,0.0603801040845933,0.0603422394331666,0.0602841542976897,0.0602219420989153,0.0601705842254201,0.0601417096986674,0.0601417096986674, +0.081259364446425,0.081259364446425,0.0813024057306676,0.081288909472636,0.0812330267925539,0.0811532667167712,0.0810697650559307,0.0810014290654407,0.0809631240634747,0.0809631240634747, +0.125461224314642,0.125461224314642,0.125499462968959,0.12546124699017,0.125366281342746,0.125240417826454,0.125111910495922,0.125007664396571,0.124949348652309,0.124949348652309, +0.196855707747004,0.196855707747004,0.19687864076131,0.196795795296602,0.196635333106166,0.196434171893807,0.196232641978319,0.196069857421692,0.195978606602281,0.195978606602281, +0.29936987785467,0.29936987785467,0.299359547110819,0.299204913716749,0.298946153178688,0.298635033247358,0.298327195326361,0.298077874497345,0.297936699672381,0.297936699672381, +0.435010445348319,0.435010445348319,0.434943582010163,0.43468235622041,0.434286250730163,0.433826021644082,0.433373432266666,0.433001782984178,0.432785579638403,0.432785579638403, +0.602055888601078,0.602055888601078,0.601913350257887,0.601500156832487,0.600921636823872,0.600271962673063,0.599632900407989,0.599090649302765,0.598753996146147,0.598753996146147, +0.794034773641851,0.794034773641851,0.793835124111933,0.793192092229417,0.792378990692516,0.79150677310193,0.790643526180018,0.789863157609708,0.789300478030256,0.789300478030256, + +00:26:49, +0.0604355578780321,0.0604355578780321,0.060479262998119,0.0604764788240347,0.0604385996792263,0.0603804888662708,0.0603182476057818,0.060266865055444,0.0602379764702227,0.0602379764702227, +0.0604355578780321,0.0604355578780321,0.060479262998119,0.0604764788240347,0.0604385996792263,0.0603804888662708,0.0603182476057818,0.060266865055444,0.0602379764702227,0.0602379764702227, +0.0813665876267428,0.0813665876267428,0.0814096448223413,0.0813961492741578,0.0813402548992167,0.0812604751227634,0.0811769513604607,0.0811085966546249,0.0810702810108007,0.0810702810108007, +0.125586389912585,0.125586389912585,0.125624628351258,0.125586411456195,0.125491443323277,0.125365575617137,0.125237063307534,0.125132812901492,0.125074494731529,0.125074494731529, +0.196998800683342,0.196998800683342,0.197021717235342,0.196938876396087,0.196778433315438,0.196577298461984,0.196375795673813,0.19621303343921,0.196121795364664,0.196121795364664, +0.2995219564418,0.2995219564418,0.299511602035546,0.299356993389331,0.299098291673473,0.298787248079199,0.298479487953816,0.298230231303545,0.298089093331043,0.298089093331043, +0.435154255960833,0.435154255960833,0.435087379765279,0.434826219001232,0.434430232144875,0.433970148328695,0.433517705032822,0.433146177237649,0.432930045111399,0.432930045111399, +0.602169531606506,0.602169531606506,0.602027012237334,0.601613945404155,0.601035619289578,0.600386169915141,0.599747331737255,0.599205271585547,0.59886873666876,0.59886873666876, +0.794097812377448,0.794097812377448,0.793898222416712,0.793255399843016,0.792442571279129,0.79157065116315,0.79070770025545,0.789927598350049,0.789365108497879,0.789365108497879, + +00:26:50, +0.060531953883746,0.060531953883746,0.0605756844702507,0.0605729035386737,0.060535009943465,0.0604768735165392,0.0604146032623116,0.0603631960914802,0.0603342934795559,0.0603342934795559, +0.060531953883746,0.060531953883746,0.0605756844702507,0.0605729035386737,0.060535009943465,0.0604768735165392,0.0604146032623116,0.0603631960914802,0.0603342934795559,0.0603342934795559, +0.0814738431839874,0.0814738431839874,0.0815169162668087,0.0815034214453868,0.0814475154253486,0.0813677160180104,0.0812841702278372,0.0812157968673322,0.0811774706157753,0.0811774706157753, +0.125711555251643,0.125711555251643,0.125749793470834,0.125711575688451,0.125616605126415,0.125490733303902,0.125362216091033,0.125257961440269,0.125199640879299,0.125199640879299, +0.197141852295809,0.197141852295809,0.197164752409837,0.197081916232744,0.19692149231188,0.196720383876826,0.196518908275683,0.196356168411222,0.196264943108156,0.196264943108156, +0.299673955569591,0.299673955569591,0.299663577549718,0.299508993678128,0.299250350800535,0.298939383556321,0.298631701237902,0.298382508774107,0.29824140765728,0.29824140765728, +0.43529796595188,0.43529796595188,0.435231076949966,0.4349699811978,0.43457411292189,0.434114174304824,0.43366187701763,0.433290470646932,0.433074409701529,0.433074409701529, +0.602283080994681,0.602283080994681,0.60214058061665,0.601727640287281,0.601149507916141,0.600500283140658,0.599861668871767,0.599319799519219,0.598983382744464,0.598983382744464, +0.794160794529649,0.794160794529649,0.7939612640924,0.793318650640902,0.792506094802117,0.791634471889617,0.790771816725641,0.789991981240013,0.789429680939638,0.789429680939638, + +00:26:51, +0.0606283998082101,0.0606283998082101,0.0606721558274116,0.0606693781474795,0.0606314701448215,0.0605733081673887,0.0605110089873499,0.0604595772523339,0.0604306606454496,0.0604306606454496, +0.0606283998082101,0.0606283998082101,0.0606721558274116,0.0606693781474795,0.0606314701448215,0.0605733081673887,0.0605110089873499,0.0604595772523339,0.0604306606454496,0.0604306606454496, +0.0815811310492268,0.0815811310492268,0.0816242199951696,0.0816107259174048,0.0815548083019714,0.0814749893334471,0.0813914215889019,0.0813230296343271,0.0812846928091192,0.0812846928091192, +0.12583672029332,0.12583672029332,0.125874958289219,0.125836739648424,0.12574176671354,0.125615890847979,0.12548736880749,0.125383109973839,0.125324787056482,0.125324787056482, +0.197284862598271,0.197284862598271,0.19730774629865,0.197224914820351,0.197064510109126,0.196863428151774,0.196661979797168,0.1964992623508,0.196408049845733,0.196408049845733, +0.299825875316466,0.299825875316466,0.299815473731694,0.299660914661409,0.299402330638017,0.299091439756699,0.298783835256422,0.298534706986692,0.298393642728671,0.298393642728671, +0.43544157545111,0.43544157545111,0.435374673693775,0.435113642939624,0.434717893190694,0.434258099701918,0.433805948350502,0.433434663341409,0.433218673538162,0.433218673538162, +0.602396536903397,0.602396536903397,0.602254055533568,0.601841241619688,0.601263302841545,0.600614302487781,0.599975911949866,0.599434233242277,0.599097934511861,0.599097934511861, +0.794223720187635,0.794223720187635,0.794024249228236,0.793381844712594,0.79256956135137,0.791698235371612,0.790835875681258,0.790056306370626,0.789494195446818,0.789494195446818, + +00:26:52, +0.0607248955704314,0.0607248955704314,0.0607686769886325,0.0607659025694772,0.0607279802022906,0.0606697927377688,0.0606074646997974,0.0605560084568657,0.0605270778867421,0.0605270778867421, +0.0607248955704314,0.0607248955704314,0.0607686769886325,0.0607659025694772,0.0607279802022906,0.0606697927377688,0.0606074646997974,0.0605560084568657,0.0605270778867421,0.0605270778867421, +0.0816884511536134,0.0816884511536134,0.081731555938608,0.0817180626213777,0.0816621334601912,0.0815822950000926,0.0814987053745808,0.0814302948864582,0.0813919475216378,0.0813919475216378, +0.12596188499922,0.12596188499922,0.126000122768045,0.125961903297702,0.125866928046132,0.125741048210698,0.125612521418077,0.125508258463243,0.125449933224044,0.125449933224044, +0.197427831604649,0.197427831604649,0.197450698915694,0.197367872172744,0.197207486720867,0.197006431300328,0.196805010251565,0.196642315271072,0.19655111559043,0.19655111559043, +0.299977715760791,0.299977715760791,0.29996729065977,0.299812756417382,0.299554231263998,0.29924341675825,0.298935890087117,0.298686826018899,0.298545798622737,0.298545798622737, +0.435585084587978,0.435585084587978,0.435518170126057,0.435257204356015,0.434861573080573,0.434401924649233,0.43394991916065,0.433578755450262,0.433362836750468,0.433362836750468, +0.602509899470187,0.602509899470187,0.602367437125559,0.601954749538938,0.601377004203517,0.600728228094415,0.600090061109635,0.599548572892957,0.599212392109292,0.599212392109292, +0.7942865894404,0.7942865894404,0.794087177913277,0.793444982147428,0.79263297101659,0.79176194169923,0.790899877212782,0.790120573832722,0.789558652110515,0.789558652110515, + +00:26:53, +0.060821441089473,0.060821441089473,0.0608652478730004,0.0608624767237479,0.0608245400349233,0.0607663271466847,0.0607039703186105,0.0606524896239918,0.0606235451223268,0.0606235451223268, +0.060821441089473,0.060821441089473,0.0608652478730004,0.0608624767237479,0.0608245400349233,0.0607663271466847,0.0607039703186105,0.0606524896239918,0.0606235451223268,0.0606235451223268, +0.0817958034283837,0.0817958034283837,0.0818389240283924,0.0818254314885559,0.0817694908311983,0.0816896329490502,0.0816060215158841,0.0815375925546586,0.0814992346842205,0.0814992346842205, +0.126087049331048,0.126087049331048,0.126125286869044,0.126087066597974,0.125992089085772,0.125866205353491,0.125737673884065,0.125633406869622,0.125575079343052,0.125575079343052, +0.197570759328917,0.197570759328917,0.197593610274935,0.197510788303811,0.19735042216085,0.197149393336042,0.196947999652225,0.196785327185223,0.196694140355338,0.196694140355338, +0.300129476980865,0.300129476980865,0.30011902841218,0.299964519024192,0.299706052756496,0.299395314638828,0.29908786580767,0.298838865948267,0.298697875416939,0.298697875416939, +0.435728493491739,0.435728493491739,0.435661566375963,0.435400665576087,0.435005152720619,0.434545649275824,0.434093789577092,0.433722747102478,0.433506899467422,0.433506899467422, +0.602623168832325,0.602623168832325,0.602480725529835,0.602068164182335,0.601490612139522,0.600842060098207,0.600204116488892,0.599662818609236,0.599326755674839,0.599326755674839, +0.794349402376755,0.794349402376755,0.794150050236393,0.793508063034554,0.792696323887293,0.791825590962376,0.790963821410507,0.790184783716948,0.789623051021636,0.789623051021636, + +00:26:54, +0.0609180362844539,0.0609180362844539,0.0609618683996586,0.0609591005294289,0.0609211495618262,0.0608629113131976,0.0608005257628015,0.0607490206726838,0.0607200622711528,0.0607200622711528, +0.0609180362844539,0.0609180362844539,0.0609618683996586,0.0609591005294289,0.0609211495618262,0.0608629113131976,0.0608005257628015,0.0607490206726838,0.0607200622711528,0.0607200622711528, +0.0819031878048587,0.0819031878048587,0.0819463241958753,0.0819328324502739,0.0818768803462671,0.0817970031115075,0.0817133699439062,0.0816449225699453,0.0816065542278409,0.0816065542278409, +0.126212213250609,0.126212213250609,0.126250450554047,0.126212229511026,0.126117249794141,0.125991362237889,0.12586282616683,0.125758555154218,0.125700225374674,0.125700225374674, +0.197713645785105,0.197713645785105,0.197736480390393,0.197653663227497,0.197493316442874,0.197292314272527,0.197090948012558,0.196928298106494,0.196837124153604,0.196837124153604, +0.300281159054927,0.300281159054927,0.300270687067095,0.300116202559921,0.299857795193468,0.299547133476226,0.299239762495702,0.298990826852277,0.298849873188679,0.298849873188679, +0.435871802291449,0.435871802291449,0.435804862572449,0.435544026728753,0.435148632239722,0.434689273710551,0.434237559728648,0.433866638426848,0.433650861817805,0.433650861817805, +0.602736345126827,0.602736345126827,0.602593920883348,0.602181485686921,0.601604126786767,0.600955798636542,0.600318078225199,0.599776970528828,0.599441025346323,0.599441025346323, +0.794412159085325,0.794412159085325,0.79421286628627,0.793571087462938,0.792759620052808,0.791889183250773,0.791027708364539,0.790248936113763,0.789687392270899,0.789687392270899, + +00:26:55, +0.0610146810745498,0.0610146810745498,0.0610585384878067,0.0610557739057138,0.0610178087021626,0.0609595451564247,0.0608971309514383,0.0608456015219694,0.060816629252225,0.060816629252225, +0.0610146810745498,0.0610146810745498,0.0610585384878067,0.0610557739057138,0.0610178087021626,0.0609595451564247,0.0608971309514383,0.0608456015219694,0.060816629252225,0.060816629252225, +0.0820106042144434,0.0820106042144434,0.0820537563724934,0.0820402654379503,0.0819843019367561,0.081904405418736,0.0818207505898256,0.0817522848634196,0.0817139060835567,0.0817139060835567, +0.126337376719808,0.126337376719808,0.126375613784987,0.126337391998747,0.126242410133019,0.126116518825524,0.125987978227843,0.125883703278372,0.125825371280178,0.125825371280178, +0.1978564909873,0.1978564909873,0.197879309276146,0.197796496957802,0.197636169580797,0.197435194123447,0.197233855346028,0.197071228048184,0.196980066998432,0.196980066998432, +0.300432762061154,0.300432762061154,0.300422266702625,0.300267807102592,0.300009458652806,0.299698873348175,0.299391580228774,0.299142708808348,0.299001792015299,0.299001792015299, +0.436015011115969,0.436015011115969,0.435948058844273,0.435687287942733,0.435292011766577,0.434832798082076,0.434381229743942,0.434010429551967,0.4337947239302,0.4337947239302, +0.602849428490448,0.602849428490448,0.602707023322792,0.602294714189481,0.601717548282197,0.601069443846549,0.600431946455858,0.599891028789192,0.599555201261305,0.599555201261305, +0.794474859654552,0.794474859654552,0.794275626151411,0.793634055521359,0.792822859602282,0.791952718653955,0.791091538164797,0.79031303111344,0.789751675948836,0.789751675948836, + +00:26:56, +0.0611113753789924,0.0611113753789924,0.0611552580567006,0.0611524967718526,0.0611145173751519,0.0610562285955395,0.0609937858036453,0.0609422320909321,0.0609132459846041,0.0609132459846041, +0.0611113753789924,0.0611113753789924,0.0611552580567006,0.0611524967718526,0.0611145173751519,0.0610562285955395,0.0609937858036453,0.0609422320909321,0.0609132459846041,0.0609132459846041, +0.0821180525886271,0.0821180525886271,0.0821612204897676,0.0821477303830876,0.0820917555341082,0.0820118398020916,0.0819281633849049,0.081859679366267,0.0818212901825097,0.0818212901825097, +0.12646253970065,0.12646253970065,0.126500776523895,0.126462554023122,0.126367570064286,0.126241675078129,0.126113130028679,0.126008851203528,0.125950517020932,0.125950517020932, +0.197999294949639,0.197999294949639,0.198022096946322,0.197939289508778,0.197778981588528,0.197578032902523,0.197376721666154,0.197214117023646,0.197122968903085,0.197122968903085, +0.300584286077658,0.300584286077658,0.300573767396816,0.300419332730162,0.300161043212345,0.299850534332347,0.299543319084385,0.299294511893841,0.29915363197408,0.29915363197408, +0.436158120093961,0.436158120093961,0.436091155319994,0.435830449346548,0.435435291429684,0.434976222518867,0.434524799751402,0.434154120606234,0.433938485932996,0.433938485932996, +0.602962419059685,0.602962419059685,0.602820032984603,0.602407849826542,0.601830876762502,0.601182995865095,0.600545721317911,0.600004993527524,0.599669283557089,0.599669283557089, +0.794537504172697,0.794537504172697,0.794338329920135,0.793696967298415,0.792886042624674,0.792016197261271,0.791155310901016,0.790377068806065,0.789815902145792,0.789815902145792, + +00:26:57, +0.0612081191170703,0.0612081191170703,0.0612520270256531,0.061249269047152,0.0612112755000698,0.0611529615497719,0.0610904902386027,0.0610389122987115,0.0610099123874068,0.0610099123874068, +0.0612081191170703,0.0612081191170703,0.0612520270256531,0.061249269047152,0.0612112755000698,0.0611529615497719,0.0610904902386027,0.0610389122987115,0.0610099123874068,0.0610099123874068, +0.082225532858983,0.082225532858983,0.0822687164793028,0.0822552272172727,0.0821992410698498,0.0821193061930138,0.0820356082604906,0.0819671060097566,0.0819287064559259,0.0819287064559259, +0.126587702155237,0.126587702155237,0.126625938732901,0.126587715546238,0.126492729549921,0.126366830957533,0.126238281531012,0.126133998891228,0.126075662558406,0.126075662558406, +0.198142057686314,0.198142057686314,0.198164843415105,0.198082040894531,0.197921752480032,0.19772083062353,0.197519546986511,0.19735696504629,0.197265829880877,0.197265829880877, +0.300735731182492,0.300735731182492,0.300725189227652,0.300570779520529,0.300312548949855,0.300002116506352,0.299694979139975,0.299446236186054,0.299305393142246,0.299305393142246, +0.43630112935389,0.43630112935389,0.436234152127978,0.435973511068523,0.435578471357345,0.435119547149194,0.434668269879261,0.434297711717855,0.434082147954385,0.434082147954385, +0.603075316970779,0.603075316970779,0.602932950004959,0.602520892734373,0.601944112364113,0.601296454828791,0.600659402948144,0.600118864880766,0.599783272370721,0.599783272370721, +0.794600092727834,0.794600092727834,0.794400977680578,0.793759822882519,0.792949169208762,0.792079619161887,0.791219026662742,0.790441049281537,0.789880070951923,0.789880070951923, + +00:26:58, +0.0613049122081284,0.0613049122081284,0.0613488453140333,0.0613460906509752,0.0613080829962489,0.061249743938408,0.0611872441755473,0.0611356420645032,0.0611066283798059,0.0611066283798059, +0.0613049122081284,0.0613049122081284,0.0613488453140333,0.0613460906509752,0.0613080829962489,0.061249743938408,0.0611872441755473,0.0611356420645032,0.0611066283798059,0.0611066283798059, +0.0823330449571686,0.0823330449571686,0.0823762442727877,0.0823627558721761,0.0823067584755915,0.0822268045230263,0.0821430851480134,0.0820745647252418,0.0820361548351149,0.0820361548351149, +0.126712864045774,0.126712864045774,0.126751100374234,0.12671287653028,0.126617888552003,0.126491986425667,0.126363432696613,0.126259146303114,0.126200807854168,0.126200807854168, +0.198284779211573,0.198284779211573,0.198307548696732,0.198224751129223,0.198064482269328,0.197863587300298,0.197662331320731,0.197499772129581,0.197408649945181,0.197408649945181, +0.300887097453643,0.300887097453643,0.300876532273054,0.300722147551525,0.300463975943044,0.300153619947736,0.299846560472923,0.299597881762228,0.299457075596958,0.299457075596958, +0.436444039024025,0.436444039024025,0.43637704939639,0.436116473236785,0.435721551677665,0.435262772101131,0.434811640255556,0.434441203014838,0.434225710122367,0.434225710122367, +0.603188122359713,0.603188122359713,0.603045774519783,0.602633843048985,0.602057255223204,0.601409820873993,0.600772991483085,0.6002326429856,0.599897167838989,0.599897167838989, +0.794662625407857,0.794662625407857,0.794463569520695,0.793822622361901,0.793012239443138,0.792142984444783,0.79128268553934,0.790504972629569,0.789944182457201,0.789944182457201, + +00:26:59, +0.0614017545715687,0.0614017545715687,0.0614457128412674,0.0614429615027423,0.0614049397830783,0.0613465756807907,0.0612840475337722,0.0612324213075594,0.0612033938810305,0.0612033938810305, +0.0614017545715687,0.0614017545715687,0.0614457128412674,0.0614429615027423,0.0614049397830783,0.0613465756807907,0.0612840475337722,0.0612324213075594,0.0612033938810305,0.0612033938810305, +0.0824405888149251,0.0824405888149251,0.0824838038019951,0.0824703162795523,0.0824143076830279,0.0823343347237366,0.0822505939789876,0.0821820554441597,0.0821436352514705,0.0821436352514705, +0.126838025334559,0.126838025334559,0.12687626141022,0.126838036937531,0.126743047032709,0.126617141444561,0.126488583487356,0.126384293400929,0.126325952869887,0.126325952869887, +0.198427459539715,0.198427459539715,0.198450212805492,0.198367420227066,0.198207170970486,0.198006302946708,0.197805074682495,0.197642538287038,0.197551429109425,0.197551429109425, +0.301038384969037,0.301038384969037,0.301027796610883,0.300873436900923,0.300615324269559,0.300305044733986,0.299998063160546,0.299749448699541,0.299608679415318,0.299608679415318, +0.436586849232439,0.436586849232439,0.436519847253202,0.436259335979268,0.435864532518555,0.43540589750256,0.43495491100813,0.434584594624998,0.434369172564746,0.434369172564746, +0.603300835362214,0.603300835362214,0.603158506664739,0.602746700906135,0.602170305475693,0.601523094136797,0.600886487059006,0.600346327978452,0.600010970098422,0.600010970098422, +0.794725102300481,0.794725102300481,0.794526105528256,0.79388536582461,0.793075253416212,0.792206293198755,0.791346287619989,0.790568838939691,0.790008236751413,0.790008236751413, + +00:27:00, +0.06149864612685,0.06149864612685,0.0615426295268386,0.0615398815219303,0.0615018457800041,0.0614434566963196,0.061380900232627,0.0613292499471885,0.0613002088103658,0.0613002088103658, +0.06149864612685,0.06149864612685,0.0615426295268386,0.0615398815219303,0.0615018457800041,0.0614434566963196,0.061380900232627,0.0613292499471885,0.0613002088103658,0.0613002088103658, +0.0825481643640777,0.0825481643640777,0.0825913949987818,0.0825779083712397,0.0825218886239372,0.0824418967268361,0.0823581346850115,0.0822895780980315,0.0822511476364702,0.0822511476364702, +0.126963185983994,0.126963185983994,0.127001421803287,0.126963196730371,0.126868204954313,0.126742295976341,0.126613733865211,0.126509440146513,0.126451097567329,0.126451097567329, +0.198570098685091,0.198570098685091,0.198592835755728,0.198510048202327,0.198349818597633,0.198148977576699,0.197947777085544,0.197785263532237,0.19769416738709,0.19769416738709, +0.301189593806536,0.301189593806536,0.301178982318932,0.301024647646431,0.300766594006984,0.300456390942527,0.300149487280101,0.299900937075112,0.299760204674369,0.299760204674369, +0.436729560107007,0.436729560107007,0.43666254582619,0.436402099423708,0.43600741400773,0.435548923481164,0.435098082264632,0.434727886675957,0.434512535409133,0.434512535409133, +0.603413456113753,0.603413456113753,0.603271146575239,0.602859466441324,0.602283263257242,0.601636274753045,0.600999889811921,0.600459919995494,0.600124679285298,0.600124679285298, +0.794787523493234,0.794787523493234,0.794588585790855,0.793948053358511,0.793138211216211,0.792269545512417,0.791409832993682,0.790632648301247,0.790072233924159,0.790072233924159, + +00:27:01, +0.061595586793488,0.061595586793488,0.061639595290287,0.0616368506280732,0.0615988009065292,0.0615403869044509,0.061477802191518,0.0614261279027557,0.061397073087154,0.061397073087154, +0.061595586793488,0.061595586793488,0.061639595290287,0.0616368506280732,0.0615988009065292,0.0615403869044509,0.061477802191518,0.0614261279027557,0.061397073087154,0.061397073087154, +0.0826557715365355,0.0826557715365355,0.0826990177950879,0.0826855320791604,0.0826295012301814,0.0825494904640998,0.082465707197767,0.0823971326184619,0.0823586919216752,0.0823586919216752, +0.127088345956576,0.127088345956576,0.127126581515958,0.127088355871282,0.12699336227919,0.126867449983235,0.126738883792247,0.126634586501806,0.126576241908363,0.126576241908363, +0.198712696662107,0.198712696662107,0.198735417561834,0.198652635069324,0.198492425164945,0.19829161120426,0.19809043854367,0.197927947878805,0.197836864791713,0.197836864791713, +0.301340724043941,0.301340724043941,0.301330089474936,0.301175779865695,0.300917785232841,0.300607658650722,0.300300832908785,0.300052346965999,0.299911651451093,0.299911651451093, +0.436872171775412,0.436872171775412,0.436805145242934,0.436544763697647,0.436150196272711,0.435691850164434,0.435241154152514,0.434871079295141,0.434655798782945,0.434655798782945, +0.603525984749547,0.603525984749547,0.603383694386437,0.602972139789796,0.602396128703257,0.601749362858323,0.601113199877593,0.600573419172639,0.600238295535635,0.600238295535635, +0.794849889073468,0.794849889073468,0.794651010395899,0.79401068505129,0.793201112931181,0.7923327414742,0.791473321749231,0.790696400803397,0.790136174064854,0.790136174064854, + +00:27:02, +0.0616925764910559,0.0616925764910559,0.06173661005121,0.0617338687407623,0.0616958050822137,0.0616373662246982,0.0615747533299086,0.0615230550936827,0.0614939866307934,0.0614939866307934, +0.0616925764910559,0.0616925764910559,0.06173661005121,0.0617338687407623,0.0616958050822137,0.0616373662246982,0.0615747533299086,0.0615230550936827,0.0614939866307934,0.0614939866307934, +0.0827634102642912,0.0827634102642912,0.0828066721229379,0.0827931873353202,0.0827371454337063,0.0826571158673867,0.0825733114490201,0.0825047189371395,0.0824662680387306,0.0824662680387306, +0.1272135052149,0.1272135052149,0.127251740510854,0.127213514322839,0.12711851896981,0.126992603427566,0.126864033230634,0.126759732428846,0.126701385854952,0.126701385854952, +0.198855253485218,0.198855253485218,0.198877958238259,0.198795180842429,0.198634990686653,0.198434203843435,0.198233059070718,0.198070591340425,0.197979521336885,0.197979521336885, +0.301491775758989,0.301491775758989,0.301481118156564,0.301326833636299,0.301068898024589,0.300758847935872,0.300452100123731,0.3002036784492,0.300063019822411,0.300063019822411, +0.437014684365138,0.437014684365138,0.436947645630819,0.436687328928431,0.436292879440823,0.435834677679665,0.435384126799039,0.435014172609784,0.434798962813406,0.434798962813406, +0.603638421404557,0.603638421404557,0.603496150233236,0.603084721086543,0.602508901948892,0.601862358587962,0.601226417391525,0.600686825645548,0.600351818985197,0.600351818985197, +0.794912199128353,0.794912199128353,0.794713379430619,0.79407326099045,0.793263958648985,0.792395881172351,0.791536753975265,0.790760096535118,0.790200057262732,0.790200057262732, + +00:27:03, +0.0617896151391839,0.0617896151391839,0.0618336737292624,0.0618309357796461,0.0617928582266748,0.0617343945766317,0.0616717535673187,0.0616200314394481,0.0615909493607395,0.0615909493607395, +0.0617896151391839,0.0617896151391839,0.0618336737292624,0.0618309357796461,0.0617928582266748,0.0617343945766317,0.0616717535673187,0.0616200314394481,0.0615909493607395,0.0615909493607395, +0.0828710804794215,0.0828710804794215,0.0829143579144394,0.0829008740718087,0.0828448211665413,0.0827647728686391,0.0826809473706201,0.0826123369858365,0.0825738759193652,0.0825738759193652, +0.12733866372166,0.12733866372166,0.127376898750694,0.127338672047718,0.127243674988742,0.127117756271758,0.126989182142637,0.12688487788977,0.126826529369161,0.126826529369161, +0.198997769168935,0.198997769168935,0.199020457799499,0.198937685536064,0.198777515177039,0.198576755508319,0.198375638680587,0.198213193930833,0.198122137036252,0.198122137036252, +0.301642749029353,0.301642749029353,0.301632068441424,0.301477809035762,0.301219932459627,0.300909958875217,0.300603289002013,0.300354931601651,0.300214309865184,0.300214309865184, +0.437157098003476,0.437157098003476,0.437090047117035,0.436829795243214,0.436435463639197,0.43597740615396,0.435527000331271,0.435157166746927,0.434942027627546,0.434942027627546, +0.603750766213492,0.603750766213492,0.603608514250281,0.603197210466302,0.602621583129045,0.601975262077041,0.601339542488969,0.600800139549626,0.600465249769496,0.600465249769496, +0.794974453744879,0.794974453744879,0.794775692982065,0.794135781263315,0.793326748457305,0.792458964694938,0.791600129760229,0.790823735585202,0.790263883606841,0.790263883606841, + +00:27:04, +0.0618867026575597,0.0618867026575597,0.0619307862441563,0.0619280516644306,0.0618899602595872,0.061831471879879,0.0617688028233255,0.0617170568595873,0.0616879611965042,0.0616879611965042, +0.0618867026575597,0.0618867026575597,0.0619307862441563,0.0619280516644306,0.0618899602595872,0.061831471879879,0.0617688028233255,0.0617170568595873,0.0616879611965042,0.0616879611965042, +0.0829787821140866,0.0829787821140866,0.083022075101784,0.0830085922207989,0.0829525283607993,0.0828724613998832,0.0827886148944999,0.0827199866964086,0.0826815154953913,0.0826815154953913, +0.127463821439646,0.127463821439646,0.127502056198294,0.12746382900869,0.127368830298653,0.127242908478328,0.127114330490619,0.127010022846812,0.126951672413151,0.126951672413151, +0.199140243727817,0.199140243727817,0.199162916260107,0.199080149164704,0.198919998650438,0.19871926621306,0.198518177387231,0.19835575566382,0.19826471190351,0.19826471190351, +0.301793643932643,0.301793643932643,0.301782940407059,0.301628706141543,0.301370888615287,0.301060991545935,0.300754399620642,0.300506106500229,0.300365521656213,0.300365521656213, +0.437299412817523,0.437299412817523,0.437232349828578,0.436972162768952,0.436577948994771,0.436120035714227,0.435669774876086,0.435300061833417,0.435084993352205,0.435084993352205, +0.603863019310807,0.603863019310807,0.603720786571968,0.603309608063558,0.60273417237836,0.602088073460384,0.601452575304923,0.600913361020026,0.600578588023788,0.600578588023788, +0.795036653009856,0.795036653009856,0.794837951137106,0.794198245957028,0.793389482443642,0.792521992129845,0.791663449192387,0.79088731804226,0.790327653186046,0.790327653186046, + +00:27:05, +0.0619838389659285,0.0619838389659285,0.0620279475156615,0.0620252163148791,0.0619871111006829,0.0619285980541251,0.0618659010175635,0.061814131273693,0.0617850220576568,0.0617850220576568, +0.0619838389659285,0.0619838389659285,0.0620279475156615,0.0620252163148791,0.0619871111006829,0.0619285980541251,0.0618659010175635,0.061814131273693,0.0617850220576568,0.0617850220576568, +0.0830865151005303,0.0830865151005303,0.0831298236172467,0.0831163417145475,0.083060266948677,0.0829801813932285,0.0828963139526763,0.0828276680007954,0.0827891866987047,0.0827891866987047, +0.127588978331744,0.127588978331744,0.127627212816567,0.127588985168624,0.127493984862306,0.127368060009895,0.127239478237043,0.127135167262306,0.127076814949183,0.127076814949183, +0.199282677176475,0.199282677176475,0.199305333634682,0.199222571742873,0.199062441121235,0.198861735971859,0.198660675204652,0.198498276553228,0.198407245952413,0.198407245952413, +0.301944460546408,0.301944460546408,0.30193373413095,0.301779525031036,0.301521766568843,0.30121194602514,0.300905432056571,0.300657203221748,0.300516655272239,0.300516655272239, +0.437441628934181,0.437441628934181,0.43737455389225,0.43711443163241,0.436720335634288,0.436262566487182,0.435812450560163,0.435442857995911,0.435227860114027,0.435227860114027, +0.603975180830703,0.603975180830703,0.603832967332439,0.603421914012542,0.602846669831231,0.602200792872561,0.601565515974133,0.601026490191647,0.600691833883076,0.600691833883076, +0.795098797009918,0.795098797009918,0.794900153982434,0.794260655158552,0.79345216069532,0.792584963564776,0.791726712359821,0.790950843994721,0.79039136608903,0.79039136608903, + +00:27:06, +0.0620810239840931,0.0620810239840931,0.0621251574636053,0.0621224296508129,0.0620843106697514,0.0620257730191124,0.0619630480697242,0.0619112546014149,0.0618821318638234,0.0618821318638234, +0.0620810239840931,0.0620810239840931,0.0621251574636053,0.0621224296508129,0.0620843106697514,0.0620257730191124,0.0619630480697242,0.0619112546014149,0.0618821318638234,0.0618821318638234, +0.0831942793710801,0.0831942793710801,0.083237603393186,0.0832241224853946,0.0831680368624543,0.0830879327808682,0.0830040444772493,0.0829353808310196,0.0828968894612848,0.0828968894612848, +0.12771413436094,0.12771413436094,0.127752368568522,0.127714140490485,0.12761913864256,0.127493210829172,0.127364625344467,0.12726031109868,0.127201956939613,0.127201956939613, +0.199425069529573,0.199425069529573,0.199447709937877,0.199364953285149,0.199204842603868,0.199004164798967,0.198803132146908,0.198640756612952,0.198549739196764,0.198549739196764, +0.302095198948131,0.302095198948131,0.302084449690515,0.301930265781572,0.301672566397504,0.301362822389885,0.301056386386687,0.300808221842963,0.300667710789941,0.300667710789941, +0.437583746480157,0.437583746480157,0.437516659434658,0.437256601960159,0.436862623684298,0.436404998599346,0.43595502750999,0.435585555360869,0.435370628039467,0.435370628039467, +0.604087250907132,0.604087250907132,0.603945056665584,0.603534128447234,0.602959075621797,0.602313420447893,0.60167836463109,0.601139527199135,0.600804987482112,0.600804987482112, +0.795160885831518,0.795160885831518,0.794962301604562,0.794323008954674,0.793514783299479,0.792647879087255,0.791789919350433,0.791014313530832,0.790455022404293,0.790455022404293, + +00:27:07, +0.0621782576319142,0.0621782576319142,0.062222416007873,0.0622196915921108,0.0621815588866401,0.0621229966946407,0.0620602438995567,0.06200842676246,0.0619792905346877,0.0619792905346877, +0.0621782576319142,0.0621782576319142,0.062222416007873,0.0622196915921108,0.0621815588866401,0.0621229966946407,0.0620602438995567,0.06200842676246,0.0619792905346877,0.0619792905346877, +0.0833020748581468,0.0833020748581468,0.0833454143620441,0.0833319344657636,0.0832758380344946,0.0831957154950789,0.0831118064004022,0.0830431251191875,0.0830046237151945,0.0830046237151945, +0.127839289490314,0.127839289490314,0.127877523417266,0.127839294937336,0.127744291602373,0.127618360898969,0.127489771775547,0.127385454318463,0.127327098346897,0.127327098346897, +0.199567420801823,0.199567420801823,0.199590045184395,0.199507293806159,0.199347203112825,0.199146552708688,0.198945548228107,0.19878319585694,0.198692191650421,0.198692191650421, +0.302245859215234,0.302245859215234,0.302235087163107,0.30208092847042,0.301823288178417,0.301513620717164,0.301207262687819,0.300959162440567,0.300818688285938,0.300818688285938, +0.437725765581967,0.437725765581967,0.437658666582219,0.437398673878576,0.437004813271159,0.436547332177048,0.436097505851865,0.435728154054565,0.435513297254786,0.435513297254786, +0.604199229673791,0.604199229673791,0.604057054705043,0.603646251501362,0.603071389883947,0.602425956320446,0.601791121410035,0.601252472176887,0.600918048955395,0.600918048955395, +0.795222919560932,0.795222919560932,0.795024394089826,0.794385307431999,0.793577350343081,0.792710738784627,0.791853070251942,0.791077726738658,0.790518622220155,0.790518622220155, + +00:27:08, +0.0622755398293103,0.0622755398293103,0.0623197230684077,0.0623170020587097,0.0622788556712542,0.0622202690005677,0.0621574884268676,0.062105647676593,0.0620764979899904,0.0620764979899904, +0.0622755398293103,0.0622755398293103,0.0623197230684077,0.0623170020587097,0.0622788556712542,0.0622202690005677,0.0621574884268676,0.062105647676593,0.0620764979899904,0.0620764979899904, +0.0834099014942247,0.0834099014942247,0.0834532564563461,0.0834397775881617,0.0833836703972447,0.0833035294682202,0.0832195996544022,0.0831509007974889,0.0831123893925799,0.0831123893925799, +0.127964443683042,0.127964443683042,0.128002677326,0.127964448472333,0.127869443704797,0.127743510182195,0.127614917493035,0.127510596884279,0.127452239133586,0.127452239133586, +0.199709731007989,0.199709731007989,0.199732339388988,0.19964959332058,0.199489522662643,0.199288899715377,0.199087923462411,0.198925594299191,0.198834603327294,0.198834603327294, +0.302396441425073,0.302396441425073,0.302385646626018,0.302231513174785,0.301973931988665,0.301664341083903,0.301358061036732,0.301110025091193,0.300969587836788,0.300969587836788, +0.437867686365932,0.437867686365932,0.437800575461154,0.437540647513845,0.437146904521036,0.436689567346428,0.43623988571189,0.435870654203077,0.435655867886057,0.435655867886057, +0.60431111726413,0.60431111726413,0.604168961584203,0.603758283308404,0.60318361275132,0.602538400624036,0.60190378644496,0.601365325259045,0.601031018437172,0.601031018437172, +0.795284898284258,0.795284898284258,0.795086431524381,0.794447550676956,0.793639861912912,0.792773542744054,0.791916165151889,0.791141083706084,0.790582165624752,0.790582165624752, + +00:27:09, +0.0623728704962578,0.0623728704962578,0.0624170785652107,0.0624143609706043,0.0623762009435564,0.0623175898568088,0.0622547815715213,0.0622029172636357,0.0621737541495298,0.0621737541495298, +0.0623728704962578,0.0623728704962578,0.0624170785652107,0.0624143609706043,0.0623762009435564,0.0623175898568088,0.0622547815715213,0.0622029172636357,0.0621737541495298,0.0621737541495298, +0.0835177592118915,0.0835177592118915,0.0835611296087009,0.0835476517851788,0.0834915338832347,0.0834113746327355,0.0833274241715992,0.0832587077981968,0.0832201864256707,0.0832201864256707, +0.128089596902398,0.128089596902398,0.128127830258022,0.12808960105873,0.127994594912981,0.127868658641853,0.12774006245978,0.127635738758848,0.127577379262329,0.127577379262329, +0.199852000162883,0.199852000162883,0.199874592566459,0.199791851843139,0.199631801267913,0.199431205833438,0.19923025786403,0.199067951953759,0.198976974241344,0.198976974241344, +0.302546945654942,0.302546945654942,0.302536128156475,0.302382019971809,0.302124497905269,0.30181498356697,0.301508781510131,0.30126080987141,0.301120409518987,0.301120409518987, +0.438009508958179,0.438009508958179,0.437942386197492,0.437682522991958,0.4372888975599,0.436831704233429,0.436382167215979,0.436013055932295,0.435798340059159,0.435798340059159, +0.604422913811346,0.604422913811346,0.604280777436202,0.603870224001588,0.603295744357302,0.602650753492231,0.602016359869601,0.601478086579502,0.601143896061442,0.601143896061442, +0.795346822087419,0.795346822087419,0.795148413994209,0.794509738775795,0.793702318095576,0.792836291052525,0.791979204137636,0.791204384520815,0.790645652706043,0.790645652706043, + +00:27:10, +0.0624702495527913,0.0624702495527913,0.0625144824183411,0.0625117682478475,0.0624735946235681,0.0624149591833372,0.0623521232534397,0.0623002354434679,0.0622710589331618,0.0622710589331618, +0.0624702495527913,0.0624702495527913,0.0625144824183411,0.0625117682478475,0.0624735946235681,0.0624149591833372,0.0623521232534397,0.0623002354434679,0.0622710589331618,0.0622710589331618, +0.0836256479438083,0.0836256479438083,0.0836690337518005,0.0836555569894885,0.0835994284250778,0.0835192509211511,0.0834352798844267,0.0833665460536675,0.0833280147467796,0.0833280147467796, +0.128214749111749,0.128214749111749,0.128252982176724,0.128214752659876,0.128119745190169,0.12799380624104,0.127865206638728,0.127760879904987,0.127702518695871,0.127702518695871, +0.19999422828137,0.19999422828137,0.20001680473166,0.199934069388614,0.199774038943272,0.199573471077327,0.199372551447227,0.199210268834744,0.199119304406584,0.199119304406584, +0.302697371982072,0.302697371982072,0.302686531831641,0.30253244893857,0.302274986005187,0.301965548243169,0.301659424184658,0.30141151685773,0.301271153408973,0.301271153408973, +0.438151233484646,0.438151233484646,0.438084098917069,0.437824300438715,0.437430792513533,0.436973742963805,0.436524350489852,0.436155359367915,0.435940713899781,0.435940713899781, +0.604534619448387,0.604534619448387,0.604392502393931,0.603982073713892,0.603407784835033,0.602763015058346,0.60212884181745,0.601590756271903,0.60125668196195,0.60125668196195, +0.795408691056158,0.795408691056158,0.795210341585113,0.79457187181459,0.793764718977502,0.792898983796844,0.792042187296363,0.791267629270376,0.790709083551804,0.790709083551804, + +00:27:11, +0.0625676769190038,0.0625676769190038,0.0626119345479166,0.0626092238105506,0.0625710366313682,0.0625123769001844,0.0624495133926028,0.0623976021360271,0.0623684122608001,0.0623684122608001, +0.0625676769190038,0.0625676769190038,0.0626119345479166,0.0626092238105506,0.0625710366313682,0.0625123769001844,0.0624495133926028,0.0623976021360271,0.0623684122608001,0.0623684122608001, +0.0837335676227193,0.0837335676227193,0.08377696881842,0.0837634931338473,0.0837073539554706,0.0836271582660767,0.0835431667254014,0.0834744154963405,0.0834358742883027,0.0834358742883027, +0.128339900274559,0.128339900274559,0.128378133045597,0.128339903239216,0.128244894499701,0.128118952942954,0.12799034999292,0.127886020285611,0.127827657397053,0.127827657397053, +0.200136415378362,0.200136415378362,0.200158975899494,0.20007624597183,0.19991623570341,0.199715695461549,0.199514804226316,0.199352544956302,0.19926159383708,0.19926159383708, +0.302847720483629,0.302847720483629,0.302836857728617,0.302682800152083,0.302425396365314,0.302116035189242,0.301809989136895,0.3015621461266,0.301421819583121,0.301421819583121, +0.438292860071075,0.438292860071075,0.43822571374553,0.437965979979724,0.437572589507523,0.43711568366312,0.436666435659041,0.436297564635446,0.436082989533423,0.436082989533423, +0.604646234307953,0.604646234307953,0.604504136590029,0.604093832578045,0.6035197343174,0.602875185455449,0.602241232421747,0.60170333446964,0.601369376272196,0.601369376272196, +0.795470505276047,0.795470505276047,0.795272214382722,0.794633949879239,0.79382706464494,0.792961621063641,0.792105114715075,0.791330818042113,0.790772458249631,0.790772458249631, + +00:27:12, +0.0626651525150463,0.0626651525150463,0.0627094348741132,0.062706727578883,0.0626685268870944,0.0626098429274397,0.0625469519090485,0.0624950172613085,0.0624658140524161,0.0624658140524161, +0.0626651525150463,0.0626651525150463,0.0627094348741132,0.062706727578883,0.0626685268870944,0.0626098429274397,0.0625469519090485,0.0624950172613085,0.0624658140524161,0.0624658140524161, +0.0838415181814519,0.0838415181814519,0.0838849347414177,0.0838714601510951,0.0838153104071925,0.083735096600205,0.0836510846271231,0.0835823160587383,0.0835437649827191,0.0835437649827191, +0.128465050354388,0.128465050354388,0.128503282828222,0.12846505276029,0.128370042805011,0.128244098710883,0.128115492485491,0.128011159863728,0.127952795328814,0.127952795328814, +0.200278561468819,0.200278561468819,0.20030110608491,0.200218381607664,0.200058391563065,0.199857879000662,0.19965701621566,0.199494780332637,0.199403842546946,0.199403842546946, +0.302997991236716,0.302997991236716,0.302987105924439,0.3028330736893,0.302575729062483,0.302266444481868,0.301960476443359,0.301712697754408,0.301572408117744,0.301572408117744, +0.438434388843018,0.438434388843018,0.438367230808328,0.4381075617404,0.437714288667267,0.437257526456744,0.436808422848886,0.436439671860204,0.436225167085392,0.436225167085392, +0.604757758522495,0.604757758522495,0.604615680156889,0.604205500726528,0.603631592937045,0.602987264816357,0.602353531815482,0.60181582130586,0.601481979125427,0.601481979125427, +0.795532264832478,0.795532264832478,0.795334032472487,0.794695973055462,0.793889355183965,0.793024202939369,0.792167986480596,0.791393950923193,0.790835776886944,0.790835776886944, + +00:27:13, +0.0627626762611285,0.0627626762611285,0.0628069833171654,0.0628042794730727,0.0627660653109424,0.0627073571852511,0.062644438722873,0.0625924807393657,0.0625632642280393,0.0625632642280393, +0.0627626762611285,0.0627626762611285,0.0628069833171654,0.0628042794730727,0.0627660653109424,0.0627073571852511,0.062644438722873,0.0625924807393657,0.0625632642280393,0.0625632642280393, +0.0839494995529167,0.0839494995529167,0.0839929314537351,0.0839794579741547,0.0839232977131063,0.0838430658563117,0.0837590335222746,0.0836902476734668,0.0836516867625911,0.0836516867625911, +0.128590199314888,0.128590199314888,0.128628431488279,0.12859020118673,0.128495190069631,0.128369243508214,0.128240634079675,0.128136298602443,0.128077932454186,0.128077932454186, +0.200420666567753,0.200420666567753,0.200443195302907,0.200360476311039,0.200200506537023,0.200000021709269,0.199799187429674,0.199636974978005,0.199546050550349,0.199546050550349, +0.303148184318372,0.303148184318372,0.303137276496079,0.302983269627109,0.302725984173461,0.302416776197664,0.302110886180509,0.301863171817479,0.301722919089095,0.301722919089095, +0.438575819925835,0.438575819925835,0.438508650230725,0.43824904584597,0.437855890117973,0.437399271469859,0.436950312184536,0.436581681167315,0.43636724668081,0.43636724668081, +0.604869192224217,0.604869192224217,0.604727133226654,0.604317078291575,0.60374336082636,0.603099253273642,0.602465740131399,0.601928216913458,0.601594490654645,0.601594490654645, +0.79559396981067,0.79559396981067,0.795395795939686,0.794757941428805,0.793951590680472,0.793086729510301,0.792230802679573,0.791457028000603,0.790899039550981,0.790899039550981, + +00:27:14, +0.0628602480775186,0.0628602480775186,0.0629045797973662,0.0629018794134062,0.0628636518231666,0.0628049195938244,0.0627419737542306,0.06268999249031,0.062660762707757,0.062660762707757, +0.0628602480775186,0.0628602480775186,0.0629045797973662,0.0629018794134062,0.0628636518231666,0.0628049195938244,0.0627419737542306,0.06268999249031,0.062660762707757,0.062660762707757, +0.0840575116701074,0.0840575116701074,0.0841009588883966,0.0840874865360318,0.0840313158061576,0.0839510659672558,0.0838670133436217,0.0837982102732146,0.083759639560564,0.083759639560564, +0.128715347119809,0.128715347119809,0.128753578989539,0.128715348482266,0.128620336257183,0.128494387298426,0.128365774738799,0.128261436464957,0.128203068736298,0.128203068736298, +0.200562730690221,0.200562730690221,0.200585243568533,0.200502530096928,0.200342580640121,0.200142123602025,0.199941317882819,0.199779128906711,0.199688217861506,0.199688217861506, +0.303298299805573,0.303298299805573,0.303287369520448,0.303133388042334,0.302876161774955,0.302567030413184,0.302261218424738,0.302013568392077,0.301873352573367,0.301873352573367, +0.438717153444696,0.438717153444696,0.438649972137792,0.438390432421466,0.437997393984655,0.437540918827455,0.437092103790951,0.436723592681719,0.436509228444605,0.436509228444605, +0.604980535545074,0.604980535545074,0.604838495931223,0.60442856540517,0.603855038117489,0.603211150959625,0.602577857501994,0.602040521425085,0.601706910992601,0.601706910992601, +0.795655620295668,0.795655620295668,0.79545750486942,0.794819855084638,0.794013771220185,0.793149200862536,0.792293563398477,0.791520049361157,0.790962246328803,0.790962246328803, + +00:27:15, +0.0629578678845434,0.0629578678845434,0.0630022242350674,0.0629995273202288,0.06296128634408,0.0629025300734244,0.0628395569233338,0.0627875524343112,0.0627583094117148,0.0627583094117148, +0.0629578678845434,0.0629578678845434,0.0630022242350674,0.0629995273202288,0.06296128634408,0.0629025300734244,0.0628395569233338,0.0627875524343112,0.0627583094117148,0.0627583094117148, +0.0841655544661006,0.0841655544661006,0.0842090169785096,0.0841955457698151,0.084139364619375,0.0840590968659788,0.0839750240240133,0.0839062037907536,0.0838676233093661,0.0838676233093661, +0.128840493732992,0.128840493732992,0.12887872529587,0.12884049461072,0.128745481331387,0.128619530045094,0.128490914426284,0.128386573414564,0.128328204138374,0.128328204138374, +0.200704753851332,0.200704753851332,0.200727250896883,0.200644542980352,0.200484613887242,0.200284184693634,0.20008340758961,0.199921242133111,0.199830344494684,0.199830344494684, +0.303448337775229,0.303448337775229,0.303437385074388,0.303283429011736,0.303026261943606,0.302717207204918,0.30241147325238,0.302163887554404,0.302023708646689,0.302023708646689, +0.438858389524578,0.438858389524578,0.438791196654407,0.438531721591733,0.43813880039214,0.437682468654333,0.437233797792902,0.436865406528163,0.436651112501518,0.436651112501518, +0.605091788616776,0.605091788616776,0.604949768402245,0.604539962199055,0.603966624942333,0.603322958006384,0.602689884059515,0.602152734973142,0.601819240271803,0.601819240271803, +0.795717216372341,0.795717216372341,0.795519159346619,0.794881714108156,0.794075896888649,0.793211617081995,0.7923562687236,0.791583015091485,0.791025397307293,0.791025397307293, + +00:27:16, +0.0630555356025887,0.0630555356025887,0.0630999165506797,0.0630972231139446,0.0630589687940541,0.0630001885443743,0.062937188150454,0.0628851604915975,0.0628559042601168,0.0628559042601168, +0.0630555356025887,0.0630555356025887,0.0630999165506797,0.0630972231139446,0.0630589687940541,0.0630001885443743,0.062937188150454,0.0628851604915975,0.0628559042601168,0.0628559042601168, +0.0842736278740559,0.0842736278740559,0.0843171056572645,0.0843036356086764,0.0842474440858698,0.0841671584855055,0.0840830654963811,0.0840142281589383,0.0839756379418085,0.0839756379418085, +0.128965639118375,0.128965639118375,0.129003870371233,0.12896563953601,0.128870625256055,0.128744671711889,0.128616053105647,0.128511709414656,0.128453338623732,0.128453338623732, +0.200846736066239,0.200846736066239,0.200869217303101,0.20078651497638,0.200626606293319,0.200426204998848,0.200225456564609,0.20006331467161,0.1999724304642,0.1999724304642, +0.303598298304189,0.303598298304189,0.303587323234682,0.303433392612012,0.303176284755993,0.302867306649296,0.302561650739704,0.302314129380601,0.30217398738513,0.30217398738513, +0.438999528290269,0.438999528290269,0.438932323905261,0.438672913481424,0.438280109465063,0.437823921075104,0.43737539431497,0.437007122831207,0.436792898976102,0.436792898976102, +0.605202951570786,0.605202951570786,0.605060950771127,0.604651268804722,0.604078121432542,0.603434674545748,0.602801819935966,0.602264857689785,0.601931478624509,0.601931478624509, +0.795778758125386,0.795778758125386,0.795580759456036,0.794943518584381,0.794137967771235,0.793273978254425,0.79241891874106,0.791645925278046,0.791088492573157,0.791088492573157, + +00:27:17, +0.063153251152099,0.063153251152099,0.0631976566646725,0.0631949667150163,0.0631566990935196,0.0630978949270559,0.0630348673559207,0.0629828165824553,0.0629535471732253,0.0629535471732253, +0.063153251152099,0.063153251152099,0.0631976566646725,0.0631949667150163,0.0631566990935196,0.0630978949270559,0.0630348673559207,0.0629828165824553,0.0629535471732253,0.0629535471732253, +0.0843817318272159,0.0843817318272159,0.0844252248579344,0.08441175598587,0.0843555541388365,0.0842752507589432,0.0841911376937397,0.0841222833107063,0.0840836833907854,0.0840836833907854, +0.129090783239988,0.129090783239988,0.129129014179682,0.129090783222145,0.128995767995096,0.128869812262572,0.1287411907405,0.128636844428717,0.128578472155787,0.128578472155787, +0.200988677350145,0.200988677350145,0.201011142802378,0.200928446100128,0.200768557873333,0.200568184532466,0.200367464822426,0.200205346536663,0.20011447578442,0.20011447578442, +0.303748181469234,0.303748181469234,0.303737184078047,0.303583278919795,0.303326230288632,0.303017328822683,0.302711750962919,0.302464293946748,0.302324188864698,0.302324188864698, +0.439140569866365,0.439140569866365,0.439073354014853,0.438814008215003,0.438421321327869,0.437965276214189,0.437516893481547,0.437148741715221,0.436934587992721,0.436934587992721, +0.605314024538323,0.605314024538323,0.605172043169027,0.604762485353419,0.604189527719524,0.603546300709301,0.602913665263103,0.602376889706924,0.602043626182732,0.602043626182732, +0.795840245639326,0.795840245639326,0.795642305282252,0.795005268598159,0.794199983953141,0.793336284465397,0.792481513536799,0.79170878000712,0.791151532212923,0.791151532212923, + +00:27:18, +0.0632510144535778,0.0632510144535778,0.0632954444975745,0.0632927580439662,0.0632544771629657,0.0631956491419099,0.0631325944601224,0.0630805206272298,0.0630512380713609,0.0630512380713609, +0.0632510144535778,0.0632510144535778,0.0632954444975745,0.0632927580439662,0.0632544771629657,0.0631956491419099,0.0631325944601224,0.0630805206272298,0.0630512380713609,0.0630512380713609, +0.0844898662589057,0.0844898662589057,0.0845333745138752,0.0845199068347332,0.084463694711552,0.0843833736194823,0.0842992405491864,0.0842303691790778,0.0841917595892736,0.0841917595892736, +0.129215926061955,0.129215926061955,0.129254156685364,0.129215925633229,0.129120909512507,0.128994951661001,0.128866327294546,0.128761978420325,0.128703604698046,0.128703604698046, +0.201130577718299,0.201130577718299,0.20115302740995,0.201070336366759,0.20091046864231,0.200710123309338,0.200509432377721,0.200347337742771,0.20025648046976,0.20025648046976, +0.303897987347085,0.303897987347085,0.303886967681135,0.303733088011655,0.303476098617973,0.303167273801381,0.302861773998171,0.30261438132886,0.302474313161339,0.302474313161339, +0.439281514377275,0.439281514377275,0.439214287107492,0.438955005916742,0.438562436104816,0.438106534195821,0.437658295416836,0.437290263304388,0.43707617967555,0.43707617967555, +0.605425007650359,0.605425007650359,0.605283045726862,0.604873611976151,0.60430084393444,0.603657836628383,0.603025420172437,0.602488831156223,0.602155683078241,0.602155683078241, +0.795901678998513,0.795901678998513,0.795703796909677,0.795066964234164,0.794261945519388,0.793398535800308,0.792544053196581,0.791771579364811,0.791214516312945,0.791214516312945, + +00:27:19, +0.0633488254275879,0.0633488254275879,0.0633932799699735,0.0633905970213751,0.063352302922941,0.0632934511094361,0.0632303693835063,0.0631782725463249,0.0631489768749034,0.0631489768749034, +0.0633488254275879,0.0633488254275879,0.0633932799699735,0.0633905970213751,0.063352302922941,0.0632934511094361,0.0632303693835063,0.0631782725463249,0.0631489768749034,0.0631489768749034, +0.0845980311025337,0.0845980311025337,0.0846415545585256,0.0846280880886859,0.084571865737376,0.0844915270003956,0.0844073739959013,0.0843384856971558,0.0842998664703327,0.0842998664703327, +0.129341067548493,0.129341067548493,0.129379297852522,0.12934106673346,0.129246049772384,0.129120089871127,0.128991462731586,0.128887111353154,0.128828736214111,0.128828736214111, +0.201272437185998,0.201272437185998,0.201294871141104,0.201212185791483,0.201052338615327,0.200852021344359,0.200651359245202,0.200489288304489,0.200398444534685,0.200398444534685, +0.304047716014397,0.304047716014397,0.304036674120535,0.303882819964095,0.303625889820407,0.303317141661629,0.303011719921542,0.302764391602893,0.302624360350936,0.302624360350936, +0.439422361947216,0.439422361947216,0.439355123307299,0.439095906710727,0.43870345391997,0.438247695144045,0.437799600244854,0.437431687722704,0.437217674148576,0.437217674148576, +0.605535901037624,0.605535901037624,0.605393958575302,0.604984648803675,0.604412070208209,0.603769282434088,0.603137084795236,0.602600682169104,0.602267649442558,0.602267649442558, +0.795963058287124,0.795963058287124,0.795765234422546,0.795128605576899,0.794323852554827,0.793460732344379,0.792606537805999,0.791834323437047,0.791277444959397,0.791277444959397, + +00:27:20, +0.0634466839947511,0.0634466839947511,0.0634911630025164,0.0634884835678835,0.0634501762940531,0.063391300750193,0.0633281920465785,0.0632760722602032,0.0632467635042907,0.0632467635042907, +0.0634466839947511,0.0634466839947511,0.0634911630025164,0.0634884835678835,0.0634501762940531,0.063391300750193,0.0633281920465785,0.0632760722602032,0.0632467635042907,0.0632467635042907, +0.0847062262915904,0.0847062262915904,0.0847497649254069,0.0847362996812305,0.0846800671497508,0.0845997108350387,0.0845155379671472,0.0844466327981262,0.084408003967105,0.084408003967105, +0.129466207663912,0.129466207663912,0.129504437645488,0.129466206487128,0.129371188738913,0.129245226856993,0.129116597015512,0.12901224319097,0.128953866667678,0.128953866667678, +0.201414255768585,0.201414255768585,0.201436674011169,0.201353994389558,0.201194167807506,0.200993878652473,0.200793245439625,0.200631198236415,0.200540367993706,0.200540367993706, +0.30419736754776,0.30419736754776,0.304186303472772,0.304032474853558,0.303775603972256,0.303466932479605,0.303161588809055,0.302914324844741,0.302774330509313,0.302774330509313, +0.439563112700216,0.439563112700216,0.439495862738205,0.439236710720853,0.43884437489721,0.438388759182716,0.437940808089427,0.437573015093973,0.437359071535602,0.437359071535602, +0.605646704830602,0.605646704830602,0.605504781844775,0.605095595966509,0.604523206671504,0.603880638257266,0.603248659262522,0.602712442876741,0.602379525406962,0.602379525406962, +0.796024383589165,0.796024383589165,0.795826617904922,0.795190192710691,0.794385705144133,0.79352287418266,0.792668967450468,0.791897012309583,0.791340318238282,0.791340318238282, + +00:27:21, +0.0635445900757489,0.0635445900757489,0.0635890935159097,0.0635864176041909,0.0635480971969688,0.0634891979847986,0.0634260623699041,0.0633739196893861,0.0633445978800201,0.0633445978800201, +0.0635445900757489,0.0635445900757489,0.0635890935159097,0.0635864176041909,0.0635480971969688,0.0634891979847986,0.0634260623699041,0.0633739196893861,0.0633445978800201,0.0633445978800201, +0.0848144517596493,0.0848144517596493,0.0848580055481231,0.0848445415459523,0.0847882988822014,0.0847079250568498,0.0846237323962693,0.084554810415257,0.0845161720128153,0.0845161720128153, +0.129591346372616,0.129591346372616,0.129629576028689,0.129591344858614,0.129496326376373,0.129370362582736,0.129241730110309,0.129137373897634,0.129078996022538,0.129078996022538, +0.20155603348145,0.20155603348145,0.201578436035525,0.201495762176288,0.201335956234014,0.20113569524867,0.200935090975792,0.200773067553199,0.200682250861387,0.200682250861387, +0.3043469420237,0.3043469420237,0.304335855814306,0.304182052756421,0.303925241149782,0.303616646331422,0.303311380736666,0.303064181130234,0.302924223712229,0.302924223712229, +0.439703766760114,0.439703766760114,0.439636505523952,0.439377418070828,0.438985199160227,0.438529726435501,0.438081919074195,0.437714245541818,0.437500371960239,0.437500371960239, +0.605757419159537,0.605757419159537,0.605615515665466,0.605206453594924,0.604634253454755,0.603991904228526,0.603360143705076,0.602824113410067,0.60249131110249,0.60249131110249, +0.796085654988473,0.796085654988473,0.7958879474407,0.795251725719696,0.79444750337181,0.793584961400025,0.792731342215232,0.791959646067997,0.791403136235426,0.791403136235426, + +00:27:22, +0.0636425435913217,0.0636425435913217,0.0636870714309192,0.0636843990510566,0.0636460655524145,0.0635871427339299,0.0635239802741074,0.0634718147544544,0.0634424799226474,0.0634424799226474, +0.0636425435913217,0.0636425435913217,0.0636870714309192,0.0636843990510566,0.0636460655524145,0.0635871427339299,0.0635239802741074,0.0634718147544544,0.0634424799226474,0.0634424799226474, +0.0849227074403665,0.0849227074403665,0.0849662763603605,0.0849528136165187,0.0848965608683352,0.0848161695993494,0.0847319572166955,0.0846630184818993,0.0846243705407712,0.0846243705407712, +0.1297164836391,0.1297164836391,0.129754712966644,0.129716481812394,0.129621462649137,0.129495497012586,0.129366861980056,0.1292625034371,0.129204124242572,0.129204124242572, +0.201697770340027,0.201697770340027,0.201720157229593,0.201637489167021,0.201477703910068,0.201277471147989,0.201076895868554,0.200914896269537,0.200824093152335,0.200824093152335, +0.304496439518679,0.304496439518679,0.304485331221533,0.304331553748997,0.304074801429182,0.303766283293129,0.303461095780273,0.303213960535141,0.303074040035385,0.303074040035385, +0.439844324250562,0.439844324250562,0.439777051788094,0.43951802888417,0.439125926832523,0.438670597025881,0.438222933322611,0.43785537918967,0.437641575545914,0.437641575545914, +0.605868044154428,0.605868044154428,0.605726160167316,0.605317221818951,0.604745210688151,0.604103080478231,0.603471538253433,0.602935693899772,0.602603006659932,0.602603006659932, +0.796146872568711,0.796146872568711,0.7959492231136,0.795313204687902,0.79450924732219,0.793646994081177,0.79279366218536,0.792022224797696,0.791465899036479,0.791465899036479, + +00:27:23, +0.06374054446227,0.06374054446227,0.0637850966683704,0.0637824278292993,0.0637440812811758,0.0636851349183233,0.063621945679872,0.0635697573760476,0.0635404095527878,0.0635404095527878, +0.06374054446227,0.06374054446227,0.0637850966683704,0.0637824278292993,0.0637440812811758,0.0636851349183233,0.063621945679872,0.0635697573760476,0.0635404095527878,0.0635404095527878, +0.0850309932674805,0.0850309932674805,0.0850745772958882,0.08506111582668,0.0850048530418421,0.0849244443961408,0.0848402123619362,0.0847712569314864,0.0847325994843626,0.0847325994843626, +0.129841619427952,0.129841619427952,0.129879848423964,0.129841617313034,0.129746597521667,0.129620630110866,0.129491992588924,0.129387631773413,0.129329251291756,0.129329251291756, +0.201839466359799,0.201839466359799,0.201861837608843,0.201779175377152,0.201619410850928,0.201419206365512,0.20121866013281,0.201056684400171,0.200965894881209,0.200965894881209, +0.304645860109096,0.304645860109096,0.304634729770784,0.304480977907533,0.30422428488659,0.303915843440714,0.303610734015707,0.30336366313517,0.303223779554416,0.303223779554416, +0.439984785295023,0.439984785295023,0.439917501653997,0.43965854328421,0.439266558037413,0.438811371077148,0.43836385095794,0.437996416160776,0.437782682415869,0.437782682415869, +0.605978579945032,0.605978579945032,0.605836715480027,0.605427900768377,0.604856078501637,0.604214167136505,0.603582843037888,0.603047184476303,0.60271461220984,0.60271461220984, +0.796208036413374,0.796208036413374,0.796010445007174,0.795374629699121,0.794570937079431,0.793708972310646,0.792855927445748,0.792084748583909,0.791528606726919,0.791528606726919, + +00:27:24, +0.0638385926094535,0.0638385926094535,0.0638831691491484,0.0638805038597971,0.063842144304098,0.0637831744587747,0.0637199585079405,0.0636677474748647,0.0636383866911155,0.0636383866911155, +0.0638385926094535,0.0638385926094535,0.0638831691491484,0.0638805038597971,0.063842144304098,0.0637831744587747,0.0637199585079405,0.0636677474748647,0.0636383866911155,0.0636383866911155, +0.0851393091748122,0.0851393091748122,0.0851829082885574,0.0851694481102684,0.0851131753364942,0.0850327493809095,0.0849484977655841,0.084879525697534,0.0848408587770619,0.0848408587770619, +0.129966753703851,0.129966753703851,0.130004982365352,0.129966751325194,0.129871730958521,0.129745761841989,0.129617121901177,0.129512758870713,0.129454377134161,0.129454377134161, +0.201981121556291,0.201981121556291,0.20200347718879,0.201920820822124,0.201761077071901,0.201560900916371,0.201360383783503,0.201198431959894,0.201107656062713,0.201107656062713, +0.304795203871283,0.304795203871283,0.304784051538327,0.304630325308216,0.304373691598074,0.304065326850099,0.30376029551874,0.303513289005964,0.303373442344898,0.303373442344898, +0.44012515001677,0.44012515001677,0.44005785524484,0.439798961394091,0.439407092898024,0.438952048712408,0.438504672103261,0.438137356578194,0.437923692693156,0.437923692693156, +0.606089026660866,0.606089026660866,0.605947181733058,0.60553849057275,0.604966857024918,0.604325164333228,0.603694058188494,0.603158585269864,0.60282612788252,0.60282612788252, +0.796269146605785,0.796269146605785,0.796071613204803,0.795436000836996,0.794632572727523,0.79377089617279,0.792918138081119,0.792147217511697,0.791591259392051,0.791591259392051, + +00:27:25, +0.063936687953792,0.063936687953792,0.0639812887941982,0.0639786270634882,0.0639402545420861,0.0638812612761397,0.0638180186791154,0.063765784971664,0.0637364112583641,0.0637364112583641, +0.063936687953792,0.063936687953792,0.0639812887941982,0.0639786270634882,0.0639402545420861,0.0638812612761397,0.0638180186791154,0.063765784971664,0.0637364112583641,0.0637364112583641, +0.0852476550962651,0.0852476550962651,0.0852912692723018,0.0852778104011989,0.0852215276861463,0.0851410844874233,0.0850568133613144,0.0849878247136404,0.0849491483524238,0.0849491483524238, +0.130091886431568,0.130091886431568,0.130130114755603,0.130091883813624,0.129996862924346,0.129870892170461,0.129742249881172,0.129637884693232,0.129579501733946,0.129579501733946, +0.202122735945077,0.202122735945077,0.202145075984994,0.20206242551742,0.20190270258834,0.201702554815741,0.201502066835624,0.201340138963543,0.201249376711599,0.201249376711599, +0.304944470881509,0.304944470881509,0.304933296600363,0.304779596027165,0.304523021639641,0.304214733597145,0.303909780365078,0.303662838223106,0.303523028482344,0.303523028482344, +0.44026541853889,0.44026541853889,0.440198112683612,0.439939283336769,0.439547531537295,0.439092630054579,0.438645396881466,0.4382782005648,0.438064606500643,0.438064606500643, +0.606199384431205,0.606199384431205,0.606057559055627,0.605648991361377,0.605077546387457,0.604436072198039,0.603805183835063,0.60326989641042,0.60293755380804,0.60293755380804, +0.7963302032291,0.7963302032291,0.796132727789698,0.795497318185002,0.794694154350283,0.793832765751796,0.792980294176025,0.792209631665944,0.791653857117004,0.791653857117004, + +00:27:26, +0.0640348304162649,0.0640348304162649,0.0640794555245245,0.0640767973613706,0.064038411916105,0.0639793952913333,0.0639161261142584,0.0638638697872631,0.0638344831753264,0.0638344831753264, +0.0640348304162649,0.0640348304162649,0.0640794555245245,0.0640767973613706,0.064038411916105,0.0639793952913333,0.0639161261142584,0.0638638697872631,0.0638344831753264,0.0638344831753264, +0.0853560309658248,0.0853560309658248,0.0853996601811374,0.0853862026334685,0.0853299100247351,0.0852494496495324,0.0851651590828844,0.0850961539134859,0.0850574681440855,0.0850574681440855, +0.130217017575968,0.130217017575968,0.130255245559601,0.130217014743166,0.130121993383882,0.129996021060882,0.129867376493357,0.129763009205294,0.129704625055367,0.129704625055367, +0.202264309541772,0.202264309541772,0.202286634013057,0.202203989478573,0.202044287415643,0.201844168078844,0.201643709304211,0.201481805426001,0.201391056842664,0.201391056842664, +0.305093661215978,0.305093661215978,0.305082465033032,0.304928790140436,0.304672275087231,0.304364063757649,0.304059188630366,0.303812310862115,0.303672538042205,0.303672538042205, +0.440405590984284,0.440405590984284,0.440338274093118,0.440079509235013,0.439687874077981,0.439233115226394,0.438786025415262,0.438418948243281,0.438205423961013,0.438205423961013, +0.606309653385085,0.606309653385085,0.606167847576713,0.605759403263322,0.605188146718477,0.604546890860339,0.603916220107165,0.603381118027694,0.603048890116226,0.603048890116226, +0.796391206366302,0.796391206366302,0.796193788844901,0.795558581826443,0.794755682031357,0.793894581131678,0.793042395814846,0.792271991131364,0.791716399986736,0.791716399986736, + +00:27:27, +0.0641330199179118,0.0641330199179118,0.0641776692611923,0.0641750146745022,0.0641366163471791,0.0640775764253305,0.0640142807342911,0.0639620018425394,0.0639326023628548,0.0639326023628548, +0.0641330199179118,0.0641330199179118,0.0641776692611923,0.0641750146745022,0.0641366163471791,0.0640775764253305,0.0640142807342911,0.0639620018425394,0.0639326023628548,0.0639326023628548, +0.0854644367175593,0.0854644367175593,0.0855080809491625,0.0854946247411564,0.0854383222862797,0.0853578448011691,0.0852735348641339,0.0852045132308333,0.0851658180857663,0.0851658180857663, +0.130342147102003,0.130342147102003,0.130380374742323,0.130342144078753,0.13024712230196,0.13012114847794,0.129992501702271,0.129888132371314,0.129829747062768,0.129829747062768, +0.202405842362039,0.202405842362039,0.202428151288631,0.202345512721158,0.202185831569252,0.201985740720948,0.201785311204346,0.201623431362201,0.201532696470755,0.201532696470755, +0.305242774950828,0.305242774950828,0.305231556912407,0.30507790772402,0.304821452016722,0.304513317407342,0.304208520390185,0.30396170699845,0.303821971099869,0.303821971099869, +0.440545667475665,0.440545667475665,0.440478339595973,0.440219639211405,0.439828120642649,0.439373504350398,0.43892655782717,0.43855959973614,0.438346145196764,0.438346145196764, +0.606419833651302,0.606419833651302,0.606278047425055,0.605869726407413,0.605298658146962,0.604657620449286,0.604027167134132,0.60349225025117,0.603160136936664,0.603160136936664, +0.79645215610021,0.79645215610021,0.796254796453286,0.795619791844452,0.794817155854225,0.793956342396283,0.793104443081791,0.792334295992499,0.791778888086034,0.791778888086034, + +00:27:28, +0.0642312563798321,0.0642312563798321,0.0642759299253263,0.0642732789240009,0.0642348677563933,0.0641758045991661,0.0641124824601946,0.0640601810584296,0.0640307687418613,0.0640307687418613, +0.0642312563798321,0.0642312563798321,0.0642759299253263,0.0642732789240009,0.0642348677563933,0.0641758045991661,0.0641124824601946,0.0640601810584296,0.0640307687418613,0.0640307687418613, +0.0855728722856189,0.0855728722856189,0.0856165315105573,0.085603076658424,0.0855467644048812,0.0854662698763479,0.0853819406389846,0.0853129025995276,0.0852741981112678,0.0852741981112678, +0.130467274974718,0.130467274974718,0.130505502268838,0.130467271785408,0.1303722496435,0.130246274386416,0.130117625472547,0.1300132541558,0.129954867720588,0.129954867720588, +0.202547334421583,0.202547334421583,0.202569627827406,0.202486995260794,0.202327335064653,0.202127272757364,0.201926872551159,0.201765016787118,0.201674295610761,0.201674295610761, +0.305391812162135,0.305391812162135,0.305380572314495,0.305226948853844,0.304970552503927,0.304662494621895,0.304357775720055,0.304111026707504,0.303971327730662,0.303971327730662, +0.440685648135557,0.440685648135557,0.440618309314609,0.440359673388341,0.439968271353678,0.439513797548954,0.439066994239525,0.438700155165694,0.438486770330208,0.438486770330208, +0.606529925358412,0.606529925358412,0.606388158729154,0.605979960922237,0.605409080801656,0.6047682610938,0.604138025045055,0.603603293210091,0.603271294398698,0.603271294398698, +0.796513052513471,0.796513052513471,0.796315750697559,0.795680948321995,0.794878575902192,0.794018049629285,0.793166436060897,0.792396546333719,0.791841321499511,0.791841321499511, + +00:27:29, +0.0643295397231856,0.0643295397231856,0.0643742374381117,0.064371590031045,0.0643331660648922,0.0642740797339349,0.0642107312130101,0.0641584073559306,0.0641289822333177,0.0641289822333177, +0.0643295397231856,0.0643295397231856,0.0643742374381117,0.064371590031045,0.0643331660648922,0.0642740797339349,0.0642107312130101,0.0641584073559306,0.0641289822333177,0.0641289822333177, +0.0856813376042357,0.0856813376042357,0.0857250117995843,0.0857115583195147,0.085655236314723,0.0855747248091655,0.0854903763414405,0.0854213219534957,0.0853826081544737,0.0853826081544737, +0.13059240115925,0.13059240115925,0.130630628104304,0.130592397828246,0.130497375373516,0.130371398751182,0.130242747768905,0.130138374523351,0.130079986993356,0.130079986993356, +0.202688785736154,0.202688785736154,0.202711063645122,0.202628437113145,0.20246879791738,0.202268764203451,0.202068393359822,0.201906561715775,0.201815854277622,0.201815854277622, +0.305540772925908,0.305540772925908,0.305529511315241,0.30537591360577,0.305119576624596,0.304811595476914,0.30450695469543,0.30426027006461,0.30412060800985,0.30412060800985, +0.4408255330863,0.4408255330863,0.44075818337127,0.440499611888031,0.440108326333265,0.439653994944235,0.439207334774477,0.438840614654076,0.438627299483472,0.438627299483472, +0.606639928634734,0.606639928634734,0.606498181617271,0.606090106936143,0.605519414811065,0.604878812922564,0.604248793968787,0.603714247033463,0.603382362631438,0.603382362631438, +0.796573895688567,0.796573895688567,0.796376651660257,0.79574205134187,0.794939942258399,0.794079702914189,0.793228374836032,0.792458742239223,0.791903700311609,0.791903700311609, + +00:27:30, +0.0644278698691922,0.0644278698691922,0.064472591720794,0.0644699479168729,0.0644315111938807,0.0643724017507918,0.0643090269138387,0.0642566806560989,0.0642272427582554,0.0642272427582554, +0.0644278698691922,0.0644278698691922,0.064472591720794,0.0644699479168729,0.0644315111938807,0.0643724017507918,0.0643090269138387,0.0642566806560989,0.0642272427582554,0.0642272427582554, +0.0857898326077243,0.0857898326077243,0.0858335217505881,0.0858200696587541,0.0857637379500702,0.0856832095338005,0.0855988419055875,0.0855297712267468,0.0854910481493498,0.0854910481493498, +0.130717525620824,0.130717525620824,0.130755752213968,0.130717522172472,0.13062249945711,0.1304965215372,0.130367868556161,0.130263493438656,0.130205104845692,0.130205104845692, +0.202830196321545,0.202830196321545,0.202852458757557,0.202769838293919,0.202610220143007,0.20241021507461,0.202209873645555,0.202048066163239,0.201957372486319,0.201957372486319, +0.305689657318093,0.305689657318093,0.305678373990524,0.305524802055596,0.305268524454412,0.304960620047939,0.304656057391703,0.304409437145038,0.304269812012632,0.304269812012632, +0.440965322450049,0.440965322450049,0.440897961888013,0.440639454832499,0.440248285703418,0.439794096658231,0.439347579553992,0.438980978323235,0.438767732778501,0.438767732778501, +0.606749843608347,0.606749843608347,0.606608116217431,0.606200164577242,0.605629660303455,0.604989276064019,0.604359474033942,0.603825111850051,0.603493341763751,0.603493341763751, +0.79663468570781,0.79663468570781,0.796437499423749,0.795803100986706,0.795001255005816,0.794141302334332,0.793290259490895,0.79252088379304,0.7919660246066,0.7919660246066, + +00:27:31, +0.0645262467391323,0.0645262467391323,0.0645709926946789,0.0645683525027833,0.0645299030646241,0.0644707705709517,0.0644073694838414,0.0643550008800508,0.0643255502377658,0.0643255502377658, +0.0645262467391323,0.0645262467391323,0.0645709926946789,0.0645683525027833,0.0645299030646241,0.0644707705709517,0.0644073694838414,0.0643550008800508,0.0643255502377658,0.0643255502377658, +0.0858983572304811,0.0858983572304811,0.085942061297995,0.0859286106105496,0.0858722692452702,0.0857917239845135,0.0857073372655937,0.085638250353372,0.0855995180299437,0.0855995180299437, +0.130842648324757,0.130842648324757,0.13088087456317,0.130842644783379,0.130747621859475,0.130621642709524,0.130492987799219,0.130388610866498,0.130330221242308,0.130330221242308, +0.202971566193594,0.202971566193594,0.202993813180537,0.202911198818866,0.202751601757154,0.202551625386286,0.202351313423621,0.202189530144624,0.202098850251881,0.202098850251881, +0.305838465414568,0.305838465414568,0.305827160416159,0.305673614279054,0.305417396068997,0.30510956841045,0.304805083884204,0.304558528023995,0.30441893981415,0.30441893981415, +0.441105016348771,0.441105016348771,0.441037644986711,0.440779202343584,0.440388149585963,0.439934102812748,0.43948772869985,0.439121246294934,0.438908070337053,0.438908070337053, +0.606859670407094,0.606859670407094,0.60671796265742,0.606310133973408,0.605739817406858,0.605099650646372,0.604470065368898,0.603935887788384,0.603604231924267,0.603604231924267, +0.796695422653349,0.796695422653349,0.79649829407024,0.795864097338966,0.795062514227244,0.79420284797288,0.793352090109013,0.79258297107903,0.792028294468586,0.792028294468586, + +00:27:32, +0.0646246702543467,0.0646246702543467,0.0646694402811327,0.0646668037101355,0.064628341598448,0.0645691861156901,0.0645057588442397,0.0644533679489631,0.0644239045930004,0.0644239045930004, +0.0646246702543467,0.0646246702543467,0.0646694402811327,0.0646668037101355,0.064628341598448,0.0645691861156901,0.0645057588442397,0.0644533679489631,0.0644239045930004,0.0644239045930004, +0.0860069114069844,0.0860069114069844,0.0860506303763136,0.0860371811093905,0.0859808301347519,0.0859002680956469,0.0858158623557089,0.0857467592675443,0.0857080177303854,0.0857080177303854, +0.130967769236455,0.130967769236455,0.131005995117338,0.130967765626353,0.130872742545894,0.130746762233295,0.130618105463072,0.130513726771748,0.130455336148007,0.130455336148007, +0.203112895368181,0.203112895368181,0.203135126929928,0.203052518703782,0.202892942775484,0.202692995153969,0.202492712709328,0.202330953675086,0.202240287589381,0.202240287589381, +0.305987197291149,0.305987197291149,0.305975870667894,0.305822350351814,0.305566191543906,0.305258440639861,0.304954034248197,0.304707542776623,0.304567991489479,0.304567991489479, +0.441244614904249,0.441244614904249,0.441177232789051,0.44091885454294,0.440527918102538,0.440074013529406,0.439627782333649,0.439261418690755,0.439048312280705,0.439048312280705, +0.606969409158582,0.606969409158582,0.606827721064789,0.606420015252278,0.605849886249066,0.605209936797592,0.604580568101793,0.604046574976754,0.603715033241382,0.603715033241382, +0.796756106607162,0.796756106607162,0.796559035681765,0.795925040480943,0.795123720005319,0.794264339912833,0.793413866773746,0.792645004180882,0.792090509981498,0.792090509981498, + +00:27:33, +0.0647231403362367,0.0647231403362367,0.0647679344015824,0.0647653014603494,0.0647268267167386,0.0646676483063426,0.064604194916315,0.0645517817840724,0.0645223057451706,0.0645223057451706, +0.0647231403362367,0.0647231403362367,0.0647679344015824,0.0647653014603494,0.0647268267167386,0.0646676483063426,0.064604194916315,0.0645517817840724,0.0645223057451706,0.0645223057451706, +0.0861154950717945,0.0861154950717945,0.0861592289201339,0.086145781089848,0.0860894205530265,0.0860088418016252,0.085924417110265,0.0858552979035186,0.0858165471848863,0.0858165471848863, +0.131092888321413,0.131092888321413,0.131131113841989,0.131092884666869,0.13099786148174,0.130871880073748,0.130743221512807,0.130638841119368,0.130580449527682,0.130580449527682, +0.203254183861229,0.203254183861229,0.203276400021641,0.203193797964502,0.203034243213703,0.202834324393193,0.202634071518029,0.20247233676983,0.202381684513938,0.202381684513938, +0.306135853023587,0.306135853023587,0.306124504821414,0.305971010349478,0.305714910954631,0.305407236811523,0.305102908558886,0.304856481478006,0.304716967113634,0.304716967113634, +0.44138411823808,0.44138411823808,0.441316725416537,0.441058411552035,0.440667591374598,0.440213828929642,0.439767740576802,0.439401495632093,0.439188458730849,0.439188458730849, +0.60707905999018,0.60707905999018,0.606937391566852,0.606529808541252,0.605959866957635,0.605320134645409,0.604690982360531,0.604157173543215,0.60382574584325,0.60382574584325, +0.796816737651066,0.796816737651066,0.796619724340194,0.795985930494766,0.795184872422507,0.794325778237021,0.793475589568284,0.792706983182115,0.792152671229097,0.792152671229097, + +00:27:34, +0.0648216569062644,0.0648216569062644,0.0648664749775155,0.0648638456749055,0.0648253583409424,0.0647661570643055,0.0647026776214093,0.0646502423066758,0.0646207536155482,0.0646207536155482, +0.0648216569062644,0.0648216569062644,0.0648664749775155,0.0648638456749055,0.0648253583409424,0.0647661570643055,0.0647026776214093,0.0646502423066758,0.0646207536155482,0.0646207536155482, +0.0862241081595535,0.0862241081595535,0.0862678568641281,0.0862544104865749,0.0861980404346864,0.0861174450369544,0.0860330014636755,0.0859638661956319,0.0859251063277401,0.0859251063277401, +0.131218005545218,0.131218005545218,0.131256230702732,0.131218001870488,0.131122978632475,0.130996996196205,0.130868335913597,0.13076395387441,0.130705561346315,0.130705561346315, +0.203395431688703,0.203395431688703,0.203417632471628,0.203335036616908,0.203175503087559,0.202975613119535,0.202775389865119,0.2026136794441,0.202523041040713,0.202523041040713, +0.306284432687566,0.306284432687566,0.306273062952339,0.306119594347585,0.3058635543766,0.305555957000721,0.30525170689141,0.305005344203161,0.304865866761566,0.304865866761566, +0.441523526471677,0.441523526471677,0.441456122990486,0.441197873492155,0.440807169523416,0.440353549134707,0.439907603550538,0.439541477240164,0.439328509808694,0.439328509808694, +0.607188623029022,0.607188623029022,0.607046974290687,0.606639513967497,0.606069759659887,0.60543024431732,0.604801308272778,0.604267683615586,0.603936369857792,0.603936369857792, +0.796877315866707,0.796877315866707,0.796680360127234,0.796046767462398,0.79524597156111,0.794387163028109,0.793537258575651,0.792768908166083,0.792214778294975,0.792214778294975, + +00:27:35, +0.0649202198859525,0.0649202198859525,0.0649650619304804,0.0649624362753449,0.0649239363925669,0.0648647123110355,0.0648012068809251,0.0647487494381305,0.0647192481254652,0.0647192481254652, +0.0649202198859525,0.0649202198859525,0.0649650619304804,0.0649624362753449,0.0649239363925669,0.0648647123110355,0.0648012068809251,0.0647487494381305,0.0647192481254652,0.0647192481254652, +0.0863327506049854,0.0863327506049854,0.0863765141430498,0.0863630692343058,0.0863066897144063,0.0862260777362224,0.0861416153504356,0.0860724640783025,0.0860336950933218,0.0860336950933218, +0.131343120873542,0.131343120873542,0.131381345665261,0.131343117202864,0.131248093963651,0.131122110566078,0.130993448630708,0.130889065002017,0.13083067156898,0.13083067156898, +0.203536638866612,0.203536638866612,0.203558824295883,0.20347623467692,0.203316722412845,0.203116861348614,0.202916667766038,0.202754981713189,0.202664357184915,0.202664357184915, +0.306432936358705,0.306432936358705,0.306421545136222,0.306268102421609,0.306012121885175,0.305704601282679,0.305400429320845,0.305154131027043,0.305014690508164,0.305014690508164, +0.441662839726267,0.441662839726267,0.441595425632033,0.441337240484398,0.440946652670076,0.440493174265671,0.440047371375904,0.439681363635997,0.439468465635268,0.439468465635268, +0.607298098402007,0.607298098402007,0.607156469363138,0.606749131657941,0.606179564482908,0.605540265940585,0.604911545965967,0.60437810532145,0.604046905412693,0.604046905412693, +0.79693784133557,0.79693784133557,0.796740943124423,0.796107551465635,0.795307017503261,0.794448494368593,0.793598873878702,0.792830779215968,0.792276831262558,0.792276831262558, + +00:27:36, +0.0650188291968846,0.0650188291968846,0.0650636951820863,0.0650610731832699,0.0650225607931802,0.0649633139680501,0.0648997826163251,0.0648473030998545,0.0648177891963141,0.0648177891963141, +0.0650188291968846,0.0650188291968846,0.0650636951820863,0.0650610731832699,0.0650225607931802,0.0649633139680501,0.0648997826163251,0.0648473030998545,0.0648177891963141,0.0648177891963141, +0.0864414223428956,0.0864414223428956,0.0864852006917345,0.0864717572678571,0.0864153683269421,0.0863347398340988,0.0862502587051224,0.0861810914860306,0.0861423134160885,0.0861423134160885, +0.131468234272151,0.131468234272151,0.131506458695363,0.131468230629738,0.131373207440907,0.131247223148868,0.131118559629494,0.13101417446742,0.13095578016084,0.13095578016084, +0.203677805411007,0.203677805411007,0.203699975510443,0.203617392160502,0.203457901205394,0.203258069096094,0.203057905236269,0.202896243592429,0.202805632961793,0.202805632961793, +0.30658136411256,0.30658136411256,0.306569951448552,0.306416534646958,0.306160613555654,0.305853169732554,0.305549075922202,0.305302842024545,0.305163438428255,0.305163438428255, +0.441802058122896,0.441802058122896,0.441734633462126,0.441476512649684,0.441086040935483,0.440632704443419,0.440187044173762,0.43982115494044,0.439608326331415,0.439608326331415, +0.607407486235799,0.607407486235799,0.607265876910814,0.606858661739281,0.606289281553548,0.605650199642231,0.605021695567293,0.604488438788155,0.604157352635403,0.604157352635403, +0.796998314138974,0.796998314138974,0.796801473413137,0.796168282586108,0.795368010330929,0.794509772340803,0.793660435560124,0.792892596414786,0.7923388302151,0.7923388302151, + +00:27:37, +0.0651174847607054,0.0651174847607054,0.0651623746540035,0.0651597563203435,0.0651212314644114,0.0650619619569275,0.0649984047491332,0.064945903213326,0.0649163767495477,0.0649163767495477, +0.0651174847607054,0.0651174847607054,0.0651623746540035,0.0651597563203435,0.0651212314644114,0.0650619619569275,0.0649984047491332,0.064945903213326,0.0649163767495477,0.0649163767495477, +0.0865501233081713,0.0865501233081713,0.0865939164450991,0.0865804745221265,0.0865240762071313,0.0864434312653345,0.0863589314623946,0.0862897483533983,0.0862509612305788,0.0862509612305788, +0.131593345706895,0.131593345706895,0.13163156975891,0.13159334211694,0.131498319029973,0.131372333910166,0.131243668875397,0.131139282235941,0.131080887087148,0.131080887087148, +0.203818931337978,0.203818931337978,0.203841086131387,0.203758509083662,0.203599039481083,0.20339923637768,0.203199102291338,0.2030374650972,0.202946868386643,0.202946868386643, +0.30672971602462,0.30672971602462,0.306718281964754,0.306564891098976,0.306309029463271,0.306001662425442,0.305697646770431,0.305451477270497,0.305312110596601,0.305312110596601, +0.441941181782424,0.441941181782424,0.441873746601532,0.441615690108743,0.441225334440357,0.440772139788655,0.440326622064795,0.43996085127416,0.439748092017797,0.439748092017797, +0.60751678665683,0.60751678665683,0.607375197060091,0.606968104337978,0.606398910998424,0.605760045549048,0.605131757203719,0.604598684142813,0.604267711653136,0.604267711653136, +0.797058734358074,0.797058734358074,0.796861951074586,0.796228960905283,0.795428950125916,0.794570997026903,0.79372194370244,0.792954359845386,0.792400775235689,0.792400775235689, + +00:27:38, +0.0652161864991204,0.0652161864991204,0.0652611002679634,0.0652584856082897,0.0652199483279505,0.0651606561993068,0.0650970732009336,0.0650445497000841,0.0650150107066796,0.0650150107066796, +0.0652161864991204,0.0652161864991204,0.0652611002679634,0.0652584856082897,0.0652199483279505,0.0651606561993068,0.0650970732009336,0.0650445497000841,0.0650150107066796,0.0650150107066796, +0.0866588534357814,0.0866588534357814,0.0867026613381422,0.0866892209320933,0.0866328132898932,0.0865521519647622,0.0864676335569921,0.0863984346150688,0.0863596384714127,0.0863596384714127, +0.131718455143716,0.131718455143716,0.131756678821865,0.131718451630388,0.131623428696666,0.131497442815651,0.131368776333951,0.131264388272991,0.131205992313246,0.131205992313246, +0.203960016663659,0.203960016663659,0.203982156174834,0.203899585462446,0.203740137255829,0.203540363209118,0.203340258946814,0.203178646242921,0.203088063474802,0.203088063474802, +0.306877992170309,0.306877992170309,0.306866536760187,0.306713171852942,0.306457369683194,0.306150079436372,0.305846141940416,0.305600036839664,0.305460707087904,0.305460707087904, +0.442080210825526,0.442080210825526,0.442012765170834,0.441754772982127,0.441364533305235,0.440911480421897,0.4404661051695,0.440100452757642,0.439887762814895,0.439887762814895, +0.607625999791294,0.607625999791294,0.60748442993711,0.60707745958026,0.606508452943919,0.605869803787594,0.605241731001972,0.604708841512305,0.604377982592873,0.604377982592873, +0.79711910207386,0.79711910207386,0.796922376189816,0.796289586504463,0.795489836969861,0.794632168508891,0.793783398388004,0.793016069590449,0.792462666407247,0.792462666407247, + +00:27:39, +0.0653149343338964,0.0653149343338964,0.0653598719457582,0.0653572609688939,0.0653187113055485,0.0652593966168881,0.0651957878933715,0.0651432424817287,0.0651136909892841,0.0651136909892841, +0.0653149343338964,0.0653149343338964,0.0653598719457582,0.0653572609688939,0.0653187113055485,0.0652593966168881,0.0651957878933715,0.0651432424817287,0.0651136909892841,0.0651136909892841, +0.0867676126607762,0.0867676126607762,0.0868114353059437,0.0867979964328184,0.0867415795102283,0.086660901867296,0.0865763649237368,0.0865071502057871,0.0864683450732921,0.0864683450732921, +0.131843562548641,0.131843562548641,0.131881785850278,0.131843559136089,0.131748536406892,0.13162254983109,0.131493881970775,0.131389492544069,0.131331095804564,0.131331095804564, +0.204101061404226,0.204101061404226,0.204123185656945,0.204040621312944,0.203881194545593,0.2036814496062,0.203481375218307,0.203319787045057,0.203229218241652,0.203229218241652, +0.307026192624987,0.307026192624987,0.307014715910143,0.30686137698407,0.306605634290527,0.306298420840311,0.30599456150698,0.305748520806749,0.3056092279768,0.3056092279768, +0.442219145372698,0.442219145372698,0.442151689290432,0.441893761390203,0.441503637650472,0.441050726463485,0.440605493608195,0.440239959511186,0.440027338843008,0.440027338843008, +0.607735125765157,0.607735125765157,0.60759357566778,0.607186727592122,0.606617907516183,0.605979474484195,0.605351617088549,0.604818911023276,0.604488165581362,0.604488165581362, +0.797179417367161,0.797179417367161,0.796982748839711,0.796350159464786,0.795550670944236,0.7946932868686,0.793844799699005,0.793077725732489,0.792524503812526,0.792524503812526, + +00:27:40, +0.0654137281868613,0.0654137281868613,0.0654586896092419,0.0654560823240024,0.0654175203190177,0.0653581831314324,0.0652945487481531,0.0652419814799203,0.0652124175189961,0.0652124175189961, +0.0654137281868613,0.0654137281868613,0.0654586896092419,0.0654560823240024,0.0654175203190177,0.0653581831314324,0.0652945487481531,0.0652419814799203,0.0652124175189961,0.0652124175189961, +0.0868764009182873,0.0868764009182873,0.0869202382836651,0.0869068009594438,0.0868503748032186,0.0867696809079315,0.0866851254975317,0.0866158950603796,0.086577080971,0.086577080971, +0.131968667887788,0.131968667887788,0.132006890810286,0.131968664600136,0.131873642126645,0.131747654922338,0.131618985751579,0.131514595014762,0.131456197526623,0.131456197526623, +0.204242065575893,0.204242065575893,0.204264174593923,0.204181616651284,0.204022211366375,0.203822495584755,0.203622451121472,0.203460887519114,0.203370332702616,0.203370332702616, +0.307174317463946,0.307174317463946,0.307162819489851,0.307009506567507,0.30675382336031,0.306446686712159,0.306142905544879,0.305896929246392,0.305757673337864,0.305757673337864, +0.44235798554425,0.44235798554425,0.442290519080543,0.442032655453155,0.441642647596239,0.441189878033573,0.440744787501014,0.440379371654914,0.440166820222253,0.440166820222253, +0.607844164704149,0.607844164704149,0.607702634377779,0.607295908499328,0.606727274841134,0.60608905776494,0.60546141558971,0.604928892802139,0.604598260745117,0.604598260745117, +0.797239680318641,0.797239680318641,0.797043069104991,0.796410679867226,0.79561145213035,0.794754352187699,0.793906147717467,0.793139328353858,0.792586287534115,0.792586287534115, + +00:27:41, +0.0655125679799045,0.0655125679799045,0.0655575531803295,0.0655549495955232,0.0655163752902315,0.065457015664762,0.0653933556870456,0.0653407666163805,0.0653111902175116,0.0653111902175116, +0.0655125679799045,0.0655125679799045,0.0655575531803295,0.0655549495955232,0.0655163752902315,0.065457015664762,0.0653933556870456,0.0653407666163805,0.0653111902175116,0.0653111902175116, +0.0869852181435279,0.0869852181435279,0.087029070206549,0.087015634447193,0.0869591991040273,0.0868784890217453,0.0867939152133612,0.0867246691137541,0.086685846099401,0.086685846099401, +0.132093771127361,0.132093771127361,0.132131993668115,0.132093767988712,0.131998745822006,0.13187275805534,0.131744087642162,0.131639695650748,0.131581297445031,0.131581297445031, +0.204383029194917,0.204383029194917,0.204405123002009,0.204322571493637,0.204163187734216,0.203963501160658,0.203763486672003,0.203601947680642,0.203511406873161,0.203511406873161, +0.307322366762414,0.307322366762414,0.307310847574474,0.307157560678338,0.306901936967518,0.306594877126755,0.306291174128808,0.30604526223317,0.305906043245608,0.305906043245608, +0.442496731460309,0.442496731460309,0.442429254661202,0.442171455290986,0.441781563262527,0.441328935252136,0.440883986967912,0.440518689308766,0.440306207072567,0.440306207072567, +0.60795311673377,0.60795311673377,0.607811606192552,0.607405002427408,0.606836555044458,0.606198553755692,0.605571126631486,0.605038786975077,0.604708268210421,0.604708268210421, +0.797299891008802,0.797299891008802,0.797103337066214,0.796471147792594,0.79567218060935,0.794815364547691,0.793967442525248,0.793200877536736,0.792648017654434,0.792648017654434, + +00:27:42, +0.0656114536349767,0.0656114536349767,0.0656564625809975,0.0656538627054254,0.0656152761411248,0.0655558941387604,0.0654922086318773,0.065439597812892,0.0654100090065875,0.0654100090065875, +0.0656114536349767,0.0656114536349767,0.0656564625809975,0.0656538627054254,0.0656152761411248,0.0655558941387604,0.0654922086318773,0.065439597812892,0.0654100090065875,0.0654100090065875, +0.0870940642717924,0.0870940642717924,0.0871379310099194,0.0871244968313708,0.087068052347899,0.0869873261438957,0.086902734006291,0.0868334723008996,0.086794640393441,0.086794640393441, +0.132218872233652,0.132218872233652,0.132257094390078,0.132218869268085,0.132123847459145,0.131997859196126,0.131869187608407,0.131764794417792,0.131706395525485,0.131706395525485, +0.204523952277595,0.204523952277595,0.204546030897487,0.204463485856214,0.204304123665199,0.204104466349821,0.203904481885637,0.203742967545229,0.203652440768795,0.203652440768795, +0.307470340595554,0.307470340595554,0.307458800239108,0.307305539391579,0.307049975187058,0.306742992158871,0.306439367333397,0.306193519841596,0.306054337774481,0.306054337774481, +0.442635383240823,0.442635383240823,0.442567896152262,0.442310161023516,0.441920384769144,0.441467898238966,0.44102309212866,0.440657912592502,0.440445499513708,0.440445499513708, +0.608061981979289,0.608061981979289,0.607920491237313,0.607514009501662,0.606945748251608,0.606307962582077,0.605680750339676,0.605148593668037,0.604818188103323,0.604818188103323, +0.797360049517984,0.797360049517984,0.797163552803774,0.796531563321539,0.795732856462216,0.794876324029915,0.794028684204043,0.793262373363144,0.792709694255739,0.792709694255739, + +00:27:43, +0.0657103850740901,0.0657103850740901,0.0657554177332839,0.0657528215757396,0.0657142227936938,0.0656548184753725,0.0655911075045378,0.0655384749912984,0.0655088738080418,0.0655088738080418, +0.0657103850740901,0.0657103850740901,0.0657554177332839,0.0657528215757396,0.0657142227936938,0.0656548184753725,0.0655911075045378,0.0655384749912984,0.0655088738080418,0.0655088738080418, +0.0872029392384565,0.0872029392384565,0.0872468206291817,0.0872333880473631,0.0871769344701593,0.0870961922096219,0.0870115818114682,0.0869423045568866,0.0869034637881472,0.0869034637881472, +0.132343971173038,0.132343971173038,0.132382192942574,0.132343968404611,0.132248947004316,0.132122958310816,0.131994285616289,0.131889891281745,0.131831491733769,0.131831491733769, +0.204664834840264,0.204664834840264,0.204686898296678,0.204604359755266,0.204445019175448,0.204245391168199,0.204045436778154,0.203883947128511,0.20379343440507,0.20379343440507, +0.307618239038464,0.307618239038464,0.307606677558785,0.307453442782185,0.307197938093777,0.306891031883216,0.306587485233212,0.306341702146119,0.306202556998867,0.306202556998867, +0.442773941005555,0.442773941005555,0.442706443673394,0.442448772770384,0.442059112235717,0.441606767113676,0.441162103102852,0.4407970416257,0.44058469766525,0.44058469766525, +0.608170760565743,0.608170760565743,0.608029289637044,0.60762292984716,0.607054854587809,0.606417284369492,0.605790286839846,0.605258313006737,0.604928020549643,0.604928020549643, +0.797420155926366,0.797420155926366,0.797223716397906,0.796591926534548,0.795793479769768,0.79493723071555,0.794089872835382,0.793323815914934,0.79277131742012,0.79277131742012, + +00:27:44, +0.0658093622193184,0.0658093622193184,0.0658544185592884,0.0658518261285583,0.0658132151699963,0.0657537885966044,0.0656900522269779,0.0656373980735048,0.0656077845437535,0.0656077845437535, +0.0658093622193184,0.0658093622193184,0.0658544185592884,0.0658518261285583,0.0658132151699963,0.0657537885966044,0.0656900522269779,0.0656373980735048,0.0656077845437535,0.0656077845437535, +0.0873118429789772,0.0873118429789772,0.087355738999822,0.0873423080306369,0.0872858454062152,0.0872050871542444,0.0871204585641209,0.0870511658168666,0.0870123162186279,0.0870123162186279, +0.132469067911987,0.132469067911987,0.132507289292089,0.132469065364734,0.132374044423864,0.132248055365615,0.132119381631869,0.132014986208549,0.131956586035755,0.131956586035755, +0.2048056768993,0.2048056768993,0.204827725215946,0.204745193207084,0.204585874281125,0.204386275631788,0.204186351365371,0.20402488644616,0.203934387797578,0.203934387797578, +0.307766062166174,0.307766062166174,0.307754479608473,0.307601270925041,0.307345825762454,0.307038996374434,0.306735527902756,0.306489809221125,0.306350700993088,0.306350700993088, +0.442912404874089,0.442912404874089,0.442844897344088,0.442587290651047,0.442197745781693,0.441745541995695,0.441301020009897,0.44093607652776,0.440723801646591,0.440723801646591, +0.608279452617939,0.608279452617939,0.608138001516501,0.60773176358874,0.607163874178052,0.606526519243105,0.605899736257333,0.605367945116666,0.605037765674968,0.605037765674968, +0.797480210313965,0.797480210313965,0.797283827928682,0.796652237511944,0.795854050612662,0.794998084685607,0.794151008500631,0.793385205273797,0.792832887229504,0.792832887229504, + +00:27:45, +0.0659083849927972,0.0659083849927972,0.0659534649811724,0.0659508762860355,0.0659122531921516,0.065852804424524,0.0657890427212098,0.0657363669814773,0.0657067411356631,0.0657067411356631, +0.0659083849927972,0.0659083849927972,0.0659534649811724,0.0659508762860355,0.0659122531921516,0.065852804424524,0.0657890427212098,0.0657363669814773,0.0657067411356631,0.0657067411356631, +0.0874207754288923,0.0874207754288923,0.0874646860574078,0.0874512567167403,0.0873947850915545,0.0873140109131648,0.0872293641995584,0.0871600560160722,0.0871211976200726,0.0871211976200726, +0.13259416241705,0.13259416241705,0.132632383405198,0.132594160114982,0.132499139684218,0.132373150326816,0.132244475621294,0.132140079164232,0.132081678397405,0.132081678397405, +0.204946478471121,0.204946478471121,0.204968511671693,0.204885986227998,0.204726688998433,0.204527119756624,0.20432722566315,0.204165785513891,0.204075300961953,0.204075300961953, +0.30791381005365,0.30791381005365,0.307902206463071,0.30774902389497,0.307493638267803,0.307186885707104,0.306883495416466,0.306637841140938,0.306498769831404,0.306498769831404, +0.443050774965824,0.443050774965824,0.442983257283652,0.442725714784783,0.442336285526336,0.441884223004275,0.441439842969029,0.441075017417899,0.440862811576946,0.440862811576946, +0.608388058260456,0.608388058260456,0.608246627000206,0.607840510851012,0.607272807147102,0.606635667327853,0.606009098717244,0.60547749012308,0.605147423604657,0.605147423604657, +0.797540212760637,0.797540212760637,0.797343887476012,0.796712496333892,0.795914569071393,0.795058886020937,0.794212091280992,0.793446541521256,0.792894403765651,0.792894403765651, + +00:27:46, +0.0660074533167238,0.0660074533167238,0.0660525569211592,0.0660499719703868,0.066011336782341,0.0659518658812606,0.0658880789093075,0.0658353816372438,0.0658057435057723,0.0658057435057723, +0.0660074533167238,0.0660074533167238,0.0660525569211592,0.0660499719703868,0.066011336782341,0.0659518658812606,0.0658880789093075,0.0658353816372438,0.0658057435057723,0.0658057435057723, +0.087529736523821,0.087529736523821,0.0875736617375877,0.0875602340413024,0.0875037534617462,0.0874229634218656,0.087338298653171,0.0872689750898173,0.0872301079277519,0.0872301079277519, +0.132719254654867,0.132719254654867,0.132757475248558,0.132719252621973,0.132624232751895,0.1324982431608,0.1323695675508,0.132265170114907,0.132206768784765,0.132206768784765, +0.205087239572181,0.205087239572181,0.205109257680361,0.205026738834378,0.204867463343615,0.204667923558782,0.204468059687391,0.204306644347462,0.20421617391387,0.20421617391387, +0.308061482775794,0.308061482775794,0.308049858197415,0.307896701766729,0.307641375684473,0.307334699955742,0.307031387848718,0.306785797979817,0.30664676358801,0.30664676358801, +0.443189051399981,0.443189051399981,0.443121523611213,0.442864045290688,0.442474731588732,0.442022810258485,0.441578572099299,0.441213864415157,0.441001727575354,0.441001727575354, +0.60849657761764,0.60849657761764,0.608355166212455,0.607949171758356,0.607381653619492,0.606744728748442,0.606118374344456,0.605586948151006,0.605256994463838,0.605256994463838, +0.797600163346078,0.797600163346078,0.797403895119648,0.796772703080394,0.795975035226293,0.795119634802228,0.794273121257506,0.793507824738675,0.79295586711016,0.79295586711016, + +00:27:47, +0.0661065671133572,0.0661065671133572,0.0661516943015336,0.0661491131038899,0.0661104658628071,0.0660509728890052,0.0659871607134061,0.0659344419628933,0.0659047915761443,0.0659047915761443, +0.0661065671133572,0.0661065671133572,0.0661516943015336,0.0661491131038899,0.0661104658628071,0.0660509728890052,0.0659871607134061,0.0659344419628933,0.0659047915761443,0.0659047915761443, +0.0876387261994633,0.0876387261994633,0.0876826659760909,0.0876692399400331,0.0876127504524401,0.0875319446159104,0.08744726186043,0.0873779229734966,0.0873390470770175,0.0873390470770175, +0.132844344592163,0.132844344592163,0.132882564788917,0.132844342852408,0.132749323593498,0.132623333834032,0.132494657386707,0.132390259026778,0.13233185716397,0.13233185716397, +0.205227960218975,0.205227960218975,0.205249963258428,0.205167451042634,0.205008197332953,0.204808687054379,0.204608853454036,0.20444746296267,0.204357006669045,0.204357006669045, +0.308209080407438,0.308209080407438,0.308197434886273,0.308044304615009,0.307789038087049,0.307482439194797,0.307179205273821,0.306933679811956,0.306794682337038,0.306794682337038, +0.443327234295601,0.443327234295601,0.44325969644572,0.443002282287677,0.442613084087785,0.442161303877216,0.441717207519579,0.441352617638395,0.441140549760671,0.441140549760671, +0.608605010813614,0.608605010813614,0.608463619277314,0.608057746434924,0.607490413719527,0.606853703629352,0.606227563263617,0.605696319325243,0.60536647837741,0.60536647837741, +0.797660062149824,0.797660062149824,0.797463850939181,0.79683285783129,0.796035449157536,0.795180331110008,0.79433409851105,0.793569055007253,0.793017277344465,0.793017277344465, + +00:27:48, +0.0662057263050185,0.0662057263050185,0.0662508770446429,0.0662482996088843,0.0662096403558549,0.0661501253700108,0.0660862880557027,0.0660335478805766,0.0660038852689038,0.0660038852689038, +0.0662057263050185,0.0662057263050185,0.0662508770446429,0.0662482996088843,0.0662096403558549,0.0661501253700108,0.0660862880557027,0.0660335478805766,0.0660038852689038,0.0660038852689038, +0.0877477443916002,0.0877477443916002,0.0877916987087279,0.0877782743487235,0.0877217759993669,0.0876409544309435,0.0875562537568876,0.0874868996025858,0.0874480150033018,0.0874480150033018, +0.132969432195749,0.132969432195749,0.133007651993106,0.132969430773075,0.132874412175714,0.132748422313064,0.132619745095425,0.132515345866132,0.132456943501241,0.132456943501241, +0.205368640428038,0.205368640428038,0.205390628422415,0.205308122869213,0.205148890982769,0.204949410259568,0.204749606979066,0.204588241375351,0.204497799243235,0.204497799243235, +0.308356603023352,0.308356603023352,0.30834493660435,0.308191832514435,0.307936625550051,0.307630103498655,0.307326947766022,0.307081486711488,0.306942526152557,0.306942526152557, +0.443465323771541,0.443465323771541,0.44339777590594,0.443140425894485,0.442751343142219,0.442299703979179,0.441855749348561,0.441491277206294,0.441279278251578,0.441279278251578, +0.608713357972267,0.608713357972267,0.608571986318622,0.608166235004639,0.607599087571286,0.606962592094832,0.606336665599148,0.605805603770361,0.605475875470044,0.605475875470044, +0.797719909251252,0.797719909251252,0.797523755014041,0.796892960666262,0.79609581094513,0.79524097502464,0.794395023122341,0.793630232408025,0.793078634549836,0.793078634549836, + +00:27:49, +0.0663049308140909,0.0663049308140909,0.0663501050728961,0.0663475314077717,0.066308860183851,0.0662493232465919,0.0661854608584561,0.0661326993125062,0.0661030245062372,0.0661030245062372, +0.0663049308140909,0.0663049308140909,0.0663501050728961,0.0663475314077717,0.066308860183851,0.0662493232465919,0.0661854608584561,0.0661326993125062,0.0661030245062372,0.0661030245062372, +0.0878567910360936,0.0878567910360936,0.0879007598713896,0.0878873372032452,0.0878308300383382,0.0877499928026903,0.0876652742781768,0.0875959049126415,0.0875570116421185,0.0875570116421185, +0.133094517432522,0.133094517432522,0.133132736828041,0.133094516350848,0.132999498465319,0.132873508564536,0.132744830643448,0.132640430599346,0.132582027762886,0.132582027762886, +0.205509280215942,0.205509280215942,0.20553125318888,0.2054487543306,0.205289544309423,0.205090093190546,0.204890320278501,0.204728979601383,0.204638551652237,0.204638551652237, +0.30850405069824,0.30850405069824,0.308492363426285,0.308339285539566,0.308084138147932,0.307777692941638,0.307474615399502,0.30722921875248,0.307090295108572,0.307090295108572, +0.443603319946482,0.443603319946482,0.443535762110458,0.443278476229668,0.442889508870581,0.442438010682905,0.441994197704761,0.441629843237357,0.441417913166576,0.441417913166576, +0.608821619217266,0.608821619217266,0.608680267459989,0.608274637591198,0.607707675298616,0.607071394268904,0.606445681475239,0.605914801610703,0.605585185866182,0.605585185866182, +0.797779704729579,0.797779704729579,0.7975836074235,0.796953011664832,0.796156120668928,0.795301566626329,0.794455895171931,0.793691357021867,0.793139938807383,0.793139938807383, + +00:27:50, +0.0664041805630195,0.0664041805630195,0.0664493783087644,0.0664468084230159,0.0664081252692241,0.0663485664411253,0.066284679043987,0.0662318961809562,0.0662022092103925,0.0662022092103925, +0.0664041805630195,0.0664041805630195,0.0664493783087644,0.0664468084230159,0.0664081252692241,0.0663485664411253,0.066284679043987,0.0662318961809562,0.0662022092103925,0.0662022092103925, +0.0879658660688861,0.0879658660688861,0.0880098494000479,0.0879964284395506,0.0879399125052462,0.0878590596669567,0.0877743233600117,0.0877049388393011,0.0876660369290617,0.0876660369290617, +0.133219600269464,0.133219600269464,0.133257819260726,0.133219599552686,0.133124582429173,0.132998592555171,0.132869913997356,0.132765513192881,0.1327071099153,0.1327071099153, +0.205649879599296,0.205649879599296,0.205671837574417,0.205589345443322,0.205430157329312,0.205230735863545,0.205030993368402,0.204869677656684,0.204779263911888,0.204779263911888, +0.308651423506737,0.308651423506737,0.308639715426647,0.308486663764898,0.30823157595508,0.307925207598001,0.307622208248379,0.307376876008938,0.307237989279025,0.307237989279025, +0.443741222938923,0.443741222938923,0.443673655177684,0.443416433411604,0.443027581391236,0.442576224106748,0.442132552706513,0.441768315849908,0.441556454623986,0.441556454623986, +0.608929794672046,0.608929794672046,0.608788462824801,0.608382954318071,0.60781617702514,0.607180110275366,0.606554611015855,0.606023912970382,0.605694409690039,0.605694409690039, +0.797839448663862,0.797839448663862,0.797643408246672,0.797013010906363,0.79621637840862,0.795362105995119,0.794516714740215,0.79375242892949,0.793201190198051,0.793201190198051, + +00:27:51, +0.0665034754743117,0.0665034754743117,0.0665486966747814,0.0665461305771426,0.0665074355344653,0.0664478548760496,0.0663839425346778,0.0663311384082626,0.0663014393036796,0.0663014393036796, +0.0665034754743117,0.0665034754743117,0.0665486966747814,0.0665461305771426,0.0665074355344653,0.0664478548760496,0.0663839425346778,0.0663311384082626,0.0663014393036796,0.0663014393036796, +0.0880749694260011,0.0880749694260011,0.0881189672307555,0.0881055479936728,0.0880490233360638,0.0879681549596295,0.0878834009381868,0.0878140013182828,0.0877750907998065,0.0877750907998065, +0.133344680673643,0.133344680673643,0.133382899258247,0.133344680345633,0.133249664034221,0.133123674251779,0.132994995123816,0.132890593613284,0.132832189924963,0.132832189924963, +0.20579043859475,0.20579043859475,0.205812381595661,0.205729896223941,0.205570730058875,0.205371338294837,0.205171626264869,0.205010335557211,0.204919936038066,0.204919936038066, +0.308798721523415,0.308798721523415,0.308786992679945,0.308633967264859,0.308378939045819,0.308072647541935,0.307769726386707,0.307524458554802,0.307385608737793,0.307385608737793, +0.443879032867184,0.443879032867184,0.443811455225846,0.443554297558489,0.443165560822371,0.442714344368881,0.442270814471976,0.441906695162093,0.441694902741956,0.441694902741956, +0.60903788445982,0.60903788445982,0.608896572536215,0.608491185308499,0.607924592874255,0.607288740237784,0.606663454344735,0.606132937973286,0.605803547065603,0.605803547065603, +0.797899141133004,0.797899141133004,0.79770315756251,0.797072958470058,0.796276584243736,0.795422593210893,0.794577481907424,0.793813448211446,0.793262388802627,0.793262388802627, + +00:27:52, +0.0666028154705373,0.0666028154705373,0.0666480600935428,0.0666454977927402,0.0666067909021276,0.0665471884738657,0.0664832512529732,0.0664304259168235,0.0664007147084701,0.0664007147084701, +0.0666028154705373,0.0666028154705373,0.0666480600935428,0.0666454977927402,0.0666067909021276,0.0665471884738657,0.0664832512529732,0.0664304259168235,0.0664007147084701,0.0664007147084701, +0.0881841010435426,0.0881841010435426,0.0882281132996454,0.0882146958017256,0.0881581624668447,0.088077278616676,0.0879925069485773,0.0879230922853854,0.0878841731901087,0.0878841731901087, +0.133469758612212,0.133469758612212,0.133507976787778,0.133469758696818,0.133374743247493,0.133248753621256,0.133120073989579,0.133015671827188,0.132957267758441,0.132957267758441, +0.20593095721899,0.20593095721899,0.205952885269283,0.205870406689057,0.205711262514587,0.205511900500734,0.20531221898404,0.205150953318962,0.205060568046688,0.205060568046688, +0.30894594482278,0.30894594482278,0.308934195260619,0.308781196113812,0.308526227494407,0.308220012847567,0.307917169888474,0.307671966463948,0.307533153558693,0.307533153558693, +0.444016749849405,0.444016749849405,0.443949162372992,0.443692068788341,0.443303447281995,0.442852371587301,0.442408983119127,0.442044981291882,0.441833257638451,0.441833257638451, +0.609145888703571,0.609145888703571,0.609004596717164,0.6085993306855,0.60803292296913,0.6073972842795,0.606772211585389,0.606241876743076,0.605912598116635,0.605912598116635, +0.797958782215744,0.797958782215744,0.797762855449812,0.797132854434962,0.79633673825365,0.795483028353374,0.794638196753629,0.793874414948126,0.793323534701732,0.793323534701732, + +00:27:53, +0.0667022004743284,0.0667022004743284,0.0667474684877068,0.0667449099924593,0.0667061912948264,0.0666465671571367,0.0665826051213799,0.0665297586290988,0.0665000353471978,0.0665000353471978, +0.0667022004743284,0.0667022004743284,0.0667474684877068,0.0667449099924593,0.0667061912948264,0.0666465671571367,0.0665826051213799,0.0665297586290988,0.0665000353471978,0.0665000353471978, +0.0882932608576954,0.0882932608576954,0.0883372875429315,0.0883238717999031,0.0882673298337229,0.0881864305741442,0.0881016413271391,0.0880322116764885,0.0879932840358048,0.0879932840358048, +0.133594834052408,0.133594834052408,0.133633051816576,0.133594834573455,0.133499820036106,0.133373830630581,0.133245150561484,0.133140747801313,0.133082343382387,0.133082343382387, +0.20607143548874,0.20607143548874,0.206093348611992,0.206010876855308,0.205851754712959,0.205652422497585,0.205452771542094,0.20529153095797,0.205201159953708,0.205201159953708, +0.309093093479271,0.309093093479271,0.309081323243043,0.308928350386053,0.308673441375037,0.308367303588958,0.308064538827606,0.307819399810189,0.307680623815474,0.307680623815474, +0.444154374003549,0.444154374003549,0.444086776736994,0.443829747219002,0.443441240887938,0.442990305879824,0.44254705876577,0.442183174357066,0.441971519431262,0.441971519431262, +0.609253807526059,0.609253807526059,0.609112535490355,0.608707390571867,0.608141167432709,0.607505742523633,0.606880882861103,0.606350729403189,0.606021562966672,0.606021562966672, +0.79801837199067,0.79801837199067,0.797822501987217,0.797192698879961,0.796396840517574,0.795543411502127,0.794698859358743,0.793935329219758,0.793384627975829,0.793384627975829, + +00:27:54, +0.0668016304083794,0.0668016304083794,0.0668469217799941,0.0668443670990128,0.0668056366352396,0.0667459908484877,0.0666820040624668,0.0666291364676106,0.0665994011423584,0.0665994011423584, +0.0668016304083794,0.0668016304083794,0.0668469217799941,0.0668443670990128,0.0668056366352396,0.0667459908484877,0.0666820040624668,0.0666291364676106,0.0665994011423584,0.0665994011423584, +0.0884024488047246,0.0884024488047246,0.088446489896908,0.0884330759244802,0.088376525372913,0.0882956107681624,0.0882108040099086,0.088141359427552,0.0881024232728116,0.0881024232728116, +0.133719906961554,0.133719906961554,0.133758124311982,0.133719907942842,0.133624894367257,0.13349890524682,0.133370224806451,0.133265821502461,0.133207416763538,0.133207416763538, +0.206211873420761,0.206211873420761,0.206233771640534,0.20615130673937,0.205992206670544,0.205792904301777,0.205593283955245,0.205432068490311,0.205341711775123,0.205341711775123, +0.309240167567261,0.309240167567261,0.309228376701525,0.309075430155816,0.308820580761836,0.308514519840106,0.308211833277962,0.307966758667274,0.307828019581823,0.307828019581823, +0.444291905447399,0.444291905447399,0.444224298435544,0.443967332968131,0.443578941757852,0.443128147364091,0.442685041529528,0.442321274475259,0.442109688238002,0.442109688238002, +0.60936164104982,0.60936164104982,0.609220388978269,0.608815365090164,0.60824932638771,0.607614115093072,0.606989468294937,0.606459496076832,0.606130441739021,0.606130441739021, +0.798077910536208,0.798077910536208,0.797882097253205,0.797252491883786,0.796456891114563,0.795603742736558,0.794759469802518,0.793996191106414,0.79344566870522,0.79344566870522, + +00:27:55, +0.0669011051954475,0.0669011051954475,0.066946419893188,0.0669438690351764,0.0669051268461075,0.0668454594706066,0.066781447998865,0.0667285593549433,0.0666988120165099,0.0666988120165099, +0.0669011051954475,0.0669011051954475,0.066946419893188,0.0669438690351764,0.0669051268461075,0.0668454594706066,0.066781447998865,0.0667285593549433,0.0666988120165099,0.0666988120165099, +0.0885116648209758,0.0885116648209758,0.0885557202979494,0.0885423081118118,0.0884857490207101,0.0884048191349395,0.0883199949330027,0.0882505354746165,0.0882115908371267,0.0882115908371267, +0.133844977307055,0.133844977307055,0.133883194241422,0.133844978772362,0.133749966208233,0.133623977437122,0.133495296691489,0.133390892897523,0.133332487868716,0.133332487868716, +0.20635227103185,0.20635227103185,0.206374154371691,0.206291696357955,0.206132618403928,0.205933345929734,0.205733756239747,0.205572565932098,0.205482223526967,0.205482223526967, +0.309387167161057,0.309387167161057,0.309375355710308,0.309222435497264,0.308967645728865,0.308661661674941,0.308359053313339,0.308114043108887,0.307975340931365,0.307975340931365, +0.444429344298561,0.444429344298561,0.444361727586157,0.444104826153214,0.443716550009212,0.443265896157565,0.442822931527849,0.442459281763899,0.442247764176109,0.442247764176109, +0.609469389397163,0.609469389397163,0.609328157303166,0.608923254362736,0.60835739995663,0.607722402110486,0.607097968009728,0.606568176886993,0.60623923455677,0.60623923455677, +0.798137397930628,0.798137397930628,0.797941641326103,0.797312233525007,0.796516890123516,0.795664022135912,0.794820028164548,0.794057000688003,0.793506656970048,0.793506656970048, + +00:27:56, +0.0670006247583524,0.0670006247583524,0.0670459627501342,0.0670434157237882,0.0670046618502329,0.0669449729462435,0.066880936853268,0.0668280272137433,0.0667982678922722,0.0667982678922722, +0.0670006247583524,0.0670006247583524,0.0670459627501342,0.0670434157237882,0.0670046618502329,0.0669449729462435,0.066880936853268,0.0668280272137433,0.0667982678922722,0.0667982678922722, +0.0886209088428752,0.0886209088428752,0.0886649786825109,0.0886515682983336,0.0885950007134894,0.0885140556107648,0.0884292140326187,0.0883597397538029,0.088320786664828,0.088320786664828, +0.133970045056403,0.133970045056403,0.134008261572407,0.133970047029482,0.133875035526401,0.133749047168721,0.133620366183688,0.133515961953473,0.133457556664829,0.133457556664829, +0.206492628338843,0.206492628338843,0.206514496822284,0.206432045727812,0.206272989929737,0.206073747397919,0.205874188411894,0.205713023299483,0.205622695225312,0.205622695225312, +0.309534092334901,0.309534092334901,0.30952226034357,0.309369366484497,0.30911463635012,0.308808729167331,0.308506199007468,0.30826125320865,0.308122587937658,0.308122587937658, +0.444566690674462,0.444566690674462,0.44449906430617,0.444242226891557,0.443854065759314,0.443403552377531,0.442960728878002,0.442597196340247,0.442385747362842,0.442385747362842, +0.609577052690175,0.609577052690175,0.609435840587079,0.609031058511701,0.608465388261738,0.607830603698316,0.607206382128086,0.606676771956431,0.606347941542778,0.606347941542778, +0.798196834252047,0.798196834252047,0.798001134284078,0.797371923882041,0.79657683762317,0.795724249779279,0.794880534524266,0.794117758044275,0.793567592850294,0.793567592850294, + +00:27:57, +0.0671001890199764,0.0671001890199764,0.0671455502737415,0.0671430070877491,0.0671042415704812,0.0670445311982111,0.0669804705484319,0.0669275399667195,0.066897768692328,0.066897768692328, +0.0671001890199764,0.0671001890199764,0.0671455502737415,0.0671430070877491,0.0671042415704812,0.0670445311982111,0.0669804705484319,0.0669275399667195,0.066897768692328,0.066897768692328, +0.0887301808069292,0.0887301808069292,0.0887742649871278,0.0887608564205612,0.0887042803877066,0.0886233201320079,0.0885384612450342,0.0884689722013127,0.0884300106920738,0.0884300106920738, +0.13409511017717,0.13409511017717,0.134133326272529,0.134095112681751,0.134000102289213,0.133874114408934,0.133745433250226,0.133641028637368,0.13358262311887,0.13358262311887, +0.206632945358612,0.206632945358612,0.206654799009169,0.206572354865727,0.206413321264632,0.206214108722831,0.206014580488014,0.205853440608654,0.205763126886268,0.205763126886268, +0.309680943162968,0.309680943162968,0.309669090675419,0.309516223191551,0.309261552699532,0.308955722391076,0.308653270434016,0.308408389040118,0.308269760674199,0.308269760674199, +0.444703944692352,0.444703944692352,0.444636308712741,0.444379535300289,0.44399148912528,0.443541116141099,0.443098433697083,0.442735018321387,0.442523637915286,0.442523637915286, +0.609684631050719,0.609684631050719,0.60954343895182,0.609138777658954,0.608573291425082,0.607938719978782,0.6073147107724,0.606785281407684,0.606456562819683,0.606456562819683, +0.798256219578423,0.798256219578423,0.798060576205144,0.797431563033146,0.79663673369211,0.795784425745591,0.794940988960949,0.794178463254824,0.793628476425781,0.793628476425781, + +00:27:58, +0.0671997979032648,0.0671997979032648,0.0672451823869812,0.0672426430500229,0.0672038659297808,0.0671441341493847,0.0670800490071751,0.0670270975366435,0.0669973143394219,0.0669973143394219, +0.0671997979032648,0.0671997979032648,0.0672451823869812,0.0672426430500229,0.0672038659297808,0.0671441341493847,0.0670800490071751,0.0670270975366435,0.0669973143394219,0.0669973143394219, +0.0888394806497245,0.0888394806497245,0.0888835791484156,0.0888701724150907,0.0888135879798975,0.0887326126351184,0.0886477365066071,0.0885782327534274,0.0885392628551028,0.0885392628551028, +0.134220172637016,0.134220172637016,0.134258388309466,0.134220175696803,0.134125166464206,0.133999179125165,0.133870497858362,0.133766092916351,0.133707687197914,0.133707687197914, +0.206773222108063,0.206773222108063,0.206795060949237,0.206712623788521,0.206553612425311,0.206354429921007,0.206154932484474,0.20599381787584,0.205903518525985,0.205903518525985, +0.309827719719366,0.309827719719366,0.309815846779901,0.309663005692391,0.309408394850967,0.309102641419913,0.308800267666584,0.308555450676784,0.308416859214419,0.308416859214419, +0.444841106469303,0.444841106469303,0.444773460922852,0.444516751496361,0.444128820224052,0.4436785875652,0.443236046102008,0.442872747824229,0.442661435950349,0.442661435950349, +0.609792124600435,0.609792124600435,0.609650952518976,0.609246411926169,0.608681109568487,0.60804675107388,0.607422954064834,0.606893705363066,0.606565098509897,0.606565098509897, +0.798315553987559,0.798315553987559,0.798119967167157,0.797491151056424,0.796696578408761,0.795844550113621,0.795001391553716,0.794239116399082,0.793689307776174,0.793689307776174, + +00:27:59, +0.0672994513312256,0.0672994513312256,0.0673448590128877,0.0673423235336361,0.0673035348511225,0.0672437817227025,0.0671796721523787,0.0671266998463489,0.0670969047563612,0.0670969047563612, +0.0672994513312256,0.0672994513312256,0.0673448590128877,0.0673423235336361,0.0673035348511225,0.0672437817227025,0.0671796721523787,0.0671266998463489,0.0670969047563612,0.0670969047563612, +0.088948808307928,0.088948808307928,0.0889929211030701,0.0889795162185982,0.0889229234266783,0.0888419330566265,0.0887570397537756,0.0886875213465089,0.0886485430902338,0.0886485430902338, +0.134345232403681,0.134345232403681,0.134383447650978,0.134345236042356,0.134250228018998,0.134124241284899,0.13399555997544,0.133891154757651,0.133832748869123,0.133832748869123, +0.20691345860414,0.20691345860414,0.206935282659417,0.206852852513053,0.20669386342851,0.20649471100902,0.206295244417679,0.206134155117305,0.206043870160649,0.206043870160649, +0.309974422078139,0.309974422078139,0.309962528730993,0.309809714060921,0.309555162878223,0.309249486327513,0.308947190778711,0.308702438192078,0.308563883631687,0.308563883631687, +0.444978176122212,0.444978176122212,0.44491052105331,0.444653875596549,0.444266059172396,0.44381596676659,0.443373566209521,0.443010384965506,0.442799141584764,0.442799141584764, +0.609899533460742,0.609899533460742,0.609758381409916,0.609353961434795,0.608788842813554,0.608154697105383,0.607531112127329,0.607002043944667,0.606673548735612,0.606673548735612, +0.798374837557103,0.798374837557103,0.79817930724782,0.797550688029822,0.796756371851393,0.795904622961985,0.795061742381527,0.794299717556326,0.793750086980979,0.793750086980979, + +00:28:00, +0.0673991492269297,0.0673991492269297,0.0674445800745581,0.0674420484616781,0.0674032482575602,0.0673434738411651,0.0672793399069866,0.0672263468187324,0.0671965398660159,0.0671965398660159, +0.0673991492269297,0.0673991492269297,0.0674445800745581,0.0674420484616781,0.0674032482575602,0.0673434738411651,0.0672793399069866,0.0672263468187324,0.0671965398660159,0.0671965398660159, +0.0890581637182866,0.0890581637182866,0.0891022907878671,0.0890888877678398,0.0890322866647449,0.0889512813331421,0.0888663709230578,0.0887968379169993,0.088757851333866,0.088757851333866, +0.13447028944499,0.13447028944499,0.134508504264908,0.13447029368621,0.134375286921293,0.134249300855704,0.134120619568889,0.134016214128576,0.133957808099742,0.133957808099742, +0.207053654863823,0.207053654863823,0.207075464156672,0.206993041056216,0.206834074290997,0.20663495200348,0.20643551630407,0.206274452349351,0.206184181806485,0.206184181806485, +0.310121050313262,0.310121050313262,0.310109136602608,0.309956348370976,0.309701856855033,0.309396257187483,0.309094039843869,0.308849351659361,0.308710833999306,0.308710833999306, +0.445115153767796,0.445115153767796,0.445047489220743,0.444790907717452,0.444403206086904,0.44395325386185,0.443510994136187,0.443147929861777,0.44293675493509,0.44293675493509, +0.610006857752836,0.610006857752836,0.609865725745783,0.609461426306061,0.608896491281663,0.608262558194844,0.607639185081607,0.607110297274356,0.606781913618796,0.606781913618796, +0.79843407036455,0.79843407036455,0.798238596524679,0.797610174031133,0.79681611409812,0.795964644369146,0.795122041523187,0.794360266805674,0.793810814119542,0.793810814119542, + +00:28:01, +0.0674988915135112,0.0674988915135112,0.0675443454951529,0.0675418177573015,0.0675030060722107,0.0674432104278362,0.0673790521940052,0.067326038376753,0.0672962195913184,0.0672962195913184, +0.0674988915135112,0.0674988915135112,0.0675443454951529,0.0675418177573015,0.0675030060722107,0.0674432104278362,0.0673790521940052,0.067326038376753,0.0672962195913184,0.0672962195913184, +0.0891675468176277,0.0891675468176277,0.0892116881396624,0.0891982869996517,0.0891416776308735,0.0890606574013556,0.0889757299510521,0.0889061824014207,0.0888671875224786,0.0888671875224786, +0.134595343728851,0.134595343728851,0.134633558119184,0.134595348596247,0.134500343138876,0.134374357805232,0.134245676606219,0.134141270996523,0.1340828648571,0.1340828648571, +0.207193810904126,0.207193810904126,0.207215605458001,0.207133189434939,0.206974245029581,0.206775152921032,0.206575748160125,0.206414709588318,0.206324453479754,0.206324453479754, +0.310267604498646,0.310267604498646,0.310255670468591,0.310102908696326,0.309848476855067,0.309542954073362,0.309240814935467,0.308996191151935,0.308857710390515,0.308857710390515, +0.445252039522598,0.445252039522598,0.445184365541603,0.444927847975493,0.44454026108399,0.444090448967385,0.443648329998397,0.443285382629423,0.44307427611771,0.44307427611771, +0.610114097597691,0.610114097597691,0.609972985647501,0.609568806660976,0.609004055093973,0.608370334463593,0.607747173049164,0.607218465473781,0.606890193281195,0.606890193281195, +0.798493252487238,0.798493252487238,0.798297835075128,0.797669609137993,0.7968758052269,0.796024614413406,0.795182289057342,0.794420764226085,0.793871489271054,0.793871489271054, + +00:28:02, +0.0675986781141672,0.0675986781141672,0.0676441551978954,0.0676416313437218,0.0676028082182539,0.0675429914058426,0.0674788089365039,0.0674257744434327,0.0673959438552638,0.0673959438552638, +0.0675986781141672,0.0675986781141672,0.0676441551978954,0.0676416313437218,0.0676028082182539,0.0675429914058426,0.0674788089365039,0.0674257744434327,0.0673959438552638,0.0673959438552638, +0.0892769575428582,0.0892769575428582,0.0893211130953919,0.0893077138509502,0.0892510962619202,0.0891700611980369,0.089085116774437,0.0890155547363754,0.0889765515926308,0.0889765515926308, +0.134720395223252,0.134720395223252,0.134758609181812,0.134720400740433,0.134625396639614,0.13449941210122,0.134370731055024,0.134266325328968,0.134207919108608,0.134207919108608, +0.2073339267421,0.2073339267421,0.207355706580439,0.207273297666187,0.207114375661102,0.206915313778358,0.206715940002358,0.206554926850581,0.206464685196754,0.206464685196754, +0.310414084708135,0.310414084708135,0.310402130402722,0.310249395110674,0.309995022951925,0.309689577058627,0.309387516126847,0.309142956743034,0.309004512878492,0.309004512878492, +0.445388833502985,0.445388833502985,0.445321150132168,0.445064696486919,0.444677224279893,0.444227552199423,0.443785573912367,0.443422743384654,0.443211705248831,0.443211705248831, +0.610221253116063,0.610221253116063,0.610080161235774,0.609676102620325,0.609111534371423,0.608478026032737,0.607855076151279,0.607326548664367,0.606998387844334,0.606998387844334, +0.798552384002354,0.798552384002354,0.798357022976405,0.797728993427885,0.796935445315538,0.796084533172916,0.795242485062485,0.794481209896365,0.793932112514548,0.793932112514548, + +00:28:03, +0.0676985089521579,0.0676985089521579,0.0677440091060723,0.0677414891442178,0.0677026546189328,0.0676428166983738,0.0675786100576151,0.0675255549418564,0.0674957125809103,0.0674957125809103, +0.0676985089521579,0.0676985089521579,0.0677440091060723,0.0677414891442178,0.0677026546189328,0.0676428166983738,0.0675786100576151,0.0675255549418564,0.0674957125809103,0.0674957125809103, +0.0893863958309652,0.0893863958309652,0.0894305655920712,0.0894171682587313,0.089360542494821,0.0892794926600361,0.0891945313299706,0.0891249548585455,0.0890859434809618,0.0890859434809618, +0.134845443896267,0.134845443896267,0.134883657420886,0.134845450086816,0.134750447391459,0.134624463711484,0.134495782882984,0.134391377093474,0.134332970821762,0.134332970821762, +0.207474002394828,0.207474002394828,0.207495767541055,0.207413365766959,0.207254466202437,0.207055434592176,0.20685609184732,0.206695104152554,0.206604876973821,0.206604876973821, +0.310560491015507,0.310560491015507,0.310548516478714,0.310395807687659,0.310141495219145,0.309836126216687,0.309534143491289,0.30928964850583,0.309151241536347,0.309151241536347, +0.445525535825147,0.445525535825147,0.445457843108538,0.445201453367802,0.444814095790677,0.444364563674019,0.44392272599414,0.443560012243504,0.443349042444489,0.443349042444489, +0.610328324428485,0.610328324428485,0.610187252631085,0.609783314304676,0.609218929234729,0.608585633023167,0.607962894509007,0.607434546967319,0.607106497429517,0.607106497429517, +0.798611464986928,0.798611464986928,0.798416160305595,0.797788326978137,0.796995034441682,0.796144400725669,0.795302629616949,0.794541603895161,0.7939926839289,0.7939926839289, + +00:28:04, +0.0677983839508069,0.0677983839508069,0.0678439071430334,0.0678413910821316,0.0678025451975534,0.0677426862286826,0.0676784554805342,0.0676253797951716,0.0675955256913786,0.0675955256913786, +0.0677983839508069,0.0677983839508069,0.0678439071430334,0.0678413910821316,0.0678025451975534,0.0677426862286826,0.0676784554805342,0.0676253797951716,0.0675955256913786,0.0675955256913786, +0.0894958616190158,0.0894958616190158,0.089540045566796,0.0895266501600709,0.0894700162665917,0.0893889517242831,0.0893039735544913,0.0892343827046932,0.0891953631241909,0.0891953631241909, +0.13497048971605,0.13497048971605,0.135008702804577,0.134970496603526,0.134875495362445,0.134749512603926,0.134620832057856,0.134516426257683,0.134458019964142,0.134458019964142, +0.207614037879432,0.207614037879432,0.207635788356953,0.207553393754289,0.2073945166705,0.207195515379238,0.206996203711596,0.206835241510685,0.206745028827326,0.206745028827326, +0.310706823494471,0.310706823494471,0.310694828770214,0.310542146500851,0.310287893730197,0.309982601620887,0.309680697102006,0.309436266513429,0.309297896437128,0.309297896437128, +0.4456621466051,0.4456621466051,0.445594444586639,0.445338118734038,0.44495087573223,0.444501483507053,0.444059786359582,0.443697189321833,0.443486287820544,0.443486287820544, +0.610435311655273,0.610435311655273,0.610294259953696,0.609890441834376,0.609326239804389,0.608693155555551,0.608070628243186,0.607542460503623,0.60721452215783,0.60721452215783, +0.798670495517842,0.798670495517842,0.798475247139631,0.797847609865924,0.797054572682826,0.796204217149503,0.795362722798915,0.794601946300966,0.794053203592829,0.794053203592829, + +00:28:05, +0.067898303033501,0.067898303033501,0.067943849232192,0.0679413370808683,0.0679024798774851,0.0678425999200848,0.0677783451285194,0.0677252489265891,0.0676953831098526,0.0676953831098526, +0.067898303033501,0.067898303033501,0.067943849232192,0.0679413370808683,0.0679024798774851,0.0678425999200848,0.0677783451285194,0.0677252489265891,0.0676953831098526,0.0676953831098526, +0.0896053548441567,0.0896053548441567,0.0896495529567416,0.0896361594921245,0.0895795175143278,0.0894984383277877,0.089413443384917,0.0893438382116605,0.0893048104591172,0.0893048104591172, +0.135095532650837,0.135095532650837,0.13513374530114,0.135095540258775,0.135000540520684,0.134874558746527,0.134745878547485,0.134641472789323,0.134583066503408,0.134583066503408, +0.207754033213065,0.207754033213065,0.20777576904527,0.207693381645245,0.207534527082237,0.207335556156333,0.20713627561181,0.206975338941459,0.206885140773678,0.206885140773678, +0.310853082218674,0.310853082218674,0.310841067350801,0.310688411623755,0.310434218558486,0.310129003344507,0.309827177032148,0.309582810838873,0.309444477653818,0.309444477653818, +0.445798665958683,0.445798665958683,0.445730954682221,0.445474692701348,0.445087564220268,0.444638311814229,0.444196755124387,0.443834274735326,0.443623441492682,0.443623441492682, +0.61054221491652,0.61054221491652,0.610401183323654,0.609997485329553,0.609433466200682,0.608800593750338,0.608178277474432,0.607650289394045,0.607322462150136,0.607322462150136, +0.798729475671819,0.798729475671819,0.798534283555293,0.797906842168267,0.797114060116312,0.796263982522103,0.795422764686408,0.794662237192114,0.794113671584901,0.794113671584901, + +00:28:06, +0.0679982661236905,0.0679982661236905,0.0680438352970248,0.0680413270638969,0.0680024585821608,0.0679425576959597,0.0678782789248925,0.0678251622593826,0.0677952847595791,0.0677952847595791, +0.0679982661236905,0.0679982661236905,0.0680438352970248,0.0680413270638969,0.0680024585821608,0.0679425576959597,0.0678782789248925,0.0678251622593826,0.0677952847595791,0.0677952847595791, +0.0897148754436144,0.0897148754436144,0.089759087699163,0.0897456961921276,0.0896890461752045,0.0896079524076392,0.0895229407582455,0.0894533213163689,0.0894142854226194,0.0894142854226194, +0.135220572668948,0.135220572668948,0.135258784878914,0.135220581020857,0.135125582834376,0.134999602107352,0.134870922319795,0.134766516656204,0.134708110407304,0.134708110407304, +0.207893988412916,0.207893988412916,0.20791570962318,0.207833329456932,0.207674497454629,0.207475556940285,0.207276307564618,0.207115396461396,0.207025212829319,0.207025212829319, +0.310999267261693,0.310999267261693,0.310987232293991,0.310834603129811,0.310580469777349,0.310275331460761,0.309973583354797,0.309729281555141,0.309590985259337,0.309590985259337, +0.445935094001561,0.445935094001561,0.445867373510862,0.445611175385279,0.445224161370329,0.444775048711079,0.444333632404072,0.443971268599497,0.443760503576416,0.443760503576416, +0.610649034332104,0.610649034332104,0.610508022860782,0.610104444910116,0.609540608543668,0.608907947727758,0.608285842323143,0.607758033759129,0.607430317527081,0.607430317527081, +0.798788405525436,0.798788405525436,0.798593269629206,0.797966023962037,0.797173496819327,0.796323696921,0.795482755357298,0.794722476646787,0.794174087983521,0.794174087983521, + +00:28:07, +0.0680982731448891,0.0680982731448891,0.0681438652610719,0.0681413609547494,0.0681024812350765,0.0680425594797498,0.067978256793038,0.0679251197168891,0.0678952305638682,0.0678952305638682, +0.0680982731448891,0.0680982731448891,0.0681438652610719,0.0681413609547494,0.0681024812350765,0.0680425594797498,0.067978256793038,0.0679251197168891,0.0678952305638682,0.0678952305638682, +0.089824423354695,0.089824423354695,0.0898686497313948,0.0898552601973949,0.0897986021864769,0.0897174939010067,0.0896324656115543,0.0895628319558201,0.0895237879516563,0.0895237879516563, +0.135345609738782,0.135345609738782,0.135383821506315,0.135345618858146,0.135250622271797,0.135124642654549,0.134995963342794,0.134891557826216,0.134833151643657,0.134833151643657, +0.208033903496207,0.208033903496207,0.208055610107889,0.207973237206486,0.207814427804692,0.20761551774795,0.207416299586713,0.207255414087055,0.207165245010731,0.207165245010731, +0.311145378697039,0.311145378697039,0.31113332367323,0.310980721092392,0.310726647460061,0.310421586042796,0.310119916142973,0.309875678735144,0.309737419326539,0.309737419326539, +0.446071430849225,0.446071430849225,0.446003701187962,0.445747566901205,0.445360667297779,0.44491169431296,0.444470418313985,0.444108171029684,0.443897474187088,0.443897474187088, +0.610755770021683,0.610755770021683,0.610614778684691,0.610211320695757,0.609647666953188,0.609015217607823,0.608393322909498,0.607865693719204,0.60753808840909,0.60753808840909, +0.798847285155113,0.798847285155113,0.798652205437846,0.798025155323947,0.797232882868905,0.79638336042357,0.7955426948893,0.794782664743012,0.794234452866945,0.794234452866945, + +00:28:08, +0.0681983240206741,0.0681983240206741,0.0682439390479371,0.0682414386770216,0.0682025477597918,0.0681426051949608,0.0680782786564043,0.0680251212225088,0.0679952204460929,0.0679952204460929, +0.0681983240206741,0.0681983240206741,0.0682439390479371,0.0682414386770216,0.0682025477597918,0.0681426051949608,0.0680782786564043,0.0680251212225088,0.0679952204460929,0.0679952204460929, +0.0899339985147844,0.0899339985147844,0.0899782389908513,0.0899648514453209,0.0899081854854792,0.0898270627451388,0.0897420178820004,0.0896723700670951,0.0896333179832659,0.0896333179832659, +0.13547064382882,0.13547064382882,0.135508855151843,0.135470653739099,0.135375658801309,0.135249680356344,0.135121001584569,0.135016596267333,0.134958190180376,0.134958190180376, +0.208173778480195,0.208173778480195,0.208195470516636,0.208113104911077,0.207954318149477,0.207755438596222,0.207556251694822,0.207395391835024,0.207305237334429,0.207305237334429, +0.31129141659816,0.31129141659816,0.3112793415619,0.311126765584802,0.310872751679827,0.310567767163696,0.310266175469631,0.310022002451732,0.309883779928215,0.309883779928215, +0.446207676616991,0.446207676616991,0.446139937828749,0.445883867364324,0.445497082117811,0.445048248735056,0.444607112969298,0.444244982141053,0.444034353439864,0.444034353439864, +0.610862422104698,0.610862422104698,0.610721450914769,0.610318112805948,0.609754641548865,0.609122403510327,0.608500719353459,0.607973269394378,0.607645774916372,0.607645774916372, +0.798906114637121,0.798906114637121,0.798711091057537,0.798084236330564,0.797292218341929,0.796442973107036,0.795602583359977,0.794842801558659,0.794294766313268,0.794294766313268, + +00:28:09, +0.0682984186746863,0.0682984186746863,0.0683440565812878,0.068341560154373,0.06830265807993,0.0682426947651623,0.0681783444385027,0.068125166699705,0.0680952543296896,0.0680952543296896, +0.0682984186746863,0.0682984186746863,0.0683440565812878,0.068341560154373,0.06830265807993,0.0682426947651623,0.0681783444385027,0.068125166699705,0.0680952543296896,0.0680952543296896, +0.090043600861348,0.090043600861348,0.0900878554150263,0.0900744698733797,0.0900177960096255,0.0899366588773637,0.0898515975068206,0.0897819355873547,0.0897428754545663,0.0897428754545663, +0.135595674907624,0.135595674907624,0.135633885784079,0.135595685632253,0.135500692391352,0.135374715181048,0.135246037013292,0.135141631947611,0.135083225985451,0.135083225985451, +0.208313613382168,0.208313613382168,0.208335290866695,0.20825293258791,0.208094168506067,0.207895319502026,0.207696163905708,0.207535329721933,0.207445189816962,0.207445189816962, +0.311437381038431,0.311437381038431,0.311425286033315,0.311272736680284,0.311018782509789,0.310713874896479,0.310412361407658,0.310168252777689,0.31003006713709,0.31003006713709, +0.446343831420001,0.446343831420001,0.446276083548277,0.44602007688966,0.445633405945441,0.445184712092378,0.44474371648501,0.4443817020486,0.444171141449738,0.444171141449738, +0.610968990700372,0.610968990700372,0.61082803967019,0.610424821359947,0.609861532450105,0.609229505554846,0.608608031774769,0.608080760904545,0.607753377168917,0.607753377168917, +0.798964894047581,0.798964894047581,0.79876992656445,0.7981432670583,0.797351503315127,0.796502535048469,0.795662420846737,0.794902887171448,0.794355028400437,0.794355028400437, + +00:28:10, +0.0683985570306304,0.0683985570306304,0.0684442177848551,0.0684417253105265,0.0684028121191779,0.068342828113987,0.0682784540629082,0.0682252560720047,0.0681953321381582,0.0681953321381582, +0.0683985570306304,0.0683985570306304,0.0684442177848551,0.0684417253105265,0.0684028121191779,0.068342828113987,0.0682784540629082,0.0682252560720047,0.0681953321381582,0.0681953321381582, +0.0901532303319304,0.0901532303319304,0.0901974989414928,0.0901841154191246,0.090127433696409,0.0900462822350891,0.0899612044233309,0.089891528453839,0.0898524603027549,0.0898524603027549, +0.135720702943838,0.135720702943838,0.135758913371683,0.135720714506227,0.135625723010447,0.135499747097051,0.135371069597214,0.135266664835186,0.135208259026954,0.135208259026954, +0.208453408219451,0.208453408219451,0.208475071175374,0.208392720254223,0.208233978891579,0.208035160482323,0.207836036236168,0.207675227764441,0.207585102474917,0.207585102474917, +0.311583272091167,0.311583272091167,0.311571157160723,0.31141863445201,0.311164740023022,0.310859909314096,0.31055847402988,0.310314429785734,0.310176281025827,0.310176281025827, +0.446479895373224,0.446479895373224,0.446412138461426,0.446156195592067,0.445769638895516,0.445321084499762,0.444880228975949,0.444518330867144,0.444307838331535,0.444307838331535, +0.611075475927713,0.611075475927713,0.610934545069912,0.610531446476792,0.609968339776099,0.609336523860741,0.608715260292955,0.608188168369378,0.607860895286499,0.607860895286499, +0.799023623462461,0.799023623462461,0.798828712034607,0.798202247583416,0.797410737865077,0.796562046324788,0.795722207426837,0.794962921658941,0.794415239206239,0.794415239206239, + +00:28:11, +0.0684987390122748,0.0684987390122748,0.0685444225824338,0.068541934069269,0.0685030098012859,0.0684430051651316,0.0683786074532593,0.0683253892629981,0.0682954537950617,0.0682954537950617, +0.0684987390122748,0.0684987390122748,0.0685444225824338,0.068541934069269,0.0685030098012859,0.0684430051651316,0.0683786074532593,0.0683253892629981,0.0682954537950617,0.0682954537950617, +0.0902628868641561,0.0902628868641561,0.0903071695079035,0.0902937880201882,0.0902370984834026,0.0901559327558019,0.090070838568927,0.0900011486038677,0.0899620724651084,0.0899620724651084, +0.135845727906185,0.135845727906185,0.135883937883397,0.135845740329718,0.135750750627197,0.135624776072824,0.135496099304669,0.135391694898278,0.135333289273039,0.135333289273039, +0.2085931630094,0.2085931630094,0.20861481146001,0.208532467927286,0.208373749323164,0.208174961554109,0.207975868703032,0.207815085979246,0.207724975324915,0.207724975324915, +0.311729089829612,0.311729089829612,0.311716955017307,0.311564458973087,0.311310624292534,0.311005870489434,0.310704513409054,0.310460533548522,0.310322421667022,0.310322421667022, +0.446615868591454,0.446615868591454,0.446548102682903,0.446292223586221,0.445905781082708,0.445457366071874,0.445016650556769,0.444654868711336,0.444444444199904,0.444444444199904, +0.61118187790551,0.61118187790551,0.611040967232674,0.610637988275309,0.610075063645819,0.609443458547153,0.608822405027327,0.608295491908335,0.607968329388673,0.607968329388673, +0.799082302957579,0.799082302957579,0.798887447543879,0.798261177982022,0.797469922068205,0.796621507012757,0.795781943177378,0.795022905098551,0.794475398808312,0.794475398808312, + +00:28:12, +0.0685989645434516,0.0685989645434516,0.0686446708978827,0.0686421863544511,0.0686032510500684,0.0685432258423562,0.068478804533258,0.0684255661963391,0.0683956192240267,0.0683956192240267, +0.0685989645434516,0.0685989645434516,0.0686446708978827,0.0686421863544511,0.0686032510500684,0.0685432258423562,0.068478804533258,0.0684255661963391,0.0683956192240267,0.0683956192240267, +0.0903725703957285,0.0903725703957285,0.0904168670519901,0.0904034876142827,0.0903467903082582,0.0902656103770685,0.0901804998810837,0.0901107959748399,0.0900717118789832,0.0900717118789832, +0.13597074976347,0.13597074976347,0.136008959288043,0.135970763071506,0.135875775210286,0.13574980207692,0.135621126104069,0.135516722105184,0.135458316691941,0.135458316691941, +0.208732877769403,0.208732877769403,0.208754511737978,0.208672175624402,0.208513479818006,0.20831472273441,0.208115661323165,0.207954904383077,0.207864808383609,0.207864808383609, +0.311874834326946,0.311874834326946,0.31186267967618,0.311710210316557,0.311456435391267,0.311151758495312,0.310850479617875,0.310606564138642,0.310468489133209,0.310468489133209, +0.446751751189314,0.446751751189314,0.446683976327242,0.446428160986629,0.446041832621516,0.445593556923207,0.445152981341952,0.444791315695653,0.444580959169325,0.444580959169325, +0.611288196752339,0.611288196752339,0.611147306277003,0.610744446874104,0.610181704178022,0.60955030973301,0.608929466096979,0.608402731640657,0.60807567959478,0.60807567959478, +0.799140932608604,0.799140932608604,0.798946133167987,0.798320058330078,0.797529056000787,0.796680917188993,0.795841628175312,0.795082837567536,0.794535507284138,0.794535507284138, + +00:28:13, +0.0686992335480569,0.0686992335480569,0.0687449626551245,0.0687424820899875,0.0687035357894036,0.0686434900694848,0.06857904522667,0.068525786795745,0.0684958283487436,0.0684958283487436, +0.0686992335480569,0.0686992335480569,0.0687449626551245,0.0687424820899875,0.0687035357894036,0.0686434900694848,0.06857904522667,0.068525786795745,0.0684958283487436,0.0684958283487436, +0.0904822808644305,0.0904822808644305,0.0905265915115637,0.0905132141391992,0.0904565091087071,0.0903753150365346,0.0902901882973552,0.090220470504234,0.090181378481815,0.090181378481815, +0.136095768484576,0.136095768484576,0.136133977554523,0.13609578270045,0.136000796728476,0.135874825077971,0.135746149963911,0.135641746424287,0.135583341251977,0.135583341251977, +0.208872552516881,0.208872552516881,0.208894172026681,0.208811843362909,0.208653170393322,0.208454444040287,0.208255414113466,0.208094682992699,0.20800460166769,0.20800460166769, +0.312020505656279,0.312020505656279,0.312008331210391,0.311855888555393,0.311602173392099,0.311297573404487,0.31099637272897,0.31075252162862,0.310614483496855,0.310614483496855, +0.446887543281253,0.446887543281253,0.446819759508803,0.446564007907623,0.446177793626268,0.44572965716808,0.445289221445811,0.4449276719344,0.444717383354106,0.444717383354106, +0.61139443258656,0.61139443258656,0.611253562321208,0.610850822391571,0.610288261491251,0.609657077537024,0.60903644362079,0.608509887685372,0.608182946023945,0.608182946023945, +0.799199512491054,0.799199512491054,0.799004768982502,0.798378888703395,0.797588139738946,0.796740276929957,0.795901262497437,0.795142719143001,0.794595564711047,0.794595564711047, + +00:28:14, +0.0687995459500509,0.0687995459500509,0.0688452977781459,0.0688428211998566,0.0688038639432334,0.0687437977704052,0.068679329457325,0.068626050984997,0.068596081092966,0.068596081092966, +0.0687995459500509,0.0687995459500509,0.0688452977781459,0.0688428211998566,0.0688038639432334,0.0687437977704052,0.068679329457325,0.068626050984997,0.068596081092966,0.068596081092966, +0.0905920182081242,0.0905920182081242,0.0906363428245146,0.0906229675328082,0.0905662548225597,0.0904850466719248,0.0903999037553751,0.0903301721296076,0.0902910722111185,0.0902910722111185, +0.136220784038469,0.136220784038469,0.136258992651819,0.136220799185488,0.136125815150612,0.135999845044689,0.135871170852769,0.135766767824046,0.135708362921542,0.135708362921542, +0.209012187269289,0.209012187269289,0.209033792343558,0.208951471160174,0.20879282106636,0.208594125488836,0.208395127090867,0.208234421824911,0.20814435519388,0.20814435519388, +0.312166103890659,0.312166103890659,0.312153909692921,0.312001493762504,0.31174783836784,0.311443315289646,0.311142192814904,0.310898406090916,0.310760404830365,0.310760404830365, +0.447023244981548,0.447023244981548,0.446955452341777,0.446699764463366,0.446313664211118,0.445865666920644,0.445425370982483,0.445063937541714,0.444853716868382,0.444853716868382, +0.611500585526318,0.611500585526318,0.611359735483385,0.610957114945888,0.610394735703833,0.609763762077692,0.609143337717422,0.60861696016129,0.608290128795076,0.608290128795076, +0.799258042680301,0.799258042680301,0.799063355062847,0.798437669177632,0.797647173358657,0.796799586311961,0.795960846220401,0.7952025499019,0.794655571166217,0.794655571166217, + +00:28:15, +0.0688999016734577,0.0688999016734577,0.0689456761909976,0.0689432036081011,0.068904235435564,0.0688441488690693,0.0687796571491161,0.0687263586879399,0.0686963773805115,0.0686963773805115, +0.0688999016734577,0.0688999016734577,0.0689456761909976,0.0689432036081011,0.068904235435564,0.0688441488690693,0.0687796571491161,0.0687263586879399,0.0686963773805115,0.0686963773805115, +0.0907017823647506,0.0907017823647506,0.090746120928812,0.0907327477330589,0.0906760273877054,0.0905948052210432,0.0905096461928559,0.0904399007885977,0.0904007930044881,0.0904007930044881, +0.136345796394192,0.136345796394192,0.136384004548992,0.13634581249564,0.136250830445614,0.136124861945869,0.135996188739298,0.135891786273004,0.135833381669115,0.135833381669115, +0.209151782044113,0.209151782044113,0.209173372706076,0.209091059033598,0.208932431854403,0.208733767097182,0.208534800272333,0.208374120896544,0.208284068978938,0.208284068978938, +0.312311629103062,0.312311629103062,0.312299415196686,0.312147026010731,0.311893430391233,0.311588984223414,0.311287939948174,0.311044217597926,0.310906253206077,0.310906253206077, +0.447158856404302,0.447158856404302,0.447091054940181,0.446835430767846,0.446449444490051,0.446001586294874,0.445561430065938,0.445200112631557,0.444989959826121,0.444989959826121, +0.611606655689544,0.611606655689544,0.611465825881416,0.61106332465502,0.610501126933881,0.609870363473295,0.609250148505326,0.608723949187007,0.608397228026867,0.608397228026867, +0.799316523251564,0.799316523251564,0.799121891484293,0.7984963998283,0.797706156935744,0.796858845411169,0.7960203794207,0.795262329921035,0.794715526726675,0.794715526726675, + +00:28:16, +0.0690003006423656,0.0690003006423656,0.0690460978177944,0.0690436292388276,0.0690046501904653,0.0689445432894925,0.0688800282260007,0.0688267098284824,0.0687967171352614,0.0687967171352614, +0.0690003006423656,0.0690003006423656,0.0690460978177944,0.0690436292388276,0.0690046501904653,0.0689445432894925,0.0688800282260007,0.0688267098284824,0.0687967171352614,0.0687967171352614, +0.0908115732723302,0.0908115732723302,0.0908559257625044,0.09084255467798,0.0907858267421128,0.0907045906217726,0.0906194155475894,0.0905496564189201,0.0905105407995968,0.0905105407995968, +0.136470805520868,0.136470805520868,0.136509013215184,0.136470822600003,0.136375842582488,0.136249875750382,0.136121203592234,0.136016801739782,0.135958397463253,0.135958397463253, +0.209291336858869,0.209291336858869,0.209312913131737,0.209230607000613,0.209072002774764,0.208873368882485,0.208674433674862,0.208513780224464,0.208423743039653,0.208423743039653, +0.312457081366402,0.312457081366402,0.312444847794533,0.312292485372849,0.312038949534956,0.311734580278349,0.311433614201213,0.311189956221981,0.311052028696265,0.311052028696265, +0.447294377663449,0.447294377663449,0.447226567417859,0.44697100693488,0.446585134576877,0.446137415404578,0.445697398809973,0.445336197317723,0.445126112341117,0.445126112341117, +0.611712643193956,0.611712643193956,0.611571833632969,0.611169451636716,0.610607435299294,0.609976881841902,0.609356876102736,0.608830854880905,0.6085042438378,0.6085042438378, +0.799374954279917,0.799374954279917,0.799180378321966,0.798555080730761,0.797765090545881,0.79691805430359,0.796079862174679,0.795322059277058,0.794775431469292,0.794775431469292, + +00:28:17, +0.069100742780927,0.069100742780927,0.0691465625827156,0.0691440980162071,0.0691051081320717,0.0690449809557548,0.0689804426119997,0.0689271043305969,0.0688971002811609,0.0688971002811609, +0.069100742780927,0.069100742780927,0.0691465625827156,0.0691440980162071,0.0691051081320717,0.0690449809557548,0.0689804426119997,0.0689271043305969,0.0688971002811609,0.0688971002811609, +0.0909213908689622,0.0909213908689622,0.090965757263719,0.0909523883056789,0.0908956528238294,0.0908144028120751,0.0907292117574462,0.0906594389583699,0.090620315534197,0.090620315534197, +0.136595811387701,0.136595811387701,0.136634018619613,0.136595829467754,0.136500851530314,0.13637488642718,0.136246215380391,0.136141814193082,0.136083410272593,0.136083410272593, +0.209430851731108,0.209430851731108,0.209452413638073,0.209370115078684,0.209211533844789,0.209012930861938,0.208814027315486,0.208653399825569,0.208563377392849,0.208563377392849, +0.312602460753523,0.312602460753523,0.312590207559245,0.312437871921566,0.312184395871622,0.311880103526941,0.311579215646388,0.311335622035345,0.311197731373141,0.311197731373141, +0.44742980887275,0.44742980887275,0.447361989888485,0.447106493078114,0.446720734585239,0.446273154363391,0.445833277328214,0.445472191713835,0.445262174526995,0.445262174526995, +0.611818548157056,0.611818548157056,0.611677758855498,0.611275496008514,0.610713660917758,0.610083317301369,0.609463520627672,0.608937677361153,0.608611176346139,0.608611176346139, +0.799433335840283,0.799433335840283,0.799238815650843,0.798613711960227,0.797823974264594,0.796977213065087,0.796139294558533,0.795381738046468,0.794835285470794,0.794835285470794, + +00:28:18, +0.0692012280133586,0.0692012280133586,0.0692470704100044,0.0692446098644746,0.0692056091845816,0.0691454617919998,0.0690809002311985,0.06902754211832,0.0689975267422189,0.0689975267422189, +0.0692012280133586,0.0692012280133586,0.0692470704100044,0.0692446098644746,0.0692056091845816,0.0691454617919998,0.0690809002311985,0.06902754211832,0.0689975267422189,0.0689975267422189, +0.0910312350928248,0.0910312350928248,0.091075615370662,0.0910622485543417,0.0910055055709816,0.0909242417299916,0.0908390347603761,0.0907692483448211,0.0907301171461201,0.0907301171461201, +0.136720813963972,0.136720813963972,0.13675902073158,0.136720833068149,0.136625857258253,0.136499893945296,0.136371224072666,0.136266823601686,0.136208420065855,0.136208420065855, +0.209570326678411,0.209570326678411,0.209591874242649,0.209509583285306,0.209351025081855,0.209152453052764,0.208953581211267,0.208792979716791,0.208702972055385,0.208702972055385, +0.312747767337204,0.312747767337204,0.312735494563535,0.312583185729523,0.312329769473775,0.312025554041618,0.311724744356001,0.311481215110221,0.311343361308848,0.311343361308848, +0.447565150145793,0.447565150145793,0.447497322465562,0.447241889311024,0.446856244628607,0.446408803284776,0.445969065734119,0.445608095933346,0.445398146497212,0.445398146497212, +0.611924370696138,0.611924370696138,0.611783601666247,0.611381457887739,0.610819803906745,0.610189669969337,0.609570082197944,0.609044416745706,0.608718025669938,0.608718025669938, +0.799491668007441,0.799491668007441,0.799297203545752,0.798672293591765,0.79788280816726,0.797036321771372,0.796198676648309,0.795441366305616,0.794895088807751,0.794895088807751, + +00:28:19, +0.0693017562639414,0.0693017562639414,0.0693476212239685,0.0693451647079295,0.0693061532722575,0.0692459857224358,0.0691814010077463,0.0691280231157522,0.0690979964425085,0.0690979964425085, +0.0693017562639414,0.0693017562639414,0.0693476212239685,0.0693451647079295,0.0693061532722575,0.0692459857224358,0.0691814010077463,0.0691280231157522,0.0690979964425085,0.0690979964425085, +0.0911411058821751,0.0911411058821751,0.0911855000216185,0.0911721353622337,0.0911153849217745,0.0910341073136417,0.0909488844944076,0.0908790845162267,0.0908399455732764,0.0908399455732764, +0.136845813219042,0.136845813219042,0.136884019520461,0.136845833370524,0.136750859735546,0.13662489827384,0.136496229638031,0.136391829934454,0.136333426811835,0.136333426811835, +0.209709761718388,0.209709761718388,0.209731294963059,0.209649011638005,0.209490476503372,0.209291935472218,0.209093095379303,0.208932519915093,0.20884252704415,0.20884252704415, +0.312893001190156,0.312893001190156,0.312880708880051,0.312728426869295,0.312475070413894,0.312170931894739,0.31187020040229,0.311626735518743,0.311488918575467,0.311488918575467, +0.447700401595998,0.447700401595998,0.447632565262421,0.447377195746914,0.446991664820278,0.44654436228203,0.446104764140974,0.44574391008954,0.445534028365052,0.445534028365052, +0.612030110928279,0.612030110928279,0.611889362182246,0.611487337391503,0.610925864383517,0.610295939963235,0.609676560931147,0.609151073152306,0.608824791927038,0.608824791927038, +0.799549950856018,0.799549950856018,0.799355542081374,0.798730825700292,0.797941592329106,0.797095380498008,0.796258008519901,0.7955009441307,0.794954841556584,0.794954841556584, + +00:28:20, +0.0694023274570209,0.0694023274570209,0.0694482149489801,0.0694457624709359,0.0694067403194266,0.0693465526713349,0.0692819448658566,0.069228547247058,0.0691985093061668,0.0691985093061668, +0.0694023274570209,0.0694023274570209,0.0694482149489801,0.0694457624709359,0.0694067403194266,0.0693465526713349,0.0692819448658566,0.069228547247058,0.0691985093061668,0.0691985093061668, +0.0912510031753489,0.0912510031753489,0.0912954111549523,0.0912820486676986,0.091225290814492,0.0911439995012239,0.0910587608976481,0.0909889474106185,0.0909498007536551,0.0909498007536551, +0.13697080912235,0.13697080912235,0.137009014955714,0.136970830344292,0.13687585893151,0.136749899382,0.136621232045541,0.136516833160328,0.13645843047941,0.13645843047941, +0.209849156868683,0.209849156868683,0.209870675816928,0.20978840015434,0.20962988812678,0.209431378137589,0.20923256983672,0.209072020437473,0.208982042376066,0.208982042376066, +0.313038162385023,0.313038162385023,0.313025850581375,0.312873595413391,0.312620298764393,0.312316237158599,0.312015583857425,0.311772183332984,0.311634403245014,0.311634403245014, +0.447835563336612,0.447835563336612,0.447767718392224,0.447512412498918,0.447126995273384,0.446679831468275,0.446240372661895,0.445879634295529,0.445669820243633,0.445669820243633, +0.612135768970348,0.612135768970348,0.611995040520313,0.611593134636707,0.611031842465123,0.610402127400281,0.609782956944663,0.609257646698483,0.608931475235067,0.608931475235067, +0.799608184460499,0.799608184460499,0.799413831332244,0.798789308360576,0.798000326825213,0.797154389320411,0.796317290249056,0.795560471597771,0.795014543793566,0.795014543793566, + +00:28:21, +0.0695029415170068,0.0695029415170068,0.0695488515094757,0.0695464030779217,0.0695073702504801,0.0694471625630337,0.0693825317298069,0.0693291144364663,0.0692990652573949,0.0692990652573949, +0.0695029415170068,0.0695029415170068,0.0695488515094757,0.0695464030779217,0.0695073702504801,0.0694471625630337,0.0693825317298069,0.0693291144364663,0.0692990652573949,0.0692990652573949, +0.0913609269107609,0.0913609269107609,0.091405348709106,0.0913919884091591,0.0913352231874969,0.0912539182310157,0.0911686639082839,0.091098836966107,0.0910596826253241,0.0910596826253241, +0.137095801643414,0.137095801643414,0.137134007006873,0.137095823958944,0.137000854815545,0.136874897239047,0.136746231264327,0.136641833248327,0.136583431037536,0.136583431037536, +0.20998851214697,0.20998851214697,0.210010016821913,0.2099277488519,0.209769259969549,0.209570781066195,0.20937200460068,0.209211481300959,0.20912151806809,0.20912151806809, +0.313183250994383,0.313183250994383,0.31317091974002,0.313018691434253,0.312765454597616,0.312461469905426,0.312160894793513,0.311917558624948,0.311779815389439,0.311779815389439, +0.447970635480712,0.447970635480712,0.447902781967962,0.447647539679998,0.447262236100882,0.446815210956466,0.44637589140983,0.446015268664259,0.445805522245901,0.445805522245901, +0.612241344939001,0.612241344939001,0.612100636797057,0.611698849740041,0.611137738268399,0.61050823239748,0.609889270355666,0.609364137501557,0.609038075711439,0.609038075711439, +0.799666368895219,0.799666368895219,0.799472071372749,0.79884774164724,0.798059011730514,0.797213348313846,0.796376521911371,0.795619948782728,0.795074195594817,0.795074195594817, + +00:28:22, +0.0696035983683736,0.0696035983683736,0.0696495308299565,0.06964708645338,0.069608042989874,0.0695478153219332,0.0694831615239393,0.06942972460827,0.0693996642204582,0.0693996642204582, +0.0696035983683736,0.0696035983683736,0.0696495308299565,0.06964708645338,0.069608042989874,0.0695478153219332,0.0694831615239393,0.06942972460827,0.0693996642204582,0.0693996642204582, +0.0914708770269044,0.0914708770269044,0.0915153126226005,0.0915019545251161,0.0914451819792303,0.0913638634413727,0.0912785934645797,0.0912087531208817,0.0911695911264302,0.0911695911264302, +0.13722079075183,0.13722079075183,0.13725899564355,0.137220814184051,0.137125847357124,0.136999891814326,0.1368712272636,0.136766830167549,0.136708428455249,0.136708428455249, +0.210127827570953,0.210127827570953,0.210149317995702,0.210067057748302,0.209908592049182,0.209710144275386,0.209511399688372,0.209350902522612,0.209260954137208,0.209260954137208, +0.313328267090748,0.313328267090748,0.313315916428434,0.313163715004255,0.312910537985846,0.312606630207382,0.312306133282593,0.312062861466577,0.311925155080629,0.311925155080629, +0.448105618141206,0.448105618141206,0.448037756102455,0.44778257740295,0.447397387415563,0.446950500859389,0.446511320497558,0.446150813308504,0.445941134484635,0.445941134484635, +0.612346838950682,0.612346838950682,0.612206151128874,0.611804482817984,0.611243551909972,0.610614255071629,0.609995501281116,0.609470545678634,0.609144593473361,0.609144593473361, +0.799724504234369,0.799724504234369,0.799530262277131,0.798906125634762,0.798117647119793,0.797272257553433,0.796435703582296,0.795679375761325,0.795133797036309,0.795133797036309, + +00:28:23, +0.0697042979356603,0.0697042979356603,0.0697502528349881,0.069747812521868,0.0697087584621286,0.0696485108724988,0.0695838341726601,0.0695303776868264,0.0695003061196864,0.0695003061196864, +0.0697042979356603,0.0697042979356603,0.0697502528349881,0.069747812521868,0.0697087584621286,0.0696485108724988,0.0695838341726601,0.0695303776868264,0.0695003061196864,0.0695003061196864, +0.0915808534623512,0.0915808534623512,0.0916253028340355,0.0916119469541495,0.0915551671282122,0.0914738350707296,0.0913885495048792,0.0913186958132105,0.0912795261951987,0.0912795261951987, +0.137345776417272,0.137345776417272,0.137383980835436,0.137345800989261,0.137250836525801,0.137124883077262,0.136996220012651,0.136891823887172,0.136833422701664,0.136833422701664, +0.210267103158365,0.210267103158365,0.21028857935601,0.210206326861196,0.210047884383211,0.209849467782544,0.20965075511702,0.209490284119523,0.209400350600439,0.209400350600439, +0.313473210746559,0.313473210746559,0.313460840718997,0.313308666195706,0.313055549001293,0.312751718136564,0.312451299396641,0.312208091929746,0.312070422390404,0.312070422390404, +0.44824051143083,0.44824051143083,0.448172640908355,0.447917525780398,0.447532449330046,0.44708570128966,0.446646660037687,0.446286268340873,0.446076657072445,0.446076657072445, +0.612452251121628,0.612452251121628,0.612311583631952,0.611910033986804,0.61134928350626,0.61072019553931,0.610101649837762,0.609576871346611,0.609251028637825,0.609251028637825, +0.799782590551992,0.799782590551992,0.799588404119486,0.798964460397469,0.79817623306769,0.797331117114143,0.796494835337133,0.795738752609162,0.795193348193867,0.795193348193867, + +00:28:24, +0.0698050401434704,0.0698050401434704,0.069851017449201,0.0698485812080077,0.0698095165918287,0.0697492491392604,0.06968454960044,0.0696310735965571,0.0696009908794734,0.0696009908794734, +0.0698050401434704,0.0698050401434704,0.069851017449201,0.0698485812080077,0.0698095165918287,0.0697492491392604,0.06968454960044,0.0696310735965571,0.0696009908794734,0.0696009908794734, +0.0916908561557518,0.0916908561557518,0.0917353192820893,0.0917219656349174,0.0916651785730407,0.0915838330575994,0.0914985319676043,0.09142866498144,0.0913894877699337,0.0913894877699337, +0.137470758609492,0.137470758609492,0.137508962552299,0.137470784344298,0.137375822291207,0.137249870997359,0.137121209480846,0.137016814376452,0.136958413745971,0.136958413745971, +0.210406338926972,0.210406338926972,0.210427800920585,0.210345556208261,0.210187136989199,0.209988751605079,0.209790070903878,0.209629626108818,0.209539707474835,0.209539707474835, +0.313618082034195,0.313618082034195,0.313605692684023,0.313453545080846,0.313200487716107,0.312896733765002,0.312596393207566,0.312353250086267,0.312215617390521,0.312215617390521, +0.448375315462153,0.448375315462153,0.448307436498142,0.448052384924795,0.447667421956783,0.447220812359726,0.446781910142659,0.446421633873804,0.446212090121773,0.446212090121773, +0.612557581567863,0.612557581567863,0.612416934422267,0.61201550336256,0.611454933173466,0.610826053916899,0.610207716142145,0.609683114622175,0.609357381321616,0.609357381321616, +0.799840627921988,0.799840627921988,0.799646496973763,0.799022746009547,0.798234769648696,0.797389927070799,0.796553917251034,0.795798079401697,0.795252849143165,0.795252849143165, + +00:28:25, +0.0699058249164723,0.0699058249164723,0.0699518245972902,0.0699493924364859,0.0699103173036241,0.0698500300468125,0.0697853077318144,0.0697318122619481,0.0697017184242775,0.0697017184242775, +0.0699058249164723,0.0699058249164723,0.0699518245972902,0.0699493924364859,0.0699103173036241,0.0698500300468125,0.0697853077318144,0.0697318122619481,0.0697017184242775,0.0697017184242775, +0.091800885045835,0.091800885045835,0.0918453619055184,0.0918320105061562,0.0917752162523927,0.0916938573405734,0.0916085407912556,0.0915386605639953,0.0914994757890178,0.0914994757890178, +0.137595737298318,0.137595737298318,0.137633940763985,0.137595764218967,0.137500804623052,0.137374855544197,0.137246195637632,0.137141801604723,0.137083401557443,0.137083401557443, +0.210545534894566,0.210545534894566,0.210566982707203,0.210484745807207,0.210326349884739,0.210127995760434,0.209929347066231,0.209768928507651,0.209679024777478,0.209679024777478, +0.313762881025966,0.313762881025966,0.313750472395757,0.31359835173185,0.313345354202367,0.313041677164661,0.312741414787213,0.312498336007883,0.312360740152671,0.312360740152671, +0.448510030347573,0.448510030347573,0.44844214298413,0.448187154948428,0.447802305408055,0.447355834181864,0.446917070924745,0.446556910019566,0.446347433744892,0.446347433744892, +0.612662830405204,0.612662830405204,0.612522203615588,0.612120891061102,0.611560501027589,0.61093183032056,0.610313700310595,0.609789275621801,0.609463651641307,0.609463651641307, +0.799898616418109,0.799898616418109,0.799704540913768,0.799080982545033,0.798293256937157,0.79744868749808,0.796612949399006,0.795857356214234,0.795312299959729,0.795312299959729, + +00:28:26, +0.070006652179399,0.070006652179399,0.0700526742040156,0.070050246132054,0.070011160522229,0.0699508535198143,0.0698861084913829,0.0698325936075501,0.0698024886786215,0.0698024886786215, +0.070006652179399,0.070006652179399,0.0700526742040156,0.070050246132054,0.070011160522229,0.0699508535198143,0.0698861084913829,0.0698325936075501,0.0698024886786215,0.0698024886786215, +0.0919109400714081,0.0919109400714081,0.0919554306431577,0.0919420815066809,0.0918852801050231,0.0918039078583216,0.091718575914412,0.0916486824993801,0.0916094901909119,0.0916094901909119, +0.137720712453658,0.137720712453658,0.137758915440417,0.137720740583147,0.137625783491122,0.137499836687435,0.137371178452531,0.137266785541396,0.137208386105429,0.137208386105429, +0.210684691078973,0.210684691078973,0.210706124733671,0.210623895675772,0.210465523087453,0.210267200266081,0.210068583621394,0.209908191333209,0.209818302525482,0.209818302525482, +0.313907607794113,0.313907607794113,0.313895179926381,0.313743086220827,0.313490148532087,0.313186548407439,0.312886364207358,0.312643349766277,0.312505790748481,0.312505790748481, +0.448644656199318,0.448644656199318,0.448576760478463,0.448321835963415,0.447937099795975,0.447490766868187,0.447052142496051,0.446692096890264,0.44648268805391,0.44648268805391, +0.612767997749258,0.612767997749258,0.612627391327474,0.612226197198071,0.611665987184417,0.611037524866248,0.610419602459232,0.609895354461756,0.609569839713263,0.609569839713263, +0.799956556113966,0.799956556113966,0.799762536013161,0.79913917007782,0.798351695007273,0.797507398470516,0.796671931855909,0.795916583121935,0.795371700718937,0.795371700718937, + +00:28:27, +0.0701075218570485,0.0701075218570485,0.0701535661942019,0.0701511422195282,0.0701120461724224,0.0700517194829895,0.06998695180381,0.0699334175579781,0.0699033015670926,0.0699033015670926, +0.0701075218570485,0.0701075218570485,0.0701535661942019,0.0701511422195282,0.0701120461724224,0.0700517194829895,0.06998695180381,0.0699334175579781,0.0699033015670926,0.0699033015670926, +0.0920210211713566,0.0920210211713566,0.0920655254339205,0.0920521785753847,0.0919953700697653,0.0919139845495921,0.091828637275731,0.0917587307261761,0.0917195309141557,0.0917195309141557, +0.137845684045494,0.137845684045494,0.137883886551595,0.137845713406795,0.137750758865279,0.137624814396808,0.137496157895146,0.137391766155962,0.137333367359356,0.137333367359356, +0.210823807498044,0.210823807498044,0.210845227017823,0.210763005831724,0.210604656614994,0.210406365139523,0.210207780586713,0.210047414602708,0.209957540735991,0.209957540735991, +0.314052262410812,0.314052262410812,0.314039815348005,0.313887748619817,0.313634870777215,0.313331347565169,0.313031241539715,0.312788291433062,0.312650769249512,0.312650769249512, +0.44877919312945,0.44877919312945,0.448711289093114,0.448456428081703,0.44807180523249,0.447625610530634,0.447187124968514,0.446827194597833,0.446617853160765,0.446617853160765, +0.612873083715423,0.612873083715423,0.612732497673277,0.612331421888899,0.611771391759528,0.611143137669711,0.610525422703969,0.6100013512581,0.609675945653637,0.609675945653637, +0.800014447083024,0.800014447083024,0.799820482345458,0.799197308681655,0.798410083933098,0.797566060062493,0.796730864696454,0.795975760199811,0.795431051496022,0.795431051496022, + +00:28:28, +0.0702084338742835,0.0702084338742835,0.0702545004927389,0.0702520806237898,0.0702129741790483,0.0701526278611267,0.0700878375938248,0.0700342840379118,0.0700041570143429,0.0700041570143429, +0.0702084338742835,0.0702084338742835,0.0702545004927389,0.0702520806237898,0.0702129741790483,0.0701526278611267,0.0700878375938248,0.0700342840379118,0.0700041570143429,0.0700041570143429, +0.0921311282846445,0.0921311282846445,0.0921756462167981,0.0921623016512389,0.092105486085531,0.0920240873532113,0.091938724813948,0.0918688051830439,0.0918295978973668,0.0918295978973668, +0.137970652043888,0.137970652043888,0.138008854067595,0.137970682659946,0.137875730715465,0.13774978864213,0.137621133935156,0.137516743417988,0.137458345288729,0.137458345288729, +0.210962884169662,0.210962884169662,0.210984289577525,0.210902076292861,0.210743750485045,0.210545490398293,0.210346937979565,0.210186598333397,0.210096739426181,0.210096739426181, +0.314196844948173,0.314196844948173,0.314184378732676,0.314032339000794,0.313779521009632,0.313476074709615,0.313176046855932,0.31293316107979,0.31279567572726,0.31279567572726, +0.44891364124986,0.44891364124986,0.448845728939892,0.448590931415073,0.448206421829376,0.447760365280982,0.447322018453901,0.446962203254041,0.446752929177228,0.446752929177228, +0.612978088418892,0.612978088418892,0.612837522768139,0.612436565248811,0.611876714868295,0.611248668846487,0.61063116116051,0.610107266126681,0.609781969578378,0.609781969578378, +0.800072289398602,0.800072289398602,0.79987837998403,0.799255398430144,0.798468423788542,0.797624672348249,0.79678974799521,0.796034887522728,0.795490352366067,0.795490352366067, + +00:28:29, +0.070309388156032,0.070309388156032,0.0703554770245812,0.070353061269785,0.0703139444670155,0.0702535785790793,0.0701887657862212,0.0701351929720956,0.0701050549450886,0.0701050549450886, +0.070309388156032,0.070309388156032,0.0703554770245812,0.070353061269785,0.0703139444670155,0.0702535785790793,0.0701887657862212,0.0701351929720956,0.0701050549450886,0.0701050549450886, +0.0922412613503138,0.0922412613503138,0.0922857929308601,0.092272450673293,0.0922156280913097,0.0921342162080838,0.092048838467877,0.0919789058087218,0.0919396910792413,0.0919396910792413, +0.138095616418976,0.138095616418976,0.138133817958571,0.13809564831271,0.138000699011697,0.137874759393291,0.137746106542315,0.137641717297119,0.137583319863131,0.137583319863131, +0.211101921111737,0.211101921111737,0.211123312430669,0.211041107077008,0.210882804715315,0.210684576059951,0.210486055817355,0.210325742542553,0.210235898613259,0.210235898613259, +0.314341355478236,0.314341355478236,0.314328870152372,0.314176857435666,0.313924099301152,0.313620729912479,0.313320780227588,0.313077958777943,0.312940510253157,0.312940510253157, +0.449048000672273,0.449048000672273,0.448980080130435,0.448725346075139,0.448340949698243,0.447895031230837,0.447456823063817,0.447097122970488,0.446887916214906,0.446887916214906, +0.613083011974647,0.613083011974647,0.612942466726997,0.612541627392824,0.61198195662588,0.611354118511908,0.610736817944351,0.610213099183141,0.609887911603224,0.609887911603224, +0.800130083133879,0.800130083133879,0.799936229002105,0.799313439396745,0.798526714647371,0.797683235401879,0.796848581826596,0.796093965165406,0.795549603404008,0.795549603404008, + +00:28:30, +0.0704103846272866,0.0704103846272866,0.0704564957147483,0.0704540840825247,0.0704149569612977,0.0703545715617657,0.0702897363058577,0.0702361442853386,0.0702059952841111,0.0702059952841111, +0.0704103846272866,0.0704103846272866,0.0704564957147483,0.0704540840825247,0.0704149569612977,0.0703545715617657,0.0702897363058577,0.0702361442853386,0.0702059952841111,0.0702059952841111, +0.0923514203074846,0.0923514203074846,0.0923959655152543,0.0923826255806745,0.0923257960261693,0.0922443710531922,0.09215897817641,0.0920890325420266,0.0920498103985536,0.0920498103985536, +0.138220577140972,0.138220577140972,0.138258778194752,0.138220610335275,0.138125663724067,0.137999726620256,0.137871075686457,0.137766687763078,0.13770829105222,0.13770829105222, +0.211240918342211,0.211240918342211,0.211262295595178,0.21118009820202,0.211021819323545,0.210823622142089,0.21062513411752,0.210464847247485,0.210375018314461,0.210375018314461, +0.314485794072976,0.314485794072976,0.314473289679004,0.314321303996273,0.314068605723523,0.313765313245394,0.313465441726201,0.313222684598943,0.313085272898568,0.313085272898568, +0.449182271508245,0.449182271508245,0.449114342776214,0.448859672173344,0.448475388950533,0.448029608491639,0.447591538909695,0.44723195385861,0.447022814385235,0.447022814385235, +0.613187854497464,0.613187854497464,0.613047329664581,0.612646608435749,0.612087117147241,0.611459486781097,0.61084239317078,0.610318850542916,0.609993771843706,0.609993771843706, +0.800187828361888,0.800187828361888,0.799994029472769,0.799371431654774,0.798584956583204,0.797741749297333,0.796907366264888,0.796152993202419,0.795608804684639,0.795608804684639, + +00:28:31, +0.0705114232131052,0.0705114232131052,0.0705575564883251,0.0705551489870853,0.0705160115869338,0.070455606734169,0.070390749077658,0.0703371379025148,0.0703069779562564,0.0703069779562564, +0.0705114232131052,0.0705114232131052,0.0705575564883251,0.0705551489870853,0.0705160115869338,0.070455606734169,0.070390749077658,0.0703371379025148,0.0703069779562564,0.0703069779562564, +0.0924616050953552,0.0924616050953552,0.0925061639092061,0.0924928263125891,0.0924359898292557,0.0923545518275975,0.0922691438785169,0.0921991853218533,0.092159955794156,0.092159955794156, +0.138345534180167,0.138345534180167,0.138383734746444,0.138345568697903,0.138250624822747,0.138124690293071,0.137996041337492,0.137891654785663,0.137833258825735,0.137833258825735, +0.21137987587905,0.21137987587905,0.211401239089002,0.211319049685781,0.211160794327503,0.210962628662328,0.210764172897526,0.210603912465531,0.210514098547052,0.210514098547052, +0.3146301608043,0.3146301608043,0.314617637384416,0.314465678754387,0.314213040348426,0.313909824779928,0.31361003142322,0.313367338614142,0.313229963734796,0.313229963734796, +0.449316453869163,0.449316453869163,0.449248516988533,0.448993909820967,0.448609739697521,0.448164097174661,0.447726166102804,0.447366696029675,0.44715762379949,0.44715762379949, +0.613292616101915,0.613292616101915,0.613152111695413,0.61275150849219,0.612192196547128,0.611564773768973,0.610947886954881,0.610424520321233,0.610099550415149,0.610099550415149, +0.80024552515552,0.80024552515552,0.800051781468964,0.799429375277403,0.798643149669518,0.797800214108415,0.796966101384216,0.796211971708193,0.795667956282603,0.795667956282603, + +00:28:32, +0.0706125038386108,0.0706125038386108,0.0706586592704615,0.0706562559086081,0.0706171082690275,0.0705566840213375,0.0704918040266104,0.0704381737485629,0.0704080028864351,0.0704080028864351, +0.0706125038386108,0.0706125038386108,0.0706586592704615,0.0706562559086081,0.0706171082690275,0.0705566840213375,0.0704918040266104,0.0704381737485629,0.0704080028864351,0.0704080028864351, +0.0925718156532016,0.0925718156532016,0.0926163880520193,0.0926030528083201,0.0925462094397924,0.0924647584704382,0.092379335513246,0.0923093640871746,0.0922701272049792,0.0922701272049792, +0.138470487506926,0.138470487506926,0.13850868758403,0.138470523370935,0.138375582277983,0.138249650381854,0.138121003465405,0.138016618334751,0.137958223153488,0.137958223153488, +0.211518793740251,0.211518793740251,0.211540142930118,0.211457961546202,0.211299729744987,0.211101595638317,0.210903172174867,0.210742938214058,0.210653139328331,0.210653139328331, +0.314774455744048,0.314774455744048,0.314761913340386,0.314609981781716,0.314357403247476,0.314054264587583,0.313754549390029,0.313511920894829,0.313374582833075,0.313374582833075, +0.44945054786625,0.44945054786625,0.449382602878528,0.449128059129118,0.448744002050315,0.44829849739101,0.447860704754248,0.447501349594784,0.447292344568775,0.447292344568775, +0.613397296902363,0.613397296902363,0.613256812933811,0.612856327676545,0.612297194940085,0.611669979590244,0.611053299411527,0.610530108633113,0.610205247432669,0.610205247432669, +0.800303173587525,0.800303173587525,0.800109485063488,0.799487270337663,0.798701293979647,0.797858629908786,0.797024787258567,0.796270900757013,0.795727058272399,0.795727058272399, + +00:28:33, +0.0707136264289917,0.0707136264289917,0.0707598039863725,0.0707574047722997,0.0707182469327478,0.0706578033483845,0.0705929010777684,0.0705392517484867,0.070509069999623,0.070509069999623, +0.0707136264289917,0.0707136264289917,0.0707598039863725,0.0707574047722997,0.0707182469327478,0.0706578033483845,0.0705929010777684,0.0705392517484867,0.070509069999623,0.070509069999623, +0.0926820519203781,0.0926820519203781,0.0927266378830753,0.0927133050072289,0.0926564547970812,0.092574990920931,0.0924895530197233,0.0924195687770416,0.0923803245700315,0.0923803245700315, +0.13859543709169,0.13859543709169,0.138633636677965,0.138595474324784,0.138500536060095,0.1383746068568,0.13824596204026,0.138141578380293,0.13808318400537,0.13808318400537, +0.211657671943838,0.211657671943838,0.211679007136534,0.211596833801224,0.211438625593823,0.211240523087733,0.211042131967067,0.210881924510465,0.210792140675623,0.210792140675623, +0.314918678963994,0.314918678963994,0.314906117618624,0.3147542131499,0.31450169449222,0.314198632739792,0.313898995697947,0.313656431512228,0.313519130264578,0.313519130264578, +0.449584553610559,0.449584553610559,0.449516600557169,0.449262120208742,0.448878176119857,0.448432809251624,0.447995154974962,0.447635914664875,0.447426976804032,0.447426976804032, +0.613501897012967,0.613501897012967,0.613361433493886,0.612961066103006,0.612402112440451,0.611775104359418,0.61115863065539,0.61063561559337,0.610310863011179,0.610310863011179, +0.80036077373051,0.80036077373051,0.800167140328998,0.799545116908439,0.798759389586781,0.797916996771962,0.797083423961781,0.796329780423015,0.795786110728383,0.795786110728383, + +00:28:34, +0.0708147909095012,0.0708147909095012,0.0708609905613385,0.0708585955034317,0.0708194275033289,0.0707589646404884,0.0706940401562505,0.0706403718273548,0.0706101792208608,0.0706101792208608, +0.0708147909095012,0.0708147909095012,0.0708609905613385,0.0708585955034317,0.0708194275033289,0.0707589646404884,0.0706940401562505,0.0706403718273548,0.0706101792208608,0.0706101792208608, +0.0927923138363166,0.0927923138363166,0.0928369133418333,0.0928235828487546,0.0927667258405014,0.0926852491183704,0.0925997963371527,0.0925297993305831,0.0924905478283994,0.0924905478283994, +0.138720382904978,0.138720382904978,0.138758581998784,0.138720421529942,0.138625486139483,0.138499559688182,0.138370917032196,0.138266534892319,0.138208141351348,0.138208141351348, +0.211796510507864,0.211796510507864,0.211817831726284,0.211735666468813,0.211577481891864,0.211379411028284,0.21118105229168,0.211020871372177,0.210931102606284,0.210931102606284, +0.315062830535842,0.315062830535842,0.315050250290773,0.314898372930509,0.314645914154141,0.314342929307927,0.314043370418226,0.313800870537497,0.31366360610041,0.31366360610041, +0.449718471212978,0.449718471212978,0.44965051013526,0.449396093170616,0.449012262016922,0.448567032867279,0.448129516875717,0.447770391350718,0.447561520616036,0.447561520616036, +0.613606416547681,0.613606416547681,0.613465973489545,0.613065723885561,0.612506949162358,0.611880148190794,0.611263880800932,0.610741041316615,0.610416397265384,0.610416397265384, +0.800418325656938,0.800418325656938,0.800224747338011,0.799602915062476,0.798817436563965,0.797975314771318,0.797142011567556,0.796388610780194,0.795845113724763,0.795845113724763, + +00:28:35, +0.0709159972054581,0.0709159972054581,0.0709622189207053,0.0709598280273412,0.0709206499060702,0.0708601678228928,0.0707952211872402,0.0707415339103011,0.070711330475254,0.070711330475254, +0.0709159972054581,0.0709159972054581,0.0709622189207053,0.0709598280273412,0.0709206499060702,0.0708601678228928,0.0707952211872402,0.0707415339103011,0.070711330475254,0.070711330475254, +0.0929026013405267,0.0929026013405267,0.0929472143678304,0.0929338862724141,0.0928770225095102,0.0927955330021286,0.092710065404816,0.0926400556870056,0.0926007969192473,0.0926007969192473, +0.138845324917382,0.138845324917382,0.138883523517095,0.138845364956974,0.138750432486619,0.138624508846347,0.138495868411426,0.138391487840934,0.138333095161465,0.138333095161465, +0.211935309450408,0.211935309450408,0.211956616717429,0.211874459566964,0.211716298656992,0.211518259477703,0.211319933166287,0.211159778816651,0.211070025137699,0.211070025137699, +0.315206910531232,0.315206910531232,0.315194311428408,0.315042461195051,0.314790062304652,0.314487154363288,0.314187673622053,0.313945238041728,0.31380801041161,0.31380801041161, +0.449852300784227,0.449852300784227,0.449784331723436,0.449529978125351,0.449146259852118,0.448701168348583,0.448263790567117,0.447904779762919,0.447695976115397,0.447695976115397, +0.613710855620254,0.613710855620254,0.613570433034491,0.613170301137993,0.612611705219735,0.611985111198466,0.611369049962414,0.610846385917252,0.610521850309785,0.610521850309785, +0.800475829439133,0.800475829439133,0.8002823061629,0.799660664872377,0.798875434984106,0.798033583980084,0.797200550149445,0.796447391902398,0.795904067335605,0.795904067335605, + +00:28:36, +0.0710172452422466,0.0710172452422466,0.0710634889898839,0.0710611022694307,0.0710219140663365,0.0709614128209066,0.0708964440959863,0.0708427379225242,0.0708125236879733,0.0708125236879733, +0.0710172452422466,0.0710172452422466,0.0710634889898839,0.0710611022694307,0.0710219140663365,0.0709614128209066,0.0708964440959863,0.0708427379225242,0.0708125236879733,0.0708125236879733, +0.093012914372596,0.093012914372596,0.0930575409006813,0.0930442152178019,0.0929873447436424,0.0929058425116556,0.0928203601620726,0.0927503377855938,0.0927110717818174,0.0927110717818174, +0.13897026309957,0.13897026309957,0.139008461203581,0.138970304576522,0.138875375072051,0.138749454301718,0.138620816148241,0.138516437196318,0.138458045405841,0.138458045405841, +0.212074068789578,0.212074068789578,0.212095362128059,0.212013213113701,0.211855075907116,0.211657068453755,0.211458774608499,0.21129864686137,0.211208908287282,0.211208908287282, +0.315350919021734,0.315350919021734,0.315338301103038,0.315186478014964,0.314934139015101,0.314631307977114,0.31433190538055,0.314089534095947,0.313952343269156,0.313952343269156, +0.449986042434862,0.449986042434862,0.449918065432169,0.449663775183392,0.44928016973589,0.448835215805978,0.448397976159603,0.448039080011918,0.44783034341256,0.44783034341256, +0.61381521434423,0.61381521434423,0.613674812242223,0.613274797973881,0.612716380726307,0.612089993496325,0.61147413825389,0.61095164950948,0.610627222258678,0.610627222258678, +0.800533285149278,0.800533285149278,0.800339816875897,0.799718366410602,0.798933384919965,0.798091804471347,0.79725903978086,0.796506123863334,0.795962971634829,0.795962971634829, + +00:28:37, +0.0711185349453162,0.0711185349453162,0.0711648006943508,0.071162418155168,0.0711232199095578,0.0710626995599038,0.0709977088078027,0.0709439837892883,0.0709137587842547,0.0709137587842547, +0.0711185349453162,0.0711185349453162,0.0711648006943508,0.071162418155168,0.0711232199095578,0.0710626995599038,0.0709977088078027,0.0709439837892883,0.0709137587842547,0.0709137587842547, +0.0931232528721895,0.0931232528721895,0.0931678928800782,0.0931545696245899,0.0930976924825105,0.0930161775864789,0.0929306805483598,0.0928606455657097,0.0928213723554294,0.0928213723554294, +0.139095197422285,0.139095197422285,0.139133395029,0.139095240359302,0.139000313866404,0.138874396024792,0.138745760213007,0.138641382928728,0.138582992054669,0.138582992054669, +0.212212788543508,0.212212788543508,0.212234067976289,0.212151927127072,0.211993813660173,0.211795837974228,0.211597576635953,0.211437475523849,0.211347752072475,0.211347752072475, +0.315494856078853,0.315494856078853,0.315482219386104,0.315330423461618,0.315078144356769,0.314775390220573,0.314476065764772,0.314233758771118,0.314096604743956,0.314096604743956, +0.450119696275271,0.450119696275271,0.450051711371763,0.44979748445502,0.449413991778517,0.448969175349742,0.44853207376345,0.448173292207991,0.447964622617806,0.447964622617806, +0.613919492832951,0.613919492832951,0.613779111226034,0.6133792145066,0.612820975795594,0.612194795198059,0.611579145789211,0.611056832207295,0.610732513226155,0.610732513226155, +0.800590692859415,0.800590692859415,0.800397279549094,0.799776019749472,0.798991286444163,0.798149976318053,0.797317480535067,0.796564806736563,0.796021826696212,0.796021826696212, + +00:28:38, +0.0712198662401818,0.0712198662401818,0.071266153959648,0.0712637756100863,0.0712245673612297,0.071164027965324,0.0710990152480688,0.0710452714359226,0.0710150356893989,0.0710150356893989, +0.0712198662401818,0.0712198662401818,0.071266153959648,0.0712637756100863,0.0712245673612297,0.071164027965324,0.0710990152480688,0.0710452714359226,0.0710150356893989,0.0710150356893989, +0.0932336167790498,0.0932336167790498,0.0932782702457908,0.0932649494325279,0.0932080656658044,0.0931265381662038,0.0930410265031924,0.0929709789667932,0.092931698579481,0.092931698579481, +0.139220127856345,0.139220127856345,0.139258324964186,0.139220172276104,0.139125248840375,0.138999333986144,0.138870700576166,0.138766325008496,0.138707935078222,0.138707935078222, +0.212351468730359,0.212351468730359,0.212372734280262,0.212290601625156,0.212132511934126,0.211934568056943,0.211736339266317,0.211576264821627,0.21148655651075,0.21148655651075, +0.315638721774025,0.315638721774025,0.31562606634898,0.315474297606318,0.315222078400871,0.314919401164769,0.314620154845707,0.314377912138135,0.314240794906855,0.314240794906855, +0.450253262415678,0.450253262415678,0.45018526965236,0.44993110605035,0.449547726090109,0.449103047089987,0.448666083488768,0.448307416461249,0.448098813841251,0.448098813841251, +0.614023691199555,0.614023691199555,0.613883330099018,0.613483550849323,0.612925490540913,0.61229951641715,0.611684072682024,0.61116193412449,0.610837723326103,0.610837723326103, +0.800648052641445,0.800648052641445,0.800454694254443,0.799833624961165,0.79904913962918,0.798208099593006,0.797375872485191,0.796623440595505,0.796080632593387,0.796080632593387, + +00:28:39, +0.0713212390524241,0.0713212390524241,0.0713675487113831,0.0713651745597847,0.0713259563469131,0.071265397962672,0.071200363342229,0.0711466007878214,0.0711163543287724,0.0711163543287724, +0.0713212390524241,0.0713212390524241,0.0713675487113831,0.0713651745597847,0.0713259563469131,0.071265397962672,0.071200363342229,0.0711466007878214,0.0711163543287724,0.0711163543287724, +0.093344006032997,0.093344006032997,0.0933886729376665,0.0933753545814429,0.0933184642332915,0.0932369241905128,0.0931513979661626,0.0930813379283617,0.0930420503934472,0.0930420503934472, +0.139345054372643,0.139345054372643,0.139383250980047,0.139345100297793,0.139250179964738,0.13912426815642,0.138995637208234,0.13889126340603,0.138832874446844,0.138832874446844, +0.212490109368318,0.212490109368318,0.212511361058148,0.212429236626054,0.212271170746967,0.212073258719744,0.211875062517284,0.211715014772276,0.211625321619607,0.211625321619607, +0.31578251617862,0.31578251617862,0.315769842062973,0.315618100520302,0.315365941218553,0.31506334088074,0.31476417269428,0.314521994267829,0.314384913828634,0.314384913828634, +0.45038674096614,0.45038674096614,0.450318740383931,0.450064640079329,0.449681372780617,0.449236831136662,0.448800005445502,0.448441452881641,0.448232917192848,0.448232917192848, +0.614127809556977,0.614127809556977,0.613987468974062,0.613587807115019,0.613029925075378,0.612404157266878,0.611788919045773,0.611266955374652,0.610942852672208,0.610942852672208, +0.800705364567129,0.800705364567129,0.800512061063755,0.799891182117719,0.799106944547353,0.798266174368867,0.797434215704217,0.796682025513435,0.796139389399845,0.796139389399845, + +00:28:40, +0.0714226533076892,0.0714226533076892,0.0714689848752293,0.0714666149299274,0.0714273867922345,0.0713668094775182,0.0713017530157934,0.0712479717704447,0.0712177146278066,0.0712177146278066, +0.0714226533076892,0.0714226533076892,0.0714689848752293,0.0714666149299274,0.0714273867922345,0.0713668094775182,0.0713017530157934,0.0712479717704447,0.0712177146278066,0.0712177146278066, +0.0934544205739288,0.0934544205739288,0.0934991008956298,0.0934857850112392,0.0934288881248165,0.093347335599166,0.0932617948769404,0.0931917223900102,0.0931524277368808,0.0931524277368808, +0.139469976942144,0.139469976942144,0.139508173047563,0.139470024395309,0.13937510721034,0.139249198506344,0.139120570079801,0.139016198091811,0.138957810130957,0.138957810130957, +0.212628710475602,0.212628710475602,0.212649948328143,0.212567832147898,0.212409790116714,0.212211909980505,0.212013746406577,0.211853725393393,0.211764047416574,0.211764047416574, +0.315926239363939,0.315926239363939,0.315913546599323,0.31576183227474,0.315509732880898,0.315207209439457,0.314908119381348,0.314666005230966,0.314528961580006,0.314528961580006, +0.450520132036551,0.450520132036551,0.450452123676289,0.450198086651744,0.449814931959823,0.44937052759955,0.448933839743435,0.448575401578948,0.448366932782385,0.448366932782385, +0.614231848017951,0.614231848017951,0.614091527963856,0.613691983416455,0.613134279511903,0.612508717860321,0.6118936849937,0.611371896071168,0.61104790137795,0.61104790137795, +0.800762628708089,0.800762628708089,0.800569380048702,0.799948691291034,0.799164701270881,0.798324200718157,0.797492510264985,0.796740561563489,0.796198097188935,0.796198097188935, + +00:28:41, +0.0715241089316889,0.0715241089316889,0.0715704623769253,0.0715680966462444,0.071528858622886,0.0714682624354984,0.0714031841943373,0.0713493843093177,0.0713191165119983,0.0713191165119983, +0.0715241089316889,0.0715241089316889,0.0715704623769253,0.0715680966462444,0.071528858622886,0.0714682624354984,0.0714031841943373,0.0713493843093177,0.0713191165119983,0.0713191165119983, +0.0935648603418201,0.0935648603418201,0.0936095540596828,0.0935962406618987,0.0935393372803017,0.0934577723320009,0.0933722171752729,0.093302132291411,0.093262830549412,0.093262830549412, +0.139594895535891,0.139594895535891,0.139633091137791,0.139594944539666,0.139500030548102,0.139374125006712,0.139245499161534,0.139141129036398,0.139082742101057,0.139082742101057, +0.21276727207045,0.21276727207045,0.21278849610847,0.212706388208843,0.212548370061412,0.212350521857124,0.212152390951945,0.211992396702602,0.211902733919206,0.211902733919206, +0.316069891401218,0.316069891401218,0.316057180029203,0.315905492940734,0.315653453458918,0.315351006911825,0.315051994977702,0.314809945098245,0.314672938231619,0.314672938231619, +0.450653435736638,0.450653435736638,0.450585419639077,0.450331445877215,0.449948403737345,0.44950413658827,0.449067586492185,0.448709262662792,0.448500860719488,0.448500860719488, +0.614335806695007,0.614335806695007,0.614195507180883,0.613796079866196,0.613238553963195,0.612613198310355,0.611998370638843,0.611476756327221,0.611152869556609,0.611152869556609, +0.800819845135808,0.800819845135808,0.800626651280815,0.800006152552867,0.79922240987182,0.798382178713255,0.797550756240194,0.796799048818658,0.79625675603386,0.79625675603386, + +00:28:42, +0.0716256058502007,0.0716256058502007,0.0716719811422757,0.0716696196345316,0.0716303717646254,0.0715697567623141,0.0715046568035017,0.0714508383300309,0.07142055990691,0.07142055990691, +0.0716256058502007,0.0716256058502007,0.0716719811422757,0.0716696196345316,0.0716303717646254,0.0715697567623141,0.0715046568035017,0.0714508383300309,0.07142055990691,0.07142055990691, +0.093675325276723,0.093675325276723,0.0937200323699046,0.0937067214734801,0.0936498116397464,0.0935682343289322,0.0934826648009846,0.0934125675723138,0.0933732587707481,0.0933732587707481, +0.139719810124997,0.139719810124997,0.13975800522186,0.139719860701951,0.139624949949021,0.139499047628397,0.139370424424174,0.139266056210422,0.139207670327716,0.139207670327716, +0.212905794171129,0.212905794171129,0.212927004417376,0.212844904827072,0.21268691059913,0.21248909436753,0.212290996171164,0.212131028717558,0.212041381145086,0.212041381145086, +0.316213472361624,0.316213472361624,0.316200742423716,0.316049082589321,0.315797103023561,0.315494733368682,0.315195799554068,0.3149538139403,0.314816843854059,0.314816843854059, +0.450786652175965,0.450786652175965,0.450718628381775,0.450464717865196,0.450081788222641,0.44963765821228,0.449201245801206,0.448843036242629,0.448634701113618,0.448634701113618, +0.614439685700476,0.614439685700476,0.614299406737428,0.613900096576608,0.613342748541765,0.612717598729654,0.61210297609404,0.611581536255794,0.611257757321263,0.611257757321263, +0.800877013921628,0.800877013921628,0.800683874831489,0.800063565974838,0.799280070422089,0.798440108426402,0.797608953702403,0.796857487351794,0.796315366007685,0.796315366007685, + +00:28:43, +0.0717271439890677,0.0717271439890677,0.0717735410971507,0.0717711838206503,0.0717319261432761,0.0716712923837323,0.071606170768993,0.0715523337582405,0.0715220447381694,0.0715220447381694, +0.0717271439890677,0.0717271439890677,0.0717735410971507,0.0717711838206503,0.0717319261432761,0.0716712923837323,0.071606170768993,0.0715523337582405,0.0715220447381694,0.0715220447381694, +0.093785815318767,0.093785815318767,0.0938305357664516,0.0938172273861198,0.0937603111432272,0.0936787215299519,0.0935931376939774,0.0935230281725457,0.0934837123406742,0.0934837123406742, +0.139844720680652,0.139844720680652,0.139882915270975,0.139844772853326,0.139749865384167,0.139623966342343,0.139495345838534,0.13939097958459,0.139332594781578,0.139332594781578, +0.213044276795932,0.213044276795932,0.213065473273137,0.212983382020795,0.212825411747966,0.212627627529674,0.212429562082038,0.21226962145594,0.212179989111828,0.212179989111828, +0.316356982316258,0.316356982316258,0.316344233853901,0.31619260129147,0.315940681645707,0.315638388880799,0.315339533181106,0.315097611827698,0.314960678517842,0.314960678517842, +0.450919781463932,0.450919781463932,0.450851750013702,0.450597902724982,0.450215085524999,0.449771092580869,0.449334817779789,0.448976722427751,0.448768454074074,0.448768454074074, +0.614543485146487,0.614543485146487,0.614403226745574,0.614004033659852,0.61344686335992,0.61282191923069,0.612207501471926,0.611686235969666,0.611362564784787,0.611362564784787, +0.800934135136756,0.800934135136756,0.800741050771978,0.800120931628426,0.799337682993463,0.798497989929695,0.797667102724031,0.796915877235604,0.796373927183332,0.796373927183332, + +00:28:44, +0.0718287232741991,0.0718287232741991,0.0718751421674864,0.0718727891305279,0.0718335216847272,0.0717728692255859,0.0717077260165833,0.0716538705196683,0.0716235709314696,0.0716235709314696, +0.0718287232741991,0.0718287232741991,0.0718751421674864,0.0718727891305279,0.0718335216847272,0.0717728692255859,0.0717077260165833,0.0716538705196683,0.0716235709314696,0.0716235709314696, +0.0938963304081588,0.0938963304081588,0.0939410641895573,0.0939277583400308,0.0938708357308977,0.093789233875129,0.0937036357942304,0.0936335140320111,0.0935941911990524,0.0935941911990524, +0.139969627174118,0.139969627174118,0.140007821256412,0.139969680965025,0.139874776824681,0.139748881119569,0.139620263375503,0.139515899129683,0.139457515433364,0.139457515433364, +0.213182719963178,0.213182719963178,0.213203902694051,0.213121819808243,0.212963873526043,0.212766121361537,0.212568088702397,0.212408174935455,0.212318557837067,0.212318557837067, +0.31650042133615,0.31650042133615,0.316487654390729,0.316336049118081,0.31608418939617,0.315781973518882,0.31548319592941,0.315241338830944,0.315104442293421,0.315104442293421, +0.451052823709774,0.451052823709774,0.450984784644008,0.450731000565699,0.45034829575355,0.449904439803168,0.449468302537062,0.449110321327291,0.448902119709993,0.448902119709993, +0.614647205144967,0.614647205144967,0.614506967317205,0.614107891227893,0.613550898529766,0.612926159925736,0.612311946884939,0.611790855581417,0.611467292059857,0.611467292059857, +0.800991208852258,0.800991208852258,0.800798179173398,0.800178249584973,0.799395247657583,0.798555823295094,0.797725203377354,0.796974218542659,0.796432439633581,0.796432439633581, + +00:28:45, +0.0719303436315696,0.0719303436315696,0.0719767842792848,0.0719744354901573,0.0719351583149336,0.0718744872137731,0.0718093224721104,0.0717554485401014,0.0717251384125695,0.0717251384125695, +0.0719303436315696,0.0719303436315696,0.0719767842792848,0.0719744354901573,0.0719351583149336,0.0718744872137731,0.0718093224721104,0.0717554485401014,0.0717251384125695,0.0717251384125695, +0.0940068704851819,0.0940068704851819,0.0940516175795323,0.0940383142755034,0.0939813853429887,0.0938997713046099,0.0938141590417996,0.0937440250906913,0.093704695285822,0.093704695285822, +0.140094529576729,0.140094529576729,0.14013272314952,0.140094585008355,0.139999684241781,0.139873791931169,0.139745177006045,0.139640814816555,0.139582432253868,0.139582432253868, +0.213321123691211,0.213321123691211,0.213342292698444,0.213260218207679,0.213102295951509,0.212904575881125,0.212706576050098,0.212546689173838,0.212457087338471,0.212457087338471, +0.316643789492268,0.316643789492268,0.316631004105101,0.316479426139991,0.316227626345695,0.315925487353569,0.315626787869507,0.315384995020473,0.315248135251184,0.315248135251184, +0.451185779022563,0.451185779022563,0.451117732381685,0.450864011496313,0.450481419017256,0.450037699988143,0.449601700181992,0.449243833050216,0.449035698130349,0.449035698130349, +0.614750845807647,0.614750845807647,0.614610628564005,0.614211669392493,0.613654854163211,0.613030320926863,0.612416312445311,0.611895395203426,0.611571939258946,0.611571939258946, +0.801048235139063,0.801048235139063,0.800855260106727,0.800235519915681,0.799452764485946,0.798613608594418,0.797783255734511,0.797032511345386,0.796490903431072,0.796490903431072, + +00:28:46, +0.0720320049872201,0.0720320049872201,0.0720784673586138,0.0720761228255977,0.0720368359599163,0.0719761462742583,0.0719109600614776,0.0718570677453929,0.0718267471072937,0.0718267471072937, +0.0720320049872201,0.0720320049872201,0.0720784673586138,0.0720761228255977,0.0720368359599163,0.0719761462742583,0.0719109600614776,0.0718570677453929,0.0718267471072937,0.0718267471072937, +0.0941174354901971,0.0941174354901971,0.0941621958767641,0.0941488951329049,0.0940919599198078,0.0940103337586176,0.0939247073768184,0.0938545612886449,0.0938152245409994,0.0938152245409994, +0.140219427859896,0.140219427859896,0.140257620921724,0.140219484954699,0.140124587606757,0.13999869874831,0.139870086701195,0.139765726616135,0.139707345213958,0.139707345213958, +0.213459487998399,0.213459487998399,0.213480643304667,0.213398577237386,0.21324067904254,0.213042991106468,0.212845024143025,0.21268516418885,0.212595577633731,0.212595577633731, +0.316787086855509,0.316787086855509,0.316774283067855,0.316622732427965,0.316370992564963,0.316068930455434,0.315770309071858,0.315528580466658,0.315391757461452,0.315391757461452, +0.451318647511207,0.451318647511207,0.451250593335557,0.450996935625625,0.450614455424919,0.450170873244596,0.44973501082338,0.449377257705332,0.449169189443953,0.449169189443953, +0.614854407246054,0.614854407246054,0.614714210597456,0.614315368265215,0.613758730371961,0.613134402345944,0.612520598265078,0.611999854947871,0.611676506494328,0.611676506494328, +0.801105214067962,0.801105214067962,0.800912293642807,0.800292742691615,0.799510233549915,0.798671345899348,0.797841259867498,0.797090755716072,0.796549318648304,0.796549318648304, + +00:28:47, +0.0721337072672572,0.0721337072672572,0.0721801913316071,0.0721778510629739,0.0721385545457617,0.0720778463330716,0.0720126387106543,0.0719587280614614,0.0719283969415322,0.0719283969415322, +0.0721337072672572,0.0721337072672572,0.0721801913316071,0.0721778510629739,0.0721385545457617,0.0720778463330716,0.0720126387106543,0.0719587280614614,0.0719283969415322,0.0719283969415322, +0.094228025363642,0.094228025363642,0.094272799021717,0.0942595008526794,0.0942025594017398,0.0941209211774524,0.0940352807394969,0.0939651225660076,0.0939257789046783,0.0939257789046783, +0.140344321995099,0.140344321995099,0.140382514544519,0.14034438077551,0.140249486890971,0.140123601542229,0.139994992432064,0.139890634499426,0.139832254284576,0.139832254284576, +0.213597812903138,0.213597812903138,0.213618954531094,0.213536896915674,0.213379022817335,0.213181367055625,0.212983432999085,0.212823599998279,0.212734028740566,0.212734028740566, +0.316930313496704,0.316930313496704,0.316917491349759,0.316765968052704,0.316514288124586,0.316212302894982,0.31591375960686,0.315672095239804,0.315535308994481,0.315535308994481, +0.451451429284451,0.451451429284451,0.451383367614287,0.451129773062276,0.450747405085179,0.450303959681168,0.449868234569869,0.449510595401283,0.449302593759455,0.449302593759455, +0.614957889571518,0.614957889571518,0.614817713528843,0.614418987957424,0.613862527267525,0.61323840429465,0.612624804456076,0.612104234926732,0.611780993878078,0.611780993878078, +0.801162145709609,0.801162145709609,0.80096927985234,0.800349917983703,0.799567654920711,0.798729035281427,0.797899215848175,0.797148951726866,0.796607685357636,0.796607685357636, + +00:28:48, +0.0722354503978537,0.0722354503978537,0.0722819561244646,0.0722796201284769,0.0722403139986227,0.0721795873163089,0.0721143583456754,0.0720604294142913,0.0720300878412408,0.0720300878412408, +0.0722354503978537,0.0722354503978537,0.0722819561244646,0.0722796201284769,0.0722403139986227,0.0721795873163089,0.0721143583456754,0.0720604294142913,0.0720300878412408,0.0720300878412408, +0.0943386400460311,0.0943386400460311,0.0943834269549323,0.0943701313753478,0.094313183729246,0.0942315335014913,0.0941458790701222,0.0940757088629919,0.094036358317029,0.094036358317029, +0.140469211953893,0.140469211953893,0.140507403989474,0.140469272442315,0.140374382065859,0.14024850028424,0.140119894169833,0.140015538437503,0.139957159436737,0.139957159436737, +0.213736098423846,0.213736098423846,0.213757226396127,0.21367517726088,0.213517327294118,0.213319703746678,0.213121802636216,0.212961996619937,0.212872440676723,0.212872440676723, +0.317073469486615,0.317073469486615,0.317060629021513,0.316909133084841,0.31665751309511,0.316355604742653,0.316057139544841,0.31581553941015,0.315678789920464,0.315678789920464, +0.451584124450879,0.451584124450879,0.451516055326378,0.45126252391474,0.450880268106512,0.450436959406339,0.450001371529936,0.449643846246551,0.449435911185345,0.449435911185345, +0.615061292895172,0.615061292895172,0.614921137469254,0.614522528580286,0.613966244961211,0.613342326884457,0.612728931129941,0.612208535251789,0.611885401522071,0.611885401522071, +0.801219030134521,0.801219030134521,0.801026218805893,0.800407045862734,0.799625028669419,0.798786676812056,0.79795712374826,0.797207099449776,0.796666003631287,0.796666003631287, + +00:28:49, +0.0723372343052485,0.0723372343052485,0.0723837616634522,0.0723814299483636,0.0723421142447179,0.0722813691501321,0.0722161188926418,0.0721621717299328,0.0721318197324413,0.0721318197324413, +0.0723372343052485,0.0723372343052485,0.0723837616634522,0.0723814299483636,0.0723421142447179,0.0722813691501321,0.0722161188926418,0.0721621717299328,0.0721318197324413,0.0721318197324413, +0.0944492794779557,0.0944492794779557,0.094494079617028,0.0944807866415077,0.0944238328428648,0.0943421706711881,0.0942565023090585,0.0941863201198873,0.094146962718299,0.094146962718299, +0.140594097707904,0.140594097707904,0.14063228922823,0.140594159926713,0.14049927310293,0.140373394945729,0.140244791885759,0.140140438401516,0.140082060641531,0.140082060641531, +0.213874344578967,0.213874344578967,0.21389545891819,0.213813418291362,0.21365559249114,0.213458001197736,0.213260133072377,0.213100354071665,0.213010813459972,0.213010813459972, +0.317216554895938,0.317216554895938,0.317203696153751,0.317052227594941,0.316800667547013,0.316498836068818,0.316200448956066,0.315958913047873,0.315822200309524,0.315822200309524, +0.451716733118909,0.451716733118909,0.451648656580165,0.451395188291334,0.451013044597233,0.450569872528424,0.450134421811899,0.449777010349458,0.449569141829948,0.449569141829948, +0.615164617327948,0.615164617327948,0.615024482529576,0.614625990244767,0.614069883564131,0.613446170226638,0.612832978398111,0.612312756034623,0.611989729537983,0.611989729537983, +0.80127586741308,0.80127586741308,0.801083110573896,0.80046412639936,0.799682354866987,0.798844270562501,0.798014983639336,0.797265198956672,0.796724273541336,0.796724273541336, + +00:28:50, +0.0724390589157463,0.0724390589157463,0.072485607874902,0.072483280448957,0.0724439552103318,0.072383191760769,0.0723179202777204,0.072263954934502,0.0722335925412211,0.0722335925412211, +0.0724390589157463,0.0724390589157463,0.072485607874902,0.072483280448957,0.0724439552103318,0.072383191760769,0.0723179202777204,0.072263954934502,0.0722335925412211,0.0722335925412211, +0.0945599436000839,0.0945599436000839,0.0946047569486989,0.0945914665918336,0.0945345066832109,0.0944528326270735,0.0943671503967464,0.0942969562770601,0.0942575920488126,0.0942575920488126, +0.140718979228833,0.140718979228833,0.140757170232501,0.140719043200375,0.140624159973763,0.140498285498153,0.140369685551172,0.140265334362686,0.140206957870119,0.140206957870119, +0.21401255138697,0.21401255138697,0.214033652115732,0.213951620025504,0.213793818426675,0.213596259426932,0.213398424325555,0.213238672371328,0.213149147108112,0.213149147108112, +0.317359569795302,0.317359569795302,0.31734669281704,0.317195251653504,0.316943751550709,0.316641996943786,0.316343687910731,0.316102216223079,0.315965540231723,0.315965540231723, +0.4518492553968,0.4518492553968,0.451781171483826,0.451527766300208,0.451145734665493,0.450702699155579,0.450267385523914,0.449910087818163,0.449702285801432,0.449702285801432, +0.615267862980581,0.615267862980581,0.615127748820501,0.614729373061639,0.614173443187198,0.613549934432272,0.612936946371825,0.612416897386618,0.612093978037293,0.612093978037293, +0.80133265761553,0.80133265761553,0.801139955226643,0.800521159664099,0.799739633584224,0.79890181660389,0.798072795592844,0.797323250319284,0.796782495159725,0.796782495159725, + +00:28:51, +0.0725409241557182,0.0725409241557182,0.072587494685212,0.0725851715566464,0.0725458368218153,0.0724850550745137,0.0724197624271439,0.0723657789541809,0.0723354061937334,0.0723354061937334, +0.0725409241557182,0.0725409241557182,0.072587494685212,0.0725851715566464,0.0725458368218153,0.0724850550745137,0.0724197624271439,0.0723657789541809,0.0723354061937334,0.0723354061937334, +0.0946706323531605,0.0946706323531605,0.0947154588907163,0.0947021711670763,0.094645205190976,0.0945635193097547,0.0944778232737035,0.0944076172749534,0.0943682462489708,0.0943682462489708, +0.140843856488449,0.140843856488449,0.140882046974071,0.140843922235044,0.140749042650013,0.140623171913042,0.140494575137472,0.140390226292309,0.140331851093736,0.140331851093736, +0.214150718866346,0.214150718866346,0.214171806007227,0.214089782481716,0.213932005119022,0.213734478452424,0.213536676413762,0.213376951536818,0.213287441638967,0.213287441638967, +0.317502514255268,0.317502514255268,0.317489619081878,0.317338205330959,0.317086765176541,0.316785087437795,0.316486856478967,0.316245449005812,0.316108809757053,0.316108809757053, +0.451981691392648,0.451981691392648,0.451913600145375,0.451660258049354,0.451278338419284,0.450835439395797,0.450400262773976,0.450043078760665,0.449835343207801,0.449835343207801, +0.61537102996361,0.61537102996361,0.615230936452521,0.614832677141474,0.614276923941127,0.613653619612238,0.613040835162126,0.612520959418959,0.612198147131281,0.612198147131281, +0.80138940081198,0.80138940081198,0.801196752834291,0.800578145727329,0.799796864891804,0.798959315007212,0.798130559680088,0.797381253609204,0.796840668558254,0.796840668558254, + +00:28:52, +0.0726428299516015,0.0726428299516015,0.0726894220208468,0.0726871031978871,0.0726477590055853,0.072586959017726,0.0725216452672111,0.0724676437152174,0.0724372606161977,0.0724372606161977, +0.0726428299516015,0.0726428299516015,0.0726894220208468,0.0726871031978871,0.0726477590055853,0.072586959017726,0.0725216452672111,0.0724676437152174,0.0724372606161977,0.0724372606161977, +0.0947813456780066,0.0947813456780066,0.0948261853839279,0.0948129003080635,0.0947559283069282,0.0946742306599156,0.0945885208805239,0.0945183030540868,0.0944789252592515,0.0944789252592515, +0.140968729458598,0.140968729458598,0.141006919424799,0.140968797002537,0.140873921103403,0.140748054162,0.140619460616133,0.140515114161751,0.140456740283689,0.140456740283689, +0.214288847035613,0.214288847035613,0.214309920611172,0.21422790567843,0.214070152586504,0.213872658292396,0.213674889355035,0.213515191586051,0.213425697070385,0.213425697070385, +0.317645388346327,0.317645388346327,0.317632475018697,0.317481088697671,0.317229708494788,0.316928107621019,0.316629954730841,0.316388611466049,0.316252008955445,0.316252008955445, +0.452114041214386,0.452114041214386,0.452045942672663,0.4517926636466,0.451410855966436,0.450968093356912,0.450533053669918,0.450175983284802,0.4499683141569,0.4499683141569, +0.615474118387375,0.615474118387375,0.615334045535934,0.614935902594648,0.614380325936437,0.613757225877218,0.613144644879858,0.612624942242633,0.612302236931028,0.612302236931028, +0.801446097072402,0.801446097072402,0.801253503466862,0.800635084659294,0.799854048860263,0.799016765843321,0.798188275972237,0.797439208897887,0.796898793808587,0.796898793808587, + +00:28:53, +0.0727447762298996,0.0727447762298996,0.0727913898083368,0.0727890752992008,0.0727497216881248,0.072688903516832,0.0726235687242869,0.0725695491439256,0.0725391557348992,0.0725391557348992, +0.0727447762298996,0.0727447762298996,0.0727913898083368,0.0727890752992008,0.0727497216881248,0.072688903516832,0.0726235687242869,0.0725695491439256,0.0725391557348992,0.0725391557348992, +0.0948920835155201,0.0948920835155201,0.0949369363692583,0.094923653955699,0.094866675971912,0.0947849666183166,0.0946992431578784,0.0946290135550568,0.094589629020209,0.094589629020209, +0.141093598111193,0.141093598111193,0.141131787556613,0.14109366747474,0.140998795305731,0.140872932216701,0.140744341958702,0.140639997942454,0.14058162541136,0.14058162541136, +0.214426935913311,0.214426935913311,0.214447995946089,0.214365989634102,0.214208260847471,0.214010798965054,0.213813063167436,0.213653392536969,0.213563913420242,0.213563913420242, +0.317788192138907,0.317788192138907,0.31777526069786,0.317623901823937,0.31737258157566,0.317071057563564,0.31677298273635,0.316531703673701,0.31639513789676,0.31639513789676, +0.452246304969787,0.452246304969787,0.452178199173383,0.451924983199614,0.451543287414617,0.451100661146594,0.450665758319416,0.450308801498253,0.450101198756415,0.450101198756415, +0.615577128362022,0.615577128362022,0.615437076180839,0.61503904953134,0.614483649283449,0.613860753337699,0.61324837563567,0.612728845968433,0.612406247547422,0.612406247547422, +0.801502746466636,0.801502746466636,0.801310207194244,0.800691976530102,0.799911185560001,0.799074169182933,0.798245944540319,0.797497116256648,0.796956870982249,0.796956870982249, + +00:28:54, +0.0728467629171822,0.0728467629171822,0.0728933979742792,0.0728910877871753,0.0728517247959833,0.0727908884983241,0.0727255327248022,0.0726714951666854,0.072641091476189,0.072641091476189, +0.0728467629171822,0.0728467629171822,0.0728933979742792,0.0728910877871753,0.0728517247959833,0.0727908884983241,0.0727255327248022,0.0726714951666854,0.072641091476189,0.072641091476189, +0.0950028458066754,0.0950028458066754,0.0950477117877081,0.0950344320509634,0.0949774481268486,0.0948957271257946,0.0948099900465142,0.0947397487185363,0.0947003574724744,0.0947003574724744, +0.141218462418221,0.141218462418221,0.141256651341513,0.141218533623611,0.141123665228865,0.140997806048891,0.140869219136797,0.14076487760593,0.140706506448201,0.140706506448201, +0.214564985518005,0.214564985518005,0.214586032030522,0.214504034367213,0.214346329920292,0.214148900488631,0.213951197869051,0.213791554407541,0.213702090706438,0.213702090706438, +0.317930925703365,0.317930925703365,0.317917976189664,0.317766644779985,0.317515384489302,0.31721393733547,0.316915940565428,0.316674725698614,0.316538196650797,0.316538196650797, +0.452378482766461,0.452378482766461,0.452310369755064,0.452057216815903,0.451675632871336,0.451233142872357,0.45079837682998,0.450441533508534,0.450233997113868,0.450233997113868, +0.6156800599975,0.6156800599975,0.615540028497143,0.615142118061533,0.614586894092291,0.61396420210397,0.613352027540012,0.612832670706952,0.61251017909115,0.61251017909115, +0.801559349064384,0.801559349064384,0.801366864086188,0.800748821409727,0.799968275061284,0.799131525096627,0.798303565455228,0.797554975756667,0.797014900150627,0.797014900150627, + +00:28:55, +0.0729487899400855,0.0729487899400855,0.0729954464453371,0.0729931405884648,0.0729537682557763,0.0728929138887608,0.0728275371952542,0.072773481709943,0.0727430677664847,0.0727430677664847, +0.0729487899400855,0.0729487899400855,0.0729954464453371,0.0729931405884648,0.0729537682557763,0.0728929138887608,0.0728275371952542,0.072773481709943,0.0727430677664847,0.0727430677664847, +0.0951136324925231,0.0951136324925231,0.0951585115803546,0.0951452345349132,0.0950882447127354,0.0950065121232627,0.0949207614872551,0.0948505084852747,0.0948111105567551,0.0948111105567551, +0.14134332235174,0.14134332235174,0.141381510751572,0.141343395421181,0.141248530844744,0.141122675630389,0.140994092122108,0.140889753123762,0.140831383365736,0.140831383365736, +0.21470299586828,0.21470299586828,0.21472402888304,0.214642039896266,0.214484359823363,0.214286962881383,0.214089293477992,0.213929677215756,0.213840228946897,0.213840228946897, +0.318073589109993,0.318073589109993,0.318060621564339,0.317909317635978,0.31765811730579,0.317356747006711,0.317058828287941,0.316817677610568,0.316681185287288,0.316681185287288, +0.45251057471186,0.45251057471186,0.452442454525076,0.452189364602814,0.451807892443939,0.451365538641549,0.450930909308966,0.450574179423005,0.450366709336627,0.450366709336627, +0.615782913403562,0.615782913403562,0.615642902594554,0.615245108295017,0.614690060472892,0.614067572286125,0.613455600703141,0.612936416568589,0.612614031672706,0.612614031672706, +0.801615904935216,0.801615904935216,0.801423474212312,0.800805619368006,0.80002531743424,0.799188833654847,0.79836113878772,0.797612787468985,0.797072881384971,0.797072881384971, + +00:28:56, +0.073050857225312,0.073050857225312,0.0730975351482402,0.0730952336297901,0.0730558519941857,0.0729949796147669,0.0729295820622063,0.0728755087002107,0.0728450845322697,0.0728450845322697, +0.073050857225312,0.073050857225312,0.0730975351482402,0.0730952336297901,0.0730558519941857,0.0729949796147669,0.0729295820622063,0.0728755087002107,0.0728450845322697,0.0728450845322697, +0.0952244435141902,0.0952244435141902,0.095269335688351,0.0952560613486816,0.0951990656706459,0.0951173215517107,0.0950315574210011,0.0949612927960978,0.0949218882138351,0.0949218882138351, +0.141468177883879,0.141468177883879,0.141506365758932,0.141468252839549,0.14137339212538,0.141247540933084,0.141118960886397,0.141014624467608,0.140956256135562,0.140956256135562, +0.21484096698275,0.21484096698275,0.214861986522234,0.214780006239788,0.214622350575103,0.214424986161589,0.214227350012394,0.214067760979633,0.21397832815957,0.21397832815957, +0.318216182429013,0.318216182429013,0.318203196892046,0.318051920462011,0.317800780095135,0.317499486647193,0.317201645973689,0.316960559479275,0.316824103875899,0.316824103875899, +0.452642580913274,0.452642580913274,0.452574453590627,0.452321426667532,0.451940066239613,0.451497848561363,0.451063355863566,0.450706739348864,0.450499335531895,0.450499335531895, +0.615885688689765,0.615885688689765,0.615745698582586,0.615348020341383,0.614793148534987,0.614170863994062,0.613559095235118,0.613040083663547,0.612717805402387,0.612717805402387, +0.801672414148566,0.801672414148566,0.8014800376421,0.800862370474642,0.800082312748862,0.799246094927902,0.798418664608415,0.797670551464508,0.797130814756393,0.797130814756393, + +00:28:57, +0.0731529646996306,0.0731529646996306,0.0731996640097847,0.0731973668379379,0.0731579759379599,0.0730970856030334,0.0730316672522879,0.0729775760640669,0.0729471417000936,0.0729471417000936, +0.0731529646996306,0.0731529646996306,0.0731996640097847,0.0731973668379379,0.0731579759379599,0.0730970856030334,0.0730316672522879,0.0729775760640669,0.0729471417000936,0.0729471417000936, +0.0953352788128798,0.0953352788128798,0.095380184052927,0.0953669124334777,0.0953099109417301,0.0952281553522043,0.0951423777887286,0.0950721015919079,0.0950326903845747,0.0950326903845747, +0.141593028986838,0.141593028986838,0.141631216335806,0.141593105850889,0.141498249042854,0.141372401928936,0.141243825401497,0.141139491609195,0.141081124729349,0.141081124729349, +0.214978898880046,0.214978898880046,0.214999904966718,0.21491793341633,0.214760302193955,0.214562970347553,0.214365367490416,0.214205805717211,0.214116388362431,0.214116388362431, +0.318358705730582,0.318358705730582,0.318345702242878,0.318194453328111,0.31794337292728,0.317642156326757,0.317344393692407,0.317103371374386,0.316966952486231,0.316966952486231, +0.45277450147783,0.45277450147783,0.452706367058768,0.452453403117084,0.452072154365387,0.45163007273883,0.451195716600813,0.45083921339315,0.45063187580672,0.45063187580672, +0.615988385965474,0.615988385965474,0.61584841657056,0.61545085431003,0.614896158388117,0.614274077337485,0.613662511245806,0.613143672101834,0.612821500390296,0.612821500390296, +0.801728876773736,0.801728876773736,0.8015365544449,0.800919074799204,0.800139261075012,0.799303308985965,0.798476142987797,0.797728267814004,0.79718870033587,0.79718870033587, + +00:28:58, +0.0732551122898766,0.0732551122898766,0.0733018329568332,0.0732995401397619,0.0732601400139136,0.0731992317803178,0.0731337926921951,0.0730796837281565,0.0730492391965723,0.0730492391965723, +0.0732551122898766,0.0732551122898766,0.0733018329568332,0.0732995401397619,0.0732601400139136,0.0731992317803178,0.0731337926921951,0.0730796837281565,0.0730492391965723,0.0730492391965723, +0.0954461383298715,0.0954461383298715,0.0954910566153883,0.0954777877305868,0.095420780467214,0.0953390134658856,0.0952532225314902,0.0951829348136833,0.0951435170099105,0.0951435170099105, +0.141717875632888,0.141717875632888,0.141756062454479,0.141717954427443,0.14162310156932,0.141497258589979,0.141368685639313,0.141264354520322,0.141205989118835,0.141205989118835, +0.215116791578827,0.215116791578827,0.21513778423513,0.215055821444464,0.214898214698383,0.214700915457603,0.214503345930242,0.214343811446557,0.21425440957348,0.21425440957348, +0.318501159084786,0.318501159084786,0.318488137686864,0.318336916304237,0.318085895872099,0.317784756115177,0.317487071513762,0.317246113365481,0.317109731187818,0.317109731187818, +0.4529063365125,0.4529063365125,0.452838195036385,0.452585294058334,0.452204156928127,0.451762211280821,0.451327991627584,0.450971601662743,0.450764330267988,0.450764330267988, +0.616091005339859,0.616091005339859,0.6159510566676,0.615553610310163,0.614999090141627,0.614377212425904,0.613765848844876,0.613247181993263,0.612925116746339,0.612925116746339, +0.801785292879892,0.801785292879892,0.801593024689928,0.800975732411128,0.800196162482412,0.799360475899072,0.798533573996215,0.797785936588106,0.797246538194241,0.797246538194241, + +00:28:59, +0.073357299922952,0.073357299922952,0.0734040419163148,0.073401753462182,0.073362344148928,0.0733014180734439,0.07323595830869,0.0731818316191904,0.073151376948388,0.073151376948388, +0.073357299922952,0.073357299922952,0.0734040419163148,0.073401753462182,0.073362344148928,0.0733014180734439,0.07323595830869,0.0731818316191904,0.073151376948388,0.073151376948388, +0.0955570220065208,0.0955570220065208,0.0956019533171167,0.0955886871813702,0.0955316741883997,0.0954498958339727,0.0953640915904146,0.0952937924024788,0.0952543680308554,0.0952543680308554, +0.141842717794371,0.141842717794371,0.141880904087306,0.141842798541522,0.141747949677,0.141622110888313,0.141493541571821,0.14138921317286,0.141330849275832,0.141330849275832, +0.215254645097771,0.215254645097771,0.21527562434613,0.215193670342786,0.215036088106877,0.214838821510088,0.214641285350079,0.21448177818576,0.214392391810739,0.214392391810739, +0.318643542561648,0.318643542561648,0.318630503293961,0.318479309460284,0.318228348999403,0.317927286082158,0.317629679507357,0.317388785522076,0.317252440050131,0.317252440050131, +0.453038086124091,0.453038086124091,0.452969937630209,0.452717099597991,0.452336074034542,0.45189426429405,0.451460181050593,0.451103904264364,0.45089669902243,0.45089669902243, +0.616193546921894,0.616193546921894,0.61605361898264,0.615656288450792,0.615101943904671,0.614480269368632,0.613869108141806,0.613350613447452,0.613028654580228,0.613028654580228, +0.801841662536069,0.801841662536069,0.801649448446268,0.801032343379713,0.800253017040653,0.799417595737127,0.798590957703882,0.797843557857311,0.79730432840221,0.79730432840221, + +00:29:00, +0.0734595275258252,0.0734595275258252,0.0735062908152251,0.0735040067321847,0.0734645882699508,0.0734036444093021,0.0733381640286013,0.0732840196639459,0.0732535548822891,0.0732535548822891, +0.0734595275258252,0.0734595275258252,0.0735062908152251,0.0735040067321847,0.0734645882699508,0.0734036444093021,0.0733381640286013,0.0732840196639459,0.0732535548822891,0.0732535548822891, +0.0956679297842591,0.0956679297842591,0.09571287409957,0.0956996107272653,0.0956425920466653,0.0955608023977598,0.0954749849067069,0.0954046742994251,0.0953652433884984,0.0953652433884984, +0.141967555443697,0.141967555443697,0.142005741206711,0.141967638165512,0.141872793338189,0.141746958796113,0.141618393171066,0.14151406753875,0.141455705172224,0.141455705172224, +0.215392459455581,0.215392459455581,0.2154134253184,0.215331480129915,0.215173922437947,0.214976688523382,0.214779185768157,0.214619705952932,0.214530335092256,0.214530335092256, +0.31878585623112,0.31878585623112,0.318772799134062,0.318621632866076,0.318370732378933,0.318069746297341,0.317772217742727,0.317531387913624,0.317395079142573,0.317395079142573, +0.453169750419255,0.453169750419255,0.453101594946809,0.4528488198426,0.452467905791181,0.45202623188507,0.451592284976399,0.451236121304578,0.451028982176614,0.451028982176614, +0.616296010820362,0.616296010820362,0.616156103624418,0.615758888840734,0.615204719786206,0.614583248274792,0.613972289245877,0.613453966573827,0.613132114001484,0.613132114001484, +0.801897985811168,0.801897985811168,0.801705825782868,0.801088907774129,0.800309824819192,0.799474668569899,0.798648294180877,0.79790113169198,0.797362071030344,0.797362071030344, + +00:29:01, +0.0735617950255313,0.0735617950255313,0.0736085795806265,0.0736062998768231,0.0735668723039963,0.0735059107148492,0.073440409778824,0.073386247789267,0.0733557729250904,0.0733557729250904, +0.0735617950255313,0.0735617950255313,0.0736085795806265,0.0736062998768231,0.0735668723039963,0.0735059107148492,0.073440409778824,0.073386247789267,0.0733557729250904,0.0733557729250904, +0.0957788616045941,0.0957788616045941,0.0958238189042819,0.0958105583097853,0.0957535339834649,0.095671733098617,0.0955859024216478,0.0955155804457291,0.0954761430240045,0.0954761430240045, +0.142092388553349,0.142092388553349,0.142130573785189,0.142092473271864,0.141997632525251,0.141871802285622,0.141743240409167,0.141638917590006,0.141580556779964,0.141580556779964, +0.21553023467098,0.21553023467098,0.215551187170645,0.215469250824492,0.215311717710127,0.215114516515883,0.214917047202732,0.214757594766211,0.214668239436102,0.214668239436102, +0.318928100163088,0.318928100163088,0.31891502527699,0.318763886591371,0.318513046080363,0.318212136830301,0.317914686289341,0.317673920609507,0.317537648534482,0.317537648534482, +0.453301329504481,0.453301329504481,0.453233167092596,0.452980454898549,0.452599652304433,0.452158114160276,0.451724303511398,0.451368252889788,0.451161179836954,0.451161179836954, +0.616398397143852,0.616398397143852,0.61625851070148,0.615861411588613,0.615307417894998,0.614686149253312,0.614075392266179,0.61355724148162,0.613235495119431,0.613235495119431, +0.80195426277396,0.80195426277396,0.801762156768546,0.801145425663411,0.800366585887353,0.799531694467022,0.798705583497143,0.797958658162341,0.797419766149076,0.797419766149076, + +00:29:02, +0.0736641023491721,0.0736641023491721,0.073710908139648,0.073708632823217,0.0736691961781452,0.0736082169171085,0.0735426954863197,0.0734885159220637,0.0734580310036731,0.0734580310036731, +0.0736641023491721,0.0736641023491721,0.073710908139648,0.073708632823217,0.0736691961781452,0.0736082169171085,0.0735426954863197,0.0734885159220637,0.0734580310036731,0.0734580310036731, +0.095889817409109,0.095889817409109,0.095934787672862,0.0959215298705194,0.0958644999403283,0.0957826878779905,0.0956968440765942,0.0956265107826737,0.095587066878615,0.095587066878615, +0.142217217095878,0.142217217095878,0.142255401795306,0.142217303833103,0.14212246721062,0.141996641329155,0.14186808325831,0.141763763298711,0.141705404071075,0.141705404071075, +0.215667970762716,0.215667970762716,0.21568890992159,0.215606982445178,0.215449473941973,0.215252305506008,0.215054869672079,0.214895444643756,0.214806104860371,0.214806104860371, +0.31907027442737,0.31907027442737,0.319057181792503,0.31890607070586,0.318655290173302,0.318354457750543,0.318057085216602,0.317816383679044,0.31768014829513,0.31768014829513, +0.453432823486102,0.453432823486102,0.453364654173822,0.453112004872069,0.45273131368053,0.452289911225904,0.451856236761833,0.451500299126242,0.451293292109704,0.451293292109704, +0.616500706000761,0.616500706000761,0.61636084032218,0.615963856802861,0.61541003833962,0.614788972412928,0.614178417311609,0.613660438279867,0.613338798043202,0.613338798043202, +0.802010493493079,0.802010493493079,0.801818441471987,0.801201897116461,0.800423300314325,0.799588673497997,0.798762825722491,0.798016137338485,0.797477413828703,0.797477413828703, + +00:29:03, +0.0737664494239158,0.0737664494239158,0.0738132764194852,0.0738110054985528,0.0737715598195451,0.0737105629431699,0.0736450210781164,0.0735908239893126,0.0735603290449849,0.0735603290449849, +0.0737664494239158,0.0737664494239158,0.0738132764194852,0.0738110054985528,0.0737715598195451,0.0737105629431699,0.0736450210781164,0.0735908239893126,0.0735603290449849,0.0735603290449849, +0.0960007971394632,0.0960007971394632,0.0960457803469957,0.0960325253511325,0.0959754898588613,0.0958936666774021,0.0958078098129788,0.0957374652516176,0.0956980148936469,0.0956980148936469, +0.142342041043907,0.142342041043907,0.142380225209697,0.142342129821821,0.1422472973668,0.142121475899095,0.141992921690754,0.141888604637018,0.141830247017654,0.141830247017654, +0.215805667749555,0.215805667749555,0.215826593589986,0.215744675010658,0.215587191152063,0.2153900555122,0.215192653194499,0.215033255603753,0.214943931383183,0.214943931383183, +0.319212379093716,0.319212379093716,0.31919926875029,0.319048185279166,0.318797464727289,0.318496709127507,0.318199414593848,0.317958777191489,0.317822578493724,0.317822578493724, +0.45356423247029,0.45356423247029,0.453496056296579,0.453243469869231,0.452862890025546,0.452421623188034,0.451988084833786,0.451632260120028,0.451425319100961,0.451425319100961, +0.616602937499295,0.616602937499295,0.616463092594679,0.616066224591719,0.615512581228454,0.614891717862182,0.61428136449087,0.613763557077417,0.613442022881736,0.613442022881736, +0.802066678037033,0.802066678037033,0.801874679961745,0.801258322202048,0.800479968169165,0.799645605732193,0.798820020926597,0.79807356929037,0.797535014139388,0.797535014139388, + +00:29:04, +0.0738688361769976,0.0738688361769976,0.0739156843474006,0.0739134178300836,0.0738739631554101,0.0738129487201899,0.0737473864813088,0.0736931719180571,0.0736626669760398,0.0736626669760398, +0.0738688361769976,0.0738688361769976,0.0739156843474006,0.0739134178300836,0.0738739631554101,0.0738129487201899,0.0737473864813088,0.0736931719180571,0.0736626669760398,0.0736626669760398, +0.0961118007373916,0.0961118007373916,0.0961567968684438,0.096143544693365,0.0960865036807452,0.0960046694384496,0.0959187995723104,0.0958484437939956,0.0958089870104932,0.0958089870104932, +0.142466860370125,0.142466860370125,0.142505044001064,0.142466951210681,0.142372122966364,0.142246305967897,0.142117755678827,0.142013441577151,0.141955085591866,0.141955085591866, +0.215943325650288,0.215943325650288,0.215964238194601,0.21588232853964,0.215724869358998,0.215527766552924,0.215330397788315,0.215171027664406,0.215081719022678,0.215081719022678, +0.319354414231808,0.319354414231808,0.319341286219972,0.319190230380845,0.318939569811799,0.318638891030568,0.318341674490348,0.318101101216028,0.317964939199405,0.317964939199405, +0.453695556563058,0.453695556563058,0.453627373566803,0.453374849995945,0.452994381445396,0.452553250152587,0.452119847833181,0.451764135977079,0.451557260916665,0.451557260916665, +0.616705091747466,0.616705091747466,0.616565267626948,0.616168515063233,0.615615046669687,0.614994385709425,0.614384233912475,0.613866597982921,0.61354516974378,0.61354516974378, +0.802122816474193,0.802122816474193,0.801930872306239,0.801314700988812,0.800536589520798,0.799702491238842,0.798877169179002,0.798130954087819,0.797592567151159,0.797592567151159, + +00:29:05, +0.0739712625357195,0.0739712625357195,0.0740181318507232,0.0740158697451294,0.0739764061130211,0.0739153741753919,0.073849791623058,0.0737955596354067,0.0737650447239186,0.0737650447239186, +0.0739712625357195,0.0739712625357195,0.0740181318507232,0.0740158697451294,0.0739764061130211,0.0739153741753919,0.073849791623058,0.0737955596354067,0.0737650447239186,0.0737650447239186, +0.0962228281447049,0.0962228281447049,0.0962678371790433,0.0962545878390332,0.0961975413477371,0.0961156961028062,0.096029813296173,0.0959594463513181,0.0959199831706227,0.0959199831706227, +0.142591675047295,0.142591675047295,0.142629858142183,0.142591767972416,0.142496943981957,0.142371131508083,0.142242585194927,0.142138274091405,0.142079919765946,0.142079919765946, +0.216080944483726,0.216080944483726,0.216101843754227,0.216019943050851,0.2158625085814,0.215665438646665,0.215468103471873,0.215308760843947,0.215219467797021,0.215219467797021, +0.319496379911263,0.319496379911263,0.319483234271103,0.319332206080387,0.319081605496237,0.318781003529032,0.318483864975306,0.318243355821783,0.318107230481248,0.318107230481248, +0.453826795870265,0.453826795870265,0.453758606090269,0.453506145357969,0.453125788045836,0.452684792225324,0.452251525865787,0.451895926803169,0.451689117662598,0.451689117662598, +0.616807168853096,0.616807168853096,0.616667365526767,0.616270728325263,0.615717434771318,0.615096976062819,0.614487025684743,0.613969561104843,0.61364823873789,0.61364823873789, +0.802178908872804,0.802178908872804,0.801987018573762,0.801371033545259,0.800593164438018,0.799759330087048,0.798934270549115,0.798188291800522,0.79765007293391,0.79765007293391, + +00:29:06, +0.0740737284274502,0.0740737284274502,0.0741206188568491,0.0741183611710768,0.0740788886197256,0.0740178392360655,0.073952236430592,0.0738979870685378,0.0738674622157685,0.0738674622157685, +0.0740737284274502,0.0740737284274502,0.0741206188568491,0.0741183611710768,0.0740788886197256,0.0740178392360655,0.073952236430592,0.0738979870685378,0.0738674622157685,0.0738674622157685, +0.0963338793032893,0.0963338793032893,0.0963789012207063,0.096365654730029,0.0963086028016698,0.096226746612221,0.0961408509262268,0.0960704728651712,0.0960310033155799,0.0960310033155799, +0.142716485048245,0.142716485048245,0.142754667605894,0.142716580079825,0.14262176038629,0.142495952492248,0.142367410211521,0.142263102152143,0.1422047495122,0.1422047495122, +0.216218524268702,0.216218524268702,0.216239410287678,0.21615751856304,0.216000108837913,0.215803071811931,0.21560577026354,0.215446455160626,0.2153571777244,0.2153571777244, +0.319638276201628,0.319638276201628,0.31962511297317,0.319474112447211,0.319223571849944,0.318923046692139,0.318625986117861,0.318385541077807,0.318249452408263,0.318249452408263, +0.453957950497606,0.453957950497606,0.453889753972598,0.453637356060897,0.453257109932467,0.452816249511853,0.452383119037214,0.452027632703916,0.451820889444386,0.451820889444386, +0.616909168923817,0.616909168923817,0.616769386401724,0.616372864485473,0.615819745641154,0.61519948903033,0.614589739915805,0.614072446551454,0.613751229972431,0.613751229972431, +0.802234955300975,0.802234955300975,0.802043118832471,0.801427319939764,0.800649692989483,0.79981612234578,0.798991325106214,0.798245582498035,0.797707531557401,0.797707531557401, + +00:29:07, +0.0741762337796251,0.0741762337796251,0.0742231452932412,0.0742208920353793,0.0741814106029381,0.0741203438295676,0.0740547208312053,0.0740004541446934,0.0739699193788033,0.0739699193788033, +0.0741762337796251,0.0741762337796251,0.0742231452932412,0.0742208920353793,0.0741814106029381,0.0741203438295676,0.0740547208312053,0.0740004541446934,0.0739699193788033,0.0739699193788033, +0.0964449541551067,0.0964449541551067,0.0964899889354207,0.0964767453083194,0.0964196879844513,0.0963378209085186,0.0962519124042074,0.0961815232772169,0.096142047386985,0.096142047386985, +0.142841290345875,0.142841290345875,0.142879472365111,0.142841387505779,0.142746572152145,0.142620768893053,0.142492230701146,0.142387925731799,0.142329574803004,0.142329574803004, +0.216356065024071,0.216356065024071,0.216376937813787,0.216295055094979,0.216137670147201,0.215940666067254,0.215743398181705,0.215584110632719,0.215494848823025,0.215494848823025, +0.319780103172382,0.319780103172382,0.319766922395593,0.319615949550672,0.31936546894219,0.319065020589062,0.318768037987084,0.318527657053089,0.318391605049392,0.318391605049392, +0.454089020550624,0.454089020550624,0.45402081731925,0.453768482210171,0.45338834721073,0.452947622117621,0.452514627452916,0.452159253784781,0.451952576367498,0.451952576367498, +0.61701109206707,0.61701109206707,0.616871330359216,0.61647492365134,0.615921979386811,0.615301924719738,0.614692376713598,0.614175254430833,0.613854143555575,0.613854143555575, +0.80229095582669,0.80229095582669,0.802099173150396,0.80148356024057,0.800706175243725,0.799872868083875,0.799048332919442,0.798302826249783,0.79776494309126,0.79776494309126, + +00:29:08, +0.0742787785197468,0.0742787785197468,0.0743257110874291,0.0743234622655575,0.07428397199014,0.0742228878833215,0.0741572447522592,0.0741029607911832,0.0740724161403036,0.0740724161403036, +0.0742787785197468,0.0742787785197468,0.0743257110874291,0.0743234622655575,0.07428397199014,0.0742228878833215,0.0741572447522592,0.0741029607911832,0.0740724161403036,0.0740724161403036, +0.0965560526421944,0.0965560526421944,0.0966011002652495,0.0965878595159472,0.0965307968380653,0.0964489189335989,0.0963629976719259,0.0962925975291925,0.0962531153265339,0.0962531153265339, +0.142966090913152,0.142966090913152,0.143004272392813,0.142966190223216,0.142871379252372,0.14274558068323,0.14261704663641,0.142512744802877,0.142454395610802,0.142454395610802, +0.216493566768706,0.216493566768706,0.216514426351408,0.216432552665458,0.216275192527951,0.216078221431184,0.215880987244782,0.215721727278523,0.215632481111128,0.215632481111128, +0.319921860892939,0.319921860892939,0.319908662607721,0.319757717460057,0.319507296842181,0.319206925288907,0.31891002065198,0.318669703816554,0.318533688473515,0.318533688473515, +0.454220006134701,0.454220006134701,0.45415179623553,0.453899523911072,0.453519499985912,0.45307891014792,0.45264605121819,0.452290790151068,0.452084178537247,0.452084178537247, +0.617112938390105,0.617112938390105,0.616973197506454,0.61657690593015,0.616024136115716,0.615404283238631,0.614794936185871,0.614277984850869,0.613956979595306,0.613956979595306, +0.802346910517797,0.802346910517797,0.802155181595436,0.801539754515793,0.80076261126914,0.799929567370039,0.79910529405781,0.798360023125055,0.79782230760498,0.79782230760498, + +00:29:09, +0.0743813625753847,0.0743813625753847,0.0744283161670096,0.0744260717891985,0.0743865727088792,0.0743254713248176,0.0742598081211818,0.0742055069353835,0.0741749524276166,0.0741749524276166, +0.0743813625753847,0.0743813625753847,0.0744283161670096,0.0744260717891985,0.0743865727088792,0.0743254713248176,0.0742598081211818,0.0742055069353835,0.0741749524276166,0.0741749524276166, +0.096667174706665,0.096667174706665,0.0967122351523314,0.0966989972950305,0.0966419293045708,0.0965600406294375,0.0964741066712688,0.0964036955629109,0.0963642070759979,0.0963642070759979, +0.143090886723112,0.143090886723112,0.14312906766205,0.143090988205145,0.142996181659891,0.142870387835579,0.142741857989988,0.14263755933795,0.142579211908109,0.142579211908109, +0.216631029521503,0.216631029521503,0.216651875919419,0.216570011293291,0.216412675998872,0.216215737922296,0.216018537471203,0.215859305116357,0.215770074606964,0.215770074606964, +0.320063549432643,0.320063549432643,0.32005033367884,0.319899416244584,0.319649055619056,0.319348760860715,0.319051934181488,0.318811681437058,0.318675702749442,0.318675702749442, +0.454350907355062,0.454350907355062,0.454282690826584,0.454030481268725,0.453650568363141,0.453210113707887,0.452777390438177,0.452422241907926,0.452215696058791,0.452215696058791, +0.617214707999985,0.617214707999985,0.617074987950456,0.616678811429,0.616126215935105,0.615506564694407,0.614897418440182,0.614380637919263,0.614059738199416,0.614059738199416, +0.802402819442019,0.802402819442019,0.802211144235357,0.801595902833414,0.800819001133996,0.799986220272846,0.799162208590197,0.79841717319301,0.797879625167923,0.797879625167923, + +00:29:10, +0.074483985874175,0.074483985874175,0.0745309604596464,0.0745287205339568,0.0744892126867708,0.0744280940816128,0.074362410865468,0.0743080925047374,0.0742775281681561,0.0742775281681561, +0.074483985874175,0.074483985874175,0.0745309604596464,0.0745287205339568,0.0744892126867708,0.0744280940816128,0.074362410865468,0.0743080925047374,0.0742775281681561,0.0742775281681561, +0.0967783202907066,0.0967783202907066,0.0968233935388803,0.0968101585877626,0.096753085326102,0.0966711859380852,0.0965852393441983,0.0965148173202606,0.0964753225772238,0.0964753225772238, +0.14321567774886,0.14321567774886,0.143253858145937,0.143215781424641,0.14312097934769,0.14299519032297,0.142866664734625,0.142762369309658,0.14270402366751,0.14270402366751, +0.216768453301379,0.216768453301379,0.216789286536714,0.216707430997309,0.21655012057869,0.216353215559182,0.216156048879425,0.215996844164562,0.215907629328811,0.215907629328811, +0.320205168860772,0.320205168860772,0.320191935678166,0.320041045973404,0.319790745341884,0.319490527373459,0.319193778644482,0.318953589983391,0.318817647945921,0.318817647945921, +0.454481724316778,0.454481724316778,0.454413501197403,0.454161354388101,0.453781552447389,0.453341232902499,0.452908645217862,0.452553609160349,0.45234712903713,0.45234712903713, +0.617316401003581,0.617316401003581,0.617176701798053,0.616780640254798,0.616228218952027,0.615608769194274,0.6149998235839,0.614483213743525,0.614162419475507,0.614162419475507, +0.802458682666946,0.802458682666946,0.802267061137801,0.801652005261287,0.800875344906429,0.80004282686074,0.799219076585353,0.798474276522675,0.797936895849318,0.797936895849318, + +00:29:11, +0.0745866483438212,0.0745866483438212,0.07463364389307,0.0746314084275535,0.0745918918514969,0.0745307560813313,0.0744650529126794,0.0744107174267549,0.0743801432894029,0.0743801432894029, +0.0745866483438212,0.0745866483438212,0.07463364389307,0.0746314084275535,0.0745918918514969,0.0745307560813313,0.0744650529126794,0.0744107174267549,0.0743801432894029,0.0743801432894029, +0.0968894893365824,0.0968894893365824,0.0969345753671851,0.0969213433364119,0.0968642648448684,0.096782354801668,0.0966963956327516,0.0966259627432053,0.096586461772134,0.096586461772134, +0.143340463963568,0.143340463963568,0.143378643817662,0.143340569854848,0.143245772288824,0.143119988118341,0.142991466843133,0.142887174690713,0.142828830861656,0.142828830861656, +0.216905838127271,0.216905838127271,0.21692665822221,0.216844811796367,0.216687526286156,0.216490654360459,0.216293521487923,0.2161343444415,0.216045145294967,0.216045145294967, +0.320346719246534,0.320346719246534,0.320333468674848,0.320182606715604,0.319932366079669,0.319632224896045,0.319335554109766,0.319095429524279,0.318959524131632,0.318959524131632, +0.454612457124759,0.454612457124759,0.454544227452821,0.45429214337401,0.453912452343473,0.45347226783658,0.453039815662073,0.452684892013173,0.45247847757711,0.45247847757711, +0.617418017507578,0.617418017507578,0.617278339155886,0.616882392514262,0.616330145273339,0.615710896845253,0.615102151724206,0.614585712430974,0.614265023530994,0.614265023530994, +0.802514500260041,0.802514500260041,0.802322932370275,0.801708061867135,0.800931642654446,0.800099387202033,0.799275898111892,0.798531333182944,0.797994119718261,0.797994119718261, + +00:29:12, +0.0746893499120936,0.0746893499120936,0.0747363663950783,0.0747341353977769,0.0746946101308065,0.074633457251664,0.0745677341904446,0.0745133816290128,0.0744827977189046,0.0744827977189046, +0.0746893499120936,0.0746893499120936,0.0747363663950783,0.0747341353977769,0.0746946101308065,0.074633457251664,0.0745677341904446,0.0745133816290128,0.0744827977189046,0.0744827977189046, +0.0970006817866308,0.0970006817866308,0.0970457805796102,0.0970325514833221,0.0969754678031548,0.0968935471623872,0.0968075754790414,0.096737131773784,0.0966976246027259,0.0966976246027259, +0.143465245340479,0.143465245340479,0.143503424650476,0.143465353468977,0.143370560456417,0.143244781194696,0.143116264288395,0.143011975453894,0.142953633463271,0.142953633463271, +0.217043184018134,0.217043184018134,0.217063990994844,0.216982153709339,0.216824893140039,0.216628054344763,0.216430955315197,0.216271805965558,0.216182622523753,0.216182622523753, +0.320488200659073,0.320488200659073,0.320474932737967,0.320324098540198,0.320073917901349,0.319773853497313,0.319477260646082,0.319237200128381,0.319101331375189,0.319101331375189, +0.454743105883763,0.454743105883763,0.454674869697516,0.45442284833111,0.454043268156051,0.453603218614798,0.453170901875485,0.452816090571079,0.452609741783422,0.452609741783422, +0.617519557618471,0.617519557618471,0.617379900130409,0.616984068313924,0.616431995005712,0.615812947754176,0.615204402968089,0.614688134088744,0.614367550473102,0.614367550473102, +0.802570272288638,0.802570272288638,0.802378758000161,0.801764072718553,0.800987894445924,0.800155901364908,0.799332673238302,0.798588343242579,0.798051296843716,0.798051296843716, + +00:29:13, +0.0747920905068297,0.0747920905068297,0.074839127893536,0.0748369013724826,0.0747973674525155,0.0747361975203688,0.0746704546264593,0.0746160850391547,0.0745854913842755,0.0745854913842755, +0.0747920905068297,0.0747920905068297,0.074839127893536,0.0748369013724826,0.0747973674525155,0.0747361975203688,0.0746704546264593,0.0746160850391547,0.0745854913842755,0.0745854913842755, +0.0971118975832656,0.0971118975832656,0.0971570091185947,0.0971437829709119,0.0970866941433209,0.0970047629625193,0.0969187788252554,0.096848324354111,0.0968088110110723,0.0968088110110723, +0.143590021852901,0.143590021852901,0.143628200617701,0.143590132240309,0.143495343823663,0.143369569525112,0.143241057043362,0.143136771572049,0.143078431445143,0.143078431445143, +0.217180490992946,0.217180490992946,0.217201284873573,0.217119456755118,0.216962221159128,0.216765415530751,0.216568350379764,0.216409228755139,0.216320061033512,0.216320061033512, +0.320629613167462,0.320629613167462,0.320616327936536,0.320465521516136,0.320215400875792,0.319915413246035,0.319618898322102,0.319378901864291,0.319243069745141,0.319243069745141, +0.454873670698389,0.454873670698389,0.454805428036009,0.454553469363901,0.454173999989629,0.453734085341663,0.453301903962616,0.452947204938595,0.452740921760602,0.452740921760602, +0.617621021442569,0.617621021442569,0.617481384827888,0.617085667760127,0.61653376825563,0.615914922027685,0.615306577422353,0.614790478823778,0.614470000408867,0.614470000408867, +0.802625998819941,0.802625998819941,0.802434538094711,0.801820037883005,0.801044100348609,0.800212369417416,0.799389402032938,0.798645306770214,0.798108427294519,0.798108427294519, + +00:29:14, +0.0748948700559342,0.0748948700559342,0.0749419283163751,0.0749397062795928,0.074900163744507,0.0748389768152707,0.0747732141484859,0.0747188275848913,0.0746882242131969,0.0746882242131969, +0.0748948700559342,0.0748948700559342,0.0749419283163751,0.0749397062795928,0.074900163744507,0.0748389768152707,0.0747732141484859,0.0747188275848913,0.0746882242131969,0.0746882242131969, +0.0972231366689752,0.0972231366689752,0.0972682609266529,0.0972550377416752,0.0971979438078016,0.0971160021444157,0.0970300056136566,0.0969595404263758,0.0969200209393214,0.0969200209393214, +0.14371479347421,0.14371479347421,0.143752971692727,0.143714906142192,0.14362012236382,0.143494353082729,0.143365845081052,0.143261563018095,0.143203224780133,0.143203224780133, +0.217317759070704,0.217317759070704,0.217338539877373,0.217256720952619,0.217099510362234,0.216902737937101,0.216705706700166,0.216546612828672,0.216457460842608,0.216457460842608, +0.320770956840709,0.320770956840709,0.320757654339502,0.320606875712302,0.3203568150718,0.320056904210917,0.319760467206434,0.319520534800534,0.319384739309972,0.319384739309972, +0.45500415167308,0.45500415167308,0.454935902572666,0.454684006576728,0.454304647948555,0.453864868121533,0.453432822027828,0.453078235220093,0.452872017613029,0.452872017613029, +0.617722409085991,0.617722409085991,0.617582793354402,0.617187190959027,0.616635465129387,0.616016819772236,0.615408675193614,0.614892746742832,0.614572373445137,0.614572373445137, +0.802681679921027,0.802681679921027,0.802490272721047,0.801875957427828,0.801100260430119,0.800268791427479,0.799446084564023,0.798702223834349,0.798165511139371,0.798165511139371, + +00:29:15, +0.0749976884873786,0.0749976884873786,0.0750447675915947,0.0750425500470973,0.0750029989347313,0.0749417950642617,0.0748760126843539,0.074821609194,0.0747909961334171,0.0747909961334171, +0.0749976884873786,0.0749976884873786,0.0750447675915947,0.0750425500470973,0.0750029989347313,0.0749417950642617,0.0748760126843539,0.074821609194,0.0747909961334171,0.0747909961334171, +0.0973343989863233,0.0973343989863233,0.0973795359463742,0.0973663157381804,0.0973092167391064,0.097227264650503,0.097141255786583,0.0970707799328429,0.0970312543296962,0.0970312543296962, +0.143839560177851,0.143839560177851,0.143877737849009,0.143839675148039,0.143744896050216,0.143619131840759,0.143490628374552,0.143386349765017,0.143328013441167,0.143328013441167, +0.217454988270424,0.217454988270424,0.217475756025239,0.217393946320774,0.217236760768186,0.217040021582509,0.216843024294962,0.216683958204604,0.216594821969424,0.216594821969424, +0.320912231747751,0.320912231747751,0.320898912015744,0.320748161197508,0.320498160558109,0.320198326460599,0.319901967367618,0.319662099005572,0.319526340138098,0.319526340138098, +0.455134548912127,0.455134548912127,0.455066293411699,0.454814460073781,0.454435212137023,0.453995567058609,0.453563656175331,0.45320918151979,0.45300302944493,0.45300302944493, +0.617823720654671,0.617823720654671,0.617684125815842,0.617288638016592,0.61673708573309,0.616118641094099,0.615510696388299,0.614994937952474,0.614674669688574,0.614674669688574, +0.802737315658843,0.802737315658843,0.802545961946166,0.801931831420229,0.801156374757943,0.800325167462891,0.799502720899654,0.798759094503355,0.798222548446843,0.798222548446843, + +00:29:16, +0.0751005457292021,0.0751005457292021,0.075147645647261,0.0751454326030527,0.0751058729512056,0.0750446521953009,0.0749788501619598,0.0749244297943254,0.0748938070727512,0.0748938070727512, +0.0751005457292021,0.0751005457292021,0.075147645647261,0.0751454326030527,0.0751058729512056,0.0750446521953009,0.0749788501619598,0.0749244297943254,0.0748938070727512,0.0748938070727512, +0.0974456844779483,0.0974456844779483,0.0974908341204226,0.0974776169030712,0.0974205128798201,0.0973385504232825,0.0972525292864473,0.097182042815852,0.0971425111244949,0.0971425111244949, +0.143964321937335,0.143964321937335,0.14400249906007,0.143964439231334,0.143869664856247,0.143743905772478,0.143615406897015,0.143511131785867,0.143452797401241,0.143452797401241, +0.217592178611141,0.217592178611141,0.217612933336188,0.217531132878536,0.217373972395836,0.217177266485695,0.216980303182735,0.216821264901404,0.216732144432367,0.216732144432367, +0.321053437957462,0.321053437957462,0.321040101034072,0.320889378040502,0.320639437403387,0.320339680063653,0.32004339887413,0.3198035945478,0.319667872297871,0.319667872297871, +0.45526486251966,0.45526486251966,0.455196600657161,0.454944829959094,0.454565692659072,0.454126182256938,0.453694406509178,0.453340043941749,0.453133957360378,0.453133957360378, +0.617924956254356,0.617924956254356,0.617785382317915,0.617390009038605,0.616838630172662,0.616220386099353,0.615612641112649,0.615097052559085,0.614776889245651,0.614776889245651, +0.802792906100212,0.802792906100212,0.802601605836935,0.801987659927288,0.801212443399441,0.800381497591315,0.799559311107796,0.798815918845474,0.798279539285377,0.798279539285377, + +00:29:17, +0.0752034417095107,0.0752034417095107,0.0752505624115075,0.0752483538755832,0.0752087857220144,0.0751475481364145,0.0750817265092673,0.0750272893137791,0.0749966569590814,0.0749966569590814, +0.0752034417095107,0.0752034417095107,0.0752505624115075,0.0752483538755832,0.0752087857220144,0.0751475481364145,0.0750817265092673,0.0750272893137791,0.0749966569590814,0.0749966569590814, +0.0975569930865637,0.0975569930865637,0.0976021553915369,0.0975889411790658,0.0975318321726021,0.0974498594053305,0.0973638260557376,0.0972933290178174,0.0972537912660907,0.0972537912660907, +0.14408907872624,0.14408907872624,0.144127255299502,0.144089198365626,0.143994428755374,0.143868674851231,0.143740180621665,0.143635909053766,0.143577576633419,0.143577576633419, +0.217729330111912,0.217729330111912,0.217750071829254,0.217668280644879,0.217511145264051,0.217314472665395,0.217117543382084,0.216958532937561,0.216869428249863,0.216869428249863, +0.321194575538645,0.321194575538645,0.32118122146323,0.321030526309965,0.320780645676235,0.320480965088584,0.320184761794376,0.319945021495546,0.319809335857577,0.319809335857577, +0.45539509259966,0.45539509259966,0.455326824412955,0.455075116336548,0.454696089618585,0.454256713820412,0.453825073133269,0.453470822589879,0.453264801463291,0.453264801463291, +0.618026115990607,0.618026115990607,0.617886562966139,0.617491304130662,0.616940098553837,0.616322054893896,0.615714509472718,0.615199090668861,0.614879032222655,0.614879032222655, +0.802848451311825,0.802848451311825,0.802657204460095,0.802043443015958,0.801268466421845,0.800437781880286,0.799615855256283,0.798872696928815,0.798336483723284,0.798336483723284, + +00:29:18, +0.0753063763564779,0.0753063763564779,0.0753535178125351,0.07535131379288,0.0753117371753095,0.075250482815696,0.075184641654307,0.0751301876803397,0.0750995457203569,0.0750995457203569, +0.0753063763564779,0.0753063763564779,0.0753535178125351,0.07535131379288,0.0753117371753095,0.075250482815696,0.075184641654307,0.0751301876803397,0.0750995457203569,0.0750995457203569, +0.0976683247549575,0.0976683247549575,0.0977134997025308,0.0977002885089572,0.0976431745601866,0.0975611915392981,0.0974751460370164,0.0974046384812287,0.0973650946969317,0.0973650946969317, +0.144213830518213,0.144213830518213,0.144252006540961,0.14421395252453,0.144119187721127,0.143993439050431,0.143864949521791,0.143760681541901,0.143702351110831,0.143702351110831, +0.217866442791809,0.217866442791809,0.217887171523492,0.217805389638793,0.217648279391721,0.217451640140368,0.217254744911632,0.217095762331585,0.217006673440361,0.217006673440361, +0.321335644560035,0.321335644560035,0.321322273371894,0.321171606074507,0.320921785445185,0.320622181603833,0.3203260561967,0.320086379917075,0.319950730885434,0.319950730885434, +0.455525239255948,0.455525239255948,0.455456964782825,0.455205319309866,0.454826403119293,0.45438716185277,0.45395565615135,0.453601517567935,0.453395561857433,0.453395561857433, +0.618127199968799,0.618127199968799,0.617987667865849,0.617592523398174,0.617041490982165,0.616423647583436,0.615816301574376,0.615301052387809,0.614981098725687,0.614981098725687, +0.802903951360251,0.802903951360251,0.802712757882258,0.802099180753062,0.801324443892259,0.80049402039721,0.799672353412824,0.798929428821361,0.798393381828745,0.798393381828745, + +00:29:19, +0.0754093495983443,0.0754093495983443,0.0754565117786118,0.0754543122832016,0.0754147272393098,0.0753534561613057,0.0752875955251768,0.0752331248220529,0.0752024732845941,0.0752024732845941, +0.0754093495983443,0.0754093495983443,0.0754565117786118,0.0754543122832016,0.0754147272393098,0.0753534561613057,0.0752875955251768,0.0752331248220529,0.0752024732845941,0.0752024732845941, +0.0977796794259925,0.0977796794259925,0.0978248669962926,0.0978116588356131,0.0977545399853823,0.0976725467679111,0.0975864891729213,0.0975159711486501,0.0974764213595407,0.0974764213595407, +0.144338577286964,0.144338577286964,0.144376752758172,0.14433870168173,0.144243941727101,0.144118198343558,0.143989713570749,0.143885449223529,0.143827120806676,0.143827120806676, +0.218003516669928,0.218003516669928,0.218024232437973,0.21794245987929,0.217785374797754,0.21758876892939,0.217391907790021,0.217232953102008,0.217143880022327,0.217143880022327, +0.321476645090303,0.321476645090303,0.321463256828672,0.321312617402675,0.321062856778705,0.320763329677771,0.320467282149375,0.320227669880582,0.320092057449598,0.320092057449598, +0.455655302592194,0.455655302592194,0.455587021870363,0.45533543898262,0.45495663326477,0.454517526457595,0.454086155667014,0.453732128979518,0.453526238646415,0.453526238646415, +0.618228208294122,0.618228208294122,0.618088697122193,0.617693666946365,0.617142807563008,0.616525164273497,0.615918017523303,0.615402937821753,0.615083088860661,0.615083088860661, +0.802959406311929,0.802959406311929,0.802768266169912,0.802154873205297,0.801380375877658,0.800550213209366,0.799728805644997,0.798986114590964,0.798450233669812,0.798450233669812, + +00:29:20, +0.075512361363418,0.075512361363418,0.0755595442380731,0.0755573492748737,0.0755177558423015,0.0754564681014717,0.0753905880500418,0.0753361006670316,0.0753054395798764,0.0753054395798764, +0.075512361363418,0.075512361363418,0.0755595442380731,0.0755573492748737,0.0755177558423015,0.0754564681014717,0.0753905880500418,0.0753361006670316,0.0753054395798764,0.0753054395798764, +0.0978910570426061,0.0978910570426061,0.097936257215785,0.0979230521019756,0.0978659283910727,0.0977839250339698,0.0976978554061644,0.0976273269627206,0.0975877711965155,0.0975877711965155, +0.144463319006274,0.144463319006274,0.144501493924925,0.144463445810976,0.144368690746959,0.144242952704156,0.144114472741963,0.144010212071973,0.14395188569422,0.14395188569422, +0.218140551765379,0.218140551765379,0.218161254591789,0.218079491385398,0.217922431501077,0.217725859051259,0.217529032035912,0.217370105267378,0.21728104801425,0.21728104801425, +0.321617577198048,0.321617577198048,0.321604171902105,0.321453560362946,0.321203859745194,0.320904409378702,0.320608439720612,0.320368891454198,0.320233315618155,0.320233315618155, +0.455785282711912,0.455785282711912,0.455716995779007,0.455465475458228,0.455086780158439,0.454647807738318,0.454216571783697,0.453862656928078,0.453656831933695,0.453656831933695, +0.61832914107158,0.61832914107158,0.618189650840135,0.617794734880277,0.617244048401547,0.616626605069417,0.616019657424997,0.615504747076328,0.615185002733307,0.615185002733307, +0.803014816233171,0.803014816233171,0.802823729389416,0.802210520439234,0.801436262444892,0.800606360383903,0.799785212020251,0.799042754305347,0.798507039314406,0.798507039314406, + +00:29:21, +0.0756154115800744,0.0756154115800744,0.0756626151193215,0.0756604246962896,0.0756208229126381,0.0755595185644888,0.0754936191571342,0.0754391151434558,0.0754084445343543,0.0754084445343543, +0.0756154115800744,0.0756154115800744,0.0756626151193215,0.0756604246962896,0.0756208229126381,0.0755595185644888,0.0754936191571342,0.0754391151434558,0.0754084445343543,0.0754084445343543, +0.0980024575478103,0.0980024575478103,0.0980476703040455,0.0980344682510615,0.0979773397202158,0.0978953262803492,0.0978092446795325,0.0977387058661537,0.0976991441505285,0.0976991441505285, +0.144588055649988,0.144588055649988,0.144626230015077,0.144588184886082,0.144493434754432,0.14436770210584,0.144239227008925,0.144134970060623,0.144076645746797,0.144076645746797, +0.218277548097293,0.218277548097293,0.218298238004051,0.218216484176165,0.218059449520637,0.21786291052479,0.217666117667986,0.217507218846266,0.217418177434637,0.217418177434637, +0.321758440951805,0.321758440951805,0.321745018660667,0.32159443502373,0.321344794412984,0.321045420774867,0.320749528978553,0.320510044705987,0.320374505459127,0.320374505459127, +0.455915179718463,0.455915179718463,0.45584688661204,0.455595428839952,0.455216843903567,0.454778005798217,0.454346904604687,0.45399310151691,0.453787341822578,0.453787341822578, +0.618429998405995,0.618429998405995,0.618290529124455,0.617895727304765,0.617345213602775,0.61672797007635,0.616121221384771,0.615606480256988,0.615286840449169,0.615286840449169, +0.803070181190166,0.803070181190166,0.802879147607005,0.802266122521317,0.801492103660682,0.800662461987845,0.799841572605908,0.799099348032105,0.798563798830323,0.798563798830323, + +00:29:22, +0.0757185001767563,0.0757185001767563,0.0757657243508274,0.0757635384759099,0.0757239283787405,0.0756626074787195,0.0755966887747535,0.0755421681795729,0.0755114880762456,0.0755114880762456, +0.0757185001767563,0.0757185001767563,0.0757657243508274,0.0757635384759099,0.0757239283787405,0.0756626074787195,0.0755966887747535,0.0755421681795729,0.0755114880762456,0.0755114880762456, +0.0981138808846915,0.0981138808846915,0.0981591062041857,0.098145907225962,0.098088773915844,0.0980067504499988,0.0979206569358868,0.0978501078017378,0.0978105401643267,0.0978105401643267, +0.144712787192016,0.144712787192016,0.144750961002551,0.144712918880931,0.144618173723313,0.144492446522289,0.144363976345192,0.144259723162935,0.144201400937807,0.144201400937807, +0.218414505684819,0.218414505684819,0.218435182693887,0.218353438270659,0.218196428875396,0.217999923368818,0.217803164704943,0.217644293857262,0.217555268302018,0.217555268302018, +0.321899236420038,0.321899236420038,0.321885797172762,0.321735241453369,0.321485660850341,0.321186363934437,0.320890549991273,0.32065112970395,0.320515627040472,0.320515627040472, +0.456044993715053,0.456044993715053,0.455976694472592,0.455725299230901,0.45534682460327,0.454908120740414,0.454477154233115,0.454123462849156,0.453917768416217,0.453917768416217, +0.618530780402001,0.618530780402001,0.618391332079748,0.617996644324501,0.617446303271501,0.616829259399266,0.616222709507753,0.615708137468999,0.615388602113605,0.615388602113605, +0.803125501248975,0.803125501248975,0.802934520888785,0.802321679517864,0.801547899591624,0.800718518088086,0.799897887469162,0.799155895838706,0.798620512285226,0.798620512285226, + +00:29:23, +0.0758216270819738,0.0758216270819738,0.0758688718611283,0.0758666905422624,0.0758270721690968,0.0757657347725935,0.0756997968312664,0.0756452597036973,0.0756145701338354,0.0756145701338354, +0.0758216270819738,0.0758216270819738,0.0758688718611283,0.0758666905422624,0.0758270721690968,0.0757657347725935,0.0756997968312664,0.0756452597036973,0.0756145701338354,0.0756145701338354, +0.0982253269964104,0.0982253269964104,0.0982705648593919,0.0982573689698425,0.098200230921064,0.0981181974859425,0.0980320921181633,0.0979615327123356,0.0979219591807317,0.0979219591807317, +0.144837513606337,0.144837513606337,0.144875686861337,0.144837647769472,0.144742907627465,0.144617185927248,0.144488720724388,0.144384471352433,0.144326151240717,0.144326151240717, +0.218551424547126,0.218551424547126,0.218572088680443,0.218490353687964,0.21833336958434,0.218136897602197,0.217940173165503,0.217781330318975,0.217692320634939,0.217692320634939, +0.322039963671147,0.322039963671147,0.322026507506728,0.321875979720138,0.321626459125461,0.321327238925516,0.321031502826783,0.320792146516017,0.320656680430079,0.320656680430079, +0.456174724804735,0.456174724804735,0.456106419463639,0.455855086734033,0.455476722360508,0.455038152667882,0.454607320771961,0.454253741027806,0.45404811181761,0.45404811181761, +0.618631487164052,0.618631487164052,0.618492059810425,0.618097486043974,0.617547317512352,0.616930473142949,0.616324121898885,0.615809718817446,0.615490287831792,0.615490287831792, +0.803180776475534,0.803180776475534,0.80298984930074,0.802377191495065,0.801603650304186,0.800774528751395,0.79995415667708,0.799212397792487,0.798677179746652,0.798677179746652, + +00:29:24, +0.0759247922243046,0.0759247922243046,0.0759720575788293,0.0759698808239427,0.0759302542122629,0.0758689003746077,0.0758029432551072,0.0757483896442107,0.0757176906354757,0.0757176906354757, +0.0759247922243046,0.0759247922243046,0.0759720575788293,0.0759698808239427,0.0759302542122629,0.0758689003746077,0.0758029432551072,0.0757483896442107,0.0757176906354757,0.0757176906354757, +0.0983367958262024,0.0983367958262024,0.0983820462129244,0.0983688534259429,0.098311710679057,0.0982296673312787,0.0981435501693722,0.0980729805408844,0.0980334011426395,0.0980334011426395, +0.144962234866993,0.144962234866993,0.145000407565488,0.144962371525717,0.144867636440815,0.144741920294529,0.144613460120204,0.144509214602707,0.14445089662906,0.14445089662906, +0.218688304703397,0.218688304703397,0.218708955982885,0.218627230447184,0.21847027166647,0.218273833243798,0.218077143068404,0.217918328250035,0.217829334451968,0.217829334451968, +0.322180622773461,0.322180622773461,0.322167149730838,0.322016649892247,0.321767189306476,0.321468045816143,0.321172387553026,0.320933095210056,0.320797665695773,0.320797665695773, +0.45630437309041,0.45630437309041,0.456236061688006,0.455984791452151,0.45560653727809,0.455168101683438,0.454737404324052,0.454383936155698,0.454178372129607,0.454178372129607, +0.618732118796418,0.618732118796418,0.618592712420716,0.618198252567487,0.617648256429771,0.617031611412002,0.616425458662929,0.615911224407227,0.61559189770872,0.61559189770872, +0.803236006935654,0.803236006935654,0.803045132908726,0.802432658518987,0.801659355864711,0.800830494044415,0.800010380296602,0.79926885396066,0.798733801282011,0.798733801282011, + +00:29:25, +0.0760279955323938,0.0760279955323938,0.0760752814326029,0.0760731092496135,0.0760334744368616,0.0759721042133267,0.0759061279747771,0.0758515579295622,0.0758208495095862,0.0758208495095862, +0.0760279955323938,0.0760279955323938,0.0760752814326029,0.0760731092496135,0.0760334744368616,0.0759721042133267,0.0759061279747771,0.0758515579295622,0.0758208495095862,0.0758208495095862, +0.0984482873173768,0.0984482873173768,0.098493550208118,0.0984803605375771,0.0984232131330783,0.0983411599291798,0.098255031032598,0.0981844512303958,0.0981448659930207,0.0981448659930207, +0.145086950948095,0.145086950948095,0.145125123089126,0.145087090123746,0.144992360137357,0.144866649598011,0.144738194506395,0.144633952887415,0.144575637076437,0.144575637076437, +0.218825146172836,0.218825146172836,0.218845784620394,0.218764068567437,0.218607135140805,0.218410730312515,0.218214074432405,0.21805528766909,0.217966309771692,0.217966309771692, +0.322321213795244,0.322321213795244,0.322307723913292,0.322157252037834,0.32190785146145,0.321608784674289,0.321313204237878,0.321073975853867,0.320938582905312,0.320938582905312, +0.456433938674823,0.456433938674823,0.456365621248361,0.456114413487905,0.455736269458672,0.455297967889748,0.454867404992064,0.454514048335518,0.454308549454902,0.454308549454902, +0.618832675403184,0.618832675403184,0.618693290014667,0.618298943999164,0.617749120128017,0.617132674310844,0.616526719904461,0.616012654343059,0.615693431849197,0.615693431849197, +0.803291192695021,0.803291192695021,0.803100371778476,0.802488080655571,0.801715016339415,0.80088641403366,0.800066558394539,0.799325264410309,0.798790376958583,0.798790376958583, + +00:29:26, +0.0761312369349542,0.0761312369349542,0.0761785433511891,0.0761763757480052,0.0761367327715837,0.0760753462173822,0.076009350918845,0.0759547644882683,0.0759240466846536,0.0759240466846536, +0.0761312369349542,0.0761312369349542,0.0761785433511891,0.0761763757480052,0.0761367327715837,0.0760753462173822,0.076009350918845,0.0759547644882683,0.0759240466846536,0.0759240466846536, +0.0985598014133173,0.0985598014133173,0.0986050767883815,0.0985918902481334,0.0985347382264574,0.0984526752228926,0.0983665346509997,0.0982959447239559,0.09825635367492,0.09825635367492, +0.145211661823816,0.145211661823816,0.145249833406436,0.145211803537704,0.145117078691149,0.144991373811636,0.144862923856786,0.144758686180279,0.144700372556515,0.144700372556515, +0.218961948974665,0.218961948974665,0.218982574612171,0.218900868067865,0.218743960026384,0.218547588827254,0.218350967276281,0.218192208594805,0.218103246612716,0.218103246612716, +0.322461736804691,0.322461736804691,0.322448230122227,0.322297786224973,0.322048445658378,0.321749455567859,0.321453952949152,0.321214788515185,0.321079432126388,0.321079432126388, +0.45656342166057,0.45656342166057,0.456495098247225,0.456243952943793,0.455865919004759,0.455427751389326,0.45499732287852,0.4546440776698,0.454438643896039,0.454438643896039, +0.618933157088255,0.618933157088255,0.618793792696142,0.618399560442944,0.617849908711167,0.61723366194371,0.616627905727874,0.616114008729474,0.615794890357847,0.615794890357847, +0.803346333819196,0.803346333819196,0.803155565975598,0.802543457970633,0.801770631794389,0.800942288785521,0.800122691037579,0.799381629208391,0.798846906843523,0.798846906843523, + +00:29:27, +0.0762345163607659,0.0762345163607659,0.0762818432633955,0.0762796802479157,0.076240029145187,0.0761786263154736,0.0761126120159472,0.0760580092489127,0.0760272820892321,0.0760272820892321, +0.0762345163607659,0.0762345163607659,0.0762818432633955,0.0762796802479157,0.076240029145187,0.0761786263154736,0.0761126120159472,0.0760580092489127,0.0760272820892321,0.0760272820892321, +0.0986713380574816,0.0986713380574816,0.0987166258971977,0.0987034425010739,0.0986462859025979,0.0985642131557381,0.0984780609678102,0.0984074609647248,0.0983678641314567,0.0983678641314567, +0.145336367468396,0.145336367468396,0.145374538491669,0.145336511741802,0.145241792076317,0.145116092909413,0.144987648145264,0.144883414455087,0.144825103043026,0.144825103043026, +0.219098713128122,0.219098713128122,0.219119325977433,0.219037628967623,0.218880746342261,0.218684408806945,0.218487821618827,0.218329091045869,0.218240144993666,0.218240144993666, +0.32260219186993,0.32260219186993,0.322588668425711,0.322438252521669,0.322188971965191,0.321890058564691,0.321594633754589,0.321355533261677,0.32122021342663,0.32122021342663, +0.456692822150092,0.456692822150092,0.456624492786961,0.456373409922162,0.4559954860187,0.455557452284535,0.45512715808579,0.454774024260926,0.454568655555412,0.454568655555412, +0.619033563955353,0.619033563955353,0.618894220568822,0.618500102002585,0.617950622283116,0.617334574414653,0.616729016237381,0.616215287670823,0.615896273339113,0.615896273339113, +0.803401430373617,0.803401430373617,0.803210715565575,0.802598790529862,0.8018262022956,0.800998118366261,0.800178778292281,0.799437948421737,0.798903391003857,0.798903391003857, + +00:29:28, +0.0763378337386766,0.0763378337386766,0.0763851810980974,0.0763830226782105,0.0763433634864972,0.0762819444363677,0.0762159111947873,0.0761612921401466,0.0761305556519433,0.0761305556519433, +0.0763378337386766,0.0763378337386766,0.0763851810980974,0.0763830226782105,0.0763433634864972,0.0762819444363677,0.0762159111947873,0.0761612921401466,0.0761305556519433,0.0761305556519433, +0.0987828971934015,0.0987828971934015,0.0988281974781236,0.0988150172399349,0.0987578561049775,0.0986757736711113,0.0985896099263368,0.0985189998959369,0.0984793973058241,0.0984793973058241, +0.145461067856141,0.145461067856141,0.145499238319142,0.145461214710314,0.145366500267048,0.145240806865419,0.145112367345783,0.145008137685695,0.144949828509769,0.144949828509769, +0.219235438652462,0.219235438652462,0.219256038735416,0.219174351285884,0.219017494107511,0.218821190270532,0.218624637478857,0.218465935040984,0.218377004933185,0.218377004933185, +0.32274257905902,0.32274257905902,0.322729038891743,0.322578650995862,0.322329430449749,0.322030593732555,0.32173524672187,0.321496210160946,0.321360926873596,0.321360926873596, +0.456822140245679,0.456822140245679,0.456753804969784,0.456502784525205,0.456124970602698,0.455687070677583,0.455256910716096,0.454903888211128,0.454698584535261,0.454698584535261, +0.619133896108017,0.619133896108017,0.618994573736207,0.618600568781663,0.618051260947577,0.617435411827547,0.616830051537011,0.616316491271275,0.615997580897254,0.615997580897254, +0.803456482423596,0.803456482423596,0.803265820613766,0.802654078398827,0.801881727908889,0.801053902842018,0.800234820225078,0.79949422211705,0.798959829506485,0.798959829506485, + +00:29:29, +0.0764411889976018,0.0764411889976018,0.0764885567842375,0.0764864029678227,0.0764467357244074,0.0763853005088987,0.0763192483841364,0.0762646130906886,0.0762338673014762,0.0762338673014762, +0.0764411889976018,0.0764411889976018,0.0764885567842375,0.0764864029678227,0.0764467357244074,0.0763853005088987,0.0763192483841364,0.0762646130906886,0.0762338673014762,0.0762338673014762, +0.0988944787646828,0.0988944787646828,0.09893979147479,0.0989266144083265,0.0988694487771478,0.0987873567124812,0.0987011814699608,0.0986305614609007,0.0985909531412896,0.0985909531412896, +0.14558576296142,0.14558576296142,0.145623932863235,0.145585912417581,0.145491203237599,0.145365515653791,0.145237081432363,0.145132855846022,0.145074548930609,0.145074548930609, +0.219372125566959,0.219372125566959,0.219392712905372,0.21931103504184,0.219154203341224,0.218957933236979,0.218761414875202,0.218602740598875,0.218513826449936,0.218513826449936, +0.322882898439954,0.322882898439954,0.322869341588257,0.32271898171542,0.322469821179849,0.322171061139157,0.321875791918604,0.321636819280528,0.321501572534783,0.321501572534783, +0.456951376049468,0.456951376049468,0.456883034897756,0.456632076854965,0.456254372858798,0.45581660667053,0.455386580871505,0.455033669622486,0.454828430937678,0.454828430937678, +0.619234153649608,0.619234153649608,0.619094852301617,0.618700960883572,0.618151824808083,0.617536174286081,0.616931011730611,0.616417619634817,0.616098813136349,0.616098813136349, +0.803511490034325,0.803511490034325,0.803320881185407,0.802709321642969,0.801937208699971,0.801109642278807,0.800290816902281,0.799550450360908,0.799016222418181,0.799016222418181, + +00:29:30, +0.0765445820665245,0.0765445820665245,0.0765919702508263,0.0765898210457528,0.0765501457878783,0.0764886944619686,0.0764226235128331,0.0763679720293248,0.0763372169665872,0.0763372169665872, +0.0765445820665245,0.0765445820665245,0.0765919702508263,0.0765898210457528,0.0765501457878783,0.0764886944619686,0.0764226235128331,0.0763679720293248,0.0763372169665872,0.0763372169665872, +0.0990060827150052,0.0990060827150052,0.0990514078309017,0.0990382339499329,0.0989810638627342,0.0988989622233908,0.0988127755421374,0.0987421456029989,0.0987025315811948,0.0987025315811948, +0.145710452758667,0.145710452758667,0.145748622098394,0.145710604838007,0.145615900962287,0.145490219248736,0.145361790379089,0.145257568910054,0.145199264279474,0.145199264279474, +0.219508773890904,0.219508773890904,0.21952934850657,0.219447680254699,0.219290874062509,0.219094637725267,0.218898153826712,0.218739507738282,0.2186506095626,0.2186506095626, +0.323023150080657,0.323023150080657,0.323009576583118,0.322859244748149,0.322610144223218,0.322311460852133,0.322016269412336,0.321777360687894,0.32164215047762,0.32164215047762, +0.457080529663445,0.457080529663445,0.457012182672786,0.456761287013332,0.456383692888899,0.455946060365283,0.455516168653936,0.455163368596929,0.454958194864602,0.454958194864602, +0.619334336683302,0.619334336683302,0.61919505636819,0.618801278411527,0.618252313967983,0.617636861893763,0.617031896921848,0.616518672865252,0.616199970160292,0.616199970160292, +0.803566453270868,0.803566453270868,0.80337589734561,0.802764520327608,0.80199264473444,0.801165336742514,0.800346768390071,0.799606633219764,0.799072569805594,0.799072569805594, + +00:29:31, +0.0766480128744954,0.0766480128744954,0.0766954214269418,0.0766932768410693,0.0766535936059382,0.0765921262245467,0.0765260365097837,0.0764713688849088,0.0764406045761,0.0764406045761, +0.0766480128744954,0.0766480128744954,0.0766954214269418,0.0766932768410693,0.0766535936059382,0.0765921262245467,0.0765260365097837,0.0764713688849088,0.0764406045761,0.0764406045761, +0.0991177089881222,0.0991177089881222,0.0991630464902371,0.0991498758085118,0.0990927013054362,0.0990105901474568,0.0989243920863958,0.0988537522656879,0.0988141325689552,0.0988141325689552, +0.145835137222384,0.145835137222384,0.145873305999129,0.145835291946062,0.145740593415499,0.145614917624523,0.14548649416011,0.145382276851843,0.145323974530361,0.145323974530361, +0.219645383643603,0.219645383643603,0.219665945558296,0.219584286943685,0.21942750629049,0.219231303754395,0.219034854352253,0.218876236477966,0.218787354289875,0.218787354289875, +0.323163334048987,0.323163334048987,0.323149743944122,0.322999440161783,0.322750399647516,0.322451792939054,0.322156679270546,0.321917834450446,0.321782660769468,0.321782660769468, +0.457209601189444,0.457209601189444,0.457141248396633,0.456890415102046,0.456512930794745,0.4560754318636,0.455645674165156,0.455292985236237,0.455087876417823,0.455087876417823, +0.619434445312098,0.619434445312098,0.619295186038884,0.618901521468561,0.618352728530447,0.617737474753923,0.617132707214207,0.616619651066206,0.6163010520728,0.6163010520728, +0.80362137219817,0.80362137219817,0.803430869159363,0.802819674517937,0.802048036077764,0.801220986298906,0.800402674754507,0.799662770759944,0.799128871735244,0.799128871735244, + +00:29:32, +0.0767514813506328,0.0767514813506328,0.0767989102417298,0.0767967702829081,0.0767570791076831,0.07669559572567,0.0766294873039618,0.0765748035863616,0.0765440300589062,0.0765440300589062, +0.0767514813506328,0.0767514813506328,0.0767989102417298,0.0767967702829081,0.0767570791076831,0.07669559572567,0.0766294873039618,0.0765748035863616,0.0765440300589062,0.0765440300589062, +0.099229357527861,0.099229357527861,0.0992747073966485,0.0992615399278947,0.0992043610490266,0.0991222404283699,0.099036031046339,0.0989653813924981,0.0989257560480603,0.0989257560480603, +0.145959816327132,0.145959816327132,0.145997984540015,0.14595997371628,0.145865280571681,0.145739610755486,0.145611192749643,0.145506979645505,0.14544867965733,0.14544867965733, +0.21978195484438,0.21978195484438,0.219802504079853,0.219720855128041,0.219564100044311,0.219367931343378,0.219171516470712,0.219012926836704,0.218924060650481,0.218924060650481, +0.323303450412732,0.323303450412732,0.323289843739001,0.323139568023991,0.322890587520338,0.322592057467424,0.322297021560645,0.322058240635523,0.321923103477627,0.321923103477627, +0.457338590729148,0.457338590729148,0.457270232170906,0.457019461222695,0.456642086677933,0.456204721267086,0.455775097506782,0.455422519642037,0.455217475698979,0.455217475698979, +0.619534479638814,0.619534479638814,0.619395241416477,0.619001690157528,0.618453068598467,0.617838012969708,0.617233442710993,0.616720554341122,0.616402058977407,0.616402058977407, +0.803676246881051,0.803676246881051,0.803485796691534,0.80287478427903,0.802103382795287,0.801276591013621,0.800458536061523,0.79971886304765,0.799185128273529,0.799185128273529, + +00:29:33, +0.0768549874241228,0.0768549874241228,0.0769024366244039,0.0769003013004729,0.0768606022222766,0.0767991028944433,0.0767329758244088,0.0766782760626719,0.0766474933439646,0.0766474933439646, +0.0768549874241228,0.0768549874241228,0.0769024366244039,0.0769003013004729,0.0768606022222766,0.0767991028944433,0.0767329758244088,0.0766782760626719,0.0766474933439646,0.0766474933439646, +0.0993410282781228,0.0993410282781228,0.0993863904940618,0.0993732262519868,0.0993160430373524,0.0992339130098945,0.0991476923656438,0.0990770329270339,0.0990374019620734,0.0990374019620734, +0.14608449004754,0.14608449004754,0.146122657695691,0.146084650123259,0.145989962405348,0.145864298616025,0.145735886121966,0.14563167726522,0.145573379634507,0.145573379634507, +0.219918487512575,0.219918487512575,0.21993902409056,0.219857384827026,0.21970065534313,0.21950452051125,0.21930814020099,0.219149578833291,0.219060728663151,0.219060728663151, +0.323443499239615,0.323443499239615,0.323429876035417,0.323279628402375,0.323030707909209,0.32273225450468,0.32243729634998,0.322198579310397,0.322063478669327,0.322063478669327, +0.457467498384091,0.457467498384091,0.457399134097062,0.457148425476718,0.456771160639905,0.456333928677197,0.45590443878028,0.45555197191581,0.455346992809562,0.455346992809562, +0.619634439766088,0.619634439766088,0.619495222603567,0.619101784581101,0.618553334274851,0.617938476644086,0.617334103515332,0.616821382793263,0.616502990977467,0.616502990977467, +0.803731077384208,0.803731077384208,0.803540680006865,0.802929849675836,0.80215868495223,0.801332150952175,0.800514352376927,0.799774910148959,0.79924133948672,0.79924133948672, + +00:29:34, +0.0769585310242193,0.0769585310242193,0.0770060005042453,0.0770038698230351,0.0769641628789501,0.0769026476600388,0.0768365020002335,0.076781786242896,0.0767509943603018,0.0767509943603018, +0.0769585310242193,0.0769585310242193,0.0770060005042453,0.0770038698230351,0.0769641628789501,0.0769026476600388,0.0768365020002335,0.076781786242896,0.0767509943603018,0.0767509943603018, +0.099452721182882,0.099452721182882,0.0994980957264764,0.099484934724767,0.0994277472143337,0.0993456078358684,0.0992593759880608,0.0991887068129732,0.0991490702546316,0.0991490702546316, +0.1462091583583,0.1462091583583,0.146247325440859,0.14620932114166,0.146114638891076,0.145988981180603,0.145860574251423,0.145756369685234,0.145698074436082,0.145698074436082, +0.220054981667545,0.220054981667545,0.220075505609753,0.219993876059913,0.219837172206123,0.21964107127706,0.219444725562007,0.219286192486541,0.21919735834664,0.21919735834664, +0.323583480597291,0.323583480597291,0.323569840900965,0.323419621364469,0.32317076088159,0.322872384118193,0.322577503705829,0.322338850542273,0.322203786411733,0.322203786411733, +0.457596324255652,0.457596324255652,0.457527954276406,0.457277307965402,0.456900152781957,0.456463054195239,0.456033698086967,0.455681342158883,0.455476427850909,0.455476427850909, +0.619734325796377,0.619734325796377,0.619595129702573,0.619201804841775,0.618653525662231,0.618038865879846,0.617434689730169,0.616922136525713,0.616603848176155,0.616603848176155, +0.803785863772219,0.803785863772219,0.803595519169979,0.80298487077318,0.802213942613692,0.801387666179961,0.800570123766406,0.799830912129823,0.799297505440963,0.799297505440963, + +00:29:35, +0.0770621120802438,0.0770621120802438,0.077109601810603,0.077107475779934,0.0770677610070026,0.0770062299516965,0.0769400657606125,0.0768853340561576,0.0768545330370117,0.0768545330370117, +0.0770621120802438,0.0770621120802438,0.077109601810603,0.077107475779934,0.0770677610070026,0.0770062299516965,0.0769400657606125,0.0768853340561576,0.0768545330370117,0.0768545330370117, +0.0995644361861868,0.0995644361861868,0.0996098230379653,0.0995966652902874,0.0995394735239644,0.0994573248502033,0.0993710818574141,0.0993004029940677,0.0992607608694459,0.0992607608694459, +0.146333821234168,0.146333821234168,0.146371987750285,0.146333986746211,0.146239310003506,0.146113658423748,0.145985257112423,0.145881056879858,0.14582276403631,0.14582276403631, +0.220191437328663,0.220191437328663,0.220211948656783,0.220130328845994,0.219973650652483,0.219777583659875,0.219581272572701,0.219422767815284,0.219333949719718,0.219333949719718, +0.323723394553346,0.323723394553346,0.323709738403172,0.323559546977738,0.323310746504871,0.323012446375266,0.322717643695405,0.322479054398292,0.322344026771946,0.322344026771946, +0.457725068445063,0.457725068445063,0.457656692810096,0.457406108789884,0.457029063205232,0.456592097922367,0.45616287552801,0.455810630472436,0.455605780924212,0.455605780924212, +0.619834137831963,0.619834137831963,0.619694962815737,0.619301751041866,0.618753642863058,0.618139180779597,0.61753520145827,0.617022815641377,0.616704630676465,0.616704630676465, +0.803840606109536,0.803840606109536,0.803650314245374,0.803039847635768,0.802269155844648,0.801443136762249,0.800625850295519,0.79988686905607,0.79935362620228,0.79935362620228, + +00:29:36, +0.0771657305215858,0.0771657305215858,0.0772132404728939,0.0772111191005765,0.0771713965358009,0.0771098496987241,0.07704366703479,0.0769889194316482,0.076958109303256,0.076958109303256, +0.0771657305215858,0.0771657305215858,0.0772132404728939,0.0772111191005765,0.0771713965358009,0.0771098496987241,0.07704366703479,0.0769889194316482,0.076958109303256,0.076958109303256, +0.0996761732321588,0.0996761732321588,0.099721572372675,0.0997084178926739,0.0996512219103119,0.0995690639968843,0.0994828099176014,0.0994121214141428,0.0993724737503006,0.0993724737503006, +0.146458478649965,0.146458478649965,0.146496644598801,0.1464586469117,0.146363975717344,0.146238330320051,0.14610993467944,0.146005738823467,0.14594744840951,0.14594744840951, +0.220327854515319,0.220327854515319,0.220348353251018,0.220266743204576,0.220110090701417,0.219914057678779,0.219717781252025,0.219559304838368,0.219470502801174,0.219470502801174, +0.323863241175299,0.323863241175299,0.323849568609498,0.323699405309581,0.323450664846379,0.323152441343135,0.322857716385855,0.322619190945526,0.322484199816998,0.322484199816998, +0.457853731053405,0.457853731053405,0.457785349799136,0.457534828051151,0.457157892010724,0.456721059959587,0.456291971204427,0.455939836957499,0.455735052130511,0.455735052130511, +0.619933875974946,0.619933875974946,0.61979472204512,0.619401623283511,0.618853685979606,0.61823942144577,0.617635638802222,0.617123420242979,0.616805338581213,0.616805338581213, +0.803895304460493,0.803895304460493,0.80370506529743,0.803094780328182,0.802324324709951,0.801498562764184,0.800681532029706,0.799942780993405,0.799409701836569,0.799409701836569, + +00:29:37, +0.0772693862777025,0.0772693862777025,0.0773169164206026,0.0773147997144373,0.0772750693947795,0.077213506830497,0.0771473057520781,0.077092542298627,0.0770617230882642,0.0770617230882642, +0.0772693862777025,0.0772693862777025,0.0773169164206026,0.0773147997144373,0.0772750693947795,0.077213506830497,0.0771473057520781,0.077092542298627,0.0770617230882642,0.0770617230882642, +0.0997879322649931,0.0997879322649931,0.0998333436748253,0.0998201924761253,0.0997629923175169,0.0996808252199698,0.0995945601125941,0.0995238620170973,0.0994842088410538,0.0994842088410538, +0.146583130580572,0.146583130580572,0.1466212959613,0.14658330161298,0.146488636007358,0.146362996844168,0.14623460692701,0.1461304154905,0.146072127530068,0.146072127530068, +0.220464233246916,0.220464233246916,0.220484719411842,0.220403119154983,0.220246492372152,0.220050493352871,0.21985425161895,0.219695803574659,0.219607017609813,0.219607017609813, +0.324003020530603,0.324003020530603,0.323989331587337,0.323839196427331,0.32359051597337,0.323292369088971,0.32299772184426,0.322759260250983,0.322624305613858,0.322624305613858, +0.457982312181609,0.457982312181609,0.457913925344384,0.457663465850042,0.457286639299277,0.456849940407756,0.456420985217085,0.456068961714954,0.4558642415707,0.4558642415707, +0.620033540327249,0.620033540327249,0.619894407492607,0.61950142166867,0.618953655113968,0.618339587980616,0.617736001864434,0.617223950433065,0.616905971993037,0.616905971993037, +0.803949958889301,0.803949958889301,0.803759772390402,0.803149668914881,0.802379449274331,0.80155394425079,0.80073716903428,0.799998648007408,0.799465732409604,0.799465732409604, + +00:29:38, +0.077373079278119,0.077373079278119,0.0774206295832816,0.0774185175510591,0.077378779513441,0.0773172012764585,0.0772509818418562,0.0771962025864208,0.0771653743213331,0.0771653743213331, +0.077373079278119,0.077373079278119,0.0774206295832816,0.0774185175510591,0.077378779513441,0.0773172012764585,0.0772509818418562,0.0771962025864208,0.0771653743213331,0.0771653743213331, +0.0998997132289581,0.0998997132289581,0.0999451368887091,0.0999319889849141,0.0998747846897933,0.0997926084635918,0.0997063323864366,0.0996356247469037,0.099595966085637,0.099595966085637, +0.146707777000936,0.146707777000936,0.146745941812739,0.146707950824968,0.146613290848379,0.146487657970817,0.146359273829733,0.146255086855459,0.146196801372431,0.146196801372431, +0.220600573542875,0.220600573542875,0.220621047158654,0.220539456716553,0.220382855683927,0.220186890701269,0.219990683692464,0.219832264043037,0.219743494164459,0.219743494164459, +0.324142732686641,0.324142732686641,0.324129027404012,0.323978920398252,0.323730299953036,0.323432229679878,0.323137660137632,0.322899262381604,0.322764344229427,0.322764344229427, +0.458110811930456,0.458110811930456,0.458042419546546,0.457792022287243,0.457415305171588,0.456978739367582,0.456549917666705,0.456198004845533,0.45599334934552,0.45599334934552, +0.620133130990619,0.620133130990619,0.619994019259904,0.619601146299123,0.619053550368064,0.61843968048621,0.617836290747136,0.617324406314005,0.617006531014395,0.617006531014395, +0.80400456946005,0.80400456946005,0.803814435588426,0.803204513460206,0.802434529602398,0.801609281286968,0.800792761374434,0.800054470163536,0.799521717987034,0.799521717987034, + +00:29:39, +0.0774768094524281,0.0774768094524281,0.0775243798905513,0.0775222725400523,0.0774825268213554,0.0774209329661196,0.0773546952335719,0.0772999002244241,0.0772690629318274,0.0772690629318274, +0.0774768094524281,0.0774768094524281,0.0775243798905513,0.0775222725400523,0.0774825268213554,0.0774209329661196,0.0773546952335719,0.0772999002244241,0.0772690629318274,0.0772690629318274, +0.100011516068395,0.100011516068395,0.100056951958693,0.100043807363386,0.0999865989714285,0.0999044136719554,0.0998181266832471,0.0997474095476075,0.0997077454280554,0.0997077454280554, +0.146832417886068,0.146832417886068,0.146870582128137,0.146832594522644,0.146737940215304,0.146612313674782,0.146483935362274,0.146379752892913,0.146321469911111,0.146321469911111, +0.220736875422633,0.220736875422633,0.220757336510868,0.22067575590864,0.220519180656,0.220323249743104,0.220127077491572,0.219968686262403,0.219879932483951,0.219879932483951, +0.32428237771073,0.32428237771073,0.324268656126781,0.32411857728954,0.323870016852501,0.32357202318289,0.323277531332919,0.323039197404266,0.322904315730541,0.322904315730541, +0.458239230400577,0.458239230400577,0.45817083250618,0.457920497463295,0.457543889728201,0.457107456939622,0.456678768653856,0.456326966449819,0.456122375555569,0.456122375555569, +0.620232648066623,0.620232648066623,0.62009355744854,0.619700797276476,0.619153371843631,0.618539699064448,0.617936505552381,0.617424787987988,0.617107015747567,0.617107015747567, +0.80405913623671,0.80405913623671,0.803869054955517,0.803259314028374,0.802489565758639,0.801664573937497,0.800848309115237,0.800110247527124,0.799577658634387,0.799577658634387, + +00:29:40, +0.0775805767302909,0.0775805767302909,0.0776281672721,0.0776260646110953,0.0775863112481609,0.077524701829059,0.0774584458567403,0.0774036351420992,0.0773727888491796,0.0773727888491796, +0.0775805767302909,0.0775805767302909,0.0776281672721,0.0776260646110953,0.0775863112481609,0.077524701829059,0.0774584458567403,0.0774036351420992,0.0773727888491796,0.0773727888491796, +0.10012334072772,0.10012334072772,0.100168788829216,0.100155647555959,0.100098435106783,0.100016240789339,0.0999299429472168,0.099859216363328,0.0998195468123871,0.0998195468123871, +0.146957053211041,0.146957053211041,0.146995216882578,0.14695723268105,0.14686258408309,0.146736963930907,0.146608591499361,0.146504413577491,0.146446133120684,0.146446133120684, +0.22087313890564,0.22087313890564,0.220893587487915,0.220812016750615,0.220655467307642,0.220459570497525,0.220263433035293,0.220105070251671,0.220016332587146,0.220016332587146, +0.324421955670119,0.324421955670119,0.324408217822834,0.324258167168326,0.324009666738821,0.323711749664979,0.323417335497003,0.323179065385776,0.32304422018397,0.32304422018397, +0.458367567692456,0.458367567692456,0.458299164323693,0.458048891478586,0.457672393069515,0.457236093224287,0.456807538278962,0.456455846628249,0.456251320301291,0.456251320301291, +0.620332091656653,0.620332091656653,0.620193022159869,0.619800374702155,0.619253119642233,0.61863964381705,0.618036646382044,0.617525095557028,0.617207426294657,0.617207426294657, +0.804113659283131,0.804113659283131,0.803923630555569,0.803314070683482,0.802544557807419,0.801719822267035,0.800903812321637,0.800165980163383,0.799633554417066,0.799633554417066, + +00:29:41, +0.0776843810414359,0.0776843810414359,0.0777319916576838,0.0777298936939342,0.0776901327235634,0.0776285077949234,0.0775622336409444,0.0775074072689761,0.0774765520028899,0.0774765520028899, +0.0776843810414359,0.0776843810414359,0.0777319916576838,0.0777298936939342,0.0776901327235634,0.0776285077949234,0.0775622336409444,0.0775074072689761,0.0774765520028899,0.0774765520028899, +0.100235187151419,0.100235187151419,0.100280647444791,0.100267509507126,0.10021029304029,0.100128089760094,0.10004178112261,0.0999710451382575,0.099931370182784,0.099931370182784, +0.147081682950989,0.147081682950989,0.147119846051208,0.147081865275292,0.146987222426759,0.146861608714103,0.146733242215786,0.146629068883887,0.14657079097579,0.14657079097579, +0.221009364011364,0.221009364011364,0.221029800109241,0.220948239261863,0.220791715658143,0.220595852983696,0.220399750342664,0.220241416029773,0.220152694492917,0.220152694492917, +0.32456146663199,0.32456146663199,0.324547712559294,0.324397690101671,0.324149249678986,0.323851409193048,0.323557072696698,0.323318866392879,0.323184057656419,0.323184057656419, +0.458495823906426,0.458495823906426,0.458427415099347,0.458177204433359,0.457800815295778,0.457364648321839,0.456936226642296,0.456584645481109,0.456380183682987,0.456380183682987, +0.620431461861923,0.620431461861923,0.620292413495065,0.619899878677412,0.619352793865255,0.618739514845559,0.618136713337825,0.617625329122961,0.617307762757591,0.617307762757591, +0.804168138663041,0.804168138663041,0.803978162452356,0.803368783489508,0.802599505812984,0.801775026340117,0.800959271058457,0.800221668137403,0.799689405400352,0.799689405400352, + +00:29:42, +0.0777882223156599,0.0777882223156599,0.077835852977127,0.0778337597183834,0.0777939911773367,0.0777323507934273,0.077666058515835,0.0776112165346528,0.0775803523225261,0.0775803523225261, +0.0777882223156599,0.0777882223156599,0.077835852977127,0.0778337597183834,0.0777939911773367,0.0777323507934273,0.077666058515835,0.0776112165346528,0.0775803523225261,0.0775803523225261, +0.100347055284055,0.100347055284055,0.100392527750004,0.100379393161452,0.100322172716456,0.100239960528646,0.100153641153765,0.100082895816662,0.100043215483471,0.100043215483471, +0.147206307081112,0.147206307081112,0.147244469609236,0.147206492280537,0.147111855221396,0.146986247999341,0.146857887486403,0.14675371878686,0.146695443451131,0.146695443451131, +0.221145550759287,0.221145550759287,0.221165974394305,0.221084423461784,0.220927925726803,0.220732097220797,0.220536029432739,0.220377723615659,0.220289018220155,0.220289018220155, +0.324700910663457,0.324700910663457,0.324687140403216,0.32453714615657,0.324288765739918,0.323991001833931,0.323696742998752,0.323458600492252,0.323323828214526,0.323323828214526, +0.458623999142672,0.458623999142672,0.45855558493325,0.458305436427706,0.45792915650709,0.45749312233239,0.457064833843984,0.456713363108539,0.456508965800807,0.456508965800807, +0.620530758783472,0.620530758783472,0.620391731555131,0.619999309303321,0.619452394613908,0.61883931225134,0.618236706521245,0.617725488787445,0.617408025238118,0.617408025238118, +0.80422257444005,0.80422257444005,0.804032650709534,0.803423452510307,0.802654409839458,0.801830186221157,0.801014685390402,0.80027731151415,0.799745211649403,0.799745211649403, + +00:29:43, +0.0778921004828277,0.0778921004828277,0.0779397511603216,0.0779376626143249,0.0778978865393226,0.0778362307543531,0.0777699204111307,0.0777150628687948,0.077684189737724,0.077684189737724, +0.0778921004828277,0.0778921004828277,0.0779397511603216,0.0779376626143249,0.0778978865393226,0.0778362307543531,0.0777699204111307,0.0777150628687948,0.077684189737724,0.077684189737724, +0.10045894507026,0.10045894507026,0.100504429689512,0.100491298463573,0.100434074079862,0.100351853039491,0.100265522985092,0.100194768342879,0.100155082658745,0.100155082658745, +0.147330925576669,0.147330925576669,0.147369087531932,0.147331113672016,0.147236482442146,0.147110881761657,0.14698252728613,0.146878363261231,0.146820090521475,0.146820090521475, +0.221281699168904,0.221281699168904,0.221302110362582,0.221220569369794,0.221064097532943,0.220868303228024,0.220672270324584,0.220513993028291,0.220425303787765,0.220425303787765, +0.324840287831565,0.324840287831565,0.324826501421587,0.324676535399952,0.324428214988472,0.3241305276544,0.323836346469847,0.323598267750504,0.323463531924862,0.323463531924862, +0.45875209350123,0.45875209350123,0.458683673925368,0.458433587561571,0.458057416803404,0.457621515355907,0.457193359984005,0.456841999610533,0.456637666754755,0.456637666754755, +0.620629982522163,0.620629982522163,0.620490976440888,0.620098666680781,0.619551921989224,0.618939036135584,0.618336626033649,0.617825574651964,0.617508213837812,0.617508213837812, +0.804276966677647,0.804276966677647,0.804087095390636,0.803478077809617,0.802709269950845,0.801885301974451,0.801070055382053,0.800332910358469,0.799800973229257,0.799800973229257, + +00:29:44, +0.0779960154728718,0.0779960154728718,0.0780436861372278,0.0780416023117089,0.0780018187394307,0.077940147607551,0.077873819256618,0.0778189462011356,0.0777880641781872,0.0777880641781872, +0.0779960154728718,0.0779960154728718,0.0780436861372278,0.0780416023117089,0.0780018187394307,0.077940147607551,0.077873819256618,0.0778189462011356,0.0777880641781872,0.0777880641781872, +0.100570856454742,0.100570856454742,0.100616353208048,0.100603225358201,0.100545997075158,0.100463767237201,0.100377426561075,0.100306662661321,0.100266971652979,0.100266971652979, +0.147455538412985,0.147455538412985,0.147493699794629,0.147455729425022,0.14736110406422,0.147235509976146,0.147107161589947,0.147003002281882,0.14694473216165,0.14694473216165, +0.221417809259728,0.221417809259728,0.221438208033563,0.221356677005322,0.221200231095896,0.221004471024587,0.220808473037286,0.220650224286651,0.220561551214669,0.220561551214669, +0.324979598203295,0.324979598203295,0.324965795681328,0.324815857898675,0.324567597491437,0.324269986721156,0.323975883176598,0.323737868234183,0.323603168853935,0.323603168853935, +0.458880107081988,0.458880107081988,0.458811682175513,0.458561657934752,0.458185596284523,0.457749827492206,0.45732180516219,0.456970555086933,0.456766286644688,0.456766286644688, +0.620729133178684,0.620729133178684,0.620590148252988,0.620197950910516,0.619651376092062,0.619038686599305,0.618436471976209,0.617925586817825,0.617608328658068,0.617608328658068, +0.804331315439205,0.804331315439205,0.804141496559079,0.803532659451053,0.802764086211028,0.801940373664169,0.801125381097871,0.800388464735084,0.799856690204826,0.799856690204826, + +00:29:45, +0.078099967215793,0.078099967215793,0.0781476578378736,0.0781455787405533,0.0781057877076388,0.0780441012829394,0.0779777549821515,0.0779228664614767,0.0778919755736871,0.0778919755736871, +0.078099967215793,0.078099967215793,0.0781476578378736,0.0781455787405533,0.0781057877076388,0.0780441012829394,0.0779777549821515,0.0779228664614767,0.0778919755736871,0.0778919755736871, +0.100682789382281,0.100682789382281,0.100728298250416,0.100715173790118,0.100657941647072,0.100575703066419,0.10048935182627,0.100418578716473,0.100378882410616,0.100378882410616, +0.147580145565445,0.147580145565445,0.147618306372722,0.14758033951491,0.147485720062888,0.14736013261797,0.147231790372896,0.147127635823761,0.147069368346549,0.147069368346549, +0.221553881051284,0.221553881051284,0.221574267426751,0.221492746387814,0.221336326435009,0.221140600629713,0.220944637589943,0.220786417409736,0.220697760519807,0.220697760519807, +0.325118841845556,0.325118841845556,0.32510502324929,0.324955113719534,0.324706913315534,0.324409379100836,0.324115353185555,0.323877402009765,0.323742739068185,0.323742739068185, +0.459008039984687,0.459008039984687,0.458939609783353,0.458689647646897,0.458313695050106,0.457878058840959,0.457450169478222,0.457099029637439,0.456894825570315,0.456894825570315, +0.620828210853546,0.620828210853546,0.620689247091904,0.620297162093074,0.619750757023105,0.619138263743342,0.618536244449918,0.618025525386159,0.617708369800108,0.617708369800108, +0.804385620787974,0.804385620787974,0.804195854278158,0.803587197498114,0.802818858683772,0.801995401354367,0.801180662602197,0.800443974708598,0.799912362640905,0.799912362640905, + +00:29:46, +0.07820395564166,0.07820395564166,0.0782516661923553,0.0782495918309444,0.0782097933739925,0.0781480917105043,0.0780817275176533,0.0780268235796872,0.0779959238540629,0.0779959238540629, +0.07820395564166,0.07820395564166,0.0782516661923553,0.0782495918309444,0.0782097933739925,0.0781480917105043,0.0780817275176533,0.0780268235796872,0.0779959238540629,0.0779959238540629, +0.100794743797729,0.100794743797729,0.100840264761491,0.100827143704182,0.100769907740399,0.100687660471861,0.100601298725307,0.100530516452892,0.100490814876173,0.100490814876173, +0.147704747009496,0.147704747009496,0.14774290724167,0.147704943917097,0.147610330413484,0.14748474966235,0.147356413610084,0.147252263861877,0.147193999051128,0.147193999051128, +0.221689914563113,0.221689914563113,0.221710288561667,0.221628777536729,0.221472383569646,0.221276692062642,0.221080764001671,0.220922572416556,0.220833931722131,0.220833931722131, +0.325258018825195,0.325258018825195,0.325244184192259,0.325094302929254,0.324846162527417,0.324548704860009,0.324254756563201,0.324016869143665,0.323882242633987,0.323882242633987, +0.45913589230892,0.45913589230892,0.459067456848407,0.458817556797508,0.458441713199661,0.458006209501689,0.457578453031638,0.457227423361602,0.4570232836312,0.4570232836312, +0.620927215647088,0.620927215647088,0.620788273057935,0.620396300328829,0.619850064882862,0.619237767668359,0.618635943555596,0.618125390457922,0.617808337364979,0.617808337364979, +0.804439882787088,0.804439882787088,0.804250168611051,0.803641692014178,0.80287358743272,0.802050385108975,0.80123589995925,0.800499440343492,0.799967990602164,0.799967990602164, + +00:29:47, +0.0783079806806095,0.0783079806806095,0.0783557111308369,0.0783536415130363,0.0783138356686054,0.0782521188203,0.0781857367931138,0.0781308174857044,0.0780999089492219,0.0780999089492219, +0.0783079806806095,0.0783079806806095,0.0783557111308369,0.0783536415130363,0.0783138356686054,0.0782521188203,0.0781857367931138,0.0781308174857044,0.0780999089492219,0.0780999089492219, +0.100906719646011,0.100906719646011,0.100952252686225,0.100939135045321,0.100881895300012,0.100799639398316,0.100713267202889,0.100642475815208,0.100602768994241,0.100602768994241, +0.147829342720647,0.147829342720647,0.147867502376991,0.147829542607062,0.147734935091404,0.147609361084571,0.147481031276679,0.147376886371303,0.147318624250403,0.147318624250403, +0.22182590981477,0.22182590981477,0.221846271457842,0.221764770471539,0.221608402519185,0.221412745342631,0.2212168522916,0.22105868932614,0.220970064840613,0.220970064840613, +0.325397129208985,0.325397129208985,0.325383278576953,0.325233425594493,0.324985345193673,0.324687964065177,0.324394093375951,0.324156269702229,0.324021679617649,0.324021679617649, +0.459263664154131,0.459263664154131,0.459195223470048,0.458945385485938,0.45856965083255,0.458134279573771,0.457706655921828,0.457355736358824,0.457151660926758,0.457151660926758, +0.621026147659473,0.621026147659473,0.620887226251209,0.620495365717982,0.619949299771665,0.619337198474847,0.618735569393888,0.618225182133897,0.61790823145355,0.61790823145355, +0.804494101499561,0.804494101499561,0.804304439620819,0.803696143062505,0.802928272521398,0.802105324991807,0.80129109323313,0.800554861704126,0.800023574153155,0.800023574153155, + +00:29:48, +0.0784120422628464,0.0784120422628464,0.0784597925835509,0.0784577277170512,0.0784179145216593,0.0783561825424486,0.0782897827385912,0.0782348481095333,0.0782039307891391,0.0782039307891391, +0.0784120422628464,0.0784120422628464,0.0784597925835509,0.0784577277170512,0.0784179145216593,0.0783561825424486,0.0782897827385912,0.0782348481095333,0.0782039307891391,0.0782039307891391, +0.101018716872126,0.101018716872126,0.101064261969638,0.101051147758536,0.100993904270853,0.100911639790647,0.10082525720379,0.100754456748126,0.100714744709481,0.100714744709481, +0.14795393267447,0.14795393267447,0.147992091754264,0.147954135560344,0.147859534072104,0.147733966859979,0.147605643347909,0.147501503327171,0.147443243919456,0.147443243919456, +0.221961866825823,0.221961866825823,0.221982216134825,0.221900725211734,0.221744383303016,0.221548760488951,0.221352902478876,0.22119476815753,0.221106159894237,0.221106159894237, +0.325536173063638,0.325536173063638,0.325522306470022,0.325372481781842,0.325124461380823,0.324827156782777,0.324533363690157,0.324295603751739,0.324161050085415,0.324161050085415, +0.459391355619618,0.459391355619618,0.459322909747499,0.459073133811395,0.45869750804799,0.458262269156436,0.457834778248035,0.457483968728366,0.457279957556259,0.457279957556259, +0.621125006990692,0.621125006990692,0.620986106771675,0.620594358360558,0.620048461789676,0.61943655626312,0.618835122065264,0.61832490051469,0.61800805216652,0.61800805216652, +0.80454827698829,0.80454827698829,0.804358667370402,0.803750550706235,0.802982914013212,0.802160221066557,0.801346242487815,0.800610238854742,0.800079113358306,0.800079113358306, + +00:29:49, +0.0785161403186436,0.0785161403186436,0.0785639104807977,0.0785618503732794,0.078522029863404,0.0784602828071403,0.0783938652842118,0.0783389153812469,0.0783079893038575,0.0783079893038575, +0.0785161403186436,0.0785161403186436,0.0785639104807977,0.0785618503732794,0.078522029863404,0.0784602828071403,0.0783938652842118,0.0783389153812469,0.0783079893038575,0.0783079893038575, +0.101130735421142,0.101130735421142,0.101176292556827,0.101163181788901,0.101105934597939,0.101023661593786,0.100937268672858,0.10086645919642,0.10082674196663,0.10082674196663, +0.148078516846596,0.148078516846596,0.148116675349134,0.148078722752546,0.147984127331104,0.147858566963981,0.147730249799069,0.147626114704679,0.147567858033428,0.147567858033428, +0.222097785615856,0.222097785615856,0.222118122612175,0.222036641776815,0.221880325940547,0.221684737520885,0.221488914582659,0.221330808929784,0.221242216902004,0.221242216902004, +0.325675150455794,0.325675150455794,0.32566126793805,0.325511471557825,0.325263511155318,0.324966283079178,0.324672567572101,0.324434871358408,0.324300354103462,0.324300354103462, +0.459518966804532,0.459518966804532,0.459450515779839,0.45920080187294,0.458825284945049,0.458390178348766,0.457962820109357,0.457612120569339,0.457408173618828,0.457408173618828, +0.621223793740559,0.621223793740559,0.621084914719114,0.62069327835641,0.620147551036881,0.619535841133321,0.618934601670022,0.618424545700735,0.61810779960441,0.61810779960441, +0.804602409316054,0.804602409316054,0.804412851922623,0.803804915008392,0.803037511971449,0.802215073396798,0.801401347787165,0.800665571859459,0.800134608281929,0.800134608281929, + +00:29:50, +0.0786202747783423,0.0786202747783423,0.0786680647529456,0.0786660094120793,0.0786261816241571,0.0785644195446333,0.0784979843601697,0.0784430192309864,0.0784120844234881,0.0784120844234881, +0.0786202747783423,0.0786202747783423,0.0786680647529456,0.0786660094120793,0.0786261816241571,0.0785644195446333,0.0784979843601697,0.0784430192309864,0.0784120844234881,0.0784120844234881, +0.101242775238204,0.101242775238204,0.101288344392956,0.101275237081562,0.101217986226357,0.101135704752741,0.101049301555013,0.10097848310494,0.100938760710495,0.100938760710495, +0.148203095212719,0.148203095212719,0.148241253137302,0.148203304159331,0.148108714843984,0.147983161372048,0.147854850605511,0.147750720479084,0.147692466567525,0.147692466567525, +0.222233666204464,0.222233666204464,0.222253990909469,0.222172520186297,0.222016230451198,0.221820676457734,0.221624888622124,0.221466811661975,0.22137823588293,0.22137823588293, +0.325814061452026,0.325814061452026,0.32580016304755,0.325650394988898,0.325402494583546,0.325105343020682,0.324811705088002,0.324574072588385,0.324439591737901,0.324439591737901, +0.459646497807878,0.459646497807878,0.459578041666,0.459328389769486,0.458952981622649,0.458518007249698,0.458090781604745,0.457740191980708,0.457536309213443,0.457536309213443, +0.621322508008719,0.621322508008719,0.62118365019313,0.620792125805217,0.620246567613093,0.619635053185418,0.619034008308284,0.618524117792291,0.61820747386757,0.61820747386757, +0.804656498545515,0.804656498545515,0.804466993340188,0.803859236031881,0.803092066459279,0.802269882045987,0.801456409194922,0.800720860782278,0.800190058988211,0.800190058988211, + +00:29:51, +0.0787244455723515,0.0787244455723515,0.0787722553304313,0.0787702047638774,0.0787303697343048,0.0786685926852539,0.0786021398967272,0.0785471595889607,0.07851621607821,0.07851621607821, +0.0787244455723515,0.0787244455723515,0.0787722553304313,0.0787702047638774,0.0787303697343048,0.0786685926852539,0.0786021398967272,0.0785471595889607,0.07851621607821,0.07851621607821, +0.101354836268526,0.101354836268526,0.101400417423267,0.101387313581738,0.101330059101269,0.101247769212591,0.101161355795248,0.101090528418606,0.101050800885957,0.101050800885957, +0.148327667748594,0.148327667748594,0.148365825094533,0.148327879756422,0.148233296586385,0.14810775005971,0.14797944574265,0.147875320625708,0.147817069497013,0.147817069497013, +0.222369508611258,0.222369508611258,0.222389821046294,0.22230836045971,0.222152096854403,0.221956577318813,0.22176082461646,0.221602776373192,0.221514216856046,0.221514216856046, +0.325952906118843,0.325952906118843,0.325938991864973,0.325789252141452,0.325541411731825,0.325244336673525,0.32495077630401,0.324713207507754,0.324578763054777,0.324578763054777, +0.459773948728512,0.459773948728512,0.459705487504766,0.459455897599802,0.459080598179568,0.458645755958024,0.458218662833004,0.457868183061295,0.457664364438937,0.457664364438937, +0.621421149894641,0.621421149894641,0.621282313293156,0.620890900806486,0.620345511617951,0.619734192519207,0.619133342080002,0.618623616889444,0.618307075056174,0.618307075056174, +0.804710544739217,0.804710544739217,0.804521091685687,0.803913513839488,0.803146577539752,0.802324647077461,0.801511426774706,0.800776105687081,0.800245465541223,0.800245465541223, + +00:29:52, +0.0788286526311487,0.0788286526311487,0.0788764821437597,0.0788744363591684,0.0788345941243009,0.0787728021593964,0.0787063318242146,0.0786513363854469,0.07862038419827,0.07862038419827, +0.0788286526311487,0.0788286526311487,0.0788764821437597,0.0788744363591684,0.0788345941243009,0.0787728021593964,0.0787063318242146,0.0786513363854469,0.07862038419827,0.07862038419827, +0.101466918457396,0.101466918457396,0.101512511593071,0.10149941123472,0.101442153167906,0.101359854918488,0.101273431338628,0.101202595082413,0.101162862437969,0.101162862437969, +0.148452234430038,0.148452234430038,0.148490391196652,0.148452449519606,0.148357872534009,0.14823233300256,0.148104035185964,0.147999915119931,0.14794166679722,0.14794166679722, +0.222505312855862,0.222505312855862,0.222525613042252,0.222444162616596,0.22228792516961,0.222092440123448,0.221896722584873,0.221738703082537,0.221650159840398,0.221650159840398, +0.326091684522682,0.326091684522682,0.326077754456698,0.325928043081808,0.325680262666408,0.325383264103877,0.32508978128621,0.324852276182531,0.324717868120069,0.324717868120069, +0.459901319665148,0.459901319665148,0.459832853394777,0.459583325462509,0.459208134714435,0.458773424572389,0.458346463892795,0.457996093909774,0.457792339393997,0.457792339393997, +0.621519719497625,0.621519719497625,0.621380904118453,0.620989603459551,0.620444383150924,0.61983325923431,0.619232603084951,0.618723043092108,0.618406603270225,0.618406603270225, +0.804764547959587,0.804764547959587,0.804575147021589,0.803967748493885,0.803201045275802,0.802379368554436,0.80156640059002,0.800831306637628,0.800300828004914,0.800300828004914, + +00:29:53, +0.0789328958852793,0.0789328958852793,0.0789807451235037,0.078978704128515,0.0789388547246677,0.0788770478975232,0.0788105600730303,0.07875554955079,0.0787245887139832,0.0787245887139832, +0.0789328958852793,0.0789328958852793,0.0789807451235037,0.078978704128515,0.0789388547246677,0.0788770478975232,0.0788105600730303,0.07875554955079,0.0787245887139832,0.0787245887139832, +0.101579021750173,0.101579021750173,0.101624626847751,0.10161152998587,0.101554268371575,0.101471961815656,0.101385528130291,0.101314683041425,0.101274945311557,0.101274945311557, +0.148576795232925,0.148576795232925,0.148614951419545,0.148577013424728,0.148482442662621,0.148356910176252,0.148228618910992,0.148124503937198,0.148066258443536,0.148066258443536, +0.222641078957912,0.222641078957912,0.222661366916959,0.222579926676513,0.22242371541628,0.222228264890982,0.22203258254658,0.221874591809127,0.221786064855046,0.221786064855046, +0.326230396729915,0.326230396729915,0.326216450889038,0.32606676787622,0.325819047453479,0.325522125377839,0.32522872010062,0.324991278678666,0.324856906999693,0.324856906999693, +0.460028610716349,0.460028610716349,0.459960139434526,0.459710673456082,0.459335591325735,0.458901013191291,0.458474184882631,0.458123924624676,0.457920234177166,0.457920234177166, +0.621618216916796,0.621618216916796,0.62147942276811,0.621088233863575,0.620543182311308,0.619932253430177,0.619331791422737,0.618822396500023,0.618506058609554,0.618506058609554, +0.804818508268936,0.804818508268936,0.804629159410251,0.804021940057623,0.803255469730243,0.802434046540016,0.801621330704248,0.800886463697563,0.800356146443116,0.800356146443116, + +00:29:54, +0.0790371752653571,0.0790371752653571,0.0790850442003044,0.0790830080025484,0.0790431514659954,0.078981329830165,0.0789148245736407,0.0788597990154033,0.0788288295557326,0.0788288295557326, +0.0790371752653571,0.0790371752653571,0.0790850442003044,0.0790830080025484,0.0790431514659954,0.078981329830165,0.0789148245736407,0.0788597990154033,0.0788288295557326,0.0788288295557326, +0.10169114609229,0.10169114609229,0.101736763132764,0.101723669780625,0.101666404657653,0.101584089849389,0.101497646115446,0.101426792240782,0.10138704945182,0.10138704945182, +0.148701350133195,0.148701350133195,0.148739505739159,0.148701571447694,0.148607006948044,0.148481481556499,0.148353196893332,0.148249087053013,0.148190844411413,0.148190844411413, +0.22277680693706,0.22277680693706,0.222797082690043,0.222715652659029,0.222559467613889,0.22236405164077,0.222168404520814,0.222010442572094,0.221921931919066,0.221921931919066, +0.326369042806847,0.326369042806847,0.326355081228241,0.326205426590876,0.325957766159156,0.325660920561447,0.325367592813194,0.325130215062045,0.324995879759495,0.324995879759495, +0.460155821980536,0.460155821980536,0.46008734572236,0.459837941678853,0.459462968111808,0.459028521913087,0.458601825900882,0.458251675304385,0.45804804888684,0.45804804888684, +0.621716642251108,0.621716642251108,0.621577869341044,0.621186792117549,0.620641909198226,0.620031175206088,0.619430907192793,0.618921677212759,0.618605441173817,0.618605441173817, +0.804872425729458,0.804872425729458,0.80468312891391,0.80407608859314,0.803309850965775,0.802488681097181,0.801676217180656,0.80094157693041,0.800411420919539,0.800411420919539, + +00:29:55, +0.0791414907020641,0.0791414907020641,0.0791893793048713,0.0791873479119676,0.0791474842789426,0.0790856478879205,0.0790191252565804,0.0789640847097679,0.0789331066539694,0.0789331066539694, +0.0791414907020641,0.0791414907020641,0.0791893793048713,0.0791873479119676,0.0791474842789426,0.0790856478879205,0.0790191252565804,0.0789640847097679,0.0789331066539694,0.0789331066539694, +0.101803291429251,0.101803291429251,0.101848920393638,0.101835830564491,0.101778561971589,0.101696238965058,0.101609785239375,0.101538922625693,0.101499174803926,0.101499174803926, +0.148825899106844,0.148825899106844,0.148864054131501,0.148826123564473,0.148731565366163,0.148606047119076,0.148477769108645,0.148373664442942,0.148315424676364,0.148315424676364, +0.222912496812968,0.222912496812968,0.222932760381145,0.222851340583728,0.222695181781925,0.222499800392182,0.222304188526822,0.222146255390584,0.222057761051547,0.222057761051547, +0.326507622819714,0.326507622819714,0.326493645540484,0.326344019291897,0.32609641884949,0.325799649720672,0.325506399489816,0.325269085398486,0.325134786465257,0.325134786465257, +0.460282953555983,0.460282953555983,0.460214472356481,0.459965130229007,0.459590265170848,0.459155950835985,0.458729387045774,0.458379346047143,0.458175783621275,0.458175783621275, +0.621814995599345,0.621814995599345,0.621676243936001,0.621285278320293,0.620740563910631,0.62013002466115,0.61952995049438,0.619020885329712,0.618704751062501,0.618704751062501, +0.804926300403232,0.804926300403232,0.804737055594689,0.804130194162754,0.803364189044978,0.802543272288798,0.801731060082392,0.800996646399574,0.800466651497778,0.800466651497778, + +00:29:56, +0.0792458421261504,0.0792458421261504,0.0792937503679818,0.07929172378754,0.0792518530942359,0.0791900020014564,0.079123462052452,0.0790684065644331,0.0790374199392126,0.0790374199392126, +0.0792458421261504,0.0792458421261504,0.0792937503679818,0.07929172378754,0.0792518530942359,0.0791900020014564,0.079123462052452,0.0790684065644331,0.0790374199392126,0.0790374199392126, +0.101915457706632,0.101915457706632,0.101961098575972,0.101948012283049,0.101890740258905,0.101808409108102,0.101721945447434,0.101651074141443,0.10161132131312,0.10161132131312, +0.148950442129932,0.148950442129932,0.148988596572639,0.14895066975109,0.148856117892923,0.14873060683982,0.148602335532652,0.148498236082612,0.148439999213961,0.148439999213961, +0.223048148605313,0.223048148605313,0.22306840000992,0.222986990470204,0.222830857939889,0.222635511164601,0.222439934583863,0.222282030283757,0.222193552271593,0.222193552271593, +0.326646136834687,0.326646136834687,0.326632143891878,0.326482546045337,0.326235005590466,0.325938312921415,0.325645140196307,0.325407889753742,0.325273627182696,0.325273627182696, +0.460410005540818,0.460410005540818,0.460341519434947,0.460092239204583,0.459717482600905,0.45928330005805,0.458856868415386,0.458506936951044,0.458303438478577,0.458303438478577, +0.621913277060118,0.621913277060118,0.621774546651557,0.621383692570454,0.620839146547305,0.620228801894299,0.619628921426588,0.619120020950108,0.61880398837492,0.61880398837492, +0.804980132352219,0.804980132352219,0.804790939514594,0.804184256828668,0.803418484030318,0.802597820177614,0.801785859472486,0.801051672168345,0.800521838241306,0.800521838241306, + +00:29:57, +0.0793502294684343,0.0793502294684343,0.079398157320482,0.0793961355601013,0.0793562578426701,0.0792943921015079,0.0792278348919264,0.0791727645100164,0.0791417693420496,0.0791417693420496, +0.0793502294684343,0.0793502294684343,0.079398157320482,0.0793961355601013,0.0793562578426701,0.0792943921015079,0.0792278348919264,0.0791727645100164,0.0791417693420496,0.0791417693420496, +0.10202764487008,0.10202764487008,0.10207329762544,0.102060214881948,0.102002939465194,0.101920600224033,0.101834126685047,0.101763246733385,0.101723488924715,0.101723488924715, +0.149074979178575,0.149074979178575,0.149113133038698,0.149075209983634,0.148980664504331,0.148855160694627,0.148726896141136,0.14862280194771,0.14856456799984,0.14856456799984, +0.223183762333783,0.223183762333783,0.223204001596035,0.223122602338067,0.222966496107297,0.222771183977422,0.222575642711213,0.222417767270786,0.222329305598322,0.222329305598322, +0.326784584917866,0.326784584917866,0.326770576348468,0.326621006917179,0.326373526448,0.326076910229512,0.32578381499842,0.325546628193499,0.325412401977462,0.325412401977462, +0.460536978033027,0.460536978033027,0.460468487055669,0.460219268703477,0.459844620499883,0.459410569677202,0.458984270107655,0.458634448114042,0.458431013556711,0.458431013556711, +0.622011486731872,0.622011486731872,0.621872777586116,0.621482034966513,0.620937657206858,0.620327507004299,0.619727820088337,0.619219084173002,0.618903153210217,0.618903153210217, +0.805033921638266,0.805033921638266,0.804844780735515,0.804238276652971,0.803472735984142,0.802652324826261,0.801840615413851,0.801106654299891,0.80057698121348,0.80057698121348, + +00:29:58, +0.0794546526598026,0.0794546526598026,0.0795026000932858,0.0795005831605554,0.0794606984551083,0.0793988181188782,0.0793322437057425,0.0792771584772033,0.0792461547931358,0.0792461547931358, +0.0794546526598026,0.0794546526598026,0.0795026000932858,0.0795005831605554,0.0794606984551083,0.0793988181188782,0.0793322437057425,0.0792771584772033,0.0792461547931358,0.0792461547931358, +0.102139852865317,0.102139852865317,0.102185517487785,0.102172438306912,0.102115159536121,0.102032812258436,0.101946328897714,0.101875440346947,0.101835677584098,0.101835677584098, +0.149199510228953,0.149199510228953,0.149237663505868,0.149199744238252,0.14910520517645,0.148979708659452,0.148851450909938,0.148747362013985,0.148689131009696,0.148689131009696, +0.223319338018081,0.223319338018081,0.223339565159168,0.223258176206937,0.223102096303676,0.222906818850055,0.222711312928157,0.22255346637086,0.222465021050867,0.222465021050867, +0.326922967135287,0.326922967135287,0.326908942976231,0.326759401973345,0.326511981487944,0.326215441710732,0.325922423961841,0.325685300783379,0.32555111091514,0.32555111091514, +0.460663871130447,0.460663871130447,0.460595375316416,0.46034621882344,0.459971678965542,0.459537759791217,0.459111592220371,0.458761879633944,0.458558508953499,0.458558508953499, +0.622109624712876,0.622109624712876,0.621970936837914,0.621580305606776,0.621036095987732,0.620426140089746,0.619826646578375,0.619318075097277,0.619002245667364,0.619002245667364, +0.805087668323106,0.805087668323106,0.804898579319229,0.804292253697634,0.803526944968683,0.802706786297253,0.801895327969283,0.801161592857265,0.80063208047754,0.80063208047754, + +00:29:59, +0.0795591116312102,0.0795591116312102,0.0796070786173756,0.0796050665198742,0.0795651748624819,0.0795032799844386,0.0794366884247076,0.0793815883967476,0.0793505762231947,0.0793505762231947, +0.0795591116312102,0.0795591116312102,0.0796070786173756,0.0796050665198742,0.0795651748624819,0.0795032799844386,0.0794366884247076,0.0793815883967476,0.0793505762231947,0.0793505762231947, +0.102252081638133,0.102252081638133,0.102297758108823,0.102284682503737,0.102227400417425,0.102145045156967,0.102058552031004,0.101987654927627,0.101947887236728,0.101947887236728, +0.149324035257303,0.149324035257303,0.149362187950395,0.149324272491151,0.149229739885408,0.149104250710314,0.148975999814962,0.148871916257245,0.148813688219286,0.148813688219286, +0.223454875677919,0.223454875677919,0.223475090719013,0.223393712096449,0.223237658548565,0.223042415801923,0.222846945253999,0.22268912760318,0.222600698648371,0.222600698648371, +0.327061283552917,0.327061283552917,0.327047243841075,0.326897731279685,0.326650370776079,0.326353907430779,0.326060967152192,0.325823907588936,0.325689754061248,0.325689754061248, +0.460790684930773,0.460790684930773,0.46072218431481,0.460473089662079,0.460098658095498,0.459664870497728,0.459238834851183,0.458889231608414,0.458685924766618,0.458685924766618, +0.622207691101233,0.622207691101233,0.622069024505016,0.621678504589383,0.621134462988197,0.620524701249065,0.61992540099528,0.619416993821647,0.619101265845165,0.619101265845165, +0.805141372468354,0.805141372468354,0.804952335327394,0.804346188024513,0.803581111046056,0.802761204652989,0.801949997201461,0.801216487903403,0.800687136096605,0.800687136096605, + +00:30:00, +0.0796636063136804,0.0796636063136804,0.0797115928238021,0.0797095855690984,0.0796696869957904,0.0796077776291288,0.0795411689796968,0.0794860541994711,0.079455033563018,0.079455033563018, +0.0796636063136804,0.0796636063136804,0.0797115928238021,0.0797095855690984,0.0796696869957904,0.0796077776291288,0.0795411689796968,0.0794860541994711,0.079455033563018,0.079455033563018, +0.102364331134393,0.102364331134393,0.102410019434441,0.102396947418288,0.102339662054913,0.102257298865354,0.102170796030559,0.102099890420997,0.102060117828136,0.102060117828136, +0.149448554239924,0.149448554239924,0.149486706348585,0.149448794718598,0.149354268607388,0.149228786823288,0.14910054283217,0.148996464653361,0.148938239604425,0.148938239604425, +0.223590375333025,0.223590375333025,0.223610578295273,0.223529210026247,0.223373182861518,0.22317797485246,0.22298253970805,0.222824750986961,0.222736338409996,0.222736338409996, +0.327199534236656,0.327199534236656,0.327185479008844,0.327035994901983,0.326788694378123,0.326492307455289,0.326199444635028,0.32596244867566,0.32582833148124,0.32582833148124, +0.460917419531556,0.460917419531556,0.46084891414833,0.460599881316855,0.460225557987224,0.459791901894222,0.459365998097596,0.459016504134973,0.4588132610936,0.4588132610936, +0.622305685994875,0.622305685994875,0.622167040685317,0.621776632012302,0.621232758306354,0.620623190580511,0.620024083437461,0.619515840444656,0.619200213842249,0.619200213842249, +0.805195034135514,0.805195034135514,0.805006048821557,0.80440007969535,0.803635234278262,0.802815579955751,0.802004623172948,0.801271339501123,0.800742148133681,0.800742148133681, + +00:30:01, +0.0797681366383046,0.0797681366383046,0.0798161426436843,0.0798141402393365,0.0797742347861017,0.0797123109839568,0.0796456853016538,0.079590555816264,0.0795595267434656,0.0795595267434656, +0.0797681366383046,0.0797681366383046,0.0798161426436843,0.0798141402393365,0.0797742347861017,0.0797123109839568,0.0796456853016538,0.079590555816264,0.0795595267434656,0.0795595267434656, +0.102476601300031,0.102476601300031,0.102522301410598,0.102509232996505,0.102451944394467,0.102369573329396,0.102283060842094,0.1022121467727,0.102172369303925,0.102172369303925, +0.149573067153173,0.149573067153173,0.149611218676805,0.14957331089692,0.149478791318637,0.14935331697451,0.149225079937585,0.14912100717826,0.14906278514099,0.14906278514099, +0.223725837003136,0.223725837003136,0.223746027907665,0.22366467001599,0.223508669262099,0.223313496021114,0.22311809630964,0.222960336541431,0.222871940354914,0.222871940354914, +0.327337719252337,0.327337719252337,0.327323648545311,0.327174192905958,0.326926952359725,0.32663064184983,0.326337856475836,0.326100924108972,0.325966843240503,0.325966843240503, +0.461044075030201,0.461044075030201,0.460975564914311,0.460726593885087,0.460352378738048,0.459918854078044,0.459493082056969,0.459143697310998,0.458940518031838,0.458940518031838, +0.622403609491567,0.622403609491567,0.622264985476546,0.621874687973335,0.621330982040136,0.62072160818217,0.620122694003157,0.619614615064678,0.619299089757081,0.619299089757081, +0.805248653385971,0.805248653385971,0.80505971986315,0.804453928771769,0.803689314727188,0.802869912267706,0.802059205946189,0.801326147713126,0.800797116651653,0.800797116651653, + +00:30:02, +0.0798727025362428,0.0798727025362428,0.0799207280082095,0.0799187304617655,0.0798788181645518,0.0798168799799986,0.0797502373215905,0.0796950931780844,0.0796640556954656,0.0796640556954656, +0.0798727025362428,0.0798727025362428,0.0799207280082095,0.0799187304617655,0.0798788181645518,0.0798168799799986,0.0797502373215905,0.0796950931780844,0.0796640556954656,0.0796640556954656, +0.102588892081055,0.102588892081055,0.102634603983326,0.102621539184396,0.102564247382038,0.102481868494965,0.102395346411394,0.102324423928449,0.102284641609768,0.102284641609768, +0.149697573973466,0.149697573973466,0.149735724911481,0.149697821002502,0.149603307995458,0.149477841140177,0.149349611107291,0.149245543807934,0.149187324804919,0.149187324804919, +0.223861260708004,0.223861260708004,0.223881439575917,0.223800092085349,0.223644117769887,0.223448979327347,0.223253615078107,0.223095884285831,0.223007504502311,0.223007504502311, +0.327475838665725,0.327475838665725,0.327461752516184,0.32731232535726,0.327065144786467,0.326768910679907,0.326476202740039,0.32623933395423,0.326105289404357,0.326105289404357, +0.461170651523972,0.461170651523972,0.461102136709944,0.460853227463951,0.460479120445155,0.460045727146395,0.459620086826521,0.459270811233724,0.459067695678578,0.459067695678578, +0.622501461688903,0.622501461688903,0.622362858976261,0.621972672570112,0.621429134287306,0.620819954151958,0.620221232790438,0.619713317779917,0.619397893687954,0.619397893687954, +0.805302230280999,0.805302230280999,0.805113348513487,0.804507735315285,0.803743352454601,0.802924201650904,0.802113745583515,0.801380912601997,0.800852041713293,0.800852041713293, + +00:30:03, +0.0799773039387232,0.0799773039387232,0.0800253488486332,0.0800233561676308,0.0799834370623453,0.0799214845483986,0.0798548249705867,0.079799666215959,0.0797686203500141,0.0797686203500141, +0.0799773039387232,0.0799773039387232,0.0800253488486332,0.0800233561676308,0.0799834370623453,0.0799214845483986,0.0798548249705867,0.079799666215959,0.0797686203500141,0.0797686203500141, +0.102701203423543,0.102701203423543,0.102746927098725,0.102733865928044,0.102676570963651,0.102594184308004,0.102507652684315,0.102436721834031,0.102396934691413,0.102396934691413, +0.149822074677279,0.149822074677279,0.149860225029096,0.149822325011789,0.149727818614215,0.149602359296544,0.149474136317429,0.149370074518431,0.149311858572209,0.149311858572209, +0.223996646467389,0.223996646467389,0.224016813319769,0.223935476254004,0.22377952840447,0.223584424790631,0.223389096032804,0.223231394239417,0.223143030871387,0.223143030871387, +0.327613892542517,0.327613892542517,0.327599790987104,0.32745039232147,0.327203271723866,0.326907114010955,0.326614483492993,0.326377678276725,0.32624367003806,0.32624367003806, +0.461297149109986,0.461297149109986,0.461228629632278,0.460979782150477,0.460605783205585,0.460172521196334,0.459747012503327,0.459397846000243,0.459194794130925,0.459194794130925, +0.62259924268431,0.62259924268431,0.622460661281851,0.622070585900096,0.621527215145459,0.620918228587625,0.620319699897207,0.619811948688411,0.61949662573299,0.61949662573299, +0.805355764881758,0.805355764881758,0.805166934833773,0.804561499387292,0.80379734752216,0.80297844816728,0.802168242147141,0.801435634230207,0.800906923381253,0.800906923381253, + +00:30:04, +0.0800819407770423,0.0800819407770423,0.0801300050962796,0.080128017288246,0.0800880914107548,0.0800261246203697,0.0799594481797907,0.0799042748609823,0.0798732206381758,0.0798732206381758, +0.0800819407770423,0.0800819407770423,0.0801300050962796,0.080128017288246,0.0800880914107548,0.0800261246203697,0.0799594481797907,0.0799042748609823,0.0798732206381758,0.0798732206381758, +0.102813535273644,0.102813535273644,0.102859270702971,0.102846213173601,0.1027889150854,0.102706520714527,0.102619979606788,0.102549040435305,0.102509248494676,0.102509248494676, +0.149946569241147,0.149946569241147,0.149984719006195,0.149946822901285,0.149852323151331,0.149726871419926,0.149598655544201,0.14949459928586,0.149436386418915,0.149436386418915, +0.224131994301067,0.224131994301067,0.224152149158972,0.224070822541652,0.223914901185451,0.223719832430451,0.223524539193098,0.223366866421455,0.223278519481354,0.223278519481354, +0.327751880948345,0.327751880948345,0.327737764023643,0.327588393864107,0.327341333237369,0.327045251908345,0.326752698799987,0.326515957141683,0.326381985206801,0.326381985206801, +0.46142356788522,0.46142356788522,0.461355043778216,0.461106258041554,0.460732367116239,0.460299236324774,0.459873859184319,0.459524801707504,0.459321813485842,0.459321813485842, +0.622696952575047,0.622696952575047,0.622558392490541,0.622168428060584,0.621625224712023,0.62101643158675,0.620418095421195,0.619910507888027,0.619595285990147,0.619595285990147, +0.805409257249294,0.805409257249294,0.805220478885096,0.804615221049076,0.803851299991403,0.803032651878657,0.802222695699165,0.801490312660107,0.800961761718071,0.800961761718071, + +00:30:05, +0.0801866129825651,0.0801866129825651,0.0802346966825409,0.0802327137549932,0.0801927811411213,0.0801308001271926,0.0800641068804192,0.0800089190443174,0.0799778564910832,0.0799778564910832, +0.0801866129825651,0.0801866129825651,0.0802346966825409,0.0802327137549932,0.0801927811411213,0.0801308001271926,0.0800641068804192,0.0800089190443174,0.0799778564910832,0.0799778564910832, +0.102925887577581,0.102925887577581,0.102971634742307,0.10295858086729,0.102901279693452,0.10281887766062,0.102732327124812,0.102661379678198,0.102621582965448,0.102621582965448, +0.150071057641665,0.150071057641665,0.15010920681938,0.150071314647552,0.149976821583286,0.149851377486697,0.149723168763869,0.149619118086389,0.149560908321154,0.149560908321154, +0.224267304228823,0.224267304228823,0.22428744711329,0.224206130967995,0.224050236132443,0.223855202266304,0.223659944578366,0.223502300851226,0.223413970351438,0.223413970351438, +0.327889803948773,0.327889803948773,0.327875671691308,0.327726330050618,0.32747932939236,0.32718332443738,0.326890848726245,0.326654170614262,0.326520234975704,0.326520234975704, +0.461549907946505,0.461549907946505,0.461481379244521,0.461232655233928,0.460858872273871,0.46042587262849,0.460000626966286,0.459651678452314,0.45944875384015,0.45944875384015, +0.622794591458205,0.622794591458205,0.622656052699384,0.622266199148703,0.621723163084255,0.621114563246745,0.620516419459968,0.620008995476464,0.619693874557212,0.619693874557212, +0.805462707444539,0.805462707444539,0.805273980728433,0.804668900361806,0.803905209923759,0.803086812846739,0.802277106301573,0.801544947953936,0.80101655678617,0.80101655678617, + +00:30:06, +0.0802913204867249,0.0802913204867249,0.0803394235388779,0.0803374454993227,0.0802975061848543,0.0802355110002169,0.080168801003757,0.0801135986971955,0.0800825278399374,0.0800825278399374, +0.0802913204867249,0.0802913204867249,0.0803394235388779,0.0803374454993227,0.0802975061848543,0.0802355110002169,0.080168801003757,0.0801135986971955,0.0800825278399374,0.0800825278399374, +0.103038260281646,0.103038260281646,0.10308401916305,0.103070968955409,0.103013664734045,0.10293125509244,0.102844695184458,0.102773739508713,0.102733938049688,0.102733938049688, +0.150195539855483,0.150195539855483,0.150233688445311,0.150195800227213,0.150101313886623,0.14997587747329,0.149847675952754,0.149743630896247,0.149685424255102,0.149685424255102, +0.224402576270454,0.224402576270454,0.224422707202498,0.224341401552753,0.22418553326507,0.223990534317701,0.223795312207999,0.223637697548022,0.223549383500876,0.223549383500876, +0.328027661609296,0.328027661609296,0.328013514055538,0.327864200946386,0.327617260254153,0.327321331663296,0.327028933336925,0.326792318759556,0.326658419409827,0.326658419409827, +0.46167616939053,0.46167616939053,0.461607636127812,0.461358973824202,0.460985298775096,0.460552430204112,0.460127315945877,0.459778476331337,0.459575615290526,0.459575615290526, +0.622892159430708,0.622892159430708,0.62275364200527,0.622363899261414,0.621821030359249,0.621212623664856,0.620614672110924,0.620107411551254,0.619792391531804,0.619792391531804, +0.805516115528311,0.805516115528311,0.805327440424645,0.804722537386537,0.803959077380539,0.803140931133119,0.802331474016232,0.801599540173816,0.801071308647854,0.801071308647854, + +00:30:07, +0.0803960632210234,0.0803960632210234,0.0804441855968197,0.0804422124527532,0.0804022664734316,0.08034025717086,0.0802735304811571,0.0802183137509162,0.0801872346160076,0.0801872346160076, +0.0803960632210234,0.0803960632210234,0.0804441855968197,0.0804422124527532,0.0804022664734316,0.08034025717086,0.0802735304811571,0.0802183137509162,0.0801872346160076,0.0801872346160076, +0.103150653332202,0.103150653332202,0.103196423911587,0.103183377384322,0.103126070153488,0.103043652956217,0.102957083731871,0.102886119872921,0.102846313693431,0.102846313693431, +0.150320015859314,0.150320015859314,0.150358163860708,0.150320279616946,0.15022580003794,0.150100371356196,0.149972177087234,0.14986813769172,0.149809934196994,0.149809934196994, +0.224537810445767,0.224537810445767,0.224557929446382,0.224476634315653,0.22432079260297,0.224125828604162,0.223930642101398,0.223773056531149,0.22368475894892,0.22368475894892, +0.328165453995343,0.328165453995343,0.328151291181703,0.328002006616725,0.327755125887997,0.327459273651264,0.327166952697118,0.326930401642592,0.326796538574164,0.326796538574164, +0.461802352313844,0.461802352313844,0.461733814524564,0.461485213908836,0.461111646716383,0.460678909148127,0.460253926219596,0.459905195441097,0.459702397933507,0.459702397933507, +0.622989656589314,0.622989656589314,0.622851160504919,0.62246152849551,0.621918826633929,0.62131061293816,0.620712853471293,0.620205756209762,0.619890837011375,0.619890837011375, +0.805569481561319,0.805569481561319,0.805380858034482,0.804776132184213,0.804012902422944,0.803195006799274,0.802385798904898,0.801654089381754,0.801126017365316,0.801126017365316, + +00:30:08, +0.0805008411170308,0.0805008411170308,0.0805489827879639,0.080547014546872,0.0805070619383992,0.080445038570608,0.0803782952440411,0.0803230641368473,0.0802919767506313,0.0802919767506313, +0.0805008411170308,0.0805008411170308,0.0805489827879639,0.080547014546872,0.0805070619383992,0.080445038570608,0.0803782952440411,0.0803230641368473,0.0802919767506313,0.0802919767506313, +0.103263066675684,0.103263066675684,0.103308848934377,0.103295806100469,0.103238495898162,0.103156071198249,0.103069492713264,0.102998520716966,0.102958709842779,0.102958709842779, +0.150444485629927,0.150444485629927,0.15048263304235,0.15044475279349,0.150350280013894,0.150224859111966,0.150096672143749,0.149992638449155,0.149934438123124,0.149934438123124, +0.224673006774583,0.224673006774583,0.224693113864739,0.224611829276434,0.224456014165791,0.224261085145221,0.224065934277979,0.223908377819925,0.223820096714833,0.223820096714833, +0.328303181172277,0.328303181172277,0.328289003135109,0.328139747126883,0.327892926359074,0.327597150466388,0.327304906871848,0.327068419328332,0.326934592533641,0.326934592533641, +0.461928456812849,0.461928456812849,0.461859914531112,0.461611375584149,0.461237916194062,0.460805309556882,0.460380457883808,0.460031835877976,0.459829101865488,0.459829101865488, +0.623087083030612,0.623087083030612,0.622948608294886,0.622559086947619,0.622016552005054,0.621408531163568,0.620810963638138,0.620304029549185,0.619989211093211,0.619989211093211, +0.805622805604156,0.805622805604156,0.805434233618582,0.804829684815663,0.804066685112059,0.803249039906567,0.802440081029211,0.801708595639644,0.80118068300063,0.80118068300063, + +00:30:09, +0.0806056541063855,0.0806056541063855,0.0806538150439763,0.0806518517133344,0.0806118925113716,0.0805498551310151,0.0804830952238987,0.0804278497864248,0.0803967541752144,0.0803967541752144, +0.0806056541063855,0.0806056541063855,0.0806538150439763,0.0806518517133344,0.0806118925113716,0.0805498551310151,0.0804830952238987,0.0804278497864248,0.0803967541752144,0.0803967541752144, +0.1033755002586,0.1033755002586,0.103421294177951,0.103408255050357,0.103350941914517,0.103268509764907,0.103181922074923,0.103110941987063,0.103071126443907,0.103071126443907, +0.150568949144149,0.150568949144149,0.150607095967071,0.150569219733642,0.150474753791202,0.150349340717209,0.150221161098795,0.150117133144957,0.150058936009846,0.150058936009846, +0.224808165276731,0.224808165276731,0.224828260477376,0.224746986454847,0.224591197973192,0.224396303960421,0.224201188757168,0.224043661433678,0.22395539681789,0.22395539681789, +0.328440843205391,0.328440843205391,0.328426649980992,0.328277422542041,0.328030661732497,0.327734962173706,0.327442795926075,0.327206371881672,0.327072581353119,0.327072581353119, +0.462054482983809,0.462054482983809,0.461985936243648,0.461737458946317,0.46136410730432,0.460931631526582,0.460506911034734,0.460158397738213,0.459955727182723,0.459955727182723, +0.623184438851028,0.623184438851028,0.62304598547156,0.622656574714203,0.622114206569215,0.621506378437825,0.620909002708356,0.620402231666554,0.62008751387443,0.62008751387443, +0.805676087717303,0.805676087717303,0.805487567237469,0.804883195341605,0.804120425508856,0.803303030516249,0.802494320450697,0.801763059009263,0.801235305615757,0.801235305615757, + +00:30:10, +0.0807105021207945,0.0807105021207945,0.0807586822965913,0.0807567238838646,0.0807167581240318,0.0806547067837042,0.0805879303522881,0.0805326706311532,0.0805015668212309,0.0805015668212309, +0.0807105021207945,0.0807105021207945,0.0807586822965913,0.0807567238838646,0.0807167581240318,0.0806547067837042,0.0805879303522881,0.0805326706311532,0.0805015668212309,0.0805015668212309, +0.103487954027525,0.103487954027525,0.103533759588907,0.103520724180566,0.103463408149077,0.103380968602634,0.103294371763204,0.103223383629498,0.103183563443061,0.103183563443061, +0.150693406378866,0.150693406378866,0.150731552611766,0.150693680414255,0.150599221346637,0.150473816148592,0.150345643928929,0.150241621755589,0.150183427833571,0.150183427833571, +0.224943285972053,0.224943285972053,0.224963369304113,0.224882105870654,0.224726344044842,0.22453148506932,0.224336405558403,0.224178907391751,0.22409065927738,0.22409065927738, +0.328578440159913,0.328578440159913,0.328564231784522,0.328415032927314,0.328168332073315,0.327872708838187,0.327580619924692,0.327344259367441,0.327210505097396,0.327210505097396, +0.462180430922843,0.462180430922843,0.462111879758223,0.461863464091374,0.461490220143203,0.461057875153289,0.460633285768456,0.460284881117907,0.460082273981325,0.460082273981325, +0.62328172414682,0.62328172414682,0.623143292131165,0.622753991891556,0.622211790422839,0.621604154857509,0.621006970778678,0.620500362658733,0.620185745451984,0.620185745451984, +0.80572932796113,0.80572932796113,0.805540858951556,0.804936663822643,0.804174123674196,0.803356978689456,0.802548517230769,0.801817479552275,0.801289885272544,0.801289885272544, + +00:30:11, +0.0808153850920332,0.0808153850920332,0.0808635844776118,0.0808616309902548,0.0808216587081309,0.0807595934603662,0.0806928005608357,0.0806375266026052,0.0806064146202233,0.0806064146202233, +0.0808153850920332,0.0808153850920332,0.0808635844776118,0.0808616309902548,0.0808216587081309,0.0807595934603662,0.0806928005608357,0.0806375266026052,0.0806064146202233,0.0806064146202233, +0.103600427929109,0.103600427929109,0.103646245113918,0.103633213437748,0.103575894548434,0.103493447657942,0.103406841724537,0.103335845590629,0.10329602078656,0.10329602078656, +0.150817857311022,0.150817857311022,0.150856002953386,0.150818134812243,0.150723682657032,0.150598285382841,0.150470120610764,0.150366104257574,0.150307913570771,0.150307913570771, +0.2250783688804,0.2250783688804,0.225098440364778,0.225017187543627,0.224861452400425,0.224666628491483,0.224471584701133,0.224314115713497,0.224225884112602,0.224225884112602, +0.328715972101003,0.328715972101003,0.328701748610803,0.328552578347747,0.32830593744651,0.328010390524738,0.327718378932525,0.327482081850405,0.327348363831199,0.327348363831199, +0.46230630072593,0.46230630072593,0.462237745170745,0.461989391115214,0.461616254806614,0.461184040532925,0.460759582180914,0.460411286113017,0.460208742357265,0.460208742357265, +0.623378939014082,0.623378939014082,0.623240528369758,0.622851338575809,0.622309303662186,0.621701860519033,0.621104867945668,0.620598422622422,0.620283905922658,0.620283905922658, +0.805782526395895,0.805782526395895,0.805594108821144,0.80499009031927,0.804227779668825,0.803410884487213,0.802602671430725,0.801871857330231,0.801344422032723,0.801344422032723, + +00:30:12, +0.0809203029519456,0.0809203029519456,0.080968521518909,0.0809665729643659,0.0809265941954888,0.0808645150927606,0.0807977057812363,0.0807424176324221,0.0807112975038024,0.0807112975038024, +0.0809203029519456,0.0809203029519456,0.080968521518909,0.0809665729643659,0.0809265941954888,0.0808645150927606,0.0807977057812363,0.0807424176324221,0.0807112975038024,0.0807112975038024, +0.103712921910069,0.103712921910069,0.103758750699727,0.103745722768624,0.103688401059253,0.103605946877416,0.103519331905418,0.103448327816883,0.103408498420792,0.103408498420792, +0.150942301917618,0.150942301917618,0.150980446968942,0.150942582904576,0.150848137699277,0.150722748396739,0.150594591120973,0.150490580627493,0.150432393197974,0.150432393197974, +0.225213414021636,0.225213414021636,0.225233473679213,0.225152231493548,0.224996523059632,0.22480173424649,0.224606726204821,0.224449286418282,0.224361071342868,0.224361071342868, +0.328853439093755,0.328853439093755,0.32883920052487,0.32869005886832,0.328443477916995,0.328148007298195,0.327856073014334,0.32761983939526,0.327486157619194,0.327486157619194, +0.462432092488907,0.462432092488907,0.462363532576981,0.462115240113588,0.461742211390316,0.461310127761271,0.460885800367908,0.460537612819359,0.460335132406375,0.460335132406375, +0.623476083548742,0.623476083548742,0.623337694283232,0.622948614862928,0.622406746383352,0.621799495518645,0.621202694305726,0.620696411654152,0.620381995383074,0.620381995383074, +0.805835683081746,0.805835683081746,0.805647316906421,0.805043474891868,0.804281393553379,0.803464747970429,0.80265678311175,0.801926192404566,0.801398915957912,0.801398915957912, + +00:30:13, +0.0810252556324439,0.0810252556324439,0.0810734933524227,0.0810715497381271,0.0810315645179935,0.0809694716127153,0.0809026459452532,0.0808473436523133,0.0808162154036472,0.0808162154036472, +0.0810252556324439,0.0810252556324439,0.0810734933524227,0.0810715497381271,0.0810315645179935,0.0809694716127153,0.0809026459452532,0.0808473436523133,0.0808162154036472,0.0808162154036472, +0.103825435917197,0.103825435917197,0.103871276293147,0.103858252119986,0.103800927628269,0.103718466207711,0.103631842252419,0.10356083025476,0.103520996292215,0.103520996292215, +0.151066740175713,0.151066740175713,0.1511048846355,0.151067024668281,0.150972586450319,0.150847205167127,0.150719055436286,0.150615050841984,0.150556866691767,0.150556866691767, +0.225348421415632,0.225348421415632,0.225368469267267,0.225287237740212,0.225131556042166,0.22493680235393,0.224741830088938,0.224584419525483,0.224496220987501,0.224496220987501, +0.328990841203193,0.328990841203193,0.328976587591692,0.328827474553947,0.328580953549619,0.328285559223331,0.327993702234815,0.32775753206664,0.32762388652598,0.32762388652598, +0.46255780630747,0.46255780630747,0.462489242072558,0.462241011182109,0.461868089989932,0.461436136933968,0.461011940425094,0.460663861332611,0.460461444224345,0.460461444224345, +0.623573157846564,0.623573157846564,0.623434789967316,0.623045820848712,0.622504118682269,0.621897059952428,0.621300449955087,0.620794329850293,0.620480013929686,0.620480013929686, +0.805888798078716,0.805888798078716,0.805700483267466,0.805096817600704,0.804334965388379,0.803518569199903,0.802710852334919,0.801980484836603,0.801453367109615,0.801453367109615, + +00:30:14, +0.0811302430655089,0.0811302430655089,0.081178499910161,0.0811765612435362,0.0811365696076016,0.0810744629521266,0.081007620984718,0.0809523045940565,0.0809211682515053,0.0809211682515053, +0.0811302430655089,0.0811302430655089,0.081178499910161,0.0811765612435362,0.0811365696076016,0.0810744629521266,0.081007620984718,0.0809523045940565,0.0809211682515053,0.0809211682515053, +0.103937969897352,0.103937969897352,0.10398382184106,0.103970801438697,0.103913474202288,0.103831005595551,0.103744372712179,0.103673352850831,0.103633514347362,0.103633514347362, +0.151191172062424,0.151191172062424,0.151229315930185,0.151191460080443,0.151097028887164,0.150971655670905,0.150843513533492,0.150739514877745,0.150681334028798,0.150681334028798, +0.225483391082272,0.225483391082272,0.225503427148801,0.225422206303421,0.22526655136774,0.225071832833403,0.224876896372969,0.224719515054488,0.224631333065836,0.224631333065836, +0.329128178494277,0.329128178494277,0.329113909876171,0.328964825469473,0.328718364409163,0.32842304636485,0.328131266658596,0.327895159929111,0.327761550616089,0.327761550616089, +0.462683442277173,0.462683442277173,0.462614873752961,0.462366704416245,0.461993890700943,0.461562068146515,0.461138002447993,0.46079003174831,0.460587677906728,0.460587677906728, +0.623670162003147,0.623670162003147,0.623531815517575,0.623142956628797,0.6226014206547,0.621994553916298,0.621398134989819,0.620892177307046,0.620577961658783,0.620577961658783, +0.805941871446731,0.805941871446731,0.805753607964246,0.805150118505938,0.804388495234238,0.803572348236322,0.80276487916119,0.802034734687554,0.801507775549224,0.801507775549224, + +00:30:15, +0.08123526518319,0.08123526518319,0.0812835411242006,0.0812816074126593,0.0812416093963382,0.0811794890429591,0.0811126308315307,0.0810573003894981,0.0810261559791925,0.0810261559791925, +0.08123526518319,0.08123526518319,0.0812835411242006,0.0812816074126593,0.0812416093963382,0.0811794890429591,0.0811126308315307,0.0810573003894981,0.0810261559791925,0.0810261559791925, +0.104050523797466,0.104050523797466,0.104096387290423,0.104083370671692,0.104026040728187,0.103943564987733,0.103856923231411,0.103785895551736,0.103746052532832,0.103746052532832, +0.151315597554923,0.151315597554923,0.151353740830178,0.151315889118204,0.151221464986873,0.15109609988503,0.150967965389436,0.150863972711531,0.150805795185769,0.150805795185769, +0.22561832304145,0.22561832304145,0.225638347343685,0.22555713720299,0.225401509056079,0.225206825704521,0.225011925076408,0.224854573024696,0.22476640759722,0.22476640759722, +0.329265451031899,0.329265451031899,0.329251167443141,0.329102111679678,0.328855710560341,0.328560468787392,0.328268766350239,0.328032723047174,0.327899149953989,0.327899149953989, +0.462809000493432,0.462809000493432,0.462740427713536,0.462492319911327,0.46211961361869,0.461687921494271,0.461263986531982,0.460916124161851,0.460713833548932,0.460713833548932, +0.623767096113927,0.623767096113927,0.623628771029407,0.623240022298657,0.62269865239625,0.62209197750601,0.621495749505828,0.62098995412045,0.620675838666492,0.620675838666492, +0.805994903245603,0.805994903245603,0.805806691056618,0.805203377667615,0.804441983151255,0.803626085140259,0.802818863651412,0.802088942018513,0.801562141338016,0.801562141338016, + +00:30:16, +0.0813403219176048,0.0813403219176048,0.0813886169266866,0.081386688177631,0.0813466838162966,0.0812845498172459,0.0812176754176596,0.0811623309705527,0.081131178518593,0.081131178518593, +0.0813403219176048,0.0813403219176048,0.0813886169266866,0.081386688177631,0.0813466838162966,0.0812845498172459,0.0812176754176596,0.0811623309705527,0.081131178518593,0.081131178518593, +0.10416309756454,0.10416309756454,0.104208972588261,0.104195959765973,0.104138627152911,0.104056144331125,0.103969493756895,0.103898458304187,0.103858610795299,0.103858610795299, +0.151440016630443,0.151440016630443,0.151478159312718,0.151440311758765,0.151345894726568,0.151220537786515,0.151092410981023,0.150988424320155,0.150930250139443,0.150930250139443, +0.225753217313069,0.225753217313069,0.225773229871802,0.225692030458743,0.225536429126916,0.225341780986904,0.225146916218761,0.224989593455519,0.224901444601011,0.224901444601011, +0.329402658880882,0.329402658880882,0.32938836035737,0.329239333249274,0.3289929920678,0.328697826555529,0.32840620137424,0.328170221485264,0.328036684604082,0.328036684604082, +0.462934481051519,0.462934481051519,0.462865904049486,0.462617857762544,0.462245258838374,0.461813697072456,0.461389892772299,0.461042138668493,0.46083991124623,0.46083991124623, +0.623863960274174,0.623863960274174,0.62372565659805,0.623337017953599,0.622795814002356,0.622189330817154,0.621593293598855,0.62108766038638,0.620773645048772,0.620773645048772, +0.806047893535037,0.806047893535037,0.805859732604326,0.805256595145671,0.804495429199618,0.803679779972176,0.802872805866319,0.802143106890467,0.801616464537157,0.801616464537157, + +00:30:17, +0.0814454132009398,0.0814454132009398,0.0814937272498328,0.0814918034706546,0.0814517927996388,0.0813896452070887,0.0813227546751417,0.0812673962692032,0.0812362358016595,0.0812362358016595, +0.0814454132009398,0.0814454132009398,0.0814937272498328,0.0814918034706546,0.0814517927996388,0.0813896452070887,0.0813227546751417,0.0812673962692032,0.0812362358016595,0.0812362358016595, +0.104275691145648,0.104275691145648,0.104321577681668,0.104308568668617,0.10425123342348,0.104168743572664,0.104082084235486,0.104011041054966,0.103971189081505,0.103971189081505, +0.151564429266271,0.151564429266271,0.151602571355101,0.151564727979381,0.151470318083425,0.151344969352432,0.151216850285214,0.151112869680487,0.151054698866638,0.151054698866638, +0.225888073917041,0.225888073917041,0.225908074753041,0.225826886090513,0.225671311599997,0.225476698700184,0.225281869819544,0.225124576366379,0.225036444096578,0.225036444096578, +0.329539802105984,0.329539802105984,0.329525488683559,0.329376490242906,0.329130208996122,0.328835119733767,0.328543571795031,0.328307655307751,0.328174154630703,0.328174154630703, +0.463059884046568,0.463059884046568,0.462991302855876,0.462743318064945,0.462370826455055,0.46193939497615,0.461515721264043,0.461168075363353,0.460965911093754,0.460965911093754, +0.623960754578999,0.623960754578999,0.623822472318578,0.623433943688768,0.622892905568292,0.622286613945155,0.621690767364477,0.621185296200545,0.620871380901422,0.620871380901422, +0.806100842374626,0.806100842374626,0.805912732667007,0.805309770999932,0.804548833439404,0.803733432792426,0.802926705866535,0.802197229364287,0.801670745207698,0.801670745207698, + +00:30:18, +0.0815505389654497,0.0815505389654497,0.0815988720259213,0.0815969532240017,0.0815569362785952,0.0814947751446575,0.0814278685360822,0.0813724962175011,0.081341327760413,0.081341327760413, +0.0815505389654497,0.0815505389654497,0.0815988720259213,0.0815969532240017,0.0815569362785952,0.0814947751446575,0.0814278685360822,0.0813724962175011,0.081341327760413,0.081341327760413, +0.104388304487932,0.104388304487932,0.104434202517811,0.104421197326768,0.10436385948698,0.104281362659357,0.104194694614106,0.104123643750928,0.104083787338264,0.104083787338264, +0.151688835439751,0.151688835439751,0.151726976934678,0.151689137757366,0.151594735034677,0.15146939455991,0.151341283279027,0.151237308769456,0.151179141344233,0.151179141344233, +0.22602289287329,0.22602289287329,0.226042882007302,0.225961704118145,0.225806156495075,0.225611578864005,0.225416785898284,0.225259521776708,0.225171406103301,0.225171406103301, +0.329676880771896,0.329676880771896,0.32966255248634,0.329513582725152,0.329267361409822,0.328972348386546,0.328680877676974,0.328445024578938,0.328311560098124,0.328311560098124, +0.463185209573572,0.463185209573572,0.46311662422763,0.462868700913439,0.462496316563654,0.462065015300291,0.461641472102173,0.461293934341409,0.461091833186495,0.461091833186495, +0.624057479123345,0.624057479123345,0.623919218285901,0.623530799599148,0.622989927189172,0.622383826985277,0.621788170898109,0.621282861658492,0.620969046320075,0.620969046320075, +0.806153749823852,0.806153749823852,0.805965691304186,0.805362905290113,0.804602195930579,0.803787043661246,0.802980563712571,0.802251309500733,0.801724983410579,0.801724983410579, + +00:30:19, +0.0816556991434578,0.0816556991434578,0.0817040511873028,0.0817021373700124,0.0816621141854647,0.0815999395621907,0.0815330169326548,0.0814776307475663,0.081446454326943,0.081446454326943, +0.0816556991434578,0.0816556991434578,0.0817040511873028,0.0817021373700124,0.0816621141854647,0.0815999395621907,0.0815330169326548,0.0814776307475663,0.081446454326943,0.081446454326943, +0.104500937538604,0.104500937538604,0.104546847043926,0.104533845687642,0.104476505290571,0.104394001538284,0.10430732483975,0.104236266338994,0.104196405512459,0.104196405512459, +0.151813235128284,0.151813235128284,0.15185137602886,0.151813541070089,0.151719145557616,0.151593813386133,0.151465709939538,0.151361741564046,0.151303577549161,0.151303577549161, +0.226157674201748,0.226157674201748,0.226177651654496,0.226096484561492,0.225940963831915,0.225746421498018,0.22555166447452,0.22539442970595,0.225306330640571,0.225306330640571, +0.329813894943242,0.329813894943242,0.329799551830282,0.329650610760524,0.329404449373347,0.329109512578239,0.328818119084369,0.328582329363063,0.32844890107055,0.32844890107055, +0.463310457727384,0.463310457727384,0.463241868259533,0.462994006402797,0.462621729258954,0.462190558139681,0.46176714538151,0.461419715697501,0.461217677619308,0.461217677619308, +0.624154134001996,0.624154134001996,0.624015894594767,0.623627585779557,0.623086878959943,0.622480970032619,0.621885504295001,0.621380356855605,0.621066641400202,0.621066641400202, +0.806206615942089,0.806206615942089,0.806018608575278,0.805415998075818,0.804655516733,0.803840612638767,0.80303437946483,0.802305347360453,0.801779179206629,0.801779179206629, + +00:30:20, +0.0817608936673559,0.0817608936673559,0.0818092646663966,0.0818073558410953,0.0817673264526147,0.0817051383919953,0.0816381997971016,0.081582799791587,0.0815516154334072,0.0815516154334072, +0.0817608936673559,0.0817608936673559,0.0818092646663966,0.0818073558410953,0.0817673264526147,0.0817051383919953,0.0816381997971016,0.081582799791587,0.0815516154334072,0.0815516154334072, +0.10461359024495,0.10461359024495,0.10465951120732,0.104646513698524,0.104589170781481,0.104506660156593,0.10441997485948,0.104348908766161,0.104309043551046,0.104309043551046, +0.151937628309329,0.151937628309329,0.151975768615112,0.151937937894978,0.151843549629589,0.151718225808345,0.151590130243881,0.1514861680413,0.151428007458413,0.151428007458413, +0.226292417922357,0.226292417922357,0.226312383714541,0.226231227440416,0.226075733630291,0.225881226621886,0.225686505567799,0.225529300173559,0.225441217727789,0.225441217727789, +0.329950844684576,0.329950844684576,0.329936486779883,0.329787574413466,0.329541472951078,0.329246612373154,0.328955296081447,0.328719569724299,0.328586177612119,0.328586177612119, +0.463435628602718,0.463435628602718,0.463367035046229,0.463119234627649,0.462747064635597,0.462316023588981,0.461892741196733,0.461545419526327,0.461343444486908,0.461343444486908, +0.624250719309573,0.624250719309573,0.624112501339763,0.623724302324654,0.623183760975393,0.62257804318212,0.621982767650241,0.621477781887106,0.621164166237108,0.621164166237108, +0.806259440788601,0.806259440788601,0.806071484539591,0.805469049416544,0.804708795906412,0.803894139785006,0.803088153183598,0.802359343003984,0.801833332656564,0.801833332656564, + +00:30:21, +0.0818661224696046,0.0818661224696046,0.0819145123956902,0.0819126085697277,0.081872573012481,0.0818103715664467,0.0817434170617333,0.08168800328182,0.0816568110120319,0.0816568110120319, +0.0818661224696046,0.0818661224696046,0.0819145123956902,0.0819126085697277,0.081872573012481,0.0818103715664467,0.0817434170617333,0.08168800328182,0.0816568110120319,0.0816568110120319, +0.104726262554322,0.104726262554322,0.10477219495537,0.104759201306772,0.10470185590701,0.104619338461504,0.104532644620433,0.104461570979492,0.10442170140105,0.10442170140105, +0.152062014960401,0.152062014960401,0.152100154670955,0.152062328209514,0.151967947227998,0.151842631803843,0.151714544169243,0.151610588178318,0.15155243104904,0.15155243104904, +0.226427124055069,0.226427124055069,0.226447078207368,0.226365932774791,0.226210465909987,0.226015994255282,0.225821309197678,0.225664133199,0.225576067384368,0.225576067384368, +0.330087730060389,0.330087730060389,0.330073357399576,0.329924473748357,0.329678432207329,0.329383647835532,0.329092408732376,0.328856745726751,0.328723389786907,0.328723389786907, +0.463560722294148,0.463560722294148,0.463492124682226,0.463244385682486,0.462872322788084,0.462441411742713,0.462018259642386,0.461671045922451,0.461469133883869,0.461469133883869, +0.624347235140534,0.624347235140534,0.624209038615313,0.623820949328934,0.623280573330146,0.622675046528555,0.622079961058756,0.621575136848052,0.621261620925941,0.621261620925941, +0.806312224422544,0.806312224422544,0.806124319256322,0.805522059371675,0.804762033510452,0.803947625159871,0.803141884929056,0.802413296491752,0.801887443820987,0.801887443820987, + +00:30:22, +0.0819713854827326,0.0819713854827326,0.0820197943077402,0.0820178954884551,0.0819778537975681,0.0819156390179889,0.0818486686589289,0.0817932411505904,0.081762040995112,0.081762040995112, +0.0819713854827326,0.0819713854827326,0.0820197943077402,0.0820178954884551,0.0819778537975681,0.0819156390179889,0.0818486686589289,0.0817932411505904,0.081762040995112,0.081762040995112, +0.104838954414145,0.104838954414145,0.104884898235523,0.104871908459809,0.104814560614526,0.104732036400306,0.104645334069814,0.104574252926122,0.104534379009567,0.104534379009567, +0.152186395059068,0.152186395059068,0.152224534173967,0.152186711991237,0.152092338330305,0.151967031349984,0.151838951692873,0.151735001952256,0.151676848298147,0.151676848298147, +0.226561792619843,0.226561792619843,0.226581735152912,0.226500600584497,0.226345160690795,0.226150724417887,0.225956075383727,0.225798928801748,0.225710879629731,0.225710879629731, +0.330224551135103,0.330224551135103,0.330210163753728,0.330061308829509,0.32981532720635,0.329520619029547,0.329229457101256,0.328993857434461,0.32886053765892,0.32886053765892, +0.46368573889611,0.46368573889611,0.46361713726189,0.46336945966166,0.462997503810782,0.462566722695262,0.462143700812873,0.461796594980296,0.461594745904631,0.461594745904631, +0.624443681589177,0.624443681589177,0.624305506515678,0.62391752688673,0.623377316118665,0.622771980166536,0.622177084615309,0.62167242183334,0.621359005561682,0.621359005561682, +0.806364966902963,0.806364966902963,0.806177112784558,0.805575028000488,0.804815229604644,0.80400106882316,0.80319557476127,0.80246720788407,0.801941512760393,0.801941512760393, + +00:30:23, +0.0820766826393376,0.0820766826393376,0.0821251103351712,0.082123216529892,0.0820831687404488,0.0820209406791342,0.0819539545211361,0.0818985133302919,0.0818673053150105,0.0818673053150105, +0.0820766826393376,0.0820766826393376,0.0821251103351712,0.082123216529892,0.0820831687404488,0.0820209406791342,0.0819539545211361,0.0818985133302919,0.0818673053150105,0.0818673053150105, +0.104951665771913,0.104951665771913,0.104997620995296,0.104984635105134,0.104927284851468,0.104844753920358,0.104758043154896,0.104686954553257,0.104647076323761,0.104647076323761, +0.152310768582958,0.152310768582958,0.152348907101783,0.152311089217741,0.152216722914025,0.15209142442418,0.151963352792072,0.151859409340327,0.151801259182896,0.151801259182896, +0.226696423636651,0.226696423636651,0.226716354571122,0.226635230889426,0.226479817992518,0.226285417129393,0.226090804145524,0.225933687001288,0.225845654483312,0.225845654483312, +0.330361307973074,0.330361307973074,0.330346905906636,0.330198079721164,0.329952158012321,0.329657526019307,0.32936644125212,0.329130904911404,0.328997621292104,0.328997621292104, +0.463810678502901,0.463810678502901,0.463742072879448,0.463494456659386,0.463122607797916,0.462691956540872,0.462269064802458,0.461922066794146,0.461720280643494,0.461720280643494, +0.624540058749637,0.624540058749637,0.624401905134962,0.624014035092217,0.623473989435252,0.622868844190517,0.622274138414504,0.621769636937704,0.621456320239152,0.621456320239152, +0.806417668288796,0.806417668288796,0.80622986518328,0.80562795536215,0.804868384248407,0.804054470834559,0.803249222740199,0.802521077241143,0.801995539535162,0.801995539535162, + +00:30:24, +0.0821820138720854,0.0821820138720854,0.0822304604106767,0.0822285716267209,0.0821885177737646,0.0821262764824636,0.0820592745808708,0.0820038197533865,0.0819726039041592,0.0819726039041592, +0.0821820138720854,0.0821820138720854,0.0822304604106767,0.0822285716267209,0.0821885177737646,0.0821262764824636,0.0820592745808708,0.0820038197533865,0.0819726039041592,0.0819726039041592, +0.105064396575189,0.105064396575189,0.105110363182276,0.105097381190312,0.105040028565346,0.10495749096909,0.104870771823026,0.104799675808172,0.10475979329087,0.10475979329087, +0.152435135509752,0.152435135509752,0.152473273432091,0.152435459866677,0.152341100956731,0.152215811003897,0.152087747444199,0.1519838103198,0.151925663680507,0.151925663680507, +0.226831017125469,0.226831017125469,0.226850936481953,0.226769823709477,0.226614437834968,0.226420072409503,0.226225495502656,0.226068407817116,0.225980391964553,0.225980391964553, +0.330498000638589,0.330498000638589,0.330483583922534,0.330334786487501,0.330088924689357,0.329794368868855,0.329503361248939,0.329267888221489,0.329134640750333,0.329134640750333, +0.463935541208677,0.463935541208677,0.463866931628991,0.463619376769737,0.463247634843573,0.462817113373652,0.462394351705269,0.46204746145815,0.461845738194619,0.461845738194619, +0.62463636671589,0.62463636671589,0.624498234567106,0.624110474039406,0.623570593374048,0.622965638694788,0.62237112255078,0.621866782255719,0.621553565053011,0.621553565053011, +0.806470328638872,0.806470328638872,0.806282576511358,0.80568084151572,0.804921497501047,0.804107831253648,0.80330282892569,0.802574904623064,0.802049524205567,0.802049524205567, + +00:30:25, +0.0822873791137109,0.0822873791137109,0.0823358444670187,0.0823339607116933,0.0822939008302254,0.0822316463606265,0.0821646287707175,0.082109160352405,0.0820779366950581,0.0820779366950581, +0.0822873791137109,0.0822873791137109,0.0823358444670187,0.0823339607116933,0.0822939008302254,0.0822316463606265,0.0821646287707175,0.082109160352405,0.0820779366950581,0.0820779366950581, +0.105177146771608,0.105177146771608,0.10522312474412,0.10521014666298,0.10515279170374,0.105070247494002,0.104983520021619,0.104912416638213,0.104872529858199,0.104872529858199, +0.15255949581719,0.15255949581719,0.152597633142638,0.152559823915753,0.15246547243605,0.15234019106666,0.152212135626671,0.152108204868003,0.152050061768255,0.152050061768255, +0.226965573106286,0.226965573106286,0.226985480905369,0.226904379064559,0.226749020237965,0.226554690277925,0.226360149474721,0.226203091268736,0.226115092092909,0.226115092092909, +0.330634629195871,0.330634629195871,0.330620197865585,0.330471429192631,0.330225627301507,0.329931147642167,0.329640217155614,0.32940480742856,0.329271596097422,0.329271596097422, +0.464060327107458,0.464060327107458,0.46399171360447,0.463744220086652,0.463372585041703,0.462942193287569,0.462519561615296,0.462172779066316,0.461971118652031,0.461971118652031, +0.624732605581749,0.624732605581749,0.624594494905888,0.624206843822149,0.623667128029032,0.623062363773479,0.62246803711842,0.621963857881796,0.621650740097756,0.621650740097756, +0.806522948011913,0.806522948011913,0.806335246827555,0.805733686520148,0.804974569421763,0.804161150139894,0.80335639337748,0.802628690089816,0.802103466831768,0.802103466831768, + +00:30:26, +0.0823927782970171,0.0823927782970171,0.0824412624370275,0.082439383717629,0.0823993178426096,0.0823370502463409,0.0822700170233293,0.0822145350599462,0.0821833036202758,0.0821833036202758, +0.0823927782970171,0.0823927782970171,0.0824412624370275,0.082439383717629,0.0823993178426096,0.0823370502463409,0.0822700170233293,0.0822145350599462,0.0821833036202758,0.0821833036202758, +0.105289916308873,0.105289916308873,0.105335905628555,0.105322931470843,0.105265574214297,0.105183023442664,0.10509628769816,0.105025176990795,0.104985285973124,0.104985285973124, +0.152683849483065,0.152683849483065,0.152721986211225,0.152684181342729,0.152589837329666,0.152464564590049,0.152336517316959,0.152232592962317,0.152174453423473,0.152174453423473, +0.227100091599097,0.227100091599097,0.227119987861344,0.227038896974588,0.226883565221339,0.226689270754381,0.226494766081327,0.226337737375664,0.226249754887842,0.226249754887842, +0.330771193709074,0.330771193709074,0.330756747799889,0.330608007900597,0.330362265912753,0.330067862403151,0.329777009035982,0.329541662596397,0.329408487397116,0.329408487397116, +0.464185036293125,0.464185036293125,0.464116418899698,0.463868986703929,0.463497458486116,0.463067196376455,0.46264469462639,0.462298019712517,0.462096422109616,0.462096422109616, +0.624828775440871,0.624828775440871,0.624690686244931,0.624303144534137,0.623763593494025,0.62315901952056,0.622564882211541,0.622060863910187,0.621747845467727,0.621747845467727, +0.806575526466532,0.806575526466532,0.806387876190528,0.805786490434277,0.805027600069645,0.804214427552657,0.803409916155198,0.802682433701271,0.802157367473815,0.802157367473815, + +00:30:27, +0.0824982113548757,0.0824982113548757,0.0825467142536025,0.0825448405774165,0.0825047687437644,0.0824424880723931,0.0823754392714277,0.0823199438086778,0.0822887046124493,0.0822887046124493, +0.0824982113548757,0.0824982113548757,0.0825467142536025,0.0825448405774165,0.0825047687437644,0.0824424880723931,0.0823754392714277,0.0823199438086778,0.0822887046124493,0.0822887046124493, +0.105402705134759,0.105402705134759,0.105448705783377,0.105435735561676,0.105378376044738,0.105295818762714,0.105209074800205,0.105137956813404,0.105098061583093,0.105098061583093, +0.152808196485226,0.152808196485226,0.152846332615708,0.152808532125424,0.152714195615319,0.1525889315517,0.152460892492589,0.15235697458018,0.152298838623548,0.152298838623548, +0.227234572623906,0.227234572623906,0.227254457369859,0.227173377459492,0.227018072804928,0.226823813858599,0.226629345342089,0.226472346157424,0.226384380368826,0.226384380368826, +0.330907694242285,0.330907694242285,0.330893233789477,0.330744522675379,0.33049884058701,0.330204513215653,0.329913736953814,0.32967845378871,0.329545314713096,0.329545314713096, +0.464309668859421,0.464309668859421,0.464241047608351,0.463993676715229,0.463622255270487,0.463192122734005,0.462769750832267,0.462423183490487,0.462221648661124,0.462221648661124, +0.624924876386748,0.624924876386748,0.624786808677695,0.624399376268901,0.623859989862685,0.62325560602984,0.622661657924104,0.622157800434982,0.621844881257098,0.621844881257098, +0.806628064061234,0.806628064061234,0.806440464658822,0.805839253316839,0.805080589503674,0.804267663551189,0.803463397318361,0.802736135517194,0.802211226191649,0.802211226191649, + +00:30:28, +0.0826036782202272,0.0826036782202272,0.0826521998497111,0.0826503312240126,0.0826102534666053,0.0825479597716382,0.0824808954478028,0.0824253865313358,0.0823941396042843,0.0823941396042843, +0.0826036782202272,0.0826036782202272,0.0826521998497111,0.0826503312240126,0.0826102534666053,0.0825479597716382,0.0824808954478028,0.0824253865313358,0.0823941396042843,0.0823941396042843, +0.105515513197109,0.105515513197109,0.105561525156453,0.105548558883326,0.10549119714285,0.105408633401862,0.105321881275378,0.105250756053595,0.105210856635621,0.105210856635621, +0.152932536801577,0.152932536801577,0.152970672333998,0.15293287624171,0.152838547270803,0.152713291929304,0.152585261131146,0.152481349699088,0.152423217345927,0.152423217345927, +0.227369016200728,0.227369016200728,0.227388889450905,0.227307820539205,0.22715254300858,0.226958319610317,0.226763887276634,0.226606917633551,0.226518968555344,0.226518968555344, +0.331044130859526,0.331044130859526,0.331029655898315,0.330880973580885,0.330635351388127,0.330341100143449,0.330050400972815,0.329815181069148,0.329682078108978,0.329682078108978, +0.464434224899951,0.464434224899951,0.464365599823965,0.464118290214076,0.463746975488353,0.463316972453774,0.462894730326504,0.462548270493825,0.462346798400169,0.462346798400169, +0.625020908512717,0.625020908512717,0.62488286229748,0.624495539119815,0.623956317228514,0.62335212339497,0.622758364349908,0.622254667550113,0.621941847559888,0.621941847559888, +0.806680560854417,0.806680560854417,0.806493012290879,0.805891975226461,0.805133537782724,0.80432085819463,0.803516836926381,0.802789795597237,0.802265043045102,0.802265043045102, + +00:30:29, +0.0827091788260805,0.0827091788260805,0.0827577191583897,0.0827558555904431,0.0827157719441163,0.0826534652769997,0.0825863854853131,0.0825308631607248,0.0824996085285547,0.0824996085285547, +0.0827091788260805,0.0827091788260805,0.0827577191583897,0.0827558555904431,0.0827157719441163,0.0826534652769997,0.0825863854853131,0.0825308631607248,0.0824996085285547,0.0824996085285547, +0.105628340443836,0.105628340443836,0.105674363695718,0.105661401383708,0.105604037456493,0.105521467307888,0.105434707071375,0.105363574658994,0.105323671078295,0.105323671078295, +0.153056870410079,0.153056870410079,0.153095005344063,0.153057213669515,0.152962892273968,0.152837645700606,0.152709623210269,0.152605718296589,0.152547589568107,0.152547589568107, +0.227503422349582,0.227503422349582,0.227523284124479,0.227442226233668,0.22728697585215,0.227092788029282,0.226898391904597,0.226741451823588,0.226653519466889,0.226653519466889, +0.331180503624751,0.331180503624751,0.331166014190298,0.331017360680961,0.330771798379887,0.330477623250251,0.330187001156626,0.329951844501291,0.329818777648311,0.329818777648311, +0.464558704508182,0.464558704508182,0.464490075639941,0.464242827293857,0.463871619233111,0.463441745629182,0.46301963320254,0.462673280815991,0.462471871420227,0.462471871420227, +0.625116871911953,0.625116871911953,0.62497884719743,0.624591633180091,0.624052575684851,0.623448571709439,0.622855001582593,0.622351465349352,0.622038744469954,0.622038744469954, +0.806733016904373,0.806733016904373,0.806545519145031,0.805944656221661,0.80518644496556,0.804374011542015,0.803570235038558,0.802843414000946,0.802318818093893,0.802318818093893, + +00:30:30, +0.0828147131055131,0.0828147131055131,0.082863272112743,0.0828614136098019,0.0828213241093503,0.0827590045214697,0.0826919093168856,0.0826363736297177,0.0826051113181031,0.0826051113181031, +0.0828147131055131,0.0828147131055131,0.082863272112743,0.0828614136098019,0.0828213241093503,0.0827590045214697,0.0826919093168856,0.0826363736297177,0.0826051113181031,0.0826051113181031, +0.105741186822923,0.105741186822923,0.105787221349179,0.105774263010806,0.105716896933593,0.105634320428639,0.105547552135961,0.105476412577297,0.10543650485877,0.10543650485877, +0.153181197288745,0.153181197288745,0.153219331623924,0.153181544386823,0.153087230602719,0.15296199284341,0.152833978707651,0.152730080350291,0.152671955267647,0.152671955267647, +0.227637791090499,0.227637791090499,0.227657641410589,0.227576594562834,0.227421371355503,0.227227219135249,0.227032859245622,0.226875948747089,0.226788033122963,0.226788033122963, +0.331316812601847,0.331316812601847,0.33130230872926,0.331153684039384,0.330908181626007,0.330614082599703,0.330323537568818,0.330088444148657,0.329955413394582,0.329955413394582, +0.464683107777446,0.464683107777446,0.464614475149543,0.464367288047819,0.463996186598024,0.463566442353512,0.463144459553681,0.462798214550309,0.462596867814636,0.462596867814636, +0.625212766677473,0.625212766677473,0.625074763470528,0.624687658542783,0.62414876532488,0.623544951066579,0.622951569715639,0.622448193926311,0.622135572080993,0.622135572080993, +0.806785432269287,0.806785432269287,0.806597985279503,0.805997296360852,0.80523931111084,0.804427123652269,0.803623591714084,0.802896990787757,0.802372551397635,0.802372551397635, + +00:30:31, +0.0829202809916711,0.0829202809916711,0.0829688586459445,0.0829670052152519,0.0829269098954283,0.0828645774381087,0.082797466875516,0.0827419178712562,0.0827106479058405,0.0827106479058405, +0.0829202809916711,0.0829202809916711,0.0829688586459445,0.0829670052152519,0.0829269098954283,0.0828645774381087,0.082797466875516,0.0827419178712562,0.0827106479058405,0.0827106479058405, +0.105854052282422,0.105854052282422,0.105900098064909,0.105887143712673,0.105829775522148,0.105747192712033,0.105660416416969,0.105589269756267,0.105549357924773,0.105549357924773, +0.153305517415646,0.153305517415646,0.153343651151658,0.153305868371671,0.153211562235016,0.153086333335572,0.152958327601042,0.152854435837853,0.152796314422157,0.152796314422157, +0.227772122443515,0.227772122443515,0.227791961329249,0.227710925546661,0.22755572953851,0.227361612947983,0.227167289319362,0.227010408423614,0.226922509543077,0.226922509543077, +0.331453057854634,0.331453057854634,0.331438539578965,0.331289943719865,0.331044501190135,0.330750478255385,0.3304600102729,0.330224980074695,0.330091985411208,0.330091985411208, +0.464807434800935,0.464807434800935,0.464738798445896,0.464491672569077,0.464120677676217,0.46369106271991,0.463269209473093,0.462923071789969,0.4627217876766,0.4627217876766, +0.625308592902136,0.625308592902136,0.625170611209598,0.624783615300786,0.624244886241622,0.623641261559562,0.623048068842369,0.622544853374442,0.622232330486543,0.622232330486543, +0.806837807007236,0.806837807007236,0.806650410752417,0.806049895702338,0.805292136277115,0.804480194584209,0.803676907012043,0.802950526016996,0.802426243015831,0.802426243015831, + +00:30:32, +0.0830258824177692,0.0830258824177692,0.0830744786912363,0.0830726303400242,0.0830325292355403,0.0829701839600459,0.0829030580942683,0.0828474958183504,0.0828162182247465,0.0828162182247465, +0.0830258824177692,0.0830258824177692,0.0830744786912363,0.0830726303400242,0.0830325292355403,0.0829701839600459,0.0829030580942683,0.0828474958183504,0.0828162182247465,0.0828162182247465, +0.105966936770455,0.105966936770455,0.106012993791054,0.106000043437435,0.105942673170226,0.105860084106059,0.105773299862304,0.105702146143739,0.105662230224098,0.105662230224098, +0.153429830768905,0.153429830768905,0.153467963905396,0.153430185602152,0.153335887148874,0.153210667155004,0.153082669868248,0.152978784736995,0.152920667009304,0.152920667009304, +0.227906416428676,0.227906416428676,0.227926243900481,0.227845219205116,0.227690050421053,0.227495969487255,0.227301682145478,0.227144830872737,0.227056948746751,0.227056948746751, +0.331589239446866,0.331589239446866,0.331574706803109,0.331426139786048,0.331180757135855,0.330886810280809,0.330596419332314,0.330361452342791,0.330228493761545,0.330228493761545, +0.464931685671706,0.464931685671706,0.46486304562199,0.464615980950604,0.46424509256068,0.463815606821384,0.463393883053808,0.463047852628021,0.462846631099187,0.462846631099187, +0.625404350678643,0.625404350678643,0.625266390507309,0.62487950354684,0.624340938527944,0.623737503281403,0.623144499055945,0.622641443787039,0.622329019779985,0.622329019779985, +0.806890141176191,0.806890141176191,0.806702795621783,0.806102454304316,0.805344920522826,0.804533224396547,0.803730180991411,0.803004019747881,0.802479893007876,0.802479893007876, + +00:30:33, +0.0831315173170907,0.0831315173170907,0.0831801321819289,0.0831782889174189,0.0831381820629445,0.083075824020479,0.0830086829062753,0.0829531074040788,0.0829218222078691,0.0829218222078691, +0.0831315173170907,0.0831315173170907,0.0831801321819289,0.0831782889174189,0.0831381820629445,0.083075824020479,0.0830086829062753,0.0829531074040788,0.0829218222078691,0.0829218222078691, +0.106079840235212,0.106079840235212,0.106125908475828,0.106112962133283,0.106055589825962,0.105972994558774,0.105886202419939,0.105815041687618,0.10577512170461,0.10577512170461, +0.153554137326702,0.153554137326702,0.153592269863324,0.153554496056412,0.153460205322363,0.153334994279674,0.153207005487129,0.153103127025486,0.153045013006812,0.153045013006812, +0.228040673066035,0.228040673066035,0.228060489144314,0.227979475558175,0.227824334023019,0.227630288772848,0.227436037743641,0.227279216114035,0.227191350753515,0.227191350753515, +0.33172535744223,0.33172535744223,0.331710810465325,0.331562272301512,0.331316949526685,0.331023078739423,0.330732764810436,0.330497861016263,0.330364938508881,0.330364938508881, +0.465055860482679,0.465055860482679,0.464987216770678,0.464740213285241,0.464369431344264,0.46394007475081,0.46351848038872,0.463172557157382,0.462971398175328,0.462971398175328, +0.625500040099536,0.625500040099536,0.625362101456169,0.624975323373522,0.624436922276552,0.623833676324957,0.623240860449374,0.62273796525724,0.622425640054539,0.622425640054539, +0.806942434834019,0.806942434834019,0.80675513994551,0.806154972224877,0.805397663906311,0.804586213147885,0.803783413711058,0.803057472039525,0.802533501433054,0.802533501433054, + +00:30:34, +0.0832371856229877,0.0832371856229877,0.0832858190514015,0.0832839808808042,0.0832438683109679,0.0831814975526742,0.0831143412447381,0.0830587525615885,0.0830274597883249,0.0830274597883249, +0.0832371856229877,0.0832371856229877,0.0832858190514015,0.0832839808808042,0.0832438683109679,0.0831814975526742,0.0831143412447381,0.0830587525615885,0.0830274597883249,0.0830274597883249, +0.106192762624955,0.106192762624955,0.106238842067512,0.10622589974848,0.106168525437562,0.106085924018304,0.105999124037916,0.105927956335877,0.105888032314244,0.105888032314244, +0.153678437067269,0.153678437067269,0.153716569003681,0.153678799712653,0.153584516733606,0.153459314687602,0.153331334435598,0.153227462681154,0.153169352392457,0.153169352392457, +0.228174892375652,0.228174892375652,0.228194697080788,0.228113694625819,0.227958580364306,0.227764570824549,0.227570356133529,0.227413564167099,0.227325715582907,0.227325715582907, +0.331861411904346,0.331861411904346,0.331846850629177,0.331698341329767,0.331453078426075,0.331159283694608,0.330869046770576,0.330634206158366,0.330501319716439,0.330501319716439, +0.465179959326636,0.465179959326636,0.465111311984676,0.464864369665691,0.464493694119685,0.464064466600922,0.463643001570589,0.463297185470832,0.463096088997818,0.463096088997818, +0.6255956612572,0.6255956612572,0.625457744148531,0.625071074873257,0.624532837579995,0.623929780782923,0.6233371531155,0.622834417878021,0.62252219140327,0.62252219140327, +0.806994688038478,0.806994688038478,0.806807443781398,0.806207449522007,0.8054503664858,0.804639160896718,0.803836605229743,0.803110882950928,0.802587068350545,0.802587068350545, + +00:30:35, +0.0833428872688805,0.0833428872688805,0.0833915392331019,0.0833897061636173,0.0833495879130061,0.0832872044899663,0.0832200330429266,0.0831644312240953,0.0831331308992991,0.0831331308992991, +0.0833428872688805,0.0833428872688805,0.0833915392331019,0.0833897061636173,0.0833495879130061,0.0832872044899663,0.0832200330429266,0.0831644312240953,0.0831331308992991,0.0831331308992991, +0.106305703888013,0.106305703888013,0.106351794514459,0.106338856231357,0.106281479953301,0.106198872432845,0.106112064664349,0.106040890036559,0.106000962001005,0.106000962001005, +0.153802729968894,0.153802729968894,0.153840861304762,0.153803096549131,0.153708821360782,0.153583628356865,0.153455656691626,0.153351791681881,0.153293685144072,0.153293685144072, +0.228309074377595,0.228309074377595,0.228328867729946,0.228247876428038,0.228092789464817,0.227898815662157,0.227704637334831,0.227547875051525,0.227460043254475,0.227460043254475, +0.331997402896768,0.331997402896768,0.331982827358162,0.331834346934259,0.33158914389741,0.331295425209678,0.33100526527598,0.330770487832289,0.330637637447378,0.330637637447378, +0.465303982296225,0.465303982296225,0.465235331356565,0.46498845018452,0.464617880979524,0.464188782464325,0.463767446692038,0.463421737661016,0.463220703659318,0.463220703659318, +0.625691214243863,0.625691214243863,0.625553318676588,0.625166758138308,0.624628684530667,0.624025816747841,0.623433377147016,0.622930801742204,0.622618673919082,0.622618673919082, +0.807046900847223,0.807046900847223,0.806859707187142,0.806259886253585,0.805503028319416,0.804692067701436,0.80388975560612,0.803164252540986,0.802640593819416,0.802640593819416, + +00:30:36, +0.0834486221882584,0.0834486221882584,0.0834972926605466,0.0834954646993638,0.083455340802523,0.0833929447657588,0.0833257582341789,0.0832701433248833,0.0832388354740453,0.0832388354740453, +0.0834486221882584,0.0834486221882584,0.0834972926605466,0.0834954646993638,0.083455340802523,0.0833929447657588,0.0833257582341789,0.0832701433248833,0.0832388354740453,0.0832388354740453, +0.106418663972784,0.106418663972784,0.106464765765091,0.106451831530314,0.106394453321522,0.106311839750661,0.106225024247418,0.106153842737777,0.106113910712964,0.106113910712964, +0.153927016009919,0.153927016009919,0.153965146744915,0.153927386544156,0.153833119182123,0.153707935265593,0.153579972233237,0.153476114005603,0.153418011239544,0.153418011239544, +0.228443219091941,0.228443219091941,0.228463001111842,0.228382020984831,0.228226961344465,0.228033023305475,0.22783888136724,0.22768214878692,0.227594333787773,0.227594333787773, +0.332133330482983,0.332133330482983,0.332118740715712,0.331970289178364,0.331725146004007,0.331431503347882,0.331141420389825,0.330906706101155,0.330773891764789,0.330773891764789, +0.465427929483958,0.465427929483958,0.465359274978789,0.46511245493416,0.464741992016226,0.464313022433482,0.463891815845555,0.463546213820444,0.463345242252352,0.463345242252352, +0.625786699151598,0.625786699151598,0.625648825132381,0.625262373260784,0.624724463220801,0.624121784312095,0.623529532636452,0.623027116942451,0.622715087694724,0.622715087694724, +0.807099073317802,0.807099073317802,0.806911930220332,0.806312282477384,0.805555649465175,0.80474493362032,0.803942864898735,0.803217580868487,0.80269407789863,0.80269407789863, + +00:30:37, +0.0835543903146791,0.0835543903146791,0.0836030792673206,0.083601256421618,0.0835611269130515,0.0834987183135235,0.0834315167519019,0.0833758887973053,0.0833445734458856,0.0833445734458856, +0.0835543903146791,0.0835543903146791,0.0836030792673206,0.083601256421618,0.0835611269130515,0.0834987183135235,0.0834315167519019,0.0833758887973053,0.0833445734458856,0.0833445734458856, +0.106531642827736,0.106531642827736,0.106577755767899,0.106564825593821,0.106507445490639,0.106424825920088,0.106338002735374,0.106266814387711,0.106226878398266,0.106226878398266, +0.154051295168739,0.154051295168739,0.154089425302543,0.154051669676091,0.153957410175916,0.153832235391972,0.15370428103851,0.153600429630313,0.153542330656816,0.153542330656816, +0.228577326538771,0.228577326538771,0.228597097246536,0.228516128316203,0.228361096023169,0.228167193774317,0.227973088250461,0.227816385392897,0.227728587202367,0.227728587202367, +0.33226919472641,0.33226919472641,0.332254590765191,0.332106168125397,0.33186108480912,0.331567518172403,0.331277512175227,0.331042861028021,0.330910082731702,0.330910082731702, +0.465551800982209,0.465551800982209,0.465483142943657,0.465236384006906,0.4648660273221,0.464437186600726,0.464016109123494,0.46367061404149,0.463469704869312,0.463469704869312, +0.625882116072317,0.625882116072317,0.62574426360779,0.625357920332639,0.624820173742478,0.624217683567912,0.623625619676184,0.623123363571268,0.622811432822786,0.622811432822786, +0.807151205507659,0.807151205507659,0.806964112938452,0.806364638251072,0.805608229980989,0.804797758711547,0.803995933166028,0.80327086799211,0.802747520647043,0.802747520647043, + +00:30:38, +0.083660191581769,0.083660191581769,0.0837088989870776,0.0837070812640226,0.0836669461781926,0.0836045250668009,0.083537308529571,0.0834816675747826,0.0834503447482107,0.0834503447482107, +0.083660191581769,0.083660191581769,0.0837088989870776,0.0837070812640226,0.0836669461781926,0.0836045250668009,0.083537308529571,0.0834816675747826,0.0834503447482107,0.0834503447482107, +0.106644640401408,0.106644640401408,0.10669076447144,0.106677838370417,0.106620456409133,0.106537830889528,0.106451000076537,0.106379804934613,0.106339865005121,0.106339865005121, +0.154175567423804,0.154175567423804,0.154213696956102,0.154175945923355,0.154081694320502,0.153956528714239,0.153828583085578,0.153724738534055,0.153666643373885,0.153666643373885, +0.228711396738177,0.228711396738177,0.228731156154093,0.228650198442165,0.228495193520856,0.228301327088503,0.228107258004206,0.227950584889079,0.22786280351783,0.22786280351783, +0.332404995690403,0.332404995690403,0.332390377569897,0.332241983838601,0.331996960375932,0.331703469746359,0.331413540695231,0.331178952675879,0.331046210411077,0.331046210411077, +0.465675596883218,0.465675596883218,0.465606935343344,0.46536023749492,0.46498998698932,0.464561275058252,0.464140326618073,0.463794938416393,0.463594091602453,0.463594091602453, +0.625977465097781,0.625977465097781,0.625839634194541,0.625453399445666,0.624915816187618,0.624313514607363,0.623721638358431,0.623219541721005,0.622907709395703,0.622907709395703, +0.807203297474133,0.807203297474133,0.807016255398884,0.806416953632212,0.805660769924664,0.804850543033186,0.804048960466333,0.803324113970428,0.802800922123399,0.802800922123399, + +00:30:39, +0.0837660259232231,0.0837660259232231,0.0838147517535397,0.0838129391602891,0.0837727985316163,0.0837103649592001,0.0836431335007303,0.0835874795908048,0.08355614931448,0.08355614931448, +0.0837660259232231,0.0837660259232231,0.0838147517535397,0.0838129391602891,0.0837727985316163,0.0837103649592001,0.0836431335007303,0.0835874795908048,0.08355614931448,0.08355614931448, +0.106757656642403,0.106757656642403,0.106803791824344,0.106790869808708,0.106733486025556,0.106650854607453,0.106564016219296,0.106492814326802,0.106452870481811,0.106452870481811, +0.154299832753617,0.154299832753617,0.154337961684101,0.154300215264417,0.154205971594274,0.154080815210689,0.153952878352627,0.15384904069493,0.153790949368801,0.153790949368801, +0.228845429710254,0.228845429710254,0.228865177854589,0.228784231382736,0.22862925385746,0.228435423267861,0.228241390648192,0.228084747295096,0.227996982753741,0.227996982753741, +0.332540733438249,0.332540733438249,0.332526101193062,0.332377736381156,0.332132772767565,0.331839358132799,0.331549506012822,0.331314981107658,0.331182274865812,0.331182274865812, +0.465799317279091,0.465799317279091,0.465730652269887,0.465484015490226,0.465113871109925,0.46468528789812,0.464264468421375,0.46391918703726,0.463718402543894,0.463718402543894, +0.626072746319592,0.626072746319592,0.625934936984204,0.625548810691507,0.625011390647989,0.624409277522362,0.623817588775256,0.623315651483854,0.623003917505752,0.623003917505752, +0.807255349274457,0.807255349274457,0.807068357658901,0.806469228678261,0.805713269353899,0.804903286643202,0.804101946857876,0.803377318861909,0.802854282386341,0.802854282386341, + +00:30:40, +0.083871893272805,0.083871893272805,0.0839206375004978,0.0839188300441975,0.083878683907061,0.0838162379243988,0.083748991598992,0.0836933247789306,0.0836619870782212,0.0836619870782212, +0.083871893272805,0.083871893272805,0.0839206375004978,0.0839188300441975,0.083878683907061,0.0838162379243988,0.083748991598992,0.0836933247789306,0.0836619870782212,0.0836619870782212, +0.106870691499397,0.106870691499397,0.106916837775308,0.106903919857371,0.106846534288528,0.106763897022405,0.106677051112109,0.106605842512668,0.106565894776685,0.106565894776685, +0.154424091136734,0.154424091136734,0.154462219465104,0.154424477677803,0.154330241975682,0.154205094859667,0.154077166817899,0.153973336091092,0.15391524861967,0.15391524861967, +0.228979425475106,0.228979425475106,0.228999162368103,0.228918227157944,0.228763277052923,0.228569482332227,0.228375486202149,0.228218872630588,0.22813112492969,0.22813112492969, +0.332676408033168,0.332676408033168,0.332661761697851,0.332513425816174,0.332268522047071,0.331975183394709,0.331685408190914,0.331450946386217,0.331318276158739,0.331318276158739, +0.465922962261796,0.465922962261796,0.465854293815191,0.465607718084714,0.465237679775819,0.464809225212258,0.464388534625349,0.46404335999606,0.463842637785624,0.463842637785624, +0.626167959829198,0.626167959829198,0.626030172068194,0.625644154161646,0.625106897215202,0.624504972404668,0.623913471018565,0.623411692951853,0.623100057245055,0.623100057245055, +0.807307360965761,0.807307360965761,0.807120419775674,0.806521463446572,0.80576572832629,0.804955989599453,0.804154892398779,0.803430482724913,0.802907601494402,0.802907601494402, + +00:30:41, +0.083977793564347,0.083977793564347,0.0840265561618114,0.0840247538495965,0.0839846022383336,0.0839221438961431,0.0838548827580374,0.0837992030727866,0.0837678579730306,0.0837678579730306, +0.083977793564347,0.083977793564347,0.0840265561618114,0.0840247538495965,0.0839846022383336,0.0839221438961431,0.0838548827580374,0.0837992030727866,0.0837678579730306,0.0837678579730306, +0.106983744921134,0.106983744921134,0.107029902273097,0.107016988465152,0.106959601146736,0.106876958082994,0.106790104703502,0.106718889440668,0.106678937838164,0.106678937838164, +0.154548342551765,0.154548342551765,0.154586470277726,0.154548733142091,0.154454505443226,0.154329367639575,0.154201448459689,0.154097624700749,0.154039541104652,0.154039541104652, +0.229113384052845,0.229113384052845,0.229133109714723,0.22905218578782,0.228897263127191,0.228703504301444,0.22850954468581,0.2283529609152,0.228265230065275,0.228265230065275, +0.332812019538315,0.332812019538315,0.332797359147361,0.332649052206701,0.332404208277438,0.332110945595009,0.331821247292359,0.331586848574354,0.331454214352625,0.331454214352625, +0.466046531923169,0.466046531923169,0.465977860071023,0.465731345370142,0.465361413078773,0.464933087092456,0.464512525321809,0.464167457384631,0.463966797419495,0.463966797419495, +0.62626310571789,0.62626310571789,0.626125339537772,0.625739429947412,0.625202335980712,0.624600599345884,0.62400928518011,0.623507666216882,0.623196128705578,0.623196128705578, +0.807359332605072,0.807359332605072,0.807172441806269,0.806573657994393,0.805818146899327,0.805008651959691,0.804207797147055,0.803483605617694,0.802960879506008,0.802960879506008, + +00:30:42, +0.0840837267317498,0.0840837267317498,0.0841325076714086,0.0841307105104032,0.0840905534593097,0.0840280828082479,0.0839608069116161,0.0839051144060685,0.0838737619325731,0.0838737619325731, +0.0840837267317498,0.0840837267317498,0.0841325076714086,0.0841307105104032,0.0840905534593097,0.0840280828082479,0.0839608069116161,0.0839051144060685,0.0838737619325731,0.0838737619325731, +0.107096816856425,0.107096816856425,0.107142985266546,0.107130075580863,0.107072686548939,0.106990037737898,0.106903176942071,0.10683195505933,0.106791999614734,0.106791999614734, +0.154672586977374,0.154672586977374,0.154710714100638,0.154672981635913,0.154578761975462,0.154453633528865,0.154325723256346,0.154221906502164,0.15416382680196,0.15416382680196, +0.229247305463587,0.229247305463587,0.229267019914544,0.229186107292404,0.229031212100222,0.228837489195362,0.228643566118917,0.228487012168586,0.228399298180099,0.228399298180099, +0.332947568016776,0.332947568016776,0.332932893604626,0.332784615615718,0.332539831521585,0.332246644796551,0.331957023379943,0.3317226877348,0.33159008951017,0.33159008951017, +0.466170026354909,0.466170026354909,0.466101351129019,0.465854897438129,0.465485071110421,0.465056873630372,0.464636440602437,0.464291479294675,0.464090881537224,0.464090881537224, +0.626358184076806,0.626358184076806,0.62622043948404,0.62583463813998,0.625297707035819,0.624696158437458,0.624105031351487,0.623603571370668,0.623292131979131,0.623292131979131, +0.80741126424931,0.80741126424931,0.80722442380765,0.806625812378869,0.805870525130395,0.805061273781566,0.804260661160616,0.8035366875984,0.803014116479481,0.803014116479481, + +00:30:43, +0.084189692708983,0.084189692708983,0.0842384919632861,0.0842366999606036,0.0841965375039336,0.0841340545945964,0.0840667639935462,0.0840110587125402,0.0839796988905821,0.0839796988905821, +0.084189692708983,0.084189692708983,0.0842384919632861,0.0842366999606036,0.0841965375039336,0.0841340545945964,0.0840667639935462,0.0840110587125402,0.0839796988905821,0.0839796988905821, +0.107209907254152,0.107209907254152,0.107256086704558,0.107243181153387,0.107185790443962,0.107103135935865,0.107016267776481,0.106945039317249,0.106905080054954,0.106905080054954, +0.154796824392277,0.154796824392277,0.154834950912563,0.154797223137953,0.154703011550998,0.154577892506045,0.154449991186272,0.154346181473653,0.154288105689861,0.154288105689861, +0.229381189727456,0.229381189727456,0.229400892987666,0.229319991691743,0.229165123991977,0.228971437033837,0.228777550521221,0.22862102641041,0.228533329293777,0.228533329293777, +0.333083053531571,0.333083053531571,0.33306836513261,0.332920116106137,0.332675391842369,0.332382281062123,0.332092736516384,0.33185846393022,0.331725901694011,0.331725901694011, +0.466293445648583,0.466293445648583,0.466224767080679,0.465978374380164,0.465608653962265,0.465180584917531,0.46476028055878,0.464415425817761,0.464214890230398,0.464214890230398, +0.626453194996929,0.626453194996929,0.626315471997951,0.625929778830371,0.625393010471669,0.624791649770684,0.624200709624137,0.623699408504782,0.623388067157369,0.623388067157369, +0.807463155955294,0.807463155955294,0.807276365836675,0.806677926657039,0.805922863076775,0.805113855122619,0.804313484497264,0.803589728725073,0.803067312473034,0.803067312473034, + +00:30:44, +0.0842956914300846,0.0842956914300846,0.0843445089715091,0.0843427221342519,0.0843025543062179,0.0842400591891406,0.0841727539377145,0.0841170359260343,0.0840856687808596,0.0840856687808596, +0.0842956914300846,0.0842956914300846,0.0843445089715091,0.0843427221342519,0.0843025543062179,0.0842400591891406,0.0841727539377145,0.0841170359260343,0.0840856687808596,0.0840856687808596, +0.107323016063263,0.107323016063263,0.107369206536105,0.107356305131674,0.107298912780701,0.107216252625711,0.107129377155466,0.10705814216309,0.107018179107448,0.107018179107448, +0.154921054775244,0.154921054775244,0.154959180692276,0.154921457626948,0.154827254148494,0.154702144549677,0.154574252227923,0.154470449593585,0.154412377746678,0.154412377746678, +0.229515036864582,0.229515036864582,0.229534728954196,0.22945383900589,0.229298998822424,0.229105347836734,0.228911497912477,0.228755003660338,0.228667323425927,0.228667323425927, +0.333218476145656,0.333218476145656,0.333203773794212,0.333055553740806,0.332810889302578,0.332517854454447,0.332228386764339,0.331994177223214,0.33186165096672,0.33186165096672, +0.46641678989562,0.46641678989562,0.466348108017368,0.466101776287599,0.465732161725673,0.465304221045321,0.464884045282249,0.464539297045326,0.464338823590467,0.464338823590467, +0.626548138569088,0.626548138569088,0.626410437170301,0.62602485210945,0.625488246379255,0.624887073436701,0.624296320089346,0.623795177710638,0.623483934331793,0.623483934331793, +0.807515007779739,0.807515007779739,0.807328267950099,0.806730000885841,0.805975160795644,0.80516639604029,0.8043662672147,0.803642729055651,0.803120467544779,0.803120467544779, + +00:30:45, +0.0844017228291614,0.0844017228291614,0.0844505586302116,0.0844487769654712,0.084408603800244,0.084346096525901,0.0842787766780762,0.0842230459804519,0.0841916715372761,0.0841916715372761, +0.0844017228291614,0.0844017228291614,0.0844505586302116,0.0844487769654712,0.084408603800244,0.084346096525901,0.0842787766780762,0.0842230459804519,0.0841916715372761,0.0841916715372761, +0.107436143232778,0.107436143232778,0.107482344710227,0.107469447464745,0.107412053508117,0.107329387756321,0.107242505027825,0.107171263545585,0.107131296720912,0.107131296720912, +0.155045278105096,0.155045278105096,0.155083403418605,0.155045685081689,0.154951489746665,0.154826389638373,0.154698506359808,0.154594710840383,0.154536642950783,0.154536642950783, +0.229648846895102,0.229648846895102,0.229668527834247,0.229587649254904,0.22943283661154,0.229239221623924,0.229045408312451,0.22888894393805,0.228801280596179,0.228801280596179, +0.333353835921918,0.333353835921918,0.333339119652266,0.333190928582506,0.332946323964935,0.332653365036179,0.332363974186394,0.332129827676318,0.331997337390802,0.331997337390802, +0.46654005918732,0.46654005918732,0.466471374030318,0.466225103251654,0.465855594491877,0.465427782104998,0.465007734864126,0.46466309306867,0.46446268170875,0.46446268170875, +0.626643014883957,0.626643014883957,0.626505335091732,0.626119858067929,0.625583414849414,0.624982429526493,0.624391862838247,0.6238908790795,0.62357973359375,0.62357973359375, +0.807566819779255,0.807566819779255,0.807380130204575,0.806782035122106,0.806027418344075,0.805218896591912,0.804419009370517,0.803695688647964,0.803173581752717,0.803173581752717, + +00:30:46, +0.0845077868403887,0.0845077868403887,0.0845566408735961,0.0845548643884532,0.0845146859201619,0.0844521665389667,0.0843848321486553,0.0843290888097627,0.0842977070937706,0.0842977070937706, +0.0845077868403887,0.0845077868403887,0.0845566408735961,0.0845548643884532,0.0845146859201619,0.0844521665389667,0.0843848321486553,0.0843290888097627,0.0842977070937706,0.0842977070937706, +0.107549288711782,0.107549288711782,0.107595501176033,0.107582608101687,0.107525212575244,0.107442541276648,0.107355651342431,0.107284403413537,0.107244432844108,0.107244432844108, +0.155169494360709,0.155169494360709,0.155207619070432,0.155169905481018,0.155075718324278,0.1549506277508,0.154822753560489,0.154718965192523,0.154660901280606,0.154660901280606, +0.229782619839159,0.229782619839159,0.229802289647938,0.229721422458849,0.229566637379305,0.229373058415284,0.229179281740913,0.229022847263227,0.228935200824167,0.228935200824167, +0.333489132923179,0.333489132923179,0.333474402769537,0.333326240693951,0.333081695892095,0.332788812869909,0.332499498845074,0.332265415352002,0.332132961028699,0.332132961028699, +0.466663253614846,0.466663253614846,0.466594565210629,0.466348355363415,0.465978952351979,0.465551268187687,0.465131349395556,0.464786813978963,0.464586464676433,0.464586464676433, +0.626737824032058,0.626737824032058,0.626600165852733,0.626214796796368,0.62567851597283,0.625077718130891,0.624487337961818,0.623986512702475,0.623675465034429,0.623675465034429, +0.807618592010353,0.807618592010353,0.807431952656652,0.806834029422565,0.806079635779036,0.805271356834716,0.804471711022207,0.803748607559741,0.803226655154748,0.803226655154748, + +00:30:47, +0.0846138833980104,0.0846138833980104,0.0846627556359338,0.0846609843374581,0.08462080060019,0.0845582691624952,0.0844909202835443,0.0844351643480049,0.0844037753843508,0.0844037753843508, +0.0846138833980104,0.0846138833980104,0.0846627556359338,0.0846609843374581,0.08462080060019,0.0845582691624952,0.0844909202835443,0.0844351643480049,0.0844037753843508,0.0844037753843508, +0.10766245244943,0.10766245244943,0.107708675882699,0.107695786991655,0.10763838993118,0.107555713135714,0.107468816048222,0.107397561715816,0.107357587425868,0.107357587425868, +0.15529370352101,0.15529370352101,0.155331827626691,0.155294118803832,0.155199939860152,0.155074858865677,0.154946993808581,0.154843212628536,0.154785152714627,0.154785152714627, +0.2299163557169,0.2299163557169,0.229936014415396,0.229855158637799,0.229700401145707,0.229506858230698,0.22931311821764,0.229156713655562,0.229069084129534,0.229069084129534, +0.333624367212192,0.333624367212192,0.333609623208725,0.33346149013779,0.333217005146651,0.332924198018161,0.332634960802837,0.33240094031267,0.332268521942786,0.332268521942786, +0.466786373269227,0.466786373269227,0.466717681649265,0.466471532713835,0.466102235396945,0.465674679384377,0.465254888967553,0.464910459867241,0.464710172584568,0.464710172584568, +0.626832566103759,0.626832566103759,0.626694929543641,0.626309668385171,0.625773549840034,0.625172939340574,0.624582745550883,0.624082078670517,0.623771128744871,0.623771128744871, +0.807670324529437,0.807670324529437,0.807483735362776,0.806885983843843,0.806131813157394,0.805323776825827,0.804524372227153,0.803801485848604,0.803279687808665,0.803279687808665, + +00:30:48, +0.0847200124363391,0.0847200124363391,0.0847689028515643,0.0847671367468147,0.0847269477746155,0.0846644043307129,0.084597041016904,0.0845412725292854,0.0845098763430929,0.0845098763430929, +0.0847200124363391,0.0847200124363391,0.0847689028515643,0.0847671367468147,0.0847269477746155,0.0846644043307129,0.084597041016904,0.0845412725292854,0.0845098763430929,0.0845098763430929, +0.107775634394945,0.107775634394945,0.107821868779471,0.107808984083875,0.107751585525094,0.107668903282609,0.107581999094205,0.107510738401361,0.107470760415092,0.107470760415092, +0.155417905564979,0.155417905564979,0.155456029066366,0.155418325029077,0.15532415433316,0.155199082961778,0.155071227082753,0.154967453127003,0.154909397231382,0.154909397231382, +0.230050054548481,0.230050054548481,0.230069702156751,0.229988857811829,0.229834127930741,0.229640621090057,0.229446917762417,0.229290543134753,0.229202930531929,0.229202930531929, +0.333759538851647,0.333759538851647,0.333744781032464,0.333596676976606,0.333352251791127,0.333059520543393,0.332770360122074,0.332536402620662,0.332404020195374,0.332404020195374, +0.466909418241362,0.466909418241362,0.466840723437058,0.466594635393733,0.46622544371761,0.465798015785924,0.465378353670999,0.465034030824409,0.464833805524074,0.464833805524074, +0.626927241189276,0.626927241189276,0.626789626254638,0.626404472924592,0.625868516541403,0.625268093246064,0.624678085696113,0.624177577074426,0.623866724815958,0.623866724815958, +0.807722017392811,0.807722017392811,0.80753547837929,0.806937898442465,0.806183950535911,0.805376156622268,0.804576993042638,0.803854323572069,0.803332679772156,0.803332679772156, + +00:30:49, +0.0848261738897559,0.0848261738897559,0.0848750824548961,0.0848733215509203,0.0848331273777939,0.0847705719779145,0.084703194282964,0.0846474132877793,0.0846160099041416,0.0846160099041416, +0.0848261738897559,0.0848261738897559,0.0848750824548961,0.0848733215509203,0.0848331273777939,0.0847705719779145,0.084703194282964,0.0846474132877793,0.0846160099041416,0.0846160099041416, +0.107888834497619,0.107888834497619,0.107935079815662,0.107922199327639,0.107864799306222,0.107782111666491,0.107695200429457,0.107623933419179,0.10758395176075,0.10758395176075, +0.155542100471648,0.155542100471648,0.155580223368498,0.155542524135754,0.155448361722225,0.155323300017925,0.155195453361726,0.155091686666561,0.155033634809458,0.155033634809458, +0.230183716354061,0.230183716354061,0.230203352892141,0.230122520001023,0.229967817754407,0.229774347013257,0.229580680395036,0.229424335720503,0.22933674005101,0.22933674005101, +0.333894647904166,0.333894647904166,0.333879876303322,0.333731801272913,0.33348743588798,0.333194780508,0.332905696865114,0.332671802338252,0.332539455848708,0.332539455848708, +0.467032388622013,0.467032388622013,0.466963690664707,0.466717663493796,0.466348577404674,0.465921277483054,0.465501743596641,0.465157526941237,0.46495736358574,0.46495736358574, +0.62702184937867,0.62702184937867,0.626884256075757,0.62649921050473,0.625963416167162,0.625363179937735,0.624773358488029,0.62427300800485,0.623962253338423,0.623962253338423, +0.807773670656676,0.807773670656676,0.807587181762438,0.806989773274851,0.806236047971247,0.805428496280958,0.804629573525839,0.80390712078755,0.803385631102806,0.803385631102806, + +00:30:50, +0.0849323676927107,0.0849323676927107,0.0849812943804061,0.084979538684241,0.0849393393441497,0.0848767720384634,0.0848093800160225,0.0847535865577308,0.08472217600171,0.08472217600171, +0.0849323676927107,0.0849323676927107,0.0849812943804061,0.084979538684241,0.0849393393441497,0.0848767720384634,0.0848093800160225,0.0847535865577308,0.08472217600171,0.08472217600171, +0.108002052706811,0.108002052706811,0.108048308940653,0.108035432672307,0.107978031223869,0.107895338236587,0.10780842000312,0.107737146718346,0.107697161411878,0.107697161411878, +0.155666288220101,0.155666288220101,0.155704410512174,0.155666716102915,0.155572562006325,0.155447510012998,0.155319672624273,0.155215913225897,0.155157865427494,0.155157865427494, +0.230317341153808,0.230317341153808,0.230336966641708,0.230256145225471,0.230101470636712,0.229908036020203,0.229714406135295,0.229558091432525,0.229470512706439,0.229470512706439, +0.334029694432305,0.334029694432305,0.334014909083799,0.333866863089163,0.333622557499605,0.333329977974307,0.333040971094217,0.332807139527649,0.332674828964971,0.332674828964971, +0.467155284501812,0.467155284501812,0.467086583422778,0.466840617104577,0.466471636548707,0.466044464566357,0.465625058835096,0.465280948308365,0.465080846860221,0.465080846860221, +0.627116390761853,0.627116390761853,0.626978819096875,0.626593881215533,0.626058248807384,0.625458199505805,0.624868564016994,0.624368371552283,0.624057714402844,0.624057714402844, +0.807825284377133,0.807825284377133,0.807638845568358,0.80704160839732,0.806288105519957,0.805480795858712,0.804682113733831,0.803959877552358,0.803438541858095,0.803438541858095, + +00:30:51, +0.0850385937797219,0.0850385937797219,0.0850875385626398,0.0850857880813114,0.0850455836081755,0.0849830044467914,0.0849155981504461,0.0848597922734521,0.0848283745700801,0.0848283745700801, +0.0850385937797219,0.0850385937797219,0.0850875385626398,0.0850857880813114,0.0850455836081755,0.0849830044467914,0.0849155981504461,0.0848597922734521,0.0848283745700801,0.0848283745700801, +0.108115288971949,0.108115288971949,0.108161556103895,0.108148684067308,0.108091281227408,0.108008582942191,0.107921657764408,0.107850378248006,0.107810389317581,0.107810389317581, +0.155790468789474,0.155790468789474,0.155828590476539,0.155790900909664,0.155696755164488,0.155571712925924,0.155443884849219,0.155340132783753,0.155282089064185,0.155282089064185, +0.230450928967892,0.230450928967892,0.2304705434256,0.230389733505267,0.230235086597666,0.230041688130803,0.229848095002997,0.229691810290538,0.229604248517887,0.229604248517887, +0.334164678498553,0.334164678498553,0.33414987943633,0.334001862487738,0.333757616688327,0.333465113004578,0.33317618287158,0.332942414250999,0.332810139606278,0.332810139606278, +0.467278105971256,0.467278105971256,0.467209401801706,0.466963496316498,0.466594621240145,0.466167577126294,0.465748299476847,0.465404295016299,0.46520425543804,0.46520425543804, +0.627210865428583,0.627210865428583,0.62707331540772,0.626688485146797,0.62615301455199,0.62555315204034,0.624963702373222,0.624463667807069,0.624153108099646,0.624153108099646, +0.807876858610177,0.807876858610177,0.807690469853088,0.807093403866089,0.806340123238497,0.805533055412244,0.804734613723584,0.804012593923698,0.803491412095399,0.803491412095399, + +00:30:52, +0.0851448520853764,0.0851448520853764,0.0851938149362113,0.0851920696767346,0.0851518601044328,0.0850892691373991,0.0850218486206701,0.0849660303693243,0.0849346055436022,0.0849346055436022, +0.0851448520853764,0.0851448520853764,0.0851938149362113,0.0851920696767346,0.0851518601044328,0.0850892691373991,0.0850218486206701,0.0849660303693243,0.0849346055436022,0.0849346055436022, +0.108228543242527,0.108228543242527,0.108274821254904,0.108261953462138,0.10820454926628,0.108121845732666,0.1080349136626,0.10796362795737,0.107923635427034,0.107923635427034, +0.155914642158956,0.155914642158956,0.155952763240785,0.155915078535158,0.155820941175795,0.155695908735685,0.155568090015444,0.155464345318921,0.155406305698275,0.155406305698275, +0.23058447981649,0.23058447981649,0.230604083263972,0.230523284860512,0.230368665657289,0.230175303364973,0.229981747017952,0.229825492314266,0.229737947505032,0.229737947505032, +0.334299600165333,0.334299600165333,0.334284787423283,0.334136799530957,0.333892613516407,0.333600185661007,0.333311332259334,0.333077626570378,0.332945387834678,0.332945387834678, +0.467400853120713,0.467400853120713,0.467332145891791,0.467086301219849,0.466717531569292,0.466290615253192,0.465871465612247,0.465527567155415,0.465327589409589,0.465327589409589, +0.627305273468467,0.627305273468467,0.627167745097866,0.626783022388167,0.626247713490748,0.625648037631256,0.625058773646776,0.624558896859395,0.624248434519104,0.624248434519104, +0.807928393411707,0.807928393411707,0.807742054672564,0.807145159737273,0.806392101183219,0.805585274998164,0.804787073551965,0.804065269958671,0.803544241871988,0.803544241871988, + +00:30:53, +0.0852511425443298,0.0852511425443298,0.0853001234358035,0.0852983834051824,0.0852581687675516,0.0851955660448555,0.0851281313611982,0.0850723007797969,0.0850408688566951,0.0850408688566951, +0.0852511425443298,0.0852511425443298,0.0853001234358035,0.0852983834051824,0.0852581687675516,0.0851955660448555,0.0851281313611982,0.0850723007797969,0.0850408688566951,0.0850408688566951, +0.10834181546811,0.10834181546811,0.108388104343266,0.108375240806363,0.108317835289992,0.108235126557443,0.108148187647045,0.10807689579572,0.108036899689478,0.108036899689478, +0.156038808307786,0.156038808307786,0.156076928784158,0.156039248958604,0.155945120019379,0.155820097421315,0.155692288101878,0.155588550810248,0.155530515308564,0.155530515308564, +0.230717993719786,0.230717993719786,0.230737586176983,0.230656799311311,0.230502207835603,0.230308881742633,0.230115362199978,0.22995913752344,0.229871609687556,0.229871609687556, +0.334434459495002,0.334434459495002,0.334419633106962,0.33427167428107,0.334027548046042,0.333735196005725,0.333446419319545,0.333212776547803,0.33308057371216,0.33308057371216, +0.467523526040415,0.467523526040415,0.467454815783203,0.467209031904786,0.466840367626319,0.466413579037247,0.465994557331516,0.465650764815957,0.465450848865129,0.465450848865129, +0.627399614970961,0.627399614970961,0.627262108256739,0.626877493029135,0.626342345713276,0.625742856368316,0.625153777927564,0.624654058799302,0.624343693751339,0.624343693751339, +0.807979888837516,0.807979888837516,0.807793600082622,0.807196876066883,0.806444039410371,0.805637454672978,0.80483949327574,0.804117905714278,0.803597031245033,0.803597031245033, + +00:30:54, +0.0853574650913064,0.0853574650913064,0.0854064639961677,0.0854047292013951,0.0853645095322304,0.0853018951037981,0.0852344463066027,0.085178603439388,0.0851471644438464,0.0851471644438464, +0.0853574650913064,0.0853574650913064,0.0854064639961677,0.0854047292013951,0.0853645095322304,0.0853018951037981,0.0852344463066027,0.085178603439388,0.0851471644438464,0.0851471644438464, +0.108455105598329,0.108455105598329,0.108501405318634,0.108488546049615,0.108431139248122,0.10834842536602,0.108261479667159,0.108190181712403,0.108150182054223,0.108150182054223, +0.156162967215256,0.156162967215256,0.156201087085956,0.15616341215926,0.156069291674423,0.155944278961899,0.155816479087502,0.15571274923663,0.1556547178739,0.1556547178739, +0.230851470697966,0.230851470697966,0.230871052184797,0.230790276877775,0.230635713152638,0.230442423283711,0.230248940568897,0.230092745937798,0.23000523508515,0.23000523508515, +0.334569256549851,0.334569256549851,0.334554416549602,0.334406486800265,0.334162420339359,0.333870144100797,0.333581444114212,0.333347864245221,0.333215697300643,0.333215697300643, +0.467646124820463,0.467646124820463,0.467577411565978,0.467331688461335,0.466963129501269,0.466536468568523,0.466117574724743,0.465773888088037,0.465574033894789,0.465574033894789, +0.627493890025369,0.627493890025369,0.627356404973611,0.626971897159044,0.626436911309041,0.625837608341133,0.625248715305345,0.624749153716676,0.624438885886321,0.624438885886321, +0.808031344943298,0.808031344943298,0.807845106138996,0.807248552910834,0.806495937976103,0.805689594493094,0.80489187295157,0.804170501247414,0.803649780271598,0.803649780271598, + +00:30:55, +0.0854638196610989,0.0854638196610989,0.0855128365521237,0.0855111070001816,0.0854708823332363,0.0854082562489332,0.0853407933915246,0.0852849382826842,0.085253492239612,0.085253492239612, +0.0854638196610989,0.0854638196610989,0.0855128365521237,0.0855111070001816,0.0854708823332363,0.0854082562489332,0.0853407933915246,0.0852849382826842,0.085253492239612,0.085253492239612, +0.108568413582883,0.108568413582883,0.10861472413073,0.108601869141593,0.108544461090314,0.108461742107965,0.108374789672427,0.108303485656835,0.108263482470647,0.108263482470647, +0.156287118860708,0.156287118860708,0.156325238125527,0.156287568116439,0.156193456120163,0.156068453336574,0.155940662951353,0.155836940577019,0.155778913373186,0.155778913373186, +0.230984910771224,0.230984910771224,0.231004481307582,0.23092371758002,0.230769181628426,0.230575928008139,0.230382482144538,0.230226317577083,0.230138823717511,0.230138823717511, +0.334703991392105,0.334703991392105,0.334689137813373,0.33454123715066,0.334297230458422,0.334005030008222,0.333716406705272,0.333482889724516,0.333350758661983,0.333350758661983, +0.467768649550829,0.467768649550829,0.467699933330024,0.46745427097939,0.467085817284049,0.466659283936953,0.466240517881885,0.465896937061636,0.465697144588566,0.465697144588566, +0.627588098720846,0.627588098720846,0.627450635337606,0.627066234867086,0.626531410367357,0.625932293639167,0.625343585869726,0.624844181701252,0.62453401101387,0.62453401101387, +0.808082761784647,0.808082761784647,0.807896572897317,0.807300190324934,0.80654779693646,0.805741694514814,0.804944212636016,0.804223056614872,0.803702489008646,0.803702489008646, + +00:30:56, +0.0855702061885688,0.0855702061885688,0.0856192410385601,0.0856175167364195,0.085577287105405,0.0855146494150355,0.0854471725506732,0.0853913052443407,0.0853598521786163,0.0853598521786163, +0.0855702061885688,0.0855702061885688,0.0856192410385601,0.0856175167364195,0.085577287105405,0.0855146494150355,0.0854471725506732,0.0853913052443407,0.0853598521786163,0.0853598521786163, +0.108681739371538,0.108681739371538,0.108728060729341,0.108715210032066,0.108657800766279,0.108575076732911,0.108488117612401,0.108416807578502,0.108376800888196,0.108376800888196, +0.156411263223537,0.156411263223537,0.15644938188227,0.156411716809501,0.156317613335886,0.156192620524529,0.156064839672514,0.155961124810416,0.155903101785378,0.155903101785378, +0.231118313959757,0.231118313959757,0.231137873565515,0.231057121438168,0.230902613283009,0.230709395935856,0.230515986946734,0.230359852461046,0.230272375604339,0.230272375604339, +0.334838664083922,0.334838664083922,0.33482379696038,0.334675925394308,0.334431978465229,0.334139853789934,0.333851307154594,0.333617853047507,0.333485757857973,0.333485757857973, +0.46789110032135,0.46789110032135,0.467822381165114,0.467576779548714,0.467208431064438,0.466782025232339,0.46636338689277,0.466019911826604,0.465820181036328,0.465820181036328, +0.627682241146395,0.627682241146395,0.627544799437695,0.627160506242301,0.62662584297739,0.626026912351729,0.625438389710164,0.624939142842615,0.624629069223652,0.624629069223652, +0.808134139417054,0.808134139417054,0.80794800041312,0.807351788364893,0.806599616347389,0.80579375479434,0.804996512385533,0.804275571873343,0.803755157513035,0.803755157513035, + +00:30:57, +0.085676624608646,0.085676624608646,0.0857256773904339,0.0857239583450547,0.0856837237836408,0.0856210745369482,0.0855535837188266,0.0854977042590812,0.0854662441955525,0.0854662441955525, +0.085676624608646,0.085676624608646,0.0857256773904339,0.0857239583450547,0.0856837237836408,0.0856210745369482,0.0855535837188266,0.0854977042590812,0.0854662441955525,0.0854662441955525, +0.10879508291413,0.10879508291413,0.108841415064324,0.108828568670869,0.108771158225799,0.108688429190561,0.1086014634367,0.108530147426954,0.108490137256383,0.108490137256383, +0.156535400283186,0.156535400283186,0.156573518335637,0.15653585821786,0.156441763300931,0.156316780505004,0.156189009230125,0.156085301915875,0.156027283089481,0.156027283089481, +0.231251680283767,0.231251680283767,0.231271228978773,0.231190488472345,0.231036008136431,0.230842827086803,0.230649454995327,0.230493350609442,0.230405890765346,0.230405890765346, +0.334973274687394,0.334973274687394,0.334958394052659,0.334810551593198,0.334566664421711,0.334274615507801,0.333986145523982,0.333752754275948,0.333620694950338,0.333620694950338, +0.468013477221732,0.468013477221732,0.467944755160891,0.467699214258937,0.467330970932081,0.46690469254435,0.466486181847093,0.466142812472663,0.465943143327812,0.465943143327812, +0.627776317390871,0.627776317390871,0.627638897362701,0.627254711373581,0.626720209228156,0.62612146456798,0.625533126915965,0.625034037230199,0.624724060605186,0.624724060605186, +0.808185477895913,0.808185477895913,0.807999388741835,0.807403347086321,0.806651396264733,0.805845775387773,0.805048772256479,0.804328047079415,0.803807785841523,0.803807785841523, + +00:30:58, +0.0857830748563291,0.0857830748563291,0.0858321455427709,0.0858304317611019,0.0857901923029163,0.0857275315495831,0.0856600268308311,0.0856041352616978,0.0855726682251822,0.0855726682251822, +0.0857830748563291,0.0857830748563291,0.0858321455427709,0.0858304317611019,0.0857901923029163,0.0857275315495831,0.0856600268308311,0.0856041352616978,0.0855726682251822,0.0855726682251822, +0.108908444160561,0.108908444160561,0.108954787085603,0.108941945007905,0.108884533418718,0.108801799430684,0.108714827095013,0.108643505151813,0.10860349152479,0.10860349152479, +0.156659530019154,0.156659530019154,0.156697647465129,0.15665999232098,0.156565905994688,0.156440933257289,0.156313171603375,0.156209471872501,0.156151457264553,0.156151457264553, +0.231385009763463,0.231385009763463,0.231404547567541,0.231323818702681,0.23116936620874,0.230976221480932,0.230782886310161,0.230626812042033,0.230539369220243,0.230539369220243, +0.335107823264547,0.335107823264547,0.335092929152184,0.33494511580925,0.334701288389735,0.334409315223626,0.334120921875177,0.333887593471529,0.33375557000074,0.33375557000074, +0.468135780341552,0.468135780341552,0.468067055406867,0.467821575199561,0.467453436976496,0.467027285962528,0.466608902834418,0.466265639089399,0.466066031552622,0.466066031552622, +0.627870327542976,0.627870327542976,0.627732929201298,0.627348850349667,0.626814509208518,0.62621595037693,0.625627797576285,0.625128864953289,0.624818985247838,0.624818985247838, +0.808236777276515,0.808236777276515,0.808050737938796,0.807454866544725,0.806703136744235,0.80589775635111,0.805100992305107,0.804380482289575,0.803860374050763,0.803860374050763, + +00:30:59, +0.0858895568666851,0.0858895568666851,0.0859386454306652,0.0859369369196442,0.0858966925982729,0.0858340203879206,0.085766501821602,0.0857105981870515,0.0856791242023354,0.0856791242023354, +0.0858895568666851,0.0858895568666851,0.0859386454306652,0.0859369369196442,0.0858966925982729,0.0858340203879206,0.085766501821602,0.0857105981870515,0.0856791242023354,0.0856791242023354, +0.109021823060799,0.109021823060799,0.109068176743169,0.109055338993144,0.108997926294954,0.108915187403117,0.108828208537095,0.108756880702764,0.108716863643067,0.108716863643067, +0.156783652410986,0.156783652410986,0.156821769250299,0.156784119098375,0.156690041396596,0.156565078760728,0.156437326771503,0.15633363465945,0.156275624289704,0.156275624289704, +0.231518302419056,0.231518302419056,0.231537829352008,0.231457112149313,0.231302687519993,0.231109579138195,0.230916280911089,0.230760236778585,0.230672810988754,0.230672810988754, +0.335242309877341,0.335242309877341,0.335227402320859,0.335079618104322,0.334835850431101,0.334543952999146,0.334255636269852,0.334022370695873,0.333890383070777,0.333890383070777, +0.468258009770255,0.468258009770255,0.468189281992423,0.467943862459954,0.467575829287067,0.467149805576282,0.466731549944183,0.466388391766273,0.466188845800236,0.466188845800236, +0.627964271691266,0.627964271691266,0.627826895042009,0.627442923259151,0.626908743007194,0.626310369867439,0.62572240178013,0.625223626101017,0.624913843240826,0.624913843240826, +0.808288037614052,0.808288037614052,0.808102048059232,0.807506346795515,0.806754837841538,0.805949697740251,0.80515317258757,0.804432877560206,0.803912922197309,0.803912922197309, + +00:31:00, +0.0859960705748499,0.0859960705748499,0.0860451769892797,0.0860434737558334,0.0860032246048205,0.0859405409870094,0.0858730086261226,0.0858170929700714,0.0857856120619107,0.0857856120619107, +0.0859960705748499,0.0859960705748499,0.0860451769892797,0.0860434737558334,0.0860032246048205,0.0859405409870094,0.0858730086261226,0.0858170929700714,0.0857856120619107,0.0857856120619107, +0.109135219564883,0.109135219564883,0.109181583987082,0.109168750576625,0.109111336804487,0.109028593057765,0.108941607712768,0.108870274029564,0.10883025356093,0.10883025356093, +0.156907767438281,0.156907767438281,0.15694588367075,0.156908238529612,0.156814169486146,0.156689216994713,0.156561474713803,0.156457790255931,0.156399784144096,0.156399784144096, +0.231651558270763,0.231651558270763,0.231671074352366,0.23159036883238,0.231435972090248,0.231242900078551,0.231049638817965,0.230893624838873,0.230806216090602,0.230806216090602, +0.33537673458767,0.33537673458767,0.335361813620525,0.335214058540202,0.334970350607543,0.334678528896034,0.334390288769616,0.334157086010539,0.334025134221979,0.334025134221979, +0.468380165597154,0.468380165597154,0.468311435006811,0.468066076129355,0.467698147953048,0.46727225147489,0.466854123265689,0.466511070592614,0.466311586159998,0.466311586159998, +0.628058149924146,0.628058149924146,0.627920794973209,0.627536930190477,0.627002910712748,0.62640472312822,0.625816939616357,0.625318320762369,0.625008634673216,0.625008634673216, +0.808339258963617,0.808339258963617,0.808153319158278,0.807557787893998,0.806806499612184,0.806001599610992,0.805205313159918,0.804485232947593,0.80396543033761,0.80396543033761, + +00:31:01, +0.0861026159160277,0.0861026159160277,0.0861517401538456,0.0861500422048896,0.0861097882577375,0.0860470932819672,0.0859795471794452,0.0859236195457554,0.0858921317388754,0.0858921317388754, +0.0861026159160277,0.0861026159160277,0.0861517401538456,0.0861500422048896,0.0861097882577375,0.0860470932819672,0.0859795471794452,0.0859236195457554,0.0858921317388754,0.0858921317388754, +0.109248633622916,0.109248633622916,0.109295008767466,0.109282179708452,0.109224764897368,0.109142016344601,0.109055024571924,0.108983685082035,0.108943661228165,0.108943661228165, +0.157031875080687,0.157031875080687,0.157069990706137,0.157032350594306,0.156938290242882,0.15681334793869,0.156685615409616,0.156581938641203,0.15652393680694,0.15652393680694, +0.231784777338805,0.231784777338805,0.231804282588814,0.231723588772029,0.231569219939569,0.231376184321964,0.231182960050653,0.231026976242673,0.23093958454552,0.23093958454552, +0.335511097457362,0.335511097457362,0.335496163112956,0.335348437178615,0.335104788980731,0.334813042975895,0.334524879436015,0.334291739477021,0.334159823515814,0.334159823515814, +0.468502247911434,0.468502247911434,0.46843351453915,0.468188216296875,0.467820393063565,0.467394623747501,0.466976622888114,0.466633675657619,0.466434252721125,0.466434252721125, +0.628151962329874,0.628151962329874,0.628014629083124,0.627630871231939,0.6270970124136,0.626499010247833,0.625911411173673,0.62541294902618,0.625103359633927,0.625103359633927, +0.808390441380204,0.808390441380204,0.808204551290965,0.807609189895382,0.806858122111616,0.80605346201903,0.805257414078102,0.804537548507915,0.804017898528015,0.804017898528015, + +00:31:02, +0.0862091928254914,0.0862091928254914,0.0862583348596628,0.0862566422021018,0.0862163834922709,0.0861536772079796,0.0860861174166902,0.0860301778491697,0.085998683168265,0.085998683168265, +0.0862091928254914,0.0862091928254914,0.0862583348596628,0.0862566422021018,0.0862163834922709,0.0861536772079796,0.0860861174166902,0.0860301778491697,0.085998683168265,0.085998683168265, +0.10936206518507,0.10936206518507,0.109408451034515,0.109395626338799,0.109338210523713,0.109255457213664,0.109168459064519,0.109097113810067,0.109057086594622,0.109057086594622, +0.157155975317903,0.157155975317903,0.157194090336162,0.157156455272125,0.157062403646395,0.156937471572153,0.156809748838337,0.156706079794577,0.156648082257501,0.156648082257501, +0.231917959643407,0.231917959643407,0.231937454081553,0.231856771988407,0.231702431088025,0.231509431888404,0.231316244629019,0.23116029100977,0.231072916373246,0.231072916373246, +0.33564539854818,0.33564539854818,0.335630450859858,0.335482754081218,0.335239165612268,0.334947495300272,0.334659408330526,0.33442633115675,0.334294451013686,0.334294451013686, +0.468624256802147,0.468624256802147,0.468555520678431,0.468310283051491,0.467942564707612,0.467516922483136,0.467099048900501,0.466756207050359,0.466556845572703,0.466556845572703, +0.628245708996557,0.628245708996557,0.628108397459831,0.627724746471683,0.627191048198017,0.626593231314694,0.626005816540637,0.625507510981135,0.625198018211727,0.625198018211727, +0.808441584918706,0.808441584918706,0.808255744512228,0.807660552854778,0.806909705395175,0.806105285019961,0.805309475397971,0.804589824297254,0.804070326824771,0.804070326824771, + +00:31:03, +0.0863158012385823,0.0863158012385823,0.0863649610420999,0.0863632736828273,0.086323010243736,0.0862602927003013,0.0861927192730469,0.0861367678154493,0.0861052662851838,0.0861052662851838, +0.0863158012385823,0.0863158012385823,0.0863649610420999,0.0863632736828273,0.086323010243736,0.0862602927003013,0.0861927192730469,0.0861367678154493,0.0861052662851838,0.0861052662851838, +0.109475514201583,0.109475514201583,0.109521910738489,0.109509090417904,0.109451673633706,0.10936891561506,0.109281911140579,0.109210560163619,0.109170529610221,0.109170529610221, +0.157280068129678,0.157280068129678,0.157318182540581,0.157280552542785,0.157186509676328,0.157061587874647,0.156933874979409,0.156830213695415,0.156772220475092,0.156772220475092, +0.232051105204798,0.232051105204798,0.232070588850789,0.231989918501669,0.231835605555689,0.231642642797844,0.231449492572934,0.231293569159953,0.231206211593522,0.231206211593522, +0.335779637921818,0.335779637921818,0.335764676922875,0.335617009309605,0.335373480563691,0.335081885930638,0.334793875514563,0.334560861111088,0.334429016776931,0.334429016776931, +0.468746192358217,0.468746192358217,0.468677453513513,0.468432276482052,0.468064662974053,0.467639147770683,0.467221401391766,0.466878664859774,0.46667936480369,0.46667936480369, +0.628339390012156,0.628339390012156,0.628202100191261,0.627818555997706,0.627285018154121,0.626687386417066,0.62610015580566,0.625602006715772,0.625292610495236,0.625292610495236, +0.808492689633918,0.808492689633918,0.8083068988769,0.807711876827193,0.806961249518104,0.80615706866928,0.805361497175274,0.804642060371589,0.804122715284025,0.804122715284025, + +00:31:04, +0.0864224410907104,0.0864224410907104,0.0864716186365938,0.0864699365824919,0.0864296684475168,0.0863669396942552,0.0862993526837729,0.0862433893797974,0.0862118810248044,0.0862118810248044, +0.0864224410907104,0.0864224410907104,0.0864716186365938,0.0864699365824919,0.0864296684475168,0.0863669396942552,0.0862993526837729,0.0862433893797974,0.0862118810248044,0.0862118810248044, +0.109588980622763,0.109588980622763,0.109635387829717,0.109622571896074,0.109565154177599,0.109482391498964,0.109395380750197,0.109324024092714,0.109283990224951,0.109283990224951, +0.157404153495812,0.157404153495812,0.157442267299199,0.157404642386053,0.157310608312375,0.15718569682577,0.15705799381233,0.156954340323127,0.156896351439081,0.156896351439081, +0.232184214043213,0.232184214043213,0.232203686916732,0.232123028331972,0.231968743362639,0.231775817070261,0.231582703902277,0.231426810713016,0.231339470226096,0.231339470226096, +0.335913815639907,0.335913815639907,0.335898841363582,0.335751202925301,0.335507733896474,0.335216214928406,0.334928281049476,0.334695329401338,0.334563520866823,0.334563520866823, +0.468868054668436,0.468868054668436,0.468799313133126,0.468554196677278,0.468186687951624,0.467761299698902,0.467343680450694,0.467001049174673,0.466801810502912,0.466801810502912, +0.628433005464484,0.628433005464484,0.628295737365195,0.627912299897858,0.627378922369884,0.626781475643068,0.626194429057002,0.62569643631848,0.625387136572925,0.625387136572925, +0.808543755580536,0.808543755580536,0.808358014439718,0.807763161867539,0.807012754535545,0.806208813022385,0.80541347946566,0.804694256786799,0.804175063961821,0.804175063961821, + +00:31:05, +0.0865291123173541,0.0865291123173541,0.0865783075786499,0.08657663083659,0.0865363580390659,0.0864736181252327,0.0864060175841943,0.086350042477486,0.086318527322368,0.086318527322368, +0.0865291123173541,0.0865291123173541,0.0865783075786499,0.08657663083659,0.0865363580390659,0.0864736181252327,0.0864060175841943,0.086350042477486,0.086318527322368,0.086318527322368, +0.109702464398982,0.109702464398982,0.109748882258593,0.109736070723683,0.109678652105709,0.109595884815617,0.109508867843532,0.109437505547446,0.109397468388864,0.109397468388864, +0.157528231396154,0.157528231396154,0.157566344591871,0.157528724781747,0.15743469953428,0.157309798405168,0.157182105316643,0.157078459657178,0.157020475128882,0.157020475128882, +0.232317286178889,0.232317286178889,0.232336748299597,0.232256101499479,0.232101844528957,0.23190895472564,0.231715878636927,0.231560015688758,0.23147269229072,0.23147269229072, +0.33604793176401,0.33604793176401,0.33603294424349,0.335885334989769,0.335641925672022,0.335350482354921,0.335062624996548,0.334829736088732,0.334697963344571,0.334697963344571, +0.46898984382147,0.46898984382147,0.468921099625873,0.468676043725758,0.468308639728931,0.467883378356424,0.467465886165944,0.467123360083739,0.46692418275907,0.46692418275907, +0.628526555441204,0.628526555441204,0.628389309069267,0.628005978259843,0.627472760933131,0.626875499080668,0.626288636382779,0.6257907998775,0.625481596533119,0.625481596533119, +0.808594782813159,0.808594782813159,0.808409091255319,0.807814408030628,0.807064220502543,0.806260518134571,0.805465422324677,0.804746413598661,0.804227372914104,0.804227372914104, + +00:31:06, +0.0866358148540606,0.0866358148540606,0.0866850278038424,0.0866833563806846,0.0866430789539042,0.0865803279286937,0.0865127139097056,0.0864567270438553,0.0864252051131842,0.0864252051131842, +0.0866358148540606,0.0866358148540606,0.0866850278038424,0.0866833563806846,0.0866430789539042,0.0865803279286937,0.0865127139097056,0.0864567270438553,0.0864252051131842,0.0864252051131842, +0.10981596548068,0.10981596548068,0.109862393975578,0.109849586851172,0.109792167368423,0.109709395515327,0.109622372370812,0.109551004477973,0.109510964052082,0.109510964052082, +0.157652301810603,0.157652301810603,0.1576904143985,0.157652799709735,0.157558783321835,0.157433892592538,0.157306209471946,0.157202571677081,0.157144591523964,0.157144591523964, +0.232450321632068,0.232450321632068,0.232469773019602,0.232389138024354,0.232234909074727,0.232042055783966,0.231849016796772,0.231693184106982,0.231605877807154,0.231605877807154, +0.336181986355627,0.336181986355627,0.336166985624042,0.336019405564402,0.335776055951677,0.335484688271462,0.335196907416999,0.334964081234442,0.334832344271319,0.334832344271319, +0.469111559905852,0.469111559905852,0.469042813080224,0.468797817715953,0.468430518394449,0.468005383831751,0.467588018626043,0.467245597675525,0.467046481660732,0.467046481660732, +0.628620040029835,0.628620040029835,0.628482815390966,0.628099591171214,0.62756653393154,0.626969456817687,0.626382777870955,0.625885097480926,0.625575990463992,0.625575990463992, +0.808645771386286,0.808645771386286,0.808460129378241,0.807865615371173,0.807115647474042,0.806312184061036,0.805517325807774,0.804798530862854,0.804279642196717,0.804279642196717, + +00:31:07, +0.0867425486364452,0.0867425486364452,0.0867917792478138,0.086790113150407,0.0867498311276213,0.0866870690401668,0.0866194415957702,0.0865634430143141,0.0865319143326312,0.0865319143326312, +0.0867425486364452,0.0867425486364452,0.0867917792478138,0.086790113150407,0.0867498311276213,0.0866870690401668,0.0866194415957702,0.0865634430143141,0.0865319143326312,0.0865319143326312, +0.109929483818364,0.109929483818364,0.1099759229312,0.109963120229049,0.109905699916193,0.10982292354847,0.109735894282328,0.109664520834522,0.109624477164793,0.109624477164793, +0.15777636471911,0.15777636471911,0.157814476699042,0.157776867149932,0.157682859654885,0.157557979367625,0.157430306257884,0.1573266763624,0.157268700603843,0.157268700603843, +0.232583320422994,0.232583320422994,0.232602761096968,0.232522137926767,0.232367937020041,0.232175120265232,0.231982118401702,0.231826315987499,0.23173902679516,0.23173902679516, +0.336315979476189,0.336315979476189,0.336300965566618,0.336153414710531,0.335910124796714,0.335618832739244,0.335331128371981,0.335098364899573,0.334966663708146,0.334966663708146, +0.469233203009987,0.469233203009987,0.469164453584522,0.468919518736194,0.468552324036528,0.468127316213256,0.467710077919389,0.467367762038454,0.467168707296341,0.467168707296341, +0.628713459317747,0.628713459317747,0.62857625641763,0.628193138719381,0.627660241452641,0.627063348941802,0.626476853609351,0.625979329216702,0.625670318453573,0.625670318453573, +0.808696721354319,0.808696721354319,0.808511128862925,0.807916783943787,0.807167035504888,0.806363810856876,0.805569189970299,0.804850608634956,0.804331871865405,0.804331871865405, + +00:31:08, +0.0868493136001922,0.0868493136001922,0.0868985618462751,0.0868969010814571,0.0868566144958751,0.086793841395249,0.0867262005779194,0.0866701903243398,0.0866386549161556,0.0866386549161556, +0.0868493136001922,0.0868493136001922,0.0868985618462751,0.0868969010814571,0.0868566144958751,0.086793841395249,0.0867262005779194,0.0866701903243398,0.0866386549161556,0.0866386549161556, +0.110043019362608,0.110043019362608,0.110089469076056,0.110076670807888,0.110019249699536,0.109936468865487,0.109849433528444,0.109778054567388,0.109738007677255,0.109738007677255, +0.157900420101672,0.157900420101672,0.157938531473501,0.157900927082307,0.157806928513322,0.157682058710228,0.157554395654155,0.157450773692749,0.157392802348088,0.157392802348088, +0.232716282571918,0.232716282571918,0.23273571255192,0.232655101226892,0.232500928384992,0.232308148189432,0.232115183471613,0.231959411350121,0.231872139274506,0.231872139274506, +0.336449911187063,0.336449911187063,0.336434884132531,0.336287362489418,0.336044132268345,0.335752915819416,0.335465287922585,0.335232587145166,0.335100921716066,0.335100921716066, +0.469354773222151,0.469354773222151,0.469286021226981,0.469041146874684,0.468674056743385,0.468249175589182,0.467832064134255,0.467489853260823,0.467290859754209,0.467290859754209, +0.628806813392165,0.628806813392165,0.628669632236455,0.628286620991604,0.62775388358382,0.627157175540539,0.626570863685638,0.626073495172628,0.625764580589742,0.625764580589742, +0.808747632771561,0.808747632771561,0.808562089763715,0.807967913802988,0.807218384649828,0.806415398577092,0.805621014867504,0.804902646970446,0.80438406197581,0.80438406197581, + +00:31:09, +0.0869561096810541,0.0869561096810541,0.0870053755350059,0.0870037201096033,0.0869634289943921,0.0869006449296055,0.0868329907917535,0.0867769689094782,0.0867454267992726,0.0867454267992726, +0.0869561096810541,0.0869561096810541,0.0870053755350059,0.0870037201096033,0.0869634289943921,0.0869006449296055,0.0868329907917535,0.0867769689094782,0.0867454267992726,0.0867454267992726, +0.110156572064053,0.110156572064053,0.110203032360806,0.11019023853833,0.110132816669041,0.110050031416888,0.109962990059587,0.109891605626929,0.109851555539788,0.109851555539788, +0.158024467938338,0.158024467938338,0.158062578701929,0.158024979486874,0.157930989877089,0.157806130600192,0.157678477640505,0.157574863647793,0.157516896736317,0.157516896736317, +0.23284920809909,0.23284920809909,0.232868627404689,0.232788027944906,0.232633883189678,0.232441139576567,0.232248212026404,0.232092470214667,0.232005215264965,0.232005215264965, +0.336583781549549,0.336583781549549,0.336568741383027,0.336421248962264,0.336178078427712,0.335886937573064,0.335599386129834,0.335366748032196,0.335235118356031,0.335235118356031, +0.469476270630492,0.469476270630492,0.469407516095684,0.469162702219496,0.468795716603111,0.468370962047646,0.467953977358782,0.467611871430798,0.467412939122523,0.467412939122523, +0.628900102340166,0.628900102340166,0.628762942934488,0.628380038075001,0.627847460412312,0.627250936701279,0.626664808187342,0.626167595436356,0.625858776960234,0.625858776960234, +0.808798505692219,0.808798505692219,0.808613012134855,0.808019005003194,0.807269694963512,0.806466947276584,0.805672800554537,0.804954645924701,0.804436212583478,0.804436212583478, + +00:31:10, +0.0870629368148519,0.0870629368148519,0.0871122202498543,0.0871105701706826,0.0870702745589672,0.0870074795789703,0.086939812172941,0.0868837787053434,0.0868522299175657,0.0868522299175657, +0.0870629368148519,0.0870629368148519,0.0871122202498543,0.0871105701706826,0.0870702745589672,0.0870074795789703,0.086939812172941,0.0868837787053434,0.0868522299175657,0.0868522299175657, +0.110270141873406,0.110270141873406,0.11031661273618,0.110303823371083,0.110246400775358,0.110163611153249,0.11007656382625,0.110005173963575,0.109965120702784,0.109965120702784, +0.158148508209207,0.158148508209207,0.15818661836443,0.1581490243437,0.158055043726179,0.157930195017415,0.15780255219673,0.157698946207245,0.157640983748198,0.157640983748198, +0.232982097024768,0.232982097024768,0.233001505675505,0.23292091810099,0.2327668014542,0.23257409444664,0.23238120408598,0.232225492600959,0.232138254786314,0.232138254786314, +0.336717590624882,0.336717590624882,0.336702537379287,0.3365550741902,0.336311963335897,0.336020898061206,0.335733423054688,0.335500847621577,0.335369253688926,0.335369253688926, +0.469597695323028,0.469597695323028,0.469528938278589,0.469284184858577,0.468917303703668,0.468492675676635,0.468075817680986,0.467733816636421,0.467534945489338,0.467534945489338, +0.628993326248683,0.628993326248683,0.628856188598631,0.628473390056539,0.62794097202521,0.627344632511257,0.62675868720184,0.62626163009539,0.625952907652635,0.625952907652635, +0.8088493401704,0.8088493401704,0.808663896030494,0.808070057598726,0.807320966500489,0.806518457010151,0.805724547086451,0.805006605553002,0.804488323743851,0.804488323743851, + +00:31:11, +0.0871697949374752,0.0871697949374752,0.0872190959267368,0.0872174512006003,0.0871771511254638,0.0871143452791458,0.0870466646572188,0.0869906196476182,0.0869590642066869,0.0869590642066869, +0.0871697949374752,0.0871697949374752,0.0872190959267368,0.0872174512006003,0.0871771511254638,0.0871143452791458,0.0870466646572188,0.0869906196476182,0.0869590642066869,0.0869590642066869, +0.110383728741441,0.110383728741441,0.110430210152973,0.110417425256921,0.110360001969208,0.110277208025211,0.110190154778996,0.110118759527819,0.110078703116698,0.110078703116698, +0.158272540894424,0.158272540894424,0.158310650441156,0.158273061632899,0.158179090040634,0.158054251941841,0.157926619302677,0.157823021350871,0.157765063363449,0.157765063363449, +0.23311494936921,0.23311494936921,0.233134347384605,0.233053771715326,0.232899683198663,0.232707012819659,0.232514159670247,0.232358478528824,0.232271257858334,0.232271257858334, +0.336851338474232,0.336851338474232,0.336836272182429,0.336688838234293,0.336445787053913,0.336154797344796,0.335867398758041,0.335634885974154,0.335503327775571,0.335503327775571, +0.469719047387649,0.469719047387649,0.469650287863524,0.469405594879745,0.46903881813289,0.468614316564008,0.468197585188752,0.467855688965601,0.467656878942585,0.467656878942585, +0.629086485204501,0.629086485204501,0.62894936931564,0.628566677023043,0.628034418509459,0.627438263057563,0.626852500816367,0.62635559923709,0.626046972754386,0.626046972754386, +0.808900136260118,0.808900136260118,0.808714741504681,0.808121071643807,0.807372199315213,0.806569927832499,0.805776254518198,0.805058525910528,0.804540395512275,0.804540395512275, + +00:31:12, +0.0872766839848822,0.0872766839848822,0.0873260025016384,0.0873243631353301,0.0872840586298138,0.0872212419660027,0.0871535481803924,0.0870974916720537,0.0870659296023567,0.0870659296023567, +0.0872766839848822,0.0872766839848822,0.0873260025016384,0.0873243631353301,0.0872840586298138,0.0872212419660027,0.0871535481803924,0.0870974916720537,0.0870659296023567,0.0870659296023567, +0.110497332618998,0.110497332618998,0.110543824562048,0.110531044146687,0.110473620201377,0.110390821983485,0.110303762868453,0.110232362270223,0.110192302732053,0.110192302732053, +0.158396565974187,0.158396565974187,0.158434674912309,0.158397091334635,0.158303128800545,0.158178301353466,0.158050678938242,0.157947089058483,0.157889135561839,0.157889135561839, +0.23324776515268,0.23324776515268,0.233267152552229,0.233186588808102,0.233032528443175,0.232839894715634,0.232647078799119,0.232491428018093,0.232404224500813,0.232404224500813, +0.336985025158702,0.336985025158702,0.336969945853501,0.336822541155545,0.336579549642708,0.336288635484724,0.336001313300723,0.33576886315071,0.335637340676725,0.335637340676725, +0.469840326912117,0.469840326912117,0.469771564938189,0.469526932370687,0.469160259978484,0.468735884797498,0.468319279969839,0.467977488506125,0.467778739570064,0.467778739570064, +0.629179579294261,0.629179579294261,0.629042485172127,0.628659899061191,0.628127799951859,0.627531828427139,0.626946249118009,0.626449502948669,0.626140972352783,0.626140972352783, +0.808950894015285,0.808950894015285,0.808765548611371,0.808172047192563,0.80742339346204,0.806621359798232,0.805827922904634,0.805110407052362,0.804592427943995,0.804592427943995, + +00:31:13, +0.0873836038930992,0.0873836038930992,0.0874329399106126,0.0874313059109145,0.0873909970080175,0.0873281695754804,0.0872604626783358,0.0872043947144696,0.087172826040364,0.087172826040364, +0.0873836038930992,0.0873836038930992,0.0874329399106126,0.0874313059109145,0.0873909970080175,0.0873281695754804,0.0872604626783358,0.0872043947144696,0.087172826040364,0.087172826040364, +0.110610953456986,0.110610953456986,0.110657455914331,0.110644679991286,0.110587255422716,0.110504452978845,0.110417388045316,0.110345982141414,0.110305919499441,0.110305919499441, +0.158520583428741,0.158520583428741,0.158558691758137,0.158521113429121,0.158427159986051,0.158302343232335,0.158174731083369,0.158071149309947,0.158013200323185,0.158013200323185, +0.233380544395442,0.233380544395442,0.233399921198617,0.23331936939951,0.23316533720785,0.232972740154582,0.232779961492512,0.232624341088603,0.232537154733539,0.232537154733539, +0.33711865073933,0.33711865073933,0.337103558453488,0.336956183014892,0.336713251163166,0.336422412541813,0.336135166743498,0.335902779211962,0.335771292453079,0.335771292453079, +0.469961533984067,0.469961533984067,0.469892769590156,0.469648197418967,0.469281629328027,0.468857380464709,0.468440902111879,0.468099215345649,0.467900527459452,0.467900527459452, +0.629272608604459,0.629272608604459,0.629135536254556,0.628753056257517,0.628221116439065,0.627625328706782,0.627039932193706,0.626543341317194,0.626234906534974,0.626234906534974, +0.809001613489722,0.809001613489722,0.80881631740442,0.808222984299023,0.807474548995226,0.806672752961857,0.805879552300513,0.805162249033486,0.804644421094158,0.804644421094158, + +00:31:14, +0.0874905545982214,0.0874905545982214,0.0875399080897813,0.087538279463464,0.0874979661961437,0.0874351280435864,0.0873674080869912,0.0873113287107538,0.0872797534565662,0.0872797534565662, +0.0874905545982214,0.0874905545982214,0.0875399080897813,0.087538279463464,0.0874979661961437,0.0874351280435864,0.0873674080869912,0.0873113287107538,0.0872797534565662,0.0872797534565662, +0.110724591206376,0.110724591206376,0.110771104160818,0.110758332741694,0.110700907584144,0.110618100962135,0.110531030260346,0.110459619092087,0.110419553369518,0.110419553369518, +0.15864459323838,0.15864459323838,0.158682700958941,0.15864512789662,0.158551183577341,0.158426377558541,0.158298775718054,0.158195202085175,0.158137257627356,0.158137257627356, +0.233513287117766,0.233513287117766,0.233532653344015,0.233452113509741,0.2332981095128,0.233105549156519,0.232912807770344,0.232757217760191,0.232670048576309,0.232670048576309, +0.337252215277088,0.337252215277088,0.337237110043309,0.337089763873204,0.336846891676105,0.336556128576823,0.336268959147066,0.336036634218564,0.335905183165262,0.335905183165262, +0.470082668691005,0.470082668691005,0.47001390190687,0.469769390112018,0.46940292626897,0.468978803653118,0.468562451702376,0.468220869571702,0.468022242698295,0.468022242698295, +0.629365573221445,0.629365573221445,0.62922852264925,0.628846148698408,0.628314368057586,0.627718763983147,0.627133550130257,0.626637114429587,0.626328775387963,0.626328775387963, +0.809052294737148,0.809052294737148,0.808867047937588,0.808273883017119,0.807525665968933,0.806724107377785,0.805931142760494,0.805214051908784,0.804696375017813,0.804696375017813, + +00:31:15, +0.0875975360364123,0.0875975360364123,0.087646906975335,0.0876452837291579,0.0876049661303295,0.087542117306397,0.0874743843423694,0.0874182935968628,0.0873867117868892,0.0873867117868892, +0.0875975360364123,0.0875975360364123,0.087646906975335,0.0876452837291579,0.0876049661303295,0.087542117306397,0.0874743843423694,0.0874182935968628,0.0873867117868892,0.0873867117868892, +0.11083824581821,0.11083824581821,0.11088476925257,0.11087200234895,0.110814576636647,0.110731765884263,0.110644689464371,0.110573273073003,0.110533204293007,0.110533204293007, +0.158768595383446,0.158768595383446,0.158806702495068,0.158769134717441,0.158675199554655,0.158550404312227,0.15842281282234,0.15831924736413,0.158261307454267,0.158261307454267, +0.233645993339923,0.233645993339923,0.233665349008671,0.233584821158993,0.233430845378146,0.233238321741469,0.233045617652541,0.232890058052703,0.23280290604892,0.23280290604892, +0.337385718832882,0.337385718832882,0.337370600683817,0.337223283791287,0.336980471242278,0.336689783650446,0.336402690572064,0.336170428231105,0.336039012873836,0.336039012873836, +0.47020373112031,0.47020373112031,0.470134961975647,0.469890510537147,0.469524150888638,0.469100154450074,0.468683928828708,0.468342451271688,0.468143885374015,0.468143885374015, +0.629458473231427,0.629458473231427,0.629321444442384,0.628939176470109,0.628407554893789,0.62781213434274,0.627227103014311,0.626730822372626,0.626422578998609,0.626422578998609, +0.809102937811189,0.809102937811189,0.80891774026454,0.808324743400687,0.807576744437224,0.806775423100326,0.805982694339138,0.805265815733044,0.804748289769908,0.804748289769908, + +00:31:16, +0.0877045481439036,0.0877045481439036,0.0877539365035324,0.0877523186442437,0.0877119967467806,0.0876491373000566,0.0875813913805497,0.0875252893088216,0.0874937009673269,0.0874937009673269, +0.0877045481439036,0.0877045481439036,0.0877539365035324,0.0877523186442437,0.0877119967467806,0.0876491373000566,0.0875813913805497,0.0875252893088216,0.0874937009673269,0.0874937009673269, +0.110951917243593,0.110951917243593,0.110998451140714,0.110985688764162,0.110928262531277,0.110845447696203,0.110758365608285,0.110686944034989,0.110646872220698,0.110646872220698, +0.158892589844332,0.158892589844332,0.158930696346913,0.158893133871945,0.158799207898278,0.158674423473584,0.158546842376319,0.158443285126823,0.158385349783885,0.158385349783885, +0.233778663082188,0.233778663082188,0.233798008212836,0.233717492367466,0.233563544824009,0.233371057929457,0.233178391159028,0.233022861985984,0.232935727171176,0.232935727171176, +0.337519161467553,0.337519161467553,0.337504030435801,0.337356742829881,0.337113989922373,0.336823377823313,0.336536361079061,0.336304161310108,0.336172781639302,0.336172781639302, +0.470324721359232,0.470324721359232,0.470255949883678,0.470011558781534,0.469645303274226,0.4692214329428,0.468805333578124,0.468463960532882,0.468265455573904,0.468265455573904, +0.629551308720466,0.629551308720466,0.629414301719993,0.62903213965872,0.628500677033894,0.627905439871926,0.627320590932375,0.626824465232942,0.626516317453625,0.626516317453625, +0.809153542765375,0.809153542765375,0.808968394438844,0.808375565503464,0.807627784454066,0.806826700183697,0.806034207090907,0.805317540560953,0.804800165405296,0.804800165405296, + +00:31:17, +0.0878115908569957,0.0878115908569957,0.0878609966107007,0.0878593841450374,0.0878190579817709,0.0877561879607782,0.0876884291376795,0.0876323157827233,0.0876007209339422,0.0876007209339422, +0.0878115908569957,0.0878115908569957,0.0878609966107007,0.0878593841450374,0.0878190579817709,0.0877561879607782,0.0876884291376795,0.0876323157827233,0.0876007209339422,0.0876007209339422, +0.111065605433698,0.111065605433698,0.111112149776444,0.1110993919385,0.11104196521915,0.110959146348998,0.110872058643049,0.110800631928941,0.110760557103448,0.110760557103448, +0.159016576601477,0.159016576601477,0.159054682494923,0.159017125340537,0.158923208588545,0.158798435022854,0.158670864360135,0.158567315353316,0.158509384596225,0.158509384596225, +0.233911296364838,0.233911296364838,0.233930630976764,0.233850127155361,0.233696207870512,0.23350375774051,0.233311128309737,0.233155629579887,0.233068511962882,0.233068511962882, +0.337652543241877,0.337652543241877,0.337637399359982,0.33749014104966,0.337247447777012,0.336956911155988,0.336669970728563,0.336437833516034,0.336306489522093,0.336306489522093, +0.470445639494897,0.470445639494897,0.470376865718025,0.47013253493223,0.469766383512804,0.469342639218392,0.468926666037748,0.468585397442434,0.46838695338513,0.46838695338513, +0.62964407977448,0.62964407977448,0.629507094567964,0.629125038350197,0.628593734563978,0.627998680656924,0.627414013970813,0.626918043097024,0.626609990839582,0.626609990839582, +0.809204109653138,0.809204109653138,0.809019010513971,0.808426349379096,0.80767878607333,0.806877938682015,0.806085681070166,0.805369226447102,0.804852001978729,0.804852001978729, + +00:31:18, +0.0879186641120575,0.0879186641120575,0.0879680872332358,0.0879664801679235,0.0879261497716429,0.0878632692248431,0.0877954975499749,0.0877393729547297,0.087707771622866,0.087707771622866, +0.0879186641120575,0.0879186641120575,0.0879680872332358,0.0879664801679235,0.0879261497716429,0.0878632692248431,0.0877954975499749,0.0877393729547297,0.087707771622866,0.087707771622866, +0.111179310339763,0.111179310339763,0.11122586511102,0.111213111823205,0.111155684651451,0.111072861793754,0.11098576851969,0.110914336705817,0.110874258892178,0.110874258892178, +0.15914055563537,0.15914055563537,0.15917866091959,0.159141109103676,0.159047201605841,0.158922438940324,0.158794878753977,0.158691338023718,0.158633411871352,0.158633411871352, +0.234043893208152,0.234043893208152,0.23406321732071,0.233982725542883,0.233828834537783,0.23363642119466,0.233443829124601,0.233288360854265,0.23320126044385,0.23320126044385, +0.337785864216564,0.337785864216564,0.337770707517018,0.337623478511233,0.337380844866753,0.337090383708969,0.336803519581012,0.336571444909278,0.336440136582581,0.336440136582581, +0.470566485614302,0.470566485614302,0.470497709565625,0.470253439076163,0.469887391691315,0.469463773363819,0.469047926294578,0.468706762087368,0.468508378894735,0.468508378894735, +0.629736786479245,0.629736786479245,0.629599823072043,0.629217872630352,0.628686727569974,0.628091856783808,0.627507372215842,0.627011556051216,0.626703599242903,0.626703599242903, +0.809254638527817,0.809254638527817,0.809069588543297,0.808477095081128,0.807729749348788,0.806929138649302,0.806137116331183,0.805420873445984,0.804903799544864,0.804903799544864, + +00:31:19, +0.0880257678455262,0.0880257678455262,0.0880752083076015,0.0880736066493548,0.0880332720528074,0.0879703810286011,0.0879025965537202,0.0878464607610709,0.0878148529702978,0.0878148529702978, +0.0880257678455262,0.0880257678455262,0.0880752083076015,0.0880736066493548,0.0880332720528074,0.0879703810286011,0.0879025965537202,0.0878464607610709,0.0878148529702978,0.0878148529702978, +0.111293031913093,0.111293031913093,0.111339597095766,0.111326848369582,0.11126942077943,0.111186593981646,0.111099495189301,0.111028058316644,0.11098797753788,0.11098797753788, +0.159264526926548,0.159264526926548,0.159302631601454,0.159265085141864,0.159171186930598,0.159046435206333,0.158918885538086,0.158815353118188,0.15875743158938,0.15875743158938, +0.234176453632413,0.234176453632413,0.234195767264933,0.234115287550241,0.233961424845953,0.233769048311943,0.233576493623559,0.233421055828977,0.233333972633892,0.233333972633892, +0.337919124452258,0.337919124452258,0.337903954967499,0.337756755275143,0.337514181252087,0.33722379554269,0.336937007696785,0.336704995550171,0.336573722881073,0.336573722881073, +0.470687259804317,0.470687259804317,0.470618481513288,0.470374271300132,0.470008327896576,0.469584835465925,0.469169114435484,0.46882805455458,0.468629732189633,0.468629732189633, +0.629829428920391,0.629829428920391,0.629692487317832,0.629310642584854,0.628779656137672,0.628184968338512,0.627600665753537,0.627105004181718,0.62679714274987,0.62679714274987, +0.809305129442654,0.809305129442654,0.809120128580104,0.808527802663011,0.807780674334119,0.806980300139483,0.80618851292813,0.805472481611995,0.804955558158259,0.804955558158259, + +00:31:20, +0.0881329019939072,0.0881329019939072,0.0881823597703304,0.0881807635258524,0.0881404247617436,0.0880775233084702,0.0880097260852683,0.0879535791380453,0.0879219649125052,0.0879219649125052, +0.0881329019939072,0.0881329019939072,0.0881823597703304,0.0881807635258524,0.0881404247617436,0.0880775233084702,0.0880097260852683,0.0879535791380453,0.0879219649125052,0.0879219649125052, +0.111406770105058,0.111406770105058,0.111453345682074,0.111440601529,0.111383173554402,0.111300342863913,0.111213238603042,0.111141796712516,0.111101712991606,0.111101712991606, +0.159388490455594,0.159388490455594,0.159426594521106,0.159389053435655,0.159295164543295,0.159170423801266,0.159042884692748,0.158939360616933,0.15888144373047,0.15888144373047, +0.234308977657906,0.234308977657906,0.234328280829694,0.234247813197643,0.234093978815154,0.233901639112395,0.23370912182655,0.233553714523884,0.233466648552827,0.233466648552827, +0.338052324009538,0.338052324009538,0.338037141771952,0.33788997140187,0.337647456993442,0.337357146717522,0.337070435136194,0.336838485498979,0.336707248477809,0.336707248477809, +0.470807962151687,0.470807962151687,0.470739181647695,0.470495031690809,0.470129192215277,0.469705825611426,0.469290230547211,0.468949274930841,0.468751013356613,0.468751013356613, +0.629922007183407,0.629922007183407,0.629785087390791,0.62940334829923,0.628872520352719,0.628278015406823,0.627693894669829,0.627198387574585,0.626890621446621,0.626890621446621, +0.809355582450795,0.809355582450795,0.809170630677577,0.808578472178101,0.807831561082905,0.807031423206386,0.806239870915082,0.805524050999433,0.805007277873373,0.805007277873373, + +00:31:21, +0.0882400664937746,0.0882400664937746,0.0882895415580233,0.0882879507340058,0.0882476078349989,0.088184696000937,0.0881168860810402,0.0880607280220197,0.0880291073858245,0.0880291073858245, +0.0882400664937746,0.0882400664937746,0.0882895415580233,0.0882879507340058,0.0882476078349989,0.088184696000937,0.0881168860810402,0.0880607280220197,0.0880291073858245,0.0880291073858245, +0.111520524867095,0.111520524867095,0.111567110821402,0.111554371252897,0.111496942927749,0.111414108391861,0.111326998712137,0.111255551844591,0.11121546520448,0.11121546520448, +0.159512446203142,0.159512446203142,0.159550549659183,0.159513013965648,0.159419134424462,0.159294404705558,0.1591668761983,0.15906336050021,0.159005448274833,0.159005448274833, +0.234441465304918,0.234441465304918,0.234460758035257,0.234380302505302,0.234226496465521,0.234034193616057,0.233841713753518,0.233686336958852,0.233599288220475,0.233599288220475, +0.338185462948917,0.338185462948917,0.338170267990838,0.338023126951826,0.337780672151179,0.337490437293768,0.337203801959485,0.336971914815906,0.336840713432968,0.336840713432968, +0.470928592743029,0.470928592743029,0.470859810055405,0.470615720334742,0.470249984733982,0.469826743886913,0.469411274716379,0.469070423302797,0.46887222248234,0.46887222248234, +0.63001452135364,0.63001452135364,0.629877623376236,0.629495989858863,0.628965320300618,0.628370998074388,0.627787059050506,0.627291706315732,0.626984035419149,0.626984035419149, +0.809405997605294,0.809405997605294,0.809221094888807,0.808629103679659,0.807882409648632,0.807082507903743,0.806291190346016,0.805575581662501,0.805058958744572,0.805058958744572, + +00:31:22, +0.0883472612817709,0.0883472612817709,0.0883967536073495,0.0883951682104731,0.0883548212091893,0.0882918990425562,0.0882240764775253,0.0881679073494293,0.0881362803266601,0.0881362803266601, +0.0883472612817709,0.0883472612817709,0.0883967536073495,0.0883951682104731,0.0883548212091893,0.0882918990425562,0.0882240764775253,0.0881679073494293,0.0881362803266601,0.0881362803266601, +0.111634296150707,0.111634296150707,0.111680892465273,0.111668157492776,0.11161072885092,0.111527890516861,0.111440775467879,0.111369323664094,0.111329234127689,0.111329234127689, +0.159636394149873,0.159636394149873,0.159674496996369,0.159636966712492,0.159543096554675,0.159418377899691,0.159290860035128,0.159187352748323,0.159129445202729,0.159129445202729, +0.234573916593738,0.234573916593738,0.234593198901887,0.234512755493433,0.234358977817192,0.234166711842972,0.233974269424409,0.233818923153747,0.23373189165666,0.23373189165666, +0.338318541330843,0.338318541330843,0.338303333684551,0.33815622198536,0.337913826785596,0.33762366733167,0.337337108226843,0.337105283561088,0.336974117806665,0.336974117806665, +0.471049151664835,0.471049151664835,0.470980366822848,0.470736337318351,0.470370705539129,0.469947590378852,0.469532247029481,0.469191499756968,0.468993359653351,0.468993359653351, +0.630106971516291,0.630106971516291,0.629970095359341,0.629588567348993,0.629058056066731,0.628463916426709,0.627880158981215,0.627384960490929,0.627077384753307,0.627077384753307, +0.809456374959107,0.809456374959107,0.80927152126679,0.808679697220849,0.80793322008469,0.807133554285191,0.806342471274814,0.805627073655304,0.805110600826121,0.805110600826121, + +00:31:23, +0.0884544862946066,0.0884544862946066,0.0885039958550464,0.0885024158919805,0.0884620648209992,0.088399132369951,0.0883312972112816,0.0882751170567777,0.088243483671485,0.088243483671485, +0.0884544862946066,0.0884544862946066,0.0885039958550464,0.0885024158919805,0.0884620648209992,0.088399132369951,0.0883312972112816,0.0882751170567777,0.088243483671485,0.088243483671485, +0.11174808390746,0.11174808390746,0.111794690565277,0.111781960200204,0.111724531275427,0.111641689190351,0.111554568821624,0.111483112122316,0.111443019712486,0.111443019712486, +0.159760334276514,0.159760334276514,0.159798436513398,0.159760911656883,0.159667050914557,0.159542343364194,0.159414836183663,0.159311337341625,0.159253434494466,0.159253434494466, +0.234706331544656,0.234706331544656,0.234725603449852,0.234645172182253,0.234491422890307,0.234299193813185,0.234106788859174,0.233951473128442,0.233864458881211,0.233864458881211, +0.3384515592157,0.3384515592157,0.338436338913423,0.338289256562754,0.338046920956925,0.337756836891401,0.337470353998386,0.3372385917946,0.337107461658947,0.337107461658947, +0.471169639003472,0.471169639003472,0.471100852036329,0.470856882727933,0.470491354717032,0.470068365173582,0.469653147572885,0.469312504379749,0.469114424956059,0.469114424956059, +0.630199357756423,0.630199357756423,0.63006250342514,0.62968108085472,0.629150727736277,0.628556770549147,0.627973194547457,0.627478150185802,0.627170669534802,0.627170669534802, +0.809506714565098,0.809506714565098,0.809321909864426,0.808730252854742,0.807983992444375,0.807184562404271,0.806393713755261,0.805678527031851,0.805162204172191,0.805162204172191, + +00:31:24, +0.0885617414690609,0.0885617414690609,0.0886112682379201,0.0886096937153226,0.0885693386071809,0.0885063959198129,0.0884385482189352,0.0883823570806366,0.0883507173568403,0.0883507173568403, +0.0885617414690609,0.0885617414690609,0.0886112682379201,0.0886096937153226,0.0885693386071809,0.0885063959198129,0.0884385482189352,0.0883823570806366,0.0883507173568403,0.0883507173568403, +0.11186188808899,0.11186188808899,0.111908505073067,0.111895779326815,0.11183835015285,0.111755504363835,0.111668378724795,0.111596917170615,0.111556821910191,0.111556821910191, +0.159884266563842,0.159884266563842,0.159922368191049,0.159884848779564,0.159790997484781,0.159666301079647,0.159538804624386,0.159435314260516,0.159377416130399,0.159377416130399, +0.234838710177968,0.234838710177968,0.234857971699421,0.234777552591981,0.234623831705008,0.234431639546746,0.234239272077765,0.23408398690281,0.233996989913957,0.233996989913957, +0.338584516663805,0.338584516663805,0.338569283737717,0.338422230744226,0.338179954725333,0.337889946033071,0.337603539334168,0.337371839576451,0.337240745049801,0.337240745049801, +0.471290054845178,0.471290054845178,0.471221265782028,0.470977356649656,0.470611932353878,0.470189068357317,0.469773976432833,0.469433437257408,0.469235418476752,0.469235418476752, +0.630291680158954,0.630291680158954,0.630154847658521,0.629773530461001,0.629243335394332,0.628649560526921,0.628066165834593,0.627571275485838,0.6272638898492,0.6272638898492, +0.809557016476035,0.809557016476035,0.809372260734523,0.808780770634314,0.808034726780888,0.807235532314429,0.806444917841049,0.805729941846054,0.805213768836855,0.805213768836855, + +00:31:25, +0.0886690267419813,0.0886690267419813,0.0887185706928447,0.0887170016173622,0.0886766425045555,0.0886136896289017,0.0885458294371805,0.0884896273576464,0.0884579813193357,0.0884579813193357, +0.0886690267419813,0.0886690267419813,0.0887185706928447,0.0887170016173622,0.0886766425045555,0.0886136896289017,0.0885458294371805,0.0884896273576464,0.0884579813193357,0.0884579813193357, +0.111975708646996,0.111975708646996,0.112022335940364,0.11200961482431,0.111952185434834,0.111869335988882,0.111782205128883,0.111710738760412,0.111670640672189,0.111670640672189, +0.160008190992679,0.160008190992679,0.16004629201015,0.160008778061326,0.159914936246066,0.159790251026675,0.159662765337828,0.159559283485447,0.159501390090934,0.159501390090934, +0.234971052513967,0.234971052513967,0.234990303670866,0.234909896742837,0.234756204281441,0.234564049063704,0.234371719100136,0.234216464496729,0.234129484774732,0.234129484774732, +0.338717413735409,0.338717413735409,0.338702168217633,0.338555144589928,0.338312928150922,0.338022994816728,0.337736664294179,0.337505026966586,0.337373968039148,0.337373968039148, +0.471410399276069,0.471410399276069,0.471341608145998,0.471097759169565,0.470732438535728,0.470309700016147,0.469894733695445,0.469554298476091,0.469356340301591,0.469356340301591, +0.630383938808663,0.630383938808663,0.630247128144235,0.629865916252651,0.629335879125834,0.628742286445107,0.628159072927842,0.62766433647638,0.627357045781925,0.627357045781925, +0.809607280744593,0.809607280744593,0.809422573929794,0.808831250612446,0.808085423147334,0.807286464069014,0.806496083585771,0.80578131815173,0.805265294874091,0.805265294874091, + +00:31:26, +0.0887763420502835,0.0887763420502835,0.0888259031567628,0.0888243395350307,0.0887839764500121,0.0887210134340456,0.0886531408027804,0.0885969278245155,0.0885652754956488,0.0885652754956488, +0.0887763420502835,0.0887763420502835,0.0888259031567628,0.0888243395350307,0.0887839764500121,0.0887210134340456,0.0886531408027804,0.0885969278245155,0.0885652754956488,0.0885652754956488, +0.112089545533242,0.112089545533242,0.112136183118955,0.112123466644453,0.112066037073089,0.111983184017125,0.111896047985441,0.111824576843198,0.111784475949932,0.111784475949932, +0.160132107543897,0.160132107543897,0.160170207951576,0.160132699483007,0.160038867179179,0.159914193185951,0.159786718304563,0.159683244996913,0.159625356356522,0.159625356356522, +0.235103358572951,0.235103358572951,0.23512259938446,0.235042204655045,0.234888540639751,0.234696422384112,0.234504129946245,0.234348905930079,0.234261943483374,0.234261943483374, +0.3388502504907,0.3388502504907,0.338834992413307,0.338687998159949,0.338445841293728,0.338155983302351,0.337869728938344,0.337638154024886,0.337507130686846,0.337507130686846, +0.471530672382134,0.471530672382134,0.47146187921417,0.471218090373579,0.470852873348521,0.470430260236036,0.470015419446713,0.469675088121818,0.469477190516616,0.469477190516616, +0.630476133790186,0.630476133790186,0.63033934496689,0.629958238314346,0.629428359015574,0.62883494838864,0.62825191591228,0.627757333242629,0.62745013741826,0.62745013741826, +0.809657507423352,0.809657507423352,0.809472849502856,0.808881692841925,0.808136081596723,0.807337357721282,0.806547211042926,0.8058326560026,0.805316782337779,0.805316782337779, + +00:31:27, +0.0888836873309517,0.0888836873309517,0.0889332655666854,0.0889317074053277,0.0888913403805082,0.088828367272141,0.0887604822525659,0.0887042584180208,0.0886725998225259,0.0886725998225259, +0.0888836873309517,0.0888836873309517,0.0889332655666854,0.0889317074053277,0.0888913403805082,0.088828367272141,0.0887604822525659,0.0887042584180208,0.0886725998225259,0.0886725998225259, +0.11220339869956,0.11220339869956,0.112250046560689,0.112237334739075,0.112179905019391,0.112097048400266,0.112009907246089,0.111938431370524,0.111898327694937,0.111898327694937, +0.160256016198413,0.160256016198413,0.160294115996249,0.160256613025493,0.160162790264935,0.160038127538197,0.159910663505217,0.15980719877546,0.159749314907663,0.159749314907663, +0.235235628375219,0.235235628375219,0.235254858860478,0.235174476348829,0.235020840800088,0.234828759528025,0.234636504636051,0.234481311222742,0.23439436605972,0.23439436605972, +0.3389830269898,0.3389830269898,0.338967756384806,0.33882079151431,0.338578694213725,0.338288911549858,0.338002733326523,0.337771220811169,0.337640233052687,0.337640233052687, +0.471650874249237,0.471650874249237,0.471582079072346,0.471338350347494,0.470973236878067,0.470550749102824,0.470136033772505,0.469795806280482,0.469597969207741,0.469597969207741, +0.630568265188019,0.630568265188019,0.630431498210951,0.630050496730617,0.629520775148207,0.628927546442314,0.628344694872844,0.627850265869644,0.627543164843344,0.627543164843344, +0.8097076965648,0.8097076965648,0.809523087506236,0.808932097375444,0.808186702181973,0.807388213324393,0.806598300265917,0.80588395545229,0.805368231281706,0.805368231281706, + +00:31:28, +0.0889910625210382,0.0889910625210382,0.0890406578596915,0.0890391051653208,0.0889987342330696,0.0889357510801525,0.0888678537234363,0.0888116190750072,0.0887799542367814,0.0887799542367814, +0.0889910625210382,0.0889910625210382,0.0890406578596915,0.0890391051653208,0.0889987342330696,0.0889357510801525,0.0888678537234363,0.0888116190750072,0.0887799542367814,0.0887799542367814, +0.112317268097845,0.112317268097845,0.112363926217485,0.112351219060071,0.112293789225583,0.11221092909007,0.112123782862514,0.112052302294013,0.112012195858786,0.112012195858786, +0.160379916937193,0.160379916937193,0.160418016125139,0.160380518669717,0.160286705484194,0.160162054064181,0.160034600920461,0.159931144801681,0.159873265724907,0.159873265724907, +0.235367861941072,0.235367861941072,0.235387082119198,0.235306711844415,0.235153104782601,0.234961060515501,0.234768843189519,0.234613680394603,0.234526752523614,0.234526752523614, +0.339115743292764,0.339115743292764,0.339100460192136,0.338953524712969,0.338711486970821,0.338421779619099,0.338135677518514,0.337904227385187,0.337773275196401,0.337773275196401, +0.471771004963117,0.471771004963117,0.471702207806207,0.471458539176979,0.471093529210055,0.470671166702226,0.470256576758566,0.469916453037857,0.469718676460754,0.469718676460754, +0.630660333086517,0.630660333086517,0.630523587960747,0.630142691585858,0.629613127608244,0.629020080690782,0.628437409894328,0.627943134442346,0.627636128142176,0.627636128142176, +0.809757848221329,0.809757848221329,0.809573287992364,0.808982464265603,0.808237284955906,0.807439030931413,0.806649351308054,0.805935216554329,0.805419641759562,0.805419641759562, + +00:31:29, +0.0890984675576637,0.0890984675576637,0.0891480799729286,0.0891465327521462,0.0891061579447904,0.0890431647951132,0.0889752551523595,0.0889190097323882,0.088887338675298,0.088887338675298, +0.0890984675576637,0.0890984675576637,0.0891480799729286,0.0891465327521462,0.0891061579447904,0.0890431647951132,0.0889752551523595,0.0889190097323882,0.088887338675298,0.088887338675298, +0.112431153680059,0.112431153680059,0.112477822041323,0.112465119559404,0.112407689643569,0.112324826038369,0.112237674786467,0.112166189565348,0.112126080393128,0.112126080393128, +0.160503809741248,0.160503809741248,0.160541908319262,0.160504416396658,0.160410612817865,0.160285972744718,0.160158530531014,0.160055083056215,0.159997208788848,0.159997208788848, +0.23550005929081,0.23550005929081,0.235519269180896,0.235438911162031,0.235285332607444,0.2350933253666,0.234901145626611,0.23474601346555,0.2346591028949,0.2346591028949, +0.339248399459585,0.339248399459585,0.339233103895234,0.339086197815818,0.338844219624856,0.338554587569862,0.338268561574049,0.338037173806628,0.337906257177653,0.337906257177653, +0.47189106460939,0.47189106460939,0.471822265501306,0.471578656947579,0.471213750430048,0.470791513119832,0.470377048490515,0.470037028479587,0.46983931236132,0.46983931236132, +0.630752337569894,0.630752337569894,0.630615614300463,0.630234822964322,0.629705416480058,0.629112551218557,0.628530061061386,0.62803593904551,0.627729027399616,0.627729027399616, +0.809807962445241,0.809807962445241,0.809623451013578,0.809032793564906,0.80828782997125,0.807489810595314,0.806700364222551,0.805986439362152,0.80547101382494,0.80547101382494, + +00:31:30, +0.0892059023780172,0.0892059023780172,0.0892555318436125,0.0892539901030083,0.0892136114528329,0.0891506083541242,0.0890826864763711,0.0890264303271455,0.0889947530750268,0.0889947530750268, +0.0892059023780172,0.0892059023780172,0.0892555318436125,0.0892539901030083,0.0892136114528329,0.0891506083541242,0.0890826864763711,0.0890264303271455,0.0889947530750268,0.0889947530750268, +0.112545055398228,0.112545055398228,0.112591733984252,0.112579036189099,0.112521606225323,0.112438739197058,0.112351582969765,0.112280093136282,0.112239981249676,0.112239981249676, +0.160627694591637,0.160627694591637,0.16066579255968,0.160628306187342,0.160534512246905,0.160409883560671,0.160282452317644,0.160179013519751,0.160121144080129,0.160121144080129, +0.235632220444738,0.235632220444738,0.235651420065853,0.235571074321906,0.235417524294769,0.235225554101381,0.235033411967295,0.234878310455473,0.234791417193425,0.234791417193425, +0.339380995550187,0.339380995550187,0.339365687553975,0.339218810882686,0.338976892235611,0.338687335461871,0.338401385552795,0.338170060135118,0.338039179056045,0.338039179056045, +0.472011053273546,0.472011053273546,0.471942252243075,0.471698703744715,0.471333900623485,0.470911788441109,0.470497449053848,0.470157532691197,0.469959876994982,0.469959876994982, +0.630844278722225,0.630844278722225,0.630707577314145,0.63032689095012,0.62979764184788,0.62920495811001,0.62862264845853,0.628128679763776,0.627821862700379,0.627821862700379, +0.809858039288742,0.809858039288742,0.809673576622125,0.809083085325766,0.808338337280641,0.807540552368973,0.806751339062526,0.806037623929101,0.805522347531341,0.805522347531341, + +00:31:31, +0.0893133669193559,0.0893133669193559,0.0893630134090271,0.0893614771551797,0.0893210946944275,0.0892580816943551,0.0891901476325755,0.0891338807963289,0.0891021973729869,0.0891021973729869, +0.0893133669193559,0.0893133669193559,0.0893630134090271,0.0893614771551797,0.0893210946944275,0.0892580816943551,0.0891901476325755,0.0891338807963289,0.0891021973729869,0.0891021973729869, +0.112658973204444,0.112658973204444,0.112705661998384,0.112692968901248,0.112635538922882,0.1125526685181,0.112465507364291,0.11239401295863,0.11235389838021,0.11235389838021, +0.160751571469466,0.160751571469466,0.160789668827503,0.160752188022842,0.160658403752314,0.160533786492951,0.160406366261163,0.160302936173022,0.160245071579442,0.160245071579442, +0.235764345423159,0.235764345423159,0.23578353479435,0.235703201344272,0.235549679864732,0.235357746739908,0.23516564223154,0.235010571384264,0.234923695439039,0.234923695439039, +0.339513531624433,0.339513531624433,0.339498211228169,0.339351363973334,0.339109504862797,0.338820023354782,0.338534149514356,0.338302886430217,0.338172040891113,0.338172040891113, +0.47213097104095,0.47213097104095,0.472062168116819,0.471818679653684,0.471453979875681,0.4710319927514,0.470617778533937,0.470277965758086,0.470080370447157,0.470080370447157, +0.630936156627445,0.630936156627445,0.6307994770857,0.630418895627226,0.629889803795801,0.629297301449374,0.628715172170135,0.628221356681639,0.627914634129044,0.627914634129044, +0.809908078803947,0.809908078803947,0.809723664870156,0.809133339600502,0.808388806936618,0.807591256305173,0.806802275881006,0.806088770308419,0.805573642932168,0.805573642932168, + +00:31:32, +0.0894208611190053,0.0894208611190053,0.0894705246065247,0.0894689938460011,0.0894286076068732,0.0893655847530434,0.0892976385581449,0.0892413610770565,0.0892096715062658,0.0892096715062658, +0.0894208611190053,0.0894208611190053,0.0894705246065247,0.0894689938460011,0.0894286076068732,0.0893655847530434,0.0892976385581449,0.0892413610770565,0.0892096715062658,0.0892096715062658, +0.112772907050864,0.112772907050864,0.112819606035895,0.112806917648009,0.112749487688348,0.112666613953522,0.112579447921991,0.112507948984275,0.112467831736574,0.112467831736574, +0.160875440355887,0.160875440355887,0.160913537103887,0.160876061884279,0.160782287315143,0.160657681522513,0.160530272342433,0.160426850996812,0.160368991267525,0.160368991267525, +0.235896434246381,0.235896434246381,0.235915613386668,0.23583529224936,0.235681799337491,0.235489903302247,0.235297836439317,0.235142796271819,0.235055937651595,0.235055937651595, +0.339646007742119,0.339646007742119,0.339630674977558,0.33948385714746,0.339242057566064,0.33895265130819,0.338666853518273,0.338435652751421,0.338304842742332,0.338304842742332, +0.472250817996844,0.472250817996844,0.472182013207721,0.471938584759659,0.471573988271827,0.471152126135924,0.470738037016031,0.470398327765529,0.47020079280314,0.47020079280314, +0.631027971369349,0.631027971369349,0.630891313698895,0.630510837079471,0.629981902407773,0.62938958132074,0.628807632280433,0.628313969883457,0.628007341770046,0.628007341770046, +0.809958081042877,0.809958081042877,0.80977371580973,0.80918355644134,0.80843923899163,0.807641922456604,0.80685317473092,0.806139878553257,0.805624900080732,0.805624900080732, + +00:31:33, +0.0895283849143592,0.0895283849143592,0.0895780653735255,0.0895765401128817,0.0895361501275367,0.0894731174674953,0.08940515919032,0.0893488711065148,0.0893171754120193,0.0893171754120193, +0.0895283849143592,0.0895283849143592,0.0895780653735255,0.0895765401128817,0.0895361501275367,0.0894731174674953,0.08940515919032,0.0893488711065148,0.0893171754120193,0.0893171754120193, +0.11288685688971,0.11288685688971,0.11293356604903,0.112920882381603,0.112863452473889,0.112780575455416,0.112693404594878,0.112621901165162,0.112581781270679,0.112581781270679, +0.160999301232098,0.160999301232098,0.161037397370035,0.160999927752818,0.160906162916486,0.160781568630361,0.160654170542362,0.160550757971949,0.160492903125162,0.160492903125162, +0.23602848693471,0.23602848693471,0.236047655863091,0.235967347057404,0.235813882733204,0.235622023808462,0.235429994610598,0.235274985138033,0.235188143850945,0.235188143850945, +0.339778423962975,0.339778423962975,0.339763078861822,0.339616290464697,0.339374550404994,0.339085219381623,0.33879949762402,0.338568359158164,0.338437584669111,0.338437584669111, +0.472370594226347,0.472370594226347,0.472301787600838,0.47205841914769,0.471693925896991,0.471272188679776,0.470858224585255,0.47051861879868,0.470321144148101,0.470321144148101, +0.631119723031592,0.631119723031592,0.630983087237358,0.630602715390551,0.630073937767609,0.629481797808062,0.628900028873517,0.628406519453446,0.628099985707683,0.628099985707683, +0.810008046057463,0.810008046057463,0.809823729492815,0.809233735900414,0.808489633498032,0.807692550875862,0.806904035665107,0.806190948716674,0.805676119030247,0.805676119030247, + +00:31:34, +0.0896359382428794,0.0896359382428794,0.0896856356475184,0.0896841158932986,0.0896437221938534,0.0895806797750846,0.0895127094664096,0.0894564108219582,0.0894247090274712,0.0894247090274712, +0.0896359382428794,0.0896359382428794,0.0896856356475184,0.0896841158932986,0.0896437221938534,0.0895806797750846,0.0895127094664096,0.0894564108219582,0.0894247090274712,0.0894247090274712, +0.113000822673269,0.113000822673269,0.113047541990095,0.113034863054317,0.112977433231738,0.112894552975939,0.11280737733503,0.112735869453306,0.112695746934499,0.112695746934499, +0.161123154079344,0.161123154079344,0.161161249607195,0.161123785609672,0.161030030537486,0.160905447797545,0.160778060841903,0.16067465707931,0.160616807133185,0.160616807133185, +0.236160503508453,0.236160503508453,0.236179662243903,0.236099365788637,0.235945930072029,0.235754108278623,0.235562116765359,0.235407138002806,0.235320314056948,0.235320314056948, +0.339910780346667,0.339910780346667,0.339895422940575,0.339748663984613,0.339506983439109,0.339217727634548,0.338932081891009,0.338701005709813,0.338570266730796,0.338570266730796, +0.472490299814452,0.472490299814452,0.472421491381107,0.472178182902703,0.471813792836116,0.471392180467928,0.47097834132661,0.470638838942566,0.470441424567088,0.470441424567088, +0.631211411697693,0.631211411697693,0.631074797784577,0.63069453064402,0.630165909958982,0.629573950995153,0.628992362033343,0.628499005475684,0.628192566026113,0.628192566026113, +0.81005797389954,0.81005797389954,0.809873705971286,0.809283878029764,0.808539990508086,0.80774314161545,0.80695485873631,0.80624198085163,0.805727299833835,0.805727299833835, + +00:31:35, +0.0897435210420962,0.0897435210420962,0.0897932353660601,0.0897917211247972,0.0897513237433266,0.0896882716132538,0.0896202893237907,0.0895639801607095,0.0895322722899138,0.0895322722899138, +0.0897435210420962,0.0897435210420962,0.0897932353660601,0.0897917211247972,0.0897513237433266,0.0896882716132538,0.0896202893237907,0.0895639801607095,0.0895322722899138,0.0895322722899138, +0.113114804353894,0.113114804353894,0.113161533811463,0.113148859618502,0.113091429914191,0.113008546467314,0.112921366094591,0.112849853800782,0.112809728680075,0.112809728680075, +0.161246998878917,0.161246998878917,0.161285093796663,0.1612476354361,0.161153890159331,0.161029319005161,0.160901943222059,0.160798548299818,0.160740703272474,0.160740703272474, +0.236292483987921,0.236292483987921,0.236311632549389,0.236231348463297,0.236077941374129,0.235886156732798,0.235694202923575,0.235539254886038,0.23545244828946,0.23545244828946, +0.340043076952797,0.340043076952797,0.340027707273365,0.339880977766711,0.339639356727861,0.339350176126364,0.339064606378586,0.338833592465674,0.338702888986668,0.338702888986668, +0.47260993484603,0.47260993484603,0.472541124633338,0.472297876109499,0.471933589174024,0.47151210158523,0.471098387324975,0.470758988282094,0.470561634145027,0.470561634145027, +0.631303037451029,0.631303037451029,0.631166445423905,0.630786282923294,0.630257819065428,0.629666040965686,0.629084631843724,0.62859142803411,0.628285082809353,0.628285082809353, +0.810107864620855,0.810107864620855,0.809923645296924,0.809333982881339,0.808590310073959,0.807793694727778,0.807005643997178,0.806292975010996,0.805778442544523,0.805778442544523, + +00:31:36, +0.0898511332496078,0.0898511332496078,0.0899008644667756,0.0898993557449913,0.0898589547135278,0.0897958929195132,0.0897278986999085,0.0896715790601597,0.0896398651367072,0.0896398651367072, +0.0898511332496078,0.0898511332496078,0.0899008644667756,0.0898993557449913,0.0898589547135278,0.0897958929195132,0.0897278986999085,0.0896715790601597,0.0896398651367072,0.0896398651367072, +0.113228801884,0.113228801884,0.113275541465571,0.113262872026577,0.113205442473611,0.113122555881827,0.113035370825768,0.112963854159733,0.112923726459514,0.112923726459514, +0.161370835612154,0.161370835612154,0.16140892991978,0.161371477213406,0.161277741763256,0.161153182234352,0.161025817663876,0.160922431614442,0.160864591523954,0.160864591523954, +0.236424428393423,0.236424428393423,0.236443566799835,0.236363295101618,0.236209916659665,0.236018169191058,0.235826253105225,0.235671335807632,0.235584546568344,0.235584546568344, +0.340175313840901,0.340175313840901,0.340159931919679,0.340013231870431,0.339771670330641,0.339482564916408,0.339197071146035,0.338966119484988,0.338835451495947,0.338835451495947, +0.47272949940583,0.47272949940583,0.472660687442221,0.472417498852758,0.472053314995412,0.471631952116408,0.471218362665107,0.470879066902049,0.470681772966719,0.470681772966719, +0.631394600374841,0.631394600374841,0.631258030238551,0.630877972311651,0.630349665170342,0.629758067803199,0.629176838388338,0.628683787212523,0.628377536141283,0.628377536141283, +0.81015771827306,0.81015771827306,0.809973547521421,0.809384050506994,0.80864059224773,0.807844210265162,0.807056391500268,0.806343931247545,0.805829547215242,0.805829547215242, + +00:31:37, +0.0899587748030808,0.0899587748030808,0.0900085228873581,0.0900070196915624,0.0899666150420966,0.0899035436314416,0.0898355375322762,0.0897792074577678,0.08974748750528,0.08974748750528, +0.0899587748030808,0.0899587748030808,0.0900085228873581,0.0900070196915624,0.0899666150420966,0.0899035436314416,0.0898355375322762,0.0897792074577678,0.08974748750528,0.08974748750528, +0.11334281521607,0.11334281521607,0.113389564904921,0.11337690023102,0.113319470862426,0.113236581171832,0.113149391480834,0.113077870482368,0.113037740224984,0.113037740224984, +0.161494664260438,0.161494664260438,0.161532757957933,0.161495310922941,0.161401585330541,0.161277037466307,0.161149684148449,0.161046307004198,0.160988471868598,0.160988471868598, +0.236556336745269,0.236556336745269,0.236575465015529,0.236495205723838,0.2363418559488,0.236150145673475,0.235958267330287,0.235803380787491,0.23571660891346,0.23571660891346, +0.34030749107045,0.34030749107045,0.340292096938933,0.340145426355145,0.339903924306775,0.339614894063952,0.339329476252574,0.339098586826931,0.338967954317786,0.338967954317786, +0.472848993578475,0.472848993578475,0.472780179892319,0.472537051217038,0.472172970384856,0.471751732146064,0.471338267431638,0.470999074887091,0.470801841116846,0.470801841116846, +0.631486100552231,0.631486100552231,0.631349552311592,0.630969598892231,0.630441448356982,0.629850031591089,0.629268981750722,0.628776083094584,0.628469926105644,0.628469926105644, +0.810207534907718,0.810207534907718,0.810023412696377,0.809434080958495,0.808690837081382,0.807894688279828,0.807107101298045,0.80639484961396,0.805880613898833,0.805880613898833, + +00:31:38, +0.0900664456402499,0.0900664456402499,0.0901162105655689,0.0901147129022606,0.0900743046667409,0.0900112236866857,0.0899432057584754,0.0898868652910612,0.0898551393331288,0.0898551393331288, +0.0900664456402499,0.0900664456402499,0.0901162105655689,0.0901147129022606,0.0900743046667409,0.0900112236866857,0.0899432057584754,0.0898868652910612,0.0898551393331288,0.0898551393331288, +0.11345684430265,0.11345684430265,0.11350360408208,0.11349094418438,0.113433515033127,0.113350622289744,0.113263428012127,0.113191902720957,0.113151769928722,0.113151769928722, +0.161618484805198,0.161618484805198,0.161656577892555,0.161619136546103,0.161525420842514,0.161400884682262,0.161273542656919,0.16117017445015,0.161112344287426,0.161112344287426, +0.236688209063771,0.236688209063771,0.236707327216757,0.236627080350194,0.236473759261697,0.236282086200122,0.236090245618743,0.235935389845522,0.235848635344672,0.235848635344672, +0.34043960870085,0.34043960870085,0.340424202390485,0.340277561280163,0.340036118715523,0.339747163628202,0.339461821757359,0.339230994550618,0.339100397511277,0.339100397511277, +0.472968417448467,0.472968417448467,0.472899602068076,0.472656533286771,0.472292555426807,0.471871441758681,0.471458101709081,0.47111901232176,0.470921838679964,0.470921838679964, +0.631577538066162,0.631577538066162,0.631441011725963,0.631061162748036,0.630533168708469,0.629941932412614,0.629361062014275,0.628868315763816,0.628562252786036,0.628562252786036, +0.810257314576298,0.810257314576298,0.810073240873299,0.809484074287514,0.808741044626807,0.807945128823906,0.807157773442878,0.80644573016283,0.805931642648041,0.805931642648041, + +00:31:39, +0.0901741456989178,0.0901741456989178,0.0902239274392374,0.0902224353149037,0.0901820235252366,0.0901189330229603,0.0900509033161557,0.0899945524976351,0.0899628205578184,0.0899628205578184, +0.0901741456989178,0.0901741456989178,0.0902239274392374,0.0902224353149037,0.0901820235252366,0.0901189330229603,0.0900509033161557,0.0899945524976351,0.0899628205578184,0.0899628205578184, +0.11357088909635,0.11357088909635,0.113617658949679,0.113605003839266,0.113547574938271,0.113464679188045,0.113377480372049,0.113305950827839,0.113265815523029,0.113265815523029, +0.161742297227909,0.161742297227909,0.161780389705124,0.161742954064332,0.161649248280545,0.161524723863498,0.161397393170472,0.161294033933406,0.161236208761502,0.161236208761502, +0.23682004536924,0.23682004536924,0.236839153423807,0.236758919000927,0.236605626618523,0.236413990791074,0.236222187990575,0.236067363001633,0.235980625881847,0.235980625881847, +0.340571666791442,0.340571666791442,0.340556248333622,0.340409636704729,0.340168253616082,0.339879373668304,0.33959410771948,0.339363342715096,0.339232781135447,0.339232781135447, +0.473087771100186,0.473087771100186,0.473018954053813,0.47277594514627,0.472412070205597,0.471991081038615,0.471577865581822,0.471238879290471,0.471041765740509,0.471041765740509, +0.631668912999462,0.631668912999462,0.631532408564464,0.63115266396193,0.630624826307785,0.630033770350898,0.629453079262261,0.628960485303603,0.628654516265925,0.628654516265925, +0.810307057330181,0.810307057330181,0.810123032103604,0.809534030545633,0.808791214935806,0.807995531949435,0.807208407987047,0.80649657294665,0.805982633515519,0.805982633515519, + +00:31:40, +0.0902818749169556,0.0902818749169556,0.0903316734462613,0.090330186867378,0.0902897715554278,0.0902266715780484,0.0901586301430348,0.0901022690151533,0.0900705311169816,0.0900705311169816, +0.0902818749169556,0.0902818749169556,0.0903316734462613,0.090330186867378,0.0902897715554278,0.0902266715780484,0.0901586301430348,0.0901022690151533,0.0900705311169816,0.0900705311169816, +0.113684949549847,0.113684949549847,0.113731729460414,0.113719079148353,0.113661650530479,0.113578751819282,0.113491548513069,0.113420014755416,0.113379876960268,0.113379876960268, +0.161866101510091,0.161866101510091,0.161904193377165,0.161866763459118,0.161773067626055,0.161648554991341,0.16152123567034,0.161417885435122,0.161360065271938,0.161360065271938, +0.236951845681989,0.236951845681989,0.236970943656969,0.236890721696274,0.236737458039441,0.236545859466405,0.236354094465766,0.23619930027573,0.236112580544852,0.236112580544852, +0.340703665401505,0.340703665401505,0.340688234827571,0.340541652688024,0.340300329067585,0.340011524243335,0.339726334197965,0.339495631379353,0.339365105249259,0.339365105249259, +0.473207054617886,0.473207054617886,0.473138235933727,0.472895286879723,0.472531514805433,0.472110650070105,0.47169755913413,0.471358675877519,0.471161622382795,0.471161622382795, +0.63176022543482,0.63176022543482,0.631623742909755,0.631244102616641,0.630716421237774,0.630125545488923,0.629545033577802,0.629052591797192,0.628746716628636,0.628746716628636, +0.810356763220654,0.810356763220654,0.810172786438617,0.80958394978434,0.808841348060088,0.808045897708365,0.807259004982735,0.806547378017823,0.806033586553826,0.806033586553826, + +00:31:41, +0.0903896332323022,0.0903896332323022,0.0904394485246062,0.0904379674976376,0.0903975486952266,0.0903344392898011,0.0902663861768985,0.0902100147813471,0.0901782709483196,0.0901782709483196, +0.0903896332323022,0.0903896332323022,0.0904394485246062,0.0904379674976376,0.0903975486952266,0.0903344392898011,0.0902663861768985,0.0902100147813471,0.0901782709483196,0.0901782709483196, +0.11379902561588,0.11379902561588,0.113845815567045,0.113833170064382,0.113775741762436,0.113692840136066,0.113605632387716,0.113534094456154,0.113493954192872,0.113493954192872, +0.161989897633311,0.161989897633311,0.162027988890247,0.161990564711995,0.161896878860506,0.161772378047165,0.161645070137804,0.161541728936498,0.161483913799892,0.161483913799892, +0.237083610022331,0.237083610022331,0.23710269793653,0.237022488456475,0.236869253544618,0.236677692246191,0.236485965064301,0.236331201687726,0.236244499353555,0.236244499353555, +0.34083560459025,0.34083560459025,0.340820161931493,0.340673609289162,0.340432345129098,0.340143615412311,0.339858501251776,0.339627860602309,0.339497369911613,0.339497369911613, +0.473326268085704,0.473326268085704,0.473257447791892,0.473014558571197,0.4726508893104,0.472230148937264,0.471817182450148,0.471478402167078,0.471281408691013,0.471281408691013, +0.631851475454788,0.631851475454788,0.631715014844364,0.63133547879476,0.630807953581146,0.630217257909538,0.629636925043885,0.629144635327693,0.628838853957358,0.628838853957358, +0.810406432298915,0.810406432298915,0.810222503929573,0.809633832055036,0.808891444051269,0.808096226152549,0.807309564482038,0.806598145428658,0.806084501815429,0.806084501815429, + +00:31:42, +0.0904974205829648,0.0904974205829648,0.0905472526123058,0.0905457771437047,0.090505354882613,0.0904422360961376,0.0903741713556007,0.0903177897340165,0.0902860399896013,0.0902860399896013, +0.0904974205829648,0.0904974205829648,0.0905472526123058,0.0905457771437047,0.090505354882613,0.0904422360961376,0.0903741713556007,0.0903177897340165,0.0902860399896013,0.0902860399896013, +0.113913117247255,0.113913117247255,0.113959917222397,0.113947276540156,0.113889848586893,0.113806944091071,0.113719731948589,0.113648189882584,0.113608047173333,0.113608047173333, +0.16211368557918,0.16211368557918,0.162151776225985,0.16211435780454,0.162020681965409,0.161896193012388,0.161768896554187,0.161665564418784,0.161607754326569,0.161607754326569, +0.237215338410579,0.237215338410579,0.23723441628278,0.23715421930177,0.23700101315422,0.236809489150509,0.236617799806166,0.236463067257531,0.236376382327826,0.236376382327826, +0.340967484416824,0.340967484416824,0.340952029704483,0.340805506567195,0.340564301859626,0.340275647234183,0.339990608939813,0.339760030442824,0.339629575181347,0.339629575181347, +0.473445411587651,0.473445411587651,0.473376589712265,0.473133760304638,0.472770193804463,0.472349577724085,0.471936735613901,0.471598058243199,0.471401124749235,0.471401124749235, +0.631942663141782,0.631942663141782,0.631806224450677,0.631426792578739,0.630899423420471,0.630308907695451,0.62972875374336,0.629236615978076,0.628930928335142,0.628930928335142, +0.81045606461607,0.81045606461607,0.810272184627616,0.809683677409027,0.808941502960876,0.808146517333752,0.807360086536957,0.806648875231374,0.806135379352702,0.806135379352702, + +00:31:43, +0.0906052369070186,0.0906052369070186,0.0906550856474618,0.0906536157436697,0.0906131900556355,0.0905500619350451,0.0904819856170635,0.090425593811029,0.090393838178664,0.090393838178664, +0.0906052369070186,0.0906052369070186,0.0906550856474618,0.0906536157436697,0.0906131900556355,0.0905500619350451,0.0904819856170635,0.090425593811029,0.090393838178664,0.090393838178664, +0.114027224396838,0.114027224396838,0.11407403437936,0.114061398528544,0.114003970956664,0.113921063637038,0.113833847148349,0.113762300987304,0.113722155854212,0.113722155854212, +0.162237465329354,0.162237465329354,0.16227555536604,0.162238142718378,0.162144476922317,0.162019999868475,0.161892714900859,0.161789391863271,0.161731586833218,0.161731586833218, +0.237347030867045,0.237347030867045,0.237366098716008,0.237285914252399,0.237132736888415,0.236941250199436,0.236749598711345,0.236594897005058,0.236508229487537,0.236508229487537, +0.34109930494031,0.34109930494031,0.341083838205572,0.340937344581108,0.340696199318107,0.340407619767837,0.340122657320912,0.339892140959692,0.339761721117232,0.339761721117232, +0.473564485207616,0.473564485207616,0.473495661778675,0.473252892163869,0.472889428371463,0.472468936514439,0.47205621870929,0.471717644189812,0.471520770641409,0.471520770641409, +0.632033788578083,0.632033788578083,0.631897371810947,0.631518044050896,0.630990830838184,0.630400494929236,0.62982051975894,0.629328533831178,0.629022939844902,0.629022939844902, +0.810505660223138,0.810505660223138,0.8103218285838,0.809733485897532,0.808991524840343,0.808196771303647,0.8074105711994,0.806699567478097,0.806186219217926,0.806186219217926, + +00:31:44, +0.090713082142607,0.090713082142607,0.0907629475682443,0.090761483235691,0.0907210541524103,0.0906579167445788,0.0905898288992768,0.0905334269503207,0.0905016654534129,0.0905016654534129, +0.090713082142607,0.090713082142607,0.0907629475682443,0.090761483235691,0.0907210541524103,0.0906579167445788,0.0905898288992768,0.0905334269503207,0.0905016654534129,0.0905016654534129, +0.114141347017565,0.114141347017565,0.114188166990885,0.114175535982478,0.114118108824628,0.11403519872677,0.11394797793972,0.113876427722972,0.113836280188132,0.113836280188132, +0.162361236865536,0.162361236865536,0.162399326292116,0.162361919435178,0.162268263712831,0.162143798596934,0.162016525159236,0.161913211251298,0.161855411301135,0.161855411301135, +0.237478687412043,0.237478687412043,0.237497745256504,0.237417573328603,0.23726442476737,0.237072975413052,0.236881361799828,0.23672669095022,0.23664004085256,0.23664004085256, +0.341231066219726,0.341231066219726,0.341215587493727,0.341069123389824,0.340828037563416,0.340539533072097,0.340254646453842,0.340024192211644,0.339893807777977,0.339893807777977, +0.47368348902937,0.47368348902937,0.473614664074833,0.473371954232592,0.473008593095122,0.472588225392076,0.472175631820095,0.471837160090725,0.471640346451363,0.471640346451363, +0.632124851845832,0.632124851845832,0.63198845700729,0.631609233293413,0.631082175916583,0.63049201969333,0.629912223173201,0.629420388969698,0.629114888569416,0.629114888569416, +0.810555219171043,0.810555219171043,0.810371435849088,0.809783257571676,0.809041509741014,0.808246988113814,0.807461018521187,0.80675022222086,0.806237021463291,0.806237021463291, + +00:31:45, +0.0908209562279411,0.0908209562279411,0.0908708383128909,0.0908693795579949,0.0908289471111216,0.090765800462862,0.0906977011402986,0.0906412890898954,0.0906095217518213,0.0906095217518213, +0.0908209562279411,0.0908209562279411,0.0908708383128909,0.0908693795579949,0.0908289471111216,0.090765800462862,0.0906977011402986,0.0906412890898954,0.0906095217518213,0.0906095217518213, +0.114255485062431,0.114255485062431,0.114302315009992,0.114289688854955,0.114232262143728,0.114149349313137,0.114062124275493,0.113990570042315,0.113950420127782,0.113950420127782, +0.162485000169472,0.162485000169472,0.162523088985964,0.162485687936655,0.162392042318595,0.162267589179321,0.16214032731078,0.162037022564251,0.161979227711662,0.161979227711662, +0.237610308065886,0.237610308065886,0.237629355924556,0.237549196550623,0.237396076811253,0.237204664811433,0.237013089091603,0.236858449112932,0.236771816442768,0.236771816442768, +0.341362768314026,0.341362768314026,0.34134727762785,0.3412008430522,0.340959816654364,0.340671387205721,0.340386576397314,0.340156184257348,0.34002583522223,0.34002583522223, +0.473802423136558,0.473802423136558,0.473733596684328,0.473490946594387,0.47312768805904,0.472707444440625,0.472294975029977,0.471956606029628,0.471759852262804,0.471759852262804, +0.632215853027037,0.632215853027037,0.632079480121686,0.631700360388334,0.631173458737831,0.630583482070034,0.630003864068583,0.629512181476196,0.629206774591324,0.629206774591324, +0.810604741510622,0.810604741510622,0.810421006474354,0.809832992482496,0.809091457714144,0.808297167815744,0.807511428554044,0.806800839511605,0.806287786140894,0.806287786140894, + +00:31:46, +0.0909288591013005,0.0909288591013005,0.0909787578197076,0.0909773046488758,0.0909368688700219,0.0908737130280859,0.0908056022782552,0.090749180167825,0.0907174070119305,0.0907174070119305, +0.0909288591013005,0.0909288591013005,0.0909787578197076,0.0909773046488758,0.0909368688700219,0.0908737130280859,0.0908056022782552,0.090749180167825,0.0907174070119305,0.0907174070119305, +0.1143696384845,0.1143696384845,0.114416478389761,0.114403857099037,0.114346430866971,0.11426351534907,0.114176286108521,0.11410472789812,0.114064575625914,0.114064575625914, +0.162608755222953,0.162608755222953,0.162646843429379,0.162609448204568,0.162515812721301,0.162391371597235,0.162264121336997,0.162160825783559,0.162103036046185,0.162103036046185, +0.237741892848889,0.237741892848889,0.237760930740456,0.237680783938698,0.237527693040231,0.237336318414659,0.237144780606657,0.23699017151311,0.236903556278037,0.236903556278037, +0.341494411282098,0.341494411282098,0.34147890866678,0.341332503627029,0.341091536649697,0.340803182227403,0.340518447209969,0.340288117155407,0.340157803508572,0.340157803508572, +0.473921287612706,0.473921287612706,0.473852459690628,0.473609869332714,0.473246713346694,0.472826593743594,0.472414248422474,0.472075982090086,0.47187928815932,0.47187928815932, +0.632306792203571,0.632306792203571,0.632170441235981,0.63179142541757,0.631264679383955,0.630674882141513,0.63009544252739,0.629603911433099,0.629298597993131,0.629298597993131, +0.810654227292623,0.810654227292623,0.810470540510382,0.809882690680939,0.809141368810894,0.808347310460837,0.807561801349606,0.806851419402183,0.806338513302741,0.806338513302741, + +00:31:47, +0.0910367907010323,0.0910367907010323,0.0910867060270683,0.0910852584466961,0.0910448193674312,0.09098165437851,0.0909135322513405,0.0908571001222494,0.0908253211718499,0.0908253211718499, +0.0910367907010323,0.0910367907010323,0.0910867060270683,0.0910852584466961,0.0910448193674312,0.09098165437851,0.0909135322513405,0.0908571001222494,0.0908253211718499,0.0908253211718499, +0.114483807236895,0.114483807236895,0.114530657083338,0.114518040667848,0.114460614947428,0.114377696787567,0.114290463391724,0.114218901243243,0.114178746635346,0.114178746635346, +0.162732502007817,0.162732502007817,0.162770589604201,0.162733200220721,0.162639574902682,0.162515145832322,0.162387907219439,0.162284620890698,0.162226836286137,0.162226836286137, +0.237873441781363,0.237873441781363,0.237892469724491,0.237812335513069,0.237659273474472,0.23746793624281,0.23727643636498,0.237121858170669,0.237035260378241,0.237035260378241, +0.341625995182768,0.341625995182768,0.341610480669289,0.34146410517304,0.341223197608097,0.340934918195776,0.34065025895039,0.340419990964362,0.340289712695522,0.340289712695522, +0.47404008254122,0.47404008254122,0.47397125317708,0.473728722530911,0.473365669041443,0.472945673384369,0.472533452081003,0.472195288355547,0.471998654224375,0.471998654224375, +0.63239766945717,0.63239766945717,0.632261340431883,0.631882428462894,0.631355837936845,0.630766219989796,0.63018695863179,0.629695578922697,0.629390358857207,0.629390358857207, +0.810703676567702,0.810703676567702,0.810520038007866,0.809932352217861,0.809191243082338,0.808397416100401,0.807612136959417,0.806901961944353,0.806389203000745,0.806389203000745, + +00:31:48, +0.091144750965552,0.091144750965552,0.0911946828734147,0.091193240889886,0.091152798541738,0.0910896244524613,0.0910214909978165,0.0909650488913765,0.0909332641697568,0.0909332641697568, +0.091144750965552,0.091144750965552,0.0911946828734147,0.091193240889886,0.091152798541738,0.0910896244524613,0.0910214909978165,0.0909650488913765,0.0909332641697568,0.0909332641697568, +0.114597991272807,0.114597991272807,0.114644851043932,0.114632239514577,0.114574814338234,0.114491893581689,0.114404656078084,0.114333090030601,0.114292933108958,0.114292933108958, +0.162856240505944,0.162856240505944,0.162894327492315,0.162856943966963,0.16276332884452,0.162638911866272,0.162511684939703,0.162408407867188,0.162350628412997,0.162350628412997, +0.238004954883621,0.238004954883621,0.23802397289695,0.237943851293977,0.237790818134145,0.237599518315964,0.237408056386563,0.237253509105527,0.237166928763257,0.237166928763257, +0.341757520074794,0.341757520074794,0.341741993694086,0.341595647748897,0.341354799588182,0.341066595169405,0.340782011677091,0.34055180574269,0.340421562841537,0.340421562841537, +0.474158808005383,0.474158808005383,0.474089977226909,0.473847506272197,0.473484555226524,0.473064683446217,0.472652586088863,0.472314524909337,0.472117950541314,0.472117950541314, +0.632488484869435,0.632488484869435,0.632352177790968,0.631973369605947,0.631446934478259,0.630857495696778,0.630278412463817,0.629787184027145,0.629482057265784,0.629482057265784, +0.810753089386427,0.810753089386427,0.81056949901741,0.809981977144028,0.809241080579457,0.808447484785654,0.807662435434932,0.806952467189782,0.80643985528673,0.80643985528673, + +00:31:49, +0.0912527398333428,0.0912527398333428,0.0913026882972568,0.091301251916944,0.0912608063313984,0.0911976231883352,0.0911294784560134,0.0910730264134823,0.0910412359438964,0.0910412359438964, +0.0912527398333428,0.0912527398333428,0.0913026882972568,0.091301251916944,0.0912608063313984,0.0911976231883352,0.0911294784560134,0.0910730264134823,0.0910412359438964,0.0910412359438964, +0.114712190545488,0.114712190545488,0.114759060224818,0.114746453592477,0.114689028992589,0.11460610568456,0.114518864120647,0.114447294213175,0.114407134999697,0.114407134999697, +0.16297997069926,0.16297997069926,0.163018057075649,0.162980679425186,0.162887074528637,0.162762669680819,0.162635454479431,0.162532186694596,0.162474412408286,0.162474412408286, +0.238136432175977,0.238136432175977,0.238155440278123,0.238075331301662,0.237922327039417,0.237731064654202,0.237539640691395,0.2373851243376,0.237298561452962,0.237298561452962, +0.341888986016873,0.341888986016873,0.341873447799816,0.341727131413201,0.341486342648506,0.341198213206793,0.340913705448527,0.340683561548804,0.340553354005007,0.340553354005007, +0.474277464088357,0.474277464088357,0.474208631923221,0.473966220639669,0.473603371985053,0.473183624012284,0.472771650529231,0.472433691834662,0.472237177193365,0.472237177193365, +0.632579238521834,0.632579238521834,0.632442953394675,0.632064248928233,0.631537969089817,0.630948709344216,0.630369804105367,0.629878726828463,0.629573693300961,0.629573693300961, +0.810802465799277,0.810802465799277,0.81061892358953,0.810031565510119,0.809290881353146,0.808497516567724,0.807712696827514,0.807002935190047,0.806490470212426,0.806490470212426, + +00:31:50, +0.091360757242956,0.091360757242956,0.0914107222371721,0.0914092914664361,0.0913688426749364,0.0913056505245946,0.091237494564329,0.0911810326269104,0.0911492364325821,0.0911492364325821, +0.091360757242956,0.091360757242956,0.0914107222371721,0.0914092914664361,0.0913688426749364,0.0913056505245946,0.091237494564329,0.0911810326269104,0.0911492364325821,0.0911492364325821, +0.114826405008258,0.114826405008258,0.114873284579332,0.114860682854865,0.114803258863756,0.11472033304937,0.114633087472524,0.114561513744012,0.114521352260572,0.114521352260572, +0.163103692569735,0.163103692569735,0.163141778336177,0.163104406577329,0.163010811936903,0.162886419257743,0.16275921582031,0.162655957354532,0.162598188253574,0.162598188253574, +0.238267873678741,0.238267873678741,0.238286871888297,0.238206775556363,0.238053800210456,0.237862575277604,0.237671189299466,0.237516703886808,0.237430158467234,0.237430158467234, +0.342020393067635,0.342020393067635,0.342004843045059,0.341858556224486,0.341617826847558,0.34132977236638,0.341045340323086,0.340815258441055,0.340685086244263,0.340685086244263, +0.474396050873186,0.474396050873186,0.474327217349002,0.474084865716303,0.473722119400026,0.473302495165596,0.472890645485164,0.472552789214608,0.472356334263631,0.472356334263631, +0.632669930495699,0.632669930495699,0.63253366732431,0.632155066511122,0.631628941853006,0.631039861013737,0.630461133638205,0.629970207408534,0.629665267044699,0.629665267044699, +0.810851805856642,0.810851805856642,0.810668311774652,0.810081117366721,0.809340645454207,0.808547511497651,0.807762921188435,0.807053365996636,0.806541047829475,0.806541047829475, + +00:31:51, +0.0914688031330108,0.0914688031330108,0.0915187846318065,0.0915173594769965,0.0914769075109442,0.0914137063997708,0.0913455392612292,0.0912890674700728,0.0912572655741951,0.0912572655741951, +0.0914688031330108,0.0914688031330108,0.0915187846318065,0.0915173594769965,0.0914769075109442,0.0914137063997708,0.0913455392612292,0.0912890674700728,0.0912572655741951,0.0912572655741951, +0.114940634614495,0.114940634614495,0.114987524060875,0.114974927255121,0.114917503905061,0.11483457562937,0.11474732608689,0.114675748576222,0.114635584844656,0.114635584844656, +0.163227406099384,0.163227406099384,0.163265491255916,0.163228125405374,0.163134541051232,0.163010160578867,0.162882968944072,0.162779719828651,0.162721955930473,0.162721955930473, +0.238399279412227,0.238399279412227,0.23841826774776,0.238338184078319,0.23818523766743,0.237994050206248,0.237802702230769,0.237648247773069,0.237561719825951,0.237561719825951, +0.342151741285647,0.342151741285647,0.34213617948833,0.341989922241226,0.341749252243765,0.341461272706542,0.341176916359095,0.340946896477729,0.340816759617571,0.340816759617571, +0.474514568442792,0.474514568442792,0.474445733587114,0.474203441584956,0.473840797554321,0.473421296989059,0.473009571039599,0.472671817132141,0.472475421835099,0.472475421835099, +0.632760560872227,0.632760560872227,0.632624319661044,0.63224582243585,0.631719852849178,0.631130950786828,0.630552401143958,0.630061625849108,0.629756778578828,0.629756778578828, +0.810901109608822,0.810901109608822,0.810717663623114,0.810130632764332,0.809390372933354,0.808597469626381,0.807813108568877,0.807103759660943,0.806591588189425,0.806591588189425, + +00:31:52, +0.0915768774421942,0.0915768774421942,0.0916268754198733,0.0916254558873272,0.0915850007780817,0.0915217907524626,0.0914536124852479,0.091397130881449,0.0913653233071844,0.0913653233071844, +0.0915768774421942,0.0915768774421942,0.0916268754198733,0.0916254558873272,0.0915850007780817,0.0915217907524626,0.0914536124852479,0.091397130881449,0.0913653233071844,0.0913653233071844, +0.115054879317647,0.115054879317647,0.115101778622913,0.11508918674669,0.115031764069896,0.114948833377878,0.114861579916983,0.114789998662979,0.114749832705087,0.114749832705087, +0.163351111270266,0.163351111270266,0.163389195816929,0.163351835891346,0.163258261853581,0.163133893626061,0.163006713832492,0.162903474098655,0.162845715420642,0.162845715420642, +0.238530649396744,0.238530649396744,0.238549627876799,0.238469556887769,0.238316639430504,0.238125489460215,0.237934179505293,0.237779756016301,0.237693245548991,0.237693245548991, +0.342283030729412,0.342283030729412,0.342267457188081,0.342121229521826,0.341880618895488,0.341592714285589,0.341308433614816,0.341078475717049,0.340948374183132,0.340948374183132, +0.474633016879977,0.474633016879977,0.474564180720304,0.474321948328366,0.473959406530693,0.473540029565459,0.473128427275353,0.472790775670107,0.472594439990634,0.472594439990634, +0.632851129732484,0.632851129732484,0.632714910485916,0.632336516783521,0.631810702159553,0.631221978744848,0.63064360670412,0.630152982231801,0.629848227985039,0.629848227985039, +0.81095037710603,0.81095037710603,0.810766979185165,0.810180111753364,0.809440063841212,0.808647391004774,0.807863259019933,0.807154116234274,0.806642091343735,0.806642091343735, + +00:31:53, +0.0916849801092613,0.0916849801092613,0.0917349945401541,0.091733580636198,0.0916931224150766,0.0916299035213368,0.0915617141749867,0.0915052227995867,0.0914734095700672,0.0914734095700672, +0.0916849801092613,0.0916849801092613,0.0917349945401541,0.091733580636198,0.0916931224150766,0.0916299035213368,0.0915617141749867,0.0915052227995867,0.0914734095700672,0.0914734095700672, +0.11516913907122,0.11516913907122,0.115216048218974,0.115203461283079,0.115146039311714,0.115063106248274,0.114975848916105,0.11490426395752,0.114864095795067,0.114864095795067, +0.163474808064482,0.163474808064482,0.163512892001322,0.163475538017317,0.163381974325952,0.163257618381237,0.163130450467392,0.163027220146289,0.162969466705784,0.162969466705784, +0.238661983652604,0.238661983652604,0.238680952295701,0.238600894004952,0.238448005519847,0.238256893059584,0.238065621143029,0.237911228636424,0.237824735656233,0.237824735656233, +0.342414261457367,0.342414261457367,0.342398676202699,0.342252478124632,0.342011926861026,0.341724097161769,0.341439892148446,0.341209996217176,0.341079929999086,0.341079929999086, +0.474751396267423,0.474751396267423,0.474682558831197,0.474440386029149,0.474077946411779,0.473658692977462,0.473247214275126,0.472909664911235,0.472713388812983,0.472713388812983, +0.6329416371574,0.6329416371574,0.63280543987983,0.632427149635101,0.631901489865214,0.631312944969016,0.630734750400051,0.630244276638093,0.629939615344894,0.629939615344894, +0.810999608398391,0.810999608398391,0.810816258510966,0.810229554384138,0.809489718228315,0.8086972756836,0.807913372592606,0.807204435767845,0.806692557343776,0.806692557343776, + +00:31:54, +0.0917931110730348,0.0917931110730348,0.091843141931498,0.0918417336624467,0.0918012723607246,0.0917380446451281,0.0916698442691151,0.0916133431631014,0.0915815243014282,0.0915815243014282, +0.0917931110730348,0.0917931110730348,0.091843141931498,0.0918417336624467,0.0918012723607246,0.0917380446451281,0.0916698442691151,0.0916133431631014,0.0915815243014282,0.0915815243014282, +0.115283413828786,0.115283413828786,0.115330332802649,0.11531775081786,0.115260329584033,0.115177394194002,0.115090133037623,0.115018544413148,0.114978374067861,0.114978374067861, +0.16359849646418,0.16359849646418,0.163636579791243,0.163599231765399,0.163505678450392,0.163381334826353,0.163254178830637,0.163150957953343,0.163093209767645,0.163093209767645, +0.238793282200115,0.238793282200115,0.238812241024751,0.238732195450105,0.238579335955624,0.238388261024435,0.238197027163969,0.238042665653356,0.237956190167558,0.237956190167558, +0.342545433527887,0.342545433527887,0.342529836590508,0.342383668107921,0.342143176198611,0.341855421393267,0.341571292018123,0.341341458036206,0.341211427123509,0.341211427123509, +0.474869706687693,0.474869706687693,0.474800868002297,0.474558754769804,0.474196417280096,0.473777287307615,0.473365932121496,0.473028484938132,0.472832268384774,0.472832268384774, +0.633032083227771,0.633032083227771,0.632895907923555,0.632517721071427,0.631992216047112,0.631403849540421,0.630825832312978,0.630335509149331,0.630030940739817,0.630030940739817, +0.81104880353594,0.81104880353594,0.81086550165059,0.810278960706886,0.809539336145111,0.808747123713537,0.807963449337809,0.80725471831278,0.806742986240823,0.806742986240823, + +00:31:55, +0.0919012702724055,0.0919012702724055,0.0919513175328223,0.0919499149049788,0.0919094505538891,0.0918462140626391,0.0917780027063707,0.0917214919106763,0.0916896674399204,0.0916896674399204, +0.0919012702724055,0.0919012702724055,0.0919513175328223,0.0919499149049788,0.0919094505538891,0.0918462140626391,0.0917780027063707,0.0917214919106763,0.0916896674399204,0.0916896674399204, +0.115397703543983,0.115397703543983,0.115444632327594,0.115432055304667,0.115374634840436,0.115291697168569,0.115204432234966,0.115132839983227,0.115092667476799,0.115092667476799, +0.16372217645155,0.16372217645155,0.163760259168888,0.163722917117752,0.163629374208989,0.163505042943409,0.163377898904136,0.16327468750165,0.163216944588018,0.163216944588018, +0.238924545059586,0.238924545059586,0.238943494084234,0.238863461243464,0.238710630758001,0.238519593374845,0.238328397588103,0.238174067087018,0.238087609102844,0.238087609102844, +0.342676546999281,0.342676546999281,0.342660938409767,0.34251479952991,0.342274366966414,0.341986687038202,0.341702633281916,0.341472861232173,0.341342865614415,0.341342865614415, +0.474987948223229,0.474987948223229,0.47491910831599,0.474677054632707,0.474314819218042,0.473895812638347,0.473484580896922,0.473147235833286,0.472951078788516,0.472951078788516, +0.633122468024264,0.633122468024264,0.63298631469773,0.6326082311732,0.632082880786066,0.631494692540019,0.630916852523992,0.63042667984673,0.630122204251098,0.630122204251098, +0.811097962568625,0.811097962568625,0.810914708654019,0.810328330771752,0.809588917641958,0.808796935145178,0.808013489306365,0.807304963920115,0.806793378086068,0.806793378086068, + +00:31:56, +0.092009457646332,0.092009457646332,0.0920595212831118,0.0920581243027677,0.0920176569335015,0.0919544117127401,0.0918861894255585,0.0918296689810627,0.0917978389242643,0.0917978389242643, +0.092009457646332,0.092009457646332,0.0920595212831118,0.0920581243027677,0.0920176569335015,0.0919544117127401,0.0918861894255585,0.0918296689810627,0.0917978389242643,0.0917978389242643, +0.115512008170508,0.115512008170508,0.115558946747528,0.115546374697199,0.115488955034566,0.115406015125547,0.115318746461628,0.115247150621188,0.115206975975272,0.115206975975272, +0.163845848008827,0.163845848008827,0.163883930116492,0.163846594056577,0.163753061583879,0.163628742714451,0.163501610669843,0.163398408773089,0.163340671148739,0.163340671148739, +0.239055772251326,0.239055772251326,0.239074711494434,0.238994691405266,0.238841889947142,0.238650890130893,0.238459732435422,0.238305432957328,0.238218992481971,0.238218992481971, +0.342807601929794,0.342807601929794,0.342791981718669,0.342645872448748,0.342405499222541,0.342117894154633,0.341833915997836,0.341604205863047,0.341474245529752,0.341474245529752, +0.475106120956355,0.475106120956355,0.475037279854544,0.474795285700119,0.474433152307896,0.474014269051966,0.473603160683746,0.473265917679069,0.473069820106597,0.473069820106597, +0.633212791627407,0.633212791627407,0.63307666028286,0.63269868002099,0.63217348416276,0.631585474048629,0.631007811114054,0.630517788811368,0.630213405959898,0.630213405959898, +0.811147085546306,0.811147085546306,0.810963879571152,0.810377664628795,0.809638462769124,0.808846710029024,0.80806349254901,0.807355172640797,0.806843732930607,0.806843732930607, + +00:31:57, +0.0921176731338405,0.0921176731338405,0.0921677531214192,0.0921663617948545,0.0921258914385608,0.0920626375343692,0.0919944043655516,0.0919378743130795,0.0919060386932484,0.0919060386932484, +0.0921176731338405,0.0921176731338405,0.0921677531214192,0.0921663617948545,0.0921258914385608,0.0920626375343692,0.0919944043655516,0.0919378743130795,0.0919060386932484,0.0919060386932484, +0.115626327662124,0.115626327662124,0.115673276016233,0.115660708949218,0.115603290120131,0.11552034801857,0.115433075671165,0.115361476280522,0.115321299516738,0.115321299516738, +0.163969511118288,0.163969511118288,0.164007592616338,0.16397026256412,0.163876740557237,0.163752434121568,0.163625314109755,0.163522121749584,0.163464389431689,0.163464389431689, +0.23918696379564,0.23918696379564,0.239205893275633,0.239125885955745,0.238973113543211,0.238782151312657,0.238591031725915,0.238436763284206,0.238350340324819,0.238350340324819, +0.342938598377608,0.342938598377608,0.342922966575346,0.342776886922525,0.342536573025034,0.342249042800552,0.341965140223826,0.341735491986735,0.341605566927409,0.341605566927409, +0.475224224969275,0.475224224969275,0.475155382700105,0.474913448054179,0.474551416631818,0.474132656630663,0.473721671564189,0.473384530557731,0.473188492421289,0.473188492421289, +0.633303054117601,0.633303054117601,0.633166944759318,0.632789067695233,0.632264026257747,0.631676194146942,0.631098708163989,0.630608836124194,0.630304545947239,0.630304545947239, +0.811196172518756,0.811196172518756,0.811013014451797,0.810426962327981,0.809687971576793,0.808896448415489,0.808113459116388,0.807405344525682,0.80689405082545,0.80689405082545, + +00:31:58, +0.0922259166740252,0.0922259166740252,0.0922760129868651,0.0922746273203481,0.0922341540081338,0.0921708914665323,0.092102647465291,0.0920461078456135,0.092014266685729,0.092014266685729, +0.0922259166740252,0.0922259166740252,0.0922760129868651,0.0922746273203481,0.0922341540081338,0.0921708914665323,0.092102647465291,0.0920461078456135,0.092014266685729,0.092014266685729, +0.115740661972656,0.115740661972656,0.115787620087554,0.115775058014548,0.115717640050904,0.115634695801335,0.115547419817198,0.115475816914785,0.115435638054718,0.115435638054718, +0.164093165762255,0.164093165762255,0.164131246650749,0.164093922622669,0.164000411111287,0.163876117146893,0.163749009205915,0.163645826413101,0.163588099418793,0.163588099418793, +0.239318119712834,0.239318119712834,0.239337039448113,0.239257044915134,0.239104301566373,0.238913376940214,0.238722295479574,0.23856805808757,0.238481652651266,0.238481652651266, +0.343069536400839,0.343069536400839,0.343053893037865,0.342907843009262,0.342667588431872,0.342380133033888,0.342096306017769,0.341866719661081,0.341736829865209,0.341736829865209, +0.475342260344075,0.475342260344075,0.475273416934703,0.475031541776909,0.474669612271849,0.474250975456508,0.473840113620354,0.473503074551405,0.473307095814744,0.473307095814744, +0.633393255575112,0.633393255575112,0.633257168207343,0.632879394276234,0.632354507151446,0.631766852915514,0.631189543754492,0.630699821866021,0.630395624294014,0.630395624294014, +0.81124522353566,0.81124522353566,0.811062113345676,0.810476223919193,0.809737444115055,0.808946150354898,0.808163389059056,0.807455479625538,0.806944331821517,0.806944331821517, + +00:31:59, +0.0923341882060479,0.0923341882060479,0.0923843008186377,0.0923829208184251,0.0923424445813551,0.0922791734483032,0.0922109186637851,0.0921543695176192,0.0921225228406301,0.0921225228406301, +0.0923341882060479,0.0923341882060479,0.0923843008186377,0.0923829208184251,0.0923424445813551,0.0922791734483032,0.0922109186637851,0.0921543695176192,0.0921225228406301,0.0921225228406301, +0.115855011055994,0.115855011055994,0.1159019789154,0.115889421847077,0.11583200478072,0.115749058427605,0.11566177885341,0.115590172477598,0.115549991542793,0.115549991542793, +0.164216811923093,0.164216811923093,0.164254892202093,0.164217574214557,0.164124073228291,0.163999791772602,0.163872695940408,0.16376952274565,0.163711801092019,0.163711801092019, +0.239449240023214,0.239449240023214,0.239468150032156,0.239388168303668,0.239235454036788,0.23904456703364,0.238853523716386,0.23869931738734,0.238612929481194,0.238612929481194, +0.343200416057542,0.343200416057542,0.343184761164228,0.34303874076692,0.34279854550097,0.342511164912508,0.342227413437484,0.341997888943866,0.341868034400912,0.341868034400912, +0.475460227162722,0.475460227162722,0.475391382640247,0.475149566950211,0.474787739309911,0.474369225611454,0.473958486934228,0.473621549742106,0.473425630368997,0.473425630368997, +0.633483396080074,0.633483396080074,0.633347330707044,0.632969659844165,0.632444926924144,0.631857450434768,0.631280317966123,0.630790746117531,0.630486641080982,0.630486641080982, +0.811294238646616,0.811294238646616,0.811111176302423,0.810525449452222,0.809786880433918,0.808995815897488,0.808213282427484,0.807505577991044,0.806994575969639,0.806994575969639, + +00:32:00, +0.0924424876691385,0.0924424876691385,0.092492616555993,0.0924912422283301,0.0924507630974271,0.0923874834188231,0.0923192179001104,0.0922626592681191,0.0922308070969436,0.0922308070969436, +0.0924424876691385,0.0924424876691385,0.092492616555993,0.0924912422283301,0.0924507630974271,0.0923874834188231,0.0923192179001104,0.0922626592681191,0.0922308070969436,0.0922308070969436, +0.115969374866089,0.115969374866089,0.116016352453743,0.116003800400757,0.115946384263476,0.115863435851203,0.115776152733548,0.115704542922643,0.115664359934611,0.115664359934611, +0.164340449583209,0.164340449583209,0.164378529252781,0.164341217322159,0.164247726890559,0.164123457980916,0.163996374295362,0.163893210729287,0.163835494433381,0.163835494433381, +0.239580324747081,0.239580324747081,0.239599225048039,0.239519256141577,0.239366570974619,0.239175721613011,0.238984716456342,0.238830541203433,0.23874417083448,0.23874417083448, +0.343331237405704,0.343331237405704,0.343315571012374,0.343169580253393,0.342929444290179,0.342642138494214,0.342358462540724,0.342128999892809,0.341999180592217,0.341999180592217, +0.475578125507063,0.475578125507063,0.475509279898529,0.47526752365587,0.474905797827809,0.474487407177337,0.474076791587677,0.473739956211731,0.473544096165964,0.473544096165964, +0.63357347571249,0.63357347571249,0.633437432338397,0.633059864479067,0.632535285655998,0.631947986784996,0.631371030879311,0.630881608959273,0.63057759638877,0.63057759638877, +0.811343217901135,0.811343217901135,0.811160203371584,0.810574638976777,0.809836280583299,0.809045445093409,0.808263139272049,0.807555639672789,0.807044783320556,0.807044783320556, + +00:32:01, +0.0925508150025941,0.0925508150025941,0.0926009601382546,0.092599591489375,0.0925591094956198,0.0924958213173014,0.0924275451134109,0.0923709770362033,0.092339119393729,0.092339119393729, +0.0925508150025941,0.0925508150025941,0.0926009601382546,0.092599591489375,0.0925591094956198,0.0924958213173014,0.0924275451134109,0.0923709770362033,0.092339119393729,0.092339119393729, +0.116083753356957,0.116083753356957,0.116130740656617,0.116118193629602,0.116060778453132,0.115977828026017,0.115890541411423,0.115818928203667,0.115778743183883,0.115778743183883, +0.164464078725056,0.164464078725056,0.164502157785268,0.164464851927895,0.164371372080442,0.164247115754098,0.164120044252952,0.164016890346109,0.163959179424934,0.163959179424934, +0.239711373904739,0.239711373904739,0.23973026451604,0.239650308449091,0.239497652400025,0.239306840698402,0.239115873719429,0.238961729555769,0.238875376731003,0.238875376731003, +0.343462000503251,0.343462000503251,0.343446322640178,0.343300361526514,0.343060284857286,0.342773053836747,0.342489453385183,0.342260052565563,0.342130268496759,0.342130268496759, +0.475695955458829,0.475695955458829,0.475627108791223,0.475385411975551,0.475023787907229,0.474605520235872,0.474195027662449,0.473858294042058,0.473662493287444,0.473662493287444, +0.633663494552231,0.633663494552231,0.633527473181248,0.633150008260848,0.632625583427032,0.632038462046359,0.631461682574355,0.630972410471664,0.630668490297873,0.630668490297873, +0.811392161348642,0.811392161348642,0.811209194602622,0.810623792542475,0.809885644613028,0.80909503799272,0.808312959643045,0.807605664721275,0.807094953924922,0.807094953924922, + +00:32:02, +0.0926591701457799,0.0926591701457799,0.0927093315048141,0.0927079685409396,0.0926674837152709,0.0926041870830147,0.0925359002428984,0.0924793227610294,0.0924474596701137,0.0924474596701137, +0.0926591701457799,0.0926591701457799,0.0927093315048141,0.0927079685409396,0.0926674837152709,0.0926041870830147,0.0925359002428984,0.0924793227610294,0.0924474596701137,0.0924474596701137, +0.116198146482676,0.116198146482676,0.116245143478121,0.116232601487688,0.116175187303715,0.116092234905998,0.116004944840908,0.115933328274479,0.115893141244382,0.115893141244382, +0.164587699331127,0.164587699331127,0.164625777782051,0.164588478014226,0.164495008780333,0.164370765074455,0.164243705795393,0.16414056157826,0.164082856048781,0.164082856048781, +0.239842387516486,0.239842387516486,0.239861268456437,0.23978132524644,0.239628698333165,0.239437924309885,0.239246995525634,0.239092882464263,0.239006547190643,0.239006547190643, +0.343592705408043,0.343592705408043,0.34357701610545,0.343431084644051,0.343191067260016,0.342903910997781,0.342620386028489,0.34239104701972,0.342261298172109,0.342261298172109, +0.47581371709963,0.47581371709963,0.475744869399883,0.475503231990803,0.475141709629738,0.474723564868659,0.474313195240177,0.473976563314748,0.473780821815117,0.473780821815117, +0.633753452679037,0.633753452679037,0.633617453315312,0.633240091269287,0.632715820317138,0.632128876298885,0.631552273131418,0.631063150734991,0.630759322888654,0.630759322888654, +0.811441069038474,0.811441069038474,0.811258150044908,0.810672910198848,0.809934972572848,0.809144594645396,0.808362743590674,0.807655653186915,0.807145087833301,0.807145087833301, + +00:32:03, +0.0927675530381287,0.0927675530381287,0.0928177305951303,0.0928163733224713,0.0927758856957857,0.0927125806553076,0.0926442832278524,0.092587696381823,0.0925558278652926,0.0925558278652926, +0.0927675530381287,0.0927675530381287,0.0928177305951303,0.0928163733224713,0.0927758856957857,0.0927125806553076,0.0926442832278524,0.092587696381823,0.0925558278652926,0.0925558278652926, +0.116312554197386,0.116312554197386,0.116359560872414,0.116347023929157,0.116289610769309,0.116206656445159,0.116119362975939,0.116047743088951,0.116007554069945,0.116007554069945, +0.164711311383959,0.164711311383959,0.164749389225668,0.164712095563657,0.164618636972671,0.164494405924338,0.164367358904945,0.164264224407924,0.164206524287064,0.164206524287064, +0.239973365602622,0.239973365602622,0.239992236889504,0.239912306553851,0.239759708794197,0.239568972467535,0.239378081894945,0.239223999948834,0.239137682233276,0.239137682233276, +0.343723352177879,0.343723352177879,0.343707651465937,0.343561749663707,0.343321791556028,0.343034710034928,0.342751260528207,0.342521983312811,0.342392269675778,0.342392269675778, +0.475931410510961,0.475931410510961,0.475862561805947,0.475620983783055,0.475259563076789,0.474841541157178,0.474431294402373,0.474094764111345,0.473899081830547,0.473899081830547, +0.633843350172517,0.633843350172517,0.63370737282017,0.633330113584031,0.632805996406077,0.632219229622471,0.631642802630536,0.631153829829406,0.630850094241344,0.630850094241344, +0.811489941019882,0.811489941019882,0.811307069747731,0.810721991995342,0.809984264512414,0.809194115101323,0.808412491165052,0.807705605120034,0.807195185096169,0.807195185096169, + +00:32:04, +0.0928759636191409,0.0928759636191409,0.0929261573487301,0.0929248057734854,0.0928843153766373,0.0928210019735922,0.09275269400762,0.0926960978378773,0.0926642239185285,0.0926642239185285, +0.0928759636191409,0.0928759636191409,0.0929261573487301,0.0929248057734854,0.0928843153766373,0.0928210019735922,0.09275269400762,0.0926960978378773,0.0926642239185285,0.0926642239185285, +0.116426976455293,0.116426976455293,0.116473992793721,0.116461460908211,0.116404048804066,0.116321092597577,0.116233795770517,0.116162172601021,0.116121981614472,0.116121981614472, +0.164834914866133,0.164834914866133,0.164872992098705,0.164835704558736,0.164742256639936,0.164618038286138,0.16449100356391,0.16438787881733,0.16433018412197,0.16433018412197, +0.240104308183445,0.240104308183445,0.240123169835515,0.240043252391549,0.239890683803277,0.239699985191422,0.239509132847346,0.239355082029396,0.239268781878781,0.239268781878781, +0.343853940870492,0.343853940870492,0.343838228779324,0.343692356643123,0.343452457802918,0.343165451005739,0.342882076941841,0.342652861502299,0.34252318306521,0.34252318306521, +0.476049035774196,0.476049035774196,0.475980186090735,0.475738667433621,0.475377348329712,0.474959449182793,0.474549325230434,0.474212896513275,0.47401727341518,0.47401727341518, +0.633933187112149,0.633933187112149,0.633797231775275,0.633420075284595,0.632896111773482,0.632309522096884,0.631733271151612,0.631244447834933,0.630940804436042,0.630940804436042, +0.811538777342032,0.811538777342032,0.811355953760292,0.810771037981316,0.810033520481297,0.809243599410299,0.808462202416207,0.807755520570868,0.807245245763913,0.807245245763913, + +00:32:05, +0.0929844018283844,0.0929844018283844,0.0930346117052077,0.0930332658335643,0.0929927726973663,0.0929294509773483,0.0928611325216161,0.0928045270685531,0.0927726477691517,0.0927726477691517, +0.0929844018283844,0.0929844018283844,0.0930346117052077,0.0930332658335643,0.0929927726973663,0.0929294509773483,0.0928611325216161,0.0928045270685531,0.0927726477691517,0.0927726477691517, +0.116541413210662,0.116541413210662,0.116588439196328,0.116575912379116,0.116518501362198,0.116435543317392,0.116348243178702,0.116276616764686,0.116236423831925,0.116236423831925, +0.164958509760271,0.164958509760271,0.164996586383785,0.164959304982053,0.164865867764652,0.164741662142293,0.164614639754636,0.164511524788752,0.164453835535732,0.164453835535732, +0.240235215279249,0.240235215279249,0.24025406731474,0.24017416277976,0.240021623380559,0.239830962501616,0.239640148402823,0.239486128725867,0.239399846147033,0.239399846147033, +0.34398447154355,0.34398447154355,0.343968748103228,0.343822905639876,0.343583066058222,0.343296133967699,0.343012835326829,0.342783681645589,0.342654038397791,0.342654038397791, +0.476166592970595,0.476166592970595,0.476097742335448,0.475856283023694,0.475495065469724,0.475077289026751,0.474667287805639,0.474330960601846,0.474135396650344,0.474135396650344, +0.634022963577281,0.634022963577281,0.633887030259951,0.633509976450365,0.632986166498851,0.632399753801759,0.631823678774417,0.631335004831463,0.631031453552719,0.631031453552719, +0.811587578054002,0.811587578054002,0.811404802131705,0.810820048206041,0.810082740528978,0.809293047622036,0.80851187739408,0.807805399589568,0.807295269886833,0.807295269886833, + +00:32:06, +0.0930928676054951,0.0930928676054951,0.0931430936042251,0.0931417534423585,0.0931012575975809,0.0930379276061233,0.0929695987093231,0.0929129840132788,0.0928810993565602,0.0928810993565602, +0.0930928676054951,0.0930928676054951,0.0931430936042251,0.0931417534423585,0.0931012575975809,0.0930379276061233,0.0929695987093231,0.0929129840132788,0.0928810993565602,0.0928810993565602, +0.116655864417823,0.116655864417823,0.116702900034583,0.116690378296201,0.116632968397981,0.116550008558807,0.116462705154622,0.116391075534008,0.116350880676331,0.116350880676331, +0.165082096049039,0.165082096049039,0.165120172063577,0.165082896816241,0.164989470329384,0.164865277475282,0.164738267459511,0.164635162304504,0.164577478510623,0.164577478510623, +0.240366086910329,0.240366086910329,0.24038492934745,0.240305037738705,0.240152527546198,0.239961904418188,0.23977112858136,0.239617140058159,0.23953087505791,0.23953087505791, +0.34411494425466,0.34411494425466,0.344099209495207,0.343953396711479,0.343713616379407,0.34342675897823,0.343143535740549,0.342914443800021,0.34278483573084,0.34278483573084, +0.476284082181297,0.476284082181297,0.476215230621172,0.475973830634354,0.475612714577922,0.475195060770179,0.474785182209149,0.47444895645825,0.474253451617251,0.474253451617251, +0.63411267964713,0.63411267964713,0.633976768353388,0.633599817160598,0.633076160661555,0.632489924816602,0.631914025578593,0.631425500898758,0.631122041671211,0.631122041671211, +0.811636343204785,0.811636343204785,0.811453614910999,0.810869022718705,0.810131924704853,0.809342459786158,0.808561516148525,0.807855242226195,0.807345257515141,0.807345257515141, + +00:32:07, +0.0932013608901762,0.0932013608901762,0.0932516029855117,0.0932502685395857,0.093209770016957,0.0931464317995322,0.093078092510291,0.0930214686115507,0.0929895786202196,0.0929895786202196, +0.0932013608901762,0.0932013608901762,0.0932516029855117,0.0932502685395857,0.093209770016957,0.0931464317995322,0.093078092510291,0.0930214686115507,0.0929895786202196,0.0929895786202196, +0.116770330031168,0.116770330031168,0.116817375262898,0.116804858613856,0.116747449865753,0.116664488276086,0.116577181652464,0.116505548863112,0.116465352101779,0.116465352101779, +0.165205673715145,0.165205673715145,0.165243749120791,0.165206480043975,0.165113064316741,0.164988884267626,0.164861886660967,0.164758791346945,0.16470111302896,0.16470111302896, +0.240496923096976,0.240496923096976,0.240515755953912,0.240435877288606,0.240283396320345,0.240092810961203,0.239902073402939,0.239748116046186,0.239661868631285,0.239661868631285, +0.344245359061363,0.344245359061363,0.344229613012751,0.344083829915381,0.34384410882388,0.343557326094691,0.343274178240313,0.343045148022872,0.342915575121617,0.342915575121617, +0.476401503487326,0.476401503487326,0.476332651028874,0.476091310346561,0.475730295735289,0.475312764494091,0.474903008522011,0.474566884163564,0.474371438396997,0.474371438396997, +0.634202335400784,0.634202335400784,0.634066446134648,0.633689597494418,0.633166094340833,0.632580035220787,0.632004311643652,0.631515936116448,0.631212568871227,0.631212568871227, +0.81168507284329,0.81168507284329,0.811502392147118,0.810917961568408,0.810181073058231,0.809391835952204,0.808611118729307,0.807905048530723,0.80739520869896,0.80739520869896, + +00:32:08, +0.0933098816221985,0.0933098816221985,0.0933601397888646,0.0933588110650314,0.0933183098952379,0.0932549634972575,0.0931866138641373,0.0931299808029323,0.0930980854996632,0.0930980854996632, +0.0933098816221985,0.0933098816221985,0.0933601397888646,0.0933588110650314,0.0933183098952379,0.0932549634972575,0.0931866138641373,0.0931299808029323,0.0930980854996632,0.0930980854996632, +0.116884810005153,0.116884810005153,0.116931864835748,0.116919353286536,0.116861945719914,0.116778982423556,0.116691672626479,0.116620036706186,0.11657983806242,0.11657983806242, +0.165329242741339,0.165329242741339,0.165367317538181,0.165330054647974,0.165236649709374,0.16511248250189,0.164985497341479,0.164882411898476,0.164824739073103,0.164824739073103, +0.24062772385948,0.24062772385948,0.240646547154393,0.240566681449682,0.24041422972315,0.240223682150729,0.240032982887541,0.239879056709862,0.239792826887033,0.239792826887033, +0.344375716021137,0.344375716021137,0.34435995871329,0.344214205308969,0.343974543448985,0.34368783537438,0.343404762883372,0.343175794371357,0.343046256627316,0.343046256627316, +0.476518856969588,0.476518856969588,0.476450003639404,0.476208722241158,0.475847809022687,0.475430400279381,0.475020766825151,0.474684743798744,0.47448935707056,0.47448935707056, +0.634291930917202,0.634291930917202,0.634156063682666,0.633779317530822,0.633255967615796,0.63267008509356,0.632094537048974,0.631606310564034,0.631303035232344,0.631303035232344, +0.811733767018337,0.811733767018337,0.811551133888919,0.810966864804163,0.810230185638337,0.809441176169626,0.808660685186106,0.807954818553038,0.807445123488328,0.807445123488328, + +00:32:09, +0.0934184297414004,0.0934184297414004,0.0934687039541485,0.0934673809585484,0.0934268771722344,0.0933635226390493,0.0932951627105472,0.0932385205270549,0.0932066199344918,0.0932066199344918, +0.0934184297414004,0.0934184297414004,0.0934687039541485,0.0934673809585484,0.0934268771722344,0.0933635226390493,0.0932951627105472,0.0932385205270549,0.0932066199344918,0.0932066199344918, +0.116999304294293,0.116999304294293,0.117046368707669,0.117033862268756,0.116976455914929,0.11689349095561,0.11680617803098,0.11673453901748,0.116694338512469,0.116694338512469, +0.165452803110413,0.165452803110413,0.165490877298542,0.165453620610997,0.165360226489977,0.16523607216068,0.165109099483565,0.165006023941542,0.164948356625456,0.164948356625456, +0.24075848921813,0.24075848921813,0.240777302969157,0.240697450242149,0.240545027774761,0.24035451800683,0.240163857055146,0.240009962069097,0.239923749845028,0.239923749845028, +0.344506015191398,0.344506015191398,0.344490246654187,0.344344522949565,0.344104920312001,0.343818286874528,0.343535289726913,0.343306382902627,0.343176880305071,0.343176880305071, +0.476636142708872,0.476636142708872,0.476567288533497,0.476326066398873,0.475965254520865,0.475547968206829,0.475138457199382,0.474802535444635,0.474607207718803,0.474607207718803, +0.634381466275212,0.634381466275212,0.634245621076243,0.633868977348676,0.633345780565425,0.632760074514037,0.632184701873811,0.631696624320886,0.63139344083401,0.63139344083401, +0.811782425778664,0.811782425778664,0.811599840185175,0.8110157324749,0.810279262494307,0.809490480487788,0.808710215568516,0.808004552342942,0.807495001933194,0.807495001933194, + +00:32:10, +0.0935270051876878,0.0935270051876878,0.0935772954212953,0.0935759781600573,0.0935354717878251,0.0934721091647252,0.0934037389892735,0.0933470877236173,0.0933151818643737,0.0933151818643737, +0.0935270051876878,0.0935270051876878,0.0935772954212953,0.0935759781600573,0.0935354717878251,0.0934721091647252,0.0934037389892735,0.0933470877236173,0.0933151818643737,0.0933151818643737, +0.11711381285317,0.11711381285317,0.11716088683326,0.117148385515096,0.117090980405322,0.117008013826699,0.116920697820345,0.116849055751307,0.116808853406203,0.116808853406203, +0.165576354805203,0.165576354805203,0.16561442838471,0.165577177915846,0.165483794641285,0.165359653226647,0.165232693069785,0.16512962745863,0.165071965668465,0.165071965668465, +0.240889219193211,0.240889219193211,0.240908023418465,0.240828183686223,0.240675790495324,0.240485318549569,0.240294695925733,0.240140832143801,0.240054637525141,0.240054637525141, +0.344636256629495,0.344636256629495,0.344620476892745,0.344474782894428,0.344235239470143,0.343948680652306,0.343665758828062,0.343436913673772,0.343307446211951,0.343307446211951, +0.476753360785852,0.476753360785852,0.476684505791769,0.476443342900316,0.476082632310454,0.475665468357097,0.4752560797254,0.47492025918196,0.474724990422471,0.474724990422471, +0.634470941553514,0.634470941553514,0.634335118394055,0.633958577026718,0.63343553326857,0.632850003561203,0.632274806197286,0.631786877466245,0.63148378575554,0.63148378575554, +0.811831049172923,0.811831049172923,0.811648511084573,0.811064564629463,0.810328303675192,0.80953974895597,0.808759709926043,0.808054249950148,0.80754484408342,0.80754484408342, + +00:32:11, +0.0936356079010341,0.0936356079010341,0.0936859141303047,0.093684602609546,0.0936440936819557,0.0935807230141703,0.0935123426401363,0.0934556823323857,0.0934237712290448,0.0934237712290448, +0.0936356079010341,0.0936356079010341,0.0936859141303047,0.093684602609546,0.0936440936819557,0.0935807230141703,0.0935123426401363,0.0934556823323857,0.0934237712290448,0.0934237712290448, +0.117228335636424,0.117228335636424,0.117275419167182,0.117262922980195,0.117205519145683,0.117122550991339,0.117035231949012,0.116963586862042,0.116923382697963,0.116923382697963, +0.165699897808584,0.165699897808584,0.165737970779565,0.165700726545367,0.165607354146077,0.165483225682481,0.165356278082742,0.165253222432269,0.165195566184619,0.165195566184619, +0.241019913805007,0.241019913805007,0.241038708522578,0.240958881802117,0.240806517904984,0.240616083799007,0.24042549951928,0.240271666953884,0.240185489947243,0.240185489947243, +0.344766440392717,0.344766440392717,0.3447506494862,0.344604985200754,0.344365500980566,0.344079016764821,0.34379617024388,0.343567386741819,0.343437954404965,0.343437954404965, +0.476870511281083,0.476870511281083,0.476801655494722,0.476560551825981,0.476199942471969,0.475782900810731,0.475373634483785,0.475037915091331,0.474842705262195,0.474842705262195, +0.634560356830677,0.634560356830677,0.634424555714646,0.634048116643557,0.633525225803953,0.632939872313914,0.632364850098389,0.631877070079223,0.631574070076125,0.631574070076125, +0.811879637249679,0.811879637249679,0.811697146635715,0.811113361316609,0.81037730922996,0.809588981623365,0.808809168308105,0.808103911424282,0.807594649988782,0.807594649988782, + +00:32:12, +0.0937442378214803,0.0937442378214803,0.0937945600212437,0.0937932542470697,0.0937527427946397,0.0936893641273371,0.0936209736030232,0.0935643042931942,0.0935323879683085,0.0935323879683085, +0.0937442378214803,0.0937442378214803,0.0937945600212437,0.0937932542470697,0.0937527427946397,0.0936893641273371,0.0936209736030232,0.0935643042931942,0.0935323879683085,0.0935323879683085, +0.117342872598761,0.117342872598761,0.11738996566416,0.117377474618758,0.117320072090661,0.117237102404107,0.117149780371481,0.117078132304123,0.11703792634215,0.11703792634215, +0.165823432103476,0.165823432103476,0.165861504466028,0.165824266482445,0.165730904987172,0.165606789510918,0.165479854505081,0.165376808845032,0.165319158156448,0.165319158156448, +0.2411505730738,0.2411505730738,0.241169358301753,0.241089544610041,0.240937210023884,0.240746813775204,0.240556267855761,0.240402466519253,0.240316307131204,0.240316307131204, +0.344896566538287,0.344896566538287,0.344880764491728,0.344735129925675,0.344495704900358,0.344209295269116,0.343926524031367,0.34369780216373,0.343568404941058,0.343568404941058, +0.476987594275005,0.476987594275005,0.476918737722741,0.476677693256247,0.476317185085808,0.475900265648161,0.475491121554999,0.475155503253242,0.474960352318488,0.474960352318488, +0.634649712185145,0.634649712185145,0.634513933116433,0.634137596277672,0.633614858250169,0.6330296808509,0.632454833655986,0.631967202238802,0.631664293874823,0.631664293874823, +0.811928190057416,0.811928190057416,0.81174574688712,0.811162122585012,0.810426279207491,0.809638178539081,0.808858590764039,0.808153536814884,0.807644419698969,0.807644419698969, + +00:32:13, +0.0938528948891346,0.0938528948891346,0.0939032330342469,0.0939019330127514,0.0938614190659577,0.0937980324442456,0.0937296318178895,0.0936729535459438,0.0936410320220358,0.0936410320220358, +0.0938528948891346,0.0938528948891346,0.0939032330342469,0.0939019330127514,0.0938614190659577,0.0937980324442456,0.0937296318178895,0.0936729535459438,0.0936410320220358,0.0936410320220358, +0.117457423694948,0.117457423694948,0.117504526278979,0.11749204038555,0.117434639194969,0.117351668019645,0.117264343042318,0.117192692032052,0.117152484293229,0.117152484293229, +0.165946957672839,0.165946957672839,0.165985029427063,0.165947797710009,0.165854447147432,0.165730344694732,0.165603422319489,0.165500386679534,0.165442741566528,0.165442741566528, +0.241281197019868,0.241281197019868,0.241299972776245,0.241220172130205,0.241067866872163,0.240877508498218,0.240687000955151,0.240533230859814,0.240447089096893,0.240447089096893, +0.345026635123364,0.345026635123364,0.345010821966438,0.34486521712626,0.344625851286547,0.344339516222172,0.344056820247457,0.343828159996408,0.343698797877112,0.343698797877112, +0.477104609847943,0.477104609847943,0.477035752556094,0.476794767271376,0.476434360232255,0.476017562949702,0.47560854101939,0.47527302374807,0.47507793167175,0.47507793167175, +0.634739007695231,0.634739007695231,0.634603250677705,0.634227016007415,0.633704430685682,0.633119429250759,0.632544756948811,0.632057274023835,0.631754457230563,0.631754457230563, +0.81197670764453,0.81197670764453,0.811794311887219,0.81121084848326,0.81047521365658,0.80968733975214,0.808907977343092,0.808203126171409,0.807694153263584,0.807694153263584, + +00:32:14, +0.0939615790441727,0.0939615790441727,0.0940119331095159,0.0940106388467811,0.0939701224360579,0.0939067279049834,0.0938383172247578,0.0937816300306034,0.093749703330165,0.093749703330165, +0.0939615790441727,0.0939615790441727,0.0940119331095159,0.0940106388467811,0.0939701224360579,0.0939067279049834,0.0938383172247578,0.0937816300306034,0.093749703330165,0.093749703330165, +0.117571988879812,0.117571988879812,0.117619100966488,0.117606620235399,0.117549220413383,0.117466247792654,0.117378919916148,0.11730726600039,0.117267056505728,0.117267056505728, +0.166070474499676,0.166070474499676,0.166108545645673,0.166071320211027,0.165977980609761,0.165853891216742,0.165726981508695,0.165623955918431,0.165566316397473,0.165566316397473, +0.241411785663488,0.241411785663488,0.241430551966306,0.241350764382813,0.241198488469961,0.241008167988103,0.240817698837422,0.240663959995472,0.240577835864176,0.240577835864176, +0.345156646205046,0.345156646205046,0.345140821967377,0.344995246859513,0.344755940196095,0.344469679680908,0.344187058949025,0.343958460296692,0.343829133269947,0.343829133269947, +0.477221558080103,0.477221558080103,0.477152700074933,0.476911773951513,0.476551467991477,0.476134792795552,0.475725892957192,0.475390476656079,0.475195443402264,0.475195443402264, +0.63482824343912,0.63482824343912,0.634692508476623,0.63431637591101,0.633793943188829,0.633209117591963,0.63263462005547,0.632147285513047,0.631844560222146,0.631844560222146, +0.812025190059335,0.812025190059335,0.811842841684362,0.811259539059858,0.810524112625938,0.809736465311478,0.808957328094426,0.808252679543224,0.807743850732141,0.807743850732141, + +00:32:15, +0.094070290226838,0.094070290226838,0.0941206601873203,0.0941193716894166,0.094078852845156,0.0940154504497052,0.0939470297637179,0.0938903336872091,0.0938584018327017,0.0938584018327017, +0.094070290226838,0.094070290226838,0.0941206601873203,0.0941193716894166,0.094078852845156,0.0940154504497052,0.0939470297637179,0.0938903336872091,0.0938584018327017,0.0938584018327017, +0.117686568108245,0.117686568108245,0.117733689681595,0.117721214123194,0.117663815700739,0.117580841677899,0.117493510947659,0.117421854163764,0.117381642934238,0.117381642934238, +0.16619398256703,0.16619398256703,0.166232053104906,0.166194833968513,0.166101505357105,0.165977429059808,0.165850532055471,0.165747516544422,0.165689882631943,0.165689882631943, +0.241542339024936,0.241542339024936,0.241561095892188,0.241481321388072,0.241329074837412,0.241138792264914,0.240948361522544,0.24079465394613,0.240708547452918,0.240708547452918, +0.345286599840367,0.345286599840367,0.34527076455153,0.345125219182379,0.344885971685903,0.344599785702177,0.344317240192883,0.344088703121357,0.343959411176322,0.343959411176322, +0.477338439051578,0.477338439051578,0.477269580359297,0.477028713376691,0.476668508443525,0.476251955265794,0.47584317744852,0.475507862057417,0.475312887590196,0.475312887590196, +0.634917419494871,0.634917419494871,0.63478170659122,0.634405676066552,0.63388339583782,0.633298745952855,0.632724423054441,0.632237236785035,0.631934602928247,0.631934602928247, +0.812073637350059,0.812073637350059,0.811891336326813,0.811308194363224,0.810572976164191,0.809785555265946,0.809006643067118,0.808302196979612,0.807793512154073,0.807793512154073, + +00:32:16, +0.0941790283774409,0.0941790283774409,0.0942294142079965,0.0942281314809826,0.0941876102335348,0.0941242000186333,0.0940557693749274,0.0939990644558647,0.0939671274697194,0.0939671274697194, +0.0941790283774409,0.0941790283774409,0.0942294142079965,0.0942281314809826,0.0941876102335348,0.0941242000186333,0.0940557693749274,0.0939990644558647,0.0939671274697194,0.0939671274697194, +0.117801161335199,0.117801161335199,0.117848292379274,0.117835822003887,0.117778425011938,0.117695449630207,0.117608116091601,0.11753645647686,0.117496243533409,0.117496243533409, +0.166317481857986,0.166317481857986,0.166355551787848,0.166318338965518,0.16622502137245,0.166100958206831,0.165974073942631,0.165871068540249,0.165813440252638,0.165813440252638, +0.241672857124481,0.241672857124481,0.241691604574138,0.241611843166181,0.241459625994651,0.241269381348703,0.241078989030486,0.24092531273169,0.240839223882985,0.240839223882985, +0.345416496086295,0.345416496086295,0.345400649775818,0.345255134151735,0.345015945812808,0.344729834342772,0.344447364035776,0.344218888527118,0.344089631652933,0.344089631652933, +0.477455252842344,0.477455252842344,0.477386393489106,0.477145585626823,0.476785481668336,0.476369050440398,0.475960394573377,0.475625180032115,0.475430264315602,0.475430264315602, +0.635006535940413,0.635006535940413,0.6348708450994,0.63449491655201,0.633972788710734,0.633388314411648,0.632814166024074,0.632327127918267,0.632024585427408,0.632024585427408, +0.812122049564849,0.812122049564849,0.811939795862752,0.811356814441693,0.81062180431988,0.809834609664312,0.80905592231016,0.808351678529769,0.807843137578722,0.807843137578722, + +00:32:17, +0.0942877934363593,0.0942877934363593,0.0943381951119486,0.0943369181618716,0.0942963945415447,0.0942329765520571,0.094164535998611,0.0941078222767409,0.0940758801813585,0.0940758801813585, +0.0942877934363593,0.0942877934363593,0.0943381951119486,0.0943369181618716,0.0942963945415447,0.0942329765520571,0.094164535998611,0.0941078222767409,0.0940758801813585,0.0940758801813585, +0.117915768515691,0.117915768515691,0.117962909014559,0.117950443832491,0.117893048301939,0.117810071604467,0.117722735302788,0.11765107289443,0.117610858257956,0.117610858257956, +0.166440972355672,0.166440972355672,0.166479041677629,0.166441835185137,0.166348528638826,0.166224478640755,0.16609760715303,0.165994611888696,0.1659369892423,0.1659369892423, +0.241803339982394,0.241803339982394,0.241822078032401,0.241742329737339,0.241590141961809,0.241399935259518,0.241209581381216,0.24105593637205,0.240969865174238,0.240969865174238, +0.345546334999737,0.345546334999737,0.345530477697096,0.345384991824397,0.345145862633585,0.344859825659423,0.344577430534393,0.344349016570625,0.344219794756411,0.344219794756411, +0.477571999532263,0.477571999532263,0.477503139544168,0.477262390781711,0.47690238774573,0.476486078399214,0.476077544411649,0.475742430660092,0.475547573658417,0.475547573658417, +0.635095592853549,0.635095592853549,0.634959924078942,0.634584097445224,0.634062121885526,0.633477823046432,0.632903849042592,0.632416958991084,0.632114507798046,0.632114507798046, +0.812170426751764,0.812170426751764,0.811988220340276,0.811405399343517,0.810670597141462,0.809883628555257,0.809105165872458,0.808401124242806,0.807892727055347,0.807892727055347, + +00:32:18, +0.0943965853440385,0.0943965853440385,0.0944470028396479,0.094445731672543,0.0944052057096032,0.0943417799903336,0.0942733295750607,0.0942166070900762,0.0941846599078271,0.0941846599078271, +0.0943965853440385,0.0943965853440385,0.0944470028396479,0.094445731672543,0.0944052057096032,0.0943417799903336,0.0942733295750607,0.0942166070900762,0.0941846599078271,0.0941846599078271, +0.118030389604796,0.118030389604796,0.118077539542545,0.118065079564083,0.118007685525766,0.117924707555629,0.117837368536094,0.117765703371283,0.117725487062656,0.117725487062656, +0.166564454043256,0.166564454043256,0.166602522757419,0.166565322610507,0.166472027139302,0.166347990344564,0.166221131669565,0.166118146572586,0.166060529583716,0.166060529583716, +0.241933787618941,0.241933787618941,0.241952516287219,0.241872781121743,0.241720622759015,0.241530454017408,0.241340138594697,0.241186524887109,0.241100471346537,0.241100471346537, +0.345676116637537,0.345676116637537,0.345660248372161,0.345514792257118,0.345275722204944,0.344989759708795,0.344707439745355,0.344479087308467,0.344349900543328,0.344349900543328, +0.47768867920108,0.47768867920108,0.477619818604173,0.477379128921039,0.477019226755415,0.476603039221983,0.476194627043108,0.47585961402115,0.475664815698466,0.475664815698466, +0.635184590311955,0.635184590311955,0.635048943607497,0.634673218823909,0.634151395440023,0.633567271935165,0.63299347218809,0.632506730081697,0.632204370118451,0.632204370118451, +0.812218768958784,0.812218768958784,0.812036609807398,0.811453949116861,0.810719354677308,0.809932611987378,0.809154373802834,0.808450534167749,0.807942280633121,0.807942280633121, + +00:32:19, +0.094505404040991,0.094505404040991,0.0945558373316329,0.0945545719535238,0.0945140436781951,0.094450610273887,0.0943821500446361,0.0943254188361762,0.0942934665894004,0.0942934665894004, +0.094505404040991,0.094505404040991,0.0945558373316329,0.0945545719535238,0.0945140436781951,0.094450610273887,0.0943821500446361,0.0943254188361762,0.0942934665894004,0.0942934665894004, +0.118145024557653,0.118145024557653,0.11819218391839,0.118179729153799,0.118122336638504,0.118039357438705,0.117952015746456,0.117880347862295,0.117840129902348,0.117840129902348, +0.166687926903946,0.166687926903946,0.166725995010429,0.166688801224802,0.166595516856989,0.166471493301286,0.166344647475174,0.166241672574786,0.16618406125971,0.16618406125971, +0.242064200054386,0.242064200054386,0.242082919358833,0.242003197339587,0.241851068406395,0.241660937642416,0.241470660690891,0.241317078296763,0.241231042419742,0.241231042419742, +0.345805841056475,0.345805841056475,0.345789961857741,0.345644535506588,0.345405524583533,0.345119636547493,0.344837391725222,0.344609100797172,0.344479949070193,0.344479949070193, +0.477805291928427,0.477805291928427,0.477736430748698,0.477495800124377,0.477135998776981,0.476719932988326,0.476311642547411,0.475976730194978,0.475781990515457,0.475781990515457, +0.63527352839318,0.63527352839318,0.635137903762589,0.63476228076565,0.634240609451923,0.633656661155681,0.633083035538534,0.632596441268194,0.632294172466784,0.632294172466784, +0.812267076233801,0.812267076233801,0.812084964312046,0.811502463809811,0.810768076975708,0.809981560009188,0.809203546150024,0.808499908353539,0.807991798361131,0.807991798361131, + +00:32:20, +0.0946142494677966,0.0946142494677966,0.0946646985285095,0.094663438945408,0.0946229083878726,0.0945594673432088,0.0944909973477638,0.094434257455414,0.0944023001664211,0.0944023001664211, +0.0946142494677966,0.0946142494677966,0.0946646985285095,0.094663438945408,0.0946229083878726,0.0945594673432088,0.0944909973477638,0.094434257455414,0.0944023001664211,0.0944023001664211, +0.118259673329462,0.118259673329462,0.118306842097314,0.118294392556838,0.118237001595299,0.118154021208772,0.118066676888872,0.117995006322401,0.117954786731931,0.117954786731931, +0.166811390920993,0.166811390920993,0.166849458419913,0.166812271011243,0.166718997775041,0.166594987493987,0.166468154552838,0.166365189878206,0.166307584253151,0.166307584253151, +0.242194577308989,0.242194577308989,0.242213287267478,0.24213357841106,0.241981478924073,0.241791386154585,0.241601147689761,0.241447596620906,0.241361578413709,0.241361578413709, +0.345935508313266,0.345935508313266,0.345919618210505,0.345774221629434,0.345535269825939,0.345249456232058,0.344967286530494,0.344739057093204,0.344609940393451,0.344609940393451, +0.477921837793818,0.477921837793818,0.477852976057205,0.477612404471182,0.477252703889906,0.476836759777753,0.476428591004102,0.476093779261149,0.475899098188984,0.475899098188984, +0.635362407174646,0.635362407174646,0.635226804621615,0.634851283347909,0.6343297639988,0.633745990785686,0.633172539171766,0.632686092628531,0.632383914921078,0.632383914921078, +0.812315348624627,0.812315348624627,0.812133283902068,0.811550943470364,0.810816764084866,0.810030472669115,0.809252682962681,0.808549246849031,0.808041280288381,0.808041280288381, + +00:32:21, +0.0947231215651023,0.0947231215651023,0.0947735863709507,0.0947723325888571,0.0947317997792551,0.0946683511388576,0.0945998714249379,0.0945431228882297,0.0945111605792991,0.0945111605792991, +0.0947231215651023,0.0947231215651023,0.0947735863709507,0.0947723325888571,0.0947317997792551,0.0946683511388576,0.0945998714249379,0.0945431228882297,0.0945111605792991,0.0945111605792991, +0.118374335875486,0.118374335875486,0.118421514034597,0.118409069728462,0.118351680351361,0.118268698820964,0.118181351918403,0.1181096787066,0.118069457506368,0.118069457506368, +0.166934846077689,0.166934846077689,0.166972912969163,0.166935731953087,0.16684246987665,0.166718472905777,0.166591652885578,0.166488698465795,0.166431098546949,0.166431098546949, +0.242324919403008,0.242324919403008,0.24234362003339,0.242263924356351,0.242111854332169,0.241921799573955,0.241731599611263,0.241578079879428,0.241492079348293,0.241492079348293, +0.346065118464566,0.346065118464566,0.346049217487058,0.345903850682217,0.345664957988682,0.345379218818967,0.345097124217604,0.344868956252964,0.344739874569488,0.344739874569488, +0.478038316876656,0.478038316876656,0.47796945460904,0.477728942040793,0.477369342173551,0.476953519669658,0.476545472492609,0.476210761299122,0.476016138798528,0.476016138798528, +0.63545122673365,0.63545122673365,0.635315646261848,0.634940226648019,0.6344188591581,0.63383526090276,0.6332619831655,0.632775684240542,0.632473597559242,0.632473597559242, +0.81236358617899,0.81236358617899,0.812181568625226,0.811599388146438,0.810865416052903,0.810079350015503,0.809301784289372,0.808598549702995,0.808090726463788,0.808090726463788, + +00:32:22, +0.0948320202736226,0.0948320202736226,0.0948825007996968,0.0948812528245995,0.0948407177930291,0.0947772616014594,0.0947087722167196,0.094652015075131,0.0946200477685117,0.0946200477685117, +0.0948320202736226,0.0948320202736226,0.0948825007996968,0.0948812528245995,0.0948407177930291,0.0947772616014594,0.0947087722167196,0.094652015075131,0.0946200477685117,0.0946200477685117, +0.118489012151048,0.118489012151048,0.118536199685582,0.118523760623993,0.118466372861958,0.118383390230479,0.118296040790171,0.11822436496995,0.118184142180685,0.118184142180685, +0.167058292357365,0.167058292357365,0.167096358641514,0.167059184033634,0.166965933145052,0.166841949519805,0.166715142456457,0.166612198320544,0.166554604124055,0.166554604124055, +0.242455226356697,0.242455226356697,0.242473917676797,0.242394235195645,0.242242194650802,0.242052177920564,0.241862016475353,0.241708528092221,0.241622545243348,0.241622545243348, +0.346194671566963,0.346194671566963,0.34617875974394,0.34603342272144,0.345794589128224,0.345508924364637,0.345226904842927,0.344998798332792,0.344869751654625,0.344869751654625, +0.478154729256228,0.478154729256228,0.478085866483438,0.477845412912439,0.477485913707165,0.477070212743321,0.476662287092247,0.476327676388245,0.476133112423455,0.476133112423455, +0.635539987147361,0.635539987147361,0.635404428760433,0.635029110743188,0.634507895007143,0.633924471584356,0.633351367597322,0.63286521618193,0.632563220459056,0.632563220459056, +0.812411788944534,0.812411788944534,0.8122298185292,0.811647797885866,0.810914032927857,0.810128192096614,0.80935085017858,0.80864781696412,0.808140136936183,0.808140136936183, + +00:32:23, +0.0949409455341387,0.0949409455341387,0.0949914417555554,0.094990199593431,0.0949496623699485,0.0948861986717074,0.0948176996637373,0.0947609339566925,0.0947289616746032,0.0947289616746032, +0.0949409455341387,0.0949409455341387,0.0949914417555554,0.094990199593431,0.0949496623699485,0.0948861986717074,0.0948176996637373,0.0947609339566925,0.0947289616746032,0.0947289616746032, +0.118603702111533,0.118603702111533,0.118650899005674,0.118638465198813,0.118581079082423,0.118498095392579,0.11841074345936,0.118339065067573,0.118298840709966,0.118298840709966, +0.167181729743394,0.167181729743394,0.167219795420341,0.167182627236225,0.167089387563521,0.166965417319263,0.166838623248579,0.166735689425486,0.166678100967461,0.166678100967461, +0.24258549819031,0.24258549819031,0.242604180217929,0.242524510949124,0.242372499900087,0.242182521214446,0.241992398301986,0.241838941279172,0.241752976118724,0.241752976118724, +0.346324167676985,0.346324167676985,0.34630824503763,0.34616293780354,0.34592416330096,0.34563857292542,0.345356628462773,0.345128583388965,0.344999571705122,0.344999571705122, +0.478271075011707,0.478271075011707,0.478202211759515,0.477961817165232,0.477602418569881,0.477186839077908,0.476779034882215,0.476444524607748,0.476250019143016,0.476250019143016, +0.635628688492823,0.635628688492823,0.63549315219439,0.635117935710499,0.634596871623124,0.634013622907801,0.633440692544695,0.632954688530275,0.632652783698174,0.632652783698174, +0.812459956968823,0.812459956968823,0.812278033661587,0.811696172736398,0.81096261475768,0.810176998960623,0.809399880678706,0.808697048681006,0.808189511754316,0.808189511754316, + +00:32:24, +0.0950498972874995,0.0950498972874995,0.095100409179401,0.0950991728362145,0.0950586334508341,0.0949951622903618,0.0949266537066867,0.0948698794735563,0.0948379022381853,0.0948379022381853, +0.0950498972874995,0.0950498972874995,0.095100409179401,0.0950991728362145,0.0950586334508341,0.0949951622903618,0.0949266537066867,0.0948698794735563,0.0948379022381853,0.0948379022381853, +0.118718405712389,0.118718405712389,0.118765611950338,0.11875318340837,0.118695798968148,0.118612814262582,0.118525459881215,0.118453778954653,0.11841355304936,0.11841355304936, +0.16730515821919,0.16730515821919,0.16734322328906,0.167306061544242,0.167212833115373,0.167088876287383,0.166962095245089,0.166859171763695,0.166801589060203,0.166801589060203, +0.242715734924093,0.242715734924093,0.24273440767701,0.242654751636966,0.242502770100137,0.242312829475633,0.242122745111111,0.241969319460166,0.24188337199427,0.24188337199427, +0.346453606851097,0.346453606851097,0.346437673424544,0.346292395984891,0.346053680563225,0.345768164557607,0.34548629513339,0.3452583114777,0.345129334777176,0.345129334777176, +0.478387354222149,0.478387354222149,0.478318490516278,0.47807815487817,0.477718856840721,0.477303398752473,0.4768957159416,0.47656130603675,0.476366859036351,0.476366859036351, +0.635717330846955,0.635717330846955,0.635581816640613,0.635206701626908,0.634685789083111,0.634102714950296,0.633529958084954,0.633044101363029,0.632742287354125,0.632742287354125, +0.812508090299336,0.812508090299336,0.812326214069903,0.811744512745701,0.811011161590244,0.810225770655624,0.809448875838064,0.808746244902172,0.80823885096685,0.80823885096685, + +00:32:25, +0.0951588754746208,0.0951588754746208,0.0952094030121754,0.09520817249388,0.0951676309765739,0.0951041523982502,0.0950356342863305,0.0949788515664315,0.0949468693999368,0.0949468693999368, +0.0951588754746208,0.0951588754746208,0.0952094030121754,0.09520817249388,0.0951676309765739,0.0951041523982502,0.0950356342863305,0.0949788515664315,0.0949468693999368,0.0949468693999368, +0.118833122909122,0.118833122909122,0.1188803384751,0.118867915208168,0.118810532474589,0.118727546795873,0.118640190011044,0.118568506586433,0.118528279154077,0.118528279154077, +0.167428577768207,0.167428577768207,0.167466642231126,0.167429486941105,0.167336269783967,0.167212326407437,0.167085558429174,0.166982645318287,0.166925068385355,0.166925068385355, +0.242845936578293,0.242845936578293,0.242864600074262,0.242784957279348,0.24263300527106,0.242443102724154,0.242253056922677,0.242099662655085,0.242013732889831,0.242013732889831, +0.346582989145699,0.346582989145699,0.346567044961034,0.346421797321805,0.34618314097129,0.345897699317427,0.345615904910965,0.345387982655149,0.345259040926925,0.345259040926925, +0.478503566966502,0.478503566966502,0.478434702832616,0.478194426130139,0.47783522859859,0.477419891845953,0.477012330349377,0.476678020754254,0.476483632182485,0.476483632182485, +0.635805914286551,0.635805914286551,0.635670422175871,0.635295408569246,0.634774647464047,0.634191747788917,0.633619164295307,0.633133454757518,0.632831731504309,0.632831731504309, +0.81255618898347,0.81255618898347,0.812374359801579,0.81179281796136,0.811059673473337,0.810274507229628,0.809497835704887,0.808795405676052,0.808288154622364,0.808288154622364, + +00:32:26, +0.0952678800364854,0.0952678800364854,0.0953184231948875,0.0953171985074246,0.0952766548881232,0.0952131689362671,0.0951446413434988,0.0950878501760944,0.0950558631006039,0.0950558631006039, +0.0952678800364854,0.0952678800364854,0.0953184231948875,0.0953171985074246,0.0952766548881232,0.0952131689362671,0.0951446413434988,0.0950878501760944,0.0950558631006039,0.0950558631006039, +0.118947853657303,0.118947853657303,0.11899507853555,0.118982660553777,0.11892527955726,0.118842292947895,0.118754933804215,0.118683247918222,0.118643018979388,0.118643018979388, +0.167551988373939,0.167551988373939,0.167590052230036,0.167552903410277,0.167459697552698,0.167335767662738,0.167209012784059,0.167106110072416,0.167048538926032,0.167048538926032, +0.242976103173151,0.242976103173151,0.242994757429901,0.242915127896441,0.242763205432964,0.242573340980037,0.242383333756631,0.242229970883811,0.242144058825254,0.242144058825254, +0.34671231461713,0.34671231461713,0.346696359703388,0.346551141870531,0.346312544581364,0.346027177261044,0.345745457851621,0.345517596977403,0.34538869021044,0.34538869021044, +0.478619713323595,0.478619713323595,0.478550848787307,0.478310630999909,0.477951533922281,0.477536318437175,0.477128878184405,0.476794668839154,0.47660033866033,0.47660033866033, +0.635894438888279,0.635894438888279,0.635758968876808,0.635384056614221,0.63486344684275,0.634280721500615,0.633708311252839,0.633222748790945,0.632921116226005,0.632921116226005, +0.812604253068542,0.812604253068542,0.812422470903966,0.811841088430878,0.811108150454664,0.81032320873056,0.809546760327323,0.808844531050995,0.808337422769354,0.808337422769354, + +00:32:27, +0.0953769109141434,0.0953769109141434,0.0954274696686131,0.0954262508179126,0.0953857051265043,0.0953222118453742,0.0952536748190887,0.0951968752433884,0.0951648832809997,0.0951648832809997, +0.0953769109141434,0.0953769109141434,0.0954274696686131,0.0954262508179126,0.0953857051265043,0.0953222118453742,0.0952536748190887,0.0951968752433884,0.0951648832809997,0.0951648832809997, +0.119062597912562,0.119062597912562,0.119109832087337,0.119097419400825,0.11904004017174,0.118957052674154,0.118869691216158,0.118798002905385,0.118757772480626,0.118757772480626, +0.167675390019922,0.167675390019922,0.167713453269327,0.16767631093526,0.167583116405006,0.167459200036642,0.167332458293013,0.16722956600928,0.167172000665393,0.167172000665393, +0.243106234728907,0.243106234728907,0.243124879764144,0.243045263508415,0.242893370605952,0.242703544263304,0.242513575632914,0.242360244166221,0.242274349820377,0.242274349820377, +0.346841583321665,0.346841583321665,0.346825617707835,0.346680429687256,0.346441891449593,0.346156598444562,0.345874954011419,0.345647154500492,0.345518282683735,0.345518282683735, +0.478735793372145,0.478735793372145,0.478666928459015,0.478426769566139,0.478067772890474,0.47765267860485,0.47724535952543,0.476911250370226,0.476716978548685,0.476716978548685, +0.635982904728681,0.635982904728681,0.635847456819944,0.635472645838412,0.634952187295913,0.634369636162215,0.63379739903451,0.633311983540384,0.633010441596362,0.633010441596362, +0.812652282601783,0.812652282601783,0.812470547424332,0.811889324201674,0.811156592581847,0.810371875206266,0.809595649753436,0.808893621075268,0.808386655456231,0.808386655456231, + +00:32:28, +0.0954859680487119,0.0954859680487119,0.0955365423744954,0.095535329366475,0.0954947816328062,0.0954312810666002,0.0953627346540642,0.0953059267092242,0.0952739298820044,0.0952739298820044, +0.0954859680487119,0.0954859680487119,0.0955365423744954,0.095535329366475,0.0954947816328062,0.0954312810666002,0.0953627346540642,0.0953059267092242,0.0952739298820044,0.0952739298820044, +0.119177355630591,0.119177355630591,0.11922459908617,0.119212191705002,0.119154814273666,0.119071825930217,0.118984462202365,0.118912771503353,0.118872539613184,0.118872539613184, +0.167798782689731,0.167798782689731,0.167836845332575,0.167799709499598,0.167706526324367,0.167582623512541,0.167455894939344,0.167353013112117,0.167295453586636,0.167295453586636, +0.243236331265794,0.243236331265794,0.243254967097201,0.243175364135437,0.243023500810123,0.242833712593976,0.242643782571468,0.24249048252219,0.242404605895042,0.242404605895042, +0.346970795315516,0.346970795315516,0.346954819030537,0.346809660828102,0.346571181632059,0.346285962924021,0.346004393446359,0.345776655280382,0.34564781840276,0.34564781840276, +0.478851807190757,0.478851807190757,0.47878294192629,0.478542841907374,0.478183945581735,0.477768972427576,0.477361774451087,0.477027765426136,0.476833551926236,0.476833551926236, +0.636071311884178,0.636071311884178,0.635935886081674,0.635561176318277,0.635040868900104,0.634458491850416,0.633886427717152,0.633401159082786,0.633099707692407,0.633099707692407, +0.812700277630347,0.812700277630347,0.812518589409863,0.811937525321085,0.811204999902426,0.810420506704505,0.80964450403121,0.808942675797055,0.808435852731324,0.808435852731324, + +00:32:29, +0.095595051381375,0.095595051381375,0.0956456412537443,0.0956444340943103,0.0956038843481855,0.095540376541041,0.0954718207894566,0.0954150045145793,0.0953830028445654,0.0953830028445654, +0.095595051381375,0.095595051381375,0.0956456412537443,0.0956444340943103,0.0956038843481855,0.095540376541041,0.0954718207894566,0.0954150045145793,0.0953830028445654,0.0953830028445654, +0.119292126767142,0.119292126767142,0.119339379487823,0.119326977422061,0.119269601818737,0.11918661267171,0.119099246718388,0.119027553667616,0.118987320332519,0.118987320332519, +0.16792216636698,0.16792216636698,0.167960228403399,0.167923099086873,0.167829927294301,0.167706038073873,0.167579322706401,0.167476451364205,0.167418897672999,0.167418897672999, +0.243366392804046,0.243366392804046,0.24338501944928,0.243305429797667,0.243153596065575,0.24296384599207,0.242773954592229,0.242620685971591,0.242534827069085,0.242534827069085, +0.347099950654832,0.347099950654832,0.347083963727595,0.346938835349131,0.346700415184785,0.346415270755401,0.346133776212379,0.345906099372979,0.345777297423402,0.345777297423402, +0.478967754857922,0.478967754857922,0.47889888926757,0.478658848102046,0.478300052074518,0.477885199983842,0.477478123039897,0.477144214085437,0.476950058871555,0.476950058871555, +0.636159660431063,0.636159660431063,0.636024256738267,0.635649648130148,0.635129491731767,0.634547288641797,0.633975397377476,0.633490275494978,0.633188914591041,0.633188914591041, +0.812748238201302,0.812748238201302,0.812566596907664,0.811985691836369,0.81125337246386,0.810469103272957,0.809693323208543,0.808991695264454,0.808485014642875,0.808485014642875, + +00:32:30, +0.0957041608533839,0.0957041608533839,0.0957547662476367,0.0957535649426835,0.0957130132138654,0.0956494982098593,0.0955809331663642,0.0955241086004985,0.0954921021096972,0.0954921021096972, +0.0957041608533839,0.0957041608533839,0.0957547662476367,0.0957535649426835,0.0957130132138654,0.0956494982098593,0.0955809331663642,0.0955241086004985,0.0954921021096972,0.0954921021096972, +0.119406911278031,0.119406911278031,0.119454173248127,0.119441776507814,0.119384402762715,0.119301412854325,0.119214044719842,0.119142349353726,0.119102114594147,0.119102114594147, +0.168045541035324,0.168045541035324,0.168083602465456,0.168046479680709,0.167953319298365,0.167829443704111,0.167702741577574,0.167599880748864,0.167542332907762,0.167542332907762, +0.24349641936389,0.24349641936389,0.243515036840585,0.243435460515266,0.2432836563924,0.243093944477601,0.242904091715133,0.242750854534294,0.242665013362339,0.242665013362339, +0.347229049395701,0.347229049395701,0.347213051855048,0.34706795330634,0.346829592163728,0.346544521994616,0.346263102365353,0.346035486834126,0.345906719801487,0.345906719801487, +0.479083636452017,0.479083636452017,0.479014770561179,0.478774788228473,0.478416092447164,0.478001361352019,0.477594405370266,0.477260596426568,0.477066499463105,0.477066499463105, +0.636247950445507,0.636247950445507,0.636112568865871,0.635738061350235,0.635218055867223,0.634636026612807,0.634064308092065,0.633579332853661,0.63327806236904,0.63327806236904, +0.812796164361638,0.812796164361638,0.812614569964758,0.8120338237947,0.811301710313523,0.810517664959218,0.809742107333251,0.809040679525483,0.808534141239048,0.808534141239048, + +00:32:31, +0.0958132964060568,0.0958132964060568,0.0958639172975169,0.095862721852927,0.0958221681711362,0.095758646014285,0.0956900717259523,0.0956332389080934,0.0956012276184812,0.0956012276184812, +0.0958132964060568,0.0958132964060568,0.0958639172975169,0.095862721852927,0.0958221681711362,0.095758646014285,0.0956900717259523,0.0956332389080934,0.0956012276184812,0.0956012276184812, +0.119521709119131,0.119521709119131,0.119568980322977,0.119556588918133,0.119499217061421,0.11941622643381,0.119328856162401,0.119257158517296,0.119216922353647,0.119216922353647, +0.16816890667846,0.16816890667846,0.168206967502441,0.168169851264767,0.168076702320159,0.16795284038677,0.167826151536291,0.167723301249451,0.167665759274245,0.167665759274245, +0.243626410965551,0.243626410965551,0.243645019291317,0.243565456308388,0.243413681810689,0.24322400807058,0.243034193960111,0.242880988230167,0.242795164794637,0.242795164794637, +0.347358091594146,0.347358091594146,0.347342083468872,0.347197014755665,0.346958712624785,0.346673716697521,0.346392371961094,0.346164817719604,0.34603608559278,0.34603608559278, +0.479199452051307,0.479199452051307,0.479130585885328,0.478890662364861,0.4785320667779,0.478117456610369,0.477710621520493,0.477376912527858,0.477182873779232,0.477182873779232, +0.636336182003556,0.636336182003556,0.636200822540508,0.635826416054621,0.635306561382666,0.634724705839774,0.63415315993738,0.633668331235411,0.633367151103055,0.633367151103055, +0.812844056158262,0.812844056158262,0.812662508628086,0.812081921243169,0.81135001349871,0.810566191810801,0.809790856453069,0.809089628628075,0.808583232567919,0.808583232567919, + +00:32:32, +0.0959224579807786,0.0959224579807786,0.0959730943447955,0.0959719047664399,0.0959313491613552,0.0958678198956148,0.095799236409453,0.0957423953785428,0.0957103793120659,0.0957103793120659, +0.0959224579807786,0.0959224579807786,0.0959730943447955,0.0959719047664399,0.0959313491613552,0.0958678198956148,0.095799236409453,0.0957423953785428,0.0957103793120659,0.0957103793120659, +0.11963652024638,0.11963652024638,0.119683800668327,0.119671414608954,0.119614044670738,0.119531053365976,0.119443681001802,0.119371981114,0.119331743566659,0.119331743566659, +0.168292263280122,0.168292263280122,0.168330323498092,0.168293213822751,0.168200076343322,0.168076228105408,0.167949552566023,0.167846712849368,0.167789176755808,0.167789176755808, +0.243756367629249,0.243756367629249,0.243774966821672,0.243695417197185,0.243543672340528,0.243354036791014,0.243164261347091,0.243011087079073,0.242925281385805,0.242925281385805, +0.347487077306128,0.347487077306128,0.347471058624978,0.347326019752979,0.347087776623788,0.346802854919907,0.346521585055354,0.346294092085132,0.346165394852985,0.346165394852985, +0.479315201733944,0.479315201733944,0.479246335318118,0.479006470589306,0.478647975144843,0.47823348583704,0.477826771568759,0.47749316246752,0.477299181898174,0.477299181898174, +0.636424355181135,0.636424355181135,0.636289017838078,0.635914712319268,0.635395008354168,0.634813326398902,0.634241952989759,0.633757270716681,0.633456180869615,0.633456180869615, +0.812891913637999,0.812891913637999,0.81271041294451,0.812129984228789,0.811398282066633,0.810614683875138,0.809839570615646,0.809138542620082,0.808632288677483,0.808632288677483, + +00:32:33, +0.0960316455190015,0.0960316455190015,0.0960822973309505,0.0960811136246882,0.0960405561259464,0.0959770197952124,0.0959084271581656,0.0958515779530923,0.0958195571316668,0.0958195571316668, +0.0960316455190015,0.0960316455190015,0.0960822973309505,0.0960811136246882,0.0960405561259464,0.0959770197952124,0.0959084271581656,0.0958515779530923,0.0958195571316668,0.0958195571316668, +0.119751344615773,0.119751344615773,0.119798634240193,0.119786253536272,0.119728885546608,0.119645893606697,0.119558519193841,0.119486817099575,0.119446578188881,0.119446578188881, +0.168415610824084,0.168415610824084,0.168453670436186,0.168416567338403,0.16832344135153,0.168199606843618,0.16807294465028,0.167970115532055,0.167912585335853,0.167912585335853, +0.2438862893752,0.2438862893752,0.243904879451844,0.243825343201805,0.243673628002,0.243484030658908,0.243294293895998,0.243141151100874,0.243055363155671,0.243055363155671, +0.347616006587546,0.347616006587546,0.347599977379218,0.347454968354092,0.347216784216509,0.346931936717505,0.346650741703821,0.346423309986369,0.346294647637741,0.346294647637741, +0.479430885577969,0.479430885577969,0.479362018937534,0.479122212979787,0.478763817625995,0.478349449110068,0.477942855593137,0.47760934632366,0.477415423898054,0.477415423898054, +0.636512470054042,0.636512470054042,0.636377154834357,0.636002950220013,0.635483396857679,0.634901888366271,0.634330687325412,0.633846151373801,0.633545151745123,0.633545151745123, +0.812939736847595,0.812939736847595,0.812758282960809,0.812178012798489,0.811446516064422,0.810663141199579,0.809888249868553,0.809187421549272,0.808681309615653,0.808681309615653, + +00:32:34, +0.0961408589622443,0.0961408589622443,0.0961915261975265,0.0961903483692048,0.0961497890064009,0.0960862456545084,0.0960176439134562,0.0959607865730547,0.0959287610185664,0.0959287610185664, +0.0961408589622443,0.0961408589622443,0.0961915261975265,0.0961903483692048,0.0961497890064009,0.0960862456545084,0.0960176439134562,0.0959607865730547,0.0959287610185664,0.0959287610185664, +0.119866182183368,0.119866182183368,0.11991348099465,0.119901105656142,0.119843739645037,0.119760747111905,0.119673370694377,0.119601666429815,0.119561426176077,0.119561426176077, +0.168538949294162,0.168538949294162,0.168577008300538,0.168539911795506,0.168446797328503,0.168322976585036,0.168196327772611,0.168093509280991,0.16803598499782,0.16803598499782, +0.24401617622362,0.24401617622362,0.244034757202021,0.243955234342393,0.243803548815184,0.243613989694263,0.243424291626756,0.243271180315427,0.243185410124057,0.243185410124057, +0.347744879494235,0.347744879494235,0.347728839787378,0.347583860614752,0.347345735458658,0.34706096214598,0.346779841962123,0.346552471478909,0.346423844002627,0.346423844002627, +0.479546503661309,0.479546503661309,0.479477636821452,0.479237889614174,0.478879594299248,0.478465346507378,0.478058873671585,0.477725464174267,0.477531599856885,0.477531599856885, +0.636600526697954,0.636600526697954,0.636465233604998,0.636091129832571,0.635571726969023,0.634990391817839,0.634419363020431,0.633934973282976,0.633634063805859,0.633634063805859, +0.812987525833716,0.812987525833716,0.812806118723682,0.812226006999119,0.811494715539127,0.810711563831393,0.809936894259277,0.809236265463331,0.808730295430257,0.808730295430257, + +00:32:35, +0.0962500982520929,0.0962500982520929,0.0963007808861353,0.0962996089415895,0.0962590477442767,0.0961954974150002,0.0961268866167578,0.0960700211798093,0.0960379909141139,0.0960379909141139, +0.0962500982520929,0.0962500982520929,0.0963007808861353,0.0962996089415895,0.0962590477442767,0.0961954974150002,0.0961268866167578,0.0960700211798093,0.0960379909141139,0.0960379909141139, +0.119981032905283,0.119981032905283,0.120028340887836,0.120015970924681,0.119958606922088,0.119875613837593,0.119788235459329,0.119716529060579,0.119676287484069,0.119676287484069, +0.168662278674208,0.168662278674208,0.168700337075004,0.16866324717788,0.168570144257998,0.168446337313338,0.168319701916608,0.168216894079697,0.16815937572519,0.16815937572519, +0.244146028194715,0.244146028194715,0.244164600092388,0.244085090639088,0.243933434800156,0.243743913917076,0.243554254559282,0.243401174742589,0.243315422310783,0.243315422310783, +0.347873696081969,0.347873696081969,0.347857645905184,0.347712696590645,0.347474630405879,0.347189931260938,0.346908885885824,0.346681576618288,0.346552984003163,0.346552984003163, +0.47966205606178,0.47966205606178,0.479593189047635,0.479353500570225,0.478995305242382,0.478581178106782,0.478174825881952,0.477841516097222,0.477647709852567,0.477647709852567, +0.636688525188425,0.636688525188425,0.636553254225532,0.636179251232534,0.635659998763903,0.635078836829437,0.63450798015078,0.634023736520287,0.63372291712798,0.63372291712798, +0.813035280642944,0.813035280642944,0.812853920279748,0.812273966877446,0.811542880537715,0.810759951817766,0.809985503835222,0.809285074409863,0.808779246169044,0.808779246169044, + +00:32:36, +0.0963593633301998,0.0963593633301998,0.096410061338455,0.096408895283509,0.0963683322811984,0.0963047750182522,0.0962361552095703,0.0961792817148027,0.0961472467597256,0.0961472467597256, +0.0963593633301998,0.0963593633301998,0.096410061338455,0.096408895283509,0.0963683322811984,0.0963047750182522,0.0962361552095703,0.0961792817148027,0.0961472467597256,0.0961472467597256, +0.120095896737697,0.120095896737697,0.120143213875948,0.120130849298066,0.120073487333888,0.119990493739816,0.119903113444677,0.119831404947784,0.11979116206874,0.11979116206874, +0.168785598948116,0.168785598948116,0.168823656743478,0.168786573469387,0.168693482123812,0.168569689012237,0.168443067065899,0.168340269911734,0.168282757501486,0.168282757501486, +0.244275845308692,0.244275845308692,0.244294408143127,0.244214912112026,0.244063285976987,0.243873803347341,0.243684182713492,0.243531134402211,0.243445399735665,0.243445399735665, +0.348002456406459,0.348002456406459,0.347986395788298,0.347841476337394,0.347603469113758,0.347318844117922,0.347037873530429,0.346810625459977,0.346682067694803,0.346682067694803, +0.479777542857084,0.479777542857084,0.479708675693732,0.479469045925586,0.479110950533063,0.478696943985981,0.478290712301974,0.477957502170293,0.47776375396289,0.47776375396289, +0.636776465600886,0.636776465600886,0.636641216771365,0.636267314495372,0.635748212317899,0.635167223476777,0.634596538792304,0.634112441161694,0.633811711787519,0.633811711787519, +0.813083001321783,0.813083001321783,0.812901687675543,0.812321892480158,0.811591011107074,0.810808305205803,0.810034078643711,0.80933384843639,0.808828161879679,0.808828161879679, + +00:32:37, +0.0964686541382846,0.0964686541382846,0.096519367496231,0.0965182073366966,0.0964776425588575,0.0964140784058955,0.0963454496334605,0.0962885681195481,0.0962565284968846,0.0962565284968846, +0.0964686541382846,0.0964686541382846,0.096519367496231,0.0965182073366966,0.0964776425588575,0.0964140784058955,0.0963454496334605,0.0962885681195481,0.0962565284968846,0.0962565284968846, +0.12021077363685,0.12021077363685,0.120258099915243,0.120245740732536,0.120188380836622,0.12010538677469,0.120018004606461,0.11994629404741,0.119906049886034,0.119906049886034, +0.168908910099818,0.168908910099818,0.168946967289896,0.168909890653926,0.168816810909782,0.168693031665489,0.168566423204155,0.168463636760701,0.168406130310268,0.168406130310268, +0.244405627585751,0.244405627585751,0.244424181374415,0.244344698781341,0.244193102365746,0.244003658005049,0.243814076109298,0.243661059314142,0.243575342418517,0.243575342418517, +0.348131160523351,0.348131160523351,0.348115089492321,0.347970199910559,0.347732251637817,0.347447700772414,0.347166804951378,0.346939618059387,0.346811095132943,0.346811095132943, +0.479892964124814,0.479892964124814,0.479824096837284,0.47958452575779,0.479226530248849,0.478812644222565,0.478406533009274,0.478073422471137,0.47787973226553,0.47787973226553, +0.636864348010647,0.636864348010647,0.636729121317784,0.63635531969643,0.635836367706467,0.635255551835448,0.634685039020722,0.634201087283032,0.633900447860386,0.633900447860386, +0.813130687916657,0.813130687916657,0.812949420957527,0.812369783853862,0.81163910729401,0.810856624042528,0.810082618731988,0.809382587590352,0.808877042609743,0.808877042609743, + +00:32:38, +0.0965779706181335,0.0965779706181335,0.0966286993012752,0.0966275450429525,0.0965869785190124,0.096523407519628,0.0964547698300619,0.0963978803356258,0.096365836067141,0.096365836067141, +0.0965779706181335,0.0965779706181335,0.0966286993012752,0.0966275450429525,0.0965869785190124,0.096523407519628,0.0964547698300619,0.0963978803356258,0.096365836067141,0.096365836067141, +0.120325663559042,0.120325663559042,0.120372998962041,0.120360645184388,0.120303287386538,0.12022029289839,0.120132908900783,0.120061196315496,0.120020950891957,0.120020950891957, +0.169032212113287,0.169032212113287,0.16907026869823,0.169033198715438,0.168940130599784,0.168816365256887,0.168689770315084,0.168586994610238,0.168529494135136,0.168529494135136, +0.244535375046089,0.244535375046089,0.244553919806424,0.24447445066716,0.244322883986496,0.244133477910185,0.243943934766608,0.243790949498227,0.243705250379149,0.243705250379149, +0.348259808488233,0.348259808488233,0.348243727072791,0.348098867365639,0.347860978033515,0.347576501279832,0.347295680204052,0.347068554471868,0.346940066372914,0.346940066372914, +0.48000831994245,0.48000831994245,0.479939452555717,0.47969994014426,0.479342044467183,0.478928278894011,0.478522288081368,0.478189277077299,0.477995644838056,0.477995644838056, +0.636952172492893,0.636952172492893,0.636816967939951,0.636443266910934,0.635924465004943,0.635343821980914,0.634773480911631,0.634289674960016,0.633989125422369,0.633989125422369, +0.813178340473909,0.813178340473909,0.812997120172077,0.812417641045086,0.811687169145248,0.810904908374885,0.810131124147213,0.809431291919108,0.808925888406738,0.808925888406738, + +00:32:39, +0.0966873127115994,0.0966873127115994,0.0967380566954664,0.0967369083441435,0.0966963401034881,0.0966327623012145,0.0965641157410748,0.0965072183046825,0.0964751694121114,0.0964751694121114, +0.0966873127115994,0.0966873127115994,0.0967380566954664,0.0967369083441435,0.0966963401034881,0.0966327623012145,0.0965641157410748,0.0965072183046825,0.0964751694121114,0.0964751694121114, +0.120440566460633,0.120440566460633,0.12048791097272,0.12047556260998,0.120418206939942,0.120335212067152,0.120247826283804,0.120176111708143,0.120135865042574,0.120135865042574, +0.169155504972532,0.169155504972532,0.169193560952493,0.169156497637901,0.169063441177732,0.168939689770265,0.168813108382435,0.168710343444025,0.168652848959733,0.168652848959733, +0.244665087709899,0.244665087709899,0.244683623459323,0.244604167789608,0.244452630859297,0.244263263082734,0.244073758705329,0.243920804974309,0.243835123637369,0.243835123637369, +0.348388400356627,0.348388400356627,0.348372308585181,0.348227478758069,0.347989648356251,0.347705245695534,0.347424499343768,0.347197434752707,0.34706898146999,0.34706898146999, +0.48012361038736,0.48012361038736,0.480054742926349,0.479815289162307,0.4794574932654,0.479043848077686,0.478637977595658,0.478305066066215,0.478111491757922,0.478111491757922, +0.637039939122691,0.637039939122691,0.636904756712909,0.636531156213987,0.63601250428854,0.63543203398852,0.634861864540508,0.634378204268235,0.634077744549134,0.634077744549134, +0.813225959039802,0.813225959039802,0.813044785365489,0.812465464100274,0.811735196707434,0.810953158249737,0.810179594936464,0.809479961469935,0.808974699318083,0.808974699318083, + +00:32:40, +0.0967966803606021,0.0967966803606021,0.0968474396207498,0.0968462971822033,0.0968057272541764,0.0967421426924863,0.0966734873082664,0.0966165819684321,0.0965845284734794,0.0965845284734794, +0.0967966803606021,0.0967966803606021,0.0968474396207498,0.0968462971822033,0.0968057272541764,0.0967421426924863,0.0966734873082664,0.0966165819684321,0.0965845284734794,0.0965845284734794, +0.120555482298043,0.120555482298043,0.12060283590372,0.120590492965733,0.120533139453202,0.120450144237274,0.120362756711746,0.120291040181512,0.120250792294012,0.120250792294012, +0.169278788661604,0.169278788661604,0.169316844036735,0.169279787405332,0.169186742627582,0.169063005189494,0.168936437389996,0.168833683245781,0.168776194767738,0.168776194767738, +0.244794765597369,0.244794765597369,0.244813292353277,0.244733850168804,0.244582343004206,0.244393013542673,0.24420354794536,0.244050625762226,0.243964962212979,0.243964962212979, +0.348516936183994,0.348516936183994,0.348500834084907,0.348356034143225,0.348118262661359,0.347833934074814,0.347553262425783,0.34732625895713,0.347197840479379,0.347197840479379, +0.480238835536803,0.480238835536803,0.480169968026385,0.479930572889133,0.479572876720722,0.479159351850846,0.478753601629434,0.478420789515207,0.478227273102473,0.478227273102473, +0.637127647974982,0.637127647974982,0.636992487711578,0.63661898768057,0.636100485632348,0.635520187933487,0.634950189982707,0.63446667528316,0.634166305316222,0.634166305316222, +0.813273543660521,0.813273543660521,0.813092416583983,0.812513253065795,0.811783190027131,0.811001373713863,0.810228031146741,0.809528596290028,0.809023475391117,0.809023475391117, + +00:32:41, +0.096906073507128,0.096906073507128,0.0969568480191377,0.0969557114991322,0.0969151399130356,0.0968515486353416,0.0967828844734704,0.0967259712686549,0.0966939131929954,0.0966939131929954, +0.096906073507128,0.096906073507128,0.0969568480191377,0.0969557114991322,0.0969151399130356,0.0968515486353416,0.0967828844734704,0.0967259712686549,0.0966939131929954,0.0966939131929954, +0.120670411027754,0.120670411027754,0.120717773711539,0.120705436208125,0.120648084882746,0.120565089365111,0.120477700140893,0.120405981691823,0.120365732602457,0.120365732602457, +0.169402063164591,0.169402063164591,0.169440117935048,0.169403068001788,0.169310034933325,0.169186311498486,0.169059757321594,0.168957013999265,0.168899531542872,0.168899531542872, +0.244924408728682,0.244924408728682,0.244942926508446,0.244863497824864,0.244712020441274,0.244522729309978,0.2443333025066,0.244180411881813,0.244094766125782,0.244094766125782, +0.348645416025733,0.348645416025733,0.348629303627318,0.348484533576417,0.348246821004114,0.347962566472907,0.347681969505292,0.347455027140301,0.34732664345623,0.34732664345623, +0.480353995467925,0.480353995467925,0.480285127932919,0.480045791401825,0.479688194910261,0.479274790290637,0.478869160259878,0.478536447501489,0.478342988948944,0.478342988948944, +0.63721529912459,0.63721529912459,0.637080161010756,0.636706761385543,0.636188409111337,0.635608283890915,0.635038457313457,0.634555088080136,0.634254807799056,0.634254807799056, +0.81332109438217,0.81332109438217,0.813140013873696,0.812561007987934,0.811831149150826,0.811049554813967,0.810276432824961,0.809577196426503,0.809072216673095,0.809072216673095, + +00:32:42, +0.0970154920932303,0.0970154920932303,0.0970662818327088,0.097065151236997,0.0970245780220909,0.0969609800717451,0.0968923071785874,0.0968353861471982,0.0968033235124765,0.0968033235124765, +0.0970154920932303,0.0970154920932303,0.0970662818327088,0.097065151236997,0.0970245780220909,0.0969609800717451,0.0968923071785874,0.0968353861471982,0.0968033235124765,0.0968033235124765, +0.120785352606307,0.120785352606307,0.120832724352738,0.120820392293695,0.120763043185061,0.120680047407082,0.120592656527588,0.12052093619536,0.120480685924158,0.120480685924158, +0.169525328465622,0.169525328465622,0.16956338263156,0.169526339411364,0.169433318078995,0.169309608681192,0.169183068161097,0.169080335688274,0.169022859268893,0.169022859268893, +0.24505401712402,0.24505401712402,0.245072525944985,0.2449931107779,0.244841663190549,0.244652410404619,0.244463022408943,0.244310163352902,0.244224535395572,0.244224535395572, +0.34877383993718,0.34877383993718,0.348757717267702,0.348612977112894,0.348375323439727,0.348091142944983,0.347810620637427,0.347583739357324,0.347455390455631,0.347455390455631, +0.480469090257761,0.480469090257761,0.480400222722935,0.480160944777363,0.479803447911018,0.479390163474092,0.478984653564061,0.478652040102164,0.478458639374459,0.478458639374459, +0.637302892646214,0.637302892646214,0.637167776685121,0.636794477403645,0.636276274800357,0.635696321935783,0.635126666607871,0.634643442734389,0.634343252072935,0.634343252072935, +0.813368611250773,0.813368611250773,0.813187577280687,0.812608728912898,0.811879074124922,0.811097701596669,0.810324800017961,0.809625761926391,0.809120923211192,0.809120923211192, + +00:32:43, +0.0971249360610285,0.0971249360610285,0.0971757410036084,0.0971746163379314,0.0971340415234341,0.0970704369437284,0.0970017553655845,0.0969448265459759,0.0969127593738064,0.0969127593738064, +0.0971249360610285,0.0971249360610285,0.0971757410036084,0.0971746163379314,0.0971340415234341,0.0970704369437284,0.0970017553655845,0.0969448265459759,0.0969127593738064,0.0969127593738064, +0.120900306990303,0.120900306990303,0.120947687783936,0.120935361179044,0.120878014316697,0.120795018319665,0.120707625828234,0.120635903648464,0.120595652215422,0.120595652215422, +0.169648584548861,0.169648584548861,0.169686638110438,0.169649601618195,0.169556592048663,0.169432896721601,0.16930636989241,0.169203648296645,0.1691461779296,0.1691461779296, +0.245183590803556,0.245183590803556,0.245202090683046,0.245122689048018,0.244971271272074,0.244782056846564,0.244592707672279,0.244439880195321,0.244354270042144,0.244354270042144, +0.348902207973608,0.348902207973608,0.348886075061287,0.348741364807846,0.348503770023348,0.348219663546153,0.347939215877259,0.347712395663241,0.347584081532608,0.347584081532608, +0.480584119983236,0.480584119983236,0.480515252473305,0.480276033092615,0.479918635799883,0.479505471478137,0.479100081618941,0.478767567394225,0.478574224456031,0.478574224456031, +0.637390428614435,0.637390428614435,0.63725533480923,0.636882135809492,0.636364082774133,0.635784302142948,0.635214817940936,0.634731739321023,0.634431638213035,0.634431638213035, +0.813416094312277,0.813416094312277,0.813235106850937,0.812656415886816,0.811926964995745,0.811145814108509,0.810373132772498,0.809674292836648,0.809169595052503,0.809169595052503, + +00:32:44, +0.0972344053527091,0.0972344053527091,0.0972852254740485,0.0972841067441354,0.0972435303592233,0.0971799191933895,0.0971112289764956,0.0970542924069683,0.0970222207189355,0.0970222207189355, +0.0972344053527091,0.0972344053527091,0.0972852254740485,0.0972841067441354,0.0972435303592233,0.0971799191933895,0.0971112289764956,0.0970542924069683,0.0970222207189355,0.0970222207189355, +0.121015274136404,0.121015274136404,0.121062663961812,0.12105034282083,0.120992998234261,0.120910002059396,0.120822607999294,0.120750884007539,0.120710631432617,0.120710631432617, +0.169771831398514,0.169771831398514,0.16980988435589,0.169772854606452,0.169679856826437,0.169556175603742,0.169429662499477,0.169326951808255,0.169269487508831,0.169269487508831, +0.245313129787461,0.245313129787461,0.245331620742774,0.245252232655321,0.245100844705889,0.244911668655776,0.244722358316493,0.244569562428893,0.244483970085287,0.244483970085287, +0.349030520190229,0.349030520190229,0.349014377063236,0.348869696716396,0.348632160810064,0.348348128331464,0.3480677552798,0.347840996113032,0.347712716742126,0.347712716742126, +0.480699084721166,0.480699084721166,0.480630217260793,0.48039105642434,0.480033758653638,0.479620714379586,0.47921544450137,0.478883029454554,0.478689744270564,0.478689744270564, +0.637477907103712,0.637477907103712,0.637342835457518,0.636969736677584,0.636451833107273,0.635872224587147,0.635302911387521,0.63481997791502,0.634519966294414,0.634519966294414, +0.813463543612548,0.813463543612548,0.813282602630345,0.812704068955735,0.811974821809539,0.811193892395948,0.810421431135247,0.809722789204144,0.809218232244042,0.809218232244042, + +00:32:45, +0.097343899910525,0.097343899910525,0.0973947351863076,0.0973936223978757,0.0973530444716836,0.097289426762893,0.0972207279534211,0.0971637836722228,0.0971317074898808,0.0971317074898808, +0.097343899910525,0.097343899910525,0.0973947351863076,0.0973936223978757,0.0973530444716836,0.097289426762893,0.0972207279534211,0.0971637836722228,0.0971317074898808,0.0971317074898808, +0.121130254001331,0.121130254001331,0.121177652843108,0.121165337175775,0.121107994894421,0.121024998582875,0.120937602997294,0.120865877229046,0.120825623532172,0.120825623532172, +0.169895068998824,0.169895068998824,0.169933121352159,0.169896098360347,0.169803112396466,0.169679445311681,0.169552945966282,0.16945024620702,0.169392787990464,0.169392787990464, +0.245442634095902,0.245442634095902,0.245461116144313,0.245381741619907,0.245230383512027,0.245041245852213,0.244851974361469,0.244699210073439,0.244613635544788,0.244613635544788, +0.349158776642194,0.349158776642194,0.349142623328651,0.348997972893609,0.348760495854902,0.348476537355904,0.348196238899998,0.347969540761615,0.347841296139087,0.347841296139087, +0.480813984548253,0.480813984548253,0.48074511716205,0.480506014849183,0.480148816548951,0.479735892255141,0.479330742288087,0.478998426359923,0.478805198894852,0.478805198894852, +0.637565328188383,0.637565328188383,0.637430278704303,0.637057280082295,0.636539525874262,0.635960089342996,0.635390947022371,0.634908158591243,0.634608236392007,0.634608236392007, +0.813510959197374,0.813510959197374,0.813330064664734,0.812751688165625,0.812022644612471,0.811241936505368,0.810469695152805,0.809771251075672,0.80926683483274,0.80926683483274, + +00:32:46, +0.0974534196767956,0.0974534196767956,0.0975042700827308,0.0975031632414856,0.0974625838031064,0.0973989595944702,0.097330252238528,0.097273300283853,0.0972412196287262,0.0972412196287262, +0.0974534196767956,0.0974534196767956,0.0975042700827308,0.0975031632414856,0.0974625838031064,0.0973989595944702,0.097330252238528,0.097273300283853,0.0972412196287262,0.0972412196287262, +0.121245246541865,0.121245246541865,0.121292654384621,0.121280344200656,0.121223004253907,0.121140007846759,0.121052610778817,0.120980883269509,0.120940628470575,0.120940628470575, +0.170018297334072,0.170018297334072,0.170056349083529,0.17001933286413,0.169926358742938,0.169802705829526,0.169676220276849,0.169573531476893,0.169516079358414,0.169516079358414, +0.245572103749038,0.245572103749038,0.245590576907798,0.245511215961869,0.245359887710519,0.245170788455829,0.244981555827084,0.244828823148776,0.244743266440427,0.244743266440427, +0.349286977384589,0.349286977384589,0.349270813912572,0.349126193394485,0.348888775212825,0.348604890674397,0.348324666792738,0.348098029663849,0.347969819778334,0.347969819778334, +0.480928819541093,0.480928819541093,0.480859952253619,0.480620908443684,0.480263809562384,0.479851005181397,0.479445975055723,0.479113758186994,0.478920588405577,0.478920588405577, +0.637652691942667,0.637652691942667,0.637517664623779,0.637144766097883,0.636627161149467,0.636047896484989,0.635478924920115,0.634996281424431,0.634696448580629,0.634696448580629, +0.813558341112465,0.813558341112465,0.813377492999847,0.812799273562377,0.812070433450627,0.81128994648307,0.810517924871689,0.809819678497944,0.80931540286545,0.80931540286545, + +00:32:47, +0.0975629645939069,0.0975629645939069,0.0976138301057296,0.0976127292173646,0.0975721482958495,0.0975085176304188,0.0974398017740499,0.0973828421840393,0.0973507570776218,0.0973507570776218, +0.0975629645939069,0.0975629645939069,0.0976138301057296,0.0976127292173646,0.0975721482958495,0.0975085176304188,0.0974398017740499,0.0973828421840393,0.0973507570776218,0.0973507570776218, +0.121360251714849,0.121360251714849,0.121407668543213,0.121395363852313,0.121338026269507,0.121255029807766,0.121167631300507,0.121095902085512,0.121055646204376,0.121055646204376, +0.170141516388579,0.170141516388579,0.170179567534321,0.170142558102088,0.170049595850076,0.169925957141419,0.169799485415237,0.169696807601867,0.169639361596635,0.169639361596635, +0.245701538767027,0.245701538767027,0.245720003053364,0.245640655701295,0.245489357321391,0.245300296486576,0.245111102733212,0.244958401674716,0.244872862791985,0.244872862791985, +0.34941512247244,0.34941512247244,0.349398948869978,0.349254358273964,0.349016998938737,0.348733188341806,0.348453039012848,0.34822646287453,0.348098287714649,0.348098287714649, +0.481043589776169,0.481043589776169,0.480974722611933,0.48073573728427,0.480378737770386,0.479966053234839,0.479561142880796,0.479229025012322,0.479035912879316,0.479035912879316, +0.637739998440663,0.637739998440663,0.637604993290022,0.637232194798485,0.636714739007132,0.636135646087502,0.635566845155257,0.635084346489207,0.634784602934973,0.634784602934973, +0.813605689403451,0.813605689403451,0.813424887681347,0.8128468251918,0.812118188370015,0.811337922375275,0.810566120338334,0.80986807151759,0.809363936388945,0.809363936388945, + +00:32:48, +0.0976725346043114,0.0976725346043114,0.0977234151977821,0.0977223202679792,0.0976817378923374,0.097618100813103,0.0975493765022869,0.0974924093150286,0.0974603197787845,0.0974603197787845, +0.0976725346043114,0.0976725346043114,0.0977234151977821,0.0977223202679792,0.0976817378923374,0.097618100813103,0.0975493765022869,0.0974924093150286,0.0974603197787845,0.0974603197787845, +0.121475269477182,0.121475269477182,0.121522695275802,0.121510396087647,0.121453060898068,0.121370064422674,0.121282664519068,0.121210933633698,0.121170676690183,0.121170676690183, +0.170264726146703,0.170264726146703,0.170302776688895,0.170265774058547,0.170172823702146,0.170049199231545,0.169922741365547,0.169820074565975,0.169762634689123,0.169762634689123, +0.245830939170021,0.245830939170021,0.245849394601137,0.24577006085827,0.245618792364664,0.245429769964397,0.245240615099723,0.245087945671068,0.245002424619235,0.245002424619235, +0.349543211960709,0.349543211960709,0.349527028255784,0.349382467586925,0.349145167087477,0.348861430412932,0.348581355615091,0.348354840448393,0.348226700002751,0.348226700002751, +0.481158295329855,0.481158295329855,0.481089428313314,0.48085050144726,0.480493601249298,0.48008103649184,0.479676245839719,0.479344226912349,0.479151172392532,0.479151172392532, +0.637827247756349,0.637827247756349,0.637692264776989,0.637319566258117,0.636802259521385,0.63622333822479,0.635654707802183,0.635172353860069,0.634872699529613,0.634872699529613, +0.813653004115884,0.813653004115884,0.813472248754822,0.812894343099629,0.812165909416563,0.811385864228128,0.810614281599097,0.809916430181162,0.809412435449915,0.809412435449915, + +00:32:49, +0.097782129650528,0.097782129650528,0.0978330253014326,0.0978319363358617,0.0977913525350609,0.0977277090849535,0.0976589763656054,0.0976020016191342,0.0975699076744977,0.0975699076744977, +0.097782129650528,0.097782129650528,0.0978330253014326,0.0978319363358617,0.0977913525350609,0.0977277090849535,0.0976589763656054,0.0976020016191342,0.0975699076744977,0.0975699076744977, +0.121590299785827,0.121590299785827,0.121637734539368,0.121625440863615,0.121568108096498,0.121485111648321,0.121397710391264,0.121325977870769,0.121285719884667,0.121285719884667, +0.17038792659284,0.17038792659284,0.170425976531648,0.170388980717872,0.170296042283447,0.170172432084123,0.170045988111917,0.169943332353286,0.169885898619909,0.169885898619909, +0.245960304978166,0.245960304978166,0.245978751571241,0.245899431452872,0.245748192860355,0.245559208909235,0.245370092946483,0.245217455157636,0.245131951941947,0.245131951941947, +0.349671245904299,0.349671245904299,0.349655052124844,0.349510521388182,0.349273279713824,0.348989616942516,0.348709616654171,0.348483162440113,0.3483550566973,0.3483550566973, +0.481272936278416,0.481272936278416,0.481204069433975,0.480965201008861,0.480608400075353,0.480195955028667,0.479791284008794,0.479459363963411,0.479266367021581,0.479266367021581, +0.637914439963585,0.637914439963585,0.637779479158516,0.637406880550676,0.636889722766229,0.636310972970989,0.63574251293516,0.635260303611398,0.634960738439003,0.634960738439003, +0.81370028529524,0.81370028529524,0.81351957626578,0.812941827331518,0.81221359663612,0.81143377208769,0.810662408700256,0.809964754535133,0.809460900094973,0.809460900094973, + +00:32:50, +0.097891749675142,0.097891749675142,0.0979426603592921,0.0979415773636113,0.0979009921665773,0.0978373423884674,0.0977686013064387,0.0977116190387359,0.0976795207071111,0.0976795207071111, +0.097891749675142,0.097891749675142,0.0979426603592921,0.0979415773636113,0.0979009921665773,0.0978373423884674,0.0977686013064387,0.0977116190387359,0.0976795207071111,0.0976795207071111, +0.121705342597802,0.121705342597802,0.121752786290948,0.121740498137236,0.121683167821765,0.121600171441604,0.12151276887392,0.12144103475349,0.121400775744554,0.121400775744554, +0.170511117711424,0.170511117711424,0.170549167047015,0.170512178064464,0.170419251578321,0.170295655683414,0.170169225638524,0.170066580947911,0.170009153373065,0.170009153373065, +0.246089636211603,0.246089636211603,0.246108073983792,0.246028767505177,0.245877558828475,0.245688613341027,0.245499536293353,0.245346930154221,0.245261444779889,0.245261444779889, +0.349799224358049,0.349799224358049,0.349783020531951,0.349638519732489,0.349401336872495,0.349117747985237,0.348837822184729,0.348611428904302,0.348483357852892,0.348483357852892, +0.481387512698007,0.481387512698007,0.481318646050021,0.481079836045174,0.480723134324672,0.480310808921476,0.479906257464211,0.479574436241732,0.47938149684271,0.47938149684271, +0.638001575136111,0.638001575136111,0.637866636508321,0.63749413774994,0.636977128815553,0.636398550400114,0.635830260628333,0.635348195817454,0.635048719737476,0.635048719737476, +0.813747532986914,0.813747532986914,0.813566870259649,0.812989277933043,0.812261250074459,0.811481645999947,0.810710501688009,0.810013044625894,0.80950933037065,0.80950933037065, + +00:32:51, +0.0980013946208052,0.0980013946208052,0.0980523203140378,0.0980512432938932,0.0980106567295102,0.0979470006662083,0.0978782512672861,0.0978212615162802,0.097789158819041,0.097789158819041, +0.0980013946208052,0.0980013946208052,0.0980523203140378,0.0980512432938932,0.0980106567295102,0.0979470006662083,0.0978782512672861,0.0978212615162802,0.097789158819041,0.097789158819041, +0.12182039787019,0.12182039787019,0.121867850487641,0.121855567865589,0.121798240030896,0.12171524375948,0.121627839923919,0.121556104238682,0.121515844226635,0.121515844226635, +0.170634299486928,0.170634299486928,0.170672348219471,0.170635366082764,0.170542451571145,0.170418870013715,0.170292453929582,0.170189820333996,0.170132398932699,0.170132398932699, +0.24621893289047,0.24621893289047,0.246237361858905,0.246158069035252,0.24600689028903,0.245817983279704,0.245628945160191,0.245476370680619,0.245390903152822,0.245390903152822, +0.349927147376736,0.349927147376736,0.349910933531835,0.34976646267454,0.349529338618147,0.349245823595712,0.348965972261345,0.348739639895513,0.348611603524066,0.348611603524066, +0.481502024664674,0.481502024664674,0.481433158237445,0.481194406632188,0.480837804073267,0.480425598246313,0.480021166282056,0.479689443823428,0.479496561932057,0.479496561932057, +0.638088653347548,0.638088653347548,0.637953736900003,0.63758133792957,0.637064477743124,0.636486070586062,0.63591795095573,0.635436030552379,0.635136643499247,0.635136643499247, +0.813794747236226,0.813794747236226,0.813614130781783,0.813036694949702,0.812308869777271,0.811529486010806,0.810758560608474,0.810061300499759,0.8095577263234,0.8095577263234, + +00:32:52, +0.0981110644302357,0.0981110644302357,0.0981620051084133,0.0981609340694393,0.0981203461665497,0.098056683860806,0.0979879261907135,0.0979309289942797,0.0978988219527703,0.0978988219527703, +0.0981110644302357,0.0981110644302357,0.0981620051084133,0.0981609340694393,0.0981203461665497,0.098056683860806,0.0979879261907135,0.0979309289942797,0.0978988219527703,0.0978988219527703, +0.121935465560128,0.121935465560128,0.121982927086605,0.12197065000581,0.121913324680978,0.121830328558966,0.121742923498203,0.121671186283229,0.121630925287758,0.121630925287758, +0.170757471903861,0.170757471903861,0.170795520033525,0.170758544757249,0.170665642246335,0.170542075059362,0.170415672969346,0.170313050495728,0.170255635282961,0.170255635282961, +0.246348195034898,0.246348195034898,0.246366615216687,0.246287336063163,0.246136187262024,0.245947318745194,0.245758319566848,0.245605776756621,0.245520327080506,0.245520327080506, +0.350055015015076,0.350055015015076,0.350038791179164,0.349894350268964,0.349657285005373,0.349373843828496,0.349094066938538,0.348867795468237,0.348739793765298,0.348739793765298, +0.481616472254353,0.481616472254353,0.481547606072134,0.481308912845785,0.480952409397044,0.480540323079118,0.480136010538303,0.479804386784508,0.479611562365651,0.479611562365651, +0.638175674671398,0.638175674671398,0.63804078040704,0.637668481163104,0.637151769622591,0.63657353360261,0.636005583991258,0.635523807890194,0.635224509798411,0.635224509798411, +0.813841928088415,0.813841928088415,0.813661357877456,0.813084078426914,0.812356455790172,0.811577292166092,0.810806585507693,0.810109522202961,0.809606087999595,0.809606087999595, + +00:32:53, +0.098220759046218,0.098220759046218,0.0982717146852284,0.0982706496330476,0.098230060420452,0.0981663919149568,0.098097626019353,0.0980406214153135,0.098008510050848,0.098008510050848, +0.098220759046218,0.098220759046218,0.0982717146852284,0.0982706496330476,0.098230060420452,0.0981663919149568,0.098097626019353,0.0980406214153135,0.098008510050848,0.098008510050848, +0.122050545624817,0.122050545624817,0.122098016045058,0.122085744515098,0.122028421729158,0.121945425797139,0.121858019553777,0.121786280844074,0.121746018884831,0.121746018884831, +0.170880634946772,0.170880634946772,0.170918682473728,0.170881714072436,0.170788823588344,0.170665270804728,0.170538882742106,0.17043627141733,0.170378862408037,0.170378862408037, +0.246477422665015,0.246477422665015,0.246495834077241,0.246416568608968,0.246265449767454,0.246076619757419,0.245887659533172,0.245735148402016,0.245649716582693,0.245649716582693, +0.350182827327722,0.350182827327722,0.350166593528545,0.350022182570331,0.349785176088706,0.349501808738085,0.349222106270768,0.348995895676902,0.348867928631001,0.348867928631001, +0.481730855542872,0.481730855542872,0.481661989629864,0.481423354761738,0.481066950371797,0.480654983495719,0.480250790308817,0.47991926520087,0.479726498219412,0.479726498219412, +0.638262639181046,0.638262639181046,0.638127767102796,0.637755567523965,0.637239004527483,0.636660939523417,0.636093159808705,0.635611527904801,0.635312318708942,0.635312318708942, +0.813889075588645,0.813889075588645,0.813708551591864,0.813131428410023,0.812404008158698,0.811625064511556,0.810854576431626,0.810157709781654,0.809654415445529,0.809654415445529, + +00:32:54, +0.0983304784116026,0.0983304784116026,0.0983814489873594,0.0983803899275824,0.0983397994340397,0.0982761247714233,0.0982073506959034,0.0981503387220271,0.0981182230558897,0.0981182230558897, +0.0983304784116026,0.0983304784116026,0.0983814489873594,0.0983803899275824,0.0983397994340397,0.0982761247714233,0.0982073506959034,0.0981503387220271,0.0981182230558897,0.0981182230558897, +0.122165638021514,0.122165638021514,0.122213117320275,0.122200851350709,0.122143531132639,0.122060535431134,0.121973128047703,0.121901387878218,0.121861124974823,0.121861124974823, +0.171003788600244,0.171003788600244,0.171041835524665,0.171004874012876,0.170911995581663,0.170788457234226,0.170662083232192,0.170559483083064,0.17050208029215,0.17050208029215, +0.24660661580094,0.24660661580094,0.246625018460664,0.246545766692723,0.246394677825311,0.246205886336299,0.246016965079008,0.245864485636586,0.245779071679134,0.245779071679134, +0.350310584369267,0.350310584369267,0.350294340634523,0.350149959633147,0.349913011922617,0.34962971837891,0.34935009031243,0.34912394057588,0.348996008175531,0.348996008175531, +0.481845174605951,0.481845174605951,0.481776308986303,0.481537732455709,0.481181427073214,0.480769579571837,0.480365505669357,0.480034079148306,0.479841369569153,0.479841369569153, +0.638349546949756,0.638349546949756,0.638214697060512,0.637842597085456,0.637326182531213,0.636748288422024,0.636180678481743,0.635699190669985,0.635400070304698,0.635400070304698, +0.813936189782002,0.813936189782002,0.813755711970127,0.813178744944293,0.812451526928307,0.811672803092867,0.810902533426156,0.810205863281915,0.809702708707416,0.809702708707416, + +00:32:55, +0.0984402224693067,0.0984402224693067,0.0984912079577487,0.0984901548959741,0.0984495631502018,0.0983858823730343,0.0983171001631293,0.0982600808571324,0.0982279609105771,0.0982279609105771, +0.0984402224693067,0.0984402224693067,0.0984912079577487,0.0984901548959741,0.0984495631502018,0.0983858823730343,0.0983171001631293,0.0982600808571324,0.0982279609105771,0.0982279609105771, +0.122280742707538,0.122280742707538,0.122328230869592,0.122315970469958,0.122258652848689,0.122175657418147,0.122088248937102,0.122016507342723,0.121976243514761,0.121976243514761, +0.171126932848903,0.171126932848903,0.171164979170961,0.171128024563162,0.171035158210823,0.170911634332303,0.170785274423972,0.170682685477232,0.170625288919565,0.170625288919565, +0.246735774462791,0.246735774462791,0.246754168387048,0.246674930334475,0.246523871455582,0.246335118501745,0.246146236224194,0.245993788480111,0.245908392389574,0.245908392389574, +0.350438286194241,0.350438286194241,0.350422032551582,0.350277681511859,0.350040792561515,0.349757572805346,0.349478019117862,0.349251930219476,0.349124032453182,0.349124032453182, +0.481959429519199,0.481959429519199,0.481890564217012,0.481652046003256,0.481295839576873,0.480884111383086,0.480480156695573,0.480148828702498,0.479956176490577,0.479956176490577, +0.638436398050675,0.638436398050675,0.638301570353314,0.637929569920762,0.637413303707073,0.636835580371852,0.636268140083923,0.63578679625941,0.635487764659417,0.635487764659417, +0.813983270713496,0.813983270713496,0.813802839057288,0.813226028074912,0.81249901214438,0.811720507955619,0.810950456537087,0.810253982749741,0.809750967831392,0.809750967831392, + +00:32:56, +0.0985499911623134,0.0985499911623134,0.0986009915394048,0.0985999444812197,0.0985593515118932,0.0984956646626849,0.098426874363862,0.0983698477634073,0.0983377235576585,0.0983377235576585, +0.0985499911623134,0.0985499911623134,0.0986009915394048,0.0985999444812197,0.0985593515118932,0.0984956646626849,0.098426874363862,0.0983698477634073,0.0983377235576585,0.0983377235576585, +0.122395859640265,0.122395859640265,0.122443356650405,0.122431101830221,0.122373786834631,0.122290791715433,0.122203382179157,0.122131639194711,0.122091374461733,0.122091374461733, +0.171250067677406,0.171250067677406,0.171288113397276,0.171251165707922,0.171158311460388,0.171034802083448,0.17090845630185,0.170805878584171,0.170748488274581,0.170748488274581, +0.246864898670678,0.246864898670678,0.246883283876481,0.246804059554268,0.246653030678251,0.246464316273667,0.246275472988564,0.246123056952364,0.246037678733754,0.246037678733754, +0.350565932857113,0.350565932857113,0.350549669334144,0.35040534826085,0.350168518059748,0.349885372071701,0.349605892741337,0.349379864661939,0.349252001518184,0.349252001518184, +0.482073620358119,0.482073620358119,0.48200475539744,0.481766295479824,0.481410187958244,0.48099857900497,0.480594743463005,0.48026351393902,0.48007091905928,0.48007091905928, +0.638523192556835,0.638523192556835,0.63838838705421,0.638016486102951,0.637500368128239,0.636922815446204,0.636355544688677,0.635874344746623,0.635575401846717,0.635575401846717, +0.814030318428058,0.814030318428058,0.813849932898311,0.813273277846988,0.81254646385222,0.811768179145326,0.810998345810146,0.810302068231049,0.809799192863514,0.809799192863514, + +00:32:57, +0.0986597844336722,0.0986597844336722,0.0987107996754027,0.098709758626382,0.0986691644621352,0.0986054715833362,0.0985366732409989,0.0984796393836964,0.0984475109399482,0.0984475109399482, +0.0986597844336722,0.0986597844336722,0.0987107996754027,0.098709758626382,0.0986691644621352,0.0986054715833362,0.0985366732409989,0.0984796393836964,0.0984475109399482,0.0984475109399482, +0.122510988777132,0.122510988777132,0.122558494620168,0.122546245388931,0.122488933047848,0.122405938280304,0.122318527731108,0.122246783391361,0.122206517772884,0.122206517772884, +0.171373193070453,0.171373193070453,0.17141123818831,0.17137429743182,0.171281455314964,0.171157960472185,0.171031628850269,0.170929062388258,0.170871678341538,0.170871678341538, +0.246993988444707,0.246993988444707,0.247012364949044,0.246933154372142,0.246782155513294,0.246593479671968,0.246404675391948,0.246252291073115,0.246166930731411,0.246166930731411, +0.350693524412289,0.350693524412289,0.350677251036568,0.350532959934444,0.350296188471605,0.350013116232226,0.349733711237069,0.349507743957456,0.349379915424712,0.349379915424712, +0.482187747198104,0.482187747198104,0.482118882602933,0.481880480960753,0.481524472292689,0.481112982512886,0.480709266047087,0.480378134933339,0.480185597350752,0.480185597350752, +0.638609930541145,0.638609930541145,0.638475147236088,0.638103345704973,0.637587375867768,0.637009993718266,0.636442892369321,0.635961836205053,0.635662981940102,0.635662981940102, +0.814077332970543,0.814077332970543,0.813896993538085,0.813320494305556,0.812593882097053,0.811815816707425,0.811046201290981,0.810350119771681,0.809847383849761,0.809847383849761, + +00:32:58, +0.0987696022264987,0.0987696022264987,0.0988206323088833,0.0988195972745901,0.0987790019440154,0.0987153030780159,0.0986464967375034,0.09858945566091,0.098557323000327,0.098557323000327, +0.0987696022264987,0.0987696022264987,0.0988206323088833,0.0988195972745901,0.0987790019440154,0.0987153030780159,0.0986464967375034,0.09858945566091,0.098557323000327,0.098557323000327, +0.122626130075635,0.122626130075635,0.122673644736394,0.122661401103582,0.122604091445784,0.122521097070135,0.122433685550256,0.122361939889914,0.122321673405421,0.122321673405421, +0.171496309012777,0.171496309012777,0.171534353528799,0.17149741971956,0.171404589759191,0.171281109483075,0.171154792053711,0.171052236873906,0.170994859104812,0.170994859104812, +0.247123043804977,0.247123043804977,0.247141411624812,0.247062214808128,0.246911245980682,0.246722608716545,0.24653384345417,0.24638149086213,0.246296148402276,0.246296148402276, +0.350821060914114,0.350821060914114,0.350804777713154,0.350660516586901,0.350423803851309,0.350140805341109,0.349861474659213,0.349635568160151,0.349507774226875,0.349507774226875, +0.482301810114441,0.482301810114441,0.482232945908723,0.481994602521274,0.481638692655462,0.481227321982122,0.480823724523144,0.480492691760814,0.480300211440371,0.480300211440371, +0.638696612076402,0.638696612076402,0.638561850971722,0.63819014879966,0.637674326998601,0.637097115261108,0.636530183199053,0.63604927070801,0.635750505012952,0.635750505012952, +0.814124314385729,0.814124314385729,0.813944021021421,0.813367677495571,0.812641266924028,0.811863420687276,0.811094023025161,0.810398137417397,0.809895540836031,0.809895540836031, + +00:32:59, +0.0988794444839746,0.0988794444839746,0.0989304893830537,0.0989294603690392,0.0988888639006872,0.0988251590898176,0.0987563447964055,0.0986992965380252,0.0986671596817417,0.0986671596817417, +0.0988794444839746,0.0988794444839746,0.0989304893830537,0.0989294603690392,0.0988888639006872,0.0988251590898176,0.0987563447964055,0.0986992965380252,0.0986671596817417,0.0986671596817417, +0.122741283493327,0.122741283493327,0.122788806956655,0.122776568931727,0.122719261985939,0.122636268042357,0.122548855593959,0.12247710864767,0.122436841316611,0.122436841316611, +0.171619415489151,0.171619415489151,0.171657459403514,0.171620532555882,0.171527714777747,0.171404249100719,0.171277945896692,0.171175402025568,0.171118030548818,0.171118030548818, +0.247252064771584,0.247252064771584,0.247270423923858,0.247191240882255,0.247040302100383,0.246851703427293,0.246662977195049,0.246510656339168,0.246425331766077,0.246425331766077, +0.350948542416874,0.350948542416874,0.350932249418138,0.350788018272422,0.350551364253026,0.350268439452478,0.349989183061859,0.349763337324089,0.349635577978725,0.349635577978725, +0.482415809182306,0.482415809182306,0.48234694538994,0.482108660236511,0.481752849121711,0.48134159748786,0.480938118966395,0.480607184496697,0.480414761403411,0.480414761403411, +0.638783237235282,0.638783237235282,0.638648498333766,0.638276895459727,0.63776122159356,0.637184180147678,0.636617417250953,0.636136648328687,0.635837971138536,0.635837971138536, +0.81417126271832,0.81417126271832,0.813991015393055,0.813414827461912,0.812688618378216,0.81191099113016,0.811141811058179,0.810446121213883,0.809943663868147,0.809943663868147, + +00:33:00, +0.0989893111493478,0.0989893111493478,0.099040370841187,0.0990393478529907,0.0989987502753703,0.0989350395619009,0.0988662173608009,0.0988091619580847,0.0987770209272053,0.0987770209272053, +0.0989893111493478,0.0989893111493478,0.099040370841187,0.0990393478529907,0.0989987502753703,0.0989350395619009,0.0988662173608009,0.0988091619580847,0.0987770209272053,0.0987770209272053, +0.122856448987823,0.122856448987823,0.122903981238582,0.122891748830976,0.122834444625875,0.122751451154463,0.122664037819636,0.122592289621985,0.122552021463776,0.122552021463776, +0.171742512484385,0.171742512484385,0.171780555797267,0.171743635925562,0.17165083035535,0.171527379309753,0.171401090363769,0.171298557827731,0.171241192658007,0.171241192658007, +0.247381051364615,0.247381051364615,0.247399401866245,0.247320232614544,0.247169323892356,0.246980763824098,0.246792076634401,0.246639787523986,0.246554480842536,0.246554480842536, +0.35107596897479,0.35107596897479,0.351059666205696,0.350915465045144,0.350678869730859,0.350396018620399,0.350116836499039,0.349891051503276,0.349763326734251,0.349763326734251, +0.48252974447677,0.48252974447677,0.482460881121603,0.482222654181479,0.481866941766473,0.481455809105173,0.48105244945195,0.48072161321613,0.480529247315038,0.480529247315038, +0.638869806090345,0.638869806090345,0.63873508939476,0.638363585757774,0.637848059725351,0.637271188450811,0.636704594597982,0.636223969140161,0.635925380389999,0.635925380389999, +0.814218178012939,0.814218178012939,0.814037976697645,0.813461944249382,0.812735936504611,0.811958528081282,0.811189565435451,0.810494071206743,0.809991752991852,0.809991752991852, + +00:33:01, +0.0990992021659321,0.0990992021659321,0.0991502766266225,0.0991492596697718,0.0991086610113504,0.0990449444374917,0.0989761143738516,0.0989190518641977,0.0988869066797972,0.0988869066797972, +0.0990992021659321,0.0990992021659321,0.0991502766266225,0.0991492596697718,0.0991086610113504,0.0990449444374917,0.0989761143738516,0.0989190518641977,0.0988869066797972,0.0988869066797972, +0.122971626516794,0.122971626516794,0.123019167539867,0.123006940759,0.122949639323211,0.122866646364002,0.122779232184766,0.12270748277028,0.122667213804301,0.122667213804301, +0.171865599983322,0.171865599983322,0.171903642694904,0.171866729813415,0.17177393647675,0.171650500094851,0.171524225439535,0.171421704264924,0.171364345416869,0.171364345416869, +0.247510003604154,0.247510003604154,0.247528345472033,0.247449190025013,0.247298311376559,0.247109789926845,0.246921141792036,0.246768884436333,0.246683595651371,0.246683595651371, +0.351203340642022,0.351203340642022,0.351187028129944,0.351042856959147,0.35080632033885,0.350523542898877,0.350244435024724,0.350018710751653,0.349891020547383,0.349891020547383, +0.482643616072795,0.482643616072795,0.482574753178623,0.482336584431087,0.481980970664682,0.481569956909028,0.481166716054813,0.480835977994152,0.480643669250309,0.480643669250309, +0.638956318714036,0.638956318714036,0.638821624227126,0.63845021976628,0.637934841466564,0.637358140243223,0.636791715312988,0.636311233215389,0.636012732840374,0.636012732840374, +0.814265060314137,0.814265060314137,0.814084904979774,0.813509027902707,0.812783221348131,0.81200603158577,0.811237286202312,0.810541987441507,0.810039808252812,0.810039808252812, + +00:33:02, +0.0992091174771076,0.0992091174771076,0.0992602066827655,0.0992591957627759,0.0992185960519792,0.0991548736598819,0.0990860357787859,0.0990289661995393,0.0989968168826627,0.0989968168826627, +0.0992091174771076,0.0992091174771076,0.0992602066827655,0.0992591957627759,0.0992185960519792,0.0991548736598819,0.0990860357787859,0.0990289661995393,0.0989968168826627,0.0989968168826627, +0.123086816037971,0.123086816037971,0.123134365818257,0.123122144673529,0.123064846035627,0.122981853628583,0.122894438646884,0.122822688050029,0.12278241829563,0.12278241829563, +0.171988677970847,0.171988677970847,0.172026720081308,0.171989814204291,0.171897033126738,0.171773611440724,0.17164735110862,0.17154484132171,0.171487488809931,0.171487488809931, +0.247638921510279,0.247638921510279,0.247657254761276,0.247578113133672,0.24742726457294,0.24723878175541,0.247050172687757,0.246897947095956,0.246812676212296,0.246812676212296, +0.351330657472671,0.351330657472671,0.351314335244933,0.351170194068444,0.350933716130979,0.350651012341857,0.350371978692823,0.350146315123105,0.35001865947199,0.35001865947199, +0.482757424045236,0.482757424045236,0.482688561635807,0.482450451060136,0.48209493589116,0.481684040974283,0.481280918849879,0.480950278905691,0.480758027284177,0.480758027284177, +0.639042775178681,0.639042775178681,0.638908102903167,0.638536797557613,0.63802156688967,0.637445035597515,0.636878779468697,0.636398440627212,0.636100028562573,0.636100028562573, +0.814311909666388,0.814311909666388,0.814131800283948,0.813556078466537,0.812830472953617,0.812053501688674,0.811284973404024,0.810589869963624,0.810087829696614,0.810087829696614, + +00:33:03, +0.0993190570263201,0.0993190570263201,0.0993701609530872,0.0993691560754625,0.0993285553406746,0.0992648271724293,0.0991959815188978,0.099138904907351,0.099106751479013,0.099106751479013, +0.0993190570263201,0.0993190570263201,0.0993701609530872,0.0993691560754625,0.0993285553406746,0.0992648271724293,0.0991959815188978,0.099138904907351,0.099106751479013,0.099106751479013, +0.123202017509145,0.123202017509145,0.123249576031561,0.123237360532349,0.123180064720858,0.123097072905876,0.123009657163586,0.122937905418769,0.122897634895263,0.122897634895263, +0.17211174643188,0.17211174643188,0.172149787941401,0.172112889083078,0.172020120290141,0.171896713332119,0.17177046735569,0.17166796898269,0.171610622821757,0.171610622821757, +0.247767805103062,0.247767805103062,0.247786129754021,0.247707001960526,0.247556183501445,0.247367739329666,0.247179169341365,0.247026975522595,0.246941722545018,0.246941722545018, +0.351457919520775,0.351457919520775,0.351441587604656,0.351297476426992,0.351061057161166,0.350778427003223,0.350499467557186,0.350273864671454,0.35014624356188,0.35014624356188, +0.482871168468842,0.482871168468842,0.482802306567851,0.48256425414332,0.482208837520626,0.481798061375691,0.481395057911939,0.481064516025571,0.480872321491486,0.480872321491486, +0.639129175556491,0.639129175556491,0.638994525495075,0.638623319204019,0.638108236067025,0.637531874586168,0.636965787137723,0.636485591448355,0.636187267629393,0.636187267629393, +0.814358726114088,0.814358726114088,0.814178662654598,0.813603095985445,0.812877691365835,0.812100938434968,0.81133262708577,0.810637718818468,0.810135817368768,0.810135817368768, + +00:33:04, +0.0994290207570816,0.0994290207570816,0.0994801393811247,0.0994791405513566,0.0994385388209201,0.0993748049185579,0.0993059515375474,0.0992488679309398,0.0992167104121258,0.0992167104121258, +0.0994290207570816,0.0994290207570816,0.0994801393811247,0.0994791405513566,0.0994385388209201,0.0993748049185579,0.0993059515375474,0.0992488679309398,0.0992167104121258,0.0992167104121258, +0.123317230888165,0.123317230888165,0.123364798137645,0.123352588293307,0.123295295336702,0.123212304153606,0.123124887692527,0.123053134834094,0.123012863560763,0.123012863560763, +0.172234805351375,0.172234805351375,0.172272846260139,0.1722359544347,0.172143197951821,0.172019805753823,0.171893574165451,0.171791087232503,0.171733747436949,0.171733747436949, +0.247896654402568,0.247896654402568,0.247914970470312,0.247835856525576,0.247685068182014,0.247496662669479,0.247308131772654,0.247155969735987,0.247070734669242,0.247070734669242, +0.35158512684031,0.35158512684031,0.351568785263042,0.351424704088683,0.351188343483271,0.350905786936796,0.3506269016716,0.350401359450461,0.350273772870801,0.350273772870801, +0.482984849418252,0.482984849418252,0.482915988049347,0.482677993755226,0.48232267562769,0.481912018187898,0.481509133315675,0.481178689428508,0.480986551946973,0.480986551946973, +0.639215519919562,0.639215519919562,0.639080892074921,0.638709784777633,0.638194849070869,0.637618657281551,0.63705273839256,0.636572685751427,0.636274450113515,0.636274450113515, +0.81440550970156,0.81440550970156,0.814225492136079,0.81365008050393,0.812924876629472,0.81214834186955,0.811380247292655,0.810685534051335,0.810183771314708,0.810183771314708, + +00:33:05, +0.09953900861297,0.09953900861297,0.0995901419104812,0.0995891491340497,0.0995485464362655,0.0994848068417574,0.0994159457781609,0.0993588552136792,0.0993266936253445,0.0993266936253445, +0.09953900861297,0.09953900861297,0.0995901419104812,0.0995891491340497,0.0995485464362655,0.0994848068417574,0.0994159457781609,0.0993588552136792,0.0993266936253445,0.0993266936253445, +0.123432456132937,0.123432456132937,0.123480032094434,0.123467827914308,0.123410537841013,0.123327547329561,0.12324013019142,0.123168376253659,0.123128104249749,0.123128104249749, +0.172357854714326,0.172357854714326,0.172395895022516,0.172359010244118,0.172266266096679,0.172142888690656,0.172016671522644,0.171914196055824,0.171856862640145,0.171856862640145, +0.248025469428857,0.248025469428857,0.248043776930184,0.247964676848814,0.247813918634578,0.247625551794712,0.247437060001413,0.247284929755862,0.247199712604664,0.247199712604664, +0.351712279485193,0.351712279485193,0.351695928273963,0.35155187710735,0.351315575151091,0.35103309219634,0.350754281089794,0.350528799513828,0.35040124745244,0.35040124745244, +0.483098466968002,0.483098466968002,0.483029606154779,0.482791669970334,0.482436450286857,0.482025911485442,0.481623145135663,0.481292799189112,0.481100718725271,0.481100718725271, +0.639301808339873,0.639301808339873,0.639167202714664,0.638796194350472,0.638281405973326,0.637705383755914,0.637139633305589,0.636659723608919,0.636361576087502,0.636361576087502, +0.81445226047305,0.81445226047305,0.81427228877267,0.813697032066413,0.812972028789141,0.81219571203724,0.811427834069709,0.810733315707445,0.810231691579789,0.810231691579789, + +00:33:06, +0.099649020537629,0.099649020537629,0.0997001684848257,0.0996991817671987,0.0996585781303262,0.0995948328855837,0.0995259641842304,0.0994688666990085,0.0994367010620785,0.0994367010620785, +0.099649020537629,0.099649020537629,0.0997001684848257,0.0996991817671987,0.0996585781303262,0.0995948328855837,0.0995259641842304,0.0994688666990085,0.0994367010620785,0.0994367010620785, +0.123547693201427,0.123547693201427,0.123595277859912,0.123583079353317,0.123525792191705,0.123442802391583,0.123355384618037,0.123283629635175,0.1232433569199,0.1232433569199, +0.172480894505762,0.172480894505762,0.172518934213562,0.172482056496329,0.172389324709652,0.172265962127478,0.172139759412047,0.172037295437367,0.171979968416023,0.171979968416023, +0.248154250201984,0.248154250201984,0.248172549153667,0.248093462950228,0.247942734879067,0.24775440672522,0.247565954047426,0.247413855601946,0.24732865637098,0.24732865637098, +0.351839377509276,0.351839377509276,0.351823016691224,0.351678995536766,0.351442752218362,0.351160342835555,0.350881605865434,0.350656184915196,0.350528667360426,0.350528667360426, +0.483212021192517,0.483212021192517,0.483143160958524,0.482905282863019,0.482550161572522,0.482139741342755,0.481737093446373,0.481406845381886,0.481214821900904,0.481214821900904, +0.639388040889287,0.639388040889287,0.639253457486146,0.638882547994437,0.638367906846404,0.637792054081392,0.637226471949072,0.636746705093206,0.636448645623802,0.636448645623802, +0.814498978472729,0.814498978472729,0.814319052608575,0.81374395071724,0.813019147889378,0.812243048982783,0.811475387461885,0.810781063831939,0.810279578209289,0.810279578209289, + +00:33:07, +0.0997590564747682,0.0997590564747682,0.099810219047893,0.0998092383945266,0.0997686338467837,0.0997048829936583,0.0996360066993138,0.0995789023304327,0.0995467326658034,0.0995467326658034, +0.0997590564747682,0.0997590564747682,0.099810219047893,0.0998092383945266,0.0997686338467837,0.0997048829936583,0.0996360066993138,0.0995789023304327,0.0995467326658034,0.0995467326658034, +0.123662942051661,0.123662942051661,0.12371053539212,0.123698342568354,0.123641058346749,0.123558069297576,0.123470650930209,0.123398894936414,0.123358621528954,0.123358621528954, +0.172603924710749,0.172603924710749,0.172641963818343,0.172605093176367,0.172512373775711,0.172389026049183,0.172262837818475,0.172160385361881,0.172103064749293,0.172103064749293, +0.248282996741998,0.248282996741998,0.248301287160787,0.248222214849802,0.248071516935402,0.247883227480853,0.247694813930471,0.247542747293958,0.247457565987876,0.247457565987876, +0.351966420966354,0.351966420966354,0.351950050568574,0.351806059430639,0.351569874738762,0.351287538908082,0.351008876052128,0.350783515708145,0.350656032648324,0.350656032648324, +0.48332551216612,0.48332551216612,0.483256652534853,0.483018832507547,0.482663809558978,0.482253507834163,0.481850978322168,0.481520828081226,0.481328861548291,0.481328861548291, +0.639474217639552,0.639474217639552,0.639339656461093,0.638968845781314,0.638454351761996,0.637878668330005,0.637313254395157,0.636833630276548,0.636535658794747,0.636535658794747, +0.814545663744693,0.814545663744693,0.814365783687923,0.813790836500683,0.813066233974644,0.812290352750848,0.81152290751406,0.810828778469883,0.81032743124841,0.81032743124841, + +00:33:08, +0.0998691163681632,0.0998691163681632,0.0999202935434838,0.0999193189598221,0.0998787135293852,0.0998149571096687,0.0997460732670351,0.0996889620515231,0.0996567883800603,0.0996567883800603, +0.0998691163681632,0.0998691163681632,0.0999202935434838,0.0999193189598221,0.0998787135293852,0.0998149571096687,0.0997460732670351,0.0996889620515231,0.0996567883800603,0.0996567883800603, +0.12377820264172,0.12377820264172,0.12382580464916,0.123813617517502,0.123756336264176,0.123673348005503,0.123585929085825,0.123514172115205,0.123473898034707,0.123473898034707, +0.172726945314389,0.172726945314389,0.172764983821962,0.172728120269303,0.172635413279868,0.172512080440703,0.17238590672678,0.172283465814152,0.172226151624707,0.172226151624707, +0.248411709068939,0.248411709068939,0.24842999097156,0.24835093256751,0.248200264823499,0.248012014081455,0.247823639670322,0.247671604851615,0.247586441475035,0.247586441475035, +0.352093409910159,0.352093409910159,0.352077029959699,0.35193306884262,0.351696942765904,0.351414680467499,0.35113609170342,0.350910791946196,0.350783343369642,0.350783343369642, +0.483438939963023,0.483438939963023,0.483370080957932,0.483132318978081,0.482777394320409,0.482367211033887,0.481964799837306,0.481634747361425,0.481442837741745,0.481442837741745, +0.639560338662302,0.639560338662302,0.639425799711118,0.639055087782774,0.63854074079188,0.637965226573657,0.637399980715877,0.63692049923109,0.636622615672553,0.636622615672553, +0.814592316332963,0.814592316332963,0.814412482054766,0.813837689460937,0.813113287089323,0.812337623386027,0.811570394271032,0.810876459666265,0.810375250742275,0.810375250742275, + +00:33:09, +0.0999792001616551,0.0999792001616551,0.100030391915464,0.10002942340694,0.0999888171219436,0.0999250551773683,0.099856163831084,0.0997990458059167,0.0997668681484567,0.0997668681484567, +0.0999792001616551,0.0999792001616551,0.100030391915464,0.10002942340694,0.0999888171219436,0.0999250551773683,0.099856163831084,0.0997990458059167,0.0997668681484567,0.0997668681484567, +0.123893474929746,0.123893474929746,0.123941085589189,0.123928904158898,0.123871625902075,0.123788638473382,0.123701219042833,0.123629461129438,0.123589186395013,0.123589186395013, +0.172849956301819,0.172849956301819,0.172887994209557,0.172851137760241,0.172758443207168,0.172635125287006,0.17250896612185,0.172406536779003,0.172349229027051,0.172349229027051, +0.248540387202844,0.248540387202844,0.248558660606001,0.248479616123323,0.248328978563268,0.248140766546867,0.247952431286745,0.247800428294627,0.247715282852137,0.247715282852137, +0.35222034439436,0.35222034439436,0.352203954918223,0.352060023826297,0.351823956353344,0.351541767567328,0.351263252872798,0.351038013682808,0.350910599577826,0.350910599577826, +0.483552304657335,0.483552304657335,0.483483446301818,0.483245742348675,0.482890915930894,0.482480851016041,0.482078558065938,0.481748603296668,0.481556750555473,0.481556750555473, +0.639646404029055,0.639646404029055,0.639511887307716,0.639141274070373,0.638627074007717,0.638051728884136,0.637486650983148,0.637007312028861,0.636709516329319,0.636709516329319, +0.814638936281485,0.814638936281485,0.814459147753085,0.813884509642121,0.813160307277726,0.812384860932837,0.811617847777527,0.810924107465999,0.810423036735934,0.810423036735934, + +00:33:10, +0.100089307799151,0.100089307799151,0.100140514107767,0.1001395516798,0.100098944568338,0.100035177140576,0.0999662783352159,0.0999091535373162,0.0998769719146654,0.0998769719146654, +0.100089307799151,0.100089307799151,0.100140514107767,0.1001395516798,0.100098944568338,0.100035177140576,0.0999662783352159,0.0999091535373162,0.0998769719146654,0.0998769719146654, +0.124008758873938,0.124008758873938,0.124056378170426,0.12404420245074,0.123986927218592,0.123903940659292,0.12381652075924,0.123744761937058,0.123704486567787,0.123704486567787, +0.172972957658214,0.172972957658214,0.173010994966305,0.172974145634325,0.172881463542692,0.172758160573097,0.17263201598861,0.172529598241294,0.172472296941148,0.172472296941148, +0.248669031163743,0.248669031163743,0.248687296084114,0.248608265537205,0.248457658174615,0.248269484896921,0.248081188799503,0.247929217642696,0.247844090138852,0.247844090138852, +0.352347224472569,0.352347224472569,0.35233082549771,0.352186924435197,0.351950915554574,0.351668800261025,0.351390359613686,0.351165180971382,0.351037801326262,0.351037801326262, +0.483665606323059,0.483665606323059,0.483596748640464,0.483359102693279,0.483004374464406,0.482594427854631,0.482192253082109,0.481862395961033,0.481670600063576,0.481670600063576, +0.639732413811214,0.639732413811214,0.639597919322271,0.639227404715554,0.638713351481055,0.638138175333118,0.637573265268772,0.637094068741773,0.636796360837032,0.636796360837032, +0.81468552363413,0.81468552363413,0.814505780826782,0.813931297088283,0.813207294584087,0.81243206543572,0.811665268078192,0.810971721913921,0.810470789274358,0.810470789274358, + +00:33:11, +0.100199439224624,0.100199439224624,0.10025066006439,0.100249703722389,0.100209095812512,0.100145322943177,0.100076416723252,0.10001928518949,0.0999870996224255,0.0999870996224255, +0.100199439224624,0.100199439224624,0.10025066006439,0.100249703722389,0.100209095812512,0.100145322943177,0.100076416723252,0.10001928518949,0.0999870996224255,0.0999870996224255, +0.124124054432554,0.124124054432554,0.124171682351144,0.124159512351283,0.124102240171934,0.124019254521371,0.123931834193111,0.123860074496072,0.123819798511001,0.123819798511001, +0.173095949368784,0.173095949368784,0.173133986077415,0.173097143876733,0.173004474271559,0.172881186284016,0.172755056312022,0.172652650185921,0.172595355351858,0.172595355351858, +0.24879764097166,0.24879764097166,0.248815897425899,0.248736880829113,0.248586303677437,0.248398169151444,0.248209912228353,0.248057972915524,0.247972863354849,0.247972863354849, +0.352474050198335,0.352474050198335,0.352457641751663,0.352313770722788,0.352077820423028,0.351795778601989,0.351517411979449,0.351292293865256,0.351164948668276,0.351164948668276, +0.483778845034089,0.483778845034089,0.483709988047718,0.483472400085736,0.483117769994813,0.482707941623562,0.482305884959761,0.481976125428496,0.481784386340051,0.481784386340051, +0.639818368080069,0.639818368080069,0.639683895826049,0.639313479789642,0.638799573283328,0.63822456599216,0.637659823644436,0.637180769441625,0.63688314926756,0.63688314926756, +0.814732078434695,0.814732078434695,0.814552381319686,0.813978051843391,0.813254249052565,0.81247923693904,0.8117126552176,0.81101930305479,0.810518508402442,0.810518508402442, + +00:33:12, +0.100309594382112,0.100309594382112,0.100360829729397,0.100359879478758,0.100319270798477,0.100255492529121,0.10018657893908,0.100129440706274,0.100097251215542,0.100097251215542, +0.100309594382112,0.100309594382112,0.100360829729397,0.100359879478758,0.100319270798477,0.100255492529121,0.10018657893908,0.100129440706274,0.100097251215542,0.100097251215542, +0.124239361563911,0.124239361563911,0.124286998089679,0.124274833818841,0.124217564720363,0.124134580017812,0.124047159302568,0.123975398764543,0.123935122182685,0.123935122182685, +0.173218931418775,0.173218931418775,0.173256967528134,0.173220132472679,0.173127475378923,0.17300420240484,0.172878087077082,0.172775692597818,0.172718404244077,0.172718404244077, +0.248926216646612,0.248926216646612,0.248944464651351,0.248865462018999,0.248714915091627,0.248526819330258,0.248338601593044,0.248186694132802,0.248101602519789,0.248101602519789, +0.352600821625144,0.352600821625144,0.352584403733525,0.352440562742476,0.352204671012078,0.351922702643557,0.351644410023391,0.35141935241771,0.351292041657135,0.351292041657135, +0.483892020864218,0.483892020864218,0.483823164597321,0.483585634599784,0.483231102595875,0.482821392396629,0.482419453772727,0.482089791772924,0.481898109458788,0.481898109458788, +0.639904266906794,0.639904266906794,0.639769816890206,0.639399499363851,0.638885739485854,0.638310900932708,0.637746326181713,0.637267414200102,0.636969881692661,0.636969881692661, +0.814778600726902,0.814778600726902,0.814598949275554,0.814024773951343,0.813301170727243,0.812526375487088,0.811760009240247,0.811066850933291,0.810566194165005,0.810566194165005, + +00:33:13, +0.100419773215719,0.100419773215719,0.100471023046916,0.100470078893024,0.100429469470308,0.100365685842426,0.100296764926652,0.100239620031566,0.100207426637884,0.100207426637884, +0.100419773215719,0.100419773215719,0.100471023046916,0.100470078893024,0.100429469470308,0.100365685842426,0.100296764926652,0.100239620031566,0.100207426637884,0.100207426637884, +0.124354680226382,0.124354680226382,0.124402325344421,0.124390166811786,0.124332900822201,0.12424991710687,0.124162496045793,0.124090734700594,0.124050457540928,0.124050457540928, +0.173341903793469,0.173341903793469,0.173379939303746,0.173343111407413,0.173250466849974,0.173127208920683,0.173001108268825,0.172898725461952,0.172841443602738,0.172841443602738, +0.24905475820861,0.24905475820861,0.249072997780457,0.248994009126809,0.24884349243707,0.24865543545318,0.248467256913322,0.24831538131422,0.248230307653328,0.248230307653328, +0.352727538806424,0.352727538806424,0.352711111496676,0.352567300547605,0.352331467375035,0.352049572439007,0.351771353798758,0.351546356681964,0.351419080346044,0.351419080346044, +0.484005133887129,0.484005133887129,0.483936278362908,0.483698806309056,0.483344372341249,0.482934780247525,0.482532959594737,0.482203395068081,0.482011769493571,0.482011769493571, +0.63999011036245,0.63999011036245,0.63985568258578,0.63948546350928,0.638971850159837,0.638397180226093,0.637832772952059,0.637354003088772,0.637056558183974,0.637056558183974, +0.814825090554399,0.814825090554399,0.814645484738064,0.814071463455959,0.813348059652132,0.81257348112408,0.811807330190555,0.811114365594032,0.81061384660679,0.81061384660679, + +00:33:14, +0.100529975669616,0.100529975669616,0.100581239961143,0.10058030190937,0.100539691772147,0.100475902827172,0.100406974629987,0.100349823109333,0.100317625833389,0.100317625833389, +0.100529975669616,0.100529975669616,0.100581239961143,0.10058030190937,0.100539691772147,0.100475902827172,0.100406974629987,0.100349823109333,0.100317625833389,0.100317625833389, +0.124470010378398,0.124470010378398,0.124517664073819,0.124505511288547,0.124448248435829,0.124365265746855,0.124277844381026,0.124206082262405,0.124165804543877,0.124165804543877, +0.173464866478184,0.173464866478184,0.173502901389567,0.173466080666222,0.173373448669938,0.173250205816693,0.173124119872321,0.173021748763331,0.17296447341281,0.17296447341281, +0.249183265677659,0.249183265677659,0.249201496833197,0.249122522172482,0.248972035733647,0.248784017540017,0.248595878208926,0.248444034479458,0.248358978775118,0.248358978775118, +0.352854201795542,0.352854201795542,0.352837765094438,0.35269398419146,0.352458209565151,0.352176388041555,0.351898243358732,0.351673306711175,0.35154606478815,0.35154606478815, +0.484118184176402,0.484118184176402,0.48404932941801,0.483811915287079,0.483457579304486,0.483048105249836,0.482646402499416,0.482316935387627,0.482125366518082,0.482125366518082, +0.640075898517985,0.640075898517985,0.639941492983698,0.639571372296913,0.639057905376369,0.638483403943531,0.63791916402682,0.637440536179091,0.637143178813025,0.637143178813025, +0.81487154796076,0.81487154796076,0.814691987750825,0.814118120400986,0.813394915871166,0.812620553894156,0.811854618112869,0.811161847081547,0.810661465772465,0.810661465772465, + +00:33:15, +0.100640201688037,0.100640201688037,0.100691480416338,0.100690548472046,0.1006499376482,0.100586143427507,0.100517207993168,0.100460049883607,0.100427848746059,0.100427848746059, +0.100640201688037,0.100640201688037,0.100691480416338,0.100690548472046,0.1006499376482,0.100586143427507,0.100517207993168,0.100460049883607,0.100427848746059,0.100427848746059, +0.124585351978451,0.124585351978451,0.124633014236382,0.124620867207612,0.124563607519684,0.124480625896138,0.124393204266564,0.124321441408216,0.124281163149738,0.124281163149738, +0.173587819458273,0.173587819458273,0.173625853770953,0.173589040234426,0.173496420824076,0.173373193078056,0.173247121872675,0.173144762486994,0.1730874936593,0.1730874936593, +0.249311739073756,0.249311739073756,0.249329961829545,0.24925100117595,0.249100545001232,0.248912565610575,0.248724465499589,0.248572653648195,0.248487615904803,0.248487615904803, +0.352980810645802,0.352980810645802,0.352964364580069,0.352820613727265,0.352584897635616,0.352303149504357,0.352025078756438,0.351800202558444,0.351672995036538,0.351672995036538, +0.484231171805511,0.484231171805511,0.484162317836052,0.483924961607275,0.483570723559034,0.483161367477044,0.482759782560284,0.482430412805113,0.482238900605897,0.482238900605897, +0.640161631444232,0.640161631444232,0.640027248154772,0.639657225797623,0.639143905206427,0.638569572156124,0.638005499477225,0.6375270135424,0.637229743651228,0.637229743651228, +0.814917972989485,0.814917972989485,0.814738458357367,0.814164744830097,0.813441739428204,0.812667593841381,0.81190187305146,0.811209295440292,0.810709051706622,0.810709051706622, + +00:33:16, +0.100750451215284,0.100750451215284,0.100801744356827,0.100800818525364,0.100760207042741,0.100696407587645,0.100627464960346,0.100570300298484,0.10053809531996,0.10053809531996, +0.100750451215284,0.100750451215284,0.100801744356827,0.100800818525364,0.100760207042741,0.100696407587645,0.100627464960346,0.100570300298484,0.10053809531996,0.10053809531996, +0.124700704985088,0.124700704985088,0.124748375790674,0.124736234527526,0.124678978032261,0.124595997513145,0.124508575660764,0.124436812096321,0.124396533316775,0.124396533316775, +0.173710762719125,0.173710762719125,0.173748796433292,0.173711990097383,0.173619383297687,0.173496170689991,0.17337011425503,0.17326776661802,0.173210504327247,0.173210504327247, +0.249440178416895,0.249440178416895,0.249458392789471,0.249379446157139,0.249229020259692,0.24904107968465,0.248853018805039,0.248701238840101,0.248616219062022,0.248616219062022, +0.353107365410449,0.353107365410449,0.353090910006769,0.352947189208183,0.352711531639559,0.352429856880509,0.35215186004494,0.351927044276808,0.351799871144235,0.351799871144235, +0.484344096847827,0.484344096847827,0.484275243690356,0.484037945342963,0.483683805178232,0.483274567002526,0.482873099850754,0.48254382739399,0.482352371830485,0.482352371830485, +0.640247309211912,0.640247309211912,0.640112948169701,0.639743024082166,0.639229849720873,0.638655684934862,0.638091779374389,0.637613435249925,0.637316252769879,0.637316252769879, +0.814964365684,0.814964365684,0.814784896601149,0.814211336786891,0.813488530367034,0.812714601009745,0.811949095050524,0.811256710714651,0.810756604453776,0.810756604453776, + +00:33:17, +0.100860724195722,0.100860724195722,0.100912031727001,0.100911112013705,0.100870499900108,0.100806695251863,0.100737745475735,0.100680574298128,0.100648365499227,0.100648365499227, +0.100860724195722,0.100860724195722,0.100912031727001,0.100911112013705,0.100870499900108,0.100806695251863,0.100737745475735,0.100680574298128,0.100648365499227,0.100648365499227, +0.124816069356914,0.124816069356914,0.124863748695319,0.124851613206893,0.124794359932114,0.124711380556363,0.124623958522038,0.124552194285078,0.124511915003309,0.124511915003309, +0.173833696246165,0.173833696246165,0.17387172936201,0.173834930240485,0.173742336076103,0.173619138637756,0.173493097004563,0.173390761141522,0.17333350540173,0.17333350540173, +0.249568583727059,0.249568583727059,0.249586789732935,0.249507857135969,0.249357461528889,0.249169559782034,0.248981538144997,0.248829790074842,0.24874478826641,0.24874478826641, +0.353233866142668,0.353233866142668,0.353217401427676,0.353073710687318,0.352838111630051,0.352556510223048,0.352278587277241,0.352053831919248,0.351926693164207,0.351926693164207, +0.484456959376612,0.484456959376612,0.484388107054137,0.484150866567354,0.483796824235318,0.483387703899553,0.482986354444137,0.482657179227602,0.482465780265213,0.482465780265213, +0.64033293189163,0.64033293189163,0.640198593099072,0.639828767221189,0.639315738990459,0.638741742350621,0.638178003789316,0.637699801372781,0.637402706240164,0.637402706240164, +0.815010726087658,0.815010726087658,0.814831302525557,0.814257896314893,0.813535288731365,0.812761575443167,0.811996284154182,0.811304092948929,0.810804124058369,0.810804124058369, + +00:33:18, +0.100971020573784,0.100971020573784,0.101022342471318,0.101021428881513,0.100980816164703,0.100917006364506,0.100848049483617,0.100790871826766,0.100758659228057,0.100758659228057, +0.100971020573784,0.100971020573784,0.101022342471318,0.101021428881513,0.100980816164703,0.100917006364506,0.100848049483617,0.100790871826766,0.100758659228057,0.100758659228057, +0.124931445052593,0.124931445052593,0.124979132908998,0.124967003204374,0.124909753177855,0.124826774984333,0.12473935280886,0.124667587932898,0.12462730816772,0.12462730816772, +0.173956620024851,0.173956620024851,0.173994652542567,0.173957860649161,0.173865279144693,0.173742096906641,0.173616070106488,0.17351374604265,0.173456496867863,0.173456496867863, +0.249696955024227,0.249696955024227,0.249715152679892,0.249636234132355,0.249485868828676,0.249298005922513,0.24911002353918,0.248958307372075,0.248873323537596,0.248873323537596, +0.353360312895581,0.353360312895581,0.353343838895869,0.35320017821771,0.352964637660101,0.352683109584948,0.352405260506285,0.352180565538683,0.35205346114936,0.35205346114936, +0.484569759465028,0.484569759465028,0.484500908000505,0.484263725353556,0.483909780803423,0.483500778241294,0.48309954641364,0.482770468379188,0.482579125983344,0.482579125983344, +0.640418499553882,0.640418499553882,0.640284183013358,0.639914455285223,0.639401573085821,0.638827744474162,0.638264172792894,0.637786111981967,0.637489104133154,0.637489104133154, +0.815057054243738,0.815057054243738,0.814877676173902,0.814304423457553,0.813582014564837,0.812808517185486,0.81204344040648,0.81135144218736,0.810851610564767,0.810851610564767, + +00:33:19, +0.101081340293968,0.101081340293968,0.1011326765343,0.101131769073299,0.101091155780996,0.101027340869984,0.100958376928338,0.100901192828693,0.100868976450715,0.100868976450715, +0.101081340293968,0.101081340293968,0.1011326765343,0.101131769073299,0.101091155780996,0.101027340869984,0.100958376928338,0.100901192828693,0.100868976450715,0.100868976450715, +0.125046832030847,0.125046832030847,0.125094528390448,0.125082404478687,0.125025157728153,0.124942180755658,0.124854758479759,0.124782992998253,0.124742712768445,0.124742712768445, +0.17407953404068,0.17407953404068,0.174117565960457,0.174080781308873,0.17398821248886,0.173865045481976,0.173739033546055,0.173636721306589,0.173579478710795,0.173579478710795, +0.249825292328371,0.249825292328371,0.24984348165029,0.249764577166201,0.249614242178903,0.249426418125864,0.249238475007295,0.249086790751456,0.2490018248952,0.2490018248952, +0.35348670572225,0.35348670572225,0.353470222464363,0.353326591852342,0.353091109782657,0.352809655019124,0.352531879784956,0.352307245187971,0.352180175152542,0.352180175152542, +0.484682497186128,0.484682497186128,0.484613646602469,0.484376521774575,0.484022674955576,0.483613790100812,0.483212675832362,0.482883694921884,0.482692409058034,0.482692409058034, +0.640504012269049,0.640504012269049,0.64036971798292,0.640000088344687,0.639487352077483,0.638913691376136,0.638350286455901,0.63787236714837,0.637575446519807,0.637575446519807, +0.815103350195446,0.815103350195446,0.814924017589422,0.81435091825825,0.813628707911013,0.812855426280472,0.81209056385139,0.811398758474101,0.810899064017259,0.810899064017259, + +00:33:20, +0.101191683300835,0.101191683300835,0.101243033860534,0.101242132533639,0.101201518693522,0.101137698712772,0.101068727754309,0.101011537248268,0.100979317111531,0.100979317111531, +0.101191683300835,0.101191683300835,0.101243033860534,0.101242132533639,0.101201518693522,0.101137698712772,0.101068727754309,0.101011537248268,0.100979317111531,0.100979317111531, +0.125162230250454,0.125162230250454,0.125209935098466,0.12519781698861,0.125140573541733,0.125057597828995,0.124970175493322,0.124898409439672,0.124858128763982,0.124858128763982, +0.17420243827918,0.17420243827918,0.174240469601213,0.174203692205121,0.174111136094043,0.173987984349123,0.173861987308547,0.17375968691856,0.173702450915711,0.173702450915711, +0.249953595659457,0.249953595659457,0.249971776664071,0.249892886257409,0.249742581599411,0.249554796411861,0.249366892569047,0.24921524023263,0.24913029235884,0.24913029235884, +0.353613044675679,0.353613044675679,0.353596552186116,0.353452951644135,0.353217528050608,0.352936146578433,0.352658445166076,0.352433870919913,0.352306835226538,0.352306835226538, +0.484795172612865,0.484795172612865,0.48472632293293,0.484489255903308,0.4841355067647,0.483726739551066,0.483325742773303,0.482996858928723,0.482805629562339,0.482805629562339, +0.640589470107401,0.640589470107401,0.640455198078006,0.640085666469889,0.639573076035859,0.638999583127079,0.638436344848998,0.637958566942764,0.637661733470967,0.637661733470967, +0.815149613985914,0.815149613985914,0.814970326815282,0.814397380760286,0.813675368813382,0.812902302771817,0.812137654532809,0.811446041853233,0.810946484460063,0.810946484460063, + +00:33:21, +0.101302049539015,0.101302049539015,0.101353414394674,0.101352519207173,0.101311904846881,0.10124807983741,0.101179101906008,0.101121905029915,0.101089681154899,0.101089681154899, +0.101302049539015,0.101302049539015,0.101353414394674,0.101352519207173,0.101311904846881,0.10124807983741,0.101179101906008,0.101121905029915,0.101089681154899,0.101089681154899, +0.12527763967025,0.12527763967025,0.125325352991906,0.125313240692974,0.125256000577381,0.125173026163062,0.125085603808194,0.12501383721574,0.124973556112882,0.124973556112882, +0.174325332725918,0.174325332725918,0.174363363450399,0.174326593323437,0.174234049945718,0.17411091349348,0.173984931379286,0.17388264286382,0.173825413467832,0.173825413467832, +0.250081865037443,0.250081865037443,0.250100037741169,0.250021161425871,0.249870887110036,0.24968314080027,0.249495276244133,0.249343655835241,0.249258725948126,0.249258725948126, +0.353739329808808,0.353739329808808,0.353722828114025,0.35357925764595,0.353343892516782,0.353062584315668,0.352784956702411,0.352560442787247,0.352433441424077,0.352433441424077, +0.484907785818084,0.484907785818084,0.484838937064686,0.484601927812551,0.484248276303615,0.483839626664911,0.483438747309356,0.483109960472631,0.482918787569207,0.482918787569207, +0.640674873139093,0.640674873139093,0.640540623368752,0.640171189731023,0.639658745031247,0.639085419797416,0.638522348042738,0.63804471143581,0.637747965057366,0.637747965057366, +0.815195845658203,0.815195845658203,0.815016603894574,0.814443811006895,0.813721997315362,0.812949146703141,0.81218471249456,0.811493292368767,0.810993871937318,0.810993871937318, + +00:33:22, +0.1014124389532,0.1014124389532,0.101463818081438,0.101462929038609,0.101422314185737,0.101358484188503,0.101289499327978,0.101232296118125,0.101200068525281,0.101200068525281, +0.1014124389532,0.1014124389532,0.101463818081438,0.101462929038609,0.101422314185737,0.101358484188503,0.101289499327978,0.101232296118125,0.101200068525281,0.101200068525281, +0.125393060249129,0.125393060249129,0.125440782029679,0.125428675550673,0.125371438793939,0.125288465716633,0.125201043383078,0.125129276285102,0.125088994773758,0.125088994773758, +0.174448217366494,0.174448217366494,0.174486247493616,0.17444948464939,0.174356954029392,0.174233832900481,0.174107865743628,0.174005589127661,0.173948366352414,0.173948366352414, +0.250210100482279,0.250210100482279,0.250228264901512,0.250149402691474,0.249999158730607,0.24981145131085,0.249623626052243,0.249472037578922,0.249387125682662,0.249387125682662, +0.353865561174519,0.353865561174519,0.353849050300924,0.353705509910588,0.353470203233948,0.353188968283566,0.352911414446663,0.352686960842655,0.352559993797825,0.352559993797825, +0.485020336874528,0.485020336874528,0.484951489070432,0.484714537574997,0.484360983645035,0.4839524515151,0.483551689513309,0.483222999626434,0.483031883151484,0.483031883151484, +0.640760221434171,0.640760221434171,0.640625993925183,0.640256658198171,0.639744359133834,0.639171201457459,0.638608296107557,0.638130800698058,0.637834141349623,0.637834141349623, +0.815242045255299,0.815242045255299,0.815062848870316,0.814490209041232,0.813768593460294,0.812995958117992,0.812231737780394,0.811540510064634,0.811041226493093,0.811041226493093, + +00:33:23, +0.101522851488149,0.101522851488149,0.10157424486561,0.101573361972718,0.10153274665482,0.101468911710724,0.101399919964825,0.101342710457454,0.101310479167202,0.101310479167202, +0.101522851488149,0.101522851488149,0.10157424486561,0.101573361972718,0.10153274665482,0.101468911710724,0.101399919964825,0.101342710457454,0.101310479167202,0.101310479167202, +0.125508491946043,0.125508491946043,0.125556222170753,0.125544121520655,0.125486888150304,0.125403916448538,0.125316494176736,0.125244726606461,0.125204444705278,0.125204444705278, +0.174571092186543,0.174571092186543,0.174609121716501,0.174572366168585,0.174479848330612,0.174356742555594,0.174230790386962,0.17412852569541,0.174071309554751,0.174071309554751, +0.250338302013912,0.250338302013912,0.250356458165022,0.250277610074099,0.250127396480944,0.249939727963355,0.249751942013063,0.249600385483304,0.249515491582048,0.249515491582048, +0.353991738825632,0.353991738825632,0.353975218799589,0.353831708490788,0.353596460254813,0.3533152985348,0.353037818451476,0.352813425138756,0.352686492400391,0.352686492400391, +0.485132825854835,0.485132825854835,0.485063979022758,0.484827085263232,0.484473628861574,0.484065214174279,0.48366456945785,0.483335976462851,0.483144916381915,0.483144916381915, +0.640845515062567,0.640845515062567,0.64071130981721,0.640342071941306,0.639829918413697,0.639256928177408,0.638694189113783,0.638216834799942,0.637920262418245,0.637920262418245, +0.815288212820117,0.815288212820117,0.815109061785455,0.814536574906382,0.81381515729145,0.81304273705984,0.812278730433984,0.811587694984696,0.811088548171378,0.811088548171378, + +00:33:24, +0.101633287088687,0.101633287088687,0.101684694692039,0.101683817954337,0.101643202198928,0.101579362348807,0.101510363761224,0.101453147992521,0.101420913025254,0.101420913025254, +0.101633287088687,0.101633287088687,0.101684694692039,0.101683817954337,0.101643202198928,0.101579362348807,0.101510363761224,0.101453147992521,0.101420913025254,0.101420913025254, +0.12562393472,0.12562393472,0.125671673374154,0.125659578561926,0.125602348605436,0.125519378317667,0.125431956147984,0.125360188138575,0.125319905866169,0.125319905866169, +0.174693957171735,0.174693957171735,0.174731986104722,0.174695237866659,0.174602732834955,0.174479642444324,0.174353705294717,0.174251452552431,0.174194243060168,0.174194243060168, +0.250466469652278,0.250466469652278,0.250484617551612,0.250405783593617,0.250255600380864,0.250067970777532,0.24988022414627,0.249728699568009,0.249643823665875,0.249643823665875, +0.354117862814907,0.354117862814907,0.354101333662736,0.353957853439232,0.353722663632025,0.353441575121987,0.353164168769436,0.352939835728111,0.352812937284323,0.352812937284323, +0.485245252831542,0.485245252831542,0.485176406994151,0.484939570949741,0.484586212025739,0.484177914714993,0.483777387215561,0.4834488910545,0.483257887333137,0.483257887333137, +0.640930754094104,0.640930754094104,0.640796571114635,0.640427431030285,0.639915422940798,0.639342600027351,0.638780027131629,0.638302813811787,0.638006328333628,0.638006328333628, +0.815334348395497,0.815334348395497,0.815155242682864,0.814582908645359,0.813861688852025,0.813089483572086,0.812325690498934,0.811634847172738,0.811135837016093,0.811135837016093, + +00:33:25, +0.101743745699703,0.101743745699703,0.101795167505638,0.101794296928368,0.10175368076292,0.101689836047556,0.101620830661913,0.101563608668015,0.101531370044093,0.101531370044093, +0.101743745699703,0.101743745699703,0.101795167505638,0.101794296928368,0.10175368076292,0.101689836047556,0.101620830661913,0.101563608668015,0.101531370044093,0.101531370044093, +0.125739388530067,0.125739388530067,0.125787135598965,0.125775046633549,0.125717820118346,0.125634851282966,0.125547429255699,0.125475660840263,0.125435378215216,0.125435378215216, +0.174816812307774,0.174816812307774,0.174854840643987,0.174818099729285,0.174725607528038,0.17460253255221,0.174476610452352,0.174374369684122,0.17431716685403,0.17431716685403, +0.250594603417308,0.250594603417308,0.250612743081189,0.250533923269895,0.250383770450175,0.250196179773121,0.250008472471536,0.249856979852655,0.24977212195373,0.24977212195373, +0.354243933195044,0.354243933195044,0.354227394943019,0.354083944808538,0.353848813418171,0.353567798097681,0.353290465453066,0.353066192663221,0.35293932850211,0.35293932850211, +0.485357617877078,0.485357617877078,0.485288773056996,0.485051994706905,0.484698733209936,0.484290553209684,0.483890142858922,0.483561743473895,0.483370796077687,0.483370796077687, +0.64101593859849,0.64101593859849,0.640881777887148,0.640512735534857,0.64000087278499,0.639428217077264,0.638865810231198,0.638388737803806,0.638092339166053,0.638092339166053, +0.81538045202421,0.81538045202421,0.815201391605345,0.8146292103011,0.813908188185144,0.813136197698055,0.812372618018769,0.811681966672472,0.811183093071081,0.811183093071081, + +00:33:26, +0.101854227266151,0.101854227266151,0.101905663251388,0.101904798839779,0.101864182291723,0.101800332751836,0.101731320611696,0.101674092428685,0.101641850168442,0.101641850168442, +0.101854227266151,0.101854227266151,0.101905663251388,0.101904798839779,0.101864182291723,0.101800332751836,0.101731320611696,0.101674092428685,0.101641850168442,0.101641850168442, +0.125854853335365,0.125854853335365,0.125902608804327,0.125890525694645,0.125833302648107,0.12575033530344,0.125662913458813,0.125591144670397,0.12555086171126,0.12555086171126, +0.174939657580402,0.174939657580402,0.174977685320033,0.174940951742171,0.174848472395508,0.174725412864824,0.174599505845366,0.174497277075916,0.174440080921734,0.174440080921734, +0.250722703328926,0.250722703328926,0.250740834773653,0.250662029122792,0.250511906708679,0.250324354969856,0.250136687008527,0.249985226356851,0.249900386465192,0.249900386465192, +0.354369950018683,0.354369950018683,0.354353402693033,0.354209982651266,0.353974909665781,0.353693967514377,0.353416708554832,0.353192495996527,0.353065666106182,0.353065666106182, +0.485469921063773,0.485469921063773,0.485401077283571,0.485164356607001,0.484811192486466,0.484403129730688,0.484002836460309,0.483674533793447,0.483483642687998,0.483483642687998, +0.641101068645326,0.641101068645326,0.640966930204326,0.640597985524659,0.640086268016013,0.639513779397013,0.63895153848248,0.6384746068461,0.638178294985691,0.638178294985691, +0.815426523748952,0.815426523748952,0.815247508595627,0.814675479916473,0.813954655333857,0.813182879481,0.812419513036946,0.811729053527535,0.811230316380111,0.811230316380111, + +00:33:27, +0.101964731733051,0.101964731733051,0.102016181874333,0.102015323633603,0.101974706730328,0.101910852406581,0.101841833555442,0.101784599219349,0.101752353343088,0.101752353343088, +0.101964731733051,0.101964731733051,0.102016181874333,0.102015323633603,0.101974706730328,0.101910852406581,0.101841833555442,0.101784599219349,0.101752353343088,0.101752353343088, +0.125970329095076,0.125970329095076,0.126018092949436,0.126006015704391,0.125948796153847,0.125865830338148,0.125778408716316,0.125706639587911,0.1256663563132,0.1256663563132, +0.17506249297539,0.17506249297539,0.175100520118636,0.175063793891061,0.17497132742305,0.174848283367777,0.174722391459288,0.174620174713282,0.174562985248713,0.174562985248713, +0.250850769407049,0.250850769407049,0.250868892648897,0.250790101172161,0.250640009176171,0.250452496387462,0.250264867776902,0.250113439100202,0.250028617219837,0.250028617219837, +0.354495913338403,0.354495913338403,0.354479356965313,0.354335967019916,0.35410095242732,0.353820083424512,0.353542898127138,0.353318745780413,0.353191950148909,0.353191950148909, +0.48558216246385,0.48558216246385,0.485513319746054,0.485276656722203,0.484923589927529,0.484515644350241,0.484115468091995,0.483787262085464,0.4835964272364,0.4835964272364, +0.641186144304098,0.641186144304098,0.641052028135638,0.640683181069215,0.640171608703498,0.639599287056351,0.639037211955355,0.638560421008656,0.638264195862602,0.638264195862602, +0.815472563612349,0.815472563612349,0.815293593696366,0.814721717534272,0.814001090341142,0.8132295289641,0.812466375596846,0.811776107781493,0.811277506986882,0.811277506986882, + +00:33:28, +0.102075259045488,0.102075259045488,0.102126723319582,0.102125871254937,0.102085254023792,0.102021394956786,0.101952369438085,0.101895128984888,0.101862879512883,0.101862879512883, +0.102075259045488,0.102075259045488,0.102126723319582,0.102125871254937,0.102085254023792,0.102021394956786,0.101952369438085,0.101895128984888,0.101862879512883,0.101862879512883, +0.126085815768436,0.126085815768436,0.126133587993547,0.126121516622023,0.126064300594751,0.125981336346209,0.125893914987257,0.125822145551794,0.125781861979993,0.125781861979993, +0.175185318478548,0.175185318478548,0.175223345025605,0.17518662616173,0.175094172596382,0.174971144046711,0.174845267279686,0.174743062581723,0.174685879820436,0.174685879820436, +0.250978801671585,0.250978801671585,0.250996916726808,0.250918139437845,0.250768077872438,0.250580604045661,0.250393014796312,0.250241618102305,0.25015681423723,0.25015681423723, +0.354621823206722,0.354621823206722,0.354605257812331,0.354461897966928,0.354226941755198,0.353946145880461,0.353669034222331,0.353444942067199,0.353318180682601,0.353318180682601, +0.485694342149432,0.485694342149432,0.48562550051652,0.485388895124584,0.48503592560522,0.484628097140475,0.484228037826151,0.48389992842215,0.48370914979512,0.48370914979512, +0.641271165644184,0.641271165644184,0.64113707175044,0.640768322237942,0.640256894916964,0.639684740124921,0.639122830719591,0.638646180361354,0.638350041866735,0.638350041866735, +0.815518571656952,0.815518571656952,0.815339646950147,0.81476792319722,0.814047493249906,0.813276146190463,0.812513205741776,0.811823129477836,0.811324664935014,0.811324664935014, + +00:33:29, +0.102185809148612,0.102185809148612,0.10223728753231,0.102236441648943,0.102195824117235,0.102131960347515,0.102062928204625,0.102005681670251,0.101973428622745,0.101973428622745, +0.102185809148612,0.102185809148612,0.10223728753231,0.102236441648943,0.102195824117235,0.102131960347515,0.102062928204625,0.102005681670251,0.101973428622745,0.101973428622745, +0.126201313314741,0.126201313314741,0.126249093895972,0.126237028406832,0.126179815930062,0.126096853286799,0.126009432230739,0.125937662521093,0.125897378670652,0.125897378670652, +0.17530813407572,0.17530813407572,0.175346160026783,0.17530944853999,0.175217007901257,0.175093994887304,0.174968133292161,0.174865940666778,0.174808764622406,0.174808764622406, +0.251106800142438,0.251106800142438,0.251124907027263,0.251046143939683,0.250896112817261,0.250708677964166,0.250521128086405,0.250369763382752,0.250284977536934,0.250284977536934, +0.354747679676101,0.354747679676101,0.354731105286504,0.35458777554468,0.354352877701762,0.354072154934539,0.353795116892695,0.353571084909151,0.353444357759509,0.353444357759509, +0.485806460192537,0.485806460192537,0.485737619666938,0.485501071886112,0.485148199591532,0.484740488173419,0.484340545734845,0.484012532875609,0.483821810436284,0.483821810436284, +0.641356132734851,0.641356132734851,0.641222061117979,0.640853409100143,0.640342126725818,0.639770138672256,0.639208394844845,0.63873188497396,0.638435833067925,0.638435833067925, +0.815564547925245,0.815564547925245,0.815385668399483,0.814814096947967,0.814093864102982,0.813322731203124,0.812560003514973,0.811870118659983,0.811371790268058,0.811371790268058, + +00:33:30, +0.102296381987637,0.102296381987637,0.102347874457757,0.10234703476085,0.102306416955845,0.102242548523894,0.102173509800125,0.102116257220449,0.102084000617657,0.102084000617657, +0.102296381987637,0.102296381987637,0.102347874457757,0.10234703476085,0.102306416955845,0.102242548523894,0.102173509800125,0.102116257220449,0.102084000617657,0.102084000617657, +0.126316821693341,0.126316821693341,0.12636461061608,0.126352551018167,0.126295342119079,0.126212381119149,0.126124960405925,0.12605319045491,0.126012906344249,0.126012906344249, +0.175430939752781,0.175430939752781,0.175468965108046,0.175432261011687,0.175339833323461,0.175216835875269,0.175090989482348,0.17498880895402,0.174931639640161,0.174931639640161, +0.251234764839501,0.251234764839501,0.251252863570134,0.251174114697505,0.251024114030415,0.250836718162682,0.250649207666818,0.250497874961129,0.250413107138502,0.250413107138502, +0.354873482798938,0.354873482798938,0.354856899440184,0.354713599805494,0.3544787603193,0.354198110639004,0.353921146190459,0.35369717435847,0.353570481431826,0.353570481431826, +0.485918516665082,0.485918516665082,0.485849677269179,0.485613187078653,0.485260411958355,0.484852817520999,0.484452991890043,0.484125075517841,0.483934409231914,0.483934409231914, +0.641441045645254,0.641441045645254,0.641306996307391,0.640938441725012,0.640427304199359,0.639855482767776,0.639293904400665,0.63881753491613,0.638521569535899,0.638521569535899, +0.815610492459635,0.815610492459635,0.815431658086816,0.81486023882909,0.814140202943131,0.813369284045043,0.812606768959598,0.811917075371279,0.81141888302949,0.81141888302949, + +00:33:31, +0.102406977507844,0.102406977507844,0.102458484041227,0.10245765053595,0.102417032484873,0.102353159431117,0.102284114169715,0.102226855580559,0.102194595442667,0.102194595442667, +0.102406977507844,0.102406977507844,0.102458484041227,0.10245765053595,0.102417032484873,0.102353159431117,0.102284114169715,0.102226855580559,0.102194595442667,0.102194595442667, +0.126432340863645,0.126432340863645,0.126480138113294,0.126468084415434,0.12641087912116,0.126327919802549,0.126240499472034,0.126168729312407,0.126128444959913,0.126128444959913, +0.175553735495644,0.175553735495644,0.175591760255308,0.175555063562701,0.175462648848818,0.175339666996353,0.175213835835919,0.175111667429057,0.175054504859275,0.175054504859275, +0.251362695782664,0.251362695782664,0.251380786375285,0.251302051731136,0.251152081531666,0.25096472466091,0.250777253557185,0.250625952857012,0.250541203061484,0.250541203061484, +0.354999232627572,0.354999232627572,0.354982640325666,0.354839370801628,0.35460458966004,0.354324013046052,0.354047122167788,0.353823210467303,0.353696551751684,0.353696551751684, +0.486030511638879,0.486030511638879,0.485961673395008,0.485725240773971,0.485372562777479,0.484965085255041,0.484565376363607,0.484237556420744,0.484046946253929,0.484046946253929, +0.641525904444441,0.641525904444441,0.641391877387702,0.641023420181634,0.640512427406774,0.639940772480794,0.639379359456485,0.63890313025741,0.638607251340273,0.638607251340273, +0.815656405302463,0.815656405302463,0.815477616054516,0.814906348883098,0.814186509813043,0.813415804759111,0.812653502118742,0.811963999654995,0.811465943262711,0.811465943262711, + +00:33:32, +0.102517595654578,0.102517595654578,0.102569116228091,0.102568288919601,0.102527670649635,0.102463793014441,0.102394741258591,0.102337476695725,0.102305213042887,0.102305213042887, +0.102517595654578,0.102517595654578,0.102569116228091,0.102568288919601,0.102527670649635,0.102463793014441,0.102394741258591,0.102337476695725,0.102305213042887,0.102305213042887, +0.126547870785117,0.126547870785117,0.126595676347097,0.126583628558095,0.126526426895716,0.126443469296345,0.126356049388341,0.126284279052803,0.126243994476828,0.126243994476828, +0.175676521290254,0.175676521290254,0.175714545454513,0.175677856178946,0.175585454463183,0.175462488236337,0.175336672338578,0.175234516077532,0.175177360265354,0.175177360265354, +0.251490592991805,0.251490592991805,0.251508675462572,0.251429955060391,0.251280015340773,0.251092697478543,0.25090526577713,0.250753997089974,0.250669265325421,0.250669265325421, +0.355124929214281,0.355124929214281,0.355108327995184,0.354965088585282,0.354730365776152,0.354449862207821,0.354173044876791,0.353949193287733,0.353822568771157,0.353822568771157, +0.486142445185641,0.486142445185641,0.486073608116088,0.485837233043727,0.485484652120589,0.485077291447267,0.484677699227299,0.484349975656113,0.484159421574149,0.484159421574149, +0.641610709201346,0.641610709201346,0.641476704427828,0.641108344538983,0.64059749641714,0.640026007880509,0.639464760081633,0.638988671067234,0.63869287855055,0.63869287855055, +0.815702286495993,0.815702286495993,0.81552354234488,0.814952427152424,0.814232784755334,0.813462293388144,0.812700203035421,0.812010891554331,0.811512971011053,0.811512971011053, + +00:33:33, +0.102628236373247,0.102628236373247,0.102679770963783,0.102678949857226,0.102638331395514,0.102574449219187,0.102505391012011,0.102448120511153,0.102415853363496,0.102415853363496, +0.102628236373247,0.102628236373247,0.102679770963783,0.102678949857226,0.102638331395514,0.102574449219187,0.102505391012011,0.102448120511153,0.102415853363496,0.102415853363496, +0.12666341141728,0.12666341141728,0.126711225277029,0.126699183405668,0.12664198540222,0.126559029559941,0.126471610114179,0.126399839635371,0.126359554854236,0.126359554854236, +0.175799297122591,0.175799297122591,0.175837320691641,0.17580063884637,0.175708250152445,0.175585299581038,0.175459498976065,0.175357354885122,0.175300205844042,0.175300205844042, +0.251618456486799,0.251618456486799,0.251636530851846,0.251557824705079,0.25140791547749,0.251220636635265,0.251033244346273,0.25088200767958,0.250797293949848,0.250797293949848, +0.355250572611284,0.355250572611284,0.355233962500913,0.355090753208596,0.354856088719744,0.354575658176387,0.354298914369515,0.354075122871787,0.35394853254226,0.35394853254226, +0.486254317376975,0.486254317376975,0.486185481503982,0.485949163959481,0.485596680059269,0.485189436169296,0.484789960552777,0.484462333295643,0.484271835264288,0.484271835264288, +0.641695459984798,0.641695459984798,0.641561477496576,0.641193214865924,0.640682511299427,0.640111189036014,0.639550106345324,0.639074157414928,0.638778451236127,0.638778451236127, +0.815748136082422,0.815748136082422,0.815569437000136,0.814998473679432,0.814279027812551,0.813508749974889,0.812746871752581,0.812057751112414,0.811559966317771,0.811559966317771, + +00:33:34, +0.102738899609328,0.102738899609328,0.102790448193801,0.102789633294312,0.102749014667955,0.102685127990744,0.1026160633753,0.102558786972115,0.102526516349738,0.102526516349738, +0.102738899609328,0.102738899609328,0.102790448193801,0.102789633294312,0.102749014667955,0.102685127990744,0.1026160633753,0.102558786972115,0.102526516349738,0.102526516349738, +0.126778962719712,0.126778962719712,0.126826784862684,0.126814748917731,0.126757554600196,0.126674600552795,0.126587181608938,0.126515411019445,0.126475126051438,0.126475126051438, +0.175922062978668,0.175922062978668,0.175960085952707,0.175923411550955,0.17583103590253,0.175708101016304,0.175582315734153,0.175480183837538,0.175423041581015,0.175423041581015, +0.25174628628751,0.25174628628751,0.251764352562948,0.251685660685001,0.251535781961561,0.251348542150755,0.251161189284226,0.251009984645387,0.250925288954293,0.250925288954293, +0.355376162870741,0.355376162870741,0.355359543894967,0.355216364723651,0.354981758542866,0.354701401003769,0.354424730697951,0.354200999271432,0.354074443116947,0.354074443116947, +0.486366128284389,0.486366128284389,0.486297293630149,0.486061033592689,0.485708646665,0.485301519492646,0.4849021604116,0.484574629410926,0.484384187395963,0.484384187395963, +0.641780156863513,0.641780156863513,0.641646196662643,0.64127803123121,0.640767472122491,0.640196316016289,0.639635398316663,0.639159589369706,0.638863969466287,0.638863969466287, +0.815793954103875,0.815793954103875,0.815615300062441,0.815044488506416,0.814325239027167,0.813555174562018,0.812793508313094,0.812104578372297,0.811606929226051,0.811606929226051, + +00:33:35, +0.10284958530836,0.10284958530836,0.102901147863711,0.102900339176412,0.102859720412469,0.102795829274563,0.102726758293847,0.10266947602395,0.102637201946919,0.102637201946919, +0.10284958530836,0.10284958530836,0.102901147863711,0.102900339176412,0.102859720412469,0.102795829274563,0.102726758293847,0.10266947602395,0.102637201946919,0.102637201946919, +0.126894524652048,0.126894524652048,0.126942355063714,0.126930325053914,0.126873134449229,0.126790182234426,0.126702763832065,0.126630993164412,0.12659070802779,0.12659070802779, +0.176044818844534,0.176044818844534,0.176082841223757,0.176046174278717,0.175953811699395,0.17583089252802,0.175705122598651,0.175603002920528,0.175545867461985,0.175545867461985, +0.251874082413796,0.251874082413796,0.251892140615712,0.251813463019952,0.251663614812724,0.251476414044686,0.251289100610592,0.251137928006948,0.251053250358279,0.251053250358279, +0.35550170004475,0.35550170004475,0.3554850722294,0.355341923182467,0.355107375297506,0.354827090741926,0.354550493914027,0.354326822538576,0.354200300547115,0.354200300547115, +0.486477877979287,0.486477877979287,0.486409044565946,0.486172842014708,0.485820552009164,0.485413541488736,0.485014298875222,0.484686864073451,0.484496478040684,0.484496478040684, +0.641864799906099,0.641864799906099,0.641730861994618,0.641362793703489,0.640852378955082,0.640281388890206,0.639720636064648,0.639244967000674,0.638949433310205,0.638949433310205, +0.815839740602406,0.815839740602406,0.815661131573879,0.815090471675594,0.814371418441586,0.813601567192134,0.812840112759762,0.812151373376962,0.811653859779004,0.811653859779004, + +00:33:36, +0.102960293415947,0.102960293415947,0.103011869919142,0.103011067449142,0.102970448574633,0.102906553016161,0.102837475713107,0.102780187612059,0.102747910100412,0.102747910100412, +0.102960293415947,0.102960293415947,0.103011869919142,0.103011067449142,0.102970448574633,0.102906553016161,0.102837475713107,0.102780187612059,0.102747910100412,0.102747910100412, +0.12701009717398,0.12701009717398,0.127057935839828,0.127045911773909,0.126988724908959,0.126905774564405,0.126818356743063,0.126746586029718,0.126706300742704,0.126706300742704, +0.176167564706268,0.176167564706268,0.176205586490874,0.176168927015706,0.176076577529031,0.175953674102104,0.175827919555401,0.17572581211987,0.175668683472697,0.175668683472697, +0.252001844885508,0.252001844885508,0.252019895029965,0.251941231729718,0.251791414050709,0.251604252336719,0.251416978344972,0.251265837783807,0.25118117818132,0.25118117818132, +0.355627184185351,0.355627184185351,0.355610547556208,0.355467428637004,0.355232939035596,0.354952727442758,0.354676204069614,0.354452592725067,0.354326104884601,0.354326104884601, +0.486589566532972,0.486589566532972,0.486520734382631,0.486284589296792,0.485932396163038,0.485525502228879,0.485126376014999,0.484799037354609,0.484608707269864,0.484608707269864, +0.641949389181055,0.641949389181055,0.64181547356098,0.641447502351296,0.640937231865839,0.640366407726528,0.639805819658165,0.639330290376827,0.639034842836947,0.639034842836947, +0.815885495619997,0.815885495619997,0.815706931576465,0.815136423229119,0.814417566098139,0.813647927907765,0.812886685135313,0.812198136169318,0.81170075801967,0.81170075801967, + +00:33:37, +0.103071023877758,0.103071023877758,0.103122614305787,0.103121818058184,0.103081199100087,0.103017299161121,0.102948215578598,0.10289092168191,0.102858640755657,0.102858640755657, +0.103071023877758,0.103071023877758,0.103122614305787,0.103121818058184,0.103081199100087,0.103017299161121,0.102948215578598,0.10289092168191,0.102858640755657,0.102858640755657, +0.127125680245256,0.127125680245256,0.127173527150791,0.127161509037458,0.127104325939083,0.127021377502363,0.126933960301491,0.126862189574866,0.12682190415565,0.12682190415565, +0.176290300549987,0.176290300549987,0.176328321740171,0.176291669748006,0.176199333377467,0.176076445724508,0.175950706590279,0.175848611421381,0.175791489598932,0.175791489598932, +0.252129573722488,0.252129573722488,0.252147615825526,0.252068966834079,0.251919179695241,0.251732057046514,0.251544822506954,0.251393713995502,0.251309072442926,0.251309072442926, +0.355752615344523,0.355752615344523,0.355735969927325,0.355592881139165,0.355358449809006,0.355078311158103,0.354801861216524,0.354578309882694,0.354451856181184,0.354451856181184, +0.486701194016645,0.486701194016645,0.486632363151356,0.486396275510092,0.4860441791978,0.48563740178429,0.485238391902181,0.484911149325686,0.484720875154814,0.484720875154814, +0.642033924756772,0.642033924756772,0.641900031430098,0.641532157243059,0.641022030923294,0.640451372593908,0.639890949165992,0.639415559567052,0.639120198115467,0.639120198115467, +0.81593121919856,0.81593121919856,0.815752700112143,0.815182343209069,0.814463682039085,0.813694256751372,0.812933225482404,0.812244866792204,0.811747623991016,0.811747623991016, + +00:33:38, +0.103181776639527,0.103181776639527,0.103233380969405,0.103232590949286,0.103191971934537,0.103128067655089,0.103058977835905,0.103001678179035,0.102969393858154,0.102969393858154, +0.103181776639527,0.103181776639527,0.103233380969405,0.103232590949286,0.103191971934537,0.103128067655089,0.103058977835905,0.103001678179035,0.102969393858154,0.102969393858154, +0.12724127382568,0.12724127382568,0.127289128956424,0.127277116804366,0.127219937499353,0.127136991007986,0.127049574466967,0.126977803759414,0.126937518226156,0.126937518226156, +0.176413026361838,0.176413026361838,0.176451046957799,0.176414402461734,0.176322079230759,0.176199207381219,0.176073483689195,0.175971400810908,0.175914285826503,0.175914285826503, +0.252257268944572,0.252257268944572,0.252275303022207,0.252196668352805,0.252046911766035,0.251859828193719,0.251672633116125,0.251521556661564,0.251436933162596,0.251436933162596, +0.355877993574186,0.355877993574186,0.355861339394628,0.355718280740791,0.355483907669547,0.355203841939743,0.354927465406508,0.354703974063189,0.354577554488582,0.354577554488582, +0.486812760501407,0.486812760501407,0.486743930943177,0.486507900725661,0.486155901184525,0.48574924022608,0.485350346607921,0.48502320005787,0.48483298176674,0.48483298176674, +0.642118406701529,0.642118406701529,0.641984535670235,0.641616758447098,0.641106776195867,0.640536283560891,0.639976024656797,0.639500774640125,0.639205499214613,0.639205499214613, +0.815976911379939,0.815976911379939,0.815798437222787,0.815228231657453,0.814509766306615,0.813740553765341,0.812979733843621,0.812291565288386,0.811794457735936,0.811794457735936, + +00:33:39, +0.103292551647054,0.103292551647054,0.103344169855819,0.103343386068258,0.103302767023753,0.103238858443776,0.103169762430677,0.10311245704903,0.103080169353473,0.103080169353473, +0.103292551647054,0.103292551647054,0.103344169855819,0.103343386068258,0.103302767023753,0.103238858443776,0.103169762430677,0.10311245704903,0.103080169353473,0.103080169353473, +0.127356877875113,0.127356877875113,0.127404741216605,0.127392735034488,0.127335559549579,0.127252615041017,0.127165199199162,0.127093428542979,0.127053142913804,0.127053142913804, +0.176535742128005,0.176535742128005,0.176573762129939,0.17653712514304,0.176444815075003,0.176321959058255,0.176196250838095,0.176094180274334,0.17603707214126,0.17603707214126, +0.252384930571587,0.252384930571587,0.252402956639812,0.252324336305661,0.252174610282799,0.251987565797978,0.251800410192059,0.251649365801517,0.251564760359827,0.251564760359827, +0.3560033189262,0.3560033189262,0.355986656009932,0.355843627493664,0.35560931266897,0.3553293198394,0.35505301669126,0.354829585318222,0.354703199858457,0.354703199858457, +0.486924266058257,0.486924266058257,0.486855437829044,0.486619465014447,0.486267562194189,0.485861017625261,0.48546224020327,0.485135189622246,0.484945027176752,0.484945027176752, +0.642202835083502,0.642202835083502,0.642068986349544,0.641701306031624,0.641191467751873,0.640621140695913,0.640061046199141,0.639585935664715,0.639290746203122,0.639290746203122, +0.816022572205904,0.816022572205904,0.815844142950198,0.815274088616209,0.814555818942846,0.813786818991989,0.813026210261478,0.812338231700556,0.811841259297255,0.811841259297255, + +00:33:40, +0.103403348846201,0.103403348846201,0.103454980910918,0.103454203360976,0.10341358431357,0.103349671472959,0.103280569308626,0.103223258237557,0.103190967187245,0.103190967187245, +0.103403348846201,0.103403348846201,0.103454980910918,0.103454203360976,0.10341358431357,0.103349671472959,0.103280569308626,0.103223258237557,0.103190967187245,0.103190967187245, +0.127472492353472,0.127472492353472,0.127520363891268,0.127508363687741,0.127451192049626,0.127368249561256,0.127280834457808,0.127209063885232,0.127168778178235,0.127168778178235, +0.176658447834702,0.176658447834702,0.176696467242806,0.176659837778109,0.176567540896325,0.17644470074167,0.176319008022956,0.176216949797577,0.176159848529083,0.176159848529083, +0.252512558623352,0.252512558623352,0.252530576698137,0.252451970712403,0.252302275265233,0.252115269878924,0.251928153754327,0.251777141434877,0.251692554054105,0.251692554054105, +0.356128591452365,0.356128591452365,0.356111919824993,0.355968921449506,0.355734664858969,0.355454744908735,0.355178515122414,0.354955143699407,0.354828792342409,0.354828792342409, +0.48703571075809,0.48703571075809,0.486966883879809,0.4867309684473,0.486379162297665,0.485972734052743,0.485574072759177,0.485247118089798,0.485057011455857,0.485057011455857, +0.642287209970753,0.642287209970753,0.64215338353607,0.641785800064739,0.641276105659517,0.640705944067301,0.640146013861474,0.63967104270938,0.639375939149623,0.639375939149623, +0.816068201718158,0.816068201718158,0.815889817336111,0.815319914127205,0.814601839989827,0.81383305247356,0.813072654778418,0.812384866071337,0.811888028717723,0.811888028717723, + +00:33:41, +0.103514168182896,0.103514168182896,0.103565814080653,0.103565042773381,0.103524423749888,0.103460506688477,0.103391398415531,0.103334081690342,0.103301787305166,0.103301787305166, +0.103514168182896,0.103514168182896,0.103565814080653,0.103565042773381,0.103524423749888,0.103460506688477,0.103391398415531,0.103334081690342,0.103301787305166,0.103301787305166, +0.127588117220732,0.127588117220732,0.127635996940402,0.127624002724095,0.127566834959417,0.127483894528557,0.127396480202689,0.127324709745901,0.127284423979143,0.127284423979143, +0.176781143468179,0.176781143468179,0.17681916228265,0.176782540353158,0.176690256680884,0.176567432417552,0.176441755229791,0.176339709366587,0.176282614975891,0.176282614975891, +0.252640153119681,0.252640153119681,0.252658163216971,0.252579571592779,0.252429906733031,0.252242940456187,0.252055863822491,0.251904883581155,0.251820314264912,0.251820314264912, +0.356253811204423,0.356253811204423,0.356237130891509,0.356094162659981,0.355859964291177,0.355580117199351,0.355303960751545,0.355080649258297,0.354954331991983,0.354954331991983, +0.487147094671705,0.487147094671705,0.487078269166221,0.486842411094968,0.486490701565725,0.486084389579337,0.485685844346491,0.485358985531411,0.485168934674961,0.485168934674961, +0.642371531431241,0.642371531431241,0.642237727297751,0.641870240614437,0.641360689986895,0.640790693743274,0.64023092771214,0.639756095842574,0.639461078122635,0.639461078122635, +0.816113799958331,0.816113799958331,0.815935460422187,0.815365708232238,0.814647829489535,0.81387925425223,0.813119067436812,0.812431468443281,0.811934766040021,0.811934766040021, + +00:33:42, +0.103625009603132,0.103625009603132,0.103676669311042,0.103675904251479,0.10363528527867,0.103571364036236,0.103502249697235,0.103444927353176,0.103412629653,0.103412629653, +0.103625009603132,0.103625009603132,0.103676669311042,0.103675904251479,0.10363528527867,0.103571364036236,0.103502249697235,0.103444927353176,0.103412629653,0.103412629653, +0.12770375243692,0.12770375243692,0.127751640324055,0.127739652103576,0.127682488238929,0.127599549902832,0.127512136393648,0.127440366084773,0.127400080276284,0.127400080276284, +0.176903829014717,0.176903829014717,0.176941847235754,0.176905232854439,0.176812962414876,0.17669015407202,0.176564492444644,0.176462458967348,0.176405371467632,0.176405371467632, +0.252767714080375,0.252767714080375,0.252785716216093,0.25270713896653,0.252557504705879,0.252370577549385,0.252183540416106,0.252032592259853,0.25194804101172,0.25194804101172, +0.356378978234054,0.356378978234054,0.356362289261116,0.356219351176693,0.355985211017167,0.355705436762794,0.355429353630169,0.355206102046387,0.355079818858661,0.355079818858661, +0.487258417869797,0.487258417869797,0.48718959375893,0.486953793028098,0.486602180069043,0.48619598427575,0.48579755503596,0.485470792017868,0.48528079690487,0.48528079690487, +0.642455799532814,0.642455799532814,0.642322017702415,0.641954627748605,0.641445220801997,0.640875389791943,0.640315787819372,0.639841095132636,0.63954616319057,0.63954616319057, +0.816159366967987,0.816159366967987,0.815981072250021,0.815411470973035,0.814693787483876,0.813925424370102,0.81316544827896,0.812478038858867,0.811981471306756,0.811981471306756, + +00:33:43, +0.103735873052965,0.103735873052965,0.103787546548167,0.103786787741338,0.103746168845945,0.103682243462207,0.103613123099645,0.103555795171915,0.103523494176571,0.103523494176571, +0.103735873052965,0.103735873052965,0.103787546548167,0.103786787741338,0.103746168845945,0.103682243462207,0.103613123099645,0.103555795171915,0.103523494176571,0.103523494176571, +0.127819397962124,0.127819397962124,0.127867294002328,0.127855311786267,0.127798151848198,0.12771521564405,0.127627802990583,0.127556032861687,0.127515747029464,0.127515747029464, +0.177026504460633,0.177026504460633,0.177064522088431,0.177027915268235,0.176935658084526,0.176812865691229,0.176687219653595,0.176585198585878,0.176528117990292,0.176528117990292, +0.252895241525233,0.252895241525233,0.252913235715276,0.252834672853389,0.252685069203454,0.252498181178132,0.25231118355472,0.252160267490466,0.252075734313997,0.252075734313997, +0.356504092592882,0.356504092592882,0.356487394985393,0.356344487051187,0.356110405088454,0.355830703650547,0.355554693809743,0.355331502115113,0.355205252993869,0.355205252993869, +0.487369680422961,0.487369680422961,0.487300857728484,0.487065114317237,0.48671359787819,0.486307518212593,0.485909204898232,0.485582537619852,0.48539259821629,0.48539259821629, +0.642540014343213,0.642540014343213,0.642406254817786,0.642038961535023,0.641529698172704,0.640960032281312,0.640400594251299,0.639926040647804,0.639631194421733,0.639631194421733, +0.816204902788616,0.816204902788616,0.816026652861135,0.815457202391254,0.814739714014687,0.813971562869209,0.813211797347094,0.812524577360504,0.812028144560466,0.812028144560466, + +00:33:44, +0.103846758478519,0.103846758478519,0.103898445738172,0.103897693189093,0.103857074397807,0.103793144912424,0.103724018568733,0.103666685092479,0.103634380821772,0.103634380821772, +0.103846758478519,0.103846758478519,0.103898445738172,0.103897693189093,0.103857074397807,0.103793144912424,0.103724018568733,0.103666685092479,0.103634380821772,0.103634380821772, +0.127935053756484,0.127935053756484,0.12798295793538,0.127970981732308,0.127913825747312,0.127830891712235,0.12774347995345,0.127671710036543,0.12763142419855,0.12763142419855, +0.177149169792274,0.177149169792274,0.177187186827031,0.177150587580864,0.177058343676096,0.176935567261366,0.176809936842756,0.17670792820823,0.176650854529887,0.176650854529887, +0.253022735474041,0.253022735474041,0.253040721734286,0.252962173273082,0.252812600245426,0.252625751362032,0.252438793257873,0.252287909292484,0.252203394191202,0.252203394191202, +0.356629154332467,0.356629154332467,0.356612448115859,0.356469570334947,0.356235546556494,0.355955917914036,0.355679981341666,0.355456849515854,0.355330634448974,0.355330634448974, +0.487480882401691,0.487480882401691,0.487412061145333,0.487176375032833,0.486824955063638,0.486418991460372,0.486020794003855,0.485694222407947,0.485504338679825,0.485504338679825, +0.642624175930073,0.642624175930073,0.642490438711478,0.642123242041363,0.641614122166789,0.641044621279277,0.640485347075939,0.640010932456202,0.639716171884318,0.639716171884318, +0.816250407461641,0.816250407461641,0.816072202296982,0.815502902528482,0.814785609123735,0.814017669791513,0.813258114683372,0.812571083990529,0.812074785843616,0.812074785843616, + +00:33:45, +0.103957665825978,0.103957665825978,0.104009366827271,0.104008620540943,0.103968001880413,0.103904068332984,0.103834936050535,0.103777597060853,0.103745289534557,0.103745289534557, +0.103957665825978,0.103957665825978,0.104009366827271,0.104008620540943,0.103968001880413,0.103904068332984,0.103834936050535,0.103777597060853,0.103745289534557,0.103745289534557, +0.128050719780198,0.128050719780198,0.128098632083425,0.128086661901892,0.12802950989642,0.127946578067466,0.127859167242259,0.127787397569292,0.127747111743464,0.127747111743464, +0.177271824996023,0.177271824996023,0.177309841437935,0.177273249778676,0.177181019175878,0.177058258768652,0.176932643998275,0.176830647820488,0.176773581072469,0.176773581072469, +0.25315019594658,0.25315019594658,0.253168174292879,0.253089640245324,0.252940097851457,0.252753288120684,0.252566369545098,0.252415517685386,0.252331020662788,0.252331020662788, +0.356754163504314,0.356754163504314,0.356737448703971,0.3565946010794,0.356360635472682,0.356081079604629,0.355805216277276,0.355582144299927,0.355455963275285,0.355455963275285, +0.487592023876381,0.487592023876381,0.487523204079824,0.48728757524523,0.486936251695757,0.486530404089496,0.486132322423277,0.485805846452634,0.485616018365982,0.485616018365982, +0.642708284360921,0.642708284360921,0.642574569450998,0.642207469335188,0.64169849285192,0.641129156853624,0.640570046361202,0.640095770625851,0.639801095646413,0.639801095646413, +0.816295881028416,0.816295881028416,0.816117720598947,0.815548571426238,0.814831472852716,0.814063745178909,0.813304400329882,0.81261755879121,0.812121395198601,0.812121395198601, + +00:33:46, +0.104068595041594,0.104068595041594,0.104120309761736,0.10411956974315,0.104078951239985,0.104015013670053,0.103945875491153,0.103888531023086,0.103856220260948,0.103856220260948, +0.104068595041594,0.104068595041594,0.104120309761736,0.10411956974315,0.104078951239985,0.104015013670053,0.103945875491153,0.103888531023086,0.103856220260948,0.103856220260948, +0.12816639599352,0.12816639599352,0.128214316406733,0.128202352255271,0.128145204255722,0.128062274669879,0.127974864817077,0.127903095419947,0.127862809624183,0.127862809624183, +0.177394470058294,0.177394470058294,0.177432485907559,0.177395901848055,0.177303684570199,0.177180940199341,0.17705534110633,0.176953357408772,0.176896297604122,0.176896297604122, +0.253277622962622,0.253277622962622,0.253295593410803,0.253217073789826,0.253067562041203,0.252880791473677,0.252693912435922,0.252543092688647,0.252458613748198,0.252458613748198, +0.356879120159865,0.356879120159865,0.356862396801132,0.356719579335912,0.356485671888357,0.356206188773633,0.355930398667856,0.355707386518593,0.35558123952405,0.35558123952405, +0.487703104917326,0.487703104917326,0.487634286602204,0.487398715024676,0.487047487844819,0.486641756170273,0.486243790226845,0.485917409824298,0.485727637345166,0.485727637345166, +0.642792339703176,0.642792339703176,0.642658647103748,0.642291643483957,0.641782810295656,0.641213639072036,0.640654692174894,0.640180555224661,0.639885965775999,0.639885965775999, +0.816341323530224,0.816341323530224,0.816163207808346,0.815594209125969,0.814877305243257,0.814109789073217,0.813350654328643,0.812664001804741,0.812167972667746,0.812167972667746, + +00:33:47, +0.10417954607168,0.10417954607168,0.104231274487907,0.104230540742042,0.10418992242281,0.104125980869858,0.104056836836752,0.103999486925291,0.103967172947027,0.103967172947027, +0.10417954607168,0.10417954607168,0.104231274487907,0.104230540742042,0.10418992242281,0.104125980869858,0.104056836836752,0.103999486925291,0.103967172947027,0.103967172947027, +0.128282082356759,0.128282082356759,0.12833001086563,0.128318052752751,0.128260908785477,0.128177981479668,0.128090572638026,0.128018803548571,0.127978517800742,0.127978517800742, +0.177517104965535,0.177517104965535,0.177555120222348,0.177518543775416,0.177426339845419,0.177303611539719,0.177178028153133,0.177076056959233,0.177019004110966,0.177019004110966, +0.253405016541932,0.253405016541932,0.253422979107799,0.253344473926288,0.253194992834309,0.253008261440593,0.252821421949861,0.252670634321733,0.252586173466871,0.252586173466871, +0.357004024350507,0.357004024350507,0.356987292458681,0.356844505155791,0.356610655854796,0.356331245472298,0.356055528564627,0.355832576223054,0.355706463246461,0.355706463246461, +0.487814125594719,0.487814125594719,0.487745308782623,0.487509794441316,0.487158663580996,0.486753047772912,0.486355197484807,0.486028912593221,0.485839195687682,0.485839195687682, +0.642876342024152,0.642876342024152,0.64274267173702,0.64237576455502,0.641867074565449,0.641298068002086,0.640739284584711,0.640265286320437,0.639970782340948,0.639970782340948, +0.81638673500828,0.81638673500828,0.816208663966422,0.815639815669055,0.814923106336915,0.81415580151619,0.813396876721602,0.81271041307325,0.812214518293303,0.812214518293303, + +00:33:48, +0.104290518862617,0.104290518862617,0.104342260952189,0.104341533484011,0.104300915375238,0.10423696987869,0.104167820033561,0.104110464713648,0.104078147538945,0.104078147538945, +0.104290518862617,0.104290518862617,0.104342260952189,0.104341533484011,0.104300915375238,0.10423696987869,0.104167820033561,0.104110464713648,0.104078147538945,0.104078147538945, +0.128397778830279,0.128397778830279,0.128445715420497,0.128433763354694,0.128376623446,0.12829369845708,0.128206290665286,0.128134521915288,0.128094236233229,0.128094236233229, +0.177639729704225,0.177639729704225,0.177677744368783,0.177641175547208,0.177548984987929,0.177426272776107,0.177300705124932,0.177198746458057,0.177141700579151,0.177141700579151, +0.253532376704264,0.253532376704264,0.253550331403599,0.253471840674403,0.253322390250415,0.253135698041007,0.252948898106426,0.252798142604104,0.252713699838238,0.252713699838238, +0.357128876127562,0.357128876127562,0.3571121357279,0.356969378590286,0.35673558742322,0.356456249751813,0.356180606018752,0.355957713464453,0.355831634493651,0.355831634493651, +0.487925085978655,0.487925085978655,0.487856270691128,0.487620813565198,0.487269778974359,0.48686427896752,0.486466544267311,0.486140354829586,0.485950693463736,0.485950693463736, +0.642960291391054,0.642960291391054,0.642826643418003,0.642459832615621,0.641951285728646,0.641382443711242,0.640823823658243,0.640349963980876,0.640055545409027,0.640055545409027, +0.81643211550373,0.81643211550373,0.816254089114353,0.815685391096805,0.814968876175177,0.814201782549511,0.813443067550637,0.81275679263879,0.812261032117454,0.812261032117454, + +00:33:49, +0.104401513360848,0.104401513360848,0.104453269101049,0.104452547915512,0.104411930043685,0.104347980642907,0.104278825027876,0.104221464334398,0.104189143982915,0.104189143982915, +0.104401513360848,0.104401513360848,0.104453269101049,0.104452547915512,0.104411930043685,0.104347980642907,0.104278825027876,0.104221464334398,0.104189143982915,0.104189143982915, +0.128513485374503,0.128513485374503,0.128561430031772,0.128549484021519,0.128492348197658,0.128409425562418,0.128322018859092,0.128250250480276,0.128209964881792,0.128209964881792, +0.177762344260878,0.177762344260878,0.177800358333377,0.177763797149914,0.177671619984155,0.177548923894857,0.177423372008005,0.177321425891463,0.177264386994862,0.177264386994862, +0.253659703469367,0.253659703469367,0.253677650317929,0.253599174053858,0.253449754309151,0.253263101294486,0.25307634092512,0.252925617555209,0.252841192881721,0.252841192881721, +0.357253675542299,0.357253675542299,0.357236926660011,0.357094199690586,0.356860466644787,0.356581201663311,0.356305631081337,0.356082798293874,0.355956753316693,0.355956753316693, +0.488035986139128,0.488035986139128,0.487967172397668,0.487731772466268,0.48738083409488,0.486975449824109,0.486577830644407,0.486251736603479,0.486062130743436,0.486062130743436, +0.643044187870984,0.643044187870984,0.642910562213778,0.642543847732899,0.642035443852484,0.641466766266864,0.640908309462973,0.640434588273569,0.640140255047893,0.640140255047893, +0.81647746505765,0.81647746505765,0.816299483293247,0.815730935450461,0.815014614799462,0.814247732214793,0.813489226857557,0.812803140543348,0.812307514182313,0.812307514182313, + +00:33:50, +0.104512529512881,0.104512529512881,0.104564298881019,0.104563583983067,0.10452296637463,0.104459013108929,0.104389851766054,0.104332485733848,0.104300162225215,0.104300162225215, +0.104512529512881,0.104512529512881,0.104564298881019,0.104563583983067,0.10452296637463,0.104459013108929,0.104389851766054,0.104332485733848,0.104300162225215,0.104300162225215, +0.128629201949905,0.128629201949905,0.128677154659948,0.128665214713697,0.128608083000879,0.128525162756042,0.128437757179734,0.128365989203767,0.128325703706632,0.128325703706632, +0.177884948622039,0.177884948622039,0.177922962102675,0.177886408570048,0.177794244820555,0.177671564882355,0.177546028788663,0.177444095245702,0.177387063344317,0.177387063344317, +0.253786996856981,0.253786996856981,0.253804935870504,0.253726474084327,0.253577085030139,0.253390471220587,0.253203750425438,0.253053059194494,0.252968652616736,0.252968652616736, +0.357378422645924,0.357378422645924,0.357361665306178,0.357218968507823,0.3569852935706,0.356706101257865,0.356430603803427,0.356207830762343,0.356081819766603,0.356081819766603, +0.488146826146033,0.488146826146033,0.488078013972091,0.487842671214374,0.487491829012433,0.487086560412586,0.486689056686043,0.486363057984884,0.486173507596789,0.486173507596789, +0.643128031530936,0.643128031530936,0.642994428191319,0.642627809973885,0.642119549004099,0.641551035736205,0.640992742066277,0.640519159265999,0.6402249113251,0.6402249113251, +0.81652278371105,0.81652278371105,0.816344846544143,0.815776448771193,0.81506032225112,0.81429365055358,0.813535354684099,0.812849456828837,0.81235396452992,0.81235396452992, + +00:33:51, +0.104623567265288,0.104623567265288,0.104675350238697,0.104674641633259,0.104634024314616,0.104570067223241,0.104500900194519,0.104443528858371,0.104411202212187,0.104411202212187, +0.104623567265288,0.104623567265288,0.104675350238697,0.104674641633259,0.104634024314616,0.104570067223241,0.104500900194519,0.104443528858371,0.104411202212187,0.104411202212187, +0.128744928517019,0.128744928517019,0.128792889265573,0.12878095539176,0.128723827816141,0.128640909998367,0.128553505587558,0.128481738046053,0.128441452668007,0.128441452668007, +0.178007542774286,0.178007542774286,0.178045555663256,0.178009009794156,0.177916859483619,0.177794195725021,0.177668675453252,0.177566754507059,0.177509729613768,0.177509729613768, +0.253914256886836,0.253914256886836,0.253932188081031,0.253853740785481,0.253704382432995,0.253517807838863,0.253331126626868,0.253180467541395,0.253096079062691,0.253096079062691, +0.357503117489584,0.357503117489584,0.357486351717506,0.357343685093066,0.357110068251702,0.356830948586488,0.35655552423601,0.356332810920829,0.35620683389434,0.35620683389434, +0.488257606069165,0.488257606069165,0.488188795484149,0.487953509879264,0.48760276379679,0.487197610802763,0.48680022246207,0.486474319043687,0.486284824093704,0.486284824093704, +0.643211822437796,0.643211822437796,0.643078241417496,0.642711719405506,0.642203601250516,0.641635252186414,0.641077121535427,0.640603677025543,0.640309514308092,0.640309514308092, +0.816568071504868,0.816568071504868,0.816390178908012,0.815821931100104,0.815105998571429,0.814339537607344,0.813581451071931,0.812895741537103,0.812400383202248,0.812400383202248, + +00:33:52, +0.104734626564705,0.104734626564705,0.104786423120741,0.104785720812737,0.104745103810252,0.104681142932393,0.104611970259757,0.104554593654401,0.104522263890238,0.104522263890238, +0.104734626564705,0.104734626564705,0.104786423120741,0.104785720812737,0.104745103810252,0.104681142932393,0.104611970259757,0.104554593654401,0.104522263890238,0.104522263890238, +0.12886066503643,0.12886066503643,0.128908633809251,0.12889670601629,0.128839582603983,0.128756667249863,0.128669264042966,0.128597496967477,0.12855721172623,0.12855721172623, +0.17813012670423,0.17813012670423,0.178168139001728,0.178131600808818,0.178039463959871,0.177916816409304,0.177791311988149,0.177689403661852,0.177632385789499,0.177632385789499, +0.254041483578655,0.254041483578655,0.254059406969211,0.25398097417698,0.253831646537324,0.253645111168855,0.253458469548889,0.25330784261534,0.253223472238986,0.253223472238986, +0.357627760124368,0.357627760124368,0.357610985945039,0.35746834949733,0.357234790739077,0.356955743700137,0.356680392430016,0.35645773882024,0.356331795750802,0.356331795750802, +0.48836832597822,0.48836832597822,0.488299517003491,0.488064288530588,0.487713638517626,0.487308601064352,0.486911328042239,0.486585519849674,0.486396080303988,0.486396080303988, +0.643295560658349,0.643295560658349,0.643162001959073,0.64279557609458,0.642287600658657,0.641719415684533,0.641161447937585,0.640688141619473,0.640394064064209,0.640394064064209, +0.816613328479975,0.816613328479975,0.816435480425754,0.81586738247823,0.8151516438016,0.814385393417492,0.813627516062652,0.812941994709921,0.812446770241198,0.812446770241198, + +00:33:53, +0.104845707357833,0.104845707357833,0.104897517473878,0.104896821468215,0.104856204808209,0.104792240182999,0.10472306190832,0.104665680068439,0.104633347205838,0.104633347205838, +0.104845707357833,0.104845707357833,0.104897517473878,0.104896821468215,0.104856204808209,0.104792240182999,0.10472306190832,0.104665680068439,0.104633347205838,0.104633347205838, +0.128976411468783,0.128976411468783,0.12902438825164,0.129012466547928,0.128955347324996,0.128872434471058,0.128785032506416,0.128713265928442,0.128672980841671,0.128672980841671, +0.178252700398514,0.178252700398514,0.178290712104736,0.178254181600646,0.178162058235866,0.17803942692169,0.177913938379766,0.177812042696432,0.177755031857827,0.177755031857827, +0.254168676952154,0.254168676952154,0.254186592554735,0.254108174278475,0.253958877362726,0.2537723812301,0.253585779210973,0.253435184435751,0.253350832165016,0.253350832165016, +0.357752350601307,0.357752350601307,0.357735568039765,0.357592961771568,0.357359461083649,0.357080486649707,0.356805208436315,0.356582614511428,0.35645670538683,0.35645670538683, +0.488478985942795,0.488478985942795,0.488410178599669,0.488175007237895,0.487824453244516,0.487419531266964,0.487022373496203,0.486696660472534,0.486507276297354,0.486507276297354, +0.64337924625927,0.64337924625927,0.643245709882706,0.642879380107823,0.642371547295337,0.641803526297498,0.641245721339811,0.640772553114952,0.640478560660684,0.640478560660684, +0.816658554677176,0.816658554677176,0.816480751138205,0.815912802946536,0.815197257982776,0.814431218025359,0.813673549697792,0.812988216388996,0.812493125688602,0.812493125688602, + +00:33:54, +0.104956809591436,0.104956809591436,0.105008633244897,0.105007943546468,0.104967327255224,0.104903358921735,0.104834175086824,0.104776788047048,0.104744452105523,0.104744452105523, +0.104956809591436,0.104956809591436,0.105008633244897,0.105007943546468,0.104967327255224,0.104903358921735,0.104834175086824,0.104776788047048,0.104744452105523,0.104744452105523, +0.129092167774775,0.129092167774775,0.129140152553457,0.12912823694737,0.129071121939826,0.128988211622532,0.128900810938421,0.128829044889403,0.128788759974754,0.128788759974754, +0.178375263843812,0.178375263843812,0.178413274958953,0.178376752156284,0.178284642298192,0.178162027248694,0.178036554614544,0.177934671597182,0.177877667805101,0.177877667805101, +0.254295837027037,0.254295837027037,0.254313744857284,0.254235341109611,0.254086074928791,0.253899618042123,0.253713055632584,0.253562493022042,0.253478158860164,0.253478158860164, +0.35787688897137,0.35787688897137,0.35786009805261,0.357717521966676,0.357484079336285,0.357205177486038,0.35692997230572,0.356707438045185,0.356581562853206,0.356581562853206, +0.488589586032389,0.488589586032389,0.488520780342137,0.488285666070638,0.487935208046938,0.487530401480115,0.487133358893516,0.486807740981856,0.486618412143414,0.486618412143414, +0.643462879307131,0.643462879307131,0.64332936525495,0.642963131511843,0.642455441227266,0.641887584092138,0.641329941809057,0.640856911579041,0.640563004164645,0.640563004164645, +0.816703750137205,0.816703750137205,0.816525991086129,0.815958192545918,0.815242841156031,0.814477011472212,0.813719552018811,0.813034406615964,0.812539449586222,0.812539449586222, + +00:33:55, +0.105067933212343,0.105067933212343,0.105119770380649,0.105119086994338,0.105078471098097,0.105014499095344,0.104945309741948,0.104887917536857,0.104855578535892,0.104855578535892, +0.105067933212343,0.105067933212343,0.105119770380649,0.105119086994338,0.105078471098097,0.105014499095344,0.104945309741948,0.104887917536857,0.104855578535892,0.104855578535892, +0.12920793391516,0.12920793391516,0.12925592667547,0.129244017175365,0.129186906409177,0.129103998664924,0.129016599299549,0.128944833810873,0.12890454908596,0.12890454908596, +0.178497817026833,0.178497817026833,0.178535827551088,0.178499312462408,0.17840721613347,0.178284617376865,0.178159160678961,0.178057290350518,0.178000293617706,0.178000293617706, +0.254422963823004,0.254422963823004,0.254440863896535,0.254362474690023,0.2542132392551,0.254026821624444,0.253840298833178,0.253689768393616,0.253605452343809,0.253605452343809, +0.358001375285471,0.358001375285471,0.357984576034443,0.357842030133489,0.357608645547793,0.357329816259909,0.357054684088985,0.356832209472246,0.356706368200657,0.356706368200657, +0.4887001263164,0.4887001263164,0.488631322300247,0.488396265098168,0.488045902994268,0.487641211773219,0.487244284303632,0.486918761447131,0.48672948791168,0.48672948791168, +0.643546459868398,0.643546459868398,0.64341296814225,0.643046830373145,0.642539282521049,0.64197158913518,0.641414109412169,0.640941217078693,0.640647394643111,0.640647394643111, +0.816748914900728,0.816748914900728,0.816571200310224,0.816003551317207,0.815288393362369,0.814522773799248,0.8137655230671,0.813080565432392,0.812585741975751,0.812585741975751, + +00:33:56, +0.105179078167447,0.105179078167447,0.105230928828052,0.10523025175873,0.105189636283691,0.105125660650631,0.105056465820436,0.104999068484558,0.104966726443608,0.104966726443608, +0.105179078167447,0.105179078167447,0.105230928828052,0.10523025175873,0.105189636283691,0.105125660650631,0.105056465820436,0.104999068484558,0.104966726443608,0.104966726443608, +0.129323709850746,0.129323709850746,0.129371710578504,0.12935980719272,0.129302700693806,0.129219795558924,0.129132397550425,0.12906063265342,0.129020348135825,0.129020348135825, +0.178620359934316,0.178620359934316,0.178658369867878,0.178621862505726,0.178529779728351,0.178407197292785,0.178281756559524,0.178179898942889,0.178122909282055,0.178122909282055, +0.254550057359742,0.254550057359742,0.254567949692152,0.254489575039338,0.254340370361226,0.254153991996574,0.253967508832203,0.253817010569874,0.25373271263532,0.25373271263532, +0.358125809594462,0.358125809594462,0.358109002036076,0.357966486322785,0.357733159768922,0.357454403022042,0.357179343836805,0.356956928843289,0.356831121479848,0.356831121479848, +0.48881060686413,0.48881060686413,0.488741804543256,0.488506804389741,0.488156538155788,0.487751962215592,0.487355149795909,0.487029721937751,0.486840503671567,0.486840503671567, +0.643629988009433,0.643629988009433,0.643496518610951,0.643130476758127,0.642623071243186,0.642055541493243,0.64149822421589,0.641025469680755,0.640731732163,0.640731732163, +0.816794049008345,0.816794049008345,0.816616378851119,0.816048879301163,0.815333914642727,0.814568505047597,0.81381146288398,0.813126692879777,0.812632002898811,0.812632002898811, + +00:33:57, +0.105290244403705,0.105290244403705,0.105342108534087,0.105341437786613,0.105300822758935,0.105236843534467,0.105167643269096,0.105110240836908,0.105077895775398,0.105077895775398, +0.105290244403705,0.105290244403705,0.105342108534087,0.105341437786613,0.105300822758935,0.105236843534467,0.105167643269096,0.105110240836908,0.105077895775398,0.105077895775398, +0.129439495542397,0.129439495542397,0.12948750422344,0.129475606960295,0.129418504754527,0.129335602265281,0.129248205651727,0.129176441377666,0.12913615708494,0.12913615708494, +0.178742892553032,0.178742892553032,0.178780901896096,0.17874440227298,0.178652333069522,0.178529766983067,0.178404342242773,0.178302497360776,0.178245514784597,0.178245514784597, +0.254677117656933,0.254677117656933,0.254695002263793,0.254616642177175,0.254467468266737,0.254281129178015,0.2540946856491,0.253944219570204,0.253859939754061,0.253859939754061, +0.358250191949137,0.358250191949137,0.358233376108258,0.358090890585283,0.357857622050364,0.3575789378231,0.357303951599819,0.35708159620893,0.356955822741388,0.356955822741388, +0.48892102774478,0.48892102774478,0.48885222714032,0.488617284014511,0.488267113600678,0.487862652876455,0.487465955439605,0.487140622523011,0.486951459492394,0.486951459492394, +0.643713463796492,0.643713463796492,0.64358001672729,0.643214070733084,0.642706807460071,0.642139441232842,0.641582286286856,0.64110966945197,0.640816016791122,0.640816016791122, +0.816839152500587,0.816839152500587,0.816661526749377,0.816094176538479,0.815379405037973,0.81461420525832,0.813857371510705,0.813172788999547,0.812678232396956,0.812678232396956, + +00:33:58, +0.105401431868136,0.105401431868136,0.105453309445799,0.10545264502502,0.105412030470822,0.105348047693785,0.1052788420348,0.105221434540727,0.105189086478055,0.105189086478055, +0.105401431868136,0.105401431868136,0.105453309445799,0.10545264502502,0.105412030470822,0.105348047693785,0.1052788420348,0.105221434540727,0.105189086478055,0.105189086478055, +0.129555290951033,0.129555290951033,0.129603307571213,0.129591416439006,0.129534318552207,0.129451418744798,0.129364023564191,0.129292259944291,0.129251975893952,0.129251975893952, +0.178865414869785,0.178865414869785,0.178903423622545,0.178866931750942,0.178774876143698,0.178652326434357,0.178526917715283,0.178425085590693,0.178368110111813,0.178368110111813, +0.254804144734249,0.254804144734249,0.254822021631106,0.254743676123144,0.254594532991187,0.254408233188261,0.2542218293033,0.25407139541399,0.253987133719386,0.253987133719386, +0.358374522400233,0.358374522400233,0.358357698301682,0.358215242971644,0.35798203244275,0.357703420713687,0.357428507428605,0.35720621161973,0.357080472035827,0.357080472035827, +0.489031389027455,0.489031389027455,0.4889625901605,0.488727704041538,0.488377629398021,0.487973283824927,0.487576701303881,0.487251463272106,0.487062355443378,0.487062355443378, +0.643796887295727,0.643796887295727,0.6436634625574,0.643297612364205,0.642790491237994,0.642223288420386,0.641666295691597,0.641193816458977,0.640900248594182,0.640900248594182, +0.816884225417918,0.816884225417918,0.816706644045492,0.81613944306978,0.815424864588909,0.814659874472409,0.81390324898846,0.813218853833062,0.812724430511672,0.812724430511672, + +00:33:59, +0.105512640507825,0.105512640507825,0.105564531510297,0.105563873421047,0.105523259366407,0.105459273075583,0.105390062064483,0.1053326495429,0.105300298498434,0.105300298498434, +0.105512640507825,0.105512640507825,0.105564531510297,0.105563873421047,0.105523259366407,0.105459273075583,0.105390062064483,0.1053326495429,0.105300298498434,0.105300298498434, +0.129671096037627,0.129671096037627,0.129719120582813,0.129707235589825,0.12965014204777,0.129567244958332,0.129479851248607,0.129408088314027,0.129367804523563,0.129367804523563, +0.178987926871411,0.178987926871411,0.179025935034059,0.178989450926415,0.178897408937628,0.178774875633333,0.178649482963658,0.178547663619187,0.178490695250216,0.178490695250216, +0.254931138611353,0.254931138611353,0.254949007813732,0.254870676896846,0.254721564554127,0.254535304046799,0.254348939814229,0.254198538120604,0.25411429455064,0.25411429455064, +0.358498800998425,0.358498800998425,0.358481968666982,0.358339543532469,0.358106390996654,0.357827851744351,0.357553011373685,0.357330775126192,0.357205069413658,0.357205069413658, +0.489141690781161,0.489141690781161,0.489072893672754,0.48883806453978,0.488488085616802,0.488083855130031,0.487687387457799,0.487362244254136,0.487173191593641,0.487173191593641, +0.643880258573186,0.643880258573186,0.643746856167311,0.643381101717576,0.642874122643142,0.642307083122182,0.641750252496542,0.641277910768307,0.640984427638781,0.640984427638781, +0.816929267800734,0.816929267800734,0.816751730779891,0.816184678935625,0.815470293336265,0.814705512730788,0.813949095358361,0.813264887421612,0.812770597284374,0.812770597284374, + +00:34:00, +0.105623870269922,0.105623870269922,0.105675774674753,0.105675122921856,0.10563450939281,0.105570519626922,0.105501303305146,0.105443885790375,0.105411531783455,0.105411531783455, +0.105623870269922,0.105623870269922,0.105675774674753,0.105675122921856,0.10563450939281,0.105570519626922,0.105501303305146,0.105443885790375,0.105411531783455,0.105411531783455, +0.129786910763208,0.129786910763208,0.129834943219285,0.129823064373776,0.129765975202193,0.129683080866797,0.129595688665818,0.129523926447664,0.12948364293453,0.12948364293453, +0.179110428544776,0.179110428544776,0.179148436117506,0.179111959786238,0.179019931438094,0.178897414566705,0.178772037974536,0.178670231432835,0.178613270186351,0.178613270186351, +0.2550580993079,0.2550580993079,0.255075960831303,0.254997644517874,0.254848562975095,0.254662341773107,0.254476017201301,0.254325647709414,0.254241422267163,0.254241422267163, +0.358623027794333,0.358623027794333,0.358606187254735,0.358463792318302,0.358230697762592,0.357952230965579,0.357677463485522,0.357455286778761,0.357329614925316,0.357329614925316, +0.489251933074804,0.489251933074804,0.489183137745948,0.488948365578099,0.488598482325909,0.488194366860691,0.487798013970324,0.487472965538101,0.487283968012206,0.487283968012206, +0.643963577694813,0.643963577694813,0.643830197622947,0.643464538859178,0.642957701741594,0.642390825404429,0.641834156768012,0.641361952446389,0.641068553991414,0.641068553991414, +0.816974279689365,0.816974279689365,0.816796786992932,0.816229884176503,0.815515691320706,0.814751120074313,0.813994910661455,0.813310889806418,0.812816732756408,0.812816732756408, + +00:34:01, +0.105735121101637,0.105735121101637,0.105787038886403,0.105786393474669,0.105745780497216,0.105681787294929,0.105612565703852,0.105555143230165,0.1055227862801,0.1055227862801, +0.105735121101637,0.105735121101637,0.105787038886403,0.105786393474669,0.105745780497216,0.105681787294929,0.105612565703852,0.105555143230165,0.1055227862801,0.1055227862801, +0.12990273508886,0.12990273508886,0.12995077544173,0.129938902751942,0.12988181797651,0.129798926431162,0.129711535776726,0.129639774306045,0.129599491087667,0.129599491087667, +0.17923291987678,0.17923291987678,0.179270926859784,0.179234458317276,0.179142443631907,0.179019943221214,0.178894582734587,0.178792789018249,0.178735834906796,0.178735834906796, +0.255185026843536,0.255185026843536,0.25520288070344,0.255124579005814,0.254975528273624,0.254789346386653,0.254603061483925,0.254452724199777,0.254368516888287,0.254368516888287, +0.358747202838516,0.358747202838516,0.358730354115455,0.358587989379628,0.358354952791021,0.358076558427802,0.357801863814521,0.357579746627821,0.357454108621177,0.357454108621177, +0.489362115977195,0.489362115977195,0.489293322448845,0.48905860722526,0.488708819594132,0.488304819085735,0.487908580910324,0.487583627192904,0.487394684767998,0.487394684767998, +0.644046844726446,0.644046844726446,0.64391348699013,0.643547923854887,0.643041228599329,0.642474515333226,0.641918008572225,0.641445941559546,0.641152627718473,0.641152627718473, +0.817019261124072,0.817019261124072,0.816841812724909,0.816275058832837,0.81556105858283,0.814796696543773,0.814040694938722,0.813356861028634,0.812862836969052,0.812862836969052, + +00:34:02, +0.105846392950248,0.105846392950248,0.105898324092547,0.105897685026777,0.10585707262687,0.105793076026792,0.105723849207728,0.105666421809346,0.105634061935418,0.105634061935418, +0.105846392950248,0.105846392950248,0.105898324092547,0.105897685026777,0.10585707262687,0.105793076026792,0.105723849207728,0.105666421809346,0.105634061935418,0.105634061935418, +0.130018568975721,0.130018568975721,0.130066617211302,0.130054750685457,0.129997670331809,0.129914781612448,0.129827392542285,0.12975563185007,0.12971534894384,0.12971534894384, +0.179355400854354,0.179355400854354,0.179393407247824,0.179356946506431,0.179264945505913,0.179142461583636,0.179017117230512,0.178915336362071,0.178858389398161,0.178858389398161, +0.255311921237898,0.255311921237898,0.255329767449759,0.255251480380239,0.255102460469237,0.254916317906899,0.254730072681499,0.254579767611045,0.254495578433332,0.254495578433332, +0.358871326181475,0.358871326181475,0.358854469299603,0.358712134766872,0.358479156132339,0.358200834181391,0.357926212411029,0.357704154723702,0.35757855055156,0.35757855055156, +0.489472239557046,0.489472239557046,0.489403447850113,0.489168789549929,0.488819097490162,0.488415211873892,0.488019088346568,0.48769422928735,0.487505341929847,0.487505341929847, +0.644130059733823,0.644130059733823,0.643996724334577,0.643631256770478,0.64312470328222,0.642558152974564,0.642001807975295,0.641529878173999,0.641236648886244,0.641236648886244, +0.81706421214505,0.81706421214505,0.816886808016046,0.816320202944983,0.815606395163166,0.814842242179887,0.814086448231072,0.813402801129346,0.812908909963517,0.812908909963517, + +00:34:03, +0.105957685763094,0.105957685763094,0.10600963024055,0.10600899752553,0.105968385729086,0.105904385769765,0.105835153763967,0.105777721475058,0.10574535869652,0.10574535869652, +0.105957685763094,0.105957685763094,0.10600963024055,0.10600899752553,0.105968385729086,0.105904385769765,0.105835153763967,0.105777721475058,0.10574535869652,0.10574535869652, +0.130134412384986,0.130134412384986,0.130182468489211,0.130170608135513,0.130113532229233,0.130030646371734,0.129943258923505,0.129871499040693,0.129831216463972,0.129831216463972, +0.179477871464459,0.179477871464459,0.179515877268587,0.179479424340634,0.179387437046987,0.179264969640774,0.179139641449045,0.179037873450976,0.178980933647088,0.178980933647088, +0.255438782510615,0.255438782510615,0.255456621089864,0.255378348660719,0.255229359581447,0.255043256353299,0.254857050813417,0.254706777962558,0.254622606921615,0.254622606921615, +0.358995397873652,0.358995397873652,0.358978532857577,0.358836228530404,0.358603307836888,0.358325058276661,0.358050509325336,0.357828511116675,0.357702940766728,0.357702940766728, +0.489582303882972,0.489582303882972,0.489513514018322,0.489278912620674,0.488929316082593,0.488525545293795,0.488129536347729,0.487804771890148,0.487615939566482,0.487615939566482, +0.644213222782574,0.644213222782574,0.644079909721903,0.64371453767162,0.643208125856037,0.642641738394333,0.642085555043232,0.641613762355862,0.641320617560911,0.641320617560911, +0.817109132792428,0.817109132792428,0.816931772906502,0.816365316553227,0.815651701102176,0.814887757023309,0.814132170579351,0.813448710149569,0.812954951780943,0.812954951780943, + +00:34:04, +0.106068999487578,0.106068999487578,0.10612095727784,0.106120330918345,0.106079719751237,0.106015716471165,0.105946479319822,0.105889042174506,0.105856676510581,0.105856676510581, +0.106068999487578,0.106068999487578,0.10612095727784,0.106120330918345,0.106079719751237,0.106015716471165,0.105946479319822,0.105889042174506,0.105856676510581,0.105856676510581, +0.130250265277901,0.130250265277901,0.13029832923672,0.130286475063353,0.130229403629979,0.130146520670152,0.130059134881451,0.129987375838924,0.129947093609041,0.129947093609041, +0.17960033169409,0.17960033169409,0.179638336909066,0.179601891806847,0.179509918242037,0.179387467379467,0.179262155376951,0.179160400271672,0.179103467640252,0.179103467640252, +0.255565610681307,0.255565610681307,0.255583441643352,0.255505183866809,0.255356225629761,0.255170161745295,0.25498399589906,0.254833755273651,0.254749602372442,0.254749602372442, +0.359119417965433,0.359119417965433,0.359102544839719,0.358960270720533,0.358727407954949,0.358449230763866,0.358174754607672,0.357952815856952,0.357827279316882,0.357827279316882, +0.48969230902349,0.48969230902349,0.489623521021945,0.489388976505969,0.489039475439924,0.488635819413977,0.488239924982381,0.487915255069908,0.487726477746538,0.487726477746538, +0.644296333938229,0.644296333938229,0.644163043217617,0.64379776662388,0.643291496386445,0.642725271658318,0.642169249841941,0.641697594171146,0.641404533808552,0.641404533808552, +0.817154023106266,0.817154023106266,0.816976707436369,0.816410399697793,0.815696976440255,0.814933241114622,0.814177862024332,0.813494588130252,0.813000962462403,0.813000962462403, + +00:34:05, +0.106180334071168,0.106180334071168,0.106232305151906,0.1062316851527,0.106191074640763,0.106127068078371,0.106057825822614,0.106000383854957,0.10596801532484,0.10596801532484, +0.106180334071168,0.106180334071168,0.106232305151906,0.1062316851527,0.106191074640763,0.106127068078371,0.106057825822614,0.106000383854957,0.10596801532484,0.10596801532484, +0.130366127615771,0.130366127615771,0.13041419941515,0.130402351430278,0.130345284495299,0.13026240446889,0.130175020377244,0.130103262205825,0.13006298034008,0.13006298034008, +0.179722781530272,0.179722781530272,0.179760786156287,0.179724348892065,0.179632389078002,0.179509954786584,0.179384659001028,0.179282916810897,0.179225991364357,0.179225991364357, +0.255692405769584,0.255692405769584,0.25571022912981,0.25563198601806,0.255483058633676,0.255297034102324,0.255110907957803,0.25496069956365,0.254876564805112,0.254876564805112, +0.359243386507142,0.359243386507142,0.359226505296313,0.359084261387511,0.358851456536747,0.358573351693204,0.358298948308211,0.358077068994689,0.35795156625217,0.35795156625217, +0.489802255047019,0.489802255047019,0.489733468929358,0.489498981274187,0.489149575630555,0.488746034302879,0.488350254319003,0.488025678895146,0.487836956538553,0.487836956538553, +0.644379393266214,0.644379393266214,0.644246124887127,0.64388094369272,0.643374814939008,0.642808752832201,0.642252892437226,0.641781373685761,0.641488397695143,0.641488397695143, +0.81719888312656,0.81719888312656,0.817021611645671,0.816455452418835,0.815742221217729,0.814978694494346,0.814223522606723,0.813540435112276,0.813046942048902,0.813046942048902, + +00:34:06, +0.106291689461393,0.106291689461393,0.106343673810305,0.106343060176139,0.106302450345165,0.106238440538829,0.106169193219724,0.106111746463742,0.106079375086599,0.106079375086599, +0.106291689461393,0.106291689461393,0.106343673810305,0.106343060176139,0.106302450345165,0.106238440538829,0.106169193219724,0.106111746463742,0.106079375086599,0.106079375086599, +0.130481999359951,0.130481999359951,0.130530078985873,0.130518237197642,0.130461174786501,0.130378297729191,0.130290915372057,0.130219158102516,0.130178876618177,0.130178876618177, +0.17984522096006,0.17984522096006,0.179883224997304,0.179846795583313,0.179754849541853,0.179632431849025,0.179507152308105,0.179405423055421,0.179348504806143,0.179348504806143, +0.255819167795048,0.255819167795048,0.255836983568816,0.255758755134013,0.25560985861268,0.255423873443813,0.255237787009013,0.255087610851872,0.255003494238914,0.255003494238914, +0.359367303549048,0.359367303549048,0.359350414277582,0.35920820058153,0.358975453632448,0.358697421114816,0.358423090477068,0.358201270579982,0.358075801622679,0.358075801622679, +0.489912142021883,0.489912142021883,0.489843357808839,0.489608926993606,0.489259616722788,0.488856190028839,0.488460524425977,0.488136043434277,0.487947376010964,0.487947376010964, +0.644462400831851,0.644462400831851,0.644329154795738,0.643964068943502,0.643458081579184,0.64289218198156,0.642336482894785,0.641865100965509,0.641572209286554,0.641572209286554, +0.817243712893238,0.817243712893238,0.817066485574367,0.816500474756439,0.815787435474861,0.81502411720293,0.814269152367165,0.813586251136454,0.813092890581376,0.813092890581376, + +00:34:07, +0.10640306560585,0.10640306560585,0.106455063200654,0.106454455936267,0.106413846812011,0.106349833800046,0.106280581458598,0.106223129948257,0.106190755743225,0.106190755743225, +0.10640306560585,0.10640306560585,0.106455063200654,0.106454455936267,0.106413846812011,0.106349833800046,0.106280581458598,0.106223129948257,0.106190755743225,0.106190755743225, +0.130597880471855,0.130597880471855,0.130645967910317,0.130634132326854,0.130577074464945,0.13049420041235,0.130406819827119,0.13033506349017,0.130294782404472,0.130294782404472, +0.179967649970544,0.179967649970544,0.180005653419206,0.179969231867648,0.179877299620592,0.179754898553723,0.179629635285042,0.179527918992048,0.179471007952379,0.179471007952379, +0.255945896777292,0.255945896777292,0.255963704979942,0.255885491234199,0.255736625586253,0.25555067978918,0.255364633072047,0.255214489157626,0.255130390693132,0.255130390693132, +0.359491169141358,0.359491169141358,0.359474271833695,0.359332088352727,0.35909939929216,0.358821439078784,0.358547181164302,0.358325420662873,0.358199985478441,0.358199985478441, +0.490021970016307,0.490021970016307,0.48995318772857,0.489718813732407,0.489369598784831,0.488966286660103,0.488570735371587,0.488246348755624,0.488057736232117,0.488057736232117, +0.64454535670036,0.64454535670036,0.644412133008651,0.644047142441482,0.643541296372333,0.642975559171872,0.642420021280215,0.641948776076092,0.641655968648553,0.641655968648553, +0.817288512446162,0.817288512446162,0.817111329262349,0.816545466750628,0.815832619251843,0.815069509280757,0.814314751346232,0.813632036243531,0.813138808100694,0.813138808100694, + +00:34:08, +0.106514462452195,0.106514462452195,0.106566473270636,0.106565872380755,0.106525263988928,0.106461247809594,0.106391990486748,0.10633453425596,0.106302157242149,0.106302157242149, +0.106514462452195,0.106514462452195,0.106566473270636,0.106565872380755,0.106525263988928,0.106461247809594,0.106391990486748,0.10633453425596,0.106302157242149,0.106302157242149, +0.130713770912947,0.130713770912947,0.130761866149965,0.130750036779376,0.130692983492047,0.13061011247972,0.130522733703715,0.130450978330016,0.130410697660164,0.130410697660164, +0.180090068548841,0.180090068548841,0.18012807140911,0.180091657732159,0.179999739301251,0.17987735488764,0.179752107918732,0.179650404607611,0.179593500789866,0.179593500789866, +0.256072592735899,0.256072592735899,0.256090393382747,0.256012194338141,0.255863359573866,0.255677453157835,0.255491446166255,0.255341334500213,0.25525725418704,0.25525725418704, +0.359614983334225,0.359614983334225,0.359598078014759,0.359455924751177,0.359223293565933,0.35894540563513,0.358671220419912,0.358449519293342,0.358324117869427,0.358324117869427, +0.490131739098421,0.490131739098421,0.490062958756635,0.489828641558675,0.489479521884794,0.489076324264818,0.488680887224021,0.48835659492741,0.488168037270259,0.488168037270259, +0.644628260936859,0.644628260936859,0.644495059590967,0.644130164251816,0.643624459383706,0.643058884468508,0.642503507659007,0.642032399083109,0.641739675846807,0.641739675846807, +0.817333281825127,0.817333281825127,0.817156142749442,0.816590428441356,0.815877772588803,0.815114870768144,0.814360319584427,0.813677790474184,0.813184694647657,0.813184694647657, + +00:34:09, +0.10662587994815,0.10662587994815,0.106677903967996,0.106677309457337,0.10663670182361,0.106572682515108,0.106503420251745,0.106445959334374,0.106413579530863,0.106413579530863, +0.10662587994815,0.10662587994815,0.106677903967996,0.106677309457337,0.10663670182361,0.106572682515108,0.106503420251745,0.106445959334374,0.106413579530863,0.106413579530863, +0.13082967064475,0.13082967064475,0.130877773666352,0.130865950516727,0.130808901829278,0.130726033892705,0.130638656963183,0.130566902583337,0.130526622346505,0.130526622346505, +0.180212476682102,0.180212476682102,0.180250478954167,0.180214073163964,0.180122168570897,0.179999800837773,0.179874570196098,0.179772879888976,0.179715983305439,0.179715983305439, +0.256199255690446,0.256199255690446,0.256217048796782,0.256138864465352,0.255990060594981,0.255804193569181,0.255618226310978,0.255468146898926,0.255384084739902,0.255384084739902, +0.359738746177741,0.359738746177741,0.359721832870825,0.359579709826901,0.35934713650376,0.359069320833822,0.358795208293842,0.358573566521316,0.358448198845555,0.358448198845555, +0.490241449336257,0.490241449336257,0.490172670961024,0.489938410540396,0.489589386090689,0.489186302911036,0.488790980051371,0.488466782017762,0.488278279193538,0.488278279193538, +0.644711113606362,0.644711113606362,0.644577934607681,0.644213134439556,0.643707570678457,0.643142157936739,0.642586942096554,0.642115970052053,0.641823330946876,0.641823330946876, +0.817378021069864,0.817378021069864,0.817200926075407,0.816635359868512,0.815922895525801,0.81516020170534,0.81440585712219,0.813723513869023,0.813230550262998,0.813230550262998, + +00:34:10, +0.1067373180415,0.1067373180415,0.106789355240541,0.106788767113808,0.106748160263813,0.106684137864285,0.106614870701228,0.106557405131086,0.106525022556925,0.106525022556925, +0.1067373180415,0.1067373180415,0.106789355240541,0.106788767113808,0.106748160263813,0.106684137864285,0.106614870701228,0.106557405131086,0.106525022556925,0.106525022556925, +0.130945579628837,0.130945579628837,0.130993690421071,0.130981873500479,0.130924829438161,0.130841964612766,0.130754589566915,0.130682836211469,0.130642556424799,0.130642556424799, +0.180334874357507,0.180334874357507,0.180372876041556,0.180336478150214,0.180244587416624,0.180122236391147,0.179997022104096,0.17989534482304,0.179838455485961,0.179838455485961, +0.256325885660496,0.256325885660496,0.256343671241591,0.256265501635338,0.25611672866905,0.255930901042608,0.255744973525549,0.255594926373049,0.255510882370977,0.255510882370977, +0.35986245772194,0.35986245772194,0.359845536451884,0.359703443629859,0.359470928155574,0.359193184724768,0.358919144835975,0.35869756239666,0.358572228456682,0.358572228456682, +0.49035110079775,0.49035110079775,0.490282324409628,0.490048120745463,0.489699191470435,0.48929622266671,0.488901013921631,0.488576910094712,0.488388462070011,0.488388462070011, +0.644793914773783,0.644793914773783,0.644660758123689,0.644296053069652,0.643790630321633,0.643225379641733,0.642670324658141,0.642199489048318,0.64190693401422,0.64190693401422, +0.817422730220036,0.817422730220036,0.817245679279938,0.816680261071918,0.815967988102832,0.815205502132528,0.814451363999892,0.813769206468592,0.813276374987384,0.813276374987384, + +00:34:11, +0.106848776680092,0.106848776680092,0.106900827036146,0.10690024529803,0.106859639257357,0.106795613804889,0.106726341782895,0.106668871593744,0.106636486267956,0.106636486267956, +0.106848776680092,0.106848776680092,0.106900827036146,0.10690024529803,0.106859639257357,0.106795613804889,0.106726341782895,0.106668871593744,0.106636486267956,0.106636486267956, +0.131061497826838,0.131061497826838,0.131109616375766,0.131097805692256,0.131040766280277,0.130957904601418,0.13087053147636,0.130798779175806,0.130758499856409,0.130758499856409, +0.18045726156227,0.18045726156227,0.180495262658489,0.18045887267809,0.180366995825559,0.180244661534818,0.180119463629712,0.180017799396731,0.179960917318328,0.179960917318328, +0.256452482665608,0.256452482665608,0.256470260736707,0.256392105867594,0.256243363815518,0.256057575597501,0.25587168782929,0.255721672941857,0.255637647099513,0.255637647099513, +0.359986118016799,0.359986118016799,0.359969188807872,0.359827126209955,0.359594668571252,0.359316997357818,0.359043030096138,0.358821506969185,0.358696206752609,0.358696206752609, +0.490460693550742,0.490460693550742,0.490391919170243,0.49015777224167,0.489808938091851,0.489406083599701,0.489010988902703,0.488686979226196,0.488498585967635,0.488498585967635, +0.644876664503931,0.644876664503931,0.644743530203783,0.644378920206953,0.643873638378184,0.643308549648555,0.642753655408955,0.642282956137193,0.641990485114195,0.641990485114195, +0.817467409315241,0.817467409315241,0.817290402402661,0.81672513209133,0.816013050359823,0.815250772089824,0.814496840257838,0.813814868313366,0.813322168861413,0.813322168861413, + +00:34:12, +0.106960255811839,0.106960255811839,0.107012319302745,0.107011743957926,0.106971138752126,0.106907110284743,0.106837833444512,0.106780358670061,0.10674797061164,0.10674797061164, +0.106960255811839,0.106960255811839,0.107012319302745,0.107011743957926,0.106971138752126,0.106907110284743,0.106837833444512,0.106780358670061,0.10674797061164,0.10674797061164, +0.131177425200437,0.131177425200437,0.131225551492137,0.13121374705374,0.131156712317258,0.13107385382023,0.130986482653017,0.130914731437792,0.130874452602749,0.130874452602749, +0.180579638283633,0.180579638283633,0.180617638792209,0.180581256734804,0.18048939378486,0.180367076255877,0.180241894759963,0.180140243597011,0.18008336878947,0.18008336878947, +0.256579046725328,0.256579046725328,0.256596817301654,0.256518677181606,0.256369966053821,0.256184217253235,0.255998369241518,0.255848386624618,0.255764378944752,0.255764378944752, +0.360109727112237,0.360109727112237,0.360092789988664,0.359950757617032,0.359718357800612,0.359440758782766,0.359166864124103,0.358945400288643,0.358820133783079,0.358820133783079, +0.490570227662974,0.490570227662974,0.490501455310569,0.490267365096716,0.489918626022662,0.489515885777771,0.489120905062387,0.488796989480052,0.488608650954271,0.488608650954271, +0.644959362861517,0.644959362861517,0.644826250912655,0.644461735916205,0.643956594912953,0.643391668022168,0.642836934414079,0.642366371383866,0.642073984312057,0.642073984312057, +0.817512058395012,0.817512058395012,0.817335095483141,0.816769972966439,0.816058082336635,0.815296011617278,0.814542285936265,0.813860499443754,0.813367931925616,0.813367931925616, + +00:34:13, +0.107071755384716,0.107071755384716,0.107123831988338,0.107123263041482,0.107082658696065,0.107018627251738,0.106949345633906,0.106891866307814,0.106859475535725,0.106859475535725, +0.107071755384716,0.107071755384716,0.107123831988338,0.107123263041482,0.107082658696065,0.107018627251738,0.106949345633906,0.106891866307814,0.106859475535725,0.106859475535725, +0.13129336171137,0.13129336171137,0.131341495731936,0.131329697546665,0.131272667510791,0.131189812230824,0.131102443058445,0.13103069295893,0.130990414625289,0.130990414625289, +0.180702004508869,0.180702004508869,0.180740004429988,0.180703630307599,0.180611781281715,0.180489480541443,0.180364315481899,0.18026267741087,0.180205809886344,0.180205809886344, +0.256705577859195,0.256705577859195,0.256723340955948,0.256645215596852,0.256496535403384,0.256310826029176,0.256125017781538,0.25597506744059,0.255891077925925,0.255891077925925, +0.360233285058113,0.360233285058113,0.360216340044078,0.36007433790088,0.359841995893417,0.359564469049347,0.359290646969581,0.35906924240473,0.35894400959778,0.35894400959778, +0.490679703202095,0.490679703202095,0.490610932898208,0.490376899378205,0.490028255330499,0.489625629268586,0.489230762468394,0.488906940924025,0.488718657097688,0.488718657097688, +0.645042009911147,0.645042009911147,0.644908920314894,0.644544500262052,0.644039499990684,0.643474734827435,0.642920161738493,0.642449734853423,0.642157431672956,0.642157431672956, +0.817556677498816,0.817556677498816,0.817379758560872,0.81681478373687,0.816103084073066,0.815341220754873,0.814587701075344,0.813906099900098,0.813413664220458,0.813413664220458, + +00:34:14, +0.107183275346761,0.107183275346761,0.107235365040985,0.10723480249675,0.107194199037184,0.107130164653824,0.107060878298966,0.107003394454843,0.106971000988021,0.106971000988021, +0.107183275346761,0.107183275346761,0.107235365040985,0.10723480249675,0.107194199037184,0.107130164653824,0.107060878298966,0.107003394454843,0.106971000988021,0.106971000988021, +0.13140930732143,0.13140930732143,0.131457449056972,0.131445657132819,0.131388631822617,0.131305779794877,0.131218412654252,0.131146663700774,0.131106385885554,0.131106385885554, +0.180824360225283,0.180824360225283,0.180862359559129,0.18082599338375,0.180734158303344,0.180611874378665,0.180486725782599,0.18038510082533,0.180328240595942,0.180328240595942, +0.256832076086737,0.256832076086737,0.256849831719094,0.256771721132801,0.256623071883624,0.256437401944681,0.256251633468649,0.256101715409024,0.256017744062255,0.256017744062255, +0.36035679190423,0.36035679190423,0.360339839023875,0.360197867111227,0.359965582899367,0.359688128207239,0.359414378682226,0.359193033367082,0.359067834246339,0.359067834246339, +0.490789120235655,0.490789120235655,0.490720352000671,0.490486375153644,0.490137826082893,0.489735314139718,0.489340561188333,0.489016833625763,0.488828604465555,0.488828604465555, +0.645124605717326,0.645124605717326,0.644991538474988,0.644627213309039,0.644122353676019,0.643557750129114,0.643003337447077,0.642533046610847,0.642240827261943,0.642240827261943, +0.817601266666054,0.817601266666054,0.817424391675288,0.816859564442182,0.816148055608844,0.815386399542526,0.814633085715182,0.813951669722674,0.813459365786337,0.813459365786337, + +00:34:15, +0.107294815646074,0.107294815646074,0.107346918408813,0.107346362271842,0.107305759723557,0.107241722439017,0.107172431387648,0.10711494305905,0.107082546916404,0.107082546916404, +0.107294815646074,0.107294815646074,0.107346918408813,0.107346362271842,0.107305759723557,0.107241722439017,0.107172431387648,0.10711494305905,0.107082546916404,0.107082546916404, +0.131525261992461,0.131525261992461,0.131573411429105,0.131561625774045,0.131504605214532,0.131421756474121,0.131334391402103,0.131262643624933,0.131222366345121,0.131222366345121, +0.180946705420209,0.180946705420209,0.180984704166969,0.18094834595056,0.180856524836998,0.180734257754725,0.180609125649174,0.180507513827445,0.180450660905284,0.180450660905284, +0.256958541427475,0.256958541427475,0.256976289610588,0.256898193808911,0.25674957551395,0.256563945019098,0.256378216322139,0.25622833054916,0.256144377372959,0.256144377372959, +0.360480247700333,0.360480247700333,0.360463286977758,0.360321345297744,0.36008911886811,0.359811736306063,0.359538059311637,0.359316773225281,0.359191607778329,0.359191607778329, +0.490898478831111,0.490898478831111,0.490829712685367,0.490595792490445,0.490247338347283,0.489844940458642,0.489450301289721,0.489126667652817,0.488938493125449,0.488938493125449, +0.645207150344461,0.645207150344461,0.645074105457324,0.644709875121607,0.644205156033499,0.643640713991864,0.643086461604608,0.642616306721019,0.642324171143967,0.642324171143967, +0.817645825936063,0.817645825936063,0.817468994865753,0.816904315121867,0.816192996983633,0.815431548020088,0.814678439895815,0.813997208951689,0.813505036663583,0.813505036663583, + +00:34:16, +0.107406376230822,0.107406376230822,0.10745849204001,0.107457942314935,0.107417340703319,0.107353300555396,0.107284004847967,0.107226512068403,0.107194113268811,0.107194113268811, +0.107406376230822,0.107406376230822,0.10745849204001,0.107457942314935,0.107417340703319,0.107353300555396,0.107284004847967,0.107226512068403,0.107194113268811,0.107194113268811, +0.131641225686364,0.131641225686364,0.131689382810252,0.131677603432238,0.131620587648385,0.131537742230342,0.131450379263716,0.131378632693071,0.131338355965623,0.131338355965623, +0.181069040081015,0.181069040081015,0.18110703824087,0.181070687995364,0.180978880869956,0.180856630656835,0.180731515068766,0.1806299164043,0.180573070801423,0.180573070801423, +0.257084973900918,0.257084973900918,0.257102714649918,0.257024633644633,0.25687604631376,0.256690455271767,0.256504766361289,0.256354912880232,0.256270977877242,0.256270977877242, +0.360603652496108,0.360603652496108,0.360586683955371,0.360444772510047,0.360212603849233,0.35993529339538,0.359661688907354,0.359440462028849,0.359315330243265,0.359315330243265, +0.491007779055823,0.491007779055823,0.490939015019615,0.490705151455923,0.49035679219101,0.489954508292739,0.48955998283998,0.489236443072646,0.489048323144848,0.489048323144848, +0.645289643856854,0.645289643856854,0.645156621326188,0.644792485764098,0.644287907127563,0.643723626480241,0.643169534275763,0.64269951524872,0.642407463383873,0.642407463383873, +0.817690355348114,0.817690355348114,0.817513568171569,0.816949035815355,0.816237908237033,0.815476666227345,0.814723763657216,0.814042717627286,0.81355067689246,0.81355067689246, + +00:34:17, +0.107517957049231,0.107517957049231,0.107570085882828,0.107569542574268,0.10752894192467,0.107464898951102,0.107395598628006,0.107338101430931,0.107305699993244,0.107305699993244, +0.107517957049231,0.107517957049231,0.107570085882828,0.107569542574268,0.10752894192467,0.107464898951102,0.107395598628006,0.107338101430931,0.107305699993244,0.107305699993244, +0.131757198365091,0.131757198365091,0.13180536316238,0.131793590069349,0.13173657908608,0.131653737025378,0.131566376200865,0.131494630866905,0.131454354708746,0.131454354708746, +0.181191364195095,0.181191364195095,0.181229361768229,0.181193019505527,0.181101226389531,0.180978993072239,0.180853894028549,0.180752308543011,0.180695470271443,0.180695470271443, +0.257211373526568,0.257211373526568,0.257229106856563,0.257151040659406,0.257002484302445,0.256816932722018,0.256631283605369,0.256481462421464,0.256397545594303,0.256397545594303, +0.360727006341185,0.360727006341185,0.360710030006301,0.360568148797691,0.360336037892267,0.360058799524698,0.359785267518859,0.359564099827252,0.359439001690603,0.359439001690603, +0.491117020977056,0.491117020977056,0.491048259070635,0.4908144521173,0.490466187681322,0.490064017709293,0.489669605906434,0.48934615995261,0.489158094591138,0.489158094591138, +0.645372086318708,0.645372086318708,0.645239086145765,0.644875045300751,0.64437060702255,0.643806487658703,0.643252555525117,0.64278267225863,0.642490704046407,0.642490704046407, +0.817734854941413,0.817734854941413,0.817558111631971,0.816993726562008,0.816282789408575,0.815521754204017,0.814769057039292,0.814088195789542,0.813596286513166,0.813596286513166, + +00:34:18, +0.107629558049593,0.107629558049593,0.107681699885582,0.107681162998145,0.107640563335873,0.10757651757434,0.107507212675906,0.107449711094727,0.107417307037766,0.107417307037766, +0.107629558049593,0.107629558049593,0.107681699885582,0.107681162998145,0.107640563335873,0.10757651757434,0.107507212675906,0.107449711094727,0.107417307037766,0.107417307037766, +0.13187317999065,0.13187317999065,0.131921352447514,0.131909585647382,0.131852579489572,0.131769740821123,0.131682382175375,0.131610638108207,0.131570362536232,0.131570362536232, +0.181313677749876,0.181313677749876,0.181351674736472,0.181315340468447,0.181223561383065,0.181101344988209,0.180976262515725,0.180874690230724,0.180817859302459,0.180817859302459, +0.257337740323916,0.257337740323916,0.257355466249989,0.257277414872663,0.257128889499385,0.256943377389172,0.256757768073644,0.25660797919207,0.256524080543331,0.256524080543331, +0.360850309285134,0.360850309285134,0.360833325180078,0.360691474210175,0.360459421046683,0.360182254743464,0.359908795195578,0.359687686669901,0.359562622169745,0.359562622169745, +0.491226204661978,0.491226204661978,0.491157444905554,0.490923694541702,0.49057552488537,0.490173468775495,0.489779170556315,0.489455818359978,0.489267807531609,0.489267807531609, +0.645454477794125,0.645454477794125,0.64532149998014,0.644957553795706,0.644453255782697,0.643889297591603,0.643335525417142,0.642865777815324,0.642573893196213,0.642573893196213, +0.817779324755102,0.817779324755102,0.817602625286132,0.817038387401125,0.816327640537728,0.815566811989756,0.814814320081882,0.814133643478465,0.813641865565832,0.813641865565832, + +00:34:19, +0.107741179180261,0.107741179180261,0.107793333996649,0.107792803534931,0.107752204885252,0.107688156373378,0.107618846939876,0.107561341007947,0.107528934350506,0.107528934350506, +0.107741179180261,0.107741179180261,0.107793333996649,0.107792803534931,0.107752204885252,0.107688156373378,0.107618846939876,0.107561341007947,0.107528934350506,0.107528934350506, +0.131989170525101,0.131989170525101,0.132037350627728,0.132025590128394,0.131968588820874,0.131885753579524,0.131798397149126,0.131726654378802,0.131686379409875,0.131686379409875, +0.181435980732815,0.181435980732815,0.181473977133054,0.181437650871548,0.18134588583793,0.18122368639205,0.181098620517529,0.180997061454616,0.180940237881615,0.180940237881615, +0.257464074312444,0.257464074312444,0.257481792849657,0.257403756303825,0.257255261923951,0.257069789292542,0.256884219785365,0.256734463211258,0.256650582743505,0.256650582743505, +0.360973561377469,0.360973561377469,0.360956569526173,0.36081474879694,0.360582753361899,0.360305659101068,0.360032271986879,0.359811222606145,0.359686191730034,0.359686191730034, +0.491335330177664,0.491335330177664,0.491266572591403,0.491032878796159,0.490684803870212,0.490282861558439,0.489888676856758,0.48956541836192,0.489377462033455,0.489377462033455, +0.645536818347107,0.645536818347107,0.645403862893297,0.645040011313002,0.644535853472141,0.643972056343197,0.643418444016214,0.642948831983282,0.642657030897834,0.642657030897834, +0.817823764828256,0.817823764828256,0.817647109173156,0.817083018371938,0.816372461663894,0.815611839624152,0.814859552824762,0.814179060734,0.813687414090524,0.813687414090524, + +00:34:20, +0.107852820389654,0.107852820389654,0.10790498816447,0.107904464133056,0.107863866521197,0.107799815296547,0.107730501368184,0.10767299111881,0.107640581879654,0.107640581879654, +0.107852820389654,0.107852820389654,0.10790498816447,0.107904464133056,0.107863866521197,0.107799815296547,0.107730501368184,0.10767299111881,0.107640581879654,0.107640581879654, +0.132105169930559,0.132105169930559,0.132153357665155,0.132141603474497,0.132084607042049,0.132001775262581,0.131914421084054,0.131842679640571,0.131802405291524,0.131802405291524, +0.1815582731314,0.1815582731314,0.181596268945462,0.181559950702288,0.181468199741528,0.181346017271096,0.181220968021225,0.181119422201895,0.181062605996089,0.181062605996089, +0.257590375511625,0.257590375511625,0.257608086675016,0.257530064972304,0.257381601595505,0.257196168451431,0.257010638759778,0.256860914498226,0.256777052213999,0.256777052213999, +0.361096762667646,0.361096762667646,0.361079763094,0.360937972607369,0.360706034887271,0.360429012646845,0.360155697942075,0.359934707685282,0.359809710420757,0.359809710420757, +0.491444397591093,0.491444397591093,0.491375642195117,0.491142004947607,0.490794024702808,0.490392196125125,0.489998124874804,0.489674960025514,0.489487058163777,0.489487058163777, +0.645619108041554,0.645619108041554,0.64548617494912,0.645122417916578,0.644618400154919,0.644054763977637,0.643501311386603,0.643031834826877,0.642740117215712,0.642740117215712, +0.817868175199889,0.817868175199889,0.817691563332086,0.817127619513616,0.81641725282641,0.815656837146727,0.81490475530764,0.814224447596024,0.813732932127239,0.813732932127239, + +00:34:21, +0.107964481626249,0.107964481626249,0.108016662337549,0.10801614474101,0.107975548192159,0.107911494292242,0.107842175909165,0.107784661375599,0.107752249573464,0.107752249573464, +0.107964481626249,0.107964481626249,0.108016662337549,0.10801614474101,0.107975548192159,0.107911494292242,0.107842175909165,0.107784661375599,0.107752249573464,0.107752249573464, +0.132221178169192,0.132221178169192,0.132269373521976,0.132257625647854,0.132200634115215,0.132117805832349,0.132030453942146,0.131958713855446,0.131918440143081,0.131918440143081, +0.181680554933147,0.181680554933147,0.181718550161213,0.181682239948153,0.181590503081294,0.181468337612713,0.18134330501411,0.181241772459801,0.181184963633088,0.181184963633088, +0.257716643940922,0.257716643940922,0.257734347745507,0.257656340897504,0.2575079085334,0.257322514885131,0.257137025016119,0.256987333072162,0.256903488973975,0.256903488973975, +0.361219913205064,0.361219913205064,0.361202905932916,0.36106114569079,0.360829265672101,0.36055231543007,0.360279073110419,0.360058141956547,0.359933178291144,0.359933178291144, +0.491553406969151,0.491553406969151,0.491484653783539,0.491251073062887,0.490903187450026,0.490501472542459,0.4901075146774,0.489784443417743,0.48959659598958,0.48959659598958, +0.645701346941269,0.645701346941269,0.645568436211391,0.645204773670272,0.644700895894967,0.644137420558977,0.643584127592482,0.643114786410386,0.642823152214187,0.642823152214187, +0.817912555908949,0.817912555908949,0.817735987801898,0.817172190865262,0.816462014064548,0.81570180459694,0.814949927570159,0.814269804104349,0.813778419715912,0.813778419715912, + +00:34:22, +0.108076162838592,0.108076162838592,0.108128356464452,0.108127845307349,0.108087249846652,0.108023193308918,0.107953870511213,0.10789635172666,0.107863937380253,0.107863937380253, +0.108076162838592,0.108076162838592,0.108128356464452,0.108127845307349,0.108087249846652,0.108023193308918,0.107953870511213,0.10789635172666,0.107863937380253,0.107863937380253, +0.132337195203221,0.132337195203221,0.132385398160431,0.132373656610686,0.132316670002545,0.132233845250936,0.132146495685444,0.132074756985414,0.132034483926502,0.132034483926502, +0.181802826125603,0.181802826125603,0.181840820767853,0.18180451859666,0.18171279584469,0.181590647404296,0.181465631483508,0.181364112215603,0.181307310779849,0.181307310779849, +0.257842879619788,0.257842879619788,0.257860576080558,0.257782584098818,0.25763418275698,0.257448828612929,0.257263378573613,0.257113718952245,0.257029893042588,0.257029893042588, +0.361343013039061,0.361343013039061,0.36132599809222,0.361184268096471,0.360952445765631,0.360675567499963,0.360402397541108,0.360181525469123,0.360056595390366,0.360056595390366, +0.491662358378625,0.491662358378625,0.491593607423414,0.491360083208746,0.49101229217864,0.490610690877251,0.490216846331396,0.489893868605495,0.489706075577776,0.489706075577776, +0.645783535109952,0.645783535109952,0.645650646743796,0.645287078637824,0.644783340756121,0.64422002615117,0.643666892697922,0.643197686797984,0.642906135957502,0.642906135957502, +0.817956906994317,0.817956906994317,0.817780382621507,0.817216732465916,0.816506745417517,0.815746742014182,0.814995069651899,0.814315130298722,0.813823876896409,0.813823876896409, + +00:34:23, +0.108187863975287,0.108187863975287,0.10824007049381,0.108239565780691,0.108198971433254,0.108134912295096,0.108065585122788,0.1080080621204,0.1079756452484,0.1079756452484, +0.108187863975287,0.108187863975287,0.10824007049381,0.108239565780691,0.108198971433254,0.108134912295096,0.108065585122788,0.1080080621204,0.1079756452484,0.1079756452484, +0.132453220994921,0.132453220994921,0.132501431542808,0.132489696325262,0.132432714666262,0.132349893480504,0.132262546276043,0.132190808992516,0.132150536603799,0.132150536603799, +0.181925086696348,0.181925086696348,0.181963080752958,0.181926786635356,0.181835078019211,0.18171294663327,0.181587947416777,0.1814864414566,0.18142964742364,0.18142964742364, +0.257969082567668,0.257969082567668,0.257986771699593,0.25790879459563,0.257760424285578,0.2575751096541,0.257389699451478,0.257240072157648,0.257156264438982,0.257156264438982, +0.361466062218923,0.361466062218923,0.361449039621154,0.361307339873623,0.361075575217048,0.360798768905687,0.360525671283283,0.360304858272133,0.360179961767541,0.360179961767541, +0.491771251886212,0.491771251886212,0.491702503181396,0.491469035451836,0.491121338955326,0.490719851196217,0.490326119903551,0.490003235655563,0.48981549699518,0.48981549699518, +0.645865672611205,0.645865672611205,0.645732806609918,0.645369332882871,0.644865734802119,0.644302580818069,0.643749606766895,0.643280536053745,0.642989068509797,0.642989068509797, +0.818001228494815,0.818001228494815,0.81782474782976,0.81726124435455,0.816551446924458,0.815791649437782,0.81504018159237,0.814360426218823,0.813869303708531,0.813869303708531, + +00:34:24, +0.108299584985003,0.108299584985003,0.108351804374314,0.108351306109715,0.108310712900605,0.108246651199359,0.108177319692411,0.10811979250529,0.108087373126349,0.108087373126349, +0.108299584985003,0.108299584985003,0.108351804374314,0.108351306109715,0.108310712900605,0.108246651199359,0.108177319692411,0.10811979250529,0.108087373126349,0.108087373126349, +0.132569255506622,0.132569255506622,0.132617473631453,0.13260574475391,0.132548768068647,0.132465950483268,0.132378605676092,0.132306869838848,0.132266598137035,0.132266598137035, +0.182047336632987,0.182047336632987,0.182085330104136,0.182049044051819,0.181957349592379,0.181835235287091,0.181710252801303,0.181608760170122,0.181551973551761,0.181551973551761, +0.258095252803996,0.258095252803996,0.258112934622021,0.258034972407314,0.257886633138518,0.257701358027909,0.257515987668924,0.257366392707533,0.257282603182294,0.257282603182294, +0.361589060793874,0.361589060793874,0.361572030568901,0.361430361071401,0.36119865407548,0.360921919696345,0.360648894386027,0.360428140414646,0.360303277471727,0.360303277471727, +0.491880087558513,0.491880087558513,0.491811341124043,0.491577929858715,0.491230327846669,0.490828953565981,0.490435335460528,0.490112544634648,0.489924860308516,0.489924860308516, +0.645947759508529,0.645947759508529,0.645814915873243,0.645451536468954,0.644948078096596,0.644385084623427,0.643832269863272,0.643363334241645,0.643071949935111,0.643071949935111, +0.818045520449196,0.818045520449196,0.817869083465441,0.817305726570077,0.816596118624451,0.815836526907003,0.815085263431022,0.814405691904269,0.813914700192015,0.813914700192015, + +00:34:25, +0.108411325816472,0.108411325816472,0.108463558054719,0.108463066243165,0.108422474197409,0.108358409970352,0.108289074168668,0.108231542829867,0.108199120962606,0.108199120962606, +0.108411325816472,0.108411325816472,0.108463558054719,0.108463066243165,0.108422474197409,0.108358409970352,0.108289074168668,0.108231542829867,0.108199120962606,0.108199120962606, +0.132685298700704,0.132685298700704,0.132733524388763,0.132721801859006,0.13266483017203,0.132582016221497,0.132494673847794,0.132422939486556,0.132382668488326,0.132382668488326, +0.182169575923158,0.182169575923158,0.182207568809022,0.182171290833654,0.182079610551748,0.181957513353246,0.181832547624503,0.181731068343532,0.18167428915154,0.18167428915154, +0.258221390348196,0.258221390348196,0.258239064867246,0.258161117553237,0.258012809335117,0.257827573753614,0.257642243245148,0.257492680621052,0.257408909291652,0.257408909291652, +0.361712008813084,0.361712008813084,0.36169497098459,0.3615533317389,0.36132168239,0.361045019920985,0.360772066898367,0.36055137194567,0.360426542551928,0.360426542551928, +0.491988865462033,0.491988865462033,0.491920121317817,0.491686766495846,0.491339258919159,0.49093799805307,0.490544493068895,0.490221795609354,0.490034165584413,0.490034165584413, +0.646029795865329,0.646029795865329,0.645896974597155,0.645533689459512,0.645030370703091,0.6444675376309,0.643914882050825,0.643446081425557,0.643154780297386,0.643154780297386, +0.818089782896153,0.818089782896153,0.817913389567272,0.817350179151342,0.816640760556509,0.815881374461043,0.815130315207236,0.814450927394609,0.813960066386531,0.813960066386531, + +00:34:26, +0.108523086418488,0.108523086418488,0.108575331483845,0.108574846129848,0.10853425527243,0.108470188556785,0.108400848500206,0.108343313042726,0.108310888705739,0.108310888705739, +0.108523086418488,0.108523086418488,0.108575331483845,0.108574846129848,0.10853425527243,0.108470188556785,0.108400848500206,0.108343313042726,0.108310888705739,0.108310888705739, +0.132801350539602,0.132801350539602,0.132849583777189,0.132837867602983,0.132780900938798,0.132698090657512,0.132610750753404,0.132539017897842,0.132498747619845,0.132498747619845, +0.182291804554528,0.182291804554528,0.182329796855284,0.182293526968499,0.182201860884902,0.182079780819249,0.181954831873824,0.181853365964219,0.181796594210338,0.181796594210338, +0.258347495219683,0.258347495219683,0.258365162454657,0.258287230052751,0.258138952894679,0.257953756850463,0.257768466199342,0.257618935917349,0.257535182786174,0.257535182786174, +0.361834906325662,0.361834906325662,0.361817860917288,0.361676251925162,0.361444660209623,0.3611680696286,0.360895188869272,0.360674552914161,0.360549757057089,0.360549757057089, +0.492097585663185,0.492097585663185,0.492028843829089,0.4917955454296,0.491448132239191,0.491046984723918,0.490653592795128,0.490330988646194,0.490143412889404,0.490143412889404, +0.646111781744906,0.646111781744906,0.645978982844941,0.645615791917886,0.64511261268504,0.644549939904039,0.643997443393226,0.643528777669258,0.643237559660462,0.643237559660462, +0.818134015874312,0.818134015874312,0.817957666173909,0.817394602137127,0.816685372759583,0.815926192139036,0.815175336960331,0.814496132729329,0.814005402331685,0.814005402331685, + +00:34:27, +0.108634866739908,0.108634866739908,0.10868712461057,0.108686645718631,0.108646056074498,0.108581986907427,0.108512642635736,0.108455103092527,0.108422676304381,0.108422676304381, +0.108634866739908,0.108634866739908,0.10868712461057,0.108686645718631,0.108646056074498,0.108581986907427,0.108512642635736,0.108455103092527,0.108422676304381,0.108422676304381, +0.132917410985806,0.132917410985806,0.132965651759234,0.132953941948326,0.132896980331388,0.13281417375369,0.132726836355233,0.132655105034962,0.132614835493816,0.132614835493816, +0.182414022514795,0.182414022514795,0.182452014230617,0.182415752444021,0.182324100579455,0.182202037672649,0.182077105536744,0.181975653019605,0.181918888715543,0.181918888715543, +0.258473567437863,0.258473567437863,0.258491227403639,0.258413309925204,0.2582650638365,0.258079907337692,0.257894656550685,0.257745158615559,0.25766142368497,0.25766142368497, +0.361957753380663,0.361957753380663,0.36194070041601,0.361799121679168,0.361567587583304,0.361291068868122,0.361018260347654,0.360797683369016,0.360672921036099,0.360672921036099, +0.492206248228288,0.492206248228288,0.492137508724134,0.491904266726251,0.491556947873068,0.491155913644866,0.490762634705609,0.490440123811585,0.490252602289931,0.490252602289931, +0.646193717210465,0.646193717210465,0.646060940679789,0.645697843907319,0.645194804105784,0.644632291506302,0.644079953954049,0.643611423036422,0.643320288088081,0.643320288088081, +0.818178219422237,0.818178219422237,0.818001913323945,0.81743899556615,0.816729955272556,0.81597097998005,0.815220328729559,0.814541307947849,0.814050708067016,0.814050708067016, + +00:34:28, +0.108746666729652,0.108746666729652,0.10879893738384,0.108798464958446,0.108757876552504,0.108693804971114,0.10862445652403,0.108566912927994,0.108534483707225,0.108534483707225, +0.108746666729652,0.108746666729652,0.10879893738384,0.108798464958446,0.108757876552504,0.108693804971114,0.10862445652403,0.108566912927994,0.108534483707225,0.108534483707225, +0.133033480001856,0.133033480001856,0.133081728297454,0.133070024857573,0.133013068312292,0.132930265472458,0.132842930615642,0.132771200860224,0.132730932072517,0.132730932072517, +0.182536229791684,0.182536229791684,0.182574220922746,0.182537967247914,0.182446329623049,0.182324283901019,0.182199368600769,0.182097929497141,0.182041172654577,0.182041172654577, +0.25859960702213,0.25859960702213,0.258617259733563,0.258539357189931,0.258391142179868,0.258206025234532,0.25802081431835,0.257871348734808,0.25778763200714,0.25778763200714, +0.362080550027084,0.362080550027084,0.362063489529709,0.361921941049844,0.361690464559947,0.36141401768843,0.361141281382371,0.360920763359074,0.360796034537791,0.360796034537791, +0.492314853223565,0.492314853223565,0.492246116069135,0.492012930451982,0.491665705886999,0.491264784882161,0.490871618866625,0.490549201171853,0.490361733852342,0.490361733852342, +0.646275602325113,0.646275602325113,0.646142848164786,0.645779845490952,0.645276945028562,0.644714592501043,0.644162413796767,0.643694017590627,0.643402965643885,0.643402965643885, +0.818222393578429,0.818222393578429,0.81804613105591,0.817483359477066,0.816774508134251,0.81601573802309,0.81526529055411,0.814586453089524,0.814095983631999,0.814095983631999, + +00:34:29, +0.108858486336702,0.108858486336702,0.108910769752658,0.108910303798288,0.108869716655402,0.108805642696741,0.108736290113924,0.108678742497912,0.108646310863028,0.108646310863028, +0.108858486336702,0.108858486336702,0.108910769752658,0.108910303798288,0.108869716655402,0.108805642696741,0.108736290113924,0.108678742497912,0.108646310863028,0.108646310863028, +0.133149557550346,0.133149557550346,0.133197813354461,0.133186116293315,0.133129164844055,0.133046365776299,0.132959033497048,0.13288730533599,0.132847037318279,0.132847037318279, +0.182658426372952,0.182658426372952,0.182696416919427,0.182660171367906,0.182568548003357,0.182446519491966,0.182321621053437,0.182220195384308,0.182163446014889,0.182163446014889, +0.258725613991871,0.258725613991871,0.258743259463791,0.258665371866259,0.258517187944058,0.2583321105602,0.258146939521498,0.257997506294214,0.257913807771776,0.257913807771776, +0.362203296313863,0.362203296313863,0.362186228307285,0.362044710086059,0.361813291188393,0.361536916138342,0.361264252022222,0.36104379293312,0.360919097610941,0.360919097610941, +0.492423400715148,0.492423400715148,0.49235466593018,0.492121536672881,0.491774406347097,0.491373598501955,0.490980545344371,0.490658220793227,0.49047080764289,0.49047080764289, +0.646357437151856,0.646357437151856,0.646224705362924,0.645861796731831,0.645359035516515,0.644796842951521,0.644244822984755,0.643776561395349,0.643485592391415,0.643485592391415, +0.818266538381325,0.818266538381325,0.81809031940827,0.817527693908465,0.816819031383426,0.816060466307098,0.815310222473107,0.814631568193645,0.814141229066045,0.814141229066045, + +00:34:30, +0.108970325510102,0.108970325510102,0.109022621666095,0.109022162187212,0.108981576332208,0.108917500033269,0.108848143354318,0.108790591751129,0.108758157720611,0.108758157720611, +0.108970325510102,0.108970325510102,0.109022621666095,0.109022162187212,0.108981576332208,0.108917500033269,0.108848143354318,0.108790591751129,0.108758157720611,0.108758157720611, +0.133265643593925,0.133265643593925,0.133313906892918,0.133302216218196,0.133245269889276,0.133162474627746,0.13307514496192,0.133003418424675,0.132963151193486,0.132963151193486, +0.182780612246385,0.182780612246385,0.182818602208445,0.182782364791752,0.182690755708082,0.182568744433126,0.182443862882315,0.182342450668619,0.18228570878396,0.18228570878396, +0.258851588366461,0.258851588366461,0.258869226613678,0.258791353973503,0.258643201148338,0.258458163333908,0.258273032179284,0.258123631312882,0.258039950997959,0.258039950997959, +0.362325992289882,0.362325992289882,0.362308916797577,0.362167428836622,0.361936067517429,0.361659764266624,0.361387172315948,0.361166772139881,0.361042110304269,0.361042110304269, +0.492531890769075,0.492531890769075,0.492463158373265,0.492230085454944,0.491883049319384,0.491482354570309,0.491089414204947,0.490767182741846,0.490579823727736,0.490579823727736, +0.646439221753602,0.646439221753602,0.646306512337093,0.645943697692902,0.645441075632687,0.644879042920893,0.644327181581288,0.643859054513968,0.643568168394117,0.643568168394117, +0.818310653869297,0.818310653869297,0.818134478419427,0.817571998898875,0.816863525058774,0.81610516487095,0.815355124525611,0.814676653299438,0.814186444408499,0.814186444408499, + +00:34:31, +0.109082184198962,0.109082184198962,0.10913449307328,0.109134040074338,0.109093455532001,0.109029376929718,0.108960016194171,0.108902460636557,0.108870024228857,0.108870024228857, +0.109082184198962,0.109082184198962,0.10913449307328,0.109134040074338,0.109093455532001,0.109029376929718,0.108960016194171,0.108902460636557,0.108870024228857,0.108870024228857, +0.133381738095293,0.133381738095293,0.133430008875539,0.133418324594913,0.133361383410604,0.13327859198939,0.13319126497278,0.133119540088747,0.133079273660578,0.133079273660578, +0.182902787399798,0.182902787399798,0.182940776777614,0.182904547507235,0.182812952724956,0.182690958712164,0.182566094075,0.182464695337614,0.1824079609493,0.1824079609493, +0.258977530165266,0.258977530165266,0.258995161202565,0.258917303530971,0.258769181811965,0.258584183574855,0.258399092310849,0.258249723809911,0.258166061704763,0.258166061704763, +0.362448638003968,0.362448638003968,0.362431555049371,0.36229009735029,0.362058793595786,0.361782562121982,0.361510042312237,0.361289701028029,0.361165072666439,0.361165072666439, +0.492640323451288,0.492640323451288,0.49257159346429,0.492338576864073,0.491991634869789,0.491591053153189,0.491198225514363,0.490876087083753,0.490688782172947,0.490688782172947, +0.646520956193163,0.646520956193163,0.646388269150087,0.646025548437012,0.645523065440021,0.64496119247222,0.644409489649545,0.643941497009762,0.643650693715334,0.643650693715334, +0.818354740080657,0.818354740080657,0.818178608127721,0.81761627448676,0.816907989198925,0.816149833753459,0.815399996750616,0.814721708446065,0.814231629698641,0.814231629698641, + +00:34:32, +0.109194062352449,0.109194062352449,0.109246383923408,0.109245937408847,0.109205354203923,0.109141273335173,0.109071908582509,0.109014349103168,0.10898191033671,0.10898191033671, +0.109194062352449,0.109194062352449,0.109246383923408,0.109245937408847,0.109205354203923,0.109141273335173,0.109071908582509,0.109014349103168,0.10898191033671,0.10898191033671, +0.133497841017203,0.133497841017203,0.133546119265095,0.133534441386216,0.133477505370744,0.13339471782387,0.133307393492204,0.133235670290727,0.133195404682044,0.133195404682044, +0.183024951821035,0.183024951821035,0.183062940614777,0.183026719502171,0.182935139041741,0.182813162316774,0.182688314619118,0.182586929378865,0.182530202498449,0.182530202498449, +0.259103439407642,0.259103439407642,0.259121063249786,0.259043220557958,0.258895129954187,0.258710171302231,0.258525119935328,0.258375783804391,0.258292139911252,0.258292139911252, +0.362571233504886,0.362571233504886,0.362554143111392,0.362412715675759,0.362181469472137,0.361905309753066,0.361632862059718,0.361412579646178,0.361287984746057,0.361287984746057, +0.49274869882764,0.49274869882764,0.492679971269065,0.492447010966076,0.492100163064146,0.491699694316469,0.491306979338531,0.490984933884901,0.490797683044498,0.490797683044498, +0.64660264053325,0.64660264053325,0.646469975864602,0.64610734902691,0.645605005001364,0.645043291668463,0.644491747252603,0.644023888945914,0.643733168418314,0.643733168418314, +0.818398797053653,0.818398797053653,0.818222708571428,0.81766052071052,0.816952423842447,0.816194472993374,0.815444839187054,0.814766733672623,0.814276784975688,0.814276784975688, + +00:34:33, +0.109305959919797,0.109305959919797,0.109358294165734,0.109357854139984,0.109317272297178,0.109253189198782,0.109183820468417,0.109126257099999,0.109093815993179,0.109093815993179, +0.109305959919797,0.109305959919797,0.109358294165734,0.109357854139984,0.109317272297178,0.109253189198782,0.109183820468417,0.109126257099999,0.109093815993179,0.109093815993179, +0.133613952322461,0.133613952322461,0.133662238024405,0.133650566554909,0.133593635732452,0.13351085209388,0.133423530482819,0.133351808993191,0.133311544220429,0.133311544220429, +0.183147105497969,0.183147105497969,0.183185093707808,0.183148880764403,0.183057314646228,0.182935355234681,0.182810524502327,0.182709152779973,0.182652433418978,0.182652433418978, +0.259229316112935,0.259229316112935,0.259246932774664,0.259169105073753,0.259021045594242,0.258836126535218,0.258651115071847,0.2585018113154,0.25841818563648,0.25841818563648, +0.36269377884135,0.36269377884135,0.362676681032312,0.36253528386167,0.362304095195098,0.362028007208469,0.361755631606965,0.361535408042885,0.361410846591675,0.361410846591675, +0.492857016963886,0.492857016963886,0.492788291853305,0.492555387826669,0.492208633968199,0.491808278125929,0.491415675743276,0.491093723211148,0.490906526408271,0.490906526408271, +0.646684274836478,0.646684274836478,0.646551632543236,0.646189099525249,0.645686894379464,0.645125340572485,0.644573954453444,0.644106230385505,0.643815592566203,0.643815592566203, +0.818442824826467,0.818442824826467,0.818266779788763,0.817704737608493,0.816996829027841,0.81623908262938,0.815489651873793,0.814811729018146,0.814321910278792,0.814321910278792, + +00:34:34, +0.109417876850301,0.109417876850301,0.109470223749577,0.109469790217054,0.109429209761031,0.109365124469753,0.109295751801043,0.109238184576149,0.109205741147333,0.109205741147333, +0.109417876850301,0.109417876850301,0.109470223749577,0.109469790217054,0.109429209761031,0.109365124469753,0.109295751801043,0.109238184576149,0.109205741147333,0.109205741147333, +0.133730071973926,0.133730071973926,0.133778365116346,0.133766700063846,0.133709774458538,0.133626994762167,0.133539675907308,0.133467956158765,0.133427692238331,0.133427692238331, +0.183269248418505,0.183269248418505,0.183307236044607,0.183271031281805,0.183179479526236,0.183057537453639,0.182932723712311,0.182831365528567,0.182774653698485,0.182774653698485, +0.25935516030048,0.25935516030048,0.259372769796512,0.259294957097631,0.259146928751358,0.258962049292987,0.25877707773952,0.258627806362009,0.258544198899494,0.258544198899494, +0.362816274062013,0.362816274062013,0.362799168860743,0.362657801956607,0.362426670813228,0.362150654536729,0.361878351002493,0.361658186266654,0.361533658251785,0.361533658251785, +0.492965277925693,0.492965277925693,0.492896555282633,0.492663707511475,0.492317047647595,0.491916804647258,0.491524314794324,0.49120245512826,0.491015312330055,0.491015312330055, +0.646765859165364,0.646765859165364,0.646633239248487,0.646270799994583,0.645768733636971,0.645207339247054,0.64465611131495,0.64418852139152,0.643897966222052,0.643897966222052, +0.818486823437224,0.818486823437224,0.818310821817875,0.817748925218953,0.817041204793549,0.816283662700098,0.815534434849637,0.814856694521602,0.814367005647041,0.814367005647041, + +00:34:35, +0.109529813093318,0.109529813093318,0.109582172624317,0.109581745589427,0.109541166544813,0.109477079097359,0.1094077025296,0.109350131480779,0.109317685748306,0.109317685748306, +0.109529813093318,0.109529813093318,0.109582172624317,0.109581745589427,0.109541166544813,0.109477079097359,0.1094077025296,0.109350131480779,0.109317685748306,0.109317685748306, +0.133846199934509,0.133846199934509,0.133894500503843,0.133882841875936,0.133825921511864,0.133743145791531,0.133655829728404,0.133584111750131,0.133543848698399,0.133543848698399, +0.183391380570575,0.183391380570575,0.183429367613107,0.183393171042277,0.183301633669616,0.183179708961431,0.183054912236787,0.18295356761231,0.182896863324601,0.182896863324601, +0.259480971989604,0.259480971989604,0.259498574334633,0.259420776648859,0.259272779444753,0.2590879395947,0.258903007957452,0.258753768963279,0.258670179719327,0.258670179719327, +0.362938719215471,0.362938719215471,0.362921606645241,0.362780270009097,0.36254919637503,0.362273251786326,0.362001020294764,0.361780914365929,0.361656419774828,0.361656419774828, +0.493073481778631,0.493073481778631,0.493004761622578,0.492771970086024,0.492425404167892,0.49202527394605,0.491632896557314,0.491311129701909,0.491124040875545,0.491124040875545, +0.646847393582326,0.646847393582326,0.64671479604276,0.646352450497368,0.645850522836438,0.645289287754835,0.644738217899906,0.644270762026846,0.643980289448812,0.643980289448812, +0.81853079292398,0.81853079292398,0.818354834696853,0.817793083580112,0.817085551177947,0.816328213244088,0.815579188153326,0.814901630221896,0.814412071119457,0.814412071119457, + +00:34:36, +0.109641768598267,0.109641768598267,0.109694140739398,0.109693720206533,0.109653142597914,0.109589053030933,0.109519672603361,0.109462097763113,0.109429649745294,0.109429649745294, +0.109641768598267,0.109641768598267,0.109694140739398,0.109693720206533,0.109653142597914,0.109589053030933,0.109519672603361,0.109462097763113,0.109429649745294,0.109429649745294, +0.133962336167176,0.133962336167176,0.134010644149877,0.13399899195414,0.133942076855344,0.133859305144823,0.133771991908895,0.13370027573002,0.133660013563336,0.133660013563336, +0.183513501942138,0.183513501942138,0.183551488401268,0.183515300033751,0.183423777064246,0.183301869745869,0.183177090063499,0.18307575901889,0.183019062284985,0.183019062284985, +0.259606751199622,0.259606751199622,0.25962434640832,0.259546563746695,0.259398597693636,0.259213797459509,0.25902890574474,0.258879699138261,0.258796128115009,0.258796128115009, +0.363061114350266,0.363061114350266,0.363043994434307,0.36290268806761,0.362671671928952,0.362395799005684,0.362123639532181,0.361903592389099,0.361779131209183,0.361779131209183, +0.493181628588181,0.493181628588181,0.493112910938579,0.492880175615755,0.492533703594554,0.492133686087809,0.491741421097789,0.491419746997678,0.491232712110345,0.491232712110345, +0.646928878149688,0.646928878149688,0.646796302988358,0.646434051095963,0.64593226204032,0.645371186158401,0.644820274270999,0.644352952354272,0.644062562309336,0.644062562309336, +0.818574733324734,0.818574733324734,0.818398818463722,0.817837212730119,0.817129868219349,0.816372734299845,0.815623911823535,0.814946536157871,0.814457106735001,0.814457106735001, + +00:34:37, +0.109753743314631,0.109753743314631,0.109806128044324,0.109805714017866,0.109765137869787,0.109701046219872,0.109631661971662,0.109574083372436,0.109541633087553,0.109541633087553, +0.109753743314631,0.109753743314631,0.109806128044324,0.109805714017866,0.109765137869787,0.109701046219872,0.109631661971662,0.109574083372436,0.109541633087553,0.109541633087553, +0.134078480634942,0.134078480634942,0.13412679601748,0.134115150261471,0.134058240451947,0.13397547278495,0.13388816241162,0.133816448061221,0.1337761867959,0.1337761867959, +0.183635612521187,0.183635612521187,0.183673598397079,0.183637418244187,0.183545909698035,0.183424019794795,0.183299257180221,0.183197939736027,0.183141250567325,0.183141250567325, +0.259732497949841,0.259732497949841,0.259750086036856,0.259672318410386,0.259524383517206,0.259339622906555,0.259154771120471,0.259005596905997,0.258922044105555,0.258922044105555, +0.36318345951488,0.36318345951488,0.363166332276382,0.36302505618056,0.362794097523382,0.362518296243171,0.362246208763092,0.362026220384498,0.361901792603179,0.361901792603179, +0.493289718419728,0.493289718419728,0.493221003295979,0.492988324166011,0.492641945992952,0.492242041137944,0.491849888481202,0.491528307081053,0.491341326099969,0.491341326099969, +0.647010312929672,0.647010312929672,0.646877760147491,0.646515601852631,0.646013951310976,0.645453034520223,0.644902280490817,0.644435092436488,0.644144784866381,0.644144784866381, +0.81861864467742,0.81861864467742,0.818442773156446,0.81788131270706,0.817174155956006,0.8164172259058,0.81566860589888,0.814991412368303,0.814502112532568,0.814502112532568, + +00:34:38, +0.109865737191952,0.109865737191952,0.109918134488662,0.109917726972981,0.109877152309948,0.109813058613634,0.109743670583902,0.109686088258096,0.109653635724405,0.109653635724405, +0.109865737191952,0.109865737191952,0.109918134488662,0.109917726972981,0.109877152309948,0.109813058613634,0.109743670583902,0.109686088258096,0.109653635724405,0.109653635724405, +0.134194633300878,0.134194633300878,0.134242956069735,0.134231316760995,0.134174412264692,0.134091648674869,0.134004341199472,0.133932628706571,0.133892368358898,0.133892368358898, +0.18375771229574,0.18375771229574,0.183795697588557,0.183759525661574,0.183668031558919,0.183546159096081,0.183421413574758,0.18332010975147,0.183263428159339,0.183263428159339, +0.259858212259555,0.259858212259555,0.259875793239513,0.259798040659169,0.259650136934651,0.259465415954971,0.259280604103721,0.25913146228552,0.259047927709973,0.259047927709973, +0.363305754757742,0.363305754757742,0.363288620219854,0.363147374396304,0.362916473206654,0.362640743547098,0.362368728035788,0.362148798400403,0.362024404005083,0.362024404005083, +0.493397751338567,0.493397751338567,0.493329038760032,0.493096415802046,0.492750131428366,0.492350339161775,0.49195829877291,0.491636810017433,0.491449882909833,0.491449882909833, +0.647091697984409,0.647091697984409,0.646959167582269,0.646597102829536,0.646095590710666,0.645534832902677,0.644984236621854,0.644517182336089,0.644226957182605,0.644226957182605, +0.818662527019908,0.818662527019908,0.818486698812925,0.817925383548959,0.817218414426107,0.816461688100322,0.815713270417908,0.815036258891907,0.81454708855099,0.81454708855099, + +00:34:39, +0.109977750179839,0.109977750179839,0.110030160022044,0.110029759021497,0.109989185867975,0.109925090161741,0.10985569838954,0.109798112369506,0.109765657605232,0.109765657605232, +0.109977750179839,0.109977750179839,0.110030160022044,0.110029759021497,0.109989185867975,0.109925090161741,0.10985569838954,0.109798112369506,0.109765657605232,0.109765657605232, +0.134310794128104,0.134310794128104,0.134359124269781,0.13434749141583,0.134290592256652,0.134207832777589,0.134120528235396,0.134048817628962,0.134008558215192,0.134008558215192, +0.183879801253845,0.183879801253845,0.183917785963751,0.183881622273931,0.183790142634865,0.183668287637626,0.183543559234942,0.183442269052997,0.183385595048776,0.183385595048776, +0.25998389414805,0.25998389414805,0.260001468035555,0.259923730512269,0.259775857965149,0.259591176623881,0.259406404713558,0.259257295295852,0.259173778947263,0.259173778947263, +0.36342800012722,0.36342800012722,0.363410858313051,0.363269642763143,0.363038799027046,0.36276314096572,0.362491197398505,0.362271326485034,0.362146965463111,0.362146965463111, +0.493505727409899,0.493505727409899,0.493437017395899,0.493204450589022,0.492858259965984,0.492458580224526,0.492066652038183,0.49174525587212,0.491558382605267,0.491558382605267, +0.647173033375927,0.647173033375927,0.647040525354707,0.646678554088747,0.646177180301554,0.645616581368042,0.645066142726504,0.644599222115571,0.644309079320568,0.644309079320568, +0.81870638039001,0.81870638039001,0.818530595470998,0.817969425293778,0.817262643667776,0.816506120921718,0.815757905419108,0.815081075767334,0.814592034829036,0.814592034829036, + +00:34:40, +0.110089782227957,0.110089782227957,0.110142204594159,0.110141810113092,0.110101238493508,0.110037140813775,0.1099677453381,0.109910155656136,0.109877698679478,0.109877698679478, +0.110089782227957,0.110089782227957,0.110142204594159,0.110141810113092,0.110101238493508,0.110037140813775,0.1099677453381,0.109910155656136,0.109877698679478,0.109877698679478, +0.134426963079795,0.134426963079795,0.134475300580806,0.134463674189148,0.134406780390952,0.134324025056174,0.134236723482389,0.134165014791339,0.134124756327696,0.134124756327696, +0.18400187938358,0.18400187938358,0.184039863510737,0.184003708069303,0.183912242913867,0.183790405407359,0.183665694148635,0.183564417628415,0.183507751223411,0.183507751223411, +0.260109543634601,0.260109543634601,0.260127110444234,0.260049387988905,0.25990154662787,0.259716904932396,0.259532172969039,0.259383095956006,0.259299597836412,0.259299597836412, +0.363550195671629,0.363550195671629,0.363533046604247,0.36339186132932,0.363161075032776,0.362885488547235,0.362613616899422,0.362393804686557,0.362269477025419,0.362269477025419, +0.493613646698836,0.493613646698836,0.493544939268647,0.493312428592006,0.492966331670901,0.492566764391332,0.492174948342196,0.491853644710328,0.491666825251506,0.491666825251506, +0.647254319166163,0.647254319166163,0.647121833526723,0.646759955692235,0.646258720145708,0.645698279978499,0.645147998867066,0.644681211837333,0.644391151342735,0.644391151342735, +0.818750204825474,0.818750204825474,0.818574463168441,0.818013437979415,0.817306843719078,0.81655052440823,0.815802510940902,0.815125863033171,0.81463695140541,0.81463695140541, + +00:34:41, +0.11020183328604,0.11020183328604,0.110254268154763,0.110253880197509,0.110213310136248,0.110149210519383,0.110079811379167,0.110022218067524,0.10998975889665,0.10998975889665, +0.11020183328604,0.11020183328604,0.110254268154763,0.110253880197509,0.110213310136248,0.110149210519383,0.110079811379167,0.110022218067524,0.10998975889665,0.10998975889665, +0.134543140119178,0.134543140119178,0.134591484966052,0.13457986504417,0.134522976630768,0.134440225473739,0.134352926903503,0.134281220156698,0.134240962659378,0.134240962659378, +0.184123946673049,0.184123946673049,0.184161930217617,0.184125783035768,0.184034332383949,0.183912512393239,0.183787818303728,0.183686555465561,0.183629896671051,0.183629896671051, +0.260235160738474,0.260235160738474,0.260252720484792,0.260175013108282,0.260027202941971,0.259842600899619,0.259657908889211,0.259508864284988,0.259425384396401,0.259425384396401, +0.363672341439225,0.363672341439225,0.363655185141658,0.363514030143024,0.36328330127201,0.363007786339786,0.362735986586662,0.36251623305308,0.362391938740109,0.362391938740109, +0.493721509270394,0.493721509270394,0.493652804443253,0.493420349875977,0.49307434660812,0.492674891727236,0.492283187750032,0.491961976597177,0.491775210913693,0.491775210913693, +0.647335555416952,0.647335555416952,0.647203092160138,0.646841307701876,0.646340210305098,0.645779928796134,0.645229805105739,0.644763151563677,0.644473173311472,0.644473173311472, +0.818794000363985,0.818794000363985,0.81861830194297,0.818057421643708,0.817351014618013,0.81659489859804,0.815847087021652,0.815170620727943,0.814681838318754,0.814681838318754, + +00:34:42, +0.110313903303878,0.110313903303878,0.110366350653671,0.110365969224552,0.110325400745961,0.110261299228271,0.110191896462387,0.110134299553265,0.110101838206318,0.110101838206318, +0.110313903303878,0.110313903303878,0.110366350653671,0.110365969224552,0.110325400745961,0.110261299228271,0.110191896462387,0.110134299553265,0.110101838206318,0.110101838206318, +0.13465932520953,0.13465932520953,0.134707677388814,0.134696063944173,0.134639180939332,0.134556433993451,0.134469138461839,0.134397433688088,0.134357177173256,0.134357177173256, +0.184246003110388,0.184246003110388,0.184283986072527,0.184247847161428,0.184156411033164,0.184034608583252,0.183909931688142,0.183808682552301,0.183752031379532,0.183752031379532, +0.260360745478922,0.260360745478922,0.260378298176461,0.260300605889597,0.260152826926601,0.259968264544644,0.259783612493113,0.259634600301789,0.259551138646199,0.259551138646199, +0.363794437478209,0.363794437478209,0.363777273973444,0.363636149252385,0.363405477792856,0.363130034391459,0.362858306508291,0.362638611632656,0.362514350655229,0.362514350655229, +0.493829315189501,0.493829315189501,0.493760612984602,0.493528214505819,0.493182304842554,0.492782962297187,0.492391370326685,0.492070251597696,0.49188353965688,0.49188353965688, +0.647416742190039,0.647416742190039,0.647284301316678,0.646922610179448,0.646421650841598,0.645861527882936,0.64531156150463,0.64484504135681,0.64455514528905,0.64455514528905, +0.818837767043167,0.818837767043167,0.818662111832237,0.818101376324432,0.817395156402519,0.816639243529266,0.815891633699655,0.815215348890111,0.814726695607646,0.814726695607646, + +00:34:43, +0.110425992231326,0.110425992231326,0.11047845204076,0.110478077144086,0.110437510272472,0.110373406890208,0.110304000537471,0.11024640006302,0.110213936558114,0.110213936558114, +0.110425992231326,0.110425992231326,0.11047845204076,0.110478077144086,0.110437510272472,0.110373406890208,0.110304000537471,0.11024640006302,0.110213936558114,0.110213936558114, +0.134775518314184,0.134775518314184,0.134823877812437,0.134812270852484,0.134755393279923,0.134672650578529,0.134585358120553,0.134513655348612,0.134473399832403,0.134473399832403, +0.184368048683759,0.184368048683759,0.184406031063627,0.184369900434417,0.184278478849593,0.184156693965414,0.184032034289825,0.18393079887653,0.183874155336718,0.183874155336718, +0.260486297875191,0.260486297875191,0.260503843538463,0.260426166352036,0.2602784186009,0.260093895886553,0.259909283799774,0.259760304025396,0.259676860604767,0.259676860604767, +0.363916483836725,0.363916483836725,0.363899313147708,0.363758218705478,0.363527604643364,0.363252232750285,0.362980576712321,0.362760940473283,0.362636712818767,0.362636712818767, +0.493937064520989,0.493937064520989,0.493868364957487,0.493636022546326,0.493290206439023,0.492890976166047,0.492499496137054,0.492178469776823,0.49199181154603,0.49199181154603, +0.647497879547067,0.647497879547067,0.647365461057972,0.647003863186634,0.646503041816987,0.645943077300796,0.645393268125745,0.644926881278839,0.644637067337642,0.644637067337642, +0.818881504900583,0.818881504900583,0.818705892873833,0.8181453020593,0.817439269110474,0.816683559239964,0.815936151013147,0.815260047558074,0.814771523310602,0.814771523310602, + +00:34:44, +0.110538100018302,0.110538100018302,0.11059057226597,0.11059020390604,0.11054963866567,0.110485533455027,0.11041612355419,0.11035851954651,0.11032605390173,0.11032605390173, +0.110538100018302,0.110538100018302,0.11059057226597,0.11059020390604,0.11054963866567,0.110485533455027,0.11041612355419,0.11035851954651,0.11032605390173,0.11032605390173, +0.134891719396521,0.134891719396521,0.134940086200319,0.134928485732482,0.134871613615876,0.134788875192247,0.134701585842851,0.134629885101424,0.134589630599942,0.134589630599942, +0.184490083381354,0.184490083381354,0.184528065179108,0.184491942842897,0.184400535821345,0.18427876852777,0.184154126096755,0.18405290442617,0.183996268530502,0.183996268530502, +0.260611817946515,0.260611817946515,0.260629356590009,0.260551694514775,0.260403977983994,0.26021949494442,0.26003492282821,0.259885975474783,0.259802550291054,0.259802550291054, +0.36403848056286,0.36403848056286,0.364021302712499,0.363880238550323,0.363649681871531,0.363374381464236,0.363102797246707,0.362883219622901,0.362759025278658,0.362759025278658, +0.494044757329604,0.494044757329604,0.49397606042661,0.493743774062201,0.493398051462256,0.492998933398582,0.492607565245949,0.492286631199404,0.49210002664601,0.49210002664601, +0.647578967549587,0.647578967549587,0.647446571445553,0.647085066785021,0.646584383292948,0.646024577111511,0.645474925030997,0.645008671391779,0.644718939519324,0.644718939519324, +0.818925213973735,0.818925213973735,0.818749645105288,0.818189198885965,0.817483352779691,0.816727845768126,0.815980639000301,0.815304716770166,0.814816321466075,0.814816321466075, + +00:34:45, +0.110650226614783,0.110650226614783,0.110702711279304,0.110702349460404,0.110661785875504,0.11059767887262,0.110528265462376,0.110470657953519,0.110438190186923,0.110438190186923, +0.110650226614783,0.110650226614783,0.110702711279304,0.110702349460404,0.110661785875504,0.11059767887262,0.110528265462376,0.110470657953519,0.110438190186923,0.110438190186923, +0.135007928419978,0.135007928419978,0.13505630251591,0.135044708547599,0.134987841910578,0.134905107797927,0.134817821591994,0.13474612290973,0.13470586943905,0.13470586943905, +0.184612107191392,0.184612107191392,0.184650088407189,0.184613974375057,0.18452258193656,0.184400832258393,0.18427620709694,0.184174999189176,0.184118370948807,0.184118370948807, +0.260737305712116,0.260737305712116,0.2607548373503,0.260677190396979,0.260529505095003,0.260345061737306,0.260160529597432,0.260011614668914,0.259928207724002,0.259928207724002, +0.364160427704645,0.364160427704645,0.364143242715805,0.36400220883488,0.363771709525295,0.363496480581231,0.363224968159348,0.363005449129396,0.36288128808278,0.36288128808278, +0.494152393679995,0.494152393679995,0.494083699456582,0.493851469118055,0.493505839976891,0.493106834059468,0.492715577718089,0.492394735930194,0.492208185021599,0.492208185021599, +0.647660006259053,0.647660006259053,0.64752763254086,0.647166221036101,0.646665675331065,0.646106027376781,0.645556532282201,0.645090411757545,0.644800761896078,0.644800761896078, +0.818968894300062,0.818968894300062,0.818793368564071,0.818233066842014,0.817527407447923,0.816772103151685,0.816025097699227,0.815349356564661,0.814861090112452,0.814861090112452, + +00:34:46, +0.110762371970809,0.110762371970809,0.110814869030825,0.110814513757228,0.110773951851986,0.110709843092943,0.110640426211925,0.110582815233891,0.110550345363509,0.110550345363509, +0.110762371970809,0.110762371970809,0.110814869030825,0.110814513757228,0.110773951851986,0.110709843092943,0.110640426211925,0.110582815233891,0.110550345363509,0.110550345363509, +0.13512414534804,0.13512414534804,0.135172526722714,0.135160939261319,0.135104078127466,0.135021348358947,0.134934065331293,0.134862368736789,0.134822116312957,0.134822116312957, +0.184734120102122,0.184734120102122,0.184772100736117,0.184735995019115,0.184644617183404,0.184522885145385,0.184398277278414,0.184297083153529,0.184240462579584,0.184240462579584, +0.260862761191209,0.260862761191209,0.260880285838528,0.260802654017804,0.260654999953033,0.260470596284266,0.260286104126437,0.260137221626745,0.260053832922543,0.260053832922543, +0.364282325310056,0.364282325310056,0.364265133205563,0.364124129607057,0.36389368765254,0.363618530149133,0.363347089498087,0.363127629040598,0.363003501278958,0.363003501278958, +0.494259973636723,0.494259973636723,0.494191282111922,0.493959107778408,0.493613572047474,0.493214678213293,0.492823533618101,0.492502784033858,0.492316286737486,0.492316286737486, +0.647740995736823,0.647740995736823,0.647608644405234,0.647247326001269,0.64674691799283,0.646187428158211,0.645638089941078,0.645172102437958,0.644882534529788,0.644882534529788, +0.819012545916942,0.819012545916942,0.818837063287588,0.818276905964978,0.817571433152862,0.81681633142851,0.816069527147973,0.81539396697977,0.814905829288062,0.814905829288062, + +00:34:47, +0.110874536036483,0.110874536036483,0.110927045470658,0.110926696746627,0.11088613654519,0.110822026066013,0.110752605752795,0.110694991337536,0.110662519381369,0.110662519381369, +0.110874536036483,0.110874536036483,0.110927045470658,0.110926696746627,0.11088613654519,0.110822026066013,0.110752605752795,0.110694991337536,0.110662519381369,0.110662519381369, +0.135240370144248,0.135240370144248,0.135288758784283,0.135277177837177,0.135220322230031,0.135137596838735,0.135050317024112,0.134978622545911,0.134938371184943,0.134938371184943, +0.184856122101821,0.184856122101821,0.184894102154167,0.184858004763319,0.184766641550072,0.184644927176877,0.184520336629242,0.184419156307238,0.184362543410814,0.184362543410814, +0.260988184402996,0.260988184402996,0.261005702073871,0.260928085396394,0.260780462577183,0.260596098604341,0.260411646434215,0.260262796367221,0.260179425905597,0.260179425905597, +0.36440417342701,0.36440417342701,0.364386974229651,0.364246000914703,0.364015616301092,0.363740530215747,0.363469161310711,0.36324975940428,0.363125664914957,0.363125664914957, +0.494367497264259,0.494367497264259,0.494298808457058,0.494066690107689,0.493721247738462,0.493322465924549,0.49293143301052,0.492610775574969,0.492424331858265,0.492424331858265, +0.647821936044161,0.647821936044161,0.647689607099923,0.647328381741825,0.646828111339638,0.646268779517308,0.645719598069251,0.645253743494743,0.644964257482243,0.644964257482243, +0.819056168861693,0.819056168861693,0.818880729313185,0.818320716292324,0.817615429932136,0.816860530636408,0.816113927384525,0.815438548053641,0.814950539031169,0.814950539031169, + +00:34:48, +0.110986718761969,0.110986718761969,0.111039240548989,0.111038898378775,0.110998339905252,0.110934227741909,0.110864804035004,0.110807186214422,0.110774712190444,0.110774712190444, +0.110986718761969,0.110986718761969,0.111039240548989,0.111038898378775,0.110998339905252,0.110934227741909,0.110864804035004,0.110807186214422,0.110774712190444,0.110774712190444, +0.135356602772191,0.135356602772191,0.135404998664225,0.13539342423876,0.135336574181814,0.13525385320077,0.135166576633868,0.13509488430046,0.135054634018342,0.135054634018342, +0.184978113178793,0.184978113178793,0.185016092649642,0.184980003595943,0.184888655024788,0.184766958341026,0.184642385137517,0.184541218638343,0.184484613430504,0.184484613430504, +0.261113575366669,0.261113575366669,0.2611310860755,0.261053484551884,0.260905892986539,0.260721568716565,0.260537156539743,0.260388338909278,0.260304986692076,0.260304986692076, +0.36452597210337,0.36452597210337,0.36450876583589,0.364367822805612,0.364137495518724,0.363862480828823,0.363591183644954,0.363371840268162,0.36324777903849,0.36324777903849, +0.494474964626979,0.494474964626979,0.494406278556328,0.494174216170236,0.493828867114219,0.493430197257642,0.493039275959793,0.492718710618008,0.492532320448443,0.492532320448443, +0.647902827242233,0.647902827242233,0.647770520686078,0.647409388318975,0.646909255432789,0.646350081515487,0.645801056728248,0.645335334989528,0.645045930815135,0.645045930815135, +0.819099763171572,0.819099763171572,0.818924366678147,0.818364497861456,0.817659397823313,0.816904700813125,0.816158298446807,0.815483099824359,0.814995219379974,0.814995219379974, + +00:34:49, +0.111098920097492,0.111098920097492,0.111151454216069,0.11115111860391,0.111110561882369,0.111046448070772,0.110977021008633,0.11091939981458,0.110886923740737,0.110886923740737, +0.111098920097492,0.111098920097492,0.111151454216069,0.11115111860391,0.111110561882369,0.111046448070772,0.110977021008633,0.11091939981458,0.110886923740737,0.110886923740737, +0.135472843195514,0.135472843195514,0.135521246326195,0.135509678429708,0.135452833946409,0.135370117408586,0.135282844124027,0.135211153963851,0.135170904776539,0.135170904776539, +0.185100093321371,0.185100093321371,0.185138072210875,0.18510199150529,0.185010657595805,0.184888978626021,0.18476442279136,0.184663270134912,0.184606672626695,0.184606672626695, +0.261238934101411,0.261238934101411,0.261256437862574,0.261178851503399,0.26103129120018,0.26084700663996,0.260662634461991,0.260513849271842,0.260430515300882,0.260430515300882, +0.364647721386942,0.364647721386942,0.364630508072047,0.364489595327523,0.36425932535315,0.363984382036057,0.363713156548489,0.363493871679904,0.363369843697213,0.363369843697213, +0.494582375789171,0.494582375789171,0.494513692473978,0.494281686030297,0.49393643023902,0.493537872276884,0.493147062530275,0.492826589227369,0.492640252572434,0.492640252572434, +0.647983669392115,0.647983669392115,0.647851385224756,0.647490345793828,0.646990350333487,0.646431334214065,0.645882465979504,0.645416876983848,0.645127554590063,0.645127554590063, +0.819143328883773,0.819143328883773,0.818967975419698,0.81840825070972,0.8177033368639,0.816948841996346,0.816202640372682,0.815527622329948,0.815039870372617,0.815039870372617, + +00:34:50, +0.11121113999334,0.11121113999334,0.111263686422207,0.11126335737233,0.111222802426799,0.111158687002804,0.111089256623825,0.111031632088104,0.110999153982313,0.110999153982313, +0.11121113999334,0.11121113999334,0.111263686422207,0.11126335737233,0.111222802426799,0.111158687002804,0.111089256623825,0.111031632088104,0.110999153982313,0.110999153982313, +0.135589091377909,0.135589091377909,0.135637501733905,0.135625940373712,0.135569101487461,0.135486389425766,0.13539911945811,0.135327431499551,0.135287183422971,0.135287183422971, +0.185222062517917,0.185222062517917,0.185260040826226,0.185223968479692,0.185132649251403,0.185010988020077,0.184886449578921,0.184785310785041,0.18472872098745,0.18472872098745, +0.261364260626393,0.261364260626393,0.261381757454241,0.261304186270051,0.261156657237172,0.260972412393538,0.260788080219917,0.260639327473827,0.260556011750908,0.260556011750908, +0.364769421325477,0.364769421325477,0.364752200985832,0.364611318528116,0.364381105852029,0.364106233885086,0.363835080068939,0.363615853687116,0.363491858938726,0.363491858938726, +0.494689730815033,0.494689730815033,0.494621050274165,0.494389099752028,0.494043937177048,0.493645491046497,0.49325479278623,0.492934411467352,0.492748128294564,0.492748128294564, +0.648064462554782,0.648064462554782,0.647932200776919,0.647571254227399,0.647071396102843,0.646512537674266,0.645963825884356,0.64549836953914,0.645209128868527,0.645209128868527, +0.819186866035432,0.819186866035432,0.819011555575,0.8184519748744,0.817747247091342,0.816992954223692,0.816246953199949,0.81557211560837,0.815084492047175,0.815084492047175, + +00:34:51, +0.111323378399861,0.111323378399861,0.111375937117775,0.111375614634396,0.111335061488864,0.11127094448827,0.111201510830785,0.111143882985148,0.1111114028653,0.1111114028653, +0.111323378399861,0.111323378399861,0.111375937117775,0.111375614634396,0.111335061488864,0.11127094448827,0.111201510830785,0.111143882985148,0.1111114028653,0.1111114028653, +0.135705347283123,0.135705347283123,0.135753764851115,0.135742210034513,0.135685376768669,0.135602669215946,0.135515402599689,0.135443716871079,0.135403469921128,0.135403469921128, +0.18534402075682,0.18534402075682,0.185381998484082,0.185345934507508,0.185254629979889,0.185132986511437,0.185008465488377,0.184907340576855,0.184850758500866,0.184850758500866, +0.261489554960775,0.261489554960775,0.261507044869641,0.261429488870944,0.26128199111657,0.261097785996301,0.26091349383247,0.260764773534141,0.260681476061035,0.260681476061035, +0.364891071966667,0.364891071966667,0.364873844624899,0.364732992455018,0.364502837062965,0.364228036423493,0.363956954253868,0.363737786337348,0.363613824810575,0.363613824810575, +0.49479702976867,0.49479702976867,0.494728352020954,0.494496457399497,0.494151387992396,0.493753053630615,0.493362466791831,0.493042177402168,0.492855947679066,0.492855947679066, +0.648145206791119,0.648145206791119,0.648012967403436,0.64765211368061,0.647152392801871,0.646593691957218,0.646045136504046,0.645579812716747,0.645290653711935,0.645290653711935, +0.819230374663622,0.819230374663622,0.819055107181157,0.818495670392718,0.817791128543023,0.817037037532726,0.816291236966347,0.815616579697524,0.815129084441664,0.815129084441664, + +00:34:52, +0.111435635267467,0.111435635267467,0.111488206253208,0.111487890340528,0.111447339018946,0.111383220477496,0.111313783579778,0.11125615245593,0.111223670339887,0.111223670339887, +0.111435635267467,0.111435635267467,0.111488206253208,0.111487890340528,0.111447339018946,0.111383220477496,0.111313783579778,0.11125615245593,0.111223670339887,0.111223670339887, +0.135821610874954,0.135821610874954,0.135870035641637,0.135858487375907,0.135801659753781,0.135718956742814,0.135631693512387,0.135560010042006,0.135519764234551,0.135519764234551, +0.185465968026496,0.185465968026496,0.185503945172859,0.185467889577125,0.1853765997696,0.185254974088375,0.185130470507936,0.185029359498506,0.184972785155066,0.184972785155066, +0.261614817123708,0.261614817123708,0.2616323001279,0.26155475932517,0.261407292857421,0.261223127467242,0.261038875318589,0.260890187471679,0.260806908250135,0.260806908250135, +0.365012673358152,0.365012673358152,0.364995439036846,0.364854617155799,0.364624519033505,0.364349789698806,0.364078779150784,0.363859669678098,0.36373574136025,0.36373574136025, +0.494904272714099,0.494904272714099,0.49483559777832,0.494603759036679,0.494258782749068,0.493860560093279,0.493470084611163,0.493149887095939,0.492963710790085,0.492963710790085, +0.648225902161916,0.648225902161916,0.648093685165079,0.647732924214287,0.647233340491492,0.646674797123953,0.646126397899723,0.645661206577917,0.645372129181598,0.645372129181598, +0.819273854805357,0.819273854805357,0.819098630275209,0.818539337301837,0.817834981256266,0.817081091960947,0.816335491709553,0.815661014635249,0.815173647594035,0.815173647594035, + +00:34:53, +0.111547910546629,0.111547910546629,0.111600493779,0.111600184441212,0.111559634967489,0.111495514920868,0.111426074821132,0.111368440450727,0.111335956356323,0.111335956356323, +0.111547910546629,0.111547910546629,0.111600493779,0.111600184441212,0.111559634967489,0.111495514920868,0.111426074821132,0.111368440450727,0.111335956356323,0.111335956356323, +0.135937882117251,0.135937882117251,0.135986314069336,0.13597477236174,0.135917950406598,0.135835251970109,0.13574799215988,0.135676310975955,0.135636066326834,0.135636066326834, +0.185587904315391,0.185587904315391,0.185625880881001,0.185589833676959,0.185498558608901,0.18537695073919,0.185252464625832,0.185151367538177,0.1850948009382,0.1850948009382, +0.261740047134331,0.261740047134331,0.261757523248137,0.261679997651812,0.261532562478761,0.261348436825341,0.261164224697201,0.261015569305326,0.260932308337072,0.260932308337072, +0.365134225547512,0.365134225547512,0.365116984269215,0.364976192677973,0.364746151811142,0.364471493758497,0.364200554807142,0.363981503756804,0.363857608635185,0.363857608635185, +0.495011459715244,0.495011459715244,0.49494278761015,0.49471100472746,0.494366121510976,0.493968010498441,0.49357764630822,0.493257540612695,0.493071417691675,0.493071417691675, +0.648306548727865,0.648306548727865,0.648174354122526,0.647813685889161,0.647314239232532,0.646755853235412,0.646207610132441,0.645742551183804,0.645453555338734,0.645453555338734, +0.81931730649759,0.81931730649759,0.819142124894139,0.818582975638858,0.817878805268333,0.817125117545793,0.816379717467183,0.815705420459321,0.815218181542182,0.815218181542182, + +00:34:54, +0.111660204187881,0.111660204187881,0.111712799645708,0.11171249688699,0.111671949284997,0.111607827768836,0.111538384505236,0.11148074691988,0.11144826086492,0.11144826086492, +0.111660204187881,0.111660204187881,0.111712799645708,0.11171249688699,0.111671949284997,0.111607827768836,0.111538384505236,0.11148074691988,0.11144826086492,0.11144826086492, +0.136054160973915,0.136054160973915,0.136102600098128,0.136091064955907,0.136034248690971,0.135951554861622,0.135864298505894,0.1357926196366,0.135752376161621,0.135752376161621, +0.185709829611978,0.185709829611978,0.18574780559698,0.185711766795452,0.185620506486185,0.18549891645221,0.185374447830329,0.185273364684077,0.185216805838451,0.185216805838451, +0.261865245011773,0.261865245011773,0.261882714249456,0.261805203869941,0.261657799999614,0.26147371408957,0.261289541987224,0.261140919053959,0.261057676340697,0.261057676340697, +0.365255728582275,0.365255728582275,0.365238480369492,0.365097719068998,0.364867735443311,0.364593148649981,0.364322281270341,0.364103288620854,0.36397942668276,0.36397942668276, +0.495118590835942,0.495118590835942,0.495049921580237,0.494818194535637,0.494473404341943,0.494075404909964,0.493685151946905,0.493365138016377,0.493179068447799,0.493179068447799, +0.648387146549569,0.648387146549569,0.648254974336363,0.647894398765869,0.647395089085723,0.646836860352438,0.646288773263157,0.645823846595467,0.645534932244464,0.645534932244464, +0.819360729777215,0.819360729777215,0.819185591074866,0.818626585440821,0.817922600616426,0.817169114324644,0.816423914276792,0.815749797207454,0.815262686323933,0.815262686323933, + +00:34:55, +0.111772516141819,0.111772516141819,0.111825123803951,0.11182482762847,0.111784281922038,0.111720158971911,0.111650712582542,0.111593071813789,0.111560583816053,0.111560583816053, +0.111772516141819,0.111772516141819,0.111825123803951,0.11182482762847,0.111784281922038,0.111720158971911,0.111650712582542,0.111593071813789,0.111560583816053,0.111560583816053, +0.136170447408898,0.136170447408898,0.13621889369198,0.136207365122358,0.136150554570804,0.136067865381195,0.135980612514208,0.135908935987667,0.13586869370261,0.13586869370261, +0.185831743904758,0.185831743904758,0.185869719309294,0.185833688921076,0.18574244338987,0.185620871215792,0.185496420109716,0.185395350924444,0.185338799844025,0.185338799844025, +0.261990410775153,0.261990410775153,0.262007873150953,0.261930377998618,0.261783005438996,0.26159895927889,0.261414827207568,0.261266236736443,0.261183012279854,0.261183012279854, +0.365377182509909,0.365377182509909,0.365359927385108,0.365219196376277,0.364989269977394,0.364714754420619,0.364443958587723,0.364225024317578,0.364101195550298,0.364101195550298, +0.495225666139938,0.495225666139938,0.495156999752287,0.494925328524916,0.494580631305703,0.494182743391618,0.493792601591032,0.493472679370836,0.493286663122332,0.493286663122332, +0.648467695687533,0.648467695687533,0.64833554586708,0.647975062904956,0.647475890111701,0.646917818535782,0.646369887352738,0.645905092873869,0.645616259959816,0.645616259959816, +0.819404124681062,0.819404124681062,0.819229028854253,0.818670166744709,0.817966367337685,0.817213082334815,0.816468082175872,0.815794144917303,0.815307161977057,0.815307161977057, + +00:34:56, +0.111884846359098,0.111884846359098,0.111937466204407,0.11193717661632,0.11189663282924,0.111832508480664,0.111763059003561,0.111705415082919,0.111672925160157,0.111672925160157, +0.111884846359098,0.111884846359098,0.111937466204407,0.11193717661632,0.11189663282924,0.111832508480664,0.111763059003561,0.111705415082919,0.111672925160157,0.111672925160157, +0.136286741386204,0.136286741386204,0.13633519481491,0.136323672825094,0.136266868010053,0.136184183492722,0.136096934148652,0.136025259992935,0.135985018913547,0.135985018913547, +0.185953647182258,0.185953647182258,0.185991622006472,0.185955600042329,0.185864369308407,0.185742815018319,0.185618381452314,0.185517326247545,0.185460782943161,0.185460782943161, +0.262115544443578,0.262115544443578,0.262132999971715,0.262055520056894,0.261908178815909,0.261724172412252,0.261540080377129,0.261391522371634,0.261308316173373,0.261308316173373, +0.365498587377831,0.365498587377831,0.365481325363437,0.365340624647158,0.365110755460714,0.364836311117716,0.364565586806575,0.36434671089425,0.364222915285068,0.364222915285068, +0.495332685690887,0.495332685690887,0.495264022189915,0.495032406758913,0.494687802465899,0.494290026007088,0.493899995304326,0.493580164739834,0.493394201779059,0.493394201779059, +0.64854819620217,0.64854819620217,0.648416068775074,0.648055678366871,0.647556642371011,0.6469987278461,0.646450952461953,0.645986290079881,0.645697538545723,0.645697538545723, +0.819447491245907,0.819447491245907,0.819272438269099,0.81871371958744,0.818010105469191,0.817257021613563,0.816512221201856,0.815838463626458,0.81535160853926,0.81535160853926, + +00:34:57, +0.111997194790436,0.111997194790436,0.112049826797818,0.112049543801267,0.112009001957293,0.111944876245729,0.111875423718868,0.111817776677793,0.111785284847728,0.111785284847728, +0.111997194790436,0.111997194790436,0.112049826797818,0.112049543801267,0.112009001957293,0.111944876245729,0.111875423718868,0.111817776677793,0.111785284847728,0.111785284847728, +0.136403042869886,0.136403042869886,0.136451503430988,0.136439988028165,0.136383188972724,0.136300509160149,0.136213263373108,0.136141591616231,0.136101351758234,0.136101351758234, +0.186075539433034,0.186075539433034,0.186113513677067,0.186077500147738,0.185986284230269,0.185864747848205,0.185740331846469,0.185639290641673,0.185582755124121,0.185582755124121, +0.262240646036144,0.262240646036144,0.262258094730815,0.262180630063807,0.262033320149348,0.261849353508594,0.261665301514795,0.261516775978377,0.261433588040077,0.261433588040077, +0.365619943233397,0.365619943233397,0.365602674351799,0.365462003928931,0.365232191940542,0.364957818788522,0.36468716597413,0.36446834839809,0.364344585934285,0.364344585934285, +0.495439649552356,0.495439649552356,0.495370988956648,0.495139429301155,0.494794917886084,0.494397252819965,0.494007333150421,0.493687594187042,0.493501684481675,0.493501684481675, +0.6486286481538,0.6486286481538,0.648496543120649,0.64813624521197,0.647637345924103,0.647079588343954,0.646531968651478,0.646067438274279,0.645778768063025,0.645778768063025, +0.81949082950846,0.81949082950846,0.819315819356146,0.818757244005876,0.818053815047963,0.817300932198083,0.816556331392115,0.815882753372452,0.815396026048188,0.815396026048188, + +00:34:58, +0.112109561386613,0.112109561386613,0.112162205534985,0.112161929134104,0.112121389256946,0.112057262217801,0.111987806679097,0.111930156548998,0.111897662829325,0.111897662829325, +0.112109561386613,0.112109561386613,0.112162205534985,0.112161929134104,0.112121389256946,0.112057262217801,0.111987806679097,0.111930156548998,0.111897662829325,0.111897662829325, +0.136519351824053,0.136519351824053,0.136567819504335,0.136556310695673,0.136499517422873,0.136416842347471,0.13632960015151,0.136257930821438,0.136217692200522,0.136217692200522, +0.186197420645671,0.186197420645671,0.186235394309661,0.186199389225856,0.186108188143962,0.185986669693888,0.185862271280557,0.185761244095151,0.1857047163752,0.1857047163752, +0.262365715571938,0.262365715571938,0.262383157447316,0.262305708038387,0.262158429458296,0.261974502586848,0.261790490639444,0.261641997575508,0.26155882789878,0.26155882789878, +0.365741250123912,0.365741250123912,0.365723974397457,0.365583334268832,0.365353579464092,0.365079277480231,0.364808696137565,0.364589936876263,0.364466207545106,0.364466207545106, +0.49554655778782,0.49554655778782,0.495477900115922,0.49524639621508,0.494901977629724,0.494504423893753,0.494114615192864,0.493794967776043,0.493609111293785,0.493609111293785, +0.648709051602649,0.648709051602649,0.648576968964015,0.648216763500517,0.647718000831334,0.647160400089813,0.646612935981896,0.646148537517744,0.645859948572466,0.645859948572466, +0.819534139505375,0.819534139505375,0.819359172152074,0.818800740036815,0.818097496110962,0.817344814125511,0.816600412783959,0.815927014192753,0.815440414541425,0.815440414541425, + +00:34:59, +0.11222194609847,0.11222194609847,0.112274602366773,0.112274332565681,0.112233794679013,0.112169666347635,0.112100207834946,0.112042554647181,0.112010059055568,0.112010059055568, +0.11222194609847,0.11222194609847,0.112274602366773,0.112274332565681,0.112233794679013,0.112169666347635,0.112100207834946,0.112042554647181,0.112010059055568,0.112010059055568, +0.13663566821286,0.13663566821286,0.136684142999122,0.136672640791773,0.136615853324611,0.136533183018739,0.13644594444784,0.136374277572488,0.136334040204313,0.136334040204313, +0.186319290808778,0.186319290808778,0.186357263892865,0.186321267265264,0.186230081038015,0.186108580543836,0.18598419974298,0.18588318659633,0.185826666684717,0.185826666684717, +0.262490753070034,0.262490753070034,0.262508188140271,0.262430753999652,0.262283506761724,0.262099619665932,0.261915647769941,0.261767187181851,0.261684035768282,0.261684035768282, +0.365862508096622,0.365862508096622,0.365845225547619,0.365704615714041,0.365474918078522,0.365200687239982,0.364930177344003,0.364711476375879,0.364587780164635,0.364587780164635, +0.495653410460668,0.495653410460668,0.495584755731083,0.495353307564035,0.495008981760192,0.494611539291866,0.49422184149511,0.493902285570331,0.493716482278906,0.493716482278906, +0.648789406608848,0.648789406608848,0.648657346365289,0.648297233292681,0.647798607152966,0.647241163144052,0.646693854513697,0.646229587870865,0.645941080134699,0.645941080134699, +0.819577421273245,0.819577421273245,0.819402496693505,0.818844207717,0.818141148695087,0.81738866743292,0.816644465414639,0.815971246124772,0.815484774056494,0.815484774056494, + +00:35:00, +0.112334348876907,0.112334348876907,0.112387017244105,0.11238675404691,0.112346218174368,0.11228208858605,0.112212627137173,0.112154970923051,0.112122473477137,0.112122473477137, +0.112334348876907,0.112334348876907,0.112387017244105,0.11238675404691,0.112346218174368,0.11228208858605,0.112212627137173,0.112154970923051,0.112122473477137,0.112122473477137, +0.136751992000517,0.136751992000517,0.136800473879574,0.13678897828067,0.136732196642097,0.136649531138049,0.136562296226136,0.136490631833364,0.136450395733563,0.136450395733563, +0.186441149910996,0.186441149910996,0.186479122415315,0.186443134254572,0.186351962900988,0.186230480386545,0.186106117222168,0.186005118133587,0.185948606041023,0.185948606041023, +0.262615758549498,0.262615758549498,0.262633186828723,0.26255576796661,0.262408552078595,0.262224704764755,0.262040772925144,0.261892344816223,0.261809211667376,0.261809211667376, +0.365983717198719,0.365983717198719,0.365966427849437,0.365825848311684,0.365596207830935,0.365322048114858,0.365051609640508,0.364832966943991,0.364709303839921,0.364709303839921, +0.495760207634196,0.495760207634196,0.495691555865389,0.49546016341128,0.495115930340775,0.49471859907763,0.494329012120526,0.494009547633309,0.493823797500467,0.493823797500467, +0.648869713232437,0.648869713232437,0.648737675384494,0.648377654648538,0.64787916494917,0.647321877566953,0.646774724307275,0.646310589394136,0.64602216281028,0.64602216281028, +0.819620674848605,0.819620674848605,0.819445793017,0.818887647083109,0.818184772837177,0.817432492157325,0.816688489321344,0.816015449205855,0.815529104630856,0.815529104630856, + +00:35:01, +0.112446769672888,0.112446769672888,0.112499450117969,0.112499193528767,0.112458659693943,0.112394528883923,0.112325064536595,0.112267405327377,0.112234906044775,0.112234906044775, +0.112446769672888,0.112446769672888,0.112499450117969,0.112499193528767,0.112458659693943,0.112394528883923,0.112325064536595,0.112267405327377,0.112234906044775,0.112234906044775, +0.136868323151282,0.136868323151282,0.136916812109964,0.136905323126618,0.136848547339542,0.136765886669553,0.136678655450485,0.136606993568101,0.136566758752277,0.136566758752277, +0.186562997940988,0.186562997940988,0.186600969865675,0.186564990182416,0.186473833721466,0.186352369210537,0.186228023706581,0.186127038695328,0.186070534432493,0.186070534432493, +0.262740732029382,0.262740732029382,0.262758153531702,0.262680749958257,0.262533565427859,0.262349757902215,0.262165866123899,0.262017470497426,0.261934355614843,0.261934355614843, +0.366104877477338,0.366104877477338,0.366087581350007,0.36594703210883,0.365717448768379,0.365443360151889,0.365172993074094,0.3649544086276,0.364830778617958,0.364830778617958, +0.495866949371613,0.495866949371613,0.49579830058201,0.495566963819985,0.49522282343467,0.494825603314281,0.494436127132391,0.494116754028293,0.493931057021804,0.493931057021804, +0.648949971533363,0.648949971533363,0.648817956081563,0.648458027628071,0.647959674280021,0.647402543418705,0.646855545422934,0.646391542147959,0.646103196659674,0.646103196659674, +0.819663900267927,0.819663900267927,0.819489061159062,0.818931058171765,0.818228368574012,0.817476288335681,0.816732484541202,0.816059623473292,0.815573406301913,0.815573406301913, + +00:35:02, +0.112559208437437,0.112559208437437,0.11261190093941,0.112611650962286,0.112571119188736,0.112506987192194,0.112437519984095,0.112379857810992,0.112347356709286,0.112347356709286, +0.112559208437437,0.112559208437437,0.11261190093941,0.112611650962286,0.112571119188736,0.112506987192194,0.112437519984095,0.112379857810992,0.112347356709286,0.112347356709286, +0.136984661629466,0.136984661629466,0.137033157654618,0.137021675293926,0.136964905381208,0.136882249577452,0.136795022085023,0.136723362740786,0.136683129224511,0.136683129224511, +0.18668483488745,0.18668483488745,0.186722806232638,0.186686835037459,0.186595693488064,0.186474247004362,0.186349919184704,0.186248948269987,0.186192451847531,0.186192451847531, +0.262865673528729,0.262865673528729,0.262883088268228,0.262805699993578,0.262658546828456,0.2624747790972,0.262290927385042,0.262142564244256,0.262059467629455,0.262059467629455, +0.366225988979562,0.366225988979562,0.366208686096371,0.366068167152492,0.365838640937847,0.365564623398047,0.365294327691717,0.36507580147365,0.364952204545683,0.364952204545683, +0.495973635736039,0.495973635736039,0.495904989944024,0.49567370885323,0.495329661104985,0.494932552064966,0.494543186593893,0.494223904818509,0.494038260906169,0.494038260906169, +0.649030181571479,0.649030181571479,0.648898188516332,0.648538352291172,0.648040135205504,0.647483160759404,0.646936317920881,0.646472446192641,0.646184181743252,0.646184181743252, +0.819707097567628,0.819707097567628,0.819532301156133,0.818974441019528,0.818271935942312,0.81752005600488,0.816776451111282,0.816103768964308,0.815617679107006,0.815617679107006, + +00:35:03, +0.112671665121639,0.112671665121639,0.112724369659536,0.112724126298563,0.112683596609804,0.112619463461864,0.112549993430613,0.112492328324787,0.112459825421534,0.112459825421534, +0.112671665121639,0.112671665121639,0.112724369659536,0.112724126298563,0.112683596609804,0.112619463461864,0.112549993430613,0.112492328324787,0.112459825421534,0.112459825421534, +0.13710100739943,0.13710100739943,0.137149510477911,0.137138034746951,0.137081270731409,0.136998619825999,0.136911396093942,0.136839739315555,0.136799507114374,0.136799507114374, +0.186806660739099,0.186806660739099,0.186844631504922,0.186808668808391,0.186717542189421,0.186596113756599,0.186471803645051,0.186370846846025,0.186314358274571,0.186314358274571, +0.262990583066571,0.262990583066571,0.263007991057311,0.262930618091549,0.262783496299316,0.262599768368586,0.262415956727398,0.262267626075497,0.262184547729972,0.262184547729972, +0.366347051752414,0.366347051752414,0.366329742135515,0.366189253489629,0.365959784386276,0.365685837900252,0.365415613540278,0.365197145529031,0.365073581669982,0.365073581669982, +0.496080266790504,0.496080266790504,0.496011624014423,0.495780398574008,0.495436443414739,0.495039445392743,0.494650190568133,0.494331000067096,0.494145409216722,0.494145409216722, +0.649110343406547,0.649110343406547,0.648978372748547,0.648618628697638,0.648120547785511,0.647563729649051,0.647017041861234,0.646553301588398,0.646265118121292,0.646265118121292, +0.819750266784062,0.819750266784062,0.819575513044596,0.819017795662899,0.818315474978737,0.817563795201758,0.816820389068592,0.816147885716071,0.815661923083414,0.815661923083414, + +00:35:04, +0.11278413967664,0.11278413967664,0.112836856229517,0.112836619488755,0.112796091908263,0.112731957643996,0.112662484827153,0.112604816819718,0.112572312132445,0.112572312132445, +0.11278413967664,0.11278413967664,0.112836856229517,0.112836619488755,0.112796091908263,0.112731957643996,0.112662484827153,0.112604816819718,0.112572312132445,0.112572312132445, +0.137217360425588,0.137217360425588,0.137265870544271,0.137254401450101,0.137197643354508,0.137114997379497,0.13702777744148,0.136956123256597,0.136915892386025,0.136915892386025, +0.186928475484686,0.186928475484686,0.186966445671274,0.186930491483932,0.186839379814207,0.186717969455852,0.186593677076163,0.186492734411932,0.186436253702072,0.186436253702072, +0.263115460661929,0.263115460661929,0.263132861917948,0.263055504271135,0.262908413859359,0.26272472573524,0.262540954169781,0.262392656009922,0.262309595935147,0.262309595935147, +0.366468065842865,0.366468065842865,0.36645074951437,0.366310291167144,0.366080879160548,0.365807003705365,0.365536850666625,0.365318440840577,0.365194910037682,0.365194910037682, +0.49618684259795,0.49618684259795,0.49611820285611,0.495887033045223,0.495543170426863,0.495146283360582,0.494757139118124,0.494438039837102,0.494252502016535,0.494252502016535, +0.649190457098234,0.649190457098234,0.649058508837863,0.648698856907175,0.64820091207984,0.647644250147558,0.647097717304015,0.646634108395352,0.646346005853978,0.646346005853978, +0.819793407953527,0.819793407953527,0.819618696860777,0.819061122138322,0.818358985719887,0.817607505963088,0.816864298450081,0.816191973765686,0.815706138268357,0.815706138268357, + +00:35:05, +0.112896632053648,0.112896632053648,0.112949360600582,0.112949130484081,0.112908605035293,0.112844469689712,0.112774994124777,0.112717323246797,0.112684816793008,0.112684816793008, +0.112896632053648,0.112896632053648,0.112949360600582,0.112949130484081,0.112908605035293,0.112844469689712,0.112774994124777,0.112717323246797,0.112684816793008,0.112684816793008, +0.137333720672401,0.137333720672401,0.137382237818175,0.137370775367836,0.13731402321492,0.137231382202301,0.13714416609193,0.137072514528153,0.137032285003676,0.137032285003676, +0.187050279112983,0.187050279112983,0.187088248720465,0.187052303052826,0.186961206351116,0.186839814090754,0.186715539466607,0.186614610956224,0.186558138118522,0.186558138118522, +0.263240306333811,0.263240306333811,0.263257700869128,0.263180358551287,0.263033299527491,0.262849651216017,0.262665919730996,0.262517654066294,0.26243461226372,0.26243461226372, +0.366589031297829,0.366589031297829,0.36657170827981,0.366431280231887,0.36620192530749,0.365928120860195,0.365658039117548,0.365439687455068,0.365316189695559,0.365316189695559, +0.496293363221231,0.496293363221231,0.496224726531897,0.495993612329689,0.495649842204199,0.495253066031365,0.494864032306789,0.494545024191488,0.494359539368593,0.494359539368593, +0.649270522706119,0.649270522706119,0.649138596843839,0.648779036979396,0.648281228148197,0.647724722314742,0.647178344309156,0.646714866673532,0.646426845001402,0.646426845001402, +0.81983652111226,0.81983652111226,0.81966185264094,0.819104420482181,0.818402468202303,0.817651188325585,0.816908179292637,0.816236033150199,0.815750324698994,0.815750324698994, + +00:35:06, +0.113009142203929,0.113009142203929,0.113061882724023,0.11306165923582,0.113021135942134,0.112956999550197,0.112887521274612,0.112829847557102,0.11279733935427,0.11279733935427, +0.113009142203929,0.113009142203929,0.113061882724023,0.11306165923582,0.113021135942134,0.112956999550197,0.112887521274612,0.112829847557102,0.11279733935427,0.11279733935427, +0.137450088104383,0.137450088104383,0.137498612264152,0.137487156464666,0.137430410277111,0.137347774258815,0.137260562009634,0.137188913094512,0.137148684931586,0.137148684931586, +0.187172071612792,0.187172071612792,0.187210040641298,0.187174103503845,0.187083021788872,0.186961647649964,0.186837390804981,0.186736476467444,0.186680011512434,0.186680011512434, +0.263365120101218,0.263365120101218,0.263382507929827,0.263305180950949,0.26315815332261,0.262974544829764,0.262790853429837,0.262642620263367,0.26255959673442,0.26255959673442, +0.366709948164164,0.366709948164164,0.366692618478655,0.366552220730649,0.366322922873874,0.366049189411495,0.365779178939784,0.365560885419231,0.365437420690332,0.365437420690332, +0.496399828723111,0.496399828723111,0.49633119510451,0.496100136490133,0.495756458809501,0.495359793467885,0.494970870196963,0.494651953193127,0.494466521335791,0.494466521335791, +0.649350540289684,0.649350540289684,0.649218636825946,0.648859168973824,0.648361496050196,0.647805146210329,0.647258922936494,0.646795576482875,0.646507635623565,0.646507635623565, +0.81987960629644,0.81987960629644,0.819704980421293,0.819147690730798,0.818445922462468,0.817694842325905,0.816952031633088,0.816280063906598,0.815794482412423,0.815794482412423, + +00:35:07, +0.113121670078815,0.113121670078815,0.113174422551192,0.113174205695311,0.113133684580086,0.113069547176694,0.113000066227842,0.112942389701769,0.11290987976734,0.11290987976734, +0.113121670078815,0.113121670078815,0.113174422551192,0.113174205695311,0.113133684580086,0.113069547176694,0.113000066227842,0.112942389701769,0.11290987976734,0.11290987976734, +0.1375664626861,0.1375664626861,0.137614993846781,0.137603544705152,0.137546804505597,0.137464173513496,0.137376965158984,0.137305318920015,0.13726509213407,0.13726509213407, +0.187293852972942,0.187293852972942,0.187331821422598,0.187295892825789,0.187204826116222,0.18708347012217,0.186959231079908,0.186858330934165,0.186801873872353,0.186801873872353, +0.263489901983135,0.263489901983135,0.26350728311901,0.263429971489052,0.263282975263602,0.263099406595313,0.262915755285087,0.262767554619883,0.262684549365969,0.262684549365969, +0.366830816488676,0.366830816488676,0.366813480157671,0.366673112710168,0.366443871906417,0.366170209405964,0.365900270180017,0.365682034779735,0.365558603068667,0.365558603068667, +0.496506239166267,0.496506239166267,0.496437608636587,0.496206605589194,0.495863020305434,0.495466465732847,0.495077652851393,0.494758826904803,0.494573447980937,0.494573447980937, +0.649430509908323,0.649430509908323,0.64929862884356,0.648939252949886,0.64844171584536,0.647885521893951,0.647339453245777,0.646876237883226,0.646588377780372,0.646588377780372, +0.819922663542187,0.819922663542187,0.819748080237982,0.81919093292044,0.818489348536804,0.817738468000642,0.816995855508203,0.816324066071807,0.815838611445683,0.815838611445683, + +00:35:08, +0.113234215629693,0.113234215629693,0.1132869800335,0.113286769813955,0.113246250900512,0.113182112520511,0.113112628935715,0.113054949631997,0.11302243798339,0.11302243798339, +0.113234215629693,0.113234215629693,0.1132869800335,0.113286769813955,0.113246250900512,0.113182112520511,0.113112628935715,0.113054949631997,0.11302243798339,0.11302243798339, +0.137682844382165,0.137682844382165,0.137731382530692,0.137719940053905,0.137663205864945,0.137580579930851,0.137493375504426,0.137421731969057,0.13738150657549,0.13738150657549, +0.187415623182289,0.187415623182289,0.187453591053219,0.187417671007483,0.187326619321945,0.187205281496086,0.187081060280037,0.186980174344985,0.186923725186848,0.186923725186848, +0.263614651998541,0.263614651998541,0.263632026455631,0.263554730184516,0.263407765369343,0.263224236531489,0.263040625315518,0.262892457154573,0.262809470177074,0.262809470177074, +0.366951636318111,0.366951636318111,0.366934293363567,0.366793956217128,0.366564772451781,0.366291180890245,0.366021312884872,0.365803135583196,0.365679736877172,0.365679736877172, +0.496612594613287,0.496612594613287,0.496543967190677,0.496313019689423,0.495969526754576,0.495573082888867,0.495184380332738,0.494865645389212,0.494680319366751,0.494680319366751, +0.649510431621336,0.649510431621336,0.649378572955968,0.649019288966922,0.64852188759312,0.64796584942515,0.647419935296657,0.646956850934336,0.646669071531638,0.646669071531638, +0.819965692885562,0.819965692885562,0.819791152127097,0.819234147087312,0.818532746461674,0.817782065386333,0.817039650954692,0.816368039682692,0.815882711835753,0.815882711835753, + +00:35:09, +0.113346778808016,0.113346778808016,0.113399555122421,0.113399351543214,0.113358834854833,0.113294695533014,0.113225209349539,0.113167527299044,0.11313501395365,0.11313501395365, +0.113346778808016,0.113346778808016,0.113399555122421,0.113399351543214,0.113358834854833,0.113294695533014,0.113225209349539,0.113167527299044,0.11313501395365,0.11313501395365, +0.137799233157245,0.137799233157245,0.137847778280564,0.137836342475588,0.137779614319773,0.137696993475437,0.137609793010453,0.137538152206078,0.13749792822026,0.13749792822026, +0.187537382229714,0.187537382229714,0.187575349522043,0.18753943803778,0.187448401394843,0.187327081760452,0.187202878394046,0.18710200668853,0.187045565444516,0.187045565444516, +0.263739370166401,0.263739370166401,0.263756737958634,0.263679457056251,0.263532523658697,0.263349034657104,0.263165463539893,0.26301732788616,0.262934359186437,0.262934359186437, +0.367072407699165,0.367072407699165,0.367055058142998,0.366914751298156,0.366685624556573,0.366412103910926,0.366142307100924,0.365924187876176,0.365800822162406,0.365800822162406, +0.496718895126672,0.496718895126672,0.49665027082924,0.496419378853282,0.496075978219417,0.495679644998476,0.49529105270357,0.494972408708963,0.494787135555865,0.494787135555865, +0.649590305487933,0.649590305487933,0.649458469222362,0.649099277084177,0.648602011352812,0.648046128863376,0.647500369148697,0.647037415695865,0.646749716937087,0.646749716937087, +0.820008694362569,0.820008694362569,0.819834196124669,0.819277333267564,0.818576116273383,0.817825634519455,0.817083418009203,0.816411984776061,0.815926783619552,0.815926783619552, + +00:35:10, +0.113459359565294,0.113459359565294,0.113512147769489,0.113511950834611,0.113471436394534,0.11340729616563,0.113337807420681,0.113280122654229,0.113247607629412,0.113247607629412, +0.113459359565294,0.113459359565294,0.113512147769489,0.113511950834611,0.113471436394534,0.11340729616563,0.113337807420681,0.113280122654229,0.113247607629412,0.113247607629412, +0.137915628976056,0.137915628976056,0.137964181061128,0.137952751934912,0.137896029834749,0.137813414111861,0.137726217641611,0.137654579595574,0.137614357032845,0.137614357032845, +0.187659130104127,0.187659130104127,0.187697096817976,0.18766119390556,0.187570172323746,0.187448870904036,0.187324685410641,0.187223827953453,0.187167394633981,0.187167394633981, +0.263864056505668,0.263864056505668,0.263881417646951,0.263804152123154,0.263657250150517,0.263473800990961,0.263290269976963,0.263142166833354,0.263059216412744,0.263059216412744, +0.367193130678475,0.367193130678475,0.367175774542563,0.367035497999825,0.366806428267345,0.366532978514542,0.366263252874689,0.366045191705182,0.365921858970868,0.365921858970868, +0.496825140768834,0.496825140768834,0.496756519614649,0.496525683143145,0.496182374762358,0.495786152124114,0.495397670026372,0.495079116926577,0.494893896610822,0.494893896610822, +0.649670131567231,0.649670131567231,0.649538317701846,0.649179217360805,0.648682087183685,0.648126360267987,0.647580754861367,0.647117932227383,0.646830314056348,0.646830314056348, +0.820051668009151,0.820051668009151,0.819877212266669,0.819320491497284,0.818619458008176,0.817869175436425,0.817127156708328,0.81645590138866,0.815970826833938,0.815970826833938, + +00:35:11, +0.113571957853099,0.113571957853099,0.1136247579263,0.113624567639728,0.113584055471156,0.113519914369848,0.113450423100572,0.113392735648935,0.113360218962031,0.113360218962031, +0.113571957853099,0.113571957853099,0.1136247579263,0.113624567639728,0.113584055471156,0.113519914369848,0.113450423100572,0.113392735648935,0.113360218962031,0.113360218962031, +0.138032031803365,0.138032031803365,0.138080590837167,0.138069168396642,0.138012452374591,0.137929841804784,0.137842649362496,0.137771014102089,0.137730792977762,0.137730792977762, +0.187780866794464,0.187780866794464,0.187818832929954,0.187782938599729,0.187691932097513,0.187570648915634,0.187446481318553,0.187345638128435,0.187289212743895,0.187289212743895, +0.263988711035286,0.263988711035286,0.264006065539502,0.263928815404113,0.263781944863647,0.26359853555185,0.263415044645468,0.263266974014856,0.263184041874674,0.263184041874674, +0.367313805302625,0.367313805302625,0.367296442608807,0.367156196368653,0.366927183630594,0.366653804747572,0.366384150252631,0.366166147116665,0.366042847349006,0.366042847349006, +0.496931331602096,0.496931331602096,0.496862713609191,0.496631932621299,0.496288716445714,0.495892604328134,0.49550423236354,0.495185770104487,0.495000602594079,0.495000602594079, +0.649749909918257,0.649749909918257,0.649618118453432,0.649259109855871,0.648762115144895,0.648206543698248,0.647661092494046,0.647198400588366,0.646910862948961,0.646910862948961, +0.820094613861196,0.820094613861196,0.819920200589011,0.819363621812502,0.818662771702242,0.817912688173604,0.817170867088598,0.816499789557177,0.816014841515711,0.816014841515711, + +00:35:12, +0.113684573623064,0.113684573623064,0.113737385544508,0.113737201910209,0.113696692036307,0.113632550097217,0.113563056340701,0.113505366234601,0.11347284790292,0.11347284790292, +0.113684573623064,0.113684573623064,0.113737385544508,0.113737201910209,0.113696692036307,0.113632550097217,0.113563056340701,0.113505366234601,0.11347284790292,0.11347284790292, +0.138148441603987,0.138148441603987,0.13819700757351,0.138185591825589,0.138128881904069,0.138046276518913,0.137959088137755,0.137887455690219,0.137847236019576,0.137847236019576, +0.187902592289686,0.187902592289686,0.187940557846937,0.187904672109221,0.187813680705027,0.187692415784068,0.18756826610654,0.187467437202184,0.187411019762938,0.187411019762938, +0.264113333774188,0.264113333774188,0.264130681655197,0.264053446918004,0.263906607816918,0.263723238358552,0.26353978756414,0.263391749449355,0.263308835590896,0.263308835590896, +0.367434431618143,0.367434431618143,0.367417062388219,0.367276846451103,0.367047890692764,0.366774582656439,0.36650499928116,0.366287054157024,0.366163787343212,0.366163787343212, +0.497037467688697,0.497037467688697,0.496968852875063,0.496738127349945,0.496395003331712,0.495999001672803,0.495610739777382,0.495292368305038,0.495107253568005,0.495107253568005, +0.649829640599946,0.649829640599946,0.649697871536039,0.649338954628346,0.648842095295505,0.648286679213335,0.647741382106021,0.647278820838198,0.646991363674372,0.646991363674372, +0.820137531954532,0.820137531954532,0.819963161127552,0.819406724249191,0.818706057391708,0.817956172767289,0.817214549186483,0.81654364931824,0.816058827701611,0.816058827701611, + +00:35:13, +0.113797206826884,0.113797206826884,0.113850030575831,0.113849853597758,0.113809346041649,0.113745203299346,0.113675707092619,0.113618014362731,0.113585494403553,0.113585494403553, +0.113797206826884,0.113797206826884,0.113850030575831,0.113849853597758,0.113809346041649,0.113745203299346,0.113675707092619,0.113618014362731,0.113585494403553,0.113585494403553, +0.138264858342791,0.138264858342791,0.13831343123504,0.138302022186618,0.138245318388002,0.138162718219009,0.138075533932085,0.138003904324608,0.137963686122905,0.137963686122905, +0.188024306578783,0.188024306578783,0.188062271557912,0.188026394422996,0.187935418135198,0.187814171498186,0.187690039763388,0.187589225163433,0.187532815679814,0.187532815679814, +0.264237924741293,0.264237924741293,0.264255266012936,0.264178046683692,0.26403123902915,0.263847909429836,0.263664498751696,0.26351649315553,0.263433597580065,0.263433597580065, +0.367555009671503,0.367555009671503,0.367537633927235,0.367397448293583,0.367168549500241,0.366895312287514,0.36662580000663,0.366407912872602,0.366284678999824,0.366284678999824, +0.497143549090786,0.497143549090786,0.497074937474375,0.496844267391194,0.49650123548249,0.4961053442203,0.495717192330119,0.49539891159049,0.495213849594882,0.495213849594882, +0.649909323671143,0.649909323671143,0.649777577008498,0.649418751737113,0.64892202769449,0.648366766872331,0.647821623756488,0.647359193036174,0.647071816291939,0.647071816291939, +0.820180422324927,0.820180422324927,0.820006093918088,0.819449798843265,0.818749315112643,0.817999629253724,0.817258203038398,0.816587480708416,0.816102785428317,0.816102785428317, + +00:35:14, +0.113909857416311,0.113909857416311,0.113962692972043,0.11396252265414,0.113922017438911,0.113857873927906,0.113788375307939,0.113730679984887,0.113698158415467,0.113698158415467, +0.113909857416311,0.113909857416311,0.113962692972043,0.11396252265414,0.113922017438911,0.113857873927906,0.113788375307939,0.113730679984887,0.113698158415467,0.113698158415467, +0.138381281984694,0.138381281984694,0.138429861786689,0.138418459444642,0.13836176179126,0.138279166869881,0.138191986710233,0.138120359969954,0.138080143252415,0.138080143252415, +0.188146009650771,0.188146009650771,0.188183974051893,0.188148105530039,0.188057144376964,0.187935916046863,0.187811802277911,0.187711002000944,0.187654600483258,0.187654600483258, +0.264362483955512,0.264362483955512,0.264379818631605,0.264302614720031,0.264155838519153,0.263972548784462,0.263789178226845,0.263641205152051,0.263558327860829,0.263558327860829, +0.367675539509123,0.367675539509123,0.367658157272234,0.367518001942447,0.367289160099359,0.367015993687113,0.36674655247534,0.366528723309688,0.366405522365128,0.366405522365128, +0.497249575870424,0.497249575870424,0.497180967469152,0.496950352807071,0.496607412960102,0.496211632032716,0.495823590083885,0.495505400023012,0.495320390736904,0.495320390736904, +0.649988959190602,0.649988959190602,0.649857234929548,0.649498501240961,0.649001912400731,0.648446806734231,0.647901817504553,0.647439517241496,0.647152220860924,0.647152220860924, +0.820223285008096,0.820223285008096,0.82004899899636,0.819492845630579,0.818792544901061,0.818043057669091,0.817301828680696,0.816631283764217,0.816146714732452,0.816146714732452, + +00:35:15, +0.11402252534316,0.11402252534316,0.114075372684983,0.11407520903118,0.114034706179876,0.113970561934628,0.113901060938331,0.113843363052692,0.113810839890257,0.113810839890257, +0.11402252534316,0.11402252534316,0.114075372684983,0.11407520903118,0.114034706179876,0.113970561934628,0.113901060938331,0.113843363052692,0.113810839890257,0.113810839890257, +0.138497712494664,0.138497712494664,0.138546299193438,0.138534903564626,0.138478212078762,0.138395622436389,0.138308446436997,0.138236822591004,0.138196607372826,0.138196607372826, +0.188267701494691,0.188267701494691,0.188305665317921,0.188269805419363,0.188178859419288,0.188057649419002,0.187933553638946,0.187832767703506,0.187776374162028,0.187776374162028, +0.264487011435743,0.264487011435743,0.264504339530081,0.264427151045864,0.264280406305726,0.264097156441176,0.263913826008285,0.263765885457574,0.263683026451823,0.263683026451823, +0.367796021177366,0.367796021177366,0.367778632469541,0.367638507443993,0.367409722536396,0.367136626901496,0.366867256733536,0.366649485514517,0.366526317485351,0.366526317485351, +0.497355548089587,0.497355548089587,0.497286942921328,0.497056383659514,0.49671353582651,0.496317865172056,0.495929933100727,0.495611833664689,0.495426877056179,0.495426877056179, +0.650068547216987,0.650068547216987,0.649936845357836,0.649578203198591,0.649081749473022,0.648526798857935,0.647981963409228,0.647519793513275,0.647232577440501,0.647232577440501, +0.820266120039692,0.820266120039692,0.820091876398048,0.819535864646933,0.818835746792913,0.818086458049514,0.817345426149673,0.816675058522093,0.816190615650576,0.816190615650576, + +00:35:16, +0.114135210559306,0.114135210559306,0.114188069666548,0.114187912680764,0.114147412216394,0.114083267271302,0.114013763935528,0.113956063517832,0.11392353877958,0.11392353877958, +0.114135210559306,0.114135210559306,0.114188069666548,0.114187912680764,0.114147412216394,0.114083267271302,0.114013763935528,0.113956063517832,0.11392353877958,0.11392353877958, +0.138614149837718,0.138614149837718,0.138662743420321,0.138651354511583,0.138594669215478,0.138512084883444,0.138424913077226,0.138353292152553,0.138313078448906,0.138313078448906, +0.188389382099611,0.188389382099611,0.188427345345062,0.188391494080007,0.188300563251161,0.188179371603532,0.188055293835361,0.187954522259933,0.187898136704912,0.187898136704912, +0.264611507200873,0.264611507200873,0.264628828727228,0.264551655680021,0.264404942407656,0.264221732418715,0.264038442114704,0.263890534090748,0.263807693371673,0.263807693371673, +0.367916454722543,0.367916454722543,0.367899059565427,0.367758964844465,0.367530236857577,0.367257211976869,0.36698791282741,0.36677019953327,0.36664706440667,0.36664706440667, +0.497461465810162,0.497461465810162,0.497392863892752,0.497162360010373,0.496819604143595,0.496424043700236,0.496036221442605,0.495718212577519,0.495533308614726,0.495533308614726, +0.650148087808869,0.650148087808869,0.650016408351921,0.649657857668613,0.649161538970064,0.648606743302255,0.648062061529437,0.647600021910533,0.647312886089753,0.647312886089753, +0.820308927455311,0.820308927455311,0.820134726158777,0.819578855928065,0.818878920824095,0.818129830431058,0.817388995481565,0.816718805018435,0.816234488219194,0.816234488219194, + +00:35:17, +0.114247913016685,0.114247913016685,0.114300783868696,0.114300633554839,0.11426013550037,0.114195989889782,0.114126484251325,0.11406878133205,0.114036255035154,0.114036255035154, +0.114247913016685,0.114247913016685,0.114300783868696,0.114300633554839,0.11426013550037,0.114195989889782,0.114126484251325,0.11406878133205,0.114036255035154,0.114036255035154, +0.138730593978925,0.138730593978925,0.138779194432419,0.138767812250578,0.13871113316643,0.138628554176006,0.138541386595817,0.138469768619451,0.138429556445473,0.138429556445473, +0.188511051454627,0.188511051454627,0.18854901412241,0.188513171501037,0.1884222558616,0.188301082589406,0.188177022856048,0.188076265659068,0.188019888100723,0.188019888100723, +0.264735971269778,0.264735971269778,0.264753286241901,0.264676128641324,0.264529446843718,0.264346276735806,0.264163026564776,0.264015151070209,0.263932328638993,0.263932328638993, +0.368036840190907,0.368036840190907,0.368019438606108,0.367879374190054,0.367650703109072,0.367377748959385,0.367108520803098,0.366890865412073,0.366767763175206,0.366767763175206, +0.49756732909395,0.49756732909395,0.497498730445188,0.497268281921412,0.496925617973146,0.496530167679088,0.496142455171391,0.495824536823411,0.49563968547448,0.49563968547448, +0.650227581024733,0.650227581024733,0.650095923970271,0.649737464709546,0.649241280950467,0.648686640125912,0.648142111924014,0.647680202492198,0.647393146867672,0.647393146867672, +0.820351707290493,0.820351707290493,0.820177548314113,0.819621819509658,0.818922067030444,0.818173174849731,0.81743253671255,0.816762523289577,0.816278332474748,0.816278332474748, + +00:35:18, +0.114360632667293,0.114360632667293,0.114413515243445,0.114413371605411,0.114372875983773,0.114308729741978,0.114239221837574,0.114181516447152,0.114148988608756,0.114148988608756, +0.114360632667293,0.114360632667293,0.114413515243445,0.114413371605411,0.114372875983773,0.114308729741978,0.114239221837574,0.114181516447152,0.114148988608756,0.114148988608756, +0.138847044883401,0.138847044883401,0.138895652194864,0.138884276746724,0.138827603896686,0.138745030279086,0.13865786695772,0.138586251956594,0.138546041327396,0.138546041327396, +0.188632709548859,0.188632709548859,0.188670671639083,0.188634837671544,0.188543937239647,0.188422782365608,0.188298740689926,0.18819799788978,0.188141628338301,0.188141628338301, +0.264860403661322,0.264860403661322,0.264877712092941,0.264800569948581,0.26465391963268,0.264470789411162,0.264287579377167,0.264139736414581,0.264056932272388,0.264056932272388, +0.368157177628657,0.368157177628657,0.368139769637745,0.367999735526894,0.367771121336994,0.36749823789514,0.367229080706683,0.367011483196999,0.366888413837026,0.366888413837026, +0.497673138002664,0.497673138002664,0.497604542640309,0.497374149454308,0.497031577376868,0.496636237170355,0.496248634348871,0.495930806464189,0.495746007697288,0.495746007697288, +0.65030702692297,0.65030702692297,0.650175392271264,0.649817024379819,0.649320975472753,0.648766489387538,0.648222114651699,0.647760335317111,0.647473359833159,0.647473359833159, +0.82039445958072,0.82039445958072,0.820220342899565,0.819664755427336,0.818965185447739,0.818216491341482,0.817476049878748,0.816806213371793,0.816322148453624,0.816322148453624, + +00:35:19, +0.114473369463185,0.114473369463185,0.114526263742874,0.114526126784546,0.114485633618629,0.114421486779865,0.11435197664619,0.114294268815003,0.114261739452225,0.114261739452225, +0.114473369463185,0.114473369463185,0.114526263742874,0.114526126784546,0.114485633618629,0.114421486779865,0.11435197664619,0.114294268815003,0.114261739452225,0.114261739452225, +0.138963502516316,0.138963502516316,0.13901211667284,0.139000747965187,0.138944081371367,0.138861513157745,0.138774354127933,0.13870274212893,0.138662533059595,0.138662533059595, +0.188754356371453,0.188754356371453,0.188792317884227,0.188756492580647,0.188665607374372,0.188544470921145,0.188420447325941,0.188319718940963,0.188263357406514,0.188263357406514, +0.264984804394358,0.264984804394358,0.265002106299179,0.264924979620589,0.264778360793293,0.264595270463487,0.264412100570532,0.264264290142481,0.264181504290449,0.264181504290449, +0.36827746708194,0.36827746708194,0.368260052706444,0.368120048901065,0.367891491587405,0.36761867883018,0.367349592584194,0.367132052934064,0.367009016438144,0.367009016438144, +0.497778892597932,0.497778892597932,0.497710300539705,0.497479962670652,0.497137482416379,0.496742252235694,0.496354759036745,0.49603702156159,0.49585227534491,0.49585227534491, +0.650386425561883,0.650386425561883,0.650254813313187,0.649896536737773,0.649400622595352,0.648846291145672,0.648302069771145,0.64784042044402,0.647553525045024,0.647553525045024, +0.820437184361415,0.820437184361415,0.820263109950585,0.819707663716666,0.819008276111702,0.818259779942202,0.817519535016221,0.816849875301298,0.816365936192148,0.816365936192148, + +00:35:20, +0.114586123356478,0.114586123356478,0.114639029319122,0.114638899044373,0.114598408357029,0.114534260955474,0.114464748629146,0.11440703838753,0.11437450751746,0.11437450751746, +0.114586123356478,0.114586123356478,0.114639029319122,0.114638899044373,0.114598408357029,0.114534260955474,0.114464748629146,0.11440703838753,0.11437450751746,0.11437450751746, +0.139079966842886,0.139079966842886,0.139128587831577,0.139117225871179,0.139060565555644,0.138978002777093,0.138890848071505,0.138819239101458,0.138779031607039,0.138779031607039, +0.188875991911584,0.188875991911584,0.188913952847013,0.188878136217489,0.18878726625487,0.188666148245052,0.188542142753066,0.188441428801539,0.188385075294254,0.188385075294254, +0.265109173487728,0.265109173487728,0.265126468879436,0.265049357676136,0.264902770344301,0.264719719911474,0.264536590163513,0.264388812272512,0.264306044711761,0.264306044711761, +0.368397708596844,0.368397708596844,0.368380287858257,0.368240314358593,0.368011813906311,0.367739071810491,0.367470056481605,0.367252574669234,0.367129571024518,0.367129571024518, +0.497884592941295,0.497884592941295,0.497816004204878,0.497585721631947,0.49724333315321,0.496848212936678,0.496460829296627,0.496143182177265,0.495958488479019,0.495958488479019, +0.650465776999685,0.650465776999685,0.65033418715424,0.649976001841657,0.649480222376606,0.648926045458766,0.648381977340914,0.647920457931584,0.647633642561987,0.647633642561987, +0.820479881667946,0.820479881667946,0.820305849502567,0.819750544413158,0.819051339057996,0.818303040687726,0.817562992160971,0.816893509114251,0.816409695726588,0.816409695726588, + +00:35:21, +0.114698894299348,0.114698894299348,0.114751811924388,0.114751688337077,0.11471120015112,0.1146470522209,0.114577537738479,0.114519825116719,0.11448729275642,0.11448729275642, +0.114698894299348,0.114698894299348,0.114751811924388,0.114751688337077,0.11471120015112,0.1146470522209,0.114577537738479,0.114519825116719,0.11448729275642,0.11448729275642, +0.139196437828379,0.139196437828379,0.139245065636357,0.139233710429965,0.139177056414735,0.139094499102292,0.139007348753535,0.138935742839225,0.138895536934749,0.138895536934749, +0.188997616158451,0.188997616158451,0.18903557651664,0.188999768571241,0.188908913870264,0.18878781432639,0.188663826960298,0.188563127460457,0.188506781990444,0.188506781990444, +0.265233510960262,0.265233510960262,0.265250799852519,0.265173704133997,0.265027148304436,0.264844137773804,0.264661048174743,0.264513302823267,0.264430553554894,0.264430553554894, +0.368517902219406,0.368517902219406,0.368500475139183,0.368360531945451,0.368132088339664,0.36785941688201,0.367590472444836,0.367373048448419,0.367250077642054,0.367250077642054, +0.497990239094205,0.497990239094205,0.497921653697243,0.497691426399612,0.497349129648806,0.496954119334789,0.496566845190044,0.496249288372779,0.496064647161205,0.496064647161205, +0.6505450812945,0.6505450812945,0.65041351385253,0.65005541974963,0.649559774874767,0.649005752385179,0.648461837419478,0.648000447838373,0.647713712442679,0.647713712442679, +0.820522551535623,0.820522551535623,0.820348561590848,0.819793397552264,0.819094374322227,0.818346273613827,0.817606421348943,0.816937114846749,0.816453427093153,0.816453427093153, + +00:35:22, +0.114811682244033,0.114811682244033,0.114864611510932,0.114864494614907,0.11482400895311,0.114759860528295,0.114690343926283,0.114632628954618,0.114600095121124,0.114600095121124, +0.114811682244033,0.114811682244033,0.114864611510932,0.114864494614907,0.11482400895311,0.114759860528295,0.114690343926283,0.114632628954618,0.114600095121124,0.114600095121124, +0.139312915438113,0.139312915438113,0.139361550052513,0.139350201606859,0.139293553913912,0.139211002098551,0.139123856139172,0.139052253307331,0.139012049007792,0.139012049007792, +0.189119229101278,0.189119229101278,0.18915718888233,0.189121389631099,0.1890305502097,0.188909469154244,0.188785499936664,0.188684814906692,0.188628477484028,0.188628477484028, +0.265357816830779,0.265357816830779,0.265375099237225,0.265298019012934,0.265151494692418,0.264968524069148,0.264785474622844,0.264637761813329,0.264555030838409,0.264555030838409, +0.368638047995608,0.368638047995608,0.368620614595164,0.368480701707556,0.368252314933361,0.367979714090617,0.367710840519755,0.367493474317475,0.367370536336604,0.367370536336604, +0.498095831118032,0.498095831118032,0.49802724907813,0.497797077034977,0.497454871964525,0.497059971491427,0.496672806778436,0.496355340209609,0.496170751452968,0.496170751452968, +0.650624338504362,0.650624338504362,0.650492793466078,0.650134790519765,0.649639280147995,0.649085411983184,0.648541650065218,0.648080390222863,0.64779373474564,0.64779373474564, +0.820565193999699,0.820565193999699,0.820391246250708,0.819836223169379,0.819137381939944,0.818389478756224,0.817649822616025,0.816980692534835,0.816497130327994,0.816497130327994, + +00:35:23, +0.11492448714283,0.11492448714283,0.114977428031072,0.114977317830171,0.11493683471527,0.114872685829874,0.114803167144714,0.114745449853332,0.114712914563653,0.114712914563653, +0.11492448714283,0.11492448714283,0.114977428031072,0.114977317830171,0.11493683471527,0.114872685829874,0.114803167144714,0.114745449853332,0.114712914563653,0.114712914563653, +0.139429399637454,0.139429399637454,0.139478041045425,0.139466699367222,0.139410058018493,0.139327511731131,0.139240370193615,0.139168770470922,0.13912856779129,0.13912856779129, +0.189240830729317,0.189240830729317,0.189278789933334,0.189242999386284,0.189152175262354,0.189031112717729,0.188907161671214,0.188806491129244,0.18875016176398,0.18875016176398, +0.265482091118086,0.265482091118086,0.265499367052339,0.2654223023317,0.265275809526955,0.265092878816165,0.264909869526426,0.26476218926127,0.264679476580857,0.264679476580857, +0.368758145971375,0.368758145971375,0.368740706272089,0.368600823690769,0.368372493733247,0.368099963482139,0.367831160752172,0.367613852322203,0.367490947153964,0.367490947153964, +0.498201369074057,0.498201369074057,0.498132790408783,0.497902673599288,0.497560560161642,0.497165769467903,0.496778714123158,0.496461337749148,0.496276801415724,0.496276801415724, +0.650703548687215,0.650703548687215,0.650572026052813,0.650214114210041,0.649718738254363,0.649165024310961,0.648621415336428,0.648160285143446,0.647873709529321,0.647873709529321, +0.820607809095368,0.820607809095368,0.820433903517369,0.81987902129984,0.819180361946639,0.818432656150578,0.817693195998045,0.81702424221449,0.816540805467204,0.816540805467204, + +00:35:24, +0.115037308948094,0.115037308948094,0.115090261437188,0.115090157935236,0.115049677389926,0.11498552807791,0.114916007345986,0.114858287765029,0.114825751036146,0.114825751036146, +0.115037308948094,0.115037308948094,0.115090261437188,0.115090157935236,0.115049677389926,0.11498552807791,0.114916007345986,0.114858287765029,0.114825751036146,0.114825751036146, +0.139545890391818,0.139545890391818,0.139594538580524,0.139583203676469,0.139526568693848,0.139444027965342,0.139356890882112,0.139285294295196,0.139245093250411,0.139245093250411, +0.189362421031845,0.189362421031845,0.189400379658926,0.189364597826046,0.189273789017424,0.189152745005984,0.189028812153026,0.188928156117141,0.188871834819299,0.188871834819299, +0.26560633384098,0.26560633384098,0.265623603316635,0.265546554109036,0.265400092826745,0.265217202033503,0.265034232904087,0.26488658518565,0.264803890800776,0.264803890800776, +0.368878196192582,0.368878196192582,0.368860750215793,0.368720897940902,0.36849262478511,0.368220165102349,0.367951433187846,0.367734182508353,0.367611310139879,0.367611310139879, +0.498306853023475,0.498306853023475,0.498238277750359,0.498008216153705,0.497666194301341,0.497271513325445,0.496884567285479,0.496567281052703,0.496382797110802,0.496382797110802, +0.650782711900915,0.650782711900915,0.650651211670576,0.650293390878352,0.649798149251855,0.649244589426603,0.64870113329131,0.64824013265842,0.647953636852082,0.647953636852082, +0.820650396857772,0.820650396857772,0.820476533425999,0.819921791978928,0.819223314377744,0.818475805832489,0.817736541530776,0.81706776392164,0.816584452546817,0.816584452546817, + +00:35:25, +0.115150147612244,0.115150147612244,0.115203111681719,0.115203014882529,0.11516253692947,0.115098387224738,0.115028864482376,0.114971142641938,0.114938604490804,0.114938604490804, +0.115150147612244,0.115150147612244,0.115203111681719,0.115203014882529,0.11516253692947,0.115098387224738,0.115028864482376,0.114971142641938,0.114938604490804,0.114938604490804, +0.139662387666673,0.139662387666673,0.139711042623291,0.139699714500061,0.139643085905395,0.139560550766544,0.13947341816996,0.139401824745402,0.139361625350376,0.139361625350376, +0.189483999998165,0.189483999998165,0.189521958048408,0.189486184939658,0.189395391464138,0.189274366008173,0.189150451371203,0.189049809859437,0.188993496639012,0.188993496639012, +0.265730545018243,0.265730545018243,0.265747808048875,0.265670774363672,0.265524344610476,0.265341493739798,0.265158564774418,0.265010949605018,0.264928273516696,0.264928273516696, +0.368998198705046,0.368998198705046,0.368980746472056,0.368840924503706,0.368612708134686,0.368340318996964,0.368071657872483,0.36785446492162,0.367731625340038,0.367731625340038, +0.498412283027396,0.498412283027396,0.498343711163929,0.498113704759301,0.497771774444725,0.497377203125193,0.496990366326582,0.496673170181493,0.496488738599448,0.496488738599448, +0.650861828203229,0.650861828203229,0.650730350377121,0.650372620582502,0.649877513198366,0.649324107388114,0.648780803987978,0.648319932825996,0.648033516772195,0.648033516772195, +0.820692957321992,0.820692957321992,0.820519136011706,0.819964535241867,0.819266239268638,0.818518927837505,0.817779859249931,0.817111257692151,0.81662807160281,0.81662807160281, + +00:35:26, +0.115263003087757,0.115263003087757,0.115315978717166,0.115315888624539,0.115275413286349,0.11521126322275,0.115141738506219,0.115084014436345,0.115051474879888,0.115051474879888, +0.115263003087757,0.115263003087757,0.115315978717166,0.115315888624539,0.115275413286349,0.11521126322275,0.115141738506219,0.115084014436345,0.115051474879888,0.115051474879888, +0.139778891427533,0.139778891427533,0.139827553139255,0.139816231803511,0.139759609618603,0.139677080100146,0.13958995202251,0.139518361786838,0.139478164056452,0.139478164056452, +0.189605567617605,0.189605567617605,0.189643525091107,0.18960776071642,0.189516982591745,0.189395975713489,0.189272079314876,0.189171452345212,0.18911514721217,0.18911514721217, +0.26585472466865,0.26585472466865,0.265871981267811,0.265794963114326,0.26564856489682,0.265465753953677,0.265282865155994,0.265135282537914,0.265052624747133,0.265052624747133, +0.369118153554531,0.369118153554531,0.369100695086604,0.368960903424885,0.368732743827655,0.36846042521165,0.368191834851732,0.367974699607643,0.367851892800078,0.367851892800078, +0.498517659146844,0.498517659146844,0.49844909071048,0.498219139477063,0.497877300652809,0.497482838928201,0.497096111307564,0.496779005196654,0.496594625942818,0.496594625942818, +0.650940897651834,0.650940897651834,0.65080944223011,0.650451803380203,0.649956830151699,0.649403578253407,0.648860427484457,0.648399685704294,0.648113349347842,0.648113349347842, +0.820735490523054,0.820735490523054,0.820561711309544,0.820007251123825,0.819309136654639,0.818562022201113,0.817823149191167,0.817154723561834,0.816671662671101,0.816671662671101, + +00:35:27, +0.11537587532717,0.11537587532717,0.115428862496087,0.115428779113813,0.115388306413074,0.115324156024402,0.115254629369912,0.115196903100598,0.115164362155718,0.115164362155718, +0.11537587532717,0.11537587532717,0.115428862496087,0.115428779113813,0.115388306413074,0.115324156024402,0.115254629369912,0.115196903100598,0.115164362155718,0.115164362155718, +0.139895401639963,0.139895401639963,0.139944070093996,0.13993275555238,0.13987613979899,0.139793615931607,0.139706492405157,0.139634905384849,0.13959470933396,0.13959470933396, +0.18972712387952,0.18972712387952,0.189765080776375,0.189729325145657,0.189638562389524,0.189517574111147,0.189393695973201,0.189293083563571,0.189236786527852,0.189236786527852, +0.265978872810962,0.265978872810962,0.265996122992182,0.265919120379704,0.265772753704444,0.265589982693753,0.265407134067382,0.265259584002865,0.265176944510594,0.265176944510594, +0.369238060786747,0.369238060786747,0.369220596105109,0.369080834750082,0.368852731909646,0.368580483792017,0.368311964171191,0.36809488661201,0.367972112565582,0.367972112565582, +0.498622981442756,0.498622981442756,0.498554416450912,0.498324520367895,0.497982772986522,0.49758842079544,0.497201802289439,0.496884786159236,0.496700459201986,0.496700459201986, +0.651019920304321,0.651019920304321,0.650888487287119,0.650530939329084,0.650036100169572,0.649483002080307,0.648940003838683,0.648479391351346,0.648193134637115,0.648193134637115, +0.820777996495928,0.820777996495928,0.820604259354509,0.820049939659911,0.819352006571012,0.818605088958743,0.817866411390082,0.817198161566438,0.816715225787551,0.816715225787551, + +00:35:28, +0.115488764283079,0.115488764283079,0.115541762971103,0.115541686302959,0.115501216262211,0.115437065582208,0.11536753702591,0.115309808587105,0.115277266270675,0.115277266270675, +0.115488764283079,0.115488764283079,0.115541762971103,0.115541686302959,0.115501216262211,0.115437065582208,0.11536753702591,0.115309808587105,0.115277266270675,0.115277266270675, +0.140011918269579,0.140011918269579,0.140060593453142,0.140049285712278,0.139992676412122,0.139910158226436,0.139823039283349,0.139751455504834,0.139711261148268,0.139711261148268, +0.18984866877329,0.18984866877329,0.18988662509359,0.18985087821672,0.189760130846779,0.189639161190392,0.189515301335358,0.189414703503647,0.189358414575162,0.189358414575162, +0.266102989463927,0.266102989463927,0.266120233240714,0.2660432461785,0.265896911051997,0.265714179978631,0.265531371527137,0.265383854018388,0.265301232825575,0.265301232825575, +0.369357920447351,0.369357920447351,0.369340449573189,0.369200718524892,0.368972672426232,0.368700494783623,0.368432045876402,0.368215025980256,0.368092284682079,0.368092284682079, +0.498728249975987,0.498728249975987,0.498659688446039,0.498429847492613,0.498088191506709,0.497693948787794,0.497307439333131,0.496990513130202,0.49680623843794,0.49680623843794, +0.65109889621819,0.65109889621819,0.650967485605634,0.650610028486681,0.650115323309613,0.649562378926552,0.649019533108502,0.648559049825096,0.64827287269802,0.64827287269802, +0.820820475275527,0.820820475275527,0.820646780181541,0.82009260088518,0.819394849052962,0.818648128145769,0.817909645882219,0.817241571741658,0.816758760987963,0.816758760987963, + +00:35:29, +0.115601669908141,0.115601669908141,0.11565468009489,0.115654610144644,0.115614142786391,0.11554999184874,0.115480461426729,0.115422730848334,0.115390187177199,0.115390187177199, +0.115601669908141,0.115601669908141,0.11565468009489,0.115654610144644,0.115614142786391,0.11554999184874,0.115480461426729,0.115422730848334,0.115390187177199,0.115390187177199, +0.140128441282044,0.140128441282044,0.140177123182371,0.140165822248866,0.140109219423617,0.14002670695019,0.139939592622583,0.139868012112238,0.139827819464794,0.139827819464794, +0.189970202288319,0.189970202288319,0.190008158032156,0.189972419918986,0.189881687952837,0.189760736940492,0.189636895390556,0.189536312154598,0.18948003134323,0.18948003134323, +0.266227074646285,0.266227074646285,0.266244312032125,0.2661673405294,0.266021036958122,0.2658383458269,0.265655577553803,0.265508092602988,0.26542548971056,0.26542548971056, +0.369477732581942,0.369477732581942,0.369460255536408,0.369320554794852,0.369092565422931,0.36882045823197,0.368552080012855,0.368335117757859,0.368212409195043,0.368212409195043, +0.498833464807303,0.498833464807303,0.498764906756591,0.498535120911949,0.498193556274129,0.497799422966061,0.497413022499484,0.497096186170431,0.496911963711581,0.496911963711581, +0.651177825450853,0.651177825450853,0.651046437243053,0.650689070910444,0.650194499629362,0.649641708849789,0.649099015351672,0.648638661183398,0.64835256358847,0.64835256358847, +0.820862926896707,0.820862926896707,0.820689273825524,0.820135234834628,0.819437664135639,0.818691139797509,0.817952852703061,0.817284954123132,0.816802268308083,0.816802268308083, + +00:35:30, +0.115714592155074,0.115714592155074,0.11576761382019,0.115767550591596,0.115727085938302,0.115662934776634,0.115593402524944,0.115535669836812,0.115503124827791,0.115503124827791, +0.115714592155074,0.115714592155074,0.11576761382019,0.115767550591596,0.115727085938302,0.115662934776634,0.115593402524944,0.115535669836812,0.115503124827791,0.115503124827791, +0.14024497064307,0.14024497064307,0.14029365924741,0.140282365127852,0.14022576879914,0.140143262068477,0.140056152388404,0.139984575172558,0.139944384249005,0.139944384249005, +0.19009172441404,0.19009172441404,0.190129679581503,0.190093950241857,0.190003233697053,0.189882301350741,0.189758478128028,0.189657909505608,0.189601636821213,0.189601636821213, +0.266351128376761,0.266351128376761,0.266368359385119,0.266291403451073,0.266145131441447,0.265962480257143,0.265779752165912,0.26563229977516,0.265549715184023,0.265549715184023, +0.369597497236069,0.369597497236069,0.369580014040275,0.369440343605447,0.36921241094521,0.368940374182508,0.368672066625986,0.368455161990246,0.368332486149898,0.368332486149898, +0.498938625997385,0.498938625997385,0.498870071443213,0.49864034068655,0.498298867349456,0.497904843390954,0.497518551849252,0.497201805340718,0.497017635083728,0.497017635083728, +0.651256708059636,0.651256708059636,0.651125342256687,0.650768066657734,0.65027362918627,0.649720991907579,0.649178450625864,0.648718225484016,0.648432207366293,0.648432207366293, +0.820905351394271,0.820905351394271,0.820731740321285,0.820177841543198,0.819480451854135,0.818734123949223,0.817996031888035,0.817328308746438,0.816845747783598,0.816845747783598, + +00:35:31, +0.115827530976653,0.115827530976653,0.1158805640998,0.1158805075966,0.115840045670691,0.115775894318581,0.115706360273191,0.115648625505128,0.115616079175011,0.115616079175011, +0.115827530976653,0.115827530976653,0.1158805640998,0.1158805075966,0.115840045670691,0.115775894318581,0.115706360273191,0.115648625505128,0.115616079175011,0.115616079175011, +0.140361506318421,0.140361506318421,0.140410201614037,0.140398914314996,0.140342324504407,0.140259823546954,0.14017271854641,0.140101144651339,0.14006095546642,0.14006095546642, +0.190213235139909,0.190213235139909,0.190251189731085,0.19021546917476,0.190124768068808,0.190003854410459,0.189880049537033,0.189779495545887,0.189723230998293,0.189723230998293, +0.266475150674071,0.266475150674071,0.266492375318389,0.266415434962182,0.266269194520591,0.266086583287928,0.265903895381985,0.265756475553387,0.265673909264426,0.265673909264426, +0.369717214455226,0.369717214455226,0.369699725130247,0.369560085002106,0.369332209038479,0.369060242680633,0.368792005761177,0.368575158722791,0.368452515592012,0.368452515592012, +0.499043733606832,0.499043733606832,0.498975182566464,0.498745506876976,0.49840412479328,0.498010210123104,0.497624027443108,0.497307370701771,0.497123252615111,0.497123252615111, +0.651335544101775,0.651335544101775,0.651204200703758,0.650847015785823,0.650352712037701,0.649800228157392,0.649257838988659,0.648797742784629,0.648511804089226,0.648511804089226, +0.820947748802961,0.820947748802961,0.820774179703596,0.820220421045773,0.819523212243488,0.818777080636113,0.818039183472514,0.817371635647098,0.81688919945014,0.81688919945014, + +00:35:32, +0.115940486325714,0.115940486325714,0.115993530886578,0.115993481112504,0.115953021936368,0.115888870427337,0.115819334624166,0.115761597805927,0.115729050171481,0.115729050171481, +0.115940486325714,0.115940486325714,0.115993530886578,0.115993481112504,0.115953021936368,0.115888870427337,0.115819334624166,0.115761597805927,0.115729050171481,0.115729050171481, +0.140478048273908,0.140478048273908,0.140526750248075,0.140515469776105,0.140458886505182,0.140376391351326,0.140289291062243,0.140217720514176,0.140177533082605,0.140177533082605, +0.190334734455407,0.190334734455407,0.190372688470382,0.19033697670715,0.190246291057507,0.190125396108993,0.190001609606857,0.18990107026467,0.189844813863677,0.189844813863677, +0.266599141556916,0.266599141556916,0.266616359850615,0.266539435081373,0.266393226214159,0.266210654937813,0.266028007220534,0.265880619956142,0.265798071970221,0.265798071970221, +0.369836884284852,0.369836884284852,0.369819388851725,0.369679779030208,0.369451959748098,0.369180063771686,0.368911897463758,0.368695108000812,0.3685724975667,0.3685724975667, +0.499148787696154,0.499148787696154,0.499080240186818,0.498850619543705,0.498509328666103,0.498115523223054,0.497729449341637,0.497412882314214,0.497228816366379,0.497228816366379, +0.651414333634418,0.651414333634418,0.6512830126414,0.650925918351899,0.650431748240929,0.649879417656612,0.64933718049755,0.648877213142826,0.648591353814919,0.648591353814919, +0.820990119157468,0.820990119157468,0.820816592007172,0.820262973377184,0.819565945338677,0.818820009893326,0.81808230749181,0.817414934860578,0.816932623343282,0.816932623343282, + +00:35:33, +0.116053458155153,0.116053458155153,0.116106514133443,0.116106471092214,0.1160660146882,0.116001863055713,0.115932325530623,0.115874586691919,0.11584203776988,0.11584203776988, +0.116053458155153,0.116053458155153,0.116106514133443,0.116106471092214,0.1160660146882,0.116001863055713,0.115932325530623,0.115874586691919,0.11584203776988,0.11584203776988, +0.140594596475391,0.140594596475391,0.140643305115401,0.140632031477036,0.140575454767278,0.140492965447348,0.1404058699016,0.140334302726713,0.140294117063176,0.140294117063176, +0.190456222350042,0.190456222350042,0.1904941757889,0.190458472828503,0.190367802652581,0.190246926435713,0.190123158326809,0.190022633651219,0.189966385406602,0.189966385406602, +0.26672310104399,0.26672310104399,0.266740313000468,0.266663403827286,0.266517226540747,0.266334695225345,0.266152087700057,0.266004733001886,0.265922203319849,0.265922203319849, +0.369956506770332,0.369956506770332,0.369939005250057,0.369799425735075,0.36957166311937,0.369299837500957,0.369031741779002,0.368815009869576,0.368692432119223,0.368692432119223, +0.49925378832578,0.49925378832578,0.499185244364664,0.498955678747128,0.498614479028346,0.498220782751262,0.497834817605342,0.497518340238586,0.497334326398095,0.497334326398095, +0.651493076714628,0.651493076714628,0.651361778126662,0.651004774413057,0.650510737853143,0.649958560462535,0.649416475209942,0.648956636616107,0.648670856600933,0.648670856600933, +0.821032462492424,0.821032462492424,0.820858977266674,0.820305498572201,0.819608651174627,0.818862911755953,0.81812540398118,0.817458206422286,0.81697601949854,0.81697601949854, + +00:35:34, +0.116166446417926,0.116166446417926,0.116219513793372,0.116219477488695,0.116179023879114,0.116114872156582,0.116045332945377,0.115987592115869,0.115955041922948,0.115955041922948, +0.116166446417926,0.116166446417926,0.116219513793372,0.116219477488695,0.116179023879114,0.116114872156582,0.116045332945377,0.115987592115869,0.115955041922948,0.115955041922948, +0.140711150888779,0.140711150888779,0.140759866181937,0.140748599383694,0.140692029256558,0.140609545800824,0.140522455030222,0.140450891254644,0.140410707373798,0.140410707373798, +0.190577698813345,0.190577698813345,0.190615651676169,0.190579957528324,0.190489302843486,0.190368445380016,0.190244695686228,0.190144185694822,0.190087945616325,0.190087945616325, +0.266847029153971,0.266847029153971,0.266864234786605,0.266787341218544,0.266641195518938,0.266458704169058,0.266276136839042,0.266128814709069,0.266046303331737,0.266046303331737, +0.370076081957,0.370076081957,0.370058574370538,0.369919025161975,0.369691319197547,0.36941956391368,0.369151538752133,0.368934864374296,0.368812319294792,0.368812319294792, +0.49935873555605,0.49935873555605,0.499290195160309,0.499060684547553,0.498719575940343,0.498325988768103,0.497940132294639,0.497623744535343,0.497439782770735,0.497439782770735, +0.651571773399377,0.651571773399377,0.651440497216502,0.651083584026309,0.650589680931443,0.650037656632369,0.649495723183153,0.649036013261885,0.648750312504743,0.648750312504743, +0.821074778842407,0.821074778842407,0.820901335516705,0.820347996665543,0.819651329786205,0.818905786259029,0.818168472975824,0.817501450367573,0.817019387951374,0.817019387951374, + +00:35:35, +0.116279451067047,0.116279451067047,0.116332529819402,0.116332500254973,0.116292049462097,0.116227897682877,0.116158356821303,0.116100614030604,0.116068062583486,0.116068062583486, +0.116279451067047,0.116279451067047,0.116332529819402,0.116332500254973,0.116292049462097,0.116227897682877,0.116158356821303,0.116100614030604,0.116068062583486,0.116068062583486, +0.140827711480031,0.140827711480031,0.140876433413656,0.140865173462035,0.140808609938934,0.140726132377608,0.140639046413902,0.140567486063711,0.140527303980187,0.140527303980187, +0.190699163834875,0.190699163834875,0.190737116121744,0.190701430796142,0.190610791619705,0.190489952931324,0.190366221674473,0.19026572638479,0.190209494482132,0.190209494482132, +0.266970925905526,0.266970925905526,0.266988125227672,0.266911247273762,0.266765133167302,0.266582681787475,0.266400154655964,0.266252865096131,0.266170372024306,0.266170372024306, +0.370195609890131,0.370195609890131,0.370178096258409,0.370038577356126,0.369810928027824,0.369539243055037,0.369271288428318,0.36905467156013,0.36893215913856,0.36893215913856, +0.499463629447224,0.499463629447224,0.499395092633971,0.499165637005202,0.498824619462344,0.498431141333868,0.498045393469862,0.497729095264854,0.497545185544694,0.497545185544694, +0.651650423745551,0.651650423745551,0.651519169967792,0.651162347248577,0.650668577532841,0.650116706223234,0.649574924474413,0.649115343137486,0.648829721583733,0.648829721583733, +0.821117068241938,0.821117068241938,0.820943666791814,0.82039046769187,0.819693981208223,0.818948633437529,0.818211514510886,0.817544666731734,0.817062728737186,0.817062728737186, + +00:35:36, +0.11639247205559,0.11639247205559,0.11644556216463,0.116445539344133,0.116405091390196,0.116340939587589,0.116271397111335,0.116213652389011,0.116181099704352,0.116181099704352, +0.11639247205559,0.11639247205559,0.11644556216463,0.116445539344133,0.116405091390196,0.116340939587589,0.116271397111335,0.116213652389011,0.116181099704352,0.116181099704352, +0.140944278215155,0.140944278215155,0.140993006776579,0.140981753678061,0.140925196780366,0.140842725143602,0.140755644018483,0.140684087119707,0.140643906848105,0.140643906848105, +0.190820617404214,0.190820617404214,0.190858569115208,0.190822892621511,0.190732268970742,0.190611449079086,0.190487736280932,0.190387255710462,0.190331031993335,0.190331031993335, +0.267094791317313,0.267094791317313,0.267111984342303,0.267035122011542,0.266889039504402,0.26670662809911,0.26652414116929,0.266376884181497,0.266294409415961,0.266294409415961, +0.370315090614952,0.370315090614952,0.370297570958855,0.370158082362688,0.369930489655346,0.369658874970156,0.369390990852673,0.369174431472187,0.36905195169563,0.36905195169563, +0.499568470059474,0.499568470059474,0.499499936845788,0.499270536180214,0.498929609654516,0.498536240508762,0.498150601191258,0.497834392487406,0.497650534780282,0.497650534780282, +0.651729027809951,0.651729027809951,0.651597796437319,0.651241064136697,0.650747427714263,0.650195709292164,0.649654079140864,0.649194626300146,0.648909083895201,0.648909083895201, +0.821159330725484,0.821159330725484,0.820985971126494,0.820432911685788,0.819736605475437,0.818991453326376,0.818254528621454,0.817587855550006,0.817106041891322,0.817106041891322, + +00:35:37, +0.11650550933669,0.11650550933669,0.116558610782211,0.11655859470932,0.116518149616515,0.11645399782377,0.116384453768466,0.116326707144035,0.116294153238465,0.116294153238465, +0.11650550933669,0.11650550933669,0.116558610782211,0.11655859470932,0.116518149616515,0.11645399782377,0.116384453768466,0.116326707144035,0.116294153238465,0.116294153238465, +0.141060851060207,0.141060851060207,0.141109586236777,0.141098339997825,0.141041789746864,0.140959324064757,0.140872247809854,0.140800694388471,0.140760515943367,0.140760515943367, +0.19094205951097,0.19094205951097,0.190980010646165,0.19094434299401,0.190853734886132,0.190732933812773,0.190609239495019,0.190508773661203,0.190452558139269,0.190452558139269, +0.267218625407976,0.267218625407976,0.267235812149122,0.267158965450475,0.267012914548784,0.266830543122461,0.266648096397472,0.266500871983585,0.266418415525099,0.266418415525099, +0.370434524176633,0.370434524176633,0.370416998517011,0.37027754022677,0.370050004125204,0.369778459704111,0.369510646070259,0.369294144155517,0.369171697011051,0.369171697011051, +0.499673257452889,0.499673257452889,0.49960472785581,0.499375382132642,0.499034546576939,0.498641286352906,0.498255755518992,0.497939636263199,0.497755830537723,0.497755830537723, +0.651807585649288,0.651807585649288,0.651676376681779,0.651319734747418,0.650826231532547,0.650274665896103,0.649733187239561,0.649273862807016,0.648988399496359,0.648988399496359, +0.821201566327457,0.821201566327457,0.821028248555182,0.820475328681847,0.819779202622547,0.819034245960436,0.818297515342558,0.817631016857572,0.81714932744907,0.81714932744907, + +00:35:38, +0.11661856286354,0.11661856286354,0.116671675625361,0.116671666303736,0.116631224094222,0.11656707234453,0.116497526745749,0.116439778248682,0.116407223138804,0.116407223138804, +0.11661856286354,0.11661856286354,0.116671675625361,0.116671666303736,0.116631224094222,0.11656707234453,0.116497526745749,0.116439778248682,0.116407223138804,0.116407223138804, +0.141177429981291,0.141177429981291,0.141226171760368,0.141214932387429,0.141158388804485,0.141075929107074,0.140988857753956,0.140917307835894,0.140877131231834,0.140877131231834, +0.191063490144777,0.191063490144777,0.191101440704247,0.191065781903244,0.190975189355431,0.190854407121883,0.190730731306171,0.1906302802264,0.190574072909298,0.190574072909298, +0.267342428196146,0.267342428196146,0.267359608666738,0.267282777609138,0.267136758318987,0.26695442687602,0.266772020358953,0.266624828520801,0.266542390370104,0.266542390370104, +0.37055391062029,0.37055391062029,0.370536378977957,0.370396950993426,0.370169471482432,0.369897997301925,0.369630254126086,0.369413809655122,0.369291395129819,0.369291395129819, +0.499777991687473,0.499777991687473,0.499709465724006,0.499480174922457,0.499139430289613,0.498746278926338,0.498360856513144,0.498044826652352,0.497861072877158,0.497861072877158, +0.651886097320187,0.651886097320187,0.651754910757785,0.651398359137401,0.650904989044444,0.65035357609191,0.649812248827471,0.649353052715158,0.649067668444328,0.649067668444328, +0.82124377508221,0.82124377508221,0.821070499112261,0.820517718714541,0.819821772684197,0.819077011374517,0.818340474709174,0.817674150689556,0.817192585445664,0.817192585445664, + +00:35:39, +0.116731632589392,0.116731632589392,0.116784756647354,0.116784754080644,0.116744314776539,0.11668016310304,0.116610615996298,0.116552865656018,0.116520309358408,0.116520309358408, +0.116731632589392,0.116731632589392,0.116784756647354,0.116784754080644,0.116744314776539,0.11668016310304,0.116610615996298,0.116552865656018,0.116520309358408,0.116520309358408, +0.141294014944562,0.141294014944562,0.14134276331352,0.141331530813022,0.141274993919337,0.141192540236601,0.141105473816777,0.141033927427916,0.140993752679416,0.140993752679416, +0.19118490929529,0.19118490929529,0.19122285927911,0.19118720933884,0.191096632368221,0.190975868995941,0.19085221170385,0.19075177539547,0.190695576292808,0.190695576292808, +0.267466199700445,0.267466199700445,0.267483373913751,0.267406558506098,0.267260570833534,0.267078279378262,0.266895913072165,0.266748753811537,0.26666633396935,0.26666633396935, +0.370673249990987,0.370673249990987,0.370655712386718,0.370516314707659,0.370288891772016,0.370017487808564,0.369749815065108,0.369533428015949,0.369411046096877,0.369411046096877, +0.499882672823148,0.499882672823148,0.499814150510259,0.499584914609544,0.499244260852449,0.498851218289012,0.49846590423371,0.498149963714899,0.497966261858645,0.497966261858645, +0.651964562879188,0.651964562879188,0.651833398721861,0.651476937363223,0.650983700306619,0.650432439936358,0.649891263961476,0.649432196081549,0.649146890796145,0.649146890796145, +0.821285957024047,0.821285957024047,0.821112722832058,0.820560081818308,0.819864315694977,0.819119749603374,0.818383406756221,0.817717257081026,0.817235815916279,0.817235815916279, + +00:35:40, +0.116844718467558,0.116844718467558,0.116897853801526,0.116897857993368,0.116857421616752,0.11679327005253,0.116723721473284,0.116665969319165,0.116633411850374,0.116633411850374, +0.116844718467558,0.116844718467558,0.116897853801526,0.116897857993368,0.116857421616752,0.11679327005253,0.116723721473284,0.116665969319165,0.116633411850374,0.116633411850374, +0.141410605916222,0.141410605916222,0.14145936086245,0.141448135240802,0.141391605057575,0.141309157419436,0.141222095964354,0.141150553130523,0.141110380252076,0.141110380252076, +0.191306316952194,0.191306316952194,0.191344266360434,0.191308625290455,0.19121806391411,0.191097319424493,0.190973680677547,0.190873259157852,0.190817068279213,0.190817068279213, +0.267589939939482,0.267589939939482,0.267607107908747,0.267530308159912,0.26738435211094,0.267202100647654,0.267019774555526,0.266872647874177,0.266790246341199,0.266790246341199, +0.370792542333734,0.370792542333734,0.370774998788267,0.370635631414416,0.370408265038884,0.370136931268945,0.369869328932229,0.36965299928289,0.369530649957115,0.369530649957115, +0.49998730091975,0.49998730091975,0.499918782274368,0.499689601253706,0.499349038325278,0.498956104500796,0.498570898740601,0.498255047510789,0.498071397542156,0.498071397542156, +0.652042982382742,0.652042982382742,0.651911840630446,0.651555469481371,0.65106236537565,0.650511257486131,0.649970232698369,0.649511292963076,0.649226066608758,0.649226066608758, +0.82132811218721,0.82132811218721,0.821154919748844,0.820602418027534,0.81990683168942,0.819162460681704,0.818426311518561,0.817760336066997,0.817279018896035,0.817279018896035, + +00:35:41, +0.11695782045141,0.11695782045141,0.117010967041267,0.117010977995288,0.116970544568203,0.116906393146287,0.116836843129938,0.116779089191309,0.116746530567858,0.116746530567858, +0.11695782045141,0.11695782045141,0.117010967041267,0.117010977995288,0.116970544568203,0.116906393146287,0.116836843129938,0.116779089191309,0.116746530567858,0.116746530567858, +0.141527202862521,0.141527202862521,0.141575964373422,0.141564745637018,0.141508222185405,0.141425780621725,0.141338724162774,0.141267184909753,0.14122701391582,0.14122701391582, +0.191427713105196,0.191427713105196,0.191465661937926,0.191430029747765,0.191339483982729,0.191218758397115,0.191095138216775,0.190994731503012,0.190938548857951,0.190938548857951, +0.267713648931852,0.267713648931852,0.267730810670302,0.267654026589121,0.267508102169706,0.267325890702651,0.267143604827444,0.266996510727091,0.266914127504001,0.266914127504001, +0.370911787693487,0.370911787693487,0.370894238227524,0.370754901158592,0.370527591327914,0.370256327727928,0.369988795772297,0.369772523500788,0.36965020675537,0.36965020675537, +0.500091876037031,0.500091876037031,0.50002336107605,0.49979423491466,0.499453762767846,0.499060937621477,0.498675840093648,0.498360078099889,0.498176479987582,0.498176479987582, +0.652121355887215,0.652121355887215,0.651990236539891,0.651633955548247,0.651140984308028,0.650590028797827,0.650049155094856,0.649590343416542,0.649305195939029,0.649305195939029, +0.821370240605893,0.821370240605893,0.821197089896837,0.820644727376546,0.819949320702003,0.819205144644151,0.818469189031002,0.817803387682423,0.817322194419996,0.817322194419996, + +00:35:42, +0.117070938494377,0.117070938494377,0.117124096320033,0.117124114039846,0.117083683584295,0.117019532337661,0.116949980919551,0.116892225225692,0.116859665464078,0.116859665464078, +0.117070938494377,0.117070938494377,0.117124096320033,0.117124114039846,0.117083683584295,0.117019532337661,0.116949980919551,0.116892225225692,0.116859665464078,0.116859665464078, +0.141643805749759,0.141643805749759,0.14169257381275,0.141681361967964,0.141624845269077,0.141542409809664,0.141455358378171,0.141383822731691,0.141343653636707,0.141343653636707, +0.191549097744029,0.191549097744029,0.191587046001315,0.191551422700477,0.191460892563736,0.191340185903403,0.191216584311071,0.191116192420439,0.191060018018485,0.191060018018485, +0.267837326696142,0.267837326696142,0.267854482216979,0.267777713812258,0.267631821028322,0.267449649561695,0.267267403906316,0.26712034238864,0.267037977476097,0.267037977476097, +0.37103098611515,0.37103098611515,0.371013430749354,0.370874123985028,0.370646870683929,0.370375677230322,0.370108215630109,0.36989200071443,0.369769716536426,0.369769716536426, +0.500196398234661,0.500196398234661,0.500127886974936,0.499898815652043,0.499558434239816,0.499165717710758,0.498780728352595,0.498465055541982,0.498281509254729,0.498281509254729, +0.652199683448887,0.652199683448887,0.652068586506462,0.651712395620168,0.651219557160158,0.650668753927959,0.650128031207559,0.649669347498661,0.649384278843733,0.649384278843733, +0.82141234231423,0.82141234231423,0.821239233310199,0.820687009899618,0.81999178276715,0.8192478015253,0.818512039328294,0.817846411962206,0.817365342523167,0.817365342523167, + +00:35:43, +0.11718407254995,0.11718407254995,0.117237241591333,0.117237266080541,0.11719683861849,0.117132687580059,0.117063134795473,0.117005377375617,0.116972816492309,0.116972816492309, +0.11718407254995,0.11718407254995,0.117237241591333,0.117237266080541,0.11719683861849,0.117132687580059,0.117063134795473,0.117005377375617,0.116972816492309,0.116972816492309, +0.141760414544285,0.141760414544285,0.141809189146795,0.141797984199986,0.141741474274895,0.141659044949496,0.141571998576729,0.141500466562471,0.141460299380844,0.141460299380844, +0.191670470858448,0.191670470858448,0.191708418540356,0.191672804138317,0.191582289646813,0.191461601932981,0.191338018950001,0.19123764189965,0.191181475750304,0.191181475750304, +0.267960973250923,0.267960973250923,0.267978122567329,0.267901369847841,0.267755508705266,0.267573377243217,0.267391171810528,0.267244142877172,0.267161796275815,0.267161796275815, +0.371150137643572,0.371150137643572,0.37113257639857,0.370993299938513,0.370766103151699,0.370494979820883,0.370227588550407,0.37001143096855,0.369889179345014,0.369889179345014, +0.500300867572225,0.500300867572225,0.500232360030575,0.500003343525404,0.499663052800765,0.499270444828256,0.498885563577103,0.498569979896765,0.498386485403318,0.498386485403318, +0.65227796512395,0.65227796512395,0.65214689058634,0.651790789753364,0.651298083988359,0.650747432932951,0.650206861093012,0.649748305266062,0.649463315379559,0.649463315379559, +0.821454417346302,0.821454417346302,0.821281350023037,0.820729265630969,0.820034217919228,0.819290431359683,0.818554862445134,0.81788940894119,0.817408463240502,0.817408463240502, + +00:35:44, +0.117297222571677,0.117297222571677,0.117350402808738,0.117350434070932,0.117310009624308,0.117245858826946,0.117176304711114,0.117118545594446,0.117085983605886,0.117085983605886, +0.117297222571677,0.117297222571677,0.117350402808738,0.117350434070932,0.117310009624308,0.117245858826946,0.117176304711114,0.117118545594446,0.117085983605886,0.117085983605886, +0.141877029212495,0.141877029212495,0.141925810341967,0.141914612299474,0.141858109169208,0.141775686007513,0.14168864472468,0.141617116368277,0.141576951114386,0.141576951114386, +0.191791832438236,0.191791832438236,0.19182977954483,0.19179417405104,0.191703675221667,0.191583006475498,0.191459442123153,0.191359079930185,0.191302922042921,0.191302922042921, +0.268084588614758,0.268084588614758,0.268101731739892,0.268024994714379,0.267879165219006,0.267697073765637,0.267514908558452,0.267367912211023,0.267285583921471,0.267285583921471, +0.371269242323549,0.371269242323549,0.371251675219931,0.37111242906378,0.370885288775941,0.370614235544314,0.370346914577884,0.370130814307832,0.370008595225812,0.370008595225812, +0.500405284109226,0.500405284109226,0.500336780302434,0.500107818594212,0.49976761851019,0.499375119033508,0.498990345826751,0.498674851223857,0.49849140849299,0.49849140849299, +0.652356200968513,0.652356200968513,0.652225148835617,0.651869138003978,0.651376564848863,0.650826065869144,0.650285644807662,0.649827216775287,0.649542305603108,0.649542305603108, +0.821496465736136,0.821496465736136,0.821323440069405,0.820771494604762,0.82007662619255,0.819333034181777,0.818597658416161,0.817932378654164,0.817451556606895,0.817451556606895, + +00:35:45, +0.117410388513166,0.117410388513166,0.117463579925879,0.117463617964637,0.11742319655533,0.11735904603185,0.117289490619941,0.1172317298356,0.117199166758204,0.117199166758204, +0.117410388513166,0.117410388513166,0.117463579925879,0.117463617964637,0.11742319655533,0.11735904603185,0.117289490619941,0.1172317298356,0.117199166758204,0.117199166758204, +0.141993649720833,0.141993649720833,0.142042437364727,0.142031246232871,0.141974749918415,0.141892332950057,0.141805296788305,0.141733772115339,0.141693608803536,0.141693608803536, +0.191913182473199,0.191913182473199,0.191951129004541,0.191915532428422,0.191825049278028,0.191704399520627,0.191580853820141,0.19148050650161,0.191424356885877,0.191424356885877, +0.268208172806195,0.268208172806195,0.268225309753195,0.268148588430368,0.268002790587996,0.267820739147362,0.267638614168451,0.26749165040852,0.267409340431372,0.267409340431372, +0.371388300199824,0.371388300199824,0.371370727258144,0.371231511405512,0.37100442760132,0.370733444445263,0.370466193757175,0.370250150776904,0.370127964223447,0.370127964223447, +0.500509647905081,0.500509647905081,0.500441147849893,0.500212240917852,0.499872131427503,0.499479740385965,0.499095075161033,0.498779669582788,0.498596278583301,0.498596278583301, +0.652434391038598,0.652434391038598,0.652303361310302,0.651947440428068,0.651454999797818,0.650904652792791,0.650364382407871,0.649906082082792,0.649621249570896,0.649621249570896, +0.821538487517704,0.821538487517704,0.8213655034833,0.820813696855108,0.820119007621373,0.819375610026003,0.81864042727596,0.817975321135862,0.817494622657186,0.817494622657186, + +00:35:46, +0.117523570328083,0.117523570328083,0.117576772896443,0.117576817715334,0.117536399365193,0.117472249148354,0.117402692475482,0.117344930052558,0.117312365902716,0.117312365902716, +0.117523570328083,0.117523570328083,0.117576772896443,0.117576817715334,0.117536399365193,0.117472249148354,0.117402692475482,0.117344930052558,0.117312365902716,0.117312365902716, +0.142110276035792,0.142110276035792,0.142159070181579,0.142147885966666,0.142091396488961,0.142008985743516,0.141921954733933,0.141850433769938,0.141810272414547,0.141810272414547, +0.192034520953168,0.192034520953168,0.192072466909318,0.192036879260268,0.191946411805654,0.191825781058065,0.191702254030604,0.191601921603516,0.191545780268734,0.191545780268734, +0.268331725843772,0.268331725843772,0.268348856625754,0.26827215101429,0.268126384830678,0.267944373406789,0.267762288658876,0.267615357487977,0.267533065823811,0.267533065823811, +0.371507311317088,0.371507311317088,0.371489732557861,0.371350547008338,0.371123519672447,0.370852606568328,0.370585426132866,0.370369440420343,0.370247286382492,0.370247286382492, +0.500613959019127,0.500613959019127,0.500545462732252,0.500316610555625,0.499976591612034,0.499584308944998,0.499199751639363,0.49888443503301,0.498701095733723,0.498701095733723, +0.65251253539014,0.65251253539014,0.652381528066317,0.652025697081608,0.651533388891285,0.650983193760059,0.650443073949914,0.649984901244946,0.649700147339353,0.649700147339353, +0.821580482724923,0.821580482724923,0.821407540298666,0.82085587241606,0.8201613622399,0.819418158926726,0.818683169059062,0.818018236420962,0.817537661426158,0.817537661426158, + +00:35:47, +0.117636767970155,0.117636767970155,0.117689981674179,0.117690033276758,0.117649618007597,0.117585468130103,0.117515910231324,0.11745814619886,0.117425580992934,0.117425580992934, +0.117636767970155,0.117636767970155,0.117689981674179,0.117690033276758,0.117649618007597,0.117585468130103,0.117515910231324,0.11745814619886,0.117425580992934,0.117425580992934, +0.142226908123914,0.142226908123914,0.14227570875908,0.142264531467395,0.142208048847342,0.142125644354328,0.142038618527942,0.141967101298403,0.14192694191372,0.14192694191372, +0.192155847867998,0.192155847867998,0.192193793249014,0.192158214536402,0.192067762794323,0.191947151077534,0.191823642744204,0.191723325225518,0.191667192181082,0.191667192181082, +0.268455247746013,0.268455247746013,0.268472372376072,0.268395682484619,0.268249947965484,0.268067976562302,0.267885932048064,0.267739033467696,0.267656760117071,0.267656760117071, +0.371626275719976,0.371626275719976,0.371608691163682,0.371469535916832,0.37124256503388,0.370971721958052,0.370704611749489,0.370488683282674,0.370366561747466,0.370366561747466, +0.500718217510616,0.500718217510616,0.500649725008726,0.500420927566751,0.500080999123029,0.499688824769891,0.499304375321068,0.498989147633888,0.498805860003647,0.498805860003647, +0.65259063407899,0.65259063407899,0.6524596491595,0.652103908020485,0.651611732185239,0.65106168882703,0.650521719489982,0.650063674318035,0.649778998964822,0.649778998964822, +0.821622451391658,0.821622451391658,0.821449550549393,0.820898021321618,0.82020369008228,0.819460680918258,0.818725883799939,0.818061124544085,0.81758067294854,0.81758067294854, + +00:35:48, +0.117749981393165,0.117749981393165,0.117803206212893,0.117803264602704,0.117762852436297,0.117698702930799,0.117629143841112,0.117571378228105,0.11753881198243,0.11753881198243, +0.117749981393165,0.117749981393165,0.117803206212893,0.117803264602704,0.117762852436297,0.117698702930799,0.117629143841112,0.117571378228105,0.11753881198243,0.11753881198243, +0.142343545951789,0.142343545951789,0.142392353063832,0.142381182701646,0.142324706960101,0.142242308748978,0.142155288136758,0.14208377466711,0.142043617267405,0.142043617267405, +0.192277163207569,0.192277163207569,0.192315108013507,0.192279538246678,0.192189102233843,0.192068509568782,0.191945019950631,0.191844717357257,0.191788592612534,0.191788592612534, +0.268578738531431,0.268578738531431,0.26859585702264,0.268519182859814,0.268373480010832,0.268191548632274,0.268009544354344,0.267862678365969,0.267780423329423,0.267780423329423, +0.371745193453073,0.371745193453073,0.371727603120155,0.371588478175518,0.371361563730123,0.371090790658927,0.370823750651522,0.370607879408367,0.370485790362838,0.370485790362838, +0.500822423438717,0.500822423438717,0.50075393473845,0.500525192010363,0.500185354019651,0.49979328791985,0.499408946265396,0.499093807444707,0.49891057145238,0.49891057145238, +0.652668687160915,0.652668687160915,0.652537724645602,0.652182073300499,0.651690029735571,0.6511401380497,0.650600319084178,0.650142401358255,0.649857804503561,0.649857804503561, +0.821664393551716,0.821664393551716,0.821491534269317,0.820940143605729,0.820245991182606,0.819503176034855,0.818768571533012,0.818103985539799,0.817623657259006,0.817623657259006, + +00:35:49, +0.117863210550958,0.117863210550958,0.11791644646645,0.117916511647026,0.11787610260511,0.117811953504204,0.117742393258551,0.117684626093949,0.117652058824836,0.117652058824836, +0.117863210550958,0.117863210550958,0.11791644646645,0.117916511647026,0.11787610260511,0.117811953504204,0.117742393258551,0.117684626093949,0.117652058824836,0.117652058824836, +0.142460189486053,0.142460189486053,0.142509003062487,0.14249783963605,0.14244137079383,0.142358978894001,0.142271963526855,0.142200453842485,0.142160298442,0.142160298442, +0.192398466961785,0.192398466961785,0.192436411192699,0.19240085038097,0.192310430114042,0.192189856521581,0.192066385639597,0.191966097988398,0.191909981552729,0.191909981552729, +0.268702198218528,0.268702198218528,0.268719310583939,0.268642652158324,0.268496980985131,0.268315089635066,0.268133125596031,0.267986292201076,0.267904055479128,0.267904055479128, +0.371864064560909,0.371864064560909,0.371846468471772,0.371707373828866,0.37148051580563,0.371209812715389,0.370942842883394,0.370727028841842,0.370604972273023,0.370604972273023, +0.500926576862517,0.500926576862517,0.500858091980473,0.500629403945517,0.500289656360981,0.499897698453994,0.499513464531509,0.499198414524669,0.499015230139148,0.499015230139148, +0.652746694691593,0.652746694691593,0.652615754580291,0.652260192977369,0.651768281598085,0.651218541483981,0.650678872788522,0.65022108242172,0.649936564011743,0.649936564011743, +0.821706309238854,0.821706309238854,0.821533491492218,0.820982239302284,0.820288265574917,0.819545644310718,0.818811232292644,0.818146819442616,0.817666614392171,0.817666614392171, + +00:35:50, +0.117976455397436,0.117976455397436,0.118029702388775,0.118029774363637,0.11798936846791,0.117925219804139,0.117855658437404,0.11779788975011,0.11776532147384,0.11776532147384, +0.117976455397436,0.117976455397436,0.118029702388775,0.118029774363637,0.11798936846791,0.117925219804139,0.117855658437404,0.11779788975011,0.11776532147384,0.11776532147384, +0.142576838693393,0.142576838693393,0.142625658721744,0.142614502237291,0.142558040315167,0.142475654755978,0.142388644664755,0.142317138791002,0.14227698540395,0.14227698540395, +0.192519759120575,0.192519759120575,0.192557702776516,0.19252215092918,0.192431746424775,0.192311191925727,0.19218773980084,0.192087467108631,0.192031358991331,0.192031358991331, +0.268825626825792,0.268825626825792,0.268842733078435,0.268766090398583,0.268620450906776,0.268438599589027,0.268256675791429,0.268109874991283,0.268027656584434,0.268027656584434, +0.371982889087961,0.371982889087961,0.371965287262975,0.371826222921291,0.3715994213048,0.371328788171826,0.371061888489477,0.370846131627465,0.370724107522384,0.370724107522384, +0.501030677841021,0.501030677841021,0.500962196793763,0.500733563431182,0.500393906206018,0.500002056431363,0.49961793017849,0.499302968932891,0.499119836123091,0.499119836123091, +0.65282465672662,0.65282465672662,0.652693739019149,0.652338267106725,0.651846487828502,0.651296899185699,0.650757380658947,0.650299717564457,0.650015277545453,0.650015277545453, +0.821748198486772,0.821748198486772,0.821575422251823,0.82102430844512,0.820330513293197,0.819588085779995,0.818853866113145,0.818189626286992,0.817709544382599,0.817709544382599, + +00:35:51, +0.11808971588656,0.11808971588656,0.118142973933851,0.118143052706507,0.11810264997863,0.118038501784482,0.117968939331494,0.117911169150361,0.117878599883191,0.117878599883191, +0.11808971588656,0.11808971588656,0.118142973933851,0.118143052706507,0.11810264997863,0.118038501784482,0.117968939331494,0.117911169150361,0.117878599883191,0.117878599883191, +0.142693493540542,0.142693493540542,0.14274232000835,0.142731170472098,0.1426747154908,0.142592336301541,0.142505331517031,0.142433829479182,0.14239367811975,0.14239367811975, +0.192641039673891,0.192641039673891,0.192678982754909,0.19264343988123,0.192553051155919,0.19243251577104,0.192309082424121,0.192208824707671,0.192152724918027,0.192152724918027, +0.2689490243717,0.2689490243717,0.268966124524584,0.268889497599016,0.26874388979415,0.268562078512495,0.268380194958831,0.268233426754849,0.268151226663577,0.268151226663577, +0.372101667078654,0.372101667078654,0.372084059538151,0.371945025497159,0.371718280271979,0.371447717072569,0.371180887514093,0.370965187809549,0.370843196155232,0.370843196155232, +0.501134726433149,0.501134726433149,0.501066249237205,0.500837670526246,0.500498103613677,0.50010636191091,0.499722343265336,0.49940747072841,0.49922438946327,0.49922438946327, +0.652902573321507,0.652902573321507,0.652771678017671,0.652416295744114,0.651924648482457,0.651375211210594,0.650835842751301,0.650378306842407,0.650093945160693,0.650093945160693, +0.821790061329117,0.821790061329117,0.821617326581806,0.82106635106802,0.820372734371378,0.819630500476776,0.818896473028769,0.818232406107329,0.817752447264796,0.817752447264796, + +00:35:52, +0.118202991972349,0.118202991972349,0.118256261055719,0.118256346629668,0.118215947091262,0.118151799399172,0.118082235894701,0.118024464248538,0.117991894006697,0.117991894006697, +0.118202991972349,0.118202991972349,0.118256261055719,0.118256346629668,0.118215947091262,0.118151799399172,0.118082235894701,0.118024464248538,0.117991894006697,0.117991894006697, +0.142810153994282,0.142810153994282,0.142858986889102,0.142847844307249,0.142791396287466,0.142709023497366,0.142622024050299,0.142550525873595,0.142510376555944,0.142510376555944, +0.192762308611709,0.192762308611709,0.192800251117854,0.192764717227071,0.192674344297378,0.192553828047365,0.192430413499228,0.192330170775256,0.192274079322531,0.192274079322531, +0.269072390874718,0.269072390874718,0.269089484940828,0.269012873778036,0.268867297665624,0.268685526423794,0.268503683116516,0.268356947510018,0.268274765734784,0.268274765734784, +0.372220398577359,0.372220398577359,0.372202785341636,0.372063781600779,0.371837092751463,0.371566599461899,0.371299840001511,0.371084197432357,0.370962238215823,0.370962238215823, +0.501238722697741,0.501238722697741,0.501170249369603,0.500941725289515,0.500602248642792,0.500210614951511,0.499826703850964,0.49951191997018,0.499328890218662,0.499328890218662, +0.65298044453168,0.65298044453168,0.652849571631271,0.652494278944999,0.652002763615499,0.651453477614321,0.650914259121348,0.650456850311428,0.650172566913379,0.650172566913379, +0.821831897799483,0.821831897799483,0.821659204515787,0.821108367204714,0.820414928843334,0.819672888435101,0.818939053073716,0.818275158937975,0.817795323073215,0.817795323073215, + +00:35:53, +0.118316283608883,0.118316283608883,0.118369563708479,0.118369656087207,0.118329259759858,0.118265112602206,0.118195548080966,0.118137774998533,0.118105203798225,0.118105203798225, +0.118316283608883,0.118316283608883,0.118369563708479,0.118369656087207,0.118329259759858,0.118265112602206,0.118195548080966,0.118137774998533,0.118105203798225,0.118105203798225, +0.142926820021442,0.142926820021442,0.142975659330841,0.142964523709569,0.142908082671946,0.142825716310181,0.142738722231228,0.142667227940861,0.142627080679121,0.142627080679121, +0.192883565924031,0.192883565924031,0.192921507855349,0.192885982956674,0.192795625839078,0.192675128744572,0.192551733015972,0.192451505301152,0.19239542219458,0.19239542219458, +0.269195726353296,0.269195726353296,0.269212814345599,0.269136218954041,0.268990674539559,0.268808943341239,0.268627140282755,0.268480437275023,0.268398273816267,0.268398273816267, +0.372339083628396,0.372339083628396,0.372321464717712,0.372182491276411,0.371955858787492,0.371685435384044,0.371418745995947,0.371203160540096,0.371081233748365,0.371081233748365, +0.501342666693553,0.501342666693553,0.501274197249676,0.501045727779712,0.500706341352114,0.500314815611957,0.499931011994208,0.499616316717073,0.499433338448162,0.499433338448162, +0.65305827041248,0.65305827041248,0.652927419915278,0.652572216764757,0.652080833283094,0.651531698452453,0.650992629824765,0.65053534802729,0.650251142859342,0.650251142859342, +0.821873707931409,0.821873707931409,0.82170105608733,0.821150356888876,0.820457096742889,0.819715249688952,0.818981606282132,0.81831788481322,0.817838171842252,0.817838171842252, + +00:35:54, +0.118429590750298,0.118429590750298,0.118482881846291,0.118482981033271,0.118442587938526,0.118378441347639,0.118308875844287,0.118251101354298,0.118218529211699,0.118218529211699, +0.118429590750298,0.118429590750298,0.118482881846291,0.118482981033271,0.118442587938526,0.118378441347639,0.118308875844287,0.118251101354298,0.118218529211699,0.118218529211699, +0.1430434915889,0.1430434915889,0.143092337300459,0.143081208645932,0.143024774611072,0.14294241470676,0.142855426026532,0.142783935647645,0.142743790455921,0.142743790455921, +0.193004811600883,0.193004811600883,0.193042752957416,0.193007237060037,0.192916895770971,0.192796417852555,0.192673040964188,0.192572828275145,0.192516753523936,0.192516753523936, +0.269319030825876,0.269319030825876,0.269336112757316,0.26925953314542,0.269114020434301,0.268932329283131,0.268750566475804,0.268603896068087,0.26852175092623,0.26852175092623, +0.372457722276029,0.372457722276029,0.372440097710609,0.37230115456826,0.372074578424255,0.371804224883179,0.371537605541567,0.371322077176925,0.37120018279701,0.37120018279701, +0.50144655847926,0.50144655847926,0.501378092936064,0.50114967805548,0.500810381800312,0.500418963950956,0.50003526775382,0.49972066102788,0.499537734210585,0.499537734210585, +0.653136051019164,0.653136051019164,0.653005222924933,0.652650109258682,0.652158857540623,0.651609873780475,0.651070954917146,0.650613800045682,0.650329673054328,0.650329673054328, +0.821915491758383,0.821915491758383,0.821742881329949,0.821192320154129,0.820499238103809,0.81975758427226,0.819024132688107,0.818360583767304,0.81788099360625,0.81788099360625, + +00:35:55, +0.11854291335079,0.11854291335079,0.118596215423371,0.118596321422068,0.118555931581434,0.118491785589586,0.118422219138722,0.118364443269843,0.118331870201103,0.118331870201103, +0.11854291335079,0.11854291335079,0.118596215423371,0.118596321422068,0.118555931581434,0.118491785589586,0.118422219138722,0.118364443269843,0.118331870201103,0.118331870201103, +0.14316016866358,0.14316016866358,0.143209020764895,0.143197899083259,0.143141472071724,0.143059118653925,0.142972135402975,0.142900648960661,0.142860505853031,0.142860505853031, +0.193126045632312,0.193126045632312,0.193163986414104,0.193128479527181,0.193038154083033,0.192917695361232,0.192794337333736,0.192694139687049,0.192638073300385,0.192638073300385, +0.269442304310886,0.269442304310886,0.269459380194386,0.269382816370548,0.269237335368187,0.269055684267761,0.268873961713909,0.268727323907419,0.268645197082863,0.268645197082863, +0.372576314564474,0.372576314564474,0.372558684364503,0.372419771520479,0.372193251705888,0.371922968003426,0.37165641868248,0.371440947386946,0.37131908540586,0.37131908540586, +0.501550398113454,0.501550398113454,0.501481936487323,0.501253576175376,0.500914370045973,0.500523060027136,0.50013947118847,0.499824952961307,0.49964207756466,0.49964207756466, +0.653213786406905,0.653213786406905,0.653082980715397,0.652727956481981,0.652236836443383,0.651688003653789,0.651149234454001,0.650692206422205,0.650408157553998,0.650408157553998, +0.821957249313836,0.821957249313836,0.821784680277102,0.821234257034041,0.820541352959811,0.819799892218899,0.819066632325677,0.818403255834407,0.817923788399497,0.817923788399497, + +00:35:56, +0.118656251364614,0.118656251364614,0.118709564393996,0.11870967720786,0.11866929064281,0.118605145282219,0.118535577918386,0.118477800699237,0.118445226720481,0.118445226720481, +0.118656251364614,0.118656251364614,0.118709564393996,0.11870967720786,0.11866929064281,0.118605145282219,0.118535577918386,0.118477800699237,0.118445226720481,0.118445226720481, +0.143276851212456,0.143276851212456,0.143325709691134,0.143314594988519,0.143258175020828,0.143175828118546,0.143088850327367,0.143017367846672,0.142977226837187,0.142977226837187, +0.193247268008392,0.193247268008392,0.193285208215483,0.193249710348151,0.193159400765261,0.193038961260544,0.1929156221145,0.192815439526702,0.192759381513738,0.192759381513738, +0.269565546826742,0.269565546826742,0.269582616675203,0.26950606864779,0.26936061935954,0.269179008313406,0.268997326015304,0.268850720811218,0.268768612304345,0.268768612304345, +0.372694860537889,0.372694860537889,0.372677224723518,0.372538342177169,0.372311878676476,0.372041664788856,0.371775185462747,0.371559771214213,0.371437941618964,0.371437941618964, +0.501654185654646,0.501654185654646,0.501585727961927,0.50135742219788,0.501018306147603,0.500627103899042,0.500243622356747,0.499929192575981,0.499746368569038,0.499746368569038, +0.65329147663079,0.65329147663079,0.653160693341746,0.652805758489781,0.652314770046586,0.651766088127714,0.651227468490753,0.650770567212377,0.650486596413929,0.650486596413929, +0.821998980631149,0.821998980631149,0.821826452962194,0.821276167562125,0.820583441344553,0.81984217356269,0.819109105228826,0.81844590104866,0.817966556256225,0.817966556256225, + +00:35:57, +0.118769604746081,0.118769604746081,0.118822928712501,0.118823048344971,0.118782665076936,0.11871852037977,0.118648952137454,0.118591173596608,0.118558598723932,0.118558598723932, +0.118769604746081,0.118769604746081,0.118822928712501,0.118823048344971,0.118782665076936,0.11871852037977,0.118648952137454,0.118591173596608,0.118558598723932,0.118558598723932, +0.143393539202547,0.143393539202547,0.143442404046212,0.143431296328728,0.143374883425359,0.143292543067541,0.143205570766566,0.143134092272489,0.143093953375171,0.143093953375171, +0.19336847871922,0.19336847871922,0.193406418351649,0.193370929513014,0.193280635807681,0.193160215540458,0.193036895296388,0.192936727783964,0.192880678153831,0.192880678153831, +0.269688758391847,0.269688758391847,0.269705822218149,0.269629289995495,0.269483872426672,0.269302301438333,0.26912065939821,0.26897408679767,0.268891996608843,0.268891996608843, +0.372813360240383,0.372813360240383,0.372795718831727,0.372656866582378,0.37243045938005,0.372160315283487,0.371893905926375,0.371678548702725,0.371556751480318,0.371556751480318, +0.501757921161265,0.501757921161265,0.50168946741827,0.501461216181386,0.501122190163626,0.500731095625139,0.500347721317157,0.500033379930446,0.499850607282285,0.499850607282285, +0.653369121745825,0.653369121745825,0.65323836085897,0.652883515337122,0.652392658405361,0.651844127257482,0.651305657082744,0.650848882471631,0.650564989689614,0.650564989689614, +0.822040685743647,0.822040685743647,0.821868199418578,0.821318051771844,0.820625503291642,0.819884428337401,0.819151551431481,0.818488519444136,0.818009297210612,0.818009297210612, + +00:35:58, +0.118882973449564,0.118882973449564,0.118936308333277,0.118936434787782,0.118896054838159,0.118831910836529,0.11876234175016,0.118704561916142,0.118671986165618,0.118671986165618, +0.118882973449564,0.118882973449564,0.118936308333277,0.118936434787782,0.118896054838159,0.118831910836529,0.11876234175016,0.118704561916142,0.118671986165618,0.118671986165618, +0.143510232600922,0.143510232600922,0.143559103797208,0.14354800307095,0.143491597252338,0.143409263467875,0.14332229668748,0.143250822204969,0.143210685433813,0.143210685433813, +0.193489677754917,0.193489677754917,0.193527616812719,0.193492137011865,0.193401859200338,0.193281458190965,0.193158156869334,0.193058004448721,0.193001963210523,0.193001963210523, +0.269811939024594,0.269811939024594,0.269828996841595,0.269752480432004,0.269607094587881,0.269425563660796,0.269243961880837,0.269097421884952,0.269015350014514,0.269015350014514, +0.372931813716012,0.372931813716012,0.372914166733148,0.372775344780101,0.372548993860588,0.372278919531284,0.372012580117319,0.37179727989643,0.371675515033867,0.371675515033867, +0.501861604691657,0.501861604691657,0.501793154914663,0.501564958184209,0.501226022152384,0.500835035263808,0.500451768128126,0.500137515083165,0.49995479376289,0.49995479376289, +0.653446721806932,0.653446721806932,0.653315983321978,0.652961227078961,0.652470501574752,0.651922121098243,0.651383800285229,0.650927152255316,0.650643337436459,0.650643337436459, +0.822082364684604,0.822082364684604,0.821909919679552,0.821359909696603,0.820667538834633,0.819926656576745,0.819193970967516,0.818531111054855,0.818052011296783,0.818052011296783, + +00:35:59, +0.118996357429491,0.118996357429491,0.119049703210776,0.119049836490733,0.119009459880878,0.118945316606842,0.118875746710794,0.118817965612085,0.118785388999757,0.118785388999757, +0.118996357429491,0.118996357429491,0.119049703210776,0.119049836490733,0.119009459880878,0.118945316606842,0.118875746710794,0.118817965612085,0.118785388999757,0.118785388999757, +0.143626931374696,0.143626931374696,0.143675808911253,0.143664715182298,0.143608316468836,0.14352598928656,0.143439028057062,0.143367557611018,0.143327422979994,0.143327422979994, +0.193610865105628,0.193610865105628,0.193648803588837,0.19361333283482,0.193523070933305,0.193402689202078,0.193279406823294,0.193179269510883,0.193123236673698,0.193123236673698, +0.269935088743361,0.269935088743361,0.269952140563898,0.269875639975644,0.269730285861456,0.269548794999037,0.269367233481384,0.269220726091225,0.269138672539501,0.269138672539501, +0.373050221008777,0.373050221008777,0.373032568471748,0.372893776814282,0.372667482162017,0.372397477576161,0.372131208079482,0.371915964839225,0.371794232323505,0.371794232323505, +0.501965236304089,0.501965236304089,0.501896790509335,0.501668648264583,0.501329802172137,0.50093892287335,0.500555762847997,0.50024159809252,0.500058928069256,0.500058928069256, +0.653524276868946,0.653524276868946,0.653393560785593,0.653038893770172,0.65254829960972,0.652000069705063,0.651461898153381,0.651005376618698,0.650721639709789,0.650721639709789, +0.822124017487239,0.822124017487239,0.821951613778362,0.821401741369759,0.820709548007025,0.819968858314383,0.819236363870751,0.818573675914782,0.818094698548807,0.818094698548807, + +00:36:00, +0.11910975664035,0.11910975664035,0.119163113299508,0.119163253408321,0.119122880159554,0.119058737645118,0.118989166973707,0.118931384638738,0.118898807180625,0.118898807180625, +0.11910975664035,0.11910975664035,0.119163113299508,0.119163253408321,0.119122880159554,0.119058737645118,0.118989166973707,0.118931384638738,0.118898807180625,0.118898807180625, +0.143743635491032,0.143743635491032,0.143792519355522,0.143781432629929,0.143725041041969,0.143642720490659,0.143555764842315,0.143484298457589,0.143444165980639,0.143444165980639, +0.19373204076152,0.19373204076152,0.193769978670168,0.19373451697202,0.193644270996676,0.193523908563836,0.193400645148248,0.193300522960385,0.193244498533264,0.193244498533264, +0.270058207566515,0.270058207566515,0.270075253403405,0.269998768644729,0.269853446265671,0.269671995471286,0.269490474218038,0.269343999434643,0.269261964201938,0.269261964201938, +0.37316858216263,0.37316858216263,0.373150924091441,0.37301216272881,0.372785924328212,0.372515989461979,0.372249789856714,0.372034603574952,0.371912903393071,0.371912903393071, +0.502068816056743,0.502068816056743,0.502000374260436,0.501772286480658,0.501433530281065,0.501042758511985,0.500659705535033,0.500345629016811,0.500163010259706,0.500163010259706, +0.653601786986622,0.653601786986622,0.653471093304557,0.653116515465545,0.652626052565143,0.652077973132923,0.651539950742288,0.651083555616957,0.650799896564845,0.650799896564845, +0.822165644184719,0.822165644184719,0.821993281748202,0.821443546824612,0.820751530842263,0.820011033583919,0.819278730174954,0.818616214057829,0.8181373590007,0.8181373590007, + +00:36:01, +0.119223171036688,0.119223171036688,0.11927653855404,0.119276685495102,0.119236315628705,0.119172173905822,0.119102602493308,0.119044818950465,0.119012240662557,0.119012240662557, +0.119223171036688,0.119223171036688,0.11927653855404,0.119276685495102,0.119236315628705,0.119172173905822,0.119102602493308,0.119044818950465,0.119012240662557,0.119012240662557, +0.143860344917141,0.143860344917141,0.143909235097241,0.143898155381052,0.143841770938903,0.143759457047278,0.143672507010287,0.143601044711685,0.143560914402722,0.143560914402722, +0.193853204712786,0.193853204712786,0.193891142046903,0.193855689413627,0.19376545938057,0.193645116266302,0.193521871834201,0.193421764787185,0.193365748779154,0.193365748779154, +0.270181295512412,0.270181295512412,0.270198335378448,0.270121866457562,0.26997657581879,0.269795165095762,0.269613684108972,0.269467241933344,0.269385225019944,0.269385225019944, +0.373286897221467,0.373286897221467,0.373269233636089,0.373130502567526,0.372904320402995,0.372634455232548,0.372368325492814,0.372153196147405,0.372031528286356,0.372031528286356, +0.502172344007723,0.502172344007723,0.502103906226032,0.501875872890504,0.501537206537266,0.501146542237851,0.500763596247414,0.500449607914256,0.500267040392484,0.500267040392484, +0.653679252214631,0.653679252214631,0.653548580933527,0.653194092219787,0.652703760495813,0.652155831436723,0.651617958106955,0.65116168930519,0.650878108056781,0.650878108056781, +0.82220724481016,0.82220724481016,0.82203492362221,0.82148532609441,0.820793487373742,0.820053182418908,0.819321069913835,0.818658725517854,0.818179992686424,0.818179992686424, + +00:36:02, +0.119336600573109,0.119336600573109,0.119389978928999,0.119390132705691,0.119349766242908,0.119285625343475,0.119216053224062,0.119158268501684,0.119125689399949,0.119125689399949, +0.119336600573109,0.119336600573109,0.119389978928999,0.119390132705691,0.119349766242908,0.119285625343475,0.119216053224062,0.119158268501684,0.119125689399949,0.119125689399949, +0.14397705962028,0.14397705962028,0.144025956103679,0.144014883402919,0.143958506126848,0.143876198923574,0.143789254528075,0.143717796340353,0.143677668213265,0.143677668213265, +0.193974356949641,0.193974356949641,0.194012293709256,0.193976850149831,0.19388663607513,0.19376631229956,0.193643086871183,0.193542994981264,0.193486987401323,0.193486987401323, +0.270304352599393,0.270304352599393,0.270321386507348,0.270244933432434,0.270099674539064,0.269918303890671,0.26973686317235,0.269590453605456,0.269508455011629,0.269508455011629, +0.373405166229136,0.373405166229136,0.373387497149501,0.373248796374214,0.373022670430135,0.372752874931623,0.372486815031529,0.372271742600322,0.372150107047095,0.372150107047095, +0.502275820215051,0.502275820215051,0.50220738646411,0.501979407552111,0.501640830998757,0.501250274109004,0.500867435043241,0.500553534842994,0.50037101852575,0.50037101852575, +0.653756672607559,0.653756672607559,0.653626023727077,0.65327162408752,0.652781423456442,0.652233644671277,0.651695920302302,0.651239777738413,0.65095627424067,0.65095627424067, +0.822248819396622,0.822248819396622,0.822076539433474,0.821527079212349,0.820835417634801,0.820095304852848,0.819363383121055,0.818701210328661,0.818222599639884,0.818222599639884, + +00:36:03, +0.119450045204275,0.119450045204275,0.119503434379067,0.119503594994761,0.119463231956799,0.11939909191266,0.119329519120495,0.119271733246874,0.11923915334725,0.11923915334725, +0.119450045204275,0.119450045204275,0.119503434379067,0.119503594994761,0.119463231956799,0.11939909191266,0.119329519120495,0.119271733246874,0.11923915334725,0.11923915334725, +0.144093779567755,0.144093779567755,0.144142682342155,0.144131616662831,0.144075246573065,0.14399294608675,0.143906007362825,0.14383455331069,0.143794427379338,0.143794427379338, +0.194095497462324,0.194095497462324,0.194133433647462,0.194097999170841,0.194007801070522,0.193887496653721,0.193764290249245,0.193664213532629,0.193608214389752,0.193608214389752, +0.270427378845788,0.270427378845788,0.270444406808415,0.270367969587623,0.270222742444732,0.270041411874207,0.269860011426321,0.269713634469097,0.26963165419509,0.26963165419509, +0.373523389229428,0.373523389229428,0.373505714675435,0.373367044192608,0.373140974453351,0.372871248602911,0.372605258516554,0.372390242977392,0.372268639718974,0.372268639718974, +0.502379244736667,0.502379244736667,0.502310815032574,0.502082890523388,0.501744403723474,0.501353954183423,0.500971221980533,0.500657409861081,0.500474944717585,0.500474944717585, +0.653834048219911,0.653834048219911,0.653703421739699,0.653349111123286,0.652859041501657,0.652311412891316,0.651773837383169,0.651317820971554,0.6510343951715,0.6510343951715, +0.822290367977115,0.822290367977115,0.822118129215029,0.821568806211572,0.820877321658727,0.820137400919185,0.819405669830219,0.818743668523999,0.818265179894936,0.818265179894936, + +00:36:04, +0.119563504884907,0.119563504884907,0.119616904858988,0.119617072317041,0.119576712725069,0.119512573568016,0.119443000137189,0.119385213140573,0.119352632458973,0.119352632458973, +0.119563504884907,0.119563504884907,0.119616904858988,0.119617072317041,0.119576712725069,0.119512573568016,0.119443000137189,0.119385213140573,0.119352632458973,0.119352632458973, +0.144210504726917,0.144210504726917,0.144259413780035,0.144248355128137,0.144191992244861,0.144109698504055,0.144022765481727,0.143951315589839,0.143911191868057,0.143911191868057, +0.194216626241099,0.194216626241099,0.194254561851784,0.194219136466895,0.194128954356936,0.194008669318919,0.193885481958464,0.19378542043131,0.193729429734446,0.193729429734446, +0.270550374269916,0.270550374269916,0.270567396299945,0.270490974941394,0.27034577955402,0.270164489064553,0.269983128889026,0.26983678454237,0.269754822588413,0.269754822588413, +0.373641566266084,0.373641566266084,0.373623886257596,0.373485246066391,0.373259232516308,0.372989576290064,0.372723655991531,0.372508697322251,0.372387126345627,0.372387126345627, +0.50248261763043,0.50248261763043,0.502414191989249,0.502186321862161,0.501847924769272,0.501457582519,0.501074957117229,0.500761233026494,0.500578819025988,0.500578819025988, +0.653911379106109,0.653911379106109,0.653780775025802,0.653426553381542,0.652936614686002,0.65238913615149,0.651851709404309,0.65139581905946,0.651112470904178,0.651112470904178, +0.822331890584594,0.822331890584594,0.822159692999856,0.821610507125167,0.820919199478755,0.820179470651313,0.819447930074878,0.818786100137566,0.818307733485378,0.818307733485378, + +00:36:05, +0.119676979569783,0.119676979569783,0.119730390323561,0.119730564627321,0.11969020850247,0.119626070264242,0.119556496228788,0.119498708137374,0.119466126689686,0.119466126689686, +0.119676979569783,0.119676979569783,0.119730390323561,0.119730564627321,0.11969020850247,0.119626070264242,0.119556496228788,0.119498708137374,0.119466126689686,0.119466126689686, +0.144327235065165,0.144327235065165,0.144376150384732,0.144365098766232,0.144308743109588,0.144226456142788,0.144139528852021,0.144068083144993,0.144027961646587,0.144027961646587, +0.194337743276251,0.194337743276251,0.194375678312505,0.194340262028248,0.194250095924585,0.19412983028531,0.19400666198894,0.193906615667361,0.193850633425432,0.193850633425432, +0.270673338890082,0.270673338890082,0.270690355000222,0.270613949512002,0.270468785885143,0.270287535479878,0.270106215578591,0.269959903843367,0.269877960209671,0.269877960209671, +0.373759697382794,0.373759697382794,0.373742011939635,0.373603402039192,0.37337744466262,0.373107858036683,0.372842007500052,0.372627105678484,0.372505566970635,0.372505566970635, +0.502585938954119,0.502585938954119,0.502517517391879,0.502289701626177,0.501951394193927,0.501561159173552,0.501178640511185,0.500865004397128,0.500682641508878,0.500682641508878, +0.653988665320492,0.653988665320492,0.65385808363971,0.653503950916663,0.653014143063939,0.652466814506365,0.651929536420393,0.651473772056896,0.651190501493525,0.651190501493525, +0.822373387251964,0.822373387251964,0.822201230820886,0.821652181986172,0.820961051128065,0.820221514082571,0.819490163888532,0.818828505203003,0.818350260444957,0.818350260444957, + +00:36:06, +0.119790469213741,0.119790469213741,0.119843890727644,0.119844071880447,0.11980371924381,0.119739581956092,0.119670007349989,0.11961221819193,0.119579635994015,0.119579635994015, +0.119790469213741,0.119790469213741,0.119843890727644,0.119844071880447,0.11980371924381,0.119739581956092,0.119670007349989,0.11961221819193,0.119579635994015,0.119579635994015, +0.144443970549947,0.144443970549947,0.144492892123706,0.14448184754456,0.144425499134648,0.144343218970293,0.144256297440994,0.14418485594339,0.144144736682139,0.144144736682139, +0.194458848558091,0.194458848558091,0.194496783019933,0.194461375845184,0.194371225763707,0.194250979543076,0.194127830330798,0.19402779923086,0.193971825452763,0.193971825452763, +0.270796272724578,0.270796272724578,0.270813282927517,0.270736893317687,0.270591761456302,0.27041055113834,0.27022927151313,0.270082992390171,0.270001067076926,0.270001067076926, +0.373877782623194,0.373877782623194,0.373860091765155,0.373721512154589,0.373495610935848,0.373226093886317,0.372960313085655,0.372745468089624,0.372623961637529,0.372623961637529, +0.502689208765432,0.502689208765432,0.502620791298126,0.502393029873102,0.502054812055131,0.501664684204813,0.50128227222018,0.500968724030799,0.500786412224094,0.500786412224094, +0.654065906917314,0.654065906917314,0.653935347635668,0.653581303782941,0.653091626689847,0.652544448010422,0.652007318486012,0.651551680018541,0.65126848699428,0.65126848699428, +0.822414858012076,0.822414858012076,0.822242742710995,0.821693830827572,0.821002876639787,0.820263531246245,0.819532371304627,0.818870883753902,0.818392760807366,0.818392760807366, + +00:36:07, +0.119903973771674,0.119903973771674,0.119957406026155,0.119957594031324,0.119917244903958,0.119853108598381,0.11978353345555,0.119725743258954,0.119693160326645,0.119693160326645, +0.119903973771674,0.119903973771674,0.119957406026155,0.119957594031324,0.119917244903958,0.119853108598381,0.11978353345555,0.119725743258954,0.119693160326645,0.119693160326645, +0.144560711148756,0.144560711148756,0.144609638964463,0.144598601430609,0.14454226028749,0.144459986953962,0.144373071215979,0.144301633952315,0.144261516941973,0.144261516941973, +0.19457994207695,0.19457994207695,0.194617875964398,0.194582477908008,0.194492343864561,0.19437211708242,0.194248986974184,0.194148971111909,0.194093005806514,0.194093005806514, +0.270919175791685,0.270919175791685,0.270936180100091,0.270859806376678,0.270714706285689,0.270533536058086,0.270352296710747,0.270206050200849,0.270124143208229,0.270124143208229, +0.373995822030868,0.373995822030868,0.373978125777703,0.373839576456107,0.373613731379503,0.373344283882465,0.373078572791829,0.372863784599151,0.372742310389786,0.372742310389786, +0.502792427121987,0.502792427121987,0.502724013765572,0.502496306660522,0.5021581784105,0.501768157670436,0.50138585230191,0.501072391985239,0.500890131229393,0.500890131229393, +0.654143103950751,0.654143103950751,0.654012567067836,0.653658612034586,0.653169065618022,0.652622036718062,0.65208505565567,0.651629542998995,0.6513464274611,0.6513464274611, +0.82245630289773,0.82245630289773,0.822284228703008,0.821735453682299,0.821044676046995,0.820305522175571,0.819574552356554,0.818913235823798,0.818435234606242,0.818435234606242, + +00:36:08, +0.120017493198536,0.120017493198536,0.120070936174066,0.120071131034914,0.120030785437838,0.11996665014598,0.119897074500288,0.119839283293213,0.11980669964232,0.11980669964232, +0.120017493198536,0.120017493198536,0.120070936174066,0.120071131034914,0.120030785437838,0.11996665014598,0.119897074500288,0.119839283293213,0.11980669964232,0.11980669964232, +0.144677456829132,0.144677456829132,0.144726390874558,0.144715360391916,0.144659026535607,0.144576760061235,0.144489850144357,0.144418417139102,0.144378302393395,0.144378302393395, +0.194701023823185,0.194701023823185,0.194738957136254,0.194703568207047,0.194613450217432,0.194493242893571,0.19437013190927,0.194270131300633,0.194214174476786,0.194214174476786, +0.271042048109671,0.271042048109671,0.271059046536189,0.270982688707193,0.270837620391481,0.270656490257248,0.270475291189533,0.270329077293458,0.270247188621617,0.270247188621617, +0.374113815649348,0.374113815649348,0.374096114020777,0.37395759498722,0.373731806037042,0.37346242806857,0.373196786662009,0.372982055250494,0.372860613270833,0.372860613270833, +0.502895594081321,0.502895594081321,0.50282718485172,0.502599532045942,0.502261493317565,0.501871579627994,0.501489380813991,0.501176008318104,0.500993798582453,0.500993798582453, +0.654220256474894,0.654220256474894,0.654089741990293,0.653735875725726,0.653246459902677,0.652699580683603,0.65216274798379,0.651707361052771,0.651424322948556,0.651424322948556, +0.822497721941673,0.822497721941673,0.822325688829699,0.821777050583233,0.821086449382713,0.820347486903729,0.819616707077653,0.818955561446174,0.818477681875173,0.818477681875173, + +00:36:09, +0.120131027449336,0.120131027449336,0.12018448112641,0.120184682846237,0.120144340800432,0.12008020655382,0.120010630439075,0.119952838249536,0.11992025389584,0.11992025389584, +0.120131027449336,0.120131027449336,0.12018448112641,0.120184682846237,0.120144340800432,0.12008020655382,0.120010630439075,0.119952838249536,0.11992025389584,0.11992025389584, +0.144794207558664,0.144794207558664,0.14484314782159,0.144832124396065,0.144775797846543,0.144693538259598,0.144606634193556,0.144535205471131,0.144495093003758,0.144495093003758, +0.194822093787176,0.194822093787176,0.19486002652588,0.194824646732654,0.194734544812627,0.19461435696678,0.19449126512625,0.19439127978718,0.194335331453702,0.194335331453702, +0.271164889696793,0.271164889696793,0.271181882254046,0.271105540327435,0.270960503791843,0.27077941375395,0.270598254967566,0.270452073686044,0.270370203335118,0.270370203335118, +0.374231763522115,0.374231763522115,0.374214056537821,0.37407556779135,0.373849834951871,0.373580526488027,0.373314954739578,0.373100280087033,0.372978870324046,0.372978870324046, +0.50299870970089,0.50299870970089,0.502930304613991,0.502702706086787,0.502364756833779,0.501974950134982,0.501592857813959,0.501279573086968,0.50109741434087,0.50109741434087, +0.654297364543751,0.654297364543751,0.654166872457035,0.653813094910406,0.653323809597946,0.652777079961281,0.652240395524714,0.651785134234302,0.651502173511141,0.651502173511141, +0.8225391151766,0.8225391151766,0.822367123123787,0.821818621563201,0.821128196679912,0.820389425463848,0.819658835501211,0.81899786065446,0.81852010264769,0.81852010264769, + +00:36:10, +0.120244576479144,0.120244576479144,0.120298040838277,0.120298249420373,0.120257910946782,0.120193777776887,0.120124201226843,0.120066408082807,0.120033823042065,0.120033823042065, +0.120244576479144,0.120244576479144,0.120298040838277,0.120298249420373,0.120257910946782,0.120193777776887,0.120124201226843,0.120066408082807,0.120033823042065,0.120033823042065, +0.144910963304984,0.144910963304984,0.144959909773209,0.144948893410686,0.144892574187886,0.144810321516583,0.144723423331051,0.14465199891583,0.144611888740464,0.144611888740464, +0.194943151959325,0.194943151959325,0.194981084123674,0.194945713475204,0.194855627640476,0.194735459292322,0.194612386615344,0.194512416561724,0.194456476727408,0.194456476727408, +0.271287700571292,0.271287700571292,0.271304687271885,0.271228361255596,0.271083356504929,0.270902306566299,0.270721188062914,0.270575039396639,0.270493187366744,0.270493187366744, +0.374349665692597,0.374349665692597,0.374331953372227,0.374193494911866,0.373967818167345,0.373698579184179,0.373433077067871,0.373218459152094,0.373097081592749,0.373097081592749, +0.503101774038071,0.503101774038071,0.503033373109728,0.502805828840402,0.502467969016516,0.50207826924881,0.50169628335927,0.501383086349323,0.501200978562163,0.501200978562163, +0.65437442821125,0.65437442821125,0.654243958521978,0.653890269642588,0.653401114757876,0.652854534605248,0.652317998332699,0.651862862597938,0.651579979203261,0.651579979203261, +0.822580482635155,0.822580482635155,0.822408531617941,0.821860166654979,0.821169917971511,0.820431337889003,0.819700937660462,0.819040133482032,0.818562496957272,0.818562496957272, + +00:36:11, +0.120358140243085,0.120358140243085,0.120411615264813,0.120411830712456,0.120371495831985,0.120307363770228,0.120237786818582,0.12017999274797,0.120147407035912,0.120147407035912, +0.120358140243085,0.120358140243085,0.120411615264813,0.120411830712456,0.120371495831985,0.120307363770228,0.120237786818582,0.12017999274797,0.120147407035912,0.120147407035912, +0.145027724035775,0.145027724035775,0.145076676697108,0.145065667403457,0.145009355527273,0.144927109799772,0.144840217524365,0.144768797440673,0.14472868957096,0.14472868957096, +0.195064198330057,0.195064198330057,0.195102129920062,0.195066768425095,0.194976698691333,0.194856549860493,0.194733496366792,0.19463354161446,0.194577610288075,0.194577610288075, +0.2714104807514,0.2714104807514,0.271427461607915,0.271351151509856,0.271206178548879,0.271025168712394,0.27084409049363,0.270697974443264,0.2706161407345,0.2706161407345, +0.37446752220417,0.37446752220417,0.374449804567337,0.374311376392088,0.374085755726766,0.373816586200315,0.373551153690168,0.373336592488951,0.373215247120214,0.373215247120214, +0.50320478715016,0.50320478715016,0.50313639039619,0.502908900364051,0.502571129923069,0.502181537026813,0.501799657507301,0.501486548162585,0.501304491303768,0.501304491303768, +0.654451447531237,0.654451447531237,0.654321000238954,0.653967399976156,0.653478375436436,0.652931944669575,0.652395556461923,0.651940546197948,0.651657740079243,0.651657740079243, +0.822621824349929,0.822621824349929,0.822449914344779,0.821901685891291,0.821211613290376,0.820473224212219,0.819743013588586,0.819082379962216,0.818604864837346,0.818604864837346, + +00:36:12, +0.120471718696342,0.120471718696342,0.120525204361224,0.12052542667768,0.120485095411199,0.120420964488945,0.120351387169339,0.120293592200026,0.120261005832355,0.120261005832355, +0.120471718696342,0.120471718696342,0.120525204361224,0.12052542667768,0.120485095411199,0.120420964488945,0.120351387169339,0.120293592200026,0.120261005832355,0.120261005832355, +0.145144489718765,0.145144489718765,0.145193448561028,0.145182446342101,0.145126141832385,0.14504390307679,0.144957016741066,0.144885601013182,0.14484549546274,0.14484549546274, +0.195185232889823,0.195185232889823,0.195223163905489,0.195187811572747,0.195097757955574,0.194977628661617,0.19485459437086,0.194754654935609,0.194698732125898,0.194698732125898, +0.271533230255335,0.271533230255335,0.271550205280333,0.271473911108382,0.271328969941822,0.271148000210319,0.270966962277758,0.27082087884393,0.270739063456376,0.270739063456376, +0.374585333100159,0.374585333100159,0.374567610166439,0.37442921227528,0.374203647673385,0.373934547579674,0.373669184649697,0.373454680140828,0.373333366949663,0.373333366949663, +0.503307749094373,0.503307749094373,0.503239356530561,0.503011920714921,0.50267423961065,0.502284753526245,0.501902980315347,0.501589958584087,0.501407952623043,0.501407952623043, +0.654528422557475,0.654528422557475,0.654397997661714,0.654044485964908,0.653555591687511,0.653009310208251,0.652473069966478,0.652018185088516,0.651735456193331,0.651735456193331, +0.822663140353462,0.822663140353462,0.822491271336865,0.821943179304807,0.82125328266932,0.820515084466466,0.819785063318712,0.819124600128281,0.818647206321285,0.818647206321285, + +00:36:13, +0.120585311794159,0.120585311794159,0.120638808082773,0.120639037271297,0.120598709639637,0.1205345798882,0.120465002234218,0.120407206394032,0.120374619386428,0.120374619386428, +0.120585311794159,0.120585311794159,0.120638808082773,0.120639037271297,0.120598709639637,0.1205345798882,0.120465002234218,0.120407206394032,0.120374619386428,0.120374619386428, +0.145261260321727,0.145261260321727,0.145310225332758,0.145299230194389,0.145242933070953,0.145160701315312,0.14507382094877,0.145002409600925,0.144962306383348,0.144962306383348, +0.195306255629093,0.195306255629093,0.195344186070425,0.195308842908606,0.1952188054236,0.195098695686037,0.194975680617836,0.194875756515412,0.194819842231094,0.194819842231094, +0.271655949101303,0.271655949101303,0.271672918307324,0.271596640069328,0.271451730701875,0.271270801078147,0.271089803433329,0.270943752616632,0.270861955550351,0.270861955550351, +0.374703098423837,0.374703098423837,0.374685370212772,0.374547002604658,0.374321494050402,0.374052463365445,0.373787169989639,0.373572722150897,0.373451441124264,0.373451441124264, +0.503410659927848,0.503410659927848,0.503342271569942,0.503114889950115,0.502777298136392,0.502387918804277,0.502006251840626,0.501693317671084,0.501511362577265,0.501511362577265, +0.654605353343647,0.654605353343647,0.654474950843927,0.654121527662563,0.653632763564906,0.653086631275185,0.652550538900378,0.652095779323746,0.651813127599684,0.651813127599684, +0.822704430678242,0.822704430678242,0.822532602626713,0.821984646928149,0.821294926141107,0.820556918684663,0.819827086883916,0.819166794013448,0.818689521442408,0.818689521442408, + +00:36:14, +0.120698919491832,0.120698919491832,0.12075242638478,0.120752662448616,0.120712338472571,0.120648209923211,0.120578631968384,0.120520835285107,0.120488247653221,0.120488247653221, +0.120698919491832,0.120698919491832,0.12075242638478,0.120752662448616,0.120712338472571,0.120648209923211,0.120578631968384,0.120520835285107,0.120488247653221,0.120488247653221, +0.145378035812483,0.145378035812483,0.145427006980131,0.145416018928139,0.145359729210752,0.145277504483059,0.145190630115141,0.145119223171518,0.145079122300371,0.145079122300371, +0.195427266538363,0.195427266538363,0.195465196405364,0.195429862423138,0.195339841085834,0.195219750924122,0.195096755098032,0.194996846344136,0.194940940593904,0.194940940593904, +0.271778637307497,0.271778637307497,0.27179560070706,0.271719338410837,0.271574460847141,0.271393571333939,0.27121261397836,0.271066595779356,0.27098481703439,0.27098481703439, +0.374820818218425,0.374820818218425,0.37480308474952,0.374664747423386,0.374439294900964,0.374170333600763,0.373905109753118,0.37369071856228,0.373569469687137,0.373569469687137, +0.503513519707641,0.503513519707641,0.503445135571355,0.50321780812666,0.50288030555735,0.502491032918005,0.502109472140273,0.501796625480749,0.501614721223633,0.501614721223633, +0.654682239943354,0.654682239943354,0.654551859839183,0.654198525122757,0.653709891122344,0.6531639079242,0.652627963317552,0.65217332895766,0.651890754352384,0.651890754352384, +0.822745695356706,0.822745695356706,0.822573908246785,0.822026088793883,0.821336543738445,0.820598726899677,0.819869084317221,0.81920896165088,0.818731810233985,0.818731810233985, + +00:36:15, +0.120812541744719,0.120812541744719,0.120866059222623,0.120866302165002,0.120825981865329,0.120761854549254,0.120692276327055,0.120634478828424,0.120601890587882,0.120601890587882, +0.120812541744719,0.120812541744719,0.120866059222623,0.120866302165002,0.120825981865329,0.120761854549254,0.120692276327055,0.120634478828424,0.120601890587882,0.120601890587882, +0.145494816158902,0.145494816158902,0.14554379347103,0.145532812511214,0.145476530219605,0.145394312547797,0.145307444207887,0.145236041692623,0.145195943181446,0.145195943181446, +0.195548265608149,0.195548265608149,0.19558619490082,0.195550870106834,0.195460864932721,0.195340794366261,0.195217817801783,0.195117924412071,0.195062027204593,0.195062027204593, +0.271901294892097,0.271901294892097,0.2719182524977,0.271842006151037,0.271697160395711,0.271516310995744,0.271335393930859,0.271189408350076,0.27110764792645,0.27110764792645, +0.374938492527091,0.374938492527091,0.374920753819818,0.374782446774573,0.374557050268167,0.374288158328712,0.374023003983212,0.373808669418045,0.373687452681348,0.373687452681348, +0.50361632849073,0.50361632849073,0.503547948591743,0.503320675301502,0.502983261930497,0.502594095924442,0.502212641271347,0.501899882070179,0.501718028619265,0.501718028619265, +0.654759082410114,0.654759082410114,0.654628724700988,0.654275478399046,0.653786974413464,0.653241140209043,0.65270534327185,0.652250834044198,0.651968336505428,0.651968336505428, +0.822786934421238,0.822786934421238,0.822615188229491,0.822067504934527,0.821378135493995,0.820640509144322,0.819911055651599,0.819251103073693,0.818774072729228,0.818774072729228, + +00:36:16, +0.120926178508235,0.120926178508235,0.120979706551738,0.12097995637588,0.120939639773299,0.120875513721663,0.12080593526551,0.120748136979215,0.120715548145618,0.120715548145618, +0.120926178508235,0.120926178508235,0.120979706551738,0.12097995637588,0.120939639773299,0.120875513721663,0.12080593526551,0.120748136979215,0.120715548145618,0.120715548145618, +0.145611601328897,0.145611601328897,0.14566058477338,0.145649610911525,0.145593336065382,0.14551112547734,0.145424263194765,0.145352865131948,0.145312768994255,0.145312768994255, +0.195669252828993,0.195669252828993,0.195707181547332,0.195671865950207,0.195581876954731,0.195461826002869,0.195338868719447,0.19523899070953,0.195183102053447,0.195183102053447, +0.272023921873272,0.272023921873272,0.272040873697392,0.271964643308048,0.271819829365666,0.271639020081596,0.271458143308819,0.271312190346751,0.271230448244473,0.271230448244473, +0.375056121392955,0.375056121392955,0.375038377466748,0.374900100701281,0.374674760195056,0.374405937592325,0.374140852722943,0.373926574761212,0.373805390149915,0.373805390149915, +0.503719086334012,0.503719086334012,0.50365071068797,0.503423491531508,0.503086167312729,0.502697107880524,0.502315759290825,0.502003087496389,0.5018212848212,0.5018212848212, +0.654835880797366,0.654835880797366,0.654705545482768,0.654352387544905,0.653864013491828,0.653318328183375,0.65278267881704,0.652328294637219,0.652045874112731,0.652045874112731, +0.822828147904174,0.822828147904174,0.82265644260719,0.822108895382545,0.821419701440362,0.820682265451362,0.81995300091997,0.819293218314946,0.818816308961302,0.818816308961302, + +00:36:17, +0.12103982973785,0.12103982973785,0.121093368327617,0.121093625036732,0.121053312151924,0.12098918739583,0.120919608739085,0.12086180969277,0.120829220281692,0.120829220281692, +0.12103982973785,0.12103982973785,0.121093368327617,0.121093625036732,0.121053312151924,0.12098918739583,0.120919608739085,0.12086180969277,0.120829220281692,0.120829220281692, +0.145728391290429,0.145728391290429,0.145777380855158,0.145766414097028,0.145710146715998,0.145627943239549,0.145541087043578,0.145469693457251,0.145429599706527,0.145429599706527, +0.195790228191458,0.195790228191458,0.195828156335461,0.195792849943792,0.195702877142356,0.195582845824382,0.195459907841404,0.195360045226849,0.195304165130779,0.195304165130779, +0.272146518269178,0.272146518269178,0.27216346432427,0.272087249899972,0.271942467775072,0.271761698609521,0.271580862130223,0.271434941787331,0.27135321800639,0.27135321800639, +0.375173704859081,0.375173704859081,0.37515595573334,0.375017709246517,0.374792424724625,0.374523671434585,0.374258656015285,0.374044434634747,0.373923282135801,0.373923282135801, +0.503821793294305,0.503821793294305,0.503753421916818,0.503526256873464,0.503189021760861,0.502800068843107,0.502418826255606,0.502106241816316,0.501924489886399,0.501924489886399, +0.654912635158469,0.654912635158469,0.654782322237868,0.654429252613726,0.653941008410914,0.653395471900777,0.652859970006806,0.652405710790498,0.652123367228129,0.652123367228129, +0.822869335837794,0.822869335837794,0.822697671412191,0.82215026017035,0.821461241610101,0.820723995853507,0.819994920155199,0.819335307407649,0.818858518963316,0.818858518963316, + +00:36:18, +0.121153495389094,0.121153495389094,0.12120704450581,0.121207308103095,0.121166998956706,0.121102875527204,0.121033296703172,0.120975496924436,0.120942906951425,0.120942906951425, +0.121153495389094,0.121153495389094,0.12120704450581,0.121207308103095,0.121166998956706,0.121102875527204,0.121033296703172,0.120975496924436,0.120942906951425,0.120942906951425, +0.145845186011506,0.145845186011506,0.145894181684382,0.145883222035728,0.145826962139416,0.145744765802331,0.145657915722176,0.145586526636332,0.145546435286038,0.145546435286038, +0.195911191686131,0.195911191686131,0.19594911925579,0.195913822078149,0.19582386548611,0.195703853821262,0.19558093515806,0.195481087954387,0.195425216426922,0.195425216426922, +0.272269084097956,0.272269084097956,0.272286024396456,0.272209825944903,0.272065075641982,0.271884346597529,0.271703550413039,0.271557662689754,0.271475957230119,0.271475957230119, +0.375291242968484,0.375291242968484,0.375273488662575,0.37513527245324,0.374910043899816,0.374641359898423,0.37437641390316,0.374162249081567,0.374041128681921,0.374041128681921, +0.503924449428349,0.503924449428349,0.503856082334994,0.50362897138408,0.503291825331629,0.502902978868966,0.50252184222251,0.502209345086817,0.502027643871742,0.502027643871742, +0.654989345546698,0.654989345546698,0.654859055019552,0.654506073658823,0.65401795922412,0.653472571414752,0.652937216894755,0.652483082557733,0.652200815905374,0.652200815905374, +0.822910498254332,0.822910498254332,0.822738874676749,0.822191599330306,0.821502756035715,0.820765700383417,0.820036813390102,0.819377370384758,0.818900702768327,0.818900702768327, + +00:36:19, +0.121267175417553,0.121267175417553,0.121320735041926,0.121321005530567,0.121280700143204,0.12121657807129,0.121146999113223,0.121089198629617,0.121056608110196,0.121056608110196, +0.121267175417553,0.121267175417553,0.121320735041926,0.121321005530567,0.121280700143204,0.12121657807129,0.121146999113223,0.121089198629617,0.121056608110196,0.121056608110196, +0.145961985460181,0.145961985460181,0.146010987229119,0.146000034695673,0.145943782303644,0.145861593133639,0.145774749198454,0.145703364637042,0.14566327570061,0.14566327570061, +0.196032143303619,0.196032143303619,0.196070070298928,0.196034782343858,0.195944841976531,0.195824849983989,0.195701950659842,0.195602118882527,0.195546255932233,0.195546255932233, +0.272391619377739,0.272391619377739,0.272408553932059,0.27233237146092,0.272187652984439,0.272006964063619,0.271826208175227,0.271680353071943,0.271598665933567,0.271598665933567, +0.375408735764127,0.375408735764127,0.37539097629738,0.375252790364353,0.375027617763519,0.374759003026716,0.374494126429437,0.374280018144537,0.374158929831139,0.374158929831139, +0.504027054792805,0.504027054792805,0.503958691999123,0.503731635119985,0.50339457808169,0.5030058380148,0.502624807248278,0.50231239736467,0.502130746834031,0.502130746834031, +0.655066012015249,0.655066012015249,0.654935743881004,0.654582850733427,0.654094865984764,0.653549626778717,0.653014419534409,0.652560409992537,0.652278220198139,0.652278220198139, +0.822951635185968,0.822951635185968,0.82278005243307,0.822232912894722,0.821544244749658,0.820807379073698,0.820078680657442,0.819419407279177,0.81894286040934,0.81894286040934, + +00:36:20, +0.121380869778871,0.121380869778871,0.121434439891628,0.1214347172748,0.121394415667034,0.121330294983652,0.121260715924746,0.121202914763777,0.121170323713441,0.121170323713441, +0.121380869778871,0.121380869778871,0.121434439891628,0.1214347172748,0.121394415667034,0.121330294983652,0.121260715924746,0.121202914763777,0.121170323713441,0.121170323713441, +0.146078789604554,0.146078789604554,0.146127797457484,0.146116852044959,0.146060607176737,0.145978425201474,0.145891587440355,0.145820207427275,0.145780120918114,0.145780120918114, +0.196153083034554,0.196153083034554,0.196191009455502,0.196155730731524,0.196065806604179,0.195945834303071,0.195822954337199,0.195723138001673,0.195667283637094,0.195667283637094, +0.272514124126642,0.272514124126642,0.272531052949177,0.27245488646609,0.272310199820473,0.272129551025779,0.271948835434731,0.271803012951811,0.27172134413463,0.27172134413463, +0.375526183288923,0.375526183288923,0.375508418680632,0.375370263022712,0.375145146358573,0.374876600862294,0.374611793636938,0.374397741866472,0.374276685626264,0.374276685626264, +0.504129609444253,0.504129609444253,0.504061250965752,0.50383424813773,0.503497280067624,0.503108646337227,0.502727721389572,0.502415398706577,0.502233798829988,0.502233798829988, +0.655142634617238,0.655142634617238,0.655012388875327,0.65465958389069,0.654171728746081,0.653626638046013,0.653091577979213,0.652637693148445,0.652355580160015,0.652355580160015, +0.82299274666483,0.82299274666483,0.822821204713309,0.822274200895859,0.821585707784328,0.820849031956906,0.82012052198993,0.819461418123759,0.818984991919309,0.818984991919309, + +00:36:21, +0.121494578428749,0.121494578428749,0.12154815901064,0.121548443291505,0.12150814548387,0.121444026219912,0.121374447093305,0.121316645282434,0.121284053716655,0.121284053716655, +0.121494578428749,0.121494578428749,0.12154815901064,0.121548443291505,0.12150814548387,0.121444026219912,0.121374447093305,0.121316645282434,0.121284053716655,0.121284053716655, +0.146195598412771,0.146195598412771,0.146244612337633,0.14623367405173,0.146177436726797,0.14609526197388,0.146008430415867,0.145937054974974,0.145896970906464,0.145896970906464, +0.196274010869591,0.196274010869591,0.196311936716165,0.196276667231773,0.196186759359638,0.196066806769034,0.195943946180606,0.195844145302255,0.195788299531907,0.195788299531907, +0.272636598362772,0.272636598362772,0.272653521465893,0.272577370978468,0.272432716168099,0.272252107501983,0.272071432209485,0.27192564234726,0.271843991851189,0.271843991851189, +0.37564358558573,0.37564358558573,0.375625815855155,0.37548769047112,0.375262629727768,0.374994153447933,0.374729415568429,0.374515420290134,0.37439439611006,0.37439439611006, +0.504232113439195,0.504232113439195,0.504163759291349,0.503936810493785,0.50359993134593,0.503211403892787,0.502830584702973,0.502518349169156,0.502336799916259,0.502336799916259, +0.655219213405699,0.655219213405699,0.655088990055543,0.654736273183682,0.654248547561228,0.653703605269898,0.653168692282527,0.652714932078909,0.652432895844511,0.652432895844511, +0.823033832722998,0.823033832722998,0.82286233154957,0.822315463365925,0.821627145172077,0.820890659065546,0.820162337420226,0.819503402951304,0.819027097331135,0.819027097331135, + +00:36:22, +0.121608301322944,0.121608301322944,0.121661892354741,0.12166218353645,0.121621889549442,0.121557771735747,0.121488192574524,0.121430390141165,0.121397798075388,0.121397798075388, +0.121608301322944,0.121608301322944,0.121661892354741,0.12166218353645,0.121621889549442,0.121557771735747,0.121488192574524,0.121430390141165,0.121397798075388,0.121397798075388, +0.146312411853025,0.146312411853025,0.146361431837774,0.146350500684172,0.146294270921971,0.146212103418952,0.146125278093027,0.146053907248127,0.146013825633623,0.146013825633623, +0.196394926799406,0.196394926799406,0.196432852071591,0.196397591835255,0.196307700233512,0.196187767372431,0.196064926180557,0.195965140774724,0.195909303607099,0.195909303607099, +0.27275904210422,0.27275904210422,0.272775959500279,0.272699825016096,0.272555202045324,0.272374633510193,0.27219399851741,0.272048241276177,0.271966609101115,0.271966609101115, +0.375760942697358,0.375760942697358,0.375743167863724,0.375605072752329,0.37538006791384,0.37511166082636,0.37484699226663,0.374633053458235,0.374512061325236,0.374512061325236, +0.504334566834054,0.504334566834054,0.504266217032303,0.504039322244544,0.503702531973028,0.503314110737942,0.502933397244988,0.502621248808951,0.502439750149409,0.502439750149409, +0.655295748433588,0.655295748433588,0.655165547474596,0.654812918665393,0.65432532248328,0.653780528503548,0.653245762497635,0.652792126837301,0.652510167305057,0.652510167305057, +0.8230748933925,0.8230748933925,0.822903432973905,0.822356700337079,0.821668556945202,0.82093226043207,0.820204126980939,0.819545361794561,0.819069176677667,0.819069176677667, + +00:36:23, +0.121722038417273,0.121722038417273,0.121775639879766,0.121775937965461,0.121735647819539,0.121671531486893,0.121601952324082,0.121544149295604,0.121511556745249,0.121511556745249, +0.121722038417273,0.121722038417273,0.121775639879766,0.121775937965461,0.121735647819539,0.121671531486893,0.121601952324082,0.121544149295604,0.121511556745249,0.121511556745249, +0.146429229893553,0.146429229893553,0.146478255926158,0.146467331910521,0.146411109730453,0.146328949504827,0.146242130439916,0.146170764214769,0.146130685067599,0.146130685067599, +0.196515830814698,0.196515830814698,0.196553755512477,0.196518504532642,0.196428629216431,0.196308716103835,0.196185894327573,0.196086124409554,0.196030295853119,0.196030295853119, +0.272881455369067,0.272881455369067,0.272898367070393,0.272822248597003,0.272677657470138,0.272497129068359,0.272316534376413,0.272170809756438,0.272089195902266,0.272089195902266, +0.375878254666565,0.375878254666565,0.375860474749062,0.375722409909039,0.375497460959475,0.37522912304025,0.374964523774206,0.374750641413438,0.374629681314451,0.374629681314451, +0.504436969685177,0.504436969685177,0.504368624244925,0.504141783446321,0.503805082005262,0.503416766929074,0.503036159072041,0.502724097682425,0.502542649585924,0.502542649585924, +0.65537223975378,0.65537223975378,0.655242061185347,0.654889520388736,0.654402053565234,0.653857407800063,0.653322788677737,0.652869277476912,0.652587394595001,0.652587394595001, +0.823115928705312,0.823115928705312,0.822944509018317,0.822397911841427,0.82170994313595,0.820973836088882,0.820245890704624,0.819587294686226,0.819111229991702,0.819111229991702, + +00:36:24, +0.121835789667607,0.121835789667607,0.12188940154161,0.121889706534418,0.121849420250006,0.121785305429143,0.121715726297718,0.121657922701444,0.121625329681903,0.121625329681903, +0.121835789667607,0.121835789667607,0.12188940154161,0.121889706534418,0.121849420250006,0.121785305429143,0.121715726297718,0.121657922701444,0.121625329681903,0.121625329681903, +0.14654605250264,0.14654605250264,0.146595084571081,0.146584167699057,0.146527953120482,0.14644580019969,0.146358987424662,0.146287625842981,0.146247549176447,0.146247549176447, +0.196636722906188,0.196636722906188,0.196674647029542,0.196639405314627,0.196549546299045,0.196429652953843,0.196306850612193,0.196207096197241,0.19615127626044,0.19615127626044, +0.273003838175379,0.273003838175379,0.273020744194282,0.272944641739206,0.272800082460521,0.272619594194417,0.272439039804392,0.272293347805908,0.27221175227249,0.27221175227249, +0.375995521536056,0.375995521536056,0.37597773655384,0.375839701983899,0.375614808907308,0.375346540132226,0.375082010133773,0.374868184198353,0.374747256120314,0.374747256120314, +0.504539322048829,0.504539322048829,0.504470980985448,0.504244194155353,0.503907581498895,0.503519372522488,0.503138870240481,0.502826895845964,0.502645498282214,0.502645498282214, +0.655448687419068,0.655448687419068,0.65531853124058,0.654966078406539,0.654478740860003,0.653934243212458,0.653399770875954,0.652946384050955,0.652664577767612,0.652664577767612, +0.823156938693363,0.823156938693363,0.822985559714758,0.822439097911025,0.821751303776518,0.82101538606833,0.820287628623786,0.819629201658946,0.819153257305986,0.819153257305986, + +00:36:25, +0.121949555029877,0.121949555029877,0.122003177296223,0.122003489199262,0.121963206796744,0.121899093518347,0.121829514451224,0.121771710314432,0.121739116841074,0.121739116841074, +0.121949555029877,0.121949555029877,0.122003177296223,0.122003489199262,0.121963206796744,0.121899093518347,0.121829514451224,0.121771710314432,0.121739116841074,0.121739116841074, +0.146662879648617,0.146662879648617,0.146711917740888,0.146701008018107,0.146644801060345,0.146562655471773,0.146475849015439,0.146404492100891,0.146364417928268,0.146364417928268, +0.196757603064621,0.196757603064621,0.196795526613527,0.196760294171928,0.196670451472027,0.196550577913074,0.196427795024983,0.196328056128307,0.196272244819556,0.196272244819556, +0.273126190541211,0.273126190541211,0.273143090889979,0.273067004460709,0.27292247703444,0.272742028906293,0.272561514819231,0.272415855442438,0.272334278229619,0.272334278229619, +0.376112743348488,0.376112743348488,0.376094953320678,0.375956949019508,0.375732111799923,0.375463912144862,0.375199451387897,0.374985681855539,0.374864785785384,0.374864785785384, +0.504641623981197,0.504641623981197,0.504573287310025,0.504346554427797,0.504010030510114,0.50362192757441,0.503241530806575,0.502929643355873,0.502748296294608,0.502748296294608, +0.655525091482167,0.655525091482167,0.655394957692996,0.655042592771554,0.654555384420424,0.654011034793671,0.653476709145326,0.653023446612559,0.652741716876078,0.652741716876078, +0.823197923388527,0.823197923388527,0.823026585095129,0.82248025857788,0.821792638899051,0.821056910402715,0.82032934077088,0.819671082745313,0.819195258653212,0.819195258653212, + +00:36:26, +0.122063334460068,0.122063334460068,0.122116967099612,0.122117285915989,0.122077007415713,0.12201289571041,0.121943316740454,0.121885512090375,0.121852918178541,0.121852918178541, +0.122063334460068,0.122063334460068,0.122116967099612,0.122117285915989,0.122077007415713,0.12201289571041,0.121943316740454,0.121885512090375,0.121852918178541,0.121852918178541, +0.14677971129986,0.14677971129986,0.146828755403968,0.146817852836042,0.146761653518373,0.146679515289353,0.146592715180466,0.146521362956671,0.146481291291211,0.146481291291211, +0.196878471280762,0.196878471280762,0.196916394255198,0.196881171095283,0.196791344726073,0.196671490972169,0.19654872755653,0.196449004193293,0.196393201520986,0.196393201520986, +0.273248512484604,0.273248512484604,0.273265407175505,0.273189336779503,0.273044841209849,0.2728644332219,0.272683959438802,0.272538332683868,0.272456773791475,0.272456773791475, +0.376229920146464,0.376229920146464,0.376212125092146,0.376074151058414,0.375849369679853,0.37558123912068,0.375316847579091,0.375103134427506,0.374982270352166,0.374982270352166, +0.504743875538393,0.504743875538393,0.504675543274733,0.504448864319732,0.504112429095026,0.503724432140987,0.503344140826516,0.503032340268383,0.50285104367936,0.50285104367936, +0.655601451995714,0.655601451995714,0.655471340595219,0.655119063536451,0.654631984299252,0.654087782596559,0.653553603538815,0.653100465214775,0.652818811973506,0.652818811973506, +0.823238882822632,0.823238882822632,0.82306758519128,0.822521393873945,0.821833948535644,0.821098409124285,0.820371027178308,0.819712937977871,0.819237234066022,0.819237234066022, + +00:36:27, +0.122177127914224,0.122177127914224,0.122230770907843,0.122231096640651,0.122190822062929,0.122126711961298,0.122057133121315,0.121999327985136,0.121966733650142,0.121966733650142, +0.122177127914224,0.122177127914224,0.122230770907843,0.122231096640651,0.122190822062929,0.122126711961298,0.122057133121315,0.121999327985136,0.121966733650142,0.121966733650142, +0.146896547424791,0.146896547424791,0.146945597528756,0.146934702121282,0.146878510462944,0.146796379620752,0.146709585888011,0.146638238378543,0.146598169233468,0.146598169233468, +0.196999327545401,0.196999327545401,0.197037249945339,0.197002036075453,0.196912226051901,0.196792392121792,0.196669648197442,0.196569940382764,0.19651414635527,0.19651414635527, +0.273370804023588,0.273370804023588,0.273387693068868,0.273311638713568,0.27316717500469,0.272986807159136,0.272806373680963,0.272660779548026,0.27257923897587,0.27257923897587, +0.376347051972536,0.376347051972536,0.376329251910762,0.376191308143113,0.37596658258958,0.375698521102151,0.375434198749818,0.375220541956713,0.375099709863119,0.375099709863119, +0.504846076776446,0.504846076776446,0.504777748935569,0.504551123887161,0.504214777309661,0.50382688627829,0.503446700356417,0.503134986639644,0.502953740492642,0.502953740492642, +0.655677769012263,0.655677769012263,0.655547679999792,0.655195490753822,0.654708540549162,0.654164486673901,0.653630454109302,0.653177439910574,0.652895863112924,0.652895863112924, +0.823279817027452,0.823279817027452,0.823108560035012,0.822562503831127,0.821875232718341,0.821139882265237,0.820412687878422,0.819754767389111,0.819279183577009,0.819279183577009, + +00:36:28, +0.122290935348446,0.122290935348446,0.122344588677037,0.122344921329359,0.122304650694465,0.12224054222703,0.122170963549773,0.122113157954634,0.122080563211772,0.122080563211772, +0.122290935348446,0.122290935348446,0.122344588677037,0.122344921329359,0.122304650694465,0.12224054222703,0.122170963549773,0.122113157954634,0.122080563211772,0.122080563211772, +0.147013387991879,0.147013387991879,0.147062444083733,0.14705155584229,0.146995371862482,0.14691324843434,0.146826461106386,0.146755118334771,0.146715051723278,0.146715051723278, +0.197120171849346,0.197120171849346,0.197158093674759,0.197122889103222,0.197033095440251,0.19691328135263,0.196790556938352,0.196690864687309,0.196635079312971,0.196635079312971, +0.273493065176178,0.273493065176178,0.273509948588064,0.273433910280869,0.273289478436893,0.273109150735891,0.272928757563562,0.272783196052726,0.272701673800599,0.272701673800599, +0.376464138869208,0.376464138869208,0.376446333818993,0.376308420316051,0.376083750571537,0.375815758131697,0.375551504942493,0.375337904485568,0.375217104360648,0.375217104360648, +0.504948227751311,0.504948227751311,0.504879904348452,0.504653333186005,0.504317075209969,0.503929290042311,0.503549209452311,0.503237582525729,0.503056386790552,0.503056386790552, +0.65575404258429,0.65575404258429,0.655623975959179,0.655271874476179,0.654785053222752,0.654241147078393,0.653707260909586,0.653254370752847,0.652972870347278,0.652972870347278, +0.823320726034714,0.823320726034714,0.823149509658075,0.822603588481279,0.821916491479135,0.821181329857719,0.820454322903522,0.819796571011471,0.81932110721871,0.81932110721871, + +00:36:29, +0.122404756718891,0.122404756718891,0.122458420363371,0.122458759938279,0.122418493266451,0.122354386463685,0.12228480798185,0.122227001954847,0.122194406819382,0.122194406819382, +0.122404756718891,0.122404756718891,0.122458420363371,0.122458759938279,0.122418493266451,0.122354386463685,0.12228480798185,0.122227001954847,0.122194406819382,0.122194406819382, +0.147130232969637,0.147130232969637,0.147179295037426,0.147168413967576,0.147112237685455,0.147030121698531,0.146943340803948,0.146872002793668,0.146831938728929,0.146831938728929, +0.197241004183432,0.197241004183432,0.197278925434289,0.197243730169397,0.197153952881887,0.197034158655391,0.196911453769915,0.196811777097538,0.196756000384675,0.196756000384675, +0.273615295960378,0.273615295960378,0.273632173751074,0.273556151499361,0.273411751524373,0.273231463970038,0.273051111104434,0.272905582215771,0.272824078283448,0.272824078283448, +0.376581180878929,0.376581180878929,0.376563370859256,0.376425487619622,0.376200873668102,0.375932950251688,0.375668766199476,0.375455222056427,0.375334453887109,0.375334453887109, +0.505050328518864,0.505050328518864,0.504982009569225,0.504755492272113,0.504419322851826,0.504031643488963,0.503651668170157,0.503340127982633,0.503158982629107,0.503158982629107, +0.655830272764193,0.655830272764193,0.655700228525766,0.655348214755955,0.654861522372538,0.654317763862654,0.65378402399239,0.653331257794405,0.653049833729439,0.653049833729439, +0.823361609876092,0.823361609876092,0.823190434092171,0.822644647856205,0.82195772484997,0.821222751933826,0.820495932285857,0.819838348877342,0.819363005023615,0.819363005023615, + +00:36:30, +0.122518591981772,0.122518591981772,0.122572265923081,0.122572612423636,0.122532349735074,0.122468244627398,0.122398666373627,0.12234085994181,0.12230826442898,0.12230826442898, +0.122518591981772,0.122518591981772,0.122572265923081,0.122572612423636,0.122532349735074,0.122468244627398,0.122398666373627,0.12234085994181,0.12230826442898,0.12230826442898, +0.147247082326625,0.147247082326625,0.147296150358407,0.147285276465697,0.14722910790038,0.147146999381787,0.147060224949103,0.146988891723591,0.146948830218751,0.146948830218751, +0.197361824538514,0.197361824538514,0.197399745214781,0.197364559264804,0.197274798367592,0.197155024020808,0.197032338682806,0.196932677604084,0.19687690956099,0.19687690956099, +0.273737496394178,0.273737496394178,0.273754368575869,0.273678362386983,0.273533994285036,0.273353746879441,0.273173434321402,0.273027938054952,0.272946452442192,0.272946452442192, +0.376698178044101,0.376698178044101,0.376680363073916,0.376542510096171,0.376317951921606,0.376050097504442,0.37578598256308,0.375572494711599,0.375451758484807,0.375451758484807, +0.505152379134901,0.505152379134901,0.505084064653652,0.50485760120125,0.504521520291027,0.504133946674082,0.503754076565834,0.503442623066273,0.503261528064248,0.503261528064248, +0.655906459604289,0.655906459604289,0.655776437751859,0.655424511645502,0.654937948050959,0.654394337079222,0.653860743410356,0.65340810108798,0.653126753312192,0.653126753312192, +0.823402468583213,0.823402468583213,0.823231333368948,0.822685681987659,0.821998932862738,0.821264148525604,0.820537516057627,0.819880101019061,0.81940487702416,0.81940487702416, + +00:36:31, +0.122632441093361,0.122632441093361,0.122686125312459,0.122686478741709,0.122646220056577,0.122582116674358,0.122512538681239,0.122454731871612,0.122422135996631,0.122422135996631, +0.122632441093361,0.122632441093361,0.122686125312459,0.122686478741709,0.122646220056577,0.122582116674358,0.122512538681239,0.122454731871612,0.122422135996631,0.122422135996631, +0.147363936031449,0.147363936031449,0.147413010015295,0.147402143305253,0.147345982475816,0.147263881452614,0.1471771135103,0.147105785092944,0.147065726161123,0.147065726161123, +0.197482632905468,0.197482632905468,0.197520553007111,0.197485376380293,0.197395631888174,0.197275877439632,0.197153211667726,0.197053566197601,0.196997806832548,0.196997806832548, +0.273859666495556,0.273859666495556,0.273876533080407,0.273800542961665,0.273656206736771,0.273475999481949,0.273295727232274,0.273150263588047,0.273068796294589,0.273068796294589, +0.376815130407072,0.376815130407072,0.376797310505288,0.376659487787989,0.376434985374328,0.376167199932228,0.375903154075566,0.375689722493339,0.375569018195996,0.375569018195996, +0.505254379655143,0.505254379655143,0.50518606965742,0.504959660029108,0.504623667583291,0.504236199653429,0.503856434695144,0.503545067832488,0.503364023151838,0.503364023151838, +0.655982603156817,0.655982603156817,0.655852603689683,0.655500765197096,0.655014330310371,0.654470866780559,0.653937419216047,0.653484900686223,0.653203629148248,0.653203629148248, +0.823443302187651,0.823443302187651,0.823272207520007,0.822726690907344,0.822040115549281,0.821305519665048,0.82057907425098,0.819921827468914,0.819446723252731,0.819446723252731, + +00:36:32, +0.122746304009985,0.122746304009985,0.122799998487853,0.122800358848835,0.12276010418726,0.122696002560816,0.12262642486088,0.122568617700401,0.122536021478459,0.122536021478459, +0.122746304009985,0.122746304009985,0.122799998487853,0.122800358848835,0.12276010418726,0.122696002560816,0.12262642486088,0.122568617700401,0.122536021478459,0.122536021478459, +0.147480794052758,0.147480794052758,0.147529873976754,0.14751901445489,0.147462861380372,0.147380767879563,0.147294006456034,0.147222682870176,0.147182626524468,0.147182626524468, +0.197603429275194,0.197603429275194,0.197641348802174,0.197606181506738,0.197516453434462,0.197396718902641,0.197274072715396,0.197174442868769,0.197118692190002,0.197118692190002, +0.273981806282477,0.273981806282477,0.27399866728263,0.27392269324132,0.273778388897458,0.273598221795399,0.273417989854849,0.273272558832822,0.27319110985839,0.27319110985839, +0.37693203801014,0.37693203801014,0.376914213195636,0.376776420737321,0.376551974068497,0.376284257577265,0.376020280779144,0.375806905443854,0.375686233062882,0.375686233062882, +0.505356330135233,0.505356330135233,0.505288024636136,0.505061668811299,0.504725764784258,0.504338402482683,0.503958742613812,0.503647462337042,0.503466467947663,0.503466467947663, +0.656058703473937,0.656058703473937,0.655928726391388,0.655576975462933,0.655090669203056,0.654547353019045,0.654014051461945,0.653561656641707,0.653280461290235,0.653280461290235, +0.823484110720933,0.823484110720933,0.823313056576899,0.822767674646916,0.822081272941391,0.821346865384104,0.820620606898012,0.819963528259138,0.819488543741663,0.819488543741663, + +00:36:33, +0.122860180688028,0.122860180688028,0.122913885405668,0.122914252701408,0.122874002083481,0.122809902243076,0.1227403248688,0.122682517384383,0.122649920830642,0.122649920830642, +0.122860180688028,0.122860180688028,0.122913885405668,0.122914252701408,0.122874002083481,0.122809902243076,0.1227403248688,0.122682517384383,0.122649920830642,0.122649920830642, +0.14759765635925,0.14759765635925,0.147646742211492,0.147635889883303,0.147579744582698,0.147497658631233,0.147410903754848,0.147339585023783,0.147299531277255,0.147299531277255, +0.197724213638611,0.197724213638611,0.19776213259089,0.19772697463503,0.197637262997307,0.197517548400631,0.197394921816559,0.197295307608287,0.197239565624027,0.197239565624027, +0.274103915772894,0.274103915772894,0.274120771200471,0.274044813243852,0.273900540784964,0.273720413837618,0.273540222206911,0.273394823807031,0.273313393151329,0.273313393151329, +0.377048900895554,0.377048900895554,0.377031071187173,0.376893308986357,0.37666891804629,0.376401270481721,0.376137362715974,0.375924043605299,0.375803403127618,0.375803403127618, +0.505458230630735,0.505458230630735,0.505389929645334,0.50516362760336,0.504827811949492,0.50444055521745,0.504061000377483,0.503749806635619,0.503568862507431,0.503568862507431, +0.656134760607731,0.656134760607731,0.656004805909042,0.655653142495129,0.655166964781215,0.65462379584698,0.654090640200455,0.653638369006927,0.653357249790704,0.653357249790704, +0.823524894214535,0.823524894214535,0.823353880571124,0.822808633237977,0.822122405070812,0.821388185714664,0.820662114030771,0.820005203421918,0.81953033852324,0.81953033852324, + +00:36:34, +0.122974071083931,0.122974071083931,0.123027786022366,0.123028160255879,0.122987913701653,0.122923815677498,0.122854238661305,0.122796430879818,0.122763834009415,0.122763834009415, +0.122974071083931,0.122974071083931,0.123027786022366,0.123028160255879,0.122987913701653,0.122923815677498,0.122854238661305,0.122796430879818,0.122763834009415,0.122763834009415, +0.147714522919666,0.147714522919666,0.147763614688264,0.147752769559228,0.147696632051493,0.147614553676268,0.147527805375329,0.147456491522307,0.147416440387999,0.147416440387999, +0.197844985986664,0.197844985986664,0.1978829043642,0.197847755756088,0.197758060567583,0.197638365924422,0.197515758961982,0.197416160406877,0.197360427125322,0.197360427125322, +0.274225994984745,0.274225994984745,0.274242844851849,0.274166902987152,0.274022662417141,0.273842575626416,0.273662424306234,0.273517058528415,0.273435646191133,0.273435646191133, +0.37716571910551,0.37716571910551,0.377147884522062,0.377010152577239,0.376785817349836,0.376518238687713,0.376254399928167,0.37604113701978,0.375920528432308,0.375920528432308, +0.505560081197137,0.505560081197137,0.505491784740467,0.505265536460747,0.504929809134481,0.504542657913255,0.504163208041729,0.503852100783826,0.503671206886773,0.503671206886773, +0.656210774610201,0.656210774610201,0.656080842294636,0.655729266345722,0.655243217096969,0.654700195316589,0.654167185483903,0.653715037834297,0.653433994702126,0.653433994702126, +0.823565652699884,0.823565652699884,0.823394679534134,0.822849566712081,0.822163511969234,0.821429480688573,0.820703595681254,0.820046852989389,0.819572107629695,0.819572107629695, + +00:36:35, +0.123087975154191,0.123087975154191,0.123141700294464,0.123142081468755,0.123101838998246,0.123037742820502,0.122968166194759,0.122910358143025,0.122877760971072,0.122877760971072, +0.123087975154191,0.123087975154191,0.123141700294464,0.123142081468755,0.123101838998246,0.123037742820502,0.122968166194759,0.122910358143025,0.122877760971072,0.122877760971072, +0.147831393702793,0.147831393702793,0.147880491375871,0.147869653451448,0.147813523755499,0.147731452983356,0.147644711286108,0.147573402334333,0.147533353825263,0.147533353825263, +0.197965746310318,0.197965746310318,0.198003664113064,0.197968524860848,0.197878846136185,0.197759171464857,0.197636584142453,0.197537001255285,0.197481276684607,0.197481276684607, +0.274348043935957,0.274348043935957,0.274364888254668,0.274288962489095,0.274144753811829,0.273964707179595,0.273784596170578,0.273639263014703,0.273557868995511,0.273557868995511, +0.377282492682154,0.377282492682154,0.377264653242415,0.377126951552058,0.376902672021209,0.376635162237307,0.376371392457782,0.376158185729353,0.376037609019006,0.376037609019006, +0.50566188188985,0.50566188188985,0.505593589976913,0.505367395438843,0.505031756394632,0.504644710625548,0.504265365662042,0.503954344837195,0.503773501141243,0.503773501141243, +0.65628674553327,0.65628674553327,0.656156835600084,0.655805347066673,0.655319426202361,0.654776551480016,0.654243687364535,0.653791663176153,0.653510696076893,0.653510696076893, +0.823606386208356,0.823606386208356,0.82343545349733,0.822890475100734,0.822204593668301,0.821470750337626,0.820745051881405,0.820088476993634,0.819613851093212,0.819613851093212, + +00:36:36, +0.123201892855362,0.123201892855362,0.123255628178538,0.123256016296597,0.123215777929787,0.123151683628562,0.123082107425581,0.123024299130379,0.122991701671962,0.122991701671962, +0.123201892855362,0.123201892855362,0.123255628178538,0.123256016296597,0.123215777929787,0.123151683628562,0.123082107425581,0.123024299130379,0.122991701671962,0.122991701671962, +0.147948268677465,0.147948268677465,0.147997372243158,0.147986541528793,0.147930419663505,0.147848356521232,0.147761621455866,0.147690317428494,0.147650271557651,0.147650271557651, +0.198086494600557,0.198086494600557,0.198124411828469,0.19808928194027,0.19799961969403,0.1978799650128,0.197757397348783,0.197657830144276,0.197602114292625,0.197602114292625, +0.274470062644444,0.274470062644444,0.274486901426823,0.274410991767546,0.274266814986858,0.274086808514941,0.27390673781769,0.273761437283611,0.273680061582164,0.273680061582164, +0.377399221667583,0.377399221667583,0.377381377390293,0.377243705952853,0.377019482102438,0.37675204117252,0.376488340346829,0.376275189776021,0.376154644929716,0.376154644929716, +0.505763632764207,0.505763632764207,0.505695345409972,0.505469204592951,0.505133653785279,0.504746713409702,0.504367473293838,0.504056538851179,0.503875745326318,0.503875745326318, +0.656362673428786,0.656362673428786,0.656232785877218,0.655881384709863,0.655395592149359,0.654852864389326,0.65432014589452,0.653868245084751,0.653587353967318,0.653587353967318, +0.823647094771279,0.823647094771279,0.823476202492065,0.82293135843539,0.822245650199604,0.821511994693565,0.820786482663123,0.820130075466687,0.819655568945922,0.819655568945922, + +00:36:37, +0.123315824144055,0.123315824144055,0.123369569631219,0.123369964696027,0.123329730452858,0.12326563805821,0.123196062310249,0.12313825379831,0.12310565606849,0.12310565606849, +0.123315824144055,0.123315824144055,0.123369569631219,0.123369964696027,0.123329730452858,0.12326563805821,0.123196062310249,0.12313825379831,0.12310565606849,0.12310565606849, +0.148065147812559,0.148065147812559,0.148114257259015,0.148103433760137,0.148047319744345,0.147965264258676,0.147878535853325,0.147807236773468,0.147767193553816,0.147767193553816, +0.198207230848392,0.198207230848392,0.19824514750142,0.198210026985335,0.198120381232056,0.198000746559136,0.197878198571803,0.197778647064641,0.19772293994014,0.19772293994014, +0.274592051128107,0.274592051128107,0.274608884386193,0.274532990840356,0.274388845960043,0.274208879650229,0.274028849265306,0.273883581352844,0.273802223968778,0.273802223968778, +0.377515906103841,0.377515906103841,0.377498057007708,0.377360415821615,0.377136247635498,0.37686887553532,0.376605243637266,0.376392149201741,0.37627163620639,0.37627163620639, +0.505865333875464,0.505865333875464,0.505797051094866,0.505570963978299,0.505235501361677,0.504848666321013,0.504469530992455,0.504158682881154,0.503977939497397,0.503977939497397, +0.656438558348516,0.656438558348516,0.656308693177796,0.655957379327095,0.655471714989847,0.654929134096506,0.654396561125948,0.65394478361227,0.653663968425636,0.653663968425636, +0.823687778419932,0.823687778419932,0.82351692654964,0.822972216747455,0.822286681594686,0.821553213788086,0.820827888058251,0.820171648440533,0.819697261219906,0.819697261219906, + +00:36:38, +0.123429768976935,0.123429768976935,0.123483524609194,0.123483926623721,0.1234436965241,0.123379606066033,0.123310030805295,0.123252222103307,0.12321962411712,0.12321962411712, +0.123429768976935,0.123429768976935,0.123483524609194,0.123483926623721,0.1234436965241,0.123379606066033,0.123310030805295,0.123252222103307,0.12321962411712,0.12321962411712, +0.148182031076999,0.148182031076999,0.148231146392379,0.148220330114398,0.148164223966899,0.148082176164513,0.147995454447256,0.147924160337978,0.147884119782456,0.147884119782456, +0.198327955044852,0.198327955044852,0.198365871122944,0.198330759987047,0.198241130741225,0.198121516094774,0.197998987802368,0.19789945200719,0.197843753617941,0.197843753617941, +0.274714009404833,0.274714009404833,0.274730837150645,0.274654959725365,0.274510846749185,0.274330920603221,0.274150930531148,0.274005695240093,0.273924356173029,0.273924356173029, +0.377632546032923,0.377632546032923,0.377614692136619,0.377477081200282,0.377252968662316,0.376985665367621,0.376722102371003,0.376509064048418,0.376388582890933,0.376388582890933, +0.505966985278802,0.505966985278802,0.505898707086743,0.505672673650037,0.505337299179004,0.5049505694147,0.504571538813156,0.50426077698242,0.504080083709805,0.504080083709805, +0.65651440034415,0.65651440034415,0.656384557553496,0.656033330970095,0.655547794775636,0.655005360653467,0.654472933110828,0.654021278810811,0.653740539504003,0.653740539504003, +0.823728437185543,0.823728437185543,0.823557625701311,0.823013050068284,0.82232768788504,0.821594407652833,0.820869268098586,0.820213195947102,0.819738927947196,0.819738927947196, + +00:36:39, +0.123543727310726,0.123543727310726,0.123597493069207,0.12359790203641,0.123557676100207,0.123493587608674,0.123424012867308,0.123366204001914,0.123333605774369,0.123333605774369, +0.123543727310726,0.123543727310726,0.123597493069207,0.12359790203641,0.123557676100207,0.123493587608674,0.123424012867308,0.123366204001914,0.123333605774369,0.123333605774369, +0.148298918439752,0.148298918439752,0.148348039612231,0.148337230560542,0.14828113230009,0.148199092207613,0.148112377206471,0.148041088090794,0.148001050212315,0.148001050212315, +0.198448667180988,0.198448667180988,0.198486582684091,0.19845148093643,0.198361868212519,0.198242273610642,0.198119765031355,0.198020244962756,0.197964555316835,0.197964555316835, +0.274835937492497,0.274835937492497,0.274852759738034,0.274776898440397,0.274632817372075,0.274452931391666,0.274272981632927,0.274127778963038,0.274046458212578,0.274046458212578, +0.377749141496772,0.377749141496772,0.377731282818937,0.377593702130744,0.377369645224766,0.377102410711289,0.376838916589898,0.376625934357905,0.376505485025197,0.376505485025197, +0.506068587029322,0.506068587029322,0.506000313440672,0.50577433366324,0.505439047292362,0.505052422745904,0.504673496811126,0.504362821210202,0.504182178018786,0.504182178018786, +0.6565901994673,0.6565901994673,0.656460379055917,0.656109239690511,0.655623831558456,0.655081544112039,0.654549261901095,0.654097730732395,0.653817067254497,0.653817067254497, +0.823769071099292,0.823769071099292,0.82359829997828,0.823053858429184,0.822368669102111,0.821635576319399,0.820910622815873,0.82025471801828,0.819780569159772,0.819780569159772, + +00:36:40, +0.123657699102207,0.123657699102207,0.123711474968058,0.123711890890884,0.123671669137933,0.123607582642836,0.123538008452935,0.123480199450732,0.123447600996815,0.123447600996815, +0.123657699102207,0.123657699102207,0.123711474968058,0.123711890890884,0.123671669137933,0.123607582642836,0.123538008452935,0.123480199450732,0.123447600996815,0.123447600996815, +0.148415809869833,0.148415809869833,0.148464936887597,0.148454135067577,0.148398044712888,0.148316012356893,0.148229304099833,0.14815802000073,0.14811798481218,0.14811798481218, +0.198569367247874,0.198569367247874,0.198607282175932,0.198572189824532,0.198482593636942,0.198363019097693,0.198240530249662,0.198141025922195,0.198085345027654,0.198085345027654, +0.274957835408962,0.274957835408962,0.274974652166202,0.274898807003267,0.27475475784649,0.274574912033301,0.27439500258834,0.274249832539345,0.274168530105077,0.274168530105077, +0.377865692537284,0.377865692537284,0.377847829096522,0.37771027865484,0.377486277364674,0.377219111608141,0.376955686335761,0.376742760172008,0.376622342650986,0.376622342650986, +0.506170139182051,0.506170139182051,0.506101870211647,0.505875944072903,0.505540745756778,0.505154226369692,0.504775405041474,0.504464815619644,0.504284222479513,0.504284222479513, +0.6566659557695,0.6566659557695,0.656536157736582,0.656185105539912,0.65569982538996,0.655157684523976,0.654625547548604,0.654174139428965,0.653893551729118,0.653893551729118, +0.823809680192311,0.823809680192311,0.823638949411705,0.823094641861412,0.822409625277292,0.82167671981933,0.820951952241808,0.820296214685898,0.819822184889566,0.819822184889566, + +00:36:41, +0.123771684308214,0.123771684308214,0.123825470262603,0.123825893143987,0.123785675594086,0.123721591125274,0.123652017518878,0.123594208406418,0.123561609741088,0.123561609741088, +0.123771684308214,0.123771684308214,0.123825470262603,0.123825893143987,0.123785675594086,0.123721591125274,0.123652017518878,0.123594208406418,0.123561609741088,0.123561609741088, +0.1485327053363,0.1485327053363,0.148581838187548,0.148571043604558,0.148514961174309,0.148432936581314,0.148346235096246,0.148274956036645,0.148234923550886,0.148234923550886, +0.198690055236604,0.198690055236604,0.198727969589559,0.19869288664242,0.198603307005521,0.1984837525469,0.198361283448208,0.198261794876384,0.198206122741251,0.198206122741251, +0.275079703172075,0.275079703172075,0.275096514452977,0.275020685431774,0.274876668190194,0.27469686254585,0.274516993415073,0.274371855986669,0.274290571868161,0.274290571868161, +0.377982199196301,0.377982199196301,0.377964331011183,0.377826810814357,0.377602865123815,0.377335768099942,0.37707241165035,0.376859541532482,0.376739155810054,0.376739155810054, +0.506271641791938,0.506271641791938,0.506203377454584,0.505977504933948,0.505642394627199,0.505255980341053,0.504877263559233,0.504566760265818,0.504386217147077,0.504386217147077, +0.656741669302206,0.656741669302206,0.656611893646936,0.656260928569791,0.655775776321723,0.655233781940952,0.654701790105131,0.654250504952388,0.653969992979787,0.653969992979787, +0.823850264495682,0.823850264495682,0.82367957403269,0.823135400396178,0.822450556441928,0.821717838184122,0.820993256408038,0.820337685981739,0.819863775168457,0.819863775168457, + +00:36:42, +0.123885682885638,0.123885682885638,0.123939478909754,0.123939908752621,0.123899695425529,0.123835613012801,0.123766040021895,0.123708230825686,0.123675631963877,0.123675631963877, +0.123885682885638,0.123885682885638,0.123939478909754,0.123939908752621,0.123899695425529,0.123835613012801,0.123766040021895,0.123708230825686,0.123675631963877,0.123675631963877, +0.148649604808256,0.148649604808256,0.148698743481201,0.148687956140586,0.148631881653411,0.148549864849881,0.14846317016466,0.148391896167444,0.148351866397311,0.148351866397311, +0.198810731138296,0.198810731138296,0.198848644916086,0.198813571381183,0.198724008309302,0.198604473949258,0.198482024617936,0.198382551816222,0.198326888448501,0.198326888448501, +0.275201540799675,0.275201540799675,0.275218346616174,0.275142533743705,0.274998548420939,0.274818782947025,0.274638954130798,0.274493849322653,0.274412583519457,0.274412583519457, +0.378098661515617,0.378098661515617,0.378080788604679,0.377943298651035,0.377719408543914,0.377452380228407,0.377189092575374,0.376976278481031,0.376855924544104,0.376855924544104, +0.506373094913857,0.506373094913857,0.506304835224323,0.50607901630122,0.505743993958499,0.5053576847149,0.504979072419358,0.504668655203718,0.504488162076497,0.504488162076497, +0.656817340116799,0.656817340116799,0.656687586838347,0.656336708831561,0.655851684405243,0.655309836414565,0.654777989622375,0.65432682735445,0.654046391058346,0.654046391058346, +0.823890824040438,0.823890824040438,0.823720173872293,0.82317613406464,0.822491462627315,0.821758931445219,0.821034535346159,0.820379131937536,0.819905340028276,0.819905340028276, + +00:36:43, +0.123999694791428,0.123999694791428,0.124053500866481,0.124053937673742,0.124013728589185,0.123949648262287,0.123880075918801,0.123822266665306,0.123789667621926,0.123789667621926, +0.123999694791428,0.123999694791428,0.124053500866481,0.124053937673742,0.124013728589185,0.123949648262287,0.123880075918801,0.123822266665306,0.123789667621926,0.123789667621926, +0.148766508254851,0.148766508254851,0.148815652737717,0.148804872644804,0.1487488061193,0.148666797131647,0.148580109274071,0.148508840362077,0.148468813320382,0.148468813320382, +0.198931394944086,0.198931394944086,0.198969308146649,0.198934244031933,0.198844697539356,0.198725183295783,0.198602753749809,0.19850329673263,0.198447642140302,0.198447642140302, +0.275323348309583,0.275323348309583,0.275340148673596,0.275264351956835,0.275120398556464,0.274940673254525,0.274760884753176,0.274615812564925,0.274534565076577,0.274534565076577, +0.378215079536973,0.378215079536973,0.37819720191872,0.378059742206561,0.377835907666646,0.377568948035203,0.377305729152492,0.377092971059312,0.376972648894791,0.376972648894791, +0.506474498602605,0.506474498602605,0.506406243575629,0.506180478229486,0.505845543805475,0.50545933954607,0.50508083167673,0.504770500488262,0.504590057322713,0.504590057322713, +0.656892968264578,0.656892968264578,0.656763237362106,0.656412446376561,0.655927549691941,0.655385847996336,0.654854146151959,0.654403106686862,0.654122746016563,0.654122746016563, +0.823931358857562,0.823931358857562,0.823760748961524,0.823216842897908,0.822532343864699,0.821799999634019,0.821075789087718,0.820420552584972,0.819946879500803,0.819946879500803, + +00:36:44, +0.124113719982586,0.124113719982586,0.124167536089807,0.124167979864365,0.124127775042029,0.124063696830657,0.123994125166467,0.123936315882103,0.123903716672037,0.123903716672037, +0.124113719982586,0.124113719982586,0.124167536089807,0.124167979864365,0.124127775042029,0.124063696830657,0.123994125166467,0.123936315882103,0.123903716672037,0.123903716672037, +0.148883415645278,0.148883415645278,0.148932565926303,0.148921793086403,0.148865734541126,0.148783733395707,0.14869705239352,0.14862578858954,0.148585764289067,0.148585764289067, +0.199052046645135,0.199052046645135,0.199089959272405,0.199054904585803,0.198965374686771,0.198845880577514,0.198723470834814,0.198624029616549,0.198568383807571,0.198568383807571, +0.27544512571961,0.27544512571961,0.275461920643034,0.275386140088926,0.275242218614494,0.275062533486035,0.274882785299853,0.274737745731102,0.274656516557122,0.274656516557122, +0.378331453302064,0.378331453302064,0.378313570994963,0.378176141522574,0.377952362533637,0.377685471561945,0.377422321423314,0.377209619308929,0.377089328903718,0.377089328903718, +0.506575852912902,0.506575852912902,0.506507602563189,0.50628189077344,0.505947044222845,0.505560944889324,0.505182541386153,0.50487229617429,0.50469190294059,0.50469190294059, +0.65696855379677,0.65696855379677,0.656838845269424,0.656488141256051,0.656003372233159,0.655461816737706,0.654930259745426,0.654479343001255,0.654199057906125,0.654199057906125, +0.823971868977992,0.823971868977992,0.823801299331342,0.823257526927045,0.822573200185277,0.821841042781869,0.821117017664212,0.820461947955682,0.81998839361777,0.81998839361777, + +00:36:45, +0.124227758416173,0.124227758416173,0.124281584536814,0.124282035281558,0.124241834741096,0.124177758674892,0.12410818772182,0.124050378432961,0.124017779071066,0.124017779071066, +0.124227758416173,0.124227758416173,0.124281584536814,0.124282035281558,0.124241834741096,0.124177758674892,0.12410818772182,0.124050378432961,0.124017779071066,0.124017779071066, +0.149000326948775,0.149000326948775,0.149049483016209,0.149038717434617,0.148982666888083,0.148900673611203,0.148813999492093,0.148742740818873,0.14870271927238,0.14870271927238, +0.199172686232621,0.199172686232621,0.199210598284531,0.199175553033946,0.199086039742662,0.198966565785511,0.198844175863956,0.198744750458946,0.198689113441251,0.198689113441251, +0.275566873047554,0.275566873047554,0.275583662542264,0.275507898157725,0.275364008612742,0.275184363659228,0.275004655788465,0.274859648838789,0.274778437978679,0.274778437978679, +0.378447782852532,0.378447782852532,0.37842989587502,0.378292496640661,0.37806877318646,0.377801950850198,0.377538869429398,0.377326223271438,0.377205964612439,0.377205964612439, +0.506677157899393,0.506677157899393,0.506608912241617,0.506383253987696,0.506048495265256,0.505662500799345,0.505284201602354,0.504974042316569,0.504793698984918,0.504793698984918, +0.657044096764521,0.657044096764521,0.656914410611439,0.656563793521213,0.656079152080164,0.655537742690042,0.655006330454243,0.654555536349185,0.654275326778642,0.654275326778642, +0.824012354432613,0.824012354432613,0.823841825012658,0.823298186183062,0.822614031620199,0.821882060920066,0.821158221107089,0.820503318081248,0.820029882410858,0.820029882410858, + +00:36:46, +0.124341810049306,0.124341810049306,0.124395646164638,0.124396103882447,0.124355907643473,0.12429183375203,0.124222263541845,0.124164454274817,0.124131854775927,0.124131854775927, +0.124341810049306,0.124341810049306,0.124395646164638,0.124396103882447,0.124355907643473,0.12429183375203,0.124222263541845,0.124164454274817,0.124131854775927,0.124131854775927, +0.149117242134626,0.149117242134626,0.149166403976731,0.149155645658724,0.149099603129411,0.14901761774732,0.148930950538921,0.148859697019161,0.148819678239384,0.148819678239384, +0.199293313697749,0.199293313697749,0.199331225174228,0.199296189367537,0.19920669269816,0.199087238910854,0.198964868828265,0.198865459250805,0.198809831032302,0.198809831032302, +0.275688590311198,0.275688590311198,0.275705374389049,0.275629626180969,0.27548576856891,0.275306163791766,0.275126496236634,0.274981521905579,0.274900329358824,0.274900329358824, +0.378564068229968,0.378564068229968,0.378546176600447,0.378408807602361,0.378185139666642,0.37791838594148,0.377655373212254,0.377442782988346,0.377322556062461,0.377322556062461, +0.506778413616647,0.506778413616647,0.506710172665447,0.506484567926796,0.506149896987276,0.505764007330744,0.505385812379985,0.505075738969789,0.50489544551041,0.50489544551041, +0.657119597218903,0.657119597218903,0.656989933439209,0.656639403223153,0.656154889284143,0.655613625904631,0.655082358329798,0.654631686782128,0.654351552685647,0.654351552685647, +0.824052815252265,0.824052815252265,0.823882326036336,0.823338820696924,0.822654838200564,0.821923054079861,0.821199399447747,0.820544662993206,0.820071345911697,0.820071345911697, + +00:36:47, +0.124455874839155,0.124455874839155,0.124509720930471,0.124510185624212,0.124469993706305,0.124405922019165,0.124336352583578,0.124278543364667,0.124245943743589,0.124245943743589, +0.124455874839155,0.124455874839155,0.124509720930471,0.124510185624212,0.124469993706305,0.124405922019165,0.124336352583578,0.124278543364667,0.124245943743589,0.124245943743589, +0.149234161172158,0.149234161172158,0.14928332877721,0.14927257772805,0.149216543234394,0.149134565773291,0.149047905503179,0.148976657159535,0.148936641159181,0.148936641159181, +0.199413929031739,0.199413929031739,0.199451839932715,0.199416813577774,0.19932733354442,0.199207899944647,0.199085549718791,0.198986155983135,0.198930536571709,0.198930536571709, +0.275810277528314,0.275810277528314,0.275827056201141,0.27575132417638,0.275607498500683,0.275427933901296,0.27524830666197,0.27510336494905,0.275022190715119,0.275022190715119, +0.378680309475916,0.378680309475916,0.378662413212754,0.378525074449161,0.378301462015657,0.378034776877255,0.377771832813343,0.377559298501108,0.377439103295238,0.377439103295238, +0.506879620119157,0.506879620119157,0.506811383889141,0.506585832645205,0.506251249443397,0.505865464538054,0.505487373773624,0.505177386188564,0.504997142571702,0.504997142571702, +0.657195055210909,0.657195055210909,0.657065413803717,0.656714970412902,0.656230583896209,0.655689466432685,0.655158343423406,0.654707794351485,0.654427735678596,0.654427735678596, +0.824093251467738,0.824093251467738,0.823922802433189,0.823379430499547,0.822695619957422,0.821964022292451,0.821240552717537,0.82058598272304,0.820112784151869,0.820112784151869, + +00:36:48, +0.124569952742949,0.124569952742949,0.124623808791562,0.124624280464092,0.124584092886794,0.124520023433446,0.124450454804117,0.12439264565956,0.124360045931078,0.124360045931078, +0.124569952742949,0.124569952742949,0.124623808791562,0.124624280464092,0.124584092886794,0.124520023433446,0.124450454804117,0.12439264565956,0.124360045931078,0.124360045931078, +0.149351084030744,0.149351084030744,0.14940025738703,0.149389513611962,0.149333487172362,0.14925151765839,0.149164864354088,0.14909362120917,0.149053608000922,0.149053608000922, +0.199534532225838,0.199534532225838,0.199572442551235,0.199537425655873,0.19944796227262,0.199328548878013,0.199206218526605,0.199106840646965,0.199051230050479,0.199051230050479, +0.275931934716659,0.275931934716659,0.275948707996277,0.275872992161668,0.275729198425738,0.275549674005454,0.275370087082069,0.275225177986769,0.275144022065116,0.275144022065116, +0.378796506631869,0.378796506631869,0.378778605753399,0.3786412972225,0.378417740274931,0.378151123698941,0.377888248274074,0.377675769851132,0.377555606352175,0.377555606352175, +0.50698077746134,0.50698077746134,0.506912545967083,0.50668704819731,0.506352552688036,0.505966872475732,0.50558888583777,0.505278984027433,0.505098790223357,0.505098790223357, +0.657270470791456,0.657270470791456,0.657140851755869,0.656790495141411,0.656306235967397,0.655765264325338,0.6552342857863,0.654783859108579,0.654503875808867,0.654503875808867, +0.824133663109774,0.824133663109774,0.823963254233985,0.823420015621797,0.822736376921776,0.82200496558899,0.821281680947758,0.820627277302186,0.820154197162907,0.820154197162907, + +00:36:49, +0.124684043717971,0.124684043717971,0.124737909705215,0.124738388359379,0.124698205142196,0.124634137952079,0.124564570160613,0.124506761116604,0.124474161295475,0.124474161295475, +0.124684043717971,0.124684043717971,0.124737909705215,0.124738388359379,0.124698205142196,0.124634137952079,0.124564570160613,0.124506761116604,0.124474161295475,0.124474161295475, +0.149468010679802,0.149468010679802,0.149517189775623,0.149506453279873,0.149450434912687,0.149368473371939,0.149281827060913,0.149210589137287,0.149170578733803,0.149170578733803, +0.199655123271309,0.199655123271309,0.199693033021051,0.199658025593074,0.199568578873956,0.199449185702099,0.199326875242802,0.199227513233346,0.199171911459637,0.199171911459637, +0.27605356189398,0.27605356189398,0.276070329792182,0.27599463015453,0.275850868361735,0.275671384121861,0.275491837514516,0.275346961036291,0.275265823426352,0.275265823426352, +0.378912659739268,0.378912659739268,0.378894754263792,0.378757475963767,0.378533974485839,0.378267426447905,0.378004619635809,0.377792197079775,0.377672065274629,0.377672065274629, +0.507081885697537,0.507081885697537,0.507013658953582,0.506788214637427,0.506453806775537,0.50606823119816,0.505690348626849,0.505380532540858,0.505200388519861,0.505200388519861, +0.657345844011385,0.657345844011385,0.657216247346495,0.656865977459556,0.656381845548665,0.655841019633647,0.655310185469639,0.654859881104656,0.654579973127762,0.654579973127762, +0.824174050209068,0.824174050209068,0.824003681469441,0.823460576094493,0.822777109124579,0.822045884000579,0.821322784169663,0.820668546762031,0.820195584976293,0.820195584976293, + +00:36:50, +0.124798147721561,0.124798147721561,0.12485202362879,0.124852509267421,0.124812330429823,0.124748265532323,0.124678698610272,0.12462088969296,0.124588289793917,0.124588289793917, +0.124798147721561,0.124798147721561,0.12485202362879,0.124852509267421,0.124812330429823,0.124748265532323,0.124678698610272,0.12462088969296,0.124588289793917,0.124588289793917, +0.149584941088793,0.149584941088793,0.149634125912461,0.149623396701243,0.149567386424789,0.149485432883303,0.149398793592965,0.14932756091315,0.149287553327062,0.149287553327062, +0.199775702159441,0.199775702159441,0.199813611333447,0.199778613380638,0.199689183339646,0.199569810408071,0.199447519858494,0.19934817373335,0.199292580790233,0.199292580790233, +0.276175159078008,0.276175159078008,0.276191921606569,0.27611623817265,0.275972508326323,0.275793064268128,0.275613557976883,0.275468714115158,0.275387594816353,0.275387594816353, +0.379028768839507,0.379028768839507,0.379010858785293,0.378873610714301,0.378650164689708,0.378383685165464,0.378120946939857,0.377908580228344,0.377788480103908,0.377788480103908, +0.507182944882016,0.507182944882016,0.507114722902873,0.506889332019791,0.506555011760164,0.506169540759644,0.505791762195211,0.505482031783227,0.505301937515626,0.505301937515626, +0.657421174921461,0.657421174921461,0.657291600626346,0.656941417418138,0.656457412690896,0.655916732408594,0.655386042524505,0.654935860390885,0.654656027686505,0.654656027686505, +0.824214412796263,0.824214412796263,0.824044084170226,0.823501111948406,0.822817816596737,0.822086777558272,0.821363862414452,0.820709791133911,0.820236947623462,0.820236947623462, + +00:36:51, +0.124912264711114,0.124912264711114,0.124966150519703,0.124966643145623,0.124926468707044,0.124862406131498,0.124792840110357,0.124735031345848,0.124702431383598,0.124702431383598, +0.124912264711114,0.124912264711114,0.124966150519703,0.124966643145623,0.124926468707044,0.124862406131498,0.124792840110357,0.124735031345848,0.124702431383598,0.124702431383598, +0.149701875227224,0.149701875227224,0.149751065767065,0.149740343845573,0.14968434167813,0.149602396161892,0.149515763919599,0.14944453650607,0.149404531749985,0.149404531749985, +0.199896268881539,0.199896268881539,0.199934177479728,0.199899189009844,0.199809775660931,0.199690422987117,0.199568152364819,0.19946882213807,0.199413238033337,0.199413238033337, +0.276296726286463,0.276296726286463,0.276313483457135,0.276237816233698,0.276094118337139,0.275914714461851,0.275735248486729,0.275590437240898,0.27550933625263,0.27550933625263, +0.379144833973928,0.379144833973928,0.379126919359209,0.378989701515389,0.378766310927814,0.378499899892885,0.378237230227482,0.378024919338098,0.377904850881267,0.377904850881267, +0.507283955068965,0.507283955068965,0.507215737869113,0.506990400398568,0.506656167696109,0.506270801214417,0.50589312659713,0.505583481808852,0.505403437264985,0.505403437264985, +0.65749646357237,0.65749646357237,0.6573669116461,0.657016815067879,0.656532937444895,0.655992402701083,0.655461857001903,0.655011797018359,0.654732039536244,0.654732039536244, +0.824254750901959,0.824254750901959,0.824084462366963,0.823541623214257,0.822858499369106,0.822127646293073,0.821404915713281,0.820751010449115,0.820278285135798,0.820278285135798, + +00:36:52, +0.12502639464408,0.12502639464408,0.125080290335424,0.125080789951446,0.125040619931283,0.124976559706974,0.124906994618188,0.124849186032542,0.124816586021768,0.124816586021768, +0.12502639464408,0.12502639464408,0.125080290335424,0.125080789951446,0.125040619931283,0.124976559706974,0.124906994618188,0.124849186032542,0.124816586021768,0.124816586021768, +0.149818813064644,0.149818813064644,0.149868009308997,0.149857294682409,0.149801300642218,0.149719363177159,0.149632738010214,0.149561515885401,0.1495215139719,0.1495215139719, +0.200016823428934,0.200016823428934,0.200054731451221,0.200019752471995,0.199930355829071,0.199811023430447,0.199688772752933,0.199589458438623,0.199533883180042,0.199533883180042, +0.27641826353705,0.27641826353705,0.276435015361567,0.276359364355333,0.276215698411806,0.276036334720614,0.2758569090616,0.275712130431029,0.275631047752686,0.275631047752686, +0.379260855183824,0.379260855183824,0.379242936026802,0.379105748408272,0.378882413241384,0.378616070671386,0.378353469539896,0.378141214450246,0.378021177647915,0.378021177647915, +0.507384916312502,0.507384916312502,0.507316703906386,0.507091419827844,0.506757274637488,0.506372012616635,0.505994441886806,0.505684882671972,0.505504887822201,0.505504887822201, +0.657571710014726,0.657571710014726,0.657442180456358,0.657092170459428,0.656608419861391,0.656068030561943,0.655537628952761,0.655087691038093,0.654808008728051,0.654808008728051, +0.824295064556705,0.824295064556705,0.824124816090226,0.823582109922721,0.822899157472495,0.822168490235939,0.821445944097253,0.820792204738884,0.820319597544636,0.820319597544636, + +00:36:53, +0.125140537477965,0.125140537477965,0.125194443033481,0.125194949642404,0.125154784060018,0.125090726216181,0.125021162091139,0.124963353710372,0.12493075366573,0.12493075366573, +0.125140537477965,0.125140537477965,0.125194443033481,0.125194949642404,0.125154784060018,0.125090726216181,0.125021162091139,0.124963353710372,0.12493075366573,0.12493075366573, +0.149935754570651,0.149935754570651,0.149984956507865,0.149974249181344,0.149918263286605,0.149836333898605,0.149749715834254,0.149678499020542,0.149638499962182,0.149638499962182, +0.200137365792975,0.200137365792975,0.200175273239272,0.200140303758415,0.200050923835349,0.19993161172929,0.199809381014016,0.199710082626145,0.199654516221459,0.199654516221459, +0.276539770847463,0.276539770847463,0.276556517337537,0.2764808825552,0.276337248567933,0.276157925061989,0.275978539719029,0.275833793703055,0.275752729334007,0.275752729334007, +0.379376832510439,0.379376832510439,0.379358908829281,0.37922175143414,0.378998471671594,0.378732197542137,0.37846966491826,0.378257465605948,0.378137460445012,0.378137460445012, +0.507485828666666,0.507485828666666,0.507417621068701,0.507192390361631,0.506858332638341,0.506473175020378,0.506095708118363,0.505786234426746,0.505606289241458,0.505606289241458, +0.657646914299064,0.657646914299064,0.657517407107644,0.657167483643354,0.656683859991038,0.656143616041924,0.655613358427931,0.655163542501028,0.65488393531292,0.65488393531292, +0.824335353791002,0.824335353791002,0.824165145370539,0.823622572104424,0.822939790937663,0.822209309417778,0.821486947597424,0.820833374034406,0.820360884881263,0.820360884881263, + +00:36:54, +0.125254693170333,0.125254693170333,0.125308608571456,0.125309122176068,0.125268961050785,0.125204905616603,0.125135342486639,0.125077534336723,0.125044934272846,0.125044934272846, +0.125254693170333,0.125254693170333,0.125308608571456,0.125309122176068,0.125268961050785,0.125204905616603,0.125135342486639,0.125077534336723,0.125044934272846,0.125044934272846, +0.150052699714883,0.150052699714883,0.150101907333321,0.150091207312012,0.150035229580887,0.149953308295772,0.149866697361208,0.149795485880936,0.149755489690249,0.149755489690249, +0.200257895965031,0.200257895965031,0.20029580283525,0.200260842860448,0.200171479671067,0.200052187874899,0.199929977139266,0.199830694691793,0.199775137148724,0.199775137148724, +0.276661248235381,0.276661248235381,0.276677989402705,0.27660237085093,0.276458768823117,0.276279485503533,0.276100140476538,0.275955427074466,0.275874381014069,0.275874381014069, +0.379492765994967,0.379492765994967,0.379474837807806,0.379337710634131,0.379114486259573,0.378848280546256,0.378585816403689,0.378373672846315,0.378253699313666,0.378253699313666, +0.507586692185423,0.507586692185423,0.50751848940999,0.507293312053868,0.506959341752635,0.506574288479653,0.50619692534585,0.505887537127264,0.505707641576867,0.505707641576867, +0.657722076475844,0.657722076475844,0.657592591650408,0.657242754670154,0.656759257884413,0.656219159191703,0.655689045478191,0.655239351458026,0.654959819341769,0.654959819341769, +0.824375618635306,0.824375618635306,0.824205450238381,0.823663009789943,0.822980399795323,0.82225010386945,0.821527926244804,0.820874518366824,0.820402147176916,0.820402147176916, + +00:36:55, +0.1253688616788,0.1253688616788,0.125422786906988,0.125423307510067,0.125383150861175,0.12531909786578,0.125249535762176,0.125191727869037,0.125159127800533,0.125159127800533, +0.1253688616788,0.1253688616788,0.125422786906988,0.125423307510067,0.125383150861175,0.12531909786578,0.125249535762176,0.125191727869037,0.125159127800533,0.125159127800533, +0.150169648467023,0.150169648467023,0.150218861755061,0.150208169044094,0.150152199494705,0.15007028633825,0.149983682560609,0.149912476436074,0.149872483125565,0.149872483125565, +0.200378413936495,0.200378413936495,0.200416320230544,0.200381369769458,0.200292023327548,0.200172751858547,0.200050561119906,0.199951294626746,0.199895745952992,0.199895745952992, +0.276782695718471,0.276782695718471,0.276799431574717,0.276723829260142,0.276580259194944,0.276401016062793,0.276221711351636,0.276077030562742,0.275996002810333,0.275996002810333, +0.379608655678551,0.379608655678551,0.379590723003489,0.379453626049338,0.379230457046399,0.378964319724814,0.378701924037247,0.378489836212406,0.378369894294939,0.378369894294939, +0.507687506922663,0.507687506922663,0.507619308984111,0.507394184958417,0.507060302034261,0.506675353048391,0.506298093623243,0.505988790827537,0.505808944882463,0.505808944882463, +0.65779719659545,0.65779719659545,0.657667734135022,0.657317983590248,0.656834613592017,0.65629466006188,0.65576469015424,0.655315117959875,0.655035660865441,0.655035660865441, +0.824415859120022,0.824415859120022,0.824245730724183,0.82370342300981,0.823020984076138,0.822290873621766,0.82156888007035,0.820915637767231,0.820443384462784,0.820443384462784, + +00:36:56, +0.125483042961039,0.125483042961039,0.125536977997769,0.125537505602081,0.125497353448834,0.125433302921305,0.12536374187529,0.125305934264811,0.125273334206262,0.125273334206262, +0.125483042961039,0.125483042961039,0.125536977997769,0.125537505602081,0.125497353448834,0.125433302921305,0.12536374187529,0.125305934264811,0.125273334206262,0.125273334206262, +0.150286600796801,0.150286600796801,0.150335819742826,0.150325134347314,0.150269172997744,0.150187267995669,0.150100671402035,0.150029470655486,0.149989480237637,0.149989480237637, +0.200498919698779,0.200498919698779,0.200536825416563,0.200501884476832,0.200412554796139,0.200293303671525,0.200171132947176,0.200071882422206,0.20001634262544,0.20001634262544, +0.276904113314387,0.276904113314387,0.276920843871208,0.276845257800442,0.276701719700983,0.276522516757301,0.276343252361816,0.276198604185349,0.276117594740252,0.276117594740252, +0.379724501602287,0.379724501602287,0.37970656445739,0.379569497720801,0.379346384073101,0.379080315118832,0.378817987859949,0.378605955745236,0.37848604542984,0.37848604542984, +0.507788272932202,0.507788272932202,0.507720079844849,0.507495009129066,0.507161213537035,0.506776368780449,0.506399213004439,0.506089995581503,0.505910199212206,0.505910199212206, +0.657872274708192,0.657872274708192,0.657742834611784,0.657393170453979,0.656909927164277,0.65637011870298,0.655840292506702,0.655390842057286,0.655111459934701,0.655111459934701, +0.82445607527551,0.82445607527551,0.824285986858328,0.823743811794505,0.823061543810726,0.822331618705489,0.821609809104973,0.820956732266672,0.820484596770007,0.820484596770007, + +00:36:57, +0.125597236974779,0.125597236974779,0.125651181801548,0.125651716409849,0.125611568771463,0.125547520740831,0.125477960783578,0.125420153481598,0.125387553447562,0.125387553447562, +0.125597236974779,0.125597236974779,0.125651181801548,0.125651716409849,0.125611568771463,0.125547520740831,0.125477960783578,0.125420153481598,0.125387553447562,0.125387553447562, +0.150403556673989,0.150403556673989,0.150452781266401,0.15044210319144,0.150386150059732,0.150304253237706,0.150217663855107,0.15014646850875,0.150106480996018,0.150106480996018, +0.200619413243315,0.200619413243315,0.200657318384738,0.200622386973976,0.200533074068204,0.200413843305151,0.200291692612339,0.200192458069393,0.200136927157268,0.200136927157268, +0.277025501040769,0.277025501040769,0.277042226309796,0.276966656489423,0.276823150358795,0.276643987604577,0.276464763524563,0.276320147959739,0.276239156821261,0.276239156821261, +0.379840303807219,0.379840303807219,0.379822362210522,0.379685325689513,0.379462267380658,0.379196266769279,0.378934007912761,0.378722031485766,0.378602152759333,0.378602152759333, +0.50788899026778,0.50788899026778,0.507820802045913,0.507595784619529,0.507262076314699,0.506877335729609,0.506500283543266,0.506191151443024,0.506011404619985,0.506011404619985, +0.657947310864303,0.657947310864303,0.657817893130917,0.657468315311616,0.656985198651542,0.65644553516545,0.655915852586125,0.655466523800894,0.655187216600241,0.655187216600241, +0.82449626713208,0.82449626713208,0.824326218671149,0.823784176174466,0.823102079029653,0.822372339151334,0.821650713379536,0.820997801896142,0.820525784129676,0.820525784129676, + +00:36:58, +0.125711443677803,0.125711443677803,0.125765398276129,0.125765939891162,0.125725796786819,0.125661751282064,0.125592192444693,0.125534385477006,0.125501785482014,0.125501785482014, +0.125711443677803,0.125711443677803,0.125765398276129,0.125765939891162,0.125725796786819,0.125661751282064,0.125592192444693,0.125534385477006,0.125501785482014,0.125501785482014, +0.150520516068402,0.150520516068402,0.150569746295614,0.150559075546284,0.150503130650443,0.150421242034083,0.150334659889493,0.150263469965489,0.150223485370303,0.150223485370303, +0.200739894561557,0.200739894561557,0.20077779912652,0.200742877252319,0.20065358113513,0.200534370750758,0.200412240106681,0.200313021559549,0.200257499539693,0.200257499539693, +0.277146858915244,0.277146858915244,0.277163578908089,0.277088025344664,0.276944551185923,0.276765428622128,0.276586244857346,0.276441661903355,0.276360689070785,0.276360689070785, +0.379956062334343,0.379956062334343,0.379938116303848,0.379801109996414,0.379578107010001,0.379312174717079,0.379049984236599,0.37883806347491,0.37871821632433,0.37871821632433, +0.507989658983064,0.507989658983064,0.507921475640936,0.507696511483445,0.507362890420919,0.506978253949579,0.506601305293474,0.50629225846589,0.506112561159609,0.506112561159609, +0.65802230511394,0.65802230511394,0.657892909742567,0.657543418213353,0.657060428104088,0.656520909499663,0.655991370442982,0.655542163241259,0.655262930912673,0.655262930912673, +0.824536434719997,0.824536434719997,0.824366426192937,0.823824516180077,0.82314258976344,0.822413034989969,0.821691592924853,0.821038846686589,0.820566946572834,0.820566946572834, + +00:36:59, +0.125825663027951,0.125825663027951,0.125879627379373,0.125880176003871,0.125840037452714,0.125775994502764,0.125706436816342,0.125648630208698,0.12561603026726,0.12561603026726, +0.125825663027951,0.125825663027951,0.125879627379373,0.125880176003871,0.125840037452714,0.125775994502764,0.125706436816342,0.125648630208698,0.12561603026726,0.12561603026726, +0.150637478949901,0.150637478949901,0.150686714800339,0.150676051381703,0.150620114739695,0.150538234354564,0.150451659474902,0.150380474995368,0.150340493330134,0.150340493330134, +0.20086036364498,0.20086036364498,0.200898267633382,0.200863355303307,0.200774075988325,0.200654885999703,0.200532775421506,0.200433572883939,0.200378059763956,0.200378059763956, +0.277268186955428,0.277268186955428,0.277284901683682,0.277209364383733,0.2770659221999,0.276886839827448,0.276707696377622,0.276563146033624,0.276482191506238,0.276482191506238, +0.380071777224605,0.380071777224605,0.380053826778279,0.3799168506824,0.379693903002011,0.379428039003105,0.379165916872332,0.378954051753534,0.378834236165696,0.378834236165696, +0.508090279131646,0.508090279131646,0.50802210068348,0.507797189774377,0.50746365590929,0.507079123493992,0.506702278308739,0.506393316703815,0.506213668884817,0.506213668884817, +0.658097257507187,0.658097257507187,0.657967884496807,0.657618479209307,0.657135615572113,0.656596241755917,0.656066846127671,0.655617760428864,0.655338602922537,0.655338602922537, +0.824576578069477,0.824576578069477,0.82440660945393,0.82386483184168,0.82318307604256,0.822453706252013,0.821732447771691,0.821079866668913,0.820608084130476,0.820608084130476, + +00:37:00, +0.125939894983116,0.125939894983116,0.125993869069193,0.125994424705877,0.125954290727017,0.125890250360748,0.125820693856289,0.125762887634394,0.125730287760992,0.125730287760992, +0.125939894983116,0.125939894983116,0.125993869069193,0.125994424705877,0.125954290727017,0.125890250360748,0.125820693856289,0.125762887634394,0.125730287760992,0.125730287760992, +0.150754445288391,0.150754445288391,0.150803686750491,0.150793030667597,0.150737102297349,0.150655230168958,0.150568662581089,0.150497483568097,0.150457504845197,0.150457504845197, +0.200980820485079,0.200980820485079,0.201018723896815,0.20098382111841,0.200894558619216,0.200775389043364,0.20065329854814,0.200554112033848,0.200498607821319,0.200498607821319, +0.27738948517892,0.27738948517892,0.277406194654156,0.277330673624182,0.277187263418247,0.277008221238018,0.276829118102835,0.276684600367961,0.276603664145017,0.276603664145017, +0.380187448518901,0.380187448518901,0.380169493674681,0.380032547788313,0.379809655397519,0.379543859668181,0.379281805860777,0.379069996362453,0.378950212324245,0.378950212324245, +0.508190850767043,0.508190850767043,0.508122677227029,0.507897819545817,0.507564372833328,0.507179944416407,0.506803202642663,0.506494326210437,0.506314727849271,0.506314727849271, +0.658172168094051,0.658172168094051,0.658042817443633,0.657693498349521,0.657210761105743,0.656671531984435,0.656142279690513,0.655693315414118,0.655414232680296,0.655414232680296, +0.824616697210691,0.824616697210691,0.824446768484322,0.823905123189567,0.823223537897439,0.822494352968037,0.821773277950767,0.821120861873965,0.820649196833548,0.820649196833548, + +00:37:01, +0.126054139501249,0.126054139501249,0.126108123303559,0.12610868595514,0.126068556567649,0.126004518813889,0.125934963522353,0.125877157711869,0.12584455792096,0.12584455792096, +0.126054139501249,0.126054139501249,0.126108123303559,0.12610868595514,0.126068556567649,0.126004518813889,0.125934963522353,0.125877157711869,0.12584455792096,0.12584455792096, +0.15087141505382,0.15087141505382,0.150920662116032,0.150910013373911,0.150854093293311,0.150772229447118,0.150685669177853,0.15061449565343,0.15057451988522,0.15057451988522, +0.201101265073369,0.201101265073369,0.201139167908332,0.201104274689117,0.201015029019252,0.200895879873138,0.20077380947793,0.200674639000579,0.200619143703065,0.200619143703065, +0.277510753603309,0.277510753603309,0.277527457837077,0.277451953083552,0.277308574858468,0.277129572871307,0.276950510050418,0.276806024923769,0.276725107004511,0.276725107004511, +0.380303076258081,0.380303076258081,0.380285117033867,0.380148201354948,0.379925364237308,0.37965963675308,0.379397651242705,0.379185897342433,0.379066144840745,0.379066144840745, +0.508291373942699,0.508291373942699,0.508223205324996,0.507998400851181,0.50766504124648,0.507280716770308,0.506904078348774,0.506595287039324,0.50641573810656,0.50641573810656, +0.658247036924464,0.658247036924464,0.658117708632967,0.657768475683963,0.657285864755027,0.656746780235362,0.656217671181755,0.655768828247354,0.655489820236337,0.655489820236337, +0.824656792173759,0.824656792173759,0.82448690331426,0.823945390253982,0.823263975358453,0.822534975168564,0.821814083492751,0.821161832332547,0.820690284712946,0.820690284712946, + +00:37:02, +0.126168396540354,0.126168396540354,0.126222390040496,0.126222959709673,0.126182834932589,0.126118799820115,0.126049245772407,0.125991440398951,0.125958840704969,0.125958840704969, +0.126168396540354,0.126168396540354,0.126222390040496,0.126222959709673,0.126182834932589,0.126118799820115,0.126049245772407,0.125991440398951,0.125958840704969,0.125958840704969, +0.150988388216181,0.150988388216181,0.151037640866967,0.151026999470633,0.150971087697529,0.150889232158942,0.150802679235038,0.150731511221167,0.150691538419978,0.150691538419978, +0.201221697401386,0.201221697401386,0.201259599659468,0.201224716006938,0.201135487179902,0.201016358480445,0.200894308202243,0.200795153775461,0.200739667400497,0.200739667400497, +0.27763199224617,0.27763199224617,0.277648691250001,0.277573202779371,0.277429856538058,0.27725089474477,0.277071872237789,0.276927419718438,0.276846520102093,0.276846520102093, +0.380418660482941,0.380418660482941,0.380400696896604,0.380263811423051,0.380041029562112,0.37977537029853,0.379513453058835,0.379301754734195,0.379182033755912,0.379182033755912, +0.508391848711983,0.508391848711983,0.508323685030718,0.508098933743811,0.507765661202115,0.507381440609106,0.507004905480526,0.506696199243966,0.506516699710199,0.506516699710199, +0.658321864048286,0.658321864048286,0.658192558114656,0.657843411262527,0.657360926569938,0.656821986558772,0.656293020651568,0.65584429897883,0.655565365640973,0.655565365640973, +0.824696862988759,0.824696862988759,0.824527013973842,0.823985633065123,0.823304388455933,0.822575572884072,0.821854864428266,0.821202778075415,0.820731347799522,0.820731347799522, + +00:37:03, +0.12628266605849,0.12628266605849,0.126336669238085,0.126337245927545,0.12629712577987,0.126233093337406,0.12616354056438,0.126105735653527,0.12607313607088,0.12607313607088, +0.12628266605849,0.12628266605849,0.126336669238085,0.126337245927545,0.12629712577987,0.126233093337406,0.12616354056438,0.126105735653527,0.12607313607088,0.12607313607088, +0.15110536474551,0.15110536474551,0.151154622973344,0.151143988927795,0.151088085479998,0.151006238274371,0.150919692722529,0.15084853024115,0.150808560419287,0.150808560419287, +0.201342117460687,0.201342117460687,0.201380019141776,0.201345145063404,0.201255933092657,0.201136824856723,0.201014794712469,0.20091565634984,0.200860178904939,0.200860178904939, +0.277753201125064,0.277753201125064,0.27776989491047,0.277694422729152,0.277551108474496,0.277372186875849,0.277193204682355,0.277048784769346,0.276967903455124,0.276967903455124, +0.38053420123423,0.38053420123423,0.380516233303607,0.380379378033318,0.380156651412615,0.379891060345207,0.379629211349841,0.379417568578405,0.379297879110416,0.379297879110416, +0.508492275128189,0.508492275128189,0.508424116397458,0.508199418276974,0.50786623275353,0.507482115986139,0.507105684091299,0.506797062877782,0.506617612713629,0.506617612713629, +0.6583966495153,0.6583966495153,0.658267365938472,0.657918305135032,0.657435946600377,0.656897151004661,0.656368328150048,0.655919727658728,0.65564086894444,0.65564086894444, +0.824736909685717,0.824736909685717,0.82456710049312,0.824025851653142,0.823344777220162,0.822616146144989,0.821895620787887,0.821243699133276,0.820772386124076,0.820772386124076, + +00:37:04, +0.126396948013773,0.126396948013773,0.12645096085446,0.126451544566881,0.12641142906758,0.126347399323801,0.126277847856257,0.126220043433535,0.126187443976607,0.126187443976607, +0.126396948013773,0.126396948013773,0.12645096085446,0.126451544566881,0.12641142906758,0.126347399323801,0.126277847856257,0.126220043433535,0.126187443976607,0.126187443976607, +0.151222344611886,0.151222344611886,0.151271608405255,0.151260981715474,0.151205086610755,0.15112324776339,0.151036709610259,0.150965552683265,0.150925585853011,0.150925585853011, +0.201462525242848,0.201462525242848,0.201500426346832,0.201465561850065,0.201376366749026,0.201257278993433,0.201135269000015,0.201036146715084,0.200980678207736,0.200980678207736, +0.27787438025754,0.27787438025754,0.277891068836011,0.277815612950397,0.27767233068525,0.277493449281974,0.277314507401507,0.277170120093857,0.277089257080954,0.277089257080954, +0.38064969855265,0.38064969855265,0.380631726295543,0.380494901226397,0.380272229829454,0.380006706933739,0.379744926156344,0.379533338915686,0.379413680944876,0.379413680944876, +0.50859265324454,0.50859265324454,0.508524499478407,0.508299854503866,0.507966755953948,0.507582742954669,0.507206414234399,0.506897877994114,0.506718477170218,0.506718477170218, +0.658471393375214,0.658471393375214,0.658342132154115,0.65799315735122,0.657510924896168,0.656972273622953,0.656443593727217,0.655995114337156,0.655716330196902,0.655716330196902, +0.824776932294616,0.824776932294616,0.824607162902099,0.824066046048142,0.823385141681375,0.822656694981695,0.821936352602141,0.821284595536788,0.820813399717362,0.820813399717362, + +00:37:05, +0.126511242364373,0.126511242364373,0.126565264847812,0.126565855585859,0.126525744753862,0.126461717737393,0.126392167606077,0.126334363696973,0.126301764380123,0.126301764380123, +0.126511242364373,0.126511242364373,0.126565264847812,0.126565855585859,0.126525744753862,0.126461717737393,0.126392167606077,0.126334363696973,0.126301764380123,0.126301764380123, +0.151339327785433,0.151339327785433,0.151388597132836,0.151377977803789,0.15132209105988,0.151240260596027,0.151153729868201,0.151082578517443,0.151042614691054,0.151042614691054, +0.201582920739468,0.201582920739468,0.201620821266228,0.201585966358493,0.201496788140541,0.201377720882055,0.201255731056313,0.201156624862583,0.201101165300255,0.201101165300255, +0.277995529661132,0.277995529661132,0.27801221304414,0.277936773460594,0.277793523187775,0.277614681980561,0.277435780412627,0.277291425709322,0.277210580996919,0.277210580996919, +0.38076515247885,0.38076515247885,0.380747175913031,0.380610381042886,0.380387764853215,0.380122310104705,0.379860597518919,0.379649065786609,0.379529439299864,0.379529439299864, +0.508692983114182,0.508692983114182,0.508624834326679,0.508400242477607,0.508067230856517,0.507683321567885,0.507307095963059,0.506998644646234,0.506819293133258,0.506819293133258, +0.658546095677662,0.658546095677662,0.658416856811207,0.658067967960763,0.657585861507063,0.657047354463493,0.656518817433023,0.656070459064147,0.655791749448445,0.655791749448445, +0.82481693084539,0.82481693084539,0.824647201230738,0.824106216280179,0.823425481869761,0.822697219424524,0.821977059901506,0.821325467316564,0.820854388610085,0.820854388610085, + +00:37:06, +0.126625549068513,0.126625549068513,0.126679581176386,0.126680178942713,0.126640072796914,0.126576048536329,0.126506499771934,0.12644869640189,0.126416097239452,0.126416097239452, +0.126625549068513,0.126625549068513,0.126679581176386,0.126680178942713,0.126640072796914,0.126576048536329,0.126506499771934,0.12644869640189,0.126416097239452,0.126416097239452, +0.151456314236319,0.151456314236319,0.151505589126266,0.151494977162903,0.151439098797498,0.151357276742356,0.151270753466376,0.15119960771366,0.151159646903367,0.151159646903367, +0.201703303942163,0.201703303942163,0.201741203891582,0.20170635858028,0.201617197258753,0.20149815051409,0.201376180872813,0.201277090783745,0.201221640173882,0.201221640173882, +0.278116649353363,0.278116649353363,0.278133327552359,0.278057904277218,0.27791468599951,0.277735884989015,0.277557023733082,0.277412701633081,0.277331875220342,0.277331875220342, +0.380880563053432,0.380880563053432,0.38086258219664,0.380725817523334,0.380503256524435,0.380237869898635,0.379976225478092,0.379764749231697,0.379645154215902,0.379645154215902, +0.508793264790189,0.508793264790189,0.508725120995319,0.508500582251243,0.508167657514313,0.507783851878903,0.507407729330437,0.507099362887338,0.506920060655968,0.506920060655968, +0.658620756472205,0.658620756472205,0.658491539959297,0.658142737013254,0.657660756482737,0.657122393576057,0.656593999317336,0.656145761889659,0.655867126749082,0.655867126749082, +0.824856905367928,0.824856905367928,0.824687215508949,0.824146362379264,0.823465797815461,0.822737719503764,0.822017742716415,0.821366314503167,0.820895352832904,0.820895352832904, + +00:37:07, +0.126739868084475,0.126739868084475,0.12679390979848,0.126794514595731,0.126754413154989,0.126690391678812,0.126620844311979,0.126563041506392,0.126530442512675,0.126530442512675, +0.126739868084475,0.126739868084475,0.12679390979848,0.126794514595731,0.126754413154989,0.126690391678812,0.126620844311979,0.126563041506392,0.126530442512675,0.126530442512675, +0.151573303934755,0.151573303934755,0.15162258435577,0.151611979763023,0.151556109793778,0.151474296172493,0.151387780374844,0.151316640241933,0.151276682459944,0.151276682459944, +0.201823674842573,0.201823674842573,0.201861574214529,0.201826738507038,0.201737594095234,0.201618567881061,0.201496618440985,0.201397544470002,0.201342102820026,0.201342102820026, +0.278237739351741,0.278237739351741,0.278254412378156,0.27817900541773,0.278035819137885,0.277857058324725,0.277678237380227,0.27753394788246,0.277453139768534,0.277453139768534, +0.38099593031695,0.38099593031695,0.380977945186889,0.380841210708243,0.380618704883604,0.380353386356011,0.380091810074339,0.379880389291425,0.379760825733464,0.379760825733464, +0.508893498325562,0.508893498325562,0.508825359537294,0.508600873877749,0.508268035980337,0.507884333940765,0.507508314389618,0.507200032770549,0.507020779791496,0.507020779791496, +0.658695375808329,0.658695375808329,0.658566181647862,0.658217464558215,0.657735609872791,0.657197391010342,0.656669139429955,0.656221022863576,0.655942462148751,0.655942462148751, +0.82489685589207,0.82489685589207,0.824727205766596,0.824186484375358,0.82350608954857,0.822778195249653,0.822058401077252,0.821407137127113,0.820936292416429,0.820936292416429, + +00:37:08, +0.126854199370591,0.126854199370591,0.126908250672451,0.126908862503258,0.126868765786395,0.1268047471231,0.126735201184414,0.126677398968639,0.126644800157929,0.126644800157929, +0.126854199370591,0.126854199370591,0.126908250672451,0.126908862503258,0.126868765786395,0.1268047471231,0.126735201184414,0.126677398968639,0.126644800157929,0.126644800157929, +0.151690296850995,0.151690296850995,0.151739582791614,0.1517289855744,0.151673124018932,0.151591318856598,0.151504810563713,0.151433676072324,0.151393721330822,0.151393721330822, +0.201944033432354,0.201944033432354,0.201981932226724,0.201947106130399,0.201857978641576,0.201738972974508,0.201617043752321,0.201517985912804,0.201462553230113,0.201462553230113, +0.278358799673762,0.278358799673762,0.278375467539006,0.278300076899579,0.278156922620315,0.27797820200507,0.277799421371403,0.277655164474772,0.277574374658793,0.277574374658793, +0.381111254309906,0.381111254309906,0.381093264924251,0.380956560638063,0.380734109971162,0.380468859517267,0.380207351348089,0.379995986006219,0.379876453892977,0.379876453892977, +0.508993683773227,0.508993683773227,0.5089255500055,0.508701117410024,0.508368366307518,0.50798476780644,0.507608851193615,0.507300654348916,0.507121450592914,0.507121450592914, +0.658769953735446,0.658769953735446,0.658640781926301,0.658292150645094,0.657810421726754,0.657272346815974,0.656744237820604,0.656296242035707,0.656017755697314,0.656017755697314, +0.824936782447611,0.824936782447611,0.824767172033497,0.82422658229838,0.823546357099135,0.822818646692383,0.822099035014355,0.821447935218871,0.820977207391221,0.820977207391221, + +00:37:09, +0.126968542885253,0.126968542885253,0.127022603756708,0.127023222623692,0.126983130649495,0.126919114827504,0.126849570347501,0.126791768746848,0.126759170133405,0.126759170133405, +0.126968542885253,0.126968542885253,0.127022603756708,0.127023222623692,0.126983130649495,0.126919114827504,0.126849570347501,0.126791768746848,0.126759170133405,0.126759170133405, +0.151807292955338,0.151807292955338,0.151856584404107,0.151845994567328,0.151790141443214,0.151708344764874,0.151621844003133,0.15155071517494,0.151510763486082,0.151510763486082, +0.202064379703186,0.202064379703186,0.202102277919843,0.202067461442015,0.201978350889391,0.201859365785995,0.201737456798335,0.201638415103622,0.201582991395593,0.201582991395593, +0.278479830336908,0.278479830336908,0.278496493052373,0.2784211187402,0.278277996464201,0.278099316047414,0.277920575723939,0.277776351427317,0.277695579908403,0.277695579908403, +0.381226535072757,0.381226535072757,0.381208541449147,0.381071867353199,0.3808494718275,0.380584289422785,0.380322849339721,0.380111539416455,0.379992038734816,0.379992038734816, +0.509093821186037,0.509093821186037,0.509025692452759,0.508801312900895,0.508468648548712,0.508085153528824,0.507709339795366,0.507401227675417,0.507222073113222,0.507222073113222, +0.658844490302894,0.658844490302894,0.658715340843944,0.658366795323263,0.65788519209408,0.657347261042504,0.656819294538931,0.656371419455787,0.656093007444561,0.656093007444561, +0.824976685064301,0.824976685064301,0.824807114339425,0.824266656178198,0.823586600497157,0.822859073862099,0.822139644558014,0.821488708808863,0.821018097787795,0.821018097787795, + +00:37:10, +0.127082898586904,0.127082898586904,0.127136969009714,0.127137594915486,0.127097507702706,0.127033494750393,0.126963951759552,0.126906150799288,0.126873552397347,0.126873552397347, +0.127082898586904,0.127082898586904,0.127136969009714,0.127137594915486,0.127097507702706,0.127033494750393,0.126963951759552,0.126906150799288,0.126873552397347,0.126873552397347, +0.151924292218124,0.151924292218124,0.151973589163605,0.151963006712145,0.151907162036925,0.15182537386757,0.151738880663298,0.151667757519931,0.15162780889585,0.15162780889585, +0.202184713646767,0.202184713646767,0.202222611285582,0.20218780443356,0.202098710830312,0.201979746307105,0.201857857570557,0.201758832033949,0.201703417307935,0.201703417307935, +0.278600831358648,0.278600831358648,0.278617488935705,0.278542130957015,0.278399040686932,0.278220400469109,0.278041700455152,0.277897508757385,0.277816755534638,0.277816755534638, +0.381341772645908,0.381341772645908,0.381323774801951,0.381187130894003,0.380964790492962,0.380699676112903,0.380438304089567,0.380227049562464,0.380107580299311,0.380107580299311, +0.509193910616772,0.509193910616772,0.509125786931821,0.508901460403117,0.508568882756699,0.508185491160739,0.507809780247737,0.507501752802953,0.507322647405346,0.507322647405346, +0.658918985559938,0.658918985559938,0.658789858450043,0.658441398642022,0.657959921024147,0.657422133739406,0.656894309634511,0.656446555173476,0.656168217440207,0.656168217440207, +0.825016563771841,0.825016563771841,0.824847032714106,0.824306706044636,0.823626819772591,0.822899476788901,0.822180229738471,0.821529457927461,0.82105896363662,0.82105896363662, + +00:37:11, +0.127197266434042,0.127197266434042,0.127251346389989,0.127251979337147,0.127211896904501,0.127147886850187,0.127078345378937,0.127020545084286,0.126987946908058,0.126987946908058, +0.127197266434042,0.127197266434042,0.127251346389989,0.127251979337147,0.127211896904501,0.127147886850187,0.127078345378937,0.127020545084286,0.126987946908058,0.126987946908058, +0.15204129460974,0.15204129460974,0.152090597040503,0.152080021979232,0.152024185770406,0.151942406134975,0.151855920514444,0.15178480307749,0.151744857530294,0.151744857530294, +0.202305035254815,0.202305035254815,0.202342932315658,0.202308135096726,0.202219058455992,0.20210011452944,0.201978246060541,0.201879236695297,0.201823830958629,0.201823830958629, +0.278721802756437,0.278721802756437,0.278738455206438,0.278663113567433,0.278520055305884,0.278341455287494,0.278162795582344,0.278018636482249,0.277937901554757,0.277937901554757, +0.381456967069716,0.381456967069716,0.381438965022989,0.381302351300782,0.381080066007841,0.380815019627906,0.380553715637908,0.380342516484526,0.380223078626743,0.380223078626743, +0.50929395211814,0.50929395211814,0.50922583349536,0.509001559969369,0.50866906898419,0.508285780754934,0.50791017260352,0.507602229784355,0.507423173522139,0.507423173522139, +0.658993439555767,0.658993439555767,0.658864334793778,0.658515960650596,0.658034608566263,0.657496964956086,0.656969283156846,0.656521649238362,0.656243385733892,0.656243385733892, +0.825056418599887,0.825056418599887,0.824886927187218,0.82434673192747,0.823667014955343,0.822939855502839,0.822220790585922,0.821570182604993,0.821099804968116,0.821099804968116, + +00:37:12, +0.127311646385221,0.127311646385221,0.127365735856106,0.127366375847238,0.127326298213406,0.127262291085364,0.12719275116408,0.12713495156022,0.127102353623893,0.127102353623893, +0.127311646385221,0.127311646385221,0.127365735856106,0.127366375847238,0.127326298213406,0.127262291085364,0.12719275116408,0.12713495156022,0.127102353623893,0.127102353623893, +0.152158300100612,0.152158300100612,0.152207608005243,0.152197040339012,0.152141212614044,0.152059441537425,0.151972963526852,0.151901851817853,0.151861909359627,0.151861909359627, +0.202425344519071,0.202425344519071,0.202463241001807,0.202428453423227,0.202339393758103,0.202220470444624,0.202098622259861,0.201999629079199,0.201944232339186,0.201944232339186, +0.278842744547718,0.278842744547718,0.278859391881994,0.278784066588851,0.278641040338419,0.278462480519893,0.278283861122805,0.278139734619173,0.278059017986007,0.278059017986007, +0.381572118384491,0.381572118384491,0.381554112152536,0.381417528613793,0.381195298412383,0.380930320008033,0.38066908402498,0.380457940222873,0.380338533757342,0.380338533757342, +0.509393945742774,0.509393945742774,0.50932583219598,0.50910161165226,0.508769207283821,0.508386022364086,0.508010516915434,0.507702658672381,0.507523651516381,0.507523651516381, +0.659067852339499,0.659067852339499,0.658938769924257,0.658590481398139,0.658109254769659,0.65757175474187,0.657044215155362,0.656596701699956,0.656318512375183,0.656318512375183, +0.825096249578049,0.825096249578049,0.824926797788394,0.824386733856432,0.823707186075274,0.822980210033918,0.822261327130516,0.821610882871738,0.821140621812654,0.821140621812654, + +00:37:13, +0.127426038399049,0.127426038399049,0.127480137366694,0.127480784404376,0.127440711588003,0.127376707414455,0.127307169073459,0.127249370185527,0.127216772503261,0.127216772503261, +0.127426038399049,0.127426038399049,0.127480137366694,0.127480784404376,0.127440711588003,0.127376707414455,0.127307169073459,0.127249370185527,0.127216772503261,0.127216772503261, +0.152275308661213,0.152275308661213,0.152324622028308,0.152314061761954,0.152258242538268,0.152176480045296,0.152090009670847,0.152018903711302,0.151978964354106,0.151978964354106, +0.202545641431292,0.202545641431292,0.202583537335785,0.202548759404795,0.20245971672834,0.2023408140443,0.20221898616011,0.202120009177208,0.202064621441136,0.202064621441136, +0.27896365674992,0.27896365674992,0.278980298979783,0.27890499003865,0.278761995801887,0.27858347618362,0.278404897093813,0.278260803185404,0.278180104845622,0.278180104845622, +0.381687226630492,0.381687226630492,0.38166921623082,0.381532662873244,0.381310487746786,0.381045577293476,0.380784409290968,0.380573320817689,0.380453945731294,0.380453945731294, +0.509493891543236,0.509493891543236,0.509425783086211,0.509201615504323,0.508869297708154,0.508486216040797,0.508110813236127,0.507803039519715,0.50762408144078,0.50762408144078, +0.659142223960179,0.659142223960179,0.659013163890513,0.658664960933728,0.658183859683495,0.657646503146016,0.657119105679414,0.656671712607698,0.656393597413572,0.656393597413572, +0.82513605673589,0.82513605673589,0.824966644547222,0.824426711861204,0.823747333162199,0.823020540412096,0.822301839402355,0.821651558757929,0.821181414200561,0.821181414200561, + +00:37:14, +0.127540442434189,0.127540442434189,0.127594550880434,0.127595204967233,0.127555136986928,0.127491135796046,0.127421599065607,0.127363800918695,0.127331203504629,0.127331203504629, +0.127540442434189,0.127540442434189,0.127594550880434,0.127595204967233,0.127555136986928,0.127491135796046,0.127421599065607,0.127363800918695,0.127331203504629,0.127331203504629, +0.152392320262058,0.152392320262058,0.152441639080224,0.152431086218567,0.15237527551355,0.15229352162901,0.152207058916797,0.152135958728161,0.152096022484028,0.152096022484028, +0.202665925983257,0.202665925983257,0.202703821309368,0.202669053033183,0.202580027358415,0.202461145320132,0.202339337752902,0.202240376980897,0.202184998256031,0.202184998256031, +0.27908453938046,0.27908453938046,0.2791011765172,0.2790258839342,0.278882921713624,0.278704442295975,0.278525903512632,0.27838184219818,0.278301162150823,0.278301162150823, +0.38180229184793,0.38180229184793,0.38178427729802,0.381647754119295,0.381425634051198,0.381160791524375,0.380899691476009,0.38068865830911,0.380569314588732,0.380569314588732, +0.509593789572013,0.509593789572013,0.50952568621851,0.509301571578022,0.50896934030968,0.5085863618376,0.508211061618172,0.507903372378968,0.507724463347972,0.507724463347972, +0.659216554466776,0.659216554466776,0.659087516741504,0.658739399306369,0.658258423356856,0.657721210217704,0.657193954778281,0.656746682010953,0.656468640898478,0.656468640898478, +0.825175840102928,0.825175840102928,0.825006467493243,0.824466665971426,0.823787456245886,0.823060846667285,0.822342327431495,0.821692210293751,0.821222182162114,0.821222182162114, + +00:37:15, +0.127654858449357,0.127654858449357,0.127708976356065,0.127709637494534,0.127669574368871,0.127605576188778,0.127536041099113,0.127478243718269,0.127445646586516,0.127445646586516, +0.127654858449357,0.127654858449357,0.127708976356065,0.127709637494534,0.127669574368871,0.127605576188778,0.127536041099113,0.127478243718269,0.127445646586516,0.127445646586516, +0.152509334873704,0.152509334873704,0.152558659131563,0.152548113679407,0.152492311510406,0.152410566259032,0.152324111235112,0.152253016838797,0.152213083719738,0.152213083719738, +0.202786198166764,0.202786198166764,0.202824092914353,0.202789334300165,0.202700325640061,0.202581464263805,0.202459677029871,0.202360732481862,0.202305362775442,0.202305362775442, +0.279205392456738,0.279205392456738,0.279222024511629,0.279146748292857,0.279003818090953,0.278825378874244,0.278646880396513,0.278502851674725,0.278422189918819,0.278422189918819, +0.381917314076969,0.381917314076969,0.381899295394266,0.381762802392057,0.38154073736572,0.381275962740823,0.381014930620194,0.380803952737224,0.380684640369745,0.380684640369745, +0.509693639881521,0.509693639881521,0.509625541645263,0.509401479925747,0.509069335140817,0.508686459806952,0.50831126211407,0.508003657302679,0.507824797290516,0.507824797290516, +0.659290843908188,0.659290843908188,0.65916182852612,0.658813796564995,0.658332945838755,0.657795876006044,0.65726876250117,0.656821609959012,0.656543642879247,0.656543642879247, +0.825215599708635,0.825215599708635,0.825046266655951,0.824506596216689,0.823827555356057,0.823101128829349,0.822382791247943,0.821732837509344,0.821262925727546,0.821262925727546, + +00:37:16, +0.127769286403325,0.127769286403325,0.127823413752376,0.12782408194506,0.127784023692577,0.127720028551345,0.127650495132618,0.127592698542848,0.127560101707496,0.127560101707496, +0.127769286403325,0.127769286403325,0.127823413752376,0.12782408194506,0.127784023692577,0.127720028551345,0.127650495132618,0.127592698542848,0.127560101707496,0.127560101707496, +0.152626352466752,0.152626352466752,0.152675682152937,0.152665144115071,0.152609350499395,0.152527613905868,0.152441166596247,0.15237007801362,0.152330148031622,0.152330148031622, +0.202906457973633,0.202906457973633,0.202944352142555,0.202909603197532,0.202820611565032,0.202701770867022,0.202580003982671,0.202481075671715,0.202425714990961,0.202425714990961, +0.279326215996145,0.279326215996145,0.279342842980438,0.279267583131963,0.279124684951185,0.2789462859357,0.278767827762695,0.278623831632249,0.278543188166805,0.278543188166805, +0.382032293357722,0.382032293357722,0.382014270559641,0.381877807731594,0.381655797730403,0.381391090982867,0.381130126763562,0.380919204142069,0.380799923114372,0.380799923114372, +0.509793442524104,0.509793442524104,0.50972534941878,0.509501340599813,0.50916928225391,0.508786510001238,0.50841141477625,0.508103894343316,0.507925083320905,0.507925083320905, +0.65936509233324,0.65936509233324,0.659236099293173,0.658888152758465,0.658407427178131,0.657870500560071,0.657343528897214,0.656896496501094,0.656618603405151,0.656618603405151, +0.825255335582437,0.825255335582437,0.825086042064796,0.824546502626539,0.823867630522387,0.823141386928107,0.822423230881662,0.821773440434798,0.821303644927042,0.821303644927042, + +00:37:17, +0.127883726254919,0.127883726254919,0.127937863028215,0.127938538277645,0.127898484916846,0.127834492842496,0.127764961124818,0.127707165351085,0.127674568826198,0.127674568826198, +0.127883726254919,0.127883726254919,0.127937863028215,0.127938538277645,0.127898484916846,0.127834492842496,0.127764961124818,0.127707165351085,0.127674568826198,0.127674568826198, +0.152743373011848,0.152743373011848,0.152792708115002,0.152782177496197,0.152726392451118,0.15264466454007,0.152558224970699,0.152487142223086,0.15244721539011,0.15244721539011, +0.203026705395702,0.203026705395702,0.203064598985811,0.203029859717099,0.202940885125102,0.202822065121506,0.202700318602977,0.202601406542092,0.202546054894199,0.202546054894199, +0.279447010016057,0.279447010016057,0.279463631940985,0.279388388468849,0.279245522311615,0.279067163497604,0.278888745628403,0.27874478208795,0.278664156911965,0.278664156911965, +0.382147229730256,0.382147229730256,0.382129202834178,0.381992770177919,0.381770815185251,0.381506176290503,0.381245279946108,0.381034412563637,0.380915162862604,0.380915162862604, +0.509893197552031,0.509893197552031,0.509825109591303,0.509601153652465,0.509269181701232,0.508886512472773,0.508511519657069,0.508204083553271,0.508025321491554,0.508025321491554, +0.659439299790683,0.659439299790683,0.659310329091404,0.658962467935565,0.65848186742385,0.657945083928747,0.657418254015474,0.656971341686344,0.656693522525388,0.656693522525388, +0.825295047753713,0.825295047753713,0.825125793749181,0.824586385230475,0.823907681774506,0.823181620993332,0.822463646362567,0.821814019100159,0.821344339790738,0.821344339790738, + +00:37:18, +0.127998177963019,0.127998177963019,0.12805232414248,0.128053006451179,0.128012958000532,0.127948969021037,0.127879439034467,0.127821644101688,0.127789047901306,0.127789047901306, +0.127998177963019,0.127998177963019,0.12805232414248,0.128053006451179,0.128012958000532,0.127948969021037,0.127879439034467,0.127821644101688,0.127789047901306,0.127789047901306, +0.152860396479677,0.152860396479677,0.152909736988458,0.152899213793471,0.152843437336222,0.152761718132232,0.15267528632901,0.152604209437691,0.152564285765674,0.152564285765674, +0.203146940424829,0.203146940424829,0.203184833435976,0.203150103850698,0.203061146312062,0.202942347019003,0.202820620882484,0.202721725084647,0.20266638247679,0.20266638247679, +0.279567774533836,0.279567774533836,0.27958439141061,0.279509164320831,0.279366330189529,0.279188011577203,0.279009634010849,0.278865703059013,0.278785096171468,0.278785096171468, +0.382262123234587,0.382262123234587,0.382244092257862,0.382107689770999,0.381885789770219,0.38162121870368,0.381360390207775,0.381149578041871,0.381030359654384,0.381030359654384, +0.5099929050175,0.5099929050175,0.509924822214998,0.509700919135876,0.509369033534985,0.508986467273796,0.508611576808811,0.508304224984867,0.508125511854808,0.508125511854808, +0.659513466329196,0.659513466329196,0.659384517969483,0.65903674214501,0.658556266624705,0.658019626160961,0.657492937904935,0.657046145563833,0.656768400289083,0.656768400289083, +0.825334736251799,0.825334736251799,0.825165521738463,0.824626244057954,0.823947709141997,0.823221831054749,0.822504037720528,0.821854573535425,0.821385010348725,0.821385010348725, + +00:37:19, +0.12811264148656,0.12811264148656,0.128166797054128,0.128167486424604,0.128127442902541,0.128063457045824,0.127993928820368,0.12793613475342,0.127903538891558,0.127903538891558, +0.12811264148656,0.12811264148656,0.128166797054128,0.128167486424604,0.128127442902541,0.128063457045824,0.127993928820368,0.12793613475342,0.127903538891558,0.127903538891558, +0.152977422840971,0.152977422840971,0.153026768744047,0.153016252977617,0.152960485125394,0.15287877465299,0.152792350641764,0.152721279627976,0.152681359128831,0.152681359128831, +0.203267163052892,0.203267163052892,0.203305055484926,0.20327033559018,0.203181395117726,0.203062616551275,0.202940910812905,0.202842031291054,0.202786697730386,0.202786697730386, +0.279688509566831,0.279688509566831,0.279705121406645,0.279629910705212,0.279487108602195,0.279308830191732,0.279130492927233,0.27898659456261,0.278906005962472,0.278906005962472, +0.382376973910684,0.382376973910684,0.382358938870631,0.382222566550752,0.382000721525215,0.381736218262298,0.381475457588461,0.381264700616666,0.381145513529606,0.381145513529606, +0.510092564972638,0.510092564972638,0.51002448734196,0.509800637102147,0.509468837807295,0.509086374456478,0.508711586283688,0.508404318690353,0.508225654462941,0.508225654462941, +0.659587591997385,0.659587591997385,0.659458665976005,0.65911097543544,0.658630624829418,0.65809412730553,0.657567580614513,0.65712090818256,0.656843236745289,0.656843236745289, +0.825374401105983,0.825374401105983,0.825205226061956,0.824666079138381,0.823987712654399,0.823262017142038,0.822544404985366,0.821895103770549,0.821425656631048,0.821425656631048, + +00:37:20, +0.128227116784529,0.128227116784529,0.128281281722165,0.128281978156919,0.128241939581837,0.128177956875771,0.128108430441382,0.128050637265096,0.128018041755746,0.128018041755746, +0.128227116784529,0.128227116784529,0.128281281722165,0.128281978156919,0.128241939581837,0.128177956875771,0.128108430441382,0.128050637265096,0.128018041755746,0.128018041755746, +0.153094452066502,0.153094452066502,0.153143803352554,0.153133295019406,0.153077535789365,0.152995834073024,0.152909417879586,0.152838352764524,0.152798435450141,0.152798435450141, +0.203387373271788,0.203387373271788,0.203425265124554,0.203390554927419,0.203301631533926,0.203182873710107,0.203061188385975,0.202962325153008,0.202907000646659,0.202907000646659, +0.279809215132378,0.279809215132378,0.279825821946405,0.279750627639281,0.279607857566872,0.279429619358411,0.279251322394742,0.279107456615901,0.27902688630212,0.27902688630212, +0.382491781798469,0.382491781798469,0.382473742712373,0.382337400557047,0.382115610490098,0.38185117500621,0.381590482128014,0.38137978032787,0.381260624528119,0.381260624528119, +0.510192177469498,0.510192177469498,0.510124105024214,0.509900307603304,0.509568594570221,0.509186234072914,0.508811548133839,0.508504364721907,0.508325749368153,0.508325749368153, +0.659661676843784,0.659661676843784,0.659532773159494,0.659185167855425,0.658704942086637,0.658168587411199,0.657642182193047,0.657195629591451,0.656918031942984,0.656918031942984, +0.825414042345508,0.825414042345508,0.825244906748924,0.824705890501122,0.824027692341201,0.823302179284833,0.822584748186857,0.821935609835436,0.821466278667705,0.821466278667705, + +00:37:21, +0.12834160381597,0.12834160381597,0.128395778105656,0.128396481607176,0.128356447997437,0.128292468469843,0.128222943856424,0.128165151595589,0.128132556452717,0.128132556452717, +0.12834160381597,0.12834160381597,0.128395778105656,0.128396481607176,0.128356447997437,0.128292468469843,0.128222943856424,0.128165151595589,0.128132556452717,0.128132556452717, +0.153211484127085,0.153211484127085,0.153260840784807,0.153250339889648,0.153194589298909,0.153112896363058,0.153026488013149,0.152955428817964,0.152915514700206,0.152915514700206, +0.203507571073435,0.203507571073435,0.203545462346778,0.203510761854305,0.203421855552516,0.203303118487302,0.203181453593449,0.203082606662224,0.203027291217302,0.203027291217302, +0.2799298912478,0.2799298912478,0.279946493047193,0.279871315140315,0.279728577100803,0.279550379094449,0.279372122430549,0.279228289236031,0.279147737207544,0.279147737207544, +0.382606546937813,0.382606546937813,0.382588503822928,0.382452191829707,0.382230456704677,0.38196608897522,0.381705463866235,0.381494817215282,0.381375692689722,0.381375692689722, +0.510291742560062,0.510291742560062,0.510223675313709,0.509999930691305,0.509668303875746,0.50928604617513,0.508911462411332,0.508604363131634,0.508425796622571,0.508425796622571, +0.659735720916855,0.659735720916855,0.6596068395684,0.65925931945346,0.658779218444937,0.658243006526637,0.657716742689308,0.657270309839359,0.656992785931076,0.656992785931076, +0.825453659999573,0.825453659999573,0.825284563828591,0.824745678175492,0.824067648231852,0.823342317512722,0.822625067354734,0.821976091759945,0.821506876488646,0.821506876488646, + +00:37:22, +0.12845610253998,0.12845610253998,0.128510286163716,0.128510996734479,0.128470968108409,0.128406991787063,0.128337469024461,0.128279677703823,0.128247082941371,0.128247082941371, +0.12845610253998,0.12845610253998,0.128510286163716,0.128510996734479,0.128470968108409,0.128406991787063,0.128337469024461,0.128279677703823,0.128247082941371,0.128247082941371, +0.153328518993581,0.153328518993581,0.153377881011676,0.153367387559199,0.153311645624843,0.153229961493858,0.153143561013164,0.153072507758964,0.153032596849672,0.153032596849672, +0.20362775644977,0.20362775644977,0.203665647143529,0.203630956362751,0.203542067165367,0.203423350874684,0.203301706427102,0.203202875810437,0.203147569434027,0.203147569434027, +0.280050537930405,0.280050537930405,0.280067134726299,0.279991973225577,0.27984926722122,0.27967110941704,0.279492893051814,0.279349092440134,0.279268558695863,0.279268558695863, +0.382721269368542,0.382721269368542,0.382703222242088,0.382566940408505,0.382345260208718,0.382080960209085,0.381820402842877,0.381609811318653,0.381490718054166,0.381490718054166, +0.510391260296239,0.510391260296239,0.510323198262325,0.510099506418033,0.509767965775784,0.509385810815078,0.509011329168164,0.508704313971568,0.508525796278254,0.508525796278254, +0.659809724264986,0.659809724264986,0.659680865251103,0.659333430277969,0.658853453952821,0.658317384700444,0.65779126215199,0.657344948975064,0.657067498758397,0.657067498758397, +0.82549325409733,0.82549325409733,0.82532419733013,0.824785442190763,0.82410758035575,0.823382431855248,0.822665362518678,0.822016549573888,0.821547450123776,0.821547450123776, + +00:37:23, +0.12857061291571,0.12857061291571,0.128624805855516,0.128625523497989,0.12858549987388,0.128521526786504,0.128452005904517,0.128394215548778,0.128361621180665,0.128361621180665, +0.12857061291571,0.12857061291571,0.128624805855516,0.128625523497989,0.12858549987388,0.128521526786504,0.128452005904517,0.128394215548778,0.128361621180665,0.128361621180665, +0.15344555663689,0.15344555663689,0.153494924004075,0.153484437998956,0.153428704738027,0.153347029436232,0.153260636850388,0.153189589558238,0.153149681869227,0.153149681869227, +0.203747929392749,0.203747929392749,0.203785819506764,0.203751138444687,0.203662266364371,0.203543570864096,0.203421946878726,0.203323132589401,0.203267835288568,0.203267835288568, +0.28017115519749,0.28017115519749,0.280187747000998,0.280112601912318,0.27996992794534,0.279791810343367,0.279613634275684,0.279469866245331,0.279389350784182,0.279389350784182, +0.38283594913043,0.38283594913043,0.382817898009599,0.382681646333166,0.382460021041933,0.382195788747514,0.381935299097645,0.381724762677688,0.381605700661154,0.381605700661154, +0.510490730729867,0.510490730729867,0.51042267392187,0.510199034835302,0.509867580322174,0.50948552804464,0.509111148456258,0.508804217293671,0.508625748387186,0.508625748387186, +0.659883686936494,0.659883686936494,0.659754850255909,0.659407500377305,0.658927648658721,0.658391721981147,0.657865740629718,0.657419547047275,0.657142170473709,0.657142170473709, +0.825532824667887,0.825532824667887,0.825363807282673,0.824825182576162,0.82414748874225,0.823422522341905,0.822705633708329,0.822056983307034,0.821587999602954,0.821587999602954, + +00:37:24, +0.128685134902364,0.128685134902364,0.128739337140282,0.128740061856919,0.128700043253028,0.128636073427297,0.128566554455668,0.128508765089488,0.128476171129607,0.128476171129607, +0.128685134902364,0.128685134902364,0.128739337140282,0.128740061856919,0.128700043253028,0.128636073427297,0.128566554455668,0.128508765089488,0.128476171129607,0.128476171129607, +0.153562597027957,0.153562597027957,0.15361196973296,0.15360149117986,0.153545766609362,0.153464100161031,0.153377715495619,0.153306674186541,0.153266769729604,0.153266769729604, +0.203868089894347,0.203868089894347,0.203905979428454,0.203871308092063,0.203782453141439,0.2036637784474,0.203542174940137,0.203443376990891,0.203388088772676,0.203388088772676, +0.280291743066336,0.280291743066336,0.280308329888553,0.280233201217773,0.280090559290367,0.279912481890598,0.279734346119296,0.279590610668729,0.279510113489594,0.279510113489594, +0.382950586263205,0.382950586263205,0.382932531165155,0.382796309643368,0.38257473924399,0.382310574630167,0.382050152670195,0.381839671332041,0.381720640550344,0.381720640550344, +0.510590153912713,0.510590153912713,0.51052210234408,0.510298515994851,0.509967147566686,0.509585197915625,0.509210920327468,0.508904073149832,0.50872565300128,0.50872565300128, +0.659957608979626,0.659957608979626,0.659828794631054,0.659481529799746,0.659001802610996,0.658466018417199,0.657940178171041,0.657494104104626,0.6572168011257,0.6572168011257, +0.825572371740306,0.825572371740306,0.825403393715305,0.82486489936087,0.824187373420662,0.823462589002145,0.822745880953279,0.822097392989102,0.821628524955992,0.821628524955992, + +00:37:25, +0.128799668459202,0.128799668459202,0.128853879977292,0.128854611770538,0.128814598205085,0.128750631668623,0.128681114637045,0.12862332628504,0.128590732747262,0.128590732747262, +0.128799668459202,0.128799668459202,0.128853879977292,0.128854611770538,0.128814598205085,0.128750631668623,0.128681114637045,0.12862332628504,0.128590732747262,0.128590732747262, +0.153679640137767,0.153679640137767,0.15372901816933,0.153718547072893,0.153662831209795,0.15358117363915,0.1534947969197,0.153423761614673,0.153383860401577,0.153383860401577, +0.203988237946562,0.203988237946562,0.204026126900592,0.203991465296851,0.203902627488503,0.20378397361648,0.203662390603168,0.203563609006701,0.203508329878124,0.203508329878124, +0.280412301554213,0.280412301554213,0.280428883406214,0.280353771159167,0.280211161273492,0.280033124075888,0.279855028599768,0.279711325727422,0.27963084682918,0.27963084682918, +0.383065180806548,0.383065180806548,0.383047121748405,0.38291093037874,0.382689414854509,0.382425317896657,0.382164963600139,0.381954537321322,0.381835537761343,0.381835537761343, +0.510689529896471,0.510689529896471,0.510621483580619,0.51039794994835,0.510066667561018,0.50968482047977,0.509310644833574,0.509003881591872,0.508825510172378,0.508825510172378, +0.660031490442553,0.660031490442553,0.659902698424699,0.659555518593502,0.659075915857932,0.658540274056982,0.658014574824441,0.657568620195681,0.657291390762987,0.657291390762987, +0.825611895343604,0.825611895343604,0.825442956657067,0.824904592574022,0.824227234420249,0.823502631865373,0.822786104283073,0.822137778649767,0.821669026212656,0.821669026212656, + +00:37:26, +0.128914213545537,0.128914213545537,0.128968434325879,0.128969173198167,0.128929164689338,0.128865201469721,0.128795686407833,0.128737899094577,0.128705305992746,0.128705305992746, +0.128914213545537,0.128914213545537,0.128968434325879,0.128969173198167,0.128929164689338,0.128865201469721,0.128795686407833,0.128737899094577,0.128705305992746,0.128705305992746, +0.153796685937352,0.153796685937352,0.153846069284226,0.15383560564908,0.153779898510312,0.153698249841527,0.153611881093515,0.153540851813474,0.153500953855963,0.153500953855963, +0.204108373541406,0.204108373541406,0.204146261915192,0.204111610051038,0.204022789397512,0.203904156363237,0.203782593859672,0.203683828628646,0.203628558596705,0.203628558596705, +0.280532830678377,0.280532830678377,0.280549407571217,0.280474311753708,0.280331733911894,0.280153736916381,0.279975681734211,0.279832011438492,0.279751550820005,0.279751550820005, +0.383179732800091,0.383179732800091,0.38316166979895,0.383025508578864,0.38280404791306,0.382540018586549,0.382279731927036,0.38206936068509,0.381950392333711,0.381950392333711, +0.510788858732764,0.510788858732764,0.510720817683079,0.510497336747397,0.510166140356797,0.509784395788744,0.509410322026285,0.509103642671536,0.50892531995225,0.50892531995225, +0.660105331373377,0.660105331373377,0.659976561684937,0.659629466806708,0.659149988447745,0.658614488948808,0.658088930638322,0.65764309536893,0.657365939434113,0.657365939434113, +0.825651395506754,0.825651395506754,0.825482496136953,0.824944262244709,0.82426707177023,0.823542650960947,0.822826303727213,0.822178140318657,0.821709503402666,0.821709503402666, + +00:37:27, +0.129028770120736,0.129028770120736,0.129083000145429,0.129083746099181,0.129043742665128,0.128979782789881,0.128910269727272,0.128852483477294,0.128819890825233,0.128819890825233, +0.129028770120736,0.129028770120736,0.129083000145429,0.129083746099181,0.129043742665128,0.128979782789881,0.128910269727272,0.128852483477294,0.128819890825233,0.128819890825233, +0.153913734397782,0.153913734397782,0.153963123048731,0.153952666879489,0.153896968481944,0.15381532873914,0.153728967987991,0.153657944753829,0.153618050063622,0.153618050063622, +0.204228496670915,0.204228496670915,0.204266384464285,0.204231742346635,0.204142938860438,0.204024326679593,0.203902784701523,0.203804035848558,0.20374877492023,0.20374877492023, +0.280653330456069,0.280653330456069,0.280669902400783,0.280594823018595,0.280452277222738,0.280274320429205,0.280096305539719,0.279952667819007,0.279872225479123,0.279872225479123, +0.383294242283417,0.383294242283417,0.38327617535634,0.383140044283273,0.382918638459166,0.382654676739361,0.382394457690402,0.382184141462859,0.382065204306963,0.382065204306963, +0.510888140473144,0.510888140473144,0.510820104702983,0.510596676443519,0.510265566005576,0.50988392389414,0.509509951957241,0.509203356440502,0.509025082392596,0.509025082392596, +0.660179131820129,0.660179131820129,0.660050384459788,0.65970337448743,0.659224020428578,0.658688663140914,0.658163245661021,0.657717529672793,0.657440447187551,0.657440447187551, +0.825690872258682,0.825690872258682,0.825522012183913,0.824983908401977,0.824306885499778,0.823582646318182,0.822866479315153,0.822218478025355,0.821749956555696,0.821749956555696, + +00:37:28, +0.129143338144218,0.129143338144218,0.129197577395383,0.129198330433011,0.129158332091849,0.129094375588448,0.129024864554653,0.128967079392442,0.128934487203947,0.128934487203947, +0.129143338144218,0.129143338144218,0.129197577395383,0.129198330433011,0.129158332091849,0.129094375588448,0.129024864554653,0.128967079392442,0.128934487203947,0.128934487203947, +0.154030785490171,0.154030785490171,0.154080179433973,0.154069730735231,0.154014041095763,0.153932410303011,0.153846057574099,0.153775040406665,0.153735148995459,0.153735148995459, +0.204348607327142,0.204348607327142,0.204386494539921,0.20435186217567,0.204263075869269,0.204144484557489,0.204022963120613,0.203924230658292,0.203868978840531,0.203868978840531, +0.280773800904519,0.280773800904519,0.280790367912124,0.280715304971009,0.280572791223173,0.280394874631476,0.280216900033374,0.280073294886024,0.279992870823577,0.279992870823577, +0.383408709296062,0.383408709296062,0.383390638460081,0.383254537531454,0.383033186532304,0.382769292394562,0.382509140929703,0.382298879694094,0.382179973720563,0.382179973720563, +0.51098737516909,0.51098737516909,0.51091934469178,0.510695969088172,0.510364944558841,0.509983404847483,0.509609534678009,0.509303022950372,0.509124797545043,0.509124797545043, +0.660252891830766,0.660252891830766,0.660124166797199,0.659777241683659,0.659298011848504,0.658762796681467,0.6582375199408,0.657791923155617,0.657514914071699,0.657514914071699, +0.825730325628272,0.825730325628272,0.825561504826854,0.825023531074825,0.82434667563802,0.823622617966346,0.822906631076303,0.822258791799399,0.821790385701373,0.821790385701373, + +00:37:29, +0.129257917575458,0.129257917575458,0.129312166035234,0.129312926159138,0.129272932928949,0.129208979824821,0.129139470849324,0.129081686799325,0.129049095088168,0.129049095088168, +0.129257917575458,0.129257917575458,0.129312166035234,0.129312926159138,0.129272932928949,0.129208979824821,0.129139470849324,0.129081686799325,0.129049095088168,0.129049095088168, +0.154147839185678,0.154147839185678,0.154197238411119,0.154186797187459,0.154131116322885,0.154049494504207,0.153963149822849,0.153892138742953,0.153852250622418,0.153852250622418, +0.20446870550216,0.20446870550216,0.204506592134171,0.204471969530189,0.204383200416015,0.204264629988887,0.204143129108855,0.204044413049722,0.203989170349459,0.203989170349459, +0.280894242040941,0.280894242040941,0.280910804122433,0.280835757628121,0.280693275930339,0.280515399540298,0.280337465232247,0.280193892656585,0.280113486870394,0.280113486870394, +0.383523133877514,0.383523133877514,0.38350505914963,0.383368988362843,0.383147692171901,0.382883865591574,0.382623781684357,0.382413575418214,0.382294700613931,0.382294700613931, +0.511086562872013,0.511086562872013,0.511018537700849,0.510795214732738,0.510464276068003,0.510082838700226,0.509709070240083,0.509402642252682,0.509224465461147,0.509224465461147, +0.660326611453175,0.660326611453175,0.660197908745047,0.659851068443318,0.659371962755522,0.658836889618562,0.658311753525851,0.657866275865677,0.657589340134887,0.657589340134887, +0.825769755644362,0.825769755644362,0.825600974094636,0.825063130292211,0.82438644221404,0.823662565934662,0.822946759040027,0.82229908167028,0.82183079086928,0.82183079086928, + +00:37:30, +0.129372508373985,0.129372508373985,0.129426766024531,0.1294275332371,0.129387545135929,0.129323595458452,0.129254088570685,0.129196305657299,0.12916371443723,0.12916371443723, +0.129372508373985,0.129372508373985,0.129426766024531,0.1294275332371,0.129387545135929,0.129323595458452,0.129254088570685,0.129196305657299,0.12916371443723,0.12916371443723, +0.1542648954555,0.1542648954555,0.154314299951381,0.154303866207367,0.154248194134467,0.154166581313833,0.154080244705299,0.154009239733703,0.153969354915487,0.153969354915487, +0.204588791188062,0.204588791188062,0.204626677239125,0.204592064402261,0.204503312492703,0.204384762965766,0.204263282658181,0.204164583014739,0.204109349438887,0.204109349438887, +0.281014653882538,0.281014653882538,0.281031211048895,0.280956181007087,0.280813731361361,0.280635895172759,0.280458001153391,0.280314461147719,0.280234073636588,0.280234073636588, +0.383637516067214,0.383637516067214,0.383619437464394,0.383483396816833,0.383262155417337,0.382998396369773,0.382738379993737,0.382528228674588,0.382409385026436,0.382409385026436, +0.511185703633251,0.511185703633251,0.5111176837815,0.510894413428532,0.510563560584404,0.510182225503751,0.50980855869489,0.509502214398894,0.509324086192394,0.509324086192394, +0.660400290735173,0.660400290735173,0.660271610351138,0.659924854814256,0.659445873197561,0.658910942000223,0.658385946464294,0.657940587851175,0.65766372542537,0.65766372542537, +0.825809162335743,0.825809162335743,0.825640420016075,0.825102706083043,0.824426185256875,0.823702490252308,0.822986863235642,0.822339347667442,0.821871172088954,0.821871172088954, + +00:37:31, +0.129487110499379,0.129487110499379,0.129541377322875,0.129542151626487,0.129502168672346,0.129438222448848,0.129368717678191,0.129310935925777,0.129278345210521,0.129278345210521, +0.129487110499379,0.129487110499379,0.129541377322875,0.129542151626487,0.129502168672346,0.129438222448848,0.129368717678191,0.129310935925777,0.129278345210521,0.129278345210521, +0.154381954270879,0.154381954270879,0.154431364026012,0.154420937766194,0.15436527450171,0.15428367070304,0.154197342192544,0.154126343349971,0.154086461845699,0.154086461845699, +0.204708864376957,0.204708864376957,0.204746749846891,0.204712146783971,0.204623412091381,0.204504883480125,0.204383423760541,0.204284740545257,0.204229516100704,0.204229516100704, +0.281135036446497,0.281135036446497,0.281151588708677,0.281076575125051,0.280934157533349,0.280756361545938,0.280578507813852,0.280435000376443,0.280354631139163,0.280354631139163, +0.383751855904554,0.383751855904554,0.383733773443735,0.383597762932765,0.383376576307946,0.383112884768484,0.382852935897165,0.38264283950254,0.382524026997402,0.382524026997402, +0.511284797504069,0.511284797504069,0.511216782984969,0.510993565226796,0.510662798159315,0.510281565309369,0.509908000093783,0.509601739440399,0.509423659790199,0.509423659790199, +0.660473929724503,0.660473929724503,0.660345271663207,0.659998600844255,0.659519743222479,0.658984953874401,0.658460098804177,0.658014859160246,0.657738069991334,0.657738069991334, +0.825848545731166,0.825848545731166,0.825679842619942,0.825142258476189,0.824465904795519,0.823742390948418,0.823026943692423,0.822379589820288,0.821911529389886,0.821911529389886, + +00:37:32, +0.129601723911277,0.129601723911277,0.12965599988992,0.129656781286944,0.129616803497808,0.129552860755568,0.129483358131349,0.129425577564224,0.129392987367481,0.129392987367481, +0.129601723911277,0.129601723911277,0.12965599988992,0.129656781286944,0.129616803497808,0.129552860755568,0.129483358131349,0.129425577564224,0.129392987367481,0.129392987367481, +0.154499015603099,0.154499015603099,0.154548430606307,0.154538011835218,0.154482357395855,0.154400762643019,0.154314442255726,0.154243449562855,0.154203571384125,0.154203571384125, +0.204828925060978,0.204828925060978,0.204866809949597,0.204832216667425,0.204743499204115,0.204624991523985,0.204503552407907,0.204404885633206,0.204349670326821,0.204349670326821, +0.281255389749995,0.281255389749995,0.281271937118935,0.281196939999143,0.281054554463403,0.280876798676896,0.280698985230657,0.28055551035976,0.280475159395108,0.280475159395108, +0.383866153428879,0.383866153428879,0.383848067126967,0.383712086749935,0.383490954883012,0.383227330826987,0.38296744943392,0.382757407941346,0.382638626566105,0.382638626566105, +0.511383844535666,0.511383844535666,0.511315835362422,0.511092670178702,0.510761988843936,0.510380858168319,0.510007394488046,0.509701217428518,0.509523186305906,0.509523186305906, +0.660547528468839,0.660547528468839,0.660418892728917,0.660072306581021,0.659593572878064,0.659058925288978,0.658534210593477,0.658089089840948,0.657812373880891,0.657812373880891, +0.825887905859333,0.825887905859333,0.825719241934964,0.825181787500471,0.824505600858919,0.823782268052078,0.823067000439597,0.822419808158171,0.82195186280152,0.82195186280152, + +00:37:33, +0.129716348569366,0.129716348569366,0.129770633685375,0.129771422178167,0.129731449571978,0.129667510338227,0.129598009889721,0.129540230532158,0.129507640867606,0.129507640867606, +0.129716348569366,0.129716348569366,0.129770633685375,0.129771422178167,0.129731449571978,0.129667510338227,0.129598009889721,0.129540230532158,0.129507640867606,0.129507640867606, +0.154616079423486,0.154616079423486,0.154665499663604,0.154655088385763,0.154599442788187,0.154517857105005,0.154431544866026,0.154360558343494,0.154320683501883,0.154320683501883, +0.204948973232273,0.204948973232273,0.204986857539391,0.204952274044746,0.204863573822993,0.204745087089383,0.204623668592269,0.20452501827054,0.204469812109168,0.204469812109168, +0.281375713810192,0.281375713810192,0.281392256296811,0.281317275646479,0.281174922168607,0.280997206582684,0.280819433420826,0.280675991114662,0.280595658421399,0.280595658421399, +0.383980408679486,0.383980408679486,0.383962318553356,0.383826368307591,0.383605291181773,0.383341734584515,0.383081920643229,0.382871934030233,0.382753183771775,0.382753183771775, +0.511482844779165,0.511482844779165,0.511414840964955,0.51119172833535,0.510861132689396,0.510480104131773,0.51010674192889,0.509800648414501,0.509622665790788,0.509622665790788, +0.660621087015784,0.660621087015784,0.660492473595862,0.660145972072192,0.659667362212029,0.659132856291765,0.658608281880101,0.658163279941271,0.657886637142083,0.657886637142083, +0.825927242748906,0.825927242748906,0.825758617989823,0.825221293184663,0.824545273475978,0.823822121592331,0.823107033506346,0.8224600027104,0.821992172353257,0.821992172353257, + +00:37:34, +0.12983098443339,0.12983098443339,0.129885278669002,0.129886074259907,0.129846106854572,0.12978217115649,0.129712672912923,0.129654894789154,0.129622305670445,0.129622305670445, +0.12983098443339,0.12983098443339,0.129885278669002,0.129886074259907,0.129846106854572,0.12978217115649,0.129712672912923,0.129654894789154,0.129622305670445,0.129622305670445, +0.154733145703408,0.154733145703408,0.154782571169283,0.154772167389191,0.154716530650033,0.154634954060275,0.154548649994669,0.154477669663071,0.154437798170131,0.154437798170131, +0.205069008883011,0.205069008883011,0.205106892608437,0.205072318908079,0.204983635940119,0.204865170168376,0.204743772305637,0.204645138449228,0.204589941439693,0.204589941439693, +0.281496008644238,0.281496008644238,0.281512546259435,0.281437582084161,0.281295260666033,0.281117585280339,0.28093985240136,0.280796442658125,0.280716128234998,0.280716128234998, +0.384094621695626,0.384094621695626,0.384076527762118,0.383940607644932,0.383719585243419,0.383456096080252,0.383196349564275,0.382986417808383,0.382867698653592,0.382867698653592, +0.511581798285623,0.511581798285623,0.511513799843594,0.511290739747771,0.510960229746755,0.510579303250827,0.510206042467459,0.509900032449528,0.509722098296047,0.509722098296047, +0.660694605412871,0.660694605412871,0.660566014311563,0.660219597365334,0.659741111272022,0.659206746930499,0.658682312711882,0.658237429509134,0.657960859822881,0.657960859822881, +0.825966556428498,0.825966556428498,0.825797970813158,0.8252607755575,0.824584922675556,0.823861951598176,0.823147042921809,0.822500173506241,0.82203245807445,0.82203245807445, + +00:37:35, +0.129945631463144,0.129945631463144,0.129999934800617,0.13000073749197,0.129960775305359,0.129896843170079,0.129827347160623,0.129769570294836,0.129736981735599,0.129736981735599, +0.129945631463144,0.129945631463144,0.129999934800617,0.13000073749197,0.129960775305359,0.129896843170079,0.129827347160623,0.129769570294836,0.129736981735599,0.129736981735599, +0.154850214414275,0.154850214414275,0.154899645094765,0.154889248816909,0.154833620952762,0.154752053480147,0.154665757612922,0.154594783492809,0.154554915360069,0.154554915360069, +0.205189032005381,0.205189032005381,0.205226915148923,0.205192351249587,0.205103685547617,0.204985240753042,0.204863863540039,0.204765246161262,0.204710058310367,0.204710058310367, +0.281616274269265,0.281616274269265,0.281632807023921,0.28155785932928,0.281415569972739,0.281237934786886,0.281060242189251,0.280916865007115,0.280836568852858,0.280836568852858, +0.384208792516499,0.384208792516499,0.384190694792427,0.384054804801111,0.383833837107093,0.383570415353335,0.383310736236192,0.383100859314931,0.38298217125069,0.38298217125069, +0.511680705106023,0.511680705106023,0.511612712049293,0.511389704466925,0.511059280066999,0.510678455576512,0.510305296154824,0.509999369584708,0.509821483872815,0.509821483872815, +0.660768083707559,0.660768083707559,0.660639514923471,0.660293182507944,0.659814820105614,0.659280597252849,0.658756303136586,0.658311538592384,0.658035041971185,0.658035041971185, +0.826005846926681,0.826005846926681,0.825837300433563,0.825300234647669,0.824624548486467,0.823901758098566,0.823187028715077,0.822540320574911,0.82207271999441,0.82207271999441, + +00:37:36, +0.130060289618476,0.130060289618476,0.130114602040087,0.130115411834212,0.130075454884164,0.130011526338768,0.129942032592545,0.129884257008885,0.129851669022725,0.129851669022725, +0.130060289618476,0.130060289618476,0.130114602040087,0.130115411834212,0.130075454884164,0.130011526338768,0.129942032592545,0.129884257008885,0.129851669022725,0.129851669022725, +0.154967285527539,0.154967285527539,0.155016721411516,0.155006332640366,0.154950713667784,0.154869155335982,0.154782867692095,0.154711899803976,0.15467203504294,0.15467203504294, +0.205309042591588,0.205309042591588,0.20534692515305,0.205312371061451,0.20522372263763,0.205105298835476,0.204983942287524,0.204885341398649,0.204830162713177,0.204830162713177, +0.281736510702396,0.281736510702396,0.281753038607371,0.281678107398913,0.28153585010577,0.281358255119333,0.281180602801475,0.281037258178583,0.280956980291913,0.280956980291913, +0.384322921181261,0.384322921181261,0.384304819683404,0.384168959815234,0.383948046811891,0.383684692442856,0.383425080698069,0.383215258588963,0.383096601602159,0.383096601602159, +0.511779565291279,0.511779565291279,0.511711577632936,0.511488622543701,0.511158283701048,0.510777561159785,0.510404503041985,0.510098659871079,0.509920822572154,0.509920822572154, +0.660841521947241,0.660841521947241,0.660712975478968,0.660366727547447,0.659888488760311,0.659354407306413,0.658830253201905,0.658385607238796,0.658109183634822,0.658109183634822, +0.826045114271983,0.826045114271983,0.825876606879586,0.825339670483814,0.824664150937479,0.823941541122409,0.823226990915199,0.822580443945586,0.8221129581424,0.8221129581424, + +00:37:37, +0.130174958859291,0.130174958859291,0.130229280347335,0.130230097246545,0.130190145550861,0.130126220622383,0.130056729168462,0.129998954891034,0.129966367491532,0.129966367491532, +0.130174958859291,0.130174958859291,0.130229280347335,0.130230097246545,0.130190145550861,0.130126220622383,0.130056729168462,0.129998954891034,0.129966367491532,0.129966367491532, +0.155084359014694,0.155084359014694,0.155133800091039,0.155123418831051,0.155067808766553,0.154986259599184,0.154899980203538,0.154829018567882,0.154789157190031,0.154789157190031, +0.205429040633858,0.205429040633858,0.205466922613044,0.205432378335871,0.205343747202322,0.205225344407794,0.205104008540159,0.20500542415342,0.20495025464013,0.20495025464013, +0.281856717960738,0.281856717960738,0.281873241026874,0.281798326310121,0.281656101082158,0.281478546294679,0.281300934254998,0.281157622189466,0.28107736256909,0.28107736256909, +0.384437007729019,0.384437007729019,0.384418902474125,0.384283072726359,0.38406221439686,0.383798927387856,0.383539382988944,0.383329615669518,0.383210989747036,0.383210989747036, +0.511878378892235,0.511878378892235,0.511810396645337,0.511587494028918,0.511257240699748,0.510876620051534,0.510503663179874,0.51019790335961,0.510020114445055,0.510020114445055, +0.660914920179236,0.660914920179236,0.660786396025364,0.660440232531198,0.659962117283544,0.659428177138717,0.658904162955461,0.658459635496075,0.658183284861551,0.658183284861551, +0.826084358492886,0.826084358492886,0.825915890179734,0.825379083094533,0.824703730057318,0.823981300698569,0.823266929551178,0.822620543647393,0.822153172547638,0.822153172547638, + +00:37:38, +0.130289639145542,0.130289639145542,0.130343969682337,0.130344793688934,0.130304847265381,0.130240925980807,0.130171436848206,0.13011366390107,0.130081077101783,0.130081077101783, +0.130289639145542,0.130289639145542,0.130343969682337,0.130344793688934,0.130304847265381,0.130240925980807,0.130171436848206,0.13011366390107,0.130081077101783,0.130081077101783, +0.155201434847277,0.155201434847277,0.155250881104884,0.155240507360497,0.155184906220564,0.155103366241197,0.155017095118645,0.154946139755876,0.154906281772667,0.154906281772667, +0.205549026124436,0.205549026124436,0.205586907521145,0.205552373065067,0.205463759233874,0.205345377462129,0.20522406229003,0.205125494417623,0.205070334083254,0.205070334083254, +0.281976896061386,0.281976896061386,0.281993414299504,0.281918516079954,0.281776322918921,0.281598808329907,0.28142123656677,0.281277957056691,0.281197715701299,0.281197715701299, +0.384551052198832,0.384551052198832,0.384532943203621,0.384397143573496,0.384176339901003,0.383913120227331,0.383653643147812,0.38344393059559,0.383325335724317,0.383325335724317, +0.511977145959664,0.511977145959664,0.51190916913724,0.511686318973326,0.511356151113878,0.510975632302577,0.510602776619351,0.510297100101199,0.51011935954244,0.51011935954244, +0.660988278450795,0.660988278450795,0.6608597766099,0.660513697506481,0.660035705722677,0.659501906797217,0.658978032444806,0.658533623411858,0.658257345699059,0.658257345699059, +0.826123579617828,0.826123579617828,0.825955150362468,0.825418472508382,0.824743285874665,0.824021036855865,0.823306844651971,0.822660619709418,0.822193363239299,0.822193363239299, + +00:37:39, +0.13040433043724,0.13040433043724,0.13045867000512,0.130459501121396,0.130419559987707,0.130355642373972,0.130286155591659,0.130228383998833,0.130195797813294,0.130195797813294, +0.13040433043724,0.13040433043724,0.13045867000512,0.130459501121396,0.130419559987707,0.130355642373972,0.130286155591659,0.130228383998833,0.130195797813294,0.130195797813294, +0.155318512996865,0.155318512996865,0.15536796442464,0.155357598200277,0.155302006001353,0.155220475233508,0.155134212408852,0.155063263339353,0.15502340876222,0.15502340876222, +0.205668999055586,0.205668999055586,0.205706879869615,0.205672355241279,0.205583758724485,0.205465397990635,0.205344103529244,0.205245552183325,0.205190401034594,0.205190401034594, +0.28209704502142,0.28209704502142,0.282113558442323,0.282038676725449,0.281896515633065,0.281719041241989,0.28154150975373,0.28139826279717,0.281318039705439,0.281318039705439, +0.384665054629713,0.384665054629713,0.38464694191087,0.384511172395608,0.384290423363272,0.38402727100023,0.383767861213619,0.383558203406124,0.383439639572946,0.383439639572946, +0.51207586654427,0.51207586654427,0.512007895159319,0.511785097427603,0.511455014994144,0.511074597963661,0.510701843411208,0.510396250146675,0.51021855791516,0.51021855791516, +0.661061596809098,0.661061596809098,0.660933117279745,0.660587122520512,0.660109254125002,0.659575596329301,0.659051861717422,0.658607571033706,0.658331366194961,0.658331366194961, +0.826162777675205,0.826162777675205,0.825994387456205,0.825457838753873,0.824782818418157,0.824060749623072,0.823346736246492,0.822700672160698,0.82223353024651,0.82223353024651, + +00:37:40, +0.130519032694446,0.130519032694446,0.130573381275767,0.130574219504001,0.130534283677875,0.130470369761866,0.130400885358756,0.130343115144216,0.130310529585935,0.130310529585935, +0.130519032694446,0.130519032694446,0.130573381275767,0.130574219504001,0.130534283677875,0.130470369761866,0.130400885358756,0.130343115144216,0.130310529585935,0.130310529585935, +0.155435593435078,0.155435593435078,0.155485050021939,0.155474691322007,0.155419108080499,0.155337586547647,0.155251332045637,0.155180389289748,0.155140538130101,0.155140538130101, +0.205788959419589,0.205788959419589,0.205826839650732,0.205792324856762,0.205703745666376,0.205585405985484,0.205464132249924,0.205365597442613,0.205310455486216,0.205310455486216, +0.282217164857907,0.282217164857907,0.282233673472379,0.282158808263628,0.282016679241581,0.281839245047881,0.281661753832802,0.281518539427802,0.281438334598394,0.281438334598394, +0.384779015060627,0.384779015060627,0.384760898634809,0.384625159231612,0.384404464822574,0.384141379745455,0.383882037225263,0.383672434140019,0.383553901331824,0.383553901331824, +0.512174540696685,0.512174540696685,0.512106574762177,0.511883829442359,0.511553832391184,0.511173517085464,0.510800863606164,0.510495353546795,0.510317709613995,0.510317709613995, +0.661134875301254,0.661134875301254,0.661006418082001,0.660660507620435,0.66018276253774,0.659649245782282,0.659125650820719,0.658681478409116,0.658405346396804,0.658405346396804, +0.826201952693368,0.826201952693368,0.82603360148932,0.825497181859472,0.824822327716385,0.82410043902892,0.82338660436361,0.822740701030228,0.822273673598357,0.822273673598357, + +00:37:41, +0.130633745877275,0.130633745877275,0.130688103454412,0.130688948796873,0.130649018295974,0.130585108104531,0.130515626109486,0.130457857297167,0.130425272379629,0.130425272379629, +0.130633745877275,0.130633745877275,0.130688103454412,0.130688948796873,0.130649018295974,0.130585108104531,0.130515626109486,0.130457857297167,0.130425272379629,0.130425272379629, +0.155552676133578,0.155552676133578,0.155602137868453,0.155591786697346,0.155536212429622,0.155454700155184,0.155368454000518,0.155297517578539,0.155257669847764,0.155257669847764, +0.205908907208747,0.205908907208747,0.205946786856796,0.205912281903794,0.205823720051785,0.205705401438867,0.205584148444216,0.205485630187592,0.205430497430205,0.205430497430205, +0.282337255587902,0.282337255587902,0.282353759406706,0.2822789107115,0.282136813761447,0.281959419764529,0.281781968820898,0.281638786965473,0.281558600397037,0.281558600397037, +0.384892933530491,0.384892933530491,0.384874813414323,0.384739104120377,0.384518464317769,0.38425544650186,0.383996171221597,0.383786622836127,0.383668121039802,0.383668121039802, +0.512273168467472,0.512273168467472,0.512205207996349,0.511982515068133,0.511652603355566,0.511272389718594,0.51089983725487,0.510594410352248,0.510416814689657,0.510416814689657, +0.661208113974304,0.661208113974304,0.661079679063697,0.660733852853323,0.660256231008045,0.659722855203407,0.659199399802038,0.658755345585508,0.658479286352062,0.658479286352062, +0.826241104700625,0.826241104700625,0.826072792490141,0.825536501853602,0.824861813797897,0.824140105102095,0.823426449032149,0.822780706346959,0.822313793323877,0.822313793323877, + +00:37:42, +0.130748469945897,0.130748469945897,0.130802836501243,0.130803688960191,0.130763763802146,0.130699857362058,0.130630377803893,0.130572610417686,0.130540026154353,0.130540026154353, +0.130748469945897,0.130748469945897,0.130802836501243,0.130803688960191,0.130763763802146,0.130699857362058,0.130630377803893,0.130572610417686,0.130540026154353,0.130540026154353, +0.155669761064068,0.155669761064068,0.155719227935897,0.155708884297992,0.155653319020386,0.155571816027733,0.155485578245057,0.155414648177244,0.155374803886705,0.155374803886705, +0.206028842415379,0.206028842415379,0.206066721480124,0.206032226374669,0.205943681872968,0.205825384342994,0.205704152104282,0.205605650410388,0.205550526858663,0.205550526858663, +0.282457317228444,0.282457317228444,0.282473816262325,0.282398984086061,0.282256919209628,0.282079565408863,0.281902154734916,0.281759005427056,0.281678837118227,0.281678837118227, +0.385006810078178,0.385006810078178,0.384988686288253,0.384853007100725,0.38463242188767,0.384369471308253,0.384110263241426,0.383900769533252,0.383782298735687,0.383782298735687, +0.512371749907125,0.512371749907125,0.512303794912298,0.512081154355395,0.511751327937788,0.511371215913589,0.510998764407908,0.510693420613652,0.510515873192788,0.510515873192788, +0.661281312875218,0.661281312875218,0.661152900271794,0.660807158266183,0.660329659582998,0.659796424639852,0.65927310870865,0.658829172610238,0.658553186108141,0.658553186108141, +0.826280233725238,0.826280233725238,0.826111960486956,0.825575798764643,0.824901276691199,0.82417974787124,0.82346627028089,0.822820688139794,0.822353889452065,0.822353889452065, + +00:37:43, +0.130863204860532,0.130863204860532,0.1309175803765,0.130918439954182,0.130878520156587,0.130814617494596,0.13074514040207,0.130687374465825,0.130654790870135,0.130654790870135, +0.130863204860532,0.130863204860532,0.1309175803765,0.130918439954182,0.130878520156587,0.130814617494596,0.13074514040207,0.130687374465825,0.130654790870135,0.130654790870135, +0.155786848198293,0.155786848198293,0.155836320196029,0.155825984095686,0.155770427824494,0.155688934136948,0.155602704750857,0.155531781057425,0.155491940218461,0.155491940218461, +0.206148765031824,0.206148765031824,0.206186643513051,0.2061521582617,0.206063631122201,0.205945354690094,0.205824143222304,0.205725658103143,0.205670543763714,0.205670543763714, +0.28257734979656,0.28257734979656,0.282593844056243,0.282519028404293,0.282376995603076,0.2821996819978,0.282022311591742,0.281879194829411,0.28179904477881,0.28179904477881, +0.385120644742509,0.385120644742509,0.38510251729539,0.384966868211431,0.384746337571041,0.384483454203395,0.384224313323509,0.384014874270154,0.383896434458238,0.383896434458238, +0.512470285066069,0.512470285066069,0.51240233556042,0.512179747354544,0.511850006188277,0.511469995720918,0.511097645115788,0.510792384381557,0.510614885173959,0.510614885173959, +0.661354472050896,0.661354472050896,0.661226081753184,0.660880423905949,0.660403048309612,0.659869954138722,0.659346777587755,0.658902959530586,0.658627045712377,0.658627045712377, +0.826319339795429,0.826319339795429,0.826151105508006,0.825615072620931,0.82494071642475,0.824219367364952,0.823506068138567,0.822860646437595,0.822393962011871,0.822393962011871, + +00:37:44, +0.130977950581454,0.130977950581454,0.131032335040478,0.131033201739131,0.130993287319545,0.130929388462344,0.130859913864169,0.130802149401692,0.130769566487059,0.130769566487059, +0.130977950581454,0.130977950581454,0.131032335040478,0.131033201739131,0.130993287319545,0.130929388462344,0.130859913864169,0.130802149401692,0.130769566487059,0.130769566487059, +0.155903937508039,0.155903937508039,0.155953414620646,0.155943086062212,0.155887538813692,0.155806054454524,0.155719833489564,0.155648916190686,0.155609078814612,0.155609078814612, +0.206268675050439,0.206268675050439,0.206306552947932,0.206272077557221,0.20618356779178,0.206065312472416,0.205944121790482,0.205845653258022,0.205790548137499,0.205790548137499, +0.282697353309263,0.282697353309263,0.282713842805456,0.282639043683165,0.282497042958729,0.282319769548246,0.282142439408248,0.281999355189385,0.28191922339562,0.28191922339562, +0.385234437562262,0.385234437562262,0.385216306474482,0.385080687491223,0.384860211406602,0.384597395225998,0.384338321506558,0.384128937085543,0.384010528246165,0.384010528246165, +0.512568773994656,0.512568773994656,0.512500829991038,0.51227829411591,0.511948638157394,0.511568729190979,0.511196479428954,0.51089130170644,0.510713850683673,0.510713850683673, +0.661427591548171,0.661427591548171,0.661299223554686,0.660953649819486,0.660476397234829,0.659943443747052,0.659420406486483,0.658976706393768,0.658700865212032,0.658700865212032, +0.826358422939373,0.826358422939373,0.826190227581491,0.825654323450756,0.824980133026966,0.824258963611784,0.823545842633873,0.822900581269177,0.822434011032199,0.822434011032199, + +00:37:45, +0.131092707068992,0.131092707068992,0.131147100453523,0.131147974275373,0.131108065251322,0.131044170225554,0.130974698150388,0.130916935185445,0.13088435296526,0.13088435296526, +0.131092707068992,0.131092707068992,0.131147100453523,0.131147974275373,0.131108065251322,0.131044170225554,0.130974698150388,0.130916935185445,0.13088435296526,0.13088435296526, +0.156021028965135,0.156021028965135,0.156070511181587,0.156060190169392,0.156004651959767,0.155923176952201,0.155836964432865,0.155766053548671,0.15572621964678,0.15572621964678, +0.2063885724636,0.2063885724636,0.20642644977714,0.206391984253583,0.206303491874017,0.206185257682225,0.206064087801037,0.205965635867205,0.20591053997218,0.20591053997218, +0.282817327783553,0.282817327783553,0.282833812526942,0.282759029939633,0.282617061293512,0.282439828077091,0.282262538201293,0.282119486523811,0.282039372985475,0.282039372985475, +0.385348188576167,0.385348188576167,0.385330053864226,0.385194464978781,0.384974043433025,0.384711294414731,0.384452287829237,0.384242958018085,0.384124580138136,0.384124580138136, +0.512667216743172,0.512667216743172,0.512599278254409,0.512376794689755,0.512047223895426,0.511667416374103,0.511295267397777,0.510990172638714,0.510812769772362,0.510812769772362, +0.661500671413802,0.661500671413802,0.661372325723055,0.661026836053591,0.660549706405524,0.66001689351181,0.659493995451897,0.659050413246925,0.658774644654304,0.658774644654304, +0.826397483185203,0.826397483185203,0.826229326735566,0.825693551282368,0.82501952652622,0.824298536640247,0.823585593795454,0.822940492663313,0.822474036541911,0.822474036541911, + +00:37:46, +0.131207474283524,0.131207474283524,0.131261876576035,0.131262757523297,0.131222853912272,0.131158962744534,0.131089493220985,0.131031731777298,0.130999150264927,0.130999150264927, +0.131207474283524,0.131207474283524,0.131261876576035,0.131262757523297,0.131222853912272,0.131158962744534,0.131089493220985,0.131031731777298,0.130999150264927,0.130999150264927, +0.15613812254145,0.15613812254145,0.156187609850735,0.156177296389093,0.156121767234549,0.156040301601757,0.155954097552487,0.155883193103067,0.155843362686628,0.155843362686628, +0.206508457263701,0.206508457263701,0.206546333993067,0.206511878343153,0.206423403361244,0.206305190311807,0.206184041246206,0.206085605922893,0.206030519259935,0.206030519259935, +0.282937273236416,0.282937273236416,0.282953753237669,0.282878987190638,0.282737050624336,0.282559857601214,0.282382607987722,0.282239588849511,0.282159493565183,0.282159493565183, +0.385461897822904,0.385461897822904,0.385443759503274,0.385308200712741,0.385087833688934,0.384825151808213,0.384566212330164,0.384356937106398,0.384238590172769,0.384238590172769, +0.512765613361832,0.512765613361832,0.512697680400719,0.51247524912627,0.512145763452594,0.511766057320548,0.511394009072561,0.511088997228718,0.51091164249039,0.51091164249039, +0.661573711694483,0.661573711694483,0.661445388304971,0.661099982654991,0.660622975868499,0.660090303479893,0.659567544530987,0.659124080137132,0.658848384086317,0.658848384086317, +0.826436520561011,0.826436520561011,0.826268402998344,0.825732756143972,0.825058896950841,0.824338086478806,0.823625321651913,0.82298038064873,0.822514038569822,0.822514038569822, + +00:37:47, +0.131322252185484,0.131322252185484,0.131376663368466,0.131377551443345,0.131337653262802,0.13127376597964,0.131204299036265,0.131146539137515,0.131113958346303,0.131113958346303, +0.131322252185484,0.131322252185484,0.131376663368466,0.131377551443345,0.131337653262802,0.13127376597964,0.131204299036265,0.131146539137515,0.131113958346303,0.131113958346303, +0.156255218208896,0.156255218208896,0.156304710600012,0.156294404693222,0.156238884609906,0.156157428375014,0.156071232820201,0.156000334825603,0.155960507905862,0.155960507905862, +0.206628329443154,0.206628329443154,0.206666205588123,0.206631759818322,0.206543302245812,0.206425110353466,0.206303982118247,0.206205563417307,0.206150485992964,0.206150485992964, +0.283057189684824,0.283057189684824,0.283073664954591,0.282998915453109,0.282857010968099,0.282679858137478,0.282502648784368,0.282359662183291,0.282279585151537,0.282279585151537, +0.385575565341111,0.385575565341111,0.38555742343023,0.385421894731689,0.385201582212907,0.384938967445018,0.384680095047912,0.384470874389052,0.384352558388637,0.384352558388637, +0.512863963900781,0.512863963900781,0.512796036480084,0.512573657475578,0.512244256879049,0.511864652080506,0.511492704503538,0.511187775526723,0.511010468888052,0.511010468888052, +0.661646712436837,0.661646712436837,0.66151841134705,0.661173089670342,0.66069620567049,0.660163673698127,0.659641053770675,0.659197707111392,0.658922083555126,0.658922083555126, +0.826475535094841,0.826475535094841,0.826307456397892,0.825771938063728,0.825098244329114,0.824377613155883,0.82366502623181,0.823020245254111,0.822554017144704,0.822554017144704, + +00:37:48, +0.131437040735358,0.131437040735358,0.13149146079132,0.13149235599601,0.131452463263372,0.131388579891284,0.131319115556589,0.131261357226416,0.131228777169681,0.131228777169681, +0.131437040735358,0.131437040735358,0.13149146079132,0.13149235599601,0.131452463263372,0.131388579891284,0.131319115556589,0.131261357226416,0.131228777169681,0.131228777169681, +0.156372315939424,0.156372315939424,0.156421813401381,0.156411515053727,0.156356004057752,0.156274557243834,0.156188370207819,0.156117478688048,0.156077655276227,0.156077655276227, +0.206748188994391,0.206748188994391,0.206786064554736,0.206751628671495,0.20666318852009,0.206545017799525,0.206423910409437,0.206325508342685,0.206270440163483,0.206270440163483, +0.283177077145737,0.283177077145737,0.283193547694647,0.28311881474396,0.282976942341687,0.282799829702735,0.282622660608051,0.282479706541946,0.282399647761319,0.282399647761319, +0.385689191169376,0.385689191169376,0.385671045683654,0.385535547074165,0.385315289043477,0.385052741363674,0.384793936021004,0.384584769904574,0.384466484824264,0.384466484824264, +0.512962268410097,0.512962268410097,0.512894346542553,0.512672019787731,0.512342704224873,0.5119632007041,0.511591353740875,0.511286507582931,0.511109249015571,0.511109249015571, +0.661719673687417,0.661719673687417,0.661591394895835,0.661246157146234,0.660769395858161,0.66023700421327,0.659714523217813,0.65927129421664,0.658995743107717,0.658995743107717, +0.826514526814698,0.826514526814698,0.826346486962238,0.825811097069754,0.825137568689282,0.824417116699857,0.823704707563659,0.823060086508096,0.822593972295284,0.822593972295284, + +00:37:49, +0.131551839893685,0.131551839893685,0.131606268805156,0.131607171141839,0.131567283874494,0.131503404439932,0.131433942742371,0.131376186004371,0.131343606695409,0.131343606695409, +0.131551839893685,0.131551839893685,0.131606268805156,0.131607171141839,0.131567283874494,0.131503404439932,0.131433942742371,0.131376186004371,0.131343606695409,0.131343606695409, +0.156489415705029,0.156489415705029,0.156538918226849,0.156528627442598,0.15647312555004,0.156391688180122,0.156305509687193,0.156234624662215,0.156194804769512,0.156194804769512, +0.206868035909862,0.206868035909862,0.206905910885353,0.206871484895098,0.206783062176465,0.206664912642325,0.20654382611207,0.206445440691283,0.206390381763731,0.206390381763731, +0.2832969356361,0.2832969356361,0.283313401474764,0.283238685080094,0.283096844761969,0.282919772313824,0.282742643475577,0.282599721942257,0.282519681411296,0.282519681411296, +0.38580277534624,0.38580277534624,0.385784626302056,0.385649157778665,0.385428954219127,0.385166473602659,0.38490773528792,0.384698623691441,0.384580369518131,0.384580369518131, +0.513060526939787,0.513060526939787,0.512992610638104,0.512770336112715,0.512441105540077,0.512061703241381,0.511689956834667,0.511385193447477,0.511207982923105,0.511207982923105, +0.66179259549271,0.66179259549271,0.661664338997802,0.661319185129185,0.660842546478109,0.660310295072012,0.659787952919185,0.65934484149974,0.659069362791008,0.659069362791008, +0.826553495748541,0.826553495748541,0.826385494719362,0.825850233190126,0.825176870059541,0.824456597139061,0.823744365675933,0.823099904439279,0.822633904050247,0.822633904050247, + +00:37:50, +0.131666649621054,0.131666649621054,0.131721087370584,0.131721996841432,0.131682115056734,0.131618239586099,0.131548780554077,0.131491025431805,0.131458446883889,0.131458446883889, +0.131666649621054,0.131666649621054,0.131721087370584,0.131721996841432,0.131682115056734,0.131618239586099,0.131548780554077,0.131491025431805,0.131458446883889,0.131458446883889, +0.156606517477746,0.156606517477746,0.156656025048461,0.156645741831867,0.156590249058763,0.156508821155823,0.15642265123022,0.156351772719956,0.156311956357548,0.156311956357548, +0.206987870182035,0.206987870182035,0.207025744572441,0.206991328481574,0.206902923207345,0.206784794874227,0.206663729218459,0.206565360455378,0.20651031078596,0.20651031078596, +0.283416765172845,0.283416765172845,0.283433226311855,0.283358526478398,0.283216718245804,0.283039685987568,0.282862597403738,0.282719708400993,0.282639686118222,0.282639686118222, +0.385916317910199,0.385916317910199,0.3858981653239,0.385762726883634,0.385542577778297,0.385280164200408,0.385021492887092,0.384812435788086,0.38469421250867,0.38469421250867, +0.51315873953979,0.51315873953979,0.513090828816647,0.512868606500445,0.512539460874607,0.512160159742334,0.51178851383494,0.511483833170424,0.51130667066074,0.51130667066074, +0.66186547789913,0.66186547789913,0.661737243699358,0.661392173665647,0.660915657576863,0.660383546320973,0.659861342921505,0.659418349007489,0.659142942651845,0.659142942651845, +0.826592441924287,0.826592441924287,0.826424479697206,0.825889346452874,0.825216148468048,0.824496054501787,0.823784000597058,0.823139699076211,0.82267381243823,0.82267381243823, + +00:37:51, +0.13178146987811,0.13178146987811,0.131835916448267,0.131836833055442,0.131796956770709,0.131733085290355,0.131663628952226,0.131605875469194,0.131573297695573,0.131573297695573, +0.13178146987811,0.13178146987811,0.131835916448267,0.131836833055442,0.131796956770709,0.131733085290355,0.131663628952226,0.131605875469194,0.131573297695573,0.131573297695573, +0.15672362122965,0.15672362122965,0.156773133838305,0.156762858193606,0.156707374555959,0.156625956142923,0.156539794808833,0.156468922833165,0.156429110012205,0.156429110012205, +0.207107691803396,0.207107691803396,0.207145565608483,0.207111159423385,0.207022771605153,0.206904664487607,0.206783619720937,0.206685267627265,0.206630227222446,0.206630227222446, +0.28353656577289,0.28353656577289,0.283553022222818,0.283478338955747,0.283336562810037,0.283159570740779,0.282982522409314,0.282839665934907,0.282759661898839,0.282759661898839, +0.3860298188997,0.3860298188997,0.386011662787605,0.385876254427474,0.385656159759377,0.385393813195309,0.385135208856905,0.384926206232895,0.384808013834268,0.384808013834268, +0.513256906259975,0.513256906259975,0.513189001128023,0.512966831000766,0.512637770278337,0.512258570256874,0.511887024791653,0.511582426801767,0.511405312278495,0.511405312278495, +0.661938320953026,0.661938320953026,0.661810109046841,0.661465122802001,0.660988729200879,0.660456758006702,0.659934693271418,0.659491816786613,0.659216482737007,0.659216482737007, +0.826631365369812,0.826631365369812,0.826463441923664,0.825928436885987,0.825255403942913,0.824535488816283,0.823823612355418,0.823179470447401,0.822713697487831,0.822713697487831, + +00:37:52, +0.131896300625549,0.131896300625549,0.131950755998921,0.131951679744572,0.13191180897709,0.131847941513323,0.131778487897388,0.131720736077068,0.131688159090968,0.131688159090968, +0.131896300625549,0.131896300625549,0.131950755998921,0.131951679744572,0.13191180897709,0.131847941513323,0.131778487897388,0.131720736077068,0.131688159090968,0.131688159090968, +0.15684072693286,0.15684072693286,0.156890244568511,0.156879976499927,0.156824502013703,0.156743093113451,0.156656940395013,0.15658607497378,0.156546265705396,0.156546265705396, +0.20722750076645,0.20722750076645,0.20726537398598,0.207230977713011,0.207142607362332,0.207024521474865,0.206903497611854,0.206805162199257,0.206750131065481,0.206750131065481, +0.28365633745314,0.28365633745314,0.28367278922454,0.283598122529002,0.283456378471498,0.283279426590254,0.283102418509072,0.282959594560743,0.282879608769875,0.282879608769875, +0.386143278353147,0.386143278353147,0.386125118731541,0.385989740448538,0.385769700200712,0.385507420625701,0.385248883235697,0.385039935064206,0.384921773533265,0.384921773533265, +0.513355027150145,0.513355027150145,0.513287127622005,0.513065009663457,0.512736033801072,0.512356934834847,0.511985489754695,0.511680974391433,0.511503907826319,0.511503907826319, +0.662011124700677,0.662011124700677,0.66188293508652,0.66153803258456,0.661061761396548,0.660529930175683,0.660008004015499,0.659565244883769,0.659289983093202,0.659289983093202, +0.826670266112945,0.826670266112945,0.826502381426591,0.825967504517411,0.825294636512205,0.824574900110752,0.823863200979353,0.823219218581311,0.822753559227599,0.822753559227599, + +00:37:53, +0.132011141824119,0.132011141824119,0.132065605983312,0.13206653686958,0.1320266716366,0.131962808215677,0.131893357350189,0.131835607216011,0.131803031030632,0.131803031030632, +0.132011141824119,0.132011141824119,0.132065605983312,0.13206653686958,0.1320266716366,0.131962808215677,0.131893357350189,0.131835607216011,0.131803031030632,0.131803031030632, +0.156957834559535,0.156957834559535,0.157007357211248,0.156997096722987,0.156941631404114,0.156860232039477,0.156774087960776,0.156703229113778,0.156663423409076,0.156663423409076, +0.20734729706372,0.20734729706372,0.207385169697454,0.207350783342951,0.207262430471345,0.207144365828414,0.20702336288358,0.206925044163686,0.206870022307376,0.206870022307376, +0.283776080230486,0.283776080230486,0.283792527333892,0.28371787721501,0.283576165247005,0.28339925355278,0.283222285719765,0.283079494295228,0.282999526748045,0.282999526748045, +0.386256696308893,0.386256696308893,0.386238533194034,0.386103184985134,0.385883199140602,0.385620986529879,0.385362516061763,0.385153622320313,0.385035491643956,0.385035491643956, +0.51345310226003,0.51345310226003,0.513385208348296,0.513163142538228,0.512834251492551,0.512455253526031,0.512083908773887,0.51177947598928,0.511602457354092,0.511602457354092, +0.662083889188293,0.662083889188293,0.661955721864598,0.66161090305957,0.661134754210191,0.660603062874329,0.660081275200256,0.659638633345546,0.659363443767071,0.659363443767071, +0.826709144181477,0.826709144181477,0.826541298233796,0.826006549375047,0.825333846203949,0.824614288413356,0.823902766497161,0.823258943506361,0.822793397686043,0.822793397686043, + +00:37:54, +0.132125993434623,0.132125993434623,0.132180466362263,0.132181404391276,0.132141544710014,0.132077685358145,0.132008237271304,0.131950488846655,0.131917913475177,0.131917913475177, +0.132125993434623,0.132125993434623,0.132180466362263,0.132181404391276,0.132141544710014,0.132077685358145,0.132008237271304,0.131950488846655,0.131917913475177,0.131917913475177, +0.157074944081873,0.157074944081873,0.157124471738729,0.157114218834981,0.157058762699352,0.15697737289311,0.156891237478183,0.156820385225177,0.15678058309524,0.15678058309524, +0.207467080687747,0.207467080687747,0.207504952735443,0.207470576305722,0.20738224092467,0.20726419754069,0.207143215528502,0.207044913512902,0.206989900940462,0.206989900940462, +0.283895794121806,0.283895794121806,0.283912236567734,0.283837603030605,0.283695923153362,0.283519051645126,0.283342124058133,0.283199365155077,0.283119415850051,0.283119415850051, +0.386370072805247,0.386370072805247,0.386351906213361,0.386216588075522,0.385996656617298,0.385734510946092,0.385476107373348,0.385267268039463,0.385149168204587,0.385149168204587, +0.513551131639296,0.513551131639296,0.513483243356531,0.513261229674719,0.512932423402443,0.512553526380135,0.51218228189898,0.511877931645098,0.511700960911629,0.511700960911629, +0.662156614462016,0.662156614462016,0.662028469427205,0.661683734273206,0.661207707688061,0.660676156148985,0.660154506872128,0.659711982218465,0.659436864805184,0.659436864805184, +0.826747999603151,0.826747999603151,0.826580192373049,0.826045571486755,0.825373033046127,0.824653653752211,0.823942308937094,0.823298645250928,0.822833212891627,0.822833212891627, + +00:37:55, +0.132240855417913,0.132240855417913,0.132295337096645,0.132296282270522,0.132256428158161,0.132192572901506,0.132123127621463,0.13206538092969,0.132032806385266,0.132032806385266, +0.132240855417913,0.132240855417913,0.132295337096645,0.132296282270522,0.132256428158161,0.132192572901506,0.132123127621463,0.13206538092969,0.132032806385266,0.132032806385266, +0.157192055472116,0.157192055472116,0.157241588123204,0.157231342808145,0.157175895871617,0.157094515646503,0.157008388919336,0.156937543280038,0.156897744735926,0.156897744735926, +0.207586851631092,0.207586851631092,0.207624723092504,0.207590356593858,0.207502038714806,0.207384016604143,0.207263055539026,0.207164770239275,0.207109766957086,0.207109766957086, +0.284015479143964,0.284015479143964,0.284031916942911,0.283957299992608,0.28381565220736,0.283638820884051,0.283461933540902,0.283319207156994,0.283239276092583,0.283239276092583, +0.386483407880471,0.386483407880471,0.386465237827754,0.386329949757917,0.386110072669006,0.38584799391254,0.385589657208652,0.385380872259856,0.385262803253361,0.385262803253361, +0.513649115337536,0.513649115337536,0.513581232696277,0.513359271122502,0.513030549580349,0.5126517534468,0.512280609179659,0.511976341408607,0.511799418548671,0.511799418548671, +0.66222930056792,0.66222930056792,0.662101177820408,0.661756526271577,0.661280621876343,0.660749210045927,0.660227699077484,0.659785291548977,0.659510246254045,0.659510246254045, +0.826786832405672,0.826786832405672,0.826619063872074,0.826084570880352,0.825412197066679,0.824692996155392,0.823981828327362,0.823338323843343,0.822873004872769,0.822873004872769, + +00:37:56, +0.132355727734895,0.132355727734895,0.132410218147383,0.132411170468232,0.13237132194192,0.132307470806593,0.132238028361448,0.132180283425854,0.132147709721618,0.132147709721618, +0.132355727734895,0.132355727734895,0.132410218147383,0.132411170468232,0.13237132194192,0.132307470806593,0.132238028361448,0.132180283425854,0.132147709721618,0.132147709721618, +0.157309168702545,0.157309168702545,0.157358706336967,0.157348468614758,0.157293030893151,0.157211660271849,0.157125542256377,0.157054703250461,0.157014908303211,0.157014908303211, +0.207706609886331,0.207706609886331,0.207744480761211,0.207710124199913,0.207621823834269,0.207503823011245,0.207382882907578,0.207284614335192,0.207229620349615,0.207229620349615, +0.28413513531381,0.28413513531381,0.284151568476253,0.284076968117826,0.283935352425776,0.283758561286299,0.283581714184786,0.283439020317667,0.283359107492315,0.283359107492315, +0.386596701572781,0.386596701572781,0.386578528075398,0.386443270070488,0.386223447333885,0.385961435467379,0.38570316560583,0.385494435019647,0.385376396828433,0.385376396828433, +0.513747053404279,0.513747053404279,0.513679176417033,0.513457266931081,0.513128630075801,0.512749934775599,0.512378890665539,0.512074705329462,0.511897830314896,0.511897830314896, +0.662301947552011,0.662301947552011,0.662173847090202,0.661829279100722,0.661353496821152,0.660822224611363,0.660300851862626,0.659858561383464,0.659583588160086,0.659583588160086, +0.8268256426167,0.8268256426167,0.826657912758554,0.826123547583612,0.8254513382935,0.824732315650931,0.824021324696131,0.823377979311897,0.822912773657848,0.822912773657848, + +00:37:57, +0.132470610346528,0.132470610346528,0.132525109475455,0.132526068945372,0.132486226022224,0.132422379034291,0.132352939452093,0.132295196295941,0.132262623444999,0.132262623444999, +0.132470610346528,0.132470610346528,0.132525109475455,0.132526068945372,0.132486226022224,0.132422379034291,0.132352939452093,0.132295196295941,0.132262623444999,0.132262623444999, +0.157426283745483,0.157426283745483,0.157475826352352,0.157465596227138,0.157410167736236,0.157328806741381,0.157242697461489,0.15717186510859,0.157132073769215,0.157132073769215, +0.20782635544606,0.20782635544606,0.207864225734159,0.207829879116459,0.207741596275594,0.207623616754485,0.207502697626599,0.207404445793059,0.207349461110436,0.207349461110436, +0.284254762648181,0.284254762648181,0.284271191184579,0.284196607423052,0.284055023825373,0.283878272868602,0.283701466006485,0.283558804653771,0.283478910065911,0.283478910065911, +0.386709953920345,0.386709953920345,0.386691776994432,0.386556549051355,0.38633678065005,0.386074835648719,0.38581663260299,0.385607956356944,0.385489948967912,0.385489948967912, +0.513844945888982,0.513844945888982,0.513777074568229,0.513555217149893,0.513226664938263,0.512848070416037,0.512477126406167,0.512173023457245,0.51199619625991,0.51199619625991, +0.662374555460226,0.662374555460226,0.662246477282516,0.661901992806614,0.661426332568537,0.660895199891433,0.660373965273787,0.65993179176824,0.659656890569674,0.659656890569674, +0.826864430263853,0.826864430263853,0.826696739060129,0.826162501624265,0.825490456754445,0.824771612266815,0.824060798071526,0.823417611684835,0.822952519275196,0.822952519275196, + +00:37:58, +0.132585503213822,0.132585503213822,0.13264001104189,0.132640977662961,0.132601140360057,0.132537297545535,0.132467860854283,0.132410119500795,0.132377547516233,0.132377547516233, +0.132585503213822,0.132585503213822,0.13264001104189,0.132640977662961,0.132601140360057,0.132537297545535,0.132467860854283,0.132410119500795,0.132377547516233,0.132377547516233, +0.157543400573294,0.157543400573294,0.157592948141734,0.157582725617644,0.157527306373195,0.157445955027374,0.157359854506897,0.157289028826607,0.157249241106099,0.157249241106099, +0.207946088302893,0.207946088302893,0.207983958003957,0.207949621336085,0.207861356031332,0.207743397826369,0.207622499688553,0.207524264605301,0.207469289231952,0.207469289231952, +0.284374361163901,0.284374361163901,0.284390785084694,0.284316217925067,0.284174666422903,0.283997955647677,0.283821189022686,0.283678560181971,0.283598683830019,0.283598683830019, +0.386823164961286,0.386823164961286,0.386804984622948,0.386669786738595,0.386450072655566,0.386188194494622,0.385930058238192,0.385721436309809,0.385603459709862,0.385603459709862, +0.513942792841038,0.513942792841038,0.513874927199227,0.513653121828304,0.513324654217131,0.512946160417548,0.512575316451022,0.512271295841474,0.512094516433252,0.512094516433252, +0.662447124338435,0.662447124338435,0.662319068443211,0.661974667435156,0.661499129164478,0.660968135932208,0.660447039357133,0.660004982749552,0.659730153529106,0.659730153529106, +0.826903195374707,0.826903195374707,0.826735542804397,0.826201433030001,0.825529552477323,0.824810886030989,0.824100248481626,0.823457220990359,0.822992241753101,0.822992241753101, + +00:37:59, +0.132700406297839,0.132700406297839,0.13275492280777,0.132755896582071,0.132716064916458,0.132652226301316,0.132582792528959,0.132525053001314,0.132492481896192,0.132492481896192, +0.132700406297839,0.132700406297839,0.13275492280777,0.132755896582071,0.132716064916458,0.132652226301316,0.132582792528959,0.132525053001314,0.132492481896192,0.132492481896192, +0.157660519158382,0.157660519158382,0.157710071677529,0.157699856758678,0.157644446776392,0.157563105102144,0.157477013364867,0.157406194376738,0.157366410286063,0.157366410286063, +0.208065808449463,0.208065808449463,0.208103677563236,0.208069350851398,0.207981103094056,0.207863166219424,0.207742289085917,0.207644070764361,0.207589104706585,0.207589104706585, +0.284493930877778,0.284493930877778,0.284510350193387,0.284435799640635,0.284294280235101,0.284117609640229,0.283940883250063,0.283798286918914,0.283718428801277,0.283718428801277, +0.386936334733681,0.386936334733681,0.386918150998993,0.386782983170237,0.386563323388454,0.386301512043105,0.386043442549454,0.385834874916259,0.385716929092301,0.385716929092301, +0.514040594309767,0.514040594309767,0.513972734359321,0.513750981015616,0.513422597961735,0.513044204829503,0.512673460849516,0.512369522531597,0.512192790884394,0.512192790884394, +0.66251965423244,0.66251965423244,0.662391620618079,0.662047303032184,0.661571886654886,0.661041032779693,0.66052007415876,0.660078134373578,0.659803377084609,0.659803377084609, +0.826941937976795,0.826941937976795,0.826774324018912,0.826240341828465,0.825568625489903,0.824850136971356,0.824139675954468,0.823496807256629,0.823031941119812,0.823031941119812, + +00:38:00, +0.132815319559694,0.132815319559694,0.132869844734229,0.132870825663825,0.132830999652514,0.132767165262674,0.13269773443711,0.132639996758447,0.132607426545804,0.132607426545804, +0.132815319559694,0.132815319559694,0.132869844734229,0.132870825663825,0.132830999652514,0.132767165262674,0.13269773443711,0.132639996758447,0.132607426545804,0.132607426545804, +0.157777639473191,0.157777639473191,0.157827196932193,0.15781698962268,0.157761588918233,0.157680256938047,0.157594174007706,0.157523361731248,0.157483581281351,0.157483581281351, +0.208185515878418,0.208185515878418,0.208223384404643,0.208189067655024,0.208100837456354,0.207982921926191,0.207862065811191,0.207763864262699,0.207708907526776,0.207708907526776, +0.28461347180661,0.28461347180661,0.284629886527437,0.284555352586511,0.284413865278692,0.284237234862949,0.284060548705275,0.283917984881238,0.283838144996307,0.283838144996307, +0.38704946327556,0.38704946327556,0.387031276160566,0.386896138384263,0.38667653288669,0.38641478833214,0.386156785574745,0.385948272214264,0.385830357153199,0.385830357153199, +0.514138350344424,0.514138350344424,0.514070496097737,0.513848794761059,0.513520496221333,0.5131422037012,0.512771559650991,0.512467703576995,0.51229101966274,0.51229101966274, +0.662592145187976,0.662592145187976,0.662464133852845,0.662119899643468,0.661644605085607,0.661113890479824,0.660593069724696,0.660151246686426,0.659876561282346,0.659876561282346, +0.826980658097607,0.826980658097607,0.826813082731188,0.826279228047262,0.825607675819909,0.824889365115776,0.824179080518046,0.823536370511761,0.82307161740353,0.82307161740353, + +00:38:01, +0.132930242960555,0.132930242960555,0.132984776782453,0.132985764869397,0.132945944529368,0.132882114390703,0.13281268653978,0.132754950733195,0.132722381426046,0.132722381426046, +0.132930242960555,0.132930242960555,0.132984776782453,0.132985764869397,0.132945944529368,0.132882114390703,0.13281268653978,0.132754950733195,0.132722381426046,0.132722381426046, +0.157894761490209,0.157894761490209,0.157944323878223,0.157934124182133,0.157878732771164,0.157797410507482,0.15771133640776,0.157640530862443,0.157600754064247,0.157600754064247, +0.208305210582426,0.208305210582426,0.208343078520842,0.208308771739607,0.208220559110833,0.208102664939235,0.20798182985689,0.207883645092796,0.207828697684985,0.207828697684985, +0.284732983967178,0.284732983967178,0.284749394103606,0.284674876779434,0.284533421570385,0.284356831332515,0.284180185404971,0.284037654085565,0.28395783243172,0.28395783243172, +0.387162550624907,0.387162550624907,0.387144360145622,0.387009252418612,0.386789701188202,0.386528023399651,0.386270087351988,0.386061628241749,0.385943743930483,0.385943743930483, +0.514236060994197,0.514236060994197,0.514168212463634,0.513946563113799,0.513618349045119,0.513240157081873,0.512869612904723,0.512565839026979,0.512389202817624,0.512389202817624, +0.662664597250709,0.662664597250709,0.662536608193167,0.662192457314708,0.661717284502417,0.661186709078467,0.660666026100904,0.66022431973414,0.659949706168408,0.659949706168408, +0.827019355764594,0.827019355764594,0.826851818968696,0.826318091713953,0.825646703495026,0.824928570492065,0.824218462200312,0.823575910783827,0.823111270632415,0.823111270632415, + +00:38:02, +0.133045176461639,0.133045176461639,0.13309971891368,0.133100714160015,0.133060899508212,0.132997073646549,0.132927648798064,0.132869914886613,0.132837346497949,0.132837346497949, +0.133045176461639,0.133045176461639,0.13309971891368,0.133100714160015,0.133060899508212,0.132997073646549,0.132927648798064,0.132869914886613,0.132837346497949,0.132837346497949, +0.158011885181961,0.158011885181961,0.158061452488157,0.158051260409558,0.15799587830767,0.157914565782886,0.157828500537418,0.157757701742672,0.157717928607075,0.157717928607075, +0.208424892554174,0.208424892554174,0.208462759904516,0.208428463097807,0.208340268050117,0.208222395251133,0.208101581215549,0.208003413247149,0.207948475173689,0.207948475173689, +0.284852467376251,0.284852467376251,0.284868872938645,0.28479437223613,0.284652949126876,0.284476399065592,0.284299793365783,0.284157294548505,0.284077491124111,0.284077491124111, +0.387275596819658,0.387275596819658,0.387257402992069,0.387122325311173,0.386902828330873,0.386641217283517,0.386383347919061,0.386174943036592,0.386057089462032,0.386057089462032, +0.514333726308203,0.514333726308203,0.514265883506102,0.514044286122931,0.513716156482217,0.513338065020686,0.51296762065992,0.512663928930796,0.512487340398314,0.512487340398314, +0.662737010466238,0.662737010466238,0.662609043684635,0.662264976091537,0.661789924951025,0.661259488621424,0.660738943333277,0.660297353562692,0.66002281178882,0.66002281178882, +0.827058031005161,0.827058031005161,0.826890532758865,0.826356932856057,0.825685708542893,0.824967753127998,0.824257821029174,0.823615428100857,0.823150900834584,0.823150900834584, + +00:38:03, +0.133160120024219,0.133160120024219,0.133214671089199,0.133215673496958,0.133175864550292,0.133112042991409,0.133042621173111,0.132984889179808,0.132952321722596,0.132952321722596, +0.133160120024219,0.133160120024219,0.133214671089199,0.133215673496958,0.133175864550292,0.133112042991409,0.133042621173111,0.132984889179808,0.132952321722596,0.132952321722596, +0.158129010521014,0.158129010521014,0.158178582734573,0.158168398277519,0.15811302550028,0.158031722736738,0.157945666369109,0.157874874344322,0.1578351048822,0.1578351048822, +0.208544561786364,0.208544561786364,0.208582428548367,0.208548141722305,0.20845996426685,0.208342112854483,0.20822131987972,0.208123168718275,0.208068239985382,0.208068239985382, +0.284971922050585,0.284971922050585,0.284988323049291,0.284913838973309,0.28477244796485,0.284595938078829,0.284419372604333,0.284276906286655,0.284197121090065,0.284197121090065, +0.387388601897707,0.387388601897707,0.387370404737767,0.387235357099792,0.387015914352538,0.386754370021571,0.386496567313797,0.386288216636626,0.386170393785681,0.386170393785681, +0.514431346335495,0.514431346335495,0.514363509274165,0.514141963837483,0.513813918581685,0.513435927566738,0.513065582965721,0.512761973337623,0.51258543245401,0.51258543245401, +0.662809384880096,0.662809384880096,0.662681440372773,0.662337456019521,0.661862526477073,0.661332229154427,0.660811821467639,0.660370348217989,0.660095878189538,0.660095878189538, +0.827096683846674,0.827096683846674,0.82692922412908,0.82639575150105,0.825724690991108,0.825006913051306,0.824297157032498,0.823654922490839,0.82319050803811,0.82319050803811, + +00:38:04, +0.133275073609616,0.133275073609616,0.133329633270352,0.133330642841557,0.133290839616904,0.133227022386533,0.133157603626118,0.133099873573936,0.133067307061122,0.133067307061122, +0.133275073609616,0.133275073609616,0.133329633270352,0.133330642841557,0.133290839616904,0.133227022386533,0.133157603626118,0.133099873573936,0.133067307061122,0.133067307061122, +0.158246137479976,0.158246137479976,0.158295714590091,0.158285537758619,0.158230174321561,0.158148881341559,0.158062833875304,0.157992048639822,0.157952282862029,0.157952282862029, +0.208664218271719,0.208664218271719,0.208702084445113,0.208667807605798,0.208579647753692,0.208461817741902,0.208341045841974,0.208242911498706,0.20818799211258,0.20818799211258, +0.28509134800692,0.28509134800692,0.285107744452265,0.285033277007673,0.284891918100974,0.284715448388865,0.284538923137227,0.284396489316599,0.284316722346152,0.284316722346152, +0.387501565896898,0.387501565896898,0.387483365420532,0.387348347822267,0.38712895929099,0.3868674816516,0.386609745573982,0.386401449079638,0.386283656939217,0.386283656939217, +0.514528921125056,0.514528921125056,0.514461089816779,0.514239596306419,0.513911635392512,0.513533744769057,0.5131634998712,0.512859972296569,0.512683479033846,0.512683479033846, +0.662881720537748,0.662881720537748,0.662753798303036,0.66240989714416,0.661935089126135,0.661404930723142,0.660884660549749,0.66044330374587,0.660168905416453,0.660168905416453, +0.827135314316455,0.827135314316455,0.826967893106687,0.826434547676368,0.825763650867227,0.825046050289678,0.824336470238106,0.823694393981717,0.823230092271024,0.823230092271024, + +00:38:05, +0.133390037179205,0.133390037179205,0.133444605418533,0.133445622155196,0.133405824669399,0.133342011793223,0.133272596118339,0.133214868030209,0.133182302474715,0.133182302474715, +0.133390037179205,0.133390037179205,0.133444605418533,0.133445622155196,0.133405824669399,0.133342011793223,0.133272596118339,0.133214868030209,0.133182302474715,0.133182302474715, +0.158363266031496,0.158363266031496,0.158412848027369,0.158402678825504,0.15834732474412,0.158266041569907,0.158180003028511,0.158109224601643,0.158069462519009,0.158069462519009, +0.208783862002977,0.208783862002977,0.208821727587491,0.208787460741,0.208699318503323,0.208581509906023,0.208460759094899,0.208362641580996,0.208307731547815,0.208307731547815, +0.285210745261986,0.285210745261986,0.285227137164277,0.285152686355904,0.285011359551906,0.284834930012324,0.28465844498106,0.284516043654906,0.28443629490893,0.28443629490893, +0.387614488855031,0.387614488855031,0.387596285078135,0.387461297516352,0.387241963183972,0.386980552211346,0.386722882737356,0.38651464040337,0.386396878960383,0.386396878960383, +0.514626450725802,0.514626450725802,0.51455862518283,0.514337183578631,0.51400930696362,0.513631516676606,0.513261371425361,0.512957925856677,0.512781480186886,0.512781480186886, +0.66295401748459,0.66295401748459,0.662826117520812,0.662482299510885,0.662007612943719,0.661477593373168,0.660957460625298,0.660516220192106,0.660241893515386,0.660241893515386, +0.827173922441784,0.827173922441784,0.827006539718987,0.826473321409404,0.825802588198764,0.825085164870762,0.824375760673779,0.823733842601392,0.823269653561313,0.823269653561313, + +00:38:06, +0.133505010694412,0.133505010694412,0.133559587495188,0.133560611399308,0.133520819669177,0.133457011172831,0.133387598611076,0.133329872509888,0.133297307924613,0.133297307924613, +0.133505010694412,0.133505010694412,0.133559587495188,0.133560611399308,0.133520819669177,0.133457011172831,0.133387598611076,0.133329872509888,0.133297307924613,0.133297307924613, +0.158480396148261,0.158480396148261,0.158529983019108,0.158519821450857,0.158464476740608,0.158383203394385,0.158297173801284,0.158226402202295,0.158186643825627,0.158186643825627, +0.208903492972895,0.208903492972895,0.208941357968254,0.208907101120645,0.208818976508438,0.208701189339499,0.208580459631102,0.208482358957714,0.208427458283635,0.208427458283635, +0.285330113832496,0.285330113832496,0.285346501202023,0.285272067034675,0.285130772334287,0.284954382965817,0.284777938152411,0.284635569318133,0.284555838794941,0.284555838794941, +0.387727370809859,0.387727370809859,0.387709163748298,0.387574206219754,0.387354926069184,0.387093581738504,0.386835978841614,0.386627790645518,0.386510059886877,0.386510059886877, +0.514723935186582,0.514723935186582,0.514656115421141,0.514434725702947,0.514106933343865,0.51372924333828,0.513359197677143,0.513055834066922,0.512879435962128,0.512879435962128, +0.663026275765954,0.663026275765954,0.662898398071424,0.662554663165061,0.662080097975264,0.661550217150034,0.661030221739909,0.660589097602399,0.660314842532091,0.660314842532091, +0.827212508249902,0.827212508249902,0.827045163993243,0.826512072727508,0.825841503013189,0.825124256822161,0.824415028367255,0.823773268377723,0.823309191936922,0.823309191936922, + +00:38:07, +0.133619994116717,0.133619994116717,0.133674579461812,0.13367561053538,0.133635824577691,0.133572020486764,0.133502611065684,0.133444886974288,0.133412323372107,0.133412323372107, +0.133619994116717,0.133619994116717,0.133674579461812,0.13367561053538,0.133635824577691,0.133572020486764,0.133502611065684,0.133444886974288,0.133412323372107,0.133412323372107, +0.158597527803,0.158597527803,0.158647119538048,0.158636965607404,0.158581630283713,0.158500366787633,0.158414346166213,0.158343581414329,0.158303826754413,0.158303826754413, +0.209023111174248,0.209023111174248,0.209060975580176,0.209026728737483,0.208938621761753,0.208820856034997,0.208700147443207,0.20860206362145,0.208547172312611,0.208547172312611, +0.285449453735151,0.285449453735151,0.285465836582185,0.285391419060645,0.285250156464748,0.285073807265941,0.284897402667848,0.284755066322824,0.284675354020718,0.284675354020718, +0.387840211799091,0.387840211799091,0.3878220014687,0.387687073970135,0.387467847984279,0.387206570270725,0.386949033924406,0.386740899843731,0.386623199756349,0.386623199756349, +0.514821374556178,0.514821374556178,0.514753560580466,0.514532222728125,0.514204514582036,0.513826924802907,0.513456978675416,0.513153696976211,0.512977346408503,0.512977346408503, +0.663098495427104,0.663098495427104,0.662970640000125,0.662626988151985,0.662152544266144,0.661622802099206,0.661102943939139,0.660661936022388,0.660387752512255,0.660387752512255, +0.827251071768005,0.827251071768005,0.827083765956673,0.826550801657989,0.825880395337933,0.825163326171438,0.824454273346229,0.823812671338526,0.823348707425753,0.823348707425753, + +00:38:08, +0.133734987407648,0.133734987407648,0.133789581279956,0.133790619524952,0.133750839356445,0.133687039696478,0.133617633443571,0.133559911384775,0.13352734877854,0.13352734877854, +0.133734987407648,0.133734987407648,0.133789581279956,0.133790619524952,0.133750839356445,0.133687039696478,0.133617633443571,0.133559911384775,0.13352734877854,0.13352734877854, +0.158714660968484,0.158714660968484,0.158764257556969,0.15875411126791,0.158698785346166,0.158617531722333,0.158531520095931,0.158460762210337,0.158421011277935,0.158421011277935, +0.209142716599828,0.209142716599828,0.209180580416044,0.209146343584283,0.209058254255998,0.208940509985207,0.208819822523858,0.208721755564809,0.208666873627327,0.208666873627327, +0.285568764986637,0.285568764986637,0.285585143321431,0.285510742450456,0.285369511959902,0.28519320292928,0.285016838543926,0.284874534685509,0.284794840602778,0.284794840602778, +0.387953011860387,0.387953011860387,0.387934798276973,0.387799900805108,0.387580728966865,0.387319517845611,0.387062048023335,0.386853968035614,0.386736298606407,0.386736298606407, +0.514918768883304,0.514918768883304,0.514850960709489,0.514629674702859,0.514302050726851,0.513924561119249,0.513554714468983,0.513251514633387,0.513075211574874,0.513075211574874, +0.663170676513236,0.663170676513236,0.663042843352106,0.662699274516889,0.662224951861666,0.661695348266079,0.661175627268476,0.66073473549764,0.660460623501497,0.660460623501497, +0.82728961302325,0.82728961302325,0.827122345636455,0.826589508228115,0.825919265200383,0.825202372946113,0.824493495638355,0.823852051511574,0.823388200055666,0.823388200055666, + +00:38:09, +0.133849990528787,0.133849990528787,0.13390459291122,0.133905638329611,0.133865863966996,0.133802068763483,0.133732665706196,0.133674945702767,0.133642384105308,0.133642384105308, +0.133849990528787,0.133849990528787,0.13390459291122,0.133905638329611,0.133865863966996,0.133802068763483,0.133732665706196,0.133674945702767,0.133642384105308,0.133642384105308, +0.158831795617522,0.158831795617522,0.158881397048692,0.15887125840518,0.158815941900735,0.158734698171207,0.15864869556311,0.158577944562951,0.158538197368803,0.158538197368803, +0.209262309242445,0.209262309242445,0.209300172468668,0.209265945653829,0.209177873983925,0.209060151182832,0.208939484865715,0.208841434780416,0.208786562220389,0.208786562220389, +0.285688047603629,0.285688047603629,0.285704421436415,0.285630037220741,0.285488838836353,0.285312569972404,0.285136245797184,0.284993974422706,0.284914298557625,0.284914298557625, +0.388065771031364,0.388065771031364,0.388047554210703,0.387912686762246,0.387693569054504,0.387432424500723,0.387175021175959,0.386966995258727,0.38684935647461,0.38684935647461, +0.515016118216608,0.515016118216608,0.514948315856833,0.514727081675774,0.514399541826966,0.514022152335998,0.513652405106582,0.513349287087222,0.513173031510037,0.513173031510037, +0.663242819069482,0.663242819069482,0.663115008172486,0.662771522304938,0.662297320807068,0.661767855695984,0.661248271773343,0.660807496073658,0.66053345554537,0.66053345554537, +0.827328132042749,0.827328132042749,0.827160903059724,0.826628192465111,0.825958112627884,0.825241397173663,0.824532695271243,0.823891408924599,0.823427669854478,0.823427669854478, + +00:38:10, +0.133965003441768,0.133965003441768,0.134019614317255,0.134020666911001,0.133980898370952,0.133917107649338,0.133847707815069,0.133789989889734,0.133757429313856,0.133757429313856, +0.133965003441768,0.133965003441768,0.134019614317255,0.134020666911001,0.133980898370952,0.133917107649338,0.133847707815069,0.133789989889734,0.133757429313856,0.133757429313856, +0.158948931722963,0.158948931722963,0.158998537986078,0.158988406992061,0.158933099920232,0.158851866107019,0.158765872540464,0.158695128444844,0.158655384999666,0.158655384999666, +0.209381889094927,0.209381889094927,0.209419751730871,0.209385534938927,0.2092974809383,0.209179779620597,0.209059134461455,0.208961101260914,0.208906238084418,0.208906238084418, +0.285807301602786,0.285807301602786,0.285823670943779,0.285749303388115,0.285608137110689,0.285431908411872,0.28525562444415,0.285113385550918,0.285033727901751,0.285033727901751, +0.388178489349593,0.388178489349593,0.38816026930743,0.388025431879071,0.387806368284711,0.387545290273572,0.38728795341979,0.387079981550583,0.386962373398473,0.386962373398473, +0.51511342260467,0.51511342260467,0.515045626071048,0.514824443695427,0.514496987930967,0.514119698501781,0.513750050636882,0.513447014386424,0.513270806262724,0.513270806262724, +0.663314923140905,0.663314923140905,0.663187134506321,0.662843731561228,0.662369651147524,0.661840324434184,0.661320877499095,0.660880217795878,0.66060624868936,0.66060624868936, +0.827366628853576,0.827366628853576,0.827199438253575,0.82666685439616,0.825996937647739,0.825280398881526,0.824571872272462,0.82393074360529,0.823467116849962,0.823467116849962, + +00:38:11, +0.134080026108275,0.134080026108275,0.134134645459766,0.134135705230813,0.134095942529971,0.134032156315655,0.133962759731753,0.133905043907196,0.133872484365683,0.133872484365683, +0.134080026108275,0.134080026108275,0.134134645459766,0.134135705230813,0.134095942529971,0.134032156315655,0.133962759731753,0.133905043907196,0.133872484365683,0.133872484365683, +0.159066069257697,0.159066069257697,0.159115680342029,0.159105557001439,0.159050259377506,0.15896903550257,0.158883051000746,0.15881231382873,0.158772574143217,0.158772574143217, +0.209501456150118,0.209501456150118,0.209539318195496,0.209505111432397,0.209417075111909,0.209299395291241,0.209178771303775,0.209080754998962,0.209025901212055,0.209025901212055, +0.285926527000753,0.285926527000753,0.285942891860151,0.285868540969184,0.285727406799485,0.285551218264226,0.285374974501338,0.285232768086637,0.285153128651633,0.285153128651633, +0.388291166852597,0.388291166852597,0.38827294360465,0.388138136193062,0.387919126694958,0.387658115201628,0.387400844792296,0.38719292694865,0.387075349415466,0.387075349415466, +0.515210682096004,0.515210682096004,0.515142891400622,0.514921760810312,0.514594389087374,0.51421719966516,0.513847651108485,0.513544696579632,0.513368535881595,0.513368535881595, +0.663386988772502,0.663386988772502,0.663259222398599,0.662915902330792,0.66244194292814,0.661912754525876,0.661393444491021,0.660952900709667,0.660679002978885,0.660679002978885, +0.827405103482763,0.827405103482763,0.82723795124506,0.826705494048404,0.826035740287211,0.825319378097093,0.824611026669537,0.823970055581292,0.82350654106985,0.82350654106985, + +00:38:12, +0.134195058490045,0.134195058490045,0.134249686300507,0.134250753250793,0.134210996405765,0.134147214724099,0.134077821417862,0.134020107716727,0.133987549222339,0.133987549222339, +0.134195058490045,0.134195058490045,0.134249686300507,0.134250753250793,0.134210996405765,0.134147214724099,0.134077821417862,0.134020107716727,0.133987549222339,0.133987549222339, +0.159183208194656,0.159183208194656,0.159232824089485,0.159222708406241,0.159167420245449,0.159086206330704,0.15900023091675,0.158929500687362,0.158889764772186,0.158889764772186, +0.209621010400881,0.209621010400881,0.209658871855402,0.209624675127077,0.209536656497555,0.209418998187524,0.20929839538539,0.209200395987238,0.209145551595957,0.209145551595957, +0.286045723814164,0.286045723814164,0.286062084202143,0.285987749980537,0.285846647919302,0.285670499545996,0.285494295985248,0.285352122046339,0.285272500823736,0.285272500823736, +0.388403803577856,0.388403803577856,0.388385577139812,0.388250799741653,0.38803184432267,0.387770899322311,0.387513695330898,0.387305831490351,0.387188284563014,0.387188284563014, +0.515307896739057,0.515307896739057,0.515240111893972,0.515019033068854,0.514691745344641,0.514314655874627,0.513945206569929,0.51364233371542,0.513466220415247,0.513466220415247, +0.663459016009205,0.663459016009205,0.663331271894244,0.662988034658595,0.662514196193956,0.66198514601619,0.661465972794343,0.661025544860328,0.660751718459297,0.660751718459297, +0.827443555957298,0.827443555957298,0.827276442061192,0.826744111448945,0.82607452057352,0.825358334847719,0.824650158489954,0.824009344880211,0.823545942541833,0.823545942541833, + +00:38:13, +0.134310100548865,0.134310100548865,0.134364736801285,0.134365810932737,0.134326059960096,0.134262282836385,0.134192892835062,0.134135181279952,0.134102623845427,0.134102623845427, +0.134310100548865,0.134310100548865,0.134364736801285,0.134365810932737,0.134326059960096,0.134262282836385,0.134192892835062,0.134135181279952,0.134102623845427,0.134102623845427, +0.159300348506808,0.159300348506808,0.159349969201428,0.159339861179431,0.159284582496992,0.159203378564304,0.15911741226131,0.159046688993533,0.159006956859343,0.159006956859343, +0.209740551840097,0.209740551840097,0.209778412703468,0.209744226015825,0.209656225088057,0.209538588302221,0.20941800669903,0.209320024218439,0.209265189228802,0.209265189228802, +0.286164892059638,0.286164892059638,0.286181247986357,0.28610693043875,0.285965860486688,0.2857897522737,0.285613588912368,0.285471447446489,0.285391844434512,0.285391844434512, +0.388516399562802,0.388516399562802,0.38849816995032,0.38836342256223,0.388144521205226,0.387883642672998,0.387626505072974,0.387418695213064,0.387301178878495,0.387301178878495, +0.515405066582208,0.515405066582208,0.515337287599453,0.51511626051941,0.514789056751155,0.514412067178609,0.514042717069681,0.513739925842294,0.51356385991221,0.51356385991221, +0.663531004895879,0.663531004895879,0.663403283038111,0.663060128589535,0.662586410989946,0.66205749895019,0.661538462454216,0.661098150293096,0.660824395175881,0.660824395175881, +0.827481986304131,0.827481986304131,0.82731491072894,0.826782706624842,0.826113278533844,0.825397269160712,0.824689267761156,0.824048611529607,0.823585321293557,0.823585321293557, + +00:38:14, +0.134425152246574,0.134425152246574,0.134479796923958,0.13448087823849,0.134441133154778,0.13437736061428,0.134307973945068,0.134250264558547,0.134217708196598,0.134217708196598, +0.134425152246574,0.134425152246574,0.134479796923958,0.13448087823849,0.134441133154778,0.13437736061428,0.134307973945068,0.134250264558547,0.134217708196598,0.134217708196598, +0.159417490167165,0.159417490167165,0.15946711565088,0.159457015294018,0.159401746105105,0.159320552176294,0.159234595007301,0.159163878720079,0.159124150377502,0.159124150377502, +0.209860080460662,0.209860080460662,0.209897940732587,0.209863764091513,0.209775780876254,0.209658165628127,0.209537605237445,0.209439639685278,0.209384814103282,0.209384814103282, +0.286284031753778,0.286284031753778,0.286300383229378,0.286226082360386,0.286085044518178,0.285908976463842,0.285732853299171,0.285590744303538,0.285511159500399,0.285511159500399, +0.388628954844824,0.388628954844824,0.388610722073531,0.388476004692136,0.388257157379961,0.387996345291022,0.387739274055853,0.387531518154122,0.387414032399244,0.387414032399244, +0.515502191673772,0.515502191673772,0.515434418565349,0.515213443210273,0.514886323355236,0.514509433625467,0.514140182656147,0.513837473008695,0.513661454420946,0.513661454420946, +0.663602955477322,0.663602955477322,0.66347525587499,0.663132184168446,0.662658587361017,0.662129813372874,0.661610913515729,0.661170717053139,0.660897033173857,0.660897033173857, +0.827520394550169,0.827520394550169,0.827353357275232,0.826821279603112,0.826152014195321,0.825436181063342,0.824728354510541,0.824087855557002,0.823624677352628,0.823624677352628, + +00:38:15, +0.134540213545063,0.134540213545063,0.134594866630434,0.134595955129954,0.134556215951676,0.134492448019601,0.134423064709652,0.13436535751424,0.134332802237558,0.134332802237558, +0.134540213545063,0.134540213545063,0.134594866630434,0.134595955129954,0.134556215951676,0.134492448019601,0.134423064709652,0.13436535751424,0.134332802237558,0.134332802237558, +0.159534633148777,0.159534633148777,0.159584263410902,0.159574170723047,0.159518911042799,0.159437727139638,0.159351779127637,0.159281069839873,0.159241345299513,0.159241345299513, +0.209979596255492,0.209979596255492,0.210017455935673,0.209983289347033,0.209895323855001,0.209777730158051,0.209657190993402,0.209559242380487,0.209504426212109,0.209504426212109, +0.286403142913177,0.286403142913177,0.28641948994778,0.286345205761995,0.286204200030293,0.28602817213291,0.285852089162119,0.285710012633922,0.285630446037822,0.285630446037822, +0.388741469461263,0.388741469461263,0.388723233546759,0.388588546168668,0.388369752884164,0.388109007213667,0.387852002316822,0.387644300350811,0.387526845162548,0.387526845162548, +0.515599272061996,0.515599272061996,0.515531504839882,0.515310581189668,0.514983545205138,0.514606755263495,0.514237603377661,0.513934975262997,0.513759003989852,0.513759003989852, +0.663674867798269,0.663674867798269,0.663547190449606,0.663204201440094,0.662730725352011,0.662202089329172,0.661683326023906,0.661243245185559,0.660969632498375,0.660969632498375, +0.827558780722278,0.827558780722278,0.827391781726958,0.826859830410732,0.826190727585046,0.825475070582836,0.82476741876547,0.824127076989872,0.823664010746608,0.823664010746608, + +00:38:16, +0.134655284406274,0.134655284406274,0.134709945882676,0.134711041569076,0.134671308312707,0.134607545014218,0.134538165090631,0.13448046010881,0.134447905930064,0.134447905930064, +0.134655284406274,0.134655284406274,0.134709945882676,0.134711041569076,0.134671308312707,0.134607545014218,0.134538165090631,0.13448046010881,0.134447905930064,0.134447905930064, +0.159651777424733,0.159651777424733,0.159701412454595,0.159691327439605,0.159636077283126,0.159554903427338,0.159468964595272,0.15939826232583,0.15935854159827,0.15935854159827, +0.210099099217519,0.210099099217519,0.210136958305654,0.210102801775293,0.210014854017172,0.209897281884824,0.209776763959685,0.209678832296814,0.209624025548013,0.209624025548013, +0.286522225554413,0.286522225554413,0.286538568158122,0.286464300660112,0.28632332703954,0.286147339297382,0.285971296517658,0.285829252454067,0.285749704063194,0.285749704063194, +0.388853943449417,0.388853943449417,0.388835704407271,0.388701047029075,0.388482307755079,0.388221628478176,0.387964689893121,0.387757041840373,0.387639617205653,0.387639617205653, +0.51569630779506,0.51569630779506,0.515628546471203,0.515407674505755,0.515080722349049,0.514704032140919,0.514334979282495,0.514032432653506,0.513856508667258,0.513856508667258, +0.663746741903385,0.663746741903385,0.663619086806617,0.66327618044918,0.662802825007703,0.66227432686395,0.661755700023703,0.661315734735393,0.661042193194523,0.661042193194523, +0.827597144847283,0.827597144847283,0.827430184110964,0.826898359074637,0.826229418730073,0.825513937746379,0.824806460553258,0.824166275855655,0.823703321503018,0.823703321503018, + +00:38:17, +0.134770364792199,0.134770364792199,0.134825034642694,0.134826137517859,0.134786410199839,0.134722651560052,0.134653275049878,0.134595572304088,0.134563019235923,0.134563019235923, +0.134770364792199,0.134770364792199,0.134825034642694,0.134826137517859,0.134786410199839,0.134722651560052,0.134653275049878,0.134595572304088,0.134563019235923,0.134563019235923, +0.159768922968164,0.159768922968164,0.159818562755101,0.159808485416818,0.159753244799176,0.159672081012439,0.159586151383202,0.159515456150905,0.159475739246704,0.159475739246704, +0.210218589339692,0.210218589339692,0.210256447835477,0.210222301369219,0.210134371355655,0.210016820801291,0.209896324129098,0.209798409427026,0.209743612103739,0.209743612103739, +0.286641279694049,0.286641279694049,0.286657617876949,0.286583367071259,0.286442425562413,0.28626647797372,0.286090475382222,0.285948463780384,0.285868933592911,0.285868933592911, +0.388966376846536,0.388966376846536,0.388948134692289,0.388813507310566,0.388594822029904,0.388334209121742,0.388077336821946,0.387869742660006,0.387752348565755,0.387752348565755, +0.51579329892108,0.51579329892108,0.5157255435074,0.515504723206627,0.51517785483509,0.514801264305902,0.514432310418853,0.514129845228465,0.513953968501427,0.513953968501427, +0.663818577837272,0.663818577837272,0.663690944990615,0.66334812124034,0.662874886372803,0.662346526022008,0.66182803556001,0.661388185747611,0.66111471530732,0.66111471530732, +0.827635486951968,0.827635486951968,0.827468564454054,0.826936865621723,0.826268087657415,0.825552782581114,0.824845479901182,0.824205452181744,0.823742609649338,0.823742609649338, + +00:38:18, +0.134885454664883,0.134885454664883,0.134940132872551,0.134941242938355,0.13490152157509,0.134837767619075,0.134768394549315,0.134710694061956,0.134678142116995,0.134678142116995, +0.134885454664883,0.134885454664883,0.134940132872551,0.134941242938355,0.13490152157509,0.134837767619075,0.134768394549315,0.134710694061956,0.134678142116995,0.134678142116995, +0.159886069752241,0.159886069752241,0.1599357142856,0.159925644627852,0.159870413564081,0.159789259868024,0.159703339464462,0.159632651288093,0.159592938217788,0.159592938217788, +0.210338066614978,0.210338066614978,0.210375924518107,0.210341788121754,0.210253875863359,0.210136346900316,0.210015871494459,0.209917973763907,0.209863185872054,0.209863185872054, +0.286760305348636,0.286760305348636,0.286776639120793,0.286702405011945,0.286561495615392,0.286385588178375,0.286209625772232,0.28606764662927,0.285988134643361,0.285988134643361, +0.389078769689827,0.389078769689827,0.38906052443899,0.388925927050299,0.388707295745792,0.388446749181518,0.388189943140448,0.387982402846861,0.38786503928001,0.38786503928001, +0.515890245488103,0.515890245488103,0.515822495996495,0.515601727340311,0.515274942711317,0.51489845180654,0.514529596834872,0.514227213036048,0.514051383540558,0.514051383540558, +0.663890375644466,0.663890375644466,0.663762765046128,0.663420023858142,0.662946909491955,0.662418686848078,0.661900332677653,0.661460598267116,0.66118719888172,0.66118719888172, +0.827673807063078,0.827673807063078,0.827506922782995,0.826975350078841,0.826306734394044,0.825591605114145,0.824884476836475,0.824244605995491,0.823781875213003,0.823781875213003, + +00:38:19, +0.135000553986421,0.135000553986421,0.135055240534361,0.135056357792667,0.13501664240053,0.13495289315331,0.134883523550916,0.134825825344347,0.134793274535189,0.134793274535189, +0.135000553986421,0.135000553986421,0.135055240534361,0.135056357792667,0.13501664240053,0.13495289315331,0.134883523550916,0.134825825344347,0.134793274535189,0.134793274535189, +0.160003217750172,0.160003217750172,0.160052867019313,0.160042805045913,0.15998758355101,0.159906439967216,0.159820528812124,0.159749847710428,0.159710138484535,0.159710138484535, +0.210457531036362,0.210457531036362,0.210495388346525,0.210461262025859,0.210373367533209,0.21025586017478,0.210135406048606,0.21003752530026,0.209982746845739,0.209982746845739, +0.28687930253471,0.28687930253471,0.286895631906174,0.286821414498665,0.286680537214944,0.286504669927782,0.286328747704095,0.286186801017109,0.286107307230915,0.286107307230915, +0.38919112201645,0.38919112201645,0.389172873684505,0.389038306285391,0.388819728939851,0.388559248694608,0.388302508885731,0.388095022438046,0.387977689385524,0.387977689385524, +0.515987147544112,0.515987147544112,0.515919403986443,0.515698686954769,0.515371986025719,0.51499559469086,0.514626838578625,0.514324536124365,0.514148753832783,0.514148753832783, +0.663962135369438,0.663962135369438,0.663834547017617,0.663491888347092,0.663018894409737,0.662490809386829,0.66197259142139,0.661532972338746,0.66125964396261,0.66125964396261, +0.827712105207314,0.827712105207314,0.82754525912451,0.827013812472803,0.82634535896689,0.825630405372532,0.824923451386329,0.824283737324208,0.82382111822141,0.82382111822141, + +00:38:20, +0.13511566271896,0.13511566271896,0.13517035759029,0.13517148204295,0.135131772638282,0.135068028124832,0.134998662016707,0.134940966113245,0.134908416452469,0.134908416452469, +0.13511566271896,0.13511566271896,0.13517035759029,0.13517148204295,0.135131772638282,0.135068028124832,0.134998662016707,0.134940966113245,0.134908416452469,0.134908416452469, +0.160120366935207,0.160120366935207,0.160170020929501,0.160159966644246,0.160104754733174,0.160023621283179,0.159937719399306,0.159867045390986,0.159827340019996,0.159827340019996, +0.210576982596843,0.210576982596843,0.21061483931373,0.210580723074511,0.210492846358147,0.210375360617583,0.210254927784394,0.210157064028904,0.210102295017595,0.210102295017595, +0.286998271268795,0.286998271268795,0.287014596249594,0.2869403955479,0.286799550377523,0.286623723238364,0.286447841194204,0.286305926960273,0.286226451371931,0.286226451371931, +0.38930343386352,0.38930343386352,0.38928518246592,0.389150645052912,0.388932121649144,0.388671707698072,0.388415034094856,0.388207601470621,0.388090298919362,0.388090298919362, +0.516084005137024,0.516084005137024,0.516016267525132,0.515795602097894,0.51546898482622,0.515092693006828,0.514724035698117,0.514421814541458,0.514246079426166,0.514246079426166, +0.664033857056591,0.664033857056591,0.663906290949479,0.663563714751627,0.663090841170661,0.662562893682862,0.662044811835914,0.661605308007273,0.661332050594812,0.661332050594812, +0.827750381411338,0.827750381411338,0.827583573505282,0.827052252830383,0.826383961402843,0.825669183383295,0.824962403577894,0.824322846195164,0.823860338701912,0.823860338701912, + +00:38:21, +0.135230780824696,0.135230780824696,0.135285484002553,0.13528661565141,0.135246912250516,0.135183172495766,0.135113809908763,0.135056116330688,0.135023567830846,0.135023567830846, +0.135230780824696,0.135230780824696,0.135285484002553,0.13528661565141,0.135246912250516,0.135183172495766,0.135113809908763,0.135056116330688,0.135023567830846,0.135023567830846, +0.160237517280636,0.160237517280636,0.160287175989463,0.160277129396137,0.160221927083823,0.160140803789116,0.16005491119916,0.159984244302881,0.159944542797265,0.159944542797265, +0.210696421289442,0.210696421289442,0.210734277412736,0.210700171260704,0.210612312331132,0.210494848221639,0.210374436694694,0.210276589942675,0.210221830380437,0.210221830380437, +0.2871172115674,0.2871172115674,0.287133532167546,0.287059348176117,0.286918535119567,0.286742748126531,0.28656690625894,0.286425024475119,0.286345567082756,0.286345567082756, +0.389415705268108,0.389415705268108,0.389397450820276,0.389262943389887,0.389044473910689,0.388784126228926,0.388527518804838,0.388320139981605,0.388202867918543,0.388202867918543, +0.516180818314688,0.516180818314688,0.516113086660386,0.515892472817518,0.515565939160677,0.515189746802339,0.514821188241289,0.514519048335304,0.514343360368707,0.514343360368707, +0.664105540750266,0.664105540750266,0.663977996886045,0.663635503116121,0.663162749819176,0.662634939780715,0.662116993965853,0.661677605317404,0.661404418823082,0.661404418823082, +0.827788635701771,0.827788635701771,0.827621865951954,0.827090671178309,0.826422541728752,0.825707939173413,0.82500133343828,0.824361932635585,0.82389953668182,0.82389953668182, + +00:38:22, +0.135345908265879,0.135345908265879,0.135400619733418,0.135401758580302,0.135362061199458,0.135298326228288,0.135228967189213,0.135171275958761,0.135138728632385,0.135138728632385, +0.135345908265879,0.135345908265879,0.135400619733418,0.135401758580302,0.135362061199458,0.135298326228288,0.135228967189213,0.135171275958761,0.135138728632385,0.135138728632385, +0.160354668759786,0.160354668759786,0.160404332172541,0.160394293274911,0.160339100576247,0.16025798745827,0.160172104184881,0.160101444419267,0.160061746789473,0.160061746789473, +0.210815847107193,0.210815847107193,0.210853702636578,0.210819606577452,0.210731765445142,0.210614322979882,0.210493932772397,0.210396103034429,0.210341352927102,0.210341352927102, +0.28723612344702,0.28723612344702,0.287252439676506,0.28717827239977,0.287037491457504,0.286861744608679,0.286685942914671,0.286544093577993,0.286464654379722,0.286464654379722, +0.38952793626724,0.38952793626724,0.38950967878457,0.389375201333296,0.389156785761458,0.38889650432414,0.388639963052648,0.388432638007969,0.38831539642004,0.38831539642004, +0.516277587124891,0.516277587124891,0.516209861439962,0.515989299161402,0.515662849076883,0.515286756125228,0.514918296256016,0.514616237553816,0.514440596708342,0.514440596708342, +0.664177186494737,0.664177186494737,0.664049664871579,0.663707253484882,0.663234620399663,0.662706947724859,0.662189137855769,0.66174986431378,0.661476748692111,0.661476748692111, +0.827826868105193,0.827826868105193,0.827660136491127,0.827129067543271,0.826461099971423,0.825746672769824,0.825040240994555,0.824400996672659,0.823938712188405,0.823938712188405, + +00:38:23, +0.135461045004808,0.135461045004808,0.135515764745202,0.135516910791935,0.13547721944738,0.135413489284628,0.135344133820235,0.135286444959603,0.135253898819201,0.135253898819201, +0.135461045004808,0.135461045004808,0.135515764745202,0.135516910791935,0.13547721944738,0.135413489284628,0.135344133820235,0.135286444959603,0.135253898819201,0.135253898819201, +0.160471821346027,0.160471821346027,0.160521489452112,0.160511458253932,0.160456275183775,0.160375172263923,0.160289298329703,0.160218645713339,0.160178951969793,0.160178951969793, +0.210935260043149,0.210935260043149,0.210973114978304,0.210939029017783,0.210851205693169,0.210733784885262,0.210613416010409,0.210515603297037,0.210460862650441,0.210460862650441, +0.287355006924138,0.287355006924138,0.287371318792938,0.2872971682353,0.287156419407745,0.286980712701188,0.286804951177748,0.286663134285225,0.286583713279147,0.286583713279147, +0.389640126897894,0.389640126897894,0.389621866395752,0.389487418920074,0.389269057238381,0.38900884202064,0.388752366875212,0.388545095586641,0.388427884460782,0.388427884460782, +0.51637431161535,0.51637431161535,0.516306591911553,0.516086081177247,0.515759714622563,0.515383721023258,0.515015359790105,0.51471338224484,0.514537788492938,0.514537788492938, +0.664248794334213,0.664248794334213,0.664121294950283,0.663778965902153,0.66330645295644,0.662778917559699,0.662261243550158,0.661822085040977,0.661549040246523,0.661549040246523, +0.827865078648145,0.827865078648145,0.827698385149363,0.827167441951919,0.826499636157624,0.825785384199423,0.825079126273746,0.82444003833353,0.823977865248896,0.823977865248896, + +00:38:24, +0.135576191003832,0.135576191003832,0.135630919000274,0.135632072248667,0.135592386956608,0.135528661627062,0.135459309764057,0.135401623295402,0.135369078353462,0.135369078353462, +0.135576191003832,0.135576191003832,0.135630919000274,0.135632072248667,0.135592386956608,0.135528661627062,0.135459309764057,0.135401623295402,0.135369078353462,0.135369078353462, +0.160588975012766,0.160588975012766,0.160638647801595,0.160628624306603,0.160573450879777,0.160492358179397,0.1604064936069,0.160335848158332,0.160296158311437,0.160296158311437, +0.21105466009038,0.21105466009038,0.211092514430983,0.211058438574744,0.210970633068226,0.210853233930748,0.210732886401655,0.210635090723387,0.210580359543325,0.210580359543325, +0.287473862015222,0.287473862015222,0.287490169533292,0.287416035699134,0.28727531898669,0.28709965242043,0.286923931064514,0.286782146613134,0.286702743797338,0.286702743797338, +0.389752277197005,0.389752277197005,0.389734013690728,0.389599596187112,0.389381288378339,0.389121139355306,0.38886473030941,0.388657512754503,0.388540332077654,0.388540332077654, +0.516470991833719,0.516470991833719,0.516403278122786,0.516182818912683,0.515856535845379,0.515480641544133,0.515112378891301,0.514810482456155,0.514634935770299,0.514634935770299, +0.664320364312838,0.664320364312838,0.664192887166294,0.663850640412112,0.663378247533757,0.662850849329576,0.662333311093453,0.661894267543502,0.661621293530879,0.661621293530879, +0.827903267357126,0.827903267357126,0.827736611953182,0.827205794430861,0.82653815031408,0.825824073489068,0.825117989302837,0.8244790576453,0.824016995890479,0.824016995890479, + +00:38:25, +0.135691346225354,0.135691346225354,0.135746082461055,0.135747242912907,0.135707563689518,0.135643843217921,0.135574494982962,0.1355168109284,0.135484267197384,0.135484267197384, +0.135691346225354,0.135691346225354,0.135746082461055,0.135747242912907,0.135707563689518,0.135643843217921,0.135574494982962,0.1355168109284,0.135484267197384,0.135484267197384, +0.16070612973345,0.16070612973345,0.16075580719445,0.160745791406369,0.160690627637661,0.160609545178055,0.160523689989785,0.160453051727518,0.160413365787657,0.160413365787657, +0.211174047241972,0.211174047241972,0.211211900987697,0.211177835241396,0.21109004756334,0.210972670109323,0.210852343939075,0.210754565306388,0.21069984359864,0.21069984359864, +0.287592688736726,0.287592688736726,0.287608991914004,0.287534874807685,0.287394190210725,0.287218563782758,0.287042882591294,0.286901130578023,0.286821745950586,0.286821745950586, +0.389864387201464,0.389864387201464,0.38984612070636,0.389711733171254,0.389493479218171,0.389233396364974,0.388977053392079,0.388769889548393,0.388652739307496,0.388652739307496, +0.516567627827587,0.516567627827587,0.51649992012122,0.516279512415279,0.515953312792926,0.515577517735486,0.515209353607282,0.514907538235477,0.514732038588161,0.514732038588161, +0.664391896474693,0.664391896474693,0.66426444156368,0.663922277058871,0.663450004175802,0.662922743078767,0.662405340530018,0.661966411865803,0.661693508589671,0.661693508589671, +0.827941434258595,0.827941434258595,0.827774816929064,0.827244125006664,0.826576642467476,0.825862740665571,0.825156830108775,0.824518054635033,0.8240561041403,0.8240561041403, + +00:38:26, +0.135806510631824,0.135806510631824,0.135861255090013,0.135862422747115,0.135822749608537,0.135759034019585,0.135689689439279,0.135632007820887,0.135599465313235,0.135599465313235, +0.135806510631824,0.135806510631824,0.135861255090013,0.135862422747115,0.135822749608537,0.135759034019585,0.135689689439279,0.135632007820887,0.135599465313235,0.135599465313235, +0.160823285481567,0.160823285481567,0.160872967604173,0.160862959526713,0.160807805430874,0.160726733233296,0.160640887451712,0.160570256394212,0.160530574371743,0.160530574371743, +0.211293421491029,0.211293421491029,0.211331274641548,0.211297219010822,0.211209449171556,0.211092093413991,0.210971788615629,0.210874027038962,0.21081931480929,0.21081931480929, +0.287711487105092,0.287711487105092,0.287727785951498,0.287653685577351,0.28751303309622,0.287337446804515,0.287161805774403,0.287020086196184,0.286940719755172,0.286940719755172, +0.389976456948116,0.389976456948116,0.389958187479462,0.389823829909301,0.389605629794669,0.389345613086435,0.389089336160009,0.388882226005105,0.388765106187102,0.388765106187102, +0.516664219644476,0.516664219644476,0.516596517954353,0.516376161732535,0.516050045512735,0.515674349644887,0.51530628398566,0.515004549630454,0.514829096994198,0.514829096994198, +0.664463390863791,0.664463390863791,0.66433595818645,0.66399387588648,0.663521722926697,0.662994598851481,0.662477331904156,0.662038518052258,0.661765685467329,0.661765685467329, +0.827979579378971,0.827979579378971,0.82781300010345,0.827282433705856,0.826615112644457,0.825901385755707,0.825195648718461,0.82455702932975,0.824095190025465,0.824095190025465, + +00:38:27, +0.135921684185746,0.135921684185746,0.135976436849671,0.135977611713801,0.135937944676143,0.135874233994484,0.135804893095392,0.135747213935205,0.135714672663336,0.135714672663336, +0.135921684185746,0.135921684185746,0.135976436849671,0.135977611713801,0.135937944676143,0.135874233994484,0.135804893095392,0.135747213935205,0.135714672663336,0.135714672663336, +0.160940442230642,0.160940442230642,0.160990129004302,0.160980128641155,0.160924984232904,0.160843922318563,0.160758085966072,0.160687462131766,0.160647784037028,0.160647784037028, +0.211412782830672,0.211412782830672,0.211450635385654,0.211416589876117,0.211328837885938,0.21121150383777,0.211091220424293,0.210993475914051,0.210938773168199,0.210938773168199, +0.287830257136745,0.287830257136745,0.287846551662181,0.28777246802452,0.287631847659535,0.287456301502029,0.28728070063014,0.287139013483895,0.287059665227361,0.287059665227361, +0.390088486473759,0.390088486473759,0.390070214046806,0.389935886438008,0.389717740144584,0.389457789556435,0.389201578649948,0.388994522161387,0.388877432753222,0.388877432753222, +0.516760767331843,0.516760767331843,0.516693071669614,0.51647276691189,0.51614673405227,0.515771137319843,0.515403170073982,0.515101516688673,0.514926111036015,0.514926111036015, +0.664534847524082,0.664534847524082,0.664407437078544,0.664065436938922,0.663593403830499,0.663066416691866,0.662549285260103,0.662110586147182,0.661837824208217,0.661837824208217, +0.828017702744632,0.828017702744632,0.82785116150274,0.827320720554924,0.826653560871628,0.82594000878621,0.82523444515876,0.824595981756429,0.824134253573035,0.824134253573035, + +00:38:28, +0.136036866849673,0.136036866849673,0.1360916277026,0.136092809775528,0.136053148854863,0.135989443105102,0.135920105913733,0.135862429233747,0.135829889210056,0.135829889210056, +0.136036866849673,0.136036866849673,0.1360916277026,0.136092809775528,0.136053148854863,0.135989443105102,0.135920105913733,0.135862429233747,0.135829889210056,0.135829889210056, +0.16105759995424,0.16105759995424,0.161107291368413,0.161097298723259,0.161042164017279,0.160961112407334,0.160875285506297,0.160804668913573,0.16076499475688,0.16076499475688, +0.211532131254038,0.211532131254038,0.211569983213149,0.211535947830397,0.211448213699563,0.211330901373696,0.211210639358059,0.211112911924613,0.211058218668304,0.211058218668304, +0.287948998848101,0.287948998848101,0.287965289062449,0.287891222165563,0.287750633917014,0.287575127891616,0.287399567174791,0.287257912457421,0.287178582383406,0.287178582383406, +0.390200475815151,0.390200475815151,0.390182200445119,0.390047902794086,0.389829810304617,0.389569925811676,0.389313780898598,0.389106778053943,0.388989719042564,0.388989719042564, +0.516857270937081,0.516857270937081,0.516789581314368,0.516569328000713,0.516243378458931,0.515867880807791,0.51550001191973,0.515198439457651,0.515023080761155,0.515023080761155, +0.664606266499452,0.664606266499452,0.664478878283839,0.664136960260116,0.663665046931201,0.663138196644001,0.662621200642029,0.662182616194824,0.661909924856633,0.661909924856633, +0.828055804381917,0.828055804381917,0.827889301153292,0.827358985580315,0.82669198717555,0.82597860978377,0.825273219456491,0.82463491194201,0.824173294810034,0.824173294810034, + +00:38:29, +0.136152058586208,0.136152058586208,0.136206827611423,0.136208016894906,0.136168362107277,0.136104661313969,0.136035327856787,0.135977653678956,0.135945114915816,0.135945114915816, +0.136152058586208,0.136152058586208,0.136206827611423,0.136208016894906,0.136168362107277,0.136104661313969,0.136035327856787,0.135977653678956,0.135945114915816,0.135945114915816, +0.161174758625967,0.161174758625967,0.161224454670121,0.161214469746625,0.161159344757563,0.161078303473131,0.16099248604586,0.160921876713066,0.160882206504712,0.160882206504712, +0.211651466754282,0.211651466754282,0.211689318117185,0.211655292866791,0.211567576605529,0.211450286014822,0.211330045409938,0.211232335063623,0.211177651302562,0.211177651302562, +0.288067712255559,0.288067712255559,0.288083998168683,0.288009948016839,0.287869391884989,0.287693925989576,0.287518405424631,0.287376783133014,0.287297471239546,0.287297471239546, +0.390312425009,0.390312425009,0.390294146711082,0.390159879014201,0.38994184031143,0.389682021888815,0.389425942942617,0.389218993719433,0.389101965091788,0.389101965091788, +0.516953730507516,0.516953730507516,0.516886046935917,0.516665845046313,0.516339978780053,0.515964580156108,0.515596809570322,0.515295317984843,0.515120006217094,0.515120006217094, +0.664677647833723,0.664677647833723,0.664550281846149,0.664208445893917,0.663736652272731,0.663209938751903,0.662693078094042,0.66225460823937,0.661981987456812,0.661981987456812, +0.828093884317123,0.828093884317123,0.827927419081427,0.827397228808435,0.826730391582748,0.826017188775041,0.825311971638437,0.824673819913391,0.824212313763443,0.824212313763443, + +00:38:30, +0.136267259358006,0.136267259358006,0.136322036538812,0.136323233034598,0.136283584396015,0.13621988858367,0.136150558887087,0.136092887233327,0.136060349743088,0.136060349743088, +0.136267259358006,0.136267259358006,0.136322036538812,0.136323233034598,0.136283584396015,0.13621988858367,0.136150558887087,0.136092887233327,0.136060349743088,0.136060349743088, +0.161291918219467,0.161291918219467,0.161341618883081,0.161331641684894,0.161276526427362,0.16119549548951,0.16110968755827,0.161039085503716,0.160999419253972,0.160999419253972, +0.211770789324574,0.211770789324574,0.211808640090931,0.211774624978449,0.211686926596947,0.21156965775422,0.211449438572957,0.211351745324075,0.211297071063946,0.211297071063946, +0.288186397375504,0.288186397375504,0.288202678997253,0.288128645594693,0.287988121579777,0.287812695812199,0.287637215395919,0.28749562552691,0.287416331812007,0.287416331812007, +0.390424334091973,0.390424334091973,0.390406052881333,0.390271815134975,0.390053830201635,0.389794077824464,0.389538064818617,0.389331169194472,0.389214170937511,0.389214170937511, +0.517050146090412,0.517050146090412,0.516982468581496,0.516762318095929,0.516436535062906,0.516061235412102,0.51569356307311,0.515392152317638,0.515216887451244,0.515216887451244, +0.66474899157065,0.66474899157065,0.664621647809222,0.664279893884115,0.663808219898952,0.663281643059526,0.662764917660183,0.662326562324939,0.662054012052923,0.662054012052923, +0.828131942576509,0.828131942576509,0.827965515313423,0.82743545026565,0.826768774119704,0.826055745786634,0.825350701731338,0.824712705697429,0.824251310460201,0.824251310460201, + +00:38:31, +0.136382469127772,0.136382469127772,0.13643725444749,0.136438458157318,0.136398815683755,0.136335124876839,0.136265798967218,0.136208129859405,0.136175593654395,0.136175593654395, +0.136382469127772,0.136382469127772,0.13643725444749,0.136438458157318,0.136398815683755,0.136335124876839,0.136265798967218,0.136208129859405,0.136175593654395,0.136175593654395, +0.161409078708421,0.161409078708421,0.161458783980988,0.161448814511743,0.161393709000322,0.161312688430072,0.161226890017079,0.161156295259034,0.16111663297815,0.16111663297815, +0.211890098958104,0.211890098958104,0.211927949127572,0.211893944158535,0.21180626366695,0.211689016584975,0.21156881884016,0.211471142698977,0.211416477945447,0.211416477945447, +0.288305054224309,0.288305054224309,0.28832133156451,0.288247314915456,0.288106823017683,0.287931437375757,0.287755997104902,0.287614439655335,0.287535164117002,0.287535164117002, +0.390536203100691,0.390536203100691,0.390517918992462,0.390383711192984,0.390165780011803,0.389906093655192,0.389650146563167,0.389443304515631,0.389326336616306,0.389326336616306, +0.517146517732964,0.517146517732964,0.517078846298274,0.51685874719674,0.516533047354694,0.516157846623019,0.515790272475381,0.51548894250336,0.515313724510951,0.515313724510951, +0.664820297753927,0.664820297753927,0.664692976216741,0.664351304274437,0.663879749853664,0.663353309610755,0.662836719384431,0.662398478495587,0.66212599868907,0.66212599868907, +0.828169979186293,0.828169979186293,0.828003589875519,0.827473649978287,0.826807134812861,0.826094280845118,0.825389409761893,0.82475156932094,0.824290284927208,0.824290284927208, + +00:38:32, +0.136497687858262,0.136497687858262,0.136552481300232,0.136553692225828,0.136514055933229,0.136450370156158,0.136381048059817,0.136323381519786,0.13629084661231,0.13629084661231, +0.136497687858262,0.136497687858262,0.136552481300232,0.136553692225828,0.136514055933229,0.136450370156158,0.136381048059817,0.136323381519786,0.13629084661231,0.13629084661231, +0.161526240066553,0.161526240066553,0.161575949937573,0.161565988200892,0.161510892450124,0.161429882268453,0.161344093395875,0.161273505952571,0.161233847650773,0.161233847650773, +0.212009395648074,0.212009395648074,0.21204724522031,0.212013250400229,0.211925587808682,0.211808362500193,0.21168818620461,0.211590527181358,0.211535871940073,0.211535871940073, +0.288423682818333,0.288423682818333,0.288439955886797,0.288365955995445,0.288225496214996,0.288050150696513,0.287874750567812,0.287733225534499,0.28765396817073,0.28765396817073, +0.390648032071729,0.390648032071729,0.390629745081018,0.390495567224761,0.39027768977846,0.390018069417522,0.389762188212791,0.389555399719435,0.389438462164701,0.389438462164701, +0.517242845482307,0.517242845482307,0.517175180133359,0.516955132395857,0.516629515702559,0.516254413836038,0.515886937824358,0.515585688589268,0.515410517443498,0.515410517443498, +0.664891566427183,0.664891566427183,0.664764267112327,0.664422677108543,0.663951242180603,0.663424938449416,0.662908483310697,0.662470356795305,0.662197947409293,0.662197947409293, +0.828207994172654,0.828207994172654,0.828041642793916,0.82751182797263,0.82684547368862,0.826132793977026,0.82542809575676,0.824790410810698,0.824329237191321,0.824329237191321, + +00:38:33, +0.13661291551228,0.13661291551228,0.136667717059862,0.136668935202943,0.136629305107218,0.136565624384364,0.136496306127569,0.136438642177115,0.136406108579456,0.136406108579456, +0.13661291551228,0.13661291551228,0.136667717059862,0.136668935202943,0.136629305107218,0.136565624384364,0.136496306127569,0.136438642177115,0.136406108579456,0.136406108579456, +0.161643402267624,0.161643402267624,0.16169311672661,0.161683162726097,0.161628076750493,0.161547076978329,0.161461297668287,0.161390717557915,0.16135106324541,0.16135106324541, +0.212128679387707,0.212128679387707,0.212166528362364,0.212132543696731,0.212044899015308,0.211927695492994,0.211807540659383,0.211709898764261,0.211655253040849,0.211655253040849, +0.288542283173921,0.288542283173921,0.28855855198044,0.288484568850966,0.288344141187994,0.288168835790713,0.28799347580087,0.287851983180602,0.287772743989378,0.287772743989378, +0.390759821041619,0.390759821041619,0.390741531183505,0.390607383266793,0.390389559538086,0.390130005147933,0.38987418980397,0.389667454842368,0.38955054761918,0.38955054761918, +0.517339129385506,0.517339129385506,0.51727147013379,0.517051473740327,0.516725940153576,0.516350937098275,0.515983559167199,0.515682390622559,0.515507266296102,0.515507266296102, +0.66496279763398,0.66496279763398,0.664835520539537,0.664494012430033,0.664022696923438,0.663496529619265,0.662980209482832,0.662542197268019,0.662269858257567,0.662269858257567, +0.82824598756173,0.82824598756173,0.828079674094773,0.827549984274927,0.826883790773344,0.826171285208846,0.82546675974256,0.82482923019344,0.82436816727936,0.82436816727936, + +00:38:34, +0.136728152052684,0.136728152052684,0.136782961689254,0.136784187051526,0.136744563168552,0.136680887524242,0.136611573133211,0.13655391179409,0.136521379518508,0.136521379518508, +0.136728152052684,0.136728152052684,0.136782961689254,0.136784187051526,0.136744563168552,0.136680887524242,0.136611573133211,0.13655391179409,0.136521379518508,0.136521379518508, +0.161760565285434,0.161760565285434,0.161810284321909,0.161800338061157,0.161745261875191,0.161664272533417,0.161578502807984,0.161507930048697,0.161468279735668,0.161468279735668, +0.212247950170242,0.212247950170242,0.212285798546968,0.212251824041256,0.212164197280008,0.212047015556516,0.211926882197576,0.211829257440746,0.211774621240816,0.211774621240816, +0.288660855307403,0.288660855307403,0.288677119861751,0.288603153498308,0.288462757952939,0.288287492674593,0.288112172820281,0.287970712609827,0.287891491589119,0.287891491589119, +0.390871570046849,0.390871570046849,0.390853277336379,0.390719159355524,0.390501389327118,0.390241900882859,0.389986151373139,0.389779469920867,0.389662593016184,0.389662593016184, +0.517435369489565,0.517435369489565,0.517367716346546,0.517147771277133,0.516822320754755,0.516447416456781,0.516080136550997,0.515779048650361,0.515603971115916,0.515603971115916, +0.665033991417821,0.665033991417821,0.664906736541862,0.664565310282441,0.664094114125778,0.663568083164,0.663051897944619,0.662613999957592,0.662341731277805,0.662341731277805, +0.82828395937962,0.82828395937962,0.828117683804209,0.827588118911384,0.826922086093354,0.826209754567028,0.825505401745869,0.824868027495859,0.8244070752181,0.8244070752181, + +00:38:35, +0.136843397442379,0.136843397442379,0.136898215151333,0.136899447734492,0.136859830080114,0.136796159538626,0.136726849039531,0.136669190333458,0.136636659392191,0.136636659392191, +0.136843397442379,0.136843397442379,0.136898215151333,0.136899447734492,0.136859830080114,0.136796159538626,0.136726849039531,0.136669190333458,0.136636659392191,0.136636659392191, +0.161877729093822,0.161877729093822,0.161927452697321,0.161917514179905,0.161862447798017,0.161781468907471,0.161695708788672,0.161625143398583,0.161585497095194,0.161585497095194, +0.212367207988932,0.212367207988932,0.212405055767376,0.212371091427034,0.21228348259598,0.212166322683913,0.2120462108123,0.211948603203892,0.211893976533033,0.211893976533033, +0.288779399235098,0.288779399235098,0.288795659547031,0.288721709953747,0.288581346526083,0.288406121364372,0.288230841642239,0.288089413838346,0.288010210986111,0.288010210986111, +0.390983279123861,0.390983279123861,0.390964983576057,0.390830895527351,0.390613179181948,0.390353756658692,0.390098072956688,0.389891444991325,0.389774598392106,0.389774598392106, +0.517531565841424,0.517531565841424,0.517463918818537,0.517244025053194,0.516918657553044,0.516543851958543,0.51617667002278,0.515875662719741,0.515700631950027,0.515700631950027, +0.665105147822142,0.665105147822142,0.664977915162732,0.664636570709236,0.664165493831165,0.663639599127251,0.66312354873978,0.662685764907822,0.662413566513853,0.662413566513853, +0.828321909652383,0.828321909652383,0.828155671948306,0.827626231908167,0.826960359674934,0.826248202077983,0.825544021793225,0.824906802744608,0.824445961034277,0.824445961034277, + +00:38:36, +0.136958651644322,0.136958651644322,0.137013477409074,0.137014717214805,0.136975105804836,0.136911440390404,0.136842133809366,0.136784477758016,0.13675194816328,0.13675194816328, +0.136958651644322,0.136958651644322,0.137013477409074,0.137014717214805,0.136975105804836,0.136911440390404,0.136842133809366,0.136784477758016,0.13675194816328,0.13675194816328, +0.161994893666666,0.161994893666666,0.162044621826733,0.162034691056216,0.161979634492812,0.161898666074284,0.161812915584098,0.161742357581282,0.161702715297671,0.161702715297671, +0.212486452837049,0.212486452837049,0.212524300016855,0.212490345847314,0.212402754956437,0.212285616868358,0.212165526496685,0.212067936046794,0.212013318910576,0.212013318910576, +0.288897914973309,0.288897914973309,0.288914171052565,0.288840238233548,0.288699906923661,0.288524721876257,0.288349482282923,0.288208086882317,0.288128902196502,0.288128902196502, +0.391094948309053,0.391094948309053,0.391076649938906,0.390942591818631,0.390724929138925,0.390465572511778,0.390209954590966,0.390003380090092,0.3898865637833,0.3898865637833, +0.517627718487956,0.517627718487956,0.517560077596611,0.517340235115364,0.517014950595325,0.516640243650482,0.516273159629514,0.515972232877699,0.51579724884546,0.51579724884546, +0.665176266890315,0.665176266890315,0.66504905644551,0.664707793753825,0.66423683608308,0.663711077552584,0.66319516191197,0.662757492162444,0.662485364009493,0.662485364009493, +0.828359838406039,0.828359838406039,0.828193638553102,0.827664323291403,0.826998611544324,0.82628662776808,0.825582619911126,0.824945555966302,0.824484824754587,0.824484824754587, + +00:38:37, +0.137073914621521,0.137073914621521,0.137128748425503,0.137129995455481,0.137090390305699,0.13702673004251,0.136957427405603,0.136899774030612,0.136867245794601,0.136867245794601, +0.137073914621521,0.137073914621521,0.137128748425503,0.137129995455481,0.137090390305699,0.13702673004251,0.136957427405603,0.136899774030612,0.136867245794601,0.136867245794601, +0.162112058977884,0.162112058977884,0.162161791684075,0.162151868664003,0.162096821933455,0.162015864007691,0.161930123168046,0.16185957257054,0.161819934316826,0.161819934316826, +0.21260568470788,0.21260568470788,0.212643531288691,0.212609587295362,0.21252201435461,0.212404898103039,0.212284829243876,0.212187255962563,0.212132648366539,0.212132648366539, +0.289016402538326,0.289016402538326,0.289032654394626,0.288958738353959,0.288818439161896,0.288643294226442,0.288468094758499,0.288326731757884,0.288247565236424,0.288247565236424, +0.391206577638779,0.391206577638779,0.391188276461253,0.391054248265672,0.390836639234351,0.390577348478417,0.390321796312276,0.390115275253473,0.389998489226071,0.389998489226071, +0.517723827475971,0.517723827475971,0.517656192727553,0.517436401510432,0.517111199928416,0.516736591579456,0.516369605418099,0.516068759171174,0.515893821849175,0.515893821849175, +0.665247348665652,0.665247348665652,0.6651201604335,0.664778979459552,0.664308140924937,0.663782518483504,0.663266737504783,0.662829181765126,0.662557123808445,0.662557123808445, +0.828397745666567,0.828397745666567,0.8282315836446,0.827702393087178,0.827036841727728,0.826325031663648,0.825621196126029,0.824984287187513,0.824523666405686,0.824523666405686, + +00:38:38, +0.137189186337032,0.137189186337032,0.137244028163694,0.137245282419585,0.137205683545737,0.137142028457932,0.137072729791181,0.137015079114146,0.136982552249029,0.136982552249029, +0.137189186337032,0.137189186337032,0.137244028163694,0.137245282419585,0.137205683545737,0.137142028457932,0.137072729791181,0.137015079114146,0.136982552249029,0.136982552249029, +0.162229225001431,0.162229225001431,0.162278962243312,0.162269046977219,0.162214010093864,0.162133062681561,0.162047331514341,0.161976788340143,0.161937154126422,0.161937154126422, +0.212724903594732,0.212724903594732,0.212762749576185,0.212728815764458,0.212641260783746,0.21252416638116,0.212404119047035,0.212306562944327,0.212251964894029,0.212251964894029, +0.289134861946426,0.289134861946426,0.28915110958947,0.289077210331216,0.288936943256996,0.288761838431108,0.288586679085119,0.288445348481179,0.288366200121996,0.288366200121996, +0.391318167149349,0.391318167149349,0.391299863179379,0.391165864904741,0.390948309504487,0.390689084594869,0.390433598156875,0.390227130517729,0.390110374756684,0.390110374756684, +0.517819892852214,0.517819892852214,0.517752264258081,0.517532524285124,0.517207405599071,0.516832895792259,0.51646600743537,0.516165241647037,0.515990351008065,0.515990351008065, +0.665318393191397,0.665318393191397,0.665191227169938,0.664850127869696,0.664379408400089,0.663853921963451,0.663338275561747,0.662900833759476,0.662628845954363,0.662628845954363, +0.828435631459908,0.828435631459908,0.82826950724876,0.82774044132154,0.827075050251307,0.826363413790977,0.825659750464351,0.825022996434773,0.824562486014187,0.824562486014187, + +00:38:39, +0.137304466753963,0.137304466753963,0.137359316586773,0.137360578070231,0.13732098548803,0.137257335599706,0.137188040929089,0.137130392971565,0.137097867489491,0.137097867489491, +0.137304466753963,0.137304466753963,0.137359316586773,0.137360578070231,0.13732098548803,0.137257335599706,0.137188040929089,0.137130392971565,0.137097867489491,0.137097867489491, +0.162346391711301,0.162346391711301,0.16239613347845,0.162386225969853,0.162331198947994,0.162250262069807,0.162164540596847,0.162094004863914,0.162054374700262,0.162054374700262, +0.212844109490923,0.212844109490923,0.212881954872656,0.2128480312479,0.212760494237108,0.212643421695942,0.212523395899343,0.212425856985233,0.212371268486175,0.212371268486175, +0.289253293213871,0.289253293213871,0.289269536653344,0.289195654181542,0.289055419225157,0.28888035450642,0.288705235278923,0.288563937068319,0.288484806869326,0.288484806869326, +0.391429716877026,0.391429716877026,0.39141141012952,0.39127744177206,0.391059939985547,0.390800780897347,0.39054536016098,0.390338945919077,0.390222220411358,0.390222220411358, +0.517915914663368,0.517915914663368,0.517848292234851,0.517628603486102,0.517303567653979,0.51692915633562,0.516562365728099,0.516261680352099,0.516086836368964,0.516086836368964, +0.665389400510735,0.665389400510735,0.665262256697999,0.664921239027473,0.664450638551825,0.6639252880358,0.663409776126328,0.662972448189036,0.662700530490839,0.662700530490839, +0.828473495811963,0.828473495811963,0.828307409391504,0.827778468020497,0.827113237141185,0.826401774176317,0.82569828295247,0.825061683734575,0.824601283606666,0.824601283606666, + +00:38:40, +0.13741975583547,0.13741975583547,0.137474613657916,0.137475882370585,0.137436296095713,0.137372651430919,0.137303360782363,0.137245715565869,0.137213191478964,0.137213191478964, +0.13741975583547,0.13741975583547,0.137474613657916,0.137475882370585,0.137436296095713,0.137372651430919,0.137303360782363,0.137245715565869,0.137213191478964,0.137213191478964, +0.162463559081529,0.162463559081529,0.162513305363533,0.162503405615936,0.162448388469841,0.162367462146377,0.162281750389464,0.162211222115717,0.162171596012187,0.162171596012187, +0.212963302389793,0.212963302389793,0.213001147171439,0.212967233739004,0.212879714707977,0.212762664040625,0.212642659793996,0.212545138078442,0.212490559136119,0.212490559136119, +0.289371696356909,0.289371696356909,0.289387935602477,0.289314069921144,0.289173867082561,0.288998842468531,0.288823763356037,0.28868249753541,0.288603385494506,0.288603385494506, +0.391541226858033,0.391541226858033,0.391522917347869,0.391388978903805,0.391171530713702,0.390912437422021,0.39065708236076,0.390450721493692,0.390334026226268,0.390334026226268, +0.518011892956049,0.518011892956049,0.517944276704453,0.517724639159963,0.517399686139767,0.517025373256205,0.516658680342995,0.516358075333102,0.516183277978637,0.516183277978637, +0.665460370666783,0.665460370666783,0.665333249060795,0.664992312976037,0.66452183142337,0.663996616743865,0.663481239241928,0.663044025097286,0.6627721774614,0.6627721774614, +0.828511338748594,0.828511338748594,0.828345290098717,0.827816473210017,0.827151402423444,0.826440112845878,0.825736793616721,0.82510034911337,0.824640059209656,0.824640059209656, + +00:38:41, +0.137535053544761,0.137535053544761,0.137589919340347,0.137591195283861,0.137551615331967,0.137487975914708,0.137418689314094,0.137361046860105,0.137328524180474,0.137328524180474, +0.137535053544761,0.137535053544761,0.137589919340347,0.137591195283861,0.137551615331967,0.137487975914708,0.137418689314094,0.137361046860105,0.137328524180474,0.137328524180474, +0.162580727086185,0.162580727086185,0.162630477872643,0.162620585889536,0.162565578633438,0.162484662885259,0.162398960866135,0.162328440069454,0.162288818036079,0.162288818036079, +0.213082482284694,0.213082482284694,0.213120326465884,0.213086423231098,0.21299892218965,0.212881893408463,0.212761910724205,0.212664406217134,0.212609836837021,0.212609836837021, +0.289490071391777,0.289490071391777,0.289506306453088,0.289432457566218,0.289292286845377,0.289117302333582,0.288942263332572,0.288801029898541,0.288721936013616,0.288721936013616, +0.391652697128546,0.391652697128546,0.391634384870574,0.391500476336111,0.39128308172508,0.391024054205015,0.390768764792342,0.390562457277701,0.390445792237546,0.390445792237546, +0.518107827776811,0.518107827776811,0.518040217713416,0.517820631353241,0.517495761102997,0.517121546600616,0.516754951326701,0.516454426636729,0.516279675883788,0.516279675883788, +0.665531303702599,0.665531303702599,0.665404204301374,0.665063349758476,0.664592987057887,0.664067908130894,0.663552664951884,0.663115564527639,0.66284378690951,0.66284378690951, +0.828549160295624,0.828549160295624,0.828383149396239,0.82785445691603,0.827189546124128,0.826478429825829,0.825775282483403,0.825138992597572,0.824678812849652,0.824678812849652, + +00:38:42, +0.137650359845093,0.137650359845093,0.137705233597343,0.137706516773326,0.137666943160025,0.137603309014258,0.13753402648742,0.137476386817375,0.137443865557098,0.137443865557098, +0.137650359845093,0.137650359845093,0.137705233597343,0.137706516773326,0.137666943160025,0.137603309014258,0.13753402648742,0.137476386817375,0.137443865557098,0.137443865557098, +0.162697895699381,0.162697895699381,0.162747650979902,0.162737766764759,0.16268276941286,0.16260186426048,0.162516172000838,0.162445658699067,0.162406040745855,0.162406040745855, +0.213201649168996,0.213201649168996,0.213239492749359,0.213205599717532,0.213118116675439,0.213001109792727,0.212881148683201,0.212783661394503,0.212729101582059,0.212729101582059, +0.289608418334696,0.289608418334696,0.289624649221379,0.289550817132945,0.289410678529758,0.289235734117698,0.289060735224628,0.288919534173792,0.288840458442722,0.288840458442722, +0.391764127724697,0.391764127724697,0.39174581273374,0.391611934105066,0.391394593055764,0.391135631282412,0.39088040749181,0.390674153307191,0.390557518481278,0.390557518481278, +0.518203719172144,0.518203719172144,0.518136115308203,0.517916580112406,0.517591792590166,0.51721767641539,0.516851178725798,0.516550734309596,0.516376030131056,0.516376030131056, +0.665602199661177,0.665602199661177,0.665475122462722,0.665134349417818,0.664664105498474,0.664139162240075,0.663624053299472,0.66318706652345,0.662915358878569,0.662915358878569, +0.828586960478837,0.828586960478837,0.828420987309877,0.827892419164423,0.827227668269242,0.826516725142302,0.825813749578773,0.825177614213552,0.824717544553106,0.824717544553106, + +00:38:43, +0.137765674699773,0.137765674699773,0.137820556392229,0.137821846802293,0.13778227954317,0.137718650692808,0.13764937226553,0.137591735400826,0.137559215571963,0.137559215571963, +0.137765674699773,0.137765674699773,0.137820556392229,0.137821846802293,0.13778227954317,0.137718650692808,0.13764937226553,0.137591735400826,0.137559215571963,0.137559215571963, +0.162815064895265,0.162815064895265,0.16286482465947,0.16285494821575,0.162799960782216,0.162719066246107,0.162633383767593,0.162562877978535,0.162523264115476,0.162523264115476, +0.213320803036087,0.213320803036087,0.213358646015248,0.213324763191668,0.213237298158675,0.213120313186705,0.21300037366423,0.212902903603763,0.212848353364425,0.212848353364425, +0.289726737201873,0.289726737201873,0.289742963923541,0.289669148637492,0.289529042151846,0.289354137836991,0.28917917904829,0.289038010377226,0.288958952797877,0.288958952797877, +0.391875518682574,0.391875518682574,0.391857200973427,0.391723352246716,0.391506064741793,0.39124716869025,0.390992010495203,0.390785809618203,0.39066920499351,0.39066920499351, +0.518299567188474,0.518299567188474,0.518231969535213,0.518012485483864,0.517687780647709,0.517313762747002,0.516947362586803,0.516646998398256,0.516472340767018,0.516472340767018, +0.665673058585446,0.665673058585446,0.665546003587761,0.665205311997027,0.664735186788168,0.66421037911453,0.663695404327904,0.663258531128005,0.662986893411915,0.662986893411915, +0.828624739323975,0.828624739323975,0.828458803865395,0.827930359981049,0.82726576888475,0.826554998821387,0.825852194929048,0.825216213987642,0.824756254346433,0.824756254346433, + +00:38:44, +0.137880998072157,0.137880998072157,0.137935887688379,0.137937185334128,0.137897624444732,0.137834000913643,0.137764726611662,0.137707092573657,0.137674574188247,0.137674574188247, +0.137880998072157,0.137880998072157,0.137935887688379,0.137937185334128,0.137897624444732,0.137834000913643,0.137764726611662,0.137707092573657,0.137674574188247,0.137674574188247, +0.162932234648026,0.162932234648026,0.162981998885544,0.162972130216694,0.162917152715656,0.162836268816242,0.162750596140455,0.162680097881877,0.162640488118938,0.162640488118938, +0.213439943879369,0.213439943879369,0.213477786256951,0.213443913646887,0.213356466632704,0.213239503583702,0.213119585660553,0.213022132838142,0.212967592177331,0.212967592177331, +0.289845028009502,0.289845028009502,0.28986125057575,0.289787452096013,0.289647377727769,0.289472513507561,0.289297594819631,0.289156458524894,0.289077419095121,0.289077419095121, +0.391986870038223,0.391986870038223,0.39196854962565,0.391834730797062,0.391617496819162,0.391358666464523,0.391103573838515,0.390897426246735,0.39078085181024,0.39078085181024, +0.518395371872163,0.518395371872163,0.518327780440783,0.518108347513958,0.517783725321997,0.517409805641862,0.517043502956167,0.5167432189492,0.516568607838185,0.516568607838185, +0.665743880518274,0.665743880518274,0.66561684771935,0.665276237539003,0.664806230969942,0.664281558797319,0.663766718080329,0.663329958384531,0.663058390552821,0.663058390552821, +0.828662496856745,0.828662496856745,0.828496599088519,0.827968279391719,0.827303847996577,0.826593250889136,0.825890618560405,0.825254791946134,0.824794942256006,0.824794942256006, + +00:38:45, +0.137996329925653,0.137996329925653,0.138051227449218,0.138052532332244,0.138012977828096,0.1379493596401,0.137880089489104,0.137822458299119,0.137789941369176,0.137789941369176, +0.137996329925653,0.137996329925653,0.138051227449218,0.138052532332244,0.138012977828096,0.1379493596401,0.137880089489104,0.137822458299119,0.137789941369176,0.137789941369176, +0.163049404931888,0.163049404931888,0.163099173632362,0.163089312741813,0.163034345187369,0.162953471945029,0.162867809093522,0.162797318383151,0.162757712730277,0.162757712730277, +0.21355907169226,0.21355907169226,0.213596913467884,0.213563051076585,0.213475622090888,0.213358680977038,0.213238784665451,0.213141349090885,0.213086818014003,0.213086818014003, +0.289963290773764,0.289963290773764,0.289979509194167,0.289905727524648,0.28976568527364,0.289590861145493,0.289415982554708,0.289274878632835,0.289195857350481,0.289195857350481, +0.392098181827642,0.392098181827642,0.392079858726383,0.391946069792062,0.391728889323821,0.391470124641179,0.391215097557698,0.391009003228741,0.390892458967426,0.390892458967426, +0.51849113326951,0.51849113326951,0.518423548071186,0.518204166248966,0.517879626659338,0.517505805146317,0.51713959988028,0.516839396008852,0.516664831391005,0.516664831391005, +0.665814665502467,0.665814665502467,0.665687654900286,0.665347126086585,0.664877238086706,0.66435270133144,0.663837994599831,0.66340134833619,0.663129850344497,0.663129850344497, +0.828700233102813,0.828700233102813,0.828534373004936,0.828006177422203,0.82734190563061,0.82663148137156,0.825929020498984,0.825293348115281,0.82483360830816,0.82483360830816, + +00:38:46, +0.138111670223717,0.138111670223717,0.138166575638221,0.138167887760107,0.138128339656692,0.138064726835565,0.137995460861196,0.13793783254051,0.137905317078026,0.137905317078026, +0.138111670223717,0.138111670223717,0.138166575638221,0.138167887760107,0.138128339656692,0.138064726835565,0.137995460861196,0.13793783254051,0.137905317078026,0.137905317078026, +0.163166575721118,0.163166575721118,0.163216348874198,0.163206495765367,0.163151538171581,0.163070675606649,0.162985022600926,0.162914539456452,0.162874937923567,0.162874937923567, +0.213678186468198,0.213678186468198,0.21371602764148,0.213682175474174,0.213594764526606,0.21347784536005,0.213357970672218,0.213260552355255,0.213206030867684,0.213206030867684, +0.290081525510825,0.290081525510825,0.290097739794942,0.290023974939523,0.28988396480556,0.289709180766859,0.289534342269568,0.289393270717073,0.289314267579969,0.289314267579969, +0.39220945408679,0.39220945408679,0.392191128311554,0.392057369267629,0.39184024229168,0.391581543256127,0.391326581688661,0.391120540600132,0.39100402650098,0.39100402650098, +0.51858685142675,0.51858685142675,0.518519272472631,0.518299941735105,0.517975484705975,0.517601761306651,0.517235653405469,0.516935529623577,0.516761011471863,0.516761011471863, +0.665885413580766,0.665885413580766,0.665758425173305,0.665417977682548,0.664948208181307,0.664423806759827,0.663909233929434,0.663472701026082,0.663201272830091,0.663201272830091, +0.828737948087807,0.828737948087807,0.828572125640294,0.828044054098236,0.827379941812694,0.826669690294632,0.825967400770882,0.825331882521295,0.824872252529188,0.824872252529188, + +00:38:47, +0.138227018929854,0.138227018929854,0.138281932218911,0.13828325158123,0.138243709894001,0.138180102463475,0.138110840691325,0.138053215261179,0.138020701278126,0.138020701278126, +0.138227018929854,0.138227018929854,0.138281932218911,0.13828325158123,0.138243709894001,0.138180102463475,0.138110840691325,0.138053215261179,0.138020701278126,0.138020701278126, +0.163283746990016,0.163283746990016,0.163333524585366,0.163323679261656,0.163268731642557,0.163187879775322,0.163102236636842,0.163031761075915,0.162992163672922,0.162992163672922, +0.213797288200633,0.213797288200633,0.213835128771187,0.213801286833083,0.213713893933253,0.213596996726093,0.213477143674167,0.213379742624531,0.213325230731634,0.213325230731634, +0.290199732236838,0.290199732236838,0.290215942394209,0.290142194356753,0.290002216339615,0.289827472387718,0.289652673980241,0.289511634793618,0.289432649799585,0.289432649799585, +0.392320686851577,0.392320686851577,0.392302358417046,0.392168629259632,0.391951555758601,0.391692922345228,0.391438026267266,0.391232038396773,0.39111555444677,0.39111555444677, +0.518682526390055,0.518682526390055,0.518614953691265,0.518395674018527,0.518071299508089,0.517697674169084,0.517331663577995,0.517031619839673,0.516857148127082,0.516857148127082, +0.665956124795852,0.665956124795852,0.665829158581078,0.665488792369606,0.665019141296532,0.664494875125351,0.663980436112097,0.663544016497242,0.663272658052689,0.663272658052689, +0.828775641837315,0.828775641837315,0.828609857020203,0.828081909445511,0.827417956568639,0.826707877684286,0.826005759402159,0.825370395190351,0.824910874945343,0.824910874945343, + +00:38:48, +0.138342376007621,0.138342376007621,0.138397297154864,0.138398623759176,0.138359088503556,0.138295486487315,0.13822622894293,0.138168606424524,0.138136093932851,0.138136093932851, +0.138342376007621,0.138342376007621,0.138397297154864,0.138398623759176,0.138359088503556,0.138295486487315,0.13822622894293,0.138168606424524,0.138136093932851,0.138136093932851, +0.163400918712926,0.163400918712926,0.163450700740219,0.163440863205016,0.163385925574601,0.163305084425306,0.163219451175481,0.163148983215713,0.163109389952493,0.163109389952493, +0.213916376883032,0.213916376883032,0.213954216850472,0.213920385146757,0.213833010304241,0.213716135068536,0.213596303664626,0.213498919892006,0.21344441759913,0.21344441759913, +0.290317910967942,0.290317910967942,0.29033411700809,0.290260385792435,0.290120439891879,0.289945736024114,0.289770977702746,0.289629970878468,0.289551004025315,0.289551004025315, +0.392431880157873,0.392431880157873,0.392413549078701,0.392279849803899,0.392062829760404,0.391804261944301,0.391549431329334,0.39134349665449,0.391227042840624,0.391227042840624, +0.518778158205533,0.518778158205533,0.518710591773168,0.518491363145321,0.518167071111797,0.517793543779773,0.517427630444058,0.517127666703375,0.516953241402919,0.516953241402919, +0.666026799190342,0.666026799190342,0.665899855166214,0.665559570190409,0.665090037475101,0.664565906470822,0.664051601190719,0.663615294792645,0.663344006055311,0.663344006055311, +0.828813314376886,0.828813314376886,0.828647567170232,0.828119743489684,0.827455949924213,0.826746043566415,0.826044096418835,0.82540888614858,0.824949475582842,0.824949475582842, + +00:38:49, +0.138457741420623,0.138457741420623,0.138512670409701,0.138514004257559,0.138474475448937,0.138410878870621,0.138341625579498,0.138284005993995,0.138251495005627,0.138251495005627, +0.138457741420623,0.138457741420623,0.138512670409701,0.138514004257559,0.138474475448937,0.138410878870621,0.138341625579498,0.138284005993995,0.138251495005627,0.138251495005627, +0.163518090864226,0.163518090864226,0.163567877313145,0.163558047569825,0.163503119942055,0.163422289530897,0.163336666191091,0.163266205850057,0.16322661673647,0.16322661673647, +0.21403545250888,0.21403545250888,0.214073291872814,0.214039470408658,0.213952113632996,0.213835260380765,0.21371545063694,0.213618084150994,0.213563591463466,0.213563591463466, +0.290436061720262,0.290436061720262,0.290452263652693,0.290378549262655,0.29023863547841,0.290063971692079,0.289889253453089,0.289748278987608,0.289669330273133,0.289669330273133, +0.392543034041502,0.392543034041502,0.392524700332316,0.39239103093621,0.392174064332866,0.391915562089121,0.391660796910643,0.39145491540906,0.391338491718322,0.391338491718322, +0.51887374691923,0.51887374691923,0.518806186764363,0.518587009161514,0.518262799563154,0.517889370184813,0.517523554049795,0.517223670260858,0.51704929134557,0.51704929134557, +0.666097436806792,0.666097436806792,0.665970514971261,0.665630311187546,0.665160896759676,0.664636900838987,0.664122729208133,0.663686535955202,0.663415316880916,0.663415316880916, +0.828850965732032,0.828850965732032,0.828685256115915,0.82815755625637,0.827493921905144,0.826784187966874,0.826082411846889,0.825447355422077,0.824988054467857,0.824988054467857, + +00:38:50, +0.138573115132513,0.138573115132513,0.138628051947097,0.138629393040041,0.138589870693773,0.138526279576977,0.138457030564567,0.138399413933089,0.138366904459932,0.138366904459932, +0.138573115132513,0.138573115132513,0.138628051947097,0.138629393040041,0.138589870693773,0.138526279576977,0.138457030564567,0.138399413933089,0.138366904459932,0.138366904459932, +0.163635263418333,0.163635263418333,0.163685054278573,0.163675232330494,0.163620314719299,0.163539495066431,0.163453881657963,0.163383428953199,0.163343843999084,0.163343843999084, +0.214154515071677,0.214154515071677,0.214192353831711,0.214158542612263,0.214071203912963,0.213954372656183,0.213834584584471,0.213737235394822,0.21368275231795,0.21368275231795, +0.29055418450991,0.29055418450991,0.29057038234411,0.290496684783485,0.290356803115255,0.29018217940763,0.290007501247259,0.289866559137008,0.289787628558998,0.289787628558998, +0.392654148538246,0.392654148538246,0.392635812213643,0.392502172692306,0.392285259511719,0.392026822815421,0.391772123046926,0.391566294696221,0.391449901115603,0.391449901115603, +0.518969292577129,0.518969292577129,0.518901738710804,0.518682612113067,0.518358484908152,0.517985153430233,0.517619434441278,0.517319630558231,0.517145298001166,0.517145298001166, +0.666168037687693,0.666168037687693,0.666041138038704,0.665701015403543,0.665231719192854,0.664707858272529,0.664193820207112,0.663757740027761,0.663486590572401,0.663486590572401, +0.828888595928226,0.828888595928226,0.828722923882742,0.828195347771148,0.827531872537125,0.826822310911478,0.826120705712263,0.825485803036897,0.825026611626526,0.825026611626526, + +00:38:51, +0.138688497106998,0.138688497106998,0.138743441730772,0.138744790070334,0.138705274201746,0.138641688570018,0.138572443861723,0.138514830205353,0.13848232225929,0.13848232225929, +0.138688497106998,0.138688497106998,0.138743441730772,0.138744790070334,0.138705274201746,0.138641688570018,0.138572443861723,0.138514830205353,0.13848232225929,0.13848232225929, +0.163752436349704,0.163752436349704,0.163802231610969,0.163792417461477,0.163737509880751,0.16365670100628,0.163571097550421,0.163500652499426,0.163461071714599,0.163461071714599, +0.214273564564939,0.214273564564939,0.214311402720677,0.214277601751065,0.214190281137602,0.214073471888208,0.213953705500595,0.213856373616834,0.213801900155909,0.213801900155909, +0.290672279352984,0.290672279352984,0.290688473098423,0.290614792370983,0.290474942818446,0.290300359186773,0.290125721101237,0.289984811342626,0.289905898898857,0.289905898898857, +0.392765223683841,0.392765223683841,0.392746884758393,0.392613275107879,0.392396415332652,0.392138044158888,0.391883409773872,0.391677634551665,0.391561271068162,0.391561271068162, +0.519064795225147,0.519064795225147,0.518997247658386,0.518778172045883,0.518454127192717,0.518080893562002,0.517715271664517,0.51741554764154,0.517241261415777,0.517241261415777, +0.666238601875478,0.666238601875478,0.666111724410966,0.665771682880863,0.665302504817171,0.664778778814071,0.664264874230365,0.663828907053107,0.6635578271726,0.6635578271726, +0.828926204990901,0.828926204990901,0.828760570496171,0.828233118059555,0.827569801845806,0.826860412426006,0.826158978040859,0.825524229019055,0.825065147084943,0.825065147084943, + +00:38:52, +0.138803887307829,0.138803887307829,0.138858839724499,0.1388601953122,0.138820685936583,0.138757105813428,0.138687865434602,0.138630254774387,0.138597748367278,0.138597748367278, +0.138803887307829,0.138803887307829,0.138858839724499,0.1388601953122,0.138820685936583,0.138757105813428,0.138687865434602,0.138630254774387,0.138597748367278,0.138597748367278, +0.163869609632833,0.163869609632833,0.163919409284839,0.163909602937263,0.163854705400867,0.163773907324856,0.163688313842831,0.163617876463065,0.163578299857323,0.163578299857323, +0.214392600982197,0.214392600982197,0.214430438533241,0.214396647818574,0.214309345300389,0.214192558070276,0.214072813378707,0.213975498810391,0.213921034970684,0.213921034970684, +0.290790346265567,0.290790346265567,0.290806535931698,0.290732872041194,0.290593054604002,0.290418511045497,0.290243913030985,0.290103035620406,0.290024141308642,0.290024141308642, +0.392876259513982,0.392876259513982,0.392857918002231,0.392724338218583,0.392507531831312,0.392249226155167,0.391994657127128,0.391788935011042,0.391672601611651,0.391672601611651, +0.519160254909143,0.519160254909143,0.51909271365294,0.518873689005797,0.518549726462717,0.518176590626025,0.517811065765461,0.51751142155677,0.517337181635409,0.517337181635409, +0.666309129412515,0.666309129412515,0.666182274130408,0.66584231366191,0.665373253675101,0.664849662506172,0.66433589132054,0.663900037073966,0.663629026724285,0.663629026724285, +0.828963792945453,0.828963792945453,0.828798195981615,0.828270867147094,0.827607709856802,0.826898492536193,0.826197228858539,0.825562633394526,0.825103660869165,0.825103660869165, + +00:38:53, +0.138919285698811,0.138919285698811,0.138974245892098,0.138975608729449,0.138936105862065,0.13887253127094,0.138803295246892,0.138745687603835,0.138713182747519,0.138713182747519, +0.138919285698811,0.138919285698811,0.138974245892098,0.138975608729449,0.138936105862065,0.13887253127094,0.138803295246892,0.138745687603835,0.138713182747519,0.138713182747519, +0.163986783242251,0.163986783242251,0.164036587274723,0.164026788732381,0.163971901254142,0.163891113996608,0.163805530509596,0.163735100818482,0.163695528401599,0.163695528401599, +0.214511624317,0.214511624317,0.214549461262947,0.214515680808314,0.214428396394815,0.214311631195837,0.214191908212216,0.214094610968871,0.214040156755635,0.214040156755635, +0.290908385263731,0.290908385263731,0.290924570859987,0.290850923810148,0.290711138487928,0.290536634999781,0.290362077052455,0.290221231986279,0.290142355804274,0.290142355804274, +0.392987256064318,0.392987256064318,0.39296891198078,0.392835362060024,0.392618609043299,0.392360368839859,0.392105865142297,0.391900196109958,0.391783892781679,0.391783892781679, +0.51925567167491,0.51925567167491,0.519188136740233,0.518969163038584,0.518645282763953,0.518272244668144,0.517906816789992,0.517607252349841,0.517433058706006,0.517433058706006, +0.666379620341111,0.666379620341111,0.66625278723933,0.665912907789022,0.665443965809055,0.664920509391329,0.664406871520223,0.663971130132997,0.663700189270163,0.663700189270163, +0.829001359817239,0.829001359817239,0.828835800364453,0.828308595059224,0.827645596595685,0.826936551267739,0.826235458191127,0.825601016189247,0.825142153005208,0.825142153005208, + +00:38:54, +0.139034692243795,0.139034692243795,0.139089660197441,0.139091030285942,0.139051533942018,0.138987964906338,0.138918733262327,0.138861128657395,0.138828625363689,0.138828625363689, +0.139034692243795,0.139034692243795,0.139089660197441,0.139091030285942,0.139051533942018,0.138987964906338,0.138918733262327,0.138861128657395,0.138828625363689,0.138828625363689, +0.164103957152528,0.164103957152528,0.164153765555204,0.164143974821397,0.164089097415108,0.164008320996025,0.163922747525157,0.163852325540079,0.163812757321809,0.163812757321809, +0.214630634562912,0.214630634562912,0.214668470903358,0.214634700713828,0.21454743441439,0.214430691258359,0.214310989994549,0.214213710085665,0.214159265504136,0.214159265504136, +0.291026396363532,0.291026396363532,0.291042577899329,0.290968947693864,0.290829194486215,0.290654731065587,0.290480213181585,0.290339400456162,0.290260542401659,0.290260542401659, +0.393098213370456,0.393098213370456,0.393079866729617,0.392946346667767,0.392729647004174,0.392471472248523,0.392217033854939,0.392011417883975,0.391895144613811,0.391895144613811, +0.519351045568178,0.519351045568178,0.51928351696597,0.519064594189957,0.518740796142165,0.518367855734139,0.518002524783933,0.517703040066612,0.517528892673447,0.517528892673447, +0.666450074703511,0.666450074703511,0.666323263779968,0.665983465304479,0.665514641261382,0.664991319511979,0.664477814871936,0.6640421862728,0.663771314852883,0.663771314852883, +0.829038905631578,0.829038905631578,0.828873383670025,0.828346301821369,0.827683462087993,0.826974588646304,0.826273666064407,0.825639377429116,0.825180623519051,0.825180623519051, + +00:38:55, +0.139150106906684,0.139150106906684,0.139205082604446,0.139206459945587,0.13916697014032,0.139103406683453,0.139034179444692,0.138976577898813,0.138944076179512,0.138944076179512, +0.139150106906684,0.139150106906684,0.139205082604446,0.139206459945587,0.13916697014032,0.139103406683453,0.139034179444692,0.138976577898813,0.138944076179512,0.138944076179512, +0.164221131338273,0.164221131338273,0.164270944100899,0.164261161178915,0.164206293858337,0.164125528297631,0.164039964863994,0.163969550602299,0.163929986592373,0.163929986592373, +0.214749631713513,0.214749631713513,0.214787467448051,0.214753707528674,0.214666459352637,0.214549738251325,0.214430058719148,0.214332796154184,0.214278361209579,0.214278361209579, +0.291144379581012,0.291144379581012,0.29116055706575,0.291086943708343,0.290947222614841,0.290772799258867,0.290598321434299,0.290457541045959,0.290378701116689,0.290378701116689, +0.393209131467959,0.393209131467959,0.39319078228428,0.393057292077334,0.39284064574945,0.392582536416673,0.392328163300571,0.392122600368614,0.392006357143568,0.392006357143568, +0.519446376634615,0.519446376634615,0.519378854375796,0.519159982505563,0.518836266643032,0.518463423869727,0.518098189793043,0.517798784752879,0.517624683583552,0.517624683583552, +0.666520492541899,0.666520492541899,0.666393703794499,0.666053986250498,0.665585280074372,0.665062092910496,0.664548721418141,0.664113205535913,0.663842403515028,0.663842403515028, +0.829076430413749,0.829076430413749,0.82891094592363,0.828383987458914,0.827721306359221,0.827012604697509,0.826311852504125,0.825677717139991,0.825219072436632,0.825219072436632, + +00:38:56, +0.139265529651427,0.139265529651427,0.139320513077082,0.139321897672344,0.139282414420898,0.139218856566167,0.139149633757822,0.139092035291884,0.13905953515876,0.13905953515876, +0.139265529651427,0.139265529651427,0.139320513077082,0.139321897672344,0.139282414420898,0.139218856566167,0.139149633757822,0.139092035291884,0.13905953515876,0.13905953515876, +0.164338305774131,0.164338305774131,0.164388122886464,0.164378347779578,0.164323490558437,0.164242735875991,0.164157182500624,0.16408677597962,0.164047216187751,0.164047216187751, +0.214868615762398,0.214868615762398,0.214906450890618,0.214872701246423,0.214785471203096,0.214668772168235,0.214549114379472,0.214451869167854,0.214397443865372,0.214397443865372, +0.291262334932201,0.291262334932201,0.291278508375262,0.291204911869576,0.291065222889771,0.290890839595557,0.290716401826507,0.29057565377156,0.290496831965244,0.290496831965244, +0.393320010392346,0.393320010392346,0.393301658680259,0.393168198324201,0.392951605314601,0.392693561379779,0.392439253514665,0.392233743599349,0.39211753040643,0.39211753040643, +0.519541664919828,0.519541664919828,0.519474149015289,0.519255328030991,0.518931694312168,0.518558949120562,0.518193811863019,0.517894486454375,0.517720431482074,0.517720431482074, +0.666590873898398,0.666590873898398,0.666464107325037,0.666124470669233,0.665655882290249,0.665132829629191,0.664619591201238,0.66418418796481,0.663913455299122,0.663913455299122, +0.829113934188996,0.829113934188996,0.828948487150531,0.828421651997205,0.827759129434829,0.827050599446936,0.826350017535988,0.825716035347691,0.82525749978385,0.82525749978385, + +00:38:57, +0.139380960442025,0.139380960442025,0.139435951579367,0.13943734343022,0.139397866747726,0.139334314518411,0.139265096165599,0.139207500800451,0.139175002265257,0.139175002265257, +0.139380960442025,0.139380960442025,0.139435951579367,0.13943734343022,0.139397866747726,0.139334314518411,0.139265096165599,0.139207500800451,0.139175002265257,0.139175002265257, +0.164455480434786,0.164455480434786,0.164505301886594,0.164495534598065,0.164440687490053,0.164359943705706,0.164274400409603,0.164204001646561,0.164164446082438,0.164164446082438, +0.21498758670318,0.21498758670318,0.215025421224668,0.214991681860666,0.214904469959324,0.214787793002604,0.214668156968996,0.214570929120117,0.214516513464937,0.214516513464937, +0.291380262433115,0.291380262433115,0.291396431843861,0.291322852193539,0.291183195326954,0.29100885209158,0.290834454374108,0.290693738648844,0.290614934963192,0.290614934963192, +0.393430850179094,0.393430850179094,0.393412495953004,0.393279065443802,0.393062525735054,0.392804547173271,0.392550304532652,0.392344847611616,0.392228664437832,0.392228664437832, +0.519636910469359,0.519636910469359,0.519569400929967,0.519350630811765,0.519027079195125,0.518654431532237,0.518289391039495,0.517990145216771,0.517816136414709,0.517816136414709, +0.666661218815067,0.666661218815067,0.666534474413636,0.666194918602777,0.665726447951179,0.665203529710315,0.664690424263563,0.664255133601905,0.663984470247626,0.663984470247626, +0.829151416982523,0.829151416982523,0.828986007375954,0.828459295461551,0.827796931340237,0.82708857292013,0.826388161185665,0.825754332077997,0.825295905586566,0.825295905586566, + +00:38:58, +0.139496399242527,0.139496399242527,0.139551398075368,0.139552797183272,0.139513327084831,0.139449780504164,0.139380566631957,0.13932297438841,0.139290477462874,0.139290477462874, +0.139496399242527,0.139496399242527,0.139551398075368,0.139552797183272,0.139513327084831,0.139449780504164,0.139380566631957,0.13932297438841,0.139290477462874,0.139290477462874, +0.164572655294959,0.164572655294959,0.164622481076021,0.164612721609093,0.164557884627871,0.164477151761416,0.164391618565524,0.164321227577678,0.16428167625097,0.16428167625097, +0.215106544529485,0.215106544529485,0.215144378443827,0.215110649365008,0.215023455614893,0.214906800747963,0.21478718648121,0.214689976004429,0.214635570001714,0.214635570001714, +0.291498162099755,0.291498162099755,0.291514327487532,0.291440764696195,0.291301139942329,0.291126836762845,0.290952479092985,0.290811795693673,0.290733010126384,0.290733010126384, +0.393541650863635,0.393541650863635,0.393523294137919,0.39338989347153,0.393173407046195,0.392915493832533,0.392661316389919,0.392455912440803,0.392339759273167,0.392339759273167, +0.51973211332869,0.51973211332869,0.519664610165287,0.519445890893347,0.519122421337395,0.518749871150281,0.518384927368043,0.518085761085675,0.517911798427085,0.517911798427085, +0.666731527333906,0.666731527333906,0.666604805102285,0.666265330093164,0.665796977099265,0.665274193196057,0.664761220647394,0.664326042489549,0.664055448402938,0.664055448402938, +0.829188878819495,0.829188878819495,0.829023506625085,0.82849691787722,0.827834712100826,0.827126525142595,0.826426283478783,0.82579260735665,0.825334289870601,0.825334289870601, + +00:38:59, +0.139611846017031,0.139611846017031,0.139666852529202,0.139668258895606,0.139628795396285,0.139565254487455,0.139496045120876,0.139438456019704,0.139405960715533,0.139405960715533, +0.139611846017031,0.139611846017031,0.139666852529202,0.139668258895606,0.139628795396285,0.139565254487455,0.139496045120876,0.139438456019704,0.139405960715533,0.139405960715533, +0.16468983032941,0.16468983032941,0.164739660429515,0.16472990878742,0.164675081946613,0.164594360017799,0.164508836943018,0.164438453747565,0.164398906667919,0.164398906667919, +0.215225489234957,0.215225489234957,0.215263322541735,0.215229603753069,0.21514242816339,0.21502579539786,0.21490620290962,0.214809009814267,0.214754613469161,0.214754613469161, +0.291616033948109,0.291616033948109,0.291632195322246,0.291558649393492,0.291419056751819,0.29124479362525,0.291070475999008,0.290929824921899,0.29085105747066,0.29085105747066, +0.393652412481358,0.393652412481358,0.393634053270366,0.393500682442731,0.393284249283367,0.393026401392907,0.392772289121809,0.392566938122258,0.392450814947784,0.392450814947784, +0.519827273543239,0.519827273543239,0.519759776766642,0.519541108321136,0.519217720784404,0.518845268020161,0.518480420894173,0.518181334106634,0.518007417564773,0.518007417564773, +0.666801799496853,0.666801799496853,0.666675099432917,0.666335705182364,0.665867469776549,0.665344820128544,0.664831980394943,0.664396914670033,0.664126389807396,0.664126389807396, +0.82922631972504,0.82922631972504,0.82906098492307,0.828534519269446,0.827872471741941,0.827164456139799,0.826464384440934,0.825830861209352,0.825372652661737,0.825372652661737, + +00:39:00, +0.139727300729684,0.139727300729684,0.139782314905032,0.139783728531377,0.139744271646212,0.139680736432364,0.139611531596389,0.139553945658323,0.139521451987204,0.139521451987204, +0.139727300729684,0.139727300729684,0.139782314905032,0.139783728531377,0.139744271646212,0.139680736432364,0.139611531596389,0.139553945658323,0.139521451987204,0.139521451987204, +0.164807005512936,0.164807005512936,0.164856839921883,0.164847096107837,0.164792279421039,0.164711568449569,0.164626055516756,0.164555680130853,0.164516137307897,0.164516137307897, +0.215344420813255,0.215344420813255,0.215382253512047,0.215348545018487,0.215261387598419,0.215144776945857,0.215025206247751,0.214928030543119,0.214873643860749,0.214873643860749, +0.291733877994151,0.291733877994151,0.291750035363959,0.291676506301366,0.291536945771333,0.291362722694677,0.291188445108034,0.291047826349358,0.290969077011847,0.290969077011847, +0.393763135067611,0.393763135067611,0.393744773385665,0.39361143239271,0.393395052481869,0.393137269889691,0.392883222763624,0.392677924691285,0.392561831496991,0.392561831496991, +0.519922391158363,0.519922391158363,0.519854900779362,0.519636283140471,0.51931297758152,0.518940622187284,0.518575871663332,0.518276864325131,0.518102993873277,0.518102993873277, +0.666872035345784,0.666872035345784,0.666745357447399,0.666406043912288,0.665937926025012,0.665415410549842,0.664902703548365,0.664467750185584,0.664197294503275,0.664197294503275, +0.829263739724249,0.829263739724249,0.829098442295023,0.82857209966342,0.827910210288885,0.82720236593717,0.82650246409767,0.825869093661768,0.825410993985717,0.825410993985717, + +00:39:01, +0.139842763344682,0.139842763344682,0.139897785167073,0.139899206054787,0.139859755798784,0.139796226303016,0.139727026022576,0.139669443268311,0.139636951241907,0.139636951241907, +0.139842763344682,0.139842763344682,0.139897785167073,0.139899206054787,0.139859755798784,0.139796226303016,0.139727026022576,0.139669443268311,0.139636951241907,0.139636951241907, +0.164924180820371,0.164924180820371,0.16497401952797,0.164964283545177,0.164909477025946,0.164828777031481,0.164743274261444,0.164672906702212,0.164633368145551,0.164633368145551, +0.215463339258054,0.215463339258054,0.215501171348437,0.215467473154913,0.215380333913601,0.215263745385535,0.215144196489139,0.215047038184492,0.214992661169965,0.214992661169965, +0.291851694253842,0.291851694253842,0.291867847628615,0.291794335435738,0.291654807016768,0.291480623986994,0.291306386435907,0.291165799991874,0.291087068765757,0.291087068765757, +0.393873818657695,0.393873818657695,0.39385545451909,0.393722143356729,0.393505816676956,0.393248099358142,0.392994117350621,0.392788872183145,0.39267280895605,0.39267280895605, +0.520017466219355,0.520017466219355,0.519949982248718,0.519731415396627,0.519408191774046,0.519035933696993,0.518671279720905,0.51837235178659,0.518198527398043,0.518198527398043, +0.666942234922517,0.666942234922517,0.666815579187541,0.666476346324782,0.666008345886573,0.665485964501956,0.664973390149751,0.66453854907837,0.664268162532791,0.664268162532791, +0.829301138842173,0.829301138842173,0.829135878766013,0.8286096590843,0.827947927766926,0.827240254560098,0.826540522474504,0.825907304739522,0.825449313868247,0.825449313868247, + +00:39:02, +0.13995823382627,0.13995823382627,0.140013263279588,0.140014691430091,0.139975247818221,0.139911724063588,0.139842528363564,0.139784948813757,0.139752458443711,0.139752458443711, +0.13995823382627,0.13995823382627,0.140013263279588,0.140014691430091,0.139975247818221,0.139911724063588,0.139842528363564,0.139784948813757,0.139752458443711,0.139752458443711, +0.165041356226588,0.165041356226588,0.165091199222659,0.165081471074306,0.165026674736169,0.164945985738325,0.164860493151827,0.164790133436349,0.164750599155569,0.164750599155569, +0.215582244563044,0.215582244563044,0.215620076044592,0.215586388156016,0.215499267102569,0.215382700710488,0.215263173627341,0.215166032731909,0.215111665390315,0.215111665390315, +0.291969482743129,0.291969482743129,0.291985632132142,0.291912136812516,0.291772640504006,0.291598497518058,0.291424299998458,0.291283745865257,0.29120503274819,0.29120503274819, +0.39398446328687,0.39398446328687,0.393966096705875,0.393832815370006,0.393616541903841,0.393358889833471,0.393104972918015,0.392899780633057,0.392783747360183,0.392783747360183, +0.520112498771449,0.520112498771449,0.520045021219915,0.519826505134818,0.519503363407224,0.519131202594569,0.518766645112217,0.518467796536369,0.518294018184451,0.518294018184451, +0.667012398268804,0.667012398268804,0.66688576469509,0.666546612461637,0.66607872940309,0.66555648202683,0.665044040241132,0.664609311390496,0.664338993938095,0.664338993938095, +0.829338517103827,0.829338517103827,0.829173294361077,0.828647197557203,0.827985624201294,0.827278122033935,0.826578559596912,0.825945494468202,0.825487612334992,0.825487612334992, + +00:39:03, +0.140073712138742,0.140073712138742,0.140128749206888,0.140130184621589,0.140090747668793,0.140027229678304,0.139958038583534,0.1399004622588,0.139867973556733,0.139867973556733, +0.140073712138742,0.140073712138742,0.140128749206888,0.140130184621589,0.140090747668793,0.140027229678304,0.139958038583534,0.1399004622588,0.139867973556733,0.139867973556733, +0.165158531706497,0.165158531706497,0.16520837898087,0.165198658670133,0.165143872526582,0.165063194544929,0.164977712162688,0.164907360308011,0.164867830312675,0.164867830312675, +0.215701136721931,0.215701136721931,0.215738967594214,0.21570529001548,0.215618187158976,0.215501642914326,0.215382137655926,0.215285014178907,0.215230656515318,0.215230656515318, +0.292087243477945,0.292087243477945,0.292103388890456,0.292029910447593,0.291890446248917,0.29171634330371,0.291542185811502,0.291401663985304,0.291322968974933,0.291322968974933, +0.394095068990354,0.394095068990354,0.394076699981209,0.393943448467716,0.393727228197696,0.393469641350849,0.393215789500978,0.393010650076195,0.392894646744567,0.392894646744567, +0.520207488859815,0.520207488859815,0.520140017738101,0.519921552400197,0.519598492526234,0.519226428925232,0.518861967882528,0.518563198619766,0.518389466277824,0.518389466277824, +0.667082525426341,0.667082525426341,0.666955914011731,0.666616842364578,0.666149076616361,0.665626963166346,0.665114653864476,0.664680037164006,0.664409788761279,0.664409788761279, +0.829375874534188,0.829375874534188,0.829210689105211,0.828684715107207,0.828023299617178,0.827315968383994,0.826616575490329,0.825983662873355,0.825525889411579,0.825525889411579, + +00:39:04, +0.140189198246441,0.140189198246441,0.140244242913333,0.140245685593632,0.140206255314818,0.140142743111439,0.14007355664671,0.14001598356763,0.13998349654514,0.13998349654514, +0.140189198246441,0.140189198246441,0.140244242913333,0.140245685593632,0.140206255314818,0.140142743111439,0.14007355664671,0.14001598356763,0.13998349654514,0.13998349654514, +0.165275707235045,0.165275707235045,0.165325558777561,0.165315846307599,0.165261070372096,0.165180403426161,0.165094931268848,0.16502458729198,0.16498506159163,0.16498506159163, +0.215820015728437,0.215820015728437,0.215857845991024,0.215824178727003,0.215737094076487,0.215620571990677,0.215501088568482,0.21540398251904,0.21534963453851,0.21534963453851, +0.292204976474208,0.292204976474208,0.292221117919458,0.292147656356852,0.292008224267355,0.291834161359779,0.291660043890842,0.291519554367799,0.291440877461758,0.291440877461758, +0.39420563580332,0.39420563580332,0.394187264380237,0.394054042684991,0.393837875593646,0.393580353945402,0.393326567134639,0.393121480547692,0.393005507144338,0.393005507144338, +0.520302436529562,0.520302436529562,0.520234971848358,0.520016557237854,0.519693579176196,0.519321612734139,0.51895724807704,0.51865855808202,0.518484871723419,0.518484871723419, +0.66715261643676,0.66715261643676,0.66702602717909,0.666687036075271,0.666219387568123,0.665697407962325,0.665185231061692,0.664750726440885,0.664480547044374,0.664480547044374, +0.829413211158195,0.829413211158195,0.829248063023375,0.828722211759357,0.828060954039733,0.827353793635551,0.826654570180155,0.826021809980492,0.825564145123598,0.825564145123598, + +00:39:05, +0.140304692113757,0.140304692113757,0.140359744363333,0.140361194310619,0.140321770720664,0.140258264327316,0.14018908251737,0.140131512704483,0.140099027373148,0.140099027373148, +0.140304692113757,0.140304692113757,0.140359744363333,0.140361194310619,0.140321770720664,0.140258264327316,0.14018908251737,0.140131512704483,0.140099027373148,0.140099027373148, +0.165392882787217,0.165392882787217,0.165442738587727,0.165433033961687,0.165378268247657,0.165297612356922,0.165212150445164,0.165141814363076,0.165102292967237,0.165102292967237, +0.215938881576299,0.215938881576299,0.215976711228755,0.215943054284302,0.215855987848786,0.215739487933183,0.21562002635861,0.215522937745879,0.215468599453445,0.215468599453445, +0.292322681747825,0.292322681747825,0.292338819235038,0.292265374556157,0.292125974575164,0.29195195170208,0.29177787425227,0.291637417028512,0.291558758224425,0.291558758224425, +0.394316163760898,0.394316163760898,0.394297789938064,0.394164598056922,0.393948484126776,0.393691027652214,0.393437305854086,0.393232272082638,0.393116328594589,0.393116328594589, +0.520397341825736,0.520397341825736,0.520329883595708,0.520111519692817,0.519788623402165,0.519416754066388,0.519052485740889,0.518753874968303,0.518580234566433,0.518580234566433, +0.667222671341634,0.667222671341634,0.667096104238733,0.666757193635322,0.666289662300051,0.665767816456529,0.665255771874627,0.664821379263054,0.664551268829349,0.664551268829349, +0.829450527000748,0.829450527000748,0.829285416140489,0.828759687538654,0.828098587494072,0.827391597813843,0.826692543691749,0.826059935815082,0.825602379496598,0.825602379496598, + +00:39:06, +0.140420193705131,0.140420193705131,0.140475253521346,0.140476710736997,0.140437293850747,0.140373793290305,0.140304616159838,0.140247049633646,0.140214566005021,0.140214566005021, +0.140420193705131,0.140420193705131,0.140475253521346,0.140476710736997,0.140437293850747,0.140373793290305,0.140304616159838,0.140247049633646,0.140214566005021,0.140214566005021, +0.165510058338035,0.165510058338035,0.165559918386401,0.165550221607416,0.165495466128252,0.165414821312156,0.165329369666533,0.16525904149616,0.16521952441433,0.16521952441433, +0.216057734259269,0.216057734259269,0.216095563301157,0.216061916681107,0.215974868469571,0.215858390735501,0.215738951019928,0.215641879853009,0.215587551253689,0.215587551253689, +0.292440359314687,0.292440359314687,0.29245649285307,0.292383065061362,0.29224369718817,0.292069714346415,0.29189567691156,0.2917552519832,0.29167661127868,0.29167661127868, +0.394426652898176,0.394426652898176,0.39440827668975,0.394275114618553,0.394059053832127,0.393801662506327,0.39354800569436,0.393343024716081,0.393227111130368,0.393227111130368, +0.520492204793323,0.520492204793323,0.520424753025112,0.520206439810053,0.519883625249136,0.519511852967012,0.519147680919153,0.518849149323729,0.518675554852001,0.518675554852001, +0.667292690182475,0.667292690182475,0.667166145232165,0.666827315086276,0.666359900853761,0.665838188690658,0.665326276345068,0.664891995672373,0.664621954158113,0.664621954158113, +0.829487822086713,0.829487822086713,0.829322748481439,0.828797142470067,0.828136200005272,0.827429380944069,0.826730496050433,0.826098040402559,0.825640592556091,0.825640592556091, + +00:39:07, +0.140535702985051,0.140535702985051,0.140590770351877,0.140592234837263,0.140552824669531,0.140489329964827,0.140420157538487,0.140362594319453,0.140330112405073,0.140330112405073, +0.140535702985051,0.140535702985051,0.140590770351877,0.140592234837263,0.140552824669531,0.140489329964827,0.140420157538487,0.140362594319453,0.140330112405073,0.140330112405073, +0.165627233862559,0.165627233862559,0.165677098148653,0.16566740921984,0.165612663988904,0.165532030266841,0.165446588907887,0.165376268666126,0.165336755907787,0.165336755907787, +0.216176573771117,0.216176573771117,0.216214402201997,0.216180765911164,0.216093735932555,0.215977280391306,0.215857862546069,0.215760808834033,0.215706489932826,0.215706489932826, +0.292558009190672,0.292558009190672,0.292574138789413,0.292500727888308,0.292361392122188,0.292187449308571,0.292013451884476,0.291873059247606,0.291794436640256,0.291794436640256, +0.394537103250198,0.394537103250198,0.394518724670313,0.39438559240489,0.394169584744699,0.393912258542739,0.393658666690464,0.393453738483024,0.393337854786683,0.393337854786683, +0.520587025477247,0.520587025477247,0.520519580181469,0.520301317634469,0.519978584762045,0.519606909480985,0.519242833656847,0.51894438119335,0.518770832625198,0.518770832625198, +0.667362673000735,0.667362673000735,0.667236150200828,0.666897400469618,0.666430103270808,0.66590852470635,0.665396744514739,0.664962575710645,0.664692603072511,0.664692603072511, +0.829525096440914,0.829525096440914,0.829360060071069,0.828834576578523,0.828173791598374,0.827467143051391,0.826768427281491,0.826136123768317,0.82567878432755,0.82567878432755, + +00:39:08, +0.140651219918056,0.140651219918056,0.140706294819483,0.140707766575962,0.14066836314153,0.140604874315351,0.14053570661774,0.140478146726289,0.140445666537666,0.140445666537666, +0.140651219918056,0.140651219918056,0.140706294819483,0.140707766575962,0.14066836314153,0.140604874315351,0.14053570661774,0.140478146726289,0.140445666537666,0.140445666537666, +0.165744409335886,0.165744409335886,0.165794277849591,0.165784596774054,0.165729861804673,0.165649239195992,0.165563808144198,0.165493495847908,0.16545398742252,0.16545398742252, +0.216295400105626,0.216295400105626,0.216333227925055,0.216299601968234,0.216212590231467,0.216096156894287,0.215976760930685,0.215879724682567,0.215825415484457,0.215825415484457, +0.292675631391646,0.292675631391646,0.292691757059915,0.292618363052819,0.29247905939302,0.292305156604322,0.292131199186767,0.29199083883746,0.291912234324871,0.291912234324871, +0.394647514851967,0.394647514851967,0.394629133914726,0.394496031450893,0.394280076899446,0.394022815796406,0.393769288877356,0.39356441341843,0.3934485595985,0.3934485595985, +0.520681803922371,0.520681803922371,0.520614365109616,0.520396153210908,0.520073501985762,0.519701923653219,0.519337943998924,0.519039570622155,0.518866067931034,0.518866067931034, +0.667432619837804,0.667432619837804,0.667306119186107,0.66696744982677,0.666500269592685,0.665978824545186,0.665467176425307,0.665033119419608,0.664763215614332,0.664763215614332, +0.829562350088142,0.829562350088142,0.82939735093419,0.828871989888915,0.82821136229838,0.827504884160933,0.826806337410168,0.826174185937713,0.825716954836411,0.825716954836411, + +00:39:09, +0.14076674446873,0.14076674446873,0.140821826888765,0.140823305917687,0.140783909231305,0.140720426306394,0.140651263362067,0.140593706818586,0.14056122836721,0.14056122836721, +0.14076674446873,0.14076674446873,0.140821826888765,0.140823305917687,0.140783909231305,0.140720426306394,0.140651263362067,0.140593706818586,0.14056122836721,0.14056122836721, +0.16586158473315,0.16586158473315,0.165911457464357,0.165901784245188,0.165847059550656,0.165766448074664,0.165681027350474,0.165610723016478,0.16557121893348,0.16557121893348, +0.216414213256595,0.216414213256595,0.216452040464128,0.216418424846095,0.216331431360052,0.216215020238149,0.216095646167439,0.215998627392244,0.215944327902196,0.215944327902196, +0.292793225933457,0.292793225933457,0.29280934768041,0.292735970570708,0.292596699016454,0.292422836249431,0.292248918834169,0.292108590768479,0.292030004348233,0.292030004348233, +0.394757887738442,0.394757887738442,0.394739504457923,0.39460643179148,0.394390530331282,0.394133334302241,0.393879872289951,0.393675049557218,0.393559225600739,0.393559225600739, +0.520776540173495,0.520776540173495,0.52070910785433,0.520490946584153,0.5201683769651,0.519796895528563,0.519433011990277,0.519134717655074,0.518961260814461,0.518961260814461, +0.667502530735015,0.667502530735015,0.667376052229326,0.667037463199098,0.666570399860827,0.666049088248683,0.665537572118376,0.665103626840942,0.664833791825301,0.664833791825301, +0.829599583053147,0.829599583053147,0.829434621095574,0.828909382426096,0.828248912130252,0.827542604297779,0.826844226461673,0.826212226936065,0.825755104108069,0.825755104108069, + +00:39:10, +0.140882276601707,0.140882276601707,0.140937366524377,0.140938852827079,0.140899462903467,0.140835985902522,0.140766827735988,0.140709274560826,0.140676797858167,0.140676797858167, +0.140882276601707,0.140882276601707,0.140937366524377,0.140938852827079,0.140899462903467,0.140835985902522,0.140766827735988,0.140709274560826,0.140676797858167,0.140676797858167, +0.165978760029523,0.165978760029523,0.166028636968136,0.166018971608409,0.165964257201989,0.165883656877948,0.16579824650176,0.165727950146844,0.165688450415653,0.165688450415653, +0.216533013217839,0.216533013217839,0.216570839813027,0.21653723453854,0.216450259312071,0.216333870416613,0.216214518250013,0.216117516956714,0.216063227179675,0.216063227179675, +0.292910792831944,0.292910792831944,0.292926910666717,0.292853550457773,0.292714311008261,0.292540488259643,0.292366610842405,0.292226315056365,0.292147746726035,0.292147746726035, +0.394868221944538,0.394868221944538,0.394849836334793,0.394716793461527,0.394500945075077,0.394243814095114,0.393990416963123,0.393785646934264,0.39366985282828,0.39366985282828, +0.520871234275359,0.520871234275359,0.520803808460325,0.520585697798926,0.520263209744807,0.519891825151808,0.519528037675737,0.519229822336974,0.519056411320369,0.519056411320369, +0.667572405733637,0.667572405733637,0.667445949371748,0.667107440627904,0.666640494116606,0.666119315858299,0.665607931635489,0.665174098016265,0.664904331747084,0.664904331747084, +0.829636795360645,0.829636795360645,0.829471870579953,0.828946754214883,0.828286441118917,0.827580303486979,0.826882094461175,0.826250246788653,0.825793232167884,0.825793232167884, + +00:39:11, +0.140997816281671,0.140997816281671,0.141052913691018,0.141054407268831,0.141015024122675,0.14095155306835,0.14088239970407,0.140824849917536,0.140792374975043,0.140792374975043, +0.140997816281671,0.140997816281671,0.141052913691018,0.141054407268831,0.141015024122675,0.14095155306835,0.14088239970407,0.140824849917536,0.140792374975043,0.140792374975043, +0.166095935200214,0.166095935200214,0.166145816336145,0.166136158838923,0.166081454733843,0.166000865580972,0.165915465573139,0.165845177214052,0.165805681844067,0.165805681844067, +0.216651799983187,0.216651799983187,0.21668962596558,0.216656031039376,0.216569074081299,0.216452707423414,0.216333377172103,0.216236393369642,0.216182113310541,0.216182113310541, +0.29302833210293,0.29302833210293,0.293044446034642,0.292971102729798,0.292831895384204,0.292658112650693,0.292484275227183,0.292344011716809,0.292265461473955,0.292265461473955, +0.39497851750513,0.39497851750513,0.394960129580181,0.394827116495866,0.39461132116566,0.394354255209853,0.394100922931701,0.393896205584404,0.39378044131596,0.39378044131596, +0.520965886272642,0.520965886272642,0.520898466972256,0.520680406899888,0.520358000369574,0.519986712567681,0.519623021100074,0.519324884712661,0.519151519493586,0.519151519493586, +0.667642244874881,0.667642244874881,0.667515810654576,0.667177382154433,0.666710552401338,0.666189507415432,0.665678255018131,0.665244532987135,0.664974835421285,0.664974835421285, +0.829673987035311,0.829673987035311,0.829509099412027,0.828984105280054,0.828323949289265,0.827617981753541,0.826919941433807,0.826288245520719,0.825831339041176,0.825831339041176, + +00:39:12, +0.141113363473353,0.141113363473353,0.141168468353438,0.141169969207679,0.141130592853635,0.141067127768541,0.140997979230931,0.140940432853298,0.140907959682395,0.140907959682395, +0.141113363473353,0.141113363473353,0.141168468353438,0.141169969207679,0.141130592853635,0.141067127768541,0.140997979230931,0.140940432853298,0.140907959682395,0.140907959682395, +0.166213110220468,0.166213110220468,0.166262995543641,0.166253345911973,0.166198652121428,0.166118074158901,0.166032684539732,0.165962404193185,0.165922913193782,0.165922913193782, +0.216770573546486,0.216770573546486,0.216808398915629,0.216774814342427,0.216687875661528,0.216571531252304,0.216452222927421,0.216355256624707,0.216300986288456,0.216300986288456, +0.293145843762223,0.293145843762223,0.293161953799977,0.293088627402556,0.292949452160029,0.292775709438302,0.2926019120042,0.292461680765488,0.292383148607659,0.292383148607659, +0.395088774455048,0.395088774455048,0.395070384228893,0.394937400929288,0.394721658637815,0.394464657681244,0.394211390230475,0.394006725542428,0.393890991098575,0.393890991098575, +0.521060496209961,0.521060496209961,0.520993083434716,0.520775073931639,0.520452748884027,0.520081557820849,0.519717962307997,0.519419904826881,0.51924658537888,0.51924658537888, +0.667712048199898,0.667712048199898,0.667585636118954,0.667247287819867,0.666780574756274,0.66625966296142,0.665748542307724,0.66531493179505,0.665045302889449,0.665045302889449, +0.829711158101787,0.829711158101787,0.829546307616454,0.829021435646351,0.828361436666147,0.82765563912244,0.826957767404661,0.826326223157468,0.825869424753227,0.825869424753227, + +00:39:13, +0.141228918141531,0.141228918141531,0.141284030476432,0.141285538608411,0.141246169061103,0.141182709967805,0.141113566281236,0.141056023332736,0.14102355194483,0.14102355194483, +0.141228918141531,0.141228918141531,0.141284030476432,0.141285538608411,0.141246169061103,0.141182709967805,0.141113566281236,0.141056023332736,0.14102355194483,0.14102355194483, +0.166330285065568,0.166330285065568,0.166380174565916,0.166370532802836,0.166315849339991,0.166235282586939,0.166149903376696,0.166079631059365,0.1660401444399,0.1660401444399, +0.216889333901595,0.216889333901595,0.216927158657032,0.216893584441532,0.216806664046564,0.21669034189705,0.216571055509694,0.216474106715605,0.216419846107098,0.216419846107098, +0.29326332782562,0.29326332782562,0.2932794339785,0.293206124491804,0.293066981351467,0.292893278638175,0.292719521189137,0.292579322218063,0.292500808142801,0.292500808142801, +0.395198992829079,0.395198992829079,0.395180600315689,0.395047646796541,0.394831957526286,0.39457502154403,0.39432181889419,0.394117206843086,0.394001502210876,0.394001502210876, +0.521155064131874,0.521155064131874,0.521087657892236,0.520869698938717,0.520547455332733,0.520176360955919,0.519812861344154,0.519514882724319,0.519341609020957,0.519341609020957, +0.66778181574978,0.66778181574978,0.667655425805966,0.667317157665331,0.66685056122261,0.66632978253754,0.665818793545633,0.665385294481448,0.66511573419306,0.66511573419306, +0.829748308584674,0.829748308584674,0.829583495217857,0.82905874533848,0.828398903274376,0.827693275618609,0.826995572398795,0.826364179724064,0.825907489329282,0.825907489329282, + +00:39:14, +0.141344480251035,0.141344480251035,0.141399600024848,0.141401115435862,0.141361752709883,0.141298299630904,0.141229160819697,0.141171621320526,0.141139151727,0.141139151727, +0.141344480251035,0.141344480251035,0.141399600024848,0.141401115435862,0.141361752709883,0.141298299630904,0.141229160819697,0.141171621320526,0.141139151727,0.141139151727, +0.166447459710834,0.166447459710834,0.166497353378302,0.16648771948683,0.166433046364815,0.166352490840324,0.166267122059226,0.166196857787749,0.166157375557558,0.166157375557558, +0.217008081042391,0.217008081042391,0.217045905183664,0.217012341330544,0.216925439230228,0.216809139351435,0.216689874912667,0.216592943636048,0.216538692760162,0.216538692760162, +0.293380784308902,0.293380784308902,0.293396886585976,0.293323594013285,0.29318448297424,0.293010820266007,0.292837102797663,0.292696936090185,0.29261844009502,0.29261844009502, +0.395309172661971,0.395309172661971,0.395290777875288,0.395157854132329,0.394942217865773,0.394685346832911,0.39443220895755,0.394227649521086,0.394111974687573,0.394111974687573, +0.521249590082875,0.521249590082875,0.521182190389287,0.5209642819656,0.520642119760199,0.520271122017436,0.519907718253132,0.519609818449596,0.519436590464461,0.519436590464461, +0.667851547565558,0.667851547565558,0.667725179756635,0.667386991731888,0.666920511841477,0.666399866185011,0.66588900877316,0.665455621087707,0.665186129373542,0.665186129373542, +0.82978543850854,0.82978543850854,0.829620662240823,0.829096034381107,0.828436349138731,0.827730891266947,0.827033356441228,0.826402115245638,0.825945532794548,0.825945532794548, + +00:39:15, +0.141460049766738,0.141460049766738,0.141515176963577,0.141516699654916,0.141477343764827,0.141413896722644,0.141344762811076,0.141287226781392,0.141254758993609,0.141254758993609, +0.141460049766738,0.141460049766738,0.141515176963577,0.141516699654916,0.141477343764827,0.141413896722644,0.141344762811076,0.141287226781392,0.141254758993609,0.141254758993609, +0.166564634131623,0.166564634131623,0.166614531956164,0.166604905939308,0.166550243171221,0.166469698894335,0.166384340562554,0.166314084353533,0.166274606521931,0.166274606521931, +0.217126814962765,0.217126814962765,0.217164638489411,0.217131085003333,0.217044201206359,0.216927923609257,0.216808681130097,0.216711767379763,0.216657526241357,0.216657526241357, +0.293498213227838,0.293498213227838,0.293514311638157,0.293441035982729,0.293301957044053,0.293128334337477,0.292954656845433,0.292814522397491,0.292736044479941,0.292736044479941, +0.395419313988426,0.395419313988426,0.395400916942367,0.395268022971315,0.395052439690933,0.394795633582546,0.394542560455215,0.394338053611092,0.394222408563335,0.394222408563335, +0.521344074107399,0.521344074107399,0.52127668097028,0.521058823056705,0.520736742210869,0.520365841049883,0.520002533079458,0.519704712047277,0.519531529753979,0.519531529753979, +0.667921243688202,0.667921243688202,0.667794898011925,0.667456790060543,0.666990426653951,0.666469913944989,0.665959188031549,0.665525911655142,0.665256488472259,0.665256488472259, +0.829822547897912,0.829822547897912,0.8296578087099,0.829133302798863,0.82847377428395,0.827768486092313,0.82707111955694,0.82644002974728,0.825983555174192,0.825983555174192, + +00:39:16, +0.141575626653567,0.141575626653567,0.141630761257562,0.141632291230505,0.141592942190836,0.141529501207882,0.141460372220184,0.141402839680107,0.141370373709406,0.141370373709406, +0.141575626653567,0.141575626653567,0.141630761257562,0.141632291230505,0.141592942190836,0.141529501207882,0.141460372220184,0.141402839680107,0.141370373709406,0.141370373709406, +0.166681808303329,0.166681808303329,0.166731710274908,0.16672209213566,0.166667439734565,0.166586906724284,0.166501558861949,0.166431310731948,0.16639183730823,0.16639183730823, +0.217245535656623,0.217245535656623,0.217283358568177,0.217249815453784,0.217162949968808,0.217046694664329,0.216927474155758,0.216830577940493,0.216776346544409,0.216776346544409, +0.293615614598183,0.293615614598183,0.293631709150779,0.293558450415853,0.293419403576598,0.293245820868251,0.293072183348089,0.292932081155603,0.292853621313178,0.292853621313178, +0.395529416843104,0.395529416843104,0.39551101755156,0.39537815334812,0.395162623036383,0.39490588182755,0.394652873421805,0.394448419147728,0.394332803872786,0.394332803872786, +0.521438516249822,0.521438516249822,0.521371129679565,0.52115332225639,0.520831322729128,0.520460518097686,0.520097305867597,0.519799563561863,0.519626426934034,0.519626426934034, +0.667990904158626,0.667990904158626,0.667864580612743,0.66752655269224,0.667060305701045,0.666539925858574,0.666029331361983,0.665596166225013,0.665326811530516,0.665326811530516, +0.829859636777283,0.829859636777283,0.8296949346496,0.82917055061634,0.828511178734735,0.827806060119532,0.827108861770876,0.826477923254042,0.826021556493345,0.826021556493345, + +00:39:17, +0.141691210876492,0.141691210876492,0.141746352871792,0.141747890127608,0.141708547952857,0.141645113051522,0.141575989011878,0.141518459981489,0.141485995839191,0.141485995839191, +0.141691210876492,0.141691210876492,0.141746352871792,0.141747890127608,0.141708547952857,0.141645113051522,0.141575989011878,0.141518459981489,0.141485995839191,0.141485995839191, +0.166798982201383,0.166798982201383,0.166848888309974,0.166839278051312,0.166784636030244,0.166704114305524,0.166618776932717,0.166548536898265,0.166509067891704,0.166509067891704, +0.217364243117887,0.217364243117887,0.217402065413882,0.217368532675796,0.217281685511444,0.217165452510479,0.217046253983441,0.216949375311994,0.216895153663056,0.216895153663056, +0.293732988435676,0.293732988435676,0.293749079139566,0.29367583732836,0.293536822587553,0.293363279873981,0.29318968232126,0.29304961238013,0.292971170610329,0.292971170610329, +0.395639481260624,0.395639481260624,0.395621079737457,0.395488245297321,0.395272767936696,0.395016091602498,0.394763147891896,0.394558746165573,0.39444316065051,0.39444316065051, +0.521532916554455,0.521532916554455,0.521465536561431,0.521247779608948,0.520925861359301,0.520555153205207,0.520192036661953,0.519894373037795,0.519721282049088,0.519721282049088, +0.668060529017681,0.668060529017681,0.667934227599932,0.667596279667865,0.667130149023715,0.666609901966803,0.666099438805586,0.665666384838517,0.665397098589555,0.665397098589555, +0.829896705171108,0.829896705171108,0.829732040084399,0.829207777858097,0.828548562515753,0.827843613373387,0.827146583107942,0.826515795790941,0.826059536777102,0.826059536777102, + +00:39:18, +0.141806802400535,0.141806802400535,0.141861951771305,0.141863496311252,0.141824161015888,0.141760732218518,0.141691613151066,0.141634087650408,0.141601625347811,0.141601625347811, +0.141806802400535,0.141806802400535,0.141861951771305,0.141863496311252,0.141824161015888,0.141760732218518,0.141691613151066,0.141634087650408,0.141601625347811,0.141601625347811, +0.166916155801252,0.166916155801252,0.16696606603684,0.16695646366173,0.166901832033687,0.166821321613441,0.166735994750201,0.16666576282779,0.16662629824764,0.16662629824764, +0.217482937340493,0.217482937340493,0.21752075902046,0.217487236663284,0.21740040782815,0.217284197141552,0.217165020606949,0.217068159488042,0.217013947591056,0.217013947591056, +0.293850334756046,0.293850334756046,0.293866421620229,0.293793196735939,0.293654214092584,0.293480711370308,0.29330715378056,0.293167116086669,0.293088692386981,0.293088692386981, +0.395749507275562,0.395749507275562,0.395731103534609,0.395598298853455,0.395382874426402,0.395126262941921,0.394873383900023,0.394669034699166,0.394553478931048,0.394553478931048, +0.521627275065553,0.521627275065553,0.521559901660106,0.521342195158617,0.52102035814565,0.520649746416749,0.520286725506872,0.519989140519454,0.519816095143546,0.519816095143546, +0.668130118306162,0.668130118306162,0.668003839014279,0.667665971028244,0.667199956662854,0.666679842310655,0.666169510403422,0.665736567536791,0.665467349690561,0.665467349690561, +0.829933753103806,0.829933753103806,0.829769125038734,0.829244984548651,0.828585925651631,0.827881145878628,0.827184283593006,0.826553647382953,0.826097496050516,0.826097496050516, + +00:39:19, +0.141922401190762,0.141922401190762,0.141977557921187,0.141979109746515,0.141939781344972,0.141876358673869,0.141807244602701,0.141749722651781,0.141717262200162,0.141717262200162, +0.141922401190762,0.141922401190762,0.141977557921187,0.141979109746515,0.141939781344972,0.141876358673869,0.141807244602701,0.141749722651781,0.141717262200162,0.141717262200162, +0.16703332907844,0.16703332907844,0.167083243431021,0.167073648942413,0.167019027720364,0.166938528623462,0.166853212289782,0.166782988495866,0.16674352835136,0.16674352835136, +0.217601618318394,0.217601618318394,0.217639439381859,0.217605927410179,0.217519116912824,0.217402928551407,0.217283774020103,0.217186930462425,0.21713272832218,0.21713272832218, +0.293967653575006,0.293967653575006,0.293983736608462,0.293910528654266,0.293771578107341,0.293598115372856,0.293424597741591,0.293284592290802,0.293206186658707,0.293206186658707, +0.395859494922451,0.395859494922451,0.395841088977521,0.395708314051015,0.395492942539992,0.395236395880308,0.394983581480678,0.394779284783004,0.3946637587489,0.3946637587489, +0.521721591827308,0.521721591827308,0.521654225019758,0.521436568949571,0.521114813132378,0.520744297776555,0.520381372446638,0.52008386605116,0.519910866261749,0.519910866261749, +0.668199672064801,0.668199672064801,0.668073414896511,0.667735626814143,0.667269728659301,0.666749746931051,0.666239546196496,0.665806714360915,0.66553756487466,0.66553756487466, +0.829970780599758,0.829970780599758,0.829806189537008,0.829282170712486,0.82862326816696,0.827918657659965,0.827221963250901,0.826591478055021,0.826135434338607,0.826135434338607, + +00:39:20, +0.142038007212292,0.142038007212292,0.142093171286572,0.142094730398519,0.142055408905203,0.141991992382624,0.141922883331787,0.141865364950572,0.141832906361186,0.141832906361186, +0.142038007212292,0.142038007212292,0.142093171286572,0.142094730398519,0.142055408905203,0.141991992382624,0.141922883331787,0.141865364950572,0.141832906361186,0.141832906361186, +0.16715050200849,0.16715050200849,0.167200420468067,0.1671908338689,0.167136223065779,0.167055735311047,0.166970429526876,0.166900213877874,0.166860758178226,0.166860758178226, +0.217720286045556,0.217720286045556,0.217758106492044,0.217724604910425,0.217637812759379,0.217521646733918,0.217402514216739,0.217305688228946,0.217251495850216,0.217251495850216, +0.294084944908254,0.294084944908254,0.29410102411995,0.294027833099001,0.293888914647464,0.293715491897239,0.293542014219941,0.293402041008099,0.293323653441065,0.293323653441065, +0.395969444235782,0.395969444235782,0.395951036100659,0.395818290924452,0.395602972311911,0.395346490452106,0.395093740668311,0.39488949645154,0.394774000138523,0.394774000138523, +0.521815866883851,0.521815866883851,0.521748506684495,0.521530901025925,0.521209226363629,0.520838807328805,0.520475977525475,0.520178549677174,0.520005595447979,0.520005595447979, +0.668269190334274,0.668269190334274,0.668142955287296,0.667805247066269,0.66733946505383,0.666819615868849,0.666309546225753,0.665876825351906,0.665607744182915,0.665607744182915, +0.83000778768331,0.83000778768331,0.829843233603585,0.829319336374047,0.828660590086295,0.827956148742074,0.827259622106419,0.826629287832046,0.826173351666354,0.826173351666354, + +00:39:21, +0.142153620430287,0.142153620430287,0.142208791832641,0.142210358232437,0.142171043661721,0.142107633309881,0.142038529303375,0.141981014511794,0.141948557795876,0.141948557795876, +0.142153620430287,0.142153620430287,0.142208791832641,0.142210358232437,0.142171043661721,0.142107633309881,0.142038529303375,0.141981014511794,0.141948557795876,0.141948557795876, +0.167267674566978,0.167267674566978,0.167317597123567,0.167308018416764,0.167253418045474,0.167172941651696,0.167087646436937,0.167017438949232,0.166977987703633,0.166977987703633, +0.217838940515961,0.217838940515961,0.217876760344993,0.217843269157983,0.217756495361745,0.217640351682975,0.217521241190707,0.217424432781427,0.217370250168964,0.217370250168964, +0.294202208771478,0.294202208771478,0.29421828417036,0.294145110085794,0.294006223728575,0.293832840959053,0.293659403231184,0.293519462254116,0.293441092749601,0.293441092749601, +0.396079355250004,0.396079355250004,0.396060944938445,0.395928229508175,0.395712963776564,0.39545654669172,0.395203861497331,0.394999669739188,0.394884203134332,0.394884203134332, +0.521910100279256,0.521910100279256,0.521842746698366,0.521625191431733,0.521303597883485,0.520933275117623,0.520570540787545,0.520273191441695,0.520100282746458,0.520100282746458, +0.668338673155197,0.668338673155197,0.668212460227241,0.667874831825272,0.667409165887159,0.666889449164852,0.666379510532078,0.665946900550724,0.665677887656333,0.665677887656333, +0.830044774378769,0.830044774378769,0.829880257262793,0.829356481557744,0.828697891434154,0.82799361914959,0.82729726018432,0.826667076738894,0.8262112480587,0.8262112480587, + +00:39:22, +0.142269240809961,0.142269240809961,0.142324419524624,0.142325993213487,0.142286685579714,0.142223281420784,0.142154182482562,0.142096671300509,0.142064216469272,0.142064216469272, +0.142269240809961,0.142269240809961,0.142324419524624,0.142325993213487,0.142286685579714,0.142223281420784,0.142154182482562,0.142096671300509,0.142064216469272,0.142064216469272, +0.16738484672952,0.16738484672952,0.167434773373146,0.167425202561617,0.167370612635029,0.167290147620943,0.167204862995457,0.167134663685394,0.167095216903016,0.167095216903016, +0.217957581723606,0.217957581723606,0.217995400934702,0.217961920146829,0.217875164713864,0.217759043392483,0.217639954935874,0.217543164113701,0.217488991272243,0.217488991272243, +0.294319445180349,0.294319445180349,0.294335516775348,0.294262359630279,0.294123505366287,0.293950162573886,0.293776764790881,0.293636856044395,0.293558504599849,0.293558504599849, +0.396189227999524,0.396189227999524,0.39617081552526,0.396038129836551,0.395822916968313,0.395566564633514,0.395313944002103,0.395109804680316,0.394994367770701,0.394994367770701, +0.522004292057533,0.522004292057533,0.521936945105357,0.52171944021099,0.521397927735969,0.521027701187069,0.520665062276952,0.520367791388863,0.520194928201348,0.520194928201348, +0.668408120568126,0.668408120568126,0.668281929756897,0.667944381131739,0.667478831199948,0.6669592468598,0.666449439156298,0.66601693999827,0.665747995335859,0.665747995335859, +0.830081740710409,0.830081740710409,0.829917260538925,0.829393606287948,0.828735172235016,0.828031068907115,0.827334877509321,0.826704844800395,0.826249123540551,0.826249123540551, + +00:39:23, +0.142384868316571,0.142384868316571,0.142440054327797,0.142441635306938,0.142402334624418,0.142338936680525,0.142269842834496,0.142212335281825,0.142179882346461,0.142179882346461, +0.142384868316571,0.142384868316571,0.142440054327797,0.142441635306938,0.142402334624418,0.142338936680525,0.142269842834496,0.142212335281825,0.142179882346461,0.142179882346461, +0.167502018471765,0.167502018471765,0.167551949192464,0.167542386279105,0.167487806810057,0.16740735319436,0.167322079177962,0.167251888061851,0.167212445751845,0.167212445751845, +0.218076209662503,0.218076209662503,0.218114028255179,0.218080557870951,0.217993820809695,0.217877721856362,0.217758655446121,0.217661882219618,0.217607719153887,0.217607719153887, +0.294436654150526,0.294436654150526,0.294452721950556,0.294379581748077,0.294240759576195,0.294067456757307,0.293894098914581,0.293754222394466,0.293675889007326,0.293675889007326, +0.396299062518706,0.396299062518706,0.396280647895441,0.396147991943905,0.39593283192148,0.395676544311809,0.395423988216953,0.395219901309255,0.39510449408196,0.39510449408196, +0.522098442262634,0.522098442262634,0.522031101949396,0.52181364740763,0.521492215965042,0.521122085581145,0.52075954203774,0.520462349562756,0.520289531856748,0.520289531856748, +0.668477532613559,0.668477532613559,0.668351363916755,0.668013895026202,0.667548461032795,0.667029008994376,0.66651933213918,0.666086943735383,0.665818067262381,0.665818067262381, +0.830118686702465,0.830118686702465,0.829954243456236,0.829430710588997,0.828772432513326,0.828068498039211,0.827372474106107,0.826742592041338,0.826286978136775,0.826286978136775, + +00:39:24, +0.142500502915428,0.142500502915428,0.142555696207487,0.142557284478104,0.142517990761118,0.142454599054345,0.142385510324371,0.142328006420899,0.142295555392579,0.142295555392579, +0.142500502915428,0.142500502915428,0.142555696207487,0.142557284478104,0.142517990761118,0.142454599054345,0.142385510324371,0.142328006420899,0.142295555392579,0.142295555392579, +0.167619189769403,0.167619189769403,0.16766912455722,0.167659569544914,0.16760500054621,0.167524558347557,0.167439294960017,0.167369112054131,0.16732967422563,0.16732967422563, +0.218194824326679,0.218194824326679,0.218232642300448,0.218199182324357,0.218112463643213,0.217996387068547,0.217877342715344,0.217780587093045,0.217726433807742,0.217726433807742, +0.294553835697653,0.294553835697653,0.29456989971161,0.294496776454795,0.294357986373883,0.294184723524875,0.294011405617818,0.293871561319844,0.29379324598754,0.29379324598754, +0.396408858841874,0.396408858841874,0.396390442083285,0.39625781586452,0.396042708670342,0.395786485760883,0.395533994176163,0.395329959660289,0.395214582102399,0.395214582102399, +0.522192550938451,0.522192550938451,0.522125217274351,0.521907813065528,0.521586462614607,0.521216428343793,0.520853980113892,0.520556866007395,0.520384093756702,0.520384093756702, +0.668546909331936,0.668546909331936,0.668420762747246,0.668083373549133,0.667618055426241,0.667098735609204,0.666589189521433,0.666156911802845,0.665888103476726,0.665888103476726, +0.830155612379136,0.830155612379136,0.829991206038945,0.82946779448519,0.828809672293491,0.828105906570405,0.827410049999324,0.826780318486478,0.826324811872203,0.826324811872203, + +00:39:25, +0.142616144571885,0.142616144571885,0.142671345129065,0.142672940692348,0.142633653955145,0.142570268507531,0.14250118491743,0.142443684682937,0.14241123557281,0.14241123557281, +0.142616144571885,0.142616144571885,0.142671345129065,0.142672940692348,0.142633653955145,0.142570268507531,0.14250118491743,0.142443684682937,0.14241123557281,0.14241123557281, +0.167736360598157,0.167736360598157,0.167786299443147,0.167776752334762,0.167722193819178,0.167641763056178,0.167556510317223,0.1674863356378,0.167446902299913,0.167446902299913, +0.218313425710176,0.218313425710176,0.218351243064548,0.218317793501065,0.218231093208405,0.218115039022988,0.217996016737455,0.217899278727862,0.217845135227673,0.217845135227673, +0.294670989837362,0.294670989837362,0.294687050074125,0.294613943766027,0.294475185774921,0.294301962892135,0.294128684916112,0.293988872836032,0.293910575555982,0.293910575555982, +0.396518617003307,0.396518617003307,0.396500198123045,0.396367601632637,0.396152547249136,0.395896389014975,0.395643961913973,0.395439979767665,0.395324631866267,0.395324631866267, +0.522286618128816,0.522286618128816,0.522219291124028,0.522001937228498,0.521680667728508,0.521310729518894,0.520948376549331,0.520651340766739,0.52047861394519,0.52047861394519, +0.668616250763637,0.668616250763637,0.668490126288744,0.668152816740944,0.667687614420767,0.667168426744848,0.666659011343706,0.66622684424138,0.665958104019662,0.665958104019662, +0.830192517764585,0.830192517764585,0.830028148311234,0.829504858000788,0.828846891599883,0.828143294525186,0.82744760521358,0.826818024160532,0.826362624771628,0.826362624771628, + +00:39:26, +0.142731793251345,0.142731793251345,0.142787001057952,0.142788603915081,0.142749324171879,0.142685945005421,0.142616866578963,0.14255937003319,0.142526922852385,0.142526922852385, +0.142731793251345,0.142731793251345,0.142787001057952,0.142788603915081,0.142749324171879,0.142685945005421,0.142616866578963,0.14255937003319,0.142526922852385,0.142526922852385, +0.167853530933787,0.167853530933787,0.167903473826017,0.167893934624408,0.167839386604684,0.167758967295906,0.167673725225217,0.167603558788457,0.167564129950276,0.167564129950276, +0.21843201380705,0.21843201380705,0.218469830541535,0.218436391395112,0.218349709499277,0.218233677713651,0.218114677506381,0.218017957117965,0.217963823407558,0.217963823407558, +0.29478811658527,0.29478811658527,0.294804173053702,0.294731083697352,0.294592357794865,0.294419174874618,0.29424593682497,0.294106156958519,0.294027877728132,0.294027877728132, +0.396628337037244,0.396628337037244,0.396609916048935,0.396477349282455,0.396262347692057,0.39600625410828,0.395753891464582,0.395549961665586,0.39543464340777,0.39543464340777, +0.5223806438775,0.5223806438775,0.522313323542177,0.522096019940294,0.521774831350525,0.52140498915027,0.52104273138792,0.520745773884687,0.520573092466134,0.520573092466134, +0.668685556948984,0.668685556948984,0.668559454581565,0.66822222464199,0.667757138056798,0.667238082441816,0.66672879764659,0.666296741091651,0.666028068931899,0.666028068931899, +0.83022940288294,0.83022940288294,0.83006507029725,0.82954190116002,0.828884090456834,0.828180661928007,0.827485139773447,0.82685570908818,0.826400416859808,0.826400416859808, + +00:39:27, +0.14284744891926,0.14284744891926,0.142902663959616,0.14290427411176,0.142865001376747,0.142801628513397,0.142732555274308,0.142675062436959,0.142642617196584,0.142642617196584, +0.14284744891926,0.14284744891926,0.142902663959616,0.14290427411176,0.142865001376747,0.142801628513397,0.142732555274308,0.142675062436959,0.142642617196584,0.142642617196584, +0.167970700752092,0.167970700752092,0.168020647681636,0.168011116389645,0.16795657887849,0.167876171042459,0.167790939659674,0.167720781481742,0.167681357152338,0.167681357152338, +0.218550588611373,0.218550588611373,0.218588404725475,0.218554976000547,0.218468312509846,0.218352303134516,0.218233325016064,0.218136622257265,0.218082498341291,0.218082498341291, +0.29490521595698,0.29490521595698,0.294921268665927,0.294848196264337,0.294709502449258,0.294536359487841,0.294363161359887,0.294223413702781,0.294145152519455,0.294145152519455, +0.396738018977881,0.396738018977881,0.396719595895124,0.396587058848131,0.396372110033259,0.396116081074951,0.395863782862148,0.395659905388212,0.395544616761071,0.395544616761071, +0.522474628228216,0.522474628228216,0.522407314572485,0.522190061244613,0.521868953524384,0.521499207281684,0.521137044673464,0.52084016540508,0.520667529363396,0.520667529363396, +0.668754827928241,0.668754827928241,0.668628747665964,0.668291597292567,0.667826626374697,0.667307702740553,0.666798548470616,0.666366602394262,0.666097998254088,0.666097998254088, +0.83026626775829,0.83026626775829,0.830101972021104,0.829578923987076,0.828921268888643,0.828218008803285,0.82752265370346,0.826893373294065,0.826438188161461,0.826438188161461, + +00:39:28, +0.142963111541127,0.142963111541127,0.143018333799572,0.143019951247891,0.142980685535223,0.142917318996891,0.142848250968851,0.142790761859593,0.142758318570734,0.142758318570734, +0.142963111541127,0.142963111541127,0.143018333799572,0.143019951247891,0.142980685535223,0.142917318996891,0.142848250968851,0.142790761859593,0.142758318570734,0.142758318570734, +0.168087870028903,0.168087870028903,0.168137820985848,0.168128297606302,0.168073770616395,0.167993374271591,0.167908153596304,0.167838003693329,0.167798583881752,0.167798583881752, +0.218669150117231,0.218669150117231,0.218706965610453,0.218673547311435,0.218586902234147,0.218470915279577,0.21835195926046,0.218255274139688,0.218201160022782,0.218201160022782, +0.295022287968083,0.295022287968083,0.295038336926373,0.294965281482535,0.29482661975363,0.294653516747309,0.294480358536343,0.294340643084279,0.294262399945405,0.294262399945405, +0.396847662859374,0.396847662859374,0.39682923769574,0.39669673036378,0.396481834306851,0.396225869949101,0.395973636140785,0.395769810969663,0.395654551960294,0.395654551960294, +0.522568571224615,0.522568571224615,0.52250126425858,0.522284061185089,0.521963034293746,0.521593383956838,0.521231316449706,0.520934515371698,0.520761924680778,0.520761924680778, +0.668824063741612,0.668824063741612,0.66869800558214,0.668360934732912,0.667896079414771,0.66737728768145,0.666868263856257,0.666436428189759,0.66616789202682,0.66616789202682, +0.83030311241469,0.83030311241469,0.830138853506869,0.829615926506109,0.828958426919572,0.8282553351754,0.827560147028119,0.826931016802793,0.826475938701271,0.826475938701271, + +00:39:29, +0.143078781082492,0.143078781082492,0.143134010543384,0.143135635289028,0.143096376612829,0.143033016421381,0.142963953628024,0.142906468266486,0.142874026940209,0.142874026940209, +0.143078781082492,0.143078781082492,0.143134010543384,0.143135635289028,0.143096376612829,0.143033016421381,0.142963953628024,0.142906468266486,0.142874026940209,0.142874026940209, +0.168205038740091,0.168205038740091,0.168254993714533,0.168245478250246,0.16819096179423,0.168110576959094,0.168025367010854,0.16795522539893,0.167915810114209,0.167915810114209, +0.218787698318726,0.218787698318726,0.218825513190568,0.218792105321856,0.218705478666227,0.218589514142846,0.218470580233542,0.218373912759175,0.218319808445954,0.218319808445954, +0.295139332634154,0.295139332634154,0.295155377850599,0.295082339367484,0.294943709723495,0.294770646668511,0.294597528369805,0.294457845118463,0.294379620021419,0.294379620021419, +0.396957268715835,0.396957268715835,0.396938841484872,0.396806363863477,0.396591520546904,0.396335620764799,0.396083451334569,0.395879678444018,0.39576444903952,0.39576444903952, +0.522662472910292,0.522662472910292,0.522595172644032,0.522378019805299,0.522057073702217,0.521687519219375,0.521325546760332,0.521028823828261,0.520856278462022,0.520856278462022, +0.668893264429244,0.668893264429244,0.668767228370232,0.668430237003204,0.667965497217268,0.667446837304835,0.666937943843927,0.66650621851863,0.666237750290629,0.666237750290629, +0.830339936876158,0.830339936876158,0.830175714778584,0.829652908741237,0.828995564573844,0.828292641068695,0.827597619771885,0.826968639638934,0.826513668503882,0.826513668503882, + +00:39:30, +0.143194457508948,0.143194457508948,0.143249694156661,0.143251326200771,0.143212074575135,0.143148720752394,0.143079663217309,0.143022181623084,0.142989742270432,0.142989742270432, +0.143194457508948,0.143194457508948,0.143249694156661,0.143251326200771,0.143212074575135,0.143148720752394,0.143079663217309,0.143022181623084,0.142989742270432,0.142989742270432, +0.168322206861562,0.168322206861562,0.168372165843606,0.168362658297379,0.168308152387868,0.168227779080796,0.168142579879109,0.168072446574291,0.168033035825438,0.168033035825438, +0.218906233209973,0.218906233209973,0.218944047459932,0.218910650025905,0.21882404180015,0.218708099718347,0.218589187929296,0.218492538109683,0.218438443604747,0.218438443604747, +0.295256349970757,0.295256349970757,0.295272391454151,0.29519936993471,0.295060772374355,0.294887749266924,0.294714670875727,0.294575019820769,0.294496812762925,0.294496812762925, +0.397066836581334,0.397066836581334,0.397048407296562,0.396915959381252,0.396701168787445,0.396445333556075,0.39619322847753,0.395989507845313,0.395874308032789,0.395874308032789, +0.522756333328779,0.522756333328779,0.52268903977235,0.522471937148759,0.52215107179334,0.521781613112879,0.521419735648967,0.521123090818431,0.520950590750812,0.520950590750812, +0.668962430031227,0.668962430031227,0.668836416070322,0.668499504143565,0.668034879822376,0.667516351650982,0.667007588473983,0.666575973421304,0.666307573085988,0.666307573085988, +0.830376741166678,0.830376741166678,0.830212555860249,0.829689870716543,0.829032681875649,0.828329926507476,0.827635071959184,0.827006241827019,0.826551377593904,0.826551377593904, + +00:39:31, +0.143310140786136,0.143310140786136,0.143365384605061,0.143367023948767,0.143327779387759,0.143264431955503,0.143195379702234,0.143137901894876,0.143105464526874,0.143105464526874, +0.143310140786136,0.143310140786136,0.143365384605061,0.143367023948767,0.143327779387759,0.143264431955503,0.143195379702234,0.143137901894876,0.143105464526874,0.143105464526874, +0.168439374369259,0.168439374369259,0.168489337349021,0.16847983772364,0.168425342373215,0.16834498061256,0.168259792176887,0.168189667195197,0.168150260991202,0.168150260991202, +0.219024754785103,0.219024754785103,0.219062568412673,0.21902918141769,0.218942591629994,0.21882667200012,0.218707782341725,0.218611150185183,0.218557065493116,0.218557065493116, +0.295373339993439,0.295373339993439,0.295389377752562,0.295316373199725,0.2951778077217,0.295004824558013,0.294831786069549,0.294692167206618,0.294613978185334,0.294613978185334, +0.397176366489902,0.397176366489902,0.397157935164814,0.397025516951097,0.39681077906246,0.396555008356916,0.39630296760366,0.396099299207543,0.395984128974098,0.395984128974098, +0.52285015252355,0.52285015252355,0.522782865686985,0.522565813258926,0.522245028610601,0.521875665680873,0.521513883159175,0.52121731638581,0.521044861590771,0.521044861590771, +0.66903156058759,0.66903156058759,0.668905568722434,0.668568736194058,0.668104227270227,0.667585830760104,0.667077197786723,0.666645692938151,0.666377360453315,0.666377360453315, +0.830413525310194,0.830413525310194,0.830249376775833,0.829726812456071,0.82906977884914,0.828367191516014,0.827672503614404,0.827043823391545,0.826589065995909,0.826589065995909, + +00:39:32, +0.143425830879743,0.143425830879743,0.14348108185429,0.143482728498713,0.143443491016364,0.143380149996331,0.143311103048374,0.143253629047401,0.143221193675051,0.143221193675051, +0.143425830879743,0.143425830879743,0.14348108185429,0.143482728498713,0.143443491016364,0.143380149996331,0.143311103048374,0.143253629047401,0.143221193675051,0.143221193675051, +0.168556541239158,0.168556541239158,0.168606508206764,0.168597016505004,0.168542531726214,0.168462181530288,0.168377003880046,0.168306887237469,0.168267485587301,0.168267485587301, +0.219143263038261,0.219143263038261,0.219181076042934,0.219147699491336,0.219061128149853,0.21894523098222,0.218826363464844,0.218729748979661,0.218675674105028,0.218675674105028, +0.295490302717737,0.295490302717737,0.295506336761348,0.295433349178027,0.295294815781003,0.295121872557228,0.294948873966698,0.294809287291419,0.294731116304045,0.294731116304045, +0.397285858475526,0.397285858475526,0.397267425123591,0.397135036606959,0.396920351405895,0.396664645201267,0.396412668746908,0.396209052564661,0.396093911897404,0.396093911897404, +0.522943930538021,0.522943930538021,0.522876650431327,0.522659648179198,0.522338944197426,0.521969676966823,0.521607989334465,0.52131150057394,0.521139091025464,0.521139091025464, +0.669100656138306,0.669100656138306,0.668974686366533,0.668637933194686,0.668173539600894,0.667655274672356,0.667146771822385,0.666715377109483,0.666447112432966,0.666447112432966, +0.830450289330619,0.830450289330619,0.830286177549263,0.829763733983832,0.829106855518431,0.828404436118543,0.827709914761898,0.82708138435697,0.826626733734431,0.826626733734431, + +00:39:33, +0.143541527755504,0.143541527755504,0.143596785870099,0.14359843981635,0.143559209426663,0.143495874840544,0.143426833221354,0.143369363046245,0.143336929680528,0.143336929680528, +0.143541527755504,0.143541527755504,0.143596785870099,0.14359843981635,0.143559209426663,0.143495874840544,0.143426833221354,0.143369363046245,0.143336929680528,0.143336929680528, +0.168673707447276,0.168673707447276,0.168723678392861,0.168714194617481,0.168659720422843,0.168579381809915,0.168494214964478,0.168424106676964,0.168384709589574,0.168384709589574, +0.219261757963607,0.219261757963607,0.219299570344872,0.219266204240981,0.219179651353833,0.219063776658718,0.218944931292687,0.218848334487118,0.21879426943447,0.21879426943447, +0.295607238159171,0.295607238159171,0.295623268496015,0.295550297885099,0.295411796567726,0.295238893280004,0.295065934582586,0.294926380090569,0.294848227134445,0.294848227134445, +0.397395312572151,0.397395312572151,0.397376877206811,0.397244518382746,0.397029885851651,0.396774244123032,0.396522331941181,0.396318767950581,0.396203656836624,0.396203656836624, +0.523037667415546,0.523037667415546,0.522970394048709,0.522753441952914,0.522432818597182,0.522063647014135,0.521702054218282,0.521405643426304,0.521233279098395,0.521233279098395, +0.66916971672329,0.66916971672329,0.669043769042528,0.668707095185398,0.668242816854393,0.667724683427836,0.667216310621151,0.666785025975553,0.666516829065241,0.666516829065241, +0.830487033251827,0.830487033251827,0.830322958204436,0.829800635323799,0.829143911907605,0.828441660339261,0.827747305425981,0.827118924747718,0.826664380833969,0.826664380833969, + +00:39:34, +0.143657231379202,0.143657231379202,0.143712496618289,0.143714157867468,0.143674934584413,0.14361160645386,0.143542570186844,0.143485103857042,0.143452672508919,0.143452672508919, +0.143657231379202,0.143657231379202,0.143712496618289,0.143714157867468,0.143674934584413,0.14361160645386,0.143542570186844,0.143485103857042,0.143452672508919,0.143452672508919, +0.168790872969662,0.168790872969662,0.168840847883373,0.168831372037118,0.168776908439119,0.168696581427414,0.168611425406112,0.168541325489575,0.168501932973892,0.168501932973892, +0.219380239555316,0.219380239555316,0.21941805131266,0.21938469566078,0.219298161236058,0.219182309023696,0.2190634858193,0.218966906701572,0.21891285147544,0.21891285147544, +0.295724146333249,0.295724146333249,0.295740172972054,0.295667219336414,0.295528750097317,0.295355886741764,0.295182967932615,0.295043445619448,0.294965310691906,0.294965310691906, +0.397504728813681,0.397504728813681,0.397486291448353,0.397353962312323,0.39713938243359,0.396883805156074,0.396631957220346,0.396428445399172,0.39631336382563,0.39631336382563, +0.523131363199422,0.523131363199422,0.523064096582403,0.522847194623354,0.522526651853175,0.522157575866155,0.521796077854016,0.521499744986327,0.521327425853011,0.521327425853011, +0.669238742382399,0.669238742382399,0.669112816790267,0.668776222206082,0.668312059070681,0.667794057066584,0.667285814223143,0.666854639576558,0.666586510390381,0.666586510390381, +0.830523757097657,0.830523757097657,0.83035971876521,0.82983751649991,0.829180948040705,0.828478864202329,0.827784675630932,0.827156444588175,0.826702007318986,0.826702007318986, + +00:39:35, +0.143772941716667,0.143772941716667,0.143828214064706,0.143829882617904,0.143790666455423,0.143727344802042,0.143658313910561,0.143600851445473,0.143568422125884,0.143568422125884, +0.143772941716667,0.143772941716667,0.143828214064706,0.143829882617904,0.143790666455423,0.143727344802042,0.143658313910561,0.143600851445473,0.143568422125884,0.143568422125884, +0.168908037782403,0.168908037782403,0.168958016654395,0.168948548739999,0.168894095751091,0.168813780358794,0.168728635180913,0.16865854365123,0.168619155716165,0.168619155716165, +0.219498707807577,0.219498707807577,0.219536518940483,0.219503173744899,0.219416657790663,0.219300828071255,0.219182027038743,0.219085465617052,0.219031420221952,0.219031420221952, +0.295841027255466,0.295841027255466,0.295857050204942,0.295784113547427,0.29564567638521,0.295472852957919,0.29529997403217,0.295160483893426,0.295082366991786,0.295082366991786, +0.397614107233981,0.397614107233981,0.397595667882054,0.397463368429514,0.397248841185533,0.396993328334214,0.396741544618228,0.396538084944264,0.396423032898256,0.396423032898256, +0.523225017932886,0.523225017932886,0.523157758075622,0.522940906233739,0.522620444008656,0.522251463566171,0.521890060284996,0.521593805297373,0.521421531332699,0.521421531332699, +0.669307733155431,0.669307733155431,0.669181829649544,0.668845314296571,0.668381266289657,0.66786339562858,0.667355282668428,0.666924217952635,0.666656156448568,0.666656156448568, +0.830560460891913,0.830560460891913,0.830396459255406,0.829874377536068,0.829217963941738,0.828516047731874,0.827822025400996,0.82719394390269,0.826739613213906,0.826739613213906, + +00:39:36, +0.143888658733775,0.143888658733775,0.143943938175244,0.143945614033543,0.143906405005544,0.143843089850899,0.143774064358272,0.143716605777265,0.143684178497128,0.143684178497128, +0.143888658733775,0.143888658733775,0.143943938175244,0.143945614033543,0.143906405005544,0.143843089850899,0.143774064358272,0.143716605777265,0.143684178497128,0.143684178497128, +0.169025201861622,0.169025201861622,0.169075184682061,0.169065724702242,0.169011282334848,0.168930978580101,0.168845844264883,0.168775761137897,0.168736377792339,0.168736377792339, +0.219617162714594,0.219617162714594,0.219654973222542,0.219621638487521,0.219535141011803,0.219419333795509,0.219300554945094,0.219204011227605,0.219149975668036,0.219149975668036, +0.295957880941301,0.295957880941301,0.295973900210142,0.295900980533583,0.295762575446824,0.295589791943864,0.295416952896624,0.295277494927857,0.295199396049432,0.295199396049432, +0.39772344786687,0.39772344786687,0.397705006541709,0.397572736768101,0.397358262141258,0.397102813691232,0.39685109416861,0.396647686619645,0.396532664088293,0.396532664088293, +0.523318631659118,0.523318631659118,0.523251378571522,0.523034576827231,0.522714195106813,0.522345310157412,0.521984001554491,0.52168782440275,0.521515595580786,0.521515595580786, +0.669376689082129,0.669376689082129,0.669250807660093,0.668914371496636,0.668450438551163,0.667932699153748,0.667424715997011,0.666993761143862,0.666725767279928,0.666725767279928, +0.830597144658362,0.830597144658362,0.830433179698813,0.829911218456137,0.829254959634679,0.828553210951984,0.827859354760379,0.827231422715577,0.826777198543118,0.826777198543118, + +00:39:37, +0.14400438239645,0.14400438239645,0.144059668915843,0.144061352080316,0.144022150200678,0.14395884156629,0.143889821495788,0.143832366818194,0.143799941588408,0.143799941588408, +0.14400438239645,0.14400438239645,0.144059668915843,0.144061352080316,0.144022150200678,0.14395884156629,0.143889821495788,0.143832366818194,0.143799941588408,0.143799941588408, +0.169142365183477,0.169142365183477,0.169192351942538,0.169182899900003,0.169128468166513,0.169048176067414,0.168963052634058,0.168892977925576,0.168853599178397,0.168853599178397, +0.219735604270584,0.219735604270584,0.219773414153054,0.219740089882844,0.219653610893641,0.219537826190586,0.219419069532443,0.219322543527291,0.219268517807736,0.219268517807736, +0.296074707406221,0.296074707406221,0.296090723003105,0.296017820310312,0.295879447297568,0.295706703714981,0.295533904541338,0.295394478738085,0.295316397880176,0.295316397880176, +0.397832750746128,0.397832750746128,0.397814307461072,0.397682067361827,0.397467645334503,0.397212261260867,0.396960605905236,0.396757250459063,0.396642257429491,0.396642257429491, +0.523412204421235,0.523412204421235,0.523344958113198,0.523128206446931,0.522807905190778,0.522439115683047,0.522077901705713,0.521781802345703,0.521609618640542,0.521609618640542, +0.669445610202176,0.669445610202176,0.669319750861592,0.668983393845996,0.668519575894983,0.668001967681955,0.667494114248843,0.667063269190262,0.666795342924527,0.666795342924527, +0.830633808420736,0.830633808420736,0.830469880119183,0.829948039283951,0.829291935143462,0.828590353886714,0.827896663733252,0.827268881051112,0.826814763330976,0.826814763330976, + +00:39:38, +0.144120112670663,0.144120112670663,0.144175406252492,0.1441770967242,0.144137902006773,0.144074599914119,0.144005585288969,0.143948134534083,0.143915711365525,0.143915711365525, +0.144120112670663,0.144120112670663,0.144175406252492,0.1441770967242,0.144137902006773,0.144074599914119,0.144005585288969,0.143948134534083,0.143915711365525,0.143915711365525, +0.169259527724163,0.169259527724163,0.169309518412032,0.169300074309472,0.169245653222245,0.169165372796851,0.169080260264513,0.169010193990307,0.168970819850355,0.168970819850355, +0.219854032469782,0.219854032469782,0.219891841726248,0.21985852792508,0.21977206743036,0.21965630525063,0.219537570794896,0.219441062510187,0.21938704663511,0.21938704663511, +0.296191506665679,0.296191506665679,0.296207518599266,0.29613463289303,0.295996291952834,0.29582358828664,0.295650828981657,0.295511435339437,0.295433372499337,0.295433372499337, +0.397942015905495,0.397942015905495,0.397923570673855,0.39779136024439,0.397576990798962,0.397321671076816,0.397070079861806,0.396866776496223,0.396751812955559,0.396751812955559, +0.5235057362623,0.5235057362623,0.523438496743688,0.523221795135886,0.522901574303623,0.522532880186188,0.522171760781815,0.521875739169423,0.521703600555177,0.521703600555177, +0.669514496555199,0.669514496555199,0.66938865929366,0.669052381384308,0.668588678360844,0.668071201253008,0.667563477463815,0.667132742131799,0.666864883422374,0.666864883422374, +0.830670452202733,0.830670452202733,0.830506560540231,0.829984840043302,0.829328890491989,0.82862747656008,0.82793395234375,0.827306318933536,0.826852307601794,0.826852307601794, + +00:39:39, +0.144235849522431,0.144235849522431,0.144291150151226,0.144292847931221,0.144253660389822,0.144190364860337,0.144121355703722,0.144063908890801,0.144031487794328,0.144031487794328, +0.144235849522431,0.144235849522431,0.144291150151226,0.144292847931221,0.144253660389822,0.144190364860337,0.144121355703722,0.144063908890801,0.144031487794328,0.144031487794328, +0.169376689459909,0.169376689459909,0.169426684066782,0.169417247906877,0.169362837478239,0.169282568744566,0.169197467132357,0.169127409308161,0.169088039784269,0.169088039784269, +0.219972447306434,0.219972447306434,0.220010255936368,0.219976952608453,0.219890510616155,0.219774770969798,0.219656058726574,0.219559568170382,0.219505562144233,0.219505562144233, +0.296308278735115,0.296308278735115,0.296324287014049,0.29625141829714,0.296113109428002,0.295940445674196,0.295767726232913,0.295628364747229,0.295550319922221,0.295550319922221, +0.398051243378665,0.398051243378665,0.39803279621373,0.397900615449449,0.397686298568292,0.397431043172735,0.397179516071979,0.396976264764789,0.396861330700166,0.396861330700166, +0.523599227225313,0.523599227225313,0.523531994505971,0.52331534293708,0.522995202488361,0.522626603709888,0.522265578825891,0.521969634917038,0.521797541367843,0.521797541367843, +0.669583348180767,0.669583348180767,0.669457532995859,0.669121334151174,0.668657745988414,0.668140399906659,0.667632805681761,0.667202180008379,0.666934388813421,0.666934388813421, +0.830707076028014,0.830707076028014,0.830543220985638,0.830021620757951,0.829365825704125,0.828664578996065,0.827971220615971,0.827343736387055,0.826889831379852,0.826889831379852, + +00:39:40, +0.14435159291782,0.14435159291782,0.144406900578127,0.144408605667451,0.144369425315867,0.144306136370945,0.144237132706,0.144179689854265,0.144147270840712,0.144147270840712, +0.14435159291782,0.14435159291782,0.144406900578127,0.144408605667451,0.144369425315867,0.144306136370945,0.144237132706,0.144179689854265,0.144147270840712,0.144147270840712, +0.169493850366983,0.169493850366983,0.169543848883064,0.169534420668479,0.169480020910726,0.169399763886746,0.169314673213735,0.169244623855251,0.169205258956229,0.169205258956229, +0.220090848774802,0.220090848774802,0.220128656777675,0.220095363927206,0.220008940445236,0.219893223342263,0.219774533321611,0.219678060501982,0.219624064329192,0.219624064329192, +0.296425023629953,0.296425023629953,0.296441028262861,0.29636817653803,0.296229899738439,0.296057275892991,0.295884596310428,0.295745266976763,0.29566724016412,0.29566724016412, +0.398160433199297,0.398160433199297,0.398141984114327,0.398009833010621,0.397795568676106,0.397540377582239,0.397288914569376,0.397085715298386,0.396970810696937,0.396970810696937, +0.523692677353219,0.523692677353219,0.523625451442966,0.523408849893441,0.523088789787948,0.522720286297139,0.522359355880976,0.52206348963162,0.521891441121632,0.521891441121632, +0.669652165118393,0.669652165118393,0.669526372007695,0.669190252186138,0.668726778817306,0.668209563682601,0.667702098942457,0.667271582859849,0.66700385913756,0.66700385913756, +0.830743679920204,0.830743679920204,0.83057986147905,0.830058381451621,0.829402740803699,0.828701661218614,0.828008468573978,0.827381133435835,0.826927334689395,0.826927334689395, + +00:39:41, +0.14446734282294,0.14446734282294,0.144522657499323,0.14452436989901,0.144485196750997,0.144421914411986,0.144352916261806,0.144295477390439,0.144263060470622,0.144263060470622, +0.14446734282294,0.14446734282294,0.144522657499323,0.14452436989901,0.144485196750997,0.144421914411986,0.144352916261806,0.144295477390439,0.144263060470622,0.144263060470622, +0.169611010421686,0.169611010421686,0.16966101283719,0.169651592570577,0.169597203495973,0.169516958199617,0.169431878484829,0.169361837607722,0.16932247734236,0.16932247734236, +0.220209236869162,0.220209236869162,0.22024704424444,0.220213761875593,0.220127356911828,0.220011662362212,0.219892994574158,0.219796539499107,0.219742553184091,0.219742553184091, +0.296541741365607,0.296541741365607,0.296557742361099,0.296484907631076,0.296346662899497,0.296174078958354,0.296001439229505,0.295862142043326,0.295784133240314,0.295784133240314, +0.398269585401002,0.398269585401002,0.398251134409234,0.398119012961483,0.397904801155976,0.397649674338902,0.397398275387574,0.397195128130596,0.397080252979459,0.397080252979459, +0.523786086688902,0.523786086688902,0.523718867597535,0.523502316047837,0.52318233624528,0.522813927990878,0.522453091990046,0.522157303356181,0.521985299859578,0.521985299859578, +0.66972094740753,0.66972094740753,0.669595176368617,0.669259135528688,0.668795776887075,0.668278692620471,0.667771357285623,0.667340950726001,0.667073294434629,0.667073294434629, +0.830780263902895,0.830780263902895,0.830616482044076,0.830095122148002,0.829439635814506,0.828738723251637,0.828045696241798,0.827418510104011,0.826964817554629,0.826964817554629, + +00:39:42, +0.144583099203952,0.144583099203952,0.14463842088099,0.144640140592062,0.144600974661348,0.144537698949555,0.144468706337185,0.144411271465335,0.144378856650048,0.144378856650048, +0.144583099203952,0.144583099203952,0.14463842088099,0.144640140592062,0.144600974661348,0.144537698949555,0.144468706337185,0.144411271465335,0.144378856650048,0.144378856650048, +0.169728169600355,0.169728169600355,0.169778175905508,0.169768763589505,0.169714385210282,0.16963415165944,0.169549082921855,0.169479050541756,0.169439694918825,0.169439694918825, +0.220327611583804,0.220327611583804,0.220365418330953,0.220332146447884,0.220245760010169,0.220130088023848,0.220011442478379,0.219915005155891,0.219861028703047,0.219861028703047, +0.296658431957473,0.296658431957473,0.296674429324144,0.29660161159164,0.296463398926516,0.2962908548856,0.296118255005439,0.295978989962195,0.295900999166068,0.295900999166068, +0.398378700017356,0.398378700017356,0.398360247131998,0.39822815533557,0.398013996041434,0.397758933476256,0.39750759856011,0.39730450329496,0.397189657581277,0.397189657581277, +0.52387945527519,0.52387945527519,0.52381224301248,0.523595741443078,0.523275841903194,0.522907528833982,0.522546787196021,0.522251076133676,0.522079117624659,0.522079117624659, +0.669789695087577,0.669789695087577,0.669663946118014,0.669327984218253,0.668864740237217,0.668347786759846,0.66784058075092,0.667410283646569,0.667142694744406,0.667142694744406, +0.830816827999642,0.830816827999642,0.830653082704291,0.830131842870746,0.829476510760302,0.828775765119009,0.828082903643422,0.827455866415677,0.827002279999727,0.827002279999727, + +00:39:43, +0.144698862027059,0.144698862027059,0.14475419068935,0.144755917712821,0.1447167590131,0.14465348994979,0.144584502898234,0.14452707204501,0.144494659345026,0.144494659345026, +0.144698862027059,0.144698862027059,0.14475419068935,0.144755917712821,0.1447167590131,0.14465348994979,0.144584502898234,0.14452707204501,0.144494659345026,0.144494659345026, +0.169845327879364,0.169845327879364,0.1698953380644,0.169885933701632,0.169831566029992,0.169751344242509,0.169666286501068,0.16959626263357,0.169556911661823,0.169556911661823, +0.220445972913034,0.220445972913034,0.220483779031515,0.220450517638362,0.220364149734514,0.220248500321385,0.220129877028452,0.220033457466482,0.219979490880194,0.219979490880194, +0.296775095420937,0.296775095420937,0.296791089167364,0.29671828843507,0.29658010783482,0.29640760369003,0.296235043653507,0.296095810748631,0.296017837956634,0.296017837956634, +0.398487777081889,0.398487777081889,0.398469322316127,0.398337260166375,0.398123153365969,0.397868155027794,0.397616884120479,0.397413840824979,0.397299024535895,0.397299024535895, +0.523972783154848,0.523972783154848,0.523905577730548,0.523689126121917,0.523369306804472,0.523001088869269,0.52264044154176,0.522344808007001,0.52217289445979,0.52217289445979, +0.669858408197875,0.669858408197875,0.669732681295222,0.669396798294207,0.668933668907174,0.668416846140249,0.667909769377953,0.667479581661229,0.667212060106612,0.667212060106612, +0.830853372233966,0.830853372233966,0.830689663483235,0.830168543643471,0.829513365664812,0.828812786844568,0.828120090802805,0.827493202394895,0.827039722048822,0.827039722048822, + +00:39:44, +0.144814631258514,0.144814631258514,0.144869966890672,0.144871701227545,0.144832549772484,0.144769287378878,0.144700305911093,0.144642879095568,0.144610468521641,0.144610468521641, +0.144814631258514,0.144814631258514,0.144869966890672,0.144871701227545,0.144832549772484,0.144769287378878,0.144700305911093,0.144642879095568,0.144610468521641,0.144610468521641, +0.169962485235121,0.169962485235121,0.170012499290286,0.170003102883365,0.169948745931477,0.169868535925159,0.169783489198755,0.169713473859418,0.169674127547587,0.169674127547587, +0.22056432085117,0.22056432085117,0.220602126340443,0.220568875441326,0.22048252607913,0.220366899249055,0.220248298218572,0.220151896425046,0.220097939709679,0.220097939709679, +0.29689173177137,0.29689173177137,0.296907721906113,0.296834938176701,0.296696789639723,0.296524325386932,0.296351805188976,0.296212604417883,0.296134649627253,0.296134649627253, +0.398596816628093,0.398596816628093,0.398578359995085,0.398446327487351,0.398232273163032,0.397977339026966,0.397726132102137,0.397523140754113,0.397408353876776,0.397408353876776, +0.524066070370589,0.524066070370589,0.523998871794425,0.523782470127047,0.523462730991835,0.523094608139499,0.522734055070065,0.522438499018993,0.522266630407833,0.522266630407833, +0.669927086777708,0.669927086777708,0.669801381939518,0.669465577795864,0.669002562936328,0.668485870801144,0.66797892320627,0.667548844809599,0.66728139056091,0.66728139056091, +0.830889896629351,0.830889896629351,0.830726224404412,0.830205224489759,0.829550200551722,0.828849788452119,0.828157257743866,0.827530518065689,0.827077143726014,0.827077143726014, + +00:39:45, +0.144930406864615,0.144930406864615,0.144985749451271,0.144987491102542,0.144948346905775,0.144885091203052,0.144816115341951,0.144758692583163,0.144726284146024,0.144726284146024, +0.144930406864615,0.144930406864615,0.144985749451271,0.144987491102542,0.144948346905775,0.144885091203052,0.144816115341951,0.144758692583163,0.144726284146024,0.144726284146024, +0.170079641644071,0.170079641644071,0.170129659559618,0.170120271111143,0.170065924891145,0.169985726683755,0.169900690991243,0.169830684195591,0.169791342552386,0.169791342552386, +0.220682655392546,0.220682655392546,0.220720460252066,0.220687219851089,0.220600889038298,0.220485284801103,0.220366706042947,0.220270322025759,0.220216375185663,0.220216375185663, +0.297008341024128,0.297008341024128,0.297024327555731,0.296951560831854,0.296813444356522,0.296641019991581,0.296468539627099,0.296329370985185,0.296251434193149,0.296251434193149, +0.398705818689417,0.398705818689417,0.398687360202296,0.39855535733191,0.398341355466029,0.398086485507183,0.397835342538498,0.39763240311578,0.397517645637341,0.397517645637341, +0.524159316965063,0.524159316965063,0.524092125246738,0.523875773501104,0.523556114507945,0.523188086687376,0.52282762782368,0.522532149212431,0.522360325511587,0.522360325511587, +0.669995730866303,0.669995730866303,0.669870048090123,0.669534322762486,0.669071422364007,0.668554860781939,0.66804804227536,0.667618073131242,0.667350686146908,0.667350686146908, +0.830926401209247,0.830926401209247,0.830762765491292,0.830241885433158,0.829587015444685,0.828886769965428,0.828194404490489,0.827567813452048,0.827114545055368,0.827114545055368, + +00:39:46, +0.145046188811709,0.145046188811709,0.145101538337511,0.145103287304163,0.145064150379295,0.145000901388592,0.144931931157044,0.144874512473991,0.144842106184353,0.144842106184353, +0.145046188811709,0.145046188811709,0.145101538337511,0.145103287304163,0.145064150379295,0.145000901388592,0.144931931157044,0.144874512473991,0.144842106184353,0.144842106184353, +0.170196797082694,0.170196797082694,0.170246818848888,0.170237438361443,0.170183102885443,0.170102916494702,0.17001789185489,0.169947893618412,0.169908556652527,0.169908556652527, +0.220800976531511,0.220800976531511,0.220838780760732,0.220805550861977,0.220719238606317,0.220603656971788,0.220485100495798,0.220388734262816,0.220334797302322,0.220334797302322, +0.297124923194555,0.297124923194555,0.297140906131547,0.297068156415836,0.296930072000502,0.296757687519238,0.296585246983113,0.29644611046576,0.296368191669535,0.296368191669535, +0.39881478329927,0.39881478329927,0.398796322971144,0.398664349733422,0.39845040030833,0.398195594501812,0.397944515462934,0.397741627943359,0.397626899850974,0.397626899850974, +0.524252522980864,0.524252522980864,0.524185338130059,0.523969036286665,0.523649457395409,0.523281524555543,0.522921159845289,0.522625758630038,0.522453979813795,0.522453979813795, +0.67006434050283,0.67006434050283,0.669938679786199,0.669603033233274,0.66914024722948,0.668623816121986,0.668117126624656,0.667687266665662,0.667419946904155,0.667419946904155, +0.83096288599707,0.83096288599707,0.830799286767308,0.830278526497181,0.829623810367317,0.828923731408228,0.828231531066523,0.827605088577925,0.827151926060909,0.827151926060909, + +00:39:47, +0.145161977066186,0.145161977066186,0.1452173335158,0.145219089798807,0.145179960159413,0.145116717901823,0.145047753322653,0.144990338734299,0.144957934602852,0.144957934602852, +0.145161977066186,0.145161977066186,0.1452173335158,0.145219089798807,0.145179960159413,0.145116717901823,0.145047753322653,0.144990338734299,0.144957934602852,0.144957934602852, +0.170313951527504,0.170313951527504,0.170363977134619,0.170354604610777,0.17030027989085,0.170220105334439,0.170135091766092,0.170065102104244,0.170025769824351,0.170025769824351, +0.220919284262425,0.220919284262425,0.220957087860798,0.220923868468332,0.220837574777497,0.220722015755385,0.220603481571364,0.220507133130424,0.220453206053848,0.220453206053848, +0.297241478297982,0.297241478297982,0.297257457648873,0.297184724943941,0.297046672586935,0.296874327985151,0.296701927272244,0.296562822874816,0.296484922071611,0.296484922071611, +0.39892371049102,0.39892371049102,0.398905248334972,0.398773304725219,0.398559407723259,0.398304666044183,0.398053650908778,0.397850815270187,0.397736116551013,0.397736116551013, +0.524345688460527,0.524345688460527,0.524278510486899,0.52406225852625,0.523742759696774,0.523374921786586,0.523014651177522,0.522719327314475,0.522547593357144,0.522547593357144, +0.670132915726404,0.670132915726404,0.670007277066856,0.669671709247374,0.669209037571959,0.668692736860577,0.668186176293536,0.667756425452308,0.667489172872144,0.667489172872144, +0.8309993510162,0.8309993510162,0.83083578825586,0.830315147705304,0.8296605853432,0.828960672804215,0.82826863749578,0.827642343467236,0.827189286766631,0.827189286766631, + +00:39:48, +0.145277771594485,0.145277771594485,0.145333134952593,0.145334898552921,0.145295776212545,0.14523254070912,0.145163581805106,0.145106171330378,0.145073769367794,0.145073769367794, +0.145277771594485,0.145277771594485,0.145333134952593,0.145334898552921,0.145295776212545,0.14523254070912,0.145163581805106,0.145106171330378,0.145073769367794,0.145073769367794, +0.170431104955053,0.170431104955053,0.170481134393373,0.170471769835692,0.170417455883883,0.170337293179439,0.170252290701282,0.170182309629482,0.170142982044235,0.170142982044235, +0.221037578579664,0.221037578579664,0.221075381546638,0.221042172664508,0.220955897546162,0.220840361146181,0.220721849263895,0.220625518622803,0.220571601434447,0.220571601434447, +0.297358006349724,0.297358006349724,0.297373982123009,0.29730126643145,0.297163246131079,0.296990941404553,0.296818580509706,0.296679508227548,0.296601625414562,0.296601625414562, +0.399032600297993,0.399032600297993,0.399014136327079,0.398882222340588,0.398668377744104,0.398413700167582,0.398162748909323,0.397959965129561,0.39784529577076,0.39784529577076, +0.52443881344653,0.52443881344653,0.524371642359714,0.524155440262322,0.52383602145453,0.523468278423034,0.523108101862947,0.522812855308349,0.522641166184258,0.522641166184258, +0.670201456576083,0.670201456576083,0.670075839971143,0.669740350843876,0.669277793430603,0.66876162303695,0.66825519132132,0.66782554953057,0.667558364090311,0.667558364090311, +0.831035796289981,0.831035796289981,0.830872269980313,0.830351749080969,0.829697340395881,0.828997594177052,0.828305723802037,0.827679578143865,0.827226627196488,0.827226627196488, + +00:39:49, +0.145393572363091,0.145393572363091,0.145448942614392,0.145450713532996,0.145411598505152,0.145348369776901,0.145279416570779,0.145222010228566,0.145189610445495,0.145189610445495, +0.145393572363091,0.145393572363091,0.145448942614392,0.145450713532996,0.145411598505152,0.145348369776901,0.145279416570779,0.145222010228566,0.145189610445495,0.145189610445495, +0.170548257341927,0.170548257341927,0.170598290601746,0.170588934012771,0.170534630841093,0.170454480006213,0.170369488636927,0.170299516170559,0.170260193288591,0.170260193288591, +0.221155859477621,0.221155859477621,0.22119366181264,0.221160463444876,0.221074206906653,0.220958693138479,0.220840203567657,0.220743890734192,0.220689983438338,0.220689983438338, +0.297474507365084,0.297474507365084,0.29749047956924,0.297417780893628,0.297279792648178,0.297107527792667,0.296935206710695,0.296796166539137,0.296718301713561,0.296718301713561, +0.399141452753475,0.399141452753475,0.399122986980728,0.398991102612778,0.398777310404108,0.398522696905257,0.398271809497818,0.398069077554736,0.397954437543473,0.397954437543473, +0.524531897981293,0.524531897981293,0.5244647337909,0.524248581537282,0.523929242711107,0.523561594507358,0.523201511944075,0.522906342654208,0.522734698337709,0.522734698337709, +0.670269963090866,0.670269963090866,0.670144368538056,0.669808958061814,0.669346514844511,0.668830474690287,0.668324171747269,0.667894638939783,0.667627520598033,0.667627520598033, +0.831072221841726,0.831072221841726,0.830908731963996,0.830388330647585,0.82973407554887,0.829034495550365,0.828342790009035,0.827716792631656,0.827263947374401,0.827263947374401, + +00:39:50, +0.145509379338536,0.145509379338536,0.145564756467746,0.145566534705572,0.145527427003743,0.145464205071633,0.145395257586093,0.14533785539525,0.145305457802321,0.145305457802321, +0.145509379338536,0.145509379338536,0.145564756467746,0.145566534705572,0.145527427003743,0.145464205071633,0.145395257586093,0.14533785539525,0.145305457802321,0.145305457802321, +0.170665408664748,0.170665408664748,0.170715445736368,0.170706097118632,0.170651804739067,0.170571665791307,0.170486685549528,0.170416721703942,0.170377403533868,0.170377403533868, +0.221274126950697,0.221274126950697,0.221311928653205,0.221278740803819,0.221192502853323,0.221077011726596,0.220958544476931,0.22086224945884,0.220808352059755,0.220808352059755, +0.29759098135935,0.29759098135935,0.297606950002841,0.297534268345729,0.297396312153462,0.297224087164698,0.297051805890398,0.296912797824753,0.296834950983767,0.296834950983767, +0.399250267890712,0.399250267890712,0.399231800329137,0.399099945574997,0.398886205736476,0.398631656290413,0.398380832707475,0.398178152578928,0.398063541902372,0.398063541902372, +0.524624942107178,0.524624942107178,0.524557784822797,0.524341682393479,0.524022423508882,0.523654870081969,0.523294881463362,0.52299978939454,0.522828189860006,0.522828189860006, +0.6703384353097,0.6703384353097,0.670212862806532,0.669877530940163,0.669415201852727,0.668899291859711,0.668393117610591,0.667963693719224,0.667696642434635,0.667696642434635, +0.831108627694709,0.831108627694709,0.830945174230203,0.830424892428522,0.829770790825644,0.829071376947744,0.828379836140482,0.827753986954421,0.827301247324255,0.827301247324255, + +00:39:51, +0.145625192487397,0.145625192487397,0.145680576479248,0.145682362037232,0.145643261674872,0.145580046559828,0.145511104817517,0.145453706796861,0.145421311404684,0.145421311404684, +0.145625192487397,0.145625192487397,0.145680576479248,0.145682362037232,0.145643261674872,0.145580046559828,0.145511104817517,0.145453706796861,0.145421311404684,0.145421311404684, +0.170782558900171,0.170782558900171,0.170832599773907,0.170823259129928,0.170768977554427,0.1706888505113,0.170603881415624,0.170533926206135,0.170494612756549,0.170494612756549, +0.221392380993313,0.221392380993313,0.22143018206275,0.221397004735735,0.22131078538054,0.221195316904864,0.22107687198601,0.220980594791012,0.220926707292948,0.220926707292948, +0.297707428347799,0.297707428347799,0.297723393439068,0.297650728802992,0.29751280466215,0.297340619535841,0.297168378063986,0.297029402099549,0.296951573240326,0.296951573240326, +0.399359045742907,0.399359045742907,0.399340576405486,0.39920875126041,0.398995063774371,0.398740578356216,0.398489818571462,0.398287190235311,0.398172608880634,0.398172608880634, +0.524717945866489,0.524717945866489,0.524650795497685,0.524434742873201,0.524115563890169,0.523748105189224,0.523388210463204,0.523093195571777,0.522921640793604,0.522921640793604, +0.670406873271472,0.670406873271472,0.670281322815454,0.669946069517844,0.669483854494237,0.668968074584291,0.668462028950435,0.668032713908115,0.667765729639381,0.667765729639381, +0.831145013872171,0.831145013872171,0.830981596802196,0.830461434447119,0.829807486249644,0.829108238392747,0.828416862220049,0.827791161135935,0.827338527069899,0.827338527069899, + +00:39:52, +0.145741011776298,0.145741011776298,0.145796402615541,0.145798195494609,0.145759102485142,0.145695894208046,0.145626958231565,0.145569564399877,0.145537171219039,0.145537171219039, +0.145741011776298,0.145741011776298,0.145796402615541,0.145798195494609,0.145759102485142,0.145695894208046,0.145626958231565,0.145569564399877,0.145537171219039,0.145537171219039, +0.17089970802489,0.17089970802489,0.170949752691064,0.170940420023348,0.170886149263831,0.170806034142809,0.170721076211789,0.170651129653676,0.170611820933154,0.170611820933154, +0.221510621599901,0.221510621599901,0.221548422035704,0.221515255235036,0.221429054482686,0.221313608667627,0.221195186089205,0.221098926724989,0.22104504913218,0.22104504913218, +0.297823848345691,0.297823848345691,0.297839809893168,0.297767162280643,0.297629270189444,0.297457124921275,0.297284923246619,0.297145979378669,0.29706816849837,0.29706816849837, +0.399467786343224,0.399467786343224,0.399449315242913,0.399317519702146,0.399103884550917,0.398849463135791,0.39859876712291,0.39839619055702,0.398281638511398,0.398281638511398, +0.524810909301473,0.524810909301473,0.524743765857788,0.524527763018678,0.524208663897227,0.52384129987142,0.523481498985939,0.523186561228296,0.523015051180899,0.523015051180899, +0.670475277015016,0.670475277015016,0.670349748603648,0.670014573833723,0.669552472807973,0.669036822903037,0.668530905805895,0.668101699545619,0.667834782251479,0.667834782251479, +0.831181380397319,0.831181380397319,0.831017999703198,0.830497956726678,0.829844161844277,0.829145079908893,0.82845386827137,0.827828315199937,0.827375786635146,0.827375786635146, + +00:39:53, +0.14585683717191,0.14585683717191,0.14591223484331,0.14591403504438,0.145874949401198,0.145811747982891,0.145742817794799,0.145685428170822,0.145653037211893,0.145653037211893, +0.14585683717191,0.14585683717191,0.14591223484331,0.14591403504438,0.145874949401198,0.145811747982891,0.145742817794799,0.145685428170822,0.145653037211893,0.145653037211893, +0.171016856015631,0.171016856015631,0.171066904464575,0.171057579775614,0.171003319843972,0.170923216662486,0.170838269914632,0.170768332023139,0.170729028040237,0.170729028040237, +0.221628848764908,0.221628848764908,0.221666648566511,0.221633492296148,0.221547310154157,0.221431887009245,0.221313486780838,0.221217245255064,0.221163377571728,0.221163377571728, +0.297940241368275,0.297940241368275,0.297956199380372,0.297883568793895,0.297745708750536,0.297573603336169,0.29740144145344,0.29726252967724,0.29718473677302,0.29718473677302, +0.399576489724786,0.399576489724786,0.399558016874515,0.399426250933288,0.399212668099196,0.398958310662221,0.398707678394907,0.398505153577149,0.39839063082776,0.39839063082776, +0.524903832454318,0.524903832454318,0.524836695945274,0.524620742872084,0.524301723572259,0.523934454170797,0.523574747073848,0.523279886406411,0.523108421064229,0.523108421064229, +0.670543646579107,0.670543646579107,0.670418140209884,0.670083043926606,0.669621056832811,0.669105536854906,0.668599748216009,0.668170650670844,0.667903800310084,0.667903800310084, +0.831217727293325,0.831217727293325,0.831054382956402,0.830534459290468,0.829880817632915,0.829181901519669,0.828490854318048,0.827865449170132,0.827413026043775,0.827413026043775, + +00:39:54, +0.145972668640948,0.145972668640948,0.146028073129289,0.146029880653269,0.145990802389736,0.145927607851015,0.145858683473825,0.145801298076268,0.145768909349796,0.145768909349796, +0.145972668640948,0.145972668640948,0.146028073129289,0.146029880653269,0.145990802389736,0.145927607851015,0.145858683473825,0.145801298076268,0.145768909349796,0.145768909349796, +0.171134002849156,0.171134002849156,0.171184055071214,0.171174738363487,0.171120489271577,0.171040398047017,0.170955462500795,0.170885533291135,0.170846234054388,0.170846234054388, +0.221747062482794,0.221747062482794,0.22178486164963,0.221751715913511,0.221665552389364,0.221550151924093,0.221431774055246,0.221335550375545,0.221281692605884,0.221281692605884, +0.298056607430785,0.298056607430785,0.298072561915898,0.297999948357946,0.297862120360601,0.297690054795675,0.297517932699583,0.297379053010377,0.297301278079381,0.297301278079381, +0.399685155920675,0.399685155920675,0.39966668133335,0.399534944986882,0.399321414452248,0.399067120968551,0.3988165524205,0.39861407932875,0.398499585862778,0.398499585862778, +0.524996715367158,0.524996715367158,0.524929585802251,0.524713682475537,0.524394742957408,0.524027568129538,0.523667954769156,0.523373171148383,0.523201750485876,0.523201750485876, +0.670611982002467,0.670611982002467,0.670486497672876,0.670151479835247,0.669689606607569,0.669174216478797,0.668668556219757,0.668239567322844,0.66797278385429,0.66797278385429, +0.831254054583326,0.831254054583326,0.831090746584963,0.830570942161721,0.829917453638893,0.829218703248526,0.828527820383647,0.82790256307019,0.827450245319529,0.827450245319529, + +00:39:55, +0.146088506150176,0.146088506150176,0.146143917440258,0.146145732288045,0.146106661417494,0.146043473779116,0.145974555235297,0.145917174082833,0.145884787599345,0.145884787599345, +0.146088506150176,0.146088506150176,0.146143917440258,0.146145732288045,0.146106661417494,0.146043473779116,0.145974555235297,0.145917174082833,0.145884787599345,0.145884787599345, +0.171251148502264,0.171251148502264,0.171301204487786,0.171291895763761,0.171237657523409,0.171157578273124,0.17107265394696,0.171002733434307,0.170963438952233,0.170963438952233, +0.221865262748034,0.221865262748034,0.221903061279531,0.221869926081579,0.221783781182731,0.221668403406557,0.221550047906781,0.221453842080755,0.221399994228956,0.221399994228956, +0.298172946548441,0.298172946548441,0.298188897514951,0.29811630098798,0.297978505034802,0.297806479314933,0.297634397000165,0.297495549393182,0.297417792432546,0.297417792432546, +0.399793784963932,0.399793784963932,0.399775308652434,0.399643601895932,0.399430123643077,0.399175894087783,0.398925389232699,0.398722967844838,0.398608503649468,0.398608503649468, +0.525089558082066,0.525089558082066,0.52502243547077,0.524806581871094,0.524487722094761,0.524120641789768,0.523761122114029,0.523466415496414,0.523295039488062,0.523295039488062, +0.67068028332376,0.67068028332376,0.670554821031282,0.670219881598343,0.66975812217101,0.669242861813553,0.668737329856065,0.668308449540613,0.668041732923138,0.668041732923138, +0.831290362290424,0.831290362290424,0.831127090612004,0.830607405363637,0.829954069885514,0.82925548511888,0.828564766491698,0.827939656923743,0.827487444486115,0.827487444486115, + +00:39:56, +0.146204349666403,0.146204349666403,0.146259767743042,0.146261589915524,0.146222526451259,0.146159345733938,0.146090433045916,0.146033056157179,0.146000671927182,0.146000671927182, +0.146204349666403,0.146204349666403,0.146259767743042,0.146261589915524,0.146222526451259,0.146159345733938,0.146090433045916,0.146033056157179,0.146000671927182,0.146000671927182, +0.171368292951786,0.171368292951786,0.171418352691135,0.171409051953263,0.171354824576267,0.171274757317564,0.17118984422984,0.171119932429335,0.171080642710432,0.171080642710432, +0.221983449555116,0.221983449555116,0.222021247450702,0.221988122794821,0.221901996528695,0.22178664145104,0.221668308329809,0.22157212036503,0.221518282435262,0.221518282435262, +0.298289258736451,0.298289258736451,0.29830520619272,0.298232626699171,0.298094862788291,0.29792287690907,0.29775083437029,0.297612018840743,0.297534279847594,0.297534279847594, +0.399902376887559,0.399902376887559,0.399883898864742,0.399752221693402,0.399538795704641,0.399284630052881,0.39903418886447,0.398831819158383,0.398717384220807,0.398717384220807, +0.52518236064106,0.52518236064106,0.525115244992826,0.524899441100757,0.524580661026348,0.524213675193556,0.523854249150577,0.52355961949265,0.523388288112955,0.523388288112955, +0.670748550581594,0.670748550581594,0.670623110323704,0.670288249254533,0.669826603561841,0.669311472897961,0.6688060691638,0.668377297363091,0.668110647555612,0.668110647555612, +0.831326650437689,0.831326650437689,0.831163415060611,0.83064384891938,0.829990666396046,0.829292247154112,0.828601692665696,0.827976730754392,0.827524623567206,0.827524623567206, + +00:39:57, +0.146320199156483,0.146320199156483,0.146375624004514,0.14637745350257,0.146338397457863,0.146275223682271,0.146206316872427,0.146148944266018,0.146116562299999,0.146116562299999, +0.146320199156483,0.146320199156483,0.146375624004514,0.14637745350257,0.146338397457863,0.146275223682271,0.146206316872427,0.146148944266018,0.146116562299999,0.146116562299999, +0.17148543617459,0.17148543617459,0.171535499658137,0.171526206908858,0.171471990406983,0.17139193515713,0.171307033326185,0.171237130252936,0.171197845305682,0.171197845305682, +0.222101622898544,0.222101622898544,0.222139420157642,0.222106306047718,0.222020198421711,0.221904866051958,0.22178655531871,0.221690385222722,0.221636557219139,0.221636557219139, +0.298405544010009,0.298405544010009,0.298421487964384,0.298348925506675,0.298211193636202,0.298039247593199,0.297867244825052,0.297728461368136,0.297650740339592,0.297650740339592, +0.400010931724516,0.400010931724516,0.399992452003211,0.399860804412216,0.399647430669862,0.399393328896766,0.399142951348741,0.39894063330232,0.398826227609729,0.398826227609729, +0.5252751230861,0.5252751230861,0.525208014410358,0.524992260206471,0.52467355979414,0.524306668382912,0.523947335920851,0.523652783179176,0.523481496402663,0.523481496402663, +0.670816783814524,0.670816783814524,0.67069136558869,0.670356582842404,0.669895050818714,0.669380049770752,0.668874774181777,0.668446110829161,0.66817952779064,0.66817952779064, +0.831362919048154,0.831362919048154,0.831199719953837,0.830680272852079,0.830027243193721,0.829328989377568,0.828638598929103,0.8280137845857,0.827561782586438,0.827561782586438, + +00:39:58, +0.146436054587317,0.146436054587317,0.146491486191589,0.146493323016089,0.146454274404185,0.146391107590952,0.146322206681623,0.146264838376105,0.14623245868453,0.14623245868453, +0.146436054587317,0.146436054587317,0.146491486191589,0.146493323016089,0.146454274404185,0.146391107590952,0.146322206681623,0.146264838376105,0.14623245868453,0.14623245868453, +0.171602578147578,0.171602578147578,0.171652645365705,0.171643360607446,0.171589154992427,0.171509111768647,0.17142422121278,0.17135432688186,0.171315046714714,0.171315046714714, +0.222219782772833,0.222219782772833,0.222257579394865,0.222224475834766,0.222138386856243,0.222023077203741,0.221904788867877,0.221808636648195,0.221754818574935,0.221754818574935, +0.298521802384293,0.298521802384293,0.298537742845105,0.298465197425637,0.298327497593658,0.298155591382419,0.297983628379528,0.297844876990423,0.297767173923592,0.297767173923592, +0.400119449507723,0.400119449507723,0.400100968100735,0.399969350085256,0.399756028571621,0.399501990652322,0.399251676718398,0.399049410309539,0.398935033849131,0.398935033849131, +0.525367845459088,0.525367845459088,0.525300743765244,0.525085039230125,0.524766418440054,0.52439962139979,0.524040382466846,0.523745906598025,0.52357466439924,0.52357466439924, +0.670884983061047,0.670884983061047,0.670759586864731,0.670424882400484,0.669963463980225,0.669448592470604,0.668943444948752,0.668514889977651,0.668248373667092,0.668248373667092, +0.83139916814482,0.83139916814482,0.831236005314703,0.830716677184831,0.830063800301737,0.829365711812561,0.828675485305344,0.828050818441196,0.827598921567414,0.827598921567414, + +00:39:59, +0.146551915925853,0.146551915925853,0.146607354271234,0.146609198423036,0.146570157257147,0.146506997426862,0.146438102440343,0.146380738454242,0.146348361047558,0.146348361047558, +0.146551915925853,0.146551915925853,0.146607354271234,0.146609198423036,0.146570157257147,0.146506997426862,0.146438102440343,0.146380738454242,0.146348361047558,0.146348361047558, +0.171719718847689,0.171719718847689,0.171769789790785,0.17176051302596,0.1717063183095,0.17162628712898,0.171541407866446,0.171471522292891,0.171432246914294,0.171432246914294, +0.222337929172515,0.222337929172515,0.222375725156899,0.222342632150476,0.222256561826772,0.222141274900834,0.22202300897172,0.221926874635828,0.221873066497013,0.221873066497013, +0.29863803387447,0.29863803387447,0.298653970850034,0.298581442471188,0.298443774675768,0.298271908291817,0.298099985048782,0.297961265722651,0.297883580614634,0.297883580614634, +0.40022793027006,0.40022793027006,0.400209447190169,0.400077858745366,0.399864589442755,0.399610615352391,0.399360365006288,0.399158150212893,0.399043802971869,0.399043802971869, +0.525460527801871,0.525460527801871,0.525393433099309,0.525177778213547,0.524859237005948,0.524492534286088,0.524133388830502,0.52383898979117,0.523667792144679,0.523667792144679, +0.670953148359604,0.670953148359604,0.670827774190263,0.670493147967248,0.670031843084914,0.669517101036134,0.669012081503426,0.668583634847333,0.668317185223785,0.668317185223785, +0.831435397750651,0.831435397750651,0.831272271166191,0.830753061940695,0.830100337743259,0.829402414482367,0.828712351817809,0.828087832344373,0.8276360405337,0.8276360405337, + +00:40:00, +0.146667783139082,0.146667783139082,0.146723228210455,0.146725079690411,0.146686045983721,0.14662289315693,0.14655400411547,0.146496644467278,0.146464269355911,0.146464269355911, +0.146667783139082,0.146667783139082,0.146723228210455,0.146725079690411,0.146686045983721,0.14662289315693,0.14655400411547,0.146496644467278,0.146464269355911,0.146464269355911, +0.171836858251893,0.171836858251893,0.17188693291036,0.171877664141368,0.171823480335142,0.171743461215024,0.171658593264037,0.171588716462851,0.171549445881223,0.171549445881223, +0.222456062092132,0.222456062092132,0.222493857438284,0.22246077498937,0.222374723327794,0.222259459137694,0.222141215624659,0.222045099180016,0.221991300979751,0.221991300979751, +0.298754238495692,0.298754238495692,0.298770171994307,0.298697660658446,0.298560024897629,0.298388198336466,0.298216314847868,0.298077627579856,0.297999960427744,0.297999960427744, +0.400336374044365,0.400336374044365,0.400317889304328,0.400186330425347,0.399973113316066,0.399719203029773,0.399469016245217,0.399266853045194,0.399152535010757,0.399152535010757, +0.525553170156237,0.525553170156237,0.525486082454319,0.525270477198514,0.524952015533623,0.524585407083646,0.524226355053698,0.523932032800527,0.52376087968092,0.52376087968092, +0.671021279748584,0.671021279748584,0.670895927603666,0.670561379581114,0.670100188171265,0.669585575505908,0.669080683884445,0.668652345476923,0.66838596249948,0.66838596249948, +0.83147160788858,0.83147160788858,0.831308517531252,0.830789427142699,0.830136855541414,0.82943909741023,0.828749198489855,0.828124826318691,0.827673139508829,0.827673139508829, + +00:40:01, +0.146783656194044,0.146783656194044,0.14683910797631,0.14684096678526,0.146801940550923,0.146738794748131,0.146669911673935,0.146612556382107,0.146580183576463,0.146580183576463, +0.146783656194044,0.146783656194044,0.14683910797631,0.14684096678526,0.146801940550923,0.146738794748131,0.146669911673935,0.146612556382107,0.146580183576463,0.146580183576463, +0.171953996337199,0.171953996337199,0.172004074701445,0.171994813930676,0.171940641046326,0.171860634003712,0.171775777382444,0.171705909368596,0.171666643592338,0.171666643592338, +0.222574181526244,0.222574181526244,0.222611976233576,0.222578904345988,0.222492871353815,0.222377629908794,0.222259408821132,0.222163310275166,0.222109522017541,0.222109522017541, +0.2988704162631,0.2988704162631,0.298886346293047,0.298813852002513,0.298676248274321,0.298504461531424,0.298332617791821,0.298193962577059,0.298116313377936,0.298116313377936, +0.400444780863438,0.400444780863438,0.400426294475984,0.400294765157962,0.400081600224312,0.39982775371723,0.399577630467953,0.399375518839212,0.399261229998571,0.399261229998571, +0.52564577256392,0.52564577256392,0.525578691871983,0.52536313622674,0.525044754064824,0.524678239834247,0.524319281178259,0.524025035667957,0.523853927049843,0.523853927049843, +0.671089377266317,0.671089377266317,0.670964047143266,0.670629577280446,0.670168499277709,0.669654015918436,0.6691492521304,0.66872102190508,0.668454705532879,0.668454705532879, +0.831507798581504,0.831507798581504,0.831344744432803,0.830825772813836,0.830173353719299,0.829475760619356,0.828786025344804,0.828161800387574,0.827710218516298,0.827710218516298, + +00:40:02, +0.146899535057823,0.146899535057823,0.146954993535899,0.146956859674674,0.146917840925814,0.146854702167484,0.146785825082714,0.14672847416567,0.146696103676135,0.146696103676135, +0.146899535057823,0.146899535057823,0.146954993535899,0.146956859674674,0.146917840925814,0.146854702167484,0.146785825082714,0.14672847416567,0.146696103676135,0.146696103676135, +0.172071133080647,0.172071133080647,0.172121215141093,0.17211196237092,0.172057800420058,0.171977805472011,0.17189296019859,0.171823100987016,0.171783840024511,0.171783840024511, +0.222692287469422,0.222692287469422,0.222730081537345,0.222697020214879,0.222611005899357,0.22249578720862,0.222377588555589,0.222281507915698,0.222227729604787,0.222227729604787, +0.298986567191817,0.298986567191817,0.299002493761362,0.29893001651848,0.298792444820915,0.298620697891738,0.298448893895668,0.29831027072927,0.298232639480209,0.298232639480209, +0.400553150760037,0.400553150760037,0.400534662737873,0.400403162975933,0.400190050200213,0.399936267447484,0.39968620770722,0.39948414762768,0.399369887968046,0.399369887968046, +0.525738335066593,0.525738335066593,0.525671261393955,0.525455755339887,0.52513745264124,0.524771032579617,0.524412167245954,0.524117998435262,0.523946934293273,0.523946934293273, +0.671157440951081,0.671157440951081,0.671032132847332,0.670697741103551,0.670236776442618,0.669722422312169,0.669217786279824,0.66878966417041,0.668523414362633,0.668523414362633, +0.831543969852286,0.831543969852286,0.831380951893725,0.830862098977063,0.830209832299973,0.82951240413292,0.828822832405942,0.828198754574411,0.827747277579568,0.827747277579568, + +00:40:03, +0.14701541969755,0.14701541969755,0.147070884856369,0.14707275832579,0.147033747075502,0.146970615382055,0.14690174430883,0.146844397784953,0.146812029621892,0.146812029621892, +0.14701541969755,0.14701541969755,0.147070884856369,0.14707275832579,0.147033747075502,0.146970615382055,0.14690174430883,0.146844397784953,0.146812029621892,0.146812029621892, +0.172188268459316,0.172188268459316,0.17223835420639,0.172229109439174,0.172174958433383,0.172094975596923,0.172010141689438,0.171940291295038,0.171901035154648,0.171901035154648, +0.222810379916251,0.222810379916251,0.222848173344173,0.22281512259061,0.222729126958958,0.222613931031671,0.222495754822493,0.222399692096049,0.22234592373591,0.22234592373591, +0.299102691296955,0.299102691296955,0.299118614414349,0.299046154221423,0.298908614552464,0.298736907432439,0.29856514317442,0.298426552051483,0.29834893874955,0.29834893874955, +0.40066148376688,0.40066148376688,0.400642994122687,0.400511523911942,0.400298463276447,0.400044744253217,0.399794747995706,0.39959273944329,0.399478508951877,0.399478508951877, +0.525830857705877,0.525830857705877,0.525763791061832,0.525548334579559,0.525230111304501,0.524863785361427,0.524505013298492,0.52421092114419,0.524039901452977,0.524039901452977, +0.671225470841095,0.671225470841095,0.67110018475408,0.670765871088683,0.670305019704313,0.669790794725508,0.669286286371198,0.668858272311462,0.668592089027333,0.668592089027333, +0.831580121723755,0.831580121723755,0.831417139936867,0.830898405655305,0.830246291306464,0.829549027974061,0.828859619696521,0.828235688902556,0.827784316722068,0.827784316722068, + +00:40:04, +0.147131310080399,0.147131310080399,0.147186781904912,0.147188662705792,0.14714965896714,0.147086534358956,0.147017669319351,0.146960327206988,0.146927961380747,0.146927961380747, +0.147131310080399,0.147131310080399,0.147186781904912,0.147188662705792,0.14714965896714,0.147086534358956,0.147017669319351,0.146960327206988,0.146927961380747,0.146927961380747, +0.172305402450314,0.172305402450314,0.172355491874456,0.172346255112547,0.172292115063376,0.172212144355485,0.17212732183198,0.172057480269621,0.172018228959691,0.172018228959691, +0.222928458861331,0.222928458861331,0.222966251648657,0.222933211467759,0.222847234527165,0.222732061372462,0.222613907616324,0.222517862810669,0.222464104405343,0.222464104405343, +0.299218788593613,0.299218788593613,0.299234708267089,0.299162265126407,0.29902475748401,0.298853090168549,0.298681365643074,0.298542806558681,0.298465211200931,0.298465211200931, +0.400769779916647,0.400769779916647,0.40075128866308,0.40061984799863,0.400406839485654,0.400153184167069,0.399903251366056,0.399701294318692,0.399587092982721,0.399587092982721, +0.525923340523334,0.525923340523334,0.525856280917152,0.525640873987303,0.525322730096183,0.52495649822129,0.524597819377529,0.524303803836429,0.524132828570668,0.524132828570668, +0.671293466974527,0.671293466974527,0.67116820290167,0.670833967274039,0.670373229101055,0.669859133196794,0.669354752442944,0.66892684636673,0.668660729565518,0.668660729565518, +0.831616254218708,0.831616254218708,0.831453308585043,0.830934692871452,0.830282730761762,0.829585632165884,0.82889638723976,0.828272603395331,0.827821335967189,0.827821335967189, + +00:40:05, +0.147247206173594,0.147247206173594,0.147302684648767,0.147304572781909,0.147265576567928,0.147202459065346,0.147133600081391,0.147076262398854,0.147043898919758,0.147043898919758, +0.147247206173594,0.147247206173594,0.147302684648767,0.147304572781909,0.147265576567928,0.147202459065346,0.147133600081391,0.147076262398854,0.147043898919758,0.147043898919758, +0.17242253503079,0.17242253503079,0.172472628122448,0.17246339936818,0.172409270287151,0.172329311724767,0.172244500603247,0.172174667887761,0.172135421416616,0.172135421416616, +0.223046524299275,0.223046524299275,0.223084316445407,0.223051286840918,0.222965328598544,0.222850178225521,0.222732046931573,0.22263602005402,0.222582271607534,0.222582271607534, +0.299334859096875,0.299334859096875,0.29935077533465,0.299278349248479,0.299140873630583,0.298969246115071,0.298797561316616,0.298659034265832,0.298581456849313,0.298581456849313, +0.400878039241974,0.400878039241974,0.400859546391666,0.4007281352686,0.400515178860432,0.400261587221642,0.400011717850877,0.399809812286499,0.399695640093191,0.399695640093191, +0.526015783560468,0.526015783560468,0.5259487310014,0.525733373604608,0.525415309057804,0.525049171200763,0.524690585524662,0.524396646553613,0.524225715688,0.524225715688, +0.671361429389487,0.671361429389487,0.671236187328206,0.670902029697763,0.670441404671055,0.669927437764316,0.669423184533432,0.668995386374652,0.668729336015671,0.668729336015671, +0.831652367359905,0.831652367359905,0.831489457861033,0.830970960648361,0.830319150688827,0.829622216731458,0.828933135058842,0.828309498076019,0.82785833533829,0.82785833533829, + +00:40:06, +0.1473631079444,0.1473631079444,0.147418593055218,0.147420488521415,0.14738149984511,0.147318389468426,0.147249536562109,0.147192203327674,0.147159842206028,0.147159842206028, +0.1473631079444,0.1473631079444,0.147418593055218,0.147420488521415,0.14738149984511,0.147318389468426,0.147249536562109,0.147192203327674,0.147159842206028,0.147159842206028, +0.172539666177923,0.172539666177923,0.172589762927554,0.17258054218325,0.172526424081853,0.172446477681877,0.172361677980303,0.172291854126489,0.172252612502435,0.172252612502435, +0.223164576224709,0.223164576224709,0.223202367729047,0.223169348704695,0.22308340916767,0.222968281585388,0.222850172762746,0.22275416382058,0.222700425336945,0.222700425336945, +0.299450902821812,0.299450902821812,0.299466815632088,0.299394406602677,0.299256963007195,0.299085375286998,0.298913730210017,0.29877523518789,0.298697675709643,0.298697675709643, +0.40098626177546,0.40098626177546,0.400967767341017,0.400836385754412,0.40062348143334,0.400369953449497,0.400120147482735,0.399918293379282,0.399804150315864,0.399804150315864, +0.52610818685873,0.52610818685873,0.526041141356003,0.525825833472911,0.525507848230825,0.525141804341346,0.524783311781432,0.524489449337319,0.524318562846571,0.524318562846571, +0.671429358124032,0.671429358124032,0.67130413807174,0.670970058397942,0.670509546452466,0.669995708466306,0.669491582680975,0.669063892373612,0.668797908416218,0.668797908416218, +0.831688461170074,0.831688461170074,0.831525587787584,0.831007209008853,0.830355551110582,0.829658781693821,0.828969863176916,0.828346372967873,0.827895314858694,0.827895314858694, + +00:40:07, +0.147479015360132,0.147479015360132,0.147534507091594,0.14753640989163,0.147497428765976,0.147434325535445,0.147365478728711,0.147308149960618,0.147275791206707,0.147275791206707, +0.147479015360132,0.147479015360132,0.147534507091594,0.14753640989163,0.147497428765976,0.147434325535445,0.147365478728711,0.147308149960618,0.147275791206707,0.147275791206707, +0.172656795868928,0.172656795868928,0.172706896266999,0.17269768353497,0.172643576424664,0.172563642203955,0.172478853940247,0.172409038962869,0.172369802194193,0.172369802194193, +0.223282614632273,0.223282614632273,0.223320405494214,0.22328739705371,0.223201476229135,0.223086371446619,0.222968285104363,0.222872294104842,0.222818565588051,0.222818565588051, +0.299566919783481,0.299566919783481,0.299582829174443,0.299510437204022,0.299373025628849,0.299201477699308,0.299029872338235,0.298891409339799,0.298813867796853,0.298813867796853, +0.401094447549664,0.401094447549664,0.401075951543668,0.400944599488589,0.400731747236898,0.400478282883156,0.400228540294157,0.400026737629574,0.399912623683276,0.399912623683276, +0.526200550459512,0.526200550459512,0.52613351202233,0.525918253633589,0.525600347656654,0.525234397684484,0.524875998189325,0.524582212229067,0.524411370087923,0.524411370087923, +0.671497253216164,0.671497253216164,0.671372055170265,0.67103805341261,0.670577654483387,0.670063945340943,0.669559946923832,0.669132364401938,0.668866446805531,0.668866446805531, +0.83172453567191,0.83172453567191,0.831561698387408,0.831043437975717,0.830391932049918,0.829695327075974,0.829006571617095,0.828383228094107,0.827932274551689,0.827932274551689, + +00:40:08, +0.147594928388147,0.147594928388147,0.147650426725269,0.147652336859918,0.147613363297863,0.147550267233699,0.147481426548448,0.147424102264901,0.14739174588899,0.14739174588899, +0.147594928388147,0.147594928388147,0.147650426725269,0.147652336859918,0.147613363297863,0.147550267233699,0.147481426548448,0.147424102264901,0.14739174588899,0.14739174588899, +0.172773924081055,0.172773924081055,0.172824028118044,0.172814823400585,0.1727607272928,0.172680805268176,0.172596028460212,0.172526222374001,0.172486990468971,0.172486990468971, +0.223400639516622,0.223400639516622,0.223438429735559,0.223405431882595,0.223319529777544,0.223204447803784,0.223086383950958,0.222990410901309,0.222936692355343,0.222936692355343, +0.299682909996927,0.299682909996927,0.299698815976743,0.299626441067524,0.299489061510532,0.299317553366969,0.299145987716214,0.299007556736487,0.298930033125864,0.298930033125864, +0.401202596597101,0.401202596597101,0.401184099032111,0.401052776503613,0.400839976303584,0.4005865755551,0.400336896317629,0.400135145069866,0.400021060227922,0.400021060227922, +0.526292874404151,0.526292874404151,0.526225843041697,0.526010634127963,0.525692807376639,0.525326951271565,0.524968644789769,0.524674935270323,0.524504137453542,0.524504137453542, +0.671565114703829,0.671565114703829,0.671439938661723,0.671106014779745,0.670645728801861,0.670132148426349,0.669628277300206,0.669200802497903,0.668934951221926,0.668934951221926, +0.831760590888072,0.831760590888072,0.831597789683184,0.831079647571708,0.830428293529689,0.829731852900886,0.829043260402461,0.828420063477906,0.82796921444053,0.82796921444053, + +00:40:09, +0.147710846995848,0.147710846995848,0.147766351923665,0.147768269393692,0.147729303408151,0.147666214530527,0.147597379988616,0.147540060207785,0.147507706220119,0.147507706220119, +0.147710846995848,0.147710846995848,0.147766351923665,0.147768269393692,0.147729303408151,0.147666214530527,0.147597379988616,0.147540060207785,0.147507706220119,0.147507706220119, +0.172891050791588,0.172891050791588,0.17294115845798,0.172931961757375,0.172877876663511,0.17279796685175,0.172713201517368,0.172643404337021,0.172604177303885,0.172604177303885, +0.223518650872423,0.223518650872423,0.223556440447748,0.223523453185998,0.223437569807515,0.223322510651465,0.223204469297078,0.223108514204502,0.223054805633322,0.223054805633322, +0.299798873477178,0.299798873477178,0.299814776054003,0.299742418208178,0.299605070667219,0.29943360230493,0.299262076358886,0.29912367739287,0.299046171711584,0.299046171711584, +0.401310708950252,0.401310708950252,0.4012922098388,0.401160916831924,0.400948168665838,0.400694831497771,0.400445215585598,0.400243515732612,0.400129459982258,0.400129459982258, +0.526385158733928,0.526385158733928,0.526318134455363,0.526102974997301,0.525785227432074,0.52541946514392,0.525061251624138,0.524767618502493,0.524596864984856,0.524596864984856, +0.671632942624921,0.671632942624921,0.671507788584001,0.671173942537271,0.670713769445879,0.670200317760594,0.669696573848245,0.669269206699726,0.669003421703667,0.669003421703667, +0.831796626841188,0.831796626841188,0.831633861697558,0.831115837819546,0.830464635572718,0.829768359191489,0.82907992955606,0.828456879142415,0.828006134548436,0.828006134548436, + +00:40:10, +0.147826771150686,0.147826771150686,0.147882282654246,0.147884207460407,0.147845249064268,0.147782167393314,0.147713339016557,0.147656023756575,0.147623672167379,0.147623672167379, +0.147826771150686,0.147826771150686,0.147882282654246,0.147884207460407,0.147845249064268,0.147782167393314,0.147713339016557,0.147656023756575,0.147623672167379,0.147623672167379, +0.173008175977844,0.173008175977844,0.173058287264137,0.173049098582657,0.172995024514082,0.172915126931922,0.172830373088918,0.172760584829096,0.172721362676085,0.172721362676085, +0.223636648694356,0.223636648694356,0.223674437625459,0.223641460958581,0.223555596313679,0.223440559984259,0.223322541137285,0.223226604008953,0.223172905416508,0.223172905416508, +0.299914810239252,0.299914810239252,0.299930709421223,0.299858368640966,0.299721053113869,0.299549624528131,0.299378138281169,0.299239771323849,0.299162283568904,0.299162283568904, +0.401418784641554,0.401418784641554,0.401400283996148,0.401269020505926,0.40105632435606,0.400803050743573,0.400553498130473,0.400351849650223,0.400237822978702,0.400237822978702, +0.526477403490067,0.526477403490067,0.526410386304528,0.52619527628281,0.525877607864197,0.525511939342826,0.525153818733748,0.524860261966929,0.52468955272324,0.52468955272324, +0.671700737017277,0.671700737017277,0.671575604974931,0.671241836723058,0.670781776453375,0.67026845338169,0.669764836606045,0.669337577045569,0.66907185828896,0.66907185828896, +0.831832643553851,0.831832643553851,0.831669914453142,0.831152008741919,0.830500958201793,0.829804845970685,0.829116579100904,0.828493675110748,0.828043034898592,0.828043034898592, + +00:40:11, +0.147942700820154,0.147942700820154,0.147998218884525,0.148000151027565,0.147961200233685,0.147898125789492,0.14782930359966,0.147771992878624,0.147739643698103,0.147739643698103, +0.147942700820154,0.147942700820154,0.147998218884525,0.148000151027565,0.147961200233685,0.147898125789492,0.14782930359966,0.147771992878624,0.147739643698103,0.147739643698103, +0.173125299617178,0.173125299617178,0.173175414513876,0.17316623385378,0.173112170821832,0.17303228548597,0.172947543152097,0.172877763827431,0.172838546562756,0.172838546562756, +0.223754632977116,0.223754632977116,0.223792421263382,0.223759455195017,0.223673609290682,0.223558595796775,0.223440599466153,0.223344680309208,0.22329099169943,0.22329099169943, +0.300030720298151,0.300030720298151,0.300046616093389,0.299974292380856,0.299837008865432,0.299665620051497,0.299494173497967,0.299355838544314,0.299278368712707,0.299278368712707, +0.401526823703404,0.401526823703404,0.40150832153653,0.401377087557981,0.401164443406608,0.400911233324865,0.400661743984619,0.400460146855073,0.40034614924963,0.40034614924963, +0.526569608713736,0.526569608713736,0.526502598630341,0.526287538025646,0.525969948714188,0.525604373909502,0.525246346159859,0.524952865704929,0.524782200710011,0.524782200710011, +0.67176849791868,0.67176849791868,0.671643387872288,0.671309697374921,0.670849749862229,0.670336555327597,0.669833065611643,0.669405913573542,0.669140261015957,0.669140261015957, +0.831868641048619,0.831868641048619,0.831705947972513,0.83118816036148,0.830537261439669,0.829841313261339,0.82915320905997,0.828530451405985,0.828079915514151,0.828079915514151, + +00:40:12, +0.148058635971793,0.148058635971793,0.148114160582056,0.148116100062713,0.14807715688392,0.148014089686537,0.147945273705356,0.147887967541329,0.147855620779669,0.147855620779669, +0.148058635971793,0.148058635971793,0.148114160582056,0.148116100062713,0.14807715688392,0.148014089686537,0.147945273705356,0.147887967541329,0.147855620779669,0.147855620779669, +0.173242421686976,0.173242421686976,0.173292540184594,0.173283367548126,0.173229315564115,0.173149442491209,0.17306471168418,0.172994941309263,0.172955728941117,0.172955728941117, +0.223872603715412,0.223872603715412,0.223910391356225,0.223877435889995,0.223791608733184,0.223676618083638,0.223558644278271,0.22346274309983,0.223409064476634,0.223409064476634, +0.300146603668866,0.300146603668866,0.300162496085475,0.300090189442803,0.299952937936839,0.29978158888994,0.299610182024172,0.29947187906914,0.299394427157859,0.299394427157859, +0.401634826168162,0.401634826168162,0.401616322492279,0.401485118020411,0.401272525849804,0.401019379273973,0.400769953180365,0.400568407379496,0.40045443882738,0.40045443882738, +0.526661774446048,0.526661774446048,0.526594771473891,0.526379760266906,0.526062250023173,0.525696768885111,0.525338833943676,0.525045429757731,0.524874808986429,0.524874808986429, +0.671836225366859,0.671836225366859,0.671711137313798,0.67137752453062,0.670917689710268,0.670404623636219,0.669901260903025,0.669474216321698,0.669208629922755,0.669208629922755, +0.83190461934802,0.83190461934802,0.831741962278216,0.831224292700848,0.830573545309066,0.829877761086283,0.829189819456203,0.82856720805117,0.828116776418227,0.828116776418227, + +00:40:13, +0.148174576573187,0.148174576573187,0.148230107714442,0.148232054533443,0.148193118982536,0.14813005905197,0.148061249301125,0.148003947712133,0.147971603379499,0.147971603379499, +0.148174576573187,0.148174576573187,0.148230107714442,0.148232054533443,0.148193118982536,0.14813005905197,0.148061249301125,0.148003947712133,0.147971603379499,0.147971603379499, +0.17335954216466,0.17335954216466,0.173409664253722,0.173400499643115,0.173346458718318,0.173266597924985,0.173181878662471,0.173112117251867,0.173072909788422,0.173072909788422, +0.223990560903964,0.223990560903964,0.224028347898705,0.223995403038215,0.223909594635856,0.223794626839485,0.223676675568243,0.223580792375391,0.223527123742679,0.223527123742679, +0.300262460366371,0.300262460366371,0.300278349412442,0.300206059841748,0.300068840343013,0.299897531058358,0.299726163874662,0.299587892913189,0.299510458919214,0.299510458919214, +0.401742792068147,0.401742792068147,0.401724286895689,0.401593111925499,0.401380571717928,0.401127488623178,0.40087812575,0.400676631255786,0.400562691744249,0.400562691744249, +0.52675390072806,0.52675390072806,0.526686904876213,0.526471943047632,0.526154511832222,0.525789124310763,0.525431282126349,0.525137954166519,0.524967377593701,0.524967377593701, +0.671903919399491,0.671903919399491,0.671778853337128,0.671445318227862,0.670985596035263,0.670472658345407,0.669969422518121,0.669542485328038,0.669276965047397,0.669276965047397, +0.831940578474547,0.831940578474547,0.831777957392763,0.831260405782611,0.830609809832672,0.829914189468315,0.829226410312512,0.828603945069315,0.828153617633905,0.828153617633905, + +00:40:14, +0.148290522591967,0.148290522591967,0.148346060249329,0.148348014407393,0.148309086497141,0.148246033853358,0.148177230354491,0.148119933358526,0.148087591465062,0.148087591465062, +0.148290522591967,0.148290522591967,0.148346060249329,0.148348014407393,0.148309086497141,0.148246033853358,0.148177230354491,0.148119933358526,0.148087591465062,0.148087591465062, +0.173476661027684,0.173476661027684,0.173526786698725,0.173517630116198,0.173463600261865,0.173383751764682,0.173299044064312,0.173229291632548,0.173190089081959,0.173190089081959, +0.224108504537508,0.224108504537508,0.224146290885554,0.224113356634393,0.224027566993386,0.223912622058967,0.223794693330682,0.223698828130481,0.223645169492138,0.223645169492138, +0.300378290405629,0.300378290405629,0.300394176089234,0.300321903592619,0.300184716098859,0.300013446571636,0.299842119064301,0.299703880091311,0.299626464011612,0.299626464011612, +0.401850721435637,0.401850721435637,0.401832214779016,0.401701069305488,0.401488581043219,0.401235561404725,0.400986261725773,0.400784818516197,0.400670908032497,0.400670908032497, +0.526845987600772,0.526845987600772,0.526778998878285,0.52656408640881,0.526246734182349,0.525881440227509,0.525523690748969,0.525230438972423,0.525059906572976,0.525059906572976, +0.671971580054195,0.671971580054195,0.671846535979893,0.6715130785043,0.671053468874931,0.670540659492956,0.670037550494806,0.669610720630505,0.669345266427871,0.669345266427871, +0.831976518450657,0.831976518450657,0.831813933338631,0.83129649962932,0.830646055033139,0.8299505984302,0.829262981651773,0.828640662483395,0.828190439184231,0.828190439184231, + +00:40:15, +0.148406473995808,0.148406473995808,0.148462018154409,0.148463979652244,0.148425059395387,0.148362014058313,0.148293216833021,0.148235924448039,0.148203585003872,0.148203585003872, +0.148406473995808,0.148406473995808,0.148462018154409,0.148463979652244,0.148425059395387,0.148362014058313,0.148293216833021,0.148235924448039,0.148203585003872,0.148203585003872, +0.173593778253539,0.173593778253539,0.173643907497101,0.173634758944862,0.17358074017221,0.173500903987714,0.173416207867078,0.173346464428648,0.173307266799052,0.173307266799052, +0.224226434610791,0.224226434610791,0.224264220311519,0.224231296673258,0.224145525800472,0.224030603736749,0.223912697560221,0.2238168503597,0.223763201719595,0.223763201719595, +0.300494093801588,0.300494093801588,0.300509976130786,0.300437720710331,0.300300565219271,0.300129335444647,0.299958047607941,0.299819840618341,0.299742442449882,0.299742442449882, +0.401958614302871,0.401958614302871,0.401940106174474,0.401808990192582,0.401596553857881,0.401343597650817,0.401094361139892,0.400892969192945,0.400779087724341,0.400779087724341, +0.52693803510513,0.52693803510513,0.526871053521032,0.526656190391372,0.526338917114512,0.525973716676347,0.525616059852576,0.525322884216515,0.525152395965348,0.525152395965348, +0.672039207368538,0.672039207368538,0.671914185279655,0.671580805397531,0.671121308266936,0.670608627116607,0.670105644870903,0.669678922266991,0.669413534102112,0.669413534102112, +0.832012439298779,0.832012439298779,0.831849890138265,0.831332574263497,0.830682280933088,0.829986987994669,0.829299533496828,0.828677360316353,0.828227241092221,0.828227241092221, + +00:40:16, +0.148522430752431,0.148522430752431,0.14857798139742,0.148579950235725,0.148541037644974,0.148477999634493,0.148409208704332,0.148351920948253,0.148319583963488,0.148319583963488, +0.148522430752431,0.148522430752431,0.14857798139742,0.148579950235725,0.148541037644974,0.148477999634493,0.148409208704332,0.148351920948253,0.148319583963488,0.148319583963488, +0.17371089381975,0.17371089381975,0.173761026626386,0.173751886106628,0.173697878426845,0.173618054571534,0.173533370048179,0.173463635617544,0.173424442917057,0.173424442917057, +0.224344351118576,0.224344351118576,0.224382136171358,0.22434922314955,0.224263471051828,0.224148571867509,0.2240306882515,0.223934859057664,0.223881220419652,0.223881220419652, +0.300609870569185,0.300609870569185,0.300625749552016,0.300553511209785,0.30041638771913,0.300245197692247,0.300073949520421,0.299935774509102,0.299858394248837,0.299858394248837, +0.402066470702049,0.402066470702049,0.402047961114238,0.401916874618946,0.401704490194074,0.40145159739362,0.401202424024528,0.401001083318204,0.400887230851961,0.400887230851961, +0.527030043282023,0.527030043282023,0.526963068845321,0.526748255036192,0.526431060669614,0.526065953698216,0.525708389478149,0.525415289939812,0.525244845811855,0.525244845811855, +0.672106801380033,0.672106801380033,0.67198180127392,0.6716484989451,0.671189114248887,0.670676561254049,0.670173705684177,0.669747090275331,0.669481768107998,0.669481768107998, +0.832048341041304,0.832048341041304,0.831885827814077,0.831368629707625,0.830718487555105,0.830023358184418,0.829336065870486,0.828714038591099,0.828264023380853,0.828264023380853, + +00:40:17, +0.148638392829602,0.148638392829602,0.148693949946142,0.148695926125608,0.148657021213645,0.1485939905496,0.148525205936081,0.148467922826791,0.148435588311514,0.148435588311514, +0.148638392829602,0.148638392829602,0.148693949946142,0.148695926125608,0.148657021213645,0.1485939905496,0.148525205936081,0.148467922826791,0.148435588311514,0.148435588311514, +0.173828007703873,0.173828007703873,0.173878144064145,0.173869011579049,0.173815015003295,0.173735203493625,0.173650530585058,0.173580805176645,0.173541617413365,0.173541617413365, +0.224462254055637,0.224462254055637,0.224500038459844,0.224467136058025,0.22438140274218,0.224266526445938,0.224148665399179,0.224052854219002,0.223999225586921,0.223999225586921, +0.300725620723339,0.300725620723339,0.30074149636783,0.300669275105867,0.300532183613301,0.300361033329282,0.300189824816563,0.300051681778403,0.299974319423278,0.299974319423278, +0.402174290665332,0.402174290665332,0.402155779630445,0.402024722616703,0.401812390083921,0.401559560665257,0.401310450411811,0.401109160924112,0.400995337447498,0.400995337447498, +0.527122012172285,0.527122012172285,0.527055044891964,0.526840280384091,0.526523164888503,0.526158151334004,0.525800679666617,0.525507656183274,0.525337256153481,0.525337256153481, +0.67217436212614,0.67217436212614,0.67204938400014,0.671716159184497,0.671256886858339,0.670744461942915,0.670241732972343,0.669815224693308,0.669549968483355,0.669549968483355, +0.832084223700593,0.832084223700593,0.831921746388445,0.83140466598416,0.830754674921742,0.830059709022112,0.829372578795521,0.828750697330507,0.828300786073076,0.828300786073076, + +00:40:18, +0.148754360195131,0.148754360195131,0.148809923768404,0.148811907289711,0.148773010069187,0.148709986771381,0.148641208495975,0.148583930051323,0.1485515980156,0.1485515980156, +0.148754360195131,0.148754360195131,0.148809923768404,0.148811907289711,0.148773010069187,0.148709986771381,0.148641208495975,0.148583930051323,0.1485515980156,0.1485515980156, +0.173945119883501,0.173945119883501,0.173995259787981,0.173986135339716,0.173932149879118,0.173852350731508,0.173767689455193,0.173697973083396,0.173658790265404,0.173658790265404, +0.224580143416763,0.224580143416763,0.224617927171761,0.224585035393451,0.224499320866269,0.224384467466742,0.224266628997926,0.224170835838357,0.224117217216031,0.224117217216031, +0.30084134427896,0.30084134427896,0.30085721659312,0.300785012413451,0.300647952916639,0.300476842370584,0.300305673511181,0.300167562441041,0.300090217987993,0.300090217987993, +0.40228207422484,0.40228207422484,0.402263561755191,0.402132534217939,0.401920253559505,0.401667487497816,0.401418440333833,0.401217202042765,0.401103407543052,0.401103407543052, +0.527213941816696,0.527213941816696,0.527146981701719,0.526932266475832,0.52661522981197,0.526250309624539,0.525892930458849,0.52559998298781,0.525429627031151,0.525429627031151, +0.672241889644263,0.672241889644263,0.672116933495716,0.671783786153159,0.671324626132792,0.670812329220784,0.670309726773059,0.669883325558649,0.669618135265953,0.669618135265953, +0.832120087298971,0.832120087298971,0.831957645883714,0.831440683115519,0.83079084305552,0.830096040530381,0.829409072294673,0.828787336557418,0.828337529191799,0.828337529191799, + +00:40:19, +0.148870332816873,0.148870332816873,0.148925902832077,0.148927893695896,0.148889004179436,0.14882598826763,0.148757216351761,0.148699942589563,0.14866761304344,0.14866761304344, +0.148870332816873,0.148870332816873,0.148925902832077,0.148927893695896,0.148889004179436,0.14882598826763,0.148757216351761,0.148699942589563,0.14866761304344,0.14866761304344, +0.17406223033626,0.17406223033626,0.174112373775529,0.17410325736625,0.174049283031908,0.173969496262734,0.173884846636097,0.173815139315277,0.173775961450632,0.173775961450632, +0.224698019196756,0.224698019196756,0.22473580230191,0.224702921150611,0.224617225418847,0.224502394924639,0.224384579042427,0.224288803910385,0.224235195301621,0.224235195301621, +0.300957041250942,0.300957041250942,0.300972910242765,0.300900723147398,0.300763695643982,0.30059262483097,0.300421495619073,0.300283416511797,0.300206089957757,0.300206089957757, +0.402389821412654,0.402389821412654,0.402371307520533,0.4022403094547,0.402028080652869,0.401775377923342,0.401526393822645,0.401325206706221,0.401211441170685,0.401211441170685, +0.527305832255977,0.527305832255977,0.527238879315286,0.527024213352126,0.526707255480751,0.526342428610597,0.525985141895661,0.525692270394268,0.525521958485739,0.525521958485739, +0.672309383971753,0.672309383971753,0.672184449797992,0.671851379888469,0.671392332109696,0.670880163125181,0.67037768712393,0.669951392909028,0.66968626849351,0.66968626849351, +0.832155931858734,0.832155931858734,0.831993526322195,0.83147668112409,0.830826991978924,0.83013235273182,0.829445546390651,0.828823956294639,0.828374252759903,0.828374252759903, + +00:40:20, +0.14898631066273,0.14898631066273,0.149041887105078,0.149043885312072,0.149005003512268,0.148941995006183,0.148873229471236,0.148815960409271,0.148783633362775,0.148783633362775, +0.14898631066273,0.14898631066273,0.149041887105078,0.149043885312072,0.149005003512268,0.148941995006183,0.148873229471236,0.148815960409271,0.148783633362775,0.148783633362775, +0.17417933903981,0.17417933903981,0.174229486004458,0.174220377636309,0.174166414439291,0.174086640064892,0.174002002105316,0.173932303849799,0.173893130946545,0.173893130946545, +0.224815881390429,0.224815881390429,0.224853663845102,0.224820793324299,0.224735116394682,0.224620308814361,0.224502515527377,0.224406758429756,0.224353159838347,0.224353159838347, +0.301072711654166,0.301072711654166,0.301088577331629,0.301016407322555,0.300879411810158,0.300708380725246,0.300537291155022,0.300399244005442,0.30032193534733,0.30032193534733, +0.402497532260816,0.402497532260816,0.402479016958488,0.402348048358992,0.402135871396017,0.401883231973843,0.40163431091026,0.401433174946499,0.40131943836242,0.40131943836242, +0.527397683530798,0.527397683530798,0.527330737773312,0.527116121053624,0.52679924193553,0.526434508332898,0.526077314017814,0.525784518443444,0.525614250558061,0.525614250558061, +0.672376845145909,0.672376845145909,0.672251932944261,0.671918940427755,0.671460004826444,0.670947963693579,0.670445614062507,0.670019426782065,0.669754368203688,0.669754368203688, +0.83219175740214,0.83219175740214,0.832029387726167,0.831512660032225,0.830863121714408,0.830168645648993,0.829482001106127,0.828860556564945,0.828410956800232,0.828410956800232, + +00:40:21, +0.149102293700646,0.149102293700646,0.149157876555369,0.149159882106189,0.149121008035607,0.149058006954923,0.148989247822239,0.148931983478252,0.14889965894139,0.14889965894139, +0.149102293700646,0.149102293700646,0.149157876555369,0.149159882106189,0.149121008035607,0.149058006954923,0.148989247822239,0.148931983478252,0.14889965894139,0.14889965894139, +0.174296445971846,0.174296445971846,0.174346596452472,0.174337496127584,0.174283544078927,0.174203782115602,0.174119155840429,0.17404946666451,0.17401029873067,0.17401029873067, +0.224933729992612,0.224933729992612,0.224971511796163,0.224938651909324,0.224852993788553,0.224738209130654,0.224620438447489,0.224524699391152,0.224471110820875,0.224471110820875, +0.301188355503498,0.301188355503498,0.301204217874565,0.301132064953755,0.300995101429978,0.300824110068203,0.300653060133801,0.300515044936732,0.300437754171461,0.300437754171461, +0.402605206801328,0.402605206801328,0.402586690101035,0.402455750962783,0.402243625820915,0.401991049681286,0.401742191628652,0.401541106795577,0.40142739915024,0.40142739915024, +0.527489495681771,0.527489495681771,0.527422557116388,0.527207989620927,0.52689118921693,0.526526548832105,0.526169446866012,0.52587672717608,0.525706503288878,0.525706503288878, +0.672444273203976,0.672444273203976,0.672319382971761,0.671986467808294,0.671527644320375,0.671015730963395,0.670513507626288,0.670087427215326,0.669822434434096,0.669822434434096, +0.832227563951418,0.832227563951418,0.832065230117878,0.831548619862246,0.83089923228439,0.830204919304429,0.829518436463743,0.828897137391075,0.828447641335595,0.828447641335595, + +00:40:22, +0.149218281898612,0.149218281898612,0.149273871150955,0.149275884046247,0.149237017717421,0.149174024081778,0.149105271372654,0.149048011764355,0.149015689747113,0.149015689747113, +0.149218281898612,0.149218281898612,0.149273871150955,0.149275884046247,0.149237017717421,0.149174024081778,0.149105271372654,0.149048011764355,0.149015689747113,0.149015689747113, +0.174413551110094,0.174413551110094,0.174463705097308,0.174454612817797,0.174400671928513,0.174320922392519,0.174236307819052,0.174166627736992,0.17412746478057,0.17412746478057, +0.225051564998146,0.225051564998146,0.225089346149932,0.225056496900507,0.224970857595253,0.224856095868275,0.224738347797486,0.22464262678927,0.224589048243888,0.224589048243888, +0.301303972813794,0.301303972813794,0.301319831886411,0.301247696055818,0.301110764518244,0.300939812874619,0.300768802570167,0.300630819320409,0.300553546444886,0.300553546444886, +0.402712845066153,0.402712845066153,0.402694326980113,0.402563417297999,0.402351343959488,0.402098831077601,0.401850036009754,0.401649002285397,0.401535323566089,0.401535323566089, +0.527581268749454,0.527581268749454,0.52751433738505,0.527299819094578,0.526983097365524,0.526618550148829,0.526261540480905,0.525968896632858,0.525798716718896,0.525798716718896, +0.672511668183143,0.672511668183143,0.672386799917677,0.672053962067307,0.671595250628777,0.671083464971994,0.670581367852716,0.670155394246323,0.66989046722229,0.66989046722229, +0.832263351528763,0.832263351528763,0.832101053519538,0.831584560636438,0.830935323711259,0.830241173720626,0.829554852486103,0.828933698795735,0.828484306388771,0.828484306388771, + +00:40:23, +0.149334275224662,0.149334275224662,0.149389870859888,0.149391891100285,0.149353032525724,0.149290046354719,0.149221300090412,0.149164045235475,0.149131725747821,0.149131725747821, +0.149334275224662,0.149334275224662,0.149389870859888,0.149391891100285,0.149353032525724,0.149290046354719,0.149221300090412,0.149164045235475,0.149131725747821,0.149131725747821, +0.174530654432317,0.174530654432317,0.174580811916736,0.174571727684709,0.174517797965777,0.174438060873334,0.174353458018833,0.174283787044858,0.174244629073843,0.174244629073843, +0.225169386401884,0.225169386401884,0.22520716690126,0.225174328292684,0.22508870780959,0.224973969021998,0.224856243572107,0.224760540618822,0.224706972102081,0.224706972102081, +0.301419563599893,0.301419563599893,0.301435419381991,0.30136330064355,0.301226401089739,0.301055489159258,0.300884518478867,0.300746567171204,0.300669312182324,0.300669312182324, +0.402820447087214,0.402820447087214,0.402801927627621,0.402671047396531,0.402459025843622,0.402206576194677,0.401957844085462,0.401756861447859,0.401643211641871,0.401643211641871, +0.527673002774349,0.527673002774349,0.52760607861978,0.527391609515065,0.527074966421828,0.526710512323623,0.526353594903088,0.526061026854411,0.525890890888767,0.525890890888767, +0.672579030120548,0.672579030120548,0.672454183819141,0.672121423241964,0.671662823788883,0.671151165756687,0.670649194779181,0.670223327912514,0.669958466605769,0.669958466605769, +0.832299120156336,0.832299120156336,0.83213685795333,0.831620482377057,0.830971396017367,0.830277408920046,0.829591249195783,0.828970240801598,0.828520951982503,0.828520951982503, + +00:40:24, +0.149450273646877,0.149450273646877,0.149505875650265,0.149507903236392,0.149469052428572,0.149406073741765,0.149337333943486,0.14928008385955,0.149247766911433,0.149247766911433, +0.149450273646877,0.149450273646877,0.149505875650265,0.149507903236392,0.149469052428572,0.149406073741765,0.149337333943486,0.14928008385955,0.149247766911433,0.149247766911433, +0.174647755916311,0.174647755916311,0.174697916888563,0.174688840706111,0.17463492216848,0.174555197535768,0.174470606417454,0.174400944565759,0.174361791588117,0.174361791588117, +0.225287194198696,0.225287194198696,0.225324974045012,0.225292146080701,0.225206544426382,0.225091828586607,0.224974125766102,0.22487844087453,0.224824882390161,0.224824882390161, +0.301535127876622,0.301535127876622,0.301550980376116,0.301478878731745,0.301342011159238,0.301171138936873,0.301000207874631,0.300862288503834,0.300785051398486,0.300785051398486, +0.402928012896397,0.402928012896397,0.402909492075419,0.402778641290226,0.402566671505165,0.402314285064364,0.402065615887633,0.401864684314825,0.401751063409454,0.401751063409454, +0.527764697796905,0.527764697796905,0.527697780861004,0.527483360922822,0.527166796426303,0.526802435396987,0.526445610173102,0.526153117881312,0.525983025839086,0.525983025839086, +0.672646359053276,0.672646359053276,0.672521534713231,0.672188851369379,0.671730363837872,0.671218833354731,0.67071698844302,0.670291228251304,0.670026432621982,0.670026432621982, +0.832334869856267,0.832334869856267,0.8321726434414,0.831656385106323,0.831007449225035,0.83031362492512,0.829627626615321,0.829006763431303,0.8285575781395,0.8285575781395, + +00:40:25, +0.14956627713338,0.14956627713338,0.149621885490225,0.149623920422698,0.149585077394067,0.149522106210975,0.149453372899895,0.149396127604566,0.149363813205913,0.149363813205913, +0.14956627713338,0.14956627713338,0.149621885490225,0.149623920422698,0.149585077394067,0.149522106210975,0.149453372899895,0.149396127604566,0.149363813205913,0.149363813205913, +0.174764855539903,0.174764855539903,0.174815019990626,0.17480595185983,0.17475204451442,0.174672332357579,0.174587752992632,0.174518100277378,0.17447895230106,0.17447895230106, +0.225404988383461,0.225404988383461,0.225442767576067,0.225409950259421,0.225324367440464,0.225209674556902,0.225091994374235,0.224996327551131,0.224942779102851,0.224942779102851, +0.301650665658794,0.301650665658794,0.301666514883584,0.301594430335182,0.3014575947415,0.3012867622222,0.301115870772177,0.300977983333001,0.300900764108066,0.300900764108066, +0.403035542525546,0.403035542525546,0.403017020355329,0.402886199010896,0.402674280975926,0.402421957718474,0.402173351448082,0.401972470918118,0.401858878900664,0.401858878900664, +0.527856353857513,0.527856353857513,0.527789444149092,0.527575073358228,0.527258587419355,0.526894319409365,0.52653758633143,0.526245169754081,0.526075121610396,0.526075121610396, +0.672713655018358,0.672713655018358,0.672588852636972,0.672256246486617,0.671797870812872,0.67128646780333,0.670784748881514,0.670359095300044,0.670094365308323,0.670094365308323, +0.832370600650651,0.832370600650651,0.832208410005863,0.831692268846425,0.831043483356549,0.830349821758243,0.829663984767224,0.829043266707456,0.82859418488244,0.82859418488244, + +00:40:26, +0.14968228565234,0.14968228565234,0.149737900347953,0.149739942627378,0.149701107390358,0.149638143730457,0.149569416927704,0.149512176438552,0.149479864599271,0.149479864599271, +0.14968228565234,0.14968228565234,0.149737900347953,0.149739942627378,0.149701107390358,0.149638143730457,0.149569416927704,0.149512176438552,0.149479864599271,0.149479864599271, +0.174881953280958,0.174881953280958,0.174932121200798,0.174923061123724,0.174869164981427,0.174789465316557,0.174704897722116,0.174635254157432,0.174596111190368,0.174596111190368, +0.225522768951074,0.225522768951074,0.225560547489315,0.225527740823717,0.22544217684668,0.225327506927693,0.225209849391284,0.225114200643375,0.225060662234886,0.225060662234886, +0.30176617696121,0.30176617696121,0.301782022919179,0.301709955468627,0.30157315185127,0.301402359029965,0.301231507186212,0.301093651673395,0.301016450325746,0.301016450325746, +0.403143036006467,0.403143036006467,0.403124512499134,0.402993720590311,0.402781854287673,0.40252959418878,0.402281050798589,0.402080221289522,0.401966658147289,0.401966658147289, +0.527947970996512,0.527947970996512,0.527881068524362,0.527666746861608,0.527350339441336,0.526986164401148,0.526629523418505,0.526337182513185,0.526167178243182,0.526167178243182, +0.672780918052771,0.672780918052771,0.672656137627337,0.672323608630684,0.671865344750955,0.671354069139635,0.670852476131895,0.670426929096033,0.670162264702133,0.670162264702133, +0.832406312561554,0.832406312561554,0.832244157668801,0.831728133619519,0.831079498434166,0.830385999441781,0.829700323673966,0.829079750652631,0.828630772233964,0.828630772233964, + +00:40:27, +0.149798299171971,0.149798299171971,0.14985392019168,0.149855969818655,0.149817142385635,0.149754186268361,0.149685465995022,0.14962823032958,0.149595921059562,0.149595921059562, +0.149798299171971,0.149798299171971,0.14985392019168,0.149855969818655,0.149817142385635,0.149754186268361,0.149685465995022,0.14962823032958,0.149595921059562,0.149595921059562, +0.174999049117372,0.174999049117372,0.175049220496984,0.175040168475687,0.174986283547364,0.174906596390527,0.174822040583691,0.174752406183672,0.174713268233774,0.174713268233774, +0.225640535896441,0.225640535896441,0.225678313779661,0.225645517768477,0.225559972639891,0.225445325693807,0.225327690812042,0.225232060146028,0.225178531781014,0.225178531781014, +0.301881661798654,0.301881661798654,0.301897504497672,0.301825454146833,0.30168868250328,0.30151792937488,0.301347117131427,0.301209293539695,0.301132110066195,0.301132110066195, +0.403250493370928,0.403250493370928,0.403231968538576,0.403101206060205,0.402889391472137,0.402637194507014,0.402388713970893,0.402187935460784,0.402074401181079,0.402074401181079, +0.528039549254186,0.528039549254186,0.527972654027075,0.52775838147323,0.527442052532544,0.52707797041267,0.5267214214747,0.526429156199033,0.526259195777876,0.526259195777876, +0.672848148193441,0.672848148193441,0.672723389721244,0.672390937838539,0.671932785689142,0.671421637400743,0.670920170231339,0.670494729676514,0.670230130840698,0.670230130840698, +0.832442005611005,0.832442005611005,0.832279886452262,0.831763979447728,0.831115494480105,0.830422157998063,0.829736643357986,0.829116215289365,0.828667340216682,0.828667340216682, + +00:40:28, +0.14991431766053,0.14991431766053,0.149969944989679,0.149972001964791,0.149933182348134,0.149870233792884,0.14980152007,0.149744289245769,0.149711982554883,0.149711982554883, +0.14991431766053,0.14991431766053,0.149969944989679,0.149972001964791,0.149933182348134,0.149870233792884,0.14980152007,0.149744289245769,0.149711982554883,0.149711982554883, +0.175116143027074,0.175116143027074,0.175166317857124,0.175157273893646,0.175103400190128,0.175023725557347,0.174939181555175,0.174869556333883,0.174830423409046,0.174830423409046, +0.225758289214483,0.225758289214483,0.225796066442023,0.225763281088602,0.225677754814969,0.225563130850081,0.22544551863131,0.225349906053864,0.225296387735997,0.225296387735997, +0.301997120185901,0.301997120185901,0.302012959633819,0.301940926384538,0.301804186712251,0.301633473271641,0.3014627006225,0.301324908946563,0.301247743344069,0.301247743344069, +0.403357914650656,0.403357914650656,0.403339388505359,0.403208655452269,0.402996892561008,0.402744758704872,0.402496340996693,0.402295613463608,0.402182108033743,0.402182108033743, +0.528131088670763,0.528131088670763,0.528064200697439,0.52784997723331,0.527533726733219,0.527169737484211,0.526813280540337,0.526521090851982,0.526351174254855,0.526351174254855, +0.67291534547724,0.67291534547724,0.672790608955561,0.672458234147083,0.6720001936644,0.6714891726237,0.670987831216967,0.670562497078679,0.670297963761253,0.670297963761253, +0.832477679821004,0.832477679821004,0.832315596378265,0.831799806353141,0.831151471516557,0.830458297449388,0.829772943841693,0.829152660640165,0.828703888853171,0.828703888853171, + +00:40:29, +0.15003034108632,0.15003034108632,0.150085974710269,0.150088039034097,0.150049227246135,0.149986286272265,0.149917579120838,0.149860353155284,0.149828049053379,0.149828049053379, +0.15003034108632,0.15003034108632,0.150085974710269,0.150088039034097,0.150049227246135,0.149986286272265,0.149917579120838,0.149860353155284,0.149828049053379,0.149828049053379, +0.17523323498803,0.17523323498803,0.17528341325919,0.175274377355562,0.175220514887651,0.175140852794908,0.175056320614418,0.174986704585882,0.174947576693982,0.174947576693982, +0.225876028900133,0.225876028900133,0.22591380547133,0.225881030779005,0.225795523366799,0.225680922391367,0.225563332843908,0.225467738361676,0.225414230094612,0.225414230094612, +0.30211255213771,0.30211255213771,0.302128388342364,0.302056372196469,0.301919664492887,0.301748990734935,0.301578257674097,0.301440497908649,0.30136335017401,0.30136335017401, +0.403465299877341,0.403465299877341,0.403446772431149,0.403316068798159,0.40310435758594,0.402852286814008,0.402603931907651,0.402403255329663,0.402289778736954,0.402289778736954, +0.528222589286416,0.528222589286416,0.528155708575607,0.527941534182007,0.527625362083551,0.527261465655998,0.526905100655683,0.526612986512332,0.526443113714441,0.526443113714441, +0.672982509940988,0.672982509940988,0.672857795367099,0.672525497593168,0.672067568713644,0.671556674845496,0.671055459125852,0.670630231339665,0.670365763500977,0.670365763500977, +0.832513335213516,0.832513335213516,0.832351287468793,0.831835614357817,0.831187429565677,0.83049441781802,0.829809225147459,0.829189086727503,0.828740418165972,0.828740418165972, + +00:40:30, +0.150146369417689,0.150146369417689,0.150202009321812,0.150204080994927,0.150165277047965,0.150102343674789,0.150033643115777,0.14997642202633,0.149944120523237,0.149944120523237, +0.150146369417689,0.150146369417689,0.150202009321812,0.150204080994927,0.150165277047965,0.150102343674789,0.150033643115777,0.14997642202633,0.149944120523237,0.149944120523237, +0.175350324978235,0.175350324978235,0.17540050668119,0.175391478839428,0.175337627617897,0.175257978081137,0.175173457739306,0.175103850917523,0.175064728066417,0.175064728066417, +0.225993754948335,0.225993754948335,0.226031530862527,0.225998766834612,0.22591327829028,0.225798700312529,0.225681133444666,0.225585557064265,0.225532058851645,0.225532058851645, +0.302227957668825,0.302227957668825,0.302243790638038,0.302171791597338,0.302035115859881,0.301864481779431,0.30169378830087,0.301556060440592,0.301478930570649,0.301478930570649, +0.403572649082631,0.403572649082631,0.403554120347571,0.403423446129489,0.403211786578546,0.402959778866041,0.402711486735391,0.402510861090577,0.402397413322344,0.402397413322344, +0.528314051141267,0.528314051141267,0.528247177701676,0.528033052359429,0.527716958623672,0.527353154968202,0.526996881860949,0.526704843220331,0.526535014196904,0.526535014196904, +0.673049641621449,0.673049641621449,0.672924948992622,0.672592728213591,0.672134910873735,0.67162414410307,0.671123053995008,0.670697932496559,0.670433530096998,0.670433530096998, +0.832548971810476,0.832548971810476,0.832386959745798,0.831871403483781,0.831223368649588,0.830530519126192,0.829845487297626,0.82922549357382,0.828776928177597,0.828776928177597, + +00:40:31, +0.150262402623026,0.150262402623026,0.150318048792716,0.150320127815678,0.150281331721991,0.150218405968785,0.150149712023104,0.15009249582716,0.15006019693269,0.15006019693269, +0.150262402623026,0.150262402623026,0.150318048792716,0.150320127815678,0.150281331721991,0.150218405968785,0.150149712023104,0.15009249582716,0.15006019693269,0.15006019693269, +0.175467412975721,0.175467412975721,0.175517598101164,0.175508578323272,0.175454738358865,0.175375101393992,0.175290592907758,0.175220995306692,0.175181877504219,0.175181877504219, +0.226111467354051,0.226111467354051,0.226149242610569,0.226116489250363,0.226031019580325,0.225916464608446,0.225798920428428,0.22570336215645,0.2256498740019,0.2256498740019, +0.302343336793981,0.302343336793981,0.302359166535558,0.302287184601844,0.302150540827912,0.30197994641979,0.301809292517458,0.301671596557015,0.3015944845486,0.3015944845486, +0.403679962298138,0.403679962298138,0.403661432286214,0.403530787477837,0.403319179570401,0.403067234892548,0.402819005511495,0.40261843077794,0.402505011821508,0.402505011821508, +0.528405474275379,0.528405474275379,0.528338608115692,0.528124531805626,0.527808516393662,0.527444805460939,0.527088624196292,0.52679666101617,0.526626875742455,0.526626875742455, +0.67311674055534,0.67311674055534,0.672992069868835,0.672659926045097,0.672202220181482,0.671691580433308,0.671190615861402,0.67076560058639,0.670501263586391,0.670501263586391, +0.832584589633784,0.832584589633784,0.8324226132312,0.831907173753024,0.831259288790382,0.830566601396102,0.829881730314503,0.829261881201521,0.82881341891052,0.82881341891052, + +00:40:32, +0.150378440670767,0.150378440670767,0.150434093091433,0.150436179464793,0.150397391236627,0.150334473122627,0.15026578581115,0.150208574526071,0.150176278250016,0.150176278250016, +0.150378440670767,0.150378440670767,0.150434093091433,0.150436179464793,0.150397391236627,0.150334473122627,0.15026578581115,0.150208574526071,0.150176278250016,0.150176278250016, +0.175584498958551,0.175584498958551,0.175634687497184,0.175625675785154,0.175571847088586,0.175492222711466,0.175407726097725,0.175338137731307,0.175299024985288,0.175299024985288, +0.226229166112251,0.226229166112251,0.226266940710425,0.226234198021211,0.226148747231856,0.226034215274008,0.22591669379005,0.225821153633061,0.22576767554019,0.22576767554019, +0.302458689527894,0.302458689527894,0.302474516049625,0.302402551224672,0.302265939411645,0.302095384670654,0.301924770338486,0.301787106272529,0.301710012122467,0.301710012122467, +0.403787239555435,0.403787239555435,0.403768708278624,0.40363809287474,0.403426536593039,0.403174654925068,0.402926488267509,0.402725964423304,0.402612574266,0.402612574266, +0.528496858728765,0.528496858728765,0.528429999857643,0.528215972560596,0.527900035433545,0.527536417174274,0.527180327701816,0.526888439939989,0.526718698391254,0.526718698391254, +0.67318380677932,0.67318380677932,0.673059158032396,0.672727091124378,0.672269496673641,0.671758983873043,0.671258144761943,0.67083323564614,0.670568964006176,0.670568964006176, +0.83262018870531,0.83262018870531,0.832458247946885,0.831942925187509,0.831295190010117,0.830602664649917,0.829917954220364,0.829298249632981,0.828849890387186,0.828849890387186, + +00:40:33, +0.150494483529392,0.150494483529392,0.150550142186458,0.150552235910758,0.150513455560332,0.150450545104731,0.150381864448292,0.150324658091405,0.150292364443536,0.150292364443536, +0.150494483529392,0.150494483529392,0.150550142186458,0.150552235910758,0.150513455560332,0.150450545104731,0.150381864448292,0.150324658091405,0.150292364443536,0.150292364443536, +0.175701582904824,0.175701582904824,0.175751774847357,0.17574277120317,0.175688953785124,0.175609342011584,0.175524857287195,0.175455278169323,0.175416170487561,0.175416170487561, +0.22634685121792,0.22634685121792,0.226384625157079,0.22635189314212,0.226266461239813,0.226151952304118,0.226034453524404,0.225938931488939,0.225885463461345,0.225885463461345, +0.302574015885271,0.302574015885271,0.302589839194931,0.302517891480495,0.302381311625732,0.302210796546656,0.302040221778566,0.301902589601732,0.301825513306839,0.301825513306839, +0.403894480886054,0.403894480886054,0.403875948356313,0.403745362351696,0.40353385767796,0.403282038995102,0.40303393503494,0.402833462058182,0.402720100687339,0.402720100687339, +0.52858820454138,0.52858820454138,0.528521352967465,0.528307374664282,0.527991515783292,0.527627990148214,0.52727199241757,0.526980180031871,0.526810482183406,0.526810482183406, +0.673250840329998,0.673250840329998,0.673126213519906,0.672794223488075,0.672336740386915,0.671826354459054,0.67132564073349,0.670900837712732,0.670636631393323,0.670636631393323, +0.83265576904689,0.83265576904689,0.832493863914707,0.831978657809161,0.831331072330817,0.830638708909771,0.829954159037451,0.829334598890539,0.828886342630003,0.828886342630003, + +00:40:34, +0.150610531167425,0.150610531167425,0.150666196046331,0.150668297122104,0.150629524661608,0.15056662188356,0.150497947902949,0.150440746491545,0.150408455481617,0.150408455481617, +0.150610531167425,0.150610531167425,0.150666196046331,0.150668297122104,0.150629524661608,0.15056662188356,0.150497947902949,0.150440746491545,0.150408455481617,0.150408455481617, +0.17581866479267,0.17581866479267,0.175868860129824,0.175859864555446,0.175806058426579,0.175726459272407,0.175641986454186,0.175572416598727,0.175533313989005,0.175533313989005, +0.226464522666055,0.226464522666055,0.226502295945524,0.22646957460807,0.226384161599146,0.226269675693694,0.226152199626372,0.226056695718943,0.226003237760206,0.226003237760206, +0.302689315880803,0.302689315880803,0.302705135986152,0.30263320538397,0.302496657484813,0.302326182062413,0.302155646852298,0.302018046559208,0.301940988116294,0.301940988116294, +0.404001686321489,0.404001686321489,0.403983152550751,0.403852595940167,0.40364114285662,0.403389387134111,0.403141345845255,0.402940923714047,0.402827591117001,0.402827591117001, +0.528679511753127,0.528679511753127,0.52861266748504,0.528398738156573,0.528082957482819,0.527719524422714,0.527363618383549,0.527071881331845,0.526902227158961,0.526902227158961, +0.673317841243931,0.673317841243931,0.673193236367917,0.672861323172774,0.672403951357955,0.67189369222807,0.671393103812849,0.670968406823042,0.670704265784747,0.670704265784747, +0.832691330680328,0.832691330680328,0.832529461156491,0.832014371639876,0.831366935774477,0.830674734197766,0.829990344787974,0.829370928996503,0.828922775661351,0.828922775661351, + +00:40:35, +0.150726583553434,0.150726583553434,0.150782254639637,0.150784363067406,0.150745598509,0.150682703427621,0.150614036143585,0.150556839694922,0.150524551332667,0.150524551332667, +0.150726583553434,0.150726583553434,0.150782254639637,0.150784363067406,0.150745598509,0.150682703427621,0.150614036143585,0.150556839694922,0.150524551332667,0.150524551332667, +0.175935744600254,0.175935744600254,0.175985943322758,0.175976955820144,0.175923160991082,0.175843574472027,0.175759113576752,0.175689552997537,0.175650455467622,0.175650455467622, +0.226582180451669,0.226582180451669,0.22661995307077,0.226587242414052,0.226501848304818,0.226387385437666,0.226269932090851,0.226174446317941,0.226120998431627,0.226120998431627, +0.30280458952917,0.30280458952917,0.30282040643795,0.302748492949744,0.302611977003513,0.302441541232531,0.302271045574268,0.302133477159529,0.302056436565395,0.302056436565395, +0.404108855893198,0.404108855893198,0.40409032089337,0.403959793671573,0.403748392160441,0.40349669937352,0.403248720729884,0.403048349422335,0.402935045586428,0.402935045586428, +0.528770780403855,0.528770780403855,0.528703943450195,0.528490063077304,0.528174360571989,0.527811020037674,0.527455205639693,0.527163543879887,0.526993933357917,0.526993933357917, +0.673384809557623,0.673384809557623,0.673260226612927,0.672928390215011,0.672471129623361,0.671960997216766,0.671460534036773,0.671035943013889,0.67077186721731,0.67077186721731, +0.832726873627397,0.832726873627397,0.832565039694026,0.832050066701519,0.831402780363056,0.830710740535969,0.830026511494111,0.829407239973148,0.828959189503572,0.828959189503572, + +00:40:36, +0.150842640656031,0.150842640656031,0.150898317935002,0.150900433715284,0.1508616770711,0.150798789705464,0.150730129138708,0.150672937670011,0.150640651965143,0.150640651965143, +0.150842640656031,0.150842640656031,0.150898317935002,0.150900433715284,0.1508616770711,0.150798789705464,0.150730129138708,0.150672937670011,0.150640651965143,0.150640651965143, +0.176052822305771,0.176052822305771,0.176103024404365,0.176094044975457,0.176040261456798,0.17596068758857,0.175876238632978,0.175806687343809,0.175767594901449,0.175767594901449, +0.226699824569783,0.226699824569783,0.226737596527835,0.226704896555069,0.226619521351806,0.226505081530977,0.22638765091275,0.226292183280816,0.226238745470476,0.226238745470476, +0.302919836845035,0.302919836845035,0.302935650564975,0.302863754192447,0.302727270196444,0.302556874071602,0.302386417959048,0.302248881417252,0.302171858668692,0.302171858668692, +0.404215989632596,0.404215989632596,0.404197453415564,0.404066955577298,0.403855605620803,0.403603975744714,0.403356059720218,0.403155739214444,0.403042464127019,0.403042464127019, +0.528862010533358,0.528862010533358,0.528795180902703,0.528581349466257,0.528265725090611,0.527902477032941,0.527546754225889,0.527255167715919,0.527085600820215,0.527085600820215, +0.673451745307525,0.673451745307525,0.673327184291382,0.672995424651268,0.672538275219678,0.672028269461765,0.671527931441964,0.671103446322042,0.670839435727823,0.670839435727823, +0.832762397909837,0.832762397909837,0.832600599549069,0.832085743015918,0.831438606118484,0.830746727946417,0.830062659178004,0.829443531842717,0.828995584178978,0.828995584178978, + +00:40:37, +0.150958702443873,0.150958702443873,0.151014385901101,0.1510165090344,0.150977760316541,0.150914880685682,0.150846226856872,0.150789040385329,0.150756757347543,0.150756757347543, +0.150958702443873,0.150958702443873,0.151014385901101,0.1510165090344,0.150977760316541,0.150914880685682,0.150846226856872,0.150789040385329,0.150756757347543,0.150756757347543, +0.176169897887455,0.176169897887455,0.176220103352885,0.176211131999614,0.176157359801925,0.176077798600197,0.175993361600984,0.175923819615629,0.175884732268553,0.175884732268553, +0.226817455015435,0.226817455015435,0.226855226311755,0.226822537026139,0.2267371807351,0.226622763968581,0.226505356086991,0.226409906602463,0.226356478871635,0.226356478871635, +0.30303505784305,0.30303505784305,0.303050868381863,0.302978989126699,0.302842537078204,0.302672180594203,0.302501764021198,0.302364259346924,0.302287254440723,0.302287254440723, +0.404323087571063,0.404323087571063,0.404304550148687,0.404174081688686,0.403962783269049,0.403711216279037,0.403463362847609,0.403263093121732,0.403149846770138,0.403149846770138, +0.528953202181376,0.528953202181376,0.528886379882284,0.528672597363157,0.528357051078438,0.527993895448307,0.527638264181969,0.527346752879808,0.527177229585745,0.527177229585745, +0.673518648530038,0.673518648530038,0.673394109439676,0.673062426517977,0.672605388183399,0.672095508999636,0.671595296065068,0.671170916784216,0.670906971353044,0.670906971353044, +0.832797903549356,0.832797903549356,0.832636140743348,0.832121400604874,0.831474413062656,0.830782696451113,0.830098787861767,0.829479804627417,0.829031959709848,0.829031959709848, + +00:40:38, +0.151074768885658,0.151074768885658,0.151130458506648,0.151132588993461,0.151093848214003,0.151030976336916,0.150962329266673,0.150905147809438,0.150872867448411,0.150872867448411, +0.151074768885658,0.151074768885658,0.151130458506648,0.151132588993461,0.151093848214003,0.151030976336916,0.150962329266673,0.150905147809438,0.150872867448411,0.150872867448411, +0.176286971323567,0.176286971323567,0.176337180146592,0.176328216870874,0.176274456004696,0.176194907485099,0.176110482458924,0.176040949791119,0.176001867547038,0.176001867547038, +0.226935071783672,0.226935071783672,0.226972842417576,0.226940163822291,0.226854826449701,0.226740432745449,0.22662304760851,0.226527616277792,0.226474198629996,0.226474198629996, +0.303150252537853,0.303150252537853,0.303166059903236,0.303094197767104,0.30295777766338,0.302787460814899,0.302617083775263,0.302479610963074,0.302402623896011,0.302402623896011, +0.404430149739937,0.404430149739937,0.404411611124057,0.404281172037043,0.404069925136483,0.4038184210078,0.403570630143371,0.403370411175519,0.40325719354711,0.40325719354711, +0.529044355387597,0.529044355387597,0.528977540428604,0.528763806807679,0.528448338575172,0.52808527532351,0.527729735547713,0.527438299411367,0.52726881969434,0.52726881969434, +0.673585519261508,0.673585519261508,0.673461002094152,0.673129395851515,0.672672468550968,0.672162715866898,0.671662627942682,0.671238354437074,0.670974474129678,0.670974474129678, +0.832833390567631,0.832833390567631,0.832671663298556,0.832157039490152,0.831510201217436,0.830818646072029,0.830134897567477,0.829516058349425,0.829068316118426,0.829068316118426, + +00:40:39, +0.151190839950133,0.151190839950133,0.151246535720404,0.151248673561218,0.151209940732208,0.151147076627847,0.151078436336753,0.151021259910946,0.150988982236333,0.150988982236333, +0.151190839950133,0.151190839950133,0.151246535720404,0.151248673561218,0.151209940732208,0.151147076627847,0.151078436336753,0.151021259910946,0.150988982236333,0.150988982236333, +0.176404042592406,0.176404042592406,0.17645425476379,0.176445299567532,0.176391550043374,0.176312014221503,0.176227601184983,0.176158077848431,0.17611900071504,0.17611900071504, +0.227052674869557,0.227052674869557,0.227090444840356,0.227057776938568,0.226972458490625,0.226858087856561,0.226740725472256,0.226645312301724,0.226591904740467,0.226591904740467, +0.303265420944069,0.303265420944069,0.303281225143704,0.303209380128254,0.303072991966542,0.302902714748243,0.302732377235777,0.302594936280223,0.302517967049067,0.302517967049067, +0.404537176170521,0.404537176170521,0.40451863637295,0.404388226653636,0.404177031254371,0.40392558996227,0.40367786163878,0.403477693407087,0.40336450448922,0.40336450448922, +0.529135470191652,0.529135470191652,0.529068662581275,0.528854977839443,0.528539587620459,0.528176616698236,0.527821168362846,0.527529807350357,0.527360371185783,0.527360371185783, +0.673652357538232,0.673652357538232,0.673527862291098,0.673196332688209,0.672739516358774,0.672229890100018,0.671729927111349,0.671305759317228,0.671041944094378,0.671041944094378, +0.832868858986305,0.832868858986305,0.832707167236356,0.832192659693487,0.831545970604655,0.830854576831103,0.830170988317182,0.829552293030886,0.829104653426927,0.829104653426927, + +00:40:40, +0.151306915606084,0.151306915606084,0.151362617511174,0.151364762706467,0.151326037839922,0.151263181527203,0.151194548035795,0.151137376658503,0.15110510167994,0.15110510167994, +0.151306915606084,0.151306915606084,0.151362617511174,0.151364762706467,0.151326037839922,0.151263181527203,0.151194548035795,0.151137376658503,0.15110510167994,0.15110510167994, +0.1765211116723,0.1765211116723,0.176571327182821,0.176562380067914,0.176508641896257,0.176429118787668,0.176344717757381,0.176275203765753,0.176236131750727,0.176236131750727, +0.227170264268164,0.227170264268164,0.227208033575167,0.227175376370024,0.227090076852899,0.226975729296912,0.226858389673189,0.226762994669194,0.226709597197969,0.226709597197969, +0.303380563076309,0.303380563076309,0.303396364117862,0.303324536224727,0.303188180002251,0.303017942408772,0.30284764441726,0.302710235312876,0.30263328391439,0.30263328391439, +0.404644166894077,0.404644166894077,0.404625625926607,0.404495245569695,0.404284101653941,0.404032723173678,0.403785057365073,0.40358493984768,0.403471779627716,0.403471779627716, +0.529226546633123,0.529226546633123,0.529159746379855,0.528946110498014,0.528630798253893,0.528267919612116,0.527912562667039,0.527621276736485,0.527451884099799,0.527451884099799, +0.673719163396452,0.673719163396452,0.673594690066754,0.673263237064334,0.672806531643154,0.672297031735408,0.671797193607561,0.671373131461235,0.671109381283743,0.671109381283743, +0.83290430882699,0.83290430882699,0.832742652578377,0.832228261236581,0.831581721246113,0.830890488750242,0.830207060132895,0.829588508693911,0.82914097165753,0.82914097165753, + +00:40:41, +0.151422995822343,0.151422995822343,0.151478703847804,0.151480856398046,0.151442139505955,0.151379291003753,0.151310664332529,0.151253498020803,0.151221225747909,0.151221225747909, +0.151422995822343,0.151422995822343,0.151478703847804,0.151480856398046,0.151442139505955,0.151379291003753,0.151310664332529,0.151253498020803,0.151221225747909,0.151221225747909, +0.176638178541613,0.176638178541613,0.176688397382054,0.17667945835038,0.176625731541677,0.176546221161886,0.176461832154371,0.176392327521306,0.176353260632301,0.176353260632301, +0.22728783997458,0.22728783997458,0.227325608617094,0.227292962111729,0.227207681531565,0.22709335706151,0.226976040206284,0.226880663375149,0.226827275997433,0.226827275997433, +0.30349567894917,0.30349567894917,0.303511476840293,0.303439666071089,0.303303341785051,0.303133143811012,0.302962885334218,0.302825508075524,0.302748574506464,0.302748574506464, +0.404751121941829,0.404751121941829,0.404732579816228,0.404602228816409,0.404391136366381,0.404139820673219,0.403892217353449,0.403692150528503,0.403579018993808,0.403579018993808, +0.529317584751533,0.529317584751533,0.529250791863848,0.529037204822904,0.528721970515014,0.528359184104726,0.52800391849991,0.527712707609401,0.527543358476062,0.527543358476062, +0.673785936872362,0.673785936872362,0.673661485457305,0.673330109016112,0.672873514440395,0.672364140809431,0.671864427467758,0.671440470905602,0.671176785734324,0.671176785734324, +0.832939740111268,0.832939740111268,0.832778119346217,0.832263844141106,0.831617453163578,0.830926381851321,0.830243113036598,0.829624705360577,0.829177270832382,0.829177270832382, + +00:40:42, +0.151539080567787,0.151539080567787,0.151594794699186,0.151596954604838,0.151558245699163,0.151495405026312,0.151426785195727,0.151369623966585,0.151337354408959,0.151337354408959, +0.151539080567787,0.151539080567787,0.151594794699186,0.151596954604838,0.151558245699163,0.151495405026312,0.151426785195727,0.151369623966585,0.151337354408959,0.151337354408959, +0.176755243178742,0.176755243178742,0.176805465339897,0.176796534393323,0.176742818957997,0.176663321322484,0.176578944354239,0.176509449093343,0.176470387338,0.176470387338, +0.227405401983906,0.227405401983906,0.227443169961234,0.227410534158763,0.227325272521675,0.227210971145375,0.227093677066528,0.22699831841455,0.226944941133805,0.226944941133805, +0.303610768577237,0.303610768577237,0.303626563325566,0.303554769681889,0.303418477329474,0.303248318969475,0.303078100001144,0.302940754582647,0.30286383883976,0.30286383883976, +0.404858041344963,0.404858041344963,0.404839498072977,0.40470917642493,0.404498135422843,0.404246882492046,0.403999341635068,0.403799325480723,0.403686222618667,0.403686222618667, +0.529408584586355,0.529408584586355,0.529341799072706,0.529128260853574,0.528813104443308,0.528450410215593,0.528095235901024,0.527804100008706,0.527634794354193,0.527634794354193, +0.6738526780021,0.6738526780021,0.673728248498886,0.673396948579715,0.672940464786729,0.672431217358397,0.671931628728326,0.671507777686783,0.671244157482615,0.671244157482615, +0.832975152860687,0.832975152860687,0.832813567561445,0.832299408428699,0.831653166378784,0.830962256156181,0.83027914705024,0.829660883052933,0.829213550973599,0.829213550973599, + +00:40:43, +0.151655169811334,0.151655169811334,0.151710890034256,0.151713057295768,0.151674356388442,0.151611523563739,0.151542910594207,0.151485754464632,0.151453487631854,0.151453487631854, +0.151655169811334,0.151655169811334,0.151710890034256,0.151713057295768,0.151674356388442,0.151611523563739,0.151542910594207,0.151485754464632,0.151453487631854,0.151453487631854, +0.176872305562114,0.176872305562114,0.176922531034786,0.176913608175168,0.176859904123614,0.176780419247819,0.176696054335304,0.176626568460151,0.17658751184609,0.17658751184609, +0.227522950291252,0.227522950291252,0.227560717602696,0.227528092506218,0.227442849818296,0.227328571543539,0.22721130024892,0.227115959782371,0.227062592602046,0.227062592602046, +0.30372583197508,0.30372583197508,0.303741623588236,0.303669847071668,0.30353358665004,0.30336346789866,0.303193288432518,0.303055974848712,0.302979076928736,0.302979076928736, +0.404964925134627,0.404964925134627,0.404946380727976,0.404816088426374,0.404605098854438,0.404353908661275,0.404106430241054,0.403906464735469,0.403793390533426,0.403793390533426, +0.529499546177008,0.529499546177008,0.529432768045828,0.529219278629428,0.528904200078208,0.528541597984186,0.52818651490989,0.527895453973945,0.527726191773757,0.527726191773757, +0.673919386821756,0.673919386821756,0.67379497922758,0.673463755791261,0.673007382718341,0.672498261418564,0.671998797425601,0.671575051841181,0.671311496565061,0.671311496565061, +0.833010547096763,0.833010547096763,0.832848997245593,0.832334954120968,0.831688860913435,0.830998111686633,0.830315162195739,0.82969704179299,0.829249812103264,0.829249812103264, + +00:40:44, +0.151771263521949,0.151771263521949,0.151826989821994,0.151829164439808,0.151790471542735,0.151727646584935,0.151659040496829,0.151601889483771,0.151569625385399,0.151569625385399, +0.151771263521949,0.151771263521949,0.151826989821994,0.151829164439808,0.151790471542735,0.151727646584935,0.151659040496829,0.151601889483771,0.151569625385399,0.151569625385399, +0.176989365670192,0.176989365670192,0.177039594445192,0.177030679674375,0.176976987016958,0.176897514916282,0.176813162075917,0.17674368560005,0.176704634134875,0.176704634134875, +0.227640484891746,0.227640484891746,0.227678251536604,0.227645637149202,0.227560413416507,0.227446158251048,0.227328909748474,0.227233587473597,0.227180230397126,0.227180230397126, +0.303840869157258,0.303840869157258,0.303856657642845,0.303784898254949,0.303648669761253,0.303478590613051,0.303308450642809,0.30317116888817,0.303094288787839,0.303094288787839, +0.405071773341929,0.405071773341929,0.405053227812312,0.404922964851815,0.404712026692241,0.404460899211984,0.40421348320249,0.404013568323832,0.403900522769181,0.403900522769181, +0.529590469562857,0.529590469562857,0.529523698822557,0.529310258189818,0.528995257459093,0.528632747449922,0.528277755565967,0.52798676954461,0.527817550774268,0.527817550774268, +0.673986063367366,0.673986063367366,0.673861677679419,0.673530530686819,0.673074268271359,0.672565273026138,0.672065933595867,0.671642293405146,0.671378803018054,0.671378803018054, +0.833045922840982,0.833045922840982,0.832884408420165,0.832370481239487,0.831724536789202,0.831033948464454,0.830351158494979,0.829733181602732,0.829286054243426,0.829286054243426, + +00:40:45, +0.151887361668637,0.151887361668637,0.15194309403142,0.15194527600597,0.151906591131026,0.151843774058847,0.151775174872497,0.151718028992871,0.151685767638448,0.151685767638448, +0.151887361668637,0.151887361668637,0.15194309403142,0.15194527600597,0.151906591131026,0.151843774058847,0.151775174872497,0.151718028992871,0.151685767638448,0.151685767638448, +0.177106423481471,0.177106423481471,0.17715665554962,0.177147748869435,0.177094067616492,0.1770146083063,0.176930267554464,0.176860800491393,0.176821754182689,0.176821754182689, +0.227758005780523,0.227758005780523,0.227795771758092,0.227763168082833,0.227677963311398,0.227563731262961,0.227446505560215,0.227351201483229,0.22729785451403,0.22729785451403, +0.303955880138313,0.303955880138313,0.303971665503921,0.303899923246244,0.303763726677606,0.303593687127122,0.303423586646468,0.303286336715462,0.303209474431501,0.303209474431501, +0.405178585997942,0.405178585997942,0.405160039357034,0.405029805732291,0.404818918967288,0.404567854175214,0.404320500550422,0.404120636276865,0.404007619356988,0.404007619356988, +0.529681354783213,0.529681354783213,0.529614591442184,0.529401199574044,0.52908627662529,0.528723858652166,0.528368957908659,0.528078046760139,0.527908871395185,0.527908871395185, +0.674052707674916,0.674052707674916,0.673928343890382,0.673597273302405,0.673141121481864,0.672632252217275,0.672133037275356,0.671709502414976,0.671446076877934,0.671446076877934, +0.833081280114798,0.833081280114798,0.832919801106633,0.832405989805799,0.831760194027724,0.83106976651139,0.830387135969813,0.829769302504107,0.829322277416103,0.829322277416103, + +00:40:46, +0.152003464220449,0.152003464220449,0.152059202631603,0.152061391963312,0.152022715122346,0.151959905954463,0.151891313690159,0.151834172960846,0.151801914359894,0.151801914359894, +0.152003464220449,0.152003464220449,0.152059202631603,0.152061391963312,0.152022715122346,0.151959905954463,0.151891313690159,0.151834172960846,0.151801914359894,0.151801914359894, +0.177223478974477,0.177223478974477,0.177273714326606,0.177264815738872,0.177211145900711,0.177131699396328,0.177047370749363,0.176977913112567,0.176938871967901,0.176938871967901, +0.227875512952735,0.227875512952735,0.227913278262308,0.227880685302241,0.227795499498075,0.227681290574348,0.227564087679182,0.227468801806278,0.227415464947756,0.227415464947756, +0.304070864932776,0.304070864932776,0.304086647185981,0.30401492206005,0.303878757413578,0.303708757455331,0.303538696457938,0.303401478345014,0.303324633874139,0.303324633874139, +0.405285363133696,0.405285363133696,0.40526681539315,0.405136611098801,0.404925775710577,0.404674773581966,0.404427482315859,0.404227668625582,0.404114680327866,0.404114680327866, +0.529772201877337,0.529772201877337,0.529705445943949,0.529492102821351,0.529177257616071,0.528814931630228,0.528460121977316,0.528169285659919,0.528000153675916,0.528000153675916, +0.674119319780339,0.674119319780339,0.673994977896398,0.673663983673983,0.673207942385882,0.672699199028076,0.672200108500247,0.671776678906919,0.67151331818099,0.67151331818099, +0.833116618939633,0.833116618939633,0.832955175326437,0.832441479841416,0.83179583265061,0.831105565849155,0.830423094642061,0.829805404519031,0.829358481643281,0.829358481643281, + +00:40:47, +0.152119571146479,0.152119571146479,0.152175315591651,0.152177512280935,0.152138843485766,0.152076042240818,0.152007456918807,0.151950321356655,0.151918065518676,0.151918065518676, +0.152119571146479,0.152119571146479,0.152175315591651,0.152177512280935,0.152138843485766,0.152076042240818,0.152007456918807,0.151950321356655,0.151918065518676,0.151918065518676, +0.177340532127772,0.177340532127772,0.17739077075472,0.177381880261243,0.177328221848144,0.177248788164858,0.177164471639066,0.177095023441989,0.177055987468911,0.177055987468911, +0.227993006403543,0.227993006403543,0.228030771044411,0.227998188802571,0.227913021971654,0.227798836180295,0.227681656100425,0.227586388437769,0.227533061693314,0.227533061693314, +0.304185823555166,0.304185823555166,0.304201602703526,0.304129894710853,0.303993761983634,0.303823801612123,0.303653780091645,0.30351659379124,0.303439767130161,0.303439767130161, +0.405392104780188,0.405392104780188,0.405373555951631,0.405243380982306,0.405032596953068,0.404781657463204,0.404534428529771,0.404334665400959,0.404221705712796,0.404221705712796, +0.529863010884432,0.529863010884432,0.529796262367035,0.529582967970933,0.529268200470658,0.528905966423366,0.528551247811237,0.528260486283282,0.528091397655812,0.528091397655812, +0.674185899719518,0.674185899719518,0.674061579733343,0.673730661837467,0.67327473101939,0.672766113494594,0.672267147306669,0.671843822917169,0.671580526963458,0.671580526963458, +0.833151939336876,0.833151939336876,0.832990531100984,0.832476951367818,0.831831452679434,0.831141346499432,0.830459034533512,0.82984148766939,0.829394666946912,0.829394666946912, + +00:40:48, +0.152235682415865,0.152235682415865,0.152291432880718,0.152293636927982,0.152254976190402,0.152192182886987,0.152123604527476,0.152066474149298,0.152034221083777,0.152034221083777, +0.152235682415865,0.152235682415865,0.152291432880718,0.152293636927982,0.152254976190402,0.152192182886987,0.152123604527476,0.152066474149298,0.152034221083777,0.152034221083777, +0.177457582919948,0.177457582919948,0.177507824812563,0.177498942415138,0.177445295437353,0.177365874590412,0.177281570202055,0.177212131458112,0.177173100664154,0.177173100664154, +0.228110486128124,0.228110486128124,0.228148250099576,0.228115678578979,0.228030530727264,0.227916368075896,0.227799210819008,0.22770396137274,0.227650644745727,0.227650644745727, +0.304300756019984,0.304300756019984,0.304316532071045,0.304244841213124,0.304108740402227,0.303938819611932,0.303768837562003,0.30363168306854,0.30355487421396,0.30355487421396, +0.405498810968373,0.405498810968373,0.405480261063412,0.405350115413729,0.405139382725682,0.404888505849853,0.40464133922309,0.404441626633937,0.404328695542721,0.404328695542721, +0.529953781843652,0.529953781843652,0.529887040750575,0.529673795061928,0.529359105228216,0.528996963070785,0.528642335449666,0.528351648669507,0.528182603374175,0.528182603374175, +0.674252447528286,0.674252447528286,0.674128149437045,0.67379730782872,0.673341487418312,0.672832995652829,0.6723341537307,0.67191093448187,0.671647703261524,0.671647703261524, +0.833187241327888,0.833187241327888,0.833025868451652,0.832512404406454,0.831867054135742,0.83117710848387,0.830494955665923,0.829877551977037,0.829430833348917,0.829430833348917, + +00:40:49, +0.152351797997787,0.152351797997787,0.152407554468001,0.152409765873643,0.152371113205415,0.15230832786209,0.152239756485245,0.152182631307821,0.152150381024223,0.152150381024223, +0.152351797997787,0.152351797997787,0.152407554468001,0.152409765873643,0.152371113205415,0.15230832786209,0.152239756485245,0.152182631307821,0.152150381024223,0.152150381024223, +0.177574631329632,0.177574631329632,0.17762487647877,0.17761600217918,0.17756236664693,0.177482958651546,0.177398666416848,0.177329237139421,0.177290211532096,0.177290211532096, +0.228227952121665,0.228227952121665,0.228265715422985,0.228233154626634,0.228148025760047,0.228033886256262,0.227916751830009,0.227821520606242,0.227768214100031,0.227768214100031, +0.304415662341722,0.304415662341722,0.304431435303013,0.304359761581321,0.304223692683795,0.304053811469176,0.303883868883414,0.303746746191301,0.303669955139914,0.303669955139914, +0.405605481729169,0.405605481729169,0.405586930759387,0.405456814423955,0.405246133059304,0.404995318772802,0.40474821442671,0.404548552355414,0.404435649848547,0.404435649848547, +0.530044514794097,0.530044514794097,0.529977781133648,0.529764584133424,0.529449971927859,0.529087921611637,0.528733384931795,0.52844277285782,0.52827377087025,0.52827377087025, +0.674318963242421,0.674318963242421,0.674194687043278,0.673863921683551,0.673408211618523,0.67289984553873,0.672401127808365,0.671978013637114,0.671714847111321,0.671714847111321, +0.833222524933996,0.833222524933996,0.833061187399786,0.832547838978739,0.831902637041046,0.831212851824087,0.830530858061017,0.829913597463791,0.829466980871184,0.829466980871184, + +00:40:50, +0.152467917861471,0.152467917861471,0.15252368032274,0.152525899087147,0.152487254500007,0.152424477135293,0.152355912761238,0.152298792801313,0.152266545309084,0.152266545309084, +0.152467917861471,0.152467917861471,0.15252368032274,0.152525899087147,0.152487254500007,0.152424477135293,0.152355912761238,0.152298792801313,0.152266545309084,0.152266545309084, +0.17769167733548,0.17769167733548,0.177741925732008,0.177733059532024,0.177679435455503,0.177600040326849,0.177515760261993,0.177446340464433,0.177407320051238,0.177407320051238, +0.228345404379366,0.228345404379366,0.228383167009838,0.228350616940717,0.228265507065158,0.228151390716513,0.228034279128515,0.227939066133336,0.227885769751276,0.227885769751276, +0.304530542534857,0.304530542534857,0.304546312413891,0.304474655829888,0.304338618842764,0.304168777198261,0.303998874070266,0.303861783173898,0.303785009922391,0.303785009922391, +0.405712117093456,0.405712117093456,0.405693565070413,0.405563478043832,0.405352847984778,0.405102096262901,0.404855054171487,0.404655442596255,0.404542568661139,0.404542568661139, +0.530135209774812,0.530135209774812,0.53006848355528,0.529855335224454,0.52954080060865,0.52917884208502,0.528824396296763,0.528533858887395,0.528364900183234,0.528364900183234, +0.674385446897654,0.674385446897654,0.674261192587765,0.673930503437722,0.673474903655844,0.672966663188195,0.672468069575637,0.672045060418942,0.671781958548932,0.671781958548932, +0.833257790176497,0.833257790176497,0.8330964879667,0.832583255106059,0.831938201416827,0.831248576541671,0.830566741740488,0.829949624151442,0.829503109535571,0.829503109535571, + +00:40:51, +0.152584041976183,0.152584041976183,0.152639810414217,0.15264203653777,0.152603400043424,0.152540630675801,0.152472073324619,0.152414958598905,0.152382713907472,0.152382713907472, +0.152584041976183,0.152584041976183,0.152639810414217,0.15264203653777,0.152603400043424,0.152540630675801,0.152472073324619,0.152414958598905,0.152382713907472,0.152382713907472, +0.177808720916185,0.177808720916185,0.177858972550979,0.177850114452358,0.177796501841732,0.177717119594942,0.177632851716075,0.1775634414117,0.177524426200113,0.177524426200113, +0.22846284289644,0.22846284289644,0.228500604855344,0.228468065516422,0.228382974637764,0.228268881451785,0.228151792709629,0.2280565979491,0.228003311694521,0.228003311694521, +0.304645396613852,0.304645396613852,0.304661163418128,0.304589523973257,0.304453518893547,0.304283716813581,0.304113853136933,0.303976794030691,0.303900038575745,0.303900038575745, +0.405818717092078,0.405818717092078,0.40580016402731,0.405670106304168,0.405459527532914,0.40520883835096,0.404961858488241,0.404762297387285,0.404649452011329,0.404649452011329, +0.530225866824792,0.530225866824792,0.530159148054444,0.529946048374,0.529631591309596,0.529269724529979,0.528915369583655,0.528624906797352,0.528455991352266,0.528455991352266, +0.674451898529661,0.674451898529661,0.67432766610618,0.67399705312694,0.673541563566047,0.673033448637069,0.672534979068441,0.672112074863343,0.671849037610386,0.671849037610386, +0.833293037076654,0.833293037076654,0.833131770173676,0.832618652809768,0.831973747284533,0.831284282658175,0.830602606725996,0.829985632061745,0.829539219363902,0.829539219363902, + +00:40:52, +0.152700170311235,0.152700170311235,0.152755944711761,0.15275817819483,0.152719549804957,0.152656788452865,0.152588238144598,0.152531128669774,0.152498886788545,0.152498886788545, +0.152700170311235,0.152700170311235,0.152755944711761,0.15275817819483,0.152719549804957,0.152656788452865,0.152588238144598,0.152531128669774,0.152498886788545,0.152498886788545, +0.17792576205047,0.17792576205047,0.177976016914413,0.177967166918902,0.177913565784307,0.17783419643448,0.177749940757707,0.177680539959804,0.177641529957286,0.177641529957286, +0.228580267668111,0.228580267668111,0.228618028954726,0.228585500348955,0.228500428473043,0.228386358457224,0.228269292568466,0.228174116048622,0.228120839924842,0.228120839924842, +0.304760224593158,0.304760224593158,0.304775988330159,0.304704366025846,0.304568392850543,0.304398630329515,0.304228806097777,0.304091778776028,0.304015041114315,0.304015041114315, +0.405925281755837,0.405925281755837,0.405906727660859,0.405776699235734,0.405566171734481,0.405315545067755,0.405068627407751,0.404869116759289,0.404756299929908,0.404756299929908, +0.530316485982978,0.530316485982978,0.530249774670061,0.530036723620989,0.529722344069652,0.52936056898551,0.529006304831506,0.528715916626759,0.528547044416435,0.528547044416435, +0.674518318174072,0.674518318174072,0.674394107634145,0.674063570786864,0.673608191384851,0.673100201921149,0.672601856322648,0.672179057006255,0.671916084331664,0.671916084331664, +0.833328265655703,0.833328265655703,0.833167034041967,0.832654032111189,0.832009274665583,0.831319970195124,0.83063845303917,0.830021621216425,0.829575310377968,0.829575310377968, + +00:40:53, +0.15281630283598,0.15281630283598,0.152872083184742,0.152874324027686,0.152835703753939,0.152772950435779,0.152704407190429,0.152647302983138,0.152615063921502,0.152615063921502, +0.15281630283598,0.15281630283598,0.152872083184742,0.152874324027686,0.152835703753939,0.152772950435779,0.152704407190429,0.152647302983138,0.152615063921502,0.152615063921502, +0.178042800717091,0.178042800717091,0.178093058801076,0.178084216910409,0.178030627261954,0.177951270824148,0.177867027365537,0.177797636087361,0.177758631301354,0.177758631301354, +0.228697678689618,0.228697678689618,0.228735439303218,0.228702921433534,0.228617868566189,0.228503821727989,0.228386778700151,0.228291620427002,0.228238354437326,0.228238354437326, +0.304875026487211,0.304875026487211,0.304890787164406,0.30481918200206,0.304683240728138,0.304513517760429,0.304343732967147,0.304206737424244,0.30413001755243,0.30413001755243, +0.4060318111155,0.4060318111155,0.406013256001803,0.405883256869265,0.405672780620211,0.405422216444022,0.405175360960761,0.40497590074302,0.404863112447629,0.404863112447629, +0.530407067288258,0.530407067288258,0.530340363440998,0.530127361004298,0.529813058927722,0.529451375490551,0.529097202079294,0.528806888414631,0.528638059414777,0.528638059414777, +0.674584705866462,0.674584705866462,0.67446051720723,0.674130056453102,0.673674787147927,0.673166923076179,0.672668701374079,0.672246006883565,0.671983098748693,0.671983098748693, +0.833363475934845,0.833363475934845,0.833202279592791,0.832689393031613,0.832044783581363,0.831355639174009,0.830674280701608,0.830057591637175,0.82961138259953,0.82961138259953, + +00:40:54, +0.152932439519817,0.152932439519817,0.152988225802571,0.152990474005744,0.152951861859745,0.152889116593881,0.152820580431406,0.15276348150826,0.152731245275587,0.152731245275587, +0.152932439519817,0.152932439519817,0.152988225802571,0.152990474005744,0.152951861859745,0.152889116593881,0.152820580431406,0.15276348150826,0.152731245275587,0.152731245275587, +0.178159836894836,0.178159836894836,0.178210098189766,0.178201264405665,0.178147686253429,0.178068342742667,0.177984111518246,0.177914729773021,0.17787573021095,0.17787573021095, +0.228815075956209,0.228815075956209,0.228852835896067,0.228820328765392,0.228735294912405,0.228621271259253,0.228504251099826,0.228409111079355,0.228355855227071,0.228355855227071, +0.304989802310434,0.304989802310434,0.305005559935278,0.30493397191629,0.304798062540704,0.304628379120677,0.304458633759377,0.304321669989661,0.304244967904403,0.304244967904403, +0.406138305201796,0.406138305201796,0.406119749080848,0.405989779235455,0.405779354220799,0.40552885251046,0.405282059177976,0.405082649369187,0.404969889595208,0.404969889595208, +0.530497610779467,0.530497610779467,0.530430914406072,0.53021796056275,0.529903735922656,0.529542144083991,0.529188061365949,0.528897822199929,0.528729036386275,0.528729036386275, +0.674651061642357,0.674651061642357,0.674526894860957,0.674196510161209,0.673741350890892,0.673233612137852,0.672735514258504,0.672312924531108,0.672050080897351,0.672050080897351, +0.833398667935252,0.833398667935252,0.833237506847339,0.832724735592299,0.832080274053228,0.83139128961629,0.830710089734874,0.830093543345656,0.829647436050318,0.829647436050318, + +00:40:55, +0.153048580332186,0.153048580332186,0.153104372534706,0.153106628098451,0.153068024091795,0.15300528689655,0.15293675783687,0.152879664214446,0.152847430820088,0.152847430820088, +0.153048580332186,0.153048580332186,0.153104372534706,0.153106628098451,0.153068024091795,0.15300528689655,0.15293675783687,0.152879664214446,0.152847430820088,0.152847430820088, +0.178276870562526,0.178276870562526,0.178327135059312,0.178318309383486,0.178264742737522,0.178185412168787,0.178101193194546,0.178031820995463,0.177992826664737,0.177992826664737, +0.228932459463148,0.228932459463148,0.228970218728534,0.228937722339771,0.228852707506908,0.228738707046199,0.228621709762642,0.228526588000807,0.228473342289189,0.228473342289189, +0.305104552077239,0.305104552077239,0.305120306657168,0.305048735782914,0.304912858302601,0.304743214424598,0.30457350848879,0.304436576486587,0.304359892184537,0.304359892184537, +0.406244764045415,0.406244764045415,0.406226206928662,0.406096266364962,0.405885892566901,0.405635453297728,0.405388722090063,0.405189362668466,0.405076631403325,0.405076631403325, +0.530588116495389,0.530588116495389,0.530521427604045,0.530308522335116,0.529994375093253,0.529632874804666,0.529278882730345,0.528988718021565,0.52881997536986,0.52881997536986, +0.674717385537231,0.674717385537231,0.674593240630794,0.674262931946691,0.673807882649315,0.67330026914181,0.672802295011641,0.672379809984669,0.672117030813463,0.672117030813463, +0.833433841678065,0.833433841678065,0.833272715826768,0.832760059814477,0.832115746102502,0.831426921543395,0.830745880160503,0.830129476363497,0.829683470752027,0.829683470752027, + +00:40:56, +0.153164725242571,0.153164725242571,0.153220523350646,0.153222786275298,0.153184190419552,0.15312146131321,0.153052939376203,0.152995851071045,0.152963620524334,0.152963620524334, +0.153164725242571,0.153164725242571,0.153220523350646,0.153222786275298,0.153184190419552,0.15312146131321,0.153052939376203,0.152995851071045,0.152963620524334,0.152963620524334, +0.178393901699015,0.178393901699015,0.178444169388577,0.178435351822725,0.178381796693055,0.178302479081294,0.178218272373183,0.178148909733404,0.178109920641411,0.178109920641411, +0.229049829205707,0.229049829205707,0.229087587795889,0.229055102151927,0.228970106344928,0.228856129084024,0.228739154683763,0.228644051186497,0.228590815618807,0.228590815618807, +0.305219275802021,0.305219275802021,0.30523502734446,0.305163473616298,0.305027628028175,0.304858023686519,0.304688357169696,0.304551456929319,0.304474790407119,0.304474790407119, +0.40635118767701,0.40635118767701,0.406332629575874,0.406202718288407,0.405992395689137,0.405742018836451,0.405495349727652,0.405296040671493,0.405183337902621,0.405183337902621, +0.530678584474755,0.530678584474755,0.530611903073628,0.530399046360113,0.530084976478256,0.529723567691358,0.529369666211306,0.529079575918395,0.528910876404409,0.528910876404409, +0.67478367758651,0.67478367758651,0.674659554552161,0.674329321845003,0.673874382458712,0.673366894123646,0.672869043669158,0.672446663279982,0.672183948532805,0.672183948532805, +0.833468997184393,0.833468997184393,0.833307906552205,0.832795365719343,0.832151199750477,0.831462534976722,0.830781651999998,0.830165390712295,0.829719486726322,0.829719486726322, + +00:40:57, +0.153280874220499,0.153280874220499,0.153336678219933,0.153338948505817,0.153300360812522,0.153237639813328,0.153169125018832,0.153112042047449,0.153079814357699,0.153079814357699, +0.153280874220499,0.153280874220499,0.153336678219933,0.153338948505817,0.153300360812522,0.153237639813328,0.153169125018832,0.153112042047449,0.153079814357699,0.153079814357699, +0.178510930283187,0.178510930283187,0.178561201156455,0.178552391702262,0.178498848098882,0.178419543459003,0.178335349032935,0.178265995965588,0.178227012119701,0.178227012119701, +0.229167185179175,0.229167185179175,0.229204943093417,0.229172468197128,0.229087491421705,0.228973537367939,0.228856585858367,0.228761500631576,0.228708275211059,0.228708275211059, +0.305333973499164,0.305333973499164,0.305349722011521,0.305278185430791,0.305142371731758,0.304972806920755,0.304803179816389,0.304666311332137,0.304589662586425,0.304589662586425, +0.406457576127195,0.406457576127195,0.406439017053078,0.406309135036371,0.406098863618089,0.405848549157215,0.405601942121336,0.405402683408867,0.405290009123699,0.405290009123699, +0.530769014756243,0.530769014756243,0.530702340853478,0.530489532676409,0.53017554011636,0.529814222782798,0.529460411847602,0.529170395929224,0.529001739528749,0.529001739528749, +0.674849937825567,0.674849937825567,0.674725836660426,0.67439567989155,0.67394085035455,0.673433487118901,0.672935760266674,0.672513484452731,0.672250834091101,0.672250834091101, +0.833504134475313,0.833504134475313,0.833343079044746,0.832830653328065,0.832186635018415,0.831498129937637,0.830817405274829,0.830201286413616,0.829755483994836,0.829755483994836, + +00:40:58, +0.153397027235539,0.153397027235539,0.153452837112154,0.153455114759587,0.153416535240253,0.153353822366414,0.153285314734224,0.153228237113094,0.1531960122896,0.1531960122896, +0.153397027235539,0.153397027235539,0.153452837112154,0.153455114759587,0.153416535240253,0.153353822366414,0.153285314734224,0.153228237113094,0.1531960122896,0.1531960122896, +0.178627956293962,0.178627956293962,0.178678230341873,0.178669429001013,0.17861589693389,0.178536605280764,0.178452423152613,0.178383079670795,0.178344101078369,0.178344101078369, +0.22928452737885,0.22928452737885,0.229322284616415,0.229289820470654,0.229204862732494,0.229090931893163,0.228974003281643,0.228878936331209,0.228825721061098,0.228825721061098, +0.305448645183039,0.305448645183039,0.305464390672707,0.305392871240734,0.305257089427671,0.305087564141605,0.304917976443153,0.304781139709313,0.304704508736717,0.304704508736717, +0.40656392942655,0.40656392942655,0.406545369390827,0.4064155166394,0.406205296384299,0.405955044290567,0.40570849930167,0.40550929091115,0.405396645097125,0.405396645097125, +0.530859407378479,0.530859407378479,0.530792740982202,0.530579981322615,0.530266066046206,0.529904840117665,0.529551119677951,0.529261178092804,0.529092564781652,0.529092564781652, +0.674916166289727,0.674916166289727,0.674792086990909,0.674462006121685,0.674007286372246,0.673500048163064,0.673002444839753,0.672580273538547,0.672317687524023,0.672317687524023, +0.833539253571874,0.833539253571874,0.833378233325455,0.832865922661777,0.832222051927544,0.831533706447474,0.830853140006434,0.830237163488994,0.829791462579171,0.829791462579171, + +00:40:59, +0.153513184257305,0.153513184257305,0.153568999996935,0.153571285006225,0.153532713672337,0.153470008942021,0.153401508491893,0.153344436237458,0.153312214289497,0.153312214289497, +0.153513184257305,0.153513184257305,0.153568999996935,0.153571285006225,0.153532713672337,0.153470008942021,0.153401508491893,0.153344436237458,0.153312214289497,0.153312214289497, +0.178744979710289,0.178744979710289,0.17879525692379,0.178786463697925,0.178732943176997,0.178653664525459,0.178569494711059,0.178500160827836,0.178461187496207,0.178461187496207, +0.229401855800043,0.229401855800043,0.22943961236019,0.229407158967798,0.229322220272561,0.229208312654932,0.229091406948794,0.228996358280571,0.228943153164084,0.228943153164084, +0.305563290868001,0.305563290868001,0.305579033342359,0.30550753106045,0.305371781130221,0.305202295363356,0.305032747064258,0.304895942075101,0.304819328872244,0.304819328872244, +0.406670247605612,0.406670247605612,0.406651686619639,0.406521863128001,0.406311694018274,0.406061504267018,0.40581502129917,0.405615863208866,0.405503245853428,0.405503245853428, +0.530949762380037,0.530949762380037,0.530883103498354,0.530670392337295,0.530356554306381,0.529995419734585,0.529641789741019,0.529351922447837,0.52918335220184,0.52918335220184, +0.674982363014261,0.674982363014261,0.674858305578877,0.674528300570713,0.674073690547163,0.673566577291577,0.673069097423912,0.672647030573012,0.672384508867195,0.672384508867195, +0.833574354495092,0.833574354495092,0.833413369415368,0.832901173741584,0.832257450499064,0.831569264527536,0.830888856216223,0.830273021959931,0.829827422500896,0.829827422500896, + +00:41:00, +0.153629345255451,0.153629345255451,0.15368516684395,0.153687459215395,0.153648896078408,0.153586199509743,0.153517706261392,0.153460639390063,0.153428420326892,0.153428420326892, +0.153629345255451,0.153629345255451,0.15368516684395,0.153687459215395,0.153648896078408,0.153586199509743,0.153517706261392,0.153460639390063,0.153428420326892,0.153428420326892, +0.178862000511151,0.178862000511151,0.178912280881198,0.178903495771977,0.178849986807155,0.178770721172001,0.178686563687148,0.178617239415555,0.178578271352044,0.178578271352044, +0.229519170438077,0.229519170438077,0.229556926320063,0.229524483683864,0.229439564037183,0.229325679648492,0.229208796855034,0.229113766474852,0.229060571515193,0.229060571515193, +0.305677910568395,0.305677910568395,0.305693650034806,0.305622164904252,0.305486446853699,0.305317000600284,0.30514749169396,0.305010718443746,0.304934123007242,0.304934123007242, +0.406776530694884,0.406776530694884,0.406757968769994,0.406628174532643,0.406418056550484,0.406167929117042,0.405921508144317,0.405722400332502,0.405609811423098,0.405609811423098, +0.531040079799438,0.531040079799438,0.530973428440434,0.530760765758957,0.530447004935424,0.530085961672131,0.52973242207542,0.52944262903297,0.529274101827981,0.529274101827981, +0.675048528034394,0.675048528034394,0.674924492459547,0.674594563273887,0.674140062914619,0.673633074539829,0.673135718054617,0.672713755591657,0.672451298156189,0.672451298156189, +0.833609437265953,0.833609437265953,0.833448487335486,0.83293640658856,0.832292830754143,0.831604804199095,0.830924553925572,0.8303088618479,0.829863363781549,0.829863363781549, + +00:41:01, +0.153745510199677,0.153745510199677,0.153801337622911,0.153803637356803,0.153765082428145,0.153702394039221,0.153633908012322,0.153576846540474,0.153544630371332,0.153544630371332, +0.153745510199677,0.153745510199677,0.153801337622911,0.153803637356803,0.153765082428145,0.153702394039221,0.153633908012322,0.153576846540474,0.153544630371332,0.153544630371332, +0.178979018675562,0.178979018675562,0.179029302193119,0.179020525202181,0.178967027803347,0.178887775199335,0.178803630059789,0.178734315412829,0.178695352624737,0.178695352624737, +0.229636471288289,0.229636471288289,0.229674226491369,0.22964179461417,0.229556894021653,0.2294430328691,0.229326172995589,0.229231160909253,0.229177976109611,0.229177976109611, +0.305792504298549,0.305792504298549,0.305808240764363,0.305736772786438,0.305601086612387,0.305431679866648,0.305262210346503,0.305125468829478,0.305048891155934,0.305048891155934, +0.406882778724831,0.406882778724831,0.406864215872333,0.406734450883759,0.406524384011358,0.406274318871073,0.406027959867553,0.405828902312507,0.40571634183659,0.40571634183659, +0.531130359675153,0.531130359675153,0.531063715846894,0.530851101626059,0.530537417971817,0.530176465968825,0.529823016719716,0.529533297886799,0.529364813698692,0.529364813698692, +0.675114661385297,0.675114661385297,0.674990647668087,0.67466079426641,0.674206403509877,0.673699539943159,0.673202306767282,0.672780448629962,0.672518055426525,0.672518055426525, +0.833644501905411,0.833644501905411,0.833483587106782,0.832971621223747,0.832328192713918,0.831640325483392,0.830960233155826,0.830344683174338,0.829899286442638,0.829899286442638, + +00:41:02, +0.153861679059724,0.153861679059724,0.153917512303576,0.153919819400195,0.153881272691268,0.153818592500136,0.153750113714322,0.153693057658299,0.153660844392405,0.153660844392405, +0.153861679059724,0.153861679059724,0.153917512303576,0.153919819400195,0.153881272691268,0.153818592500136,0.153750113714322,0.153693057658299,0.153660844392405,0.153660844392405, +0.179096034182569,0.179096034182569,0.17914632083861,0.179137551967581,0.179084066144589,0.179004826586441,0.17892069380792,0.178851388798565,0.178812431293178,0.178812431293178, +0.229753758346025,0.229753758346025,0.22979151286945,0.229759091754045,0.229674210221273,0.229560372312029,0.2294435353657,0.229348541578987,0.229295366942539,0.229295366942539, +0.305907072072783,0.305907072072783,0.305922805545331,0.305851354721293,0.30571570042055,0.305546333176697,0.305376903036116,0.305240193246513,0.305163633332531,0.305163633332531, +0.40698899172588,0.40698899172588,0.40697042795706,0.406840692211743,0.406630676431292,0.406380673559511,0.406134376499284,0.405935369179292,0.40582283712432,0.40582283712432, +0.531220602045599,0.531220602045599,0.531153965756129,0.530941399977006,0.530627793453994,0.530266932663138,0.529913573712416,0.529623929047868,0.529455487852538,0.529455487852538, +0.675180763102093,0.675180763102093,0.675056771239616,0.674726993583436,0.674272712368152,0.673765973536856,0.673268863597272,0.672847109723357,0.672584780713675,0.672584780713675, +0.83367954843439,0.83367954843439,0.833518668750198,0.833006817668157,0.832363536399493,0.831675828401636,0.830995893928298,0.830380485960655,0.829935190505636,0.829935190505636, + +00:41:03, +0.153977851805376,0.153977851805376,0.154033690855744,0.154036005315363,0.153997466837539,0.153934794862212,0.153866323337076,0.153809272713188,0.153777062359744,0.153777062359744, +0.153977851805376,0.153977851805376,0.154033690855744,0.154036005315363,0.153997466837539,0.153934794862212,0.153866323337076,0.153809272713188,0.153777062359744,0.153777062359744, +0.179213047011251,0.179213047011251,0.179263336796759,0.179254576047252,0.179201101809929,0.179121875312329,0.179037754910515,0.178968459551706,0.178929507336289,0.178929507336289, +0.229871031606645,0.229871031606645,0.229908785449666,0.229876375098831,0.229791512631358,0.229677697972561,0.229560883960616,0.229465908479282,0.229412744009189,0.229412744009189, +0.306021613905397,0.306021613905397,0.306037344392,0.305965910723089,0.305830288292443,0.305660960544665,0.305491569777019,0.305354891709056,0.305278349551229,0.305278349551229, +0.40709516972842,0.40709516972842,0.407076605054544,0.406946898546953,0.406736933840642,0.406486993212716,0.406240758069876,0.406041800963234,0.405929297316668,0.405929297316668, +0.531310806949141,0.531310806949141,0.531244178206486,0.531031660850152,0.530718131420335,0.530357361793488,0.530004093091978,0.52971452255467,0.529546124328031,0.529546124328031, +0.675246833219856,0.675246833219856,0.675122863209199,0.674793161260067,0.674338989524609,0.673832375356159,0.673335388579901,0.672913738907222,0.672651474053059,0.672651474053059, +0.833714576873785,0.833714576873785,0.833553732286645,0.83304199594277,0.832398861831944,0.831711312975007,0.831031536264273,0.830416270228228,0.829971075991989,0.829971075991989, + +00:41:04, +0.15409402840646,0.15409402840646,0.154149873249259,0.154152195072141,0.154113664836765,0.154051001095216,0.153982536850312,0.153925491674835,0.153893284243024,0.153893284243024, +0.15409402840646,0.15409402840646,0.154149873249259,0.154152195072141,0.154113664836765,0.154051001095216,0.153982536850312,0.153925491674835,0.153893284243024,0.153893284243024, +0.179330057140718,0.179330057140718,0.179380350046684,0.179371597420301,0.179318134778446,0.179238921356041,0.179154813346576,0.179085527651224,0.179046580733028,0.179046580733028, +0.229988291065522,0.229988291065522,0.230026044227385,0.229993644643879,0.229908801247235,0.229795009845992,0.229678218775603,0.229583261605375,0.229530107304785,0.229530107304785, +0.306136129810684,0.306136129810684,0.306151857318645,0.306080440806084,0.305944850242307,0.305775561984775,0.305606210583413,0.305469564231298,0.305393039826212,0.305393039826212, +0.407201312762803,0.407201312762803,0.407182747195113,0.407053069919709,0.406843156269727,0.406593277861011,0.406347104609662,0.406148197694669,0.406035722443975,0.406035722443975, +0.531400974424093,0.531400974424093,0.531334353236259,0.531121884283799,0.53080843190917,0.530447753398241,0.530094574896809,0.529805078445644,0.529636723163632,0.529636723163632, +0.675312871773608,0.675312871773608,0.675188923611855,0.674859297331356,0.674405235014362,0.673898745436257,0.673401881750433,0.672980336216886,0.672718135480047,0.672718135480047, +0.833749587244458,0.833749587244458,0.833588777737003,0.833077156068537,0.832434169032315,0.831746779224652,0.831067160185,0.830452035998401,0.830006942923107,0.830006942923107, + +00:41:05, +0.154210208832846,0.154210208832846,0.154266059454004,0.154268388640404,0.154229866658794,0.154167211168959,0.154098754223799,0.154041714512977,0.154009510011963,0.154009510011963, +0.154210208832846,0.154210208832846,0.154266059454004,0.154268388640404,0.154229866658794,0.154167211168959,0.154098754223799,0.154041714512977,0.154009510011963,0.154009510011963, +0.179447064550113,0.179447064550113,0.179497360567538,0.179488616065869,0.179435165029252,0.179355964696652,0.179271869095142,0.179202593076124,0.179163651462381,0.179163651462381, +0.230105536718039,0.230105536718039,0.230143289197988,0.230110900384558,0.230026076064243,0.22991230792763,0.229795539805936,0.229700600952518,0.229647456824564,0.229647456824564, +0.306250619802919,0.306250619802919,0.306266344339526,0.306194944984524,0.306059386284367,0.305890137511233,0.305720825469492,0.305584210827417,0.305507704171652,0.305507704171652, +0.407307420859345,0.407307420859345,0.40728885440906,0.407159206360293,0.406949343748829,0.406699527534685,0.406453416148933,0.406254559403897,0.406142112536546,0.406142112536546, +0.531491104508718,0.531491104508718,0.53142449088369,0.531212070316196,0.530898694958775,0.530538107515711,0.530185019165261,0.529895596759178,0.529727284397751,0.529727284397751, +0.675378878798321,0.675378878798321,0.675254952482552,0.674925401832308,0.674471448872476,0.673965083812287,0.673468343144083,0.673046901687628,0.67278476502996,0.67278476502996, +0.833784579567241,0.833784579567241,0.833623805122122,0.833112298066377,0.832469458021619,0.831782227171687,0.831102765711702,0.83048778329249,0.830042791320373,0.830042791320373, + +00:41:06, +0.154326393054445,0.154326393054445,0.154382249439908,0.154384585990072,0.154346072273518,0.154283425053293,0.154214975427349,0.154157941197392,0.15412573963632,0.15412573963632, +0.154326393054445,0.154326393054445,0.154382249439908,0.154384585990072,0.154346072273518,0.154283425053293,0.154214975427349,0.154157941197392,0.15412573963632,0.15412573963632, +0.179564069218612,0.179564069218612,0.179614368338504,0.179605631963128,0.179552192541491,0.179473005313269,0.17938892213528,0.179319655805444,0.179280719503368,0.179280719503368, +0.230222768559592,0.230222768559592,0.230260520356869,0.230228142316243,0.230143337077735,0.230029592212794,0.229912847046904,0.229817926515973,0.229764792563775,0.229764792563775, +0.306365083896366,0.306365083896366,0.306380805468895,0.306309423272642,0.306173896432838,0.306004687138236,0.305835414449433,0.305698831511579,0.305622342601707,0.305622342601707, +0.407413494048323,0.407413494048323,0.40739492672664,0.40726530789895,0.407055496308192,0.406805742263984,0.406559692717947,0.406360886121183,0.40624846762465,0.40624846762465, +0.531581197241226,0.531581197241226,0.531514591186969,0.531302218985543,0.530988920607375,0.530628424184162,0.530275425935639,0.529986077533611,0.529817808068744,0.529817808068744, +0.675444854328919,0.675444854328919,0.675320949856207,0.674991474797874,0.674537631133966,0.674031390519339,0.673534772796014,0.673113435354677,0.672851362738066,0.672851362738066, +0.833819553862937,0.833819553862937,0.83365881446282,0.833147421957179,0.832504728820838,0.831817656837198,0.831138352865566,0.830523512131778,0.830078621205135,0.830078621205135, + +00:41:07, +0.154442581041213,0.154442581041213,0.15449844317694,0.154500787091106,0.154462281650871,0.154399642718114,0.154331200430817,0.154274171697903,0.1542419730859,0.1542419730859, +0.154442581041213,0.154442581041213,0.15449844317694,0.154500787091106,0.154462281650871,0.154399642718114,0.154331200430817,0.154274171697903,0.1542419730859,0.1542419730859, +0.17968107112542,0.17968107112542,0.179731373338797,0.179722645091281,0.179669217294339,0.179590043185031,0.179505972446091,0.179436715818253,0.179397784835044,0.179397784835044, +0.23033998658559,0.23033998658559,0.230377737699434,0.230345370434324,0.230260584283074,0.230146862696816,0.230030140493806,0.229935238291016,0.22988211451768,0.22988211451768, +0.306479522105276,0.306479522105276,0.306495240720985,0.306423875684656,0.306288380701922,0.306119210879966,0.3059499775374,0.305813426297934,0.30573695513052,0.30573695513052, +0.407519532359976,0.407519532359976,0.407500964178071,0.40737137456589,0.407161613978025,0.406911922079123,0.406665934346923,0.406467177876751,0.406354787738515,0.406354787738515, +0.531671252659776,0.531671252659776,0.531604654184236,0.531392330329985,0.531079108893146,0.530718703441804,0.530365795246192,0.530076520807225,0.529908294214917,0.529908294214917, +0.675510798400275,0.675510798400275,0.675386915767689,0.67505751626296,0.674603781833796,0.674097665592451,0.67360117074134,0.673179937253213,0.672917928639585,0.672917928639585, +0.833854510152316,0.833854510152316,0.833693805779886,0.833182527761802,0.832539981450924,0.831853068242241,0.831173921667753,0.830559222537516,0.830114432598712,0.830114432598712, + +00:41:08, +0.154558772763146,0.154558772763146,0.154614640635114,0.15461699191351,0.154578494760828,0.15451586413336,0.154447429204102,0.154390405984374,0.154358210330549,0.154358210330549, +0.154558772763146,0.154558772763146,0.154614640635114,0.15461699191351,0.154578494760828,0.15451586413336,0.154447429204102,0.154390405984374,0.154358210330549,0.154358210330549, +0.179798070249776,0.179798070249776,0.179848375547666,0.179839655429563,0.179786239267003,0.179707078291108,0.179623020006708,0.179553773093654,0.17951484743649,0.17951484743649, +0.230457190791453,0.230457190791453,0.2304949412211,0.230462584734205,0.230377817675636,0.230264119375041,0.230147420141957,0.230052536272935,0.229999422681552,0.229999422681552, +0.306593934443885,0.306593934443885,0.306609650110019,0.306538302234772,0.306402839105805,0.306233708750591,0.306064514747546,0.305927995200622,0.305851541772226,0.305851541772226, +0.407625535824508,0.407625535824508,0.407606966793533,0.407477406391283,0.407267696788497,0.407018067010275,0.406772141066041,0.40657343470079,0.406461072908336,0.406461072908336, +0.531761270802474,0.531761270802474,0.531694679913577,0.531482404387618,0.531169259854208,0.530808945326796,0.53045612713512,0.530166926618256,0.529998742874524,0.529998742874524, +0.675576711047213,0.675576711047213,0.675452850251816,0.675123526262418,0.674669901006883,0.674163909066613,0.673667537015125,0.673246407418364,0.672984462769687,0.672984462769687, +0.833889448456119,0.833889448456119,0.833728779094079,0.833217615501072,0.832575215932798,0.831888461407838,0.831209472139388,0.830594914530926,0.830150225522392,0.830150225522392, + +00:41:09, +0.154674968190284,0.154674968190284,0.154730841784485,0.15473320042733,0.154694711573409,0.154632089269011,0.154563661717143,0.154506644026713,0.154474451340155,0.154474451340155, +0.154674968190284,0.154674968190284,0.154730841784485,0.15473320042733,0.154694711573409,0.154632089269011,0.154563661717143,0.154506644026713,0.154474451340155,0.154474451340155, +0.179915066570951,0.179915066570951,0.179965374944389,0.179956662957242,0.179903258438723,0.179824110610702,0.179740064796295,0.179670827610779,0.179631907286825,0.179631907286825, +0.230574381172612,0.230574381172612,0.230612130917296,0.230579785211297,0.230495037250809,0.230381362242825,0.230264685986681,0.230169820457029,0.230116717050678,0.230116717050678, +0.306708320926417,0.306708320926417,0.306724033650206,0.306652702937183,0.306517271658662,0.306348180764268,0.30617902609401,0.306042538233769,0.305966102540942,0.305966102540942, +0.407731504472085,0.407731504472085,0.40771293460317,0.407583403405263,0.407373744769743,0.407124177087579,0.406878312905448,0.406679656623454,0.40656732316427,0.40656732316427, +0.531851251707377,0.531851251707377,0.531784668413029,0.531572441196487,0.531259373528633,0.530899149877249,0.530546421640571,0.530257295004885,0.530089154085768,0.530089154085768, +0.675642592304507,0.675642592304507,0.675518753343358,0.675189504831054,0.674735988688091,0.674230120976764,0.673733871652384,0.673312845885209,0.673050965163492,0.673050965163492, +0.833924368795057,0.833924368795057,0.833763734426126,0.833252685195788,0.832610432287349,0.831923836354984,0.831245004301569,0.830630588133197,0.83018599999743,0.83018599999743, + +00:41:10, +0.154791167292711,0.154791167292711,0.15484704659515,0.154849412602656,0.154810932058676,0.15474831809509,0.154679897939923,0.154622885794869,0.15459069608465,0.15459069608465, +0.154791167292711,0.154791167292711,0.15484704659515,0.154849412602656,0.154810932058676,0.15474831809509,0.154679897939923,0.154622885794869,0.15459069608465,0.15459069608465, +0.180032060068247,0.180032060068247,0.180082371508277,0.180073667653617,0.180020274788771,0.17994114012305,0.179857106794049,0.179787879348796,0.179748964365196,0.179748964365196, +0.230691557724511,0.230691557724511,0.230729306783464,0.230696971861027,0.230612243003992,0.230498591295536,0.230381938023316,0.230287090838611,0.230233997620356,0.230233997620356, +0.306822681567083,0.306822681567083,0.306838391355742,0.306767077806067,0.306631678374655,0.306462626935139,0.306293511590918,0.306157055411488,0.306080637450774,0.306080637450774, +0.407837438332835,0.407837438332835,0.407818867637088,0.407689365637927,0.407479757951857,0.407230252341135,0.406984449895251,0.406785843674856,0.406673538536436,0.406673538536436, +0.531941195412489,0.531941195412489,0.531874619720577,0.531662440794583,0.53134944995444,0.530989317131217,0.53063667880064,0.530347626005242,0.530179527886799,0.530179527886799, +0.675708442206881,0.675708442206881,0.675584625077033,0.675255452003623,0.674802044912236,0.674296301357793,0.67380017468808,0.673379252688778,0.673117435856069,0.673117435856069, +0.833959271189811,0.833959271189811,0.833798671796726,0.833287736866716,0.832645630535439,0.831959193104641,0.831280518175362,0.830666243365489,0.830221756045052,0.830221756045052, + +00:41:11, +0.154907370040549,0.154907370040549,0.154963255037249,0.154965628409617,0.154927156186732,0.154864550581663,0.154796137842468,0.154739131258835,0.154706944534008,0.154706944534008, +0.154907370040549,0.154907370040549,0.154963255037249,0.154965628409617,0.154927156186732,0.154864550581663,0.154796137842468,0.154739131258835,0.154706944534008,0.154706944534008, +0.180149050720998,0.180149050720998,0.180199365218673,0.18019066949802,0.18013728829645,0.180058166807416,0.179974145979199,0.179904928286901,0.179866018650784,0.179866018650784, +0.230808720442607,0.230808720442607,0.230846468815057,0.230814144678833,0.230729434930598,0.230615806528555,0.230499176247209,0.230404347413005,0.230351264385897,0.230351264385897, +0.306937016380079,0.306937016380079,0.306952723240808,0.306881426855591,0.306746059267932,0.306577047277334,0.306407971252382,0.306271546747878,0.306195146515817,0.306195146515817, +0.407943337436849,0.407943337436849,0.407924765925357,0.407795293119334,0.407585736364899,0.407336292801008,0.407090552065521,0.406891995885074,0.406779719054916,0.406779719054916, +0.532031101955763,0.532031101955763,0.531964533874153,0.531752403219847,0.531439489169598,0.531079447126707,0.530726898653374,0.530437919657406,0.530269864315718,0.530269864315718, +0.675774260789012,0.675774260789012,0.675650465487514,0.67532136781483,0.674868069714086,0.67436245024454,0.67386644615713,0.67344562786405,0.673183874882438,0.673183874882438, +0.833994155661029,0.833994155661029,0.833833591226544,0.833322770534593,0.832680810697896,0.831994531677741,0.831316013781802,0.83070188024893,0.830257493686451,0.830257493686451, + +00:41:12, +0.155023576403966,0.155023576403966,0.155079467080964,0.155081847818389,0.155043383927723,0.154980786698838,0.154912381394845,0.154855380388646,0.154823196658245,0.154823196658245, +0.155023576403966,0.155023576403966,0.155079467080964,0.155081847818389,0.155043383927723,0.154980786698838,0.154912381394845,0.154855380388646,0.154823196658245,0.154823196658245, +0.180266038508569,0.180266038508569,0.180316356054951,0.180307668469812,0.180254298941095,0.180175190643099,0.180091182331004,0.180021974404324,0.179983070122802,0.179983070122802, +0.230925869322367,0.230925869322367,0.230963617007541,0.230931303660165,0.23084661302605,0.230733007937274,0.230616400653724,0.230521590175548,0.230468517342622,0.230468517342622, +0.307051325379591,0.307051325379591,0.307067029319575,0.306995750099907,0.306860414352627,0.30669144180497,0.306522405092503,0.306386012257028,0.306309629750149,0.306309629750149, +0.408049201814182,0.408049201814182,0.408030629498008,0.407901185879507,0.407691680038892,0.407442298497224,0.407196619446292,0.406998113284151,0.406885864749757,0.406885864749757, +0.532120971375101,0.532120971375101,0.532054410911641,0.531842328510171,0.531529491212024,0.531169539901672,0.530817081236765,0.530528175999405,0.530360163410572,0.530360163410572, +0.675840048085525,0.675840048085525,0.675716274609419,0.675387252299331,0.674934063128357,0.674428567671796,0.673932686094398,0.673511971445956,0.67325028227757,0.67325028227757, +0.834029022229332,0.834029022229332,0.833868492736218,0.833357786220124,0.832715972795519,0.832029852095185,0.831351491141892,0.830737498804616,0.830293212942792,0.830293212942792, + +00:41:13, +0.155139786353171,0.155139786353171,0.15519568269652,0.155198070799186,0.155159615251837,0.155097026416764,0.155028628567164,0.154971633154379,0.154939452427421,0.154939452427421, +0.155139786353171,0.155139786353171,0.15519568269652,0.155198070799186,0.155159615251837,0.155097026416764,0.155028628567164,0.154971633154379,0.154939452427421,0.154939452427421, +0.180383023410357,0.180383023410357,0.180433343996518,0.180424664548388,0.180371306702072,0.18029221160943,0.180208215828758,0.180139017680327,0.180100118760493,0.180100118760493, +0.231043004359271,0.231043004359271,0.231080751356393,0.231048448800483,0.230963777285784,0.230850195517098,0.230733611238233,0.230638819121587,0.230585756485868,0.230585756485868, +0.307165608579788,0.307165608579788,0.307181309606199,0.307110047553157,0.306974743642863,0.30680581053215,0.306636813125366,0.306500451953011,0.306424087167838,0.306424087167838, +0.408155031494851,0.408155031494851,0.408136458385037,0.408007043948433,0.407797589003821,0.407548269459773,0.407302652067562,0.40710419590209,0.406991975650966,0.406991975650966, +0.532210803708353,0.532210803708353,0.53214425087087,0.531932216703392,0.531619456119584,0.531259595494017,0.530907226588757,0.530618395069217,0.530450425209359,0.530450425209359, +0.675905804130997,0.675905804130997,0.675782052477323,0.675453105491734,0.675000025189717,0.674494653674302,0.6739988945347,0.673578283469375,0.673316658076386,0.673316658076386, +0.83406387091531,0.83406387091531,0.833903376346355,0.833392783943985,0.832751116849077,0.832065154377844,0.831386950276607,0.830773099053615,0.830328913835206,0.830328913835206, + +00:41:14, +0.155255999858415,0.155255999858415,0.155311901854183,0.155314297322266,0.155275850129306,0.155213269705635,0.155144879329579,0.155087889526154,0.155055711811636,0.155055711811636, +0.155255999858415,0.155255999858415,0.155311901854183,0.155314297322266,0.155275850129306,0.155213269705635,0.155144879329579,0.155087889526154,0.155055711811636,0.155055711811636, +0.180500005405792,0.180500005405792,0.18055032902281,0.180541657713174,0.180488311558779,0.180409229685769,0.180325246451784,0.180256058094202,0.180217164543134,0.180217164543134, +0.231160125548811,0.231160125548811,0.231197871857102,0.231165580095262,0.231080927705249,0.230967369263444,0.230850807996121,0.230756034246485,0.230702981810981,0.230702981810981, +0.307279865994827,0.307279865994827,0.307295564114821,0.307224319229465,0.307089047152748,0.306920153472965,0.306751195365046,0.306614865849887,0.306538518782939,0.306538518782939, +0.408260826508837,0.408260826508837,0.408242252616402,0.408112867356059,0.407903463289634,0.407654205718609,0.40740864995929,0.407210243768858,0.407098051788517,0.407098051788517, +0.532300598993318,0.532300598993318,0.532234053789621,0.532022067837299,0.531709383930091,0.531349613941592,0.530997334747241,0.530708576904766,0.530540649750024,0.530540649750024, +0.675971528959955,0.675971528959955,0.675847799125746,0.675518927426596,0.675065955932785,0.674560708286751,0.674065071512802,0.673644563969139,0.673383002313757,0.673383002313757, +0.834098701739522,0.834098701739522,0.833938242077531,0.833427763726823,0.832786242879307,0.832100438546559,0.831422391206888,0.830808681016962,0.830364596384794,0.830364596384794, + +00:41:15, +0.155372216889992,0.155372216889992,0.155428124524263,0.155430527357931,0.155392088530402,0.155329516535685,0.155261133652284,0.155204149474133,0.155171974781034,0.155171974781034, +0.155372216889992,0.155372216889992,0.155428124524263,0.155430527357931,0.155392088530402,0.155329516535685,0.155261133652284,0.155204149474133,0.155171974781034,0.155171974781034, +0.180616984474335,0.180616984474335,0.180667311113298,0.180658647943628,0.180605313490648,0.18052624485151,0.180442274179438,0.180373095625276,0.180334207450033,0.180334207450033, +0.23127723288649,0.23127723288649,0.231314978505168,0.231282697539986,0.231198064279902,0.231084529171739,0.230967990922787,0.230873235545614,0.230820193313319,0.230820193313319, +0.307394097638854,0.307394097638854,0.307409792859573,0.307338565142946,0.307203324896377,0.307034470641492,0.306865551825604,0.306729253961705,0.306652924609492,0.306652924609492, +0.408366586886083,0.408366586886083,0.408348012222025,0.408218656132298,0.408009302926243,0.407760107303648,0.407514613151401,0.407316256914387,0.407204093192345,0.407204093192345, +0.532390357267746,0.532390357267746,0.532323819705622,0.532111881949629,0.531799274681311,0.5314395952822,0.531087405750057,0.530798721543927,0.530630837070463,0.530630837070463, +0.676037222606879,0.676037222606879,0.675913514589163,0.675584718138427,0.67513185539213,0.674626731543784,0.674131217063422,0.673710812980029,0.673449315024504,0.673449315024504, +0.834133514722497,0.834133514722497,0.833973089950294,0.833462725589252,0.832821350906917,0.832135704622139,0.83145781395365,0.830844244715661,0.830400260612627,0.830400260612627, + +00:41:16, +0.155488437418237,0.155488437418237,0.15554435067711,0.155546760876521,0.155508330425441,0.155445766877191,0.155377391505516,0.15532041296852,0.155288241305802,0.155288241305802, +0.155488437418237,0.155488437418237,0.15554435067711,0.155546760876521,0.155508330425441,0.155445766877191,0.155377391505516,0.15532041296852,0.155288241305802,0.155288241305802, +0.180733960595476,0.180733960595476,0.180784290247482,0.180775635219237,0.180722312477139,0.180643257086079,0.180559298991107,0.180490130252904,0.18045124746053,0.18045124746053, +0.231394326367823,0.231394326367823,0.231432071296104,0.231399801130153,0.231315187005218,0.231201675237425,0.231085160013641,0.230990423014358,0.230937390988256,0.230937390988256, +0.307508303525999,0.307508303525999,0.307523995854569,0.307452785307699,0.307317576887835,0.307148762051795,0.306979882521086,0.3068436163025,0.306767304661526,0.306767304661526, +0.408472312656496,0.408472312656496,0.40845373723179,0.408324410307026,0.408115107943523,0.407865974244769,0.40762054167378,0.40742223536857,0.407310099892348,0.407310099892348, +0.532480078569334,0.532480078569334,0.532413548656553,0.532201659078067,0.531889128410956,0.531529539553589,0.531177439634995,0.530888829024524,0.53072098720852,0.53072098720852, +0.676102885106197,0.676102885106197,0.675979198901998,0.675650477661686,0.675197723602272,0.674692723479994,0.674197331221228,0.673777030536777,0.6735155962434,0.6735155962434, +0.834168309884735,0.834168309884735,0.834007919985159,0.833497669551857,0.832856440952585,0.832170952625365,0.831493218537772,0.830879790170688,0.830435906539745,0.830435906539745, + +00:41:17, +0.155604661413529,0.155604661413529,0.155660580283118,0.155662997848422,0.155624575784779,0.155562020700473,0.155493652859555,0.155436679979563,0.155404511356168,0.155404511356168, +0.155604661413529,0.155604661413529,0.155660580283118,0.155662997848422,0.155624575784779,0.155562020700473,0.155493652859555,0.155436679979563,0.155404511356168,0.155404511356168, +0.180850933748739,0.180850933748739,0.180901266404893,0.180892619519524,0.180839308497746,0.180760266368932,0.18067632086621,0.180607161956476,0.180568284553995,0.180568284553995, +0.231511405988337,0.231511405988337,0.231549150225435,0.231516890861272,0.231432295876677,0.231318807455953,0.231202315264102,0.231107596648115,0.231054574831173,0.231054574831173, +0.307622483670379,0.307622483670379,0.307638173113914,0.307566979737811,0.307431803141188,0.307263027717926,0.307094187465528,0.306957952886295,0.306881658953057,0.306881658953057, +0.408578003849945,0.408578003849945,0.408559427675544,0.40843012991008,0.408220878371311,0.407971806571816,0.40772643555628,0.407528179161264,0.407416071918388,0.407416071918388, +0.532569762935728,0.532569762935728,0.532503240680039,0.532291399260248,0.531978945156689,0.53161944679346,0.531267436439793,0.530978899384328,0.530811100201987,0.530811100201987, +0.676168516492291,0.676168516492291,0.676044852098627,0.675716206030783,0.675263560597684,0.674758684129928,0.674263414020838,0.673843216674067,0.673581846005168,0.673581846005168, +0.834203087246705,0.834203087246705,0.834042732202612,0.833532595635195,0.832891513036958,0.832206182576984,0.831528604980108,0.830915317402985,0.830471534187156,0.830471534187156, + +00:41:18, +0.155720888846287,0.155720888846287,0.155776813312721,0.155779238244059,0.155740824578815,0.155678277975891,0.155609917684722,0.15555295047755,0.155520784902402,0.155520784902402, +0.155720888846287,0.155720888846287,0.155776813312721,0.155779238244059,0.155740824578815,0.155678277975891,0.155609917684722,0.15555295047755,0.155520784902402,0.155520784902402, +0.18096790391368,0.18096790391368,0.181018239565097,0.18100960082404,0.180956301531992,0.180877272679556,0.180793339784199,0.180724190715411,0.180685318709833,0.180685318709833, +0.231628471743571,0.231628471743571,0.231666215288697,0.231633966728864,0.231549390889777,0.231435925822788,0.231319456669606,0.231224756442293,0.231171744837466,0.231171744837466, +0.3077366380861,0.3077366380861,0.307752324651697,0.307681148447357,0.307546003670495,0.307377267653923,0.307208466672952,0.307072263727097,0.306995987498086,0.306995987498086, +0.408683660496263,0.408683660496263,0.4086650835831,0.408535814971263,0.40832661423941,0.408077604314595,0.407832294828712,0.407634088322292,0.407522009300292,0.407522009300292, +0.532659410404525,0.532659410404525,0.532592895813658,0.532381102533757,0.532068724956119,0.53170931703946,0.53135739620214,0.531068932661062,0.530901176088607,0.530901176088607, +0.676234116799493,0.676234116799493,0.676110474213378,0.675781903280082,0.675329366412787,0.674824613528079,0.674329465496822,0.673909371426531,0.673648064344482,0.673648064344482, +0.834237846828847,0.834237846828847,0.834077526623112,0.83356750385979,0.832926567180654,0.832241394497716,0.831563973301477,0.830950826433466,0.830507143575841,0.830507143575841, + +00:41:19, +0.155837119686972,0.155837119686972,0.155893049736396,0.155895482033901,0.155857076777991,0.155794538673848,0.15572618595138,0.155669224432813,0.155637061914817,0.155637061914817, +0.155837119686972,0.155837119686972,0.155893049736396,0.155895482033901,0.155857076777991,0.155794538673848,0.15572618595138,0.155669224432813,0.155637061914817,0.155637061914817, +0.181084871069885,0.181084871069885,0.181135209707688,0.181126579112368,0.181073291559435,0.180994275997472,0.180910355724555,0.180841216509161,0.180802349907478,0.180802349907478, +0.231745523629075,0.231745523629075,0.231783266481438,0.23175102872846,0.231666472040023,0.231553030333407,0.231436584225597,0.231341902392314,0.231288901002542,0.231288901002542, +0.307850766787253,0.307850766787253,0.307866450481994,0.307795291450397,0.307660178489798,0.30749148187381,0.307322720157366,0.307186548838904,0.307110290310603,0.307110290310603, +0.408789282625247,0.408789282625247,0.40877070498423,0.408641465520339,0.408432315577583,0.408183367502875,0.407938119520854,0.407739962881436,0.407627912067846,0.407627912067846, +0.532749021013268,0.532749021013268,0.532682514094934,0.532470768936128,0.532158467846809,0.531799150329188,0.531447318959671,0.531158928892397,0.530991214906071,0.530991214906071, +0.676299686062085,0.676299686062085,0.676176065280528,0.675847569443895,0.675395141081955,0.674890511708894,0.6743954856837,0.673975494828755,0.673714251295967,0.673714251295967, +0.834272588651571,0.834272588651571,0.834112303267084,0.833602394246136,0.832961603404259,0.832276588408249,0.83159932352267,0.830986317283013,0.830542734726745,0.830542734726745, + +00:41:20, +0.155953353906089,0.155953353906089,0.156009289524662,0.156011729188459,0.155973332352791,0.155910802764791,0.155842457629936,0.155785501815723,0.155753342363768,0.155753342363768, +0.155953353906089,0.155953353906089,0.156009289524662,0.156011729188459,0.155973332352791,0.155910802764791,0.155842457629936,0.155785501815723,0.155753342363768,0.155753342363768, +0.181201835196971,0.181201835196971,0.181252176812291,0.181243554364123,0.181190278559661,0.181111276302231,0.181027368666792,0.180958239317211,0.180919378126396,0.180919378126396, +0.231862561640411,0.231862561640411,0.231900303799217,0.231868076855606,0.231783539322936,0.231670120983296,0.231553697927533,0.23145903449361,0.231406043321821,0.231406043321821, +0.307964869787916,0.307964869787916,0.307980550618871,0.307909408760979,0.307774327613128,0.307605670391601,0.307436947932765,0.307300808235699,0.307224567404585,0.307224567404585, +0.408894870266656,0.408894870266656,0.408876291908673,0.408747081587036,0.40853798241556,0.40828909616639,0.408043909662446,0.407845802868444,0.407733780250805,0.407733780250805, +0.532838594799454,0.532838594799454,0.532772095561344,0.532560398504844,0.532248173866268,0.53188894670019,0.531537204749975,0.531248888115953,0.53108121669202,0.53108121669202, +0.676365224314302,0.676365224314302,0.676241625334307,0.675913204556486,0.675460884639513,0.674956378706772,0.674461474615944,0.674041586915275,0.673780406894198,0.673780406894198, +0.834307312735255,0.834307312735255,0.834147062154925,0.833637266814701,0.83299662172833,0.832311764329242,0.831634655664447,0.831021789972478,0.830578307660787,0.830578307660787, + +00:41:21, +0.156069591474182,0.156069591474182,0.156125532648081,0.156127979678285,0.156089591273738,0.156027070219207,0.155958732690837,0.155901782596697,0.155869626219653,0.155869626219653, +0.156069591474182,0.156069591474182,0.156125532648081,0.156127979678285,0.156089591273738,0.156027070219207,0.155958732690837,0.155901782596697,0.155869626219653,0.155869626219653, +0.181318796274588,0.181318796274588,0.181369140858566,0.181360526558952,0.18130726251229,0.181228273573415,0.181144378590456,0.181075259119074,0.181036403346086,0.181036403346086, +0.231979585773155,0.231979585773155,0.232017327237606,0.231985111105857,0.231900592734045,0.231787197767957,0.231670797770883,0.231576152741626,0.231523171790734,0.231523171790734, +0.308078947102153,0.308078947102153,0.308094625076376,0.308023500393136,0.3078884510545,0.307719833221293,0.307551150013133,0.307415041931451,0.307338818793996,0.307338818793996, +0.409000423450212,0.409000423450212,0.40898184438613,0.408852663201048,0.40864361478303,0.408394790334836,0.408149665283192,0.407951608313027,0.407839613878883,0.407839613878883, +0.532928131800525,0.532928131800525,0.532861640250312,0.532649991277337,0.532337843051955,0.531978706189963,0.531627053610585,0.5313388103693,0.531171181484044,0.531171181484044, +0.67643073159033,0.67643073159033,0.676307154408895,0.675978808652072,0.675526597119737,0.675022214556059,0.674527432327977,0.674107647720577,0.673846531173702,0.673846531173702, +0.834342019100252,0.834342019100252,0.834181803307003,0.833672121585919,0.833031622173394,0.832346922281324,0.831669969747538,0.831057244522684,0.830613862398853,0.830613862398853, + +00:41:22, +0.15618583236184,0.15618583236184,0.156241779077254,0.156244233473971,0.156205853511401,0.156143341007624,0.156075011104573,0.156018066746192,0.155985913452909,0.155985913452909, +0.15618583236184,0.15618583236184,0.156241779077254,0.156244233473971,0.156205853511401,0.156143341007624,0.156075011104573,0.156018066746192,0.155985913452909,0.155985913452909, +0.181435754282415,0.181435754282415,0.181486101826201,0.181477495676531,0.181424243396971,0.181345267790639,0.181261385475122,0.181192275894297,0.181153425546076,0.181153425546076, +0.23209659602289,0.23209659602289,0.232134336792188,0.232102131474781,0.232017632268892,0.2319042606829,0.231787883751129,0.231693257131819,0.231640286404724,0.231640286404724, +0.308192998744017,0.308192998744017,0.308208673868547,0.308137566360891,0.308002548827919,0.307833970376874,0.30766532641244,0.307529249940119,0.307453044492786,0.307453044492786, +0.409105942205603,0.409105942205603,0.409087362446264,0.408958210392028,0.40874921270965,0.408500450037872,0.408255386412759,0.408057379244861,0.40794541298176,0.40794541298176, +0.533017632053876,0.533017632053876,0.532951148199211,0.532739547290989,0.53242747544128,0.532068428835953,0.531716865578989,0.531428695689956,0.531261109319682,0.531261109319682, +0.676496207924306,0.676496207924306,0.676372652538426,0.67604438176482,0.675592278556855,0.675088019291058,0.674593358854173,0.674173677279098,0.673912624168956,0.673912624168956, +0.83437670776688,0.83437670776688,0.834216526743655,0.833706958580195,0.833066604759949,0.832382062285092,0.831705265792643,0.831092680954421,0.8306493989618,0.8306493989618, + +00:41:23, +0.156302076539692,0.156302076539692,0.156358028782826,0.156360490546155,0.156322119036388,0.156259615100614,0.156191292841675,0.156134354234707,0.156102204034019,0.156102204034019, +0.156302076539692,0.156302076539692,0.156358028782826,0.156360490546155,0.156322119036388,0.156259615100614,0.156191292841675,0.156134354234707,0.156102204034019,0.156102204034019, +0.181552709200165,0.181552709200165,0.181603059694916,0.181594461696569,0.181541221193386,0.181462258933547,0.1813783893004,0.181309289622458,0.181270444705929,0.181270444705929, +0.232213592385214,0.232213592385214,0.232251332458558,0.232219137957957,0.232134657923033,0.232021309723649,0.231904955863762,0.231810347659657,0.231757387159246,0.231757387159246, +0.308307024727546,0.308307024727546,0.308322697009409,0.308251606678252,0.308116620947376,0.307948081872315,0.307779477144641,0.307643432275646,0.307567244514893,0.307567244514893, +0.409211426562477,0.409211426562477,0.409192846118704,0.409063723189595,0.408854776225038,0.408606075305124,0.408361073080779,0.408163115693583,0.408051177589079,0.408051177589079, +0.533107095596848,0.533107095596848,0.533040619445366,0.532829066583132,0.5325170710716,0.532158114675555,0.53180664069262,0.53151854411539,0.531351000236424,0.531351000236424, +0.676561653350319,0.676561653350319,0.676438119756984,0.676109923928849,0.675657928985045,0.675153792946018,0.674659254228857,0.674239675625229,0.67397868591439,0.67397868591439, +0.834411378755431,0.834411378755431,0.834251232485188,0.833741777817906,0.833101569508462,0.832417184361114,0.831740543820431,0.831128099288451,0.830684917370454,0.830684917370454, + +00:41:24, +0.156418323978408,0.156418323978408,0.156474281735484,0.156476750865514,0.156438387819349,0.15637589246879,0.156307577872716,0.156250645032783,0.156218497933504,0.156218497933504, +0.156418323978408,0.156418323978408,0.156474281735484,0.156476750865514,0.156438387819349,0.15637589246879,0.156307577872716,0.156250645032783,0.156218497933504,0.156218497933504, +0.181669661007581,0.181669661007581,0.181720014444463,0.181711424598807,0.181658195881248,0.181579246981816,0.181495390045929,0.181426300283166,0.181387460805235,0.181387460805235, +0.232330574855736,0.232330574855736,0.232368314232321,0.232336130550976,0.232251669692032,0.232138344885739,0.232022014104289,0.231927424320621,0.231874474049768,0.231874474049768, +0.308421025066765,0.308421025066765,0.308436694512972,0.308365621359213,0.308230667426849,0.308062167721578,0.307893602223681,0.307757588951965,0.307681418874243,0.307681418874243, +0.409316876550447,0.409316876550447,0.409298295433042,0.409169201623333,0.408960305358776,0.408711666166176,0.408466725316845,0.408268817688795,0.408156907730446,0.408156907730446, +0.533196522466735,0.533196522466735,0.53313005402605,0.532918549191048,0.532606629980225,0.532247763746114,0.531896378988862,0.531608355683021,0.531440854271707,0.531440854271707, +0.67662706790241,0.67662706790241,0.676503556098603,0.676175435178229,0.675723548438439,0.675219535555144,0.674725118486305,0.67430564279331,0.674044716444385,0.674044716444385, +0.834446032086165,0.834446032086165,0.834285920551881,0.833776579319397,0.833136516439369,0.832452288529929,0.831775803851542,0.831163499545504,0.83072041764561,0.83072041764561, + +00:41:25, +0.156534574648701,0.156534574648701,0.156590537905954,0.156593014402767,0.156554659830978,0.156492173082806,0.156423866168313,0.156366939111003,0.156334795121931,0.156334795121931, +0.156534574648701,0.156534574648701,0.156590537905954,0.156593014402767,0.156554659830978,0.156492173082806,0.156423866168313,0.156366939111003,0.156334795121931,0.156334795121931, +0.181786609684435,0.181786609684435,0.181836966054624,0.181828384363015,0.181775167440301,0.181696231915155,0.181612387691379,0.181543307856062,0.18150447382362,0.18150447382362, +0.232447543430076,0.232447543430076,0.232485282109096,0.232453109249441,0.232368667571468,0.232255366164717,0.232139058468225,0.232044487110204,0.231991547071768,0.231991547071768, +0.308534999775688,0.308534999775688,0.308550666393235,0.308479610417756,0.308344688280301,0.308176227938608,0.308007701663491,0.307871719982994,0.307795567584747,0.307795567584747, +0.409422292199091,0.409422292199091,0.409403710418831,0.409274645722785,0.40906580014041,0.408817222650582,0.408572343150517,0.408374485260063,0.408262603435433,0.408262603435433, +0.533285912700778,0.533285912700778,0.533219451978485,0.533007995151966,0.532696152204411,0.532337376084926,0.531986080505051,0.531698130430217,0.531530671462921,0.531530671462921, +0.67669245161457,0.67669245161457,0.676568961597272,0.676240915546982,0.675789136951118,0.675285247152589,0.674790951660747,0.674371578817631,0.67411071579327,0.67411071579327, +0.834480667779315,0.834480667779315,0.834320590963982,0.833811363104985,0.833171445573078,0.832487374812045,0.831811045906585,0.831198881746281,0.830755899808033,0.830755899808033, + +00:41:26, +0.156650828521326,0.156650828521326,0.156706797265007,0.156709281128675,0.156670935042007,0.156608456913359,0.156540157699122,0.156483236439992,0.156451095569904,0.156451095569904, +0.156650828521326,0.156650828521326,0.156706797265007,0.156709281128675,0.156670935042007,0.156608456913359,0.156540157699122,0.156483236439992,0.156451095569904,0.156451095569904, +0.181903555210533,0.181903555210533,0.181953914505213,0.181945340968995,0.181892135850319,0.181813213713301,0.181729382216452,0.181660312320818,0.181621483740737,0.181621483740737, +0.232564498103867,0.232564498103867,0.232602236084512,0.232570074048966,0.232485651556928,0.232372373556141,0.232256088951098,0.232161536023909,0.232108606220737,0.232108606220737, +0.308648948868312,0.308648948868312,0.308664612664181,0.30859357386785,0.308458683521686,0.308290262537341,0.308121775477988,0.307985825382638,0.307909690660304,0.307909690660304, +0.409527673537948,0.409527673537948,0.409509091105591,0.409380055517463,0.409171260599448,0.408922744787854,0.408677926611316,0.408480118436917,0.408368264733572,0.408368264733572, +0.53337526633617,0.53337526633617,0.533308813339846,0.533097404503069,0.532785637781368,0.532426951729234,0.532075745278469,0.531787868394295,0.531620451847402,0.531620451847402, +0.676757804520745,0.676757804520745,0.67663433628693,0.676306365069083,0.675854694557116,0.67535092777246,0.674856753786361,0.674437483732437,0.67417668399533,0.67417668399533, +0.834515285855083,0.834515285855083,0.83435524374171,0.833846129194957,0.833206356929968,0.83252244322794,0.831846270006139,0.831234245911452,0.83079136387846,0.83079136387846, + +00:41:27, +0.156767085567077,0.156767085567077,0.156823059783453,0.15682555101404,0.156787213423212,0.156724743931187,0.156656452435842,0.156599536990416,0.156567399248074,0.156567399248074, +0.156767085567077,0.156767085567077,0.156823059783453,0.15682555101404,0.156787213423212,0.156724743931187,0.156656452435842,0.156599536990416,0.156567399248074,0.156567399248074, +0.182020497565712,0.182020497565712,0.182070859776074,0.182062294396581,0.182009101091109,0.181930192356026,0.181846373600883,0.181777313657137,0.181738490536274,0.181738490536274, +0.232681438872751,0.232681438872751,0.232719176154209,0.232687024945177,0.232602621644015,0.232489367055583,0.23237310554845,0.232278571057252,0.232225651492177,0.232225651492177, +0.308762872358623,0.308762872358623,0.308778533339782,0.308707511723451,0.30857265316494,0.308404271531696,0.308235823681078,0.308099905164791,0.308023788114801,0.308023788114801, +0.409633020596523,0.409633020596523,0.409614437522804,0.409485431036839,0.409276686765365,0.409028232607471,0.408783475728728,0.408585717248848,0.408473891654363,0.408473891654363, +0.533464583410053,0.533464583410053,0.533398138147254,0.533186777281487,0.532875086748251,0.532516490716235,0.532165373346351,0.531877569612522,0.53171019546244,0.53171019546244, +0.676823126654828,0.676823126654828,0.676699680201467,0.676371783778458,0.675920221290418,0.675416577448814,0.674922524897278,0.674503357571922,0.674242621084799,0.674242621084799, +0.83454988633364,0.83454988633364,0.834389878905255,0.83388087760957,0.833241250530386,0.832557493798063,0.831881476170753,0.831269592061658,0.830826809877593,0.830826809877593, + +00:41:28, +0.156883345756794,0.156883345756794,0.156939325432145,0.156941824029707,0.156903494945411,0.156841034107069,0.156772750349213,0.156715840732983,0.15668370612713,0.15668370612713, +0.156883345756794,0.156883345756794,0.156939325432145,0.156941824029707,0.156903494945411,0.156841034107069,0.156772750349213,0.156715840732983,0.15668370612713,0.15668370612713, +0.182137436729838,0.182137436729838,0.182187801847084,0.182179244625637,0.182126063142509,0.182047167823131,0.181963361824434,0.181894311844753,0.181855494189948,0.181855494189948, +0.232798365732384,0.232798365732384,0.232836102313842,0.232803961933711,0.23271957782834,0.232606346658623,0.232490108255832,0.232395592205761,0.232342682881604,0.232342682881604, +0.308876770260596,0.308876770260596,0.308892428433997,0.308821423998502,0.308686597223991,0.308518254935583,0.308349846286652,0.308213959343333,0.308137859962111,0.308137859962111, +0.409738333404281,0.409738333404281,0.409719749699914,0.40959077231035,0.409382078667596,0.409133686138875,0.408888990532201,0.408691281725314,0.408579484227265,0.408579484227265, +0.533553863959519,0.533553863959519,0.533487426437782,0.533276113524301,0.53296449914217,0.532605993083071,0.53225496474588,0.531967234122116,0.531799902345271,0.531799902345271, +0.676888418050669,0.676888418050669,0.676764993374727,0.676437171708983,0.675985717184963,0.675482196215661,0.674988265027583,0.674569200370233,0.674308527095863,0.674308527095863, +0.834584469235131,0.834584469235131,0.834424496474776,0.833915608369052,0.83327612639465,0.832592526542833,0.831916664420947,0.831304920217508,0.830862237826109,0.830862237826109, + +00:41:29, +0.156999609061354,0.156999609061354,0.157055594181977,0.15705810014656,0.157019779579462,0.156957327411827,0.156889051410017,0.156832147638444,0.156800016177804,0.156800016177804, +0.156999609061354,0.156999609061354,0.157055594181977,0.15705810014656,0.157019779579462,0.156957327411827,0.156889051410017,0.156832147638444,0.156800016177804,0.156800016177804, +0.18225437268281,0.18225437268281,0.182304740698149,0.182296191636057,0.182243021984386,0.182164140094448,0.182080346866903,0.182011306863432,0.181972494681508,0.181972494681508, +0.232915278678432,0.232915278678432,0.232953014559073,0.232920885010217,0.232836520105526,0.232723312360855,0.232607097068806,0.232512599464976,0.232459700384542,0.232459700384542, +0.308990642588188,0.308990642588188,0.30900629796077,0.308935310706932,0.308800515712749,0.308632212762895,0.30846384330859,0.308327987932129,0.308251906216095,0.308251906216095, +0.409843611990655,0.409843611990655,0.409825027666333,0.409696079367396,0.409487436335542,0.409239105411472,0.40899447105115,0.408796811895737,0.408685042481706,0.408685042481706, +0.533643108021608,0.533643108021608,0.533576678248453,0.533365413268541,0.533053875000181,0.532695458866838,0.53234451951419,0.532056861960245,0.531889572533083,0.531889572533083, +0.676953678742067,0.676953678742067,0.676830275840505,0.676502528894488,0.67605118227464,0.675547784106963,0.675053974211308,0.674635012161468,0.674374402062658,0.674374402062658, +0.834619034579669,0.834619034579669,0.834459096470405,0.8339503214936,0.83331098454305,0.832627541482638,0.83195183477721,0.831340230399584,0.830897647744652,0.830897647744652, + +00:41:30, +0.157115875451677,0.157115875451677,0.157171866003885,0.157174379335526,0.157136067296265,0.157073623816323,0.157005355589078,0.15694845767759,0.156916329370869,0.156916329370869, +0.157115875451677,0.157115875451677,0.157171866003885,0.157174379335526,0.157136067296265,0.157073623816323,0.157005355589078,0.15694845767759,0.156916329370869,0.156916329370869, +0.182371305404556,0.182371305404556,0.182421676309207,0.18241313540777,0.18235997759664,0.18228110914984,0.182197328708115,0.182128298692972,0.182089491990734,0.182089491990734, +0.233032177706574,0.233032177706574,0.233069912885577,0.233037794170355,0.232953448471211,0.232840264157885,0.232724071982949,0.232629592830448,0.232576703996531,0.232576703996531, +0.309104489355347,0.309104489355347,0.309120141934035,0.309049171862657,0.308914408645116,0.308746145027515,0.308577814760757,0.308441990945035,0.308365926890601,0.308365926890601, +0.40994885638504,0.40994885638504,0.409930271451433,0.409801352237342,0.409592759798568,0.409344490454631,0.409099917314952,0.408902307789499,0.408790566447073,0.408790566447073, +0.533732315633314,0.533732315633314,0.533665893616241,0.53345467655119,0.533143214359293,0.532784888104581,0.532434037688364,0.532146453164025,0.531979206063013,0.531979206063013, +0.677018908762774,0.677018908762774,0.676895527632547,0.676567855368757,0.676116616593289,0.675613341156632,0.675119652482442,0.674700792979675,0.674440246019276,0.674440246019276, +0.834653582387338,0.834653582387338,0.834493678912243,0.833985017003384,0.833345824995844,0.832662538637837,0.831986987260002,0.831375522628436,0.830933039653836,0.830933039653836, + +00:41:31, +0.157232144898727,0.157232144898727,0.157288140868844,0.157290661567575,0.157252358066763,0.157189923291463,0.157121662857262,0.157064770821254,0.157032645677141,0.157032645677141, +0.157232144898727,0.157232144898727,0.157288140868844,0.157290661567575,0.157252358066763,0.157189923291463,0.157121662857262,0.157064770821254,0.157032645677141,0.157032645677141, +0.182488234875037,0.182488234875037,0.182538608660226,0.18253007592073,0.182476929959201,0.182398074969203,0.182314307327929,0.182245287313199,0.182206486097438,0.182206486097438, +0.233149062812497,0.233149062812497,0.233186797289043,0.233154689409797,0.23307036292104,0.232957202045329,0.232841032993847,0.232746572297738,0.232693693713119,0.232693693713119, +0.309218310576006,0.309218310576006,0.30923396036771,0.309163007479581,0.309028276034976,0.308860051743312,0.308691760657008,0.308555968395892,0.308479921999464,0.308479921999464, +0.410054066616793,0.410054066616793,0.41003548108455,0.409906590949516,0.409698049086002,0.409449841297685,0.409205329352948,0.409007769435951,0.408896056152722,0.408896056152722, +0.533821486831578,0.533821486831578,0.533755072578067,0.533543903409176,0.533232517256462,0.532874280833293,0.532523519305437,0.532236007770525,0.532068802972151,0.532068802972151, +0.677084108146494,0.677084108146494,0.676960748784554,0.676633151165521,0.676182020174705,0.675678867398534,0.675185299874922,0.674766542858858,0.674506058999756,0.674506058999756, +0.834688112678195,0.834688112678195,0.834528243820361,0.834019694918543,0.833380647773262,0.832697518028761,0.832022121889753,0.831410796924584,0.830968413574247,0.830968413574247, + +00:41:32, +0.157348417373505,0.157348417373505,0.157404418747874,0.157406946813715,0.157368651861937,0.15730622580819,0.157237973185474,0.157181087040311,0.157148965067476,0.157148965067476, +0.157348417373505,0.157348417373505,0.157404418747874,0.157406946813715,0.157368651861937,0.15730622580819,0.157237973185474,0.157181087040311,0.157148965067476,0.157148965067476, +0.182605161074244,0.182605161074244,0.182655537731206,0.182647013154928,0.18259387905203,0.182515037532462,0.182431282706234,0.182362272703973,0.182323476981461,0.182323476981461, +0.233265933991905,0.233265933991905,0.233303667765168,0.233271570724227,0.233187263450672,0.233074126018816,0.232957980097099,0.232863537862423,0.232810669529868,0.232810669529868, +0.309332106264085,0.309332106264085,0.309347753275701,0.309276817571595,0.309142117896204,0.308973932924142,0.308805681011182,0.308669920298528,0.308593891556504,0.308593891556504, +0.410159242715238,0.410159242715238,0.410140656594987,0.41001179553321,0.409803304227136,0.409555157969933,0.409310707194442,0.409113196864404,0.409001511627968,0.409001511627968, +0.533910621653292,0.533910621653292,0.533844215170806,0.533633093879383,0.533321783728598,0.53296363708992,0.532612964402392,0.532325525816761,0.532158363297532,0.532158363297532, +0.677149276926883,0.677149276926883,0.677025939330178,0.676698416318468,0.676247393052633,0.675744362866486,0.675250916422639,0.67483226183297,0.674571841038092,0.674571841038092, +0.834722625472264,0.834722625472264,0.834562791214803,0.834054355259187,0.833415452895505,0.832732479675709,0.832057238686863,0.831446053308518,0.831003769526438,0.831003769526438, + +00:41:33, +0.157464692847057,0.157464692847057,0.157520699612034,0.157523235044998,0.157484948652812,0.157422531337493,0.157354286544663,0.157297406305676,0.157265287512773,0.157265287512773, +0.157464692847057,0.157464692847057,0.157520699612034,0.157523235044998,0.157484948652812,0.157422531337493,0.157354286544663,0.157297406305676,0.157265287512773,0.157265287512773, +0.182722083982197,0.182722083982197,0.182772463502177,0.18276394709038,0.18271082485512,0.182631996819574,0.182548254822948,0.182479254845184,0.182440464622678,0.182440464622678, +0.233382791240508,0.233382791240508,0.233420524309662,0.233388438109338,0.233304150055777,0.233191036073985,0.233074913288314,0.232980489520088,0.232927631442351,0.232927631442351, +0.309445876433491,0.309445876433491,0.309461520671901,0.309390602152575,0.309255934242659,0.309087788583848,0.308919575837106,0.308783846666759,0.308707835575533,0.308707835575533, +0.41026438470966,0.41026438470966,0.410245798012008,0.41011696601768,0.409908525251226,0.409660440500636,0.409416050868704,0.409218590104135,0.409106932902094,0.409106932902094, +0.533999720135299,0.533999720135299,0.533933321431281,0.533722247998642,0.533411013812559,0.533052956911357,0.532702373016163,0.532415007339702,0.532247887076146,0.532247887076146, +0.677214415137551,0.677214415137551,0.67709109930302,0.676763650861236,0.676312735260771,0.675809827594258,0.675316502159434,0.674897949935915,0.674637592168229,0.674637592168229, +0.834757120789543,0.834757120789543,0.834597321115583,0.834088998045397,0.833450240382744,0.832767423598952,0.832092337671702,0.831481291800699,0.831039107530935,0.831039107530935, + +00:41:34, +0.157580971290467,0.157580971290467,0.157636983432424,0.157639526232515,0.157601248410455,0.1575388398504,0.157470602905819,0.157413728588309,0.157381612983971,0.157381612983971, +0.157580971290467,0.157580971290467,0.157636983432424,0.157639526232515,0.157601248410455,0.1575388398504,0.157470602905819,0.157413728588309,0.157381612983971,0.157381612983971, +0.182839003578951,0.182839003578951,0.1828893859532,0.182880877707138,0.182827767348493,0.182748952810525,0.182665223658024,0.182596233716753,0.182557449000992,0.182557449000992, +0.233499634554031,0.233499634554031,0.233537366918246,0.233505291560838,0.233421022732036,0.233307932206487,0.233191832563114,0.233097427266332,0.233044579446153,0.233044579446153, +0.309559621098119,0.309559621098119,0.309575262570189,0.309504361236385,0.30936972508819,0.30920161873626,0.309033445148596,0.308897747514388,0.308821754070346,0.308821754070346, +0.41036949262931,0.41036949262931,0.410350905364841,0.410222102432146,0.410013712187492,0.409765688919019,0.409521360404968,0.409323949184385,0.409212320004345,0.409212320004345, +0.534088782314392,0.534088782314392,0.534022391396266,0.533811365803735,0.533500207545153,0.53314224033445,0.532791745183635,0.532504452376266,0.532337374344931,0.532337374344931, +0.677279522812057,0.677279522812057,0.67715622873664,0.676828854827415,0.676378046832769,0.675875261615572,0.675382057119104,0.674963607201553,0.674703312424064,0.674703312424064, +0.83479159865,0.83479159865,0.834631833542684,0.834123623297225,0.833485010255119,0.832802349818731,0.832127418864612,0.831516512421559,0.831074427608233,0.831074427608233, + +00:41:35, +0.157697252674864,0.157697252674864,0.157753270180186,0.157755820347401,0.157717551105971,0.157655151317981,0.157586922239972,0.157530053859206,0.157497941452051,0.157497941452051, +0.157697252674864,0.157697252674864,0.157753270180186,0.157755820347401,0.157717551105971,0.157655151317981,0.157586922239972,0.157530053859206,0.157497941452051,0.157497941452051, +0.182955919844588,0.182955919844588,0.183006305064367,0.182997804985282,0.182944706512203,0.182865905485334,0.182782189191442,0.182713209298632,0.18267443009634,0.18267443009634, +0.233616463928207,0.233616463928207,0.233654195586653,0.233622131074443,0.233537881475143,0.233424814411987,0.233308737917132,0.233214351096762,0.233161513536869,0.233161513536869, +0.309673340271849,0.309673340271849,0.309688978984433,0.309618094836877,0.30948349044663,0.309315423395196,0.309147288959453,0.309011622855203,0.308935647054726,0.308935647054726, +0.410474566503401,0.410474566503401,0.41045597868268,0.410327204805792,0.410118865065118,0.409870903254271,0.409626635832429,0.409429274134359,0.40931767296393,0.40931767296393, +0.534177808227314,0.534177808227314,0.534111425102486,0.533900447331394,0.533589364963139,0.533231487395994,0.532881080941644,0.532593860963321,0.532426825140775,0.532426825140775, +0.677344599983916,0.677344599983916,0.677221327664544,0.676894028250549,0.67644332780223,0.675940664964101,0.675447581335394,0.675029233663692,0.674769001839445,0.674769001839445, +0.834826059073572,0.834826059073572,0.834666328516062,0.834158231034692,0.833519762532744,0.832837258355258,0.832162482285902,0.831551715191498,0.831109729778796,0.831109729778796, + +00:41:36, +0.157813536971414,0.157813536971414,0.157869559826504,0.157872117360829,0.157833856710509,0.157771465711346,0.157703244518194,0.157646382089409,0.157614272888036,0.157614272888036, +0.157813536971414,0.157813536971414,0.157869559826504,0.157872117360829,0.157833856710509,0.157771465711346,0.157703244518194,0.157646382089409,0.157614272888036,0.157614272888036, +0.183072832759221,0.183072832759221,0.183123220815801,0.183114728904921,0.183061642326335,0.18298285482405,0.182899151403216,0.182830181570804,0.182791407888686,0.182791407888686, +0.233733279358785,0.233733279358785,0.233771010310626,0.233738956645883,0.2336547262808,0.233541682686157,0.233425629346014,0.233331261007001,0.233278433710109,0.233278433710109, +0.309787033968549,0.309787033968549,0.309802669928486,0.30973180296789,0.309597230331801,0.30942920257446,0.309261107283465,0.309125472702983,0.309049514542445,0.309049514542445, +0.410579606361112,0.410579606361112,0.410561017994682,0.410432273167767,0.410223983913252,0.409976083535546,0.40973187718025,0.409534564983224,0.409422991810023,0.409422991810023, +0.534266797910759,0.534266797910759,0.534200422586615,0.533989492618302,0.533678486103229,0.533320698132737,0.532970380326974,0.532683233137687,0.532516239500519,0.532516239500519, +0.677409646686593,0.677409646686593,0.677286396120195,0.676959171164134,0.676508578202708,0.676006037673472,0.675513074842004,0.675094829356094,0.674834660448173,0.674834660448173, +0.834860502080171,0.834860502080171,0.834700806055644,0.834192821277793,0.833554497235701,0.832872149228714,0.832197527955856,0.831586900130889,0.83114501406306,0.83114501406306, + +00:41:37, +0.157929824151327,0.157929824151327,0.157985852342601,0.157988417244016,0.157950165195257,0.157887783001648,0.157819569711599,0.157762713249999,0.157730607262989,0.157730607262989, +0.157929824151327,0.157929824151327,0.157985852342601,0.157988417244016,0.157950165195257,0.157887783001648,0.157819569711599,0.157762713249999,0.157730607262989,0.157730607262989, +0.183189742302996,0.183189742302996,0.183240133187654,0.1832316494462,0.183178574771003,0.183099800806752,0.183016110273388,0.182947150513283,0.182908382358029,0.182908382358029, +0.233850080841521,0.233850080841521,0.233887811085921,0.233855768270898,0.233771557144725,0.233658537024684,0.233542506845414,0.233448156992681,0.23339533996149,0.23339533996149, +0.309900702202074,0.309900702202074,0.309916335416189,0.309845485643247,0.309710944757512,0.309542956287843,0.309374900134409,0.309239297071491,0.30916335654726,0.30916335654726, +0.410684612231586,0.410684612231586,0.410666023329966,0.410537307547181,0.410329068761008,0.410081229791962,0.409837084477556,0.409639821760116,0.409528276571762,0.409528276571762, +0.534355751401372,0.534355751401372,0.53428938388528,0.534078501701094,0.533767571002082,0.533409872581375,0.533059643376362,0.532772568936133,0.53260561746095,0.53260561746095, +0.677474662953508,0.677474662953508,0.677351434137006,0.677024283601618,0.676573798067712,0.676071379777264,0.675578537672585,0.675160394312474,0.674900288284003,0.674900288284003, +0.834894927689676,0.834894927689676,0.834735266181326,0.834227394046491,0.833589214384044,0.832907022459253,0.832232555894725,0.831622067260072,0.831180280481431,0.831180280481431, + +00:41:38, +0.158046114185853,0.158046114185853,0.158102147699743,0.158104719968217,0.158066476531447,0.15800410316008,0.157935897791341,0.157879047312099,0.157846944548015,0.157846944548015, +0.158046114185853,0.158046114185853,0.158102147699743,0.158104719968217,0.158066476531447,0.15800410316008,0.157935897791341,0.157879047312099,0.157846944548015,0.157846944548015, +0.183306648456088,0.183306648456088,0.18335704216011,0.183348566589289,0.183295503826354,0.183216743413552,0.183133065782033,0.183064116106113,0.183025353484397,0.183025353484397, +0.233966868372184,0.233966868372184,0.234004597908304,0.23397256594524,0.233888374062644,0.233775377423265,0.233659370411002,0.233565039049446,0.233512232286644,0.233512232286644, +0.310014344986265,0.310014344986265,0.310029975461369,0.309959142876761,0.309824633737557,0.309656684549123,0.309488667526047,0.309353095974479,0.309277173082917,0.309277173082917, +0.410789584143927,0.410789584143927,0.410770994717618,0.410642307973112,0.410434119637461,0.410186342052601,0.409942257753437,0.40974504449413,0.40963352727825,0.40963352727825, +0.534444668735747,0.534444668735747,0.534378309035056,0.534167474616354,0.533856619696308,0.533499010778557,0.533148870126495,0.53286186839538,0.532694959058811,0.532694959058811, +0.67753964881803,0.67753964881803,0.677416441748345,0.677089365596402,0.676638987430701,0.676136691309008,0.675643969860741,0.675225928566498,0.67496588538064,0.67496588538064, +0.83492933592194,0.83492933592194,0.834769708912978,0.834261949360721,0.833623913997797,0.832941878066998,0.832267566122733,0.831657216599362,0.831215529054285,0.831215529054285, + +00:41:39, +0.158162407046284,0.158162407046284,0.158218445869235,0.158221025504732,0.158182790690349,0.158120426157876,0.158052228728616,0.157995384246873,0.157963284714261,0.157963284714261, +0.158162407046284,0.158162407046284,0.158218445869235,0.158221025504732,0.158182790690349,0.158120426157876,0.158052228728616,0.157995384246873,0.157963284714261,0.157963284714261, +0.183423551198702,0.183423551198702,0.183473947713384,0.183465480314392,0.183412429472564,0.183333682624589,0.183250017909256,0.18318107832937,0.183142321247849,0.183142321247849, +0.234083641946554,0.234083641946554,0.234121370773553,0.23408934966467,0.234005177030296,0.233892203877609,0.233776220038455,0.233681907172952,0.233629110681215,0.233629110681215, +0.310127962334952,0.310127962334952,0.31014359007784,0.310072774682232,0.309938297285719,0.309770387372067,0.30960240947213,0.309466869425686,0.309390964163147,0.309390964163147, +0.410894522127207,0.410894522127207,0.410875932186688,0.4107472744746,0.410539136571651,0.41029142034651,0.410047397036946,0.409850233214329,0.409738743958553,0.409738743958553, +0.53453354995043,0.53453354995043,0.534467198072472,0.534256411400616,0.533945632222471,0.53358811276088,0.533238060614009,0.532951131552098,0.532784264330793,0.532784264330793, +0.677604604313486,0.677604604313486,0.67748141898753,0.67715441718184,0.676704146325088,0.676201972302188,0.675709371440029,0.675291432151785,0.675031451771742,0.675031451771742, +0.834963726796784,0.834963726796784,0.834804134270439,0.834296487240389,0.833658596096957,0.832976716072043,0.832302558660072,0.831692348169041,0.831250759801969,0.831250759801969, + +00:41:40, +0.158278702703952,0.158278702703952,0.158334746822426,0.158337333824898,0.158299107643275,0.158236751966312,0.15816856249466,0.158111724025526,0.158079627732913,0.158079627732913, +0.158278702703952,0.158278702703952,0.158334746822426,0.158337333824898,0.158299107643275,0.158236751966312,0.15816856249466,0.158111724025526,0.158079627732913,0.158079627732913, +0.183540450511075,0.183540450511075,0.18359084982772,0.183582390601742,0.183529351689839,0.183450618420037,0.183366966635192,0.183298037163159,0.183259285628473,0.183259285628473, +0.234200401560423,0.234200401560423,0.234238129677456,0.234206119424963,0.234121966043429,0.234009016383435,0.233893055723465,0.233798761358865,0.233745975140855,0.233745975140855, +0.31024155426195,0.31024155426195,0.310257179279404,0.310186381073445,0.310051935415768,0.309884064770426,0.309716125986395,0.309580617438836,0.309504729801671,0.309504729801671, +0.41099942621046,0.41099942621046,0.410980835766187,0.41085220708065,0.410644119592585,0.410396464702697,0.410152502357103,0.409955387949739,0.409843926641701,0.409843926641701, +0.534622395081917,0.534622395081917,0.534556051034003,0.534345312090367,0.534034608617083,0.533677178564895,0.533327214875494,0.533040358442908,0.532873533313535,0.532873533313535, +0.677669529473151,0.677669529473151,0.677546365887834,0.677219438391239,0.676769274784238,0.676267222790241,0.675774742443957,0.675356905101907,0.67509698749092,0.67509698749092, +0.834998100334004,0.834998100334004,0.834838542273519,0.834331007705374,0.833693260701488,0.833011536494453,0.832337533526907,0.831727461989362,0.831285972744798,0.831285972744798, + +00:41:41, +0.158395001130229,0.158395001130229,0.158451050530702,0.158453644900095,0.15841542736158,0.158353080556704,0.158284899060753,0.158228066619304,0.1581959735752,0.1581959735752, +0.158395001130229,0.158395001130229,0.158451050530702,0.158453644900095,0.15841542736158,0.158353080556704,0.158284899060753,0.158228066619304,0.1581959735752,0.1581959735752, +0.183657346373474,0.183657346373474,0.183707748483394,0.183699297431604,0.183646270458418,0.183567550780098,0.183483911940008,0.183414992587618,0.183376246606391,0.183376246606391, +0.234317147209594,0.234317147209594,0.234354874615815,0.234322875221906,0.234238741097805,0.234125814936475,0.234009877461734,0.233915601602865,0.23386282566123,0.23386282566123, +0.31035512078106,0.31035512078106,0.31037074307985,0.310299962064173,0.31016554814146,0.309997716757941,0.309829817082566,0.309694340027643,0.309618470012195,0.309618470012195, +0.411104296422685,0.411104296422685,0.411085705485095,0.410957105820231,0.410749068729231,0.410501475150139,0.41025757374289,0.410060508729349,0.409949075356691,0.409949075356691, +0.534711204166657,0.534711204166657,0.534644867956081,0.534434176722044,0.534123548916606,0.5337662082271,0.533416332947488,0.533129549104385,0.532962766043633,0.532962766043633, +0.677734424330255,0.677734424330255,0.677611282482483,0.677284429257857,0.676834372841471,0.676332442806556,0.675840082905988,0.675422347450389,0.675162492571737,0.675162492571737, +0.835032456553365,0.835032456553365,0.834872932942,0.834365510775522,0.83372790783133,0.833046339354265,0.832372490743372,0.831762558080549,0.831321167903061,0.831321167903061, + +00:41:42, +0.15851130229653,0.15851130229653,0.158567356965493,0.158569958701743,0.158531749816657,0.158469411900409,0.158401238398211,0.158344411999495,0.158312322212392,0.158312322212392, +0.15851130229653,0.15851130229653,0.158567356965493,0.158569958701743,0.158531749816657,0.158469411900409,0.158401238398211,0.158344411999495,0.158312322212392,0.158312322212392, +0.183774238766196,0.183774238766196,0.183824643660711,0.183816200784271,0.183763185758569,0.183684479685004,0.183600853803899,0.183531944582914,0.183493204161754,0.183493204161754, +0.23443387888988,0.23443387888988,0.234471605584439,0.234439617051293,0.234355502189197,0.234242599532472,0.234126685248974,0.23403242790064,0.233979662238018,0.233979662238018, +0.310468661906074,0.310468661906074,0.310484281492952,0.310413517668177,0.310279135476539,0.310111343348337,0.309943482774355,0.309808037205807,0.309732184808412,0.309732184808412, +0.411209132792845,0.411209132792845,0.411190541372353,0.411061970722276,0.410853984010523,0.410606451717775,0.410362611223254,0.410165595582115,0.410054190132481,0.410054190132481, +0.534799977241047,0.534799977241047,0.534733648875083,0.534523005332035,0.534212453157457,0.533855201783948,0.53350541486648,0.53321870357305,0.533051962557628,0.533051962557628, +0.677799288917981,0.677799288917981,0.677676168804655,0.677349389814908,0.676899440530057,0.676397632384475,0.675905392859535,0.675487759230706,0.675227967047709,0.675227967047709, +0.835066795474603,0.835066795474603,0.834907306295636,0.834399996470654,0.83376253750639,0.833081124671485,0.832407430329573,0.831797636462798,0.831356345297016,0.831356345297016, + +00:41:43, +0.15862760617431,0.15862760617431,0.158683666098268,0.158686275201305,0.15864807497994,0.158585745968826,0.158517580478395,0.158460760137426,0.158428673615799,0.158428673615799, +0.15862760617431,0.15862760617431,0.158683666098268,0.158686275201305,0.15864807497994,0.158585745968826,0.158517580478395,0.158460760137426,0.158428673615799,0.158428673615799, +0.183891127669569,0.183891127669569,0.183941535340008,0.18393310064007,0.183880097570591,0.183801405115019,0.183717792207095,0.183648893129246,0.183610158274743,0.183610158274743, +0.234550596597107,0.234550596597107,0.234588322579153,0.234556344908933,0.234472249313387,0.234359370167179,0.234243479080912,0.234149240247894,0.234096484866907,0.234096484866907, +0.310582177650766,0.310582177650766,0.310597794532474,0.310527047899203,0.310392697434735,0.31022494455533,0.310057123075461,0.309921708987015,0.309845874204005,0.309845874204005, +0.411313935349866,0.411313935349866,0.411295343456867,0.411166801815682,0.410958865465359,0.410711394434508,0.410467614827106,0.410270648536956,0.410159270997995,0.410159270997995, +0.534888714341436,0.534888714341436,0.534822393827342,0.534611797956678,0.534301321375999,0.533944159271841,0.533594460668913,0.533307821885378,0.533141122892015,0.533141122892015, +0.677864123269466,0.677864123269466,0.677741024887481,0.677414320095557,0.676964477883221,0.676462791557294,0.675970672337966,0.675553140476289,0.675293410952303,0.675293410952303, +0.835101117117425,0.835101117117425,0.834941662354151,0.83443446481056,0.833797149746547,0.833115892466091,0.832442352305587,0.831832697156273,0.83139150494689,0.83139150494689, + +00:41:44, +0.158743912735064,0.158743912735064,0.158799977900539,0.158802594370282,0.158764402822907,0.158702082733393,0.158633925272706,0.158577111004467,0.158545027756773,0.158545027756773, +0.158743912735064,0.158743912735064,0.158799977900539,0.158802594370282,0.158764402822907,0.158702082733393,0.158633925272706,0.158577111004467,0.158545027756773,0.158545027756773, +0.184008013063951,0.184008013063951,0.184058423501652,0.184049996979355,0.183997005874811,0.183918327050436,0.183834727129852,0.183765838206841,0.183727108925571,0.183727108925571, +0.234667300327109,0.234667300327109,0.234705025595789,0.234673058790645,0.234588982466171,0.234476126836362,0.234360258953281,0.234266038640337,0.234213293543597,0.234213293543597, +0.310695668028901,0.310695668028901,0.310711282212164,0.310640552770985,0.310506234029766,0.31033852039262,0.310170737999569,0.310035355384941,0.309959538212641,0.309959538212641, +0.411418704122641,0.411418704122641,0.411400111767508,0.411271599129312,0.411063713122601,0.410816303329206,0.410572584583322,0.410375667622756,0.410264317982123,0.410264317982123, +0.534977415504126,0.534977415504126,0.534911102849138,0.534700554632264,0.534390153608551,0.534033080727131,0.533683470391177,0.533396904077794,0.53323024708324,0.53323024708324, +0.677928927417798,0.677928927417798,0.677805850764046,0.677479220132923,0.677029484934139,0.67652792035826,0.676035921374601,0.675618491220519,0.675358824318942,0.675358824318942, +0.835135421501512,0.835135421501512,0.83497600113724,0.834468915815002,0.833831744571653,0.833150642758032,0.832477256691461,0.831867740181111,0.831426646872885,0.831426646872885, + +00:41:45, +0.158860221950329,0.158860221950329,0.158916292343855,0.158918916180216,0.158880733317073,0.158818422165592,0.158750272752586,0.158693464572028,0.158661384606706,0.158661384606706, +0.158860221950329,0.158860221950329,0.158916292343855,0.158918916180216,0.158880733317073,0.158818422165592,0.158750272752586,0.158693464572028,0.158661384606706,0.158661384606706, +0.184124894929731,0.184124894929731,0.184175308126038,0.184166889782512,0.18411391065159,0.184035245471582,0.18395165855246,0.183882779795959,0.183844056094481,0.183844056094481, +0.234783990075736,0.234783990075736,0.234821714630192,0.234789758692259,0.234705701643354,0.234592869535797,0.234477024861831,0.234382823073696,0.234330088263799,0.234330088263799, +0.310809133054228,0.310809133054228,0.310824744545758,0.310754032297245,0.310619745275337,0.310452070873896,0.310284327560353,0.310148976413248,0.310073176847976,0.310073176847976, +0.411523439140026,0.411523439140026,0.41150484633311,0.411376362691992,0.411168527011077,0.410921178430702,0.410677520520744,0.410480652868362,0.410369331113718,0.410369331113718, +0.535066080765368,0.535066080765368,0.534999775976706,0.534789275395034,0.534478949891379,0.534121966186124,0.533772444069617,0.533485950186676,0.533319335167699,0.533319335167699, +0.67799370139602,0.67799370139602,0.677870646467387,0.677544089960077,0.677094461715943,0.676593018820575,0.676101140002714,0.675683811496733,0.675424207181,0.675424207181, +0.835169708646514,0.835169708646514,0.835010322664571,0.834503349503713,0.833866322001529,0.833185375567228,0.832512143507212,0.831902765557419,0.831461771095168,0.831461771095168, + +00:41:46, +0.158976533791681,0.158976533791681,0.15903260939981,0.159035240602692,0.158997066433996,0.158934764236942,0.158866622889516,0.158809820811559,0.158777744137031,0.158777744137031, +0.158976533791681,0.158976533791681,0.15903260939981,0.159035240602692,0.158997066433996,0.158934764236942,0.158866622889516,0.158809820811559,0.158777744137031,0.158777744137031, +0.184241773247326,0.184241773247326,0.184292189193594,0.184283779029957,0.184230811881317,0.184152160358809,0.184068586455237,0.18399971787689,0.183960999761745,0.183960999761745, +0.234900665838845,0.234900665838845,0.234938389678219,0.234906444609617,0.234822406840753,0.234709598261272,0.23459377680232,0.234499593543704,0.234446869023235,0.234446869023235, +0.310922572740486,0.310922572740486,0.310938181546981,0.310867486491691,0.31073323118514,0.310565596012832,0.310397891771473,0.310262572085584,0.310186790123654,0.310186790123654, +0.411628140430841,0.411628140430841,0.411609547182473,0.411481092532514,0.411273307159577,0.411026019767793,0.410782422668175,0.410585604302588,0.410474310421596,0.410474310421596, +0.535154710161364,0.535154710161364,0.535088413246229,0.53487796028118,0.534567710260703,0.534210815685074,0.533861381740525,0.53357496024835,0.53340838718174,0.53340838718174, +0.678058445237126,0.678058445237126,0.677935412030496,0.677608929610045,0.677159408261717,0.676658086977393,0.67616632825553,0.675749101338217,0.675489559571803,0.675489559571803, +0.835203978572052,0.835203978572052,0.835044626955783,0.834537765896398,0.833900882055968,0.833220090913569,0.83254701277283,0.831937773305275,0.831496877633882,0.831496877633882, + +00:41:47, +0.159092848230739,0.159092848230739,0.159148929040035,0.159151567609333,0.159113402145274,0.159051108919004,0.15898297565502,0.158926179694553,0.158894106319223,0.158894106319223, +0.159092848230739,0.159092848230739,0.159148929040035,0.159151567609333,0.159113402145274,0.159051108919004,0.15898297565502,0.158926179694553,0.158894106319223,0.158894106319223, +0.184358647997187,0.184358647997187,0.184409066684779,0.184400664702136,0.184347709544413,0.184269071692504,0.184185510818533,0.184116652429955,0.184077939907669,0.184077939907669, +0.235017327612305,0.235017327612305,0.235055050735736,0.23502311653857,0.234939098054197,0.234826313008586,0.234710514770517,0.234616350046109,0.23456363581764,0.23456363581764, +0.311035987101398,0.311035987101398,0.311051593229542,0.310980915368018,0.310846691772853,0.310679095823091,0.310511430646576,0.310376142415586,0.310300378053303,0.310300378053303, +0.41173280802387,0.41173280802387,0.411714214344362,0.411585788679632,0.411378053596858,0.41113082736924,0.410887291054386,0.410690521954211,0.410579255934542,0.410579255934542, +0.535243303728268,0.535243303728268,0.535177014693843,0.534966609326846,0.534656434752693,0.534299629260188,0.533950283440149,0.533663934299095,0.533497403161661,0.533497403161661, +0.678123158974067,0.678123158974067,0.678000147486317,0.677673739115805,0.677224324604496,0.676723124861822,0.676231486166228,0.675814360778215,0.675554881524631,0.675554881524631, +0.835238231297721,0.835238231297721,0.835078914030485,0.834572165012732,0.833935424754735,0.833254788816917,0.832581864508276,0.831972763444726,0.831531966509137,0.831531966509137, + +00:41:48, +0.15920916523916,0.15920916523916,0.159265251236203,0.159267897171804,0.159229740422545,0.159167456183381,0.159099331020661,0.159042541192542,0.159010471124796,0.159010471124796, +0.15920916523916,0.15920916523916,0.159265251236203,0.159267897171804,0.159229740422545,0.159167456183381,0.159099331020661,0.159042541192542,0.159010471124796,0.159010471124796, +0.184475519159792,0.184475519159792,0.184525940580078,0.184517546779526,0.184464603621328,0.184385979453081,0.184302431622726,0.184233583435503,0.184194876512586,0.184194876512586, +0.235133975391998,0.235133975391998,0.235171697798621,0.235139774474982,0.235055775279525,0.23494301377355,0.234827238762205,0.234733092576669,0.234680388642759,0.234680388642759, +0.311149376150676,0.311149376150676,0.311164979607139,0.311094318939908,0.310960127052143,0.310792570318323,0.310624944199297,0.310489687416877,0.310413940650543,0.310413940650543, +0.411837441947864,0.411837441947864,0.411818847847504,0.411690451162067,0.41148276635164,0.41123560126377,0.410992125708112,0.410795405851973,0.410684167681301,0.410684167681301, +0.535331861502186,0.535331861502186,0.535265580355635,0.535055222568128,0.534745123403471,0.534388406947626,0.534039149204684,0.533752872375142,0.533586383143713,0.533586383143713, +0.678187842639744,0.678187842639744,0.678064852867749,0.677738518510289,0.677289210777271,0.676788132506922,0.676296613767941,0.675879589849919,0.675620173072718,0.675620173072718, +0.835272466843085,0.835272466843085,0.835113183908258,0.834606546872364,0.833969950117565,0.833289469297106,0.832616698733479,0.832007735995794,0.831567037741016,0.831567037741016, + +00:41:49, +0.159325484788644,0.159325484788644,0.159381575960028,0.159384229261811,0.159346081237488,0.159283806001716,0.159215688958045,0.1591589052771,0.159126838525306,0.159126838525306, +0.159325484788644,0.159325484788644,0.159381575960028,0.159384229261811,0.159346081237488,0.159283806001716,0.159215688958045,0.1591589052771,0.159126838525306,0.159126838525306, +0.18459238671565,0.18459238671565,0.184642810860011,0.184634425242634,0.184581494092542,0.184502883620987,0.184419348848228,0.184350510873915,0.184311809556861,0.184311809556861, +0.235250609173814,0.235250609173814,0.235288330862764,0.235256418414727,0.235172438512588,0.235059700551984,0.234943948773175,0.234849821131154,0.234797127494349,0.234797127494349, +0.311262739902018,0.311262739902018,0.311278340693456,0.311207697221031,0.311073537036663,0.310906019512164,0.310738432443259,0.310603207103067,0.310527477928976,0.310527477928976, +0.411942042231536,0.411942042231536,0.411923447720593,0.411795080008504,0.411587445452609,0.411340341480074,0.41109692665805,0.410900256024581,0.410789045690586,0.410789045690586, +0.535420383519175,0.535420383519175,0.535354110267644,0.535143800041071,0.53483377624911,0.534477148783495,0.534127979070279,0.533841774512673,0.533675327164098,0.533675327164098, +0.678252496267013,0.678252496267013,0.678129528207642,0.677803267826382,0.677354066812987,0.676853109945706,0.676361711093755,0.675944788586479,0.67568543424925,0.67568543424925, +0.835306685227682,0.835306685227682,0.835147436608657,0.834640911494912,0.834004458164165,0.833324132373941,0.832651515468344,0.832042690978469,0.831602091349571,0.831602091349571, + +00:41:50, +0.159441806850929,0.159441806850929,0.159497903183264,0.159500563851098,0.159462424561823,0.159400158345691,0.159332049438816,0.159275271919839,0.15924320849235,0.15924320849235, +0.159441806850929,0.159441806850929,0.159497903183264,0.159500563851098,0.159462424561823,0.159400158345691,0.159332049438816,0.159275271919839,0.15924320849235,0.15924320849235, +0.184709250645303,0.184709250645303,0.184759677505125,0.184751300071995,0.184698380938565,0.184619784176698,0.184536262475479,0.184467434725604,0.184428739020889,0.184428739020889, +0.235367228953657,0.235367228953657,0.235404949924064,0.235373048353692,0.235289087749247,0.235176373339721,0.235060644799231,0.234966535705344,0.234913852368178,0.234913852368178, +0.311376078369109,0.311376078369109,0.311391676502164,0.311321050225043,0.311186921740053,0.311019443418238,0.310851895392069,0.310716701487754,0.310640989902196,0.310640989902196, +0.412046608903565,0.412046608903565,0.412028013992286,0.411899675247592,0.411692090928414,0.411445048046808,0.411201693932865,0.411005072500707,0.410893889991073,0.410893889991073, +0.535508869815242,0.535508869815242,0.535442604465859,0.535232341781674,0.534922393325634,0.534565854803859,0.534216773073035,0.533930640747819,0.533764235258968,0.533764235258968, +0.678317119888685,0.678317119888685,0.678194173538802,0.677867987096924,0.67741889274454,0.676918057211144,0.676426778176709,0.676009957020993,0.675750665087366,0.675750665087366, +0.83534088647102,0.83534088647102,0.835181672151206,0.834675258899966,0.834038948914213,0.833358778067196,0.832686314732742,0.832077628412711,0.831637127354828,0.831637127354828, + +00:41:51, +0.159558131397796,0.159558131397796,0.159614232877705,0.159616900911452,0.15957877036731,0.15951651318703,0.159448412434659,0.159391641092415,0.159359580997564,0.159359580997564, +0.159558131397796,0.159558131397796,0.159614232877705,0.159616900911452,0.15957877036731,0.15951651318703,0.159448412434659,0.159391641092415,0.159359580997564,0.159359580997564, +0.184826110929318,0.184826110929318,0.184876540495997,0.184868171248178,0.18481526413994,0.18473668110072,0.184653172484948,0.184584354971011,0.184545664885096,0.184545664885096, +0.23548383472744,0.23548383472744,0.235521554978433,0.235489664287772,0.235405722985374,0.235293032132604,0.235177326836188,0.23508323629503,0.235030563260024,0.235030563260024, +0.311489391565622,0.311489391565622,0.311504987046922,0.311434377965587,0.31130028117594,0.311132842050157,0.310965333059325,0.310830170584524,0.310754476583782,0.310754476583782, +0.412151141992594,0.412151141992594,0.412132546691205,0.412004236907945,0.411796702807671,0.411549720992592,0.411306427561186,0.411109855308987,0.410998700611403,0.410998700611403, +0.535597320426349,0.535597320426349,0.535531062986223,0.535320847825887,0.535010974669021,0.534654525044728,0.534305531249001,0.534019471116666,0.533853107464428,0.533853107464428, +0.678381713537521,0.678381713537521,0.678258788893987,0.677932676354706,0.677483688604781,0.676982974336155,0.676491815049795,0.676075095186517,0.675815865620159,0.675815865620159, +0.835375070592578,0.835375070592578,0.835215890555401,0.834709589107088,0.834073422387361,0.83339340639662,0.832721096546518,0.832112548318455,0.831672145776781,0.831672145776781, + +00:41:52, +0.159674458401064,0.159674458401064,0.159730565015186,0.159733240414701,0.15969511862575,0.159632870497499,0.159564777917302,0.159508012766522,0.159475956012626,0.159475956012626, +0.159674458401064,0.159674458401064,0.159730565015186,0.159733240414701,0.15969511862575,0.159632870497499,0.159564777917302,0.159508012766522,0.159475956012626,0.159475956012626, +0.184942967548296,0.184942967548296,0.184993399813237,0.184985038751779,0.184932143677236,0.184853574373589,0.184770078857138,0.184701271590607,0.184662587129938,0.184662587129938, +0.235600426491087,0.235600426491087,0.235638146021794,0.235606266212876,0.235522344216854,0.235409676926489,0.235293994879873,0.235199922896016,0.235147260165679,0.235147260165679, +0.311602679505216,0.311602679505216,0.311618272341376,0.311547680456294,0.31141361535794,0.311246215421518,0.311078745458609,0.310943614406949,0.310867937987299,0.310867937987299, +0.412255641527231,0.412255641527231,0.412237045845939,0.412108765018143,0.411901281118957,0.411654360346011,0.411411127571605,0.411214604478022,0.411103477580184,0.411103477580184, +0.535685735388405,0.535685735388405,0.535619485864628,0.535409318209612,0.535099520315197,0.534743159542068,0.534394253634181,0.53410826565525,0.533941943816534,0.533941943816534, +0.678446277246239,0.678446277246239,0.67832337430591,0.677997335632476,0.677548454426514,0.677047861353614,0.676556821745958,0.676140203116059,0.675881035880675,0.675881035880675, +0.835409237611809,0.835409237611809,0.835250091840711,0.834743902135812,0.834107878603228,0.83342801738193,0.832755860929489,0.832147450715603,0.831707146635396,0.831707146635396, + +00:41:53, +0.159790787832594,0.159790787832594,0.159846899567583,0.159849582332709,0.159811469308983,0.1597492302489,0.15968114585851,0.159624386913897,0.159592333509254,0.159592333509254, +0.159790787832594,0.159790787832594,0.159846899567583,0.159849582332709,0.159811469308983,0.1597492302489,0.15968114585851,0.159624386913897,0.159592333509254,0.159592333509254, +0.185059820482866,0.185059820482866,0.185110255437482,0.185101902563425,0.185049019531055,0.184970463975871,0.184886981572579,0.184818184564894,0.1847795057359,0.1847795057359, +0.235717004240534,0.235717004240534,0.235754723050078,0.235722854124921,0.235638951439581,0.235526307717242,0.235410648926121,0.235316595504117,0.235263943080944,0.235263943080944, +0.311715942201538,0.311715942201538,0.311731532399158,0.311660957710782,0.311526924299653,0.311359563545908,0.311192132603493,0.311057032968589,0.310981374126302,0.310981374126302, +0.412360107536048,0.412360107536048,0.412341511485038,0.412213259606727,0.412005825890819,0.411758966135615,0.411515793992682,0.411319320036379,0.411208220925985,0.411208220925985, +0.535774114737275,0.535774114737275,0.53570787313692,0.535497752968701,0.535188030300044,0.534831758331795,0.53448294026453,0.534197024399559,0.534030744351294,0.534030744351294, +0.67851081104751,0.67851081104751,0.678387929807237,0.678061964962933,0.677613190242498,0.67711271829635,0.6766217982981,0.676205280842578,0.675946175901913,0.675946175901913, +0.835443387548136,0.835443387548136,0.835284276026575,0.834778198005643,0.834142317581407,0.833462611042817,0.832790607901442,0.832182335624031,0.831742129950611,0.831742129950611, + +00:41:54, +0.159907119664287,0.159907119664287,0.15996323650681,0.159965926637386,0.159927822388891,0.159865592413079,0.159797516230092,0.159740763506314,0.159708713459206,0.159708713459206, +0.159907119664287,0.159907119664287,0.15996323650681,0.159965926637386,0.159927822388891,0.159865592413079,0.159797516230092,0.159740763506314,0.159708713459206,0.159708713459206, +0.185176669713688,0.185176669713688,0.1852271073494,0.185218762663774,0.185165891682028,0.185087349888163,0.185003880611832,0.184935093874406,0.184896420683498,0.184896420683498, +0.235833567971728,0.235833567971728,0.23587128605923,0.235839428019838,0.235755544649461,0.235642924500738,0.235527288970782,0.235433254115158,0.235380612001631,0.235380612001631, +0.311829179668221,0.311829179668221,0.311844767233887,0.311774209742654,0.311640208014668,0.311472886436898,0.311305494507535,0.31117042628299,0.311094785014333,0.311094785014333, +0.412464540047583,0.412464540047583,0.41244594363702,0.412317720702208,0.412110337151765,0.41186353838992,0.411620426852939,0.411424002012588,0.411312930677343,0.411312930677343, +0.535862458508774,0.535862458508774,0.535796224838895,0.535586152138959,0.535276504659391,0.534920321449777,0.534571591175954,0.534285747385532,0.534119509104667,0.534119509104667, +0.678575314973957,0.678575314973957,0.678452455430589,0.678126564378731,0.677677896085444,0.677177545197144,0.676686744739072,0.676270328398991,0.676011285716827,0.676011285716827, +0.835477520420955,0.835477520420955,0.835318443132406,0.834812476736059,0.834176739341464,0.833497187398941,0.832825337482134,0.832217203063585,0.831777095742334,0.831777095742334, + +00:41:55, +0.160023453868083,0.160023453868083,0.160079575804823,0.160082273300677,0.160044177837396,0.159981956961923,0.159913889003893,0.159857142515592,0.159825095834282,0.159825095834282, +0.160023453868083,0.160023453868083,0.160079575804823,0.160082273300677,0.160044177837396,0.159981956961923,0.159913889003893,0.159857142515592,0.159825095834282,0.159825095834282, +0.185293515221452,0.185293515221452,0.18534395552969,0.185335619033511,0.185282760110815,0.185204232091093,0.185120775955488,0.185051999499704,0.18501333195328,0.18501333195328, +0.235950117680626,0.235950117680626,0.235987835045205,0.235955987893567,0.23587212384241,0.235759527272866,0.235643915009715,0.235549898724975,0.235497266923565,0.235497266923565, +0.311942391918885,0.311942391918885,0.311957976859171,0.311887436565504,0.311753466516562,0.311586184108048,0.31141883118428,0.311283794363688,0.311208170664919,0.311208170664919, +0.412568939090338,0.412568939090338,0.412550342330366,0.412422148333058,0.412214814930269,0.411968077137406,0.411725026180864,0.411528650435145,0.411417606862759,0.411417606862759, +0.535950766738668,0.535950766738668,0.535884541006302,0.535674515756144,0.535364943429023,0.535008848931832,0.534660206404311,0.534374434649061,0.534208238112565,0.534208238112565, +0.67863978905816,0.67863978905816,0.678516951208539,0.678191133912478,0.677742571988019,0.677242342088732,0.676751661101681,0.676335345818165,0.676076365358323,0.676076365358323, +0.835511636249632,0.835511636249632,0.835352593177586,0.834846738346508,0.834211143902935,0.833531746469936,0.832860049691297,0.832252053054082,0.831812044030445,0.831812044030445, + +00:41:56, +0.160139790415964,0.160139790415964,0.160195917433619,0.160198622294572,0.160160535626458,0.160098323867355,0.160030264151803,0.159973523913585,0.159941480606321,0.159941480606321, +0.160139790415964,0.160139790415964,0.160195917433619,0.160198622294572,0.160160535626458,0.160098323867355,0.160030264151803,0.159973523913585,0.159941480606321,0.159941480606321, +0.185410356986877,0.185410356986877,0.185460799959078,0.185452471653355,0.185399624798109,0.185321110565315,0.185237667584169,0.18516890142138,0.185130239525821,0.185130239525821, +0.236066653363195,0.236066653363195,0.236104370003969,0.236072533742059,0.235988689014357,0.235876116029525,0.23576052703879,0.235666529329416,0.235613907842581,0.235613907842581, +0.312055578967138,0.312055578967138,0.312071161288603,0.31200063819291,0.311866699818897,0.311699456572906,0.31153214264726,0.311397137224203,0.311321531091576,0.311321531091576, +0.412673304692781,0.412673304692781,0.412654707593522,0.412526542527716,0.412319259254769,0.412072582406516,0.411829592004911,0.411633265332513,0.411522249510699,0.411522249510699, +0.536039039462676,0.536039039462676,0.535972821674842,0.535762843855964,0.535453346644675,0.535097340813734,0.534748785985412,0.534463086225988,0.534296931410849,0.534296931410849, +0.678704233332652,0.678704233332652,0.678581417173616,0.678255673596736,0.677807217982842,0.677307109003803,0.676816547418689,0.676400333132921,0.676141414859261,0.676141414859261, +0.835545735053508,0.835545735053508,0.835386726181472,0.83488098285641,0.834245531285327,0.833566288275407,0.83289474454863,0.832286885615312,0.831846974834793,0.831846974834793, + +00:41:57, +0.160256129279952,0.160256129279952,0.160312261365233,0.160314973591097,0.160276895728081,0.160214693101343,0.160146641645749,0.160089907672192,0.160057867747202,0.160057867747202, +0.160256129279952,0.160256129279952,0.160312261365233,0.160314973591097,0.160276895728081,0.160214693101343,0.160146641645749,0.160089907672192,0.160057867747202,0.160057867747202, +0.185527194990713,0.185527194990713,0.185577640618323,0.185569320504051,0.185516485724629,0.185437985291518,0.185354555478525,0.185285799620058,0.185247143381727,0.185247143381727, +0.236183175015416,0.236183175015416,0.236220890931499,0.236189065561276,0.23610524016124,0.235992690766625,0.235877125053889,0.23578314592434,0.235730534754525,0.235730534754525, +0.312168740826575,0.312168740826575,0.312184320535764,0.312113814638438,0.311979907935224,0.311812703845005,0.311645428909995,0.311510454878044,0.311434866307807,0.311434866307807, +0.412777636883342,0.412777636883342,0.4127590394549,0.412630903314585,0.41242367015367,0.412177054225662,0.411934124353497,0.411737846733115,0.411626858649594,0.411626858649594, +0.536127276716469,0.536127276716469,0.536061066880167,0.53585113647408,0.535541714342033,0.535185797131205,0.534837329955018,0.534551702152109,0.534385589035337,0.534385589035337, +0.678768647829918,0.678768647829918,0.678645853358302,0.67832018346402,0.677871834102486,0.677371845975001,0.676881403722809,0.676465290376037,0.676206434252456,0.676206434252456, +0.835579816851893,0.835579816851893,0.835420842163391,0.834915210285159,0.83427990150812,0.833600812834928,0.832929422073808,0.832321700767034,0.831881888175202,0.831881888175202, + +00:41:58, +0.160372470432107,0.160372470432107,0.160428607571742,0.16043132716232,0.160393258114306,0.160331064635891,0.1602630214577,0.16020629376335,0.160174257228847,0.160174257228847, +0.160372470432107,0.160372470432107,0.160428607571742,0.16043132716232,0.160393258114306,0.160331064635891,0.1602630214577,0.16020629376335,0.160174257228847,0.160174257228847, +0.185644029213738,0.185644029213738,0.185694477488212,0.185686165566376,0.185633342871126,0.185554856250417,0.185471439619238,0.185402694076391,0.185364043501637,0.185364043501637, +0.236299682633278,0.236299682633278,0.236337397823781,0.236305583347192,0.236221777279008,0.236109251480087,0.235993709050904,0.235899748505616,0.235847147655254,0.235847147655254, +0.312281877510778,0.312281877510778,0.312297454614222,0.312226965915642,0.31209309087908,0.311925925937868,0.311758689985992,0.311623747338708,0.311548176327103,0.311548176327103, +0.41288193569042,0.41288193569042,0.412863337942876,0.412735230722033,0.412528047655342,0.412281492623217,0.412038623255006,0.411842394665345,0.41173143430784,0.41173143430784, +0.536215478535669,0.536215478535669,0.536149276657883,0.535939393646106,0.535630046556739,0.535274217919921,0.534925838348844,0.534640282463172,0.534474211021794,0.534474211021794, +0.678833032582399,0.678833032582399,0.678710259795034,0.678384663546802,0.677936420379481,0.677436553034923,0.676946230046709,0.676530217580241,0.676271423570675,0.676271423570675, +0.835613881664071,0.835613881664071,0.835454941142642,0.834949420652118,0.834314254590765,0.833635320168048,0.832964082286473,0.832356498528979,0.831916784071465,0.831916784071465, + +00:41:59, +0.160488813844532,0.160488813844532,0.160544956025261,0.160547682980349,0.160509622757215,0.160447438443047,0.160379403559664,0.160322682159037,0.160290649023215,0.160290649023215, +0.160488813844532,0.160488813844532,0.160544956025261,0.160547682980349,0.160509622757215,0.160447438443047,0.160379403559664,0.160322682159037,0.160290649023215,0.160290649023215, +0.185760859636763,0.185760859636763,0.185811310549562,0.185803006821136,0.185750196218381,0.185671723422758,0.18558831998702,0.185519584771059,0.185480939866215,0.185480939866215, +0.236416176212781,0.236416176212781,0.236453890676814,0.236422087095791,0.236338300363622,0.236225798165842,0.236110279025739,0.236016337069127,0.235963746540638,0.235963746540638, +0.312394989033314,0.312394989033314,0.312410563537531,0.31234009203806,0.312206248663989,0.312039122865003,0.311871925888746,0.311737014619678,0.311661461162941,0.311661461162941, +0.412986201142375,0.412986201142375,0.412967603085792,0.412839524778393,0.412632391788117,0.412385897627523,0.412143088737786,0.411946909157557,0.4118359765138,0.4118359765138, +0.536303644955852,0.536303644955852,0.536237451043546,0.536027615407605,0.535718343324382,0.53536260321551,0.535014311202555,0.534728827194874,0.534562797405939,0.534562797405939, +0.678897387622491,0.678897387622491,0.678774636516202,0.678449113877504,0.678000976846306,0.677501230216121,0.677011026423013,0.676595114778217,0.676336382846639,0.676336382846639, +0.835647929509297,0.835647929509297,0.835489023138497,0.834983613976623,0.834348590552686,0.833669810294287,0.832998725206243,0.832391278920852,0.831951662543346,0.831951662543346, + +00:42:00, +0.160605159489368,0.160605159489368,0.160661306697946,0.160664041017333,0.16062598962893,0.160563814494896,0.160495787923689,0.16043907283127,0.160407043102306,0.160407043102306, +0.160605159489368,0.160605159489368,0.160661306697946,0.160664041017333,0.16062598962893,0.160563814494896,0.160495787923689,0.16043907283127,0.160407043102306,0.160407043102306, +0.185877686240624,0.185877686240624,0.185928139783221,0.185919844249168,0.185867045747205,0.185788586789318,0.185705196562611,0.185636471684777,0.185597832456159,0.185597832456159, +0.236532655749938,0.236532655749938,0.236570369486608,0.236538576803066,0.236454809411052,0.236342330819833,0.236226834974309,0.236132911610763,0.236080331406555,0.236080331406555, +0.312508075407741,0.312508075407741,0.312523647319235,0.312453193019222,0.312319381303464,0.312152294639905,0.311985136631738,0.311850256734425,0.311774720828787,0.311774720828787, +0.413090433267535,0.413090433267535,0.413071834911953,0.412943785511965,0.412736702580295,0.412490269266884,0.41224752083015,0.412051390238075,0.411940485295798,0.411940485295798, +0.536391776012544,0.536391776012544,0.536325590072665,0.536115801794096,0.535806604680507,0.535450953053552,0.53510274855177,0.534817336382868,0.534651348223444,0.534651348223444, +0.678961712982543,0.678961712982543,0.678838983554152,0.678513534488506,0.6780655035354,0.677565877551101,0.677075792884296,0.676659982002602,0.676401312113025,0.676401312113025, +0.835681960406798,0.835681960406798,0.8355230881702,0.835017790277984,0.834382909413278,0.833704283233135,0.833033350852705,0.832426041962326,0.831986523610582,0.831986523610582, + +00:42:01, +0.160721507338796,0.160721507338796,0.160777659561994,0.160780401245459,0.160742358701614,0.160680192763566,0.160612174521865,0.160555465752108,0.160523439438162,0.160523439438162, +0.160721507338796,0.160721507338796,0.160777659561994,0.160780401245459,0.160742358701614,0.160680192763566,0.160612174521865,0.160555465752108,0.160523439438162,0.160523439438162, +0.185994509006192,0.185994509006192,0.186044965170065,0.186036677831338,0.185983891438437,0.185905446330903,0.185822069326782,0.185753354798287,0.185714721252195,0.185714721252195, +0.23664912124077,0.23664912124077,0.236686834249181,0.236655052465025,0.236571304417283,0.236458849438015,0.236343376892538,0.236249472126427,0.236196902248896,0.236196902248896, +0.312621136647601,0.312621136647601,0.312636705972862,0.312566268872641,0.312432488811003,0.312265441276058,0.312098322228437,0.311963473696407,0.311887955338093,0.311887955338093, +0.413194632094192,0.413194632094192,0.413176033449632,0.41304801295101,0.41284098006014,0.412594607569571,0.412351919560378,0.412155837935183,0.412044960682127,0.412044960682127, +0.536479871741225,0.536479871741225,0.536413693780702,0.536203952841048,0.53589483066061,0.535539267469578,0.53519115043206,0.534905810062758,0.534739863509933,0.534739863509933, +0.679026008694858,0.679026008694858,0.678903300941182,0.678577925412141,0.678130000479152,0.677630495072322,0.677140529463089,0.676724819285988,0.676466211402462,0.676466211402462, +0.835715974375774,0.835715974375774,0.835557136256966,0.835051949575481,0.834417211191908,0.833738739004055,0.833067959245417,0.832460787673048,0.83202136729288,0.83202136729288, + +00:42:02, +0.160837857365038,0.160837857365038,0.160894014589641,0.160896763636955,0.160858729947469,0.160796573221221,0.160728563326321,0.160671860893648,0.160639838002863,0.160639838002863, +0.160837857365038,0.160837857365038,0.160894014589641,0.160896763636955,0.160858729947469,0.160796573221221,0.160728563326321,0.160671860893648,0.160639838002863,0.160639838002863, +0.186111327914363,0.186111327914363,0.186161786691,0.18615350754854,0.186100733272947,0.186022302028349,0.185938938260333,0.18587023409236,0.18583160623508,0.18583160623508, +0.236765572681311,0.236765572681311,0.236803284960566,0.236771514077683,0.236687785378305,0.23657535401635,0.236459904776363,0.236366018612035,0.236313459063562,0.236313459063562, +0.312734172766424,0.312734172766424,0.312749739511929,0.31267931961182,0.312545571200092,0.312378562786933,0.312211482692299,0.312076665519069,0.312001164704299,0.312001164704299, +0.413298797650602,0.413298797650602,0.413280198727065,0.413152207123759,0.412945224255883,0.412698912563819,0.412456284956713,0.412260252277135,0.412149402701044,0.412149402701044, +0.536567932177326,0.536567932177326,0.53650176220307,0.536292068583883,0.535983021300139,0.535627546499075,0.535279516878947,0.534994248270098,0.53482834330098,0.53482834330098, +0.679090274791695,0.679090274791695,0.678967588709547,0.678642286680696,0.678194467709907,0.677695082812198,0.677205236191877,0.676789626660921,0.676531080747533,0.676531080747533, +0.835749971435397,0.835749971435397,0.835591167417983,0.835086091888365,0.834451495907915,0.833773177626483,0.833102550403911,0.832495516072634,0.832056193609919,0.832056193609919, + +00:42:03, +0.160954209540355,0.160954209540355,0.161010371753162,0.161013128164089,0.160975103338737,0.16091295584007,0.160844954309225,0.160788258228028,0.16075623876853,0.16075623876853, +0.160954209540355,0.160954209540355,0.161010371753162,0.161013128164089,0.160975103338737,0.16091295584007,0.160844954309225,0.160788258228028,0.16075623876853,0.16075623876853, +0.186228142946066,0.186228142946066,0.186278604326962,0.1862703333817,0.186217571231635,0.18613915386252,0.186055803344096,0.185987109547798,0.185948487385599,0.185948487385599, +0.236882010067605,0.236882010067605,0.236919721616803,0.236887961637068,0.236804252290123,0.236691844550816,0.236576418621732,0.23648255106351,0.236430001846467,0.236430001846467, +0.312847183777727,0.312847183777727,0.312862747949939,0.312792345250247,0.312658628484205,0.312491659185987,0.312324618036768,0.312189832215845,0.312114348940832,0.312114348940832, +0.413402929964989,0.413402929964989,0.413384330772454,0.413256368058404,0.413049435195717,0.412803184277829,0.412560617047365,0.412364633292147,0.412253811380772,0.412253811380772, +0.536655957356232,0.536655957356232,0.536589795375136,0.536380149057976,0.536071176634495,0.535715790177478,0.535367847927907,0.535082651040398,0.534916787632114,0.534916787632114, +0.679154511305267,0.679154511305267,0.679031846891456,0.678706618326413,0.678258905259964,0.677759640803098,0.677269913103098,0.6768544041599,0.676595920180777,0.676595920180777, +0.83578395160481,0.83578395160481,0.835625181672412,0.835120217235862,0.834485763580609,0.833807599119825,0.83313712434769,0.832530227180675,0.832091002581351,0.832091002581351, + +00:42:04, +0.161070563837049,0.161070563837049,0.161126731024874,0.161129494799168,0.1610914788477,0.161029340592356,0.160961347442785,0.160904657727427,0.160872641707325,0.160872641707325, +0.161070563837049,0.161070563837049,0.161126731024874,0.161129494799168,0.1610914788477,0.161029340592356,0.160961347442785,0.160904657727427,0.160872641707325,0.160872641707325, +0.186344954082258,0.186344954082258,0.186395418058917,0.186387155311772,0.186334405295429,0.186256001814312,0.186172664558931,0.186103981145435,0.18606536468457,0.18606536468457, +0.236998433395705,0.236998433395705,0.237036144213944,0.237004395139217,0.236920705148752,0.236808321037398,0.236692918424603,0.236599069476788,0.236546530593533,0.236546530593533, +0.312960169695015,0.312960169695015,0.312975731300383,0.312905345801398,0.312771660676803,0.312604730486664,0.312437728275274,0.312302973800155,0.312227508061106,0.312227508061106, +0.413507029065539,0.413507029065539,0.413488429613966,0.413360495783105,0.413153612907802,0.412907422739767,0.412664915860508,0.412468981008402,0.412358186749498,0.412358186749498, +0.536743947313278,0.536743947313278,0.536677793332218,0.536468194298653,0.536159296699031,0.535803998540177,0.535456143614367,0.535171018409118,0.535005196538815,0.535005196538815, +0.679218718267741,0.679218718267741,0.679096075519071,0.678770920381488,0.678323313161578,0.677824169077346,0.677334560229147,0.67691915181538,0.676660729734686,0.676660729734686, +0.835817914903131,0.835817914903131,0.835659179039384,0.835154325637169,0.834520014229276,0.833842003503459,0.833171681096227,0.832564921016732,0.832125794226796,0.832125794226796, + +00:42:05, +0.161186920227461,0.161186920227461,0.161243092377131,0.16124586351454,0.16120785644668,0.161145727450368,0.161077742699252,0.161021059364063,0.160989046791447,0.160989046791447, +0.161186920227461,0.161186920227461,0.161243092377131,0.16124586351454,0.16120785644668,0.161145727450368,0.161077742699252,0.161021059364063,0.160989046791447,0.160989046791447, +0.186461761303926,0.186461761303926,0.18651222786786,0.186503973319741,0.186451235445289,0.18637284586465,0.186289521885727,0.18622084886613,0.186182238112836,0.186182238112836, +0.237114842661677,0.237114842661677,0.237152552748052,0.237120814580178,0.237037143950216,0.236924783472093,0.236809404180945,0.236715573847817,0.236663045300695,0.236663045300695, +0.313073130531778,0.313073130531778,0.313088689576739,0.313018321278737,0.312884667791333,0.312717776702398,0.312550813421236,0.312416090285405,0.312340642078524,0.312340642078524, +0.413611094980406,0.413611094980406,0.413592495279733,0.413464590325987,0.413257757420265,0.413011627977765,0.412769181424281,0.412573295454048,0.412462528835375,0.412462528835375, +0.536831902083755,0.536831902083755,0.536765756109588,0.536556204341195,0.536247381529053,0.535892171622514,0.535544403973708,0.535259350411671,0.535093570056517,0.535093570056517, +0.679282895711238,0.679282895711238,0.679160274624511,0.678835192878073,0.678387691446957,0.677888667667218,0.677399177602371,0.676983869659769,0.676725509441706,0.676725509441706, +0.835851861349447,0.835851861349447,0.835693159538005,0.835188417111454,0.834554247873168,0.833876390796736,0.833206220668969,0.832599597600337,0.832160568565851,0.832160568565851, + +00:42:06, +0.16130327868397,0.16130327868397,0.161359455782329,0.161362234282591,0.161324236108038,0.16126211638643,0.161194140050913,0.161137463110194,0.161105453993138,0.161105453993138, +0.16130327868397,0.16130327868397,0.161359455782329,0.161362234282591,0.161324236108038,0.16126211638643,0.161194140050913,0.161137463110194,0.161105453993138,0.161105453993138, +0.186578564592085,0.186578564592085,0.186629033734816,0.18662078738662,0.186568061662202,0.186489685994488,0.186406375305404,0.186337712690777,0.186299107651274,0.186299107651274, +0.237231237861598,0.237231237861598,0.237268947215201,0.237237219956012,0.237153568690553,0.237041231850909,0.236925875886738,0.236832064172554,0.236779545963899,0.236779545963899, +0.313186066301497,0.313186066301497,0.313201622792472,0.313131271695714,0.31299764984123,0.312830797846608,0.31266387348806,0.312529181684992,0.312453751006475,0.312453751006475, +0.413715127737707,0.413715127737707,0.413696527797853,0.413568651715139,0.413361868761196,0.41311580001992,0.412873413766791,0.412677576657199,0.412566837666521,0.412566837666521, +0.536919821702903,0.536919821702903,0.53685368374247,0.536644179220832,0.53633543115982,0.535980309459784,0.535632629041263,0.535347647083423,0.535181908220604,0.535181908220604, +0.679347043667835,0.679347043667835,0.679224444239847,0.678899435848273,0.678452040148263,0.677953136604946,0.677463765255071,0.67704855772543,0.676790259334237,0.676790259334237, +0.835885790962819,0.835885790962819,0.835727123187352,0.835222491677859,0.834588464531515,0.83391076101898,0.833240743085334,0.832634256950994,0.832195325618079,0.832195325618079, + +00:42:07, +0.161419639178998,0.161419639178998,0.161475821212902,0.161478607075749,0.161440617804175,0.161378507372908,0.161310539470096,0.161253868938117,0.161221863284679,0.161221863284679, +0.161419639178998,0.161419639178998,0.161475821212902,0.161478607075749,0.161440617804175,0.161378507372908,0.161310539470096,0.161253868938117,0.161221863284679,0.161221863284679, +0.186695363927782,0.186695363927782,0.186745835640837,0.186737597493452,0.186684883927186,0.186606522184811,0.186523224798911,0.186454572600294,0.18641597328079,0.18641597328079, +0.237347618991553,0.237347618991553,0.237385327611475,0.237353611262789,0.237269979365807,0.237157666169864,0.237042333537972,0.236948540446967,0.2368960325791,0.2368960325791, +0.313298977017636,0.313298977017636,0.313314530961033,0.313244197065767,0.313110606839917,0.312943793932699,0.312776908489137,0.312642248012297,0.312566834858335,0.312566834858335, +0.413819127365525,0.413819127365525,0.413800527196389,0.413672679978617,0.41346594695865,0.413219938894293,0.412977612916108,0.412781824645934,0.412671113271022,0.412671113271022, +0.537007706205918,0.537007706205918,0.53694157626604,0.536732118972751,0.536423445626543,0.536068412087233,0.535720818852316,0.535435908459692,0.535270211066415,0.535270211066415, +0.679411162169565,0.679411162169565,0.679288584397107,0.678963649324149,0.678516359297614,0.678017575922718,0.677528323219506,0.677113216044681,0.676854979444635,0.676854979444635, +0.835919703762282,0.835919703762282,0.835761070006474,0.835256549355497,0.834622664223515,0.833945114189483,0.833275248364714,0.83266889908818,0.832230065403018,0.832230065403018, + +00:42:08, +0.161536001685004,0.161536001685004,0.161592188641326,0.161594981866479,0.161557001507532,0.161494900382208,0.16142694092917,0.161370276820171,0.161338274638389,0.161338274638389, +0.161536001685004,0.161536001685004,0.161592188641326,0.161594981866479,0.161557001507532,0.161494900382208,0.16142694092917,0.161370276820171,0.161338274638389,0.161338274638389, +0.186812159292092,0.186812159292092,0.186862633567008,0.18685440362131,0.186801702221289,0.18672335441663,0.186640070347226,0.186571428575634,0.186532834982317,0.186532834982317, +0.237463986047639,0.237463986047639,0.237501693932968,0.237469988496588,0.237386375972038,0.237274086424989,0.23715877713065,0.237065002667036,0.237012505142267,0.237012505142267, +0.313411862693648,0.313411862693648,0.313427414095863,0.31335709740232,0.313223538800803,0.313056764974068,0.312889918437848,0.31275528928069,0.312679893647469,0.312679893647469, +0.413923093891909,0.413923093891909,0.41390449350337,0.413776675144441,0.41356999204065,0.413324044628914,0.413081778900268,0.412886039448296,0.412775355676926,0.412775355676926, +0.537095555627945,0.537095555627945,0.537029433715427,0.536820023632088,0.536511424964385,0.536156479540063,0.535808973442107,0.535524134575749,0.53535847862924,0.53535847862924, +0.679475251248413,0.679475251248413,0.679352695128274,0.679027833337717,0.678580648927084,0.678081985652674,0.677592851527886,0.677177844649793,0.676919669805211,0.676919669805211, +0.835953599766841,0.835953599766841,0.835795000014393,0.835290590163455,0.83465684696834,0.833979450327515,0.833309736526468,0.832703524031344,0.832264787940178,0.832264787940178, + +00:42:09, +0.161652366174488,0.161652366174488,0.161708558040113,0.161711358627288,0.16167338719059,0.161611295386775,0.161543344400542,0.161486686728732,0.16145468802663,0.16145468802663, +0.161652366174488,0.161652366174488,0.161708558040113,0.161711358627288,0.16167338719059,0.161611295386775,0.161543344400542,0.161486686728732,0.16145468802663,0.16145468802663, +0.186928950666119,0.186928950666119,0.186979427494441,0.186971205751296,0.186918516525586,0.18684018267099,0.186756911931359,0.186688280597775,0.186649692736821,0.186649692736821, +0.237580339025965,0.237580339025965,0.237618046175785,0.237586351653501,0.237502758505313,0.237390492612323,0.237275206660784,0.237181450828751,0.237128963649376,0.237128963649376, +0.313524723342973,0.313524723342973,0.313540272210387,0.313469972718786,0.313336445737284,0.313169710984094,0.313002903347561,0.312868305503528,0.312792927387228,0.312792927387228, +0.414027027344874,0.414027027344874,0.41400842674679,0.413880637240596,0.413674004035183,0.413428117251775,0.413185911747274,0.412990221092296,0.412879564912248,0.412879564912248, +0.537183370004085,0.537183370004085,0.537117256125714,0.536907893233934,0.536599369208464,0.536244511853424,0.535897092845826,0.535612325466818,0.535446710944323,0.535446710944323, +0.679539310936321,0.679539310936321,0.679416776465284,0.679091987920946,0.678644909068699,0.678146365826911,0.677657350212378,0.677242443572993,0.676984330448227,0.676984330448227, +0.835987478995475,0.835987478995475,0.835828913230104,0.83532461412079,0.834691012785135,0.834013769452313,0.833344207589933,0.832738131799905,0.832299493249039,0.832299493249039, + +00:42:10, +0.16176873261999,0.16176873261999,0.161824929381818,0.16182773733072,0.161789774825869,0.161727692359092,0.161659749856661,0.161603098636217,0.161571103421801,0.161571103421801, +0.16176873261999,0.16176873261999,0.161824929381818,0.16182773733072,0.161789774825869,0.161727692359092,0.161659749856661,0.161603098636217,0.161571103421801,0.161571103421801, +0.187045738030998,0.187045738030998,0.187096217404279,0.187088003864542,0.187035326821185,0.186957006928962,0.186873749532347,0.186805128647728,0.186766546525295,0.186766546525295, +0.237696677922649,0.237696677922649,0.237734384336044,0.23770270072963,0.237619126961711,0.237506884727917,0.237391622124396,0.237297884928114,0.237245408096418,0.237245408096418, +0.313637558979039,0.313637558979039,0.31365310531802,0.313582823028564,0.313449327662746,0.313282631976147,0.31311586323163,0.312981296694156,0.312905936090951,0.312905936090951, +0.414130927752399,0.414130927752399,0.414112326954607,0.413984566295036,0.4137779829702,0.413532156790835,0.413290011485092,0.41309436960591,0.412983741004969,0.412983741004969, +0.537271149369391,0.537271149369391,0.537205043531936,0.536995727813333,0.536687278393848,0.536332509062425,0.535985177098616,0.535700481168075,0.53553490804686,0.53553490804686, +0.679603341265185,0.679603341265185,0.67948082844003,0.679156113105763,0.678709139754442,0.67821071647748,0.677721819305102,0.677307012846463,0.677048961405904,0.677048961405904, +0.836021341467134,0.836021341467134,0.835862809672574,0.835358621246535,0.834725161693015,0.834048071583088,0.833378661574414,0.832772722413256,0.832334181349054,0.832334181349054, + +00:42:11, +0.161885100994087,0.161885100994087,0.161941302639034,0.161944117949362,0.161906164385929,0.161844091271685,0.161776157270013,0.161719512515084,0.161687520796341,0.161687520796341, +0.161885100994087,0.161885100994087,0.161941302639034,0.161944117949362,0.161906164385929,0.161844091271685,0.161776157270013,0.161719512515084,0.161687520796341,0.161687520796341, +0.18716252136789,0.18716252136789,0.187213003277693,0.187204797942207,0.18715213308922,0.187073827171649,0.186990583131257,0.186921972706533,0.186883396328762,0.186883396328762, +0.237813002733819,0.237813002733819,0.237850708409869,0.237819035721087,0.237735481337322,0.237623262767832,0.237508023517521,0.237414304961136,0.23736183847939,0.23736183847939, +0.31375036961526,0.31375036961526,0.313765913432161,0.313695648345041,0.313562184590559,0.313395527963582,0.313228798103398,0.313094262865905,0.313018919771965,0.313018919771965, +0.414234795142428,0.414234795142428,0.414216194154747,0.414088462335676,0.413881928873622,0.413636163274019,0.413394078141656,0.413198485017078,0.413087883983036,0.413087883983036, +0.537358893758868,0.537358893758868,0.537292795969082,0.53708352740528,0.536775152555561,0.536420471202122,0.536073226235575,0.535788601714651,0.535623069972,0.535623069972, +0.679667342266857,0.679667342266857,0.67954485108436,0.679220208924048,0.67877334101625,0.678275037636386,0.677786258838135,0.677371552502339,0.677113562710414,0.677113562710414, +0.836055187200742,0.836055187200742,0.835896689360742,0.835392611559691,0.834759293711071,0.834082356739025,0.833413098499189,0.83280729589076,0.832368852259649,0.832368852259649, + +00:42:12, +0.162001471269398,0.162001471269398,0.162057677784393,0.162060500455837,0.162022555843368,0.161960492097117,0.161892566613124,0.161835928337829,0.161803940122732,0.161803940122732, +0.162001471269398,0.162001471269398,0.162057677784393,0.162060500455837,0.162022555843368,0.161960492097117,0.161892566613124,0.161835928337829,0.161803940122732,0.161803940122732, +0.18727930065799,0.18727930065799,0.187329785095883,0.187321587965482,0.187268935310856,0.187190643380181,0.187107412709186,0.187038812755256,0.187000242128277,0.187000242128277, +0.237929313455614,0.237929313455614,0.237967018393399,0.237935356623996,0.237851821628244,0.237739626728142,0.237624410836203,0.237530710923839,0.237478254794305,0.237478254794305, +0.313863155265037,0.313863155265037,0.313878696566201,0.31380844868159,0.313675016534081,0.313508398959743,0.313341707976194,0.313207204032095,0.313131878443583,0.313131878443583, +0.414338629542873,0.414338629542873,0.4143200283751,0.4141923253904,0.413985841773331,0.413740136729216,0.413498111744865,0.413302567353708,0.413191993874361,0.413191993874361, +0.537446603207475,0.537446603207475,0.537380513472091,0.537171292044726,0.536862991728579,0.536508398307527,0.536161240291752,0.535876687141627,0.535711196754846,0.535711196754846, +0.679731313973143,0.679731313973143,0.679608844430075,0.679284275407635,0.678837512886017,0.678339329335591,0.677850668843507,0.677436062572711,0.677178134393887,0.677178134393887, +0.836089016215196,0.836089016215196,0.835930552313521,0.835426585079236,0.834793408858364,0.834116624939279,0.83344751838351,0.832841852251754,0.83240350600022,0.83240350600022, + +00:42:13, +0.162117843418581,0.162117843418581,0.162174054790567,0.162176884822809,0.162138949170825,0.162076894807991,0.162008977858562,0.161952346076988,0.16192036137349,0.16192036137349, +0.162117843418581,0.162117843418581,0.162174054790567,0.162176884822809,0.162138949170825,0.162076894807991,0.162008977858562,0.161952346076988,0.16192036137349,0.16192036137349, +0.187396075882519,0.187396075882519,0.187446562840079,0.187438373915586,0.187385733467287,0.187307455535719,0.18722423824726,0.187155648774998,0.18711708390492,0.18711708390492, +0.238045610084186,0.238045610084186,0.23808331428278,0.238051663434489,0.23796814783059,0.237855976604927,0.237740784076499,0.237647102812258,0.237594657037183,0.237594657037183, +0.313975915941759,0.313975915941759,0.313991454733512,0.313921224051572,0.31378782350666,0.313621244977961,0.313454592863335,0.313320120206032,0.313244812119107,0.313244812119107, +0.414442430981609,0.414442430981609,0.414423829643522,0.414296155487057,0.414089721697176,0.413844077184283,0.413602112322582,0.413406616643673,0.413296070706821,0.413296070706821, +0.537534277750124,0.537534277750124,0.537468196075859,0.537259021766573,0.53695079594783,0.536596290413606,0.536249219302151,0.535964737484039,0.535799288430452,0.535799288430452, +0.679795256415806,0.679795256415806,0.679672808508935,0.679348312588318,0.678901655395588,0.678403591607012,0.677915049353204,0.677500543089626,0.677242676488406,0.677242676488406, +0.836122828529364,0.836122828529364,0.835964398549796,0.835460541824117,0.834827507153926,0.834150876202979,0.833481921246598,0.832876391515545,0.832438142590135,0.832438142590135, + +00:42:14, +0.162234217414332,0.162234217414332,0.162290433630267,0.162293271022982,0.162255344340978,0.16219329937695,0.162125390978932,0.162068765705135,0.162036784521175,0.162036784521175, +0.162234217414332,0.162234217414332,0.162290433630267,0.162293271022982,0.162255344340978,0.16219329937695,0.162125390978932,0.162068765705135,0.162036784521175,0.162036784521175, +0.187512847022727,0.187512847022727,0.18756333649154,0.187555155773767,0.187502527539735,0.187424263619453,0.187341059726634,0.187272480746884,0.187233921639805,0.187233921639805, +0.238161892615694,0.238161892615694,0.238199596074171,0.238167956148712,0.23808445994048,0.237972312394283,0.237857143234472,0.237763480622437,0.237711045204057,0.237711045204057, +0.314088651658802,0.314088651658802,0.314104187947459,0.314033974468335,0.313900605521627,0.313734066031554,0.313567452778126,0.313433011401011,0.313357720811825,0.313357720811825, +0.414546199486478,0.414546199486478,0.414527597987836,0.414399952653459,0.414193568672974,0.413947984667041,0.413706079902638,0.413510632914809,0.41340011450826,0.41340011450826, +0.537621917421679,0.537621917421679,0.537555843815233,0.537346716605676,0.537038565248195,0.536684147555275,0.536337163301726,0.536052752776876,0.535887345033827,0.535887345033827, +0.679859169626561,0.679859169626561,0.679736743352651,0.679412320497841,0.678965768576768,0.678467824482518,0.677979400399167,0.677564994085084,0.677307189026009,0.677307189026009, +0.836156624162089,0.836156624162089,0.835998228088424,0.835494481813256,0.834861588616765,0.834185110549224,0.833516307107649,0.832910913701416,0.832472762048736,0.832472762048736, + +00:42:15, +0.162350593229388,0.162350593229388,0.162406814276243,0.162409659029098,0.162371741326544,0.162309705776675,0.162241805946879,0.162185187194887,0.162153209538386,0.162153209538386, +0.162350593229388,0.162350593229388,0.162406814276243,0.162409659029098,0.162371741326544,0.162309705776675,0.162241805946879,0.162185187194887,0.162153209538386,0.162153209538386, +0.187629614059894,0.187629614059894,0.187680106031555,0.187671933521303,0.187619317509454,0.187541067612601,0.187457877128492,0.187389308652072,0.187350755314071,0.187350755314071, +0.238278161046308,0.238278161046308,0.23831586376374,0.238284234762818,0.238200757954046,0.238088634092313,0.237973488306202,0.237879844350429,0.237827419290968,0.237827419290968, +0.31420136242953,0.31420136242953,0.314216896221391,0.314146699945216,0.314013362592303,0.313846862133826,0.313680287733859,0.313545877630313,0.313470604535014,0.313470604535014, +0.414649935085289,0.414649935085289,0.414631333435827,0.414503716917387,0.414297382728504,0.414051859205278,0.41381001451283,0.413614616194923,0.413504125306487,0.413504125306487, +0.537709522256959,0.537709522256959,0.537643456725014,0.537434376596844,0.537126299664511,0.536771969767407,0.536425072325387,0.536140733055078,0.535975366599932,0.535975366599932, +0.679923053637083,0.679923053637083,0.679800648992892,0.679476299167905,0.679029852461314,0.678532027993937,0.678043722013292,0.677629415591041,0.67737167203869,0.67737167203869, +0.836190403132185,0.836190403132185,0.836032040948236,0.835528405065546,0.834895653265859,0.834219327997088,0.833550675985831,0.832945418828617,0.832507364395336,0.832507364395336, + +00:42:16, +0.162466970836523,0.162466970836523,0.162523196701286,0.162526048813938,0.16248814010028,0.162426113979889,0.162358222735087,0.162301610518897,0.162269636397758,0.162269636397758, +0.162466970836523,0.162466970836523,0.162523196701286,0.162526048813938,0.16248814010028,0.162426113979889,0.162358222735087,0.162301610518897,0.162269636397758,0.162269636397758, +0.18774637697533,0.18774637697533,0.18779687144144,0.1877887071395,0.187736103357725,0.187657867496412,0.187574690434049,0.187506132471748,0.187467584908891,0.187467584908891, +0.238394415372212,0.238394415372212,0.238432117347667,0.238400499272973,0.23831704186743,0.238204941695131,0.238089819287774,0.237996193992301,0.237943779293971,0.237943779293971, +0.314314048267292,0.314314048267292,0.314329579568644,0.314259400495536,0.314126094731997,0.313959633298071,0.313793097743812,0.313658718907208,0.313583463301937,0.313583463301937, +0.414753637805813,0.414753637805813,0.414735036015251,0.414607448306586,0.414401163891515,0.414155700826747,0.413913916180918,0.413718566511783,0.413608103129278,0.413608103129278, +0.537797092290735,0.537797092290735,0.537731034839955,0.537522001774841,0.537213999231566,0.536859757084825,0.536512946407997,0.536228678353543,0.536063353163681,0.536063353163681, +0.679986908478999,0.679986908478999,0.679864525461283,0.679540248630169,0.67909390708094,0.67859620217305,0.678108014227429,0.677693807639409,0.677436125558396,0.677436125558396, +0.836224165458439,0.836224165458439,0.836065837148034,0.835562311599855,0.83492970112016,0.834253528565616,0.833585027900283,0.832979906916375,0.83254194964922,0.83254194964922, + +00:42:17, +0.162583350208553,0.162583350208553,0.162639580878224,0.162642440350323,0.162604540634981,0.162542523959352,0.162474641316281,0.16241803564986,0.16238606507197,0.16238606507197, +0.162583350208553,0.162583350208553,0.162639580878224,0.162642440350323,0.162604540634981,0.162542523959352,0.162474641316281,0.16241803564986,0.16238606507197,0.16238606507197, +0.187863135750372,0.187863135750372,0.187913632702543,0.187905476609694,0.187852885065859,0.187774663252163,0.187691499624548,0.187622952187128,0.187584410405463,0.187584410405463, +0.238510655589595,0.238510655589595,0.23854835682214,0.238516749675352,0.238433311676785,0.238321235198864,0.238206136175286,0.238112529544129,0.23806012520913,0.23806012520913, +0.314426709185426,0.314426709185426,0.314442238002544,0.314372076132606,0.314238801954003,0.314072379537569,0.313905882821252,0.313771535244951,0.313696297125845,0.313696297125845, +0.414857307675789,0.414857307675789,0.414838705753824,0.414711146848768,0.414504912189718,0.414259509559166,0.41401778493463,0.413822483893127,0.413712048004373,0.413712048004373, +0.537884627557732,0.537884627557732,0.537818578194763,0.53760959217438,0.537301663984101,0.536947509542307,0.53660078558437,0.536316588707116,0.536151304759943,0.536151304759943, +0.680050734183893,0.680050734183893,0.679928372789402,0.679604168916244,0.679157932467314,0.678660347051594,0.678172277073385,0.677758170262054,0.677500549617033,0.677500549617033, +0.836257911159611,0.836257911159611,0.836099616706596,0.835596201435022,0.834963732198592,0.834287712273826,0.833619362870117,0.833014377983886,0.832576517829645,0.832576517829645, + +00:42:18, +0.162699731318332,0.162699731318332,0.162755966779926,0.162758833611115,0.162720942903483,0.162658935687864,0.162591061663223,0.162534462560508,0.162502495533737,0.162502495533737, +0.162699731318332,0.162699731318332,0.162755966779926,0.162758833611115,0.162720942903483,0.162658935687864,0.162591061663223,0.162534462560508,0.162502495533737,0.162502495533737, +0.187979890366389,0.187979890366389,0.188030389796237,0.188022241913249,0.187969662615194,0.18789145486116,0.187808304681261,0.187739767779454,0.187701231785016,0.187701231785016, +0.238626881694661,0.238626881694661,0.238664582183359,0.238632985966141,0.238549567378275,0.238437514599646,0.238322438964848,0.238228851001999,0.238176457032519,0.238176457032519, +0.314539345197258,0.314539345197258,0.314554871536401,0.314484726869724,0.314351484271603,0.314185100865588,0.314018642979434,0.313884326656786,0.313809106019977,0.313809106019977, +0.414960944722923,0.414960944722923,0.414942342679234,0.414814812571611,0.414608627650791,0.414363285430221,0.414121620801661,0.413926368366655,0.41381595995948,0.41381595995948, +0.537972128092627,0.537972128092627,0.537906086824101,0.537697147830132,0.537389293956811,0.537035227174584,0.536688589889277,0.536404464150601,0.536239221423539,0.536239221423539, +0.680114530783303,0.680114530783303,0.679992191008786,0.679668060057698,0.679221928652063,0.678724462661262,0.678236510582923,0.677822503490797,0.677564944246458,0.677564944246458, +0.836291640254436,0.836291640254436,0.836133379642671,0.835630074589858,0.834997746520052,0.834321879140709,0.833653680914418,0.833048832050319,0.832611068955841,0.832611068955841, + +00:42:19, +0.162816114138752,0.162816114138752,0.162872354379298,0.162875228569211,0.16283734687866,0.162775349138263,0.162707483748717,0.162650891223614,0.162618927755815,0.162618927755815, +0.162816114138752,0.162816114138752,0.162872354379298,0.162875228569211,0.16283734687866,0.162775349138263,0.162707483748717,0.162650891223614,0.162618927755815,0.162618927755815, +0.188096640804776,0.188096640804776,0.188147142703928,0.18813900303156,0.1880864359871,0.188008242304739,0.18792510558549,0.187856579230003,0.187818049028809,0.187818049028809, +0.238743093683621,0.238743093683621,0.238780793427535,0.238749208141537,0.238665808968072,0.238553779893624,0.238438727652578,0.23834515836201,0.238292774760224,0.238292774760224, +0.314651956316098,0.314651956316098,0.314667480183514,0.314597352720173,0.314464141698068,0.314297797295381,0.314131378231598,0.313997093155946,0.313921889997559,0.313921889997559, +0.415064548974885,0.415064548974885,0.415045946819129,0.414918445502756,0.41471231030238,0.414467028467562,0.414225423809669,0.414030219960035,0.413919839022272,0.413919839022272, +0.538059593930054,0.538059593930054,0.537993560762582,0.537784668776719,0.537476889184346,0.537122910016341,0.536776359357439,0.536492304718753,0.536327103189244,0.536327103189244, +0.680178298308725,0.680178298308725,0.680055980150925,0.679731922086055,0.679285895666764,0.678788549033701,0.678300714787758,0.677886807357416,0.677629309478485,0.677629309478485, +0.836325352761618,0.836325352761618,0.83616712597498,0.835663931083149,0.83503174410341,0.834356029185229,0.833687982052243,0.833083269134817,0.832645603047009,0.832645603047009, + +00:42:20, +0.162932498642745,0.162932498642745,0.162988743649287,0.16299162519755,0.162953752533424,0.162891764283429,0.162823907545603,0.162767321611989,0.162735361710998,0.162735361710998, +0.162932498642745,0.162932498642745,0.162988743649287,0.16299162519755,0.162953752533424,0.162891764283429,0.162823907545603,0.162767321611989,0.162735361710998,0.162735361710998, +0.188213387046958,0.188213387046958,0.188263891407048,0.188255759946049,0.188203205162975,0.188125025564265,0.188041902318565,0.187973386520076,0.18793486211813,0.18793486211813, +0.2388592915527,0.2388592915527,0.238896990550889,0.238865416197746,0.238782036442362,0.238670031076954,0.238555002234606,0.238461451620269,0.23840907838834,0.23840907838834, +0.314764542555247,0.314764542555247,0.31478006395717,0.314709953697226,0.314576774246655,0.314410468840192,0.314244088590974,0.314109834755648,0.314034649071804,0.314034649071804, +0.415168120459311,0.415168120459311,0.415149518201126,0.415022045669813,0.414815960172094,0.414570738698806,0.414329193986281,0.414134038700902,0.414023685220388,0.414023685220388, +0.538147025104595,0.538147025104595,0.538081000044773,0.537872155048718,0.537564449701308,0.537210558102217,0.536864094023532,0.536580110446279,0.536414950091784,0.536414950091784, +0.680242036791608,0.680242036791608,0.680119740247265,0.679795755032795,0.679349833542954,0.678852606200516,0.678364889719564,0.677951081893641,0.677693645344885,0.677693645344885, +0.836359048699837,0.836359048699837,0.836200855722217,0.835697770933653,0.835065724967508,0.83439016242632,0.833722266302622,0.833117689256493,0.832680120122325,0.832680120122325, + +00:42:21, +0.163048884803283,0.163048884803283,0.163105134562878,0.16310802346911,0.163070159840729,0.163008181096278,0.162940333026763,0.162883753698484,0.162851797372122,0.162851797372122, +0.163048884803283,0.163048884803283,0.163105134562878,0.16310802346911,0.163070159840729,0.163008181096278,0.162940333026763,0.162883753698484,0.162851797372122,0.162851797372122, +0.18833012907439,0.18833012907439,0.188380635887061,0.188372512638167,0.188319970124245,0.18824180462113,0.188158694861845,0.188090189631005,0.188051671034294,0.188051671034294, +0.23897547529813,0.23897547529813,0.239013173549651,0.238981610130986,0.238898249797338,0.238786268145805,0.238671262707072,0.238577730772894,0.238525367912976,0.238525367912976, +0.314877103927991,0.314877103927991,0.314892622870641,0.314822529814142,0.314689381930607,0.314523115513249,0.314356774070777,0.3142225514691,0.314147383255914,0.314147383255914, +0.415271659203804,0.415271659203804,0.415253056852809,0.415125613100358,0.41491957728751,0.414674416151537,0.414432931359087,0.414237824616855,0.414127498581433,0.414127498581433, +0.538234421650792,0.538234421650792,0.538168404705197,0.537959606680657,0.537651975542253,0.537298171466801,0.536951793922186,0.536667881367842,0.536502762165843,0.536502762165843, +0.68030574626336,0.68030574626336,0.680183471329208,0.679859558929352,0.679413742312124,0.678916634193265,0.678429035409969,0.678015327131163,0.677757951877382,0.677757951877382, +0.836392728087745,0.836392728087745,0.836234568903053,0.835731594160101,0.835099689131162,0.834424278882892,0.833756533684557,0.833152092434436,0.832714620200934,0.832714620200934, + +00:42:22, +0.163165272593375,0.163165272593375,0.163221527093095,0.163224423356906,0.163186568773566,0.163124599549767,0.163056760165116,0.16300018745599,0.162968234712059,0.162968234712059, +0.163165272593375,0.163165272593375,0.163221527093095,0.163224423356906,0.163186568773566,0.163124599549767,0.163056760165116,0.16300018745599,0.162968234712059,0.162968234712059, +0.188446866868553,0.188446866868553,0.188497376125456,0.188489261089395,0.188436730852366,0.188358579456759,0.18827548319672,0.188206988544151,0.188168475758648,0.188168475758648, +0.239091644916154,0.239091644916154,0.239129342420062,0.239097789937484,0.239014449029206,0.238902491096353,0.238787509066126,0.238693995816015,0.238641643330247,0.238641643330247, +0.314989640447604,0.314989640447604,0.315005156937188,0.314935081084168,0.314801964763158,0.314635737327771,0.314469434684212,0.314335243309494,0.314260092563077,0.314260092563077, +0.415375165235932,0.415375165235932,0.415356562801725,0.415229147821931,0.41502316167617,0.414778060853302,0.414536635955645,0.414341577735461,0.414231279132979,0.414231279132979, +0.538321783603135,0.538321783603135,0.538255774778329,0.538047023707021,0.53773946674169,0.537385750144641,0.537039459087985,0.536755617518058,0.536590539446056,0.536590539446056, +0.680369426755343,0.680369426755343,0.680247173428114,0.679923333807117,0.679477622005722,0.678980633043464,0.678493151890557,0.678079543101622,0.677822229107657,0.677822229107657, +0.836426390943968,0.836426390943968,0.836268265536126,0.835765400781197,0.835133636613158,0.834458378573826,0.833790784217022,0.833186478687703,0.832749103301956,0.832749103301956, + +00:42:23, +0.163281661986071,0.163281661986071,0.163337921213003,0.163340824833995,0.163302979304964,0.163241019616891,0.163173188933622,0.163116622857435,0.163084673703721,0.163084673703721, +0.163281661986071,0.163281661986071,0.163337921213003,0.163340824833995,0.163302979304964,0.163241019616891,0.163173188933622,0.163116622857435,0.163084673703721,0.163084673703721, +0.188563600410961,0.188563600410961,0.188614112103754,0.188606005281243,0.188553487328822,0.188475350052601,0.188392267304607,0.188323783240905,0.188285276272566,0.188285276272566, +0.239207800403027,0.239207800403027,0.239245497158374,0.239213955613477,0.239130634134181,0.239018699924787,0.238903741307931,0.238810246745772,0.238757904636282,0.238757904636282, +0.315102152127348,0.315102152127348,0.31511766617006,0.315047607520537,0.314914522757525,0.314748334296961,0.314582070444471,0.314447910290013,0.314372777006469,0.314372777006469, +0.415478638583228,0.415478638583228,0.415460036075389,0.415332649862039,0.415126713365582,0.414881672831618,0.41464030780348,0.41444529808425,0.414335026902562,0.414335026902562, +0.538409110996072,0.538409110996072,0.538343110298598,0.538134406162247,0.537826923334083,0.537473294170235,0.537127089555465,0.536843318931497,0.536678281967011,0.536678281967011, +0.680433078298874,0.680433078298874,0.680310846575296,0.679987079697437,0.67954147265515,0.679044602782582,0.678557239192867,0.67814372983662,0.677886477067346,0.677886477067346, +0.836460037287105,0.836460037287105,0.836301945640053,0.835799190815617,0.83516756743226,0.834492461517977,0.833825017918966,0.833220848035326,0.832783569444481,0.832783569444481, + +00:42:24, +0.163398052954458,0.163398052954458,0.163454316895701,0.16345722787347,0.163419391407993,0.163357441270685,0.163289619305279,0.163233059875788,0.163201114320059,0.163201114320059, +0.163398052954458,0.163398052954458,0.163454316895701,0.16345722787347,0.163419391407993,0.163357441270685,0.163289619305279,0.163233059875788,0.163201114320059,0.163201114320059, +0.188680329683154,0.188680329683154,0.188730843803504,0.188722745195247,0.188670239535127,0.188592116390138,0.188509047166952,0.188440573702686,0.188402072557452,0.188402072557452, +0.239323941755013,0.239323941755013,0.239361637760849,0.239330107155215,0.239246805108489,0.239134894627305,0.239019959428657,0.238926483558314,0.238874151827219,0.238874151827219, +0.315214638980469,0.315214638980469,0.31523015058249,0.315160109136471,0.315027055926916,0.314860906434012,0.31469468136473,0.314560552423825,0.314485436599255,0.314485436599255, +0.415582079273194,0.415582079273194,0.415563476701282,0.415436119248155,0.415230232383222,0.414985252113964,0.414743946930081,0.414548985690723,0.414438741917686,0.414438741917686, +0.538496403864001,0.538496403864001,0.538430411300386,0.538221754080726,0.537914345353849,0.537560803578036,0.537214685359118,0.536930985642681,0.536765989763251,0.536765989763251, +0.680496700925229,0.680496700925229,0.680374490802024,0.680050796631616,0.679605294291768,0.679108543442046,0.678621297348395,0.67820788736771,0.677950695788039,0.677950695788039, +0.836493667135726,0.836493667135726,0.836335609233419,0.835832964282012,0.8352014816072,0.83452652773417,0.833859234809308,0.833255200496311,0.832818018647576,0.832818018647576, + +00:42:25, +0.163514445471663,0.163514445471663,0.163570714114332,0.163573632448464,0.163535805055762,0.163473864484222,0.163406051253122,0.163349498484055,0.163317556534065,0.163317556534065, +0.163514445471663,0.163514445471663,0.163570714114332,0.163573632448464,0.163535805055762,0.163473864484222,0.163406051253122,0.163349498484055,0.163317556534065,0.163317556534065, +0.188797054666701,0.188797054666701,0.188847571206282,0.188839480812976,0.188786987452822,0.188708878450879,0.188625822765231,0.188557359910941,0.188518864594739,0.188518864594739, +0.239440068968387,0.239440068968387,0.239477764223759,0.239446244558955,0.239362961948365,0.239251075200116,0.239136163424487,0.239042706249803,0.238990384899207,0.238990384899207, +0.315327101020205,0.315327101020205,0.315342610187702,0.315272585945179,0.315139564284524,0.314973453752102,0.314807267458158,0.314673169724087,0.314598071354584,0.314598071354584, +0.415685487333295,0.415685487333295,0.41566688470685,0.41553955600772,0.415333718756529,0.415088798727789,0.414847553362904,0.414652640582343,0.414542424205821,0.414542424205821, +0.538583662241278,0.538583662241278,0.538517677818031,0.538309067496804,0.538001732835359,0.537648278402451,0.537302246533387,0.537018617686088,0.536853662869273,0.536853662869273, +0.680560294665636,0.680560294665636,0.680438106139525,0.680114484640912,0.679669086946889,0.679172455053239,0.678685326388591,0.678272015726402,0.678014885301286,0.678014885301286, +0.836527280508377,0.836527280508377,0.836369256334786,0.835866721199005,0.835235379156686,0.834560577241206,0.833893434906942,0.833289536089635,0.832852450930274,0.832852450930274, + +00:42:26, +0.163630839510852,0.163630839510852,0.163687112842075,0.163690038532148,0.163652220221416,0.163590289230615,0.163522484750229,0.163465938655283,0.163434000318768,0.163434000318768, +0.163630839510852,0.163630839510852,0.163687112842075,0.163690038532148,0.163652220221416,0.163590289230615,0.163522484750229,0.163465938655283,0.163434000318768,0.163434000318768, +0.188913775343199,0.188913775343199,0.188964294293694,0.188956212116025,0.188903731063479,0.188825636216362,0.188742594080949,0.188674141847148,0.188635652365888,0.188635652365888, +0.239556182039433,0.239556182039433,0.239593876543387,0.239562367820967,0.239479104650057,0.23936724163944,0.239252353291613,0.23915891481641,0.239106603848406,0.239106603848406, +0.315439538259777,0.315439538259777,0.315455044998905,0.315385037959855,0.315252047843531,0.315085976264399,0.314919828737907,0.314785762203942,0.314710681285596,0.314710681285596, +0.415788862790965,0.415788862790965,0.415770260119506,0.415642960168137,0.415437172512912,0.415192312700506,0.414951127129372,0.414756262786541,0.414646073794403,0.414646073794403, +0.538670886162209,0.538670886162209,0.538604909885823,0.538396346444779,0.538089085812939,0.537735718677842,0.537389773112671,0.537106215096148,0.536941301319527,0.536941301319527, +0.680623859551282,0.680623859551282,0.68050169261898,0.680178143756539,0.679732850651786,0.6792363376475,0.678749326344863,0.678336114944164,0.678079045638589,0.678079045638589, +0.836560877423575,0.836560877423575,0.836402886962688,0.835900461585192,0.835269260099398,0.834594610057858,0.833927618230733,0.833323854834246,0.832886866311588,0.832886866311588, + +00:42:27, +0.163747235045228,0.163747235045228,0.163803513052149,0.163806446097735,0.163768636878142,0.163706715483013,0.163638919769715,0.163582380362558,0.163550445647236,0.163550445647236, +0.163747235045228,0.163747235045228,0.163803513052149,0.163806446097735,0.163768636878142,0.163706715483013,0.163638919769715,0.163582380362558,0.163550445647236,0.163550445647236, +0.189030491694277,0.189030491694277,0.189081013047376,0.189072939086017,0.189020470348697,0.188942389668153,0.188859361095638,0.188790919492813,0.188752435852391,0.188752435852391, +0.239672280964445,0.239672280964445,0.239709974716025,0.239678476937529,0.239595233209821,0.239483393941506,0.239368529026238,0.239275109254316,0.239222808670984,0.239222808670984, +0.315551950712398,0.315551950712398,0.315567455029297,0.315497465193684,0.315364506617106,0.315198473984056,0.315032365217118,0.314898329876522,0.314823266405417,0.314823266405417, +0.415892205673601,0.415892205673601,0.415873602966629,0.41574633175678,0.415540593679742,0.415295794059495,0.415054668256874,0.414859852330714,0.414749690710835,0.414749690710835, +0.538758075661058,0.538758075661058,0.538692107538007,0.538483590958905,0.538176404320868,0.537823124438522,0.537477265131323,0.537193777907247,0.537028905148417,0.537028905148417, +0.68068739561331,0.68068739561331,0.68056525027153,0.68024177400967,0.679796585437684,0.679300191256121,0.678813297248574,0.678400185052416,0.678143176831406,0.678143176831406, +0.836594457899814,0.836594457899814,0.836436501135631,0.835934185459143,0.835303124453989,0.834628626202872,0.83396178479952,0.833358156749067,0.832921264810497,0.832921264810497, + +00:42:28, +0.163863632048036,0.163863632048036,0.163919914717811,0.163922855118471,0.163885054999164,0.163823143214608,0.163755356284732,0.163698823579001,0.163666892492576,0.163666892492576, +0.163863632048036,0.163863632048036,0.163919914717811,0.163922855118471,0.163885054999164,0.163823143214608,0.163755356284732,0.163698823579001,0.163666892492576,0.163666892492576, +0.189147203701588,0.189147203701588,0.189197727448991,0.189189661704607,0.189137205290104,0.189059138787848,0.188976123790861,0.188907692829469,0.188869215035765,0.188869215035765, +0.239788365739731,0.239788365739731,0.239826058737976,0.23979457190493,0.239711347623924,0.239599532102554,0.239484690624576,0.239391289559713,0.239338999363123,0.239338999363123, +0.315664338391263,0.315664338391263,0.315679840292062,0.315609867659836,0.315476940618404,0.315310946924216,0.315144876908921,0.315010872754946,0.314935826727161,0.314935826727161, +0.415995516008569,0.415995516008569,0.415976913275564,0.415849670800985,0.415643982284359,0.415399242832102,0.415158176772764,0.414963409242226,0.414853274982485,0.414853274982485, +0.538845230772039,0.538845230772039,0.538779270808782,0.538570801073389,0.538263688393379,0.53791049571876,0.537564722623649,0.537281306153724,0.537116474390303,0.537116474390303, +0.680750902882818,0.680750902882818,0.680628779128268,0.680305375431431,0.679860291335769,0.679364015910355,0.678877239131042,0.678464226082538,0.678207278911154,0.678207278911154, +0.836628021955556,0.836628021955556,0.836470098872097,0.835967892839401,0.835336972239085,0.834662625694967,0.833995934632115,0.833392441852995,0.832955646445956,0.832955646445956, + +00:42:29, +0.163980030492556,0.163980030492556,0.164036317812355,0.164039265567647,0.164001474557746,0.163939572398627,0.163871794268473,0.163815268277778,0.163783340827935,0.163783340827935, +0.163980030492556,0.163980030492556,0.164036317812355,0.164039265567647,0.164001474557746,0.163939572398627,0.163871794268473,0.163815268277778,0.163783340827935,0.163783340827935, +0.189263911346818,0.189263911346818,0.189314437480231,0.189306379953475,0.189253935869358,0.189175883557072,0.189092882148207,0.189024461838681,0.18898598989756,0.18898598989756, +0.239904436361603,0.239904436361603,0.239942128605553,0.239910652719471,0.239827447888643,0.239715656118835,0.23960083808285,0.239507455728804,0.239455175921013,0.239455175921013, +0.315776701309558,0.315776701309558,0.315792200800372,0.315722245371469,0.31558934986057,0.315423395098006,0.315257363826432,0.31512339085232,0.315048362263929,0.315048362263929, +0.4160987938232,0.4160987938232,0.416080191073624,0.415952977328058,0.41574733835407,0.415502659045639,0.415261652704363,0.415066933548406,0.414956826636689,0.414956826636689, +0.538932351529322,0.538932351529322,0.538866399732301,0.538657976822391,0.538350938064659,0.53799783255278,0.537652145623911,0.537368799869872,0.537204009079495,0.537204009079495, +0.680814381390863,0.680814381390863,0.680692279220246,0.680368948052907,0.679923968377178,0.679427811641408,0.678941152023543,0.678528238065863,0.678271351909202,0.678271351909202, +0.836661569609241,0.836661569609241,0.836503680190539,0.836001583744481,0.835370803473287,0.834696608552833,0.834030067747302,0.833426710164896,0.832990011236894,0.832990011236894, + +00:42:30, +0.164096430352109,0.164096430352109,0.164152722309118,0.164155677418587,0.164117895527189,0.164056003008338,0.163988233694169,0.163931714432089,0.163899790626497,0.163899790626497, +0.164096430352109,0.164096430352109,0.164152722309118,0.164155677418587,0.164117895527189,0.164056003008338,0.163988233694169,0.163931714432089,0.163899790626497,0.163899790626497, +0.189380614611678,0.189380614611678,0.189431143122816,0.189423093814332,0.189370662068143,0.189292623957477,0.189209636149298,0.18914122650204,0.189102760419352,0.189102760419352, +0.240020492826389,0.240020492826389,0.240058184315079,0.24002671937746,0.239943534000266,0.239831765986609,0.239716971397294,0.239623607757801,0.239571338340856,0.239571338340856, +0.315889039480456,0.315889039480456,0.315904536567385,0.315834598341729,0.315701734356734,0.315535818518545,0.315369825982753,0.315235884181739,0.31516087302881,0.31516087302881, +0.416202039144791,0.416202039144791,0.416183436388086,0.416056251365268,0.415850661916146,0.415606042727386,0.415365096078961,0.415170425276551,0.415060345700747,0.415060345700747, +0.539019437967033,0.539019437967033,0.538953494342672,0.538745118240029,0.53843815336885,0.53808513497476,0.537739534166323,0.537456259089937,0.537291509250262,0.537291509250262, +0.680877831168454,0.680877831168454,0.680755750578471,0.680432491905137,0.679987616593007,0.679491578480442,0.679005035957307,0.678592221033682,0.678335395856879,0.678335395856879, +0.836695100879281,0.836695100879281,0.836537245109385,0.836035258192874,0.835404618175166,0.834730574795138,0.834064184163838,0.833460961703613,0.83302435920221,0.83302435920221, + +00:42:31, +0.164212831600053,0.164212831600053,0.164269128181471,0.164272090644657,0.164234317880833,0.164172435017047,0.16410467453509,0.164048162015173,0.164016241861486,0.164016241861486, +0.164212831600053,0.164212831600053,0.164269128181471,0.164272090644657,0.164234317880833,0.164172435017047,0.16410467453509,0.164048162015173,0.164016241861486,0.164016241861486, +0.18949731347791,0.18949731347791,0.189547844358495,0.189539803268916,0.189487383868175,0.189409359970746,0.18932638577578,0.189257986801169,0.189219526582748,0.189219526582748, +0.240136535130424,0.240136535130424,0.240174225862887,0.240142771875218,0.24005960595509,0.239947861702146,0.239833090564153,0.239739745642929,0.239687486618862,0.239687486618862, +0.316001352917115,0.316001352917115,0.316016847606249,0.315946926583747,0.315814094120014,0.315648217198936,0.315482263390977,0.315348352756283,0.315273359034881,0.315273359034881, +0.416305252000606,0.416305252000606,0.416286649246193,0.416159492939854,0.415953952997827,0.415709393904587,0.41546850692381,0.415273884453924,0.415163832201928,0.415163832201928, +0.539106490119249,0.539106490119249,0.539040554673956,0.538832225360372,0.538525334340049,0.538172403018829,0.537826888285053,0.537543683848122,0.537378974936824,0.537378974936824, +0.680941252246562,0.680941252246562,0.680819193233908,0.680496007019119,0.68005123601431,0.679555316458577,0.679068890963523,0.678656175017241,0.678399410785466,0.678399410785466, +0.83672861578406,0.83672861578406,0.836570793647035,0.836068916203042,0.83543841636327,0.834764524440518,0.834098283900455,0.833495196487958,0.833058690360777,0.833058690360777, + +00:42:32, +0.164329234209786,0.164329234209786,0.164385535402825,0.164388505219261,0.164350741592057,0.164288868398098,0.164221116764545,0.164164611000312,0.164132694506165,0.164132694506165, +0.164329234209786,0.164329234209786,0.164385535402825,0.164388505219261,0.164350741592057,0.164288868398098,0.164221116764545,0.164164611000312,0.164132694506165,0.164132694506165, +0.189614007927283,0.189614007927283,0.189664541169046,0.189656508298994,0.189604101251195,0.189526091578587,0.189443131009331,0.189374742717715,0.189336288369381,0.189336288369381, +0.240252563270053,0.240252563270053,0.240290253245322,0.240258810209074,0.240175663749423,0.240063943261729,0.239949195579681,0.23985586938042,0.239803620751255,0.239803620751255, +0.316113641632683,0.316113641632683,0.316129133930097,0.316059230110646,0.315926429163517,0.315760591152271,0.315594676064182,0.315460796589023,0.315385820295205,0.315385820295205, +0.416408432417875,0.416408432417875,0.416389829675158,0.416262702079018,0.416057211626316,0.415812712604455,0.415571885266132,0.415377311107753,0.415267286167467,0.415267286167467, +0.539193508020004,0.539193508020004,0.539127580760169,0.538919298217444,0.538612481012305,0.538259636719075,0.537914208014227,0.537631074178582,0.537466406173356,0.537466406173356, +0.681004644656109,0.681004644656109,0.680882607217479,0.680559493425805,0.680114826672095,0.679619025606888,0.679132717073335,0.678720100047743,0.678463396726204,0.678463396726204, +0.836762114341937,0.836762114341937,0.836604325821864,0.836102557793421,0.835472198056117,0.834798457507584,0.834132366975855,0.83352941453672,0.83309300473144,0.83309300473144, + +00:42:33, +0.164445638154744,0.164445638154744,0.164501943946632,0.164504921115841,0.164467166634279,0.164405303124875,0.16433756035588,0.164281061360821,0.164249148533834,0.164249148533834, +0.164445638154744,0.164445638154744,0.164501943946632,0.164504921115841,0.164467166634279,0.164405303124875,0.16433756035588,0.164281061360821,0.164249148533834,0.164249148533834, +0.189730697941595,0.189730697941595,0.189781233536275,0.189773208886362,0.189720814198976,0.18964281876274,0.189559871831655,0.189491494233358,0.189453045760915,0.189453045760915, +0.240368577241633,0.240368577241633,0.240406266458737,0.240374834375369,0.240291707379584,0.240180010661648,0.240065286440144,0.239971978966518,0.239919740734265,0.239919740734265, +0.316225905640295,0.316225905640295,0.316241395552051,0.316171508935531,0.316038739500336,0.315872940391628,0.315707064015434,0.315573215693014,0.315498256822836,0.315498256822836, +0.416511580423794,0.416511580423794,0.416492977702156,0.41636587880993,0.416160437828785,0.415915998854167,0.415675231133114,0.415480705265235,0.415370707624565,0.415370707624565, +0.539280491703285,0.539280491703285,0.539214572635281,0.539006336845224,0.538699593419623,0.538346836109538,0.538001493387921,0.537718430115427,0.537553802993987,0.537553802993987, +0.681068008427977,0.681068008427977,0.680945992560059,0.680622951156105,0.680178388597326,0.679682705956409,0.679196514317842,0.678783996156346,0.678527353710288,0.678527353710288, +0.836795596571245,0.836795596571245,0.83663784165222,0.836136182982421,0.8355059632722,0.834832374014923,0.834166433408716,0.833563615868657,0.83312730233302,0.83312730233302, + +00:42:34, +0.164562043408401,0.164562043408401,0.164618353786379,0.164621338307876,0.164583592980954,0.164521739170798,0.164454005282481,0.164397513070057,0.164365603917834,0.164365603917834, +0.164562043408401,0.164562043408401,0.164618353786379,0.164621338307876,0.164583592980954,0.164521739170798,0.164454005282481,0.164397513070057,0.164365603917834,0.164365603917834, +0.189847383502673,0.189847383502673,0.189897921442016,0.189889905012845,0.189837522693315,0.189759541504972,0.189676608224487,0.189608241329804,0.189569798739042,0.189569798739042, +0.240484577041529,0.240484577041529,0.240522265499494,0.240490844370452,0.2404077368419,0.240296063898206,0.240181363141816,0.240088074397478,0.240035846564136,0.240035846564136, +0.316338144953071,0.316338144953071,0.31635363248522,0.316283763071499,0.316151025143551,0.315985264930074,0.315819427257788,0.315685610081302,0.31561066863081,0.31561066863081, +0.416614696045527,0.416614696045527,0.416596093354333,0.416469023159727,0.416263631632373,0.41601925268087,0.41577854455191,0.415584066953532,0.415474096600388,0.415474096600388, +0.539367441203033,0.539367441203033,0.539301530333218,0.539093341277646,0.538786671595963,0.538434001224212,0.538088744440167,0.537805751692722,0.537641165432802,0.537641165432802, +0.681131343593004,0.681131343593004,0.681009349292483,0.680686380240886,0.680241921820927,0.679746357538126,0.679260282728101,0.678847863374166,0.678591281768869,0.678591281768869, +0.83682906249029,0.83682906249029,0.836671341156424,0.836169791788426,0.835539712029986,0.83486627398109,0.834200483217687,0.833597800502502,0.833161583184306,0.833161583184306, + +00:42:35, +0.16467844994427,0.16467844994427,0.164734764895592,0.164737756768887,0.164700020605578,0.164638176509328,0.164570451517773,0.164513966101415,0.164482060631542,0.164482060631542, +0.16467844994427,0.16467844994427,0.164734764895592,0.164737756768887,0.164700020605578,0.164638176509328,0.164570451517773,0.164513966101415,0.164482060631542,0.164482060631542, +0.189964064592372,0.189964064592372,0.190014604868132,0.190006596660293,0.189954226716042,0.189876259787078,0.189793340169589,0.18972498398879,0.189686547285482,0.189686547285482, +0.240600562666118,0.240600562666118,0.240638250363969,0.240606840190685,0.240523752132709,0.240412102967713,0.240297425680982,0.240204155669564,0.240151938237121,0.240151938237121, +0.316450359584122,0.316450359584122,0.316465844742698,0.316395992531631,0.316263286106231,0.316097564780664,0.315931765804285,0.315797979766918,0.315723055732157,0.315723055732157, +0.416717779310203,0.416717779310203,0.416699176658796,0.416572135155512,0.416366793064185,0.416122474111673,0.41588182554964,0.415687396199773,0.415577453122073,0.415577453122073, +0.539454356553145,0.539454356553145,0.539388453887859,0.539180311548597,0.538873715575238,0.538521132097047,0.538175961204953,0.537893038944486,0.537728493523839,0.537728493523839, +0.681194650181986,0.681194650181986,0.681072677445543,0.680749780710971,0.680305426373774,0.679809980382987,0.679324022335125,0.678911701732275,0.678655180933057,0.678655180933057, +0.836862512117352,0.836862512117352,0.836704824352771,0.836203384229793,0.835573444347913,0.834900157424619,0.834234516421392,0.833631968456962,0.833195847304065,0.833195847304065, + +00:42:36, +0.164794857735901,0.164794857735901,0.164851177247837,0.164854176472429,0.164816449481682,0.164754615113963,0.164686899035217,0.164630420428328,0.164598518648376,0.164598518648376, +0.164794857735901,0.164794857735901,0.164851177247837,0.164854176472429,0.164816449481682,0.164754615113963,0.164686899035217,0.164630420428328,0.164598518648376,0.164598518648376, +0.190080741192574,0.190080741192574,0.190131283796514,0.190123283810589,0.190070926249013,0.189992973590884,0.189910067648753,0.189841722192077,0.189803291381984,0.189803291381984, +0.240716534111785,0.240716534111785,0.240754221048544,0.240722821832438,0.240639753248361,0.240528127866492,0.24041347405394,0.240320222779051,0.240268015749483,0.240268015749483, +0.316562549546542,0.316562549546542,0.31657803233757,0.316508197328998,0.316375522401432,0.316209839956438,0.316044079667952,0.315910324762881,0.31583541813989,0.31583541813989, +0.416820830244918,0.416820830244918,0.416802227642625,0.416675214824354,0.41646992215129,0.416225663173655,0.415985074153391,0.415790693031053,0.415680777216719,0.415680777216719, +0.539541237787472,0.539541237787472,0.539475343333038,0.53926724769192,0.538960725391317,0.538608228761946,0.538263143716221,0.537980291904692,0.53781578730109,0.53781578730109, +0.681257928225672,0.681257928225672,0.681135977049985,0.680813152597139,0.680368902286704,0.679873574521891,0.679387733169884,0.678975511261701,0.678719051233916,0.678719051233916, +0.836895945470683,0.836895945470683,0.836738291259531,0.836236960324852,0.835607160244397,0.834934024364012,0.834268533038426,0.833666119750716,0.833230094711034,0.833230094711034, + +00:42:37, +0.164911266756884,0.164911266756884,0.164967590816716,0.164970597392099,0.164932879582837,0.16487105495824,0.164803347808316,0.164746876024268,0.16471497794179,0.16471497794179, +0.164911266756884,0.164911266756884,0.164967590816716,0.164970597392099,0.164932879582837,0.16487105495824,0.164803347808316,0.164746876024268,0.16471497794179,0.16471497794179, +0.190197413285191,0.190197413285191,0.190247958209081,0.190239966445641,0.190187621274113,0.19010968289824,0.190026790643796,0.189958455921461,0.189920031010325,0.189920031010325, +0.240832491374927,0.240832491374927,0.240870177549615,0.24083878929209,0.240755740185214,0.240644138590874,0.240529508256993,0.240436275722224,0.240384079097495,0.240384079097495, +0.316674714853418,0.316674714853418,0.316690195282907,0.316620377476656,0.316487734042196,0.316322090470427,0.316156368861809,0.3160226450822,0.315947755867011,0.315947755867011, +0.416923848876734,0.416923848876734,0.41690524633286,0.41677826219329,0.416573018920728,0.416328819893862,0.416088290390218,0.415893957474435,0.415784068911394,0.415784068911394, +0.539628084939819,0.539628084939819,0.539562198702545,0.539354149741412,0.539047701078023,0.538695291252768,0.538350292007865,0.538067510607269,0.537903046798503,0.537903046798503, +0.681321177754772,0.681321177754772,0.681199248136515,0.680876495930128,0.680432349590509,0.679937139985699,0.679451415263305,0.679039291993429,0.678782892702468,0.678782892702468, +0.836929362568511,0.836929362568511,0.836771741894946,0.836270520091906,0.835640859737821,0.834967874817749,0.83430253308736,0.833700254402416,0.833264325423923,0.833264325423923, + +00:42:38, +0.165027676980847,0.165027676980847,0.165084005575872,0.16508701950153,0.165049310882653,0.164987496015734,0.164919797810608,0.164863332862745,0.164831438485278,0.164831438485278, +0.165027676980847,0.165027676980847,0.165084005575872,0.16508701950153,0.165049310882653,0.164987496015734,0.164919797810608,0.164863332862745,0.164831438485278,0.164831438485278, +0.190314080852162,0.190314080852162,0.190364628087782,0.190356644547386,0.190304311773254,0.190226387691028,0.190143509136568,0.19007518515876,0.190036766152311,0.190036766152311, +0.24094843445195,0.24094843445195,0.240986119863583,0.240954742566033,0.240871712939636,0.240760135137202,0.24064552828646,0.240552314495378,0.240500128277442,0.240500128277442, +0.316786855517818,0.316786855517818,0.316802333591767,0.316732532987651,0.316599921041555,0.316434316335645,0.316268633398857,0.316134940737868,0.316060068926511,0.316060068926511, +0.417026835232681,0.417026835232681,0.417008232756514,0.416881277289323,0.416676083399503,0.416431944299304,0.416191474287141,0.415997189556949,0.415887328233133,0.415887328233133, +0.539714898043947,0.539714898043947,0.539649020030122,0.539441017730825,0.539134642669134,0.538782319603327,0.538437406113737,0.538154695086099,0.53799027204998,0.53799027204998, +0.681384398799951,0.681384398799951,0.681262490735793,0.680939810740632,0.680495768315938,0.680000676805226,0.67951506864627,0.6791030439584,0.678846705369689,0.678846705369689, +0.836962763429037,0.836962763429037,0.836805176277232,0.836304063549235,0.835674542846549,0.835001708804281,0.834336516586736,0.833734372430688,0.833298539461417,0.833298539461417, + +00:42:39, +0.165144088381455,0.165144088381455,0.165200421498984,0.165203442774395,0.165165743354778,0.165103938260058,0.16503624901567,0.164979790917307,0.164947900252373,0.164947900252373, +0.165144088381455,0.165144088381455,0.165200421498984,0.165203442774395,0.165165743354778,0.165103938260058,0.16503624901567,0.164979790917307,0.164947900252373,0.164947900252373, +0.190430743875456,0.190430743875456,0.19048129341459,0.19047331809779,0.190420997728379,0.190343087951158,0.190260223108945,0.190191909885824,0.190153496789777,0.190153496789777, +0.24106436333927,0.24106436333927,0.241102047986864,0.241070681650667,0.240987671508007,0.240876117501829,0.240761534138665,0.240668339094819,0.240616163285616,0.240616163285616, +0.316898971552803,0.316898971552803,0.316914447277195,0.316844663875014,0.316712083412526,0.316546517565099,0.316380873292089,0.316247211742868,0.316172357331367,0.316172357331367, +0.417129789339755,0.417129789339755,0.417111186940562,0.416984260139421,0.416779115614586,0.416535036416959,0.416294625871146,0.41610038930559,0.415990555208938,0.415990555208938, +0.539801677133571,0.539801677133571,0.539735807349469,0.539527851693866,0.539221550198382,0.538869313847391,0.538524486067642,0.538241845375021,0.538077463089378,0.538077463089378, +0.681447591391831,0.681447591391831,0.68132570487844,0.6810030970593,0.680559158493695,0.680064185011243,0.67957869334962,0.679166767187514,0.678910489266516,0.678910489266516, +0.836996148070436,0.836996148070436,0.83683859442458,0.836337590715089,0.835708209588912,0.835035526342033,0.834370483555071,0.833768473854131,0.833332736842174,0.833332736842174, + +00:42:40, +0.165260500932411,0.165260500932411,0.16531683855977,0.165319867184402,0.165282176972896,0.165220381664864,0.16515270139712,0.165096250161542,0.165064363216645,0.165064363216645, +0.165260500932411,0.165260500932411,0.16531683855977,0.165319867184402,0.165282176972896,0.165220381664864,0.16515270139712,0.165096250161542,0.165064363216645,0.165064363216645, +0.190547402337069,0.190547402337069,0.190597954171512,0.190589987078847,0.190537679121456,0.190459783660566,0.19037693254283,0.190308630084532,0.190270222904585,0.190270222904585, +0.241180278033313,0.241180278033313,0.241217961915881,0.241186606542403,0.241103615886714,0.240992085681117,0.240877525809945,0.240784349516862,0.240732184118323,0.240732184118323, +0.317011062971418,0.317011062971418,0.317026536352225,0.316956770151766,0.316824221168115,0.316658694171779,0.316493088554485,0.316359458110169,0.316284621094543,0.316284621094543, +0.417232711224918,0.417232711224918,0.417214108911947,0.417087210770522,0.416882115592916,0.416638096273774,0.41639774516919,0.41620355674732,0.416093749865776,0.416093749865776, +0.53988842224236,0.53988842224236,0.539822560694238,0.539614651664197,0.539308423699456,0.538956274018681,0.53861153190334,0.538328961507827,0.53816461995051,0.53816461995051, +0.681510755560993,0.681510755560993,0.681388890595029,0.681066354916741,0.680622520154445,0.68012766463448,0.67964228940415,0.679230461711624,0.678974244423839,0.678974244423839, +0.837029516510856,0.837029516510856,0.836871996355154,0.836371101607695,0.835741859983219,0.835069327449402,0.834404434010854,0.833802558691316,0.833366917584823,0.833366917584823, + +00:42:41, +0.165376914607458,0.165376914607458,0.165433256731985,0.165436292705301,0.165398611710731,0.165336826203842,0.16526915492861,0.165212710569073,0.165180827351702,0.165180827351702, +0.165376914607458,0.165376914607458,0.165433256731985,0.165436292705301,0.165398611710731,0.165336826203842,0.16526915492861,0.165212710569073,0.165180827351702,0.165180827351702, +0.190664056219025,0.190664056219025,0.190714610340578,0.190706651472579,0.190654355934483,0.190576474801219,0.190493637420156,0.190425345736789,0.190386944478626,0.190386944478626, +0.241296178530515,0.241296178530515,0.241333861647068,0.24130251723766,0.241219546072157,0.241108039671437,0.240993503296648,0.240900345757833,0.240848190771877,0.240848190771877, +0.317123129786697,0.317123129786697,0.317138600829878,0.317068851830914,0.316936334321316,0.316770846168665,0.316605279199011,0.316471679852731,0.316396860228993,0.316396860228993, +0.417335600915099,0.417335600915099,0.41731699869758,0.417190129209529,0.416985083361397,0.416741123896659,0.416500832208191,0.41630669190907,0.416196912230582,0.416196912230582, +0.539975133403941,0.539975133403941,0.539909280098038,0.539701417675435,0.539395263205998,0.539043200150878,0.538698543654547,0.538416043518263,0.53825174266714,0.53825174266714, +0.681573891337971,0.681573891337971,0.681452047916095,0.681129584343521,0.680685853328808,0.680191115705623,0.679705856840616,0.679294127561543,0.679037970872506,0.679037970872506, +0.837062868768419,0.837062868768419,0.836905382087091,0.83640459624525,0.835775494047751,0.835103112144762,0.834438367972549,0.833836626960789,0.833401081707968,0.833401081707968, + +00:42:42, +0.165493329380377,0.165493329380377,0.165549675989424,0.165552719310877,0.165515047542046,0.16545327185072,0.165385609583835,0.165329172113565,0.165297292631192,0.165297292631192, +0.165493329380377,0.165493329380377,0.165549675989424,0.165552719310877,0.165515047542046,0.16545327185072,0.165385609583835,0.165329172113565,0.165297292631192,0.165297292631192, +0.190780705503375,0.190780705503375,0.190831261903849,0.190823311261035,0.190771028149487,0.190693161355109,0.190610337722885,0.190542056824529,0.19050366149382,0.19050366149382, +0.241412064827321,0.241412064827321,0.241449747176869,0.24141841373287,0.241335462060744,0.241223979469173,0.241109466595128,0.241016327814068,0.240964183242602,0.240964183242602, +0.31723517201166,0.31723517201166,0.31725064072316,0.317180908925452,0.317048422885109,0.316882973568724,0.316717445238621,0.316583876983498,0.316509074747657,0.316509074747657, +0.417438458437195,0.417438458437195,0.417419856324338,0.417293015483312,0.417088018946902,0.416844119312493,0.41660388701504,0.416409794817736,0.416300042330258,0.416300042330258, +0.540061810651892,0.540061810651892,0.539995965594432,0.539788149761151,0.539482068751605,0.539130092277612,0.538785521354934,0.538503091440032,0.538338831272992,0.538338831272992, +0.68163699875326,0.68163699875326,0.681515176872128,0.68119278537016,0.680749158047359,0.680254538255316,0.679769395689727,0.679357764768039,0.679101668643322,0.679101668643322, +0.837096204861224,0.837096204861224,0.836938751638504,0.836438074645928,0.835809111800763,0.835136880446459,0.834472285458593,0.833870678681069,0.833435229230186,0.833435229230186, + +00:42:43, +0.165609745224984,0.165609745224984,0.165666096305918,0.165669146974955,0.165631484440641,0.165569718579263,0.165502065336523,0.165445634768719,0.165413759028799,0.165413759028799, +0.165609745224984,0.165609745224984,0.165666096305918,0.165669146974955,0.165631484440641,0.165569718579263,0.165502065336523,0.165445634768719,0.165413759028799,0.165413759028799, +0.190897350172202,0.190897350172202,0.190947908843413,0.190939966426294,0.19088769574852,0.19080984330426,0.190727033433006,0.190658763329715,0.190620373932114,0.190620373932114, +0.241527936920189,0.241527936920189,0.241565618501736,0.241534296024472,0.241451363848894,0.241339905070718,0.241225415701753,0.241132295681914,0.241080161526832,0.241080161526832, +0.317347189659317,0.317347189659317,0.317362656045069,0.317292941448362,0.317160486872462,0.31699507638491,0.316829586686259,0.316696049515402,0.316621264663464,0.316621264663464, +0.417541283818068,0.417541283818068,0.417522681819065,0.417395869618707,0.417190922376268,0.416947082548123,0.416706909616589,0.416512865500181,0.416403140191674,0.416403140191674, +0.540148454019748,0.540148454019748,0.54008261721694,0.539874847954871,0.53956884036983,0.539216950432473,0.538872465038124,0.538590105306792,0.538425885801741,0.538425885801741, +0.681700077837312,0.681700077837312,0.681578277493574,0.681255958027139,0.680812434340634,0.680317932314159,0.679832905982151,0.679421373361838,0.67916533776705,0.67916533776705, +0.837129524807339,0.837129524807339,0.836972105027479,0.836471536827877,0.835842713260483,0.83517063237281,0.834506186487395,0.833904713870649,0.833469360170028,0.833469360170028, + +00:42:44, +0.165726162115137,0.165726162115137,0.165782517655337,0.165785575671397,0.165747922380353,0.165686166363276,0.165618522160444,0.165562098508274,0.165530226518247,0.165530226518247, +0.165726162115137,0.165726162115137,0.165782517655337,0.165785575671397,0.165747922380353,0.165686166363276,0.165618522160444,0.165562098508274,0.165530226518247,0.165530226518247, +0.191013990207612,0.191013990207612,0.191064551141387,0.191056616950462,0.191004358713666,0.190926520630721,0.190843724532537,0.190775465234338,0.190737081775485,0.190737081775485, +0.241643794805583,0.241643794805583,0.241681475618134,0.241650164108918,0.241567251433036,0.241455816472473,0.2413413506129,0.241248249357725,0.241196125620914,0.241196125620914, +0.317459182742662,0.317459182742662,0.317474646808587,0.317404949412614,0.317272526296331,0.317107154630165,0.316941703554853,0.316808197461365,0.316733429989328,0.316733429989328, +0.417644077084548,0.417644077084548,0.417625475208571,0.417498691642519,0.417293793676301,0.417050013630361,0.416809900039662,0.416615903983237,0.416506205841664,0.416506205841664, +0.540235063541,0.540235063541,0.540169234999033,0.539961512290079,0.53965557809418,0.539303774649002,0.538959374737699,0.538677085152155,0.538512906287018,0.538512906287018, +0.681763128620534,0.681763128620534,0.681641349810839,0.681319102344894,0.680875682239124,0.680381297912709,0.679896387748513,0.679484953373624,0.679228978274409,0.679228978274409, +0.837162828624809,0.837162828624809,0.837005442272075,0.836504982809217,0.835876298445116,0.835204367942111,0.83454007107734,0.833938732547994,0.833503474546017,0.833503474546017, + +00:42:45, +0.165842580024728,0.165842580024728,0.165898940011589,0.165902005374102,0.165864361335058,0.1658026151766,0.165734980029404,0.165678563306009,0.165646695073298,0.165646695073298, +0.165842580024728,0.165842580024728,0.165898940011589,0.165902005374102,0.165864361335058,0.1658026151766,0.165734980029404,0.165678563306009,0.165646695073298,0.165646695073298, +0.191130625591743,0.191130625591743,0.191181188779914,0.191173262815672,0.191121017027035,0.191043193316571,0.190960411003522,0.190892162520417,0.190853785005936,0.190853785005936, +0.241759638479979,0.241759638479979,0.241797318522536,0.241766017982667,0.241683124809609,0.241571713670851,0.241457271324956,0.241364188837869,0.241312075521201,0.241312075521201, +0.31757115127468,0.31757115127468,0.317586613026684,0.317516932831166,0.31738454116966,0.317219208317419,0.317053795857321,0.316920320834295,0.316845570738154,0.316845570738154, +0.417746838263433,0.417746838263433,0.417728236519634,0.417601481581519,0.417396632873776,0.417152912585986,0.416912858311046,0.4167189102937,0.416609239307033,0.416609239307033, +0.540321639249094,0.540321639249094,0.540255818974141,0.540048142800211,0.53974228195812,0.539390564960699,0.539046250487194,0.538764031009688,0.538599892762411,0.538599892762411, +0.681826151133293,0.681826151133293,0.681704393854285,0.681382218353819,0.680938901773279,0.680444635081482,0.679959841019396,0.679548504834035,0.679292590196073,0.679292590196073, +0.837196116331654,0.837196116331654,0.837038763390326,0.836538412608043,0.835909867372836,0.835238087172627,0.834573939246785,0.833972734731543,0.833537572376652,0.833537572376652, + +00:42:46, +0.16595899892769,0.16595899892769,0.16601536334862,0.16601843605701,0.16598080127867,0.165919064993117,0.165851438917249,0.165795029135739,0.165763164667751,0.165763164667751, +0.16595899892769,0.16595899892769,0.16601536334862,0.16601843605701,0.16598080127867,0.165919064993117,0.165851438917249,0.165795029135739,0.165763164667751,0.165763164667751, +0.191247256306759,0.191247256306759,0.191297821741168,0.191289904004088,0.191237670670764,0.191159861343916,0.191077092828035,0.191008855169998,0.1909704836055,0.1909704836055, +0.241875467939863,0.241875467939863,0.241913147211425,0.241881857642189,0.24179898397506,0.241687596662276,0.241573177834317,0.241480114118723,0.241428011224059,0.241428011224059, +0.317683095268341,0.317683095268341,0.317698554712318,0.317628891716962,0.31749653150538,0.317331237459589,0.317165863606568,0.317032419647088,0.316957686922833,0.316957686922833, +0.417849567381485,0.417849567381485,0.417830965778999,0.417704239462443,0.417499439995429,0.417255779441746,0.417015784457499,0.416821884458336,0.41671224061455,0.41671224061455, +0.540408181177428,0.540408181177428,0.540342369175649,0.54013473951866,0.539828951995066,0.539477321401017,0.5391330923201,0.538850942912915,0.538686845261462,0.538686845261462, +0.681889145405912,0.681889145405912,0.681767409654231,0.681445306084267,0.681002092973503,0.680507943850949,0.680023265825337,0.67961202777367,0.679356173562678,0.679356173562678, +0.837229387945866,0.837229387945866,0.837072068400242,0.836571826242423,0.835943420061795,0.835271790082599,0.834607791014062,0.83400672043971,0.833571653680401,0.833571653680401, + +00:42:47, +0.166075418797993,0.166075418797993,0.166131787640413,0.166134867694095,0.166097242185141,0.166035515786743,0.16596789879786,0.165911495971317,0.165879635275443,0.165879635275443, +0.166075418797993,0.166075418797993,0.166131787640413,0.166134867694095,0.166097242185141,0.166035515786743,0.16596789879786,0.165911495971317,0.165879635275443,0.165879635275443, +0.191363882334852,0.191363882334852,0.191414450007348,0.191406540497899,0.19135431962702,0.191276524694891,0.191193769988179,0.191125543165158,0.191087177556238,0.191087177556238, +0.24199128318173,0.24199128318173,0.242028961681294,0.241997683083964,0.241914828925849,0.241803465443178,0.24168907013739,0.241596025196671,0.241543932725863,0.241543932725863, +0.317795014736603,0.317795014736603,0.317810471878435,0.317740826082934,0.317608497316408,0.317443242069581,0.317277906815487,0.317144493912627,0.317069778556243,0.317069778556243, +0.417952264465435,0.417952264465435,0.417933663013377,0.417806965311997,0.41760221506797,0.417358614224354,0.417118678505742,0.416924826503875,0.416815209790951,0.416815209790951, +0.54049468935936,0.54049468935936,0.540428885636895,0.540221302478773,0.539915588238394,0.539564044003365,0.539219900269863,0.538937820895312,0.538773763817667,0.538773763817667, +0.681952111468672,0.681952111468672,0.681830397240956,0.681508365566546,0.681065255870162,0.68057122425154,0.680086662196834,0.679675522223082,0.679419728404812,0.679419728404812, +0.837262643485413,0.837262643485413,0.837105357319803,0.836605223730402,0.835976956530117,0.835305476690242,0.834641626397475,0.834040689690881,0.833605718475711,0.833605718475711, + +00:42:48, +0.166191839609643,0.166191839609643,0.166248212860989,0.166251300259372,0.16621368402846,0.166151967531434,0.166084359645158,0.166027963786636,0.16599610687025,0.16599610687025, +0.166191839609643,0.166191839609643,0.166248212860989,0.166251300259372,0.16621368402846,0.166151967531434,0.166084359645158,0.166027963786636,0.16599610687025,0.16599610687025, +0.191480503658242,0.191480503658242,0.191531073560682,0.191523172279322,0.191470963877996,0.191393183351656,0.191310442466082,0.191242226487999,0.191203866840237,0.191203866840237, +0.242107084202084,0.242107084202084,0.242144761928645,0.242113494304481,0.242030659658444,0.241919320010002,0.241804948230593,0.241711922068111,0.241659840022997,0.241659840022997, +0.317906909692412,0.317906909692412,0.317922364537968,0.317852735942001,0.317720438615651,0.317555222160285,0.317389925496958,0.317256543643784,0.317181845651252,0.317181845651252, +0.418054929541981,0.418054929541981,0.418036328249447,0.417909659156854,0.417704958118071,0.41746141696049,0.417221540482467,0.417027736457018,0.416918146862943,0.416918146862943, +0.5405811638282,0.5405811638282,0.540515368391175,0.540307831713854,0.540002190721431,0.539650732801107,0.539306674369883,0.539024664990313,0.538860648464479,0.538860648464479, +0.682015049351811,0.682015049351811,0.681893356644693,0.681571396830923,0.681128390493576,0.680634476313642,0.680150030164341,0.679738988212783,0.679483254753024,0.679483254753024, +0.837295882968234,0.837295882968234,0.837138630166967,0.836638605089995,0.8360104767959,0.835339147013745,0.834675445415303,0.834074642503416,0.833639766780998,0.833639766780998, + +00:42:49, +0.166308261336687,0.166308261336687,0.166364638984408,0.166367733726891,0.166330126782654,0.166268420201184,0.166200821433102,0.166144432555625,0.166112579426086,0.166112579426086, +0.166308261336687,0.166308261336687,0.166364638984408,0.166367733726891,0.166330126782654,0.166268420201184,0.166200821433102,0.166144432555625,0.166112579426086,0.166112579426086, +0.191597120259178,0.191597120259178,0.191647692383426,0.191639799330604,0.191587603405915,0.191509837296404,0.191427110243904,0.191358905120654,0.191320551439615,0.191320551439615, +0.242222870997442,0.242222870997442,0.242260547949993,0.242229291300242,0.242146476169322,0.242035160359198,0.241920812110351,0.241827804729449,0.241775733111858,0.241775733111858, +0.318018780148701,0.318018780148701,0.318034232703837,0.317964621307072,0.317832355416003,0.317667177744583,0.31750191966385,0.317368568853418,0.317293888220713,0.317293888220713, +0.418157562637788,0.418157562637788,0.418138961513855,0.418012321023651,0.417807669172374,0.417564187676804,0.417324370414331,0.417130614344429,0.417021051857195,0.417021051857195, +0.540667604617216,0.540667604617216,0.540601817471738,0.540394327257161,0.540088759477462,0.539737387827562,0.539393414653519,0.539111475231308,0.538947499235305,0.538947499235305, +0.682077959085526,0.682077959085526,0.681956287895636,0.681634399907622,0.681191496874024,0.6806977000676,0.680213369758269,0.679802425773243,0.679546752637818,0.679546752637818, +0.837329106412247,0.837329106412247,0.837171886959664,0.836671970339195,0.836043980877218,0.835372801071269,0.834709248085798,0.834108578895649,0.833673798614654,0.833673798614654, + +00:42:50, +0.166424683953206,0.166424683953206,0.166481065984766,0.166484168070742,0.166446570421788,0.166384873770025,0.166317284135687,0.166260902252251,0.166229052916902,0.166229052916902, +0.166424683953206,0.166424683953206,0.166481065984766,0.166484168070742,0.166446570421788,0.166384873770025,0.166317284135687,0.166260902252251,0.166229052916902,0.166229052916902, +0.191713732119935,0.191713732119935,0.191764306457864,0.191756421634019,0.191704238193027,0.191626486511352,0.191543773303828,0.19147557904528,0.191437231336515,0.191437231336515, +0.242338643564327,0.242338643564327,0.242376319741858,0.242345074067754,0.242262278454972,0.24215098648723,0.242036661773101,0.241943673177102,0.241891611988851,0.241891611988851, +0.318130626118392,0.318130626118392,0.31814607638895,0.318076482191041,0.317944247730345,0.317779108835343,0.317613889329018,0.317480569554376,0.31740590627747,0.31740590627747, +0.418260163779487,0.418260163779487,0.418241562833214,0.418114950938995,0.417910348257486,0.417666926399911,0.417427168327958,0.417233460192743,0.417123924800348,0.417123924800348, +0.540754011759629,0.540754011759629,0.540688232911791,0.540480789141909,0.540175294539727,0.539824009116006,0.539480121154081,0.539198251651639,0.53903431616351,0.53903431616351, +0.682140840699971,0.682140840699971,0.682019191023935,0.681697374826826,0.681254575041743,0.680760895543716,0.680276681008987,0.679865834934887,0.679610222089657,0.679610222089657, +0.83736231383534,0.83736231383534,0.837205127715799,0.836705319495967,0.836077468792116,0.835406438880951,0.834743034427187,0.834142498885888,0.833707813995044,0.833707813995044, + +00:42:51, +0.166541107433322,0.166541107433322,0.166597493836196,0.166600603265052,0.166563014919966,0.166501328212025,0.166433747726949,0.16637737285052,0.166345527316686,0.166345527316686, +0.166541107433322,0.166541107433322,0.166597493836196,0.166600603265052,0.166563014919966,0.166501328212025,0.166433747726949,0.16637737285052,0.166345527316686,0.166345527316686, +0.191830339222817,0.191830339222817,0.191880915766306,0.191873039171867,0.191820868221608,0.191743130978746,0.19166043162807,0.191592248244066,0.191553906513112,0.191553906513112, +0.242454401899273,0.242454401899273,0.242492077300773,0.242460842603537,0.242378066511892,0.242266798390569,0.242152497215291,0.242059527407496,0.242007476650389,0.242007476650389, +0.318242447614391,0.318242447614391,0.318257895606203,0.318188318606791,0.318056115571546,0.317891015445419,0.317725834505305,0.317592545759493,0.317517899834351,0.317517899834351, +0.418362732993678,0.418362732993678,0.418344132234104,0.418217548929461,0.418012995399983,0.417769633156393,0.41752993424994,0.41733627402856,0.417226765719006,0.417226765719006, +0.540840385288616,0.540840385288616,0.540774614744496,0.540567217401268,0.540261795941422,0.539910596699668,0.539566793904839,0.539284994284608,0.539121099282411,0.539121099282411, +0.682203694225257,0.682203694225257,0.682082066059698,0.681760321618675,0.681317625026928,0.680824062772249,0.680339963946821,0.6799292157281,0.679673663138962,0.679673663138962, +0.837395505255378,0.837395505255378,0.837238352453253,0.836738652578251,0.836110940558615,0.835440060460901,0.834776804457671,0.834176402492414,0.833741812940507,0.833741812940507, + +00:42:52, +0.166657531751193,0.166657531751193,0.166713922512872,0.166717039283984,0.166679460251326,0.166617783501291,0.166550212180958,0.166493844324475,0.166462002599466,0.166462002599466, +0.166657531751193,0.166657531751193,0.166713922512872,0.166717039283984,0.166679460251326,0.166617783501291,0.166550212180958,0.166493844324475,0.166462002599466,0.166462002599466, +0.191946941550155,0.191946941550155,0.191997520291094,0.191989651926477,0.191937493473965,0.19185977068086,0.19177708519887,0.191708912699226,0.191670576951604,0.191670576951604, +0.242570145998826,0.242570145998826,0.242607820623281,0.242576596904119,0.242493840336589,0.242382596065698,0.242268318433376,0.242175367417067,0.2421233270929,0.2421233270929, +0.318354244649595,0.318354244649595,0.318369690368479,0.318300130567191,0.318167958952461,0.318002897587655,0.317837755205543,0.31770449748159,0.317629868904174,0.317629868904174, +0.418465270306926,0.418465270306926,0.418446669743072,0.418320115021587,0.418115610626409,0.417872307972799,0.417632668206836,0.417439055878448,0.417329574639744,0.417329574639744, +0.540926725237312,0.540926725237312,0.540860963002968,0.540653612068363,0.540348263715698,0.539997150611737,0.539653432939014,0.539371703163468,0.539207848625282,0.539207848625282, +0.682266519691454,0.682266519691454,0.682144913032991,0.681823240313266,0.681380646859729,0.680887201783418,0.680403218602057,0.679992568183223,0.679737075816108,0.679737075816108, +0.8374286806902,0.8374286806902,0.837271561189877,0.836771969603961,0.836144396194711,0.835473665829204,0.834810558195423,0.834210289733482,0.833775795469356,0.833775795469356, + +00:42:53, +0.166773956881014,0.166773956881014,0.166830351989003,0.16683347610174,0.166795906390048,0.166734239611968,0.166666677471825,0.166610316648196,0.166578478739307,0.166578478739307, +0.166773956881014,0.166773956881014,0.166830351989003,0.16683347610174,0.166795906390048,0.166734239611968,0.166666677471825,0.166610316648196,0.166578478739307,0.166578478739307, +0.192063539084308,0.192063539084308,0.192114120014592,0.192106259880207,0.19205411393243,0.191976405599995,0.191893733998499,0.191825572393004,0.191787242634221,0.191787242634221, +0.242685875859539,0.242685875859539,0.242723549705932,0.24269233696604,0.242609599925581,0.242498379509107,0.242384125423824,0.242291193202262,0.242239163312817,0.242239163312817, +0.318466017236888,0.318466017236888,0.318481460688648,0.318411918085099,0.318279777885936,0.318114755274882,0.31794965144255,0.317816424733478,0.317741813499744,0.317741813499744, +0.418567775745765,0.418567775745765,0.418549175386634,0.418422649241883,0.418218193963272,0.417974950875648,0.417735370225173,0.417541805768942,0.417432351589101,0.417432351589101, +0.541013031638806,0.541013031638806,0.540947277720281,0.540739973176275,0.540434697895662,0.540083670885353,0.539740038289787,0.539458378321431,0.539294564225355,0.539294564225355, +0.68232931712859,0.68232931712859,0.682207731973839,0.681886130940656,0.681443640570258,0.680950312607397,0.680466445004934,0.680055892330557,0.679800460151432,0.679800460151432, +0.837461840157617,0.837461840157617,0.837304753943502,0.836805270590984,0.836177835718372,0.835507255003918,0.834844295658591,0.834244160627322,0.833809761599877,0.833809761599877, + +00:42:54, +0.166890382797018,0.166890382797018,0.166946782238834,0.16694991369256,0.166912353310346,0.166850696518238,0.166783143573695,0.166726789795802,0.166694955710311,0.166694955710311, +0.166890382797018,0.166890382797018,0.166946782238834,0.16694991369256,0.166912353310346,0.166850696518238,0.166783143573695,0.166726789795802,0.166694955710311,0.166694955710311, +0.192180131807664,0.192180131807664,0.192230714919195,0.192222863015442,0.192170729579365,0.192093035718481,0.192010378009252,0.191942227307671,0.19190390354322,0.19190390354322, +0.242801591477975,0.242801591477975,0.242839264545287,0.242808062785848,0.242725345275395,0.242614148717299,0.24249991818311,0.242407004759536,0.242354985306586,0.242354985306586, +0.31857776538914,0.31857776538914,0.318593206579569,0.31852368117336,0.318391572384802,0.318226588519917,0.318061523229133,0.317928327527954,0.317853733633856,0.317853733633856, +0.418670249336696,0.418670249336696,0.41865164919127,0.418525151616823,0.41832074543705,0.418077561891423,0.417838040331445,0.417644523726545,0.417535096593587,0.417535096593587, +0.541099304526142,0.541099304526142,0.541033558929464,0.540826300758042,0.540521098514376,0.540170157553614,0.539826609990292,0.539545019791663,0.539381246115814,0.539381246115814, +0.68239208656665,0.68239208656665,0.682270522912223,0.681948993530857,0.681506606188583,0.68101339527432,0.680529643185654,0.680119188200356,0.679863816175226,0.679863816175226, +0.837494983675419,0.837494983675419,0.837337930731929,0.836838555557184,0.836211259147542,0.835540828003077,0.834878016865298,0.834278015192136,0.83384371135033,0.83384371135033, + +00:42:55, +0.167006809473477,0.167006809473477,0.167063213236652,0.167066352030721,0.167028800986474,0.166967154194319,0.166899610460754,0.166843263741449,0.166811433486617,0.166811433486617, +0.167006809473477,0.167006809473477,0.167063213236652,0.167066352030721,0.167028800986474,0.166967154194319,0.166899610460754,0.166843263741449,0.166811433486617,0.166811433486617, +0.192296719702636,0.192296719702636,0.192347304987326,0.192339461314592,0.192287340397157,0.192209661018676,0.192127017213455,0.192058877425526,0.192020559660883,0.192020559660883, +0.242917292850707,0.242917292850707,0.242954965137919,0.242923774360101,0.242841076382568,0.242729903686785,0.242615696707721,0.242522802085357,0.242470793070662,0.242470793070662, +0.31868948911921,0.31868948911921,0.318704928054088,0.318635419844807,0.318503342461878,0.318338397335567,0.318173370578087,0.318040205877804,0.317965629319289,0.317965629319289, +0.418772691106187,0.418772691106187,0.418754091183431,0.418627622172851,0.418423265074188,0.418180141046577,0.417940678552113,0.417747209777727,0.417637809679676,0.417637809679676, +0.54118554393232,0.54118554393232,0.541119806663501,0.540912594846657,0.54060746560486,0.540256610649575,0.53991314807362,0.539631627607287,0.539467894329801,0.539467894329801, +0.682454828035579,0.682454828035579,0.682333285878084,0.682011828113842,0.681569543744728,0.681076449814278,0.680592813174374,0.680182455822838,0.679927143917741,0.679927143917741, +0.837528111261367,0.837528111261367,0.837371091572935,0.836871824520399,0.836244666500138,0.835574384844686,0.83491172183364,0.834311853446102,0.833877644738949,0.833877644738949, + +00:42:56, +0.167123236884698,0.167123236884698,0.167179644956777,0.167182791090536,0.167145249392721,0.16708361261447,0.167016078107224,0.166959738459331,0.166927912042405,0.166927912042405, +0.167123236884698,0.167123236884698,0.167179644956777,0.167182791090536,0.167145249392721,0.16708361261447,0.167016078107224,0.166959738459331,0.166927912042405,0.166927912042405, +0.192413302751666,0.192413302751666,0.192463890201435,0.192456054760097,0.192403946368223,0.192326281482963,0.192243651593461,0.192175522728894,0.192137210969524,0.192137210969524, +0.243032979974319,0.243032979974319,0.243070651480407,0.243039471685366,0.242956793243646,0.242845644414086,0.242731460994152,0.242638585176198,0.24258658660151,0.24258658660151, +0.318801188439943,0.318801188439943,0.318816625125037,0.318747134112261,0.318615088129971,0.318450181734626,0.318285193502193,0.318152059795801,0.318077500568812,0.318077500568812, +0.418875101080672,0.418875101080672,0.418856501389532,0.418730060936375,0.418525752901098,0.418282688367529,0.418043284913606,0.417849863948925,0.417740490873812,0.417740490873812, +0.541271749890298,0.541271749890298,0.541206020955333,0.540998855475067,0.540693799200088,0.540343030206243,0.539999652572817,0.539718201801381,0.539554508900412,0.539554508900412, +0.682517541565277,0.682517541565277,0.68239602090132,0.682074634719541,0.681632453268679,0.68113947625732,0.680655955001209,0.680245695228173,0.679990443409183,0.679990443409183, +0.837561222933197,0.837561222933197,0.837404236484272,0.836905077498439,0.836278057794053,0.835607925546726,0.834945410581687,0.834345675407369,0.833911561783942,0.833911561783942, + +00:42:57, +0.167239665005027,0.167239665005027,0.167296077373569,0.167299230846358,0.167261698503416,0.167200071752985,0.167132546487365,0.167076213923679,0.167044391351888,0.167044391351888, +0.167239665005027,0.167239665005027,0.167296077373569,0.167299230846358,0.167261698503416,0.167200071752985,0.167132546487365,0.167076213923679,0.167044391351888,0.167044391351888, +0.192529880937223,0.192529880937223,0.192580470543998,0.192572643334426,0.192520547475007,0.192442897093756,0.192360281131649,0.192292163200131,0.192253857451482,0.192253857451482, +0.243148652845403,0.243148652845403,0.243186323569342,0.243155154758221,0.243072495855186,0.242961370895734,0.242847211038909,0.242754354028548,0.242702365895604,0.242702365895604, +0.318912863364173,0.318912863364173,0.318928297805238,0.318858823988529,0.318726809401877,0.318561941729875,0.318396992014221,0.318263889294706,0.318189347395182,0.318189347395182, +0.418977479286556,0.418977479286556,0.418958879835959,0.418832467933775,0.41862820894416,0.418385203880666,0.418145859442321,0.417952486266546,0.417843140202406,0.417843140202406, +0.541357922432988,0.541357922432988,0.541292201837855,0.541085082676179,0.540780099332989,0.540429416256586,0.540086123520886,0.539804742406979,0.539641089860702,0.539641089860702, +0.682580227185606,0.682580227185606,0.682458728011788,0.682137413377842,0.681695334790376,0.681202474633453,0.680719068696232,0.680308906446493,0.680053714679721,0.680053714679721, +0.83759431870862,0.83759431870862,0.837437365483666,0.83693831450909,0.836311433047153,0.835641450127155,0.834979083127484,0.834379481094065,0.833945462503492,0.833945462503492, + +00:42:58, +0.167356093808846,0.167356093808846,0.167412510461424,0.167415671272575,0.167378148292923,0.167316531584195,0.167249015575474,0.167192690108762,0.16716087138932,0.16716087138932, +0.167356093808846,0.167356093808846,0.167412510461424,0.167415671272575,0.167378148292923,0.167316531584195,0.167249015575474,0.167192690108762,0.16716087138932,0.16716087138932, +0.192646454241806,0.192646454241806,0.19269704599752,0.192689227020072,0.192637143699979,0.192559507833493,0.192476905810429,0.192408798821619,0.192370499089124,0.192370499089124, +0.243264311460561,0.243264311460561,0.243301981401324,0.243270823575254,0.243188184213754,0.243077083128268,0.242962946838509,0.2428701086389,0.242818130949429,0.242818130949429, +0.319024513904721,0.319024513904721,0.3190399461075,0.318970489486407,0.318838506290376,0.318673677334084,0.318508766126929,0.318375694387268,0.318301169811143,0.318301169811143, +0.419079825750207,0.419079825750207,0.419061226549062,0.418934843191395,0.41873063322972,0.418487687612343,0.41824840216462,0.418055076756961,0.417945757691835,0.417945757691835, +0.541444061593258,0.541444061593258,0.541378349343921,0.541171276482853,0.540866366036452,0.540515768833523,0.540172560950784,0.539891249457071,0.539727637243679,0.539727637243679, +0.682642884926383,0.682642884926383,0.682521407239302,0.682200164118591,0.681758188339721,0.681265444972642,0.680782154289475,0.680372089507885,0.680116957759477,0.680116957759477, +0.837627398605322,0.837627398605322,0.837470478588819,0.836971535570114,0.836344792277279,0.835674958603899,0.83501273948905,0.834413270524286,0.833979346915753,0.833979346915753, + +00:42:59, +0.167472523270577,0.167472523270577,0.167528944194776,0.167532112343614,0.167494598735646,0.16743299208247,0.167365485345885,0.167309166988885,0.16727735212899,0.16727735212899, +0.167472523270577,0.167472523270577,0.167528944194776,0.167532112343614,0.167494598735646,0.16743299208247,0.167365485345885,0.167309166988885,0.16727735212899,0.16727735212899, +0.192763022647937,0.192763022647937,0.192813616544533,0.192805805799559,0.192753735025639,0.192676113684644,0.192593525612235,0.192525429575766,0.192487135864845,0.192487135864845, +0.243379955816405,0.243379955816405,0.243417624972962,0.24338647813306,0.243303858315926,0.243192781108239,0.243078668389476,0.242985849003761,0.24293388175948,0.24293388175948, +0.319136140074396,0.319136140074396,0.319151570044617,0.319082130618678,0.318950178808239,0.318785388560009,0.318620515853061,0.318487475086225,0.318412967829428,0.318412967829428, +0.419182140497964,0.419182140497964,0.419163541555161,0.419037186735547,0.418833025784094,0.418590139588881,0.418350913106836,0.41815763544651,0.418048343368446,0.418048343368446, +0.541530167403934,0.541530167403934,0.541464463506339,0.541257436927905,0.540952599343317,0.540602087969933,0.540258964895427,0.539977722984603,0.539814151082307,0.539814151082307, +0.682705514817386,0.682705514817386,0.682584058613637,0.682262886971593,0.681821013946573,0.681328387304811,0.680845211810928,0.680435244442397,0.680180172678535,0.680180172678535, +0.837660462640965,0.837660462640965,0.837503575817405,0.837004740699246,0.836378135502247,0.835708450994865,0.835046379684377,0.834447043716107,0.834013215038857,0.834013215038857, + +00:43:00, +0.167588953364675,0.167588953364675,0.167645378548095,0.167648554033937,0.167611049806023,0.167549453222216,0.16748195577297,0.167425644538393,0.167393833545228,0.167393833545228, +0.167588953364675,0.167588953364675,0.167645378548095,0.167648554033937,0.167611049806023,0.167549453222216,0.16748195577297,0.167425644538393,0.167393833545228,0.167393833545228, +0.192879586138169,0.192879586138169,0.192930182167598,0.192922379655435,0.192870321434513,0.192792714629703,0.192710140519531,0.19264205544501,0.192603767761069,0.192603767761069, +0.243495585909556,0.243495585909556,0.243533254280875,0.243502118428246,0.243419518158286,0.243308464832207,0.243194375688345,0.243101575119646,0.24304961832226,0.24304961832226, +0.319247741885994,0.319247741885994,0.319263169629375,0.319193747398113,0.319061826968224,0.318897075420394,0.318732241205352,0.318599231404299,0.318524741462755,0.318524741462755, +0.419284423556132,0.419284423556132,0.419265824880542,0.419139498592511,0.418935386633564,0.41869255983657,0.418453392295268,0.418260162361503,0.418150897258552,0.418150897258552, +0.541616239897794,0.541616239897794,0.541550544357874,0.54134356404411,0.541038799286385,0.54068837369865,0.540345335387684,0.540064163022478,0.539900631409509,0.539900631409509, +0.682768116888348,0.682768116888348,0.682646682164523,0.682325581966611,0.681883811640747,0.681391301659842,0.680908241290537,0.680498371280034,0.680243359466932,0.680243359466932, +0.837693510833181,0.837693510833181,0.837536657187075,0.837037929914195,0.836411462739845,0.83574192731793,0.835080003731433,0.834480800687575,0.834047066890907,0.834047066890907, + +00:43:01, +0.167705384065637,0.167705384065637,0.167761813495891,0.167764996318047,0.167727501478532,0.167665914977877,0.167598426831139,0.167542122731665,0.167510315612397,0.167510315612397, +0.167705384065637,0.167705384065637,0.167761813495891,0.167764996318047,0.167727501478532,0.167665914977877,0.167598426831139,0.167542122731665,0.167510315612397,0.167510315612397, +0.192996144695082,0.192996144695082,0.1930467428493,0.193038948570277,0.192986902909154,0.192909310651192,0.192826750514807,0.192758676411817,0.192720394760246,0.192720394760246, +0.243611201736644,0.243611201736644,0.243648869321692,0.243617744457427,0.243535163737431,0.243424134296743,0.243310068731661,0.243217286983079,0.243165340634284,0.243165340634284, +0.3193593193523,0.3193593193523,0.319374744874544,0.319305339837471,0.319173450783077,0.319008737927973,0.318843942196521,0.318710963354203,0.318636490723833,0.318636490723833, +0.419386674950984,0.419386674950984,0.41936807655146,0.419241778788536,0.419037715804379,0.418794948381667,0.418555839756182,0.418362657528213,0.418253419388433,0.418253419388433, +0.541702279107578,0.541702279107578,0.541636591931246,0.541429657864196,0.541124965898409,0.540774626052463,0.540431672460383,0.540150569603553,0.539987078258162,0.539987078258162, +0.682830691168965,0.682830691168965,0.68270927792165,0.682388249133366,0.681946581452019,0.681454188067574,0.680971242758209,0.680561470050757,0.680306518154669,0.680306518154669, +0.837726543199583,0.837726543199583,0.837569722715454,0.837071103232646,0.836444774007839,0.835775387590946,0.835113611648159,0.834514541456712,0.834080902489981,0.834080902489981, + +00:43:02, +0.167821815347992,0.167821815347992,0.167878249012708,0.167881439170479,0.167843953727687,0.167782377323935,0.167714898494838,0.167658601543122,0.167626798304899,0.167626798304899, +0.167821815347992,0.167821815347992,0.167878249012708,0.167881439170479,0.167843953727687,0.167782377323935,0.167714898494838,0.167658601543122,0.167626798304899,0.167626798304899, +0.193112698301282,0.193112698301282,0.193163298572254,0.193155512526691,0.193103479432144,0.193025901731662,0.192943355580582,0.192875292458678,0.192837016844853,0.192837016844853, +0.243726803294311,0.243726803294311,0.243764470092051,0.243733356217231,0.243650795049964,0.243539789498425,0.24342574751598,0.243332984590596,0.243281048692075,0.243281048692075, +0.319470872486083,0.319470872486083,0.319486295792884,0.319416907949498,0.319285050265529,0.319120376095465,0.318955618839277,0.318822670948638,0.318748215625358,0.318748215625358, +0.419488894708759,0.419488894708759,0.419470296594136,0.419344027349836,0.419140013322758,0.418897305250397,0.418658255515813,0.418465120972886,0.418355909784339,0.418355909784339, +0.541788285065977,0.541788285065977,0.541722606259132,0.54151571842085,0.541211099212102,0.540860845064118,0.540517976146306,0.540236942760643,0.540073491661098,0.540073491661098, +0.682893237688887,0.682893237688887,0.682771845914668,0.682450888501539,0.682009323410123,0.681517046557806,0.681034216243809,0.680624540784488,0.680369648771702,0.680369648771702, +0.837759559757754,0.837759559757754,0.837602772420141,0.837104260672258,0.836478069323967,0.835808831831743,0.835147203452471,0.834548266041513,0.834114721854132,0.834114721854132, + +00:43:03, +0.167938247186311,0.167938247186311,0.167994685073128,0.16799788256581,0.167960406528039,0.167898840234908,0.167831370738551,0.167775080947217,0.167743281597176,0.167743281597176, +0.167938247186311,0.167938247186311,0.167994685073128,0.16799788256581,0.167960406528039,0.167898840234908,0.167831370738551,0.167775080947217,0.167743281597176,0.167743281597176, +0.193229246939402,0.193229246939402,0.193279849319102,0.193272071507307,0.193220050986091,0.19314248785369,0.193059955699402,0.192991903568113,0.192953633997396,0.192953633997396, +0.243842390579207,0.243842390579207,0.2438800565886,0.24384895370429,0.2437664120925,0.243655430433842,0.243541412037864,0.243448667938741,0.243396742492167,0.243396742492167, +0.319582401300105,0.319582401300105,0.319597822397141,0.319528451746927,0.319396625428303,0.319231989935578,0.319067271146317,0.318934354200292,0.318859916180012,0.318859916180012, +0.419591082855666,0.419591082855666,0.41957248503476,0.419446244302595,0.419242279214885,0.418999630468954,0.418760639600363,0.418567552721731,0.418458368472487,0.418458368472487, +0.541874257805641,0.541874257805641,0.541808587374167,0.541601745746713,0.541297199260131,0.540947030766318,0.540604246478193,0.540323282526519,0.540159871651108,0.540159871651108, +0.682955756477726,0.682955756477726,0.682834386173184,0.682513500100768,0.682072037544751,0.681579877160295,0.681097161777159,0.680687583511106,0.680432751347944,0.680432751347944, +0.837792560525254,0.837792560525254,0.837635806318712,0.837137402250666,0.836511348705944,0.83584226005812,0.835180779162259,0.834581974459948,0.834148525001386,0.834148525001386, + +00:43:04, +0.1680546795552,0.1680546795552,0.168111121651771,0.168114326478651,0.168076859854177,0.16801530368535,0.167947843536799,0.167891560918444,0.167859765463703,0.167859765463703, +0.1680546795552,0.1680546795552,0.168111121651771,0.168114326478651,0.168076859854177,0.16801530368535,0.167947843536799,0.167891560918444,0.167859765463703,0.167859765463703, +0.193345790592105,0.193345790592105,0.193396395072513,0.193388625494786,0.19333661755363,0.193259068999882,0.193176550853839,0.19310850972267,0.193070246200408,0.193070246200408, +0.24395796358799,0.24395796358799,0.243995628807995,0.24396453691525,0.243882014861663,0.243771057099593,0.243657062293889,0.243564337024068,0.243512422031104,0.243512422031104, +0.319693905807111,0.319693905807111,0.31970932470005,0.319639971242481,0.319508176284106,0.319343579461008,0.319178899130325,0.319046013121839,0.318971592400467,0.318971592400467, +0.419693239417881,0.419693239417881,0.419674641899489,0.419548429672964,0.419344513506914,0.419101924063497,0.418862992036002,0.418669952800927,0.41856079547906,0.41856079547906, +0.541960197359176,0.541960197359176,0.541894535308941,0.541687739874383,0.541383266075119,0.541033183191721,0.540690483488739,0.540409588933908,0.540246218260937,0.540246218260937, +0.683018247565052,0.683018247565052,0.682896898726763,0.682576083960651,0.682134723885554,0.681642679904756,0.681160079388039,0.680750598260449,0.680495825913269,0.680495825913269, +0.837825545519617,0.837825545519617,0.837668824428715,0.837170527985477,0.836544612171457,0.835875672287854,0.835214338795388,0.834615666729962,0.834182311949745,0.834182311949745, + +00:43:05, +0.1681711124293,0.1681711124293,0.168227558723294,0.168230770883652,0.168193313680725,0.168131767649856,0.16806431686414,0.168008041431333,0.167976249878994,0.167976249878994, +0.1681711124293,0.1681711124293,0.168227558723294,0.168230770883652,0.168193313680725,0.168131767649856,0.16806431686414,0.168008041431333,0.167976249878994,0.167976249878994, +0.193462329242078,0.193462329242078,0.193512935815183,0.193505174471813,0.193453179117426,0.193375645152868,0.193293141026494,0.193225110904924,0.19318685343645,0.19318685343645, +0.244073522317329,0.244073522317329,0.244111186746905,0.244080105846765,0.243997603354085,0.243886669492287,0.243772698280636,0.243679991843141,0.243628087305438,0.243628087305438, +0.319805386019836,0.319805386019836,0.319820802714331,0.319751466448868,0.319619702845634,0.319455144684437,0.319290502803973,0.319157647725944,0.319083244299383,0.319083244299383, +0.419795364421546,0.419795364421546,0.419776767214448,0.419650583487061,0.419446716224966,0.419204186060154,0.418965312848868,0.418772321236622,0.418663190830211,0.418663190830211, +0.542046103759145,0.542046103759145,0.541980450095999,0.541773700836416,0.541469299689648,0.541119302372943,0.540776687210596,0.540495862015494,0.540332531523289,0.540332531523289, +0.683080710980391,0.683080710980391,0.68295938360493,0.682638640110743,0.682197382462142,0.681705454820864,0.68122296910619,0.680813585062314,0.680558872497509,0.680558872497509, +0.837858514758353,0.837858514758353,0.837701826767674,0.837203637894276,0.836577859738169,0.835909068538697,0.835247882369698,0.834649342869473,0.834216082717182,0.834216082717182, + +00:43:06, +0.168287545783292,0.168287545783292,0.16834399626239,0.168347215755497,0.168309767982347,0.168248232103053,0.168180790695169,0.16812452246045,0.168092734817602,0.168092734817602, +0.168287545783292,0.168287545783292,0.16834399626239,0.168347215755497,0.168309767982347,0.168248232103053,0.168180790695169,0.16812452246045,0.168092734817602,0.168092734817602, +0.193578862872037,0.193578862872037,0.193629471529835,0.193621718421101,0.193569735660168,0.19349221629531,0.193409726199995,0.193341707097476,0.193303455688109,0.193303455688109, +0.244189066763904,0.244189066763904,0.244226730402005,0.244195660495499,0.24411317756641,0.244002267608541,0.243888319994701,0.243795632392534,0.243743738311732,0.243743738311732, +0.319916841951001,0.319916841951001,0.319932256452696,0.319862937378785,0.319731205125572,0.319566685618538,0.31940208217992,0.319269258025258,0.319194871889406,0.319194871889406, +0.419897457892774,0.419897457892774,0.41987886100573,0.419752705770972,0.419548887395128,0.419306416485022,0.419067602065067,0.41887465805493,0.41876555455206,0.41876555455206, +0.542131977038066,0.542131977038066,0.542066331767846,0.541859628665324,0.541555300136254,0.541205388342556,0.540862857676372,0.540582101803917,0.540418811470821,0.540418811470821, +0.683143146753231,0.683143146753231,0.683021840837169,0.682701168580559,0.682260013304082,0.681768201938249,0.681285830961309,0.680876543946453,0.680621891130452,0.680621891130452, +0.837891468258946,0.837891468258946,0.83773481335309,0.83723673199462,0.836611091423719,0.835942448828374,0.835281409903001,0.834683002896376,0.834249837321649,0.834249837321649, + +00:43:07, +0.168403979591893,0.168403979591893,0.168460434243789,0.168463661068911,0.168426222733742,0.168364697019608,0.168297265004518,0.168241003980401,0.168209220254114,0.168209220254114, +0.168403979591893,0.168403979591893,0.168460434243789,0.168463661068911,0.168426222733742,0.168364697019608,0.168297265004518,0.168241003980401,0.168209220254114,0.168209220254114, +0.193695391464726,0.193695391464726,0.19374600219922,0.193738257325392,0.193686287164573,0.193608782409893,0.193526306356997,0.193458298282956,0.193420052938001,0.193420052938001, +0.244304596924401,0.244304596924401,0.24434225976998,0.244311200858124,0.244228737495291,0.244117851444982,0.244003927432685,0.24391125866883,0.243859375046559,0.243859375046559, +0.320028273613318,0.320028273613318,0.320043685927841,0.319974384044918,0.319842683136591,0.319678202275969,0.319513637270815,0.319380844032421,0.319306475183171,0.319306475183171, +0.419999519857642,0.419999519857642,0.419980923299395,0.419854796550752,0.419651027043459,0.419408615364165,0.419169859710672,0.418976963281933,0.418867886670695,0.418867886670695, +0.542217817228415,0.542217817228415,0.54215218035694,0.541945523393573,0.541641267447431,0.541291441133087,0.540948994918634,0.540668308331772,0.540505058136149,0.540505058136149, +0.683205554913018,0.683205554913018,0.683084270452923,0.682763669399573,0.682322616440901,0.681830921286505,0.681348664983053,0.680939474942582,0.680684881841848,0.680684881841848, +0.837924406038855,0.837924406038855,0.837767784202435,0.837269810304044,0.836644307245718,0.835975813174586,0.835314921413086,0.834716646828537,0.834283575781068,0.834283575781068, + +00:43:08, +0.168520413829856,0.168520413829856,0.168576872642258,0.168580106798652,0.168542677909645,0.168481162374226,0.168413739766858,0.168357485965825,0.168325706163155,0.168325706163155, +0.168520413829856,0.168520413829856,0.168576872642258,0.168580106798652,0.168542677909645,0.168481162374226,0.168413739766858,0.168357485965825,0.168325706163155,0.168325706163155, +0.193811915002913,0.193811915002913,0.193862527806115,0.193854791167454,0.193802833613388,0.193725343479332,0.193642881480183,0.193574884444022,0.193536645168768,0.193536645168768, +0.244420112795519,0.244420112795519,0.244457774847526,0.244426726931323,0.244344283137388,0.244233420998249,0.244119520591202,0.244026870668621,0.243974997506501,0.243974997506501, +0.320139681019482,0.320139681019482,0.320155091152451,0.320085806459938,0.319954136891351,0.319789694669377,0.319625168089292,0.319492405760058,0.3194180541933,0.3194180541933, +0.420101550342197,0.420101550342197,0.420082954121472,0.419956855852422,0.419753135195981,0.419510782723615,0.419272085811724,0.419079236943682,0.418970187212173,0.418970187212173, +0.542303624362624,0.542303624362624,0.542237995895698,0.54203138505359,0.541727201655629,0.541377460777023,0.541035098969902,0.540754481631614,0.540591271551846,0.540591271551846, +0.683267935489157,0.683267935489157,0.683146672481592,0.682826142597217,0.682385191902085,0.68189361289518,0.681411471201037,0.681002378080371,0.680747844661404,0.680747844661404, +0.837957328115515,0.837957328115515,0.837800739333161,0.837302872840055,0.836677507221755,0.836009161595006,0.835348416917716,0.834750274683799,0.834317298113337,0.834317298113337, + +00:43:09, +0.168636848471972,0.168636848471972,0.168693311432602,0.168696552919518,0.168659133484831,0.168597628141647,0.168530214956893,0.168473968391402,0.168442192519389,0.168442192519389, +0.168636848471972,0.168636848471972,0.168693311432602,0.168696552919518,0.168659133484831,0.168597628141647,0.168530214956893,0.168473968391402,0.168442192519389,0.168442192519389, +0.193928433469398,0.193928433469398,0.193979048333326,0.193971319930082,0.193919374989383,0.193841899486367,0.193759451552263,0.193691465563357,0.19365323236308,0.19365323236308, +0.244535614373963,0.244535614373963,0.244573275631347,0.244542238711787,0.244459814489373,0.244348976264986,0.244235099466872,0.244142468388511,0.244090605688149,0.244090605688149, +0.320251064182179,0.320251064182179,0.320266472139199,0.320197204636506,0.320065566402499,0.319901162811396,0.319736674647976,0.319603943220786,0.319529608932406,0.319529608932406, +0.420203549372455,0.420203549372455,0.420184953497956,0.420058883701973,0.419855211878688,0.419612918589371,0.419374280394234,0.419181479066196,0.419072456202516,0.419072456202516, +0.542389398473081,0.542389398473081,0.542323778416493,0.542117213677756,0.541813102793255,0.541463447306803,0.541121169862654,0.540840621735951,0.540677451750439,0.540677451750439, +0.68333028851101,0.68333028851101,0.683209046952536,0.682888588202882,0.682447739717079,0.681956276793784,0.681474249644836,0.681065253389451,0.680810779618784,0.680810779618784, +0.837990234506335,0.837990234506335,0.83783367876269,0.837335919620137,0.836710691369391,0.836042494107286,0.835381896434629,0.834783886479977,0.834351004336331,0.834351004336331, + +00:43:10, +0.168753283493069,0.168753283493069,0.168809750589661,0.168812999406342,0.168775589434109,0.168714094296647,0.168646690549367,0.168590451231846,0.168558679297515,0.168558679297515, +0.168753283493069,0.168753283493069,0.168809750589661,0.168812999406342,0.168775589434109,0.168714094296647,0.168646690549367,0.168590451231846,0.168558679297515,0.168558679297515, +0.194044946847002,0.194044946847002,0.194095563763683,0.194087843596096,0.194035911275357,0.193958450413768,0.193876016555973,0.193808041623673,0.193769814503635,0.193769814503635, +0.24465110165645,0.24465110165645,0.244688762118158,0.244657736196219,0.244575331547928,0.244464517241851,0.244350664056328,0.244258051825111,0.244206199588105,0.244206199588105, +0.320362423114082,0.320362423114082,0.320377828900746,0.320308578587268,0.320176971682669,0.320012606714649,0.319848156959477,0.319715456427208,0.319641139413085,0.319641139413085, +0.420305516974398,0.420305516974398,0.420286921454813,0.420160880125364,0.41995725711754,0.419715022987402,0.419476443484178,0.41928368967546,0.419174693667718,0.419174693667718, +0.542475139592133,0.542475139592133,0.542409527951654,0.542203009298408,0.541898970892673,0.541549400754828,0.541207207629326,0.540926728677251,0.540763598764414,0.540763598764414, +0.683392614007901,0.683392614007901,0.683271393895076,0.68295100624592,0.682510259915287,0.682018913011784,0.681537000343983,0.681128100899411,0.680873686743613,0.680873686743613, +0.8380231252287,0.8380231252287,0.837866602508422,0.837368950661747,0.836743859706164,0.836075810729049,0.835415359981536,0.834817482234865,0.834384694467895,0.834384694467895, + +00:43:11, +0.16886971886801,0.16886971886801,0.168926190088312,0.168929446233993,0.168892045732326,0.168830560814041,0.16876316651906,0.16870693446191,0.168675166472269,0.168675166472269, +0.16886971886801,0.16886971886801,0.168926190088312,0.168929446233993,0.168892045732326,0.168830560814041,0.16876316651906,0.16870693446191,0.168675166472269,0.168675166472269, +0.194161455118579,0.194161455118579,0.194212074080047,0.194204362148348,0.194152442454137,0.19407499624433,0.193992576474077,0.193924612607709,0.193886391573156,0.193886391573156, +0.244766574639705,0.244766574639705,0.24480423430468,0.244773219381329,0.244690834309742,0.244580043925509,0.244466214356211,0.244373620975043,0.244321779202979,0.244321779202979, +0.320473757827851,0.320473757827851,0.320489161449739,0.320419928324862,0.320288352744485,0.320124026391746,0.319959615036394,0.319826945391914,0.319752645647925,0.319752645647925, +0.420407453173975,0.420407453173975,0.420388858017975,0.420262845148519,0.420059270938465,0.419817095943644,0.419578575107502,0.419385868797429,0.419276899633738,0.419276899633738, +0.542560847752081,0.542560847752081,0.542495244533469,0.542288771947843,0.541984805986204,0.541635321153452,0.541293212302309,0.541012802487937,0.540849712626213,0.540849712626213, +0.683454912009112,0.683454912009112,0.683333713338489,0.683013396755639,0.682572752526071,0.682081521578607,0.681599723327969,0.681190920639799,0.680936566065474,0.680936566065474, +0.838056000299969,0.838056000299969,0.837899510587733,0.837401965982321,0.836777012249587,0.836109111477895,0.835448807576126,0.834851061966227,0.834418368525851,0.834418368525851, + +00:43:12, +0.168986154571696,0.168986154571696,0.16904262990347,0.169045893377379,0.169008502354365,0.168947027668681,0.168879642840789,0.168823418056381,0.168791654018424,0.168791654018424, +0.168986154571696,0.168986154571696,0.16904262990347,0.169045893377379,0.169008502354365,0.168947027668681,0.168879642840789,0.168823418056381,0.168791654018424,0.168791654018424, +0.194277958267006,0.194277958267006,0.194328579265303,0.194320875569713,0.194268968508576,0.194191536960875,0.194109131289368,0.19404117849823,0.194002963554396,0.194002963554396, +0.244882033320464,0.244882033320464,0.244919692187648,0.244888688263836,0.244806322771515,0.244695556312635,0.244581750363171,0.244489175834939,0.244437344529393,0.244437344529393, +0.320585068336134,0.320585068336134,0.320600469798814,0.32053125386191,0.320399709600557,0.320235421855284,0.320071048891314,0.319938410127482,0.3198641276495,0.3198641276495, +0.420509357997107,0.420509357997107,0.420490763213342,0.420364778797333,0.42016125336736,0.419919137484,0.419680675290121,0.419488016458027,0.419379074126504,0.419379074126504, +0.542646522985185,0.542646522985185,0.542580928194181,0.542374501658312,0.542070608106125,0.541721208534987,0.541379183913953,0.541098843200389,0.540935793368235,0.540935793368235, +0.683517182543883,0.683517182543883,0.683396005312013,0.683075759761308,0.682635217578752,0.682144102523638,0.681662418626245,0.681253712640123,0.680999417613909,0.680999417613909, +0.838088859737477,0.838088859737477,0.837932403017971,0.837434965599264,0.836810149017145,0.836142396371399,0.835482239236058,0.834884625691804,0.834452026527996,0.834452026527996, + +00:43:13, +0.169102590579065,0.169102590579065,0.169159070010086,0.169162340811444,0.169124959275146,0.169063494835452,0.168996119489407,0.168939901990088,0.168908141910791,0.168908141910791, +0.169102590579065,0.169102590579065,0.169159070010086,0.169162340811444,0.169124959275146,0.169063494835452,0.168996119489407,0.168939901990088,0.168908141910791,0.168908141910791, +0.194394456275188,0.194394456275188,0.194445079302363,0.194437383843093,0.194385489421553,0.194308072546254,0.194225680984663,0.194157739278029,0.194119530430133,0.194119530430133, +0.244997477695469,0.244997477695469,0.245035135763802,0.245004142840471,0.244921796929956,0.244811054399912,0.244697272073869,0.244604716401439,0.244552895563976,0.244552895563976, +0.320696354651567,0.320696354651567,0.320711753960595,0.320642555211023,0.320511042263483,0.320346793117851,0.320182458536812,0.32004985064648,0.319975585430372,0.319975585430372, +0.420611231469678,0.420611231469678,0.420592637066782,0.420466681097668,0.42026320443009,0.420021147634342,0.419782744057915,0.419590132683144,0.419481217171914,0.419481217171914, +0.54273216532366,0.54273216532366,0.542666578965991,0.542460198462024,0.54215637728467,0.541807062931702,0.541465122496563,0.541184850846943,0.541021841022835,0.541021841022835, +0.683579425641414,0.683579425641414,0.683458269844846,0.683138095292155,0.682697655102612,0.682206655876223,0.68172508626822,0.681316476929847,0.681062241418418,0.681062241418418, +0.838121703558535,0.838121703558535,0.837965279816462,0.837467949529963,0.836843270026301,0.836175665427109,0.83551565497897,0.834918173429311,0.834485668492101,0.834485668492101, + +00:43:14, +0.16921902686509,0.16921902686509,0.169275510383147,0.169278788511166,0.169241416469628,0.169179962289281,0.169112596439805,0.16905638623789,0.169024630124216,0.169024630124216, +0.16921902686509,0.16921902686509,0.169275510383147,0.169278788511166,0.169241416469628,0.169179962289281,0.169112596439805,0.16905638623789,0.169024630124216,0.169024630124216, +0.194510949126057,0.194510949126057,0.194561574174167,0.194553886951419,0.194502005175977,0.194424602983342,0.194342225542807,0.194274294929927,0.194236092183174,0.194236092183174, +0.245112907761475,0.245112907761475,0.245150565029895,0.245119583107973,0.245037256781784,0.244926538184036,0.244812779484974,0.244720242671193,0.244668432303368,0.244668432303368, +0.320807616786774,0.320807616786774,0.320823013947693,0.3207538323848,0.320622350745849,0.320458140192018,0.320293843985452,0.320161266961462,0.320087019003092,0.320087019003092, +0.420713073617545,0.420713073617545,0.420694479604131,0.420568552075355,0.420365124152486,0.420123126420512,0.419884781436735,0.419692217498638,0.419583328795831,0.419583328795831, +0.542817774799681,0.542817774799681,0.542752196881057,0.542545862391146,0.542242113554032,0.541892884375824,0.541551028082401,0.541270825459893,0.541107855622326,0.541107855622326, +0.683641641330866,0.683641641330866,0.683520506966142,0.683200403377367,0.682760065126891,0.682269181665665,0.681787726283265,0.681379213538397,0.681125037508462,0.681125037508462, +0.838154531780428,0.838154531780428,0.837998141000505,0.837500917791774,0.836876375294494,0.83620891866255,0.835549054822473,0.834951705196438,0.834519294435912,0.834519294435912, + +00:43:15, +0.169335463404783,0.169335463404783,0.169391950997676,0.169395236451564,0.169357873912801,0.169296430005127,0.16922907366691,0.169172870774689,0.169141118633584,0.169141118633584, +0.169335463404783,0.169335463404783,0.169391950997676,0.169395236451564,0.169357873912801,0.169296430005127,0.16922907366691,0.169172870774689,0.169141118633584,0.169141118633584, +0.194627436802573,0.194627436802573,0.194678063863682,0.194670384877649,0.194618515754781,0.194541128255043,0.194458764946674,0.19439084543677,0.194352648796351,0.194352648796351, +0.245228323515244,0.245228323515244,0.245265979982687,0.245235009063089,0.245152702323727,0.24504200766171,0.244928272593165,0.244835754640861,0.244783954744218,0.244783954744218, +0.320918854754366,0.320918854754366,0.320934249772707,0.320865085395828,0.32073363506023,0.320569463090348,0.320405205249782,0.320272659084971,0.320198428380198,0.320198428380198, +0.420814884466528,0.420814884466528,0.420796290851195,0.420670391756191,0.420467012560351,0.420225073868317,0.419986787452399,0.419794270930338,0.419685409024088,0.419685409024088, +0.542903351445377,0.542903351445377,0.542837781971492,0.542631493477801,0.542327816946358,0.541978672899535,0.541636900703687,0.541356767071492,0.541193837198978,0.541193837198978, +0.683703829641356,0.683703829641356,0.683582716705019,0.683262684046092,0.682822447680788,0.682331679921228,0.681850338700705,0.681441922495156,0.681187805913458,0.681187805913458, +0.838187344420417,0.838187344420417,0.838030986587377,0.837533870402033,0.836909464839134,0.836242156095221,0.835582438784153,0.834985221010851,0.834552904377148,0.834552904377148, + +00:43:16, +0.16945190017319,0.16945190017319,0.169508391828736,0.16951168460769,0.169474331579698,0.169412897957989,0.169345551145686,0.16928935557542,0.169257607413814,0.169257607413814, +0.16945190017319,0.16945190017319,0.169508391828736,0.16951168460769,0.169474331579698,0.169412897957989,0.169345551145686,0.16928935557542,0.169257607413814,0.169257607413814, +0.194743919287721,0.194743919287721,0.194794548353902,0.194786877604765,0.194735021140926,0.194657648344289,0.194575299179162,0.194507390781434,0.194469200252524,0.194469200252524, +0.245343724953549,0.245343724953549,0.245381380618947,0.245350420702577,0.245268133552521,0.245157462829646,0.245043751395132,0.244951252307114,0.244899462883186,0.244899462883186, +0.321030068566942,0.321030068566942,0.321045461448224,0.320976314256681,0.320844895219187,0.320680761825391,0.320516542342342,0.320384027029536,0.320309813574215,0.320309813574215, +0.42091666404242,0.42091666404242,0.420898070833746,0.420772200165944,0.420568869679453,0.420326990003534,0.420088762130694,0.419896293004039,0.419787457882487,0.419787457882487, +0.542988895292836,0.542988895292836,0.542923334269369,0.542717091754068,0.542413487493754,0.542064428534976,0.541722740392597,0.541442675713945,0.541279785785018,0.541279785785018, +0.683765990601964,0.683765990601964,0.68364489909055,0.683324937327433,0.682884802793461,0.682394150672133,0.68191292354983,0.681504603829468,0.681250546662785,0.681250546662785, +0.838220141495738,0.838220141495738,0.838063816594329,0.837566807378048,0.83694253867761,0.836275377742596,0.835615806881572,0.835018720890188,0.834586498333505,0.834586498333505, + +00:43:17, +0.169568337145395,0.169568337145395,0.169624832851422,0.169628132954633,0.169590789445384,0.1695293661229,0.169462028851133,0.169405840615055,0.169374096439864,0.169374096439864, +0.169568337145395,0.169568337145395,0.169624832851422,0.169628132954633,0.169590789445384,0.1695293661229,0.169462028851133,0.169405840615055,0.169374096439864,0.169374096439864, +0.194860396564514,0.194860396564514,0.194911027627846,0.194903365115778,0.194851521317399,0.194774163234036,0.194691828223199,0.194623930946818,0.194585746534581,0.194585746534581, +0.245459112073171,0.245459112073171,0.245496766935455,0.245465818023203,0.245383550464914,0.245272903684566,0.245159215887571,0.245066735666628,0.245014956716939,0.245014956716939, +0.321141258237089,0.321141258237089,0.321156648986818,0.321087518979921,0.32095613123527,0.320792036409683,0.320627855275658,0.320495370807677,0.320421174597659,0.320421174597659, +0.42101841237098,0.42101841237098,0.420999819577525,0.420873977330349,0.42067069553553,0.420428874851909,0.420190705497374,0.419998283745504,0.419889475396797,0.419889475396797, +0.543074406374103,0.543074406374103,0.543008853806717,0.542802657251987,0.542499125228284,0.542150151314245,0.541808547181267,0.54152855141942,0.541365701412629,0.541365701412629, +0.683828124241726,0.683828124241726,0.683707054151771,0.683387163250458,0.68294713049403,0.682456593947562,0.681975480859884,0.681567257570634,0.68131325978578,0.68131325978578, +0.838252923023603,0.838252923023603,0.838096631038586,0.837599728737104,0.836975596827284,0.836308583622124,0.835649159132265,0.835052204852064,0.834620076322652,0.834620076322652, + +00:43:18, +0.169684774296519,0.169684774296519,0.169741274040868,0.169744581467521,0.169707247484962,0.169645834474931,0.169578506758287,0.169522325868604,0.169490585686727,0.169490585686727, +0.169684774296519,0.169684774296519,0.169741274040868,0.169744581467521,0.169707247484962,0.169645834474931,0.169578506758287,0.169522325868604,0.169490585686727,0.169490585686727, +0.194976868615991,0.194976868615991,0.195027501668561,0.195019847393726,0.194968016267216,0.194890672907269,0.194808352061737,0.194740465915851,0.194702287625435,0.194702287625435, +0.2455744848709,0.2455744848709,0.245612138929,0.245581201021744,0.24549895305766,0.245388330223202,0.24527466606719,0.245182204716094,0.245130436242154,0.245130436242154, +0.321252423777381,0.321252423777381,0.321267812401052,0.321198699578099,0.321067343121016,0.32090328685575,0.320739144062245,0.3206066904319,0.320532511463031,0.320532511463031, +0.421120129477934,0.421120129477934,0.421101537108242,0.420975723275108,0.420772490154287,0.420530728439155,0.420292617578163,0.420100243180466,0.419991461592756,0.419991461592756, +0.543159884721179,0.543159884721179,0.543094340615523,0.54288819000355,0.542584730181968,0.542235841269396,0.541894321101786,0.541614394220037,0.541451584113952,0.541451584113952, +0.683890230589641,0.683890230589641,0.683769181917675,0.683449361844191,0.683009430811571,0.682519009776657,0.682038010660075,0.681629883747917,0.681375945311738,0.681375945311738, +0.838285689021198,0.838285689021198,0.838129429937351,0.837632634496462,0.837008639305495,0.836341773751231,0.835682495553744,0.835085672914068,0.834653638362235,0.834653638362235, + +00:43:19, +0.169801211601717,0.169801211601717,0.169857715372244,0.169861030121515,0.169823705673571,0.169762302989189,0.169694984842222,0.169638811311112,0.169607075129434,0.169607075129434, +0.169801211601717,0.169801211601717,0.169857715372244,0.169861030121515,0.169823705673571,0.169762302989189,0.169694984842222,0.169638811311112,0.169607075129434,0.169607075129434, +0.195093335425219,0.195093335425219,0.195143970459122,0.195136324421672,0.195084505973418,0.195007177346999,0.194924870677757,0.194856995671489,0.194818823508028,0.194818823508028, +0.245689843343536,0.245689843343536,0.245727496596378,0.245696569694986,0.245614341327526,0.245503742442294,0.245390101930707,0.245297659452208,0.24524590145552,0.24524590145552, +0.321363565200381,0.321363565200381,0.321378951703476,0.321309856063752,0.321178530888951,0.321014513176105,0.320850408714605,0.320717985914698,0.320643824182821,0.320643824182821, +0.421221815388978,0.421221815388978,0.421203223451574,0.421077438025893,0.420874253561399,0.420632550790953,0.420394498398752,0.420202171334625,0.420093416496069,0.420093416496069, +0.543245330366023,0.543245330366023,0.54317979472773,0.542973690040712,0.542670302386783,0.54232149843244,0.541980062186203,0.541700204147877,0.541537433921086,0.541537433921086, +0.683952309674665,0.683952309674665,0.683831282417217,0.683511533137616,0.683071703775122,0.682581398188518,0.682100512979566,0.681692482390537,0.681438603269916,0.681438603269916, +0.838318439505686,0.838318439505686,0.838162213307801,0.837665524673355,0.837041666129556,0.836374948147314,0.835715816163495,0.835119125093765,0.834687184469872,0.834687184469872, + +00:43:20, +0.169917649036183,0.169917649036183,0.169974156820755,0.169977478891814,0.169940163986388,0.169878771640818,0.169811463078049,0.169755296917662,0.169723564743051,0.169723564743051, +0.169917649036183,0.169917649036183,0.169974156820755,0.169977478891814,0.169940163986388,0.169878771640818,0.169811463078049,0.169755296917662,0.169723564743051,0.169723564743051, +0.19520979697529,0.19520979697529,0.195260433982629,0.195252796182709,0.195200990419073,0.195123676536265,0.195041384054265,0.194973520196713,0.194935354165328,0.194935354165328, +0.245805187487888,0.245805187487888,0.245842839934397,0.245811924039722,0.245729715271285,0.245619140338593,0.245505523474847,0.245413099871677,0.245361352353732,0.245361352353732, +0.321474682518638,0.321474682518638,0.321490066906628,0.321420988449405,0.321289694551587,0.321125715383248,0.320961649245227,0.320829257268554,0.320755112769508,0.320755112769508, +0.421323470129777,0.421323470129777,0.421304878633166,0.421179121608344,0.420975985782508,0.420734341932954,0.420496347984801,0.420304068233651,0.420195340132412,0.420195340132412, +0.543330743340553,0.543330743340553,0.543265216175239,0.543059157395382,0.542755841874663,0.542407122835348,0.542065770466525,0.541785981234977,0.541623250866087,0.541623250866087, +0.684014361525714,0.684014361525714,0.683893355679309,0.683573677159677,0.683133949413679,0.682643759212205,0.682162987847483,0.681755053527674,0.681501233689527,0.681501233689527, +0.838351174494205,0.838351174494205,0.838194981167087,0.837698399284996,0.837074677316755,0.83640810682775,0.835749120978979,0.835152561408694,0.834720714663159,0.834720714663159, + +00:43:21, +0.170034086575145,0.170034086575145,0.170090598361645,0.170093927753653,0.170056622398625,0.169995240404998,0.169927941440912,0.169871782663372,0.169840054502682,0.169840054502682, +0.170034086575145,0.170034086575145,0.170090598361645,0.170093927753653,0.170056622398625,0.169995240404998,0.169927941440912,0.169871782663372,0.169840054502682,0.169840054502682, +0.195326253249325,0.195326253249325,0.195376892222208,0.195369262659952,0.195317469587276,0.19524017045813,0.195157892174296,0.195090039474532,0.195051879580329,0.195051879580329, +0.245920517300774,0.245920517300774,0.245958168939874,0.245927264052756,0.245845074885722,0.245734523908859,0.245620930696345,0.245528525971219,0.245476788933498,0.245476788933498, +0.321585775744691,0.321585775744691,0.321601158023033,0.321532096747573,0.321400834121426,0.321236893489669,0.321072865666591,0.320940504505939,0.320866377235557,0.320866377235557, +0.421425093725961,0.421425093725961,0.421406502678634,0.42128077404807,0.421077686843225,0.420836101890776,0.420598166361938,0.42040593390318,0.420297232527427,0.420297232527427, +0.543416123676641,0.543416123676641,0.54335060498991,0.543144592099426,0.542841348677503,0.542492714510046,0.542151445974713,0.541871725513331,0.541709034980966,0.541709034980966, +0.684076386171665,0.684076386171665,0.683955401732824,0.683635793939279,0.683196167756199,0.682706092876738,0.682225435292909,0.681817597188467,0.681563836599747,0.681563836599747, +0.838383894003868,0.838383894003868,0.83822773353234,0.83773125834857,0.837107672884357,0.836441249809889,0.835782410017633,0.83518598187637,0.834754228959664,0.834754228959664, + +00:43:22, +0.17015052419387,0.17015052419387,0.170207039970192,0.170210376682304,0.170173080885529,0.170111709256945,0.170044419905995,0.169988268523398,0.169956544383466,0.169956544383466, +0.17015052419387,0.17015052419387,0.170207039970192,0.170210376682304,0.170173080885529,0.170111709256945,0.170044419905995,0.169988268523398,0.169956544383466,0.169956544383466, +0.195442704230468,0.195442704230468,0.195493345161014,0.195485723836547,0.195433943461148,0.195356659095686,0.195274395020911,0.195206553487981,0.195168399736053,0.195168399736053, +0.246035832779022,0.246035832779022,0.246073483609632,0.246042589730901,0.245960420167629,0.245849893149859,0.245736323591948,0.245643937747559,0.245592211191531,0.245592211191531, +0.321696844891065,0.321696844891065,0.321712225065206,0.321643180970756,0.321511949610957,0.321348047507845,0.321184057991161,0.32105172763931,0.320977617593423,0.320977617593423, +0.421526686203133,0.421526686203133,0.42150809561356,0.421382395370647,0.421179356769128,0.420937830690007,0.42069995355576,0.42050776836882,0.420399093706727,0.420399093706727, +0.54350147140612,0.54350147140612,0.543435961203557,0.543229994184669,0.542926822827151,0.542578273488419,0.542237088742689,0.54195743701489,0.541794786297695,0.541794786297695, +0.684138383641355,0.684138383641355,0.684017420606596,0.683697883505284,0.683258358831598,0.682768399211096,0.682287855344888,0.681880113402016,0.681626412029707,0.681626412029707, +0.838416598051766,0.838416598051766,0.838260470420661,0.83776410188124,0.8371406528496,0.836474377111055,0.835815683296867,0.83521938651428,0.834787727376933,0.834787727376933, + +00:43:23, +0.170266961867658,0.170266961867658,0.170323481621711,0.170326825653075,0.170289539422386,0.170228178171911,0.170160898448518,0.170104754472931,0.17007303436058,0.17007303436058, +0.170266961867658,0.170266961867658,0.170323481621711,0.170326825653075,0.170289539422386,0.170228178171911,0.170160898448518,0.170104754472931,0.17007303436058,0.17007303436058, +0.195559149901894,0.195559149901894,0.195609792782226,0.195602179695664,0.195550412023838,0.195473142432052,0.195390892577196,0.195323062220124,0.195284914615549,0.195284914615549, +0.246151133919468,0.246151133919468,0.246188783940506,0.24615790107098,0.246075751113809,0.245965248058372,0.245851702158408,0.245759335197432,0.245707619124557,0.245707619124557, +0.321807889970274,0.321807889970274,0.321823268045647,0.321754241131444,0.321623041032655,0.321459177450239,0.321295226231393,0.321162926681114,0.321088833855548,0.321088833855548, +0.421628247586861,0.421628247586861,0.421609657463495,0.42148398560162,0.421280995585767,0.421039528356202,0.420801709591833,0.420609571656143,0.420500923695891,0.420500923695891, +0.543586786560779,0.543586786560779,0.543521284847955,0.543315363682894,0.543012264355415,0.542663799802308,0.542322698802331,0.542043115771564,0.541880504848201,0.541880504848201, +0.684200353963578,0.684200353963578,0.684079412329417,0.683759945886517,0.683320522668751,0.682830678244217,0.682350248032423,0.681942602197379,0.681688960008503,0.681688960008503, +0.838449286654962,0.838449286654962,0.838293191849132,0.837796929900141,0.8371736172297,0.836507488748549,0.83584894083407,0.835252775339891,0.834821209932484,0.834821209932484, + +00:43:24, +0.170383399571847,0.170383399571847,0.170439923291552,0.170443274641309,0.170405997984516,0.170344647125185,0.170277377043734,0.170221240487199,0.170189524409236,0.170189524409236, +0.170383399571847,0.170383399571847,0.170439923291552,0.170443274641309,0.170405997984516,0.170344647125185,0.170277377043734,0.170221240487199,0.170189524409236,0.170189524409236, +0.195675590246801,0.195675590246801,0.195726235069053,0.1957186302205,0.19566687525852,0.195589620450373,0.195507384826266,0.195439565654049,0.195401424201892,0.195401424201892, +0.246266420718958,0.246266420718958,0.246304069929341,0.246273198069824,0.246191067721072,0.246080588631186,0.24596706639249,0.245874718317582,0.245823012729311,0.245823012729311, +0.321918910994819,0.321918910994819,0.321934286976846,0.321865277242113,0.321734108398987,0.321570283329305,0.321406370399729,0.321274101643786,0.321200026034362,0.321200026034362, +0.421729777902682,0.421729777902682,0.421711188253958,0.421585544766504,0.421382603318657,0.421141194914884,0.420903434495691,0.420711343790695,0.420602722520468,0.420602722520468, +0.543672069172364,0.543672069172364,0.543606575954836,0.54340070062584,0.54309767329406,0.542749293483513,0.542408276185475,0.54212876181522,0.54196619066437,0.54196619066437, +0.684262297167092,0.684262297167092,0.68414137693004,0.683821981111761,0.683382659296494,0.682892930005002,0.682412613384478,0.682005063603575,0.681751480565186,0.681751480565186, +0.838481959830497,0.838481959830497,0.838325897834807,0.837829742422388,0.837206566041847,0.836540584739648,0.835882182646602,0.835286148370642,0.834854676643812,0.834854676643812, + +00:43:25, +0.170499837281812,0.170499837281812,0.170556364955103,0.170559723622386,0.170522456547276,0.170461116092092,0.170393855666936,0.170337726541466,0.170306014504683,0.170306014504683, +0.170499837281812,0.170499837281812,0.170556364955103,0.170559723622386,0.170522456547276,0.170461116092092,0.170393855666936,0.170337726541466,0.170306014504683,0.170306014504683, +0.195792025248415,0.195792025248415,0.195842672004726,0.19583507539428,0.195783333148396,0.195706093133819,0.195623871751262,0.195556063772873,0.195517928478183,0.195517928478183, +0.246381693174346,0.246381693174346,0.246419341572988,0.246388480724273,0.24630636998624,0.246195914865096,0.246082416290966,0.245990087104765,0.245938392002535,0.245938392002535, +0.32202990797719,0.32202990797719,0.322045281871279,0.32197628931523,0.321845151722405,0.321681365157484,0.321517490508598,0.321385252539746,0.321311194142282,0.321311194142282, +0.421831277176102,0.421831277176102,0.421812688010439,0.421687072890779,0.421484179993284,0.421242830391548,0.421005128292836,0.420813084797985,0.420704490205975,0.420704490205975, +0.543757319272579,0.543757319272579,0.543691834555888,0.543486005045206,0.543183049674809,0.542834754563792,0.542493820923914,0.542214375177682,0.542051843778045,0.542051843778045, +0.684324213280611,0.684324213280611,0.684203314437178,0.683883989209759,0.683444768743624,0.682955154522307,0.682474951429974,0.682067497649582,0.681813973728769,0.681813973728769, +0.838514617595387,0.838514617595387,0.838358588394716,0.837862539465068,0.837239499303206,0.836573665101603,0.835915408751801,0.835319505623946,0.834888127528386,0.834888127528386, + +00:43:26, +0.170616274972962,0.170616274972962,0.170672806587788,0.170676172571721,0.170638915086059,0.170577585047994,0.170510334293452,0.170454212611033,0.170422504622206,0.170422504622206, +0.170616274972962,0.170616274972962,0.170672806587788,0.170676172571721,0.170638915086059,0.170577585047994,0.170510334293452,0.170454212611033,0.170422504622206,0.170422504622206, +0.195908454889989,0.195908454889989,0.195959103572506,0.195951515200253,0.195899785676693,0.19582256046559,0.195740353335351,0.195672556559737,0.195634427427552,0.195634427427552, +0.246496951282497,0.246496951282497,0.24653459886831,0.246503749031177,0.246421657906142,0.246311226756909,0.246197751850619,0.246105441555743,0.246053756940982,0.246053756940982, +0.322140880929862,0.322140880929862,0.322156252741412,0.322087277363245,0.321956171015349,0.321792422947203,0.321628586570418,0.321496379381406,0.321422338191717,0.321422338191717, +0.421932745432597,0.421932745432597,0.421914156758394,0.421788569999898,0.421585725635101,0.421344434811654,0.42110679100874,0.420914794703495,0.420806226777899,0.420806226777899, +0.543842536893087,0.543842536893087,0.543777060682758,0.543571276972646,0.543268393529343,0.542920183074858,0.542579333049398,0.542299955890733,0.542137464221027,0.542137464221027, +0.684386102332812,0.684386102332812,0.684265224879503,0.683945970209214,0.683506851038895,0.683017351824952,0.682537262197795,0.682129904364337,0.681876439528224,0.681876439528224, +0.838547259966624,0.838547259966624,0.838391263545867,0.837895321045247,0.83727241703092,0.83660672985164,0.83594861916698,0.835352847117196,0.834921562603652,0.834921562603652, + +00:43:27, +0.170732712620744,0.170732712620744,0.170789248165065,0.170792621464768,0.170755373576295,0.170694053968287,0.170626812898645,0.170570698671236,0.170538994737126,0.170538994737126, +0.170732712620744,0.170732712620744,0.170789248165065,0.170792621464768,0.170755373576295,0.170694053968287,0.170626812898645,0.170570698671236,0.170538994737126,0.170538994737126, +0.196024879154802,0.196024879154802,0.19607552975568,0.196067949621697,0.196016232826667,0.195939022428908,0.195856829561727,0.195789043997811,0.195750921033154,0.195750921033154, +0.246612195040283,0.246612195040283,0.246649841812177,0.246619002987395,0.246536931477617,0.246426524303439,0.246313073068239,0.246220781667289,0.246169107541416,0.246169107541416, +0.322251829865301,0.322251829865301,0.322267199599698,0.322198241398601,0.322067166290247,0.32190345671088,0.321739658597596,0.321607482181164,0.321533458195058,0.321533458195058, +0.422034182697609,0.422034182697609,0.422015594523247,0.42189003611928,0.42168724026953,0.421446008200632,0.421208422668842,0.421016473532673,0.420907932261694,0.420907932261694, +0.543927722065508,0.543927722065508,0.543862254367051,0.543656516439774,0.543353704889299,0.543005579048385,0.542664812593638,0.542385503986111,0.542223052025073,0.542223052025073, +0.68444796435233,0.68444796435233,0.684327108285649,0.68400792413879,0.683568906211022,0.683079521941716,0.682599545716783,0.682192283776738,0.681938877992482,0.681938877992482, +0.838579886961177,0.838579886961177,0.838423923305241,0.837928087179963,0.837305319242105,0.836639779006963,0.835981813909428,0.835386172867755,0.834954981887029,0.834954981887029, + +00:43:28, +0.170849150200639,0.170849150200639,0.170905689662429,0.170909070277014,0.170871831993449,0.170810522828405,0.170743291457915,0.170687184697447,0.170655484824801,0.170655484824801, +0.170849150200639,0.170849150200639,0.170905689662429,0.170909070277014,0.170871831993449,0.170810522828405,0.170743291457915,0.170687184697447,0.170655484824801,0.170655484824801, +0.196141298026158,0.196141298026158,0.196191950537559,0.196184378641915,0.196132674581597,0.196055479007027,0.195973300413611,0.19590552607029,0.195867409278171,0.195867409278171, +0.246727424444587,0.246727424444587,0.246765070401469,0.246734242589793,0.246652190697512,0.246541807501511,0.246428379940628,0.246336107436184,0.246284443800606,0.246284443800606, +0.32236275479596,0.32236275479596,0.322378122458577,0.322309181433726,0.322178137559516,0.322014466460919,0.321850706602525,0.321718560951406,0.32164455416469,0.32164455416469, +0.422135588996549,0.422135588996549,0.422117001330395,0.421991471274313,0.421788723921962,0.421547550583882,0.421310023298551,0.421118121310938,0.421009606682784,0.421009606682784, +0.544012874821419,0.544012874821419,0.54394741564033,0.543741723478161,0.543438983786276,0.543090942516003,0.542750259588299,0.542471019495516,0.542308607221901,0.542308607221901, +0.684509799367763,0.684509799367763,0.684388964684208,0.68406985102711,0.683630934288683,0.683141664901336,0.68266180201574,0.682254635915642,0.682001289150436,0.682001289150436, +0.838612498595988,0.838612498595988,0.838456567689797,0.837960837886232,0.837338205953854,0.836672812584748,0.836014992996406,0.835419482892964,0.834988385395912,0.834988385395912, + +00:43:29, +0.170965587688165,0.170965587688165,0.171022131055412,0.171025518983983,0.170988290313022,0.170926991603818,0.170859769946698,0.170803670665076,0.170771974860623,0.170771974860623, +0.170965587688165,0.170965587688165,0.171022131055412,0.171025518983983,0.170988290313022,0.170926991603818,0.170859769946698,0.170803670665076,0.170771974860623,0.170771974860623, +0.196257711487389,0.196257711487389,0.196308365901483,0.196300802244236,0.196249110924792,0.196171930183223,0.19608976587425,0.196022002760398,0.195983892145811,0.195983892145811, +0.246842639492299,0.246842639492299,0.246880284633076,0.24684946783525,0.246767435562686,0.246657076347957,0.246543672464595,0.246451418859219,0.246399765715335,0.246399765715335, +0.322473655734279,0.322473655734279,0.322489021330477,0.322420097481036,0.322289084835561,0.322125452209712,0.321961730597588,0.321829615704507,0.321755626112982,0.321755626112982, +0.422236964354799,0.422236964354799,0.422218377205198,0.422092875490354,0.421890176617757,0.42164906198677,0.421411592923245,0.421219738063676,0.42111125006656,0.42111125006656, +0.544097995192356,0.544097995192356,0.544032544534115,0.543826898119335,0.543524230251825,0.5431762735093,0.542835674065007,0.542556502450602,0.542394129843184,0.542394129843184, +0.684571607407665,0.684571607407665,0.684450794103734,0.684131750902758,0.683692935300511,0.683203780732511,0.682724031123428,0.682316960809866,0.682063673030937,0.682063673030937, +0.838645094887977,0.838645094887977,0.838489196716469,0.837993573181046,0.837371077183235,0.83670583060215,0.836048156445154,0.83545277721014,0.835021773147673,0.835021773147673, + +00:43:30, +0.171082025058876,0.171082025058876,0.17113857231958,0.171141967561235,0.17110474851055,0.17104346027003,0.170976248340467,0.170920156549568,0.170888464820024,0.170888464820024, +0.171082025058876,0.171082025058876,0.17113857231958,0.171141967561235,0.17110474851055,0.17104346027003,0.170976248340467,0.170920156549568,0.170888464820024,0.170888464820024, +0.196374119521854,0.196374119521854,0.196424775830818,0.196417220412017,0.196365541839584,0.196288375940799,0.196206225926917,0.196138474051383,0.196100369619309,0.196100369619309, +0.24695784018032,0.24695784018032,0.246995484503895,0.246964678720651,0.246882666070004,0.246772330839621,0.246658950636958,0.246566715933195,0.246515073282391,0.246515073282391, +0.322584532692686,0.322584532692686,0.322599896227814,0.322530989552935,0.322400008130773,0.32223641396964,0.322072730595155,0.321940646452829,0.321866674052293,0.321866674052293, +0.422338308797708,0.422338308797708,0.422319722172989,0.422194248792729,0.421991598382243,0.421750542434633,0.421513131568269,0.421321323816243,0.421212862438385,0.421212862438385, +0.544183083209813,0.544183083209813,0.544117641079884,0.543912040394785,0.543609444317461,0.543261572059824,0.542921056055343,0.542641952882983,0.542479619920554,0.542479619920554, +0.684633388500555,0.684633388500555,0.684512596572741,0.684193623794279,0.683754909275105,0.6832658694639,0.68278623306857,0.682379258488188,0.682126029662796,0.682126029662796, +0.838677675854039,0.838677675854039,0.838521810402167,0.838026293081371,0.837403932947291,0.836738833076297,0.836081304272886,0.835486055836573,0.835055145159655,0.835055145159655, + +00:43:31, +0.171198462288363,0.171198462288363,0.171255013430538,0.171258415984365,0.171221206561608,0.171159928802582,0.17109272661473,0.171036642326403,0.171004954678468,0.171004954678468, +0.171198462288363,0.171198462288363,0.171255013430538,0.171258415984365,0.171221206561608,0.171159928802582,0.17109272661473,0.171036642326403,0.171004954678468,0.171004954678468, +0.196490522112937,0.196490522112937,0.196541180308955,0.196533633128639,0.196481967309334,0.196404816263088,0.196322680554912,0.19625493992652,0.196216841681928,0.196216841681928, +0.247073026505559,0.247073026505559,0.247110670010833,0.247079875242892,0.246997882216342,0.246887570973354,0.246774214454547,0.246681998654922,0.246630366498575,0.246630366498575, +0.322695385683598,0.322695385683598,0.322710747162995,0.322641857661816,0.322510907457533,0.322347351753071,0.322183706607583,0.322051653208723,0.321977697994969,0.321977697994969, +0.422439622350593,0.422439622350593,0.422421036259068,0.422295591206731,0.422092989240718,0.421851991952776,0.42161463925894,0.421422878593962,0.421314443823587,0.421314443823587, +0.544268138905242,0.544268138905242,0.544202705309075,0.543997150335955,0.543694626014653,0.543346838199078,0.543006405590849,0.54272737082423,0.542565077485602,0.542565077485602, +0.684695142674908,0.684695142674908,0.684574372119701,0.684255469730176,0.683816856241019,0.683327931124121,0.682848407879848,0.682441528979346,0.682188359074785,0.682188359074785, +0.838710241511047,0.838710241511047,0.838554408763777,0.838058997604151,0.837436773263044,0.836771820024294,0.836114436496793,0.83551931878953,0.835088501449181,0.835088501449181, + +00:43:32, +0.17131489935225,0.17131489935225,0.171371454363922,0.171374864229006,0.171337664441803,0.171276397177053,0.171209204745031,0.171153127971099,0.171121444411458,0.171121444411458, +0.17131489935225,0.17131489935225,0.171371454363922,0.171374864229006,0.171337664441803,0.171276397177053,0.171209204745031,0.171153127971099,0.171121444411458,0.171121444411458, +0.196606919244047,0.196606919244047,0.196657579319312,0.196650040377512,0.196598387317429,0.196521251133445,0.196439129741562,0.196371400369111,0.196333308316954,0.196333308316954, +0.247188198464934,0.247188198464934,0.247225841150806,0.247195057398875,0.247113083998583,0.247002796746016,0.246889463914198,0.246797267021218,0.246745645360695,0.246745645360695, +0.322806214719418,0.322806214719418,0.322821574148409,0.322752701820059,0.322621782828209,0.322458265572362,0.32229465864722,0.322162635984527,0.322088697953345,0.322088697953345, +0.422540905038742,0.422540905038742,0.422522319488704,0.422396902757626,0.422194349218448,0.421953410566473,0.42171611602054,0.421524402422128,0.421415994247466,0.421415994247466, +0.544353162310051,0.544353162310051,0.544287737253082,0.544082227974249,0.543779775374829,0.543432071958526,0.543091722703023,0.542812756305874,0.542650502569874,0.542650502569874, +0.684756869959163,0.684756869959163,0.68463612077305,0.684317288738914,0.68387877622677,0.683389965741755,0.682910555585905,0.682503772312036,0.682250661295636,0.682250661295636, +0.838742791875846,0.838742791875846,0.838586991818159,0.838091686766305,0.837469598147488,0.836804791463221,0.83614755313404,0.835552566086253,0.835121842033547,0.835121842033547, + +00:43:33, +0.171431336226199,0.171431336226199,0.171487895095408,0.171491312270823,0.171454122126781,0.171392865369055,0.171325682706949,0.171269613459208,0.171237933994531,0.171237933994531, +0.171431336226199,0.171431336226199,0.171487895095408,0.171491312270823,0.171454122126781,0.171392865369055,0.171325682706949,0.171269613459208,0.171237933994531,0.171237933994531, +0.196723310898623,0.196723310898623,0.196773972845334,0.19676644214207,0.19671480184728,0.196637680535253,0.19655557347022,0.196487855362484,0.196449769507704,0.196449769507704, +0.247303356055372,0.247303356055372,0.24734099792074,0.247310225185515,0.247228271413623,0.247118008154478,0.247004699012759,0.246912521028911,0.246860909865567,0.246860909865567, +0.32291701981254,0.32291701981254,0.322932377196438,0.322863522040033,0.322732634255157,0.322569155439858,0.322405586726399,0.322273594792569,0.322199673939744,0.322199673939744, +0.422642156887409,0.422642156887409,0.422623571887135,0.422498183470644,0.422295678340668,0.422054798300967,0.421817561878323,0.421625895326001,0.421517513735289,0.421517513735289, +0.54443815345561,0.54443815345561,0.544372736943258,0.544167273341027,0.543864892429377,0.543517273369587,0.543177007423321,0.542898109359401,0.542735895204878,0.542735895204878, +0.684818570381718,0.684818570381718,0.684697842561183,0.684379080848919,0.683940669260836,0.683451973345339,0.682972676215344,0.682565988514917,0.68231293635404,0.68231293635404, +0.838775326965261,0.838775326965261,0.838619559582153,0.838124360584728,0.837502407617595,0.836837747410136,0.836180654201767,0.835585797743961,0.835155166930025,0.835155166930025, + +00:43:34, +0.171547772885907,0.171547772885907,0.171604335600707,0.171607760085522,0.171570579592222,0.171509333354236,0.1714421604761,0.171386098766319,0.17135442340326,0.17135442340326, +0.171547772885907,0.171547772885907,0.171604335600707,0.171607760085522,0.171570579592222,0.171509333354236,0.1714421604761,0.171386098766319,0.17135442340326,0.17135442340326, +0.196839697060127,0.196839697060127,0.19689036087049,0.196882838405775,0.196831210882327,0.196754104451922,0.196672011724264,0.196604304889995,0.196566225237516,0.196566225237516, +0.247418499273809,0.247418499273809,0.247456140317568,0.247425378599733,0.247343444458362,0.247233205195618,0.247119919747084,0.247027760674838,0.24697616001002,0.24697616001002, +0.323027800975342,0.323027800975342,0.32304315631945,0.322974318334093,0.322843461750721,0.32268002136789,0.322516490857442,0.322384529645162,0.322310625966477,0.322310625966477, +0.422743377921819,0.422743377921819,0.422724793479567,0.422599433370987,0.422396976632581,0.42215615518147,0.421918976857511,0.421727357330814,0.421619002312294,0.421619002312294, +0.544523112373244,0.544523112373244,0.544457704410913,0.544252286467611,0.54394997720964,0.543602442463641,0.543262259783159,0.542983430016257,0.542821255422077,0.542821255422077, +0.68488024397093,0.68488024397093,0.684759537512455,0.684440846088576,0.684002535371654,0.683513953963374,0.683034769796729,0.682628177616607,0.682375184278649,0.682375184278649, +0.83880784679609,0.83880784679609,0.838652112072572,0.83815701907629,0.837535201690311,0.836870687882068,0.836213739717091,0.835619013779846,0.835188476155862,0.835188476155862, + +00:43:35, +0.171664209307107,0.171664209307107,0.171720775855562,0.171724207648839,0.171687036813842,0.171625801108282,0.171558638028137,0.171502583868057,0.171470912613256,0.171470912613256, +0.171664209307107,0.171664209307107,0.171720775855562,0.171724207648839,0.171687036813842,0.171625801108282,0.171558638028137,0.171502583868057,0.171470912613256,0.171470912613256, +0.196956077712048,0.196956077712048,0.197006743378278,0.196999229152113,0.196947614406035,0.196870522866888,0.196788444487101,0.196720748935023,0.19668267548976,0.19668267548976, +0.247533628117191,0.247533628117191,0.247571268338234,0.24754051763846,0.247458603129712,0.247348387866323,0.247235126114038,0.247142985955845,0.24709139579089,0.24709139579089, +0.323138558220193,0.323138558220193,0.3231539115298,0.323085090714583,0.322954265327234,0.32279086336878,0.322627371052661,0.32249544055461,0.322421554045843,0.322421554045843, +0.422844568167165,0.422844568167165,0.422825984291177,0.422700652483825,0.422498244119361,0.422257481233163,0.422020360983294,0.421828788461766,0.421720460003686,0.421720460003686, +0.544608039094238,0.544608039094238,0.544542639687319,0.544337267385277,0.544035029746923,0.543687579272025,0.54334747981391,0.543068718307846,0.542906583252895,0.542906583252895, +0.684941890755119,0.684941890755119,0.684821205655182,0.684502584486232,0.684064374587621,0.683575907624321,0.683096836358582,0.682690339645683,0.682437405098076,0.682437405098076, +0.83884035138511,0.83884035138511,0.838684649306205,0.838189662257838,0.837567980382561,0.836903612896026,0.836246809697106,0.835652214211077,0.835221769728282,0.835221769728282, + +00:43:36, +0.171780645465568,0.171780645465568,0.171837215835757,0.171840654936551,0.171803493767392,0.171742268606912,0.171675115338746,0.171619068740081,0.171587401600163,0.171587401600163, +0.171780645465568,0.171780645465568,0.171837215835757,0.171840654936551,0.171803493767392,0.171742268606912,0.171675115338746,0.171619068740081,0.171587401600163,0.171587401600163, +0.197072452837902,0.197072452837902,0.19712312035222,0.197115614364598,0.197064012401895,0.196986935763612,0.196904871742162,0.196837187480977,0.196799120247829,0.196799120247829, +0.24764874258247,0.24764874258247,0.247686381979689,0.247655642298636,0.247573747424594,0.247463556163492,0.247350318110495,0.247258196868789,0.24720661720502,0.24720661720502, +0.323249291559448,0.323249291559448,0.323264642839833,0.323195839193837,0.323065044997015,0.322901681454836,0.322738227324354,0.322606327533204,0.322532458190129,0.322532458190129, +0.42294572764861,0.42294572764861,0.422927144347109,0.422801840834296,0.422599480826149,0.422358776481196,0.422121714280833,0.421930188744026,0.421821886834639,0.421821886834639, +0.544692933649835,0.544692933649835,0.544627542803702,0.544422216125262,0.544120050072486,0.543772683826035,0.543432667546905,0.543153974265532,0.54299187872871,0.54299187872871, +0.685003510762565,0.685003510762565,0.684882847017641,0.684564296070193,0.684126186937097,0.683637834356599,0.683158875929388,0.682752474630684,0.682499598840893,0.682499598840893, +0.838872840749072,0.838872840749072,0.83871717129982,0.838222290146195,0.837600743711243,0.836936522468994,0.836279864158878,0.835685399054798,0.835255047664481,0.835255047664481, + +00:43:37, +0.171897081337092,0.171897081337092,0.171953655517109,0.171957101924465,0.171919950428661,0.171858735825883,0.17179159238365,0.171735553358089,0.171703890339663,0.171703890339663, +0.171897081337092,0.171897081337092,0.171953655517109,0.171957101924465,0.171919950428661,0.171858735825883,0.17179159238365,0.171735553358089,0.171703890339663,0.171703890339663, +0.197188822421229,0.197188822421229,0.197239491775865,0.19723199402677,0.197180404853425,0.197103343125583,0.197021293472905,0.19695362051129,0.196915559495141,0.196915559495141, +0.247763842666611,0.247763842666611,0.247801481238894,0.247770752577211,0.247688877339938,0.24757871008403,0.247465495733338,0.247373393410532,0.247321824249267,0.247321824249267, +0.323360001005451,0.323360001005451,0.32337535026188,0.323306563784173,0.323175800772374,0.323012475638354,0.322849059684807,0.322717190593223,0.32264333841161,0.32264333841161, +0.423046856391285,0.423046856391285,0.423028273672478,0.42290299844751,0.422700686778057,0.422460040950687,0.422223036775256,0.422031558202732,0.421923282830299,0.421923282830299, +0.544777796071235,0.544777796071235,0.544712413791249,0.544507132718761,0.54420503821755,0.543857756156924,0.543517823013435,0.543239197920633,0.543077141880864,0.543077141880864, +0.685065104021508,0.685065104021508,0.684944461628069,0.684625980868727,0.6841879724484,0.683699734188591,0.683220888537591,0.682814582600109,0.682561765535633,0.682561765535633, +0.838905314904704,0.838905314904704,0.838749678070158,0.838254902758161,0.837633491693233,0.83696941661793,0.836312903119451,0.835718568328131,0.835288309981635,0.835288309981635, + +00:43:38, +0.17201351689752,0.17201351689752,0.172070094875469,0.172073548588429,0.172036406773471,0.171975202740987,0.171908069138609,0.171852037697813,0.171820378807471,0.171820378807471, +0.17201351689752,0.17201351689752,0.172070094875469,0.172073548588429,0.172036406773471,0.171975202740987,0.171908069138609,0.171852037697813,0.171820378807471,0.171820378807471, +0.197305186445598,0.197305186445598,0.197355857632787,0.197348368122193,0.197296791744168,0.197219744936315,0.197137709662815,0.197070048009421,0.197031993215145,0.197031993215145, +0.247878928366585,0.247878928366585,0.247916566112819,0.247885848471141,0.247803992872681,0.247693849624852,0.247580658979459,0.247488575577949,0.247437016920493,0.247437016920493, +0.323470686570534,0.323470686570534,0.323486033808261,0.323417264497899,0.323286532665605,0.323123245931621,0.322959868146294,0.322828029746934,0.32275419472255,0.32275419472255, +0.423147954420289,0.423147954420289,0.423129372292365,0.423004125348543,0.422801862000164,0.422561274666725,0.422324328491662,0.422132896862993,0.422024648015777,0.422024648015777, +0.544862626389599,0.544862626389599,0.544797252681105,0.544592017196928,0.544289994213292,0.543942796295905,0.543602946244746,0.54332438930443,0.543162372740652,0.543162372740652, +0.685126670560149,0.685126670560149,0.685006049514664,0.684687638910062,0.684249731149811,0.683761607148637,0.683282874211596,0.682876663582419,0.682623905210789,0.682623905210789, +0.838937773868709,0.838937773868709,0.838782169633937,0.83828750011051,0.837666224345381,0.837002295359771,0.836345926595846,0.835751722048169,0.835321556696893,0.835321556696893, + +00:43:39, +0.172129952122727,0.172129952122727,0.172186533886725,0.172189994904323,0.172152862777681,0.172091669328049,0.172024545579416,0.171968521735019,0.171936866979342,0.171936866979342, +0.172129952122727,0.172129952122727,0.172186533886725,0.172189994904323,0.172152862777681,0.172091669328049,0.172024545579416,0.171968521735019,0.171936866979342,0.171936866979342, +0.197421544894603,0.197421544894603,0.197472217906589,0.197464736634461,0.197413173057693,0.197336141179348,0.197254120295401,0.197186469958858,0.197148421391312,0.197148421391312, +0.247993999679372,0.247993999679372,0.248031636598442,0.248000929977394,0.247919094019771,0.247808974782882,0.247695807845758,0.247603743367922,0.24755219521557,0.24755219521557, +0.323581348267017,0.323581348267017,0.323596693491284,0.323527941347313,0.323397240688994,0.323233992346907,0.323070652721079,0.322938845006594,0.3228650271352,0.3228650271352, +0.423249021760692,0.423249021760692,0.423230440231822,0.423105221562442,0.422903006517521,0.422662477654367,0.422425589455117,0.422234204749884,0.422125982416155,0.422125982416155, +0.544947424636045,0.544947424636045,0.544882059504372,0.544676869590874,0.544374918090851,0.544027804274149,0.543688037272047,0.54340954844816,0.543247571339332,0.543247571339332, +0.68518821040665,0.68518821040665,0.685067610705585,0.684749270222389,0.68431146306957,0.683823453265042,0.68334483297977,0.682938717606032,0.682686017894816,0.682686017894816, +0.838970217657769,0.838970217657769,0.838814646007853,0.838320082219993,0.837698941684514,0.837035158711427,0.836378934605058,0.835784860231985,0.835354787827381,0.835354787827381, + +00:43:40, +0.172246386988624,0.172246386988624,0.172302972526803,0.172306440848063,0.172269318417185,0.172208135562934,0.172141021681902,0.17208500544551,0.172053354831063,0.172053354831063, +0.172246386988624,0.172246386988624,0.172302972526803,0.172306440848063,0.172269318417185,0.172208135562934,0.172141021681902,0.17208500544551,0.172053354831063,0.172053354831063, +0.197537897751861,0.197537897751861,0.197588572580896,0.19758109954719,0.197529548777597,0.197452531838248,0.1973705253542,0.197302886343111,0.197264844007141,0.197264844007141, +0.248109056601962,0.248109056601962,0.24814669269275,0.248115997092945,0.248034180778164,0.247924085555053,0.247810942329147,0.247718896777344,0.247667359131381,0.247667359131381, +0.323691986107207,0.323691986107207,0.323707329323245,0.323638594344698,0.323507924854812,0.323344714896475,0.323181413421413,0.323049636384444,0.3229758356618,0.3229758356618, +0.423350058437533,0.423350058437533,0.423331477515872,0.423206287114221,0.423004120355144,0.422763649938639,0.422526819690658,0.422335481888451,0.422227286056487,0.422227286056487, +0.54503219084165,0.54503219084165,0.544966834292113,0.54476168993167,0.54445980988132,0.544112780122785,0.543773096126503,0.543494675383018,0.543332737708116,0.543332737708116, +0.685249723589135,0.685249723589135,0.685129145228953,0.684810874833856,0.684373168235878,0.683885272566067,0.683406764870438,0.68300074469933,0.682748103616128,0.682748103616128, +0.83900264628854,0.83900264628854,0.838847107208576,0.838352649103338,0.837731643727437,0.837068006689785,0.836411927164057,0.835817982896626,0.835388003390198,0.835388003390198, + +00:43:41, +0.172362821471156,0.172362821471156,0.17241941077166,0.172422886395602,0.172385773667912,0.172324601421539,0.172257497421932,0.172201488805127,0.172169842338457,0.172169842338457, +0.172362821471156,0.172362821471156,0.17241941077166,0.172422886395602,0.172385773667912,0.172324601421539,0.172257497421932,0.172201488805127,0.172169842338457,0.172169842338457, +0.19765424500102,0.19765424500102,0.197704921639361,0.197697456844023,0.197645918887501,0.197568916896609,0.197486924822775,0.197419297145719,0.197381261046156,0.197381261046156, +0.248224099131353,0.248224099131353,0.248261734392741,0.248231049814778,0.248149253144826,0.248039181938307,0.247926062426543,0.247834035803115,0.247782508664817,0.247782508664817, +0.323802600103399,0.323802600103399,0.323817941316428,0.323749223502326,0.323618585175321,0.323455413592573,0.323292150259535,0.323160403892718,0.323086620314579,0.323086620314579, +0.423451064475818,0.423451064475818,0.423432484169503,0.423307322028866,0.423105203538022,0.422864791544537,0.422628019223291,0.422436728303709,0.422328558961791,0.422328558961791, +0.545116925037448,0.545116925037448,0.545051577075349,0.544846478250345,0.544544669615756,0.544197723872902,0.543858122839237,0.54357977014016,0.543417871878179,0.543417871878179, +0.685311210135686,0.685311210135686,0.685190653112848,0.684872452772574,0.684434846676898,0.683947065079938,0.683468669911888,0.683062744890653,0.682810162403099,0.682810162403099, +0.839035059777655,0.839035059777655,0.838879553252754,0.838385200777249,0.837764330490927,0.837100839311708,0.836444904289792,0.835851090059116,0.835421203402423,0.835421203402423, + +00:43:42, +0.172479255546305,0.172479255546305,0.17253584859729,0.172539331522927,0.172502228505827,0.172441066879798,0.172373972775407,0.172317971789742,0.172286329477384,0.172286329477384, +0.172479255546305,0.172479255546305,0.17253584859729,0.172539331522927,0.172502228505827,0.172441066879798,0.172373972775407,0.172317971789742,0.172286329477384,0.172286329477384, +0.197770586625749,0.197770586625749,0.197821265065664,0.197813808508632,0.197762283371052,0.197685296338048,0.197603318684715,0.197535702350248,0.197497672491909,0.197497672491909, +0.248339127264554,0.248339127264554,0.248376761695419,0.248346088139888,0.248264311116731,0.248154263929594,0.248041168134875,0.247949160442144,0.247897643812776,0.247897643812776, +0.323913190267878,0.323913190267878,0.323928529483104,0.323859828832457,0.323729221662768,0.323566088447438,0.323402863247672,0.323271147543635,0.323197381105752,0.323197381105752, +0.423552039900525,0.423552039900525,0.423533460217675,0.42340832633133,0.423206256091111,0.422965902497026,0.42272918807799,0.422537944020642,0.422429801157058,0.422429801157058, +0.545201627254434,0.545201627254434,0.545136287885059,0.544931234577887,0.54462949732517,0.544282635555545,0.543943117441331,0.543664832750699,0.543502973880652,0.543502973880652, +0.68537267007435,0.68537267007435,0.685252134385312,0.684934004066616,0.684496498420753,0.68400883083484,0.683530548132367,0.683124718208305,0.682872194284066,0.682872194284066, +0.839067458141723,0.839067458141723,0.83891198415701,0.838417737258405,0.837797001991742,0.837133656594036,0.836477865999186,0.835884181736452,0.835454387881106,0.835454387881106, + +00:43:43, +0.172595689190087,0.172595689190087,0.172652285979724,0.17265577620606,0.172618682906931,0.17255753191368,0.172490447718264,0.172434454375266,0.17240281622374,0.17240281622374, +0.172595689190087,0.172595689190087,0.172652285979724,0.17265577620606,0.172618682906931,0.17255753191368,0.172490447718264,0.172434454375266,0.17240281622374,0.17240281622374, +0.197886922609748,0.197886922609748,0.197937602843508,0.19793015452471,0.197878642211924,0.197801670146211,0.197719706923634,0.197652101940286,0.197614078327977,0.197614078327977, +0.248454140998578,0.248454140998578,0.248491774597799,0.248461112065275,0.24837935469086,0.248269331525875,0.24815625945108,0.24806427069135,0.248012764572167,0.248012764572167, +0.324023756612914,0.324023756612914,0.324039093835534,0.323970410347339,0.32383983432939,0.323676739473296,0.323513552398039,0.323381867349403,0.323308118047523,0.323308118047523, +0.4236529847366,0.4236529847366,0.423634405685316,0.423509300046536,0.423307278039337,0.423066982821039,0.422830326279701,0.422639129064204,0.422531012667247,0.422531012667247, +0.545286297523562,0.545286297523562,0.545220966752181,0.545015958945242,0.544714293040533,0.544367515201722,0.544028079963829,0.543749863245706,0.543588043746624,0.543588043746624, +0.685434103433131,0.685434103433131,0.685313589074349,0.684995528744015,0.684558123495528,0.684070569858917,0.683592399560085,0.683186664680547,0.682934199287325,0.682934199287325, +0.83909984139733,0.83909984139733,0.838944399937944,0.838450258563464,0.837829658246613,0.837166458553585,0.836510812309136,0.83591725794561,0.835487556843278,0.835487556843278, + +00:43:44, +0.172712122378555,0.172712122378555,0.172768722895026,0.172772220421059,0.17273513684726,0.17267399649919,0.172606922226475,0.172550936537644,0.172519302553453,0.172519302553453, +0.172712122378555,0.172712122378555,0.172768722895026,0.172772220421059,0.17273513684726,0.17267399649919,0.172606922226475,0.172550936537644,0.172519302553453,0.172519302553453, +0.198003252936738,0.198003252936738,0.198053934956625,0.198046494875979,0.197994995393817,0.197918038304766,0.197836089523172,0.197768495899452,0.197730478537962,0.197730478537962, +0.248569140330452,0.248569140330452,0.248606773096902,0.248576121587952,0.248494383864208,0.248384384724118,0.248271336372103,0.248179366547662,0.248127870939909,0.248127870939909, +0.324134299150768,0.324134299150768,0.324149634385964,0.324080968059209,0.323950423187411,0.32378736668236,0.32362421772284,0.323492563322219,0.323418831152086,0.323418831152086, +0.423753899008956,0.423753899008956,0.423735320597326,0.423610243199377,0.423408269407597,0.423168032541481,0.422931433853336,0.422740283459318,0.422632193517287,0.422632193517287, +0.545370935875742,0.545370935875742,0.545305613707612,0.545100651383317,0.544799056792777,0.544452362842395,0.544113010437728,0.543834861656213,0.543673081507146,0.543673081507146, +0.685495510239998,0.685495510239998,0.685375017207921,0.685057026832765,0.684619721929267,0.684132282180278,0.68365422422321,0.683248584335604,0.682996177441133,0.682996177441133, +0.839132209561038,0.839132209561038,0.838976800612133,0.838482764709057,0.837862299272247,0.837199245207145,0.83654374323652,0.835950318703541,0.835520710305941,0.835520710305941, + +00:43:45, +0.172828555087796,0.172828555087796,0.172885159319297,0.172888664144018,0.172851590302883,0.172790460612367,0.172723396276046,0.172667418252856,0.172635788442491,0.172635788442491, +0.172828555087796,0.172828555087796,0.172885159319297,0.172888664144018,0.172851590302883,0.172790460612367,0.172723396276046,0.172667418252856,0.172635788442491,0.172635788442491, +0.198119577590469,0.198119577590469,0.19817026138877,0.198162829546186,0.198111342900456,0.198034400797412,0.197952466466997,0.197884884211386,0.197846873105494,0.197846873105494, +0.248684125257209,0.248684125257209,0.24872175718976,0.248691116704937,0.248609398633773,0.248499423521301,0.2483863988949,0.248294448008016,0.248242962912928,0.248242962912928, +0.324244817893686,0.324244817893686,0.324260151146631,0.32419150198029,0.324060988249044,0.323897970086831,0.323734859234266,0.323603235474267,0.32352952043162,0.32352952043162, +0.42385478274248,0.42385478274248,0.423836204978569,0.423711155814714,0.423509230220754,0.423269051683224,0.423032510823779,0.422841407230875,0.422733343732075,0.422733343732075, +0.545455542341845,0.545455542341845,0.545390228782207,0.545185311922975,0.544883788612792,0.544537178508488,0.544197908893989,0.543919828013208,0.543758087193224,0.543758087193224, +0.685556890522878,0.685556890522878,0.685436418813956,0.685118498360822,0.684681293749978,0.68419396782699,0.683716022149873,0.68331047720166,0.683058128773709,0.683058128773709, +0.839164562649385,0.839164562649385,0.83900918619613,0.838515255711793,0.837894925085329,0.837232016571485,0.836576658798189,0.835983364027172,0.835553848286076,0.835553848286076, + +00:43:46, +0.172944987293932,0.172944987293932,0.173001595228672,0.173005107351065,0.172968043249908,0.172906924229287,0.172839869843021,0.17278389949692,0.172752273866854,0.172752273866854, +0.172944987293932,0.172944987293932,0.173001595228672,0.173005107351065,0.172968043249908,0.172906924229287,0.172839869843021,0.17278389949692,0.172752273866854,0.172752273866854, +0.198235896554716,0.198235896554716,0.198286582123726,0.198279158519105,0.198227684715592,0.19815075760787,0.198068837738802,0.198001266859759,0.197963262014228,0.197963262014228, +0.248799095775891,0.248799095775891,0.248836726873414,0.24880609741326,0.248724398996565,0.248614447914411,0.248501447016433,0.248409515069357,0.248358040488161,0.248358040488161, +0.324355312853905,0.324355312853905,0.32437064412976,0.324302012122796,0.324171529526491,0.3240085496989,0.323845476944498,0.32371388381772,0.323640185898295,0.323640185898295, +0.423955635962024,0.423955635962024,0.423937058853884,0.423812037917379,0.423610160503643,0.42337004027111,0.423133557215881,0.422942500403738,0.42283446333648,0.42283446333648, +0.5455401169527,0.5455401169527,0.545474812006783,0.54526994059504,0.544968488531424,0.544621962230884,0.544282775363528,0.544004762347641,0.543843060835826,0.543843060835826, +0.68561824430966,0.68561824430966,0.685497793920339,0.685179943356101,0.684742838985627,0.684255626827082,0.683777793368167,0.683372343306861,0.683120053313232,0.683120053313232, +0.839196900678887,0.839196900678887,0.839041556706464,0.838547731588259,0.83792753570252,0.837264772663347,0.836609559010968,0.836016393933404,0.835586970800638,0.835586970800638, + +00:43:47, +0.173061418973121,0.173061418973121,0.173118030599321,0.173121550018363,0.173084495664476,0.173023387326059,0.172956342903477,0.172900380245885,0.172868758802578,0.172868758802578, +0.173061418973121,0.173061418973121,0.173118030599321,0.173121550018363,0.173084495664476,0.173023387326059,0.172956342903477,0.172900380245885,0.172868758802578,0.172868758802578, +0.198352209813278,0.198352209813278,0.1984028971453,0.198395481778533,0.198344020823002,0.198267108719888,0.198185203322303,0.198117643828264,0.198079645247844,0.198079645247844, +0.248914051883549,0.248914051883549,0.248951682144913,0.248921063709958,0.248839384949603,0.248729457900441,0.248616480733677,0.248524567728641,0.24847310366255,0.24847310366255, +0.324465784043648,0.324465784043648,0.324481113347561,0.324412498498927,0.324282047031939,0.324119105530743,0.323956070865703,0.323824508364738,0.323750827564269,0.323750827564269, +0.424056458692412,0.424056458692412,0.424037882248077,0.423912889532172,0.423711060281067,0.423470998329951,0.423234573054465,0.423043563002738,0.422935552355338,0.422935552355338, +0.545624659739097,0.545624659739097,0.545559363412111,0.545354537430294,0.545053156579482,0.544706714040423,0.544367609877224,0.544089664690418,0.543928002465877,0.543928002465877, +0.685679571628197,0.685679571628197,0.685559142554919,0.685241361846481,0.684804357664143,0.684317259208545,0.683839537906144,0.683434182679313,0.683181951087842,0.683181951087842, +0.839229223666036,0.839229223666036,0.83907391215964,0.838580192355016,0.837960131140458,0.837297513499454,0.836642443891663,0.836049408439117,0.835620077866561,0.835620077866561, + +00:43:48, +0.173177850101556,0.173177850101556,0.17323446540745,0.173237992122112,0.173200947522762,0.17313984987883,0.173072815433528,0.173016860475839,0.172985243225736,0.172985243225736, +0.173177850101556,0.173177850101556,0.17323446540745,0.173237992122112,0.173200947522762,0.17313984987883,0.173072815433528,0.173016860475839,0.172985243225736,0.172985243225736, +0.198468517349983,0.198468517349983,0.198519206437326,0.198511799308295,0.198460351206488,0.19838345411724,0.198301563201247,0.198234015100621,0.198196022790051,0.198196022790051, +0.249028993577243,0.249028993577243,0.249066623001314,0.249036015592076,0.248954356489914,0.248844453476398,0.248731500043612,0.248639605982831,0.248588152433052,0.248588152433052, +0.324576231475126,0.324576231475126,0.324591558812234,0.32452296112087,0.324392540777566,0.324229637594527,0.324066641010037,0.323935109127472,0.323861445441686,0.323861445441686, +0.424157250958436,0.424157250958436,0.424138675185921,0.424013710683862,0.423811929577799,0.423571925884528,0.423335558364322,0.423144595052676,0.423036610813456,0.423036610813456, +0.545709170731782,0.545709170731782,0.545643883028927,0.545439102459479,0.545137792787731,0.544791433967906,0.544452412465911,0.544174535072406,0.544012912114261,0.544012912114261, +0.6857408725063,0.6857408725063,0.685620464745504,0.6853027538598,0.684865849813417,0.68437886499933,0.683901255791817,0.683495995347084,0.68324382212564,0.68324382212564, +0.8392615316273,0.8392615316273,0.839106252572142,0.838612638028603,0.837992711415754,0.8373302390965,0.836675313457053,0.836082407561165,0.83565316950075,0.83565316950075, + +00:43:49, +0.173294280655464,0.173294280655464,0.1733508996293,0.173354433638544,0.173317398800979,0.173256311863779,0.173189287409322,0.173133340162904,0.173101727112434,0.173101727112434, +0.173294280655464,0.173294280655464,0.1733508996293,0.173354433638544,0.173317398800979,0.173256311863779,0.173189287409322,0.173133340162904,0.173101727112434,0.173101727112434, +0.198584819148682,0.198584819148682,0.198635509983663,0.198628111092242,0.198576675849879,0.198499793783726,0.198417917359402,0.198350380660577,0.19831239462458,0.19831239462458, +0.249143920854042,0.249143920854042,0.249181549439684,0.24915095305667,0.249069313614533,0.248959434639293,0.248846504943229,0.248754629828899,0.248703186796627,0.248703186796627, +0.32468665516054,0.32468665516054,0.324701980535969,0.324633400000804,0.324503010775537,0.324340145902405,0.324177187389646,0.324045686118058,0.323972039542681,0.323972039542681, +0.424258012784857,0.424258012784857,0.424239437692163,0.42411450139719,0.423912768418582,0.423672822959592,0.423436513170212,0.423245596578321,0.423137638735608,0.423137638735608, +0.545793649961462,0.545793649961462,0.54572837088792,0.545523635713296,0.545222397186898,0.544876122044092,0.544537183160385,0.544259373524429,0.544097789811822,0.544097789811822, +0.685802146971742,0.685802146971742,0.685681760519866,0.68536411942386,0.684927315461301,0.68444044422735,0.683962947053163,0.683557781338203,0.683305666454687,0.683305666454687, +0.839293824579124,0.839293824579124,0.839138577960429,0.838645068625534,0.838025276544999,0.837362949471159,0.836708167723893,0.83611539131638,0.835686245720092,0.835686245720092, + +00:43:50, +0.173410710611108,0.173410710611108,0.173467333241147,0.173470874543929,0.173433849475374,0.173372773257123,0.173305758807042,0.173249819283236,0.173218210438815,0.173218210438815, +0.173410710611108,0.173410710611108,0.173467333241147,0.173470874543929,0.173433849475374,0.173372773257123,0.173305758807042,0.173249819283236,0.173218210438815,0.173218210438815, +0.198701115193252,0.198701115193252,0.198751807768196,0.198744417114248,0.198692994737029,0.198616127703171,0.198534265780566,0.198466740491905,0.198428760735191,0.198428760735191, +0.249258833711022,0.249258833711022,0.249296461457098,0.249265876100803,0.249184256320505,0.249074401386148,0.248961495429527,0.248869639263827,0.248818206750247,0.248818206750247, +0.324797055112078,0.324797055112078,0.324812378530941,0.324743815150891,0.324613457038005,0.324450630466521,0.324287710016662,0.324156239348621,0.324082609879374,0.324082609879374, +0.424358744196408,0.424358744196408,0.424340169791517,0.424215261696863,0.424013576828127,0.423773689579863,0.423537437496867,0.423346567604414,0.423238636146542,0.423238636146542, +0.545878097458803,0.545878097458803,0.545812827019743,0.545608137222403,0.545306969807667,0.544960778299698,0.544621921991399,0.544344180077274,0.544182635589363,0.544182635589363, +0.685863395052259,0.685863395052259,0.685743029905737,0.685425458566423,0.684988754635606,0.684501996920479,0.684024611718116,0.68361954068066,0.683367484103009,0.683367484103009, +0.83932610253793,0.83932610253793,0.839170888340936,0.838677484162301,0.838057826544761,0.837395644640079,0.836741006708917,0.836148359721569,0.835719306541444,0.835719306541444, + +00:43:51, +0.173527139944787,0.173527139944787,0.1735837662193,0.17358731481457,0.173550299522227,0.173489234035113,0.173422229602907,0.173366297813028,0.173334693181056,0.173334693181056, +0.173527139944787,0.173527139944787,0.1735837662193,0.17358731481457,0.173550299522227,0.173489234035113,0.173422229602907,0.173366297813028,0.173334693181056,0.173334693181056, +0.198817405467597,0.198817405467597,0.198868099774835,0.198860717358216,0.198809307851818,0.198732455859426,0.198650608448559,0.1985830945784,0.198545121105667,0.198545121105667, +0.24937373214527,0.24937373214527,0.24941135905064,0.249380784721548,0.249299184604884,0.249189353713994,0.249076471499514,0.248984634284605,0.248933212290893,0.248933212290893, +0.324907431341914,0.324907431341914,0.324922752809314,0.324854206583286,0.324723879577112,0.324561091299004,0.324398208903205,0.324266768831277,0.324193156463878,0.324193156463878, +0.424459445217789,0.424459445217789,0.424440871508665,0.424315991607562,0.424114354831117,0.423874525770031,0.423638331368987,0.423447508155663,0.423339603070972,0.423339603070972, +0.545962513254431,0.545962513254431,0.545897251455007,0.545692607017422,0.545391510680682,0.545045402765404,0.544706628989667,0.544428954761683,0.544267449477645,0.544267449477645, +0.685924616775548,0.685924616775548,0.68580427293081,0.685486771315212,0.685050167364108,0.684563523106552,0.684086249814576,0.683681273402406,0.683429275098589,0.683429275098589, +0.839358365520115,0.839358365520115,0.839203183730076,0.838709884655372,0.83809036143158,0.837428324619887,0.836773830428831,0.836181312793515,0.835752351981645,0.835752351981645, + +00:43:52, +0.173643568632833,0.173643568632833,0.173700198540106,0.173703754426806,0.173666748917857,0.173605694174034,0.17353869977317,0.173482775728507,0.17345117531537,0.17345117531537, +0.173643568632833,0.173643568632833,0.173700198540106,0.173703754426806,0.173666748917857,0.173605694174034,0.17353869977317,0.173482775728507,0.17345117531537,0.17345117531537, +0.198933689955645,0.198933689955645,0.198984385987516,0.198977011808072,0.198925615178151,0.198848778236368,0.198766945347228,0.198699442903888,0.198661475719819,0.198661475719819, +0.24948861615388,0.24948861615388,0.249526242217402,0.249495678915985,0.249414098464732,0.24930429161987,0.249191433150206,0.249099614888232,0.249048203415555,0.249048203415555, +0.325017783862213,0.325017783862213,0.325033103383241,0.324964574310129,0.324834278404987,0.324671528411973,0.324508684061386,0.324377274578126,0.324303679308289,0.324303679308289, +0.424560115873671,0.424560115873671,0.424541542868263,0.424416691153933,0.424215102452203,0.423975331554755,0.42373919481124,0.423548418256749,0.423440539533583,0.423440539533583, +0.546046897378928,0.546046897378928,0.54598164422428,0.545777045128928,0.545476019836546,0.545129995471846,0.54479130418586,0.544513697608358,0.54435223150739,0.54435223150739, +0.685985812169267,0.685985812169267,0.685865489622742,0.685548057697913,0.685111553674543,0.684625022813367,0.684147861370401,0.683742979531354,0.683491039469373,0.683491039469373, +0.839390613542056,0.839390613542056,0.839235464144238,0.838742270121193,0.838122881221978,0.837460989427185,0.836806638900323,0.836214250548977,0.835785382057506,0.835785382057506, + +00:43:53, +0.173759996651614,0.173759996651614,0.173816630179946,0.173820193357012,0.173783197638613,0.173722153650207,0.173655169294121,0.173599253005936,0.173567656818005,0.173567656818005, +0.173759996651614,0.173759996651614,0.173816630179946,0.173820193357012,0.173783197638613,0.173722153650207,0.173655169294121,0.173599253005936,0.173567656818005,0.173567656818005, +0.199049968641351,0.199049968641351,0.199100666390201,0.199093300447768,0.19904191669996,0.198965094817898,0.198883276460448,0.198815785452217,0.198777824561484,0.198777824561484, +0.249603485733955,0.249603485733955,0.249641110954486,0.249610558681203,0.249528997897118,0.249419215100825,0.249306380378631,0.249214581071715,0.249163180121229,0.249163180121229, +0.325128112685127,0.325128112685127,0.325143430264862,0.32507491834355,0.324944653533748,0.324781941817536,0.3246191355033,0.32448775660126,0.324414178424696,0.324414178424696, +0.424660756188694,0.424660756188694,0.424642183894933,0.424517360360595,0.424315819716006,0.424076106958665,0.423840027848267,0.423649297932319,0.423541445559029,0.423541445559029, +0.54613124986284,0.54613124986284,0.546066005358092,0.545861451587462,0.545560497305822,0.545214556449619,0.544875947610612,0.544598408647963,0.544436981709277,0.544436981709277, +0.686046981261036,0.686046981261036,0.685926680009149,0.685609317742172,0.685172913594607,0.684686496068681,0.684209446413411,0.683804659095378,0.683552777243268,0.683552777243268, +0.839422846620103,0.839422846620103,0.839267729599788,0.838774640576184,0.838155385932449,0.83749363907855,0.836839432140051,0.836247173004691,0.835818396785815,0.835818396785815, + +00:43:54, +0.173876423977532,0.173876423977532,0.173933061115234,0.173936631581594,0.173899645660884,0.173838612439988,0.173771638142083,0.173715729621612,0.173684137665242,0.173684137665242, +0.173876423977532,0.173876423977532,0.173933061115234,0.173936631581594,0.173899645660884,0.173838612439988,0.173771638142083,0.173715729621612,0.173684137665242,0.173684137665242, +0.199166241508695,0.199166241508695,0.199216940966877,0.199209583261283,0.199158212401199,0.199081405587946,0.198999601772117,0.198932122207263,0.198894167614522,0.198894167614522, +0.249718340882607,0.249718340882607,0.249755965259001,0.249725424014302,0.249643882899124,0.249534124153914,0.249421313181822,0.249329532832073,0.249278142404924,0.249278142404924, +0.325238417822796,0.325238417822796,0.325253733466305,0.325185238695664,0.325055004975501,0.324892331527786,0.324729563241035,0.324598214912757,0.324524653825172,0.324524653825172, +0.424761366187467,0.424761366187467,0.424742794613267,0.424617999252135,0.424416506647115,0.42417685200636,0.423940830504676,0.423750147206993,0.423642321171936,0.423642321171936, +0.546215570736668,0.546215570736668,0.546150334886932,0.545945826423519,0.545644943119031,0.54529908572928,0.544960559294512,0.544683087911119,0.544521700113947,0.544521700113947, +0.686108124078436,0.686108124078436,0.685987844117611,0.685670551475597,0.68523424715196,0.684747942900216,0.684271004971389,0.683866312122313,0.683614488448144,0.683614488448144, +0.839455064770586,0.839455064770586,0.83929998011307,0.838806996036744,0.838187875579467,0.837526273590538,0.836872210164655,0.836280080177369,0.835851396183337,0.835851396183337, + +00:43:55, +0.173992850587024,0.173992850587024,0.174049491322421,0.174053069076997,0.174016092961089,0.173955070519768,0.173888106293415,0.173832205551867,0.1738006178334,0.1738006178334, +0.173992850587024,0.173992850587024,0.174049491322421,0.174053069076997,0.174016092961089,0.173955070519768,0.173888106293415,0.173832205551867,0.1738006178334,0.1738006178334, +0.199282508541681,0.199282508541681,0.199333209701556,0.199325860232621,0.199274502265853,0.199197710530465,0.199115921266158,0.199048453152925,0.199010504862821,0.199010504862821, +0.249833181596956,0.249833181596956,0.249870805128065,0.249840274912388,0.249758753467836,0.249649018776204,0.249536231556822,0.24944447016633,0.249393090263654,0.249393090263654, +0.325348699287349,0.325348699287349,0.325364012999688,0.325295535378579,0.325165332742341,0.325002697554808,0.324839967286663,0.324708649524684,0.324635105521782,0.324635105521782, +0.424861945894569,0.424861945894569,0.424843375047829,0.424718607853111,0.424517163270093,0.424277566722407,0.424041602805047,0.423850966105358,0.423743166396896,0.423743166396896, +0.546299860030876,0.546299860030876,0.546234632841248,0.546030169667556,0.545729357306656,0.545383583341344,0.545045139268112,0.544767735428406,0.544606386751999,0.544606386751999, +0.686169240649011,0.686169240649011,0.686048981975667,0.68573175892576,0.685295554374222,0.684809363335652,0.684332537072078,0.683927938639956,0.68367617311183,0.68367617311183, +0.83948726800981,0.83948726800981,0.839332215700402,0.838839336519248,0.83822035017948,0.837558892979681,0.836904972990747,0.836312972083701,0.835884380266814,0.835884380266814, + +00:43:56, +0.174109276456564,0.174109276456564,0.174165920777992,0.174169505819698,0.174132539515685,0.174071527865972,0.174004573724509,0.173948680773069,0.173917097298832,0.173917097298832, +0.174109276456564,0.174109276456564,0.174165920777992,0.174169505819698,0.174132539515685,0.174071527865972,0.174004573724509,0.173948680773069,0.173917097298832,0.173917097298832, +0.19939876972434,0.19939876972434,0.199449472578276,0.199442131345808,0.199390786277927,0.199314009629433,0.199232234926522,0.199164778273131,0.199126836290294,0.199126836290294, +0.249948007874132,0.249948007874132,0.249985630558806,0.249955111372577,0.249873609600351,0.249763898964769,0.249651135500683,0.24955939307152,0.249508023694445,0.249508023694445, +0.325458957090901,0.325458957090901,0.325474268877115,0.325405808404387,0.325275636846348,0.325113039910673,0.324950347652247,0.324819060449097,0.324745533526578,0.324745533526578, +0.42496249533455,0.42496249533455,0.424943925223149,0.424819186188048,0.424617789609468,0.424378251131346,0.424142344773927,0.423951754651973,0.423843981258473,0.423843981258473, +0.546384117775885,0.546384117775885,0.546318899251448,0.54611448134999,0.545813739899137,0.545468049316284,0.54512968756192,0.544852351230365,0.54469104165399,0.54469104165399, +0.686230331000267,0.686230331000267,0.686110093610821,0.685792940120193,0.685356835288978,0.684870757402633,0.684394042743183,0.683989538676067,0.683737831262118,0.683737831262118, +0.839519456354058,0.839519456354058,0.839364436378081,0.838871662040048,0.838252809748916,0.837591497262486,0.83693772063492,0.83634584874035,0.835917349052963,0.835917349052963, + +00:43:57, +0.174225701562658,0.174225701562658,0.174282349458467,0.174285941786211,0.174248985301164,0.17418798445506,0.174121040411796,0.17406515526162,0.174033576037925,0.174033576037925, +0.174225701562658,0.174225701562658,0.174282349458467,0.174285941786211,0.174248985301164,0.17418798445506,0.174121040411796,0.17406515526162,0.174033576037925,0.174033576037925, +0.199515025040729,0.199515025040729,0.1995657295811,0.199558396584902,0.199507064421456,0.199430302868855,0.199348542737184,0.199281097551831,0.19924316188088,0.19924316188088, +0.250062819711271,0.250062819711271,0.250100441548359,0.250069933391991,0.249988451293776,0.249878764716692,0.249766025010467,0.249674301544687,0.24962294269433,0.24962294269433, +0.325569191245557,0.325569191245557,0.325584501110679,0.32551605778517,0.325385917299595,0.32522335860744,0.325060704349837,0.324929447698038,0.324855937851598,0.324855937851598, +0.425063014531929,0.425063014531929,0.425044445163731,0.424919734281444,0.424718385689741,0.424478905257684,0.424243056435837,0.424052512871365,0.423944765781202,0.423944765781202, +0.546468344002077,0.546468344002077,0.546403134147898,0.546198761501196,0.545898090926874,0.545552483684536,0.545214204206408,0.544936935347495,0.544775664850438,0.544775664850438, +0.686291395159671,0.686291395159671,0.686171179050537,0.685854095086389,0.68541808992377,0.684932125128764,0.684455522012372,0.684051112258364,0.683799462926761,0.683799462926761, +0.839551629819589,0.839551629819589,0.83939664216238,0.838903972615472,0.838285254304176,0.837624086455438,0.836970453113739,0.836378710163957,0.835950302558477,0.835950302558477, + +00:43:58, +0.174342125881847,0.174342125881847,0.174398777340399,0.174402376953082,0.174365430294051,0.174304440263528,0.174237506331737,0.174181628993957,0.174150054027101,0.174150054027101, +0.174342125881847,0.174342125881847,0.174398777340399,0.174402376953082,0.174365430294051,0.174304440263528,0.174237506331737,0.174181628993957,0.174150054027101,0.174150054027101, +0.199631274474928,0.199631274474928,0.199681980694118,0.19967465593398,0.199623336680496,0.199546590232762,0.199464844682145,0.199397410973004,0.199359481618543,0.199359481618543, +0.250177617105521,0.250177617105521,0.250215238093869,0.250184740967766,0.250103278545224,0.249993616029063,0.249880900083242,0.249789195582883,0.249737847260351,0.249737847260351, +0.325679401763409,0.325679401763409,0.325694709712462,0.325626283532998,0.325496174114139,0.325333653657159,0.325171037391472,0.325039811283541,0.324966318508872,0.324966318508872, +0.425163503511194,0.425163503511194,0.425144934894046,0.425020252157765,0.424818951535381,0.424579529125901,0.424343737815263,0.424153240788033,0.424045519989586,0.424045519989586, +0.546552538739793,0.546552538739793,0.546487337560925,0.54628301015151,0.545982410420229,0.545636886476493,0.545298689232003,0.545021487810257,0.544860256371822,0.544860256371822, +0.686352433154652,0.686352433154652,0.686232238322242,0.685915223851804,0.685479318306105,0.684993466541612,0.684516974907273,0.68411265941453,0.683861068133475,0.683861068133475, +0.839583788422639,0.839583788422639,0.839428833069551,0.838936268261826,0.838317683861641,0.837656660574999,0.837003170443748,0.836411556371142,0.835983240800027,0.835983240800027, + +00:43:59, +0.174458549390708,0.174458549390708,0.174515204400378,0.174518811296895,0.174481874470905,0.174420895267905,0.17435397146083,0.174298101946552,0.174266531242817,0.174266531242817, +0.174458549390708,0.174458549390708,0.174515204400378,0.174518811296895,0.174481874470905,0.174420895267905,0.17435397146083,0.174298101946552,0.174266531242817,0.174266531242817, +0.199747518011046,0.199747518011046,0.199798225901442,0.199790909377148,0.199739603039133,0.199662871705208,0.199581140745432,0.199513718520651,0.199475795487272,0.199475795487272, +0.250292400054035,0.250292400054035,0.250330020192487,0.25029953409704,0.250218091351817,0.250108452898985,0.249995760716087,0.249904075183168,0.249852737389558,0.249852737389558, +0.32578958865654,0.32578958865654,0.325804894694532,0.325736485659929,0.325606407302027,0.325443925071864,0.32528134678918,0.325150151217625,0.325076675510417,0.325076675510417, +0.425263962296804,0.425263962296804,0.425245394438535,0.425120739841448,0.424919487170829,0.424680122760443,0.424444388936664,0.424253938426443,0.424146243908099,0.424146243908099, +0.546636702019335,0.546636702019335,0.546571509520817,0.546367227331227,0.54606669840952,0.545721257722509,0.545383142669095,0.545106008649068,0.544944816248578,0.544944816248578, +0.686413445012601,0.686413445012601,0.686293271453323,0.685976326443856,0.685540520463451,0.685054781668706,0.684578401455477,0.684174180172208,0.683922646909935,0.683922646909935, +0.839615932179421,0.839615932179421,0.839461009115819,0.838968548995393,0.838350098437666,0.837689219637607,0.837035872641467,0.836444387378497,0.836016163794259,0.836016163794259, + +00:44:00, +0.174574972065851,0.174574972065851,0.174631630615027,0.174635244794265,0.174598317808323,0.174537349444756,0.174470435775609,0.174414574095911,0.174383007661567,0.174383007661567, +0.174574972065851,0.174574972065851,0.174631630615027,0.174635244794265,0.174598317808323,0.174537349444756,0.174470435775609,0.174414574095911,0.174383007661567,0.174383007661567, +0.199863755633213,0.199863755633213,0.199914465187213,0.199907156898536,0.199855863481475,0.199779147270274,0.199697430911096,0.199630020178802,0.199592103471083,0.199592103471083, +0.250407168553976,0.250407168553976,0.250444787841375,0.250414312776965,0.250332889710687,0.250223275323564,0.250110606906089,0.250018940342611,0.249967613079013,0.249967613079013, +0.325899751937016,0.325899751937016,0.325915056068947,0.32584666417801,0.325716616875296,0.325554172863581,0.325391632554975,0.325260467512299,0.325187008868237,0.325187008868237, +0.425364390913186,0.425364390913186,0.42534582382161,0.4252211973569,0.425019992620493,0.424780686185729,0.424545009824469,0.424354605811035,0.424246937561183,0.424246937561183, +0.546720833870961,0.546720833870961,0.546655650057819,0.546451413070602,0.546150954925027,0.545805597452896,0.545467564548033,0.545190497894308,0.545029344511103,0.545029344511103, +0.686474430760871,0.686474430760871,0.686354278471132,0.686037402889926,0.685601696423239,0.685116070537537,0.684639801684535,0.684235674559004,0.68398419928378,0.68398419928378, +0.839648061106127,0.839648061106127,0.839493170317391,0.839000814832431,0.838382498048585,0.837721763659677,0.837068559723394,0.836477203202593,0.836049071557795,0.836049071557795, + +00:44:01, +0.174691393883923,0.174691393883923,0.174748055961005,0.174751677421844,0.174714760282933,0.17465380277068,0.174586899252641,0.174531045418577,0.174499483259876,0.174499483259876, +0.174691393883923,0.174691393883923,0.174748055961005,0.174751677421844,0.174714760282933,0.17465380277068,0.174586899252641,0.174531045418577,0.174499483259876,0.174499483259876, +0.199979987325587,0.199979987325587,0.200030698535595,0.2000233984823,0.199972117991656,0.199895416912067,0.199813715163215,0.19974631593151,0.199708405554016,0.199708405554016, +0.250521922602517,0.250521922602517,0.250559541037704,0.250529077004698,0.250447673618974,0.250338083299919,0.250225438650342,0.250133791058291,0.250082474325782,0.250082474325782, +0.326009891616896,0.326009891616896,0.326025193847753,0.325956819099274,0.325826802845967,0.325664397044323,0.325501894700861,0.325370760179559,0.325297318594326,0.325297318594326, +0.425464789384739,0.425464789384739,0.425446223067653,0.425321624728495,0.425120467908754,0.424881219426146,0.424645600503076,0.424455242966215,0.424347600973253,0.424347600973253, +0.546804934324894,0.546804934324894,0.546739759202137,0.546535567399849,0.54623517999699,0.545889905697927,0.545551954899123,0.545274955576315,0.545113841189753,0.545113841189753, +0.686535390426779,0.686535390426779,0.686415259402982,0.686098453217355,0.685662846212861,0.685177333175558,0.684701175621962,0.684297142602485,0.68404572528261,0.68404572528261, +0.839680175218923,0.839680175218923,0.839525316690446,0.839033065789178,0.838414882710707,0.8377542926576,0.837101231706002,0.836510003859978,0.836081964107236,0.836081964107236, + +00:44:02, +0.174807814821603,0.174807814821603,0.174864480415004,0.174868109156318,0.1748312018714,0.174770255222311,0.174703361868527,0.174647515891124,0.174615958014306,0.174615958014306, +0.174807814821603,0.174807814821603,0.174864480415004,0.174868109156318,0.1748312018714,0.174770255222311,0.174703361868527,0.174647515891124,0.174615958014306,0.174615958014306, +0.20009621307235,0.20009621307235,0.200146925930777,0.200139634112621,0.200088366553836,0.200011680614718,0.199929993485891,0.199862605762855,0.199824701720138,0.199824701720138, +0.250636662196838,0.250636662196838,0.25067427977865,0.250643826777407,0.250562443073826,0.250452876825176,0.250340255945952,0.250248627327294,0.250197321126943,0.250197321126943, +0.326120007708225,0.326120007708225,0.326135308042984,0.326066950435745,0.325936965226054,0.32577459762609,0.32561213323883,0.325481029231392,0.325407604700666,0.325407604700666, +0.425565157735831,0.425565157735831,0.425546592201014,0.425422021980581,0.425220913059961,0.424981722506053,0.424746160996852,0.424555849916361,0.424448234168692,0.424448234168692, +0.546889003411314,0.546889003411314,0.546823836983939,0.546619690349144,0.546319373655609,0.545974182487836,0.545636313752635,0.545359381725388,0.545198306314845,0.545198306314845, +0.686596324037601,0.686596324037601,0.686476214276146,0.686159477453449,0.685723969859672,0.685238569610182,0.684762523295235,0.68435858433018,0.684107224933987,0.684107224933987, +0.839712274533955,0.839712274533955,0.839557448251144,0.839065301881846,0.838447252440321,0.837786806647746,0.83713388860574,0.836542789367176,0.836114841459158,0.836114841459158, + +00:44:03, +0.174924234855605,0.174924234855605,0.174980903953751,0.174984539974407,0.174947642550421,0.174886706776316,0.174819823599905,0.174763985490163,0.174732431901453,0.174732431901453, +0.174924234855605,0.174924234855605,0.174980903953751,0.174984539974407,0.174947642550421,0.174886706776316,0.174819823599905,0.174763985490163,0.174732431901453,0.174732431901453, +0.200212432857711,0.200212432857711,0.200263147356975,0.200255863773705,0.200204609152201,0.200127938362384,0.200046265863251,0.19997888965694,0.199940991953539,0.199940991953539, +0.250751387334127,0.250751387334127,0.2507890040614,0.250758562092267,0.2506771980724,0.250567655896469,0.25045505879003,0.250363449146715,0.250312153479582,0.250312153479582, +0.326230100223035,0.326230100223035,0.326245398666662,0.326177058199433,0.326047104027555,0.325884774620872,0.325722348180863,0.32559127467977,0.325517867199227,0.325517867199227, +0.4256654959908,0.4256654959908,0.425646931246015,0.425522389137474,0.425321328098433,0.425082195449778,0.424846691330137,0.424656426685822,0.424548837171854,0.424548837171854, +0.54697304116036,0.54697304116036,0.546907883433348,0.546703781948621,0.546403535931042,0.546058427852815,0.545720641138796,0.545443776371784,0.545282739916655,0.545282739916655, +0.686657231620577,0.686657231620577,0.686537143117862,0.686220475625472,0.685785067390987,0.685299779868788,0.684823844731791,0.68441999976958,0.684168698265436,0.684168698265436, +0.839744359067343,0.839744359067343,0.83958956501562,0.839097523126626,0.838479607253689,0.837819305646458,0.837166530439037,0.836575559740687,0.836147703630112,0.836147703630112, + +00:44:04, +0.175040653962679,0.175040653962679,0.175097326554007,0.175100969852866,0.175064082296732,0.175003157409399,0.174936284423445,0.17488045419234,0.174848904897948,0.174848904897948, +0.175040653962679,0.175040653962679,0.175097326554007,0.175100969852866,0.175064082296732,0.175003157409399,0.174936284423445,0.17488045419234,0.174848904897948,0.174848904897948, +0.200328646665902,0.200328646665902,0.200379362798428,0.200372087449783,0.200320845770959,0.200244190139247,0.200162532279451,0.200095167597895,0.200057276238337,0.200057276238337, +0.250866098011581,0.250866098011581,0.250903713883151,0.250873282946461,0.250791938611861,0.250682420510942,0.250569847179699,0.250478256513659,0.250426971380794,0.250426971380794, +0.32634016917335,0.32634016917335,0.326355465730796,0.326287142402338,0.32615721926246,0.325994928040647,0.325832539538927,0.325701496536656,0.325628106101968,0.325628106101968, +0.425765804173954,0.425765804173954,0.425747240226948,0.42562272622346,0.42542171304846,0.425182638281618,0.424947191527238,0.424756973298914,0.424649410007061,0.424649410007061, +0.547057047602132,0.547057047602132,0.546991898580453,0.546787842228374,0.546487666853409,0.546142641823016,0.545804937087794,0.545528139545721,0.545367142025418,0.545367142025418, +0.68671811320291,0.68671811320291,0.68659804595533,0.686281447760655,0.685846138834087,0.685360963978714,0.68488513995903,0.684481388948139,0.684230145304441,0.684230145304441, +0.839776428835187,0.839776428835187,0.839621666999988,0.839129729539686,0.838511947167053,0.83785178967006,0.837199157222295,0.836608314996989,0.836180550636629,0.836180550636629, + +00:44:05, +0.175157072119607,0.175157072119607,0.175213748192569,0.175217398768484,0.175180521087097,0.175119607098297,0.175052744315853,0.174996921974335,0.174965376980456,0.174965376980456, +0.175157072119607,0.175157072119607,0.175213748192569,0.175217398768484,0.175180521087097,0.175119607098297,0.175052744315853,0.174996921974335,0.174965376980456,0.174965376980456, +0.200444854481181,0.200444854481181,0.200495572239402,0.200488305125111,0.200437076394347,0.200360435929513,0.200278792718666,0.200211439569877,0.200173554558674,0.200173554558674, +0.250980794226406,0.250980794226406,0.251018409241104,0.250987989337182,0.250906664689384,0.250797170665747,0.250684621112088,0.250593049425238,0.250541774827681,0.250541774827681, +0.326450214571178,0.326450214571178,0.326465509247386,0.326397203056448,0.326267310942744,0.326105057897381,0.325942707324981,0.325811694814,0.325738321420835,0.325738321420835, +0.425866082309571,0.425866082309571,0.425847519168074,0.425723033262796,0.425522067934302,0.425283051025841,0.425047661612435,0.424857489779926,0.424749952698609,0.424749952698609, +0.547141022766692,0.547141022766692,0.547075882455298,0.546871871218459,0.546571766452789,0.546226824428553,0.545889201629778,0.545612471277378,0.545451512671332,0.545451512671332, +0.686778968811764,0.686778968811764,0.686658922815712,0.686342393886188,0.685907184216211,0.685422121967261,0.684946409004316,0.684542751893271,0.684291566078451,0.684291566078451, +0.839808483853563,0.839808483853563,0.839653754220337,0.83916192113717,0.838544272196631,0.837884258734851,0.837231768971895,0.836641055152535,0.836213382495213,0.836213382495213, + +00:44:06, +0.175273489303207,0.175273489303207,0.175330168846267,0.175333826698084,0.175296958898321,0.175236055819782,0.17516920325387,0.175113388812862,0.175081848125677,0.175081848125677, +0.175273489303207,0.175273489303207,0.175330168846267,0.175333826698084,0.175296958898321,0.175236055819782,0.17516920325387,0.175113388812862,0.175081848125677,0.175081848125677, +0.200561056287832,0.200561056287832,0.200611775664188,0.200604516783971,0.200553301006624,0.200476675717416,0.200395047165103,0.200327705557065,0.200289826898718,0.200289826898718, +0.251095475975816,0.251095475975816,0.251133090132473,0.251102681261631,0.25102137630215,0.250911906358043,0.250799380584335,0.250707827878574,0.250656563817354,0.250656563817354, +0.326560236428517,0.326560236428517,0.326575529228418,0.326507240173737,0.326377379080373,0.326215164203029,0.326052851550969,0.325921869523742,0.325848513167764,0.325848513167764, +0.4259663304219,0.4259663304219,0.425947768093624,0.425823310279707,0.425622392780189,0.425383433706687,0.425148101609976,0.424957976153116,0.424850465270761,0.424850465270761, +0.547224966684058,0.547224966684058,0.54715983508789,0.546955868948889,0.546655834759221,0.546310975699497,0.545973434794854,0.545696771596892,0.54553585188455,0.54553585188455, +0.686839798474267,0.686839798474267,0.686719773726131,0.686403314029226,0.685968203564563,0.685483253861693,0.685007651894973,0.684604088632353,0.684352960614877,0.684352960614877, +0.839840524138524,0.839840524138524,0.839685826692734,0.839194097935201,0.838576582358618,0.837916712857106,0.837264365704195,0.836673780223755,0.836246199222348,0.836246199222348, + +00:44:07, +0.175389905490331,0.175389905490331,0.175446588491966,0.175450253618525,0.175413395707238,0.17535250355066,0.175285661214269,0.17522985468467,0.175198318310346,0.175198318310346, +0.175389905490331,0.175389905490331,0.175446588491966,0.175450253618525,0.175413395707238,0.17535250355066,0.175285661214269,0.17522985468467,0.175198318310346,0.175198318310346, +0.200677252070163,0.200677252070163,0.200727973057099,0.200720722410669,0.200669519592077,0.200592909487213,0.200511295602988,0.200443965543664,0.20040609324266,0.20040609324266, +0.251210143257033,0.251210143257033,0.251247756554478,0.251217358717016,0.25113607344735,0.251026627585,0.250914125593589,0.250822591870796,0.250771338346936,0.250771338346936, +0.326670234757354,0.326670234757354,0.326685525685867,0.32661725376617,0.326487423687299,0.326325246969532,0.326162972228826,0.326032020677807,0.325958681354679,0.325958681354679, +0.426066548535158,0.426066548535158,0.4260479870278,0.425923557298392,0.425722687610322,0.425483786348363,0.425248511544079,0.425058432442713,0.424950947747751,0.424950947747751, +0.547308879384212,0.547308879384212,0.547243756508196,0.547039835449641,0.546739871802705,0.546395095665883,0.54605763661309,0.545781040534362,0.545620159695191,0.545620159695191, +0.686900602217507,0.686900602217507,0.686780598713675,0.686464208216883,0.68602919690631,0.685544359689237,0.685068868658288,0.684665399192726,0.68441432894109,0.68441432894109, +0.839872549706101,0.839872549706101,0.839717884433224,0.839226259949876,0.838608877669185,0.837949152053079,0.837296947435528,0.836706490227059,0.836279000834493,0.836279000834493, + +00:44:08, +0.175506320657866,0.175506320657866,0.175563007106563,0.175566679506697,0.175529831490719,0.17546895026777,0.17540211817386,0.175346319566541,0.175314787511231,0.175314787511231, +0.175506320657866,0.175506320657866,0.175563007106563,0.175566679506697,0.175529831490719,0.17546895026777,0.17540211817386,0.175346319566541,0.175314787511231,0.175314787511231, +0.200793441812506,0.200793441812506,0.200844164402478,0.200836921989537,0.200785732135016,0.200709137223186,0.200627538016577,0.200560219513907,0.20052235357472,0.20052235357472, +0.251324796067289,0.251324796067289,0.251362408504347,0.251332021700556,0.251250756122185,0.251141334343795,0.251028856137005,0.250937341399042,0.250886098413553,0.250886098413553, +0.326780209569664,0.326780209569664,0.326795498631697,0.326727243845699,0.326597444775464,0.326435306208823,0.326273069370472,0.326142148288113,0.326068825993493,0.326068825993493, +0.426166736673534,0.426166736673534,0.426148175994774,0.426023774343016,0.425822952448869,0.425584108975049,0.425348891438935,0.425158858672915,0.425051400153784,0.425051400153784, +0.547392760897094,0.547392760897094,0.547327646746141,0.547123770750649,0.546823877613201,0.546479184357702,0.546141807114516,0.545865278119845,0.545704436133329,0.545704436133329, +0.686961380068537,0.686961380068537,0.686841397805394,0.686525076476238,0.686090164268579,0.685605439477079,0.68513005932151,0.684726683601691,0.684475671084424,0.684475671084424, +0.839904560572302,0.839904560572302,0.839749927457829,0.839258407197274,0.838641158144483,0.837981576339,0.837329514182207,0.836739185178829,0.836311787348084,0.836311787348084, + +00:44:09, +0.175622734782732,0.175622734782732,0.175679424666993,0.175683104339528,0.175646266225669,0.175585395947988,0.175518574109485,0.175462783435294,0.175431255705135,0.175431255705135, +0.175622734782732,0.175622734782732,0.175679424666993,0.175683104339528,0.175646266225669,0.175585395947988,0.175518574109485,0.175462783435294,0.175431255705135,0.175431255705135, +0.200909625499221,0.200909625499221,0.200960349684689,0.200953115504932,0.200901938619775,0.200825358909644,0.200743774390149,0.200676467452048,0.200638607879139,0.200638607879139, +0.251439434403821,0.251439434403821,0.251477045979319,0.251446670209476,0.251365424323861,0.251256026631614,0.251143572211746,0.251052076460461,0.251000844014345,0.251000844014345, +0.326890160877409,0.326890160877409,0.326905448077859,0.326837210424264,0.326707442356798,0.32654534193282,0.32638314298782,0.326252252366562,0.326178947096105,0.326178947096105, +0.426266894861187,0.426266894861187,0.426248335018688,0.426123961437717,0.425923187319972,0.425684401610893,0.425449241318702,0.425259254867891,0.425151822513035,0.425151822513035, +0.547476611252606,0.547476611252606,0.547411505831612,0.547207674881808,0.546907852220629,0.546563241804908,0.54622594632912,0.54594948438336,0.545788681229001,0.545788681229001, +0.687022132054371,0.687022132054371,0.686902171028298,0.686585918834334,0.686151105678462,0.685666493252371,0.685191223911851,0.684787941886512,0.684536987072177,0.684536987072177, +0.839936556753112,0.839936556753112,0.839781955782548,0.839290539693446,0.838673423800638,0.838013985731077,0.837362065960519,0.836771865095428,0.836344558779533,0.836344558779533, + +00:44:10, +0.175739147841883,0.175739147841883,0.175795841150221,0.175799528093978,0.175762699889028,0.175701840568223,0.175635028998023,0.17557924626778,0.175547722868896,0.175547722868896, +0.175739147841883,0.175739147841883,0.175795841150221,0.175799528093978,0.175762699889028,0.175701840568223,0.175635028998023,0.17557924626778,0.175547722868896,0.175547722868896, +0.20102580311469,0.20102580311469,0.201076528888122,0.201069302941235,0.201018139030717,0.200941574530919,0.200860004708008,0.200792709342369,0.200754856140187,0.200754856140187, +0.251554058263878,0.251554058263878,0.251591668976637,0.251561304241012,0.251480078049595,0.25137070444565,0.251258273814985,0.251166797052207,0.251115575146457,0.251115575146457, +0.32700008869254,0.32700008869254,0.327015374036292,0.326947153513795,0.326817416443219,0.326655354153432,0.326493193092768,0.326362332925048,0.326289044674405,0.326289044674405, +0.426367023122246,0.426367023122246,0.426348464123656,0.426224118606602,0.426023392247743,0.425784664280015,0.425549561207511,0.425359621051781,0.425252214849648,0.425252214849648, +0.547560430480607,0.547560430480607,0.547495333794458,0.547291547872974,0.546991795654869,0.546647268037416,0.546310054286849,0.546033659354886,0.545872895012204,0.545872895012204, +0.687082858201986,0.687082858201986,0.686962918409362,0.686646735318172,0.686212021163011,0.685727521042226,0.685252362456484,0.684849174074416,0.684598276931608,0.684598276931608, +0.839968538264495,0.839968538264495,0.839813969423357,0.839322657454425,0.838705674653754,0.838046380245493,0.837394602786729,0.836804529993192,0.83637731514523,0.83637731514523, + +00:44:11, +0.175855559812308,0.175855559812308,0.17591225653325,0.175915950747042,0.175879132457767,0.175818284105417,0.175751482816386,0.175695708040886,0.175664188979385,0.175664188979385, +0.175855559812308,0.175855559812308,0.17591225653325,0.175915950747042,0.175879132457767,0.175818284105417,0.175751482816386,0.175695708040886,0.175664188979385,0.175664188979385, +0.201141974643321,0.201141974643321,0.201192701997194,0.201185484282852,0.201134333352227,0.201057784071369,0.200976228954483,0.200908945169176,0.200871098342156,0.200871098342156, +0.251668667644715,0.251668667644715,0.251706277493557,0.251675923792405,0.251594717296611,0.251485367783108,0.251372960943905,0.251281503171444,0.251230291807043,0.251230291807043, +0.327109993026997,0.327109993026997,0.327125276518925,0.327057073126209,0.326927367046632,0.326765342882554,0.326603219697203,0.326472389975451,0.32639911874027,0.32639911874027, +0.42646712148081,0.42646712148081,0.426448563333758,0.42632424587375,0.426123567256261,0.425884897006505,0.425649851129461,0.425459957248695,0.42535257718774,0.42535257718774, +0.547644218610921,0.547644218610921,0.547579130664485,0.547375389753964,0.547075707945762,0.546731263085098,0.546394131017613,0.546117803064362,0.545957077512894,0.545957077512894, +0.687143558538323,0.687143558538323,0.687023639975524,0.686707525954721,0.686272910749243,0.68578852287372,0.685313474982547,0.684910380192592,0.684659540689938,0.684659540689938, +0.840000505122389,0.840000505122389,0.839845968396212,0.839354760496217,0.838737910719911,0.83807875989841,0.83742712467708,0.836837179888438,0.836410056461541,0.836410056461541, + +00:44:12, +0.175971970671029,0.175971970671029,0.176028670793115,0.176032372275747,0.175995563908894,0.175934726536548,0.175867935541519,0.175812168731532,0.17578065401351,0.17578065401351, +0.175971970671029,0.175971970671029,0.176028670793115,0.176032372275747,0.175995563908894,0.175934726536548,0.175867935541519,0.175812168731532,0.17578065401351,0.17578065401351, +0.201258140069548,0.201258140069548,0.201308868996343,0.201301659514215,0.201250521568714,0.201173987515376,0.201092447113928,0.201025174916801,0.200987334469366,0.200987334469366, +0.251783262543598,0.251783262543598,0.25182087152734,0.251790528860906,0.251709342062143,0.251600016641198,0.251487633595694,0.251396194815345,0.251344993993268,0.251344993993268, +0.327219873892706,0.327219873892706,0.327235155537674,0.327166969273411,0.327037294178934,0.326875308132072,0.326713222813001,0.32658242352964,0.326509169305567,0.326509169305567, +0.426567189960947,0.426567189960947,0.426548632673049,0.426424343263207,0.426223712369579,0.425985099814422,0.425750111108623,0.425560263482711,0.425452909551396,0.425452909551396, +0.547727975673328,0.547727975673328,0.547662896471461,0.547459200554554,0.547159589123109,0.546815226977789,0.546478176551282,0.546201915541686,0.546041228760989,0.546041228760989, +0.687204233090285,0.687204233090285,0.687084335753684,0.686768290770909,0.686333774464137,0.685849498773891,0.685374561517138,0.68497156026819,0.68472077837435,0.68472077837435, +0.840032457342714,0.840032457342714,0.839877952717042,0.83938684883481,0.838770132015167,0.838111124705966,0.83745963164779,0.836869814797457,0.83644278274481,0.83644278274481, + +00:44:13, +0.176088380395105,0.176088380395105,0.176145083906885,0.176148792657157,0.176111994219451,0.176051167838628,0.175984387150403,0.175928628316672,0.175897117948209,0.175897117948209, +0.176088380395105,0.176088380395105,0.176145083906885,0.176148792657157,0.176111994219451,0.176051167838628,0.175984387150403,0.175928628316672,0.175897117948209,0.175897117948209, +0.201374299377828,0.201374299377828,0.201425029870035,0.20141782861978,0.201366703664615,0.20129018484735,0.201208659170724,0.2011413985696,0.201103564506159,0.201103564506159, +0.251897842957797,0.251897842957797,0.251935451075258,0.251905119443776,0.251823952343432,0.251714651017139,0.25160229176755,0.251510871981092,0.251459681702302,0.251459681702302, +0.327329731301585,0.327329731301585,0.327345011104444,0.327276841967294,0.327147197852007,0.326985249913857,0.326823202452026,0.326692433599475,0.32661919638215,0.32661919638215, +0.426667228586699,0.426667228586699,0.426648672165552,0.426524410798994,0.426323827611719,0.426085272727797,0.425850341169038,0.425660539777882,0.425553211964673,0.425553211964673, +0.547811701697571,0.547811701697571,0.547746631245115,0.547542980304482,0.547243439216671,0.546899159745285,0.546562190917685,0.54628599681672,0.546125348786367,0.546125348786367, +0.687264881884735,0.687264881884735,0.687145005770705,0.686829029793627,0.686394612334634,0.685910448769741,0.685435622087319,0.685032714328326,0.684781990011992,0.684781990011992, +0.840064394941364,0.840064394941364,0.839909922401758,0.839418922486166,0.83880233855556,0.838143474684278,0.837492123715057,0.836902434736518,0.836475494011358,0.836475494011358, + +00:44:14, +0.176204788961625,0.176204788961625,0.176261495851664,0.176265211868369,0.176228423366513,0.176167607988702,0.176100837620051,0.176045086773296,0.176013580760459,0.176013580760459, +0.176204788961625,0.176204788961625,0.176261495851664,0.176265211868369,0.176228423366513,0.176167607988702,0.176100837620051,0.176045086773296,0.176013580760459,0.176013580760459, +0.201490452552645,0.201490452552645,0.201541184602759,0.201533991584028,0.201482879624389,0.201406376051721,0.201324865109274,0.201257616111954,0.201219788436905,0.201219788436905, +0.252012408884595,0.252012408884595,0.252050016134588,0.252019695538282,0.251938548137728,0.25182927090816,0.251716935456681,0.251625534665874,0.251574354931326,0.251574354931326, +0.327439565265536,0.327439565265536,0.327454843231127,0.327386691219742,0.327257078077723,0.327095168239773,0.326933158626131,0.3268024201968,0.326729199981863,0.326729199981863, +0.426767237382076,0.426767237382076,0.42674868183526,0.426624448505098,0.426423913006672,0.426185415770632,0.425950541334718,0.425760786158227,0.425653484451597,0.425653484451597, +0.547895396713354,0.547895396713354,0.547830335015137,0.547626729033445,0.547327258256171,0.546983061417339,0.546646174146612,0.546370046919282,0.546209437618864,0.546209437618864, +0.687325504948504,0.687325504948504,0.687205650053413,0.686889743049732,0.686455424387638,0.685971372888232,0.685496656720116,0.685093842400075,0.684843175629972,0.684843175629972, +0.840096317934212,0.840096317934212,0.839941877466246,0.839450981466225,0.8388345303571,0.838175809849439,0.837524600895053,0.836935039721867,0.836508190277481,0.836508190277481, + +00:44:15, +0.176321196347715,0.176321196347715,0.176377906604588,0.176381629886513,0.176344851327189,0.176284046963849,0.176217286927513,0.176161544078426,0.176130042427266,0.176130042427266, +0.176321196347715,0.176321196347715,0.176377906604588,0.176381629886513,0.176344851327189,0.176284046963849,0.176217286927513,0.176161544078426,0.176130042427266,0.176130042427266, +0.201606599578505,0.201606599578505,0.201657333179031,0.201650148391466,0.201599049432523,0.201522561112948,0.201441064914008,0.201373827528269,0.201336006245996,0.201336006245996, +0.25212696032128,0.25212696032128,0.252164566702619,0.2521342571417,0.252053129442288,0.251943876311497,0.251831564660301,0.251740182866889,0.251689013677529,0.251689013677529, +0.327549375796453,0.327549375796453,0.327564651929606,0.327496517042623,0.327366934867941,0.327205063121667,0.327043091347157,0.32691238333345,0.326839180116536,0.326839180116536, +0.426867216371057,0.426867216371057,0.426848661706138,0.426724456405479,0.426523968578403,0.426285528966897,0.426050711629644,0.42586100264774,0.425753727036167,0.425753727036167, +0.547979060750339,0.547979060750339,0.547914007811175,0.547710446771101,0.547411046271293,0.54706693202367,0.546730126267815,0.546454065879154,0.546293495288281,0.546293495288281, +0.687386102308382,0.687386102308382,0.687266268628596,0.68695043056604,0.686516210650016,0.686032271156292,0.685557665442513,0.685154944510477,0.684904335255362,0.684904335255362, +0.840128226337108,0.840128226337108,0.839973817926369,0.839483025790905,0.838866707435779,0.838208130217518,0.83755706320393,0.836967629769727,0.836540871559454,0.836540871559454, + +00:44:16, +0.176437602530533,0.176437602530533,0.17649431614283,0.176498046688754,0.176461278078622,0.176400484741183,0.17633373504987,0.17627800020912,0.176246502925675,0.176246502925675, +0.176437602530533,0.176437602530533,0.17649431614283,0.176498046688754,0.176461278078622,0.176400484741183,0.17633373504987,0.17627800020912,0.176246502925675,0.176246502925675, +0.20172274043994,0.20172274043994,0.201773475583389,0.201766299026622,0.201715213073525,0.201638740015513,0.201557258569379,0.201490032802977,0.201452217917852,0.201452217917852, +0.252241497265149,0.252241497265149,0.252279102776645,0.252248804251315,0.25216769625438,0.252058467224395,0.251946179375634,0.251854816581343,0.251803657938108,0.251803657938108, +0.327659162906216,0.327659162906216,0.327674437211749,0.327606319447799,0.327476768234509,0.32731493457138,0.327153000626933,0.32702232302125,0.326949136797989,0.326949136797989, +0.426967165577594,0.426967165577594,0.42694861180212,0.426824434524067,0.426623994350845,0.426385612340535,0.426150852077769,0.42596118927038,0.425853939742349,0.425853939742349, +0.548062693838151,0.548062693838151,0.54799764966284,0.547794133547069,0.547494803291678,0.547150771593952,0.546814047311005,0.546538053726078,0.546377521824376,0.546377521824376, +0.687446673991125,0.687446673991125,0.687326861523006,0.687011092369333,0.686576971148599,0.686093143600811,0.685618648281462,0.685216020686533,0.684965468915196,0.684965468915196, +0.84016012016588,0.84016012016588,0.84000574379797,0.839515055476103,0.838898869807565,0.838240435804564,0.837589510657816,0.837000204896299,0.836573537873529,0.836573537873529, + +00:44:17, +0.176554007487272,0.176554007487272,0.176610724443594,0.17661446225229,0.17657770359799,0.176516921297852,0.17645018196424,0.176394455142468,0.176362962232761,0.176362962232761, +0.176554007487272,0.176554007487272,0.176610724443594,0.17661446225229,0.17657770359799,0.176516921297852,0.17645018196424,0.176394455142468,0.176362962232761,0.176362962232761, +0.201838875121508,0.201838875121508,0.201889611800398,0.201882443474054,0.20183137053193,0.201754912743923,0.201673446059867,0.201606231920535,0.201568423436915,0.201568423436915, +0.252356019713509,0.252356019713509,0.252393624353971,0.252363336864419,0.252282248571277,0.252173043644106,0.252060779599912,0.251969435806452,0.251918287710269,0.251918287710269, +0.327768926606694,0.327768926606694,0.327784199089414,0.327716098447114,0.327586578189265,0.327424782600736,0.327262886477278,0.32713223927201,0.327059070038032,0.327059070038032, +0.427067085025609,0.427067085025609,0.427048532147113,0.426924382884763,0.426723990347901,0.426485665915458,0.426250962703017,0.426061346050082,0.425954122594082,0.425954122594082, +0.548146296006376,0.548146296006376,0.548081260599704,0.54787778939093,0.547578529346932,0.547234580157823,0.546897937305854,0.546622010489754,0.546461517256868,0.546461517256868, +0.687507220023448,0.687507220023448,0.687387428763358,0.687071728486354,0.686637705910179,0.68615399024864,0.685679605263876,0.685277070955209,0.685026576636471,0.685026576636471, +0.840191999436335,0.840191999436335,0.840037655096867,0.839547070537691,0.838931017488402,0.838272726626602,0.837621943272815,0.83703276511776,0.836606189235932,0.836606189235932, + +00:44:18, +0.176670411195158,0.176670411195158,0.176727131484119,0.176730876554353,0.176694127862505,0.176633356611037,0.176566627647773,0.176510908855596,0.176479420325637,0.176479420325637, +0.176670411195158,0.176670411195158,0.176727131484119,0.176730876554353,0.176694127862505,0.176633356611037,0.176566627647773,0.176510908855596,0.176479420325637,0.176479420325637, +0.201955003607791,0.201955003607791,0.202005741814646,0.201998581718341,0.201947521792298,0.20187107928271,0.201789627369976,0.201722424865422,0.201684622787654,0.201684622787654, +0.252470527663672,0.252470527663672,0.252508131431908,0.252477854978313,0.252396786390264,0.252287605567894,0.252175365330375,0.252084040539439,0.252032902991226,0.252032902991226, +0.327878666909745,0.327878666909745,0.327893937574448,0.327825854052406,0.327696364744034,0.327534607221552,0.327372748909999,0.327242132097531,0.327168979848461,0.327168979848461, +0.427166974738994,0.427166974738994,0.427148422764991,0.427024301511437,0.426823956593447,0.426585689715549,0.42635104352928,0.426161473010749,0.426054275615276,0.426054275615276, +0.548229867284558,0.548229867284558,0.548164840651298,0.547961414332223,0.547662224466619,0.547318357744881,0.546981796281995,0.546705936199846,0.546545481615439,0.546545481615439, +0.687567740432033,0.687567740432033,0.68744797037633,0.687132338943809,0.686698414961513,0.686214811126595,0.685740536416629,0.685338095343432,0.685087658446148,0.685087658446148, +0.840223864164254,0.840223864164254,0.840069551838858,0.839579070991519,0.838963150494213,0.838305002699634,0.83765436106501,0.837065310450265,0.836638825662871,0.836638825662871, + +00:44:19, +0.176786813631453,0.176786813631453,0.176843537241679,0.17684728957221,0.176810550849409,0.176749790657953,0.176683072077652,0.176627361325662,0.176595877181446,0.176595877181446, +0.176786813631453,0.176786813631453,0.176843537241679,0.17684728957221,0.176810550849409,0.176749790657953,0.176683072077652,0.176627361325662,0.176595877181446,0.176595877181446, +0.202071125883394,0.202071125883394,0.202121865610747,0.202114713744088,0.202063666839214,0.201987239616431,0.201905802484234,0.201838611622145,0.201800815954562,0.201800815954562, +0.252585021112962,0.252585021112962,0.252622624007776,0.252592358590306,0.25251130970863,0.252402152993026,0.252289936564271,0.252198630777536,0.252147503778201,0.252147503778201, +0.327988383827214,0.327988383827214,0.328003652678686,0.327935586275497,0.327806127910628,0.327644408445631,0.327482587936889,0.327352001509602,0.327278866241062,0.327278866241062, +0.427266834741611,0.427266834741611,0.427248283679601,0.427124190427932,0.426923893111327,0.426685683764663,0.426451094580424,0.426261570176254,0.42615439882981,0.42615439882981, +0.548313407702204,0.548313407702204,0.548248389847114,0.54804500840045,0.547745888680265,0.547402104384686,0.547065624269021,0.546789830885977,0.54662941492973,0.54662941492973, +0.687628235243523,0.687628235243523,0.687508486388563,0.68719292376837,0.68675909832932,0.686275606261454,0.68580144176656,0.685399093878092,0.685148714371147,0.685148714371147, +0.840255714365399,0.840255714365399,0.840101434039718,0.839611056853416,0.838995268840899,0.838337264039641,0.837686764050461,0.837097840909945,0.836671447170528,0.836671447170528, + +00:44:20, +0.176903214773449,0.176903214773449,0.176959941693578,0.176963701283161,0.176926972535984,0.176866223415849,0.176799515231097,0.17674381252986,0.176712332777367,0.176712332777367, +0.176903214773449,0.176903214773449,0.176959941693578,0.176963701283161,0.176926972535984,0.176866223415849,0.176799515231097,0.17674381252986,0.176712332777367,0.176712332777367, +0.202187241932949,0.202187241932949,0.202237983173338,0.202230839535923,0.202179805657284,0.202103393729668,0.202021971387194,0.201954792175234,0.201917002922157,0.201917002922157, +0.252699500058708,0.252699500058708,0.252737102078904,0.252706847697717,0.252625818523677,0.252516685916782,0.252404493298858,0.252313206517983,0.252262090068426,0.252262090068426, +0.328098077370935,0.328098077370935,0.32811334441395,0.328045295128201,0.327915867700851,0.327754186284765,0.327592403569733,0.32746184752,0.327388729227609,0.327388729227609, +0.427366665057293,0.427366665057293,0.427348114914761,0.427224049658059,0.427023799925357,0.426785648086624,0.426551115880282,0.426361637570442,0.426254492261536,0.426254492261536, +0.548396917288782,0.548396917288782,0.548331908216608,0.548128571625074,0.547829522017357,0.547485820106756,0.547149421296487,0.546873694577731,0.546713317229342,0.546713317229342, +0.687688704484526,0.687688704484526,0.687568976826661,0.687253482986669,0.686819756040282,0.686336375679958,0.685862321340472,0.685460066586042,0.685209744438356,0.685209744438356, +0.84028755005551,0.84028755005551,0.840133301715198,0.839643028139189,0.839027372544337,0.838369510662579,0.837719152245204,0.837130356512909,0.836704053775063,0.836704053775063, + +00:44:21, +0.177019614598475,0.177019614598475,0.177076344817159,0.177080111664539,0.17704339289954,0.176982654862009,0.176915957085359,0.176860262445416,0.176828787090614,0.176828787090614, +0.177019614598475,0.177019614598475,0.177076344817159,0.177080111664539,0.17704339289954,0.176982654862009,0.176915957085359,0.176860262445416,0.176828787090614,0.176828787090614, +0.202303351741111,0.202303351741111,0.202354094487082,0.202346959078502,0.202295938231144,0.202219541607026,0.202138134063435,0.202070966509245,0.202033183674981,0.202033183674981, +0.252813964498249,0.252813964498249,0.252851565642628,0.252821322297869,0.252740312832711,0.252631204336448,0.252519035531401,0.252427767758029,0.252376661859139,0.252376661859139, +0.328207747552732,0.328207747552732,0.328223012792052,0.328154980622318,0.328025584126491,0.327863940750734,0.327702195820302,0.32757167014049,0.327498568819864,0.327498568819864, +0.427466465709846,0.427466465709846,0.427447916494258,0.427323879225602,0.427123677059324,0.426885582705227,0.426651107452662,0.426461675217129,0.426354555934273,0.426354555934273, +0.54848039607372,0.54848039607372,0.548415395789193,0.548212104035518,0.547913124507343,0.547569504940573,0.547233187393909,0.546957527304654,0.546797188543838,0.546797188543838, +0.687749148181611,0.687749148181611,0.687629441717192,0.687314016625302,0.686880388121043,0.686397119408813,0.685923175165128,0.6855210134941,0.685270748674623,0.685270748674623, +0.840319371250301,0.840319371250301,0.840165154881029,0.83967498486462,0.839059461620384,0.838401742584383,0.837751525665256,0.837162857275245,0.836736645492613,0.836736645492613, + +00:44:22, +0.177136013083891,0.177136013083891,0.177192746589794,0.177196520693711,0.177159811917424,0.177099084973748,0.177032397617725,0.176976711049591,0.176945240098432,0.176945240098432, +0.177136013083891,0.177136013083891,0.177192746589794,0.177196520693711,0.177159811917424,0.177099084973748,0.177032397617725,0.176976711049591,0.176945240098432,0.176945240098432, +0.202419455292561,0.202419455292561,0.202470199536666,0.202463072356502,0.202412064545451,0.202335683233136,0.20225429049756,0.202187134608758,0.202149358197603,0.202149358197603, +0.252928414428931,0.252928414428931,0.252966014696294,0.252935782388098,0.25285479263305,0.252745708249319,0.252633563259173,0.25254231449493,0.252491219147589,0.252491219147589, +0.328317394384414,0.328317394384414,0.328332657824792,0.328264642769637,0.328135277199329,0.327973671855308,0.327811964700358,0.327681469382828,0.327608385029579,0.327608385029579, +0.427566236723042,0.427566236723042,0.427547688441849,0.427423679154313,0.427223524536986,0.426985487644237,0.426751069321339,0.426561683140101,0.426454589871814,0.426454589871814, +0.548563844086407,0.548563844086407,0.548498852594244,0.548295605661165,0.547996696179631,0.547653158915577,0.547316922590762,0.547041329096252,0.546881028902743,0.546881028902743, +0.687809566361311,0.687809566361311,0.687689881086686,0.68737452471083,0.686940994598214,0.686457837474685,0.685984003267256,0.685581934629044,0.685331727106758,0.685331727106758, +0.840351177965469,0.840351177965469,0.840196993552919,0.839706927045471,0.839091536084871,0.838433959820966,0.837783884326606,0.837195343213015,0.836769222339292,0.836769222339292, + +00:44:23, +0.177252410207094,0.177252410207094,0.17730914698889,0.177312928348079,0.177276229567016,0.177215513728418,0.177148836805513,0.17709315831968,0.177061691778102,0.177061691778102, +0.177252410207094,0.177252410207094,0.17730914698889,0.177312928348079,0.177276229567016,0.177215513728418,0.177148836805513,0.17709315831968,0.177061691778102,0.177061691778102, +0.202535552572002,0.202535552572002,0.202586298306803,0.202579179354627,0.202528184584887,0.202451818592653,0.202370440674195,0.202303296458378,0.202265526474614,0.202265526474614, +0.253042849848109,0.253042849848109,0.253080449237253,0.253050227965746,0.252969257922016,0.252860197652697,0.252748076479458,0.252656846725952,0.252605761931031,0.252605761931031, +0.328427017877781,0.328427017877781,0.328442279523958,0.328374281581936,0.328244946931131,0.328083379610244,0.327921710221648,0.327791245258756,0.327718177868494,0.327718177868494, +0.427665978120628,0.427665978120628,0.427647430781266,0.427523449467919,0.427323342382071,0.427085362927393,0.426851001510062,0.426661661363114,0.426554594097923,0.426554594097923, +0.548647261356193,0.548647261356193,0.548582278661099,0.548379076531362,0.54808023706359,0.547736782061173,0.547400626916485,0.547125099981991,0.54696483833554,0.54696483833554, +0.687869959050125,0.687869959050125,0.68775029496164,0.687435007269775,0.687001575498367,0.686518529904206,0.686044805673547,0.685642830017617,0.685392679761537,0.685392679761537, +0.840382970216684,0.840382970216684,0.840228817746554,0.839738854697482,0.83912359595361,0.838466162388218,0.837816228245226,0.837227814342261,0.836801784331193,0.836801784331193, + +00:44:24, +0.177368805945512,0.177368805945512,0.17742554599189,0.177429334605076,0.177392645825729,0.177331941103402,0.177265274626077,0.177209604233009,0.177178142106938,0.177178142106938, +0.177368805945512,0.177368805945512,0.17742554599189,0.177429334605076,0.177392645825729,0.177331941103402,0.177265274626077,0.177209604233009,0.177178142106938,0.177178142106938, +0.202651643564163,0.202651643564163,0.202702390782227,0.202695280057604,0.20264429833416,0.202567947670258,0.202486584577993,0.202419452042734,0.202381688490631,0.202381688490631, +0.253157270753147,0.253157270753147,0.253194869262868,0.253164659028161,0.253083708696943,0.252974672543893,0.252862575189544,0.252771364448369,0.252720290206731,0.252720290206731, +0.328536618044621,0.328536618044621,0.328551877901326,0.328483897070981,0.328354593333653,0.328193064027288,0.328031432395912,0.327900997780005,0.327827947348336,0.327827947348336, +0.42776568992632,0.42776568992632,0.427747143536207,0.427623190190114,0.427423130618277,0.427185208578401,0.426950904042547,0.426761609909897,0.426654568636332,0.426654568636332, +0.548730647912391,0.548730647912391,0.548665674019056,0.548462516675414,0.548163747188553,0.547820374406722,0.547484300400475,0.5472088399913,0.547048616871676,0.547048616871676, +0.687930326274511,0.687930326274511,0.687810683368508,0.687495464328625,0.687062130848035,0.68657919672397,0.686105582410656,0.685703699686524,0.685453606665698,0.685453606665698, +0.840414748019597,0.840414748019597,0.840260627477597,0.839770767836369,0.839155641242389,0.838498350302006,0.837848557437062,0.837260270679001,0.836834331484383,0.836834331484383, + +00:44:25, +0.177485200276607,0.177485200276607,0.177541943576268,0.177545739442172,0.17750906067101,0.177448367076118,0.177381711056804,0.177326048766943,0.177294591062287,0.177294591062287, +0.177485200276607,0.177485200276607,0.177541943576268,0.177545739442172,0.17750906067101,0.177448367076118,0.177381711056804,0.177326048766943,0.177294591062287,0.177294591062287, +0.2027677282538,0.2027677282538,0.2028184769477,0.202811374450185,0.202760405778001,0.202684070450654,0.202602722193631,0.20253560134648,0.202497844230296,0.202497844230296, +0.253271677141415,0.253271677141415,0.253309274770506,0.253279075572704,0.253198144955171,0.253089132920228,0.25297705938673,0.252885867659462,0.25283480397196,0.25283480397196, +0.328646194896709,0.328646194896709,0.328661452968662,0.328593489248526,0.328464216418639,0.328302725118174,0.328141131234874,0.328010726958296,0.327937693480823,0.327937693480823, +0.427865372163804,0.427865372163804,0.427846826730343,0.427722901344564,0.427522889269274,0.427285024620941,0.427050776942485,0.426861528804149,0.426754513510746,0.426754513510746, +0.548814003784272,0.548814003784272,0.548749038697372,0.548545926122589,0.548247226583809,0.547903935981551,0.547567943072092,0.547292549153568,0.547132364540557,0.547132364540557, +0.687990668060894,0.687990668060894,0.687871046333715,0.687555895913828,0.687122660673719,0.686639837960535,0.686166333505199,0.685764543662435,0.68551450784594,0.68551450784594, +0.840446511389837,0.840446511389837,0.840292422761691,0.839802666477827,0.839187671966975,0.838530523578176,0.837880871918038,0.837292712239231,0.83686686381491,0.83686686381491, + +00:44:26, +0.177601593177875,0.177601593177875,0.177658339719531,0.177662142836866,0.177625474080341,0.177564791624017,0.177498146075114,0.177442491898875,0.177411038621532,0.177411038621532, +0.177601593177875,0.177601593177875,0.177658339719531,0.177662142836866,0.177625474080341,0.177564791624017,0.177498146075114,0.177442491898875,0.177411038621532,0.177411038621532, +0.202883806625688,0.202883806625688,0.202934556788006,0.202927462517147,0.202876506901167,0.202800186918571,0.20271885350581,0.202651744354295,0.202613993678274,0.202613993678274, +0.253386069010293,0.253386069010293,0.253423665757547,0.25339347759674,0.25331256669405,0.253203578779029,0.253091529068324,0.253000356356523,0.252949303224001,0.252949303224001, +0.328755748445811,0.328755748445811,0.328771004737718,0.328703058126315,0.328573816197823,0.328412362894625,0.32825080675025,0.328120432805338,0.328047416277661,0.328047416277661, +0.427965024856739,0.427965024856739,0.427946480387317,0.427822582954906,0.427622618358704,0.42738481107866,0.427150620233535,0.426961418069538,0.426854428744842,0.426854428744842, +0.54889732900107,0.54889732900107,0.54883237272527,0.548629304902117,0.548330675278614,0.547987466814945,0.547651554960657,0.547376227498145,0.547216081371552,0.547216081371552, +0.688050984435662,0.688050984435662,0.687931383883643,0.687616302051798,0.687183165001881,0.686700453640421,0.686227058983757,0.685825361971981,0.68557538332893,0.68557538332893, +0.840478260343009,0.840478260343009,0.840324203614454,0.83983455063753,0.839219688143111,0.83856268223255,0.837913171704056,0.837325139038924,0.836899381338798,0.836899381338798, + +00:44:27, +0.177717984626845,0.177717984626845,0.177774734399221,0.177778544766695,0.177741886031234,0.177681214724584,0.177614579658463,0.177558933606235,0.177527484762087,0.177527484762087, +0.177717984626845,0.177717984626845,0.177774734399221,0.177778544766695,0.177741886031234,0.177681214724584,0.177614579658463,0.177558933606235,0.177527484762087,0.177527484762087, +0.202999878664632,0.202999878664632,0.203050630287954,0.20304354424329,0.202992601688437,0.202916297058762,0.202834978499255,0.202767881050882,0.202730136819257,0.202730136819257, +0.253500446357167,0.253500446357167,0.253538042221374,0.253507865097643,0.253426973910935,0.253318010117631,0.25320598423164,0.253114830536848,0.253063787960142,0.253063787960142, +0.328865278703678,0.328865278703678,0.328880533220238,0.328812603716079,0.328683392682924,0.328521977368353,0.328360458953743,0.328230115332827,0.328157115750544,0.328157115750544, +0.428064648028752,0.428064648028752,0.428046104530739,0.427922235044748,0.427722317910177,0.427484567975181,0.427250433939329,0.427061277729706,0.426954314362264,0.426954314362264, +0.548980623591981,0.548980623591981,0.548915676131929,0.548712653043187,0.54841409330218,0.548070966936151,0.547735136095451,0.547459875054342,0.547299767393989,0.547299767393989, +0.688111275425164,0.688111275425164,0.687991696044642,0.687676682768913,0.687243643858946,0.686761043790113,0.686287758872875,0.685886154641758,0.685636233141293,0.685636233141293, +0.840509994894697,0.840509994894697,0.840355970051485,0.839866420331126,0.839251689786519,0.83859482628093,0.837945456810997,0.837357551094033,0.836931884072047,0.836931884072047, + +00:44:28, +0.17783437460108,0.17783437460108,0.177891127592913,0.177894945209226,0.177858296501237,0.177797636355337,0.177731011784337,0.177675373866486,0.177643929461401,0.177643929461401, +0.17783437460108,0.17783437460108,0.177891127592913,0.177894945209226,0.177858296501237,0.177797636355337,0.177731011784337,0.177675373866486,0.177643929461401,0.177643929461401, +0.203115944355456,0.203115944355456,0.20316669743238,0.20315961961344,0.203108690124617,0.203032400856006,0.202951097158717,0.202884011420969,0.20284627363796,0.20284627363796, +0.253614809179433,0.253614809179433,0.253652404159381,0.253622238072798,0.253541366603193,0.25343242693338,0.253320424874002,0.253229290197746,0.253178258177681,0.253178258177681, +0.328974785682052,0.328974785682052,0.328990038427951,0.328922126029537,0.328792945885653,0.328631568551059,0.328470087857044,0.32833977455245,0.328266791911153,0.328266791911153, +0.428164241703443,0.428164241703443,0.428145699184195,0.42802185763767,0.427821987947277,0.427584295334093,0.427350218083467,0.427161107808264,0.427054170386632,0.427054170386632, +0.549063887586161,0.549063887586161,0.548998948946493,0.54879597057495,0.548497480683685,0.548154436374379,0.547818686505718,0.547543491851432,0.54738342263716,0.54738342263716, +0.688171541055716,0.688171541055716,0.688051982843024,0.687737038091514,0.687304097271304,0.686821608436059,0.68634843319906,0.685946921698326,0.68569705730962,0.68569705730962, +0.840541715060463,0.840541715060463,0.840387722088358,0.839898275574246,0.839283676912899,0.838626955739093,0.837977727254716,0.837389948420484,0.836964372030637,0.836964372030637, + +00:44:29, +0.177950763078175,0.177950763078175,0.178007519278215,0.178011344142063,0.177974705467932,0.177914056493827,0.177847442430257,0.177791812657123,0.177760372696956,0.177760372696956, +0.177950763078175,0.177950763078175,0.178007519278215,0.178011344142063,0.177974705467932,0.177914056493827,0.177847442430257,0.177791812657123,0.177760372696956,0.177760372696956, +0.203232003683014,0.203232003683014,0.203282758206139,0.203275688612445,0.203224772194535,0.203148498295103,0.20306720946897,0.203000135449308,0.202962404119122,0.202962404119122, +0.253729157474494,0.253729157474494,0.25376675156897,0.253736596519593,0.253655744768197,0.253546829223626,0.25343485099274,0.253343735336531,0.253292713873924,0.253292713873924, +0.329084269392663,0.329084269392663,0.329099520372575,0.329031625078398,0.328902475817708,0.32874113645443,0.328579693471834,0.328449410475881,0.328376444771162,0.328376444771162, +0.428263805904383,0.428263805904383,0.428245264371238,0.42812145075722,0.427921628493556,0.42768399317896,0.427449972689524,0.427260908328795,0.427153996841532,0.427153996841532, +0.549147121012728,0.549147121012728,0.549082191198067,0.54887925752652,0.548580837452264,0.548237875158797,0.547902206220661,0.54762707791865,0.547467047130314,0.547467047130314, +0.688231781353596,0.688231781353596,0.688112244305064,0.687797368045904,0.687364525265308,0.686882147604671,0.686409081988783,0.686007663168205,0.685757855860466,0.685757855860466, +0.840573420855848,0.840573420855848,0.840419459740628,0.839930116382496,0.839315649537929,0.838659070622796,0.838009983051051,0.837422331034184,0.836996845230523,0.836996845230523, + +00:44:30, +0.178067150035761,0.178067150035761,0.17812390943277,0.178127741542838,0.178091112908932,0.178030475117641,0.177963871573779,0.177908249955678,0.177876814446268,0.177876814446268, +0.178067150035761,0.178067150035761,0.17812390943277,0.178127741542838,0.178091112908932,0.178030475117641,0.177963871573779,0.177908249955678,0.177876814446268,0.177876814446268, +0.203348056632179,0.203348056632179,0.203398812594116,0.203391751225181,0.203340847883046,0.203264589360882,0.203183315414813,0.203116253120676,0.203078528247507,0.203078528247507, +0.253843491239763,0.253843491239763,0.253881084447551,0.253850940435429,0.253770108403328,0.25366121698573,0.253549262585196,0.253458165950526,0.253407155046186,0.253407155046186, +0.32919372984723,0.32919372984723,0.32920897906582,0.329141100874358,0.329011982490776,0.328850681090144,0.328689275809783,0.328559023114782,0.328486074342229,0.328486074342229, +0.428363340655113,0.428363340655113,0.428344800115394,0.42822101442692,0.42802123957254,0.427783661533315,0.427549697781043,0.427360679314852,0.427253793750526,0.427253793750526, +0.54923032390076,0.54923032390076,0.549165402915715,0.548962513926971,0.548664163637018,0.548321283318538,0.547985695269448,0.547710633285191,0.547550640902666,0.547550640902666, +0.688291996345046,0.688291996345046,0.688172480457003,0.687857672658352,0.687424927867274,0.686942661322323,0.686469705268478,0.686068379077883,0.685818628820349,0.685818628820349, +0.840605112296369,0.840605112296369,0.840451183023827,0.83996194277146,0.839347607677264,0.838691170947773,0.838042224215812,0.837454698951017,0.83702930368764,0.83702930368764, + +00:44:31, +0.178183535451499,0.178183535451499,0.178240298034251,0.178244137389222,0.178207518801885,0.178146892204396,0.17808029919249,0.178024685739712,0.177993254686887,0.177993254686887, +0.178183535451499,0.178183535451499,0.178240298034251,0.178244137389222,0.178207518801885,0.178146892204396,0.17808029919249,0.178024685739712,0.177993254686887,0.177993254686887, +0.203464103187851,0.203464103187851,0.203514860581216,0.203507807436545,0.203456917175028,0.203380674038192,0.203299414981071,0.203232364419874,0.203194646007906,0.203194646007906, +0.253957810472658,0.253957810472658,0.253995402792541,0.253965269817713,0.253884457505975,0.253775590217062,0.253663659648716,0.253572582037063,0.253521581691789,0.253521581691789, +0.329303167057458,0.329303167057458,0.329318414519379,0.329250553429104,0.329121465916532,0.328960202469866,0.328798834882547,0.328668612480807,0.328595680636004,0.328595680636004, +0.428462845979146,0.428462845979146,0.42844430644016,0.428320548670261,0.428120821207725,0.427883300420661,0.427649393381539,0.427460420789961,0.427353561137143,0.427353561137143, +0.549313496279298,0.549313496279298,0.549248584128466,0.549045739805339,0.548747459267004,0.548404660882694,0.548069153681205,0.547794157980211,0.54763420398339,0.54763420398339, +0.688352186056273,0.688352186056273,0.688232691325044,0.68791795195509,0.687485305103484,0.687003149615355,0.686530303064545,0.686129069453809,0.685879376215749,0.685879376215749, +0.840636789397524,0.840636789397524,0.840482891953463,0.839993754756701,0.839379551346538,0.838723256729735,0.838074450764791,0.837487052186844,0.837061747417899,0.837061747417899, + +00:44:32, +0.178299919303086,0.178299919303086,0.178356685060368,0.178360531658916,0.178323923124472,0.178263307731744,0.178196725264011,0.178141119986823,0.178109693396394,0.178109693396394, +0.178299919303086,0.178299919303086,0.178356685060368,0.178360531658916,0.178323923124472,0.178263307731744,0.178196725264011,0.178141119986823,0.178109693396394,0.178109693396394, +0.203580143334955,0.203580143334955,0.203630902152369,0.203623857231459,0.203572980055381,0.20349675231191,0.20341550815259,0.203348469331728,0.203310757385129,0.203310757385129, +0.254072115170607,0.254072115170607,0.254109706601366,0.254079584663858,0.253998792073536,0.253889948914997,0.253778042180657,0.253686983593482,0.253635993808063,0.253635993808063, +0.329412581035043,0.329412581035043,0.329427826744938,0.329359982754309,0.32923092610664,0.329069700605252,0.328908370701772,0.328778178585595,0.328705263664124,0.328705263664124, +0.428562321899964,0.428562321899964,0.428543783369002,0.428420053510708,0.428220373422577,0.427982909864476,0.427749059514498,0.427560132777617,0.427453299024885,0.427453299024885, +0.549396638177345,0.549396638177345,0.549331734865307,0.549128935190621,0.548830724371246,0.548488007880319,0.548152581485022,0.547877652032828,0.547717736401622,0.547717736401622, +0.688412350513445,0.688412350513445,0.688292876935353,0.687978205962314,0.68754565700018,0.68706361251007,0.686590875403344,0.686189734322395,0.685940098073111,0.685940098073111, +0.840668452174786,0.840668452174786,0.840514586545026,0.84002555235376,0.839411480561361,0.838755327984372,0.838106662713756,0.837519390757504,0.837094176437189,0.837094176437189, + +00:44:33, +0.17841630156825,0.17841630156825,0.178473070488861,0.178476924329654,0.178440325854407,0.178379721677371,0.178313149765999,0.17825755267464,0.178226130552407,0.178226130552407, +0.17841630156825,0.17841630156825,0.178473070488861,0.178476924329654,0.178440325854407,0.178379721677371,0.178313149765999,0.17825755267464,0.178226130552407,0.178226130552407, +0.203696177058438,0.203696177058438,0.203746937292532,0.20373990059487,0.203689036509034,0.203612824166935,0.203531594914243,0.203464567841087,0.203426862364016,0.203426862364016, +0.254186405331046,0.254186405331046,0.25422399587146,0.254193884971288,0.254113112103417,0.25400429307692,0.253892410178383,0.25380137061713,0.253750391392347,0.253750391392347, +0.329521971791668,0.329521971791668,0.329537215754168,0.329469388861636,0.329340363072752,0.329179175507943,0.329017883279095,0.328887721440774,0.328814823438215,0.328814823438215, +0.428661768441022,0.428661768441022,0.428643230925359,0.428519528971693,0.428319896240533,0.428082489888205,0.427848696203379,0.427659815301287,0.427553007437226,0.427553007437226, +0.549479749623864,0.549479749623864,0.549414855155189,0.549212100111776,0.548913958978727,0.54857132434043,0.548235978709947,0.547961115472124,0.547801238186459,0.547801238186459, +0.688472489742697,0.688472489742697,0.688353037314063,0.688038434706184,0.687605983583573,0.687124050032733,0.686651422311202,0.686250373710018,0.686000794418844,0.686000794418844, +0.840700100643609,0.840700100643609,0.840546266813981,0.840057335578156,0.839443395337324,0.838787384727352,0.838138860078453,0.837551714678814,0.837126590761377,0.837126590761377, + +00:44:34, +0.178532682224755,0.178532682224755,0.178589454297505,0.178593315379205,0.178556726969438,0.178496134018994,0.17842957267614,0.178373983780827,0.178342566132574,0.178342566132574, +0.178532682224755,0.178532682224755,0.178589454297505,0.178593315379205,0.178556726969438,0.178496134018994,0.17842957267614,0.178373983780827,0.178342566132574,0.178342566132574, +0.203812204343272,0.203812204343272,0.203862965986683,0.203855937511748,0.203805086520936,0.203728889588191,0.203647675250927,0.203580659932826,0.203542960929427,0.203542960929427, +0.254300680951417,0.254300680951417,0.254338270600263,0.254308170737435,0.254227417593032,0.254118622700224,0.254006763639266,0.253915743105364,0.253864774441989,0.253864774441989, +0.329631339339005,0.329631339339005,0.329646581558732,0.329578771762735,0.329449776826509,0.329288627189572,0.329127372626138,0.328997241057964,0.328924359969891,0.328924359969891, +0.428761185625747,0.428761185625747,0.428742649132642,0.428618975076623,0.428419389685004,0.428182040515267,0.427948303471609,0.427759468384409,0.427652686397609,0.427652686397609, +0.549562830647781,0.549562830647781,0.549497945027025,0.549295234597724,0.548997163118391,0.548654610292003,0.548319345384994,0.548044548327138,0.54788470936696,0.54788470936696, +0.688532603770126,0.688532603770126,0.688413172487269,0.688098638212823,0.687666284879833,0.687184462209575,0.686711943814408,0.686310987643019,0.68606146527932,0.68606146527932, +0.840731734819423,0.840731734819423,0.840577932775773,0.840089104445385,0.839475295689993,0.838819426974321,0.838171042874605,0.837584023966569,0.837158990406307,0.837158990406307, + +00:44:35, +0.178649061250395,0.178649061250395,0.178705836464107,0.17870970478537,0.178673126447344,0.178612544734365,0.178545993972156,0.17849041328308,0.178459000114578,0.178459000114578, +0.178649061250395,0.178649061250395,0.178705836464107,0.17870970478537,0.178673126447344,0.178612544734365,0.178545993972156,0.17849041328308,0.178459000114578,0.178459000114578, +0.203928225174454,0.203928225174454,0.203978988219825,0.203971967967089,0.203921130076062,0.203844948560625,0.203763749147561,0.203696745591843,0.20365905306625,0.20365905306625, +0.254414942029173,0.254414942029173,0.254452530785226,0.254422441959736,0.254341708539802,0.254232937782311,0.254121102560687,0.254030101055548,0.253979142954343,0.253979142954343, +0.329740683688716,0.329740683688716,0.32975592417028,0.329688131469246,0.32955916737954,0.329398055661758,0.329236838754513,0.329106737448769,0.329033873270755,0.329033873270755, +0.428860573477534,0.428860573477534,0.428842038014231,0.428718391848873,0.42851885377937,0.42828156176905,0.428047881342588,0.427859092050394,0.427752335929451,0.427752335929451, +0.549645881277983,0.549645881277983,0.549581004509687,0.549378338677349,0.549080336819145,0.548737865763979,0.548402681539137,0.548127950626875,0.547968149972145,0.547968149972145, +0.688592692621794,0.688592692621794,0.688473282481031,0.68815881650832,0.687726560915096,0.68724484906679,0.686772439939215,0.686371576147701,0.686122110680874,0.686122110680874, +0.840763354717637,0.840763354717637,0.840609584445824,0.840120858970923,0.839507181634916,0.838851454740902,0.838203211117916,0.83761631863654,0.837191375387801,0.837191375387801, + +00:44:36, +0.178765438622999,0.178765438622999,0.178822216966509,0.178826092525983,0.17878952426594,0.178728953801269,0.178662413631801,0.17860684115913,0.178575432476136,0.178575432476136, +0.178765438622999,0.178765438622999,0.178822216966509,0.178826092525983,0.17878952426594,0.178728953801269,0.178662413631801,0.17860684115913,0.178575432476136,0.178575432476136, +0.204044239537004,0.204044239537004,0.204095003976986,0.20408799194591,0.204037167159411,0.20396100106921,0.203879816589091,0.203812824803061,0.203775138759393,0.203775138759393, +0.254529188561773,0.254529188561773,0.254566776423807,0.25453669863564,0.254455984941156,0.254347238320588,0.254235426940034,0.254144444465053,0.254093496926774,0.254093496926774, +0.329850004852449,0.329850004852449,0.329865243600448,0.329797467992796,0.329668534743465,0.329507460936111,0.329346281675821,0.329216210624786,0.329143363352401,0.329143363352401, +0.428959932019752,0.428959932019752,0.428941397593479,0.428817779311792,0.428618288546982,0.428381053672915,0.428147429839687,0.427958686322621,0.427851956056137,0.427851956056137, +0.549728901543318,0.549728901543318,0.549664033632012,0.549461412379495,0.549163480109857,0.548821090785258,0.548485987201309,0.548211322400298,0.548051560030997,0.548051560030997, +0.688652756323727,0.688652756323727,0.68853336732137,0.688218969618725,0.687786811715464,0.687305210630536,0.686832910711841,0.686432139250334,0.686182730649806,0.686182730649806, +0.84079496035364,0.84079496035364,0.840641221839536,0.840152599170223,0.839539053187614,0.838883468042697,0.838235364824063,0.837648598704478,0.837223745721659,0.837223745721659, + +00:44:37, +0.178881814320429,0.178881814320429,0.178938595782584,0.178942478578911,0.178905920403072,0.178845361197524,0.178778831632864,0.178723267386738,0.178691863194995,0.178691863194995, +0.178881814320429,0.178881814320429,0.178938595782584,0.178942478578911,0.178905920403072,0.178845361197524,0.178778831632864,0.178723267386738,0.178691863194995,0.178691863194995, +0.204160247415966,0.204160247415966,0.204211013243217,0.204204009433257,0.204153197756006,0.204077047098943,0.203995877560487,0.203928897551426,0.203891217993793,0.203891217993793, +0.254643420546684,0.254643420546684,0.25468100751347,0.254650940762601,0.254570246794534,0.254461524312473,0.254349736774704,0.254258773331262,0.254207836356653,0.254207836356653, +0.329959302841841,0.329959302841841,0.329974539860865,0.329906781345003,0.329777878929889,0.329616843024227,0.329455701401652,0.329325660597597,0.329252830226408,0.329252830226408, +0.429059261275741,0.429059261275741,0.429040727893709,0.428917137488698,0.428717694011163,0.428480516250194,0.42824694898625,0.428058251224444,0.427951546801025,0.427951546801025, +0.549811891472597,0.549811891472597,0.549747032422797,0.549544455732967,0.549246593019358,0.548904285384703,0.548569262400409,0.548294663676334,0.548134939572461,0.548134939572461, +0.688712794901916,0.688712794901916,0.688593427034277,0.688279097570055,0.687847037306999,0.687365546926935,0.686893356158466,0.686492676977147,0.686243325212379,0.686243325212379, +0.840826551742797,0.840826551742797,0.840672844972288,0.840184325058717,0.839570910363591,0.838915466895286,0.838267504008706,0.837680864186111,0.837256101423659,0.837256101423659, + +00:44:38, +0.178998188320578,0.178998188320578,0.179054972890238,0.179058862922055,0.179022314836619,0.17896176690098,0.178895247953164,0.178839691943702,0.17880829224894,0.17880829224894, +0.178998188320578,0.178998188320578,0.179054972890238,0.179058862922055,0.179022314836619,0.17896176690098,0.178895247953164,0.178839691943702,0.17880829224894,0.17880829224894, +0.204276248796409,0.204276248796409,0.204327016003593,0.204320020414194,0.204269221850894,0.204193086634844,0.204111932046741,0.204044963821911,0.204007290754408,0.204007290754408, +0.254757637981382,0.254757637981382,0.25479522405169,0.254765168338083,0.254684494097379,0.254575795755392,0.254464032062101,0.254373087651561,0.254322161241359,0.254322161241359, +0.33006857766852,0.33006857766852,0.330083812963146,0.330016071537472,0.329887199950408,0.329726201937694,0.329565097943584,0.329435087378776,0.329362273904347,0.329362273904347, +0.429158561268809,0.429158561268809,0.429140028938215,0.429016466402882,0.428817070195208,0.428579949524189,0.428346438805589,0.428157786779185,0.428051108187446,0.428051108187446, +0.549894851094594,0.549894851094594,0.5498300009108,0.549627468766533,0.549329675576439,0.548987449591139,0.548652507165296,0.548377974483872,0.54821828862544,0.54821828862544, +0.688772808382313,0.688772808382313,0.688653461645701,0.688339200388291,0.68790723771573,0.687425857982073,0.686953776305235,0.686553189354339,0.686303894394821,0.686303894394821, +0.840858128900453,0.840858128900453,0.840704453859437,0.840216036651815,0.839602753178327,0.838947451314225,0.838299628687479,0.837713115097145,0.837288442509556,0.837288442509556, + +00:44:39, +0.179114560601376,0.179114560601376,0.179171348267412,0.179175245533349,0.179138707544496,0.179078170889522,0.179011662570557,0.178956114807851,0.178924719615785,0.178924719615785, +0.179114560601376,0.179114560601376,0.179171348267412,0.179175245533349,0.179138707544496,0.179078170889522,0.179011662570557,0.178956114807851,0.178924719615785,0.178924719615785, +0.204392243663425,0.204392243663425,0.204443012243213,0.204436024873814,0.204385239429146,0.204309119661957,0.20422798003287,0.204161023599511,0.204123357026221,0.204123357026221, +0.25487184086335,0.25487184086335,0.254909426035948,0.254879381359555,0.254798726847147,0.254690052646777,0.254578312799639,0.254487387423349,0.25443647157828,0.25443647157828, +0.330177829344099,0.330177829344099,0.330193062918894,0.330125338581796,0.329996497816605,0.329835537688084,0.329674471313183,0.329544490979883,0.329471694397774,0.329471694397774, +0.42925783202224,0.42925783202224,0.429239300750264,0.429115766077606,0.428916417122381,0.428679353518176,0.42844589932099,0.42825729301014,0.4281506402387,0.4281506402387, +0.549977780438042,0.549977780438042,0.549912939124744,0.549710451508923,0.549412727809855,0.549070583433351,0.54873572152479,0.548461254851761,0.548301607218804,0.548301607218804, +0.688832796790839,0.688832796790839,0.68871347118156,0.688399278099376,0.68796741296765,0.687486143822002,0.687014171178259,0.686613676408067,0.686364438223322,0.686364438223322, +0.84088969184193,0.84088969184193,0.84073604851632,0.840247733964906,0.839634581647279,0.838979421315052,0.838331738875997,0.837745351453263,0.837320768995084,0.837320768995084, + +00:44:40, +0.179230931140782,0.179230931140782,0.179287721892078,0.179291626390758,0.179255098504646,0.179194573141066,0.179128075462928,0.179072535957046,0.179041145273378,0.179041145273378, +0.179230931140782,0.179230931140782,0.179287721892078,0.179291626390758,0.179255098504646,0.179194573141066,0.179128075462928,0.179072535957046,0.179041145273378,0.179041145273378, +0.204508232002132,0.204508232002132,0.204559001947202,0.204552022797231,0.204501250475857,0.204425146165351,0.204344021503917,0.204277076869245,0.204239416794239,0.204239416794239, +0.254986029190079,0.254986029190079,0.255023613463733,0.254993579824496,0.254912945041299,0.254804294984069,0.254692578984739,0.254601672644029,0.254550767364812,0.254550767364812, +0.330287057880182,0.330287057880182,0.330302289739703,0.330234582489558,0.330105772540054,0.329944850286963,0.329783821522005,0.329653871412468,0.329581091718238,0.329581091718238, +0.429357073559286,0.429357073559286,0.429338543353093,0.429215036536103,0.429015734815921,0.4287787282554,0.428545330555709,0.428356769940575,0.428250142978059,0.428250142978059, +0.550060679531637,0.550060679531637,0.549995847093312,0.549793403988829,0.54949574974832,0.549153686940089,0.548818905507673,0.548544504808814,0.548384895381382,0.548384895381382, +0.688892760153375,0.688892760153375,0.688773455667734,0.68845933072922,0.688027563088715,0.687546404472735,0.687074540803609,0.686674138164456,0.686424956724039,0.686424956724039, +0.840921240582529,0.840921240582529,0.840767628958252,0.840279417013355,0.839666395785885,0.83901137691328,0.83836383458985,0.837777573270127,0.837353080895954,0.837353080895954, + +00:44:41, +0.179347299916789,0.179347299916789,0.179404093742241,0.179408005472281,0.179371487695049,0.179310973633562,0.179244486608198,0.179188955369184,0.179157569199603,0.179157569199603, +0.179347299916789,0.179347299916789,0.179404093742241,0.179408005472281,0.179371487695049,0.179310973633562,0.179244486608198,0.179188955369184,0.179157569199603,0.179157569199603, +0.204624213797668,0.204624213797668,0.204674985100706,0.204668014169584,0.204617254976147,0.204541166130119,0.204460056444947,0.204393123616156,0.204355470043493,0.204355470043493, +0.255100202959068,0.255100202959068,0.255137786332542,0.255107763730395,0.255027148677304,0.254918522764717,0.254806830614828,0.254715943311015,0.25466504859836,0.25466504859836, +0.33039626328836,0.33039626328836,0.330411493437152,0.330343803272329,0.330215024132315,0.330054139745881,0.329893148581593,0.32976322868807,0.329690465877274,0.329690465877274, +0.429456285903173,0.429456285903173,0.429437756769912,0.429314277801577,0.429115023299035,0.428878073759079,0.428644732532975,0.428456217593727,0.428349616428768,0.428349616428768, +0.550143548404039,0.550143548404039,0.550078724845148,0.549876326234906,0.549578741420515,0.549236760140063,0.548902059142692,0.548627724383805,0.548468153141964,0.548468153141964, +0.688952698495769,0.688952698495769,0.688833415130068,0.688519358303695,0.688087688104847,0.68760663996025,0.687134885207323,0.686734574649595,0.68648544992309,0.68648544992309, +0.840952775137531,0.840952775137531,0.840799195200524,0.840311085812509,0.839698195609559,0.839043318124401,0.83839591584461,0.837809780563378,0.837385378227854,0.837385378227854, + +00:44:42, +0.179463666907424,0.179463666907424,0.179520463795941,0.17952438275595,0.179487875093717,0.179427372344994,0.179360895984319,0.179305373022193,0.179273991372372,0.179273991372372, +0.179463666907424,0.179463666907424,0.179520463795941,0.17952438275595,0.179487875093717,0.179427372344994,0.179360895984319,0.179305373022193,0.179273991372372,0.179273991372372, +0.204740189035199,0.204740189035199,0.204790961688896,0.204783998976037,0.204733252915157,0.204657179541378,0.204576084841049,0.204509163825312,0.20447151675904,0.20447151675904, +0.255214362167824,0.255214362167824,0.255251944639881,0.255221933074744,0.25514133775264,0.255032735986179,0.254921067687345,0.254830199421727,0.254779315276335,0.254779315276335, +0.330505445580215,0.330505445580215,0.330520674022813,0.330453000941668,0.330324252604938,0.33016340607638,0.330002452503482,0.329872562818216,0.329799816886406,0.329799816886406, +0.429555469077095,0.429555469077095,0.429536941023899,0.429413489897204,0.429214282594903,0.428977390052401,0.428744105275987,0.428555635992806,0.42844906061404,0.42844906061404, +0.550226387083867,0.550226387083867,0.550161572408861,0.549959218275768,0.549661702855077,0.549319803061945,0.548985182458551,0.548710913605469,0.548551380529305,0.548551380529305, +0.689012611843832,0.689012611843832,0.688893349594371,0.68857936084864,0.68814778804193,0.687666850310492,0.687195204415404,0.686794985889535,0.68654591784656,0.68654591784656, +0.840984295522192,0.840984295522192,0.840830747258408,0.84034274037769,0.839729981133695,0.839075244963887,0.838427982655824,0.837841973348633,0.837417661006453,0.837417661006453, + +00:44:43, +0.179580032090745,0.179580032090745,0.179636832031247,0.179640758219831,0.179604260678693,0.179543769253376,0.179477303569278,0.179421788894033,0.179390411769635,0.179390411769635, +0.179580032090745,0.179580032090745,0.179636832031247,0.179640758219831,0.179604260678693,0.179543769253376,0.179477303569278,0.179421788894033,0.179390411769635,0.179390411769635, +0.204856157699912,0.204856157699912,0.204906931696967,0.204899977201775,0.204849244278056,0.204773186384267,0.204692106677337,0.204625197481805,0.204587556925958,0.204587556925958, +0.255328506813861,0.255328506813861,0.255366088383262,0.255336087855047,0.255255512264792,0.255146934645919,0.255035290199733,0.254944440973594,0.254893567396157,0.254893567396157, +0.330614604767314,0.330614604767314,0.330629831508243,0.330562175509123,0.330433457969462,0.330272649289988,0.330111733299193,0.329981873814421,0.329909144757147,0.329909144757147, +0.42965462310422,0.42965462310422,0.429636096138208,0.429512672846132,0.429313512726677,0.429076677158526,0.428843448807916,0.428655025160993,0.428548475557063,0.428548475557063, +0.550309195599705,0.550309195599705,0.550244389813019,0.550042080139994,0.549744634080611,0.549402815734371,0.549068275483921,0.548794072502504,0.548634577572119,0.548634577572119, +0.689072500223342,0.689072500223342,0.688953259086416,0.688639338389855,0.688207862925815,0.687727035549367,0.687255498453816,0.686855371910292,0.686606360520495,0.686606360520495, +0.841015801751751,0.841015801751751,0.840862285147156,0.8403743807242,0.839761752373664,0.839107157447186,0.838460035039019,0.837874151641488,0.837449929247396,0.837449929247396, + +00:44:44, +0.179696395444846,0.179696395444846,0.179753198426264,0.17975713184202,0.179720644428054,0.179660164336757,0.179593709341092,0.179538202962701,0.179506830369371,0.179506830369371, +0.179696395444846,0.179696395444846,0.179753198426264,0.17975713184202,0.179720644428054,0.179660164336757,0.179593709341092,0.179538202962701,0.179506830369371,0.179506830369371, +0.20497211977702,0.20497211977702,0.205022895110139,0.20501594883201,0.204965229050033,0.204889186643952,0.204808121938948,0.204741224570751,0.204703590529351,0.204703590529351, +0.255442636894702,0.255442636894702,0.255480217560206,0.255450228068813,0.255369672211255,0.25526111874141,0.255149498149446,0.255058667964054,0.255007804955255,0.255007804955255, +0.330723740861216,0.330723740861216,0.330738965904989,0.330671326986231,0.330542640237414,0.330381869398225,0.330220990980235,0.330091161688191,0.330018449500999,0.330018449500999, +0.429753748007688,0.429753748007688,0.429735222135961,0.42961182667148,0.42941271371748,0.429175935100587,0.428942763151905,0.428754385121439,0.428647861280996,0.428647861280996, +0.550391973980096,0.550391973980096,0.550327177086154,0.550124911856124,0.549827535125679,0.549485798185936,0.549151338247432,0.548877201103572,0.548717744299085,0.548717744299085, +0.689132363660037,0.689132363660037,0.689013143631943,0.688699290953107,0.688267912782315,0.687787195702747,0.687315767348491,0.686915732737847,0.686666777970907,0.686666777970907, +0.841047293841422,0.841047293841422,0.840893808881994,0.84040600686732,0.839793509344817,0.839139055589724,0.838492073009698,0.837906315457517,0.837482182966305,0.837482182966305, + +00:44:45, +0.179812756947849,0.179812756947849,0.179869562959128,0.179873503600649,0.179837026319911,0.179776557573219,0.179710113277815,0.179654615206222,0.179623247149594,0.179623247149594, +0.179812756947849,0.179812756947849,0.179869562959128,0.179873503600649,0.179837026319911,0.179776557573219,0.179710113277815,0.179654615206222,0.179623247149594,0.179623247149594, +0.205088075251758,0.205088075251758,0.205138851913653,0.205131913851975,0.205081207216304,0.20500518030562,0.204924130611045,0.20485724507729,0.204819617554346,0.204819617554346, +0.255556752407879,0.255556752407879,0.255594332168241,0.255564353713562,0.255483817589528,0.255375288270134,0.255263691533945,0.255172880390551,0.255122027951064,0.255122027951064, +0.330832853873467,0.330832853873467,0.330848077224586,0.330780455384519,0.330651799420309,0.330491066412596,0.330330225558109,0.33020042645102,0.330127731129454,0.330127731129454, +0.429852843810607,0.429852843810607,0.429834319040254,0.429710951396338,0.429511885590406,0.429275163901686,0.429042048331068,0.42885371589727,0.428747217808968,0.428747217808968, +0.550474722253549,0.550474722253549,0.55040993425676,0.550207713452662,0.549910406018809,0.549568750445201,0.549234370777678,0.548960299437293,0.548800880738843,0.548800880738843, +0.689192202179624,0.689192202179624,0.689073003256654,0.688759218564128,0.68832793763721,0.687847330796468,0.687376011125322,0.686976068398145,0.686727170223773,0.686727170223773, +0.8410787718064,0.8410787718064,0.840925318478131,0.84043761882231,0.839825252062481,0.839170939406908,0.838524096583343,0.837938464812272,0.837514422178782,0.837514422178782, + +00:44:46, +0.179929116577912,0.179929116577912,0.179985925608009,0.179989873473879,0.179953406332406,0.179892948940876,0.179826515357529,0.179771025602656,0.179739662088351,0.179739662088351, +0.179929116577912,0.179929116577912,0.179985925608009,0.179989873473879,0.179953406332406,0.179892948940876,0.179826515357529,0.179771025602656,0.179739662088351,0.179739662088351, +0.205204024109386,0.205204024109386,0.205254802092777,0.205247872246929,0.205197178762107,0.205121167354484,0.205040132678812,0.204973258986584,0.204935637986096,0.204935637986096, +0.255670853350928,0.255670853350928,0.255708432204905,0.255678464786818,0.255597948397121,0.255489443229578,0.255377870350698,0.255287078250538,0.255236236381029,0.255236236381029, +0.330941943815601,0.330941943815601,0.33095716547856,0.330889560715499,0.330760935529653,0.330600240344598,0.330439437044301,0.330309668114389,0.33023698965399,0.33023698965399, +0.429951910536061,0.429951910536061,0.429933386874152,0.429810047043768,0.429611028368521,0.4293743635849,0.42914130436849,0.428953017511581,0.42884654516408,0.42884654516408, +0.550557440448532,0.550557440448532,0.550492661353294,0.550290484958071,0.549993246788489,0.549651672540686,0.549317373103213,0.549043367532254,0.548883986919993,0.548883986919993, +0.689252015807772,0.689252015807772,0.689132837986216,0.688819121248613,0.688387937516242,0.687907440856331,0.687436229810169,0.687036378917095,0.686787537305033,0.686787537305033, +0.841110235661856,0.841110235661856,0.840956813950752,0.840469216604406,0.839856980541964,0.839202808914122,0.838556105775418,0.837970599721284,0.837546646900406,0.837546646900406, + +00:44:47, +0.180045474313226,0.180045474313226,0.180102286351108,0.180106241439906,0.180069784443714,0.180009338417874,0.179942915558352,0.179887434130097,0.17985607516372,0.17985607516372, +0.180045474313226,0.180045474313226,0.180102286351108,0.180106241439906,0.180069784443714,0.180009338417874,0.179942915558352,0.179887434130097,0.17985607516372,0.17985607516372, +0.205319966335187,0.205319966335187,0.205370745632799,0.205363824002154,0.205313143672704,0.20523714777578,0.205156128127458,0.205089266283821,0.205051651809774,0.205051651809774, +0.255784939721396,0.255784939721396,0.255822517667741,0.255792561286116,0.255712064631551,0.25560358361724,0.255492034597183,0.255401261541476,0.255350430242603,0.255350430242603, +0.331051010699142,0.331051010699142,0.331066230678422,0.330998642990675,0.330870048576937,0.330709391205713,0.330548625450289,0.33041888668977,0.330346225086076,0.330346225086076, +0.430050948207103,0.430050948207103,0.430032425660694,0.429909113636804,0.429710142074864,0.429473534173274,0.42924053128723,0.429052289987439,0.428945843369407,0.428945843369407, +0.550640128593478,0.550640128593478,0.550575358404175,0.550373226400779,0.550076057463171,0.549734564500875,0.549400345252556,0.549126405416999,0.548967062871101,0.548967062871101, +0.689311804570116,0.689311804570116,0.689192647846263,0.688878999032222,0.68844791244512,0.687967525908102,0.687496423428855,0.687096664320571,0.686847879240592,0.686847879240592, +0.841141685422942,0.841141685422942,0.840988295315022,0.840500800228824,0.839888694798552,0.839234664126726,0.838588100601359,0.83800272020006,0.837578857146736,0.837578857146736, + +00:44:48, +0.180161830132012,0.180161830132012,0.18021864516666,0.180222607476959,0.180186160632043,0.180125725982393,0.180059313858434,0.180003840766669,0.179972486353813,0.179972486353813, +0.180161830132012,0.180161830132012,0.18021864516666,0.180222607476959,0.180186160632043,0.180125725982393,0.180059313858434,0.180003840766669,0.179972486353813,0.179972486353813, +0.205435901914467,0.205435901914467,0.205486682519035,0.205479769102955,0.205429101933381,0.205353121554768,0.205272116942217,0.205205266954214,0.205167659010582,0.205167659010582, +0.255899011516836,0.255899011516836,0.255936588554301,0.255906643208998,0.255826166290344,0.255717709430625,0.255606184270883,0.255515430260833,0.255464609533244,0.255464609533244, +0.331160054535601,0.331160054535601,0.331175272835674,0.331107702221537,0.330979138573645,0.330818519007417,0.330657790787537,0.330528082188623,0.330455437437168,0.330455437437168, +0.430149956846758,0.430149956846758,0.430131435422889,0.430008151198452,0.429809226732444,0.429572675689827,0.429339729110317,0.429151533347883,0.429045112447992,0.429045112447992, +0.55072278671678,0.55072278671678,0.550658025437782,0.550455937809177,0.550158838071269,0.549817426354214,0.549483287254187,0.54920941312004,0.549050108620692,0.549050108620692, +0.689371568492255,0.689371568492255,0.689252432862391,0.68893885194058,0.688507862449516,0.688027585977509,0.687556592007169,0.687156924634411,0.686908196056319,0.686908196056319, +0.841173121104789,0.841173121104789,0.841019762586083,0.84053236971076,0.839920394847508,0.839266505060063,0.838620081076585,0.838034826264088,0.837611052933306,0.837611052933306, + +00:44:49, +0.180278184012525,0.180278184012525,0.180335002032932,0.180338971563298,0.180302534875633,0.180242111612645,0.180175710235957,0.180120245490532,0.180088895636776,0.180088895636776, +0.180278184012525,0.180278184012525,0.180335002032932,0.180338971563298,0.180302534875633,0.180242111612645,0.180175710235957,0.180120245490532,0.180088895636776,0.180088895636776, +0.205551830832558,0.205551830832558,0.205602612736821,0.205595707534662,0.205545053529448,0.205469088676732,0.205388099108345,0.205321260982996,0.20528365957374,0.20528365957374, +0.256013068734811,0.256013068734811,0.256050644862145,0.256020710553013,0.255940253371031,0.255831820667244,0.255720319369291,0.255629584406088,0.255578774250422,0.255578774250422, +0.331269075336481,0.331269075336481,0.331284291961806,0.331216738419567,0.331088205531246,0.330927623761169,0.3307669330675,0.330637254622395,0.330564626718714,0.330564626718714, +0.430248936478023,0.430248936478023,0.430230416183719,0.430107159751689,0.429908282364241,0.429671788157549,0.429438897860751,0.429250747615923,0.429144352422853,0.429144352422853, +0.550805414846794,0.550805414846794,0.55074066248246,0.550538619211615,0.550241588641158,0.549900258129112,0.549566199136547,0.549292390669847,0.549133124197256,0.549133124197256, +0.689431307599754,0.689431307599754,0.689312193060161,0.688998679999278,0.688567787555067,0.688087621090248,0.687616735570862,0.687217159884418,0.686968487778048,0.686968487778048, +0.841204542722504,0.841204542722504,0.841051215779059,0.840563925065387,0.839952080704075,0.839298331729451,0.838652047216491,0.838066917928834,0.83764323427563,0.83764323427563, + +00:44:50, +0.180394535933053,0.180394535933053,0.180451356928223,0.180455333677216,0.180418907152757,0.180358495286874,0.180292104669136,0.180236648279875,0.180205302990785,0.180205302990785, +0.180394535933053,0.180394535933053,0.180451356928223,0.180455333677216,0.180418907152757,0.180358495286874,0.180292104669136,0.180236648279875,0.180205302990785,0.180205302990785, +0.205667753074814,0.205667753074814,0.205718536271518,0.205711639282627,0.205660998446238,0.205585049126978,0.205504074611123,0.205437248355427,0.205399653484498,0.205399653484498, +0.256127111372889,0.256127111372889,0.25616468658884,0.256134763315718,0.256054325871152,0.255945917324618,0.255834439889909,0.255743723974723,0.255692924391612,0.255692924391612, +0.331378073113269,0.331378073113269,0.331393288068297,0.331325751596233,0.331197249461201,0.331036705478421,0.330876052301622,0.330746404002526,0.330673792942147,0.330673792942147, +0.430347887123867,0.430347887123867,0.430329367966137,0.430206139319464,0.43000730899321,0.429770871599402,0.429538037561505,0.429349932814543,0.429243563316978,0.429243563316978, +0.550888013011841,0.550888013011841,0.550823269566515,0.55062127063641,0.550324309201178,0.549983059853939,0.549649080928043,0.549375338094854,0.549216109629245,0.549216109629245, +0.689491021918141,0.689491021918141,0.689371928465101,0.68905848323387,0.688627687787376,0.688147631271977,0.687676854145653,0.687277370096359,0.687028754431577,0.687028754431577, +0.841235950291175,0.841235950291175,0.841082654909048,0.840595466307857,0.839983752383474,0.839330144150188,0.838683999036453,0.838098995209739,0.837675401189202,0.837675401189202, + +00:44:51, +0.180510885871915,0.180510885871915,0.180567709830865,0.180571693797039,0.180535277441722,0.180474876983358,0.180408497136219,0.180353049112923,0.180321708394051,0.180321708394051, +0.180510885871915,0.180510885871915,0.180567709830865,0.180571693797039,0.180535277441722,0.180474876983358,0.180408497136219,0.180353049112923,0.180321708394051,0.180321708394051, +0.205783668626613,0.205783668626613,0.205834453108512,0.205827564332228,0.205776936669107,0.205701002890838,0.205620043435856,0.205553229056789,0.205515640728124,0.205515640728124, +0.256241139428648,0.256241139428648,0.256278713731963,0.256248801494677,0.256168383788257,0.256059999400275,0.255948545830243,0.255857848964233,0.255807059954299,0.255807059954299, +0.331487047877443,0.331487047877443,0.331502261166614,0.331434741762993,0.331306270374957,0.331145764170611,0.330985148501332,0.33085553034044,0.330782936118891,0.330782936118891, +0.430446808807228,0.430446808807228,0.430428290793067,0.430305089924697,0.430106306642274,0.429869926038321,0.429637148235524,0.429449088966697,0.429342745153328,0.429342745153328, +0.550970581240201,0.550970581240201,0.550905846718216,0.550703892111837,0.55040699977963,0.55006583155703,0.549731932657041,0.549458255423458,0.549299064945071,0.549299064945071, +0.68955071147291,0.68955071147291,0.689431639102702,0.689118261669875,0.68868756317201,0.688207616548321,0.687736947757223,0.687337555295967,0.68708899604267,0.68708899604267, +0.841267343825869,0.841267343825869,0.841114079991132,0.840626993453301,0.840015409900905,0.83936194233755,0.838715936551822,0.838131058122227,0.83770755368949,0.83770755368949, + +00:44:52, +0.180627233807465,0.180627233807465,0.180684060719223,0.180688051901125,0.180651645720863,0.180591256680406,0.180524887615486,0.180469447967932,0.180438111824815,0.180438111824815, +0.180627233807465,0.180627233807465,0.180684060719223,0.180688051901125,0.180651645720863,0.180591256680406,0.180524887615486,0.180469447967932,0.180438111824815,0.180438111824815, +0.205899577473356,0.205899577473356,0.20595036323321,0.205943482668863,0.205892868183438,0.205816949953666,0.205736005567872,0.20566920307239,0.205631621289915,0.205631621289915, +0.256355152899671,0.256355152899671,0.256392726289095,0.256362825087465,0.256282427119902,0.25617406689175,0.256062637187811,0.255971959372118,0.255921180935974,0.255921180935974, +0.331595999640472,0.331595999640472,0.331611211268214,0.331543708931292,0.33141526828395,0.331254799849169,0.331094221678053,0.330964633647554,0.330892056260359,0.330892056260359, +0.430545701551021,0.430545701551021,0.430527184687407,0.430404011590281,0.43020527533433,0.42996895149721,0.429736229905725,0.429548216095311,0.429441897954834,0.429441897954834, +0.551053119560118,0.551053119560118,0.550988393965793,0.550786483666138,0.550489660404777,0.550148573266679,0.549814754351872,0.549541142684017,0.549381990173111,0.549381990173111, +0.68961037628952,0.68961037628952,0.689491324998421,0.689178015332778,0.6887474137345,0.688267576944869,0.687797016431219,0.687397715508937,0.687149212637053,0.687149212637053, +0.841298723341631,0.841298723341631,0.841145491040367,0.840658506516829,0.840047053271547,0.839393726306791,0.83874785977793,0.838163106681697,0.837739691791945,0.837739691791945, + +00:44:53, +0.180743579718087,0.180743579718087,0.180800409571693,0.180804407967865,0.180768011968553,0.18070763435636,0.18064127608525,0.180585844823189,0.180554513261354,0.180554513261354, +0.180743579718087,0.180743579718087,0.180800409571693,0.180804407967865,0.180768011968553,0.18070763435636,0.18064127608525,0.180585844823189,0.180554513261354,0.180554513261354, +0.206015479600468,0.206015479600468,0.206066266631044,0.206059394277958,0.206008792974633,0.20593289030084,0.205851960992521,0.205785170387559,0.205747595155187,0.205747595155187, +0.256469151783553,0.256469151783553,0.256506724257827,0.256476834091661,0.256396455863649,0.256288119796589,0.256176713960136,0.256086055195885,0.256035287334137,0.256035287334137, +0.331704928413809,0.331704928413809,0.331720138384541,0.331652653112566,0.331524243199608,0.331363812525509,0.331203271843193,0.331073713935272,0.331001153377951,0.331001153377951, +0.430644565378127,0.430644565378127,0.430626049672025,0.430502904339081,0.430304215092247,0.430067947998947,0.429835282594995,0.429647314223283,0.429541021744401,0.429541021744401, +0.551135627999801,0.551135627999801,0.551070911337442,0.550869045327515,0.550572291104846,0.550231285011147,0.549897546040829,0.549623999904855,0.549464885341704,0.549464885341704, +0.689670016393395,0.689670016393395,0.68955098617768,0.689237744248028,0.688807239500343,0.688327512487174,0.687857060193253,0.687457850760931,0.68720940424042,0.68720940424042, +0.841330088853485,0.841330088853485,0.841176888071792,0.840690005513528,0.840078682510556,0.839425496073146,0.838779768730087,0.838195140903527,0.837771815511992,0.837771815511992, + +00:44:54, +0.180859923582198,0.180859923582198,0.180916756366705,0.180920761975681,0.180884376163193,0.180824009989596,0.180757662523856,0.180702239657017,0.180670912681974,0.180670912681974, +0.180859923582198,0.180859923582198,0.180916756366705,0.180920761975681,0.180884376163193,0.180824009989596,0.180757662523856,0.180702239657017,0.180670912681974,0.180670912681974, +0.206131374993397,0.206131374993397,0.206182163287469,0.206175299144958,0.20612471102812,0.206048823917764,0.20596790969518,0.205901130987651,0.205863562309283,0.205863562309283, +0.256583136077892,0.256583136077892,0.256620707635758,0.256590828504853,0.25651047001707,0.256402158112342,0.256290776144751,0.256200136433052,0.256149379146296,0.256149379146296, +0.331813834208898,0.331813834208898,0.331829042527029,0.331761574318239,0.331633195133343,0.331472802211039,0.331312299008151,0.331182771214985,0.331110227483059,0.331110227483059, +0.430743400311404,0.430743400311404,0.43072488576976,0.430601768193932,0.430403125938865,0.430166915566381,0.429934306326196,0.429746383373483,0.429640116544905,0.429640116544905, +0.551218106587417,0.551218106587417,0.551153398861317,0.550951577124133,0.550654891908026,0.550313966818654,0.549980307752166,0.549706827114254,0.549547750479152,0.549547750479152, +0.689729631809924,0.689729631809924,0.689610622665865,0.68929744844104,0.688867040495001,0.688387423200754,0.687917079068901,0.687517961077575,0.687269570878427,0.687269570878427, +0.841361440376433,0.841361440376433,0.841208271100423,0.840721490458467,0.840110297633069,0.839457251651825,0.83881166342358,0.838227160803075,0.837803924865038,0.837803924865038, + +00:44:55, +0.180976265378247,0.180976265378247,0.181033101082719,0.181037113903029,0.181000738283219,0.18094038355852,0.180874046909681,0.180818632447769,0.180787310065017,0.180787310065017, +0.180976265378247,0.180976265378247,0.181033101082719,0.181037113903029,0.181000738283219,0.18094038355852,0.180874046909681,0.180818632447769,0.180787310065017,0.180787310065017, +0.206247263637617,0.206247263637617,0.206298053187965,0.206291197255335,0.206240622329351,0.206164750789861,0.206083851661248,0.206017084858042,0.205979522737569,0.205979522737569, +0.256697105780297,0.256697105780297,0.256734676420494,0.256704808324637,0.256624469577746,0.256516181836568,0.256404823739194,0.256314203081142,0.256263456369967,0.256263456369967, +0.331922717037174,0.331922717037174,0.3319379237071,0.331870472559723,0.331742124096558,0.331581768917153,0.331421303184314,0.331291805498076,0.33121927858706,0.33121927858706, +0.430842206373679,0.430842206373679,0.430823693003427,0.430700603177643,0.430502007896997,0.430265854222334,0.430033301122158,0.429845423568753,0.429739182379194,0.429739182379194, +0.551300555351101,0.551300555351101,0.55123585656554,0.55103407908412,0.55073746284247,0.550396618717384,0.550063039514101,0.549789624340462,0.549630585613719,0.549630585613719, +0.68978922256446,0.68978922256446,0.689670234488327,0.689357127937194,0.688926816743901,0.688447309111094,0.687977073083704,0.68757804648446,0.687329712576696,0.687329712576696, +0.841392777925459,0.841392777925459,0.841239640141254,0.840752961366692,0.8401418986542,0.839488993058021,0.838843543873677,0.838259166395676,0.837836019866467,0.837836019866467, + +00:44:56, +0.181092605084717,0.181092605084717,0.181149443698229,0.181153463728396,0.181117098307098,0.181056755041571,0.180990429221136,0.18093502317383,0.180903705388854,0.180903705388854, +0.181092605084717,0.181092605084717,0.181149443698229,0.181153463728396,0.181117098307098,0.181056755041571,0.180990429221136,0.18093502317383,0.180903705388854,0.180903705388854, +0.206363145518621,0.206363145518621,0.206413936318034,0.206407088594583,0.206356526863801,0.206280670902581,0.206199786876147,0.206133031984134,0.206095476425433,0.206095476425433, +0.256811060888384,0.256811060888384,0.256848630609649,0.256818773548618,0.256738454543262,0.256630190966835,0.256518856741014,0.256428255137688,0.256377519002672,0.256377519002672, +0.332031576910056,0.332031576910056,0.332046781936165,0.331979347848418,0.331851030100647,0.331690712655233,0.331530284383057,0.331400816795916,0.331328306701323,0.331328306701323, +0.43094098358775,0.43094098358775,0.430922471395807,0.430799409312994,0.430600860989427,0.430364763989599,0.430132267005686,0.429944434831907,0.429838219270087,0.429838219270087, +0.551382974318945,0.551382974318945,0.551318284478193,0.551116551235568,0.550820003936291,0.550479240735485,0.550145741354816,0.549872391611688,0.549713390773632,0.549713390773632, +0.689848788682324,0.689848788682324,0.689729821670385,0.689416782761834,0.688986568272434,0.688507170243642,0.688037042263169,0.687638107007143,0.687389829360814,0.687389829360814, +0.841424101515522,0.841424101515522,0.84127099520926,0.840784418253227,0.840173485589043,0.839520720306901,0.838875410095623,0.838291157696644,0.83786810053164,0.83786810053164, + +00:44:57, +0.181208942680121,0.181208942680121,0.181265784191762,0.181269811430301,0.18123345621333,0.18117312441722,0.181106809436663,0.18105141181362,0.18102009863189,0.18102009863189, +0.181208942680121,0.181208942680121,0.181265784191762,0.181269811430301,0.18123345621333,0.18117312441722,0.181106809436663,0.18105141181362,0.18102009863189,0.18102009863189, +0.206479020621929,0.206479020621929,0.2065298126632,0.206522973148219,0.206472424616967,0.206396584241396,0.206315715325323,0.206248972351352,0.206211423358289,0.206211423358289, +0.256925001399774,0.256925001399774,0.256962570200844,0.256932724174405,0.256852424911214,0.256744185500717,0.256632875147766,0.256542292600229,0.256491567041943,0.256491567041943, +0.332140413838955,0.332140413838955,0.332155617225624,0.332088200195716,0.331959913156989,0.331799633436652,0.331639242615745,0.331509805119864,0.331437311837205,0.331437311837205, +0.43103973197639,0.43103973197639,0.431021220969659,0.430898186622737,0.43069968523891,0.430463644890941,0.430231203999558,0.430043417185732,0.429937227240377,0.429937227240377, +0.55146536351901,0.55146536351901,0.55140068262732,0.551198993606529,0.550902515217569,0.550561832901067,0.550228413302455,0.549955128956106,0.54979616598708,0.54979616598708, +0.689908330188799,0.689908330188799,0.68978938423732,0.68947641294027,0.689046295105957,0.688567006623811,0.688096986632767,0.687698142671144,0.687449921256333,0.687449921256333, +0.841455411161562,0.841455411161562,0.841302336319392,0.840815861133076,0.84020505845267,0.839552433413615,0.838907262104642,0.838323134721272,0.837900166875899,0.837900166875899, + +00:44:58, +0.181325278143005,0.181325278143005,0.181382122541875,0.181386156987297,0.181349811980446,0.181289491663973,0.181223187534737,0.181167798345589,0.181136489772564,0.181136489772564, +0.181325278143005,0.181325278143005,0.181382122541875,0.181386156987297,0.181349811980446,0.181289491663973,0.181223187534737,0.181167798345589,0.181136489772564,0.181136489772564, +0.206594888933083,0.206594888933083,0.206645682209013,0.206638850901784,0.206588315574372,0.206512490791802,0.206431636994246,0.206364905945143,0.206327363521573,0.206327363521573, +0.2570389273121,0.2570389273121,0.257076495191707,0.257046660199618,0.256966380679204,0.256858165435797,0.256746878957013,0.256656315466312,0.25660560048532,0.25660560048532, +0.33224922783527,0.33224922783527,0.332264429586865,0.332197029612995,0.332068773276954,0.331908531272771,0.331748177893732,0.331618770481268,0.331546294006052,0.331546294006052, +0.431138451562342,0.431138451562342,0.431119941747709,0.430996935129597,0.430798480668176,0.430562496949098,0.430330112126519,0.430142370652985,0.430036206312827,0.430036206312827, +0.551547722979316,0.551547722979316,0.55148305104093,0.551281406225023,0.550984996714344,0.550644395242202,0.550311055385123,0.550037836401851,0.549878911282217,0.549878911282217, +0.689967847109135,0.689967847109135,0.689848922214379,0.689536018497778,0.689105997269793,0.688626818276981,0.688156906217934,0.687758153501949,0.687509988288769,0.687509988288769, +0.841486706878499,0.841486706878499,0.841333663486585,0.840847290021223,0.840236617260133,0.839584132393288,0.838939099915936,0.83835509748483,0.837932218914564,0.837932218914564, + +00:44:59, +0.181441611451948,0.181441611451948,0.181498458727158,0.181502500377967,0.181466165587011,0.181405856760364,0.181339563493864,0.18128418274822,0.181252878789344,0.181252878789344, +0.181441611451948,0.181441611451948,0.181498458727158,0.181502500377967,0.181466165587011,0.181405856760364,0.181339563493864,0.18128418274822,0.181252878789344,0.181252878789344, +0.206710750437648,0.206710750437648,0.206761544941046,0.206754721840843,0.20670419972156,0.206628390539319,0.206547551868409,0.206480832750981,0.206443296900744,0.206443296900744, +0.257152838622999,0.257152838622999,0.257190405579877,0.257160581621884,0.257080321844841,0.256972130769666,0.256860868166325,0.256770323733495,0.256719619330349,0.256719619330349, +0.332358018910389,0.332358018910389,0.332373219031265,0.332305836111621,0.3321776104719,0.332017406174939,0.33185709022836,0.331727712891465,0.331655253219197,0.331655253219197, +0.431237142368321,0.431237142368321,0.431218633752659,0.431095654856268,0.430897247299924,0.430661320186779,0.430428991409292,0.430241295256397,0.430135156510175,0.430135156510175, +0.551630052727846,0.551630052727846,0.551565389746994,0.551363789119027,0.551067448454619,0.550726927786927,0.550393667630891,0.55012051397702,0.549961626687157,0.549961626687157, +0.690027339468547,0.690027339468547,0.689908435626777,0.689595599459597,0.68916567478923,0.688686605228495,0.688216801044071,0.687818139525009,0.687570030483604,0.687570030483604, +0.841517988681231,0.841517988681231,0.841364976725748,0.840878704932629,0.840268162026462,0.839615817261028,0.838970923544688,0.838387046002569,0.837964256662931,0.837964256662931, + +00:45:00, +0.18155794258556,0.18155794258556,0.181614792726234,0.181618841580928,0.181582517011621,0.181522219684962,0.181455937292583,0.181400565000029,0.181369265660732,0.181369265660732, +0.18155794258556,0.18155794258556,0.181614792726234,0.181618841580928,0.181582517011621,0.181522219684962,0.181455937292583,0.181400565000029,0.181369265660732,0.181369265660732, +0.206826605121215,0.206826605121215,0.206877400844893,0.206870585950984,0.206820077044099,0.20674428346949,0.206663459933328,0.206596752754359,0.206559223481286,0.206559223481286, +0.257266735330118,0.257266735330118,0.257304301362996,0.257274488438836,0.257194248405745,0.257086081499921,0.256974842773282,0.256884317399338,0.256833623574585,0.256833623574585, +0.332466787075688,0.332466787075688,0.332481985570191,0.332414619702953,0.332286424753174,0.332126258154495,0.33196597963096,0.331836632361783,0.331764189487965,0.331764189487965, +0.431335804417015,0.431335804417015,0.43131729700718,0.431194345825421,0.430995985156828,0.430760114626666,0.430527841870569,0.430340191018669,0.430234077855128,0.430234077855128, +0.551712352792548,0.551712352792548,0.551647698773447,0.551446142316485,0.551149870466361,0.550809430563239,0.550476250067791,0.550203161709676,0.55004431222998,0.55004431222998, +0.690086807292216,0.690086807292216,0.68996792449969,0.689655155850935,0.68922532768952,0.688746367503663,0.688276671136547,0.687878100765741,0.687630047866285,0.687630047866285, +0.841549256584634,0.841549256584634,0.841396276051771,0.840910105882236,0.840299692766665,0.839647488031917,0.839002733006057,0.838418980289716,0.837996280136277,0.837996280136277, + +00:45:01, +0.181674271522483,0.181674271522483,0.181731124517757,0.181735180574828,0.181698866232903,0.181638580416368,0.181572308909466,0.181516945079562,0.181485650365264,0.181485650365264, +0.181674271522483,0.181674271522483,0.181731124517757,0.181735180574828,0.181698866232903,0.181638580416368,0.181572308909466,0.181516945079562,0.181485650365264,0.181485650365264, +0.206942452969394,0.206942452969394,0.206993249906175,0.206986443217816,0.206935947527582,0.20686016956788,0.206779361174544,0.206712665940797,0.206675143248706,0.206675143248706, +0.25738061743111,0.25738061743111,0.257418182538717,0.257388380648117,0.257308160359539,0.257200017624168,0.25708880277547,0.256998296461415,0.256947613215591,0.256947613215591, +0.332575532342532,0.332575532342532,0.332590729214998,0.332523380398334,0.332395216132112,0.332235087222766,0.332074846112854,0.331945528903535,0.331873102823668,0.331873102823668, +0.431434437731084,0.431434437731084,0.431415931533918,0.431293008059695,0.431094694261531,0.430858880291412,0.430626663533014,0.430439057962477,0.430332970370366,0.430332970370366, +0.551794623201332,0.551794623201332,0.551729978148186,0.551528465845303,0.5512322627775,0.550891903599101,0.550558802723818,0.550285779627843,0.550126967938726,0.550126967938726, +0.690146250605288,0.690146250605288,0.690027388858262,0.689714687696962,0.689284955995881,0.68880610512776,0.688336516520692,0.687938037249524,0.687690040462224,0.687690040462224, +0.841580510603565,0.841580510603565,0.841427561479525,0.840941492884963,0.840331209495732,0.839679144721021,0.839034528315182,0.838450900361479,0.838028289349859,0.838028289349859, + +00:45:02, +0.181790598241393,0.181790598241393,0.181847454080413,0.181851517338346,0.181815213229518,0.181754938933214,0.181688678323117,0.1816333229654,0.181602032881504,0.181602032881504, +0.181790598241393,0.181790598241393,0.181847454080413,0.181851517338346,0.181815213229518,0.181754938933214,0.181688678323117,0.1816333229654,0.181602032881504,0.181602032881504, +0.207058293967821,0.207058293967821,0.207109092110532,0.207102293626974,0.207051811157623,0.206976048820079,0.20689525557762,0.206828572295836,0.206791056188535,0.206791056188535, +0.257494484923636,0.257494484923636,0.257532049104699,0.257502258247375,0.257422057703857,0.257313939140021,0.257202748170482,0.257112260917302,0.257061588250936,0.257061588250936, +0.332684254722275,0.332684254722275,0.332699449977028,0.332632118209099,0.33250398462004,0.332343893391069,0.332183689685349,0.332054402528026,0.331981993237608,0.331981993237608, +0.431533042333158,0.431533042333158,0.431514537355487,0.431391641581703,0.431193374636651,0.430957617203644,0.430725456419264,0.430537896110467,0.430431834078543,0.430431834078543, +0.551876863982071,0.551876863982071,0.551812227899071,0.551610759733351,0.551314625415929,0.550974346922437,0.550641325626932,0.550368367759507,0.550209593841401,0.550209593841401, +0.690205669432873,0.690205669432873,0.690086828727604,0.689774195022815,0.689344559733497,0.688865818126025,0.688396337221803,0.687997949001707,0.687750008296797,0.687750008296797, +0.84161175075286,0.84161175075286,0.841458833023857,0.84097286595571,0.840362712228628,0.83971078734338,0.839066309487182,0.838482806233044,0.838060284318908,0.838060284318908, + +00:45:03, +0.181906922720994,0.181906922720994,0.181963781392921,0.181967851850196,0.181931557980159,0.181871295214164,0.18180504551217,0.181749698636154,0.181718413188052,0.181718413188052, +0.181906922720994,0.181906922720994,0.181963781392921,0.181967851850196,0.181931557980159,0.181871295214164,0.18180504551217,0.181749698636154,0.181718413188052,0.181718413188052, +0.207174128102154,0.207174128102154,0.207224927443631,0.207218137164117,0.20716766791986,0.2070919212117,0.207011143128141,0.206944471805043,0.206906962286325,0.206906962286325, +0.257608337805365,0.257608337805365,0.257645901058609,0.257616121234268,0.257535940436341,0.257427846045099,0.257316678955921,0.257226210764587,0.257175548678199,0.257175548678199, +0.332792954226259,0.332792954226259,0.332808147867615,0.33274083314657,0.33261273022827,0.332452676670709,0.332292510359744,0.332163253246549,0.332090860741074,0.332090860741074, +0.431631618245842,0.431631618245842,0.431613114494478,0.431490246414029,0.431292026304777,0.431056325385959,0.430824220551928,0.430636705485258,0.430530669002284,0.430530669002284, +0.551959075162602,0.551959075162602,0.551894448053926,0.551693024008461,0.551396958409504,0.551056760561137,0.550723818805053,0.550450926132621,0.550292189965972,0.550292189965972, +0.690265063800049,0.690265063800049,0.690146244132789,0.689833677853597,0.689404138927516,0.688925506523663,0.688456133265144,0.688057836047601,0.687809951395347,0.687809951395347, +0.841642977047333,0.841642977047333,0.841490090699596,0.841004225109354,0.8403942009803,0.839742415914016,0.839098076537152,0.838514697919574,0.838092265058638,0.838092265058638, + +00:45:04, +0.182023244940027,0.182023244940027,0.182080106434031,0.182084184089121,0.18204790046355,0.181987649237915,0.181921410455294,0.181866072070469,0.181834791263539,0.181834791263539, +0.182023244940027,0.182023244940027,0.182080106434031,0.182084184089121,0.18204790046355,0.181987649237915,0.181921410455294,0.181866072070469,0.181834791263539,0.181834791263539, +0.207289955358077,0.207289955358077,0.20734075589116,0.207333973814923,0.207283517799956,0.207207786728378,0.20712702381172,0.207060364454006,0.207022861527655,0.207022861527655, +0.257722176073974,0.257722176073974,0.257759738398122,0.257729969606461,0.257649808554637,0.257541738337033,0.257430595129395,0.257340146000864,0.257289494494966,0.257289494494966, +0.332901630865817,0.332901630865817,0.332916822898079,0.33284952522206,0.332721452968105,0.332561437072979,0.332401308147327,0.332272081070386,0.332199705345346,0.332199705345346, +0.431730165491712,0.431730165491712,0.431711662973452,0.431588822579232,0.43139064928847,0.431155004860929,0.430922955953588,0.430735486109441,0.430629475164184,0.430629475164184, +0.552041256770724,0.552041256770724,0.551976638640538,0.551775258698427,0.551479261786045,0.551139144543051,0.550806282286067,0.550533454775096,0.55037475634037,0.55037475634037, +0.690324433731858,0.690324433731858,0.690205635098858,0.689893136214374,0.689463693603054,0.688985170345846,0.688515904675942,0.688117698412482,0.687869869783182,0.687869869783182, +0.841674189501779,0.841674189501779,0.841521334521547,0.841035570360754,0.840425675765674,0.83977403044793,0.839129829480168,0.838546575436213,0.83812423158424,0.83812423158424, + +00:45:05, +0.182139564877261,0.182139564877261,0.182196429182524,0.182200514033897,0.182164240658446,0.182104000983195,0.182037773131188,0.18198244324702,0.181951167086626,0.181951167086626, +0.182139564877261,0.182139564877261,0.182196429182524,0.182200514033897,0.182164240658446,0.182104000983195,0.182037773131188,0.18198244324702,0.181951167086626,0.181951167086626, +0.207405775721293,0.207405775721293,0.20745657743883,0.207449803565098,0.207399360783594,0.207323645355774,0.207242897613988,0.207176250228337,0.207138753898124,0.207138753898124, +0.257835999727145,0.257835999727145,0.25787356112092,0.257843803361624,0.257763662056402,0.257655616013458,0.257544496688523,0.257454066623735,0.25740342569883,0.25740342569883, +0.333010284652269,0.333010284652269,0.33302547507973,0.332958194446867,0.332830152850836,0.332670174609164,0.332510083059372,0.332380886010807,0.332308527061693,0.332308527061693, +0.431828684093316,0.431828684093316,0.431810182814941,0.431687370099839,0.431489243610264,0.431253655651095,0.431021662646797,0.430834238005581,0.430728252586815,0.430728252586815, +0.5521234088342,0.5521234088342,0.552058799686658,0.551857463831011,0.551561535573334,0.551221498895994,0.550888716097823,0.550615953714811,0.550457292992488,0.550457292992488, +0.690383779253309,0.690383779253309,0.690265001650816,0.689952570130182,0.689523223785191,0.689044809617709,0.68857565147939,0.688177536121593,0.687929763485575,0.687929763485575, +0.841705388130969,0.841705388130969,0.841552564504497,0.841066901724746,0.840457136599653,0.839805630960101,0.839161568331284,0.838578438798084,0.838156183910884,0.838156183910884, + +00:45:06, +0.182255882511499,0.182255882511499,0.182312749617216,0.182316841663332,0.182280578543637,0.182220350428766,0.182154133518584,0.182098812144515,0.182067540636009,0.182067540636009, +0.182255882511499,0.182255882511499,0.182312749617216,0.182316841663332,0.182280578543637,0.182220350428766,0.182154133518584,0.182098812144515,0.182067540636009,0.182067540636009, +0.207521589177531,0.207521589177531,0.207572392072377,0.207565626400367,0.207515196856483,0.207439497079569,0.207358764520602,0.207292129113672,0.207254639383356,0.207254639383356, +0.257949808762571,0.257949808762571,0.257987369224692,0.257957622497439,0.257877500939299,0.257769479072019,0.257658383630929,0.257567972630809,0.257517342287392,0.257517342287392, +0.333118915596923,0.333118915596923,0.333134104423868,0.333066840832283,0.332938829887744,0.332778889290534,0.332618835107145,0.332489668079073,0.332417325901372,0.332417325901372, +0.431927174073175,0.431927174073175,0.431908674041451,0.431785888998354,0.431587809292665,0.431352277778973,0.431120340654082,0.430932961196212,0.430827001292718,0.430827001292718, +0.552205531380757,0.552205531380757,0.552140931219999,0.551939639433933,0.551643779799117,0.551303823647743,0.550971120268131,0.550698422979605,0.550539799950185,0.550539799950185, +0.690443100389374,0.690443100389374,0.690324343813637,0.690011979626018,0.689582729498972,0.689104424364354,0.688635373700648,0.688237349200143,0.687989632527764,0.687989632527764, +0.841736572949658,0.841736572949658,0.841583780663212,0.841098219216145,0.840488583497121,0.839837217465486,0.839193293105535,0.838610288020288,0.838188122053719,0.838188122053719, + +00:45:07, +0.182372197821574,0.182372197821574,0.182429067716951,0.182433166956266,0.182396914097942,0.182336697553419,0.182270491596244,0.182215178741694,0.182183911890415,0.182183911890415, +0.182372197821574,0.182372197821574,0.182429067716951,0.182433166956266,0.182396914097942,0.182336697553419,0.182270491596244,0.182215178741694,0.182183911890415,0.182183911890415, +0.207637395712542,0.207637395712542,0.207688199777559,0.207681442306482,0.207631026004354,0.207555341885469,0.207474624517242,0.20740800109567,0.207370517968999,0.207370517968999, +0.258063603177951,0.258063603177951,0.258101162707135,0.258071427011592,0.257991325201,0.257883327510366,0.257772255954244,0.257681864019704,0.257631244258261,0.257631244258261, +0.333227523711078,0.333227523711078,0.333242710941779,0.333175464389584,0.333047484090098,0.332887581128351,0.332727564301899,0.332598427286432,0.332526101875629,0.332526101875629, +0.432025635453782,0.432025635453782,0.43200713667546,0.431884379297249,0.43168634635815,0.43145087126705,0.43121898999794,0.431031655703843,0.430925721304408,0.430925721304408, +0.552287624438084,0.552287624438084,0.552223033268239,0.552021785534879,0.551725994491104,0.551386118826041,0.551053494824767,0.550780862597283,0.55062227724128,0.55062227724128, +0.690502397164994,0.690502397164994,0.690383661612256,0.690071364726848,0.689642210769409,0.68916401461085,0.688695071364839,0.688297137673304,0.688049476934952,0.688049476934952, +0.841767743972576,0.841767743972576,0.841614983012437,0.841129522849747,0.840520016472941,0.839868789979024,0.839225003817931,0.838642123117903,0.838220046027871,0.838220046027871, + +00:45:08, +0.182488510786352,0.182488510786352,0.182545383460608,0.18254948989157,0.182513247300213,0.182453042335979,0.182386847342966,0.18233154301733,0.182300280828602,0.182300280828602, +0.182488510786352,0.182488510786352,0.182545383460608,0.18254948989157,0.182513247300213,0.182453042335979,0.182386847342966,0.18233154301733,0.182300280828602,0.182300280828602, +0.2077531953121,0.2077531953121,0.207804000540156,0.207797251269215,0.20774684821296,0.207671179759204,0.207590477589611,0.207523866160012,0.207486389640722,0.207486389640722, +0.25817738297099,0.25817738297099,0.258214941565955,0.258185216901778,0.258105134839182,0.257997161326159,0.25788611365611,0.257795740788045,0.257745131609054,0.257745131609054, +0.33333610900602,0.33333610900602,0.333351294644742,0.333284065130038,0.333156115469156,0.332996250133864,0.332836270654878,0.332707163644123,0.332634854995699,0.332634854995699, +0.432124068257601,0.432124068257601,0.432105570739418,0.431982841018971,0.431784854829172,0.431549436137786,0.431317610700843,0.431130321550955,0.43102441264437,0.43102441264437, +0.552369688033834,0.552369688033834,0.552305105859018,0.5521039021615,0.551808179676967,0.551468384458592,0.551135839795468,0.550863272595611,0.550704724893558,0.550704724893558, +0.690561669605074,0.690561669605074,0.690442955071577,0.690130725457602,0.689701667621478,0.689223580382228,0.688754744497054,0.688356901566216,0.68810929673231,0.68810929673231, +0.841798901214435,0.841798901214435,0.841646171566895,0.841160812640326,0.840551435541954,0.83990034851563,0.839256700483464,0.838673944105989,0.838251955848448,0.838251955848448, + +00:45:09, +0.182604821384731,0.182604821384731,0.182661696827096,0.182665810448148,0.182629578129333,0.182569384755301,0.182503200737576,0.182447904950225,0.182416647429361,0.182416647429361, +0.182604821384731,0.182604821384731,0.182661696827096,0.182665810448148,0.182629578129333,0.182569384755301,0.182503200737576,0.182447904950225,0.182416647429361,0.182416647429361, +0.207868987962003,0.207868987962003,0.207919794345972,0.207913053274362,0.207862663468078,0.207787010686524,0.207706323723435,0.207639724292404,0.207602254384219,0.207602254384219, +0.258291148139402,0.258291148139402,0.258328705798864,0.258298992165699,0.258218929851533,0.258110980517065,0.257999956734174,0.257909602933463,0.257859004337396,0.257859004337396, +0.333444671493025,0.333444671493025,0.33345985554402,0.333392643064901,0.333264724036165,0.333104896318313,0.332944954177313,0.332815877163371,0.332743585272806,0.332743585272806, +0.432222472507071,0.432222472507071,0.432203976255748,0.43208127418594,0.431883334728151,0.431647972413614,0.431416202785234,0.431228958760001,0.431123075335064,0.431123075335064, +0.552451722195624,0.552451722195624,0.55238714901994,0.552185989341407,0.551890335384344,0.551550620573065,0.551218155207938,0.550945653002318,0.550787142934766,0.550787142934766, +0.690620917734485,0.690620917734485,0.69050222421647,0.690190061843177,0.689761100080124,0.689283121703488,0.688814393122347,0.688416640903982,0.688169091944972,0.688169091944972, +0.841830044689926,0.841830044689926,0.84167734634129,0.841192088602636,0.840582840718981,0.8399318930902,0.839288383117106,0.838705750999584,0.838283851530535,0.838283851530535, + +00:45:10, +0.18272112959564,0.18272112959564,0.182778007795355,0.182782128604934,0.182745906564218,0.182685724790274,0.182619551758932,0.182564264519216,0.182533011671514,0.182533011671514, +0.18272112959564,0.18272112959564,0.182778007795355,0.182782128604934,0.182745906564218,0.182685724790274,0.182619551758932,0.182564264519216,0.182533011671514,0.182533011671514, +0.207984773648071,0.207984773648071,0.208035581180835,0.208028848307742,0.20797847175551,0.207902834653206,0.207822162904463,0.207755575478573,0.207718112185207,0.207718112185207, +0.25840489868091,0.25840489868091,0.25844245540358,0.258412752801064,0.258332710235744,0.258224785080758,0.258113785186092,0.2580234504536,0.257972862440917,0.257972862440917, +0.333553211183357,0.333553211183357,0.333568393650868,0.333501198205418,0.33337330980236,0.333213519692924,0.333053614880425,0.332924567855393,0.332852292718165,0.332852292718165, +0.432320848224601,0.432320848224601,0.432302353246845,0.432179678820546,0.431981786077486,0.431746480116938,0.431514766273529,0.431327567353407,0.431221709398923,0.431221709398923, +0.552533726951034,0.552533726951034,0.552469162778572,0.552268047102178,0.551972461640834,0.551632827197091,0.55130044108984,0.551028003845101,0.550869531392615,0.550869531392615, +0.690680141578065,0.690680141578065,0.690561469071769,0.690249373908436,0.689820508170254,0.689342638599595,0.688874017265742,0.688476355711674,0.688228862598038,0.688228862598038, +0.841861174413719,0.841861174413719,0.841708507350305,0.84122335075141,0.840614232018823,0.83996342371761,0.839320051733804,0.838737543813703,0.838315733089195,0.838315733089195, + +00:45:11, +0.182837435398041,0.182837435398041,0.182894316344358,0.182898444340896,0.182862232583815,0.182802062419816,0.182735900385927,0.182680621703171,0.182649373533916,0.182649373533916, +0.182837435398041,0.182837435398041,0.182894316344358,0.182898444340896,0.182862232583815,0.182802062419816,0.182735900385927,0.182680621703171,0.182649373533916,0.182649373533916, +0.208100552356147,0.208100552356147,0.208151361030594,0.208144636355198,0.208094273061078,0.208018651645047,0.207937995118468,0.207871419704273,0.207833963029425,0.207833963029425, +0.25851863459324,0.25851863459324,0.258556190377831,0.258526498805592,0.258446475989519,0.25833857501492,0.258227599009525,0.258137283346104,0.258086705917258,0.258086705917258, +0.333661728088271,0.333661728088271,0.333676908976529,0.333609730562822,0.333481872778967,0.333322120268915,0.333162252775424,0.333033235731393,0.332960977342977,0.332960977342977, +0.432419195432574,0.432419195432574,0.432400701735076,0.432278054945153,0.432080208899543,0.431844959270136,0.431613301188115,0.43142614735357,0.431320314858349,0.431320314858349, +0.552615702327608,0.552615702327608,0.552551147162447,0.552350075471351,0.552054558474001,0.551715004358265,0.551382697468805,0.551110325151615,0.550951890294779,0.550951890294779, +0.690739341160615,0.690739341160615,0.690620689662276,0.690308661678206,0.689879891916742,0.689402131095478,0.688933616952224,0.688536046014327,0.688288608716574,0.688288608716574, +0.841892290400462,0.841892290400462,0.841739654608602,0.84125459910136,0.84064560945626,0.839994940412712,0.839351706348487,0.838769322563344,0.838347600539472,0.838347600539472, + +00:45:12, +0.182953738770925,0.182953738770925,0.18301062245311,0.183014757635031,0.182978556167102,0.182918397622881,0.182852246597483,0.182796976480987,0.182765732995454,0.182765732995454, +0.182953738770925,0.182953738770925,0.18301062245311,0.183014757635031,0.182978556167102,0.182918397622881,0.182852246597483,0.182796976480987,0.182765732995454,0.182765732995454, +0.208216324072098,0.208216324072098,0.208267133881122,0.208260417402595,0.208210067370629,0.208134461647868,0.208053820351245,0.207987256955276,0.207949806902636,0.207949806902636, +0.258632355874131,0.258632355874131,0.258669910719351,0.258640230177006,0.258560227110564,0.258452350317239,0.258341398202145,0.258251101608629,0.258200534764066,0.258200534764066, +0.333770222219007,0.333770222219007,0.333785401532236,0.333718240148335,0.333590412977199,0.333430698057491,0.333270867873507,0.333141880802566,0.333069639158433,0.333069639158433, +0.432517514153344,0.432517514153344,0.432499021742782,0.432376402582098,0.432178603216663,0.431943409895557,0.431711807551354,0.431524698782862,0.431418891735719,0.431418891735719, +0.552697648352853,0.552697648352853,0.55263310219906,0.552432074476432,0.552136625911372,0.551797152084147,0.551464924372423,0.551192616949481,0.551034219668897,0.551034219668897, +0.690798516506906,0.690798516506906,0.690679886012757,0.690367925177283,0.689939251344431,0.689461599216034,0.688993192206747,0.688595711836943,0.688348330325613,0.688348330325613, +0.841923392664786,0.841923392664786,0.841770788130824,0.841285833667178,0.840676973046049,0.84002644319034,0.839383346976064,0.83880108726348,0.838379453896388,0.838379453896388, + +00:45:13, +0.183070039693318,0.183070039693318,0.183126926100647,0.183131068466369,0.183094877293089,0.183034730378449,0.182968590372553,0.182913328831597,0.182882090035043,0.182882090035043, +0.183070039693318,0.183070039693318,0.183126926100647,0.183131068466369,0.183094877293089,0.183034730378449,0.182968590372553,0.182913328831597,0.182882090035043,0.182882090035043, +0.208332088781813,0.208332088781813,0.208382899718316,0.20837619143582,0.208325854670031,0.208250264647514,0.208169638588612,0.208103087217381,0.208065643790627,0.208065643790627, +0.258746062521324,0.258746062521324,0.258783616425882,0.258753946913038,0.258673963596597,0.258566110985414,0.25845518276163,0.258364905238838,0.258314348978995,0.258314348978995, +0.333878693586797,0.333878693586797,0.333893871329209,0.33382672697317,0.333698930408259,0.333539253069846,0.333379460185864,0.333250503080095,0.333178278175714,0.333178278175714, +0.432615804409239,0.432615804409239,0.432597313292276,0.432474721753689,0.432276969051159,0.432041832015523,0.431810285385579,0.431623221663626,0.431517440053384,0.431517440053384, +0.552779565054241,0.552779565054241,0.552715027915868,0.552514044144886,0.552218663980438,0.551879270402259,0.551547121828253,0.551274879266285,0.551116519542569,0.551116519542569, +0.690857667641673,0.690857667641673,0.690739058147946,0.690427164430425,0.689998586478126,0.689521042986125,0.689052743054229,0.688655353204488,0.688408027450152,0.688408027450152, +0.841954481221299,0.841954481221299,0.841801907931591,0.841317054463536,0.84070832280293,0.840057932065307,0.83941497363142,0.838832837929065,0.838411293174944,0.838411293174944, + +00:45:14, +0.183186338144273,0.183186338144273,0.183243227266035,0.183247376813972,0.18321119594082,0.183151060665536,0.183084931690124,0.183029678733963,0.182998444631636,0.182998444631636, +0.183186338144273,0.183186338144273,0.183243227266035,0.183247376813972,0.18321119594082,0.183151060665536,0.183084931690124,0.183029678733963,0.182998444631636,0.182998444631636, +0.208447846471203,0.208447846471203,0.208498658528093,0.208491958440784,0.208441634945177,0.208366060629851,0.208285449816412,0.208218910476408,0.208181473679207,0.208181473679207, +0.258859754532572,0.258859754532572,0.258897307495174,0.258867649011429,0.25878768544534,0.258679857017148,0.258568952685664,0.258478694234403,0.258428148559709,0.258428148559709, +0.333987142202862,0.333987142202862,0.334002318378658,0.333935191048527,0.333807425083339,0.333647785317164,0.333488029723671,0.33335910257515,0.33328689440599,0.33328689440599, +0.43271406622256,0.43271406622256,0.432695576405841,0.432573012482207,0.432375306425317,0.432140225652331,0.431908734713096,0.431721716018178,0.431615959833665,0.431615959833665, +0.552861452459207,0.552861452459207,0.552796924340295,0.552595984504146,0.552300672708654,0.551961359340089,0.551629289863812,0.551357112129574,0.551198789943362,0.551198789943362, +0.690916794589616,0.690916794589616,0.690798206092541,0.69048637946236,0.6900578973426,0.689580462430579,0.689112269519554,0.688714970141897,0.688467700115154,0.688467700115154, +0.841985556084589,0.841985556084589,0.841833014025505,0.841348261505084,0.840739658741621,0.840089407052403,0.839446586329423,0.838864574575033,0.83844311839012,0.83844311839012, + +00:45:15, +0.18330263410288,0.18330263410288,0.183359525928374,0.183363682656932,0.183327512089366,0.183267388463188,0.183201270529215,0.183146026167079,0.183114796764212,0.183114796764212, +0.18330263410288,0.18330263410288,0.183359525928374,0.183363682656932,0.183327512089366,0.183267388463188,0.183201270529215,0.183146026167079,0.183114796764212,0.183114796764212, +0.208563597126204,0.208563597126204,0.208614410296396,0.208607718403422,0.208557408181981,0.20848184958077,0.208401254020507,0.208334726718201,0.208297296554207,0.208297296554207, +0.258973431905633,0.258973431905633,0.259010983924984,0.258981336469925,0.258901392654526,0.258793588410153,0.258682707971942,0.258592468593002,0.258541933503877,0.258541933503877, +0.334095568078409,0.334095568078409,0.334110742691782,0.334043632385596,0.333915897013619,0.333756294810619,0.333596576498094,0.333467679298894,0.33339548786042,0.33339548786042, +0.432812299615577,0.432812299615577,0.432793811105737,0.432671274789907,0.432473615361396,0.432238590828246,0.432007155556185,0.431820181868806,0.431714451098856,0.431714451098856, +0.552943310595148,0.552943310595148,0.552878791499727,0.552677895581606,0.552382652123438,0.552043418925085,0.551711428506585,0.551439315566861,0.551281030898804,0.551281030898804, +0.690975897375403,0.690975897375403,0.690857329871208,0.69054557029778,0.690117183962591,0.68963985757419,0.689171771627574,0.688774562674068,0.688527348345549,0.688527348345549, +0.842016617269224,0.842016617269224,0.841864106427146,0.841379454806453,0.840770980876817,0.840120868166401,0.839478185084916,0.838896297216295,0.838474929556875,0.838474929556875, + +00:45:16, +0.183418927548256,0.183418927548256,0.183475822066794,0.183479985974374,0.183443825717832,0.183383713750482,0.183317606868873,0.183262371109971,0.183231146411784,0.183231146411784, +0.183418927548256,0.183418927548256,0.183475822066794,0.183479985974374,0.183443825717832,0.183383713750482,0.183317606868873,0.183262371109971,0.183231146411784,0.183231146411784, +0.208679340732773,0.208679340732773,0.208730155009189,0.208723471309689,0.208673174366382,0.208597631486183,0.208517051186787,0.208450535928627,0.208413112401483,0.208413112401483, +0.259087094638272,0.259087094638272,0.259124645713075,0.25909500928628,0.259015085221891,0.258907305162149,0.258796448618164,0.25870622831232,0.258655703809176,0.258655703809176, +0.334203971224637,0.334203971224637,0.334219144279768,0.334152050995554,0.334024346210269,0.33386478156137,0.333705100520287,0.333576233262476,0.33350405855015,0.33350405855015, +0.432910504610538,0.432910504610538,0.432892017414193,0.432769508699016,0.432571895881626,0.432336927565511,0.432105547937095,0.431918619237771,0.431812913871225,0.431812913871225, +0.553025139489429,0.553025139489429,0.552960629421514,0.552759777404626,0.552464602252173,0.552125449184663,0.55179353778402,0.551521489605622,0.551363242436388,0.551363242436388, +0.691034976023667,0.691034976023667,0.690916429508578,0.690604736961345,0.690176446362804,0.689699228441719,0.689231249403105,0.688834130825866,0.688586972166232,0.688586972166232, +0.84204766478975,0.84204766478975,0.841895185151074,0.841410634382253,0.840802289223196,0.840152315422051,0.839509769912725,0.838928005867742,0.838506726690148,0.838506726690148, + +00:45:17, +0.183535218459552,0.183535218459552,0.183592115660457,0.183596286745454,0.183560136805356,0.183500036506528,0.183433940688179,0.183378713541697,0.183347493553398,0.183347493553398, +0.183535218459552,0.183535218459552,0.183592115660457,0.183596286745454,0.183560136805356,0.183500036506528,0.183433940688179,0.183378713541697,0.183347493553398,0.183347493553398, +0.208795077276891,0.208795077276891,0.208845892652458,0.208839217145566,0.20878893348434,0.208713406332026,0.20863284130116,0.208566338093575,0.208528921206913,0.208528921206913, +0.259200742728262,0.259200742728262,0.259238292857218,0.259208667458256,0.259128763145183,0.259021007270862,0.258910174622037,0.25881997339005,0.258769459473292,0.258769459473292, +0.334312351652733,0.334312351652733,0.334327523153794,0.334260446889569,0.334132772684448,0.33397324558057,0.333813601801394,0.333684764477036,0.333612606486317,0.333612606486317, +0.433008681229659,0.433008681229659,0.432990195353412,0.432867714231732,0.432670148008212,0.432435235886337,0.432203911878052,0.432017028147309,0.431911348173011,0.431911348173011, +0.553106939169375,0.553106939169375,0.55304243813297,0.552841630000527,0.552546523122206,0.552207450146201,0.551875617723527,0.551603634273296,0.551445424583571,0.551445424583571, +0.691094030559009,0.691094030559009,0.69097550502925,0.690663879477678,0.690235684567911,0.689758575057892,0.68929070287093,0.688893674622123,0.688646571602063,0.688646571602063, +0.842078698660696,0.842078698660696,0.841926250211829,0.841441800247072,0.840833583795415,0.840183748834082,0.839541340827653,0.838959700544245,0.838538509804856,0.838538509804856, + +00:45:18, +0.183651506815949,0.183651506815949,0.183708406688556,0.183712584949358,0.183676445331105,0.183616356710466,0.183550271966247,0.183495053441346,0.183463838168129,0.183463838168129, +0.183651506815949,0.183651506815949,0.183708406688556,0.183712584949358,0.183676445331105,0.183616356710466,0.183550271966247,0.183495053441346,0.183463838168129,0.183463838168129, +0.208910806744561,0.208910806744561,0.208961623212214,0.208954955897054,0.208904685521838,0.208829174104257,0.20874862434956,0.208682133198958,0.208644722956398,0.208644722956398, +0.259314376173385,0.259314376173385,0.259351925355193,0.259322310983622,0.259242426422154,0.259134694734027,0.259023885981279,0.258933703823894,0.258883200493917,0.258883200493917, +0.334420709373872,0.334420709373872,0.334435879325024,0.334368820078797,0.334241176447302,0.334081686879357,0.333922080352549,0.333793272953702,0.333721131680048,0.333721131680048, +0.433106829495131,0.433106829495131,0.433088344945571,0.432965891410229,0.432768371763329,0.43253351581291,0.432302247401252,0.432115408619625,0.432009754026429,0.432009754026429, +0.553188709662276,0.553188709662276,0.553124217661375,0.552923453396598,0.552628414760846,0.552289421837039,0.551957668352483,0.551685749597286,0.551527577367773,0.551527577367773, +0.691153061005995,0.691153061005995,0.691034556457787,0.690722997871371,0.690294898602548,0.689817897447402,0.689350132055796,0.688953194087636,0.68870614667787,0.68870614667787, +0.842109718896568,0.842109718896568,0.84195730162393,0.84147295241548,0.840864864608107,0.840215168417204,0.839572897844484,0.838991381260654,0.838570278915896,0.838570278915896, + +00:45:19, +0.183767792596659,0.183767792596659,0.183824695130315,0.183828880565306,0.183792751274278,0.183732674341468,0.183666600682219,0.183611390788038,0.183580180235085,0.183580180235085, +0.183767792596659,0.183767792596659,0.183824695130315,0.183828880565306,0.183792751274278,0.183732674341468,0.183666600682219,0.183611390788038,0.183580180235085,0.183580180235085, +0.209026529121809,0.209026529121809,0.209077346674489,0.209070687550178,0.209020430464883,0.208944934788859,0.208864400317943,0.208797921230711,0.208760517635862,0.208760517635862, +0.259427994971427,0.259427994971427,0.259465543204786,0.259435939860155,0.259356075050565,0.259248367549385,0.25913758269361,0.259047419611559,0.258996926868752,0.258996926868752, +0.334529044399219,0.334529044399219,0.334544212804614,0.334477170574384,0.334349557509969,0.334190105468861,0.334030536184873,0.33390175870359,0.333829634142457,0.333829634142457, +0.433204949429118,0.433204949429118,0.433186466212818,0.43306404025665,0.432866567169128,0.43263176736739,0.432400554528864,0.432213760676899,0.432108131453662,0.432108131453662, +0.553270450995388,0.553270450995388,0.553205968033968,0.553005247620089,0.552710277195368,0.552371364284485,0.552039689698225,0.551767835604961,0.551609700816378,0.551609700816378, +0.691212067389156,0.691212067389156,0.69109358381872,0.690782092166982,0.690354088491319,0.689877195634906,0.68940953698242,0.689012689247167,0.688765697418446,0.688765697418446, +0.842140725511852,0.842140725511852,0.841988339401877,0.841504090902027,0.84089613167589,0.840246574186105,0.839604440977979,0.839023048031797,0.838602034038143,0.838602034038143, + +00:45:20, +0.183884075780928,0.183884075780928,0.183940980964991,0.183945173572547,0.183909054614105,0.183848989378738,0.18378292681527,0.183727725560926,0.183696519733404,0.183696519733404, +0.183884075780928,0.183884075780928,0.183940980964991,0.183945173572547,0.183909054614105,0.183848989378738,0.18378292681527,0.183727725560926,0.183696519733404,0.183696519733404, +0.209142244394684,0.209142244394684,0.209193063025338,0.209186412090985,0.209136168299504,0.209060688371836,0.208980169192288,0.208913702174793,0.208876305231251,0.208876305231251, +0.259541599120185,0.259541599120185,0.25957914640379,0.259549554085638,0.259469709028184,0.259362025714685,0.259251264756763,0.259161120750762,0.259110638595505,0.259110638595505, +0.334637356739927,0.334637356739927,0.334652523603707,0.334585498387464,0.334457915883575,0.334298501360198,0.334138969309478,0.334010221737808,0.333938113884648,0.333938113884648, +0.433303041053754,0.433303041053754,0.433284559177274,0.433162160793114,0.432964734247731,0.432729990571908,0.432498833283032,0.432312084341283,0.432206480476871,0.432206480476871, +0.553352163195929,0.553352163195929,0.553287689277958,0.553087012698214,0.552792110453011,0.552453277515808,0.552121681788057,0.551849892323653,0.551691794956735,0.551691794956735, +0.691271049732992,0.691271049732992,0.691152587136546,0.690841162389034,0.690413254258793,0.68993646964503,0.689468917675482,0.689072160125446,0.688825223848551,0.688825223848551, +0.842171718521014,0.842171718521014,0.842019363560149,0.841535215721239,0.840927385013356,0.840277966155453,0.839635970242881,0.839054700872483,0.838633775186454,0.838633775186454, + +00:45:21, +0.184000356348031,0.184000356348031,0.184057264171869,0.184061463950361,0.184025355329848,0.18396530180151,0.183899250344608,0.183844057739192,0.183812856642258,0.183812856642258, +0.184000356348031,0.184000356348031,0.184057264171869,0.184061463950361,0.184025355329848,0.18396530180151,0.183899250344608,0.183844057739192,0.183812856642258,0.183812856642258, +0.209257952549257,0.209257952549257,0.20930877225084,0.209302129505547,0.209251899011752,0.209176434839213,0.209095930958597,0.209029476017183,0.208992085728535,0.208992085728535, +0.25965518861746,0.25965518861746,0.259692734950007,0.259663153657863,0.259583328352787,0.259475669227685,0.259364932168475,0.259274807239226,0.259224335671889,0.259224335671889, +0.334745646407138,0.334745646407138,0.334760811733435,0.33469380352916,0.334566251579234,0.334406874564477,0.334247379737464,0.334118662067452,0.334046570917715,0.334046570917715, +0.43340110439115,0.43340110439115,0.433382623861034,0.433260253041711,0.433062873021232,0.432828185448567,0.432597083685871,0.432410379634903,0.432304801118185,0.432304801118185, +0.553433846291081,0.553433846291081,0.553369381420515,0.553168748658154,0.552873914560976,0.552535161558243,0.552203644649247,0.551931919780655,0.551773859816157,0.551773859816157, +0.691330008061969,0.691330008061969,0.691211566435728,0.690900208562019,0.690472395929508,0.689995719502366,0.68952827415963,0.689131606747169,0.688884725992909,0.688884725992909, +0.842202697938501,0.842202697938501,0.842050374113204,0.841566326887625,0.840958624635082,0.840309344339897,0.839667485653911,0.839086339797499,0.838665502375661,0.838665502375661, + +00:45:22, +0.184116634277274,0.184116634277274,0.184173544730269,0.184177751678063,0.1841416534008,0.184081611589051,0.18401557124947,0.183960387302052,0.183929190940848,0.183929190940848, +0.184116634277274,0.184116634277274,0.184173544730269,0.184177751678063,0.1841416534008,0.184081611589051,0.18401557124947,0.183960387302052,0.183929190940848,0.183929190940848, +0.209373653571622,0.209373653571622,0.209424474337095,0.209417839779955,0.209367622587702,0.209292174177041,0.209211685602894,0.209145242743888,0.209107859113707,0.209107859113707, +0.259768763461062,0.259768763461062,0.259806308841243,0.259776738574627,0.259696933022156,0.259589298086148,0.259478584926492,0.259388479074682,0.259338018095629,0.259338018095629, +0.334853913411986,0.334853913411986,0.334869077204919,0.334802086010585,0.33467456460805,0.334515225092792,0.33435576747992,0.334227079703605,0.33415500525274,0.33415500525274, +0.433499139463386,0.433499139463386,0.433480660286164,0.433358317024504,0.433160983511699,0.432926352019446,0.432695305759469,0.432508646579858,0.432403093399709,0.432403093399709, +0.553515500307992,0.553515500307992,0.553451044488772,0.553250455527051,0.552955689546432,0.552617016438987,0.552285578309026,0.552013918003229,0.551855895421919,0.551855895421919, +0.691388942400518,0.691388942400518,0.691270521740697,0.690959230710393,0.690531513527965,0.690054945231471,0.689587606459478,0.689191029136997,0.688944203876213,0.688944203876213, +0.842233663778739,0.842233663778739,0.84208137107548,0.841597424415674,0.84098985055562,0.840340708754063,0.83969898722577,0.839117964821612,0.838697215620579,0.838697215620579, + +00:45:23, +0.184232909547995,0.184232909547995,0.18428982261954,0.184294036734994,0.184257948806286,0.184197918720657,0.184131889509125,0.184076714228752,0.184045522608408,0.184045522608408, +0.184232909547995,0.184232909547995,0.18428982261954,0.184294036734994,0.184257948806286,0.184197918720657,0.184131889509125,0.184076714228752,0.184045522608408,0.184045522608408, +0.209489347447895,0.209489347447895,0.209540169270226,0.209533542900325,0.20948333901345,0.209407906371392,0.209327433111225,0.209261002340932,0.209223625372782,0.209223625372782, +0.259882323648809,0.259882323648809,0.259919868075315,0.259890308833738,0.259810523034081,0.259702912287844,0.259592223028566,0.259502136254867,0.259451685864454,0.259451685864454, +0.334962157765589,0.334962157765589,0.334977320029271,0.334910345842839,0.334782854981115,0.334623552956229,0.334464132547924,0.334335474657341,0.334263416900794,0.334263416900794, +0.433597146292518,0.433597146292518,0.433578668474704,0.43345635276353,0.433259065741174,0.433024490306594,0.432793499525886,0.432606885198217,0.432501357343521,0.432501357343521, +0.553597125273771,0.553597125273771,0.55353267850983,0.553332133332013,0.553037435436508,0.552698842185203,0.55236748279459,0.552095887018598,0.551937901801263,0.551937901801263, +0.691447852773037,0.691447852773037,0.691329453075848,0.691018228858579,0.690590607078633,0.69011414685687,0.689646914599604,0.68925042731956,0.689003657523121,0.689003657523121, +0.842264616056132,0.842264616056132,0.842112354461397,0.841628508319852,0.841021062789504,0.840372059412559,0.839730474973137,0.839149575959569,0.838728914936,0.838728914936, + +00:45:24, +0.184349182139563,0.184349182139563,0.184406097819062,0.18441031910053,0.18437424152566,0.184314223175657,0.184248205102873,0.184193038498569,0.184161851624201,0.184161851624201, +0.184349182139563,0.184349182139563,0.184406097819062,0.18441031910053,0.18437424152566,0.184314223175657,0.184248205102873,0.184193038498569,0.184161851624201,0.184161851624201, +0.209605034164216,0.209605034164216,0.209655857036378,0.209649238852795,0.209599048275115,0.209523631408361,0.209443173469661,0.209376754794365,0.209339384491797,0.209339384491797, +0.259995869178524,0.259995869178524,0.260033412650046,0.260003864433007,0.25992409838636,0.259816511830554,0.259705846472458,0.259615778777527,0.259565338976103,0.259565338976103, +0.335070379479057,0.335070379479057,0.33508554021759,0.335018583037014,0.334891122709512,0.334731858165862,0.334572474952545,0.334443846939724,0.334371805872938,0.334371805872938, +0.433695124900571,0.433695124900571,0.433676648448668,0.433554360280799,0.433357119731669,0.433122600332034,0.432891665007158,0.432705095512026,0.43259959297167,0.43259959297167, +0.553678721215496,0.553678721215496,0.55361428351075,0.553413782100111,0.5531191522583,0.552780638824019,0.552449358133098,0.55217782685395,0.552019878981394,0.552019878981394, +0.691506739203892,0.691506739203892,0.691388360465544,0.691077203030968,0.690649676605949,0.690173324403052,0.689706198604557,0.68930980131945,0.689063086958256,0.689063086958256, +0.842295554785066,0.842295554785066,0.842143324285351,0.841659578614607,0.841052261351248,0.84040339632997,0.839761948910673,0.839181173226095,0.838760600336698,0.838760600336698, + +00:45:25, +0.184465452031378,0.184465452031378,0.184522370308248,0.184526598754076,0.18449053153831,0.184430524933411,0.184364518010047,0.184309360090811,0.184278177967524,0.184278177967524, +0.184465452031378,0.184465452031378,0.184522370308248,0.184526598754076,0.18449053153831,0.184430524933411,0.184364518010047,0.184309360090811,0.184278177967524,0.184278177967524, +0.209720713706747,0.209720713706747,0.209771537621721,0.209764927623526,0.209714750358842,0.209639349274066,0.209558906664294,0.20949250009026,0.209455136456814,0.209455136456814, +0.260109400048039,0.260109400048039,0.260146942563264,0.260117405370256,0.260037659076798,0.259930096712063,0.259819455255935,0.259729406640417,0.259678977428319,0.259678977428319, +0.335178578563489,0.335178578563489,0.335193737780965,0.335126797604188,0.334999367804311,0.334840140732754,0.334680794704839,0.334552196561806,0.334480172180222,0.334480172180222, +0.433793075309548,0.433793075309548,0.43377460023004,0.433652339598292,0.433455145505173,0.433220682117762,0.432989802225292,0.432803277543302,0.43269780030618,0.43269780030618, +0.553760288160205,0.553760288160205,0.553695859518562,0.553495401858382,0.553200840038867,0.552862406382524,0.552531204351674,0.552259737536438,0.55210182698948,0.55210182698948, +0.691565601717415,0.691565601717415,0.691447243934117,0.691136153251916,0.690708722134315,0.690232477894475,0.689765458498848,0.689369151161229,0.68912249220621,0.68912249220621, +0.842326479979908,0.842326479979908,0.842174280561722,0.841690635314366,0.841083446255345,0.840434719520863,0.839793409053017,0.839212756635896,0.838792271837423,0.838792271837423, + +00:45:26, +0.184581719202872,0.184581719202872,0.184638640066538,0.184642875675069,0.184606818823653,0.184546823973309,0.184480828210008,0.18442567898482,0.184394501617705,0.184394501617705, +0.184581719202872,0.184581719202872,0.184638640066538,0.184642875675069,0.184606818823653,0.184546823973309,0.184480828210008,0.18442567898482,0.184394501617705,0.184394501617705, +0.20983638606167,0.20983638606167,0.209887211012444,0.209880609198701,0.209830445250792,0.209755059954647,0.209674632681239,0.20960823821471,0.209570881253916,0.209570881253916, +0.260222916255194,0.260222916255194,0.260260457812808,0.260230931643311,0.260151205103207,0.260043666930164,0.259933049376772,0.259843019841295,0.259792601218855,0.259792601218855, +0.335286755029973,0.335286755029973,0.335301912730472,0.33523498955543,0.335107590276572,0.334948400667957,0.334789091815851,0.334660523534627,0.334588515833684,0.334588515833684, +0.43389099754142,0.43389099754142,0.43387252384078,0.433750290737964,0.433553143083643,0.433318735685748,0.433087911202267,0.432901431314033,0.432795979369047,0.432795979369047, +0.553841826134902,0.553841826134902,0.553777406560256,0.553576992633827,0.553282498805235,0.552944144887774,0.552613021477407,0.552341619093178,0.552183745852655,0.552183745852655, +0.691624440337903,0.691624440337903,0.691506103505861,0.691195079545747,0.690767743688099,0.690291607355563,0.689824694306957,0.689428476869425,0.68918187329154,0.68918187329154, +0.842357391655001,0.842357391655001,0.842205223304867,0.841721678433537,0.841114617516267,0.840466028999784,0.839824855414788,0.839244326203656,0.838823929452908,0.838823929452908, + +00:45:27, +0.184697983633506,0.184697983633506,0.184754907073409,0.184759149842977,0.184723103361137,0.184663120274774,0.184597135682152,0.184541995159965,0.1845108225541,0.1845108225541, +0.184697983633506,0.184697983633506,0.184754907073409,0.184759149842977,0.184723103361137,0.184663120274774,0.184597135682152,0.184541995159965,0.1845108225541,0.1845108225541, +0.209952051215194,0.209952051215194,0.210002877194761,0.209996283564525,0.209946132937155,0.209870763436266,0.209790351506634,0.209723969153834,0.209686618869208,0.209686618869208, +0.260336417797834,0.260336417797834,0.260373958396522,0.260344443250008,0.260264736463405,0.260157222482658,0.260046628832752,0.25995661837793,0.259906210345472,0.259906210345472, +0.335394908889584,0.335394908889584,0.335410065077179,0.335343158901798,0.335215790137345,0.335056637982512,0.334897366296617,0.334768827869219,0.334696836844354,0.334696836844354, +0.433988891618135,0.433988891618135,0.43397041930282,0.433848213721744,0.433651112489014,0.433416761057933,0.433185991960037,0.432999556846185,0.432894130182239,0.432894130182239, +0.553923335166556,0.553923335166556,0.553858924662789,0.55365855445341,0.553364128584389,0.55302585436679,0.55269480953735,0.55242347155125,0.552265635598016,0.552265635598016, +0.691683255089622,0.691683255089622,0.69156493920504,0.69125398193675,0.690826741291638,0.690350712810706,0.68988390605333,0.68948777846853,0.689241230238768,0.689241230238768, +0.842388289824673,0.842388289824673,0.842236152529124,0.841752707986505,0.841145775148468,0.840497324781258,0.839856288010584,0.839275881944039,0.838855573197862,0.838855573197862, + +00:45:28, +0.184814245302774,0.184814245302774,0.184871171308363,0.184875421237299,0.184839385130243,0.184779413817259,0.184713440405903,0.184658308595649,0.1846271407561,0.1846271407561, +0.184814245302774,0.184814245302774,0.184871171308363,0.184875421237299,0.184839385130243,0.184779413817259,0.184713440405903,0.184658308595649,0.1846271407561,0.1846271407561, +0.210067709153547,0.210067709153547,0.210118536154907,0.210111950707226,0.21006181340414,0.209986459705109,0.209906063126638,0.209839692893771,0.20980234928882,0.20980234928882, +0.260449904673812,0.260449904673812,0.260487444312257,0.260457940188189,0.26037825315522,0.260270763367353,0.260160193621665,0.260070202248097,0.260019804805937,0.260019804805937, +0.335503040153389,0.335503040153389,0.335518194832141,0.335451305654339,0.335323967397668,0.335164852687451,0.33500561815816,0.334877109576601,0.334805135223247,0.334805135223247, +0.434086757561611,0.434086757561611,0.434068286638064,0.433946108571533,0.43374905374319,0.433514758256233,0.433284044520528,0.433097654161692,0.4329922527677,0.4329922527677, +0.554004815282099,0.554004815282099,0.553940413853082,0.55374008734406,0.553445729403285,0.553107534846554,0.55277656855852,0.552505294937702,0.552347496252627,0.552347496252627, +0.691742045996803,0.691742045996803,0.691623751055885,0.691312860449183,0.690885714969233,0.690409794284261,0.68994309376238,0.689547055983007,0.689300563072385,0.689300563072385, +0.842419174503227,0.842419174503227,0.842267068248811,0.841783723987639,0.84117691916638,0.84052860687979,0.839887706854983,0.83930742387169,0.838887203086976,0.838887203086976, + +00:45:29, +0.184930504190201,0.184930504190201,0.184987432750938,0.184991689837565,0.184955664110481,0.184895704580247,0.184829742360716,0.184774619271305,0.184743456203125,0.184743456203125, +0.184930504190201,0.184930504190201,0.184987432750938,0.184991689837565,0.184955664110481,0.184895704580247,0.184829742360716,0.184774619271305,0.184743456203125,0.184743456203125, +0.21018335986298,0.21018335986298,0.210234187879141,0.210227610613056,0.210177486637978,0.210102148747384,0.210021767527436,0.209955409420684,0.209918072498903,0.209918072498903, +0.260563376880989,0.260563376880989,0.260600915557873,0.260571422455702,0.260491755176486,0.260384289582064,0.260273743741307,0.260183771449579,0.260133384598024,0.260133384598024, +0.335611148832443,0.335611148832443,0.335626302006403,0.335559429824087,0.335432122068567,0.335273044793793,0.335113847411495,0.334985368667782,0.334913410981372,0.334913410981372, +0.434184595393741,0.434184595393741,0.43416612586839,0.434043975309206,0.433846966868052,0.433612727302536,0.433382068905639,0.433195723282465,0.433090347147345,0.433090347147345, +0.55408626650843,0.55408626650843,0.55402187415802,0.553821591332673,0.553527301288838,0.553189186354017,0.552858298567898,0.552587089279541,0.552429327843512,0.552429327843512, +0.691800813083647,0.691800813083647,0.691682539082592,0.69137171510727,0.690944664745153,0.690468851800552,0.690002257458486,0.689606309437281,0.689359871816848,0.689359871816848, +0.84245004570495,0.84245004570495,0.842297970478226,0.841814726451285,0.841208049584416,0.840559875309866,0.839919111962544,0.839338952001231,0.83891881913492,0.83891881913492, + +00:45:30, +0.18504676027534,0.18504676027534,0.185103691380698,0.185107955623335,0.185071940281393,0.185011992543253,0.18494604152608,0.184890927166398,0.184859768874627,0.184859768874627, +0.18504676027534,0.18504676027534,0.185103691380698,0.185107955623335,0.185071940281393,0.185011992543253,0.18494604152608,0.184890927166398,0.184859768874627,0.184859768874627, +0.210299003329768,0.210299003329768,0.210349832353743,0.210343263268286,0.210293152624924,0.21021783054932,0.210137464695231,0.210071118720758,0.21003378848563,0.21003378848563, +0.260676834417233,0.260676834417233,0.260714372131235,0.260684890050406,0.260605242525043,0.260497801124615,0.260387279189484,0.260297325980166,0.260246949719516,0.260246949719516, +0.335719234937787,0.335719234937787,0.335734386610999,0.335667531422068,0.335540254161061,0.335381214312547,0.335222054067624,0.335093605153759,0.335021664129723,0.335021664129723, +0.43428240513639,0.43428240513639,0.434263937015649,0.434141813956611,0.433944851885451,0.433710668218704,0.433480065137244,0.433293764230387,0.433188413343062,0.433188413343062, +0.554167688872409,0.554167688872409,0.554103305604452,0.553903066446106,0.553608844267932,0.553270808916091,0.552939999592431,0.552668854603743,0.552511130397664,0.552511130397664, +0.691859556374318,0.691859556374318,0.691741303309325,0.6914305459352,0.691003590643635,0.690527885383869,0.690061397165993,0.689665538855746,0.68941915649658,0.68941915649658, +0.842480903444106,0.842480903444106,0.842328859231647,0.84184571539177,0.841239166416967,0.840591130085949,0.839950503347803,0.839370466347266,0.838950421356342,0.838950421356342, + +00:45:31, +0.185163013537778,0.185163013537778,0.185219947177243,0.185224218574201,0.185188213622551,0.185128277685824,0.185062337881512,0.185007232260423,0.184976078750088,0.184976078750088, +0.185163013537778,0.185163013537778,0.185219947177243,0.185224218574201,0.185188213622551,0.185128277685824,0.185062337881512,0.185007232260423,0.184976078750088,0.184976078750088, +0.210414639540207,0.210414639540207,0.210465469565015,0.210458908659212,0.210408811351256,0.21033350509717,0.210253154616252,0.2101868207802,0.210149497235197,0.210149497235197, +0.260790277280418,0.260790277280418,0.260827814030216,0.260798342970163,0.260718715198741,0.260611297992834,0.260500799964006,0.260410865837655,0.260360500168202,0.260360500168202, +0.335827298480457,0.335827298480457,0.335842448656952,0.335775610459295,0.335648363686153,0.33548936125471,0.335330238137537,0.335201819045521,0.335129894679286,0.335129894679286, +0.434380186811398,0.434380186811398,0.434361720101666,0.434239624535567,0.434042708817213,0.433808581026571,0.433578033237189,0.433391777027312,0.433286451376713,0.433286451376713, +0.554249082400864,0.554249082400864,0.554184708219195,0.553984512711183,0.553690358367412,0.553352402559654,0.553021671659029,0.552750590937246,0.552592903942038,0.552592903942038, +0.69191827589295,0.69191827589295,0.691800043760215,0.691489352957132,0.691062492688882,0.69058689505847,0.690120512909216,0.689724744262763,0.689478417135971,0.689478417135971, +0.842511747734942,0.842511747734942,0.842359734523333,0.8418766908234,0.841270269678406,0.840622371222486,0.839981881025278,0.839401966924378,0.838982009765872,0.838982009765872, + +00:45:32, +0.185279263957133,0.185279263957133,0.185336200120199,0.185340478669786,0.185304484113559,0.185244559987536,0.185178631406562,0.185123534532907,0.185092385809022,0.185092385809022, +0.185279263957133,0.185279263957133,0.185336200120199,0.185340478669786,0.185304484113559,0.185244559987536,0.185178631406562,0.185123534532907,0.185092385809022,0.185092385809022, +0.210530268480615,0.210530268480615,0.210581099499283,0.210574546772151,0.210524462803272,0.210449172377209,0.210368837276749,0.21030251558524,0.210265198733824,0.210265198733824, +0.260903705468427,0.260903705468427,0.260941241252698,0.260911781212845,0.260832173195434,0.260724780184559,0.260614306062693,0.260524391019851,0.260474035941878,0.260474035941878, +0.335935339471473,0.335935339471473,0.335950488155273,0.335883666946773,0.335756450654838,0.335597485631271,0.335438399632217,0.335310010354043,0.335238102641034,0.335238102641034, +0.434477940440575,0.434477940440575,0.434459475148238,0.434337407067869,0.434140537685136,0.433906465747945,0.433675973227291,0.433489761695071,0.433384461270134,0.433384461270134, +0.554330447120586,0.554330447120586,0.554266082029027,0.554065930154692,0.55377184361409,0.553433967311549,0.553103314794568,0.552832298306954,0.552674648503554,0.552674648503554, +0.691976971663641,0.691976971663641,0.69185876045936,0.69154813619719,0.691121370905062,0.690645880848578,0.690179604712432,0.689783925682658,0.689537653759378,0.689537653759378, +0.842542578591684,0.842542578591684,0.842390596367521,0.841907652760463,0.841301359383085,0.8406535987339,0.840013245009466,0.839433453747128,0.839013584378118,0.839013584378118, + +00:45:33, +0.185395511513051,0.185395511513051,0.185452450189226,0.185456735889742,0.185420751734051,0.185360839427997,0.185294922080809,0.185239833963406,0.185208690030974,0.185208690030974, +0.185395511513051,0.185395511513051,0.185452450189226,0.185456735889742,0.185420751734051,0.185360839427997,0.185294922080809,0.185239833963406,0.185208690030974,0.185208690030974, +0.210645890137333,0.210645890137333,0.210696722142894,0.210690177593444,0.210640106967294,0.210564832375736,0.210484512662995,0.210418203122131,0.210380892967752,0.210380892967752, +0.261017118979148,0.261017118979148,0.261054653796567,0.261025204776328,0.260945616512985,0.260838247697635,0.26072779748337,0.260637901524566,0.260587557038349,0.260587557038349, +0.336043357921846,0.336043357921846,0.336058505116964,0.335991700895492,0.335864515078102,0.335705587453204,0.335546538562634,0.335418179090292,0.335346288025932,0.335346288025932, +0.434575666045706,0.434575666045706,0.434557202177135,0.434435161575285,0.434238338510992,0.434004322404608,0.433773885129344,0.433587718255465,0.433482443045133,0.433482443045133, +0.55441178305833,0.55441178305833,0.554347427060691,0.554147318803385,0.553853300034742,0.553515503198583,0.553184929025889,0.552913976739735,0.552756364109096,0.552756364109096, +0.692035643710459,0.692035643710459,0.691917453430825,0.691606895679466,0.691180225316314,0.690704842778386,0.690238672599889,0.689843083139726,0.689596866391123,0.689596866391123, +0.842573396028536,0.842573396028536,0.84242144477843,0.841938601217226,0.841332435545337,0.840684812634596,0.840044595314844,0.839464926830059,0.839045145207669,0.839045145207669, + +00:45:34, +0.18551175618521,0.18551175618521,0.185568697364014,0.185572990213753,0.185537016463691,0.185477115986846,0.185411209883865,0.185356130531509,0.18532499139552,0.18532499139552, +0.18551175618521,0.18551175618521,0.185568697364014,0.185572990213753,0.185537016463691,0.185477115986846,0.185411209883865,0.185356130531509,0.18532499139552,0.18532499139552, +0.210761504496724,0.210761504496724,0.210812337482218,0.210805801109452,0.210755743829666,0.210680485079069,0.210600180761283,0.210533883377148,0.210496579923244,0.210496579923244, +0.261130517810478,0.261130517810478,0.261168051659718,0.2611386136585,0.261059045149265,0.260951700529913,0.260841274223873,0.260751397349619,0.260701063455426,0.260701063455426, +0.336151353842576,0.336151353842576,0.336166499553015,0.336099712316434,0.335972556966916,0.335813666731477,0.335654654939746,0.335526325265222,0.335454450844932,0.335454450844932, +0.434673363648551,0.434673363648551,0.434654901210102,0.434532888079554,0.434336111316526,0.434102151018315,0.433871768965114,0.43368564673027,0.433580396723492,0.433580396723492, +0.554493090240819,0.554493090240819,0.554428743340898,0.55422867868398,0.553934727656108,0.553597010247528,0.553266514379795,0.552995626262422,0.552838050785515,0.552838050785515, +0.692094292057438,0.692094292057438,0.691976122698641,0.691665631428019,0.691239055946741,0.69076378087205,0.6902977165958,0.689902216658228,0.689656055055497,0.689656055055497, +0.842604200059685,0.842604200059685,0.842452279770258,0.841969536207935,0.841363498179473,0.840716012938957,0.840075931955869,0.839496386187693,0.839076692269091,0.839076692269091, + +00:45:35, +0.185627997953321,0.185627997953321,0.185684941624284,0.185689241621535,0.185653278282177,0.185593389643751,0.185527494795371,0.185472424216835,0.185441289882265,0.185441289882265, +0.185627997953321,0.185627997953321,0.185684941624284,0.185689241621535,0.185653278282177,0.185593389643751,0.185527494795371,0.185472424216835,0.185441289882265,0.185441289882265, +0.210877111545174,0.210877111545174,0.210927945503646,0.210921417306559,0.210871373376755,0.21079613047355,0.210715841557933,0.210649556336588,0.210612259586587,0.210612259586587, +0.261243901960321,0.261243901960321,0.261281434840054,0.261252007857252,0.261172459102151,0.261065138679251,0.260954736282041,0.260864878492836,0.260814555190928,0.260814555190928, +0.336259327244653,0.336259327244653,0.336274471474405,0.336207701220569,0.336080576332242,0.335921723477043,0.335762748774502,0.335634448889777,0.335562591108977,0.335562591108977, +0.43477103327084,0.43477103327084,0.434752572268855,0.434630586602391,0.434433856123456,0.434199951610792,0.433969624756339,0.433783547141235,0.433678322326965,0.433678322326965, +0.554574368694736,0.554574368694736,0.55451003089632,0.554310009823159,0.554016126504894,0.55367848848512,0.553348070883056,0.553077246901812,0.552919708559625,0.552919708559625, +0.692152916728579,0.692152916728579,0.692034768286808,0.691724343466873,0.691297862820413,0.690822695153697,0.690356736724345,0.68996132626239,0.689715219776757,0.689715219776757, +0.842634990699297,0.842634990699297,0.842483101357184,0.842000457746818,0.841394547299787,0.84074719966135,0.840107254946976,0.839527831834531,0.839108225576933,0.839108225576933, + +00:45:36, +0.185744236797122,0.185744236797122,0.185801182949786,0.185805490092832,0.185769537169234,0.185709660378413,0.185643776794998,0.185588714999035,0.185557585470847,0.185557585470847, +0.185744236797122,0.185744236797122,0.185801182949786,0.185805490092832,0.185769537169234,0.185709660378413,0.185643776794998,0.185588714999035,0.185557585470847,0.185557585470847, +0.21099271126909,0.21099271126909,0.211043546193593,0.211037026171173,0.210986995594948,0.210911768545544,0.210831495039283,0.210765221986771,0.210727931944089,0.210727931944089, +0.261357271426586,0.261357271426586,0.261394803335482,0.261365387370484,0.261285858369526,0.261178562143516,0.261068183655723,0.260978344952053,0.260928032242682,0.260928032242682, +0.336367278139054,0.336367278139054,0.336382420892102,0.336315667618858,0.336188573185033,0.336029757700846,0.335870820077841,0.335742549974891,0.335670708828996,0.335670708828996, +0.434868674934278,0.434868674934278,0.434850215375086,0.434728257165483,0.434531572953476,0.434297724203741,0.434067452524732,0.433881419510083,0.433776219877281,0.433776219877281, +0.554655618446733,0.554655618446733,0.554591289753596,0.55439131224757,0.554097496607771,0.553759937938062,0.553429598562408,0.553158838684668,0.553001337458204,0.553001337458204, +0.69221151774785,0.69221151774785,0.692093390219293,0.691783031820023,0.691356645961369,0.690881585647418,0.690415733009671,0.690020411976409,0.689774360579128,0.689774360579128, +0.842665767961519,0.842665767961519,0.842513909553367,0.842031365848083,0.841425582920549,0.840778372816117,0.840138564302583,0.839559263785054,0.839139745145722,0.839139745145722, + +00:45:37, +0.185860472696384,0.185860472696384,0.185917421320302,0.185921735607421,0.185885793104619,0.185825928170563,0.185760055862452,0.185705002857788,0.185673878140934,0.185673878140934, +0.185860472696384,0.185860472696384,0.185917421320302,0.185921735607421,0.185885793104619,0.185825928170563,0.185760055862452,0.185705002857788,0.185673878140934,0.185673878140934, +0.211108303654901,0.211108303654901,0.211159139538494,0.211152627689722,0.211102610470657,0.211027399281438,0.210947141191696,0.210880880314038,0.210843596982081,0.210843596982081, +0.261470626207192,0.261470626207192,0.261508157143919,0.261478752196102,0.261399242949282,0.261291970920582,0.261181616342774,0.261091796725108,0.261041494608519,0.261041494608519, +0.336475206536747,0.336475206536747,0.336490347817065,0.336423611522249,0.336296547536229,0.336137769413821,0.335978868860688,0.335850628531487,0.335778804015912,0.335778804015912, +0.434966288660543,0.434966288660543,0.434947830550458,0.43482589979049,0.434629261828249,0.434395468818838,0.434165252291979,0.43397926385851,0.433874089396143,0.433874089396143, +0.554736839523425,0.554736839523425,0.55467251993933,0.554472585983825,0.554178837991374,0.553841358633019,0.553511097444549,0.553240401637717,0.553082937507996,0.553082937507996, +0.692270095139185,0.692270095139185,0.692151988520029,0.691841696511429,0.691415405393614,0.690940452377273,0.690474705475892,0.690079473824444,0.689833477486799,0.689833477486799, +0.842696531860478,0.842696531860478,0.842544704372947,0.842062260525916,0.841456605056014,0.840809532417583,0.840169860037086,0.839590682053725,0.839171250989964,0.839171250989964, + +00:45:38, +0.185976705630908,0.185976705630908,0.186033656715644,0.186037978145109,0.18600204606812,0.185942192999962,0.185876331977465,0.185821287772806,0.185790167872225,0.185790167872225, +0.185976705630908,0.185976705630908,0.186033656715644,0.186037978145109,0.18600204606812,0.185942192999962,0.185876331977465,0.185821287772806,0.185790167872225,0.185790167872225, +0.211223888689061,0.211223888689061,0.211274725524809,0.211268221848657,0.211218217990313,0.21114302266764,0.211062780001555,0.210996531304755,0.210959254686916,0.210959254686916, +0.261583966300063,0.261583966300063,0.261621496263288,0.261592102332021,0.261512612839319,0.261405365008328,0.261295034341056,0.261205233809853,0.261154942286282,0.261154942286282, +0.336583112448689,0.336583112448689,0.33659825226024,0.336531532941679,0.336404499396759,0.336245758626888,0.336086895133961,0.335958684570477,0.335886876680634,0.335886876680634, +0.435063874471288,0.435063874471288,0.435045417816609,0.434923514499046,0.434726922769414,0.434493185477729,0.434263024079738,0.434077080208184,0.433971930905224,0.433971930905224, +0.554818031951392,0.554818031951392,0.55475372148009,0.554553831058501,0.554260150682303,0.553922750596624,0.553592567556142,0.553321935787651,0.55316450873571,0.55316450873571, +0.69232864892649,0.69232864892649,0.692210563212917,0.691900337565018,0.69147414114112,0.690999295367288,0.690533654147091,0.690138511830626,0.68989257052393,0.68989257052393, +0.84272728241028,0.84272728241028,0.842575485830042,0.842093141794486,0.841487613720412,0.840840678480052,0.840201142164861,0.839622086654983,0.839202743124147,0.839202743124147, + +00:45:39, +0.186092935580526,0.186092935580526,0.186149889115656,0.186154217685731,0.186118296039556,0.186058454846402,0.185992605119803,0.185937569723831,0.185906454644449,0.185906454644449, +0.186092935580526,0.186092935580526,0.186149889115656,0.186154217685731,0.186118296039556,0.186058454846402,0.185992605119803,0.185937569723831,0.185906454644449,0.185906454644449, +0.211339466358041,0.211339466358041,0.211390304139017,0.21138380863445,0.211333818140373,0.211258638690581,0.211178411455267,0.211112174945306,0.21107490504497,0.21107490504497, +0.261697291703131,0.261697291703131,0.26173482069152,0.26170543777616,0.261625968037541,0.261518744404642,0.261408437648439,0.26131865620414,0.261268375273817,0.261268375273817, +0.336690995885825,0.336690995885825,0.336706134232563,0.336639431888076,0.336512428777543,0.336353725350961,0.336194898908565,0.336066718102762,0.33599492683406,0.33599492683406, +0.435161432388135,0.435161432388135,0.435142977195148,0.435021101312759,0.434824555798583,0.434590874202037,0.434360767909643,0.434174868580749,0.434069744426175,0.434069744426175, +0.55489919575718,0.55489919575718,0.55483489440241,0.554635047498139,0.554341434707124,0.554004113855473,0.553674008923819,0.553403441161127,0.55324605116802,0.55324605116802, +0.692387179133633,0.692387179133633,0.692269114321825,0.691958955004684,0.691532853227827,0.691058114641458,0.690592579047316,0.69019752601905,0.689951639714645,0.689951639714645, +0.842758019625014,0.842758019625014,0.842606253938753,0.842124009667942,0.841518608927958,0.84087181101781,0.840232410700264,0.839653477603251,0.839234221562738,0.839234221562738, + +00:45:40, +0.186209162525099,0.186209162525099,0.186266118500211,0.186270454209157,0.186234542998776,0.186174713689705,0.18610887526926,0.186053848690636,0.186022738437367,0.186022738437367, +0.186209162525099,0.186209162525099,0.186266118500211,0.186270454209157,0.186234542998776,0.186174713689705,0.18610887526926,0.186053848690636,0.186022738437367,0.186022738437367, +0.21145503664834,0.21145503664834,0.211505875367621,0.211499388033597,0.211449410907313,0.211374247336714,0.211294035539261,0.211227811222102,0.21119054804264,0.21119054804264, +0.261810602414335,0.261810602414335,0.261848130426551,0.261818758526449,0.261739308541862,0.261632109107418,0.2615218262628,0.261432063905835,0.26138179356898,0.26138179356898, +0.33679885685909,0.33679885685909,0.33681399374496,0.336747308372356,0.336620335689489,0.336461669596939,0.336302880195395,0.336174729139233,0.336102954487081,0.336102954487081, +0.435258962432685,0.435258962432685,0.435240508707662,0.43511866025321,0.434922160937343,0.434688535013356,0.4344584838033,0.434272628997821,0.434167529980617,0.434167529980617, +0.554980330967299,0.554980330967299,0.554916038732788,0.554716235329248,0.554422690092367,0.554085448436128,0.553755421574172,0.553484917784767,0.553327564831565,0.553327564831565, +0.692445685784452,0.692445685784452,0.692327641870589,0.692017548854291,0.691591541677643,0.691116910223742,0.690651480200582,0.690256516413778,0.690010685083036,0.690010685083036, +0.842788743518747,0.842788743518747,0.84263700871316,0.84215486416041,0.841549590692845,0.840902930045119,0.840263665657632,0.839684854912929,0.839265686320182,0.839265686320182, + +00:45:41, +0.186325386444521,0.186325386444521,0.186382344849212,0.186386687695283,0.186350786925658,0.186290969509726,0.186225142405662,0.186170124653025,0.186139019230769,0.186139019230769, +0.186325386444521,0.186325386444521,0.186382344849212,0.186386687695283,0.186350786925658,0.186290969509726,0.186225142405662,0.186170124653025,0.186139019230769,0.186139019230769, +0.211570599546474,0.211570599546474,0.211621439197145,0.211614960032616,0.211564996277632,0.211489848592516,0.211409652239987,0.211343440121573,0.211306183666346,0.211306183666346, +0.261923898431621,0.261923898431621,0.261961425466326,0.261932064580822,0.261852634350202,0.26174545911456,0.261635200182024,0.261545456912805,0.261495197169633,0.261495197169633, +0.336906695379408,0.336906695379408,0.336921830808343,0.336855162405426,0.336728220143493,0.336569591375713,0.336410839005335,0.336282717690769,0.336210959650572,0.336210959650572, +0.435356464626509,0.435356464626509,0.435338012375706,0.435216191341953,0.435019738207252,0.434786167933256,0.434556171782289,0.434370361480989,0.434265287590146,0.434265287590146, +0.555061437608224,0.555061437608224,0.554997154497688,0.5547973945783,0.554503916864528,0.554166754365114,0.553836805533761,0.553566365685159,0.553409049752947,0.553409049752947, +0.692504168902752,0.692504168902752,0.692386145883013,0.692076119137668,0.691650206514441,0.691175682138069,0.690710357630873,0.690315483038841,0.690069706653162,0.690069706653162, +0.842819454105526,0.842819454105526,0.842667750167323,0.842185705286001,0.841580559029245,0.840934035576226,0.840294907051281,0.839716218598397,0.839297137410907,0.839297137410907, + +00:45:42, +0.186441607318714,0.186441607318714,0.186498568142594,0.18650291812404,0.186467027800113,0.186407222286347,0.186341406508866,0.186286397590831,0.186255297004478,0.186255297004478, +0.186441607318714,0.186441607318714,0.186498568142594,0.18650291812404,0.186467027800113,0.186407222286347,0.186341406508866,0.186286397590831,0.186255297004478,0.186255297004478, +0.211686155038984,0.211686155038984,0.211736995614137,0.211730524618045,0.211680574237852,0.211605442444482,0.211525261543918,0.211459061630173,0.21142181190253,0.21142181190253, +0.262037179752942,0.262037179752942,0.262074705808796,0.262045355937221,0.261965945460487,0.261858794423975,0.261748559404001,0.26165883522293,0.261608586073646,0.261608586073646, +0.337014511457692,0.337014511457692,0.337029645433617,0.336962993998178,0.336836082150444,0.336677490698162,0.336518775349259,0.33639068376824,0.336318942335402,0.336318942335402, +0.435453938991153,0.435453938991153,0.435435488220812,0.435313694600516,0.435117287629842,0.434883772983278,0.434653831868163,0.434468066051817,0.434363017276332,0.434363017276332, +0.555142515706397,0.555142515706397,0.555078241723539,0.554878525271732,0.554585115050067,0.554248031668925,0.553918160829111,0.553647784888855,0.553490505958737,0.553490505958737, +0.692562628512305,0.692562628512305,0.692444626382867,0.692134665878612,0.691708847762064,0.691234430408335,0.690769211362138,0.690374425918237,0.690128704449051,0.690128704449051, +0.842850151399382,0.842850151399382,0.842698478315285,0.842216533058803,0.841611513951312,0.840965127625355,0.840326134895508,0.839747568674018,0.839328574849319,0.839328574849319, + +00:45:43, +0.186557825127632,0.186557825127632,0.186614788360323,0.186619145475386,0.186583265602081,0.186523471999483,0.186457667558758,0.18640266748392,0.186371571738345,0.186371571738345, +0.186557825127632,0.186557825127632,0.186614788360323,0.186619145475386,0.186583265602081,0.186523471999483,0.186457667558758,0.18640266748392,0.186371571738345,0.186371571738345, +0.211801703112433,0.211801703112433,0.211852544605164,0.211846081776445,0.211796144774515,0.211721028879133,0.211640863437551,0.211574675734376,0.211537432737657,0.211537432737657, +0.262150446376257,0.262150446376257,0.26218797145192,0.262158632593596,0.262079241870652,0.261972115033579,0.26186190392663,0.261772198834093,0.261721960278895,0.261721960278895, +0.337122305104845,0.337122305104845,0.337137437631675,0.337070803161498,0.336943921721217,0.336785367575156,0.336626689238028,0.336498627382505,0.336426902552427,0.336426902552427, +0.435551385548134,0.435551385548134,0.435532936264486,0.435411170050401,0.435214809226621,0.434981350184938,0.434751464082448,0.434565742731842,0.434460719060718,0.434460719060718, +0.555223565288223,0.555223565288223,0.555159300436736,0.554959627435947,0.55466628467541,0.554329280374016,0.553999487486711,0.553729175422371,0.553571933475467,0.553571933475467, +0.692621064636853,0.692621064636853,0.692503083393889,0.692193189100888,0.691767465444321,0.691293155058404,0.690828041418296,0.690433345075929,0.690187678494696,0.690187678494696, +0.842880835414323,0.842880835414323,0.842729193171065,0.842247347492886,0.84164245547318,0.840996206206712,0.840357349204588,0.839778905154132,0.839359998649804,0.839359998649804, + +00:45:44, +0.186674039851258,0.186674039851258,0.186731005482392,0.186735369729309,0.186699500311534,0.186639718629079,0.186573925535256,0.186518934312185,0.186487843412253,0.186487843412253, +0.186674039851258,0.186674039851258,0.186731005482392,0.186735369729309,0.186699500311534,0.186639718629079,0.186573925535256,0.186518934312185,0.186487843412253,0.186487843412253, +0.211917243753403,0.211917243753403,0.211968086156817,0.211961631494399,0.211911707874188,0.21183660788301,0.2117564579074,0.21169028242068,0.211653046158213,0.211653046158213, +0.262263698299533,0.262263698299533,0.262301222393663,0.262271894547902,0.262192523578637,0.262085420941297,0.261975233747817,0.261885547744186,0.261835319783265,0.261835319783265, +0.337230076331757,0.337230076331757,0.337245207413398,0.337178589906258,0.337051738866677,0.336893222017552,0.336734580682497,0.336606548544411,0.336534840312493,0.336534840312493, +0.435648804318946,0.435648804318946,0.435630356528206,0.435508617713083,0.435312303019068,0.435078899559726,0.434849068446647,0.434663391542575,0.43455839296482,0.43455839296482, +0.555304586380073,0.555304586380073,0.555240330663637,0.555040701097314,0.55474742576695,0.55441050050681,0.554080785533015,0.553810537312191,0.553653332329636,0.553653332329636, +0.692679477300101,0.692679477300101,0.692561516939786,0.692251688828228,0.691826059584989,0.691351856112104,0.690886847823232,0.690492240535851,0.690246628814058,0.690246628814058, +0.842911506164338,0.842911506164338,0.842759894748666,0.842278148602299,0.841673383608963,0.841027271334481,0.84038854999278,0.839810228053059,0.839391408826728,0.839391408826728, + +00:45:45, +0.186790251469607,0.186790251469607,0.186847219488827,0.186851590865831,0.186815731908471,0.186755962155109,0.186690180418308,0.186635198055554,0.186604112006115,0.186604112006115, +0.186790251469607,0.186790251469607,0.186847219488827,0.186851590865831,0.186815731908471,0.186755962155109,0.186690180418308,0.186635198055554,0.186604112006115,0.186604112006115, +0.212032776948501,0.212032776948501,0.212083620255709,0.212077173758513,0.212027263523458,0.211952179442677,0.211872044940007,0.211805881675605,0.211768652150706,0.211768652150706, +0.262376935520745,0.262376935520745,0.262414458631997,0.262385141798103,0.262305790582392,0.262198712145058,0.262088548865474,0.261998881951107,0.261948664584645,0.261948664584645, +0.33733782514931,0.33733782514931,0.337352954789658,0.337286354243322,0.337159533597678,0.337001054036198,0.336842449693505,0.336714447264795,0.336642755626435,0.336642755626435, +0.435746195325055,0.435746195325055,0.435727749033423,0.43560603761001,0.435409769028636,0.435176421129104,0.434946644982232,0.434761012505499,0.434656039010129,0.434656039010129, +0.555385579008284,0.555385579008284,0.555321332430567,0.555121746282166,0.554828538351041,0.554491692093695,0.554162054994444,0.553891870584762,0.55373470254771,0.55373470254771, +0.692737866525727,0.692737866525727,0.69261992704423,0.692310165084332,0.691884630207811,0.691410533593236,0.690945630600799,0.6905511123219,0.690305555431065,0.690305555431065, +0.842942163663398,0.842942163663398,0.842790583062071,0.842308936401073,0.841704298372756,0.841058323022828,0.84041973727432,0.839841537385102,0.839422805394439,0.839422805394439, + +00:45:46, +0.186906459962723,0.186906459962723,0.186963430359685,0.186967808865001,0.186931960372925,0.186872202557579,0.186806432187893,0.186751458693981,0.186720377499874,0.186720377499874, +0.186906459962723,0.186906459962723,0.186963430359685,0.186967808865001,0.186931960372925,0.186872202557579,0.186806432187893,0.186751458693981,0.186720377499874,0.186720377499874, +0.212148302684355,0.212148302684355,0.212199146888474,0.212192708555414,0.212142811708932,0.212067743544718,0.211987624521932,0.211921473485692,0.211884250701667,0.211884250701667, +0.262490158037874,0.262490158037874,0.262527680164902,0.262498374342169,0.262419042879872,0.2623119886428,0.26220184927752,0.262112201452763,0.262061994680936,0.262061994680936, +0.337445551568375,0.337445551568375,0.337460679771315,0.33739409618354,0.337267305925065,0.337108863641929,0.336950296281884,0.336822323554485,0.336750648505078,0.336750648505078, +0.4358435585879,0.4358435585879,0.435825113801564,0.435703429762606,0.435507207276754,0.43527391491451,0.435044193710653,0.434858605642074,0.434753657218109,0.434753657218109, +0.555466543199158,0.555466543199158,0.555402305763818,0.555202763016801,0.554909622454006,0.554572855161023,0.554243295897384,0.553973175266498,0.553816044156118,0.553816044156118, +0.692796232337372,0.692796232337372,0.692678313730864,0.692368617892868,0.691943177336501,0.691469187525564,0.691004389774815,0.690609960457946,0.690364458369614,0.690364458369614, +0.842972807925454,0.842972807925454,0.842821258125242,0.842339710903219,0.841735199778634,0.841089361285899,0.840450911063424,0.83987283316454,0.839454188367262,0.839454188367262, + +00:45:47, +0.187022665310681,0.187022665310681,0.18707963807505,0.187084023706899,0.187048185684956,0.186988439816525,0.186922680824017,0.186867716207453,0.186836639873504,0.186836639873504, +0.187022665310681,0.187022665310681,0.18707963807505,0.187084023706899,0.187048185684956,0.186988439816525,0.186922680824017,0.186867716207453,0.186836639873504,0.186836639873504, +0.212263820947614,0.212263820947614,0.212314666041767,0.21230823587175,0.212258352417244,0.212183300175742,0.212103196639758,0.212037057837505,0.211999841797649,0.211999841797649, +0.262603365848907,0.262603365848907,0.262640886990363,0.262611592178076,0.262532280469038,0.262425250432466,0.262315134981884,0.262225506247066,0.262175310070041,0.262175310070041, +0.337553255599809,0.337553255599809,0.337568382369218,0.337501815737754,0.33737505585967,0.337216650845573,0.337058120458453,0.336930177424297,0.336858518959236,0.336858518959236, +0.435940894128895,0.435940894128895,0.435922450854027,0.435800794192266,0.435604617784821,0.435371380937353,0.43514171465333,0.43495617097373,0.434851247610198,0.434851247610198, +0.555547478978962,0.555547478978962,0.555483250689643,0.555283751327484,0.554990678102133,0.554653989735114,0.554324508268185,0.554054451383776,0.553897357181254,0.553897357181254, +0.692854574758648,0.692854574758648,0.692736677023296,0.69242704727747,0.692001700994739,0.691527817932821,0.69106312536907,0.69066878496782,0.690423337653568,0.690423337653568, +0.843003438964436,0.843003438964436,0.842851919952124,0.842370472122728,0.841766087840652,0.84112038613782,0.840482071374291,0.839904115405636,0.839485557759504,0.839485557759504, + +00:45:48, +0.187138867493585,0.187138867493585,0.187195842615039,0.187200235371636,0.187164407824658,0.187104673912012,0.187038926306721,0.186983970575987,0.186952899107011,0.186952899107011, +0.187138867493585,0.187138867493585,0.187195842615039,0.187200235371636,0.187164407824658,0.187104673912012,0.187038926306721,0.186983970575987,0.186952899107011,0.186952899107011, +0.212379331724951,0.212379331724951,0.212430177702268,0.212423755694192,0.212373885635045,0.212298849322378,0.21221876128009,0.212152634717628,0.212115425425227,0.212115425425227, +0.262716558951839,0.262716558951839,0.262754079106375,0.262724795303811,0.26264550334786,0.262538497512009,0.262428405976498,0.262338796331937,0.262288610749873,0.262288610749873, +0.337660937254461,0.337660937254461,0.337676062594207,0.337609512916794,0.337482783412316,0.337324415657945,0.337165922234023,0.337038008885035,0.336966366999711,0.336966366999711, +0.436038201969427,0.436038201969427,0.436019760212187,0.435898130920361,0.435702000574213,0.435468819219019,0.435239207831659,0.435053708521874,0.434948810207807,0.434948810207807, +0.555628386373928,0.555628386373928,0.555564167234265,0.555364711240445,0.555071705321675,0.554735095842249,0.554405692133162,0.554135698962942,0.553978641649479,0.553978641649479, +0.692912893813133,0.692912893813133,0.692795016945103,0.692485453261743,0.69206020120617,0.691586424838709,0.691121837407317,0.690727585875327,0.690482193306757,0.690482193306757, +0.843034056794257,0.843034056794257,0.84288256855664,0.842401220073572,0.841796962572845,0.841151397592699,0.840513218221097,0.839935384122632,0.839516913585452,0.839516913585452, + +00:45:49, +0.187255066491572,0.187255066491572,0.187312043959799,0.187316443839352,0.187280626772152,0.187220904824138,0.187155168616074,0.187100221779631,0.187069155180428,0.187069155180428, +0.187255066491572,0.187255066491572,0.187312043959799,0.187316443839352,0.187280626772152,0.187220904824138,0.187155168616074,0.187100221779631,0.187069155180428,0.187069155180428, +0.212494835003059,0.212494835003059,0.212545681856675,0.212539268009432,0.21248941134901,0.212414390971277,0.212334318429556,0.212268204112671,0.212231001570996,0.212231001570996, +0.262829737344672,0.262829737344672,0.262867256510938,0.262837983717362,0.262758711514314,0.262651729879387,0.262541662259305,0.262452071705302,0.262401896718353,0.262401896718353, +0.33776859654317,0.33776859654317,0.337783720457109,0.33771718773148,0.337590488593815,0.337432158089848,0.337273701619392,0.337145817947495,0.337074192637298,0.337074192637298, +0.436135482130858,0.436135482130858,0.436117041897389,0.435995439968234,0.435799355666278,0.435566229780865,0.43533667326701,0.435151218307885,0.435046345032321,0.435046345032321, +0.555709265410255,0.555709265410255,0.555645055423871,0.555445642781879,0.555152704138849,0.55481617350868,0.554486847518599,0.554216918030303,0.554059897587119,0.554059897587119, +0.692971189524373,0.692971189524373,0.692853333519829,0.692543835869256,0.692118677994412,0.691645008266896,0.691180525913281,0.690786363204234,0.69054102535298,0.69054102535298, +0.843064661428809,0.843064661428809,0.842913203952695,0.842431954769703,0.84182782398923,0.841182395664621,0.840544351618001,0.839966639329748,0.839548255859373,0.839548255859373, + +00:45:50, +0.187371262284804,0.187371262284804,0.187428242089505,0.187432649090219,0.187396842507591,0.187337132533028,0.187271407732175,0.18721646979846,0.18718540807382,0.18718540807382, +0.187371262284804,0.187371262284804,0.187428242089505,0.187432649090219,0.187396842507591,0.187337132533028,0.187271407732175,0.18721646979846,0.18718540807382,0.18718540807382, +0.212610330768652,0.212610330768652,0.212661178491711,0.212654772804186,0.212604929545836,0.212529925109112,0.212449868074804,0.212383766009262,0.212346570221575,0.212346570221575, +0.262942901025415,0.262942901025415,0.262980419202058,0.262951157416729,0.262871904966384,0.262764947532566,0.262654903828251,0.262565332365097,0.262515167973406,0.262515167973406, +0.337876233476762,0.337876233476762,0.337891355968742,0.33782484019262,0.337698171414968,0.337539878152078,0.337381458625348,0.337253604622461,0.337181995882777,0.337181995882777, +0.43623273463452,0.43623273463452,0.436214295930955,0.436092721357203,0.435896683082339,0.435663612644223,0.435434110980726,0.435248700353116,0.435143852105101,0.435143852105101, +0.555790116114107,0.555790116114107,0.555725915284611,0.555526545977947,0.555233674579839,0.554897222760619,0.554567974450741,0.554298108612135,0.554141125020464,0.554141125020464, +0.693029461915884,0.693029461915884,0.692911626770988,0.692602195123549,0.692177131383046,0.691703568241018,0.691239190910652,0.69084511697828,0.690599833816004,0.690599833816004, +0.843095252881966,0.843095252881966,0.842943826154175,0.842462676225055,0.841858672103805,0.841213380367655,0.840575471579141,0.839997881041188,0.839579584595513,0.839579584595513, + +00:45:51, +0.18748745485348,0.18748745485348,0.187544436984364,0.187548851104436,0.187513055011156,0.187453357018838,0.187387643635154,0.187332714612584,0.187301657767284,0.187301657767284, +0.18748745485348,0.18748745485348,0.187544436984364,0.187548851104436,0.187513055011156,0.187453357018838,0.187387643635154,0.187332714612584,0.187301657767284,0.187301657767284, +0.212725819008468,0.212725819008468,0.212776667594119,0.212770270065189,0.212720440212242,0.212645451722578,0.212565410202506,0.212499320394052,0.212462131363606,0.212462131363606, +0.263056049992082,0.263056049992082,0.26309356717775,0.263064316399916,0.26298508370206,0.262878150469518,0.262768130681293,0.262678578309262,0.262628424512967,0.262628424512967, +0.337983848066053,0.337983848066053,0.337998969139912,0.337932470311012,0.337805831886564,0.337647575855417,0.337489193262669,0.337361368920706,0.337289776746921,0.337289776746921, +0.436329959501724,0.436329959501724,0.43631152233418,0.436189975108559,0.435993982843692,0.4357609678304,0.435531520994123,0.435346154678894,0.43524133144748,0.43524133144748, +0.555870938511613,0.555870938511613,0.555806746842605,0.555607420854776,0.555314616670795,0.554978243624249,0.554649072955802,0.554379270734678,0.554222323975772,0.554222323975772, +0.693087711011146,0.693087711011146,0.692969896722059,0.692660531048128,0.692235561395625,0.69176210478468,0.691297832423087,0.690903847221169,0.69065861871956,0.69065861871956, +0.843125831167581,0.843125831167581,0.842974435174945,0.842493384453541,0.841889506930545,0.841244351715848,0.840606578118636,0.840029109271132,0.839610899808099,0.839610899808099, + +00:45:52, +0.187603644177822,0.187603644177822,0.187660628624614,0.187665049862235,0.187629264263061,0.187569578261757,0.187503876305171,0.187448956202139,0.187417904240943,0.187417904240943, +0.187603644177822,0.187603644177822,0.187660628624614,0.187665049862235,0.187629264263061,0.187569578261757,0.187503876305171,0.187448956202139,0.187417904240943,0.187417904240943, +0.212841299709266,0.212841299709266,0.212892149150663,0.212885759779198,0.212835943334968,0.212760970798392,0.212680944799354,0.212614867253715,0.21257768498375,0.21257768498375, +0.263169184242698,0.263169184242698,0.263206700436035,0.263177460664936,0.263098247719338,0.262991338688222,0.262881342816392,0.262791809535747,0.262741666334977,0.262741666334977, +0.338091440321849,0.338091440321849,0.338106559981417,0.338040078097445,0.337913470019384,0.337755251210639,0.337596905542122,0.337469110852994,0.337397535240491,0.337397535240491, +0.436427156753751,0.436427156753751,0.436408721128331,0.436287201243568,0.436091254971608,0.435858295360674,0.435628903328494,0.43544358130652,0.435338783080763,0.435338783080763, +0.555951732628868,0.555951732628868,0.555887550123935,0.555688267438457,0.555395530437832,0.555059236125714,0.55473014305996,0.554460404424138,0.554303494479265,0.554303494479265, +0.69314593683361,0.69314593683361,0.693028143396492,0.692718843666469,0.692293968055665,0.691820617921454,0.691356450474213,0.690962553956573,0.690717380087353,0.690717380087353, +0.843156396299489,0.843156396299489,0.843005031028854,0.842524079469055,0.84192032848341,0.841275309723229,0.840637671250584,0.840060324033744,0.83964220151134,0.83964220151134, + +00:45:53, +0.187719830238088,0.187719830238088,0.187776816990519,0.187781245343878,0.187745470243548,0.187685796242,0.187620105722415,0.187565194547294,0.187534147474955,0.187534147474955, +0.187719830238088,0.187719830238088,0.187776816990519,0.187781245343878,0.187745470243548,0.187685796242,0.187620105722415,0.187565194547294,0.187534147474955,0.187534147474955, +0.212956772857825,0.212956772857825,0.213007623148131,0.213001241932994,0.212951438900775,0.212876482323292,0.212796471852063,0.212730406574946,0.212693231068692,0.212693231068692, +0.263282303775291,0.263282303775291,0.263319818974941,0.263290590209807,0.263211397016224,0.263104512186665,0.262994540231517,0.262905026042505,0.262854893437383,0.262854893437383, +0.338199010254945,0.338199010254945,0.33821412850404,0.338147663562694,0.338021085824196,0.337862904228505,0.337704595474463,0.337576830430077,0.337505271374237,0.337505271374237, +0.436524326411857,0.436524326411857,0.436505892334651,0.436384399783469,0.436188499487329,0.4359555952563,0.435726258005102,0.435540980257269,0.435436207026233,0.435436207026233, +0.556032498491932,0.556032498491932,0.555968325154651,0.555769085755049,0.555476415907032,0.555140200291126,0.554811184789359,0.554541509706687,0.55438463655713,0.55438463655713, +0.693204139406695,0.693204139406695,0.693086366817702,0.692777133002012,0.692352351386656,0.691879107674879,0.691415045087624,0.691021237208133,0.690776117943049,0.690776117943049, +0.843186948291506,0.843186948291506,0.843035613729727,0.842554761285473,0.841951136776337,0.841306254403806,0.840668750989065,0.840091525343168,0.839673489719423,0.839673489719423, + +00:45:54, +0.187836013014562,0.187836013014562,0.187893002062377,0.187897437529654,0.18786167293289,0.187802010939814,0.187736331867106,0.187681429628247,0.187650387449504,0.187650387449504, +0.187836013014562,0.187836013014562,0.187893002062377,0.187897437529654,0.18786167293289,0.187802010939814,0.187736331867106,0.187681429628247,0.187650387449504,0.187650387449504, +0.213072238440948,0.213072238440948,0.213123089573331,0.213116716513377,0.213066926896446,0.212991986284039,0.212911991347368,0.212845938344462,0.212808769605137,0.212808769605137, +0.263395408587898,0.263395408587898,0.263432922792501,0.263403705032554,0.263324531590729,0.263217670962841,0.263107722924645,0.263018227827501,0.26296810581814,0.26296810581814, +0.338306557876124,0.338306557876124,0.338321674718557,0.338255226717526,0.33812867931176,0.337970534919767,0.337812263070439,0.337684527662697,0.337612985158899,0.337612985158899, +0.436621468497273,0.436621468497273,0.436603035974357,0.436481570749476,0.436285716412075,0.436052867538505,0.435823585045187,0.435638351552391,0.435533603305145,0.435533603305145, +0.556113236126833,0.556113236126833,0.556049071960769,0.555849875830575,0.55555727310444,0.555221136146563,0.554892198170108,0.554622586608462,0.554465750235522,0.554465750235522, +0.693262318753786,0.693262318753786,0.693144567009074,0.69283539907817,0.69241071141205,0.691937574068463,0.691473616286882,0.691079896999457,0.690834832310286,0.690834832310286, +0.843217487157428,0.843217487157428,0.843066183291375,0.84258542991665,0.841981931823247,0.841337185771569,0.840699817348138,0.840122713213525,0.839704764446516,0.839704764446516, + +00:45:55, +0.18795219248756,0.18795219248756,0.188009183820515,0.188013626399885,0.187977872311389,0.187918222335477,0.187852554719495,0.187797661425226,0.187766624144806,0.187766624144806, +0.18795219248756,0.18795219248756,0.188009183820515,0.188013626399885,0.187977872311389,0.187918222335477,0.187852554719495,0.187797661425226,0.187766624144806,0.187766624144806, +0.213187696445459,0.213187696445459,0.213238548413093,0.21323218350717,0.213182407308789,0.213107482667414,0.213027503272028,0.212961462549002,0.212924300579815,0.212924300579815, +0.263508498678561,0.263508498678561,0.263546011886759,0.263516805131212,0.263437651440869,0.26333081501475,0.26322089089376,0.263131414888704,0.263081303475211,0.263081303475211, +0.338414083196161,0.338414083196161,0.338429198635731,0.338362767572697,0.338236250492823,0.338078143295166,0.337919908340785,0.337792202561585,0.337720676605206,0.337720676605206, +0.436718583031203,0.436718583031203,0.436700152068638,0.436578714162775,0.436382905767037,0.436150112228491,0.435920884469962,0.435735695213108,0.435630971938727,0.435630971938727, +0.556193945559563,0.556193945559563,0.556129790568268,0.555930637691024,0.555638102056068,0.555302043718068,0.554973183228283,0.554703635155565,0.554546835540559,0.554546835540559, +0.693320474898239,0.693320474898239,0.693202743993962,0.692893641918322,0.692469048155272,0.691996017125683,0.691532164095516,0.691138533354121,0.690893523212669,0.690893523212669, +0.843248012911031,0.843248012911031,0.843096739727585,0.842616085376422,0.842012713638038,0.841368103840487,0.840730870341845,0.84015388765892,0.839736025706768,0.839736025706768, + +00:45:56, +0.188068368637426,0.188068368637426,0.188125362245288,0.188129811934922,0.188094068359378,0.188034430409295,0.187968774259862,0.187913889918489,0.187882857541109,0.187882857541109, +0.188068368637426,0.188068368637426,0.188125362245288,0.188129811934922,0.188094068359378,0.188034430409295,0.187968774259862,0.187913889918489,0.187882857541109,0.187882857541109, +0.213303146858202,0.213303146858202,0.213353999654268,0.213347642901218,0.213297880124628,0.213222971460222,0.213143007612823,0.213076979175325,0.213039823979473,0.213039823979473, +0.263621574045331,0.263621574045331,0.263659086255763,0.263629890503818,0.263550756564671,0.2634439443404,0.26333404413685,0.26324458722409,0.263194486406565,0.263194486406565, +0.338521586225818,0.338521586225818,0.338536700266316,0.338470286138951,0.338343799378122,0.338185729365433,0.338027531296224,0.337899855137462,0.337828345723878,0.337828345723878, +0.436815670034825,0.436815670034825,0.43679724063866,0.436675830044528,0.436480067573382,0.436247329347433,0.436018156300613,0.435833011260616,0.435728312948183,0.435728312948183, +0.556274626816079,0.556274626816079,0.556210481003095,0.556011371362353,0.555718902787897,0.55538292303165,0.555054139989926,0.554784655374065,0.554627892498326,0.554627892498326, +0.693378607863375,0.693378607863375,0.693260897795685,0.692951861545813,0.692527361639712,0.692054436869982,0.691590688537024,0.691197146295669,0.69095219067377,0.69095219067377, +0.843278525566074,0.843278525566074,0.843127283052129,0.842646727678608,0.842043482234591,0.841399008624512,0.840761909984206,0.840185048693436,0.839767273514306,0.839767273514306, + +00:45:57, +0.188184541444537,0.188184541444537,0.188241537317084,0.188245994115145,0.188210261057218,0.188150635141605,0.188084990468517,0.188030115088325,0.187999087618687,0.187999087618687, +0.188184541444537,0.188184541444537,0.188241537317084,0.188245994115145,0.188210261057218,0.188150635141605,0.188084990468517,0.188030115088325,0.187999087618687,0.187999087618687, +0.213418589666045,0.213418589666045,0.21346944328373,0.213463094682386,0.213413345330814,0.213338452649286,0.213258504356554,0.213192488210214,0.213155339790884,0.213155339790884, +0.263734634686264,0.263734634686264,0.263772145897567,0.26374296114842,0.263663846960165,0.263557058937804,0.263447182651914,0.263357744831642,0.263307654610178,0.263307654610178, +0.338629066975846,0.338629066975846,0.338644179621055,0.338577782427022,0.338451325978383,0.338293293141286,0.338135131947473,0.338007485401038,0.337935992525623,0.337935992525623, +0.43691272952929,0.43691272952929,0.436894301705559,0.436772918415869,0.436577201852249,0.436344518916481,0.436115400558302,0.435930299716089,0.435825626354689,0.435825626354689, +0.556355279922306,0.556355279922306,0.556291143291164,0.556092076870482,0.555799675325868,0.555463774113283,0.555135068481042,0.554865647289997,0.554708921134875,0.554708921134875, +0.693436717672486,0.693436717672486,0.693319028437534,0.693010057983959,0.692585651888729,0.692112833324772,0.691649189634872,0.691255735847613,0.69101083471713,0.69101083471713, +0.843309025136295,0.843309025136295,0.843157813278756,0.842677356837004,0.842074237626768,0.841429900137575,0.840792936289222,0.840216196331139,0.839798507883241,0.839798507883241, + +00:45:58, +0.188300710889297,0.188300710889297,0.188357709016317,0.188362172920965,0.188326450385304,0.188266836512773,0.1882012033258,0.188146336915051,0.188115314357846,0.188115314357846, +0.188300710889297,0.188300710889297,0.188357709016317,0.188362172920965,0.188326450385304,0.188266836512773,0.1882012033258,0.188146336915051,0.188115314357846,0.188115314357846, +0.213534024855875,0.213534024855875,0.213584879288374,0.213578538837563,0.213528802914215,0.213453926221455,0.213373993490045,0.213307989640474,0.213270848000841,0.213270848000841, +0.263847680599425,0.263847680599425,0.263885190810234,0.263856017063071,0.263776922625392,0.263670158804984,0.263560306436956,0.263470887709352,0.263420808084032,0.263420808084032, +0.338736525456989,0.338736525456989,0.338751636710679,0.338685256447635,0.338558830304324,0.338400834633436,0.338242710305233,0.338115093363013,0.338043617021138,0.338043617021138, +0.437009761535726,0.437009761535726,0.436991335290449,0.436869979297909,0.436674308624754,0.43644168095676,0.436212617264164,0.436027560600669,0.435922912179398,0.435922912179398, +0.556435904904134,0.556435904904134,0.556371777458352,0.556172754241298,0.555880419695893,0.555544596988909,0.555215968727606,0.554946610929362,0.554789921476222,0.554789921476222, +0.693494804348831,0.693494804348831,0.693377135942765,0.693068231256045,0.69264391892565,0.692171206513434,0.691707667412493,0.691314302033434,0.691069455366258,0.691069455366258, +0.843339511635414,0.843339511635414,0.8431883304212,0.84270797286539,0.84210497982841,0.841460778393587,0.840823949270875,0.840247330586074,0.839829728827662,0.839829728827662, + +00:45:59, +0.18841687695214,0.18841687695214,0.188473877323434,0.188478348332822,0.188442636324055,0.188383034503197,0.188317412812081,0.188262555379016,0.188231537738923,0.188231537738923, +0.18841687695214,0.18841687695214,0.188473877323434,0.188478348332822,0.188442636324055,0.188383034503197,0.188317412812081,0.188262555379016,0.188231537738923,0.188231537738923, +0.213649452414603,0.213649452414603,0.213700307655114,0.213693975353657,0.213644252861724,0.213569392163597,0.213489475000139,0.213423483452929,0.213386348596158,0.213386348596158, +0.263960711782883,0.263960711782883,0.263998220991834,0.26396905824583,0.263889983558395,0.263783243939968,0.263673415489986,0.263584015855217,0.263533946826119,0.263533946826119, +0.338843961679975,0.338843961679975,0.33885907154591,0.338792708211501,0.338666312366648,0.33850835385258,0.338350266380199,0.338222679034077,0.338151219221111,0.338151219221111, +0.437106766075231,0.437106766075231,0.437088341414417,0.436967012711732,0.436771387911984,0.436538815489366,0.436309806439308,0.436124793935478,0.436020170443434,0.436020170443434, +0.556516501787418,0.556516501787418,0.556452383530505,0.556253403500655,0.555961135923848,0.555625391684434,0.555296840755556,0.555027546318125,0.55487089354835,0.55487089354835, +0.693552867915636,0.693552867915636,0.693435220334604,0.69312638138532,0.692702162773772,0.692229556459315,0.69176612189329,0.691372844876578,0.69112805264463,0.69112805264463, +0.843369985077132,0.843369985077132,0.843218834493172,0.842738575777526,0.84213570885334,0.841491643406442,0.840854948943127,0.840278451472265,0.839860936361638,0.839860936361638, + +00:46:00, +0.188533039613531,0.188533039613531,0.18859004221891,0.188594520331187,0.188558818853925,0.188499229093302,0.188433618907759,0.188378770460598,0.188347757742284,0.188347757742284, +0.188533039613531,0.188533039613531,0.18859004221891,0.188594520331187,0.188558818853925,0.188499229093302,0.188433618907759,0.188378770460598,0.188347757742284,0.188347757742284, +0.213764872329161,0.213764872329161,0.213815728370891,0.213809404217599,0.213759695160253,0.213684850462601,0.213604948873704,0.213538969634426,0.213501841563673,0.213501841563673, +0.264073728234717,0.264073728234717,0.264111236440441,0.264082084694765,0.264003029757229,0.263896314340791,0.263786509809022,0.263697129267241,0.263647070834435,0.263647070834435, +0.338951375655526,0.338951375655526,0.338966484137458,0.338900137729325,0.338773772176051,0.338615850809407,0.338457800183052,0.338330242424909,0.338258799136219,0.338258799136219, +0.437203743168881,0.437203743168881,0.437185320098522,0.437064018678393,0.436868439735001,0.436635922535373,0.436406968104817,0.436221999741608,0.436117401167897,0.436117401167897, +0.556597070597981,0.556597070597981,0.556532961533433,0.556334024674373,0.556041824035575,0.555706158225731,0.555377684590797,0.555108453482219,0.554951837377208,0.554951837377208, +0.693610908396099,0.693610908396099,0.693493281636246,0.693184508395006,0.692760383456357,0.692287883185732,0.691824553100633,0.691431364400462,0.691186626575691,0.691186626575691, +0.843400445475131,0.843400445475131,0.843249325508366,0.842769165587152,0.842166424715362,0.841522495190011,0.840885935319923,0.84030955900372,0.839892130499221,0.839892130499221, + +00:46:01, +0.188649198853965,0.188649198853965,0.188706203683251,0.188710688896558,0.188674997955395,0.188615420263545,0.188549821593265,0.188494982140205,0.188463974348324,0.188463974348324, +0.188649198853965,0.188649198853965,0.188706203683251,0.188710688896558,0.188674997955395,0.188615420263545,0.188549821593265,0.188494982140205,0.188463974348324,0.188463974348324, +0.2138802845865,0.2138802845865,0.213931141422661,0.21392482541634,0.213875129796738,0.21380030110538,0.213720415097627,0.213654448171835,0.213617326890243,0.213617326890243, +0.26418672995301,0.26418672995301,0.264224237154138,0.264195096407949,0.264116061219951,0.264009370005495,0.263899589392091,0.263810227943437,0.263760180106984,0.263760180106984, +0.339058767394351,0.339058767394351,0.339073874496025,0.339007545011796,0.338881209743218,0.338723325514595,0.338565311724466,0.338437783546175,0.338366356777129,0.338366356777129, +0.437300692837724,0.437300692837724,0.4372822713638,0.437160997218926,0.436965464114844,0.436733002115827,0.43650410228175,0.436319178040128,0.436214604373862,0.436214604373862, +0.556677611361611,0.556677611361611,0.556613511492912,0.556414617788236,0.556122484056881,0.555786896638639,0.555458500259201,0.555189332447542,0.555032752988709,0.555032752988709, +0.693668925813383,0.693668925813383,0.693551319870853,0.693242612308291,0.692818580996639,0.692346186715971,0.69188296105786,0.69148986062847,0.691245177182853,0.691245177182853, +0.843430892843072,0.843430892843072,0.843279803480458,0.842799742307989,0.842197127428261,0.84155333375815,0.840916908415185,0.840340653194424,0.839923311254441,0.839923311254441, + +00:46:02, +0.188765354653965,0.188765354653965,0.188822361696991,0.188826854009465,0.188791173608975,0.188731607994412,0.188666020849057,0.188611190398274,0.188580187537468,0.188580187537468, +0.188765354653965,0.188765354653965,0.188822361696991,0.188826854009465,0.188791173608975,0.188731607994412,0.188666020849057,0.188611190398274,0.188580187537468,0.188580187537468, +0.213995689173596,0.213995689173596,0.214046546797407,0.214040238936855,0.213990556758135,0.213915744078867,0.213835873658818,0.213769919052045,0.213732804562747,0.213732804562747, +0.264299716935852,0.264299716935852,0.264337223131015,0.264308093383464,0.264229077944628,0.26412241093213,0.264012654237222,0.263923311881821,0.263873274641777,0.263873274641777, +0.339166136907149,0.339166136907149,0.339181242632298,0.339114930069597,0.338988625078821,0.338830777978811,0.338672801015101,0.338545302408535,0.338473892154495,0.338473892154495, +0.437397615102782,0.437397615102782,0.437379195231259,0.437257948354337,0.437062461072522,0.436830054251747,0.436601208991137,0.436416328852079,0.436311780082375,0.436311780082375, +0.556758124104062,0.556758124104062,0.556694033434686,0.556495182867996,0.556203116013543,0.555867606948963,0.555539287786603,0.555270183239959,0.555113640408735,0.555113640408735, +0.693726920190621,0.693726920190621,0.693609335061556,0.693300693148332,0.692876755417818,0.692404467073283,0.691941345788277,0.691548333583956,0.691303704489498,0.691303704489498, +0.843461327194601,0.843461327194601,0.843310268423102,0.842830305953742,0.842227817005801,0.841584159124693,0.840947868242819,0.840371734058346,0.83995447864131,0.83995447864131, + +00:46:03, +0.188881506994085,0.188881506994085,0.188938516240696,0.188943015650468,0.188907345795209,0.188847792266419,0.188782216655625,0.188727395215274,0.188696397290173,0.188696397290173, +0.188881506994085,0.188881506994085,0.188938516240696,0.188943015650468,0.188907345795209,0.188847792266419,0.188782216655625,0.188727395215274,0.188696397290173,0.188696397290173, +0.214111086077443,0.214111086077443,0.214161944482129,0.214155644766137,0.21410597603142,0.214031179370015,0.213951324544208,0.213885382261969,0.213848274568088,0.213848274568088, +0.264412689181342,0.264412689181342,0.264450194369168,0.264421075619395,0.264342079929332,0.264235437118749,0.264125704342455,0.26403638108042,0.263986354436832,0.263986354436832, +0.339273484204608,0.339273484204608,0.339288588556958,0.339222292913398,0.339096018193525,0.338938208212711,0.338780268065608,0.338652799022636,0.338581405278965,0.338581405278965, +0.437494509985053,0.437494509985053,0.437476091721883,0.437354872105605,0.437159430629021,0.43692707896413,0.436698288253987,0.436513452198477,0.436408928314459,0.436408928314459, +0.556838608851054,0.556838608851054,0.556774527384464,0.556575719939371,0.556283719931299,0.555948289182473,0.555620047198807,0.5553510058853,0.555194499663132,0.555194499663132, +0.693784891550913,0.693784891550913,0.693667327231455,0.693358750938254,0.692934906743062,0.692462724280892,0.69199970731516,0.691606783290239,0.691362208518974,0.691362208518974, +0.84349174854334,0.84349174854334,0.843340720349935,0.842860856538091,0.842258493461728,0.841614971303456,0.840978814816709,0.840402801609432,0.839985632673821,0.839985632673821, + +00:46:04, +0.188997655854907,0.188997655854907,0.189054667294958,0.189059173800155,0.189023514494664,0.18896397306011,0.188898408993488,0.1888435965717,0.188812603586923,0.188812603586923, +0.188997655854907,0.188997655854907,0.189054667294958,0.189059173800155,0.189023514494664,0.18896397306011,0.188898408993488,0.1888435965717,0.188812603586923,0.188812603586923, +0.214226475285059,0.214226475285059,0.214277334463852,0.214271042891204,0.214221387603594,0.214146606965801,0.214066767740749,0.21400083778854,0.213963736893187,0.213963736893187, +0.264525646687584,0.264525646687584,0.2645631508667,0.264534043113837,0.264455067172145,0.264348448563417,0.264238739705836,0.264149435537266,0.264099419490174,0.264099419490174, +0.339380809297406,0.339380809297406,0.339395912280672,0.33932963355386,0.339203389097981,0.339045616226941,0.338887712886629,0.338760273399114,0.338688896161172,0.338688896161172, +0.437591377505507,0.437591377505507,0.43757296085663,0.437451768493686,0.4372563728053,0.437024076273944,0.436795340091278,0.436610548100313,0.436506049091112,0.436506049091112, +0.556919065628274,0.556919065628274,0.556854993367921,0.556656229028045,0.556364295835857,0.556028943364908,0.555700778521583,0.555431800409362,0.555275330777714,0.555275330777714, +0.69384283991733,0.69384283991733,0.693725296403617,0.693416785701152,0.69299303499551,0.692520958361986,0.692058045661751,0.691665209770609,0.6914206892946,0.6914206892946, +0.843522156902897,0.843522156902897,0.843371159274576,0.842891394074704,0.842289156809771,0.841645770308235,0.841009748150721,0.840433855861612,0.840016773365945,0.840016773365945, + +00:46:05, +0.189113801217045,0.189113801217045,0.189170814840403,0.189175328439145,0.189139679687943,0.18908015035606,0.189014597843194,0.188959794448081,0.188928806408233,0.188928806408233, +0.189113801217045,0.189113801217045,0.189170814840403,0.189175328439145,0.189139679687943,0.18908015035606,0.189014597843194,0.188959794448081,0.188928806408233,0.188928806408233, +0.214341856783482,0.214341856783482,0.214392716729619,0.214386433299093,0.214336791461676,0.214262026853223,0.214182203235415,0.214116285618713,0.214079191524989,0.214079191524989, +0.26463858945269,0.26463858945269,0.26467609262172,0.264646995864892,0.264568039671151,0.264461445264201,0.264351760325417,0.264262475250398,0.264212469799835,0.264212469799835, +0.33948811219621,0.33948811219621,0.339503213814098,0.339436952001631,0.339310737802832,0.339153002032136,0.338995135488793,0.338867725548596,0.338796364811741,0.338796364811741, +0.43768821768509,0.43768821768509,0.43766980265643,0.437548637539508,0.437353287622294,0.437121046202133,0.436892364523966,0.436707616578553,0.436603142433304,0.436603142433304, +0.556999494461375,0.556999494461375,0.556935431410699,0.556736710159669,0.55644484375289,0.556109569521971,0.555781481780666,0.555512566837908,0.555356133778258,0.555356133778258, +0.69390076531291,0.69390076531291,0.693783242601079,0.693474797460086,0.693051140198267,0.692579169339724,0.692116360851263,0.691723613048324,0.691479146839661,0.691479146839661, +0.843552552286857,0.843552552286857,0.843401585210624,0.842921918577224,0.842319807063636,0.841676556152808,0.841040668258703,0.840464896828795,0.840047900731636,0.840047900731636, + +00:46:06, +0.189229943061141,0.189229943061141,0.189286958857683,0.189291479548084,0.189255841355675,0.189196324134875,0.189130783185322,0.189075988824973,0.189045005734648,0.189045005734648, +0.189229943061141,0.189229943061141,0.189286958857683,0.189291479548084,0.189255841355675,0.189196324134875,0.189130783185322,0.189075988824973,0.189045005734648,0.189045005734648, +0.214457230559772,0.214457230559772,0.214508091266498,0.214501815976863,0.214452187592708,0.214377439019299,0.214297631015202,0.214231725739464,0.214194638450461,0.214194638450461, +0.264751517474776,0.264751517474776,0.264789019632345,0.264759933870666,0.264680997424445,0.26457442721918,0.264464766199258,0.264375500217862,0.264325505363854,0.264325505363854, +0.339595392911676,0.339595392911676,0.339610493167884,0.339544248267351,0.339418064318709,0.339260365638923,0.339102535882721,0.338975155481698,0.338903811241286,0.338903811241286, +0.437785030544721,0.437785030544721,0.437766617142191,0.437645479263975,0.43745017510091,0.437217988769615,0.43698936157298,0.436804657654135,0.43670020836198,0.43670020836198, +0.557079895375977,0.557079895375977,0.557015841538406,0.556817163359858,0.556525363708038,0.556190167679331,0.555862157001758,0.555593305196667,0.555436908690512,0.555436908690512, +0.69395866776066,0.69395866776066,0.693841165846847,0.69353278623809,0.693109222374408,0.692637357237233,0.692174652906876,0.691781993146608,0.691537581177412,0.691537581177412, +0.84358293470879,0.84358293470879,0.843431998171657,0.842952430059278,0.842350444237014,0.841707328850932,0.841071575154481,0.840495924524871,0.840079014784828,0.840079014784828, + +00:46:07, +0.189346081367867,0.189346081367867,0.189403099327481,0.189407627107651,0.189371999478518,0.189312494377187,0.189246965000478,0.189192179682962,0.189161201546742,0.189161201546742, +0.189346081367867,0.189346081367867,0.189403099327481,0.189407627107651,0.189371999478518,0.189312494377187,0.189246965000478,0.189192179682962,0.189161201546742,0.189161201546742, +0.214572596601009,0.214572596601009,0.214623458061574,0.214617190911594,0.214567575983753,0.214492843451069,0.214413051067126,0.214347158137791,0.214310077656588,0.214310077656588, +0.264864430751968,0.264864430751968,0.264901931896698,0.264872857129273,0.264793940430126,0.264687394426434,0.264577757325424,0.26448851043771,0.264438526180275,0.264438526180275, +0.339702651454451,0.339702651454451,0.339717750352667,0.339651522361648,0.339525368656234,0.339367707057914,0.33920991407902,0.339082563209026,0.339011235460412,0.339011235460412, +0.437881816105295,0.437881816105295,0.437863404334793,0.437742293687963,0.437547035262032,0.437314903997282,0.437086331259223,0.436901671347973,0.436797246898061,0.436797246898061, +0.557160268397664,0.557160268397664,0.557096223776617,0.556897588654196,0.556605855726905,0.556270737862625,0.555942804210528,0.555674015511333,0.555517655540185,0.555517655540185, +0.694016547283556,0.694016547283556,0.693899066163895,0.693590752058162,0.693167281546976,0.692695522077609,0.692232921851737,0.691840350088657,0.691595992331074,0.691595992331074, +0.843613304182243,0.843613304182243,0.843462398171239,0.842982928534475,0.842381068343574,0.841738088416347,0.841102468851864,0.84052693896371,0.840110115539437,0.840110115539437, + +00:46:08, +0.189462216117923,0.189462216117923,0.189519236230509,0.189523771098552,0.189488154037163,0.189428661063662,0.189363143269301,0.189308367002664,0.189277393825119,0.189277393825119, +0.189462216117923,0.189462216117923,0.189519236230509,0.189523771098552,0.189488154037163,0.189428661063662,0.189363143269301,0.189308367002664,0.189277393825119,0.189277393825119, +0.214687954894297,0.214687954894297,0.214738817101957,0.214732558090386,0.214682956621895,0.214608240135595,0.214528463378225,0.214462582800713,0.21442550913038,0.21442550913038, +0.264977329282396,0.264977329282396,0.265014829412908,0.264985765638836,0.264906868686301,0.264800346884054,0.264690733701988,0.264601505908003,0.264551532247152,0.264551532247152, +0.339809887835169,0.339809887835169,0.339824985379071,0.339758774295141,0.339632650826017,0.339475026299715,0.339317270088291,0.339189948741174,0.339118637479711,0.339118637479711, +0.437978574387679,0.437978574387679,0.43796016425509,0.437839080832327,0.437643868126516,0.437411791906,0.437183273603574,0.436998657680955,0.436894258062439,0.436894258062439, +0.557240613551989,0.557240613551989,0.557176578150872,0.556977986068233,0.556686319835066,0.556351280097457,0.556023423432609,0.55575469780757,0.555598374352957,0.555598374352957, +0.694074403904541,0.694074403904541,0.693956943575166,0.69364869494327,0.693225317738983,0.692753663883915,0.692291167708965,0.691898683897633,0.691654380323838,0.691654380323838, +0.843643660720749,0.843643660720749,0.84349278522291,0.843013414016404,0.842411679396967,0.841768834862774,0.841133349364641,0.840557940159164,0.840141203009357,0.840141203009357, + +00:46:09, +0.18957834729204,0.18957834729204,0.189635369547509,0.189639911501523,0.189604305012326,0.189544824174991,0.189479317972458,0.189424550764724,0.189393582550412,0.189393582550412, +0.18957834729204,0.18957834729204,0.189635369547509,0.189639911501523,0.189604305012326,0.189544824174991,0.189479317972458,0.189424550764724,0.189393582550412,0.189393582550412, +0.214803305426757,0.214803305426757,0.214854168374776,0.214847917500364,0.214798329494241,0.21472362905996,0.214643867935559,0.214577999715271,0.214540932858867,0.214540932858867, +0.265090213064199,0.265090213064199,0.265127712179112,0.265098659397481,0.265019782191084,0.264913284590137,0.264803695327031,0.264714486626808,0.264664523562543,0.264664523562543, +0.339917102064457,0.339917102064457,0.339932198257714,0.339866004078436,0.339739910838659,0.339582323374919,0.339424603921122,0.339297312088727,0.339226017309767,0.339226017309767, +0.438075305412717,0.438075305412717,0.438056896923913,0.437935840717891,0.437740673715193,0.437508652516612,0.437280188626885,0.437095616673945,0.436991241875986,0.436991241875986, +0.55732093086447,0.55732093086447,0.557256904686678,0.557058355627485,0.556766756058057,0.556431794409394,0.556104014693604,0.555835352111006,0.555679065154471,0.555679065154471, +0.694132237646529,0.694132237646529,0.69401479810357,0.693706614916354,0.69328333097341,0.692811782679186,0.692349390501646,0.691956994596667,0.691712745178866,0.691712745178866, +0.843674004337818,0.843674004337818,0.843523159340195,0.843043886518633,0.842442277410825,0.841799568203912,0.841164216706583,0.840588928125066,0.840172277208464,0.840172277208464, + +00:46:10, +0.189694474870979,0.189694474870979,0.189751499259251,0.189756048297331,0.189720452384756,0.189660983691898,0.189595489090644,0.189540730949817,0.189509767703284,0.189509767703284, +0.189694474870979,0.189694474870979,0.189751499259251,0.189756048297331,0.189720452384756,0.189660983691898,0.189595489090644,0.189540730949817,0.189509767703284,0.189509767703284, +0.214918648185536,0.214918648185536,0.214969511867181,0.214963269128671,0.214913694587916,0.214839010211267,0.214759264726209,0.214693408868527,0.2146563488291,0.2146563488291, +0.265203082095522,0.265203082095522,0.265240580193454,0.265211538403344,0.265132680942595,0.265026207542786,0.264916642198639,0.264827452592196,0.264777500124516,0.264777500124516, +0.340024294152927,0.340024294152927,0.3400393889992,0.339973211722131,0.339847148704748,0.33968959829411,0.33953191558809,0.339404653262261,0.339333374961151,0.339333374961151, +0.438172009201227,0.438172009201227,0.438153602362064,0.438032573365457,0.43783745204887,0.437605485849932,0.437377076349984,0.437192548347778,0.437088198359542,0.437088198359542, +0.557401220360593,0.557401220360593,0.557337203409509,0.557138697357434,0.556847164421385,0.556512280823972,0.556184578019078,0.555915978447234,0.555759727970339,0.555759727970339, +0.694190048532403,0.694190048532403,0.694072629771989,0.693764512000317,0.693341321273206,0.692869878486421,0.692407590252832,0.69201528220886,0.691771086919283,0.691771086919283, +0.843704335046943,0.843704335046943,0.843553520536598,0.843074346054715,0.842472862398763,0.841830288453445,0.841195070891441,0.840619902875228,0.840203338150616,0.840203338150616, + +00:46:11, +0.189810598835528,0.189810598835528,0.189867625346536,0.189872181466768,0.189836596135229,0.189777139595134,0.189711656604585,0.189656907538648,0.189625949264428,0.189625949264428, +0.189810598835528,0.189810598835528,0.189867625346536,0.189872181466768,0.189836596135229,0.189777139595134,0.189711656604585,0.189656907538648,0.189625949264428,0.189625949264428, +0.215033983157798,0.215033983157798,0.215084847566346,0.215078612962472,0.215029051890069,0.214954383576643,0.214874653737276,0.214808810247563,0.214771757028151,0.214771757028151, +0.265315936374515,0.265315936374515,0.265353433454082,0.265324402654564,0.265245564938961,0.26513911574011,0.265029574314904,0.26494040380225,0.264890461931142,0.264890461931142, +0.340131464111185,0.340131464111185,0.340146557614124,0.340080397236812,0.339954364434865,0.339796851067859,0.339639205099763,0.339511972272338,0.339440710444427,0.339440710444427, +0.438268685773999,0.438268685773999,0.438250280590323,0.4381292787958,0.437934203148328,0.437702291926751,0.437473936793671,0.437289452723268,0.437185127533927,0.437185127533927, +0.557481482065808,0.557481482065808,0.557417474344807,0.557219011283529,0.556927544950521,0.556592739366693,0.556265113434567,0.555996576841816,0.555840362826137,0.555840362826137, +0.694247836585012,0.694247836585012,0.694130438603272,0.693822386218036,0.69339928866129,0.692927951328591,0.692465766985549,0.692073546757279,0.691829405568188,0.691829405568188, +0.843734652861598,0.843734652861598,0.843583868825606,0.843104792638181,0.842503434374373,0.841860995625035,0.841225911932946,0.840650864423446,0.84023438584965,0.84023438584965, + +00:46:12, +0.189926719166507,0.189926719166507,0.189983747790193,0.189988310990661,0.189952736244553,0.18989329186548,0.189827820495037,0.189773080511951,0.189742127214565,0.189742127214565, +0.189926719166507,0.189926719166507,0.189983747790193,0.189988310990661,0.189952736244553,0.18989329186548,0.189827820495037,0.189773080511951,0.189742127214565,0.189742127214565, +0.215149310330731,0.215149310330731,0.215200175459463,0.215193948988953,0.215144401387869,0.215069749143233,0.214990034955884,0.214924203839485,0.214887157443116,0.214887157443116, +0.265428775899336,0.265428775899336,0.265466271959155,0.265437252149291,0.265358434178316,0.265252009180227,0.265142491673929,0.265053340255055,0.265003408980502,0.265003408980502, +0.340238611949823,0.340238611949823,0.34025370411307,0.340187560633056,0.340061558039577,0.33990408170673,0.339746472466698,0.339619269129512,0.339548023770146,0.339548023770146, +0.4383653351518,0.4383653351518,0.438346931629442,0.43822595702967,0.438030927034321,0.437799070767834,0.437570769978724,0.437386329821199,0.437282029419932,0.437282029419932, +0.557561716005535,0.557561716005535,0.557497717517978,0.557299297431185,0.557007897670903,0.556673170063027,0.556345620965571,0.55607714732028,0.555920969747409,0.555920969747409, +0.694305601827178,0.694305601827178,0.694188224620237,0.693880237592354,0.693457233160547,0.692986001228635,0.692523920722786,0.692131788264963,0.691887701148645,0.691887701148645, +0.84376495779524,0.84376495779524,0.843614204220687,0.843135226282546,0.842533993351233,0.841891689732326,0.841256739844812,0.840681812783492,0.840265420319386,0.840265420319386, + +00:46:13, +0.190042835844762,0.190042835844762,0.190099866571082,0.190104436849862,0.190068872693561,0.190009440483748,0.189943980742785,0.189889249850488,0.189858301534447,0.189858301534447, +0.190042835844762,0.190042835844762,0.190099866571082,0.190104436849862,0.190068872693561,0.190009440483748,0.189943980742785,0.189889249850488,0.189858301534447,0.189858301534447, +0.215264629691542,0.215264629691542,0.215315495533746,0.215309277195321,0.215259743068505,0.215185106898205,0.215105408369178,0.215039589631418,0.215002550061108,0.215002550061108, +0.265541600668151,0.265541600668151,0.265579095706833,0.265550086885678,0.265471288658799,0.26536488786126,0.265255394273819,0.265166261948706,0.265116341270683,0.265116341270683, +0.340345737679424,0.340345737679424,0.340360828506611,0.340294701921427,0.340168729529443,0.340011290221274,0.339853717699442,0.339726543844327,0.339655314948849,0.339655314948849, +0.43846195735537,0.43846195735537,0.438443555500148,0.438322608087793,0.438127623727579,0.43789582239392,0.437667575925892,0.437483179662333,0.437378904038325,0.437378904038325, +0.557641922205158,0.557641922205158,0.557577932954395,0.557379555825787,0.557088222607937,0.556753572938409,0.556426100637557,0.556157689908119,0.556001548759666,0.556001548759666, +0.694363344281688,0.694363344281688,0.694245987845671,0.693938066146084,0.693515154793836,0.693044028209462,0.692582051487506,0.692190006754917,0.691945973683689,0.691945973683689, +0.843795249861304,0.843795249861304,0.843644526735288,0.843165647001304,0.842564539342898,0.841922370788945,0.841287554640732,0.840712747969125,0.840296441573622,0.840296441573622, + +00:46:14, +0.190158948851172,0.190158948851172,0.190215981670089,0.190220559025253,0.19018500546312,0.190125585430777,0.190060137328641,0.190005415535053,0.189974472204855,0.189974472204855, +0.190158948851172,0.190158948851172,0.190215981670089,0.190220559025253,0.19018500546312,0.190125585430777,0.190060137328641,0.190005415535053,0.189974472204855,0.189974472204855, +0.21537994122746,0.21537994122746,0.215430807776431,0.215424597568805,0.215375076919191,0.215300456828748,0.215220773964322,0.215154967610508,0.215117934869265,0.215117934869265, +0.26565441067913,0.26565441067913,0.265691904695289,0.265662906861886,0.265584128378559,0.26547775178134,0.265368282112687,0.265279168881303,0.265229258799777,0.265229258799777, +0.34045284131056,0.34045284131056,0.340467930805311,0.340401821112481,0.340275878915012,0.340118476622032,0.339960940808531,0.339833796427315,0.339762583991067,0.339762583991067, +0.438558552405426,0.438558552405426,0.438540152223143,0.438419231990867,0.438224293248807,0.437992546825723,0.437764354655901,0.437580002267406,0.437475751409847,0.437475751409847, +0.557722100690028,0.557722100690028,0.5576581206794,0.557459786492682,0.557168519786994,0.55683394801824,0.556506552475959,0.556238204630796,0.556082099888384,0.556082099888384, +0.6944210639713,0.6944210639713,0.694303728302331,0.693995871902007,0.693573053583979,0.693102032293947,0.692640159302637,0.692248202250116,0.692004223196322,0.692004223196322, +0.84382552907321,0.84382552907321,0.84367483638284,0.843196054807932,0.842595072362907,0.841953038808496,0.841318356334382,0.84074366999408,0.840327449626139,0.840327449626139, + +00:46:15, +0.190275058166642,0.190275058166642,0.190332093068133,0.190336677497747,0.190301134534123,0.190241726687436,0.19017629023345,0.190121577546468,0.190090639206598,0.190090639206598, +0.190275058166642,0.190275058166642,0.190332093068133,0.190336677497747,0.190301134534123,0.190241726687436,0.19017629023345,0.190121577546468,0.190090639206598,0.190090639206598, +0.215495244925737,0.215495244925737,0.215546112174774,0.215539910096654,0.215490402927157,0.215415798922071,0.215336131728505,0.215270337763925,0.215233311854745,0.215233311854745, +0.265767205930452,0.265767205930452,0.265804698922697,0.265775712076084,0.265696953335748,0.265590600938602,0.265481155188656,0.265392061050953,0.265342161565885,0.265342161565885, +0.340559922853793,0.340559922853793,0.340575011019722,0.340508918216762,0.34038300620682,0.340225640919537,0.340068141804492,0.339941026888998,0.339869830907322,0.339869830907322, +0.438655120322657,0.438655120322657,0.438636721819105,0.438515828759566,0.438320935618683,0.438089244083931,0.437861106189452,0.437676797657127,0.437572571555214,0.437572571555214, +0.557802251485464,0.557802251485464,0.5577382807183,0.557539989457186,0.557248789233414,0.55691429532789,0.556586976506177,0.556318691513737,0.556162623159008,0.556162623159008, +0.694478760918741,0.694478760918741,0.694361446012941,0.694053654882875,0.693630929553771,0.693160013504937,0.692698244191079,0.692306374773503,0.692062449709516,0.692062449709516, +0.843855795444356,0.843855795444356,0.843705133176755,0.843226449715888,0.842625592424779,0.841983693804569,0.841349144939418,0.840774578872075,0.840358444490698,0.840358444490698, + +00:46:16, +0.190391163772107,0.190391163772107,0.19044820074616,0.190452792248285,0.190417259887494,0.190357864234623,0.190292439438083,0.190237735865582,0.190206802520516,0.190206802520516, +0.190391163772107,0.190391163772107,0.19044820074616,0.190452792248285,0.190417259887494,0.190357864234623,0.190292439438083,0.190237735865582,0.190206802520516,0.190206802520516, +0.215610540773642,0.215610540773642,0.215661408716053,0.215655214766138,0.215605721079658,0.215531133165407,0.215451481648933,0.215385700078857,0.215348681004725,0.215348681004725, +0.2658799864203,0.2658799864203,0.26591747838724,0.265888502526446,0.265809763528528,0.265703435331192,0.265594013499851,0.265504938455772,0.265455049567114,0.265455049567114, +0.340666982319675,0.340666982319675,0.340682069160386,0.340615993244804,0.340490111415394,0.340332783124308,0.34017532069784,0.34004823523989,0.339977055708123,0.339977055708123, +0.438751661127727,0.438751661127727,0.438733264308684,0.43861239841454,0.438417550857861,0.438185914189209,0.437957830547218,0.437773565852182,0.437669364495117,0.437669364495117, +0.557882374616751,0.557882374616751,0.557818413096368,0.557620164744583,0.557329030972501,0.556994614892693,0.556667372753578,0.556399150582337,0.556243118596947,0.556243118596947, +0.694536435146707,0.694536435146707,0.694419141000197,0.694111415111408,0.693688782725976,0.693217971865246,0.692756306175697,0.692364524347991,0.692120653246211,0.692120653246211, +0.843886048988124,0.843886048988124,0.843735417130426,0.843256831738609,0.842656099542015,0.842014335790731,0.841379920469477,0.840805474616809,0.840389426181042,0.840389426181042, + +00:46:17, +0.190507265648533,0.190507265648533,0.190564304685145,0.190568903257836,0.190533381504185,0.190473998053267,0.190408584923443,0.190353890473278,0.190322962127477,0.190322962127477, +0.190507265648533,0.190507265648533,0.190564304685145,0.190568903257836,0.190533381504185,0.190473998053267,0.190408584923443,0.190353890473278,0.190322962127477,0.190322962127477, +0.215725828758468,0.215725828758468,0.215776697387565,0.21577051156455,0.215721031363969,0.215646459546007,0.215566823712837,0.215501054542516,0.215464042306407,0.215464042306407, +0.265992752146865,0.265992752146865,0.26603024308711,0.266001278211153,0.265922558955065,0.265816254957258,0.265706857044406,0.265617801093879,0.265567922801578,0.265567922801578, +0.340774019718746,0.340774019718746,0.340789105237836,0.340723046207133,0.340597194551252,0.340439903246857,0.34028247749908,0.340155421490492,0.340084258403971,0.340084258403971, +0.438848174841277,0.438848174841277,0.438829779712507,0.43870894097641,0.438514138986969,0.438282557162194,0.43805452774985,0.43787030687323,0.437766130250222,0.437766130250222, +0.55796247010914,0.55796247010914,0.557898517838846,0.557700312380121,0.557409245029527,0.557074906737953,0.556747741243498,0.556479581861956,0.556323586227579,0.556323586227579, +0.694594086677864,0.694594086677864,0.694476813286762,0.694169152610294,0.693746613123324,0.693275907397658,0.692814345279328,0.692422650996461,0.692178833829317,0.692178833829317, +0.843916289717877,0.843916289717877,0.843765688257227,0.843287200889517,0.842686593728096,0.842044964780534,0.841410682938177,0.840836357241962,0.840420394710894,0.840420394710894, + +00:46:18, +0.190623363776914,0.190623363776914,0.190680404866092,0.1906850105074,0.190649499365177,0.190590128124324,0.19052472667046,0.190470041350465,0.19043911800838,0.19043911800838, +0.190623363776914,0.190623363776914,0.190680404866092,0.1906850105074,0.190649499365177,0.190590128124324,0.19052472667046,0.190470041350465,0.19043911800838,0.19043911800838, +0.215841108867528,0.215841108867528,0.21589197817663,0.215885800479201,0.215836333767384,0.215761778051144,0.215682157907466,0.215616401142131,0.215579395747012,0.215579395747012, +0.266105503108346,0.266105503108346,0.2661429930205,0.266114039128391,0.266035339613533,0.265929059814959,0.265819685820463,0.265730648963402,0.265680781267397,0.265680781267397, +0.340881035061538,0.340881035061538,0.340896119262592,0.340830077114259,0.340704255624899,0.340547001297682,0.340389612218707,0.340262585651294,0.340191439005356,0.340191439005356, +0.438944661483919,0.438944661483919,0.438926268051174,0.438805456465775,0.438610700026611,0.4383791730235,0.438151197817971,0.437967020740906,0.437862868841169,0.437862868841169, +0.558042537987851,0.558042537987851,0.557978594970942,0.557780432389018,0.557489431429731,0.557155170888939,0.556828082001236,0.556559985377923,0.556404026076248,0.556404026076248, +0.694651715534846,0.694651715534846,0.694534462895269,0.694226867402192,0.693804420768518,0.693333820124926,0.692872361524778,0.692480754741763,0.692236991481712,0.692236991481712, +0.843946517646957,0.843946517646957,0.843795946570514,0.843317557182013,0.842717074996486,0.842075580787507,0.841441432359118,0.840867226761195,0.840451350093958,0.840451350093958, + +00:46:19, +0.19073945813827,0.19073945813827,0.190796501270035,0.190801113978006,0.190765613451481,0.19070625442878,0.190640864660094,0.190586188478081,0.190555270144151,0.190555270144151, +0.19073945813827,0.19073945813827,0.190796501270035,0.190801113978006,0.190765613451481,0.19070625442878,0.190640864660094,0.190586188478081,0.190555270144151,0.190555270144151, +0.215956381088156,0.215956381088156,0.216007251070588,0.216001081497425,0.21595162827722,0.215877088668113,0.215797484220092,0.215731739864957,0.215694741313781,0.215694741313781, +0.266218239302947,0.266218239302947,0.266255728185615,0.266226785276357,0.266148105502112,0.266041849902457,0.265932499826168,0.265843482062476,0.265793624962698,0.265793624962698, +0.340988028358569,0.340988028358569,0.341003111245166,0.340937085976688,0.340811294646831,0.340654077287274,0.340496724867206,0.340369727732779,0.340298597522756,0.340298597522756, +0.439041121076243,0.439041121076243,0.43902272934526,0.438901944903208,0.438707233997365,0.438475761793713,0.438247840772182,0.438063707475818,0.437959580288574,0.437959580288574, +0.55812257827807,0.55812257827807,0.55805864451783,0.557860524796456,0.55756959019832,0.557235407370886,0.556908395052061,0.556640361155533,0.556484438168264,0.556484438168264, +0.694709321740255,0.694709321740255,0.694592089848319,0.694284559509729,0.693862205684228,0.693391710069771,0.692930354934821,0.692538835606717,0.692295126226242,0.692295126226242, +0.843976732788692,0.843976732788692,0.843826192083624,0.84334790062948,0.842747543360628,0.842106183825164,0.84147216874588,0.84089808318815,0.84048229234392,0.84048229234392, + +00:46:20, +0.190855548713656,0.190855548713656,0.190912593878037,0.190917213650709,0.190881723744137,0.190822376947649,0.190756998873335,0.190702331837095,0.190671418515747,0.190671418515747, +0.190855548713656,0.190855548713656,0.190912593878037,0.190917213650709,0.190881723744137,0.190822376947649,0.190756998873335,0.190702331837095,0.190671418515747,0.190671418515747, +0.216071645407706,0.216071645407706,0.216122516056801,0.216116354606576,0.216066914880815,0.215992391384228,0.215912802638006,0.215847070698267,0.215810078993978,0.215810078993978, +0.266330960728877,0.266330960728877,0.266368448580664,0.266339516653249,0.26626085661899,0.266154625217923,0.266045299059676,0.265956300389242,0.265906453885616,0.265906453885616, +0.34109499962035,0.34109499962035,0.341110081196058,0.34104407280491,0.340918311627534,0.340761131226113,0.340603815455051,0.340476847745418,0.340405733966642,0.340405733966642, +0.439137553638812,0.439137553638812,0.439119163615317,0.438998406309257,0.438803740919782,0.438572323493396,0.438344456633054,0.438160367098551,0.438056264613027,0.438056264613027, +0.558202591004949,0.558202591004949,0.558138666504652,0.557940589627587,0.557649721360467,0.557315616208998,0.556988680421206,0.556720709220046,0.556564822528904,0.556564822528904, +0.694766905316666,0.694766905316666,0.694649694168485,0.694342228955503,0.693919967893092,0.693449577254885,0.6929883255322,0.692596893614111,0.692353238085724,0.692353238085724, +0.844006935156388,0.844006935156388,0.843856424809876,0.843378231245283,0.842777998833951,0.842136773906998,0.841502892112027,0.84092892653645,0.840513221474446,0.840513221474446, + +00:46:21, +0.19097163548415,0.19097163548415,0.191028682671189,0.191033309506597,0.190997830224212,0.190938495661976,0.1908731292912,0.190818471408503,0.190787563104153,0.190787563104153, +0.19097163548415,0.19097163548415,0.191028682671189,0.191033309506597,0.190997830224212,0.190938495661976,0.1908731292912,0.190818471408503,0.190787563104153,0.190787563104153, +0.216186901813556,0.216186901813556,0.21623777312265,0.216231619794029,0.216182193565528,0.216107686186826,0.216028113148522,0.215962393629355,0.215925408774888,0.215925408774888, +0.266443667384355,0.266443667384355,0.266481154203862,0.266452233257277,0.266373592962359,0.266267385759534,0.266158083519146,0.266069103941847,0.266019268034291,0.266019268034291, +0.341201948857379,0.341201948857379,0.341217029125757,0.341151037609409,0.341025306577482,0.340868163124666,0.340710883992707,0.34058394569967,0.340512848347472,0.340512848347472, +0.439233959192165,0.439233959192165,0.439215570881869,0.439094840704444,0.438900220814391,0.438668858143087,0.438441045421139,0.438256999629663,0.438152921835092,0.438152921835092, +0.558282576193608,0.558282576193608,0.558218660956517,0.558020626907527,0.557729824941311,0.557395797428446,0.557068938133875,0.556801029596693,0.556645179183415,0.556645179183415, +0.694824466286619,0.694824466286619,0.694707275878306,0.694399875762078,0.693977707417721,0.693507421702928,0.693046273339627,0.692654928786702,0.692411327082944,0.692411327082944, +0.844037124763334,0.844037124763334,0.843886644762571,0.843408549042769,0.842808441429859,0.842167351046485,0.841533602471099,0.8409597568197,0.840544137499183,0.840544137499183, + +00:46:22, +0.191087718430863,0.191087718430863,0.191144767630612,0.191149401526785,0.191113932872806,0.191054610552833,0.190989255894737,0.190934607173333,0.190903703890383,0.190903703890383, +0.191087718430863,0.191087718430863,0.191144767630612,0.191149401526785,0.191113932872806,0.191054610552833,0.190989255894737,0.190934607173333,0.190903703890383,0.190903703890383, +0.216302150293101,0.216302150293101,0.216353022255538,0.21634687704718,0.216297464318736,0.216222973063263,0.216143415738975,0.216077708645538,0.216040730643817,0.216040730643817, +0.266556359267605,0.266556359267605,0.266593845053432,0.266564935086653,0.266486314530419,0.266380131525473,0.266270853202747,0.266181892718446,0.266132067406871,0.266132067406871, +0.341308876080145,0.341308876080145,0.341323955044745,0.341257980400655,0.341132279507141,0.340975172993392,0.340817930490626,0.340691021605987,0.340619940675695,0.340619940675695, +0.439330337756814,0.439330337756814,0.439311951165415,0.439191248109266,0.438996673701695,0.438765365763298,0.438537607156958,0.438353605089688,0.43824955197531,0.43824955197531, +0.558362533869133,0.558362533869133,0.558298627898502,0.558100636661362,0.55780990096596,0.557475951054365,0.557149168215236,0.556881322310667,0.556725508157006,0.556725508157006, +0.694882004672628,0.694882004672628,0.694764835000294,0.694457499951991,0.694035424280691,0.693565243436529,0.693104198379785,0.692712941147218,0.692469393240656,0.692469393240656, +0.8440673016228,0.8440673016228,0.843916851954991,0.843438854035264,0.842838871161743,0.842197915257081,0.841564299836623,0.840990574051486,0.84057504043176,0.84057504043176, + +00:46:23, +0.191203797534933,0.191203797534933,0.191260848737454,0.191265489692416,0.191230031671043,0.191170721601323,0.191105378665022,0.191050739112639,0.191019840855481,0.191019840855481, +0.191203797534933,0.191203797534933,0.191260848737454,0.191265489692416,0.191230031671043,0.191170721601323,0.191105378665022,0.191050739112639,0.191019840855481,0.191019840855481, +0.216417390833759,0.216417390833759,0.216468263442889,0.216462126353447,0.216412727127842,0.216338252000918,0.216258710396718,0.216193015734151,0.216156044588089,0.216156044588089, +0.266669036376856,0.266669036376856,0.266706521127602,0.266677622139598,0.266599021321379,0.266492862513931,0.266383608108652,0.2662946667172,0.266244852001509,0.266244852001509, +0.341415781299128,0.341415781299128,0.341430858963489,0.341364901189112,0.341239230426966,0.341082160842741,0.340924954959253,0.340798075474808,0.340727010961749,0.340727010961749, +0.439426689353247,0.439426689353247,0.439408304486432,0.439287628544196,0.43909309960217,0.438861846374515,0.43863414186101,0.438450183499136,0.438346155054195,0.438346155054195, +0.558442464056579,0.558442464056579,0.558378567355649,0.558180618914143,0.557889949459488,0.557556077111862,0.557229370690423,0.556961587387133,0.556805809474858,0.556805809474858, +0.694939520497172,0.694939520497172,0.694822371556927,0.694515101547746,0.694093118504552,0.693623042478288,0.693162100675324,0.692770930718353,0.692527436581583,0.692527436581583, +0.844097465748038,0.844097465748038,0.8439470464004,0.843469146236078,0.842869288042973,0.842228466552224,0.841594984222104,0.841021378245373,0.840605930285788,0.840605930285788, + +00:46:24, +0.191319872777527,0.191319872777527,0.191376925972894,0.191381573984663,0.19134612660008,0.191286828788576,0.191221497583159,0.191166867207505,0.19113597398052,0.19113597398052, +0.191319872777527,0.191319872777527,0.191376925972894,0.191381573984663,0.19134612660008,0.191286828788576,0.191221497583159,0.191166867207505,0.19113597398052,0.19113597398052, +0.216532623422967,0.216532623422967,0.216583496672147,0.216577367700266,0.216527981980264,0.216453522987189,0.216373997109129,0.216308314882554,0.216271350595053,0.216271350595053, +0.266781698710345,0.266781698710345,0.266819182424609,0.266790294414338,0.266711713333449,0.266605578723104,0.266496348235042,0.266407425936276,0.266357621816366,0.266357621816366, +0.341522664524793,0.341522664524793,0.341537740892449,0.341471799985229,0.341346159347399,0.34118912668315,0.34103195740902,0.340905107316562,0.340834059216062,0.340834059216062, +0.439523014001928,0.439523014001928,0.439504630865368,0.439383982029681,0.439189498536269,0.438958299997202,0.43873064955377,0.438546734878489,0.438442731092237,0.438442731092237, +0.558522366780967,0.558522366780967,0.558458479352968,0.558260573690889,0.557969970446936,0.557636175626006,0.557309545584542,0.557041824851219,0.556886083162114,0.556886083162114, +0.694997013782703,0.694997013782703,0.694879885570654,0.694572680571818,0.694150790111818,0.693680818850771,0.693219980248864,0.692828897522773,0.692585457128417,0.692585457128417, +0.844127617152282,0.844127617152282,0.843977228112042,0.843499425658502,0.8428996920869,0.842259004945334,0.841625655641028,0.84105216941491,0.840636807074856,0.840636807074856, + +00:46:25, +0.191435944139842,0.191435944139842,0.191492999318139,0.191497654384729,0.191462217641101,0.191402932095751,0.191337612630284,0.191282991439044,0.1912521032466,0.1912521032466, +0.191435944139842,0.191435944139842,0.191492999318139,0.191497654384729,0.191462217641101,0.191402932095751,0.191337612630284,0.191282991439044,0.1912521032466,0.1912521032466, +0.216647848048186,0.216647848048186,0.216698721930778,0.216692601075095,0.216643228863447,0.216568786009497,0.216489275863605,0.216423606078123,0.216386648652077,0.216386648652077, +0.266894346266316,0.266894346266316,0.266931828942694,0.266902951909109,0.266824390564851,0.266718280151196,0.266609073580104,0.26652017037385,0.26647037684961,0.26647037684961, +0.3416295257676,0.3416295257676,0.341644600842074,0.341578676799447,0.341453066278875,0.341296070525046,0.34113893785035,0.341012117141671,0.340941085449052,0.340941085449052, +0.439619311723295,0.439619311723295,0.439600930322648,0.439480308586143,0.439285870524419,0.439054726651795,0.438827130255685,0.438643259248206,0.4385392801099,0.4385392801099, +0.558602242067286,0.558602242067286,0.558538363915437,0.558340501016586,0.558049963953313,0.557716246621837,0.557389692922661,0.557122034728024,0.55696632924389,0.55696632924389, +0.69505448455164,0.69505448455164,0.694937377063894,0.694630237046651,0.694208439124978,0.693738572576518,0.693277837122996,0.692886841583112,0.692643454903822,0.692643454903822, +0.844157755848746,0.844157755848746,0.844007397103145,0.843529692315809,0.842930083306858,0.84228953044981,0.841656314106865,0.841082947573626,0.840667670812538,0.840667670812538, + +00:46:26, +0.191552011603102,0.191552011603102,0.191609068754424,0.191613730873842,0.191578304775318,0.191519031504038,0.19145372378756,0.1913991117884,0.191368228634853,0.191368228634853, +0.191552011603102,0.191552011603102,0.191609068754424,0.191613730873842,0.191578304775318,0.191519031504038,0.19145372378756,0.1913991117884,0.191368228634853,0.191368228634853, +0.216763064696895,0.216763064696895,0.216813939206267,0.216807826465416,0.216758467764851,0.21668404105528,0.216604546647562,0.216538889308259,0.216501938746551,0.216501938746551, +0.267006979043019,0.267006979043019,0.267044460680105,0.267015594622148,0.266937053013811,0.266830966796415,0.266721784142032,0.266632900028102,0.266583117099415,0.266583117099415, +0.341736365037996,0.341736365037996,0.341751438822802,0.341685531642197,0.341559951231818,0.341402992378848,0.341245896293656,0.341119104960543,0.341048089671128,0.341048089671128, +0.439715582537759,0.439715582537759,0.439697202878673,0.439576608233978,0.439382215587022,0.439151126358706,0.438923583987179,0.438739756628721,0.438635802127625,0.438635802127625, +0.55868208994049,0.55868208994049,0.558618221068001,0.558420400916188,0.558129930003595,0.55779629012436,0.557469812729818,0.55720221704261,0.557046547745263,0.557046547745263, +0.695111932826373,0.695111932826373,0.694994846059036,0.694687770994657,0.694266065566487,0.693796303678035,0.693335671320278,0.692944762921973,0.692701429930427,0.692701429930427, +0.844187881850628,0.844187881850628,0.844037553386918,0.843559946221252,0.842960461716162,0.842320043079036,0.841686959633064,0.841113712735033,0.840698521512387,0.840698521512387, + +00:46:27, +0.191668075148561,0.191668075148561,0.191725134263014,0.191729803433264,0.191694387983973,0.191635126994653,0.191569831036177,0.191515228236742,0.191484350126437,0.191484350126437, +0.191668075148561,0.191668075148561,0.191725134263014,0.191729803433264,0.191694387983973,0.191635126994653,0.191569831036177,0.191515228236742,0.191484350126437,0.191484350126437, +0.216878273356594,0.216878273356594,0.21692914848612,0.216923043858726,0.21687369867196,0.216799288112001,0.21671980944844,0.216654164560381,0.216617220865884,0.216617220865884, +0.267119597038709,0.267119597038709,0.267157077635098,0.267128222551704,0.267049700678561,0.26694363865698,0.266834479919026,0.26674561489722,0.266695842563961,0.266695842563961, +0.341843182346416,0.341843182346416,0.34185825484506,0.341792364523898,0.34166681421664,0.341509892254961,0.341352832749341,0.341226070783576,0.341155071892686,0.341155071892686, +0.43981182646571,0.43981182646571,0.439793448553816,0.43967288099356,0.439478533744456,0.439247499138322,0.439020010768651,0.438836227040443,0.438732297165826,0.438732297165826, +0.558761910425503,0.558761910425503,0.558698050835572,0.558500273414616,0.558209868622724,0.557876306158549,0.557549905031017,0.557282371820009,0.557126738691282,0.557126738691282, +0.695169358629261,0.695169358629261,0.695052292578436,0.69474528243822,0.694323669458769,0.693854012177798,0.693393482863238,0.693002661561931,0.692759382230835,0.692759382230835, +0.844217995171107,0.844217995171107,0.844067696976551,0.843590187388067,0.842990827328108,0.842350542846376,0.841717592233056,0.841144464912621,0.840729359187937,0.840729359187937, + +00:46:28, +0.191784134757502,0.191784134757502,0.191841195825202,0.191845872044281,0.191810467248337,0.191751218548843,0.191685934357356,0.19163134076527,0.191600467702541,0.191600467702541, +0.191784134757502,0.191784134757502,0.191841195825202,0.191845872044281,0.191810467248337,0.191751218548843,0.191685934357356,0.19163134076527,0.191600467702541,0.191600467702541, +0.216993474014804,0.216993474014804,0.217044349757866,0.217038253242546,0.216988921572278,0.216914527167141,0.216835064253698,0.216769431821932,0.216732494997507,0.216732494997507, +0.26723220025165,0.26723220025165,0.267269679805933,0.267240835696028,0.267162333557342,0.267056295731113,0.266947160909293,0.266858314979399,0.266808553241436,0.266808553241436, +0.341949977703288,0.341949977703288,0.341965048919266,0.341899175454961,0.341773655243744,0.341616770163784,0.341459747227796,0.34133301462116,0.341262032124113,0.341262032124113, +0.439908043527509,0.439908043527509,0.439889667368428,0.439769126885235,0.439574825017074,0.439343845011007,0.439116410620473,0.438932670503755,0.438828765244893,0.438828765244893, +0.558841703547215,0.558841703547215,0.55877785324303,0.558580118536757,0.558289779835613,0.557956294749344,0.557629969851231,0.557362499085221,0.557206902106962,0.557206902106962, +0.695226761982633,0.695226761982633,0.695109716644423,0.694802771399692,0.694381250824221,0.693911698098253,0.693451271774375,0.693060537525526,0.692817311827614,0.692817311827614, +0.844248095823342,0.844248095823342,0.844097827885217,0.843620415829472,0.843021180155974,0.842381029765174,0.841748211920254,0.841175204119864,0.840760183852705,0.840760183852705, + +00:46:29, +0.191900190411236,0.191900190411236,0.19195725342231,0.19196193668821,0.191926542549709,0.191867306147883,0.191802033732348,0.191747449355213,0.191716581344382,0.191716581344382, +0.191900190411236,0.191900190411236,0.19195725342231,0.19196193668821,0.191926542549709,0.191867306147883,0.191802033732348,0.191747449355213,0.191716581344382,0.191716581344382, +0.217108666659067,0.217108666659067,0.217159543009052,0.217153454604419,0.21710413645333,0.217029758208204,0.216950311050816,0.216884691080372,0.216847761128871,0.216847761128871, +0.267344788680111,0.267344788680111,0.267382267190879,0.267353434053381,0.267274951648397,0.267168938017043,0.267059827111046,0.266971000272838,0.266921249130034,0.266921249130034, +0.342056751119029,0.342056751119029,0.342071821055827,0.342005964445785,0.341880474323524,0.341723626115703,0.341566639739403,0.341439936483674,0.341368970375788,0.341368970375788, +0.440004233743494,0.440004233743494,0.439985859342834,0.439865345929326,0.439671089425202,0.439440163997096,0.439212783562996,0.439029087039016,0.438925206385191,0.438925206385191, +0.558921469330483,0.558921469330483,0.558857628315222,0.558659936307467,0.558369663667138,0.558036255921654,0.557710007215398,0.55744259886321,0.557287038017283,0.557287038017283, +0.695284142908787,0.695284142908787,0.695167118279293,0.694860237901395,0.694438809685206,0.693969361461817,0.693509038076155,0.693118390835271,0.692875218743304,0.692875218743304, +0.844278183820477,0.844278183820477,0.844127946126068,0.843650631558665,0.843051520213021,0.842411503848757,0.841778818708052,0.841205930370217,0.840790995520188,0.840790995520188, + +00:46:30, +0.192016242091101,0.192016242091101,0.192073307035688,0.192077997346396,0.192042613869417,0.191983389773076,0.191918129142429,0.191863553987829,0.191832691033205,0.191832691033205, +0.192016242091101,0.192016242091101,0.192073307035688,0.192077997346396,0.192042613869417,0.191983389773076,0.191918129142429,0.191863553987829,0.191832691033205,0.191832691033205, +0.217223851276946,0.217223851276946,0.217274728227247,0.217268647931904,0.217219343302661,0.217144981222712,0.217065549827295,0.216999942323185,0.21696301924745,0.21696301924745, +0.267457362322367,0.267457362322367,0.26749483978821,0.267466017622028,0.267387554949981,0.267281565513006,0.267172478522507,0.267083670775746,0.267033930227954,0.267033930227954, +0.342163502604042,0.342163502604042,0.34217857126514,0.342112731506758,0.341987271466361,0.341830460121094,0.341673510294534,0.341546836381486,0.341475886658076,0.341475886658076, +0.440100397133979,0.440100397133979,0.440082024497333,0.439961538146131,0.439767326989144,0.439536456116902,0.439309129616543,0.439125476666561,0.43902162060706,0.43902162060706, +0.559001207800134,0.559001207800134,0.558937376076961,0.55873972675157,0.558449520142145,0.558116189700353,0.557790017148426,0.55752267117891,0.557367146447196,0.557367146447196, +0.695341501429993,0.695341501429993,0.695224497505314,0.694917681965623,0.69449634606406,0.694027002290874,0.693566781791016,0.693176221513648,0.692933103000414,0.692933103000414, +0.844308259175636,0.844308259175636,0.844158051712242,0.843680834588829,0.843081847512489,0.842441965110434,0.841809412609826,0.841236643677116,0.840821794203864,0.840821794203864, + +00:46:31, +0.192132289778467,0.192132289778467,0.192189356646715,0.192194054000213,0.192158681188817,0.192099469405754,0.192034220568908,0.191979654644404,0.191948796750285,0.191948796750285, +0.192132289778467,0.192132289778467,0.192189356646715,0.192194054000213,0.192158681188817,0.192099469405754,0.192034220568908,0.191979654644404,0.191948796750285,0.191948796750285, +0.217339027856023,0.217339027856023,0.217389905400039,0.217383833212586,0.217334542107836,0.217260196198209,0.217180780570656,0.217115185537873,0.217078269340737,0.217078269340737, +0.267569921176701,0.267569921176701,0.267607397596206,0.267578586400242,0.267500143460351,0.267394178217245,0.2672851151419,0.267196326486337,0.267146596533406,0.267146596533406, +0.342270232168725,0.342270232168725,0.342285299557592,0.342219476648261,0.342094046682627,0.341937272190324,0.34178035890355,0.341653714324954,0.341582780981334,0.341582780981334, +0.440196533719251,0.440196533719251,0.440178162852201,0.440057703555921,0.439863537729177,0.439632721390714,0.439405448801413,0.439221839406698,0.439118007930816,0.439118007930816, +0.559080918980958,0.559080918980958,0.559017096553031,0.558819489893856,0.558529349285447,0.558196096110284,0.557869999675188,0.557602716057222,0.557447227421616,0.557447227421616, +0.695398837568486,0.695398837568486,0.695281854344721,0.694975103614635,0.694553859983086,0.694084620607779,0.693624502941364,0.693234029583106,0.692990964621423,0.692990964621423, +0.844338321901924,0.844338321901924,0.844188144656856,0.843711024933125,0.843112162067602,0.842472413563495,0.841839993638932,0.841267344053979,0.840852579917195,0.840852579917195, + +00:46:32, +0.19224833345473,0.19224833345473,0.192305402236798,0.192310106631064,0.192274744489295,0.192215545027278,0.192150307993119,0.192095751306251,0.192064898476925,0.192064898476925, +0.19224833345473,0.19224833345473,0.192305402236798,0.192310106631064,0.192274744489295,0.192215545027278,0.192150307993119,0.192095751306251,0.192064898476925,0.192064898476925, +0.217454196383902,0.217454196383902,0.217505074515039,0.217499010434066,0.217449732856444,0.217375403122261,0.217296003268442,0.217230420711961,0.217193511396245,0.217193511396245, +0.267682465241401,0.267682465241401,0.267719940613154,0.267691140386301,0.267612717177774,0.267506776128009,0.267397736967461,0.267308967402831,0.267259248044601,0.267259248044601, +0.342376939823462,0.342376939823462,0.342392005943559,0.342326199880661,0.342200799982685,0.342044062333748,0.341887185576803,0.341760570324426,0.341689653355908,0.341689653355908, +0.440292643519575,0.440292643519575,0.440274274427687,0.440153842178945,0.439959721665554,0.439728959838793,0.43950174113788,0.439318175279712,0.439214368376749,0.439214368376749, +0.559160602897718,0.559160602897718,0.55909678976818,0.558899225759082,0.558609151121824,0.558275975176257,0.557949954820526,0.557682733523015,0.557527280965428,0.557527280965428, +0.695456151346477,0.695456151346477,0.695339188819722,0.695032502870664,0.694611351464558,0.694142216434857,0.693682201549576,0.693291815066068,0.693048803628778,0.693048803628778, +0.844368372012429,0.844368372012429,0.844218224973008,0.843741202604697,0.843142463891564,0.842502849221211,0.841870561808711,0.841298031514204,0.84088335267362,0.84088335267362, + +00:46:33, +0.192364373101316,0.192364373101316,0.192421443787374,0.192426155220378,0.192390803752263,0.192331616619037,0.192266391396427,0.192211843954716,0.192180996194457,0.192180996194457, +0.192364373101316,0.192364373101316,0.192421443787374,0.192426155220378,0.192390803752263,0.192331616619037,0.192266391396427,0.192211843954716,0.192180996194457,0.192180996194457, +0.217569356848207,0.217569356848207,0.217620235559876,0.217614179583969,0.21756491553609,0.217490601982452,0.217411217908216,0.217345647832993,0.217308745401509,0.217308745401509, +0.267794994514761,0.267794994514761,0.267832468837349,0.26780367957849,0.26772527610052,0.267619359243554,0.267510343997427,0.267421593523455,0.267371884759761,0.267371884759761, +0.342483625578628,0.342483625578628,0.342498690433407,0.342432901214317,0.342307531376885,0.342150830561713,0.341993990324634,0.34186740439024,0.341796503792136,0.341796503792136, +0.440388726555187,0.440388726555187,0.440370359244018,0.440249954035426,0.440055878818504,0.439825171481379,0.439598006646194,0.439414484305863,0.439310701965124,0.439310701965124, +0.55924025957514,0.55924025957514,0.559176455747125,0.558978934371976,0.558688925676024,0.558355826923051,0.55802988260925,0.557762723601124,0.557607307103484,0.557607307103484, +0.695513442786142,0.695513442786142,0.695396500952492,0.695089879755912,0.694668820530719,0.694199789794401,0.693739877637996,0.693349577984922,0.693106620044896,0.693106620044896, +0.844398409520221,0.844398409520221,0.844248292673782,0.843771367616673,0.843172752997563,0.842533272096837,0.841901117132481,0.841328706071173,0.840914112486565,0.840914112486565, + +00:46:34, +0.192480408699678,0.192480408699678,0.192537481279907,0.192542199749617,0.192506858959164,0.19244768416245,0.192382470760224,0.192327932571169,0.192297089884242,0.192297089884242, +0.192480408699678,0.192480408699678,0.192537481279907,0.192542199749617,0.192506858959164,0.19244768416245,0.192382470760224,0.192327932571169,0.192297089884242,0.192297089884242, +0.217684509236583,0.217684509236583,0.217735388522201,0.217729340649938,0.217680090134402,0.217605792766388,0.217526424477561,0.217460866888536,0.217423971344085,0.217423971344085, +0.267907508995084,0.267907508995084,0.267944982267089,0.267916203975102,0.267837820226868,0.267731927562141,0.267622936230046,0.267534204846443,0.267484506677112,0.267484506677112, +0.342590289444588,0.342590289444588,0.342605353037492,0.342539580659577,0.342414240875569,0.342257576884552,0.342100773157373,0.341974216532724,0.341903332300344,0.341903332300344, +0.440484782846303,0.440484782846303,0.440466417321394,0.440346039145561,0.440152009208231,0.439921356338684,0.43969424534658,0.439510766505386,0.439407008716184,0.439407008716184, +0.559319889037919,0.559319889037919,0.559256094514551,0.559058615757229,0.558768672972764,0.558435651375411,0.558109783066135,0.557842686316351,0.557687305860602,0.557687305860602, +0.695570711909629,0.695570711909629,0.695453790765179,0.695147234292548,0.694726267203783,0.694257340708677,0.693797531228942,0.693407318362028,0.693164413892166,0.693164413892166, +0.844428434438352,0.844428434438352,0.84427834777224,0.843801519982161,0.843203029398766,0.842563682203606,0.841931659623544,0.841359367738246,0.840944859369433,0.840944859369433, + +00:46:35, +0.192596440231299,0.192596440231299,0.19265351469589,0.192658240200266,0.192622910091469,0.192563747638963,0.192498546065931,0.192444017137012,0.192413179527669,0.192413179527669, +0.192596440231299,0.192596440231299,0.19265351469589,0.192658240200266,0.192622910091469,0.192563747638963,0.192498546065931,0.192444017137012,0.192413179527669,0.192413179527669, +0.217799653536694,0.217799653536694,0.217850533389686,0.217844493619638,0.217795256639029,0.217720975461696,0.217641622964081,0.217576077866174,0.217539189211548,0.217539189211548, +0.268020008680676,0.268020008680676,0.268057480900682,0.268028713574434,0.267950349555103,0.26784448108204,0.26773551366357,0.267646801370036,0.267597113794887,0.267597113794887, +0.342696931431697,0.342696931431697,0.342711993766158,0.342646238226778,0.342520928489069,0.342364301312593,0.342207534085342,0.342081006762196,0.342010138890846,0.342010138890846, +0.44058081241311,0.44058081241311,0.440562448679991,0.440442097529526,0.440248112854912,0.440017514430897,0.439790457259237,0.439607021898491,0.439503288650143,0.439503288650143, +0.559399491310719,0.559399491310719,0.559335706095111,0.559138269939503,0.558848393036725,0.558515448558049,0.558189656215926,0.557922621693469,0.557767277261569,0.557767277261569, +0.695627958739057,0.695627958739057,0.695511058279898,0.695204566502716,0.694783691505933,0.694314869199918,0.693855162344697,0.693465036219717,0.693222185192944,0.693222185192944, +0.844458446779856,0.844458446779856,0.844308390281426,0.843831659714251,0.843233293108324,0.842594079554737,0.841962189295186,0.841390016528769,0.840975593335609,0.840975593335609, + +00:46:36, +0.192712467677689,0.192712467677689,0.192769544016845,0.192774276553843,0.192738957130677,0.19267980703005,0.192614617294999,0.192560097633674,0.192529265106155,0.192529265106155, +0.192712467677689,0.192712467677689,0.192769544016845,0.192774276553843,0.192738957130677,0.19267980703005,0.192614617294999,0.192560097633674,0.192529265106155,0.192529265106155, +0.217914789736227,0.217914789736227,0.217965670150021,0.217959638480754,0.217910415037639,0.217836150056022,0.2177568133554,0.217691280753515,0.217654398991496,0.217654398991496, +0.268132493569852,0.268132493569852,0.26816996473644,0.26814120837479,0.268062864083515,0.267957019801524,0.267848076296259,0.26775938309248,0.267709706111328,0.267709706111328, +0.342803551550297,0.342803551550297,0.342818612629743,0.342752873926249,0.342627594227705,0.342471003856151,0.34231427311885,0.342187775088963,0.34211692357395,0.34211692357395, +0.440676815275773,0.440676815275773,0.440658453339961,0.440538129207468,0.440344189778702,0.440113645778182,0.439886642404342,0.439703250505363,0.439599541787195,0.439599541787195, +0.559479066418171,0.559479066418171,0.559415290513425,0.559217896943427,0.558928085892561,0.558595218495648,0.558269502083336,0.558002529757216,0.55784722133114,0.55784722133114, +0.695685183296512,0.695685183296512,0.695568303518736,0.695261876408526,0.694841093459324,0.694372375290329,0.693912771007518,0.693522731580288,0.693279933969557,0.693279933969557, +0.844488446557748,0.844488446557748,0.84433842021437,0.843861786826014,0.843263544139369,0.842624464163426,0.841992706160669,0.841420652456065,0.841006314398462,0.841006314398462, + +00:46:37, +0.192828491020388,0.192828491020388,0.192885569224321,0.192890308791893,0.192855000058314,0.192795862317215,0.192730684428906,0.192676174042612,0.192645346601147,0.192645346601147, +0.192828491020388,0.192828491020388,0.192885569224321,0.192890308791893,0.192855000058314,0.192795862317215,0.192730684428906,0.192676174042612,0.192645346601147,0.192645346601147, +0.218029917822887,0.218029917822887,0.21808079879092,0.218074775220992,0.218025565317921,0.217951316537034,0.217871995639165,0.217806475538186,0.217769600671544,0.217769600671544, +0.268244963660933,0.268244963660933,0.268282433772681,0.268253688374482,0.268175363810403,0.268069543718875,0.267960624126378,0.267871950012029,0.267822283624679,0.267822283624679, +0.342910149810723,0.342910149810723,0.342925209638569,0.342859487768306,0.342734238101788,0.342577684525529,0.342420990268199,0.342294521523321,0.342223686359951,0.342223686359951, +0.440772791454432,0.440772791454432,0.44075443132143,0.440634134199511,0.440440239999731,0.440209750400679,0.439982800802045,0.439799452346164,0.439695768147505,0.439695768147505, +0.559558614384872,0.559558614384872,0.559494847794081,0.559297496793598,0.559007751564888,0.558674961212854,0.558349320693044,0.558082410532298,0.557927138094036,0.557927138094036, +0.695742385604052,0.695742385604052,0.695625526503749,0.695319164032059,0.694898473086077,0.694429859002081,0.69397035723963,0.693580404466009,0.6933376602443,0.6933376602443, +0.844518433785025,0.844518433785025,0.844368437584079,0.843891901330505,0.843293782505015,0.842654836042856,0.842023210233242,0.841451275533443,0.841037022571341,0.841037022571341, + +00:46:38, +0.192944510240963,0.192944510240963,0.193001590299895,0.193006336895987,0.192971038855938,0.192911913481991,0.192846747449158,0.192792246345314,0.192761423994119,0.192761423994119, +0.192944510240963,0.192944510240963,0.193001590299895,0.193006336895987,0.192971038855938,0.192911913481991,0.192846747449158,0.192792246345314,0.192761423994119,0.192761423994119, +0.2181450377844,0.2181450377844,0.218195919300114,0.218189903828076,0.218140707467585,0.21806647489242,0.217987169803041,0.217921662207835,0.217884794239331,0.217884794239331, +0.268357418952244,0.268357418952244,0.268394888007732,0.268366153571826,0.268287848734069,0.268182052832382,0.268073157152199,0.267984502126941,0.267934846333194,0.267934846333194, +0.343016726223299,0.343016726223299,0.343031784802953,0.342966079763257,0.342840860121618,0.342684343331023,0.342527685543678,0.342401246075559,0.342330427259134,0.342330427259134, +0.440868740969201,0.440868740969201,0.440850382644501,0.440730112525757,0.440536263538103,0.440305828318502,0.440078932472473,0.439895627441031,0.439791967751218,0.439791967751218, +0.55963813523539,0.55963813523539,0.559574377961635,0.55937706951458,0.559087390078294,0.558754676734285,0.558429112069696,0.558162264043389,0.558007027574947,0.558007027574947, +0.695799565683705,0.695799565683705,0.695682727256963,0.695376429395367,0.694955830408286,0.694487320357321,0.694027921063227,0.69363805489912,0.693395364039442,0.693395364039442, +0.844548408474668,0.844548408474668,0.844398442403546,0.843922003240759,0.843324008218358,0.842685195206187,0.842053701526133,0.84148188577419,0.841067717867576,0.841067717867576, + +00:46:39, +0.193060525321009,0.193060525321009,0.193117607225176,0.193122360847727,0.193087073505131,0.193027960505936,0.19296280633729,0.192908314523292,0.192877497266575,0.192877497266575, +0.193060525321009,0.193060525321009,0.193117607225176,0.193122360847727,0.193087073505131,0.193027960505936,0.19296280633729,0.192908314523292,0.192877497266575,0.192877497266575, +0.218260149608513,0.218260149608513,0.218311031665356,0.218305024289753,0.21825584147436,0.218181625109889,0.218102335834714,0.218036840750129,0.217999979682516,0.217999979682516, +0.268469859442119,0.268469859442119,0.268507327439923,0.268478603965147,0.268400318852824,0.268294547140339,0.268185675372001,0.268097039435484,0.268047394235132,0.268047394235132, +0.343123280798338,0.343123280798338,0.343138338133198,0.343072649921399,0.342947460297486,0.342790980282918,0.342634358955568,0.342507948755954,0.342437146281776,0.342437146281776, +0.440964663840171,0.440964663840171,0.44094630732925,0.440826064206278,0.4406322604139,0.440401879551742,0.440175037435726,0.439991775810074,0.439888140618449,0.439888140618449, +0.559717628994258,0.559717628994258,0.559653881040609,0.559456615130904,0.559167001457334,0.558834365084525,0.55850887623791,0.55824209031513,0.558086889798531,0.558086889798531, +0.69585672355747,0.69585672355747,0.695739905800376,0.695433672520472,0.695013165448015,0.694544759378161,0.694085462500474,0.693695682901829,0.693453045377216,0.693453045377216, +0.844578370639638,0.844578370639638,0.844428434685743,0.843952092569795,0.843354221292476,0.842715541666564,0.842084180052552,0.841512483191576,0.841098400300479,0.841098400300479, + +00:46:40, +0.193176536242151,0.193176536242151,0.193233619981796,0.193238380628743,0.193203103987506,0.19314400337064,0.193078861074866,0.193024378558091,0.192993566400047,0.192993566400047, +0.193176536242151,0.193176536242151,0.193233619981796,0.193238380628743,0.193203103987506,0.19314400337064,0.193078861074866,0.193024378558091,0.192993566400047,0.192993566400047, +0.218375253282993,0.218375253282993,0.21842613587442,0.21842013659379,0.218370967325998,0.218296767177168,0.21821749372189,0.218152011152757,0.218115156988776,0.218115156988776, +0.268582285128897,0.268582285128897,0.268619752067593,0.268591039552773,0.268512774164984,0.268407026641045,0.268298178784068,0.26820956193593,0.26815992732876,0.26815992732876, +0.343229813546142,0.343229813546142,0.343244869639599,0.343179198253019,0.343054038639672,0.342897595391489,0.342741010514139,0.342614629574772,0.342543843438142,0.342543843438142, +0.441060560087406,0.441060560087406,0.44104220539573,0.440921989261127,0.440728230647176,0.440497904120464,0.440271115711883,0.440087897473381,0.439984286769294,0.439984286769294, +0.559797095685979,0.559797095685979,0.559733357055496,0.559536133667072,0.55924658572653,0.558914026288126,0.558588613222268,0.558321889372132,0.558166724789413,0.558166724789413, +0.695913859247314,0.695913859247314,0.695797062155954,0.695490893429364,0.695070478227297,0.694602176086685,0.694142981573507,0.693753288496316,0.693510704279831,0.693510704279831, +0.84460832029288,0.84460832029288,0.844458414443626,0.843982169330613,0.843384421740427,0.842745875437113,0.842114645825693,0.841543067798854,0.841129069883346,0.841129069883346, + +00:46:41, +0.19329254298604,0.19329254298604,0.193349628551419,0.193354396220693,0.193319130284705,0.19326004205772,0.193194911643478,0.193140438431282,0.193109631376093,0.193109631376093, +0.19329254298604,0.19329254298604,0.193349628551419,0.193354396220693,0.193319130284705,0.19326004205772,0.193194911643478,0.193140438431282,0.193109631376093,0.193109631376093, +0.218490348795628,0.218490348795628,0.218541231915098,0.218535240727974,0.218486085010268,0.218411901082007,0.218332643452297,0.218267173403429,0.218230326145811,0.218230326145811, +0.268694696010924,0.268694696010924,0.268732161889087,0.268703460333041,0.268625214668873,0.268519491332808,0.268410667386693,0.268322069626559,0.268272445612349,0.268272445612349, +0.343336324477005,0.343336324477005,0.34335137933244,0.343285724768392,0.343160595158447,0.343004188666999,0.342847640229651,0.34272128854227,0.342650518738487,0.342650518738487, +0.441156429730949,0.441156429730949,0.441138076863971,0.441017887710329,0.440824174257963,0.440593902044709,0.440367167320995,0.440183992451015,0.44008040622382,0.44008040622382, +0.559876535335022,0.559876535335022,0.559812806030756,0.559615625147551,0.559326142910371,0.558993660369608,0.55866832304732,0.558401661238972,0.558246532572186,0.558246532572186, +0.695970972775176,0.695970972775176,0.695854196345634,0.695548092144006,0.695127768768136,0.694659570504947,0.694200478304431,0.69381087170473,0.693568340769461,0.693568340769461, +0.844638257447319,0.844638257447319,0.844488381690132,0.844012233536195,0.843414609575255,0.842776196530942,0.842145098858727,0.841573639609257,0.84115972662945,0.84115972662945, + +00:46:42, +0.193408545534358,0.193408545534358,0.193465632915736,0.193470407605261,0.193435152378395,0.193376076548819,0.193310958024746,0.193256494124464,0.193225692176304,0.193225692176304, +0.193408545534358,0.193408545534358,0.193465632915736,0.193470407605261,0.193435152378395,0.193376076548819,0.193310958024746,0.193256494124464,0.193225692176304,0.193225692176304, +0.218605436134224,0.218605436134224,0.218656319775204,0.218650336680111,0.218601194514962,0.218527026812176,0.218447785013682,0.218382327489875,0.218345487141341,0.218345487141341, +0.268807092086552,0.268807092086552,0.268844556902754,0.268815866304294,0.268737640362819,0.268631941213942,0.268523141178174,0.268434562505655,0.268384949084179,0.268384949084179, +0.34344281360121,0.34344281360121,0.343457867221995,0.343392229477786,0.343267129864069,0.343110760119702,0.342954248112352,0.342827925668696,0.342757172193057,0.342757172193057, +0.441252272790816,0.441252272790816,0.441233921753975,0.441113759573885,0.440920091266268,0.440689873344494,0.440463192283092,0.440280060763015,0.440176499002072,0.440176499002072, +0.559955947965826,0.559955947965826,0.559892227990816,0.559695089596778,0.559405673033317,0.559073267353459,0.558748005737586,0.558481405940195,0.558326313171412,0.558326313171412, +0.696028064162964,0.696028064162964,0.695911308391323,0.69560526868633,0.695185037092506,0.694716942654972,0.69425795271532,0.693868432549189,0.693625954868253,0.693625954868253, +0.844668182115863,0.844668182115863,0.844518336438182,0.844042285199504,0.843444784809982,0.842806504961139,0.842175539164812,0.841604198636,0.84119037055205,0.84119037055205, + +00:46:43, +0.193524543868813,0.193524543868813,0.193581633056466,0.193586414764163,0.193551170250274,0.193492106825612,0.193427000200318,0.193372545619266,0.193341748782294,0.193341748782294, +0.193524543868813,0.193524543868813,0.193581633056466,0.193586414764163,0.193551170250274,0.193492106825612,0.193427000200318,0.193372545619266,0.193341748782294,0.193341748782294, +0.218720515286611,0.218720515286611,0.218771399442573,0.218765424438029,0.218716295827891,0.218642144355464,0.218562918393812,0.218497473399843,0.218460639963106,0.218460639963106, +0.268919473354139,0.268919473354139,0.268956937106952,0.268928257464881,0.268850051245159,0.268744376282766,0.268635600156814,0.268547040571511,0.268497437742535,0.268497437742535, +0.343549280929028,0.343549280929028,0.343564333318527,0.343498712391456,0.343373642766788,0.343217309759844,0.343060834172484,0.342934540964285,0.342863803812087,0.342863803812087, +0.441348089286999,0.441348089286999,0.441329740085722,0.441209604871772,0.441015981692073,0.440785818039812,0.440559190618176,0.440376102429394,0.44027256512407,0.44027256512407, +0.560035333602796,0.560035333602796,0.559971622960071,0.559774527039157,0.559485176119794,0.559152847264134,0.558827661317553,0.558561123500315,0.558406066611619,0.558406066611619, +0.696085133432558,0.696085133432558,0.6959683983149,0.695662423078239,0.695242283222352,0.694774292558753,0.69431540482822,0.693925971051783,0.693683546598322,0.693683546598322, +0.844698094311404,0.844698094311404,0.844548278700678,0.844072324333488,0.843474947457615,0.842836800740778,0.842205966757085,0.841634744892281,0.841221001664384,0.841221001664384, + +00:46:44, +0.193640537971141,0.193640537971141,0.193697628955355,0.193702417679141,0.193667183882068,0.193608132869801,0.19354303815187,0.193488592897344,0.19345780117571,0.19345780117571, +0.193640537971141,0.193640537971141,0.193697628955355,0.193702417679141,0.193667183882068,0.193608132869801,0.19354303815187,0.193488592897344,0.19345780117571,0.19345780117571, +0.218835586240635,0.218835586240635,0.218886470905058,0.218880503989576,0.218831388936886,0.218757253699681,0.218678043580477,0.218612611121105,0.218575784598866,0.218575784598866, +0.26903183981205,0.26903183981205,0.269069302500044,0.269040633813156,0.268962447314234,0.268856796537607,0.268748044320924,0.268659503822426,0.268609911585708,0.268609911585708, +0.343655726470723,0.343655726470723,0.343670777632291,0.34360517351965,0.343480133876845,0.343323837597657,0.343167398420276,0.343041134439265,0.342970413605802,0.342970413605802, +0.441443879239465,0.441443879239465,0.441425531879168,0.441305423623944,0.441111845555336,0.440881736150629,0.440655162346227,0.440472117470141,0.44036860460981,0.44036860460981, +0.560114692270307,0.560114692270307,0.560050990962885,0.55985393749906,0.559564652194196,0.559232400126058,0.558907289811676,0.558640813943813,0.558485792917303,0.558485792917303, +0.696142180605807,0.696142180605807,0.696025466138212,0.695719555341605,0.695299507179586,0.694831620238256,0.694372834665146,0.69398348723457,0.693741115981756,0.693741115981756, +0.844727994046813,0.844727994046813,0.844578208490502,0.844102350951074,0.843505097531141,0.84286708388291,0.842236381648666,0.841665278391279,0.841251619979674,0.841251619979674, + +00:46:45, +0.193756527823107,0.193756527823107,0.193813620594181,0.193818416331964,0.193783193255529,0.193724154663113,0.193659071861109,0.193604635940383,0.193573849338224,0.193573849338224, +0.193756527823107,0.193756527823107,0.193813620594181,0.193818416331964,0.193783193255529,0.193724154663113,0.193659071861109,0.193604635940383,0.193573849338224,0.193573849338224, +0.218950648984166,0.218950648984166,0.219001534150533,0.218995575322619,0.218946473829799,0.218872354832658,0.218793160561484,0.218727740641452,0.218690921036402,0.218690921036402, +0.269144191458655,0.269144191458655,0.2691816530804,0.26915299534748,0.269074828568393,0.268969201976797,0.268860473668821,0.268771952256703,0.268722370611997,0.268722370611997, +0.343762150236546,0.343762150236546,0.343777200173529,0.343711612872602,0.343586603204469,0.343430343643367,0.343273940865947,0.343147706103852,0.343077001584417,0.343077001584417, +0.441539642668157,0.441539642668157,0.441521297154242,0.441401215850328,0.441207682875991,0.440977627696891,0.440751107487201,0.440568105905223,0.440464617479263,0.440464617479263, +0.560194023992701,0.560194023992701,0.56013033202359,0.559933321000827,0.559644101280886,0.559311925963623,0.558986891244378,0.558720477295138,0.558565492112932,0.558565492112932, +0.696199205704531,0.696199205704531,0.696082511883077,0.695776665498272,0.695356708986095,0.694888925715414,0.694430242248084,0.69404098111958,0.69379866304061,0.69379866304061, +0.844757881334945,0.844757881334945,0.844608125820523,0.844132365065174,0.84353523504353,0.842897354400573,0.842266783852656,0.841695799146153,0.841282225511122,0.841282225511122, + +00:46:46, +0.193872513406505,0.193872513406505,0.193929607954745,0.193934410704431,0.193899198352438,0.193840172187308,0.193775101309765,0.193720674730094,0.193689893251538,0.193689893251538, +0.193872513406505,0.193872513406505,0.193929607954745,0.193934410704431,0.193899198352438,0.193840172187308,0.193775101309765,0.193720674730094,0.193689893251538,0.193689893251538, +0.219065703505091,0.219065703505091,0.219116589166894,0.219110638425047,0.219061550494503,0.218987447742246,0.218908269324662,0.218842861948693,0.218806049263515,0.218806049263515, +0.269256528292332,0.269256528292332,0.269293988846394,0.269265342066222,0.269187195005989,0.269081592598674,0.268972888198829,0.268884385872656,0.268834814819706,0.268834814819706, +0.343868552236739,0.343868552236739,0.343883600952475,0.343818030460539,0.343693050759878,0.343536827907187,0.343380461519707,0.343254255968253,0.343183567758138,0.343183567758138, +0.441635379592995,0.441635379592995,0.44161703593085,0.441496981570829,0.441303493673946,0.441073492698515,0.440847026061026,0.440664067754579,0.440560603752376,0.440560603752376, +0.560273328794288,0.560273328794288,0.560209646166486,0.560012677568768,0.559723523404195,0.55939142480119,0.55906646564005,0.558800113578708,0.558645164222936,0.558645164222936, +0.69625620875052,0.69625620875052,0.696139535571286,0.695833753570053,0.695413888663734,0.694946209012134,0.694487627598991,0.694098452728812,0.693856187796911,0.693856187796911, +0.844787756188638,0.844787756188638,0.844638030703587,0.844162366688679,0.843565360007734,0.842927612306783,0.842297173382138,0.841726307170048,0.841312818271912,0.841312818271912, + +00:46:47, +0.193988494703154,0.193988494703154,0.194045591018879,0.194050400778369,0.194015199154606,0.193956185424171,0.193891126479602,0.19383670924822,0.193805932897382,0.193805932897382, +0.193988494703154,0.193988494703154,0.194045591018879,0.194050400778369,0.194015199154606,0.193956185424171,0.193891126479602,0.19383670924822,0.193805932897382,0.193805932897382, +0.21918074979132,0.21918074979132,0.219231635942055,0.219225693284767,0.219176618918889,0.219102532416315,0.219023369857861,0.218957975030662,0.218921169268027,0.218921169268027, +0.269368850311463,0.269368850311463,0.26940630979641,0.269377673967756,0.269299546625385,0.269193968401584,0.269085287909277,0.2689968046686,0.268947244207147,0.268947244207147, +0.343974932481534,0.343974932481534,0.343989979979352,0.343924426293676,0.343799476553283,0.34364329039932,0.343486960391756,0.343360784042664,0.343290112137159,0.343290112137159, +0.441731090033873,0.441731090033873,0.441712748228876,0.441592720805325,0.441399277969088,0.441169331175396,0.440942918087611,0.440760003038126,0.440656563449071,0.440656563449071, +0.560352606699348,0.560352606699348,0.560288933415842,0.560092007227158,0.559802918588422,0.559470896663086,0.559146013023051,0.558879722818909,0.558724809271719,0.558724809271719, +0.696313189765535,0.696313189765535,0.696196537224597,0.695890819578732,0.695471046234327,0.695003470150291,0.694544990739791,0.694155902084237,0.693913690272656,0.693913690272656, +0.844817618620711,0.844817618620711,0.844667923152527,0.844192355834465,0.843595472436688,0.842957857614541,0.842327550250178,0.841756802476087,0.84134339827521,0.84134339827521, + +00:46:48, +0.194104471694904,0.194104471694904,0.194161569768443,0.194166386535631,0.19413119564387,0.194072194355516,0.194007147352407,0.193952739476528,0.193921968257512,0.193921968257512, +0.194104471694904,0.194104471694904,0.194161569768443,0.194166386535631,0.19413119564387,0.194072194355516,0.194007147352407,0.193952739476528,0.193921968257512,0.193921968257512, +0.219295787830781,0.219295787830781,0.21934667446395,0.219340739889708,0.219291679090869,0.219217608842756,0.219138462148949,0.219073079875208,0.219036281037779,0.219036281037779, +0.269481157514439,0.269481157514439,0.269518615928835,0.269489991050461,0.269411883424946,0.269306329383879,0.269197672798502,0.269109208642861,0.269059658772636,0.269059658772636, +0.344081290981152,0.344081290981152,0.344096337264372,0.344030800382219,0.343905880594883,0.34374973112996,0.343593437492282,0.343467290337272,0.343396634731666,0.343396634731666, +0.441826774010661,0.441826774010661,0.441808434068175,0.441688433573671,0.441495035781275,0.441265143147406,0.441038783586837,0.440855911775756,0.440752496589246,0.440752496589246, +0.560431857732126,0.560431857732126,0.560368193795894,0.560171310000244,0.559882286857833,0.559550341573608,0.55922553341771,0.558959305040094,0.558804427283649,0.558804427283649, +0.696370148771306,0.696370148771306,0.69625351686474,0.695947863546064,0.695528181719672,0.69506070915173,0.694602331692382,0.694213329207794,0.693971170489812,0.693971170489812, +0.844847468643965,0.844847468643965,0.844697803180154,0.844222332515389,0.843625572343307,0.842988090336828,0.842357914469824,0.841787285077376,0.841373965534165,0.841373965534165, + +00:46:49, +0.194220444363631,0.194220444363631,0.194277544185323,0.1942823679581,0.194247187802095,0.194188198963184,0.194123163909998,0.194068765396817,0.194037999313715,0.194037999313715, +0.194220444363631,0.194220444363631,0.194277544185323,0.1942823679581,0.194247187802095,0.194188198963184,0.194123163909998,0.194068765396817,0.194037999313715,0.194037999313715, +0.219410817611422,0.219410817611422,0.219461704720535,0.219455778227819,0.219406730998377,0.21933267700948,0.219253546185815,0.219188176470204,0.219151384560634,0.219151384560634, +0.269593449899655,0.269593449899655,0.269630907242063,0.269602293312724,0.269524205403047,0.269418675543915,0.269310042864847,0.269221597793768,0.269172058514498,0.269172058514498, +0.344187627745806,0.344187627745806,0.344202672817739,0.344137152736363,0.344012262894866,0.343856150109292,0.343699892831465,0.343573774862253,0.343503135551834,0.343503135551834, +0.441922431543204,0.441922431543204,0.441904093468581,0.4417841198957,0.441590767130346,0.441360928634389,0.441134622578561,0.440951793987337,0.440848403192776,0.440848403192776, +0.560511081916838,0.560511081916838,0.560447427330846,0.560250585912239,0.559961628236665,0.559629759557022,0.559305026848321,0.559038860266586,0.558884018283063,0.558884018283063, +0.696427085789537,0.696427085789537,0.696310474513416,0.696004885493774,0.695585295141535,0.695117926038269,0.694659650478631,0.694270734121394,0.694028628470316,0.694028628470316, +0.844877306271185,0.844877306271185,0.844727670799266,0.844252296744291,0.843655659740491,0.843018310486608,0.842388266054104,0.841817754987006,0.841404520061907,0.841404520061907, + +00:46:50, +0.19433641269124,0.19433641269124,0.194393514251435,0.194398345027686,0.194363175611174,0.194304199229046,0.19423917613422,0.19418478699091,0.194154026047804,0.194154026047804, +0.19433641269124,0.19433641269124,0.194393514251435,0.194398345027686,0.194363175611174,0.194304199229046,0.19423917613422,0.19418478699091,0.194154026047804,0.194154026047804, +0.219525839121213,0.219525839121213,0.219576726699784,0.219570808287066,0.219521774629364,0.219447736904419,0.21936862195637,0.219303264803542,0.219266479824473,0.219266479824473, +0.269705727465512,0.269705727465512,0.269743183734496,0.269714580752938,0.269636512558067,0.269531006880058,0.269422398106659,0.269333972119658,0.269284443431062,0.269284443431062, +0.344293942785696,0.344293942785696,0.344308986649646,0.344243483366294,0.344118623463412,0.343962547347488,0.343806326419475,0.343680237627774,0.343609614607828,0.343609614607828, +0.442018062651324,0.442018062651324,0.441999726449903,0.441879779791217,0.441686472036111,0.441456687656169,0.441230435082617,0.441047649692713,0.44094428327951,0.44094428327951, +0.560590279277668,0.560590279277668,0.560526634044872,0.560329834987324,0.560040942749121,0.55970915063756,0.55938449333915,0.559118388522675,0.558963582294268,0.558963582294268, +0.6964840008419,0.6964840008419,0.696367410192295,0.696061885443558,0.695642386521653,0.695175120831694,0.694716947120376,0.694328116846918,0.694086064236075,0.694086064236075, +0.844907131515137,0.844907131515137,0.844757526022639,0.844282248533992,0.84368573464112,0.843048518076827,0.842418605016031,0.841848212218044,0.841435061871547,0.841435061871547, + +00:46:51, +0.194452376659664,0.194452376659664,0.194509479948722,0.194514317726327,0.194479159053029,0.194420195134999,0.194355184006946,0.194300804240662,0.194270048441622,0.194270048441622, +0.194452376659664,0.194452376659664,0.194509479948722,0.194514317726327,0.194479159053029,0.194420195134999,0.194355184006946,0.194300804240662,0.194270048441622,0.194270048441622, +0.219640852348143,0.219640852348143,0.219691740389692,0.21968583005544,0.219636809971803,0.219562788515524,0.219483689448543,0.219418344863134,0.219381566817199,0.219381566817199, +0.26981799021042,0.26981799021042,0.26985544540454,0.269826853369502,0.269748804888392,0.269643323390678,0.269534738522294,0.269446331618875,0.269396813520665,0.269396813520665, +0.344400236111013,0.344400236111013,0.344415278770275,0.344349792282186,0.34422496231069,0.344068922854713,0.34391273826647,0.343786678643992,0.343716071909803,0.343716071909803, +0.442113667354818,0.442113667354818,0.442095333031926,0.441975413280006,0.441782150518358,0.441552420232543,0.441326221118815,0.441143478911704,0.441040136869274,0.441040136869274, +0.560669449838767,0.560669449838767,0.560605813962115,0.560409057249651,0.560120230419373,0.559788514839425,0.559463932914428,0.559197889832619,0.559043119341539,0.559043119341539, +0.696540893950037,0.696540893950037,0.696424323923021,0.696118863417083,0.695699455881734,0.695232293553763,0.694774221639424,0.694385477406217,0.694143477808969,0.694143477808969, +0.84493694438857,0.84493694438857,0.844787368863034,0.844312187897297,0.843715797058056,0.843078713120413,0.842448931368597,0.841878656783545,0.84146559097618,0.84146559097618, + +00:46:52, +0.194568336250863,0.194568336250863,0.194625441259154,0.194630286035989,0.194595138109609,0.194536186662968,0.194471187510077,0.194416817127952,0.194386066477038,0.194386066477038, +0.194568336250863,0.194568336250863,0.194625441259154,0.194630286035989,0.194595138109609,0.194536186662968,0.194471187510077,0.194416817127952,0.194386066477038,0.194386066477038, +0.21975585728022,0.21975585728022,0.219806745778274,0.219800843520949,0.219751837013688,0.219677831830767,0.219598748650284,0.219533416636913,0.219496645526734,0.219496645526734, +0.269930238132792,0.269930238132792,0.269967692250609,0.26993911116082,0.269861082392414,0.269755625074151,0.269647064110114,0.269558676289768,0.269509168781651,0.269509168781651, +0.34450650773194,0.34450650773194,0.344521549189798,0.344456079494207,0.344331279446858,0.34417527664112,0.344019128382601,0.343893097921052,0.343822507467904,0.343822507467904, +0.44220924567346,0.44220924567346,0.44219091323441,0.442071020381823,0.441877802596852,0.441648126383285,0.441421980706939,0.441239281664104,0.441135963981869,0.441135963981869, +0.560748593624256,0.560748593624256,0.560684967106682,0.560488252723336,0.560199491271563,0.559867852186786,0.559543345598356,0.559277364220646,0.559122629449116,0.559122629449116, +0.696597765135563,0.696597765135563,0.696481215727205,0.696175819435986,0.695756503243457,0.695289444226203,0.694831474057553,0.694442815821112,0.694200869210846,0.694200869210846, +0.844966744904216,0.844966744904216,0.844817199333193,0.844342114846992,0.843745847004146,0.843108895630277,0.842479245124779,0.841909088696543,0.841496107388881,0.841496107388881, + +00:46:53, +0.194684291446824,0.194684291446824,0.194741398164731,0.194746249938665,0.19471111276289,0.194652173794908,0.194587186625542,0.194532825634691,0.194502080135949,0.194502080135949, +0.194684291446824,0.194684291446824,0.194741398164731,0.194746249938665,0.19471111276289,0.194652173794908,0.194587186625542,0.194532825634691,0.194502080135949,0.194502080135949, +0.219870853905474,0.219870853905474,0.219921742853565,0.219915848671621,0.219866855743029,0.219792866838139,0.219713799549563,0.21964848011283,0.219611715941021,0.219611715941021, +0.27004247123105,0.27004247123105,0.27007992427112,0.270051354125304,0.269973345068531,0.269867911928859,0.269759374868486,0.269671006130692,0.269621509212367,0.269621509212367, +0.344612757658646,0.344612757658646,0.344627797918379,0.344562345012509,0.344437574882066,0.344281608716852,0.344125496778006,0.343999495469092,0.343928921292267,0.343928921292267, +0.442304797626998,0.442304797626998,0.442286467077092,0.442166601116404,0.441973428291332,0.441743806128144,0.441517713866751,0.441335057969685,0.441231764637072,0.441231764637072, +0.560827710658224,0.560827710658224,0.560764093502655,0.560567421432469,0.5602787253298,0.559947162703782,0.559622731415104,0.559356811710952,0.559202112641213,0.559202112641213, +0.696654614420062,0.696654614420062,0.696538085626432,0.696232753521873,0.69581352862847,0.695346572870714,0.694888704396514,0.694500132113397,0.694258238463524,0.694258238463524, +0.844996533074787,0.844996533074787,0.844847017445842,0.844372029395846,0.843775884492217,0.843139065619311,0.842509546297534,0.841939507970054,0.841526611122708,0.841526611122708, + +00:46:54, +0.194800242229565,0.194800242229565,0.194857350647478,0.194862209416378,0.194827082994878,0.194768156512799,0.194703181335299,0.194648829742814,0.194618089400283,0.194618089400283, +0.194800242229565,0.194800242229565,0.194857350647478,0.194862209416378,0.194827082994878,0.194768156512799,0.194703181335299,0.194648829742814,0.194618089400283,0.194618089400283, +0.219985842211952,0.219985842211952,0.22003673160362,0.220030845495504,0.219981866147861,0.219907893525651,0.21982884213437,0.219763535278859,0.219726778048023,0.219726778048023, +0.270154689503618,0.270154689503618,0.2701921414645,0.270163582261371,0.270085592915148,0.269980183953193,0.269871670795785,0.26978332114001,0.269733834811169,0.269733834811169, +0.344718985901293,0.344718985901293,0.344734024966169,0.344668588847239,0.344543848626453,0.344387919092043,0.344231843462816,0.344105871298238,0.344035313393017,0.344035313393017, +0.442400323235156,0.442400323235156,0.442381994579684,0.442262155503459,0.442069027621513,0.441839459486845,0.441613420617987,0.441430807848193,0.441327538854638,0.441327538854638, +0.560906800964728,0.560906800964728,0.560843193174078,0.560646563401104,0.56035793261816,0.560026446414521,0.55970209038881,0.559436232327699,0.559281568942007,0.559281568942007, +0.69671144182509,0.69671144182509,0.696594933642254,0.696289665696326,0.695870532058393,0.695403679508965,0.694945912678025,0.694557426304834,0.694315585588793,0.694315585588793, +0.84502630891298,0.84502630891298,0.844876823213689,0.84440193155661,0.843805909535079,0.84316922310039,0.842539834899802,0.841969914617076,0.841557102190701,0.841557102190701, + +00:46:55, +0.194916188581128,0.194916188581128,0.194973298689449,0.194978164451175,0.194943048787605,0.19488413479865,0.194819171621331,0.194764829434288,0.194734094251991,0.194734094251991, +0.194916188581128,0.194916188581128,0.194973298689449,0.194978164451175,0.194943048787605,0.19488413479865,0.194819171621331,0.194764829434288,0.194734094251991,0.194734094251991, +0.220100822187725,0.220100822187725,0.220151712016513,0.220145833980667,0.220096868216235,0.220022911881336,0.219943876392715,0.219878582122991,0.219841831835723,0.219841831835723, +0.270266892948931,0.270266892948931,0.270304343829181,0.270275795567445,0.270197825930676,0.270092441145548,0.26998395189039,0.26989562131609,0.26984614557642,0.26984614557642, +0.344825192470032,0.344825192470032,0.344840230343311,0.344774811008532,0.344650100690147,0.344494207776817,0.344338168447149,0.344212225418606,0.344141683780269,0.344141683780269, +0.442495822517636,0.442495822517636,0.442477495761874,0.442357683562673,0.442164600607086,0.441935086479091,0.441709100980361,0.441526531319353,0.441423286654294,0.441423286654294, +0.560985864567794,0.560985864567794,0.56092226614497,0.560725678653266,0.560437113160692,0.560105703343077,0.559781422543579,0.559515626095021,0.559360998375648,0.559360998375648, +0.696768247372173,0.696768247372173,0.696651759796198,0.696346555980891,0.695927513554818,0.695460764162596,0.695003098923777,0.694614698417157,0.694372910608414,0.694372910608414, +0.845056072431475,0.845056072431475,0.844906616649422,0.844431821342018,0.843835922145523,0.843199368086372,0.842570110944506,0.842000308650591,0.841587580605882,0.841587580605882, + +00:46:56, +0.195032130483585,0.195032130483585,0.195089242272727,0.195094115025133,0.19505901012313,0.195000108634499,0.194935157465651,0.194880824691103,0.194850094673056,0.194850094673056, +0.195032130483585,0.195032130483585,0.195089242272727,0.195094115025133,0.19505901012313,0.195000108634499,0.194935157465651,0.194880824691103,0.194850094673056,0.194850094673056, +0.22021579382088,0.22021579382088,0.220266684080339,0.220260814115198,0.220211861936224,0.220137921893245,0.220058902312627,0.21999362063324,0.219956877292123,0.219956877292123, +0.270379081565428,0.270379081565428,0.270416531363599,0.270387994041955,0.270310044113531,0.270204683504324,0.270096218150687,0.270007906657307,0.269958441506488,0.269958441506488, +0.344931377375004,0.344931377375004,0.344946414059936,0.344881011506513,0.344756331083266,0.344600474781287,0.344444471741114,0.344318557840305,0.344248032464129,0.344248032464129, +0.442591295494114,0.442591295494114,0.442572970643325,0.442453185313709,0.44226014726772,0.442030687124558,0.441804754973561,0.441622228402863,0.441519008055746,0.441519008055746, +0.561064901491417,0.561064901491417,0.561001312439313,0.560804767212947,0.560516266981408,0.560184933513495,0.559860727903487,0.559594993037019,0.559440400966251,0.559440400966251, +0.696825031082808,0.696825031082808,0.696708564109759,0.696403424397092,0.695984473139305,0.695517826853218,0.69506026315543,0.694671948472069,0.694430213544118,0.694430213544118, +0.845085823642931,0.845085823642931,0.844936397765715,0.844461698764786,0.843865922336326,0.843229500590095,0.842600374444549,0.842030690083561,0.841618046381255,0.841618046381255, + +00:46:57, +0.195148067919035,0.195148067919035,0.19520518137942,0.195210061120358,0.195174966983542,0.195116078002409,0.1950511388503,0.194996815495281,0.194966090645486,0.194966090645486, +0.195148067919035,0.195148067919035,0.19520518137942,0.195210061120358,0.195174966983542,0.195116078002409,0.1950511388503,0.194996815495281,0.194966090645486,0.194966090645486, +0.220330757099526,0.220330757099526,0.220381647783213,0.220375785887205,0.220326847295921,0.220252923549449,0.220173919882158,0.220108650797638,0.220071914405247,0.220071914405247, +0.270491255351552,0.270491255351552,0.270528704066199,0.270500177683339,0.270422247462138,0.27031691102793,0.270208469575071,0.270120177162041,0.270070722599746,0.270070722599746, +0.345037540626339,0.345037540626339,0.345052576126169,0.344987190351296,0.344862539815921,0.344706720115556,0.344550753354813,0.344424868573429,0.344354359454691,0.344354359454691, +0.442686742184241,0.442686742184241,0.442668419243679,0.442548660776204,0.442355667623057,0.442126261442899,0.441900382617253,0.441717899118398,0.441614703078675,0.441614703078675, +0.561143911759559,0.561143911759559,0.56108033208106,0.560883829104111,0.560595394104294,0.560264136949787,0.559940006492577,0.559674333177761,0.559519776737901,0.559519776737901, +0.696881792978464,0.696881792978464,0.696765346604405,0.696460270966417,0.696041410833387,0.695574867602412,0.695117405394618,0.694729176491246,0.694487494417605,0.694487494417605, +0.845115562559994,0.845115562559994,0.844966166575223,0.844491563837614,0.843895910120243,0.843259620624382,0.842630625412819,0.842061058928931,0.841648499529807,0.841648499529807, + +00:46:58, +0.195264000869605,0.195264000869605,0.195321115991666,0.195326002718981,0.195290919350957,0.195232042884474,0.195167115757345,0.195112801828869,0.195082082151319,0.195082082151319, +0.195264000869605,0.195264000869605,0.195321115991666,0.195326002718981,0.195290919350957,0.195232042884474,0.195167115757345,0.195112801828869,0.195082082151319,0.195082082151319, +0.220445712011791,0.220445712011791,0.220496603113269,0.220490749284816,0.220441824283438,0.220367916838039,0.220288929089377,0.220223672604238,0.220186943163138,0.220186943163138, +0.270603414305757,0.270603414305757,0.270640861935431,0.270612346490037,0.270534435974924,0.270429123714781,0.270320706161939,0.27023243282868,0.270182988854575,0.270182988854575, +0.345143682234157,0.345143682234157,0.345158716552119,0.345093347552987,0.34496872689821,0.344812943789719,0.344657013298333,0.344531157628066,0.344460664762043,0.344460664762043, +0.442782162607648,0.442782162607648,0.442763841582551,0.442644109969773,0.442451161692717,0.442221809453745,0.441995983931076,0.441813543485608,0.441710371742739,0.441710371742739, +0.561222895396153,0.561222895396153,0.561159325094134,0.560962864350686,0.560674494553302,0.560343313675936,0.560019258334862,0.559753646541287,0.559599125714652,0.559599125714652, +0.69693853308058,0.69693853308058,0.696822107301572,0.69651709571033,0.696098326658567,0.695631886431731,0.695174525662942,0.694786382496333,0.694544753250548,0.694544753250548, +0.845145289195289,0.845145289195289,0.844995923090584,0.844521416573181,0.843925885510015,0.843289728202036,0.842660863862185,0.842091415199628,0.841678940064504,0.841678940064504, + +00:46:59, +0.195379929317448,0.195379929317448,0.195437046091629,0.195441939803162,0.195406867207516,0.195348003262812,0.195283088168882,0.195228783673943,0.195198069172619,0.195198069172619, +0.195379929317448,0.195379929317448,0.195437046091629,0.195441939803162,0.195406867207516,0.195348003262812,0.195283088168882,0.195228783673943,0.195198069172619,0.195198069172619, +0.220560658545824,0.220560658545824,0.220611550058661,0.220605704296179,0.220556792886907,0.220482901747128,0.220403929922373,0.220338686041112,0.220301963553857,0.220301963553857, +0.270715558426498,0.270715558426498,0.27075300496975,0.270724500460498,0.270646609650326,0.270541321563295,0.270432927909698,0.270344673655617,0.270295240269363,0.270295240269363, +0.345249802208571,0.345249802208571,0.345264835347891,0.345199483121681,0.345074892340222,0.34491914581386,0.344763251581754,0.344637425014294,0.344566948396258,0.344566948396258, +0.442877556783937,0.442877556783937,0.442859237679534,0.442739532914004,0.442546629496296,0.442317331176699,0.442091558934647,0.441909161524122,0.44180601406757,0.44180601406757, +0.5613018524251,0.5613018524251,0.561238291502425,0.561041872976571,0.560753568352352,0.560422463715891,0.560098483454322,0.559832933151603,0.559678447920526,0.559678447920526, +0.696995251410565,0.696995251410565,0.69687884622267,0.696573898650265,0.69615522063632,0.6956888833627,0.695231623981976,0.694843566508947,0.69460199006459,0.69460199006459, +0.845175003561425,0.845175003561425,0.845025667324417,0.844551256984152,0.843955848518364,0.843319823335845,0.842691089805496,0.842121758908563,0.841709367998299,0.841709367998299, + +00:47:00, +0.195495853244746,0.195495853244746,0.195552971661501,0.195557872355087,0.195522810535392,0.195463959119572,0.195399056067034,0.195344761012607,0.195314051691479,0.195314051691479, +0.195495853244746,0.195495853244746,0.195552971661501,0.195557872355087,0.195522810535392,0.195463959119572,0.195399056067034,0.195344761012607,0.195314051691479,0.195314051691479, +0.220675596689793,0.220675596689793,0.220726488607563,0.220720650909462,0.22067175309448,0.220597878264845,0.220518922369257,0.220453691096353,0.22041697556549,0.22041697556549, +0.270827687712239,0.270827687712239,0.270865133167619,0.270836639593176,0.270758768486785,0.270653504571899,0.270545134816757,0.270456899641251,0.270407476842502,0.270407476842502, +0.34535590055968,0.34535590055968,0.345370932523575,0.345305597067463,0.345181036152035,0.345025326198051,0.344869468215147,0.344743670742178,0.344673210367403,0.344673210367403, +0.44297292473269,0.44297292473269,0.442954607554194,0.442834929628465,0.442642071053363,0.442412826631345,0.442187107647561,0.442004753253543,0.441901630072777,0.441901630072777, +0.561380782870268,0.561380782870268,0.561317231329793,0.561120855005636,0.560832615525334,0.560501587093572,0.560177681874906,0.559912193032684,0.559757743379515,0.559757743379515, +0.697051947989801,0.697051947989801,0.69693556338908,0.696630679807624,0.69621209278809,0.695745858416811,0.695288700373265,0.694900728550674,0.694659204881345,0.694659204881345, +0.845204705670994,0.845204705670994,0.845055399289327,0.844581085083174,0.843985799157993,0.843349906038577,0.842721303255588,0.842152090068625,0.841739783344122,0.841739783344122, + +00:47:01, +0.195611772633709,0.195611772633709,0.195668892683502,0.195673800356973,0.195638749316782,0.195579910436928,0.195515019433952,0.195460733826992,0.195430029690019,0.195430029690019, +0.195611772633709,0.195611772633709,0.195668892683502,0.195673800356973,0.195638749316782,0.195579910436928,0.195515019433952,0.195460733826992,0.195430029690019,0.195430029690019, +0.220790526431884,0.220790526431884,0.220841418748168,0.220835589112852,0.220786704894328,0.220712846379343,0.220633906418158,0.220568687758073,0.220531979186137,0.220531979186137, +0.27093980216145,0.27093980216145,0.270977246527506,0.270948763886531,0.270870912482749,0.270765672739027,0.270657326881536,0.270569110783989,0.270519698572392,0.270519698572392, +0.345461977297575,0.345461977297575,0.345477008089255,0.345411689400407,0.345287158343719,0.345131484952357,0.344975663208571,0.344849894821776,0.344779450685534,0.344779450685534, +0.443068266473463,0.443068266473463,0.443049951226077,0.442930300132697,0.442737486383468,0.442508295837239,0.442282630089386,0.442100318693448,0.441997219777947,0.441997219777947, +0.561459686755496,0.561459686755496,0.561396144600065,0.561199810461717,0.560911636096107,0.560580683832867,0.560256853620533,0.559991426208476,0.559837012115578,0.559837012115578, +0.69710862283964,0.69710862283964,0.696992258822151,0.696687439203784,0.696268943135294,0.69580281161553,0.695345754858322,0.694957868643074,0.694716397722398,0.694716397722398, +0.845234395536571,0.845234395536571,0.845085118997898,0.844610900882874,0.84401573744159,0.843379976322983,0.842751504225276,0.842182408692691,0.841770186114891,0.841770186114891, + +00:47:02, +0.195727687466573,0.195727687466573,0.195784809139879,0.19578972379106,0.195754683533911,0.195695857197083,0.195630978251814,0.195576702099257,0.195546003150385,0.195546003150385, +0.195727687466573,0.195727687466573,0.195784809139879,0.19578972379106,0.195754683533911,0.195695857197083,0.195630978251814,0.195576702099257,0.195546003150385,0.195546003150385, +0.220905447760307,0.220905447760307,0.220956340468691,0.220950518894556,0.220901648274644,0.220827806078791,0.220748882057225,0.220683676014405,0.220646974403922,0.220646974403922, +0.271051901772606,0.271051901772606,0.271089345047884,0.271060873339031,0.270983041636671,0.270877826063116,0.270769504102458,0.270681307082243,0.270631905457438,0.270631905457438, +0.345568032432337,0.345568032432337,0.345583062055002,0.34551776013058,0.345393258925332,0.345237622086832,0.345081836572076,0.344956097263136,0.344885669360697,0.344885669360697, +0.443163582025788,0.443163582025788,0.443145268714703,0.443025644446219,0.442832875506135,0.442603738813915,0.442378126279667,0.442195857863395,0.44209278320264,0.44209278320264, +0.561538564104592,0.561538564104592,0.561475031337039,0.561278739368619,0.560990630088498,0.560659753957631,0.560335998715091,0.56007063270289,0.559916254152643,0.559916254152643, +0.697165275981406,0.697165275981406,0.697048932543206,0.696744176860091,0.696325771699319,0.695859742980295,0.695402787458635,0.695014986807674,0.694773568609303,0.694773568609303, +0.845264073170712,0.845264073170712,0.845114826462698,0.844640704395865,0.844045663381825,0.843410034201798,0.842781692727358,0.842212714793614,0.8418005763235,0.8418005763235, + +00:47:03, +0.195843597725602,0.195843597725602,0.195900721012906,0.195905642639618,0.195870613169034,0.195811799382267,0.195746932502826,0.195692665811587,0.195661972054755,0.195661972054755, +0.195843597725602,0.195843597725602,0.195900721012906,0.195905642639618,0.195870613169034,0.195811799382267,0.195746932502826,0.195692665811587,0.195661972054755,0.195661972054755, +0.221020360663287,0.221020360663287,0.221071253757363,0.2210654402428,0.221016583223639,0.220942757351381,0.220863849274629,0.2207986558535,0.220761961206987,0.220761961206987, +0.271163986544189,0.271163986544189,0.271201428727236,0.271172967949147,0.271095155947012,0.270989964542611,0.270881666477952,0.27079348853443,0.270744097496053,0.270744097496053, +0.345674065974037,0.345674065974037,0.345689094430878,0.345623809268036,0.345499337906925,0.345343737611519,0.345187988315702,0.345062278076295,0.344991866402928,0.344991866402928, +0.443258871409175,0.443258871409175,0.443240560039568,0.443120962588525,0.442928238440862,0.442699155580883,0.442473596237925,0.442291370782915,0.442188320366394,0.442188320366394, +0.561617414941331,0.561617414941331,0.561553891564481,0.561357641750117,0.561069597526304,0.560738797491691,0.560415117182435,0.56014981253981,0.559995469514608,0.559995469514608, +0.697221907436393,0.697221907436393,0.697105584573539,0.696800892797864,0.696382578501524,0.695916652532511,0.695459798195662,0.695072083065975,0.694830717563588,0.694830717563588, +0.845293738585957,0.845293738585957,0.84514452169628,0.844670495634741,0.84407557699135,0.843440079687737,0.842811868774615,0.842243008384235,0.841830953982831,0.841830953982831, + +00:47:04, +0.195959503393088,0.195959503393088,0.196016628284885,0.196021556884945,0.19598653820443,0.195927736974738,0.195862882169223,0.195808624946197,0.195777936385329,0.195777936385329, +0.195959503393088,0.195959503393088,0.196016628284885,0.196021556884945,0.19598653820443,0.195927736974738,0.195862882169223,0.195808624946197,0.195777936385329,0.195777936385329, +0.221135265129071,0.221135265129071,0.221186158602438,0.221180353145832,0.221131509729542,0.221057700185322,0.220978808058558,0.22091362726353,0.220876939583494,0.220876939583494, +0.271276056474687,0.271276056474687,0.271313497564046,0.271285047715358,0.271207255412238,0.271102088175964,0.270993814006456,0.270905655138976,0.270856274686654,0.270856274686654, +0.345780077932734,0.345780077932734,0.345795105226936,0.34572983682282,0.345605395298535,0.345449831536453,0.345294118449479,0.34516843727128,0.345098041822253,0.345098041822253, +0.443354134643107,0.443354134643107,0.443335825220145,0.443216254579085,0.443023575207126,0.442794546157629,0.442569039983659,0.442386857471515,0.442283831288723,0.442283831288723, +0.561696239289459,0.561696239289459,0.561632725306126,0.561436517629954,0.561148538433291,0.560817814458841,0.560494209046391,0.560228965743086,0.560074658225339,0.560074658225339, +0.697278517225867,0.697278517225867,0.697162214934415,0.696857587038389,0.696439363563238,0.695973540293558,0.695516787090829,0.695129157439448,0.694887844606749,0.694887844606749, +0.845323391794829,0.845323391794829,0.845174204711175,0.844700274612079,0.844105478282799,0.8434701127935,0.84284203237981,0.842273289477375,0.841861319105744,0.841861319105744, + +00:47:05, +0.19607540445135,0.19607540445135,0.196132530938146,0.196137466509365,0.196102458622408,0.19604366995678,0.195978827233264,0.195924579485327,0.19589389612434,0.19589389612434, +0.19607540445135,0.19607540445135,0.196132530938146,0.196137466509365,0.196102458622408,0.19604366995678,0.195978827233264,0.195924579485327,0.19589389612434,0.19589389612434, +0.221250161145927,0.221250161145927,0.221301054992189,0.221295257591917,0.221246427780606,0.221172634568845,0.22109375839722,0.221028590232687,0.220991909521627,0.220991909521627, +0.271388111562593,0.271388111562593,0.271425551556808,0.27139711263615,0.271319340030821,0.271214196961631,0.271105946686411,0.271017806894311,0.270968437027666,0.270968437027666, +0.345886068318481,0.345886068318481,0.345901094453219,0.345835842804967,0.345711431110192,0.345555903871657,0.345400226983428,0.345274574858109,0.345204195628688,0.345204195628688, +0.443449371747047,0.443449371747047,0.443431064275883,0.443311520437347,0.443118885824379,0.442889910563616,0.442664457536341,0.44248231794868,0.442379315989118,0.442379315989118, +0.561775037172689,0.561775037172689,0.561711532585677,0.561515367031844,0.561227452833193,0.560896804882845,0.560573274330751,0.560308092336538,0.560153820308672,0.560153820308672, +0.697335105371066,0.697335105371066,0.697218823647069,0.696914259602929,0.696496126905763,0.696030406284786,0.695573754165537,0.695186209949534,0.694944949760255,0.694944949760255, +0.845353032809832,0.845353032809832,0.845203875519902,0.844730041340438,0.84413536726879,0.843500133531768,0.842872183555688,0.842303558085836,0.841891671705083,0.841891671705083, + +00:47:06, +0.196191300882734,0.196191300882734,0.196248428955044,0.196253371495229,0.196218374405302,0.196159598310705,0.196094767677238,0.196040529411248,0.196009851254043,0.196009851254043, +0.196191300882734,0.196191300882734,0.196248428955044,0.196253371495229,0.196218374405302,0.196159598310705,0.196094767677238,0.196040529411248,0.196009851254043,0.196009851254043, +0.22136504870214,0.22136504870214,0.221415942914906,0.221410153569342,0.221361337365101,0.221287560490199,0.221208700278846,0.221143544749184,0.221106871009586,0.221106871009586, +0.271500151806407,0.271500151806407,0.27153759070402,0.271509162710012,0.271431409801238,0.271326290898076,0.271218064516266,0.271129943798872,0.271080584517519,0.271080584517519, +0.345992037141316,0.345992037141316,0.346007062119757,0.345941827224504,0.345817445351916,0.345661954627147,0.345506313927559,0.34538069084679,0.345310327832241,0.345310327832241, +0.443544582740431,0.443544582740431,0.443526277226206,0.443406760182733,0.44321417031205,0.442985248818281,0.442759848915424,0.442577752233869,0.442474774487044,0.442474774487044, +0.561853808614704,0.561853808614704,0.561790313426808,0.561594189979468,0.561306340749713,0.560975768787435,0.56065231305928,0.560387192343954,0.56023295578841,0.56023295578841, +0.697391671893197,0.697391671893197,0.697275410732708,0.696970910512714,0.696552868550369,0.696087250527515,0.695630699441156,0.695243240617648,0.695002033045545,0.695002033045545, +0.845382661643455,0.845382661643455,0.845233534134958,0.84475979583236,0.844165243961923,0.843530141915204,0.842902322314979,0.842333814222404,0.841922011793676,0.841922011793676, + +00:47:07, +0.196307192669614,0.196307192669614,0.196364322317964,0.196369271824916,0.196334285535477,0.196275522018855,0.196210703483461,0.196156474706254,0.196125801756726,0.196125801756726, +0.196307192669614,0.196307192669614,0.196364322317964,0.196369271824916,0.196334285535477,0.196275522018855,0.196210703483461,0.196156474706254,0.196125801756726,0.196125801756726, +0.221479927786015,0.221479927786015,0.221530822358903,0.221525041066411,0.221476238471316,0.221402477937654,0.221323633691682,0.221258490801249,0.221221824035593,0.221221824035593, +0.271612177204634,0.271612177204634,0.271649615004186,0.271621197935442,0.271543464721975,0.271438369983767,0.271330167494475,0.271242065851102,0.27119271715465,0.27119271715465, +0.346097984411273,0.346097984411273,0.346113008236575,0.346047790091444,0.345923438033716,0.345767983812927,0.345612379291872,0.345486785247321,0.345416438442908,0.345416438442908, +0.443639767642674,0.443639767642674,0.443621464090517,0.443501973834643,0.443309428689544,0.443080560941041,0.442855214140332,0.44267316034652,0.442570206801945,0.442570206801945, +0.561932553639157,0.561932553639157,0.561869067853161,0.561672986496476,0.561385202206524,0.561054706196312,0.560731325255709,0.560466265789093,0.560312064688327,0.560312064688327, +0.69744821681344,0.69744821681344,0.697331976212511,0.697027539788947,0.696609588518301,0.696144073043037,0.695687622939027,0.695300249465173,0.695059094484031,0.695059094484031, +0.845412278308169,0.845412278308169,0.845263180568826,0.844789538100371,0.84419510837478,0.843560137956456,0.842932448670391,0.842364057899847,0.84195233938433,0.84195233938433, + +00:47:08, +0.19642307979439,0.19642307979439,0.196480211009316,0.196485167480833,0.19645019199532,0.196391441063595,0.196326634634277,0.196272415352669,0.1962417476147,0.1962417476147, +0.19642307979439,0.19642307979439,0.196480211009316,0.196485167480833,0.19645019199532,0.196391441063595,0.196326634634277,0.196272415352669,0.1962417476147,0.1962417476147, +0.221594798385879,0.221594798385879,0.221645693312509,0.221639920071449,0.221591131087561,0.221517386899499,0.221438558623996,0.221373428377136,0.22133676858789,0.22133676858789, +0.271724187755787,0.271724187755787,0.271761624455816,0.271733218310943,0.271655504791522,0.271550434217181,0.2714422556195,0.27135417304945,0.271304834937502,0.271304834937502, +0.34620391013837,0.34620391013837,0.346218932813684,0.346153731415795,0.346029409165591,0.345873991438991,0.345718423086358,0.34559285806969,0.345522527470676,0.345522527470676, +0.443734926473164,0.443734926473164,0.443716624888193,0.443597161412453,0.443404660976242,0.443175846951286,0.442950553230468,0.442768542306046,0.442665612953239,0.442665612953239, +0.562011272269669,0.562011272269669,0.561947795888349,0.561751756606489,0.561464037227267,0.561133617133148,0.560810310943739,0.560545312695681,0.560391147032165,0.560391147032165, +0.697504740152948,0.697504740152948,0.697388520107629,0.697084147452802,0.696666286830773,0.696200873852617,0.695744524680464,0.695357236513464,0.695116134097093,0.695116134097093, +0.845441882816428,0.845441882816428,0.845292814833972,0.844819268156979,0.844224960519928,0.843590121668153,0.842962562634618,0.842394289130917,0.841982654489836,0.841982654489836, + +00:47:09, +0.19653896223949,0.19653896223949,0.196596095011539,0.196601058445413,0.19656609376725,0.19650735542732,0.196442561112054,0.196388351332845,0.196357688810305,0.196357688810305, +0.19653896223949,0.19653896223949,0.196596095011539,0.196601058445413,0.19656609376725,0.19650735542732,0.196442561112054,0.196388351332845,0.196357688810305,0.196357688810305, +0.221709660490076,0.221709660490076,0.221760555764076,0.221754790572802,0.221706015202165,0.221632287364041,0.221553475064077,0.221488357465114,0.221451704654738,0.221451704654738, +0.271836183458383,0.271836183458383,0.271873619057428,0.271845223835023,0.271767530008375,0.271662483596798,0.271554328889806,0.271466265392372,0.271416937864522,0.271416937864522, +0.34630981433262,0.34630981433262,0.346324835861087,0.34625965120755,0.346135358757531,0.345979977515324,0.345824445320998,0.345698909323875,0.345628594925522,0.345628594925522, +0.443830059251269,0.443830059251269,0.443811759638588,0.443692322935515,0.443499867191502,0.443271106868383,0.443045866205212,0.442863898131836,0.442760992960322,0.442760992960322, +0.562089964529831,0.562089964529831,0.56202649755595,0.561830500333096,0.561542845835554,0.561212501621583,0.560889270147041,0.560624333087415,0.560470202843634,0.560470202843634, +0.697561241932841,0.697561241932841,0.697445042439182,0.697140733525425,0.696722963508971,0.696257652977488,0.695801404686751,0.695414201783848,0.695173151906085,0.695173151906085, +0.845471475180667,0.845471475180667,0.845322436942842,0.844848986014673,0.844254800409913,0.843620093062906,0.842992664220336,0.842424507928345,0.84201295712297,0.84201295712297, + +00:47:10, +0.196654839987369,0.196654839987369,0.196711974307099,0.196716944701117,0.196681990833711,0.196623265092451,0.196558482899192,0.19650428262916,0.196473625325908,0.196473625325908, +0.196654839987369,0.196654839987369,0.196711974307099,0.196716944701117,0.196681990833711,0.196623265092451,0.196558482899192,0.19650428262916,0.196473625325908,0.196473625325908, +0.221824514086969,0.221824514086969,0.221875409701974,0.221869652558832,0.221820890803476,0.221747179319611,0.221668383000232,0.221603278053473,0.221566632224418,0.221566632224418, +0.271948164310946,0.271948164310946,0.271985598807544,0.271957214506197,0.271879540371036,0.271774518121107,0.271666387303867,0.271578342878328,0.271529025934168,0.271529025934168, +0.346415697004022,0.346415697004022,0.346430717388777,0.346365549476697,0.346241286819516,0.3460859420519,0.345930446005763,0.345804939019845,0.345734640817414,0.345734640817414, +0.443925165996329,0.443925165996329,0.443906868361032,0.443787458423156,0.443595047354658,0.443366340711678,0.44314115308392,0.442959227843255,0.442856346842566,0.442856346842566, +0.562168630443202,0.562168630443202,0.562105172879515,0.561909217699855,0.561621628054965,0.561291359685225,0.560968202889254,0.560703326987959,0.560549232146417,0.560549232146417, +0.697617722174216,0.697617722174216,0.697501543228265,0.697197298027933,0.696779618574053,0.696314410438857,0.695858262979143,0.695471145297624,0.69523014793233,0.69523014793233, +0.845501055413308,0.845501055413308,0.845352046907868,0.844878691685928,0.844284628057268,0.843650052153309,0.843022753440204,0.842454714304849,0.842043247296486,0.842043247296486, + +00:47:11, +0.196770713020511,0.196770713020511,0.196827848878488,0.196832826230433,0.196797883177175,0.196739170041438,0.196674399978115,0.196620209224018,0.196589557143906,0.196589557143906, +0.196770713020511,0.196770713020511,0.196827848878488,0.196832826230433,0.196797883177175,0.196739170041438,0.196674399978115,0.196620209224018,0.196589557143906,0.196589557143906, +0.221939359164944,0.221939359164944,0.221990255114593,0.221984506017925,0.221935757879864,0.221862062754554,0.221783282420787,0.221718190130524,0.221681551285229,0.221681551285229, +0.272060130312006,0.272060130312006,0.272097563704693,0.272069190322986,0.271991535878014,0.271886537788601,0.271778430860163,0.271690405505786,0.271641099144899,0.271641099144899, +0.346521558162569,0.346521558162569,0.346536577406735,0.34647142623321,0.346347193361516,0.346191885058685,0.346036425150614,0.345910947167559,0.345840665156308,0.345840665156308, +0.444020246727666,0.444020246727666,0.444001951074832,0.443882567894683,0.443690201485019,0.44346154850049,0.443236413885922,0.443054531459646,0.442951674619319,0.442951674619319, +0.562247270033312,0.562247270033312,0.562183821882563,0.561987908730295,0.561700383909049,0.561370191347653,0.561047109193986,0.560782294420948,0.560628234964161,0.560628234964161, +0.697674180898136,0.697674180898136,0.69755802249594,0.697253840981415,0.696836252047148,0.696371146257901,0.695915099578867,0.695528067076059,0.695287122197124,0.695287122197124, +0.845530623526751,0.845530623526751,0.845381644741462,0.8449083851832,0.844314443474505,0.843679998951941,0.843052830306861,0.842484908273125,0.842073525023122,0.842073525023122, + +00:47:12, +0.196886581321424,0.196886581321424,0.196943718708226,0.196948703015875,0.19691377078014,0.196855070256756,0.196790312331276,0.196736131099854,0.196705484246718,0.196705484246718, +0.196886581321424,0.196886581321424,0.196943718708226,0.196948703015875,0.19691377078014,0.196855070256756,0.196790312331276,0.196736131099854,0.196705484246718,0.196705484246718, +0.222054195712403,0.222054195712403,0.222105091990341,0.222099350938482,0.222050616419716,0.221976937657239,0.221898173314089,0.221833093684596,0.221796461825493,0.221796461825493, +0.272172081460098,0.272172081460098,0.272209513747408,0.272181151283916,0.272103516527824,0.271998542597778,0.271890459557177,0.27180245327322,0.271753157495183,0.271753157495183, +0.346627397818242,0.346627397818242,0.346642415924937,0.346577281487056,0.34645307839349,0.346297806545635,0.346142382765503,0.346016933776965,0.345946667952154,0.345946667952154, +0.444115301464573,0.444115301464573,0.444097007799272,0.443977651369376,0.443785329601874,0.443556730254116,0.443331648630529,0.443149809000328,0.443046976309906,0.443046976309906, +0.562325883323658,0.562325883323658,0.562262444588583,0.562066573447911,0.561779113421324,0.561448996632414,0.561125989084815,0.560861235409986,0.560707211320486,0.560707211320486, +0.69773061812564,0.69773061812564,0.697614480263244,0.69731036240693,0.696892863949356,0.69642786045577,0.695971914507122,0.695584967140395,0.695344074721734,0.695344074721734, +0.845560179533382,0.845560179533382,0.845411230456023,0.844938066518928,0.844344246674121,0.843709933471361,0.843082894832932,0.842515089845856,0.842103790315601,0.842103790315601, + +00:47:13, +0.197002444872645,0.197002444872645,0.197059583778859,0.197064575039985,0.197029653625132,0.196970965720908,0.196906219941153,0.196852048239127,0.196821406616795,0.196821406616795, +0.197002444872645,0.197002444872645,0.197059583778859,0.197064575039985,0.197029653625132,0.196970965720908,0.196906219941153,0.196852048239127,0.196821406616795,0.196821406616795, +0.222169023717769,0.222169023717769,0.222219920317648,0.222214187308926,0.222165466411438,0.222091804016053,0.222013055668503,0.221947988704038,0.221911363833549,0.221911363833549, +0.272284017753764,0.272284017753764,0.27232144893423,0.272293097387522,0.272215482318985,0.272110532547146,0.272002473393402,0.27191448617911,0.271865200983494,0.271865200983494, +0.346733215981011,0.346733215981011,0.346748232953343,0.346683115248191,0.34655894192539,0.346403706522694,0.346248318860371,0.346122898858003,0.346052649214888,0.346052649214888, +0.444210330226322,0.444210330226322,0.44419203855361,0.444072708866492,0.443880431724484,0.443651885991829,0.443426857337024,0.443245060484595,0.443142251933627,0.443142251933627, +0.562404470337708,0.562404470337708,0.562341041021033,0.562145211876171,0.56185781661528,0.561527775563026,0.561204842585289,0.560940149978645,0.560786161238981,0.560786161238981, +0.697787033877736,0.697787033877736,0.697670916551186,0.69736686232551,0.696949454301749,0.696484553053583,0.696028707785076,0.695641845511844,0.695401005527397,0.695401005527397, +0.84558972344557,0.84558972344557,0.845440804063927,0.844967735705535,0.844374037668596,0.843739855724111,0.843112947031023,0.842545259035703,0.842134043186626,0.842134043186626, + +00:47:14, +0.197118303656737,0.197118303656737,0.197175444072961,0.197180442285333,0.197145531694704,0.197086856416425,0.197022122790254,0.196967960624323,0.196937324236613,0.196937324236613, +0.197118303656737,0.197118303656737,0.197175444072961,0.197180442285333,0.197145531694704,0.197086856416425,0.197022122790254,0.196967960624323,0.196937324236613,0.196937324236613, +0.222283843169484,0.222283843169484,0.222334740084961,0.222329015117699,0.222280307843458,0.222206661819401,0.222127929472416,0.222062875177218,0.222026257297755,0.222026257297755, +0.272395939191551,0.272395939191551,0.272433369263706,0.272405028632341,0.272327433250025,0.272222507635216,0.272114472367334,0.272026504221941,0.271977229608311,0.271977229608311, +0.346839012660838,0.346839012660838,0.346854028501907,0.346788927526561,0.346664783967156,0.346509584999797,0.346354233445151,0.346228842420602,0.34615860895444,0.34615860895444, +0.444305333032161,0.444305333032161,0.444287043357084,0.444167740405267,0.443975507872091,0.44374701573288,0.443522040024669,0.443340285931719,0.443237501509761,0.443237501509761, +0.5624830310989,0.5624830310989,0.562419611203339,0.562223824038509,0.561936493514373,0.561606528162974,0.561283669718924,0.561019038150468,0.560865084743202,0.560865084743202, +0.697843428175404,0.697843428175404,0.697727331380744,0.697423340758158,0.697006023125371,0.696541224072433,0.696085479433872,0.695698702211588,0.695457914635323,0.695457914635323, +0.845619255275666,0.845619255275666,0.84547036557754,0.844997392755424,0.844403816470392,0.843769765722718,0.843142986913722,0.842575415855313,0.842164283648882,0.842164283648882, + +00:47:15, +0.197234157656291,0.197234157656291,0.197291299573133,0.197296304734515,0.197261404971436,0.197202742325864,0.197138020861112,0.197083868237959,0.197053237088675,0.197053237088675, +0.197234157656291,0.197234157656291,0.197291299573133,0.197296304734515,0.197261404971436,0.197202742325864,0.197138020861112,0.197083868237959,0.197053237088675,0.197053237088675, +0.22239865405601,0.22239865405601,0.222449551280747,0.222443834353262,0.222395140704222,0.222321511055709,0.222242794714232,0.222177753092525,0.222141142206492,0.222141142206492, +0.272507845772014,0.272507845772014,0.272545274734388,0.272516945016918,0.272439369319475,0.272334467860505,0.272226456477477,0.272138507400206,0.272089243368119,0.272089243368119, +0.346944787867674,0.346944787867674,0.346959802580574,0.346894718332102,0.346770604528718,0.346615441986872,0.346460126529764,0.346334764474682,0.346264547180727,0.346264547180727, +0.444400309901316,0.444400309901316,0.444382022228905,0.444262746004911,0.444070558063909,0.443842119496494,0.443617196712702,0.443435485360948,0.443332725057562,0.443332725057562, +0.56256156563064,0.56256156563064,0.562498155158898,0.562302409958333,0.56201514414203,0.561685254455715,0.561362470509206,0.561097899948966,0.560943981856677,0.560943981856677, +0.697899801039598,0.697899801039598,0.697783724772869,0.69747979772585,0.697062570441237,0.696597873533383,0.696142229474621,0.695755537260783,0.695514802066694,0.695514802066694, +0.845648775036005,0.845648775036005,0.845499915009205,0.845027037680985,0.844433583091954,0.843799663479689,0.843173014493601,0.842605560317315,0.84219451171504,0.84219451171504, + +00:47:16, +0.197350006853926,0.197350006853926,0.197407150262003,0.197412162370153,0.197377273437935,0.197318623431809,0.197253914136288,0.197199771062574,0.197169145155512,0.197169145155512, +0.197350006853926,0.197350006853926,0.197407150262003,0.197412162370153,0.197377273437935,0.197318623431809,0.197253914136288,0.197199771062574,0.197169145155512,0.197169145155512, +0.222513456365827,0.222513456365827,0.222564353893494,0.222558645004095,0.222509964982194,0.222436351713423,0.222357651382376,0.222292622438366,0.222256018548156,0.222256018548156, +0.27261973749371,0.27261973749371,0.272657165344834,0.272628846539805,0.272551290525875,0.272446413221538,0.272338425722339,0.272250495712402,0.272201242261411,0.272201242261411, +0.347050541611462,0.347050541611462,0.347065555199275,0.347000487674742,0.346876403619997,0.346721277493834,0.346565998124123,0.346440665030154,0.346370463903659,0.346370463903659, +0.444495260852987,0.444495260852987,0.444476975188263,0.444357725684611,0.444165582319133,0.443937197301875,0.443712327420337,0.443530658791507,0.443427922596261,0.443427922596261, +0.562640073956303,0.562640073956303,0.562576672911077,0.562380969659015,0.562093768521648,0.561763954464673,0.561441244979591,0.56117673539762,0.561022852602901,0.561022852602901, +0.69795615249124,0.69795615249124,0.697840096748485,0.697536233249533,0.697119096270333,0.696654501457469,0.696198957928408,0.695812350680555,0.69557166784266,0.69557166784266, +0.845678282738903,0.845678282738903,0.845529452371251,0.845056670494588,0.844463337545709,0.843829549007516,0.843203029783215,0.84263569243432,0.842224727397749,0.842224727397749, + +00:47:17, +0.197465851232284,0.197465851232284,0.197522996122226,0.197528015174899,0.197493137076835,0.197434499716872,0.197369802598369,0.197315669080737,0.197285048419682,0.197285048419682, +0.197465851232284,0.197465851232284,0.197522996122226,0.197528015174899,0.197493137076835,0.197434499716872,0.197369802598369,0.197315669080737,0.197285048419682,0.197285048419682, +0.222628250087436,0.222628250087436,0.222679147911707,0.2226734470587,0.22262478066586,0.222551183781008,0.222472499465291,0.222407483203169,0.222370886311166,0.222370886311166, +0.272731614355207,0.272731614355207,0.272769041093608,0.272740733199556,0.272663196867768,0.272558343716843,0.272450380100438,0.272362469157033,0.272313226286684,0.272313226286684, +0.347156273902134,0.347156273902134,0.347171286367935,0.347106235564396,0.346982181250904,0.346827091530588,0.34667184823813,0.346546544096916,0.346476359133134,0.346476359133134, +0.444590185906352,0.444590185906352,0.444571902254324,0.444452679463531,0.444260580656932,0.444032249168202,0.443807432166766,0.443625806242598,0.443523094145064,0.443523094145064, +0.562718556099236,0.562718556099236,0.562655164483211,0.562459503163901,0.562172366676592,0.561842628213244,0.561519993153502,0.561255544519881,0.56110169700534,0.56110169700534, +0.698012482551227,0.698012482551227,0.697896447328485,0.697592647350124,0.69717560063362,0.696711107865697,0.696255664816289,0.695869142492002,0.695628511984346,0.695628511984346, +0.845707778396662,0.845707778396662,0.845558977675991,0.845086291208588,0.844493079844069,0.843859422318672,0.843233032795101,0.842665812218922,0.842254930709644,0.842254930709644, + +00:47:18, +0.197581690774039,0.197581690774039,0.197638837136483,0.197643863131427,0.197608995870797,0.197550371163691,0.197485686229971,0.197431562275045,0.197400946863769,0.197400946863769, +0.197581690774039,0.197581690774039,0.197638837136483,0.197643863131427,0.197608995870797,0.197550371163691,0.197485686229971,0.197431562275045,0.197400946863769,0.197400946863769, +0.222743035209355,0.222743035209355,0.222793933323913,0.222788240505594,0.222739587743724,0.222666007246946,0.22258733895144,0.222522335375379,0.222485745483958,0.222485745483958, +0.272843476355075,0.272843476355075,0.27288090197928,0.272852604994736,0.272775088343706,0.272670259344956,0.272562319610293,0.272474427732609,0.272425195442442,0.272425195442442, +0.34726198474961,0.34726198474961,0.347276996096467,0.347211962010972,0.34708793743134,0.346932884107033,0.346777676881678,0.346652401684859,0.346582232879043,0.346582232879043, +0.444685085080566,0.444685085080566,0.44466680344623,0.444547607360811,0.444355553096451,0.444127275114632,0.443902510971156,0.443720927733398,0.443618239723157,0.443618239723157, +0.562797012082754,0.562797012082754,0.562733629898606,0.562538010496304,0.562250938630199,0.561921275724791,0.561598715054335,0.561334327339168,0.56118051508743,0.56118051508743, +0.698068791240425,0.698068791240425,0.697952776533737,0.697649040048514,0.697232083552025,0.696767692779046,0.69631235015929,0.695925912716192,0.695685334512848,0.695685334512848, +0.845737262021566,0.845737262021566,0.845588490935718,0.845115899835321,0.844522809999428,0.843889283425614,0.843263023541778,0.842695919683697,0.842285121663343,0.842285121663343, + +00:47:19, +0.197697525461887,0.197697525461887,0.197754673287483,0.197759706222443,0.197724849802508,0.197666237754931,0.197601565013734,0.197547450628119,0.197516840470385,0.197516840470385, +0.197697525461887,0.197697525461887,0.197754673287483,0.197759706222443,0.197724849802508,0.197666237754931,0.197601565013734,0.197547450628119,0.197516840470385,0.197516840470385, +0.222857811720125,0.222857811720125,0.222908710118654,0.222903025333317,0.22285438620431,0.222780822099742,0.222702169829307,0.222637178943463,0.22260059605499,0.22260059605499, +0.27295532349189,0.27295532349189,0.272992748000426,0.272964461923912,0.272886964952243,0.27278216010442,0.272674244250432,0.272586371437647,0.272537149727194,0.272537149727194, +0.347367674163803,0.347367674163803,0.347382684394776,0.347317667024366,0.347193672171197,0.347038655233053,0.34688348406465,0.346758237803865,0.346688085151264,0.346688085151264, +0.444779958394759,0.444779958394759,0.4447616787831,0.44464250939557,0.444450499656814,0.444222275160297,0.443997563852652,0.443816023283062,0.443713359349699,0.443713359349699, +0.56287544193014,0.56287544193014,0.562812069180536,0.562616491679509,0.562329484405773,0.561999897022649,0.561677410705454,0.561413083878872,0.561259306872574,0.561259306872574, +0.698125078579675,0.698125078579675,0.698009084385078,0.697705411365565,0.697288545046453,0.696824256218465,0.696369013978412,0.695982661374168,0.695742135449232,0.695742135449232, +0.84576673362588,0.84576673362588,0.84561799216271,0.845145496387107,0.844552528024162,0.843919132340782,0.84329300203575,0.842726014841206,0.842315300271443,0.842315300271443, + +00:47:20, +0.197813355278555,0.197813355278555,0.197870504557961,0.197875544430677,0.197840698854684,0.197782099473284,0.197717438932329,0.19766333412261,0.19763272922217,0.19763272922217, +0.197813355278555,0.197813355278555,0.197870504557961,0.197875544430677,0.197840698854684,0.197782099473284,0.197717438932329,0.19766333412261,0.19763272922217,0.19763272922217, +0.222972579608302,0.222972579608302,0.223023478284495,0.223017801530426,0.222969176036159,0.222895628327917,0.222816992087394,0.222752013895906,0.222715438012738,0.222715438012738, +0.273067155764237,0.273067155764237,0.273104579155628,0.273076303985659,0.272998826691942,0.272894045993782,0.272786154019388,0.272698300270668,0.272649089139458,0.272649089139458, +0.347473342154617,0.347473342154617,0.347488351272755,0.347423350614467,0.347299385480356,0.347144404918527,0.34698926979692,0.346864052463805,0.346793915959667,0.346793915959667, +0.444874805868039,0.444874805868039,0.44485652828403,0.4447373855869,0.444545420357121,0.444317249324307,0.444092590830375,0.443911092910721,0.443808453043829,0.443808453043829, +0.56295384566465,0.56295384566465,0.562890482352247,0.562694946736767,0.562408004026589,0.562078492130121,0.561756080130191,0.56149181416235,0.561338072384147,0.561338072384147, +0.698181344589788,0.698181344589788,0.698065370903319,0.697761761322111,0.697344985137777,0.696880798204878,0.696425656294625,0.696039388486942,0.695798914814537,0.695798914814537, +0.845796193221854,0.845796193221854,0.845647481369229,0.845175080876251,0.844582233930632,0.843948969076599,0.843322968289502,0.84275609770399,0.842345466546528,0.842345466546528, + +00:47:21, +0.197929180206794,0.197929180206794,0.197986330930679,0.197991377738887,0.197956543010065,0.19789795630147,0.19783330796845,0.197779212741193,0.197748613101789,0.197748613101789, +0.197929180206794,0.197929180206794,0.197986330930679,0.197991377738887,0.197956543010065,0.19789795630147,0.19783330796845,0.197779212741193,0.197748613101789,0.197748613101789, +0.223087338862464,0.223087338862464,0.22313823781002,0.223132569085498,0.223083957227834,0.223010425920015,0.222931805714221,0.222866840221213,0.222830271345696,0.222830271345696, +0.273178973170704,0.273178973170704,0.273216395443474,0.273188131178557,0.273110673561372,0.273005917011595,0.272898048915701,0.2728102142302,0.272761013677754,0.272761013677754, +0.347578988731942,0.347578988731942,0.347593996740288,0.347529012791152,0.34740507736869,0.347250133173322,0.347095034088351,0.346969845674539,0.346899725314114,0.346899725314114, +0.44496962751949,0.44496962751949,0.444951351968093,0.444832235953873,0.444640315216447,0.444412197625749,0.444187591923423,0.444006136635484,0.44390352082466,0.44390352082466, +0.563032223309508,0.563032223309508,0.562968869436952,0.562773375691303,0.562486497515891,0.56215706107048,0.561834723351851,0.561570518212932,0.561416811645494,0.561416811645494, +0.698237589291547,0.698237589291547,0.698121636109242,0.697818089938959,0.697401403846843,0.696937318759178,0.696482277128872,0.696096094075498,0.695855672629773,0.695855672629773, +0.845825640821723,0.845825640821723,0.845676958567518,0.845204653315037,0.84461192773118,0.843978793645471,0.843352922315502,0.842786168284574,0.842375620501162,0.842375620501162, + +00:47:22, +0.198045000229383,0.198045000229383,0.198102152388426,0.198107206129856,0.19807238225142,0.198013808222234,0.19794917210482,0.197895086466571,0.197864492091934,0.197864492091934, +0.198045000229383,0.198045000229383,0.198102152388426,0.198107206129856,0.19807238225142,0.198013808222234,0.19794917210482,0.197895086466571,0.197864492091934,0.197864492091934, +0.223202089471208,0.223202089471208,0.223252988683831,0.22324732798713,0.223198729767917,0.223125214864595,0.223046610698329,0.222981657907907,0.22294509604238,0.22294509604238, +0.273290775709885,0.273290775709885,0.273328196862557,0.273299943501192,0.273222505559106,0.273117773156418,0.273009928937916,0.272922113314778,0.27287292334061,0.27287292334061, +0.347684613905662,0.347684613905662,0.347699620807252,0.347634653564289,0.34751074784606,0.347355840007295,0.347200776948798,0.347075617445919,0.347005513224453,0.347005513224453, +0.445064423368173,0.445064423368173,0.445046149854336,0.444927060515535,0.444735184253845,0.444507120083684,0.444282567150871,0.444101154476435,0.443998562711283,0.443998562711283, +0.563110574887907,0.563110574887907,0.563047230457836,0.562851778566308,0.562564964896894,0.562235603866968,0.561913340393705,0.561649196053917,0.561495524679926,0.561495524679926, +0.698293812705706,0.698293812705706,0.6981778800236,0.697874397236885,0.697457801194468,0.69699381790223,0.696538876502066,0.696152778160793,0.695912408915923,0.695912408915923, +0.845855076437702,0.845855076437702,0.845706423769805,0.845234213715736,0.844641609438133,0.844008606059785,0.843382864126202,0.842816226595467,0.842405762147893,0.842405762147893, + +00:47:23, +0.198160815329127,0.198160815329127,0.198217968914017,0.198223029586395,0.198188216561543,0.198129655218349,0.198065031324188,0.198010955281476,0.197980366175325,0.197980366175325, +0.198160815329127,0.198160815329127,0.198217968914017,0.198223029586395,0.198188216561543,0.198129655218349,0.198065031324188,0.198010955281476,0.197980366175325,0.197980366175325, +0.223316831423149,0.223316831423149,0.223367730894548,0.223362078223937,0.223313493645007,0.223239995150239,0.223161407028278,0.223096466944532,0.223059912091324,0.223059912091324, +0.273402563380382,0.273402563380382,0.273439983411476,0.273411740952156,0.273334322683724,0.273229614426818,0.273121794084584,0.273033997522942,0.272984818126561,0.272984818126561, +0.34779021768565,0.34779021768565,0.347805223483509,0.347740272943735,0.34761639692232,0.347461525430293,0.347306498388104,0.347181367787788,0.347111279700527,0.347111279700527, +0.445159193433126,0.445159193433126,0.445140921961787,0.445021859290911,0.444830027488345,0.444602016717154,0.444377516531769,0.444196146452635,0.444093578722766,0.444093578722766, +0.563188900423011,0.563188900423011,0.563125565438053,0.562930155384945,0.562643406192782,0.5623141205428,0.561991931278997,0.561727847708572,0.561574211510728,0.561574211510728, +0.698350014852994,0.698350014852994,0.698234102667121,0.69793068323664,0.697514177201443,0.697050295654873,0.696595454435095,0.696209440763754,0.695969123693939,0.695969123693939, +0.845884500081991,0.845884500081991,0.845735876988301,0.845263762090601,0.844671279063799,0.844038406331914,0.843412793734037,0.842846272649159,0.842435891499252,0.842435891499252, + +00:47:24, +0.198276625488859,0.198276625488859,0.198333780490295,0.198338848091343,0.198304045923257,0.198245497272614,0.198180885609331,0.198126819168665,0.198096235334709,0.198096235334709, +0.198276625488859,0.198276625488859,0.198333780490295,0.198338848091343,0.198304045923257,0.198245497272614,0.198180885609331,0.198126819168665,0.198096235334709,0.198096235334709, +0.223431564706921,0.223431564706921,0.223482464430812,0.223476819784553,0.223428248847725,0.223354766765546,0.223276194692648,0.223211267319651,0.22317471948108,0.22317471948108, +0.2735143361808,0.2735143361808,0.273551755088837,0.273523523530047,0.273446124933813,0.273341440821365,0.273233644354263,0.273145866853237,0.273096698034146,0.273096698034146, +0.347895800081769,0.347895800081769,0.347910804778916,0.347845870939339,0.347722024607311,0.347567189452156,0.347412198416104,0.347287096709977,0.347217024752167,0.347217024752167, +0.445253937733364,0.445253937733364,0.445235668309448,0.445116632299001,0.444924844938954,0.444696887545174,0.444472440085146,0.444291112583124,0.444188568878154,0.444188568878154, +0.563267199937953,0.563267199937953,0.563203874400726,0.563008506170347,0.562721821426708,0.562392611121156,0.562070496030939,0.561806473200134,0.561652872161153,0.561652872161153, +0.69840619575411,0.69840619575411,0.698290304060502,0.697986947958946,0.697570531888529,0.697106752037916,0.696652010948817,0.696266081905282,0.696025816984749,0.696025816984749, +0.845913911766772,0.845913911766772,0.845765318235198,0.845293298451866,0.844700936620471,0.844068194474213,0.843442711151423,0.842876306458123,0.842466008567751,0.842466008567751, + +00:47:25, +0.198392430691438,0.198392430691438,0.198449587100129,0.198454661627562,0.19841987031941,0.198361334367856,0.198296734943051,0.19824267811092,0.198212099552858,0.198212099552858, +0.198392430691438,0.198392430691438,0.198449587100129,0.198454661627562,0.19841987031941,0.198361334367856,0.198296734943051,0.19824267811092,0.198212099552858,0.198212099552858, +0.223546289311179,0.223546289311179,0.223597189281284,0.223591552657632,0.223542995364708,0.223469529699135,0.223390973680036,0.223326059021846,0.223289518200222,0.223289518200222, +0.273626094109752,0.273626094109752,0.273663511893251,0.273635291233469,0.273557912307963,0.273453252338637,0.273345479745515,0.273257721304216,0.273208563061911,0.273208563061911, +0.348001361103873,0.348001361103873,0.348016364703317,0.347951447560939,0.347827630910866,0.347672832082711,0.347517877042624,0.34739280422231,0.347322748389194,0.347322748389194, +0.445348656287877,0.445348656287877,0.445330388916298,0.445211379558784,0.445019636624654,0.444791732586738,0.444567337830007,0.444386052886916,0.444283533196467,0.444283533196467, +0.563345473455837,0.563345473455837,0.563282157368948,0.563086830945615,0.562800210621797,0.56247107562519,0.562149034672713,0.561885072551813,0.561731506654422,0.561731506654422, +0.698462355429725,0.698462355429725,0.698346484224414,0.698043191424496,0.69762686527646,0.69716318707214,0.696708546064061,0.696322701606247,0.696082488809249,0.696082488809249, +0.845943311504213,0.845943311504213,0.845794747522675,0.845322822811752,0.844730582120424,0.844097970499018,0.84347261639076,0.842906328034817,0.842496113365887,0.842496113365887, + +00:47:26, +0.198508230919749,0.198508230919749,0.198565388726415,0.198570470177946,0.198535689732877,0.198477166486927,0.198412579308178,0.198358532091053,0.198327958812574,0.198327958812574, +0.198508230919749,0.198508230919749,0.198565388726415,0.198570470177946,0.198535689732877,0.198477166486927,0.198412579308178,0.198358532091053,0.198327958812574,0.198327958812574, +0.223661005224596,0.223661005224596,0.223711905434641,0.223706276831847,0.223657733184615,0.223584283939643,0.223505743979061,0.223440842039717,0.223404308237341,0.223404308237341, +0.273737837165856,0.273737837165856,0.273775253823335,0.273747044061031,0.273669684804772,0.273565048977217,0.27345730025691,0.273369560874436,0.273320413208409,0.273320413208409, +0.348106900761804,0.348106900761804,0.348121903266548,0.348057002818365,0.34793321584281,0.347778453331777,0.347623534277478,0.347498490334599,0.34742845062142,0.34742845062142, +0.445443349115634,0.445443349115634,0.445425083801294,0.445306101089214,0.445114402564407,0.444886551860817,0.444662209785335,0.444480967383004,0.444378471696704,0.444378471696704, +0.563423720999736,0.563423720999736,0.563360414365785,0.563165129733822,0.56287857380114,0.562549514078023,0.562227547227471,0.561963645786784,0.561810115013729,0.561810115013729, +0.698518493900482,0.698518493900482,0.698402643179499,0.698099413653958,0.697683177385941,0.697219600778299,0.69676505980163,0.696379299887495,0.696139139188309,0.696139139188309, +0.845972699306461,0.845972699306461,0.845824164862891,0.84535233518246,0.844760215575917,0.844127734418652,0.843502509464433,0.842936337391679,0.842526205906139,0.842526205906139, + +00:47:27, +0.198624026156703,0.198624026156703,0.198681185352073,0.198686273725409,0.19865150414656,0.198592993612707,0.198528418687567,0.198474381091901,0.198443813096681,0.198443813096681, +0.198624026156703,0.198624026156703,0.198681185352073,0.198686273725409,0.19865150414656,0.198592993612707,0.198528418687567,0.198474381091901,0.198443813096681,0.198443813096681, +0.223775712435863,0.223775712435863,0.223826612879582,0.223820992295889,0.223772462296123,0.223699029475728,0.223620505578358,0.223555616361884,0.223519089581049,0.223519089581049, +0.273849565347736,0.273849565347736,0.273886980877711,0.273858782011348,0.273781442422843,0.273676830735693,0.273569105887023,0.273481385562462,0.273432248472196,0.273432248472196, +0.348212419065397,0.348212419065397,0.348227420478434,0.348162536721436,0.348038779412955,0.347884053209164,0.347729170130471,0.347604155056648,0.347534131458648,0.347534131458648, +0.44553801623558,0.44553801623558,0.445519752983368,0.445400796909222,0.44520914277715,0.444981345386358,0.444757055970087,0.444575856090356,0.44447338439784,0.44447338439784, +0.563501942592692,0.563501942592692,0.563438645414268,0.56324340255801,0.562956910987804,0.562627926502747,0.562306033718336,0.562042192928196,0.561888697262236,0.561888697262236, +0.698574611186997,0.698574611186997,0.698458780946372,0.698155614667968,0.697739468237652,0.697275993177119,0.696821552182297,0.69643587676984,0.696195768142769,0.696195768142769, +0.84600207518565,0.84600207518565,0.84585357026799,0.845381835576176,0.844789836999191,0.844157486245417,0.843532390384807,0.842966334541133,0.842556286200969,0.842556286200969, + +00:47:28, +0.198739816385241,0.198739816385241,0.198796976960054,0.198802072252898,0.198767313543387,0.198708815728102,0.198644253064103,0.198590225096328,0.198559662388035,0.198559662388035, +0.198739816385241,0.198739816385241,0.198796976960054,0.198802072252898,0.198767313543387,0.198708815728102,0.198644253064103,0.198590225096328,0.198559662388035,0.198559662388035, +0.223890410933692,0.223890410933692,0.223941311604824,0.223935699038471,0.223887182687928,0.223813766296067,0.223735258466585,0.223670381976988,0.223633862219976,0.223633862219976, +0.273961278654022,0.273961278654022,0.273998693055008,0.273970505083042,0.273893185160787,0.273788597612662,0.273680896634434,0.273593195366863,0.273544068851836,0.273544068851836, +0.348317916024476,0.348317916024476,0.348332916348792,0.34826804927996,0.348144321631106,0.34798963172467,0.347834784611401,0.34770979839825,0.34763979091067,0.34763979091067, +0.445632657666636,0.445632657666636,0.445614396481432,0.445495467037717,0.445303857281796,0.445076113182284,0.4448518764032,0.444670719027918,0.444568271318827,0.444568271318827, +0.563580138257719,0.563580138257719,0.563516850537402,0.56332164944119,0.56303522220482,0.562706312922425,0.562384494168398,0.562120713999165,0.561967253423075,0.561967253423075, +0.698630707309858,0.698630707309858,0.69851489754562,0.698211794487139,0.697795737852241,0.697332364289297,0.696878023226809,0.69649243227407,0.696252375693444,0.696252375693444, +0.846031439153897,0.846031439153897,0.8458829637501,0.845411324005069,0.844819446402472,0.844187225991602,0.843562259164232,0.842996319495583,0.842586354262822,0.842586354262822, + +00:47:29, +0.198855601588326,0.198855601588326,0.198912763533332,0.198917865743382,0.198883117906313,0.198824632816044,0.198760082420695,0.198706064087225,0.198675506669514,0.198675506669514, +0.198855601588326,0.198855601588326,0.198912763533332,0.198917865743382,0.198883117906313,0.198824632816044,0.198760082420695,0.198706064087225,0.198675506669514,0.198675506669514, +0.224005100706812,0.224005100706812,0.224056001599101,0.22405039704832,0.224001894348744,0.223928494389353,0.223850002632415,0.223785138873686,0.223748626142771,0.223748626142771, +0.274072977083348,0.274072977083348,0.27411039035386,0.274082213274739,0.274004913017217,0.273900349606722,0.27379267249773,0.273704990286216,0.2736558743459,0.2736558743459, +0.348423391648856,0.348423391648856,0.348438390887429,0.348373540503738,0.348249842507056,0.348095188888086,0.347940377730053,0.34781542036919,0.347745428987269,0.347745428987269, +0.445727273427702,0.445727273427702,0.445709014314372,0.445590111493584,0.445398546097236,0.445170855267498,0.444946671103586,0.444765556214615,0.444663132478594,0.444663132478594, +0.5636583080178,0.5636583080178,0.56359502975816,0.563399870406346,0.563113507475192,0.562784673360089,0.56246292860072,0.56219920902278,0.562045783519349,0.562045783519349, +0.698686782289626,0.698686782289626,0.698570992997802,0.698267953132052,0.697851986250331,0.697388714135504,0.696934472955884,0.696548966420945,0.696308961861118,0.696308961861118, +0.8460607912233,0.8460607912233,0.84591234532133,0.845440800481292,0.844849043797968,0.844216953669475,0.84359211581504,0.843026292267418,0.842616410104125,0.842616410104125, + +00:47:30, +0.198971381748951,0.198971381748951,0.199028545054909,0.199033654179859,0.198998917218319,0.198940444859493,0.198875906740278,0.198821898047509,0.198791345924026,0.198791345924026, +0.198971381748951,0.198971381748951,0.199028545054909,0.199033654179859,0.198998917218319,0.198940444859493,0.198875906740278,0.198821898047509,0.198791345924026,0.198791345924026, +0.224119781743973,0.224119781743973,0.22417068285117,0.224165086314187,0.224116597267306,0.224043213744303,0.223964738064543,0.223899887040657,0.223863381338102,0.223863381338102, +0.274184660634356,0.274184660634356,0.274222072772907,0.274193906585073,0.274116625990754,0.274012086716482,0.273904433475504,0.2738167703191,0.273767664952963,0.273767664952963, +0.34852884594834,0.34852884594834,0.34854384410414,0.34847901040256,0.34835534205059,0.348200724709191,0.348045949496204,0.347921020979242,0.347851045698219,0.347851045698219, +0.445821863537653,0.445821863537653,0.445803606501052,0.445684730295685,0.445493209242339,0.445265571660877,0.445041440090136,0.444860367669344,0.444757967896047,0.444757967896047, +0.563736451895889,0.563736451895889,0.563673183099486,0.563478065476428,0.563191766821894,0.56286300783874,0.562541337038334,0.562277678022096,0.562124287574129,0.562124287574129, +0.698742836146834,0.698742836146834,0.698627067323449,0.698324090623263,0.697908213452518,0.697445042736382,0.696990901390213,0.696605479231196,0.69636552666655,0.69636552666655, +0.846090131405942,0.846090131405942,0.845941714993775,0.845470265016979,0.844878629197869,0.844246669291292,0.843621960349547,0.843056252869009,0.84264645373729,0.84264645373729, + +00:47:31, +0.199087156850134,0.199087156850134,0.199144321507813,0.199149437545352,0.199114711462413,0.199056251841435,0.198991726005816,0.198937726960124,0.198907180134504,0.198907180134504, +0.199087156850134,0.199087156850134,0.199144321507813,0.199149437545352,0.199114711462413,0.199056251841435,0.198991726005816,0.198937726960124,0.198907180134504,0.198907180134504, +0.224234454033942,0.224234454033942,0.224285355349804,0.224279766824839,0.224231291432368,0.224157924349648,0.224079464751682,0.224014626466597,0.223978127794658,0.223978127794658, +0.274296329305694,0.274296329305694,0.274333740310796,0.274305585012682,0.274228324080026,0.274123808940554,0.274016179566354,0.273928535464105,0.273879440671606,0.273879440671606, +0.348634278932725,0.348634278932725,0.348649276008713,0.348584458986205,0.348460820271484,0.348306239197756,0.348151499919621,0.348026600238172,0.347956641053284,0.347956641053284, +0.445916428015341,0.445916428015341,0.445898173060313,0.44577932346286,0.44558784673595,0.445360262381276,0.445136183381715,0.444955153410984,0.444852777590069,0.444852777590069, +0.563814569914908,0.563814569914908,0.563751310584294,0.563556234674361,0.56327000026787,0.562941316381351,0.562619719504242,0.562356121020142,0.562202765610458,0.562202765610458, +0.698798868901985,0.698798868901985,0.698683120543066,0.698380206981299,0.697964419479367,0.697501350112544,0.697047308550457,0.696661970725527,0.696422070130467,0.696422070130467, +0.84611945971389,0.84611945971389,0.845971072779511,0.845499717624249,0.844908202614352,0.844276372869287,0.843651792780051,0.843086201312711,0.84267648517471,0.84267648517471, + +00:47:32, +0.199202926874918,0.199202926874918,0.199260092875099,0.199265215822911,0.19923050062163,0.199172053744882,0.199107540200298,0.19905355080804,0.199023009283908,0.199023009283908, +0.199202926874918,0.199202926874918,0.199260092875099,0.199265215822911,0.19923050062163,0.199172053744882,0.199107540200298,0.19905355080804,0.199023009283908,0.199023009283908, +0.224349117565507,0.224349117565507,0.224400019083795,0.224394438569064,0.2243459768327,0.224272626194142,0.224194182682565,0.224129357140222,0.224092865501145,0.224092865501145, +0.274407983096013,0.274407983096013,0.274445392966176,0.274417248556209,0.274340007283665,0.274235516277555,0.274127910768886,0.274040285719824,0.273991201500417,0.273991201500417, +0.348739690611795,0.348739690611795,0.348754686610925,0.348689886264446,0.348566277179503,0.348411732363542,0.348257029010062,0.348132158155734,0.348062215062219,0.348062215062219, +0.446010966879598,0.446010966879598,0.445992714010974,0.445873891013926,0.44568245859689,0.445454927447528,0.445230900997168,0.445049913458388,0.444947561579521,0.444947561579521, +0.563892662097751,0.563892662097751,0.563829412235467,0.563634378023035,0.563348207836034,0.563019599010864,0.562698076021415,0.562434538039915,0.562281217651348,0.562281217651348, +0.698854880575557,0.698854880575557,0.698739152677128,0.698436302226659,0.698020604351418,0.697557636284579,0.697103694457253,0.696718440924615,0.696478592273573,0.696478592273573, +0.846148776159194,0.846148776159194,0.8460004186906,0.845529158315205,0.844937764059573,0.844306064415682,0.843681613118835,0.843116137610862,0.842706504428762,0.842706504428762, + +00:47:33, +0.199318691806376,0.199318691806376,0.199375859139848,0.199380988995612,0.199346284679029,0.199287850552872,0.199223349306739,0.199169369574255,0.199138833355225,0.199138833355225, +0.199318691806376,0.199318691806376,0.199375859139848,0.199380988995612,0.199346284679029,0.199287850552872,0.199223349306739,0.199169369574255,0.199138833355225,0.199138833355225, +0.224463772327473,0.224463772327473,0.224514674041955,0.224509101535666,0.224460653457095,0.224387319266555,0.224308891845942,0.224244079050267,0.224207594446289,0.224207594446289, +0.274519622003973,0.274519622003973,0.274557030737707,0.274528897214306,0.274451675600308,0.27434720872611,0.274239627081708,0.274152021084856,0.274102947437989,0.274102947437989, +0.348845080995325,0.348845080995325,0.348860075920543,0.348795292247042,0.348671712784401,0.3485172042163,0.348362536777275,0.348237694741674,0.348167767734767,0.348167767734767, +0.446105480149228,0.446105480149228,0.446087229371829,0.445968432967675,0.445777044843959,0.445549566878442,0.445325592955316,0.445144647830387,0.445042319883238,0.445042319883238, +0.563970728467282,0.563970728467282,0.563907488075861,0.563712495545314,0.563426389549269,0.563097855750192,0.562776406612797,0.562512929104381,0.562359643719782,0.562359643719782, +0.698910871188,0.698910871188,0.698795163746085,0.698492376379817,0.698076768089184,0.697613901273043,0.697160059131206,0.696774889849108,0.69653509311654,0.69653509311654, +0.846178080753887,0.846178080753887,0.846029752739085,0.845558587101933,0.844967313545676,0.84433574394268,0.843711421378163,0.843146061775782,0.842736511511806,0.842736511511806, + +00:47:34, +0.199434451627604,0.199434451627604,0.199491620285166,0.199496757046558,0.199462063617699,0.199403642248471,0.199339153308182,0.199285183241791,0.199254652331467,0.199254652331467, +0.199434451627604,0.199434451627604,0.199491620285166,0.199496757046558,0.199462063617699,0.199403642248471,0.199339153308182,0.199285183241791,0.199254652331467,0.199254652331467, +0.224578418308666,0.224578418308666,0.224629320213115,0.22462375571347,0.224575321294361,0.224502003555679,0.224423592230584,0.224358792185485,0.224322314618835,0.224322314618835, +0.274631246028237,0.274631246028237,0.274668653624051,0.274640530985628,0.274563329028601,0.274458886284849,0.274351328503438,0.274263741557805,0.274214678482922,0.274214678482922, +0.348950450093083,0.348950450093083,0.348965443947326,0.348900676943745,0.348777127095925,0.348622654765772,0.348468023230997,0.348343210005729,0.348273299080664,0.348273299080664, +0.446199967843016,0.446199967843016,0.44618171916165,0.446062949342878,0.445871605495933,0.445644180692804,0.445420259274956,0.445239356545791,0.445137052520036,0.445137052520036, +0.564048769046334,0.564048769046334,0.563985538128298,0.563790587264031,0.56350454543043,0.563176086622218,0.562854711301298,0.56259129423648,0.562438043838712,0.562438043838712, +0.698966840759736,0.698966840759736,0.698851153770358,0.698548429461217,0.698132910713147,0.69767014509847,0.697216402592896,0.696831317519626,0.696591572680015,0.696591572680015, +0.846207373509986,0.846207373509986,0.846059074936994,0.845588003996502,0.844996851084783,0.844365411462466,0.843741217570284,0.843175973819775,0.842766506436185,0.842766506436185, + +00:47:35, +0.199550206321726,0.199550206321726,0.199607376294187,0.199612519958878,0.199577837420752,0.19951942881477,0.199454952187696,0.199400991793699,0.199370466195673,0.199370466195673, +0.199550206321726,0.199550206321726,0.199607376294187,0.199612519958878,0.199577837420752,0.19951942881477,0.199454952187696,0.199400991793699,0.199370466195673,0.199370466195673, +0.224693055497928,0.224693055497928,0.224743957586124,0.22473840109132,0.224689980333329,0.224616679050322,0.224538283825279,0.224473496534651,0.224437026007547,0.224437026007547, +0.274742855167475,0.274742855167475,0.274780261623876,0.274752149868837,0.274674967567192,0.274570548952407,0.274463015032697,0.274375447137284,0.27432639463382,0.27432639463382, +0.349055797914823,0.349055797914823,0.349070790701021,0.349006040364297,0.348882520123812,0.34872808402169,0.348573488380958,0.348448703957624,0.348378809109637,0.348378809109637, +0.446294429979723,0.446294429979723,0.446276183399187,0.446157440158283,0.445966140571566,0.445738768909378,0.445514899974864,0.445334039623383,0.445231759508706,0.445231759508706, +0.564126783857712,0.564126783857712,0.564063562415575,0.563868653201989,0.563582675502342,0.563254291649794,0.562932990109803,0.562669633459118,0.562516418031061,0.562516418031061, +0.69902278931116,0.69902278931116,0.69890712277034,0.698604461491275,0.698189032243764,0.697726367781362,0.697272724862875,0.696887723956761,0.696648030984617,0.696648030984617, +0.846236654439491,0.846236654439491,0.846088385296338,0.845617409010964,0.845026376689004,0.844395066987211,0.843771001707429,0.843205873755128,0.842796489214226,0.842796489214226, + +00:47:36, +0.199665955871892,0.199665955871892,0.199723127150072,0.199728277715728,0.199693606071328,0.199635210234887,0.199570745928374,0.199516795213055,0.199486274930911,0.199486274930911, +0.199665955871892,0.199665955871892,0.199723127150072,0.199728277715728,0.199693606071328,0.199635210234887,0.199570745928374,0.199516795213055,0.199486274930911,0.199486274930911, +0.224807683884122,0.224807683884122,0.22485858614985,0.224853037658078,0.224804630562844,0.224731345739312,0.224652966618837,0.224588192086555,0.224551728601207,0.224551728601207, +0.274854449420363,0.274854449420363,0.274891854735858,0.2748637538626,0.274786591214738,0.274682196727427,0.274574686668112,0.274487137821909,0.274438095889294,0.274438095889294, +0.349161124470293,0.349161124470293,0.349176116191367,0.34911138251843,0.348987891877789,0.348833491993775,0.348678932236876,0.348554176607078,0.348484297831401,0.348484297831401, +0.446388866578087,0.446388866578087,0.446370622103166,0.446251905432615,0.446060650089588,0.445833331546904,0.445609515073791,0.445428697081926,0.445326440868017,0.445326440868017, +0.564204772924191,0.564204772924191,0.564141560960456,0.563946693381962,0.5636607797878,0.563332470855744,0.563011243061164,0.562747946795174,0.562594766319722,0.562594766319722, +0.69907871686264,0.69907871686264,0.698963070766397,0.698660472490382,0.698245132701464,0.697782569342196,0.697329025961667,0.69694410918108,0.696704468050934,0.696704468050934, +0.846265923554386,0.846265923554386,0.846117683829113,0.845646802157355,0.84505589037043,0.844424710529068,0.843800773801813,0.843235761594112,0.842826459858237,0.842826459858237, + +00:47:37, +0.199781700261278,0.199781700261278,0.199838872836006,0.199844030300289,0.199809369552594,0.199750986491966,0.19968653451334,0.199632593482961,0.199602078520271,0.199602078520271, +0.199781700261278,0.199781700261278,0.199838872836006,0.199844030300289,0.199809369552594,0.199750986491966,0.19968653451334,0.199632593482961,0.199602078520271,0.199602078520271, +0.224922303456129,0.224922303456129,0.22497320589318,0.224967665402625,0.224919271971775,0.224846003611496,0.224767640600083,0.224702878830008,0.224666422388618,0.224666422388618, +0.274966028785583,0.274966028785583,0.275003432958676,0.274975342965589,0.2748981999699,0.274793829608555,0.274686343408318,0.274598813610303,0.274549782247961,0.274549782247961, +0.34926642976923,0.34926642976923,0.349281420428094,0.349216703415866,0.349093242367571,0.348938878691742,0.348784354808462,0.348659627963798,0.348589765255662,0.348589765255662, +0.446483277656824,0.446483277656824,0.446465035292292,0.446346345184575,0.446155134068707,0.445927868624101,0.445704104590468,0.445523328940161,0.445421096616714,0.445421096616714, +0.564282736268515,0.564282736268515,0.564219533785677,0.564024707826694,0.563738858309569,0.563410624262861,0.563089470178205,0.562826234267496,0.562673088727559,0.562673088727559, +0.699134623434514,0.699134623434514,0.699018997778869,0.6987164624789,0.698301212106649,0.69783874980142,0.697385305909767,0.69700047321312,0.696760883899531,0.696760883899531, +0.846295180866638,0.846295180866638,0.846146970547295,0.845676183447696,0.845085392141137,0.844454342100173,0.843830533865633,0.843265637348979,0.842856418380511,0.842856418380511, + +00:47:38, +0.199897439473086,0.199897439473086,0.199954613335201,0.199959777695768,0.199925127847741,0.199866757569178,0.199802317925739,0.199748386586547,0.199717876946872,0.199717876946872, +0.199897439473086,0.199897439473086,0.199954613335201,0.199959777695768,0.199925127847741,0.199866757569178,0.199802317925739,0.199748386586547,0.199717876946872,0.199717876946872, +0.22503691420285,0.22503691420285,0.22508781680502,0.225082284313861,0.225033904549006,0.224960652655741,0.224882305757864,0.224817556753841,0.224781107358599,0.224781107358599, +0.275077593261821,0.275077593261821,0.275114996291016,0.275086917176484,0.275009793831344,0.274905447594444,0.274797985251954,0.274710474501094,0.274661453708444,0.274661453708444, +0.349371713821361,0.349371713821361,0.34938670342092,0.349322003066319,0.349198571602868,0.349044244125293,0.348889756105416,0.348765058037482,0.348695211392118,0.348695211392118, +0.446577663234625,0.446577663234625,0.446559422985244,0.446440759432843,0.446249592527607,0.446022380159664,0.445798668543602,0.445617935216803,0.44551572677352,0.44551572677352, +0.5643606739134,0.5643606739134,0.564297480913944,0.564102696558899,0.563816911090385,0.56348875189391,0.563167671483718,0.562904495898903,0.562751385277404,0.562751385277404, +0.699190509047096,0.699190509047096,0.699074903828068,0.698772431477164,0.698357270479692,0.697894909179456,0.697441564727646,0.69705681607339,0.696817278550943,0.696817278550943, +0.846324426388199,0.846324426388199,0.846176245462848,0.845705552893989,0.845114882013182,0.844483961712646,0.843860281911072,0.843295501031967,0.842886364793324,0.842886364793324, + +00:47:39, +0.200013173490545,0.200013173490545,0.200070348630897,0.2000755198854,0.200040880939988,0.19998252344972,0.199918096148747,0.199864174506968,0.19983367019386,0.19983367019386, +0.200013173490545,0.200013173490545,0.200070348630897,0.2000755198854,0.200040880939988,0.19998252344972,0.199918096148747,0.199864174506968,0.19983367019386,0.19983367019386, +0.225151516113202,0.225151516113202,0.225202418874293,0.225196894380705,0.225148528283441,0.22507529286093,0.224996962081045,0.224932225846901,0.224895783499991,0.224895783499991, +0.27518914284777,0.27518914284777,0.27522654473157,0.275198476493969,0.275121372797743,0.275017050683753,0.274909612197665,0.274822120492917,0.274773110269371,0.274773110269371, +0.349476976636402,0.349476976636402,0.349491965179556,0.349427281479491,0.349303879593376,0.349149588304122,0.348995136137427,0.348870466837818,0.348800636250457,0.348800636250457, +0.446672023330159,0.446672023330159,0.446653785200681,0.446535148196076,0.446344025484952,0.446116866172264,0.445893206951875,0.445712515930548,0.445610331357136,0.445610331357136, +0.564438585881532,0.564438585881532,0.564375402367932,0.564180659601262,0.563894938152954,0.563566853771625,0.563245847000468,0.562982731712185,0.562829655992062,0.562829655992062, +0.699246373720671,0.699246373720671,0.699130788934276,0.698828379505481,0.698413307840941,0.697951047496697,0.697497802435745,0.697113137782373,0.696873652025678,0.696873652025678, +0.846353660131004,0.846353660131004,0.846205508587717,0.845734910508221,0.845144359998608,0.844513569378591,0.843890017950294,0.843325352655295,0.842916299108934,0.842916299108934, + +00:47:40, +0.200128902296909,0.200128902296909,0.200186078706357,0.200191256852445,0.20015662881258,0.200098284116813,0.200033869165563,0.199979957227405,0.199949458244405,0.199949458244405, +0.200128902296909,0.200128902296909,0.200186078706357,0.200191256852445,0.20015662881258,0.200098284116813,0.200033869165563,0.199979957227405,0.199949458244405,0.199949458244405, +0.225266109176124,0.225266109176124,0.225317012089945,0.225311495592094,0.225263143164004,0.225189924215968,0.225111609558509,0.225046886098056,0.225010450801652,0.225010450801652, +0.275300677542129,0.275300677542129,0.275338078279036,0.275310020916735,0.275232936867777,0.275128638875147,0.275021224244101,0.274933751584411,0.274884751929376,0.274884751929376, +0.349582218224064,0.349582218224064,0.349597205713701,0.349532538665077,0.349409166348786,0.349254911237913,0.349100494914178,0.348975854374485,0.348906039840356,0.348906039840356, +0.446766357962075,0.446766357962075,0.446748121957238,0.446629511492907,0.44643843295938,0.446211326680552,0.445987719833951,0.445807071100067,0.445704910386239,0.445704910386239, +0.564516472195565,0.564516472195565,0.56445329817029,0.564258596976439,0.563972939519952,0.56364492991871,0.56332399675119,0.5630609417301,0.562907900894308,0.562907900894308, +0.699302217475496,0.699302217475496,0.699186653117752,0.698884306584131,0.698469324210715,0.698007164773509,0.697554019054477,0.697169438360525,0.696930004344214,0.696930004344214, +0.84638288210697,0.84638288210697,0.846234759933831,0.845764256302363,0.845173826109441,0.844543165110094,0.843919741995448,0.843355192231167,0.842946221339583,0.842946221339583, + +00:47:41, +0.20024462587546,0.20024462587546,0.200301803544873,0.200306988580188,0.200272371448787,0.200214039553708,0.200149636959414,0.200095734731067,0.200065241081706,0.200065241081706, +0.20024462587546,0.20024462587546,0.200301803544873,0.200306988580188,0.200272371448787,0.200214039553708,0.200149636959414,0.200095734731067,0.200065241081706,0.200065241081706, +0.225380693380571,0.225380693380571,0.225431596440935,0.225426087936984,0.225377749179635,0.225304546709776,0.225226248179158,0.225161537496193,0.225125109252459,0.225125109252459, +0.2754121973436,0.2754121973436,0.275449596932115,0.275421550443476,0.275344486040129,0.275240212167296,0.27513282138992,0.275045367774224,0.2749963786871,0.2749963786871, +0.349687438594043,0.349687438594043,0.349702425033046,0.34963777463276,0.349514431878774,0.349360212936341,0.349205832445339,0.349081220657154,0.349011422171484,0.349011422171484, +0.446860667148996,0.446860667148996,0.446842433273528,0.446723849341947,0.446532814969509,0.446305761703155,0.446082207208466,0.445901600744008,0.445799463879484,0.445799463879484, +0.564594332878129,0.564594332878129,0.564531168343634,0.564336508707055,0.564050915214027,0.563722980357842,0.563402120758588,0.563139125975378,0.562986120006885,0.562986120006885, +0.699358040331802,0.699358040331802,0.699242496398725,0.698940212733369,0.698525319609306,0.698063261030232,0.697610214604229,0.697225717828271,0.696986335527007,0.696986335527007, +0.846412092328001,0.846412092328001,0.846263999513102,0.845793590288368,0.84520328035769,0.844572748919226,0.843949454058663,0.84338501977177,0.842976131497497,0.842976131497497, + +00:47:42, +0.200360344209505,0.200360344209505,0.20041752312976,0.200422715051943,0.200388108831906,0.200329789743679,0.200265399513552,0.200211507001188,0.200181018688985,0.200181018688985, +0.200360344209505,0.200360344209505,0.20041752312976,0.200422715051943,0.200388108831906,0.200329789743679,0.200265399513552,0.200211507001188,0.200181018688985,0.200181018688985, +0.225495268715519,0.225495268715519,0.225546171916245,0.22554067140435,0.225492346319295,0.225419160331296,0.225340877931914,0.225276180030216,0.225239758841309,0.225239758841309, +0.275523702250896,0.275523702250896,0.275561100689517,0.275533065072895,0.275456020313489,0.275351770558876,0.275244403633784,0.275156969061006,0.275107990541188,0.275107990541188, +0.34979263775603,0.34979263775603,0.349807623147272,0.349742989392215,0.349619676193011,0.349465493409071,0.349311148740572,0.349186565695483,0.3491167832535,0.3491167832535, +0.446954950909523,0.446954950909523,0.44693671916814,0.446818161761785,0.446627171533933,0.446400171258677,0.446176669094037,0.445996104880998,0.445893991855503,0.445893991855503, +0.564672167951819,0.564672167951819,0.564609012910553,0.564414394815708,0.564128865257797,0.563801005111666,0.563480219045338,0.563217284470721,0.563064313352511,0.563064313352511, +0.699413842309794,0.699413842309794,0.699298318797397,0.698996097973418,0.698581294056978,0.698119336287177,0.69766638910536,0.697281976206013,0.697042645594479,0.697042645594479, +0.84644129080598,0.84644129080598,0.846293227337427,0.845822912478174,0.845232722755347,0.84460232081804,0.843979154152057,0.843414835289272,0.843006029594885,0.843006029594885, + +00:47:43, +0.200476057282375,0.200476057282375,0.200533237444363,0.200538436251048,0.200503840945261,0.200445534670028,0.200381156811256,0.200327274021027,0.200296791049493,0.200296791049493, +0.200476057282375,0.200476057282375,0.200533237444363,0.200538436251048,0.200503840945261,0.200445534670028,0.200381156811256,0.200327274021027,0.200296791049493,0.200296791049493, +0.22560983516996,0.22560983516996,0.225660738504875,0.225655245983186,0.225606934571964,0.225533765069486,0.225455498805716,0.22539081368905,0.225354399557117,0.225354399557117, +0.275635192262729,0.275635192262729,0.275672589549956,0.275644564803698,0.275567539686552,0.275463314048568,0.275355970974362,0.275268555443415,0.275219587490292,0.275219587490292, +0.349897815719702,0.349897815719702,0.34991280006605,0.349848182953107,0.349724899301157,0.349570752665759,0.349416443809531,0.349291889499123,0.349222123096054,0.349222123096054, +0.447049209262236,0.447049209262236,0.447030979659643,0.446912448770986,0.446721502671223,0.446494555365699,0.446271105509258,0.44609058352964,0.445988494332905,0.445988494332905, +0.564749977439204,0.564749977439204,0.564686831893605,0.564492255324964,0.564206789673851,0.563879004202799,0.563558291634085,0.563295417238799,0.56314248095387,0.56314248095387, +0.699469623429646,0.699469623429646,0.699354120333944,0.699051962324478,0.698637247573969,0.698175390564628,0.697722542578203,0.697338213514122,0.697098934567031,0.697098934567031, +0.846470477552779,0.846470477552779,0.846322443418687,0.845852222883702,0.845262153314388,0.844631880818574,0.844008842287726,0.843444638795827,0.843035915643938,0.843035915643938, + +00:47:44, +0.20059176507743,0.20059176507743,0.200648946472049,0.200654152160866,0.2006195677722,0.200561274316082,0.200496908835831,0.200443035773871,0.200412558146505,0.200412558146505, +0.20059176507743,0.20059176507743,0.200648946472049,0.200654152160866,0.2006195677722,0.200561274316082,0.200496908835831,0.200443035773871,0.200412558146505,0.200412558146505, +0.225724392732907,0.225724392732907,0.22577529619584,0.225769811662503,0.225721513926638,0.225648360913326,0.225570110789523,0.225505438461636,0.225469031388815,0.225469031388815, +0.275746667377822,0.275746667377822,0.275784063512152,0.275756049634599,0.27567904415802,0.275574842635061,0.275467523410326,0.275380126920115,0.27533116953307,0.27533116953307, +0.35000297249473,0.35000297249473,0.350017955799042,0.349953355325092,0.349830101212862,0.349675990716051,0.349521717661858,0.349397192077717,0.349327441708786,0.349327441708786, +0.447143442225689,0.447143442225689,0.447125214766581,0.447006710388094,0.446815808399928,0.446588914042782,0.446365516472699,0.446185036708515,0.446082971330279,0.446082971330279, +0.564827761362823,0.564827761362823,0.56476462531532,0.564570090257361,0.564284688484746,0.563956977653829,0.563636338547447,0.563373524302254,0.563220622833618,0.563220622833618, +0.699525383711508,0.699525383711508,0.699409901028514,0.69910780580672,0.698693180180489,0.698231423882843,0.697778675043061,0.697394429772945,0.69715520246503,0.69715520246503, +0.846499652580251,0.846499652580251,0.846351647768746,0.845881521516858,0.845291572046774,0.844661428932847,0.844038518477752,0.843474430303573,0.843065789656832,0.843065789656832, + +00:47:45, +0.200707467578056,0.200707467578056,0.200764650196214,0.200769862764789,0.200735289296098,0.200677008665194,0.200612655570608,0.200558792243033,0.200528319963324,0.200528319963324, +0.200707467578056,0.200707467578056,0.200764650196214,0.200769862764789,0.200735289296098,0.200677008665194,0.200612655570608,0.200558792243033,0.200528319963324,0.200528319963324, +0.225838941393391,0.225838941393391,0.22588984497818,0.225884368431332,0.225836084372334,0.225762947851813,0.225684713872312,0.225620054336937,0.225583654325357,0.225583654325357, +0.275858127594901,0.275858127594901,0.27589552257483,0.275867519564316,0.275790533726601,0.275686356317047,0.275579060940357,0.275491683489774,0.275442736668184,0.275442736668184, +0.350108108090773,0.350108108090773,0.350123090355901,0.350058506517815,0.349935281937766,0.349781207569584,0.349626970307187,0.349502473440894,0.349432739101326,0.349432739101326, +0.447237649818418,0.447237649818418,0.447219424507475,0.447100946631629,0.446910088738574,0.44668324730846,0.446459902002908,0.446279464436181,0.446177422866188,0.446177422866188, +0.564905519745184,0.564905519745184,0.564842393198198,0.564647899635409,0.564362561713014,0.564034925487312,0.563714359808012,0.563451605683699,0.563298739014384,0.563298739014384, +0.699581123175502,0.699581123175502,0.699465660901228,0.69916362844029,0.698749091896722,0.698287436262051,0.697834786520212,0.697450625002799,0.697211449308822,0.697211449308822, +0.846528815900232,0.846528815900232,0.84638084039945,0.84591080838953,0.845320978964448,0.844690965172865,0.844068182734201,0.843504209824629,0.843095651645725,0.843095651645725, + +00:47:46, +0.200823164767662,0.200823164767662,0.200880348600278,0.200885568046232,0.200851005500356,0.200792737700745,0.200728396998943,0.20067454341185,0.200644076483279,0.200644076483279, +0.200823164767662,0.200823164767662,0.200880348600278,0.200885568046232,0.200851005500356,0.200792737700745,0.200728396998943,0.20067454341185,0.200644076483279,0.200644076483279, +0.225953481140461,0.225953481140461,0.226004384840947,0.225998916278722,0.225950645898086,0.225877525873962,0.22579930804308,0.225734661303933,0.225698268355714,0.225698268355714, +0.275969572912698,0.275969572912698,0.276006966736721,0.275978974591573,0.275902008391005,0.275797855093225,0.275690583563141,0.275603225151067,0.275554288894303,0.275554288894303, +0.350213222517483,0.350213222517483,0.350228203746268,0.350163636540913,0.350040441485501,0.349886403235983,0.349732201755141,0.349607733598277,0.349538015283297,0.349538015283297, +0.447331832058932,0.447331832058932,0.447313608900826,0.44719515752009,0.447004343705666,0.446777555181249,0.446554262118411,0.446373866731175,0.446271848959173,0.446271848959173, +0.564983252608768,0.564983252608768,0.564920135564709,0.564725683481585,0.564440409381154,0.564112847725778,0.563792355438335,0.563529661405715,0.563376829518764,0.563376829518764, +0.699636841841724,0.699636841841724,0.69952139997218,0.699219430245302,0.698804982742824,0.698343427722455,0.697890877029906,0.697506799223975,0.697267675118721,0.697267675118721, +0.846557967524544,0.846557967524544,0.846410021322633,0.84594008351359,0.845350374079338,0.844720489550616,0.844097835069122,0.843533977371098,0.84312550162276,0.84312550162276, + +00:47:47, +0.200938856629686,0.200938856629686,0.200996041667688,0.201001267988638,0.200966716368401,0.200908461406139,0.20084413310422,0.200790289263689,0.200759827689723,0.200759827689723, +0.200938856629686,0.200938856629686,0.200996041667688,0.201001267988638,0.200966716368401,0.200908461406139,0.20084413310422,0.200790289263689,0.200759827689723,0.200759827689723, +0.226068011963184,0.226068011963184,0.226118915773215,0.226113455193741,0.226065198492949,0.225992094968807,0.225913893290841,0.225849259351621,0.225812873468876,0.225812873468876, +0.276081003329952,0.276081003329952,0.276118395996562,0.276090414715099,0.276013468149953,0.2759093389623,0.275802091277367,0.275714751902675,0.275665826210103,0.275665826210103, +0.350318315784501,0.350318315784501,0.350333295979778,0.350268745404012,0.350145579865689,0.349991577724869,0.349837412015336,0.34971297255948,0.34964327026431,0.34964327026431, +0.44742598896572,0.44742598896572,0.44740776796511,0.447289343071951,0.447098573319685,0.44687183767964,0.446648596837711,0.44646824361201,0.446366249627755,0.446366249627755, +0.565060959976026,0.565060959976026,0.564997852437295,0.564803441818341,0.564518231511637,0.564190744391726,0.563870325460948,0.563607691490857,0.563454894369328,0.563454894369328, +0.699692539730241,0.699692539730241,0.699577118261437,0.699275211241849,0.698860852738923,0.69839939828423,0.697946946592366,0.697562952456736,0.697323879915017,0.697323879915017, +0.846587107464991,0.846587107464991,0.846439190550108,0.845969346900895,0.845379757403354,0.844750002078071,0.844127475494546,0.843563732955068,0.843155339600061,0.843155339600061, + +00:47:48, +0.201054543147591,0.201054543147591,0.201111729381916,0.201116962575475,0.201082421883687,0.201024179764807,0.200959863869848,0.200906029781938,0.200875573566036,0.200875573566036, +0.201054543147591,0.201054543147591,0.201111729381916,0.201116962575475,0.201082421883687,0.201024179764807,0.200959863869848,0.200906029781938,0.200875573566036,0.200875573566036, +0.226182533850648,0.226182533850648,0.226233437764078,0.226227985165476,0.226179742145995,0.226106655125401,0.226028469604628,0.22596384846902,0.225927469653851,0.225927469653851, +0.276192418845404,0.276192418845404,0.276229810353095,0.27620183993363,0.276124913002166,0.276020807922982,0.275913584081734,0.275826263743284,0.275777348614264,0.275777348614264, +0.350423387901457,0.350423387901457,0.350438367066054,0.35037383311673,0.350250697087941,0.350096731045847,0.349942601097376,0.349818190334105,0.349748504053967,0.349748504053967, +0.447520120557248,0.447520120557248,0.447501901718782,0.447383503305666,0.44719277759909,0.446966094822102,0.446742906179288,0.446562595097176,0.446460624890431,0.446460624890431, +0.56513864186938,0.56513864186938,0.56507554383837,0.564881174668097,0.564596028126907,0.564268615507626,0.563948269898348,0.56368569596165,0.563532933588614,0.563532933588614, +0.699748216861095,0.699748216861095,0.69963281578904,0.699330971449994,0.698916701905122,0.698455347967526,0.698002995227788,0.697619084721318,0.69738006371797,0.69738006371797, +0.846616235733362,0.846616235733362,0.846468348093676,0.845998598563284,0.845409128948391,0.844779502767185,0.84415710402249,0.843593476588608,0.843185165589738,0.843185165589738, + +00:47:49, +0.201170224304864,0.201170224304864,0.20122741172646,0.201232651790236,0.20119812202969,0.201139892760208,0.201075589279261,0.201021764950016,0.200991314095626,0.200991314095626, +0.201170224304864,0.201170224304864,0.20122741172646,0.201232651790236,0.20119812202969,0.201139892760208,0.201075589279261,0.201021764950016,0.200991314095626,0.200991314095626, +0.226297046791956,0.226297046791956,0.226347950802644,0.226342506183031,0.226294276846313,0.226221206332816,0.226143036973493,0.226078428645166,0.226042056899667,0.226042056899667, +0.276303819457805,0.276303819457805,0.276341209805069,0.276313250245907,0.276236342946376,0.276132261973987,0.276025061974944,0.275937760671585,0.275888856105472,0.275888856105472, +0.350528438877973,0.350528438877973,0.350543417014709,0.350478899688676,0.350355793161861,0.350201863208518,0.350047769010858,0.349923386931745,0.349853716661861,0.349853716661861, +0.447614226851959,0.447614226851959,0.447596010180275,0.447477638239665,0.447286956562316,0.447060326627082,0.446837190161602,0.446656921205141,0.446554974765674,0.446554974765674, +0.565216298311221,0.565216298311221,0.565153209790315,0.564958882053246,0.564673799249376,0.564346461095919,0.564026188773007,0.563763674840587,0.563610947199131,0.563610947199131, +0.699803873254298,0.699803873254298,0.699688492575002,0.699386710889771,0.698972530261496,0.698511276792464,0.69805902295634,0.697675196037931,0.697436226547815,0.697436226547815, +0.846645352341429,0.846645352341429,0.84649749396512,0.846027838512582,0.845438488726328,0.844808991629897,0.844186720664954,0.843623208283774,0.843214979603884,0.843214979603884, + +00:47:50, +0.20128590008502,0.20128590008502,0.201343088684846,0.201348335616442,0.201313816789917,0.201255600375824,0.201191309315919,0.201137494751363,0.201107049261924,0.201107049261924, +0.20128590008502,0.20128590008502,0.201343088684846,0.201348335616442,0.201313816789917,0.201255600375824,0.201191309315919,0.201137494751363,0.201107049261924,0.201107049261924, +0.226411550776232,0.226411550776232,0.226462454878043,0.226457018235529,0.226408802583012,0.226335748580141,0.226257595386506,0.226192999869112,0.226156635195369,0.226156635195369, +0.276415205165909,0.276415205165909,0.276452594351236,0.276424645650676,0.276347757981317,0.276243701114035,0.276136524955704,0.276049242686278,0.276000348682418,0.276000348682418, +0.350633468723663,0.350633468723663,0.35064844583535,0.350583945129446,0.350460868097042,0.350306974222471,0.350152915765367,0.350028562361987,0.349958908097576,0.349958908097576, +0.447708307868274,0.447708307868274,0.447690093367996,0.447571747892357,0.447381110227779,0.447154533113003,0.446931448803087,0.446751221954353,0.446649299271937,0.446649299271937, +0.565293929323914,0.565293929323914,0.565230850315485,0.565036563996149,0.564751544901427,0.564424281179017,0.564104082107366,0.563841628150137,0.563688935223362,0.563688935223362, +0.69985950892984,0.69985950892984,0.699744148639308,0.699442429581192,0.699028337828093,0.698567184779138,0.698115029798164,0.697731286426757,0.697492368424758,0.697492368424758, +0.846674457300948,0.846674457300948,0.846526628176206,0.846057066760597,0.845467836749026,0.84483846867813,0.844216325433919,0.843652928052602,0.843244781654573,0.843244781654573, + +00:47:51, +0.201401570471599,0.201401570471599,0.201458760240622,0.201464014037638,0.201429506147897,0.201371302595163,0.201307023963311,0.201253219169449,0.201222779048388,0.201222779048388, +0.201401570471599,0.201401570471599,0.201458760240622,0.201464014037638,0.201429506147897,0.201371302595163,0.201307023963311,0.201253219169449,0.201222779048388,0.201222779048388, +0.226526045792618,0.226526045792618,0.226576949979423,0.226571521312112,0.226523319345221,0.226450281856486,0.226372144832757,0.226307562129933,0.226271204530021,0.226271204530021, +0.276526575968476,0.276526575968476,0.276563963990356,0.276536026146689,0.27645915810573,0.276355125341855,0.276247973022729,0.276160709786064,0.276111826343801,0.276111826343801, +0.350738477448129,0.350738477448129,0.35075345353757,0.350688969448631,0.350565921903068,0.350412064097284,0.350258041370481,0.350133716634404,0.350064078370686,0.350064078370686, +0.447802363624592,0.447802363624592,0.447784151300335,0.447665832282127,0.447475238613869,0.447248714298268,0.447025682122157,0.446845497363234,0.446743598427649,0.446743598427649, +0.565371534929793,0.565371534929793,0.565308465436207,0.565114220519142,0.564829265105416,0.564502075779304,0.564181949923835,0.563919555912734,0.563766897683758,0.563766897683758, +0.699915123907679,0.699915123907679,0.699799784001919,0.699498127544239,0.699084124624933,0.698623071947615,0.698171015773374,0.697787355907951,0.697548489368981,0.697548489368981, +0.846703550623661,0.846703550623661,0.846555750738685,0.846086283319118,0.845497173028331,0.84486793392379,0.844245918341354,0.843682635907114,0.843274571753865,0.843274571753865, + +00:47:52, +0.201517235448168,0.201517235448168,0.201574426377364,0.201579687037394,0.201545190087186,0.201486999401762,0.201422733204948,0.201368938187768,0.201338503438503,0.201338503438503, +0.201517235448168,0.201517235448168,0.201574426377364,0.201579687037394,0.201545190087186,0.201486999401762,0.201422733204948,0.201368938187768,0.201338503438503,0.201338503438503, +0.226640531830274,0.226640531830274,0.226691436095949,0.226686015401941,0.226637827122085,0.226564806150977,0.226486685301353,0.22642211541672,0.226385764892707,0.226385764892707, +0.276637931864271,0.276637931864271,0.276675318721193,0.276647391732704,0.27657054331836,0.276466534656179,0.276359406174737,0.276272161969653,0.276223289088323,0.276223289088323, +0.350843465060964,0.350843465060964,0.350858440130955,0.350793972655809,0.350670954589513,0.35051713284253,0.350363145835767,0.350238849758563,0.350169227490757,0.350169227490757, +0.447896394139289,0.447896394139289,0.447878183995655,0.447759891427338,0.447569341738956,0.447342870201256,0.447119890137204,0.446939747450185,0.446837872251218,0.446837872251218, +0.565449115151163,0.565449115151163,0.565386055174775,0.565191851644528,0.564906959883669,0.564579844919131,0.5642597922448,0.563997458150788,0.56384483460274,0.56384483460274, +0.69997071820775,0.69997071820775,0.699855398682768,0.699553804798867,0.699139890672012,0.698678938317937,0.698226980902059,0.69784340450164,0.697604589400634,0.697604589400634, +0.84673263232129,0.84673263232129,0.846584861664293,0.846115488199923,0.845526497576074,0.844897387378766,0.844275499399207,0.843712331859313,0.843304349913804,0.843304349913804, + +00:47:53, +0.201632894998317,0.201632894998317,0.201690087078674,0.201695354599309,0.201660868591367,0.201602690779179,0.201538437024368,0.201484651789841,0.201454222415778,0.201454222415778, +0.201632894998317,0.201632894998317,0.201690087078674,0.201695354599309,0.201660868591367,0.201602690779179,0.201538437024368,0.201484651789841,0.201454222415778,0.201454222415778, +0.226755008878378,0.226755008878378,0.226805913216806,0.226800500494194,0.226752325902769,0.226679321452759,0.22660121678142,0.226536659718583,0.226500316272528,0.226500316272528, +0.276749272852066,0.276749272852066,0.276786658542517,0.276758742407484,0.276681913617961,0.276577929055746,0.276470824410455,0.27638359923576,0.276334736914694,0.276334736914694, +0.350948431571752,0.350948431571752,0.350963405625082,0.35089895476055,0.350775966165943,0.350622180467768,0.350468229170783,0.350343961744019,0.350274355467342,0.350274355467342, +0.447990399430717,0.447990399430717,0.447972191472299,0.447853925346332,0.447663419621387,0.447437000840323,0.447214072866595,0.447033972233586,0.446932120761029,0.446932120761029, +0.5655266700103,0.5655266700103,0.565463619553457,0.565269457394583,0.564984629258482,0.564657588620826,0.564337609092613,0.564075334886676,0.563922746002703,0.563922746002703, +0.70002629184996,0.70002629184996,0.699910992701759,0.699609461365005,0.699195635989296,0.698734783910116,0.698282925204278,0.697899432227926,0.697660668539845,0.697660668539845, +0.846761702405545,0.846761702405545,0.846613960964747,0.84614468141477,0.845555810404068,0.844926829054933,0.844305068619414,0.84374201592119,0.843334116146415,0.843334116146415, + +00:47:54, +0.201748549105664,0.201748549105664,0.201805742328178,0.201811016707005,0.201776541644046,0.201718376711002,0.201654135405136,0.201600359959212,0.20156993596375,0.20156993596375, +0.201748549105664,0.201748549105664,0.201805742328178,0.201811016707005,0.201776541644046,0.201718376711002,0.201654135405136,0.201600359959212,0.20156993596375,0.20156993596375, +0.226869476926128,0.226869476926128,0.226920381331195,0.226914976578068,0.226866815676455,0.226793827750996,0.226715739262102,0.226651195024651,0.226614858658604,0.226614858658604, +0.276860598930637,0.276860598930637,0.276897983453105,0.276870078169798,0.276793269003289,0.276689308539298,0.276582227728613,0.276495021583104,0.276446169821628,0.276446169821628, +0.351053376990069,0.351053376990069,0.351068350029517,0.351003915772416,0.350880956641912,0.350727206982551,0.350573291385078,0.350449052600319,0.35037946230999,0.35037946230999, +0.448084379517209,0.448084379517209,0.448066173748587,0.447947934057428,0.447757472279486,0.447531106233805,0.447308230328677,0.447128171731793,0.447026343975443,0.447026343975443, +0.565604199529453,0.565604199529453,0.565541158594492,0.565347037791554,0.565062273252123,0.564735306906682,0.564415400489599,0.564153186142749,0.564000631906011,0.564000631906011, +0.700081844854188,0.700081844854188,0.699966566078773,0.699665097262555,0.699251360596726,0.69879060874414,0.698338848700066,0.697955439106883,0.697716726806712,0.697716726806712, +0.846790760888117,0.846790760888117,0.846643048651751,0.846173862975403,0.845585111524111,0.844956258964149,0.844334626013892,0.843771688104714,0.843363870463709,0.843363870463709, + +00:47:55, +0.201864197753851,0.201864197753851,0.201921392109529,0.201926673344129,0.201892209228857,0.201834057180843,0.201769828330841,0.201716062679453,0.201685644065979,0.201685644065979, +0.201864197753851,0.201864197753851,0.201921392109529,0.201926673344129,0.201892209228857,0.201834057180843,0.201769828330841,0.201716062679453,0.201685644065979,0.201685644065979, +0.226983935962738,0.226983935962738,0.227034840428339,0.227029443642778,0.226981296432345,0.226908325034871,0.226830252732563,0.226765721324072,0.226729392040073,0.226729392040073, +0.276971910098768,0.276971910098768,0.277009293451736,0.27698139901842,0.276904609473108,0.276800673105587,0.276693616127948,0.276606429010413,0.276557587807845,0.276557587807845, +0.351158301325477,0.351158301325477,0.351173273353817,0.351108855700957,0.350985926026967,0.350832212396421,0.350678332488191,0.350554122337002,0.350484548028235,0.350484548028235, +0.448178334417074,0.448178334417074,0.448160130842817,0.448041917578921,0.447851499731555,0.447625186400015,0.447402362541774,0.44722234596314,0.447120541912803,0.447120541912803, +0.565681703730839,0.565681703730839,0.565618672320088,0.565424592857659,0.565139891886831,0.564812999798968,0.564493166458055,0.564231011941328,0.564078492334999,0.564078492334999, +0.700137377240289,0.700137377240289,0.700022118833661,0.699720712511393,0.699307064514216,0.69884641283997,0.698394751409429,0.698011425158557,0.697772764221308,0.697772764221308, +0.846819807780683,0.846819807780683,0.846672124736992,0.846203032893548,0.845614400947983,0.844985677118254,0.844364171594543,0.843801348421843,0.843393612877679,0.843393612877679, + +00:47:56, +0.201979840926548,0.201979840926548,0.202037036406405,0.202042324494356,0.202007871329459,0.201949732172339,0.201885515785099,0.201831759934163,0.201801346706054,0.201801346706054, +0.201979840926548,0.201979840926548,0.202037036406405,0.202042324494356,0.202007871329459,0.201949732172339,0.201885515785099,0.201831759934163,0.201801346706054,0.201801346706054, +0.227098385977442,0.227098385977442,0.227149290497475,0.227143901677557,0.227095768159658,0.227022813293585,0.226944757181983,0.22688023860601,0.226843916406093,0.226843916406093, +0.277083206355244,0.277083206355244,0.277120588537198,0.27709270495213,0.277015935026186,0.276912022753366,0.2768049896072,0.276717821516417,0.276668990872072,0.276668990872072, +0.351263204587534,0.351263204587534,0.351278175607531,0.351213774555715,0.351090874330645,0.35093719671891,0.350783352489652,0.350659170963595,0.350589612631607,0.350589612631607, +0.448272264148598,0.448272264148598,0.448254062773265,0.448135875929087,0.447945501995875,0.447719241357242,0.447496469524188,0.44731649494594,0.447214714591425,0.447214714591425, +0.565759182636648,0.565759182636648,0.565696160752428,0.565502122615088,0.565217485184816,0.56489066731992,0.564570907020248,0.564308812304704,0.564156327311973,0.564156327311973, +0.700192889028088,0.700192889028088,0.700077650986251,0.699776307131368,0.699362747761654,0.698902196217537,0.698450633352347,0.698067390402969,0.697828780803676,0.697828780803676, +0.846848843094903,0.846848843094903,0.84670118923214,0.846232191180918,0.84564367868745,0.845015083529074,0.844393705373252,0.843830996884515,0.843423343400304,0.843423343400304, + +00:47:57, +0.202095478607447,0.202095478607447,0.20215267520251,0.202157970141385,0.202123527929536,0.202065401669152,0.202001197751551,0.201947451706963,0.201917043867586,0.201917043867586, +0.202095478607447,0.202095478607447,0.20215267520251,0.202157970141385,0.202123527929536,0.202065401669152,0.202001197751551,0.201947451706963,0.201917043867586,0.201917043867586, +0.227212826959493,0.227212826959493,0.227263731527862,0.227258350671659,0.227210230847631,0.227137292516355,0.227059252599563,0.22699474685965,0.226958431745839,0.226958431745839, +0.277194487698861,0.277194487698861,0.277231868708283,0.277203995969714,0.277127245661297,0.277023357481398,0.276916348165119,0.276829199099854,0.27678037901304,0.27678037901304, +0.351368086785785,0.351368086785785,0.351383056800197,0.351318672346221,0.351195801562473,0.351042159959542,0.350888351398982,0.350764198489617,0.350694656129622,0.350694656129622, +0.448366168730046,0.448366168730046,0.448347969558183,0.448229809126176,0.448039479090704,0.447813271123754,0.447590551294199,0.447410618698482,0.447308862029606,0.447308862029606, +0.565836636269042,0.565836636269042,0.565773623913662,0.565579627086,0.56529505316826,0.564968309491749,0.564648622198416,0.56438658725514,0.564234136859213,0.564234136859213, +0.700248380237385,0.700248380237385,0.70013316255634,0.699831881142301,0.699418410358899,0.698957958896749,0.698506494548775,0.698123334860112,0.697884776573836,0.697884776573836, +0.846877866842422,0.846877866842422,0.846730242148851,0.846261337849207,0.845672944754261,0.845044478208418,0.844423227361887,0.843860633504653,0.843453062043542,0.843453062043542, + +00:47:58, +0.202211110780269,0.202211110780269,0.202268308481574,0.202273610268941,0.202239179012798,0.202181065654973,0.202116874213863,0.202063137981503,0.202032735534215,0.202032735534215, +0.202211110780269,0.202211110780269,0.202268308481574,0.202273610268941,0.202239179012798,0.202181065654973,0.202116874213863,0.202063137981503,0.202032735534215,0.202032735534215, +0.227327258898159,0.227327258898159,0.227378163508775,0.227372790614352,0.227324684485522,0.22725176269242,0.22717373897452,0.227109246074195,0.227072938048505,0.227072938048505, +0.277305754128415,0.277305754128415,0.277343133963789,0.277315272069961,0.27723854137722,0.277134677288447,0.277027691800457,0.276940561759467,0.276891752229487,0.276891752229487, +0.351472947929767,0.351472947929767,0.351487916941343,0.351423549082,0.351300707731969,0.351147102127831,0.350993329225692,0.350869204924578,0.350799678531789,0.350799678531789, +0.44846004817966,0.44846004817966,0.448441851215803,0.448323717188419,0.448133431034277,0.447907275717798,0.447684607870065,0.447504717239033,0.447402984245618,0.447402984245618, +0.565914064650152,0.565914064650152,0.565851061825913,0.565657106292528,0.565372595859315,0.565045926336635,0.564726312014768,0.564464336814871,0.564311920998965,0.564311920998965, +0.700303850887955,0.700303850887955,0.700188653563702,0.699887434563989,0.699474052325786,0.699013700897486,0.698562335018638,0.698179258549953,0.697940751551779,0.697940751551779, +0.846906879034867,0.846906879034867,0.846759283498763,0.846290472910094,0.84570219916015,0.845073861168078,0.844452737572302,0.843890258294164,0.84348276881934,0.84348276881934, + +00:47:59, +0.202326737428759,0.202326737428759,0.202383936227351,0.202389244860775,0.20235482456298,0.202296724113516,0.202232545155728,0.202178818741458,0.202148421689604,0.202148421689604, +0.202326737428759,0.202326737428759,0.202383936227351,0.202389244860775,0.20235482456298,0.202296724113516,0.202232545155728,0.202178818741458,0.202148421689604,0.202148421689604, +0.227441681782731,0.227441681782731,0.227492586429509,0.227487221494925,0.227439129062604,0.227366223811035,0.22728821629609,0.227223736238865,0.227187435303302,0.227187435303302, +0.277417005642713,0.277417005642713,0.277454384302519,0.277426533251669,0.277349822172742,0.277245982173287,0.277139020511973,0.277051909494004,0.277003110520154,0.277003110520154, +0.351577788029007,0.351577788029007,0.351592756040489,0.351528404772564,0.351405592848642,0.351252023233282,0.351098285979284,0.350974190277977,0.350904679847609,0.350904679847609, +0.44855390251566,0.44855390251566,0.448535707764334,0.448417600134022,0.448227357844807,0.448001255157596,0.447778639270019,0.44759879058584,0.447497081257715,0.447497081257715, +0.565991467802081,0.565991467802081,0.565928474511277,0.565734560256773,0.565450113280106,0.565123517876729,0.564803976491485,0.564542061006101,0.56438967975345,0.56438967975345, +0.700359300999545,0.700359300999545,0.700244124028083,0.6999429674162,0.699529673682122,0.6990694222396,0.698618154781836,0.698235161492432,0.697996705757469,0.697996705757469, +0.846935879683852,0.846935879683852,0.846788313293499,0.846319596375243,0.845731441916834,0.845103232419832,0.844482236016334,0.843919871264939,0.843512463739626,0.843512463739626, + +00:48:00, +0.202442358536687,0.202442358536687,0.202499558423621,0.202504873900663,0.202470464563844,0.20241237702852,0.202348210560865,0.202294493970526,0.202264102317445,0.202264102317445, +0.202442358536687,0.202442358536687,0.202499558423621,0.202504873900663,0.202470464563844,0.20241237702852,0.202348210560865,0.202294493970526,0.202264102317445,0.202264102317445, +0.227556095602513,0.227556095602513,0.227607000279375,0.227601643302685,0.22755356456817,0.227480675861475,0.22740268455353,0.227338217342899,0.227301923499462,0.227301923499462, +0.277528242240563,0.277528242240563,0.277565619723281,0.277537779513639,0.277461088046653,0.277357272134694,0.277250334298431,0.277163242302219,0.277114453883792,0.277114453883792, +0.351682607093022,0.351682607093022,0.351697574107146,0.351633239427417,0.35151045692199,0.35135692328539,0.35120322166925,0.351079154559306,0.351009660086571,0.351009660086571, +0.448647731756243,0.448647731756243,0.448629539221963,0.448511457981173,0.448321259540486,0.448095209461352,0.447872645512277,0.447692838757126,0.447591153084125,0.447591153084125, +0.566068845746905,0.566068845746905,0.566005861991818,0.565811989000811,0.565527605452726,0.565201084134154,0.564881615650719,0.564619759851008,0.56446741314486,0.56446741314486, +0.700414730591874,0.700414730591874,0.700299573969202,0.699998479718677,0.699585274447687,0.699125122942919,0.698673953858242,0.698291043707462,0.698052639210844,0.698052639210844, +0.846964868800973,0.846964868800973,0.846817331544668,0.846348708256301,0.845760673036014,0.845132591975441,0.844511722705802,0.843949472428851,0.843542146816312,0.843542146816312, + +00:48:01, +0.20255797408785,0.20255797408785,0.20261517505419,0.202620497372405,0.202586098999175,0.20252802438375,0.202463870413016,0.202410163652434,0.202379777401452,0.202379777401452, +0.20255797408785,0.20255797408785,0.20261517505419,0.202620497372405,0.202586098999175,0.20252802438375,0.202463870413016,0.202410163652434,0.202379777401452,0.202379777401452, +0.227670500346831,0.227670500346831,0.227721405047704,0.227716056026957,0.227667990991531,0.22759511883303,0.22751714373611,0.227452689375556,0.227416402626233,0.227416402626233, +0.27763946392078,0.27763946392078,0.277676840224889,0.277649010854679,0.277572338997749,0.277468547171451,0.277361633158602,0.277274560182873,0.277225782319153,0.277225782319153, +0.351787405131322,0.351787405131322,0.351802371150813,0.351738053056054,0.351615299961503,0.351461802293641,0.351308136305075,0.351184097778047,0.351114619258155,0.351114619258155, +0.448741535919586,0.448741535919586,0.448723345606854,0.448605290748034,0.448415136139483,0.448189138647243,0.447966626615028,0.447786861771092,0.447685199743055,0.447685199743055, +0.56614619850667,0.56614619850667,0.566083224289574,0.565889392546686,0.565605072399243,0.565278625131005,0.564959229514593,0.564697433371738,0.564545121195356,0.564545121195356, +0.700470139684638,0.700470139684638,0.700355003406753,0.700053971491136,0.699640854642237,0.699180803027242,0.698729732267703,0.698346905214929,0.698108551931815,0.698108551931815, +0.846993846397811,0.846993846397811,0.846846338263859,0.8463778085649,0.845789892529375,0.845161939846649,0.844541197652511,0.84397906179776,0.843571818061293,0.843571818061293, + +00:48:02, +0.202673584066068,0.202673584066068,0.202730786102889,0.202736115259829,0.202701727852787,0.202643666162999,0.20257952469595,0.202525827770933,0.202495446925366,0.202495446925366, +0.202673584066068,0.202673584066068,0.202730786102889,0.202736115259829,0.202701727852787,0.202643666162999,0.20257952469595,0.202525827770933,0.202495446925366,0.202495446925366, +0.227784896005027,0.227784896005027,0.227835800723844,0.227830459657084,0.227782408322015,0.227709552715013,0.227631593833124,0.22756715232611,0.227530872672883,0.227530872672883, +0.277750670682185,0.277750670682185,0.277788045806164,0.277760227273601,0.277683575024831,0.277579807282346,0.27747291709126,0.27738586313473,0.277337095824997,0.277337095824997, +0.351892182153405,0.351892182153405,0.351907147180983,0.351842845667961,0.351720121976663,0.351566660267511,0.351413029896231,0.351289019943671,0.351219557371834,0.351219557371834, +0.448835315023843,0.448835315023843,0.44881712693715,0.448699098452745,0.448508987659945,0.448283042733427,0.448060582596442,0.447880859645916,0.447779221252692,0.447779221252692, +0.566223526103393,0.566223526103393,0.566160561426554,0.565966770916417,0.565682514141694,0.565356140889346,0.565036818105203,0.564775081590413,0.564622803927073,0.564622803927073, +0.700525528297503,0.700525528297503,0.700410412360403,0.700109442753266,0.699696414285497,0.699236462512343,0.69878549003004,0.698402746034694,0.698164443940267,0.698164443940267, +0.847022812485931,0.847022812485931,0.846875333462648,0.846406897312654,0.845819100408586,0.845191276045184,0.844570660868251,0.844008639383505,0.843601477486449,0.843601477486449, + +00:48:03, +0.202789188455189,0.202789188455189,0.202846391553575,0.202851727546787,0.202817351108516,0.202759302350082,0.202695173393462,0.202641486309799,0.202611110872954,0.202611110872954, +0.202789188455189,0.202789188455189,0.202846391553575,0.202851727546787,0.202817351108516,0.202759302350082,0.202695173393462,0.202641486309799,0.202611110872954,0.202611110872954, +0.227899282566464,0.227899282566464,0.227950187297162,0.227944854182427,0.227896816548971,0.22782397749675,0.22774603483388,0.227681606183857,0.227645333628696,0.227645333628696, +0.277861862523604,0.277861862523604,0.27789923646593,0.277871428769223,0.277794796126708,0.277691052466175,0.277584186095188,0.277497151156561,0.27744839440009,0.27744839440009, +0.35199693816876,0.35199693816876,0.352011902207138,0.351947617272612,0.35182492297694,0.35167149721647,0.351517902452183,0.351393921065642,0.35132447443707,0.35132447443707, +0.448929069087144,0.448929069087144,0.44891088323097,0.448792881113427,0.448602814119998,0.44837692173804,0.448154513474665,0.447974832399757,0.447873217631196,0.447873217631196, +0.566300828559062,0.566300828559062,0.566237873424736,0.56604412413199,0.56575993070209,0.565433631431216,0.565114381444612,0.564852704529121,0.564700461362115,0.564700461362115, +0.700580896450111,0.700580896450111,0.700465800849792,0.700164893524731,0.699751953397171,0.699292101417969,0.698841227165044,0.698458566186589,0.698220315256058,0.698220315256058, +0.847051767076883,0.847051767076883,0.846904317152596,0.846435974511165,0.845848296685301,0.845220600582761,0.844600112364792,0.844038205197915,0.843631125103644,0.843631125103644, + +00:48:04, +0.202904787239084,0.202904787239084,0.202961991390129,0.202967334217156,0.202932968750224,0.20287493292884,0.202810816489373,0.202757139252834,0.202726769228009,0.202726769228009, +0.202904787239084,0.202904787239084,0.202961991390129,0.202967334217156,0.202932968750224,0.20287493292884,0.202810816489373,0.202757139252834,0.202726769228009,0.202726769228009, +0.22801366002052,0.22801366002052,0.228064564757043,0.228059239592365,0.228011215661764,0.22793839316759,0.227860466727706,0.227796050938107,0.227759785482978,0.227759785482978, +0.277973039443869,0.277973039443869,0.278010412203017,0.27798261534037,0.277906002302191,0.277802282721735,0.277695440169171,0.277608424247143,0.277559678043202,0.277559678043202, +0.352101673186868,0.352101673186868,0.352116636238749,0.352052367879476,0.351929702971796,0.351776313149973,0.351622753982388,0.351498801153413,0.351429370463316,0.351429370463316, +0.449022798127599,0.449022798127599,0.449004614506415,0.448886638748177,0.448696615537744,0.448470775679195,0.448248419267823,0.448068780050749,0.447967188896711,0.447967188896711, +0.566378105895638,0.566378105895638,0.566315160306073,0.566121452215367,0.56583732210241,0.565511096778622,0.56519191955486,0.564930302209924,0.564778093522559,0.564778093522559, +0.700636244162077,0.700636244162077,0.700521168894534,0.700220323825167,0.699807471996932,0.699347719763841,0.698896943692484,0.698514365690421,0.698276165899018,0.698276165899018, +0.8470807101822,0.8470807101822,0.846933289345246,0.846465040172016,0.845877481371157,0.845249913471074,0.844629552153891,0.844067759252797,0.843660760924725,0.843660760924725, + +00:48:05, +0.203020380401651,0.203020380401651,0.203077585596458,0.20308293525484,0.2030485807618,0.202990557883142,0.202926453967526,0.202872786583866,0.202842421974347,0.202842421974347, +0.203020380401651,0.203020380401651,0.203077585596458,0.20308293525484,0.2030485807618,0.202990557883142,0.202926453967526,0.202872786583866,0.202842421974347,0.202842421974347, +0.228128028356592,0.228128028356592,0.22817893309289,0.228173615876295,0.228125605649777,0.228052799716897,0.227974889503949,0.227910486578193,0.227874228225049,0.227874228225049, +0.278084201441817,0.278084201441817,0.278121573016263,0.27809378698587,0.278017193550099,0.277913498047833,0.277806679312001,0.277719682405257,0.277670946753111,0.277670946753111, +0.3522063872172,0.3522063872172,0.35222134928528,0.352157097498009,0.352034461970683,0.351881108077471,0.35172758449629,0.351603660216428,0.351534245460015,0.351534245460015, +0.449116502163296,0.449116502163296,0.449098320781559,0.448980371375069,0.448790391931264,0.448564604574983,0.448342299994018,0.448162702617005,0.448061135067355,0.448061135067355, +0.566455358135054,0.566455358135054,0.566392422092488,0.566198755188478,0.565914688364606,0.565588536953544,0.565269432457955,0.565007874654857,0.564855700430453,0.564855700430453, +0.700691571452989,0.700691571452989,0.700576516514216,0.700275733674185,0.69986297010443,0.699403317569652,0.6989526396321,0.69857014456597,0.698331995888953,0.698331995888953, +0.847109641813399,0.847109641813399,0.846962250052127,0.846494094306774,0.845906654477776,0.845279214721806,0.844658980247288,0.844097301559946,0.843690384961523,0.843690384961523, + +00:48:06, +0.203135967926813,0.203135967926813,0.203193174156495,0.203198530643765,0.203164187127157,0.203106177196879,0.203042085811793,0.202988428286748,0.202958069095811,0.202958069095811, +0.203135967926813,0.203135967926813,0.203193174156495,0.203198530643765,0.203164187127157,0.203106177196879,0.203042085811793,0.202988428286748,0.202958069095811,0.202958069095811, +0.228242387564095,0.228242387564095,0.228293292294124,0.228287983023634,0.228239986502411,0.228167197134054,0.228089303151971,0.228024913093462,0.227988661844249,0.227988661844249, +0.278195348516289,0.278195348516289,0.278232718904506,0.278204943704559,0.278128369869255,0.278024698443279,0.277917903522477,0.277830925629692,0.277782200528597,0.277782200528597, +0.352311080269217,0.352311080269217,0.352326041356185,0.352261806137658,0.352139199983045,0.351985882008402,0.351832394003327,0.351708498264124,0.351639099436602,0.351639099436602, +0.4492101812123,0.4492101812123,0.449192002074459,0.449074079012157,0.448884143318618,0.448658408443474,0.448436155671332,0.448256600116617,0.448155056161226,0.448155056161226, +0.566532585299211,0.566532585299211,0.566469658805875,0.566276033073226,0.565992029510603,0.565665951977934,0.565346920175877,0.565085421885924,0.564933282107815,0.564933282107815, +0.700746878342411,0.700746878342411,0.700631843728402,0.700331123091369,0.699918447739285,0.699458894855071,0.699008315003605,0.698625902832991,0.698387805245641,0.698387805245641, +0.847138561981984,0.847138561981984,0.846991199284752,0.846523136926993,0.845935816016763,0.845308504346622,0.844688396656708,0.84412683213114,0.843719997225854,0.843719997225854, + +00:48:07, +0.203251549798517,0.203251549798517,0.203308757054197,0.203314120367887,0.203279787830234,0.203221790853969,0.20315771200607,0.203104064345358,0.20307371057627,0.20307371057627, +0.203251549798517,0.203251549798517,0.203308757054197,0.203314120367887,0.203279787830234,0.203221790853969,0.20315771200607,0.203104064345358,0.20307371057627,0.20307371057627, +0.228356737632463,0.228356737632463,0.228407642350183,0.228402341023814,0.228354358209087,0.228281585408462,0.228203707661156,0.228139330473281,0.228103086329938,0.228103086329938, +0.278306480666134,0.278306480666134,0.278343849866595,0.278316085495275,0.278239531258489,0.278135883906888,0.278029112799401,0.277942153919239,0.277893439368449,0.277893439368449, +0.352415752352371,0.352415752352371,0.352430712460909,0.352366493807864,0.352243917018316,0.352090634952197,0.351937182512927,0.351813315305926,0.351743932402502,0.351743932402502, +0.449303835292654,0.449303835292654,0.449285658403145,0.449167761677472,0.448977869717843,0.448752187302714,0.448529986317823,0.448350472567654,0.448248952196398,0.448248952196398, +0.566609787409986,0.566609787409986,0.5665468704681,0.566353285891486,0.566069345562297,0.565743341873715,0.565424382730578,0.565162943925101,0.565010838576638,0.565010838576638, +0.700802164849877,0.700802164849877,0.700687150556625,0.700386492096277,0.699973904921095,0.699514451639738,0.699063969826687,0.698681640511209,0.698443593988833,0.698443593988833, +0.847167470699439,0.847167470699439,0.847020137054615,0.846552168044209,0.845964965999709,0.845337782357169,0.844717801393858,0.844156350978139,0.843749597729515,0.843749597729515, + +00:48:08, +0.203367126000738,0.203367126000738,0.203424334273547,0.203429704411182,0.203395382854994,0.203337398838355,0.203273332534278,0.203219694743599,0.203189346399617,0.203189346399617, +0.203367126000738,0.203367126000738,0.203424334273547,0.203429704411182,0.203395382854994,0.203337398838355,0.203273332534278,0.203219694743599,0.203189346399617,0.203189346399617, +0.228471078551148,0.228471078551148,0.228521983250524,0.228516689866287,0.228468720759241,0.228395964529541,0.228318103020903,0.228253738707036,0.228217501671492,0.228217501671492, +0.278417597890204,0.278417597890204,0.278454965901382,0.278427212356865,0.278350677716634,0.278247054437482,0.278140307141582,0.278053367272699,0.278004663271458,0.278004663271458, +0.352520403476104,0.352520403476104,0.352535362608887,0.352471160518054,0.35234861308592,0.352195366918277,0.352041950034507,0.35191811135125,0.351848744367131,0.351848744367131, +0.44939746442238,0.44939746442238,0.449379289785628,0.449261419389024,0.449071571146954,0.44884594117073,0.448623791951528,0.448444319988162,0.448342823190925,0.448342823190925, +0.566686964489225,0.566686964489225,0.566624057101001,0.566430513665104,0.566146636541553,0.565820706662782,0.565501820143982,0.565240440794336,0.565088369858882,0.565088369858882, +0.700857430994898,0.700857430994898,0.700742437018395,0.700441840708442,0.700029341669429,0.699569987943269,0.699119604121008,0.698737357620327,0.698499362138255,0.698499362138255, +0.847196367977237,0.847196367977237,0.8470490633732,0.846581187669943,0.845994104438188,0.845367048765081,0.844747194470431,0.844185858112689,0.84377918648429,0.84377918648429, + +00:48:09, +0.203482696517472,0.203482696517472,0.203539905798553,0.203545282757655,0.203510972185426,0.203453001134006,0.203388947380363,0.2033353194654,0.203304976549771,0.203304976549771, +0.203482696517472,0.203482696517472,0.203539905798553,0.203545282757655,0.203510972185426,0.203453001134006,0.203388947380363,0.2033353194654,0.203304976549771,0.203304976549771, +0.228585410309619,0.228585410309619,0.228636314984623,0.228631029540522,0.228583074142331,0.228510334486728,0.228432489220632,0.228368137784129,0.228331907858305,0.228331907858305, +0.278528700187359,0.278528700187359,0.278566067007724,0.278538324288179,0.278461809242532,0.278358210033888,0.278251486547835,0.278164565688874,0.278115872236425,0.278115872236425, +0.352625033649852,0.352625033649852,0.352639991809544,0.352575806277649,0.352453288195272,0.352300077916054,0.352146696577477,0.352022886409504,0.351953535339896,0.351953535339896, +0.449491068619477,0.449491068619477,0.449472896239898,0.449355052164799,0.449165247623945,0.448939670065526,0.448717572590464,0.448538142396169,0.448436669162838,0.448436669162838, +0.566764116558746,0.566764116558746,0.566701218726388,0.566507716415899,0.566223902470211,0.565898046367,0.565579232437983,0.565317912515548,0.565165875976483,0.565165875976483, +0.700912676796958,0.700912676796958,0.700797703133195,0.700497168947367,0.70008475800383,0.699625503785253,0.699175217906203,0.698793054180018,0.698555109713605,0.698555109713605, +0.847225253826831,0.847225253826831,0.847077978251972,0.846610195815699,0.846023231343758,0.845396303581976,0.844776575898104,0.844215353546519,0.843808763501946,0.843808763501946, + +00:48:10, +0.203598261332744,0.203598261332744,0.203655471613248,0.203660855391335,0.203626555805545,0.203568597724915,0.203504556528298,0.203450938494716,0.203420601010677,0.203420601010677, +0.203598261332744,0.203598261332744,0.203655471613248,0.203660855391335,0.203626555805545,0.203568597724915,0.203504556528298,0.203450938494716,0.203420601010677,0.203420601010677, +0.228699732897363,0.228699732897363,0.228750637541973,0.228745360036008,0.228697418347829,0.228624695269478,0.228546866249779,0.228482527693982,0.22844630487979,0.22844630487979, +0.278639787556461,0.278639787556461,0.278677153184484,0.278649421288073,0.278572925835026,0.278469350694938,0.278362651016978,0.278275749166574,0.278227066262153,0.278227066262153, +0.352729642883037,0.352729642883037,0.352744600072298,0.35268043109606,0.352557942355779,0.352404767954929,0.352251422151236,0.352127640490087,0.352058305330196,0.352058305330196, +0.449584647901924,0.449584647901924,0.449566477783921,0.449448660022764,0.449258899166786,0.449033374005082,0.448811328252623,0.448631939809676,0.448530490130148,0.448530490130148, +0.566841243640339,0.566841243640339,0.56677835536604,0.566584894165659,0.566301143370081,0.565975361008208,0.565656619634449,0.56539535911063,0.565243356951345,0.565243356951345, +0.700967902275514,0.700967902275514,0.700852948920482,0.700552476832534,0.700140153943815,0.699680999185252,0.69923081120188,0.69884873020993,0.698610836734557,0.698610836734557, +0.847254128259663,0.847254128259663,0.84710688170238,0.846639192492968,0.846052346727961,0.845425546819455,0.844805945688536,0.844244837291344,0.843838328794234,0.843838328794234, + +00:48:11, +0.203713820430602,0.203713820430602,0.20377103170169,0.203776422296276,0.20374213369939,0.2036841885951,0.20362015996208,0.203566551815526,0.203536219766304,0.203536219766304, +0.203713820430602,0.203713820430602,0.20377103170169,0.203776422296276,0.20374213369939,0.2036841885951,0.20362015996208,0.203566551815526,0.203536219766304,0.203536219766304, +0.228814046303885,0.228814046303885,0.228864950912084,0.228859681342249,0.228811753365227,0.228739046867265,0.228661234097798,0.228596908426035,0.228560692725378,0.228560692725378, +0.278750859996381,0.278750859996381,0.27878822443053,0.27876050335541,0.278684027492969,0.27858047641947,0.278473800547837,0.278386917704615,0.278338245347451,0.278338245347451, +0.352834231185074,0.352834231185074,0.352849187406555,0.352785034982687,0.352662575576837,0.352509437044296,0.352356126765176,0.352232373602387,0.352163054347417,0.352163054347417, +0.449678202287676,0.449678202287676,0.449660034435642,0.449542242980862,0.449352525793428,0.449127053007359,0.448905058955976,0.448725712246666,0.448624286110841,0.448624286110841, +0.566918345755766,0.566918345755766,0.566855467041713,0.566662046936146,0.566378359262946,0.566052650608215,0.565733981755217,0.565472780601442,0.565320812805347,0.565320812805347, +0.701023107449998,0.701023107449998,0.700908174399686,0.700607764383395,0.700195529508877,0.699736474162803,0.699286384027621,0.698904385729687,0.698666543220756,0.698666543220756, +0.847282991287154,0.847282991287154,0.847135773735858,0.846668177713223,0.846081450602325,0.845454778489104,0.844835303853371,0.844274309358859,0.843867882372888,0.843867882372888, + +00:48:12, +0.20382937379512,0.20382937379512,0.203886586047963,0.203891983456556,0.203857705851025,0.203799773728605,0.20373575766573,0.203682159411834,0.203651832800646,0.203651832800646, +0.20382937379512,0.20382937379512,0.203886586047963,0.203891983456556,0.203857705851025,0.203799773728605,0.20373575766573,0.203682159411834,0.203651832800646,0.203651832800646, +0.228928350518708,0.228928350518708,0.228979255084484,0.228973993448769,0.228926079184036,0.228853389269579,0.228775592754162,0.228711279969743,0.228675071384518,0.228675071384518, +0.278861917505992,0.278861917505992,0.278899280744735,0.278871570489055,0.278795114215216,0.278691587206327,0.278584935139242,0.278498071301817,0.278449409491135,0.278449409491135, +0.352938798565369,0.352938798565369,0.352953753821714,0.352889617946924,0.352767187867834,0.35261408519354,0.352460810428677,0.352337085755785,0.352267782400939,0.352267782400939, +0.449771731794667,0.449771731794667,0.449753566212985,0.449635801057015,0.449446127521798,0.449220707090295,0.448998764718475,0.448819459725099,0.448718057122884,0.448718057122884, +0.56699542292676,0.56699542292676,0.566932553775129,0.566739174749094,0.566455550170558,0.566129915188802,0.565811318822097,0.565550177009821,0.565398243560336,0.565398243560336, +0.701078292339816,0.701078292339816,0.700963379590213,0.700663031619378,0.700250884718478,0.699791928737416,0.699341936402983,0.698960020758882,0.698722229191823,0.698722229191823, +0.847311842920715,0.847311842920715,0.847164654363826,0.846697151487923,0.846110542978361,0.845483998602491,0.84486465040424,0.844303769760748,0.843897424249627,0.843897424249627, + +00:48:13, +0.203944921410396,0.203944921410396,0.204002134636174,0.204007538856279,0.203973272244539,0.203915353109499,0.203851349623296,0.20379776126767,0.203767440097724,0.203767440097724, +0.203944921410396,0.203944921410396,0.204002134636174,0.204007538856279,0.203973272244539,0.203915353109499,0.203851349623296,0.20379776126767,0.203767440097724,0.203767440097724, +0.229042645531375,0.229042645531375,0.229093550048722,0.229088296345109,0.229040395793782,0.228967722465931,0.228889942208361,0.228825642314584,0.228789440846676,0.228789440846676, +0.278972960084176,0.278972960084176,0.27901032212598,0.278982622687882,0.278906186000628,0.278802683054359,0.27869605479003,0.278609209957006,0.278560558692025,0.278560558692025, +0.353043345033318,0.353043345033318,0.353058299327164,0.352994179998153,0.352871779238148,0.352718712412034,0.352565473151112,0.352441776959651,0.352372489500133,0.352372489500133, +0.449865236440809,0.449865236440809,0.449847073133849,0.449729334269123,0.449539704369804,0.449314336271806,0.449092445558046,0.448913182262913,0.448811803184221,0.448811803184221, +0.567072475175027,0.567072475175027,0.567009615587986,0.566816277626206,0.566532716114645,0.566207154771724,0.565888630856873,0.565627548357572,0.565475649238133,0.565475649238133, +0.701133456964347,0.701133456964347,0.701018564511441,0.700718278559883,0.70030621959206,0.699847362928575,0.699397468347496,0.699015635317086,0.69877789466735,0.69877789466735, +0.847340683171737,0.847340683171737,0.847193523597686,0.84672611382851,0.846139623867563,0.845513207171173,0.844893985352754,0.844333218508676,0.843926954436154,0.843926954436154, + +00:48:14, +0.204060463260554,0.204060463260554,0.204117677450457,0.204123088479576,0.204088832864047,0.204030926721877,0.20396693581885,0.203913357367088,0.203883041641583,0.203883041641583, +0.204060463260554,0.204060463260554,0.204117677450457,0.204123088479576,0.204088832864047,0.204030926721877,0.20396693581885,0.203913357367088,0.203883041641583,0.203883041641583, +0.229156931331443,0.229156931331443,0.22920783579436,0.229202590020828,0.229154703184011,0.229082046445848,0.229004282449904,0.228939995450051,0.228903801101338,0.228903801101338, +0.279083987729816,0.279083987729816,0.279121348573147,0.279093659950768,0.279017242848073,0.278913763962417,0.278807159499042,0.278720333669014,0.278671692948947,0.278671692948947, +0.353147870598308,0.353147870598308,0.353162823932284,0.353098721145748,0.352976349697149,0.352823318709145,0.352670114941844,0.352546447223346,0.352477175654359,0.352477175654359, +0.449958716243992,0.449958716243992,0.449940555216116,0.449822842635065,0.449633256355329,0.449407940569788,0.449186101492596,0.449006879878025,0.448905524312775,0.448905524312775, +0.567149502522243,0.567149502522243,0.567086652501953,0.566893355589161,0.566609857116903,0.566284369378704,0.565965917881297,0.565704894666474,0.565553029860532,0.565553029860532, +0.701188601342945,0.701188601342945,0.701073729182724,0.700773505224287,0.700361534149034,0.699902776755739,0.699452979880664,0.699071229423842,0.698833539666906,0.698833539666906, +0.847369512051597,0.847369512051597,0.847222381448827,0.846755064746411,0.846168693281413,0.845542404206686,0.844923308710511,0.844362655614291,0.843956472944156,0.843956472944156, + +00:48:15, +0.204175999329744,0.204175999329744,0.20423321447497,0.2042386323106,0.204204387693689,0.204146494549856,0.20408251623649,0.20402894769417,0.203998637416292,0.203998637416292, +0.204175999329744,0.204175999329744,0.20423321447497,0.2042386323106,0.204204387693689,0.204146494549856,0.20408251623649,0.20402894769417,0.203998637416292,0.203998637416292, +0.229271207908489,0.229271207908489,0.229322112310982,0.229316874465503,0.229269001344286,0.229196361198874,0.229118613468317,0.229054339365654,0.229018152138007,0.229018152138007, +0.279195000441804,0.279195000441804,0.279232360085127,0.279204682276596,0.279128284756423,0.279024829929364,0.278918249265124,0.278831442436677,0.278782812260733,0.278782812260733, +0.353252375269716,0.353252375269716,0.353267327646444,0.353203241399073,0.353080899254195,0.352927904094228,0.352774735810227,0.352651096556223,0.352581840872968,0.352581840872968, +0.450052171222087,0.450052171222087,0.450034012477643,0.449916326172697,0.449726783496235,0.449501520002113,0.449279732540009,0.449100552588328,0.448999220526447,0.448999220526447, +0.567226504990059,0.567226504990059,0.567163664538668,0.566970408659606,0.566686973199002,0.566361559031441,0.566043179917094,0.565782215958275,0.565630385449296,0.565630385449296, +0.701243725494937,0.701243725494937,0.701128873623387,0.700828711631939,0.700416828408787,0.699958170238339,0.699508471021964,0.699126803098667,0.698889164210032,0.698889164210032, +0.847398329571658,0.847398329571658,0.847251227928619,0.846784004253037,0.846197751231374,0.845571589720554,0.844952620489092,0.84439208108923,0.843985979785303,0.843985979785303, + +00:48:16, +0.204291529602137,0.204291529602137,0.204348745693896,0.204354170333529,0.204319936717629,0.204262056577581,0.204198090860339,0.20414453223302,0.204114227405947,0.204114227405947, +0.204291529602137,0.204291529602137,0.204348745693896,0.204354170333529,0.204319936717629,0.204262056577581,0.204198090860339,0.20414453223302,0.204114227405947,0.204114227405947, +0.229385475252108,0.229385475252108,0.229436379588188,0.229431149668729,0.229383290264189,0.229310666714573,0.229232935253146,0.229168674050922,0.229132493946204,0.229132493946204, +0.279305998219035,0.279305998219035,0.279343356660814,0.279315689664254,0.279239311724555,0.279135880954062,0.279029324087129,0.278942536258837,0.27889391662622,0.27889391662622, +0.353356859056912,0.353356859056912,0.353371810479005,0.353307740767483,0.353185427918638,0.353032468576632,0.352879335765605,0.352755724967626,0.352686485165304,0.352686485165304, +0.450145601392938,0.450145601392938,0.450127444936267,0.450009784899856,0.449820285810365,0.449595074586632,0.449373338718149,0.449194200411697,0.449092891843115,0.449092891843115, +0.567303482600094,0.567303482600094,0.567240651719746,0.567047436859164,0.566764064382583,0.566438723751602,0.566120416985964,0.565859512254699,0.565707716026161,0.565707716026161, +0.701298829439625,0.701298829439625,0.701183997852732,0.700883897802162,0.700472102390681,0.700013543395782,0.699563941790849,0.699182356361052,0.698944768316244,0.698944768316244, +0.847427135743266,0.847427135743266,0.847280063048419,0.846812932359785,0.846226797728895,0.845600763724284,0.844981920700062,0.844421494945109,0.844015474971252,0.844015474971252, + +00:48:17, +0.204407054061934,0.204407054061934,0.204464271091443,0.204469702532568,0.204435479920056,0.20437761278922,0.204313659674544,0.204260110967767,0.204229811594669,0.204229811594669, +0.204407054061934,0.204407054061934,0.204464271091443,0.204469702532568,0.204435479920056,0.20437761278922,0.204313659674544,0.204260110967767,0.204229811594669,0.204229811594669, +0.229499733351913,0.229499733351913,0.229550637615595,0.229545415620119,0.229497569933319,0.229424962982525,0.229347247793951,0.229282999495404,0.229246826515467,0.229246826515467, +0.279416981060412,0.279416981060412,0.279454338299109,0.279426682112637,0.279350323751353,0.279246917035382,0.279140383963915,0.279053615134344,0.27900500604425,0.27900500604425, +0.353461321969254,0.353461321969254,0.353476272439319,0.353412219260324,0.35328993569982,0.353137012165693,0.352983914817314,0.352860332466887,0.3527911085407,0.3527911085407, +0.450239006774372,0.450239006774372,0.450220852609801,0.450103218834353,0.449913763315537,0.449688604341175,0.449466920044857,0.449287823365983,0.449186538280637,0.449186538280637, +0.567380435373942,0.567380435373942,0.56731761406677,0.567124440209425,0.566841130689261,0.566515863560829,0.566197629109574,0.565936783577438,0.565785021612835,0.565785021612835, +0.701353913196286,0.701353913196286,0.701239101890035,0.700939063754253,0.70052735611405,0.700068896247447,0.699619392206744,0.699237889230461,0.699000352005029,0.699000352005029, +0.847455930577751,0.847455930577751,0.84730888681957,0.846841849078034,0.846255832785408,0.845629926229366,0.845011209354971,0.84445089719353,0.844044958513641,0.844044958513641, + +00:48:18, +0.204522572693357,0.204522572693357,0.204579790651844,0.204585228891946,0.204551017285185,0.204493163168969,0.204429222663277,0.204375683882567,0.204345389966602,0.204345389966602, +0.204522572693357,0.204522572693357,0.204579790651844,0.204585228891946,0.204551017285185,0.204493163168969,0.204429222663277,0.204375683882567,0.204345389966602,0.204345389966602, +0.229613982197534,0.229613982197534,0.229664886382839,0.229659672309303,0.229611840341292,0.22953924999233,0.229461551080314,0.229397315688665,0.229361149835353,0.229361149835353, +0.279527948964839,0.279527948964839,0.279565304998917,0.279537659620643,0.279461320835705,0.279357938172201,0.279251428894344,0.279164679062049,0.27911608051367,0.27911608051367, +0.353565764016092,0.353565764016092,0.353580713536728,0.353516676886933,0.353394422607071,0.353241534870741,0.35308847297468,0.352964919063333,0.35289571100848,0.35289571100848, +0.450332387384193,0.450332387384193,0.450314235516039,0.45019662799398,0.450007216029549,0.44978210928355,0.449560476537952,0.449381421469016,0.449280159856848,0.449280159856848, +0.567457363333169,0.567457363333169,0.567394551601296,0.567201418731956,0.56691817214062,0.566592978480733,0.566274816309566,0.566014029948159,0.565862302230999,0.565862302230999, +0.701408976784169,0.701408976784169,0.701294185754545,0.700994209507485,0.700582589598205,0.700124228812689,0.699674822289049,0.699293401726334,0.699055915295852,0.699055915295852, +0.847484714086429,0.847484714086429,0.847337699253395,0.84687075441915,0.846284856412332,0.845659077247277,0.845040486465353,0.844480287846081,0.844074430424094,0.844074430424094, + +00:48:19, +0.204638085480655,0.204638085480655,0.204695304359358,0.204700749395915,0.204666548797254,0.204608707701044,0.204544779810735,0.204491250961601,0.204460962505916,0.204460962505916, +0.204638085480655,0.204638085480655,0.204695304359358,0.204700749395915,0.204666548797254,0.204608707701044,0.204544779810735,0.204491250961601,0.204460962505916,0.204460962505916, +0.229728221778618,0.229728221778618,0.229779125879575,0.229773919725929,0.229726101477744,0.229653527733604,0.229575845101831,0.229511622620286,0.229475463895436,0.229475463895436, +0.27963890193123,0.27963890193123,0.27967625675915,0.279648622187176,0.279572302976504,0.279468944363398,0.279362458877286,0.279275728040811,0.279227140033335,0.279227140033335, +0.353670185206767,0.353670185206767,0.353685133780566,0.353621113656638,0.353498888649717,0.353346036701095,0.35319301024702,0.353069484766278,0.35300029257796,0.35300029257796, +0.450425743240181,0.450425743240181,0.450407593672751,0.450290012396509,0.450100643970177,0.449875589431544,0.449654008215233,0.449474994738603,0.449373756589564,0.449373756589564, +0.56753426649931,0.56753426649931,0.567471464344853,0.567278372448293,0.566995188758217,0.566670068532901,0.566351978607554,0.566091251388498,0.565939557902303,0.565939557902303, +0.701464020222499,0.701464020222499,0.701349249465485,0.701049335081103,0.700637802862427,0.700179541110836,0.699730232057138,0.699348893868084,0.699111458208149,0.699111458208149, +0.8475134862806,0.8475134862806,0.847366500361206,0.846899648394481,0.846313868621068,0.845688216789476,0.845069752042727,0.844509666914332,0.844103890714219,0.844103890714219, + +00:48:20, +0.204753592408101,0.204753592408101,0.204810812198266,0.204816264028756,0.204782074440529,0.204724246369691,0.204660331101142,0.204606812189072,0.204576529196808,0.204576529196808, +0.204753592408101,0.204753592408101,0.204810812198266,0.204816264028756,0.204782074440529,0.204724246369691,0.204660331101142,0.204606812189072,0.204576529196808,0.204576529196808, +0.229842452084831,0.229842452084831,0.229893356095472,0.229888157859663,0.229840353332326,0.229767796195981,0.22969012984812,0.22962592027987,0.22958976868531,0.22958976868531, +0.279749839958501,0.279749839958501,0.279787193578722,0.279759569811146,0.27968327017265,0.27957993560786,0.279473473911613,0.279386762069495,0.279338184602103,0.279338184602103, +0.35377458555061,0.35377458555061,0.353789533180157,0.353725529578757,0.353603333837069,0.353450517666065,0.353297526643643,0.35317402958503,0.353104853258444,0.353104853258444, +0.450519074360099,0.450519074360099,0.450500927097688,0.450383372059687,0.450194047155177,0.449969044802921,0.449747515094475,0.449568543192532,0.449467328496577,0.449467328496577, +0.567611144893875,0.567611144893875,0.567548352318942,0.567355301379945,0.567072180563583,0.56674713373889,0.566429116025122,0.566168447920065,0.566016788648373,0.566016788648373, +0.701519043530475,0.701519043530475,0.701404293042053,0.701104440494329,0.700692995925976,0.70023483316119,0.699785621530359,0.699404365675098,0.699166980761332,0.699166980761332, +0.847542247171548,0.847542247171548,0.847395290154297,0.846928531015363,0.846342869423002,0.845717344867409,0.845099006098595,0.844539034409838,0.844133339395607,0.844133339395607, + +00:48:21, +0.204869093459992,0.204869093459992,0.204926314152875,0.20493177277477,0.204897594199297,0.204839779159177,0.204775876518745,0.204722367549211,0.204692090023496,0.204692090023496, +0.204869093459992,0.204869093459992,0.204926314152875,0.20493177277477,0.204897594199297,0.204839779159177,0.204775876518745,0.204722367549211,0.204692090023496,0.204692090023496, +0.229956673105857,0.229956673105857,0.230007577020219,0.230002386700188,0.229954595894708,0.229882055369112,0.229804405308813,0.229740208657034,0.229704064194584,0.229704064194584, +0.279860763045574,0.279860763045574,0.279898115456557,0.279870502491469,0.279794222423047,0.279690911904479,0.279584473996207,0.279497781146971,0.279449214218837,0.279449214218837, +0.353878965056944,0.353878965056944,0.353893911744816,0.353829924662599,0.353707758178434,0.353554977774954,0.353402022173848,0.353278553528886,0.353209393059231,0.353209393059231, +0.450612380761683,0.450612380761683,0.450594235808578,0.450476707001241,0.45028742560228,0.450062475415425,0.449840997193435,0.449662066848568,0.449560875595658,0.449560875595658, +0.567687998538346,0.567687998538346,0.567625215545034,0.567432205548393,0.56714914757822,0.566824174120227,0.56650622858383,0.566245619564443,0.566093994490804,0.566093994490804, +0.701574046727268,0.701574046727268,0.701459316503422,0.701159525766356,0.700748168808082,0.700290104983029,0.699840990728034,0.699459817166737,0.699222482974786,0.699222482974786, +0.847570996770543,0.847570996770543,0.847424068643948,0.846957402293113,0.846371858829506,0.845746461492503,0.845128248644444,0.844568390344139,0.844162776479834,0.844162776479834, + +00:48:22, +0.204984588620651,0.204984588620651,0.205041810207519,0.205047275618286,0.205013108057872,0.204955306053796,0.204891416047815,0.204837917026273,0.204807644970227,0.204807644970227, +0.204984588620651,0.204984588620651,0.205041810207519,0.205047275618286,0.205013108057872,0.204955306053796,0.204891416047815,0.204837917026273,0.204807644970227,0.204807644970227, +0.230070884831396,0.230070884831396,0.230121788643524,0.230116606237206,0.230068829154579,0.229996305242669,0.229918671473563,0.229854487741415,0.229818350412887,0.229818350412887, +0.279971671191378,0.279971671191378,0.28000902239158,0.279981420227064,0.279905159726604,0.279801873252152,0.279695459129949,0.279608785272112,0.279560228882408,0.279560228882408, +0.353983323735081,0.353983323735081,0.353998269483848,0.353934298917464,0.353812161683106,0.353659417037053,0.353506496846924,0.353383056607134,0.353313911989608,0.353313911989608, +0.450705662462653,0.450705662462653,0.450687519823128,0.450570017238877,0.450380779329199,0.450155881286777,0.449934454529845,0.449755565724453,0.449654397904556,0.449654397904556, +0.567764827454176,0.567764827454176,0.567702054044576,0.56750908497509,0.5672260898236,0.566901189698414,0.566583316305205,0.566322766343185,0.566171175451164,0.566171175451164, +0.701629029832028,0.701629029832028,0.701514319868738,0.701214590916353,0.700803321527952,0.700345356595603,0.699896339669459,0.699515248362335,0.699277964867869,0.699277964867869, +0.847599735088838,0.847599735088838,0.847452835841423,0.846986262239034,0.846400836851935,0.845775566676173,0.845157479691745,0.844597734728757,0.844192201978461,0.844192201978461, + +00:48:23, +0.205100077874426,0.205100077874426,0.205157300346553,0.205162772543657,0.205128616000593,0.205070827037865,0.205006949672649,0.204953460604536,0.204923194021269,0.204923194021269, +0.205100077874426,0.205100077874426,0.205157300346553,0.205162772543657,0.205128616000593,0.205070827037865,0.205006949672649,0.204953460604536,0.204923194021269,0.204923194021269, +0.230185087251168,0.230185087251168,0.230235990955111,0.230230816460436,0.230183053101643,0.230110545806339,0.230032928332037,0.229968757522668,0.229932627329864,0.229932627329864, +0.280082564394844,0.280082564394844,0.280119914382722,0.280092323016856,0.280016082082237,0.27991281964978,0.279806429311732,0.279719774443799,0.27967122859169,0.27967122859169, +0.354087661594326,0.354087661594326,0.35410260640655,0.354038652352643,0.353916544360372,0.353763835461645,0.353610950672151,0.353487538829054,0.353418410058854,0.353418410058854, +0.450798919480703,0.450798919480703,0.450780779159022,0.45066330279028,0.450474108353623,0.450249262434678,0.450027887121417,0.449849039837911,0.449747895441,0.449747895441, +0.567841631662791,0.567841631662791,0.567778867838984,0.567585939681463,0.567303007321171,0.566978180494926,0.566660379210751,0.566399888277816,0.566248331550993,0.566248331550993, +0.701683992863875,0.701683992863875,0.701569303157122,0.701269635963463,0.700858454104767,0.700400588018137,0.699951668373905,0.699570659281203,0.699333426459916,0.699333426459916, +0.847628462137672,0.847628462137672,0.84748159175797,0.847015110864415,0.846429803501628,0.845804660429815,0.845186699251955,0.844627067575202,0.844221615903033,0.844221615903033, + +00:48:24, +0.205215561205689,0.205215561205689,0.205272784554359,0.205278263535259,0.205244118011822,0.205186342095728,0.205122477377569,0.205068998268306,0.205038737160919,0.205038737160919, +0.205215561205689,0.205215561205689,0.205272784554359,0.205278263535259,0.205244118011822,0.205186342095728,0.205122477377569,0.205068998268306,0.205038737160919,0.205038737160919, +0.230299280354908,0.230299280354908,0.23035018394472,0.230345017359613,0.230297267725624,0.230224777049826,0.230147175873923,0.230083017990464,0.23004689493518,0.23004689493518, +0.280193442654912,0.280193442654912,0.280230791428923,0.280203210859777,0.280126989488865,0.280023751096272,0.27991738454045,0.279830748660918,0.279782213345564,0.279782213345564, +0.354191978643973,0.354191978643973,0.35420692252221,0.354142984977417,0.35402090621951,0.353868233058005,0.353715383658803,0.353592000203916,0.353522887276238,0.353522887276238, +0.450892151833508,0.450892151833508,0.450874013833923,0.45075656367311,0.450567412693222,0.450342618876806,0.450121294985842,0.449942489206642,0.449841368222696,0.449841368222696, +0.567918411185589,0.567918411185589,0.567855656949647,0.567662769688908,0.56737990009235,0.567055146531206,0.56673741732194,0.566476985389836,0.566325462811804,0.566325462811804, +0.701738935841905,0.701738935841905,0.701624266387669,0.701324660926805,0.70091356655768,0.700455799269831,0.700006976860616,0.699626049942624,0.699388867770234,0.699388867770234, +0.847657177928268,0.847657177928268,0.847510336404823,0.847043948180527,0.846458758789911,0.845833742764813,0.845215907336514,0.844656388894965,0.844251018265078,0.844251018265078, + +00:48:25, +0.205331038598836,0.205331038598836,0.205388262815344,0.205393748577496,0.205359614075947,0.205301851211752,0.205237999146922,0.205184530001912,0.205154274373494,0.205154274373494, +0.205331038598836,0.205331038598836,0.205388262815344,0.205393748577496,0.205359614075947,0.205301851211752,0.205237999146922,0.205184530001912,0.205154274373494,0.205154274373494, +0.23041346413237,0.23041346413237,0.230464367602112,0.230459208924493,0.230411473016264,0.230338998962853,0.230261414088926,0.230197269134493,0.230161153218515,0.230161153218515, +0.280304305970524,0.280304305970524,0.280341653529123,0.280314083754762,0.280237881945415,0.280134667590541,0.280028324815004,0.279941707922359,0.279893183142915,0.279893183142915, +0.354296274893308,0.354296274893308,0.354311217840105,0.354247296801059,0.354125247269787,0.353972609835396,0.35381979581614,0.353696440740981,0.353627343651021,0.353627343651021, +0.45098535953872,0.45098535953872,0.450967223865476,0.450849799905011,0.450660692365641,0.45043595063082,0.450214678140789,0.450035913848326,0.449934816267331,0.449934816267331, +0.567995166043939,0.567995166043939,0.567932421397928,0.567739575018796,0.567456768158529,0.567132087828673,0.56681443066022,0.566554057700713,0.566402569255082,0.566402569255082, +0.701793858785189,0.701793858785189,0.70167920957945,0.701379665825469,0.700968658905822,0.700510990369858,0.700062265148812,0.699681420365856,0.699444288818105,0.699444288818105, +0.847685882471834,0.847685882471834,0.8475390697932,0.847072774198627,0.846487702728092,0.845862813692534,0.845245103956846,0.844685698699523,0.844280409076109,0.844280409076109, + +00:48:26, +0.205446510038288,0.205446510038288,0.205503735113937,0.205509227654793,0.205475104177381,0.20541735437033,0.205353514965078,0.205300055789707,0.20526980564334,0.20526980564334, +0.205446510038288,0.205446510038288,0.205503735113937,0.205509227654793,0.205475104177381,0.20541735437033,0.205353514965078,0.205300055789707,0.20526980564334,0.20526980564334, +0.230527638573326,0.230527638573326,0.230578541917063,0.230573391144847,0.230525668963319,0.230453211535162,0.230375642966767,0.230311510944462,0.230275402169568,0.230275402169568, +0.28041515434063,0.28041515434063,0.280452500682271,0.280424941700753,0.280348759450817,0.280245569131504,0.280139250134299,0.28005265222702,0.280004137982634,0.280004137982634, +0.354400550351607,0.354400550351607,0.354415492369504,0.354351587832833,0.354229567520463,0.354076965803076,0.353924187153417,0.353800860449502,0.353731779192456,0.353731779192456, +0.451078542613971,0.451078542613971,0.451060409271299,0.450943011503601,0.450753947388508,0.450529257714355,0.450308036603905,0.450129313780619,0.450028239592566,0.450028239592566, +0.568071896259185,0.568071896259185,0.56800916120516,0.56781635569247,0.567533611541069,0.567209004408718,0.566891419247008,0.566631105231892,0.566479650902282,0.566479650902282, +0.701848761712773,0.701848761712773,0.701734132751508,0.701434650678524,0.701023731168296,0.700566161337367,0.700117533257686,0.69973677057013,0.699499689622785,0.699499689622785, +0.847714575779563,0.847714575779563,0.847567791934305,0.847101588929958,0.846516635327466,0.845891873224328,0.84527428912436,0.844714997000337,0.844309788347625,0.844309788347625, + +00:48:27, +0.205561975508491,0.205561975508491,0.205619201434595,0.205624700751602,0.205590588300561,0.205532851555877,0.205469024816433,0.20541557561607,0.205385330954825,0.205385330954825, +0.205561975508491,0.205561975508491,0.205619201434595,0.205624700751602,0.205590588300561,0.205532851555877,0.205469024816433,0.20541557561607,0.205385330954825,0.205385330954825, +0.230641803667564,0.230641803667564,0.230692706879368,0.230687564010464,0.230639855556566,0.23056741475651,0.230489862497187,0.230425743410097,0.230389641778057,0.230389641778057, +0.280525987764182,0.280525987764182,0.280563332887319,0.280535784696696,0.280459622004006,0.280356455718086,0.280250160497247,0.280163581573801,0.280115077863618,0.280115077863618, +0.354504805028137,0.354504805028137,0.354519746119669,0.354455858081993,0.354333866980787,0.35418130097029,0.354028557679879,0.353905259338721,0.353836193909783,0.353836193909783, +0.451171701076871,0.451171701076871,0.451153570068992,0.451036198486478,0.450847177779427,0.450622540145025,0.450401370392817,0.450222689021159,0.450121638216046,0.450121638216046, +0.568148601852642,0.568148601852642,0.56808587639265,0.567893111731244,0.567610430261308,0.567285896292703,0.566968383103696,0.566708128004787,0.566556707774835,0.566556707774835, +0.701903644643675,0.701903644643675,0.701789035922863,0.701489615505009,0.70107878336418,0.700621312191481,0.700172781206405,0.699792100574655,0.699555070203503,0.699555070203503, +0.847743257862633,0.847743257862633,0.847596502839324,0.847130392385746,0.84654555659931,0.845920921371531,0.84530346285045,0.844744283808852,0.844339156091108,0.844339156091108, + +00:48:28, +0.205677434993917,0.205677434993917,0.205734661761796,0.205740167852398,0.205706066429947,0.205648342752836,0.205584528685409,0.205531089465404,0.205500850292344,0.205500850292344, +0.205677434993917,0.205677434993917,0.205734661761796,0.205740167852398,0.205706066429947,0.205648342752836,0.205584528685409,0.205531089465404,0.205500850292344,0.205500850292344, +0.230755959404892,0.230755959404892,0.230806862478839,0.23080172751115,0.230754032785798,0.230681608616673,0.230604072669942,0.230539966521139,0.230503872033716,0.230503872033716, +0.280636806240141,0.280636806240141,0.280674150143225,0.280646612741543,0.280570469603925,0.280467327349214,0.280361055902765,0.280274495961609,0.280226002784768,0.280226002784768, +0.354609038932156,0.354609038932156,0.354623979099848,0.354560107557784,0.354438145660001,0.354285615346277,0.354132907404759,0.354009637417873,0.353940587812237,0.353940587812237, +0.451264834945008,0.451264834945008,0.451246706276134,0.451129360871221,0.45094038355598,0.450715797940425,0.450494679525131,0.45031603958756,0.45021501215539,0.45021501215539, +0.568225282845596,0.568225282845596,0.568162566981676,0.567969843156405,0.567687224340552,0.567362763501962,0.567045322251647,0.566785126040784,0.566633739894141,0.566633739894141, +0.70195850759689,0.70195850759689,0.701843919112508,0.70154456032394,0.701133815512526,0.700676442951295,0.700228009014113,0.699847410398609,0.699610430579466,0.699610430579466, +0.847771928732205,0.847771928732205,0.84762520251943,0.847159184577202,0.846574466554888,0.845949958145465,0.845332625146495,0.844773559136499,0.844368512318023,0.844368512318023, + +00:48:29, +0.205792888479059,0.205792888479059,0.205850116080046,0.205855628941683,0.205821538550027,0.205763827945672,0.205700026556448,0.205646597322138,0.205616363640313,0.205616363640313, +0.205792888479059,0.205792888479059,0.205850116080046,0.205855628941683,0.205821538550027,0.205763827945672,0.205700026556448,0.205646597322138,0.205616363640313,0.205616363640313, +0.230870105775133,0.230870105775133,0.230921008705305,0.230915881636731,0.230868200640827,0.230795793105443,0.230718273474809,0.23065418026735,0.230618092926297,0.230618092926297, +0.280747609767469,0.280747609767469,0.280784952448953,0.280757425834251,0.280681302249519,0.280578184023823,0.280471936349774,0.280385395389357,0.280336912744991,0.280336912744991, +0.354713252072914,0.354713252072914,0.354728191319285,0.354664336269442,0.354542403567336,0.354389908940264,0.354237236337286,0.354113994696181,0.354044960909043,0.354044960909043, +0.45135794423595,0.45135794423595,0.451339817910281,0.451222498675384,0.45103356473573,0.450809031118126,0.450587964018428,0.450409365497417,0.4503083614282,0.4503083614282, +0.568301939259308,0.568301939259308,0.568239232993491,0.568046549989214,0.567763993800081,0.567439606057803,0.567122236712196,0.566862099361244,0.566710747281575,0.566710747281575, +0.702013350591386,0.702013350591386,0.701898782339411,0.701599485154308,0.701188827632363,0.700731553635883,0.700283216699924,0.699902700061149,0.699665770769851,0.699665770769851, +0.847800588399426,0.847800588399426,0.847653890985781,0.847187965515521,0.846603365205447,0.845978983557434,0.845361776023856,0.844802822994693,0.844397857039822,0.844397857039822, + +00:48:30, +0.205908335948437,0.205908335948437,0.205965564373873,0.20597108400398,0.20593700464531,0.205879307118877,0.205815518414023,0.205762099170723,0.205731870983177,0.205731870983177, +0.205908335948437,0.205908335948437,0.205965564373873,0.20597108400398,0.20593700464531,0.205879307118877,0.205815518414023,0.205762099170723,0.205731870983177,0.205731870983177, +0.230984242768129,0.230984242768129,0.231035145548613,0.231030026377048,0.230982359111481,0.230909968212633,0.230832464901578,0.230768384638507,0.23073230444557,0.23073230444557, +0.280858398345137,0.280858398345137,0.280895739803471,0.280868223973782,0.280792119939741,0.280689025740853,0.280582801837202,0.280496279855963,0.2804478077432,0.2804478077432, +0.35481744445965,0.35481744445965,0.354832382787211,0.354768544226194,0.354646640712015,0.354494181761471,0.354341544486675,0.354218331182864,0.354149313209415,0.354149313209415, +0.451451028967243,0.451451028967243,0.451432904988968,0.451315611916501,0.451126721336216,0.45090223969568,0.450681223890272,0.450502666768302,0.450401686052053,0.450401686052053, +0.56837857111501,0.56837857111501,0.568315874449317,0.568123232250902,0.567840738661149,0.567516423981506,0.567199126506652,0.566939047987499,0.566787729958482,0.566787729958482, +0.702068173646108,0.702068173646108,0.701953625622514,0.701654390015077,0.701243819742691,0.700786644264289,0.700338404282931,0.699957969581404,0.699721090793813,0.699721090793813, +0.847829236875429,0.847829236875429,0.847682568249518,0.847216735211885,0.84663225256222,0.846007997618728,0.845390915493882,0.844832075394831,0.84442719026794,0.84442719026794, + +00:48:31, +0.206023777386595,0.206023777386595,0.206081006627831,0.206086533023839,0.206052464700332,0.205994780256965,0.205931004242625,0.205877594995637,0.205847372305403,0.205847372305403, +0.206023777386595,0.206023777386595,0.206081006627831,0.206086533023839,0.206052464700332,0.205994780256965,0.205931004242625,0.205877594995637,0.205847372305403,0.205847372305403, +0.231098370373738,0.231098370373738,0.231149272998628,0.231144161721959,0.231096508187606,0.23102413392807,0.230946646940062,0.230882579624406,0.230846506581322,0.230846506581322, +0.280969171972119,0.280969171972119,0.281006512205753,0.280979007159102,0.280902922673547,0.280799852499248,0.280693652363981,0.280607149360349,0.280558687778312,0.280558687778312, +0.354921616101594,0.354921616101594,0.35493655351285,0.354872731437257,0.354750857103251,0.354598433819109,0.354445831862135,0.354322646887127,0.35425364472256,0.35425364472256, +0.45154408915641,0.45154408915641,0.45152596752971,0.451408700612086,0.451219853374958,0.450995423690614,0.450774459158205,0.450595943417766,0.450494986044507,0.450494986044507, +0.568455178433907,0.568455178433907,0.568392491370351,0.568199889962675,0.56791745894498,0.567593217294323,0.567275991656294,0.567015971940853,0.566864687946182,0.566864687946182, +0.702122976779972,0.702122976779972,0.702008448980736,0.701709274925186,0.701298791862487,0.700841714855535,0.7003935717822,0.700013218978477,0.699776390670479,0.699776390670479, +0.847857874171331,0.847857874171331,0.847711234321768,0.847245493677459,0.846661128636425,0.846037000340622,0.845420043567904,0.844861316348297,0.844456512013796,0.844456512013796, + +00:48:32, +0.206139212778102,0.206139212778102,0.206196442826496,0.206201975985833,0.206167918699653,0.206110247344475,0.206046484026775,0.205993084781382,0.205962867591483,0.205962867591483, +0.206139212778102,0.206139212778102,0.206196442826496,0.206201975985833,0.206167918699653,0.206110247344475,0.206046484026775,0.205993084781382,0.205962867591483,0.205962867591483, +0.231212488581838,0.231212488581838,0.231263391045231,0.231258287661343,0.231210647859065,0.231138290241599,0.231060819580087,0.230996765214859,0.230960699323358,0.230960699323358, +0.281079930647395,0.281079930647395,0.281117269654777,0.281089775389186,0.281013710449899,0.280910664297957,0.280804487929049,0.280718003901443,0.28066955284925,0.28066955284925, +0.355025767007968,0.355025767007968,0.355040703505417,0.354976897911842,0.354855052750249,0.354702665122379,0.354550098472866,0.354426941818168,0.354357955457676,0.354357955457676, +0.451637124820956,0.451637124820956,0.45161900555,0.451501764779632,0.451312960869454,0.451088583120438,0.450867669839745,0.450689195463339,0.450588261423098,0.450588261423098, +0.568531761237176,0.568531761237176,0.568469083777762,0.568276523145709,0.567994154672773,0.567669986017479,0.567352832182377,0.567092871242583,0.566941621265965,0.566941621265965, +0.702177760011872,0.702177760011872,0.702063252432968,0.701764139903551,0.701353744010701,0.700896765428616,0.700448719216769,0.700068448271449,0.699831670418952,0.699831670418952, +0.847886500298233,0.847886500298233,0.847739889213644,0.847274240923394,0.846689993439262,0.846065991734374,0.845449160257238,0.84489054586646,0.844485822288796,0.844485822288796, + +00:48:33, +0.206254642107549,0.206254642107549,0.206311872954472,0.206317412874562,0.206283366627855,0.206225708365972,0.206161957751016,0.206108568512483,0.206078356825933,0.206078356825933, +0.206254642107549,0.206254642107549,0.206311872954472,0.206317412874562,0.206283366627855,0.206225708365972,0.206161957751016,0.206108568512483,0.206078356825933,0.206078356825933, +0.231326597382321,0.231326597382321,0.231377499678322,0.231372404185092,0.23132477811574,0.231252437143085,0.231174982811498,0.231110941399698,0.2310748826615,0.2310748826615, +0.28119067436995,0.28119067436995,0.281228012149528,0.281200528663009,0.281124483267766,0.281021461135936,0.280915308531348,0.280828843478179,0.280780402954943,0.280780402954943, +0.355129897187986,0.355129897187986,0.355144832774116,0.355081043659147,0.354959227662205,0.354806875680474,0.354654344328058,0.354531215985177,0.354462245423951,0.354462245423951, +0.451730135978363,0.451730135978363,0.451712019067308,0.451594804436607,0.451406043837181,0.451181718002639,0.450960855952391,0.450782422922531,0.45068151220534,0.45068151220534, +0.568608319545967,0.568608319545967,0.568545651692692,0.568353131821155,0.568070825865698,0.567746730172171,0.567429648106125,0.567169745913938,0.567018529939095,0.567018529939095, +0.702232523360675,0.702232523360675,0.702118035998076,0.701818984969059,0.701408676206261,0.700951796002502,0.700503846605654,0.700123657479372,0.699886930058307,0.699886930058307, +0.847915115267221,0.847915115267221,0.847768532936241,0.847302976960824,0.846718846981919,0.84609497181123,0.845478265573186,0.844919763960672,0.844515121104327,0.844515121104327, + +00:48:34, +0.206370065359555,0.206370065359555,0.206427296996384,0.206432843674646,0.206398808469548,0.206341163306044,0.206277425399914,0.206224046173491,0.206193839993295,0.206193839993295, +0.206370065359555,0.206370065359555,0.206427296996384,0.206432843674646,0.206398808469548,0.206341163306044,0.206277425399914,0.206224046173491,0.206193839993295,0.206193839993295, +0.231440696765098,0.231440696765098,0.231491598887816,0.231486511283119,0.231438898947529,0.231366574622408,0.231289136624159,0.23122510816877,0.231189056585588,0.231189056585588, +0.281301403138773,0.281301403138773,0.281338739688994,0.281311266979556,0.281235241126118,0.281132243012144,0.281026114169828,0.280939668089496,0.280891238094324,0.280891238094324, +0.35523400665085,0.35523400665085,0.355248941328144,0.355185168688363,0.355063381848305,0.354911065502576,0.354758569436891,0.354635469397332,0.354566514630565,0.354566514630565, +0.451823122646091,0.451823122646091,0.451805008099086,0.451687819600463,0.451499102295594,0.451274828354682,0.451054017513622,0.450875625812828,0.450774738408728,0.450774738408728, +0.568684853381404,0.568684853381404,0.568622195136254,0.568429716010134,0.568147472544897,0.56782344977957,0.567506439448737,0.567246595976141,0.567095413986808,0.567095413986808, +0.702287266845224,0.702287266845224,0.702172799694904,0.701873810140575,0.701463588468065,0.701006806596137,0.700558953967844,0.700178846621273,0.699942169607598,0.699942169607598, +0.847943719089368,0.847943719089368,0.847797165500643,0.847331701800869,0.846747689275568,0.846123940582416,0.845507359527033,0.84494897064227,0.844544408471764,0.844544408471764, + +00:48:35, +0.20648548251876,0.20648548251876,0.206542714936883,0.206548268370733,0.206514244209365,0.206456612149304,0.206392886958063,0.206339517748981,0.206309317078134,0.206309317078134, +0.20648548251876,0.20648548251876,0.206542714936883,0.206548268370733,0.206514244209365,0.206456612149304,0.206392886958063,0.206339517748981,0.206309317078134,0.206309317078134, +0.2315547867201,0.2315547867201,0.23160568866365,0.231600608945352,0.231553010344346,0.231480702669466,0.231403281007949,0.231339265511941,0.23130322108548,0.23130322108548, +0.281412116952861,0.281412116952861,0.281449452272171,0.281421990337814,0.281345984023936,0.281243009925548,0.28113690484344,0.281050477734337,0.281002058266331,0.281002058266331, +0.355338095405754,0.355338095405754,0.355353029176688,0.355289273008673,0.355167515317727,0.355015234597861,0.354862773808539,0.354739702063807,0.354670763086687,0.354670763086687, +0.45191608484158,0.45191608484158,0.451897972662762,0.451780810288627,0.451592136262128,0.451367914194013,0.451147154540893,0.450968804151697,0.450867940050733,0.450867940050733, +0.56876136276458,0.56876136276458,0.568698714129537,0.568506275733744,0.568224094731487,0.567900144860817,0.567583206231384,0.567323421450387,0.567172273430313,0.567172273430313, +0.702341990484335,0.702341990484335,0.702227543542266,0.701928615436936,0.701518480814989,0.70106179722844,0.700614041322303,0.700234015716154,0.69999738908585,0.69999738908585, +0.847972311775729,0.847972311775729,0.847825786917914,0.847360415454635,0.846776520331365,0.846152898059147,0.84553644213005,0.844978165922577,0.844573684402464,0.844573684402464, + +00:48:36, +0.206600893569831,0.206600893569831,0.206658126760645,0.206663686947494,0.206629673831961,0.206572054880389,0.206508342410078,0.206454983223554,0.20642478806504,0.20642478806504, +0.206600893569831,0.206600893569831,0.206658126760645,0.206663686947494,0.206629673831961,0.206572054880389,0.206508342410078,0.206454983223554,0.20642478806504,0.20642478806504, +0.23166886723727,0.23166886723727,0.231719768995772,0.231714697161736,0.231667112296126,0.231594821274175,0.231517415952766,0.231453413419094,0.23141737615105,0.23141737615105, +0.281522815811212,0.281522815811212,0.281560149898056,0.281532698736776,0.2814567119602,0.281353761875118,0.281247680551145,0.281161272411653,0.281112863469909,0.281112863469909, +0.355442163461884,0.355442163461884,0.355457096328927,0.355393356629247,0.355271628079639,0.355119382975493,0.354966957452163,0.354843913993761,0.35477499080148,0.35477499080148, +0.452009022582248,0.452009022582248,0.451990912775746,0.451873776518506,0.451685145754195,0.451460975538055,0.451240267051639,0.451061957956584,0.450961117148808,0.450961117148808, +0.568837847716564,0.568837847716564,0.568775208693599,0.568582811013051,0.568300692446555,0.567976815437029,0.567659948475209,0.567400222357842,0.567249108290792,0.567249108290792, +0.702396694296801,0.702396694296801,0.702282267558955,0.701983400876957,0.701573353265884,0.701116767918306,0.700669108687971,0.700289164782994,0.700052588512063,0.700052588512063, +0.848000893337347,0.848000893337347,0.847854397199107,0.847389117933212,0.846805340160451,0.84618184425262,0.845565513393492,0.845007349812897,0.844602948907769,0.844602948907769, + +00:48:37, +0.206716298497456,0.206716298497456,0.206773532452368,0.206779099389624,0.206745097322019,0.20668749148396,0.2066237917406,0.206570442581832,0.206540252938628,0.206540252938628, +0.206716298497456,0.206716298497456,0.206773532452368,0.206779099389624,0.206745097322019,0.20668749148396,0.2066237917406,0.206570442581832,0.206540252938628,0.206540252938628, +0.231782938306573,0.231782938306573,0.231833839874152,0.231828775922237,0.231781204792819,0.231708930426467,0.231631541448525,0.231567551880129,0.231531521772192,0.231531521772192, +0.281633499712833,0.281633499712833,0.281670832565656,0.281643392175441,0.281567424933899,0.28146449885983,0.281358441291906,0.281272052120396,0.281223653704008,0.281223653704008, +0.355546210828416,0.355546210828416,0.355561142794029,0.355497419559251,0.3553757201432,0.355223510644629,0.35507112037692,0.354948105196349,0.354879197784096,0.354879197784096, +0.452101935885494,0.452101935885494,0.452083828455423,0.451966718307486,0.451778130789189,0.451554012404209,0.451333355063275,0.451155087244912,0.451054269720382,0.451054269720382, +0.568914308258397,0.568914308258397,0.568851678849472,0.568659321869096,0.568377265711164,0.568053461529293,0.567736666201328,0.567476998719647,0.567325918589398,0.567325918589398, +0.702451378301389,0.702451378301389,0.702336971763737,0.702038166479425,0.701628205839574,0.701171718684603,0.700724156083759,0.700344293840743,0.700107767905212,0.700107767905212, +0.848029463785247,0.848029463785247,0.847882996355258,0.847417809247673,0.846834148773951,0.846210779174019,0.845594573328599,0.845036522324523,0.844632201999006,0.844632201999006, + +00:48:38, +0.206831697286351,0.206831697286351,0.206888931996776,0.206894505681843,0.206860514664244,0.206802921944704,0.206739234934294,0.206685895808463,0.206655711683536,0.206655711683536, +0.206831697286351,0.206831697286351,0.206888931996776,0.206894505681843,0.206860514664244,0.206802921944704,0.206739234934294,0.206685895808463,0.206655711683536,0.206655711683536, +0.231896999917988,0.231896999917988,0.231947901288776,0.231942845216834,0.231895287824393,0.231823030116293,0.231745657485158,0.231681680884965,0.231645657938814,0.231645657938814, +0.281744168656735,0.281744168656735,0.281781500273978,0.281754070652812,0.281678122944027,0.281575220878665,0.281469187064692,0.281382816859528,0.281334428967581,0.281334428967581, +0.355650237514517,0.355650237514517,0.355665168581154,0.355601461807839,0.355479791517562,0.355327617614417,0.355175262591953,0.355052275680715,0.354983384043679,0.354983384043679, +0.452194824768692,0.452194824768692,0.452176719719159,0.452059635672934,0.45187109138448,0.451647024809859,0.451426418593194,0.451248192034085,0.451147397782864,0.451147397782864, +0.568990744411093,0.568990744411093,0.568928124618163,0.568735808322893,0.568453814546347,0.56813008315867,0.56781335943083,0.567553750556914,0.567402704347258,0.567402704347258, +0.70250604251684,0.70250604251684,0.702391656175353,0.702092912263103,0.701683038554858,0.701226649546175,0.700779183528557,0.700399402908328,0.700162927284249,0.700162927284249, +0.848058023130442,0.848058023130442,0.847911584397388,0.84744648940908,0.846862946182978,0.846239702834512,0.845623621946595,0.84506568346873,0.844661443687488,0.844661443687488, + +00:48:39, +0.206947089921254,0.206947089921254,0.207004325378617,0.207009905808895,0.206975925843365,0.20691834624733,0.206854671975851,0.206801342888121,0.206771164284428,0.206771164284428, +0.206947089921254,0.206947089921254,0.207004325378617,0.207009905808895,0.206975925843365,0.20691834624733,0.206854671975851,0.206801342888121,0.206771164284428,0.206771164284428, +0.232011052061514,0.232011052061514,0.232061953229647,0.232056905035525,0.232009361380832,0.23193712033362,0.231859764052616,0.231795800423535,0.231759784640844,0.231759784640844, +0.281854822641932,0.281854822641932,0.28189215302204,0.281864734167897,0.281788805989581,0.281685927930609,0.281579917868477,0.281493566628013,0.281445189259589,0.281445189259589, +0.355754243529346,0.355754243529346,0.355769173699453,0.355705483384155,0.355583842211864,0.355431703893994,0.355279384106399,0.355156425455993,0.355087549589364,0.355087549589364, +0.452287689249199,0.452287689249199,0.452269586584301,0.452152528632191,0.451964027557419,0.451740012772364,0.451519457658767,0.451341272341486,0.451240501353643,0.451240501353643, +0.569067156195637,0.569067156195637,0.569004546020649,0.568812270395429,0.56853033897311,0.568206680346195,0.567890028184777,0.567630477890729,0.567479465585472,0.567479465585472, +0.702560686961871,0.702560686961871,0.702446320812519,0.70214763824673,0.701737851430511,0.701281560521841,0.700834191041227,0.70045449200465,0.700218066668096,0.700218066668096, +0.848086571383927,0.848086571383927,0.847940161336505,0.847475158428476,0.846891732398627,0.84626861524525,0.84565265925869,0.845094833256778,0.844690673984511,0.844690673984511, + +00:48:40, +0.207062476386927,0.207062476386927,0.207119712582663,0.207125299755547,0.207091330844138,0.207033764376573,0.206970102849983,0.206916783805503,0.206886610725991,0.206886610725991, +0.207062476386927,0.207062476386927,0.207119712582663,0.207125299755547,0.207091330844138,0.207033764376573,0.206970102849983,0.206916783805503,0.206886610725991,0.206886610725991, +0.232125094727165,0.232125094727165,0.232175995686785,0.232170955368326,0.232123425452139,0.232051201068434,0.231973861140863,0.231909910485794,0.231873901868226,0.231873901868226, +0.281965461667446,0.281965461667446,0.282002790808859,0.281975382719711,0.281899474069566,0.281796620014654,0.281690633702242,0.281604301424821,0.281555934578996,0.281555934578996, +0.355858228882051,0.355858228882051,0.355873158158069,0.355809484297338,0.355687872235241,0.35553576949249,0.355383484929386,0.355260554531311,0.355191694430276,0.355191694430276, +0.452380529344349,0.452380529344349,0.452362429068171,0.452245397202582,0.452056939325334,0.451832976309063,0.451612472277346,0.451434328184475,0.451333580450086,0.451333580450086, +0.56914354363299,0.56914354363299,0.569080943077881,0.568888708107662,0.568606839012434,0.568283253112872,0.567966672484203,0.56770718074215,0.567556202325112,0.567556202325112, +0.702615311655174,0.702615311655174,0.702500965693926,0.702202344449018,0.701792644485284,0.701336451630393,0.700889178640607,0.700509561148586,0.700273186075655,0.700273186075655, +0.848115108556684,0.848115108556684,0.8479687271836,0.847503816316892,0.846920507431979,0.846297516417372,0.845681685276078,0.845123971699914,0.844719892901355,0.844719892901355, + +00:48:41, +0.207177856668156,0.207177856668156,0.207235093593709,0.207240687506591,0.207206729651339,0.207149176317191,0.207085527541428,0.207032218545328,0.207002050992937,0.207002050992937, +0.207177856668156,0.207177856668156,0.207235093593709,0.207240687506591,0.207206729651339,0.207149176317191,0.207085527541428,0.207032218545328,0.207002050992937,0.207002050992937, +0.232239127904974,0.232239127904974,0.232290028650227,0.232284996205269,0.232237480028333,0.232165272310735,0.232087948739887,0.23202401106171,0.231988009610922,0.231988009610922, +0.282076085732303,0.282076085732303,0.282113413633461,0.282086016307271,0.28201012718299,0.281907297129796,0.28180133456497,0.281715021248928,0.281666664924773,0.281666664924773, +0.355962193581773,0.355962193581773,0.355977121966134,0.355913464556514,0.355791881596815,0.355639814419026,0.355487565070033,0.355364662915784,0.355295818575532,0.355295818575532, +0.452473345071455,0.452473345071455,0.452455247188072,0.452338241401408,0.452149826705533,0.451925915437275,0.451705462466261,0.451527359580392,0.451426635089539,0.451426635089539, +0.569219906744083,0.569219906744083,0.569157315810782,0.568965121480526,0.568683314685271,0.568359801479682,0.568043292350116,0.567783859132208,0.567632914587224,0.567632914587224, +0.702669916615416,0.702669916615416,0.70255559083824,0.702257030888656,0.7018474177379,0.7013913228906,0.700944146345511,0.700564610358985,0.700328285525799,0.700328285525799, +0.84814363465968,0.84814363465968,0.847997281949649,0.847532463085341,0.846949271294099,0.846326406361999,0.845710700009938,0.845153098809366,0.844749100449287,0.844749100449287, + +00:48:42, +0.207293230749754,0.207293230749754,0.207350468396575,0.207356069046844,0.207322122249771,0.207264582053966,0.207200946034948,0.207147647092344,0.207117485070001,0.207117485070001, +0.207293230749754,0.207293230749754,0.207350468396575,0.207356069046844,0.207322122249771,0.207264582053966,0.207200946034948,0.207147647092344,0.207117485070001,0.207117485070001, +0.232353151584989,0.232353151584989,0.232404052110029,0.232399027536404,0.232351525099451,0.232279334050545,0.232202026839686,0.232138102141272,0.232102107858912,0.232102107858912, +0.282186694835532,0.282186694835532,0.282224021494876,0.282196634929603,0.282120765328867,0.282017959275036,0.281912020455651,0.281825726099314,0.281777380295896,0.281777380295896, +0.356066137637643,0.356066137637643,0.356081065132772,0.356017424170802,0.355895870305702,0.355743838682713,0.355591624537448,0.355468750618523,0.355399922034241,0.355399922034241, +0.452566136447808,0.452566136447808,0.452548040961286,0.452431061245951,0.452242689715304,0.452018830174298,0.45179842824282,0.451620366546556,0.451519665289328,0.451519665289328, +0.569296245549821,0.569296245549821,0.569233664240251,0.569041510534924,0.568759766012546,0.568436325467578,0.568119887803496,0.567860513081907,0.567709602392824,0.567709602392824, +0.702724501861238,0.702724501861238,0.702610196264103,0.702311697584306,0.701902171207058,0.701446174321206,0.700999094174725,0.700619639654673,0.700383365037377,0.700383365037377, +0.848172149703867,0.848172149703867,0.848025825645614,0.847561098744825,0.846978023996039,0.846355285090239,0.845739703471434,0.845182214596349,0.844778296639557,0.844778296639557, + +00:48:43, +0.207408598616554,0.207408598616554,0.207465836976106,0.207471444361146,0.207437508624261,0.207379981571706,0.207316358315331,0.207263069431318,0.207232912941943,0.207232912941943, +0.207408598616554,0.207408598616554,0.207465836976106,0.207471444361146,0.207437508624261,0.207379981571706,0.207316358315331,0.207263069431318,0.207232912941943,0.207232912941943, +0.232467165757277,0.232467165757277,0.232518066056262,0.232513049351798,0.232465560655547,0.232393386277898,0.232316095430282,0.232252183714483,0.232216196602191,0.232216196602191, +0.282297288976172,0.282297288976172,0.28233461439214,0.282307238585734,0.282231388506216,0.282128606449382,0.282022691373282,0.281936415974965,0.281888080691345,0.281888080691345, +0.356170061058783,0.356170061058783,0.356184987667099,0.356121363149312,0.355999838371005,0.355847842292654,0.355695663340732,0.355572817648626,0.355504004815501,0.355504004815501, +0.452658903490681,0.452658903490681,0.452640810405074,0.45252385675347,0.452335528371913,0.452111720537407,0.451891369624312,0.451713349100267,0.451612671066755,0.451612671066755, +0.569372560071083,0.569372560071083,0.569309988387156,0.569117875291736,0.568836193015158,0.568512825097483,0.568196458865296,0.567937142612224,0.567786265762904,0.567786265762904, +0.702779067411259,0.702779067411259,0.702664781990131,0.702366344554607,0.701956904911434,0.701501005940929,0.701054022147012,0.700674649054452,0.700438424629214,0.700438424629214, +0.848200653700182,0.848200653700182,0.848054358282443,0.847589723306328,0.847006765548834,0.846384152613184,0.845768695671714,0.845211319072064,0.8448074814834,0.8448074814834, + +00:48:44, +0.207523960253416,0.207523960253416,0.20758119931717,0.207586813434361,0.207552888759659,0.207495374855241,0.207431764367385,0.207378485547045,0.207348334593549,0.207348334593549, +0.207523960253416,0.207523960253416,0.20758119931717,0.207586813434361,0.207552888759659,0.207495374855241,0.207431764367385,0.207378485547045,0.207348334593549,0.207348334593549, +0.232581170411922,0.232581170411922,0.232632070479016,0.232627061641534,0.232579586686692,0.23250742898285,0.23243015450171,0.232366255771365,0.232330275830774,0.232330275830774, +0.282407868153262,0.282407868153262,0.282445192324292,0.282417827274699,0.28234199671406,0.282239238651846,0.282133347316861,0.282047090874872,0.281998766110106,0.281998766110106, +0.356273963854305,0.356273963854305,0.356288889578221,0.356225281501145,0.356103785801824,0.355951825257943,0.355799681488978,0.355676864015184,0.355608066928403,0.355608066928403, +0.452751646217323,0.452751646217323,0.452733555536676,0.452616627941205,0.452428342692605,0.452204586543859,0.451984286628004,0.451806307258801,0.451705652439106,0.451705652439106, +0.569448850328719,0.569448850328719,0.56938628827234,0.569194215771812,0.568912595713978,0.568589300390297,0.568273005556443,0.568013747744109,0.567862904718428,0.567862904718428, +0.702833613284069,0.702833613284069,0.702719348034916,0.702420971818172,0.702011618869678,0.701555817768461,0.70110893028111,0.700729638577096,0.700493464320108,0.700493464320108, +0.848229146659546,0.848229146659546,0.848082879871067,0.847618336780819,0.847035495963506,0.846413008941912,0.845797676621912,0.845240412247693,0.844836654992036,0.844836654992036, + +00:48:45, +0.207639315645222,0.207639315645222,0.207696555404659,0.207702176251377,0.207668262640838,0.207610761889426,0.207547164175946,0.207493895424343,0.207463750009626,0.207463750009626, +0.207639315645222,0.207639315645222,0.207696555404659,0.207702176251377,0.207668262640838,0.207610761889426,0.207547164175946,0.207493895424343,0.207463750009626,0.207463750009626, +0.232695165539025,0.232695165539025,0.232746065368395,0.232741064395714,0.232693603182974,0.232621462155471,0.232544204044022,0.232480318301958,0.232444345534692,0.232444345534692, +0.282518432365848,0.282518432365848,0.282555755290377,0.282528400995537,0.282452589951429,0.282349855881444,0.282243988285394,0.282157750798031,0.28210943655117,0.28210943655117, +0.356377846033315,0.356377846033315,0.356392770875234,0.356329179235391,0.356207712607244,0.356055787587665,0.355903678991267,0.355780889727279,0.355712108382027,0.355712108382027, +0.452844364644963,0.452844364644963,0.452826276373311,0.452709374826373,0.452521132694605,0.452297428210888,0.452077179271143,0.451899241039414,0.451798609423642,0.451798609423642, +0.569525116343554,0.569525116343554,0.56946256391662,0.569270531995978,0.568988974129852,0.568665751366891,0.568349527897835,0.568090328498484,0.567939519280333,0.567939519280333, +0.702888139498236,0.702888139498236,0.702773894417025,0.70247557939359,0.702066313100413,0.701610609822472,0.701163818595732,0.700784608241356,0.700548484128833,0.700548484128833, +0.848257628592867,0.848257628592867,0.848111390422403,0.847646939179254,0.847064215251059,0.846441854087484,0.845826646333147,0.845269494134407,0.84486581717667,0.84486581717667, + +00:48:46, +0.20775466477688,0.20775466477688,0.207811905223489,0.207817532797107,0.207783630252699,0.20772614265914,0.207662557725872,0.207609299048053,0.207579159175007,0.207579159175007, +0.20775466477688,0.20775466477688,0.207811905223489,0.207817532797107,0.207783630252699,0.20772614265914,0.207662557725872,0.207609299048053,0.207579159175007,0.207579159175007, +0.232809151128703,0.232809151128703,0.232860050714524,0.232855057604455,0.232807610134499,0.232735485785849,0.23265824404729,0.232594371296317,0.232558405703993,0.232558405703993, +0.282628981612982,0.282628981612982,0.282666303289447,0.282638959747293,0.282563168217356,0.282460458137199,0.282354614277892,0.282268395743443,0.282220092013533,0.282220092013533, +0.356481707604906,0.356481707604906,0.356496631567226,0.356433056361135,0.356311618796345,0.356159729290895,0.356007655856674,0.355884894793984,0.355816129185447,0.355816129185447, +0.452937058790811,0.452937058790811,0.452918972932178,0.452802097426173,0.452613898395116,0.452390245555708,0.452170047570953,0.451992150459342,0.451891542037604,0.451891542037604, +0.569601358136385,0.569601358136385,0.569538815340784,0.569346823985029,0.569065328283596,0.568742178048109,0.568426025910344,0.568166884896246,0.568016109469528,0.568016109469528, +0.702942646072303,0.702942646072303,0.702828421154998,0.702530167299424,0.70212098762224,0.701665382121605,0.701218687109565,0.700839558065958,0.700603484074138,0.700603484074138, +0.848286099511038,0.848286099511038,0.848139889947355,0.847675530512574,0.847092923422485,0.846470688060947,0.845855604816521,0.845298564743359,0.844894968048492,0.844894968048492, + +00:48:47, +0.20787000763332,0.20787000763332,0.2079272487586,0.207932883056487,0.207898991580162,0.207841517149286,0.207777945002045,0.207724696403042,0.207694562074549,0.207694562074549, +0.20787000763332,0.20787000763332,0.2079272487586,0.207932883056487,0.207898991580162,0.207841517149286,0.207777945002045,0.207724696403042,0.207694562074549,0.207694562074549, +0.232923127171091,0.232923127171091,0.232974026507543,0.232969041257894,0.232921607531388,0.23284949986409,0.232772274501601,0.232708414744516,0.232672456328742,0.232672456328742, +0.28273951589372,0.28273951589372,0.282776836320555,0.282749503529014,0.282673731510882,0.282571045418138,0.28246522529337,0.282379025710115,0.282330732496196,0.282330732496196, +0.356585548578167,0.356585548578167,0.356600471663278,0.356536912887449,0.356415504378197,0.3562636503767,0.356111612094265,0.355988879224362,0.355920129347726,0.355920129347726, +0.453029728672053,0.453029728672053,0.453011645230453,0.45289479575778,0.45270663981132,0.452483038595512,0.45226289154464,0.452085035535801,0.451984450298214,0.451984450298214, +0.569677575727982,0.569677575727982,0.569615042565594,0.569423091759738,0.569141658196001,0.568818580454769,0.568502499614817,0.568243416958264,0.568092675306896,0.568092675306896, +0.702997133024788,0.702997133024788,0.702882928267355,0.702584735554214,0.702175642453735,0.701720134684478,0.701273535841271,0.700894488069602,0.700658464174747,0.700658464174747, +0.848314559424936,0.848314559424936,0.848168378456808,0.847704110791703,0.84712162048876,0.846499510873334,0.845884552083124,0.845327624085688,0.844924107618676,0.844924107618676, + +00:48:48, +0.207985344199497,0.207985344199497,0.208042585994957,0.208048227014477,0.208014346608175,0.207956885344791,0.207893325989373,0.207840087474199,0.207809958693132,0.207809958693132, +0.207985344199497,0.207985344199497,0.208042585994957,0.208048227014477,0.208014346608175,0.207956885344791,0.207893325989373,0.207840087474199,0.207809958693132,0.207809958693132, +0.233037093656341,0.233037093656341,0.233087992737609,0.233083015346182,0.233035595363783,0.232963504380315,0.232886295397061,0.232822448636645,0.232786497399022,0.232786497399022, +0.282850035207123,0.282850035207123,0.282887354382763,0.282860032339757,0.282784279831051,0.282681617723293,0.28257582133085,0.282489640697059,0.282441357998167,0.282441357998167, +0.356689368962173,0.356689368962173,0.356704291172459,0.3566407488234,0.35651936936186,0.356367550854139,0.356215547713095,0.356092843027469,0.356024108877919,0.356024108877919, +0.453122374305857,0.453122374305857,0.453104293285294,0.452987469838351,0.45279935696038,0.452575807347472,0.452355711209388,0.452177896285983,0.452077334222672,0.452077334222672, +0.569753769139089,0.569753769139089,0.569691245611787,0.569499335340847,0.569217963887831,0.56889495860766,0.56857894903207,0.568319924705378,0.568169216813294,0.568169216813294, +0.703051600374184,0.703051600374184,0.702937415772587,0.702639284176473,0.702230277613447,0.701774867529686,0.701328364809489,0.700949398270964,0.700713424449359,0.700713424449359, +0.848343008345423,0.848343008345423,0.848196855961637,0.847732680027552,0.847150306460845,0.846528322535662,0.845913488144028,0.845356672172519,0.844953235898381,0.844953235898381, + +00:48:49, +0.20810067446039,0.20810067446039,0.208157916917546,0.20816356465606,0.208129695321708,0.208072247230605,0.208008700672786,0.207955472246438,0.207925349015661,0.207925349015661, +0.20810067446039,0.20810067446039,0.208157916917546,0.20816356465606,0.208129695321708,0.208072247230605,0.208008700672786,0.207955472246438,0.207925349015661,0.207925349015661, +0.233151050574622,0.233151050574622,0.233201949394896,0.233196979859489,0.233149573621839,0.233077499324665,0.23300030672379,0.232936472962812,0.232900528904933,0.232900528904933, +0.282960539552257,0.282960539552257,0.282997857475136,0.282970546178579,0.282894813176911,0.282792175051703,0.282686402389356,0.282600240703291,0.282551968518457,0.282551968518457, +0.356793168765993,0.356793168765993,0.35680809010383,0.356744564178042,0.356623213756388,0.35647143073226,0.356319462722211,0.356196786212352,0.356128067785072,0.356128067785072, +0.453214995709368,0.453214995709368,0.453196917113835,0.45308011968502,0.452892049859437,0.45266855182874,0.452448506582358,0.452270732727063,0.452170193828157,0.452170193828157, +0.569829938390422,0.569829938390422,0.56976742450007,0.569575554749074,0.569294245379824,0.568971312527548,0.568655374182897,0.568396408158405,0.568245734009549,0.568245734009549, +0.703106048138959,0.703106048138959,0.702991883689162,0.702693813184691,0.702284893119902,0.701829580675798,0.701383174032832,0.701004288688695,0.700768364916649,0.700768364916649, +0.848371446283349,0.848371446283349,0.848225322472699,0.847761238231017,0.847178981349687,0.846557123058932,0.845942413010292,0.845385709014959,0.844982352898752,0.844982352898752, + +00:48:50, +0.208215998401001,0.208215998401001,0.20827324151138,0.208278895966246,0.208245037705755,0.208187602791705,0.208124069037238,0.208070850704698,0.208040733027065,0.208040733027065, +0.208215998401001,0.208215998401001,0.20827324151138,0.208278895966246,0.208245037705755,0.208187602791705,0.208124069037238,0.208070850704698,0.208040733027065,0.208040733027065, +0.23326499791612,0.23326499791612,0.233315896469596,0.233310934788001,0.233263542295729,0.233191484687295,0.233114308471928,0.233050487713143,0.233014550836592,0.233014550836592, +0.283071028928194,0.283071028928194,0.283108345596744,0.283081045044545,0.283005331547517,0.282902717402409,0.282796968467921,0.282710825727832,0.282662564056083,0.282662564056083, +0.356896947998687,0.356896947998687,0.356911868466444,0.356848358960423,0.356727037570823,0.356575290020105,0.356423357130653,0.356300708788047,0.356232006078222,0.356232006078222, +0.453307592899712,0.453307592899712,0.453289516733193,0.453172745314903,0.452984718525612,0.452761272056446,0.452541277680695,0.452363544876193,0.452263029131827,0.452263029131827, +0.569906083502673,0.569906083502673,0.569843579251126,0.569651750005108,0.569370502692689,0.569047642235168,0.568731775088061,0.568472867338133,0.568322226916465,0.568322226916465, +0.703160476337557,0.703160476337557,0.703046332035523,0.702748322597334,0.702339488991602,0.701884274141357,0.701437963529889,0.70105915934142,0.700823285595264,0.700823285595264, +0.848399873249547,0.848399873249547,0.848253778000838,0.847789785412979,0.847207645166216,0.846585912454134,0.845971326692959,0.845414734624102,0.845011458630917,0.845011458630917, + +00:48:51, +0.208331316006356,0.208331316006356,0.208388559761494,0.208394220930065,0.208360373745333,0.208302952013087,0.208239431067707,0.20818622283394,0.208156110712296,0.208156110712296, +0.208331316006356,0.208331316006356,0.208388559761494,0.208394220930065,0.208360373745333,0.208302952013087,0.208239431067707,0.20818622283394,0.208156110712296,0.208156110712296, +0.233378935671038,0.233378935671038,0.233429833951917,0.233424880121922,0.233377501375645,0.233305460458381,0.233228300631631,0.233164492877778,0.233128563184132,0.233128563184132, +0.283181503334009,0.283181503334009,0.283218818746663,0.283191528936725,0.28311583494193,0.28301324477446,0.282907519565579,0.282821395769711,0.282773144610066,0.282773144610066, +0.357000706669305,0.357000706669305,0.357015626269345,0.356952133179582,0.3568308408142,0.356679128726705,0.356527230947449,0.356404610763584,0.356335923766398,0.356335923766398, +0.453400165893993,0.453400165893993,0.453382092160461,0.453265346745091,0.453077362976003,0.452853968047702,0.452634024521519,0.452456332750504,0.45235584015082,0.45235584015082, +0.569982204496503,0.569982204496503,0.569919709885608,0.569727921129613,0.569446735847111,0.569123947751232,0.568808151768301,0.568549302265323,0.568398695554817,0.568398695554817, +0.703214884988397,0.703214884988397,0.703100760830089,0.70280281243284,0.702394065247022,0.701938947944884,0.701492733319221,0.701114010247741,0.70087818650383,0.70087818650383, +0.848428289254834,0.848428289254834,0.848282222556882,0.847818321584304,0.84723629792135,0.846614690732237,0.846000229203058,0.845443749011028,0.845040553105991,0.845040553105991, + +00:48:52, +0.208446627261506,0.208446627261506,0.208503871652947,0.208509539532572,0.208475703425485,0.208418294879775,0.208354786749197,0.20830158861915,0.208271482056332,0.208271482056332, +0.208446627261506,0.208446627261506,0.208503871652947,0.208509539532572,0.208475703425485,0.208418294879775,0.208354786749197,0.20830158861915,0.208271482056332,0.208271482056332, +0.233492863829596,0.233492863829596,0.233543761832083,0.233538815851472,0.233491450851794,0.233419426628111,0.233342283193073,0.233278488446877,0.233242565937706,0.233242565937706, +0.283291962768785,0.283291962768785,0.283329276923972,0.283301997854193,0.283226323359212,0.283123757166907,0.283018055681373,0.282931950827958,0.282883710179434,0.282883710179434, +0.357104444786889,0.357104444786889,0.357119363521567,0.357055886844548,0.356934623495543,0.356782946861083,0.356631084181622,0.356508492147982,0.356439820858617,0.356439820858617, +0.453492714709295,0.453492714709295,0.453474643412713,0.453357923992659,0.453169983227691,0.452946639819595,0.452726747121932,0.452549096367107,0.452448626902253,0.452448626902253, +0.570058301392549,0.570058301392549,0.569995816424147,0.569804068143227,0.569522944863746,0.569200229096422,0.568884504244328,0.56862571296071,0.568475139945353,0.568475139945353, +0.703269274109875,0.703269274109875,0.703155170091255,0.702857282709627,0.702448621904615,0.701993602104873,0.70154748341937,0.701168841426234,0.700933067660946,0.700933067660946, +0.848456694310017,0.848456694310017,0.848310656151646,0.847846846755843,0.847264939625991,0.846643457904201,0.846029120551602,0.845472752186799,0.845069636335073,0.845069636335073, + +00:48:53, +0.208561932151525,0.208561932151525,0.208619177170823,0.208624851758848,0.208591026731276,0.208533631376814,0.208470136066733,0.208416948045337,0.208386847044171,0.208386847044171, +0.208561932151525,0.208561932151525,0.208619177170823,0.208624851758848,0.208591026731276,0.208533631376814,0.208470136066733,0.208416948045337,0.208386847044171,0.208386847044171, +0.23360678238203,0.23360678238203,0.233657680100338,0.233652741966887,0.2336053907144,0.233533383186693,0.233456256146443,0.233392474410616,0.23335655908748,0.23335655908748, +0.283402407231607,0.283402407231607,0.283439720127758,0.283412451796028,0.283336796798434,0.283234254578809,0.283128576814348,0.283042490901612,0.282994260763219,0.282994260763219, +0.357208162360471,0.357208162360471,0.357223080232136,0.35715961996434,0.35703838562387,0.356886744432251,0.356734916842182,0.356612352950253,0.356543697363893,0.356543697363893, +0.45358523936268,0.45358523936268,0.453567170507002,0.453450477074658,0.453262579297733,0.453039287389194,0.452819445499013,0.452641835743094,0.452541389403222,0.452541389403222, +0.570134374211422,0.570134374211422,0.570071898887344,0.569880191066559,0.569599129763224,0.569276486291395,0.568960832536826,0.568702099445002,0.568551560108795,0.568551560108795, +0.70332364372036,0.70332364372036,0.703209559837389,0.702911733446085,0.702503158982807,0.702048236639795,0.701602213848848,0.701223652895451,0.700987929085187,0.700987929085187, +0.848485088425883,0.848485088425883,0.848339078795929,0.847875360938435,0.847293570291024,0.846672213980969,0.846058000749589,0.845501744162464,0.845098708329246,0.845098708329246, + +00:48:54, +0.208677230661509,0.208677230661509,0.208734476300228,0.208740157593995,0.208706343647795,0.208648961489276,0.208585479005365,0.208532301097536,0.20850220566084,0.20850220566084, +0.208677230661509,0.208677230661509,0.208734476300228,0.208740157593995,0.208706343647795,0.208648961489276,0.208585479005365,0.208532301097536,0.20850220566084,0.20850220566084, +0.233720691318594,0.233720691318594,0.233771588746941,0.233766658458423,0.233719320953706,0.233647330124353,0.233570219481948,0.233506450759188,0.233470542623641,0.233470542623641, +0.283512836721566,0.283512836721566,0.28355014835711,0.283522890761315,0.28344725525867,0.283344737009228,0.283239082963556,0.283153015989713,0.283104796360459,0.283104796360459, +0.357311859399075,0.357311859399075,0.357326776410068,0.357263332547972,0.357142127208189,0.356990521449217,0.356838728938133,0.356716193179398,0.356647553291226,0.356647553291226, +0.453677739871192,0.453677739871192,0.45365967346036,0.453543006008119,0.453355151203167,0.453131910773548,0.452912119669823,0.452734550895533,0.452634127670804,0.452634127670804, +0.570210422973705,0.570210422973705,0.570147957295774,0.569956289920192,0.56967529056615,0.569352719356783,0.569037136666454,0.56877846173888,0.568627956065839,0.568627956065839, +0.703377993838198,0.703377993838198,0.703263930086838,0.70296616466058,0.702557676500001,0.702102851568095,0.701656924626144,0.701278444673918,0.701042770795104,0.701042770795104, +0.848513471613208,0.848513471613208,0.848367490500514,0.8479038641429,0.847322189927324,0.846700958973467,0.846086869808003,0.845530724949058,0.845127769099579,0.845127769099579, + +00:48:55, +0.208792522776581,0.208792522776581,0.208849769026293,0.20885545702314,0.208821654160156,0.208764285202254,0.208700815550167,0.208647647760803,0.208617557891385,0.208617557891385, +0.208792522776581,0.208792522776581,0.208849769026293,0.20885545702314,0.208821654160156,0.208764285202254,0.208700815550167,0.208647647760803,0.208617557891385,0.208617557891385, +0.23383459062956,0.23383459062956,0.233885487762166,0.23388056531635,0.233833241559969,0.233761267431332,0.233684173189813,0.233620417482803,0.23358451653639,0.23358451653639, +0.283623251237758,0.283623251237758,0.283660561611125,0.283633314749143,0.283557698739001,0.283455204457232,0.283349574128052,0.283263526091311,0.283215316970195,0.283215316970195, +0.357415535911716,0.357415535911716,0.357430452064372,0.357367024604446,0.357245848257499,0.357094277920974,0.35694252047847,0.356820012844411,0.356751388649609,0.356751388649609, +0.453770216251851,0.453770216251851,0.453752152289799,0.453635510810055,0.453447698961011,0.453224509989684,0.453004769651401,0.452827241841475,0.452726841722054,0.452726841722054, +0.570286447699954,0.570286447699954,0.570223991669985,0.570032364724685,0.5697514272931,0.569428928313187,0.569113416653842,0.568854799862999,0.568704327837153,0.568704327837153, +0.70343232448171,0.70343232448171,0.70331828085792,0.703020576371456,0.702612174474576,0.702157446908195,0.701711615769725,0.701333216780139,0.70109759280922,0.70109759280922, +0.848541843882752,0.848541843882752,0.848395891276173,0.847932356380045,0.847350798545747,0.846729692892609,0.846115727737814,0.845559694557598,0.845156818657127,0.845156818657127, + +00:48:56, +0.208907808481885,0.208907808481885,0.208965055334171,0.208970750031433,0.208936958253495,0.208879602500864,0.208816145686236,0.20876298802022,0.208732903720879,0.208732903720879, +0.208907808481885,0.208907808481885,0.208965055334171,0.208970750031433,0.208936958253495,0.208879602500864,0.208816145686236,0.20876298802022,0.208732903720879,0.208732903720879, +0.233948480305213,0.233948480305213,0.233999377136308,0.233994462530956,0.233947152523465,0.233875195097887,0.233798117260278,0.233734374571688,0.233698480815946,0.233698480815946, +0.283733650779286,0.283733650779286,0.283770959888901,0.283743723758606,0.283668127238509,0.283565656921894,0.2834600503069,0.283374021205457,0.283325822591475,0.283325822591475, +0.357519191907401,0.357519191907401,0.357534107204048,0.357470696142755,0.357349548780789,0.357198013856513,0.357046291472178,0.356923811954278,0.356855203448028,0.356855203448028, +0.453862668521659,0.453862668521659,0.45384460701231,0.453727991497454,0.45354022258826,0.45331708505461,0.453097395460764,0.452919908597946,0.452819531574005,0.452819531574005, +0.5703624484107,0.5703624484107,0.570300002030501,0.570108415500567,0.569827539964625,0.569505113181186,0.569189672519595,0.568931113837987,0.568780675443378,0.568780675443378, +0.703486635669193,0.703486635669193,0.703372612168934,0.703074968597029,0.702666652924884,0.702212022678492,0.70176628729803,0.70138796923259,0.701152395146038,0.701152395146038, +0.84857020524526,0.84857020524526,0.848424281133661,0.847960837660665,0.847379396157136,0.846758415749294,0.846144574549973,0.845588652999089,0.845185857012928,0.845185857012928, + +00:48:57, +0.20902308776259,0.20902308776259,0.209080335209041,0.209086036604047,0.209052255912973,0.20899491337025,0.208931469398694,0.208878321860891,0.208848243134417,0.208848243134417, +0.20902308776259,0.20902308776259,0.209080335209041,0.209086036604047,0.209052255912973,0.20899491337025,0.208931469398694,0.208878321860891,0.208848243134417,0.208848243134417, +0.234062360335859,0.234062360335859,0.234113256859675,0.234108350092545,0.234061053834485,0.233989113114295,0.233912051683602,0.233848322016086,0.233812435452547,0.233812435452547, +0.283844035345253,0.283844035345253,0.283881343189545,0.283854117788803,0.283778540756285,0.283676094402292,0.283570511499164,0.283484501331208,0.283436313223352,0.283436313223352, +0.357622827395126,0.357622827395126,0.357637741838084,0.357574347171885,0.357453228787041,0.357301729264809,0.357150041928234,0.357027590517973,0.356958997695457,0.356958997695457, +0.453955096697597,0.453955096697597,0.453937037644863,0.453820448087288,0.453632722101891,0.45340963598531,0.453189997114911,0.453012551181956,0.452912197243672,0.452912197243672, +0.570438425126447,0.570438425126447,0.570375988397816,0.570184442268342,0.56990362860125,0.569581273981331,0.569265904284292,0.569007403684446,0.568856998905131,0.568856998905131, +0.703540927418919,0.703540927418919,0.703426924038151,0.703129341355593,0.702721111869255,0.702266578897357,0.701820939229475,0.701442702049725,0.701207177824034,0.701207177824034, +0.848598555711464,0.848598555711464,0.848452660083719,0.847989307995537,0.847407982772319,0.846787127554405,0.846173410255422,0.84561760028452,0.845214884178007,0.845214884178007, + +00:48:58, +0.209138360603889,0.209138360603889,0.209195608636103,0.209201316726181,0.209167547123773,0.209110217795574,0.209046786672685,0.208993649267946,0.20896357611712,0.20896357611712, +0.209138360603889,0.209138360603889,0.209195608636103,0.209201316726181,0.209167547123773,0.209110217795574,0.209046786672685,0.208993649267946,0.20896357611712,0.20896357611712, +0.234176230711819,0.234176230711819,0.234227126922594,0.23422222799144,0.23417494548334,0.234103021470847,0.234025976450059,0.23396225980626,0.233926380436445,0.233926380436445, +0.283954404934772,0.283954404934772,0.283991711512166,0.283964496838839,0.283888939291424,0.283786516897509,0.283680957703916,0.283594966467628,0.283546788864883,0.283546788864883, +0.357726442383879,0.357726442383879,0.357741355975463,0.357677977700813,0.357556888285228,0.357405424154835,0.357253771855606,0.357131348544465,0.357062771400863,0.357062771400863, +0.454047500796624,0.454047500796624,0.454029444204408,0.453912880596504,0.45372519751886,0.453502162798751,0.453282574630819,0.453105169610493,0.453004838748049,0.453004838748049, +0.570514377867671,0.570514377867671,0.5704519507924,0.570260445048489,0.569979693223471,0.569657410734144,0.569342111968484,0.56908366942295,0.568933298243,0.568933298243, +0.703595199749136,0.703595199749136,0.703481216483817,0.703183694665418,0.702775551325994,0.702321115583138,0.701875571582451,0.701497415249972,0.701261940861658,0.701261940861658, +0.848626895292081,0.848626895292081,0.848481028137073,0.848017767395425,0.847436558402111,0.846815828318811,0.846202234865084,0.845646536424864,0.845243900163372,0.845243900163372, + +00:48:59, +0.209253626990996,0.209253626990996,0.209310875600583,0.209316590383056,0.209282831871104,0.209225515762027,0.209162097493378,0.209108970226535,0.209078902654129,0.209078902654129, +0.209253626990996,0.209253626990996,0.209310875600583,0.209316590383056,0.209282831871104,0.209225515762027,0.209162097493378,0.209108970226535,0.209078902654129,0.209078902654129, +0.23429009142343,0.23429009142343,0.234340987315408,0.234336096217979,0.234288827460354,0.234216920157852,0.234139891549942,0.234076187932487,0.23404031575791,0.23404031575791, +0.284064759546959,0.284064759546959,0.28410206485588,0.284074860907823,0.283999322843024,0.283896924406632,0.283791388920234,0.283705416613783,0.283657249515132,0.283657249515132, +0.357830036882641,0.357830036882641,0.357844949625158,0.357781587738505,0.357660527284313,0.35750909853555,0.357357481263254,0.357235086042711,0.357166524573205,0.357166524573205, +0.45413988083568,0.45413988083568,0.454121826707875,0.454005289042032,0.4538176488561,0.453594665511879,0.453375128025446,0.453197763900522,0.453097456104108,0.453097456104108, +0.570590306654824,0.570590306654824,0.570527889234696,0.570336423861457,0.570055733851759,0.569733523460123,0.569418295592696,0.569159911074049,0.569009573477547,0.569009573477547, +0.703649452678069,0.703649452678069,0.703535489524157,0.703238028544746,0.702829971313381,0.702375632754158,0.701930184375325,0.701552108851736,0.701316684277339,0.701316684277339, +0.848655223997811,0.848655223997811,0.848509385304435,0.848046215871077,0.847465123057309,0.846844518053366,0.846231048389868,0.845675461431081,0.845272904980018,0.845272904980018, + +00:49:00, +0.209368886909151,0.209368886909151,0.209426136087729,0.209431857559916,0.209398110140196,0.20934080725482,0.209277401845966,0.209224284721836,0.209194222730612,0.209194222730612, +0.209368886909151,0.209368886909151,0.209426136087729,0.209431857559916,0.209398110140196,0.20934080725482,0.209277401845966,0.209224284721836,0.209194222730612,0.209194222730612, +0.234403942461047,0.234403942461047,0.234454838028477,0.234449954762516,0.234402699755871,0.234330809165637,0.234253796973559,0.234190106385061,0.234154241407229,0.234154241407229, +0.284175099180934,0.284175099180934,0.284212403219807,0.284185209994868,0.28410969141019,0.284007316928755,0.283901805147198,0.283815851768747,0.283767695173165,0.283767695173165, +0.357933610900382,0.357933610900382,0.357948522796131,0.35788517729392,0.357764145793252,0.357612752415907,0.357461170160128,0.357338803021661,0.357270257221432,0.357270257221432, +0.454232236831683,0.454232236831683,0.454214185172173,0.454097673440781,0.453910076130527,0.453687144141617,0.453467657315726,0.453290334068991,0.453190049328802,0.453190049328802, +0.57066621150833,0.57066621150833,0.57060380374512,0.570412378727673,0.570131750506561,0.569809612179741,0.569494455177427,0.569236128658264,0.569085824629309,0.569085824629309, +0.703703686223916,0.703703686223916,0.703589743177369,0.7032923430118,0.702884371849672,0.702430130428717,0.70198477762644,0.701606782873396,0.701371408089478,0.701371408089478, +0.848683541839343,0.848683541839343,0.848537731596501,0.848074653433229,0.847493676748699,0.846873196768909,0.84625985084067,0.845704375314116,0.845301898638924,0.845301898638924, + +00:49:01, +0.209484140343617,0.209484140343617,0.209541390082812,0.209547118242029,0.209513381916304,0.209456092259188,0.209392699715663,0.209339592739048,0.20930953633176,0.20930953633176, +0.209484140343617,0.209484140343617,0.209541390082812,0.209547118242029,0.209513381916304,0.209456092259188,0.209392699715663,0.209339592739048,0.20930953633176,0.20930953633176, +0.234517783815042,0.234517783815042,0.234568679052178,0.234563803615424,0.234516562360249,0.234444688484544,0.234367692711235,0.234304015154294,0.234268157374705,0.234268157374705, +0.284285423835823,0.284285423835823,0.28432272660307,0.284295544099095,0.284220044992032,0.284117694462975,0.284012206383894,0.283926271931596,0.283878125838056,0.283878125838056, +0.358037164446063,0.358037164446063,0.358052075497339,0.357988746376009,0.35786774382099,0.35771638580485,0.35756483855517,0.357442499490257,0.357373969354485,0.357373969354485, +0.454324568801533,0.454324568801533,0.45430651961419,0.454190033809637,0.454002479359035,0.453779598704871,0.453560162518578,0.453382880132825,0.453282618439062,0.453282618439062, +0.570742092448587,0.570742092448587,0.570679694344063,0.570488309667534,0.570207743208293,0.569885676913441,0.569570590743149,0.56931232219609,0.569162051718794,0.569162051718794, +0.703757900404853,0.703757900404853,0.703643977461629,0.703346638084775,0.702938752953099,0.702484608625088,0.702039351354112,0.701661437333307,0.701426112316454,0.701426112316454, +0.848711848827351,0.848711848827351,0.848566067023956,0.8481030800926,0.847522219487049,0.846901864476265,0.846288642228369,0.845733278084897,0.845330881151055,0.845330881151055, + +00:49:02, +0.20959938727968,0.20959938727968,0.209656637571129,0.209662372414687,0.209628647184706,0.209571370760392,0.20950799108771,0.209454894263393,0.209424843442786,0.209424843442786, +0.20959938727968,0.20959938727968,0.209656637571129,0.209662372414687,0.209628647184706,0.209571370760392,0.20950799108771,0.209454894263393,0.209424843442786,0.209424843442786, +0.234631615475802,0.234631615475802,0.234682510376904,0.234677642767092,0.234630415263865,0.234558558104932,0.234481578753312,0.234417914230515,0.234382063650661,0.234382063650661, +0.284395733510756,0.284395733510756,0.284433035004801,0.284405863219627,0.284330383587664,0.284228057008395,0.284122592629416,0.284036677101415,0.283988541508882,0.283988541508882, +0.358140697528638,0.358140697528638,0.358155607737727,0.358092294993713,0.357971321376465,0.357819998711314,0.357668486457313,0.35754617545743,0.357477660981295,0.357477660981295, +0.454416876762106,0.454416876762106,0.454398830050794,0.454282370165468,0.454094858558498,0.453872029218525,0.453652643650895,0.45347540210893,0.453375163451802,0.453375163451802, +0.570817949495967,0.570817949495967,0.570755561051887,0.570564216701413,0.570283711977349,0.569961717681643,0.569646702310308,0.569388491707998,0.569238254766485,0.569238254766485, +0.703812095239031,0.703812095239031,0.703698192395085,0.703400913781843,0.702993114641869,0.702539067361522,0.702093905576636,0.7017160722498,0.70148079697662,0.70148079697662, +0.848740144972491,0.848740144972491,0.848594391597468,0.848131495859895,0.847550751283116,0.846930521186245,0.84631742256383,0.845762169754341,0.84535985252736,0.84535985252736, + +00:49:03, +0.209714627702651,0.209714627702651,0.209771878537997,0.209777620063205,0.209743905930703,0.209686642743713,0.209623275947369,0.209570189280119,0.209540144048928,0.209540144048928, +0.209714627702651,0.209714627702651,0.209771878537997,0.209777620063205,0.209743905930703,0.209686642743713,0.209623275947369,0.209570189280119,0.209540144048928,0.209540144048928, +0.234745437433732,0.234745437433732,0.234796331993065,0.234791472207923,0.234744258457112,0.234672418017177,0.234595455090151,0.234531803604068,0.234495960225432,0.234495960225432, +0.28450602820487,0.28450602820487,0.284543328424135,0.284516167355592,0.284440707196205,0.284338404564122,0.284232963882858,0.284147067277289,0.284098942184726,0.284098942184726, +0.358244210157052,0.358244210157052,0.358259119526233,0.358195823155963,0.358074878468605,0.357923591144223,0.357772113875481,0.357649830932104,0.357581332110786,0.357581332110786, +0.454509160730261,0.454509160730261,0.454491116498833,0.454374682525122,0.454187213745767,0.453964435699441,0.453745100729554,0.453567900014192,0.453467684383911,0.453467684383911, +0.570893782670816,0.570893782670816,0.570831403888932,0.570640099849655,0.570359656834095,0.570037734504738,0.569722789899325,0.569464637214429,0.56931443379284,0.56931443379284, +0.703866270744577,0.703866270744577,0.703752387995866,0.703455170121151,0.703047456934166,0.702593506656246,0.702148440312281,0.70177068764118,0.701535462088305,0.701535462088305, +0.848768430285409,0.848768430285409,0.84862270532769,0.848159900745806,0.847579272147638,0.846959166909644,0.846346191857905,0.845791050333346,0.845388812778775,0.845388812778775, + +00:49:04, +0.209829861597861,0.209829861597861,0.209887112968759,0.209892861172921,0.209859158139622,0.209801908194457,0.209738554279926,0.209685477774496,0.209655438135447,0.209655438135447, +0.209829861597861,0.209829861597861,0.209887112968759,0.209892861172921,0.209859158139622,0.209801908194457,0.209738554279926,0.209685477774496,0.209655438135447,0.209655438135447, +0.234859249679254,0.234859249679254,0.234910143891088,0.234905291928341,0.234858091930399,0.234786268211673,0.234709321712125,0.234645683265316,0.234609847089374,0.234609847089374, +0.284616307917304,0.284616307917304,0.284653606860209,0.284626456506125,0.284551015816779,0.28444873712927,0.284343320143323,0.284257442458312,0.284209327864676,0.284209327864676, +0.358347702340239,0.358347702340239,0.358362610871786,0.358299330871683,0.358178415106332,0.358027163112497,0.357875720818591,0.357753465923193,0.357684982751872,0.357684982751872, +0.454601420722835,0.454601420722835,0.454583378975134,0.454466970905424,0.454279544937678,0.454056818164464,0.453837533771409,0.453660373865476,0.453560181252261,0.453560181252261, +0.570969591993452,0.570969591993452,0.570907222875508,0.570715959132581,0.570435577798868,0.570113727403092,0.569798853530591,0.569540758735801,0.569390588818288,0.569390588818288, +0.703920426939592,0.703920426939592,0.703806564282073,0.703509407120824,0.703101779848148,0.70264792652746,0.702202955579292,0.701825283525731,0.701590107669815,0.701590107669815, +0.848796704776734,0.848796704776734,0.848651008225261,0.848188294761008,0.847607782091344,0.846987801657242,0.846374950121428,0.845819919832798,0.845417761916219,0.845417761916219, + +00:49:05, +0.209945088950668,0.209945088950668,0.210002340848781,0.210008095729198,0.20997440379681,0.209917167097955,0.209853826070693,0.209800759731817,0.209770725687628,0.209770725687628, +0.209945088950668,0.209945088950668,0.210002340848781,0.210008095729198,0.20997440379681,0.209917167097955,0.209853826070693,0.209800759731817,0.209770725687628,0.209770725687628, +0.234973052202806,0.234973052202806,0.235023946061417,0.235019101918784,0.234971915674153,0.234900108678829,0.234823178609629,0.234759553204637,0.234723724232857,0.234723724232857, +0.284726572647204,0.284726572647204,0.28476387031217,0.284736730670363,0.284661309448516,0.284559054702956,0.284453661409916,0.284367802643582,0.284319698547824,0.284319698547824, +0.358451174087126,0.358451174087126,0.358466081783305,0.358402818149789,0.358281931298555,0.358130714625043,0.357979307295549,0.357857080439605,0.35778861291346,0.35778861291346, +0.454693656756645,0.454693656756645,0.454675617496503,0.454559235323182,0.454371852151041,0.454149176630415,0.453929942793294,0.453752823679625,0.453652654073702,0.453652654073702, +0.57104537748417,0.57104537748417,0.5709830180319,0.570791794570483,0.570511474891984,0.570189696397045,0.569874893224475,0.569616856292504,0.569466719863233,0.569466719863233, +0.703974563842157,0.703974563842157,0.703860721271784,0.70356362479896,0.703156083401951,0.702702326993342,0.702257451395889,0.701879859921709,0.701644733739429,0.701644733739429, +0.848824968457082,0.848824968457082,0.848679300300807,0.848216677916165,0.847636281124943,0.847016425439807,0.846403697365221,0.845848778263568,0.845446699950597,0.845446699950597, + +00:49:06, +0.210060309746452,0.210060309746452,0.210117562163451,0.21012332371742,0.21008964288764,0.21003241943956,0.209969091305,0.2099160351374,0.209886006690778,0.209886006690778, +0.210060309746452,0.210060309746452,0.210117562163451,0.21012332371742,0.21008964288764,0.21003241943956,0.209969091305,0.2099160351374,0.209886006690778,0.209886006690778, +0.235086844994843,0.235086844994843,0.23513773849451,0.235132902169708,0.235085729678816,0.235013939409071,0.234937025773072,0.234873413412427,0.23483759164627,0.23483759164627, +0.28483682239372,0.28483682239372,0.284874118779166,0.284846989847452,0.284771588090548,0.284669357284302,0.28456398768175,0.284478147832202,0.28443005423327,0.28443005423327, +0.358554625406631,0.358554625406631,0.358569532269701,0.358506284999187,0.358385427054177,0.358234245690761,0.358082873315253,0.357960674490237,0.357892222604446,0.357892222604446, +0.454785868848486,0.454785868848486,0.454767832079729,0.45465147579518,0.454464135402649,0.454241511114098,0.454022327812023,0.453845249473464,0.453745102865064,0.453745102865064, +0.571121139163235,0.571121139163235,0.571058789378367,0.57086760618363,0.57058734813373,0.57026564150691,0.569950909001317,0.569692929904902,0.569542826948054,0.569542826948054, +0.704028681470326,0.704028681470326,0.703914858983053,0.703617823173635,0.703210367613685,0.702756708072045,0.702311927780269,0.701934416847349,0.701699340315405,0.701699340315405, +0.848853221337053,0.848853221337053,0.848707581564939,0.848245050221923,0.847664769259133,0.847045038268089,0.846432433600092,0.845877625636512,0.8454756268928,0.8454756268928, + +00:49:07, +0.210175523970615,0.210175523970615,0.210232776898182,0.210238545122997,0.210204875397506,0.210147665204647,0.210084349968207,0.210031303976585,0.210001281130231,0.210001281130231, +0.210175523970615,0.210175523970615,0.210232776898182,0.210238545122997,0.210204875397506,0.210147665204647,0.210084349968207,0.210031303976585,0.210001281130231,0.210001281130231, +0.235200628045835,0.235200628045835,0.235251521180846,0.235246692671583,0.235199533934848,0.235127760392843,0.235050863192879,0.234987263879099,0.234951449320016,0.234951449320016, +0.284947057156007,0.284947057156007,0.284984352260351,0.284957234036539,0.284881851742017,0.284779644872436,0.284674298957941,0.284588478023278,0.284540394920114,0.284540394920114, +0.358658056307663,0.358658056307663,0.358672962339877,0.358609731428773,0.358488902382092,0.358337756318543,0.358186418886594,0.358064248083977,0.357995811833719,0.357995811833719, +0.454878057015136,0.454878057015136,0.454860022741576,0.454743692338186,0.454556394709274,0.454333821632294,0.454114688844391,0.453937651263797,0.453837527643157,0.453837527643157, +0.571196877050889,0.571196877050889,0.571134536935143,0.570943393992261,0.570663197544366,0.570341562752976,0.570026900881431,0.569768979593332,0.569618910093101,0.569618910093101, +0.704082779842128,0.704082779842128,0.70396897743391,0.703672002262899,0.703264632501437,0.702811069781699,0.702366384750605,0.701988954320859,0.701753927415973,0.701753927415973, +0.848881463427235,0.848881463427235,0.848735852028253,0.848273411688916,0.847693246504597,0.847073640152826,0.846461158836831,0.84590646196247,0.845504542753705,0.845504542753705, + +00:49:08, +0.210290731608584,0.210290731608584,0.210347985038409,0.210353759931359,0.210320101311827,0.210262904378617,0.210199602045692,0.210146566234736,0.21011654899134,0.21011654899134, +0.210290731608584,0.210290731608584,0.210347985038409,0.210353759931359,0.210320101311827,0.210262904378617,0.210199602045692,0.210146566234736,0.21011654899134,0.21011654899134, +0.235314401346271,0.235314401346271,0.235365294110916,0.235360473414899,0.235313328432725,0.235241571620603,0.235164690859492,0.23510110459508,0.235065297244518,0.235065297244518, +0.285057276933225,0.285057276933225,0.285094570754885,0.285067463236776,0.284992100402064,0.284889917466491,0.28478459523761,0.284698793215923,0.284650720607466,0.284650720607466, +0.358761466799124,0.358761466799124,0.358776372002727,0.358713157447436,0.358592357291185,0.358441246517271,0.358289944018452,0.358167801229705,0.358099380610159,0.358099380610159, +0.454970221273349,0.454970221273349,0.45495218949879,0.454835884968943,0.454648630087667,0.454426108201766,0.454207025907171,0.454030029067409,0.453929928424771,0.453929928424771, +0.571272591167346,0.571272591167346,0.571210260722433,0.571019158016594,0.570739023144127,0.570417460155502,0.570102868885107,0.569845005378107,0.569694969318701,0.569694969318701, +0.704136858975571,0.704136858975571,0.704023076642362,0.703726162084781,0.70331887808327,0.702865412140409,0.702420822325044,0.702043472360424,0.701808495059342,0.701808495059342, +0.848909694738199,0.848909694738199,0.848764111701331,0.848301762327762,0.847721712872002,0.847102231104741,0.846489873086216,0.84593528725227,0.845533447544172,0.845533447544172, + +00:49:09, +0.21040593264581,0.21040593264581,0.210463186569591,0.210468968127962,0.210435320616045,0.210378136946892,0.210314847522858,0.210261821897241,0.210231810259484,0.210231810259484, +0.21040593264581,0.21040593264581,0.210463186569591,0.210468968127962,0.210435320616045,0.210378136946892,0.210314847522858,0.210261821897241,0.210231810259484,0.210231810259484, +0.235428164886655,0.235428164886655,0.235479057275232,0.23547424439016,0.235427113162939,0.235355373082828,0.235278508763372,0.235214935550817,0.235179135410212,0.235179135410212, +0.285167481724539,0.285167481724539,0.285204774261932,0.285177677447324,0.285102334069839,0.285000175065604,0.284894876519883,0.284809093409256,0.284761031294438,0.284761031294438, +0.358864856889903,0.358864856889903,0.358879761267135,0.358816563064057,0.358695791790332,0.358544716295819,0.358393448719699,0.358271333936293,0.358202928942637,0.358202928942637, +0.455062361639862,0.455062361639862,0.455044332368098,0.454928053704177,0.454740841554561,0.454518370839256,0.454299339017117,0.454122382901061,0.454022305226676,0.454022305226676, +0.571348281532795,0.571348281532795,0.57128596076042,0.571094898276815,0.570814824953223,0.570493333734725,0.570178813032607,0.569921007279511,0.569771004645151,0.569771004645151, +0.704190918888637,0.704190918888637,0.70407715662639,0.703780302657284,0.703373104377222,0.702919735166255,0.70247524052171,0.702097970984205,0.701863043263695,0.701863043263695, +0.848937915280504,0.848937915280504,0.84879236059474,0.848330102149066,0.847750168372003,0.847130811134542,0.84651857635901,0.845964101516724,0.845562341275047,0.845562341275047, + +00:49:10, +0.210521127067764,0.210521127067764,0.21057838147721,0.210584169698285,0.210550533295625,0.210493362894919,0.210430086385134,0.21037707094951,0.210347064920065,0.210347064920065, +0.210521127067764,0.210521127067764,0.21057838147721,0.210584169698285,0.210550533295625,0.210493362894919,0.210430086385134,0.21037707094951,0.210347064920065,0.210347064920065, +0.235541918657509,0.235541918657509,0.235592810664318,0.235588005587889,0.235540888116,0.235469164770012,0.235392316894995,0.235328756736772,0.235292963807555,0.235292963807555, +0.285277671529117,0.285277671529117,0.28531496278066,0.285287876667344,0.285212552744495,0.285110417668917,0.285005142803892,0.284919378602398,0.284871326980148,0.284871326980148, +0.358968226588885,0.358968226588885,0.358983130141977,0.358919948287506,0.358799205888401,0.358648165663052,0.358496932999199,0.358374846212605,0.358306456840016,0.358306456840016, +0.455154478131389,0.455154478131389,0.455136451366206,0.455020198560594,0.454833029126666,0.454610609561485,0.45439162819096,0.454214712781497,0.454114658065619,0.454114658065619, +0.571423948167398,0.571423948167398,0.571361637069257,0.57117061479309,0.570890602991837,0.570569183510853,0.570254733344167,0.569996985317806,0.569847016092727,0.569847016092727, +0.704244959599285,0.704244959599285,0.704131217403952,0.703834423998386,0.703427311401307,0.702974038877294,0.702529639358703,0.702152450210339,0.701917572047192,0.701917572047192, +0.848966125064693,0.848966125064693,0.848820598719035,0.848358431163419,0.847778613015238,0.847159380252922,0.846547268665962,0.845992904766628,0.845591223957163,0.845591223957163, + +00:49:11, +0.210636314859943,0.210636314859943,0.210693569746771,0.210699364627828,0.210665739336055,0.210608582208168,0.210545318617968,0.210492313376978,0.210462312958507,0.210462312958507, +0.210636314859943,0.210636314859943,0.210693569746771,0.210699364627828,0.210665739336055,0.210608582208168,0.210545318617968,0.210492313376978,0.210462312958507,0.210462312958507, +0.235655662649369,0.235655662649369,0.235706554268718,0.235701756998622,0.235654653282435,0.235582946672662,0.235506115244852,0.235442568143424,0.235406782427016,0.235406782427016, +0.285387846346135,0.285387846346135,0.285425136310243,0.285398060896004,0.28532275642519,0.285220645275577,0.285115394088772,0.285029648794476,0.284981607663718,0.284981607663718, +0.359071575904943,0.359071575904943,0.359086478636122,0.359023313126646,0.358902599594251,0.358751594627826,0.358600396865807,0.358478338067493,0.35840996431115,0.35840996431115, +0.455246570764627,0.455246570764627,0.455228546509797,0.455112319554878,0.454925192820673,0.454702824385154,0.454483893445415,0.454307018725441,0.454206986958332,0.454206986958332, +0.571499591091293,0.571499591091293,0.571437289669074,0.571246307585553,0.570966357280125,0.570645009504069,0.570330629839998,0.570072939513223,0.569923003681673,0.569923003681673, +0.704298981125449,0.704298981125449,0.704185258992983,0.703888526126044,0.703481499173517,0.703028323291561,0.702584018854099,0.702206910056938,0.701972081427968,0.701972081427968, +0.848994324101295,0.848994324101295,0.848848826084753,0.848386749381395,0.847807046812333,0.847187938470561,0.846575950017804,0.846021697012766,0.845620095601337,0.845620095601337, + +00:49:12, +0.210751496007867,0.210751496007867,0.210808751363802,0.210814552902116,0.210780938722846,0.210723794872131,0.210660544206835,0.210607549165102,0.210577554360261,0.210577554360261, +0.210751496007867,0.210751496007867,0.210808751363802,0.210814552902116,0.210780938722846,0.210723794872131,0.210660544206835,0.210607549165102,0.210577554360261,0.210577554360261, +0.23576939685279,0.23576939685279,0.235820288078991,0.235815498612915,0.235768408652784,0.235696718781306,0.235619903803453,0.235556369761268,0.235520591259085,0.235520591259085, +0.285498006174772,0.285498006174772,0.28553529484986,0.285508230132477,0.285432945111089,0.285330857884736,0.285225630373665,0.285139903984624,0.285091873344276,0.285091873344276, +0.359174904846943,0.359174904846943,0.359189806758427,0.359126657590331,0.359005972916732,0.35885500319899,0.358703840328369,0.358581809509804,0.358513451364884,0.358513451364884, +0.455338639556249,0.455338639556249,0.455320617815538,0.455204416703692,0.455017332653254,0.454795015326944,0.454576134797175,0.454399300749595,0.454299291921521,0.454299291921521, +0.571575210324589,0.571575210324589,0.571512918579973,0.571321976674318,0.571042087838218,0.57072081173453,0.570406502540283,0.57014886988597,0.569998967432213,0.569998967432213, +0.704352983485041,0.704352983485041,0.704239281411393,0.703942609058188,0.703535667711818,0.703082588427063,0.702638379025951,0.702261350542091,0.702026571424134,0.702026571424134, +0.849022512400827,0.849022512400827,0.848877042702421,0.848415056813556,0.847835469773898,0.847216485798124,0.846604620425257,0.846050478265905,0.845648956218371,0.845648956218371, + +00:49:13, +0.210866670497077,0.210866670497077,0.210923926313855,0.210929734506698,0.210896131441534,0.210839000872324,0.21077576313723,0.210722778299362,0.210692789110796,0.210692789110796, +0.210866670497077,0.210866670497077,0.210923926313855,0.210929734506698,0.210896131441534,0.210839000872324,0.21077576313723,0.210722778299362,0.210692789110796,0.210692789110796, +0.235883121258341,0.235883121258341,0.235934012085713,0.235929230421339,0.235882154217607,0.235810481086485,0.235733682561323,0.235670161580817,0.235634390294265,0.235634390294265, +0.285608151014211,0.285608151014211,0.285645438398692,0.285618384375941,0.285543118801359,0.285441055495552,0.285335851657717,0.285250144171979,0.285202124020954,0.285202124020954, +0.359278213423742,0.359278213423742,0.359293114517744,0.359229981687406,0.359109325864686,0.358958391385382,0.358807263395724,0.358685260548374,0.358616918010054,0.358616918010054, +0.45543068452291,0.45543068452291,0.455412665300073,0.455296490023683,0.455109448641058,0.454887182403517,0.454668352262911,0.454491558870643,0.454391572971876,0.454391572971876, +0.571650805887372,0.571650805887372,0.571588523822031,0.571397622079469,0.571117794686221,0.570796590222369,0.570482351465182,0.570224776456229,0.57007490736454,0.57007490736454, +0.704406966695947,0.704406966695947,0.704293284677069,0.703996672812727,0.703589817034153,0.703136834301785,0.702692719892284,0.702315771683863,0.702081042053777,0.702081042053777, +0.849050689973789,0.849050689973789,0.848905248582548,0.84844335347045,0.847863881910529,0.847245022246261,0.846633279899025,0.8460792485368,0.845677805819054,0.845677805819054, + +00:49:14, +0.21098183831314,0.21098183831314,0.211039094582504,0.211044909427144,0.211011317477676,0.210954200194287,0.210890975394673,0.210838000765262,0.210808017195608,0.210808017195608, +0.21098183831314,0.21098183831314,0.211039094582504,0.211044909427144,0.211011317477676,0.210954200194287,0.210890975394673,0.210838000765262,0.210808017195608,0.210808017195608, +0.235996835856611,0.235996835856611,0.236047726279475,0.236042952414481,0.235995889967479,0.235924233578759,0.235847451509005,0.235783943592598,0.235748179523077,0.235748179523077, +0.285718280863641,0.285718280863641,0.28575556695593,0.285728523625578,0.285653277495173,0.285551238107185,0.285446057940078,0.285360369355682,0.285312359692891,0.285312359692891, +0.359381501644188,0.359381501644188,0.359396401922912,0.359333285426707,0.359212658446946,0.359061759195834,0.358910666076699,0.358788691192033,0.35872036425549,0.35872036425549, +0.455522705681246,0.455522705681246,0.455504688980028,0.455388539531474,0.455201540800717,0.454979325631514,0.454760545859276,0.454583793105245,0.454483830126066,0.454483830126066, +0.571726377799701,0.571726377799701,0.5716641054153,0.571473243821066,0.571193477844214,0.570872344987689,0.570558176634826,0.570300659244155,0.570150823498823,0.570150823498823, +0.70446093077603,0.70446093077603,0.704347268807873,0.704050717407544,0.703643947158441,0.703191060933689,0.702747041471105,0.702370173500294,0.70213549333496,0.70213549333496, +0.849078856830667,0.849078856830667,0.848933443735631,0.848471639362609,0.847892283232807,0.847273547825608,0.846661928449798,0.846108007836189,0.845706644414158,0.845706644414158, + +00:49:15, +0.211096999441645,0.211096999441645,0.211154256155347,0.211160077649049,0.211126496816853,0.211069392823582,0.211006180964707,0.210953216548329,0.210923238600215,0.210923238600215, +0.211096999441645,0.211096999441645,0.211154256155347,0.211160077649049,0.211126496816853,0.211069392823582,0.211006180964707,0.210953216548329,0.210923238600215,0.210923238600215, +0.236110540638203,0.236110540638203,0.236161430650887,0.236156664582945,0.236109615892993,0.236037976248702,0.235961210637058,0.235897715787158,0.23586195893606,0.23586195893606, +0.285828395722257,0.285828395722257,0.285865680520764,0.285838647880574,0.285763421191708,0.285661405718803,0.285556249219904,0.285470579534881,0.285422580359227,0.285422580359227, +0.359484769517119,0.359484769517119,0.359499668982766,0.359436568817063,0.359315970672336,0.359165106639167,0.359014048380116,0.358892101449599,0.35882379011001,0.35882379011001, +0.45561470304787,0.45561470304787,0.455596688872006,0.45548056524367,0.45529360914884,0.455071445027555,0.454852715602904,0.454676003470046,0.454576063400738,0.454576063400738, +0.571801926081608,0.571801926081608,0.571739663379805,0.571548841919141,0.57126913733225,0.57094807605057,0.570633978069323,0.570376518269878,0.570226715855206,0.570226715855206, +0.70451487574313,0.70451487574313,0.704401233821644,0.7041047428605,0.703698058102578,0.703245268340712,0.702801343780392,0.7024245560094,0.702189925285722,0.702189925285722, +0.849107012981935,0.849107012981935,0.848961628172153,0.848499914500552,0.847920673751302,0.847302062546787,0.846690566088253,0.846136756174797,0.845735472014443,0.845735472014443, + +00:49:16, +0.211212153868202,0.211212153868202,0.211269411018005,0.211275239158028,0.211241669444669,0.211184578745793,0.211121379832899,0.211068425634114,0.211038453310158,0.211038453310158, +0.211212153868202,0.211212153868202,0.211269411018005,0.211275239158028,0.211241669444669,0.211184578745793,0.211121379832899,0.211068425634114,0.211038453310158,0.211038453310158, +0.236224235593735,0.236224235593735,0.236275125190574,0.23627036691735,0.236223331984755,0.236151709086908,0.236074959936056,0.236011478155057,0.235975728523766,0.235975728523766, +0.285938495589256,0.285938495589256,0.285975779092394,0.285948757140123,0.285873549890148,0.285771558329576,0.285666425496355,0.285580774708728,0.285532786019112,0.285532786019112, +0.359588017051368,0.359588017051368,0.359602915706128,0.359539831867293,0.359419262549672,0.359268433724194,0.359117410314786,0.358995491329885,0.358927195582426,0.358927195582426, +0.455706676639377,0.455706676639377,0.455688664992594,0.455572567176854,0.455385653702019,0.455163540608241,0.454944861510406,0.454768189981668,0.454668272812522,0.454668272812522, +0.5718774507531,0.5718774507531,0.571815197735544,0.571624416393704,0.571344773170357,0.571023783431067,0.570709755788752,0.570452353553501,0.570302584453806,0.570302584453806, +0.704568801615064,0.704568801615064,0.704455179736198,0.70415874918943,0.703752149884434,0.703299456540768,0.702855626838102,0.702478919229174,0.70224433792408,0.70224433792408, +0.849135158438051,0.849135158438051,0.848989801902581,0.848528178894784,0.847949053476565,0.847330566420405,0.84671919282505,0.846165493563335,0.845764288630653,0.845764288630653, + +00:49:17, +0.211327301578446,0.211327301578446,0.21138455915612,0.211390393939723,0.211356835346751,0.21129975794653,0.211236571984836,0.211183628008189,0.211153661311003,0.211153661311003, +0.211327301578446,0.211327301578446,0.21138455915612,0.211390393939723,0.211356835346751,0.21129975794653,0.211236571984836,0.211183628008189,0.211153661311003,0.211153661311003, +0.236337920713844,0.236337920713844,0.236388809889175,0.236384059408335,0.236337038233391,0.236265432083984,0.236188699396591,0.236125230686875,0.236089488276768,0.236089488276768, +0.286048580463842,0.286048580463842,0.28608586267002,0.286058851403419,0.28598366358968,0.285881695938682,0.285776586768598,0.28569095487638,0.285642976671696,0.285642976671696, +0.359691244255755,0.359691244255755,0.359706142101815,0.359643074586206,0.35952253408776,0.35937174045972,0.359220751889513,0.359098860841691,0.359030580681539,0.359030580681539, +0.455798626472341,0.455798626472341,0.455780617358355,0.455664545347591,0.455477674476825,0.455255612390153,0.455036983598374,0.454860352656713,0.454760458378026,0.454760458378026, +0.57195295183416,0.57195295183416,0.571890708502493,0.571699967264735,0.571420385378536,0.571099467149205,0.57078550981317,0.570528165115102,0.570378429314715,0.570378429314715, +0.704622708409622,0.704622708409622,0.704509106569327,0.704212736412147,0.703806222521857,0.703353625551746,0.702909890662167,0.702533263177585,0.702298731268023,0.702298731268023, +0.849163293209459,0.849163293209459,0.849017964937369,0.848556432555794,0.847977422419136,0.847359059457055,0.846747808670837,0.846194220012497,0.845793094273518,0.845793094273518, + +00:49:18, +0.211442442558036,0.211442442558036,0.211499700555361,0.211505541979795,0.211471994508748,0.211414930411424,0.211351757406133,0.211298823656151,0.211268862588335,0.211268862588335, +0.211442442558036,0.211442442558036,0.211499700555361,0.211505541979795,0.211471994508748,0.211414930411424,0.211351757406133,0.211298823656151,0.211268862588335,0.211268862588335, +0.236451595989183,0.236451595989183,0.23650248473735,0.236497742046552,0.236450734629542,0.236379145230554,0.236302429009272,0.236238973373204,0.236203238185652,0.236203238185652, +0.286158650345221,0.286158650345221,0.286195931252852,0.286168930669666,0.286093762289496,0.285991818545301,0.285886733035802,0.285801120036998,0.285753152316137,0.285753152316137, +0.359794451139095,0.359794451139095,0.359809348178633,0.359746296982605,0.3596257852954,0.359475026854542,0.359324073113092,0.359202209993814,0.359133945416144,0.359133945416144, +0.455890552563317,0.455890552563317,0.455872545985834,0.455756499772426,0.455569671489806,0.455347660389853,0.455129081883382,0.454952491511763,0.454852620113838,0.454852620113838, +0.572028429344743,0.572028429344743,0.571966195700599,0.571775494552192,0.571495973976763,0.571175127224989,0.570861240162604,0.570603952974734,0.570454250457997,0.570454250457997, +0.704676596144573,0.704676596144573,0.704563014338798,0.704266704546441,0.703860276032671,0.703407775391512,0.702964135270495,0.702587587872578,0.702353105335519,0.702353105335519, +0.849191417306589,0.849191417306589,0.849046117286957,0.84858467549406,0.84800578058954,0.847387541667317,0.846776413636247,0.846222935532966,0.845821888953753,0.845821888953753, + +00:49:19, +0.211557576792652,0.211557576792652,0.211614835201415,0.211620683263932,0.211587146916334,0.21153009612613,0.211466936082422,0.21141401256362,0.211384057127767,0.211384057127767, +0.211557576792652,0.211557576792652,0.211614835201415,0.211620683263932,0.211587146916334,0.21153009612613,0.211466936082422,0.21141401256362,0.211384057127767,0.211384057127767, +0.23656526141042,0.23656526141042,0.236616149725772,0.23661141482267,0.236564421163865,0.236492848517261,0.236416148764722,0.236352706204658,0.236316978241021,0.236316978241021, +0.286268705232608,0.286268705232608,0.286305984840099,0.28627899493807,0.286203845988793,0.28610192614862,0.285996864297143,0.285911270189749,0.285863312951598,0.285863312951598, +0.359897637710192,0.359897637710192,0.359912533945381,0.359849499065283,0.359729016181382,0.359578292917447,0.359427373994308,0.359305538795037,0.359237289795027,0.359237289795027, +0.455982454928839,0.455982454928839,0.455964450891556,0.455848430467881,0.455661644757495,0.45543968462388,0.455221156381981,0.455044606563382,0.454944758036527,0.454944758036527, +0.572103883304779,0.572103883304779,0.572041659349784,0.571850998276004,0.571571538984989,0.571250763678394,0.570936946857058,0.570679717152422,0.570530047903693,0.570530047903693, +0.704730464837663,0.704730464837663,0.704616903062355,0.704320653610077,0.703914310434677,0.703461906077908,0.703018360680972,0.702641893332074,0.702407460144512,0.702407460144512, +0.849219530739858,0.849219530739858,0.849074258961772,0.848612907720043,0.848034127998287,0.847416013061753,0.846805007731897,0.846251640135407,0.84585067268206,0.84585067268206, + +00:49:20, +0.211672704267998,0.211672704267998,0.211729963079997,0.211735817777843,0.211702292555205,0.211645255076325,0.211582107999364,0.211529194716237,0.211499244914931,0.211499244914931, +0.211672704267998,0.211672704267998,0.211729963079997,0.211735817777843,0.211702292555205,0.211645255076325,0.211582107999364,0.211529194716237,0.211499244914931,0.211499244914931, +0.23667891696824,0.23667891696824,0.236729804845132,0.236725077727375,0.236678097827033,0.236606541934762,0.236529858653584,0.236466429171862,0.236430708433496,0.236430708433496, +0.28637874512522,0.28637874512522,0.28641602343098,0.286389044207841,0.286313914686773,0.286212018747828,0.2861069805518,0.286021405333804,0.285973458577244,0.285973458577244, +0.360000803977842,0.360000803977842,0.360015699410847,0.359952680843026,0.359832226754485,0.359681538657213,0.35953065454194,0.359408847254139,0.359340613826963,0.359340613826963, +0.456074333585422,0.456074333585422,0.456056332092026,0.455940337450462,0.455753594296401,0.455531685108755,0.455313207110704,0.455136697828111,0.455036872162641,0.455036872162641, +0.572179313734172,0.572179313734172,0.572117099469945,0.571926478456077,0.571647080423138,0.57132637652937,0.571012629916511,0.570755457668167,0.570605821671817,0.570605821671817, +0.704784314506612,0.704784314506612,0.704670772757721,0.704374583620796,0.703968325745651,0.703516017628753,0.703072566911457,0.70269617957397,0.702461795712922,0.702461795712922, +0.849247633519668,0.849247633519668,0.849102389972223,0.84864112924419,0.848062464655874,0.847444473650915,0.846833590968393,0.846280333830474,0.845879445469124,0.845879445469124, + +00:49:21, +0.211787824969799,0.211787824969799,0.21184508417684,0.211850945507258,0.211817431411079,0.211760407247709,0.211697273142638,0.211644370099669,0.211614425935484,0.211614425935484, +0.211787824969799,0.211787824969799,0.21184508417684,0.211850945507258,0.211817431411079,0.211760407247709,0.211697273142638,0.211644370099669,0.211614425935484,0.211614425935484, +0.236792562653345,0.236792562653345,0.236843450086136,0.236838730751369,0.236791764609737,0.236720225473729,0.236643558666513,0.236580142265462,0.236544428753713,0.236544428753713, +0.286488770022278,0.286488770022278,0.286526047024715,0.286499078478195,0.286423968382643,0.286322096342122,0.286217081798958,0.286131525468341,0.286083589192247,0.286083589192247, +0.360103949950833,0.360103949950833,0.360118844583813,0.360055842324608,0.359935417023484,0.359784764082612,0.359633914764755,0.359512135379887,0.359443917520721,0.359443917520721, +0.456166188549559,0.456166188549559,0.456148189603728,0.456032220736653,0.455845520123015,0.455623661860981,0.455405234086064,0.455228765322474,0.455128962508709,0.455128962508709, +0.572254720652801,0.572254720652801,0.572192516080953,0.572001935112291,0.571722598311109,0.571401965797843,0.571088289360913,0.570831174541944,0.570681571782356,0.570681571782356, +0.704838145169117,0.704838145169117,0.704724623442591,0.704428494596317,0.704022321983347,0.703570110061841,0.703126753979789,0.70275044661614,0.702516112058644,0.702516112058644, +0.849275725656406,0.849275725656406,0.84913051032871,0.848669340076936,0.848090790572782,0.847472923445338,0.846862163356323,0.846309016628804,0.845908207325618,0.845908207325618, + +00:49:22, +0.211902938883806,0.211902938883806,0.211960198477704,0.211966066437932,0.211932563469698,0.211875552626006,0.21181243149795,0.211759538699604,0.211729600175106,0.211729600175106, +0.211902938883806,0.211902938883806,0.211960198477704,0.211966066437932,0.211932563469698,0.211875552626006,0.21181243149795,0.211759538699604,0.211729600175106,0.211729600175106, +0.236906198456452,0.236906198456452,0.236957085439506,0.23695237388537,0.236905421502683,0.236833899124854,0.236757248794184,0.236693845476117,0.236658139192325,0.236658139192325, +0.286598779923009,0.286598779923009,0.28663605562053,0.286609097748352,0.286534007075614,0.286432158930702,0.286327168037807,0.28624163059254,0.286193704795785,0.286193704795785, +0.360207075637943,0.360207075637943,0.360221969473051,0.360158983518798,0.360038586997143,0.359887969202405,0.359737154671515,0.359615403181041,0.35954720088506,0.35954720088506, +0.456258019837725,0.456258019837725,0.456240023443127,0.456124080342918,0.455937422253808,0.455715614897037,0.455497237324554,0.455320809062973,0.455221029091239,0.455221029091239, +0.57233010408052,0.57233010408052,0.572267909202654,0.572077368264498,0.571798092668776,0.571477531503711,0.571163925210191,0.570906867793702,0.570757298255275,0.570757298255275, +0.704891956842855,0.704891956842855,0.704778455134639,0.704482386554334,0.704076299165493,0.703624183394945,0.703180921903781,0.702804694476433,0.702570409199551,0.702570409199551, +0.849303807160447,0.849303807160447,0.849158620041615,0.848697540228699,0.84811910575948,0.847501362455543,0.846890724906263,0.846337688541022,0.845936958262199,0.845936958262199, + +00:49:23, +0.21201804599579,0.21201804599579,0.212075305968368,0.212081180555644,0.212047688716827,0.211990691196962,0.211927583051026,0.211874700501753,0.2118447676195,0.2118447676195, +0.21201804599579,0.21201804599579,0.212075305968368,0.212081180555644,0.212047688716827,0.211990691196962,0.211927583051026,0.211874700501753,0.2118447676195,0.2118447676195, +0.237019824368295,0.237019824368295,0.237070710895982,0.237066007120112,0.237019068496592,0.236947562878843,0.236870929027286,0.236807538794504,0.236771839740001,0.236771839740001, +0.286708774826646,0.286708774826646,0.286746049217657,0.286719102017539,0.286644030764901,0.286542206512774,0.286437239267542,0.286351720705587,0.286303805387037,0.286303805387037, +0.360310181047942,0.360310181047942,0.360325074087325,0.360262104434354,0.360141736684216,0.359991154025345,0.359840374270972,0.359718650666353,0.359650463928733,0.359650463928733, +0.456349827466375,0.456349827466375,0.456331833626669,0.456215916285702,0.456029300705231,0.455807544233385,0.455589216842645,0.45541282906609,0.45531307192672,0.45531307192672, +0.572405464037156,0.572405464037156,0.572343278854867,0.572152777932528,0.571873563515987,0.571553073666849,0.571239537484247,0.570982537443364,0.570833001110509,0.570833001110509, +0.704945749545474,0.704945749545474,0.704832267851516,0.704536259512518,0.704130257309795,0.703678237645811,0.703235070701223,0.702858923172677,0.702624687153491,0.702624687153491, +0.84933187804215,0.84933187804215,0.849186719121308,0.848725729709887,0.848147410226422,0.84752979069204,0.846919275628774,0.846366349577736,0.845965698289511,0.845965698289511, + +00:49:24, +0.212133146291546,0.212133146291546,0.212190406634638,0.212196287846193,0.212162807138253,0.212105822946347,0.212042727787616,0.211989855491851,0.211959928254391,0.211959928254391, +0.212133146291546,0.212133146291546,0.212190406634638,0.212196287846193,0.212162807138253,0.212105822946347,0.212042727787616,0.211989855491851,0.211959928254391,0.211959928254391, +0.237133440379624,0.237133440379624,0.23718432644632,0.237179630446347,0.237132705582205,0.237061216726419,0.236984599356527,0.236921222211315,0.236885530387426,0.236885530387426, +0.286818754732424,0.286818754732424,0.286856027815331,0.286829091284985,0.286754039449727,0.286652239087546,0.286547295487362,0.286461795806673,0.286413890965192,0.286413890965192, +0.360413266189594,0.360413266189594,0.360428158435389,0.360365205080026,0.360244866093451,0.360094318560177,0.359943573571869,0.359821877844565,0.359753706660481,0.359753706660481, +0.456441611451944,0.456441611451944,0.456423620170778,0.456307728581429,0.456121155493715,0.455899449886467,0.455681172656791,0.455504825348289,0.455405091031622,0.455405091031622, +0.57248080054251,0.57248080054251,0.572418625057388,0.572228164136183,0.571949010872564,0.571628592307106,0.571315126202954,0.571058183510829,0.57090868036797,0.57090868036797, +0.704999523294602,0.704999523294602,0.704886061610849,0.704590113488517,0.704184196433937,0.703732272832164,0.703289200389881,0.702913132722672,0.70267894593829,0.70267894593829, +0.849359938311862,0.849359938311862,0.849214807578145,0.84875390853089,0.848175703984048,0.84755820816532,0.846947815534404,0.846394999749542,0.845994427418182,0.845994427418182, + +00:49:25, +0.212248239756893,0.212248239756893,0.21230550046234,0.212311388295402,0.212277918719786,0.212220947859951,0.212157865693494,0.212105003655654,0.212075082065528,0.212075082065528, +0.212248239756893,0.212248239756893,0.21230550046234,0.212311388295402,0.212277918719786,0.212220947859951,0.212157865693494,0.212105003655654,0.212075082065528,0.212075082065528, +0.237247046481206,0.237247046481206,0.237297932081289,0.23729324385484,0.237246332750276,0.23717486065832,0.237098259772628,0.237034895717261,0.236999211125303,0.236999211125303, +0.286928719639585,0.286928719639585,0.286965991412792,0.286939065549925,0.286864033129316,0.286762256654234,0.28665733669647,0.286571855894993,0.28652396152944,0.28652396152944, +0.36051633107165,0.36051633107165,0.36053122252599,0.360468285464558,0.360347975233586,0.360197462815637,0.360046752582941,0.359925084724412,0.359856929089039,0.359856929089039, +0.456533371810846,0.456533371810846,0.456515383091859,0.456399517246505,0.456212986635671,0.455991331872703,0.455773104783426,0.455596797926014,0.455497086422392,0.455497086422392, +0.57255611361636,0.57255611361636,0.572493947829984,0.57230352689524,0.572024434758303,0.571704087444302,0.571390691386163,0.57113380601597,0.570984336047545,0.570984336047545, +0.705053278107843,0.705053278107843,0.704939836430241,0.704643948499956,0.704238116555576,0.703786288971704,0.703343310987497,0.702967323144199,0.702733185571747,0.702733185571747, +0.849387987979914,0.849387987979914,0.849242885422466,0.848782076702085,0.848203987042783,0.847586614885863,0.846976344633684,0.84642363906702,0.846023145658828,0.846023145658828, + +00:49:26, +0.21236332637767,0.21236332637767,0.212420587437323,0.212426481889118,0.212393023447259,0.21233606592359,0.212272996754454,0.212220144978943,0.212190229038681,0.212190229038681, +0.21236332637767,0.21236332637767,0.212420587437323,0.212426481889118,0.212393023447259,0.21233606592359,0.212272996754454,0.212220144978943,0.212190229038681,0.212190229038681, +0.237360642663822,0.237360642663822,0.237411527791679,0.237406847336376,0.237359949991576,0.237288494665302,0.237211910266328,0.237148559303066,0.237112881944349,0.237112881944349, +0.287038669547373,0.287038669547373,0.287075940009285,0.287049024811598,0.286974011802899,0.286872259212058,0.286767362894076,0.286681900969749,0.286634017078976,0.286634017078976, +0.360619375702854,0.360619375702854,0.360634266367867,0.36057134559668,0.360451064113351,0.360300586800454,0.360149911312914,0.36002827131462,0.359960131223132,0.359960131223132, +0.456625108559476,0.456625108559476,0.4566071224063,0.456491282297314,0.45630479414749,0.456083190208496,0.455865013238962,0.455688746815687,0.455589058115462,0.455589058115462, +0.572631403278457,0.572631403278457,0.572569247192401,0.572378866229451,0.572099835192977,0.571779559098237,0.571466233053698,0.571209404978631,0.571059968169093,0.571059968169093, +0.705107014002777,0.705107014002777,0.704993592327272,0.704697764564435,0.704292017692349,0.703840286082108,0.703397402511793,0.703021494455012,0.702787406071642,0.702787406071642, +0.849416027056625,0.849416027056625,0.8492709526646,0.848810234233837,0.848232259413039,0.847615010864134,0.847004862937133,0.846452267540737,0.846051853022048,0.846051853022048, + +00:49:27, +0.212478406139742,0.212478406139742,0.212535667545458,0.212541568613209,0.212508121306528,0.212451177123101,0.212388120956314,0.212335279447521,0.212305369159646,0.212305369159646, +0.212478406139742,0.212478406139742,0.212535667545458,0.212541568613209,0.212508121306528,0.212451177123101,0.212388120956314,0.212335279447521,0.212305369159646,0.212305369159646, +0.237474228918271,0.237474228918271,0.237525113568293,0.237520440881753,0.237473557296893,0.237402118738136,0.237325550828382,0.237262212959472,0.2372265428353,0.2372265428353, +0.287148604455041,0.287148604455041,0.287185873604061,0.287158969069248,0.287083975469711,0.286982246760241,0.286877374079393,0.286791931030146,0.286744057613001,0.286744057613001, +0.360722400091944,0.360722400091944,0.360737289969748,0.360674385485119,0.360554132741468,0.360403690523346,0.360253049770506,0.360131437623906,0.360063313071478,0.360063313071478, +0.45671682171421,0.45671682171421,0.456698838130464,0.456583023750222,0.456396578045544,0.456175024910228,0.455956898039793,0.455780672033712,0.455681006127239,0.455681006127239, +0.572706669548526,0.572706669548526,0.572644523164355,0.572454182158542,0.572175212196332,0.571855007288681,0.571541751225357,0.571284980418636,0.571135576752449,0.571135576752449, +0.705160730996962,0.705160730996962,0.705047329319498,0.704751561699532,0.704345899861868,0.70389426418103,0.703451474980462,0.703075646672844,0.702841607455727,0.702841607455727, +0.849444055552298,0.849444055552298,0.84929900931486,0.848838381136494,0.848260521105214,0.847643396110584,0.847033370455256,0.846480885181245,0.846080549518429,0.846080549518429, + +00:49:28, +0.212593479028993,0.212593479028993,0.212650740772642,0.212656648453565,0.212623212283471,0.212566281444345,0.212503238284918,0.212450407047213,0.212420502414239,0.212420502414239, +0.212593479028993,0.212593479028993,0.212650740772642,0.212656648453565,0.212623212283471,0.212566281444345,0.212503238284918,0.212450407047213,0.212420502414239,0.212420502414239, +0.237587805235369,0.237587805235369,0.23763868940195,0.237634024481787,0.237587154657029,0.23751573286761,0.237439181449562,0.237375856677238,0.237340193788905,0.237340193788905, +0.287258524361842,0.287258524361842,0.287295792196372,0.287268898322125,0.287193924128992,0.287092219298013,0.28698737025164,0.286901946075392,0.286854083130722,0.286854083130722, +0.360825404247646,0.360825404247646,0.360840293340355,0.360777405138591,0.36065718112665,0.360506773993024,0.360356167964428,0.360234583660978,0.360166474642785,0.360166474642785, +0.456808511291402,0.456808511291402,0.456790530280698,0.456674741621574,0.456488338346185,0.45626683599426,0.456048759202293,0.455872573596473,0.455772930474114,0.455772930474114, +0.572781912446269,0.572781912446269,0.572719775765539,0.572529474702215,0.572250565788087,0.571930432035381,0.571617245920914,0.571360532355781,0.571211161817422,0.571211161817422, +0.705214429107931,0.705214429107931,0.705101047424454,0.7048053399228,0.704399763081721,0.7039482232861,0.703505528411177,0.703129779815403,0.702895789741734,0.702895789741734, +0.849472073477224,0.849472073477224,0.849327055383546,0.848866517420393,0.848288772129691,0.847671770635649,0.847061867198542,0.846509491999083,0.846109235158542,0.846109235158542, + +00:49:29, +0.212708545031332,0.212708545031332,0.21276580710479,0.212771721396101,0.212738296363989,0.212681378873203,0.212618348726127,0.212565527763868,0.2125356287883,0.2125356287883, +0.212708545031332,0.212708545031332,0.21276580710479,0.212771721396101,0.212738296363989,0.212681378873203,0.212618348726127,0.212565527763868,0.2125356287883,0.2125356287883, +0.237701371605945,0.237701371605945,0.237752255283487,0.237747598127309,0.237700742062805,0.237629337044528,0.237552802120654,0.237489490447137,0.237453834795931,0.237453834795931, +0.287368429267037,0.287368429267037,0.287405695785479,0.287378812569482,0.287303857779986,0.287202176824607,0.28709735141004,0.287011946104705,0.286964093631348,0.286964093631348, +0.360928388178678,0.360928388178678,0.360943276488399,0.360880404565802,0.3607602092776,0.360609837218189,0.360459265903378,0.360337709434538,0.360269615945753,0.360269615945753, +0.45690017730739,0.45690017730739,0.456882198873328,0.456766435927696,0.456580075065746,0.456358623476936,0.456140596742816,0.455964451520334,0.455864831172458,0.455864831172458, +0.572857131991359,0.572857131991359,0.572795005015622,0.572604743880145,0.572325895987939,0.572005833358058,0.571692717160117,0.571436060809834,0.571286723383797,0.571286723383797, +0.705268108353195,0.705268108353195,0.705154746659649,0.704859099251771,0.704453607369474,0.704002163414925,0.703559562821587,0.703183893900373,0.70294995294737,0.70294995294737, +0.84950008084168,0.84950008084168,0.849355090880943,0.848894643095855,0.84831701249684,0.847700134449753,0.847090353177468,0.846538088004773,0.846137909952945,0.846137909952945, + +00:49:30, +0.212823604132691,0.212823604132691,0.212880866527843,0.212886787426753,0.212853373534006,0.212796469395583,0.212733452265829,0.212680641583357,0.212650748267691,0.212650748267691, +0.212823604132691,0.212823604132691,0.212880866527843,0.212886787426753,0.212853373534006,0.212796469395583,0.212733452265829,0.212680641583357,0.212650748267691,0.212650748267691, +0.237814928020846,0.237814928020846,0.237865811203755,0.237861161809167,0.237814319505057,0.237742931259709,0.237666412832463,0.237603114259961,0.237567465847162,0.237567465847162, +0.28747831916989,0.28747831916989,0.287515584370646,0.287488711810577,0.287413776421943,0.287312119339262,0.287207317553821,0.287121931117302,0.287074089114094,0.287074089114094, +0.361031351893752,0.361031351893752,0.361046239422584,0.360983383775453,0.360863217203014,0.360712880207537,0.360562343596051,0.360440814953276,0.360372736989075,0.360372736989075, +0.456991819778489,0.456991819778489,0.456973843924661,0.456858106684895,0.456671788220538,0.456450387374579,0.456232410677697,0.456056305821639,0.455956708238619,0.455956708238619, +0.572932328203447,0.572932328203447,0.572870210934245,0.572679989711983,0.572401202815556,0.572081211276407,0.571768164962687,0.571511565800543,0.571362261471332,0.571362261471332, +0.705321768750241,0.705321768750241,0.705208427042569,0.704912839703953,0.704507432742668,0.704056084585089,0.703613578229318,0.703237988945415,0.703004097090317,0.703004097090317, +0.849528077655927,0.849528077655927,0.849383115817324,0.848922758173186,0.848345242217016,0.847728487563303,0.847118828402495,0.846566673208826,0.84616657391218,0.84616657391218, + +00:49:31, +0.212938656319023,0.212938656319023,0.212995919027764,0.213001846531481,0.212968443779468,0.212911552997412,0.212848548889934,0.212795748491574,0.212765860838298,0.212765860838298, +0.212938656319023,0.212938656319023,0.212995919027764,0.213001846531481,0.212968443779468,0.212911552997412,0.212848548889934,0.212795748491574,0.212765860838298,0.212765860838298, +0.237928474470937,0.237928474470937,0.237979357153624,0.237974715518224,0.237927886974635,0.237856515503989,0.237780013575809,0.237716728106515,0.237681086933397,0.237681086933397, +0.287588194069669,0.287588194069669,0.28762545795114,0.287598596044673,0.287523680054117,0.287422046841221,0.287317268682215,0.287231901112409,0.28718406957818,0.28718406957818, +0.361134295401569,0.361134295401569,0.361149182151607,0.361086342776233,0.360966204911581,0.360815902969752,0.36066540105113,0.360543900225878,0.360475837781434,0.360475837781434, +0.457083438720994,0.457083438720994,0.457065465450983,0.456949753909457,0.456763477826854,0.456542127703491,0.45632420102325,0.456148136516715,0.45604856168893,0.45604856168893, +0.573007501102156,0.573007501102156,0.572945393541026,0.572755212217354,0.572476486290585,0.5721565658101,0.571843589348323,0.571587047347626,0.571437776099759,0.571437776099759, +0.705375410316533,0.705375410316533,0.70526208859068,0.704966561296829,0.704561239218823,0.704109986814151,0.703667574651971,0.703292064968169,0.703058222188236,0.703058222188236, +0.849556063930214,0.849556063930214,0.849411130202946,0.848950862662683,0.848373461300561,0.847756829986696,0.847147292884072,0.846595247621738,0.846195227046778,0.846195227046778, + +00:49:32, +0.213053701576304,0.213053701576304,0.213110964590537,0.213116898696265,0.213083507086345,0.21302662966464,0.212963638584373,0.212910848474435,0.212880966486028,0.212880966486028, +0.213053701576304,0.213053701576304,0.213110964590537,0.213116898696265,0.213083507086345,0.21302662966464,0.212963638584373,0.212910848474435,0.212880966486028,0.212880966486028, +0.238042010947094,0.238042010947094,0.238092893123975,0.238088259245359,0.238041444462409,0.23797008976822,0.237893604341527,0.237830331977623,0.237794698045451,0.237794698045451, +0.28769805396565,0.28769805396565,0.287735316526234,0.287708465271038,0.287633568675767,0.287531959329732,0.28742720479446,0.287341856089255,0.287294035022832,0.287294035022832, +0.361237218710822,0.361237218710822,0.361252104684152,0.361189281576825,0.361069172411978,0.36091890551351,0.360768438277291,0.360646965261017,0.360578918331504,0.360578918331504, +0.457175034151183,0.457175034151183,0.457157063468563,0.457041377617648,0.456855143900969,0.456633844479956,0.45641596779577,0.456239943621864,0.456140391539701,0.456140391539701, +0.573082650707087,0.573082650707087,0.573020552855555,0.572830411415858,0.572551746432644,0.572231896978781,0.571918990336695,0.571662505470779,0.571513267288788,0.571513267288788, +0.705429033069511,0.705429033069511,0.705315731321421,0.70502026404786,0.704615026815434,0.704163870119648,0.703721552107126,0.703346121986248,0.703112328258764,0.703112328258764, +0.849584039674777,0.849584039674777,0.849439134048054,0.848978956574623,0.848401669757803,0.84778516173031,0.847175746632631,0.846623811253988,0.846223869367253,0.846223869367253, + +00:49:33, +0.213168739890533,0.213168739890533,0.21322600320217,0.21323194390711,0.213198563440626,0.213141699383242,0.2130787213351,0.213025941517879,0.212996065196813,0.212996065196813, +0.213168739890533,0.213168739890533,0.21322600320217,0.21323194390711,0.213198563440626,0.213141699383242,0.2130787213351,0.213025941517879,0.212996065196813,0.212996065196813, +0.238155537440214,0.238155537440214,0.238206419105711,0.238201792981469,0.238154991959262,0.238083654043272,0.238007185120468,0.237943925864123,0.237908299174157,0.237908299174157, +0.28780789885711,0.28780789885711,0.287845160095207,0.287818319488944,0.287743442286155,0.287641856804048,0.287537125889798,0.287451796047074,0.287403985447278,0.287403985447278, +0.361340121830196,0.361340121830196,0.361355007028899,0.361292200185902,0.361172119712877,0.361021887847481,0.360871455283201,0.36075001006736,0.360681978647953,0.360681978647953, +0.457266606085313,0.457266606085313,0.457248637993647,0.457132977825716,0.456946786459135,0.456725537720238,0.456507711011533,0.456331727153374,0.456232197807224,0.456232197807224, +0.573157777037814,0.573157777037814,0.5730956888974,0.572905587327069,0.572626983261328,0.572307204802071,0.571994367947451,0.57173794018967,0.571588735058101,0.571588735058101, +0.705482637026594,0.705482637026594,0.705369355252209,0.705073947974486,0.704668795549974,0.704217734519095,0.703775510612337,0.703400160017244,0.703166415319515,0.703166415319515, +0.849612004899835,0.849612004899835,0.849467127362878,0.849007039919273,0.848429867599055,0.847813482804514,0.847204189658593,0.846652364116046,0.846252500884105,0.846252500884105, + +00:49:34, +0.213283771247732,0.213283771247732,0.213341034848693,0.213346982150043,0.213313612828327,0.213256762139214,0.213193797128093,0.213141027607869,0.213111156956604,0.213111156956604, +0.213283771247732,0.213283771247732,0.213341034848693,0.213346982150043,0.213313612828327,0.213256762139214,0.213193797128093,0.213141027607869,0.213111156956604,0.213111156956604, +0.238269053941207,0.238269053941207,0.238319935089747,0.238315316717466,0.238268529456094,0.238197208320027,0.238120755903502,0.23805750975687,0.238021890310361,0.238021890310361, +0.287917728743333,0.287917728743333,0.28795498865734,0.287928158697668,0.287853300884549,0.287751739263425,0.287647031967477,0.287561720985103,0.287513920850752,0.287513920850752, +0.361443004768367,0.361443004768367,0.361457889194518,0.36139509861213,0.361275046822939,0.361124849980323,0.360974452077518,0.360853034653566,0.360785018739438,0.360785018739438, +0.457358154539621,0.457358154539621,0.457340189042464,0.457224554549889,0.457038405517586,0.456817207440581,0.456599430686796,0.45642348712751,0.45632398050777,0.45632398050777, +0.573232880113884,0.573232880113884,0.573170801686102,0.572980739970538,0.572702196796205,0.572382489299563,0.572069722200213,0.571813351523943,0.571664179427354,0.571664179427354, +0.705536222205177,0.705536222205177,0.705422960400439,0.70512761309412,0.704722545439892,0.704271580029981,0.703829450185138,0.703454179078724,0.703220483388077,0.703220483388077, +0.849639959615596,0.849639959615596,0.849495110157635,0.849035112706886,0.848458054834618,0.847841793219659,0.847232621972363,0.846680906218364,0.846281121607821,0.846281121607821, + +00:49:35, +0.213398795633945,0.213398795633945,0.213456059516159,0.213462013411113,0.213428655235484,0.213371817918573,0.213308865949352,0.213256106730389,0.213226241751379,0.213226241751379, +0.213398795633945,0.213398795633945,0.213456059516159,0.213462013411113,0.213428655235484,0.213371817918573,0.213308865949352,0.213256106730389,0.213226241751379,0.213226241751379, +0.238382560441001,0.238382560441001,0.238433441067015,0.238428830444276,0.23838205694382,0.238310752589386,0.238234316681513,0.238171083646736,0.238135471444927,0.238135471444927, +0.288027543623605,0.288027543623605,0.288064802211921,0.288037982896491,0.287963144470223,0.287861606707126,0.287756923026747,0.287671630902588,0.287623841232494,0.287623841232494, +0.361545867534003,0.361545867534003,0.361560751189669,0.361497976864165,0.361377953750817,0.361227791920689,0.361077428668893,0.360956039028284,0.360888038614609,0.360888038614609, +0.457449679530325,0.457449679530325,0.457431716631221,0.457316107806374,0.457130001092537,0.456908853657211,0.456691126837793,0.456515223560518,0.456415739657592,0.456415739657592, +0.573307959954823,0.573307959954823,0.573245891241177,0.573055869365788,0.57277738705682,0.572457750490827,0.572145053114575,0.571888739493218,0.571739600416181,0.571739600416181, +0.70558978862263,0.70558978862263,0.705476546783481,0.705181259424154,0.704776276502614,0.704325406669775,0.703883370843036,0.703508179188234,0.703274532482018,0.703274532482018, +0.849667903832255,0.849667903832255,0.849523082442527,0.8490631749477,0.848486231474777,0.847870092986084,0.847261043584332,0.84670943757138,0.846309731548874,0.846309731548874, + +00:49:36, +0.213513813035237,0.213513813035237,0.213571077190643,0.213577037676391,0.213543690648156,0.213486866707361,0.213423927784898,0.213371178871445,0.213341319567135,0.213341319567135, +0.213513813035237,0.213513813035237,0.213571077190643,0.213577037676391,0.213543690648156,0.213486866707361,0.213423927784898,0.213371178871445,0.213341319567135,0.213341319567135, +0.238496056930538,0.238496056930538,0.238546937028463,0.238542334152843,0.238495574413374,0.238424286842265,0.2383478674454,0.238284647524607,0.238249042568736,0.238249042568736, +0.28813734349722,0.28813734349722,0.288174600758242,0.2881477920847,0.288072973042453,0.287971459134417,0.287866799066865,0.287781525798775,0.287733746591747,0.287733746591747, +0.361648710135763,0.361648710135763,0.361663593023006,0.361600834950655,0.361480840505157,0.361330713677221,0.361180385065967,0.361059023200156,0.360991038282108,0.360991038282108, +0.457541181073623,0.457541181073623,0.457523220776108,0.457407637611361,0.457221573200183,0.457000476386333,0.456782799480742,0.456606936468626,0.456507475272922,0.456507475272922, +0.573383016580127,0.573383016580127,0.573320957582116,0.573130975532319,0.572852554062691,0.572532988395408,0.57222036071011,0.571964104117087,0.571814998044187,0.571814998044187, +0.705643336296302,0.705643336296302,0.705530114418685,0.705234886981958,0.704829988755542,0.704379214455918,0.703937272603518,0.703562160363294,0.703328562618882,0.703328562618882, +0.849695837559989,0.849695837559989,0.849551044227744,0.849091226651938,0.848514397529804,0.847898382114115,0.847289454504879,0.846737958185521,0.846338330717722,0.846338330717722, + +00:49:37, +0.213628823437697,0.213628823437697,0.213686087858242,0.213692054931971,0.213658719052423,0.213601908491641,0.213538982620778,0.213486244017067,0.213456390389894,0.213456390389894, +0.213628823437697,0.213628823437697,0.213686087858242,0.213692054931971,0.213658719052423,0.213601908491641,0.213538982620778,0.213486244017067,0.213456390389894,0.213456390389894, +0.238609543400776,0.238609543400776,0.238660422965055,0.238655827834128,0.238609081855702,0.238537811069598,0.238461408186079,0.238398201381387,0.238362603672683,0.238362603672683, +0.288247128363474,0.288247128363474,0.288284384295597,0.288257586261586,0.288182786600522,0.288081296544571,0.287976660087092,0.287891405672919,0.28784363692776,0.28784363692776, +0.361751532582297,0.361751532582297,0.361766414703172,0.361703672880241,0.361583707094595,0.361433615258555,0.361283321277375,0.361161987177815,0.361094017750567,0.361094017750567, +0.457632659185694,0.457632659185694,0.457614701493295,0.457499143981018,0.457313121856699,0.457092075644131,0.456874448631841,0.45669862586804,0.456599187369975,0.456599187369975, +0.573458050009272,0.573458050009272,0.573396000728385,0.573206058489606,0.572927697833313,0.572608203032826,0.572295645006363,0.57203944541512,0.571890372330956,0.571890372330956, +0.705696865243519,0.705696865243519,0.705583663323375,0.705288495784876,0.704883682216058,0.704433003405834,0.703991155484046,0.703616122621403,0.703382573816188,0.703382573816188, +0.849723760808966,0.849723760808966,0.849578995523461,0.849119267829813,0.848542553009958,0.847926660614061,0.847317854744366,0.846766468071196,0.846366919124809,0.846366919124809, + +00:49:38, +0.213743826827437,0.213743826827437,0.213801091505075,0.21380706516397,0.213773740434391,0.213716943257499,0.213654030443057,0.213601302153308,0.213571454205698,0.213571454205698, +0.213743826827437,0.213743826827437,0.213801091505075,0.21380706516397,0.213773740434391,0.213716943257499,0.213654030443057,0.213601302153308,0.213571454205698,0.213571454205698, +0.238723019842691,0.238723019842691,0.23877389886777,0.238769311479104,0.238722579261768,0.23865132526233,0.238574938894484,0.238511745207994,0.238476154747681,0.238476154747681, +0.288356898221668,0.288356898221668,0.288394152823289,0.288367365426443,0.288292585143717,0.288191118936862,0.288086506086693,0.288001270524275,0.287953512239785,0.287953512239785, +0.361854334882248,0.361854334882248,0.361869216238803,0.361806490661552,0.36168655352776,0.361536496673315,0.36138623731174,0.361264930969885,0.36119697702861,0.36119697702861, +0.457724113882697,0.457724113882697,0.45770615879893,0.457590626931495,0.457404647078241,0.457183651446773,0.456966074307267,0.456790291774949,0.456690875964943,0.456690875964943, +0.573533060261706,0.573533060261706,0.573471020699426,0.573281118257097,0.573002818388154,0.572683394422574,0.572370906022855,0.572114763406859,0.571965723296042,0.571965723296042, +0.705750375481582,0.705750375481582,0.705637193514853,0.705342085850232,0.704937356901517,0.70448677353692,0.704045019502059,0.703670065980036,0.703436566091433,0.703436566091433, +0.849751673589337,0.849751673589337,0.849606936339839,0.849147298491521,0.848570697925483,0.847954928496221,0.847346244313144,0.846794967238803,0.846395496780565,0.846395496780565, + +00:49:39, +0.213858823190589,0.213858823190589,0.213916088117285,0.213922068358526,0.213888754780184,0.213831970991044,0.213769071237825,0.21371635326624,0.213686511000614,0.213686511000614, +0.213858823190589,0.213858823190589,0.213916088117285,0.213922068358526,0.213888754780184,0.213831970991044,0.213769071237825,0.21371635326624,0.213686511000614,0.213686511000614, +0.238836486247274,0.238836486247274,0.238887364727605,0.238882785078764,0.238836066622553,0.238764829411428,0.238688459561561,0.238625278995365,0.238589695784656,0.238589695784656, +0.288466653071109,0.288466653071109,0.288503906340623,0.288477129578573,0.288402368671327,0.288300926310572,0.28819633706494,0.288111120352108,0.288063372527082,0.288063372527082, +0.36195711704425,0.36195711704425,0.361971997638528,0.361909288303213,0.361789379813271,0.361639357930121,0.361489133177681,0.361367854584983,0.361299916124855,0.361299916124855, +0.457815545180771,0.457815545180771,0.457797592709145,0.457682086478922,0.457496148880946,0.457275203810406,0.457057676523179,0.456881934205521,0.456782541074001,0.456782541074001, +0.573608047356851,0.573608047356851,0.573546017514655,0.573356154854218,0.573077915746658,0.572758562584122,0.572446143779083,0.572190058111823,0.572041050958979,0.572041050958979, +0.705803867027773,0.705803867027773,0.705690705010398,0.705395657195325,0.704991012829254,0.70454052486655,0.704098864674975,0.703723990456645,0.703490539462091,0.703490539462091, +0.849779575911242,0.849779575911242,0.849634866687027,0.849175318647245,0.84859883228661,0.847983185770876,0.847374623221548,0.846823455698725,0.846424063695407,0.846424063695407, + +00:49:40, +0.213973812513309,0.213973812513309,0.214031077681037,0.2140370645018,0.214003762075952,0.213946991678405,0.213884104991195,0.213831397341962,0.213801560760729,0.213801560760729, +0.213973812513309,0.213973812513309,0.214031077681037,0.2140370645018,0.214003762075952,0.213946991678405,0.213884104991195,0.213831397341962,0.213801560760729,0.213801560760729, +0.23894994260553,0.23894994260553,0.239000820535572,0.238996248624115,0.238949543929052,0.238878323507871,0.238801970178276,0.23873880273445,0.238703226774554,0.238703226774554, +0.288576392911108,0.288576392911108,0.288613644846908,0.288586878717279,0.28851213718265,0.288410718664986,0.288306153021107,0.288220955155683,0.288173217788911,0.288173217788911, +0.362059879076928,0.362059879076928,0.362074758910965,0.362012065813837,0.36189218595974,0.361742199037581,0.361592008883805,0.361470758031716,0.361402835047909,0.361402835047909, +0.457906953096038,0.457906953096038,0.45788900324005,0.457773522639409,0.457587627280931,0.457366732751157,0.457149255295715,0.456973553175904,0.456874182713304,0.456874182713304, +0.573683011314107,0.573683011314107,0.573620991193463,0.573431168300367,0.573152989928243,0.572833707536913,0.572521358294516,0.572265329549506,0.572116355339272,0.572116355339272, +0.705857339899347,0.705857339899347,0.705744197827267,0.705449209837432,0.705044650016579,0.704594257412076,0.704152691020186,0.703777896068659,0.703544493945614,0.703544493945614, +0.849807467784804,0.849807467784804,0.849662786575158,0.849203328307155,0.848626956103556,0.848011432448297,0.8474029914799,0.846851933461331,0.846452619879736,0.846452619879736, + +00:49:41, +0.214088794781776,0.214088794781776,0.214146060182516,0.214152053579976,0.214118762307864,0.214062005305737,0.213999131689301,0.213946434366593,0.213916603472156,0.213916603472156, +0.214088794781776,0.214088794781776,0.214146060182516,0.214152053579976,0.214118762307864,0.214062005305737,0.213999131689301,0.213946434366593,0.213916603472156,0.213916603472156, +0.239063388908481,0.239063388908481,0.239114266282696,0.23910970210618,0.239063011172276,0.238991807542654,0.238915470735607,0.238852316416216,0.238816747708334,0.238816747708334, +0.28868611774098,0.28868611774098,0.288723368341459,0.288696612841871,0.288621890676986,0.288520495999394,0.288415953954473,0.288330774934272,0.28828304802454,0.28828304802454, +0.362162620988899,0.362162620988899,0.362177500064724,0.362114823202031,0.361994971975769,0.361845020004296,0.361694864438711,0.361573641318684,0.361505733806371,0.361505733806371, +0.457998337644597,0.457998337644597,0.457980390407737,0.457864935429048,0.457679082294293,0.457458238285133,0.457240810640995,0.457065148702229,0.456965800898987,0.456965800898987, +0.573757952152847,0.573757952152847,0.573695941755216,0.573506158614919,0.573228040952304,0.572908829300369,0.572596549588601,0.572340577739376,0.572191636456404,0.572191636456404, +0.705910794113538,0.705910794113538,0.705797671982694,0.705502743793807,0.705098268480781,0.704647971190828,0.704206498555062,0.703831782833483,0.703598429559428,0.703598429559428, +0.849835349220135,0.849835349220135,0.849690696014354,0.849231327481407,0.848655069386524,0.848039668538739,0.847431349098508,0.846880400536975,0.846481165343941,0.846481165343941, + +00:49:42, +0.21420376998219,0.21420376998219,0.214261035607932,0.214267035579259,0.214233755462115,0.214177011859214,0.214114151318299,0.214061464326273,0.214031639121026,0.214031639121026, +0.21420376998219,0.21420376998219,0.214261035607932,0.214267035579259,0.214233755462115,0.214177011859214,0.214114151318299,0.214061464326273,0.214031639121026,0.214031639121026, +0.239176825147167,0.239176825147167,0.239227701960022,0.239223145515997,0.239176468343253,0.23910528150679,0.239028961224552,0.238965820031647,0.238930258576972,0.238930258576972, +0.288795827560044,0.288795827560044,0.288833076823595,0.288806331951663,0.28873162915364,0.28863025831309,0.288525739864324,0.288440579687152,0.288392863233242,0.288392863233242, +0.362265342788771,0.362265342788771,0.362280221108407,0.362217560476392,0.362097737869953,0.361947820838859,0.361797699850993,0.361676504454479,0.361608612408832,0.361608612408832, +0.45808969884253,0.45808969884253,0.458071754228278,0.457956324863911,0.45777051393711,0.457549720428424,0.45733234257512,0.457156720800606,0.457057395647167,0.457057395647167, +0.573832869892421,0.573832869892421,0.573770869219255,0.573581125817224,0.573303068838209,0.572983927893882,0.572671717680759,0.572415802700875,0.57226689432983,0.57226689432983, +0.705964229687556,0.705964229687556,0.705851127493887,0.705556259081681,0.705151868239124,0.70470166622011,0.704260287296952,0.7038856507685,0.703652346320938,0.703652346320938, +0.849863220227334,0.849863220227334,0.849718595014721,0.849259316180142,0.848683172145703,0.848067894052443,0.847459696087665,0.846908856935999,0.846509700098396,0.846509700098396, + +00:49:43, +0.214318738100772,0.214318738100772,0.214376003943516,0.214382010485877,0.21434874152492,0.214292011325034,0.214229163864369,0.214176487207168,0.214146667693495,0.214146667693495, +0.214318738100772,0.214318738100772,0.214376003943516,0.214382010485877,0.21434874152492,0.214292011325034,0.214229163864369,0.214176487207168,0.214146667693495,0.214146667693495, +0.23929025131264,0.23929025131264,0.239341127558609,0.239336578844621,0.239289915433025,0.239218745391306,0.239142441636121,0.239079313571741,0.239043759371459,0.239043759371459, +0.288905522367625,0.288905522367625,0.288942770292641,0.288916036045973,0.288841352611921,0.288740005605374,0.288635510749948,0.288550369413603,0.288502663414293,0.288502663414293, +0.362368044485144,0.362368044485144,0.362382922050609,0.36232027764551,0.362200483650878,0.362050601549854,0.361900515129232,0.361779347447683,0.361711470863876,0.361711470863876, +0.4581810367059,0.4581810367059,0.458163094717726,0.45804769096005,0.457861922225442,0.457641179197098,0.45742385111417,0.457248269487125,0.457148966973939,0.457148966973939, +0.573907764552151,0.573907764552151,0.573845773604898,0.573656069926607,0.573378073605303,0.573059003336822,0.572746862590385,0.572491004453423,0.572342128978983,0.572342128978983, +0.706017646638591,0.706017646638591,0.705904564378037,0.705609755718262,0.705205449308851,0.704755342517207,0.704314057263178,0.70393949989107,0.703706244247526,0.703706244247526, +0.849891080816484,0.849891080816484,0.849746483586352,0.84928729441349,0.848711264391269,0.848096108999638,0.847488032457653,0.84693730266873,0.846538224153461,0.846538224153461, + +00:49:44, +0.214433699123769,0.214433699123769,0.214490965175522,0.21449697828608,0.214463720482515,0.214407003689417,0.214344169313713,0.214291502995462,0.214261689175741,0.214261689175741, +0.214433699123769,0.214433699123769,0.214490965175522,0.21449697828608,0.214463720482515,0.214407003689417,0.214344169313713,0.214291502995462,0.214261689175741,0.214261689175741, +0.239403667395971,0.239403667395971,0.239454543069531,0.239450002083123,0.239403352432652,0.239332199187246,0.239255911961342,0.239192797027512,0.239157250082804,0.239157250082804, +0.289015202163052,0.289015202163052,0.289052448747924,0.289025725124124,0.288951061051145,0.28884973787555,0.288745266610639,0.288660144112912,0.288612448566974,0.288612448566974, +0.362470726086611,0.362470726086611,0.362485602899914,0.362422974717965,0.362303209327122,0.362153362145858,0.362003310282005,0.36188217030687,0.361814309180076,0.361814309180076, +0.458272351250748,0.458272351250748,0.458254411892115,0.458139033733498,0.457953307175328,0.457732614607206,0.457515336274206,0.457339794777858,0.457240514895382,0.457240514895382, +0.573982636151338,0.573982636151338,0.573920654931436,0.573730990962367,0.573453055272904,0.573134055648535,0.572821984336851,0.572566183016413,0.572417340423269,0.572417340423269, +0.706071044983807,0.706071044983807,0.705957982652307,0.705663233720735,0.705259011707181,0.704809000099378,0.704367808471044,0.70399333021853,0.70376012335655,0.70376012335655, +0.849918930997654,0.849918930997654,0.849774361739328,0.849315262191566,0.848739346133383,0.848124313390537,0.847516358218736,0.846965737745482,0.846566737519482,0.846566737519482, + +00:49:45, +0.214548653037446,0.214548653037446,0.214605919290224,0.21461193896614,0.214578692321162,0.214521988938605,0.214459167652553,0.214406511677366,0.214376703553964,0.214376703553964, +0.214548653037446,0.214548653037446,0.214605919290224,0.21461193896614,0.214578692321162,0.214521988938605,0.214459167652553,0.214406511677366,0.214376703553964,0.214376703553964, +0.239517073388245,0.239517073388245,0.239567948483879,0.239563415222589,0.239516779333208,0.23944564288567,0.23936937219126,0.239306270389993,0.23927073070203,0.23927073070203, +0.289124866945658,0.289124866945658,0.289162112188777,0.289135399185444,0.289060754470629,0.288959455122926,0.288855007445696,0.288769903784368,0.288722218690571,0.288722218690571, +0.362573387601754,0.362573387601754,0.3625882636649,0.36252565170233,0.362405914907255,0.362256102635437,0.362106085317876,0.361984973040607,0.361917127366,0.361917127366, +0.458363642493098,0.458363642493098,0.458345705767457,0.45823035320027,0.458044668802788,0.457824026674778,0.457606798071271,0.457431296688857,0.457332039427554,0.457332039427554, +0.574057484709255,0.574057484709255,0.573995513218135,0.573805888943779,0.573528013860308,0.573209084848339,0.572897082939504,0.572641338409214,0.572492528682069,0.572492528682069, +0.706124424740347,0.706124424740347,0.706011382333839,0.705716693106264,0.705312555451311,0.704862638983861,0.704421540937826,0.704047141768193,0.703813983665346,0.703813983665346, +0.849946770780904,0.849946770780904,0.849802229483714,0.84934321952447,0.848767417382195,0.848152507235341,0.847544673381169,0.846994162176552,0.846595240206792,0.846595240206792, + +00:49:46, +0.214663599828092,0.214663599828092,0.214720866273921,0.214726892512351,0.21469365702714,0.214636967058863,0.214574158867136,0.214521513239109,0.214491710814387,0.214491710814387, +0.214663599828092,0.214663599828092,0.214720866273921,0.214726892512351,0.21469365702714,0.214636967058863,0.214574158867136,0.214521513239109,0.214491710814387,0.214491710814387, +0.239630469280563,0.239630469280563,0.239681343792758,0.23967681825412,0.239630196125784,0.239559076477651,0.239482822316932,0.239419733650229,0.239384201220176,0.239384201220176, +0.289234516714781,0.289234516714781,0.289271760614538,0.289245058229264,0.289170432869697,0.289069157346815,0.28896473325442,0.288879648427268,0.288831973784375,0.288831973784375, +0.362676029039149,0.362676029039149,0.362690904354135,0.362628308607169,0.362508600399838,0.362358823027152,0.362208840245405,0.362087755657451,0.362019925430204,0.362019925430204, +0.458454910448955,0.458454910448955,0.458436976359749,0.458321649376359,0.458136007123823,0.457915415415826,0.457698236521387,0.457522775236155,0.457423540586492,0.457423540586492, +0.574132310245152,0.574132310245152,0.574070348484239,0.573880763890095,0.573602949386784,0.573284090955531,0.572972158417664,0.572716470651169,0.572567693774742,0.572567693774742, +0.706177785925331,0.706177785925331,0.706064763439754,0.705770133891987,0.705366080558415,0.704916259187869,0.70447525468078,0.70410093455735,0.703867825191226,0.703867825191226, +0.849974600176275,0.849974600176275,0.849830086829564,0.84937116642229,0.848795478147838,0.848180690544236,0.847572977955188,0.847022575972228,0.846623732225709,0.846623732225709, + +00:49:47, +0.21477853948202,0.21477853948202,0.214835806112932,0.21484183891103,0.214808614586756,0.214751938036476,0.214689142943729,0.214636507666945,0.214606710943254,0.214606710943254, +0.21477853948202,0.21477853948202,0.214835806112932,0.21484183891103,0.214808614586756,0.214751938036476,0.214689142943729,0.214636507666945,0.214606710943254,0.214606710943254, +0.239743855064041,0.239743855064041,0.239794728987292,0.239790211168835,0.239743602801487,0.239672499954281,0.239596262329435,0.239533186799282,0.239497661628298,0.239497661628298, +0.289344151469765,0.289344151469765,0.289381394024548,0.289354702254923,0.289280096247677,0.289178844546535,0.289074444036121,0.288989378040909,0.288941713847681,0.288941713847681, +0.362778650407361,0.362778650407361,0.36279352497618,0.362730945441037,0.362611265813423,0.362461523329552,0.362311575073142,0.362190518165953,0.362122703381239,0.362122703381239, +0.458546155134302,0.458546155134302,0.458528223684966,0.458412922277742,0.458227322154416,0.458006780846341,0.457789651640559,0.457614230435766,0.457515018388218,0.457515018388218, +0.574207112778254,0.574207112778254,0.574145160748964,0.57395561582054,0.573677861871578,0.57335907398938,0.573047210790628,0.572791579761597,0.572642835720619,0.572642835720619, +0.706231128555855,0.706231128555855,0.706118125987147,0.705823556095023,0.705419587045642,0.704969860728595,0.70452894971714,0.704154708603269,0.70392164795148,0.70392164795148, +0.850002419193797,0.850002419193797,0.849857933786915,0.849399102895101,0.848823528440434,0.848208863327395,0.847601271951021,0.847050979142781,0.846652213586537,0.846652213586537, + +00:49:48, +0.214893471985561,0.214893471985561,0.214950738793598,0.214956778148516,0.214923564986334,0.214866901857753,0.214804119868623,0.214751494947148,0.214721703926832,0.214721703926832, +0.214893471985561,0.214893471985561,0.214950738793598,0.214956778148516,0.214923564986334,0.214866901857753,0.214804119868623,0.214751494947148,0.214721703926832,0.214721703926832, +0.239857230729812,0.239857230729812,0.239908104058617,0.239903593957865,0.239856999351437,0.239785913306667,0.239709692219858,0.23964662982823,0.239611111917466,0.239611111917466, +0.289453771209956,0.289453771209956,0.289491012418153,0.289464331261759,0.289389744603903,0.289288516721408,0.289184139790109,0.289099092624597,0.289051438879789,0.289051438879789, +0.362881251714948,0.362881251714948,0.362896125539585,0.362833562212483,0.362713911156555,0.36256420355118,0.362414289809628,0.362293260574654,0.362225461227645,0.362225461227645, +0.458637376565105,0.458637376565105,0.458619447759063,0.458504171920373,0.458318613910528,0.458098122982297,0.45788104344477,0.457705662303684,0.45760647284873,0.45760647284873, +0.57428189232776,0.57428189232776,0.574219950031505,0.574030444754314,0.573752751333909,0.573434033969132,0.573122240077669,0.572866665759794,0.572717954539008,0.572717954539008, +0.706284452648995,0.706284452648995,0.706171469993094,0.705876959732466,0.705473074930123,0.705023443623207,0.704582626064116,0.704208463923196,0.703975451963374,0.703975451963374, +0.850030227843487,0.850030227843487,0.849885770365795,0.849427028952962,0.848851568270091,0.848237025594978,0.847629555378877,0.847079371698469,0.846680684299568,0.846680684299568, + +00:49:49, +0.215008397325072,0.215008397325072,0.215065664302285,0.215071710211168,0.215038508212224,0.214981858509025,0.214919089628131,0.214866475066017,0.21483668975141,0.21483668975141, +0.215008397325072,0.215008397325072,0.215065664302285,0.215071710211168,0.215038508212224,0.214981858509025,0.214919089628131,0.214866475066017,0.21483668975141,0.21483668975141, +0.239970596269025,0.239970596269025,0.240021468997887,0.240016966612362,0.239970385766772,0.239899316525931,0.23982311197931,0.239760062728169,0.239724552078767,0.239724552078767, +0.289563375934705,0.289563375934705,0.289600615794706,0.289573945249121,0.28949937793771,0.289398173870761,0.289293820515702,0.28920879217764,0.289161148880003,0.289161148880003, +0.362983832970462,0.362983832970462,0.362998706052895,0.362936158930044,0.36281653643777,0.362666863700572,0.362516984463396,0.362395982892086,0.362328198977956,0.362328198977956, +0.458728574757311,0.458728574757311,0.458710648597979,0.458595398320191,0.458409882408102,0.458189441839647,0.457972411949986,0.457797070855883,0.45769790398401,0.45769790398401, +0.574356648912848,0.574356648912848,0.574294716351028,0.574105250710595,0.573827617792973,0.573508970914009,0.573197246298034,0.572941728665028,0.572793050249191,0.572793050249191, +0.706337758221803,0.706337758221803,0.706224795474646,0.705930344821388,0.705526544228963,0.705077007888852,0.704636283738894,0.704262200534353,0.704029237244154,0.704029237244154, +0.850058026135348,0.850058026135348,0.849913596576214,0.849454944605921,0.848879597646901,0.848265177357131,0.847657828248954,0.847107753649535,0.846709144375078,0.846709144375078, + +00:49:50, +0.215123315486929,0.215123315486929,0.215180582625378,0.21518663508537,0.215153444250795,0.215096807976645,0.215034052208586,0.214981448009871,0.214951668403298,0.214951668403298, +0.215123315486929,0.215123315486929,0.215180582625378,0.21518663508537,0.215153444250795,0.215096807976645,0.215034052208586,0.214981448009871,0.214951668403298,0.214951668403298, +0.240083951672843,0.240083951672843,0.24013482379627,0.240130329123488,0.240083762038647,0.240012709603211,0.239936521598911,0.239873485490206,0.239837982103304,0.239837982103304, +0.289672965643369,0.289672965643369,0.289710204153561,0.289683544216357,0.289608996248441,0.289507815993925,0.289403486212222,0.289318476699352,0.289270843847633,0.289270843847633, +0.363086394182442,0.363086394182442,0.363101266524645,0.363038735602252,0.362919141665596,0.362769503786252,0.362619659042972,0.362498685126775,0.362430916640696,0.362430916640696, +0.458819749726846,0.458819749726846,0.458801826217631,0.458686601493112,0.458501127663064,0.458280737434326,0.458063757172152,0.457888456108321,0.457789311810021,0.457789311810021, +0.574431382552666,0.574431382552666,0.574369459726678,0.574180033708535,0.573902461267942,0.573583884843206,0.573272229470946,0.573016768496545,0.572868122870427,0.572868122870427, +0.706391045291307,0.706391045291307,0.706278102448831,0.705983711378837,0.705579994959244,0.705130553542653,0.704689922758639,0.704315918453938,0.70408300381104,0.70408300381104, +0.850085814079369,0.850085814079369,0.849941412428172,0.849482849864012,0.848907616580945,0.848293318623984,0.847686090571435,0.847136125006211,0.846737593823331,0.846737593823331, + +00:49:51, +0.215238226457532,0.215238226457532,0.215295493749284,0.215301552757526,0.215268373088439,0.215211750246987,0.215149007596346,0.21509641376505,0.215066639868831,0.215066639868831, +0.215238226457532,0.215238226457532,0.215295493749284,0.215301552757526,0.215268373088439,0.215211750246987,0.215149007596346,0.21509641376505,0.215066639868831,0.215066639868831, +0.240197296932446,0.240197296932446,0.240248168444951,0.240243681482424,0.240197128158229,0.24012609252966,0.2400499210698,0.239986898105468,0.239951401982196,0.239951401982196, +0.289782540335308,0.289782540335308,0.289819777494078,0.289793128162822,0.289718599535441,0.289617443090237,0.289513136878993,0.289428146189051,0.289380523781992,0.289380523781992, +0.363188935359422,0.363188935359422,0.363203806963361,0.36314129223763,0.363021726848552,0.362872123816739,0.362722313556872,0.362601367287236,0.362533614224383,0.362533614224383, +0.458910901489619,0.458910901489619,0.458892980633917,0.458777781455036,0.458592349691318,0.458372009782248,0.458155079127197,0.457979818076933,0.457880696342703,0.457880696342703, +0.574506093266343,0.574506093266343,0.574444180177573,0.57425479376726,0.573977281777961,0.573658775775895,0.573347189615602,0.573091785273565,0.572943172421949,0.572943172421949, +0.706444313874514,0.706444313874514,0.706331390932657,0.706037059421841,0.705633427138027,0.705184080601711,0.704743543140493,0.70436961769913,0.70413675168123,0.70413675168123, +0.850113591685525,0.850113591685525,0.849969217931653,0.849510744737254,0.848935625082289,0.848321449405656,0.847714342356492,0.847164485778712,0.846766032654575,0.846766032654575, + +00:49:52, +0.215353130223302,0.215353130223302,0.215410397660434,0.215416463214062,0.215383294711571,0.215326685306449,0.215263955777788,0.21521137231792,0.215181604134364,0.215181604134364, +0.215353130223302,0.215353130223302,0.215410397660434,0.215416463214062,0.215383294711571,0.215326685306449,0.215263955777788,0.21521137231792,0.215181604134364,0.215181604134364, +0.240310632039028,0.240310632039028,0.240361502935131,0.240357023680367,0.240310484116703,0.240239465296447,0.240163310383131,0.240100300565095,0.240064811706575,0.240064811706575, +0.289892100009888,0.289892100009888,0.289929335815621,0.289902697087876,0.289828187798063,0.289727055159036,0.289622772515347,0.28953780064606,0.2894901886824,0.2894901886824, +0.363291456509926,0.363291456509926,0.363306327377562,0.363243828844691,0.36312429199515,0.362974723800541,0.362824948013605,0.362704029381979,0.362636291737523,0.362636291737523, +0.459002030061517,0.459002030061517,0.458984111862718,0.458868938221841,0.458683548508749,0.458463258899311,0.458246377831026,0.458071156777638,0.457972057597982,0.457972057597982, +0.574580781072979,0.574580781072979,0.57451887772281,0.574329530905873,0.574052079342153,0.573733643731224,0.573422126751176,0.573166779015283,0.573018198922966,0.573018198922966, +0.706497563988409,0.706497563988409,0.706384660943107,0.706090388967405,0.70568684078235,0.705237589083104,0.704797144901575,0.704423298287082,0.704190480871901,0.704190480871901, +0.85014135896378,0.85014135896378,0.84999701309663,0.849538629235653,0.848963623160988,0.848349569712253,0.84774258361428,0.847192835977242,0.846794460879046,0.846794460879046, + +00:49:53, +0.215468026770682,0.215468026770682,0.215525294345279,0.215531366441428,0.215498209106627,0.215441613141449,0.215378896739314,0.215326323654866,0.215296561186274,0.215296561186274, +0.215468026770682,0.215468026770682,0.215525294345279,0.215531366441428,0.215498209106627,0.215441613141449,0.215378896739314,0.215326323654866,0.215296561186274,0.215296561186274, +0.240423956983801,0.240423956983801,0.240474827258024,0.240470355708527,0.24042382990527,0.240352827894759,0.240276689530073,0.240213692860245,0.240178211267593,0.240178211267593, +0.290001644666478,0.290001644666478,0.29003887911756,0.290012250990883,0.28993776103566,0.289836652199668,0.289732393120619,0.289647440069705,0.289599838548178,0.289599838548178, +0.363393957642472,0.363393957642472,0.363408827775758,0.363346345431941,0.363226837113892,0.363077303746161,0.362927562421671,0.362806671419502,0.362738949188618,0.362738949188618, +0.459093135458411,0.459093135458411,0.459075219919893,0.458960071809389,0.458774724131224,0.458554484801391,0.45833765329953,0.458162472226335,0.458063395591762,0.458063395591762, +0.574655445991652,0.574655445991652,0.574593552381456,0.574404245143453,0.574126853979616,0.573808488728315,0.573497040896817,0.57324174974087,0.573093202392662,0.573093202392662, +0.706550795649953,0.706550795649953,0.706437912497143,0.706143700032508,0.705740235909228,0.705291079003888,0.704850728058981,0.704476960234926,0.704244191400204,0.704244191400204, +0.850169115924083,0.850169115924083,0.85002479793306,0.849566503369203,0.848991610827079,0.848377679553865,0.847770814354943,0.847221175611989,0.846822878506966,0.846822878506966, + +00:49:54, +0.215582916086137,0.215582916086137,0.215640183790293,0.215646262426093,0.215613116260065,0.215556533738429,0.215493830467346,0.215441267762295,0.21541151101096,0.21541151101096, +0.215582916086137,0.215582916086137,0.215640183790293,0.215646262426093,0.215613116260065,0.215556533738429,0.215493830467346,0.215441267762295,0.21541151101096,0.21541151101096, +0.240537271757989,0.240537271757989,0.240588141404862,0.240583677558131,0.240537165515144,0.240466180315795,0.24039005850181,0.240327074982089,0.240291600656414,0.240291600656414, +0.290111174304452,0.290111174304452,0.290148407399269,0.29012178987121,0.290047319247592,0.289946234211483,0.289841998694148,0.289757064459319,0.289709473378654,0.289709473378654, +0.363496438765567,0.363496438765567,0.363511308166451,0.363448842007877,0.363329362213273,0.36317986366209,0.363030156789562,0.362909293408299,0.362841586586159,0.362841586586159, +0.459184217696151,0.459184217696151,0.459166304821285,0.459051182233519,0.458865876574592,0.458645687504346,0.458428905548577,0.458253764438902,0.458154710339928,0.458154710339928, +0.574730088041414,0.574730088041414,0.574668204172558,0.574478936499054,0.574201605709421,0.573883310786267,0.573571932071649,0.573316697469474,0.573168182850196,0.573168182850196, +0.706604008876087,0.706604008876087,0.706491145611704,0.706196992634112,0.705793612535654,0.705344550381095,0.704904292629786,0.70453060355977,0.704297883283272,0.704297883283272, +0.850196862576369,0.850196862576369,0.850052572450889,0.849594367147884,0.84901958809059,0.848405778940569,0.847799034588608,0.84724950469313,0.846851285548543,0.846851285548543, + +00:49:55, +0.215697798156155,0.215697798156155,0.215755065981972,0.21576115115455,0.215728016158366,0.215671447083849,0.215608756948329,0.215556204626637,0.215526453594844,0.215526453594844, +0.215697798156155,0.215697798156155,0.215755065981972,0.21576115115455,0.215728016158366,0.215671447083849,0.215608756948329,0.215556204626637,0.215526453594844,0.215526453594844, +0.240650576352836,0.240650576352836,0.240701445366891,0.240696989220422,0.240650490937558,0.240579522550772,0.240503417289545,0.240440446921817,0.240404979864219,0.240404979864219, +0.290220688923189,0.290220688923189,0.290257920660124,0.290231313728231,0.290156862433225,0.290055801193834,0.289951589235279,0.289866673814239,0.289819093173161,0.289819093173161, +0.36359889988771,0.36359889988771,0.363613768558135,0.36355131858099,0.363431867301779,0.363282403556814,0.363132731125763,0.363011895356851,0.362944203938629,0.362944203938629, +0.459275276790568,0.459275276790568,0.459257366582715,0.459142269510055,0.45895700585468,0.458736867024015,0.458520134594018,0.4583450334312,0.458246001858346,0.458246001858346, +0.574804707241295,0.574804707241295,0.574742833115138,0.574553604991704,0.574276334550619,0.573958109924152,0.573646800294772,0.573391622220215,0.573243140314703,0.573243140314703, +0.706657203683725,0.706657203683725,0.706544360303706,0.706250266789153,0.705846970678599,0.705398003231737,0.70495783863104,0.704584228278701,0.70435155653821,0.70435155653821, +0.850224598930561,0.850224598930561,0.850080336660048,0.849622220581661,0.849047554961533,0.84843386788243,0.847827244325392,0.847277823230826,0.84687968201397,0.84687968201397, + +00:49:56, +0.215812672967244,0.215812672967244,0.215869940906832,0.215876032613312,0.215842908788031,0.215786353164197,0.215723676168729,0.215671134234345,0.21564138892437,0.21564138892437, +0.215812672967244,0.215812672967244,0.215869940906832,0.215876032613312,0.215842908788031,0.215786353164197,0.215723676168729,0.215671134234345,0.21564138892437,0.21564138892437, +0.240763870759598,0.240763870759598,0.240814739135375,0.240810290686658,0.240763806163758,0.24069285459092,0.240616765884492,0.24055380867063,0.240518348882205,0.240518348882205, +0.290330188522071,0.290330188522071,0.290367418899508,0.290340822561322,0.290266390591926,0.29016535314608,0.29006116474336,0.289976268133804,0.289928697931035,0.289928697931035, +0.363701341017394,0.363701341017394,0.363716208959294,0.363653775159759,0.36353435238789,0.363384923438809,0.363235285438747,0.363114477273636,0.363046801254504,0.363046801254504, +0.459366312757475,0.459366312757475,0.459348405219987,0.459233333654799,0.459048111987299,0.458828023376218,0.458611340451684,0.45843627921907,0.458337270162864,0.458337270162864, +0.574879303610297,0.574879303610297,0.574817439228192,0.574628250640409,0.574351040522232,0.574032886161021,0.573721645585262,0.573466524012192,0.573318074805295,0.573318074805295, +0.706710380089764,0.706710380089764,0.706597556590043,0.706303522514544,0.70590031035501,0.705451437572801,0.705011366079772,0.704637834408782,0.704405211182105,0.704405211182105, +0.850252324996567,0.850252324996567,0.850108090570455,0.849650063680488,0.849075511449907,0.848461946389498,0.847855443575396,0.847306131235224,0.84690806791343,0.84690806791343, + +00:49:57, +0.215927540505935,0.215927540505935,0.215984808551413,0.215990906788917,0.215957794135584,0.215901251965977,0.215838588115035,0.215786056571891,0.215756316986003,0.215756316986003, +0.215927540505935,0.215927540505935,0.215984808551413,0.215990906788917,0.215957794135584,0.215901251965977,0.215838588115035,0.215786056571891,0.215756316986003,0.215756316986003, +0.240877154969547,0.240877154969547,0.24092802270159,0.240923581948113,0.240877111185006,0.240806176427488,0.240730104277885,0.24066716021975,0.240631707701585,0.240631707701585, +0.290439673100486,0.290439673100486,0.290476902116808,0.290450316369866,0.290375903723069,0.290274890067585,0.290170725217745,0.290085847417362,0.290038287651618,0.290038287651618, +0.363803762163101,0.363803762163101,0.363818629378406,0.363756211752658,0.363636817480073,0.363487423316543,0.363337819736984,0.363217039167119,0.363149378542251,0.363149378542251, +0.459457325612665,0.459457325612665,0.459439420748885,0.459324374683535,0.459139194988238,0.458919156576756,0.458702523137388,0.458527501818336,0.458428515269309,0.458428515269309, +0.574953877167401,0.574953877167401,0.574892022530692,0.574702873464149,0.574425723643261,0.574107639515897,0.573796467962169,0.573541402864478,0.573392986341058,0.573392986341058, +0.706763538111075,0.706763538111075,0.706650734487588,0.706356759827179,0.705953631581813,0.705504853421253,0.70506487499299,0.704691421967054,0.704458847232019,0.704458847232019, +0.850280040784284,0.850280040784284,0.850135834192016,0.849677896454303,0.849103457565698,0.84849001447181,0.84788363234871,0.847334428716461,0.846936443257088,0.846936443257088, + +00:49:58, +0.21604240075878,0.21604240075878,0.216099668902276,0.216105773667921,0.21607267218757,0.216016143475718,0.215953492773756,0.215900971625771,0.215871237766229,0.215871237766229, +0.21604240075878,0.21604240075878,0.216099668902276,0.216105773667921,0.21607267218757,0.216016143475718,0.215953492773756,0.215900971625771,0.215871237766229,0.215871237766229, +0.240990428973972,0.240990428973972,0.241041296056829,0.241036862996074,0.240990405992581,0.240919488051738,0.240843432460969,0.240780501560409,0.240745056313586,0.240745056313586, +0.290549142657826,0.290549142657826,0.290586370311416,0.290559795153249,0.290485401826032,0.290384411957716,0.290280270657792,0.290195411664261,0.290147862334255,0.290147862334255, +0.363906163333307,0.363906163333307,0.363921029823939,0.36385862836815,0.363739262586791,0.363589903198477,0.363440334028931,0.36331958104576,0.363251935810329,0.363251935810329, +0.459548315371911,0.459548315371911,0.459530413185174,0.45941539261203,0.45923025487327,0.459010266641411,0.458793682666923,0.4586187012448,0.458519737193492,0.458519737193492, +0.575028427931562,0.575028427931562,0.574966583041587,0.574777473481881,0.574500383932681,0.574182370007783,0.57387126744452,0.573616258796122,0.573467874941052,0.573467874941052, +0.706816677764508,0.706816677764508,0.70670389401319,0.706409978743926,0.70600693437591,0.705558250794037,0.705118365387675,0.704744990970537,0.704512464704992,0.704512464704992, +0.850307746303593,0.850307746303593,0.850163567534621,0.849705718913034,0.849131393318878,0.84851807213939,0.847911810655407,0.847362715684655,0.846964808055098,0.846964808055098, + +00:49:59, +0.216157253712353,0.216157253712353,0.216214521946004,0.216220633236905,0.216187542930558,0.216131027679971,0.216068390131426,0.216015879382503,0.215986151251559,0.215986151251559, +0.216157253712353,0.216157253712353,0.216214521946004,0.216220633236905,0.216187542930558,0.216131027679971,0.216068390131426,0.216015879382503,0.215986151251559,0.215986151251559, +0.241103692764177,0.241103692764177,0.241154559192402,0.241150133821848,0.241103690577775,0.241032789454949,0.240956750425008,0.24089383268386,0.240858394709452,0.240858394709452, +0.290658597193488,0.290658597193488,0.290695823482726,0.290669258910861,0.290594884900196,0.290493918815845,0.290389801062862,0.290304960873856,0.290257421978298,0.290257421978298, +0.364008544536477,0.364008544536477,0.364023410304355,0.363961025014693,0.363841687716498,0.363692363093061,0.36354282832304,0.363422102918009,0.363354473067188,0.363354473067188, +0.45963928205097,0.45963928205097,0.459621382544601,0.459506387456028,0.459321291658146,0.459101353585945,0.458884819056064,0.458709877514246,0.458610935951202,0.458610935951202, +0.57510295592171,0.57510295592171,0.5750411207798,0.574852050712537,0.574575021409443,0.574257077655653,0.573946044051318,0.573691091826147,0.573542740624316,0.573542740624316, +0.70686979906689,0.70686979906689,0.706757035183676,0.706463179281633,0.706060218754183,0.705611629708072,0.70517183728079,0.704798541436225,0.704566063618041,0.704566063618041, +0.850335441564364,0.850335441564364,0.850191290608148,0.849733531066591,0.849159318719406,0.848546119402248,0.847939978505549,0.847390992149916,0.846993162317599,0.846993162317599, + +00:50:00, +0.216272099353251,0.216272099353251,0.216329367669201,0.216335485482468,0.216302406351135,0.216245904565307,0.216183280174597,0.216130779828625,0.216101057428522,0.216101057428522, +0.216272099353251,0.216272099353251,0.216329367669201,0.216335485482468,0.216302406351135,0.216245904565307,0.216183280174597,0.216130779828625,0.216101057428522,0.216101057428522, +0.24121694633148,0.24121694633148,0.241267812099633,0.241263394416753,0.241216964931897,0.241146080628414,0.24107005816128,0.241007153581368,0.240971722880442,0.240971722880442, +0.290768036706871,0.290768036706871,0.29080526163014,0.290778707642097,0.29070435294495,0.290603410641349,0.290499316432323,0.290414495045508,0.2903669665831,0.2903669665831, +0.364110905781071,0.364110905781071,0.364125770828104,0.364063401700734,0.363944092877639,0.363794803008739,0.363645302627754,0.363524604792309,0.363456990321272,0.363456990321272, +0.459730225665578,0.459730225665578,0.459712328842893,0.459597359231257,0.459412305358602,0.459192417426104,0.458975932320566,0.458801030642441,0.458702111558211,0.458702111558211, +0.575177461156753,0.575177461156753,0.575115635764231,0.574926605175024,0.574649636092474,0.574331762478459,0.57402079780154,0.573765901973553,0.573617583409862,0.573617583409862, +0.706922902035027,0.706922902035027,0.706810158015852,0.706516361457125,0.70611348473349,0.705664990180258,0.705225290689274,0.704852073381093,0.704619643988161,0.704619643988161, +0.850363126576452,0.850363126576452,0.850219003422464,0.849761332924875,0.849187233777227,0.848574156270379,0.847968135909184,0.847419258122335,0.847021506054718,0.847021506054718, + +00:50:01, +0.216386937668091,0.216386937668091,0.216444206058494,0.216450330391235,0.216417262435914,0.21636077411832,0.216298162889847,0.2162456729507,0.216215956283673,0.216215956283673, +0.216386937668091,0.216386937668091,0.216444206058494,0.216450330391235,0.216417262435914,0.21636077411832,0.216298162889847,0.2162456729507,0.216215956283673,0.216215956283673, +0.241330189667216,0.241330189667216,0.241381054769859,0.241376644772125,0.241330229046272,0.241259361563442,0.241183355661079,0.241120464244214,0.241085040817829,0.241085040817829, +0.290877461197382,0.290877461197382,0.290914684753061,0.290888141346356,0.290813805959683,0.290712887433609,0.290608816765547,0.290524014178578,0.290476496148021,0.290476496148021, +0.364213247075538,0.364213247075538,0.364228111403631,0.364165758434713,0.36404647807865,0.363897222953947,0.363747756951506,0.363627086677095,0.363559487581015,0.363559487581015, +0.459821146231451,0.459821146231451,0.459803252095758,0.459688307953426,0.45950329599035,0.459283458177611,0.459067022476166,0.458892160645131,0.458793264030271,0.458793264030271, +0.575251943655572,0.575251943655572,0.575190128013756,0.575001136888226,0.574724228000676,0.57440642449513,0.57409552871414,0.573840689257317,0.573692403316679,0.573692403316679, +0.706975986685702,0.706975986685702,0.706863262526499,0.706569525287206,0.706166732330668,0.70571833222747,0.705278725630043,0.704905586822092,0.704673205832325,0.704673205832325, +0.850390801349701,0.850390801349701,0.850246705987419,0.849789124497773,0.849215138502274,0.848602182753768,0.847996282876346,0.847447513611995,0.847049839276567,0.847049839276567, + +00:50:02, +0.216501768643512,0.216501768643512,0.216559037100529,0.21656516794985,0.216532111171526,0.216475636325626,0.216413038263771,0.216360558735309,0.216330847803586,0.216330847803586, +0.216501768643512,0.216501768643512,0.216559037100529,0.21656516794985,0.216532111171526,0.216475636325626,0.216413038263771,0.216360558735309,0.216330847803586,0.216330847803586, +0.241443422762735,0.241443422762735,0.241494287194438,0.241489884879314,0.241443482912239,0.241372632251359,0.241296642915715,0.241233764663695,0.241198348512905,0.241198348512905, +0.290986870664429,0.290986870664429,0.291024092850899,0.290997560023044,0.290923243943791,0.29082234919201,0.290718302061908,0.290633518272436,0.290586010672426,0.290586010672426, +0.36431556842832,0.36431556842832,0.364330432039373,0.36426809522506,0.36414884332796,0.363999622937112,0.363850191302725,0.363729548580792,0.363661964854842,0.363661964854842, +0.459912043764289,0.459912043764289,0.459894152318886,0.459779233638223,0.459594263569088,0.459374475856174,0.459158089538582,0.458983267538043,0.458884393383116,0.458884393383116, +0.575326403437027,0.575326403437027,0.575264597547225,0.575075645871001,0.574798797152928,0.574481063724569,0.574170236808047,0.57391545369639,0.573767200363731,0.573767200363731, +0.707029053035676,0.707029053035676,0.706916348732379,0.706622670788654,0.706219961562529,0.705771655866562,0.705332142119992,0.70495908177615,0.704726749167483,0.704726749167483, +0.850418465893939,0.850418465893939,0.850274398312852,0.849816905795155,0.849243032904465,0.848630198862384,0.848024419417055,0.84747575862896,0.847078161993245,0.847078161993245, + +00:50:03, +0.216616592266175,0.216616592266175,0.216673860781977,0.216679998144979,0.216646952544625,0.216590491173861,0.216527906282991,0.216475437169057,0.216445731974856,0.216445731974856, +0.216616592266175,0.216616592266175,0.216673860781977,0.216679998144979,0.216646952544625,0.216590491173861,0.216527906282991,0.216475437169057,0.216445731974856,0.216445731974856, +0.241556645609401,0.241556645609401,0.241607509364738,0.241603114729687,0.241556726521153,0.241485892683503,0.241409919916512,0.241347054831124,0.241311645956975,0.241311645956975, +0.291096265107427,0.291096265107427,0.291133485923067,0.291106963671567,0.291032666896675,0.290931795915944,0.290827772320788,0.290743007326455,0.290695510155682,0.290695510155682, +0.364417869847851,0.364417869847851,0.364432732743755,0.364370412080201,0.36425118863399,0.364102002966653,0.363952605689827,0.363831990511818,0.363764422151173,0.363764422151173, +0.460002918279771,0.460002918279771,0.459985029527948,0.45987013630132,0.459685208110493,0.45946547047748,0.459249133523513,0.459074351336887,0.458975499632461,0.458975499632461, +0.57540084051995,0.57540084051995,0.575339044383465,0.575150132142187,0.574873343568084,0.574555680185654,0.574244922102166,0.573990195309699,0.573841974569959,0.573841974569959, +0.707082101101687,0.707082101101687,0.70696941665023,0.70667579797823,0.706273172445866,0.705824961114366,0.705385540175991,0.705012558260174,0.704780274010563,0.704780274010563, +0.850446120218983,0.850446120218983,0.850302080408588,0.849844676826883,0.849270916993706,0.848658204606183,0.84805254554132,0.847503993183285,0.847106474214837,0.847106474214837, + +00:50:04, +0.216731408522764,0.216731408522764,0.216788677089528,0.21679482096331,0.216761786541889,0.216705338649684,0.216642766934145,0.216590308238571,0.216560608784103,0.216560608784103, +0.216731408522764,0.216731408522764,0.216788677089528,0.21679482096331,0.216761786541889,0.216705338649684,0.216642766934145,0.216590308238571,0.216560608784103,0.216560608784103, +0.241669858198596,0.241669858198596,0.241720721272145,0.241716334314624,0.241669959864383,0.241599142851231,0.24152318665481,0.241460334737828,0.24142493314136,0.24142493314136, +0.291205644525794,0.291205644525794,0.291242863968983,0.291216352291339,0.291142074817738,0.291041227604803,0.290937227541571,0.290852481340011,0.290804994597164,0.290804994597164, +0.364520151342556,0.364520151342556,0.364535013525198,0.364472709008549,0.364353514005153,0.36420436305098,0.364055000121222,0.363934412478584,0.363866859478416,0.363866859478416, +0.460093769793558,0.460093769793558,0.460075883738595,0.459961015958368,0.459776129630222,0.459556442057197,0.459340154446638,0.459165412057352,0.459066582794001,0.459066582794001, +0.575475254923153,0.575475254923153,0.57541346854128,0.575224595720592,0.574947867264973,0.57463027389724,0.574319584615379,0.574064914116146,0.573916725954278,0.573916725954278, +0.707135130900451,0.707135130900451,0.707022466296768,0.706728906872669,0.706326364997448,0.705878247987691,0.705438919814892,0.705066016291049,0.70483378037847,0.70483378037847, +0.850473764334636,0.850473764334636,0.850329752284439,0.849872437602803,0.849298790779889,0.848686199995109,0.848080661259133,0.847532217285009,0.847134775951415,0.847134775951415, + +00:50:05, +0.216846217399981,0.216846217399981,0.216903486009896,0.216909636391552,0.216876613150013,0.216820178739777,0.216757620203898,0.216705171930498,0.216675478217966,0.216675478217966, +0.216846217399981,0.216846217399981,0.216903486009896,0.216909636391552,0.216876613150013,0.216820178739777,0.216757620203898,0.216705171930498,0.216675478217966,0.216675478217966, +0.241783060521714,0.241783060521714,0.24183392290806,0.241829543625523,0.241783182933317,0.241712382745914,0.241636443121966,0.241573604375151,0.241538210057395,0.241538210057395, +0.291315008918953,0.291315008918953,0.291352226988069,0.291325725881777,0.291251467706391,0.291150644257988,0.291046667723647,0.290961940312486,0.290914463996248,0.290914463996248, +0.364622412920853,0.364622412920853,0.364637274392113,0.364574986018511,0.364455819449852,0.364306703198497,0.364157374605313,0.364036814489491,0.363969276844975,0.363969276844975, +0.460184598321291,0.460184598321291,0.46016671496646,0.460051872625,0.459867028143915,0.459647390610975,0.459431152323618,0.45925644971511,0.459157642883413,0.459157642883413, +0.57554964666542,0.57554964666542,0.575487870039448,0.575299036625005,0.575022368262403,0.574704844878159,0.574394224366543,0.574139610134611,0.57399145453558,0.57399145453558, +0.707188142448664,0.707188142448664,0.707075497688687,0.706781997488686,0.706379539234022,0.705931516503324,0.705492281053521,0.705119455885635,0.704887268288087,0.704887268288087, +0.850501398250687,0.850501398250687,0.850357413950204,0.849900188132747,0.849326654272893,0.848714185039091,0.848108766580476,0.847560430944158,0.847163067213037,0.847163067213037, + +00:50:06, +0.216961018884554,0.216961018884554,0.217018287529814,0.217024444416437,0.216991432355717,0.21693501143084,0.216872466078933,0.216820028231509,0.216790340263107,0.216790340263107, +0.216961018884554,0.216961018884554,0.217018287529814,0.217024444416437,0.216991432355717,0.21693501143084,0.216872466078933,0.216820028231509,0.216790340263107,0.216790340263107, +0.241896252570168,0.241896252570168,0.241947114263899,0.241942742653796,0.241896395719355,0.241825612358937,0.241749689309349,0.241686863734451,0.241651476696434,0.241651476696434, +0.29142435828633,0.29142435828633,0.291461574979751,0.291435084442303,0.291360845562045,0.291260045874902,0.291156092866409,0.291071384243267,0.291023918352317,0.291023918352317, +0.36472465459115,0.36472465459115,0.364739515352902,0.364677243118487,0.364558104976484,0.364409023417597,0.364259729150494,0.364139196552933,0.364071674259242,0.364071674259242, +0.460275403878594,0.460275403878594,0.460257523227158,0.460142706316831,0.459957903667193,0.459738316154444,0.459522127170098,0.459347464325813,0.459248679916357,0.459248679916357, +0.575624015765514,0.575624015765514,0.575562248896724,0.575373454874188,0.575096846579155,0.574779393147218,0.574468841374489,0.574214283383948,0.574066160332733,0.574066160332733, +0.707241135762998,0.707241135762998,0.70712851084266,0.706835069842972,0.706432695172315,0.70598476667803,0.705545623908684,0.705172877060773,0.704940737756275,0.704940737756275, +0.850529021976912,0.850529021976912,0.850385065415669,0.849927928426535,0.849354507482583,0.848742159748045,0.848136861515315,0.847588634170745,0.847191348009748,0.847191348009748, + +00:50:07, +0.217075812963228,0.217075812963228,0.217133081636038,0.217139245024717,0.217106244145742,0.217049836709597,0.216987304545955,0.216934877128295,0.216905194906209,0.216905194906209, +0.217075812963228,0.217075812963228,0.217133081636038,0.217139245024717,0.217106244145742,0.217049836709597,0.216987304545955,0.216934877128295,0.216905194906209,0.216905194906209, +0.242009434335382,0.242009434335382,0.242060295331093,0.242055931390869,0.242009598213913,0.241938831681703,0.241862925208347,0.241800112807103,0.241764733049842,0.241764733049842, +0.291533692627359,0.291533692627359,0.29157090794346,0.291544427972342,0.29147020838412,0.291369432454952,0.291265502969256,0.291180813131745,0.291133357664757,0.291133357664757, +0.364826876361848,0.364826876361848,0.364841736415961,0.364779480316867,0.364660370593435,0.364511323716667,0.36436206376515,0.364241558677295,0.364174051729603,0.364174051729603, +0.460366186481071,0.460366186481071,0.460348308536284,0.460233517049455,0.460048756215657,0.459829218703218,0.459613079001699,0.459438455905095,0.459339693908471,0.459339693908471, +0.575698362242171,0.575698362242171,0.575636605131838,0.575447850486879,0.575171302233985,0.574853918723199,0.574543435658026,0.574288933882988,0.574140843364579,0.574140843364579, +0.707294110860102,0.707294110860102,0.707181505775337,0.706888123952197,0.706485832829028,0.706037998528552,0.705598948397163,0.70522627983328,0.704994188799873,0.704994188799873, +0.850556635523077,0.850556635523077,0.850412706690606,0.849955658493974,0.849382350418812,0.848770124131874,0.848164946073605,0.847616826974769,0.84721961835158,0.84721961835158, + +00:50:08, +0.217190599622773,0.217190599622773,0.217247868315346,0.217254038203166,0.21722104850685,0.217164654562795,0.217102135591694,0.217049718607568,0.217020042133976,0.217020042133976, +0.217190599622773,0.217190599622773,0.217247868315346,0.217254038203166,0.21722104850685,0.217164654562795,0.217102135591694,0.217049718607568,0.217020042133976,0.217020042133976, +0.2421226058088,0.2421226058088,0.242173466101089,0.242169109828185,0.242122790408423,0.242052040705627,0.24197615081036,0.241913351584495,0.241877979109004,0.241877979109004, +0.291643011941474,0.291643011941474,0.291680225878633,0.291653756471325,0.291579556172036,0.291478803997551,0.291374898031591,0.291290226977313,0.291242781932959,0.291242781932959, +0.36492907824134,0.36492907824134,0.364943937589676,0.364881697622033,0.364762616309087,0.364613604104085,0.364464378457658,0.364343900870955,0.364276409264437,0.364276409264437, +0.460456946144308,0.460456946144308,0.460439070909415,0.460324304838449,0.460139585804891,0.45992009827289,0.459704007834027,0.45952942446857,0.459430684875375,0.459430684875375, +0.575772686114107,0.575772686114107,0.575710938763498,0.575522223481795,0.575245735245629,0.57492842162486,0.57461800723594,0.574363561650537,0.574215503649939,0.574215503649939, +0.707347067756606,0.707347067756606,0.707234482503345,0.70694115983301,0.706538952220843,0.70609121207161,0.705652254535719,0.705279664219951,0.705047621435697,0.705047621435697, +0.85058423889893,0.85058423889893,0.850440337784774,0.849983378344858,0.849410183091419,0.848798078200469,0.848193020265285,0.847645009366216,0.847247878248549,0.847247878248549, + +00:50:09, +0.217305378849979,0.217305378849979,0.217362647554536,0.21736882393858,0.217335845425825,0.217279464977198,0.217216959202897,0.217164552656063,0.217134881933135,0.217134881933135, +0.217305378849979,0.217305378849979,0.217362647554536,0.21736882393858,0.217335845425825,0.217279464977198,0.217216959202897,0.217164552656063,0.217134881933135,0.217134881933135, +0.242235766981878,0.242235766981878,0.242286626565348,0.242282277957203,0.242235972294331,0.242165239422142,0.242089366106807,0.242026580058033,0.241991214865316,0.241991214865316, +0.291752316228116,0.291752316228116,0.291789528784708,0.291763069938687,0.291688888925221,0.291588160502116,0.29148427805282,0.291399625779373,0.291352191156319,0.291352191156319, +0.36503126023801,0.36503126023801,0.365046118882425,0.364983895042359,0.364864842131811,0.364715864588222,0.364566673236388,0.364446223142281,0.364378746872111,0.364378746872111, +0.460547682883871,0.460547682883871,0.460529810362109,0.460415069699372,0.460230392450459,0.460010954879034,0.459794913682669,0.459620370031836,0.459521652832673,0.459521652832673, +0.57584698740001,0.57584698740001,0.575785249810385,0.575596573877625,0.575320145632797,0.575002901870936,0.57469255612699,0.574438166705377,0.574290141207608,0.574290141207608, +0.707400006469115,0.707400006469115,0.707287441043291,0.706994177502037,0.706592053364419,0.706144407323904,0.705705542341091,0.70533303023756,0.705101035680542,0.705101035680542, +0.85061183211421,0.85061183211421,0.850467958707921,0.850011087988966,0.84943800551023,0.848826021963705,0.848221084100283,0.847673181355058,0.847276127710661,0.847276127710661, + +00:50:10, +0.217420150631658,0.217420150631658,0.217477419340427,0.217483602217775,0.217450634889471,0.217394267939597,0.217331775366335,0.217279379260536,0.217249714290435,0.217249714290435, +0.217420150631658,0.217420150631658,0.217477419340427,0.217483602217775,0.217450634889471,0.217394267939597,0.217331775366335,0.217279379260536,0.217249714290435,0.217249714290435, +0.242348917846087,0.242348917846087,0.242399776715349,0.242395435769394,0.2423491438631,0.242278427822696,0.242202571089119,0.242139798219137,0.242104440310192,0.242104440310192, +0.291861605486729,0.291861605486729,0.291898816661129,0.291872368373866,0.291798206643105,0.291697501968067,0.291593643032355,0.291509009537327,0.291461585334237,0.291461585334237, +0.365133422360234,0.365133422360234,0.365148280302578,0.365086072586212,0.36496704806997,0.364818105177438,0.364668948109702,0.364548525499636,0.364481064560988,0.364481064560988, +0.460638396715308,0.460638396715308,0.460620526909904,0.460505811647762,0.460321176167907,0.460101788537207,0.459885796563192,0.459711292610468,0.459612597795947,0.459612597795947, +0.575921266118547,0.575921266118547,0.57585953829116,0.575670901693036,0.575394533414173,0.575077359480139,0.574767082349914,0.574512749066267,0.574364756056356,0.574364756056356, +0.707452927014214,0.707452927014214,0.70734038141176,0.70704717697588,0.706645136276392,0.706197584302109,0.705758811829995,0.705386377902856,0.705154431551178,0.705154431551178, +0.850639415178639,0.850639415178639,0.850495569469779,0.850038787436067,0.849465817685058,0.848853955431446,0.848249137588512,0.847701342951255,0.847304366747906,0.847304366747906, + +00:50:11, +0.217534914954643,0.217534914954643,0.217592183659863,0.217598373027591,0.217565416884615,0.217509063436799,0.2174465840688,0.217394198407766,0.217364539192644,0.217364539192644, +0.217534914954643,0.217534914954643,0.217592183659863,0.217598373027591,0.217565416884615,0.217509063436799,0.2174465840688,0.217394198407766,0.217364539192644,0.217364539192644, +0.242462058392915,0.242462058392915,0.242512916542582,0.242508583256247,0.242462305106207,0.242391605898751,0.242315765748743,0.242253006059242,0.24221765543506,0.24221765543506, +0.291970879716762,0.291970879716762,0.292008089507345,0.291981651776306,0.291907509325124,0.291806828394831,0.291702992969613,0.291618378250586,0.291570964466117,0.291570964466117, +0.365235564616381,0.365235564616381,0.365250421858498,0.36518823026195,0.36506923413192,0.364920325880089,0.364771203085952,0.364650807951373,0.36458336233942,0.36458336233942, +0.460729087654149,0.460729087654149,0.460711220568323,0.46059653069914,0.460411936972762,0.460192599262946,0.459976656491145,0.459802192220027,0.459703519780763,0.459703519780763, +0.575995522288358,0.575995522288358,0.575933804224456,0.575745206946672,0.57546889860842,0.575151794471155,0.574841585923423,0.574587308751942,0.574439348214932,0.574439348214932, +0.707505829408466,0.707505829408466,0.707393303625312,0.707100158271124,0.706698200973379,0.70625074302288,0.705812063019127,0.70543970723257,0.705207809064356,0.705207809064356, +0.850666988101931,0.850666988101931,0.850523170080068,0.850066476695914,0.849493619625702,0.848881878613541,0.848277180739873,0.847729494164753,0.847332595370262,0.847332595370262, + +00:50:12, +0.217649671805788,0.217649671805788,0.217706940499704,0.217713136354886,0.217680191398105,0.217623851455637,0.217561385297106,0.217509010084549,0.217479356626553,0.217479356626553, +0.217649671805788,0.217649671805788,0.217706940499704,0.217713136354886,0.217680191398105,0.217623851455637,0.217561385297106,0.217509010084549,0.217479356626553,0.217479356626553, +0.242575188613865,0.242575188613865,0.242626046038555,0.242621720409265,0.242575456015144,0.242504773641784,0.242428950077143,0.242366203569798,0.242330860231365,0.242330860231365, +0.292080138917669,0.292080138917669,0.292117347322809,0.292090920145456,0.292016796970717,0.291916139781837,0.291812327864013,0.291727731918561,0.291680328551368,0.291680328551368, +0.365337687014811,0.365337687014811,0.365352543558538,0.365290368077922,0.365171400326007,0.36502252670452,0.364873438173483,0.364753070505836,0.364685640215753,0.364685640215753, +0.460819755715905,0.460819755715905,0.460801891352866,0.460687226869008,0.460502674880532,0.46028338707177,0.460067493482057,0.459893068876052,0.459794418802665,0.459794418802665, +0.576069755928063,0.576069755928063,0.576008047628885,0.575819489657152,0.575543241234176,0.575226206862646,0.574916066866206,0.574661845781111,0.574513917702058,0.574513917702058, +0.707558713668411,0.707558713668411,0.707446207700489,0.707153121404328,0.706751247471972,0.70630388350285,0.705865295925158,0.705493018243407,0.705261168236804,0.705261168236804, +0.850694550893782,0.850694550893782,0.850550760548496,0.850094155778248,0.849521411341949,0.848909791519828,0.848305213564252,0.847757635005483,0.847360813587694,0.847360813587694, + +00:50:13, +0.21776442117197,0.21776442117197,0.217821689846837,0.217827892186542,0.217794958416811,0.217738631982963,0.217676179038088,0.217623814277709,0.217594166578976,0.217594166578976, +0.21776442117197,0.21776442117197,0.217821689846837,0.217827892186542,0.217794958416811,0.217738631982963,0.217676179038088,0.217623814277709,0.217594166578976,0.217594166578976, +0.242688308500453,0.242688308500453,0.242739165194791,0.242734847219967,0.242688596581419,0.24261793104329,0.242542124065797,0.242479390742272,0.242444054690565,0.242444054690565, +0.292189383088907,0.292189383088907,0.292226590106977,0.292200173480766,0.292126069579329,0.29202543612852,0.29192164771498,0.29183707054067,0.291789677589404,0.291789677589404, +0.365439789563874,0.365439789563874,0.365454645411045,0.365392486042469,0.365273546660571,0.365124707659068,0.364975653380634,0.364855313171362,0.364787898198325,0.364787898198325, +0.460910400916067,0.460910400916067,0.460892539279017,0.460777900172849,0.460593389906707,0.460374151979178,0.460158307551442,0.459983922594066,0.459885294877182,0.459885294877182, +0.576143967056256,0.576143967056256,0.576082268523034,0.575893749843071,0.575617561310056,0.575300596673252,0.574990525196929,0.574736360172461,0.574588464536433,0.574588464536433, +0.707611579810567,0.707611579810567,0.70749909365381,0.707206066392029,0.706804275788743,0.706357005758629,0.705918510564739,0.705546310952052,0.705314509085228,0.705314509085228, +0.850722103563878,0.850722103563878,0.850578340884756,0.850121824692797,0.849549192843571,0.848937694160129,0.848333236071525,0.847785765483365,0.847389021410151,0.847389021410151, + +00:50:14, +0.217879163040085,0.217879163040085,0.217936431688166,0.217942640509462,0.217909717927622,0.21785340500565,0.217790965278601,0.217738610974085,0.217708969036746,0.217708969036746, +0.217879163040085,0.217879163040085,0.217936431688166,0.217942640509462,0.217909717927622,0.21785340500565,0.217790965278601,0.217738610974085,0.217708969036746,0.217708969036746, +0.242801418044213,0.242801418044213,0.242852274002827,0.242847963679887,0.242801726796555,0.242731078094775,0.242655287706198,0.242592567568144,0.242557238804135,0.242557238804135, +0.292298612229938,0.292298612229938,0.292335817859312,0.292309411781694,0.292235327150408,0.292134717434318,0.292030952521945,0.291946394116335,0.291899011579641,0.291899011579641, +0.365541872271916,0.365541872271916,0.365556727424355,0.365494584163927,0.365375673143943,0.365226868752064,0.365077848715732,0.364957535956281,0.364890136295463,0.364890136295463, +0.461001023270109,0.461001023270109,0.460983164362241,0.460868550626129,0.460684082066759,0.460464894000654,0.460249098714791,0.46007475338957,0.459976148019823,0.459976148019823, +0.576218155691506,0.576218155691506,0.576156466925467,0.575967987523001,0.575691858854649,0.575374963921588,0.575064960934231,0.574810851944656,0.574662988736734,0.574662988736734, +0.707664427851432,0.707664427851432,0.70755196150177,0.707258993250746,0.706857285940239,0.706410109806806,0.705971706954499,0.705599585375168,0.705367831626311,0.705367831626311, +0.85074964612189,0.85074964612189,0.85060591109853,0.850149483449276,0.849576964140331,0.848965586544256,0.848361248271551,0.847813885608304,0.847417218847573,0.847417218847573, + +00:50:15, +0.217993897397052,0.217993897397052,0.218051166010618,0.218057381310569,0.218024469917452,0.217968170510595,0.217905744005524,0.217853400160543,0.217823763986718,0.217823763986718, +0.217993897397052,0.217993897397052,0.218051166010618,0.218057381310569,0.218024469917452,0.217968170510595,0.217905744005524,0.217853400160543,0.217823763986718,0.217823763986718, +0.242914517236693,0.242914517236693,0.242965372454217,0.242961069780572,0.24291484665209,0.242844214787764,0.242768440989854,0.242705734038912,0.242670412563564,0.242670412563564, +0.292407826340229,0.292407826340229,0.292445030579278,0.2924186350477,0.292344569683406,0.292243983698674,0.292140242284339,0.292055702644982,0.292008330521503,0.292008330521503, +0.365643935147271,0.365643935147271,0.365658789606799,0.36559666245062,0.365477779784447,0.365329009991828,0.365180024187099,0.365059738868913,0.36499235451549,0.36499235451549, +0.461091622793487,0.461091622793487,0.461073766617984,0.460959178244293,0.46077475137614,0.460555613151658,0.46033986698758,0.46016556127805,0.460066978246077,0.460066978246077, +0.57629232185236,0.57629232185236,0.576230642854723,0.57604220271549,0.575766133886523,0.575449308626245,0.575139374096731,0.574885321116333,0.574737490321612,0.574737490321612, +0.707717257807482,0.707717257807482,0.707604811260846,0.707311901996972,0.70691027794299,0.706463195663948,0.706024885111045,0.705652841529396,0.705421135876715,0.705421135876715, +0.850777178577479,0.850777178577479,0.850633471199486,0.850177132057388,0.849604725241973,0.848993468682006,0.848389250174177,0.847841995390194,0.847445405909882,0.847445405909882, + +00:50:16, +0.21810862422981,0.21810862422981,0.218165892801141,0.218172114576808,0.218139214373233,0.218082928484713,0.218020515205755,0.217968181823966,0.21793855141577,0.21793855141577, +0.21810862422981,0.21810862422981,0.218165892801141,0.218172114576808,0.218139214373233,0.218082928484713,0.218020515205755,0.217968181823966,0.21793855141577,0.21793855141577, +0.243027606069454,0.243027606069454,0.243078460540527,0.243074165513588,0.243027956139577,0.242957341113795,0.242881583908289,0.242818890146086,0.242783575960357,0.242783575960357, +0.29251702541925,0.29251702541925,0.292554228266345,0.29252784327825,0.292453797177781,0.292353234921037,0.292249517001603,0.292164996126042,0.292117634414416,0.292117634414416, +0.365745978198267,0.365745978198267,0.365760831966698,0.365698720910865,0.365579866590395,0.365431131386674,0.365282179803047,0.365161921917572,0.365094552866718,0.365094552866718, +0.461182199501636,0.461182199501636,0.461164346061673,0.461049783042769,0.460865397850285,0.460646309447637,0.460430612385264,0.460256346274971,0.460157785571417,0.460157785571417, +0.576366465557342,0.576366465557342,0.576304796329318,0.576116395439061,0.57584038642422,0.575523630805792,0.575213764703021,0.574959767706108,0.574811969309695,0.574811969309695, +0.707770069695168,0.707770069695168,0.707657642947489,0.70736479264718,0.706963251813501,0.7065162633466,0.70607804505096,0.705706079431354,0.70547442185308,0.70547442185308, +0.85080470094029,0.85080470094029,0.850661021197279,0.85020477052682,0.849632476158233,0.849021340583162,0.848417241789239,0.847870094838913,0.84747358260699,0.84747358260699, + +00:50:17, +0.218223343525321,0.218223343525321,0.218280612046705,0.218286840295146,0.21825395128192,0.218197678914943,0.218135278866216,0.218082955951261,0.218053331310798,0.218053331310798, +0.218223343525321,0.218223343525321,0.218280612046705,0.218286840295146,0.21825395128192,0.218197678914943,0.218135278866216,0.218082955951261,0.218053331310798,0.218053331310798, +0.243140684534076,0.243140684534076,0.243191538253341,0.243187250870512,0.243141055250583,0.243070457064422,0.242994716453042,0.242932035881193,0.242896728986035,0.242896728986035, +0.292626209466476,0.292626209466476,0.292663410919989,0.292637036472813,0.292563009632995,0.292462471100857,0.292358776673177,0.292274274558949,0.292226923257811,0.292226923257811, +0.365848001433223,0.365848001433223,0.365862854512365,0.365800759552972,0.365681933570097,0.365533232944908,0.365384315571882,0.365264085110561,0.365196731357452,0.365196731357452, +0.461272753409974,0.461272753409974,0.461254902708719,0.461140365036966,0.460956021504608,0.460736982904017,0.460521334923281,0.46034710839578,0.460248570011295,0.460248570011295, +0.57644058682495,0.57644058682495,0.576378927367744,0.576190565712215,0.575914616486259,0.575597930478771,0.575288132771672,0.575034191732572,0.574886425719586,0.574886425719586, +0.707822863530923,0.707822863530923,0.707710456578132,0.707417665217822,0.707016207568256,0.706569312871284,0.706131186790808,0.705759299097639,0.705527689572023,0.705527689572023, +0.850832213219957,0.850832213219957,0.850688561101551,0.850232398867248,0.849660216898832,0.849049202257496,0.848445223126557,0.847898183964327,0.847501748948794,0.847501748948794, + +00:50:18, +0.218338055270568,0.218338055270568,0.2183953237343,0.21840155845257,0.218368680630489,0.218312421788243,0.218250034973847,0.218197722529354,0.218168103658724,0.218168103658724, +0.218338055270568,0.218338055270568,0.2183953237343,0.21840155845257,0.218368680630489,0.218312421788243,0.218250034973847,0.218197722529354,0.218168103658724,0.218168103658724, +0.243253752622151,0.243253752622151,0.243304605584257,0.243300325842939,0.243254143976693,0.243183562631213,0.243107838615666,0.243045171235775,0.243009871632132,0.243009871632132, +0.292735378481386,0.292735378481386,0.292772578539688,0.292746214630862,0.292672207048512,0.292571692237591,0.292468021298509,0.292383537943145,0.292336197051124,0.292336197051124, +0.36595000486045,0.36595000486045,0.365964857252106,0.365902778385243,0.36578398073185,0.365635314674827,0.3654864315019,0.365366228456178,0.36529888999599,0.36529888999599, +0.4613632845339,0.4613632845339,0.46134543657451,0.461230924242275,0.461046622354508,0.460827633536203,0.46061203461705,0.460437847655908,0.460339331581147,0.460339331581147, +0.576514685673659,0.576514685673659,0.576453035988471,0.576264713553428,0.575988824091137,0.575672207663703,0.575362478321228,0.575108593214293,0.574960859569867,0.574960859569867, +0.707875639331158,0.707875639331158,0.707763252169185,0.707470519725327,0.707069145223717,0.706622344254503,0.70618431034713,0.705812500544827,0.705580939050141,0.705580939050141, +0.850859715426099,0.850859715426099,0.850716090921931,0.850260017088337,0.849687947473477,0.849077053714765,0.848473194195939,0.84792626277629,0.84752990494518,0.84752990494518, + +00:50:19, +0.218452759452552,0.218452759452552,0.218510027850939,0.218516269036089,0.218483402405936,0.218427157091595,0.218364783515612,0.218312481545196,0.218282868446487,0.218282868446487, +0.218452759452552,0.218452759452552,0.218510027850939,0.218516269036089,0.218483402405936,0.218427157091595,0.218364783515612,0.218312481545196,0.218282868446487,0.218282868446487, +0.243366810325286,0.243366810325286,0.243417662524887,0.243413390422478,0.243367222309504,0.243296657805752,0.24322095038773,0.243158296201388,0.243123003890199,0.243123003890199, +0.292844532463463,0.292844532463463,0.292881731124923,0.292855377751876,0.292781389423804,0.292680898330699,0.292577250877051,0.292492786278071,0.292445455793794,0.292445455793794, +0.366051988488252,0.366051988488252,0.366066840194218,0.36600477741597,0.365886008083945,0.365737376584721,0.36558852760139,0.365468351962712,0.365401028790619,0.365401028790619, +0.461453792888795,0.461453792888795,0.46143594767442,0.461321460674068,0.461137200415362,0.460918261359587,0.460702711481971,0.460528564070763,0.460430070296388,0.460430070296388, +0.576588762121923,0.576588762121923,0.576527122209943,0.576338838981155,0.576063009257324,0.575746462379084,0.575436801370212,0.575182972169814,0.575035270879094,0.575035270879094, +0.707928397112259,0.707928397112259,0.707816029737035,0.707523356186103,0.707122064796324,0.706675357512736,0.706237415736446,0.70586568378947,0.705634170304007,0.705634170304007, +0.850887207568325,0.850887207568325,0.850743610668036,0.850287625199734,0.849715667891863,0.849104894964715,0.84850115500718,0.84795433128464,0.847558050606017,0.847558050606017, + +00:50:20, +0.218567456058299,0.218567456058299,0.218624724383653,0.218630972032732,0.21859811659528,0.218541884811999,0.218479524478495,0.218427232985755,0.21839762566105,0.21839762566105, +0.218567456058299,0.218567456058299,0.218624724383653,0.218630972032732,0.21859811659528,0.218541884811999,0.218479524478495,0.218427232985755,0.21839762566105,0.21839762566105, +0.243479857635106,0.243479857635106,0.24353070906686,0.243526444600752,0.24348029024063,0.243409742579638,0.243334051760819,0.243271410769606,0.2432361257518,0.2432361257518, +0.292953671412195,0.292953671412195,0.292990868675184,0.292964525835338,0.292890556758344,0.292790089379647,0.292686465408256,0.292602019563177,0.292554699485265,0.292554699485265, +0.366153952324923,0.366153952324923,0.366168803346989,0.366106756653438,0.365988015634664,0.365839418682869,0.365690603878632,0.365570455638443,0.365503147749621,0.365503147749621, +0.461544278490022,0.461544278490022,0.461526436023802,0.461411974347699,0.461227755702531,0.461008866389537,0.460793365533427,0.460619257655738,0.460520786172416,0.460520786172416, +0.576662816188168,0.576662816188168,0.576601186050581,0.576412942013824,0.57613717200327,0.575820694643389,0.575511101937123,0.575257328617656,0.575109659665798,0.575109659665798, +0.707981136890595,0.707981136890595,0.707868789298049,0.707576174616536,0.707174966302497,0.706728352662441,0.706290502975252,0.7059188488481,0.705687383350174,0.705687383350174, +0.850914689656228,0.850914689656228,0.850771120349469,0.850315223211078,0.849743378163673,0.849132726017077,0.848529105570061,0.847982389499205,0.847586185941164,0.847586185941164, + +00:50:21, +0.218682145074855,0.218682145074855,0.218739413319497,0.218745667429551,0.218712823185561,0.218656604936478,0.218594257849502,0.218541976838024,0.218512375289396,0.218512375289396, +0.218682145074855,0.218682145074855,0.218739413319497,0.218745667429551,0.218712823185561,0.218656604936478,0.218594257849502,0.218541976838024,0.218512375289396,0.218512375289396, +0.243592894543248,0.243592894543248,0.243643745201818,0.2436394883694,0.243593347761698,0.243522816944485,0.243447142726532,0.243384514932015,0.243349237208517,0.243349237208517, +0.293062795327075,0.293062795327075,0.293099991189961,0.293073658880733,0.292999709051611,0.292899265383903,0.292795664891587,0.292711237797914,0.292663928124986,0.292663928124986, +0.366255896378752,0.366255896378752,0.366270746718702,0.366208716105925,0.366090003392284,0.365941440977547,0.365792660341901,0.365672539491645,0.36560524688127,0.36560524688127, +0.461634741352924,0.461634741352924,0.461616901637991,0.461502465278502,0.461318288231357,0.461099448641408,0.46088399678678,0.460709928426207,0.460611479224611,0.460611479224611, +0.576736847890799,0.576736847890799,0.576675227528784,0.576487022669841,0.576211312347398,0.575894904475065,0.575585380040435,0.575331662576314,0.575184025948491,0.575184025948491, +0.70803385868251,0.70803385868251,0.707921530868573,0.70762897503299,0.707227849758631,0.706781329720053,0.706343572080024,0.705971995737226,0.705740578205172,0.705740578205172, +0.850942161699391,0.850942161699391,0.850798619975821,0.850342811131993,0.849771078298575,0.84916054688157,0.848557045894351,0.848010437429798,0.847614310960465,0.847614310960465, + +00:50:22, +0.218796826489287,0.218796826489287,0.218854094645546,0.218860355213617,0.218827522163838,0.218771317452077,0.218708983615658,0.218656713089014,0.21862711731853,0.21862711731853, +0.218796826489287,0.218796826489287,0.218854094645546,0.218860355213617,0.218827522163838,0.218771317452077,0.218708983615658,0.218656713089014,0.21862711731853,0.21862711731853, +0.243705921041364,0.243705921041364,0.243756770921418,0.243752521720077,0.243706394864353,0.243635880891921,0.243560223276482,0.243497608680218,0.243462338251945,0.243462338251945, +0.293171904207599,0.293171904207599,0.293209098668749,0.293182776887553,0.293108846303088,0.293008426342941,0.292904849326505,0.292820440981741,0.292773141712411,0.292773141712411, +0.366357820658015,0.366357820658015,0.366372670317629,0.3663106557817,0.366191971365069,0.366043443477019,0.36589469699946,0.365774603530582,0.36570732619383,0.36570732619383, +0.461725181492828,0.461725181492828,0.461707344532305,0.461592933481795,0.461408798017164,0.461190008130531,0.460974605257377,0.460800576397524,0.460702149468333,0.460702149468333, +0.576810857248199,0.576810857248199,0.576749246662925,0.576561080967589,0.576285430308111,0.575969091892538,0.5756596356986,0.575405974064263,0.575258369745657,0.575258369745657, +0.708086562504327,0.708086562504327,0.707974254464928,0.707681757451809,0.707280715181104,0.706834288701988,0.706396623067216,0.706025124473336,0.705793754885509,0.705793754885509, +0.850969623707381,0.850969623707381,0.850826109556669,0.85037038897209,0.849798768306225,0.849188357567899,0.848584975989805,0.848038475086218,0.847642425673752,0.847642425673752, + +00:50:23, +0.218911500288682,0.218911500288682,0.218968768348896,0.218975035372025,0.218942213517194,0.21888602234586,0.218823701764012,0.218771441725759,0.218741851735476,0.218741851735476, +0.218911500288682,0.218911500288682,0.218968768348896,0.218975035372025,0.218942213517194,0.21888602234586,0.218823701764012,0.218771441725759,0.218741851735476,0.218741851735476, +0.243818937121123,0.243818937121123,0.243869786217335,0.243865544644451,0.243819431540252,0.243748934413591,0.243673293402299,0.243610692005831,0.243575428873695,0.243575428873695, +0.293280998053266,0.293280998053266,0.29331819111105,0.293291879855293,0.293217968512263,0.293117572256239,0.293014018712482,0.292929629114118,0.292882340246996,0.292882340246996, +0.366459725170985,0.366459725170985,0.366474574152035,0.366412575689024,0.366293919561278,0.366145426189543,0.365996713859566,0.36587664776351,0.365809385695558,0.365809385695558, +0.461815598925039,0.461815598925039,0.461797764722041,0.461683378972877,0.461499285075256,0.461280544872223,0.461065190960544,0.460891201585026,0.460792796918926,0.460792796918926, +0.576884844278723,0.576884844278723,0.576823243471356,0.576635116925426,0.576359525903785,0.576043256914211,0.575733868930045,0.57548026309995,0.575332691075758,0.575332691075758, +0.708139248372349,0.708139248372349,0.708026960103418,0.707734521889314,0.707333562586268,0.706887229624637,0.706449655953261,0.706078235072896,0.705846913407673,0.705846913407673, +0.850997075689756,0.850997075689756,0.850853589101578,0.850397956740967,0.849826448196267,0.849216158085757,0.848612895866167,0.848066502478253,0.847670530090844,0.847670530090844, + +00:50:24, +0.219026166460149,0.219026166460149,0.219083434416665,0.219089707891888,0.219056897232731,0.219000719604914,0.218938412281633,0.218886162735315,0.218856578527283,0.218856578527283, +0.219026166460149,0.219026166460149,0.219083434416665,0.219089707891888,0.219056897232731,0.219000719604914,0.218938412281633,0.218886162735315,0.218856578527283,0.218856578527283, +0.243931942774207,0.243931942774207,0.243982791081255,0.243978557134206,0.243932457781069,0.243861977501154,0.243786353095628,0.243723764900486,0.243688509065392,0.243688509065392, +0.293390076863582,0.293390076863582,0.293427268516366,0.293400967783453,0.293327075678627,0.293226703123279,0.293123173048988,0.293038802194511,0.292991523728203,0.292991523728203, +0.366561609925925,0.366561609925925,0.366576458230177,0.366514475836149,0.366395847989163,0.366247389123367,0.366098710930469,0.36597867219868,0.365911425394703,0.365911425394703, +0.461905993664846,0.461905993664846,0.46188816222248,0.461773801767027,0.46158974942092,0.46137105888178,0.461155753911589,0.460981804004032,0.460883421591713,0.460883421591713, +0.576958809000707,0.576958809000707,0.576897217972404,0.576709130561688,0.576433599152775,0.576117399558462,0.575808079753174,0.575554529701803,0.575406989957233,0.575406989957233, +0.708191916302856,0.708191916302856,0.708079647800322,0.707787268361805,0.707386391990457,0.706940152504374,0.70650267075457,0.70613132755235,0.705900053788129,0.705900053788129, +0.851024517656059,0.851024517656059,0.850881058620101,0.850425514448209,0.849854117978331,0.849243948444825,0.848640805533164,0.848094519615676,0.847698624221546,0.847698624221546, + +00:50:25, +0.219140824990818,0.219140824990818,0.219198092835991,0.219204372760341,0.219171573297572,0.219115409216346,0.219053115155611,0.219000876104756,0.218971297681018,0.218971297681018, +0.219140824990818,0.219140824990818,0.219198092835991,0.219204372760341,0.219171573297572,0.219115409216346,0.219053115155611,0.219000876104756,0.218971297681018,0.218971297681018, +0.244044937992314,0.244044937992314,0.244095785504882,0.244091559181041,0.244045473578491,0.243975010146283,0.243899402348127,0.243836827355832,0.243801578818676,0.243801578818676, +0.293499140638056,0.293499140638056,0.293536330884207,0.293510040671536,0.293436167801676,0.293335818943547,0.293232312335502,0.29314796022239,0.293100692155498,0.293100692155498, +0.366663474931088,0.366663474931088,0.366678322560304,0.366616356231322,0.366497756656966,0.366349332286734,0.366200688220408,0.366080676844331,0.366013445299506,0.366013445299506, +0.461996365727521,0.461996365727521,0.461978537048884,0.461864201879508,0.461680191069424,0.461461550174482,0.461246294125803,0.461072383669842,0.460974023502,0.460974023502, +0.577032751432461,0.577032751432461,0.576971170184373,0.576783121894688,0.576507650073411,0.576191519843647,0.575882268186369,0.575628773888222,0.575481266408497,0.575481266408497, +0.708244566312107,0.708244566312107,0.7081323175719,0.707839996885561,0.70743920340998,0.706993057357546,0.706555667487531,0.706184401928122,0.70595317604332,0.70595317604332, +0.851051949615819,0.851051949615819,0.850908518121776,0.850453062103389,0.849881777662033,0.849271728654768,0.848668705000514,0.848122526508249,0.847726708075649,0.847726708075649, + +00:50:26, +0.21925547586784,0.21925547586784,0.219312743594032,0.21931902996454,0.219286241698862,0.219230091167284,0.219167810373057,0.21911558182118,0.219086009183771,0.219086009183771, +0.21925547586784,0.21925547586784,0.219312743594032,0.21931902996454,0.219286241698862,0.219230091167284,0.219167810373057,0.21911558182118,0.219086009183771,0.219086009183771, +0.244157922767157,0.244157922767157,0.244208769479932,0.244204550776668,0.244158478924222,0.244088032340667,0.24401244115147,0.24394987936353,0.243914638125205,0.243914638125205, +0.293608189376201,0.293608189376201,0.293645378214086,0.29361909851905,0.293545244880909,0.293444919716534,0.293341436571504,0.293257103197229,0.293209845528352,0.293209845528352, +0.366765320194722,0.366765320194722,0.366780167150657,0.366718216882778,0.366599645572922,0.366451255687876,0.366302645737618,0.366182661708698,0.366115445418201,0.366115445418201, +0.462086715128314,0.462086715128314,0.462068889216496,0.461954579325563,0.46177061003602,0.461552018765589,0.461336811618458,0.461162940597738,0.461064602665075,0.461064602665075, +0.577106671592272,0.577106671592272,0.577045100125543,0.576857090942713,0.576581678684002,0.576265617788097,0.575956434247986,0.575702995677588,0.575555520447941,0.575555520447941, +0.70829719841634,0.70829719841634,0.708184969434388,0.707892707476837,0.707491996861128,0.707045944200483,0.706608646168511,0.706237458216612,0.706006280189667,0.706006280189667, +0.851079371578555,0.851079371578555,0.850935967616131,0.850480599716067,0.849909427256979,0.849299498725241,0.84869659427792,0.848150523165719,0.847754781662933,0.847754781662933, + +00:50:27, +0.219370119078388,0.219370119078388,0.21942738667797,0.219433679491664,0.219400902423768,0.219344765444877,0.219282497921102,0.219230279871705,0.21920071302265,0.21920071302265, +0.219370119078388,0.219370119078388,0.21942738667797,0.219433679491664,0.219400902423768,0.219344765444877,0.219282497921102,0.219230279871705,0.21920071302265,0.21920071302265, +0.244270897090462,0.244270897090462,0.244321742998137,0.244317531912818,0.244271473809979,0.24420104407601,0.244125469497346,0.244062920915258,0.244027686976647,0.244027686976647, +0.293717223077535,0.293717223077535,0.293754410505518,0.293728141325507,0.293654306915833,0.293554005441735,0.293450545756482,0.293366231118508,0.293318983846239,0.293318983846239, +0.366867145725066,0.366867145725066,0.366881992009469,0.366820057798747,0.366701514745256,0.36655315933502,0.366404583490322,0.366284626800004,0.366217425759013,0.366217425759013, +0.46217704188246,0.46217704188246,0.462159218740541,0.462044934120418,0.461861006335937,0.461642464670343,0.461427306404807,0.461253474802983,0.461155159096207,0.461155159096207, +0.577180569498404,0.577180569498404,0.577119007814172,0.576931037724029,0.57665568500283,0.576339693410121,0.576030577956359,0.575777195088254,0.575629752093933,0.575629752093933, +0.70834981263177,0.70834981263177,0.708237603404003,0.707945400151871,0.707544772360168,0.707098813049491,0.706661606813857,0.7062904964342,0.706059366243572,0.706059366243572, +0.851106783553771,0.851106783553771,0.850963407112678,0.85050812729579,0.84993706677276,0.849327258665884,0.848724473375071,0.848178509597821,0.847782844993164,0.847782844993164, + +00:50:28, +0.219484754609653,0.219484754609653,0.219542022075004,0.219548321328909,0.219515555459475,0.219459432036295,0.219397177786901,0.219344970243471,0.219315409184789,0.219315409184789, +0.219484754609653,0.219484754609653,0.219542022075004,0.219548321328909,0.219515555459475,0.219459432036295,0.219397177786901,0.219344970243471,0.219315409184789,0.219315409184789, +0.244383860953973,0.244383860953973,0.244434706051246,0.244430502581231,0.244384458227495,0.24431404534403,0.24423848737746,0.244175952002708,0.244140725364689,0.244140725364689, +0.293826241741578,0.293826241741578,0.293863427758026,0.293837169090424,0.293763353905954,0.29366307611865,0.293559639889925,0.293475343985708,0.293428107108639,0.293428107108639, +0.366968951530351,0.366968951530351,0.366983797144965,0.36692187898745,0.366803364182189,0.366655043236381,0.366506501486739,0.366386572126467,0.366319386330159,0.366319386330159, +0.462267346005174,0.462267346005174,0.462249525636226,0.462135266279278,0.461951379984391,0.461732887903968,0.461517778500086,0.461343986300822,0.461245692810647,0.461245692810647, +0.577254445169098,0.577254445169098,0.577192893268493,0.577004962256877,0.576729669048156,0.576413746728004,0.576104699329799,0.575851372138553,0.575703961364817,0.575703961364817, +0.708402408974593,0.708402408974593,0.708290219496939,0.707998074926875,0.707597529923346,0.707151663920854,0.706714549439893,0.706343516597244,0.706112434221413,0.706112434221413, +0.851134185550959,0.851134185550959,0.850990836620919,0.850535644852093,0.849964696218954,0.849355008486325,0.848752342301646,0.848206485814277,0.847810898076094,0.847810898076094, + +00:50:29, +0.21959938244885,0.21959938244885,0.219656649772358,0.219662955463495,0.219630200793191,0.219574090928731,0.219511849957626,0.219459652923636,0.219430097657339,0.219430097657339, +0.21959938244885,0.21959938244885,0.219656649772358,0.219662955463495,0.219630200793191,0.219574090928731,0.219511849957626,0.219459652923636,0.219430097657339,0.219430097657339, +0.244496814349445,0.244496814349445,0.244547658631019,0.244543462773668,0.244497432168519,0.244427036136461,0.24435149478353,0.244288972617586,0.244253753281032,0.244253753281032, +0.293935245367858,0.293935245367858,0.293972429971134,0.293946181813322,0.293872385850787,0.293772131746782,0.293668718971327,0.293584441798318,0.293537215315035,0.293537215315035, +0.367070737618798,0.367070737618798,0.367085582565362,0.367023680457101,0.36690519389193,0.366756907400171,0.366608399735076,0.366488497696297,0.366421327139849,0.366421327139849, +0.462357627511653,0.462357627511653,0.46233980991874,0.462225575817334,0.462041730996576,0.461823288481669,0.461608227919512,0.461434475106482,0.461336203823628,0.461336203823628, +0.57732829862257,0.57732829862257,0.577266756506716,0.577078864559477,0.576803630838218,0.576487777760007,0.576178798386593,0.575925526846794,0.575778148278915,0.575778148278915, +0.708454987460982,0.708454987460982,0.70834281772937,0.708050731818042,0.707650269566888,0.707204496830838,0.706767474062922,0.70639651872208,0.706165484139547,0.706165484139547, +0.8511615775796,0.8511615775796,0.851018256150342,0.850563152394495,0.849992315605128,0.84938274819618,0.848780201067309,0.848234451824796,0.847838940921464,0.847838940921464, + +00:50:30, +0.219714002583214,0.219714002583214,0.219771269757274,0.219777581882663,0.219744838412145,0.219688742109396,0.219626514420474,0.219574327899383,0.219544778427473,0.219544778427473, +0.219714002583214,0.219714002583214,0.219771269757274,0.219777581882663,0.219744838412145,0.219688742109396,0.219626514420474,0.219574327899383,0.219544778427473,0.219544778427473, +0.244609757268652,0.244609757268652,0.244660600729234,0.2446564124819,0.244610395624811,0.24454001644505,0.244464491707289,0.244401982751615,0.24436677071739,0.24436677071739, +0.294044233955904,0.294044233955904,0.294081417144373,0.294055179493725,0.293981402749848,0.293881172325638,0.293777783000187,0.293693524555828,0.293646308464913,0.293646308464913, +0.367172503998624,0.367172503998624,0.367187348278869,0.367125462215903,0.367007003882682,0.36685875183459,0.366710278243536,0.366590403517694,0.366523248196284,0.366523248196284, +0.462447886417077,0.462447886417077,0.462430071603253,0.462315862749756,0.46213205938767,0.461913666418635,0.461698654678283,0.461524941235172,0.461426692150365,0.461426692150365, +0.577402129877016,0.577402129877016,0.57734059754703,0.577152744650023,0.576877570391229,0.576561786524368,0.576252875145004,0.575999659231262,0.575852312854525,0.575852312854525, +0.708507548107089,0.708507548107089,0.708395398117448,0.708103370841545,0.707702991306998,0.707257311795684,0.706820380699225,0.706449502825023,0.706218516014309,0.706218516014309, +0.851188959649158,0.851188959649158,0.851045665710423,0.850590649932507,0.850019924940834,0.849410477805051,0.848808049681712,0.848262407639072,0.847866973538999,0.847866973538999, + +00:50:31, +0.219828614999999,0.219828614999999,0.219885882017016,0.219892200573671,0.219859468303586,0.219803385565522,0.21974117116266,0.219688995157913,0.219659451482386,0.219659451482386, +0.219828614999999,0.219828614999999,0.219885882017016,0.219892200573671,0.219859468303586,0.219803385565522,0.21974117116266,0.219688995157913,0.219659451482386,0.219659451482386, +0.244722689703378,0.244722689703378,0.244773532337681,0.244769351697715,0.24472334858815,0.244652986261561,0.244577478140488,0.244514982396532,0.244479777665495,0.244479777665495, +0.294153207505251,0.294153207505251,0.294190389277276,0.294164162131162,0.294090404602658,0.293990197854732,0.293886831976009,0.293802592257735,0.293755386557768,0.293755386557768, +0.367274250678035,0.367274250678035,0.367289094293686,0.367227224272055,0.367108794162641,0.366960576547833,0.366812137020311,0.366692289598852,0.366625149507658,0.366625149507658, +0.462538122736605,0.462538122736605,0.462520310704918,0.462406127091696,0.462222365172831,0.462004021730034,0.461789058791581,0.461615384702083,0.461517157806054,0.461517157806054, +0.577475938950605,0.577475938950605,0.577414416407598,0.577226602546689,0.57695148772538,0.576635773039303,0.576326929623273,0.576073769310217,0.57592645510992,0.57592645510992, +0.708560090929045,0.708560090929045,0.708447960677303,0.708155992013533,0.707755695159857,0.707310108831612,0.706873269365063,0.706502468922366,0.706271529862013,0.706271529862013, +0.85121633176909,0.85121633176909,0.851073065310624,0.850618137475624,0.850047524235614,0.849438197322527,0.848835888154492,0.848290353266789,0.847894995938415,0.847894995938415, + +00:50:32, +0.219943219686482,0.219943219686482,0.220000486538868,0.220006811523803,0.219974090454784,0.219918021284365,0.219855820171421,0.219803654686449,0.219774116809292,0.219774116809292, +0.219943219686482,0.219943219686482,0.220000486538868,0.220006811523803,0.219974090454784,0.219918021284365,0.219855820171421,0.219803654686449,0.219774116809292,0.219774116809292, +0.244835611645427,0.244835611645427,0.244886453448168,0.244882280412916,0.244836291050327,0.244765945577773,0.244690454074888,0.244627971544088,0.24459277411709,0.24459277411709, +0.294262166015436,0.294262166015436,0.294299346369381,0.294273129725167,0.294199391408743,0.294099208333578,0.293995865898299,0.29391164490354,0.293864449593094,0.293864449593094, +0.367375977665229,0.367375977665229,0.367390820618008,0.367328966633745,0.367210564739993,0.367062381548084,0.366913976073588,0.366794155947956,0.366727031082156,0.366727031082156, +0.462628336485382,0.462628336485382,0.462610527238869,0.462496368858289,0.462312648367201,0.462094354431018,0.461879440274569,0.461705805522388,0.461607600805873,0.461607600805873, +0.577549725861485,0.577549725861485,0.577488213106561,0.577300438267621,0.577025382858839,0.576709737323004,0.576400961839616,0.5761478571019,0.576000575063352,0.576000575063352, +0.70861261594296,0.70861261594296,0.708500505425045,0.708208595350135,0.707808381141626,0.707362887954823,0.706926140076673,0.706555417030382,0.706324525698952,0.706324525698952, +0.851243693948836,0.851243693948836,0.851100454960396,0.85064561503333,0.850075113498993,0.849465906758184,0.848863716495276,0.848318288717617,0.847923008129411,0.847923008129411, + +00:50:33, +0.220057816629961,0.220057816629961,0.220115083310135,0.220121414720361,0.22008870485303,0.220032649253198,0.219970461434015,0.219918306472236,0.219888774395429,0.219888774395429, +0.220057816629961,0.220057816629961,0.220115083310135,0.220121414720361,0.22008870485303,0.220032649253198,0.219970461434015,0.219918306472236,0.219888774395429,0.219888774395429, +0.244948523086613,0.244948523086613,0.244999364052515,0.244995198619319,0.244949223003148,0.244878894385476,0.244803419502268,0.24474095018605,0.244705760063937,0.244705760063937, +0.294371109486003,0.294371109486003,0.29440828842023,0.294382082275278,0.294308363167633,0.294208203761698,0.29410488476657,0.294020682492745,0.293973497570393,0.293973497570393, +0.367477684968398,0.367477684968398,0.367492527260018,0.367430689309156,0.367312315622916,0.367164166843522,0.367015795411542,0.366896002573184,0.366828892927956,0.366828892927956, +0.46271852767853,0.46271852767853,0.462700721220222,0.462586588064651,0.462402908985902,0.46218466453672,0.461969799142389,0.461796203711239,0.461698021164982,0.461698021164982, +0.577623490627781,0.577623490627781,0.577561987662037,0.577374251830947,0.57709925580975,0.576783679393639,0.576474971812229,0.576221922624525,0.576074672733049,0.576074672733049, +0.708665123164921,0.708665123164921,0.708553032376761,0.708261180867458,0.707861049268446,0.707415649181495,0.706978992850274,0.706608347165321,0.706377503541397,0.706377503541397, +0.851271046197824,0.851271046197824,0.851127834669175,0.850673082615094,0.850102692740488,0.849493606121587,0.848891534713676,0.848346214001212,0.847951010121676,0.847951010121676, + +00:50:34, +0.220172405817752,0.220172405817752,0.220229672318145,0.220236010150667,0.220203311485636,0.220147269459318,0.22008509493772,0.220032950502538,0.220003424228052,0.220003424228052, +0.220172405817752,0.220172405817752,0.220229672318145,0.220236010150667,0.220203311485636,0.220147269459318,0.22008509493772,0.220032950502538,0.220003424228052,0.220003424228052, +0.245061424018768,0.245061424018768,0.245112264142557,0.245108106308757,0.245062144438437,0.24499183267648,0.244916374414421,0.244853918314198,0.244818735497809,0.244818735497809, +0.294480037916499,0.294480037916499,0.294517215429369,0.294491019781036,0.294417319878862,0.294317184138617,0.294213888580336,0.294129705024861,0.294082530489168,0.294082530489168, +0.367579372595724,0.367579372595724,0.367594214227895,0.367532392306459,0.367414046819584,0.367265932442317,0.367117595042345,0.366997829482707,0.366930735053229,0.366930735053229, +0.462808696331156,0.462808696331156,0.462790892664074,0.462676784725879,0.462493147044038,0.462274952062254,0.46206013541017,0.461886579283775,0.461788418898524,0.461788418898524, +0.577697233267592,0.577697233267592,0.577635740092119,0.577448043254769,0.577173106596233,0.576857599269354,0.57654895955928,0.576295965896284,0.576148748137216,0.576148748137216, +0.708717612610996,0.708717612610996,0.70860554154852,0.708313748581589,0.707913699556434,0.707468392527784,0.70703182770206,0.706661259343412,0.706430463405598,0.706430463405598, +0.851298388525471,0.851298388525471,0.851155204446388,0.850700540230375,0.8501302619696,0.849521295422286,0.848919342819292,0.848374129127219,0.847979001924884,0.847979001924884, + +00:50:35, +0.220286987237195,0.220286987237195,0.220344253550242,0.220350597802066,0.220317910339935,0.22026188189004,0.220199720669837,0.22014758676464,0.220118066294441,0.220118066294441, +0.220286987237195,0.220286987237195,0.220344253550242,0.220350597802066,0.220317910339935,0.22026188189004,0.220199720669837,0.22014758676464,0.220118066294441,0.220118066294441, +0.245174314433737,0.245174314433737,0.245225153710145,0.245221003473076,0.245175055348027,0.245104760442605,0.245029318803155,0.244966875920331,0.244931700410498,0.244931700410498, +0.294588951306474,0.294588951306474,0.29462612739635,0.294599942241986,0.294526261541969,0.294426149463864,0.294322877339118,0.2942387124994,0.294191548348931,0.294191548348931, +0.367681040555383,0.367681040555383,0.367695881529807,0.367634075633821,0.367515758338157,0.367367678352631,0.367219374974158,0.367099636684685,0.367032557466136,0.367032557466136, +0.462898842458349,0.462898842458349,0.462881041585506,0.462766958857054,0.462583362556697,0.462365217022718,0.462150449093019,0.461976932255113,0.461878794021622,0.461878794021622, +0.577770953798999,0.577770953798999,0.577709470414881,0.577521812557166,0.577246935236388,0.57693149696827,0.576622925098919,0.576369986935347,0.576222801294034,0.576222801294034, +0.708770084297231,0.708770084297231,0.708658032956366,0.708366298508593,0.707966332021688,0.707521118009826,0.707084644648207,0.706714153580862,0.706483405307782,0.706483405307782, +0.851325720941181,0.851325720941181,0.851182564301446,0.850727987888618,0.850157821195818,0.84954897466982,0.848947140821712,0.848402034105268,0.848006983548697,0.848006983548697, + +00:50:36, +0.220401560875649,0.220401560875649,0.220458826993796,0.220465177661922,0.220432501403279,0.220376486532702,0.220314338617684,0.22026221524585,0.220232700581893,0.220232700581893, +0.220401560875649,0.220401560875649,0.220458826993796,0.220465177661922,0.220432501403279,0.220376486532702,0.220314338617684,0.22026221524585,0.220232700581893,0.220232700581893, +0.24528719432338,0.24528719432338,0.245338032747145,0.245333890104137,0.245287955723772,0.245217677675689,0.245142252660293,0.245079822996257,0.245044654793806,0.245044654793806, +0.294697849655484,0.294697849655484,0.294735024320726,0.29470884965768,0.294635188156494,0.294535099736971,0.294431851042441,0.29434770491588,0.294300551149193,0.294300551149193, +0.367782688855541,0.367782688855541,0.367797529173916,0.3677357392994,0.367617450186792,0.367469404582618,0.367321135215134,0.367201424187273,0.367134360174832,0.367134360174832, +0.462988966075179,0.462988966075179,0.462971167999579,0.462857110473238,0.462673555538947,0.46245545943319,0.462240740206026,0.462067262640352,0.461969146549382,0.461969146549382, +0.577844652240054,0.577844652240054,0.577783178648368,0.577595559756195,0.577320741748288,0.577005372508487,0.57669686844927,0.576443985759858,0.57629683222166,0.57629683222166, +0.70882253823965,0.70882253823965,0.708710506616324,0.708418830664514,0.708018946680284,0.707573825643736,0.707137443704867,0.70676702989386,0.706536329264158,0.706536329264158, +0.851353043454344,0.851353043454344,0.851209914243749,0.850755425599256,0.850185370428619,0.849576643873714,0.848974928730509,0.848429928944978,0.848034955002764,0.848034955002764, + +00:50:37, +0.220516126720495,0.220516126720495,0.220573392636194,0.22057974971762,0.220547084663043,0.220491083374662,0.220428948768604,0.220376835933493,0.220347327077727,0.220347327077727, +0.220516126720495,0.220516126720495,0.220573392636194,0.22057974971762,0.220547084663043,0.220491083374662,0.220428948768604,0.220376835933493,0.220347327077727,0.220347327077727, +0.245400063679572,0.245400063679572,0.245450901245435,0.245446766193816,0.245400845557535,0.245330584367584,0.245255175977671,0.245192759533803,0.245157598639553,0.245157598639553, +0.294806732963088,0.294806732963088,0.294843906202057,0.294817742027671,0.294744099721987,0.294644034957476,0.294540809689832,0.294456682273822,0.294409538889473,0.294409538889473, +0.367884317504358,0.367884317504358,0.367899157168376,0.367837383311344,0.367719122373637,0.367571111140424,0.36742287577342,0.367303191998616,0.367236143187463,0.367236143187463, +0.463079067196697,0.463079067196697,0.463061271921337,0.462947239589474,0.462763726005837,0.462545679308731,0.462331008764264,0.462157570454575,0.462059476496892,0.462059476496892, +0.577918328608791,0.577918328608791,0.577856864810609,0.577669284869889,0.577394526149986,0.577079225908082,0.576770789628433,0.57651796238794,0.576370840938231,0.576370840938231, +0.708874974454258,0.708874974454258,0.708762962544398,0.708471345065375,0.708071543548277,0.707626515445607,0.707190224888174,0.706819888298569,0.706589235290911,0.706589235290911, +0.851380356074339,0.851380356074339,0.851237254282685,0.850782853371708,0.850212909677468,0.84960430304348,0.849002706555246,0.848457813655954,0.848062916296722,0.848062916296722, + +00:50:38, +0.220630684759132,0.220630684759132,0.220687950464845,0.220694313956567,0.220661660106621,0.220605672403298,0.220543551109957,0.220491448814919,0.220461945769285,0.220461945769285, +0.220630684759132,0.220630684759132,0.220687950464845,0.220694313956567,0.220661660106621,0.220605672403298,0.220543551109957,0.220491448814919,0.220461945769285,0.220461945769285, +0.245512922494202,0.245512922494202,0.24556375919691,0.245559631734004,0.245513724841197,0.245443480510156,0.245368088747142,0.245305685524809,0.245270531939574,0.245270531939574, +0.29491560122885,0.29491560122885,0.294952773039906,0.294926619351517,0.294852996237996,0.294752955124922,0.294649753280825,0.294565644572751,0.294518511569292,0.294518511569292, +0.367985926509985,0.367985926509985,0.368000765521331,0.367939007677796,0.36782077490683,0.367672798034187,0.367524596657154,0.367404940126854,0.367337906512168,0.367337906512168, +0.463169145837938,0.463169145837938,0.463151353365806,0.463037346220789,0.462853873972402,0.462635876664384,0.462421254782787,0.462247855712847,0.462149783879222,0.462149783879222, +0.577991982923218,0.577991982923218,0.577930528919603,0.577742987916258,0.577468288459511,0.577153057185107,0.576844688654486,0.576591916837693,0.576444827461858,0.576444827461858, +0.708927392957037,0.708927392957037,0.708815400756571,0.708523841727177,0.708124122641701,0.70767918743151,0.707242988214236,0.706872728811134,0.706642123404204,0.706642123404204, +0.851407658810532,0.851407658810532,0.851264584427627,0.850810271215382,0.850240438951814,0.849631952188619,0.84903047430547,0.848485688247788,0.848090867440193,0.848090867440193, + +00:50:39, +0.220745234978981,0.220745234978981,0.220802500467178,0.220808870366189,0.220776227721429,0.22072025360601,0.220658145629127,0.220606053877496,0.220576556643928,0.220576556643928, +0.220745234978981,0.220745234978981,0.220802500467178,0.220808870366189,0.220776227721429,0.22072025360601,0.220658145629127,0.220606053877496,0.220576556643928,0.220576556643928, +0.245625770759174,0.245625770759174,0.245676606593478,0.245672486716605,0.245626593566653,0.245556366095285,0.245480990960572,0.24541860096113,0.245383454685717,0.245383454685717, +0.295024454452336,0.295024454452336,0.295061624833839,0.295035481628782,0.294961877704077,0.294861860238853,0.294758681814956,0.294674591812199,0.294627469188177,0.294627469188177, +0.368087515880566,0.368087515880566,0.368102354240919,0.36804061240689,0.367922407794503,0.367774465272039,0.367626297874465,0.367506668580117,0.367439650157078,0.367439650157078, +0.463259202013918,0.463259202013918,0.463241412347992,0.46312743038219,0.462943999453654,0.462726051515173,0.462511478276631,0.462338118430212,0.462240068711423,0.462240068711423, +0.578065615201321,0.578065615201321,0.578004170993331,0.577816668913289,0.577542028694867,0.577226866357592,0.576918565545486,0.576665849127194,0.576518791810631,0.576518791810631, +0.708979793763948,0.708979793763948,0.708867821268804,0.708576320665902,0.708176683976568,0.707731841617498,0.707295733699145,0.706925551447677,0.706694993620182,0.706694993620182, +0.851434951672276,0.851434951672276,0.851291904687937,0.850837679139673,0.850267958261098,0.849659591318618,0.849058231990719,0.84851355273006,0.848118808442788,0.848118808442788, + +00:50:40, +0.220859777367486,0.220859777367486,0.220917042630644,0.220923418933932,0.220890787494902,0.220834826970217,0.220772732313517,0.220720651108612,0.220691159689036,0.220691159689036, +0.220859777367486,0.220859777367486,0.220917042630644,0.220923418933932,0.220890787494902,0.220834826970217,0.220772732313517,0.220720651108612,0.220691159689036,0.220691159689036, +0.245738608466407,0.245738608466407,0.245789443427064,0.245785331133539,0.245739451725813,0.245669241114867,0.245593882609842,0.245531505834637,0.245496366869844,0.245496366869844, +0.29513329263312,0.29513329263312,0.295170461583428,0.295144328859031,0.295070744119789,0.29497075029882,0.294867595291768,0.294783523991698,0.294736411745658,0.294736411745658, +0.368189085624235,0.368189085624235,0.36820392333527,0.368142197506751,0.368024021044781,0.367876112862102,0.367727979433478,0.367608377366527,0.367541374130315,0.367541374130315, +0.463349235739634,0.463349235739634,0.463331448882887,0.463217492088667,0.46303410246459,0.462816203876106,0.462601679260814,0.462428358621699,0.46233033100853,0.46233033100853, +0.578139225461063,0.578139225461063,0.578077791049749,0.577890327878947,0.577615746874039,0.577300653443544,0.576992420319464,0.576739759274495,0.576592734002614,0.576592734002614, +0.709032176890933,0.709032176890933,0.708920224097037,0.708628781897509,0.708229227568869,0.707784478019599,0.707348461358969,0.706978356224301,0.706747845954966,0.706747845954966, +0.851462234668911,0.851462234668911,0.851319215072966,0.850865077153963,0.850295467614745,0.849687220442951,0.849085979620514,0.848541407112337,0.848146739314105,0.848146739314105, + +00:50:41, +0.220974311912108,0.220974311912108,0.221031576942713,0.221037959647266,0.221005339414498,0.22094939248336,0.22088731115055,0.22083524049568,0.220805754892013,0.220805754892013, +0.220974311912108,0.220974311912108,0.221031576942713,0.221037959647266,0.221005339414498,0.22094939248336,0.22088731115055,0.22083524049568,0.220805754892013,0.220805754892013, +0.245851435607834,0.245851435607834,0.245902269689605,0.245898164976741,0.2458522993106,0.245782105560813,0.245706763686849,0.245644400137213,0.245609268483835,0.245609268483835, +0.295242115770776,0.295242115770776,0.295279283288248,0.295253161041836,0.295179595484695,0.295079625304377,0.294976493710804,0.294892441110788,0.294845339241269,0.294845339241269, +0.368290635749121,0.368290635749121,0.368305472812507,0.368243762985498,0.368125614665778,0.36797774081249,0.367829641342305,0.367710066494199,0.367643078439994,0.367643078439994, +0.463439247030067,0.463439247030067,0.463421462985461,0.463307531355192,0.46312418302019,0.462906333762171,0.462691857750336,0.462518576302318,0.462420570785557,0.462420570785557, +0.578212813720383,0.578212813720383,0.578151389106791,0.577963964831174,0.577689443014986,0.577374418460947,0.57706625299443,0.576813647297627,0.576666654055851,0.576666654055851, +0.70908454235391,0.70908454235391,0.70897260925719,0.708681225437937,0.708281753434576,0.707837096653822,0.707401171209754,0.707031143157084,0.706800680424657,0.706800680424657, +0.851489507809767,0.851489507809767,0.85134651559205,0.850892465267621,0.850322967022168,0.849714839571081,0.849113717204367,0.848569251404173,0.848174660063727,0.848174660063727, + +00:50:42, +0.22108883860033,0.22108883860033,0.221146103390876,0.221152492493678,0.221119883467692,0.2210639501329,0.22100188212767,0.220949822026128,0.220920342240281,0.220920342240281, +0.22108883860033,0.22108883860033,0.221146103390876,0.221152492493678,0.221119883467692,0.2210639501329,0.22100188212767,0.220949822026128,0.220920342240281,0.220920342240281, +0.245964252175403,0.245964252175403,0.246015085373053,0.246010988238159,0.245965136312953,0.245894959425047,0.245819634183503,0.245757283860757,0.245722159519582,0.245722159519582, +0.295350923864885,0.295350923864885,0.29538808994788,0.295361978176772,0.295288431798363,0.295188485255083,0.295085377071615,0.295001343169011,0.294954251674551,0.294954251674551, +0.368392166263342,0.368392166263342,0.368407002680742,0.36834530885124,0.368227188665604,0.368079349131312,0.367931283609055,0.367811735971241,0.367744763094224,0.367744763094224, +0.463529235900179,0.463529235900179,0.463511454670669,0.463397548196719,0.463214241135413,0.462996441188339,0.46278201376018,0.462608771487062,0.462510788057504,0.462510788057504, +0.578286379997199,0.578286379997199,0.578224965182366,0.578037579787888,0.577763117135645,0.577448161427763,0.577140063588369,0.576887513214598,0.576740551988362,0.576740551988362, +0.709136890168778,0.709136890168778,0.709024976765162,0.708733651303103,0.708334261589638,0.707889697536155,0.707453863267528,0.707083912262087,0.706853497045335,0.706853497045335, +0.851516771104158,0.851516771104158,0.851373806254514,0.850919843490005,0.850350456492769,0.849742448712456,0.849141444751775,0.84859708561511,0.848202570701228,0.848202570701228, + +00:50:43, +0.221203357419656,0.221203357419656,0.221260621962645,0.221267017460677,0.221234419641984,0.221178499906319,0.221116445232343,0.221064395687409,0.221034921721284,0.221034921721284, +0.221203357419656,0.221203357419656,0.221260621962645,0.221267017460677,0.221234419641984,0.221178499906319,0.221116445232343,0.221064395687409,0.221034921721284,0.221034921721284, +0.246077058161075,0.246077058161075,0.246127890469376,0.246123800909756,0.246077962724825,0.246007802699509,0.24593249409173,0.245870156997184,0.245835039968992,0.245835039968992, +0.29545971691503,0.29545971691503,0.295496881561905,0.295470780263418,0.295397253060365,0.2952973301505,0.295194245373755,0.295110230165914,0.295063149045045,0.295063149045045, +0.368493677175011,0.368493677175011,0.368508512948083,0.368446835112081,0.368328743052358,0.368180937826666,0.368032906241825,0.367913385805751,0.367846428101103,0.367846428101103, +0.463619202364914,0.463619202364914,0.463601423953446,0.463487542628185,0.463304276825203,0.463086526169563,0.462872147305311,0.462698944190904,0.46260098283935,0.46260098283935, +0.578359924309406,0.578359924309406,0.578298519294363,0.578111172766984,0.57783676925393,0.57752188236193,0.577213852119245,0.576961357043391,0.576814427818144,0.576814427818144, +0.709189220351415,0.709189220351415,0.709077326636829,0.708786059508905,0.708386752049984,0.707942280682564,0.707506537548295,0.707136663555348,0.706906295833057,0.706906295833057, +0.851544024561388,0.851544024561388,0.85140108706967,0.850947211830459,0.850377936035936,0.849770047876514,0.849169162272223,0.848624909754676,0.848230471236166,0.848230471236166, + +00:50:44, +0.22131786835761,0.22131786835761,0.221375132645552,0.221381534535792,0.22134894792489,0.221293041791119,0.221231000452054,0.221178961466994,0.221149493322486,0.221149493322486, +0.22131786835761,0.22131786835761,0.221375132645552,0.221381534535792,0.22134894792489,0.221293041791119,0.221231000452054,0.221178961466994,0.221149493322486,0.221149493322486, +0.246189853556828,0.246189853556828,0.246240684970555,0.246236602983511,0.246190778538184,0.246120635376152,0.246045343403468,0.245983019538421,0.245947909823988,0.245947909823988, +0.295568494920801,0.295568494920801,0.295605658129913,0.295579567301356,0.295506059270275,0.295406159990194,0.295303098616782,0.295219102101048,0.295172031352299,0.295172031352299, +0.368595168492232,0.368595168492232,0.368610003622627,0.368548341776115,0.368430277834133,0.368282506906644,0.368134509248708,0.368015016005821,0.367948073468723,0.367948073468723, +0.463709146439199,0.463709146439199,0.463691370848711,0.463577514664507,0.463394290104483,0.463176588720779,0.462962258400674,0.462789094428801,0.462691155146057,0.462691155146057, +0.578433446674873,0.578433446674873,0.578372051460647,0.578184743786336,0.577910399387733,0.577595581281362,0.577287618604998,0.577035178801969,0.576888281563171,0.576888281563171, +0.709241532917678,0.709241532917678,0.709129658888049,0.708838450071218,0.70843922483152,0.707994846108995,0.707559194068039,0.707189397052884,0.706959076803861,0.706959076803861, +0.851571268190749,0.851571268190749,0.851428358046817,0.850974570298316,0.850405405661044,0.849797637072678,0.849196869775185,0.848652723832386,0.848258361678088,0.848258361678088, + +00:50:45, +0.221432371401736,0.221432371401736,0.22148963542715,0.221496043706573,0.22146346830395,0.221407575774822,0.221345547774309,0.221293519352375,0.221264057031373,0.221264057031373, +0.221432371401736,0.221432371401736,0.22148963542715,0.221496043706573,0.22146346830395,0.221407575774822,0.221345547774309,0.221293519352375,0.221264057031373,0.221264057031373, +0.246302638354653,0.246302638354653,0.246353468868587,0.246349394451416,0.246303583745012,0.246233457446944,0.246158182110673,0.246095871476412,0.246060769076505,0.246060769076505, +0.295677257881789,0.295677257881789,0.295714419651495,0.295688339290175,0.295614850427675,0.295514974773738,0.295411936800257,0.295327958973969,0.295280898595865,0.295280898595865, +0.368696640223101,0.368696640223101,0.368711474712465,0.368649828851429,0.368531793019013,0.368384056379329,0.368236092637787,0.368116626579536,0.368049699205168,0.368049699205168, +0.463799068137941,0.463799068137941,0.463781295371363,0.463667464320586,0.463484280988162,0.463266628856903,0.463052347061198,0.462879222215691,0.46278130499257,0.46278130499257, +0.578506947111451,0.578506947111451,0.578445561699059,0.578258292863793,0.577984007554921,0.577669258203953,0.577361363063546,0.57710897850827,0.576962113241393,0.576962113241393, +0.709293827883402,0.709293827883402,0.709181973534658,0.708890823005897,0.708491679950134,0.708047393831373,0.707611832842724,0.707242112770691,0.707011839973764,0.707011839973764, +0.851598502001518,0.851598502001518,0.851455619195242,0.851001918902894,0.850432865377456,0.84982521631036,0.849224567270118,0.848680527857744,0.848286242036527,0.848286242036527, + +00:50:46, +0.2215468665396,0.2215468665396,0.221604130295011,0.22161054496059,0.221577980766722,0.221522101844973,0.221460087186636,0.221408069331067,0.22137861283545,0.22137861283545, +0.2215468665396,0.2215468665396,0.221604130295011,0.22161054496059,0.221577980766722,0.221522101844973,0.221460087186636,0.221408069331067,0.22137861283545,0.22137861283545, +0.246415412546555,0.246415412546555,0.246466242155481,0.246462175305477,0.246416378337305,0.24634626890387,0.246271010205313,0.246208712803114,0.246173617718495,0.246173617718495, +0.295786005797591,0.295786005797591,0.295823166126246,0.295797096229466,0.295723626532148,0.295623774500704,0.295520759923747,0.295436800784235,0.295389750775298,0.295389750775298, +0.368798092375706,0.368798092375706,0.368812926225679,0.368751296346101,0.368633288615076,0.368485586252797,0.368337656417137,0.36821821753497,0.368151305318515,0.368151305318515, +0.463888967476031,0.463888967476031,0.463871197536285,0.463757391611304,0.463574249491128,0.463356646592836,0.463142413301795,0.462969327566496,0.462871432393814,0.462871432393814, +0.578580425636964,0.578580425636964,0.578519050027419,0.578331820017183,0.578057593773341,0.577742913147573,0.577435085512784,0.57718275618021,0.57703592287074,0.57703592287074, +0.709346105264403,0.709346105264403,0.70923427059247,0.708943178328776,0.708544117421691,0.708099923865601,0.707664453888292,0.707294810724743,0.707064585358761,0.707064585358761, +0.851625726002962,0.851625726002962,0.851482870524221,0.851029257653502,0.850460315194524,0.849852785598958,0.849252254766472,0.848708321840241,0.848314112321004,0.848314112321004, + +00:50:47, +0.221661353758786,0.221661353758786,0.221718617236729,0.221725038285434,0.221692485300787,0.221636619989134,0.22157461867658,0.221522611390602,0.221493160722242,0.221493160722242, +0.221661353758786,0.221661353758786,0.221718617236729,0.221725038285434,0.221692485300787,0.221636619989134,0.22157461867658,0.221522611390602,0.221493160722242,0.221493160722242, +0.246528176124555,0.246528176124555,0.246579004823263,0.246574945537716,0.246529162307075,0.246459069738926,0.246383827679372,0.246321543510498,0.246286455741923,0.246286455741923, +0.295894738667807,0.295894738667807,0.295931897553768,0.295905838118824,0.295832387583281,0.295732559170674,0.295629567986823,0.295545627531411,0.295498587890159,0.295498587890159, +0.368899524958127,0.368899524958127,0.368914358170345,0.368852744268204,0.36873476463039,0.368587096535116,0.368439200594827,0.368319788880191,0.368252891816832,0.368252891816832, +0.463978844468343,0.463978844468343,0.463961077358341,0.463847296551527,0.463664195628253,0.463446641943458,0.463232457137358,0.463059410496117,0.4629615373647,0.4629615373647, +0.578653882269216,0.578653882269216,0.578592516463524,0.578405325264311,0.578131158060816,0.577816546130068,0.577508785970583,0.577256511835683,0.577109710469117,0.577109710469117, +0.709398365076476,0.709398365076476,0.709286550077279,0.708995516055668,0.708596537262037,0.708152436227563,0.707717057220663,0.707347490930995,0.707117312974825,0.707117312974825, +0.851652940204334,0.851652940204334,0.851510112043015,0.851056586559435,0.850487755121586,0.84988034494786,0.84927993227368,0.848736105789354,0.848341972541027,0.848341972541027, + +00:50:48, +0.221775833046901,0.221775833046901,0.221833096239918,0.221839523668716,0.221806981893743,0.22175113019489,0.22168914223171,0.221637145518534,0.221607700679297,0.221607700679297, +0.221775833046901,0.221775833046901,0.221833096239918,0.221839523668716,0.221806981893743,0.22175113019489,0.22168914223171,0.221637145518534,0.221607700679297,0.221607700679297, +0.246640929080686,0.246640929080686,0.246691756863972,0.246687705140168,0.246641935646348,0.246571859944124,0.246496634524848,0.246434363590553,0.246399283138771,0.246399283138771, +0.296003456492042,0.296003456492042,0.296040613933663,0.296014564957849,0.295941133580668,0.295841328783231,0.295738360989058,0.295654439215065,0.29560740994001,0.29560740994001, +0.369000937978437,0.369000937978437,0.369015770554528,0.368954172625799,0.368836221073017,0.368688587234347,0.368540725178916,0.368421340623262,0.36835445870818,0.36835445870818, +0.464068699129731,0.464068699129731,0.464050934852379,0.463937179156102,0.46375411941439,0.463536614923634,0.463322478582761,0.463149471019441,0.463051619920117,0.463051619920117, +0.578727317025987,0.578727317025987,0.578665961025147,0.578478808622958,0.578204700435145,0.577890157169262,0.577582464454794,0.577330245492557,0.577183476054405,0.577183476054405, +0.709450607335392,0.709450607335392,0.70933881200486,0.709047836202367,0.708648939486996,0.70820493093312,0.707769642855739,0.70740015340538,0.707170022837911,0.707170022837911, +0.851680144614876,0.851680144614876,0.851537343760875,0.851083905629973,0.850515185167967,0.849907894366438,0.849307599801164,0.848763879714549,0.848369822706092,0.848369822706092, + +00:50:49, +0.221890304391569,0.221890304391569,0.221947567292212,0.221954001098067,0.221921470533212,0.221865632449845,0.221803657839613,0.221751671702439,0.22172223269418,0.22172223269418, +0.221890304391569,0.221890304391569,0.221947567292212,0.221954001098067,0.221921470533212,0.221865632449845,0.221803657839613,0.221751671702439,0.22172223269418,0.22172223269418, +0.246753671406999,0.246753671406999,0.246804498269662,0.246800454104884,0.246754698347163,0.246684639511491,0.246609430733752,0.246547173035278,0.246512099901032,0.246512099901032, +0.296112159269904,0.296112159269904,0.296149315265541,0.296123276746145,0.296049864523905,0.29595008333796,0.295847138930033,0.295763235834767,0.295716216924422,0.295716216924422, +0.369102331444702,0.369102331444702,0.36911716338629,0.369055581426943,0.368937657951011,0.368790058358542,0.368642230177456,0.368522872772233,0.368456006000611,0.368456006000611, +0.464158531475032,0.464158531475032,0.464140770033227,0.464027039439857,0.463844020864376,0.46362656554821,0.463412477652863,0.463239509151334,0.463141680074938,0.463141680074938, +0.578800729925035,0.578800729925035,0.578739383730039,0.578552270110883,0.578278220914107,0.577963746282958,0.577656120983241,0.577403957168681,0.577257219644466,0.577257219644466, +0.709502832056906,0.709502832056906,0.709391056390965,0.709100138784643,0.70870132411237,0.708257407998113,0.707822210809397,0.707452798163809,0.70722271496395,0.70722271496395, +0.851707339243817,0.851707339243817,0.851564565687038,0.851111214874389,0.850542605342981,0.849935433864055,0.849335257358333,0.848791643625277,0.848397662825681,0.848397662825681, + +00:50:50, +0.222004767780439,0.222004767780439,0.222062030381265,0.222068470561138,0.222035951206834,0.221980126741624,0.221918165487898,0.22186618992991,0.22183675675448,0.22183675675448, +0.222004767780439,0.222004767780439,0.222062030381265,0.222068470561138,0.222035951206834,0.221980126741624,0.221918165487898,0.22186618992991,0.22183675675448,0.22183675675448, +0.246866403095556,0.246866403095556,0.2469172290324,0.246913192423928,0.246867450401574,0.246797408433067,0.246722216298112,0.246659971836689,0.246624906020715,0.246624906020715, +0.296220847001006,0.296220847001006,0.296258001549013,0.296231973483319,0.296158580412591,0.296058822834455,0.29595590180933,0.295872017390096,0.295825008842965,0.295825008842965, +0.369203705364977,0.369203705364977,0.36921853667368,0.369156970679684,0.369039075272416,0.368891509915746,0.368743715598494,0.36862438533515,0.368557533702172,0.368557533702172, +0.464248341519065,0.464248341519065,0.464230582915696,0.464116877417604,0.463933899993028,0.463716493832015,0.463502454362502,0.463329524906647,0.46323171784402,0.46323171784402, +0.578874120984095,0.578874120984095,0.57881278459593,0.578625709745824,0.578351719515456,0.578037313488933,0.57772975557373,0.57747764688188,0.577330941257137,0.577330941257137, +0.709555039256749,0.709555039256749,0.709443283251325,0.709152423818249,0.708753691153942,0.708309867438362,0.707874761097498,0.707505425222175,0.707275389368853,0.707275389368853, +0.851734524100373,0.851734524100373,0.851591777830729,0.851138514301938,0.850570015655928,0.849962963450058,0.849362904954585,0.848819397530979,0.848425492909266,0.848425492909266, + +00:50:51, +0.222119223201176,0.222119223201176,0.222176485494753,0.222182932045602,0.222150423902269,0.222094613057873,0.222032665164194,0.221980700188563,0.221951272847804,0.221951272847804, +0.222119223201176,0.222119223201176,0.222176485494753,0.222182932045602,0.222150423902269,0.222094613057873,0.222032665164194,0.221980700188563,0.221951272847804,0.221951272847804, +0.246979124138435,0.246979124138435,0.24702994914427,0.247025920089379,0.246980191801652,0.246910166700909,0.24683499120997,0.246772759986816,0.246737701489846,0.246737701489846, +0.296329519684965,0.296329519684965,0.296366672783696,0.296340655168983,0.296267281246332,0.296167547272311,0.296064649626535,0.29598078388063,0.295933785695217,0.295933785695217, +0.369305059747312,0.369305059747312,0.369319890424742,0.369258340392061,0.36914047304527,0.368992941913996,0.368845181450065,0.36872587832005,0.368659041820899,0.368659041820899, +0.464338129276633,0.464338129276633,0.46432037351458,0.464206693104137,0.464023756815146,0.463806399789859,0.463592408726502,0.46341951830021,0.463321733242199,0.463321733242199, +0.578947490220879,0.578947490220879,0.578886163640525,0.578699127545494,0.578425196256925,0.578110858804945,0.57780336824404,0.577551314649956,0.577404640910231,0.577404640910231, +0.709607228950633,0.709607228950633,0.709495492601653,0.709204691318913,0.708806040627475,0.708362309269667,0.707927293735879,0.707558034596347,0.707328046068512,0.707328046068512, +0.85176169919375,0.85176169919375,0.851618980201162,0.851165803921867,0.850597416116097,0.849990483133785,0.849390542599303,0.848847141441083,0.848453312966303,0.848453312966303, + +00:50:52, +0.222233670641467,0.222233670641467,0.222290932620369,0.222297385539151,0.2222648886072,0.222209091386256,0.22214715685615,0.222095202466033,0.222065780961781,0.222065780961781, +0.222233670641467,0.222233670641467,0.222290932620369,0.222297385539151,0.2222648886072,0.222209091386256,0.22214715685615,0.222095202466033,0.222065780961781,0.222065780961781, +0.247091834527727,0.247091834527727,0.247142658597369,0.24713863709333,0.247092922539478,0.247022914307084,0.24694775546138,0.246885537477704,0.246850486300461,0.246850486300461, +0.296438177321402,0.296438177321402,0.296475328969209,0.296449321802753,0.296375967024736,0.296276256651128,0.29617338238124,0.296089535305954,0.296042547480758,0.296042547480758, +0.369406394599748,0.369406394599748,0.369421224647513,0.369359690572107,0.369241851277605,0.369094354361321,0.368946627740198,0.368827351734963,0.368760530364822,0.368760530364822, +0.464427894762519,0.464427894762519,0.464410141844655,0.464296486514232,0.464113591345514,0.463896283436535,0.463682340759667,0.463509489346839,0.463411726284296,0.463411726284296, +0.579020837653077,0.579020837653077,0.578959520881507,0.578772523527584,0.578498651156223,0.578184382248727,0.577876959011932,0.577624960490688,0.577478318621541,0.577478318621541, +0.709659401154248,0.709659401154248,0.709547684457638,0.709256941302345,0.708858372548709,0.708414733507807,0.707979808740356,0.707610626302176,0.707380685078796,0.707380685078796, +0.851788864533138,0.851788864533138,0.851646172807537,0.851193083743408,0.850624806732765,0.850017992924559,0.84941817030186,0.848874875365002,0.848481123006236,0.848481123006236, + +00:50:53, +0.22234811008902,0.22234811008902,0.22240537174583,0.222411831029498,0.222379345309327,0.222323561714461,0.222261640551435,0.222209696749978,0.222180281084058,0.222180281084058, +0.22234811008902,0.22234811008902,0.22240537174583,0.222411831029498,0.222379345309327,0.222323561714461,0.222261640551435,0.222209696749978,0.222180281084058,0.222180281084058, +0.247204534255541,0.247204534255541,0.247255357383806,0.247251343427888,0.247205642607151,0.247135651243678,0.247060509044414,0.246998304301412,0.246963260444613,0.246963260444613, +0.29654681990994,0.29654681990994,0.296583970105178,0.29655797338425,0.296484637747416,0.296384950970509,0.296282100073041,0.296198271665657,0.296151294199174,0.296151294199174, +0.36950770993032,0.36950770993032,0.36952253935002,0.369461021227847,0.369343209977443,0.369195747265743,0.369048054476916,0.368928805587911,0.368861999341964,0.368861999341964, +0.46451763799149,0.46451763799149,0.464499887920679,0.464386257662648,0.464203403598897,0.463986144786818,0.463772250476783,0.463599438061329,0.463501696985114,0.463501696985114, +0.579094163298356,0.579094163298356,0.579032856336538,0.578845897709764,0.578572084231038,0.57825788383799,0.57795052789514,0.577698584421833,0.577551974408836,0.577551974408836, +0.709711555883265,0.709711555883265,0.709599858834951,0.709309173784236,0.708910686933364,0.70846714016854,0.708032306126725,0.707663200355489,0.707433306415553,0.707433306415553, +0.851816020127718,0.851816020127718,0.851673355659043,0.851220353775781,0.850652187515194,0.850045492831691,0.849445788071614,0.848902599312139,0.8485089230385,0.8485089230385, + +00:50:54, +0.222462541531561,0.222462541531561,0.222519802858871,0.222526268504374,0.222493793996372,0.222438024030192,0.222376116237739,0.222324183028073,0.222294773202305,0.222294773202305, +0.222462541531561,0.222462541531561,0.222519802858871,0.222526268504374,0.222493793996372,0.222438024030192,0.222376116237739,0.222324183028073,0.222294773202305,0.222294773202305, +0.247317223313995,0.247317223313995,0.247368045495709,0.247364039085176,0.247318351996782,0.247248377502789,0.247173251951155,0.247111060450012,0.24707602391437,0.24707602391437, +0.296655447450211,0.296655447450211,0.296692596191231,0.296666609913097,0.296593293413988,0.296493630230062,0.296390802701537,0.296306992959331,0.296260025850053,0.296260025850053, +0.369609005747052,0.369609005747052,0.369623834540283,0.369562332367296,0.369444549152797,0.369297120635275,0.369149461668231,0.369030239886907,0.368963448760338,0.368963448760338, +0.464607358978294,0.464607358978294,0.464589611757393,0.464476006564126,0.464293193590041,0.464075983855467,0.46386213789262,0.463689364458461,0.463591645359435,0.463591645359435, +0.579167467174361,0.579167467174361,0.579106170023256,0.57891925010968,0.578645495499033,0.578331363590423,0.578024074911378,0.577772186461126,0.577625608289863,0.577625608289863, +0.709763693153332,0.709763693153332,0.709652015749241,0.709361388780252,0.70896298379714,0.708519529267603,0.708084785910763,0.707715756772094,0.707485910094611,0.707485910094611, +0.851843165986657,0.851843165986657,0.851700528764855,0.851247614028196,0.850679558472636,0.850072982864481,0.849473395917912,0.848930313291884,0.848536713072513,0.848536713072513, + +00:50:55, +0.22257696495684,0.22257696495684,0.222634225947247,0.222640697951533,0.222608234656077,0.222552478321176,0.222490583902772,0.222438661288014,0.222409257304211,0.222409257304211, +0.22257696495684,0.22257696495684,0.222634225947247,0.222640697951533,0.222608234656077,0.222552478321176,0.222490583902772,0.222438661288014,0.222409257304211,0.222409257304211, +0.247429901695225,0.247429901695225,0.247480722925215,0.247476724057329,0.247431050700497,0.247361093076529,0.247285984173702,0.247223805915593,0.247188776701812,0.247188776701812, +0.296764059941845,0.296764059941845,0.296801207227,0.296775231388922,0.296701934024074,0.2966022944294,0.296499490266331,0.296415699186574,0.296368742432988,0.296368742432988, +0.369710282057963,0.369710282057963,0.369725110226316,0.369663623998464,0.369545868811676,0.369398474477925,0.36925084932215,0.369131654639958,0.369064878627953,0.369064878627953, +0.464697057737663,0.464697057737663,0.464679313369519,0.464565733233388,0.464382961333678,0.464165800657222,0.463952003021929,0.463779268552994,0.463681571422028,0.463681571422028, +0.579240749298714,0.579240749298714,0.579179461959277,0.578992580744955,0.578718884977852,0.578404821523691,0.578097600078336,0.577845766626277,0.577699220282345,0.577699220282345, +0.709815812980079,0.709815812980079,0.709704155216136,0.709413586306042,0.709015263155717,0.708571900820713,0.708137248108224,0.70776829556778,0.707538496131779,0.707538496131779, +0.85187030211911,0.85187030211911,0.851727692134137,0.851274864509847,0.85070691961433,0.850100463032215,0.849500993850089,0.848958017313613,0.848564493117682,0.848564493117682, + +00:50:56, +0.222691380352622,0.222691380352622,0.222748640998734,0.222755119358749,0.222722667276205,0.22266692457516,0.222605043534264,0.222553131517519,0.222523733377485,0.222523733377485, +0.222691380352622,0.222691380352622,0.222748640998734,0.222755119358749,0.222722667276205,0.22266692457516,0.222605043534264,0.222553131517519,0.222523733377485,0.222523733377485, +0.24754256939138,0.24754256939138,0.247593389664481,0.247589398336498,0.247543738710437,0.247473797957026,0.247398705704169,0.247336540690257,0.247301518799036,0.247301518799036, +0.29687265738448,0.29687265738448,0.296909803212121,0.296883837811357,0.296810559577297,0.296710943568139,0.296608162767031,0.296524390346986,0.296477443947576,0.296477443947576, +0.369811538871064,0.369811538871064,0.369826366416123,0.369764896129352,0.369647168962078,0.369499808801689,0.369352217446672,0.369233049855062,0.369166288952806,0.369166288952806, +0.464786734284309,0.464786734284309,0.464768992771763,0.464655437685141,0.464472706844518,0.464255595206805,0.464041845879444,0.463869150359673,0.463771475187643,0.463771475187643, +0.579314009689016,0.579314009689016,0.579252732162193,0.579065889633192,0.578792252685113,0.578478257655438,0.578171103413684,0.577919324934977,0.577772810403985,0.577772810403985, +0.709867915379113,0.709867915379113,0.709756277251246,0.709465766377233,0.709067525024753,0.708624254843565,0.708189692734841,0.707820816758311,0.707591064542841,0.707591064542841, +0.851897428534222,0.851897428534222,0.851754845776042,0.851302105229919,0.850734270949502,0.850127933344167,0.849528581877466,0.848985711386692,0.848592263183402,0.848592263183402, + +00:50:57, +0.222805787706697,0.222805787706697,0.222863048001129,0.222869532713813,0.222837091844538,0.22278136277991,0.222719495119965,0.222667593704325,0.222638201409857,0.222638201409857, +0.222805787706697,0.222805787706697,0.222863048001129,0.222869532713813,0.222837091844538,0.22278136277991,0.222719495119965,0.222667593704325,0.222638201409857,0.222638201409857, +0.247655226394624,0.247655226394624,0.247706045705673,0.247702061914848,0.247656416018757,0.247586492136421,0.247511416534684,0.247449264766119,0.247414250198152,0.247414250198152, +0.296981239777757,0.296981239777757,0.297018384146236,0.296992429180039,0.296919170073287,0.296819577645898,0.296716820203248,0.296633066440172,0.29658613039342,0.29658613039342, +0.369912776194356,0.369912776194356,0.369927603117701,0.369866148767954,0.369748449611995,0.36960112361456,0.369453566049787,0.369334425540212,0.369267679742889,0.369267679742889, +0.464876388632928,0.464876388632928,0.464858649978812,0.464745119934072,0.464562430137257,0.46434536751892,0.464131666479881,0.463959009893223,0.46386135667101,0.46386135667101, +0.579387248362843,0.579387248362843,0.579325980649578,0.579139176791968,0.578865598638415,0.578551672003285,0.578244584935066,0.577992861404892,0.57784637867246,0.57784637867246, +0.709920000366024,0.709920000366024,0.709808381870158,0.709517929009432,0.709119769419886,0.708676591351836,0.708242119806328,0.707873320359435,0.707643615343565,0.707643615343565, +0.851924545241121,0.851924545241121,0.851781989699708,0.851329336197583,0.850761612487367,0.850155393809599,0.849556160009353,0.849013395520472,0.848620023279056,0.848620023279056, + +00:50:58, +0.222920187006872,0.222920187006872,0.222977446942246,0.222983938004539,0.222951508348877,0.222895792923214,0.222833938647647,0.222782047836189,0.222752661389077,0.222752661389077, +0.222920187006872,0.222920187006872,0.222977446942246,0.222983938004539,0.222951508348877,0.222895792923214,0.222833938647647,0.222782047836189,0.222752661389077,0.222752661389077, +0.247767872697134,0.247767872697134,0.247818691040974,0.247814714784557,0.247769082617626,0.247699175606869,0.247624116657387,0.247561978135311,0.247526970891284,0.247526970891284, +0.297089807121321,0.297089807121321,0.297126950028988,0.297101005494607,0.297027765511677,0.296928196662303,0.296825462574599,0.296741727465741,0.296694801770125,0.296694801770125, +0.370013994035835,0.370013994035835,0.370028820339039,0.369967381922256,0.369849710769411,0.369702418924519,0.369554895139477,0.369435781703389,0.369369051006186,0.369369051006186, +0.4649660207982,0.4649660207982,0.464948285005336,0.464834779994852,0.464652131226572,0.464435117608256,0.464221464837939,0.464048847168355,0.463951215886845,0.463951215886845, +0.57946046533775,0.57946046533775,0.579399207438978,0.579212442238841,0.578938922855332,0.578625064584831,0.578318044660106,0.578066376053666,0.577919925105428,0.577919925105428, +0.709972067956378,0.709972067956378,0.709860469088439,0.709570074218225,0.709171996356733,0.708728910361179,0.708294529338378,0.707925806386875,0.707696148549694,0.707696148549694, +0.851951652248928,0.851951652248928,0.851809123914262,0.851356557421998,0.850788944237128,0.850182844437761,0.849583728255047,0.849041069724293,0.848647773414012,0.848647773414012, + +00:50:59, +0.223034578240976,0.223034578240976,0.223091837809923,0.223098335218762,0.223065916777047,0.223010214992878,0.222948374105101,0.222896493900888,0.222867113302914,0.222867113302914, +0.223034578240976,0.223034578240976,0.223091837809923,0.223098335218762,0.223065916777047,0.223010214992878,0.222948374105101,0.222896493900888,0.222867113302914,0.222867113302914, +0.247880508291102,0.247880508291102,0.247931325662581,0.247927356937818,0.247881738499226,0.24781184836054,0.247736806064435,0.247674680789977,0.247639680870571,0.247639680870571, +0.297198359414821,0.297198359414821,0.297235500860027,0.297209566754707,0.297136345892104,0.297036800616981,0.296934089880704,0.296850373423307,0.296803458077299,0.296803458077299, +0.370115192403488,0.370115192403488,0.370130018088119,0.370068595600235,0.369950952442303,0.369803694739543,0.369656204723719,0.369537118352571,0.369470402750673,0.369470402750673, +0.465055630794783,0.465055630794783,0.465037897865989,0.464924417882133,0.464741810127123,0.464524845489483,0.4643112409683,0.464138662199757,0.464041052849843,0.464041052849843, +0.57953366063127,0.57953366063127,0.57947241254792,0.579285685991346,0.579012225353416,0.578698435417652,0.578391482606405,0.578139868898921,0.577993449720522,0.577993449720522, +0.710024118165721,0.710024118165721,0.709912538921636,0.709622202019177,0.709224205850891,0.70878121188723,0.708346921346662,0.707978274856338,0.707748664176954,0.707748664176954, +0.851978749566748,0.851978749566748,0.851836248428821,0.851383768912312,0.850816266207973,0.850210285237889,0.849611286623832,0.849068734007483,0.848675513597628,0.848675513597628, + +00:51:00, +0.223148961396856,0.223148961396856,0.223206220592015,0.223212724344333,0.223180317116888,0.22312462897673,0.223062801480136,0.223010931886221,0.22298155713916,0.22298155713916, +0.223148961396856,0.223148961396856,0.223206220592015,0.223212724344333,0.223180317116888,0.22312462897673,0.223062801480136,0.223010931886221,0.22298155713916,0.22298155713916, +0.247993133168734,0.247993133168734,0.248043949562704,0.248039988366839,0.247994383655756,0.247924510389619,0.247849484747999,0.247787372722277,0.247752380128166,0.247752380128166, +0.297306896657909,0.297306896657909,0.297344036639003,0.297318112959985,0.297244911214209,0.297145389509564,0.297042702121185,0.296959004312487,0.296912099314558,0.296912099314558, +0.370216371305294,0.370216371305294,0.370231196372915,0.370169789809863,0.370052174638637,0.369904951067599,0.36975749481048,0.369638435495724,0.369571734984318,0.369571734984318, +0.465145218637323,0.465145218637323,0.465127488575405,0.465014033610553,0.464831466853551,0.464614551177252,0.464400994885627,0.464228455002105,0.464130867574685,0.464130867574685, +0.579606834260914,0.579606834260914,0.579545595993909,0.579358908066993,0.579085506150197,0.578771784519302,0.578464898791542,0.578213339958256,0.578066952535355,0.578066952535355, +0.710076151009582,0.710076151009582,0.709964591385276,0.709674312427834,0.709276397917937,0.708833495945602,0.708399295846834,0.708030725783505,0.707801162241048,0.707801162241048, +0.852005837203677,0.852005837203677,0.851863363252485,0.851410970677658,0.85084357840908,0.850237716219209,0.84963883512498,0.849096388379355,0.848703243839249,0.848703243839249, + +00:51:01, +0.22326333646238,0.22326333646238,0.223320595276398,0.223327105369127,0.223294709356264,0.223239034862617,0.223177220760584,0.223125361780005,0.223095992885625,0.223095992885625, +0.22326333646238,0.22326333646238,0.223320595276398,0.223327105369127,0.223294709356264,0.223239034862617,0.223177220760584,0.223125361780005,0.223095992885625,0.223095992885625, +0.248105747322251,0.248105747322251,0.24815656273357,0.248152609063841,0.248107018079426,0.248037161686304,0.247962152700264,0.247900053924385,0.247865068656237,0.247865068656237, +0.297415418850243,0.297415418850243,0.297452557365575,0.297426644110094,0.297353461477636,0.29725396333969,0.297151299295672,0.297067620132903,0.297020725481518,0.297020725481518, +0.370317530749225,0.370317530749225,0.370332355201393,0.370270964559101,0.370153377366377,0.370006187916647,0.36985876540772,0.36973973314081,0.369673047715083,0.369673047715083, +0.465234784340443,0.465234784340443,0.465217057148203,0.465103627194727,0.464921101420482,0.464704234686199,0.464490726604566,0.464318225590053,0.464220660076032,0.464220660076032, +0.579679986244169,0.579679986244169,0.579618757794425,0.579432108483273,0.579158765263184,0.578845111907312,0.578538293233073,0.578286789249248,0.578140433567515,0.578140433567515, +0.710128166503464,0.710128166503464,0.710016626494864,0.70972640545972,0.709328572573427,0.708885762551888,0.708451652854522,0.708083159184042,0.707853642757659,0.707853642757659, +0.852032915168795,0.852032915168795,0.851890468394347,0.85143816272716,0.850870880849615,0.850265137390933,0.849666373767752,0.849124032849213,0.848730964148206,0.848730964148206, + +00:51:02, +0.223377703425438,0.223377703425438,0.223434961850969,0.223441478281037,0.223409093483057,0.223353432638405,0.223291631934296,0.223239783570077,0.223210420530139,0.223210420530139, +0.223377703425438,0.223377703425438,0.223434961850969,0.223441478281037,0.223409093483057,0.223353432638405,0.223291631934296,0.223239783570077,0.223210420530139,0.223210420530139, +0.248218350743886,0.248218350743886,0.248269165167415,0.24826521902106,0.248219641762463,0.248149802242807,0.248074809913427,0.248012724388488,0.247977746446965,0.247977746446965, +0.297523925991483,0.297523925991483,0.297561063039403,0.29753516020469,0.297461996682035,0.297362522106998,0.297259881403796,0.297176220884179,0.297129336577802,0.297129336577802, +0.370418670743245,0.370418670743245,0.370433494581511,0.370372119855905,0.370254560633473,0.37010740529464,0.369960016523392,0.369841011295781,0.36977434095092,0.36977434095092, +0.465324327918753,0.465324327918753,0.465306603598981,0.465193198649258,0.465010713842522,0.464793896030941,0.464580436139747,0.464407973978241,0.464310430368528,0.464310430368528, +0.579753116598501,0.579753116598501,0.579691897966929,0.579505287257653,0.579232002709862,0.578918417599191,0.578611665948531,0.578360216789453,0.57821389283457,0.57821389283457, +0.710180164662855,0.710180164662855,0.710068644265886,0.70977848113034,0.709380729832895,0.708938011721661,0.708503992385339,0.70813557507359,0.70790610574245,0.70790610574245, +0.852059983471174,0.852059983471174,0.851917563863485,0.851465345069927,0.85089817353873,0.850292548762261,0.849693902561395,0.849151667426347,0.848758674533821,0.848758674533821, + +00:51:03, +0.223492062273936,0.223492062273936,0.223549320303644,0.223555843067976,0.223523469485171,0.223467822291983,0.223406034989143,0.223354197244297,0.223324840060552,0.223324840060552, +0.223492062273936,0.223492062273936,0.223549320303644,0.223555843067976,0.223523469485171,0.223467822291983,0.223406034989143,0.223354197244297,0.223324840060552,0.223324840060552, +0.248330943425888,0.248330943425888,0.248381756856495,0.248377818230745,0.248332254697107,0.248262432051355,0.248187456379702,0.248125384106788,0.248090413492546,0.248090413492546, +0.297632418081295,0.297632418081295,0.29766955366015,0.297643661243434,0.297570516827059,0.297471065811133,0.297368448445193,0.297284806565946,0.297237932603036,0.297237932603036, +0.37051979129531,0.37051979129531,0.370534614521221,0.370473255708223,0.370355724447873,0.370208603209522,0.37006124816544,0.369942269968582,0.369875614699775,0.369875614699775, +0.465413849386843,0.465413849386843,0.465396127942324,0.465282747988728,0.465100304134261,0.464883535226079,0.46467012350578,0.46449770018129,0.4644001784668,0.4644001784668, +0.579826225341354,0.579826225341354,0.579765016528858,0.579578444407578,0.579305218507694,0.578991701612428,0.578685016955428,0.578433622596401,0.578287330354064,0.578287330354064, +0.71023214550322,0.71023214550322,0.710120644713808,0.709830539455179,0.709432869711858,0.708990243470473,0.708556314454873,0.708187973467772,0.707958551211063,0.707958551211063, +0.852087042119871,0.852087042119871,0.851944649668965,0.851492517715059,0.850925456485567,0.850319950342382,0.849721421515143,0.849179292120033,0.848786375005399,0.848786375005399, + +00:51:04, +0.223606412995804,0.223606412995804,0.223663670622358,0.223670199717878,0.223637837350527,0.223582203811257,0.223520429913017,0.223468602790542,0.223439251464736,0.223439251464736, +0.223606412995804,0.223606412995804,0.223663670622358,0.223670199717878,0.223637837350527,0.223582203811257,0.223520429913017,0.223468602790542,0.223439251464736,0.223439251464736, +0.248443525360521,0.248443525360521,0.248494337793076,0.248490406685161,0.248444856875612,0.248375051104189,0.248300092091317,0.248238033071502,0.248203069785191,0.248203069785191, +0.297740895119346,0.297740895119346,0.297778029227486,0.297752147225989,0.297679021912364,0.297579594451743,0.297477000419503,0.297393377177836,0.297346513556848,0.297346513556848, +0.370620892413369,0.370620892413369,0.370635715028466,0.370574372123993,0.370456868817514,0.37030978166923,0.370162460341801,0.370043509167152,0.369976868969586,0.369976868969586, +0.465503348759287,0.465503348759287,0.465485630192796,0.465372275227703,0.465189872310272,0.464973152286195,0.464759788717261,0.464587404213803,0.464489904385458,0.464489904385458, +0.579899312490148,0.579899312490148,0.579838113497626,0.579651579950471,0.579378412674121,0.579064963964486,0.578758346271254,0.578507006687605,0.578360746143519,0.578360746143519, +0.710284109040004,0.710284109040004,0.710172627854075,0.7098825804497,0.709484992225811,0.709042457813858,0.708608619078695,0.70824035438219,0.70801097917912,0.70801097917912, +0.852114091123933,0.852114091123933,0.851971725819842,0.851519680671641,0.850952729699253,0.85034734214047,0.849748930638221,0.849206906939538,0.848814065572235,0.848814065572235, + +00:51:05, +0.223720755578989,0.223720755578989,0.223778012795068,0.223784548218697,0.223752197067068,0.223696577184155,0.223634816693829,0.223583000196709,0.22355365473058,0.22355365473058, +0.223720755578989,0.223720755578989,0.223778012795068,0.223784548218697,0.223752197067068,0.223696577184155,0.223634816693829,0.223583000196709,0.22355365473058,0.22355365473058, +0.248556096540059,0.248556096540059,0.24860690796944,0.248602984376585,0.248557448290245,0.248487659393563,0.248412717040513,0.248350671274859,0.248315715317122,0.248315715317122, +0.297849357105311,0.297849357105311,0.297886489741082,0.297860618152024,0.297787511937613,0.297688108028481,0.297585537326372,0.297501932719488,0.297455079438875,0.297455079438875, +0.370721974105363,0.370721974105363,0.370736796111182,0.370675469111149,0.370557993750326,0.370410940681695,0.370263653060405,0.370144728899419,0.370078103768283,0.370078103768283, +0.46559282605064,0.46559282605064,0.465575110364945,0.465461780380731,0.465279418385109,0.465062747225853,0.464849431788764,0.464677086090367,0.464579608139093,0.464579608139093, +0.579972378062283,0.579972378062283,0.579911188890627,0.579724693903733,0.579451585226562,0.579138204672808,0.578831653913476,0.57858036908055,0.578434140220435,0.578434140220435, +0.71033605528863,0.71033605528863,0.710224593702111,0.709934604129346,0.709537097390227,0.709094654767325,0.708660906272354,0.708292717832424,0.708063389662221,0.708063389662221, +0.852141130492392,0.852141130492392,0.851998792325157,0.851546833948748,0.850979993188906,0.85037472416569,0.849776429939838,0.849234511894113,0.848841746243613,0.848841746243613, + +00:51:06, +0.223835090011458,0.223835090011458,0.22389234680975,0.223898888558404,0.223866548622757,0.223810942398624,0.223749195319509,0.223697389450718,0.223668049845997,0.223668049845997, +0.223835090011458,0.223835090011458,0.22389234680975,0.223898888558404,0.223866548622757,0.223810942398624,0.223749195319509,0.223697389450718,0.223668049845997,0.223668049845997, +0.248668656956795,0.248668656956795,0.248719467377882,0.248715551297309,0.24867002893329,0.248600256911748,0.248525331219544,0.248463298709105,0.24842835008058,0.24842835008058, +0.297957804038864,0.297957804038864,0.297994935200615,0.29796907402121,0.297895986902469,0.297796606541004,0.297694059165446,0.297610473190544,0.297563630248753,0.297563630248753, +0.370823036379225,0.370823036379225,0.370837857777295,0.370776546677615,0.370659099254232,0.370512080254837,0.370364826329174,0.370245929173307,0.37017931910379,0.37017931910379, +0.46568228127544,0.46568228127544,0.465664568473302,0.465551263462343,0.465368942373311,0.465152320059603,0.46493905273485,0.46476674582555,0.464669289742281,0.464669289742281, +0.580045422075136,0.580045422075136,0.579984242725231,0.579797786284742,0.579524736182414,0.579211423754814,0.578904939899538,0.578653709792703,0.57850751260229,0.57850751260229, +0.710387984264505,0.710387984264505,0.710276542273321,0.709986610509541,0.70958918522056,0.709146834346366,0.708713176051379,0.708345063834036,0.708115782675948,0.708115782675948, +0.852168160234272,0.852168160234272,0.852025849193942,0.851573977555441,0.85100724696363,0.850402096427192,0.849803919429194,0.849262106993,0.848869417028803,0.848869417028803, + +00:51:07, +0.223949416281201,0.223949416281201,0.224006672654399,0.224013220724994,0.223980892005576,0.223925299442631,0.223863565778009,0.223811770540505,0.223782436798915,0.223782436798915, +0.223949416281201,0.223949416281201,0.224006672654399,0.224013220724994,0.223980892005576,0.223925299442631,0.223863565778009,0.223811770540505,0.223782436798915,0.223782436798915, +0.248781206603033,0.248781206603033,0.248832016010712,0.248828107439639,0.248782598797042,0.248712843651025,0.248637934620682,0.248575915366498,0.248540974067816,0.248540974067816, +0.298066235919689,0.298066235919689,0.298103365605766,0.298077514833225,0.298004446806602,0.297905089988971,0.297802565936379,0.297718998590648,0.297672165986126,0.297672165986126, +0.370924079242881,0.370924079242881,0.370938900034727,0.370877604831307,0.370760185337147,0.370613200396571,0.370465980156022,0.370347109996729,0.370280514984021,0.370280514984021, +0.46577171444821,0.46577171444821,0.465754004532381,0.465640724487054,0.465458444289397,0.465241870801975,0.46502865157006,0.464856383433906,0.464758949209579,0.464758949209579, +0.580118444546061,0.580118444546061,0.580057275018787,0.579870857110856,0.579597865559052,0.579284621227902,0.578978204246863,0.578727028841508,0.57858086330654,0.57858086330654, +0.710439895983012,0.710439895983012,0.710328473583089,0.710038599605688,0.709641255732246,0.709198996566453,0.708765428431277,0.708397392402567,0.70816815823586,0.70816815823586, +0.852195180358581,0.852195180358581,0.852052896435215,0.851601111500769,0.851034491032516,0.850429458934117,0.849831399115473,0.849289692245427,0.848897077937062,0.848897077937062, + +00:51:08, +0.224063734376224,0.224063734376224,0.22412099031703,0.224127544706478,0.224095227203528,0.224039648304163,0.2239779280573,0.22392614345403,0.223896815577287,0.223896815577287, +0.224063734376224,0.224063734376224,0.22412099031703,0.224127544706478,0.224095227203528,0.224039648304163,0.2239779280573,0.22392614345403,0.223896815577287,0.223896815577287, +0.248893745471092,0.248893745471092,0.248944553860253,0.248940652795895,0.248895157873812,0.248825419603693,0.24875052723621,0.248688521239312,0.248653587271098,0.248653587271098, +0.298174652747468,0.298174652747468,0.298211780956218,0.298185940587746,0.298112891649684,0.298013558372048,0.297911057638825,0.297827508919451,0.297780686650638,0.297780686650638, +0.371025102704249,0.371025102704249,0.371039922891389,0.370978643580134,0.370861252006978,0.370714301114804,0.370567114548857,0.370448271377595,0.370381691416883,0.370381691416883, +0.465861125583453,0.465861125583453,0.465843418556676,0.465730163469358,0.46554792414787,0.465331399467481,0.465118228308919,0.464945998929966,0.464848586555526,0.464848586555526, +0.580191445492392,0.580191445492392,0.580130285788621,0.579943906399409,0.579670973373827,0.57935779710945,0.579051446972852,0.578800326244384,0.578654192350617,0.578654192350617, +0.710491790459516,0.710491790459516,0.71038038764678,0.71009057143317,0.709693308940697,0.709251141443036,0.708817663427538,0.708449703553536,0.708220516357498,0.708220516357498, +0.852222190874318,0.852222190874318,0.852079934057981,0.851628235793772,0.851061725404646,0.85045681169559,0.84985886900785,0.84931726766061,0.848924728977636,0.848924728977636, + +00:51:09, +0.224178044284554,0.224178044284554,0.22423529978568,0.224241860490891,0.224209554204633,0.224153988971227,0.224092282145373,0.224040508179269,0.224011186169082,0.224011186169082, +0.224178044284554,0.224178044284554,0.22423529978568,0.224241860490891,0.224209554204633,0.224153988971227,0.224092282145373,0.224040508179269,0.224011186169082,0.224011186169082, +0.249006273553304,0.249006273553304,0.249057080918842,0.249053187358412,0.249007706155924,0.248937984762062,0.248863109058425,0.248801116319832,0.248766189682706,0.248766189682706, +0.29828305452189,0.29828305452189,0.298320181251659,0.29829435128446,0.298221321431393,0.298122011689902,0.298019534272446,0.297936004176607,0.297889192241941,0.297889192241941, +0.371126106771239,0.371126106771239,0.371140926355188,0.371079662931999,0.370962299271624,0.370815382417435,0.370668229515577,0.370549413323802,0.370482848410278,0.370482848410278, +0.465950514695655,0.465950514695655,0.465932810560667,0.465819580423736,0.465637381963216,0.465420906070619,0.465207782965935,0.46503559232825,0.464938201794646,0.464938201794646, +0.580264424931438,0.580264424931438,0.580203275052037,0.580016934167712,0.579744059644072,0.57943095141681,0.579124668094884,0.578873602018733,0.578727499751935,0.578727499751935, +0.71054366770936,0.71054366770936,0.710432284479737,0.710142526007348,0.709745344861308,0.709303268991545,0.708869881055628,0.708501997302443,0.70827285705638,0.70827285705638, +0.852249191790468,0.852249191790468,0.852106962071235,0.851655350443474,0.851088950089087,0.850484154720726,0.849886329115486,0.849344833247752,0.848952370159759,0.848952370159759, + +00:51:10, +0.22429234599424,0.22429234599424,0.224349601048403,0.224356168066284,0.224323872996935,0.224268321431849,0.224206628030238,0.224154864704221,0.224125548562292,0.224125548562292, +0.22429234599424,0.22429234599424,0.224349601048403,0.224356168066284,0.224323872996935,0.224268321431849,0.224206628030238,0.224154864704221,0.224125548562292,0.224125548562292, +0.249118790842017,0.249118790842017,0.249169597178832,0.249165711119537,0.249120243635717,0.249050539118459,0.24897568007964,0.24891370060036,0.248878781294935,0.248878781294935, +0.298391441242648,0.298391441242648,0.298428566491782,0.298402746923053,0.29832973615141,0.298230449942207,0.298127995836907,0.298044484361773,0.297997682759688,0.297997682759688, +0.371227091451753,0.371227091451753,0.37124191043402,0.371180662894795,0.371063327138979,0.370916444312356,0.370769325064073,0.370650535843243,0.370583985972098,0.370583985972098, +0.466039881799285,0.466039881799285,0.466022180558815,0.465908975364648,0.465726817749904,0.465510390625866,0.465297315555596,0.465125163643256,0.465027794941443,0.465027794941443, +0.58033738288049,0.58033738288049,0.58027624282632,0.580089940433057,0.579817124387092,0.579504084167314,0.579197867630314,0.57894685618193,0.578800785527881,0.578800785527881, +0.710595527747868,0.710595527747868,0.710484164097284,0.710194463343566,0.70979736350945,0.709355379227391,0.708922081330997,0.708554273664768,0.708325180348007,0.708325180348007, +0.852276183116005,0.852276183116005,0.85213398048396,0.85168245545889,0.851116165094894,0.850511488018629,0.849913779447531,0.849372389016045,0.84898000149265,0.84898000149265, + +00:51:11, +0.224406639493348,0.224406639493348,0.224463894093273,0.224470467420729,0.224438183568495,0.224382645674076,0.224320965699926,0.224269213016903,0.224239902744925,0.224239902744925, +0.224406639493348,0.224406639493348,0.224463894093273,0.224470467420729,0.224438183568495,0.224382645674076,0.224320965699926,0.224269213016903,0.224239902744925,0.224239902744925, +0.249231297329591,0.249231297329591,0.249282102632588,0.249278224071632,0.249232770305544,0.249163082665222,0.24908824029218,0.249026274073212,0.248991362100095,0.248991362100095, +0.298499812909438,0.298499812909438,0.298536936676283,0.298511127503217,0.298438135809418,0.298338873128638,0.298236442331874,0.298152949474612,0.298106158203539,0.298106158203539, +0.371328056753688,0.371328056753688,0.371342875135774,0.371281643476408,0.371164335616926,0.37101748680745,0.37087040120223,0.370751638943803,0.370685104110226,0.370685104110226, +0.466129226908797,0.466129226908797,0.466111528565563,0.46599834830654,0.465816231522385,0.465599853147684,0.465386826092377,0.465214712889467,0.465117366010407,0.465117366010407, +0.580410319356812,0.580410319356812,0.580349189128727,0.580162925212711,0.579890167620177,0.579577195378274,0.579271045596478,0.579020088751331,0.578874049695822,0.578874049695822, +0.710647370590344,0.710647370590344,0.710536026514725,0.710246383457146,0.709849364900478,0.709407472165963,0.708974264269069,0.708606532655969,0.708377486247856,0.708377486247856, +0.852303164859891,0.852303164859891,0.852160989305124,0.85170955084902,0.851143370431113,0.850538811598389,0.849941220013122,0.849399934974668,0.849007622985519,0.849007622985519, + +00:51:12, +0.224520924769964,0.224520924769964,0.224578178908387,0.224584758542318,0.224552485907394,0.224496961685975,0.224435295142488,0.224383553105352,0.224354248705013,0.224354248705013, +0.224520924769964,0.224520924769964,0.224578178908387,0.224584758542318,0.224552485907394,0.224496961685975,0.224435295142488,0.224383553105352,0.224354248705013,0.224354248705013, +0.249343793008401,0.249343793008401,0.24939459727249,0.249390726207074,0.24934528615777,0.249275615394705,0.249200789688386,0.249138836730716,0.249103932090507,0.249103932090507, +0.298608169521961,0.298608169521961,0.29864529180486,0.298619493024648,0.298546520405108,0.298447281248877,0.29834487375702,0.298261399514788,0.298214618573155,0.298214618573155, +0.371429002684929,0.371429002684929,0.371443820468334,0.371382604684718,0.371265324713344,0.371118509910593,0.370971457937925,0.370852722633359,0.370786202832542,0.370786202832542, +0.466218550038623,0.466218550038623,0.46620085459534,0.466087699263839,0.465905623295092,0.465689293650518,0.465476314590732,0.465304240081348,0.465206915016008,0.465206915016008, +0.58048323437765,0.58048323437765,0.5804221139765,0.580235888523922,0.579963189360589,0.579650285066976,0.579344202010687,0.579093299744269,0.578947292273104,0.578947292273104, +0.710699196252071,0.710699196252071,0.710587871747343,0.71029828636339,0.709901349049724,0.709459547822631,0.709026429885254,0.708658774291487,0.708429774771387,0.708429774771387, +0.852330137031076,0.852330137031076,0.852187988543688,0.851736636622856,0.851170566106774,0.850566125469084,0.849968650821385,0.849427471132789,0.849035234647563,0.849035234647563, + +00:51:13, +0.224635201812196,0.224635201812196,0.224692455481857,0.224699041419164,0.224666780001733,0.22461126945563,0.224549616345993,0.224497884957626,0.224468586430605,0.224468586430605, +0.224635201812196,0.224635201812196,0.224692455481857,0.224699041419164,0.224666780001733,0.22461126945563,0.224549616345993,0.224497884957626,0.224468586430605,0.224468586430605, +0.249456277870835,0.249456277870835,0.249507081090929,0.249503217518252,0.249457791184776,0.249388137299275,0.249313328260611,0.249251388565215,0.249216491258511,0.249216491258511, +0.29871651107992,0.29871651107992,0.29875363187722,0.298727843487045,0.298654889938171,0.298555674302607,0.298453290112022,0.298369834481972,0.298323063868202,0.298323063868202, +0.371529929253359,0.371529929253359,0.371544746439574,0.371483546527596,0.3713662944361,0.371219513629655,0.371072495279026,0.37095378691978,0.370887282146915,0.370887282146915, +0.466307851203182,0.466307851203182,0.466290158662554,0.466177028250955,0.465994993082442,0.465778712148793,0.4655657810651,0.465393745233347,0.465296441972699,0.465296441972699, +0.580556127960227,0.580556127960227,0.580495017386853,0.580308830383913,0.580036189625571,0.579723353250686,0.579417336890231,0.579166489178054,0.57902051327705,0.57902051327705, +0.710751004748314,0.710751004748314,0.710639699810402,0.710350172077581,0.709953315972502,0.709511606212746,0.709078578194938,0.708710998586739,0.708482045934037,0.708482045934037, +0.852357099638497,0.852357099638497,0.852214978208596,0.851763712789374,0.851197752130897,0.85059342963978,0.849996071881431,0.849454997499561,0.849062836487964,0.849062836487964, + +00:51:14, +0.224749470608169,0.224749470608169,0.224806723801818,0.224813316039398,0.224781065839633,0.224725568971149,0.224663929298532,0.224612208561802,0.224582915909772,0.224582915909772, +0.224749470608169,0.224749470608169,0.224806723801818,0.224813316039398,0.224781065839633,0.224725568971149,0.224663929298532,0.224612208561802,0.224582915909772,0.224582915909772, +0.249568751909297,0.249568751909297,0.249619554080315,0.249615697997571,0.249570285378956,0.249500648371313,0.249425856001224,0.249363929569067,0.249329039596456,0.249329039596456, +0.298824837583024,0.298824837583024,0.298861956893068,0.298836178890113,0.298763244408304,0.298664052289516,0.298561691396559,0.298478254375838,0.298431494088351,0.298431494088351, +0.371630836466848,0.371630836466848,0.37164565305736,0.371584469012904,0.371467244793057,0.371320497972497,0.371173513233395,0.371054831810927,0.370988342061206,0.370988342061206, +0.466397130416874,0.466397130416874,0.466379440781598,0.466266335282281,0.466084340898835,0.465868108656921,0.465655225529902,0.465483228359896,0.465385946894918,0.465385946894918, +0.580629000121744,0.580629000121744,0.580567899376982,0.580381750809888,0.580109168432344,0.579796399946649,0.57949045025238,0.579239657069975,0.579093712724961,0.579093712724961, +0.710802796094315,0.710802796094315,0.710691510719146,0.71040204061498,0.710005265684103,0.709563647351636,0.709130709213487,0.708763205557124,0.708534299751225,0.708534299751225, +0.852384052691082,0.852384052691082,0.852241958308784,0.85179077935754,0.851224928512491,0.850620724119531,0.850023483202363,0.849482514084128,0.849090428515896,0.849090428515896, + +00:51:15, +0.224863731146029,0.224863731146029,0.224920983856424,0.224927582391169,0.224895343409235,0.224839860220656,0.224778233988214,0.224726523905976,0.224697237130602,0.224697237130602, +0.224863731146029,0.224863731146029,0.224920983856424,0.224927582391169,0.224895343409235,0.224839860220656,0.224778233988214,0.224726523905976,0.224697237130602,0.224697237130602, +0.249681215116202,0.249681215116202,0.249732016233068,0.249728167637447,0.249682768732718,0.249613148603216,0.249538372902606,0.249476459734643,0.249441577096708,0.249441577096708, +0.298933149030984,0.298933149030984,0.298970266852116,0.298944499233558,0.298871583815208,0.298772415209297,0.298670077610317,0.298586659196063,0.298539909233277,0.298539909233277, +0.371731724333261,0.371731724333261,0.371746540329552,0.3716853721485,0.37156817579207,0.371421462946972,0.371274511808886,0.371155857314657,0.371089382583272,0.371089382583272, +0.466486387694082,0.466486387694082,0.466468700966848,0.466355620372192,0.466173666758653,0.465957483189293,0.465744647999542,0.465572689475407,0.465475429797083,0.465475429797083, +0.580701850879378,0.580701850879378,0.580640759964059,0.580454649819027,0.580182125798106,0.579869425172087,0.57956354211438,0.579312803437301,0.579166890634115,0.579166890634115, +0.710854570305299,0.710854570305299,0.710743304488798,0.71045389199083,0.710057198199802,0.709615671254611,0.709182822956248,0.708815395218021,0.708586536238349,0.708586536238349, +0.852410996197743,0.852410996197743,0.852268928853174,0.851817836336308,0.851252095260551,0.850648008917381,0.850050884793268,0.84951002089562,0.849118010740519,0.849118010740519, + +00:51:16, +0.224977983413941,0.224977983413941,0.225035235633847,0.22504184046265,0.225009612698698,0.224954143192297,0.224892530403169,0.224840830978265,0.224811550081206,0.224811550081206, +0.224977983413941,0.224977983413941,0.225035235633847,0.22504184046265,0.225009612698698,0.224954143192297,0.224892530403169,0.224840830978265,0.224811550081206,0.224811550081206, +0.249793667483981,0.249793667483981,0.249844467541622,0.249840626430313,0.249795241238486,0.249725637987391,0.249650878957154,0.249588979054327,0.249554103751645,0.249554103751645, +0.299041445423517,0.299041445423517,0.299078561754081,0.299052804517092,0.298979908158587,0.298880763061646,0.298778448752982,0.298695048942329,0.298648309302657,0.298648309302657, +0.371832592860456,0.371832592860456,0.371847408264002,0.371786255942232,0.371669087440984,0.371522408560928,0.371375491013344,0.371256863438814,0.371190403720959,0.371190403720959, +0.466575623049172,0.466575623049172,0.46655793923266,0.466444883535048,0.466262970676261,0.466046835760286,0.465834048488407,0.465662128594277,0.465564890693597,0.465564890693597, +0.580774680250289,0.580774680250289,0.580713599165236,0.580527527428489,0.580255061740036,0.5799424289442,0.579636612493455,0.579385928297274,0.579240047021771,0.579240047021771, +0.710906327396468,0.710906327396468,0.710795081134563,0.710505726220352,0.71010911353485,0.709667677936961,0.709234919438547,0.708867567584787,0.708638755410786,0.708638755410786, +0.852437930167384,0.852437930167384,0.852295889850676,0.85184488373462,0.85127925238406,0.850675284042359,0.850078276663223,0.849537517943155,0.849145583170978,0.849145583170978, + +00:51:17, +0.225092227400091,0.225092227400091,0.225149479122281,0.22515609024203,0.225123873696203,0.225068417874235,0.225006818531545,0.224955129766805,0.224925854749711,0.224925854749711, +0.225092227400091,0.225092227400091,0.225149479122281,0.22515609024203,0.225123873696203,0.225068417874235,0.225006818531545,0.224955129766805,0.224925854749711,0.224925854749711, +0.249906109005078,0.249906109005078,0.249956907998428,0.249953074368614,0.249907702888693,0.249838116516262,0.249763374157277,0.24970148752052,0.249666619553663,0.249666619553663, +0.299149726760342,0.299149726760342,0.299186841598681,0.29916109474043,0.29908821743815,0.298989095846264,0.298886804824247,0.298803423614322,0.298756694296174,0.298756694296174, +0.371933442056281,0.371933442056281,0.371948256868554,0.37188712040194,0.371769979747641,0.371623334822201,0.37147645085461,0.37135785019124,0.371291405482108,0.371291405482108, +0.466664836496493,0.466664836496493,0.466647155593377,0.466534124785189,0.466352252666009,0.466136166384258,0.465923427010867,0.465751545730886,0.465654329598845,0.465654329598845, +0.58084748825161,0.58084748825161,0.580786416997641,0.580600383655411,0.580327976275286,0.580015411280167,0.579709661406809,0.57945903166712,0.579313181905163,0.579313181905163, +0.710958067383007,0.710958067383007,0.710846840671622,0.71055754331875,0.71016101170448,0.709719667413954,0.709286998675692,0.708919722672761,0.708690957283894,0.708690957283894, +0.852464854608895,0.852464854608895,0.85232284131019,0.851871921561407,0.851306399891991,0.850702549503483,0.850105658821294,0.849565005235839,0.849173145816411,0.849173145816411, + +00:51:18, +0.225206463092682,0.225206463092682,0.225263714309937,0.22527033171752,0.225238126389949,0.225182684254657,0.225121098361512,0.225069420259752,0.225040151124267,0.225040151124267, +0.225206463092682,0.225206463092682,0.225263714309937,0.22527033171752,0.225238126389949,0.225182684254657,0.225121098361512,0.225069420259752,0.225040151124267,0.225040151124267, +0.250018539671951,0.250018539671951,0.250069337595948,0.25006551144481,0.250020153675792,0.249950584182267,0.249875858495399,0.249813985125634,0.249779124495166,0.249779124495166, +0.299257993041183,0.299257993041183,0.299295106385639,0.299269369903292,0.299196511653609,0.299097413562853,0.298995145823808,0.298911783211732,0.298865064213514,0.298865064213514, +0.37203427192858,0.37203427192858,0.372049086151045,0.371987965535458,0.37187085271987,0.371724241738625,0.371577391340514,0.371458817579765,0.37139238787455,0.37139238787455, +0.466754028050376,0.466754028050376,0.466736350063323,0.46662334413694,0.466441512742226,0.466225475075549,0.466012783581273,0.465840940899596,0.465743746527196,0.465743746527196, +0.580920274900456,0.580920274900456,0.580859213478383,0.580673218516909,0.580400869420992,0.580088372197143,0.579782688871621,0.579532113564039,0.579386295301505,0.579386295301505, +0.71100979028008,0.71100979028008,0.710898583115141,0.710609343301205,0.710212892723906,0.70977163970084,0.709339060682968,0.708971860497261,0.708743141873011,0.708743141873011, +0.852491769531154,0.852491769531154,0.852349783240602,0.851898949825585,0.851333537793303,0.850729805309759,0.850133031276531,0.849592482782767,0.84920069868594,0.84920069868594, + +00:51:19, +0.225320690479939,0.225320690479939,0.225377941185048,0.225384564877347,0.225352370768154,0.225296942321765,0.225235369881257,0.225183702445282,0.225154439193042,0.225154439193042, +0.225320690479939,0.225320690479939,0.225377941185048,0.225384564877347,0.225352370768154,0.225296942321765,0.225235369881257,0.225183702445282,0.225154439193042,0.225154439193042, +0.250130959477072,0.250130959477072,0.250181756326657,0.250177937651373,0.250132593592244,0.250063040977855,0.249988331963957,0.249926471862096,0.249891618568576,0.249891618568576, +0.299366244265767,0.299366244265767,0.299403356114683,0.299377630005399,0.299304790804679,0.299205716211123,0.299103471751364,0.299020127734252,0.298973419054367,0.298973419054367, +0.372135082485187,0.372135082485187,0.372149896119304,0.372088791350613,0.371971706365497,0.371825129318021,0.37167831247888,0.371559765612214,0.37149335090611,0.37149335090611, +0.466843197725136,0.466843197725136,0.466825522656803,0.466712541604609,0.466530750919226,0.466314761848485,0.466102118213962,0.465930314114752,0.465833141492998,0.465833141492998, +0.580993040213918,0.580993040213918,0.580931988624547,0.580746032030076,0.580473741194263,0.580161311712265,0.579855694905051,0.57960517400521,0.579459387227988,0.579459387227988, +0.711061496102829,0.711061496102829,0.710950308480264,0.710661126182879,0.71026475660832,0.70982359481285,0.709391105475643,0.709023981073585,0.708795309193454,0.708795309193454, +0.852518674943029,0.852518674943029,0.852376715650788,0.851925968536062,0.851360666096945,0.850757051470182,0.850160394037976,0.849619950593021,0.849228241788677,0.849228241788677, + +00:51:20, +0.225434909550106,0.225434909550106,0.225492159735866,0.225498789709763,0.225466606819058,0.225411192063783,0.225349633078988,0.225297976311589,0.225268718944223,0.225268718944223, +0.225434909550106,0.225434909550106,0.225492159735866,0.225498789709763,0.225466606819058,0.225411192063783,0.225349633078988,0.225297976311589,0.225268718944223,0.225268718944223, +0.250243368412926,0.250243368412926,0.250294164183047,0.25029035298079,0.250245022630528,0.250175486895492,0.250100794555404,0.250038947722347,0.250004101766329,0.250004101766329, +0.299474480433826,0.299474480433826,0.299511590785544,0.29948587504648,0.299413054891082,0.299314003790784,0.299211782606621,0.299128457181579,0.299081758818427,0.299081758818427, +0.372235873733928,0.372235873733928,0.372250686781153,0.372189597855222,0.372072540692337,0.371925997568207,0.371779214277524,0.371660694296405,0.371594294584606,0.371594294584606, +0.466932345535071,0.466932345535071,0.466914673388109,0.466801717202485,0.466619967211308,0.466404026717373,0.466191430923252,0.466019665390683,0.465922514510588,0.465922514510588, +0.581065784209066,0.581065784209066,0.581004742453197,0.580818824211984,0.580546591612191,0.580234229842645,0.579928679524237,0.579678213007792,0.579532457701783,0.579532457701783, +0.71111318486638,0.71111318486638,0.711002016782114,0.710712891978916,0.710316603372895,0.709875532765191,0.709443133068961,0.709076084417011,0.708847459260521,0.708847459260521, +0.852545570853373,0.852545570853373,0.852403638549611,0.851952977701732,0.851387784811852,0.850784287993733,0.850187747114657,0.849647408675669,0.84925577513372,0.84925577513372, + +00:51:21, +0.225549120291446,0.225549120291446,0.22560636995066,0.225613006203033,0.225580834530917,0.225525433468955,0.225463887942934,0.225412241846888,0.225382990366019,0.225382990366019, +0.225549120291446,0.225549120291446,0.22560636995066,0.225613006203033,0.225580834530917,0.225525433468955,0.225463887942934,0.225412241846888,0.225382990366019,0.225382990366019, +0.250355766472013,0.250355766472013,0.250406561157621,0.250402757425562,0.250357440783134,0.250287921927656,0.250213246262204,0.250151412698842,0.250116574080873,0.250116574080873, +0.299582701545094,0.299582701545094,0.299619810397956,0.299594105026264,0.29952130391254,0.299422276301553,0.299320078389285,0.299236771553416,0.299190083505393,0.299190083505393, +0.372336645682622,0.372336645682622,0.372351458144405,0.372290385057097,0.372173355708202,0.372026846496992,0.371880096744257,0.371761603640146,0.371695218917849,0.371695218917849, +0.467021471494461,0.467021471494461,0.467003802271512,0.466890870944843,0.466709161632749,0.466493269696502,0.466280721723445,0.466108994741699,0.466011865594282,0.466011865594282, +0.581138506902949,0.581138506902949,0.581077474981375,0.580891595079684,0.580619420691843,0.580307126605375,0.580001642746294,0.579751230588921,0.579605506740036,0.579605506740036, +0.711164856585837,0.711164856585837,0.711053708035796,0.710764640704437,0.710368433032784,0.709927453573054,0.70949514347815,0.709128170542797,0.708899592089488,0.708899592089488, +0.852572457271032,0.852572457271032,0.852430551945922,0.851979977331478,0.851414893946949,0.850811514889384,0.850215090515591,0.849674857039772,0.849283298730156,0.849283298730156, + +00:51:22, +0.225663322692241,0.225663322692241,0.225720571817722,0.225727214345448,0.22569505389201,0.225639666525542,0.22557813446134,0.225526499039414,0.225497253446657,0.225497253446657, +0.225663322692241,0.225663322692241,0.225720571817722,0.225727214345448,0.22569505389201,0.225639666525542,0.22557813446134,0.225526499039414,0.225497253446657,0.225497253446657, +0.250468153646846,0.250468153646846,0.250518947242898,0.250515150978204,0.250469848042569,0.250400346066839,0.250325687076837,0.250263866784048,0.250229035504669,0.250229035504669, +0.299690907599312,0.299690907599312,0.299728014951658,0.299702319944487,0.299629537868783,0.29953053374315,0.299428359099068,0.299345070849467,0.299298393114966,0.299298393114966, +0.372437398339083,0.372437398339083,0.372452210216868,0.37239115296404,0.372274151420891,0.372127676112176,0.371980959886878,0.37186249365124,0.371796123913639,0.371796123913639, +0.46711057561757,0.46711057561757,0.467092909321269,0.466980002845938,0.466798334197815,0.466582490800146,0.466369990628826,0.466198302182095,0.466101194758378,0.466101194758378, +0.581211208312593,0.581211208312593,0.581150186226102,0.580964344650203,0.580692228450265,0.580380002017523,0.580074584588315,0.57982422676571,0.579678534359875,0.579678534359875, +0.711216511276283,0.711216511276283,0.711105382256393,0.710816372374546,0.710420245603121,0.709979357251609,0.709547136718417,0.70918023946618,0.708951707695614,0.708951707695614, +0.852599334204835,0.852599334204835,0.852457455848562,0.852006967434169,0.851441993511148,0.850838732166092,0.850242424249781,0.849702295694373,0.84931081258706,0.84931081258706, + +00:51:23, +0.225777516740793,0.225777516740793,0.225834765325361,0.225841414125313,0.225809264890634,0.225753891221827,0.225692372622474,0.22564074787742,0.225611508174383,0.225611508174383, +0.225777516740793,0.225777516740793,0.225834765325361,0.225841414125313,0.225809264890634,0.225753891221827,0.225692372622474,0.22564074787742,0.225611508174383,0.225611508174383, +0.250580529929952,0.250580529929952,0.250631322431408,0.250627533631244,0.25058224440135,0.250512759305548,0.250438116991795,0.250376309970449,0.250341486030196,0.250341486030196, +0.29979909859622,0.29979909859622,0.299836204446393,0.299810519800887,0.299737756759541,0.299638776115297,0.299536624735686,0.299453355069443,0.299406687646853,0.299406687646853, +0.372538131711114,0.372538131711114,0.37255294300634,0.372491901583848,0.372374927838199,0.372228486421553,0.372081803713182,0.371963364337481,0.371897009579774,0.371897009579774, +0.467199657918643,0.467199657918643,0.467181994551618,0.467069112920009,0.466887484920749,0.466671690042562,0.46645923765366,0.466287587726148,0.466190502017162,0.466190502017162, +0.581283888455003,0.581283888455003,0.581222876204377,0.581037072940549,0.580765014904483,0.58045285609614,0.580147505067374,0.579897201555253,0.579751540578404,0.579751540578404, +0.711268148952784,0.711268148952784,0.711157039458972,0.710868087004326,0.710472041099019,0.710031243816004,0.709599112804947,0.70923229120238,0.709003806094135,0.709003806094135, +0.852626201663602,0.852626201663602,0.852484350266357,0.852033948018666,0.85146908351335,0.850865939832804,0.850269748326221,0.849729724648506,0.849338316713495,0.849338316713495, + +00:51:24, +0.225891702425424,0.225891702425424,0.225948950461907,0.225955605530955,0.225923467515104,0.225868107546112,0.225806602414622,0.22575498834918,0.225725754537463,0.225725754537463, +0.225891702425424,0.225891702425424,0.225948950461907,0.225955605530955,0.225923467515104,0.225868107546112,0.225806602414622,0.22575498834918,0.225725754537463,0.225725754537463, +0.250692895313872,0.250692895313872,0.250743686715698,0.250739905377224,0.250694629852011,0.250625161636302,0.250550535999586,0.250488742250541,0.250453925649943,0.250453925649943, +0.299907274535568,0.299907274535568,0.299944378881906,0.299918704595206,0.299845960584549,0.299747003417723,0.299644875298858,0.299561624213056,0.299514967100764,0.299514967100764, +0.372638845806511,0.372638845806511,0.372653656520613,0.372592630924309,0.372475684967914,0.372329277432909,0.372182628230956,0.372064215706656,0.371997875924039,0.371997875924039, +0.467288718411911,0.467288718411911,0.467271057976781,0.467158201181279,0.466976613815783,0.466760867437988,0.4665484628122,0.466376851388118,0.466279787384897,0.466279787384897, +0.581356547347163,0.581356547347163,0.581295544933177,0.581109779967707,0.580837780071499,0.580525688858249,0.58022040420052,0.57997015497462,0.579824525412706,0.579824525412706, +0.711319769630384,0.711319769630384,0.711208679658577,0.710919784608841,0.710523819535571,0.710083113281371,0.709651071752908,0.709284325766593,0.70905588730027,0.70905588730027, +0.852653059656143,0.852653059656143,0.852511235208125,0.852060919093816,0.851496163962443,0.850893137898454,0.850297062753891,0.849757143911195,0.849365811118512,0.849365811118512, + +00:51:25, +0.226005879734474,0.226005879734474,0.226063127215707,0.226069788550721,0.226037661753758,0.225982315486717,0.225920823826088,0.225869220442986,0.225839992524184,0.225839992524184, +0.226005879734474,0.226005879734474,0.226063127215707,0.226069788550721,0.226037661753758,0.225982315486717,0.225920823826088,0.225869220442986,0.225839992524184,0.225839992524184, +0.250805249791159,0.250805249791159,0.250856040088325,0.250852266208698,0.250807004387098,0.250737553051635,0.250662944092729,0.250601163616833,0.250566354356415,0.250566354356415, +0.300015435417103,0.300015435417103,0.300052538257949,0.300026874327191,0.299954149343548,0.299855215650158,0.299753110788308,0.299669878280024,0.299623231476411,0.299623231476411, +0.372739540633065,0.372739540633065,0.372754350767472,0.372693340993204,0.372576422817814,0.372430049154024,0.372283433447978,0.372165047766546,0.372098722954216,0.372098722954216, +0.467377757111587,0.467377757111587,0.467360099610962,0.467247267643954,0.467065720897126,0.466850023000646,0.466637666118679,0.466466093182249,0.466369050875833,0.466369050875833, +0.581429185006035,0.581429185006035,0.581368192429458,0.581182465748641,0.580910523968295,0.580598500320858,0.580293282004783,0.58004308704086,0.579897488879841,0.579897488879841, +0.71137137332411,0.71137137332411,0.711260302870232,0.710971465203133,0.710575580927853,0.710134965662819,0.709703013577447,0.709336343173999,0.709107951329215,0.709107951329215, +0.852679908191252,0.852679908191252,0.85253811068267,0.852087880668453,0.851523234867304,0.850920326371965,0.85032436754176,0.849784553491447,0.84939329581115,0.84939329581115, + +00:51:26, +0.226120048656304,0.226120048656304,0.226177295575131,0.226183963172977,0.226151847594948,0.226096515031983,0.226035036845198,0.225983444147151,0.22595422212285,0.22595422212285, +0.226120048656304,0.226120048656304,0.226177295575131,0.226183963172977,0.226151847594948,0.226096515031983,0.226035036845198,0.225983444147151,0.22595422212285,0.22595422212285, +0.250917593354381,0.250917593354381,0.250968382541863,0.250964616118238,0.25091936799917,0.250849933544094,0.25077534126376,0.25071357406185,0.250678772142128,0.250678772142128, +0.300123581240582,0.300123581240582,0.300160682574274,0.30013502899659,0.300062323036281,0.299963412812338,0.299861331203763,0.299778117270067,0.299731480773514,0.299731480773514, +0.372840216198557,0.372840216198557,0.372855025754693,0.372794031798306,0.372677141395671,0.372530801592669,0.372384219372021,0.372265860524922,0.372199550678076,0.372199550678076, +0.467466774031864,0.467466774031864,0.467449119468351,0.467336312322222,0.467154806178976,0.466939156744743,0.466726847587313,0.466555313122766,0.466458292504202,0.466458292504202, +0.581501801448558,0.581501801448558,0.581440818710156,0.581255130300293,0.580983246611831,0.580671290500948,0.580366138497169,0.580115997771002,0.579970430996851,0.579970430996851, +0.711422960048965,0.711422960048965,0.711311909108945,0.711023128802227,0.710627325290917,0.710186800975439,0.70975493829369,0.709388343439756,0.709159998196149,0.709159998196149, +0.852706747277714,0.852706747277714,0.852564976698784,0.852114832751401,0.851550296236798,0.850947505262248,0.850351662698783,0.849811953398262,0.849420770800434,0.849420770800434, + +00:51:27, +0.226234209179294,0.226234209179294,0.226291455528565,0.226298129386106,0.226266025027051,0.226210706170269,0.226149241460297,0.226097659450006,0.226068443321786,0.226068443321786, +0.226234209179294,0.226234209179294,0.226291455528565,0.226298129386106,0.226266025027051,0.226210706170269,0.226149241460297,0.226097659450006,0.226068443321786,0.226068443321786, +0.251029925996121,0.251029925996121,0.251080714068898,0.251076955098425,0.251031720680801,0.25096230310624,0.250887727505226,0.250825973578128,0.250791178999616,0.250791178999616, +0.300231712005763,0.300231712005763,0.30026881183064,0.300243168603159,0.300170481662494,0.300071594904002,0.299969536544954,0.299886341182912,0.299839714991793,0.299839714991793, +0.372940872510761,0.372940872510761,0.372955681490044,0.372894703347381,0.372777840709249,0.372631534756607,0.372484986010848,0.372366653989549,0.372300359103386,0.372300359103386, +0.467555769186923,0.467555769186923,0.467538117563118,0.467425335230254,0.467243869675509,0.467028268684467,0.466816007232303,0.46664451122388,0.46654751228422,0.46654751228422, +0.581574396691653,0.581574396691653,0.581513423792182,0.581327773639583,0.581055948019046,0.580744059415481,0.580438973694665,0.58018888718205,0.580043351780752,0.580043351780752, +0.711474529819937,0.711474529819937,0.7113634983897,0.711074775421127,0.710679052639798,0.710238619234302,0.709806845916745,0.709440326579002,0.709212027916229,0.709212027916229, +0.852733576924303,0.852733576924303,0.852591833265249,0.852141775351473,0.851577348079778,0.850974674578202,0.850378948233906,0.849839343640625,0.84944823609538,0.84944823609538, + +00:51:28, +0.226348361291841,0.226348361291841,0.226405607064416,0.226412287178512,0.22638019403846,0.226324888889955,0.226263437659747,0.226211866339903,0.226182656109336,0.226182656109336, +0.226348361291841,0.226348361291841,0.226405607064416,0.226412287178512,0.22638019403846,0.226324888889955,0.226263437659747,0.226211866339903,0.226182656109336,0.226182656109336, +0.251142247708974,0.251142247708974,0.25119303466203,0.251189283141856,0.251144062424579,0.251074661730649,0.25100010280969,0.25093836215822,0.250903574921422,0.250903574921422, +0.300339827712406,0.300339827712406,0.300376926026809,0.300351293146654,0.300278625221939,0.300179761924892,0.300077726811617,0.299994550018286,0.299947934130975,0.299947934130975, +0.373041509577445,0.373041509577445,0.373056317981288,0.372995355648189,0.372878520766307,0.372732248653596,0.372585733372217,0.372467428168186,0.372401148237904,0.372401148237904, +0.467644742590926,0.467644742590926,0.467627093909417,0.467514336382205,0.467332911400888,0.467117358833989,0.46690514506783,0.466733687499782,0.466636710230084,0.466636710230084, +0.581646970752216,0.581646970752216,0.581586007692428,0.581400395783412,0.581128628206856,0.580816807081399,0.580511787614235,0.58026175529099,0.58011625124854,0.58011625124854, +0.711526082651991,0.711526082651991,0.711415070727464,0.711126405074817,0.710730762989512,0.710290420454458,0.7098587364617,0.709492292606857,0.709264040504594,0.709264040504594, +0.852760397139779,0.852760397139779,0.852618680390834,0.852168708477468,0.851604390405085,0.851001834328713,0.850406224156062,0.849866724227509,0.849475691704991,0.849475691704991, + +00:51:29, +0.226462504982365,0.226462504982365,0.22651975017111,0.22652643653862,0.226494354617589,0.22643906317944,0.226377625431933,0.226326064805211,0.226296860473863,0.226296860473863, +0.226462504982365,0.226462504982365,0.22651975017111,0.22652643653862,0.226494354617589,0.22643906317944,0.226377625431933,0.226326064805211,0.226296860473863,0.226296860473863, +0.251254558485548,0.251254558485548,0.251305344313872,0.251301600241142,0.251256393223105,0.251187009409908,0.251112467169725,0.25105073979469,0.251015959900107,0.251015959900107, +0.300447928360278,0.300447928360278,0.300485025162545,0.300459402626837,0.30038675371437,0.300287913874756,0.30018590200349,0.300102743775922,0.300056138190788,0.300056138190788, +0.373142127406368,0.373142127406368,0.37315693523618,0.37309598870848,0.372979181574592,0.372832943291384,0.372686461463876,0.372568183068581,0.372501918089379,0.372501918089379, +0.467733694258016,0.467733694258016,0.467716048521385,0.467603315792213,0.467421931369256,0.467206427207465,0.466994261108062,0.466822841964649,0.466725886355976,0.466725886355976, +0.581719523647122,0.581719523647122,0.581658570427764,0.581472996748657,0.581201287192157,0.580889533515618,0.580584580272821,0.580334602114785,0.580189129417192,0.580189129417192, +0.711577618560075,0.711577618560075,0.711466626137185,0.711178017778264,0.710782456355053,0.710342204650939,0.709910609943622,0.709544241538419,0.709316035976362,0.709316035976362, +0.852787207932892,0.852787207932892,0.852645518084297,0.852195632138176,0.85163142322155,0.851028984522658,0.850433490474172,0.849894095167878,0.849503137638257,0.849503137638257, + +00:51:30, +0.226576640239303,0.226576640239303,0.226633884837091,0.226640577454872,0.226608506752868,0.22655322902714,0.226491804765256,0.226440254834322,0.22641105640375,0.22641105640375, +0.226576640239303,0.226576640239303,0.226633884837091,0.226640577454872,0.226608506752868,0.22655322902714,0.226491804765256,0.226440254834322,0.22641105640375,0.22641105640375, +0.251366858318466,0.251366858318466,0.251417643017052,0.251413906388906,0.251368713068993,0.25129934613662,0.251224820577923,0.251163106480117,0.251128333928243,0.251128333928243, +0.300556013949149,0.300556013949149,0.300593109237618,0.300567497043473,0.300494867139547,0.300396050753344,0.300294062120316,0.300210922455558,0.300164327170966,0.300164327170966, +0.373242726005282,0.373242726005282,0.373257533262465,0.373196602535997,0.373079823141848,0.372933618677713,0.372787170293569,0.372668918698477,0.372602668665556,0.372602668665556, +0.467822624202323,0.467822624202323,0.467804981413143,0.4676922734744,0.467510929594743,0.467295473819031,0.467083355367148,0.46691197463264,0.46681504067606,0.46681504067606, +0.581792055393227,0.581792055393227,0.581731112015038,0.581545576552174,0.581273924991824,0.580962238735038,0.580657351687345,0.580407427670376,0.58026198630366,0.58026198630366, +0.711629137559114,0.711629137559114,0.711518164633788,0.711229613546411,0.710834132751397,0.710393971838756,0.70996246637756,0.709596173388768,0.70936801434663,0.70936801434663, +0.85281400931238,0.85281400931238,0.852672346354384,0.852222546342372,0.851658446537991,0.851056125168899,0.850460747197145,0.84992145647068,0.849530573904157,0.849530573904157, + +00:51:31, +0.22669076705111,0.22669076705111,0.226748011050825,0.22675470991573,0.226722650432751,0.226667386421494,0.226605975648138,0.226554436415643,0.2265252438874,0.2265252438874, +0.22669076705111,0.22669076705111,0.226748011050825,0.22675470991573,0.226722650432751,0.226667386421494,0.226605975648138,0.226554436415643,0.2265252438874,0.2265252438874, +0.251479147200363,0.251479147200363,0.251529930764209,0.251526201577786,0.251481021954871,0.2514116719034,0.251337163026885,0.251275462207093,0.251240696998417,0.251240696998417, +0.300664084478791,0.300664084478791,0.300701178251801,0.300675576396332,0.30060296549723,0.300504172560411,0.300402207161841,0.300319086056934,0.300272501071247,0.300272501071247, +0.373343305381931,0.373343305381931,0.373358112067883,0.373297197138477,0.373180445475809,0.373034274820317,0.372887859869029,0.372769635065611,0.37270339997417,0.37270339997417, +0.467911532437957,0.467911532437957,0.467893892598795,0.467781209442869,0.467599906091458,0.46738449868281,0.467172427859219,0.467001085517896,0.466904173204485,0.466904173204485, +0.581864566007364,0.581864566007364,0.581803632471078,0.581618135210798,0.581346541622708,0.581034922756532,0.580730101874707,0.580480231974683,0.580334821924876,0.580334821924876, +0.711680639664018,0.711680639664018,0.711569686232181,0.711281192394185,0.710885792193499,0.710445722032901,0.710014305778541,0.709648088172963,0.709419975630479,0.709419975630479, +0.852840801286969,0.852840801286969,0.852699165209829,0.852249451098823,0.851685460363213,0.851083256276289,0.850487994333877,0.849948808144855,0.849558000511658,0.849558000511658, + +00:51:32, +0.226804885406264,0.226804885406264,0.226862128800794,0.226868833909675,0.226836785645709,0.226781535350957,0.22672013806902,0.226668609537604,0.226639422913234,0.226639422913234, +0.226804885406264,0.226804885406264,0.226862128800794,0.226868833909675,0.226836785645709,0.226781535350957,0.22672013806902,0.226668609537604,0.226639422913234,0.226639422913234, +0.25159142512389,0.25159142512389,0.251642207548,0.251638485800432,0.251593319873382,0.251523986702877,0.251449494509227,0.251387806968224,0.251353049103229,0.251353049103229, +0.300772139948982,0.300772139948982,0.300809232204871,0.300783640685186,0.300711048787187,0.300612279295714,0.300510337127817,0.300427234579794,0.300380659891371,0.300380659891371, +0.373443865544052,0.373443865544052,0.373458671660167,0.37339777252365,0.373281048584202,0.373134911726924,0.372988530197984,0.372870332177709,0.372804112022949,0.372804112022949, +0.468000418979013,0.468000418979013,0.467982782092427,0.467870123711707,0.467688860873495,0.467473501812906,0.467261478598392,0.467090174634542,0.46699328395538,0.46699328395538, +0.581937055506344,0.581937055506344,0.581876131812689,0.581690672741343,0.581419137101642,0.581107585596957,0.580802830851785,0.580553015044605,0.580407636297751,0.580407636297751, +0.711732124889673,0.711732124889673,0.711621190947254,0.711332754336493,0.710937434696297,0.710497455248348,0.710066128161576,0.709699985906044,0.709471919842968,0.709471919842968, +0.852867583865373,0.852867583865373,0.852725974659356,0.852276346416281,0.851712464706011,0.851110377853668,0.850515231893256,0.849976150199328,0.849585417469715,0.849585417469715, + +00:51:33, +0.226918995293259,0.226918995293259,0.226976238075502,0.226982949425206,0.22695091238023,0.226895675804004,0.226834292016363,0.226782774188652,0.226753593469693,0.226753593469693, +0.226918995293259,0.226918995293259,0.226976238075502,0.226982949425206,0.22695091238023,0.226895675804004,0.226834292016363,0.226782774188652,0.226753593469693,0.226753593469693, +0.25170369208171,0.25170369208171,0.25175447336109,0.25175075904951,0.251705606817181,0.251636290527694,0.251561815017581,0.251500140756129,0.251465390235293,0.251465390235293, +0.300880180359503,0.300880180359503,0.300917271096607,0.300891689909811,0.300819117009188,0.300720370959016,0.300618452017997,0.300535368023886,0.300488803631083,0.300488803631083, +0.373544406499376,0.373544406499376,0.37355921204704,0.373498328699235,0.373381632474748,0.373235529405253,0.373089181288154,0.372971010042493,0.372904804819615,0.372904804819615, +0.468089283839569,0.468089283839569,0.46807164990811,0.467959016294987,0.467777793954933,0.467562483223407,0.467350507598765,0.467179241996689,0.467082372942861,0.467082372942861, +0.582009523906958,0.582009523906958,0.581948610056656,0.581763189160601,0.581491711445435,0.581180227273144,0.580875538635435,0.580625776897019,0.580480429439173,0.580480429439173, +0.711783593250949,0.711783593250949,0.711672678793874,0.71138429938822,0.710989060274707,0.710549171500048,0.710117933541652,0.709751866603032,0.709523846999134,0.709523846999134, +0.852894357056297,0.852894357056297,0.852752774711676,0.852303232303489,0.851739459575168,0.851137489909863,0.850542459884154,0.850003482643014,0.849612824787271,0.849612824787271, + +00:51:34, +0.227033096700609,0.227033096700609,0.22709033886347,0.227097056450844,0.227065030624825,0.227009807769132,0.226948437478645,0.226896930357254,0.226867755545236,0.226867755545236, +0.227033096700609,0.227033096700609,0.22709033886347,0.227097056450844,0.227065030624825,0.227009807769132,0.226948437478645,0.226896930357254,0.226867755545236,0.226867755545236, +0.2518159480665,0.2518159480665,0.251866728196162,0.251863021317697,0.251817882778936,0.251748583370509,0.251674124544589,0.251612463563443,0.251577720387236,0.251577720387236, +0.300988205710138,0.300988205710138,0.301025294926795,0.300999724069989,0.300927170163005,0.300828447550083,0.300726551832141,0.300643486388964,0.300596932290133,0.300596932290133, +0.373644928255624,0.373644928255624,0.37365973323622,0.373598865672948,0.373482197155158,0.373336127863015,0.373189813147252,0.373071668667675,0.373005478371882,0.373005478371882, +0.468178127033685,0.468178127033685,0.468160496059897,0.468047887206761,0.467866705349832,0.467651442928383,0.467439514874421,0.467268287618426,0.467171440181025,0.467171440181025, +0.582081971225974,0.582081971225974,0.582021067219743,0.581835684485344,0.581564264670877,0.581252847801907,0.580948225242494,0.58069851754878,0.580553201366011,0.580553201366011, +0.711835044762695,0.711835044762695,0.71172414978689,0.711435827564235,0.711040668943627,0.710600870802934,0.71016972193374,0.709803730278927,0.709575757114,0.709575757114, +0.852921120868431,0.852921120868431,0.852779565375488,0.852330108769177,0.851766444979456,0.851164592453691,0.850569678315433,0.850030805484816,0.849640222473258,0.849640222473258, + +00:51:35, +0.227147189616848,0.227147189616848,0.227204431153239,0.227211154975127,0.227179140368022,0.227123931234853,0.227062574444366,0.227011078031896,0.226981909128343,0.226981909128343, +0.227147189616848,0.227147189616848,0.227204431153239,0.227211154975127,0.227179140368022,0.227123931234853,0.227062574444366,0.227011078031896,0.226981909128343,0.226981909128343, +0.251928193070948,0.251928193070948,0.25197897204591,0.251975272597686,0.25193014775133,0.25186086522399,0.251786423082909,0.251724775382811,0.251690039551699,0.251690039551699, +0.301096216000675,0.301096216000675,0.301133303695223,0.301107743165502,0.301035208248418,0.300936509068684,0.300834636570009,0.300751589674781,0.300705045868272,0.300705045868272, +0.373745430820512,0.373745430820512,0.373760235235417,0.373699383452494,0.373582742633138,0.373436707107917,0.373290425782981,0.373172308060962,0.373106132687455,0.373106132687455, +0.468266948575406,0.468266948575406,0.468249320561825,0.468136736461068,0.467955595072236,0.467740380941889,0.467528500439426,0.467357311513829,0.467260485683952,0.467260485683952, +0.582154397480141,0.582154397480141,0.58209350331869,0.58190815873232,0.581636796794733,0.581325447200034,0.581020890689776,0.580771237016723,0.58062595209511,0.58062595209511, +0.711886479439739,0.711886479439739,0.711775603941133,0.711487338879386,0.711092260717934,0.710652553171922,0.710221493352789,0.709855576948711,0.709627650202563,0.709627650202563, +0.852947875310455,0.852947875310455,0.85280634665948,0.852356975822063,0.851793420927633,0.851191685493958,0.850596887195943,0.850058118733624,0.849667610536594,0.849667610536594, + +00:51:36, +0.227261274030527,0.227261274030527,0.22731851493337,0.227325244986613,0.227293241598369,0.2272380461897,0.227176702902044,0.227125217201085,0.227096054207513,0.227096054207513, +0.227261274030527,0.227261274030527,0.22731851493337,0.227325244986613,0.227293241598369,0.2272380461897,0.227176702902044,0.227125217201085,0.227096054207513,0.227096054207513, +0.252040427087761,0.252040427087761,0.252091204903042,0.25208751288218,0.252042401727059,0.251973136080822,0.251898710625212,0.251837076206895,0.251802347721337,0.251802347721337, +0.301204211230907,0.301204211230907,0.301241297401682,0.30121574719614,0.301143231265207,0.301044555514593,0.300942706231367,0.3008596778811,0.300813144365258,0.300813144365258, +0.373845914201746,0.373845914201746,0.373860718052332,0.373799882045574,0.373683268916386,0.373537267147655,0.373391019203042,0.373272928230052,0.373206767774033,0.373206767774033, +0.46835574847876,0.46835574847876,0.468338123427914,0.468225564071927,0.468044463136172,0.467829297277962,0.467617464307827,0.467446313696958,0.467349509465706,0.467349509465706, +0.582226802686184,0.582226802686184,0.582165918370219,0.581980611918259,0.581709307833751,0.581398025484296,0.581093534994074,0.580843935317662,0.580698681643296,0.580698681643296, +0.711937897296894,0.711937897296894,0.711827041271412,0.7115388333485,0.711143835612487,0.710704218621904,0.71027324781373,0.709907406627344,0.709679526279806,0.709679526279806, +0.852974620391039,0.852974620391039,0.85283311857233,0.852383833470855,0.851820387428448,0.851218769039455,0.850624086534524,0.850085422398318,0.849694988986188,0.849694988986188, + +00:51:37, +0.227375349930219,0.227375349930219,0.227432590192441,0.227439326473878,0.227407334304431,0.227352152622226,0.227290822840215,0.227239347853344,0.227210190771262,0.227210190771262, +0.227375349930219,0.227375349930219,0.227432590192441,0.227439326473878,0.227407334304431,0.227352152622226,0.227290822840215,0.227239347853344,0.227210190771262,0.227210190771262, +0.252152650109653,0.252152650109653,0.252203426760282,0.252199742163899,0.252154644698833,0.252085395933701,0.252010987164181,0.251949366028368,0.251914644888818,0.251914644888818, +0.30131219140063,0.30131219140063,0.301349276045968,0.301323736161694,0.301251239213157,0.301152586887587,0.301050760815986,0.300967751007683,0.300921227780851,0.300921227780851, +0.373946378407027,0.373946378407027,0.373961181694661,0.373900361459878,0.373783776012591,0.373637807989919,0.373491593415123,0.373373529182636,0.373307383639309,0.373307383639309, +0.468444526757756,0.468444526757756,0.468426904672167,0.468314370053342,0.468133309555651,0.467918191950623,0.467706406493657,0.467535294181852,0.467438511540335,0.467438511540335, +0.58229918686081,0.58229918686081,0.582238312391029,0.582053044059868,0.581781797804656,0.58147058267144,0.581166158172159,0.580916612468387,0.580771390027372,0.580771390027372, +0.711989298348948,0.711989298348948,0.71187846179252,0.711590310986387,0.711195393642124,0.710755867167755,0.710324985331475,0.709959219329769,0.709731385360688,0.709731385360688, +0.853001356118838,0.853001356118838,0.852859881122702,0.852410681724248,0.851847344490637,0.851245843098966,0.850651276340001,0.850112716487765,0.849722357830935,0.849722357830935, + +00:51:38, +0.227489417304514,0.227489417304514,0.227546656919051,0.227553399425518,0.227521418474796,0.227466250521002,0.227404934247435,0.227353469977217,0.227324318808128,0.227324318808128, +0.227489417304514,0.227489417304514,0.227546656919051,0.227553399425518,0.227521418474796,0.227466250521002,0.227404934247435,0.227353469977217,0.227324318808128,0.227324318808128, +0.252264862129356,0.252264862129356,0.252315637610362,0.252311960435575,0.252266876659374,0.252197644775339,0.252123252692515,0.252061644839918,0.252026931046825,0.252026931046825, +0.301420156509643,0.301420156509643,0.30145723962788,0.301431710061958,0.301359232092058,0.301260603187447,0.301158800323639,0.301075809054297,0.301029296114815,0.301029296114815, +0.374046823444048,0.374046823444048,0.374061626170092,0.374000821703093,0.373884263929438,0.373738329642393,0.373592148426908,0.373474110926398,0.373407980290968,0.373407980290968, +0.46853328342639,0.46853328342639,0.468515664308571,0.468403154419302,0.468222134344666,0.468007064973876,0.467795327010931,0.467624252982538,0.46752749192187,0.46752749192187, +0.582371550020703,0.582371550020703,0.582310685397798,0.582125455173832,0.581854266724151,0.581543118778193,0.581238760240783,0.580989268485671,0.580844077264121,0.580844077264121, +0.712040682610675,0.712040682610675,0.711929865519227,0.711641771807838,0.711246934821667,0.710807498824332,0.710376705920914,0.710011015070907,0.709783227460153,0.709783227460153, +0.853028082502499,0.853028082502499,0.85288663431925,0.852437520590926,0.851874292122925,0.851272907681259,0.850678456621189,0.850140001010821,0.849749717079719,0.849749717079719, + +00:51:39, +0.227603476142021,0.227603476142021,0.227660715101817,0.227667463830148,0.227635494098067,0.227580339874619,0.22751903711228,0.227467583561267,0.227438438306668,0.227438438306668, +0.227603476142021,0.227603476142021,0.227660715101817,0.227667463830148,0.227635494098067,0.227580339874619,0.22751903711228,0.227467583561267,0.227438438306668,0.227438438306668, +0.252377063139615,0.252377063139615,0.252427837446033,0.252424167689952,0.252379097601419,0.252309882598459,0.252235507202925,0.252173912634246,0.252139206188052,0.252139206188052, +0.30152810655775,0.30152810655775,0.301565188147221,0.301539668896733,0.301467209901702,0.301368604413959,0.301266824754103,0.301183852020714,0.301137349366918,0.301137349366918, +0.374147249320493,0.374147249320493,0.374162051486305,0.374101262782894,0.373984732674602,0.373838832112751,0.373692684246072,0.373574673469015,0.373508557736685,0.373508557736685, +0.468622018498639,0.468622018498639,0.468604402351095,0.468491917183776,0.468310937517196,0.468095916361709,0.467884225873649,0.467713190113024,0.467616450624324,0.467616450624324, +0.582443892182524,0.582443892182524,0.582383037407184,0.582197845276818,0.581926714608919,0.58161563382126,0.581311341216674,0.581061903386261,0.580916743370303,0.580916743370303, +0.712092050096826,0.712092050096826,0.711981252466285,0.711693215827621,0.711298459165913,0.71085911360647,0.71042840959692,0.710062793865663,0.70983505259312,0.70983505259312, +0.853054799550654,0.853054799550654,0.852913378170616,0.852464350079561,0.851901230334025,0.851299962795092,0.850705627386893,0.850167275976328,0.849777066741413,0.849777066741413, + +00:51:40, +0.22771752643137,0.22771752643137,0.227774764729375,0.227781519676402,0.227749561162868,0.227694420671685,0.227633131423345,0.227581688594076,0.227552549255455,0.227552549255455, +0.22771752643137,0.22771752643137,0.227774764729375,0.227781519676402,0.227749561162868,0.227694420671685,0.227633131423345,0.227581688594076,0.227552549255455,0.227552549255455, +0.252489253133186,0.252489253133186,0.252540026260056,0.252536363919791,0.252491307517717,0.252422109395798,0.252347750688137,0.252286169404067,0.252251470305208,0.252251470305208, +0.301636041544758,0.301636041544758,0.301673121603798,0.301647612665821,0.301575172641885,0.301476590566911,0.301374834107159,0.30129187990671,0.301245387536932,0.301245387536932, +0.374247656044042,0.374247656044042,0.374262457650971,0.374201684706951,0.374085182255752,0.373939315408661,0.373793200880286,0.373675216818156,0.373609115984131,0.373609115984131, +0.468710731988464,0.468710731988464,0.468693118813694,0.468580658360718,0.4683997190872,0.468184746128093,0.467973103095792,0.467802105587301,0.467705387661695,0.467705387661695, +0.582516213362917,0.582516213362917,0.582455368435823,0.582270214385468,0.581999141475621,0.581688127817326,0.58138390111654,0.581134517186887,0.58098938836266,0.58098938836266, +0.712143400822134,0.712143400822134,0.712032622648428,0.711744643060488,0.711349966689646,0.710910711528985,0.710480096374345,0.71011455572892,0.709886860774493,0.709886860774493, +0.853081507271928,0.853081507271928,0.852940112685431,0.852491170198815,0.851928159132639,0.851327008449213,0.850732788645903,0.850194541393119,0.849804406824876,0.849804406824876, + +00:51:41, +0.227831568161207,0.227831568161207,0.22788880579038,0.227895566952932,0.227863619657843,0.22780849290083,0.227747217169241,0.227695785064245,0.227666651643084,0.227666651643084, +0.227831568161207,0.227831568161207,0.22788880579038,0.227895566952932,0.227863619657843,0.22780849290083,0.227747217169241,0.227695785064245,0.227666651643084,0.227666651643084, +0.25260143210284,0.25260143210284,0.252652204045207,0.252648549117863,0.252603506401033,0.252534325160108,0.252459983140887,0.252398415142108,0.252363723391015,0.252363723391015, +0.301743961470476,0.301743961470476,0.301781039997422,0.30175554136903,0.301683120312408,0.301584561646094,0.301482828382592,0.301399892712062,0.301353410624633,0.301353410624633, +0.374348043622363,0.374348043622363,0.374362844671758,0.374302087482928,0.374185612680547,0.374039779537785,0.373893698337209,0.373775740981483,0.373709655040968,0.373709655040968, +0.468799423909808,0.468799423909808,0.468781813710304,0.468669377964067,0.468488479068624,0.468273554286983,0.468061958691326,0.467890999419345,0.467794303047964,0.467794303047964, +0.582588513578502,0.582588513578502,0.582527678500329,0.582342562516406,0.582071547340898,0.581760600783054,0.58145643995707,0.581207109904255,0.581062012257909,0.581062012257909, +0.712194734801314,0.712194734801314,0.712083976080371,0.711796053521172,0.711401457407625,0.710962292606674,0.710531766268022,0.710166300675541,0.709938652019155,0.709938652019155, +0.85310820567493,0.85310820567493,0.852966837872313,0.852517980957338,0.851955078527456,0.851354044652356,0.850759940406999,0.850221797270015,0.849831737338957,0.849831737338957, + +00:51:42, +0.227945601320199,0.227945601320199,0.228002838273507,0.228009605648411,0.227977669571652,0.2279225565507,0.227861294338603,0.227809872960394,0.227780745458168,0.227780745458168, +0.227945601320199,0.227945601320199,0.228002838273507,0.228009605648411,0.227977669571652,0.2279225565507,0.227861294338603,0.227809872960394,0.227780745458168,0.227780745458168, +0.252713600041362,0.252713600041362,0.252764370794275,0.252760723276954,0.252715694244142,0.252646529884153,0.252572204553929,0.252510649841111,0.252475965438211,0.252475965438211, +0.301851866334721,0.301851866334721,0.301888943327906,0.301863455006168,0.301791052913074,0.301692517651307,0.301590807580191,0.301507890436555,0.3014614186298,0.3014614186298, +0.374448412063121,0.374448412063121,0.374463212556323,0.374402471118478,0.374286023956643,0.374140224507777,0.373994176624495,0.37387624596665,0.373810174914853,0.373810174914853, +0.468888094276601,0.468888094276601,0.468870487054845,0.468758076007743,0.468577217475394,0.468362340852315,0.4681507926742,0.467979871623115,0.467883196797095,0.467883196797095, +0.582660792845879,0.582660792845879,0.582599967617297,0.582414889686233,0.582143932221368,0.581833052735087,0.581528957754927,0.58127968155505,0.581134615072748,0.581134615072748, +0.712246052049058,0.712246052049058,0.712135312776806,0.711847447224384,0.711452931334595,0.711013856854317,0.710583419292766,0.710218028720371,0.70999042634197,0.70999042634197, +0.853134894768261,0.853134894768261,0.852993553739871,0.852544782363766,0.851981988527154,0.851381071413245,0.85078708267895,0.850249043615824,0.849859058292493,0.849859058292493, + +00:51:43, +0.228059625897031,0.228059625897031,0.228116862167448,0.228123635751528,0.228091710892977,0.228036611609962,0.227975362920081,0.227923952271162,0.227894830689339,0.227894830689339, +0.228059625897031,0.228059625897031,0.228116862167448,0.228123635751528,0.228091710892977,0.228036611609962,0.227975362920081,0.227923952271162,0.227894830689339,0.227894830689339, +0.252825756941549,0.252825756941549,0.252876526500061,0.252872886389863,0.252827871039835,0.25275872356071,0.252684414920026,0.252622873493831,0.252588196439543,0.252588196439543, +0.30195975613731,0.30195975613731,0.301996831595069,0.301971353577051,0.301898970443692,0.301800458582348,0.301698771699749,0.301615873079973,0.301569411552217,0.301569411552217, +0.374548761373971,0.374548761373971,0.374563561312317,0.374502835621251,0.374386416091685,0.374240650326281,0.374094635749792,0.373976731781306,0.373910675613431,0.373910675613431, +0.468976743102752,0.468976743102752,0.468959138861222,0.46884675250565,0.468665934321422,0.468451105838012,0.468239605058347,0.468068722212553,0.467972068923036,0.467972068923036, +0.582733051181625,0.582733051181625,0.582672235803299,0.582487195911529,0.58221629613363,0.581905483690044,0.581601454526758,0.581352232155939,0.581207196823853,0.581207196823853, +0.712297352580044,0.712297352580044,0.71218663275241,0.711898824184819,0.711504388485276,0.71106540428667,0.710635055463371,0.710269739878236,0.710042183757781,0.710042183757781, +0.853161574560508,0.853161574560508,0.8530202602967,0.852571574426726,0.852008889140402,0.851408088740591,0.850814215470512,0.850276280439343,0.84988636969431,0.84988636969431, + +00:51:44, +0.228173641880409,0.228173641880409,0.228230877460915,0.228237657250994,0.228205743610517,0.228150658067301,0.228089422902345,0.228038022985208,0.228008907325249,0.228008907325249, +0.228173641880409,0.228173641880409,0.228230877460915,0.228237657250994,0.228205743610517,0.228150658067301,0.228089422902345,0.228038022985208,0.228008907325249,0.228008907325249, +0.252937902796212,0.252937902796212,0.252988671155381,0.252985038449402,0.252940036780914,0.252870906182572,0.252796614231959,0.252735086093037,0.252700416387774,0.252700416387774, +0.302067630878065,0.302067630878065,0.302104704798732,0.302079237081496,0.302006872904072,0.301908384439021,0.30180672074106,0.301723840642109,0.30167738939167,0.30167738939167, +0.374649091562562,0.374649091562562,0.374663890947383,0.374603180998886,0.374486789093313,0.374341057000937,0.374195075720739,0.374077198433089,0.374011157144345,0.374011157144345, +0.469065370402156,0.469065370402156,0.46904776914332,0.468935407471676,0.468754629620602,0.468539849257979,0.468328395857682,0.468157551201583,0.468060919439718,0.468060919439718, +0.5828052886023,0.5828052886023,0.582744483074887,0.582559481208856,0.582288639094262,0.581977893664527,0.581673930289185,0.581424761723564,0.581279757527881,0.581279757527881, +0.712348636408926,0.712348636408926,0.712237936021838,0.71195018441715,0.711555828874374,0.711116934918474,0.710686674794612,0.710321434163941,0.710093924281413,0.710093924281413, +0.853188245060249,0.853188245060249,0.853046957551386,0.852598357154835,0.852035780375855,0.851435096643095,0.85084133879043,0.850303507749357,0.849913671553221,0.849913671553221, + +00:51:45, +0.228287649259054,0.228287649259054,0.22834488414264,0.228351670135537,0.228319767712991,0.228264695911422,0.228203474274085,0.228152085091208,0.228122975354568,0.228122975354568, +0.228287649259054,0.228287649259054,0.22834488414264,0.228351670135537,0.228319767712991,0.228264695911422,0.228203474274085,0.228152085091208,0.228122975354568,0.228122975354568, +0.253050037598175,0.253050037598175,0.253100804753064,0.253097179448397,0.253052191460198,0.252983077742542,0.252908802482518,0.25284728763151,0.252812625275682,0.252812625275682, +0.302175490556812,0.302175490556812,0.30221256293872,0.302187105519324,0.302114760294031,0.302016295221133,0.301914654703926,0.301831793122755,0.301785352147951,0.301785352147951, +0.374749402636535,0.374749402636535,0.374764201469158,0.374703507259017,0.374587142969158,0.374441444539377,0.374295496544967,0.374177645929634,0.374111619515228,0.374111619515228, +0.469153976188692,0.469153976188692,0.469136377915012,0.469024040919693,0.468843303386812,0.468628571126102,0.468417165086105,0.468246358604116,0.468149748361055,0.468149748361055, +0.582877505124439,0.582877505124439,0.582816709448592,0.58263174559475,0.582360961119819,0.582050282675114,0.581746385058813,0.581497270274548,0.581352297201465,0.581352297201465, +0.712399903550341,0.712399903550341,0.712289222599729,0.712001527936032,0.711607252516573,0.711168448764449,0.710738277301245,0.710373111592273,0.710145647927672,0.710145647927672, +0.853214906276048,0.853214906276048,0.853073645512502,0.852625130556694,0.852062662242156,0.851462095129445,0.850868452647438,0.850330725554641,0.849940963878027,0.849940963878027, + +00:51:46, +0.228401648021709,0.228401648021709,0.228458882201371,0.228465674393904,0.228433783189135,0.228378725131048,0.22831751702401,0.228266138577858,0.228237034765986,0.228237034765986, +0.228401648021709,0.228401648021709,0.228458882201371,0.228465674393904,0.228433783189135,0.228378725131048,0.22831751702401,0.228266138577858,0.228237034765986,0.228237034765986, +0.253162161340275,0.253162161340275,0.253212927285953,0.253209309379687,0.253164335070515,0.253095238233439,0.25302097966451,0.252959478102046,0.252924823096054,0.252924823096054, +0.302283335173379,0.302283335173379,0.302320406014863,0.302294958890362,0.302222632613385,0.302124190928497,0.30202257358815,0.30193973052171,0.301893299820854,0.301893299820854, +0.374849694603525,0.374849694603525,0.374864492885271,0.37480381440927,0.374687477726846,0.374541812949225,0.374395898230102,0.374278074278565,0.374212062733706,0.374212062733706, +0.469242560476222,0.469242560476222,0.469224965190151,0.469112652863556,0.468931955633915,0.468717271456256,0.4685059127575,0.468335144434044,0.468238555700946,0.468238555700946, +0.582949700764558,0.582949700764558,0.582888914940924,0.58270398908573,0.582433262226837,0.582122650738364,0.581818818852221,0.581569757825493,0.581424815861219,0.581424815861219, +0.712451154018908,0.712451154018908,0.712340492500699,0.712052854756101,0.711658659426539,0.711219945839294,0.710789862998008,0.710424772178,0.710197354711344,0.710197354711344, +0.853241558216461,0.853241558216461,0.853100324188611,0.852651894640897,0.852089534747938,0.851489084208318,0.850895557050258,0.850357933863955,0.84996824667752,0.84996824667752, + +00:51:47, +0.228515638157135,0.228515638157135,0.228572871625877,0.228579670014861,0.228547790027707,0.22849274571492,0.228431551140845,0.228380183433874,0.228351085548209,0.228351085548209, +0.228515638157135,0.228515638157135,0.228572871625877,0.228579670014861,0.228547790027707,0.22849274571492,0.228431551140845,0.228380183433874,0.228351085548209,0.228351085548209, +0.253274274015364,0.253274274015364,0.253325038746901,0.253321428236124,0.253276467604709,0.253207387648093,0.253133145770753,0.253071657497453,0.253037009841695,0.253037009841695, +0.302391164727601,0.302391164727601,0.302428234026993,0.302402797194437,0.302330489861959,0.302232071560926,0.30213047739354,0.302047652838775,0.302001232410178,0.302001232410178, +0.374949967471157,0.374949967471157,0.374964765203342,0.374904102457262,0.374787793373993,0.374642162238098,0.37449628078376,0.374378483487501,0.374312486807397,0.374312486807397, +0.469331123278589,0.469331123278589,0.469313530982575,0.469201243317103,0.469020586375755,0.468805950262294,0.468594638885732,0.468423908705242,0.468327341473274,0.468327341473274, +0.583021875539152,0.583021875539152,0.582961099568372,0.582776211698293,0.58250554243183,0.582194997870813,0.581891231685971,0.581642224392979,0.581497313523735,0.581497313523735, +0.712502387829226,0.712502387829226,0.712391745739347,0.712104164891973,0.711710049618917,0.711271426157693,0.710841431899616,0.710476415935869,0.710249044647196,0.710249044647196, +0.853268200890029,0.853268200890029,0.853126993588262,0.852678649416024,0.852116397901822,0.851516063888381,0.8509226520076,0.85038513268605,0.849995519960476,0.849995519960476, + +00:51:48, +0.228629619654111,0.228629619654111,0.228686852404946,0.228693656987193,0.228661788217481,0.2286067576518,0.228545576613338,0.228494219647989,0.228465127689965,0.228465127689965, +0.228629619654111,0.228629619654111,0.228686852404946,0.228693656987193,0.228661788217481,0.2286067576518,0.228545576613338,0.228494219647989,0.228465127689965,0.228465127689965, +0.253386375616306,0.253386375616306,0.253437139128779,0.253433536010574,0.253388589055637,0.25331952597935,0.253245300794078,0.253183825810553,0.253149185505421,0.253149185505421, +0.302498979219313,0.302498979219313,0.302536046974947,0.302510620431383,0.302438332039579,0.30233993711824,0.302238366119906,0.302155560073756,0.302109149915725,0.302109149915725, +0.37505022124705,0.37505022124705,0.375065018430987,0.375004371410607,0.374888089918209,0.374742492413606,0.374596644213554,0.374478873564054,0.374412891743914,0.374412891743914, +0.469419664609624,0.469419664609624,0.469402075306105,0.469289812294156,0.46910919562616,0.468894607558055,0.468683343484651,0.468512651431572,0.468416105691902,0.468416105691902, +0.583094029464694,0.583094029464694,0.583033263347404,0.582848413448914,0.582577801751291,0.582267324088977,0.581963623576603,0.581714669993566,0.581569790205584,0.581569790205584, +0.712553604995873,0.712553604995873,0.712442982330254,0.712155458358248,0.711761423108335,0.711322889734308,0.710892984020769,0.710528042880608,0.710300717749975,0.710300717749975, +0.853294834305283,0.853294834305283,0.853153653719996,0.852705394890644,0.852143251712417,0.851543034178287,0.850949737528163,0.850412322029665,0.850022783735664,0.850022783735664, + +00:51:49, +0.228743592501437,0.228743592501437,0.228800824527383,0.228807635299704,0.228775777747252,0.228720760930468,0.228659593430252,0.228608247208955,0.22857916118,0.22857916118, +0.228743592501437,0.228743592501437,0.228800824527383,0.228807635299704,0.228775777747252,0.228720760930468,0.228659593430252,0.228608247208955,0.22857916118,0.22857916118, +0.253498466135978,0.253498466135978,0.253549228424468,0.253545632695915,0.253500699416168,0.253431653220066,0.253357444727332,0.253295983034181,0.25326135008006,0.25326135008006, +0.302606778648356,0.302606778648356,0.302643844858564,0.302618428601036,0.302546159146074,0.30244778760026,0.302346239767064,0.302263452226462,0.302217052337301,0.302217052337301, +0.375150455938818,0.375150455938818,0.375165252575812,0.375104621276907,0.374988367367097,0.374842803483352,0.374696988527085,0.374579244515826,0.374513277550862,0.374513277550862, +0.469508184483138,0.469508184483138,0.469490598174546,0.469378359808521,0.469197783398944,0.468983243357363,0.468772026568092,0.468601372626875,0.468504848370679,0.468504848370679, +0.583166162557638,0.583166162557638,0.583105406294467,0.582920594354049,0.582650040201692,0.582339629409352,0.582035994540635,0.581787094643793,0.581642245923316,0.581642245923316, +0.71260480553341,0.71260480553341,0.71249420228798,0.712206735169502,0.711812779909401,0.711374336583781,0.710944519376145,0.710579653026929,0.71035237403441,0.71035237403441, +0.853321458470745,0.853321458470745,0.853180304592341,0.852732131073317,0.852170096188323,0.851569995086679,0.850976813620633,0.850439501903528,0.850050038011838,0.850050038011838, + +00:51:50, +0.228857556687928,0.228857556687928,0.228914787982013,0.228921604941216,0.22888975860583,0.22883475553972,0.228773601580372,0.228722266105545,0.228693186007079,0.228693186007079, +0.228857556687928,0.228857556687928,0.228914787982013,0.228921604941216,0.22888975860583,0.22883475553972,0.228773601580372,0.228722266105545,0.228693186007079,0.228693186007079, +0.25361054556727,0.25361054556727,0.253661306626863,0.25365771828504,0.253612798679187,0.253543769363114,0.253469577563373,0.253408129161187,0.253373503558457,0.253373503558457, +0.302714563014574,0.302714563014574,0.302751627677689,0.302726221703235,0.302653971181278,0.302555623006814,0.302454098334833,0.302371329296706,0.302324939674715,0.302324939674715, +0.375250671554064,0.375250671554064,0.375265467645418,0.375204852063759,0.375088625728253,0.37494309545493,0.374797313731949,0.374679596350415,0.374613644235836,0.374613644235836, +0.469596682912927,0.469596682912927,0.469579099601688,0.469466885873986,0.469286349707902,0.469071857674024,0.468860688149872,0.46869007230498,0.46859356952344,0.46859356952344, +0.583238274834416,0.583238274834416,0.583177528425988,0.582992754430132,0.582722257799487,0.582411913848413,0.582108344594566,0.581859498360176,0.581714680693462,0.581714680693462, +0.712655989456379,0.712655989456379,0.712545405627066,0.712257995340296,0.711864120036704,0.711425766720737,0.710996037980405,0.710631246389521,0.71040401351521,0.71040401351521, +0.853348073394923,0.853348073394923,0.853206946213812,0.852758857972587,0.852196931338126,0.851596946622188,0.851003880293687,0.850466672316354,0.850077282797743,0.850077282797743, + +00:51:51, +0.228971512202421,0.228971512202421,0.22902874275768,0.22903556590057,0.229003730782049,0.228948741468376,0.2288876010525,0.228836276326548,0.228807202159985,0.228807202159985, +0.228971512202421,0.228971512202421,0.22902874275768,0.22903556590057,0.229003730782049,0.228948741468376,0.2288876010525,0.228836276326548,0.228807202159985,0.228807202159985, +0.253722613903086,0.253722613903086,0.253773373728872,0.253769792770853,0.253724886837588,0.253655874401376,0.253581699295073,0.253520264184431,0.253485645933468,0.253485645933468, +0.302822332317815,0.302822332317815,0.302859395432168,0.302833999737825,0.302761768145029,0.30266344333773,0.302561941823035,0.302479191284304,0.302432811927782,0.302432811927782, +0.375350868100386,0.375350868100386,0.375365663647396,0.375305063778754,0.375188865009265,0.375043368335929,0.374897619835736,0.374779929075411,0.374713991806428,0.374713991806428, +0.46968515991277,0.46968515991277,0.469667579601301,0.469555390504326,0.469374894566814,0.469160450521826,0.468949328243792,0.468778750479696,0.468682269163999,0.468682269163999, +0.583310366311439,0.583310366311439,0.583249629758372,0.583064893693576,0.582794454561104,0.582484177422611,0.582180673754871,0.581931881159214,0.581787094532529,0.581787094532529, +0.712707156779302,0.712707156779302,0.712596592362036,0.712309238885169,0.711915443504815,0.711477180159782,0.71104753984819,0.710682822983055,0.710455636207065,0.710455636207065, +0.853374679086314,0.853374679086314,0.853233578592917,0.852785575596992,0.852223757170401,0.851623888793434,0.85103093755599,0.850493833276846,0.850104518102109,0.850104518102109, + +00:51:52, +0.229085459033771,0.229085459033771,0.229142688843245,0.229149518166626,0.229117694264757,0.229062718705271,0.229001591835457,0.228950277860774,0.22892120962752,0.22892120962752, +0.229085459033771,0.229085459033771,0.229142688843245,0.229149518166626,0.229117694264757,0.229062718705271,0.229001591835457,0.228950277860774,0.22892120962752,0.22892120962752, +0.253834671136343,0.253834671136343,0.253885429723417,0.253881856146274,0.253836963884283,0.253767968327752,0.253693809915317,0.25363238809679,0.253597777197961,0.253597777197961, +0.30293008655793,0.30293008655793,0.302967148121853,0.302941762704652,0.302869550037167,0.302771248592842,0.302669770231496,0.302587038189077,0.302540669096318,0.302540669096318, +0.375451045585374,0.375451045585374,0.375465840589331,0.375405256429472,0.375289085217713,0.37514362213393,0.374997906846026,0.374880242698394,0.37481432027022,0.37481432027022, +0.469773615496432,0.469773615496432,0.469756038187143,0.469643873713296,0.469463417989442,0.469249021914544,0.469037946863636,0.468867407164818,0.468770947306156,0.468770947306156, +0.583382437005097,0.583382437005097,0.583321710308005,0.583137012160774,0.582866630502955,0.582556420148382,0.582252982038009,0.582004243057383,0.581859487457006,0.581859487457006, +0.712758307516684,0.712758307516684,0.712647762507393,0.712360465818645,0.711966750328282,0.711528576915501,0.71109902499412,0.710734382822184,0.710507242124645,0.710507242124645, +0.853401275553404,0.853401275553404,0.853260201738148,0.852812283955055,0.852250573693712,0.851650821609026,0.851057985416193,0.850520984793698,0.850131743933659,0.850131743933659, + +00:51:53, +0.22919939717085,0.22919939717085,0.22925662622759,0.229263461728263,0.229231649042825,0.229176687239259,0.229115573918084,0.22906427069705,0.229035208398507,0.229035208398507, +0.22919939717085,0.22919939717085,0.22925662622759,0.229263461728263,0.229231649042825,0.229176687239259,0.229115573918084,0.22906427069705,0.229035208398507,0.229035208398507, +0.253946717259971,0.253946717259971,0.253997474603432,0.253993908404233,0.253949029812193,0.253880051135152,0.253805909417003,0.253744500891151,0.253709897344821,0.253709897344821, +0.303037825734773,0.303037825734773,0.303074885746598,0.303049510603568,0.302977316857538,0.302879038771988,0.302777583560046,0.302694870010849,0.302648511180144,0.302648511180144, +0.375551204016612,0.375551204016612,0.375565998478803,0.375505430023491,0.375389286361173,0.375243856856507,0.375098174770395,0.374980537226942,0.374914629634788,0.374914629634788, +0.469862049677657,0.469862049677657,0.469844475372951,0.469732335514636,0.469551919989535,0.469337571865935,0.469126544023173,0.468956042374123,0.468859603963694,0.468859603963694, +0.583454486931761,0.583454486931761,0.58339377009125,0.583209109848098,0.582938785641429,0.582628642042136,0.582325269460414,0.582076584071136,0.581931859483359,0.581931859483359, +0.712809441683008,0.712809441683008,0.712698916077622,0.712411676155225,0.71201804052164,0.711579957002462,0.711150493432799,0.71078592592154,0.710558831282602,0.710558831282602, +0.853427862804669,0.853427862804669,0.85328681565799,0.852838983055288,0.852277380916613,0.851677745077561,0.851085023882938,0.850548126875591,0.8501589603011,0.8501589603011, + +00:51:54, +0.229313326602551,0.229313326602551,0.229370554899613,0.229377396574377,0.229345595105138,0.229290647059214,0.229229547289238,0.229178254824223,0.229149198461783,0.229149198461783, +0.229313326602551,0.229313326602551,0.229370554899613,0.229377396574377,0.229345595105138,0.229290647059214,0.229229547289238,0.229178254824223,0.229149198461783,0.229149198461783, +0.254058752266914,0.254058752266914,0.254109508361866,0.254105949537675,0.254061084614255,0.2539921228165,0.253917997793045,0.253856602560416,0.253822006366943,0.253822006366943, +0.303145549848203,0.303145549848203,0.303182608306262,0.303157243434426,0.303085068605989,0.302986813875008,0.302885381808518,0.302802686749448,0.302756338179086,0.302756338179086, +0.375651343401674,0.375651343401674,0.375666137323381,0.375605584568376,0.375489468447209,0.375344072511225,0.375198423616408,0.375080812668621,0.375014919907701,0.375014919907701, +0.469950462470178,0.469950462470178,0.46993289117245,0.469820775922071,0.469640400580822,0.46942610038974,0.469215119736155,0.469044656121373,0.468948239150382,0.468948239150382, +0.58352651610778,0.58352651610778,0.583465809124451,0.583281186771899,0.583010919992894,0.582700843120264,0.5823975360385,0.58214890421691,0.582004210628034,0.582004210628034, +0.712860559292741,0.712860559292741,0.712750053087188,0.712462869909392,0.712069314099401,0.711631320435213,0.711201945178811,0.710837452295738,0.71061040369557,0.71061040369557, +0.853454440848571,0.853454440848571,0.853313420360913,0.852865672906194,0.852304178847644,0.851704659207623,0.851112052964855,0.850575259531194,0.85018616721313,0.85018616721313, + +00:51:55, +0.229427247317784,0.229427247317784,0.229484474848234,0.229491322693885,0.229459532440603,0.229404598154028,0.229343511937797,0.229292230231159,0.229263179806209,0.229263179806209, +0.229427247317784,0.229427247317784,0.229484474848234,0.229491322693885,0.229459532440603,0.229404598154028,0.229343511937797,0.229292230231159,0.229263179806209,0.229263179806209, +0.254170776150128,0.254170776150128,0.254221530991679,0.25421797953956,0.254173128283417,0.254104183364732,0.254030075036365,0.253968693097501,0.253934104257237,0.253934104257237, +0.303253258898084,0.303253258898084,0.303290315800707,0.303264961197087,0.303192805282373,0.303094573901747,0.302993164976751,0.302910488404706,0.302864150092971,0.302864150092971, +0.375751463748129,0.375751463748129,0.375766257130629,0.37570572007169,0.375589631483383,0.375444269105644,0.375298653391625,0.375181069030991,0.375115191096519,0.375115191096519, +0.470038853887708,0.470038853887708,0.470021285599347,0.469909194949309,0.469728859777018,0.469514607499683,0.469303674016317,0.469133248420313,0.46903685287997,0.46903685287997, +0.583598524549481,0.583598524549481,0.583537827423931,0.583353242948507,0.583083033573698,0.582773023399138,0.582469781788662,0.582221203511117,0.582076540907457,0.582076540907457, +0.712911660360328,0.712911660360328,0.71280117355054,0.712514047095613,0.712120571076059,0.711682667228282,0.711253380246719,0.710888961959372,0.710661959378161,0.710661959378161, +0.853481009693565,0.853481009693565,0.853340015855378,0.852892353516262,0.852330967495336,0.851731564007788,0.851139072670562,0.850602382769166,0.850213364678435,0.850213364678435, + +00:51:56, +0.229541159305479,0.229541159305479,0.229598386062388,0.22960524007572,0.229573461038144,0.229518540512611,0.229457467852657,0.229406196906741,0.229377152420662,0.229377152420662, +0.229541159305479,0.229541159305479,0.229598386062388,0.22960524007572,0.229573461038144,0.229518540512611,0.229457467852657,0.229406196906741,0.229377152420662,0.229377152420662, +0.254282788902581,0.254282788902581,0.254333542485845,0.254329998402856,0.254285160812642,0.2542162327728,0.254142141139902,0.254080772495332,0.254046191008625,0.254046191008625, +0.303360952884279,0.303360952884279,0.303398008229797,0.303372663891411,0.303300526886545,0.303202318852053,0.303100933064584,0.303018274976457,0.302971946921632,0.302971946921632, +0.375851565063539,0.375851565063539,0.375866357908103,0.375805836540984,0.375689775477245,0.375544446647317,0.3753988641036,0.375281306321608,0.375215443208797,0.375215443208797, +0.470127223943945,0.470127223943945,0.470109658667332,0.46999759261004,0.46981729759182,0.469603093209472,0.469392206877378,0.469221819284673,0.469125445166191,0.469125445166191, +0.583670512273173,0.583670512273173,0.583609825005991,0.583425278394233,0.583155126400168,0.582845182895106,0.582542006727273,0.582293481970151,0.582148850338031,0.582148850338031, +0.7129627449002,0.7129627449002,0.712852277482104,0.712565207728332,0.712171811466089,0.71173399739618,0.71130479865107,0.710940454927018,0.71071349834497,0.71071349834497, +0.85350756934809,0.85350756934809,0.853366602149834,0.852919024893972,0.852357746868207,0.851758459486618,0.851166083008667,0.850629496598152,0.850240552705689,0.850240552705689, + +00:51:57, +0.229655062554582,0.229655062554582,0.229712288531031,0.229719148708836,0.229687380886706,0.229632474123893,0.229571415022733,0.229520154839873,0.229491116294036,0.229491116294036, +0.229655062554582,0.229655062554582,0.229712288531031,0.229719148708836,0.229687380886706,0.229632474123893,0.229571415022733,0.229520154839873,0.229491116294036,0.229491116294036, +0.254394790517258,0.254394790517258,0.254445542837352,0.254442006120549,0.254397182194906,0.254328271033667,0.254254196096609,0.254192840746853,0.254158266614042,0.254158266614042, +0.30346863180666,0.30346863180666,0.303505685593403,0.303480351517263,0.303408233418365,0.303310048725778,0.303208686071863,0.303126046464541,0.303079728664904,0.303079728664904, +0.375951647355457,0.375951647355457,0.375966439663352,0.375905933983807,0.375789900436341,0.375644605143788,0.375499055759879,0.375381524548017,0.375315676252082,0.375315676252082, +0.470215572652571,0.470215572652571,0.470198010390079,0.470085968917939,0.469905714038912,0.4696915575328,0.469480718333043,0.469310368728165,0.469214016022765,0.469214016022765, +0.583742479295142,0.583742479295142,0.583681801886913,0.583497293125365,0.583227198488611,0.582917321624498,0.582614210870685,0.582365739610383,0.582221138936142,0.582221138936142, +0.713013812926763,0.713013812926763,0.71290336489629,0.712616351821977,0.712223035283947,0.711785310953399,0.711356200406389,0.710991931213233,0.710765020610572,0.710765020610572, +0.853534119820577,0.853534119820577,0.85339317925272,0.85294568704779,0.852384516974765,0.851785345652665,0.851193083987765,0.850656601026789,0.850267731303556,0.850267731303556, + +00:51:58, +0.22976895705406,0.22976895705406,0.229826182243136,0.229833048582204,0.229801291975249,0.229746398976822,0.229685353436958,0.229634104019474,0.229605071415248,0.229605071415248, +0.22976895705406,0.22976895705406,0.229826182243136,0.229833048582204,0.229801291975249,0.229746398976822,0.229685353436958,0.229634104019474,0.229605071415248,0.229605071415248, +0.254506780987153,0.254506780987153,0.254557532039199,0.254554002685635,0.254509192423197,0.25444029814031,0.254366239899448,0.254304897845017,0.254270331066439,0.254270331066439, +0.303576295665098,0.303576295665098,0.303613347891398,0.303588024074514,0.303515924877696,0.303417763522778,0.303316423998436,0.3032338028688,0.303187495322628,0.303187495322628, +0.37605171063143,0.37605171063143,0.376066502403919,0.376006012407695,0.375890006368209,0.375744744602595,0.375599228367998,0.375481723717756,0.375415890233914,0.375415890233914, +0.47030390002725,0.47030390002725,0.470286340781246,0.470174323886667,0.469994109131958,0.469780000483342,0.469569208396998,0.469398896764485,0.469302565463394,0.469302565463394, +0.583814425631655,0.583814425631655,0.583753758082958,0.583569287158172,0.583299249855313,0.582989439603623,0.58268639423523,0.582437976448166,0.582293406718152,0.582293406718152, +0.71306486445441,0.71306486445441,0.71295443580749,0.712667479390955,0.712274242544071,0.71183660791441,0.711407585527186,0.711043390832555,0.710816526189524,0.710816526189524, +0.853560661119445,0.853560661119445,0.853419747172463,0.852972339986175,0.852411277823507,0.851812222514469,0.85122007561644,0.850683696063699,0.850294900480687,0.850294900480687, + +00:51:59, +0.229882842792898,0.229882842792898,0.229940067187695,0.229946939684814,0.229915194292754,0.229860315060364,0.229799283084284,0.229748044434486,0.22971901777323,0.22971901777323, +0.229882842792898,0.229882842792898,0.229940067187695,0.229946939684814,0.229915194292754,0.229860315060364,0.229799283084284,0.229748044434486,0.22971901777323,0.22971901777323, +0.254618760305275,0.254618760305275,0.254669510084399,0.254665988091126,0.254621191490516,0.254552314085717,0.254478272541397,0.254416943782791,0.254382384358777,0.254382384358777, +0.303683944459471,0.303683944459471,0.303720995123657,0.303695681563035,0.303623601264404,0.303525463242912,0.303424146844154,0.303341544189081,0.303295246894646,0.303295246894646, +0.376151754898998,0.376151754898998,0.376166546137338,0.376106071820183,0.375990093280379,0.375844865031269,0.37569938193549,0.37558190383836,0.375516085161825,0.375516085161825, +0.470392206081633,0.470392206081633,0.470374649854477,0.470262657529864,0.470082482884608,0.469868422074758,0.469657677082913,0.469487403407315,0.469391093501764,0.469391093501764, +0.583886351298958,0.583886351298958,0.583825693610367,0.583641260508903,0.583371280516539,0.583061536848768,0.58275855683722,0.58251019249983,0.582365653700403,0.582365653700403, +0.713115899497511,0.713115899497511,0.713005490230074,0.712718590449658,0.71232543326088,0.711887888293667,0.711458954027948,0.711094833799503,0.710868015096363,0.710868015096363, +0.853587193253101,0.853587193253101,0.853446305917477,0.852998983717571,0.852438029422916,0.851839090080559,0.851247057903264,0.850710781717495,0.850322060245721,0.850322060245721, + +00:52:00, +0.229996719760099,0.229996719760099,0.23005394335372,0.230060822005674,0.23002908782822,0.229974222363504,0.229913203953681,0.229861976073867,0.229832955356934,0.229832955356934, +0.229996719760099,0.229996719760099,0.23005394335372,0.230060822005674,0.23002908782822,0.229974222363504,0.229913203953681,0.229861976073867,0.229832955356934,0.229832955356934, +0.254730728464647,0.254730728464647,0.25478147696598,0.254777962330044,0.254733179389878,0.254664318862893,0.254590294015448,0.254528978553157,0.254494426484031,0.254494426484031, +0.303791578189659,0.303791578189659,0.30382862729006,0.303803323982704,0.303731262578359,0.303633147886042,0.303531854608875,0.303449270425234,0.303402983380806,0.303402983380806, +0.376251780165692,0.376251780165692,0.376266570871135,0.376206112228793,0.376090161180374,0.375944966437332,0.375799516469878,0.375682064917351,0.375616261043341,0.375616261043341, +0.470480490829352,0.470480490829352,0.470462937623396,0.470350969861159,0.470170835310496,0.469956822320692,0.469746124404444,0.469575888670317,0.469479600151544,0.469479600151544, +0.583958256313276,0.583958256313276,0.583897608485358,0.583713213193783,0.583443290488534,0.583133613376201,0.582830698692945,0.582582387781685,0.582437879899217,0.582437879899217, +0.713166918070419,0.713166918070419,0.713056528178395,0.712769685012454,0.712376607448773,0.711939152105605,0.711510305923146,0.711146260128577,0.710919487345608,0.710919487345608, +0.853613716229943,0.853613716229943,0.853472855496168,0.853025618250411,0.852464771781468,0.851865948359452,0.851274030856801,0.850737857996779,0.850349210607288,0.850349210607288, + +00:52:01, +0.230110587944685,0.230110587944685,0.23016781073024,0.230174695533812,0.230142972570664,0.230088120875246,0.230027116034138,0.229975898926594,0.229946884155331,0.229946884155331, +0.230110587944685,0.230110587944685,0.23016781073024,0.230174695533812,0.230142972570664,0.230088120875246,0.230027116034138,0.229975898926594,0.229946884155331,0.229946884155331, +0.254842685458302,0.254842685458302,0.254893432676981,0.254889925395425,0.254845156114311,0.254776312464852,0.254702304314603,0.254641002149108,0.25460645743519,0.25460645743519, +0.303899196855545,0.303899196855545,0.303936244390492,0.303910951333399,0.303838908819437,0.303740817452036,0.303639547292456,0.303556981577113,0.303510704780958,0.303510704780958, +0.376351786439039,0.376351786439039,0.376366576612833,0.376306133641043,0.376190210075712,0.376045048828301,0.37589963197868,0.375782206962249,0.375716417885981,0.375716417885981, +0.470568754284025,0.470568754284025,0.470551204101613,0.470439260894161,0.470259166423237,0.470045201234771,0.469834550375229,0.46966435256714,0.469568085426388,0.469568085426388, +0.584030140690814,0.584030140690814,0.583969502724132,0.583785145229022,0.583515279787522,0.583205669202168,0.582902819818675,0.582654562310022,0.582510085330895,0.582510085330895, +0.713217920187469,0.713217920187469,0.713107549666789,0.712820763093696,0.712427765122131,0.711990399364639,0.711561641227231,0.711197669834258,0.710970942951759,0.710970942951759, +0.853640230058356,0.853640230058356,0.853499395916928,0.853052243593121,0.852491504907624,0.851892797359656,0.851300994485599,0.85076492491014,0.850376351574005,0.850376351574005, + +00:52:02, +0.230224447335696,0.230224447335696,0.230281669306301,0.230288560258273,0.230256848509121,0.230202010584611,0.230141019314663,0.230089812981662,0.230060804157409,0.230060804157409, +0.230224447335696,0.230224447335696,0.230281669306301,0.230288560258273,0.230256848509121,0.230202010584611,0.230141019314663,0.230089812981662,0.230060804157409,0.230060804157409, +0.254954631279289,0.254954631279289,0.255005377210453,0.255001877280319,0.254957121656856,0.254888294884625,0.254814303431881,0.254753014563652,0.254718477205255,0.254718477205255, +0.304006800457018,0.304006800457018,0.304043846424839,0.304018563615006,0.303946539987513,0.303848471940763,0.303747224894761,0.303664677644574,0.303618411094957,0.303618411094957, +0.376451773726556,0.376451773726556,0.376466563369943,0.376406136064445,0.376290239973901,0.376145112211686,0.375999728469405,0.375882329980563,0.375816555697255,0.375816555697255, +0.47065699645925,0.47065699645925,0.470639449302721,0.470527530642466,0.470347476236434,0.470133558830606,0.46992295500889,0.469752795111417,0.469656549339933,0.469656549339933, +0.584102004447756,0.584102004447756,0.584041376342866,0.583857056630804,0.583587248429707,0.583277704342895,0.582974920230659,0.582726716101108,0.582582270011719,0.582582270011719, +0.713268905862975,0.713268905862975,0.71315855470957,0.712871824707717,0.712478906295317,0.712041630085168,0.711612959954634,0.711249062931009,0.711022381929296,0.711022381929296, +0.853666734746714,0.853666734746714,0.853525927188142,0.85307885975411,0.852518228809836,0.851919637089664,0.851327948798199,0.850791982466155,0.850403483154477,0.850403483154477, + +00:52:03, +0.23033829792219,0.23033829792219,0.230395519070971,0.23040241616812,0.230370715632647,0.23031589148064,0.230254913784282,0.230203718228086,0.230174715352176,0.230174715352176, +0.23033829792219,0.23033829792219,0.230395519070971,0.23040241616812,0.230370715632647,0.23031589148064,0.230254913784282,0.230203718228086,0.230174715352176,0.230174715352176, +0.255066565920668,0.255066565920668,0.255117310559462,0.255113817977788,0.255069076010565,0.255000266115252,0.254926291360309,0.254865015789808,0.254830485787241,0.254830485787241, +0.304114388993968,0.304114388993968,0.304151433392992,0.30412616082741,0.304054156082469,0.303956111352097,0.303854887415657,0.303772358627479,0.30372610232266,0.30372610232266, +0.376551742035754,0.376551742035754,0.376566531149971,0.3765061195065,0.376390250882443,0.376245156594988,0.376099805949557,0.375982433979797,0.375916674484668,0.375916674484668, +0.470745217368615,0.470745217368615,0.470727673240299,0.47061577911965,0.470435764763671,0.470221895121792,0.470011338319034,0.469841216316762,0.469744991905801,0.469744991905801, +0.584173847600266,0.584173847600266,0.584113229357719,0.583928947415297,0.583659196431272,0.583349718814589,0.583046999945127,0.582798849171194,0.582654433957948,0.582654433957948, +0.713319875111236,0.713319875111236,0.713209543321035,0.712922869868833,0.712530030982675,0.712092844281568,0.71166426211977,0.711300439433272,0.711073804292681,0.711073804292681, +0.85369323030338,0.85369323030338,0.853552449318179,0.85310546674178,0.852544943496544,0.851946467557961,0.851354893803126,0.850819030673392,0.850430605357299,0.850430605357299, + +00:52:04, +0.230452139693244,0.230452139693244,0.230509360013333,0.230516263252436,0.230484573930313,0.230429763552392,0.230368799432038,0.230317614654898,0.230288617728657,0.230288617728657, +0.230452139693244,0.230452139693244,0.230509360013333,0.230516263252436,0.230484573930313,0.230429763552392,0.230368799432038,0.230317614654898,0.230288617728657,0.230288617728657, +0.255178489375513,0.255178489375513,0.255229232717086,0.255225747480908,0.255181019168507,0.255112226149789,0.255038268092932,0.25497700582061,0.254942483174176,0.254942483174176, +0.304221962466289,0.304221962466289,0.304259005294846,0.304233742970503,0.30416175710419,0.304063735685916,0.303962534855014,0.303880024525694,0.303833778463929,0.303833778463929, +0.376651691374137,0.376651691374137,0.376666479960417,0.376606083974706,0.376490242808833,0.376345181985702,0.376199864426629,0.376082518967449,0.376016774255718,0.376016774255718, +0.470833417025685,0.470833417025685,0.470815875927907,0.470704006339276,0.470524032018518,0.470310210121908,0.47009970031925,0.469929616196775,0.469833413137596,0.469833413137596, +0.584245670164488,0.584245670164488,0.584185061784829,0.584000817598645,0.58373112380838,0.583421712633435,0.583119058978287,0.582870961536506,0.582726577185822,0.582726577185822, +0.713370827946528,0.713370827946528,0.713260515515464,0.712973898591338,0.712581139198528,0.7121440419682,0.711715547737033,0.711351799355473,0.711125210056358,0.711125210056358, +0.853719716736707,0.853719716736707,0.853578962315399,0.85313206456452,0.852571648976177,0.851973288773019,0.851381829508898,0.850846069540406,0.850457718191053,0.850457718191053, + +00:52:05, +0.230565972637954,0.230565972637954,0.230623192122491,0.230630101500321,0.230598423391211,0.230543626788944,0.230482676246995,0.230431502251149,0.230402511275899,0.230402511275899, +0.230565972637954,0.230565972637954,0.230623192122491,0.230630101500321,0.230598423391211,0.230543626788944,0.230482676246995,0.230431502251149,0.230402511275899,0.230402511275899, +0.255290401636911,0.255290401636911,0.255341143676417,0.255337665782766,0.25529295112376,0.255224174981304,0.255150233622806,0.255088984649104,0.255054469359099,0.255054469359099, +0.304329520873881,0.304329520873881,0.304366562130299,0.30434131004418,0.304269343052564,0.3041713449421,0.304070167212706,0.303987675339085,0.30394143951863,0.30394143951863, +0.3767516217492,0.3767516217492,0.376766409808772,0.37670602947655,0.376590215760559,0.376445188391316,0.376299903908112,0.376182584951006,0.376116855017893,0.376116855017893, +0.470921595444015,0.470921595444015,0.47090405737909,0.47079221231489,0.470612278014526,0.470398503844517,0.470188041023112,0.47001799476504,0.469921813048909,0.469921813048909, +0.584317472156544,0.584317472156544,0.584256873640314,0.584072667196973,0.583803030577173,0.583493685815596,0.583191097346327,0.582943053213252,0.58279869971156,0.58279869971156, +0.713421764383111,0.713421764383111,0.713311471307114,0.71302491088951,0.712632230957184,0.712195223159404,0.711766816820798,0.711403142712017,0.71117659923475,0.71117659923475, +0.853746194055036,0.853746194055036,0.853605466188153,0.853158653230709,0.852598345257153,0.852000100743301,0.85140875592402,0.850873099075742,0.850484821664312,0.850484821664312, + +00:52:06, +0.230679796745434,0.230679796745434,0.230737015387565,0.230743930900895,0.23071226400445,0.230657481179392,0.230596544218235,0.230545381005909,0.230516395982962,0.230516395982962, +0.230679796745434,0.230679796745434,0.230737015387565,0.230743930900895,0.23071226400445,0.230657481179392,0.230596544218235,0.230545381005909,0.230516395982962,0.230516395982962, +0.255402302697961,0.255402302697961,0.255453043430559,0.255449572876465,0.255404871869418,0.255336112602878,0.255262187942999,0.255200952268348,0.255166444335066,0.255166444335066, +0.304437064216644,0.304437064216644,0.304474103899251,0.304448862048337,0.304376913927484,0.304278939120535,0.304177784488611,0.304095311067526,0.304049085486631,0.304049085486631, +0.376851533168434,0.376851533168434,0.376866320702521,0.376805956019516,0.376690169745101,0.376545175819311,0.376399924401485,0.376282631937952,0.376216916778677,0.376216916778677, +0.471009752637141,0.471009752637141,0.470992217607379,0.470880397060022,0.470700502765233,0.470486776303166,0.47027636044418,0.470106352035124,0.470010191653311,0.470010191653311, +0.584389253592536,0.584389253592536,0.58432866494027,0.584144496226388,0.583874916753774,0.583565638377219,0.583263115065414,0.58301512421762,0.58287080155136,0.58287080155136, +0.713472684435226,0.713472684435226,0.713362410710228,0.713075906777608,0.71268330627293,0.712246387869503,0.711818069385424,0.711454469517292,0.711227971842263,0.711227971842263, +0.853772662266697,0.853772662266697,0.853631960944777,0.853185232748714,0.852625032347879,0.852026903477255,0.851435673056985,0.850900119287932,0.850511915785636,0.850511915785636, + +00:52:07, +0.230793612004815,0.230793612004815,0.230850829797695,0.230857751443293,0.230826095759158,0.230771326712849,0.230710403334856,0.230659250908265,0.230630271838929,0.230630271838929, +0.230793612004815,0.230793612004815,0.230850829797695,0.230857751443293,0.230826095759158,0.230771326712849,0.230710403334856,0.230659250908265,0.230630271838929,0.230630271838929, +0.255514192551777,0.255514192551777,0.255564931972628,0.255561468755117,0.255516781398585,0.255448039007604,0.255374131046593,0.255312908671416,0.255278408095143,0.255278408095143, +0.304544592494485,0.304544592494485,0.304581630601609,0.304556398982877,0.304484469728843,0.304386518221109,0.304285386682609,0.304202931710892,0.304156716367806,0.304156716367806, +0.37695142563932,0.37695142563932,0.37696621264914,0.376905863611076,0.376790104769933,0.376645144277159,0.376499925914224,0.376382659935762,0.376316959545546,0.376316959545546, +0.471097888618582,0.471097888618582,0.471080356626285,0.470968560588187,0.470788706284159,0.470575027511386,0.470364658595994,0.470194688020579,0.470098548964361,0.470098548964361, +0.584461014488548,0.584461014488548,0.584400435700775,0.584216304702972,0.583946782354283,0.583637570334426,0.583335112151696,0.583087174565777,0.5829428827214,0.5829428827214, +0.713523588117096,0.713523588117096,0.713413333739029,0.713126886269871,0.712734365160035,0.7122975361128,0.711869305445248,0.711505779785666,0.711279327893284,0.711279327893284, +0.85379912138001,0.85379912138001,0.853658446593599,0.853211803126892,0.852651710256749,0.852053696983322,0.851462580916276,0.850927130185499,0.850539000563574,0.850539000563574, + +00:52:08, +0.230907418405247,0.230907418405247,0.230964635342038,0.230971563116673,0.23093991864448,0.230885163378449,0.230824253585977,0.230773111947324,0.230744138832899,0.230744138832899, +0.230907418405247,0.230907418405247,0.230964635342038,0.230971563116673,0.23093991864448,0.230885163378449,0.230824253585977,0.230773111947324,0.230744138832899,0.230744138832899, +0.255626071191483,0.255626071191483,0.255676809295754,0.255673353411851,0.255628679704381,0.25555995418859,0.255486062926683,0.255424853851392,0.255390360632409,0.255390360632409, +0.304652105707311,0.304652105707311,0.30468914223728,0.304663920847704,0.304592010456543,0.304494082243713,0.304392973794586,0.304310537269062,0.30426433216203,0.30426433216203, +0.377051299169334,0.377051299169334,0.377066085656101,0.377005752258699,0.376890020842522,0.376745093772328,0.376599908453796,0.376482668951903,0.376416983325969,0.376416983325969, +0.471186003401843,0.471186003401843,0.471168474449307,0.471056702912882,0.470876888584809,0.470663257482692,0.47045293549208,0.470283002734941,0.470186884995599,0.470186884995599, +0.584532754860641,0.584532754860641,0.584472185937884,0.58428809264279,0.584018627394783,0.583709481703321,0.5834070886213,0.583159204273868,0.58301494323784,0.58301494323784, +0.713574475442925,0.713574475442925,0.713464240407719,0.713177849380522,0.712785407632749,0.712348667903581,0.711920525014591,0.711557073531488,0.711330667402181,0.711330667402181, +0.853825571403281,0.853825571403281,0.853684923142935,0.853238364373587,0.85267837899215,0.852080481269928,0.851489479510365,0.850954131776951,0.850566076006663,0.850566076006663, + +00:52:09, +0.231021215935899,0.231021215935899,0.23107843200977,0.231085365910207,0.231053732649581,0.230998991165341,0.230938094960734,0.230886964112211,0.23085799695399,0.23085799695399, +0.231021215935899,0.231021215935899,0.23107843200977,0.231085365910207,0.231053732649581,0.230998991165341,0.230938094960734,0.230886964112211,0.23085799695399,0.23085799695399, +0.255737938610217,0.255737938610217,0.255788675393082,0.255785226839805,0.255740566779936,0.255671858138955,0.255597983576377,0.255536787801374,0.255502301939958,0.255502301939958, +0.304759603855036,0.304759603855036,0.304796638806178,0.304771427642728,0.304699536110485,0.304601631188243,0.304500545824431,0.304418127741919,0.304371932869184,0.304371932869184, +0.377151153765944,0.377151153765944,0.377165939730866,0.377105621969846,0.376989917970326,0.376845024312278,0.376699872027661,0.376582658993837,0.376516988127407,0.376516988127407, +0.471274097000412,0.471274097000412,0.471256571089925,0.471144824047588,0.470965049680672,0.470751466230583,0.470541191145949,0.470371296191728,0.470275199760549,0.470275199760549, +0.584604474724856,0.584604474724856,0.584543915667633,0.584359860061886,0.584090451891334,0.583781372499988,0.583479044490332,0.583231213358019,0.583086983116815,0.583086983116815, +0.713625346426897,0.713625346426897,0.713515130730485,0.713228796123762,0.712836433705305,0.712399783256111,0.711971728107754,0.71160835076909,0.711381990383303,0.711381990383303, +0.85385201234481,0.85385201234481,0.85371139060109,0.853264916497135,0.852705038562453,0.852107256345491,0.851516368847711,0.85098112407079,0.85059314212343,0.85059314212343, + +00:52:10, +0.231135004585959,0.231135004585959,0.231192219790087,0.231199159813088,0.231167537763644,0.231112810062695,0.231051927448282,0.231000807392068,0.230971846191339,0.230971846191339, +0.231135004585959,0.231135004585959,0.231192219790087,0.231199159813088,0.231167537763644,0.231112810062695,0.231051927448282,0.231000807392068,0.230971846191339,0.230971846191339, +0.255849794801132,0.255849794801132,0.255900530257765,0.255897089032133,0.255852442618396,0.255783750851832,0.255709892988795,0.255648710514474,0.255614232010894,0.255614232010894, +0.304867086937575,0.304867086937575,0.304904120308217,0.30487891936786,0.304807046690575,0.304709165054599,0.304608102772034,0.30452570312935,0.30447951848915,0.30447951848915, +0.37725098943661,0.37725098943661,0.377265774880892,0.377205472751969,0.377089796160799,0.376944935904459,0.376799816643272,0.376682630069018,0.376616973957316,0.376616973957316, +0.471362169427762,0.471362169427762,0.471344646561604,0.471232924005773,0.47105318958522,0.470839653768541,0.470629425571095,0.470459568404445,0.470363493272722,0.470363493272722, +0.584676174097216,0.584676174097216,0.58461562490604,0.584431606976284,0.584162255859977,0.58385324274049,0.583550979774878,0.583303201834337,0.583159002374442,0.583159002374442, +0.713676201083179,0.713676201083179,0.713566004721493,0.713279726513778,0.712887443391914,0.712450882184638,0.712022914739019,0.711659611512784,0.711433296850981,0.711433296850981, +0.85387844421288,0.85387844421288,0.853737848976357,0.853291459505857,0.852731688976021,0.852134022218417,0.851543248936764,0.851008107075501,0.850620198922391,0.850620198922391, + +00:52:11, +0.23124878434463,0.23124878434463,0.231305998672199,0.231312944814526,0.231281333975869,0.231226620059698,0.231165751037793,0.231114641776057,0.231085686534101,0.231085686534101, +0.23124878434463,0.23124878434463,0.231305998672199,0.231312944814526,0.231281333975869,0.231226620059698,0.231165751037793,0.231114641776057,0.231085686534101,0.231085686534101, +0.25596163975739,0.25596163975739,0.256012373882972,0.256008939982001,0.255964307212916,0.255895632320367,0.255821791157073,0.255760621983815,0.255726150838337,0.255726150838337, +0.304974554954847,0.304974554954847,0.305011586743317,0.304986396023017,0.304914542196724,0.304816683842682,0.304715644637292,0.304633263431244,0.304587089021818,0.304587089021818, +0.377350806188786,0.377350806188786,0.377365591113627,0.377305304612515,0.377189655421384,0.377044828556318,0.376899742308075,0.376782582184893,0.376716940823142,0.376716940823142, +0.471450220697349,0.471450220697349,0.471432700877794,0.471321002800886,0.471141308311911,0.470927820110033,0.470717638780995,0.470547819386579,0.470451765545611,0.470451765545611, +0.58474785299372,0.58474785299372,0.584687313669098,0.584503333401986,0.584234039316732,0.58392509244087,0.583622894491004,0.583375169718906,0.58323100102682,0.58323100102682, +0.713727039425921,0.713727039425921,0.713616862394893,0.713330640564734,0.712938436706774,0.712501964703391,0.71207408492265,0.711710855776864,0.711484586819528,0.711484586819528, +0.853904867015769,0.853904867015769,0.85376429827702,0.853317993408067,0.852758330241206,0.852160778897099,0.851570119785961,0.851035080799563,0.850647246412048,0.850647246412048, + +00:52:12, +0.231362555201137,0.231362555201137,0.231419768645338,0.231426720903749,0.231395121275476,0.231340421145556,0.23127956571846,0.231228467253357,0.231199517971448,0.231199517971448, +0.231362555201137,0.231362555201137,0.231419768645338,0.231426720903749,0.231395121275476,0.231340421145556,0.23127956571846,0.231228467253357,0.231199517971448,0.231199517971448, +0.256073473472169,0.256073473472169,0.256124206261886,0.256120779682586,0.256076160556668,0.256007502537718,0.255933678074355,0.255872522202535,0.255838058415419,0.255838058415419, +0.305082007906777,0.305082007906777,0.305119038111401,0.305093857608117,0.305022022628845,0.304924187552398,0.304823171420104,0.304740808647497,0.304694644467076,0.304694644467076, +0.377450604029919,0.377450604029919,0.377465388436513,0.377405117558923,0.377289495759521,0.377144702275292,0.376999649029508,0.376882515348902,0.376816888732326,0.376816888732326, +0.471538250822612,0.471538250822612,0.471520734051929,0.471409060446362,0.471229405874185,0.471015965268512,0.470805830789113,0.470636049151601,0.470540016592691,0.470540016592691, +0.58481951143035,0.58481951143035,0.584758981972784,0.584575039354977,0.5843058022776,0.583996921617149,0.583694788654755,0.583447117027791,0.583302979090023,0.583302979090023, +0.713777861469251,0.713777861469251,0.713667703764813,0.713381538290779,0.712989413664058,0.712553030826582,0.712125238672894,0.711762083575605,0.711535860303235,0.711535860303235, +0.853931280761739,0.853931280761739,0.853790738511351,0.853344518212065,0.852784962366347,0.852187526389922,0.851596981403729,0.85106204525144,0.850674284600896,0.850674284600896, + +00:52:13, +0.23147631714472,0.23147631714472,0.231533529698752,0.231540488070004,0.231508899651701,0.231454213309492,0.231393371479491,0.231342283813166,0.231313340492571,0.231313340492571, +0.23147631714472,0.23147631714472,0.231533529698752,0.231540488070004,0.231508899651701,0.231454213309492,0.231393371479491,0.231342283813166,0.231313340492571,0.231313340492571, +0.256185295938658,0.256185295938658,0.2562360273877,0.25623260812708,0.256188002642834,0.256119361497057,0.256045553733801,0.255984411163783,0.255949954735283,0.255949954735283, +0.305189445793289,0.305189445793289,0.305226474412394,0.305201304123083,0.305129487986854,0.305031676183659,0.304930683120373,0.304848338778005,0.304802184824819,0.304802184824819, +0.377550382967448,0.377550382967448,0.377565166856985,0.377504911598625,0.37738931718264,0.377244557068813,0.377099536815005,0.376982429568477,0.376916817692302,0.376916817692302, +0.471626259816977,0.471626259816977,0.471608746097424,0.471497096955619,0.471317482285467,0.471104089257411,0.470894001608893,0.470724257712967,0.470628246427426,0.470628246427426, +0.584891149423066,0.584891149423066,0.584830629833053,0.584646724851218,0.58437754475856,0.584068730285331,0.583766662282158,0.583519043777038,0.583374936580109,0.583374936580109, +0.713828667227281,0.713828667227281,0.713718528845367,0.713432419706041,0.713040374277927,0.712604080568402,0.712176376003976,0.711813294923263,0.711587117316379,0.711587117316379, +0.853957685459045,0.853957685459045,0.853817169687611,0.853371033926142,0.852811585359775,0.852214264705257,0.851623833798484,0.851089000439587,0.850701313497414,0.850701313497414, + +00:52:14, +0.231590070164638,0.231590070164638,0.231647281821709,0.231654246302555,0.2316226690938,0.231567996540747,0.231507168310114,0.2314560914447,0.231427154086682,0.231427154086682, +0.231590070164638,0.231590070164638,0.231647281821709,0.231654246302555,0.2316226690938,0.231567996540747,0.231507168310114,0.2314560914447,0.231427154086682,0.231427154086682, +0.256297107150061,0.256297107150061,0.25634783725362,0.256344425308688,0.256299833464609,0.256231209191567,0.256157418128584,0.256096288860723,0.256061839791087,0.256061839791087, +0.305296868614315,0.305296868614315,0.305333895646228,0.305308735567842,0.305236938270672,0.305139149736377,0.305038179738006,0.304955853822669,0.304909710094947,0.304909710094947, +0.377650143008806,0.377650143008806,0.377664926382471,0.377604686739046,0.377489119698166,0.377344392944306,0.377199405671988,0.377082324851044,0.377016727710497,0.377016727710497, +0.471714247693853,0.471714247693853,0.471696737027684,0.471585112342058,0.471405537559167,0.471192192090151,0.470982151253767,0.470812445084118,0.47071645506326,0.47071645506326, +0.584962766987809,0.584962766987809,0.58490225726584,0.584718389906652,0.584449266775574,0.584140518461397,0.583838515389216,0.58359094998267,0.583446873513112,0.583446873513112, +0.713879456714105,0.713879456714105,0.713769337650647,0.713483284824631,0.713091318562518,0.712655113943025,0.712227496930105,0.711864489834077,0.711638357873215,0.711638357873215, +0.853984081115928,0.853984081115928,0.85384359181405,0.853397540558577,0.852838199229806,0.852240993851467,0.851650676978629,0.851115946372446,0.850728333110074,0.850728333110074, + +00:52:15, +0.231703814250171,0.231703814250171,0.231761025003493,0.231767995590686,0.231736429591047,0.231681770828583,0.231620956199576,0.231569890137194,0.231540958743006,0.231540958743006, +0.231703814250171,0.231703814250171,0.231761025003493,0.231767995590686,0.231736429591047,0.231681770828583,0.231620956199576,0.231569890137194,0.231540958743006,0.231540958743006, +0.256408907099591,0.256408907099591,0.256459635852867,0.256456231220625,0.256411653015203,0.256343045614446,0.256269271251889,0.256208155286528,0.256173713576002,0.256173713576002, +0.305404276369788,0.305404276369788,0.305441301812835,0.305416151942324,0.305344373480224,0.305246608210468,0.305145661272911,0.305063353781393,0.305017220277359,0.305017220277359, +0.377749884161418,0.377749884161418,0.37776466702039,0.377704442987604,0.377588903313515,0.377444209909186,0.377299255607878,0.377182201204024,0.377116618794329,0.377116618794329, +0.471802214466631,0.471802214466631,0.471784706856092,0.471673106619068,0.471493571708677,0.471280273780134,0.471070279737149,0.470900611278476,0.470804642513622,0.470804642513622, +0.5850343641405,0.5850343641405,0.58497386428706,0.584790034537203,0.584520968344579,0.584212286161309,0.583910347991916,0.583662835660692,0.58351878990505,0.58351878990505, +0.713930229943796,0.713930229943796,0.713820130194728,0.713534133660642,0.713142246531953,0.712706130964606,0.712278601465471,0.711915668322265,0.711689581987981,0.711689581987981, +0.854010467740621,0.854010467740621,0.853870004898908,0.853424038117639,0.852864803984749,0.8522677138369,0.851677510952559,0.851142883058451,0.850755343447335,0.850755343447335, + +00:52:16, +0.231817549390613,0.231817549390613,0.231874759233407,0.231881735923698,0.231850181132733,0.231795536162277,0.231734735137139,0.2316836798799,0.231654754450791,0.231654754450791, +0.231817549390613,0.231817549390613,0.231874759233407,0.231881735923698,0.231850181132733,0.231795536162277,0.231734735137139,0.2316836798799,0.231654754450791,0.231654754450791, +0.256520695780477,0.256520695780477,0.256571423178673,0.256568025856121,0.256523461287835,0.256454870758902,0.256381113096914,0.256320010434389,0.25628557608321,0.25628557608321, +0.305511669059645,0.305511669059645,0.305548692912151,0.305523553246461,0.305451793615435,0.305354051605854,0.305253127725004,0.305170838654087,0.305124715371962,0.305124715371962, +0.377849606432702,0.377849606432702,0.377864388778158,0.37780418035171,0.377688668036097,0.377544007970864,0.377399086630084,0.377282058634826,0.377216490951212,0.377216490951212, +0.471890160148689,0.471890160148689,0.471872655596018,0.471761079800018,0.471581584747375,0.471368334340748,0.471158387072438,0.470988756309451,0.470892808791927,0.470892808791927, +0.585105940897038,0.585105940897038,0.585045450912607,0.584861658758773,0.584592649481497,0.58428403340101,0.583982160106221,0.583734700827089,0.583590685771916,0.583590685771916, +0.713980986930413,0.713980986930413,0.713870906491667,0.713584966228147,0.713193158200334,0.712757131647282,0.712329689624245,0.71196683040203,0.711740789674897,0.711740789674897, +0.854036845341343,0.854036845341343,0.853896408950412,0.853450526611583,0.852891399632899,0.852294424669896,0.851704335728655,0.851169810506021,0.850782344517644,0.850782344517644, + +00:52:17, +0.231931275575278,0.231931275575278,0.231988484500773,0.231995467290909,0.231963923708167,0.231909292531125,0.231848505112086,0.231797460662088,0.2317685411993,0.2317685411993, +0.231931275575278,0.231931275575278,0.231988484500773,0.231995467290909,0.231963923708167,0.231909292531125,0.231848505112086,0.231797460662088,0.2317685411993,0.2317685411993, +0.25663247318596,0.25663247318596,0.256683199224284,0.256679809208419,0.256635258275741,0.25656668461816,0.256492943656869,0.256431854297506,0.256397427305907,0.256397427305907, +0.305619046683826,0.305619046683826,0.305656068944119,0.305630939480192,0.305559198676239,0.305461479922458,0.305360579094201,0.305278308440661,0.305232195378664,0.305232195378664, +0.37794930983007,0.37794930983007,0.377964091663181,0.377903898838769,0.377788413873315,0.377643787136744,0.37749889874601,0.377381897150856,0.377316344188551,0.377316344188551, +0.471978084753388,0.471978084753388,0.471960583260818,0.471849031898263,0.471669576688623,0.471456373785366,0.471246473273016,0.471076880190435,0.470980953911572,0.470980953911572, +0.585177497273304,0.585177497273304,0.585117017158358,0.584933262587244,0.584664310202226,0.584355760196421,0.584053951748077,0.583806545497823,0.583662561129688,0.583662561129688, +0.714031727687992,0.714031727687992,0.713921666555503,0.713635782541203,0.713244053581747,0.712808116005172,0.712380761420582,0.712017976087554,0.711791980948162,0.711791980948162, +0.854063213926304,0.854063213926304,0.85392280397678,0.853477006048658,0.852917986182542,0.852321126358784,0.851731151315289,0.851196728723567,0.850809336329439,0.850809336329439, + +00:52:18, +0.232044992793498,0.232044992793498,0.232102200794929,0.232109189681656,0.232077657306679,0.232023039924442,0.231962266113718,0.231911232473048,0.231882318977816,0.231882318977816, +0.232044992793498,0.232044992793498,0.232102200794929,0.232109189681656,0.232077657306679,0.232023039924442,0.231962266113718,0.231911232473048,0.231882318977816,0.231882318977816, +0.256744239309293,0.256744239309293,0.256794963982956,0.256791581270774,0.256747043972167,0.256678487185454,0.256604762924979,0.256543686869094,0.256509267237302,0.256509267237302, +0.305726409242276,0.305726409242276,0.30576342990868,0.305738310643455,0.305666588662569,0.305568893160209,0.305468015380423,0.305385763141032,0.305339660297378,0.305339660297378, +0.378048994360926,0.378048994360926,0.378063775682857,0.378003598456176,0.377888140832565,0.37774354741422,0.377598691963053,0.377481716759512,0.377416178513745,0.377416178513745, +0.472065988294073,0.472065988294073,0.472048489863829,0.471936962927143,0.471757547545767,0.471544392127342,0.471334538352251,0.471164982934804,0.471069077885939,0.471069077885939, +0.585249033285158,0.585249033285158,0.585188563040165,0.585004846038479,0.584735950522646,0.584427466563443,0.584125722933407,0.58387836968884,0.583734415994319,0.583734415994319, +0.714082452230554,0.714082452230554,0.713972410400255,0.713686582613847,0.713294932690256,0.712859084052376,0.712431816868614,0.712069105393,0.71184315582196,0.71184315582196, +0.854089573503704,0.854089573503704,0.853949189986219,0.853503476437099,0.852944563641951,0.85234781891188,0.85175795772082,0.851223637719487,0.850836318891144,0.850836318891144, + +00:52:19, +0.232158701034623,0.232158701034623,0.232215908105234,0.232222903085296,0.232191381917612,0.232136778331561,0.232076018131353,0.232024995302086,0.231996087775639,0.231996087775639, +0.232158701034623,0.232158701034623,0.232215908105234,0.232222903085296,0.232191381917612,0.232136778331561,0.232076018131353,0.232024995302086,0.231996087775639,0.231996087775639, +0.256855994143742,0.256855994143742,0.256906717447961,0.256903342036454,0.256858818370372,0.256790278454032,0.256716570894479,0.256655508142378,0.256621095870617,0.256621095870617, +0.305833756734941,0.305833756734941,0.305870775805783,0.305845666736196,0.305773963574363,0.305676291319036,0.305575436583593,0.305493202755117,0.30544711012802,0.30544711012802, +0.378148660032666,0.378148660032666,0.378163440844579,0.378103279211321,0.377987848921235,0.377843288810683,0.377698466288603,0.377581517468185,0.377515993934185,0.377515993934185, +0.472153870784073,0.472153870784073,0.472136375418373,0.472024872899981,0.471845497332137,0.471632389380018,0.471422582323494,0.471253064555919,0.471157180728395,0.471157180728395, +0.58532054894844,0.58532054894844,0.585260088573865,0.58507640912832,0.584807570458617,0.584499152517958,0.584197473678118,0.583950173416062,0.583806250381745,0.583806250381745, +0.7141331605721,0.7141331605721,0.714023138039925,0.713737366460097,0.71334579553991,0.712910035802976,0.712482855982459,0.712120218332515,0.711894314310455,0.711894314310455, +0.85411592408173,0.85411592408173,0.853975566986926,0.85352993778513,0.852971132019391,0.852374502337491,0.851784754953598,0.851250537502168,0.850863292211175,0.850863292211175, + +00:52:20, +0.232272400288021,0.232272400288021,0.232329606421061,0.2323366074912,0.232305097530332,0.232250507741831,0.232189761154327,0.232138749138527,0.232109847582087,0.232109847582087, +0.232272400288021,0.232272400288021,0.232329606421061,0.2323366074912,0.232305097530332,0.232250507741831,0.232189761154327,0.232138749138527,0.232109847582087,0.232109847582087, +0.256967737682587,0.256967737682587,0.257018459612581,0.257015091498738,0.256970581463629,0.256902058417155,0.256828367558618,0.256767318110599,0.256732913199086,0.256732913199086, +0.305941089161774,0.305941089161774,0.305978106635378,0.305953007758361,0.305881323411563,0.305783674398875,0.305682842703641,0.30560062728284,0.305554544870509,0.305554544870509, +0.378248306852682,0.378248306852682,0.378263087155734,0.378202941111588,0.378087538146709,0.377943011333514,0.377798221730043,0.377681299284259,0.377615790457255,0.377615790457255, +0.472241732236702,0.472241732236702,0.472224239937757,0.472112761830084,0.471933426061047,0.471720365556718,0.47151060520008,0.471341125067124,0.47124526245229,0.47124526245229, +0.585392044278971,0.585392044278971,0.585331593775271,0.58514795187259,0.584879170025977,0.584570818075828,0.584269203998092,0.584021956695394,0.583878064307881,0.583878064307881, +0.714183852726614,0.714183852726614,0.714073849488497,0.713788134093955,0.713396642144738,0.712960971271034,0.712533878776215,0.712171314920226,0.71194545642779,0.71194545642779, +0.85414226566856,0.85414226566856,0.854001934987083,0.853556390100965,0.852997691323114,0.852401176643912,0.85181154302196,0.851277428079987,0.850890256297934,0.850890256297934, + +00:52:21, +0.232386090543077,0.232386090543077,0.232443295731805,0.232450302888759,0.23241880413422,0.232364228144622,0.232303495171995,0.232252493971714,0.232223598386498,0.232223598386498, +0.232386090543077,0.232386090543077,0.232443295731805,0.232450302888759,0.23241880413422,0.232364228144622,0.232303495171995,0.232252493971714,0.232223598386498,0.232223598386498, +0.257079469919117,0.257079469919117,0.257130190470113,0.25712682965092,0.257082333245222,0.257013827068096,0.256940152910659,0.256879116767009,0.256844719215956,0.256844719215956, +0.306048406522728,0.306048406522728,0.30608542239742,0.306060333709901,0.305988668174113,0.305891042399664,0.305790233740497,0.305708036724126,0.305661964524768,0.305661964524768, +0.378347934828356,0.378347934828356,0.378362714623698,0.378302584164353,0.37818720851636,0.378042714990088,0.377897958294749,0.377781062215111,0.377715568090334,0.377715568090334, +0.472329572665258,0.472329572665258,0.472312083435273,0.472200629730745,0.472021333745795,0.47180832067075,0.47159860699533,0.47142916448175,0.471333323070958,0.471333323070958, +0.585463519292549,0.585463519292549,0.585403078660179,0.585219474287091,0.584950749240547,0.584642463252894,0.584340913909195,0.584093719542719,0.583949857788623,0.583949857788623, +0.714234528708061,0.714234528708061,0.714124544759937,0.713838885529404,0.713447472518751,0.713011890470597,0.712584885263961,0.712222395170242,0.711996582188095,0.711996582188095, +0.854168598272359,0.854168598272359,0.854028293994867,0.853582833392807,0.853024241561361,0.852427841839427,0.851838321934235,0.851304309461309,0.850917211159814,0.850917211159814, + +00:52:22, +0.232499771789196,0.232499771789196,0.232556976026877,0.232563989267384,0.232532501718676,0.232477939529319,0.232417220173729,0.232366229791008,0.232337340178225,0.232337340178225, +0.232499771789196,0.232499771789196,0.232556976026877,0.232563989267384,0.232532501718676,0.232477939529319,0.232417220173729,0.232366229791008,0.232337340178225,0.232337340178225, +0.257191190846638,0.257191190846638,0.257241910013866,0.257238556486306,0.257194073708448,0.257125584400142,0.257051926943876,0.256990904104873,0.256956513914487,0.256956513914487, +0.306155708817761,0.306155708817761,0.306192723091866,0.306167644590771,0.306095997861964,0.305998395321344,0.305897609694095,0.305815431078905,0.305769369090724,0.305769369090724, +0.378447543967065,0.378447543967065,0.378462323255844,0.378402208376984,0.378286860037557,0.378142399787773,0.377997675990089,0.37788080626811,0.377815326840793,0.377815326840793, +0.472417392083023,0.472417392083023,0.472399905924195,0.47228847661524,0.472109220399665,0.471896254735408,0.471686587722547,0.471517182813109,0.47142136259772,0.47142136259772, +0.585534974004956,0.585534974004956,0.585474543244364,0.585290976387605,0.585022308118126,0.584714088064978,0.58441260342727,0.584165461973901,0.584021630839844,0.584021630839844, +0.714285188530388,0.714285188530388,0.714175223868191,0.713889620780409,0.713498286675941,0.71306279341569,0.712635875459757,0.712273459096653,0.712047691605477,0.712047691605477, +0.854194921901285,0.854194921901285,0.854054644018439,0.853609267668849,0.853050782742362,0.85245449793231,0.851865091698737,0.851331181654489,0.850944156805197,0.850944156805197, + +00:52:23, +0.232613444015799,0.232613444015799,0.232670647295704,0.2326776666165,0.232646190273117,0.232591641885328,0.232530936148921,0.232479956585789,0.232451072946642,0.232451072946642, +0.232613444015799,0.232613444015799,0.232670647295704,0.2326776666165,0.232646190273117,0.232591641885328,0.232530936148921,0.232479956585789,0.232451072946642,0.232451072946642, +0.257302900458466,0.257302900458466,0.25735361823716,0.257350271998214,0.257305802846619,0.257237330406591,0.257163689651555,0.257102680117469,0.257068297287951,0.257068297287951, +0.306262996046836,0.306262996046836,0.306300008718678,0.306274940400929,0.306203312475066,0.306105733163861,0.306004970564376,0.30592281034711,0.305876758568307,0.305876758568307, +0.378547134276177,0.378547134276177,0.378561913059537,0.378501813756842,0.378386492717659,0.378242065733931,0.378097374823426,0.377980531450619,0.377915066715994,0.377915066715994, +0.472505190503264,0.472505190503264,0.472487707417784,0.472376302496829,0.472197086035924,0.471984167763969,0.47177454739502,0.4716051800745,0.471509381045878,0.471509381045878, +0.585606408431952,0.585606408431952,0.58554598754358,0.585362458189896,0.585093846674493,0.584785692527882,0.584484272568143,0.584237184004784,0.584093383477401,0.584093383477401, +0.714335832207524,0.714335832207524,0.714225886827188,0.713940339860914,0.713549084630285,0.713113680120324,0.712686849377649,0.712324506713532,0.712098784694026,0.712098784694026, +0.85422123656348,0.85422123656348,0.854080985065954,0.85363569293727,0.853077314874339,0.852481144930822,0.851891852323772,0.85135804466787,0.850971093242452,0.850971093242452, + +00:52:24, +0.232727107212325,0.232727107212325,0.232784309527735,0.232791334925553,0.23275986978698,0.23270533520207,0.232644643086977,0.232593674345453,0.23256479668114,0.23256479668114, +0.232727107212325,0.232727107212325,0.232784309527735,0.232791334925553,0.23275986978698,0.23270533520207,0.232644643086977,0.232593674345453,0.23256479668114,0.23256479668114, +0.257414598747931,0.257414598747931,0.257465315133328,0.257461976179975,0.257417520653056,0.257349065080756,0.257275441026998,0.257214444798088,0.257180069329634,0.257180069329634, +0.306370268209916,0.306370268209916,0.30640727927782,0.306382221140336,0.306310612013375,0.306213055927163,0.306112316351279,0.306030174528678,0.305984132957451,0.305984132957451, +0.378646705763054,0.378646705763054,0.378661484042132,0.378601400311284,0.378486106564023,0.378341712835915,0.378197054802114,0.378080237769996,0.378014787723295,0.378014787723295, +0.472592967939231,0.472592967939231,0.472575487929282,0.472464107388756,0.472284930667824,0.472072059769694,0.471862486026022,0.471693156279205,0.471597378428719,0.471597378428719, +0.585677822589277,0.585677822589277,0.585617411573563,0.585433919709706,0.585165364925409,0.584857276657387,0.584555921347618,0.584308885651191,0.584165115717128,0.584165115717128, +0.714386459753379,0.714386459753379,0.714276533650841,0.713991042784849,0.713599866395738,0.713164550598488,0.712737807031659,0.712375538034933,0.712149861467816,0.712149861467816, +0.85424754226708,0.85424754226708,0.854107317145552,0.853662109206244,0.853103837965499,0.852507782843216,0.851918603817634,0.851384898509784,0.850998020479938,0.850998020479938, + +00:52:25, +0.232840761368233,0.232840761368233,0.232897962712435,0.232904994184006,0.232873540249717,0.232819019468986,0.232758340977325,0.232707383059415,0.232678511371126,0.232678511371126, +0.232840761368233,0.232840761368233,0.232897962712435,0.232904994184006,0.232873540249717,0.232819019468986,0.232758340977325,0.232707383059415,0.232678511371126,0.232678511371126, +0.257526285708374,0.257526285708374,0.257577000695719,0.257573669024933,0.257529227121095,0.257460788415959,0.257387181063516,0.257326198140032,0.257291830032833,0.257291830032833, +0.30647752530697,0.30647752530697,0.306514534769261,0.306489486808956,0.306417896476851,0.306320363611202,0.306219647054752,0.306137523623549,0.306091492258093,0.306091492258093, +0.378746258435052,0.378746258435052,0.378761036210982,0.378700968047656,0.378585701583993,0.378441341101074,0.378296715933503,0.378179925233588,0.378114489870045,0.378114489870045, +0.472680724404159,0.472680724404159,0.472663247471919,0.472551891304252,0.472372754308599,0.47215993076583,0.471950403628809,0.471781111440489,0.471685354759517,0.471685354759517, +0.585749216492652,0.585749216492652,0.585688815350028,0.585505360962758,0.585236862886613,0.584928840469255,0.584627549781479,0.584380566928927,0.58423682757484,0.58423682757484, +0.714437071181847,0.714437071181847,0.714327164353041,0.714041729566124,0.713650631986239,0.713215404864154,0.712788748435795,0.712426553074892,0.712200921940898,0.712200921940898, +0.854273839020208,0.854273839020208,0.854133640265364,0.853688516483927,0.853130352024041,0.852534411677732,0.851945346188606,0.851411743188552,0.851024938526004,0.851024938526004, + +00:52:26, +0.232954406472997,0.232954406472997,0.233011606839285,0.233018644381338,0.232987201650801,0.232932694675534,0.232872029809409,0.232821082717109,0.232792217006028,0.232792217006028, +0.232954406472997,0.232954406472997,0.233011606839285,0.233018644381338,0.232987201650801,0.232932694675534,0.232872029809409,0.232821082717109,0.232792217006028,0.232792217006028, +0.25763796133315,0.25763796133315,0.257688674917689,0.257685350526443,0.257640922244084,0.257572500405538,0.257498909754435,0.257437940136617,0.257403579390859,0.257403579390859, +0.30658476733797,0.30658476733797,0.306621775192972,0.306596737406758,0.306525165865455,0.306427656215935,0.306326962674742,0.306244857631666,0.306198836470175,0.306198836470175, +0.378845792299519,0.378845792299519,0.378860569573429,0.3788005169733,0.378685277784911,0.378540950536746,0.378396358224932,0.378279593848739,0.378214173163588,0.378214173163588, +0.472768459911269,0.472768459911269,0.472750986058906,0.47263965425653,0.472460556971472,0.472247780765608,0.472038300216624,0.471869045571605,0.471773310051526,0.471773310051526, +0.585820590157778,0.585820590157778,0.58576019888867,0.585576781964754,0.585308340573825,0.585000383979228,0.584699157885492,0.584452227853775,0.584308519066332,0.584308519066332, +0.714487666506801,0.714487666506801,0.714377778947663,0.714092400218631,0.713701381415708,0.713266242931278,0.712839673604045,0.712477551847426,0.71225196612731,0.71225196612731, +0.854300126830977,0.854300126830977,0.854159954433512,0.853714914778471,0.853156857058151,0.852561031442599,0.851972079444959,0.851438578712486,0.851051847388987,0.851051847388987, + +00:52:27, +0.233068042516111,0.233068042516111,0.233125241897786,0.233132285507049,0.23310085397972,0.233046360811191,0.232985709572692,0.232934773307985,0.23290591357529,0.23290591357529, +0.233068042516111,0.233068042516111,0.233125241897786,0.233132285507049,0.23310085397972,0.233046360811191,0.232985709572692,0.232934773307985,0.23290591357529,0.23290591357529, +0.257749625615626,0.257749625615626,0.257800337792612,0.257797020677875,0.257752606015383,0.257684201042843,0.257610627093093,0.257549670781173,0.257515317397036,0.257515317397036, +0.30669199430289,0.30669199430289,0.306729000548927,0.306703972933713,0.306632420179154,0.306534933741319,0.306434263211203,0.306352176552978,0.30630616559364,0.30630616559364, +0.378945307363796,0.378945307363796,0.378960084136811,0.37890004709555,0.37878483517411,0.378640541150266,0.378495981683737,0.378379243622783,0.37831383761126,0.37831383761126, +0.472856174473763,0.472856174473763,0.472838703703442,0.472727396258787,0.472548338669645,0.472335609782241,0.472126175802691,0.471956958685787,0.471861244317989,0.471861244317989, +0.585891943600335,0.585891943600335,0.585831562205166,0.58564818273138,0.585379798002745,0.585071907203029,0.584770745675401,0.584523868441499,0.584380190207381,0.584380190207381, +0.714538245742099,0.714538245742099,0.714428377448565,0.714143054756244,0.713752114698047,0.713317064813794,0.71289058255038,0.712528534366534,0.712302994041068,0.712302994041068, +0.854326405707487,0.854326405707487,0.854186259658104,0.853741304098012,0.853183353076008,0.852587642146037,0.851998803594957,0.851465405089883,0.851078747077212,0.851078747077212, + +00:52:28, +0.233181669487086,0.233181669487086,0.233238867877457,0.233245917550654,0.233214497225982,0.233160017865449,0.233099380256653,0.233048454821512,0.233019601068375,0.233019601068375, +0.233181669487086,0.233181669487086,0.233238867877457,0.233245917550654,0.233214497225982,0.233160017865449,0.233099380256653,0.233048454821512,0.233019601068375,0.233019601068375, +0.257861278549181,0.257861278549181,0.25791198931387,0.257908679472609,0.257864278428366,0.257795890321234,0.25772233307284,0.257661390067039,0.2576270440447,0.2576270440447, +0.306799206201711,0.306799206201711,0.306836210837107,0.306811193389798,0.306739659417918,0.306642196187319,0.30654154866409,0.306459480387434,0.306413479628436,0.306413479628436, +0.379044803635217,0.379044803635217,0.379059579908455,0.378999558421733,0.378884373758915,0.378740112948959,0.378595586317244,0.378478874563049,0.378413483220389,0.378413483220389, +0.47294386810483,0.47294386810483,0.472926400418707,0.472815117324206,0.472636099416309,0.47242341782893,0.472214030400221,0.472044850796255,0.47194915757213,0.47194915757213, +0.585963276835984,0.585963276835984,0.58590290531517,0.585719563278297,0.585451235189054,0.585143410156359,0.584842313166931,0.584595488707843,0.58445184101374,0.58445184101374, +0.714588808901579,0.714588808901579,0.714478959869584,0.714193693192818,0.713802831847141,0.71336787052562,0.71294147528875,0.712579500646199,0.712354005696172,0.712354005696172, +0.854352675657831,0.854352675657831,0.854212555947239,0.853767684450679,0.853209840085775,0.852614243796253,0.852025518646848,0.851492222329034,0.851105637598995,0.851105637598995, + +00:52:29, +0.233295287375451,0.233295287375451,0.233352484767833,0.233359540501687,0.233328131379111,0.233273665827822,0.23321304185079,0.233162127247177,0.233133279474762,0.233133279474762, +0.233295287375451,0.233295287375451,0.233352484767833,0.233359540501687,0.233328131379111,0.233273665827822,0.23321304185079,0.233162127247177,0.233133279474762,0.233133279474762, +0.257972920127208,0.257972920127208,0.258023629474861,0.25802032690404,0.257975939476419,0.257907568234088,0.257834027687038,0.25777309798757,0.257738759327198,0.257738759327198, +0.306906403034413,0.306906403034413,0.306943406057491,0.306918398774989,0.306846883581718,0.3067494435539,0.306648819033363,0.306566769134988,0.306520778574515,0.306520778574515, +0.379144281121109,0.379144281121109,0.379159056895686,0.379099050959168,0.378983893546645,0.378839665940146,0.378695172132773,0.378578486676858,0.378513109998299,0.378513109998299, +0.473031540817643,0.473031540817643,0.473014076217867,0.472902817465954,0.472723839224637,0.472511204918857,0.472301864022409,0.472132721916214,0.472037049827159,0.472037049827159, +0.586034589880368,0.586034589880368,0.58597422823432,0.58579092362115,0.585522652148413,0.585214892854902,0.584913860375788,0.584667088668533,0.584523471501147,0.584523471501147, +0.714639355999061,0.714639355999061,0.714529526224543,0.714244315542192,0.713853532876856,0.713418660080657,0.712992351833091,0.712630450700382,0.712405001106602,0.712405001106602, +0.85437893669009,0.85437893669009,0.854238843309006,0.853794055844587,0.853236318095608,0.852640836401446,0.852052224608873,0.851519030438214,0.85113251896264,0.85113251896264, + +00:52:30, +0.233408896170751,0.233408896170751,0.233466092558469,0.233473154349701,0.233441756428651,0.233387304687838,0.233326694344619,0.233275790574484,0.23324694878395,0.23324694878395, +0.233408896170751,0.233408896170751,0.233466092558469,0.233473154349701,0.233441756428651,0.233387304687838,0.233326694344619,0.233275790574484,0.23324694878395,0.23324694878395, +0.258084550343111,0.258084550343111,0.258135258268993,0.258131962965574,0.258087589152938,0.25801923477479,0.257945710929064,0.257884794536132,0.257850463237892,0.257850463237892, +0.307013584800982,0.307013584800982,0.307050586210066,0.30702558908927,0.306954092670532,0.306856675841031,0.306756074318984,0.3066740427956,0.306628062431832,0.306628062431832, +0.379243739828792,0.379243739828792,0.379258515105819,0.37919852471517,0.379083394544614,0.378939200131139,0.37879473913764,0.378678079971526,0.378612717952303,0.378612717952303, +0.473119192625359,0.473119192625359,0.473101731114073,0.472990496697182,0.472811558107787,0.472598971065191,0.472389676682435,0.47222057205885,0.472124921096269,0.472124921096269, +0.586105882749108,0.586105882749108,0.586045530978231,0.585862263775563,0.585594048896462,0.58528635531432,0.584985387317657,0.584738668339272,0.584595081685316,0.584595081685316, +0.714689887048348,0.714689887048348,0.714580076527243,0.714294921818186,0.713904217801039,0.713469433492787,0.713043212197318,0.712681384543029,0.712455980286321,0.712455980286321, +0.854405188812332,0.854405188812332,0.854265121751482,0.853820418287844,0.853262787113652,0.8526674199698,0.85207892148926,0.851545829425692,0.85115939117644,0.85115939117644, + +00:52:31, +0.233522495862552,0.233522495862552,0.233579691238935,0.233586759084264,0.233555372364161,0.233500934435045,0.233440337727674,0.233389444792956,0.233360608985456,0.233360608985456, +0.233522495862552,0.233522495862552,0.233579691238935,0.233586759084264,0.233555372364161,0.233500934435045,0.233440337727674,0.233389444792956,0.233360608985456,0.233360608985456, +0.258196169190308,0.258196169190308,0.258246875689688,0.258243587650629,0.258199227451336,0.25813088993674,0.258057382792307,0.257996479706104,0.257962155770156,0.257962155770156, +0.307120751501408,0.307120751501408,0.307157751294821,0.307132764332625,0.30706128668434,0.306963893048685,0.30686331452092,0.306781301369229,0.306735331200344,0.306735331200344, +0.379343179765581,0.379343179765581,0.379357954546162,0.379297979697043,0.379182876760127,0.379038715529243,0.378894287339149,0.378777654454359,0.378712307089712,0.378712307089712, +0.473206823541119,0.473206823541119,0.473189365120459,0.473078155031026,0.472899256078902,0.472686716281085,0.472477468393461,0.472308401237339,0.47221277139264,0.47221277139264, +0.586177155457805,0.586177155457805,0.586116813562501,0.58593358375714,0.585665425448823,0.585357797550257,0.585056894008205,0.584810227735746,0.584666671581944,0.584666671581944, +0.714740402063225,0.714740402063225,0.714630610791469,0.714345512034601,0.713954886633521,0.713520190775872,0.713094056395328,0.712732302188067,0.712506943249274,0.712506943249274, +0.854431432032617,0.854431432032617,0.854291391282734,0.853846771788544,0.853289247148039,0.852693994509492,0.852105609296227,0.851572619299721,0.851186254248677,0.851186254248677, + +00:52:32, +0.233636086440435,0.233636086440435,0.233693280798821,0.233700354694964,0.233668979175219,0.233614555059008,0.233553971989506,0.233503089892132,0.233474260068812,0.233474260068812, +0.233636086440435,0.233636086440435,0.233693280798821,0.233700354694964,0.233668979175219,0.233614555059008,0.233553971989506,0.233503089892132,0.233474260068812,0.233474260068812, +0.258307776662227,0.258307776662227,0.25835848173038,0.258355200952637,0.258310854365035,0.25824253371335,0.258169043270165,0.258108153490878,0.258073836917376,0.258073836917376, +0.307227903135681,0.307227903135681,0.307264901311747,0.307239924505044,0.307168465623124,0.30707109517684,0.306970539639142,0.306888544855841,0.306842584880015,0.306842584880015, +0.379442600938781,0.379442600938781,0.379457375224017,0.379397415912089,0.379282340200481,0.379138212141758,0.378993816744602,0.378877210132658,0.378811877417826,0.378811877417826, +0.47329443357805,0.47329443357805,0.473276978250144,0.473165792480606,0.472986933151107,0.472774440579676,0.472565239168635,0.472396209464836,0.472300600729434,0.472300600729434, +0.586248408022042,0.586248408022042,0.586188076002706,0.586004883581466,0.585736781821097,0.585429219578335,0.585128380463076,0.584881766873619,0.584738241206708,0.584738241206708, +0.714790901057458,0.714790901057458,0.714681129030989,0.714396086205222,0.714005539388114,0.713570931943759,0.713144884441003,0.712783203649404,0.712557890009388,0.712557890009388, +0.854457666358994,0.854457666358994,0.854317651910819,0.853873116354772,0.853315698206893,0.852720560028686,0.852132288037981,0.851599400068548,0.851213108187624,0.851213108187624, + +00:52:33, +0.233749667893999,0.233749667893999,0.233806861227734,0.233813941171406,0.233782576851422,0.23372816654931,0.233667597119684,0.233616725861571,0.233587902023571,0.233587902023571, +0.233749667893999,0.233749667893999,0.233806861227734,0.233813941171406,0.233782576851422,0.23372816654931,0.233667597119684,0.233616725861571,0.233587902023571,0.233587902023571, +0.258419372752312,0.258419372752312,0.258470076384515,0.258466802865042,0.258422469887471,0.258354166098046,0.258280692356053,0.258219815883856,0.258185506672951,0.258185506672951, +0.307335039703799,0.307335039703799,0.307372036260841,0.307347069606518,0.307275629486871,0.307178282225474,0.307077749673621,0.306995773255403,0.306949823470809,0.306949823470809, +0.379542003355691,0.379542003355691,0.37955677714668,0.379496833367598,0.379381784872969,0.379237689975974,0.37909332736129,0.378976747013719,0.37891142894394,0.37891142894394, +0.473382022749262,0.473382022749262,0.473364570516233,0.473253409059027,0.473074589337516,0.472862143974085,0.472652989021091,0.472483996754484,0.472388409119798,0.472388409119798, +0.586319640457383,0.586319640457383,0.586259318314404,0.586076163264106,0.585808118028867,0.585500621414159,0.585199846697898,0.584953285768538,0.584809790575263,0.584809790575263, +0.714841384044797,0.714841384044797,0.714731631259552,0.714446644343815,0.714056176078612,0.713621657010276,0.713195696348202,0.712834088940931,0.71260882058057,0.71260882058057, +0.8544838917995,0.8544838917995,0.854343903643781,0.853899451994602,0.853342140298325,0.852747116535537,0.852158957722717,0.851626171740406,0.851239953001539,0.851239953001539, + +00:52:34, +0.233863240212863,0.233863240212863,0.233920432515299,0.233927518503212,0.233896165382383,0.23384176889555,0.233781213107795,0.233730352690848,0.233701534839302,0.233701534839302, +0.233863240212863,0.233863240212863,0.233920432515299,0.233927518503212,0.233896165382383,0.23384176889555,0.233781213107795,0.233730352690848,0.233701534839302,0.233701534839302, +0.258530957454015,0.258530957454015,0.258581659645552,0.258578393381299,0.258534074012092,0.258465787084264,0.258392330043397,0.258331466878456,0.258297165030293,0.258297165030293, +0.30744216120576,0.30744216120576,0.3074791561421,0.307454199637044,0.307382778275571,0.307285454194572,0.307184944624336,0.307102986567888,0.307057046972695,0.307057046972695, +0.379641387023605,0.379641387023605,0.379656160321438,0.379596232070857,0.379481210784876,0.379337149039179,0.379192819196499,0.379076265104827,0.379010961675343,0.379010961675343, +0.47346959106785,0.47346959106785,0.473452141931814,0.473341004779378,0.473162224651224,0.472949826477418,0.472740717963945,0.47257176311941,0.472476196576866,0.472476196576866, +0.586390852779369,0.586390852779369,0.586330540513132,0.586147422820605,0.585879434087694,0.585572003073313,0.585271292728277,0.585024784436127,0.584881319703247,0.584881319703247, +0.714891851038972,0.714891851038972,0.714782117490888,0.714497186464127,0.714106796718792,0.713672365989232,0.71324649213077,0.712884958076521,0.712659734976712,0.712659734976712, +0.854510108362164,0.854510108362164,0.854370146489655,0.853925778716098,0.853368573430436,0.852773664038188,0.852185618358622,0.851652934323519,0.851266788698673,0.851266788698673, + +00:52:35, +0.233976803386661,0.233976803386661,0.234033994651157,0.234041086680023,0.234009744757733,0.233955362087349,0.233894819943444,0.233843970369556,0.233815158505592,0.233815158505592, +0.233976803386661,0.233976803386661,0.234033994651157,0.234041086680023,0.234009744757733,0.233955362087349,0.233894819943444,0.233843970369556,0.233815158505592,0.233815158505592, +0.258642530760805,0.258642530760805,0.258693231506962,0.258689972494877,0.258645666732359,0.258577396665453,0.258503956325634,0.258443106468108,0.258408811982824,0.258408811982824, +0.307549267641566,0.307549267641566,0.307586260955528,0.30756131459662,0.307489911989218,0.307392611084119,0.307292124491266,0.307210184793271,0.307164255385646,0.307164255385646, +0.379740751949808,0.379740751949808,0.379755524755572,0.379695612029144,0.379580617943478,0.379436589338648,0.37929229225751,0.379175764413263,0.379110475619314,0.379110475619314, +0.473557138546893,0.473557138546893,0.473539692509959,0.473428579654733,0.473249839105311,0.473037488102766,0.472828426010299,0.472659508572725,0.472563963113752,0.472563963113752, +0.586462045003524,0.586462045003524,0.58640174261441,0.58621866226649,0.585950730013121,0.585643364571361,0.585342718569801,0.585096262891993,0.584952828606276,0.584952828606276, +0.714942302053696,0.714942302053696,0.714832587738711,0.71454771257989,0.714157401322412,0.71372305889442,0.713297271802533,0.712935811070028,0.712710633211685,0.712710633211685, +0.854536316055001,0.854536316055001,0.854396380456467,0.853952096527311,0.853394997611317,0.852800202544772,0.85221226995387,0.851679687826098,0.851293615287264,0.851293615287264, + +00:52:36, +0.234090357405045,0.234090357405045,0.234147547624968,0.234154645691496,0.234123314967121,0.23406894611434,0.234008417616252,0.233957578887307,0.233928773012045,0.233928773012045, +0.234090357405045,0.234090357405045,0.234147547624968,0.234154645691496,0.234123314967121,0.23406894611434,0.234008417616252,0.233957578887307,0.233928773012045,0.233928773012045, +0.25875409266616,0.25875409266616,0.25880479196223,0.258801540199258,0.258757248041744,0.258688994835076,0.258615571196215,0.258554734646251,0.258520447523982,0.258520447523982, +0.307656359011224,0.307656359011224,0.30769335070113,0.307668414485249,0.307597030627809,0.307499752894108,0.307399289274396,0.307317367931529,0.307271448709638,0.307271448709638, +0.379840098141578,0.379840098141578,0.379854870456357,0.379794973249731,0.379680006356048,0.379536010881655,0.379391746551593,0.3792752449463,0.379209970783129,0.379209970783129, +0.473644665199457,0.473644665199457,0.473627222263726,0.473516133698151,0.473337432712843,0.473125128863205,0.47291611317324,0.472747233127524,0.472651708743559,0.472651708743559, +0.586533217145353,0.586533217145353,0.586472924633736,0.586289881617267,0.586022005820672,0.585714705923849,0.585414124238036,0.585167721151722,0.58502431729995,0.58502431729995, +0.714992737102664,0.714992737102664,0.714883042016717,0.714598222704816,0.714207989903212,0.713773735739613,0.713348035377299,0.712986647935289,0.712761515299345,0.712761515299345, +0.854562514886018,0.854562514886018,0.85442260555223,0.853978405436284,0.853421412849049,0.852826732063409,0.852238912516625,0.851706432256345,0.851320432775541,0.851320432775541, + +00:52:37, +0.234203902257687,0.234203902257687,0.23426109142641,0.234268195527306,0.234236876000214,0.234182520966178,0.23412200611586,0.234071178233729,0.234042378348285,0.234042378348285, +0.234203902257687,0.234203902257687,0.23426109142641,0.234268195527306,0.234236876000214,0.234182520966178,0.23412200611586,0.234071178233729,0.234042378348285,0.234042378348285, +0.258865643163572,0.258865643163572,0.25891634100485,0.258913096487934,0.258868817933733,0.258800581586607,0.258727174648604,0.25866635140634,0.258632071647215,0.258632071647215, +0.307763435314743,0.307763435314743,0.307800425378915,0.307775499302937,0.307704134191344,0.30760687962453,0.307506438973711,0.307424535982646,0.307378626944649,0.307378626944649, +0.379939425606188,0.379939425606188,0.37995419743106,0.379894315739882,0.379779376029848,0.379635413675462,0.379491182086016,0.379374706711205,0.379309447174054,0.379309447174054, +0.473732171038589,0.473732171038589,0.473714731206158,0.473603666922674,0.473425005486869,0.473212748771794,0.473003779465837,0.472834936796888,0.472739433479372,0.472739433479372, +0.586604369220339,0.586604369220339,0.586544086586589,0.586361080888422,0.58609326152585,0.585786027146301,0.585485509748531,0.585239159230882,0.585095785799845,0.585095785799845, +0.715043156199555,0.715043156199555,0.714933480338584,0.7146487168526,0.714258562474916,0.713824396538567,0.713398782868857,0.713037468686123,0.712812381253527,0.712812381253527, +0.854588704863211,0.854588704863211,0.854448821784947,0.854004705451049,0.853447819151699,0.852853252602212,0.85226554605504,0.85173316762245,0.851347241171719,0.851347241171719, + +00:52:38, +0.234317437934272,0.234317437934272,0.234374626045177,0.234381736177146,0.234350427846695,0.234296086632534,0.234235585431924,0.234184768398469,0.234155974503951,0.234155974503951, +0.234317437934272,0.234317437934272,0.234374626045177,0.234381736177146,0.234350427846695,0.234296086632534,0.234235585431924,0.234184768398469,0.234155974503951,0.234155974503951, +0.258977182246545,0.258977182246545,0.259027878628332,0.259024641354411,0.258980376401823,0.258912156913533,0.258838766676275,0.258777956741843,0.258743684345985,0.258743684345985, +0.307870496552135,0.307870496552135,0.307907484988895,0.307882569049693,0.307811222679827,0.307713991275383,0.307613573589204,0.307531688946607,0.307485790090663,0.307485790090663, +0.380038734350902,0.380038734350902,0.380053505686941,0.379993639506857,0.379878726972137,0.379734797727328,0.379590598868035,0.379474149715238,0.37940890479935,0.37940890479935, +0.473819656077323,0.473819656077323,0.47380221935028,0.47369117934133,0.473512557440424,0.473300347841578,0.473091424901148,0.472922619593881,0.472827137334262,0.472827137334262, +0.586675501243948,0.586675501243948,0.586615228488429,0.586432260095424,0.586164497144139,0.585857328254224,0.585556875116815,0.585310577145019,0.58516723412152,0.58516723412152, +0.715093559358028,0.715093559358028,0.714983902717971,0.714699195036919,0.714309119051227,0.71387504130502,0.713449514290979,0.71308827333633,0.71286323108805,0.71286323108805, +0.854614885994564,0.854614885994564,0.85447502916261,0.854030996579626,0.853474216527328,0.85287976416928,0.852292170577256,0.851759893932594,0.851374040484006,0.851374040484006, + +00:52:39, +0.234430964424508,0.234430964424508,0.234488151470982,0.234495267630727,0.234463970496265,0.234409643103096,0.234349155554121,0.23429834937119,0.234269561468701,0.234269561468701, +0.234430964424508,0.234430964424508,0.234488151470982,0.234495267630727,0.234463970496265,0.234409643103096,0.234349155554121,0.23429834937119,0.234269561468701,0.234269561468701, +0.259088709908596,0.259088709908596,0.259139404826196,0.259136174792208,0.259091923439526,0.259023720809353,0.258950347272718,0.258889550646236,0.258855285613765,0.258855285613765, +0.307977542723416,0.307977542723416,0.308014529531088,0.307989623725529,0.307918296093264,0.307821087846668,0.307720693120868,0.307638826823401,0.307592938147665,0.307592938147665, +0.380138024382979,0.380138024382979,0.380152795231254,0.380092944557906,0.379978059190165,0.379834163044504,0.379689996904903,0.379573573965652,0.379508343666272,0.379508343666272, +0.473907120328677,0.473907120328677,0.473889686709104,0.473778670967132,0.473600088586527,0.473387926085586,0.473179049492211,0.473010281531552,0.472914820321282,0.472914820321282, +0.586746613231625,0.586746613231625,0.586686350354696,0.586503419253719,0.586235712691004,0.585928609263103,0.585628220358395,0.585381974909662,0.585238662280514,0.585238662280514, +0.715143946591724,0.715143946591724,0.715034309168521,0.714749657271432,0.714359659645834,0.713925670052694,0.71350022965742,0.713139061899694,0.712914064816715,0.712914064816715, +0.854641058288052,0.854641058288052,0.854501227693203,0.854057278830025,0.853500604983982,0.852906266772704,0.852318786091406,0.851786611194945,0.851400830720597,0.851400830720597, + +00:52:40, +0.234544481718115,0.234544481718115,0.234601667693555,0.234608789877777,0.234577503938645,0.234523190367571,0.234462716472143,0.234411921141574,0.234383139232211,0.234383139232211, +0.234544481718115,0.234544481718115,0.234601667693555,0.234608789877777,0.234577503938645,0.234523190367571,0.234462716472143,0.234411921141574,0.234383139232211,0.234383139232211, +0.259200226143253,0.259200226143253,0.259250919591975,0.259247696794854,0.259203459040362,0.259135273267578,0.259061916431431,0.259001133113012,0.258966875444041,0.258966875444041, +0.308084573828606,0.308084573828606,0.308121559005511,0.308096663330463,0.308025354431668,0.307928169338389,0.3078277975687,0.30774594961302,0.307700071115646,0.307700071115646, +0.38023729570967,0.38023729570967,0.380252066071245,0.380192230900272,0.380077372691176,0.379933509634234,0.379789376203865,0.379672979469693,0.379607763782065,0.379607763782065, +0.473994563805653,0.473994563805653,0.473977133295627,0.473866141813076,0.473687598938182,0.473475483516832,0.473266653252052,0.473097922622937,0.473002482453474,0.473002482453474, +0.586817705198796,0.586817705198796,0.586757452200812,0.586574558378737,0.58630690818189,0.585999870188406,0.585699545488762,0.585453352540318,0.585310070292347,0.585310070292347, +0.715194317914269,0.715194317914269,0.715084699703858,0.71480010356978,0.714410184272406,0.713976282795291,0.713550928981915,0.71318983438998,0.712964882453305,0.712964882453305, +0.854667221751639,0.854667221751639,0.854527417384696,0.854083552210247,0.8535269845297,0.852932760420563,0.852345392605611,0.851813319417662,0.851427611889675,0.851427611889675, + +00:52:41, +0.234657989804836,0.234657989804836,0.234715174702643,0.234722302908041,0.23469102816357,0.234636728415682,0.2345762681757,0.234525483699321,0.234496707784173,0.234496707784173, +0.234657989804836,0.234657989804836,0.234715174702643,0.234722302908041,0.23469102816357,0.234636728415682,0.2345762681757,0.234525483699321,0.234496707784173,0.234496707784173, +0.259311730944057,0.259311730944057,0.259362422919214,0.259359207355893,0.259314983197868,0.259246814281734,0.259173474145929,0.259112704135675,0.259078453830313,0.259078453830313, +0.308191589867728,0.308191589867728,0.308228573412187,0.308203687864512,0.30813239769505,0.308035235750552,0.307934886932702,0.30785305731546,0.307807188994599,0.307807188994599, +0.380336548338219,0.380336548338219,0.380351318214155,0.380291498541195,0.380176667482405,0.380032837503754,0.379888736772159,0.3797723662346,0.37970716515397,0.37970716515397, +0.47408198652124,0.47408198652124,0.474064559122827,0.473953591892144,0.473775088508377,0.473563020148313,0.47335423619368,0.473185542881054,0.473090123743861,0.473090123743861, +0.586888777160868,0.586888777160868,0.586828534042176,0.586645677485886,0.586378083632222,0.586071111045581,0.585770850523384,0.585524710052477,0.585381458172517,0.585381458172517, +0.715244673339268,0.715244673339268,0.71513507433759,0.714850533945587,0.714460692944593,0.714026879546495,0.713601612278185,0.713240590820934,0.713015684011583,0.713015684011583, +0.854693376393279,0.854693376393279,0.85455359824505,0.85410981672828,0.853553355172508,0.852959245120924,0.85237199012798,0.851840018608892,0.851454383999416,0.851454383999416, + +00:52:42, +0.234771488674426,0.234771488674426,0.234828672488012,0.234835806711283,0.234804543160794,0.234750257237171,0.234689810654519,0.234639037034147,0.234610267114298,0.234610267114298, +0.234771488674426,0.234771488674426,0.234828672488012,0.234835806711283,0.234804543160794,0.234750257237171,0.234689810654519,0.234639037034147,0.234610267114298,0.234610267114298, +0.259423224304561,0.259423224304561,0.259473914801472,0.259470706468879,0.25942649590559,0.259358343845355,0.259285020409735,0.25922426370774,0.259190020766091,0.259190020766091, +0.308298590840807,0.308298590840807,0.308335572751143,0.3083106973277,0.30823942588343,0.308142287083169,0.308041961212877,0.307960149930721,0.307914291784519,0.307914291784519, +0.380435782275864,0.380435782275864,0.380450551667216,0.380390747487904,0.380275943571084,0.380132146660295,0.379988078617017,0.379871734267605,0.37980654778922,0.37980654778922, +0.474169388488408,0.474169388488408,0.474151964203672,0.474041021217302,0.473862557310085,0.473650535993014,0.473441798330089,0.473273142318906,0.473177744205452,0.473177744205452, +0.586959829133228,0.586959829133228,0.586899595894173,0.586716776590557,0.586449239057408,0.586142331850055,0.585842135477714,0.585596047461607,0.585452825936506,0.585452825936506, +0.715295012880312,0.715295012880312,0.715185433083305,0.71490094841246,0.714511185676031,0.714077460319974,0.713652279559928,0.713291331206286,0.713066469505299,0.713066469505299, +0.854719522220915,0.854719522220915,0.854579770282217,0.854136072392104,0.853579716920422,0.852985720881847,0.852398578666613,0.851866708776773,0.851481147057982,0.851481147057982, + +00:52:43, +0.234884978316663,0.234884978316663,0.234942161039442,0.234949301277281,0.23491804892009,0.234863776821796,0.234803343898347,0.234752581135787,0.234723817212315,0.234723817212315, +0.234884978316663,0.234884978316663,0.234942161039442,0.234949301277281,0.23491804892009,0.234863776821796,0.234803343898347,0.234752581135787,0.234723817212315,0.234723817212315, +0.259534706218331,0.259534706218331,0.259585395232318,0.25958219412738,0.259537997157087,0.25946986195199,0.259396555216388,0.259335811822735,0.259301576244898,0.259301576244898, +0.308405576747873,0.308405576747873,0.308442557022407,0.308417691720053,0.308346438996826,0.308249323336254,0.308149020409234,0.308067227458805,0.308021379485408,0.308021379485408, +0.380534997529835,0.380534997529835,0.380549766437655,0.380489977747623,0.380375200964434,0.38023143711108,0.380087401745663,0.379971083575935,0.379905911695042,0.379905911695042, +0.474256769720115,0.474256769720115,0.474239348551111,0.474128429801502,0.473950005356263,0.473738031063903,0.473529339674259,0.473360720949481,0.47326534385124,0.47326534385124, +0.587030861131243,0.587030861131243,0.586970637772163,0.586787855708118,0.586520374472834,0.586213532617237,0.585913400367181,0.585667364783159,0.585524173599775,0.585524173599775, +0.71534533655097,0.71534533655097,0.715235775954574,0.714951346983987,0.714561662480335,0.714128025129377,0.713702930840828,0.713342055559748,0.713117238948179,0.713117238948179, +0.854745659242479,0.854745659242479,0.854605933504136,0.854162319209686,0.853606069781448,0.853012187711378,0.852425158229599,0.85189338992943,0.851507901073525,0.851507901073525, + +00:52:44, +0.234998458721337,0.234998458721337,0.235055640346735,0.235062786595835,0.235031545431246,0.234977287159333,0.234916867896946,0.234866115993992,0.234837358067969,0.234837358067969, +0.234998458721337,0.234998458721337,0.235055640346735,0.235062786595835,0.235031545431246,0.234977287159333,0.234916867896946,0.234866115993992,0.234837358067969,0.234837358067969, +0.259646176678944,0.259646176678944,0.259696864205334,0.259693670324975,0.259649486945932,0.259581368595201,0.259508078559437,0.259447348474202,0.259413120260271,0.259413120260271, +0.308512547588959,0.308512547588959,0.308549526226013,0.3085246710416,0.308453437035264,0.308356344509824,0.308256064521783,0.308174289899718,0.308128452097268,0.308128452097268, +0.380634194107356,0.380634194107356,0.38064896253269,0.38058918932757,0.380474439669673,0.380330708863326,0.380186706165314,0.380070414166808,0.380005256878655,0.380005256878655, +0.474344130229301,0.474344130229301,0.474326712178079,0.474215817657679,0.474037432659856,0.473825505373931,0.473616860239151,0.473448278785753,0.473352922694205,0.473352922694205, +0.587101873170262,0.587101873170262,0.587041659691491,0.586858914853922,0.586591489893867,0.586284713362515,0.585984645207197,0.585738662032563,0.585595501177764,0.585595501177764, +0.715395644364797,0.715395644364797,0.715286102964953,0.715001729673739,0.714612123371104,0.714178573988336,0.71375356613455,0.713392763895014,0.713167992353936,0.713167992353936, +0.854771787465893,0.854771787465893,0.854632087918737,0.854188557188984,0.853632413763582,0.853038645617553,0.852451728825016,0.851920062074978,0.851534646054187,0.851534646054187, + +00:52:45, +0.235111929878259,0.235111929878259,0.235169110399707,0.23517626265676,0.235145032684068,0.235090788239577,0.235030382640095,0.234979641598531,0.234950889671022,0.234950889671022, +0.235111929878259,0.235111929878259,0.235169110399707,0.23517626265676,0.235145032684068,0.235090788239577,0.235030382640095,0.234979641598531,0.234950889671022,0.234950889671022, +0.259757635679992,0.259757635679992,0.259808321714115,0.259805135055257,0.259760965265708,0.25969286376856,0.259619590432445,0.259558873655694,0.259524652805757,0.259524652805757, +0.308619503364101,0.308619503364101,0.308656480361995,0.308631635292375,0.308560419998771,0.3084633506039,0.30836309355054,0.30828133725347,0.308235509620107,0.308235509620107, +0.380733372015645,0.380733372015645,0.380748139959536,0.380688382234954,0.38057365969401,0.380429961924244,0.380285991883182,0.380169726047437,0.380104583347273,0.380104583347273, +0.474431470028894,0.474431470028894,0.474414055097495,0.474303184798754,0.474124839233789,0.473912958936036,0.473704360037716,0.473535815840679,0.473440480747309,0.473440480747309, +0.587172865265614,0.587172865265614,0.587112661667481,0.5869299540433,0.586662585335856,0.586355874101261,0.586055870013155,0.585809939225229,0.585666808685897,0.585666808685897, +0.715445936335328,0.715445936335328,0.715336414127978,0.715052096495268,0.714662568361918,0.714229106910464,0.713804185454742,0.713443456225759,0.713218729736264,0.713218729736264, +0.854797906899069,0.854797906899069,0.854658233533939,0.854214786337945,0.853658748874807,0.8530650946084,0.852478290460932,0.851946725221523,0.851561382008099,0.851561382008099, + +00:52:46, +0.235225391777257,0.235225391777257,0.235282571188192,0.235289729449887,0.23525851066838,0.235204280052338,0.235143888117594,0.235093157939191,0.235064412011257,0.235064412011257, +0.235225391777257,0.235225391777257,0.235282571188192,0.235289729449887,0.23525851066838,0.235204280052338,0.235143888117594,0.235093157939191,0.235064412011257,0.235064412011257, +0.259869083215075,0.259869083215075,0.259919767752267,0.259916588311828,0.259872432110012,0.259804347465653,0.259731090828985,0.259670387360775,0.259636173874916,0.259636173874916, +0.308726444073338,0.308726444073338,0.308763419430395,0.308738584472412,0.308667387887378,0.308570341618506,0.308470107495521,0.308388369520074,0.308342552053934,0.308342552053934, +0.38083253126191,0.38083253126191,0.380847298725396,0.380787556476978,0.380672861044647,0.380529196301035,0.380385258906471,0.380269019225026,0.380203891108101,0.380203891108101, +0.474518789131804,0.474518789131804,0.474501377322263,0.474390531237633,0.474212225090974,0.474000391763141,0.473791839082885,0.473623332127201,0.4735280180235,0.4735280180235, +0.587243837432609,0.587243837432609,0.587183643715437,0.587000973291564,0.58673366081413,0.586427014848825,0.586127074800427,0.585881196376551,0.585738096139575,0.585738096139575, +0.715496212476083,0.715496212476083,0.715386709457166,0.715102447462111,0.714712997466342,0.714279623909359,0.713854788815034,0.713494132565642,0.713269451108838,0.713269451108838, +0.854824017549909,0.854824017549909,0.854684370357651,0.854241006664506,0.853685075123098,0.853091534691932,0.852504843145403,0.851973379377158,0.85158810894338,0.85158810894338, + +00:52:47, +0.235338844408174,0.235338844408174,0.235396022702043,0.235403186965068,0.235371979374024,0.235317762587445,0.235257384319256,0.235206665005777,0.235177925078469,0.235177925078469, +0.235338844408174,0.235338844408174,0.235396022702043,0.235403186965068,0.235371979374024,0.235317762587445,0.235257384319256,0.235206665005777,0.235177925078469,0.235177925078469, +0.259980519277809,0.259980519277809,0.260031202313409,0.260028030088306,0.259983887472451,0.259915819680078,0.259842579742644,0.259781889583024,0.259747683461321,0.259747683461321, +0.308833369716713,0.308833369716713,0.308870343431253,0.308845518581753,0.308774340701118,0.30867731755367,0.308577106356749,0.308495386699546,0.308449579398763,0.308449579398763, +0.380931671853357,0.380931671853357,0.380946438837471,0.38088671206084,0.380772043728781,0.380628412000897,0.380484507242378,0.380368293706776,0.38030318016834,0.38030318016834, +0.474606087550926,0.474606087550926,0.474588678865274,0.474477856987204,0.47429959024431,0.474087803868153,0.473879297387578,0.473710827658247,0.473615534535711,0.473615534535711, +0.587314789686537,0.587314789686537,0.587254605850645,0.587071972614007,0.586804716343999,0.586498135620537,0.586198259584367,0.5859524335019,0.585809363554183,0.585809363554183, +0.715546472800562,0.715546472800562,0.71543698896602,0.715152782587786,0.714763410697921,0.714330124998599,0.713905376229037,0.713544792928304,0.713320156485317,0.713320156485317, +0.854850119426303,0.854850119426303,0.854710498397772,0.854267218176594,0.853711392516418,0.853117965876156,0.852531386886476,0.852000024549967,0.851614826868141,0.851614826868141, + +00:52:48, +0.235452287760874,0.235452287760874,0.235509464931129,0.235516635192168,0.235485438790857,0.235431235834743,0.235370871234915,0.235320162788109,0.235291428862476,0.235291428862476, +0.235452287760874,0.235452287760874,0.235509464931129,0.235516635192168,0.235485438790857,0.235431235834743,0.235370871234915,0.235320162788109,0.235291428862476,0.235291428862476, +0.26009194386182,0.26009194386182,0.260142625391172,0.260139460378319,0.260095331346647,0.260027280405445,0.259954057167022,0.259893380316031,0.259859181558558,0.259859181558558, +0.308940280294271,0.308940280294271,0.308977252364616,0.308952437620439,0.308881278440029,0.308784278409424,0.308684090134248,0.308602388791905,0.308556591654612,0.308556591654612, +0.38103079379718,0.38103079379718,0.381045560302952,0.38098584899373,0.3808712077536,0.38072760903102,0.380583736898094,0.380467549499876,0.380402450535181,0.380402450535181, +0.474693365299142,0.474693365299142,0.4746759597394,0.474565162060344,0.474386934706677,0.474175195263962,0.473966734964696,0.473798302446729,0.47370303029686,0.47370303029686, +0.587385722042671,0.587385722042671,0.587325548088371,0.587142952025903,0.586875751940753,0.58656923643171,0.58626942438031,0.586023650616629,0.585880610945084,0.585880610945084, +0.715596717322249,0.715596717322249,0.715487252668023,0.715203101885793,0.714813808070182,0.714380610191745,0.713955947710346,0.713595437327367,0.71337084587934,0.71337084587934, +0.854876212536131,0.854876212536131,0.854736617662189,0.854293420882123,0.853737701062721,0.853144388169066,0.852557921692187,0.852026660748023,0.851641535790479,0.851641535790479, + +00:52:49, +0.235565721825235,0.235565721825235,0.235622897865336,0.235630074121073,0.235598888908756,0.235544699784095,0.235484348854419,0.235433651276027,0.23540492335311,0.23540492335311, +0.235565721825235,0.235565721825235,0.235622897865336,0.235630074121073,0.235598888908756,0.235544699784095,0.235484348854419,0.235433651276027,0.23540492335311,0.23540492335311, +0.260203356960748,0.260203356960748,0.2602540369792,0.260250879175508,0.260206763726232,0.260138729635375,0.260065523095729,0.260004859553397,0.259970668160223,0.259970668160223, +0.309047175806064,0.309047175806064,0.309084146230533,0.309059341588517,0.308988201104152,0.3088912241858,0.308791058828046,0.308709375797176,0.3086635888215,0.3086635888215, +0.381129897100571,0.381129897100571,0.381144663129025,0.381084967282829,0.380970353126288,0.380826787398585,0.380682947880804,0.380566786611514,0.380501702215811,0.380501702215811, +0.474780622389316,0.474780622389316,0.4747632199575,0.474652446469912,0.474474258490942,0.474262565963447,0.474054151827128,0.473885756505543,0.473790505319848,0.473790505319848, +0.587456634516261,0.587456634516261,0.587396470443863,0.587213911542507,0.586946767619663,0.586640317297637,0.58634056920357,0.586094847736072,0.585951838327623,0.585951838327623, +0.715646946054609,0.715646946054609,0.715537500576642,0.715253405369615,0.714864189596638,0.71443107950234,0.714006503272538,0.713646065776437,0.713421519304531,0.713421519304531, +0.854902296887264,0.854902296887264,0.854762728158779,0.854319614788999,0.85376400076995,0.853170801578645,0.85258444757056,0.852053287979388,0.851668235718484,0.851668235718484, + +00:52:50, +0.235679146591154,0.235679146591154,0.235736321494567,0.235743503741685,0.235712329717613,0.235658154425383,0.235597817167638,0.235547130459388,0.235518408540221,0.235518408540221, +0.235679146591154,0.235679146591154,0.235736321494567,0.235743503741685,0.235712329717613,0.235658154425383,0.235597817167638,0.235547130459388,0.235518408540221,0.235518408540221, +0.260314758568242,0.260314758568242,0.260365437071147,0.260362286473525,0.260318184604852,0.260250167363504,0.260176977522388,0.260116327288737,0.260082143259926,0.260082143259926, +0.309154056252142,0.309154056252142,0.309191025029058,0.309166230486035,0.309095108693531,0.308998154882838,0.308898012438175,0.308816347715385,0.308770570899452,0.308770570899452, +0.381228981770712,0.381228981770712,0.381243747322868,0.381184066935315,0.381069479854019,0.380925947110769,0.380782140197683,0.380666005048867,0.38060093521741,0.38060093521741, +0.474867858834299,0.474867858834299,0.474850459532418,0.474739710228753,0.474561561609957,0.474349915979468,0.474141547987745,0.473973189847572,0.473877959617563,0.473877959617563, +0.587527527122542,0.587527527122542,0.587467372932347,0.587284851179055,0.587017763395982,0.586711378233591,0.586411694069443,0.586166024875543,0.586023045717126,0.586023045717126, +0.715697159011092,0.715697159011092,0.715587732705325,0.715303693052718,0.71491455529078,0.714481532943911,0.714057042929173,0.713696678289101,0.713472176774495,0.713472176774495, +0.854928372487561,0.854928372487561,0.854788829895411,0.854345799905118,0.853790291646035,0.853197206112866,0.85261096452961,0.852079906252113,0.851694926660233,0.851694926660233, + +00:52:51, +0.235792562048545,0.235792562048545,0.235849735808744,0.235856924043922,0.23582576120734,0.235771599748503,0.235711276164454,0.235660600328064,0.235631884413677,0.235631884413677, +0.235792562048545,0.235792562048545,0.235849735808744,0.235856924043922,0.23582576120734,0.235771599748503,0.235711276164454,0.235660600328064,0.235631884413677,0.235631884413677, +0.260426148677967,0.260426148677967,0.260476825660682,0.260473682266035,0.260429593976164,0.260361593583478,0.260288420440636,0.260227783515678,0.260193606851289,0.260193606851289, +0.309260921632562,0.309260921632562,0.309297888760245,0.309273104313048,0.309202001208214,0.309105070500578,0.309004950964669,0.308923304546561,0.308877537888495,0.308877537888495, +0.381328047814779,0.381328047814779,0.381342812891653,0.381283147958357,0.381168587943962,0.381025088174741,0.380881313855903,0.380765204819106,0.380700149547148,0.380700149547148, +0.474955074646925,0.474955074646925,0.474937678476983,0.474826953349697,0.474648844076557,0.474437245324871,0.474228923459405,0.474060602485682,0.473965393202876,0.473965393202876, +0.587598399876726,0.587598399876726,0.587538255569034,0.587355770950762,0.587088739284942,0.586782419254826,0.586482798993206,0.586237182050339,0.586094233128899,0.586094233128899, +0.715747356205128,0.715747356205128,0.715637949067504,0.715353964948551,0.714964905166084,0.714531970529967,0.714107566693792,0.71374727487893,0.71352281830282,0.71352281830282, +0.854954439344873,0.854954439344873,0.854814922879941,0.854371976238364,0.8538165736989,0.853223601779694,0.852637472577342,0.85210651557424,0.851721608623792,0.851721608623792, + +00:52:52, +0.235905968187338,0.235905968187338,0.235963140797805,0.235970335017721,0.235939183367863,0.235885035743372,0.235824725834769,0.235774060871947,0.235745350963362,0.235745350963362, +0.235905968187338,0.235905968187338,0.235963140797805,0.235970335017721,0.235939183367863,0.235885035743372,0.235824725834769,0.235774060871947,0.235745350963362,0.235745350963362, +0.260537527283597,0.260537527283597,0.260588202741484,0.260585066546715,0.260540991833836,0.260473008288955,0.26039985184412,0.260339228227859,0.260305058927945,0.260305058927945, +0.309367771947384,0.309367771947384,0.309404737424154,0.309379963069611,0.30930887864825,0.309211971039064,0.309111874407566,0.309030246290737,0.308984489788659,0.308984489788659, +0.381427095239942,0.381427095239942,0.381441859842545,0.381382210359117,0.38126767740328,0.381124210597665,0.380980468862628,0.380864385929398,0.380799345212194,0.380799345212194, +0.475042269840015,0.475042269840015,0.475024876804008,0.474914175845557,0.474736105903565,0.474524554012489,0.47431627825495,0.474147994432725,0.474052806088646,0.474052806088646, +0.587669252794009,0.587669252794009,0.587609118369112,0.587426670872825,0.587159695301757,0.586853440376579,0.586553883990116,0.586308319275734,0.586165400578229,0.586165400578229, +0.715797537650131,0.715797537650131,0.715688149676592,0.715404221070542,0.715015239236009,0.714582392273998,0.714158074579919,0.713797855559477,0.713573443903075,0.713573443903075, +0.854980497467037,0.854980497467037,0.854841007120215,0.854398143796611,0.853842846936455,0.853249988587079,0.852663971721749,0.852133115953798,0.851748281617218,0.851748281617218, + +00:52:53, +0.236019364997483,0.236019364997483,0.236076536451705,0.236083736653035,0.236052596189127,0.23599846239992,0.235938166168504,0.235887512080945,0.235858808179179,0.235858808179179, +0.236019364997483,0.236019364997483,0.236076536451705,0.236083736653035,0.236052596189127,0.23599846239992,0.235938166168504,0.235887512080945,0.235858808179179,0.235858808179179, +0.26064889437882,0.26064889437882,0.260699568307244,0.260696439309255,0.260652378171551,0.260584411473606,0.2605112717265,0.26045066141893,0.260416499483541,0.260416499483541, +0.30947460719667,0.30947460719667,0.309511571020847,0.309486806755783,0.309415741013696,0.309318856498344,0.309218782766909,0.309137172947951,0.309091426599978,0.309091426599978, +0.381526124053364,0.381526124053364,0.381540888182702,0.381481254144752,0.381366748239127,0.381223314386695,0.381079605225014,0.380963548386899,0.380898522219704,0.380898522219704, +0.475129444426373,0.475129444426373,0.475112054526291,0.475001377729133,0.474823347103785,0.474611842055137,0.474403612387208,0.474235365701536,0.474140198287713,0.474140198287713, +0.587740085889565,0.587740085889565,0.587679961347753,0.587497550960424,0.587230631461622,0.586924441614065,0.586624949075412,0.586379436566987,0.586236548080384,0.586236548080384, +0.715847703359498,0.715847703359498,0.715738334545987,0.715454461432107,0.715065557513995,0.714632798189477,0.714208566601061,0.713848420344275,0.713624053588813,0.713624053588813, +0.855006546861882,0.855006546861882,0.85486708262407,0.854424302587723,0.853869111366601,0.853276366542965,0.852690461970813,0.852159707398808,0.851774945648556,0.851774945648556, + +00:52:54, +0.236132752468945,0.236132752468945,0.236189922760417,0.236197128939835,0.236165999661095,0.236111879708098,0.236051597155593,0.236000953944984,0.235972256051048,0.235972256051048, +0.236132752468945,0.236132752468945,0.236189922760417,0.236197128939835,0.236165999661095,0.236111879708098,0.236051597155593,0.236000953944984,0.235972256051048,0.235972256051048, +0.260760249957335,0.260760249957335,0.260810922351666,0.260807800547355,0.260763752983002,0.260695803131114,0.260622680081448,0.260562083082555,0.260527928511734,0.260527928511734, +0.309581427380485,0.309581427380485,0.30961838955039,0.309593635371627,0.309522588304606,0.30942572687847,0.309325676042741,0.309244084518243,0.309198348322491,0.309198348322491, +0.381625134262199,0.381625134262199,0.381639897919276,0.381580279322412,0.381465800458653,0.381322399548982,0.381178722950212,0.381062692198762,0.380997680576833,0.380997680576833, +0.47521659841879,0.47521659841879,0.475199211656616,0.47508855901321,0.47491056769001,0.474699109465616,0.47449092586899,0.474322716304938,0.474227569812904,0.474227569812904, +0.587810899178552,0.587810899178552,0.587750784520107,0.587568411228716,0.587301547779713,0.58699542298248,0.586695994264313,0.586450533939334,0.586307675650613,0.586307675650613, +0.715897853346606,0.715897853346606,0.715788503689067,0.715504686046641,0.715115860013466,0.714683188289861,0.714259042770707,0.713898969246844,0.713674647373568,0.713674647373568, +0.855032587537228,0.855032587537228,0.854893149399331,0.854450452619553,0.853895366997229,0.853302735655282,0.852716943332508,0.852186289917279,0.851801600725841,0.851801600725841, + +00:52:55, +0.236246130591706,0.236246130591706,0.236303299713931,0.236310511868109,0.236279393773746,0.236225287657873,0.236165018785992,0.236114386454006,0.236085694568904,0.236085694568904, +0.236246130591706,0.236246130591706,0.236303299713931,0.236310511868109,0.236279393773746,0.236225287657873,0.236165018785992,0.236114386454006,0.236085694568904,0.236085694568904, +0.260871594012854,0.260871594012854,0.260922264868466,0.26091915025473,0.260875116261894,0.260807183255175,0.260734076902648,0.26067349321241,0.260639346006196,0.260639346006196, +0.309688232498899,0.309688232498899,0.309725193012852,0.309700448917209,0.309629420521044,0.309532582179495,0.309432554235112,0.309350981001655,0.309305254956236,0.309305254956236, +0.381724125873598,0.381724125873598,0.381738889059412,0.381679285899238,0.381564834069,0.381421466091667,0.381277822045365,0.381161817372132,0.381096820290725,0.381096820290725, +0.475303731830039,0.475303731830039,0.47528634820775,0.475175719710557,0.474997767675015,0.474786356256713,0.474578218713093,0.474410046255736,0.474314920677032,0.474314920677032, +0.587881692676107,0.587881692676107,0.587821587901308,0.587639251692843,0.587372444271185,0.587066384497004,0.586767019572018,0.586521611407995,0.586378783304146,0.586378783304146, +0.715947987624818,0.715947987624818,0.715838657119194,0.715554894927522,0.715166146747827,0.714733562588589,0.714309503102329,0.713949502280682,0.713725225270858,0.713725225270858, +0.855058619500881,0.855058619500881,0.854919207453814,0.854476593899945,0.85392161383622,0.853329095931952,0.852743415814795,0.85221286351721,0.851828246857099,0.851828246857099, + +00:52:56, +0.236359499355765,0.236359499355765,0.236416667302253,0.236423885427861,0.236392778517075,0.236338686239228,0.236278431049669,0.236227809597971,0.236199123722703,0.236199123722703, +0.236359499355765,0.236359499355765,0.236416667302253,0.236423885427861,0.236392778517075,0.236338686239228,0.236278431049669,0.236227809597971,0.236199123722703,0.236199123722703, +0.2609829265391,0.2609829265391,0.261033595851373,0.261030488425104,0.260986468001946,0.260918551839496,0.260845462183796,0.260784891802181,0.260750751960609,0.260750751960609, +0.309795022551984,0.309795022551984,0.309831981408306,0.309807247392598,0.309736237663071,0.309639422401478,0.309539417344072,0.309457862398234,0.30941214650126,0.30941214650126, +0.381823098894703,0.381823098894703,0.381837861610247,0.381778273882366,0.381663849077303,0.381520514021886,0.381376902517611,0.381260923914146,0.38119594136852,0.38119594136852, +0.475390844672881,0.475390844672881,0.475373464192447,0.475262859833929,0.475084947071561,0.474873582441198,0.474665490932299,0.474497355566723,0.474402250892892,0.474402250892892, +0.587952466397348,0.587952466397348,0.587892371506468,0.587710072367924,0.587443320951176,0.587137326172794,0.58683802501371,0.586592668988169,0.586449871056192,0.586449871056192, +0.715998106207479,0.715998106207479,0.715888794849714,0.715605088088112,0.715216417730468,0.714783921099081,0.714359947609381,0.714000019459272,0.713775787294183,0.713775787294183, +0.85508464276064,0.85508464276064,0.854945256795325,0.854502726436732,0.853947851891442,0.853355447380885,0.852769879425626,0.852239428206588,0.851854884050343,0.851854884050343, + +00:52:57, +0.236472858751141,0.236472858751141,0.236530025515407,0.236537249609114,0.236506153881098,0.236452075442164,0.236391833936614,0.236341223366857,0.236312543502415,0.236312543502415, +0.236472858751141,0.236472858751141,0.236530025515407,0.236537249609114,0.236506153881098,0.236452075442164,0.236391833936614,0.236341223366857,0.236312543502415,0.236312543502415, +0.26109424752981,0.26109424752981,0.261144915294126,0.261141815052215,0.261097808196887,0.261029908877796,0.260956835918602,0.260896278845569,0.260862146368668,0.260862146368668, +0.309901797539816,0.309901797539816,0.309938754736826,0.309914030797866,0.309843039730757,0.309746247544478,0.309646265369676,0.309564728708032,0.309519022957608,0.309519022957608, +0.381922053332649,0.381922053332649,0.381936815578914,0.381877243278925,0.381762845490689,0.381619543346769,0.381475964374079,0.381360011831937,0.38129504381735,0.38129504381735, +0.47547793696006,0.47547793696006,0.475460559623446,0.475349979396063,0.475172105892395,0.474960788031828,0.474752742539375,0.474584644250673,0.474489560473267,0.474489560473267, +0.588023220357375,0.588023220357375,0.587963135350682,0.587780873269062,0.587514177834805,0.587208248024992,0.586909010604549,0.586663706695037,0.586520938921944,0.586520938921944, +0.716048209107914,0.716048209107914,0.715938916893952,0.715655265541754,0.715266672974758,0.714834263834742,0.714410376305301,0.714050520796079,0.713826333457024,0.713826333457024, +0.855110657324293,0.855110657324293,0.854971297431657,0.854528850237735,0.853974081170755,0.853381790009981,0.852796334172942,0.852265983993393,0.851881512313576,0.851881512313576, + +00:52:58, +0.236586208767867,0.236586208767867,0.236643374343434,0.236650604401908,0.236619519855843,0.2365654552567,0.236505227436832,0.236454627750658,0.236425953898029,0.236425953898029, +0.236586208767867,0.236586208767867,0.236643374343434,0.236650604401908,0.236619519855843,0.2365654552567,0.236505227436832,0.236454627750658,0.236425953898029,0.236425953898029, +0.26120555697873,0.26120555697873,0.261256223190476,0.261253130129812,0.26120913684046,0.261141254363806,0.261068198100785,0.261007654336286,0.26097352922408,0.26097352922408, +0.310008557462474,0.310008557462474,0.310045512998493,0.310020799133091,0.309949826724171,0.309853057608562,0.309753098311984,0.3096715799311,0.309625884325332,0.309625884325332, +0.382020989194566,0.382020989194566,0.382035750972536,0.381976194096038,0.381861823316282,0.381718554073437,0.381575007621894,0.381459081132629,0.381394127644341,0.381394127644341, +0.475565008704306,0.475565008704306,0.475547634513468,0.475437078409686,0.475259244150247,0.475047973041343,0.474839973547074,0.474671912320348,0.474576849430922,0.474576849430922, +0.588093954571268,0.588093954571268,0.588033879449026,0.58785165441134,0.587585014937172,0.587279150068716,0.586979976359678,0.58673472454376,0.586591986916574,0.586591986916574, +0.716098296339433,0.716098296339433,0.71598902326522,0.715705427301775,0.715316912494053,0.714884590808958,0.714460789203507,0.714101006304551,0.713876863772848,0.713876863772848, +0.855136663199616,0.855136663199616,0.854997329370597,0.854554965310768,0.854000301682008,0.853408123827131,0.852822780064673,0.85229253088559,0.851908131654792,0.851908131654792, + +00:52:59, +0.236699549395993,0.236699549395993,0.236756713776392,0.236763949796298,0.236732876431359,0.23667882567287,0.236618611540344,0.236568022739385,0.236539354899549,0.236539354899549, +0.236699549395993,0.236699549395993,0.236756713776392,0.236763949796298,0.236732876431359,0.23667882567287,0.236618611540344,0.236568022739385,0.236539354899549,0.236539354899549, +0.261316854879621,0.261316854879621,0.261367519534189,0.261364433651657,0.261320453926417,0.26125258829127,0.261179548724079,0.261119018268054,0.261084900520563,0.261084900520563, +0.31011530232004,0.31011530232004,0.310152256193387,0.310127552398349,0.310056598643387,0.309959852593795,0.309859916171055,0.309778416067495,0.309732730604485,0.309732730604485, +0.382119906487576,0.382119906487576,0.382134667798232,0.382075126340821,0.381960782561196,0.381817546209007,0.381674032268171,0.381558131823341,0.381493192856611,0.381493192856611, +0.475652059918333,0.475652059918333,0.475634688875223,0.475524156887505,0.475346361857834,0.47513513748247,0.474927183968132,0.474759159788495,0.474664117778611,0.474664117778611, +0.588164669054089,0.588164669054089,0.588104603816555,0.587922415809822,0.587655832273356,0.58735003231907,0.587050922294223,0.586805722549481,0.586663015055235,0.586663015055235, +0.716148367915329,0.716148367915329,0.716039113976809,0.715755573381485,0.715367136301688,0.714934902035099,0.714511186317401,0.714151475998118,0.713927378255102,0.713927378255102, +0.855162660394378,0.855162660394378,0.855023352619919,0.854581071663632,0.85402651343304,0.853434448840214,0.852849217108741,0.852319068891137,0.851934742081972,0.851934742081972, + +00:53:00, +0.236812880625589,0.236812880625589,0.236870043804357,0.236877285782357,0.236846223597711,0.236792186680728,0.23673198623719,0.236681408323067,0.236652746497,0.236652746497, +0.236812880625589,0.236812880625589,0.236870043804357,0.236877285782357,0.236846223597711,0.236792186680728,0.23673198623719,0.236681408323067,0.236652746497,0.236652746497, +0.261428141226254,0.261428141226254,0.261478804319039,0.261475725611524,0.261431759448525,0.261363910653942,0.261290887782227,0.261230370634611,0.261196260251849,0.261196260251849, +0.3102220321126,0.3102220321126,0.310258984321594,0.310234290593725,0.310163355488482,0.31006663250025,0.309966718946955,0.309885237117278,0.309839561795126,0.309839561795126, +0.382218805218794,0.382218805218794,0.382233566063112,0.382174040020383,0.382059723232539,0.381916519760587,0.381773038320022,0.381657163911183,0.381592239461274,0.381592239461274, +0.475739090614842,0.475739090614842,0.475721722721404,0.475611214842216,0.475433459027856,0.47522228136792,0.475014373815271,0.474846386667845,0.474751365529069,0.474751365529069, +0.58823536382088,0.58823536382088,0.588175308468309,0.587993157479553,0.58772662985842,0.587420894791136,0.587121848423287,0.586876700727322,0.586734023353061,0.586734023353061, +0.716198423848878,0.716198423848878,0.716089189041996,0.715805703794176,0.715417344410984,0.714985197526515,0.714561567660369,0.714201929890193,0.713977876917214,0.713977876917214, +0.855188648916334,0.855188648916334,0.855049367187386,0.854607169304119,0.85405271643168,0.853460765057098,0.852875645313054,0.85234559801798,0.851961343603089,0.851961343603089, + +00:53:01, +0.236926202446739,0.236926202446739,0.236983364417421,0.236990612350176,0.236959561344981,0.236905538270342,0.236845351517426,0.236794784491751,0.236766128680421,0.236766128680421, +0.236926202446739,0.236926202446739,0.236983364417421,0.236990612350176,0.236959561344981,0.236905538270342,0.236845351517426,0.236794784491751,0.236766128680421,0.236766128680421, +0.261539416012412,0.261539416012412,0.261590077538815,0.261587006003197,0.261543053400562,0.261475221445592,0.261402215268987,0.261341711429703,0.26130760841168,0.26130760841168, +0.310328746840241,0.310328746840241,0.310365697383203,0.310341013719303,0.310270097259537,0.310173397328,0.310073506639752,0.309992043080512,0.309946377897315,0.309946377897315, +0.382317685395329,0.382317685395329,0.382332445774282,0.382272935141825,0.382158645337414,0.38201547473528,0.381872025784549,0.381756177403261,0.381691267465434,0.381691267465434, +0.475826100806516,0.475826100806516,0.475808736064689,0.475698252286498,0.475520535673,0.47530940471039,0.475101543101199,0.474933592971115,0.474838592695018,0.474838592695018, +0.588306038886664,0.588306038886664,0.588245993419305,0.58806387943556,0.587797407707406,0.587491737499979,0.587192754761956,0.58694765909239,0.586805011825169,0.586805011825169, +0.716248464153337,0.716248464153337,0.716139248474039,0.715855818553121,0.715467536835242,0.715035477296543,0.714611933245778,0.714252367994171,0.7140283597726,0.7140283597726, +0.855214628773231,0.855214628773231,0.855075373080753,0.854633258240011,0.854078910685746,0.853487072485644,0.852902064685512,0.852372118274055,0.851987936226104,0.851987936226104, + +00:53:02, +0.237039514849545,0.237039514849545,0.237096675605692,0.237103929489862,0.237072889663266,0.237018880431799,0.236958707371127,0.236908151235498,0.236879501439868,0.236879501439868, +0.237039514849545,0.237039514849545,0.237096675605692,0.237103929489862,0.237072889663266,0.237018880431799,0.236958707371127,0.236908151235498,0.236879501439868,0.236879501439868, +0.261650679231892,0.261650679231892,0.261701339187317,0.261698274820474,0.261654335776317,0.261586520659998,0.261513531178127,0.261453040647091,0.261418944993813,0.261418944993813, +0.310435446503057,0.310435446503057,0.310472395378306,0.310447721775172,0.310376823956636,0.310280147077122,0.310180279249518,0.310098833957264,0.310053178911117,0.310053178911117, +0.382416547024284,0.382416547024284,0.382431306938839,0.382371811712244,0.382257548882915,0.382114411140182,0.381970994668851,0.381855172306673,0.381790276876192,0.381790276876192, +0.475913090506027,0.475913090506027,0.475895728917741,0.475785269233016,0.475607591805937,0.47539650752256,0.475188691838607,0.475020778711005,0.474925799289165,0.474925799289165, +0.588376694266448,0.588376694266448,0.588316658684543,0.588134581692849,0.587868165835337,0.587562560460643,0.587263641325299,0.587018597659769,0.586875980486654,0.586875980486654, +0.716298488841947,0.716298488841947,0.716189292286179,0.715905917671581,0.715517713587747,0.715085741358498,0.714662283086978,0.714302790323431,0.714078826834652,0.714078826834652, +0.855240599972806,0.855240599972806,0.855101370307764,0.854659338479078,0.854105096203045,0.853513371133698,0.852928475234005,0.852398629667287,0.852014519958968,0.852014519958968, + +00:53:03, +0.237152817824126,0.237152817824126,0.237209977359297,0.23721723719154,0.237186208542684,0.237132213155203,0.237072053788382,0.237021508544389,0.236992864765416,0.236992864765416, +0.237152817824126,0.237152817824126,0.237209977359297,0.23721723719154,0.237186208542684,0.237132213155203,0.237072053788382,0.237021508544389,0.236992864765416,0.236992864765416, +0.2617619308785,0.2617619308785,0.261812589258356,0.261809532057165,0.261765606569592,0.261697808290951,0.261624835503428,0.261564358280548,0.261530269992013,0.261530269992013, +0.310542131101141,0.310542131101141,0.310579078306997,0.310554414761425,0.310483535579865,0.310386881747699,0.310287036776328,0.310205609747604,0.310159964836597,0.310159964836597, +0.382515390112754,0.382515390112754,0.382530149563875,0.382470669738728,0.382356433876132,0.382213328982382,0.382069944980017,0.381954148628511,0.381889267700638,0.381889267700638, +0.476000059726028,0.476000059726028,0.475982701293209,0.475872265694419,0.475694627439323,0.475483589817097,0.475275820040173,0.475107943900203,0.475012985324203,0.475012985324203, +0.588447329975215,0.588447329975215,0.588387304279005,0.588205264266409,0.58793890425722,0.587633363688155,0.587334508128362,0.587089516444526,0.586946929352595,0.586946929352595, +0.716348497927931,0.716348497927931,0.71623932049164,0.715956001162793,0.715567874681767,0.715135989725682,0.714712617197302,0.714353196891333,0.714129278116751,0.714129278116751, +0.855266562522786,0.855266562522786,0.855127358876153,0.854685410029083,0.854131272991375,0.8535396610091,0.85295487696641,0.852425132205592,0.852041094809623,0.852041094809623, + +00:53:04, +0.237266111360619,0.237266111360619,0.237323269668379,0.237330535445351,0.237299517973366,0.237245536430674,0.237185390759299,0.23713485640852,0.237106218647155,0.237106218647155, +0.237266111360619,0.237266111360619,0.237323269668379,0.237330535445351,0.237299517973366,0.237245536430674,0.237185390759299,0.23713485640852,0.237106218647155,0.237106218647155, +0.261873170946056,0.261873170946056,0.261923827745757,0.26192077770709,0.261876865774202,0.261809084332254,0.261736128238683,0.261675664323856,0.261641583400061,0.261641583400061, +0.310648800634593,0.310648800634593,0.310685746169375,0.310661092678156,0.310590232129314,0.310493601339812,0.310393779220258,0.310312370451604,0.310266735673828,0.310266735673828, +0.382614214667827,0.382614214667827,0.382628973656473,0.38256950922836,0.382455300324145,0.382312228268961,0.38216887672513,0.382053106375859,0.38198823994586,0.38198823994586, +0.47608700847916,0.47608700847916,0.476069653203728,0.475959241683342,0.475781642585801,0.475570651606653,0.47536292771856,0.47519508855138,0.475100150812808,0.475100150812808, +0.588517946027935,0.588517946027935,0.588457930217652,0.588275927171211,0.588009622988039,0.587704147197522,0.587405355186176,0.587160415461709,0.587017858438049,0.587017858438049, +0.716398491424497,0.716398491424497,0.716289333103628,0.716006069039983,0.715618020130552,0.715186222411377,0.714762935590065,0.714403587711221,0.714179713632256,0.714179713632256, +0.855292516430886,0.855292516430886,0.855153338793642,0.854711472897775,0.854157441058524,0.853565942119677,0.852981269890597,0.852451625896875,0.852067660785997,0.852067660785997, + +00:53:05, +0.237379395449175,0.237379395449175,0.237436552523098,0.237443824241452,0.237412817945462,0.237358850248349,0.237298718274002,0.237248194818006,0.237219563075194,0.237219563075194, +0.237379395449175,0.237379395449175,0.237436552523098,0.237443824241452,0.237412817945462,0.237358850248349,0.237298718274002,0.237248194818006,0.237219563075194,0.237219563075194, +0.261984399428392,0.261984399428392,0.262035054643354,0.262032011764084,0.261988113383971,0.261920348777725,0.261847409377696,0.261786958770813,0.261752885211747,0.261752885211747, +0.310755455103515,0.310755455103515,0.310792398965542,0.310767755525465,0.310696913605078,0.310600305853551,0.310500506581391,0.310419116069342,0.310373491422884,0.310373491422884, +0.382713020696586,0.382713020696586,0.382727779223712,0.382668330188216,0.382554148234031,0.382411109006997,0.382267789911268,0.382152045555797,0.382087193618937,0.382087193618937, +0.476173936778048,0.476173936778048,0.476156584661915,0.476046197212405,0.475868637257997,0.475657692903864,0.475450014886414,0.475282212677193,0.475187295767643,0.475187295767643, +0.588588542439554,0.588588542439554,0.588528536515428,0.588346570422204,0.588080322042764,0.587774911003732,0.58747618251375,0.587231294726347,0.587088767758056,0.587088767758056, +0.716448469344834,0.716448469344834,0.716339330135334,0.716056121316357,0.715668149947336,0.715236439428848,0.714813238278567,0.714453962796422,0.714230133394511,0.714230133394511, +0.855318461704812,0.855318461704812,0.855179310067946,0.854737527092895,0.854183600412268,0.853592214473247,0.853007654014423,0.852478110749028,0.85209421789601,0.85209421789601, + +00:53:06, +0.237492670079967,0.237492670079967,0.23754982591363,0.23755710357002,0.23752610844914,0.237472154598383,0.237412036322634,0.237361523762978,0.237332898039658,0.237332898039658, +0.237492670079967,0.237492670079967,0.23754982591363,0.23755710357002,0.23752610844914,0.237472154598383,0.237412036322634,0.237361523762978,0.237332898039658,0.237332898039658, +0.26209561631935,0.26209561631935,0.262146269944995,0.26214323422199,0.262099349392738,0.262031601621188,0.261958678914284,0.261898241615225,0.261864175420875,0.261864175420875, +0.31086209450801,0.31086209450801,0.310899036695602,0.310874403303452,0.310803580007253,0.310706995289005,0.310607218859811,0.310525846600898,0.31048023208384,0.31048023208384, +0.382811808206106,0.382811808206106,0.382826566272663,0.382767132625364,0.382652977612856,0.382509971203557,0.382366684545502,0.382250966175395,0.382186128726941,0.382186128726941, +0.476260844635302,0.476260844635302,0.476243495680375,0.476133132294213,0.475955611468523,0.475744713721353,0.47553708155637,0.475369316290284,0.475274420201355,0.475274420201355, +0.588659119225004,0.588659119225004,0.588599123187258,0.588417194034322,0.588151001436341,0.587845655121756,0.587546990126077,0.58730215425345,0.587159657327639,0.587159657327639, +0.716498431702114,0.716498431702114,0.716389311599931,0.716106158005103,0.715718264145335,0.715286640791346,0.714863525276088,0.714504322160245,0.714280537416842,0.714280537416842, +0.855344398352261,0.855344398352261,0.855205272706768,0.854763572622174,0.854209751060376,0.853618478077616,0.853034029345736,0.852504586769937,0.852120766147573,0.852120766147573, + +00:53:07, +0.237605935243179,0.237605935243179,0.237663089830169,0.237670373421245,0.237639389474583,0.237585449470948,0.237525344895352,0.237474843233583,0.237446223530689,0.237446223530689, +0.237605935243179,0.237605935243179,0.237663089830169,0.237670373421245,0.237639389474583,0.237585449470948,0.237525344895352,0.237474843233583,0.237446223530689,0.237446223530689, +0.262206821612786,0.262206821612786,0.26225747364454,0.262254445074667,0.262210573794352,0.262142842856484,0.262069936842275,0.262009512850914,0.26197545402126,0.26197545402126, +0.310968718848187,0.310968718848187,0.311005659359663,0.310981036012224,0.310910231335938,0.310813669646268,0.310713916055606,0.310632562046354,0.310586957656779,0.310586957656779, +0.382910577203456,0.382910577203456,0.38292533481039,0.382865916546867,0.382751788467685,0.382608814865705,0.382465560634894,0.382349868241719,0.382285045276938,0.382285045276938, +0.476347732063518,0.476347732063518,0.476330386271696,0.476220046941357,0.476042565229976,0.475831714071727,0.475624127741045,0.475456399403281,0.475361524126576,0.475361524126576, +0.588729676399193,0.588729676399193,0.588669690248049,0.588487798022478,0.588221661183701,0.587916379566544,0.587617778038129,0.587372994058009,0.587230527161797,0.587230527161797, +0.716548378509492,0.716548378509492,0.716439277510574,0.716156179119394,0.715768362737748,0.7153368265121,0.714913796595892,0.71455466581598,0.714330925712559,0.714330925712559, +0.855370326380917,0.855370326380917,0.855231226717801,0.854789609493332,0.854235893010602,0.853644732940583,0.853060395892374,0.852531053967476,0.852147305548584,0.852147305548584, + +00:53:08, +0.237719190929015,0.237719190929015,0.237776344262927,0.237783633785337,0.23775266101199,0.23769873485623,0.237638643982332,0.237588153219986,0.237559539538445,0.237559539538445, +0.237719190929015,0.237719190929015,0.237776344262927,0.237783633785337,0.23775266101199,0.23769873485623,0.237638643982332,0.237588153219986,0.237559539538445,0.237559539538445, +0.262318015302566,0.262318015302566,0.26236866573586,0.262365644315982,0.262321786582673,0.262254072477464,0.26218118315551,0.26212077247171,0.262086721006729,0.262086721006729, +0.311075328124157,0.311075328124157,0.311112266957836,0.311087653651887,0.311016867591237,0.310920328925438,0.310820598168867,0.310739262405797,0.310693668141784,0.310693668141784, +0.383009327695698,0.383009327695698,0.383024084843952,0.382964681959781,0.382850580805571,0.382707640000497,0.382564418186503,0.382448751761828,0.382383943275987,0.382383943275987, +0.476434599075278,0.476434599075278,0.476417256448455,0.476306941166413,0.476129498554938,0.475918693967577,0.475711153453041,0.475543462028795,0.475448607555925,0.475448607555925, +0.588800213977016,0.588800213977016,0.588740237712686,0.588558382401565,0.588292301299755,0.587987084353029,0.587688546264861,0.587443814154996,0.587301377275516,0.587301377275516, +0.716598309780107,0.716598309780107,0.716489227880401,0.716206184672385,0.715818445737758,0.715386996604325,0.714964052251227,0.714604993776904,0.714381298294952,0.714381298294952, +0.855396245798458,0.855396245798458,0.855257172108727,0.85481563771408,0.854262026270695,0.853670979069934,0.853086753662163,0.852557512349506,0.852173836106931,0.852173836106931, + +00:53:09, +0.237832437127697,0.237832437127697,0.23788958920213,0.237896884652521,0.23786592305158,0.237812010744437,0.237751933573766,0.23770145371237,0.237672846053103,0.237672846053103, +0.237832437127697,0.237832437127697,0.23788958920213,0.237896884652521,0.23786592305158,0.237812010744437,0.237751933573766,0.23770145371237,0.237672846053103,0.237672846053103, +0.26242919738257,0.26242919738257,0.262479846212837,0.262476831939816,0.262432987751576,0.262365290477991,0.262292417847842,0.262232020471458,0.262197976371121,0.262197976371121, +0.311181922336034,0.311181922336034,0.311218859490236,0.311194256222554,0.311123488773256,0.311026973126614,0.310927265199689,0.310845947679317,0.310800363538943,0.310800363538943, +0.383108059689889,0.383108059689889,0.383122816380399,0.383063428871155,0.382949354633563,0.382806446614982,0.382663257207379,0.382547616742773,0.382482822731142,0.382482822731142, +0.476521445683146,0.476521445683146,0.476504106223209,0.47639381498194,0.476216411455977,0.476005653421482,0.475798158704949,0.475630504179425,0.475535670502005,0.475535670502005, +0.588870731973344,0.588870731973344,0.588810765596039,0.588628947186462,0.588362921799395,0.588057769496125,0.587759294821207,0.587514614559367,0.587372207683759,0.587372207683759, +0.71664822552708,0.71664822552708,0.716539162722535,0.716256174677214,0.715868513158529,0.715437151081219,0.715014292255322,0.714655306056274,0.714431655177298,0.714431655177298, +0.855422156612547,0.855422156612547,0.85528310888722,0.854841657292116,0.854288150848389,0.853697216473445,0.853113102662921,0.852583961923882,0.852200357830493,0.852200357830493, + +00:53:10, +0.23794567382946,0.23794567382946,0.238002824638022,0.23801012601304,0.237979175583587,0.237925277125789,0.237865213659863,0.237814744700932,0.237786143064855,0.237786143064855, +0.23794567382946,0.23794567382946,0.238002824638022,0.23801012601304,0.237979175583587,0.237925277125789,0.237865213659863,0.237814744700932,0.237786143064855,0.237786143064855, +0.262540367846688,0.262540367846688,0.262591015069368,0.262588007940062,0.262544177294945,0.262476496851939,0.262403640913134,0.262343256844013,0.262309220108286,0.262309220108286, +0.311288501483937,0.311288501483937,0.31132543695698,0.31130084372434,0.311230094882105,0.311133602249901,0.311033917148168,0.310952617867007,0.310907043848345,0.310907043848345, +0.383206773193076,0.383206773193076,0.383221529426777,0.383162157288031,0.383048109958705,0.382905234716202,0.382762077704567,0.3826464631916,0.382581683649449,0.382581683649449, +0.476608271899674,0.476608271899674,0.476590935608504,0.476480668400486,0.476303303945646,0.476092592446005,0.47588514350934,0.475717525867754,0.475622712977403,0.475622712977403, +0.588941230403033,0.588941230403033,0.588881273912958,0.588699492392025,0.588433522697495,0.588128435010725,0.587830023722086,0.587585395286055,0.587443018401473,0.587443018401473, +0.716698125763516,0.716698125763516,0.716589082050081,0.716306149147002,0.715918565013209,0.715487289955962,0.715064516621389,0.714705602667329,0.714481996372852,0.714481996372852, +0.855448058830842,0.855448058830842,0.855309037060943,0.854867668235132,0.854314266751413,0.853723445158884,0.853139442902453,0.852610402698446,0.852226870727137,0.852226870727137, + +00:53:11, +0.23805890102456,0.23805890102456,0.238116050560865,0.238123357857153,0.23809241859826,0.238038533990525,0.23797848423085,0.237928026175889,0.237899430563911,0.237899430563911, +0.23805890102456,0.23805890102456,0.238116050560865,0.238123357857153,0.23809241859826,0.238038533990525,0.23797848423085,0.237928026175889,0.237899430563911,0.237899430563911, +0.262651526688823,0.262651526688823,0.262702172299357,0.262699172310624,0.262655355206678,0.262587691593195,0.262514852345263,0.262454481583243,0.262420452212088,0.262420452212088, +0.311395065567986,0.311395065567986,0.311431999358189,0.311407416157362,0.311336685917897,0.311240216295404,0.311140554014407,0.311059272968962,0.311013709070085,0.311013709070085, +0.383305468212301,0.383305468212301,0.383320223990123,0.383260867217445,0.38314684678803,0.383004004311195,0.382860879685102,0.382745291115348,0.382680526037947,0.382680526037947, +0.476695077737398,0.476695077737398,0.476677744616871,0.476567501434582,0.476390176036483,0.476179511053693,0.475972107878775,0.475804527106348,0.475709734994693,0.475709734994693, +0.589011709280919,0.589011709280919,0.588951762678273,0.588770018033092,0.588504104008911,0.588199080911707,0.587900732982394,0.587656156349977,0.587513809443584,0.587513809443584, +0.716748010502501,0.716748010502501,0.716638985876125,0.716356108094854,0.715968601314929,0.715537413241716,0.715114725362626,0.714755883623295,0.714532321894856,0.714532321894856, +0.855473952460987,0.855473952460987,0.855334956637548,0.854893670550807,0.854340373987481,0.853749665134005,0.853165774388557,0.852636834681029,0.852253374804722,0.852253374804722, + +00:53:12, +0.238172118703268,0.238172118703268,0.238229266960937,0.238236580175136,0.238205652085869,0.238151781328901,0.238091745276969,0.238041298127472,0.238012708540498,0.238012708540498, +0.238172118703268,0.238172118703268,0.238229266960937,0.238236580175136,0.238205652085869,0.238151781328901,0.238091745276969,0.238041298127472,0.238012708540498,0.238012708540498, +0.262762673902887,0.262762673902887,0.262813317896724,0.262810325045418,0.262766521480682,0.262698874695658,0.262626052138116,0.262565694683028,0.262531672676401,0.262531672676401, +0.311501614588305,0.311501614588305,0.311538546693987,0.31151397352174,0.311443261880748,0.311346815263234,0.311247175798509,0.311165912985283,0.311120359204259,0.311120359204259, +0.383404144754602,0.383404144754602,0.383418900077468,0.383359558666428,0.383245565128568,0.383102755406989,0.382959663156017,0.382844100521049,0.38277934990367,0.38277934990367, +0.476781863208841,0.476781863208841,0.476764533260824,0.476654314096743,0.476477027741012,0.47626640925708,0.476059051825797,0.475891507907763,0.475796736566435,0.475796736566435, +0.58908216862182,0.58908216862182,0.589022231906799,0.588840524124484,0.588574665748478,0.588269707213928,0.587971422617011,0.587726897766031,0.587584580825001,0.587584580825001, +0.716797879757107,0.716797879757107,0.716688874213739,0.716406051533855,0.716018622076804,0.715587520951628,0.715164918492209,0.714806148937376,0.714582631756533,0.714582631756533, +0.855499837510617,0.855499837510617,0.855360867624678,0.854919664246811,0.854366472564299,0.853775876406555,0.853192097129018,0.852663257879455,0.852279870071094,0.852279870071094, + +00:53:13, +0.238285326855869,0.238285326855869,0.238342473828531,0.238349792957282,0.238318876036697,0.238265019131189,0.23820499678848,0.238154560545931,0.23812597698486,0.23812597698486, +0.238285326855869,0.238285326855869,0.238342473828531,0.238349792957282,0.238318876036697,0.238265019131189,0.23820499678848,0.238154560545931,0.23812597698486,0.23812597698486, +0.262873809482808,0.262873809482808,0.2629244518554,0.262921466138372,0.262877676110878,0.262810046153238,0.262737240285594,0.262676896137258,0.262642881495113,0.262642881495113, +0.311608148545021,0.311608148545021,0.311645078964501,0.3116205158176,0.311549822770777,0.311453399153504,0.311353782500581,0.311272537916073,0.311226994250968,0.311226994250968, +0.383502802827006,0.383502802827006,0.383517557695839,0.383458231642001,0.383344264987342,0.383201488010608,0.383058428124336,0.382942891415729,0.382878155253645,0.382878155253645, +0.476868628326509,0.476868628326509,0.476851301552865,0.476741106399473,0.47656385907174,0.476353287068684,0.476145975362936,0.475978468284537,0.475883717705173,0.475883717705173, +0.589152608440534,0.589152608440534,0.589092681613328,0.588911010681003,0.588645207931015,0.588340313932226,0.588042092640798,0.587797619549096,0.587655332560614,0.587655332560614, +0.716847733540387,0.716847733540387,0.716738747075976,0.716455979477078,0.716068627311931,0.715637613098828,0.7152150960233,0.714856398622762,0.714632925971088,0.714632925971088, +0.855525713987359,0.855525713987359,0.855386770029966,0.854945649330804,0.854392562489564,0.85380207898427,0.853218411131612,0.852689672301535,0.85230635653409,0.85230635653409, + +00:53:14, +0.23839852547267,0.23839852547267,0.238455671153959,0.238462996193901,0.238432090441046,0.238378247387678,0.238318238755659,0.238267813421533,0.238239235887255,0.238239235887255, +0.23839852547267,0.23839852547267,0.238455671153959,0.238462996193901,0.238432090441046,0.238378247387678,0.238318238755659,0.238267813421533,0.238239235887255,0.238239235887255, +0.262984933422524,0.262984933422524,0.263035574169325,0.263032595583425,0.262988819091199,0.262921205959857,0.262848416781608,0.262788085939837,0.26275407866212,0.26275407866212, +0.311714667438264,0.311714667438264,0.311751596169862,0.311727043045069,0.311656368588106,0.311559967966331,0.311460374120734,0.311379147761436,0.311333614210315,0.311333614210315, +0.383601442436537,0.383601442436537,0.383616196852252,0.38355688615118,0.383442946371366,0.383300202129067,0.383157174597077,0.383041663806406,0.38297694209489,0.38297694209489, +0.476955373102895,0.476955373102895,0.476938049505479,0.476827878355259,0.476650670041163,0.476440144501011,0.476232878502707,0.476065408249194,0.475970678423435,0.475970678423435, +0.589223028751842,0.589223028751842,0.589163111812637,0.588981477717432,0.588715730571321,0.588410901081423,0.588112743068596,0.587868321714032,0.587726064665294,0.587726064665294, +0.716897571865377,0.716897571865377,0.716788604475874,0.716505891937575,0.716118617033389,0.715687689696427,0.715265257969045,0.714906632692625,0.714683204551712,0.714683204551712, +0.855551581898828,0.855551581898828,0.855412663861034,0.854971625810435,0.854418643770961,0.853828272874876,0.853244716404105,0.852716077955071,0.852332834201537,0.852332834201537, + +00:53:15, +0.238511714543991,0.238511714543991,0.238568858927549,0.238576189875317,0.238545295289233,0.238491466088675,0.238431471168799,0.238381056744559,0.238352485237962,0.238352485237962, +0.238511714543991,0.238511714543991,0.238568858927549,0.238576189875317,0.238545295289233,0.238491466088675,0.238431471168799,0.238381056744559,0.238352485237962,0.238352485237962, +0.263096045715982,0.263096045715982,0.263146684832453,0.263143713374529,0.263099950415589,0.263032354109448,0.262959581620082,0.262899264084679,0.262865264171334,0.262865264171334, +0.311821171268169,0.311821171268169,0.311858098310202,0.311833555204278,0.311762899332861,0.311666521701835,0.311566950659082,0.311485742521484,0.311440219082407,0.311440219082407, +0.383700063590209,0.383700063590209,0.38371481755372,0.383655522200976,0.383541609287651,0.383398897769378,0.38325590258125,0.383140417700095,0.383075710434421,0.383075710434421, +0.477042097550477,0.477042097550477,0.477024777131138,0.476914629976573,0.476737460661759,0.476526981566549,0.47631976125761,0.476152327814242,0.476057618733736,0.476057618733736, +0.589293429570506,0.589293429570506,0.589233522519482,0.589051925248535,0.588786233684176,0.58848146867632,0.58818337391523,0.587939004275681,0.587796777153893,0.587796777153893, +0.716947394745097,0.716947394745097,0.716838446426452,0.716555788928382,0.716168591254241,0.715737750757521,0.715315404342571,0.714956851160121,0.714733467511576,0.714733467511576, +0.855577441252628,0.855577441252628,0.855438549125496,0.854997593693343,0.854444716416165,0.853854458086088,0.853271012954253,0.852742474847853,0.852359303081253,0.852359303081253, + +00:53:16, +0.238624894060169,0.238624894060169,0.238682037139646,0.238689373991875,0.238658490571593,0.238604675224501,0.238544694018211,0.238494290505309,0.238465725027273,0.238465725027273, +0.238624894060169,0.238624894060169,0.238682037139646,0.238689373991875,0.238658490571593,0.238604675224501,0.238544694018211,0.238494290505309,0.238465725027273,0.238465725027273, +0.263207146357146,0.263207146357146,0.263257783838751,0.263254819505647,0.263211070078003,0.263143490595958,0.26307073479495,0.263010430565712,0.262976438016676,0.262976438016676, +0.311927660034871,0.311927660034871,0.311964585385658,0.311940052295359,0.311869415005172,0.311773060360137,0.311673512115742,0.311592322196327,0.311546808867354,0.311546808867354, +0.383798666295033,0.383798666295033,0.383813419807248,0.383754139798391,0.383640253743199,0.383497574938543,0.383354612083861,0.3832391531038,0.383174460279244,0.383174460279244, +0.477128801681717,0.477128801681717,0.4771114844423,0.477001361275873,0.476824230945994,0.476613798277772,0.476406623640131,0.476239226992178,0.476144538648577,0.476144538648577, +0.589363810911269,0.589363810911269,0.589303913748603,0.589122353289058,0.588856717284344,0.5885520167317,0.588253985195505,0.588009667248866,0.587867470041245,0.587867470041245, +0.716997202192551,0.716997202192551,0.716888272940715,0.716605670462519,0.716218549987536,0.715787796295187,0.715365535156988,0.715007054038387,0.714783714863835,0.714783714863835, +0.855603292056355,0.855603292056355,0.855464425830953,0.855023552987159,0.854470780432843,0.853880634625611,0.8532973007898,0.852768862987663,0.852385763181041,0.852385763181041, + +00:53:17, +0.238738064011559,0.238738064011559,0.23879520578061,0.238802548533934,0.238771676278478,0.238717874785497,0.238657907294221,0.2386075146941,0.238578955245501,0.238578955245501, +0.238738064011559,0.238738064011559,0.23879520578061,0.238802548533934,0.238771676278478,0.238717874785497,0.238657907294221,0.2386075146941,0.238578955245501,0.238578955245501, +0.263318235339987,0.263318235339987,0.263368871182194,0.263365913970754,0.263322178072409,0.263254615413344,0.26318187630016,0.263121585376874,0.263087600192081,0.263087600192081, +0.312034133738511,0.312034133738511,0.312071057396371,0.312046534318451,0.311975915605169,0.311879583941365,0.311780058490835,0.311698886786083,0.31165338356527,0.31165338356527, +0.383897250558011,0.383897250558011,0.383912003619833,0.383852738950423,0.383738879745006,0.38359623364356,0.383453303111908,0.383337870024521,0.383273191636358,0.383273191636358, +0.477215485509064,0.477215485509064,0.477198171451405,0.477088072265603,0.476910980906317,0.476700594647142,0.47649346566274,0.476326105795482,0.476231438180444,0.476231438180444, +0.589434172788855,0.589434172788855,0.589374285514719,0.589192761853729,0.588927181386567,0.588622545262329,0.588324576924206,0.588080310648393,0.587938143342167,0.587938143342167, +0.717046994220724,0.717046994220724,0.716938084031649,0.716655536552989,0.716268493246301,0.715837826322488,0.71541565042539,0.715057241340545,0.714833946621628,0.714833946621628, +0.855629134317595,0.855629134317595,0.855490293984999,0.855049503699501,0.85449683582865,0.853906802501142,0.853323579918482,0.852795242382272,0.852412214508699,0.852412214508699, + +00:53:18, +0.238851224388532,0.238851224388532,0.23890836484082,0.23891571349187,0.238884852400255,0.238831064762017,0.238771110987172,0.238720729301265,0.238692175882971,0.238692175882971, +0.238851224388532,0.238851224388532,0.23890836484082,0.23891571349187,0.238884852400255,0.238831064762017,0.238771110987172,0.238720729301265,0.238692175882971,0.238692175882971, +0.26342931265849,0.26342931265849,0.263479946856773,0.263476996763835,0.263433274392785,0.263365728555576,0.26329300612967,0.263232728512115,0.263198750691494,0.263198750691494, +0.312140592379231,0.312140592379231,0.312177514342483,0.312153001273692,0.312082401132988,0.311986092445647,0.311886589784483,0.311805436290869,0.31175994317627,0.31175994317627, +0.383995816386139,0.383995816386139,0.38401056899847,0.383951319664059,0.383837487300062,0.383694873891418,0.383551975672382,0.383436568469252,0.38337190451276,0.38337190451276, +0.477302149044951,0.477302149044951,0.477284838170883,0.477174762958191,0.476997710555164,0.476787370687104,0.476580287337895,0.476412964236618,0.476318317341807,0.476318317341807, +0.589504515217972,0.589504515217972,0.589444637832532,0.589263150957257,0.588997626005571,0.588693054282952,0.588395149116102,0.588150934489046,0.588008797071453,0.588008797071453, +0.717096770842586,0.717096770842586,0.716987879712222,0.716705387212778,0.716318421043549,0.715887840852467,0.715465750160854,0.715107413079699,0.714884162798075,0.714884162798075, +0.855654968043924,0.855654968043924,0.855516153595215,0.855075445837981,0.854522882611231,0.853932961720364,0.853349850348024,0.852821613039441,0.852438657072013,0.852438657072013, + +00:53:19, +0.238964375181475,0.238964375181475,0.23902151431067,0.239028868856076,0.238998018927309,0.238944245144436,0.238884305087424,0.238833934317154,0.238805386930028,0.238805386930028, +0.238964375181475,0.238964375181475,0.23902151431067,0.239028868856076,0.238998018927309,0.238944245144436,0.238884305087424,0.238833934317154,0.238805386930028,0.238805386930028, +0.263540378306651,0.263540378306651,0.263591010856486,0.26358806787889,0.263544359033123,0.263476830016632,0.263404124277451,0.263343859965397,0.263309889508872,0.263309889508872, +0.312247035957178,0.312247035957178,0.31228395622414,0.312259453161227,0.312188871588768,0.312092585873116,0.311993105996813,0.311911970710807,0.311866487700475,0.311866487700475, +0.384094363786407,0.384094363786407,0.384109115950141,0.384049881946286,0.383936076415349,0.383793495689101,0.383650629772269,0.383535248444979,0.383470598915435,0.383470598915435, +0.477388792301799,0.477388792301799,0.477371484613145,0.477261433366053,0.477084419904957,0.476874126410088,0.476667088678036,0.476499802328038,0.476405176145122,0.476405176145122, +0.589574838213308,0.589574838213308,0.589514970716725,0.589333520614333,0.589068051156064,0.588763543808297,0.588465701785943,0.588221538785594,0.588079431243884,0.588079431243884, +0.717146532071089,0.717146532071089,0.717037659995389,0.716755222454856,0.716368333392277,0.715937839898154,0.715515834376439,0.715157569268936,0.714934363406281,0.714934363406281, +0.855680793242906,0.855680793242906,0.855542004669176,0.855101379410196,0.854548920788222,0.853959112290954,0.853376112086141,0.85284797496692,0.852465090878757,0.852465090878757, + +00:53:20, +0.239077516380793,0.239077516380793,0.239134654180571,0.23914201461696,0.239111175850041,0.239057415923141,0.238997489585355,0.238947129732132,0.238918588377032,0.238918588377032, +0.239077516380793,0.239077516380793,0.239134654180571,0.23914201461696,0.239111175850041,0.239057415923141,0.238997489585355,0.238947129732132,0.238918588377032,0.238918588377032, +0.263651432278479,0.263651432278479,0.263702063175347,0.263699127309928,0.263655431987426,0.263587919790508,0.263515230737485,0.263454979730694,0.263421016638185,0.263421016638185, +0.312353464472501,0.312353464472501,0.312390383041491,0.312365889981202,0.31229532697265,0.312199064223908,0.312099607127956,0.312018490046025,0.311973017138007,0.311973017138007, +0.384192892765798,0.384192892765798,0.384207644481828,0.384148425804078,0.384034647097845,0.383892099043587,0.383749265418547,0.383633909958682,0.383569274851365,0.383569274851365, +0.477475415292012,0.477475415292012,0.47745811079059,0.477348083501587,0.477171108968102,0.476960861828512,0.476753869695592,0.476586620082178,0.476492014602832,0.476492014602832, +0.589645141789531,0.589645141789531,0.589585284181963,0.589403870839628,0.589138456852732,0.588834013853073,0.588536234948459,0.588292123552786,0.588150045874219,0.588150045874219, +0.717196277919169,0.717196277919169,0.717087424894086,0.716805042292174,0.716418230305464,0.715987823472557,0.715565903085189,0.715207709921327,0.714984548459333,0.714984548459333, +0.855706609922098,0.855706609922098,0.855567847214444,0.855127304423737,0.854574950367248,0.853985254220576,0.853402365140538,0.852874328172449,0.852491515936698,0.852491515936698, + +00:53:21, +0.239190647976905,0.239190647976905,0.23924778444095,0.23925515076495,0.239224323158868,0.239170577088538,0.239110664471357,0.239060315536583,0.239031780214361,0.239031780214361, +0.239190647976905,0.239190647976905,0.23924778444095,0.23925515076495,0.239224323158868,0.239170577088538,0.239110664471357,0.239060315536583,0.239031780214361,0.239031780214361, +0.263762474567992,0.263762474567992,0.263813103807379,0.26381017505097,0.263766493249707,0.263698997871205,0.263626325503766,0.263566087801992,0.263532132073412,0.263532132073412, +0.312459877925352,0.312459877925352,0.31249679479469,0.312472311733767,0.312401767284779,0.312305527498161,0.312206093178044,0.312124994296649,0.312079531488992,0.312079531488992, +0.384291403331289,0.384291403331289,0.384306154600501,0.384246951244407,0.384133199354518,0.383990683961847,0.383847882618188,0.383732553017334,0.383667932327525,0.383667932327525, +0.47756201802798,0.47756201802798,0.477544716715603,0.477434713377179,0.47725777775699,0.477047576954777,0.476840630402974,0.47667341751146,0.476578832727363,0.476578832727363, +0.589715425961293,0.589715425961293,0.589655578242893,0.589474201647798,0.589208843110247,0.588904464431973,0.588606748618362,0.588362688805353,0.588220640977199,0.588220640977199, +0.717246008399746,0.717246008399746,0.717137174421232,0.716854846737668,0.716468111796071,0.716037791588673,0.715615956300131,0.715257835049926,0.715034717970302,0.715034717970302, +0.855732418089044,0.855732418089044,0.855593681238571,0.855153220886183,0.854600971355924,0.854011387516886,0.853428609518909,0.852900672663759,0.85251793225359,0.85251793225359, + +00:53:22, +0.239303769960251,0.239303769960251,0.239360905082253,0.239368277290487,0.239337460844226,0.239283728631051,0.239223829735841,0.239173491720906,0.239144962432409,0.239144962432409, +0.239303769960251,0.239303769960251,0.239360905082253,0.239368277290487,0.239337460844226,0.239283728631051,0.239223829735841,0.239173491720906,0.239144962432409,0.239144962432409, +0.263873505169222,0.263873505169222,0.263924132746618,0.263921211096049,0.263877542813992,0.263810064252742,0.2637374085703,0.263677184173288,0.263643235808548,0.263643235808548, +0.312566276315887,0.312566276315887,0.312603191483891,0.312578718419073,0.312508192525302,0.312411975696018,0.312312564147214,0.312231483462812,0.312186030753561,0.312186030753561, +0.384389895489848,0.384389895489848,0.384404646313127,0.384345458274235,0.384231733192334,0.384089250450844,0.383946481378159,0.383831177627903,0.383766571350881,0.383766571350881, +0.477648600522078,0.477648600522078,0.477631302400553,0.477521323005199,0.477344426283999,0.47713427180127,0.476927370812581,0.476760194628292,0.476665630531128,0.476665630531128, +0.589785690743227,0.589785690743227,0.589725852914142,0.589544513053476,0.589279209943261,0.588974895559667,0.588677242810348,0.588433234558007,0.588291216567547,0.588291216567547, +0.717295723525722,0.717295723525722,0.717186908589729,0.716904635804258,0.716517977877045,0.716087744259477,0.715665994034272,0.715307944667768,0.71508487195224,0.71508487195224, +0.855758217751281,0.855758217751281,0.855619506749102,0.855179128805104,0.854626983761857,0.854037512187528,0.853454845228938,0.85292700844857,0.852544339837178,0.852544339837178, + +00:53:23, +0.239416882321282,0.239416882321282,0.239474016094938,0.23948139418403,0.239450588896564,0.239396870541118,0.239336985369232,0.239286658275519,0.239258135021586,0.239258135021586, +0.239416882321282,0.239416882321282,0.239474016094938,0.23948139418403,0.239450588896564,0.239396870541118,0.239336985369232,0.239286658275519,0.239258135021586,0.239258135021586, +0.263984524076211,0.263984524076211,0.26403514998711,0.26403223543921,0.263988580674319,0.263921118929144,0.263848479931103,0.26378826883859,0.263754327837595,0.263754327837595, +0.312672659644265,0.312672659644265,0.312709573109252,0.312685110037278,0.312614602694371,0.312518408817623,0.312419020035605,0.312337957544648,0.312292514931845,0.312292514931845, +0.384488369248441,0.384488369248441,0.384503119626665,0.384443946900522,0.384330248618248,0.384187798517536,0.384045061705418,0.38392978379735,0.383865191928397,0.383865191928397, +0.477735162786669,0.477735162786669,0.477717867857795,0.477607912398004,0.477431054561492,0.477220946380365,0.477014090936797,0.476846951445067,0.476752408026526,0.476752408026526, +0.589855936149948,0.589855936149948,0.58979610821032,0.589614805071282,0.589349557366405,0.589045307250811,0.588747717539091,0.588503760825442,0.588361772659967,0.588361772659967, +0.717345423309982,0.717345423309982,0.717236627412465,0.716954409504845,0.716567828561314,0.716137681497931,0.715716016300607,0.715358038787875,0.715135010418186,0.715135010418186, +0.855784008916335,0.855784008916335,0.855645323753568,0.855205028188059,0.85465298759264,0.854063628240137,0.853481072278302,0.852953335534592,0.852570738695197,0.852570738695197, + +00:53:24, +0.23952998505047,0.23952998505047,0.239587117469484,0.239594501436055,0.239563707306351,0.239510002809194,0.239450131361974,0.239399815190852,0.239371297972319,0.239371297972319, +0.23952998505047,0.23952998505047,0.239587117469484,0.239594501436055,0.239563707306351,0.239510002809194,0.239450131361974,0.239399815190852,0.239371297972319,0.239371297972319, +0.264095531283014,0.264095531283014,0.264146155522913,0.26414324807451,0.264099606824736,0.264032161894451,0.263959539580204,0.26389934179192,0.263865408154571,0.263865408154571, +0.312779027910647,0.312779027910647,0.312815939670937,0.312791486588539,0.31272099779214,0.312624826863125,0.31252546084336,0.312444416542297,0.312398984023981,0.312398984023981, +0.384586824614024,0.384586824614024,0.384601574548068,0.384542417130217,0.384428745639211,0.384286328168876,0.384143623606918,0.384028371532628,0.383963794067027,0.383963794067027, +0.477821704834097,0.477821704834097,0.477804413099669,0.477694481567936,0.477517662601818,0.47730760070442,0.477100790787991,0.476933687974162,0.47683916522594,0.47683916522594, +0.589926162196051,0.589926162196051,0.58986634414602,0.589685077715813,0.589419885394297,0.589115699520041,0.58881817281925,0.588574267622333,0.588432309269147,0.588432309269147, +0.717395107765396,0.717395107765396,0.717286330902308,0.717004167852317,0.71661766386179,0.716187603316978,0.71576602311211,0.715408117423249,0.715185133381157,0.715185133381157, +0.855809791591722,0.855809791591722,0.855671132259493,0.8552309190426,0.854678982855861,0.854089735682339,0.853507290674663,0.852979653929524,0.852597128835373,0.852597128835373, + +00:53:25, +0.239643078138301,0.239643078138301,0.239700209196384,0.239707599037053,0.239676816064069,0.239623125425752,0.239563267704526,0.239512962457357,0.239484451275052,0.239484451275052, +0.239643078138301,0.239643078138301,0.239700209196384,0.239707599037053,0.239676816064069,0.239623125425752,0.239563267704526,0.239512962457357,0.239484451275052,0.239484451275052, +0.264206526783696,0.264206526783696,0.264257149348099,0.264254248996015,0.264210621259305,0.264143193142714,0.264070587511645,0.264010403027309,0.263976476753502,0.263976476753502, +0.312885381115198,0.312885381115198,0.312922291169109,0.31289784807302,0.312827377818766,0.312731229832676,0.312631886570624,0.312550860455898,0.312505438030106,0.312505438030106, +0.384685261593546,0.384685261593546,0.384700011084283,0.384640868970264,0.384527224262167,0.384384839411807,0.384242167089605,0.384126940840685,0.384062377773719,0.384062377773719, +0.477908226676696,0.477908226676696,0.477890938138501,0.477781030527321,0.47760425041731,0.477394234785778,0.477187470378518,0.477020404227941,0.47692590214174,0.47692590214174, +0.589996368896115,0.589996368896115,0.589936560735814,0.58975533100165,0.589490194041532,0.589186072381973,0.588888608665463,0.588644754963338,0.588502826409753,0.588502826409753, +0.717444776904816,0.717444776904816,0.717336019072111,0.71705391085954,0.716667483791369,0.716237509729546,0.715816014481741,0.715458180586876,0.715235240854159,0.715235240854159, +0.855835565784947,0.855835565784947,0.85569693227439,0.855256801376265,0.854704969559095,0.854115834521748,0.853533500425676,0.853005963641057,0.852623510265418,0.852623510265418, + +00:53:26, +0.239756161575278,0.239756161575278,0.239813291266148,0.239820686977534,0.23978991516022,0.23973623838128,0.239676394387365,0.239626100065499,0.239597594920245,0.239597594920245, +0.239756161575278,0.239756161575278,0.239813291266148,0.239820686977534,0.23978991516022,0.23973623838128,0.239676394387365,0.239626100065499,0.239597594920245,0.239597594920245, +0.264317510572336,0.264317510572336,0.264368131456748,0.264365238197806,0.264321623972098,0.264254212667995,0.264181623719477,0.264121452538801,0.264087533628428,0.264087533628428, +0.312991719258087,0.312991719258087,0.313028627603937,0.313004194490884,0.312933742774409,0.312837617726429,0.312738297217547,0.312657289285598,0.312611876950364,0.312611876950364, +0.384783680193953,0.384783680193953,0.384798429242248,0.384739302427603,0.384625684494054,0.384483332253268,0.384340692160419,0.384225491728462,0.384160943055416,0.384160943055416, +0.477994728326784,0.477994728326784,0.477977442986604,0.477867559288473,0.477690818020289,0.477480848636771,0.477274129720718,0.477107100218755,0.477012618786279,0.477012618786279, +0.590066556264698,0.590066556264698,0.590006757994257,0.589825564943355,0.589560483322688,0.589256425851208,0.588959025092352,0.588715222863096,0.588573324096436,0.588573324096436, +0.717494430741078,0.717494430741078,0.717385691934712,0.717103638539369,0.716717288362931,0.716287400748545,0.715865990422443,0.715508228291727,0.715285332850177,0.715285332850177, +0.855861331503508,0.855861331503508,0.855722723805764,0.855282675196584,0.854730947709907,0.854141924765969,0.853559701538986,0.85303226467687,0.852649882993038,0.852649882993038, + +00:53:27, +0.239869235351922,0.239869235351922,0.239926363669302,0.239933765248021,0.239903004585319,0.239849341666283,0.239789511400982,0.23973922800576,0.239710728898375,0.239710728898375, +0.239869235351922,0.239869235351922,0.239926363669302,0.239933765248021,0.239903004585319,0.239849341666283,0.239789511400982,0.23973922800576,0.239710728898375,0.239710728898375, +0.264428482643022,0.264428482643022,0.264479101842954,0.264476215673974,0.264432614957198,0.264365220464368,0.264292648197764,0.264232490320452,0.2641985787734,0.2641985787734, +0.313098042339483,0.313098042339483,0.313134948975591,0.313110525842301,0.313040092659234,0.312943990544544,0.312844692784281,0.312763703031543,0.3127183007849,0.3127183007849, +0.384882080422182,0.384882080422182,0.384896829028898,0.384837717509163,0.384724126341803,0.384581806700191,0.384439198826293,0.384324024202895,0.384259489919053,0.384259489919053, +0.478081209796662,0.478081209796662,0.478063927656273,0.47795406786369,0.477777365423059,0.477567442269711,0.477360768826916,0.477193775958938,0.477099315171899,0.477099315171899, +0.590136724316344,0.590136724316344,0.590076935935886,0.589895779555474,0.589630753252327,0.589326759942325,0.589029422114518,0.588785671336227,0.588643802343827,0.588643802343827, +0.717544069287002,0.717544069287002,0.717435349502929,0.717153350904638,0.716767077589336,0.716337276386868,0.71591595094714,0.715558260550754,0.71533540938218,0.71533540938218, +0.855887088754891,0.855887088754891,0.855748506861107,0.855308540511079,0.854756917315852,0.854168006422597,0.853585894022227,0.853058557044632,0.852676247025928,0.852676247025928, + +00:53:28, +0.239982299458767,0.239982299458767,0.24003942639639,0.240046833839056,0.2400160843299,0.239962435271283,0.239902618735888,0.239852346268639,0.239823853199935,0.239823853199935, +0.239982299458767,0.239982299458767,0.24003942639639,0.240046833839056,0.2400160843299,0.239962435271283,0.239902618735888,0.239852346268639,0.239823853199935,0.239823853199935, +0.264539442989854,0.264539442989854,0.264590060500822,0.26458718141862,0.264543594208701,0.264476216525919,0.264403660940581,0.264343516366329,0.26430961218248,0.26430961218248, +0.313204350359563,0.313204350359563,0.313241255284246,0.313216842127443,0.313146427473406,0.31305034828718,0.312951073270981,0.312870101693885,0.312824709533861,0.312824709533861, +0.384980462285163,0.384980462285163,0.384995210451158,0.38493611422187,0.384822549812338,0.384680262759502,0.384537687094155,0.384422538270911,0.38435801837156,0.38435801837156, +0.478167671098622,0.478167671098622,0.478150392159792,0.478040556265257,0.477863892637911,0.477654015696902,0.477447387709425,0.477280431460811,0.477185991310926,0.477185991310926, +0.590206873065574,0.590206873065574,0.590147094575219,0.589965974852531,0.58970100384499,0.58939707466989,0.589099799746547,0.588856100397334,0.588714261166537,0.588714261166537, +0.71759369255539,0.71759369255539,0.717484991789565,0.717203047968167,0.716816851483431,0.716387136657394,0.715965896068743,0.715608277376893,0.715385470463122,0.715385470463122, +0.855912837546572,0.855912837546572,0.855774281447903,0.855334397327258,0.854782878384478,0.854194079499219,0.853612077883024,0.853084840752005,0.852702602371771,0.852702602371771, + +00:53:29, +0.240095353886366,0.240095353886366,0.24015247943797,0.240159892741197,0.240129154384513,0.240075519186816,0.240015716382607,0.239965454844652,0.239936967815435,0.239936967815435, +0.240095353886366,0.240095353886366,0.24015247943797,0.240159892741197,0.240129154384513,0.240075519186816,0.240015716382607,0.239965454844652,0.239936967815435,0.239936967815435, +0.264650391606945,0.264650391606945,0.264701007424467,0.264698135425859,0.264654561720714,0.264587200846744,0.264514661942016,0.26445453067051,0.264420633849742,0.264420633849742, +0.313310643318502,0.313310643318502,0.31334754653008,0.313323143346482,0.313252747217096,0.313156690954502,0.313057438677805,0.312976485272777,0.312931103197401,0.312931103197401, +0.385078825789821,0.385078825789821,0.385093573515951,0.385034492572642,0.384920954912578,0.384778700438119,0.384636156970924,0.384521033939433,0.38445652841986,0.38445652841986, +0.478254112244936,0.478254112244936,0.47823683650943,0.478127024505441,0.477950399677122,0.477740568930628,0.477533986380542,0.47736706673668,0.477272647215671,0.477272647215671, +0.590277002526894,0.590277002526894,0.590217233926757,0.590036150849035,0.589771235115201,0.589467370048445,0.589170158003003,0.588926510061001,0.588784700579163,0.588784700579163, +0.717643300559028,0.717643300559028,0.717534618807408,0.717252729742759,0.716866610058046,0.716436981572982,0.716015825800143,0.715658278783064,0.715435516105938,0.715435516105938, +0.855938577886018,0.855938577886018,0.855800047573628,0.855360245652624,0.854808830923319,0.854220144003407,0.85363825312899,0.853111115806636,0.852728949038242,0.852728949038242, + +00:53:30, +0.240208398625289,0.240208398625289,0.240265522784618,0.240272941945017,0.240242214739724,0.240188593403438,0.240128804331682,0.24007855372433,0.240050072735401,0.240050072735401, +0.240208398625289,0.240208398625289,0.240265522784618,0.240272941945017,0.240242214739724,0.240188593403438,0.240128804331682,0.24007855372433,0.240050072735401,0.240050072735401, +0.264761328488418,0.264761328488418,0.264811942608017,0.264809077689816,0.264765517487354,0.264698173420952,0.264625651196166,0.264565533227086,0.264531643769272,0.264531643769272, +0.313416921216481,0.313416921216481,0.313453822713272,0.313429429499598,0.313359051890476,0.313263018546677,0.313163789004916,0.313082853768377,0.313037481775673,0.313037481775673, +0.385177170943074,0.385177170943074,0.385191918230189,0.385132852568391,0.385019341649434,0.384877119742954,0.384734608463515,0.384619511215375,0.384555020070868,0.384555020070868, +0.478340533247865,0.478340533247865,0.47832326071744,0.4782134725965,0.478036886552953,0.477827101983162,0.477620564852549,0.477453681798837,0.477359282898431,0.477359282898431, +0.590347112714791,0.590347112714791,0.590287354004983,0.590106307559475,0.589841447077466,0.589537646092517,0.589240496898436,0.588996900341793,0.58885512059628,0.58885512059628, +0.717692893310687,0.717692893310687,0.717584230569227,0.7173023962412,0.716916353325991,0.716486811146476,0.716065740154216,0.71570826478217,0.715485546323549,0.715485546323549, +0.855964309780687,0.855964309780687,0.855825805245744,0.855386085494666,0.854834774939901,0.854246199942729,0.853664419767731,0.853137382216166,0.852755287033006,0.852755287033006, + +00:53:31, +0.240321433666119,0.240321433666119,0.240378556426926,0.240385981441108,0.240355265386114,0.24030165791172,0.240241882573671,0.240191642898221,0.240163167950375,0.240163167950375, +0.240321433666119,0.240321433666119,0.240378556426926,0.240385981441108,0.240355265386114,0.24030165791172,0.240241882573671,0.240191642898221,0.240163167950375,0.240163167950375, +0.264872253628408,0.264872253628408,0.264922866045613,0.264920008204629,0.264876461502752,0.264809134242664,0.264736628697141,0.264676524030159,0.264642641935167,0.264642641935167, +0.313523184053685,0.313523184053685,0.313560083834006,0.313535700586971,0.313465341493723,0.313369331063875,0.313270124252477,0.313189207180845,0.313143845268836,0.313143845268836, +0.385275497751833,0.385275497751833,0.385290244600779,0.385231194216023,0.385117710029812,0.384975520680915,0.384833041578835,0.384717970105648,0.384653493331496,0.384653493331496, +0.478426934119655,0.478426934119655,0.478409664796062,0.478299900550674,0.478123353277653,0.477913614866761,0.477707123137714,0.47754027665956,0.477445898371489,0.477445898371489, +0.590417203643733,0.590417203643733,0.59035745482436,0.590176444998322,0.589911639746272,0.589607902816614,0.589310816447374,0.589067271254258,0.588925521232447,0.588925521232447, +0.717742470823119,0.717742470823119,0.717633827087777,0.71735204747626,0.716966081300064,0.716536625390705,0.716115639143821,0.715758235387096,0.715535561128857,0.715535561128857, +0.855990033238025,0.855990033238025,0.855851554471706,0.855411916860865,0.854860710441742,0.854272247324739,0.853690577806841,0.853163639988224,0.852781616363715,0.852781616363715, + +00:53:32, +0.240434458999459,0.240434458999459,0.240491580355502,0.240499011220074,0.240468306314282,0.240414712702247,0.240354951099147,0.240304722356891,0.240276253450918,0.240276253450918, +0.240434458999459,0.240434458999459,0.240491580355502,0.240499011220074,0.240468306314282,0.240414712702247,0.240354951099147,0.240304722356891,0.240276253450918,0.240276253450918, +0.264983167021061,0.264983167021061,0.265033777731403,0.265030926964445,0.26498739376105,0.264920083306011,0.264847594439064,0.264787503073841,0.264753628341536,0.264753628341536, +0.313629431830298,0.313629431830298,0.313666329892468,0.313641956608785,0.313571616027016,0.31347562850627,0.313376444420657,0.313295545510345,0.313250193677051,0.313250193677051, +0.385373806223004,0.385373806223004,0.385388552634624,0.385329517522437,0.38521606006061,0.385073903258901,0.384931456323786,0.384816410617153,0.384751948208646,0.384751948208646, +0.478513314872537,0.478513314872537,0.478496048757521,0.47838630838019,0.478209799863455,0.478000107593668,0.477793661248292,0.477626851331111,0.477532493647113,0.477532493647113, +0.590487275328172,0.590487275328172,0.590427536399334,0.590246563180031,0.589981813136089,0.589678140235228,0.589381116664329,0.589137622812926,0.588995902502204,0.588995902502204, +0.717792033109061,0.717792033109061,0.717683408375793,0.717401683460691,0.717015793993044,0.716586424318478,0.716165522781801,0.715808190610713,0.715585560534747,0.715585560534747, +0.856015748265471,0.856015748265471,0.85587729525896,0.855437739758693,0.854886637436347,0.854298286156982,0.853716727253903,0.85318988913043,0.852807937038015,0.852807937038015, + +00:53:33, +0.240547474615926,0.240547474615926,0.24060459456097,0.24061203127254,0.240581337514844,0.240527757765623,0.240468009898704,0.24041779209092,0.240389329227603,0.240389329227603, +0.240547474615926,0.240547474615926,0.24060459456097,0.24061203127254,0.240581337514844,0.240527757765623,0.240468009898704,0.24041779209092,0.240389329227603,0.240389329227603, +0.265094068660535,0.265094068660535,0.26514467765955,0.265141833963424,0.2650983142564,0.265031020605135,0.264958548416066,0.264898470352258,0.264864602982499,0.264864602982499, +0.313735664546512,0.313735664546512,0.313772560888849,0.313748197565226,0.313677875490536,0.313581910874038,0.313482749509627,0.313401868757043,0.313356527000482,0.313356527000482, +0.385472096363485,0.385472096363485,0.385486842338617,0.385427822494526,0.385314391748721,0.385172267483804,0.385029852705262,0.384914832756787,0.384850384709216,0.384850384709216, +0.478599675518728,0.478599675518728,0.478582412614029,0.478472696097259,0.478296226322577,0.478086580176114,0.477880179196522,0.477713405825739,0.477619068737559,0.477619068737559, +0.590557327782539,0.590557327782539,0.590497598744333,0.590316662119037,0.590051967261368,0.589748358362829,0.589451397563796,0.589207955032308,0.589066264420072,0.589066264420072, +0.717841580181234,0.717841580181234,0.717732974445998,0.717451304207231,0.717065491417693,0.71663620794259,0.716215391080982,0.715858130465873,0.715635544554091,0.715635544554091, +0.856041454870452,0.856041454870452,0.855903027614939,0.85546355419561,0.854912555931213,0.854324316446995,0.853742868116494,0.853216129650394,0.852834249063539,0.852834249063539, + +00:53:34, +0.240660480506155,0.240660480506155,0.240717599033972,0.240725041589144,0.24069435897843,0.240640793092469,0.240581058962947,0.240530852090906,0.240502395271022,0.240502395271022, +0.240660480506155,0.240660480506155,0.240717599033972,0.240725041589144,0.24069435897843,0.240640793092469,0.240581058962947,0.240530852090906,0.240502395271022,0.240502395271022, +0.265204958541,0.265204958541,0.265255565824229,0.265252729195738,0.265209222982965,0.265141946134192,0.265069490622294,0.265009425859546,0.264975565852188,0.264975565852188, +0.313841882202518,0.313841882202518,0.313878776823341,0.313854423456485,0.31378411988447,0.313688178167359,0.313589039519561,0.313508176921109,0.313462845239297,0.313462845239297, +0.385570368180168,0.385570368180168,0.385585113719647,0.385526109139175,0.38541270510103,0.385270613362513,0.385128230730151,0.38501323653144,0.384948802840097,0.384948802840097, +0.478686016070431,0.478686016070431,0.478668756377781,0.47855906371408,0.478382632667225,0.478173032626312,0.47796667699463,0.477799940155679,0.477705623655065,0.477705623655065, +0.590627361021249,0.590627361021249,0.590567641873768,0.590386741829756,0.590122102136543,0.589818557213872,0.589521659160248,0.589278267926897,0.589136607000556,0.589136607000556, +0.717891112052342,0.717891112052342,0.717782525311095,0.7175009097286,0.71711517358676,0.716685976275819,0.716265244054173,0.715908054965414,0.715685513199741,0.715685513199741, +0.856067153060386,0.856067153060386,0.855928751547069,0.855489360179068,0.854938465933827,0.854350338202302,0.853769000402178,0.853242361555714,0.852860552447912,0.852860552447912, + +00:53:35, +0.240773476660794,0.240773476660794,0.240830593765165,0.240838042160542,0.240807370695689,0.240753818673419,0.240694098282501,0.240643902347462,0.240615451571785,0.240615451571785, +0.240773476660794,0.240773476660794,0.240830593765165,0.240838042160542,0.240807370695689,0.240753818673419,0.240694098282501,0.240643902347462,0.240615451571785,0.240615451571785, +0.265315836656637,0.265315836656637,0.265366442219623,0.265363612655569,0.265320119934923,0.265252859887348,0.265180421051902,0.265120369589853,0.265086516944746,0.265086516944746, +0.313948084798512,0.313948084798512,0.313984977696139,0.313960634282755,0.313890349209005,0.313794430386416,0.313695314450636,0.313614470002717,0.313569148393666,0.313569148393666, +0.385668621679939,0.385668621679939,0.385683366784595,0.385624377463265,0.385511000124418,0.385368940901907,0.385226590405336,0.385111621947996,0.385047202608172,0.385047202608172, +0.478772336539835,0.478772336539835,0.478755080060962,0.478645411242838,0.478469018909589,0.478259464956463,0.478053154654828,0.477886454333152,0.477792158411857,0.477792158411857, +0.590697375058699,0.590697375058699,0.59063766580203,0.590456802326589,0.590192217776028,0.589888736802792,0.589591901468143,0.589348561511169,0.58920693025814,0.58920693025814, +0.717940628735072,0.717940628735072,0.717832060983773,0.717550500037503,0.717164840512973,0.716735729330927,0.716315081714168,0.715957964122154,0.715735466484533,0.715735466484533, +0.856092842842682,0.856092842842682,0.855954467062767,0.85551515771651,0.854964367451665,0.85437635143042,0.853795124118509,0.853268584853982,0.852886847198748,0.852886847198748, + +00:53:36, +0.240886463070512,0.240886463070512,0.240943578745221,0.240951032977405,0.240920372657282,0.240866834499126,0.240807127848005,0.240756942851219,0.240728498120515,0.240728498120515, +0.240886463070512,0.240886463070512,0.240943578745221,0.240951032977405,0.240920372657282,0.240866834499126,0.240807127848005,0.240756942851219,0.240728498120515,0.240728498120515, +0.265426703001637,0.265426703001637,0.265477306839928,0.265474484337112,0.26543100510646,0.265363761858779,0.265291339699057,0.265231301537338,0.265197456254328,0.265197456254328, +0.314054272334693,0.314054272334693,0.314091163507443,0.314066830044231,0.313996563464333,0.313900667531395,0.313801574303032,0.313720748002042,0.313675436463763,0.313675436463763, +0.385766856869678,0.385766856869678,0.385781601540336,0.385722627473669,0.385609276825758,0.385467250108861,0.385324931737693,0.38520998901333,0.385145584020321,0.385145584020321, +0.478858636939113,0.478858636939113,0.478841383675738,0.4787317386957,0.478555385061845,0.478345877178753,0.478139612189311,0.477972948370364,0.477878673020146,0.477878673020146, +0.590767369909268,0.590767369909268,0.590707670543493,0.590526843623916,0.590262314194221,0.589958897144008,0.58966212450192,0.589418835799581,0.589277234207294,0.589277234207294, +0.717990130242095,0.717990130242095,0.717881581476703,0.717600075146625,0.717214492209046,0.716785467120658,0.716364904073742,0.716007857948898,0.715785404421287,0.715785404421287, +0.856118524224738,0.856118524224738,0.855980174169436,0.855540946815366,0.854990260492195,0.854402356138855,0.853821239273032,0.853294799552776,0.852913133323651,0.852913133323651, + +00:53:37, +0.24099943972599,0.24099943972599,0.241056553964829,0.241064014030421,0.241033364853891,0.240979840560259,0.240920147650116,0.240869973592821,0.240841534907852,0.240841534907852, +0.24099943972599,0.24099943972599,0.241056553964829,0.241064014030421,0.241033364853891,0.240979840560259,0.240920147650116,0.240869973592821,0.240841534907852,0.240841534907852, +0.265537557570203,0.265537557570203,0.265588159679354,0.265585344234572,0.265541878491775,0.265474652042675,0.26540224655794,0.265342221696171,0.265308383775101,0.265308383775101, +0.314160444811264,0.314160444811264,0.314197334257454,0.314173010741114,0.314102762650649,0.314006889602484,0.313907819076934,0.313827010919263,0.313781709449765,0.313781709449765, +0.385865073756256,0.385865073756256,0.38587981799374,0.385820859177253,0.385707535211916,0.385565540990242,0.385423254734089,0.385308337734315,0.385243947083415,0.385243947083415, +0.478944917280426,0.478944917280426,0.478927667234265,0.478818046084824,0.478641731136156,0.478432269305354,0.478226049610263,0.478059422279505,0.477965167492131,0.477965167492131, +0.590837345587315,0.590837345587315,0.590777656112513,0.590596865736101,0.590332391405502,0.59002903825192,0.589732328276001,0.589489090806571,0.589347518862465,0.589347518862465, +0.718039616586067,0.718039616586067,0.71793108680254,0.71764963506864,0.717264128687677,0.716835189657741,0.716414711145657,0.716057736458432,0.715835327022807,0.715835327022807, +0.856144197213943,0.856144197213943,0.856005872874474,0.85556672748306,0.855016145062873,0.854428352335103,0.853847345873283,0.853321005659666,0.852939410830215,0.852939410830215, + +00:53:38, +0.241112406617927,0.241112406617927,0.241169519414697,0.241176985310295,0.241146347276212,0.241092836847501,0.241033157679506,0.240982994562933,0.240954561924455,0.240954561924455, +0.241112406617927,0.241112406617927,0.241169519414697,0.241176985310295,0.241146347276212,0.241092836847501,0.241033157679506,0.240982994562933,0.240954561924455,0.240954561924455, +0.265648400356552,0.265648400356552,0.265699000732117,0.265696192342165,0.265652740085076,0.265585530433236,0.26551314162274,0.265453130060536,0.265419299501241,0.265419299501241, +0.314266602228428,0.314266602228428,0.314303489946377,0.314279176373605,0.31420894676815,0.314113096599876,0.314014048772527,0.313933258754563,0.313887967351852,0.313887967351852, +0.385963272346542,0.385963272346542,0.385978016151669,0.385919072580879,0.385805775289752,0.385663813552912,0.385521559401389,0.385406668117814,0.385342291804319,0.385342291804319, +0.47903117757592,0.47903117757592,0.479013930748681,0.478904333422349,0.47872805714467,0.478518641348425,0.478312466929852,0.478145876072754,0.478051641839993,0.478051641839993, +0.590907302107184,0.590907302107184,0.590847622523429,0.590666868677489,0.590402449424231,0.590099160140908,0.589802512804789,0.58955932654656,0.589417784238086,0.589417784238086, +0.718089087779625,0.718089087779625,0.717980576973923,0.717699179816201,0.717313749961547,0.716884896954888,0.716464502942655,0.716107599663526,0.715885234301879,0.715885234301879, +0.856169861817677,0.856169861817677,0.856031563185268,0.855592499727003,0.855042021171149,0.85445434002665,0.853873443926786,0.853347203182213,0.852965679726025,0.852965679726025, + +00:53:39, +0.241225363737038,0.241225363737038,0.241282475085544,0.241289946807746,0.241259319914957,0.241205823351555,0.241146157926864,0.241096005752233,0.241067579160996,0.241067579160996, +0.241225363737038,0.241225363737038,0.241282475085544,0.241289946807746,0.241259319914957,0.241205823351555,0.241146157926864,0.241096005752233,0.241067579160996,0.241067579160996, +0.265759231354908,0.265759231354908,0.26580982999245,0.265807028654121,0.265763589880587,0.265696397024674,0.265624024887659,0.265564026624626,0.265530203426939,0.265530203426939, +0.314372744586395,0.314372744586395,0.314409630574421,0.31438532694191,0.314315115817038,0.314219288523765,0.314120263390002,0.314039491508127,0.313994210170206,0.313994210170206, +0.386061452647394,0.386061452647394,0.386076196020979,0.386017267691401,0.385903997066122,0.385762067803725,0.385619845746448,0.385504980170686,0.385440618189892,0.385440618189892, +0.479117417837726,0.479117417837726,0.479100174231112,0.478990600720403,0.478814363099519,0.478604993320108,0.478398864160232,0.478232309762275,0.478138096075901,0.478138096075901, +0.590977239483198,0.590977239483198,0.590917569790559,0.590736852462408,0.590472488264751,0.590169262825338,0.589872678102668,0.589629543033952,0.58948803034857,0.58948803034857, +0.718138543835392,0.718138543835392,0.718030052003475,0.717748709401947,0.71736335604332,0.716934589024795,0.716514279477463,0.716157447576936,0.715935126271275,0.715935126271275, +0.856195518043309,0.856195518043309,0.856057245109192,0.855618263554599,0.855067888824459,0.854480319220973,0.853899533441057,0.853373392127967,0.852991940018656,0.852991940018656, + +00:53:40, +0.241338311074055,0.241338311074055,0.24139542096811,0.241402898513511,0.241372282760854,0.241318800063136,0.241259148382895,0.241209007151416,0.241180586608164,0.241180586608164, +0.241338311074055,0.241338311074055,0.24139542096811,0.241402898513511,0.241372282760854,0.241318800063136,0.241259148382895,0.241209007151416,0.241180586608164,0.241180586608164, +0.265870050559509,0.265870050559509,0.265920647454593,0.265917853164677,0.265874427872539,0.265807251811211,0.265734896346909,0.265674911382645,0.265641095546395,0.265641095546395, +0.314478871885374,0.314478871885374,0.314515756141795,0.314491462446237,0.314421269797515,0.314325465374351,0.31422646292955,0.314145709180144,0.314100437905015,0.314100437905015, +0.386159614665667,0.386159614665667,0.38617435760852,0.386115444515667,0.386002200547871,0.385860303749531,0.385718113776118,0.385603273899782,0.385538926246987,0.385538926246987, +0.479203638077962,0.479203638077962,0.47918639769367,0.479076847991098,0.478900649012824,0.478691325232532,0.478485241313545,0.478318723360216,0.47822453021201,0.47822453021201, +0.591047157729665,0.591047157729665,0.590987497928207,0.590806817105167,0.590542507941389,0.590239346319555,0.589942824184007,0.589699740283132,0.589558257208313,0.589558257208313, +0.718187984765974,0.718187984765974,0.718079511903803,0.717798223838501,0.717412946945644,0.716984265880141,0.716564040762793,0.716207280211397,0.715985002943747,0.715985002943747, +0.856221165898199,0.856221165898199,0.856082918653616,0.855644018973241,0.855093748030231,0.854506289925538,0.853925614423601,0.853399572504467,0.853018191715671,0.853018191715671, + +00:53:41, +0.241451248619724,0.241451248619724,0.241508357053148,0.241515840418342,0.241485235804648,0.241431766972978,0.24137212903832,0.241321998751192,0.241293584256665,0.241293584256665, +0.241451248619724,0.241451248619724,0.241508357053148,0.241515840418342,0.241485235804648,0.241431766972978,0.24137212903832,0.241321998751192,0.241293584256665,0.241293584256665, +0.265980857964605,0.265980857964605,0.2660314531128,0.266028665868086,0.265985254055175,0.265918094787083,0.265845755994716,0.265785784328811,0.26575197585382,0.26575197585382, +0.31458498412558,0.31458498412558,0.314621866648715,0.314597582886797,0.314527408709788,0.314431627151833,0.314332647391369,0.314251911770806,0.314206650556468,0.314206650556468, +0.386257758408207,0.386257758408207,0.386272500921135,0.386213603060517,0.386100385741843,0.385958521397171,0.385816363497241,0.385701549311948,0.38563721598245,0.38563721598245, +0.47928983830873,0.47928983830873,0.479272601148452,0.479163075246534,0.47898691489669,0.478777637097814,0.478571598401914,0.478405116878712,0.47831094426046,0.47831094426046, +0.591117056860873,0.591117056860873,0.591057406950656,0.590876762620057,0.590612508468452,0.590309410637887,0.590012951063153,0.589769918308466,0.589628464831692,0.589628464831692, +0.718237410583961,0.718237410583961,0.718128956687495,0.717847723138468,0.717462522681152,0.717033927533589,0.716613786811339,0.716257097579632,0.716034864332035,0.716034864332035, +0.856246805389698,0.856246805389698,0.856108583825895,0.855669765990313,0.855119598795884,0.854532252147804,0.853951686881915,0.853425744319244,0.853044434824625,0.853044434824625, + +00:53:42, +0.241564176364809,0.241564176364809,0.241621283331428,0.241628772513007,0.2415981790371,0.24154472407183,0.241485099883876,0.24143498054229,0.241406572097221,0.241406572097221, +0.241564176364809,0.241564176364809,0.241621283331428,0.241628772513007,0.2415981790371,0.24154472407183,0.241485099883876,0.24143498054229,0.241406572097221,0.241406572097221, +0.266091653564455,0.266091653564455,0.266142246961334,0.26613946675861,0.266096068422753,0.266028925946534,0.265956603825315,0.26589664545735,0.265862844343438,0.265862844343438, +0.31469108130723,0.31469108130723,0.314727962095397,0.314703688263805,0.314633532554069,0.314537773856418,0.314438816775657,0.314358099280306,0.314312848124756,0.314312848124756, +0.386355883881856,0.386355883881856,0.38637062596566,0.386311743332788,0.386198552654872,0.386056720753481,0.385914594916655,0.385799806414022,0.385735487403121,0.385735487403121, +0.47937601854212,0.47937601854212,0.479358784607542,0.479249282498794,0.479073160763208,0.478863928928055,0.478657935437454,0.478491490329884,0.478397338233377,0.478397338233377, +0.591186936891094,0.591186936891094,0.591127296872173,0.590946689021353,0.59068248986023,0.590379455794645,0.590083058754439,0.589840077124305,0.589698653233066,0.589698653233066, +0.718286821301926,0.718286821301926,0.718178386367127,0.717897207314439,0.71751208326246,0.717083573997786,0.716663517635779,0.716306899694346,0.716084710448858,0.716084710448858, +0.856272436525146,0.856272436525146,0.856134240633379,0.855695504613187,0.855145441128827,0.854558205895216,0.853977750823483,0.853451907579819,0.853070669353064,0.853070669353064, + +00:53:43, +0.24167709430009,0.24167709430009,0.241734199793736,0.241741694788292,0.241711112448986,0.241657671350458,0.241598060910317,0.241547952515453,0.241519550120571,0.241519550120571, +0.24167709430009,0.24167709430009,0.241734199793736,0.241741694788292,0.241711112448986,0.241657671350458,0.241598060910317,0.241547952515453,0.241519550120571,0.241519550120571, +0.266202437353331,0.266202437353331,0.266253028994472,0.266250255830521,0.266206870969537,0.266139745283821,0.266067439832954,0.266007494762503,0.265973701009483,0.265973701009483, +0.314797163430544,0.314797163430544,0.314834042482061,0.314809778577478,0.314739641330568,0.314643905488311,0.314544971082616,0.314464271708844,0.314419030610076,0.314419030610076, +0.386453991093448,0.386453991093448,0.386468732748927,0.386409865339307,0.386296701293785,0.386154901825292,0.386012808041192,0.385898045212837,0.385833740515834,0.385833740515834, +0.479462178790207,0.479462178790207,0.479444948083008,0.479335469759949,0.479159386624456,0.478950200735341,0.47874425243226,0.47857784372584,0.478483712142873,0.478483712142873, +0.591256797834581,0.591256797834581,0.591197167707007,0.591016596323311,0.590752452130994,0.59044948180412,0.590153147272179,0.589910216744978,0.589768822426778,0.589768822426778, +0.718336216932426,0.718336216932426,0.718227800955256,0.717946676378986,0.717561628702166,0.717133205285362,0.716713233248775,0.716356686568226,0.716134541306922,0.716134541306922, +0.856298059311874,0.856298059311874,0.856159889083405,0.855721234849229,0.855171275036459,0.854584151175212,0.854003806255783,0.853478062293702,0.853096895308521,0.853096895308521, + +00:53:44, +0.241790002416361,0.241790002416361,0.241847106430874,0.241854607234996,0.2418240360311,0.241770608799642,0.241711012108411,0.241660914661441,0.241632518317467,0.241632518317467, +0.241790002416361,0.241790002416361,0.241847106430874,0.241854607234996,0.2418240360311,0.241770608799642,0.241711012108411,0.241660914661441,0.241632518317467,0.241632518317467, +0.266313209325515,0.266313209325515,0.2663637992065,0.266361033078105,0.266317661689806,0.266250552793214,0.26617826401189,0.266118332238519,0.266084545846203,0.266084545846203, +0.314903230495745,0.314903230495745,0.314940107808931,0.314915853828038,0.314845735039503,0.314750022047724,0.314651110312451,0.314570429056619,0.314525198012626,0.314525198012626, +0.386552080049812,0.386552080049812,0.38656682127776,0.386507969086898,0.386394831665407,0.386253064619426,0.386111002877675,0.38599626571522,0.385931975327416,0.385931975327416, +0.479548319065052,0.479548319065052,0.479531091586905,0.479421637042055,0.479245592492496,0.479036452531745,0.478830549398417,0.478664177078671,0.478570066001047,0.478570066001047, +0.591326639705568,0.591326639705568,0.591267019469389,0.591086484540169,0.590822395294998,0.590519488680588,0.590223216630667,0.5899803371848,0.589838972427151,0.589838972427151, +0.718385597488003,0.718385597488003,0.718277200464424,0.717996130344667,0.717611159012854,0.717182821408932,0.716762933662972,0.716406458213945,0.716184356918916,0.716184356918916, +0.856323673757205,0.856323673757205,0.856185529183301,0.855746956705793,0.855197100526169,0.854610087995222,0.85402985318628,0.853504208468395,0.853123112698523,0.853123112698523, + +00:53:45, +0.241902900704434,0.241902900704434,0.241960003233661,0.241967509843937,0.241936949774249,0.241883536410182,0.241823953468945,0.241773866971028,0.241745476678681,0.241745476678681, +0.241902900704434,0.241902900704434,0.241960003233661,0.241967509843937,0.241936949774249,0.241883536410182,0.241823953468945,0.241773866971028,0.241745476678681,0.241745476678681, +0.266423969475302,0.266423969475302,0.266474557591717,0.266471798495657,0.266428440577849,0.266361348468992,0.266289076356394,0.266229157879661,0.266195378847854,0.266195378847854, +0.315009282503059,0.315009282503059,0.315046158076233,0.315021914015706,0.314951813681092,0.314856123534869,0.31475723446537,0.314676571323836,0.314631350332608,0.314631350332608, +0.386650150757768,0.386650150757768,0.386664891558976,0.386606054582376,0.386492943776551,0.3863512091427,0.386209179432925,0.38609446792799,0.386030191844688,0.386030191844688, +0.479634439378701,0.479634439378701,0.479617215131274,0.479507784357155,0.479331778379377,0.479122684329326,0.478916826347993,0.478750490400457,0.478656399819981,0.478656399819981, +0.591396462518273,0.591396462518273,0.591336852173531,0.591156353686146,0.590892319366479,0.590589476438304,0.590293266844181,0.590050438458066,0.589909103248492,0.589909103248492, +0.71843496298118,0.71843496298118,0.718326584907155,0.718045569224024,0.717660674207092,0.717232422381094,0.716812618891,0.716456214644159,0.716234157297511,0.716234157297511, +0.85634927986845,0.85634927986845,0.856211160940388,0.855772670190224,0.855222917605336,0.854636016362661,0.854055891622431,0.853530346111388,0.853149321530584,0.853149321530584, + +00:53:46, +0.242015789155137,0.242015789155137,0.242072890192931,0.242080402605947,0.24204985366926,0.241996454172889,0.24193688498272,0.241886809435008,0.241858425194999,0.241858425194999, +0.242015789155137,0.242015789155137,0.242072890192931,0.242080402605947,0.24204985366926,0.241996454172889,0.24193688498272,0.241886809435008,0.241858425194999,0.241858425194999, +0.266534717796995,0.266534717796995,0.26658530414443,0.266582552077485,0.266539207627966,0.266472132305444,0.266399876860747,0.266339971680202,0.266306200008704,0.266306200008704, +0.315115319452716,0.315115319452716,0.315152193284195,0.315127959140711,0.315057877255558,0.314962209949965,0.314863343541585,0.314782698510702,0.314737487570226,0.314737487570226, +0.386748203224133,0.386748203224133,0.386762943599387,0.386704121832552,0.386591037634029,0.386449335401925,0.386307337713751,0.386192651857962,0.386128390074465,0.386128390074465, +0.479720539743188,0.479720539743188,0.479703318728141,0.479593911717276,0.479417944297134,0.479208896140129,0.479003083293046,0.478836783703261,0.478742713611747,0.478742713611747, +0.591466266286897,0.591466266286897,0.591406665833629,0.591226203775447,0.590962224359655,0.590659445091509,0.590363297926983,0.590120520579055,0.589979214905087,0.589979214905087, +0.718484313424469,0.718484313424469,0.71837595429596,0.71809499302958,0.717710174297429,0.717282008214429,0.71686228894547,0.716505955871507,0.716283942455363,0.716283942455363, +0.856374877652911,0.856374877652911,0.856236784361973,0.855798375309857,0.855248726281331,0.854661936284939,0.854081921571683,0.853556475230162,0.853175521812209,0.853175521812209, + +00:53:47, +0.242128667759314,0.242128667759314,0.242185767299534,0.242193285511875,0.242162747706973,0.242109362078594,0.242049806640554,0.241999742044188,0.241971363857223,0.241971363857223, +0.242128667759314,0.242128667759314,0.242185767299534,0.242193285511875,0.242162747706973,0.242109362078594,0.242049806640554,0.241999742044188,0.241971363857223,0.241971363857223, +0.266645454284913,0.266645454284913,0.266696038858962,0.266693293817907,0.26664996283447,0.266582904296875,0.266510665519241,0.266450773634425,0.266417009323035,0.266417009323035, +0.315221341344947,0.315221341344947,0.315258213433049,0.31523398920328,0.315163925763125,0.315068281293229,0.31496943754131,0.314888810617428,0.31484360972569,0.31484360972569, +0.386846237455716,0.386846237455716,0.386860977405799,0.386802170844228,0.386689113244644,0.386547443403905,0.386405477726962,0.386290817511943,0.386226570023556,0.386226570023556, +0.47980662017053,0.47980662017053,0.479789402389521,0.479680019134433,0.479504090257788,0.479295087976185,0.479089320245616,0.478923056999135,0.478829007388398,0.478829007388398, +0.591536051025621,0.591536051025621,0.59147646046386,0.591296034822255,0.591032110288727,0.590729394654422,0.590433309893313,0.590190583562024,0.590049307411209,0.590049307411209, +0.71853364883036,0.71853364883036,0.71842530864333,0.718144401773846,0.717759659296402,0.717331578921502,0.716911943838981,0.716555681908613,0.716333712405113,0.716333712405113, +0.856400467117881,0.856400467117881,0.856262399455358,0.855824072072018,0.855274526561514,0.854687847769455,0.854107943041473,0.853582595832189,0.853201713550895,0.853201713550895, + +00:53:48, +0.242241536507822,0.242241536507822,0.242298634544336,0.242306158552585,0.242275631878244,0.242222260118143,0.24216271843328,0.242112664789392,0.242084292656171,0.242084292656171, +0.242241536507822,0.242241536507822,0.242298634544336,0.242306158552585,0.242275631878244,0.242222260118143,0.24216271843328,0.242112664789392,0.242084292656171,0.242084292656171, +0.266756178933382,0.266756178933382,0.266806761729644,0.266804023711253,0.266760706191681,0.266693664437597,0.26662144232618,0.266561563736628,0.266527806785137,0.266527806785137, +0.315327348179987,0.315327348179987,0.315364218523032,0.315340004203648,0.315269959204022,0.315174337564885,0.315075516464762,0.314994907644225,0.314949716799208,0.314949716799208, +0.38694425345932,0.38694425345932,0.386958992985009,0.386900201624201,0.386787170615191,0.386645533155438,0.386503599479356,0.386388964896733,0.386324731698761,0.386324731698761, +0.479892680672732,0.479892680672732,0.479875466127411,0.479766106620626,0.479590216273346,0.47938125984951,0.479175537217729,0.479009310300114,0.478915281161978,0.478915281161978, +0.59160581674861,0.59160581674861,0.591546236078385,0.591365846840738,0.591101977167877,0.590799325141248,0.590503302757396,0.590260627421218,0.590119380781108,0.590119380781108, +0.71858296921133,0.71858296921133,0.718474647961744,0.718193795469314,0.717809129216527,0.717381134514864,0.716961583584113,0.716605392768083,0.716383467159382,0.716383467159382, +0.856426048270644,0.856426048270644,0.856288006227832,0.855849760484024,0.855300318453236,0.854713750823598,0.854133956039228,0.85360870792493,0.853227896754127,0.853227896754127, + +00:53:49, +0.242354395391539,0.242354395391539,0.242411491918219,0.242419021718958,0.242388506173947,0.242335148282396,0.242275620351749,0.24222557766146,0.242197211582679,0.242197211582679, +0.242354395391539,0.242354395391539,0.242411491918219,0.242419021718958,0.242388506173947,0.242335148282396,0.242275620351749,0.24222557766146,0.242197211582679,0.242197211582679, +0.266866891736742,0.266866891736742,0.266917472750818,0.266914741751863,0.266871437693936,0.266804412721934,0.266732207275879,0.266672341981116,0.266638592389312,0.266638592389312, +0.315433339958075,0.315433339958075,0.315470208554381,0.315446004142049,0.315375977578479,0.315280378765159,0.315181580312161,0.315100989591311,0.315055808790996,0.315055808790996, +0.38704225124174,0.38704225124174,0.387056990343812,0.386998214179263,0.386885209752463,0.386743604663315,0.386601702977726,0.386487094019128,0.386422875106878,0.386422875106878, +0.479978721261785,0.479978721261785,0.479961509953795,0.47985217418784,0.479676322355801,0.479467411772107,0.479261734221401,0.479095543618222,0.479001534944514,0.479001534944514, +0.59167556347001,0.59167556347001,0.591615992691345,0.591435639845045,0.591171825011272,0.590869236566173,0.590573276533439,0.59033065217086,0.59018943502902,0.59018943502902, +0.71863227457984,0.71863227457984,0.718523972263662,0.71824317412846,0.717858584070308,0.717430675007048,0.717011208193429,0.716655088462509,0.716433206730779,0.716433206730779, +0.856451621118473,0.856451621118473,0.856313604686676,0.85587544055318,0.855326101963838,0.854739645454746,0.854159960572366,0.853634811515839,0.853254071429381,0.853254071429381, + +00:53:50, +0.242467244401355,0.242467244401355,0.242524339412081,0.24253187500189,0.242501370584971,0.242448026562232,0.242388512386825,0.242338480651247,0.242310120627596,0.242310120627596, +0.242467244401355,0.242467244401355,0.242524339412081,0.24253187500189,0.242501370584971,0.242448026562232,0.242388512386825,0.242338480651247,0.242310120627596,0.242310120627596, +0.266977592689341,0.266977592689341,0.26702817191684,0.267025447934089,0.266982157335578,0.266915149144223,0.266842960362663,0.266783108362209,0.266749366129876,0.266749366129876, +0.315539316679451,0.315539316679451,0.315576183527337,0.315551989018723,0.315481980886732,0.315386404894279,0.315287629083732,0.315207056458905,0.315161885701271,0.315161885701271, +0.387140230809768,0.387140230809768,0.387154969488992,0.387096208516197,0.386983230663244,0.386841657934323,0.386699788228859,0.386585204885917,0.386521000254696,0.386521000254696, +0.480064741949666,0.480064741949666,0.480047533880646,0.479938221848048,0.479762408517131,0.479553543755965,0.47934791126863,0.479181756965465,0.479087768748019,0.479087768748019, +0.59174529120395,0.59174529120395,0.591685730316866,0.591505413849309,0.591241653833059,0.590939128943363,0.590643231235631,0.590400657825157,0.590259470169162,0.590259470169162, +0.718681564948334,0.718681564948334,0.718573281561529,0.718292537763746,0.717908023870232,0.71748020041057,0.717060817679478,0.716704769004465,0.716482931131894,0.716482931131894, +0.856477185668632,0.856477185668632,0.856339194839161,0.855901112286784,0.855351877100651,0.854765531670271,0.854185956648295,0.853660906612356,0.853280237584123,0.853280237584123, + +00:53:51, +0.242580083528177,0.242580083528177,0.242637177016836,0.242644718392295,0.24261422510222,0.242560894948544,0.242501394529391,0.242451373749627,0.24242301978179,0.24242301978179, +0.242580083528177,0.242580083528177,0.242637177016836,0.242644718392295,0.24261422510222,0.242560894948544,0.242501394529391,0.242451373749627,0.24242301978179,0.24242301978179, +0.267088281785542,0.267088281785542,0.267138859222073,0.267136142252295,0.267092865110965,0.267025873698811,0.26695370158087,0.266893862874235,0.266860128001152,0.266860128001152, +0.31564527834436,0.31564527834436,0.315682143442144,0.315657958833909,0.315587969129015,0.315492415952477,0.3153936627797,0.315313108247229,0.315267947530252,0.315267947530252, +0.387238192170186,0.387238192170186,0.38725293042733,0.387194184641783,0.38708123335431,0.386939692975241,0.386797855239537,0.386683297503882,0.386619107148998,0.386619107148998, +0.480150742748337,0.480150742748337,0.480133537919919,0.480024249613209,0.479848474769302,0.479639655813059,0.479434068371401,0.47926795035384,0.479173982584494,0.479173982584494, +0.591814999964542,0.591814999964542,0.591755448969053,0.591575168867644,0.591311463647368,0.59100900228697,0.590713166878144,0.590470644398298,0.590329486215733,0.590329486215733, +0.718730840329242,0.718730840329242,0.718622575867773,0.718341886387615,0.717957448628768,0.717529710737932,0.717110412054793,0.716754434406509,0.716532640375302,0.716532640375302, +0.856502741928377,0.856502741928377,0.85636477669255,0.855926775692123,0.855377643870998,0.854791409477531,0.854211944274413,0.853686993221915,0.853306395225811,0.853306395225811, + +00:53:52, +0.242692912762929,0.242692912762929,0.242750004723414,0.242757551881099,0.242727069716614,0.242673753432242,0.242614266770344,0.242564256947486,0.242535909036142,0.242535909036142, +0.242692912762929,0.242692912762929,0.242750004723414,0.242757551881099,0.242727069716614,0.242673753432242,0.242614266770344,0.242564256947486,0.242535909036142,0.242535909036142, +0.267198959019716,0.267198959019716,0.267249534660894,0.267246824700855,0.267203561014464,0.267136586380055,0.267064430924849,0.267004605511535,0.266970877997477,0.266970877997477, +0.315751224953048,0.315751224953048,0.315788088299049,0.315763913587854,0.315693942305571,0.315598411939988,0.315499681400295,0.315419144956509,0.315373994278163,0.315373994278163, +0.387336135329773,0.387336135329773,0.387350873165599,0.387292142562792,0.387179217832436,0.38703770979284,0.386895904016534,0.386781371879798,0.386717195796561,0.386717195796561, +0.480236723669746,0.480236723669746,0.480219522083557,0.480110257495265,0.479934521124263,0.479725747955349,0.479520205541686,0.479354123795326,0.479260176465923,0.479260176465923, +0.591884689765879,0.591884689765879,0.591825148661997,0.591644904914145,0.59138125446831,0.591078856611126,0.59078308347513,0.590540611904454,0.590399483182915,0.590399483182915, +0.718780100734974,0.718780100734974,0.718671855194809,0.718391220012497,0.71800685835837,0.717579206001618,0.717159991331888,0.716804084681184,0.716582334473561,0.716582334473561, +0.856528289904953,0.856528289904953,0.856390350254094,0.855952430776476,0.855403402282191,0.854817278883877,0.854237923458109,0.853713071351939,0.85333254436189,0.85333254436189, + +00:53:53, +0.242805732096548,0.242805732096548,0.242862822522759,0.242870375459247,0.242839904419091,0.242786602004249,0.242727129100598,0.242677130235728,0.242648788381551,0.242648788381551, +0.242805732096548,0.242805732096548,0.242862822522759,0.242870375459247,0.242839904419091,0.242786602004249,0.242727129100598,0.242677130235728,0.242648788381551,0.242648788381551, +0.267309624386246,0.267309624386246,0.267360198227691,0.267357495274154,0.267314245040453,0.267247287182326,0.26717514838896,0.267115336268461,0.267081616113199,0.267081616113199, +0.315857156505767,0.315857156505767,0.315894018098303,0.315869853280805,0.315799900416642,0.315704392857049,0.31560568494575,0.315525166586973,0.31548002594523,0.31548002594523, +0.387434060295299,0.387434060295299,0.387448797710567,0.387390082285988,0.387277184104385,0.387135708393889,0.386993934566617,0.386879428020436,0.386815266204156,0.386815266204156, +0.480322684725829,0.480322684725829,0.48030548638349,0.480196245506148,0.480020547593953,0.479811820194782,0.479606322791442,0.47944027730189,0.479346350404279,0.479346350404279, +0.591954360622037,0.591954360622037,0.591894829409769,0.591714622002893,0.591451026309982,0.591148691929946,0.590852981040727,0.590610560357779,0.590469461084872,0.590469461084872, +0.718829346177928,0.718829346177928,0.718721119555032,0.718440538650804,0.718056253071478,0.717628686214098,0.717209555523265,0.716853719841017,0.716632013439215,0.716632013439215, +0.856553829605595,0.856553829605595,0.856415915531036,0.85597807754711,0.855429152341533,0.854843139896652,0.854263894206763,0.853739141009839,0.853358684999797,0.853358684999797, + +00:53:54, +0.242918541519991,0.242918541519991,0.242975630405834,0.242983189117699,0.242952729200602,0.242899440655509,0.242839981511082,0.242789993605274,0.242761657808932,0.242761657808932, +0.242918541519991,0.242918541519991,0.242975630405834,0.242983189117699,0.242952729200602,0.242899440655509,0.242839981511082,0.242789993605274,0.242761657808932,0.242761657808932, +0.267420277879528,0.267420277879528,0.267470849916862,0.267468153966589,0.267424917183322,0.267357976100003,0.267285853967572,0.267226055139377,0.267192342342676,0.267192342342676, +0.315963073002767,0.315963073002767,0.315999932840158,0.315975777913012,0.315905843462474,0.315810358703901,0.3157116734163,0.315631173138853,0.315586042531682,0.315586042531682, +0.387531967073531,0.387531967073531,0.387546704068995,0.387488003818133,0.387375132176917,0.387233688785146,0.38709194689655,0.386977465932559,0.386913318378548,0.386913318378548, +0.480408625928506,0.480408625928506,0.480391430831631,0.480282213657774,0.480106554190295,0.479897872543291,0.479692420132613,0.479526410885484,0.47943250441152,0.47943250441152, +0.592024012547076,0.592024012547076,0.591964491226423,0.591784320147948,0.59152077918646,0.591218508257528,0.590922859589052,0.590680489772409,0.59053941993575,0.59053941993575, +0.718878576670485,0.718878576670485,0.718770368960824,0.718489842314932,0.718105632780512,0.717678151387824,0.717259104641405,0.716903339898516,0.716681677284788,0.716681677284788, +0.856579361037531,0.856579361037531,0.85644147253061,0.856003716011285,0.855454894056317,0.854868992523184,0.854289856527742,0.853765202203021,0.853384817146961,0.853384817146961, + +00:53:55, +0.243031341024228,0.243031341024228,0.243088428363616,0.243095992847431,0.243065544052116,0.243012269376977,0.242952823992741,0.242902847047059,0.242874517309214,0.242874517309214, +0.243031341024228,0.243031341024228,0.243088428363616,0.243095992847431,0.243065544052116,0.243012269376977,0.242952823992741,0.242902847047059,0.242874517309214,0.242874517309214, +0.267530919493967,0.267530919493967,0.267581489722817,0.267578800772568,0.267535577437473,0.267468653127479,0.267396547655069,0.267336762118656,0.267303056680279,0.267303056680279, +0.316068974444306,0.316068974444306,0.31610583252487,0.316081687484728,0.316011771443316,0.315916309480788,0.315817646812184,0.315737164612382,0.315692044037753,0.315692044037753, +0.387629855671225,0.387629855671225,0.387644592247638,0.387585907165979,0.387473062056785,0.387331650973367,0.387189941013087,0.387075485622925,0.387011352326495,0.387011352326495, +0.480494547289684,0.480494547289684,0.480477355439883,0.480368161962045,0.480192540925197,0.479983905012796,0.479778497577129,0.479612524558048,0.479518638499589,0.479518638499589, +0.592093645555035,0.592093645555035,0.592034134125996,0.591853999363356,0.591590513111804,0.591288305607952,0.590992719134206,0.590750400162462,0.590609359749678,0.590609359749678, +0.718927792225008,0.718927792225008,0.71881960342455,0.718539131017262,0.71815499749788,0.717727601535233,0.717308638698778,0.716952944866176,0.716731326022791,0.716731326022791, +0.856604884207975,0.856604884207975,0.85646702126004,0.856029346176251,0.855480627433826,0.854894836770797,0.854315810428407,0.853791254938877,0.853410940810799,0.853410940810799, + +00:53:56, +0.243144130600245,0.243144130600245,0.243201216387098,0.243208786639434,0.243178348964616,0.243125088159627,0.243065656536536,0.243015690552033,0.242987366873343,0.242987366873343, +0.243144130600245,0.243144130600245,0.243201216387098,0.243208786639434,0.243178348964616,0.243125088159627,0.243065656536536,0.243015690552033,0.242987366873343,0.242987366873343, +0.267641549223979,0.267641549223979,0.267692117639977,0.267689435686508,0.267646225797317,0.267579318259155,0.267507229445844,0.267447457200683,0.267413759120388,0.267413759120388, +0.316174860830643,0.316174860830643,0.316211717152698,0.31618758199621,0.316117684359421,0.316022245187957,0.315923605133643,0.3158431410078,0.315798030463676,0.315798030463676, +0.387727726095135,0.387727726095135,0.387742462253243,0.387683792336272,0.387570973750737,0.387429594965299,0.387287916922978,0.387173487098284,0.38710936805475,0.38710936805475, +0.480580448821256,0.480580448821256,0.480563260220132,0.48045409043085,0.480278507810555,0.480069917615201,0.479864555136906,0.479698618331506,0.479604752680416,0.479604752680416, +0.59216325965994,0.59216325965994,0.592103758122508,0.591923659663141,0.591660228100055,0.591358083995279,0.591062559690273,0.590820291542039,0.590679280540767,0.590679280540767, +0.718976992853846,0.718976992853846,0.718868822958558,0.71858840477016,0.718204347235972,0.717777036668745,0.717358157707835,0.717002534756476,0.716780959665719,0.716780959665719, +0.856630399124138,0.856630399124138,0.856492561726539,0.856054968049247,0.855506352481336,0.854920672646803,0.854341755916109,0.853817299224792,0.853437055998718,0.853437055998718, + +00:53:57, +0.243256910239043,0.243256910239043,0.243313994467288,0.243321570484715,0.243291143929102,0.243237896994447,0.243178479133444,0.243128524111166,0.243100206492283,0.243100206492283, +0.243256910239043,0.243256910239043,0.243313994467288,0.243321570484715,0.243291143929102,0.243237896994447,0.243178479133444,0.243128524111166,0.243100206492283,0.243100206492283, +0.267752167063992,0.267752167063992,0.267802733662774,0.26780005870284,0.267756862257278,0.267689971489447,0.2676178993343,0.267558140379856,0.267524449657395,0.267524449657395, +0.316280732162039,0.316280732162039,0.316317586723905,0.316293461447718,0.316223582211043,0.316128165825658,0.316029548380922,0.315949102325345,0.31590400180969,0.31590400180969, +0.387825578352007,0.387825578352007,0.387840314092554,0.387781659335754,0.387668867265512,0.387527520767684,0.387385874632967,0.387271470365383,0.387207365570057,0.387207365570057, +0.480666330535101,0.480666330535101,0.480649145184252,0.480539999076064,0.48036445485825,0.480155910362397,0.479950592823844,0.479784692217768,0.479690846965918,0.479690846965918, +0.592232854875795,0.592232854875795,0.592173363229959,0.591993301061314,0.59172992416524,0.591427843433556,0.591132381271318,0.590890163925224,0.59074918232311,0.59074918232311, +0.719026178569332,0.719026178569332,0.718918027575182,0.718637663585973,0.718253682007162,0.717826456800767,0.717407661681011,0.717052109581876,0.716830578226049,0.716830578226049, +0.856655905793215,0.856655905793215,0.856518093937313,0.856080581637504,0.855532069206111,0.854946500158504,0.854367692998187,0.85384333506814,0.853463162718117,0.853463162718117, + +00:53:58, +0.243369679931641,0.243369679931641,0.243426762595211,0.243434344374298,0.24340392893659,0.243350695872441,0.243291291774458,0.243241347715439,0.243213036157009,0.243213036157009, +0.243369679931641,0.243369679931641,0.243426762595211,0.243434344374298,0.24340392893659,0.243350695872441,0.243291291774458,0.243241347715439,0.243213036157009,0.243213036157009, +0.267862773008445,0.267862773008445,0.26791333778565,0.267910669816005,0.267867486811789,0.267800612812778,0.267728557314854,0.267668811650583,0.267635128285704,0.267635128285704, +0.316386588438758,0.316386588438758,0.316423441238754,0.316399325839513,0.31632946499844,0.316234071394142,0.316135476554269,0.316055048565262,0.316009958076037,0.316009958076037, +0.38792341244858,0.38792341244858,0.387938147772307,0.387879508171158,0.387766742607845,0.387625428387257,0.38748381414979,0.387369435430958,0.387305344879158,0.387305344879158, +0.480752192443084,0.480752192443084,0.480735010344102,0.480625887909547,0.48045038208015,0.480241883266263,0.480036610649834,0.479870746228732,0.479776921367997,0.479776921367997, +0.592302431216589,0.592302431216589,0.592242949462333,0.592062923571865,0.591799601321364,0.591497583936809,0.59120218389139,0.590960017326082,0.590819065110784,0.590819065110784, +0.719075349383784,0.719075349383784,0.71896721728674,0.718686907477035,0.718303001823808,0.717875861943686,0.717457150630727,0.717101669354823,0.716880181716244,0.716880181716244, +0.856681404222397,0.856681404222397,0.856543617899558,0.856106186948243,0.855557777615407,0.854972319313194,0.854393621681973,0.853869362476287,0.853489260976384,0.853489260976384, + +00:53:59, +0.243482439669073,0.243482439669073,0.243539520761907,0.243547108299221,0.243516703978111,0.243463484784631,0.243404094450586,0.243354161355852,0.243325855858517,0.243325855858517, +0.243482439669073,0.243482439669073,0.243539520761907,0.243547108299221,0.243516703978111,0.243463484784631,0.243404094450586,0.243354161355852,0.243325855858517,0.243325855858517, +0.267973367051787,0.267973367051787,0.268023930003059,0.268021269020454,0.267978099455296,0.267911242223586,0.267839203381931,0.267779471007281,0.26774579499973,0.26774579499973, +0.316492429661069,0.316492429661069,0.316529280697513,0.316505175171862,0.316435332721873,0.316339961893666,0.316241389653933,0.316160979727798,0.316115899262961,0.316115899262961, +0.388021228391588,0.388021228391588,0.38803596329923,0.387977338849212,0.387864599784463,0.387723317830747,0.387581735480179,0.387467382301743,0.387403305988784,0.387403305988784, +0.480838034557058,0.480838034557058,0.480820855711529,0.480711756943147,0.480536289488109,0.480327836338662,0.480122608626748,0.479956780376282,0.479862975898541,0.479862975898541, +0.592371988696293,0.592371988696293,0.592312516833599,0.592132527208768,0.591869259582417,0.591567305519048,0.591271967564519,0.591029851758661,0.590888928917847,0.590888928917847, +0.719124505309501,0.719124505309501,0.719016392105532,0.718736136455662,0.718352306698254,0.717925252109876,0.717506624569385,0.717151214087747,0.716929770148749,0.716929770148749, +0.856706894418862,0.856706894418862,0.85656913362046,0.856131783988675,0.855583477716468,0.854998130118155,0.854419541974789,0.853895381456587,0.8535153507809,0.8535153507809, + +00:54:00, +0.243595189442388,0.243595189442388,0.243652268958432,0.243659862250539,0.243629469044711,0.24357626372205,0.243516887152853,0.243466965023419,0.243438665587815,0.243438665587815, +0.243595189442388,0.243595189442388,0.243652268958432,0.243659862250539,0.243629469044711,0.24357626372205,0.243516887152853,0.243466965023419,0.243438665587815,0.243438665587815, +0.26808394918848,0.26808394918848,0.268134510309466,0.268131856310651,0.268088700182255,0.268021859716316,0.26794983752997,0.26789011844438,0.267856449793897,0.267856449793897, +0.316598255829243,0.316598255829243,0.316635105100454,0.316611009445031,0.316541185381606,0.316445837324489,0.316347287680169,0.316266895813201,0.31622182537071,0.31622182537071, +0.388119026187759,0.388119026187759,0.388133760680048,0.388075151376639,0.38796243880209,0.387821189104878,0.387679638630858,0.387565310984465,0.387501248905665,0.387501248905665, +0.480923856888858,0.480923856888858,0.480906681298362,0.480797606188696,0.480622177093967,0.480413769591444,0.480208586766447,0.480042794672287,0.479949010569426,0.479949010569426, +0.592441527328861,0.592441527328861,0.592382065357705,0.592202111985981,0.591938898962372,0.591637008194266,0.591341732304718,0.591099667236993,0.59095877375834,0.59095877375834, +0.71917364635877,0.71917364635877,0.719065552043844,0.718785350534157,0.718401596642825,0.717974627311693,0.717556083509374,0.717200743793062,0.716979343535994,0.716979343535994, +0.85673237638978,0.85673237638978,0.856594641107195,0.856157372766004,0.855609169516532,0.855023932580663,0.854445453883945,0.853921392016387,0.853541432139032,0.853541432139032, + +00:54:01, +0.24370792924265,0.24370792924265,0.243765007175857,0.243772606219321,0.243742224127454,0.243689032675752,0.243629669872299,0.243579758709172,0.243551465335929,0.243551465335929, +0.24370792924265,0.24370792924265,0.243765007175857,0.243772606219321,0.243742224127454,0.243689032675752,0.243629669872299,0.243579758709172,0.243551465335929,0.243551465335929, +0.268194519412995,0.268194519412995,0.268245078699347,0.268242431681069,0.268199288987134,0.268132465285428,0.268060459753418,0.268000753956322,0.267967092662643,0.267967092662643, +0.316704066943552,0.316704066943552,0.31674091444785,0.316716828659293,0.316647022977907,0.316551697686873,0.316453170633234,0.316372796821725,0.316327736399534,0.316327736399534, +0.388216805843814,0.388216805843814,0.388231539921478,0.388172945760155,0.38806025966744,0.387919042216365,0.387777523608545,0.387663221485842,0.38759917363652,0.38759917363652, +0.48100965945031,0.48100965945031,0.480992487116422,0.480883435658015,0.48070804490955,0.480499683036444,0.480294545080778,0.480128789128601,0.480035025392512,0.480035025392512, +0.59251104712823,0.59251104712823,0.592451595048582,0.592271677917442,0.592008519475184,0.591706691976438,0.591411478125984,0.591169463775089,0.591028599646286,0.591028599646286, +0.719222772543859,0.719222772543859,0.719114697113948,0.718834549724804,0.718450871669833,0.71802398756148,0.717605527463066,0.717250258483166,0.717028901890393,0.717028901890393, +0.856757850142312,0.856757850142312,0.856620140366931,0.856182953287421,0.855634853022825,0.855049726707981,0.854471357416744,0.853947394163021,0.853567505058141,0.853567505058141, + +00:54:02, +0.24382065906094,0.24382065906094,0.24387773540527,0.243885340196655,0.243854969217418,0.243801791636804,0.243742442599979,0.243692542404155,0.243664255093899,0.243664255093899, +0.24382065906094,0.24382065906094,0.24387773540527,0.243885340196655,0.243854969217418,0.243801791636804,0.243742442599979,0.243692542404155,0.243664255093899,0.243664255093899, +0.268305077719814,0.268305077719814,0.268355635167189,0.268352995126193,0.26830986586441,0.26824305892539,0.268171070046736,0.268111377537559,0.268077723600416,0.268077723600416, +0.316809863004273,0.316809863004273,0.316846708739978,0.316822632814921,0.316752845511044,0.316657542981081,0.316559038513386,0.316478682753625,0.316433632349686,0.316433632349686, +0.388314567366467,0.388314567366467,0.388329301030231,0.388270722006467,0.388158062387222,0.388016877171921,0.387875390419952,0.38776111381259,0.387697080188065,0.387697080188065, +0.481095442253222,0.481095442253222,0.481078273177512,0.480969245362909,0.480793892946671,0.480585576685486,0.480380483581574,0.480214763757069,0.480121020379646,0.480121020379646, +0.592580548108318,0.592580548108318,0.592521105920147,0.592341225017074,0.59207812113479,0.591776356879521,0.591481205042294,0.591239241386947,0.591098406595691,0.591098406595691, +0.719271883877022,0.719271883877022,0.719163827328095,0.718883734039873,0.718500131791573,0.71807333287156,0.717654956442816,0.71729975817044,0.717078445224345,0.717078445224345, +0.856783315683609,0.856783315683609,0.856645631406826,0.856208525560111,0.855660528242565,0.855075512507365,0.854497252580479,0.853973387903818,0.853593569545578,0.853593569545578, + +00:54:03, +0.243933378888355,0.243933378888355,0.243990453637774,0.243998064173639,0.243967704305696,0.243914540596288,0.243855205326965,0.243805316099431,0.243777034852782,0.243777034852782, +0.243933378888355,0.243933378888355,0.243990453637774,0.243998064173639,0.243967704305696,0.243914540596288,0.243855205326965,0.243805316099431,0.243777034852782,0.243777034852782, +0.268415624103432,0.268415624103432,0.268466179707489,0.268463546640519,0.268420430808573,0.268353640630682,0.268281668404395,0.268221989182553,0.268188342601673,0.268188342601673, +0.316915644011687,0.316915644011687,0.316952487977116,0.316928421912193,0.316858652981291,0.316763373207381,0.316664891320889,0.31658455360916,0.316539513221422,0.316539513221422, +0.388412310762427,0.388412310762427,0.388427044013012,0.388368480122281,0.388255846968141,0.388114693978248,0.387973239071787,0.387858987971415,0.387794968567008,0.387794968567008, +0.481181205309393,0.481181205309393,0.481164039493423,0.48105503531517,0.480879721217128,0.480671450550377,0.480466402280654,0.480300718569516,0.480206995542661,0.480206995542661, +0.592650030283027,0.592650030283027,0.592590597986295,0.592410753298781,0.59214770395511,0.591846002917455,0.591550913067611,0.591309000086545,0.591168194620545,0.591168194620545, +0.719320980370498,0.719320980370498,0.719212942698526,0.718932903491619,0.718549377020323,0.718122663254245,0.717704370460964,0.717349242867252,0.717127973550232,0.717127973550232, +0.856808773020813,0.856808773020813,0.856671114234029,0.856234089591248,0.85568619518296,0.855101289986061,0.854523139382433,0.853999373246093,0.853619625608681,0.853619625608681, + +00:54:04, +0.244046088716006,0.244046088716006,0.244103161864486,0.244110778141393,0.244080429383398,0.244027279545303,0.243967958044344,0.243918079786078,0.24388980460365,0.24388980460365, +0.244046088716006,0.244046088716006,0.244103161864486,0.244110778141393,0.244080429383398,0.244027279545303,0.243967958044344,0.243918079786078,0.24388980460365,0.24388980460365, +0.268526158558354,0.268526158558354,0.268576712314757,0.268574086218554,0.268530983814123,0.268464210395796,0.268392254820875,0.268332588885779,0.268298949660885,0.268298949660885, +0.317021409966074,0.317021409966074,0.317058252159547,0.317034195951389,0.316964445388923,0.316869188366045,0.316770729056007,0.316690409388591,0.316645379015003,0.316645379015003, +0.388510036038397,0.388510036038397,0.38852476887652,0.388466220114292,0.388353613416893,0.388212492642045,0.388071069570748,0.38795684396902,0.387892838780052,0.387892838780052, +0.481266948630603,0.481266948630603,0.481249786075931,0.481140805526576,0.480965529732706,0.480757304642913,0.480552301189823,0.480386653577758,0.480292950893378,0.480292950893378, +0.592719493666241,0.592719493666241,0.592660071260907,0.59248026277645,0.592217267950047,0.591915630104164,0.591620602215876,0.591378739887843,0.591237963734819,0.591237963734819, +0.719370062036508,0.719370062036508,0.719262043237461,0.718982058092278,0.718598607368348,0.718171978721826,0.717753769529836,0.71739871258595,0.717177486880419,0.717177486880419, +0.856834222161056,0.856834222161056,0.85669658885568,0.856259645387996,0.855711853851209,0.855127059151304,0.854549017829881,0.854025350197155,0.853645673254783,0.853645673254783, + +00:54:05, +0.244158788535021,0.244158788535021,0.244215860076542,0.244223482091049,0.24419314444165,0.244140008474963,0.244080700743218,0.244030833455189,0.244002564337592,0.244002564337592, +0.244158788535021,0.244158788535021,0.244215860076542,0.244223482091049,0.24419314444165,0.244140008474963,0.244080700743218,0.244030833455189,0.244002564337592,0.244002564337592, +0.268636681079094,0.268636681079094,0.268687232983511,0.268684613854815,0.268641524875572,0.268574768215234,0.26850282929067,0.268443176641722,0.268409544772532,0.268409544772532, +0.31712716086772,0.31712716086772,0.317164001287558,0.317139954932791,0.31707022273422,0.316974988457345,0.31687655171901,0.316796250092182,0.31675122973069,0.31675122973069, +0.388607743201073,0.388607743201073,0.388622475627446,0.388563941989191,0.388451361740168,0.388310273170005,0.38816888192353,0.388054681812099,0.387990690833894,0.387990690833894, +0.481352672228622,0.481352672228622,0.481335512936799,0.481226556008892,0.481051318505177,0.480843138974874,0.480638180320873,0.480472568793596,0.480378886443601,0.480378886443601, +0.592788938271827,0.592788938271827,0.592729525757845,0.592549753463951,0.592286813133486,0.591985238453552,0.591690272501017,0.591448460804786,0.591307713952465,0.591307713952465, +0.719419128887259,0.719419128887259,0.719311128957109,0.719031197854074,0.718647822847895,0.718221279286584,0.717803153661739,0.717448167338871,0.717226985227258,0.717226985227258, +0.856859663111462,0.856859663111462,0.856722055278907,0.85628519295751,0.855737504254501,0.855152820010322,0.854574887930086,0.8540513187643,0.853671712491206,0.853671712491206, + +00:54:06, +0.244271478336542,0.244271478336542,0.24432854826509,0.244336176013754,0.244305849471591,0.244252727376399,0.244193433414707,0.244143577097873,0.244115314045711,0.244115314045711, +0.244271478336542,0.244271478336542,0.24432854826509,0.244336176013754,0.244305849471591,0.244252727376399,0.244193433414707,0.244143577097873,0.244115314045711,0.244115314045711, +0.268747191660179,0.268747191660179,0.268797741708284,0.268795129543831,0.268752053987441,0.268685314083508,0.268613391808284,0.268553752444877,0.268520127931107,0.268520127931107, +0.317232896716914,0.317232896716914,0.317269735361435,0.317245698856684,0.317175985017461,0.317080773481557,0.316982359310168,0.316902075720202,0.316857065368749,0.316857065368749, +0.388705432257145,0.388705432257145,0.388720164272478,0.388661645753664,0.388549091944653,0.388408035568813,0.388266676136819,0.388152501507342,0.388088524735224,0.388088524735224, +0.481438376115204,0.481438376115204,0.481421220087778,0.481312286773869,0.481137087546298,0.480928953558029,0.480724039685582,0.480558464228816,0.480464802205123,0.480464802205123, +0.592858364113635,0.592858364113635,0.592798961490956,0.592619225375136,0.592356339519296,0.592054827979509,0.591759923936943,0.591518162851299,0.591377445287422,0.591377445287422, +0.719468180934941,0.719468180934941,0.719360199869661,0.719080322789212,0.718697023471197,0.718270564960779,0.717852522868966,0.717497607138332,0.717276468603083,0.717276468603083, +0.856885095879144,0.856885095879144,0.856747513510833,0.856310732306937,0.855763146400015,0.855178572570332,0.854600749690303,0.854077278954818,0.85369774332526,0.85369774332526, + +00:54:07, +0.244384158111729,0.244384158111729,0.244441226421295,0.244448859900673,0.244418544464379,0.244365436240755,0.244306156049943,0.244256310705254,0.244228053719126,0.244228053719126, +0.244384158111729,0.244384158111729,0.244441226421295,0.244448859900673,0.244418544464379,0.244365436240755,0.244306156049943,0.244256310705254,0.244228053719126,0.244228053719126, +0.268857690296148,0.268857690296148,0.268908238483615,0.268905633280142,0.268862571144263,0.268795847995143,0.26872394236823,0.268664316289752,0.268630699131112,0.268630699131112, +0.317338617513946,0.317338617513946,0.31737545438147,0.317351427723359,0.317281732238933,0.317186543438962,0.317088151829756,0.31700788627292,0.316962885929448,0.316962885929448, +0.388803103213296,0.388803103213296,0.388817834818295,0.388759331414389,0.388646804037024,0.388505779845149,0.388364452217298,0.388250303061433,0.388186340490725,0.388186340490725, +0.481524060302092,0.481524060302092,0.481506907540603,0.481397997833243,0.481222836867813,0.481014748404131,0.480809879295714,0.480644339895192,0.480550698189723,0.480550698189723, +0.592927771205497,0.592927771205497,0.592868378474066,0.592688678523842,0.592425847121328,0.592124398695906,0.591829556537545,0.591587846041292,0.591447157753607,0.591447157753607, +0.71951721819173,0.71951721819173,0.719409255987292,0.719129432909885,0.718746209250468,0.718319835756657,0.717901877163794,0.717547031996636,0.717325937020212,0.717325937020212, +0.856910520471207,0.856910520471207,0.856772963558569,0.856336263443414,0.855788780294923,0.855204316838541,0.854626603117777,0.854103230775988,0.853723765764249,0.853723765764249, + +00:54:08, +0.244496827851756,0.244496827851756,0.244553894536339,0.244561533742985,0.244531229411186,0.244478135059193,0.244418868640077,0.244369034268473,0.244340783348972,0.244340783348972, +0.244496827851756,0.244496827851756,0.244553894536339,0.244561533742985,0.244531229411186,0.244478135059193,0.244418868640077,0.244369034268473,0.244340783348972,0.244340783348972, +0.268968176981547,0.268968176981547,0.269018723304058,0.269016125058298,0.268973076340583,0.268906369944674,0.268834480965035,0.268774868170865,0.268741258367062,0.268741258367062, +0.317444323259111,0.317444323259111,0.317481158347956,0.317457141533107,0.317387464398922,0.317292298329842,0.317193929278052,0.31711368175061,0.317068691413058,0.317068691413058, +0.388900756076205,0.388900756076205,0.388915487271571,0.388856998978037,0.388744498023955,0.388603506005686,0.388462210171642,0.388348086481047,0.388284138107076,0.388284138107076, +0.481609724801013,0.481609724801013,0.481592575306996,0.48148368919874,0.481308566481452,0.481100523524919,0.480895699163021,0.480730195804483,0.480636574409166,0.480636574409166, +0.592997159561228,0.592997159561228,0.592937776720987,0.592758112923885,0.592495335953415,0.592193950616595,0.591899170316697,0.591657510388657,0.591516851364924,0.591516851364924, +0.719566240669785,0.719566240669785,0.719458297322162,0.719178528228268,0.71879538019791,0.718369091686451,0.717951216558483,0.71759644192607,0.717375390490949,0.717375390490949, +0.856935936894747,0.856935936894747,0.856798405429216,0.856361786374068,0.855814405946385,0.855230052822149,0.854652448219745,0.854129174235079,0.853749779815464,0.853749779815464, + +00:54:09, +0.244609487547811,0.244609487547811,0.244666552601417,0.244674197531884,0.244643904303198,0.24459082382289,0.244531571176273,0.244481747778685,0.2444535029264,0.2444535029264, +0.244609487547811,0.244609487547811,0.244666552601417,0.244674197531884,0.244643904303198,0.24459082382289,0.244531571176273,0.244481747778685,0.2444535029264,0.2444535029264, +0.269078651710937,0.269078651710937,0.269129196164176,0.26912660487286,0.269083569570956,0.269016879926646,0.268945007593235,0.268885408082745,0.26885180563348,0.26885180563348, +0.317550013952704,0.317550013952704,0.317586847261192,0.317562840286221,0.317493181497719,0.317398038154481,0.317299691655335,0.317219462153549,0.317174481819854,0.317174481819854, +0.388998390852543,0.388998390852543,0.389013121638974,0.388954648451275,0.388842173912112,0.388701214057092,0.388559950006519,0.388445851772856,0.388381917590949,0.388381917590949, +0.481695369623682,0.481695369623682,0.481678223398665,0.481569360882067,0.481394276398933,0.481186278932121,0.480981499299238,0.480816031968435,0.480722430875202,0.480722430875202, +0.593066529194627,0.593066529194627,0.593007156245513,0.592827528589068,0.592564806029374,0.592263483755414,0.591968765288258,0.591727155907268,0.591586526135256,0.591586526135256, +0.719615248381249,0.719615248381249,0.719507323886415,0.719227608756519,0.718844536325709,0.718418332762374,0.71800054106528,0.717645836938906,0.717424829027581,0.717424829027581, +0.85696134515685,0.85696134515685,0.856823839129869,0.856387301106017,0.855840023361554,0.855255780528344,0.854678285003433,0.85415510933935,0.853775785486191,0.853775785486191, + +00:54:10, +0.244722137191101,0.244722137191101,0.244779200607742,0.244786851258581,0.244756569131618,0.244703502523037,0.244644263649713,0.244594451227062,0.244566212442575,0.244566212442575, +0.244722137191101,0.244722137191101,0.244779200607742,0.244786851258581,0.244756569131618,0.244703502523037,0.244644263649713,0.244594451227062,0.244566212442575,0.244566212442575, +0.269189114478887,0.269189114478887,0.269239657058543,0.2692370727184,0.269194050829947,0.269127377935617,0.269055522247378,0.268995936019932,0.268962340924902,0.268962340924902, +0.317655689595027,0.317655689595027,0.317692521121476,0.317668523983,0.317598883535617,0.317503762913169,0.317405438961889,0.317325227482016,0.317280257150113,0.317280257150113, +0.389096007548975,0.389096007548975,0.389110737927165,0.389052279840764,0.388939831708154,0.388798904006028,0.388657671728593,0.388543598943525,0.38847967894901,0.38847967894901, +0.481780994781797,0.481780994781797,0.481763851827305,0.481655012894922,0.481479966631958,0.481272014637449,0.48106727971609,0.480901848398781,0.480808267599569,0.480808267599569, +0.593135880119474,0.593135880119474,0.59307651706142,0.592896925533174,0.592634257363004,0.592332998126181,0.592038341466065,0.591796782610981,0.59165618207847,0.59165618207847, +0.719664241338252,0.719664241338252,0.71955633569218,0.719276674506784,0.718893677646032,0.718467558996626,0.718049850696413,0.717695217047399,0.717474252642379,0.717474252642379, +0.856986745264593,0.856986745264593,0.85684926466761,0.85641280764637,0.855865632547572,0.855281499964306,0.854704113476057,0.854181036096052,0.853801782783702,0.853801782783702, + +00:54:11, +0.244834776772845,0.244834776772845,0.244891838546539,0.244899494914301,0.244869223887666,0.244816171150841,0.244756946051592,0.244707144604791,0.244678911888681,0.244678911888681, +0.244834776772845,0.244834776772845,0.244891838546539,0.244899494914301,0.244869223887666,0.244816171150841,0.244756946051592,0.244707144604791,0.244678911888681,0.244678911888681, +0.269299565279979,0.269299565279979,0.269350105981743,0.269347528589503,0.269304520112132,0.269237863966154,0.269166024922022,0.269106451976976,0.269072864235876,0.269072864235876, +0.317761350186381,0.317761350186381,0.317798179929112,0.317774192623743,0.317704570512912,0.317609472606195,0.317511171198,0.317430977736292,0.317386017404115,0.317386017404115, +0.389193606172161,0.389193606172161,0.389208336142801,0.389149893153156,0.389037471418736,0.388896575859149,0.388755375344521,0.388641327999712,0.388577422187918,0.388577422187918, +0.481866600287047,0.481866600287047,0.481849460604598,0.481740645248988,0.481565637192216,0.481357730652603,0.481153040425286,0.480987645107239,0.480894084593991,0.480894084593991, +0.593205212349533,0.593205212349533,0.593145859182468,0.59296630376997,0.592703689968087,0.592402493742699,0.592107898863944,0.591866390513638,0.591725819208418,0.591725819208418, +0.719713219552905,0.719713219552905,0.719605332751571,0.71932572549119,0.718942804171034,0.71851677040139,0.718099145464098,0.717744582263788,0.717523661347598,0.717523661347598, +0.857012137225042,0.857012137225042,0.856874682049514,0.856438306002227,0.855891233511572,0.855307211137206,0.854729933644826,0.854206954512427,0.853827771715261,0.853827771715261, + +00:54:12, +0.24494740628428,0.24494740628428,0.245004466409052,0.245012128490287,0.244981868562574,0.244928829697527,0.244869618373123,0.244819827903073,0.244791601255912,0.244791601255912, +0.24494740628428,0.24494740628428,0.245004466409052,0.245012128490287,0.244981868562574,0.244928829697527,0.244869618373123,0.244819827903073,0.244791601255912,0.244791601255912, +0.269410004108803,0.269410004108803,0.269460542928374,0.26945797248076,0.269414977412099,0.269348338012835,0.269276515611736,0.269216955948439,0.269183375560958,0.269183375560958, +0.317866995727072,0.317866995727072,0.317903823684404,0.317879846208755,0.317810242429904,0.317715167233854,0.317616888363958,0.317536712916664,0.317491762582144,0.317491762582144, +0.389291186728752,0.389291186728752,0.389305916292529,0.3892474883951,0.389135093050506,0.388994229623104,0.388853060860953,0.38873903894807,0.388675147314326,0.388675147314326, +0.481952186151105,0.481952186151105,0.481935049742211,0.481826257955933,0.481651288091383,0.481443426989267,0.481238781438522,0.481073422105514,0.480979881870178,0.480979881870178, +0.593274525898549,0.593274525898549,0.593215182622398,0.593035663313204,0.592773103858388,0.592471970618753,0.592177437495698,0.591935979629061,0.591795437538932,0.591795437538932, +0.719762183037306,0.719762183037306,0.719654315076684,0.719374761721852,0.718991915912853,0.718565966988835,0.718148425380531,0.717793932600299,0.717573055155479,0.717573055155479, +0.857037521045257,0.857037521045257,0.856900091282646,0.856463796180677,0.855916826260677,0.855332914054205,0.854755745516938,0.854232864595705,0.853853752288125,0.853853752288125, + +00:54:13, +0.245060025716657,0.245060025716657,0.245117084186539,0.245124751977793,0.245094503147593,0.245041478154333,0.244982280605532,0.244932501113127,0.244904280535483,0.244904280535483, +0.245060025716657,0.245060025716657,0.245117084186539,0.245124751977793,0.245094503147593,0.245041478154333,0.244982280605532,0.244932501113127,0.244904280535483,0.244904280535483, +0.269520430959963,0.269520430959963,0.26957096789304,0.269568404386778,0.269525422724447,0.26945880007025,0.269386994311101,0.269327447928894,0.269293874894717,0.269293874894717, +0.317972626217408,0.317972626217408,0.318009452387662,0.31798548473834,0.317915899286893,0.317820846796443,0.317722590460053,0.317642433023418,0.317597492684484,0.317597492684484, +0.389388749225397,0.389388749225397,0.389403478382994,0.389345065573237,0.389232696610105,0.389091865304536,0.388950728284535,0.388836731795244,0.388772854334882,0.388772854334882, +0.48203775238563,0.48203775238563,0.482020619251797,0.481911851027413,0.481736919341122,0.481529103659115,0.481324502767481,0.481159179405298,0.481065659439828,0.481065659439828, +0.593343820780254,0.593343820780254,0.593284487394937,0.59310500417661,0.592842499047655,0.592541428768111,0.592246957375116,0.592005549971055,0.591865037083827,0.591865037083827, +0.719811131803536,0.719811131803536,0.719703282679601,0.719423783210865,0.719041012883611,0.718615148771114,0.718197690457897,0.717843268069139,0.717622434078246,0.717622434078246, +0.857062896732287,0.857062896732287,0.856925492374063,0.856489278188803,0.855942410802004,0.855358608722454,0.854781549099582,0.85425876635311,0.853879724509538,0.853879724509538, + +00:54:14, +0.245172635061243,0.245172635061243,0.245229691870273,0.245237365368093,0.245207127633986,0.245154116512512,0.245094932740062,0.245045164226187,0.245016949718622,0.245016949718622, +0.245172635061243,0.245172635061243,0.245229691870273,0.245237365368093,0.245207127633986,0.245154116512512,0.245094932740062,0.245045164226187,0.245016949718622,0.245016949718622, +0.269630845828072,0.269630845828072,0.269681380870361,0.269678824302172,0.269635856043785,0.269569250132999,0.269497461014707,0.269437927912925,0.269404362231732,0.269404362231732, +0.318078241657701,0.318078241657701,0.318115066039196,0.318091108212808,0.318021541084186,0.317926511294262,0.317828277486581,0.317748138056848,0.317703207711426,0.317703207711426, +0.389486293668736,0.389486293668736,0.389501022420832,0.389442624694202,0.389330282104168,0.389189482910082,0.389048377621904,0.388934406547876,0.388870543256228,0.388870543256228, +0.482123299002269,0.482123299002269,0.482106169144999,0.48199742447507,0.481822530953082,0.481614760673805,0.481410204423832,0.481244917018269,0.481151417314622,0.481151417314622, +0.593413097008358,0.593413097008358,0.593353773513792,0.593174326373903,0.592911875549619,0.592610868204523,0.59231645851597,0.592075101553409,0.591934617856903,0.591934617856903, +0.719860065863661,0.719860065863661,0.71975223557239,0.719472789970312,0.719090095095415,0.718664315760361,0.718246940708361,0.7178925886825,0.717671798128107,0.717671798128107, +0.857088264293172,0.857088264293172,0.85695088533081,0.856514752033675,0.855967987142656,0.855384295149096,0.854807344399937,0.854284659791854,0.853905688386736,0.853905688386736, + +00:54:15, +0.24528523430932,0.24528523430932,0.245342289451543,0.245349968652474,0.245319742013034,0.245266744763334,0.245207574767971,0.2451578172335,0.245129608796572,0.245129608796572, +0.24528523430932,0.24528523430932,0.245342289451543,0.245349968652474,0.245319742013034,0.245266744763334,0.245207574767971,0.2451578172335,0.245129608796572,0.245129608796572, +0.269741248707754,0.269741248707754,0.269791781854963,0.269789232221567,0.269746277364732,0.269679688195693,0.269607915717155,0.269548395895125,0.269514837566594,0.269514837566594, +0.318183842048264,0.318183842048264,0.318220664639321,0.318196716632472,0.318127167822089,0.318032160727614,0.31793394944384,0.317853828017246,0.31780890766326,0.31780890766326, +0.389583820065404,0.389583820065404,0.389598548412674,0.389540165764625,0.389427849539326,0.389287082446373,0.389146008879693,0.389032063212599,0.388968214084999,0.388968214084999, +0.482208826012653,0.482208826012653,0.482191699433442,0.482082978310532,0.481908122938897,0.481700398044981,0.48149588641923,0.481330634956091,0.481237155506231,0.481237155506231, +0.593482354596558,0.593482354596558,0.593423040992654,0.593243629918782,0.592981233377994,0.592680288941722,0.592385940932013,0.592144634389894,0.59200417987194,0.59200417987194, +0.719908985229733,0.719908985229733,0.719801173767101,0.719521782012259,0.719139162560356,0.7187134679687,0.718296176144075,0.717941894452561,0.717721147317256,0.717721147317256, +0.857113623734943,0.857113623734943,0.856976270159927,0.856540217722357,0.855993555289731,0.855409973341264,0.854833131425174,0.854310544919139,0.853931643926946,0.853931643926946, + +00:54:16, +0.245397823452186,0.245397823452186,0.245454876921652,0.245462561822238,0.245432346276032,0.245379362898085,0.245320206680533,0.245270460126332,0.245242257760591,0.245242257760591, +0.245397823452186,0.245397823452186,0.245454876921652,0.245462561822238,0.245432346276032,0.245379362898085,0.245320206680533,0.245270460126332,0.245242257760591,0.245242257760591, +0.269851639593644,0.269851639593644,0.269902170841486,0.269899628139602,0.269856686681919,0.269790114252954,0.26971835841306,0.2696588518701,0.269625300893904,0.269625300893904, +0.318289427389414,0.318289427389414,0.318326248188354,0.318302309997644,0.318232779500913,0.318137795096803,0.31803960633213,0.317959502904909,0.317914592540283,0.317914592540283, +0.389681328422028,0.389681328422028,0.389696056365145,0.38963768879113,0.389525398922201,0.389384663920032,0.389243622064529,0.389129701796041,0.389065866827823,0.389065866827823, +0.482294333428403,0.482294333428403,0.482277210128741,0.482168512545415,0.481993695310189,0.481786015784276,0.481581548765318,0.481416333230416,0.481322874026311,0.481322874026311, +0.593551593558531,0.593551593558531,0.593492289845197,0.593312914824926,0.593050572546476,0.592749690993426,0.592455404636982,0.592214148494265,0.592073723142703,0.592073723142703, +0.719957889913784,0.719957889913784,0.71985009727577,0.719570759348757,0.719188215290511,0.718762605408236,0.718345396777175,0.717991185391483,0.717770481657869,0.717770481657869, +0.857138975064621,0.857138975064621,0.857001646868441,0.856565675261902,0.856019115250314,0.855435643306082,0.854858910182453,0.854336421742161,0.853957591137385,0.853957591137385, + +00:54:17, +0.245510402481153,0.245510402481153,0.245567454271921,0.245575144868703,0.245544940414292,0.245491970908062,0.245432828469037,0.245383092895962,0.245354896601956,0.245354896601956, +0.245510402481153,0.245510402481153,0.245567454271921,0.245575144868703,0.245544940414292,0.245491970908062,0.245432828469037,0.245383092895962,0.245354896601956,0.245354896601956, +0.269962018480387,0.269962018480387,0.270012547824579,0.270010012050923,0.269967083989988,0.269900528299415,0.269828789097044,0.269769295832465,0.269735752208273,0.269735752208273, +0.318394997681472,0.318394997681472,0.318431816686614,0.318407888308644,0.318338376120972,0.31824341440214,0.318145248151756,0.318065162720138,0.318020262342792,0.318020262342792, +0.389778818745232,0.389778818745232,0.389793546284863,0.389735193780332,0.389622930259411,0.389482227337679,0.389341217183031,0.389227322304825,0.389163501491324,0.389163501491324, +0.482379821261123,0.482379821261123,0.482362701242494,0.482254027191319,0.482079248078567,0.481871613903307,0.481667191473724,0.48150201185288,0.481408572886505,0.481408572886505, +0.593620813907939,0.593620813907939,0.593561520085078,0.593382181106001,0.593119893068744,0.592819074373334,0.592524849644598,0.592283643880259,0.592143247682939,0.592143247682939, +0.720006779927837,0.720006779927837,0.719899006110416,0.719619721991842,0.719237253297939,0.718811728091058,0.718394602619782,0.718040461511411,0.717819801162108,0.717819801162108, +0.857164318289219,0.857164318289219,0.857027015463372,0.856591124659354,0.856044667031485,0.855461305050664,0.854884680678925,0.854362290268104,0.853983530025261,0.853983530025261, + +00:54:18, +0.24562297138755,0.24562297138755,0.245680021493683,0.245687717783204,0.245657524419138,0.245604568784584,0.245545440124786,0.245495715533685,0.245467525311955,0.245467525311955, +0.24562297138755,0.24562297138755,0.245680021493683,0.245687717783204,0.245657524419138,0.245604568784584,0.245545440124786,0.245495715533685,0.245467525311955,0.245467525311955, +0.270072385362641,0.270072385362641,0.270122912798903,0.27012038395019,0.27007746928359,0.270010930329718,0.269939207763742,0.269879727776849,0.269846191504324,0.269846191504324, +0.318500552924759,0.318500552924759,0.318537370134424,0.318513451565791,0.318443957682582,0.318349018643934,0.318250874903023,0.318170807463234,0.318125917071087,0.318125917071087, +0.389876291041631,0.389876291041631,0.389891018178442,0.389832680738843,0.389720443557567,0.389579772705927,0.389438794241815,0.389324924745566,0.389261118082119,0.389261118082119, +0.482465289522405,0.482465289522405,0.482448172786289,0.482339522259834,0.482164781255625,0.481957192413678,0.481752814556063,0.481587670835108,0.481494252098441,0.481494252098441, +0.593690015658426,0.593690015658426,0.593630731725937,0.593451428775653,0.593189194958462,0.592888439095128,0.592594275968564,0.592353120561595,0.592212753506378,0.592212753506378, +0.720055655283893,0.720055655283893,0.719947900283046,0.719668669953533,0.719286276594686,0.718860836029242,0.718443793683999,0.718089722824475,0.71786910584212,0.71786910584212, +0.85718965341574,0.85718965341574,0.85705237595173,0.856616565921749,0.85607021064031,0.855486958582116,0.854910442921734,0.854388150504142,0.854009460597773,0.854009460597773, + +00:54:19, +0.245735530162721,0.245735530162721,0.245792578578289,0.245800280557088,0.245770098281914,0.24571715651898,0.245658041639101,0.245608328030811,0.245580143881894,0.245580143881894, +0.245735530162721,0.245735530162721,0.245792578578289,0.245800280557088,0.245770098281914,0.24571715651898,0.245658041639101,0.245608328030811,0.245580143881894,0.245580143881894, +0.270182740235071,0.270182740235071,0.27023326575913,0.270230743832071,0.27018784255739,0.270121320338519,0.270049614407798,0.269990147697888,0.269956618776691,0.269956618776691, +0.318606093119602,0.318606093119602,0.318642908532111,0.318618999769408,0.318549524186062,0.3184546078225,0.318356486586242,0.318276437134505,0.318231556725472,0.318231556725472, +0.389973745317835,0.389973745317835,0.389988472052487,0.389930149673269,0.389817938823273,0.38967730003138,0.389536353247487,0.389422509124875,0.389358716606819,0.389358716606819, +0.482550738223829,0.482550738223829,0.482533624771699,0.482424997762533,0.482250294852944,0.482042751326981,0.481838418023936,0.481673310188709,0.481579911673735,0.481579911673735, +0.593759198823618,0.593759198823618,0.593699924781397,0.593520657847514,0.593258478229274,0.592957785172474,0.592663683622565,0.592422578551977,0.592282240626734,0.592282240626734, +0.720104515993944,0.720104515993944,0.719996779805647,0.719717603245835,0.719335285192781,0.718909929234847,0.718492969981917,0.718138969342792,0.717918395710034,0.717918395710034, +0.857214980451179,0.857214980451179,0.857077728340515,0.856641999056111,0.856095746083849,0.855512603907534,0.854936196918011,0.854414002457443,0.854035382862109,0.854035382862109, + +00:54:20, +0.245848078798024,0.245848078798024,0.245905125517105,0.245912833181719,0.245882661993975,0.245829734102596,0.245770633003317,0.245720930378667,0.245692752303093,0.245692752303093, +0.245848078798024,0.245848078798024,0.245905125517105,0.245912833181719,0.245882661993975,0.245829734102596,0.245770633003317,0.245720930378667,0.245692752303093,0.245692752303093, +0.270293083092357,0.270293083092357,0.27034360669994,0.270341091691247,0.27029820380606,0.270231698320482,0.270160009023868,0.27010055559023,0.270067034020017,0.270067034020017, +0.318711618266328,0.318711618266328,0.318748431880001,0.318724532919823,0.318655075631735,0.318560181938155,0.318462083201724,0.318382051734257,0.318337181306253,0.318337181306253, +0.39007118158045,0.39007118158045,0.390085907913599,0.390027600590207,0.38991541606313,0.389774809320641,0.389633894206651,0.389520075449355,0.389456297072029,0.389456297072029, +0.482636167376959,0.482636167376959,0.482619057210283,0.482510453710977,0.482335788882093,0.482128290654794,0.481924001888932,0.481758929925282,0.481665551623989,0.481665551623989, +0.593828363417127,0.593828363417127,0.593769099265065,0.593589868335196,0.593327742894811,0.59302711261902,0.592733072620269,0.592492017865091,0.592351709057702,0.592351709057702, +0.72015336206996,0.72015336206996,0.720045644690193,0.719766521880737,0.719384279104238,0.718959007719916,0.718542131525608,0.718188201078459,0.717967670777966,0.717967670777966, +0.857240299402521,0.857240299402521,0.85710307263672,0.856667424069459,0.856121273369153,0.855538241034004,0.854961942674881,0.854439846135162,0.854061296825449,0.854061296825449, + +00:54:21, +0.245960617284833,0.245960617284833,0.24601766230151,0.246025375648477,0.245995215546694,0.245942301526794,0.245883214208783,0.245833522568593,0.245805350566889,0.245805350566889, +0.245960617284833,0.245960617284833,0.24601766230151,0.246025375648477,0.245995215546694,0.245942301526794,0.245883214208783,0.245833522568593,0.245805350566889,0.245805350566889, +0.270403413929185,0.270403413929185,0.270453935616027,0.270451427522408,0.270408553024284,0.270342064270282,0.270270391606619,0.270210951448536,0.270177437228958,0.270177437228958, +0.318817128365269,0.318817128365269,0.318853940178427,0.318830051017363,0.318760612019924,0.31866574099122,0.318567664749785,0.318487651262803,0.318442790813741,0.318442790813741, +0.390168599836072,0.390168599836072,0.390183325768371,0.390125033496251,0.39001287528373,0.389872300580302,0.389731417125902,0.389617623725604,0.389553859484347,0.389553859484347, +0.482721576993347,0.482721576993347,0.482704470113588,0.482595890116715,0.482421263354625,0.48221381040868,0.482009566162625,0.481844530056409,0.481751171960793,0.481751171960793, +0.593897509452545,0.593897509452545,0.593838255190529,0.593659060252295,0.593396988968683,0.593096421448398,0.59280244297533,0.592561438514606,0.592421158812962,0.592421158812962, +0.720202193523902,0.720202193523902,0.720094494948644,0.719815425870212,0.719433258341056,0.719008071496478,0.718591278327132,0.718237418043562,0.718016931058015,0.718016931058015, +0.857265610276742,0.857265610276742,0.857128408847328,0.8566928409688,0.856146792503261,0.855563869968605,0.854987680199458,0.854465681544448,0.854087202494964,0.854087202494964, + +00:54:22, +0.246073145614537,0.246073145614537,0.2461301889229,0.246137907948757,0.246107758931457,0.246054858782951,0.245995785246866,0.245946104591945,0.245917938664633,0.245917938664633, +0.246073145614537,0.246073145614537,0.2461301889229,0.246137907948757,0.246107758931457,0.246054858782951,0.245995785246866,0.245946104591945,0.245917938664633,0.245917938664633, +0.270513732740257,0.270513732740257,0.270564252502093,0.270561751320256,0.270518890206759,0.270452418182606,0.270380762150728,0.270321335267474,0.270287828398181,0.270287828398181, +0.318922623416758,0.318922623416758,0.318959433427722,0.31893555406236,0.318866133350959,0.318771284982017,0.318673231230742,0.318593235720458,0.318548385248247,0.318548385248247, +0.390266000091293,0.390266000091293,0.390280725623393,0.390222448397988,0.390110316491659,0.389969773816952,0.389828922011831,0.389715153960213,0.389651403850367,0.389651403850367, +0.482806967084531,0.482806967084531,0.482789863493145,0.482681306991279,0.482506718282082,0.48229931060019,0.482095110856576,0.48193011059366,0.48183677269572,0.48183677269572, +0.59396663694345,0.59396663694345,0.593907392571362,0.593728233612392,0.593466216464485,0.593165711674222,0.592871794701382,0.592630840514173,0.592490589906175,0.592490589906175, +0.720251010367711,0.720251010367711,0.720143330592942,0.71986431522622,0.719482222915217,0.719057120576545,0.71864041039853,0.718286620250167,0.718066176562265,0.718066176562265, +0.857290913080809,0.857290913080809,0.857153736979312,0.856718249761131,0.856172303493207,0.855589490718404,0.855013409498847,0.854491508692437,0.854113099877815,0.854113099877815, + +00:54:23, +0.246185663778542,0.246185663778542,0.246242705372687,0.246250430073967,0.246220292139668,0.246167405862459,0.246108346108946,0.246058676440097,0.246030516587691,0.246030516587691, +0.246185663778542,0.246185663778542,0.246242705372687,0.246250430073967,0.246220292139668,0.246167405862459,0.246108346108946,0.246058676440097,0.246030516587691,0.246030516587691, +0.27062403952028,0.27062403952028,0.270674557352853,0.270672063079502,0.27062921534819,0.270562760052151,0.270491120650884,0.270431707041725,0.27039820752236,0.27039820752236, +0.319028103421133,0.319028103421133,0.319064911628224,0.31904104205515,0.318971639625169,0.318876813910872,0.318778782644918,0.318698805107537,0.318653964610087,0.318653964610087, +0.390363382352699,0.390363382352699,0.390378107485247,0.390319845301997,0.390207739693499,0.390067229037173,0.38992640887102,0.389812666159769,0.389748930176675,0.389748930176675, +0.482892337662036,0.482892337662036,0.482875237360475,0.482766704346193,0.482592153675991,0.482384791240862,0.482180635982334,0.482015671548593,0.481922353840334,0.481922353840334, +0.5940357459034,0.5940357459034,0.593976511421119,0.593797388429048,0.593535425395795,0.59323498331009,0.592941127812043,0.592700223877429,0.592560002350987,0.592560002350987, +0.720299812613314,0.720299812613314,0.720192151635015,0.719913189960703,0.719531172838691,0.719106154972115,0.718689527751831,0.718335807710328,0.718115407302784,0.718115407302784, +0.857316207821679,0.857316207821679,0.857179057039637,0.856743650453443,0.856197806346011,0.85561510329046,0.855039130580143,0.854517327586259,0.854138988981153,0.854138988981153, + +00:54:24, +0.246298171768266,0.246298171768266,0.246355211642297,0.246362942015533,0.246332815162744,0.246279942756724,0.246220896786419,0.246171238104434,0.246143084327445,0.246143084327445, +0.246298171768266,0.246298171768266,0.246355211642297,0.246362942015533,0.246332815162744,0.246279942756724,0.246220896786419,0.246171238104434,0.246143084327445,0.246143084327445, +0.270734334263977,0.270734334263977,0.270784850163031,0.27078236279487,0.270739528443292,0.270673089873625,0.270601467101784,0.270542066765982,0.270508574596184,0.270508574596184, +0.319133568378732,0.319133568378732,0.319170374780272,0.319146514996069,0.319077130842889,0.318982327778114,0.318884318992635,0.318804359424363,0.318759528899579,0.318759528899579, +0.39046074662687,0.39046074662687,0.390475471360508,0.390417224214854,0.390305144895824,0.390164666247542,0.390023877710049,0.389910160330851,0.389846438469852,0.389846438469852, +0.482977688737374,0.482977688737374,0.482960591727084,0.482852082192962,0.482677569547867,0.482470252342219,0.482266141551433,0.482101212932751,0.482007915406183,0.482007915406183, +0.594104836345938,0.594104836345938,0.594045611753338,0.59386652471581,0.593604615776174,0.593304236369583,0.593010442320914,0.592769588617991,0.592629396161027,0.592629396161027, +0.720348600272625,0.720348600272625,0.720240958086777,0.719962050085589,0.719580108123428,0.71915517469517,0.718738630399046,0.718384980436082,0.718164623291626,0.718164623291626, +0.857341494506302,0.857341494506302,0.857204369035259,0.856769043052716,0.856223301068688,0.855640707691825,0.855064843450434,0.854543138233032,0.854164869812121,0.854164869812121, + +00:54:25, +0.246410669575145,0.246410669575145,0.24646770772317,0.246475443764895,0.246445327992117,0.24639246945717,0.246333437270697,0.246283789576358,0.246255641875293,0.246255641875293, +0.246410669575145,0.246410669575145,0.24646770772317,0.246475443764895,0.246445327992117,0.24639246945717,0.246333437270697,0.246283789576358,0.246255641875293,0.246255641875293, +0.270844616966078,0.270844616966078,0.270895130927362,0.270892650461093,0.270849829486794,0.270783407641747,0.270711801498138,0.270652414434945,0.27061892961435,0.27061892961435, +0.319239018289899,0.319239018289899,0.319275822884208,0.319251972885458,0.319182607004453,0.319087826584073,0.31898984027422,0.318909898671256,0.318865078117043,0.318865078117043, +0.39055809292038,0.39055809292038,0.390572817255746,0.390514585143127,0.390402532105204,0.390262085454628,0.390121328535489,0.390007636480033,0.389943928736473,0.389943928736473, +0.483063020322042,0.483063020322042,0.483045926604464,0.482937440543081,0.48276296590921,0.482555693915773,0.482351627575394,0.482186734757664,0.482093457404801,0.482093457404801, +0.594173908284591,0.594173908284591,0.594114693581543,0.593935642486206,0.593673787619167,0.593373470866264,0.59307973824158,0.592838934749461,0.592698771349904,0.592698771349904, +0.720397373357539,0.720397373357539,0.720289749960123,0.72001089561279,0.719629028781367,0.719204179757678,0.718787718352171,0.718434138439452,0.718213824540828,0.718213824540828, +0.857366773141618,0.857366773141618,0.857229672973123,0.856794427565921,0.856248787668242,0.855666303929537,0.855090548116797,0.854568940639869,0.854190742377851,0.854190742377851, + +00:54:26, +0.246523157190628,0.246523157190628,0.246580193606763,0.246587935313507,0.246557830619237,0.246504985955234,0.246445967553206,0.246396330847288,0.246368189222647,0.246368189222647, +0.246523157190628,0.246523157190628,0.246580193606763,0.246587935313507,0.246557830619237,0.246504985955234,0.246445967553206,0.246396330847288,0.246368189222647,0.246368189222647, +0.270954887621324,0.270954887621324,0.271005399640592,0.271002926072914,0.270960118473433,0.270893713351244,0.270822123834667,0.270762750043328,0.270729272571568,0.270729272571568, +0.319344453154979,0.319344453154979,0.319381255940378,0.31935741572366,0.319288068110202,0.319193310329085,0.319095346490003,0.319015422848544,0.318970612262804,0.318970612262804, +0.390655421239796,0.390655421239796,0.390670145177526,0.390611928093378,0.3904999013282,0.390359486664996,0.390218761353906,0.390105094613882,0.390041400983106,0.390041400983106, +0.483148332427526,0.483148332427526,0.483131242004095,0.483022779408031,0.482848342771508,0.482641115973021,0.482437094065725,0.482272237034848,0.482178979847711,0.482178979847711, +0.594242961732867,0.594242961732867,0.594183756919236,0.594004741753749,0.593742940938301,0.593442686813682,0.593149015587608,0.592908262285422,0.592768127931214,0.592768127931214, +0.720446131879938,0.720446131879938,0.720338527266937,0.720059726554204,0.719677934824429,0.719253170171588,0.718836791623189,0.718483281732443,0.718263011062413,0.718263011062413, +0.857392043734556,0.857392043734556,0.857254968860168,0.856819804000019,0.856274266151668,0.85569189201063,0.855116244586299,0.854594734813868,0.854216606685469,0.854216606685469, + +00:54:27, +0.246635634606181,0.246635634606181,0.246692669284549,0.246700416652841,0.246670323035566,0.246617492242368,0.246558487625387,0.246508861908655,0.246480726360934,0.246480726360934, +0.246635634606181,0.246635634606181,0.246692669284549,0.246700416652841,0.246670323035566,0.246617492242368,0.246558487625387,0.246508861908655,0.246480726360934,0.246480726360934, +0.271065146224469,0.271065146224469,0.271115656297477,0.271113189625088,0.271070395397958,0.271004006996857,0.270932434106101,0.270873073585854,0.270839603462557,0.270839603462557, +0.319449872974319,0.319449872974319,0.319486673949131,0.31946284351102,0.319393514160478,0.319298779013486,0.319200837640317,0.319120931956555,0.319076131337188,0.319076131337188, +0.39075273159168,0.39075273159168,0.390767455132405,0.390709253072165,0.39059725257137,0.390456869885203,0.39031617617186,0.39020253473896,0.390138855216315,0.390138855216315, +0.483233625065297,0.483233625065297,0.483216537937442,0.483108098799279,0.482933700146236,0.482726518525446,0.482522541033919,0.482357719775806,0.482264482746421,0.482264482746421, +0.594311996704258,0.594311996704258,0.594252801779908,0.594073822531933,0.593812075747086,0.593511884225366,0.593218274372548,0.592977571239444,0.592837465918535,0.592837465918535, +0.720494875851688,0.720494875851688,0.720387290019084,0.720108542921712,0.719726826264522,0.719302145948838,0.718885850224064,0.718532410327047,0.718312182868386,0.718312182868386, +0.85741730629204,0.85741730629204,0.857280256703322,0.856845172361965,0.856299736525951,0.855717471942125,0.855141932866001,0.854620520762122,0.854242462742088,0.854242462742088, + +00:54:28, +0.246748101813284,0.246748101813284,0.246805134748012,0.246812887774382,0.246782805232583,0.246729988310041,0.246670997478699,0.246621382751909,0.246593253281597,0.246593253281597, +0.246748101813284,0.246748101813284,0.246805134748012,0.246812887774382,0.246782805232583,0.246729988310041,0.246670997478699,0.246621382751909,0.246593253281597,0.246593253281597, +0.271175392770275,0.271175392770275,0.271225900892784,0.27122344111238,0.271180660255127,0.271114288573337,0.271042732307181,0.270983385057257,0.270949922282046,0.270949922282046, +0.31955527774827,0.31955527774827,0.319592076910816,0.319568256247888,0.319498945155624,0.319404232637617,0.319306313725497,0.319226425995621,0.319181635340525,0.319181635340525, +0.390850023982586,0.390850023982586,0.390864747126935,0.390806560086037,0.390694585841264,0.390554235121801,0.390413572995905,0.390299956861823,0.390236291442656,0.390236291442656, +0.483318898246813,0.483318898246813,0.483301814415958,0.483193398728279,0.483019038044854,0.482811901584519,0.48260796849146,0.482443182992029,0.482349966112427,0.482349966112427, +0.59438101321224,0.59438101321224,0.594321828177028,0.594142884834238,0.593881192059016,0.593581063114829,0.593287514609935,0.593046861625076,0.592906785325427,0.592906785325427, +0.720543605284641,0.720543605284641,0.720436038228417,0.720157344727181,0.719775703113535,0.719351107101348,0.718934894166748,0.71858152423524,0.71836133997074,0.71836133997074, +0.857442560820981,0.857442560820981,0.857305536509504,0.856870532658703,0.85632519879807,0.855743043731036,0.855167612962951,0.854646298491714,0.854268310554814,0.854268310554814, + +00:54:29, +0.246860558803432,0.246860558803432,0.246917589988656,0.246925348669629,0.24689527720178,0.246842474149735,0.246783497104612,0.24673389336851,0.246705769976094,0.246705769976094, +0.246860558803432,0.246860558803432,0.246917589988656,0.246925348669629,0.24689527720178,0.246842474149735,0.246783497104612,0.24673389336851,0.246705769976094,0.246705769976094, +0.271285627253515,0.271285627253515,0.271336133421291,0.271333680529567,0.271290913039709,0.271224558075444,0.27115301843266,0.271093684452282,0.271060229024776,0.271060229024776, +0.319660667477186,0.319660667477186,0.319697464825788,0.319673653934616,0.31960436109599,0.319509671201819,0.31941177474588,0.319331904966076,0.319287124273147,0.319287124273147, +0.390947298419066,0.390947298419066,0.390962021167662,0.390903849141539,0.390791901144427,0.390651582381337,0.390510951832588,0.390397360989021,0.39033370966868,0.39033370966868, +0.483404151983519,0.483404151983519,0.483387071451083,0.483278679206474,0.483104356478809,0.482897265161698,0.482693376449813,0.482528626694994,0.482435429957209,0.482435429957209, +0.594450011270273,0.594450011270273,0.594390836124052,0.594211928674126,0.59395028988757,0.593650223495569,0.593356736313284,0.593116133455852,0.592976086165433,0.592976086165433, +0.720592320190632,0.720592320190632,0.720484771906772,0.720206131982463,0.719824565383346,0.719400053641024,0.718983923463175,0.718630623468983,0.71841048238145,0.71841048238145, +0.857467807328283,0.857467807328283,0.857330808285626,0.856895884897166,0.856350652974991,0.855768607384368,0.855193284884191,0.854672068009716,0.854294150130743,0.854294150130743, + +00:54:30, +0.246973005568135,0.246973005568135,0.247030034997997,0.247037799330099,0.247007738934667,0.246954949752949,0.246895986494615,0.246846393749939,0.246818276435899,0.246818276435899, +0.246973005568135,0.246973005568135,0.247030034997997,0.247037799330099,0.247007738934667,0.246954949752949,0.246895986494615,0.246846393749939,0.246818276435899,0.246818276435899, +0.271395849668973,0.271395849668973,0.271446353877786,0.271443907871433,0.271401153746486,0.271334815497949,0.2712632924773,0.271203971765684,0.2711705236855,0.2711705236855, +0.319766042161424,0.319766042161424,0.319802837694403,0.319779036571556,0.319709761981924,0.31961509470644,0.319517220701808,0.319437368868258,0.31939259813539,0.31939259813539, +0.391044554907661,0.391044554907661,0.391059277261127,0.391001120245209,0.390889198487398,0.390748911670351,0.390608312688452,0.390494747127096,0.390431109900931,0.390431109900931, +0.483489386286846,0.483489386286846,0.483472309054242,0.483363940245289,0.483189655459537,0.482982609268427,0.482778764920434,0.482614050896164,0.482520874292238,0.482520874292238, +0.594518990891797,0.594518990891797,0.594459825634418,0.594280954065041,0.594019369246206,0.593719365381065,0.593425939496098,0.59318538674529,0.593045368452082,0.593045368452082, +0.720641020581482,0.720641020581482,0.72053349106597,0.720254904699394,0.719873413085816,0.719448985579755,0.719032938125266,0.71867970804022,0.718459610112477,0.718459610112477, +0.857493045820842,0.857493045820842,0.857356072038587,0.856921229084282,0.856376099063674,0.855794162909114,0.855218948636751,0.854697829323192,0.854319981476961,0.854319981476961, + +00:54:31, +0.24708544209892,0.24708544209892,0.247142469767567,0.247150239747323,0.247120190422767,0.247067415111196,0.247008465640208,0.246958883887688,0.246930772652499,0.246930772652499, +0.24708544209892,0.24708544209892,0.247142469767567,0.247150239747323,0.247120190422767,0.247067415111196,0.247008465640208,0.246958883887688,0.246930772652499,0.246930772652499, +0.271506060011445,0.271506060011445,0.271556562257067,0.271554123132777,0.271511382370247,0.271445060835636,0.271373554435873,0.271314246992229,0.271280806258978,0.271280806258978, +0.319871401801342,0.319871401801342,0.31990819551702,0.319884404159067,0.319815147813781,0.319720503151826,0.319622651593624,0.319542817702506,0.319498056927593,0.319498056927593, +0.39114179345491,0.39114179345491,0.391156515413862,0.391098373403581,0.390986477876709,0.390846222995376,0.390705655570033,0.390592115282588,0.39052849214595,0.39052849214595, +0.483574601168212,0.483574601168212,0.48355752723685,0.48344918185614,0.483274934998458,0.483067933916137,0.482864133914764,0.482699455606988,0.482606299128967,0.482606299128967, +0.594587952090238,0.594587952090238,0.594528796721546,0.594349961020411,0.594088430148368,0.593788488784782,0.593495124171858,0.59325462150689,0.593114632198883,0.593114632198883, +0.720689706468997,0.720689706468997,0.720582195717818,0.720303662889795,0.719922246232789,0.719497902929418,0.719081938164925,0.718728777960882,0.718508723175766,0.718508723175766, +0.857518276305542,0.857518276305542,0.857381327775281,0.856946565226966,0.856401537071068,0.855819710312262,0.855244604227655,0.854723582439199,0.854345804600547,0.854345804600547, + +00:54:32, +0.247197868387327,0.247197868387327,0.247254894288913,0.247262669912845,0.247232631657618,0.247179870216005,0.24712093453291,0.247071363773265,0.247043258617398,0.247043258617398, +0.247197868387327,0.247197868387327,0.247254894288913,0.247262669912845,0.247232631657618,0.247179870216005,0.24712093453291,0.247071363773265,0.247043258617398,0.247043258617398, +0.271616258275735,0.271616258275735,0.271666758553943,0.271664326308405,0.271621598905795,0.271555294083295,0.271483804303165,0.271424510126695,0.271391076739983,0.271391076739983, +0.319976746397302,0.319976746397302,0.320013538294003,0.319989756697508,0.319920518591916,0.319825896538331,0.319728067421676,0.319648251469164,0.319603500650095,0.319603500650095, +0.391239014067344,0.391239014067344,0.391253735632396,0.391195608623179,0.391083739318887,0.39094351636294,0.39080298048386,0.390689465462027,0.390625856410267,0.390625856410267, +0.483659796639024,0.483659796639024,0.483642726010304,0.483534404050428,0.483360195106981,0.483153239116245,0.482949483444232,0.482784840838905,0.482691704478839,0.482691704478839, +0.594656894879005,0.594656894879005,0.594597749398842,0.59441894955365,0.594157472607484,0.593857593720164,0.593564290354032,0.593323837754136,0.593183877419331,0.593183877419331, +0.720738377864967,0.720738377864967,0.720630885874105,0.720352406565472,0.719971064836098,0.719546805701872,0.719130923594041,0.718777833242883,0.718557821583249,0.718557821583249, +0.857543498789261,0.857543498789261,0.857406575502591,0.856971893332128,0.856426967004113,0.855845249600789,0.855270251663915,0.854749327364781,0.854371619508569,0.854371619508569, + +00:54:33, +0.24731028442491,0.24731028442491,0.247367308553596,0.247375089818227,0.247345062630775,0.247292315058917,0.247233393164253,0.247183833398195,0.247155734322114,0.247155734322114, +0.24731028442491,0.24731028442491,0.247367308553596,0.247375089818227,0.247345062630775,0.247292315058917,0.247233393164253,0.247183833398195,0.247155734322114,0.247155734322114, +0.27172644445666,0.27172644445666,0.271776942763235,0.271774517393135,0.271731803347939,0.271665515235732,0.27159404207397,0.271534761163867,0.271501335123298,0.271501335123298, +0.32008207594967,0.32008207594967,0.320118866025714,0.320095094187242,0.320025874316688,0.319931274866306,0.319833468186312,0.319753670168577,0.319708929303241,0.319708929303241, +0.391336216751488,0.391336216751488,0.39135093792325,0.391292825910525,0.391180982820453,0.391040791779567,0.390900287436457,0.39078679767194,0.390723202700411,0.390723202700411, +0.483744972710672,0.483744972710672,0.483727905385993,0.483619606839541,0.4834454357965,0.483238524880156,0.483034813520252,0.482870206603337,0.482777090353283,0.482777090353283, +0.59472581927149,0.59472581927149,0.594666683679694,0.594487919678151,0.594226496636964,0.593926680200643,0.59363343805607,0.593393035500495,0.593253104126901,0.593253104126901, +0.720787034781167,0.720787034781167,0.720679561546609,0.720401135738217,0.720019868907557,0.719595693908961,0.71917989442449,0.718826873898122,0.718606905346838,0.718606905346838, +0.857568713278866,0.857568713278866,0.857431815227391,0.856997213406666,0.856452388869743,0.855870780781661,0.855295890952536,0.854775064106974,0.854397426208086,0.854397426208086, + +00:54:34, +0.247422690203241,0.247422690203241,0.247479712553194,0.247487499455044,0.247457483333806,0.247404749631493,0.247345841525785,0.247296292754014,0.247268199758181,0.247268199758181, +0.247422690203241,0.247422690203241,0.247479712553194,0.247487499455044,0.247457483333806,0.247404749631493,0.247345841525785,0.247296292754014,0.247268199758181,0.247268199758181, +0.271836618549044,0.271836618549044,0.271887114879772,0.271884696381796,0.271841995691504,0.271775724287759,0.271704267743091,0.271645000098544,0.271611581403718,0.271611581403718, +0.320187390458812,0.320187390458812,0.320224178712523,0.320200416628635,0.320131214988459,0.320036638136111,0.319938853887885,0.319859073801095,0.319814342887377,0.319814342887377, +0.391433401513862,0.391433401513862,0.391448122292941,0.391390025272134,0.391278208387921,0.391138049251771,0.390997576434343,0.390884111918846,0.390820531022902,0.390820531022902, +0.483830129394535,0.483830129394535,0.483813065375288,0.483704790234854,0.483530657078396,0.483323791219261,0.483120124154225,0.482955552911696,0.482862456763715,0.482862456763715, +0.594794725281069,0.594794725281069,0.594735599577473,0.594556871407294,0.594295502250201,0.593995748239631,0.593702567291405,0.593462214759417,0.593322312335055,0.593322312335055, +0.720835677229358,0.720835677229358,0.72072822274709,0.720449850419804,0.720068658458966,0.719644567562516,0.719228850668129,0.718875899938484,0.718655974478435,0.718655974478435, +0.857593919781217,0.857593919781217,0.857457046956548,0.857022525457469,0.856477802674879,0.855896303861839,0.855321522100513,0.854800792672807,0.854423224706148,0.854423224706148, + +00:54:35, +0.247535085713905,0.247535085713905,0.247592106279298,0.247599898814887,0.247569893758294,0.247517173925305,0.247458279609067,0.247408741832278,0.247380654917147,0.247380654917147, +0.247535085713905,0.247535085713905,0.247592106279298,0.247599898814887,0.247569893758294,0.247517173925305,0.247458279609067,0.247408741832278,0.247380654917147,0.247380654917147, +0.271946780547725,0.271946780547725,0.271997274898394,0.271994863269226,0.271952175931322,0.271885921234201,0.271814481305346,0.271755226925535,0.271721815576047,0.271721815576047, +0.3202926899251,0.3202926899251,0.320329476354799,0.320305724022054,0.320236540607593,0.320141986348103,0.320044224526751,0.319964462367068,0.319919741402854,0.319919741402854, +0.391530568360979,0.391530568360979,0.391545288747978,0.391487206714512,0.391375416027801,0.391235288786064,0.39109484748403,0.390981408209259,0.390917841384255,0.390917841384255, +0.483915266701979,0.483915266701979,0.48389820598955,0.483789954247727,0.483615858964038,0.483409038144939,0.483205415357541,0.483040879775377,0.482947803721537,0.482947803721537, +0.594863612921099,0.594863612921099,0.594804497105534,0.594625804754439,0.594364489460573,0.594064797850525,0.593771678073454,0.593531375544336,0.593391502057236,0.593391502057236, +0.720884305221285,0.720884305221285,0.720776869487293,0.720498550621994,0.72011743350211,0.71969342667435,0.719277792336803,0.718924911375838,0.718705028989924,0.718705028989924, +0.857619118303164,0.857619118303164,0.857482270696918,0.85704782949142,0.856503208426434,0.855921818848271,0.855347145114831,0.854826513069297,0.854449015009797,0.854449015009797, + +00:54:36, +0.247647470948502,0.247647470948502,0.247704489723515,0.247712287889361,0.247682293895838,0.247629587931941,0.247570707405677,0.247521180624554,0.247493099790576,0.247493099790576, +0.247647470948502,0.247647470948502,0.247704489723515,0.247712287889361,0.247682293895838,0.247629587931941,0.247570707405677,0.247521180624554,0.247493099790576,0.247493099790576, +0.272056930447549,0.272056930447549,0.272107422813953,0.272105018050276,0.272062344062235,0.271996106069892,0.271924682755559,0.271865441639657,0.271832037635098,0.271832037635098, +0.320397974348905,0.320397974348905,0.320434758952916,0.320411016367871,0.320341851174458,0.320247319502646,0.320149580103266,0.320069835866852,0.320025124850023,0.320025124850023, +0.391627717299347,0.391627717299347,0.391642437294865,0.391584370244165,0.391472605746594,0.391332510388949,0.391192100592024,0.391078686549688,0.39101513379098,0.39101513379098, +0.484000384644356,0.484000384644356,0.483983327240127,0.483875098889511,0.483701041464782,0.483494265668553,0.483290687141574,0.483126187205767,0.483033131238138,0.483033131238138, +0.594932482204925,0.594932482204925,0.594873376277214,0.594694719732934,0.59443345828144,0.594133829046705,0.593840770415617,0.593600517868668,0.59346067330687,0.59346067330687, +0.720932918768678,0.720932918768678,0.72082550177895,0.720547236356534,0.720166194048761,0.719742271256263,0.719326719442341,0.718973908222038,0.718754068893173,0.718754068893173, +0.857644308851547,0.857644308851547,0.857507486455348,0.85707312551539,0.856528606131315,0.855947325747899,0.855372760002467,0.854852225303455,0.854474797126063,0.854474797126063, + +00:54:37, +0.247759845898648,0.247759845898648,0.247816862877466,0.247824666670087,0.247794683738052,0.247741991643005,0.247683124907209,0.247633609122427,0.247605534370046,0.247605534370046, +0.247759845898648,0.247759845898648,0.247816862877466,0.247824666670087,0.247794683738052,0.247741991643005,0.247683124907209,0.247633609122427,0.247605534370046,0.247605534370046, +0.272167068243375,0.272167068243375,0.272217558621311,0.272215160719803,0.272172500079098,0.272106278789678,0.272034872088567,0.27197564423574,0.271942247575699,0.271942247575699, +0.320503243730604,0.320503243730604,0.320540026507249,0.32051629366646,0.320447146689422,0.320352637600105,0.320254920617792,0.320175194300803,0.320130493229241,0.320130493229241, +0.391724848335467,0.391724848335467,0.3917395679401,0.391681515867586,0.391569777550799,0.391429714066924,0.391289335764824,0.391175946946633,0.391112408249579,0.391112408249579, +0.484085483233005,0.484085483233005,0.484068429138351,0.48396022417154,0.483786204591969,0.483579473801457,0.483375939517688,0.483211475214235,0.483118439324894,0.483118439324894, +0.59500133314587,0.59500133314587,0.594942237105836,0.594763616356106,0.594502408726147,0.594202841841535,0.593909844331277,0.593669641745814,0.593529826097368,0.593529826097368, +0.720981517883252,0.720981517883252,0.720874119633776,0.720595907635154,0.720214940110672,0.719791101320039,0.719375631996555,0.719022890488922,0.718803094200036,0.718803094200036, +0.857669491433198,0.857669491433198,0.857532694238678,0.857098413536242,0.856553995796416,0.855972824567654,0.85539836677039,0.854877929382278,0.854500571061971,0.854500571061971, + +00:54:38, +0.247872210555973,0.247872210555973,0.247929225732789,0.247937035148699,0.247907063276564,0.247854385050115,0.247795532105268,0.247746027317493,0.247717958647152,0.247717958647152, +0.247872210555973,0.247872210555973,0.247929225732789,0.247937035148699,0.247907063276564,0.247854385050115,0.247795532105268,0.247746027317493,0.247717958647152,0.247717958647152, +0.27227719393007,0.27227719393007,0.272327682315339,0.272325291272679,0.272282643976775,0.272216439388414,0.272145049299218,0.272085834708625,0.272052445392683,0.272052445392683, +0.320608498070575,0.320608498070575,0.320645279018177,0.320621555918196,0.32055242715286,0.320457940640848,0.320360246070692,0.320280537669281,0.320235846540864,0.320235846540864, +0.391821961475835,0.391821961475835,0.391836680690175,0.391778643591269,0.391666931446905,0.391526899826483,0.391386553008926,0.391273189406592,0.39120966476655,0.39120966476655, +0.484170562479252,0.484170562479252,0.484153511695544,0.484045330105136,0.483871348356928,0.483664662554988,0.48346117249723,0.48329674381214,0.483203727993168,0.483203727993168, +0.595070165757244,0.595070165757244,0.595011079604705,0.594832494637267,0.594571340808019,0.594271836248361,0.593978899833802,0.593738747189159,0.593598960442124,0.593598960442124, +0.721030102576707,0.721030102576707,0.720922723063471,0.720644564469569,0.720263671699585,0.719839916877447,0.719424530011246,0.719071858188314,0.718852104922353,0.718852104922353, +0.857694666054942,0.857694666054942,0.857557894053738,0.857123693560831,0.856579377428624,0.855998315314459,0.855423965425557,0.85490362531276,0.854526336824533,0.854526336824533, + +00:54:39, +0.247984564912121,0.247984564912121,0.248041578281134,0.248049393316849,0.248019432503018,0.247966768144904,0.247907928991478,0.247858435201368,0.2478303726135,0.2478303726135, +0.247984564912121,0.247984564912121,0.248041578281134,0.248049393316849,0.248019432503018,0.247966768144904,0.247907928991478,0.247858435201368,0.2478303726135,0.2478303726135, +0.272387307502513,0.272387307502513,0.272437793890919,0.272435409703785,0.272392775750141,0.272326587860968,0.272255214382368,0.272196013053161,0.272162631080899,0.272162631080899, +0.320713737369199,0.320713737369199,0.320750516486082,0.32072680312346,0.320657692565146,0.320563228625246,0.320465556462333,0.320385865972649,0.320341184785253,0.320341184785253, +0.39191905672694,0.39191905672694,0.391933775551576,0.391875753421696,0.391764067441398,0.391624067674111,0.391483752330817,0.391370413936054,0.391306903348384,0.391306903348384, +0.48425562239441,0.48425562239441,0.484238574923012,0.484130416701608,0.483956472770975,0.483749831940472,0.483546386091537,0.483381993010826,0.483288997254311,0.483288997254311, +0.595138980052341,0.595138980052341,0.595079903787109,0.594901354589714,0.59464025454037,0.594340812280514,0.594047936936542,0.593807834212068,0.593668076354514,0.593668076354514, +0.721078672860728,0.721078672860728,0.720971312079721,0.72069320687148,0.720312388827223,0.719888717940241,0.719473413498195,0.719120811332021,0.718901101071948,0.718901101071948, +0.857719832723592,0.857719832723592,0.857583085907347,0.857148965596002,0.856604751034816,0.856023797995228,0.855449555974919,0.854929313101882,0.854552094420754,0.854552094420754, + +00:54:40, +0.248096908958753,0.248096908958753,0.248153920514168,0.248161741166202,0.24813179140907,0.24807914091902,0.248020315557476,0.24797083276568,0.247942776260716,0.247942776260716, +0.248096908958753,0.248096908958753,0.248153920514168,0.248161741166202,0.24813179140907,0.24807914091902,0.248020315557476,0.24797083276568,0.247942776260716,0.247942776260716, +0.272497408955593,0.272497408955593,0.272547893342945,0.272545516008011,0.27250289539408,0.272436724202214,0.272365367332886,0.272306179264209,0.272272804635203,0.272272804635203, +0.320818961626861,0.320818961626861,0.320855738911348,0.320832035282633,0.320762942926658,0.320668501553672,0.320570851793083,0.320491179211273,0.320446507962773,0.320446507962773, +0.392016134095266,0.392016134095266,0.392030852530784,0.391972845365347,0.391861185540757,0.391721217616288,0.391580933736981,0.391467620541505,0.391404124001566,0.391404124001566, +0.484340662989778,0.484340662989778,0.484323618832051,0.484215483972253,0.484041577845413,0.483834981969222,0.483631580311931,0.483467222821625,0.483374247119659,0.483374247119659, +0.595207776044435,0.595207776044435,0.595148709666321,0.594970196226726,0.594709149936491,0.594409769951308,0.594116955652831,0.593876902827893,0.5937371738479,0.5937371738479, +0.721127228746986,0.721127228746986,0.721019886694198,0.720741834852572,0.720361091505297,0.71993750452016,0.719522282469171,0.719169749931839,0.718950082660628,0.718950082660628, +0.857744991445955,0.857744991445955,0.857608269806319,0.857174229648591,0.856630116621863,0.856049272616865,0.855475138425416,0.854954992756616,0.854577843857628,0.854577843857628, + +00:54:41, +0.248209242687544,0.248209242687544,0.248266252423573,0.248274078688437,0.248244139986396,0.248191503364126,0.248132691794913,0.248083220002071,0.248055169580438,0.248055169580438, +0.248209242687544,0.248209242687544,0.248266252423573,0.248274078688437,0.248244139986396,0.248191503364126,0.248132691794913,0.248083220002071,0.248055169580438,0.248055169580438, +0.272607498284208,0.272607498284208,0.27265798066632,0.272655610180259,0.272613002903488,0.272546848407042,0.27247550814565,0.272416333336641,0.272382966050462,0.272382966050462, +0.320924170843948,0.320924170843948,0.320960946294362,0.3209372523961,0.320868178237779,0.320773759426503,0.320676132063316,0.320596477385521,0.32055181607379,0.32055181607379, +0.392113193587291,0.392113193587291,0.392127911634272,0.392069919428694,0.391958285751456,0.39181834965949,0.391678097233893,0.391564809229421,0.391501326732576,0.391501326732576, +0.484425684276644,0.484425684276644,0.484408643433942,0.484300531928353,0.484126663591532,0.483920112652536,0.483716755169723,0.483552433255855,0.483459477600535,0.483459477600535, +0.595276553746787,0.595276553746787,0.595217497255596,0.595039019561565,0.594778027009663,0.59447870927404,0.594185955995986,0.593945953049968,0.593806252935624,0.593806252935624, +0.721175770247135,0.721175770247135,0.721068446918556,0.720790448424517,0.720409779745501,0.719986276628929,0.719571136935929,0.719218673999544,0.718999049700188,0.718999049700188, +0.857770142228826,0.857770142228826,0.857633445757458,0.857199485725426,0.856655474196623,0.856074739186267,0.855500712783979,0.854980664283926,0.854603585142144,0.854603585142144, + +00:54:42, +0.248321566090183,0.248321566090183,0.248378574001043,0.248386405875248,0.248356478226682,0.2483038554719,0.248245057695457,0.248195596902201,0.248167552564318,0.248167552564318, +0.248321566090183,0.248321566090183,0.248378574001043,0.248386405875248,0.248356478226682,0.2483038554719,0.248245057695457,0.248195596902201,0.248167552564318,0.248167552564318, +0.272717575483268,0.272717575483268,0.272768055855957,0.272765692215441,0.27272309827327,0.272656960470347,0.272585636815548,0.272526475265338,0.272493115321555,0.272493115321555, +0.321029365020848,0.321029365020848,0.321066138635512,0.321042454464249,0.320973398498891,0.320879002244118,0.320781397273404,0.320701760495764,0.320657109118673,0.320657109118673, +0.392210235209486,0.392210235209486,0.392224952868509,0.392166975618205,0.39205536807996,0.391915463810186,0.391775242828024,0.391661980006276,0.391598511547888,0.391598511547888, +0.484510686266281,0.484510686266281,0.484493648739953,0.484385560581179,0.484211730020607,0.484005224001702,0.483801910676209,0.483637624324822,0.48354468870825,0.48354468870825, +0.59534531317264,0.59534531317264,0.595286266568173,0.595107824607478,0.594846885773146,0.59454763026199,0.594254937979308,0.594014984891611,0.593875313631015,0.593875313631015, +0.721224297372817,0.721224297372817,0.721116992764437,0.72083904759897,0.720458453559517,0.720035034278256,0.719619976910205,0.7192675835469,0.719048002202406,0.719048002202406, +0.857795285078994,0.857795285078994,0.857658613767557,0.857224733833325,0.856680823765948,0.85610019771032,0.855526279057533,0.855006327690767,0.854629318281277,0.854629318281277, + +00:54:43, +0.248433879158375,0.248433879158375,0.24849088523829,0.248498722718347,0.248468806121631,0.248416197234035,0.248357413250791,0.248307963457741,0.248279925204025,0.248279925204025, +0.248433879158375,0.248433879158375,0.24849088523829,0.248498722718347,0.248468806121631,0.248416197234035,0.248357413250791,0.248307963457741,0.248279925204025,0.248279925204025, +0.272827640547693,0.272827640547693,0.272878118906779,0.272875762108479,0.272833181498344,0.272767060387038,0.272695753337481,0.272636605045193,0.272603252443368,0.272603252443368, +0.321134544157954,0.321134544157954,0.321171315935193,0.32114764148747,0.32107860371038,0.320984230006899,0.320886647423726,0.320807028542376,0.320762387097794,0.320762387097794, +0.392307258968317,0.392307258968317,0.392321976239956,0.392264013940341,0.392152432532733,0.392012560074837,0.391872370525839,0.391759132878536,0.391695678453969,0.391695678453969, +0.484595668969949,0.484595668969949,0.48457863476134,0.484470569941987,0.484296777143904,0.484090316027992,0.483887046842673,0.483722796039818,0.483629880454102,0.483629880454102, +0.59541405433522,0.59541405433522,0.595355017617276,0.595176611377694,0.594915726240184,0.594616532928424,0.594323901616082,0.594083998366122,0.593944355947384,0.593944355947384, +0.721272810135656,0.721272810135656,0.721165524243467,0.720887632387572,0.720507112959008,0.720083777479835,0.719668802403723,0.719316478585655,0.719096940179045,0.719096940179045, +0.857820420003238,0.857820420003238,0.857683773843402,0.857249973979099,0.85670616533668,0.856125648195902,0.855551837252989,0.855031982984086,0.854655043281996,0.854655043281996, + +00:54:44, +0.248546181883838,0.248546181883838,0.248603186127039,0.248611029209456,0.248581123662961,0.248528528642237,0.248469758452609,0.248420319660381,0.248392287491241,0.248392287491241, +0.248546181883838,0.248546181883838,0.248603186127039,0.248611029209456,0.248581123662961,0.248528528642237,0.248469758452609,0.248420319660381,0.248392287491241,0.248392287491241, +0.272937693472414,0.272937693472414,0.272988169813722,0.272985819854305,0.272943252573636,0.272877148152033,0.272805857706358,0.272746722671109,0.272713377410802,0.272713377410802, +0.321239708255661,0.321239708255661,0.321276478193798,0.321252813466155,0.321183793872638,0.321089442715231,0.320991882514662,0.320912281525734,0.320867650011528,0.320867650011528, +0.392404264870244,0.392404264870244,0.392418981755071,0.392361034401556,0.392249479116228,0.392109638459901,0.391969480333798,0.391856267852662,0.391792827457281,0.391792827457281, +0.484680632398896,0.484680632398896,0.484663601509344,0.484555560022021,0.484381804972671,0.484175388742668,0.483972163680385,0.483807948412123,0.483715052849375,0.483715052849375, +0.595482777247739,0.595482777247739,0.59542375041611,0.595245379885428,0.594984548424008,0.594685417286588,0.594392846919574,0.594152993486786,0.594013379898024,0.594013379898024, +0.721321308547263,0.721321308547263,0.721214041367256,0.720936202801949,0.720555757955626,0.720132506245345,0.719717613428191,0.719365359127542,0.719145863641854,0.719145863641854, +0.857845547008328,0.857845547008328,0.85770892599177,0.857275206169548,0.856731498915652,0.856151090649881,0.855577387377254,0.855057630170817,0.854680760151259,0.854680760151259, + +00:54:45, +0.248658474258307,0.248658474258307,0.24871547665903,0.248723325340315,0.248693430842403,0.248640849688229,0.248582093292625,0.248532665501823,0.248504639417666,0.248504639417666, +0.248658474258307,0.248658474258307,0.24871547665903,0.248723325340315,0.248693430842403,0.248640849688229,0.248582093292625,0.248532665501823,0.248504639417666,0.248504639417666, +0.273047734252371,0.273047734252371,0.27309820857173,0.273095865447862,0.273053311494082,0.272987223760261,0.272915949917098,0.272856828137997,0.272823490218765,0.272823490218765, +0.321344857314367,0.321344857314367,0.321381625411726,0.321357970400702,0.321288968986054,0.321194640369501,0.321097102546596,0.321017519446218,0.320972897860253,0.320972897860253, +0.392501252921721,0.392501252921721,0.392515969420304,0.392458037008299,0.392346507836896,0.392206698971829,0.392066572258352,0.391953384935109,0.39188995856428,0.39188995856428, +0.484765576564357,0.484765576564357,0.484748548995194,0.484640530832511,0.484466813518147,0.484260442156975,0.484057261200603,0.483893081453004,0.48380020590534,0.48380020590534, +0.59555148192339,0.59555148192339,0.595492464977866,0.595314130143877,0.595053352337828,0.594754283349716,0.594461773903037,0.594221970266872,0.594082385496215,0.594082385496215, +0.721369792619234,0.721369792619234,0.721262544147402,0.720984758853712,0.720604388561005,0.720181220586451,0.719766409995304,0.719414225184279,0.719194772602566,0.719194772602566, +0.857870666101026,0.857870666101026,0.857734070219429,0.857300430411465,0.856756824509689,0.856176525079119,0.855602929437222,0.85508326925789,0.854706468896018,0.854706468896018, + +00:54:46, +0.24877075627353,0.24877075627353,0.248827756826019,0.248835611102678,0.248805727651706,0.248753160363748,0.248694417762564,0.248645000973784,0.248616980975011,0.248616980975011, +0.24877075627353,0.24877075627353,0.248827756826019,0.248835611102678,0.248805727651706,0.248753160363748,0.248694417762564,0.248645000973784,0.248616980975011,0.248616980975011, +0.273157762882515,0.273157762882515,0.273208235175757,0.273205898884104,0.273163358254631,0.273097287206661,0.273026029964632,0.272966921440782,0.272933590862177,0.272933590862177, +0.321449991334471,0.321449991334471,0.321486757589377,0.321463112291507,0.321394129051024,0.3212998229701,0.321202307519912,0.321122742304209,0.321078130644349,0.321078130644349, +0.392598223129196,0.392598223129196,0.392612939242099,0.392555021767015,0.39244351870118,0.392303741617066,0.392163646305948,0.392050484132325,0.391987071781417,0.391987071781417, +0.484850501477553,0.484850501477553,0.484833477230108,0.484725482384677,0.484551802791557,0.484345476282148,0.484142339414572,0.483978195173712,0.483885339633257,0.483885339633257, +0.595620168375351,0.595620168375351,0.595561161315718,0.595382862166221,0.595122137994842,0.594823131131021,0.594530682579707,0.594290928719632,0.594151372755217,0.594151372755217, +0.72141826236315,0.72141826236315,0.721311032595485,0.721033300554458,0.720653004786766,0.720229920514802,0.719815192116738,0.71946307676757,0.719243667072899,0.719243667072899, +0.857895777288085,0.857895777288085,0.857759206533139,0.857325646711632,0.856782142125605,0.856201951490466,0.85562846343978,0.855108900252223,0.854732169523213,0.854732169523213, + +00:54:47, +0.248883027921271,0.248883027921271,0.248940026619774,0.248947886488314,0.24891801408263,0.248865460660545,0.248806731854168,0.248757326067997,0.248729312155004,0.248729312155004, +0.248883027921271,0.248883027921271,0.248940026619774,0.248947886488314,0.24891801408263,0.248865460660545,0.248806731854168,0.248757326067997,0.248729312155004,0.248729312155004, +0.273267779357807,0.273267779357807,0.27331824962077,0.273315920157994,0.273273392850239,0.273207338486182,0.273136097843901,0.273077002574397,0.273043679335967,0.273043679335967, +0.321555110316378,0.321555110316378,0.321591874727155,0.321568239138973,0.321499274067946,0.32140499051742,0.321307497434999,0.321227950100094,0.3211833483642,0.3211833483642, +0.392695175499111,0.392695175499111,0.392709891226894,0.39265198868414,0.392540511715519,0.392400766402051,0.39226070248303,0.392147565450754,0.392084167115135,0.392084167115135, +0.484935407149692,0.484935407149692,0.484918386225289,0.484810414689722,0.484636772804111,0.484430491129409,0.484227398333522,0.48406328958549,0.48397045404437,0.48397045404437, +0.595688836616783,0.595688836616783,0.595629839442823,0.595451575965625,0.595190905408227,0.594891960643703,0.5945995729628,0.5943598688583,0.594220341688275,0.594220341688275, +0.721466717790576,0.721466717790576,0.721359506723072,0.721081827915766,0.720701606644514,0.720278606042032,0.719863959804157,0.719511913889102,0.719292547064557,0.719292547064557, +0.857920880576248,0.857920880576248,0.85778433493965,0.857350855076825,0.856807451770209,0.856227369890765,0.855653989391806,0.855134523160726,0.854757862039777,0.854757862039777, + +00:54:48, +0.248995289193307,0.248995289193307,0.249052286032081,0.249060151489005,0.249030290126952,0.248977750570388,0.248919035559191,0.248869640776209,0.248841632949387,0.248841632949387, +0.248995289193307,0.248995289193307,0.249052286032081,0.249060151489005,0.249030290126952,0.248977750570388,0.248919035559191,0.248869640776209,0.248841632949387,0.248841632949387, +0.273377783673219,0.273377783673219,0.273428251901742,0.273425929264506,0.273383415275874,0.273317377593783,0.273246153549856,0.273187071533787,0.273153755635076,0.273153755635076, +0.321660214260492,0.321660214260492,0.321696976825464,0.321673350943503,0.32160440403722,0.321510143011856,0.321412672292249,0.321333142834259,0.32128855102019,0.32128855102019, +0.392792110037902,0.392792110037902,0.392806825381124,0.392748937766106,0.392637486886343,0.392497773333218,0.39235774079603,0.392244628896834,0.392181244571873,0.392181244571873, +0.485020293591971,0.485020293591971,0.485003275991926,0.484895327758839,0.48472172356701,0.484515486709965,0.484312437968674,0.484148364699564,0.484055549149912,0.484055549149912, +0.595757486660831,0.595757486660831,0.595698499372322,0.595520271555237,0.595259654591148,0.594960771900945,0.594668445065521,0.594428790696096,0.59428929230862,0.59428929230862, +0.721515158913064,0.721515158913064,0.721407966541714,0.721130340949206,0.720750194145841,0.72032727717976,0.719912713069211,0.719560736560549,0.719341412589228,0.719341412589228, +0.85794597597225,0.85794597597225,0.857809455445703,0.857376055513809,0.856832753450297,0.856252780286848,0.85567950730017,0.855160137990299,0.854783546452631,0.854783546452631, + +00:54:49, +0.249107540081432,0.249107540081432,0.249164535054739,0.249172406096549,0.249142555776464,0.249090030085056,0.249031328869406,0.248981945090182,0.248953943349918,0.248953943349918, +0.249107540081432,0.249107540081432,0.249164535054739,0.249172406096549,0.249142555776464,0.249090030085056,0.249031328869406,0.248981945090182,0.248953943349918,0.248953943349918, +0.273487775823732,0.273487775823732,0.273538242013661,0.273535926198624,0.273493425526516,0.273427404524436,0.273356197077459,0.273297128313906,0.273263819754455,0.273263819754455, +0.321765303167223,0.321765303167223,0.321802063884715,0.321778447705503,0.321709518959248,0.321615280453809,0.321517832092056,0.321438320507095,0.32139373861271,0.32139373861271, +0.392889026752,0.392889026752,0.392903741711215,0.392845869019338,0.392734444220079,0.392594762416994,0.39245476125138,0.392341674476994,0.392278304158063,0.392278304158063, +0.485105160815571,0.485105160815571,0.485088146541197,0.484980221603206,0.484806655091437,0.484600463035013,0.484397458331232,0.484233420527149,0.484140624961103,0.484140624961103, +0.595826118520624,0.595826118520624,0.595767141117339,0.595588948948189,0.595328385556752,0.595029564915912,0.594737298901055,0.594497694246223,0.594358224629462,0.594358224629462, +0.721563585742151,0.721563585742151,0.72145641206295,0.721178839666327,0.720798767302322,0.720375933939592,0.719961451923533,0.71960954479357,0.719390263658586,0.719390263658586, +0.857971063482818,0.857971063482818,0.857834568058032,0.857401248029342,0.856858047172658,0.856278182685541,0.855705017171731,0.855185744747834,0.854809222768691,0.854809222768691, + +00:54:50, +0.249219780577454,0.249219780577454,0.24927677367956,0.24928465030276,0.249254811022971,0.249202299196347,0.249143611776597,0.249094239001692,0.249066243348368,0.249066243348368, +0.249219780577454,0.249219780577454,0.24927677367956,0.24928465030276,0.249254811022971,0.249202299196347,0.249143611776597,0.249094239001692,0.249066243348368,0.249066243348368, +0.273597755804339,0.273597755804339,0.273648219951522,0.273645910955342,0.273603423597151,0.27353741927312,0.273466228421681,0.273407172909719,0.273373871689064,0.273373871689064, +0.321870377036981,0.321870377036981,0.321907135905318,0.321883529425384,0.321814618834436,0.321720402843678,0.321622976834817,0.321543483118997,0.321498911142151,0.321498911142151, +0.39298592564783,0.39298592564783,0.393000640223587,0.392942782450256,0.392831383723147,0.3926917336598,0.392551763855502,0.392438702197662,0.392375345880132,0.392375345880132, +0.485190008831663,0.485190008831663,0.485172997884267,0.485065096233991,0.484891567388567,0.484685420115735,0.48448245943239,0.484318457079446,0.48422568148915,0.48422568148915, +0.595894732209274,0.595894732209274,0.595835764690985,0.595657608157597,0.595397098318169,0.595098339701754,0.594806134482572,0.594566579521866,0.594427138663998,0.594427138663998, +0.721611998289358,0.721611998289358,0.721504843298301,0.721227324078667,0.720847326125517,0.720424576333117,0.720010176378741,0.719658338599808,0.719439100284289,0.719439100284289, +0.85799614311467,0.85799614311467,0.857859672783361,0.85742643263017,0.856883332944073,0.856303577093659,0.85573051901334,0.855211343440214,0.854834890994861,0.854834890994861, + +00:54:51, +0.249332010673193,0.249332010673193,0.249389001898375,0.249396884099464,0.249367055858293,0.249314557896071,0.249255884272564,0.249206522502532,0.249178532936523,0.249178532936523, +0.249332010673193,0.249332010673193,0.249389001898375,0.249396884099464,0.249367055858293,0.249314557896071,0.249255884272564,0.249206522502532,0.249178532936523,0.249178532936523, +0.273707723610043,0.273707723610043,0.273758185710332,0.273755883529665,0.27371340948278,0.273647421834826,0.273576247577504,0.273517205316201,0.273483911433875,0.273483911433875, +0.32197543587018,0.32197543587018,0.322012192887687,0.321988596103557,0.321919703663193,0.321825510181867,0.32172810652093,0.321648630670359,0.321604068608906,0.321604068608906, +0.393082806731809,0.393082806731809,0.393097520924656,0.393039678065275,0.392928305401962,0.392788687068054,0.392648748614815,0.392535712065257,0.392472369744501,0.392472369744501, +0.485274837651402,0.485274837651402,0.485257830032288,0.485149951662345,0.484976460469559,0.4847703579633,0.484567441283328,0.484403474367645,0.484310718745245,0.484310718745245, +0.595963327739878,0.595963327739878,0.59590437010635,0.595726249196559,0.595465792888513,0.595167096271605,0.594874951823225,0.594635446536197,0.594496034425409,0.594496034425409, +0.721660396566192,0.721660396566192,0.721553260259275,0.721275794197749,0.720895870626975,0.72047320437191,0.720058886446439,0.719707117990891,0.719487922477982,0.719487922477982, +0.858021214874515,0.858021214874515,0.857884769628405,0.857451609323034,0.856908610771313,0.856328963518008,0.85575601283184,0.855236934074314,0.854860551138038,0.854860551138038, + +00:54:52, +0.249444230360487,0.249444230360487,0.249501219703024,0.249509107478503,0.249479290274266,0.249426806176052,0.249368146349122,0.249318795584506,0.249290812106185,0.249290812106185, +0.249444230360487,0.249444230360487,0.249501219703024,0.249509107478503,0.249479290274266,0.249426806176052,0.249368146349122,0.249318795584506,0.249290812106185,0.249290812106185, +0.273817679235854,0.273817679235854,0.273868139285106,0.273865843916608,0.273823383178411,0.273757412204554,0.27368625453992,0.273627225528338,0.273593938983869,0.273593938983869, +0.322080479667237,0.322080479667237,0.32211723483224,0.322093647740436,0.32202477344593,0.321930602468784,0.321833221150799,0.321753763161581,0.321709211013373,0.321709211013373, +0.393179670010351,0.393179670010351,0.393194383820832,0.393136555870802,0.393025209262932,0.392885622648164,0.392745715535731,0.392632704086192,0.392569375757585,0.392569375757585, +0.485359647285934,0.485359647285934,0.485342642996397,0.485234787899409,0.48506133434556,0.484855276588865,0.484652403895211,0.48448847240292,0.48439573674057,0.48439573674057, +0.596031905125516,0.596031905125516,0.595972957376511,0.595794872078161,0.595534469280883,0.595235834638583,0.594943750936151,0.594704295302368,0.594564911926857,0.594564911926857, +0.721708780584145,0.721708780584145,0.721601662957364,0.72132425003508,0.720944400818226,0.720521818067531,0.720107582138217,0.719755882978433,0.719536730251292,0.719536730251292, +0.858046278769053,0.858046278769053,0.857909858599871,0.857476778114665,0.856933880661142,0.856354341965387,0.855781498634064,0.855262516656997,0.854886203205109,0.854886203205109, + +00:54:53, +0.249556439631187,0.249556439631187,0.249613427085367,0.249621320431733,0.24959151426274,0.249539044028131,0.249480397998101,0.249431058239436,0.24940308084917,0.24940308084917, +0.249556439631187,0.249556439631187,0.249613427085367,0.249621320431733,0.24959151426274,0.249539044028131,0.249480397998101,0.249431058239436,0.24940308084917,0.24940308084917, +0.273927622676797,0.273927622676797,0.273978080670872,0.273975792111196,0.273933344679063,0.273867390377316,0.273796249303933,0.273737233541124,0.273703954334039,0.273703954334039, +0.322185508428571,0.322185508428571,0.322222261739394,0.32219868433644,0.32212982818306,0.322035679704837,0.321938320724828,0.321858880593064,0.321814338355952,0.321814338355952, +0.393276515489862,0.393276515489862,0.393291228918517,0.393233415873239,0.393122095312459,0.392982540406534,0.392842664624656,0.392729678266876,0.392666363925794,0.392666363925794, +0.485444437746389,0.485444437746389,0.485427436787721,0.485319604956311,0.485146189027705,0.484940176003573,0.484737347279195,0.484573451196434,0.484480735486293,0.484480735486293, +0.596100464379252,0.596100464379252,0.596041526514528,0.595863476815467,0.595603127508361,0.595304554815789,0.595012531834472,0.594773125833518,0.594633771181489,0.594633771181489, +0.721757150354695,0.721757150354695,0.721650051404047,0.721372691602153,0.720992916710786,0.720570417431527,0.720156263465649,0.719804633574034,0.719585523615835,0.719585523615835, +0.858071334804975,0.858071334804975,0.857934939704458,0.857501939011784,0.856959142620311,0.856379712442585,0.855806976426835,0.855288091195121,0.854911847202952,0.854911847202952, + +00:54:54, +0.249668638477158,0.249668638477158,0.249725624037274,0.249733522951026,0.249703727815578,0.249651271444162,0.249592639211343,0.249543310459157,0.249515339157309,0.249515339157309, +0.249668638477158,0.249668638477158,0.249725624037274,0.249733522951026,0.249703727815578,0.249651271444162,0.249592639211343,0.249543310459157,0.249515339157309,0.249515339157309, +0.274037553927905,0.274037553927905,0.274088009862666,0.274085728108464,0.274043293979766,0.273977356348133,0.273906231864555,0.273847229349567,0.273813957479385,0.273813957479385, +0.322290522154605,0.322290522154605,0.322327273609574,0.322303705891988,0.322234867875,0.322140741890439,0.322043405243426,0.321963982965213,0.321919450637045,0.321919450637045, +0.393373343176744,0.393373343176744,0.39338805622411,0.393330258078983,0.393218963556941,0.393079440349564,0.392939595887989,0.392826634613711,0.39276333425553,0.39276333425553, +0.485529209043886,0.485529209043886,0.485512211417372,0.485404402844165,0.485231024527114,0.485025056218557,0.484822271446421,0.484658410759339,0.484565714993569,0.484565714993569, +0.596169005514133,0.596169005514133,0.596110077533444,0.595932063421529,0.595671767584011,0.595373256816306,0.595081294531292,0.594841938142767,0.594702612202438,0.594702612202438, +0.721805505889306,0.721805505889306,0.721698425610788,0.721421118910446,0.72104141831616,0.720619002475427,0.720204930440295,0.719853369789277,0.719634302583209,0.719634302583209, +0.858096382988965,0.858096382988965,0.857960012948854,0.857527092021104,0.856984396655568,0.856405074956383,0.855832446216971,0.855313657695533,0.854937483138437,0.854937483138437, + +00:54:55, +0.249780826890282,0.249780826890282,0.249837810550633,0.249845715028267,0.24981593092466,0.249763488416015,0.249704869980708,0.24965555223552,0.249627587022445,0.249627587022445, +0.249780826890282,0.249780826890282,0.249837810550633,0.249845715028267,0.24981593092466,0.249763488416015,0.249704869980708,0.24965555223552,0.249627587022445,0.249627587022445, +0.27414747298422,0.27414747298422,0.274197926855536,0.274195651903458,0.274153231075559,0.274087310112036,0.27401620221681,0.273957212948683,0.273923948414922,0.273923948414922, +0.322395520845762,0.322395520845762,0.322432270443203,0.322408712407503,0.322339892522169,0.322245789026005,0.322148474707002,0.322069070278435,0.322024547857058,0.322024547857058, +0.393470153077392,0.393470153077392,0.393484865744002,0.393427082494424,0.393315814002768,0.393176322483646,0.393036509332127,0.392923573133094,0.392860286753192,0.392860286753192, +0.485613961189529,0.485613961189529,0.485596966896452,0.485489181574074,0.485315840854896,0.485109917244933,0.484907176408017,0.48474335110277,0.48465067527354,0.48465067527354, +0.59623752854319,0.59623752854319,0.596178610446288,0.596000631909383,0.595740389520885,0.595441940653206,0.5951500390397,0.594910732243221,0.594771435002816,0.594771435002816, +0.721853847199425,0.721853847199425,0.721746785589035,0.721469531971423,0.721089905645833,0.720667573210748,0.7202535830737,0.719902091635731,0.719683067164999,0.719683067164999, +0.858121423327696,0.858121423327696,0.857985078339741,0.85755223714933,0.857009642773648,0.856430429513551,0.855857908011278,0.85533921616507,0.854963111018424,0.854963111018424, + +00:54:56, +0.249893004862453,0.249893004862453,0.249949986617345,0.249957896655356,0.249928123581879,0.249875694935571,0.249817090298069,0.249767783560387,0.24973982443644,0.24973982443644, +0.249893004862453,0.249893004862453,0.249949986617345,0.249957896655356,0.249928123581879,0.249875694935571,0.249817090298069,0.249767783560387,0.24973982443644,0.24973982443644, +0.274257379840796,0.274257379840796,0.274307831644538,0.274305563491233,0.274263155961493,0.274197251664068,0.27412616035573,0.274067184333497,0.274033927135672,0.274033927135672, +0.322500504502469,0.322500504502469,0.322537252240708,0.322513703883411,0.322444902124989,0.322350821111951,0.32225352911597,0.32217414253314,0.322129630016398,0.322129630016398, +0.393566945198195,0.393566945198195,0.393581657484578,0.393523889125948,0.393412646656326,0.393273186815166,0.393133404963457,0.393020493831415,0.392957221425171,0.392957221425171, +0.485698694194411,0.485698694194411,0.485681703236047,0.485573941157125,0.485400638022147,0.485194759093808,0.484992062175099,0.484828272237853,0.484735616337335,0.484735616337335, +0.59630603347944,0.59630603347944,0.596247125266071,0.596069182292045,0.595808993332016,0.595510606339539,0.595218765372767,0.594979508147969,0.594840239595724,0.594840239595724, +0.721902174296486,0.721902174296486,0.721795131350222,0.721517930796532,0.721138378711278,0.720716129648991,0.720302221377393,0.719950799124953,0.719731817372774,0.719731817372774, +0.858146455827835,0.858146455827835,0.85801013588379,0.857577374403158,0.857034880981278,0.856455776120853,0.855883361816554,0.855364766610563,0.854988730849764,0.854988730849764, + +00:54:57, +0.250005172385581,0.250005172385581,0.250062152229326,0.250070067824208,0.250040305779143,0.249987890994731,0.249929300155313,0.24988000442564,0.249852051391167,0.249852051391167, +0.250005172385581,0.250005172385581,0.250062152229326,0.250070067824208,0.250040305779143,0.249987890994731,0.249929300155313,0.24988000442564,0.249852051391167,0.249852051391167, +0.274367274492696,0.274367274492696,0.274417724224741,0.274415462866855,0.274373068632628,0.27430718099928,0.274236106276359,0.274177143499047,0.274143893636667,0.274143893636667, +0.322605473125158,0.322605473125158,0.322642219002521,0.322618680320139,0.322549896683885,0.322455838148697,0.322358568470745,0.32227919972974,0.322234697115477,0.322234697115477, +0.393663719545536,0.393663719545536,0.393678431452221,0.393620677979932,0.393509461523993,0.393370033350506,0.393230282788363,0.393117396715058,0.393054138277852,0.393054138277852, +0.485783408069611,0.485783408069611,0.485766420447231,0.485658681604396,0.48548541603995,0.485279581776273,0.48507692875877,0.484913174175698,0.484820538196072,0.484820538196072, +0.59637452033588,0.59637452033588,0.596315622005788,0.59613771458252,0.59587757903042,0.595579253888342,0.595287473543551,0.595048265870082,0.594909025994244,0.594909025994244, +0.721950487191907,0.721950487191907,0.721843462905769,0.721566315397208,0.721186837523954,0.720764671801643,0.720350845362889,0.71999949226848,0.719780553218089,0.719780553218089, +0.858171480496038,0.858171480496038,0.858035185587665,0.857602503789276,0.857060111285178,0.856481114785043,0.855908807639587,0.855390309038832,0.855014342639301,0.855014342639301, + +00:54:58, +0.250117329451589,0.250117329451589,0.250174307378506,0.250182228526752,0.250152477508375,0.250100076585406,0.250041499544344,0.249992214823171,0.249964267878516,0.249964267878516, +0.250117329451589,0.250117329451589,0.250174307378506,0.250182228526752,0.250152477508375,0.250100076585406,0.250041499544344,0.249992214823171,0.249964267878516,0.249964267878516, +0.274477156934994,0.274477156934994,0.274527604591222,0.2745253500254,0.274482969084033,0.274417098112735,0.274346039973751,0.27428709044038,0.27425384791295,0.27425384791295, +0.322710426714259,0.322710426714259,0.322747170729073,0.322723641718119,0.322654876199283,0.322560840136668,0.322463592771747,0.322384241868651,0.322339749154707,0.322339749154707, +0.393760476125794,0.393760476125794,0.393775187653302,0.39371744906275,0.393606258612144,0.39346686209604,0.393327142813221,0.393214281790404,0.393151037317618,0.393151037317618, +0.485868102826197,0.485868102826197,0.485851118541067,0.48574340292695,0.485570174919374,0.485364385303409,0.485161776170119,0.484998056927405,0.484905440860853,0.484905440860853, +0.596442989125496,0.596442989125496,0.596384100678419,0.596206228793793,0.595946146629099,0.595647883312637,0.595356163565091,0.595117005422619,0.594977794211441,0.594977794211441, +0.721998785897095,0.721998785897095,0.721891780267081,0.721614685784871,0.721235282095305,0.720813199680175,0.720399455041691,0.720048171077839,0.719829274712485,0.719829274712485, +0.858196497338954,0.858196497338954,0.858060227458021,0.85762762531436,0.857085333692058,0.856506445512866,0.855934245487159,0.85541584345669,0.855039946393869,0.855039946393869, + +00:54:59, +0.250229476052416,0.250229476052416,0.250286452056829,0.250294378754931,0.250264638761511,0.250212251699524,0.250153688457077,0.250104414744889,0.250076473890391,0.250076473890391, +0.250229476052416,0.250229476052416,0.250286452056829,0.250294378754931,0.250264638761511,0.250212251699524,0.250153688457077,0.250104414744889,0.250076473890391,0.250076473890391, +0.274587027162773,0.274587027162773,0.274637472739068,0.274635224961954,0.274592857310789,0.274527002999505,0.27445596144297,0.274397025152553,0.274363789959576,0.274363789959576, +0.32281536527021,0.32281536527021,0.3228521074208,0.322828588077783,0.322759840671614,0.322665827076288,0.322568602019396,0.32248926895029,0.322444786134505,0.322444786134505, +0.39385721494534,0.39385721494534,0.393871926094192,0.39381420238077,0.393703037927147,0.393563673058137,0.393423985044403,0.393311149063826,0.393247918550841,0.393247918550841, +0.485952778475223,0.485952778475223,0.485935797528604,0.485828105135836,0.485654914671478,0.485449169686282,0.485246604420225,0.485082920504059,0.48499032434277,0.48499032434277, +0.596511439861253,0.596511439861253,0.596452561296927,0.596274724938834,0.596014696141039,0.595716494625426,0.595424835450411,0.595185726818619,0.595046544260366,0.595046544260366, +0.722047070423438,0.722047070423438,0.72194008344555,0.721663041970926,0.721283712436759,0.720861713296046,0.720448050425283,0.72009683556454,0.719877981867487,0.719877981867487, +0.858221506363221,0.858221506363221,0.858085261501504,0.857652738985082,0.857110548208619,0.856531768311058,0.855959675366042,0.855441369870938,0.855065542120291,0.855065542120291, + +00:55:00, +0.250341612180015,0.250341612180015,0.250398586256254,0.250406518500704,0.250376789530503,0.250324416329026,0.250265866885443,0.250216604182716,0.250188669418708,0.250188669418708, +0.250341612180015,0.250341612180015,0.250398586256254,0.250406518500704,0.250376789530503,0.250324416329026,0.250265866885443,0.250216604182716,0.250188669418708,0.250188669418708, +0.274696885171129,0.274696885171129,0.274747328663377,0.274745087671614,0.274702733307987,0.274636895654672,0.27456587067909,0.274506947630633,0.274473719771607,0.274473719771607, +0.322920288793447,0.322920288793447,0.32295702907814,0.322933519399568,0.32286479010131,0.322770798967986,0.322673596214117,0.322594280975078,0.32254980805529,0.32254980805529, +0.393953936010541,0.393953936010541,0.393968646781253,0.393910937940353,0.393799799475362,0.393660466243163,0.393520809488275,0.39340799854169,0.393344781983891,0.393344781983891, +0.48603743502773,0.48603743502773,0.486020457420877,0.485912788242094,0.485739635307305,0.485533934935947,0.48533141352015,0.485167764916734,0.485075188652901,0.485075188652901, +0.596579872556102,0.596579872556102,0.596521003874258,0.596343203030598,0.596083227579208,0.595785087839699,0.595493489212519,0.595254430071107,0.595115276154052,0.595115276154052, +0.722095340782311,0.722095340782311,0.721988372452549,0.721711383966762,0.72133212855973,0.720910212660697,0.720496631525138,0.720145485740078,0.719926674694605,0.719926674694605, +0.858246507575472,0.858246507575472,0.858110287724751,0.857677844808103,0.857135754841554,0.856557083186348,0.855985097282996,0.855466888288371,0.855091129825385,0.855091129825385, + +00:55:01, +0.250453737826354,0.250453737826354,0.250510709968755,0.250518647756043,0.250488929807317,0.250436570465868,0.25037803482139,0.25032878312859,0.250300854455401,0.250300854455401, +0.250453737826354,0.250453737826354,0.250510709968755,0.250518647756043,0.250488929807317,0.250436570465868,0.25037803482139,0.25032878312859,0.250300854455401,0.250300854455401, +0.274806730955164,0.274806730955164,0.274857172359258,0.274854938149486,0.274812597070727,0.274746776073329,0.274675767677196,0.274616857869697,0.274583637344118,0.274583637344118, +0.32302519728441,0.32302519728441,0.323061935701534,0.323038435683914,0.322969724488806,0.322875755812193,0.322778575356336,0.322699277943439,0.322654814917483,0.322654814917483, +0.394050639327755,0.394050639327755,0.394065349720841,0.394007655747854,0.393896543263147,0.393757241657473,0.393617616151197,0.393504830230359,0.393441627623131,0.393441627623131, +0.486122072494747,0.486122072494747,0.48610509822891,0.485997452256749,0.485824336837888,0.485618681063445,0.485416203480949,0.48525259017649,0.485160033802312,0.485160033802312, +0.59664828722298,0.59664828722298,0.596589428423345,0.596411663082023,0.596151740956559,0.595853662968427,0.595562124864407,0.595323115193091,0.595183989905518,0.595183989905518, +0.722143596985077,0.722143596985077,0.722036647299442,0.721759711783758,0.721380530475619,0.720958697785557,0.720545198352711,0.720194121615935,0.719975353205336,0.719975353205336, +0.858271500982329,0.858271500982329,0.858135306134391,0.857702942790074,0.857160953597547,0.856582390145454,0.856010511244778,0.855492398715775,0.855116709515958,0.855116709515958, + +00:55:02, +0.250565852983413,0.250565852983413,0.250622823186321,0.250630766512934,0.250601059583933,0.250548714102022,0.250490192256877,0.250440951574464,0.250413028992417,0.250413028992417, +0.250565852983413,0.250565852983413,0.250622823186321,0.250630766512934,0.250601059583933,0.250548714102022,0.250490192256877,0.250440951574464,0.250413028992417,0.250413028992417, +0.274916564509992,0.274916564509992,0.274967003821828,0.274964776390685,0.27492244859412,0.274856644250579,0.274785652432381,0.274726755864834,0.274693542672192,0.274693542672192, +0.323130090743544,0.323130090743544,0.323166827291426,0.32314333693126,0.323074643834541,0.322980697609341,0.322883539446483,0.322804259855799,0.322759806721509,0.322759806721509, +0.394147324903339,0.394147324903339,0.394162034919308,0.394104355809624,0.393993269296852,0.39385399930742,0.393714405039522,0.393601644136189,0.393538455474918,0.393538455474918, +0.486206690887289,0.486206690887289,0.486189719963714,0.486082097190811,0.485909019274245,0.485703408079804,0.485500974313658,0.485337396294374,0.485244859802055,0.485244859802055, +0.596716683874804,0.596716683874804,0.596657834957103,0.596480105106032,0.59622023628603,0.595922220024567,0.59563074241905,0.595391782197563,0.595252685527766,0.595252685527766, +0.72219183904308,0.72219183904308,0.722084907997574,0.721808025433272,0.721428918195811,0.72100716868204,0.720593750919445,0.720242743203578,0.720024017411161,0.720024017411161, +0.858296486590405,0.858296486590405,0.858160316737044,0.85772803293764,0.857186144483274,0.856607689195087,0.856035917258132,0.855517901159926,0.855142281198808,0.855142281198808, + +00:55:03, +0.25067795764319,0.25067795764319,0.250734925900952,0.250742874763379,0.250713178852345,0.250660847229471,0.250602339183879,0.250553109512302,0.250525193021717,0.250525193021717, +0.25067795764319,0.25067795764319,0.250734925900952,0.250742874763379,0.250713178852345,0.250660847229471,0.250602339183879,0.250553109512302,0.250525193021717,0.250525193021717, +0.275026385830739,0.275026385830739,0.275076823046215,0.275074602390339,0.275032287873287,0.274966500181534,0.274895524939751,0.274836641611142,0.274803435750923,0.274803435750923, +0.323234969171294,0.323234969171294,0.32327170384826,0.323248223142051,0.323179548138955,0.323085624359868,0.32298848848499,0.322909226712586,0.322864783467795,0.322864783467795, +0.394243992743641,0.394243992743641,0.394258702382999,0.394201038132006,0.394089977582822,0.393950739199351,0.393811176159599,0.393698440265531,0.393635265545603,0.393635265545603, +0.48629129021636,0.48629129021636,0.486274322636287,0.486166723055283,0.485993682627384,0.485788115996042,0.485585726029305,0.485422183281423,0.485329666663171,0.485329666663171, +0.596785062524478,0.596785062524478,0.59672622348843,0.59654852911553,0.596288713580541,0.595990759021058,0.595699341889409,0.595460431097499,0.595321363033781,0.595321363033781, +0.722240066967653,0.722240066967653,0.722133154558279,0.721856324926654,0.721477291731676,0.721055625361544,0.720642289236768,0.720291350514457,0.720072667323547,0.720072667323547, +0.858321464406306,0.858321464406306,0.858185319539323,0.857753115257437,0.857211327505401,0.856632980341948,0.856061315329795,0.855543395627593,0.855167844880725,0.855167844880725, + +00:55:04, +0.250790051797694,0.250790051797694,0.250847018104667,0.250854972499395,0.250825287604564,0.250772969840216,0.250714475594384,0.250665256934086,0.250637346535277,0.250637346535277, +0.250790051797694,0.250790051797694,0.250847018104667,0.250854972499395,0.250825287604564,0.250772969840216,0.250714475594384,0.250665256934086,0.250637346535277,0.250637346535277, +0.275136194912538,0.275136194912538,0.275186630027557,0.275184416143585,0.275142114903358,0.275076343861318,0.275005385194419,0.274946515103727,0.274913316575416,0.274913316575416, +0.323339832568109,0.323339832568109,0.323376565372487,0.323353094316734,0.32328443740249,0.323190536064213,0.323093422472291,0.323014178514232,0.32296974515677,0.32296974515677, +0.394340642855003,0.394340642855003,0.394355352118254,0.39429770272134,0.394186668127395,0.394047461339606,0.393907929517771,0.393795218624727,0.393732057841531,0.393732057841531, +0.48637587049295,0.48637587049295,0.486358906257615,0.48625132986115,0.486078326908297,0.485872804823161,0.485670458638903,0.485506951148658,0.485414454396686,0.485414454396686, +0.596853423184889,0.596853423184889,0.596794594030211,0.596616935123409,0.596357172852999,0.596059279970826,0.595767923288427,0.595529061905859,0.595390022436533,0.595390022436533, +0.722288280770113,0.722288280770113,0.722181386992874,0.721904610275235,0.72152565109457,0.721104067835454,0.720690813316092,0.720339943560011,0.720121302953945,0.720121302953945, +0.858346434436628,0.858346434436628,0.85821031454783,0.85777818975609,0.857236502670587,0.856658263592731,0.856086705466495,0.855568882125533,0.85519340056849,0.85519340056849, + +00:55:05, +0.25090213543895,0.25090213543895,0.250959099789496,0.25096705971301,0.250937385832612,0.250885081926271,0.250826601480397,0.250777393831811,0.250749489525089,0.250749489525089, +0.25090213543895,0.25090213543895,0.250959099789496,0.25096705971301,0.250937385832612,0.250885081926271,0.250826601480397,0.250777393831811,0.250749489525089,0.250749489525089, +0.275245991750533,0.275245991750533,0.275296424761003,0.275294217645568,0.275251929679475,0.275186175285063,0.275115233191512,0.275056376337709,0.275023185140785,0.275023185140785, +0.323444680934438,0.323444680934438,0.323481411864556,0.323457950455759,0.323389311625594,0.323295432722816,0.323198341408825,0.323119115261172,0.323074691788867,0.323074691788867, +0.394437275243763,0.394437275243763,0.394451984131406,0.394394349583957,0.394283340936904,0.39414416573452,0.394004665120375,0.393891979220119,0.393828832369044,0.393828832369044, +0.486460431728037,0.486460431728037,0.48644347083867,0.486335917619387,0.486162952127967,0.485957474572152,0.485755172153454,0.485591699907088,0.485499223013616,0.485499223013616, +0.596921765868908,0.596921765868908,0.596862946595312,0.596685323142542,0.596425614116291,0.596127782886777,0.595836486629031,0.595597674635588,0.595458663748976,0.595458663748976, +0.722336480461764,0.722336480461764,0.722229605312664,0.721952881490333,0.721573996295836,0.72115249611514,0.720739323168816,0.720388522351663,0.720169924313795,0.720169924313795, +0.858371396687961,0.858371396687961,0.858235301769161,0.857803256440218,0.857261669985481,0.85668353895412,0.85611208767495,0.855594360660498,0.855218948268876,0.855218948268876, + +00:55:06, +0.251014208558998,0.251014208558998,0.251071170947484,0.251079136396269,0.251049473528528,0.250997183479663,0.250938716833936,0.250889520197487,0.250861621983156,0.250861621983156, +0.251014208558998,0.251014208558998,0.251071170947484,0.251079136396269,0.251049473528528,0.250997183479663,0.250938716833936,0.250889520197487,0.250861621983156,0.250861621983156, +0.275355776339879,0.275355776339879,0.27540620724171,0.275404006891446,0.275361732196789,0.275295994447913,0.275225068926163,0.275166225308216,0.275133041442154,0.275133041442154, +0.323549514270737,0.323549514270737,0.323586243324923,0.323562791559577,0.323494170808714,0.323400314336123,0.32330324529503,0.323224036953842,0.323179623364521,0.323179623364521, +0.394533889916253,0.394533889916253,0.394548598428784,0.394490978726185,0.394379996017678,0.394240852390422,0.394101382973741,0.393988722058037,0.393925589134475,0.393925589134475, +0.486544973932586,0.486544973932586,0.486528016390412,0.486420486340956,0.486247558297361,0.486042125253993,0.485839866583945,0.485676429567711,0.485583972524962,0.485583972524962, +0.59699009058939,0.59699009058939,0.596931281196585,0.596753693185787,0.596494037383292,0.596196267781805,0.595905031924134,0.595666269299614,0.595527286984047,0.595527286984047, +0.722384666053893,0.722384666053893,0.722277809528936,0.722001138583252,0.721622327346801,0.721200910211958,0.720787818806324,0.720437086900819,0.720218531414517,0.720218531414517, +0.858396351166883,0.858396351166883,0.8582602812099,0.857828315316431,0.857286829456725,0.85670880643279,0.856137461961872,0.85561983123923,0.855244487988644,0.855244487988644, + +00:55:07, +0.251126271149892,0.251126271149892,0.251183231570692,0.251191202541231,0.251161550684363,0.251109274492435,0.251050821647032,0.251001636023137,0.250973743901498,0.250973743901498, +0.251126271149892,0.251126271149892,0.251183231570692,0.251191202541231,0.251161550684363,0.251109274492435,0.251050821647032,0.251001636023137,0.250973743901498,0.250973743901498, +0.275465548675739,0.275465548675739,0.275515977464847,0.275513783876384,0.275471522450461,0.275405801345021,0.275334892393518,0.275276062010384,0.275242885474658,0.275242885474658, +0.323654332577462,0.323654332577462,0.323691059754043,0.323667617628642,0.323599014952302,0.323505180904579,0.323408134131351,0.323328943592681,0.32328453988417,0.32328453988417, +0.394630486878797,0.394630486878797,0.394645195016709,0.394587590154344,0.394476633376037,0.394337521313634,0.394198083084195,0.394085447144811,0.394022328144153,0.394022328144153, +0.486629497117549,0.486629497117549,0.486612542923789,0.486505036036806,0.486332145427435,0.486126756879649,0.485924541941352,0.485761140141512,0.485668702941714,0.485668702941714, +0.597058397359175,0.597058397359175,0.596999597846865,0.596822045265989,0.596562442666859,0.596264734668786,0.595973559186632,0.595734845910849,0.595595892154669,0.595595892154669, +0.722432837557775,0.722432837557775,0.722325999652966,0.722049381565282,0.721670644258777,0.721249310137248,0.720836300239985,0.720485637218874,0.720267124267522,0.720267124267522, +0.858421297879965,0.858421297879965,0.858285252876626,0.85785336639133,0.857311981090949,0.856734066035409,0.856162828333961,0.85564529386846,0.855270019734551,0.855270019734551, + +00:55:08, +0.251238323203698,0.251238323203698,0.251295281651192,0.251303258139968,0.251273617292184,0.251221354956644,0.251162915911733,0.2511137413008,0.251085855272149,0.251085855272149, +0.251238323203698,0.251238323203698,0.251295281651192,0.251303258139968,0.251273617292184,0.251221354956644,0.251162915911733,0.2511137413008,0.251085855272149,0.251085855272149, +0.27557530875329,0.27557530875329,0.275625735425593,0.275623548595561,0.275581300435661,0.275515595971549,0.275444703588731,0.275385886439364,0.275352717233442,0.275352717233442, +0.32375913585507,0.32375913585507,0.323795861152376,0.323772428663413,0.323703844056811,0.323610032428636,0.323513007918231,0.323433835178132,0.323389441348254,0.323389441348254, +0.394727066137715,0.394727066137715,0.394741773901499,0.394684183874751,0.394573253018298,0.394434172510475,0.394294765458056,0.394182154486761,0.394119049404401,0.394119049404401, +0.486714001293867,0.486714001293867,0.486697050449736,0.486589566717873,0.486416713529133,0.486211369460074,0.486009198236638,0.485845831639461,0.485753414274849,0.485753414274849, +0.597126686191087,0.597126686191087,0.597067896558974,0.596890379395972,0.596630829979832,0.59633318356058,0.596042068429404,0.595803404482189,0.595664479273746,0.595664479273746, +0.722480994984669,0.722480994984669,0.722374175696013,0.722097610447696,0.721718947043062,0.721297695902337,0.720884767481155,0.720534173317208,0.720315702884203,0.720315702884203, +0.858446236833771,0.858446236833771,0.858310216775908,0.857878409671506,0.857337124894779,0.856759317768636,0.856188186797912,0.855670748554913,0.855295543513342,0.855295543513342, + +00:55:09, +0.2513503647125,0.2513503647125,0.251407321181074,0.251415303184569,0.251385673344072,0.251333424864361,0.2512749996201,0.251225836022528,0.251197956087156,0.251197956087156, +0.2513503647125,0.2513503647125,0.251407321181074,0.251415303184569,0.251385673344072,0.251333424864361,0.2512749996201,0.251225836022528,0.251197956087156,0.251197956087156, +0.275685056567713,0.275685056567713,0.275735481119134,0.275733301044162,0.275691066147572,0.275625378322672,0.275554502506968,0.275495698590314,0.275462536713659,0.275462536713659, +0.323863924104025,0.323863924104025,0.323900647520383,0.323877224664349,0.323808658122698,0.323714868908744,0.323617866656121,0.32353871171064,0.323494327757216,0.323494327757216, +0.394823627699322,0.394823627699322,0.394838335089464,0.394780759893714,0.394669854950771,0.394530805987257,0.394391430101639,0.394278844090204,0.394215752921535,0.394215752921535, +0.486798486472467,0.486798486472467,0.486781538979174,0.486674078395081,0.486501262613386,0.486295963006208,0.486093835480755,0.485930504072518,0.485838106535331,0.485838106535331, +0.597194957097932,0.597194957097932,0.597136177345713,0.596958695588549,0.596699199335039,0.596401614470031,0.596110559665314,0.595871945026515,0.59573304835417,0.59573304835417, +0.722529138345822,0.722529138345822,0.722422337669325,0.722145825241756,0.721767235710942,0.721346067518536,0.720933220541173,0.720582695207183,0.720364267275938,0.720364267275938, +0.858471168034854,0.858471168034854,0.858335172914307,0.857903445163544,0.85736226087483,0.856784561639118,0.856213537360409,0.855696195305305,0.855321059331754,0.855321059331754, + +00:55:10, +0.251462395668393,0.251462395668393,0.25151935015244,0.251527337667134,0.251497718832122,0.251445484207672,0.251387072764208,0.251337920180389,0.251310046338582,0.251310046338582, +0.251462395668393,0.251462395668393,0.25151935015244,0.251527337667134,0.251497718832122,0.251445484207672,0.251387072764208,0.251337920180389,0.251310046338582,0.251310046338582, +0.275794792114205,0.275794792114205,0.27584521454067,0.275843041217384,0.275800819581383,0.275735148393573,0.275664289143404,0.275605498458401,0.275572343910476,0.275572343910476, +0.323968697324789,0.323968697324789,0.324005418858529,0.323982005631911,0.323913457150422,0.32381969034536,0.323722710345469,0.323643573190653,0.323599199111503,0.323599199111503, +0.394920171569927,0.394920171569927,0.394934878586909,0.394877318217538,0.394766439179759,0.394627421750285,0.394488077021253,0.394375515961449,0.394312438701868,0.394312438701868, +0.486882952664263,0.486882952664263,0.486866008523014,0.486758571079343,0.48658579269111,0.486380537528977,0.486178453684639,0.48601515745163,0.48592277973411,0.48592277973411, +0.597263210092503,0.597263210092503,0.597204440219872,0.597026993856514,0.596767550745288,0.596470027409969,0.596179032907211,0.595940467556691,0.595801599408814,0.595801599408814, +0.722577267652463,0.722577267652463,0.722470485584133,0.722194025958707,0.721815510273685,0.721394424997145,0.720981659431365,0.720631202900151,0.720412817454094,0.720412817454094, +0.85849609148976,0.85849609148976,0.858360121298373,0.857928472874019,0.857387389037707,0.856809797653499,0.856238880028126,0.855721634126342,0.855346567196516,0.855346567196516, + +00:55:11, +0.251574416063488,0.251574416063488,0.251631368557407,0.25163936157978,0.251609753748442,0.251557532978676,0.251499135336146,0.251449993766463,0.251422126018504,0.251422126018504, +0.251574416063488,0.251574416063488,0.251631368557407,0.25163936157978,0.251609753748442,0.251557532978676,0.251499135336146,0.251449993766463,0.251422126018504,0.251422126018504, +0.275904515387969,0.275904515387969,0.275954935685409,0.275952769110434,0.275910560732297,0.275844906179444,0.275774063493224,0.275715286038804,0.275682138819066,0.275682138819066, +0.324073455517831,0.324073455517831,0.324110175167281,0.324086771566567,0.324018241140444,0.323924496738939,0.32382753898673,0.32374841961862,0.323704055411563,0.323704055411563, +0.395016697755831,0.395016697755831,0.395031404400134,0.394973858852521,0.394863005711563,0.39472401980586,0.394584706223198,0.394472170106801,0.394409106751704,0.394409106751704, +0.486967399880157,0.486967399880157,0.486950459092153,0.486843044781555,0.486670303773212,0.486465093039298,0.486263052859215,0.48609979178773,0.486007433882127,0.486007433882127, +0.597331445187577,0.597331445187577,0.597272685194222,0.597095274212647,0.596835884223374,0.596538422393207,0.596247488167927,0.596008972085565,0.595870132450536,0.595870132450536, +0.72262538291581,0.72262538291581,0.722518619451653,0.722242212609781,0.721863770742547,0.721442768349445,0.721030084163044,0.720679696407448,0.72046135343002,0.72046135343002, +0.858521007205026,0.858521007205026,0.858385061934651,0.857953492809499,0.857412509390009,0.856835025818411,0.856264214807732,0.855747065024722,0.855372067114347,0.855372067114347, + +00:55:12, +0.25168642588991,0.25168642588991,0.251743376388105,0.251751374914635,0.251721778085158,0.251669571169488,0.251611187328018,0.251562056772848,0.251534195119012,0.251534195119012, +0.25168642588991,0.25168642588991,0.251743376388105,0.251751374914635,0.251721778085158,0.251669571169488,0.251611187328018,0.251562056772848,0.251534195119012,0.251534195119012, +0.276014226384219,0.276014226384219,0.276064644548568,0.276062484718528,0.276020289595523,0.275954651675489,0.275883825551622,0.275825061326712,0.275791921434615,0.275791921434615, +0.324178198683618,0.324178198683618,0.324214916447107,0.324191522468782,0.324123010093229,0.324029288089943,0.32393235258036,0.323853250994994,0.323808896657846,0.323808896657846, +0.395113206263331,0.395113206263331,0.395127912535432,0.395070381804955,0.394959554552476,0.394820600160277,0.394681317713773,0.39456880653256,0.394505757077344,0.394505757077344, +0.48705182813104,0.48705182813104,0.487034890697475,0.486927499512606,0.486754795870585,0.486549629548073,0.486347633015398,0.48618440709174,0.486092068990308,0.486092068990308, +0.597399662395912,0.597399662395912,0.597340912281521,0.597163536669711,0.596904199782075,0.59660679943254,0.596315925460278,0.596077458625971,0.595938647492179,0.595938647492179, +0.722673484147065,0.722673484147065,0.722566739283089,0.722290385206196,0.721912017128768,0.721491097586707,0.721078494747506,0.720728175740394,0.720509875215053,0.720509875215053, +0.858545915187181,0.858545915187181,0.858409994829676,0.857978504976541,0.857437621938327,0.856860246140477,0.856289541705886,0.855772488007136,0.855397559091959,0.855397559091959, + +00:55:13, +0.251798425139798,0.251798425139798,0.25185537363668,0.251863377663845,0.251833791834406,0.251781598772235,0.251723228731943,0.251674109191651,0.251646253632213,0.251646253632213, +0.251798425139798,0.251798425139798,0.25185537363668,0.251863377663845,0.251833791834406,0.251781598772235,0.251723228731943,0.251674109191651,0.251646253632213,0.251646253632213, +0.276123925098179,0.276123925098179,0.276174341125375,0.276172188036893,0.276130006166284,0.276064384876921,0.275993575313804,0.275934824317324,0.275901691752316,0.275901691752316, +0.324282926822624,0.324282926822624,0.324319642698482,0.324296258339028,0.324227764009244,0.324134064398835,0.324037151126817,0.323958067320231,0.323913722850807,0.323913722850807, +0.39520969709872,0.39520969709872,0.395224402999091,0.395166887081128,0.395056085708783,0.394917162819825,0.394777911499269,0.394665425245017,0.394602389685083,0.394602389685083, +0.487136237427788,0.487136237427788,0.487119303349852,0.487011935283368,0.486839268994109,0.486634147066191,0.486432194164086,0.486269003374569,0.486176685069566,0.486176685069566, +0.597467861730253,0.597467861730253,0.597409121494509,0.597231781240454,0.596972497434153,0.596675158540752,0.596384344797066,0.596145927190726,0.596007144546569,0.596007144546569, +0.722721571357416,0.722721571357416,0.72261484508963,0.722338543759155,0.721960249443576,0.721539412720183,0.721126891196034,0.720776640910296,0.720558382820514,0.720558382820514, +0.858570815442745,0.858570815442745,0.858434919989974,0.858003509381695,0.857462726689239,0.856885458626313,0.856314860729236,0.855797903080263,0.855423043136054,0.855423043136054, + +00:55:14, +0.251910413805305,0.251910413805305,0.251967360295291,0.251975369819567,0.251945794988338,0.25189361577906,0.251835259540053,0.251786151014998,0.251758301550224,0.251758301550224, +0.251910413805305,0.251910413805305,0.251967360295291,0.251975369819567,0.251945794988338,0.25189361577906,0.251835259540053,0.251786151014998,0.251758301550224,0.251758301550224, +0.276233611525084,0.276233611525084,0.27628402541107,0.276281879060765,0.276239710439809,0.276174105778963,0.276103312774986,0.276044575005847,0.276011449767376,0.276011449767376, +0.324387639935322,0.324387639935322,0.324424353921878,0.324400979177778,0.324332502888959,0.324238825666079,0.324141934626563,0.32406286859479,0.324018533990902,0.324018533990902, +0.395306170268281,0.395306170268281,0.395320875797393,0.39526337468732,0.395152599186768,0.395013707790787,0.39487448758597,0.394762026250462,0.394699004581208,0.394699004581208, +0.487220627781265,0.487220627781265,0.487203697060143,0.487096352104703,0.486923723154653,0.486718645604531,0.486516736316168,0.486353580647113,0.486261282130802,0.486261282130802, +0.597536043203331,0.597536043203331,0.597477312845911,0.597300007937607,0.597040777192355,0.596743499730607,0.596452746191075,0.59621437779263,0.596075623626517,0.596075623626517, +0.722769644558037,0.722769644558037,0.72266293688245,0.722386688279847,0.722008467698182,0.721587713761116,0.721175273519897,0.720825091928447,0.72060687625771,0.72060687625771, +0.85859570797823,0.85859570797823,0.858459837422064,0.858028506031503,0.85748782364932,0.856910663282527,0.856340171884424,0.855823310250776,0.855448519253325,0.855448519253325, + +00:55:15, +0.252022391878599,0.252022391878599,0.252079336356112,0.252087351373975,0.252057787539121,0.25200562218212,0.251947279744495,0.251898182235026,0.25187033886518,0.25187033886518, +0.252022391878599,0.252022391878599,0.252079336356112,0.252087351373975,0.252057787539121,0.25200562218212,0.251947279744495,0.251898182235026,0.25187033886518,0.25187033886518, +0.276343285660178,0.276343285660178,0.276393697400898,0.27639155778539,0.276349402411341,0.276283814376849,0.276213037930391,0.2761543133875,0.276121195475008,0.276121195475008, +0.324492338022189,0.324492338022189,0.324529050117774,0.324505684985506,0.324437226732844,0.324343571892143,0.324246703080062,0.324167654819131,0.32412333007859,0.32412333007859, +0.395402625778296,0.395402625778296,0.395417330936615,0.395359844629806,0.395249094992706,0.395110235079441,0.394971045980157,0.394858609555174,0.394795601772004,0.394795601772004, +0.487304999202324,0.487304999202324,0.487288071839197,0.48718074998746,0.48700815836307,0.486803125173957,0.486601259482519,0.486438138920255,0.486345860184906,0.486345860184906, +0.597604206827856,0.597604206827856,0.597545486348436,0.597368216773888,0.597109039069412,0.596811823014855,0.596521129655074,0.59628281044447,0.596144084744817,0.596144084744817, +0.722817703760088,0.722817703760088,0.72271101467271,0.722434818779445,0.722056671903784,0.72163600072073,0.721223641730348,0.720873528806125,0.720655355537934,0.720655355537934, +0.858620592800139,0.858620592800139,0.858484747132455,0.858053494932497,0.857512912825133,0.856935860115716,0.856365475178084,0.855848709525338,0.855473987450458,0.855473987450458, + +00:55:16, +0.25213435935186,0.25213435935186,0.25219130181133,0.252199322319255,0.252169769478934,0.252117617973586,0.252059289337429,0.252010202843889,0.25198236556923,0.25198236556923, +0.25213435935186,0.25213435935186,0.25219130181133,0.252199322319255,0.252169769478934,0.252117617973586,0.252059289337429,0.252010202843889,0.25198236556923,0.25198236556923, +0.276452947498714,0.276452947498714,0.276503357090118,0.276501224206026,0.276459082076128,0.27639351066582,0.276322750775255,0.276264039457511,0.276230928870438,0.276230928870438, +0.324597021083706,0.324597021083706,0.324633731286649,0.324610375762691,0.324541935541376,0.324448303077499,0.32435145648778,0.324272425993717,0.324228111114334,0.324228111114334, +0.395499063635038,0.395499063635038,0.395513768423028,0.395456296914857,0.395345573132868,0.395206744692058,0.395067586688105,0.394955175165432,0.394892181263747,0.394892181263747, +0.487389351701804,0.487389351701804,0.487372427697846,0.487265128942474,0.487092574630205,0.486887585785321,0.486685763674001,0.486522678204868,0.486430419242755,0.486430419242755, +0.597672352616527,0.597672352616527,0.597613642014778,0.597436407761997,0.59717728307804,0.59688012840623,0.596589495201816,0.596351225159014,0.59621252791425,0.59621252791425, +0.722865748974714,0.722865748974714,0.722759078471554,0.722482935269112,0.722104862071567,0.721684273610237,0.721271995838628,0.720921951554593,0.720703820672464,0.720703820672464, +0.858645469914968,0.858645469914968,0.858509649127649,0.858078476091203,0.857537994223233,0.856961049132469,0.856390770616838,0.855874100910604,0.855499447734129,0.855499447734129, + +00:55:17, +0.252246316217286,0.252246316217286,0.252303256653147,0.252311282647607,0.252281740799973,0.252229603145642,0.252171288311031,0.252122212833753,0.252094381654535,0.252094381654535, +0.252246316217286,0.252246316217286,0.252303256653147,0.252311282647607,0.252281740799973,0.252229603145642,0.252171288311031,0.252122212833753,0.252094381654535,0.252094381654535, +0.276562597035955,0.276562597035955,0.276613004473998,0.276610878317937,0.276568749429433,0.276503194641131,0.276432451304823,0.27637375321112,0.276340649948901,0.276340649948901, +0.324701689120355,0.324701689120355,0.324738397428986,0.324715051509813,0.324646629315031,0.324553019222619,0.324456194850187,0.324377182119014,0.324332877098596,0.324332877098596, +0.395595483844775,0.395595483844775,0.395610188262896,0.395552731548737,0.395442033613518,0.395303236634906,0.39516410971608,0.395051723087504,0.394988743062709,0.394988743062709, +0.487473685290532,0.487473685290532,0.487456764646914,0.487349488980569,0.487176971966888,0.486972027449465,0.486770248901465,0.48660719851181,0.48651495931521,0.48651495931521, +0.597740480582026,0.597740480582026,0.597681779857615,0.597504580914619,0.597245509230938,0.596948415917451,0.59665784284404,0.596419621949017,0.596280953147577,0.596280953147577, +0.722913780213046,0.722913780213046,0.722807128290116,0.722531037759992,0.722153038212699,0.721732532440834,0.721320335855961,0.720970360185101,0.720752271672564,0.720752271672564, +0.858670339329202,0.858670339329202,0.858534543414138,0.858103449514136,0.857563067850168,0.85698623033937,0.856416058207303,0.855899484413221,0.855524900111005,0.855524900111005, + +00:55:18, +0.252358262467084,0.252358262467084,0.252415200873778,0.252423232351246,0.252393701494445,0.252341577690488,0.252283276657489,0.252234212196799,0.252206387113271,0.252206387113271, +0.252358262467084,0.252358262467084,0.252415200873778,0.252423232351246,0.252393701494445,0.252341577690488,0.252283276657489,0.252234212196799,0.252206387113271,0.252206387113271, +0.276672234267177,0.276672234267177,0.276722639547815,0.2767205201164,0.276678404466526,0.276612866298044,0.27654213951435,0.276483454643573,0.27645035870564,0.27645035870564, +0.32480634213262,0.32480634213262,0.32484304854527,0.324819712227356,0.324751308054289,0.324657720327979,0.324560918167754,0.324481923195492,0.324437628031845,0.324437628031845, +0.395691886413771,0.395691886413771,0.395706590462479,0.395649148537703,0.395538476440915,0.395399710914245,0.395260615070348,0.395148253327657,0.395085287175156,0.395085287175156, +0.487557999979322,0.487557999979322,0.48754108269721,0.487433830112558,0.487261350383936,0.487056450177214,0.486854715175749,0.486691699851926,0.486599480413125,0.486599480413125, +0.597808590737018,0.597808590737018,0.59774989988961,0.597572736244423,0.597313717540789,0.59701668556122,0.596726172594468,0.596488000827217,0.596349360457548,0.596349360457548, +0.722961797486201,0.722961797486201,0.722855164139513,0.722579126263217,0.722201200338337,0.721780777223705,0.721368661793559,0.721018754708884,0.720800708549484,0.720800708549484, +0.85869520104932,0.85869520104932,0.858559429998407,0.858128415207803,0.857588133712476,0.857011403742989,0.856441337956086,0.855924860039825,0.855550344587747,0.855550344587747, + +00:55:19, +0.25247019809348,0.25247019809348,0.252527134465455,0.252535171422402,0.252505651554574,0.252453541600337,0.252395254369006,0.252346200925223,0.252318381937628,0.252318381937628, +0.25247019809348,0.25247019809348,0.252527134465455,0.252535171422402,0.252505651554574,0.252453541600337,0.252395254369006,0.252346200925223,0.252318381937628,0.252318381937628, +0.276781859187661,0.276781859187661,0.276832262306856,0.2768301495967,0.276788047182686,0.276722525631831,0.276651815399099,0.27659314375013,0.27656005513591,0.27656005513591, +0.324910980120989,0.324910980120989,0.324947684635988,0.324924357915806,0.324855971759633,0.324762406394058,0.324665626440956,0.324586649223621,0.32454236391455,0.32454236391455, +0.395788271348281,0.395788271348281,0.395802975028032,0.395745547888009,0.395634901621312,0.39549616753633,0.395357102757164,0.395244765892149,0.395181813607348,0.395181813607348, +0.487642295778977,0.487642295778977,0.487625381859531,0.487518152349238,0.487345709892156,0.487140853979385,0.486939162507677,0.486776182236053,0.486683982547338,0.486683982547338, +0.597876683094154,0.597876683094154,0.597818002123409,0.597640873764063,0.597381908020263,0.597084937350224,0.596794484465805,0.596556361806336,0.596417749856893,0.596417749856893, +0.723009800805282,0.723009800805282,0.722903186030847,0.722627200789907,0.722249348459621,0.721829007970019,0.721416973662619,0.721067135137162,0.720849131314459,0.720849131314459, +0.858720055081791,0.858720055081791,0.858584308886932,0.858153373178705,0.857613191816687,0.857036569349892,0.856466609869785,0.855950227797048,0.855575781171004,0.855575781171004, + +00:55:20, +0.252582123088711,0.252582123088711,0.252639057420419,0.252647099853317,0.252617590972596,0.252565494867416,0.252507221437801,0.252458179011232,0.252430366119813,0.252430366119813, +0.252582123088711,0.252582123088711,0.252639057420419,0.252647099853317,0.252617590972596,0.252565494867416,0.252507221437801,0.252458179011232,0.252430366119813,0.252430366119813, +0.276891471792702,0.276891471792702,0.276941872746418,0.276939766754134,0.276897677573205,0.276832172637776,0.276761478954347,0.276702820526058,0.276669739234976,0.276669739234976, +0.325015603085951,0.325015603085951,0.325052305701631,0.32502898857565,0.324960620431548,0.324867077421336,0.32477031967027,0.324691360203876,0.324647084747184,0.324647084747184, +0.395884638654558,0.395884638654558,0.395899341965801,0.395841929605902,0.395731309160958,0.39559260650741,0.39545357278278,0.395341260787234,0.395278322365541,0.395278322365541, +0.487726572700287,0.487726572700287,0.487709662144661,0.487602455701396,0.487430050502341,0.48722523886678,0.487023590908063,0.48686064567501,0.486768465728675,0.486768465728675, +0.597944757666068,0.597944757666068,0.597886086571643,0.597708993486177,0.597450080682011,0.597153171297136,0.596862778470743,0.596624704899081,0.596486121358329,0.596486121358329, +0.723057790181378,0.723057790181378,0.72295119397521,0.722675261351163,0.722297482587677,0.721877224690929,0.721465271474323,0.721115501481142,0.720897539978711,0.720897539978711, +0.858744901433078,0.858744901433078,0.858609180086181,0.858178323433331,0.857638242169323,0.857061727166634,0.85649187395499,0.855975587691508,0.855601209867419,0.855601209867419, + +00:55:21, +0.252694037445028,0.252694037445028,0.252750969730931,0.252759017636248,0.252729519740762,0.252677437483966,0.252619177856105,0.252570146447051,0.252542339652043,0.252542339652043, +0.252694037445028,0.252694037445028,0.252750969730931,0.252759017636248,0.252729519740762,0.252677437483966,0.252619177856105,0.252570146447051,0.252542339652043,0.252542339652043, +0.277001072077602,0.277001072077602,0.277051470861809,0.277049371584006,0.277007295633382,0.27694180731117,0.276871130175376,0.276812484966635,0.276779410998112,0.276779410998112, +0.325120211028,0.325120211028,0.325156911742692,0.325133604207381,0.325065254070522,0.324971733410298,0.324874997856176,0.324796056136733,0.32475179053022,0.32475179053022, +0.395980988338848,0.395980988338848,0.39599569128203,0.395938293697623,0.395827699066094,0.395689027833729,0.395550025153442,0.395437738019159,0.395374813455984,0.395374813455984, +0.487810830754028,0.487810830754028,0.487793923563374,0.487686740179807,0.487514372225271,0.48730960485019,0.487108000387706,0.486945090179606,0.486852929967951,0.486852929967951, +0.598012814465381,0.598012814465381,0.597954153246928,0.597777095423387,0.597518235538671,0.597221387414609,0.596931054621956,0.596693030118144,0.596554474974558,0.596554474974558, +0.723105765625564,0.723105765625564,0.722999187983674,0.722723307958075,0.72234560273362,0.721925427397577,0.72151355523984,0.721163853752017,0.720945934553445,0.720945934553445, +0.858769740109632,0.858769740109632,0.858634043602613,0.858203265978164,0.857663284776897,0.857086877199763,0.856517130218283,0.856000939729817,0.855626630683625,0.855626630683625, + +00:55:22, +0.252805941154699,0.252805941154699,0.252862871389261,0.252870924763467,0.252841437851336,0.252789369442244,0.252731123616162,0.252682103224917,0.252654302526551,0.252654302526551, +0.252805941154699,0.252805941154699,0.252862871389261,0.252870924763467,0.252841437851336,0.252789369442244,0.252731123616162,0.252682103224917,0.252654302526551,0.252654302526551, +0.277110660037674,0.277110660037674,0.277161056648344,0.277158964081632,0.277116901358528,0.277051429647316,0.276980769057482,0.276922137067149,0.276889070420603,0.276889070420603, +0.32522480394763,0.32522480394763,0.325261502759665,0.32523820481149,0.325169872677044,0.32507637436143,0.324979660999155,0.324900737022672,0.324856481264138,0.324856481264138, +0.39607732040739,0.39607732040739,0.396092022982955,0.396034640169408,0.395924071342957,0.395785431521526,0.395646459875391,0.395534197594168,0.395471286884919,0.395471286884919, +0.487895069950966,0.487895069950966,0.48787816612643,0.487771005795232,0.487598675071714,0.487393951940392,0.487192390957397,0.48702951576064,0.486937375275967,0.486937375275967, +0.598080853504694,0.598080853504694,0.598022202161863,0.597845179588301,0.597586372602865,0.597289585715286,0.596999312932104,0.5967613374762,0.596622810718263,0.596622810718263, +0.723153727148899,0.723153727148899,0.723047168067303,0.72277134062172,0.722393708908546,0.721973616101089,0.721561824970324,0.721212191960964,0.720994315049856,0.720994315049856, +0.8587945711179,0.8587945711179,0.858658899442679,0.858228200819679,0.857688319645914,0.857112019455818,0.856542378666237,0.85602628391858,0.855652043626246,0.855652043626246, + +00:55:23, +0.252917834210002,0.252917834210002,0.252974762387696,0.252982821227259,0.252953345296598,0.252901290734518,0.252843058710234,0.252794049337082,0.252766254735584,0.252766254735584, +0.252917834210002,0.252917834210002,0.252974762387696,0.252982821227259,0.252953345296598,0.252901290734518,0.252843058710234,0.252794049337082,0.252766254735584,0.252766254735584, +0.277220235668241,0.277220235668241,0.277270630101351,0.277268544242338,0.277226494743961,0.277161039641526,0.277090395595969,0.277031776822898,0.276998717497742,0.276998717497742, +0.325329381845338,0.325329381845338,0.325366078753048,0.325342790388475,0.325274476251607,0.325181000275219,0.325084309099693,0.325005402862173,0.324961156949416,0.324961156949416, +0.396173634866418,0.396173634866418,0.396188337074808,0.396130969027486,0.396020425997777,0.395881817577032,0.395742876954861,0.395630639518496,0.395567742658586,0.395567742658586, +0.487979290301853,0.487979290301853,0.487962389844575,0.48785525255842,0.487682959052428,0.487478280148152,0.487276762627909,0.487113922428894,0.487021801663513,0.487021801663513, +0.598148874796598,0.598148874796598,0.598090233329034,0.597913245993509,0.597654491887198,0.597357766211789,0.59706755341383,0.596829626985908,0.596691128602114,0.596691128602114, +0.72320167476243,0.72320167476243,0.723095134237142,0.722819359353157,0.722441801123542,0.722021790812577,0.721610080676915,0.721260516119146,0.72104268147912,0.72104268147912, +0.858819394464317,0.858819394464317,0.858683747612822,0.85825312796434,0.85771334678287,0.857137153941328,0.856567619305415,0.856051620264392,0.8556774487019,0.8556774487019, + +00:55:24, +0.253029716603232,0.253029716603232,0.253086642718535,0.253094707019922,0.253065242068839,0.253013201353072,0.252954983130592,0.25290598477581,0.252878196271403,0.252878196271403, +0.253029716603232,0.253029716603232,0.253086642718535,0.253094707019922,0.253065242068839,0.253013201353072,0.252954983130592,0.25290598477581,0.252878196271403,0.252878196271403, +0.277329798964635,0.277329798964635,0.277380191216165,0.277378112061457,0.277336075785011,0.277270637289121,0.277200009786151,0.27714140422919,0.277108352224834,0.277108352224834, +0.325433944721626,0.325433944721626,0.325470639723343,0.325447360938835,0.325379064794708,0.325285611152159,0.325188942158277,0.325110053655722,0.325065817586538,0.325065817586538, +0.396269931722162,0.396269931722162,0.396284633563813,0.396227280278083,0.39611676303678,0.395978186006475,0.395839276398081,0.395727063798375,0.395664180783216,0.395664180783216, +0.488063491817428,0.488063491817428,0.488046594728545,0.487939480480109,0.487767224178155,0.487562589484224,0.487361115410007,0.487198310195141,0.487106209141364,0.487106209141364, +0.598216878353663,0.598216878353663,0.598158246761009,0.597981294651588,0.597722593404261,0.59742592891673,0.597135776079764,0.596897898659914,0.596759428638765,0.596759428638765, +0.72324960847719,0.72324960847719,0.723143086504226,0.722867364163435,0.722489879389676,0.722069951543139,0.721658322370739,0.721308826237714,0.721091033852402,0.721091033852402, +0.858844210155311,0.858844210155311,0.858708588119476,0.858278047418605,0.857738366194254,0.857162280662816,0.856592852142374,0.856076948773838,0.855702845917193,0.855702845917193, + +00:55:25, +0.253141588326697,0.253141588326697,0.253198512374093,0.253206582133769,0.253177128160368,0.253125101290204,0.253066896869526,0.253017909533383,0.252990127126284,0.252990127126284, +0.253141588326697,0.253141588326697,0.253198512374093,0.253206582133769,0.253177128160368,0.253125101290204,0.253066896869526,0.253017909533383,0.252990127126284,0.252990127126284, +0.277439349922199,0.277439349922199,0.277489739988134,0.277487667534335,0.277445644477019,0.277380222585434,0.277309611623351,0.277251019281341,0.277217974597192,0.277217974597192, +0.325538492576996,0.325538492576996,0.325575185671051,0.325551916463069,0.325483638306843,0.325390206992742,0.325293560175398,0.325214689403806,0.325170463175989,0.325170463175989, +0.396366210980844,0.396366210980844,0.396380912456192,0.396323573927418,0.396213082466185,0.396074536816076,0.395935658211275,0.395823470440031,0.395760601265036,0.395760601265036, +0.488147674508421,0.488147674508421,0.488130780789063,0.488023689571023,0.487851470459628,0.487646879959347,0.487445449314441,0.487282679070141,0.487190597720287,0.487190597720287, +0.598284864188448,0.598284864188448,0.598226242470342,0.598049325575098,0.597790677166629,0.5974940738427,0.597203980942518,0.596966152510846,0.596827710840854,0.596827710840854, +0.723297528304196,0.723297528304196,0.723191024879571,0.722915355063586,0.722537943718006,0.722118098303858,0.721706550062907,0.721357122327803,0.721139372180852,0.721139372180852, +0.858869018197301,0.858869018197301,0.858733420969067,0.858302959188924,0.857763377886544,0.857187399626796,0.856618077183662,0.856102269453496,0.855728235278725,0.855728235278725, + +00:55:26, +0.253253449372718,0.253253449372718,0.253310371346698,0.253318446561128,0.253289003563505,0.253236990538226,0.253178799919337,0.253129823602092,0.253102047292514,0.253102047292514, +0.253253449372718,0.253253449372718,0.253310371346698,0.253318446561128,0.253289003563505,0.253236990538226,0.253178799919337,0.253129823602092,0.253102047292514,0.253102047292514, +0.277548888536284,0.277548888536284,0.277599276412612,0.277597210656326,0.277555200815332,0.277489795525807,0.277419201102903,0.277360621974679,0.277327584610139,0.277327584610139, +0.325643025411952,0.325643025411952,0.325679716596679,0.325656456961682,0.325588196788514,0.325494787797465,0.325398163151547,0.325319310106914,0.325275093718257,0.325275093718257, +0.396462472648682,0.396462472648682,0.396477173758158,0.396419849981703,0.396309384292206,0.396170870012051,0.39603202240066,0.395919859449684,0.395857004110268,0.395857004110268, +0.488231838385547,0.488231838385547,0.488214948036841,0.488107879841874,0.487935697907564,0.487731151584251,0.48752976435195,0.48736702906464,0.487274967411034,0.487274967411034, +0.598352832313493,0.598352832313493,0.59829422046957,0.598117338776584,0.597858743186861,0.597562201002278,0.597272168014688,0.597034388551317,0.596895975221004,0.596895975221004, +0.723345434254454,0.723345434254454,0.723238949374185,0.72296333206463,0.722585994119573,0.722166231105805,0.721754763764517,0.721405404400534,0.721187696475606,0.721187696475606, +0.858893818596701,0.858893818596701,0.858758246168013,0.858327863281735,0.857788381866212,0.857212510839772,0.856643294435817,0.856127582309936,0.855753616793086,0.855753616793086, + +00:55:27, +0.253365299733631,0.253365299733631,0.25342221962869,0.25343030029434,0.253400868270584,0.253348869089461,0.25329069227234,0.253241726974246,0.253213956762398,0.253213956762398, +0.253365299733631,0.253365299733631,0.25342221962869,0.25343030029434,0.253400868270584,0.253348869089461,0.25329069227234,0.253241726974246,0.253213956762398,0.253213956762398, +0.277658414802253,0.277658414802253,0.277708800484965,0.277706741422794,0.277664744795309,0.277599356105589,0.27752877822015,0.277470212304541,0.27743718225901,0.27743718225901, +0.325747543227004,0.325747543227004,0.325784232500735,0.325760982435181,0.325692740240223,0.325599353566827,0.325502751087221,0.325423915765538,0.325379709213832,0.325379709213832, +0.396558716731888,0.396558716731888,0.396573417475919,0.396516108447146,0.396405668521051,0.396267185600609,0.39612836897245,0.396016230833547,0.395953389325126,0.395953389325126, +0.488315983459508,0.488315983459508,0.488299096482575,0.488192051303363,0.48801990653267,0.487815404369652,0.487614060533261,0.487451360189374,0.487359318224343,0.487359318224343, +0.598420782741326,0.598420782741326,0.598362180771216,0.598185334268576,0.597926791477501,0.597630310408027,0.597340337308858,0.597102606793926,0.596964221791822,0.596964221791822, +0.723393326338953,0.723393326338953,0.723286859999056,0.723011295177571,0.722634030605407,0.722214349960035,0.721802963486653,0.721453672467015,0.721236006747785,0.721236006747785, +0.858918611359911,0.858918611359911,0.858783063722723,0.858352759703473,0.857813378139721,0.857237614308242,0.856668503905371,0.85615288734972,0.85577899046686,0.85577899046686, + +00:55:28, +0.253477139401786,0.253477139401786,0.253534057212427,0.253542143325759,0.253512722273954,0.253460736936251,0.253402573920865,0.253353619642167,0.253325855528253,0.253325855528253, +0.253477139401786,0.253477139401786,0.253534057212427,0.253542143325759,0.253512722273954,0.253460736936251,0.253402573920865,0.253353619642167,0.253325855528253,0.253325855528253, +0.277767928715476,0.277767928715476,0.277818312200568,0.277816259829113,0.277774276412319,0.277708904320143,0.277638342970446,0.277579790266273,0.277546767539148,0.277546767539148, +0.32585204602266,0.32585204602266,0.325888733383728,0.325865492884073,0.325797268662476,0.32570390430133,0.325607323982916,0.325528506380174,0.325484309663208,0.325484309663208, +0.396654943236667,0.396654943236667,0.39666964361568,0.39661234932995,0.396501935158923,0.396363483587955,0.39622469793285,0.396112584597829,0.396049756915821,0.396049756915821, +0.488400109740995,0.488400109740995,0.488383226136952,0.488276203966178,0.488104096345642,0.487899638326254,0.487698337869088,0.487535672455066,0.487443650170943,0.487443650170943, +0.598488715484456,0.598488715484456,0.598430123387788,0.598253312063586,0.597994822051077,0.597698402072494,0.597408488837592,0.597170807251253,0.597032450565899,0.597032450565899, +0.723441204568669,0.723441204568669,0.723334756765163,0.723059244413401,0.72268205318652,0.722262454877589,0.721851149240383,0.721501926538337,0.721284303008497,0.721284303008497, +0.858943396493328,0.858943396493328,0.858807873639598,0.858377648460561,0.857838366713526,0.857262710038693,0.856693705598844,0.856178184579398,0.855804356306618,0.855804356306618, + +00:55:29, +0.253588968369547,0.253588968369547,0.253645884090277,0.253653975647754,0.253624565565978,0.253572594070948,0.253514444857255,0.25346550159819,0.253437743582408,0.253437743582408, +0.253588968369547,0.253588968369547,0.253645884090277,0.253653975647754,0.253624565565978,0.253572594070948,0.253514444857255,0.25346550159819,0.253437743582408,0.253437743582408, +0.277877430271335,0.277877430271335,0.277927811554807,0.277925765870667,0.277883795661741,0.277818440164838,0.277747895349154,0.277689355855233,0.277656340445905,0.277656340445905, +0.325956533799434,0.325956533799434,0.325993219246172,0.32596998830887,0.325901782055781,0.325808440001478,0.325711881839134,0.325633081951317,0.32558889506688,0.32558889506688, +0.396751152169222,0.396751152169222,0.396765852183636,0.39670857263631,0.39659818421202,0.396459763980289,0.396321009288063,0.396208920748734,0.396146106888558,0.396146106888558, +0.488484217240688,0.488484217240688,0.488467337010646,0.488360337840993,0.488188267357162,0.487983853464749,0.487782596370132,0.487619965872425,0.48752796326155,0.48752796326155, +0.598556630555378,0.598556630555378,0.598498048331776,0.598321272174115,0.598062834920103,0.59776647600821,0.597476622613442,0.597238989935867,0.597100661555812,0.597100661555812, +0.723489068954565,0.723489068954565,0.723382639683468,0.723107179783097,0.722730061873913,0.722310545869496,0.721899321036764,0.72155016662558,0.721332585268835,0.721332585268835, +0.858968174003338,0.858968174003338,0.858832675925031,0.858402529559414,0.857863347594072,0.857287798037606,0.856718899522752,0.856203474005516,0.855829714318928,0.855829714318928, + +00:55:30, +0.25370078662929,0.25370078662929,0.253757700254625,0.253765797252707,0.253736398139031,0.253684440485919,0.253626305073869,0.253577372834664,0.253549620917211,0.253549620917211, +0.25370078662929,0.25370078662929,0.253757700254625,0.253765797252707,0.253736398139031,0.253684440485919,0.253626305073869,0.253577372834664,0.253549620917211,0.253549620917211, +0.277986919465221,0.277986919465221,0.278037298543075,0.278035259542848,0.277993302538962,0.277927963635056,0.277857435351646,0.277798909066786,0.277765900974644,0.277765900974644, +0.326061006557841,0.326061006557841,0.326097690088582,0.326074468710087,0.326006280420649,0.325912960667778,0.325816424656377,0.32573764247947,0.325693465425347,0.325693465425347, +0.396847343535746,0.396847343535746,0.396862043185981,0.396804778372418,0.396694415686533,0.396556026783803,0.396417303044282,0.39630523929246,0.396242439249535,0.396242439249535, +0.488568305969252,0.488568305969252,0.488551429114318,0.488444452938472,0.488272419577898,0.488068049795815,0.487866836047083,0.48770424045215,0.487612257506866,0.487612257506866, +0.598624527966574,0.598624527966574,0.598565955615657,0.598389214612645,0.598130830097077,0.597834532227691,0.597544738648943,0.597307154860318,0.597168854774122,0.597168854774122, +0.723536919507589,0.723536919507589,0.72343050876492,0.723155101297621,0.722778056678572,0.722358622946769,0.721947478886836,0.72159839273981,0.721380853539878,0.721380853539878, +0.85899294389632,0.85899294389632,0.858857470585408,0.85842740300644,0.857888320787798,0.857312878311452,0.856744085683599,0.856228755634609,0.855855064510344,0.855855064510344, + +00:55:31, +0.253812594173408,0.253812594173408,0.253869505697866,0.253877608133015,0.253848219985505,0.253796276173546,0.253738154563077,0.253689233343952,0.253661487525018,0.253661487525018, +0.253812594173408,0.253812594173408,0.253869505697866,0.253877608133015,0.253848219985505,0.253796276173546,0.253738154563077,0.253689233343952,0.253661487525018,0.253661487525018, +0.278096396292534,0.278096396292534,0.278146773160778,0.27814474084106,0.27810279703938,0.278037474726187,0.277966962973304,0.277908449896309,0.277875449120738,0.277875449120738, +0.3261654642984,0.3261654642984,0.326202145911477,0.326178934088239,0.326110763757592,0.326017466300739,0.32592095243515,0.325842187965133,0.32579802073911,0.32579802073911, +0.396943517342429,0.396943517342429,0.396958216628901,0.396900966544459,0.396790629588647,0.396652272004686,0.396513579207699,0.396401540235198,0.396338754004945,0.396338754004945, +0.488652375937342,0.488652375937342,0.488635502458618,0.488528549269267,0.48835655301851,0.488152227330121,0.487951056910619,0.487788496204927,0.487696532917582,0.487696532917582, +0.598692407730506,0.598692407730506,0.598633845251892,0.598457139391644,0.59819880759448,0.597902570743439,0.597612836956614,0.597375302037143,0.597237030233373,0.597237030233373, +0.723584756238676,0.723584756238676,0.723478364020454,0.723203008967924,0.722826037611469,0.722406686120408,0.721995622801627,0.721646604892076,0.721429107832692,0.721429107832692, +0.859017706178643,0.859017706178643,0.858882257627103,0.858452268808038,0.857913286301133,0.857337950866694,0.856769264087882,0.856254029473204,0.855880406887416,0.855880406887416, + +00:55:32, +0.253924390994304,0.253924390994304,0.253981300412414,0.253989408281088,0.253960031097804,0.253908101126224,0.253849993317265,0.253801083118433,0.253773343398203,0.253773343398203, +0.253924390994304,0.253924390994304,0.253981300412414,0.253989408281088,0.253960031097804,0.253908101126224,0.253849993317265,0.253801083118433,0.253773343398203,0.253773343398203, +0.278205860748684,0.278205860748684,0.278256235403329,0.278254209760716,0.278212279158402,0.27814697343363,0.278076478209521,0.278017978339187,0.27798498487957,0.27798498487957, +0.326269907021629,0.326269907021629,0.326306586715378,0.326283384443846,0.326215232067127,0.326121956900873,0.326025465175962,0.325946718408812,0.325902561008671,0.325902561008671, +0.397039673595455,0.397039673595455,0.397054372518575,0.396997137158613,0.396886825924544,0.396748499649118,0.396609837784498,0.396497823583135,0.396435051160976,0.396435051160976, +0.488736427155599,0.488736427155599,0.488719557054183,0.488612626844016,0.488440667689642,0.488236386078321,0.488035258971404,0.487872733141429,0.487780789504376,0.487780789504376, +0.598760269859625,0.598760269859625,0.598701717252927,0.598525046523565,0.59826676742478,0.597970591567939,0.597680917548961,0.597443431478861,0.597305187946095,0.597305187946095, +0.723632579158746,0.723632579158746,0.723526205460991,0.723250902804939,0.722874004683564,0.722454735401397,0.722043752792149,0.721694803093415,0.721477348158327,0.721477348158327, +0.859042460856669,0.859042460856669,0.858907037056486,0.858477126970599,0.857938244140499,0.857363015709788,0.85679443474209,0.85627929552782,0.855905741456683,0.855905741456683, + +00:55:33, +0.254036177084399,0.254036177084399,0.254093084390691,0.254101197689351,0.254071831468344,0.25401991533636,0.253961821328831,0.253912922150497,0.253885188529153,0.253885188529153, +0.254036177084399,0.254036177084399,0.254093084390691,0.254101197689351,0.254071831468344,0.25401991533636,0.253961821328831,0.253912922150497,0.253885188529153,0.253885188529153, +0.278315312829091,0.278315312829091,0.278365685266152,0.278363666297237,0.278321748891445,0.278256459752795,0.278185981055699,0.278127494390817,0.27809450824653,0.27809450824653, +0.326374334728053,0.326374334728053,0.326411012500806,0.326387819777428,0.326319685349773,0.326226432468694,0.326129962879324,0.326051233811014,0.326007086234537,0.326007086234537, +0.397135812301002,0.397135812301002,0.39715051086118,0.397093290221053,0.396983004700398,0.396844709723279,0.396706078780858,0.396594089342452,0.39653133072381,0.39653133072381, +0.488820459634654,0.488820459634654,0.488803592911637,0.488696685673345,0.488524763601928,0.488320526051059,0.488119442240092,0.487956951272319,0.487865027277916,0.487865027277916, +0.598828114366365,0.598828114366365,0.598769571631192,0.598592936020844,0.598334709600428,0.598038594713661,0.597748980438473,0.597511543197979,0.597373327924803,0.597373327924803, +0.723680388278705,0.723680388278705,0.723574033097439,0.723298782819589,0.722921957905799,0.72250277080071,0.722091868869403,0.721742987354851,0.721525574527821,0.721525574527821, +0.859067207936753,0.859067207936753,0.858931808879916,0.858501977500505,0.857963194312308,0.85738807284718,0.856819597652704,0.856304553804967,0.855931068224677,0.855931068224677, + +00:55:34, +0.254147952436125,0.254147952436125,0.254204857625138,0.25421297635024,0.254183621089559,0.254131718796379,0.254073638590189,0.254024750432549,0.253997022910269,0.253997022910269, +0.254147952436125,0.254147952436125,0.254204857625138,0.25421297635024,0.254183621089559,0.254131718796379,0.254073638590189,0.254024750432549,0.253997022910269,0.253997022910269, +0.278424752529185,0.278424752529185,0.27847512274468,0.278473110446055,0.278431206233936,0.278365933679102,0.278295471507248,0.278236998046602,0.278204019217021,0.278204019217021, +0.326478747418196,0.326478747418196,0.326515423268289,0.32649224008951,0.326424123606048,0.32633089300472,0.326234445545748,0.326155734172251,0.326111596417217,0.326111596417217, +0.397231933465243,0.397231933465243,0.397246631662885,0.397189425737949,0.397079165922378,0.396940902233337,0.396802302202952,0.396690337519324,0.396627592699625,0.396627592699625, +0.488904473385123,0.488904473385123,0.488887610041593,0.48878072576787,0.48860884076599,0.488404647258964,0.488203606727323,0.488041150608244,0.487949246248855,0.487949246248855, +0.598895941263142,0.598895941263142,0.598837408399101,0.598660807895903,0.59840263413386,0.59810658019306,0.597817025637623,0.597579637206984,0.597441450181996,0.597441450181996, +0.723728183609447,0.723728183609447,0.723621846940691,0.723346649022782,0.722969897289105,0.722550792329302,0.722139971044373,0.721791157687391,0.721573786952196,0.721573786952196, +0.859091947425239,0.859091947425239,0.858956573103744,0.858526820404132,0.857988136822964,0.857413122285308,0.856844752826194,0.856329804311146,0.855956387197921,0.855956387197921, + +00:55:35, +0.254259717041928,0.254259717041928,0.254316620108206,0.254324744256208,0.254295399953893,0.254243511498717,0.254185445093766,0.254136567957008,0.254108846533964,0.254108846533964, +0.254259717041928,0.254259717041928,0.254316620108206,0.254324744256208,0.254295399953893,0.254243511498717,0.254185445093766,0.254136567957008,0.254108846533964,0.254108846533964, +0.278534179844405,0.278534179844405,0.278584547834357,0.278582542202613,0.278540651181312,0.278475395207979,0.278404949559591,0.278346489301958,0.278313517786455,0.278313517786455, +0.326583145092587,0.326583145092587,0.326619819018354,0.326596645380619,0.326528546836478,0.326435338509469,0.32633891317575,0.326260219493034,0.326216091557222,0.326216091557222, +0.397328037094345,0.397328037094345,0.397342734929853,0.397285543715463,0.397175309596648,0.397037077185459,0.396898508056948,0.396786568119921,0.396723837094591,0.396723837094591, +0.488988468417611,0.488988468417611,0.488971608454652,0.488864747138192,0.488692899192435,0.488488749712655,0.488287752443726,0.488125331159843,0.488033446427835,0.488033446427835, +0.598963750562362,0.598963750562362,0.598905227569055,0.59872866216115,0.598470541037498,0.598174548018575,0.597885053158869,0.597647713518353,0.597509554730157,0.597509554730157, +0.72377596516185,0.72377596516185,0.723669647001627,0.72339450142541,0.723017822844399,0.722598799998119,0.72218805932803,0.72183931410203,0.721621985442463,0.721621985442463, +0.859116679328464,0.859116679328464,0.858981329734315,0.858551655687844,0.858013071678865,0.857438164030602,0.856869900269024,0.856355047052852,0.855981698382928,0.855981698382928, + +00:55:36, +0.254371470894269,0.254371470894269,0.254428371832362,0.254436501399721,0.254407168053806,0.254355293435823,0.254297240832001,0.254248374716307,0.254220659392668,0.254220659392668, +0.254371470894269,0.254371470894269,0.254428371832362,0.254436501399721,0.254407168053806,0.254355293435823,0.254297240832001,0.254248374716307,0.254220659392668,0.254220659392668, +0.278643594770199,0.278643594770199,0.278693960530633,0.278691961562361,0.278650083729018,0.278584844334865,0.278514415208158,0.278455968152311,0.278423003950252,0.278423003950252, +0.326687527751755,0.326687527751755,0.326724199751531,0.326701035651282,0.326632955041587,0.326539768983464,0.326443365769848,0.326364689773879,0.326320571655065,0.326320571655065, +0.397424123194469,0.397424123194469,0.397438820668244,0.397381644159753,0.397271435729367,0.397133234585805,0.396994696349009,0.396882781150408,0.396820063914874,0.396820063914874, +0.489072444742713,0.489072444742713,0.489055588161403,0.488948749794902,0.48877693889186,0.488572833422738,0.488371879399917,0.48820949293774,0.488117627825486,0.488117627825486, +0.599031542276411,0.599031542276411,0.598973029153438,0.598796498828975,0.598538430323746,0.59824249820263,0.597953063014656,0.597715772144543,0.597577641581755,0.597577641581755, +0.72382373294678,0.72382373294678,0.723717433291111,0.723442340038353,0.723065734582583,0.72264679381809,0.722236133731332,0.72188745660975,0.721670170009615,0.721670170009615, +0.859141403652759,0.859141403652759,0.859006078777964,0.858576483358,0.858037998886399,0.857463198089484,0.85689503998765,0.85638028203657,0.856007001786206,0.856007001786206, + +00:55:37, +0.254483213985622,0.254483213985622,0.254540112790086,0.254548247773256,0.254518925381771,0.254467064600161,0.254409025797351,0.254360170702893,0.254332461478821,0.254332461478821, +0.254483213985622,0.254483213985622,0.254540112790086,0.254548247773256,0.254518925381771,0.254467064600161,0.254409025797351,0.254360170702893,0.254332461478821,0.254332461478821, +0.278752997302026,0.278752997302026,0.278803360828973,0.27880136852076,0.27875950387251,0.278694281055208,0.27862386844839,0.278565434593093,0.278532477703843,0.278532477703843, +0.326791895396234,0.326791895396234,0.326828565468355,0.326805410902031,0.326737348221905,0.326644184427229,0.326547803328563,0.326469145015303,0.326425036711262,0.326425036711262, +0.397520191771772,0.397520191771772,0.397534888884209,0.397477727076971,0.397367544326687,0.397229374440529,0.39709086708529,0.396978976616944,0.396916273166633,0.396916273166633, +0.489156402371008,0.489156402371008,0.48913954917242,0.489032733748577,0.488860959874851,0.488656898399808,0.4884559876065,0.488293635952548,0.488201790452426,0.488201790452426, +0.599099316417663,0.599099316417663,0.599040813164619,0.598864317911755,0.598606302004997,0.598310430757634,0.59802105521741,0.597783813097999,0.597645710749243,0.597645710749243, +0.723871486975087,0.723871486975087,0.723765205819997,0.723490164872478,0.723113632514547,0.722694773800132,0.722284194265223,0.721935585221517,0.721718340664634,0.721718340664634, +0.859166120404443,0.859166120404443,0.859030820241017,0.85860130342095,0.858062918451945,0.857488224468367,0.856920171988518,0.856405509268775,0.856032297414251,0.856032297414251, + +00:55:38, +0.254594946308473,0.254594946308473,0.254651842973872,0.254659983369307,0.254630671930275,0.25457882498421,0.254520799982281,0.254471955909224,0.25444425278488,0.25444425278488, +0.254594946308473,0.254594946308473,0.254651842973872,0.254659983369307,0.254630671930275,0.25457882498421,0.254520799982281,0.254471955909224,0.25444425278488,0.25444425278488, +0.278862387435353,0.278862387435353,0.278912748724847,0.27891076307328,0.278868911607253,0.278803705364466,0.278733309275737,0.278674888619749,0.278641939042668,0.278641939042668, +0.326896248026559,0.326896248026559,0.326932916169359,0.326909771133402,0.326841726377961,0.326748584841291,0.326652225852419,0.326573585217827,0.326529486726333,0.326529486726333, +0.397616242832403,0.397616242832403,0.397630939583898,0.397573792473263,0.397463635394755,0.397325496755781,0.397187020271944,0.397075154525681,0.397012464856025,0.397012464856025, +0.489240341313067,0.489240341313067,0.489223491498269,0.489116699009784,0.48894496215198,0.488740944654447,0.488540077074067,0.488377760214867,0.488285934319261,0.488285934319261, +0.599167072998475,0.599167072998475,0.599108579614952,0.598932119421849,0.598674156093624,0.598378345695981,0.598089029779544,0.597851836391149,0.597713762245058,0.597713762245058, +0.723919227257609,0.723919227257609,0.723812964599122,0.723537975938636,0.723161516651164,0.722742739955145,0.722332240940631,0.721983699948283,0.721766497418487,0.721766497418487, +0.85919082958983,0.85919082958983,0.859055554129794,0.858626115883034,0.858087830381875,0.857513243173656,0.856945296278067,0.856430728755938,0.856057585273554,0.856057585273554, + +00:55:39, +0.254706667855326,0.254706667855326,0.254763562376226,0.254771708180381,0.254742407691817,0.254690574580461,0.254632563379276,0.254583730327776,0.254556033303315,0.254556033303315, +0.254706667855326,0.254706667855326,0.254763562376226,0.254771708180381,0.254742407691817,0.254690574580461,0.254632563379276,0.254583730327776,0.254556033303315,0.254556033303315, +0.278971765165659,0.278971765165659,0.279022124213736,0.279020145215402,0.278978306928721,0.278913117258106,0.278842737685658,0.278784330227732,0.278751387962178,0.278751387962178, +0.327000585643268,0.327000585643268,0.327037251855083,0.327014116345928,0.32694608951029,0.326852970226179,0.326756633341941,0.326678010381975,0.326633921700799,0.326633921700799, +0.397712276382509,0.397712276382509,0.39772697277345,0.39766984035477,0.397559708939713,0.397421601537703,0.397283155915116,0.397171314882768,0.397108638989196,0.397108638989196, +0.489324261579444,0.489324261579444,0.489307415149501,0.489200645589075,0.489028945733808,0.488824972197223,0.488624147813199,0.488461865735286,0.488370059436583,0.488370059436583, +0.599234812031189,0.599234812031189,0.599176328516775,0.598999903371605,0.598741992601987,0.59844624303005,0.598156986713456,0.597919842036406,0.597781796081623,0.597781796081623, +0.72396695380517,0.72396695380517,0.72386070963931,0.723585773247666,0.723209387003297,0.722790692294019,0.722380273768474,0.722031800800989,0.721814640282128,0.721814640282128, +0.859215531215224,0.859215531215224,0.859080280450605,0.858650920750587,0.858112734682553,0.857538254211749,0.856970412862727,0.856455940504517,0.856082865370595,0.856082865370595, + +00:55:40, +0.254818378618694,0.254818378618694,0.25487527098967,0.254883422198997,0.254854132658914,0.25480231338142,0.254744315980829,0.254695493951037,0.254667803026609,0.254667803026609, +0.254818378618694,0.254818378618694,0.25487527098967,0.254883422198997,0.254854132658914,0.25480231338142,0.254744315980829,0.254695493951037,0.254667803026609,0.254667803026609, +0.27908113048843,0.27908113048843,0.279131487291132,0.279129514942614,0.2790876898324,0.279022516731606,0.278952153673623,0.278893759412506,0.278860824457833,0.278860824457833, +0.327104908246901,0.327104908246901,0.327141572526067,0.327118446540151,0.327050437619427,0.326957340582427,0.326861025797658,0.326782420508271,0.326738341635184,0.326738341635184, +0.397808292428227,0.397808292428227,0.397822988459002,0.397765870727628,0.397655764967697,0.397517688792435,0.397379274020947,0.397267457694346,0.397204795572292,0.397204795572292, +0.489408163180686,0.489408163180686,0.489391320136657,0.489284573496994,0.489112910630882,0.488908981038697,0.488708199834464,0.488545952524381,0.488454165814973,0.488454165814973, +0.599302533528133,0.599302533528133,0.599244059882413,0.599067669773351,0.598809811542432,0.598514122772202,0.598224926031527,0.597987830046168,0.597849812271345,0.597849812271345, +0.72401466662858,0.72401466662858,0.723908440951372,0.723633556810393,0.723257243581793,0.722838630827628,0.722428292759651,0.722079887790559,0.721862769266495,0.721862769266495, +0.859240225286922,0.859240225286922,0.859104999209754,0.858675718029934,0.858137631360334,0.857563257589033,0.856995521748919,0.856481144520965,0.856108137711847,0.856108137711847, + +00:55:41, +0.254930078591107,0.254930078591107,0.254986968806739,0.25499512541769,0.254965846824091,0.254914041379604,0.254856057779452,0.254807246771507,0.254779561947259,0.254779561947259, +0.254930078591107,0.254930078591107,0.254986968806739,0.25499512541769,0.254965846824091,0.254914041379604,0.254856057779452,0.254807246771507,0.254779561947259,0.254779561947259, +0.279190483399163,0.279190483399163,0.279240837952535,0.279238872250417,0.279197060313783,0.279131903780451,0.279061557235111,0.279003176169543,0.278970248525101,0.278970248525101, +0.327209215838,0.327209215838,0.327245878182855,0.327222761716611,0.32715477070591,0.327061695910568,0.3269654032201,0.326886815597243,0.326842746530013,0.326842746530013, +0.397904290975693,0.397904290975693,0.397918986646686,0.397861883597966,0.397751803484838,0.397613758526107,0.39747537459557,0.397363582966554,0.39730093461145,0.39730093461145, +0.489492046127324,0.489492046127324,0.489475206470263,0.489368482744069,0.489196856853739,0.488992971189412,0.488792233148416,0.488630020592717,0.488538253465003,0.488538253465003, +0.599370237501617,0.599370237501617,0.599311773724173,0.599135418639405,0.598877612927288,0.598581984934787,0.598292847746125,0.598055800432818,0.597917810826616,0.597917810826616, +0.724062365738634,0.724062365738634,0.723956158546105,0.723681326637627,0.723305086397484,0.722886555566833,0.722476297925052,0.722127960927903,0.721910884382515,0.721910884382515, +0.859264911811211,0.859264911811211,0.859129710413534,0.858700507727391,0.858162520421565,0.857588253311889,0.857020622943059,0.856506340811725,0.856133402303774,0.856133402303774, + +00:55:42, +0.255041767765107,0.255041767765107,0.255098655819981,0.255106817829007,0.255077550179891,0.255025758567546,0.254967788767665,0.254918988781703,0.254891310057775,0.254891310057775, +0.255041767765107,0.255041767765107,0.255098655819981,0.255106817829007,0.255077550179891,0.255025758567546,0.254967788767665,0.254918988781703,0.254891310057775,0.254891310057775, +0.279299823893363,0.279299823893363,0.279350176193454,0.279348217134318,0.279306418368373,0.279241278400139,0.27917094836561,0.279112580494326,0.279079660159462,0.279079660159462, +0.327313508417111,0.327313508417111,0.32735016882599,0.327327061875851,0.32725908877028,0.327166036211139,0.327069765609801,0.326991195649422,0.326947136385817,0.326947136385817, +0.398000272031033,0.398000272031033,0.398014967342627,0.397957878971909,0.39784782449726,0.397709810744848,0.397571457645116,0.397459690705521,0.397397056112803,0.397397056112803, +0.48957591042988,0.48957591042988,0.489559074160837,0.489452373340819,0.489280784412903,0.489076942659902,0.4888762477656,0.488714069950846,0.488622322397227,0.488622322397227, +0.599437923963939,0.599437923963939,0.599379470054349,0.599203149982065,0.59894539676887,0.598649829530137,0.5983607518696,0.598123753208723,0.597985791759813,0.597985791759813, +0.724110051146116,0.724110051146116,0.724003862434293,0.723729082740165,0.723352915461192,0.72293446652248,0.722524289275551,0.722176020223921,0.721958985641099,0.721958985641099, +0.859289590794373,0.859289590794373,0.859154414068232,0.858725289849268,0.858187401872585,0.857613241386689,0.85704571645155,0.856531529383232,0.856158659152833,0.856158659152833, + +00:55:43, +0.255153446133249,0.255153446133249,0.255210332021958,0.255218499425509,0.255189242718869,0.255137464937794,0.255079508938007,0.255030719974152,0.255003047350684,0.255003047350684, +0.255153446133249,0.255153446133249,0.255210332021958,0.255218499425509,0.255189242718869,0.255137464937794,0.255079508938007,0.255030719974152,0.255003047350684,0.255003047350684, +0.279409151966548,0.279409151966548,0.27945950200941,0.279457549589835,0.279415763991684,0.279350640586175,0.27928032706062,0.279221972382347,0.279189059356404,0.279189059356404, +0.327417785984782,0.327417785984782,0.327454444456022,0.327431347018419,0.327363391813081,0.32727036148468,0.327174112967296,0.327095560665341,0.327051511203126,0.327051511203126, +0.398096235600372,0.398096235600372,0.398110930552944,0.398053856855575,0.397943828011084,0.397805845454778,0.397667523175708,0.397555780917375,0.397493160082478,0.397493160082478, +0.489659756098861,0.489659756098861,0.489642923218881,0.489536245297748,0.489364693318886,0.48916089546069,0.488960243696548,0.488798100609308,0.488706372622192,0.488706372622192, +0.599505592927381,0.599505592927381,0.599447148885219,0.599270863813616,0.599013163079477,0.59871765657057,0.598428638414291,0.598191688386236,0.598053755083297,0.598053755083297, +0.724157722861794,0.724157722861794,0.724051552626704,0.723776825128791,0.723400730783722,0.722982363705402,0.722572266822007,0.722224065689495,0.722007073053144,0.722007073053144, +0.85931426224268,0.85931426224268,0.859179110180126,0.858750064401865,0.858212275719725,0.857638221819798,0.85707080228079,0.856556710241912,0.856183908265469,0.856183908265469, + +00:55:44, +0.255265113688104,0.255265113688104,0.255321997405245,0.25533017019977,0.255300924433594,0.255249160482905,0.255191218283028,0.255142440341398,0.255114773818521,0.255114773818521, +0.255265113688104,0.255265113688104,0.255321997405245,0.25533017019977,0.255300924433594,0.255249160482905,0.255191218283028,0.255142440341398,0.255114773818521,0.255114773818521, +0.27951846761424,0.27951846761424,0.27956881539593,0.279566869612497,0.279525097179238,0.279459990334073,0.279389693315646,0.279331351829107,0.279298446111426,0.279298446111426, +0.327522048541563,0.327522048541563,0.327558705073501,0.327535617144863,0.327467679834858,0.327374671731733,0.327278445293125,0.327199910645535,0.327155870982474,0.327155870982474, +0.398192181689826,0.398192181689826,0.398206876283751,0.398149817255077,0.398039814032423,0.397901862662014,0.397763571193465,0.397651853608235,0.397589246526597,0.397589246526597, +0.489743583144763,0.489743583144763,0.489726753654887,0.48962009862535,0.489448583582189,0.489244829602285,0.489044220951779,0.488882112578631,0.48879040415043,0.48879040415043, +0.599573244404209,0.599573244404209,0.599514810229046,0.599338560146329,0.599080911871392,0.598785466068388,0.598496507392517,0.598259605977693,0.598121700809414,0.598121700809414, +0.724205380896423,0.724205380896423,0.724099229134094,0.723824553814275,0.723448532375866,0.72303024712642,0.722620230575268,0.722272097335494,0.722055146629535,0.722055146629535, +0.859338926162394,0.859338926162394,0.859203798755487,0.858774831391474,0.858237141969306,0.85766319461757,0.857095880437168,0.856581883394186,0.856209149648124,0.856209149648124, + +00:55:45, +0.255376770422255,0.255376770422255,0.255433651962432,0.25544183014438,0.255412595316647,0.255360845195455,0.255302916795291,0.255254149875996,0.255226489453841,0.255226489453841, +0.255376770422255,0.255376770422255,0.255433651962432,0.25544183014438,0.255412595316647,0.255360845195455,0.255302916795291,0.255254149875996,0.255226489453841,0.255226489453841, +0.279627770831976,0.279627770831976,0.279678116348554,0.27967617719784,0.279634417926567,0.27956932763936,0.279499047126207,0.279440718830117,0.279407820420034,0.279407820420034, +0.327626296088006,0.327626296088006,0.32766295067898,0.327639872255734,0.327571952836159,0.327478966952843,0.327382762587827,0.327304245590543,0.327260215724398,0.327260215724398, +0.398288110305508,0.398288110305508,0.398302804541157,0.398245760176525,0.398135782567386,0.397997862372667,0.397859601704499,0.397747908784216,0.397685315451276,0.397685315451276, +0.489827391578072,0.489827391578072,0.489810565479335,0.489703933334107,0.4895324552133,0.489328745095185,0.489128179541801,0.488966105869331,0.488874416992463,0.488874416992463, +0.599640878406674,0.599640878406674,0.599582454098078,0.599406238992459,0.599148643156886,0.598853258035879,0.598564358816585,0.598327505995417,0.598189628950496,0.598189628950496, +0.724253025260746,0.724253025260746,0.724146891967205,0.723872268807372,0.723496320248403,0.723078116796339,0.722668180546167,0.722320115172776,0.722103206381142,0.722103206381142, +0.859363582559773,0.859363582559773,0.859228479800576,0.858799590824381,0.858262000627645,0.857688159786353,0.857120950927064,0.856607048846461,0.856234383307229,0.856234383307229, + +00:55:46, +0.255488416328298,0.255488416328298,0.255545295686121,0.25555347925194,0.255524255360626,0.25547251906803,0.255414604467375,0.255365848570518,0.255338194249207,0.255338194249207, +0.255488416328298,0.255488416328298,0.255545295686121,0.25555347925194,0.255524255360626,0.25547251906803,0.255414604467375,0.255365848570518,0.255338194249207,0.255338194249207, +0.2797370616153,0.2797370616153,0.279787404862829,0.279785472341411,0.279743726229212,0.279678652497569,0.27960838848783,0.279550073380899,0.279517182277746,0.279517182277746, +0.327730528624667,0.327730528624667,0.327767181273014,0.327744112351586,0.327676210817536,0.327583247148556,0.327487064851947,0.327408565500905,0.327364545429438,0.327364545429438, +0.398384021453523,0.398384021453523,0.398398715331265,0.398341685626019,0.398231733622076,0.39809384459284,0.397955614714918,0.397843946451428,0.397781366862625,0.397781366862625, +0.48991118140926,0.48991118140926,0.489894358702693,0.489787749434487,0.489616308222695,0.489412641949874,0.489212119477109,0.489050080491912,0.4889584111588,0.4889584111588, +0.599708494947014,0.599708494947014,0.599650080504548,0.599473900364245,0.599216356948212,0.598921032485315,0.598632192698787,0.598395388451714,0.598257539518859,0.598257539518859, +0.724300655965488,0.724300655965488,0.724194541136766,0.723919970118825,0.723544094412099,0.72312597272595,0.722716116745522,0.722368119212182,0.722151252318821,0.722151252318821, +0.859388231441065,0.859388231441065,0.859253153321648,0.858824342706862,0.858286851701046,0.857713117332487,0.857146013756852,0.856632206605142,0.856259609249205,0.856259609249205, + +00:55:47, +0.255600051398844,0.255600051398844,0.255656928568929,0.255665117515065,0.255635904558139,0.255584182093231,0.25552628129187,0.255477536417545,0.255449888197199,0.255449888197199, +0.255600051398844,0.255600051398844,0.255656928568929,0.255665117515065,0.255635904558139,0.255584182093231,0.25552628129187,0.255477536417545,0.255449888197199,0.255449888197199, +0.279846339959764,0.279846339959764,0.279896680934313,0.279894755038766,0.279853022082725,0.279787964904243,0.27971771739605,0.279659415476981,0.27962653168009,0.27962653168009, +0.327834746152102,0.327834746152102,0.32787139685616,0.327848337432975,0.327780453779541,0.327687512319422,0.32759135208603,0.327512870377164,0.327468860098134,0.327468860098134, +0.398479915139972,0.398479915139972,0.398494608660174,0.398437593609658,0.398327667202592,0.398189809328634,0.398051610230823,0.397939966615975,0.39787740076675,0.39787740076675, +0.489994952648786,0.489994952648786,0.489978133335416,0.48987154693695,0.489700142620837,0.489496520176827,0.489296040768187,0.489134036456867,0.489042386659936,0.489042386659936, +0.599776094037448,0.599776094037448,0.599717689460674,0.599541544273911,0.599284053257608,0.598988789428953,0.598700009051397,0.598463253358876,0.598325432526803,0.598325432526803, +0.724348273021366,0.724348273021366,0.724242176653492,0.723967657759362,0.723591854877704,0.723173814926032,0.722764039184139,0.722416109464541,0.722199284453416,0.722199284453416, +0.859412872812508,0.859412872812508,0.859277819324949,0.858849087045184,0.858311695195808,0.857738067262303,0.857171068932894,0.856657356676621,0.856284827480467,0.856284827480467, + +00:55:48, +0.255711675626517,0.255711675626517,0.255768550603484,0.255776744926385,0.255747542901809,0.255695834263672,0.255637947261382,0.255589213409675,0.255561571290411,0.255561571290411, +0.255711675626517,0.255711675626517,0.255768550603484,0.255776744926385,0.255747542901809,0.255695834263672,0.255637947261382,0.255589213409675,0.255561571290411,0.255561571290411, +0.279955605860932,0.279955605860932,0.280005944558572,0.28000402528547,0.279962305482666,0.279897264854937,0.279827033846414,0.279768745113904,0.2797358686226,0.2797358686226, +0.327938948670872,0.327938948670872,0.32797559742898,0.327952547500461,0.32788468172273,0.327791762465993,0.327695624290625,0.327617160219865,0.32757315973103,0.32757315973103, +0.398575791370951,0.398575791370951,0.398590484533975,0.398533484133531,0.398423583315024,0.398285756586144,0.398147588258311,0.398035969283955,0.39797341716975,0.39797341716975, +0.4900787053071,0.4900787053071,0.490061889387948,0.489955325851939,0.48978395841818,0.489580379786505,0.489379943425507,0.489217973774676,0.489126343506359,0.489126343506359, +0.599843675690184,0.599843675690184,0.599785280978659,0.599609170733669,0.599351732097301,0.599056528879036,0.598767807886678,0.59853110072918,0.598393307986615,0.598393307986615, +0.724395876439078,0.724395876439078,0.724289798528084,0.7240153317397,0.723639601655956,0.723221643407349,0.72281194787281,0.722464085940667,0.722247302795754,0.722247302795754, +0.859437506680336,0.859437506680336,0.859302477816716,0.858873823845608,0.858336531118221,0.857763009582124,0.857196116461547,0.856682499067285,0.856310038007421,0.856310038007421, + +00:55:49, +0.255823289003953,0.255823289003953,0.255880161782432,0.255888361478542,0.255859170384274,0.25580747557198,0.255749602368528,0.25570087953952,0.255673243521447,0.255673243521447, +0.255823289003953,0.255823289003953,0.255880161782432,0.255888361478542,0.255859170384274,0.25580747557198,0.255749602368528,0.25570087953952,0.255673243521447,0.255673243521447, +0.280064859314377,0.280064859314377,0.280115195731183,0.280113283077099,0.280071576424604,0.280006552345213,0.279936337834476,0.279878062287218,0.279845193100824,0.279845193100824, +0.32804313618154,0.32804313618154,0.328079782992036,0.328056742554602,0.327988894647661,0.327895997588823,0.327799881466282,0.327721435029558,0.327677444328673,0.327677444328673, +0.398671650152549,0.398671650152549,0.398686342958755,0.398629357203726,0.398519481965461,0.398381686371457,0.398243548803473,0.398131954461462,0.398069416077721,0.398069416077721, +0.490162439394638,0.490162439394638,0.490145626870721,0.49003908618989,0.489867755625163,0.489664220789358,0.489463827459528,0.489301892455806,0.489210281708539,0.489210281708539, +0.599911239917413,0.599911239917413,0.59985285507069,0.599676779755711,0.599419393479497,0.59912425084779,0.598835589216876,0.598598930574888,0.598461165910566,0.598461165910566, +0.724443466229313,0.724443466229313,0.724337406771229,0.724062992070538,0.723687334757579,0.723269458180652,0.722859842822312,0.722512048651362,0.722295307356651,0.722295307356651, +0.859462133050771,0.859462133050771,0.85932712880318,0.858898553114387,0.858361359474566,0.857787944298264,0.85722115634916,0.85670763378351,0.856335240836467,0.856335240836467, + +00:55:50, +0.255934891523804,0.255934891523804,0.255991762098427,0.255999967164191,0.255970786998182,0.255919106010798,0.25586124660594,0.255812534799702,0.255784904882929,0.255784904882929, +0.255934891523804,0.255934891523804,0.255991762098427,0.255999967164191,0.255970786998182,0.255919106010798,0.25586124660594,0.255812534799702,0.255784904882929,0.255784904882929, +0.28017410031568,0.28017410031568,0.280224434447731,0.280222528409237,0.28018083490412,0.280115827370643,0.280045629355802,0.27998736699248,0.279954505110315,0.279954505110315, +0.328147308684669,0.328147308684669,0.328183953545892,0.328160922595965,0.328093092554895,0.328000217688469,0.327904123613555,0.327825694806792,0.327781713891613,0.327781713891613, +0.398767491490851,0.398767491490851,0.398782183940596,0.398725212826323,0.398615363159983,0.398477598690656,0.398339491872395,0.398227922154583,0.398165397496752,0.398165397496752, +0.490246154921824,0.490246154921824,0.490229345794155,0.490122827961223,0.489951534252215,0.489748043195824,0.489547692880699,0.489385792510714,0.48929420127694,0.48929420127694, +0.599978786731311,0.599978786731311,0.599920411748941,0.599744371352219,0.599487037416391,0.599191955347428,0.59890335305422,0.598666742908246,0.59852900631091,0.59852900631091, +0.724491042402744,0.724491042402744,0.724385001393602,0.724110638762566,0.723735054193284,0.72331725925668,0.72290772404341,0.722559997607413,0.722343298146908,0.722343298146908, +0.85948675193003,0.85948675193003,0.859351772290561,0.858923274857764,0.858386180271119,0.85781287141703,0.857246188602071,0.856732760831665,0.856360435973992,0.856360435973992, + +00:55:51, +0.256046483178734,0.256046483178734,0.256103351544141,0.256111561976002,0.256082392736198,0.256030725572779,0.255972879966265,0.25592417918286,0.255896555367489,0.255896555367489, +0.256046483178734,0.256046483178734,0.256103351544141,0.256111561976002,0.256082392736198,0.256030725572779,0.255972879966265,0.25592417918286,0.255896555367489,0.255896555367489, +0.280283328860433,0.280283328860433,0.280333660703811,0.280331761277477,0.280290080916802,0.280225089926809,0.280154908405965,0.280096659225258,0.28006380464664,0.28006380464664, +0.328251466180828,0.328251466180828,0.328288109091117,0.328265087625114,0.328197275444994,0.328104422765491,0.328008350733,0.327929939552119,0.3278859684204,0.3278859684204, +0.398863315391936,0.398863315391936,0.398878007485574,0.398821051007397,0.398711226904666,0.398573493549821,0.398435417471157,0.398323872369401,0.398261361432924,0.398261361432924, +0.490329851899071,0.490329851899071,0.490313046168657,0.490206551176348,0.490035294309752,0.489831847016329,0.489631539699455,0.489469673949845,0.489378102222009,0.489378102222009, +0.60004631614404,0.60004631614404,0.599987951025569,0.599811945535357,0.599554663920162,0.599259642390147,0.598971099410927,0.598734537741485,0.598596829199889,0.598596829199889, +0.724538604970031,0.724538604970031,0.724432582405864,0.724158271826458,0.723782759973768,0.723365046646154,0.722955591546854,0.722607932819593,0.722391275177314,0.722391275177314, +0.85951136332432,0.85951136332432,0.859376408285075,0.858947989081975,0.858410993514144,0.857837790944722,0.857271213226612,0.856757880218112,0.856385623426379,0.856385623426379, + +00:55:52, +0.256158063961421,0.256158063961421,0.256214930112257,0.256223145906659,0.256193987590999,0.256142334250592,0.25608450244216,0.256035812681645,0.256008194967775,0.256008194967775, +0.256158063961421,0.256158063961421,0.256214930112257,0.256223145906659,0.256193987590999,0.256142334250592,0.25608450244216,0.256035812681645,0.256008194967775,0.256008194967775, +0.280392544944236,0.280392544944236,0.280442874495028,0.280440981677423,0.280399314458248,0.280334340009302,0.280264174980549,0.280205938981131,0.280173091705372,0.280173091705372, +0.328355608670586,0.328355608670586,0.32839224962828,0.328369237642617,0.328301443318525,0.328208612820451,0.328112562825175,0.328034169266097,0.327990207915589,0.327990207915589, +0.398959121861877,0.398959121861877,0.398973813599758,0.398916871753017,0.398807073205581,0.398669370955023,0.398531325605834,0.398419805111992,0.398357307892318,0.398357307892318, +0.490413530336779,0.490413530336779,0.490396728004624,0.490290255845663,0.490119035808178,0.489915632261286,0.48971536792622,0.48955353678363,0.489461984554185,0.489461984554185, +0.600113828167745,0.600113828167745,0.600055472912717,0.599879502317274,0.599622273002974,0.59932731198813,0.599038828299198,0.598802315086823,0.598664634589729,0.598664634589729, +0.724586153941819,0.724586153941819,0.72448014981866,0.724205891272874,0.723830452109713,0.723412820359786,0.723003445343382,0.722655854298663,0.722439238458641,0.722439238458641, +0.85953596723984,0.85953596723984,0.859401036792927,0.858972695793248,0.858435799209899,0.857862702887629,0.857296230229106,0.856782991949203,0.856410803200002,0.856410803200002, + +00:55:53, +0.256269633864556,0.256269633864556,0.256326497795472,0.256334718948857,0.256305571555275,0.256253932036918,0.256196114026299,0.256147435288722,0.256119823676447,0.256119823676447, +0.256269633864556,0.256269633864556,0.256326497795472,0.256334718948857,0.256305571555275,0.256253932036918,0.256196114026299,0.256147435288722,0.256119823676447,0.256119823676447, +0.280501748562699,0.280501748562699,0.280552075816995,0.280550189604687,0.280508535524066,0.280443577613722,0.280373429075148,0.280315206255686,0.280282366282095,0.280282366282095, +0.328459736154514,0.328459736154514,0.328496375157954,0.328473372649046,0.328405596176054,0.328312787853912,0.32821675989064,0.328138383949283,0.328094432377735,0.328094432377735, +0.399054910906742,0.399054910906742,0.399069602289215,0.399012675069248,0.398902902068792,0.398765230912328,0.398627216282494,0.398515720388428,0.398453236881005,0.398453236881005, +0.490497190245337,0.490497190245337,0.49048039131244,0.490373941979555,0.490202758757888,0.489999398941097,0.489799177571406,0.48963738102249,0.489545848283892,0.489545848283892, +0.600181322814559,0.600181322814559,0.600122977422514,0.599947041710106,0.599689864676977,0.599394964153543,0.599106539731219,0.59887007495646,0.59873242249264,0.59873242249264, +0.724633689328743,0.724633689328743,0.724527703642626,0.724253497112462,0.72387813061179,0.723460580408272,0.723051285443718,0.722703762055368,0.722487188001652,0.722487188001652, +0.859560563682784,0.859560563682784,0.859425657820314,0.858997394997804,0.858460597364634,0.857887607252034,0.857321239615869,0.856808096031283,0.856435975301224,0.856435975301224, + +00:55:54, +0.256381192880843,0.256381192880843,0.256438054586497,0.256446281095305,0.25641714462173,0.256365518924454,0.256307714711367,0.256259046996769,0.256231441486178,0.256231441486178, +0.256381192880843,0.256381192880843,0.256438054586497,0.256446281095305,0.25641714462173,0.256365518924454,0.256307714711367,0.256259046996769,0.256231441486178,0.256231441486178, +0.280610939711442,0.280610939711442,0.280661264665336,0.280659385054891,0.280617744109873,0.280552802735679,0.280482670685364,0.280424461044518,0.280391628372402,0.280391628372402, +0.328563848633188,0.328563848633188,0.328600485680713,0.328577492644974,0.328509734018153,0.328416947866442,0.328320941929959,0.328242583602236,0.328198641807399,0.328198641807399, +0.399150682532595,0.399150682532595,0.399165373560003,0.399108460962148,0.39899871350036,0.398861073427799,0.398723089507202,0.398611618204774,0.398549148405053,0.398549148405053, +0.490580831635123,0.490580831635123,0.490564036102477,0.490457609588397,0.49028646316926,0.490083147066154,0.489882968645413,0.489721206676835,0.489629693421544,0.489629693421544, +0.600248800096598,0.600248800096598,0.600190464567073,0.600014563725972,0.599757438954304,0.599462598898538,0.599174233719161,0.598937817362584,0.598800192920818,0.598800192920818, +0.72468121114142,0.72468121114142,0.72457524388838,0.724301089355855,0.723925795490656,0.723508326802294,0.72309911185857,0.722751656100443,0.722535123817092,0.722535123817092, +0.859585152659334,0.859585152659334,0.859450271373427,0.859022086701854,0.85848538798459,0.857912504044211,0.857346241393207,0.856833192470688,0.856461139736403,0.856461139736403, + +00:55:55, +0.256492741003001,0.256492741003001,0.256549600478055,0.256557832338728,0.256528706783081,0.256477094905907,0.256419304490064,0.256370647798478,0.256343048389657,0.256343048389657, +0.256492741003001,0.256492741003001,0.256549600478055,0.256557832338728,0.256528706783081,0.256477094905907,0.256419304490064,0.256370647798478,0.256343048389657,0.256343048389657, +0.280720118386093,0.280720118386093,0.280770441035683,0.280768568023667,0.280726940211295,0.280662015370793,0.280591899806808,0.280533703343235,0.280500877971895,0.280500877971895, +0.328667946107185,0.328667946107185,0.328704581197135,0.328681597630976,0.328613856845394,0.32852109285861,0.328425108943698,0.328346768225521,0.328302836205141,0.328302836205141, +0.399246436745491,0.399246436745491,0.399261127418177,0.399204229437771,0.399094507506339,0.398956898507492,0.398818945286016,0.398707498567092,0.398645042470523,0.398645042470523, +0.490664454516501,0.490664454516501,0.490647662385096,0.490541258682551,0.490370149052665,0.490166876646833,0.48996674115863,0.489805013757059,0.489713519977543,0.489713519977543, +0.600316260025964,0.600316260025964,0.600257934358492,0.600082068376979,0.599824995847074,0.599530216235254,0.59924191027518,0.599005542317366,0.598867945886444,0.598867945886444, +0.724728719390458,0.724728719390458,0.72462277056653,0.724348668013675,0.723973446756951,0.723556059552523,0.723146924598636,0.722799536444606,0.722583045915694,0.722583045915694, +0.859609734175666,0.859609734175666,0.859474877458448,0.859046770911603,0.858510171076001,0.857937393270427,0.85737123556742,0.856858281273746,0.856486296511888,0.856486296511888, + +00:55:56, +0.256604278223761,0.256604278223761,0.256661135462884,0.256669372671862,0.25664025803206,0.256588659973999,0.256530883355101,0.256482237686553,0.256454644379585,0.256454644379585, +0.256604278223761,0.256604278223761,0.256661135462884,0.256669372671862,0.25664025803206,0.256588659973999,0.256530883355101,0.256482237686553,0.256454644379585,0.256454644379585, +0.280829284582292,0.280829284582292,0.280879604923678,0.280877738506656,0.280836123823968,0.280771215514693,0.280701116435103,0.28064293314745,0.280610115076187,0.280610115076187, +0.328772028577083,0.328772028577083,0.3288086617078,0.328785687607631,0.328717964658352,0.328625222830986,0.328529260932424,0.328450937819703,0.328407015571526,0.328407015571526, +0.399342173551483,0.399342173551483,0.399356863869785,0.399299980502164,0.399190284092776,0.399052706157458,0.39891478362499,0.398803361481437,0.398740919083473,0.398740919083473, +0.490748058899825,0.490748058899825,0.490731270170644,0.490624889272369,0.490453816418458,0.490250587693502,0.490050495121433,0.489888802273549,0.489797327962278,0.489797327962278, +0.600383702614744,0.600383702614744,0.600325386808855,0.600149555675215,0.599892535367393,0.599597816175814,0.599309569411417,0.599073249832963,0.598935681401683,0.598935681401683, +0.724776214086449,0.724776214086449,0.724670283687668,0.724396233096528,0.724021084421307,0.723603778669614,0.723194723674597,0.722847403098562,0.722630954308179,0.722630954308179, +0.859634308237948,0.859634308237948,0.85949947608155,0.859071447633246,0.858534946645093,0.857962274936939,0.857396222144798,0.856883362446777,0.856511445634019,0.856511445634019, + +00:55:57, +0.256715804535868,0.256715804535868,0.256772659533735,0.256780902087456,0.256751798361409,0.256700214121466,0.256642451299207,0.256593816653714,0.256566229448675,0.256566229448675, +0.256715804535868,0.256715804535868,0.256772659533735,0.256780902087456,0.256751798361409,0.256700214121466,0.256642451299207,0.256593816653714,0.256566229448675,0.256566229448675, +0.280938438295684,0.280938438295684,0.280988756324973,0.280986896499506,0.280945294943536,0.280880403163015,0.280810320565878,0.280752150452789,0.2807193396809,0.2807193396809, +0.328876096043465,0.328876096043465,0.328912727213289,0.328889762575518,0.328822057457605,0.328729337784147,0.328633397896708,0.328555092385348,0.328511179907119,0.328511179907119, +0.399437892956616,0.399437892956616,0.399452582920871,0.399395714161371,0.399286043265717,0.399148496383741,0.399010604530171,0.398899206953859,0.398836778249954,0.398836778249954, +0.490831644795435,0.490831644795435,0.49081485946946,0.490708501368188,0.490537465276986,0.490334280216515,0.490134230544186,0.489972572236678,0.489881117386127,0.489881117386127, +0.60045112787501,0.60045112787501,0.600392821930229,0.600217025632758,0.59996005752735,0.599665398732323,0.599377211139998,0.599140939921516,0.599003399478687,0.599003399478687, +0.724823695239971,0.724823695239971,0.724717783262375,0.724443784615007,0.724068708494339,0.72365148416421,0.723242509097124,0.722895256073003,0.722678849005253,0.722678849005253, +0.85965887485234,0.85965887485234,0.859524067248899,0.85909611687297,0.858559714698082,0.857987149049998,0.857421201131625,0.856908435996094,0.856536587109129,0.856536587109129, + +00:55:58, +0.256827319932079,0.256827319932079,0.256884172683371,0.256892420578274,0.256863327763887,0.256811757341057,0.256754008315119,0.256705384692692,0.256677803589655,0.256677803589655, +0.256827319932079,0.256827319932079,0.256884172683371,0.256892420578274,0.256863327763887,0.256811757341057,0.256754008315119,0.256705384692692,0.256677803589655,0.256677803589655, +0.281047579521927,0.281047579521927,0.281097895235227,0.281096041997878,0.281054453565655,0.280989578311408,0.280919512194774,0.280861355254886,0.280828551781662,0.280828551781662, +0.328980148506914,0.328980148506914,0.329016777714187,0.328993822535222,0.328926135243733,0.328833437718667,0.328737519837124,0.328659231923029,0.32861532921249,0.32861532921249, +0.399533594966933,0.399533594966933,0.399548284577472,0.399491430421428,0.399381785031198,0.399244269192382,0.399106408007601,0.398995034990401,0.39893261997601,0.39893261997601, +0.490915212213661,0.490915212213661,0.490898430291868,0.490792094980335,0.490621095638583,0.490417954226216,0.490217947437244,0.490056323656806,0.489964888259457,0.489964888259457, +0.600518535818818,0.600518535818818,0.60046023973467,0.600284478261666,0.600027562339019,0.599732963916876,0.599444835473035,0.599208612595153,0.599071100129592,0.599071100129592, +0.724871162861591,0.724871162861591,0.724765269301216,0.724491322579693,0.724116318986649,0.723699176046939,0.723290280876872,0.722943095378609,0.722726730017607,0.722726730017607, +0.859683434024995,0.859683434024995,0.859548650966653,0.859120778636958,0.858584475241178,0.858012015615845,0.857446172534174,0.856933501928,0.856561720943542,0.856561720943542, + +00:55:59, +0.256938824405167,0.256938824405167,0.256995674904569,0.257003928137093,0.256974846232264,0.256923289625534,0.256865554395591,0.256816941796234,0.256789366795267,0.256789366795267, +0.256938824405167,0.256938824405167,0.256995674904569,0.257003928137093,0.256974846232264,0.256923289625534,0.256865554395591,0.256816941796234,0.256789366795267,0.256789366795267, +0.281156708256688,0.281156708256688,0.281207021650111,0.281205174997441,0.281163599685988,0.281098740955529,0.28102869131744,0.280970547549385,0.280937751374116,0.280937751374116, +0.329084185968018,0.329084185968018,0.32912081321108,0.329097867487327,0.329030198017319,0.328937522635125,0.328841626754247,0.328763356433317,0.32871946348821,0.32871946348821, +0.399629279588468,0.399629279588468,0.399643968845622,0.399587129288367,0.399477509395252,0.399340024589415,0.399202194063317,0.399090845597104,0.399028444267684,0.399028444267684, +0.490998761164822,0.490998761164822,0.490981982648181,0.490875670119127,0.490704707513568,0.490501609732934,0.490301645810946,0.490140056544284,0.490048640592622,0.490048640592622, +0.600585926458212,0.600585926458212,0.600527640234216,0.600351913573987,0.600095049814461,0.599800511741551,0.599512442422624,0.599276267865985,0.599138783366519,0.599138783366519, +0.72491861696186,0.72491861696186,0.724812741814745,0.724538847001151,0.724163915908826,0.723746854328417,0.723338039024483,0.722990921026044,0.722774597355921,0.722774597355921, +0.859707985762055,0.859707985762055,0.859573227240963,0.85914543293138,0.858609228280584,0.858036874640716,0.857471136358713,0.856958560248792,0.856586847143574,0.856586847143574, + +00:56:00, +0.257050317947915,0.257050317947915,0.257107166190121,0.257115424756701,0.257086353759325,0.257034810967671,0.256977089533389,0.256928487957096,0.256900919058265,0.256900919058265, +0.257050317947915,0.257050317947915,0.257107166190121,0.257115424756701,0.257086353759325,0.257034810967671,0.256977089533389,0.256928487957096,0.256900919058265,0.256900919058265, +0.281265824495641,0.281265824495641,0.281316135565303,0.281314295493871,0.281272733300208,0.281207891091043,0.281137857929535,0.281079727331938,0.28104693845391,0.28104693845391, +0.329188208427364,0.329188208427364,0.329224833704558,0.329201897432421,0.329134245778947,0.329041592534104,0.328945718648654,0.328867465916788,0.328823582734853,0.328823582734853, +0.399724946827251,0.399724946827251,0.399739635731347,0.399682810768214,0.399573216363907,0.399435762580869,0.399297962703352,0.399186638780001,0.399124251131008,0.399124251131008, +0.491082291659223,0.491082291659223,0.491065516548701,0.490959226794865,0.490788300912254,0.49058524674699,0.490385325675621,0.490223770909448,0.490132374395963,0.490132374395963, +0.600653299805219,0.600653299805219,0.600595023440892,0.600419331581751,0.60016251996572,0.599868042218411,0.599580032000847,0.599343905746111,0.599206449201574,0.599206449201574, +0.724966057551318,0.724966057551318,0.724860200813501,0.724586357889937,0.724211499271445,0.723794519019246,0.723385783550586,0.72303873302596,0.72282245103086,0.72282245103086, +0.859732530069657,0.859732530069657,0.85959779607797,0.8591700797624,0.858633973822491,0.858061726130835,0.857496092611499,0.856983610964755,0.856611965715533,0.856611965715533, + +00:56:01, +0.257161800553122,0.257161800553122,0.257218646532829,0.257226910429902,0.257197850337867,0.257146321360259,0.257088613721293,0.257040023168053,0.257012460371416,0.257012460371416, +0.257161800553122,0.257161800553122,0.257218646532829,0.257226910429902,0.257197850337867,0.257146321360259,0.257088613721293,0.257040023168053,0.257012460371416,0.257012460371416, +0.281374928234471,0.281374928234471,0.281425236976493,0.281423403482857,0.281381854403998,0.281317028713625,0.281247012026727,0.281188894598207,0.281156113016703,0.281156113016703, +0.329292215885545,0.329292215885545,0.329328839195213,0.329305912371094,0.329238278529204,0.329145647416187,0.329049795520926,0.328971560374018,0.328927686952994,0.328927686952994, +0.399820596689308,0.399820596689308,0.399835285240669,0.399778474866991,0.399668905943185,0.399531483172769,0.39939371393373,0.39928241454512,0.399220040572014,0.399220040572014, +0.491165803707158,0.491165803707158,0.491149032003717,0.491042765017842,0.490871875844937,0.490668865278691,0.490468987041589,0.490307466762625,0.490216089679813,0.490216089679813, +0.600720655871852,0.600720655871852,0.600662389366706,0.600486732296974,0.600229972804828,0.599935555359503,0.599647604219772,0.599411526247613,0.599274097646849,0.599274097646849, +0.725013484640489,0.725013484640489,0.72490764630801,0.724633855256588,0.724259069085069,0.723842170130015,0.723433514465797,0.723086531388995,0.722870291053077,0.722870291053077, +0.85975706695393,0.85975706695393,0.85962235748381,0.859194719136175,0.858658711873087,0.858086570092421,0.857521041298784,0.857008654082171,0.856637076665718,0.856637076665718, + +00:56:02, +0.2572732722136,0.2572732722136,0.257330115925512,0.257338385149513,0.257309335960699,0.257257820796099,0.257200126952096,0.257151547421888,0.257123990727503,0.257123990727503, +0.2572732722136,0.2572732722136,0.257330115925512,0.257338385149513,0.257309335960699,0.257257820796099,0.257200126952096,0.257151547421888,0.257123990727503,0.257123990727503, +0.281484019468872,0.281484019468872,0.281534325879377,0.281532498960094,0.281490962993048,0.281426153818961,0.281356153604693,0.281298049343863,0.281265275058163,0.281265275058163, +0.329396208343154,0.329396208343154,0.329432829683639,0.329409912303939,0.329342296268681,0.32924968728196,0.329153857371646,0.32907563980559,0.329031776143212,0.329031776143212, +0.399916229180657,0.399916229180657,0.399930917379604,0.399874121590713,0.399764578139101,0.399627186371133,0.399489447760474,0.399378172898484,0.399315812596726,0.399315812596726, +0.491249297318909,0.491249297318909,0.491232529023507,0.491126284798336,0.490955432321904,0.490752465338332,0.490552629919153,0.490391144114129,0.49029978645449,0.49029978645449, +0.60078799467011,0.60078799467011,0.600729738023655,0.600554115731659,0.600297408343799,0.600003051176863,0.59971515909145,0.599479129382557,0.59934172871442,0.59934172871442, +0.725060898239887,0.725060898239887,0.724955078308785,0.724681339111632,0.724306625360247,0.723889807671298,0.723481231780716,0.723134316125772,0.722918117433209,0.722918117433209, +0.859781596420994,0.859781596420994,0.859646911464607,0.859219351058853,0.858683442438548,0.858111406531684,0.85754598242681,0.85703368960731,0.856662180000423,0.856662180000423, + +00:56:03, +0.257384732922172,0.257384732922172,0.257441574360999,0.257449848908363,0.257420810620648,0.257369309268006,0.257311629218604,0.257263060711401,0.257235510119319,0.257235510119319, +0.257384732922172,0.257384732922172,0.257441574360999,0.257449848908363,0.257420810620648,0.257369309268006,0.257311629218604,0.257263060711401,0.257235510119319,0.257235510119319, +0.281593098194547,0.281593098194547,0.281643402269663,0.281641581921289,0.28160005906306,0.281535266402745,0.281465282659121,0.281407191564589,0.281374424573968,0.281374424573968, +0.329500185800788,0.329500185800788,0.329536805170431,0.329513897231551,0.329446298997969,0.329353712132011,0.329257904201399,0.329179704212084,0.329135850306089,0.329135850306089, +0.400011844307312,0.400011844307312,0.400026532154164,0.399969750945389,0.399860232957667,0.399722872181973,0.399585164189598,0.399473913846111,0.399411567211162,0.399411567211162, +0.491332772504748,0.491332772504748,0.491316007618338,0.491209786146618,0.49103897035343,0.490836046936199,0.490636254318609,0.490474802974262,0.490383464730301,0.490383464730301, +0.600855316211974,0.600855316211974,0.600797069423717,0.600621481897792,0.600364826594635,0.600070529682508,0.599782696627919,0.599546715162998,0.59940934241635,0.59940934241635, +0.725108298360009,0.725108298360009,0.725002496826325,0.724728809465581,0.724354168107513,0.723937431653657,0.723528935505933,0.723182087246904,0.722965930181881,0.722965930181881, +0.859806118476961,0.859806118476961,0.859671458026482,0.859243975536575,0.858708165525044,0.858136235454826,0.85757091600181,0.857058717546437,0.856687275725929,0.856687275725929, + +00:56:04, +0.257496182671677,0.257496182671677,0.257553021832134,0.257561301699295,0.257532274310548,0.257480786768809,0.257423120513637,0.257374563029405,0.257347018539673,0.257347018539673, +0.257496182671677,0.257496182671677,0.257553021832134,0.257561301699295,0.257532274310548,0.257480786768809,0.257423120513637,0.257374563029405,0.257347018539673,0.257347018539673, +0.281702164407208,0.281702164407208,0.281752466143067,0.281750652362156,0.281709142609744,0.281644366460678,0.281574399185705,0.281516321256073,0.281483561559805,0.281483561559805, +0.329604148259043,0.329604148259043,0.329640765656189,0.329617867154526,0.329550286717663,0.329457721966933,0.329361936010772,0.329283753594086,0.329239909442209,0.329239909442209, +0.400107442075282,0.400107442075282,0.400122129570353,0.400065362937025,0.399955870404889,0.399818540611298,0.399680863227112,0.399569637394013,0.399507304421336,0.399507304421336, +0.491416229274934,0.491416229274934,0.491399467798464,0.491293269072941,0.491122489949777,0.490919610082563,0.490719860250238,0.490558443353315,0.490467124517541,0.490467124517541, +0.600922620509416,0.600922620509416,0.600864383578859,0.600688830807345,0.600432227569323,0.600137990888444,0.599850216841201,0.599614283600974,0.599476938764686,0.599476938764686, +0.725155685011342,0.725155685011342,0.725049901871118,0.724776266328937,0.72440169733739,0.723985042087642,0.723576625652023,0.723229844762988,0.723013729309706,0.723013729309706, +0.859830633127936,0.859830633127936,0.859695997175543,0.859268592575472,0.858732881138737,0.858161056868041,0.857595842030013,0.857083737905806,0.856712363848514,0.856712363848514, + +00:56:05, +0.257607621454965,0.257607621454965,0.257664458331774,0.257672743515165,0.257643727023252,0.25759225329135,0.257534600830027,0.257486054368723,0.257458515981386,0.257458515981386, +0.257607621454965,0.257607621454965,0.257664458331774,0.257672743515165,0.257643727023252,0.25759225329135,0.257534600830027,0.257486054368723,0.257458515981386,0.257458515981386, +0.281811218102578,0.281811218102578,0.281861517495314,0.28185971027842,0.281818213628819,0.281753453988475,0.281683503180152,0.281625438414015,0.281592686011369,0.281592686011369, +0.329708095718523,0.329708095718523,0.329744711141514,0.329721822073465,0.329654259428359,0.329561716787317,0.329465952800356,0.329387787952184,0.329343953552156,0.329343953552156, +0.40020302249057,0.40020302249057,0.400217709634173,0.400160957571621,0.400051490486767,0.39991419166511,0.399776544879022,0.399665343548198,0.399603024233257,0.399603024233257, +0.491499667639713,0.491499667639713,0.491482909574127,0.491376733587552,0.491205991121198,0.491003154787684,0.49080344772431,0.490642065261567,0.490550765826496,0.490550765826496, +0.600989907574387,0.600989907574387,0.600931680501031,0.600756162472275,0.600499611279833,0.600205434806659,0.599917719743305,0.599681834708507,0.59954451777146,0.59954451777146, +0.725203058204358,0.725203058204358,0.725097293453635,0.724823709712185,0.724449213060386,0.724032638983787,0.723624302229547,0.723277588684609,0.723061514827281,0.723061514827281, +0.859855140380016,0.859855140380016,0.859720528917895,0.85929320218167,0.85875758928578,0.858185870777516,0.857620760517635,0.857108750691664,0.856737444374444,0.856737444374444, + +00:56:06, +0.2577190492649,0.2577190492649,0.257775883852789,0.257784174348843,0.257755168751622,0.257703708828484,0.25764607016062,0.257597534722195,0.257570002437291,0.257570002437291, +0.2577190492649,0.2577190492649,0.257775883852789,0.257784174348843,0.257755168751622,0.257703708828484,0.25764607016062,0.257597534722195,0.257570002437291,0.257570002437291, +0.281920259276388,0.281920259276388,0.281970556322138,0.281968755665814,0.281927272116014,0.281862528981856,0.281792594638175,0.281734543034123,0.281701797924367,0.281701797924367, +0.329812028179829,0.329812028179829,0.32984864162701,0.329825761988969,0.329758217130658,0.329665696593761,0.329569954570743,0.329491807286966,0.329447982636519,0.329447982636519, +0.400298585559173,0.400298585559173,0.400313272351618,0.40025653485517,0.400147093209296,0.400009825349406,0.399872209151327,0.399761032314666,0.399698726652926,0.399698726652926, +0.491583087609322,0.491583087609322,0.491566332955559,0.491460179700683,0.491289473877932,0.491086681061812,0.490887016751086,0.490725668709285,0.490634388667435,0.490634388667435, +0.601057177418829,0.601057177418829,0.600998960202169,0.600823476904527,0.600566977738122,0.600272861449128,0.599985205346223,0.599749368497606,0.59961207944869,0.59961207944869, +0.725250417949515,0.725250417949515,0.725144671584336,0.724871139625799,0.724496715286998,0.724080222352613,0.723671965249053,0.723325319022336,0.723109286745191,0.723109286745191, +0.859879640239289,0.859879640239289,0.859745053259632,0.859317804361285,0.85878228997232,0.858210677189427,0.857645671470888,0.857133755910251,0.856762517309979,0.856762517309979, + +00:56:07, +0.257830466094361,0.257830466094361,0.257887298388061,0.25789559419321,0.257866599488536,0.257815153373079,0.257757528498275,0.257709004082673,0.257681477900237,0.257681477900237, +0.257830466094361,0.257830466094361,0.257887298388061,0.25789559419321,0.257866599488536,0.257815153373079,0.257757528498275,0.257709004082673,0.257681477900237,0.257681477900237, +0.282029287924376,0.282029287924376,0.282079582619284,0.282077788520081,0.282036318067067,0.281971591436553,0.281901673555499,0.281843635112116,0.281810897294513,0.281810897294513, +0.329915945643567,0.329915945643567,0.329952557113281,0.329929686901643,0.32986215982516,0.329769661386861,0.329673941322527,0.329595811599026,0.32955199669589,0.32955199669589, +0.400394131287085,0.400394131287085,0.400408817728677,0.400352094793662,0.400242678578466,0.400105441670178,0.399967856050021,0.399856703699415,0.399794411686343,0.399794411686343, +0.491666489193983,0.491666489193983,0.491649737952979,0.491543607422556,0.491372938230206,0.491170188915184,0.490970567340812,0.490809253706724,0.490717993050621,0.490717993050621, +0.601124430054665,0.601124430054665,0.601066222694194,0.600890774116028,0.600634326956134,0.600340270827812,0.600052673661935,0.599816884980266,0.599679623808379,0.599679623808379, +0.72529776425726,0.72529776425726,0.725192036273668,0.724918556080238,0.724544204027706,0.72412779220463,0.723719614721077,0.723373035786728,0.723157045074007,0.723157045074007, +0.859904132711837,0.859904132711837,0.859769570206841,0.859342399120427,0.858806983204495,0.858235476109946,0.857670574895974,0.857158753567799,0.856787582661371,0.856787582661371, + +00:56:08, +0.257941871936236,0.257941871936236,0.257998701930488,0.258007003041162,0.257978019226882,0.257926586918017,0.257868975835866,0.257820462443021,0.257792942363085,0.257792942363085, +0.257941871936236,0.257941871936236,0.257998701930488,0.258007003041162,0.257978019226882,0.257926586918017,0.257868975835866,0.257820462443021,0.257792942363085,0.257792942363085, +0.282138304042292,0.282138304042292,0.282188596382504,0.282186808836971,0.282145351477724,0.282080641348306,0.282010739927857,0.281952714643721,0.28191998411753,0.28191998411753, +0.330019848110345,0.330019848110345,0.330056457600937,0.330033596812094,0.32996608751247,0.329873611167219,0.329777913056307,0.329699800888958,0.329655995730861,0.329655995730861, +0.400489659680292,0.400489659680292,0.400504345771334,0.400447637393079,0.400338246600261,0.400201040633412,0.400063485581093,0.399952357708435,0.3998900793395,0.3998900793395, +0.49174987240391,0.49174987240391,0.491733124576595,0.49162701676338,0.491456384188237,0.491253678358026,0.491054099503724,0.49089282026413,0.490801578986302,0.490801578986302, +0.601191665493806,0.601191665493806,0.601133467989015,0.600958054118691,0.600701658945794,0.600407662954657,0.600120124702404,0.599884384168466,0.599747150862515,0.599747150862515, +0.725345097138024,0.725345097138024,0.725239387532064,0.724965959085949,0.72459167929298,0.724175348550332,0.72376725065614,0.72342073898833,0.723204789824288,0.723204789824288, +0.859928617803733,0.859928617803733,0.859794079765601,0.859366986465195,0.858831668988434,0.858260267545234,0.857695470799087,0.85718374367053,0.856812640434863,0.856812640434863, + +00:56:09, +0.258053266783431,0.258053266783431,0.258110094472979,0.258118400885609,0.258089427959565,0.258038009456193,0.257980412166278,0.257931909796118,0.257904395818708,0.257904395818708, +0.258053266783431,0.258053266783431,0.258110094472979,0.258118400885609,0.258089427959565,0.258038009456193,0.257980412166278,0.257931909796118,0.257904395818708,0.257904395818708, +0.282247307625896,0.282247307625896,0.28229759760756,0.282295816612248,0.282254372343742,0.282189678712864,0.28211979375099,0.282061781624674,0.282029058389151,0.282029058389151, +0.330123735580774,0.330123735580774,0.330160343090589,0.330137491720931,0.330070000193194,0.329977545935438,0.329881869772682,0.329803775157359,0.329759979742028,0.329759979742028, +0.400585170744776,0.400585170744776,0.40059985648557,0.4005431626594,0.400433797280661,0.400296622245089,0.400159097750526,0.400047994347711,0.399985729618382,0.399985729618382, +0.491833237249303,0.491833237249303,0.491816492836604,0.491710407733353,0.491539811762229,0.491337149400552,0.491137613250045,0.490976368391733,0.490885146484714,0.490885146484714, +0.601258883748147,0.601258883748147,0.601200696098522,0.601025316924416,0.600768973719018,0.600475037841593,0.60018755847958,0.599951866074171,0.599814660623073,0.599814660623073, +0.725392416602228,0.725392416602228,0.725286725369944,0.725013348653367,0.724639141093276,0.724222891400201,0.723814873064751,0.72346842863767,0.723252521006578,0.723252521006578, +0.859953095521042,0.859953095521042,0.859818581941984,0.859391566401683,0.85885634733026,0.858285051501447,0.857720359186414,0.85720872622466,0.856837690636689,0.856837690636689, + +00:56:10, +0.258164650628862,0.258164650628862,0.258221476008455,0.258229787719472,0.258200825679501,0.258149420980513,0.258091837482409,0.258043346134855,0.258015838259994,0.258015838259994, +0.258164650628862,0.258164650628862,0.258221476008455,0.258229787719472,0.258200825679501,0.258149420980513,0.258091837482409,0.258043346134855,0.258015838259994,0.258015838259994, +0.282356298670953,0.282356298670953,0.282406586290225,0.282404811841679,0.282363380660887,0.282298703525985,0.282228835020651,0.282170836050721,0.282138120105121,0.282138120105121, +0.330227608055465,0.330227608055465,0.330264213582848,0.330241371628765,0.33017389786794,0.330081465692124,0.329985811472254,0.329907734404828,0.329863948729989,0.329863948729989, +0.400680664486513,0.400680664486513,0.400695349877356,0.400638670598597,0.400529330625638,0.400392186511185,0.4002546925643,0.400143613623226,0.400081362528973,0.400081362528973, +0.491916583740352,0.491916583740352,0.491899842743189,0.491793780342662,0.491623220962377,0.491420602052964,0.491221108589988,0.491059898099755,0.490968695556084,0.490968695556084, +0.60132608482957,0.60132608482957,0.601267907034594,0.601092562545086,0.600836271287702,0.600542395500536,0.600254975005396,0.60001933070933,0.59988215310201,0.59988215310201, +0.725439722660277,0.725439722660277,0.725334049797715,0.725060724792911,0.724686589439036,0.724270420764706,0.723862481957404,0.723516104745269,0.723300238631408,0.723300238631408, +0.859977565869822,0.859977565869822,0.859843076742054,0.859416138935977,0.858881018236087,0.85830982798473,0.857745240064134,0.857233701236396,0.856862733273079,0.856862733273079, + +00:56:11, +0.258276023465458,0.258276023465458,0.258332846529854,0.258341163535685,0.258312212379619,0.2582608214839,0.258203251777172,0.258154771452138,0.258127269679844,0.258127269679844, +0.258276023465458,0.258276023465458,0.258332846529854,0.258341163535685,0.258312212379619,0.2582608214839,0.258203251777172,0.258154771452138,0.258127269679844,0.258127269679844, +0.282465277173242,0.282465277173242,0.282515562426277,0.282513794521046,0.282472376424932,0.282407715783438,0.282337863732599,0.282279877917617,0.282247169261188,0.282247169261188, +0.330331465535035,0.330331465535035,0.330368069078331,0.330345236536211,0.330277780537321,0.330185370437883,0.330089738155627,0.330011678631968,0.329967902695344,0.329967902695344, +0.400776140911475,0.400776140911475,0.400790825952662,0.400734161216639,0.400624846641163,0.40048773343767,0.400350270028385,0.400239215540952,0.400176978077248,0.400176978077248, +0.491999911887232,0.491999911887232,0.491983174306523,0.491877134601481,0.49170661179886,0.491504036325452,0.491304585533754,0.491143409398404,0.491052226210625,0.491052226210625, +0.601393268749941,0.601393268749941,0.601335100809093,0.601159790992573,0.600903551663731,0.600609735943388,0.600322374291775,0.600086778085879,0.599949628311272,0.599949628311272, +0.725487015322565,0.725487015322565,0.725381360825771,0.725108087514988,0.724734024340689,0.724317936654302,0.723910077344581,0.723563767321628,0.723347942709296,0.723347942709296, +0.860002028856123,0.860002028856123,0.859867564171866,0.859440704074155,0.858905681712021,0.858334597001222,0.857770113438416,0.857258668711937,0.856887768350251,0.856887768350251, + +00:56:12, +0.258387385286162,0.258387385286162,0.258444206030123,0.258452528327197,0.258423588052861,0.258372210959287,0.258314655043491,0.258266185740883,0.258238690071171,0.258238690071171, +0.258387385286162,0.258387385286162,0.258444206030123,0.258452528327197,0.258423588052861,0.258372210959287,0.258314655043491,0.258266185740883,0.258238690071171,0.258238690071171, +0.282574243128548,0.282574243128548,0.282624526011507,0.282622764646135,0.282581359631661,0.282516715480999,0.282446879882604,0.282388907221124,0.282356205853116,0.282356205853116, +0.3304353080201,0.3304353080201,0.330471909577655,0.330449086443884,0.330381648201949,0.330289260173326,0.330193649823408,0.330115607839382,0.330071841638697,0.330071841638697, +0.400871600025627,0.400871600025627,0.400886284717449,0.400829634519487,0.400720345333197,0.400583263030511,0.400445830148751,0.400334800106861,0.400272576269179,0.400272576269179, +0.492083221700111,0.492083221700111,0.492066487536769,0.491960470519974,0.491789984281849,0.491587452228197,0.491388044091532,0.491226902297878,0.49113573845854,0.49113573845854, +0.601460435521111,0.601460435521111,0.601402277433869,0.601227002278731,0.600970814858974,0.600677059182036,0.60038975635062,0.600154208215739,0.600017086262788,0.600017086262788, +0.72553429459947,0.72553429459947,0.725428658464491,0.725155436829994,0.724781445808651,0.724365439079431,0.723957659236751,0.72361141637724,0.723395633250747,0.723395633250747, +0.860026484485988,0.860026484485988,0.859892044237468,0.859465261822285,0.858930337764162,0.858359358557053,0.857794979315424,0.857283628657476,0.856912795874416,0.856912795874416, + +00:56:13, +0.258498736083931,0.258498736083931,0.258555554502224,0.25856388208697,0.258534952692183,0.258483589399622,0.258426047274305,0.258377588994021,0.258350099426901,0.258350099426901, +0.258498736083931,0.258498736083931,0.258555554502224,0.25856388208697,0.258534952692183,0.258483589399622,0.258426047274305,0.258377588994021,0.258350099426901,0.258350099426901, +0.282683196532665,0.282683196532665,0.282733477041713,0.282731722212746,0.282690330276868,0.282625702614454,0.282555883466447,0.282497923957018,0.282465229876673,0.282465229876673, +0.33053913551128,0.33053913551128,0.33057573508144,0.330552921352403,0.330485500862441,0.330393134899066,0.330297546476206,0.330219522027677,0.330175765560652,0.330175765560652, +0.40096704183493,0.40096704183493,0.400981726177677,0.400925090513098,0.400815826707698,0.400678775295665,0.400541372931359,0.400430367326917,0.400368157110731,0.400368157110731, +0.492166513189143,0.492166513189143,0.492149782444075,0.492043788108293,0.491873338421502,0.491670849771365,0.491471484273498,0.491310376808363,0.491219232310018,0.491219232310018, +0.601527585154919,0.601527585154919,0.601469436920756,0.601294196415402,0.601038060885286,0.600744365228354,0.600457121193823,0.600221621110816,0.600084526968473,0.600084526968473, +0.72558156050136,0.72558156050136,0.725475942724243,0.725202772748307,0.724828853853325,0.724412928050523,0.72400522764437,0.723659051922583,0.723443310266252,0.723443310266252, +0.860050932765449,0.860050932765449,0.859916516944901,0.859489812186429,0.858954986398599,0.858384112658348,0.857819837701312,0.857308581079194,0.856937815851778,0.856937815851778, + +00:56:14, +0.258610075851734,0.258610075851734,0.258666891939132,0.258675224807977,0.258646306290554,0.258594956797864,0.258537428462565,0.258488981204497,0.258461497739975,0.258461497739975, +0.258610075851734,0.258610075851734,0.258666891939132,0.258675224807977,0.258646306290554,0.258594956797864,0.258537428462565,0.258488981204497,0.258461497739975,0.258461497739975, +0.282792137381399,0.282792137381399,0.282842415512703,0.282840667216683,0.282799288356353,0.282734677179598,0.282664874479913,0.28260692812108,0.282574241327638,0.282574241327638, +0.330642948009197,0.330642948009197,0.330679545590308,0.33065674126239,0.330589338519414,0.330496994615717,0.330401428114634,0.330323421197463,0.330279674461818,0.330279674461818, +0.401062466345339,0.401062466345339,0.401077150339296,0.401020529203424,0.40091129077062,0.400774270239089,0.400636898382167,0.400525917207079,0.400463720607865,0.400463720607865, +0.492249786364469,0.492249786364469,0.492233059038581,0.492127087376577,0.491956674227967,0.491754228965113,0.49155490608982,0.491393832940033,0.49130270777524,0.49130270777524, +0.601594717663186,0.601594717663186,0.601536579281573,0.601361373414411,0.601105289754507,0.600811654094199,0.60052446883326,0.600289016783002,0.600151950440229,0.600151950440229, +0.725628813038589,0.725628813038589,0.725523213615382,0.725250095280297,0.7248762484851,0.724460403577992,0.724052782577878,0.72370667396812,0.72349097376629,0.72349097376629, +0.860075373700535,0.860075373700535,0.859940982300197,0.859514355172643,0.858979627621417,0.858408859311219,0.857844688602228,0.857333525983268,0.856962828288533,0.856962828288533, + +00:56:15, +0.258721404582553,0.258721404582553,0.258778218333836,0.258786556483205,0.258757648840955,0.258706313146987,0.258648798601236,0.258600362365268,0.258572885003346,0.258572885003346, +0.258721404582553,0.258721404582553,0.258778218333836,0.258786556483205,0.258757648840955,0.258706313146987,0.258648798601236,0.258600362365268,0.258572885003346,0.258572885003346, +0.282901065670561,0.282901065670561,0.282951341420293,0.282949599653764,0.282908233865929,0.282843639172237,0.282773852918802,0.282715919709101,0.282683240201801,0.282683240201801, +0.330746745514475,0.330746745514475,0.330783341104884,0.330760546174466,0.330693161173489,0.330600839323897,0.330505294739304,0.33042730534935,0.330383568342803,0.330383568342803, +0.401157873562803,0.401157873562803,0.401172557208254,0.401115950596411,0.401006737527909,0.400869747866732,0.400732406507126,0.400621449753301,0.400559266766537,0.400559266766537, +0.492333041236222,0.492333041236222,0.492316317330412,0.492210368334956,0.492039991711377,0.491837589819585,0.491638309550651,0.491477270703051,0.491386164864372,0.491386164864372, +0.601661833057722,0.601661833057722,0.601603704528125,0.601428533287571,0.601172501478464,0.600878925791414,0.600591799280793,0.600356395244174,0.600219356689941,0.600219356689941, +0.725676052221496,0.725676052221496,0.725570471148249,0.725297404436318,0.724923629714354,0.724507865672243,0.724100324047705,0.723754282524302,0.723538623761325,0.723538623761325, +0.860099807297263,0.860099807297263,0.85996544030938,0.859538890786971,0.85900426143869,0.858433598521775,0.85786953202431,0.857358463375865,0.856987833190867,0.856987833190867, + +00:56:16, +0.258832722269382,0.258832722269382,0.258889533679335,0.258897877105654,0.258868980336381,0.258817658439977,0.258760157683295,0.258711732469303,0.258684261209979,0.258684261209979, +0.258832722269382,0.258832722269382,0.258889533679335,0.258897877105654,0.258868980336381,0.258817658439977,0.258760157683295,0.258711732469303,0.258684261209979,0.258684261209979, +0.283009981395975,0.283009981395975,0.283060254760311,0.283058519519813,0.283017166801415,0.282952588588182,0.282882818778919,0.282824898716883,0.282792226494958,0.282792226494958, +0.330850528027742,0.330850528027742,0.330887121625796,0.330864336089259,0.330796968825289,0.330704669024225,0.330609146350834,0.330531174483953,0.330487447204222,0.330487447204222, +0.401253263493267,0.401253263493267,0.401267946790493,0.401211354697999,0.401102166985507,0.400965208184536,0.400827897312183,0.400716964971532,0.400654795592696,0.400654795592696, +0.49241627781452,0.49241627781452,0.492399557329683,0.492293630993545,0.492123290881857,0.491920932344914,0.491721694666135,0.491560690107568,0.491469603587572,0.491469603587572, +0.601728931350321,0.601728931350321,0.601670812672202,0.601495676046679,0.601239696068966,0.600946180331829,0.60065911254827,0.600423756506195,0.60028674572948,0.60028674572948, +0.725723278060409,0.725723278060409,0.725617715333172,0.725344700226711,0.724970997551449,0.724555314343663,0.724147852064267,0.723801877601569,0.72358626026181,0.72358626026181, +0.860124233561645,0.860124233561645,0.859989890978469,0.859563419035453,0.859028887856486,0.858458330296115,0.85789436797369,0.857383393263145,0.857012830564961,0.857012830564961, + +00:56:17, +0.25894402890523,0.25894402890523,0.259000837968644,0.259009186668339,0.25898030076984,0.258928992669834,0.258871505701733,0.258823091509586,0.258795626352854,0.258795626352854, +0.25894402890523,0.25894402890523,0.259000837968644,0.259009186668339,0.25898030076984,0.258928992669834,0.258871505701733,0.258823091509586,0.258795626352854,0.258795626352854, +0.283118884553472,0.283118884553472,0.28316915552859,0.283167426810663,0.283126087158641,0.283061525423258,0.282991772056079,0.282933865140235,0.282901200202916,0.282901200202916, +0.330954295549625,0.330954295549625,0.330990887153672,0.330968111007395,0.33090076147544,0.330808483717324,0.330712982949842,0.330635028601887,0.330591311046688,0.330591311046688, +0.401348636142671,0.401348636142671,0.401363319091949,0.401306741514126,0.401197579149351,0.401060651198442,0.400923370803279,0.400812462867714,0.400750307092287,0.400750307092287, +0.492499496109472,0.492499496109472,0.4924827790465,0.492376875362452,0.49220657174952,0.492004256551222,0.491805061446402,0.491644091163724,0.491553023954982,0.491553023954982, +0.601796012552761,0.601796012552761,0.601737903725583,0.601562801703518,0.601306873537812,0.601013417727259,0.600726408647523,0.600491100580912,0.600354117570705,0.600354117570705, +0.725770490565643,0.725770490565643,0.725664946180465,0.725391982661805,0.725018352006736,0.72460274960263,0.724195366637967,0.723849459210344,0.723633883278182,0.723633883278182, +0.860148652499685,0.860148652499685,0.860014334313472,0.859587939924119,0.859053506880863,0.85848305464033,0.85791919645649,0.85740831565126,0.857037820416987,0.857037820416987, + +00:56:18, +0.259055324483118,0.259055324483118,0.25911213119479,0.259120485164284,0.259091610134352,0.25904031582957,0.258982842649552,0.258934439479114,0.258906980424964,0.258906980424964, +0.259055324483118,0.259055324483118,0.25911213119479,0.259120485164284,0.259091610134352,0.25904031582957,0.258982842649552,0.258934439479114,0.258906980424964,0.258906980424964, +0.283227775138891,0.283227775138891,0.283278043720976,0.283276321522159,0.283234994933445,0.283170449673294,0.283100712746108,0.283042818974976,0.283010161321491,0.283010161321491, +0.331058048080757,0.331058048080757,0.331094637689144,0.331071870929506,0.331004539124569,0.330912283403817,0.330816804536948,0.330738867703772,0.330695159870819,0.330695159870819, +0.401443991516948,0.401443991516948,0.401458674118553,0.40140211105072,0.401292974025373,0.401156076914383,0.401018826986351,0.400907943447788,0.400845801271249,0.400845801271249, +0.492582696131175,0.492582696131175,0.492565982490952,0.492460101451769,0.492289834324464,0.492087562448619,0.491888409901573,0.491727473881646,0.491636425976736,0.491636425976736, +0.601863076676808,0.601863076676808,0.601804977700027,0.601629910269856,0.601374033896784,0.601080637989504,0.60079368759037,0.60055842748016,0.600421472225457,0.600421472225457, +0.725817689747499,0.725817689747499,0.72571216370043,0.725439251751916,0.725065693090552,0.724650171459506,0.724242867779193,0.72389702736104,0.723681492820867,0.723681492820867, +0.860173064117377,0.860173064117377,0.860038770320391,0.859612453458993,0.859078118517874,0.858507771560504,0.857944017478826,0.857433230546353,0.857062802753107,0.857062802753107, + +00:56:19, +0.25916660899608,0.25916660899608,0.259223413350811,0.259231772586529,0.259202908422951,0.259151627912211,0.259094168519771,0.259045776370895,0.259018323419312,0.259018323419312, +0.25916660899608,0.25916660899608,0.259223413350811,0.259231772586529,0.259202908422951,0.259151627912211,0.259094168519771,0.259045776370895,0.259018323419312,0.259018323419312, +0.283336653148083,0.283336653148083,0.28338691933332,0.283385203650151,0.283343890121673,0.283279361334132,0.28320964084484,0.283151760216933,0.283119109846508,0.283119109846508, +0.331161785621771,0.331161785621771,0.331198373232846,0.331175615856223,0.331108301773305,0.331016068084332,0.330920611112778,0.330842691790228,0.330798993677234,0.330798993677234, +0.401539329622027,0.401539329622027,0.40155401187623,0.401497463313708,0.401388351619498,0.401251485338287,0.401114265867328,0.401003406717684,0.400941278135518,0.400941278135518, +0.492665877889713,0.492665877889713,0.492649167673123,0.492543309271579,0.492373078616781,0.492170850047202,0.491971740041755,0.491810838271452,0.491719809662956,0.491719809662956, +0.601930123734214,0.601930123734214,0.601872034607284,0.601697001757448,0.60144117715765,0.601147841130349,0.600860949388617,0.600625737215758,0.600488809705565,0.600488809705565, +0.725864875616264,0.725864875616264,0.725759367903358,0.725486507507345,0.725113020813221,0.724697579924642,0.724290355498322,0.723944582064055,0.723729088900277,0.723729088900277, +0.86019746842071,0.86019746842071,0.860063199005219,0.85963695964609,0.859102722773564,0.858532481062712,0.857968831046805,0.85745813795456,0.857087777579478,0.857087777579478, + +00:56:20, +0.259277882437163,0.259277882437163,0.259334684429762,0.259343048928127,0.259314195628683,0.259262928910794,0.259205483305417,0.259157102177952,0.259129655328918,0.259129655328918, +0.259277882437163,0.259277882437163,0.259334684429762,0.259343048928127,0.259314195628683,0.259262928910794,0.259205483305417,0.259157102177952,0.259129655328918,0.259129655328918, +0.283445518576906,0.283445518576906,0.283495782361485,0.2834940731905,0.283452772719184,0.283388260401623,0.283318556348115,0.283260688861945,0.283228045773801,0.283228045773801, +0.331265508173302,0.331265508173302,0.331302093785414,0.331279345788182,0.331212049422282,0.331119837759496,0.331024402677956,0.330946500861878,0.330902812466555,0.330902812466555, +0.401634650463832,0.401634650463832,0.401649332370903,0.401592798309009,0.401483711937648,0.401346876476077,0.401209687452136,0.401098852683332,0.401036737691021,0.401036737691021, +0.492749041395159,0.492749041395159,0.492732334603079,0.492626498831954,0.492456304636547,0.49225411935706,0.492055051877047,0.491894184343246,0.491803175023751,0.491803175023751, +0.601997153736713,0.601997153736713,0.601939074459085,0.601764076178034,0.601508303332164,0.601215027161566,0.600928194054052,0.600693029799511,0.600556130022842,0.600556130022842, +0.725912048182214,0.725912048182214,0.725806558799523,0.725533749938381,0.725160335185054,0.724744975008375,0.724337829805717,0.723992123329774,0.723776671526811,0.723776671526811, +0.860221865415664,0.860221865415664,0.860087620373943,0.859661458491418,0.859127319653967,0.858557183153023,0.857993637166528,0.85748303788201,0.857112744902248,0.857112744902248, + +00:56:21, +0.259389144799427,0.259389144799427,0.259445944424708,0.259454314182141,0.259425471744609,0.259374218818371,0.259316786999534,0.25926841689332,0.259240976146813,0.259240976146813, +0.259389144799427,0.259389144799427,0.259445944424708,0.259454314182141,0.259425471744609,0.259374218818371,0.259316786999534,0.25926841689332,0.259240976146813,0.259240976146813, +0.283554371421227,0.283554371421227,0.283604632801342,0.283602930139078,0.283561642721841,0.283497146871623,0.283427459251788,0.283369604905858,0.283336969099212,0.283336969099212, +0.33136921573599,0.33136921573599,0.331405799347487,0.33138306072602,0.331315782072134,0.331223592429943,0.33112817923311,0.331050294919349,0.331006616239407,0.331006616239407, +0.40172995404828,0.40172995404828,0.401744635608484,0.401688116042538,0.401579054985738,0.401442250333671,0.401305091746696,0.401194281350654,0.401132179943683,0.401132179943683, +0.492832186657577,0.492832186657577,0.49281548329088,0.492709670142953,0.492539512393829,0.492337370388267,0.492138345417532,0.491977512107123,0.491886522069221,0.491886522069221, +0.602064166696028,0.602064166696028,0.602006097267149,0.601831133543339,0.601575412432064,0.601282196094912,0.600995421598451,0.600760305243208,0.600623433189088,0.600623433189088, +0.725959207455612,0.725959207455612,0.725853736399188,0.725580979055303,0.72520763621635,0.724792356721029,0.724385290711728,0.724039651168569,0.723824240710855,0.723824240710855, +0.860246255108213,0.860246255108213,0.860112034432541,0.859685950000975,0.859151909165113,0.858581877837496,0.858018435844086,0.857507930334822,0.857137704727556,0.857137704727556, + +00:56:22, +0.259500396075944,0.259500396075944,0.259557193328726,0.259565568341651,0.2595367367638,0.259485497628007,0.259428079595177,0.259379720510047,0.25935228586604,0.25935228586604, +0.259500396075944,0.259500396075944,0.259557193328726,0.259565568341651,0.2595367367638,0.259485497628007,0.259428079595177,0.259379720510047,0.25935228586604,0.25935228586604, +0.283663211676923,0.283663211676923,0.283713470648771,0.283711774491763,0.28367050012552,0.283606020740002,0.283536349551718,0.283478508344525,0.283445879818593,0.283445879818593, +0.331472908310475,0.331472908310475,0.331509489919707,0.331486760670376,0.331419499723497,0.331327332096305,0.331231940778872,0.331154073963267,0.331110404996416,0.331110404996416, +0.401825240381285,0.401825240381285,0.401839921594886,0.401783416520204,0.401674380769679,0.401537606916981,0.401400478756923,0.401289692725566,0.401227604899423,0.401227604899423, +0.492915313687016,0.492915313687016,0.492898613746571,0.492792823214625,0.492622701898681,0.492420603150888,0.492221620673286,0.492060821573164,0.491969850809451,0.491969850809451, +0.602131162623867,0.602131162623867,0.602073103043182,0.601898173865075,0.601642504469076,0.60134934794213,0.601062632033574,0.600827563558627,0.600690719216087,0.600690719216087, +0.726006353446706,0.726006353446706,0.725900900712604,0.725628194868372,0.725254923917394,0.724839725072914,0.724432738226692,0.724087165590801,0.723871796462782,0.723871796462782, +0.860270637504319,0.860270637504319,0.860136441186984,0.859710434180755,0.859176491313023,0.858606565122185,0.858043227085563,0.857532815319109,0.857162657061535,0.857162657061535, + +00:56:23, +0.259611636259801,0.259611636259801,0.259668431134909,0.259676811399746,0.259647990679342,0.259596765332777,0.259539361085415,0.259491013021195,0.259463584479658,0.259463584479658, +0.259611636259801,0.259611636259801,0.259668431134909,0.259676811399746,0.259647990679342,0.259596765332777,0.259539361085415,0.259491013021195,0.259463584479658,0.259463584479658, +0.283772039339879,0.283772039339879,0.283822295899662,0.283820606244443,0.283779344926103,0.283714882002636,0.283645227243776,0.283587399173813,0.283554777927807,0.283554777927807, +0.331576585897399,0.331576585897399,0.331613165502715,0.331590445621893,0.331523202377012,0.331431056759218,0.331335687315873,0.331257837994265,0.331214178738211,0.331214178738211, +0.401920509468753,0.401920509468753,0.401935190336013,0.401878699747912,0.401769689295376,0.401632946231914,0.401495848488726,0.401385086813981,0.401323012564153,0.401323012564153, +0.492998422493516,0.492998422493516,0.492981725980187,0.492875958057006,0.492705873161148,0.492503817654975,0.49230487765437,0.49214411275144,0.492053161254518,0.492053161254518, +0.602198141531923,0.602198141531923,0.602140091798873,0.601965197154937,0.601709579454911,0.601416482714948,0.601129825371168,0.600894804757528,0.60075798811561,0.60075798811561, +0.726053486165733,0.726053486165733,0.725948051750007,0.725675397387839,0.725302198298457,0.724887080074329,0.724480172360934,0.724134666606814,0.723919338792952,0.723919338792952, +0.860295012609942,0.860295012609942,0.860160840643236,0.859734911036742,0.859201066103709,0.858631245013133,0.858068010897035,0.857557692840976,0.85718760191031,0.85718760191031, + +00:56:24, +0.259722865344096,0.259722865344096,0.259779657836361,0.259788043349531,0.259759233484333,0.259708021925774,0.259650631463329,0.259602294419837,0.259574871980736,0.259574871980736, +0.259722865344096,0.259722865344096,0.259779657836361,0.259788043349531,0.259759233484333,0.259708021925774,0.259650631463329,0.259602294419837,0.259574871980736,0.259574871980736, +0.28388085440599,0.28388085440599,0.283931108549912,0.283929425393014,0.283888177119484,0.283823730655411,0.28375409232384,0.283696277389594,0.283663663422722,0.283663663422722, +0.331680248497408,0.331680248497408,0.331716826097158,0.331694115581214,0.331626890033319,0.33153476641932,0.331439418844749,0.331361587012973,0.331317937465424,0.331317937465424, +0.402015761316588,0.402015761316588,0.402030441837763,0.401973965731559,0.401864980568729,0.401728268284374,0.40159120094801,0.401480463621806,0.401418402943783,0.401418402943783, +0.493081513087105,0.493081513087105,0.493064820001752,0.492959074680121,0.49278902619126,0.492587013910571,0.492388116370836,0.492227385652011,0.492136453414486,0.492136453414486, +0.602265103431875,0.602265103431875,0.602207063545898,0.602032203424609,0.601776637401265,0.601483600425079,0.601197001622965,0.600962028851659,0.600825239899414,0.600825239899414, +0.726100605622916,0.726100605622916,0.725995189521622,0.725722586623942,0.725349459369799,0.724934421735559,0.724527593124764,0.724182154226943,0.72396686771171,0.72396686771171, +0.86031938043103,0.86031938043103,0.860185232807251,0.859759380574913,0.859225633543177,0.858655917516378,0.858092787284571,0.857582562906519,0.857212539279996,0.857212539279996, + +00:56:25, +0.259834083321939,0.259834083321939,0.259890873426199,0.259899264184122,0.259870465171884,0.259819267400098,0.259761890722012,0.259713564699061,0.259686148362356,0.259686148362356, +0.259834083321939,0.259834083321939,0.259890873426199,0.259899264184122,0.259870465171884,0.259819267400098,0.259761890722012,0.259713564699061,0.259686148362356,0.259686148362356, +0.283989656871159,0.283989656871159,0.284039908595428,0.284038231933384,0.283996996701564,0.283932566694222,0.283862944787799,0.28380514298775,0.283772536299219,0.283772536299219, +0.331783896111149,0.331783896111149,0.331820471703683,0.331797770548986,0.331730562693062,0.331638461077253,0.331543135366138,0.331465321020028,0.331421681178687,0.331421681178687, +0.402110995930687,0.402110995930687,0.402125676106032,0.402069214477041,0.401960254595633,0.401823573080256,0.401686536140674,0.401575823154942,0.401513776044214,0.401513776044214, +0.493164585477799,0.493164585477799,0.493147895821279,0.493042173093985,0.492872160999039,0.492670191927703,0.492471336832724,0.492310640284925,0.492219727299407,0.492219727299407, +0.602332048335388,0.602332048335388,0.602274018295918,0.60209919268576,0.601843678319819,0.601550701084225,0.601264160800682,0.601029235852752,0.600892474579239,0.600892474579239, +0.726147711828466,0.726147711828466,0.726042314037659,0.725769762586904,0.725396707141666,0.724981750066875,0.724575000528479,0.724229628461506,0.724014383229391,0.724014383229391, +0.860343740973526,0.860343740973526,0.860209617684978,0.859783842801237,0.859250193637425,0.858680582637948,0.858117556254232,0.857607425521827,0.857237469176702,0.857237469176702, + +00:56:26, +0.259945290186457,0.259945290186457,0.260002077897552,0.260010473896648,0.259981685735119,0.259930501748867,0.259873138854573,0.259824823851967,0.259797413617616,0.259797413617616, +0.259945290186457,0.259945290186457,0.260002077897552,0.260010473896648,0.259981685735119,0.259930501748867,0.259873138854573,0.259824823851967,0.259797413617616,0.259797413617616, +0.284098446731298,0.284098446731298,0.284148696032127,0.284147025861467,0.284105803668253,0.284041390114973,0.283971784631549,0.283913995964173,0.283881396553186,0.283881396553186, +0.331887528739271,0.331887528739271,0.33192410232294,0.331901410525857,0.331834220356888,0.33174214073366,0.33164683688068,0.331569040016066,0.331525409878639,0.331525409878639, +0.402206213316941,0.402206213316941,0.402220893146709,0.402164445990246,0.402055511381976,0.401918860625452,0.401781854072613,0.401671165419286,0.401609131871344,0.401609131871344, +0.493247639675603,0.493247639675603,0.493230953448767,0.4931252533086,0.492955277594494,0.492753351716392,0.492554539050061,0.492393876660218,0.492302982919323,0.492302982919323, +0.602398976254112,0.602398976254112,0.602340956060581,0.602166164950042,0.601910702222243,0.601617784704069,0.601331302916024,0.601096425772528,0.600959692166813,0.600959692166813, +0.726194804792581,0.726194804792581,0.726089425308318,0.725816925286939,0.725443941624291,0.725029065078536,0.724622394582366,0.724277089320812,0.724061885356315,0.724061885356315, +0.860368094243363,0.860368094243363,0.860233995282356,0.859808297721676,0.859274746392442,0.858705240383866,0.85814231781207,0.857632280692981,0.85726239160653,0.85726239160653, + +00:56:27, +0.260056485930785,0.260056485930785,0.260113271243565,0.260121672480252,0.260092895167175,0.260041724965208,0.259984375854131,0.259936071871667,0.259908667739624,0.259908667739624, +0.260056485930785,0.260056485930785,0.260113271243565,0.260121672480252,0.260092895167175,0.260041724965208,0.259984375854131,0.259936071871667,0.259908667739624,0.259908667739624, +0.284207223982329,0.284207223982329,0.284257470855933,0.284255807173186,0.284214598015471,0.284150200913576,0.284080611850996,0.284022836314764,0.283990244180519,0.283990244180519, +0.331991146382428,0.331991146382428,0.332027717955583,0.33200503551248,0.331937863025445,0.331845805389185,0.331750523389016,0.331672744001728,0.331629123565916,0.331629123565916, +0.402301413481237,0.402301413481237,0.402316092965677,0.402259660277056,0.402150750933645,0.402014130925849,0.401877154749715,0.401766490420729,0.401704470431067,0.401704470431067, +0.493330675690511,0.493330675690511,0.493313992894206,0.493208315333958,0.493038375987623,0.492836493286645,0.492637723032865,0.492477094787916,0.492386220284264,0.492386220284264, +0.602465887199684,0.602465887199684,0.602407876851521,0.602233120229096,0.601977709120188,0.601684851296283,0.601398427980679,0.601163598622688,0.60102689267385,0.60102689267385, +0.726241884525444,0.726241884525444,0.726136523343782,0.725864074734243,0.725491162827895,0.725076366780789,0.724669775296696,0.724324536815154,0.72410937410279,0.72410937410279, +0.860392440246469,0.860392440246469,0.860258365605319,0.859832745342183,0.859299291814211,0.858729890760145,0.858167071964131,0.857657128426055,0.857287306575571,0.857287306575571, + +00:56:28, +0.260167670548073,0.260167670548073,0.260224453457391,0.260232859928088,0.260204093461202,0.260152937042264,0.260095601713818,0.260047308751287,0.260019910721502,0.260019910721502, +0.260167670548073,0.260167670548073,0.260224453457391,0.260232859928088,0.260204093461202,0.260152937042264,0.260095601713818,0.260047308751287,0.260019910721502,0.260019910721502, +0.284315988620182,0.284315988620182,0.284366233062781,0.284364575864476,0.284323379739145,0.284258999085954,0.284189426442056,0.284131664035431,0.284099079177126,0.284099079177126, +0.332094749041273,0.332094749041273,0.332131318602265,0.332108645509506,0.332041490699385,0.331949455044476,0.331854194891791,0.331776432977655,0.33173282224116,0.33173282224116, +0.402396596429457,0.402396596429457,0.402411275568816,0.402354857343351,0.402245973256517,0.402109383987328,0.401972438177865,0.401861798165157,0.401799791729269,0.401799791729269, +0.493413693532505,0.493413693532505,0.493397014167574,0.493291359180039,0.493121456188412,0.492919616648456,0.492720888791142,0.492560294678032,0.492469439404249,0.492469439404249, +0.602532781183725,0.602532781183725,0.602474780680355,0.602300058534547,0.602044699025295,0.601751900872525,0.601465536006322,0.601230754414925,0.601094076112048,0.601094076112048, +0.726288951037228,0.726288951037228,0.726183608154226,0.725911210939004,0.725538370762685,0.725123655183867,0.724717142681728,0.724371970954813,0.72415684947911,0.72415684947911, +0.860416778988763,0.860416778988763,0.860282728659792,0.859857185668704,0.859323829908705,0.85875453377279,0.858191818716451,0.857681968727113,0.857312214089911,0.857312214089911, + +00:56:29, +0.260278844031485,0.260278844031485,0.2603356245322,0.260344036233323,0.260315280610361,0.260264137973188,0.260206816426782,0.260158534483966,0.260131142556383,0.260131142556383, +0.260278844031485,0.260278844031485,0.2603356245322,0.260344036233323,0.260315280610361,0.260264137973188,0.260206816426782,0.260158534483966,0.260131142556383,0.260131142556383, +0.284424740640796,0.284424740640796,0.284474982648612,0.284473331931277,0.284432148835213,0.284367784628037,0.284298228400652,0.284240479122093,0.284207901538921,0.284207901538921, +0.332198336716463,0.332198336716463,0.332234904263643,0.332212240517592,0.332145103379359,0.332053089700184,0.331957851389652,0.331880106944493,0.331836505905013,0.331836505905013, +0.402491762167477,0.402491762167477,0.402506440961998,0.402450037195002,0.402341178356466,0.402204619815765,0.402067704362941,0.40195708865845,0.401895095771833,0.401895095771833, +0.493496693211556,0.493496693211556,0.493480017278837,0.49337438485681,0.493204518206836,0.493002721811811,0.492804036334885,0.492643476340569,0.492552640289285,0.492552640289285, +0.602599658217844,0.602599658217844,0.602541667558688,0.602366979878006,0.602111671949189,0.601818933444436,0.601532627004614,0.601297893160912,0.601161242493092,0.601161242493092, +0.726336004338092,0.726336004338092,0.726230679749808,0.725958333911395,0.725585565438855,0.72517093029799,0.724764496747707,0.724419391750056,0.724204311495557,0.724204311495557, +0.860441110476157,0.860441110476157,0.860307084451691,0.859881618707179,0.859348360681894,0.858779169427801,0.858216558075061,0.857706801602215,0.857337114155628,0.857337114155628, + +00:56:30, +0.260390006374195,0.260390006374195,0.260446784461172,0.26045520138914,0.260426456607829,0.260375327751148,0.260318019986179,0.260269749062855,0.260242363237416,0.260242363237416, +0.260390006374195,0.260390006374195,0.260446784461172,0.26045520138914,0.260426456607829,0.260375327751148,0.260318019986179,0.260269749062855,0.260242363237416,0.260242363237416, +0.28453348004012,0.28453348004012,0.28458371960938,0.28458207536954,0.284540905299622,0.284476557535764,0.284407017722717,0.284349281570677,0.284316711261828,0.284316711261828, +0.332301909408657,0.332301909408657,0.332338474940377,0.332315820537396,0.332248701066024,0.33215670935696,0.332061492883249,0.331983765902887,0.331940174558121,0.331940174558121, +0.402586910701167,0.402586910701167,0.402601589151092,0.402545199837878,0.402436366239362,0.40229983841703,0.402162953310816,0.402052361906485,0.401990382564636,0.401990382564636, +0.493579674737624,0.493579674737624,0.493563002237952,0.49345739237423,0.493287562052861,0.493085808786682,0.492887165674078,0.492726639785518,0.492635822949367,0.492635822949367, +0.602666518313634,0.602666518313634,0.602608537498111,0.602433884271072,0.60217862790348,0.601885949023645,0.601599700987202,0.601365014872313,0.601228391828652,0.601228391828652, +0.726383044438182,0.726383044438182,0.726277738140676,0.726005443661574,0.725632746866587,0.725218192133364,0.724811837504868,0.724466799211141,0.724251760162398,0.724251760162398, +0.860465434714553,0.860465434714553,0.860331432986926,0.859906044463537,0.859372884139735,0.858803797731168,0.858241290045983,0.857731627057408,0.857362006778791,0.857362006778791, + +00:56:31, +0.260501157569392,0.260501157569392,0.260557933237501,0.26056635538873,0.260537621446792,0.260486506369323,0.260429212385181,0.260380952481118,0.260353572757761,0.260353572757761, +0.260501157569392,0.260501157569392,0.260557933237501,0.26056635538873,0.260537621446792,0.260486506369323,0.260429212385181,0.260380952481118,0.260353572757761,0.260353572757761, +0.284642206814109,0.284642206814109,0.284692443941043,0.284690806175224,0.284649649128326,0.284585317805084,0.284515794404193,0.28445807137712,0.284425508341781,0.284425508341781, +0.332405467118515,0.332405467118515,0.332442030633129,0.332419385569577,0.332352283760036,0.332260314015459,0.332165119373232,0.332087409853486,0.332043828201132,0.332043828201132, +0.402682042036394,0.402682042036394,0.402696720141961,0.40264034527784,0.402531536911068,0.402395039796991,0.402258185027358,0.402147617915133,0.402085652113549,0.402085652113549, +0.493662638120657,0.493662638120657,0.493645969054862,0.493540381742245,0.493370587736437,0.493168877583033,0.492970276818693,0.49280978502286,0.492718987394481,0.492718987394481, +0.602733361482674,0.602733361482674,0.602675390510201,0.602500771725326,0.602245566899766,0.601952947621767,0.601666757965718,0.601432119560774,0.601295524130385,0.601295524130385, +0.726430071347631,0.726430071347631,0.726324783336963,0.72605254019969,0.72567991505605,0.725265440700186,0.72485916496343,0.724514193348307,0.724299195489891,0.724299195489891, +0.86048975170985,0.86048975170985,0.860355774271401,0.859930462943703,0.85939740028818,0.858828418688873,0.85826601463523,0.857756445098737,0.857386891965462,0.857386891965462, + +00:56:32, +0.260612297610276,0.260612297610276,0.260669070854395,0.2606774982253,0.260648775120452,0.260597673820905,0.260540393616972,0.260492144731931,0.26046477111059,0.26046477111059, +0.260612297610276,0.260612297610276,0.260669070854395,0.2606774982253,0.260648775120452,0.260597673820905,0.260540393616972,0.260492144731931,0.26046477111059,0.26046477111059, +0.28475092095873,0.28475092095873,0.284801155639572,0.284799524344299,0.284758380317289,0.284694065431955,0.284624558441031,0.284566848537367,0.284534292774722,0.284534292774722, +0.332509009846702,0.332509009846702,0.332545571342561,0.332522935614799,0.332455851462057,0.332363903676337,0.332268730860255,0.332191038796943,0.332147466834696,0.332147466834696, +0.402777156179019,0.402777156179019,0.402791833940463,0.402735473520747,0.402626690377442,0.402490223961506,0.402353399518431,0.402242856690257,0.40218090442444,0.40218090442444, +0.493745583370592,0.493745583370592,0.4937289177395,0.493623352970789,0.493453595267506,0.493251928210812,0.493053369778689,0.492892912062562,0.4928021336346,0.4928021336346, +0.60280018773653,0.60280018773653,0.602742226606519,0.602567642252338,0.602312488949629,0.602019929250401,0.601733797951779,0.601499207237928,0.601362639409931,0.601362639409931, +0.72647708507656,0.72647708507656,0.726371815348791,0.726099623535878,0.725727070017401,0.725312676008635,0.724906479133601,0.724561574171785,0.724346617488277,0.724346617488277, +0.860514061467934,0.860514061467934,0.860380108311008,0.859954874153593,0.859421909133173,0.858853032306893,0.85829073184881,0.857781255732235,0.857411769721695,0.857411769721695, + +00:56:33, +0.260723426490061,0.260723426490061,0.260780197305071,0.260788629892068,0.260759917622022,0.260708830099102,0.26065156367475,0.260603325808486,0.260575958289089,0.260575958289089, +0.260723426490061,0.260723426490061,0.260780197305071,0.260788629892068,0.260759917622022,0.260708830099102,0.26065156367475,0.260603325808486,0.260575958289089,0.260575958289089, +0.284859622469958,0.284859622469958,0.284909854700946,0.284908229872742,0.284867098862484,0.284802800412344,0.284733309829189,0.284675613047372,0.284643064556601,0.284643064556601, +0.332612537593883,0.332612537593883,0.33264909706934,0.332626470673726,0.332559404172748,0.332467478340255,0.332372327344975,0.332294652733911,0.332251090459466,0.332251090459466, +0.402872253134896,0.402872253134896,0.402886930552451,0.40283058457245,0.402721826644338,0.402585390916432,0.402448596789893,0.402338078237719,0.402276139503169,0.402276139503169, +0.493828510497355,0.493828510497355,0.493811848301787,0.493706306069785,0.493536584655999,0.49333496067996,0.493136444564015,0.492976020914582,0.492885261679686,0.492885261679686, +0.602866997086752,0.602866997086752,0.602809045798614,0.602634495863662,0.602379394064636,0.602086893921134,0.601800820956989,0.601566277915395,0.601429737678919,0.601429737678919, +0.726524085635076,0.726524085635076,0.726418834186268,0.726146693680258,0.725774211760781,0.725359898068881,0.724953780025575,0.724608941691792,0.724394026167786,0.724394026167786, +0.860538363994689,0.860538363994689,0.860404435111637,0.859979278099113,0.859446410680651,0.858877638591194,0.858315441692721,0.857806058963929,0.857436640053536,0.857436640053536, + +00:56:34, +0.260834544201973,0.260834544201973,0.260891312582763,0.260899750382266,0.260871048944727,0.260819975197129,0.260762722551722,0.260714495703984,0.260687134286457,0.260687134286457, +0.260834544201973,0.260834544201973,0.260891312582763,0.260899750382266,0.260871048944727,0.260819975197129,0.260762722551722,0.260714495703984,0.260687134286457,0.260687134286457, +0.284968311343775,0.284968311343775,0.28501854112115,0.285016922756537,0.284975804759893,0.284911522742224,0.284842048564637,0.284784364903097,0.28475182368338,0.28475182368338, +0.332716050360725,0.332716050360725,0.332752607814135,0.332729990747025,0.332662941892774,0.332571038007873,0.33247590882805,0.332398251665045,0.332354699076095,0.332354699076095, +0.402967332909876,0.402967332909876,0.402982009983771,0.402925678438796,0.402816945717603,0.402680540667619,0.402543776847596,0.402433282563373,0.402371357355593,0.402371357355593, +0.493911419510861,0.493911419510861,0.493894760751635,0.493789241049147,0.493619555911834,0.493417975000404,0.493219501184611,0.493059111588866,0.492968371539689,0.492968371539689, +0.602933789544879,0.602933789544879,0.60287584809802,0.602701332570839,0.602446282256344,0.602153841645537,0.601867826992939,0.601633331604779,0.601496818948963,0.601496818948963, +0.726571073033275,0.726571073033275,0.72646583985949,0.72619375064294,0.725821340296322,0.725407106891081,0.725001067649534,0.72465629591853,0.724441421538636,0.724441421538636, +0.860562659295987,0.860562659295987,0.860428754679165,0.860003674786166,0.859470904936542,0.858902237547737,0.858340144172953,0.857830854799838,0.857461502967024,0.857461502967024, + +00:56:35, +0.260945650739252,0.260945650739252,0.261002416680714,0.261010859689138,0.260982169081808,0.260931109108219,0.260873870241113,0.26082565441164,0.260798299095906,0.260798299095906, +0.260945650739252,0.260945650739252,0.261002416680714,0.261010859689138,0.260982169081808,0.260931109108219,0.260873870241113,0.26082565441164,0.260798299095906,0.260798299095906, +0.285076987576175,0.285076987576175,0.285127214896181,0.285125602991682,0.285084498005506,0.285020232417581,0.284950774643353,0.284893104100515,0.284860570151026,0.284860570151026, +0.3328195481479,0.3328195481479,0.332856103577615,0.332833495835365,0.332766464622801,0.332674582679856,0.33257947531014,0.332501835591004,0.332458292685241,0.332458292685241, +0.403062395509805,0.403062395509805,0.403077072240267,0.403020755125628,0.402912047603081,0.402775673220912,0.402638939697388,0.40252846967307,0.402466557987563,0.402466557987563, +0.493994310421012,0.493994310421012,0.493977655098941,0.493872157918775,0.493702509044919,0.493500971182062,0.493302539650401,0.493142184095349,0.49305146322455,0.49305146322455, +0.603000565122434,0.603000565122434,0.602942633516255,0.602768152385396,0.602513153536291,0.602220772435167,0.601934816071204,0.60170036831767,0.601563883231661,0.601563883231661, +0.726618047281238,0.726618047281238,0.72651283237854,0.72624079443402,0.725868455634141,0.725454302485375,0.725048342015647,0.72470363686219,0.724488803611029,0.724488803611029, +0.860586947377695,0.860586947377695,0.860453067019466,0.860028064220644,0.859495391906767,0.858926829182473,0.858364839295492,0.857855643245974,0.857486358468189,0.857486358468189, + +00:56:36, +0.261056746095148,0.261056746095148,0.261113509592182,0.261121957805941,0.261093278026514,0.261042231825614,0.260985006736156,0.260936801924682,0.260909452710658,0.260909452710658, +0.261056746095148,0.261056746095148,0.261113509592182,0.261121957805941,0.261093278026514,0.261042231825614,0.260985006736156,0.260936801924682,0.260909452710658,0.260909452710658, +0.285185651163159,0.285185651163159,0.285235876022045,0.285234270574179,0.285193178595323,0.285128929434408,0.285059488061321,0.285001830635607,0.284969303955518,0.284969303955518, +0.332923030956078,0.332923030956078,0.332959584360454,0.332936985939418,0.332869972363499,0.332778112356868,0.332683026791908,0.332605404512449,0.332561871287564,0.332561871287564, +0.403157440940521,0.403157440940521,0.403172117327776,0.403115814638781,0.403007132306609,0.40287078858215,0.402734085345111,0.402623639572654,0.402561741404926,0.402561741404926, +0.494077183237701,0.494077183237701,0.494060531353593,0.493955056688558,0.493785444065151,0.493583949234838,0.493385559971302,0.493225238443954,0.493134536744196,0.493134536744196, +0.603067323830924,0.603067323830924,0.603009402064828,0.602834955318845,0.602580007916004,0.602287686301569,0.602001788203346,0.601767388065645,0.601630930538599,0.601630930538599, +0.726665008389036,0.726665008389036,0.726559811753488,0.726287825063582,0.725915557784343,0.725501484861897,0.725095603134069,0.72475096453295,0.724536172395158,0.724536172395158, +0.860611228245671,0.860611228245671,0.860477372138403,0.860052446408433,0.859519871597241,0.858951413501348,0.858389527066312,0.85788042430834,0.857511206563055,0.857511206563055, + +00:56:37, +0.261167830262926,0.261167830262926,0.261224591310436,0.261233044725943,0.261204375772111,0.261153343342571,0.261096132030099,0.261047938236352,0.261020595123952,0.261020595123952, +0.261167830262926,0.261167830262926,0.261224591310436,0.261233044725943,0.261204375772111,0.261153343342571,0.261096132030099,0.261047938236352,0.261020595123952,0.261020595123952, +0.285294302100736,0.285294302100736,0.285344524494753,0.285342925500041,0.285301846525351,0.285237613788706,0.285168188814538,0.285110544504362,0.285078025092841,0.285078025092841, +0.333026498785936,0.333026498785936,0.333063050163327,0.333040461059858,0.33297346511554,0.332881627039578,0.332786563274021,0.332708958430043,0.332665434883724,0.332665434883724, +0.40325246920786,0.40325246920786,0.40326714525213,0.403210856984088,0.40310219983402,0.402965886757169,0.402829213796603,0.402718792267965,0.402656907613523,0.402656907613523, +0.494160037970808,0.494160037970808,0.494143389525469,0.494037937368375,0.493868360982413,0.493666909168627,0.493468562157218,0.493308274644594,0.493217592108545,0.493217592108545, +0.603134065681845,0.603134065681845,0.603076153755228,0.602901741382684,0.602646845406996,0.602354583256273,0.602068743400912,0.601834390860267,0.601697960881348,0.601697960881348, +0.726711956366725,0.726711956366725,0.726606777994392,0.726334842541696,0.72596264675702,0.725548654030761,0.725142851014944,0.724798278940974,0.7245835279012,0.7245835279012, +0.860635501905767,0.860635501905767,0.860501670041833,0.86007682135541,0.859544344013869,0.858975990510299,0.858414207491381,0.857905197992931,0.857536047257636,0.857536047257636, + +00:56:38, +0.261278903235864,0.261278903235864,0.26133566182876,0.261344120442426,0.261315462311874,0.261264443652358,0.261207246116202,0.261159063339901,0.261131726329035,0.261131726329035, +0.261278903235864,0.261278903235864,0.26133566182876,0.261344120442426,0.261315462311874,0.261264443652358,0.261207246116202,0.261159063339901,0.261131726329035,0.261131726329035, +0.285402940384925,0.285402940384925,0.28545316031033,0.285451567765289,0.285410501791609,0.285346285476485,0.285276876899008,0.285219245702778,0.285186733558992,0.285186733558992, +0.33312995163815,0.33312995163815,0.333166500986911,0.333143921197361,0.333076942879595,0.332985126728658,0.332890084757144,0.332812497344451,0.332768983474386,0.332768983474386, +0.403347480317652,0.403347480317652,0.403362156019155,0.403305882167374,0.403197250191142,0.403060967751797,0.402924325057696,0.402813927764837,0.402752056619188,0.402752056619188, +0.494242874630204,0.494242874630204,0.494226229624433,0.494120799968094,0.493951259806581,0.493749850993313,0.493551546218041,0.493391292707169,0.493300629327503,0.493300629327503, +0.603200790686678,0.603200790686678,0.603142888598934,0.602968510588399,0.602713666020764,0.602421463310793,0.602135681675434,0.601901376713084,0.601764974271465,0.601764974271465, +0.72675889122435,0.72675889122435,0.726653731111297,0.726381846878421,0.726009722562252,0.725595810002075,0.725190085668401,0.724845580096417,0.724630870139322,0.724630870139322, +0.860659768363826,0.860659768363826,0.860525960735607,0.860101189067447,0.85956880916255,0.859000560215255,0.858438880576661,0.857929964305737,0.857560880557942,0.857560880557942, + +00:56:39, +0.261389965007249,0.261389965007249,0.261446721140448,0.261455184948686,0.261426537639094,0.261375532748257,0.261318348987739,0.261270177228597,0.261242846319171,0.261242846319171, +0.261389965007249,0.261389965007249,0.261446721140448,0.261455184948686,0.261426537639094,0.261375532748257,0.261318348987739,0.261270177228597,0.261242846319171,0.261242846319171, +0.285511566011755,0.285511566011755,0.285561783464806,0.285560197365954,0.285519144390121,0.285454944493766,0.285385552310743,0.285327934226864,0.285295429349975,0.285295429349975, +0.333233389513399,0.333233389513399,0.333269936831885,0.333247366352604,0.333180405656342,0.333088611424779,0.332993591241949,0.332916021256339,0.332872517060217,0.332872517060217, +0.40344247427572,0.40344247427572,0.403457149634673,0.40340089019446,0.403292283383795,0.403156031571861,0.403019419134216,0.4029090460691,0.402847188427753,0.402847188427753, +0.494325693225746,0.494325693225746,0.49430905166034,0.494203644497571,0.494034140547516,0.493832774718767,0.493634512163653,0.493474292641571,0.493383648410964,0.493383648410964, +0.603267498856889,0.603267498856889,0.60320960660741,0.603035262947459,0.602780469768792,0.60248832647663,0.602202603038434,0.601968345635629,0.601831970720494,0.601831970720494, +0.726805812971941,0.726805812971941,0.726700671114234,0.726428838083801,0.726056785210106,0.725642952785929,0.72523730710456,0.724892868009415,0.724678199119675,0.724678199119675, +0.860684027625685,0.860684027625685,0.860550244225565,0.860125549550405,0.859593267049175,0.859025122622139,0.858463546328103,0.857954723252737,0.857585706469971,0.857585706469971, + +00:56:40, +0.261501015570386,0.261501015570386,0.261557769238808,0.261566238238029,0.261537601747072,0.261486610623562,0.261429440637995,0.261381279895717,0.261353955087633,0.261353955087633, +0.261501015570386,0.261501015570386,0.261557769238808,0.261566238238029,0.261537601747072,0.261486610623562,0.261429440637995,0.261381279895717,0.261353955087633,0.261353955087633, +0.285620178977261,0.285620178977261,0.285670393954221,0.285668814298075,0.285627774316922,0.285563590836577,0.285494215045765,0.285436610072636,0.285404112461804,0.285404112461804, +0.333336812412364,0.333336812412364,0.333373357698931,0.333350796526269,0.333283853446459,0.333192081128617,0.333097082729107,0.333019530166379,0.332976035641884,0.332976035641884, +0.403537451087885,0.403537451087885,0.403552126104501,0.403495881071164,0.403387299417799,0.403251078223178,0.403114496031987,0.403004147186577,0.402942303045044,0.402942303045044, +0.494408493767282,0.494408493767282,0.494391855643032,0.494286470966651,0.494117003215071,0.493915680354851,0.493717460003925,0.493557274457677,0.493466649368811,0.493466649368811, +0.603334190203933,0.603334190203933,0.603276307792106,0.60310199847132,0.60284725666255,0.602555172765274,0.602269507501415,0.602035297639424,0.601898950239962,0.601898950239962, +0.726852721619518,0.726852721619518,0.726747598013224,0.726475816167869,0.726103834710634,0.725690082392403,0.725284515333524,0.724940142690097,0.7247255148524,0.7247255148524, +0.860708279697172,0.860708279697172,0.860574520517543,0.86014990281014,0.859617717679626,0.859049677736863,0.858488204751654,0.857979474839906,0.857610524999715,0.857610524999715, + +00:56:41, +0.261612054918587,0.261612054918587,0.26166880611716,0.261677280303776,0.261648654629122,0.261597677271579,0.261540521060268,0.261492371334553,0.26146505262771,0.26146505262771, +0.261612054918587,0.261612054918587,0.26166880611716,0.261677280303776,0.261648654629122,0.261597677271579,0.261540521060268,0.261492371334553,0.26146505262771,0.26146505262771, +0.285728779277488,0.285728779277488,0.285778991774623,0.2857774185577,0.285736391568056,0.285672224500954,0.285602865100104,0.285545273236117,0.285512782890499,0.285512782890499, +0.33344022033573,0.33344022033573,0.333476763588734,0.333454211719038,0.333387286250626,0.333295535840849,0.333200559219292,0.333123024075242,0.333079539220058,0.333079539220058, +0.40363241075996,0.40363241075996,0.40364708543445,0.403590854803295,0.403482298298964,0.403346107711564,0.403209555756825,0.403099231123088,0.403037400476881,0.403037400476881, +0.494491276264648,0.494491276264648,0.494474641582343,0.494369279385168,0.494199847819087,0.493998567911413,0.493800389748716,0.493640238165354,0.493549632210917,0.493549632210917, +0.603400864739246,0.603400864739246,0.603342992164456,0.603168717171426,0.602914026713494,0.602622002188196,0.602336395075869,0.602102232735975,0.601965912841384,0.601965912841384, +0.726899617177087,0.726899617177087,0.726794511818273,0.726522781140646,0.726150871073879,0.725737198831563,0.725331710365387,0.724987404148575,0.724772817347624,0.724772817347624, +0.860732524584109,0.860732524584109,0.860598789617368,0.860174248852501,0.85964216105978,0.859074225565336,0.85851285585325,0.858004219073207,0.857635336153161,0.857635336153161, + +00:56:42, +0.26172308304518,0.26172308304518,0.261779831768837,0.261788311139257,0.261759696278572,0.261708732685628,0.261651590247869,0.26160345153841,0.261576138932701,0.261576138932701, +0.26172308304518,0.26172308304518,0.261779831768837,0.261788311139257,0.261759696278572,0.261708732685628,0.261651590247869,0.26160345153841,0.261576138932701,0.261576138932701, +0.28583736690849,0.28583736690849,0.285887576922071,0.285886010140884,0.285844996139575,0.285780845482944,0.285711502469799,0.285653923713343,0.285621440632092,0.285621440632092, +0.333543613284182,0.333543613284182,0.333580154501979,0.333557611931597,0.333490704069525,0.333398975562154,0.333304020713182,0.333226502983602,0.333183027795413,0.333183027795413, +0.403727353297754,0.403727353297754,0.403742027630328,0.40368581139666,0.403577280033099,0.403441120042827,0.403304598314541,0.403194297884448,0.40313248072908,0.40313248072908, +0.494574040727669,0.494574040727669,0.494557409488092,0.494452069762944,0.494282674369391,0.494081437398292,0.493883301407875,0.493723183774461,0.493632596947143,0.493632596947143, +0.603467522474256,0.603467522474256,0.603409659735884,0.603235419059205,0.602980779933068,0.602688814756856,0.602403265773273,0.602169150936772,0.602032858536263,0.602032858536263, +0.726946499654641,0.726946499654641,0.726841412539376,0.726569733012139,0.726197894309869,0.725784302113464,0.725378892210226,0.725034652394952,0.72482010661546,0.72482010661546, +0.860756762292309,0.860756762292309,0.860623051530858,0.860198587683328,0.859666597195506,0.859098766113456,0.858537499638822,0.858028955958599,0.857660139936284,0.857660139936284, + +00:56:43, +0.261834099943505,0.261834099943505,0.261890846187184,0.261899330737819,0.261870726688761,0.26181977685904,0.261762648194121,0.261714520500602,0.261687213995919,0.261687213995919, +0.261834099943505,0.261834099943505,0.261890846187184,0.261899330737819,0.261870726688761,0.26181977685904,0.261762648194121,0.261714520500602,0.261687213995919,0.261687213995919, +0.28594594186633,0.28594594186633,0.285996149392631,0.285994589043694,0.28595358802754,0.285889453778602,0.2858201271509,0.285762561500356,0.285730085682623,0.285730085682623, +0.333646991258407,0.333646991258407,0.333683530439355,0.333660997164632,0.333594106903841,0.333502400293215,0.333407467211454,0.333329966892136,0.333286501368623,0.333286501368623, +0.403822278707071,0.403822278707071,0.403836952697934,0.403780750857059,0.403672244626004,0.403536115222771,0.403399623710942,0.403289347476464,0.40322754380745,0.40322754380745, +0.494656787166159,0.494656787166159,0.494640159370088,0.494534842109791,0.494365482875803,0.494164288825315,0.493966194991238,0.493806111294841,0.493715543587339,0.493715543587339, +0.603534163420371,0.603534163420371,0.603476310517798,0.603302104146071,0.603047516332697,0.6027556104827,0.602470119605091,0.602236052253296,0.602099787336084,0.602099787336084, +0.726993369062162,0.726993369062162,0.726888300186515,0.726616671792343,0.726244904428621,0.725831392248147,0.725426060878109,0.725081887439315,0.724867382666012,0.724867382666012, +0.860780992827578,0.860780992827578,0.860647306263827,0.860222919308453,0.859691026092663,0.859123299387116,0.858562136114293,0.858053685502032,0.857684936355053,0.857684936355053, + +00:56:44, +0.261945105606914,0.261945105606914,0.262001849365559,0.262010339092818,0.261981745853042,0.261930809785159,0.26187369489236,0.26182557821446,0.261798277810688,0.261798277810688, +0.261945105606914,0.261945105606914,0.262001849365559,0.262010339092818,0.261981745853042,0.261930809785159,0.26187369489236,0.26182557821446,0.261798277810688,0.261798277810688, +0.28605450414708,0.28605450414708,0.286104709182377,0.286103155262203,0.28606216722802,0.28599804938399,0.285928739139462,0.285871186593207,0.28583871803814,0.28583871803814, +0.333750354259097,0.333750354259097,0.333786891401553,0.333764367418832,0.333697494754262,0.333605810034716,0.333510898714791,0.333433415801523,0.333389959940367,0.333389959940367, +0.40391718699371,0.40391718699371,0.403931860643065,0.403875673190287,0.403767192083476,0.403631093257196,0.40349463195183,0.403384379904941,0.403322589717797,0.403322589717797, +0.494739515589919,0.494739515589919,0.494722891238132,0.494617596435509,0.49444827334813,0.4942471222023,0.494049070508632,0.493889020736329,0.493798472141345,0.493798472141345, +0.603600787588991,0.603600787588991,0.60354294452159,0.603368772443426,0.603114235923798,0.60282238937716,0.602536956582772,0.602302936697009,0.60216669925232,0.60216669925232, +0.727040225409617,0.727040225409617,0.726935174769658,0.72666359749124,0.726291901440137,0.725878469245641,0.725473216379091,0.72512910929174,0.724914645509367,0.724914645509367, +0.860805216195716,0.860805216195716,0.860671553822079,0.860247243733703,0.859715447757106,0.859147825392198,0.858586765285577,0.858078407709448,0.857709725415431,0.857709725415431, + +00:56:45, +0.262056100028773,0.262056100028773,0.262112841297333,0.262121336197624,0.262092753764779,0.262041831457343,0.261984730335935,0.261936624673325,0.261909330370348,0.261909330370348, +0.262056100028773,0.262056100028773,0.262112841297333,0.262121336197624,0.262092753764779,0.262041831457343,0.261984730335935,0.261936624673325,0.261909330370348,0.261909330370348, +0.286163053746818,0.286163053746818,0.286213256287392,0.286211708792494,0.286170733737095,0.28610663229518,0.28603733843155,0.285979798987957,0.2859473376947,0.2859473376947, +0.333853702286944,0.333853702286944,0.333890237389265,0.333867722694891,0.333800867621476,0.333709204787342,0.333614315223876,0.333536849712444,0.333493403511325,0.333493403511325, +0.404012078163465,0.404012078163465,0.404026751471511,0.403970578402137,0.403862122411308,0.403726054151895,0.403589623043001,0.403479395175677,0.40341761846592,0.40341761846592, +0.494822226008743,0.494822226008743,0.49480560510201,0.494700332749889,0.494531045796167,0.494329937539051,0.494131927969871,0.493971912108748,0.493881382618987,0.493881382618987, +0.603667394991497,0.603667394991497,0.603609561758642,0.603435423962655,0.60318093871777,0.602889151451653,0.602603776717751,0.602369804279362,0.60223359429643,0.60223359429643, +0.727087068706963,0.727087068706963,0.726982036298762,0.726710510118799,0.726338885354409,0.725925533115961,0.725520358723212,0.725176317962291,0.724961895155603,0.724961895155603, +0.860829432402514,0.860829432402514,0.86069579421141,0.860271560964894,0.859739862194679,0.85917234413458,0.858611387158582,0.858103122586782,0.857734507123372,0.857734507123372, + +00:56:46, +0.262167083202457,0.262167083202457,0.262223821975887,0.26223232204562,0.262203750417348,0.262152841868961,0.262095754518206,0.26204765987055,0.262020371668247,0.262020371668247, +0.262167083202457,0.262167083202457,0.262223821975887,0.26223232204562,0.262203750417348,0.262152841868961,0.262095754518206,0.26204765987055,0.262020371668247,0.262020371668247, +0.286271590661635,0.286271590661635,0.286321790703771,0.286320249630659,0.28627928755085,0.286215202508255,0.28614592502324,0.286088398680675,0.286055944648369,0.286055944648369, +0.333957035342643,0.333957035342643,0.333993568403187,0.333971062993501,0.333904225506176,0.333812584551783,0.333717716739393,0.333640268625583,0.333596832082177,0.333596832082177, +0.404106952222125,0.404106952222125,0.40412162518906,0.404065466498391,0.403957035615285,0.403820997912657,0.403684596990246,0.403574393294467,0.403512630057616,0.403512630057616, +0.494904918432411,0.494904918432411,0.494888300971498,0.494783051062708,0.494613800229699,0.494412734845362,0.494214767384759,0.49405478542191,0.493964275030082,0.493964275030082, +0.603733985639259,0.603733985639259,0.60367616224032,0.603502058715132,0.603247624726,0.602955896717582,0.602670580021451,0.602436655011792,0.60230047247986,0.60230047247986, +0.727133898964144,0.727133898964144,0.727028884783771,0.726757409684978,0.726385856181415,0.725972583869111,0.725567487920501,0.725223513461017,0.725009131614781,0.725009131614781, +0.860853641453757,0.860853641453757,0.860720027437612,0.860295871007838,0.859764269411223,0.859196855620131,0.858636001739206,0.858127830139961,0.857759281484822,0.857759281484822, + +00:56:47, +0.262278055121356,0.262278055121356,0.262334791394618,0.262343296630199,0.262314735804141,0.262263841013394,0.262206767432547,0.262158683799503,0.262131401697749,0.262131401697749, +0.262278055121356,0.262278055121356,0.262334791394618,0.262343296630199,0.262314735804141,0.262263841013394,0.262206767432547,0.262158683799503,0.262131401697749,0.262131401697749, +0.286380114887627,0.286380114887627,0.286430312427612,0.286428777772797,0.286387828665382,0.286323760019302,0.286254498910615,0.286196985667437,0.286164538895223,0.286164538895223, +0.33406035342689,0.33406035342689,0.334096884444016,0.334074388315359,0.334007568409055,0.33391594932873,0.333821103262033,0.333743672541624,0.33370024565361,0.33370024565361, +0.404201809175471,0.404201809175471,0.404216481801492,0.404160337484832,0.404051931701189,0.403915924545266,0.403779553799353,0.403669374267099,0.403607624498675,0.403607624498675, +0.494987592870691,0.494987592870691,0.494970978856362,0.494865751383733,0.494696536658501,0.494495514131016,0.494297588763089,0.494137640685616,0.494047149384437,0.494047149384437, +0.603800559543633,0.603800559543633,0.603742745977976,0.603568676712215,0.60331429395986,0.603022625186338,0.602737366505277,0.60250348890572,0.60236733381404,0.60236733381404, +0.727180716191089,0.727180716191089,0.727075720234618,0.726804296199722,0.726432813931121,0.726019621515082,0.725614603980975,0.725270695797956,0.725056354896955,0.725056354896955, +0.86087784335522,0.86087784335522,0.860744253506465,0.860320173868338,0.859788669412566,0.859221359854712,0.858660609033344,0.858152530374905,0.85778404850572,0.85778404850572, + +00:56:48, +0.262389015778874,0.262389015778874,0.262445749546933,0.26245425994477,0.262425709918558,0.262374828884037,0.262317769072345,0.262269696453563,0.262242420452229,0.262242420452229, +0.262389015778874,0.262389015778874,0.262445749546933,0.26245425994477,0.262425709918558,0.262374828884037,0.262317769072345,0.262269696453563,0.262242420452229,0.262242420452229, +0.286488626420901,0.286488626420901,0.286538821455027,0.286537293215018,0.286496357076795,0.286432304824421,0.286363060089765,0.286305559944331,0.286273120431344,0.286273120431344, +0.334163656540385,0.334163656540385,0.334200185512451,0.334177698661163,0.334110896330808,0.334019299118875,0.333924474792483,0.333847061461257,0.33380364422631,0.33380364422631, +0.404296649029284,0.404296649029284,0.404311321314582,0.404255191367234,0.404146810674797,0.4040108340555,0.403874493476101,0.403764338099356,0.40370260179488,0.40370260179488, +0.495070249333342,0.495070249333342,0.495053638766356,0.494948433722722,0.494779255092335,0.494578275405785,0.494380392114643,0.494220477909655,0.494130005691845,0.494130005691845, +0.60386711671596,0.60386711671596,0.603809312982948,0.603635277965251,0.603380946430709,0.603089336869297,0.602804136180624,0.602570305972556,0.602434178310387,0.602434178310387, +0.727227520397717,0.727227520397717,0.72712254266122,0.726851169672962,0.726479758613479,0.726066646063852,0.725661706914637,0.725317864983134,0.72510356501216,0.72510356501216, +0.860902038112673,0.860902038112673,0.860768472423746,0.86034446955219,0.859813062204533,0.859245856844177,0.858685209046878,0.858177223297526,0.857808808191997,0.857808808191997, + +00:56:49, +0.262499965168423,0.262499965168423,0.262556696426252,0.262565211982752,0.262536672754015,0.262485805474297,0.262428759430997,0.262380697826122,0.262353427925075,0.262353427925075, +0.262499965168423,0.262499965168423,0.262556696426252,0.262565211982752,0.262536672754015,0.262485805474297,0.262428759430997,0.262380697826122,0.262353427925075,0.262353427925075, +0.286597125257572,0.286597125257572,0.286647317782133,0.286645795953438,0.286604872781202,0.286540836919718,0.286471608556792,0.286414121507452,0.286381689252824,0.286381689252824, +0.334266944683828,0.334266944683828,0.334303471609195,0.334280994031614,0.334214209272135,0.334122633922913,0.334027831331438,0.333950435385171,0.333907027800965,0.333907027800965, +0.404391471789337,0.404391471789337,0.4044061437341,0.404350028151368,0.40424167254188,0.404105726449133,0.403969416026268,0.403859284797017,0.403797561952012,0.403797561952012, +0.495152887830112,0.495152887830112,0.495136280711223,0.495031098089418,0.494861955540953,0.494661018679431,0.494463177449192,0.494303297103807,0.49421284396209,0.49421284396209, +0.603933657167568,0.603933657167568,0.603875863266563,0.603701862485571,0.603447582149892,0.60315603177782,0.602870889058873,0.602637106223693,0.602501005980304,0.602501005980304, +0.727274311593934,0.727274311593934,0.727169352073484,0.726898030114618,0.726526690238431,0.726113657525387,0.725708796731477,0.725365021026562,0.725150761970425,0.725150761970425, +0.860926225731878,0.860926225731878,0.860792684195222,0.860368758065182,0.85983744779294,0.859270346594373,0.858709801785687,0.858201908913729,0.857833560549577,0.857833560549577, + +00:56:50, +0.262610903283432,0.262610903283432,0.262667632026008,0.262676152737577,0.262647624303938,0.262596770777593,0.262539738501914,0.262491687910583,0.262464424109687,0.262464424109687, +0.262610903283432,0.262610903283432,0.262667632026008,0.262676152737577,0.262647624303938,0.262596770777593,0.262539738501914,0.262491687910583,0.262464424109687,0.262464424109687, +0.286705611393762,0.286705611393762,0.286755801405058,0.286754285984184,0.286713375774726,0.286649356301309,0.286580144307805,0.286522670352904,0.286490245355766,0.286490245355766, +0.334370217857925,0.334370217857925,0.33440674273495,0.334384274427414,0.334317507233736,0.334225953741543,0.334131172879591,0.334053794314058,0.334010396378267,0.334010396378267, +0.404486277461396,0.404486277461396,0.404500949065814,0.404444847842997,0.404336517308204,0.404200601731934,0.404064321455625,0.403954214365855,0.403892504975845,0.403892504975845, +0.495235508370738,0.495235508370738,0.495218904700695,0.495113744493557,0.494944638014096,0.494743743961702,0.494545944776494,0.494386098277839,0.494295664204945,0.494295664204945, +0.604000180909771,0.604000180909771,0.60394239684013,0.603768430284491,0.60351420112874,0.603222709923256,0.602937625151388,0.602703889670513,0.602567816835182,0.602567816835182, +0.727321089789633,0.727321089789633,0.727216148481304,0.726944877534597,0.726573608815904,0.72616065590964,0.725755873441476,0.725412163938242,0.72519794578176,0.72519794578176, +0.86095040621859,0.86095040621859,0.860816888826653,0.860393039413094,0.859861826183595,0.859294829111139,0.85873438725564,0.858226587229411,0.857858305584375,0.857858305584375, + +00:56:51, +0.26272183011734,0.26272183011734,0.262778556339645,0.262787082202689,0.262758564561767,0.262707724787356,0.26265070627852,0.262602666700363,0.262575408999477,0.262575408999477, +0.26272183011734,0.26272183011734,0.262778556339645,0.262787082202689,0.262758564561767,0.262707724787356,0.26265070627852,0.262602666700363,0.262575408999477,0.262575408999477, +0.286814084825603,0.286814084825603,0.286864272319937,0.286862763303391,0.286821866053497,0.286757862965319,0.286688667338921,0.286631206476799,0.286598788736277,0.286598788736277, +0.334473476063379,0.334473476063379,0.334509998890425,0.334487539849268,0.334420790216313,0.334329258575464,0.334234499437639,0.334157138248614,0.334113749958909,0.334113749958909, +0.404581066051227,0.404581066051227,0.404595737315482,0.404539650447884,0.40443134497953,0.404295459909666,0.404159209769937,0.404049126811639,0.40398743087215,0.40398743087215, +0.495318110964943,0.495318110964943,0.495301510744494,0.495196372944862,0.495027302521493,0.494826451262339,0.494628694106298,0.494468881441509,0.494378466430171,0.494378466430171, +0.60406668795387,0.60406668795387,0.604008913714946,0.603834981373317,0.60358080337857,0.60328937131694,0.603004344469522,0.602770656324383,0.602634610886395,0.602634610886395, +0.727367854994695,0.727367854994695,0.727262931894563,0.726991711942793,0.726620514355814,0.726207641226552,0.725802937054598,0.725459293728159,0.725245116456167,0.725245116456167, +0.860974579578556,0.860974579578556,0.860841086323792,0.860417313601701,0.859886197382299,0.859319304400307,0.858758965462599,0.85825125825046,0.857883043302302,0.857883043302302, + +00:56:52, +0.262832745663597,0.262832745663597,0.262889469360621,0.262898000371545,0.262869493520953,0.26281866749703,0.262761662754251,0.262713634188891,0.262686382587872,0.262686382587872, +0.262832745663597,0.262832745663597,0.262889469360621,0.262898000371545,0.262869493520953,0.26281866749703,0.262761662754251,0.262713634188891,0.262686382587872,0.262686382587872, +0.286922545549238,0.286922545549238,0.286972730522915,0.286971227907203,0.286930343613653,0.28686635690788,0.286797177646267,0.286739729875259,0.286707319390477,0.286707319390477, +0.3345767193009,0.3345767193009,0.334613240076325,0.334590790297884,0.334524058220571,0.334432548425378,0.334337811006282,0.334260467189535,0.334217088543587,0.334217088543587, +0.404675837564586,0.404675837564586,0.404690508488861,0.404634435971782,0.404526155561615,0.404390300988087,0.404254080974965,0.404144022140132,0.404082339646691,0.404082339646691, +0.495400695622443,0.495400695622443,0.49538409885233,0.495278983453044,0.495109949072864,0.494909140591068,0.494711425448343,0.494551646604561,0.494461250647518,0.494461250647518, +0.60413317831115,0.60413317831115,0.604075413902297,0.603901515763337,0.603647388910687,0.603356015970193,0.603071047024614,0.602837406196655,0.602701388145305,0.602701388145305, +0.727414607218989,0.727414607218989,0.727309702323128,0.727038533349089,0.726667406868065,0.72625461348605,0.725849987580796,0.725506410406289,0.725292274003634,0.725292274003634, +0.860998745817515,0.860998745817515,0.860865276692384,0.860441580636768,0.859910561394846,0.859343772467701,0.858783536412419,0.858275921982759,0.857907773709257,0.857907773709257, + +00:56:53, +0.262943649915669,0.262943649915669,0.263000371082405,0.263008907237615,0.262980411174961,0.262929598900072,0.262872607922555,0.262824590369609,0.262797344868309,0.262797344868309, +0.262943649915669,0.262943649915669,0.263000371082405,0.263008907237615,0.262980411174961,0.262929598900072,0.262872607922555,0.262824590369609,0.262797344868309,0.262797344868309, +0.287030993560814,0.287030993560814,0.287081176010143,0.28707967979177,0.287038808451344,0.286974838125134,0.286905675225979,0.286848240544413,0.286815837314492,0.286815837314492, +0.334679947571197,0.334679947571197,0.334716466293363,0.334694025773971,0.334627311247218,0.334535823291988,0.334441107586221,0.33436378113752,0.334320412132999,0.334320412132999, +0.404770592007227,0.404770592007227,0.404785262591701,0.404729204420441,0.404620949060209,0.40448512497295,0.404348935076466,0.404238900357093,0.404177231305228,0.404177231305228, +0.495483262352941,0.495483262352941,0.495466669033902,0.495361576027805,0.495192577677915,0.494991811957607,0.494794138812355,0.49463439377673,0.494544016866726,0.494544016866726, +0.604199651992885,0.604199651992885,0.60414189741345,0.603968033465829,0.603713957736379,0.603422643894321,0.603137732827988,0.602904139298669,0.60276814862326,0.60276814862326, +0.727461346472369,0.727461346472369,0.727356459776857,0.727085341763355,0.726714286362546,0.726301572698051,0.725897025030012,0.725553513982594,0.725339418434136,0.725339418434136, +0.861022904941201,0.861022904941201,0.860889459938169,0.860465840524054,0.859934918227023,0.859368233319137,0.858808100110947,0.858300578432183,0.857932496811133,0.857932496811133, + +00:56:54, +0.263054542867032,0.263054542867032,0.26311126149848,0.263119802794379,0.263091317517266,0.263040518989951,0.262983541776892,0.26293553523597,0.262908295834238,0.262908295834238, +0.263054542867032,0.263054542867032,0.26311126149848,0.263119802794379,0.263091317517266,0.263040518989951,0.262983541776892,0.26293553523597,0.262908295834238,0.262908295834238, +0.28713942885649,0.28713942885649,0.287189608777785,0.287188118953254,0.287147260562724,0.287083306613232,0.2870141600742,0.2869567384804,0.286924342504459,0.286924342504459, +0.334783160874983,0.334783160874983,0.334819677542251,0.33479724627824,0.334730549296961,0.334639083176002,0.334544389178159,0.334467080093271,0.334423720727846,0.334423720727846, +0.404865329384897,0.404865329384897,0.404879999629747,0.404823955799606,0.40471572548106,0.404579931870005,0.40444377208019,0.404333761468274,0.404272105853516,0.404272105853516, +0.495565811166129,0.495565811166129,0.495549221298899,0.495444150678836,0.495275188346344,0.495074465371662,0.494876834208048,0.494717122967741,0.494626765097523,0.494626765097523, +0.604266109010334,0.604266109010334,0.604208364259663,0.604034534492055,0.603780509866923,0.603489255100617,0.603204401890954,0.602970855641751,0.602834892331595,0.602834892331595, +0.727508072764681,0.727508072764681,0.727403204265594,0.727132137195447,0.726761152849137,0.726348518872457,0.725944049412173,0.725600604467023,0.725386549757635,0.725386549757635, +0.861047056955337,0.861047056955337,0.860913636066875,0.860490093269311,0.859959267884607,0.859392686960425,0.858832656564022,0.858325227604598,0.857957212613818,0.857957212613818, + +00:56:55, +0.263165424511174,0.263165424511174,0.263222140602339,0.263230687035332,0.263202212541358,0.263151427760148,0.263094464310735,0.26304646878144,0.26301923547912,0.26301923547912, +0.263165424511174,0.263165424511174,0.263222140602339,0.263230687035332,0.263202212541358,0.263151427760148,0.263094464310735,0.26304646878144,0.26301923547912,0.26301923547912, +0.287247851432433,0.287247851432433,0.287298028822009,0.287296545387824,0.287255699943959,0.287191762368331,0.287122632187082,0.287065223679368,0.287032834956521,0.287032834956521, +0.334886359212972,0.334886359212972,0.334922873823704,0.334900451811405,0.334833772370514,0.334742328078129,0.334647655782803,0.334570364057492,0.334527014328828,0.334527014328828, +0.40496004970334,0.40496004970334,0.404974719608739,0.404918690115017,0.404810484829906,0.404674721684994,0.404538591991884,0.404428605479424,0.404366963297303,0.404366963297303, +0.495648342071689,0.495648342071689,0.495631755656997,0.495526707415815,0.495357781087838,0.495157100842928,0.494959511645129,0.494799834187306,0.494709495349628,0.494709495349628, +0.604332549374741,0.604332549374741,0.604274814452177,0.604101018853263,0.603847045313581,0.603555849600361,0.60327105422481,0.603037555237211,0.602901619281629,0.602901619281629, +0.727554786105755,0.727554786105755,0.727449935799172,0.72717891965521,0.726808006337702,0.72639545201916,0.725991060737196,0.725647681869515,0.725433667984082,0.725433667984082, +0.861071201865643,0.861071201865643,0.860937805084228,0.860514338878283,0.859983610373372,0.859417133397366,0.858857205777478,0.858349869505863,0.857981921123189,0.857981921123189, + +00:56:56, +0.263276294841597,0.263276294841597,0.26333300838749,0.26334155995398,0.263313096240738,0.263262325204156,0.26320537551757,0.263157390999499,0.263130163796432,0.263130163796432, +0.263276294841597,0.263276294841597,0.26333300838749,0.26334155995398,0.263313096240738,0.263262325204156,0.26320537551757,0.263157390999499,0.263130163796432,0.263130163796432, +0.287356261284817,0.287356261284817,0.287406436138995,0.287404959091657,0.287364126591223,0.287300205386601,0.287231091560787,0.287173696137471,0.287141314666832,0.287141314666832, +0.33498954258588,0.33498954258588,0.335026055138438,0.335003642374183,0.33493698046859,0.334845557999078,0.33475090740086,0.334673633030887,0.334630292936652,0.334630292936652, +0.405054752968293,0.405054752968293,0.405069422534412,0.405013407372409,0.404905227112486,0.404769494423656,0.404633394817288,0.404523432396286,0.404461803642336,0.404461803642336, +0.495730855079291,0.495730855079291,0.495714272117863,0.495609246248412,0.495440355912069,0.495239718381089,0.495042171133291,0.494882527445127,0.494792207632745,0.494792207632745, +0.604398973097339,0.604398973097339,0.604341248002221,0.60416748656069,0.603913564087602,0.603622427404819,0.60333768984084,0.60310423809635,0.602968329484669,0.602968329484669, +0.72760148650541,0.72760148650541,0.727496654387408,0.727225689152478,0.726854846838096,0.726442372148037,0.726038059014984,0.725694746199992,0.725480773123415,0.725480773123415, +0.861095339677828,0.861095339677828,0.860961966995943,0.860538577356705,0.86000794569908,0.859441572635756,0.858881747757138,0.858374504141832,0.858006622345118,0.858006622345118, + +00:56:57, +0.263387153851813,0.263387153851813,0.26344386484745,0.26345242154384,0.26342396860892,0.263373211315481,0.263316275390894,0.263268301883637,0.26324108077966,0.26324108077966, +0.263387153851813,0.263387153851813,0.26344386484745,0.26345242154384,0.26342396860892,0.263373211315481,0.263316275390894,0.263268301883637,0.26324108077966,0.26324108077966, +0.287464658409826,0.287464658409826,0.28751483072493,0.287513360060941,0.287472540500698,0.287408635664216,0.287339538191485,0.287282155850876,0.287249781631552,0.287249781631552, +0.335092710994427,0.335092710994427,0.335129221487173,0.33510681796729,0.335040173591903,0.334948772939563,0.33485414403304,0.334776887014166,0.334733556552024,0.334733556552024, +0.405149439185489,0.405149439185489,0.405164108412498,0.405108107577512,0.404999952334529,0.404864250091723,0.404728180562139,0.404618242224599,0.404556626894353,0.404556626894353, +0.495813350198595,0.495813350198595,0.495796770691153,0.495691767186282,0.495522912828704,0.495322317995818,0.495124812682217,0.494965202750894,0.494874901956572,0.494874901956572, +0.604465380189346,0.604465380189346,0.60440766492101,0.604233937625556,0.603980066200221,0.603688988525243,0.603404308750312,0.603170904230449,0.603035022952008,0.603035022952008, +0.727648173973452,0.727648173973452,0.727543360040112,0.727272445697069,0.72690167436016,0.726489279268955,0.726085044255428,0.725741797468369,0.725527865185559,0.725527865185559, +0.861119470397596,0.861119470397596,0.860986121807728,0.860562808710309,0.860032273867488,0.859466004681381,0.85890628250882,0.858399131518347,0.858031316285467,0.858031316285467, + +00:56:58, +0.26349800153535,0.26349800153535,0.263554709975752,0.263563271798445,0.263534829639428,0.263484086087641,0.263427163924218,0.263379201427357,0.263351986422303,0.263351986422303, +0.26349800153535,0.26349800153535,0.263554709975752,0.263563271798445,0.263534829639428,0.263484086087641,0.263427163924218,0.263379201427357,0.263351986422303,0.263351986422303, +0.287573042803652,0.287573042803652,0.287623212576009,0.28762174829187,0.287580941668574,0.287517053197361,0.287447972075353,0.287390602815754,0.287358235846853,0.287358235846853, +0.335195864439334,0.335195864439334,0.335232372870631,0.335209978591448,0.335143351741174,0.335051972900299,0.334957365680057,0.334880126008038,0.334836805175653,0.334836805175653, +0.405244108360656,0.405244108360656,0.40525877724872,0.405202790736049,0.405094660501762,0.404958988694924,0.404822949232166,0.404713034970095,0.404651433059088,0.404651433059088, +0.495895827439249,0.495895827439249,0.495879251386511,0.495774270239075,0.495605451847394,0.495404899696777,0.495207436301578,0.495047860114289,0.494957578330793,0.494957578330793, +0.604531770661965,0.604531770661965,0.604474065219746,0.60430037205907,0.604046551662659,0.603755532972872,0.603470910964483,0.60323755365078,0.603101699694925,0.603101699694925, +0.727694848519676,0.727694848519676,0.727590052767077,0.727319189298793,0.726948488913721,0.726536173391766,0.726132016468406,0.725788835684544,0.725574944180426,0.725574944180426, +0.861143594030642,0.861143594030642,0.861010269525287,0.860587032944815,0.860056594884346,0.859490429540021,0.858930810038334,0.858423751641246,0.858056002950093,0.858056002950093, + +00:56:59, +0.263608837885743,0.263608837885743,0.263665543765938,0.263674110711336,0.263645679325801,0.263594949514166,0.263538041111063,0.263490089624175,0.263462880717874,0.263462880717874, +0.263608837885743,0.263608837885743,0.263665543765938,0.263674110711336,0.263645679325801,0.263594949514166,0.263538041111063,0.263490089624175,0.263462880717874,0.263462880717874, +0.287681414462496,0.287681414462496,0.287731581688436,0.287730123780647,0.287689330091051,0.28762545798223,0.287556393208579,0.287499037028287,0.287466677308913,0.287466677308913, +0.335299002921323,0.335299002921323,0.335335509289535,0.335313124247379,0.33524651491712,0.335155157882004,0.335060572342624,0.334983350013215,0.33494003880825,0.33494003880825, +0.405338760499517,0.405338760499517,0.4053534290488,0.405297456853742,0.405189351619906,0.405053710238983,0.404917700833097,0.404807810638504,0.404746222142273,0.404746222142273, +0.495978286810891,0.495978286810891,0.495961714213571,0.495856755416423,0.495687972977783,0.495487463493618,0.495290042001036,0.49513049954498,0.495040236765081,0.495040236765081, +0.604598144526388,0.604598144526388,0.604540448909616,0.604366789872426,0.604113020486123,0.603822060758929,0.603537496494595,0.603304186368601,0.603168359724686,0.603168359724686, +0.727741510153863,0.727741510153863,0.727636732578086,0.727365919967443,0.726995290508596,0.726583054526313,0.726178975663785,0.725835860858405,0.725622010117917,0.725622010117917, +0.861167710582656,0.861167710582656,0.861034410154312,0.860611250065939,0.860080908755397,0.859514847217447,0.858955330351483,0.858448364516359,0.858080682344843,0.858080682344843, + +00:57:00, +0.263719662896544,0.263719662896544,0.263776366211565,0.263784938276069,0.263756517661589,0.2637058015886,0.263648906944964,0.263600966467619,0.263573763659897,0.263573763659897, +0.263719662896544,0.263719662896544,0.263776366211565,0.263784938276069,0.263756517661589,0.2637058015886,0.263648906944964,0.263600966467619,0.263573763659897,0.263573763659897, +0.287789773382567,0.287789773382567,0.287839938058426,0.287838486523484,0.287797705764337,0.287733850015025,0.287664801587358,0.287607458484666,0.28757510601392,0.28757510601392, +0.33540212644112,0.33540212644112,0.33543863074461,0.335416254935807,0.335349663120466,0.335258327885397,0.335163764021458,0.335086559030414,0.335043257450529,0.335043257450529, +0.405433395607789,0.405433395607789,0.405448063818451,0.405392105936304,0.405284025694676,0.405148414729618,0.405012435370651,0.404902569235547,0.404840994149631,0.404840994149631, +0.496060728323148,0.496060728323148,0.496044159181955,0.495939222727954,0.495770476229501,0.495570009395981,0.49537262979024,0.495213121052624,0.495122877269099,0.495122877269099, +0.604664501793791,0.604664501793791,0.604606816001795,0.604433191076804,0.604179472681809,0.603888571894626,0.603604065351876,0.603370802395154,0.603235003052542,0.603235003052542, +0.727788158885783,0.727788158885783,0.72768339948291,0.727412637712805,0.72704207915459,0.726629922682423,0.726225921851418,0.725882872999826,0.72566906300792,0.72566906300792, +0.861191820059319,0.861191820059319,0.861058543700491,0.860635460079387,0.860105215486374,0.859539257719426,0.858979843454061,0.858472970149508,0.85810535447556,0.85810535447556, + +00:57:01, +0.263830476561315,0.263830476561315,0.263887177306199,0.263895754486211,0.263867344640355,0.263816642304497,0.263759761419468,0.263711831951229,0.263684635241908,0.263684635241908, +0.263830476561315,0.263830476561315,0.263887177306199,0.263895754486211,0.263867344640355,0.263816642304497,0.263759761419468,0.263711831951229,0.263684635241908,0.263684635241908, +0.287898119560083,0.287898119560083,0.287948281682198,0.287946836516602,0.287906068684648,0.287842229291955,0.287773197207893,0.28771586718109,0.287683521958069,0.287683521958069, +0.335505234999453,0.335505234999453,0.335541737236585,0.33551937065746,0.335452796351936,0.3353614829112,0.335266940717279,0.33518975306035,0.335146461103206,0.335146461103206, +0.405528013691184,0.405528013691184,0.405542681563385,0.405486737989446,0.405378682731784,0.405243102172541,0.405107152850546,0.404997310766944,0.404935749086881,0.404935749086881, +0.496143151985636,0.496143151985636,0.496126586301276,0.496021672183281,0.495852961612169,0.495652537413496,0.495455199678831,0.495295724646871,0.4952054998525,0.4952054998525, +0.604730842475338,0.604730842475338,0.604673166507442,0.604499575683372,0.604245908260896,0.603955066391161,0.603670617547542,0.603437401741668,0.603301629689731,0.603301629689731, +0.727834794725193,0.727834794725193,0.727730053491306,0.727459342544647,0.727088854861494,0.726676777869914,0.726272855041146,0.725929872118671,0.72571610286031,0.72571610286031, +0.861215922466304,0.861215922466304,0.861082670169504,0.860659662990861,0.860129515083005,0.859563661051715,0.859004349351857,0.858497568546507,0.858130019348076,0.858130019348076, + +00:57:02, +0.26394127887363,0.26394127887363,0.263997977043422,0.264006559335342,0.263978160255673,0.263927471655424,0.263870604528134,0.263822686068557,0.263795495457455,0.263795495457455, +0.26394127887363,0.26394127887363,0.263997977043422,0.264006559335342,0.263978160255673,0.263927471655424,0.263870604528134,0.263822686068557,0.263795495457455,0.263795495457455, +0.288006452991271,0.288006452991271,0.288056612555983,0.28805517375623,0.288014418848208,0.28795059580924,0.287881580066399,0.287824263113766,0.287791925137565,0.287791925137565, +0.335608328597051,0.335608328597051,0.33564482876619,0.335622471413066,0.335555914612256,0.335464622960136,0.335370102430807,0.335292932103742,0.335249649766999,0.335249649766999, +0.405622614755412,0.405622614755412,0.405637282289307,0.405581353018872,0.405473322736935,0.405337772573461,0.405201853278491,0.405092035238408,0.40503048695974,0.40503048695974, +0.49622555780796,0.49622555780796,0.496208995581135,0.496104103792006,0.495935429135396,0.495735047555782,0.495537751676436,0.495378310337356,0.495288104524924,0.495288104524924, +0.604797166582179,0.604797166582179,0.604739500437706,0.604565943703284,0.60431232723455,0.604021544259718,0.603737153092794,0.60350398441936,0.603368239647479,0.603368239647479, +0.727881417681837,0.727881417681837,0.727776694613021,0.727506034472729,0.727135617639087,0.726723620098589,0.726319775242798,0.725976858224789,0.72576312968495,0.72576312968495, +0.861240017809279,0.861240017809279,0.861106789567023,0.860683858806052,0.86015380755101,0.859588057220063,0.85902884805065,0.858522159713164,0.858154676968218,0.858154676968218, + +00:57:03, +0.264052069827076,0.264052069827076,0.264108765416825,0.264117352817054,0.26408896450113,0.264038289634961,0.263981436264533,0.263933528813169,0.263906344300101,0.263906344300101, +0.264052069827076,0.264052069827076,0.264108765416825,0.264117352817054,0.26408896450113,0.264038289634961,0.263981436264533,0.263933528813169,0.263906344300101,0.263906344300101, +0.288114773672365,0.288114773672365,0.288164930676019,0.288163498238606,0.288122756251252,0.288058949563107,0.287989950159095,0.28793264627891,0.287900315548621,0.287900315548621, +0.335711407234645,0.335711407234645,0.335747905334156,0.335725557203356,0.335659017902155,0.335567748032933,0.335473249162767,0.335396096161313,0.335352823442627,0.335352823442627, +0.405717198806174,0.405717198806174,0.405731866001916,0.405675951030282,0.405567945715831,0.405432425938082,0.405296536660193,0.405186742655646,0.405125207773915,0.405125207773915, +0.496307945799714,0.496307945799714,0.496291387031122,0.496186517563722,0.496017878808783,0.495817539832447,0.495620285792673,0.495460878133704,0.495370691296003,0.495370691296003, +0.604863474125451,0.604863474125451,0.604805817803718,0.604632295147678,0.604378729613927,0.604088005511466,0.603803671998819,0.603570550439432,0.603434832936995,0.603434832936995, +0.72792802776545,0.72792802776545,0.727823322857786,0.727552713506797,0.727182367497136,0.726770449378239,0.726366682466192,0.726023831328018,0.725810143491691,0.725810143491691, +0.861264106093904,0.861264106093904,0.861130901898714,0.860708047530647,0.860178092896102,0.859612446230214,0.859053339556213,0.858546743655278,0.858179327341804,0.858179327341804, + +00:57:04, +0.264162849415252,0.264162849415252,0.264219542420013,0.264228134924951,0.264199757370325,0.264149096236698,0.264092256622249,0.26404436017864,0.264017181763417,0.264017181763417, +0.264162849415252,0.264162849415252,0.264219542420013,0.264228134924951,0.264199757370325,0.264149096236698,0.264092256622249,0.26404436017864,0.264017181763417,0.264017181763417, +0.288223081599608,0.288223081599608,0.288273236038553,0.288271809959975,0.288231080890021,0.288167290549792,0.288098307482211,0.288041016672747,0.288008693187459,0.288008693187459, +0.335814470912971,0.335814470912971,0.335850966941219,0.335828628029064,0.335762106222364,0.335670858130317,0.335576380913883,0.335499245233784,0.335455982130813,0.335455982130813, +0.405811765849168,0.405811765849168,0.405826432706907,0.40577053202937,0.405662551674168,0.405527062272102,0.405391203001353,0.405281433024363,0.405219911535113,0.405219911535113, +0.496390315970483,0.496390315970483,0.496373760660817,0.496268913508012,0.496100310641916,0.495900014253087,0.495702802037149,0.495543428045531,0.495453260175354,0.495453260175354, +0.604929765116275,0.604929765116275,0.6048721186166,0.604698630027682,0.604445115410164,0.604154450157563,0.603870174276792,0.603637099813073,0.603501409569476,0.603501409569476, +0.72797462498575,0.72797462498575,0.727869938235325,0.727599379656586,0.727229104445396,0.726817265718645,0.72641357672113,0.726070791438184,0.725857144290372,0.725857144290372, +0.86128818732583,0.86128818732583,0.861155007170234,0.860732229170323,0.860202371123987,0.859636828087903,0.859077823874313,0.858571320378642,0.858203970474646,0.858203970474646, + +00:57:05, +0.264273617631769,0.264273617631769,0.264330308046602,0.264338905652648,0.26431053885687,0.264259891454241,0.264203065594878,0.264155180158561,0.26412800784099,0.26412800784099, +0.264273617631769,0.264273617631769,0.264330308046602,0.264338905652648,0.26431053885687,0.264259891454241,0.264203065594878,0.264155180158561,0.26412800784099,0.26412800784099, +0.288331376769252,0.288331376769252,0.28838152863984,0.288380108916591,0.288339392760766,0.288275618765539,0.288206652031986,0.288149374291509,0.288117058050309,0.288117058050309, +0.335917519632763,0.335917519632763,0.335954013588114,0.335931683890925,0.335865179573617,0.335773953253021,0.335679497684883,0.335602379321883,0.335559125832282,0.335559125832282, +0.405906315890087,0.405906315890087,0.405920982409971,0.405865096021826,0.405757140617636,0.405621681581213,0.405485852307666,0.405376106350257,0.405314598249032,0.405314598249032, +0.496472668329837,0.496472668329837,0.496456116479788,0.496351291634444,0.496182724644373,0.49598247082729,0.495785300419459,0.495625960082441,0.495535811172588,0.495535811172588, +0.604996039565762,0.604996039565762,0.604938402887457,0.604764948354408,0.604511484634389,0.604220878209152,0.603936659937874,0.603703632551458,0.603567969556108,0.603567969556108, +0.728021209352447,0.728021209352447,0.727916540755345,0.727646032931816,0.72727582849361,0.726864069129573,0.726460458017406,0.726117738565099,0.725904132090818,0.725904132090818, +0.861312261510703,0.861312261510703,0.861179105387234,0.860756403730753,0.860226642240362,0.859661202798859,0.859102301010707,0.858595889889042,0.858228606372547,0.858228606372547, + +00:57:06, +0.26438437447025,0.26438437447025,0.26444106229022,0.264449664993774,0.264421308954388,0.264370675281204,0.264313863176027,0.264265988746532,0.264238822526416,0.264238822526416, +0.26438437447025,0.26438437447025,0.26444106229022,0.264449664993774,0.264421308954388,0.264370675281204,0.264313863176027,0.264265988746532,0.264238822526416,0.264238822526416, +0.288439659177558,0.288439659177558,0.288489808476144,0.288488395104719,0.288447691859745,0.288383934206601,0.288314983804666,0.288257719131438,0.28822541013341,0.28822541013341, +0.33602055339476,0.33602055339476,0.336057045275581,0.336034724789676,0.335968237956649,0.335877033401775,0.335782599476498,0.335705498426337,0.33566225454776,0.33566225454776, +0.406000848934618,0.406000848934618,0.406015515116794,0.405959643013336,0.405851712551921,0.405716283871105,0.405580484584824,0.405470762639021,0.405409267921368,0.405409267921368, +0.49655500288734,0.49655500288734,0.496538454497593,0.49643365195258,0.49626512082572,0.49606490956463,0.49586778094919,0.495708474254026,0.495618344297302,0.495618344297302, +0.605062297485006,0.605062297485006,0.605004670627383,0.604831250138956,0.604577837297714,0.604287289677362,0.604003128993211,0.603770148665748,0.603634512908058,0.603634512908058, +0.728067780875235,0.728067780875235,0.727963130427544,0.727692673342197,0.727322539651507,0.726910859620779,0.726507326364799,0.726164672718564,0.725951106902843,0.725951106902843, +0.861336328654161,0.861336328654161,0.861203196555358,0.860780571217599,0.860250906250918,0.859685570368802,0.859126770971146,0.858620452192253,0.858253235041304,0.858253235041304, + +00:57:07, +0.264495119924331,0.264495119924331,0.26455180514451,0.26456041294197,0.264532067656513,0.264481447711216,0.264424649359316,0.264376785936167,0.264349625813307,0.264349625813307, +0.264495119924331,0.264495119924331,0.26455180514451,0.26456041294197,0.264532067656513,0.264481447711216,0.264424649359316,0.264376785936167,0.264349625813307,0.264349625813307, +0.288547928820794,0.288547928820794,0.288598075543738,0.288596668520628,0.288555978183225,0.28849223686924,0.288423302796507,0.288366051188784,0.288333749433008,0.288333749433008, +0.336123572199703,0.336123572199703,0.336160062004359,0.336137750726058,0.336071281372197,0.335980098577316,0.33588568628946,0.335808602547875,0.335765368277976,0.335765368277976, +0.406095364988444,0.406095364988444,0.406110030833054,0.406054173009579,0.405946267482706,0.405810869147461,0.405675099838514,0.405565401896343,0.405503920557811,0.405503920557811, +0.496637319652543,0.496637319652543,0.496620774723779,0.496515994471969,0.496347499195514,0.496147330474673,0.495950243635914,0.49579097056987,0.495700859559083,0.495700859559083, +0.605128538885091,0.605128538885091,0.605070921847457,0.604897535392411,0.604644173411238,0.60435368457331,0.604069581453936,0.603836648167092,0.603701039636486,0.603701039636486, +0.728114339563801,0.728114339563801,0.728009707261606,0.727739300897427,0.727369237928806,0.726957637202005,0.726554181773076,0.726211593908368,0.725998068736248,0.725998068736248, +0.861360388761835,0.861360388761835,0.861227280680242,0.860804731636518,0.86027516316134,0.859709930803445,0.859151233761373,0.858645007294048,0.858277856486705,0.858277856486705, + +00:57:08, +0.264605853987659,0.264605853987659,0.264662536603123,0.264671149490888,0.264642814956895,0.264592208737918,0.264535424138378,0.264487571721091,0.264460417695283,0.264460417695283, +0.264605853987659,0.264605853987659,0.264662536603123,0.264671149490888,0.264642814956895,0.264592208737918,0.264535424138378,0.264487571721091,0.264460417695283,0.264460417695283, +0.288656185695236,0.288656185695236,0.2887063298389,0.2887049291606,0.288664251727483,0.288600526749726,0.288531609003771,0.288474370459806,0.28844207594536,0.28844207594536, +0.336226576048333,0.336226576048333,0.336263063775193,0.336240761700811,0.336174309821001,0.33608314878038,0.335988758124502,0.335911691687231,0.335868467023662,0.335868467023662, +0.406189864057243,0.406189864057243,0.406204529564428,0.406148686016229,0.406040805415665,0.405905437415959,0.405769698074415,0.405660024127908,0.405598556164045,0.405598556164045, +0.496719618634985,0.496719618634985,0.496703077167882,0.496598319202148,0.496429859763298,0.496229733566972,0.496032688489197,0.495873449039544,0.495783356967507,0.495783356967507, +0.605194763777086,0.605194763777086,0.605137156558744,0.604963804125847,0.604710492986048,0.604420062908098,0.604136017331171,0.603903131066624,0.603767549752532,0.603767549752532, +0.728160885427813,0.728160885427813,0.728056271267203,0.727785915607192,0.727415923335213,0.727004401882981,0.726601024251992,0.726258502144287,0.726045017600822,0.726045017600822, +0.861384441839348,0.861384441839348,0.861251357767516,0.860828884993161,0.860299412977304,0.859734284108496,0.859175689387126,0.858669555200189,0.858302470714533,0.858302470714533, + +00:57:09, +0.264716576653893,0.264716576653893,0.264773256659725,0.264781874634192,0.264753550849193,0.26470295835496,0.264646187506858,0.264598346094943,0.264571198165979,0.264571198165979, +0.264716576653893,0.264716576653893,0.264773256659725,0.264781874634192,0.264753550849193,0.26470295835496,0.264646187506858,0.264598346094943,0.264571198165979,0.264571198165979, +0.288764429797171,0.288764429797171,0.288814571357922,0.288813177020921,0.288772512488802,0.288708803844336,0.288639902422731,0.288582676940771,0.28855038966673,0.28855038966673, +0.336329564941396,0.336329564941396,0.336366050588826,0.336343757714681,0.336277323303803,0.336186184011707,0.336091814982362,0.336014765845138,0.33597155078555,0.33597155078555, +0.406284346146688,0.406284346146688,0.406299011316586,0.406243182038957,0.40613532635647,0.405999988682273,0.405864279298205,0.405754629339393,0.40569317474575,0.40569317474575, +0.496801899844196,0.496801899844196,0.496785361839429,0.496680626152646,0.496512202538607,0.49631211885107,0.49611511551859,0.495955909672608,0.49586583653214,0.49586583653214, +0.605260972172044,0.605260972172044,0.605203374772297,0.605030056350322,0.604776796033215,0.604486424692816,0.604202436636022,0.603969597375465,0.603834043267327,0.603834043267327, +0.728207418476934,0.728207418476934,0.728102822453996,0.727832517481163,0.727462595880421,0.727051153673425,0.726647853811291,0.726305397436084,0.726091953506343,0.726091953506343, +0.861408487892316,0.861408487892316,0.861275427822801,0.860853031293168,0.860323655704478,0.859758630289654,0.859200137854132,0.858694095916431,0.858327077730561,0.858327077730561, + +00:57:10, +0.264827287916706,0.264827287916706,0.264883965307992,0.264892588365559,0.264864275327078,0.264813696556008,0.264756939458411,0.264709109051372,0.264681967219041,0.264681967219041, +0.264827287916706,0.264827287916706,0.264883965307992,0.264892588365559,0.264864275327078,0.264813696556008,0.264756939458411,0.264709109051372,0.264681967219041,0.264681967219041, +0.288872661122892,0.288872661122892,0.288922800097099,0.28892141209789,0.288880760463476,0.288817068149358,0.288748183049668,0.288690970627954,0.28865869059339,0.28865869059339, +0.336432538879638,0.336432538879638,0.336469022446007,0.336446738768413,0.336380321821347,0.336289204272037,0.336194856863778,0.336117825022334,0.336074619564376,0.336074619564376, +0.406378811262447,0.406378811262447,0.406393476095192,0.406337661083427,0.406229830310788,0.406094522952071,0.405958843515554,0.405849217536473,0.405787776308602,0.405787776308602, +0.496884163289696,0.496884163289696,0.496867628747934,0.49676291533298,0.496594527530965,0.496394486336502,0.496197524733636,0.496038352478614,0.495948298262537,0.495948298262537, +0.60532716408101,0.60532716408101,0.605269576499156,0.605096292076882,0.604843082563798,0.604552769938539,0.604268839379581,0.604036047104723,0.603900520191986,0.603900520191986, +0.728253938720809,0.728253938720809,0.728149360831633,0.727879106529002,0.727509255574112,0.727097892583044,0.726694670460702,0.726352279793512,0.726138876462573,0.726138876462573, +0.86143252692635,0.86143252692635,0.861299490851712,0.860877170542175,0.860347891348525,0.859782969352609,0.859224579168114,0.858718629448522,0.858351677540557,0.858351677540557, + +00:57:11, +0.26493798776978,0.26493798776978,0.264994662541614,0.265003290678678,0.264974988384234,0.264924423334738,0.264867679986706,0.264819860584041,0.264792724848128,0.264792724848128, +0.26493798776978,0.26493798776978,0.264994662541614,0.265003290678678,0.264974988384234,0.264924423334738,0.264867679986706,0.264819860584041,0.264792724848128,0.264792724848128, +0.288980879668702,0.288980879668702,0.289031016052738,0.28902963438781,0.288988995647804,0.288925319661086,0.28885645088087,0.288799251517638,0.288766978721622,0.288766978721622, +0.336535497863808,0.336535497863808,0.336571979347484,0.336549704862755,0.336483305374379,0.336392209562114,0.33629788376949,0.336220869219556,0.336177673360878,0.336177673360878, +0.406473259410182,0.406473259410182,0.406487923905908,0.4064321231553,0.406324317284279,0.406189040231018,0.406053390732129,0.405943788724816,0.40588236085827,0.40588236085827, +0.496966408980992,0.496966408980992,0.496949877902901,0.496845186752655,0.496676834749884,0.496476836032787,0.496279916143867,0.4961207774671,0.496030742168241,0.496030742168241, +0.60539333951501,0.60539333951501,0.605335761750346,0.605162511316559,0.604909352588843,0.604619098656329,0.604335225572928,0.604102480265491,0.603966980537613,0.603966980537613, +0.728300446169074,0.728300446169074,0.728195886409751,0.727925682760358,0.727555902425955,0.727144618621531,0.726741474209945,0.726399149226309,0.726185786479267,0.726185786479267, +0.86145655894705,0.86145655894705,0.861323546859856,0.86090130274581,0.8603721199151,0.859807301303047,0.859249013334785,0.858743155802205,0.85837627015028,0.85837627015028, + +00:57:12, +0.265048676206811,0.265048676206811,0.265105348354292,0.26511398156725,0.265085690014357,0.26503513868484,0.264978409085423,0.264930600686623,0.26490347104691,0.26490347104691, +0.265048676206811,0.265048676206811,0.265105348354292,0.26511398156725,0.265085690014357,0.26503513868484,0.264978409085423,0.264930600686623,0.26490347104691,0.26490347104691, +0.289089085430912,0.289089085430912,0.289139219221154,0.289137843886995,0.289097218038098,0.289033558375824,0.288964705912635,0.288907519606118,0.288875254047715,0.288875254047715, +0.336638441894657,0.336638441894657,0.336674921294008,0.336652655998458,0.336586273963647,0.336495199882683,0.336400895700243,0.336323898437546,0.336280712175795,0.336280712175795, +0.406567690595551,0.406567690595551,0.406582354754389,0.406526568260231,0.4064187872826,0.406283540524771,0.406147920953592,0.406038342910086,0.40597692840042,0.40597692840042, +0.497048636927582,0.497048636927582,0.497032109313824,0.496927440421167,0.496759124204867,0.496559167949437,0.496362289758802,0.496203184647595,0.496113168258787,0.496113168258787, +0.605459498485061,0.605459498485061,0.605401930536879,0.605228714080372,0.604975606119381,0.604685410857236,0.60440159522713,0.604168896868851,0.604033424315296,0.604033424315296, +0.728346940831352,0.728346940831352,0.728242399197972,0.727972246184868,0.727602536445608,0.727191331798569,0.726788265068725,0.726446005744204,0.726232683566163,0.726232683566163, +0.861480583960013,0.861480583960013,0.861347595852835,0.860925427909693,0.860396341409849,0.859831626146644,0.859273440359853,0.858767674983211,0.858400855565483,0.858400855565483, + +00:57:13, +0.265159353221508,0.265159353221508,0.265216022739738,0.265224661024987,0.265196380211156,0.265145842600012,0.265089126748257,0.265041329352805,0.26501420580907,0.26501420580907, +0.265159353221508,0.265159353221508,0.265216022739738,0.265224661024987,0.265196380211156,0.265145842600012,0.265089126748257,0.265041329352805,0.26501420580907,0.26501420580907, +0.289197278405839,0.289197278405839,0.289247409598668,0.289246040591767,0.289205427630673,0.289141784289884,0.289072948141269,0.289015774889692,0.288983516567967,0.288983516567967, +0.336741370972938,0.336741370972938,0.336777848286334,0.336755592176274,0.336689227589902,0.336598175234493,0.33650389265678,0.336426912677046,0.33638373600987,0.33638373600987, +0.406662104824208,0.406662104824208,0.406676768646285,0.40662099640387,0.406513240311403,0.406378023838985,0.406242434185598,0.406132880097942,0.406071478940712,0.406071478940712, +0.497130847138952,0.497130847138952,0.497114322990185,0.497009676348002,0.496841395905404,0.496641482095953,0.496444645587952,0.496285574029617,0.496195576543696,0.496195576543696, +0.605525641002164,0.605525641002164,0.605468082869754,0.605294900379326,0.605041843166432,0.604751706552294,0.604467948353239,0.60423529692587,0.604099851536111,0.604099851536111, +0.728393422717254,0.728393422717254,0.728288899205909,0.728018796812155,0.727649157642715,0.727238032123825,0.726835043046737,0.726492849356911,0.726279567732989,0.726279567732989, +0.861504601970825,0.861504601970825,0.861371637836242,0.860949546039437,0.860420555838414,0.859855943889071,0.859297860249017,0.858792186997268,0.858425433791909,0.858425433791909, + +00:57:14, +0.265270018807589,0.265270018807589,0.265326685691679,0.265335329045613,0.26530705896835,0.265256535073968,0.26519983296891,0.265152046576285,0.265124929128302,0.265124929128302, +0.265270018807589,0.265270018807589,0.265326685691679,0.265335329045613,0.26530705896835,0.265256535073968,0.26519983296891,0.265152046576285,0.265124929128302,0.265124929128302, +0.289305458589813,0.289305458589813,0.289355587181611,0.289354224498457,0.289313624421857,0.289249997399587,0.289181177563085,0.289124017364672,0.289091766278684,0.289091766278684, +0.336844285099407,0.336844285099407,0.336880760325217,0.336858513396958,0.336792166253896,0.336701135618293,0.336606874639849,0.336529911938803,0.336486744863846,0.336486744863846, +0.4067565021018,0.4067565021018,0.406771165587241,0.406715407591861,0.406607676376333,0.406472490179309,0.406336930433801,0.406227400294038,0.406166012484802,0.406166012484802, +0.497213039624579,0.497213039624579,0.497196518941457,0.497091894542633,0.496923649860977,0.496723778481824,0.496526983640816,0.496367945622673,0.49627796703248,0.49627796703248, +0.605591767077307,0.605591767077307,0.605534218759958,0.605361070224413,0.605108063741001,0.604817985752527,0.604534284962295,0.6043016804476,0.60416626221112,0.60416626221112, +0.72843989183638,0.72843989183638,0.728335386443162,0.728065334651833,0.727695766026909,0.727284719606959,0.726881808153663,0.726539680074132,0.726326438989461,0.726326438989461, +0.861528612985068,0.861528612985068,0.861395672815663,0.86097365714065,0.860444763206427,0.859880254535991,0.85932227300797,0.858816691850095,0.858450004835297,0.858450004835297, + +00:57:15, +0.265380672958786,0.265380672958786,0.26543733720385,0.265445985622867,0.265417726279671,0.265367216100433,0.265310527741101,0.265262752350774,0.265235640998313,0.265235640998313, +0.265380672958786,0.265380672958786,0.26543733720385,0.265445985622867,0.265417726279671,0.265367216100433,0.265310527741101,0.265262752350774,0.265235640998313,0.265235640998313, +0.289413625979167,0.289413625979167,0.289463751966324,0.289462395603402,0.289421808407984,0.289358197701261,0.289289394174407,0.289232247027373,0.289200003176182,0.289200003176182, +0.336947184274819,0.336947184274819,0.336983657411415,0.336961419661266,0.336895089956383,0.336804081034835,0.3367098416502,0.336632896223564,0.33658973873847,0.33658973873847, +0.406850882433971,0.406850882433971,0.406865545582899,0.406809801829846,0.406702095483034,0.406566939551386,0.406431409703845,0.406321903504022,0.40626052903834,0.40626052903834, +0.497295214393927,0.497295214393927,0.497278697177101,0.497174095014523,0.497005886081055,0.496806057116529,0.496609303926883,0.496450299436261,0.496360339734642,0.496360339734642, +0.605657876721465,0.605657876721465,0.605600338218461,0.605427223626613,0.605174267854079,0.604884248468943,0.604600605065323,0.604368047445084,0.604232656351372,0.604232656351372, +0.728486348198316,0.728486348198316,0.728381860919318,0.728111859713501,0.727742361607812,0.727331394257615,0.726928560399172,0.726586497905559,0.726373297345283,0.726373297345283, +0.861552617008314,0.861552617008314,0.861419700796676,0.86099776121893,0.860468963519515,0.859904558093059,0.859346678642396,0.858841189547403,0.858474568701378,0.858474568701378, + +00:57:16, +0.265491315668844,0.265491315668844,0.265547977270002,0.265556630750496,0.265528382138863,0.265477885673143,0.265421211058558,0.265373446669993,0.265346341412822,0.265346341412822, +0.265491315668844,0.265491315668844,0.265547977270002,0.265556630750496,0.265528382138863,0.265477885673143,0.265421211058558,0.265373446669993,0.265346341412822,0.265346341412822, +0.289521780570248,0.289521780570248,0.289571903949152,0.289570553902949,0.289529979585397,0.289466385191243,0.289397597971565,0.289340463874122,0.289308227256783,0.289308227256783, +0.337050068499936,0.337050068499936,0.337086539545686,0.337064310969958,0.336997998698121,0.336907011484874,0.336812793688583,0.336735865532077,0.336692717634491,0.336692717634491, +0.406945245826359,0.406945245826359,0.406959908638895,0.40690417912346,0.40679649763714,0.406661371960855,0.406525872001374,0.40641638973354,0.406355028606971,0.406355028606971, +0.497377371456452,0.497377371456452,0.497360857706568,0.497256277773126,0.497088104575098,0.496888318009538,0.49669160645563,0.496532635479865,0.496442694659671,0.496442694659671, +0.605723969945601,0.605723969945601,0.605666441256223,0.605493360596889,0.605240455516645,0.604950494712537,0.604666908673336,0.604434397929348,0.604299033967902,0.604299033967902, +0.728532791812638,0.728532791812638,0.728428322643953,0.728158372006749,0.727788944395032,0.727378056085426,0.726975299792923,0.726633302860869,0.726420142810146,0.726420142810146, +0.861576614046131,0.861576614046131,0.861443721784855,0.861021858279869,0.860493156783295,0.859928854565924,0.859371077157975,0.858865680094897,0.858499125395873,0.858499125395873, + +00:57:17, +0.265601946931517,0.265601946931517,0.265658605883895,0.265667264422261,0.265639026539682,0.265588543785847,0.265531882915021,0.265484129527677,0.26545703036556,0.26545703036556, +0.265601946931517,0.265601946931517,0.265658605883895,0.265667264422261,0.265639026539682,0.265588543785847,0.265531882915021,0.265484129527677,0.26545703036556,0.26545703036556, +0.289629922359406,0.289629922359406,0.289680043126453,0.289678699393454,0.289638137950446,0.289574559865878,0.289505788950899,0.289448667901254,0.28941643851682,0.28941643851682, +0.337152937775518,0.337152937775518,0.337189406728795,0.337167187323793,0.337100892479869,0.337009926969164,0.336915730755754,0.336838819865095,0.336795681552658,0.336795681552658, +0.407039592284597,0.407039592284597,0.407054254760858,0.406998539478333,0.406890882844285,0.406755787413352,0.406620317332023,0.40651085898823,0.406449511196337,0.406449511196337, +0.497459510821597,0.497459510821597,0.497443000539297,0.497338442827885,0.497170305352554,0.496970561170307,0.496773891236526,0.496614953762962,0.496525031817047,0.496525031817047, +0.605790046760663,0.605790046760663,0.60573252788419,0.605559481146196,0.605306626739665,0.605016724494291,0.604733195797334,0.604500731911404,0.604365395071732,0.604365395071732, +0.728579222688907,0.728579222688907,0.728474771626631,0.728204871541153,0.727835514398166,0.727424705100013,0.72702202634456,0.72668009494973,0.726466975393728,0.726466975393728, +0.861600604104078,0.861600604104078,0.861467735785763,0.861045948329052,0.86051734300338,0.859953143960226,0.859395468560377,0.858890163498273,0.858523674924498,0.858523674924498, + +00:57:18, +0.265712566740573,0.265712566740573,0.265769223039303,0.265777886631935,0.265749659475895,0.265699190432306,0.265642543304244,0.265594800917573,0.265567707850268,0.265567707850268, +0.265712566740573,0.265712566740573,0.265769223039303,0.265777886631935,0.265749659475895,0.265699190432306,0.265642543304244,0.265594800917573,0.265567707850268,0.265567707850268, +0.289738051343004,0.289738051343004,0.289788169494591,0.289786832071281,0.289746283499493,0.289682721721521,0.289613967108757,0.28955685910511,0.289524636952632,0.289524636952632, +0.337255792102329,0.337255792102329,0.337292258961503,0.337270048723537,0.337203771302386,0.337112827488466,0.337018652852466,0.336941759223371,0.336898630493725,0.336898630493725, +0.407133921814313,0.407133921814313,0.407148583954415,0.407092882900091,0.406985251110095,0.406850185914505,0.406714745701426,0.406605311273728,0.406543976812073,0.406543976812073, +0.497541632498797,0.497541632498797,0.49752512568472,0.497420590188229,0.497252488422862,0.497052786608283,0.496856158279027,0.496697254295016,0.496607351216241,0.496607351216241, +0.605856107177586,0.605856107177586,0.605798598113294,0.605625585285471,0.60537278153409,0.605082937825175,0.604799466448302,0.604567049402255,0.604431739673872,0.604431739673872, +0.728625640836676,0.728625640836676,0.728521207876904,0.728251358326276,0.727882071626798,0.727471341310986,0.727068740063717,0.726726874181796,0.726513795105697,0.726513795105697, +0.861624587187706,0.861624587187706,0.861491742804959,0.861070031372057,0.860541522185375,0.8599774262816,0.859419852855264,0.858914639763222,0.858548217292963,0.858548217292963, + +00:57:19, +0.265823175089792,0.265823175089792,0.265879828730009,0.265888497373302,0.265860280941284,0.265809825606291,0.265753192219991,0.265705460833439,0.265678373860703,0.265678373860703, +0.265823175089792,0.265823175089792,0.265879828730009,0.265888497373302,0.265860280941284,0.265809825606291,0.265753192219991,0.265705460833439,0.265678373860703,0.265678373860703, +0.289846167517409,0.289846167517409,0.289896283049937,0.2898949519328,0.289854416228904,0.289790870754533,0.289722132441494,0.289665037482044,0.289632822560567,0.289632822560567, +0.337358631481134,0.337358631481134,0.337395096244578,0.337372895169952,0.337306635166437,0.337215713043539,0.33712155997948,0.337044683607661,0.337001564458446,0.337001564458446, +0.407228234421131,0.407228234421131,0.407242896225187,0.407187209394354,0.407079602440193,0.406944567469938,0.406809157115208,0.406699746595661,0.40663842545981,0.40663842545981, +0.497623736497473,0.497623736497473,0.497607233152253,0.497502719863581,0.497334653795449,0.497134994332904,0.496938407592578,0.496779537085481,0.496689652866709,0.496689652866709, +0.605922151207291,0.605922151207291,0.605864651954454,0.60569167302564,0.60543891991086,0.605149134716143,0.604865720637213,0.604633350412887,0.604498067785316,0.604498067785316, +0.728672046265483,0.728672046265483,0.728567631404311,0.728297832371671,0.727928616090502,0.727517964727941,0.727115440960016,0.726773640566708,0.726560601955708,0.726560601955708, +0.861648563302562,0.861648563302562,0.861515742847993,0.861094107414454,0.860565694334876,0.860001701535673,0.859444230048294,0.858939108895427,0.858572752506967,0.858572752506967, + +00:57:20, +0.265933771972966,0.265933771972966,0.265990422949811,0.265999096640159,0.265970890929638,0.265920449301588,0.265863829656038,0.265816109269045,0.26578902839063,0.26578902839063, +0.265933771972966,0.265933771972966,0.265990422949811,0.265999096640159,0.265970890929638,0.265920449301588,0.265863829656038,0.265816109269045,0.26578902839063,0.26578902839063, +0.289954270878999,0.289954270878999,0.290004383788874,0.290003058974392,0.289962536135055,0.289899006961285,0.289830284945475,0.289773203028412,0.289740995336982,0.289740995336982, +0.337461455912702,0.337461455912702,0.337497918578788,0.337475726663807,0.337409484072787,0.337318583635146,0.337224452137553,0.337147593018724,0.337104483447578,0.337104483447578, +0.40732253011067,0.40732253011067,0.40733719157879,0.407281518966739,0.407173936840194,0.407038932085271,0.406903551578994,0.406794164959656,0.406732857145174,0.406732857145174, +0.497705822827038,0.497705822827038,0.497689322951307,0.497584831863351,0.497416801479733,0.497217184353595,0.497020639186616,0.496861802143801,0.496771936777901,0.496771936777901, +0.605988178860689,0.605988178860689,0.605930689418576,0.605757744377615,0.6055050418809,0.605215315178138,0.604931958375027,0.604699634954273,0.604564379417047,0.604564379417047, +0.728718438984855,0.728718438984855,0.72861404221838,0.728344293686879,0.727975147798839,0.727564575360463,0.727162129043066,0.726820394114097,0.726607395953403,0.726607395953403, +0.861672532454183,0.861672532454183,0.86153973592041,0.861118176461808,0.860589859457473,0.860025969728063,0.859468600145116,0.858963570900563,0.858597280572206,0.858597280572206, + +00:57:21, +0.266044357383896,0.266044357383896,0.266101005692518,0.266109684426314,0.266081489434763,0.266031061511992,0.265974455606176,0.265926746218173,0.265899671433829,0.265899671433829, +0.266044357383896,0.266044357383896,0.266101005692518,0.266109684426314,0.266081489434763,0.266031061511992,0.265974455606176,0.265926746218173,0.265899671433829,0.265899671433829, +0.290062361424159,0.290062361424159,0.290112471707789,0.290111153192445,0.290070643214332,0.290007130338156,0.289938424617073,0.289881355740585,0.289849155278243,0.289849155278243, +0.337564265397802,0.337564265397802,0.337600725964903,0.337578543205871,0.337512318022202,0.337421439264052,0.33732732932745,0.33725048745732,0.337207387461881,0.337207387461881, +0.407416808888543,0.407416808888543,0.407431470020835,0.407375811622856,0.407268254315712,0.407133279766119,0.406997929098399,0.406888566371331,0.406827271873787,0.406827271873787, +0.497787891496895,0.497787891496895,0.497771395091278,0.497666926196939,0.497498931485118,0.497299356679772,0.497102853070565,0.496944049479408,0.496854202959255,0.496854202959255, +0.606054190148673,0.606054190148673,0.605996710516552,0.605823799352295,0.605571147455121,0.605281479222089,0.60499817967269,0.604765903037374,0.604630674580033,0.604630674580033, +0.728764819004306,0.728764819004306,0.728660440328627,0.728390742281428,0.728021666761356,0.727611173218126,0.727208804322464,0.726867134833581,0.726654177108413,0.726654177108413, +0.8616964946481,0.8616964946481,0.861563722027744,0.861142238519674,0.86061401755875,0.860050230864385,0.859492963151371,0.858988025784297,0.858621801494365,0.858621801494365, + +00:57:22, +0.266154931316399,0.266154931316399,0.266211576951949,0.266220260725586,0.266192076450473,0.266141662231313,0.266085070064203,0.266037371674617,0.26601030298409,0.26601030298409, +0.266154931316399,0.266154931316399,0.266211576951949,0.266220260725586,0.266192076450473,0.266141662231313,0.266085070064203,0.266037371674617,0.26601030298409,0.26601030298409, +0.290170439149285,0.290170439149285,0.290220546803081,0.290219234583357,0.290178737463126,0.290115240881533,0.290046551452668,0.289989495614937,0.289957302380722,0.289957302380722, +0.337667059937206,0.337667059937206,0.337703518403695,0.337681344796915,0.337615137015452,0.337524279931023,0.337430191549934,0.337353366924211,0.337310276502116,0.337310276502116, +0.407511070760358,0.407511070760358,0.407525731556928,0.407470087368311,0.407362554872355,0.407227610518091,0.407092289679036,0.406982950836303,0.406921669651264,0.406921669651264, +0.497869942516433,0.497869942516433,0.497853449581555,0.497749002873734,0.497581043821002,0.497381511320839,0.497185049253839,0.497026279101725,0.496936451420196,0.496936451420196, +0.606120185082126,0.606120185082126,0.606062715259263,0.605889837960568,0.605637236644424,0.605347626858912,0.605064384541134,0.604832154673137,0.60469695328523,0.60469695328523, +0.728811186333341,0.728811186333341,0.728706825744555,0.728437178164835,0.728068172987591,0.72765775831049,0.727255466807795,0.726913862734766,0.726700945430357,0.726700945430357, +0.861720449889838,0.861720449889838,0.861587701175527,0.861166293593601,0.860638168644283,0.860074484950242,0.859517319072694,0.859012473552292,0.858646315279123,0.858646315279123, + +00:57:23, +0.266265493764301,0.266265493764301,0.266322136721938,0.266330825531809,0.266302651970596,0.26625225145337,0.266195673023933,0.266147985632185,0.266120923035215,0.266120923035215, +0.266265493764301,0.266265493764301,0.266322136721938,0.266330825531809,0.266302651970596,0.26625225145337,0.266195673023933,0.266147985632185,0.266120923035215,0.266120923035215, +0.290278504050776,0.290278504050776,0.290328609071154,0.290327303143531,0.290286818877839,0.29022333858781,0.29015466544865,0.290097622647853,0.290065436640802,0.290065436640802, +0.337769839531688,0.337769839531688,0.33780629589594,0.337784131437713,0.337717941053309,0.337627105636828,0.337533038805771,0.337456231420161,0.337413150569047,0.337413150569047, +0.407605315731721,0.407605315731721,0.407619976192672,0.407564346208705,0.407456838515723,0.407321924346793,0.407186633326514,0.40707731836018,0.407016050483218,0.407016050483218, +0.497951975895033,0.497951975895033,0.497935486431512,0.497831061903115,0.49766313849677,0.497463648286192,0.497267227745843,0.497108491020163,0.497018682170141,0.497018682170141, +0.606186163671918,0.606186163671918,0.606128703657574,0.605955860213304,0.605703309459693,0.605413758099508,0.605130572991279,0.604898389872496,0.60476321554358,0.60476321554358, +0.728857540981451,0.728857540981451,0.728753198475657,0.728483601346603,0.728114666487068,0.727704330647104,0.727302116508634,0.726960577827245,0.726747700928841,0.726747700928841, +0.861744398184913,0.861744398184913,0.86161167336928,0.861190341689133,0.86066231271964,0.860098731991233,0.859541667914712,0.8590369142102,0.858670821932154,0.858670821932154, + +00:57:24, +0.266376044721441,0.266376044721441,0.266432684996328,0.266441378838826,0.26641321598897,0.266362829171995,0.26630626447919,0.266258588084693,0.26623153158102,0.26623153158102, +0.266376044721441,0.266376044721441,0.266432684996328,0.266441378838826,0.26641321598897,0.266362829171995,0.26630626447919,0.266258588084693,0.26623153158102,0.26623153158102, +0.290386556125045,0.290386556125045,0.290436658508423,0.290435358869381,0.290394887454881,0.290331423453392,0.290262766601416,0.290205736835726,0.290173558054871,0.290173558054871, +0.337872604182025,0.337872604182025,0.337909058442412,0.337886903129041,0.337820730136546,0.337729916382239,0.33763587109573,0.337559080945937,0.337516009663438,0.337516009663438, +0.40769954380823,0.40769954380823,0.407714203933662,0.407658588149636,0.407551105251416,0.407416221257825,0.407280960046434,0.407171668948569,0.407110414375255,0.407110414375255, +0.498033991642065,0.498033991642065,0.498017505650518,0.49791310329445,0.497745215521796,0.497545767585212,0.49734938855597,0.497190685244125,0.497100895218497,0.497100895218497, +0.606252125928904,0.606252125928904,0.606194675722338,0.606021866121364,0.605769365911803,0.605479872954768,0.605196745034032,0.604964608646372,0.604829461366012,0.604829461366012, +0.728903882958113,0.728903882958113,0.728799558531413,0.728530011836226,0.728161147269301,0.727750890237505,0.72734875343454,0.727007280120601,0.726794443613459,0.726794443613459, +0.861768339538835,0.861768339538835,0.861635638614519,0.861214382811804,0.860686449790383,0.86012297199295,0.859566009683047,0.859061347763669,0.858695321459122,0.858695321459122, + +00:57:25, +0.26648658418167,0.26648658418167,0.266543221768976,0.266551920640492,0.266523768499448,0.266473395381032,0.26641684442381,0.266369179025971,0.266342128615329,0.266342128615329, +0.26648658418167,0.26648658418167,0.266543221768976,0.266551920640492,0.266523768499448,0.266473395381032,0.26641684442381,0.266369179025971,0.266342128615329,0.266342128615329, +0.290494595368509,0.290494595368509,0.29054469511131,0.290543401757329,0.290502943190667,0.29043949547469,0.290370854907373,0.290313838174957,0.29028166661933,0.29028166661933, +0.337975353888994,0.337975353888994,0.338011806043892,0.337989659871675,0.337923504265939,0.337832712168029,0.337738688420581,0.337661915502309,0.337618853786057,0.337618853786057, +0.407793754995479,0.407793754995479,0.40780841478549,0.407752813196693,0.407645355085026,0.407510501256781,0.407375269844396,0.407266002607069,0.407204761332976,0.407204761332976, +0.49811598976689,0.49811598976689,0.498099507247927,0.497995127057096,0.497827274905444,0.497627869227274,0.497431531693602,0.497272861783,0.497183090574658,0.497183090574658, +0.606318071863927,0.606318071863927,0.606260631464396,0.606087855695594,0.605835406011611,0.605545971435568,0.605262900680285,0.605030811005673,0.604895690763442,0.604895690763442, +0.728950212272797,0.728950212272797,0.728845905921291,0.728576409643184,0.72820761534379,0.727797437091219,0.727395377595064,0.727053969624404,0.726841173493796,0.726841173493796, +0.861792273957107,0.861792273957107,0.861659596916752,0.861238416967143,0.860710579862067,0.860147204960975,0.859590344383311,0.859085774218338,0.858719813865684,0.858719813865684, + +00:57:26, +0.26659711213885,0.26659711213885,0.266653747033749,0.266662450930676,0.266634309495891,0.266583950074337,0.266527412851641,0.266479758449861,0.266452714131982,0.266452714131982, +0.26659711213885,0.26659711213885,0.266653747033749,0.266662450930676,0.266634309495891,0.266583950074337,0.266527412851641,0.266479758449861,0.266452714131982,0.266452714131982, +0.290602621777596,0.290602621777596,0.290652718876245,0.290651431803803,0.290610986081625,0.290547554648124,0.290478930362935,0.290421926661954,0.290389762330583,0.290389762330583, +0.338078088653375,0.338078088653375,0.338114538701159,0.338092401666397,0.338026263442266,0.337935492994972,0.337841490781098,0.337764735090045,0.337721682937675,0.337721682937675, +0.407887949299057,0.407887949299057,0.407902608753744,0.407847021355464,0.407739588022141,0.407604764349253,0.407469562725991,0.407360319341276,0.40729909136198,0.40729909136198, +0.498197970278855,0.498197970278855,0.498181491233084,0.498077133200402,0.497909316657068,0.497709953221741,0.497513657168111,0.497355020646169,0.497265268248009,0.497265268248009, +0.606384001487816,0.606384001487816,0.606326570894574,0.606153828946827,0.605901429769964,0.60561205355277,0.605329039940919,0.605096996961291,0.604961903746772,0.604961903746772, +0.728996528934958,0.728996528934958,0.728892240654746,0.728622794776946,0.728254070720025,0.727843971217758,0.727441988999742,0.727100646348211,0.726887890579419,0.726887890579419, +0.861816201445225,0.861816201445225,0.861683548281481,0.86126244416067,0.86073470294024,0.860171430900887,0.859614672021111,0.859110193579839,0.858744299157491,0.858744299157491, + +00:57:27, +0.266707628586856,0.266707628586856,0.266764260784527,0.266772969703256,0.266744838972175,0.266694493245777,0.266637969756543,0.266590326350218,0.266563288124829,0.266563288124829, +0.266707628586856,0.266707628586856,0.266764260784527,0.266772969703256,0.266744838972175,0.266694493245777,0.266637969756543,0.266590326350218,0.266563288124829,0.266563288124829, +0.29071063534874,0.29071063534874,0.290760729799666,0.290759449005242,0.290719016124188,0.290655600970123,0.290586992964523,0.290530002293136,0.290497845185046,0.290497845185046, +0.338180808475952,0.338180808475952,0.338217256414996,0.338195128513986,0.338129007666306,0.338038258863847,0.337944278178055,0.337867539709921,0.337824497119063,0.337824497119063, +0.407982126724549,0.407982126724549,0.407996785844004,0.407941212631531,0.407833804068344,0.407699010540825,0.407563838696809,0.407454619156781,0.407393404467857,0.407393404467857, +0.4982799331873,0.4982799331873,0.498263457615325,0.498159121733704,0.497991340786012,0.497792019577965,0.49759576498886,0.497437161843001,0.497347428247925,0.497347428247925, +0.606449914811388,0.606449914811388,0.606392494023686,0.606219785885884,0.605967437197696,0.605678119317224,0.605395162826801,0.60516316652411,0.605028100326893,0.605028100326893, +0.729042832954038,0.729042832954038,0.728938562741225,0.72866916724697,0.728300513407482,0.727890492626623,0.727488587658101,0.727147310301569,0.72693459487989,0.72693459487989, +0.861840122008679,0.861840122008679,0.8617074927142,0.861286464397901,0.860758819030442,0.860195649818254,0.859638992602044,0.859134605853797,0.858768777340186,0.858768777340186, + +00:57:28, +0.266818133519573,0.266818133519573,0.266874763015202,0.266883476952123,0.266855356922186,0.266805024889232,0.266748515132388,0.266700882720905,0.26667385058773,0.26667385058773, +0.266818133519573,0.266818133519573,0.266874763015202,0.266883476952123,0.266855356922186,0.266805024889232,0.266748515132388,0.266700882720905,0.26667385058773,0.26667385058773, +0.290818636078384,0.290818636078384,0.290868727878021,0.290867453358092,0.290827033314798,0.290763634437124,0.290695042708569,0.290638065064929,0.290605915179142,0.290605915179142, +0.338283513357507,0.338283513357507,0.338319959186189,0.338297840415229,0.338231736938842,0.338141009775432,0.33804705061223,0.337970329362709,0.337927296330995,0.337927296330995, +0.408076287277534,0.408076287277534,0.408090946061849,0.40803538703047,0.407928003229214,0.407793239837079,0.407658097762433,0.40754890205917,0.407487700656195,0.407487700656195, +0.498361878501551,0.498361878501551,0.498345406403973,0.498241092666328,0.498073347301608,0.497874068305286,0.497677855165199,0.497519285382855,0.497429570583768,0.497429570583768, +0.606515811845447,0.606515811845447,0.606458400862532,0.606285726523571,0.606033428305627,0.605744168739768,0.605461269348784,0.605229319704995,0.605094280514679,0.605094280514679, +0.729089124339471,0.729089124339471,0.728984872190159,0.728715527062699,0.728346943415628,0.727937001327305,0.727535173579653,0.727193961494012,0.726981286404753,0.726981286404753, +0.861864035652949,0.861864035652949,0.861731430220396,0.861310477684341,0.860782928138206,0.86021986171864,0.859663306131704,0.85915901104583,0.858793248419407,0.858793248419407, + +00:57:29, +0.266928626930899,0.266928626930899,0.266985253719675,0.266993972671181,0.266965863339822,0.266915544998592,0.266859048973059,0.266811427555801,0.266784401514561,0.266784401514561, +0.266928626930899,0.266928626930899,0.266985253719675,0.266993972671181,0.266965863339822,0.266915544998592,0.266859048973059,0.266811427555801,0.266784401514561,0.266784401514561, +0.29092662396298,0.29092662396298,0.290976713107764,0.290975444858806,0.290935037649906,0.29087165504557,0.290803079591511,0.290746114973766,0.290713972309303,0.290713972309303, +0.338386203298829,0.338386203298829,0.338422647015524,0.338400537370909,0.338334451260656,0.338243745730509,0.338149808084401,0.338073104049189,0.338030080574247,0.338030080574247, +0.408170430963588,0.408170430963588,0.408185089412851,0.408129544557854,0.408022185510324,0.40788745224359,0.407752339928441,0.407643168054024,0.407581979932578,0.407581979932578, +0.498443806230928,0.498443806230928,0.498427337608342,0.498323046007589,0.498155336213178,0.497956099413038,0.49775992770647,0.497601391275081,0.497511695264893,0.497511695264893, +0.606581692600782,0.606581692600782,0.606524291421901,0.606351650870683,0.606099403104563,0.605810201831224,0.605527359517709,0.605295456514803,0.605160444320995,0.605160444320995, +0.729135403100676,0.729135403100676,0.729031169010969,0.728761874233568,0.728393360753915,0.727983497329279,0.727581746773901,0.727240599935061,0.727027965163544,0.727027965163544, +0.86188794238351,0.86188794238351,0.86175536080555,0.861334484025492,0.860807030269059,0.8602440666076,0.859687612615674,0.859183409161549,0.85881771240078,0.85881771240078, + +00:57:30, +0.267039108814744,0.267039108814744,0.267095732891863,0.267104456854343,0.267076358218993,0.267026053567761,0.266969571272451,0.266921960848794,0.266894940899206,0.266894940899206, +0.267039108814744,0.267039108814744,0.267095732891863,0.267104456854343,0.267076358218993,0.267026053567761,0.266969571272451,0.266921960848794,0.266894940899206,0.266894940899206, +0.291034598998988,0.291034598998988,0.291084685485357,0.291083423503848,0.29104302912597,0.290979662791915,0.290911103609796,0.290854152016089,0.290822016571967,0.290822016571967, +0.338488878300704,0.338488878300704,0.338525319903789,0.338503219381816,0.338437150632536,0.338346466729862,0.338252550595349,0.338175863770138,0.338132849849598,0.338132849849598, +0.40826455778828,0.40826455778828,0.408279215902577,0.40822368521925,0.408116350917242,0.40798164776593,0.407846565200408,0.40773741714692,0.407676242302581,0.407676242302581, +0.498525716384736,0.498525716384736,0.498509251237735,0.498404981766794,0.498237307530035,0.498038112910539,0.497841982622002,0.497683479529016,0.497593802300643,0.497593802300643, +0.606647557088171,0.606647557088171,0.606590165712565,0.606417558938,0.606165361605299,0.605876218602404,0.605593433344404,0.605361576964376,0.60522659175669,0.60522659175669, +0.729181669247061,0.729181669247061,0.729077453213064,0.728808208768998,0.728439765431784,0.728029980642013,0.727628307250334,0.727287225634227,0.727074631165786,0.727074631165786, +0.861911842205832,0.861911842205832,0.861779284475135,0.861358483426845,0.86083112542852,0.860268264490682,0.859711912059533,0.859207800206557,0.858842169289929,0.858842169289929, + +00:57:31, +0.267149579165029,0.267149579165029,0.267206200525691,0.267214929495537,0.26718684155362,0.267136550590653,0.267080082024471,0.267032482593785,0.267005468735563,0.267005468735563, +0.267149579165029,0.267149579165029,0.267206200525691,0.267214929495537,0.26718684155362,0.267136550590653,0.267080082024471,0.267032482593785,0.267005468735563,0.267005468735563, +0.291142561182875,0.291142561182875,0.291192645007273,0.291191389289687,0.291151007739457,0.29108765767262,0.29101911475988,0.290962176188349,0.290930047963583,0.290930047963583, +0.338591538363924,0.338591538363924,0.338627977851777,0.338605886448739,0.33853983505527,0.338449172774276,0.338355278145857,0.338278608526339,0.338235604157827,0.338235604157827, +0.408358667757174,0.408358667757174,0.40837332553659,0.40831780902022,0.408210499455533,0.408075826409664,0.407940773583902,0.407831649343427,0.407770487771779,0.407770487771779, +0.498607608972273,0.498607608972273,0.498591147301445,0.498486899953237,0.498319261261479,0.498120108807102,0.497924019921115,0.497765550153988,0.497675891700349,0.497675891700349, +0.606713405318379,0.606713405318379,0.606656023745288,0.606483450736291,0.606231303818616,0.605942219064104,0.605659490839682,0.60542768106454,0.605292722832601,0.605292722832601, +0.729227922788022,0.729227922788022,0.729123724805841,0.728854530678399,0.728486157458667,0.728076451274959,0.727674855018429,0.727333838601008,0.727121284420988,0.727121284420988, +0.861935735125374,0.861935735125374,0.861803201234618,0.861382475893888,0.860855213622103,0.860292455373428,0.859736204468851,0.859232184186451,0.858866619092468,0.858866619092468, + +00:57:32, +0.267260037975686,0.267260037975686,0.267316656615098,0.267325390588699,0.267297313337638,0.267247036061195,0.267190581223039,0.267142992784687,0.267115985017541,0.267115985017541, +0.267260037975686,0.267260037975686,0.267316656615098,0.267325390588699,0.267297313337638,0.267247036061195,0.267190581223039,0.267142992784687,0.267115985017541,0.267115985017541, +0.291250510511117,0.291250510511117,0.29130059166999,0.291299342212803,0.291258973486842,0.291195639684155,0.291127113038226,0.291070187487005,0.291038066480606,0.291038066480606, +0.338694183489281,0.338694183489281,0.33873062086028,0.338708538572471,0.338642504529647,0.338551863864539,0.338457990736712,0.338381338318575,0.338338343499717,0.338338343499717, +0.408452760875833,0.408452760875833,0.408467418320447,0.408411915966321,0.408304631130755,0.408169988180355,0.408034965084488,0.407925864649114,0.40786471634574,0.40786471634574, +0.498689484002824,0.498689484002824,0.498673025808755,0.498568800576202,0.498401197416802,0.498202087112025,0.498006039613119,0.497847603159315,0.497757963473333,0.497757963473333, +0.606779237302155,0.606779237302155,0.606721865530817,0.606549326276309,0.606297229755281,0.60600820322711,0.605725532014346,0.605493768826113,0.605358837559552,0.605358837559552, +0.729274163732945,0.729274163732945,0.729169983798686,0.728900839971168,0.728532536843981,0.72812290923756,0.727721390087653,0.727380438844891,0.727167924938651,0.727167924938651, +0.861959621147592,0.861959621147592,0.861827111089458,0.861406461432099,0.860879294855311,0.860316639261372,0.859760489849191,0.85925656110682,0.858891061814004,0.858891061814004, + +00:57:33, +0.267370485240661,0.267370485240661,0.267427101154035,0.26743584012778,0.26740777356499,0.267357509973324,0.267301068862084,0.267253491415424,0.26722648973906,0.26722648973906, +0.267370485240661,0.267370485240661,0.267427101154035,0.26743584012778,0.26740777356499,0.267357509973324,0.267301068862084,0.267253491415424,0.26722648973906,0.26722648973906, +0.291358446980197,0.291358446980197,0.291408525469997,0.291407282269681,0.291366926364608,0.291303608822996,0.291235098441306,0.291178185908523,0.291146072119501,0.291146072119501, +0.338796813677569,0.338796813677569,0.338833248930092,0.338811175753805,0.33874515905646,0.33865454000144,0.3385606883687,0.33848405314763,0.338441067876053,0.338441067876053, +0.40854683714981,0.40854683714981,0.408561494259702,0.408506006063107,0.408398745948463,0.408264133083558,0.408129139707725,0.408020063069543,0.407958928030026,0.407958928030026, +0.498771341485665,0.498771341485665,0.498754886768936,0.498650683644964,0.498483116005284,0.498284047834599,0.498088041707313,0.497929638554303,0.497840017628907,0.497840017628907, +0.606845053050238,0.606845053050238,0.606787691079888,0.606615185568797,0.606363139426048,0.606074171102191,0.605791556879183,0.605559840259897,0.605424935948354,0.605424935948354, +0.729320392091203,0.729320392091203,0.729216230200972,0.728947136656692,0.728578903597132,0.728169354539245,0.72776791246746,0.72742702637535,0.727214552728261,0.727214552728261, +0.861983500277931,0.861983500277931,0.861851014045108,0.861430440046951,0.860903369133644,0.860340816160042,0.859784768206109,0.859280930973247,0.858915497460138,0.858915497460138, + +00:57:34, +0.267480920953909,0.267480920953909,0.267537534136461,0.267546278106741,0.267518222229635,0.267467972320991,0.26741154493555,0.267363978479932,0.267336982894054,0.267336982894054, +0.267480920953909,0.267480920953909,0.267537534136461,0.267546278106741,0.267518222229635,0.267467972320991,0.26741154493555,0.267363978479932,0.267336982894054,0.267336982894054, +0.291466370586609,0.291466370586609,0.291516446403788,0.291515209456818,0.291474866369245,0.291411565085629,0.291343070965599,0.291286171449379,0.29125406487674,0.29125406487674, +0.338899428929586,0.338899428929586,0.338935862062012,0.338913797993538,0.338847798636502,0.338757201185773,0.33866337104261,0.338586753014294,0.338543777287622,0.338543777287622, +0.408640896584656,0.408640896584656,0.408655553359904,0.408600079316126,0.408492843914206,0.408358261124827,0.408223297459168,0.408114244610269,0.408053122830197,0.408053122830197, +0.498853181430062,0.498853181430062,0.49883673019125,0.498732549168787,0.498565017036196,0.498365990984102,0.498170026212985,0.498011656348249,0.497922054176373,0.497922054176373, +0.606910852573354,0.606910852573354,0.606853500403223,0.606681028624484,0.606429032841661,0.606140122700108,0.605857565444969,0.60562589537668,0.605491018009803,0.605491018009803, +0.729366607872156,0.729366607872156,0.729262464022062,0.728993420744345,0.728625257727514,0.728215787189434,0.727814422167292,0.727473601201848,0.727261167799294,0.727261167799294, +0.862007372521832,0.862007372521832,0.861874910107013,0.861454411743909,0.860927436462592,0.860364986074959,0.859809039545156,0.859305293791306,0.858939926036463,0.858939926036463, + +00:57:35, +0.2675913451094,0.2675913451094,0.267647955556352,0.267656704519555,0.267628659325539,0.267578423098156,0.267522009437389,0.267474453972158,0.267447464476466,0.267447464476466, +0.2675913451094,0.2675913451094,0.267647955556352,0.267656704519555,0.267628659325539,0.267578423098156,0.267522009437389,0.267474453972158,0.267447464476466,0.267447464476466, +0.291574281326852,0.291574281326852,0.291624354467867,0.291623123770715,0.291582793497253,0.291519508468549,0.291451030607593,0.291394144106055,0.291362044748804,0.291362044748804, +0.33900202924613,0.33900202924613,0.339038460256838,0.339016405292467,0.338950423270572,0.338859847418329,0.338766038759235,0.338689437919355,0.338646471735211,0.338646471735211, +0.408734939185918,0.408734939185918,0.408749595626594,0.408694135730921,0.408586925033529,0.408452372309707,0.408317438344366,0.408208409276846,0.408147300751805,0.408147300751805, +0.49893500384527,0.49893500384527,0.498918556084948,0.498814397156923,0.498646900518796,0.498447916569804,0.498251993139413,0.498093656550439,0.49800407312502,0.49800407312502, +0.606976635882215,0.606976635882215,0.606919293511531,0.606746855454086,0.606494910012848,0.606206058031604,0.605923557722465,0.60569193418724,0.605557083754686,0.605557083754686, +0.729412811085153,0.729412811085153,0.729308685271306,0.72903969224349,0.728671599244511,0.728262207197532,0.72786091919658,0.727520163333835,0.727307770161212,0.727307770161212, +0.862031237884728,0.862031237884728,0.861898799280612,0.861478376528431,0.860951496847641,0.860389149011634,0.859833303871872,0.859329649566567,0.858964347548566,0.858964347548566, + +00:57:36, +0.267701757701111,0.267701757701111,0.267758365407691,0.267767119360206,0.267739084846685,0.267688862298793,0.267632462361567,0.267584917886062,0.267557934480252,0.267557934480252, +0.267701757701111,0.267701757701111,0.267758365407691,0.267767119360206,0.267739084846685,0.267688862298793,0.267632462361567,0.267584917886062,0.267557934480252,0.267557934480252, +0.291682179197435,0.291682179197435,0.291732249658746,0.291731025207885,0.29169070774514,0.291627438968256,0.291558977363785,0.291502103875043,0.291470011732181,0.291470011732181, +0.339104614628001,0.339104614628001,0.339141043515371,0.339118997651395,0.339053032959466,0.338962478699906,0.338868691519368,0.338792107863605,0.338749151219612,0.338749151219612, +0.408828964959136,0.408828964959136,0.408843621065312,0.408788175313029,0.408680989311971,0.408546466643741,0.408411562368866,0.408302557074822,0.408241461800401,0.408241461800401, +0.499016808740533,0.499016808740533,0.499000364459272,0.498896227618616,0.498728766462335,0.498529824600962,0.498333942495866,0.498175639170149,0.498086074484129,0.498086074484129, +0.607042402987519,0.607042402987519,0.60698507041551,0.606812666068305,0.606560770950324,0.606271977107413,0.605989533722422,0.605757956702339,0.605623133193772,0.605623133193772, +0.729459001739534,0.729459001739534,0.729354893958042,0.729085951163478,0.728717928157492,0.728308614572934,0.727907403564742,0.727566712780751,0.727354359823467,0.727354359823467, +0.862055096372047,0.862055096372047,0.861922681571337,0.861502334405968,0.860975550294267,0.860413304975575,0.859857561191794,0.859353998304589,0.858988762002024,0.858988762002024, + +00:57:37, +0.267812158723034,0.267812158723034,0.267868763684475,0.267877522622691,0.267849498787062,0.267799289916887,0.267742903702063,0.267695370215616,0.267668392899379,0.267668392899379, +0.267812158723034,0.267812158723034,0.267868763684475,0.267877522622691,0.267849498787062,0.267799289916887,0.267742903702063,0.267695370215616,0.267668392899379,0.267668392899379, +0.291790064194874,0.291790064194874,0.291840131972945,0.291838913764846,0.291798609109422,0.291735356581262,0.291666911230678,0.291610050752843,0.291577965823368,0.291577965823368, +0.339207185076003,0.339207185076003,0.339243611838415,0.339221575071121,0.339155627703985,0.339065095031302,0.338971329323805,0.338894762847838,0.338851815741617,0.338851815741617, +0.408922973909847,0.408922973909847,0.408937629681593,0.408882198067986,0.408775036755068,0.408640544132466,0.408505669538206,0.408396688009738,0.408335605981528,0.408335605981528, +0.499098596125085,0.499098596125085,0.499082155323451,0.498978040563098,0.498810614876052,0.498611715086824,0.498415874291601,0.498257604216644,0.498168058262969,0.498168058262969, +0.607108153899953,0.607108153899953,0.607050831125842,0.606878460477831,0.606626615664793,0.606337879938254,0.606055493455576,0.605823962932728,0.605689166337822,0.605689166337822, +0.729505179844623,0.729505179844623,0.729401090091597,0.729132197513647,0.728764244475819,0.728355009325023,0.727953875281185,0.727613249552024,0.727400936795499,0.727400936795499, +0.862078947989206,0.862078947989206,0.861946556984613,0.861526285381965,0.860999596807942,0.860437453972282,0.85988181151045,0.859378340010927,0.859013169402411,0.859013169402411, + +00:57:38, +0.267922548169173,0.267922548169173,0.267979150380712,0.267987914301017,0.267959901140675,0.267909705946434,0.267853333452863,0.267805810954802,0.267778839727829,0.267778839727829, +0.267922548169173,0.267922548169173,0.267979150380712,0.267987914301017,0.267959901140675,0.267909705946434,0.267853333452863,0.267805810954802,0.267778839727829,0.267778839727829, +0.291897936315693,0.291897936315693,0.291948001406991,0.291946789438126,0.29190649758662,0.291843261304084,0.291774832204785,0.291717984735961,0.29168590701887,0.29168590701887, +0.33930974059094,0.33930974059094,0.339346165226774,0.339324137552452,0.339258207504932,0.339167696413317,0.339073952173342,0.33899740287285,0.338954465302021,0.338954465302021, +0.409016966043581,0.409016966043581,0.409031621480964,0.408976204001319,0.40886906736835,0.408734604781416,0.408599759857923,0.408490802087133,0.408429733300725,0.408429733300725, +0.499180366008151,0.499180366008151,0.499163928686706,0.499059835999592,0.498892445769175,0.498693588036629,0.498497788535865,0.498339551699179,0.498250024470802,0.498250024470802, +0.60717388863019,0.60717388863019,0.607116575653198,0.606944238693342,0.606692444166944,0.606403766534832,0.606121436932649,0.605889952889144,0.605755183197579,0.605755183197579, +0.729551345409736,0.729551345409736,0.729447273681287,0.729178431303326,0.728810548208837,0.72840139146317,0.728000334355305,0.727659773657067,0.727447501086736,0.727447501086736, +0.862102792741619,0.862102792741619,0.861970425525857,0.861550229461859,0.861023636394128,0.860461596007245,0.85990605483336,0.859402674691128,0.859037569755292,0.859037569755292, + +00:57:39, +0.268032926033541,0.268032926033541,0.268089525490423,0.268098294389205,0.268070291901538,0.268020110381441,0.267963751607971,0.267916240097614,0.26788927495959,0.26788927495959, +0.268032926033541,0.268032926033541,0.268089525490423,0.268098294389205,0.268070291901538,0.268020110381441,0.267963751607971,0.267916240097614,0.26788927495959,0.26788927495959, +0.292005795556425,0.292005795556425,0.292055857957422,0.292054652224259,0.292014373173268,0.291951153133248,0.291882740282627,0.291825905820915,0.2917938353152,0.2917938353152, +0.339412281173619,0.339412281173619,0.339448703681257,0.339426685096193,0.339360772363111,0.339270282846752,0.339176560068781,0.339100027939439,0.339057099901622,0.339057099901622, +0.409110941365866,0.409110941365866,0.40912559646895,0.409070193118553,0.408963081157342,0.408828648596118,0.408693833333547,0.40858489931254,0.408523843763528,0.408523843763528, +0.499262118398944,0.499262118398944,0.499245684558246,0.499141613937309,0.498974259150923,0.498775443459603,0.498579685237894,0.498421481626999,0.498331973116875,0.498331973116875, +0.607239607188891,0.607239607188891,0.607182304008236,0.607010000725501,0.606758256467454,0.606469636907843,0.606187364164352,0.605955926582313,0.605821183783778,0.605821183783778, +0.729597498444174,0.729597498444174,0.729493444736414,0.72922465254183,0.728856839365883,0.728447760996736,0.728046780796485,0.727706285105286,0.727494052706593,0.727494052706593, +0.862126630634692,0.862126630634692,0.86199428720048,0.861574166651081,0.861047669058282,0.860485731085951,0.859930291166038,0.859427002350731,0.859061963066223,0.859061963066223, + +00:57:40, +0.268143292310165,0.268143292310165,0.268199889007637,0.268208662881284,0.268180671063679,0.26813050321593,0.268074158161396,0.268026657638058,0.267999698588666,0.267999698588666, +0.268143292310165,0.268143292310165,0.268199889007637,0.268208662881284,0.268180671063679,0.26813050321593,0.268074158161396,0.268026657638058,0.267999698588666,0.267999698588666, +0.292113641913611,0.292113641913611,0.29216370162078,0.29216250211979,0.292122235865905,0.292059032065288,0.291990635460731,0.291933814004227,0.29190175070888,0.29190175070888, +0.339514806824849,0.339514806824849,0.339551227202672,0.339529217703152,0.339463322279329,0.339372854332412,0.339279153010923,0.339202638048405,0.339159719541218,0.339159719541218, +0.409204899882223,0.409204899882223,0.409219554651071,0.409164165425207,0.409057078127565,0.408922675582096,0.408787889970605,0.408678979691487,0.408617937375465,0.408617937375465, +0.499343853306666,0.499343853306666,0.499327422947272,0.499223374385451,0.499056055030504,0.498857281364965,0.498661564406915,0.498503394009338,0.498413904210427,0.498413904210427, +0.607305309586704,0.607305309586704,0.607248016201601,0.60707574658496,0.606824052576989,0.606535491067965,0.606253275161382,0.606021884022944,0.605887168107138,0.605887168107138, +0.72964363895723,0.72964363895723,0.729539603266271,0.729270861238465,0.728903117956281,0.728494117935067,0.728093214614096,0.727752783906073,0.727540591664476,0.727540591664476, +0.862150461673823,0.862150461673823,0.862018142013888,0.861598096955054,0.861071694805854,0.860509859213878,0.859954520513993,0.859451322995269,0.859086349340756,0.859086349340756, + +00:57:41, +0.268253646993082,0.268253646993082,0.268310240926398,0.268319019771298,0.268291038621134,0.26824088444393,0.268184553107164,0.268137063570152,0.268110110609071,0.268110110609071, +0.268253646993082,0.268253646993082,0.268310240926398,0.268319019771298,0.268291038621134,0.26824088444393,0.268184553107164,0.268137063570152,0.268110110609071,0.268110110609071, +0.2922214753838,0.2922214753838,0.292271532393618,0.29227033912127,0.292230085661079,0.292166898096748,0.292098517735635,0.292041709282429,0.292009653196438,0.292009653196438, +0.33961731754544,0.33961731754544,0.33965373579183,0.339631735374141,0.339565857254394,0.339475410871103,0.339381731000571,0.33930523320055,0.339262324221611,0.339262324221611, +0.409298841598169,0.409298841598169,0.409313496032841,0.409258120926795,0.409151058284535,0.409016685744868,0.408881929774618,0.408773043229499,0.408712014142063,0.408712014142063, +0.499425570740512,0.499425570740512,0.499409143862972,0.49930511735321,0.499137833417115,0.498939101761919,0.498743426052145,0.49858528885542,0.498495817760688,0.498495817760688, +0.607370995834262,0.607370995834262,0.607313712243925,0.607141476282358,0.606889832506198,0.606601329025868,0.606319169934424,0.606087825221737,0.605953136178364,0.605953136178364, +0.729689766958182,0.729689766958182,0.729585749280138,0.729317057402521,0.728949383989344,0.728540462287501,0.728139635817499,0.727799270068806,0.727587117969777,0.727587117969777, +0.862174285864404,0.862174285864404,0.862041989971476,0.861622020379195,0.861095713642287,0.860533980396498,0.859978742882724,0.859475636630268,0.859110728584435,0.859110728584435, + +00:57:42, +0.26836399007634,0.26836399007634,0.268420581240761,0.268429365053301,0.268401394567954,0.268351254059484,0.268294936439309,0.268247457887926,0.268220511014831,0.268220511014831, +0.26836399007634,0.26836399007634,0.268420581240761,0.268429365053301,0.268401394567954,0.268351254059484,0.268294936439309,0.268247457887926,0.268220511014831,0.268220511014831, +0.292329295963547,0.292329295963547,0.292379350272497,0.292378163225259,0.292337922555345,0.292274751224176,0.292206387103884,0.292149591652062,0.292117542774412,0.292117542774412, +0.339719813336205,0.339719813336205,0.339756229449545,0.339734238109971,0.339668377289117,0.339577952463633,0.339484294038533,0.339407813396678,0.339364913943603,0.339364913943603, +0.409392766519217,0.409392766519217,0.40940742061977,0.409352059628827,0.409245021633764,0.409110679089947,0.408975952751101,0.408867089932094,0.408806074068842,0.408806074068842, +0.499507270709664,0.499507270709664,0.499490847314525,0.499386842849766,0.499219594319945,0.499020904659664,0.498825270182789,0.498667166174459,0.498577713776875,0.498577713776875, +0.607436665942188,0.607436665942188,0.607379392145826,0.607207189828318,0.60695559626572,0.606667150792205,0.60638504849415,0.606153750189377,0.606019088008152,0.606019088008152, +0.729735882456298,0.729735882456298,0.729631882787284,0.72936324104328,0.728995637474372,0.728586794063361,0.728186044416042,0.727845743602855,0.727633631631876,0.727633631631876, +0.86219810321182,0.86219810321182,0.862065831078636,0.861645936928914,0.861119725573016,0.860558094639274,0.860002958277723,0.859499943261248,0.859135100802796,0.859135100802796, + +00:57:43, +0.268474321554002,0.268474321554002,0.268530909944791,0.268539698721358,0.2685117388982,0.268461612056648,0.268405308151878,0.26835784058542,0.268330899799983,0.268330899799983, +0.268474321554002,0.268474321554002,0.268530909944791,0.268539698721358,0.2685117388982,0.268461612056648,0.268405308151878,0.26835784058542,0.268330899799983,0.268330899799983, +0.292437103649418,0.292437103649418,0.292487155253983,0.292485974428323,0.292445746545268,0.292382591444133,0.292314243562029,0.292257461109674,0.292225419439348,0.292225419439348, +0.33982229419796,0.33982229419796,0.339858708176633,0.339836725911458,0.339770882384311,0.339680479110813,0.339586842125615,0.339510378637596,0.339467488708,0.339467488708, +0.409486674650875,0.409486674650875,0.409501328417363,0.409445981536809,0.409338968180758,0.409204655622843,0.409069958905568,0.408961119804787,0.408900117161317,0.408900117161317, +0.499588953223294,0.499588953223294,0.4995725333111,0.499468550884291,0.49930133774817,0.499102690067384,0.498907096808042,0.498749025975659,0.498659592268197,0.498659592268197, +0.60750231992109,0.60750231992109,0.607445055917912,0.607272887233455,0.607021343866182,0.606732956377619,0.606450910851218,0.606219658936537,0.606085023607182,0.606085023607182, +0.729781985460835,0.729781985460835,0.729678003796966,0.729409412170013,0.729041878420654,0.72863311327196,0.728232440419061,0.727892204517578,0.727680132660143,0.727680132660143, +0.862221913721449,0.862221913721449,0.862089665340752,0.861669846609614,0.86114373060347,0.860582201947665,0.860027166704478,0.859524242893719,0.859159466001369,0.859159466001369, + +00:57:44, +0.268584641420138,0.268584641420138,0.268641227032566,0.268650020769546,0.268622071605944,0.268571958429486,0.268515668238931,0.268468211656687,0.268441276958577,0.268441276958577, +0.268584641420138,0.268584641420138,0.268641227032566,0.268650020769546,0.268622071605944,0.268571958429486,0.268515668238931,0.268468211656687,0.268441276958577,0.268441276958577, +0.292544898437985,0.292544898437985,0.292594947334654,0.292593772727039,0.292553557627419,0.292490418753184,0.292422087106632,0.29236531765182,0.292333283187799,0.292333283187799, +0.33992476013152,0.33992476013152,0.33996117197391,0.339939198779416,0.339873372540789,0.339782990813455,0.339689375262628,0.339612928924111,0.339570048515609,0.339570048515609, +0.409580565998644,0.409580565998644,0.409595219431122,0.40953988665624,0.409432897931018,0.40929861534906,0.409163948243524,0.409055132853086,0.408994143424999,0.408994143424999, +0.499670618290564,0.499670618290564,0.499654201861856,0.499550241465945,0.499383063710958,0.499184457994257,0.498988905937091,0.498830868268212,0.49874145324385,0.49874145324385, +0.607567957781566,0.607567957781566,0.607510703570775,0.607338568508369,0.607087075318195,0.606798745792738,0.606516757016274,0.606285551473876,0.606150942986122,0.606150942986122, +0.729828075981037,0.729828075981037,0.729724112318429,0.729455570791975,0.729088106837469,0.7286794199226,0.728278823835881,0.727938652822317,0.727726621063936,0.727726621063936, +0.862245717398664,0.862245717398664,0.862113492763199,0.861693749426691,0.861167728739071,0.860606302327121,0.860051368168467,0.859548535533186,0.859183824185676,0.859183824185676, + +00:57:45, +0.268694949668833,0.268694949668833,0.268751532498174,0.268760331191955,0.268732392685272,0.268682293172076,0.268626016694536,0.26857857109579,0.268551642484672,0.268551642484672, +0.268694949668833,0.268694949668833,0.268751532498174,0.268760331191955,0.268732392685272,0.268682293172076,0.268626016694536,0.26857857109579,0.268551642484672,0.268551642484672, +0.29265268032583,0.29265268032583,0.292702726511093,0.29270155811799,0.292661355798378,0.292598233147903,0.292529917734261,0.292473161275066,0.292441134016326,0.292441134016326, +0.340027211137705,0.340027211137705,0.340063620842196,0.340041656714666,0.33997584775937,0.339885487572374,0.339791893450383,0.339715464257034,0.33967259336724,0.33967259336724, +0.409674440568023,0.409674440568023,0.409689093666541,0.409633774992617,0.409526810890041,0.409392558274097,0.409257920770473,0.409149129082497,0.409088152865395,0.409088152865395, +0.499752265920626,0.499752265920626,0.49973585297594,0.499631914603877,0.499464772217465,0.499266208449447,0.49907069757911,0.498912693061301,0.498823296713023,0.498823296713023, +0.607633579534197,0.607633579534197,0.607576335114997,0.607404233663645,0.60715279063236,0.60686451904818,0.606582586999951,0.606351427812043,0.606216846155627,0.606216846155627, +0.729874154026138,0.729874154026138,0.729770208360907,0.729501716918415,0.729134322734082,0.728725714024571,0.728325194675816,0.727985088526409,0.727773096852599,0.727773096852599, +0.862269514248827,0.862269514248827,0.862137313351348,0.861717645385534,0.861191719985234,0.860630395783086,0.860075562675163,0.859572821185148,0.859208175361233,0.859208175361233, + +00:57:46, +0.268805246294181,0.268805246294181,0.268861826335716,0.268870629982683,0.268842702130278,0.268792616278507,0.268736353512776,0.268688918896805,0.268661996372342,0.268661996372342, +0.268805246294181,0.268805246294181,0.268861826335716,0.268870629982683,0.268842702130278,0.268792616278507,0.268736353512776,0.268688918896805,0.268661996372342,0.268661996372342, +0.292760449309541,0.292760449309541,0.292810492779893,0.292809330597767,0.292769141054734,0.292706034624874,0.292637735441494,0.292580991975982,0.2925489719215,0.2925489719215, +0.340129647217336,0.340129647217336,0.340166054782311,0.340144099718027,0.340078308040871,0.339987969388385,0.339894396689696,0.339817984637177,0.339775123263704,0.339775123263704, +0.409768298364505,0.409768298364505,0.409782951129111,0.409727646551429,0.409620707063321,0.40948648440345,0.409351876491912,0.40924310849852,0.409182145488006,0.409182145488006, +0.499833896122622,0.499833896122622,0.49981748666249,0.499713570307229,0.499546463276837,0.49934794144211,0.499152471743263,0.4989945003641,0.498905122684893,0.498905122684893, +0.607699185189555,0.607699185189555,0.607641950561145,0.607469882709859,0.607218489819263,0.606930276154547,0.60664840081287,0.60641728796167,0.60628273312634,0.60628273312634, +0.729920219605359,0.729920219605359,0.729816291933623,0.729547850558565,0.729180526119748,0.728771995587149,0.728371552948168,0.728031511639173,0.727819560035467,0.727819560035467, +0.862293304277298,0.862293304277298,0.862161127110563,0.861741534491527,0.861215704347368,0.860654482320996,0.86009975023003,0.859597099855094,0.859232519533549,0.859232519533549, + +00:57:47, +0.268915531290289,0.268915531290289,0.268972108539303,0.268980917135843,0.268952999935069,0.26890292774288,0.268846678687743,0.268799255053819,0.268772338615668,0.268772338615668, +0.268915531290289,0.268915531290289,0.268972108539303,0.268980917135843,0.268952999935069,0.26890292774288,0.268846678687743,0.268799255053819,0.268772338615668,0.268772338615668, +0.292868205385714,0.292868205385714,0.292918246137654,0.292917090162971,0.292876913393081,0.292813823180687,0.292745540224915,0.29268880975115,0.292656796899898,0.292656796899898, +0.340232068371235,0.340232068371235,0.340268473795081,0.340246527790322,0.340180753386113,0.340090436262307,0.339996884981382,0.339920490065355,0.339877638205813,0.339877638205813, +0.409862139393579,0.409862139393579,0.409876791824319,0.409821501338162,0.409714586456343,0.409580393742607,0.409445815413334,0.40933707110665,0.409276121298329,0.409276121298329, +0.499915508905682,0.499915508905682,0.499899102930635,0.49979520858513,0.499628136898212,0.499429656981392,0.499234228438706,0.49907629018577,0.498986931168627,0.498986931168627, +0.607764774758198,0.607764774758198,0.607707549919774,0.607535515657572,0.607284172889479,0.60699601712243,0.606714198465637,0.60648313193338,0.606348603908889,0.606348603908889, +0.72996627272791,0.72996627272791,0.729862363045788,0.72959397172165,0.72922671700371,0.728818264619602,0.728417898662226,0.72807792216992,0.727866010621863,0.727866010621863, +0.862317087489427,0.862317087489427,0.862184934046198,0.861765416750043,0.861239681830874,0.860678561946281,0.860123930838528,0.859621371548509,0.859256856708126,0.859256856708126, + +00:57:48, +0.269025804651275,0.269025804651275,0.26908237910306,0.269091192645559,0.269063286093765,0.269013227559306,0.268956992213543,0.26890957956093,0.268882669208748,0.268882669208748, +0.269025804651275,0.269025804651275,0.26908237910306,0.269091192645559,0.269063286093765,0.269013227559306,0.268956992213543,0.26890957956093,0.268882669208748,0.268882669208748, +0.292975948550954,0.292975948550954,0.293025986580983,0.293024836810208,0.292984672810025,0.29292159881194,0.292853332081118,0.292796614597158,0.292764608948106,0.292764608948106, +0.340334474600227,0.340334474600227,0.340370877881328,0.340348940932375,0.340283183795918,0.340192888194961,0.340099358326259,0.340022980542384,0.339980138194384,0.339980138194384, +0.409955963660729,0.409955963660729,0.409970615757647,0.4099153393583,0.409808449074592,0.409674286297055,0.409539737540227,0.409431016912378,0.409370080301856,0.409370080301856, +0.49999710427893,0.49999710427893,0.499980701789492,0.4998768294467,0.499709793090715,0.499511355076427,0.499315967674583,0.499158062535465,0.499068722173381,0.499068722173381, +0.60783034825067,0.60783034825067,0.607773133201427,0.607601132517333,0.60734983985357,0.607061741962408,0.606779979968847,0.606548959737781,0.606414458513892,0.606414458513892, +0.73001231340299,0.73001231340299,0.7299084217066,0.729640080416882,0.729272895395199,0.728864521131184,0.728464231827269,0.728124320127949,0.727912448621098,0.727912448621098, +0.862340863890559,0.862340863890559,0.862208734163605,0.861789292166453,0.861263652441146,0.860702634664364,0.860148104506108,0.85964563627087,0.859281186890457,0.859281186890457, + +00:57:49, +0.269136066371269,0.269136066371269,0.26919263802112,0.269201456505963,0.269173560600496,0.269123515721908,0.26906729408429,0.269019892412249,0.268992988145686,0.268992988145686, +0.269136066371269,0.269136066371269,0.26919263802112,0.269201456505963,0.269173560600496,0.269123515721908,0.26906729408429,0.269019892412249,0.268992988145686,0.268992988145686, +0.293083678801874,0.293083678801874,0.293133714106497,0.293132570536094,0.293092419302176,0.29302936151524,0.292961111006702,0.292904406510602,0.292872408062717,0.292872408062717, +0.340436865905139,0.340436865905139,0.340473267041882,0.340451339145013,0.340385599271113,0.340295325187169,0.340201816725148,0.340125456069082,0.340082623230235,0.340082623230235, +0.410049771171433,0.410049771171433,0.41006442293457,0.410009160617317,0.409902294923546,0.409768162072274,0.409633642878074,0.40952494592119,0.409464022504074,0.409464022504074, +0.500078682251474,0.500078682251474,0.500062283248167,0.499958432901049,0.499791431863462,0.49959303573634,0.499397689460028,0.499239817422324,0.499150495708302,0.499150495708302, +0.607895905677505,0.607895905677505,0.607838700416633,0.607666733299678,0.607415490722085,0.607127450685044,0.606845745333082,0.606614771385468,0.606480296951952,0.606480296951952, +0.730058341639786,0.730058341639786,0.729954467925249,0.729686176653459,0.729319061303434,0.728910765131139,0.728510552452563,0.728170705522547,0.72795887404247,0.72795887404247, +0.86236463348603,0.86236463348603,0.862232527468125,0.861813160746117,0.861287616183572,0.860726700480662,0.860172271238214,0.859669894027646,0.859305510086032,0.859305510086032, + +00:57:50, +0.269246316444411,0.269246316444411,0.269302885287629,0.269311708711202,0.269283823449402,0.269233792224821,0.269177584294113,0.269130193601897,0.269103295420602,0.269103295420602, +0.269246316444411,0.269246316444411,0.269302885287629,0.269311708711202,0.269283823449402,0.269233792224821,0.269177584294113,0.269130193601897,0.269103295420602,0.269103295420602, +0.293191396135094,0.293191396135094,0.29324142871082,0.293240291337252,0.293200152866155,0.293137111287201,0.293068876998278,0.293012185488086,0.292980194240334,0.292980194240334, +0.3405392422868,0.3405392422868,0.340575641277571,0.340553722429064,0.340487999812522,0.340397747239755,0.34030426017887,0.34022791664627,0.340185093314184,0.340185093314184, +0.410143561931166,0.410143561931166,0.410158213360561,0.410102965120685,0.409996124008676,0.40986202107374,0.409727531432354,0.409618858138566,0.409557947910466,0.409557947910466, +0.500160242832416,0.500160242832416,0.500143847315759,0.500040018957274,0.499873053225559,0.499674698970245,0.499479393804165,0.499321554855482,0.499232251782527,0.499232251782527, +0.60796144704922,0.60796144704922,0.607904251575911,0.60773231801513,0.607481125505559,0.607193143300892,0.606911494568911,0.606680566887024,0.606546119233661,0.606546119233661, +0.730104357447473,0.730104357447473,0.730000501710909,0.729732260440571,0.729365214737625,0.728956996628698,0.728556860547365,0.728217078362989,0.728005286895267,0.728005286895267, +0.862388396281171,0.862388396281171,0.862256313965094,0.861837022494392,0.861311573063533,0.860750759400584,0.860196431040283,0.859694144824301,0.859329826300329,0.859329826300329, + +00:57:51, +0.269356554864853,0.269356554864853,0.269413120896746,0.269421949255434,0.269394074634637,0.269344057062192,0.269287862837151,0.269240483124007,0.269213591027625,0.269213591027625, +0.269356554864853,0.269356554864853,0.269413120896746,0.269421949255434,0.269394074634637,0.269344057062192,0.269287862837151,0.269240483124007,0.269213591027625,0.269213591027625, +0.293299100547242,0.293299100547242,0.293349130390583,0.293347999210314,0.293307873498588,0.293244848124447,0.293176630052461,0.293119951526222,0.293087967477565,0.293087967477565, +0.340641603746041,0.340641603746041,0.340678000589227,0.340656090785359,0.340590385420976,0.340500154353545,0.34040668868825,0.34033036227477,0.340287548447053,0.340287548447053, +0.410237335945398,0.410237335945398,0.410251987041088,0.410196752873873,0.410089936335454,0.409955863306925,0.409821403208542,0.409712753569984,0.40965185652651,0.40965185652651, +0.500241786030847,0.500241786030847,0.500225394001354,0.500121587624467,0.499954657186101,0.499756344787248,0.499561080716108,0.499403274844059,0.499313990405181,0.499313990405181, +0.608026972376324,0.608026972376324,0.607969786689762,0.607797886674199,0.607546744214516,0.607258819820492,0.606977227686891,0.606746346253021,0.606611925369597,0.606611925369597, +0.730150360835215,0.730150360835215,0.730046523072747,0.729778331787395,0.729411355706968,0.729003215633082,0.728603156120918,0.728263438658538,0.728051687188765,0.728051687188765, +0.862412152281306,0.862412152281306,0.862280093659842,0.861860877416625,0.861335523086402,0.860774811429531,0.860220583917747,0.85971838866629,0.859354135538824,0.859354135538824, + +00:57:52, +0.269466781626759,0.269466781626759,0.269523344842638,0.269532178132827,0.269504314150366,0.269454310228178,0.269398129707553,0.269350760972723,0.269323874960896,0.269323874960896, +0.269466781626759,0.269466781626759,0.269523344842638,0.269532178132827,0.269504314150366,0.269454310228178,0.269398129707553,0.269350760972723,0.269323874960896,0.269323874960896, +0.293406792034956,0.293406792034956,0.293456819142427,0.293455694151919,0.293415581196113,0.293352572023606,0.293284370165877,0.293227704621631,0.293195727771029,0.293195727771029, +0.340743950283694,0.340743950283694,0.340780344977682,0.34075844421473,0.340692756097304,0.34060254652937,0.340509102254114,0.340432792955407,0.340389988629666,0.340389988629666, +0.410331093219593,0.410331093219593,0.410345743981613,0.410290523882342,0.410183731909341,0.410049688777294,0.409915258212106,0.409806632220916,0.409745748357679,0.409745748357679, +0.500323311855848,0.500323311855848,0.500306923314029,0.500203138911705,0.500036243754174,0.499837973196443,0.499642750204961,0.499484977397167,0.499395711585381,0.499395711585381, +0.608092481669311,0.608092481669311,0.608035305768681,0.607863439287385,0.607612346859467,0.607324480254369,0.607042944697564,0.606812109494014,0.606677715370325,0.606677715370325, +0.730196351812166,0.730196351812166,0.730092532019916,0.729824390703097,0.729457484220648,0.729049422153499,0.728649439182453,0.728309786418448,0.728098074932228,0.728098074932228, +0.862435901491753,0.862435901491753,0.862303866557691,0.861884725518158,0.861359466257548,0.8607988565729,0.860244729876029,0.859742625559063,0.859378437806982,0.859378437806982, + +00:57:53, +0.269576996724305,0.269576996724305,0.269633557119487,0.26964239533756,0.269614541990763,0.269564551716947,0.269508384899482,0.269461027142201,0.269434147214567,0.269434147214567, +0.269576996724305,0.269576996724305,0.269633557119487,0.26964239533756,0.269614541990763,0.269564551716947,0.269508384899482,0.269461027142201,0.269434147214567,0.269434147214567, +0.293514470594879,0.293514470594879,0.293564494962998,0.293563376158713,0.293523275955372,0.293460282981317,0.293392097335159,0.293335444770942,0.293303475117351,0.293303475117351, +0.340846281900593,0.340846281900593,0.340882674443772,0.340860782718011,0.340795111842339,0.340704923768057,0.340611500877291,0.340535208689008,0.340492413862849,0.340492413862849, +0.410424833759212,0.410424833759212,0.410439484187593,0.41038427815155,0.410277510735799,0.41014349749031,0.410009096448512,0.409900494096827,0.409839623409443,0.409839623409443, +0.500404820316488,0.500404820316488,0.500388435262851,0.500284672828057,0.500117812938853,0.499919584206913,0.499724402279816,0.499566662523906,0.499477415332232,0.499477415332232, +0.608157974938662,0.608157974938662,0.608100808823144,0.607928975865171,0.60767793345091,0.60739012461304,0.607108645611463,0.606877856620549,0.606743489246399,0.606743489246399, +0.730242330387467,0.730242330387467,0.730138528561557,0.729870437196831,0.72950360028784,0.729095616199147,0.728695709741193,0.728356121651958,0.72814445013491,0.72814445013491, +0.86245964391782,0.86245964391782,0.862327632663957,0.861908566804326,0.861383402582329,0.860822894836078,0.860268868920546,0.859766855508062,0.859402733110265,0.859402733110265, + +00:57:54, +0.269687200151676,0.269687200151676,0.269743757721483,0.269752600863826,0.269724758150016,0.269674781522681,0.26961862840711,0.269571281626608,0.269544407782802,0.269544407782802, +0.269687200151676,0.269687200151676,0.269743757721483,0.269752600863826,0.269724758150016,0.269674781522681,0.26961862840711,0.269571281626608,0.269544407782802,0.269544407782802, +0.293622136223664,0.293622136223664,0.293672157848954,0.293671045227353,0.293630957773017,0.293567980994227,0.293499811556946,0.293443171970789,0.293411209513164,0.293411209513164, +0.340948598597577,0.340948598597577,0.340984988988334,0.340963106296039,0.340897452656916,0.340807286070441,0.34071388455861,0.3406376094764,0.340594824147428,0.340594824147428, +0.410518557569711,0.410518557569711,0.410533207664483,0.41047801568695,0.410371272820281,0.41023728945143,0.410102917923219,0.409994339203182,0.409933481687264,0.409933481687264, +0.500486311421827,0.500486311421827,0.500469929856876,0.500366189382583,0.500199364749204,0.500001177827733,0.499806036949758,0.49964833023337,0.49955910165483,0.49955910165483, +0.608223452194845,0.608223452194845,0.608166295863619,0.607994496418031,0.60774350399933,0.607455752907004,0.607174330439104,0.606943587643159,0.606809247008357,0.606809247008357, +0.730288296570247,0.730288296570247,0.730184512706801,0.72991647127774,0.729549703917705,0.729141797779211,0.728741967806345,0.728402444368298,0.728190812806052,0.728190812806052, +0.862483379564813,0.862483379564813,0.862351391983948,0.861932401280457,0.861407332066101,0.860846926224449,0.860293001056708,0.859791078518722,0.859427021454124,0.859427021454124, + +00:57:55, +0.26979739190307,0.26979739190307,0.26985394664283,0.269862794705827,0.269834962622324,0.269784999639571,0.269728860224623,0.269681524420124,0.269654656659777,0.269654656659777, +0.26979739190307,0.26979739190307,0.26985394664283,0.269862794705827,0.269834962622324,0.269784999639571,0.269728860224623,0.269681524420124,0.269654656659777,0.269654656659777, +0.29372978891797,0.29372978891797,0.293779807796956,0.2937787013545,0.293738626645707,0.29367566605899,0.293607512827887,0.293550886217817,0.293518930955111,0.293518930955111, +0.341050900375482,0.341050900375482,0.341087288612208,0.341065414949653,0.340999778541872,0.340909633437355,0.340816253298904,0.340739995318415,0.340697219484234,0.340697219484234, +0.410612264656539,0.410612264656539,0.41062691441773,0.410571736493992,0.410465018168237,0.410331064666106,0.410196722641683,0.410088167545438,0.410027323196602,0.410027323196602, +0.500567785180916,0.500567785180916,0.500551407105152,0.500447688584331,0.500280899194281,0.500082754067967,0.49988765422386,0.499729980534637,0.499640770562261,0.499640770562261, +0.608288913448318,0.608288913448318,0.60823176690056,0.608060000956425,0.6078090585152,0.607521365146751,0.607239999190994,0.607009302572362,0.606874988666729,0.606874988666729, +0.730334250369625,0.730334250369625,0.730230484464769,0.729962492954954,0.729595795119395,0.729187966902866,0.728788213387108,0.728448754576685,0.728237162954883,0.728237162954883, +0.862507108438028,0.862507108438028,0.862375144522967,0.861956228951872,0.861431254714208,0.860870950743386,0.860317126289919,0.859815294596472,0.859451302844006,0.859451302844006, + +00:57:56, +0.269907571972695,0.269907571972695,0.269964123877741,0.269972976857777,0.269945155401895,0.26989520606182,0.269839080346216,0.269791755516936,0.269764893839677,0.269764893839677, +0.269907571972695,0.269907571972695,0.269964123877741,0.269972976857777,0.269945155401895,0.26989520606182,0.269839080346216,0.269791755516936,0.269764893839677,0.269764893839677, +0.293837428674466,0.293837428674466,0.293887444803676,0.293886344536827,0.29384628257011,0.293783338172268,0.29371520114464,0.293658587508679,0.293626639439841,0.293626639439841, +0.341153187235151,0.341153187235151,0.341189573316233,0.341167708679693,0.341102089498045,0.341011965869637,0.340918607099007,0.340842366215885,0.340799599874098,0.340799599874098, +0.410705955025144,0.410705955025144,0.410720604452779,0.410665440578117,0.410558746785112,0.410424823139786,0.410290510609355,0.410181979129048,0.410121147942913,0.410121147942913, +0.500649241602796,0.500649241602796,0.500632867016713,0.500529170442339,0.500362416283129,0.500164312936668,0.499969254111184,0.49981161343678,0.499722422063599,0.499722422063599, +0.608354358709525,0.608354358709525,0.608297221944407,0.6081254894908,0.60787459700898,0.607586961342758,0.607305651877626,0.607075001418665,0.606940714232028,0.606940714232028, +0.730380191794707,0.730380191794707,0.730276443844566,0.730008502237595,0.72964187390205,0.729234123579274,0.728834446492668,0.728495052286326,0.728283500590623,0.728283500590623, +0.862530830542755,0.862530830542755,0.862398890286309,0.861980049823886,0.861455170531993,0.860894968398258,0.860341244625575,0.859839503746733,0.859475577285351,0.859475577285351, + +00:57:57, +0.270017740354774,0.270017740354774,0.270074289420443,0.270083147313902,0.270055336482952,0.270005400783642,0.269949288766096,0.269901974911248,0.269875119316702,0.269875119316702, +0.270017740354774,0.270017740354774,0.270074289420443,0.270083147313902,0.270055336482952,0.270005400783642,0.269949288766096,0.269901974911248,0.269875119316702,0.269875119316702, +0.293945055489827,0.293945055489827,0.293995068865795,0.29399397477101,0.2939539255429,0.29389099733073,0.293822876503868,0.293766275840033,0.293734334964011,0.293734334964011, +0.341255459177424,0.341255459177424,0.341291843101255,0.341269987487,0.341204385526275,0.341114283368124,0.341020945959755,0.340944722169644,0.340901965317855,0.340901965317855, +0.410799628680966,0.410799628680966,0.410814277775069,0.410759127944766,0.410652458676348,0.410518564877913,0.41038428183168,0.410275773959461,0.410214955931644,0.410214955931644, +0.500730680696494,0.500730680696494,0.500714309600587,0.500610634965637,0.500443916024784,0.500245854442881,0.500050836620785,0.49989322894886,0.499804056167912,0.499804056167912, +0.608419787988895,0.608419787988895,0.608362661005589,0.608190962031591,0.607940119491118,0.607652541505488,0.60737128850948,0.607140684192562,0.607006423714758,0.607006423714758, +0.73042612085459,0.73042612085459,0.730322390855291,0.73005449913477,0.729687940274797,0.729280267817587,0.7288806671322,0.728541337506416,0.728329825722476,0.728329825722476, +0.862554545884277,0.862554545884277,0.862422629279263,0.862003863901805,0.861479079524787,0.860918979194427,0.860365356069065,0.859863705974919,0.859499844783589,0.859499844783589, + +00:57:58, +0.270127897043536,0.270127897043536,0.270184443265172,0.270193306068437,0.270165505859725,0.270115583799263,0.270059485478481,0.270012182597271,0.26998533308506,0.26998533308506, +0.270127897043536,0.270127897043536,0.270184443265172,0.270193306068437,0.270165505859725,0.270115583799263,0.270059485478481,0.270012182597271,0.26998533308506,0.26998533308506, +0.294052669360737,0.294052669360737,0.294102679979997,0.294101592053737,0.294061555560761,0.293998643531055,0.293930538902244,0.293873951208548,0.293842017524286,0.293842017524286, +0.341357716203148,0.341357716203148,0.341394097968116,0.341372251372419,0.341306666627406,0.341216585933656,0.341123269881987,0.34104706318053,0.341004315816338,0.341004315816338, +0.410893285629443,0.410893285629443,0.410907934390034,0.410852798599374,0.41074615384738,0.410612289885926,0.410478036314099,0.41036955204212,0.410308747168244,0.410308747168244, +0.500812102471033,0.500812102471033,0.50079573486579,0.500692082163241,0.500525398428269,0.500327378595638,0.500132401761704,0.499974827079926,0.499885672884253,0.499885672884253, +0.608485201296848,0.608485201296848,0.608428084094521,0.60825641858922,0.608005625972048,0.607718105645393,0.607436909097023,0.607206350904535,0.607072117125406,0.607072117125406, +0.730472037558358,0.730472037558358,0.730368325506028,0.730100483655578,0.729733994246753,0.729326399626945,0.728926875314867,0.728587610246137,0.72837613835964,0.72837613835964, +0.862578254467871,0.862578254467871,0.86244636150711,0.862027671190932,0.861502981697918,0.860942983137247,0.860389460625771,0.85988790128644,0.859524105344147,0.859524105344147, + +00:57:59, +0.270238042033225,0.270238042033225,0.270294585406176,0.270303453115631,0.27027566352646,0.270225755102921,0.270169670477603,0.27012237856923,0.270095535138972,0.270095535138972, +0.270238042033225,0.270238042033225,0.270294585406176,0.270303453115631,0.27027566352646,0.270225755102921,0.270169670477603,0.27012237856923,0.270095535138972,0.270095535138972, +0.294160270283887,0.294160270283887,0.29421027814298,0.294209196381702,0.294169172620383,0.294106276769928,0.294038188336448,0.2939816136109,0.29394968711734,0.29394968711734, +0.341459958313168,0.341459958313168,0.341496337917665,0.341474500336797,0.341408932802282,0.341318873567077,0.341225578866543,0.34114938924938,0.341106651370387,0.341106651370387, +0.410986925876006,0.410986925876006,0.411001574303104,0.410946452547369,0.41083983230364,0.410705998169259,0.410571774062051,0.410463313382464,0.41040252165815,0.41040252165815, +0.50089350693542,0.50089350693542,0.500877142821328,0.500773512044162,0.500606863502601,0.500408885403964,0.500213949542975,0.50005640783902,0.499967272221668,0.499967272221668, +0.60855059864379,0.60855059864379,0.608493491221608,0.608321859174097,0.608071116462194,0.60778365377291,0.60750251365071,0.607272001565052,0.60713779447445,0.60713779447445, +0.730517941915084,0.730517941915084,0.730414247805851,0.730146455809103,0.729780035827023,0.729372519016476,0.728973071049821,0.728633870514661,0.728422438511298,0.728422438511298, +0.862601956298807,0.862601956298807,0.862470086975126,0.862051471696561,0.861526877056704,0.860966980232065,0.860413558301071,0.859912089686695,0.859548358972444,0.859548358972444, + +00:58:00, +0.270348175318095,0.270348175318095,0.270404715837714,0.270413588449743,0.270385809477411,0.270335914688862,0.270279843757701,0.27023256282136,0.27020572547267,0.27020572547267, +0.270348175318095,0.270348175318095,0.270404715837714,0.270413588449743,0.270385809477411,0.270335914688862,0.270279843757701,0.27023256282136,0.27020572547267,0.27020572547267, +0.294267858255977,0.294267858255977,0.294317863351444,0.294316787751608,0.294276776718465,0.294213897044043,0.294145824803168,0.294089263043772,0.294057343739854,0.294057343739854, +0.341562185508334,0.341562185508334,0.34159856295075,0.341576734380982,0.341511184051749,0.34142114626923,0.341327872914264,0.341251700377036,0.341208971980841,0.341208971980841, +0.411080549426083,0.411080549426083,0.411095197519704,0.411040089794177,0.410933494050553,0.410799689733341,0.410665495080965,0.410557057985929,0.410496279406801,0.410496279406801, +0.500974894098657,0.500974894098657,0.500958533476197,0.500854924617396,0.500688311256783,0.500490374876873,0.500295479973621,0.500137971235173,0.500048854189192,0.500048854189192, +0.608615980040113,0.608615980040113,0.60855888239724,0.608387283796619,0.608136590971964,0.607849185898466,0.607568102180984,0.60733763618457,0.607203455772355,0.607203455772355, +0.730563833933829,0.730563833933829,0.730460157763823,0.730192415604421,0.729826065024703,0.729418625995299,0.729019254346203,0.728680118321148,0.728468726186622,0.728468726186622, +0.862625651382349,0.862625651382349,0.86249380568858,0.862075265423979,0.861550765606459,0.860990970484223,0.860437649100332,0.859936271181079,0.85957260567389,0.85957260567389, + +00:58:01, +0.270458296892411,0.270458296892411,0.270514834554057,0.270523712065044,0.270495943706843,0.270446062551348,0.270390005313028,0.270342735347908,0.270315904080397,0.270315904080397, +0.270458296892411,0.270458296892411,0.270514834554057,0.270523712065044,0.270495943706843,0.270446062551348,0.270390005313028,0.270342735347908,0.270315904080397,0.270315904080397, +0.294375433273714,0.294375433273714,0.294425435602101,0.294424366160163,0.294384367851714,0.294321504350101,0.2942534482991,0.294196899503855,0.294164987388516,0.294164987388516, +0.341664397789494,0.341664397789494,0.341700773068223,0.341678953505823,0.341613420376656,0.341523404040962,0.341430152025996,0.341353996564339,0.341311277648541,0.341311277648541, +0.411174156285097,0.411174156285097,0.411188804045255,0.411133710345218,0.411027139093543,0.410893364583596,0.410759199376271,0.410650785857944,0.410590020419627,0.410590020419627, +0.501056263969733,0.501056263969733,0.501039906839383,0.500936319891932,0.50076974169981,0.500571847023367,0.500376993062655,0.500219517277404,0.500130418795851,0.500130418795851, +0.608681345496199,0.608681345496199,0.608624257631796,0.608452692467171,0.608202049511757,0.607914702032474,0.607633674698275,0.607403254773532,0.607269101029572,0.607269101029572, +0.730609713623645,0.730609713623645,0.730506055388994,0.730238363050595,0.729872081848874,0.729464720572517,0.729065425213141,0.728726353674748,0.728515001394773,0.728515001394773, +0.862649339723753,0.862649339723753,0.862517517652734,0.862099052378467,0.861574647352489,0.861014953899055,0.860461733028917,0.859960445774978,0.85959684545389,0.85959684545389, + +00:58:02, +0.27056840675045,0.27056840675045,0.270624941549487,0.270633823955814,0.270606066209035,0.270556198684648,0.270500155137848,0.27045289614313,0.270426070956408,0.270426070956408, +0.27056840675045,0.27056840675045,0.270624941549487,0.270633823955814,0.270606066209035,0.270556198684648,0.270500155137848,0.27045289614313,0.270426070956408,0.270426070956408, +0.294482995333812,0.294482995333812,0.294532994891669,0.294531931604087,0.294491946016844,0.294429098684811,0.294361058820947,0.294304522987849,0.294272618060024,0.294272618060024, +0.341766595157502,0.341766595157502,0.341802968270936,0.341781157712173,0.341715641777853,0.341625646883121,0.341532416202585,0.341456277812134,0.341413568374331,0.341413568374331, +0.411267746458465,0.411267746458465,0.411282393885173,0.411227314205908,0.411120767438026,0.410987022725444,0.410852886953391,0.410744497003934,0.410683744702054,0.410683744702054, +0.501137616557626,0.501137616557626,0.501121262919863,0.501017697876749,0.500851154840667,0.50065330185244,0.500458488819079,0.500301045974726,0.500211966050659,0.500211966050659, +0.608746695022417,0.608746695022417,0.60868961693564,0.608518085196125,0.608267492091957,0.607980202185335,0.607699231213001,0.60746885734237,0.60733473025654,0.60733473025654, +0.730655580993569,0.730655580993569,0.730551940690404,0.730284298156676,0.729918086308608,0.729510802757227,0.729111583659754,0.728772576584598,0.728561264144901,0.728561264144901, +0.862673021328269,0.862673021328269,0.862541222872843,0.862122832565299,0.861598522300094,0.861038930481888,0.860485810092182,0.859984613473775,0.859621078317843,0.859621078317843, + +00:58:03, +0.270678504886499,0.270678504886499,0.270735036818296,0.270743924116347,0.270716176978275,0.270666323083044,0.270610293226436,0.270563045201297,0.270536226094968,0.270536226094968, +0.270678504886499,0.270678504886499,0.270735036818296,0.270743924116347,0.270716176978275,0.270666323083044,0.270610293226436,0.270563045201297,0.270536226094968,0.270536226094968, +0.294590544432995,0.294590544432995,0.294640541216874,0.294639484080105,0.294599511210577,0.29453668004489,0.294468656365422,0.294412133492461,0.294380235751081,0.294380235751081, +0.341868777613212,0.341868777613212,0.341905148559743,0.341883347000885,0.341817848256192,0.341727874796557,0.341634665444878,0.341558544121269,0.341515844159057,0.341515844159057, +0.411361319951602,0.411361319951602,0.411375967044869,0.411320901381658,0.411214379089415,0.411080664164301,0.410946557817743,0.41083819142932,0.410777452259506,0.410777452259506, +0.501218951871308,0.501218951871308,0.501202601726603,0.501099058580815,0.500932550688329,0.500734739373076,0.500539967251886,0.500382557336137,0.500293495962621,0.500293495962621, +0.608812028629122,0.608812028629122,0.608754960319128,0.60858346199384,0.608332918722935,0.608045686367438,0.607764771735565,0.607534443901501,0.607400343463685,0.607400343463685, +0.73070143605263,0.73070143605263,0.730597813677083,0.730330220931706,0.729964078412965,0.72955687255851,0.729157729695148,0.728818787059824,0.728607514446144,0.728607514446144, +0.86269669620114,0.86269669620114,0.862564921354154,0.862146605989743,0.861622390454566,0.861062900238044,0.860509880295475,0.860008774282841,0.85964530427114,0.85964530427114, + +00:58:04, +0.270788591294858,0.270788591294858,0.27084512035479,0.270854012540946,0.270826276008863,0.270776435740831,0.270720419573078,0.270673182516689,0.270646369490355,0.270646369490355, +0.270788591294858,0.270788591294858,0.27084512035479,0.270854012540946,0.270826276008863,0.270776435740831,0.270720419573078,0.270673182516689,0.270646369490355,0.270646369490355, +0.294698080567992,0.294698080567992,0.294748074574449,0.294747023584949,0.294707063429643,0.294644248427063,0.294576240929243,0.294519731014406,0.294487840458402,0.294487840458402, +0.341970945157479,0.341970945157479,0.342007313935502,0.341985521372817,0.341920039812529,0.341830087782123,0.341736899753725,0.34166079549259,0.341618105003566,0.341618105003566, +0.411454876769917,0.411454876769917,0.411469523529749,0.411414471877876,0.411307974053119,0.411174288905578,0.411040211974741,0.410931869139519,0.4108711430974,0.4108711430974, +0.501300269919738,0.501300269919738,0.501283923268558,0.501180402013088,0.50101392925176,0.500816159594248,0.500621428370059,0.50046405137063,0.500375008540733,0.500375008540733, +0.608877346326657,0.608877346326657,0.608820287792598,0.608648822870663,0.608398329415054,0.608111154589158,0.60783029627636,0.607600014461333,0.607465940661422,0.607465940661422, +0.730747278809845,0.730747278809845,0.730643674358048,0.730376131384714,0.730010058170994,0.72960292998544,0.729203863328418,0.728864985109541,0.728653752307629,0.728653752307629, +0.862720364347604,0.862720364347604,0.862588613101912,0.86217037265706,0.861646251821191,0.861086863172836,0.860533943644138,0.860032928207544,0.859669523319165,0.859669523319165, + +00:58:05, +0.270898665969836,0.270898665969836,0.270955192153282,0.270964089223928,0.270936363295109,0.270886536652312,0.270830534172072,0.270783308083597,0.270756501136858,0.270756501136858, +0.270898665969836,0.270898665969836,0.270955192153282,0.270964089223928,0.270936363295109,0.270886536652312,0.270830534172072,0.270783308083597,0.270756501136858,0.270756501136858, +0.294805603735543,0.294805603735543,0.294855594961138,0.294854550115361,0.29481460267078,0.294751803828062,0.294683812509138,0.294627315550406,0.294595432178705,0.294595432178705, +0.342073097791163,0.342073097791163,0.342109464399071,0.342087680828825,0.342022216447719,0.341932285840672,0.341839119129979,0.34176303192695,0.341720350908708,0.341720350908708, +0.411548416918812,0.411548416918812,0.411563063345216,0.411508025699962,0.41140155233454,0.411267896954679,0.411133849429793,0.411025530139941,0.410964817221148,0.410964817221148, +0.501381570711865,0.501381570711865,0.501365227554674,0.501261728182516,0.501095290539916,0.50089756252492,0.500702872182571,0.500545528087184,0.500456503793979,0.500456503793979, +0.608942648125354,0.608942648125354,0.608885599366381,0.60871416783693,0.608463724178658,0.608176606860858,0.607895804845767,0.607665569032258,0.607531521860153,0.607531521860153, +0.730793109274218,0.730793109274218,0.730689522742304,0.730422029524718,0.730056025591732,0.729648975047077,0.729249984568648,0.728911170742853,0.728699977738472,0.728699977738472, +0.862744025772889,0.862744025772889,0.86261229812135,0.862194132572503,0.861670106405249,0.861110819291571,0.860558000143506,0.860057075253244,0.859693735467295,0.859693735467295, + +00:58:06, +0.271008728905756,0.271008728905756,0.271065252208099,0.271074154159617,0.271046438831336,0.270996625811803,0.270940637017726,0.270893421896325,0.270866621028774,0.270866621028774, +0.271008728905756,0.271008728905756,0.271065252208099,0.271074154159617,0.271046438831336,0.270996625811803,0.270940637017726,0.270893421896325,0.270866621028774,0.270866621028774, +0.294913113932393,0.294913113932393,0.294963102373688,0.294962063668091,0.294922128930733,0.294859346244629,0.294791371101842,0.294734887097193,0.294703010908719,0.294703010908719, +0.342175235515123,0.342175235515123,0.342211599951311,0.34218982536977,0.34212437816262,0.342034468973062,0.341941323574494,0.341865253425199,0.341822581875335,0.341822581875335, +0.411641940403689,0.411641940403689,0.411656586496667,0.411601562853314,0.411495113939078,0.411361488317008,0.411227470188305,0.411119174435994,0.411058474636159,0.411058474636159, +0.501462854256628,0.501462854256628,0.501446514593889,0.501343037098039,0.50117663456174,0.500978948174046,0.500784298698385,0.50062698749477,0.500537981731334,0.500537981731334, +0.60900793403553,0.60900793403553,0.608950895050791,0.608779496902963,0.608529103024084,0.60824204319289,0.607961297454152,0.607731107624657,0.607597087070265,0.607597087070265, +0.730838927454744,0.730838927454744,0.730735358838847,0.730467915360724,0.730101980684206,0.729695007752469,0.729296093424909,0.72895734396885,0.728746190747775,0.728746190747775, +0.862767680482221,0.862767680482221,0.862635976417697,0.862217885741321,0.861693954212013,0.86113476859955,0.860582049798908,0.860081215425295,0.859717940720901,0.859717940720901, + +00:58:07, +0.271118780096949,0.271118780096949,0.27117530051358,0.271184207342352,0.271156502611878,0.27110670321363,0.271050728104359,0.271003523949185,0.270976729160417,0.270976729160417, +0.271118780096949,0.271118780096949,0.27117530051358,0.271184207342352,0.271156502611878,0.27110670321363,0.271050728104359,0.271003523949185,0.270976729160417,0.270976729160417, +0.295020611155296,0.295020611155296,0.295070596808857,0.295069564239894,0.295029642206256,0.294966875673511,0.294898916704097,0.294842445651504,0.29481057664518,0.29481057664518, +0.342277358330221,0.342277358330221,0.342313720593084,0.342291954996513,0.342226524958093,0.342136637180149,0.342043513088126,0.341967459988193,0.341924797904299,0.341924797904299, +0.411735447229941,0.411735447229941,0.411750092989495,0.411695083343324,0.411588658872127,0.41145506299796,0.411321074255675,0.41121280203308,0.411152115347837,0.411152115347837, +0.501544120562959,0.501544120562959,0.501527784395128,0.501424328768583,0.501257961326168,0.501060316550569,0.500865707926453,0.500708429602348,0.500619442361765,0.500619442361765, +0.609073204067493,0.609073204067493,0.609016174856132,0.608844810079071,0.608594465961654,0.608307463595592,0.60802677411187,0.6077966302489,0.607662636302136,0.607662636302136, +0.730884733360405,0.730884733360405,0.73078118265666,0.730513788901729,0.730147923457431,0.729741028110655,0.729342189906264,0.729003504796615,0.728792391344633,0.728792391344633, +0.862791328480814,0.862791328480814,0.862659647996175,0.862241632168754,0.861717795246748,0.861158711102066,0.860606092615665,0.860105348729042,0.859742139085346,0.859742139085346, + +00:58:08, +0.271228819537759,0.271228819537759,0.271285337064073,0.271294248766481,0.271266554631078,0.271216768852132,0.271160807426303,0.271113614236504,0.271086825526106,0.271086825526106, +0.271228819537759,0.271228819537759,0.271285337064073,0.271294248766481,0.271266554631078,0.271216768852132,0.271160807426303,0.271113614236504,0.271086825526106,0.271086825526106, +0.295128095401013,0.295128095401013,0.29517807826341,0.295177051827535,0.295137142494109,0.295074392111464,0.295006449312655,0.294949991210086,0.294918129384832,0.294918129384832, +0.342379466237322,0.342379466237322,0.342415826325255,0.342394069709918,0.342328656834999,0.342238790462794,0.342145687671733,0.342069651616788,0.342026998996457,0.342026998996457, +0.41182893740296,0.41182893740296,0.411843582829087,0.411788587175381,0.411682187139077,0.411548621002928,0.411414661637299,0.411306412936596,0.41124573936158,0.41124573936158, +0.501625369639777,0.501625369639777,0.501609036967307,0.501505603203068,0.501339270842124,0.501141667663422,0.500947099875719,0.50078985441887,0.500700885694225,0.500700885694225, +0.609138458231535,0.609138458231535,0.609081438792696,0.608910107375552,0.608659813001677,0.608372868079291,0.608092234829263,0.607862136915341,0.60772816956613,0.60772816956613, +0.730930527000174,0.730930527000174,0.730826994204716,0.730559650156718,0.73019385392041,0.729787036130662,0.729388274021763,0.729049653235217,0.728838579538127,0.728838579538127, +0.862814969773881,0.862814969773881,0.862683312862001,0.862265371860036,0.861741629514714,0.861182646804408,0.860630128599092,0.860129475169826,0.859766330565989,0.859766330565989, + +00:58:09, +0.27133884722254,0.27133884722254,0.271395361853937,0.271404278426365,0.271376594883292,0.271326822721659,0.271270874977901,0.271223692752618,0.271196910120176,0.271196910120176, +0.27133884722254,0.27133884722254,0.271395361853937,0.271404278426365,0.271376594883292,0.271326822721659,0.271270874977901,0.271223692752618,0.271196910120176,0.271196910120176, +0.295235566666314,0.295235566666314,0.29528554673412,0.295284526427787,0.295244629791061,0.295181895555251,0.295113968924273,0.295057523769693,0.295025669124426,0.295025669124426, +0.34248155923729,0.34248155923729,0.34251791714869,0.342496169510851,0.342430773794203,0.342340928821859,0.342247847326174,0.342171828311842,0.342129185152666,0.342129185152666, +0.41192241092813,0.41192241092813,0.411937056020828,0.411882074354869,0.411775698745312,0.4116421623373,0.411508232338567,0.411400007151935,0.411339346682784,0.411339346682784, +0.50170660149599,0.50170660149599,0.501690272319333,0.501586860410402,0.501420563118524,0.50122300152153,0.501028474555116,0.500871261953276,0.50078231173766,0.50078231173766, +0.609203696537939,0.609203696537939,0.609146686870762,0.60897538880269,0.608725144154452,0.608438256654299,0.608157679616663,0.607927627634325,0.607793686872598,0.607793686872598, +0.730976308383011,0.730976308383011,0.730872793491976,0.730605499134662,0.730239772082136,0.729833031821506,0.729434345780442,0.729095789293713,0.728884755337326,0.728884755337326, +0.862838604366623,0.862838604366623,0.862706971020381,0.862289104820395,0.861765457021163,0.861206575711855,0.860654157754497,0.860153594752979,0.859790515168179,0.859790515168179, + +00:58:10, +0.271448863145659,0.271448863145659,0.271505374877544,0.271514296316373,0.271486623362887,0.271436864816569,0.271380930753504,0.271333759491874,0.271306982936971,0.271306982936971, +0.271448863145659,0.271448863145659,0.271505374877544,0.271514296316373,0.271486623362887,0.271436864816569,0.271380930753504,0.271333759491874,0.271306982936971,0.271306982936971, +0.295343024947976,0.295343024947976,0.295393002217767,0.295391988037428,0.295352104093888,0.295289386001645,0.295221475535717,0.295165043327087,0.295133195860721,0.295133195860721, +0.342583637330994,0.342583637330994,0.342619993064257,0.34259825440018,0.342532875836571,0.342443052258208,0.342349992052312,0.342273990074216,0.342231356373785,0.342231356373785, +0.412015867810834,0.412015867810834,0.412030512570095,0.411975544887166,0.411869193696213,0.411735687006458,0.411601786364865,0.411493584684487,0.411432937316838,0.411432937316838, +0.501787816140501,0.501787816140501,0.501771490460102,0.501668100399484,0.501501838164272,0.501304318133806,0.501109831973566,0.500952652214497,0.500863720501005,0.500863720501005, +0.609268918996972,0.609268918996972,0.609211919100595,0.609040654370759,0.608790459430264,0.608503629330918,0.608223108484385,0.607993102416183,0.607859188231879,0.607859188231879, +0.731022077517865,0.731022077517865,0.730918580527391,0.730651335844525,0.730285677951591,0.729879015192189,0.729480405191331,0.729141912981151,0.72893091875129,0.72893091875129, +0.862862232264239,0.862862232264239,0.86273062247652,0.862312831055052,0.861789277771342,0.861230497829681,0.860678180087181,0.860177707483828,0.859814692897259,0.859814692897259, + +00:58:11, +0.271558867301493,0.271558867301493,0.271615376129275,0.271624302430887,0.27159664006424,0.271546895131234,0.271490974747478,0.27144381444863,0.271417043970845,0.271417043970845, +0.271558867301493,0.271558867301493,0.271615376129275,0.271624302430887,0.27159664006424,0.271546895131234,0.271490974747478,0.27144381444863,0.271417043970845,0.271417043970845, +0.295450470242783,0.295450470242783,0.295500444711138,0.295499436653247,0.295459565399376,0.295396863447424,0.295328969143762,0.295272549879036,0.295240709590485,0.295240709590485, +0.342685700519303,0.342685700519303,0.342722054072826,0.342700324378773,0.34263496296297,0.342545160772707,0.34245212185101,0.342376136904772,0.342333512660676,0.342333512660676, +0.412109308056447,0.412109308056447,0.412123952482265,0.412068998777645,0.411962671997156,0.411829195015782,0.411695323721576,0.411587145539634,0.411526511269127,0.411526511269127, +0.501869013582198,0.501869013582198,0.501852691398502,0.501749323179202,0.501583095988264,0.501385617509155,0.501191172139983,0.501034025211454,0.500945111993186,0.500945111993186, +0.609334125618892,0.609334125618892,0.60927713549245,0.60910590409002,0.608855758839385,0.608568986119436,0.608288521442736,0.608058561271234,0.607924673654301,0.607924673654301, +0.731067834413674,0.731067834413674,0.730964355319899,0.730697160295258,0.730331571537744,0.729924986251706,0.729526452263445,0.729188024306566,0.728977069789067,0.728977069789067, +0.862885853471918,0.862885853471918,0.862754267235612,0.862336550569221,0.861813091770489,0.861254413163153,0.86070219560244,0.860201813367691,0.859838863758567,0.859838863758567, + +00:58:12, +0.271668859684429,0.271668859684429,0.271725365603525,0.271734296764301,0.271706644981741,0.271656913660037,0.271601006954198,0.271553857617258,0.271527093216167,0.271527093216167, +0.271668859684429,0.271668859684429,0.271725365603525,0.271734296764301,0.271706644981741,0.271656913660037,0.271601006954198,0.271553857617258,0.271527093216167,0.271527093216167, +0.295557902547528,0.295557902547528,0.29560787421103,0.295606872272039,0.295567013704315,0.295504327889376,0.295436449745189,0.295380043422319,0.295348210310493,0.295348210310493, +0.342787748803089,0.342787748803089,0.34282410017527,0.342802379447502,0.342737035174271,0.342647254366223,0.342554236723135,0.342478268804373,0.342435654014203,0.342435654014203, +0.412202731670342,0.412202731670342,0.412217375762705,0.412162436031678,0.412056133653512,0.411922686370644,0.411788844414075,0.411680689722757,0.411620068545033,0.411620068545033, +0.501950193829961,0.501950193829961,0.501933875143407,0.501830528758436,0.501664336599385,0.50146689965647,0.50127249506327,0.501115380953057,0.501026486223119,0.501026486223119, +0.609399316413943,0.609399316413943,0.609342336056568,0.609171137970719,0.608921042392077,0.608634327030131,0.608353918502008,0.608124004209783,0.607990143150177,0.607990143150177, +0.731113579079365,0.731113579079365,0.731010117878428,0.730742972495799,0.730377452849555,0.729970945009039,0.729572487005789,0.729234123278983,0.729023208459691,0.729023208459691, +0.862909467994845,0.862909467994845,0.862777905302847,0.862360263368111,0.861836899023838,0.861278321717531,0.860726204305562,0.860225912409883,0.859863027757432,0.859863027757432, + +00:58:13, +0.271778840288866,0.271778840288866,0.271835343294696,0.271844279311019,0.271816638109789,0.271766920397371,0.271711027368051,0.271663888992137,0.271637130667312,0.271637130667312, +0.271778840288866,0.271778840288866,0.271835343294696,0.271844279311019,0.271816638109789,0.271766920397371,0.271711027368051,0.271663888992137,0.271637130667312,0.271637130667312, +0.29566532185901,0.29566532185901,0.295715290714246,0.295714294890606,0.295674449005506,0.295611779324294,0.295543917336787,0.29548752395372,0.295455698017526,0.295455698017526, +0.342889782183225,0.342889782183225,0.342926131372463,0.34290441960724,0.342839092471345,0.342749333039627,0.342656336669554,0.342580385773887,0.342537780435229,0.342537780435229, +0.412296138657885,0.412296138657885,0.412310782416782,0.412255856654629,0.412149578670649,0.412016161076415,0.411882348447734,0.41177421723923,0.411713609149931,0.411713609149931, +0.502031356892662,0.502031356892662,0.502015041703687,0.501911717146055,0.50174556000651,0.501548164584635,0.50135380075232,0.501196719448209,0.501107843199708,0.501107843199708, +0.609464491392356,0.609464491392356,0.609407520803179,0.609236356023092,0.608986310098587,0.608699652073267,0.608419299672481,0.608189431242126,0.608055596729809,0.608055596729809, +0.731159311523855,0.731159311523855,0.731055868211894,0.730788772455079,0.730423321895971,0.730016891473158,0.729618509427356,0.729280209907415,0.72906933477219,0.72906933477219, +0.862933075838196,0.862933075838196,0.862801536683406,0.862383969456921,0.861860699536615,0.86130222349807,0.860750206201827,0.860250004615708,0.859887184899177,0.859887184899177, + +00:58:14, +0.271888809109214,0.271888809109214,0.271945309197204,0.271954250065455,0.271926619442796,0.271876915337642,0.271821035983433,0.271773908567659,0.271747156318671,0.271747156318671, +0.271888809109214,0.271888809109214,0.271945309197204,0.271954250065455,0.271926619442796,0.271876915337642,0.271821035983433,0.271773908567659,0.271747156318671,0.271747156318671, +0.295772728174038,0.295772728174038,0.295822694217597,0.29582170450576,0.295781871299755,0.295719217748981,0.295651371915354,0.295594991470032,0.295563172708375,0.295563172708375, +0.342991800660587,0.342991800660587,0.34302814766528,0.343006444858864,0.342941134855066,0.342851396793789,0.342758421691136,0.342682487814181,0.342639891924623,0.342639891924623, +0.41238952902444,0.41238952902444,0.412404172449856,0.412349260651859,0.412243007053927,0.412109619138458,0.411975835827923,0.411867728094423,0.411807133089194,0.411807133089194, +0.50211250277916,0.50211250277916,0.502096191088196,0.501992888350917,0.501826766218506,0.501629412302526,0.501435089216018,0.5012780407058,0.501189182931849,0.501189182931849, +0.609529650564351,0.609529650564351,0.6094726897425,0.609301558257364,0.609051561969151,0.608764961259094,0.608484664964424,0.608254842378544,0.608121034403487,0.608121034403487, +0.731205031756048,0.731205031756048,0.731101606329205,0.730834560182014,0.73046917868593,0.730062825653022,0.72966451953713,0.729326284200864,0.729115448735576,0.729115448735576, +0.862956677007143,0.862956677007143,0.862825161382467,0.862407668840848,0.86188449331404,0.861326118510017,0.86077420129651,0.860274089990467,0.85991133518912,0.85991133518912, + +00:58:15, +0.271998766139895,0.271998766139895,0.272055263305475,0.272064209022036,0.272036588975183,0.271986898475263,0.271931032794755,0.271883916338228,0.271857170164643,0.271857170164643, +0.271998766139895,0.271998766139895,0.272055263305475,0.272064209022036,0.272036588975183,0.271986898475263,0.271931032794755,0.271883916338228,0.271857170164643,0.271857170164643, +0.295880121489426,0.295880121489426,0.295930084717902,0.295929101114318,0.295889280583877,0.295826643160248,0.295758813477693,0.295702445968055,0.295670634379839,0.295670634379839, +0.343093804236052,0.343093804236052,0.343130149054599,0.343108455203249,0.343043162326309,0.342953445629584,0.342860491788753,0.342784574926125,0.342741988483255,0.342741988483255, +0.412482902775364,0.412482902775364,0.412497545867282,0.412442648028723,0.412336418808705,0.412203060562135,0.412069306560002,0.411961222293701,0.411900640368188,0.411900640368188, +0.502193631498306,0.502193631498306,0.502177323305783,0.502074042381872,0.501907955244226,0.501710642819005,0.501516360463236,0.501359344734711,0.501270505428428,0.501270505428428, +0.609594793940136,0.609594793940136,0.609537842884737,0.609366744683744,0.609116798013993,0.608830254597854,0.608550014388093,0.608320237629305,0.608186456181489,0.608186456181489, +0.731250739784837,0.731250739784837,0.731147332239253,0.730880335685511,0.730515023228357,0.730108747557581,0.729710517344081,0.72937234616832,0.729161550358852,0.729161550358852, +0.86298027150685,0.86298027150685,0.862848779405197,0.862431361525078,0.861908280361324,0.861350006758611,0.86079818959488,0.860298168539451,0.85993547863257,0.85993547863257, + +00:58:16, +0.272108711375341,0.272108711375341,0.272165205613947,0.272174156175199,0.272146546701383,0.272096869804663,0.272041017796436,0.271993912298257,0.271967172199638,0.271967172199638, +0.272108711375341,0.272108711375341,0.272165205613947,0.272174156175199,0.272146546701383,0.272096869804663,0.272041017796436,0.271993912298257,0.271967172199638,0.271967172199638, +0.295987501801998,0.295987501801998,0.296037462211987,0.296036484713107,0.295996676854696,0.295934055554911,0.295866242020618,0.295809887444597,0.295778083028722,0.295778083028722, +0.343195792910499,0.343195792910499,0.3432321355413,0.343210450641275,0.343145174885952,0.343055479547886,0.342962546963279,0.342886647110592,0.342844070111994,0.342844070111994, +0.412576259916011,0.412576259916011,0.412590902674413,0.412536018790573,0.412429813940336,0.412296485352801,0.412162760649332,0.412054699842427,0.411994130992277,0.411994130992277, +0.502274743058941,0.502274743058941,0.502258438365285,0.502155179247759,0.501989127092519,0.501791856142929,0.501597614502839,0.501440631543815,0.501351810698322,0.501351810698322, +0.609659921529906,0.609659921529906,0.60960298024008,0.609431915312433,0.609182018243324,0.608895532099772,0.60861534795373,0.608385617004668,0.608251862074079,0.608251862074079, +0.731296435619107,0.731296435619107,0.731193045950924,0.730926098974466,0.730560855532167,0.73015465719577,0.72975650285717,0.729418395818764,0.72920763965101,0.72920763965101, +0.863003859342474,0.863003859342474,0.862872390756761,0.862455047514793,0.861932060683675,0.861373888249086,0.860822171102198,0.860322240267947,0.85995961523483,0.85995961523483, + +00:58:17, +0.272218644809994,0.272218644809994,0.272275136117067,0.272284091519392,0.272256492615841,0.272206829320278,0.272150990982907,0.272103896442172,0.27207716241808,0.27207716241808, +0.272218644809994,0.272218644809994,0.272275136117067,0.272284091519392,0.272256492615841,0.272206829320278,0.272150990982907,0.272103896442172,0.27207716241808,0.27207716241808, +0.296094869108585,0.296094869108585,0.296144826696686,0.29614385529896,0.296104060109041,0.296041454929796,0.295973657540949,0.295917315896475,0.295885518651839,0.295885518651839, +0.343297766684809,0.343297766684809,0.343334107126265,0.343312431173823,0.343247172534875,0.343157498549574,0.343064587215589,0.342988704368455,0.342946136811714,0.342946136811714, +0.412669600451731,0.412669600451731,0.412684242876595,0.412629372942756,0.412523192454167,0.412389893515807,0.412256198101267,0.412148160745955,0.412087604966817,0.412087604966817, +0.502355837469895,0.502355837469895,0.502339536275529,0.502236298957409,0.502070281772218,0.501873052283142,0.501678851343681,0.501521901141973,0.501433098750396,0.501433098750396, +0.609725033343843,0.609725033343843,0.609668101818711,0.609497070153615,0.609247222667344,0.608960793775064,0.608680665671567,0.608450980514876,0.608317252091509,0.608317252091509, +0.731342119267727,0.731342119267727,0.731238747473088,0.730971850057762,0.730606675606262,0.730200554576518,0.729802476085345,0.729464433161163,0.729253716621029,0.729253716621029, +0.863027440519166,0.863027440519166,0.862895995442314,0.862478726815168,0.861955834286292,0.861397762986671,0.860846145823717,0.860346305181234,0.859983745001197,0.859983745001197, + +00:58:18, +0.272328566438308,0.272328566438308,0.272385054809295,0.272394015049073,0.272366426713011,0.272316777016558,0.272260952348608,0.272213868764409,0.2721871408144,0.2721871408144, +0.272328566438308,0.272328566438308,0.272385054809295,0.272394015049073,0.272366426713011,0.272316777016558,0.272260952348608,0.272213868764409,0.2721871408144,0.2721871408144, +0.296202223406024,0.296202223406024,0.296252178168841,0.296251212868719,0.29621143034375,0.296148841281736,0.296081060035512,0.296024731320511,0.29599294124601,0.29599294124601, +0.343399725559866,0.343399725559866,0.343436063810377,0.343414396801776,0.343349155273958,0.343259502635527,0.34316661254656,0.343090746700589,0.34304818858329,0.34304818858329, +0.412762924387867,0.412762924387867,0.412777566479171,0.412722710490615,0.412616554355544,0.412483285056499,0.412349618921154,0.41224160500964,0.412181062297162,0.412181062297162, +0.50243691473999,0.50243691473999,0.502420617045333,0.50231740151964,0.502151419292152,0.501954231248478,0.501760070994606,0.501603153538037,0.501514369593507,0.501514369593507, +0.609790129392118,0.609790129392118,0.609733207630798,0.609562209217467,0.609312411296238,0.609026039633933,0.608745967551823,0.608516328170162,0.60838262624402,0.60838262624402, +0.731387790739559,0.731387790739559,0.731284436814608,0.731017588944273,0.730652483459536,0.730246439708738,0.729848437037545,0.729510458204475,0.72929978127788,0.72929978127788, +0.863051015042072,0.863051015042072,0.862919593467007,0.862502399431373,0.861979601174369,0.861421630976585,0.860870113764688,0.860370363284584,0.860007867936959,0.860007867936959, + +00:58:19, +0.272438476254749,0.272438476254749,0.272494961685101,0.272503926758713,0.272476348987359,0.272426712887961,0.272370901887994,0.272323829259415,0.272297107383043,0.272297107383043, +0.272438476254749,0.272438476254749,0.272494961685101,0.272503926758713,0.272476348987359,0.272426712887961,0.272370901887994,0.272323829259415,0.272297107383043,0.272297107383043, +0.296309564691162,0.296309564691162,0.296359516625301,0.296358557419231,0.296318787555669,0.296256214607572,0.296188449501145,0.296132133713537,0.296100350808064,0.296100350808064, +0.343501669536553,0.343501669536553,0.343538005594521,0.343516347526018,0.343451123104085,0.343361491806625,0.343268622957073,0.343192774107874,0.3431502254276,0.3431502254276, +0.41285623172976,0.41285623172976,0.412870873487478,0.412816031439486,0.412709899649805,0.41257665998022,0.412443023114341,0.412335032638827,0.412274502988663,0.412274502988663, +0.502517974878038,0.502517974878038,0.502501680683505,0.502398486943264,0.502232539661136,0.502035393047763,0.501841273464447,0.501684388740848,0.501595623236502,0.501595623236502, +0.609855209684888,0.609855209684888,0.609798297686497,0.609627332514149,0.609377584140183,0.609091269686568,0.608811253604704,0.608581659980747,0.60844798454184,0.60844798454184, +0.731433450043452,0.731433450043452,0.731330113984333,0.731063315642861,0.730698279100869,0.730292312601334,0.729894385722696,0.729556470957647,0.72934583363052,0.72934583363052, +0.863074582916328,0.863074582916328,0.862943184835981,0.862526065368567,0.862003361353092,0.861445492224042,0.86089407493035,0.860394414583263,0.860031984047401,0.860031984047401, + +00:58:20, +0.272548374253793,0.272548374253793,0.272604856738965,0.272613826642793,0.272586259433362,0.272536636928959,0.272480839595528,0.272433777921648,0.272407062118463,0.272407062118463, +0.272548374253793,0.272548374253793,0.272604856738965,0.272613826642793,0.272586259433362,0.272536636928959,0.272480839595528,0.272433777921648,0.272407062118463,0.272407062118463, +0.296416892960851,0.296416892960851,0.296466842062922,0.296465888947353,0.296426131741651,0.296363574904151,0.296295825934688,0.296239523072391,0.296207747334837,0.296207747334837, +0.343603598615759,0.343603598615759,0.343639932479585,0.343618283347435,0.343553076026141,0.343463466063753,0.343370618448007,0.343294786591188,0.343252247345521,0.343252247345521, +0.412949522482744,0.412949522482744,0.412964163906848,0.412909335794703,0.412803228342286,0.412670018292306,0.412536410686166,0.41242844363886,0.412367927046662,0.412367927046662, +0.502599017892838,0.502599017892838,0.502582727198842,0.502479555237079,0.502313642887976,0.502116537689813,0.501922458762031,0.50176560675924,0.501676859688216,0.501676859688216, +0.609920274232302,0.609920274232302,0.609863371995951,0.609692440053812,0.609442741209339,0.609156483943149,0.608876523840406,0.608646975956838,0.608513326995185,0.608513326995185, +0.731479097188244,0.731479097188244,0.731375778991104,0.731109030162377,0.730744062539132,0.7303381732632,0.729940322149714,0.729602471429612,0.729391873687895,0.729391873687895, +0.863098144147068,0.863098144147068,0.862966769554375,0.862549724631907,0.86202711482764,0.861469346734251,0.860918029325938,0.860418459082531,0.860056093337798,0.860056093337798, + +00:58:21, +0.272658260429926,0.272658260429926,0.27271473996538,0.272723714695805,0.272696158045509,0.272646549134034,0.272590765465685,0.272543714745578,0.272517005015128,0.272517005015128, +0.272658260429926,0.272658260429926,0.27271473996538,0.272723714695805,0.272696158045509,0.272646549134034,0.272590765465685,0.272543714745578,0.272517005015128,0.272517005015128, +0.296524208211954,0.296524208211954,0.29657415447857,0.296573207449951,0.296533462898556,0.29647092216833,0.296403189332994,0.296346899393921,0.296315130823174,0.296315130823174, +0.343705512798371,0.343705512798371,0.343741844466458,0.343720204266918,0.343655014041013,0.343565425407795,0.343472599020247,0.343396784151413,0.343354254337935,0.343354254337935, +0.413042796652151,0.413042796652151,0.413057437742612,0.413002623561594,0.412896540438316,0.412763359998092,0.412629781641966,0.412521838015078,0.412461334476499,0.412461334476499, +0.502680043793185,0.502680043793185,0.502663756600134,0.502560606409878,0.502394728981471,0.502197665183433,0.502003626896172,0.501846807602035,0.501758078957477,0.501758078957477, +0.609985323044491,0.609985323044491,0.609928430569292,0.609757531846594,0.609507882513858,0.609221682413841,0.608941778269109,0.60871227610863,0.608578653614258,0.608578653614258, +0.731524732182764,0.731524732182764,0.731421431843749,0.731154732511662,0.730789833783185,0.730384021703217,0.729986246327503,0.729648459629295,0.729437901458942,0.729437901458942, +0.863121698739415,0.863121698739415,0.862990347627318,0.862573377226541,0.862050861603189,0.861493194512411,0.860941976956682,0.86044249678764,0.86008019581342,0.86008019581342, + +00:58:22, +0.272768134777646,0.272768134777646,0.272824611358849,0.272833590912252,0.272806044818297,0.272756449497677,0.27270067949295,0.272653639725684,0.272626936067513,0.272626936067513, +0.272768134777646,0.272768134777646,0.272824611358849,0.272833590912252,0.272806044818297,0.272756449497677,0.27270067949295,0.272653639725684,0.272626936067513,0.272626936067513, +0.296631510441339,0.296631510441339,0.296681453869115,0.296680512923894,0.296640781023253,0.296578256396973,0.296510539692921,0.296454262674979,0.296422501269926,0.296422501269926, +0.343807412085279,0.343807412085279,0.34384374155603,0.343822110285355,0.343756937149589,0.343667369839638,0.343574564674676,0.343498766789433,0.343456246405724,0.343456246405724, +0.413136054243307,0.413136054243307,0.413150695000093,0.413095894745485,0.412989835943221,0.412856685102905,0.412723135987073,0.412615215772813,0.412554725283511,0.412554725283511, +0.502761052587858,0.502761052587858,0.502744768896159,0.50264164047044,0.502475797950406,0.502278775537419,0.502084777875674,0.501927991278045,0.501839281053102,0.501839281053102, +0.610050356131579,0.610050356131579,0.609993473416639,0.609822607902619,0.609573008063877,0.609286865108797,0.609007016900984,0.608777560446308,0.60864396440925,0.60864396440925, +0.731570355035828,0.731570355035828,0.731467072551084,0.731200422699545,0.730835592841874,0.730429857930256,0.730032158264958,0.729694435565609,0.729483916952586,0.729483916952586, +0.863145246698489,0.863145246698489,0.863013919059935,0.862597023157612,0.862074601684903,0.861517035563717,0.860965917827801,0.860466527703837,0.86010429147953,0.86010429147953, + +00:58:23, +0.272877997291462,0.272877997291462,0.272934470913885,0.272943455286646,0.272915919746237,0.272866338014392,0.272810581671821,0.272763552856458,0.272736855270107,0.272736855270107, +0.272877997291462,0.272877997291462,0.272934470913885,0.272943455286646,0.272915919746237,0.272866338014392,0.272810581671821,0.272763552856458,0.272736855270107,0.272736855270107, +0.296738799645882,0.296738799645882,0.296788740231439,0.296787805366062,0.296748086112618,0.296685577586949,0.296617877011334,0.296561612912428,0.296529858671952,0.296529858671952, +0.343909296477377,0.343909296477377,0.343945623749196,0.34392400140364,0.343858845352762,0.343769299360171,0.343676515412183,0.343600734506133,0.343558223549774,0.343558223549774, +0.413229295261533,0.413229295261533,0.413243935684611,0.413189149351694,0.413083114862323,0.412949993612069,0.412816473726812,0.412708576917396,0.412648099473028,0.412648099473028, +0.502842044285632,0.502842044285632,0.502825764095685,0.502722657427537,0.50255684980356,0.502359868760557,0.502165911709334,0.502009157796074,0.501920465983899,0.501920465983899, +0.610115373503674,0.610115373503674,0.6100585005481,0.609887668232002,0.609638117869522,0.60935203203816,0.609072239746188,0.608842828980041,0.608709259390341,0.608709259390341, +0.731615965756241,0.731615965756241,0.731512701121917,0.731246100734843,0.730881339724039,0.730475681953176,0.73007805797096,0.729740399247456,0.729529920177739,0.729529920177739, +0.863168788029401,0.863168788029401,0.863037483857342,0.862620662430255,0.862098335077945,0.861540869893357,0.860989851944512,0.860490551836359,0.860128380341385,0.860128380341385, + +00:58:24, +0.272987847965893,0.272987847965893,0.273044318625012,0.273053307813513,0.273025782823849,0.272976214678693,0.272920471996804,0.272873454132401,0.272846762617409,0.272846762617409, +0.272987847965893,0.272987847965893,0.273044318625012,0.273053307813513,0.273025782823849,0.272976214678693,0.272920471996804,0.272873454132401,0.272846762617409,0.272846762617409, +0.296846075822467,0.296846075822467,0.296896013562428,0.296895084773342,0.296855378163535,0.296792885735138,0.296725201285107,0.296668950103137,0.29663720302612,0.29663720302612, +0.344011165975558,0.344011165975558,0.344047491046849,0.344025877622666,0.343960738651422,0.343871213970284,0.343778451233656,0.3437026873024,0.34366018577097,0.34366018577097, +0.413322519712148,0.413322519712148,0.413337159801481,0.413282387385536,0.413176377200938,0.413043285530904,0.412909794866507,0.412801921454152,0.412741457050377,0.412741457050377, +0.502923018895267,0.502923018895267,0.502906742207472,0.502803657289929,0.502637884549699,0.502440944861624,0.502247028405936,0.502090307164915,0.502001633758665,0.502001633758665, +0.610180375170874,0.610180375170874,0.610123511973769,0.609952712844843,0.609703211940906,0.609417183212059,0.609137446814868,0.608908081719991,0.608774538567697,0.608774538567697, +0.731661564352798,0.731661564352798,0.731558317565042,0.731291766626365,0.730927074438503,0.730521493780828,0.730123945454381,0.729786350683726,0.729575911143304,0.729575911143304, +0.863192322737258,0.863192322737258,0.86306104202465,0.8626442950496,0.862122061787467,0.861564697506512,0.861013779312023,0.860514569190441,0.860152462404234,0.860152462404234, + +00:58:25, +0.273097686795471,0.273097686795471,0.273154154486768,0.273163148487388,0.273135634045665,0.273086079485106,0.273030350462418,0.272983343548027,0.272956658103928,0.272956658103928, +0.273097686795471,0.273097686795471,0.273154154486768,0.273163148487388,0.273135634045665,0.273086079485106,0.273030350462418,0.272983343548027,0.272956658103928,0.272956658103928, +0.296953338967985,0.296953338967985,0.297003273858976,0.297002351142629,0.296962657172894,0.296900180838427,0.296832512511121,0.296776274243982,0.296744534329304,0.296744534329304, +0.344113020580719,0.344113020580719,0.344149343449886,0.344127738943329,0.344062617046466,0.343973113670871,0.343880372139986,0.343804625179124,0.343762133070201,0.343762133070201, +0.413415727600462,0.413415727600462,0.413430367356012,0.413375608852322,0.413269622964378,0.413136560864724,0.413003099411475,0.412895249388401,0.412834798020878,0.412834798020878, +0.503003976425517,0.503003976425517,0.502987703240269,0.50288464006637,0.502718902197583,0.502522003849386,0.502328127974257,0.502171439393351,0.502082784386189,0.502082784386189, +0.610245361143265,0.610245361143265,0.610188507703729,0.610017741751233,0.609768290288132,0.609482318640611,0.609202638117156,0.608973318676302,0.608839801951472,0.608839801951472, +0.731707150834283,0.731707150834283,0.731603921889245,0.731337420382906,0.730972796994084,0.730567293422048,0.730169820724081,0.729832289883299,0.729621889858173,0.729621889858173, +0.863215850827158,0.863215850827158,0.863084593566964,0.862667921020769,0.862145781818618,0.861588518408356,0.861037699935535,0.860538579771308,0.86017653767332,0.86017653767332, + +00:58:26, +0.273207513774735,0.273207513774735,0.273263978493697,0.273272977302818,0.273245473406227,0.273195932428167,0.273140217063193,0.273093221097859,0.273066541724185,0.273066541724185, +0.273207513774735,0.273207513774735,0.273263978493697,0.273272977302818,0.273245473406227,0.273195932428167,0.273140217063193,0.273093221097859,0.273066541724185,0.273066541724185, +0.297060589079335,0.297060589079335,0.297110521117986,0.297109604470824,0.297069923137594,0.297007462893708,0.296939810686265,0.296883585331849,0.296851852578385,0.296851852578385, +0.344214860293758,0.344214860293758,0.344251180959206,0.344229585366528,0.344164480538789,0.344074998462826,0.343982278132065,0.343906548137196,0.343864065448358,0.343864065448358, +0.413508918931785,0.413508918931785,0.413523558353512,0.413468813757359,0.413362852157952,0.41322981961884,0.41309638736703,0.412988560725458,0.41292812238985,0.41292812238985, +0.503084916885126,0.503084916885126,0.503068647202816,0.502965605765599,0.502799902755959,0.5026030457326,0.502409210423063,0.502252554490156,0.502163917875247,0.502163917875247, +0.610310331430919,0.610310331430919,0.610253487748051,0.610082754961246,0.609833352921289,0.609547438333921,0.609267813663174,0.60903853985911,0.60890504955181,0.60890504955181, +0.731752725209468,0.731752725209468,0.731649514103299,0.731383062013251,0.731018507399586,0.730613080885662,0.730215683788911,0.729878216855044,0.729667856331225,0.729667856331225, +0.863239372304195,0.863239372304195,0.863108138489381,0.862691540348879,0.862169495176538,0.861612332604058,0.861061613820243,0.86056258358418,0.86020060615388,0.86020060615388, + +00:58:27, +0.273317328898238,0.273317328898238,0.273373790640357,0.273382794254359,0.273355300900087,0.273305773502423,0.273250071793669,0.273203086776432,0.273176413472711,0.273176413472711, +0.273317328898238,0.273317328898238,0.273373790640357,0.273382794254359,0.273355300900087,0.273305773502423,0.273250071793669,0.273203086776432,0.273176413472711,0.273176413472711, +0.297167826153423,0.297167826153423,0.297217755336367,0.297216844754835,0.297177176054541,0.297114731897883,0.297047095807435,0.296990883363629,0.296959157770255,0.296959157770255, +0.344316685115574,0.344316685115574,0.344353003575708,0.344331416893162,0.344266329129289,0.344176868347045,0.344084169210788,0.344008456177509,0.343965982906333,0.343965982906333, +0.41360209371142,0.41360209371142,0.413616732799282,0.413562002105947,0.413456064786962,0.413323061798558,0.41318965873848,0.413081855470635,0.413021430162606,0.413021430162606, +0.503165840282825,0.503165840282825,0.503149574103843,0.503046554396351,0.502880886233566,0.502684070520014,0.50249027576111,0.502333652464094,0.50224503423461,0.50224503423461, +0.610375286043898,0.610375286043898,0.610318452116794,0.61014775248495,0.609898399850453,0.609612542302083,0.609332973463031,0.609103745278537,0.608970281378841,0.608970281378841, +0.731798287487115,0.731798287487115,0.731695094215966,0.731428691526177,0.731064205663801,0.730658856180488,0.730261534657707,0.729924131607818,0.729713810571332,0.729713810571332, +0.863262887173454,0.863262887173454,0.863131676796994,0.86271515303904,0.862193201866361,0.861636140098779,0.861085520971337,0.86058658063427,0.860224667851143,0.860224667851143, + +00:58:28, +0.273427132160544,0.273427132160544,0.273483590921316,0.273492599336579,0.273465116521811,0.273415602702431,0.273359914648397,0.273312940578292,0.27328627334405,0.27328627334405, +0.273427132160544,0.273427132160544,0.273483590921316,0.273492599336579,0.273465116521811,0.273415602702431,0.273359914648397,0.273312940578292,0.27328627334405,0.27328627334405, +0.297275050187164,0.297275050187164,0.297324976511038,0.297324071991582,0.297284415920649,0.297221987847861,0.297154367871535,0.297098168336223,0.29706644990181,0.29706644990181, +0.344418495047068,0.344418495047068,0.344454811300297,0.344433233524132,0.344368162818868,0.344278723324427,0.344186045377051,0.344110349300958,0.344067885445019,0.344067885445019, +0.413695251944666,0.413695251944666,0.413709890698619,0.413655173903384,0.413549260856708,0.413416287409179,0.41328291353113,0.413175133629239,0.413114721344454,0.413114721344454, +0.50324674662734,0.50324674662734,0.50323048395207,0.503127485967347,0.502961852639133,0.502765078220365,0.502571323997145,0.502414733323921,0.502326133473035,0.502326133473035, +0.610440224992251,0.610440224992251,0.610383400820005,0.610212734332396,0.609963431085691,0.609677630555177,0.609398117526823,0.609168934944693,0.609035497442682,0.609035497442682, +0.731843837675975,0.731843837675975,0.731740662235999,0.731474308930444,0.731109891795512,0.73070461931533,0.730307373339299,0.729970034150467,0.729759752587349,0.729759752587349, +0.863286395440016,0.863286395440016,0.863155208494886,0.862738759096354,0.862216901893215,0.861659940897674,0.861109421393998,0.860610570926784,0.860248722770334,0.860248722770334, + +00:58:29, +0.273536923556226,0.273536923556226,0.273593379331153,0.273602392544058,0.273574920265973,0.27352542002276,0.273469745621939,0.273422782497995,0.273396121332755,0.273396121332755, +0.273536923556226,0.273536923556226,0.273593379331153,0.273602392544058,0.273574920265973,0.27352542002276,0.273469745621939,0.273422782497995,0.273396121332755,0.273396121332755, +0.297382261177479,0.297382261177479,0.297432184638922,0.297431286177986,0.297391642732839,0.297329230740559,0.297261626875475,0.297205440246536,0.297173728969954,0.297173728969954, +0.344520290089146,0.344520290089146,0.344556604133874,0.344535035260343,0.344469981608426,0.344380563395872,0.344287906631753,0.34421222750844,0.344169773065314,0.344169773065314, +0.413788393636819,0.413788393636819,0.413803032056815,0.413748329154962,0.413642440372483,0.413509496456,0.41337615175028,0.413268395206573,0.413207995940697,0.413207995940697, +0.503327635927384,0.503327635927384,0.503311376756208,0.5032084004873,0.503042801981379,0.502846068842382,0.502652355139905,0.502495797078379,0.502407215599272,0.502407215599272, +0.610505148286015,0.610505148286015,0.610448333867717,0.610277700513626,0.610028446637055,0.609742703103273,0.609463245864636,0.609234108867678,0.609100697753441,0.609100697753441, +0.731889375784789,0.731889375784789,0.731786218172139,0.731519914234808,0.731155565803491,0.730750370298981,0.730353199842501,0.730015924491828,0.729805682388126,0.729805682388126, +0.863309897108954,0.863309897108954,0.863178733588138,0.862762358525919,0.862240595262223,0.861683735005891,0.861133315093402,0.860634554466921,0.860272770916668,0.860272770916668, + +00:58:30, +0.273646703079867,0.273646703079867,0.273703155864457,0.273712173871384,0.273684712127158,0.27363522545799,0.273579564708868,0.273532612530109,0.273505957433389,0.273505957433389, +0.273646703079867,0.273646703079867,0.273703155864457,0.273712173871384,0.273684712127158,0.27363522545799,0.273579564708868,0.273532612530109,0.273505957433389,0.273505957433389, +0.297489459121297,0.297489459121297,0.297539379716951,0.297538487310982,0.29749885648804,0.2974364605729,0.297368872816176,0.297312699091484,0.297280994971601,0.297280994971601, +0.344622070242711,0.344622070242711,0.344658382077347,0.344636822102699,0.344571785498868,0.344482388562281,0.344389752975794,0.344314090800853,0.344271645768115,0.344271645768115, +0.413881518793167,0.413881518793167,0.413896156879158,0.41384146786597,0.413735603339577,0.413602688944313,0.413469373401225,0.413361640207935,0.413301253956636,0.413301253956636, +0.503408508191662,0.503408508191662,0.503392252524958,0.503289297964913,0.503123734269014,0.502927042394782,0.502733369198118,0.502576843736205,0.50248828062206,0.50248828062206, +0.610570055935215,0.610570055935215,0.610513251269955,0.610342651038667,0.610093446514587,0.609807759956426,0.609528358486543,0.609299267057576,0.60916588232121,0.60916588232121, +0.731934901822286,0.731934901822286,0.731831762033115,0.731565507448008,0.731201227696498,0.730796109140226,0.73039901417612,0.730061802640726,0.729851599982498,0.729851599982498, +0.863333392185335,0.863333392185335,0.86320225208182,0.862785951332826,0.862264281978498,0.861707522428573,0.861157202074718,0.860658531259875,0.860296812295355,0.860296812295355, + +00:58:31, +0.273756470726065,0.273756470726065,0.273812920515829,0.273821943313159,0.273794492099963,0.273745019002711,0.273689371903767,0.273642430669211,0.273615781640528,0.273615781640528, +0.273756470726065,0.273756470726065,0.273812920515829,0.273821943313159,0.273794492099963,0.273745019002711,0.273689371903767,0.273642430669211,0.273615781640528,0.273615781640528, +0.297596644015555,0.297596644015555,0.297646561742067,0.297645675387507,0.297606057183188,0.297543677341817,0.297476105690563,0.29741994486799,0.29738824790367,0.29738824790367, +0.344723835508672,0.344723835508672,0.344760145131623,0.344738594052108,0.344673574491099,0.34458419882456,0.344491584410076,0.344415939179099,0.344373503554322,0.344373503554322, +0.413974627418996,0.413974627418996,0.413989265170933,0.41393459004169,0.413828749763275,0.413695864879407,0.413562578489256,0.413454868638617,0.413394495397565,0.413394495397565, +0.503489363428867,0.503489363428867,0.503473111267012,0.50337017840888,0.503204649510737,0.503007998886274,0.502814366180501,0.502657873306124,0.502569328550129,0.502569328550129, +0.610634947949863,0.610634947949863,0.610578153036727,0.610407585917538,0.610158430728316,0.609872801124682,0.609593455402604,0.609364409524463,0.609231051156072,0.609231051156072, +0.731980415797183,0.731980415797183,0.731877293827646,0.731611088578777,0.731246877483283,0.730841835847835,0.730444816348951,0.730107668605973,0.729897505379292,0.729897505379292, +0.86335688067422,0.86335688067422,0.863225763980999,0.862809537522158,0.862287962047149,0.861731303170855,0.861181082343109,0.860682501310833,0.860320846911599,0.860320846911599, + +00:58:32, +0.273866226489425,0.273866226489425,0.27392267327988,0.273931700863992,0.273904260178996,0.273854800651523,0.273799167201232,0.27375223690989,0.273725593948758,0.273725593948758, +0.273866226489425,0.273866226489425,0.27392267327988,0.273931700863992,0.273904260178996,0.273854800651523,0.273799167201232,0.27375223690989,0.273725593948758,0.273725593948758, +0.297703815857195,0.297703815857195,0.297753730711215,0.297752850404509,0.297713244815226,0.297650881044247,0.29758332549557,0.297527177572982,0.297495487763089,0.297495487763089, +0.344825585887937,0.344825585887937,0.344861893297612,0.344840351109478,0.344775348586028,0.344685994183613,0.344593400935503,0.34451777264408,0.344475346424837,0.344475346424837, +0.414067719519589,0.414067719519589,0.414082356937417,0.414027695687403,0.413921879648859,0.413789024266565,0.413655767019659,0.413548080503909,0.413487720268775,0.413487720268775, +0.503570201647686,0.503570201647686,0.50355395299105,0.503451041827886,0.503285547715239,0.503088938325558,0.502895346095763,0.502738885796852,0.5026503593922,0.5026503593922, +0.610699824339962,0.610699824339962,0.610643039178034,0.610472505160242,0.610223399288258,0.609937826618073,0.609658536622868,0.6094295362784,0.609296204268097,0.609296204268097, +0.732025917718189,0.732025917718189,0.731922813564442,0.731656657635835,0.731292515172585,0.730887550430571,0.730490606369777,0.730153522396373,0.72994339858732,0.72994339858732, +0.863380362580664,0.863380362580664,0.863249269290734,0.862833117098993,0.862311635473278,0.861755077237866,0.86120495590373,0.860706464624975,0.860344874770598,0.860344874770598, + +00:58:33, +0.273975970364563,0.273975970364563,0.274032414151231,0.274041446518507,0.274014016358873,0.27396457039904,0.273908950595866,0.273862031246747,0.273835394352675,0.273835394352675, +0.273975970364563,0.273975970364563,0.274032414151231,0.274041446518507,0.274014016358873,0.27396457039904,0.273908950595866,0.273862031246747,0.273835394352675,0.273835394352675, +0.29781097464317,0.29781097464317,0.297860886621351,0.297860012358942,0.297820419381106,0.297758071677137,0.297690532228139,0.297634397203398,0.297602714546793,0.297602714546793, +0.344927321381417,0.344927321381417,0.344963626576225,0.344942093275722,0.344877107784564,0.344787774640348,0.344695202552981,0.3446195911967,0.344577174380563,0.344577174380563, +0.41416079510022,0.41416079510022,0.414175432183886,0.414120784808382,0.414014993001605,0.413882167111066,0.413748938997717,0.413641275809095,0.413580928575552,0.413580928575552, +0.503651022856794,0.503651022856794,0.503634777705745,0.503531888230603,0.503366428891201,0.503169860721322,0.502976308952601,0.502819881217095,0.502731373156983,0.502731373156983, +0.610764685115499,0.610764685115499,0.610707909703861,0.610537408776773,0.610288352204419,0.61000283644662,0.609723602157372,0.609494647329438,0.609361341667342,0.609361341667342, +0.732071407594001,0.732071407594001,0.7319683212522,0.731702214627889,0.731338140773133,0.730933252897183,0.730536384247371,0.730199364020717,0.729989279615387,0.729989279615387, +0.863403837909713,0.863403837909713,0.863272768016077,0.862856690068403,0.862335302261982,0.861778844634729,0.861228822761731,0.860730421207473,0.860368895877541,0.860368895877541, + +00:58:34, +0.274085702346108,0.274085702346108,0.274142143124516,0.274151180271335,0.274123760634224,0.274074328239882,0.274018722082286,0.273971813674392,0.273945182846887,0.273945182846887, +0.274085702346108,0.274085702346108,0.274142143124516,0.274151180271335,0.274123760634224,0.274074328239882,0.274018722082286,0.273971813674392,0.273945182846887,0.273945182846887, +0.297918120370439,0.297918120370439,0.297968029469437,0.297967161247768,0.297927580877787,0.297865249237441,0.297797725885219,0.297741603756184,0.297709928251723,0.297709928251723, +0.345029041990026,0.345029041990026,0.345065344968376,0.34504382055175,0.344978852087617,0.344889540195676,0.344796989263418,0.344721394837865,0.344678987422405,0.344678987422405, +0.414253854166164,0.414253854166164,0.414268490915609,0.414213857409898,0.414108089826783,0.413975293418184,0.413842094428707,0.413734454559457,0.413674120323177,0.413674120323177, +0.503731827064857,0.503731827064857,0.503715585419761,0.503612717625698,0.503447293047294,0.503250766082247,0.503057254759706,0.502900859575549,0.502812369853178,0.502812369853178, +0.610829530286451,0.610829530286451,0.610772764624183,0.610602296777111,0.610353289486792,0.610067830620333,0.60978865201614,0.609559742687613,0.609426463363853,0.609426463363853, +0.732116885433303,0.732116885433303,0.732013816899606,0.73174775956364,0.731383754293642,0.730978943256411,0.730582149990494,0.730245193487787,0.730035148472285,0.730035148472285, +0.863427306666411,0.863427306666411,0.863296260162077,0.862880256435451,0.862358962418348,0.86180260536656,0.861252682922254,0.860754371063496,0.860392910237611,0.860392910237611, + +00:58:35, +0.274195422428697,0.274195422428697,0.274251860194377,0.27426090211712,0.274233492999689,0.274184074168685,0.274128481655119,0.274081584187445,0.274054959426012,0.274054959426012, +0.274195422428697,0.274195422428697,0.274251860194377,0.27426090211712,0.274233492999689,0.274184074168685,0.274128481655119,0.274081584187445,0.274054959426012,0.274054959426012, +0.298025253035967,0.298025253035967,0.298075159252442,0.298074297067956,0.298034729302235,0.297972413722121,0.297904906463766,0.29784879722829,0.297817128874832,0.297817128874832, +0.345130747714677,0.345130747714677,0.34516704847498,0.345145532938479,0.345080581496102,0.344991290850506,0.344898761067722,0.344823183568484,0.344780785551273,0.344780785551273, +0.414346896722686,0.414346896722686,0.414361533137853,0.414306913497217,0.414201170129663,0.41406840319319,0.413935233317902,0.413827616760268,0.413767295516927,0.413767295516927, +0.503812614280531,0.503812614280531,0.503796376141749,0.503693530021826,0.503528140192179,0.503331654417002,0.503138183525756,0.502981820880902,0.502893349489477,0.502893349489477, +0.610894359862785,0.610894359862785,0.610837603948962,0.610667169171225,0.610418211145358,0.610132809149207,0.609853686209185,0.609624822362953,0.609491569367664,0.609491569367664, +0.732162351244772,0.732162351244772,0.732059300515336,0.731793292451775,0.731429355742821,0.731024621516984,0.730627903607899,0.730291010806353,0.730081005166796,0.730081005166796, +0.863450768855791,0.863450768855791,0.863319745733773,0.862903816205198,0.862382615947461,0.861826359438468,0.861276536390438,0.860778314198204,0.860416917855988,0.860416917855988, + +00:58:36, +0.274305130606979,0.274305130606979,0.274361565355468,0.274370612050515,0.274343213449917,0.274293808180091,0.274238229309002,0.27419134278054,0.274164724084679,0.274164724084679, +0.274305130606979,0.274305130606979,0.274361565355468,0.274370612050515,0.274343213449917,0.274293808180091,0.274238229309002,0.27419134278054,0.274164724084679,0.274164724084679, +0.298132372636729,0.298132372636729,0.298182275967343,0.298181419816483,0.298141864651422,0.298079565128145,0.298012073960743,0.297955977616678,0.297924316413074,0.297924316413074, +0.345232438556286,0.345232438556286,0.345268737096953,0.345247230436824,0.345182296010934,0.345093026605753,0.345000517966807,0.344924957389467,0.344882568768074,0.344882568768074, +0.414439922775051,0.414439922775051,0.414454558855878,0.414399953075599,0.414294233915507,0.41416149644135,0.414028355670571,0.413920762416801,0.413860454162077,0.413860454162077, +0.503893384512462,0.503893384512462,0.503877149880353,0.503774325427631,0.503608970334508,0.503412525734249,0.503219095259422,0.50306276514183,0.502974312074563,0.502974312074563, +0.610959173854452,0.610959173854452,0.61090242768815,0.610732025969071,0.610483117190086,0.610197772043227,0.609918704746508,0.609689886365471,0.609556659688796,0.609556659688796, +0.732207805037072,0.732207805037072,0.732104772108057,0.73183881330097,0.731474945129363,0.73107028768762,0.730673645108325,0.730336815985173,0.730126849707692,0.730126849707692, +0.863474224482883,0.863474224482883,0.863343224736198,0.862927369382694,0.862406262854395,0.861850106855556,0.861300383171411,0.860802250616751,0.860440918737841,0.860440918737841, + +00:58:37, +0.274414826875615,0.274414826875615,0.274471258602455,0.274480310066186,0.274452921979568,0.274403530268755,0.274347965038584,0.274301089448318,0.274274476817528,0.274274476817528, +0.274414826875615,0.274414826875615,0.274471258602455,0.274480310066186,0.274452921979568,0.274403530268755,0.274347965038584,0.274301089448318,0.274274476817528,0.274274476817528, +0.298239479169706,0.298239479169706,0.298289379611124,0.298288529490332,0.298248986922331,0.29818670345249,0.298119228373123,0.298063144918314,0.298031490863417,0.298031490863417, +0.345334114515774,0.345334114515774,0.345370410835215,0.345348913047705,0.345283995633028,0.345194747462332,0.345102259961584,0.345026716301726,0.34498433707372,0.34498433707372, +0.414532932328518,0.414532932328518,0.414547568074942,0.414492976150302,0.414387281189573,0.414254573167924,0.414121461491977,0.414013891534323,0.413953596263892,0.413953596263892, +0.503974137769289,0.503974137769289,0.503957906644207,0.50385510385175,0.503689783482925,0.503493380042638,0.503299989969362,0.503143692367002,0.503055257617106,0.503055257617106, +0.611023972271394,0.611023972271394,0.610967235851685,0.610796867180596,0.610548007630934,0.610262719312367,0.609983707638098,0.609754934705169,0.609621734337259,0.609621734337259, +0.732253246818856,0.732253246818856,0.732150231686421,0.731884322119891,0.731520522461955,0.731115941777025,0.730719374500501,0.730382609032997,0.730172682103731,0.730172682103731, +0.863497673552709,0.863497673552709,0.863366697174381,0.862950915972985,0.862429903144222,0.861873847622922,0.861324223270296,0.860826180324284,0.860464912888334,0.860464912888334, + +00:58:38, +0.274524511229274,0.274524511229274,0.274580939930012,0.274589996158808,0.274562618583316,0.274513240429343,0.274457688838523,0.274410824185434,0.274384217619209,0.274384217619209, +0.274524511229274,0.274524511229274,0.274580939930012,0.274589996158808,0.274562618583316,0.274513240429343,0.274457688838523,0.274410824185434,0.274384217619209,0.274384217619209, +0.298346572631885,0.298346572631885,0.298396470180778,0.298395626086496,0.298356096111949,0.29829382869214,0.298226369697883,0.298170299130173,0.298138652222831,0.298138652222831, +0.345435775594059,0.345435775594059,0.345472069690686,0.34545058077204,0.345385680363305,0.345296453421159,0.345203987052969,0.345128460306175,0.345086090469124,0.345086090469124, +0.41462592538834,0.41462592538834,0.414640560800296,0.414585982726579,0.414480311957116,0.414347633378169,0.414214550787382,0.414107004118095,0.414046721827638,0.414046721827638, +0.504054874059638,0.504054874059638,0.504038646441935,0.50393586530281,0.50377057964606,0.503574217350811,0.503380867664229,0.503224602565075,0.503136186125769,0.503136186125769, +0.61108875512354,0.61108875512354,0.611032028449494,0.610861692815732,0.610612882477847,0.610327650966586,0.61004869489393,0.609819967392037,0.609686793323052,0.609686793323052, +0.732298676598767,0.732298676598767,0.732195679259074,0.731929818917195,0.73156608774927,0.731161583793896,0.730765091793147,0.730428389958561,0.730218502363662,0.730218502363662, +0.863521116070285,0.863521116070285,0.863390163053342,0.862974455981111,0.862453536822004,0.861897581745656,0.861348056692212,0.860850103325944,0.860488900312625,0.860488900312625, + +00:58:39, +0.274634183662637,0.274634183662637,0.274690609332826,0.274699670323066,0.274672303255841,0.274622938656532,0.274567400703488,0.274520546986552,0.274493946484383,0.274493946484383, +0.274634183662637,0.274634183662637,0.274690609332826,0.274699670323066,0.274672303255841,0.274622938656532,0.274567400703488,0.274520546986552,0.274493946484383,0.274493946484383, +0.298453653020264,0.298453653020264,0.298503547673304,0.298502709601973,0.298463192217273,0.298400940844085,0.298333497932011,0.298277440249237,0.298245800488298,0.298245800488298, +0.345537421792063,0.345537421792063,0.345573713664288,0.345552233610751,0.345487350202684,0.345398144483153,0.34530569924188,0.345230189403728,0.3451878289552,0.3451878289552, +0.414718901959767,0.414718901959767,0.414733537037188,0.414678972809676,0.414573326223385,0.414440677077338,0.41430762356204,0.414200100173375,0.414139830858575,0.414139830858575, +0.504135593392127,0.504135593392127,0.504119369282153,0.504016609789427,0.503851358832539,0.503655037667401,0.503461728352662,0.503305495744699,0.503217097609207,0.503217097609207, +0.611153522420807,0.611153522420807,0.611096805491493,0.610926502884399,0.610677741740758,0.610392567015835,0.610113666523971,0.609884984436053,0.609751836656159,0.609751836656159, +0.732344094385438,0.732344094385438,0.732241114834647,0.731975303701526,0.731611640999972,0.731207213746918,0.730810796994969,0.730474158770592,0.730264310496225,0.730264310496225, +0.863544552040621,0.863544552040621,0.863413622378097,0.862997989412105,0.862477163892799,0.861921309228841,0.861371883442269,0.860874019626867,0.860512881015866,0.860512881015866, + +00:58:40, +0.274743844170397,0.274743844170397,0.274800266805593,0.274809332553657,0.274781975991837,0.274732624945007,0.274677100628162,0.274630257846346,0.274603663407722,0.274603663407722, +0.274743844170397,0.274743844170397,0.274800266805593,0.274809332553657,0.274781975991837,0.274732624945007,0.274677100628162,0.274630257846346,0.274603663407722,0.274603663407722, +0.298560720331845,0.298560720331845,0.298610612085708,0.298609780033769,0.298570275235305,0.298508039905324,0.2984406130725,0.298384568272496,0.298352935656804,0.298352935656804, +0.34563905311071,0.34563905311071,0.345675342756947,0.345653871564764,0.345589005152089,0.345499820649236,0.345407396529235,0.345331903595305,0.345289552532867,0.345289552532867, +0.414811862048046,0.414811862048046,0.414826496790863,0.414771946404838,0.414666323993625,0.414533704270679,0.414400679821202,0.414293179705418,0.414232923361956,0.414232923361956, +0.504216295775366,0.504216295775366,0.504200075173464,0.50409733732021,0.503932121050975,0.503735841001028,0.503542572043294,0.503386371914513,0.503297992076061,0.503297992076061, +0.611218274173102,0.611218274173102,0.611161566987583,0.610991297396508,0.610742585429588,0.61045746747005,0.610178622538172,0.609949985847184,0.609816864346555,0.609816864346555, +0.73238950018749,0.73238950018749,0.732286538421764,0.732020776481517,0.731657182222712,0.731252831644767,0.730856490114665,0.730519915477807,0.730310106510147,0.730310106510147, +0.863567981468721,0.863567981468721,0.863437075153653,0.863021516270993,0.862500784361658,0.861945030077556,0.861395703525571,0.860897929232179,0.860536855003201,0.860536855003201, + +00:58:41, +0.274853492747255,0.274853492747255,0.27490991234302,0.27491898284529,0.274891636786007,0.274842299289466,0.274786788607233,0.274739956759502,0.27471336838391,0.27471336838391, +0.274853492747255,0.274853492747255,0.27490991234302,0.27491898284529,0.274891636786007,0.274842299289466,0.274786788607233,0.274739956759502,0.27471336838391,0.27471336838391, +0.298667774563639,0.298667774563639,0.298717663415005,0.298716837378898,0.298677345163056,0.298615125872864,0.29854771511635,0.298491683196947,0.298460057725344,0.298460057725344, +0.345740669550926,0.345740669550926,0.345776956969588,0.345755494635002,0.345690645212442,0.345601481920329,0.345509078915955,0.345433602881823,0.345391261203041,0.345391261203041, +0.414904805658416,0.414904805658416,0.414919440066558,0.414864903517304,0.414759305273078,0.414626714963435,0.414493719570114,0.414386242719472,0.414325999343032,0.414325999343032, +0.504296981217952,0.504296981217952,0.504280764124466,0.504178047903755,0.504012866309971,0.503816627360307,0.503623398744747,0.503467231083145,0.503378869534966,0.503378869534966, +0.611283010390318,0.611283010390318,0.611226312947657,0.611056076361956,0.610807413554248,0.610522352339156,0.610243562946476,0.610014971635384,0.609881876404202,0.609881876404202, +0.732434894013533,0.732434894013533,0.732331950029036,0.732066237265792,0.731702711426134,0.731298437496105,0.730902171160921,0.73056566008891,0.730355890414143,0.730355890414143, +0.863591404359582,0.863591404359582,0.863460521385014,0.863045036562796,0.862524398233625,0.861968744296871,0.861419516947215,0.860921832147003,0.860560822279769,0.860560822279769, + +00:58:42, +0.274963129387924,0.274963129387924,0.275019545939826,0.27502862119268,0.275001285633065,0.274951961684618,0.274896464635404,0.274849643720716,0.274823061407638,0.274823061407638, +0.274963129387924,0.274963129387924,0.275019545939826,0.27502862119268,0.275001285633065,0.274951961684618,0.274896464635404,0.274849643720716,0.274823061407638,0.274823061407638, +0.298774815712664,0.298774815712664,0.298824701658215,0.298823881634382,0.298784401997544,0.298722198743717,0.298654804060571,0.298598785019594,0.29856716669092,0.29856716669092, +0.345842271113638,0.345842271113638,0.345878556303139,0.345857102822395,0.345792270384671,0.345703128297357,0.345610746402962,0.345535287264205,0.345492954966645,0.345492954966645, +0.414997732796115,0.414997732796115,0.415012366869508,0.414957844152308,0.414852270066979,0.414719709160845,0.41458674281402,0.414479289220782,0.414419058807051,0.414419058807051, +0.504377649728476,0.504377649728476,0.504361436143744,0.504258741548652,0.504093594618124,0.503897396753841,0.503704208465632,0.503548073259217,0.503459729994547,0.503459729994547, +0.611347731082335,0.611347731082335,0.611291043381594,0.611120839790628,0.610872226124636,0.610587221633066,0.61030848775881,0.610079941810594,0.609946872839049,0.609946872839049, +0.732480275872168,0.732480275872168,0.732377349665064,0.732111686062963,0.731748228618867,0.731344031309587,0.730947840142412,0.730611392612596,0.73040166221692,0.73040166221692, +0.863614820718195,0.863614820718195,0.863483961077175,0.863068550292527,0.862548005513737,0.86199245189185,0.861443323712294,0.860945728376454,0.860584782850701,0.860584782850701, + +00:58:43, +0.275072754087128,0.275072754087128,0.275129167590738,0.275138247590557,0.275110922527735,0.27506161212518,0.275006128707387,0.274959318724695,0.274932742473612,0.274932742473612, +0.275072754087128,0.275072754087128,0.275129167590738,0.275138247590557,0.275110922527735,0.27506161212518,0.275006128707387,0.274959318724695,0.274932742473612,0.274932742473612, +0.298881843775946,0.298881843775946,0.298931726812368,0.298930912797248,0.298891445735795,0.298829258514904,0.298761879902178,0.298705873737448,0.298674262550542,0.298674262550542, +0.345943857799775,0.345943857799775,0.34598014075853,0.34595869612787,0.345893880669703,0.345804759781246,0.345712398991181,0.345636956743373,0.345594633824599,0.345594633824599, +0.415090643466375,0.415090643466375,0.415105277204944,0.41505076831508,0.414945218380561,0.414812686868145,0.414679749558156,0.414572319214588,0.414512101759252,0.414512101759252, +0.504458301315518,0.504458301315518,0.504442091239875,0.504339418263479,0.504174305984017,0.503978149190224,0.503785001214554,0.503628898451339,0.503540573463418,0.503540573463418, +0.611412436259025,0.611412436259025,0.611355758299262,0.611185587692399,0.610937023150636,0.610652075361683,0.610373396985093,0.610144896382746,0.610011853661035,0.610011853661035, +0.732525645771984,0.732525645771984,0.732422737338438,0.732157122881632,0.731793733809532,0.731389613093854,0.730993497067803,0.730657113057547,0.730447421927173,0.730447421927173, +0.863638230549543,0.863638230549543,0.863507394235125,0.863092057465194,0.862571606207028,0.862016152867553,0.861467123825891,0.86096961792564,0.860608736721122,0.860608736721122, + +00:58:44, +0.275182366839601,0.275182366839601,0.275238777290496,0.27524786203366,0.275220547464754,0.275171250605883,0.275115780817905,0.275068981766158,0.275042411576544,0.275042411576544, +0.275182366839601,0.275182366839601,0.275238777290496,0.27524786203366,0.275220547464754,0.275171250605883,0.275115780817905,0.275068981766158,0.275042411576544,0.275042411576544, +0.298988858750517,0.298988858750517,0.299038738874499,0.299037930864532,0.298998476374841,0.298936305183454,0.298868942638194,0.298812949347531,0.298781345301227,0.298781345301227, +0.346045429610268,0.346045429610268,0.346081710336692,0.346060274552358,0.345995476068468,0.345906376372924,0.345814036681538,0.345738611320253,0.345696297777829,0.345696297777829, +0.415183537674424,0.415183537674424,0.415198171078091,0.415143676010847,0.415038150219051,0.414905648090563,0.414772739807755,0.414665332706126,0.414605128204875,0.414605128204875, +0.504538935987648,0.504538935987648,0.504522729421426,0.504420078056806,0.504255000416228,0.50405888467804,0.503865777000105,0.503709706668111,0.503621399950185,0.503621399950185, +0.611477125930246,0.611477125930246,0.611420457710516,0.611250320077129,0.611001804642124,0.610716913534895,0.61043829063523,0.610209835361758,0.610076818880085,0.610076818880085, +0.73257100372156,0.73257100372156,0.732468113057737,0.73220254773039,0.73183922700674,0.731435182857538,0.731039141945748,0.730702821432438,0.730493169553586,0.730493169553586, +0.863661633858607,0.863661633858607,0.863530820863849,0.863115558085799,0.862595200318522,0.862039847229031,0.861490917293086,0.860993500799663,0.860632683896152,0.860632683896152, + +00:58:45, +0.275291967640087,0.275291967640087,0.275348375033849,0.275357464516739,0.275330160438867,0.275280877121466,0.275225420961691,0.275178632839831,0.275152068711162,0.275152068711162, +0.275291967640087,0.275291967640087,0.275348375033849,0.275357464516739,0.275330160438867,0.275280877121466,0.275225420961691,0.275178632839831,0.275152068711162,0.275152068711162, +0.299095860633417,0.299095860633417,0.299145737841651,0.299144935833278,0.299105493911722,0.299043338746401,0.29897599226565,0.298920011846866,0.298888414939999,0.298888414939999, +0.346146986546051,0.346146986546051,0.346183265038559,0.346161838096794,0.346097056581898,0.346007978073321,0.345915659474961,0.345840250995771,0.34579794682726,0.34579794682726, +0.415276415425484,0.415276415425484,0.41529104849417,0.41523656724483,0.415131065587673,0.414998592833327,0.414865713568048,0.414758329700628,0.414698138149152,0.414698138149152, +0.504619553753427,0.504619553753427,0.504603350696956,0.504500720937193,0.504335677923322,0.504139603225864,0.50394653583087,0.503790497918126,0.503702209463444,0.503702209463444, +0.611541800105843,0.611541800105843,0.611485141625201,0.61131503695467,0.611066570608962,0.61078173616258,0.610503168719114,0.610274758757536,0.610141768506116,0.610141768506116, +0.732616349729465,0.732616349729465,0.732513476831531,0.732247960617818,0.731884708219089,0.73148074060926,0.731084774784891,0.730748517745929,0.730538905104833,0.730538905104833, +0.863685030650357,0.863685030650357,0.863554240968322,0.863139052159337,0.862618787853237,0.86206353498133,0.861514704118951,0.86101737700362,0.860656624380903,0.860656624380903, + +00:58:46, +0.275401556483342,0.275401556483342,0.275457960815558,0.275467055034553,0.27543976144483,0.27539049166668,0.27533504913349,0.275288271940453,0.2752617138722,0.2752617138722, +0.275401556483342,0.275401556483342,0.275457960815558,0.275467055034553,0.27543976144483,0.27539049166668,0.27533504913349,0.275288271940453,0.2752617138722,0.2752617138722, +0.299202849421695,0.299202849421695,0.299252723710877,0.299251927700535,0.299212498343485,0.299150359200789,0.299083028781584,0.29902706123249,0.29899547146389,0.29899547146389, +0.346248528608056,0.346248528608056,0.346284804865065,0.346263386762111,0.346198622210926,0.346109564883368,0.34601726737238,0.345941875770855,0.34589958097382,0.34589958097382, +0.415369276724775,0.415369276724775,0.415383909458399,0.415329442022245,0.415223964491645,0.415091521101658,0.414958670844257,0.414851310203321,0.414791131597311,0.414791131597311, +0.504700154621407,0.504700154621407,0.504683955075011,0.504581346913191,0.504416338513856,0.504220304842263,0.504027277715424,0.503871272209966,0.503783002011782,0.503783002011782, +0.611606458795651,0.611606458795651,0.611549810053148,0.611379738334859,0.611131321061,0.610846543254605,0.610568031246628,0.610339666579977,0.610206702549028,0.610206702549028, +0.732661683804254,0.732661683804254,0.732558828668379,0.732293361552485,0.731930177455167,0.731526286357632,0.731130395593862,0.730794202006672,0.730584628589576,0.730584628589576, +0.863708420929759,0.863708420929759,0.863577654553517,0.863162539690795,0.862642368816188,0.862087216129489,0.861538484308551,0.861041246542601,0.86068055818048,0.86068055818048, + +00:58:47, +0.275511133364131,0.275511133364131,0.275567534630393,0.275576633581874,0.27554935047741,0.275500094236286,0.275444665328056,0.275397899062775,0.275371347054404,0.275371347054404, +0.275511133364131,0.275511133364131,0.275567534630393,0.275576633581874,0.27554935047741,0.275500094236286,0.275444665328056,0.275397899062775,0.275371347054404,0.275371347054404, +0.299309825112404,0.299309825112404,0.299359696479233,0.299358906463363,0.299319489667187,0.299257366543668,0.299190052183041,0.299134097501443,0.299102514869939,0.299102514869939, +0.346350055797222,0.346350055797222,0.346386329817149,0.346364920549245,0.346300172956486,0.346211136804,0.346118860374728,0.346043485646437,0.346001200218439,0.346001200218439, +0.415462121577511,0.415462121577511,0.41547675397599,0.415422300348306,0.415316846936181,0.415184432900772,0.415051611641604,0.414944274219427,0.414884108554577,0.414884108554577, +0.504780738600129,0.504780738600129,0.504764542564132,0.50466195599334,0.504496982196378,0.504300989535791,0.504108002662331,0.503952029552203,0.503863777603774,0.503863777603774, +0.611671102009494,0.611671102009494,0.611614463004178,0.611444424227524,0.611196056008077,0.610911334820823,0.61063287822764,0.610404558838962,0.610271621018713,0.610271621018713, +0.732707005954476,0.732707005954476,0.732604168576827,0.732338750542952,0.731975634723553,0.731571820111252,0.731176004381286,0.730839874223307,0.730630340016467,0.730630340016467, +0.863731804701773,0.863731804701773,0.863601061624396,0.863186020685157,0.86266594321238,0.862110890678541,0.861562257866945,0.861065109421687,0.860704485299984,0.860704485299984, + +00:58:48, +0.27562069827723,0.27562069827723,0.275677096473135,0.275686200153482,0.275658927531385,0.275609684825055,0.275554269540154,0.275507514201555,0.275480968252532,0.275480968252532, +0.27562069827723,0.27562069827723,0.275677096473135,0.275686200153482,0.275658927531385,0.275609684825055,0.275554269540154,0.275507514201555,0.275480968252532,0.275480968252532, +0.299416787702607,0.299416787702607,0.299466656143785,0.299465872118824,0.299426467879887,0.299364360772095,0.299297062467075,0.299241120650774,0.299209545155192,0.299209545155192, +0.346451568114486,0.346451568114486,0.346487839895748,0.346466439459136,0.346401708819517,0.34631269383615,0.346220438482937,0.346145080623448,0.346102804562049,0.346102804562049, +0.415554949988902,0.415554949988902,0.415569582052151,0.415515142228221,0.415409712926492,0.415277328235883,0.415144535965305,0.415037221754165,0.41497706902617,0.41497706902617, +0.504861305698128,0.504861305698128,0.504845113172848,0.504742548186173,0.504577608979426,0.504381657314996,0.504188710680147,0.504032769953401,0.50394453624799,0.50394453624799, +0.611735729757182,0.611735729757182,0.6116791004881,0.611509094642479,0.611260775460021,0.610976110871078,0.61069770967201,0.610469435544363,0.610336523925049,0.610336523925049, +0.732752316188667,0.732752316188667,0.732649496565413,0.732384127597766,0.732021080032813,0.731617341878709,0.731221601155772,0.730885534404466,0.730676039394148,0.730676039394148, +0.863755181971351,0.863755181971351,0.863624462185919,0.863209495147399,0.862689511046813,0.862134558633512,0.861586024799188,0.861088965645956,0.860728405744507,0.860728405744507, + +00:58:49, +0.275730251217427,0.275730251217427,0.275786646338576,0.275795754744169,0.275768492601543,0.275719263427769,0.27566386176456,0.275617117351564,0.275590577461351,0.275590577461351, +0.275730251217427,0.275730251217427,0.275786646338576,0.275795754744169,0.275768492601543,0.275719263427769,0.27566386176456,0.275617117351564,0.275590577461351,0.275590577461351, +0.299523737189373,0.299523737189373,0.299573602701605,0.299572824663992,0.299533432978656,0.299471341883136,0.299404059630744,0.299348130677538,0.299316562316704,0.299316562316704, +0.346553065560789,0.346553065560789,0.346589335101804,0.346567943492723,0.346503229800956,0.346414235980757,0.346322001697943,0.346246660702823,0.346204394005583,0.346204394005583, +0.415647761964155,0.415647761964155,0.415662393692086,0.415607967667193,0.415502562467783,0.415370207112199,0.415237443820569,0.415130152812748,0.415070013017305,0.415070013017305, +0.504941855923925,0.504941855923925,0.504925666909679,0.504823123500212,0.504658218871528,0.504462308188415,0.504269401777418,0.504113493422113,0.504025277952986,0.504025277952986, +0.611800342048514,0.611800342048514,0.611743722514712,0.611573749589526,0.611325479426645,0.611040871415199,0.610762525589583,0.61053429670604,0.610401411277905,0.610401411277905, +0.732797614515352,0.732797614515352,0.732694812642663,0.732429492725465,0.732066513391503,0.731662851668583,0.731267185925921,0.730931182558765,0.73072172673125,0.73072172673125, +0.863778552743442,0.863778552743442,0.863647856243037,0.86323296308249,0.862713072324481,0.862158219999423,0.861609785110324,0.861112815220477,0.860752319519136,0.860752319519136, + +00:58:50, +0.275839792179518,0.275839792179518,0.275896184221518,0.275905297348738,0.275878045682682,0.275828830039222,0.27577344199606,0.275726708507584,0.27570017467564,0.27570017467564, +0.275839792179518,0.275839792179518,0.275896184221518,0.275905297348738,0.275878045682682,0.275828830039222,0.27577344199606,0.275726708507584,0.27570017467564,0.27570017467564, +0.299630673569779,0.299630673569779,0.299680536149774,0.299679764095947,0.299640384960571,0.299578309873862,0.299511043671117,0.2994551275788,0.299423566351536,0.299423566351536, +0.346654548137071,0.346654548137071,0.346690815436258,0.346669432650948,0.346604735901745,0.346515763238759,0.346423550020683,0.346348225885497,0.346305968549976,0.346305968549976, +0.41574055750847,0.41574055750847,0.415755188900994,0.415700776670422,0.415595395565255,0.415463069534924,0.415330335212606,0.415223067400387,0.415162940533193,0.415162940533193, +0.505022389286035,0.505022389286035,0.505006203783135,0.50490368194397,0.504738811881204,0.504542942164575,0.504350075962682,0.504194199966885,0.504106002727313,0.504106002727313, +0.611864938893278,0.611864938893278,0.611808329093797,0.611638389078459,0.611390167917755,0.611105616463006,0.610827325990195,0.61059914233384,0.610466283087135,0.610466283087135, +0.732842900943046,0.732842900943046,0.732740116817094,0.732474845934577,0.732111934808171,0.73170834948944,0.731312758700322,0.730976818694815,0.730767402036391,0.730767402036391, +0.863801917022986,0.863801917022986,0.863671243800697,0.863256424495395,0.862736627050372,0.862181874781287,0.861633538805396,0.861136658150316,0.860776226628952,0.860776226628952, + +00:58:51, +0.275949321158311,0.275949321158311,0.276005710116773,0.276014827962001,0.275987586769612,0.275938384654215,0.275883010229451,0.275836287664406,0.275809759890186,0.275809759890186, +0.275949321158311,0.275949321158311,0.276005710116773,0.276014827962001,0.275987586769612,0.275938384654215,0.275883010229451,0.275836287664406,0.275809759890186,0.275809759890186, +0.299737596840909,0.299737596840909,0.299787456485379,0.299786690411776,0.299747323822715,0.299685264741352,0.299618014585267,0.29956211135163,0.299530557256756,0.299530557256756, +0.346756015844276,0.346756015844276,0.346792280900054,0.346770906934755,0.346706227122826,0.346617275611097,0.346525083452097,0.346449776172408,0.346407528196165,0.346407528196165, +0.415833336627044,0.415833336627044,0.41584796768407,0.415793569243104,0.415688212224106,0.415555915509258,0.415423210146616,0.415315965522287,0.415255851579041,0.415255851579041, +0.505102905792963,0.505102905792963,0.505086723801718,0.50498422352595,0.504819388016964,0.504623559251996,0.504430733244466,0.50427488959625,0.504186710579509,0.504186710579509, +0.611929520301251,0.611929520301251,0.61187292023513,0.611703013119056,0.611454840943142,0.611170346024306,0.610892110883667,0.610663972437599,0.610531139362582,0.610531139362582, +0.732888175480255,0.732888175480255,0.732785409097211,0.73252018723362,0.732157344291351,0.731753835349838,0.731358319487556,0.731022442821213,0.730813065318182,0.730813065318182, +0.863825274814917,0.863825274814917,0.863694624863837,0.863279879391071,0.862760175229467,0.862205522984112,0.861657285889435,0.861160494440528,0.860800127079028,0.860800127079028, + +00:58:52, +0.276058838148624,0.276058838148624,0.276115224019166,0.276124346578781,0.276097115857151,0.276047927267564,0.275992566459541,0.275945854816831,0.275919333099789,0.275919333099789, +0.276058838148624,0.276058838148624,0.276115224019166,0.276124346578781,0.276097115857151,0.276047927267564,0.275992566459541,0.275945854816831,0.275919333099789,0.275919333099789, +0.299844506999853,0.299844506999853,0.299894363705514,0.299893603608571,0.29985424956218,0.299792206482695,0.299724972370277,0.299669081993106,0.299637535029439,0.299637535029439, +0.346857468683351,0.346857468683351,0.346893731494139,0.346872366345089,0.346807703465142,0.346718773098714,0.346626601993125,0.346551311564497,0.346509072945089,0.346509072945089, +0.415926099325071,0.415926099325071,0.415940730046504,0.415886345390428,0.415781012449527,0.415648745040395,0.415516068627799,0.415408847183648,0.415348746160052,0.415348746160052, +0.505183405453204,0.505183405453204,0.505167226973921,0.505064748254647,0.504899947287308,0.504704159459187,0.504511373631288,0.504355562318735,0.504267401518105,0.504267401518105, +0.611994086282195,0.611994086282195,0.611937495948473,0.611767621721085,0.611519498512585,0.611235060108894,0.610956880279813,0.610728787027142,0.610595980114079,0.610595980114079, +0.732933438135472,0.732933438135472,0.732830689491509,0.732565516631098,0.732202741849567,0.731799309258324,0.731403868296191,0.731068054946546,0.730858716585221,0.730858716585221, +0.863848626124164,0.863848626124164,0.863717999437392,0.863303327774468,0.86278371686674,0.8622291646129,0.861681026367471,0.861184324096166,0.860824020874432,0.860824020874432, + +00:58:53, +0.276168343145287,0.276168343145287,0.276224725923529,0.276233853193911,0.276206632940129,0.276157457874091,0.276102110681146,0.276055409959673,0.276028894299258,0.276028894299258, +0.276168343145287,0.276168343145287,0.276224725923529,0.276233853193911,0.276206632940129,0.276157457874091,0.276102110681146,0.276055409959673,0.276028894299258,0.276028894299258, +0.299951404043711,0.299951404043711,0.30000125780728,0.300000503683436,0.299961162176063,0.299899135094982,0.299831917023237,0.299776039500314,0.29974449966667,0.29974449966667, +0.346958906655241,0.346958906655241,0.346995167219461,0.346973810882897,0.346909164929641,0.346820255702553,0.346728105644709,0.346652832062704,0.34661060279769,0.34661060279769, +0.416018845607737,0.416018845607737,0.416033475993484,0.415979105117582,0.415873796246708,0.415741558133528,0.415608910661349,0.415501712389668,0.415441624281423,0.415441624281423, +0.505263888275243,0.505263888275243,0.505247713308225,0.505145256138545,0.504980489700727,0.504784742794647,0.504591997131656,0.504436218142856,0.50434807555162,0.50434807555162, +0.612058636845864,0.612058636845864,0.612002056243576,0.611832214894303,0.611584140635854,0.611299758726554,0.61102163418843,0.610793586112281,0.610660805351446,0.610660805351446, +0.73297868891718,0.73297868891718,0.732875958008473,0.732610834135509,0.732248127491335,0.731844771223433,0.731449405134784,0.731113655079391,0.730904355846095,0.730904355846095, +0.863871970955648,0.863871970955648,0.863741367526287,0.863326769650531,0.862807251967161,0.862252799672645,0.861704760244524,0.861208147122273,0.860847908020225,0.860847908020225, + +00:58:54, +0.276277836143137,0.276277836143137,0.276334215824706,0.276343347802237,0.276316138013388,0.276266976468632,0.276211642889096,0.276164953087754,0.276138443483414,0.276138443483414, +0.276277836143137,0.276277836143137,0.276334215824706,0.276343347802237,0.276316138013388,0.276266976468632,0.276211642889096,0.276164953087754,0.276138443483414,0.276138443483414, +0.300058287969587,0.300058287969587,0.300108138787787,0.300107390633478,0.300068061661472,0.300006050575316,0.299938848541242,0.299882983870345,0.299851451165538,0.299851451165538, +0.347060329760896,0.347060329760896,0.347096588076968,0.347075240549128,0.347010611517269,0.346921723423562,0.346829594407796,0.346754337667972,0.346712117754908,0.346712117754908, +0.416111575480227,0.416111575480227,0.41612620553019,0.416071848429747,0.415966563620832,0.415834354793841,0.415701736252454,0.415594561145538,0.415534485948348,0.415534485948348, +0.505344354267556,0.505344354267556,0.505328182813103,0.50522574718612,0.505061015265704,0.504865309266866,0.504672603754071,0.504516857077119,0.504428732688566,0.504428732688566, +0.612123172001999,0.612123172001999,0.612066601130178,0.611896792648455,0.611648767322705,0.611364441887058,0.611086372619307,0.610858369702817,0.610725615084491,0.610725615084491, +0.733023927833853,0.733023927833853,0.732921214656575,0.732656139755337,0.732293501225158,0.731890221253692,0.731494930011883,0.731159243228314,0.730949983109383,0.730949983109383, +0.863895309314286,0.863895309314286,0.863764729135445,0.863350205024201,0.862830780535691,0.862276428168337,0.861728487525609,0.861231963523889,0.860871788521462,0.860871788521462, + +00:58:55, +0.276387317137025,0.276387317137025,0.276443693717553,0.276452830398612,0.276425631071778,0.276376483046031,0.276321163078229,0.276274484195908,0.276247980647087,0.276247980647087, +0.276387317137025,0.276387317137025,0.276443693717553,0.276452830398612,0.276425631071778,0.276376483046031,0.276321163078229,0.276274484195908,0.276247980647087,0.276247980647087, +0.300165158774596,0.300165158774596,0.300215006644151,0.300214264455814,0.300174948015518,0.300112952920806,0.300045766921396,0.2999899151003,0.299958389523141,0.299958389523141, +0.347161738001267,0.347161738001267,0.347197994067612,0.347176655344734,0.347112043228977,0.347023176262687,0.346931068283329,0.346855828381247,0.34681361781769,0.34681361781769, +0.416204288947721,0.416204288947721,0.4162189186618,0.416164575332101,0.416059314577077,0.415927135026519,0.415794545406301,0.415687393456446,0.415627331166017,0.415627331166017, +0.505424803438612,0.505424803438612,0.50540863549702,0.505306221405838,0.50514152399071,0.504945858884326,0.504753193507022,0.504597479130023,0.504509372937445,0.504509372937445, +0.612187691760328,0.612187691760328,0.612131130618005,0.611961354993273,0.611713378582883,0.611429109600168,0.611151095582219,0.610923137808539,0.610790409323012,0.610790409323012, +0.733069154893954,0.733069154893954,0.73296645944428,0.732701433499058,0.732338863059529,0.731935659357614,0.731540442936025,0.73120481940187,0.730995598383652,0.730995598383652, +0.863918641204988,0.863918641204988,0.863788084269779,0.863373633900407,0.862854302577288,0.862300050104956,0.861752208215735,0.861255773306046,0.860895662383191,0.860895662383191, + +00:58:56, +0.27649678612181,0.27649678612181,0.276553159596932,0.276562300977902,0.27653511211016,0.276485977601144,0.276430671243394,0.276384003278979,0.276357505785118,0.276357505785118, +0.27649678612181,0.27649678612181,0.276553159596932,0.276562300977902,0.27653511211016,0.276485977601144,0.276430671243394,0.276384003278979,0.276357505785118,0.276357505785118, +0.300272016455856,0.300272016455856,0.300321861373496,0.300321125147567,0.300281821235321,0.300219842128566,0.300152672160811,0.300096833187286,0.300065314736584,0.300065314736584, +0.347263131377306,0.347263131377306,0.347299385192347,0.347278055270666,0.347213460065715,0.347124614220879,0.347032527272259,0.346957304203476,0.34691510298698,0.34691510298698, +0.416296986015394,0.416296986015394,0.416311615393488,0.416257285829818,0.41615204912062,0.416019898836737,0.41588733812807,0.415780209327575,0.415720159939615,0.415720159939615, +0.505505235796867,0.505505235796867,0.505489071368431,0.505386678806156,0.505222015884209,0.505026391655498,0.50483376639899,0.504678084310056,0.50458999630675,0.50458999630675, +0.61225219613057,0.61225219613057,0.612195644716773,0.612025901938479,0.611777974426123,0.61149376187563,0.611215803086932,0.610987890439224,0.610855188076792,0.610855188076792, +0.733114370105934,0.733114370105934,0.733011692380041,0.732746715375135,0.73238421300293,0.731981085543705,0.731585943915736,0.731250383608604,0.731041201677456,0.731041201677456, +0.863941966632656,0.863941966632656,0.863811432934198,0.863397056284078,0.8628778180969,0.862323665487481,0.861775922319905,0.861279576473768,0.860919529610455,0.860919529610455, + +00:58:57, +0.276606243092363,0.276606243092363,0.276662613457721,0.276671759534981,0.276644581123405,0.276595460128837,0.27654016737945,0.276493510331821,0.276467018892359,0.276467018892359, +0.276606243092363,0.276606243092363,0.276662613457721,0.276671759534981,0.276644581123405,0.276595460128837,0.27654016737945,0.276493510331821,0.276467018892359,0.276467018892359, +0.300378861010496,0.300378861010496,0.300428702972951,0.300427972705866,0.300388681318011,0.300326718195721,0.300259564256604,0.300203738128417,0.300172226802979,0.300172226802979, +0.347364509889967,0.347364509889967,0.347400761452126,0.347379440327879,0.347314862028437,0.34722603729909,0.347133971375534,0.347058765135606,0.347016573263728,0.347016573263728, +0.416389666688415,0.416389666688415,0.416404295730423,0.416349979928066,0.416244767256632,0.416112646229671,0.415980114422938,0.415873008764106,0.415812972274322,0.415812972274322, +0.505585651350771,0.505585651350771,0.50556949043578,0.505467119395521,0.505302490954654,0.505106907588846,0.504914322438447,0.504758672625696,0.504670602804964,0.504670602804964, +0.61231668512243,0.61231668512243,0.612260143436186,0.612090433493783,0.611842554862145,0.611558398723184,0.611280495143197,0.611052627604639,0.610919951355605,0.610919951355605, +0.733159573478234,0.733159573478234,0.733056913472299,0.732791985392022,0.732429551063834,0.732026499820458,0.731631432959531,0.73129593585705,0.731086792999342,0.731086792999342, +0.863965285602189,0.863965285602189,0.863834775133605,0.863420472180133,0.862901327099472,0.862347274320879,0.861799629843113,0.861303373032076,0.860943390208288,0.860943390208288, + +00:58:58, +0.276715688043564,0.276715688043564,0.276772055294804,0.276781206064734,0.276754038106396,0.276704930623986,0.276649651481269,0.276603005349299,0.276576519963671,0.276576519963671, +0.276715688043564,0.276715688043564,0.276772055294804,0.276781206064734,0.276754038106396,0.276704930623986,0.276649651481269,0.276603005349299,0.276576519963671,0.276576519963671, +0.30048569243565,0.30048569243565,0.300535531439654,0.30053480712785,0.30049552826072,0.300433581119399,0.300366443205901,0.300310629920815,0.300279125719447,0.300279125719447, +0.347465873540206,0.347465873540206,0.347502122847906,0.34748081051733,0.347416249118098,0.347327445498272,0.347235400594107,0.347160211178589,0.347118028648882,0.347118028648882, +0.416482330971953,0.416482330971953,0.416496959677768,0.41644265763201,0.416337468990278,0.416205377210489,0.416072874296078,0.415965791771212,0.415905768175314,0.415905768175314, +0.505666050108762,0.505666050108762,0.505649892707503,0.505547543182373,0.50538294921049,0.505187406692821,0.504994861633854,0.504839244085413,0.50475119244056,0.50475119244056, +0.612381158745603,0.612381158745603,0.612324626785936,0.612154949668883,0.611907119900661,0.611623020152554,0.611345171760757,0.611117349314537,0.610984699169214,0.610984699169214, +0.733204765019287,0.733204765019287,0.733102122729488,0.732837243558164,0.732474877250703,0.732071902196357,0.731676910075917,0.731341476155733,0.731132372357845,0.731132372357845, +0.863988598118477,0.863988598118477,0.863858110872896,0.863443881593486,0.862924829589942,0.862370876610116,0.861823330790351,0.861327162985983,0.860967244181721,0.860967244181721, + +00:58:59, +0.276825120970305,0.276825120970305,0.276881485103077,0.276890640562059,0.276863483054026,0.276814389081477,0.276759123543729,0.276712488326289,0.276686008993927,0.276686008993927, +0.276825120970305,0.276825120970305,0.276881485103077,0.276890640562059,0.276863483054026,0.276814389081477,0.276759123543729,0.276712488326289,0.276686008993927,0.276686008993927, +0.300592510728459,0.300592510728459,0.300642346770751,0.300641628410663,0.300602362060591,0.30054043089674,0.300473309005836,0.300417508561609,0.300386011483112,0.300386011483112, +0.347567222328981,0.347567222328981,0.347603469380647,0.347582165839975,0.347517621335654,0.34742883881938,0.347336814928931,0.347261642333377,0.347219469143395,0.347219469143395, +0.416574978871168,0.416574978871168,0.416589607240684,0.41653531894681,0.41643015432672,0.416298091784356,0.416165617752656,0.416058558354065,0.415998547647765,0.415998547647765, +0.50574643207927,0.50574643207927,0.505730278192028,0.505627950175139,0.505463390660153,0.505267888975868,0.505075383993664,0.504919798697668,0.504831765222003,0.504831765222003, +0.612445617009772,0.612445617009772,0.612389094775704,0.612219450473466,0.611971669551369,0.611687626173454,0.611409832949341,0.611182055578661,0.611049431527368,0.611049431527368, +0.733249944737513,0.733249944737513,0.733147320160028,0.732882489881992,0.732520191571987,0.732117292679875,0.731722375273388,0.731387004513164,0.73117793976149,0.73117793976149, +0.864011904186406,0.864011904186406,0.86388144015696,0.863467284529044,0.862948325573239,0.862394472360149,0.861847025166601,0.861350946340495,0.860991091535777,0.860991091535777, + +00:59:00, +0.276934541867486,0.276934541867486,0.276990902877447,0.277000063021861,0.276972915961196,0.276923835496208,0.276868583561722,0.276821959257675,0.276795485978009,0.276795485978009, +0.276934541867486,0.276934541867486,0.276990902877447,0.277000063021861,0.276972915961196,0.276923835496208,0.276868583561722,0.276821959257675,0.276795485978009,0.276795485978009, +0.300699315886073,0.300699315886073,0.300749148963394,0.300748436551457,0.300709182714773,0.300647267524886,0.300580161653547,0.300524374047935,0.300492884091111,0.300492884091111, +0.347668556257251,0.347668556257251,0.347704801051307,0.347683506296775,0.347618978682064,0.347530217263372,0.347438214380961,0.347363058600924,0.347320894748219,0.347320894748219, +0.416667610391219,0.416667610391219,0.416682238424326,0.416627963877623,0.416522823271118,0.416390789956433,0.416258344797837,0.41615130851783,0.416091310696841,0.416091310696841, +0.505826797270715,0.505826797270715,0.505810646897771,0.505708340382239,0.505543815312068,0.505348354446421,0.505155889526321,0.505000336470911,0.504912321157749,0.504912321157749, +0.612510059924608,0.612510059924608,0.612453547415158,0.612283935917207,0.612036203823955,0.611752216795588,0.611474478718666,0.611246746406742,0.611114148439805,0.611114148439805, +0.733295112641322,0.733295112641322,0.733192505772331,0.732927724371929,0.732565494036128,0.732162671279473,0.731767828560427,0.731432520937847,0.73122349521879,0.73122349521879, +0.864035203810854,0.864035203810854,0.863904762990681,0.863490680991709,0.86297181505429,0.862418061575928,0.86187071297684,0.861374723100613,0.861014932275472,0.861014932275472, + +00:59:01, +0.277043950730019,0.277043950730019,0.277100308612829,0.277109473439057,0.277082336822819,0.277033269863086,0.27697803153015,0.276931418138354,0.276904950910811,0.276904950910811, +0.277043950730019,0.277043950730019,0.277100308612829,0.277109473439057,0.277082336822819,0.277033269863086,0.27697803153015,0.276931418138354,0.276904950910811,0.276904950910811, +0.300806107905647,0.300806107905647,0.300855938014742,0.300855231547392,0.300815990220422,0.300754091000991,0.300687001146182,0.300631226376937,0.300599743540583,0.300599743540583, +0.347769875325978,0.347769875325978,0.347806117860848,0.347784831888692,0.347720321158288,0.347631580831206,0.347539598951154,0.347464459982185,0.34742230546431,0.34742230546431, +0.41676022553726,0.41676022553726,0.416774853233847,0.416720592429599,0.416615475828623,0.416483471731876,0.41635105543678,0.41624404226767,0.416184057327706,0.416184057327706, +0.50590714569151,0.50590714569151,0.505890998833141,0.505788713812084,0.505624223174653,0.505428803112906,0.505236378240259,0.505080857413584,0.504992860256243,0.504992860256243, +0.61257448749977,0.61257448749977,0.612517984713957,0.61234840600977,0.612100722728097,0.611816792028644,0.611539109078439,0.6113114218085,0.611178849916253,0.611178849916253, +0.733340268739114,0.733340268739114,0.733237679574798,0.732972947036388,0.732610784651555,0.732208038003604,0.731813269945509,0.731478025438275,0.731269038738248,0.731269038738248, +0.864058496996694,0.864058496996694,0.863928079378938,0.863514070986377,0.862995298038014,0.862441644262398,0.861894394226041,0.861398493271332,0.861038766405816,0.861038766405816, + +00:59:02, +0.277153347552827,0.277153347552827,0.277209702304152,0.277218871808574,0.27719174563382,0.277142692177028,0.277087467443923,0.277040864963233,0.277014403787237,0.277014403787237, +0.277153347552827,0.277153347552827,0.277209702304152,0.277218871808574,0.27719174563382,0.277142692177028,0.277087467443923,0.277040864963233,0.277014403787237,0.277014403787237, +0.300912886784346,0.300912886784346,0.300962713921961,0.300962013395633,0.300922784574701,0.300860901322213,0.300793827480895,0.300738065545764,0.300706589828677,0.300706589828677, +0.347871179536124,0.347871179536124,0.347907419810235,0.347886142616687,0.347821648765289,0.347732929523842,0.34764096864047,0.347565846478119,0.347523701292625,0.347523701292625, +0.416852824314438,0.416852824314438,0.416867451674393,0.416813204607887,0.416708112004386,0.416576137115837,0.41644374967464,0.416336759608742,0.416276787545519,0.416276787545519, +0.505987477350056,0.505987477350056,0.505971334006537,0.505869070473075,0.505704614256313,0.505509234983738,0.505316850143903,0.50516136153412,0.505073382525922,0.505073382525922, +0.612638899744908,0.612638899744908,0.612582406681746,0.612412860760806,0.612165226273457,0.611881351882304,0.611603724038355,0.611376081793641,0.611243535966427,0.611243535966427, +0.733385413039278,0.733385413039278,0.733282841575818,0.73301815788377,0.73265606342669,0.73225339286071,0.731858699437096,0.731523518022928,0.731314570328358,0.731314570328358, +0.864081783748793,0.864081783748793,0.863951389326601,0.863537454517936,0.863018774529322,0.862465220424499,0.861918068919166,0.861422256857638,0.861062593931814,0.861062593931814, + +00:59:03, +0.277262732330841,0.277262732330841,0.277319083946351,0.27732825812535,0.277301142389132,0.277252102432963,0.277196891297963,0.277150299727227,0.277123844602199,0.277123844602199, +0.277262732330841,0.277262732330841,0.277319083946351,0.27732825812535,0.277301142389132,0.277252102432963,0.277196891297963,0.277150299727227,0.277123844602199,0.277123844602199, +0.301019652519338,0.301019652519338,0.301069476682226,0.301068782093353,0.301029565774781,0.300967698485718,0.300900640654849,0.300844891551575,0.300813422952548,0.300813422952548, +0.347972468888655,0.347972468888655,0.348008706900433,0.347987438481727,0.347922961504029,0.347834263342243,0.347742323449868,0.347667218089684,0.347625082234122,0.347625082234122, +0.416945406727899,0.416945406727899,0.416960033751108,0.41690580041763,0.41680073180355,0.416668786113464,0.416536427516569,0.4164294605462,0.416369501355436,0.416369501355436, +0.506067792254745,0.506067792254745,0.506051652426348,0.505949410373603,0.505784988565449,0.505589650067325,0.505397305245668,0.505241848840941,0.505153887975215,0.505153887975215, +0.612703296669657,0.612703296669657,0.612646813328159,0.612477300179957,0.612229714469688,0.611945896366234,0.611668323608097,0.611440726371863,0.611308206600031,0.611308206600031, +0.733430545550194,0.733430545550194,0.733327991783773,0.733063356922467,0.73270133036994,0.732298735859221,0.731904117043642,0.731568998700277,0.731360089997602,0.731360089997602, +0.864105064072012,0.864105064072012,0.863974692838536,0.86356083159127,0.863042244533122,0.862488790067163,0.861941737061176,0.861446013864514,0.861086414858465,0.861086414858465, + +00:59:04, +0.277372105059005,0.277372105059005,0.277428453534376,0.277437632384331,0.277410527083699,0.277361500625829,0.277306303087203,0.277259722425264,0.277233273350622,0.277233273350622, +0.277372105059005,0.277372105059005,0.277428453534376,0.277437632384331,0.277410527083699,0.277361500625829,0.277306303087203,0.277259722425264,0.277233273350622,0.277233273350622, +0.301126405107803,0.301126405107803,0.301176226292716,0.301175537637734,0.30113633381784,0.30107448248868,0.301007440665211,0.300951704391534,0.300920242909361,0.300920242909361, +0.348073743384537,0.348073743384537,0.348109979132408,0.348088719484778,0.348024259375474,0.347935582287373,0.347843663380312,0.347768574817843,0.347726448289763,0.347726448289763, +0.417037972782784,0.417037972782784,0.417052599469129,0.416998379863965,0.416893335231258,0.4167614187299,0.416629088967711,0.416522145085192,0.416462198762606,0.416462198762606, +0.506148090413962,0.506148090413962,0.506131954100954,0.506029733522053,0.505865346110448,0.505670048372063,0.505477743553962,0.505322319342462,0.505234376612538,0.505234376612538, +0.612767678283643,0.612767678283643,0.61271120466282,0.61254172427685,0.612294187326433,0.612010425490091,0.611732907797337,0.611505355552849,0.611372861826756,0.611372861826756, +0.733475666280231,0.733475666280231,0.733373130207031,0.733108544160859,0.732746585489706,0.732344067007558,0.731949522773589,0.731614467478785,0.731405597754451,0.731405597754451, +0.864128337971204,0.864128337971204,0.863997989919603,0.863584202211255,0.863065708054314,0.862512353195316,0.861965398657021,0.861469764296936,0.861110229190758,0.861110229190758, + +00:59:05, +0.27748146573227,0.27748146573227,0.277537811063182,0.277546994580475,0.277519899712475,0.277470886750574,0.277415702806584,0.277369133052282,0.277342690027441,0.277342690027441, +0.27748146573227,0.27748146573227,0.277537811063182,0.277546994580475,0.277519899712475,0.277470886750574,0.277415702806584,0.277369133052282,0.277342690027441,0.277342690027441, +0.301233144546923,0.301233144546923,0.30128296275062,0.301282280025963,0.301243088701063,0.301181253328279,0.301114227509157,0.301058504062814,0.301027049696283,0.301027049696283, +0.348175003024738,0.348175003024738,0.34821123650713,0.348189985626808,0.348125542380592,0.348036886360198,0.347944988432765,0.347869916663557,0.347827799460509,0.347827799460509, +0.417130522484228,0.417130522484228,0.417145148833591,0.417090942952029,0.416985922292644,0.416854034970283,0.416721734033209,0.416614813230864,0.416554879772176,0.416554879772176, +0.506228371836081,0.506228371836081,0.506212239038728,0.506110039926796,0.505945686899691,0.505750429906342,0.505558165077182,0.505402773047087,0.505314848446301,0.505314848446301, +0.61283204459648,0.61283204459648,0.61277558069534,0.612606133061105,0.612358644853319,0.61207493926352,0.611797476615735,0.611569969346274,0.611437501656284,0.611437501656284, +0.733520775237746,0.733520775237746,0.733418256853951,0.733153719607316,0.732791828794375,0.732389386314132,0.731994916635368,0.7316599243669,0.731451093607368,0.731451093607368, +0.864151605451218,0.864151605451218,0.864021280574655,0.863607566382762,0.863089165097792,0.862535909813878,0.861989053711649,0.861493508159872,0.86113403693368,0.86113403693368, + +00:59:06, +0.277590814345601,0.277590814345601,0.277647156527739,0.277656344708752,0.277629260270425,0.277580260802158,0.277525090451061,0.277478531603228,0.277452094627601,0.277452094627601, +0.277590814345601,0.277590814345601,0.277647156527739,0.277656344708752,0.277629260270425,0.277580260802158,0.277525090451061,0.277478531603228,0.277452094627601,0.277452094627601, +0.301339870833892,0.301339870833892,0.301389686053133,0.301389009255235,0.30134983042164,0.301288011001702,0.301221001183871,0.301165290562594,0.301133843310493,0.301133843310493, +0.348276247810228,0.348276247810228,0.348312479025568,0.348291236908787,0.348226810520351,0.348138175561684,0.348046298608193,0.347971243627793,0.347929135747325,0.347929135747325, +0.417223055837363,0.417223055837363,0.417237681849625,0.41718348968695,0.417078492992841,0.41694663483975,0.416814362718202,0.416707464988355,0.416647544389287,0.416647544389287, +0.506308636529467,0.506308636529467,0.506292507248031,0.506190329596198,0.506026010941548,0.505830794678541,0.505638569823714,0.505483209963213,0.505395303484904,0.505395303484904, +0.612896395617769,0.612896395617769,0.61283994143532,0.612670526542327,0.612423087059965,0.612139437696153,0.61186203007294,0.611634567761798,0.611502126098283,0.611502126098283, +0.733565872431088,0.733565872431088,0.733463371732884,0.7331988832702,0.732837060292327,0.732434693787341,0.732040298637402,0.731705369373062,0.731496577564804,0.731496577564804, +0.864174866516897,0.864174866516897,0.864044564808538,0.863630924110656,0.863112615668444,0.862559459927764,0.862012702229998,0.861517245458285,0.86115783809221,0.86115783809221, + +00:59:07, +0.277700150893971,0.277700150893971,0.277756489923024,0.277765682764138,0.277738608752524,0.277689622775549,0.277634466015595,0.27758791807306,0.277561487146056,0.277561487146056, +0.277700150893971,0.277700150893971,0.277756489923024,0.277765682764138,0.277738608752524,0.277689622775549,0.277634466015595,0.27758791807306,0.277561487146056,0.277561487146056, +0.301446583965908,0.301446583965908,0.301496396197457,0.301495725322752,0.301456558976773,0.301394755506146,0.301327761686543,0.301272063888059,0.301240623749175,0.301240623749175, +0.348377477741979,0.348377477741979,0.348413706688696,0.348392473331688,0.348328063795723,0.348239449892801,0.348147593907565,0.348072555711515,0.348030457151177,0.348030457151177, +0.417315572847318,0.417315572847318,0.417330198522355,0.417276020073855,0.417171047336977,0.41703921834343,0.416906975027823,0.416800100362802,0.416740192619079,0.416740192619079, +0.506388884502475,0.506388884502475,0.506372758737216,0.506270602538613,0.50610631824438,0.505911142697028,0.50571895780194,0.505563630099224,0.505475741736737,0.505475741736737, +0.612960731357103,0.612960731357103,0.612904286892348,0.61273490473011,0.612487513955978,0.612203920797613,0.611926568178589,0.611699150809071,0.611566735162411,0.611566735162411, +0.733610957868595,0.733610957868595,0.733508474852167,0.73324403515786,0.73288227999193,0.732479989435577,0.732085668788101,0.731750802505702,0.731542049635198,0.731542049635198, +0.864198121173076,0.864198121173076,0.864067842626094,0.863654275399796,0.863136059771152,0.86258300354188,0.862036344217002,0.861540976197132,0.861181632671321,0.861181632671321, + +00:59:08, +0.277809475372362,0.277809475372362,0.277865811244027,0.277875008741623,0.277847945153756,0.277798972665727,0.27774382949516,0.277697292456746,0.277670867577772,0.277670867577772, +0.277809475372362,0.277809475372362,0.277865811244027,0.277875008741623,0.277847945153756,0.277798972665727,0.27774382949516,0.277697292456746,0.277670867577772,0.277670867577772, +0.301553283940177,0.301553283940177,0.301603093180801,0.301602428225722,0.301563274363666,0.301501486838811,0.30143450901437,0.301378824036405,0.301347391009521,0.301347391009521, +0.348478692820964,0.348478692820964,0.348514919497488,0.348493694896484,0.34842930220768,0.348340709354521,0.348248874331849,0.348173852915694,0.348131763673032,0.348131763673032, +0.417408073519215,0.417408073519215,0.417422698856902,0.417368534117865,0.417263585330176,0.41713178548645,0.416999570967201,0.416892719359338,0.416832824466684,0.416832824466684, +0.506469115763454,0.506469115763454,0.506452993514626,0.506350858762388,0.50618660881654,0.505991473970166,0.505799329020227,0.505644033463499,0.505556163210182,0.505556163210182, +0.613025051824059,0.613025051824059,0.612968617076001,0.612799267634038,0.612551925550953,0.61226838857751,0.611991090942308,0.611763718497733,0.611631328858314,0.611631328858314, +0.733656031558594,0.733656031558594,0.733553566220129,0.733289175278636,0.73292748790154,0.732525273267217,0.732131027095866,0.731796223773237,0.731587509826982,0.731587509826982, +0.864221369424585,0.864221369424585,0.864091114032157,0.863677620255033,0.863159497410792,0.862606540661129,0.86205997967759,0.861564700381363,0.861205420675978,0.861205420675978, + +00:59:09, +0.27791878777577,0.27791878777577,0.277975120485745,0.277984322636206,0.277957269469117,0.277908310467682,0.27785318088474,0.277806654749265,0.277780235917725,0.277780235917725, +0.27791878777577,0.27791878777577,0.277975120485745,0.277984322636206,0.277957269469117,0.277908310467682,0.27785318088474,0.277806654749265,0.277780235917725,0.277780235917725, +0.301659970753912,0.301659970753912,0.301709777000381,0.301709117961362,0.301669976579533,0.301608204996906,0.301541243164556,0.301485571004831,0.301454145088728,0.301454145088728, +0.348579893048158,0.348579893048158,0.348616117452919,0.34859490160415,0.348530525757196,0.348441953947815,0.348350139882017,0.348275135241298,0.348233055313859,0.348233055313859, +0.417500557858173,0.417500557858173,0.417515182858386,0.417461031824098,0.417356106977555,0.417224336273931,0.417092150541461,0.416985321983089,0.41692543993723,0.41692543993723, +0.506549330320739,0.506549330320739,0.506533211588596,0.50643109827586,0.506266882666371,0.506071788506305,0.505879683486937,0.505724420064405,0.505636567913611,0.505636567913611, +0.613089357028207,0.613089357028207,0.613032931995844,0.612863615263683,0.612616321854474,0.612332841045443,0.61205559837371,0.611828270837411,0.611695907195627,0.611695907195627, +0.733701093509402,0.733701093509402,0.733598645845087,0.733334303640857,0.732972684029506,0.732570545290631,0.732176373569087,0.731841633184077,0.731632958148574,0.731632958148574, +0.864244611276248,0.864244611276248,0.864114379031557,0.863700958681214,0.863182928592234,0.862630071290405,0.862083608616681,0.861588418015923,0.861229202111143,0.861229202111143, + +00:59:10, +0.278028088099197,0.278028088099197,0.278084417643188,0.278093624442894,0.278066581693613,0.278017636176414,0.277962520179328,0.277916004945606,0.277889592160901,0.277889592160901, +0.278028088099197,0.278028088099197,0.278084417643188,0.278093624442894,0.278066581693613,0.278017636176414,0.277962520179328,0.277916004945606,0.277889592160901,0.277889592160901, +0.301766644404334,0.301766644404334,0.301816447653421,0.301815794526894,0.301776665621595,0.301714909977648,0.301647964134314,0.301592304790545,0.301560885984003,0.301560885984003, +0.348681078424539,0.348681078424539,0.348717300555966,0.348696093455664,0.348631734445247,0.34854318367366,0.348451390559042,0.348376402689299,0.348334332074631,0.348334332074631, +0.417593025869307,0.417593025869307,0.417607650531917,0.417553513197666,0.417448612284231,0.417316870710991,0.417184713755724,0.417077908239179,0.417018039035845,0.417018039035845, +0.50662952818266,0.50662952818266,0.506613412967452,0.506511321087355,0.506347139802207,0.506152086313789,0.505960021210421,0.505804789910301,0.505716955855387,0.505716955855387, +0.613153646979102,0.613153646979102,0.613097231661434,0.612927947628605,0.612680702876113,0.612397278210999,0.612120090482399,0.611892807837719,0.611760470183973,0.611760470183973, +0.733746143729326,0.733746143729326,0.733643713735351,0.733379420252842,0.733017868384164,0.732615805514176,0.732221708216144,0.73188703074662,0.731678394608385,0.731678394608385, +0.864267846732884,0.864267846732884,0.864137637629116,0.863724290683179,0.86320635332034,0.862653595434599,0.862107231039192,0.86161212910575,0.86125297698177,0.86125297698177, + +00:59:11, +0.278137376337659,0.278137376337659,0.278193702711374,0.278202914156709,0.278175881822259,0.278126949786932,0.278071847373929,0.278025343040767,0.277998936302295,0.277998936302295, +0.278137376337659,0.278137376337659,0.278193702711374,0.278202914156709,0.278175881822259,0.278126949786932,0.278071847373929,0.278025343040767,0.277998936302295,0.277998936302295, +0.301873304888669,0.301873304888669,0.301923105137151,0.30192245791955,0.301883341487078,0.30182160177826,0.301754671920861,0.301699025390763,0.301667613692558,0.301667613692558, +0.348782248951085,0.348782248951085,0.34881846880761,0.348797270452004,0.348732928272812,0.348644398533029,0.348552626363899,0.348477655260672,0.348435593956319,0.348435593956319, +0.417685477557728,0.417685477557728,0.417700101882604,0.417645978243679,0.417541101255313,0.417409388802745,0.417277260615107,0.417170478132727,0.417110621767647,0.417110621767647, +0.506709709357537,0.506709709357537,0.50669359765951,0.506591527205193,0.506427380232372,0.506232367400949,0.50604034219902,0.505885143009537,0.505797327043864,0.505797327043864, +0.613217921686291,0.613217921686291,0.613161516082311,0.612992264738353,0.61274506862543,0.612461700083754,0.612184567277967,0.611957329508263,0.611825017832964,0.611825017832964, +0.733791182226664,0.733791182226664,0.733688769899216,0.733424525122899,0.733063040973841,0.732661053946202,0.732267031045408,0.731932416469254,0.731723819214813,0.731723819214813, +0.864291075799304,0.864291075799304,0.864160889829651,0.863747616265763,0.863229771599969,0.862677113098593,0.86213084695003,0.861635833655775,0.861276745292806,0.861276745292806, + +00:59:12, +0.27824665248618,0.27824665248618,0.278302975685333,0.278312191772678,0.27828516985008,0.278236251294257,0.278181162463557,0.278134669029758,0.278108268336915,0.278108268336915, +0.27824665248618,0.27824665248618,0.278302975685333,0.278312191772678,0.27828516985008,0.278236251294257,0.278181162463557,0.278134669029758,0.278108268336915,0.278108268336915, +0.301979952204151,0.301979952204151,0.302029749448808,0.302029108136567,0.301990004173218,0.301928280395972,0.301861366521423,0.301805732802705,0.301774328211613,0.301774328211613, +0.348883404628777,0.348883404628777,0.34891962220883,0.348898432594151,0.348834107240868,0.348745598526903,0.348653847297564,0.348578892956391,0.348536840959899,0.348536840959899, +0.417777912928541,0.417777912928541,0.417792536915552,0.417738426967241,0.417633573895908,0.4175018905543,0.417369791124721,0.417263031668848,0.417203188137753,0.417203188137753, +0.506789873853678,0.506789873853678,0.506773765673076,0.506671716637682,0.506507603965182,0.506312631776112,0.506120646461069,0.505965479370453,0.505877681487387,0.505877681487387, +0.613282181159306,0.613282181159306,0.613225785268009,0.613056566602466,0.612809419111977,0.612526106673274,0.612249028769993,0.612021835858635,0.611889550152199,0.611889550152199, +0.7338362090097,0.7338362090097,0.73373381434497,0.733469618259328,0.733108201806854,0.732706290595046,0.732312342065236,0.731977790360355,0.731769231976247,0.731769231976247, +0.864314298480313,0.864314298480313,0.864184135637972,0.863770935433793,0.863253183435971,0.862700624287265,0.862154456354099,0.861659531670924,0.861300507049192,0.861300507049192, + +00:59:13, +0.278355916539793,0.278355916539793,0.278412236560104,0.278421457285841,0.278394445772114,0.278345540693419,0.278290465443235,0.278243982907598,0.278217588259777,0.278217588259777, +0.278355916539793,0.278355916539793,0.278412236560104,0.278421457285841,0.278394445772114,0.278345540693419,0.278290465443235,0.278243982907598,0.278217588259777,0.278217588259777, +0.302086586348023,0.302086586348023,0.302136380585638,0.302135745175188,0.302096653677256,0.302034945828021,0.301968047933234,0.301912427023602,0.301881029538396,0.301881029538396, +0.348984545458595,0.348984545458595,0.34902076076061,0.348999579883088,0.348935271350399,0.34884678365626,0.348755053361016,0.348680115777434,0.348638073086348,0.348638073086348, +0.417870331986849,0.417870331986849,0.417884955635861,0.417830859373453,0.417726030211119,0.417594375970762,0.417462305289675,0.417355568852653,0.417295738151276,0.417295738151276, +0.506870021679386,0.506870021679386,0.506853917016449,0.506751889393123,0.506587811008944,0.50639287944759,0.506200934004891,0.506045799001381,0.50595801919429,0.50595801919429, +0.61334642540767,0.61334642540767,0.613290039228047,0.613120853230468,0.61287375434529,0.61259049798911,0.612313474968046,0.612086326898416,0.611954067151269,0.611954067151269, +0.733881224086712,0.733881224086712,0.733778847080891,0.733514699670416,0.733153350891509,0.732751515469036,0.732357641283979,0.732023152428293,0.731814632901065,0.731814632901065, +0.864337514780713,0.864337514780713,0.864207375058885,0.863794248192092,0.863276588833192,0.862724129005485,0.862178059256295,0.861683223156117,0.861324262255866,0.861324262255866, + +00:59:14, +0.278465168493545,0.278465168493545,0.278521485330737,0.278530710691249,0.278503709583406,0.27845481797946,0.278399756308,0.278353284669318,0.278326896065907,0.278326896065907, +0.278465168493545,0.278465168493545,0.278521485330737,0.278530710691249,0.278503709583406,0.27845481797946,0.278399756308,0.278353284669318,0.278326896065907,0.278326896065907, +0.302193207317532,0.302193207317532,0.302242998544891,0.302242369032665,0.30220328999644,0.302141598071653,0.302074716153533,0.30201910805069,0.30198771767014,0.30198771767014, +0.349085671441525,0.349085671441525,0.349121884463934,0.349100712319798,0.349036420602386,0.348947953922082,0.348856244555234,0.348781323724779,0.348739290336642,0.348739290336642, +0.417962734737748,0.417962734737748,0.417977358048627,0.417923275467409,0.417818470206043,0.417686845057232,0.417554803115073,0.417448089689248,0.417388271813323,0.417388271813323, +0.506950152842952,0.506950152842952,0.506934051697918,0.506832045479808,0.506668001371954,0.506473110423692,0.506281204838801,0.506126101910642,0.506038340172902,0.506038340172902, +0.613410654440894,0.613410654440894,0.613354277971934,0.613185124631876,0.612938074334897,0.612654874040805,0.612377905881683,0.612150802637177,0.61201856883975,0.61201856883975, +0.733926227465964,0.733926227465964,0.733823868115245,0.733559769364441,0.733198488236102,0.732796728576488,0.732402928709974,0.732068502681422,0.731860021997636,0.731860021997636, +0.864360724705295,0.864360724705295,0.864230608097188,0.863817554545475,0.863299987796472,0.862747627258118,0.862201655661509,0.861706908116266,0.861348010917755,0.861348010917755, + +00:59:15, +0.278574408342489,0.278574408342489,0.278630721992291,0.27863995198396,0.278612961279012,0.27856408314743,0.278509035052895,0.278462574309956,0.278436191750343,0.278436191750343, +0.278574408342489,0.278574408342489,0.278630721992291,0.27863995198396,0.278612961279012,0.27856408314743,0.278509035052895,0.278462574309956,0.278436191750343,0.278436191750343, +0.302299815109934,0.302299815109934,0.302349603323827,0.302348979706257,0.302309913128027,0.302248237124117,0.302181371179567,0.302125775881211,0.302094392604087,0.302094392604087, +0.349186782578552,0.349186782578552,0.349222993319789,0.349201829905267,0.349137554997814,0.349049109325352,0.3489574208812,0.348882516799408,0.348840492711764,0.348840492711764, +0.418055121186334,0.418055121186334,0.418069744158941,0.418015675254202,0.417910893885774,0.417779297818806,0.417647284606013,0.417540594183735,0.417480789128998,0.417480789128998, +0.507030267352659,0.507030267352659,0.507014169725762,0.506912184906018,0.506748175062503,0.506553324712713,0.506361458971105,0.50620638810655,0.506118644431539,0.506118644431539, +0.613474868268479,0.613474868268479,0.613418501509168,0.613249380816192,0.613002379090314,0.61271923483789,0.61244232152045,0.612215263084476,0.612083055227208,0.612083055227208, +0.733971219155714,0.733971219155714,0.733868877456289,0.733604827349672,0.733243613848918,0.732841929925709,0.732448204351551,0.73211384112809,0.731905399274316,0.731905399274316, +0.864383928258849,0.864383928258849,0.864253834757673,0.863840854498752,0.863323380330642,0.862771119050022,0.862225245574624,0.86173058655628,0.861371753039783,0.861371753039783, + +00:59:16, +0.27868363608169,0.27868363608169,0.278739946539837,0.278749181159045,0.278722200853999,0.278673336192389,0.278618301672976,0.278571851824562,0.278545475308132,0.278545475308132, +0.27868363608169,0.27868363608169,0.278739946539837,0.278749181159045,0.278722200853999,0.278673336192389,0.278618301672976,0.278571851824562,0.278545475308132,0.278545475308132, +0.302406409722491,0.302406409722491,0.30245619491971,0.302455577193229,0.302416523069278,0.302354862982674,0.30228801300859,0.302232430512416,0.302201054337485,0.302201054337485, +0.349287878870663,0.349287878870663,0.349324087329161,0.349302932640483,0.34923867453767,0.349150249867056,0.349058582339898,0.348983695002302,0.348941680212693,0.348941680212693, +0.418147491337693,0.418147491337693,0.41816211397189,0.41810805873892,0.418003301255401,0.417871734260576,0.417739749767592,0.417633082341213,0.417573290103401,0.417573290103401, +0.50711036521678,0.50711036521678,0.507094271108252,0.506992307680027,0.506828332088868,0.50663352232294,0.506441696410099,0.506286657597409,0.506198931978509,0.506198931978509, +0.613539066899912,0.613539066899912,0.613482709849236,0.61331362179291,0.613066668621044,0.612783580389884,0.612506721893881,0.612279708249861,0.612147526323198,0.612147526323198, +0.734016199164206,0.734016199164206,0.733913875112269,0.733649873634365,0.733288727738233,0.732887119524998,0.732493468217027,0.732159167776634,0.731950764739454,0.731950764739454, +0.864407125446155,0.864407125446155,0.864277055045127,0.863864148056728,0.863346766440531,0.862794604386051,0.862248829000519,0.861754258481059,0.861395488626867,0.861395488626867, + +00:59:17, +0.278792851706225,0.278792851706225,0.278849158968453,0.278858398211583,0.278831428303444,0.278782577109409,0.278727556163307,0.278681117208198,0.278654746734331,0.278654746734331, +0.278792851706225,0.278792851706225,0.278849158968453,0.278858398211583,0.278831428303444,0.278782577109409,0.278727556163307,0.278681117208198,0.278654746734331,0.278654746734331, +0.302512991152473,0.302512991152473,0.302562773329814,0.302562161490853,0.302523119817465,0.302461475644587,0.302394641637863,0.302339071941563,0.30230770286759,0.30230770286759, +0.349388960318847,0.349388960318847,0.349425166493041,0.349404020526434,0.349339779222942,0.349251375548179,0.349159728932314,0.349084858334446,0.349042852840415,0.349042852840415, +0.418239845196913,0.418239845196913,0.418254467492557,0.418200425926646,0.418095692320009,0.41796415438763,0.417832198604901,0.417725554166775,0.417665774741627,0.417665774741627, +0.507190446443581,0.507190446443581,0.50717435585365,0.507072413810097,0.506908472459319,0.506713703262654,0.506521917164071,0.506366910391514,0.506279202822111,0.506279202822111, +0.613603250344671,0.613603250344671,0.613546903001612,0.61337784757151,0.61313094293658,0.612847910706295,0.612571107011501,0.612344138142868,0.612211982137263,0.612211982137263, +0.734061167499677,0.734061167499677,0.733958861091422,0.733694908226769,0.733333829912312,0.732932297382639,0.73253872031471,0.732204482635378,0.731996118401386,0.731996118401386, +0.86443031627199,0.86443031627199,0.86430026896433,0.863887435224199,0.863370146130958,0.862818083271051,0.862272405944066,0.861777923895497,0.861419217683917,0.861419217683917, + +00:59:18, +0.278902055211177,0.278902055211177,0.27895835927323,0.278967603136666,0.278940643622433,0.278891805893571,0.278836798518964,0.278790370455932,0.278764006024008,0.278764006024008, +0.278902055211177,0.278902055211177,0.27895835927323,0.278967603136666,0.278940643622433,0.278891805893571,0.278836798518964,0.278790370455932,0.278764006024008,0.278764006024008, +0.302619559397155,0.302619559397155,0.302669338551418,0.302668732596409,0.302629703369862,0.302568075107131,0.302501257064655,0.302445700165916,0.302414338191663,0.302414338191663, +0.349490026924094,0.349490026924094,0.349526230812419,0.349505093564112,0.349440869054619,0.349352486369711,0.349260860659433,0.349186006796826,0.349144010595913,0.349144010595913, +0.418332182769072,0.418332182769072,0.418346804726021,0.418292776822459,0.41818806708468,0.418056558205052,0.417924631123026,0.41781800966551,0.417758243048767,0.417758243048767, +0.507270511041318,0.507270511041318,0.507254423970208,0.507152503304485,0.506988596182119,0.506793867540123,0.506602121241298,0.50644714649715,0.506359456970637,0.506359456970637, +0.613667418612221,0.613667418612221,0.613611080975759,0.613442058161462,0.613195202046404,0.612912225796619,0.61263547688282,0.61240855277302,0.612276422678936,0.612276422678936, +0.73410612417035,0.73410612417035,0.734003835401972,0.733739931135119,0.733378920379411,0.73297746350691,0.732583960652898,0.732249785712639,0.732041460268439,0.732041460268439, +0.864453500741123,0.864453500741123,0.864323476520057,0.863910716005958,0.86339351940674,0.862841555709862,0.862295976410131,0.861801582804484,0.861442940215839,0.861442940215839, + +00:59:19, +0.279011246591642,0.279011246591642,0.279067547449269,0.279076795929392,0.279049846806063,0.279001022539966,0.278946028735032,0.278899611562846,0.27887325317224,0.27887325317224, +0.279011246591642,0.279011246591642,0.279067547449269,0.279076795929392,0.279049846806063,0.279001022539966,0.278946028735032,0.278899611562846,0.27887325317224,0.27887325317224, +0.302726114453822,0.302726114453822,0.302775890581809,0.302775290507183,0.302736273723755,0.302674661367584,0.30260785928624,0.302552315182746,0.302520960306974,0.302520960306974, +0.349591078687397,0.349591078687397,0.34962728028829,0.349606151754509,0.349541944033694,0.349453582332641,0.349361977522246,0.349287140390429,0.349245153480175,0.349245153480175, +0.418424504059248,0.418424504059248,0.418439125677358,0.418385111431433,0.418280425554489,0.418148945717922,0.41801704732705,0.417910448842504,0.417850695029907,0.417850695029907, +0.507350559018235,0.507350559018235,0.50733447546617,0.507232576171436,0.507068703265519,0.506874015163608,0.506682308650052,0.506527365922595,0.506439694432366,0.506439694432366, +0.613731571712018,0.613731571712018,0.613675243781132,0.613506253572225,0.613259445959987,0.612976525670341,0.612699831517339,0.612472952149832,0.612340847957738,0.612340847957738, +0.734151069184441,0.734151069184441,0.734048798052138,0.733784942367644,0.733423999147774,0.733022617906076,0.732629189239878,0.732295077016723,0.732086790348929,0.732086790348929, +0.864476678858317,0.864476678858317,0.864346677717077,0.863933990406791,0.863416886272684,0.862865021707319,0.862319540403573,0.861825235212903,0.861466656227529,0.861466656227529, + +00:59:20, +0.279120425842725,0.279120425842725,0.279176723491678,0.279185976584872,0.279159037849441,0.279110227043696,0.279055246806607,0.27900884052403,0.278982488174115,0.278982488174115, +0.279120425842725,0.279120425842725,0.279176723491678,0.279185976584872,0.279159037849441,0.279110227043696,0.279055246806607,0.27900884052403,0.278982488174115,0.278982488174115, +0.302832656319764,0.302832656319764,0.302882429418279,0.302881835220469,0.302842830876434,0.302781234423233,0.3027144482999,0.302658916989332,0.302627569210799,0.302627569210799, +0.34969211560975,0.34969211560975,0.349728314921646,0.34970719509862,0.349643004161159,0.349554663437962,0.349463079521741,0.349388259116244,0.349346281494191,0.349346281494191, +0.418516809072513,0.418516809072513,0.418531430351636,0.41847742975864,0.41837276773451,0.418241316931314,0.418109447222051,0.418002871702838,0.417943130690131,0.417943130690131, +0.507430590382572,0.507430590382572,0.507414510349771,0.507312632419186,0.507148793717762,0.50695414614136,0.506762479398592,0.506607568676116,0.50651991521557,0.50651991521557, +0.613795709653505,0.613795709653505,0.613739391427171,0.613570433813245,0.613323674686787,0.613040810336937,0.612764170924547,0.612537336282805,0.612405257983177,0.612405257983177, +0.734196002550155,0.734196002550155,0.734093749050123,0.733829941932561,0.733469066225636,0.733067760588393,0.732674406083928,0.732340356555924,0.732132108651163,0.732132108651163, +0.864499850628332,0.864499850628332,0.864369872560152,0.863957258431478,0.863440246733594,0.862888481268249,0.862343097929247,0.861848881125628,0.861490365723882,0.861490365723882, + +00:59:21, +0.279229592959542,0.279229592959542,0.279285887395578,0.279295145098226,0.279268216747684,0.279219419399872,0.279164452728794,0.279118057334584,0.279091711024731,0.279091711024731, +0.279229592959542,0.279229592959542,0.279285887395578,0.279295145098226,0.279268216747684,0.279219419399872,0.279164452728794,0.279118057334584,0.279091711024731,0.279091711024731, +0.302939184992278,0.302939184992278,0.302988955058131,0.302988366733566,0.302949374825196,0.302887794271372,0.302821024102925,0.302765505582959,0.302734164900422,0.302734164900422, +0.349793137692149,0.349793137692149,0.349829334713485,0.349808223597441,0.34974404943801,0.349655729686666,0.349564166658912,0.349489362975263,0.349447394638949,0.349447394638949, +0.418609097813935,0.418609097813935,0.418623718753922,0.418569731809146,0.418465093629811,0.418333671850301,0.418201830813104,0.418095278251588,0.418035550034517,0.418035550034517, +0.507510605142557,0.507510605142557,0.507494528629235,0.507392672055964,0.507228867547082,0.507034260481622,0.506842633495169,0.506687754765973,0.506600119328514,0.506600119328514, +0.613859832446113,0.613859832446113,0.613803523923305,0.61363459889396,0.613387888236252,0.613105079805867,0.612828495113924,0.612601705181431,0.612469652764751,0.612469652764751, +0.734240924275687,0.734240924275687,0.734138688404124,0.733874929838075,0.733514121621222,0.733112891562108,0.732719611193314,0.732385624338527,0.732177415183437,0.732177415183437, +0.864523016055917,0.864523016055917,0.864393061054038,0.863980520084791,0.863463600794266,0.862911934397476,0.862366648992,0.861872520547531,0.861514068709783,0.861514068709783, + +00:59:22, +0.279338747937217,0.279338747937217,0.279395039156099,0.279404301464585,0.279377383495918,0.279328599603616,0.279273646496708,0.27922726198962,0.279200921719196,0.279200921719196, +0.279338747937217,0.279338747937217,0.279395039156099,0.279404301464585,0.279377383495918,0.279328599603616,0.279273646496708,0.27922726198962,0.279200921719196,0.279200921719196, +0.303045700468668,0.303045700468668,0.30309546749867,0.303094885043783,0.303055905567346,0.302994340909301,0.302927586692611,0.302872080960919,0.302840747373134,0.302840747373134, +0.34989414493559,0.34989414493559,0.349930339664806,0.349909237251968,0.349845079865242,0.34975678107975,0.349665238934752,0.349590451968479,0.349548492915443,0.349548492915443, +0.418701370288577,0.418701370288577,0.418715990889279,0.418662017588012,0.418557403245455,0.418426010479949,0.418294198105279,0.418187668493828,0.418127953068138,0.418127953068138, +0.507590603306409,0.507590603306409,0.50757453031278,0.507472695089988,0.507308924761704,0.507114358192628,0.506922770948026,0.506767924200413,0.50668030677945,0.50668030677945, +0.613923940099265,0.613923940099265,0.613867641278954,0.613698748823793,0.61345208661782,0.613169334086585,0.612892804094934,0.612666058855188,0.612534032311948,0.612534032311948, +0.734285834369221,0.734285834369221,0.734183616122327,0.733919906092384,0.733559165342746,0.733158010835455,0.732764804576293,0.732430880372808,0.732222709954036,0.732222709954036, +0.86454617514582,0.86454617514582,0.864416243203487,0.8640037753715,0.863486948459491,0.862935381099815,0.862390193596673,0.861896153483476,0.861537765190112,0.861537765190112, + +00:59:23, +0.279447890770887,0.279447890770887,0.279504178768381,0.279513445679089,0.27948653808928,0.279437767650059,0.279382828105476,0.279336454484257,0.279310120252627,0.279310120252627, +0.279447890770887,0.279447890770887,0.279504178768381,0.279513445679089,0.27948653808928,0.279437767650059,0.279382828105476,0.279336454484257,0.279310120252627,0.279310120252627, +0.303152202746246,0.303152202746246,0.303201966737212,0.303201390148434,0.303162423100196,0.303100874334327,0.30303413606626,0.302978643120513,0.302947316626232,0.302947316626232, +0.349995137341074,0.349995137341074,0.350031329776606,0.350010236063203,0.349946095443856,0.349857817618209,0.349766296350258,0.349691526096885,0.349649576324667,0.349649576324667, +0.418793626501499,0.418793626501499,0.418808246762763,0.418754287100297,0.418649696586503,0.41851833282532,0.418386549103642,0.418280042434626,0.418220339796066,0.418220339796066, +0.507670584882339,0.507670584882339,0.507654515408613,0.507552701529469,0.507388965369844,0.507194439282602,0.507002891765395,0.506848076987679,0.506760477576624,0.506760477576624, +0.613988032622369,0.613988032622369,0.613931743503526,0.613762883612158,0.613516269840914,0.61323357318853,0.612957097877034,0.612730397313545,0.612598396634244,0.612598396634244, +0.734330732838932,0.734330732838932,0.734228532212906,0.733964870703674,0.733604197398412,0.73320311841666,0.732809986241112,0.732476124667031,0.732267992971237,0.732267992971237, +0.86456932790278,0.86456932790278,0.864439419013243,0.864027024296365,0.863510289734055,0.862958821380076,0.862413731748102,0.861919779938322,0.861561455169743,0.861561455169743, + +00:59:24, +0.279557021455696,0.279557021455696,0.279613306227575,0.279622577736888,0.279595680522918,0.279546923534342,0.279491997550232,0.279445634813627,0.279419306620153,0.279419306620153, +0.279557021455696,0.279557021455696,0.279613306227575,0.279622577736888,0.279595680522918,0.279546923534342,0.279491997550232,0.279445634813627,0.279419306620153,0.279419306620153, +0.303258691822329,0.303258691822329,0.303308452771078,0.30330788204484,0.303268927421064,0.303207394543766,0.303140672221184,0.303085192059047,0.303053872657019,0.303053872657019, +0.350096114909601,0.350096114909601,0.350132305049888,0.350111220032145,0.35004709617485,0.349958839303044,0.349867338906425,0.349792585361479,0.349750644867616,0.349750644867616, +0.418885866457756,0.418885866457756,0.418900486379429,0.418846540351056,0.418741973658011,0.418610638891474,0.418478883813253,0.418372400079047,0.418312710223365,0.418312710223365, +0.507750549878548,0.507750549878548,0.507734483924932,0.507632691382607,0.50746898937971,0.507274503759759,0.507082995955503,0.506928213136003,0.506840631728271,0.506840631728271, +0.614052110024824,0.614052110024824,0.613995830606417,0.613827003268458,0.613580437914951,0.613297797121132,0.613021376469669,0.612794720565958,0.612662745741101,0.612662745741101, +0.734375619692985,0.734375619692985,0.734273436684027,0.734009823680122,0.733649217796414,0.733248214313939,0.732855156196008,0.73252135722945,0.732313264243305,0.732313264243305, +0.864592474331531,0.864592474331531,0.864462588488044,0.864050266864143,0.863533624622735,0.862982255243063,0.862437263451116,0.861943399916919,0.861585138653543,0.861585138653543, + +00:59:25, +0.2796661399868,0.2796661399868,0.279722421528841,0.279731697633142,0.279704810791988,0.279656067251617,0.279601154826123,0.279554802972871,0.279528480816912,0.279528480816912, +0.2796661399868,0.2796661399868,0.279722421528841,0.279731697633142,0.279704810791988,0.279656067251617,0.279601154826123,0.279554802972871,0.279528480816912,0.279528480816912, +0.303365167694243,0.303365167694243,0.303414925597596,0.303414360730328,0.303375418527276,0.303313901534937,0.303247195154698,0.303191727773834,0.303160415462809,0.303160415462809, +0.350197077642174,0.350197077642174,0.350233265485656,0.350212189159798,0.350148082059226,0.350059846135254,0.349968366604254,0.349893629763258,0.349851698545287,0.349851698545287, +0.4189780901624,0.4189780901624,0.418992709744326,0.418938777345336,0.418834234465029,0.418702928683464,0.418571202239172,0.418464741432149,0.418405064355098,0.418405064355098, +0.507830498303228,0.507830498303228,0.507814435869927,0.507712664657593,0.507548996799499,0.507354551632306,0.507163083526563,0.507008332653606,0.506920769242619,0.506920769242619, +0.614116172316018,0.614116172316018,0.614059902597012,0.613891107802084,0.613644590849332,0.613362005893807,0.613085639882271,0.612859028621874,0.612727079641975,0.612727079641975, +0.734420494939533,0.734420494939533,0.734318329543846,0.734054765029893,0.733694226544938,0.733293298535495,0.732900314449206,0.73256657806831,0.732358523778494,0.732358523778494, +0.8646156144368,0.8646156144368,0.864485751632624,0.864073503079584,0.863556953130304,0.863005682693575,0.862460788710539,0.861967013424115,0.861608815646375,0.861608815646375, + +00:59:26, +0.279775246359365,0.279775246359365,0.279831524667348,0.279840805363023,0.279813928891657,0.279765198797046,0.279710299928304,0.279663958957139,0.279637642838052,0.279637642838052, +0.279775246359365,0.279775246359365,0.279831524667348,0.279840805363023,0.279813928891657,0.279765198797046,0.279710299928304,0.279663958957139,0.279637642838052,0.279637642838052, +0.30347163035932,0.30347163035932,0.303521385214101,0.303520826202234,0.303481896416164,0.303420395305171,0.303353704864128,0.303298250262194,0.303266945040918,0.303266945040918, +0.350298025539796,0.350298025539796,0.350334211084913,0.350313143447166,0.350249053097988,0.350160838115841,0.350069379444745,0.349994659303222,0.34995273735868,0.34995273735868, +0.419070297620477,0.419070297620477,0.419084916862498,0.419030998088184,0.418926479012606,0.41879520220634,0.41866350438645,0.41855706649899,0.418497402196322,0.418497402196322, +0.507910430164564,0.507910430164564,0.507894371251778,0.507792621362611,0.5076289876374,0.50743458290844,0.507243154486782,0.507088435548702,0.507000890127885,0.507000890127885, +0.614180219505326,0.614180219505326,0.614123959484685,0.613955197222417,0.613708728653449,0.613426199515964,0.613149888124261,0.612923321490727,0.612791398346306,0.612791398346306, +0.734465358586722,0.734465358586722,0.734363210800508,0.734099694761146,0.733739223652156,0.733338371089526,0.732945461008923,0.732611787191844,0.73240377158505,0.73240377158505, +0.86463874822331,0.86463874822331,0.864508908451708,0.864096732947431,0.86358027526153,0.863029103736404,0.862484307531188,0.861990620464748,0.861632486153094,0.861632486153094, + +00:59:27, +0.279884340568564,0.279884340568564,0.279940615638277,0.279949900921709,0.279923034817103,0.2798743181658,0.279819432851941,0.279773102761591,0.279746792678731,0.279746792678731, +0.279884340568564,0.279884340568564,0.279940615638277,0.279949900921709,0.279923034817103,0.2798743181658,0.279819432851941,0.279773102761591,0.279746792678731,0.279746792678731, +0.303578079814899,0.303578079814899,0.303627831617936,0.3036272784579,0.303588361085068,0.303526875851802,0.303460201346803,0.303404759521455,0.303373461388673,0.303373461388673, +0.350398958603473,0.350398958603473,0.350435141848666,0.350414082895255,0.350350009292142,0.35026181524581,0.3501703774289,0.350095673982372,0.350053761308796,0.350053761308796, +0.419162488837031,0.419162488837031,0.419177107738986,0.419123202584641,0.419018707305784,0.41888745946515,0.418755790260137,0.418649375284621,0.41858972375209,0.41858972375209, +0.50799034547073,0.50799034547073,0.507974290078658,0.507872561505835,0.507708961901594,0.507514597596351,0.507323208844358,0.507168521829497,0.507080994392278,0.507080994392278, +0.614244251602115,0.614244251602115,0.6141880012788,0.614019271538824,0.613772851336684,0.613490377996998,0.613214121205052,0.612987599181941,0.612855701863524,0.612855701863524, +0.734510210642685,0.734510210642685,0.734408080462148,0.734144612882024,0.733784209126233,0.733383431984215,0.732990595883365,0.732656984608278,0.732449007671208,0.732449007671208, +0.864661875695778,0.864661875695778,0.864532058950019,0.864119956472423,0.863603591021173,0.863052518376335,0.862507819917874,0.862014221043653,0.86165615017855,0.86165615017855, + +00:59:28, +0.279993422609585,0.279993422609585,0.280049694436817,0.280058984304391,0.280032128563512,0.279983425353061,0.27992855359221,0.2798822343814,0.279855930334117,0.279855930334117, +0.279993422609585,0.279993422609585,0.280049694436817,0.280058984304391,0.280032128563512,0.279983425353061,0.27992855359221,0.2798822343814,0.279855930334117,0.279855930334117, +0.303684516058325,0.303684516058325,0.303734264806449,0.303733717494675,0.303694812531334,0.303633343172171,0.303566684600061,0.303511255548952,0.303479964503406,0.303479964503406, +0.350499876834214,0.350499876834214,0.350536057777924,0.350515007505073,0.350450950642693,0.350362777526165,0.350271360557725,0.350196673801712,0.350154770396636,0.350154770396636, +0.419254663817099,0.419254663817099,0.419269282378828,0.419215390839744,0.419110919349602,0.418979700464934,0.418848059865278,0.418741667794089,0.418682029027452,0.418682029027452, +0.508070244229892,0.508070244229892,0.508054192358729,0.507952485095429,0.507788919600252,0.507594595704217,0.507403246607479,0.507248591504186,0.507161082043999,0.507161082043999, +0.614308268615737,0.614308268615737,0.614252027988708,0.614083330760664,0.613836958908405,0.613554541346292,0.613278339134042,0.613051861704927,0.612919990203051,0.612919990203051, +0.734555051115547,0.734555051115547,0.73445293853689,0.734189519400666,0.733829182975322,0.733428481227737,0.733035719080727,0.732702170325824,0.732494232045192,0.732494232045192, +0.864684996858912,0.864684996858912,0.864555203132271,0.864143173659291,0.863626900413987,0.863075926618149,0.862531325875403,0.862037815165658,0.861679807727585,0.861679807727585, + +00:59:29, +0.280102492477621,0.280102492477621,0.280158761058169,0.280168055506269,0.28014121012608,0.28009252035402,0.280037662144295,0.279991353811746,0.279965055799388,0.279965055799388, +0.280102492477621,0.280102492477621,0.280158761058169,0.280168055506269,0.28014121012608,0.28009252035402,0.280037662144295,0.279991353811746,0.279965055799388,0.279965055799388, +0.303790939086952,0.303790939086952,0.303840684776997,0.303840143309915,0.303801250752315,0.30373979726363,0.303673154621248,0.303617738342024,0.303586454382455,0.303586454382455, +0.350600780233026,0.350600780233026,0.350636958873696,0.350615917277629,0.350551877150651,0.350463724957915,0.350372328832223,0.350297658762245,0.350255764623206,0.350255764623206, +0.419346822565716,0.419346822565716,0.419361440787056,0.419307562858526,0.419203115149095,0.41907192521073,0.418940313206915,0.418833944032439,0.418774318027452,0.418774318027452, +0.508150126450205,0.508150126450205,0.508134078100144,0.50803239213955,0.507868860741536,0.50767457724021,0.507483267784324,0.507328644580956,0.507241153091238,0.507241153091238, +0.614372270555536,0.614372270555536,0.61431603962375,0.614147374897285,0.613901051377972,0.613618689573221,0.61334254192062,0.613116109069086,0.612984263374293,0.612984263374293, +0.734599880013422,0.734599880013422,0.734497785032852,0.734234414325196,0.733874145207568,0.733473518828258,0.733080830609197,0.732747344352686,0.732539444715218,0.732539444715218, +0.864708111717418,0.864708111717418,0.864578341003173,0.864166384512762,0.863650203444723,0.86309932846662,0.862554825408573,0.862061402835584,0.861703458805039,0.861703458805039, + +00:59:30, +0.280211550167878,0.280211550167878,0.280267815497542,0.280277114522554,0.280250279500015,0.280201603163878,0.280146758503393,0.280100461047819,0.280074169069732,0.280074169069732, +0.280211550167878,0.280211550167878,0.280267815497542,0.280277114522554,0.280250279500015,0.280201603163878,0.280146758503393,0.280100461047819,0.280074169069732,0.280074169069732, +0.303897348898138,0.303897348898138,0.303947091526941,0.303946555900981,0.30390767574537,0.303846238123532,0.303779611407715,0.303724207898021,0.303692931023167,0.303692931023167, +0.350701668800922,0.350701668800922,0.350737845136993,0.350716812213936,0.350652788817025,0.350564657542067,0.350473282253404,0.35039862886498,0.350356743989512,0.350356743989512, +0.419438965087912,0.419438965087912,0.419453582968699,0.419399718646015,0.419295294709294,0.419164133707572,0.419032550290082,0.418926204004709,0.418866590757131,0.418866590757131, +0.508229992139819,0.508229992139819,0.508213947311049,0.508112282646345,0.5079487853336,0.507754542212492,0.507563272383065,0.507408681067985,0.507321207542178,0.507321207542178, +0.614436257430843,0.614436257430843,0.614380036193255,0.61421140395802,0.613965128754731,0.613682822687146,0.613406729574162,0.613180341283809,0.613048521386649,0.613048521386649, +0.734644697344415,0.734644697344415,0.734542619958136,0.734279297663732,0.733919095831104,0.733518544793931,0.733125930476949,0.732792506697058,0.73258464568949,0.73258464568949, +0.864731220275994,0.864731220275994,0.864601472567428,0.864189589037556,0.863673500118122,0.863122723926516,0.862578318522179,0.862084984058246,0.861727103415741,0.861727103415741, + +00:59:31, +0.280320595675571,0.280320595675571,0.280376857750157,0.280386161348464,0.280359336680533,0.280310673777847,0.28025584266471,0.28020955608482,0.280183270140347,0.280183270140347, +0.280320595675571,0.280320595675571,0.280376857750157,0.280386161348464,0.280359336680533,0.280310673777847,0.28025584266471,0.28020955608482,0.280183270140347,0.280183270140347, +0.304003745489251,0.304003745489251,0.304053485053652,0.304052955265244,0.304014087507867,0.303952665749242,0.303886054956821,0.303830664214298,0.303799394422895,0.303799394422895, +0.350802542538913,0.350802542538913,0.35083871656883,0.350817692315005,0.350753685642828,0.350665575279633,0.350574220822277,0.350499584110924,0.35045770849656,0.35045770849656, +0.419531091388714,0.419531091388714,0.419545708928779,0.419491858207236,0.419387458035225,0.419256325960489,0.419124771119813,0.419018447715934,0.418958847221525,0.418958847221525, +0.508309841306872,0.508309841306872,0.508293799999579,0.508192156623952,0.508028693384588,0.507834490629215,0.507643260411863,0.507488700973442,0.507401245404992,0.507401245404992, +0.61450022925098,0.61450022925098,0.614444017706543,0.614275417952195,0.614029191048019,0.613746940697419,0.613470902104036,0.613244558358473,0.613112764249503,0.613112764249503, +0.734689503116619,0.734689503116619,0.73458744332084,0.734324169424379,0.733964034854055,0.733563559132902,0.733171018692149,0.732837657367124,0.732629834976202,0.732629834976202, +0.864754322539332,0.864754322539332,0.864624597829734,0.864212787238387,0.863696790438923,0.863146113002598,0.862601805221006,0.862108558838455,0.861750741564517,0.861750741564517, + +00:59:32, +0.280429628995924,0.280429628995924,0.280485887811242,0.280495195979231,0.280468381662861,0.280419732191148,0.28036491462346,0.28031863891796,0.280292359006442,0.280292359006442, +0.280429628995924,0.280429628995924,0.280485887811242,0.280495195979231,0.280468381662861,0.280419732191148,0.28036491462346,0.28031863891796,0.280292359006442,0.280292359006442, +0.304110128857663,0.304110128857663,0.304159865354506,0.304159341400081,0.30412048603718,0.304059080138129,0.303992485265931,0.303937107288215,0.303905844579,0.303905844579, +0.350903401448014,0.350903401448014,0.35093957317022,0.350918557581851,0.350854567629073,0.350766478171624,0.350675144539852,0.350600524501086,0.350558658145361,0.350558658145361, +0.419623201473142,0.419623201473142,0.419637818672319,0.41958398154721,0.41947960513191,0.419348501974507,0.419216975701137,0.419110675171146,0.419051087425669,0.419051087425669, +0.508389673959495,0.508389673959495,0.508373636173862,0.508272014080501,0.508108584902635,0.507914422498523,0.50772323187887,0.507568704305488,0.507481266687845,0.507481266687845, +0.614564186025255,0.614564186025255,0.614507984172921,0.614339416889124,0.614093238267161,0.61381104361338,0.613535059519597,0.613308760302448,0.613176991972232,0.613176991972232, +0.734734297338119,0.734734297338119,0.734632255129047,0.734369029615234,0.734008962284533,0.733608561853306,0.733216095262953,0.732882796371058,0.732675012583538,0.732675012583538, +0.86477741851212,0.86477741851212,0.864647716794782,0.864235979119964,0.863720074411855,0.863169495699624,0.862625285509837,0.862132127181015,0.861774373256186,0.861774373256186, + +00:59:33, +0.280538650124173,0.280538650124173,0.280594905676037,0.280604218410093,0.280577414442234,0.280528778399012,0.28047397437487,0.280427709542459,0.280401435663234,0.280401435663234, +0.280538650124173,0.280538650124173,0.280594905676037,0.280604218410093,0.280577414442234,0.280528778399012,0.28047397437487,0.280427709542459,0.280401435663234,0.280401435663234, +0.304216499000754,0.304216499000754,0.304266232426886,0.304265714302873,0.30422687133069,0.304165481287569,0.304098902332418,0.304043537117143,0.304012281488847,0.304012281488847, +0.351004245529241,0.351004245529241,0.35104041494218,0.351019408015491,0.350955434776776,0.350867366219056,0.350776053407142,0.35070145003648,0.350659592936925,0.350659592936925, +0.419715295346215,0.419715295346215,0.419729912204333,0.419676088670953,0.419571736004368,0.419440661754645,0.419309164039077,0.419202886375371,0.419143311374589,0.419143311374589, +0.508469490105807,0.508469490105807,0.508453455842015,0.508351855024112,0.508188459895869,0.507994337828551,0.507803186792231,0.507648691072272,0.507561271398891,0.507561271398891, +0.614628127762968,0.614628127762968,0.614571935601685,0.614403400778108,0.614157270421471,0.613875131444357,0.613599201830187,0.613372947125089,0.613241204564199,0.613241204564199, +0.73477908001699,0.73477908001699,0.734677055390834,0.734413878244382,0.734053878130644,0.733653552963267,0.733261160197507,0.732927923717021,0.732720178519674,0.732720178519674, +0.864800508199037,0.864800508199037,0.864670829467257,0.864259164686989,0.863743352041644,0.863192872022344,0.862648759393447,0.862155689090722,0.861797998495562,0.861797998495562, + +00:59:34, +0.280647659055563,0.280647659055563,0.280703911339792,0.2807132286363,0.280686435013901,0.28063781239668,0.280583021914173,0.280536767953549,0.280510500105951,0.280510500105951, +0.280647659055563,0.280647659055563,0.280703911339792,0.2807132286363,0.280686435013901,0.28063781239668,0.280583021914173,0.280536767953549,0.280510500105951,0.280510500105951, +0.304322855915913,0.304322855915913,0.304372586268183,0.304372073971011,0.304333243385783,0.304271869194946,0.30420530615366,0.304149953698457,0.30411870514981,0.30411870514981, +0.351105074783611,0.351105074783611,0.351141241885728,0.351120243616942,0.351056287086953,0.350968239422942,0.350876947425161,0.350802360718117,0.350760512872265,0.350760512872265, +0.419807373012947,0.419807373012947,0.419821989529833,0.419768179583476,0.419663850657613,0.419532805305922,0.419401336138653,0.419295081333631,0.419235519073309,0.419235519073309, +0.508549289753922,0.508549289753922,0.508533259012149,0.508431679462896,0.508268318372407,0.508074236627427,0.507883125160081,0.507728661281938,0.507641259546277,0.507641259546277, +0.614692054473405,0.614692054473405,0.614635872002121,0.61446736962844,0.614221287520253,0.613939204199668,0.61366332904514,0.613437118835741,0.613305402034756,0.613305402034756, +0.734823851161296,0.734823851161296,0.734721844114265,0.734458715319901,0.73409878240048,0.733698532470899,0.733306213503947,0.732973039413169,0.732765332792773,0.732765332792773, +0.864823591604759,0.864823591604759,0.86469393585184,0.864282343944158,0.863766623333009,0.863216241975501,0.862672226876604,0.862179244572368,0.861821617287452,0.861821617287452, + +00:59:35, +0.280756655785346,0.280756655785346,0.280812904797765,0.280822226653112,0.280795443373115,0.280746834179403,0.280692057236617,0.280645814146469,0.28061955232983,0.28061955232983, +0.280756655785346,0.280756655785346,0.280812904797765,0.280822226653112,0.280795443373115,0.280746834179403,0.280692057236617,0.280645814146469,0.28061955232983,0.28061955232983, +0.304429199600531,0.304429199600531,0.304478926875793,0.304478420401893,0.304439602199854,0.304378243857651,0.304311696727044,0.30425635702954,0.304225115559271,0.304225115559271, +0.351205889212143,0.351205889212143,0.351242054001885,0.351221064387223,0.351157124560623,0.351069097784301,0.350977826594926,0.350903256547013,0.350861417952396,0.350861417952396, +0.419899434478346,0.419899434478346,0.419914050653827,0.419860254289788,0.419755949096654,0.419624932633349,0.419493492004882,0.419387260050947,0.419327710526851,0.419327710526851, +0.508629072911943,0.508629072911943,0.508613045692363,0.508511487404957,0.508348160340358,0.508154118903266,0.507963046990546,0.50780861494262,0.507721231138141,0.507721231138141, +0.614755966165844,0.614755966165844,0.614699793383503,0.614531323449399,0.614285289572798,0.61400326188862,0.613727441173779,0.613501275443739,0.613369584393245,0.613369584393245, +0.734868610779092,0.734868610779092,0.734766621307397,0.734503540849856,0.734143675102125,0.733743500384308,0.733351255190397,0.733018143467644,0.732810475410989,0.732810475410989, +0.864846668733954,0.864846668733954,0.864717035953203,0.864305516896163,0.863789888290664,0.863239605563834,0.862695687964073,0.862202793630739,0.861845229636657,0.861845229636657, + +00:59:36, +0.280865640308789,0.280865640308789,0.280921886045227,0.280931212455797,0.280904439515144,0.280855843742443,0.280801080337454,0.280754848116469,0.28072859233012,0.28072859233012, +0.280865640308789,0.280865640308789,0.280921886045227,0.280931212455797,0.280904439515144,0.280855843742443,0.280801080337454,0.280754848116469,0.28072859233012,0.28072859233012, +0.304535530052011,0.304535530052011,0.30458525424712,0.304584753592921,0.304545947770304,0.304484605273081,0.304418074049962,0.30436274710778,0.304331512714616,0.304331512714616, +0.351306688815858,0.351306688815858,0.351342851291671,0.351321870327357,0.351257947198806,0.351169941304152,0.351078690917454,0.351004137524185,0.350962308178334,0.350962308178334, +0.419991479747418,0.419991479747418,0.420006095581318,0.419952312794892,0.419848031326497,0.419717043741936,0.419585631642774,0.419479422532331,0.41941988574023,0.41941988574023, +0.508708839587965,0.508708839587965,0.50869281589075,0.508591278858389,0.508427985807822,0.508233984664179,0.508042952291743,0.507888552062441,0.507801186182612,0.507801186182612, +0.61481986284955,0.61481986284955,0.614763699755095,0.614595262250256,0.614349276588387,0.614067304520509,0.613791538225413,0.613565416958406,0.613433751648997,0.613433751648997, +0.734913358878421,0.734913358878421,0.734811386978274,0.734548354842304,0.734188556243654,0.733788456711588,0.733396285264974,0.73306323588858,0.732855606382467,0.732855606382467, +0.864869739591286,0.864869739591286,0.864740129776015,0.864328683547688,0.863813146919316,0.863262962792075,0.86271914266061,0.862226336270615,0.861868835547972,0.861868835547972, + +00:59:37, +0.280974612621164,0.280974612621164,0.281030855077454,0.281040186039635,0.281013423435264,0.280964841081068,0.280910091211951,0.28086386985881,0.280837620102077,0.280837620102077, +0.280974612621164,0.280974612621164,0.281030855077454,0.281040186039635,0.281013423435264,0.280964841081068,0.280910091211951,0.28086386985881,0.280837620102077,0.280837620102077, +0.304641847267759,0.304641847267759,0.304691568379575,0.304691073541506,0.304652280094541,0.304590953438639,0.304524438119815,0.304469123930574,0.304437896613241,0.304437896613241, +0.351407473595779,0.351407473595779,0.351443633756109,0.351422661438365,0.351358755002525,0.351270769983516,0.351179540393764,0.351105003650651,0.351063183551097,0.351063183551097, +0.420083508825164,0.420083508825164,0.420098124317306,0.420044355103789,0.419940097352144,0.419809138636687,0.419677755057338,0.419571568782795,0.419512044718458,0.419512044718458, +0.508788589790072,0.508788589790072,0.508772569615391,0.508671053831276,0.508507794782892,0.508313833918263,0.508122841071781,0.507968472649518,0.50788112468781,0.50788112468781, +0.614883744533777,0.614883744533777,0.61482759112615,0.614659186040267,0.614413248576291,0.614131332104619,0.613855620209342,0.613629543389055,0.613497903811332,0.613497903811332, +0.734958095467319,0.734958095467319,0.734856141134932,0.734593157305292,0.734233425833131,0.733833401460825,0.733441303735783,0.7331083166841,0.73290072571534,0.73290072571534, +0.864892804181413,0.864892804181413,0.864763217324938,0.864351843903413,0.863836399223667,0.863286313664952,0.862742590970967,0.862249872496769,0.861892435026186,0.861892435026186, + +00:59:38, +0.281083572717757,0.281083572717757,0.281139811889737,0.281149147399915,0.281122395128759,0.28107382619056,0.281019089855382,0.280972879368762,0.280946635640969,0.280946635640969, +0.281083572717757,0.281083572717757,0.281139811889737,0.281149147399915,0.281122395128759,0.28107382619056,0.281019089855382,0.280972879368762,0.280946635640969,0.280946635640969, +0.30474815124519,0.30474815124519,0.304797869270575,0.304797380245066,0.30475859916998,0.304697288351736,0.304630788934009,0.304575487495326,0.304544267252545,0.304544267252545, +0.351508243552929,0.351508243552929,0.351544401396225,0.351523437721272,0.351459547972802,0.351371583823414,0.351280375024879,0.351205854927431,0.351164044071704,0.351164044071704, +0.420175521716582,0.420175521716582,0.420190136866786,0.420136381221473,0.420032147178592,0.419901217322603,0.419769862253578,0.419663698807344,0.419604187466542,0.419604187466542, +0.508868323526343,0.508868323526343,0.508852306874362,0.508750812331695,0.508587587273649,0.508393666673612,0.508202713338759,0.508048376711958,0.507961046661846,0.507961046661846, +0.614947611227769,0.614947611227769,0.614891467505908,0.614723094828682,0.614477205545769,0.614195344650225,0.613919687134855,0.613693654744986,0.613562040889557,0.613562040889557, +0.735002820553811,0.735002820553811,0.734900883785396,0.734637948246855,0.734278283878609,0.733878334640092,0.73348631061092,0.733153385862318,0.732945833417734,0.732945833417734, +0.864915862508985,0.864915862508985,0.864786298604629,0.86437499796801,0.863859645208411,0.863309658187183,0.86276603289989,0.862273402313969,0.861916028076083,0.861916028076083, + +00:59:39, +0.281192520593859,0.281192520593859,0.281248756477374,0.281258096531935,0.281231354590926,0.281182799066209,0.281128076263032,0.281081876641604,0.281055638942074,0.281055638942074, +0.281192520593859,0.281192520593859,0.281248756477374,0.281258096531935,0.281231354590926,0.281182799066209,0.281128076263032,0.281081876641604,0.281055638942074,0.281055638942074, +0.304854441981725,0.304854441981725,0.304904156917544,0.304903673701025,0.304864904994043,0.304803610009791,0.304737126489958,0.304681837799445,0.304650624629938,0.304650624629938, +0.351608998688335,0.351608998688335,0.351645154213045,0.351624199177105,0.351560326110663,0.35147238282487,0.351381194811819,0.351306691355547,0.351264889741177,0.351264889741177, +0.420267518426662,0.420267518426662,0.420282133234749,0.420228391152937,0.420124180810835,0.419993279804679,0.419861953236492,0.419755812610981,0.419696313989487,0.419696313989487, +0.508948040804845,0.508948040804845,0.508932027675727,0.508830554367714,0.508667363288166,0.508473482938305,0.508282569100769,0.508128264257858,0.508040952112822,0.508040952112822, +0.615011462940758,0.615011462940758,0.6149553289036,0.614786988624736,0.614541147506067,0.614259342166589,0.613983739011231,0.613757751035491,0.61362616289297,0.61362616289297, +0.735047534145912,0.735047534145912,0.734945614937684,0.734682727675022,0.734323130388134,0.733923256257455,0.733531305898471,0.733198443431336,0.732990929497762,0.732990929497762, +0.864938914578649,0.864938914578649,0.864809373619737,0.864398145746146,0.86388288487824,0.863332996363485,0.862789468452117,0.862296925726976,0.861939614702439,0.861939614702439, + +00:59:40, +0.281301456244776,0.281301456244776,0.281357688835672,0.281367033431003,0.28134030181707,0.281291759703315,0.281237050430195,0.281190861672627,0.281164630000678,0.281164630000678, +0.281301456244776,0.281301456244776,0.281357688835672,0.281367033431003,0.28134030181707,0.281291759703315,0.281237050430195,0.281190861672627,0.281164630000678,0.281164630000678, +0.304960719474791,0.304960719474791,0.305010431317914,0.305009953906812,0.304971197564157,0.304909918410227,0.304843450785081,0.304788174840348,0.304756968742834,0.304756968742834, +0.351709739003024,0.351709739003024,0.351745892207596,0.351724945806892,0.351661089417134,0.351573166988911,0.35148199975561,0.351407512936022,0.351365720560538,0.351365720560538, +0.420359498960396,0.420359498960396,0.420374113426182,0.420320384903167,0.420216198253862,0.420085326087908,0.419954028011076,0.419847910198703,0.419788424292291,0.419788424292291, +0.509027741633638,0.509027741633638,0.509011732027542,0.508910279947391,0.50874712283451,0.508553282720417,0.508362408365891,0.508208135295308,0.508120841048831,0.508120841048831, +0.615075299681967,0.615075299681967,0.615019175328446,0.614850867437654,0.614605074466425,0.614323324662962,0.614047775847735,0.613821832269847,0.613690269830858,0.613690269830858, +0.735092236251625,0.735092236251625,0.7349903345998,0.734727495597808,0.734367965369738,0.733968166320969,0.733576289606512,0.733243489399249,0.733036013963528,0.733036013963528, +0.864961960395045,0.864961960395045,0.864832442374907,0.864421287242483,0.863906118237837,0.863356328198566,0.862812897632383,0.862320442740547,0.861963194910027,0.861963194910027, + +00:59:41, +0.28141037966582,0.28141037966582,0.281466608959951,0.281475958092438,0.281449236802505,0.281400708097188,0.281346012352174,0.281299834457129,0.281273608812077,0.281273608812077, +0.28141037966582,0.28141037966582,0.281466608959951,0.281475958092438,0.281449236802505,0.281400708097188,0.281346012352174,0.281299834457129,0.281273608812077,0.281273608812077, +0.305066983721823,0.305066983721823,0.305116692469121,0.305116220859867,0.305077476877758,0.305016213550476,0.304949761816806,0.304894498615459,0.304863299588654,0.304863299588654, +0.351810464498025,0.351810464498025,0.351846615380909,0.35182567761166,0.351761837893246,0.351673936316564,0.351582789857278,0.351508319669881,0.351466536530812,0.351466536530812, +0.420451463322766,0.420451463322766,0.420466077446067,0.420412362477146,0.420308199512658,0.420177356177278,0.420046086582321,0.419939991575504,0.419880518379951,0.419880518379951, +0.509107426020772,0.509107426020772,0.509091419937856,0.508989989078776,0.508826865920736,0.508633066028013,0.508442231142201,0.508287989832389,0.50820071347796,0.50820071347796, +0.615139121460605,0.615139121460605,0.615083006789655,0.614914731276652,0.614668986436067,0.614387292148586,0.614111797653623,0.613885898457324,0.613754361712496,0.613754361712496, +0.735136926878948,0.735136926878948,0.735035042779741,0.734772252023221,0.734412788831447,0.734013064838679,0.733621261743108,0.73328852377414,0.733081086823127,0.733081086823127, +0.864984999962805,0.864984999962805,0.864855504874778,0.864444422461677,0.863929345291879,0.863379653697128,0.862836320445415,0.862343953359431,0.86198676870361,0.86198676870361, + +00:59:42, +0.281519290852315,0.281519290852315,0.281575516845536,0.281584870511569,0.281558159542556,0.281509644243147,0.281454962024285,0.28140879499042,0.28138257537158,0.28138257537158, +0.281519290852315,0.281519290852315,0.281575516845536,0.281584870511569,0.281558159542556,0.281509644243147,0.281454962024285,0.28140879499042,0.28138257537158,0.28138257537158, +0.305173234720262,0.305173234720262,0.305222940368611,0.305222474557634,0.305183742932288,0.305122495427975,0.305056059582566,0.305000809122208,0.304969617164828,0.304969617164828, +0.351911175174368,0.351911175174368,0.351947323734014,0.351926394592443,0.351862571540027,0.351774690808857,0.351683565117851,0.351609111558152,0.351567337653025,0.351567337653025, +0.420543411518754,0.420543411518754,0.420558025299384,0.420504323879854,0.420400184592204,0.420269370077772,0.420138128955214,0.420032056746375,0.419972596257457,0.419972596257457, +0.509187093974288,0.509187093974288,0.509171091414707,0.50906968176991,0.508906592554891,0.508712832869148,0.508522037437761,0.508367827877172,0.508280569408282,0.508280569408282, +0.615202928285873,0.615202928285873,0.615146823296424,0.614978580150933,0.61473288342421,0.614451244632691,0.614175804438141,0.613949949607178,0.613818438547149,0.613818438547149, +0.735181606035865,0.735181606035865,0.735079739485493,0.734816996959258,0.734457600781276,0.734057951818621,0.733666222316315,0.733333546564083,0.733126148084643,0.733126148084643, +0.86500803328656,0.86500803328656,0.864878561123983,0.864467551408378,0.86395256604504,0.86340297286387,0.862859736895934,0.862367457588372,0.862010336087949,0.862010336087949, + +00:59:43, +0.281628189799592,0.281628189799592,0.281684412487767,0.281693770683731,0.281667070032558,0.281618568136522,0.281563899441851,0.281517743267819,0.281491529674501,0.281491529674501, +0.281628189799592,0.281628189799592,0.281684412487767,0.281693770683731,0.281667070032558,0.281618568136522,0.281563899441851,0.281517743267819,0.281491529674501,0.281491529674501, +0.305279472467557,0.305279472467557,0.305329175013834,0.305328714997562,0.305289995725196,0.305228764040171,0.305162344079803,0.305107106358032,0.305075921468789,0.305075921468789, +0.352011871033086,0.352011871033086,0.352048017267945,0.352027096750272,0.351963290358509,0.351875430466821,0.351784325538357,0.351709888601862,0.351668123928206,0.351668123928206, +0.420635343553335,0.420635343553335,0.420649956991106,0.420596269116266,0.420492153497477,0.420361367794372,0.420230155134738,0.4201241057163,0.420064657929796,0.420064657929796, +0.50926674550222,0.50926674550222,0.509250746466125,0.509149358028826,0.508986302745014,0.508792583251868,0.508601827260628,0.508447649437721,0.508360408847866,0.508360408847866, +0.615266720166959,0.615266720166959,0.61521062485794,0.61504241406969,0.614796765440057,0.614515182124496,0.614239796210522,0.614013985728656,0.61388250034407,0.61388250034407, +0.735226273730352,0.735226273730352,0.735124424725032,0.734861730413905,0.734502401227228,0.734102827268818,0.73371117133418,0.73337855777714,0.733171197756151,0.733171197756151, +0.865031060370931,0.865031060370931,0.864901611127149,0.864490674087229,0.863975780501985,0.863426285703481,0.862883146988658,0.862390955432108,0.862033897067797,0.862033897067797, + +00:59:44, +0.281737076502995,0.281737076502995,0.281793295881989,0.281802658604274,0.281775968267856,0.281727479772652,0.281672824600204,0.281626679284655,0.281600471716168,0.281600471716168, +0.281737076502995,0.281737076502995,0.281793295881989,0.281802658604274,0.281775968267856,0.281727479772652,0.281672824600204,0.281626679284655,0.281600471716168,0.281600471716168, +0.305385696961162,0.305385696961162,0.305435396402248,0.305434942177112,0.305396235253936,0.305335019384513,0.305268615305964,0.305213390320375,0.305182212497982,0.305182212497982, +0.352112552075212,0.352112552075212,0.352148695983736,0.352127784086182,0.352063994349726,0.351976155291489,0.351885071119829,0.351810650802042,0.351768895357383,0.351768895357383, +0.420727259431483,0.420727259431483,0.420741872526205,0.420688198191352,0.420584106233449,0.420453349332051,0.420322165125873,0.420216138490262,0.420156703401953,0.420156703401953, +0.509346380612593,0.509346380612593,0.509330385100132,0.509229017863548,0.509065996499135,0.508872317184213,0.508681600618849,0.508527454522089,0.50844023180477,0.50844023180477, +0.615330497113042,0.615330497113042,0.61527441148338,0.615106233042105,0.614860632492802,0.614579104633208,0.614303772979989,0.614078006830993,0.613946547112502,0.613946547112502, +0.735270929970374,0.735270929970374,0.735169098506326,0.734906452395142,0.7345471901773,0.734147691197288,0.733756108804739,0.733423557421367,0.733216235845714,0.733216235845714, +0.865054081220534,0.865054081220534,0.864924654888898,0.864513790502868,0.863998988667375,0.863449592220647,0.862906550728295,0.862414446895371,0.862057451647901,0.862057451647901, + +00:59:45, +0.281845950957876,0.281845950957876,0.281902167023561,0.281911534268553,0.281884854243802,0.281836379146885,0.28178173749469,0.281735603036266,0.281709401491916,0.281709401491916, +0.281845950957876,0.281845950957876,0.281902167023561,0.281911534268553,0.281884854243802,0.281836379146885,0.28178173749469,0.281735603036266,0.281709401491916,0.281709401491916, +0.305491908198539,0.305491908198539,0.305541604531319,0.305541156093746,0.305502461515972,0.30544126145846,0.305374873258502,0.305319661006688,0.305288490249853,0.305288490249853, +0.352213218301784,0.352213218301784,0.352249359882424,0.352228456601208,0.352164683514713,0.352076865283894,0.351985801863298,0.351911398159724,0.351869651941588,0.351869651941588, +0.420819159158165,0.420819159158165,0.420833771909647,0.42078011111008,0.420676042805091,0.420545314695783,0.420414158933592,0.420308155073238,0.420248732678905,0.420248732678905, +0.50942599931342,0.50942599931342,0.509410007324739,0.50930866128209,0.509145673825275,0.508952034674212,0.508761357520461,0.508607243138322,0.508520038287043,0.508520038287043, +0.615394259133288,0.615394259133288,0.615338183181907,0.615170037077348,0.614924484591628,0.614643012168025,0.614367734755754,0.614142012923414,0.614010578861676,0.614010578861676, +0.735315574763888,0.735315574763888,0.735213760837331,0.734951162910935,0.734591967639475,0.734192543612036,0.733801034736018,0.733468545504806,0.733261262361388,0.733261262361388, +0.865077095839982,0.865077095839982,0.864947692413845,0.864536900659928,0.864022190545865,0.863472892420047,0.862929948119549,0.862437931982887,0.862080999833003,0.862080999833003, + +00:59:46, +0.281954813159596,0.281954813159596,0.282011025907848,0.282020397671936,0.281993727955761,0.28194526625458,0.281890638120659,0.281844514518001,0.281818318997091,0.281818318997091, +0.281954813159596,0.281954813159596,0.282011025907848,0.282020397671936,0.281993727955761,0.28194526625458,0.281890638120659,0.281844514518001,0.281818318997091,0.281818318997091, +0.305598106177155,0.305598106177155,0.305647799398517,0.305647356744937,0.305608674508771,0.305547490259478,0.305481117934878,0.305425918414428,0.30539475472186,0.30539475472186, +0.352313869713836,0.352313869713836,0.352350008965046,0.352329114296389,0.352265357854507,0.352177560445072,0.352086517769799,0.35201213067594,0.351970393681854,0.351970393681854, +0.420911042738345,0.420911042738345,0.420925655146395,0.420872007877412,0.420767963217365,0.420637263890535,0.420506136562867,0.420400155470201,0.420340745765629,0.420340745765629, +0.50950560161271,0.50950560161271,0.509489613147952,0.509388288292458,0.509225334731446,0.509031735729885,0.508841097973495,0.508687015294456,0.508599828302726,0.508599828302726, +0.615458006236854,0.615458006236854,0.615401939962677,0.61523382618458,0.614988321745706,0.614706904738132,0.614431681547018,0.614206004015132,0.614074595600813,0.614074595600813, +0.73536020811884,0.73536020811884,0.735258411725994,0.734995861969242,0.73463673362173,0.734237384521057,0.733845949136033,0.733513522035493,0.733306277311217,0.733306277311217, +0.865100104233878,0.865100104233878,0.8649707237066,0.864560004563036,0.864045386142104,0.863496186306356,0.86295333916712,0.862461410699376,0.862104541627838,0.862104541627838, + +00:59:47, +0.282063663103528,0.282063663103528,0.282119872530227,0.2821292488098,0.282102589399107,0.282054141091106,0.281999526473476,0.281953413725217,0.281927224227048,0.281927224227048, +0.282063663103528,0.282063663103528,0.282119872530227,0.2821292488098,0.282102589399107,0.282054141091106,0.281999526473476,0.281953413725217,0.281927224227048,0.281927224227048, +0.305704290894487,0.305704290894487,0.305753981001321,0.305753544128162,0.30571487422981,0.305653705785038,0.305587349332561,0.30553216254106,0.305501005911463,0.305501005911463, +0.352414506312409,0.352414506312409,0.352450643232642,0.352429757172763,0.352366017370147,0.352278240776061,0.352187218840368,0.352112848351727,0.352071120579216,0.352071120579216, +0.421002910176984,0.421002910176984,0.421017522241405,0.420963888498306,0.420859867475234,0.420729196921269,0.420598098018665,0.42049213968612,0.420432742667094,0.420432742667094, +0.50958518751846,0.50958518751846,0.509569202577765,0.50946789890265,0.509304979225653,0.509111420359244,0.508920821985971,0.508766770998521,0.508679601859852,0.508679601859852, +0.615521738432886,0.615521738432886,0.615465681834833,0.615297600372951,0.615052143964197,0.614770782352707,0.614495613362972,0.61426998011535,0.614138597339124,0.614138597339124, +0.735404830043166,0.735404830043166,0.735303051180252,0.735040549578012,0.734681488132029,0.734282213932338,0.733890852012792,0.73355848702145,0.733351280703237,0.733351280703237, +0.865123106406823,0.865123106406823,0.864993748771767,0.864583102216812,0.864068575460734,0.86351947388424,0.862976723875698,0.862484883049553,0.862128077037137,0.862128077037137, + +00:59:48, +0.282172500785051,0.282172500785051,0.282228706886083,0.282238087677529,0.282211438569221,0.28216300365184,0.282108402548512,0.282062300653283,0.282036117177152,0.282036117177152, +0.282172500785051,0.282172500785051,0.282228706886083,0.282238087677529,0.282211438569221,0.28216300365184,0.282108402548512,0.282062300653283,0.282036117177152,0.282036117177152, +0.305810462348015,0.305810462348015,0.305860149337215,0.305859718240906,0.305821060676571,0.305759908032619,0.305693567449025,0.305638393384055,0.305607243816133,0.305607243816133, +0.352515128098543,0.352515128098543,0.352551262686253,0.352530385231372,0.352466662062671,0.352378906277898,0.352287905076043,0.35221355118812,0.352171832634709,0.352171832634709, +0.421094761479036,0.421094761479036,0.421109373199634,0.421055752977717,0.420951755583653,0.420821113792947,0.420690043305947,0.420584107725962,0.420524723388268,0.420524723388268, +0.50966475703866,0.50966475703866,0.509648775622164,0.509547493120656,0.50938460731589,0.509191088570293,0.509000529565901,0.508846510258533,0.508759358966444,0.508759358966444, +0.615585455730517,0.615585455730517,0.615529408807508,0.615361359651598,0.615115951256251,0.614834645020912,0.614559530212795,0.61433394123326,0.614202584085806,0.614202584085806, +0.735449440544792,0.735449440544792,0.735347679208034,0.735085225745183,0.734726231178329,0.734327031853855,0.733935743374291,0.733603440470693,0.733396272545471,0.733396272545471, +0.86514610236341,0.86514610236341,0.865016767613945,0.864606193625872,0.864091758506393,0.863542755158361,0.863000102249971,0.862508349038125,0.862151606065622,0.862151606065622, + +00:59:49, +0.282281326199558,0.282281326199558,0.282337528970812,0.282346914270521,0.282320275461497,0.28227185393217,0.28221726634115,0.282171175297576,0.282144997842779,0.282144997842779, +0.282281326199558,0.282281326199558,0.282337528970812,0.282346914270521,0.282320275461497,0.28227185393217,0.28221726634115,0.282171175297576,0.282144997842779,0.282144997842779, +0.305916620535228,0.305916620535228,0.30596630440369,0.305965879080661,0.305927233846542,0.305866096999705,0.30579977228175,0.305744610940889,0.305713468433345,0.305713468433345, +0.352615735073279,0.352615735073279,0.352651867326921,0.352630998473258,0.352567291933122,0.352479556951625,0.352388576477864,0.352314239186158,0.352272529849372,0.352272529849372, +0.421186596649455,0.421186596649455,0.42120120802603,0.421147601320596,0.421043627547575,0.420913014510522,0.420781972429673,0.420676059594687,0.420616687934113,0.420616687934113, +0.509744310181289,0.509744310181289,0.509728332289128,0.509627070954454,0.509464219010142,0.509270740371027,0.509080220721288,0.508926233082506,0.508839099630516,0.508839099630516, +0.615649158138871,0.615649158138871,0.615593120889823,0.615425104029649,0.615179743631007,0.614898492751902,0.614623432105655,0.614397887378042,0.614266555850049,0.614266555850049, +0.735494039631637,0.735494039631637,0.735392295817256,0.735129890478683,0.734770962768575,0.734371838293573,0.733980623228516,0.733648382391225,0.733441252845935,0.733441252845935, +0.865169092108227,0.865169092108227,0.865039780237726,0.864629278794823,0.864114935283712,0.863566030133377,0.86302347429462,0.862531808669796,0.862175128718011,0.862175128718011, + +00:59:50, +0.282390139342449,0.282390139342449,0.28244633877982,0.282455728584181,0.282429100071337,0.282380691927494,0.282326117846781,0.282280037653483,0.282253866219313,0.282253866219313, +0.282390139342449,0.282390139342449,0.28244633877982,0.282455728584181,0.282429100071337,0.282380691927494,0.282326117846781,0.282280037653483,0.282253866219313,0.282253866219313, +0.306022765453621,0.306022765453621,0.306072446198246,0.306072026644924,0.30603339373722,0.305972272683789,0.305905963828225,0.305850815209049,0.305819679760581,0.305819679760581, +0.352716327237662,0.352716327237662,0.35275245715569,0.352731596899464,0.352667906982543,0.352580192798283,0.35248923304687,0.352414912346881,0.352373212224244,0.352373212224244, +0.421278415693187,0.421278415693187,0.42129302672554,0.42123943353189,0.421135483371947,0.421004899078946,0.420873885394797,0.420767995297252,0.420708636309588,0.420708636309588, +0.509823846954321,0.509823846954321,0.509807872586626,0.509706632412016,0.509543814316389,0.509350375769431,0.509159895460127,0.509005939478439,0.508918823860075,0.508918823860075, +0.615712845667062,0.615712845667062,0.615656818090889,0.615488833516221,0.615243521097594,0.61496232555482,0.614687319050711,0.614461818558867,0.614330512641028,0.614330512641028, +0.735538627311606,0.735538627311606,0.735436901015828,0.735174543786431,0.734815682910703,0.734416633259451,0.734025491583446,0.733693312791042,0.733486221612635,0.733486221612635, +0.865192075645856,0.865192075645856,0.865062786647696,0.864652357728271,0.864138105797317,0.863589298813936,0.863046840014318,0.862555261949263,0.862198644999017,0.862198644999017, + +00:59:51, +0.282498940209134,0.282498940209134,0.282555136308521,0.282564530613923,0.282537912394154,0.282489517633217,0.282434957060807,0.282388887716401,0.282362722302149,0.282362722302149, +0.282498940209134,0.282498940209134,0.282555136308521,0.282564530613923,0.282537912394154,0.282489517633217,0.282434957060807,0.282388887716401,0.282362722302149,0.282362722302149, +0.306128897100696,0.306128897100696,0.306178574718386,0.306178160931201,0.306139540346106,0.30607843508237,0.306012142085943,0.305957006186025,0.305925877795332,0.305925877795332, +0.352816904592736,0.352816904592736,0.352853032173608,0.352832180511038,0.35276850721198,0.352680813818917,0.352589874784104,0.352515570671331,0.352473879760367,0.352473879760367, +0.421370218615176,0.421370218615176,0.421384829303105,0.421331249616539,0.421227323061716,0.421096767503168,0.420965782206269,0.420859914838611,0.420800568519648,0.420800568519648, +0.509903367365718,0.509903367365718,0.509887396522617,0.509786177501306,0.509623393242599,0.509429994773482,0.509239553790404,0.509085629454327,0.508998531663117,0.508998531663117, +0.615776518324192,0.615776518324192,0.615720500419807,0.615552548120421,0.615307283665129,0.615026143438798,0.614751191057109,0.614525734784894,0.614394454467912,0.614394454467912, +0.735583203592599,0.735583203592599,0.735481494811647,0.735219185676337,0.73486039161264,0.734461416759434,0.734070348447048,0.733738231678128,0.733531178853566,0.733531178853566, +0.865215052980874,0.865215052980874,0.865085786848438,0.864675430430813,0.864161270051829,0.863612561204683,0.863070199413735,0.862578708881215,0.862222154913346,0.862222154913346, + +00:59:52, +0.282607728795032,0.282607728795032,0.28266392155234,0.282673320355172,0.282646712425368,0.282598331044758,0.282543783978639,0.282497725481736,0.282471566086689,0.282471566086689, +0.282607728795032,0.282607728795032,0.28266392155234,0.282673320355172,0.282646712425368,0.282598331044758,0.282543783978639,0.282497725481736,0.282471566086689,0.282471566086689, +0.30623501547396,0.30623501547396,0.306284689961623,0.306284281937002,0.306245673670711,0.306184584192952,0.306118307052407,0.306063183869314,0.306032062535092,0.306032062535092, +0.352917467139549,0.352917467139549,0.35295359238172,0.352932749309025,0.352869092622477,0.352781420014572,0.352690501690612,0.352616214160551,0.352574532458783,0.352574532458783, +0.421462005420362,0.421462005420362,0.421476615763664,0.421423049579483,0.42131914662182,0.421188619788129,0.421057662869037,0.420951818223713,0.420892484569244,0.420892484569244, +0.509982871423435,0.509982871423435,0.509966904105054,0.509865706230276,0.509702955796732,0.50950959739115,0.509319195720096,0.509165303018154,0.509078223047633,0.509078223047633, +0.615840176119352,0.615840176119352,0.615784167885666,0.615616247851343,0.61537103134272,0.615089946412957,0.614815048133985,0.614589636065271,0.614458381339854,0.614458381339854, +0.735627768482501,0.735627768482501,0.735526077212602,0.735263816156301,0.734905088882303,0.73450618880146,0.734115193827279,0.733783139060459,0.733576124576713,0.733576124576713, +0.865238024117851,0.865238024117851,0.865108780844526,0.86469849690704,0.86418442805186,0.863635817310258,0.863093552497534,0.862602149470338,0.862245658465697,0.862245658465697, + +00:59:53, +0.282716505095573,0.282716505095573,0.28277269450671,0.282782097803364,0.282755500160411,0.282707132157541,0.282652598595696,0.282606550944905,0.282580397568348,0.282580397568348, +0.282716505095573,0.282716505095573,0.28277269450671,0.282782097803364,0.282755500160411,0.282707132157541,0.282652598595696,0.282606550944905,0.282580397568348,0.282580397568348, +0.30634112057093,0.30634112057093,0.306390791925473,0.306390389659847,0.306351793708549,0.306290720013047,0.306224458725124,0.306169348256422,0.306138233977365,0.306138233977365, +0.353018014879149,0.353018014879149,0.353054137781077,0.353033303294475,0.352969663215085,0.352882011386294,0.352791113767438,0.352716842815587,0.352675170320536,0.352675170320536, +0.421553776113681,0.421553776113681,0.421568386112151,0.421514833425656,0.421410954057197,0.421280455938769,0.421149527388041,0.421043705457502,0.420984384463322,0.420984384463322, +0.510062359135417,0.510062359135417,0.51004639534188,0.509945218606874,0.509782501986739,0.509589183630394,0.509398821257172,0.509244960177896,0.5091578980216,0.5091578980216, +0.615903819061623,0.615903819061623,0.615847820497545,0.615679932718073,0.615434764139461,0.615153734486407,0.614878890290464,0.614653522409136,0.614522293266001,0.614522293266001, +0.735672321989192,0.735672321989192,0.735570648226573,0.735308435234211,0.734949774727599,0.734550949393456,0.734160027732086,0.733828034945999,0.733621058790053,0.733621058790053, +0.865260989061353,0.865260989061353,0.86513176864053,0.864721557161539,0.86420757980202,0.863659067135292,0.863116899270372,0.862625583721311,0.862269155660765,0.862269155660765, + +00:59:54, +0.282825269106197,0.282825269106197,0.282881455167076,0.28289086295394,0.282864275594724,0.282815920967002,0.282761400907411,0.282715364101332,0.282689216742548,0.282689216742548, +0.282825269106197,0.282825269106197,0.282881455167076,0.28289086295394,0.282864275594724,0.282815920967002,0.282761400907411,0.282715364101332,0.282689216742548,0.282689216742548, +0.306447212389126,0.306447212389126,0.306496880607463,0.306496484097259,0.306457900457143,0.306396842540175,0.306330597101609,0.306275499344859,0.306244392119659,0.306244392119659, +0.353118547812586,0.353118547812586,0.353154668372729,0.353133842468439,0.353070218990851,0.352982587935133,0.35289171101563,0.352817456637483,0.352775793346673,0.352775793346673, +0.421645530700063,0.421645530700063,0.421660140353494,0.421606601159988,0.421502745372777,0.421372275960023,0.421241375768221,0.42113557654492,0.421076268206824,0.421076268206824, +0.510141830509603,0.510141830509603,0.51012587024103,0.510024714639035,0.509862031820564,0.509668753499165,0.509478430409591,0.50932460094152,0.509237556592992,0.509237556592992, +0.615967447160074,0.615967447160074,0.615911458264511,0.615743602729683,0.615498482064439,0.615217507668249,0.614942717535662,0.614717393825615,0.614586190255486,0.614586190255486, +0.73571686412054,0.73571686412054,0.735615207861428,0.735353042917947,0.734994449156424,0.73459569854334,0.73420485016941,0.733872919342704,0.733665981501551,0.733665981501551, +0.865283947815938,0.865283947815938,0.865154750241014,0.86474461119889,0.864230725306911,0.863682310684413,0.863140239736901,0.862649011638807,0.862292646503239,0.862292646503239, + +00:59:55, +0.282934020822351,0.282934020822351,0.28299020352889,0.282999615802356,0.282973038723757,0.282924697468588,0.282870190909222,0.282824164946455,0.282798023604723,0.282798023604723, +0.282934020822351,0.282934020822351,0.28299020352889,0.282999615802356,0.282973038723757,0.282924697468588,0.282870190909222,0.282824164946455,0.282798023604723,0.282798023604723, +0.306553290926077,0.306553290926077,0.306602956005123,0.306602565246771,0.306563993914022,0.30650295177186,0.306436722179383,0.306381637132144,0.306350536959492,0.306350536959492, +0.353219065940912,0.353219065940912,0.353255184157728,0.353234366831969,0.353170759950829,0.353083149662138,0.352992293436237,0.35291805562729,0.352876401538242,0.352876401538242, +0.421737269184437,0.421737269184437,0.421751878492621,0.421698352787406,0.42159452057349,0.421464079856822,0.421333208014511,0.421227431490903,0.421168135804689,0.421168135804689, +0.510221285553921,0.510221285553921,0.510205328810428,0.510104194334688,0.509941545306142,0.509748307005406,0.509558023185306,0.509404225316984,0.50931719876977,0.50931719876977, +0.616031060423766,0.616031060423766,0.615975081195622,0.615807257895238,0.615562185126728,0.615281265967571,0.615006529878681,0.614781250323825,0.614650072317431,0.614650072317431, +0.735761394884403,0.735761394884403,0.735659756125027,0.735397639215381,0.735039112176667,0.73464043625902,0.734249661147176,0.73391779225852,0.733710892719163,0.733710892719163, +0.86530690038616,0.86530690038616,0.865177725650536,0.864767659023668,0.86425386457113,0.863705547962242,0.863163573901767,0.862672433227494,0.862316130997801,0.862316130997801, + +00:59:56, +0.283042760239493,0.283042760239493,0.283098939587615,0.283108356344074,0.283081789542971,0.283033461657753,0.28297896859658,0.282932953475717,0.282906818150316,0.282906818150316, +0.283042760239493,0.283042760239493,0.283098939587615,0.283108356344074,0.283081789542971,0.283033461657753,0.28297896859658,0.282932953475717,0.282906818150316,0.282906818150316, +0.306659356179318,0.306659356179318,0.306709018115992,0.30670863310592,0.306670074076722,0.306609047705634,0.306542833955973,0.3064877616158,0.306456668494386,0.306456668494386, +0.35331956926518,0.35331956926518,0.353355685137129,0.353334876386118,0.35327128609607,0.353183696568361,0.353092861030311,0.353018639786057,0.352976994896291,0.352976994896291, +0.421828991571725,0.421828991571725,0.421843600534452,0.421790088312831,0.42168627966426,0.421555867634094,0.42142502413184,0.421319270300385,0.421259987261852,0.421259987261852, +0.51030072427629,0.51030072427629,0.510284771057993,0.510183657701752,0.510021042451397,0.509827844157052,0.509637599592259,0.509483833312239,0.509396824559888,0.509396824559888, +0.616094658861746,0.616094658861746,0.616038689299925,0.615870898223789,0.615625873335392,0.615345009393453,0.615070327328616,0.614845091912871,0.614713939460951,0.614713939460951, +0.735805914288631,0.735805914288631,0.735704293025221,0.735442224134374,0.735083763796205,0.734685162548393,0.734294460673306,0.733962653701382,0.733755792450838,0.733755792450838, +0.865329846776568,0.865329846776568,0.865200694873649,0.864790700640443,0.864276997599268,0.863728778973394,0.863186901769608,0.862695848492033,0.862339609149128,0.862339609149128, + +00:59:57, +0.283151487353092,0.283151487353092,0.283207663338723,0.283217084574566,0.283190528047834,0.283142213529962,0.283087733964942,0.283041729684573,0.283015600374777,0.283015600374777, +0.283151487353092,0.283151487353092,0.283207663338723,0.283217084574566,0.283190528047834,0.283142213529962,0.283087733964942,0.283041729684573,0.283015600374777,0.283015600374777, +0.30676540814639,0.30676540814639,0.306815066937614,0.30681468767225,0.306776140942785,0.306715130339036,0.306648932428915,0.30659387279336,0.306562786721869,0.306562786721869, +0.353420057786445,0.353420057786445,0.353456171311986,0.353435371131941,0.353371797427629,0.353284228654857,0.353193413798902,0.353119209114834,0.353077573421872,0.353077573421872, +0.421920697866847,0.421920697866847,0.421935306483905,0.421881807741181,0.421778022650006,0.421647639296761,0.421516824125136,0.421411092978294,0.421351822583243,0.421351822583243, +0.510380146684623,0.510380146684623,0.510364196991633,0.510263104748138,0.510100523264248,0.509907364962027,0.509717159638383,0.509563424935225,0.509476433971293,0.509476433971293, +0.616158242483052,0.616158242483052,0.616102282586455,0.615934523724379,0.615689546699484,0.61540873795496,0.615134109894547,0.614908918601848,0.614777791695145,0.614777791695145, +0.735850422341064,0.735850422341064,0.735748818569849,0.735486797682775,0.735128404022906,0.734729877419349,0.734339248755706,0.734007503679218,0.73380068070451,0.73380068070451, +0.865352786991703,0.865352786991703,0.8652236579149,0.864813736053778,0.86430012439591,0.86375200372248,0.863210223345059,0.86271925743708,0.862363080961891,0.862363080961891, + +00:59:58, +0.283260202158625,0.283260202158625,0.283316374777697,0.283325800489315,0.283299254233825,0.283250953080688,0.283196487009779,0.283150493568487,0.283124370273569,0.283124370273569, +0.283260202158625,0.283260202158625,0.283316374777697,0.283325800489315,0.283299254233825,0.283250953080688,0.283196487009779,0.283150493568487,0.283124370273569,0.283124370273569, +0.306871446824842,0.306871446824842,0.30692110246754,0.306920728943313,0.306882194509759,0.306821199669611,0.30675501759575,0.306699970662361,0.306668891639479,0.306668891639479, +0.353520531505762,0.353520531505762,0.353556642683357,0.353535851070497,0.353472293946563,0.353384745922679,0.353293951743066,0.353219763614676,0.353178137116038,0.353178137116038, +0.422012388074718,0.422012388074718,0.422026996345894,0.42197351107737,0.421869749535644,0.421739394849742,0.42160860799932,0.421502899529555,0.421443641773788,0.421443641773788, +0.510459552786823,0.510459552786823,0.510443606619248,0.510342535481749,0.510179987752602,0.509986869428249,0.509796703331605,0.509643000193876,0.50955602701192,0.50955602701192, +0.616221811296711,0.616221811296711,0.616165861064238,0.615998134406037,0.615753205228046,0.615472451661151,0.615197877585548,0.614972730399839,0.614841629029106,0.614841629029106, +0.735894919049531,0.735894919049531,0.735793332766743,0.735531359868427,0.73517303286463,0.734774580879767,0.734384025402277,0.734052342199943,0.733845557488108,0.733845557488108, +0.865375721036103,0.865375721036103,0.86524661477883,0.86483676526823,0.864323244965637,0.863775222214103,0.863233538632749,0.862742660067285,0.862386546440754,0.862386546440754, diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/water/Water_adv.omi b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/water/Water_adv.omi new file mode 100644 index 00000000..108406df --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/water/Water_adv.omi @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/water/config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/water/config.xml new file mode 100644 index 00000000..e75d434b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/water/config.xml @@ -0,0 +1,71 @@ + + + + + + water + numerical-analysis, Columbia SC + 1 + + + Concentration + C + + + Mass + 1 + + + Length + -3 + + + + ppm + ppm + 1 + 0 + + scalar + + + + + sed + Smith Branch Watershed, Columbia SC + 1 + .\StreamNet.shp + + + Concentration + Excess Rainfall + + + Mass + 1 + + + Length + -3 + + + + in + inches + 1 + 0 + + Scalar + + + + + 08/20/2009 00:00:00 AM + 08/20/2009 01:00:00 AM + 1 + + + Water Advection + Calculates advection through water + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/water/inputs.csv b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/water/inputs.csv new file mode 100644 index 00000000..e08df65b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/water/inputs.csv @@ -0,0 +1,7 @@ +u,2,,,,,,,, +D,0.025,,,,,,,, +rows_W,1,,,,,,,, +columns_W,10,,,,,,,, +rows_S,9,,,,,,,, +columns_S,10,,,,,,,, +1,1,1,0,0,0,0,0,0,0 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/water/output/waterAdvection.csv b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/water/output/waterAdvection.csv new file mode 100644 index 00000000..9c3fe3a6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_03/models/water/output/waterAdvection.csv @@ -0,0 +1,3605 @@ +This is some info about the model.... +StartDate: , 20/8/2009 00:00:00 +EndDate: , 20/8/2009 01:00:00 + +Time [H:mm:ss], Concentration +00:00:00,1,1,1,0.85533,0.7315894089,0.625750369114437,0.535223063214651,0.457792342659388,0.391563524446854,0.334916029365128, +00:00:01,1,1,1,0.975159651293035,0.936577200180943,0.88874868038893,0.835156857324534,0.778470307804396,0.72070610515983,0.663362473519895, +00:00:02,1,1,1,0.99194749379711,0.979654636167974,0.962439527034505,0.940206843760133,0.913248915151336,0.882098365870712,0.847420663325014, +00:00:03,1,1,1,0.994317407785541,0.987732034089559,0.979685358722019,0.969686158395146,0.957355183336067,0.942442629643056,0.924829213364947, +00:00:04,1,1,1,0.994669746167543,0.989184467223821,0.983362230703515,0.976978437447195,0.96978785854575,0.961545753768819,0.952028437537035, +00:00:05,1,1,1,0.994739589558623,0.989467855537526,0.984139577267477,0.978684353570163,0.973007626901753,0.966994261993329,0.960517497745431, +00:00:06,1,1,1,0.99476971700411,0.989553478797275,0.984341732751283,0.979116095134482,0.97384759994292,0.968495379923024,0.963010086665461, +00:00:07,1,1,1,0.994794101139822,0.989606331103611,0.984435170520512,0.979276310653826,0.974122006827962,0.968959957392232,0.963776225413122, +00:00:08,1,1,1,0.994817497714376,0.989653572910922,0.984508414389056,0.979381069828887,0.974269634736153,0.969170817424181,0.964083417778654, +00:00:09,1,1,1,0.994840574304228,0.989699578203348,0.984577597442789,0.979474417740018,0.974389581489535,0.969322311178755,0.964275390555238, +00:00:10,1,1,1,0.994863426420971,0.989745042772785,0.984645574740976,0.979564963285873,0.974503083947302,0.969459811274702,0.964439087563517, +00:00:11,1,1,1,0.994886069501901,0.98979007915982,0.984712844088963,0.979654339143951,0.974614513106164,0.969593409510437,0.964595317799433, +00:00:12,1,1,1,0.994908507752427,0.989834708652879,0.984779495309722,0.97974285258355,0.974724745500984,0.969725270109536,0.964748848338641, +00:00:13,1,1,1,0.994930743779341,0.989878938379096,0.98484554899137,0.979830566125425,0.974833959183443,0.969855850166859,0.964900739603245, +00:00:14,1,1,1,0.994952779939163,0.989922773245978,0.984911014109803,0.979917498079435,0.97494219660246,0.969985251817965,0.965051229305258, +00:00:15,1,1,1,0.994974618527201,0.989966217774523,0.984975897661185,0.980003658850799,0.975049474442929,0.970113505455185,0.965200378555319, +00:00:16,1,1,1,0.994996261804389,0.990009276379002,0.985040206249635,0.980089057379689,0.975155804507459,0.970240627230358,0.96534821152886, +00:00:17,1,1,1,0.995017712001416,0.990051953409953,0.985103946346505,0.980173702264565,0.97526119760014,0.970366630425518,0.965494744751457, +00:00:18,1,1,1,0.995038971319675,0.990094253161301,0.985167124333081,0.980257601956226,0.975365664236404,0.970491527651835,0.965639993081243, +00:00:19,1,1,1,0.995060041931761,0.990136179872079,0.985229746508344,0.980340764791909,0.975469214771845,0.97061533126788,0.965783970904786, +00:00:20,1,1,1,0.995080925981895,0.990177737727324,0.985291819091133,0.980423199002222,0.975571859426482,0.970738053459204,0.965926692372935, +00:00:21,1,1,1,0.995101625586338,0.99021893085884,0.985353348221411,0.980504912713492,0.975673608290455,0.970859706254646,0.966068171448089, +00:00:22,1,1,1,0.995122142833795,0.990259763345941,0.985414339961374,0.98058591394934,0.975774471326473,0.970980301530993,0.966208421915091, +00:00:23,1,1,1,0.995142479785814,0.99030023921617,0.98547480029652,0.980666210632106,0.975874458371655,0.971099851015494,0.96634745738519, +00:00:24,1,1,1,0.995162638477172,0.990340362446011,0.985534735136704,0.980745810584241,0.975973579139269,0.97121836628798,0.966485291298683, +00:00:25,1,1,1,0.995182620916269,0.990380136961594,0.985594150317174,0.980824721529667,0.976071843220419,0.971335858782872,0.96662193692729, +00:00:26,1,1,1,0.995202429085497,0.990419566639387,0.985653051599593,0.980902951095123,0.976169260085711,0.971452339791171,0.966757407376444, +00:00:27,1,1,1,0.995222064941621,0.990458655306872,0.985711444673045,0.980980506811492,0.976265839086888,0.971567820462392,0.966891715587551, +00:00:28,1,1,1,0.995241530416142,0.990497406743225,0.985769335155027,0.981057396115099,0.976361589458449,0.97168231180649,0.967024874340205, +00:00:29,1,1,1,0.995260827415658,0.990535824679971,0.985826728592427,0.981133626349006,0.976456520319237,0.97179582469575,0.967156896254384, +00:00:30,1,1,1,0.995279957822224,0.990573912801641,0.985883630462488,0.981209204764273,0.976550640674012,0.971908369866648,0.967287793792601, +00:00:31,1,1,1,0.995298923493696,0.990611674746411,0.985940046173755,0.981284138521212,0.976643959414996,0.972019957921691,0.967417579262033, +00:00:32,1,1,1,0.995317726264078,0.99064911410674,0.985995981067013,0.981358434690617,0.976736485323396,0.972130599331226,0.967546264816619, +00:00:33,1,1,1,0.995336367943864,0.990686234429988,0.986051440416208,0.981432100254977,0.976828227070909,0.972240304435224,0.967673862459126, +00:00:34,1,1,1,0.995354850320367,0.990723039219037,0.986106429429357,0.981505142109673,0.976919193221199,0.972349083445043,0.967800384043184, +00:00:35,1,1,1,0.995373175158052,0.990759531932896,0.986160953249441,0.981577567064158,0.977009392231362,0.972456946445157,0.967925841275293, +00:00:36,1,1,1,0.995391344198856,0.990795715987294,0.986215016955289,0.981649381843119,0.977098832453359,0.972563903394872,0.968050245716808, +00:00:37,1,1,1,0.995409359162509,0.990831594755276,0.986268625562449,0.981720593087621,0.977187522135439,0.972669964130004,0.968173608785884, +00:00:38,1,1,1,0.995427221746845,0.990867171567777,0.986321784024043,0.981791207356237,0.977275469423533,0.972775138364544,0.968295941759402, +00:00:39,1,1,1,0.995444933628116,0.990902449714197,0.986374497231615,0.981861231126165,0.977362682362634,0.972879435692294,0.968417255774865, +00:00:40,1,1,1,0.995462496461287,0.990937432442966,0.98642677001596,0.981930670794315,0.977449168898156,0.972982865588483,0.968537561832267, +00:00:41,1,1,1,0.995479911880345,0.990972122962093,0.986478607147948,0.981999532678403,0.977534936877271,0.973085437411356,0.968656870795934, +00:00:42,1,1,1,0.995497181498587,0.991006524439724,0.986530013339331,0.982067823018005,0.977619994050228,0.973187160403743,0.968775193396344, +00:00:43,1,1,1,0.995514306908912,0.991040640004671,0.986580993243541,0.982135547975617,0.977704348071657,0.973288043694605,0.968892540231914, +00:00:44,1,1,1,0.995531289684106,0.99107447274695,0.986631551456477,0.982202713637685,0.977788006501849,0.973388096300558,0.969008921770766, +00:00:45,1,1,1,0.995548131377127,0.991108025718303,0.986681692517278,0.982269326015627,0.977870976808021,0.973487327127378,0.969124348352469, +00:00:46,1,1,1,0.995564833521376,0.991141301932718,0.986731420909086,0.98233539104684,0.977953266365562,0.973585744971478,0.969238830189753, +00:00:47,1,1,1,0.995581397630973,0.991174304366931,0.986780741059801,0.982400914595694,0.978034882459261,0.97368335852137,0.9693523773702, +00:00:48,1,1,1,0.995597825201028,0.991207035960935,0.986829657342822,0.982465902454504,0.978115832284519,0.973780176359109,0.969464999857915, +00:00:49,1,1,1,0.995614117707898,0.991239499618472,0.986878174077778,0.982530360344499,0.978196122948543,0.973876206961704,0.969576707495165, +00:00:50,1,1,1,0.995630276609457,0.991271698207519,0.986926295531245,0.982594293916773,0.978275761471519,0.973971458702523,0.969687510004002, +00:00:51,1,1,1,0.995646303345343,0.991303634560772,0.986974025917465,0.982657708753215,0.97835475478778,0.974065939852672,0.969797416987862, +00:00:52,1,1,1,0.995662199337218,0.991335311476116,0.987021369399038,0.98272061036744,0.978433109746943,0.974159658582353,0.969906437933138, +00:00:53,1,1,1,0.995677965989013,0.991366731717095,0.987068330087616,0.982783004205696,0.978510833115039,0.974252622962204,0.970014582210737, +00:00:54,1,1,1,0.995693604687174,0.991397898013371,0.987114912044585,0.98284489564776,0.978587931575624,0.974344840964624,0.970121859077604, +00:00:55,1,1,1,0.995709116800903,0.991428813061178,0.987161119281733,0.982906290007825,0.978664411730876,0.974436320465074,0.970228277678241, +00:00:56,1,1,1,0.995724503682395,0.991459479523767,0.987206955761913,0.982967192535373,0.978740280102677,0.974527069243363,0.970333847046188, +00:00:57,1,1,1,0.995739766667073,0.991489900031852,0.987252425399691,0.98302760841603,0.978815543133673,0.974617094984912,0.970438576105496, +00:00:58,1,1,1,0.99575490707382,0.991520077184038,0.987297532061998,0.983087542772421,0.978890207188331,0.974706405282008,0.970542473672169, +00:00:59,1,1,1,0.995769926205203,0.991550013547257,0.987342279568751,0.983147000664999,0.978964278553967,0.974795007635029,0.970645548455595, +00:01:00,1,1,1,0.995784825347699,0.991579711657182,0.987386671693489,0.983205987092872,0.979037763441774,0.974882909453664,0.970747809059951, +00:01:01,1,1,1,0.995799605771912,0.991609174018649,0.987430712163982,0.983264506994616,0.979110667987826,0.974970118058106,0.97084926398559, +00:01:02,1,1,1,0.995814268732796,0.991638403106067,0.987474404662838,0.983322565249074,0.979182998254066,0.975056640680234,0.970949921630406, +00:01:03,1,1,1,0.995828815469863,0.991667401363819,0.987517752828105,0.983380166676148,0.979254760229291,0.975142484464777,0.97104979029119, +00:01:04,1,1,1,0.995843247207396,0.991696171206664,0.98756076025386,0.983437316037574,0.979325959830114,0.975227656470461,0.971148878164951, +00:01:05,1,1,1,0.995857565154658,0.99172471502013,0.987603430490788,0.983494018037692,0.979396602901913,0.975312163671139,0.971247193350232, +00:01:06,1,1,1,0.995871770506094,0.9917530351609,0.987645767046757,0.983550277324204,0.979466695219772,0.975396012956908,0.971344743848401, +00:01:07,1,1,1,0.995885864441531,0.991781133957195,0.987687773387384,0.983606098488916,0.979536242489405,0.97547921113521,0.971441537564926, +00:01:08,1,1,1,0.995899848126382,0.991809013709151,0.987729452936594,0.983661486068478,0.979605250348066,0.975561764931915,0.971537582310633, +00:01:09,1,1,1,0.995913722711837,0.99183667668919,0.987770809077163,0.983716444545106,0.97967372436545,0.975643680992388,0.971632885802944, +00:01:10,1,1,1,0.995927489335054,0.991864125142387,0.987811845151268,0.9837709783473,0.979741670044576,0.97572496588255,0.971727455667099, +00:01:11,1,1,1,0.995941149119354,0.991891361286827,0.987852564461015,0.983825091850545,0.979809092822668,0.975805626089912,0.971821299437362, +00:01:12,1,1,1,0.995954703174404,0.991918387313969,0.987892970268971,0.983878789378014,0.979875998072009,0.975885668024603,0.97191442455821, +00:01:13,1,1,1,0.995968152596403,0.991945205388987,0.987933065798676,0.983932075201244,0.979942391100795,0.97596509802038,0.972006838385502, +00:01:14,1,1,1,0.995981498468262,0.991971817651124,0.987972854235165,0.98398495354082,0.980008277153972,0.976043922335626,0.972098548187637, +00:01:15,1,1,1,0.995994741859784,0.991998226214029,0.988012338725461,0.984037428567035,0.980073661414063,0.976122147154331,0.972189561146696, +00:01:16,1,1,1,0.99600788382784,0.992024433166095,0.988051522379084,0.984089504400554,0.980138549001981,0.976199778587066,0.972279884359558, +00:01:17,1,1,1,0.996020925416541,0.992050440570789,0.988090408268536,0.984141185113056,0.980202944977834,0.976276822671935,0.972369524839016, +00:01:18,1,1,1,0.996033867657412,0.992076250466979,0.988128999429783,0.984192474727878,0.980266854341719,0.976353285375517,0.972458489514867, +00:01:19,1,1,1,0.996046711569557,0.992101864869258,0.988167298862737,0.984243377220641,0.980330282034497,0.9764291725938,0.972546785234987, +00:01:20,1,1,1,0.99605945815983,0.992127285768262,0.988205309531727,0.984293896519876,0.980393232938572,0.976504490153095,0.972634418766399, +00:01:21,1,1,1,0.996072108422993,0.99215251513098,0.988243034365955,0.984344036507631,0.980455711878642,0.976579243810939,0.972721396796317, +00:01:22,1,1,1,0.99608466334188,0.992177554901067,0.988280476259965,0.984393801020082,0.980517723622456,0.976653439256991,0.97280772593318, +00:01:23,1,1,1,0.996097123887558,0.992202406999145,0.988317638074083,0.984443193848122,0.980579272881547,0.976727082113907,0.972893412707673, +00:01:24,1,1,1,0.99610949101948,0.992227073323108,0.98835452263487,0.984492218737955,0.980640364311964,0.976800177938207,0.972978463573734, +00:01:25,1,1,1,0.996121765685641,0.992251555748414,0.988391132735559,0.984540879391671,0.980701002514991,0.976872732221135,0.973062884909538, +00:01:26,1,1,1,0.996133948822732,0.992275856128377,0.988427471136482,0.98458917946782,0.98076119203785,0.976944750389497,0.973146683018485, +00:01:27,1,1,1,0.996146041356284,0.99229997629446,0.988463540565505,0.984637122581973,0.980820937374407,0.977016237806497,0.973229864130156, +00:01:28,1,1,1,0.996158044200825,0.992323918056554,0.988499343718444,0.984684712307281,0.980880242965858,0.977087199772554,0.973312434401267, +00:01:29,1,1,1,0.996169958260016,0.992347683203258,0.988534883259478,0.984731952175021,0.980939113201407,0.977157641526112,0.973394399916609, +00:01:30,1,1,1,0.996181784426802,0.992371273502161,0.988570161821563,0.984778845675138,0.980997552418939,0.977227568244439,0.973475766689971, +00:01:31,1,1,1,0.99619352358355,0.992394690700106,0.988605182006833,0.984825396256776,0.98105556490568,0.977296985044413,0.973556540665049, +00:01:32,1,1,1,0.996205176602187,0.992417936523465,0.988639946386995,0.984871607328804,0.981113154898849,0.977365896983298,0.973636727716356, +00:01:33,1,1,1,0.996216744344341,0.992441012678403,0.988674457503729,0.984917482260337,0.981170326586301,0.977434309059511,0.973716333650097, +00:01:34,1,1,1,0.996228227661477,0.992463920851134,0.988708717869066,0.984963024381246,0.981227084107161,0.977502226213375,0.973795364205054, +00:01:35,1,1,1,0.996239627395024,0.992486662708185,0.988742729965776,0.985008236982659,0.981283431552449,0.977569653327863,0.973873825053443, +00:01:36,1,1,1,0.996250944376514,0.992509239896647,0.988776496247741,0.985053123317465,0.981339372965699,0.977636595229335,0.973951721801773, +00:01:37,1,1,1,0.996262179427709,0.992531654044426,0.988810019140328,0.9850976866008,0.981394912343564,0.977703056688261,0.974029059991676, +00:01:38,1,1,1,0.996273333360728,0.992553906760489,0.988843301040755,0.985141930010529,0.981450053636419,0.977769042419936,0.974105845100743, +00:01:39,1,1,1,0.996284406978174,0.992575999635109,0.98887634431845,0.985185856687729,0.981504800748952,0.977834557085182,0.974182082543342, +00:01:40,1,1,1,0.996295401073257,0.992597934240104,0.988909151315409,0.985229469737156,0.981559157540747,0.977899605291049,0.974257777671416, +00:01:41,1,1,1,0.996306316429921,0.992619712129076,0.988941724346548,0.985272772227708,0.98161312782686,0.977964191591493,0.974332935775286, +00:01:42,1,1,1,0.996317153822959,0.992641334837641,0.988974065700045,0.985315767192887,0.981666715378389,0.978028320488058,0.974407562084431, +00:01:43,1,1,1,0.996327914018134,0.992662803883664,0.989006177637687,0.985358457631246,0.981719923923029,0.978091996430541,0.974481661768264, +00:01:44,1,1,1,0.996338597772298,0.992684120767484,0.989038062395204,0.985400846506839,0.981772757145632,0.978155223817649,0.974555239936894, +00:01:45,1,1,1,0.996349205833507,0.992705286972135,0.989069722182602,0.985442936749655,0.981825218688745,0.978218006997651,0.974628301641876, +00:01:46,1,1,1,0.996359738941135,0.992726303963575,0.989101159184491,0.985484731256056,0.981877312153151,0.978280350269014,0.974700851876957, +00:01:47,1,1,1,0.996370197825985,0.992747173190895,0.989132375560406,0.985526232889202,0.981929041098398,0.978342257881038,0.974772895578808, +00:01:48,1,1,1,0.996380583210403,0.992767896086541,0.98916337344513,0.985567444479474,0.981980409043326,0.978403734034475,0.974844437627746, +00:01:49,1,1,1,0.996390895808383,0.992788474066523,0.989194154949005,0.985608368824889,0.982031419466575,0.978464782882148,0.974915482848443, +00:01:50,1,1,1,0.996401136325679,0.992808908530625,0.989224722158244,0.985649008691509,0.982082075807101,0.978525408529555,0.974986036010636, +00:01:51,1,1,1,0.99641130545991,0.992829200862609,0.989255077135237,0.985689366813849,0.982132381464675,0.978585615035465,0.975056101829813, +00:01:52,1,1,1,0.996421403900664,0.992849352430424,0.989285221918852,0.985729445895271,0.982182339800379,0.97864540641251,0.975125684967902, +00:01:53,1,1,1,0.996431432329601,0.992869364586401,0.989315158524732,0.985769248608385,0.982231954137093,0.978704786627768,0.975194790033944, +00:01:54,1,1,1,0.996441391420557,0.992889238667453,0.989344888945593,0.985808777595429,0.98228122775998,0.978763759603332,0.975263421584761, +00:01:55,1,1,1,0.99645128183964,0.992908975995274,0.989374415151506,0.98584803546866,0.982330163916957,0.978822329216882,0.975331584125608, +00:01:56,1,1,1,0.996461104245338,0.992928577876524,0.989403739090192,0.985887024810724,0.982378765819168,0.97888049930224,0.975399282110825, +00:01:57,1,1,1,0.996470859288604,0.992948045603026,0.989432862687295,0.985925748175037,0.982427036641443,0.978938273649922,0.975466519944473, +00:01:58,1,1,1,0.996480547612964,0.992967380451952,0.989461787846667,0.985964208086146,0.982474979522757,0.978995656007679,0.975533301980968, +00:01:59,1,1,1,0.996490169854605,0.992986583686004,0.989490516450639,0.986002407040095,0.98252259756668,0.97905265008104,0.975599632525702, +00:02:00,1,1,1,0.996499726642472,0.993005656553601,0.989519050360291,0.986040347504785,0.98256989384182,0.979109259533832,0.975665515835652, +00:02:01,1,1,1,0.996509218598357,0.993024600289055,0.989547391415722,0.98607803192032,0.982616871382261,0.979165487988711,0.975730956119993, +00:02:02,1,1,1,0.996518646336995,0.993043416112755,0.98957554143631,0.986115462699364,0.982663533187995,0.979221339027668,0.97579595754069, +00:02:03,1,1,1,0.996528010466148,0.993062105231332,0.989603502220974,0.986152642227477,0.982709882225351,0.979276816192543,0.975860524213089, +00:02:04,1,1,1,0.9965373115867,0.993080668837842,0.989631275548427,0.98618957286346,0.982755921427411,0.979331922985526,0.975924660206498, +00:02:05,1,1,1,0.996546550292737,0.993099108111929,0.989658863177436,0.986226256939686,0.98280165369443,0.979386662869648,0.975988369544761, +00:02:06,1,1,1,0.99655572717164,0.993117424219997,0.989686266847062,0.986262696762429,0.982847081894243,0.979441039269271,0.976051656206822, +00:02:07,1,1,1,0.996564842804166,0.993135618315375,0.989713488276913,0.986298894612194,0.982892208862668,0.979495055570568,0.976114524127288, +00:02:08,1,1,1,0.996573897764532,0.993153691538478,0.989740529167385,0.986334852744033,0.982937037403906,0.979548715122001,0.976176977196973, +00:02:09,1,1,1,0.996582892620501,0.993171645016974,0.989767391199899,0.986370573387866,0.982981570290934,0.979602021234785,0.976239019263448, +00:02:10,1,1,1,0.996591827933457,0.993189479865937,0.98979407603714,0.986406058748791,0.983025810265893,0.979654977183353,0.976300654131574, +00:02:11,1,1,1,0.996600704258491,0.993207197188007,0.98982058532329,0.986441311007393,0.983069760040469,0.979707586205811,0.976361885564029, +00:02:12,1,1,1,0.996609522144481,0.993224798073545,0.989846920684258,0.986476332320048,0.983113422296274,0.979759851504389,0.976422717281837, +00:02:13,1,1,1,0.996618282134163,0.993242283600787,0.989873083727903,0.986511124819225,0.983156799685216,0.979811776245883,0.976483152964875, +00:02:14,1,1,1,0.996626984764216,0.993259654835992,0.989899076044263,0.986545690613778,0.983199894829867,0.979863363562096,0.976543196252386, +00:02:15,1,1,1,0.996635630565334,0.993276912833591,0.989924899205776,0.986580031789246,0.983242710323827,0.979914616550267,0.976602850743479, +00:02:16,1,1,1,0.996644220062302,0.993294058636337,0.989950554767492,0.98661415040813,0.983285248732078,0.979965538273498,0.976662119997624, +00:02:17,1,1,1,0.996652753774068,0.993311093275447,0.989976044267293,0.986648048510189,0.983327512591344,0.980016131761178,0.976721007535141, +00:02:18,1,1,1,0.996661232213822,0.993328017770745,0.990001369226106,0.986681728112712,0.983369504410432,0.980066400009395,0.976779516837679, +00:02:19,1,1,1,0.996669655889059,0.993344833130803,0.990026531148106,0.986715191210802,0.983411226670581,0.980116345981344,0.976837651348696, +00:02:20,1,1,1,0.996678025301657,0.993361540353083,0.990051531520932,0.986748439777642,0.983452681825799,0.980165972607738,0.976895414473924, +00:02:21,1,1,1,0.996686340947946,0.993378140424069,0.990076371815881,0.986781475764771,0.983493872303198,0.980215282787198,0.976952809581833, +00:02:22,1,1,1,0.996694603318774,0.993394634319407,0.990101053488115,0.986814301102346,0.983534800503324,0.980264279386654,0.977009840004087, +00:02:23,1,1,1,0.996702812899578,0.993411023004036,0.990125577976859,0.986846917699407,0.983575468800484,0.98031296524173,0.977066509035997, +00:02:24,1,1,1,0.996710970170449,0.993427307432321,0.990149946705595,0.986879327444135,0.983615879543065,0.980361343157128,0.977122819936963, +00:02:25,1,1,1,0.996719075606201,0.993443488548182,0.990174161082254,0.986911532204106,0.983656035053856,0.980409415907004,0.977178775930917, +00:02:26,1,1,1,0.996727129676436,0.993459567285224,0.990198222499411,0.986943533826547,0.983695937630356,0.980457186235345,0.977234380206749, +00:02:27,1,1,1,0.996735132845604,0.993475544566861,0.99022213233447,0.986975334138583,0.983735589545086,0.980504656856334,0.977289635918741, +00:02:28,1,1,1,0.996743085573073,0.993491421306444,0.990245891949849,0.987006934947479,0.983774993045893,0.980551830454717,0.977344546186986, +00:02:29,1,1,1,0.996750988313189,0.993507198407383,0.990269502693163,0.98703833804089,0.983814150356251,0.980598709686157,0.977399114097803, +00:02:30,1,1,1,0.996758841515338,0.993522876763266,0.990292965897409,0.987069545187094,0.983853063675558,0.980645297177591,0.97745334270415, +00:02:31,1,1,1,0.996766645624005,0.993538457257984,0.990316282881139,0.987100558135229,0.983891735179429,0.980691595527578,0.977507235026028, +00:02:32,1,1,1,0.996774401078838,0.993553940765846,0.990339454948639,0.987131378615529,0.983930167019985,0.980737607306645,0.977560794050882, +00:02:33,1,1,1,0.996782108314707,0.993569328151696,0.9903624833901,0.987162008339549,0.983968361326138,0.980783335057626,0.977614022733993, +00:02:34,1,1,1,0.996789767761759,0.99358462027103,0.990385369481794,0.987192449000398,0.984006320203874,0.980828781295997,0.977666923998872, +00:02:35,1,1,1,0.996797379845482,0.993599817970109,0.990408114486237,0.987222702272956,0.984044045736529,0.980873948510209,0.977719500737639, +00:02:36,1,1,1,0.996804944986754,0.993614922086071,0.990430719652362,0.9872527698141,0.984081539985066,0.980918839162014,0.977771755811409, +00:02:37,1,1,1,0.996812463601908,0.993629933447041,0.990453186215678,0.98728265326292,0.98411880498834,0.980963455686787,0.977823692050659, +00:02:38,1,1,1,0.996819936102783,0.993644852872242,0.990475515398438,0.987312354240935,0.984155842763374,0.981007800493846,0.977875312255604, +00:02:39,1,1,1,0.996827362896777,0.993659681172103,0.990497708409793,0.987341874352302,0.984192655305613,0.981051875966764,0.977926619196557, +00:02:40,1,1,1,0.996834744386907,0.993674419148365,0.990519766445957,0.987371215184031,0.984229244589191,0.981095684463682,0.977977615614292, +00:02:41,1,1,1,0.996842080971857,0.993689067594183,0.99054169069036,0.987400378306188,0.984265612567185,0.981139228317612,0.978028304220399, +00:02:42,1,1,1,0.996849373046032,0.993703627294238,0.990563482313799,0.9874293652721,0.98430176117187,0.981182509836742,0.978078687697632, +00:02:43,1,1,1,0.996856620999614,0.993718099024828,0.990585142474598,0.987458177618557,0.984337692314967,0.981225531304731,0.978128768700257, +00:02:44,1,1,1,0.996863825218608,0.993732483553979,0.99060667231875,0.98748681686601,0.984373407887889,0.981268294981008,0.978178549854396, +00:02:45,1,1,1,0.996870986084893,0.99374678164154,0.99062807298007,0.987515284518767,0.984408909761991,0.981310803101055,0.978228033758358, +00:02:46,1,1,1,0.996878103976278,0.99376099403928,0.990649345580339,0.987543582065187,0.984444199788801,0.981353057876703,0.978277222982977, +00:02:47,1,1,1,0.996885179266544,0.993775121490991,0.990670491229452,0.987571710977873,0.984479279800266,0.981395061496407,0.97832612007194, +00:02:48,1,1,1,0.996892212325496,0.993789164732577,0.990691511025555,0.987599672713856,0.98451415160898,0.981436816125528,0.978374727542107, +00:02:49,1,1,1,0.996899203519011,0.993803124492152,0.990712406055189,0.987627468714787,0.98454881700842,0.981478323906613,0.978423047883835, +00:02:50,1,1,1,0.996906153209086,0.993817001490135,0.990733177393428,0.987655100407117,0.984583277773169,0.981519586959658,0.978471083561295, +00:02:51,1,1,1,0.996913061753882,0.993830796439338,0.990753826104019,0.987682569202277,0.984617535659147,0.981560607382385,0.978518837012777, +00:02:52,1,1,1,0.996919929507773,0.99384451004506,0.99077435323951,0.987709876496863,0.984651592403829,0.981601387250503,0.978566310651005, +00:02:53,1,1,1,0.996926756821392,0.993858143005176,0.990794759841391,0.987737023672806,0.984685449726466,0.98164192861797,0.978613506863436, +00:02:54,1,1,1,0.996933544041671,0.993871696010224,0.990815046940221,0.987764012097551,0.984719109328302,0.981682233517251,0.978660428012564, +00:02:55,1,1,1,0.996940291511892,0.993885169743497,0.990835215555761,0.987790843124227,0.984752572892787,0.981722303959575,0.978707076436211, +00:02:56,1,1,1,0.996946999571725,0.993898564881123,0.990855266697098,0.987817518091816,0.984785842085787,0.981762141935184,0.978753454447823, +00:02:57,1,1,1,0.996953668557276,0.993911882092155,0.990875201362779,0.987844038325326,0.984818918555798,0.981801749413584,0.978799564336755, +00:02:58,1,1,1,0.996960298801125,0.993925122038653,0.990895020540928,0.987870405135948,0.984851803934141,0.981841128343787,0.978845408368561, +00:02:59,1,1,1,0.996966890632372,0.993938285375767,0.990914725209374,0.987896619821229,0.984884499835177,0.981880280654557,0.978890988785267, +00:03:00,1,1,1,0.996973444376676,0.99395137275182,0.990934316335772,0.987922683665225,0.984917007856499,0.981919208254644,0.978936307805658, +00:03:01,1,1,1,0.996979960356298,0.993964384808389,0.990953794877723,0.987948597938666,0.984949329579133,0.981957913033026,0.978981367625542, +00:03:02,1,1,1,0.99698643889014,0.993977322180382,0.990973161782894,0.98797436389911,0.984981466567732,0.981996396859137,0.979026170418028, +00:03:03,1,1,1,0.996992880293783,0.993990185496121,0.990992417989132,0.987999982791098,0.985013420370771,0.982034661583096,0.979070718333789, +00:03:04,1,1,1,0.996999284879532,0.994002975377415,0.991011564424583,0.988025455846313,0.985045192520735,0.982072709035941,0.979115013501326, +00:03:05,1,1,1,0.99700565295645,0.994015692439643,0.991030602007804,0.988050784283721,0.985076784534307,0.982110541029844,0.979159058027229, +00:03:06,1,1,1,0.997011984830396,0.994028337291823,0.991049531647877,0.988075969309729,0.985108197912554,0.98214815935834,0.979202853996433, +00:03:07,1,1,1,0.997018280804067,0.99404091053669,0.991068354244521,0.98810101211833,0.985139434141112,0.982185565796537,0.97924640347247, +00:03:08,1,1,1,0.997024541177033,0.994053412770773,0.991087070688199,0.988125913891247,0.985170494690364,0.982222762101342,0.979289708497721, +00:03:09,1,1,1,0.997030766245772,0.994065844584461,0.991105681860228,0.988150675798076,0.985201381015617,0.982259750011663,0.979332771093666, +00:03:10,1,1,1,0.997036956303712,0.99407820656208,0.991124188632888,0.988175298996432,0.985232094557284,0.982296531248627,0.97937559326112, +00:03:11,1,1,1,0.99704311164126,0.994090499281965,0.991142591869525,0.988199784632084,0.985262636741051,0.982333107515783,0.979418176980481, +00:03:12,1,1,1,0.997049232545842,0.994102723316523,0.991160892424656,0.988224133839096,0.985293008978053,0.98236948049931,0.979460524211965, +00:03:13,1,1,1,0.997055319301936,0.994114879232312,0.991179091144072,0.988248347739965,0.985323212665044,0.982405651868214,0.979502636895838, +00:03:14,1,1,1,0.99706137219111,0.994126967590101,0.991197188864941,0.98827242744575,0.985353249184561,0.982441623274534,0.979544516952655, +00:03:15,1,1,1,0.99706739149205,0.994138988944943,0.991215186415906,0.988296374056212,0.985383119905091,0.982477396353534,0.97958616628348, +00:03:16,1,1,1,0.997073377480601,0.994150943846238,0.991233084617187,0.98832018865994,0.985412826181234,0.982512972723901,0.979627586770118, +00:03:17,1,1,1,0.997079330429793,0.994162832837802,0.991250884280676,0.988343872334483,0.985442369353865,0.982548353987934,0.979668780275336, +00:03:18,1,1,1,0.99708525060988,0.994174656457928,0.991268586210036,0.988367426146477,0.985471750750292,0.982583541731736,0.979709748643083, +00:03:19,1,1,1,0.997091138288367,0.994186415239455,0.991286191200794,0.988390851151774,0.985500971684411,0.9826185375254,0.979750493698707, +00:03:20,1,1,1,0.997096993730049,0.994198109709827,0.991303700040438,0.988414148395562,0.985530033456865,0.982653342923193,0.97979101724917, +00:03:21,1,1,1,0.997102817197033,0.994209740391156,0.991321113508507,0.988437318912492,0.985558937355194,0.982687959463743,0.979831321083262, +00:03:22,1,1,1,0.997108608948779,0.994221307800287,0.991338432376687,0.988460363726799,0.985587684653988,0.982722388670212,0.979871406971805, +00:03:23,1,1,1,0.997114369242124,0.994232812448856,0.991355657408895,0.988483283852421,0.985616276615035,0.98275663205048,0.979911276667868, +00:03:24,1,1,1,0.997120098331314,0.99424425484335,0.991372789361376,0.988506080293117,0.985644714487467,0.982790691097319,0.979950931906961, +00:03:25,1,1,1,0.997125796468038,0.994255635485169,0.991389828982786,0.988528754042589,0.98567299950791,0.982824567288564,0.979990374407244, +00:03:26,1,1,1,0.99713146390145,0.99426695487068,0.991406777014282,0.988551306084588,0.985701132900623,0.98285826208729,0.980029605869724, +00:03:27,1,1,1,0.997137100878205,0.994278213491281,0.991423634189607,0.98857373739304,0.98572911587764,0.982891776941974,0.980068627978448, +00:03:28,1,1,1,0.997142707642486,0.994289411833453,0.991440401235174,0.988596048932147,0.985756949638915,0.982925113286666,0.980107442400703, +00:03:29,1,1,1,0.99714828443603,0.994300550378819,0.991457078870154,0.988618241656509,0.985784635372453,0.982958272541156,0.980146050787203, +00:03:30,1,1,1,0.997153831498158,0.994311629604197,0.991473667806553,0.988640316511226,0.985812174254453,0.982991256111132,0.980184454772278, +00:03:31,1,1,1,0.997159349065805,0.994322649981661,0.991490168749301,0.988662274432009,0.985839567449438,0.983024065388344,0.980222655974063, +00:03:32,1,1,1,0.997164837373544,0.994333611978588,0.991506582396326,0.98868411634529,0.985866816110392,0.983056701750761,0.980260655994684, +00:03:33,1,1,1,0.997170296653613,0.994344516057716,0.991522909438637,0.988705843168322,0.985893921378889,0.983089166562732,0.980298456420433, +00:03:34,1,1,1,0.997175727135945,0.994355362677197,0.991539150560406,0.98872745580929,0.985920884385224,0.983121461175133,0.980336058821957, +00:03:35,1,1,1,0.997181129048192,0.994366152290647,0.991555306439038,0.988748955167408,0.985947706248538,0.983153586925529,0.980373464754427, +00:03:36,1,1,1,0.997186502615751,0.994376885347199,0.991571377745257,0.988770342133027,0.985974388076952,0.983185545138318,0.980410675757722, +00:03:37,1,1,1,0.99719184806179,0.994387562291556,0.991587365143173,0.98879161758773,0.986000930967683,0.983217337124884,0.980447693356593, +00:03:38,1,1,1,0.997197165607275,0.994398183564036,0.991603269290367,0.988812782404435,0.986027336007173,0.983248964183742,0.980484519060843, +00:03:39,1,1,1,0.997202455470992,0.994408749600629,0.991619090837954,0.988833837447492,0.986053604271212,0.983280427600685,0.980521154365487, +00:03:40,1,1,1,0.997207717869576,0.994419260833038,0.991634830430664,0.988854783572778,0.986079736825052,0.983311728648929,0.980557600750928, +00:03:41,1,1,1,0.997212953017531,0.994429717688735,0.991650488706914,0.988875621627798,0.986105734723533,0.983342868589249,0.980593859683114, +00:03:42,1,1,1,0.997218161127256,0.994440120591004,0.991666066298874,0.988896352451774,0.986131599011197,0.983373848670128,0.980629932613706, +00:03:43,1,1,1,0.997223342409071,0.994450469958991,0.991681563832541,0.98891697687574,0.986157330722403,0.983404670127888,0.980665820980234, +00:03:44,1,1,1,0.997228497071238,0.994460766207747,0.99169698192781,0.988937495722634,0.986182930881444,0.983435334186827,0.980701526206261, +00:03:45,1,1,1,0.997233625319982,0.994471009748281,0.991712321198539,0.988957909807393,0.986208400502659,0.983465842059361,0.980737049701534, +00:03:46,1,1,1,0.997238727359522,0.994481200987597,0.991727582252621,0.988978219937036,0.986233740590543,0.983496194946147,0.980772392862145, +00:03:47,1,1,1,0.997243803392084,0.994491340328746,0.991742765692046,0.988998426910759,0.986258952139862,0.983526394036226,0.980807557070679, +00:03:48,1,1,1,0.997248853617931,0.994501428170868,0.991757872112973,0.989018531520016,0.986284036135757,0.983556440507142,0.980842543696366, +00:03:49,1,1,1,0.99725387823538,0.994511464909232,0.991772902105788,0.989038534548615,0.986308993553855,0.983586335525078,0.980877354095232, +00:03:50,1,1,1,0.997258877440827,0.994521450935287,0.991787856255178,0.989058436772794,0.986333825360371,0.98361608024498,0.980911989610244, +00:03:51,1,1,1,0.997263851428768,0.9945313866367,0.991802735140184,0.989078238961311,0.98635853251222,0.983645675810681,0.980946451571458, +00:03:52,1,1,1,0.997268800391819,0.994541272397397,0.991817539334276,0.989097941875526,0.986383115957114,0.983675123355029,0.98098074129616, +00:03:53,1,1,1,0.997273724520737,0.994551108597608,0.991832269405402,0.989117546269485,0.986407576633667,0.983704424000005,0.98101486008901, +00:03:54,1,1,1,0.997278624004444,0.994560895613907,0.991846925916062,0.989137052889997,0.986431915471498,0.983733578856845,0.98104880924218, +00:03:55,1,1,1,0.997283499030044,0.994570633819254,0.991861509423358,0.989156462476719,0.986456133391327,0.983762589026161,0.981082590035496, +00:03:56,1,1,1,0.997288349782843,0.994580323583033,0.991876020479063,0.989175775762234,0.986480231305077,0.983791455598055,0.981116203736572, +00:03:57,1,1,1,0.997293176446374,0.994589965271091,0.991890459629672,0.989194993472128,0.986504210115971,0.983820179652238,0.981149651600944, +00:03:58,1,1,1,0.99729797920241,0.994599559245781,0.991904827416467,0.989214116325071,0.986528070718625,0.983848762258147,0.981182934872207, +00:03:59,1,1,1,0.997302758230987,0.994609105865999,0.991919124375573,0.989233145032888,0.986551813999149,0.983877204475054,0.981216054782145, +00:04:00,1,1,1,0.997307513710427,0.99461860548722,0.99193335103801,0.989252080300641,0.986575440835235,0.983905507352179,0.981249012550861, +00:04:01,1,1,1,0.997312245817347,0.994628058461541,0.991947507929758,0.989270922826697,0.986598952096255,0.983933671928804,0.981281809386905, +00:04:02,1,1,1,0.99731695472669,0.994637465137711,0.991961595571806,0.989289673302808,0.986622348643347,0.983961699234379,0.981314446487404, +00:04:03,1,1,1,0.997321640611733,0.994646825861176,0.991975614480209,0.98930833241418,0.98664563132951,0.983989590288631,0.981346925038183, +00:04:04,1,1,1,0.997326303644112,0.99465614097411,0.991989565166144,0.989326900839547,0.986668800999694,0.984017346101672,0.981379246213893, +00:04:05,1,1,1,0.997330943993838,0.994665410815453,0.992003448135961,0.98934537925124,0.986691858490884,0.984044967674104,0.981411411178132, +00:04:06,1,1,1,0.997335561829316,0.994674635720944,0.992017263891236,0.989363768315258,0.986714804632191,0.984072455997121,0.981443421083565, +00:04:07,1,1,1,0.997340157317358,0.994683816023161,0.992031012928827,0.98938206869134,0.986737640244937,0.984099812052614,0.981475277072046, +00:04:08,1,1,1,0.997344730623209,0.994692952051552,0.992044695740922,0.989400281033029,0.986760366142739,0.984127036813274,0.981506980274732, +00:04:09,1,1,1,0.997349281910556,0.994702044132469,0.99205831281509,0.989418405987744,0.986782983131596,0.984154131242687,0.981538531812205, +00:04:10,1,1,1,0.997353811341548,0.994711092589206,0.992071864634334,0.989436444196842,0.986805492009969,0.984181096295441,0.981569932794583, +00:04:11,1,1,1,0.997358319076817,0.994720097742027,0.99208535167714,0.98945439629569,0.986827893568866,0.984207932917216,0.981601184321635, +00:04:12,1,1,1,0.997362805275489,0.994729059908202,0.992098774417525,0.989472262913727,0.986850188591922,0.984234642044889,0.981632287482895, +00:04:13,1,1,1,0.9973672700952,0.994737979402041,0.992112133325086,0.989490044674527,0.986872377855476,0.984261224606622,0.98166324335777, +00:04:14,1,1,1,0.997371713692118,0.994746856534922,0.99212542886505,0.989507742195865,0.986894462128655,0.984287681521961,0.981694053015654, +00:04:15,1,1,1,0.997376136220954,0.994755691615327,0.992138661498318,0.989525356089781,0.986916442173452,0.984314013701928,0.981724717516032, +00:04:16,1,1,1,0.99738053783498,0.994764484948871,0.992151831681516,0.989542886962638,0.986938318744799,0.984340222049113,0.981755237908591, +00:04:17,1,1,1,0.997384918686045,0.994773236838336,0.992164939867037,0.989560335415189,0.986960092590647,0.984366307457768,0.981785615233324, +00:04:18,1,1,1,0.997389278924587,0.994781947583696,0.992177986503091,0.989577702042632,0.98698176445204,0.984392270813892,0.981815850520633, +00:04:19,1,1,1,0.997393618699654,0.994790617482155,0.992190972033748,0.989594987434674,0.987003335063191,0.984418112995323,0.981845944791435, +00:04:20,1,1,1,0.997397938158915,0.994799246828171,0.992203896898982,0.989612192175589,0.987024805151553,0.984443834871829,0.981875899057265, +00:04:21,1,1,1,0.997402237448675,0.994807835913487,0.992216761534717,0.989629316844277,0.987046175437894,0.984469437305186,0.981905714320372, +00:04:22,1,1,1,0.99740651671389,0.994816385027161,0.992229566372868,0.989646362014319,0.987067446636369,0.984494921149272,0.981935391573824, +00:04:23,1,1,1,0.997410776098186,0.994824894455598,0.99224231184139,0.98966332825404,0.98708861945459,0.98452028725015,0.981964931801604, +00:04:24,1,1,1,0.997415015743864,0.994833364482572,0.99225499836431,0.989680216126559,0.987109694593695,0.984545536446149,0.981994335978707, +00:04:25,1,1,1,0.997419235791926,0.994841795389258,0.992267626361783,0.989697026189848,0.98713067274842,0.98457066956795,0.982023605071236, +00:04:26,1,1,1,0.997423436382077,0.994850187454262,0.99228019625012,0.989713758996789,0.987151554607167,0.984595687438665,0.9820527400365, +00:04:27,1,1,1,0.997427617652749,0.994858540953642,0.992292708441837,0.989730415095224,0.987172340852069,0.984620590873919,0.982081741823103, +00:04:28,1,1,1,0.997431779741108,0.994866856160944,0.992305163345696,0.989746995028012,0.987193032159061,0.98464538068193,0.982110611371042, +00:04:29,1,1,1,0.99743592278307,0.994875133347221,0.99231756136674,0.989763499333081,0.987213629197942,0.98467005766359,0.982139349611793, +00:04:30,1,1,1,0.997440046913316,0.994883372781063,0.992329902906338,0.989779928543481,0.987234132632445,0.984694622612539,0.982167957468408, +00:04:31,1,1,1,0.997444152265303,0.994891574728626,0.992342188362219,0.989796283187436,0.987254543120295,0.984719076315243,0.982196435855597, +00:04:32,1,1,1,0.997448238971275,0.994899739453651,0.992354418128514,0.989812563788395,0.98727486131328,0.984743419551073,0.982224785679825, +00:04:33,1,1,1,0.997452307162283,0.994907867217497,0.992366592595797,0.989828770865082,0.98729508785731,0.984767653092378,0.982253007839392, +00:04:34,1,1,1,0.997456356968189,0.994915958279161,0.992378712151114,0.989844904931547,0.987315223392477,0.984791777704557,0.982281103224522, +00:04:35,1,1,1,0.997460388517684,0.994924012895306,0.992390777178029,0.989860966497215,0.987335268553124,0.984815794146138,0.982309072717452, +00:04:36,1,1,1,0.997464401938302,0.994932031320285,0.992402788056658,0.989876956066938,0.987355223967898,0.984839703168847,0.982336917192508, +00:04:37,1,1,1,0.997468397356426,0.994940013806164,0.992414745163704,0.989892874141037,0.987375090259815,0.984863505517679,0.982364637516198, +00:04:38,1,1,1,0.997472374897306,0.99494796060275,0.992426648872492,0.989908721215354,0.987394868046315,0.984887201930972,0.982392234547286, +00:04:39,1,1,1,0.997476334685066,0.99495587195761,0.992438499553011,0.9899244977813,0.987414557939328,0.984910793140473,0.98241970913688, +00:04:40,1,1,1,0.997480276842723,0.994963748116098,0.992450297571942,0.9899402043259,0.987434160545323,0.984934279871412,0.982447062128507, +00:04:41,1,1,1,0.99748420149219,0.994971589321377,0.992462043292697,0.989955841331837,0.987453676465371,0.984957662842567,0.982474294358197, +00:04:42,1,1,1,0.997488108754294,0.994979395814442,0.99247373707545,0.989971409277503,0.987473106295202,0.984980942766331,0.982501406654558, +00:04:43,1,1,1,0.997491998748785,0.994987167834144,0.992485379277175,0.989986908637039,0.987492450625257,0.985004120348782,0.982528399838855, +00:04:44,1,1,1,0.997495871594349,0.99499490561721,0.992496970251677,0.990002339880382,0.987511710040748,0.985027196289749,0.982555274725089, +00:04:45,1,1,1,0.997499727408615,0.995002609398268,0.992508510349625,0.990017703473307,0.987530885121707,0.985050171282872,0.982582032120068, +00:04:46,1,1,1,0.997503566308171,0.995010279409869,0.992519999918586,0.990032999877473,0.987549976443047,0.985073046015671,0.982608672823486, +00:04:47,1,1,1,0.997507388408572,0.995017915882505,0.992531439303057,0.990048229550465,0.98756898457461,0.985095821169613,0.982635197627997, +00:04:48,1,1,1,0.997511193824353,0.995025519044633,0.992542828844496,0.990063392945835,0.987587910081219,0.985118497420165,0.982661607319285, +00:04:49,1,1,1,0.997514982669036,0.995033089122699,0.992554168881355,0.990078490513147,0.987606753522738,0.985141075436866,0.982687902676137, +00:04:50,1,1,1,0.997518755055145,0.995040626341155,0.992565459749112,0.990093522698014,0.987625515454113,0.985163555883384,0.98271408447052, +00:04:51,1,1,1,0.997522511094213,0.995048130922478,0.992576701780298,0.990108489942144,0.987644196425432,0.985185939417578,0.982740153467645, +00:04:52,1,1,1,0.997526250896794,0.995055603087198,0.992587895304533,0.990123392683376,0.987662796981969,0.985208226691555,0.982766110426038, +00:04:53,1,1,1,0.997529974572472,0.995063043053911,0.992599040648551,0.990138231355724,0.987681317664238,0.985230418351737,0.982791956097612, +00:04:54,1,1,1,0.997533682229873,0.995070451039302,0.992610138136234,0.990153006389414,0.987699759008039,0.98525251503891,0.982817691227734, +00:04:55,1,1,1,0.997537373976673,0.995077827258164,0.992621188088639,0.990167718210923,0.987718121544508,0.985274517388289,0.982843316555292, +00:04:56,1,1,1,0.997541049919609,0.995085171923418,0.992632190824028,0.990182367243019,0.987736405800167,0.985296426029574,0.98286883281276, +00:04:57,1,1,1,0.997544710164488,0.995092485246134,0.992643146657895,0.990196953904799,0.987754612296969,0.985318241587006,0.982894240726268, +00:04:58,1,1,1,0.997548354816195,0.995099767435547,0.992654055903,0.990211478611726,0.987772741552343,0.985339964679422,0.982919541015664, +00:04:59,1,1,1,0.997551983978708,0.995107018699077,0.99266491886939,0.990225941775667,0.987790794079248,0.985361595920312,0.982944734394577, +00:05:00,1,1,1,0.997555597755102,0.995114239242348,0.992675735864431,0.990240343804928,0.987808770386209,0.985383135917873,0.982969821570487, +00:05:01,1,1,1,0.997559196247558,0.995121429269207,0.992686507192835,0.990254685104296,0.98782667097737,0.985404585275064,0.982994803244781, +00:05:02,1,1,1,0.997562779557377,0.995128588981742,0.992697233156687,0.990268966075067,0.987844496352536,0.98542594458966,0.983019680112817, +00:05:03,1,1,1,0.997566347784985,0.995135718580297,0.99270791405547,0.990283187115087,0.987862247007217,0.985447214454302,0.983044452863991, +00:05:04,1,1,1,0.997569901029944,0.995142818263495,0.992718550186097,0.990297348618789,0.987879923432671,0.985468395456551,0.983069122181788, +00:05:05,1,1,1,0.997573439390959,0.995149888228253,0.992729141842929,0.990311450977221,0.987897526115951,0.985489488178942,0.983093688743851, +00:05:06,1,1,1,0.997576962965886,0.995156928669798,0.992739689317809,0.990325494578085,0.987915055539943,0.985510493199032,0.983118153222034, +00:05:07,1,1,1,0.997580471851748,0.995163939781686,0.992750192900082,0.990339479805772,0.987932512183411,0.985531411089451,0.983142516282467, +00:05:08,1,1,1,0.997583966144731,0.99517092175582,0.992760652876624,0.990353407041393,0.987949896521041,0.985552242417953,0.983166778585606, +00:05:09,1,1,1,0.997587445940205,0.995177874782463,0.992771069531864,0.990367276662812,0.987967209023477,0.985572987747465,0.983190940786298, +00:05:10,1,1,1,0.997590911332723,0.995184799050259,0.992781443147811,0.990381089044683,0.987984450157365,0.985593647636137,0.983215003533834, +00:05:11,1,1,1,0.997594362416035,0.995191694746247,0.99279177400408,0.990394844558476,0.988001620385395,0.985614222637385,0.983238967472005, +00:05:12,1,1,1,0.997597799283093,0.995198562055877,0.99280206237791,0.990408543572517,0.988018720166337,0.985634713299948,0.98326283323916, +00:05:13,1,1,1,0.997601222026061,0.995205401163028,0.992812308544195,0.990422186452011,0.988035749955083,0.985655120167926,0.983286601468255, +00:05:14,1,1,1,0.997604630736322,0.995212212250021,0.992822512775504,0.99043577355908,0.988052710202686,0.985675443780831,0.983310272786916, +00:05:15,1,1,1,0.997608025504486,0.995218995497638,0.992832675342106,0.990449305252793,0.988069601356399,0.985695684673634,0.983333847817484, +00:05:16,1,1,1,0.997611406420398,0.995225751085136,0.99284279651199,0.990462781889194,0.988086423859712,0.985715843376809,0.983357327177073, +00:05:17,1,1,1,0.997614773573144,0.99523247919026,0.992852876550892,0.990476203821334,0.988103178152389,0.985735920416377,0.983380711477621, +00:05:18,1,1,1,0.997618127051063,0.995239179989262,0.992862915722316,0.990489571399301,0.988119864670507,0.985755916313952,0.983404001325942, +00:05:19,1,1,1,0.99762146694175,0.995245853656914,0.992872914287554,0.990502884970252,0.988136483846492,0.985775831586787,0.983427197323777, +00:05:20,1,1,1,0.997624793332065,0.995252500366524,0.992882872505713,0.990516144878436,0.988153036109158,0.985795666747812,0.983450300067844, +00:05:21,1,1,1,0.997628106308141,0.995259120289948,0.992892790633732,0.99052935146523,0.988169521883738,0.985815422305683,0.983473310149889, +00:05:22,1,1,1,0.99763140595539,0.995265713597608,0.992902668926407,0.990542505069163,0.988185941591925,0.985835098764822,0.983496228156735, +00:05:23,1,1,1,0.997634692358512,0.995272280458503,0.992912507636411,0.990555606025947,0.988202295651902,0.985854696625457,0.983519054670332, +00:05:24,1,1,1,0.997637965601501,0.995278821040227,0.992922307014314,0.990568654668503,0.988218584478382,0.985874216383669,0.983541790267803, +00:05:25,1,1,1,0.997641225767651,0.995285335508979,0.992932067308606,0.99058165132699,0.988234808482638,0.985893658531426,0.983564435521495, +00:05:26,1,1,1,0.997644472939566,0.995291824029579,0.992941788765717,0.990594596328834,0.988250968072542,0.985913023556631,0.983586990999022, +00:05:27,1,1,1,0.997647707199163,0.995298286765481,0.992951471630037,0.990607489998749,0.988267063652593,0.985932311943158,0.983609457263317, +00:05:28,1,1,1,0.997650928627682,0.995304723878788,0.992961116143936,0.990620332658773,0.988283095623955,0.985951524170891,0.983631834872673, +00:05:29,1,1,1,0.99765413730569,0.995311135530263,0.992970722547785,0.990633124628285,0.988299064384487,0.985970660715767,0.983654124380794, +00:05:30,1,1,1,0.997657333313092,0.995317521879345,0.992980291079975,0.990645866224038,0.988314970328777,0.985989722049813,0.983676326336836, +00:05:31,1,1,1,0.997660516729131,0.995323883084159,0.992989821976936,0.990658557760183,0.988330813848174,0.986008708641182,0.983698441285452, +00:05:32,1,1,1,0.997663687632401,0.99533021930153,0.992999315473156,0.990671199548293,0.988346595330821,0.986027620954196,0.983720469766841, +00:05:33,1,1,1,0.997666846100849,0.995336530686999,0.993008771801205,0.990683791897389,0.988362315161682,0.986046459449379,0.983742412316784, +00:05:34,1,1,1,0.997669992211784,0.99534281739483,0.993018191191745,0.990696335113968,0.988377973722579,0.986065224583498,0.983764269466694, +00:05:35,1,1,1,0.997673126041882,0.995349079578028,0.993027573873557,0.990708829502022,0.988393571392221,0.986083916809597,0.983786041743655, +00:05:36,1,1,1,0.997676247667191,0.995355317388347,0.993036920073554,0.990721275363067,0.98840910854623,0.986102536577035,0.983807729670467, +00:05:37,1,1,1,0.997679357163141,0.995361530976304,0.993046230016802,0.990733672996169,0.988424585557178,0.986121084331521,0.983829333765683, +00:05:38,1,1,1,0.997682454604547,0.995367720491193,0.993055503926539,0.99074602269796,0.988440002794612,0.986139560515149,0.983850854543657, +00:05:39,1,1,1,0.997685540065614,0.995373886081092,0.993064742024188,0.990758324762669,0.988455360625086,0.986157965566435,0.983872292514579, +00:05:40,1,1,1,0.997688613619945,0.995380027892882,0.99307394452938,0.990770579482145,0.988470659412188,0.986176299920353,0.98389364818452, +00:05:41,1,1,1,0.99769167534055,0.995386146072251,0.99308311165997,0.990782787145874,0.988485899516571,0.986194564008363,0.983914922055468, +00:05:42,1,1,1,0.997694725299843,0.995392240763712,0.99309224363205,0.99079494804101,0.98850108129598,0.986212758258453,0.98393611462537, +00:05:43,1,1,1,0.997697763569656,0.995398312110609,0.993101340659973,0.990807062452391,0.988516205105279,0.986230883095167,0.983957226388171, +00:05:44,1,1,1,0.997700790221243,0.995404360255133,0.993110402956366,0.990819130662566,0.988531271296484,0.986248938939641,0.983978257833851, +00:05:45,1,1,1,0.997703805325281,0.99541038533833,0.993119430732146,0.990831152951814,0.988546280218783,0.986266926209636,0.983999209448467, +00:05:46,1,1,1,0.997706808951881,0.995416387500114,0.993128424196538,0.990843129598168,0.98856123221857,0.986284845319567,0.984020081714185, +00:05:47,1,1,1,0.997709801170591,0.995422366879276,0.993137383557093,0.990855060877436,0.98857612763947,0.986302696680542,0.984040875109323, +00:05:48,1,1,1,0.997712782050402,0.995428323613499,0.9931463090197,0.990866947063221,0.98859096682236,0.986320480700386,0.984061590108385, +00:05:49,1,1,1,0.997715751659753,0.995434257839362,0.993155200788605,0.990878788426946,0.988605750105407,0.98633819778368,0.984082227182098, +00:05:50,1,1,1,0.997718710066536,0.995440169692356,0.993164059066425,0.990890585237871,0.988620477824081,0.986355848331784,0.98410278679745, +00:05:51,1,1,1,0.997721657338102,0.995446059306893,0.993172884054168,0.990902337763114,0.988635150311192,0.986373432742877,0.984123269417723, +00:05:52,1,1,1,0.997724593541268,0.995451926816315,0.99318167595124,0.990914046267675,0.988649767896908,0.986390951411978,0.98414367550253, +00:05:53,1,1,1,0.997727518742316,0.995457772352907,0.99319043495547,0.990925711014453,0.988664330908783,0.986408404730986,0.98416400550785, +00:05:54,1,1,1,0.997730433007006,0.995463596047905,0.993199161263118,0.990937332264268,0.988678839671783,0.986425793088701,0.984184259886063, +00:05:55,1,1,1,0.997733336400575,0.995469398031505,0.993207855068893,0.990948910275877,0.988693294508309,0.986443116870858,0.984204439085983, +00:05:56,1,1,1,0.997736228987746,0.995475178432876,0.993216516565968,0.990960445306001,0.988707695738221,0.986460376460155,0.984224543552893, +00:05:57,1,1,1,0.99773911083273,0.995480937380167,0.993225145945993,0.990971937609337,0.988722043678864,0.986477572236284,0.984244573728577, +00:05:58,1,1,1,0.997741981999231,0.995486675000521,0.99323374339911,0.99098338743858,0.988736338645092,0.986494704575956,0.984264530051358, +00:05:59,1,1,1,0.997744842550453,0.995492391420077,0.99324230911397,0.990994795044444,0.988750580949288,0.986511773852933,0.984284412956122, +00:06:00,1,1,1,0.997747692549105,0.995498086763988,0.993250843277741,0.991006160675678,0.988764770901392,0.98652878043805,0.984304222874361, +00:06:01,1,1,1,0.997750532057402,0.995503761156424,0.99325934607613,0.991017484579085,0.988778908808922,0.986545724699252,0.984323960234195, +00:06:02,1,1,1,0.997753361137072,0.995509414720584,0.993267817693391,0.991028766999543,0.988792994976996,0.986562607001611,0.984343625460413, +00:06:03,1,1,1,0.997756179849362,0.995515047578706,0.993276258312339,0.991040008180018,0.988807029708357,0.98657942770736,0.984363218974495, +00:06:04,1,1,1,0.99775898825504,0.995520659852073,0.993284668114366,0.991051208361589,0.988821013303393,0.986596187175918,0.984382741194653, +00:06:05,1,1,1,0.997761786414402,0.995526251661028,0.993293047279456,0.991062367783459,0.988834946060159,0.986612885763916,0.984402192535853, +00:06:06,1,1,1,0.997764574387274,0.995531823124973,0.993301395986192,0.991073486682976,0.988848828274403,0.986629523825223,0.984421573409852, +00:06:07,1,1,1,0.997767352233016,0.995537374362388,0.993309714411774,0.991084565295651,0.988862660239583,0.986646101710972,0.984440884225224, +00:06:08,1,1,1,0.997770120010532,0.995542905490835,0.993318002732032,0.991095603855173,0.988876442246889,0.986662619769585,0.984460125387389, +00:06:09,1,1,1,0.997772877778265,0.995548416626964,0.993326261121436,0.991106602593428,0.988890174585267,0.9866790783468,0.98447929729865, +00:06:10,1,1,1,0.997775625594211,0.995553907886528,0.993334489753112,0.991117561740516,0.988903857541439,0.986695477785696,0.98449840035821, +00:06:11,1,1,1,0.997778363515917,0.995559379384386,0.993342688798851,0.991128481524766,0.988917491399922,0.986711818426716,0.984517434962213, +00:06:12,1,1,1,0.997781091600485,0.995564831234512,0.993350858429125,0.991139362172751,0.988931076443048,0.986728100607693,0.984536401503764, +00:06:13,1,1,1,0.997783809904581,0.995570263550008,0.993358998813097,0.991150203909311,0.98894461295099,0.986744324663872,0.984555300372961, +00:06:14,1,1,1,0.997786518484435,0.995575676443106,0.993367110118634,0.991161006957562,0.988958101201774,0.986760490927939,0.984574131956923, +00:06:15,1,1,1,0.997789217395846,0.995581070025178,0.993375192512319,0.991171771538915,0.988971541471306,0.986776599730039,0.984592896639814, +00:06:16,1,1,1,0.997791906694185,0.995586444406748,0.993383246159462,0.991182497873091,0.988984934033385,0.986792651397802,0.984611594802877, +00:06:17,1,1,1,0.997794586434402,0.995591799697493,0.993391271224114,0.99119318617814,0.988998279159731,0.986808646256369,0.984630226824454, +00:06:18,1,1,1,0.997797256671027,0.995597136006256,0.993399267869077,0.991203836670452,0.989011577119995,0.986824584628408,0.984648793080018, +00:06:19,1,1,1,0.997799917458176,0.995602453441052,0.993407236255915,0.991214449564772,0.989024828181785,0.986840466834146,0.984667293942194, +00:06:20,1,1,1,0.997802568849552,0.995607752109076,0.993415176544966,0.991225025074221,0.98903803261068,0.986856293191383,0.984685729780793, +00:06:21,1,1,1,0.997805210898452,0.995613032116709,0.993423088895355,0.991235563410304,0.989051190670253,0.986872064015519,0.98470410096283, +00:06:22,1,1,1,0.997807843657768,0.995618293569529,0.993430973465002,0.99124606478293,0.989064302622087,0.986887779619575,0.984722407852555, +00:06:23,1,1,1,0.997810467179994,0.995623536572315,0.993438830410637,0.991256529400423,0.989077368725792,0.986903440314215,0.984740650811475, +00:06:24,1,1,1,0.997813081517225,0.995628761229055,0.993446659887806,0.991266957469541,0.989090389239027,0.986919046407767,0.984758830198381, +00:06:25,1,1,1,0.997815686721167,0.995633967642954,0.993454462050887,0.991277349195484,0.989103364417513,0.986934598206245,0.984776946369372, +00:06:26,1,1,1,0.997818282843133,0.995639155916441,0.993462237053096,0.991287704781915,0.989116294515055,0.986950096013369,0.984794999677882, +00:06:27,1,1,1,0.997820869934053,0.995644326151178,0.993469985046502,0.991298024430968,0.989129179783557,0.986965540130589,0.984812990474699, +00:06:28,1,1,1,0.997823448044475,0.995649478448062,0.993477706182035,0.991308308343267,0.989142020473042,0.986980930857101,0.984830919107995, +00:06:29,1,1,1,0.997826017224566,0.995654612907237,0.993485400609495,0.991318556717937,0.989154816831663,0.98699626848987,0.984848785923345, +00:06:30,1,1,1,0.997828577524122,0.995659729628099,0.993493068477565,0.991328769752617,0.989167569105729,0.987011553323653,0.984866591263754, +00:06:31,1,1,1,0.997831128992564,0.995664828709301,0.99350070993382,0.991338947643477,0.989180277539714,0.987026785651013,0.984884335469679, +00:06:32,1,1,1,0.997833671678946,0.995669910248763,0.993508325124739,0.991349090585227,0.989192942376276,0.987041965762343,0.98490201887905, +00:06:33,1,1,1,0.997836205631957,0.995674974343677,0.993515914195711,0.991359198771132,0.989205563856277,0.987057093945887,0.984919641827299, +00:06:34,1,1,1,0.997838730899926,0.995680021090513,0.993523477291048,0.991369272393027,0.989218142218793,0.987072170487754,0.984937204647373, +00:06:35,1,1,1,0.99784124753082,0.995685050585028,0.993531014553992,0.991379311641328,0.989230677701136,0.987087195671943,0.984954707669767, +00:06:36,1,1,1,0.997843755572254,0.995690062922268,0.99353852612673,0.991389316705044,0.989243170538865,0.987102169780357,0.984972151222538, +00:06:37,1,1,1,0.997846255071491,0.995695058196579,0.993546012150396,0.991399287771791,0.989255620965806,0.987117093092825,0.98498953563133, +00:06:38,1,1,1,0.997848746075443,0.995700036501611,0.993553472765087,0.991409225027804,0.989268029214065,0.987131965887123,0.985006861219396, +00:06:39,1,1,1,0.99785122863068,0.995704997930325,0.993560908109869,0.99141912865795,0.989280395514042,0.987146788438984,0.985024128307618, +00:06:40,1,1,1,0.997853702783426,0.995709942574998,0.993568318322787,0.991428998845741,0.989292720094451,0.987161561022126,0.985041337214533, +00:06:41,1,1,1,0.997856168579569,0.99571487052723,0.993575703540875,0.991438835773344,0.989305003182333,0.987176283908264,0.985058488256344, +00:06:42,1,1,1,0.997858626064657,0.995719781877953,0.993583063900162,0.991448639621593,0.989317245003067,0.987190957367129,0.985075581746952, +00:06:43,1,1,1,0.997861075283907,0.995724676717429,0.993590399535685,0.991458410570004,0.989329445780391,0.987205581666488,0.985092617997969, +00:06:44,1,1,1,0.997863516282206,0.995729555135265,0.993597710581495,0.991468148796783,0.989341605736413,0.987220157072157,0.985109597318742, +00:06:45,1,1,1,0.997865949104112,0.995734417220413,0.993604997170669,0.991477854478841,0.989353725091627,0.987234683848024,0.985126520016372, +00:06:46,1,1,1,0.99786837379386,0.99573926306118,0.993612259435313,0.991487527791804,0.989365804064925,0.987249162256061,0.985143386395732, +00:06:47,1,1,1,0.997870790395363,0.995744092745228,0.993619497506578,0.991497168910022,0.989377842873616,0.987263592556346,0.985160196759492, +00:06:48,1,1,1,0.997873198952215,0.995748906359585,0.993626711514661,0.991506778006585,0.989389841733433,0.987277975007073,0.985176951408132, +00:06:49,1,1,1,0.997875599507695,0.995753703990651,0.99363390158882,0.991516355253332,0.989401800858555,0.987292309864577,0.985193650639968, +00:06:50,1,1,1,0.997877992104766,0.995758485724197,0.993641067857377,0.99152590082086,0.989413720461614,0.987306597383342,0.985210294751165, +00:06:51,1,1,1,0.997880376786086,0.995763251645379,0.993648210447731,0.991535414878539,0.989425600753712,0.987320837816025,0.985226884035759, +00:06:52,1,1,1,0.997882753593999,0.995768001838736,0.993655329486363,0.991544897594518,0.989437441944434,0.987335031413468,0.985243418785677, +00:06:53,1,1,1,0.99788512257055,0.995772736388202,0.993662425098843,0.991554349135743,0.989449244241862,0.987349178424711,0.985259899290752, +00:06:54,1,1,1,0.997887483757478,0.995777455377105,0.993669497409843,0.991563769667958,0.989461007852585,0.987363279097016,0.985276325838746, +00:06:55,1,1,1,0.997889837196225,0.995782158888179,0.99367654654314,0.991573159355723,0.989472732981718,0.987377333675874,0.985292698715362, +00:06:56,1,1,1,0.997892182927934,0.995786847003562,0.993683572621626,0.991582518362423,0.989484419832908,0.987391342405029,0.985309018204269, +00:06:57,1,1,1,0.997894520993455,0.995791519804809,0.993690575767315,0.991591846850276,0.989496068608352,0.987405305526483,0.985325284587115, +00:06:58,1,1,1,0.997896851433346,0.995796177372889,0.993697556101353,0.991601144980345,0.989507679508808,0.987419223280523,0.985341498143544, +00:06:59,1,1,1,0.997899174287876,0.995800819788197,0.993704513744021,0.991610412912547,0.989519252733608,0.987433095905724,0.985357659151219, +00:07:00,1,1,1,0.997901489597028,0.995805447130555,0.993711448814747,0.991619650805664,0.989530788480668,0.987446923638975,0.985373767885834, +00:07:01,1,1,1,0.997903797400499,0.99581005947922,0.993718361432113,0.991628858817353,0.989542286946505,0.987460706715486,0.985389824621132, +00:07:02,1,1,1,0.997906097737707,0.995814656912884,0.993725251713858,0.991638037104154,0.989553748326245,0.987474445368806,0.985405829628925, +00:07:03,1,1,1,0.997908390647788,0.995819239509683,0.99373211977689,0.991647185821503,0.989565172813635,0.987488139830834,0.985421783179107, +00:07:04,1,1,1,0.997910676169604,0.995823807347204,0.993738965737293,0.991656305123737,0.989576560601059,0.98750179033184,0.985437685539671, +00:07:05,1,1,1,0.997912954341742,0.995828360502483,0.993745789710329,0.991665395164109,0.989587911879547,0.987515397100471,0.98545353697673, +00:07:06,1,1,1,0.997915225202514,0.995832899052015,0.993752591810454,0.991674456094793,0.989599226838786,0.987528960363771,0.985469337754528, +00:07:07,1,1,1,0.997917488789968,0.995837423071757,0.993759372151316,0.991683488066894,0.989610505667133,0.987542480347194,0.985485088135457, +00:07:08,1,1,1,0.997919745141879,0.995841932637133,0.993766130845766,0.991692491230459,0.989621748551625,0.987555957274613,0.985500788380074, +00:07:09,1,1,1,0.997921994295762,0.995846427823036,0.993772868005868,0.991701465734485,0.989632955677995,0.98756939136834,0.98551643874712, +00:07:10,1,1,1,0.997924236288865,0.995850908703839,0.993779583742899,0.991710411726929,0.989644127230675,0.987582782849135,0.985532039493527, +00:07:11,1,1,1,0.997926471158179,0.995855375353393,0.99378627816736,0.991719329354714,0.989655263392814,0.987596131936222,0.985547590874444, +00:07:12,1,1,1,0.997928698940435,0.995859827845033,0.993792951388983,0.991728218763743,0.989666364346288,0.987609438847299,0.985563093143243, +00:07:13,1,1,1,0.997930919672108,0.995864266251586,0.993799603516737,0.991737080098902,0.989677430271709,0.987622703798555,0.985578546551542, +00:07:14,1,1,1,0.997933133389421,0.99586869064537,0.993806234658832,0.991745913504072,0.989688461348434,0.98763592700468,0.985593951349212, +00:07:15,1,1,1,0.997935340128344,0.995873101098203,0.993812844922728,0.991754719122139,0.989699457754582,0.987649108678879,0.985609307784399, +00:07:16,1,1,1,0.997937539924597,0.995877497681404,0.993819434415143,0.991763497094999,0.989710419667038,0.987662249032884,0.985624616103536, +00:07:17,1,1,1,0.997939732813654,0.9958818804658,0.993826003242056,0.991772247563567,0.989721347261468,0.987675348276968,0.985639876551356, +00:07:18,1,1,1,0.997941918830743,0.995886249521728,0.993832551508713,0.991780970667787,0.989732240712328,0.987688406619955,0.985655089370909, +00:07:19,1,1,1,0.99794409801085,0.995890604919038,0.993839079319638,0.991789666546642,0.989743100192871,0.987701424269233,0.985670254803575, +00:07:20,1,1,1,0.997946270388718,0.995894946727104,0.993845586778632,0.991798335338155,0.989753925875164,0.987714401430769,0.985685373089076, +00:07:21,1,1,1,0.997948435998853,0.995899275014817,0.993852073988787,0.991806977179406,0.989764717930092,0.987727338309116,0.985700444465496, +00:07:22,1,1,1,0.997950594875523,0.9959035898506,0.993858541052486,0.991815592206534,0.98977547652737,0.987740235107431,0.98571546916929, +00:07:23,1,1,1,0.997952747052761,0.995907891302404,0.993864988071412,0.991824180554747,0.989786201835554,0.987753092027481,0.985730447435296, +00:07:24,1,1,1,0.997954892564368,0.995912179437719,0.993871415146551,0.99183274235833,0.989796894022049,0.987765909269658,0.985745379496755, +00:07:25,1,1,1,0.997957031443913,0.995916454323569,0.993877822378203,0.991841277750651,0.989807553253121,0.98777868703299,0.985760265585319, +00:07:26,1,1,1,0.997959163724736,0.995920716026525,0.993884209865981,0.991849786864172,0.989818179693903,0.987791425515152,0.985775105931068, +00:07:27,1,1,1,0.997961289439951,0.995924964612703,0.993890577708823,0.991858269830453,0.989828773508408,0.987804124912477,0.985789900762519, +00:07:28,1,1,1,0.997963408622444,0.99592920014777,0.993896926004996,0.991866726780163,0.989839334859538,0.987816785419969,0.985804650306643, +00:07:29,1,1,1,0.997965521304882,0.995933422696947,0.993903254852097,0.991875157843086,0.989849863909089,0.987829407231312,0.985819354788878, +00:07:30,1,1,1,0.997967627519707,0.995937632325015,0.993909564347065,0.991883563148125,0.989860360817768,0.987841990538883,0.985834014433137, +00:07:31,1,1,1,0.997969727299142,0.995941829096313,0.993915854586184,0.991891942823316,0.989870825745193,0.987854535533761,0.985848629461826, +00:07:32,1,1,1,0.997971820675194,0.995946013074749,0.993922125665087,0.99190029699583,0.98988125884991,0.98786704240574,0.985863200095854, +00:07:33,1,1,1,0.997973907679652,0.995950184323799,0.993928377678764,0.991908625791982,0.989891660289398,0.987879511343335,0.985877726554647, +00:07:34,1,1,1,0.997975988344093,0.995954342906511,0.993934610721564,0.99191692933724,0.989902030220078,0.987891942533801,0.985892209056157, +00:07:35,1,1,1,0.997978062699879,0.99595848888551,0.993940824887205,0.991925207756227,0.989912368797322,0.987904336163134,0.98590664781688, +00:07:36,1,1,1,0.997980130778164,0.995962622323,0.993947020268774,0.991933461172734,0.989922676175463,0.98791669241609,0.98592104305186, +00:07:37,1,1,1,0.997982192609891,0.99596674328077,0.993953196958738,0.991941689709723,0.989932952507802,0.987929011476187,0.98593539497471, +00:07:38,1,1,1,0.997984248225797,0.995970851820194,0.993959355048943,0.991949893489333,0.989943197946617,0.987941293525723,0.985949703797618, +00:07:39,1,1,1,0.997986297656414,0.995974948002236,0.993965494630624,0.991958072632892,0.989953412643172,0.98795353874578,0.985963969731358, +00:07:40,1,1,1,0.99798834093207,0.995979031887455,0.993971615794408,0.991966227260919,0.989963596747726,0.987965747316238,0.985978192985307, +00:07:41,1,1,1,0.99799037808289,0.995983103536006,0.993977718630318,0.991974357493131,0.989973750409538,0.987977919415782,0.985992373767451, +00:07:42,1,1,1,0.9979924091388,0.995987163007643,0.99398380322778,0.991982463448451,0.989983873776878,0.987990055221915,0.9860065122844, +00:07:43,1,1,1,0.997994434129527,0.995991210361726,0.993989869675628,0.991990545245017,0.989993966997036,0.988002154910965,0.986020608741398, +00:07:44,1,1,1,0.9979964530846,0.99599524565722,0.993995918062106,0.991998603000182,0.990004030216327,0.988014218658094,0.986034663342333, +00:07:45,1,1,1,0.997998466033353,0.995999268952701,0.994001948474876,0.992006636830524,0.990014063580101,0.988026246637312,0.986048676289751, +00:07:46,1,1,1,0.998000473004927,0.996003280306356,0.994007961001023,0.992014646851857,0.990024067232753,0.988038239021482,0.986062647784865, +00:07:47,1,1,1,0.99800247402827,0.996007279775992,0.994013955727054,0.992022633179227,0.990034041317724,0.98805019598233,0.986076578027563, +00:07:48,1,1,1,0.99800446913214,0.996011267419031,0.994019932738911,0.992030595926927,0.990043985977515,0.988062117690457,0.986090467216427, +00:07:49,1,1,1,0.998006458345104,0.996015243292522,0.994025892121971,0.9920385352085,0.990053901353694,0.988074004315344,0.986104315548735, +00:07:50,1,1,1,0.998008441695544,0.996019207453137,0.994031833961049,0.992046451136744,0.9900637875869,0.988085856025366,0.986118123220476, +00:07:51,1,1,1,0.998010419211655,0.996023159957177,0.994037758340406,0.99205434382372,0.990073644816855,0.988097672987795,0.98613189042636, +00:07:52,1,1,1,0.998012390921446,0.996027100860575,0.994043665343754,0.992062213380756,0.990083473182368,0.988109455368816,0.986145617359827, +00:07:53,1,1,1,0.998014356852744,0.996031030218898,0.994049555054256,0.992070059918456,0.990093272821343,0.98812120333353,0.98615930421306, +00:07:54,1,1,1,0.998016317033196,0.996034948087352,0.994055427554535,0.992077883546703,0.990103043870788,0.988132917045964,0.986172951176991, +00:07:55,1,1,1,0.998018271490266,0.996038854520784,0.994061282926676,0.992085684374666,0.990112786466822,0.988144596669083,0.986186558441315, +00:07:56,1,1,1,0.998020220251241,0.996042749573682,0.994067121252229,0.992093462510805,0.990122500744681,0.988156242364793,0.986200126194499, +00:07:57,1,1,1,0.998022163343232,0.996046633300182,0.994072942612219,0.992101218062877,0.990132186838723,0.988167854293956,0.986213654623789, +00:07:58,1,1,1,0.998024100793172,0.99605050575407,0.994078747087143,0.992108951137944,0.99014184488244,0.988179432616391,0.986227143915224, +00:07:59,1,1,1,0.99802603262782,0.996054366988781,0.994084534756979,0.992116661842373,0.990151475008463,0.988190977490891,0.986240594253643, +00:08:00,1,1,1,0.998027958873763,0.996058217057409,0.99409030570119,0.992124350281849,0.990161077348567,0.988202489075222,0.986254005822696, +00:08:01,1,1,1,0.998029879557417,0.996062056012703,0.994096059998725,0.992132016561375,0.99017065203368,0.988213967526138,0.986267378804853, +00:08:02,1,1,1,0.998031794705025,0.996065883907072,0.994101797728025,0.992139660785276,0.990180199193888,0.988225412999387,0.986280713381411, +00:08:03,1,1,1,0.998033704342665,0.99606970079259,0.994107518967029,0.992147283057213,0.990189718958443,0.988236825649719,0.98629400973251, +00:08:04,1,1,1,0.998035608496244,0.996073506720994,0.994113223793174,0.992154883480179,0.990199211455772,0.988248205630892,0.986307268037133, +00:08:05,1,1,1,0.998037507191505,0.996077301743693,0.994118912283404,0.992162462156509,0.990208676813477,0.988259553095685,0.986320488473125, +00:08:06,1,1,1,0.998039400454025,0.996081085911765,0.994124584514168,0.992170019187883,0.990218115158348,0.988270868195898,0.986333671217192, +00:08:07,1,1,1,0.99804128830922,0.996084859275961,0.994130240561428,0.992177554675336,0.990227526616366,0.988282151082369,0.986346816444919, +00:08:08,1,1,1,0.99804317078234,0.996088621886709,0.994135880500663,0.992185068719255,0.990236911312711,0.988293401904973,0.986359924330775, +00:08:09,1,1,1,0.998045047898477,0.996092373794117,0.994141504406871,0.992192561419392,0.990246269371768,0.988304620812637,0.986372995048118, +00:08:10,1,1,1,0.998046919682562,0.996096115047973,0.994147112354572,0.992200032874865,0.990255600917132,0.98831580795334,0.986386028769213, +00:08:11,1,1,1,0.998048786159369,0.99609984569775,0.994152704417817,0.992207483184163,0.990264906071616,0.988326963474129,0.986399025665231, +00:08:12,1,1,1,0.998050647353512,0.996103565792605,0.994158280670183,0.992214912445153,0.990274184957256,0.988338087521117,0.986411985906264, +00:08:13,1,1,1,0.998052503289453,0.996107275381387,0.994163841184786,0.992222320755082,0.990283437695317,0.988349180239499,0.986424909661331, +00:08:14,1,1,1,0.998054353991496,0.996110974512635,0.994169386034278,0.992229708210586,0.990292664406302,0.988360241773555,0.986437797098386, +00:08:15,1,1,1,0.998056199483794,0.996114663234581,0.994174915290855,0.992237074907689,0.990301865209953,0.988371272266654,0.986450648384328, +00:08:16,1,1,1,0.998058039790346,0.996118341595155,0.994180429026256,0.992244420941814,0.990311040225261,0.988382271861269,0.986463463685008, +00:08:17,1,1,1,0.998059874935001,0.996122009641983,0.99418592731177,0.992251746407782,0.990320189570469,0.988393240698979,0.986476243165238, +00:08:18,1,1,1,0.998061704941457,0.996125667422394,0.994191410218241,0.992259051399824,0.990329313363081,0.988404178920473,0.986488986988799, +00:08:19,1,1,1,0.998063529833266,0.996129314983421,0.994196877816066,0.992266336011576,0.990338411719865,0.988415086665565,0.986501695318448, +00:08:20,1,1,1,0.99806534963383,0.996132952371799,0.994202330175204,0.992273600336092,0.99034748475686,0.988425964073194,0.986514368315926, +00:08:21,1,1,1,0.998067164366405,0.996136579633975,0.994207767365175,0.992280844465845,0.990356532589382,0.988436811281435,0.986527006141969, +00:08:22,1,1,1,0.998068974054102,0.996140196816103,0.994213189455068,0.992288068492731,0.990365555332027,0.988447628427503,0.986539608956311, +00:08:23,1,1,1,0.998070778719888,0.996143803964051,0.994218596513539,0.992295272508074,0.990374553098683,0.988458415647759,0.986552176917695, +00:08:24,1,1,1,0.998072578386588,0.996147401123403,0.994223988608819,0.992302456602632,0.990383526002526,0.988469173077722,0.986564710183882, +00:08:25,1,1,1,0.998074373076884,0.996150988339455,0.994229365808715,0.992309620866599,0.990392474156034,0.988479900852068,0.986577208911653, +00:08:26,1,1,1,0.998076162813317,0.996154565657228,0.994234728180615,0.992316765389612,0.990401397670989,0.988490599104644,0.986589673256822, +00:08:27,1,1,1,0.998077947618288,0.99615813312146,0.994240075791489,0.992323890260752,0.99041029665848,0.988501267968466,0.986602103374241, +00:08:28,1,1,1,0.998079727514062,0.996161690776615,0.994245408707891,0.992330995568552,0.990419171228914,0.988511907575735,0.986614499417809, +00:08:29,1,1,1,0.998081502522764,0.99616523866688,0.994250726995969,0.992338081400997,0.990428021492015,0.988522518057836,0.986626861540477, +00:08:30,1,1,1,0.998083272666382,0.996168776836172,0.994256030721461,0.992345147845533,0.990436847556835,0.988533099545346,0.986639189894256, +00:08:31,1,1,1,0.998085037966773,0.996172305328136,0.9942613199497,0.992352194989067,0.990445649531756,0.988543652168042,0.986651484630227, +00:08:32,1,1,1,0.998086798445653,0.996175824186151,0.99426659474562,0.992359222917973,0.990454427524493,0.988554176054906,0.986663745898544, +00:08:33,1,1,1,0.99808855412461,0.996179333453326,0.994271855173755,0.992366231718098,0.990463181642104,0.98856467133413,0.986675973848443, +00:08:34,1,1,1,0.998090305025098,0.996182833172511,0.994277101298245,0.99237322147476,0.990471911990993,0.988575138133123,0.986688168628249, +00:08:35,1,1,1,0.998092051168439,0.996186323386289,0.994282333182837,0.99238019227276,0.990480618676914,0.98858557657852,0.986700330385385, +00:08:36,1,1,1,0.998093792575826,0.996189804136986,0.994287550890892,0.992387144196379,0.990489301804976,0.988595986796182,0.986712459266374, +00:08:37,1,1,1,0.998095529268321,0.99619327546667,0.99429275448538,0.992394077329386,0.99049796147965,0.988606368911205,0.986724555416851, +00:08:38,1,1,1,0.998097261266859,0.99619673741715,0.994297944028893,0.992400991755042,0.990506597804771,0.988616723047926,0.986736618981564, +00:08:39,1,1,1,0.998098988592247,0.996200190029985,0.994303119583638,0.9924078875561,0.990515210883545,0.988627049329931,0.986748650104388, +00:08:40,1,1,1,0.998100711265168,0.996203633346477,0.994308281211449,0.992414764814814,0.990523800818554,0.988637347880053,0.986760648928326, +00:08:41,1,1,1,0.998102429306175,0.996207067407683,0.994313428973783,0.992421623612939,0.990532367711757,0.988647618820388,0.986772615595516, +00:08:42,1,1,1,0.9981041427357,0.996210492254406,0.994318562931726,0.992428464031736,0.990540911664502,0.988657862272291,0.986784550247241, +00:08:43,1,1,1,0.998105851574051,0.996213907927208,0.994323683145995,0.992435286151977,0.990549432777521,0.988668078356391,0.986796453023933, +00:08:44,1,1,1,0.998107555841413,0.996217314466401,0.994328789676941,0.992442090053946,0.990557931150942,0.988678267192585,0.986808324065178, +00:08:45,1,1,1,0.99810925555785,0.996220711912058,0.994333882584553,0.992448875817445,0.990566406884293,0.988688428900056,0.986820163509727, +00:08:46,1,1,1,0.998110950743303,0.996224100304009,0.994338961928458,0.992455643521795,0.990574860076503,0.988698563597269,0.986831971495495, +00:08:47,1,1,1,0.998112641417596,0.996227479681847,0.994344027767924,0.992462393245845,0.990583290825907,0.98870867140198,0.986843748159577, +00:08:48,1,1,1,0.998114327600432,0.996230850084924,0.994349080161869,0.99246912506797,0.990591699230255,0.988718752431243,0.986855493638244, +00:08:49,1,1,1,0.998116009311398,0.99623421155236,0.994354119168851,0.992475839066074,0.990600085386709,0.98872880680141,0.986867208066957, +00:08:50,1,1,1,0.998117686569962,0.996237564123039,0.994359144847086,0.992482535317601,0.990608449391857,0.988738834628143,0.986878891580368, +00:08:51,1,1,1,0.998119359395477,0.996240907835614,0.994364157254436,0.99248921389953,0.990616791341706,0.988748836026413,0.98689054431233, +00:08:52,1,1,1,0.99812102780718,0.996244242728507,0.994369156448424,0.992495874888382,0.990625111331697,0.98875881111051,0.9869021663959, +00:08:53,1,1,1,0.998122691824193,0.996247568839911,0.994374142486226,0.992502518360226,0.9906334094567,0.988768759994043,0.986913757963344, +00:08:54,1,1,1,0.998124351465525,0.996250886207794,0.994379115424682,0.992509144390676,0.990641685811027,0.988778682789952,0.986925319146149, +00:08:55,1,1,1,0.998126006750073,0.996254194869895,0.994384075320294,0.992515753054901,0.990649940488429,0.988788579610505,0.986936850075021, +00:08:56,1,1,1,0.998127657696619,0.996257494863734,0.99438902222923,0.992522344427624,0.990658173582102,0.988798450567309,0.986948350879895, +00:08:57,1,1,1,0.998129304323838,0.996260786226605,0.994393956207325,0.992528918583127,0.990666385184695,0.988808295771313,0.986959821689941, +00:08:58,1,1,1,0.998130946650291,0.996264068995585,0.994398877310084,0.992535475595255,0.99067457538831,0.988818115332811,0.986971262633568, +00:08:59,1,1,1,0.998132584694431,0.996267343207531,0.994403785592687,0.992542015537416,0.990682744284506,0.988827909361451,0.986982673838431, +00:09:00,1,1,1,0.998134218474604,0.996270608899082,0.994408681109989,0.992548538482588,0.990690891964304,0.988837677966235,0.986994055431436, +00:09:01,1,1,1,0.998135848009044,0.996273866106662,0.99441356391652,0.992555044503321,0.990699018518194,0.988847421255527,0.987005407538743, +00:09:02,1,1,1,0.998137473315882,0.996277114866483,0.994418434066493,0.992561533671738,0.990707124036133,0.988857139337056,0.987016730285777, +00:09:03,1,1,1,0.998139094413141,0.996280355214543,0.994423291613803,0.992568006059542,0.990715208607553,0.988866832317924,0.987028023797229, +00:09:04,1,1,1,0.998140711318737,0.99628358718663,0.994428136612029,0.992574461738015,0.990723272321363,0.988876500304603,0.987039288197062, +00:09:05,1,1,1,0.998142324050483,0.996286810818321,0.994432969114437,0.992580900778024,0.990731315265954,0.98888614340295,0.987050523608517, +00:09:06,1,1,1,0.998143932626088,0.996290026144989,0.994437789173984,0.992587323250024,0.990739337529204,0.988895761718203,0.98706173015412, +00:09:07,1,1,1,0.998145537063158,0.996293233201797,0.994442596843316,0.992593729224057,0.990747339198478,0.988905355354988,0.987072907955684, +00:09:08,1,1,1,0.998147137379195,0.996296432023707,0.994447392174775,0.992600118769763,0.990755320360635,0.988914924417327,0.987084057134315, +00:09:09,1,1,1,0.9981487335916,0.996299622645474,0.994452175220398,0.992606491956373,0.990763281102029,0.988924469008637,0.98709517781042, +00:09:10,1,1,1,0.998150325717674,0.996302805101656,0.994456946031922,0.99261284885272,0.990771221508517,0.988933989231737,0.987106270103708, +00:09:11,1,1,1,0.998151913774617,0.996305979426606,0.994461704660783,0.992619189527239,0.990779141665458,0.988943485188854,0.987117334133197, +00:09:12,1,1,1,0.998153497779528,0.996309145654482,0.99446645115812,0.992625514047968,0.990787041657717,0.988952956981624,0.98712837001722, +00:09:13,1,1,1,0.99815507774941,0.996312303819244,0.994471185574778,0.992631822482555,0.990794921569674,0.988962404711098,0.987139377873429, +00:09:14,1,1,1,0.998156653701167,0.996315453954654,0.994475907961307,0.992638114898256,0.99080278148522,0.988971828477746,0.987150357818798, +00:09:15,1,1,1,0.998158225651603,0.996318596094283,0.994480618367968,0.992644391361943,0.990810621487766,0.988981228381461,0.987161309969633, +00:09:16,1,1,1,0.998159793617429,0.996321730271505,0.994485316844732,0.992650651940101,0.990818441660244,0.988990604521565,0.987172234441569, +00:09:17,1,1,1,0.998161357615258,0.996324856519507,0.994490003441285,0.992656896698837,0.99082624208511,0.988999956996809,0.987183131349585, +00:09:18,1,1,1,0.998162917661609,0.996327974871282,0.994494678207026,0.992663125703878,0.99083402284435,0.989009285905381,0.987194000807997, +00:09:19,1,1,1,0.998164473772904,0.996331085359635,0.994499341191074,0.992669339020576,0.990841784019482,0.989018591344909,0.987204842930474, +00:09:20,1,1,1,0.998166025965475,0.996334188017186,0.994503992442265,0.992675536713909,0.990849525691558,0.989027873412464,0.987215657830035, +00:09:21,1,1,1,0.998167574255557,0.996337282876365,0.994508632009159,0.992681718848486,0.990857247941167,0.989037132204564,0.987226445619057, +00:09:22,1,1,1,0.998169118659294,0.996340369969421,0.994513259940037,0.992687885488548,0.990864950848445,0.98904636781718,0.987237206409277, +00:09:23,1,1,1,0.998170659192738,0.996343449328416,0.994517876282908,0.992694036697971,0.990872634493067,0.989055580345737,0.987247940311801, +00:09:24,1,1,1,0.99817219587185,0.996346520985231,0.994522481085507,0.992700172540268,0.99088029895426,0.989064769885121,0.987258647437104, +00:09:25,1,1,1,0.9981737287125,0.996349584971569,0.994527074395297,0.992706293078594,0.990887944310802,0.98907393652968,0.987269327895038, +00:09:26,1,1,1,0.998175257730469,0.996352641318949,0.994531656259476,0.992712398375744,0.990895570641025,0.989083080373231,0.987279981794831, +00:09:27,1,1,1,0.998176782941447,0.996355690058714,0.994536226724972,0.992718488494161,0.99090317802282,0.989092201509058,0.9872906092451, +00:09:28,1,1,1,0.998178304361036,0.996358731222031,0.99454078583845,0.992724563495934,0.990910766533637,0.989101300029924,0.987301210353847, +00:09:29,1,1,1,0.998179822004752,0.996361764839888,0.99454533364631,0.992730623442803,0.990918336250493,0.989110376028067,0.98731178522847, +00:09:30,1,1,1,0.99818133588802,0.996364790943101,0.994549870194693,0.992736668396162,0.990925887249969,0.989119429595209,0.98732233397576, +00:09:31,1,1,1,0.998182846026181,0.996367809562313,0.99455439552948,0.992742698417059,0.99093341960822,0.989128460822558,0.987332856701914, +00:09:32,1,1,1,0.998184352434488,0.996370820727994,0.994558909696293,0.992748713566199,0.990940933400971,0.989137469800808,0.98734335351253, +00:09:33,1,1,1,0.99818585512811,0.996373824470442,0.994563412740502,0.992754713903949,0.990948428703526,0.98914645662015,0.987353824512619, +00:09:34,1,1,1,0.998187354122129,0.996376820819787,0.994567904707219,0.992760699490337,0.990955905590766,0.98915542137027,0.987364269806607, +00:09:35,1,1,1,0.998188849431546,0.99637980980599,0.994572385641307,0.992766670385056,0.990963364137156,0.989164364140353,0.987374689498333, +00:09:36,1,1,1,0.998190341071275,0.996382791458845,0.994576855587377,0.992772626647467,0.990970804416745,0.989173285019088,0.987385083691064, +00:09:37,1,1,1,0.998191829056149,0.99638576580798,0.994581314589792,0.992778568336601,0.990978226503171,0.989182184094673,0.98739545248749, +00:09:38,1,1,1,0.998193313400915,0.996388732882858,0.994585762692669,0.99278449551116,0.990985630469663,0.989191061454813,0.987405795989732, +00:09:39,1,1,1,0.998194794120243,0.996391692712777,0.99459019993988,0.99279040822952,0.990993016389044,0.989199917186729,0.987416114299344, +00:09:40,1,1,1,0.998196271228717,0.996394645326875,0.994594626375051,0.992796306549734,0.991000384333732,0.989208751377159,0.987426407517321, +00:09:41,1,1,1,0.998197744740843,0.996397590754125,0.99459904204157,0.992802190529533,0.991007734375748,0.989217564112363,0.987436675744097, +00:09:42,1,1,1,0.998199214671046,0.996400529023344,0.994603446982582,0.992808060226331,0.991015066586711,0.989226355478122,0.987446919079555, +00:09:43,1,1,1,0.99820068103367,0.996403460163186,0.994607841240997,0.992813915697223,0.991022381037849,0.989235125559746,0.987457137623024, +00:09:44,1,1,1,0.998202143842982,0.996406384202148,0.994612224859485,0.992819756998991,0.991029677799996,0.989243874442077,0.98746733147329, +00:09:45,1,1,1,0.998203603113167,0.996409301168571,0.994616597880484,0.992825584188103,0.991036956943596,0.989252602209487,0.987477500728596, +00:09:46,1,1,1,0.998205058858337,0.996412211090639,0.994620960346197,0.992831397320717,0.991044218538707,0.98926130894589,0.987487645486645, +00:09:47,1,1,1,0.998206511092521,0.996415113996381,0.994625312298594,0.992837196452685,0.991051462655003,0.989269994734735,0.987497765844604, +00:09:48,1,1,1,0.998207959829675,0.996418009913674,0.994629653779418,0.992842981639551,0.991058689361777,0.989278659659019,0.987507861899112, +00:09:49,1,1,1,0.998209405083676,0.99642089887024,0.994633984830182,0.992848752936555,0.991065898727943,0.989287303801283,0.987517933746277, +00:09:50,1,1,1,0.998210846868327,0.99642378089365,0.994638305492171,0.992854510398636,0.991073090822037,0.989295927243618,0.987527981481685, +00:09:51,1,1,1,0.998212285197354,0.996426656011325,0.994642615806447,0.992860254080434,0.991080265712225,0.989304530067669,0.9875380052004, +00:09:52,1,1,1,0.998213720084409,0.996429524250537,0.994646915813846,0.99286598403629,0.991087423466298,0.989313112354635,0.98754800499697, +00:09:53,1,1,1,0.998215151543068,0.996432385638408,0.994651205554982,0.992871700320251,0.991094564151682,0.989321674185276,0.98755798096543, +00:09:54,1,1,1,0.998216579586836,0.996435240201912,0.99465548507025,0.992877402986068,0.991101687835434,0.989330215639912,0.987567933199303, +00:09:55,1,1,1,0.998218004229143,0.996438087967879,0.994659754399823,0.992883092087203,0.991108794584251,0.989338736798431,0.987577861791608, +00:09:56,1,1,1,0.998219425483345,0.996440928962991,0.99466401358366,0.992888767676827,0.991115884464466,0.989347237740284,0.987587766834861, +00:09:57,1,1,1,0.998220843362728,0.996443763213787,0.994668262661499,0.992894429807824,0.991122957542055,0.989355718544497,0.987597648421077, +00:09:58,1,1,1,0.998222257880504,0.996446590746662,0.994672501672867,0.992900078532792,0.991130013882638,0.989364179289669,0.987607506641776, +00:09:59,1,1,1,0.998223669049815,0.996449411587869,0.994676730657077,0.992905713904047,0.99113705355148,0.989372620053975,0.987617341587984, +00:10:00,1,1,1,0.998225076883731,0.996452225763517,0.994680949653229,0.992911335973621,0.991144076613497,0.98938104091517,0.987627153350241, +00:10:01,1,1,1,0.998226481395253,0.996455033299578,0.994685158700212,0.992916944793266,0.991151083133254,0.98938944195059,0.987636942018597, +00:10:02,1,1,1,0.998227882597311,0.996457834221882,0.994689357836709,0.992922540414459,0.991158073174971,0.989397823237158,0.98764670768262, +00:10:03,1,1,1,0.998229280502765,0.996460628556121,0.994693547101193,0.992928122888398,0.991165046802524,0.989406184851385,0.987656450431402, +00:10:04,1,1,1,0.998230675124408,0.996463416327849,0.994697726531931,0.992933692266009,0.991172004079447,0.989414526869373,0.987666170353554, +00:10:05,1,1,1,0.998232066474962,0.996466197562483,0.994701896166986,0.992939248597944,0.991178945068932,0.989422849366815,0.987675867537218, +00:10:06,1,1,1,0.998233454567083,0.996468972285305,0.994706056044216,0.992944791934586,0.991185869833838,0.989431152419005,0.987685542070063, +00:10:07,1,1,1,0.998234839413359,0.99647174052146,0.994710206201281,0.992950322326048,0.991192778436687,0.989439436100831,0.987695194039294, +00:10:08,1,1,1,0.99823622102631,0.996474502295962,0.994714346675635,0.992955839822177,0.991199670939668,0.989447700486787,0.987704823531649, +00:10:09,1,1,1,0.998237599418389,0.996477257633689,0.994718477504536,0.992961344472555,0.99120654740464,0.989455945650969,0.98771443063341, +00:10:10,1,1,1,0.998238974601984,0.996480006559388,0.994722598725044,0.9929668363265,0.991213407893134,0.98946417166708,0.987724015430399, +00:10:11,1,1,1,0.998240346589417,0.996482749097675,0.994726710374021,0.99297231543307,0.991220252466354,0.989472378608435,0.987733578007984, +00:10:12,1,1,1,0.998241715392945,0.996485485273034,0.994730812488134,0.992977781841062,0.991227081185183,0.989480566547959,0.987743118451082, +00:10:13,1,1,1,0.998243081024758,0.996488215109821,0.994734905103858,0.992983235599015,0.991233894110179,0.989488735558194,0.987752636844162, +00:10:14,1,1,1,0.998244443496983,0.996490938632262,0.994738988257472,0.992988676755213,0.991240691301582,0.989496885711296,0.987762133271248, +00:10:15,1,1,1,0.998245802821684,0.996493655864456,0.994743061985066,0.992994105357683,0.991247472819315,0.989505017079045,0.98777160781592, +00:10:16,1,1,1,0.998247159010859,0.996496366830374,0.994747126322539,0.992999521454201,0.991254238722984,0.989513129732842,0.987781060561321, +00:10:17,1,1,1,0.998248512076445,0.996499071553862,0.994751181305601,0.993004925092293,0.991260989071885,0.989521223743712,0.987790491590156, +00:10:18,1,1,1,0.998249862030315,0.996501770058639,0.994755226969774,0.993010316319232,0.991267723924999,0.98952929918231,0.987799900984698, +00:10:19,1,1,1,0.99825120888428,0.996504462368302,0.994759263350396,0.993015695182046,0.991274443341002,0.989537356118919,0.987809288826788, +00:10:20,1,1,1,0.998252552650088,0.996507148506321,0.994763290482616,0.993021061727517,0.991281147378259,0.989545394623455,0.987818655197841, +00:10:21,1,1,1,0.998253893339427,0.996509828496046,0.994767308401402,0.993026416002179,0.991287836094834,0.989553414765469,0.987828000178843, +00:10:22,1,1,1,0.998255230963924,0.996512502360703,0.994771317141539,0.993031758052327,0.991294509548485,0.989561416614151,0.987837323850364, +00:10:23,1,1,1,0.998256565535144,0.996515170123397,0.994775316737629,0.993037087924012,0.99130116779667,0.989569400238327,0.987846626292549, +00:10:24,1,1,1,0.998257897064592,0.996517831807115,0.994779307224096,0.993042405663047,0.991307810896549,0.989577365706468,0.98785590758513, +00:10:25,1,1,1,0.998259225563713,0.99652048743472,0.994783288635181,0.993047711315006,0.991314438904983,0.989585313086689,0.987865167807423, +00:10:26,1,1,1,0.998260551043894,0.99652313702896,0.994787261004952,0.993053004925226,0.991321051878541,0.989593242446752,0.987874407038334, +00:10:27,1,1,1,0.99826187351646,0.996525780612463,0.994791224367297,0.99305828653881,0.991327649873497,0.989601153854067,0.987883625356361, +00:10:28,1,1,1,0.99826319299268,0.996528418207739,0.994795178755929,0.993063556200625,0.991334232945832,0.989609047375697,0.987892822839594, +00:10:29,1,1,1,0.998264509483762,0.996531049837184,0.994799124204388,0.99306881395531,0.991340801151242,0.989616923078356,0.987901999565723, +00:10:30,1,1,1,0.99826582300086,0.996533675523075,0.994803060746038,0.99307405984727,0.991347354545133,0.989624781028417,0.987911155612035, +00:10:31,1,1,1,0.998267133555065,0.996536295287577,0.994806988414073,0.993079293920682,0.991353893182625,0.98963262129191,0.987920291055421, +00:10:32,1,1,1,0.998268441157416,0.996538909152739,0.994810907241515,0.993084516219498,0.991360417118555,0.989640443934525,0.987929405972375, +00:10:33,1,1,1,0.998269745818892,0.996541517140496,0.994814817261216,0.993089726787439,0.99136692640748,0.989648249021615,0.987938500438999, +00:10:34,1,1,1,0.998271047550416,0.996544119272672,0.994818718505861,0.993094925668007,0.991373421103675,0.989656036618197,0.987947574531006, +00:10:35,1,1,1,0.998272346362856,0.996546715570977,0.994822611007964,0.993100112904476,0.991379901261136,0.989663806788958,0.987956628323719, +00:10:36,1,1,1,0.998273642267022,0.996549306057011,0.994826494799876,0.993105288539903,0.991386366933586,0.98967155959825,0.987965661892078, +00:10:37,1,1,1,0.998274935273671,0.996551890752264,0.994830369913779,0.99311045261712,0.99139281817447,0.989679295110099,0.987974675310639, +00:10:38,1,1,1,0.998276225393504,0.996554469678113,0.994834236381693,0.993115605178744,0.991399255036962,0.989687013388204,0.98798366865358, +00:10:39,1,1,1,0.998277512637168,0.99655704285583,0.994838094235474,0.993120746267174,0.991405677573966,0.989694714495938,0.987992641994698, +00:10:40,1,1,1,0.998278797015253,0.996559610306574,0.994841943506814,0.993125875924591,0.991412085838115,0.989702398496355,0.988001595407417, +00:10:41,1,1,1,0.998280078538299,0.996562172051401,0.994845784227247,0.993130994192964,0.991418479881774,0.989710065452185,0.988010528964789, +00:10:42,1,1,1,0.99828135721679,0.996564728111256,0.994849616428143,0.993136101114047,0.991424859757044,0.989717715425842,0.988019442739493, +00:10:43,1,1,1,0.998282633061157,0.99656727850698,0.994853440140715,0.993141196729384,0.991431225515761,0.989725348479423,0.988028336803841, +00:10:44,1,1,1,0.998283906081779,0.996569823259307,0.994857255396018,0.993146281080307,0.991437577209499,0.989732964674712,0.988037211229781, +00:10:45,1,1,1,0.99828517628898,0.996572362388867,0.994861062224948,0.993151354207939,0.99144391488957,0.989740564073179,0.988046066088894, +00:10:46,1,1,1,0.998286443693034,0.996574895916184,0.994864860658247,0.993156416153195,0.99145023860703,0.989748146735985,0.988054901452404, +00:10:47,1,1,1,0.998287708304163,0.99657742386168,0.9948686507265,0.993161466956786,0.991456548412674,0.989755712723983,0.988063717391175, +00:10:48,1,1,1,0.998288970132536,0.996579946245673,0.994872432460139,0.993166506659216,0.991462844357043,0.989763262097718,0.988072513975712, +00:10:49,1,1,1,0.998290229188273,0.99658246308838,0.994876205889442,0.993171535300785,0.991469126490424,0.989770794917435,0.988081291276169, +00:10:50,1,1,1,0.998291485481441,0.996584974409914,0.994879971044535,0.99317655292159,0.991475394862852,0.989778311243071,0.988090049362346, +00:10:51,1,1,1,0.998292739022057,0.996587480230289,0.994883727955392,0.993181559561529,0.991481649524109,0.989785811134267,0.988098788303696, +00:10:52,1,1,1,0.998293989820087,0.996589980569418,0.994887476651839,0.993186555260298,0.991487890523731,0.989793294650365,0.988107508169321, +00:10:53,1,1,1,0.998295237885449,0.996592475447113,0.994891217163551,0.993191540057396,0.991494117911003,0.989800761850408,0.988116209027981, +00:10:54,1,1,1,0.99829648322801,0.996594964883088,0.994894949520054,0.993196513992123,0.991500331734966,0.989808212793146,0.988124890948091, +00:10:55,1,1,1,0.998297725857588,0.99659744889696,0.994898673750727,0.993201477103585,0.991506532044415,0.989815647537037,0.988133553997726, +00:10:56,1,1,1,0.998298965783951,0.996599927508244,0.994902389884804,0.99320642943069,0.991512718887904,0.989823066140245,0.988142198244622, +00:10:57,1,1,1,0.99830020301682,0.996602400736362,0.994906097951371,0.993211371012156,0.991518892313743,0.989830468660649,0.988150823756177, +00:10:58,1,1,1,0.998301437565867,0.996604868600637,0.994909797979371,0.993216301886505,0.991525052370004,0.989837855155838,0.988159430599458, +00:10:59,1,1,1,0.998302669440714,0.996607331120296,0.994913489997603,0.99322122209207,0.99153119910452,0.989845225683115,0.988168018841195, +00:11:00,1,1,1,0.998303898650938,0.996609788314471,0.994917174034722,0.993226131666993,0.991537332564886,0.989852580299502,0.988176588547793, +00:11:01,1,1,1,0.998305125206068,0.9966122402022,0.994920850119242,0.993231030649229,0.991543452798463,0.989859919061735,0.988185139785324, +00:11:02,1,1,1,0.998306349115584,0.996614686802426,0.994924518279536,0.993235919076543,0.991549559852377,0.989867242026275,0.988193672619537, +00:11:03,1,1,1,0.998307570388921,0.996617128133998,0.994928178543837,0.993240796986515,0.991555653773522,0.9898745492493,0.988202187115855, +00:11:04,1,1,1,0.998308789035467,0.996619564215671,0.994931830940238,0.993245664416539,0.991561734608561,0.989881840786713,0.98821068333938, +00:11:05,1,1,1,0.998310005064562,0.99662199506611,0.994935475496694,0.993250521403825,0.991567802403928,0.989889116694143,0.988219161354893, +00:11:06,1,1,1,0.998311218485503,0.996624420703887,0.994939112241022,0.993255367985399,0.991573857205827,0.989896377026945,0.988227621226859, +00:11:07,1,1,1,0.998312429307539,0.996626841147482,0.994942741200903,0.993260204198108,0.991579899060236,0.989903621840202,0.988236063019424, +00:11:08,1,1,1,0.998313637539873,0.996629256415285,0.994946362403881,0.993265030078616,0.991585928012909,0.989910851188727,0.988244486796423, +00:11:09,1,1,1,0.998314843191666,0.996631666525595,0.994949975877366,0.993269845663408,0.991591944109374,0.989918065127067,0.988252892621376, +00:11:10,1,1,1,0.998316046272031,0.996634071496623,0.994953581648634,0.99327465098879,0.991597947394937,0.9899252637095,0.988261280557493, +00:11:11,1,1,1,0.998317246790037,0.996636471346488,0.994957179744827,0.993279446090891,0.991603937914685,0.98993244699004,0.988269650667678, +00:11:12,1,1,1,0.998318444754711,0.996638866093225,0.994960770192955,0.993284231005665,0.991609915713482,0.989939615022438,0.988278003014528, +00:11:13,1,1,1,0.998319640175033,0.996641255754775,0.994964353019895,0.993289005768888,0.991615880835975,0.989946767860184,0.988286337660333, +00:11:14,1,1,1,0.99832083305994,0.996643640348998,0.994967928252395,0.993293770416165,0.991621833326594,0.989953905556506,0.988294654667082, +00:11:15,1,1,1,0.998322023418327,0.996646019893662,0.994971495917071,0.993298524982926,0.991627773229554,0.989961028164377,0.988302954096465, +00:11:16,1,1,1,0.998323211259043,0.996648394406451,0.994975056040412,0.99330326950443,0.991633700588853,0.989968135736509,0.98831123600987, +00:11:17,1,1,1,0.998324396590898,0.996650763904963,0.994978608648777,0.993308004015764,0.991639615448278,0.989975228325363,0.98831950046839, +00:11:18,1,1,1,0.998325579422655,0.996653128406711,0.994982153768398,0.993312728551847,0.991645517851405,0.989982305983144,0.988327747532823, +00:11:19,1,1,1,0.998326759763038,0.996655487929123,0.994985691425378,0.993317443147427,0.991651407841597,0.989989368761805,0.98833597726367, +00:11:20,1,1,1,0.998327937620726,0.996657842489541,0.994989221645698,0.993322147837086,0.991657285462009,0.989996416713049,0.988344189721146, +00:11:21,1,1,1,0.998329113004359,0.996660192105227,0.99499274445521,0.993326842655239,0.991663150755589,0.99000344988833,0.988352384965171, +00:11:22,1,1,1,0.998330285922532,0.996662536793355,0.994996259879643,0.993331527636134,0.991669003765077,0.990010468338855,0.98836056305538, +00:11:23,1,1,1,0.998331456383802,0.996664876571021,0.994999767944601,0.993336202813855,0.991674844533008,0.990017472115583,0.988368724051121, +00:11:24,1,1,1,0.998332624396682,0.996667211455236,0.995003268675567,0.993340868222324,0.991680673101713,0.990024461269232,0.988376868011457, +00:11:25,1,1,1,0.998333789969645,0.99666954146293,0.995006762097901,0.993345523895298,0.991686489513321,0.990031435850275,0.988384994995169, +00:11:26,1,1,1,0.998334953111125,0.996671866610951,0.99501024823684,0.993350169866374,0.991692293809757,0.990038395908942,0.988393105060755, +00:11:27,1,1,1,0.998336113829514,0.996674186916068,0.995013727117501,0.993354806168986,0.991698086032747,0.990045341495226,0.988401198266435, +00:11:28,1,1,1,0.998337272133163,0.996676502394969,0.995017198764882,0.99335943283641,0.991703866223819,0.99005227265888,0.988409274670153, +00:11:29,1,1,1,0.998338428030386,0.996678813064261,0.99502066320386,0.993364049901764,0.991709634424301,0.99005918944942,0.988417334329573, +00:11:30,1,1,1,0.998339581529453,0.996681118940474,0.995024120459195,0.993368657398007,0.991715390675324,0.990066091916127,0.988425377302088, +00:11:31,1,1,1,0.998340732638599,0.996683420040058,0.995027570555528,0.99337325535794,0.991721135017826,0.990072980108045,0.988433403644816, +00:11:32,1,1,1,0.998341881366018,0.996685716379385,0.995031013517382,0.993377843814211,0.991726867492549,0.99007985407399,0.988441413414606, +00:11:33,1,1,1,0.998343027719863,0.996688007974748,0.995034449369166,0.99338242279931,0.99173258814004,0.990086713862542,0.988449406668036, +00:11:34,1,1,1,0.998344171708252,0.996690294842365,0.995037878135171,0.993386992345576,0.991738297000656,0.990093559522053,0.988457383461417, +00:11:35,1,1,1,0.998345313339261,0.996692576998375,0.995041299839573,0.993391552485192,0.991743994114564,0.990100391100647,0.988465343850793, +00:11:36,1,1,1,0.998346452620932,0.996694854458841,0.995044714506436,0.99339610325019,0.991749679521738,0.99010720864622,0.988473287891945, +00:11:37,1,1,1,0.998347589561264,0.996697127239752,0.995048122159707,0.993400644672452,0.991755353261967,0.990114012206441,0.98848121564039, +00:11:38,1,1,1,0.998348724168221,0.996699395357018,0.995051522823223,0.993405176783709,0.991761015374849,0.990120801828757,0.988489127151383, +00:11:39,1,1,1,0.99834985644973,0.996701658826478,0.995054916520706,0.99340969961554,0.991766665899799,0.990127577560388,0.988497022479919, +00:11:40,1,1,1,0.998350986413679,0.996703917663893,0.995058303275769,0.993414213199379,0.991772304876043,0.990134339448337,0.988504901680737, +00:11:41,1,1,1,0.99835211406792,0.996706171884951,0.99506168311191,0.993418717566511,0.991777932342626,0.990141087539382,0.988512764808317, +00:11:42,1,1,1,0.998353239420268,0.996708421505267,0.995065056052522,0.993423212748073,0.991783548338409,0.990147821880084,0.988520611916884, +00:11:43,1,1,1,0.998354362478499,0.996710666540383,0.995068422120884,0.993427698775058,0.991789152902071,0.990154542516787,0.98852844306041, +00:11:44,1,1,1,0.998355483250357,0.996712907005765,0.995071781340168,0.993432175678313,0.991794746072109,0.990161249495615,0.988536258292615, +00:11:45,1,1,1,0.998356601743546,0.996715142916812,0.995075133733437,0.993436643488541,0.991800327886841,0.990167942862481,0.988544057666967, +00:11:46,1,1,1,0.998357717965735,0.996717374288846,0.995078479323647,0.993441102236301,0.991805898384406,0.990174622663079,0.988551841236686, +00:11:47,1,1,1,0.998358831924559,0.99671960113712,0.995081818133645,0.993445551952011,0.991811457602768,0.990181288942895,0.988559609054744, +00:11:48,1,1,1,0.998359943627614,0.996721823476815,0.995085150186174,0.993449992665946,0.991817005579709,0.990187941747201,0.988567361173866, +00:11:49,1,1,1,0.998361053082463,0.996724041323043,0.995088475503869,0.993454424408242,0.99182254235284,0.990194581121059,0.988575097646533, +00:11:50,1,1,1,0.998362160296634,0.996726254690844,0.995091794109262,0.993458847208892,0.991828067959596,0.990201207109322,0.988582818524983, +00:11:51,1,1,1,0.998363265277619,0.996728463595188,0.995095106024778,0.993463261097752,0.991833582437237,0.990207819756634,0.988590523861211, +00:11:52,1,1,1,0.998364368032875,0.996730668050976,0.995098411272741,0.99346766610454,0.991839085822853,0.990214419107435,0.988598213706972, +00:11:53,1,1,1,0.998365468569825,0.996732868073041,0.995101709875369,0.993472062258836,0.991844578153361,0.990221005205959,0.988605888113782, +00:11:54,1,1,1,0.998366566895859,0.996735063676145,0.995105001854777,0.993476449590082,0.991850059465508,0.990227578096233,0.988613547132918, +00:11:55,1,1,1,0.998367663018329,0.996737254874985,0.995108287232981,0.993480828127587,0.991855529795871,0.990234137822085,0.988621190815424, +00:11:56,1,1,1,0.998368756944558,0.996739441684188,0.995111566031893,0.993485197900522,0.99186098918086,0.990240684427139,0.988628819212105, +00:11:57,1,1,1,0.998369848681832,0.996741624118314,0.995114838273324,0.993489558937926,0.991866437656714,0.990247217954818,0.988636432373536, +00:11:58,1,1,1,0.998370938237403,0.996743802191856,0.995118103978986,0.993493911268702,0.99187187525951,0.990253738448348,0.988644030350057, +00:11:59,1,1,1,0.998372025618492,0.996745975919239,0.99512136317049,0.993498254921623,0.991877302025157,0.990260245950753,0.98865161319178, +00:12:00,1,1,1,0.998373110832286,0.996748145314825,0.995124615869348,0.993502589925328,0.9918827179894,0.990266740504864,0.988659180948584, +00:12:01,1,1,1,0.998374193885938,0.996750310392909,0.995127862096975,0.993506916308326,0.991888123187818,0.990273222153313,0.988666733670123, +00:12:02,1,1,1,0.998375274786569,0.996752471167717,0.995131101874686,0.993511234098995,0.991893517655833,0.99027969093854,0.988674271405823, +00:12:03,1,1,1,0.998376353541268,0.996754627653415,0.995134335223698,0.993515543325584,0.991898901428699,0.990286146902787,0.988681794204885, +00:12:04,1,1,1,0.99837743015709,0.996756779864101,0.995137562165134,0.993519844016212,0.991904274541513,0.990292590088109,0.988689302116285, +00:12:05,1,1,1,0.998378504641059,0.99675892781381,0.995140782720019,0.993524136198871,0.991909637029211,0.990299020536364,0.988696795188777, +00:12:06,1,1,1,0.998379577000168,0.996761071516513,0.995143996909282,0.993528419901424,0.991914988926571,0.990305438289225,0.988704273470892, +00:12:07,1,1,1,0.998380647241375,0.996763210986116,0.995147204753757,0.99353269515161,0.991920330268211,0.990311843388171,0.988711737010942, +00:12:08,1,1,1,0.99838171537161,0.996765346236465,0.995150406274183,0.99353696197704,0.991925661088594,0.990318235874497,0.988719185857021, +00:12:09,1,1,1,0.998382781397768,0.996767477281339,0.995153601491206,0.9935412204052,0.991930981422027,0.990324615789307,0.988726620057002, +00:12:10,1,1,1,0.998383845326716,0.996769604134458,0.995156790425378,0.993545470463453,0.991936291302659,0.990330983173523,0.988734039658545, +00:12:11,1,1,1,0.998384907165288,0.996771726809478,0.995159973097157,0.993549712179034,0.991941590764487,0.990337338067879,0.988741444709092, +00:12:12,1,1,1,0.998385966920287,0.996773845319993,0.995163149526909,0.993553945579061,0.991946879841353,0.990343680512927,0.988748835255872, +00:12:13,1,1,1,0.998387024598486,0.996775959679537,0.995166319734909,0.993558170690526,0.99195215856695,0.990350010549035,0.988756211345903, +00:12:14,1,1,1,0.998388080206627,0.996778069901583,0.99516948374134,0.993562387540299,0.991957426974814,0.990356328216391,0.988763573025988, +00:12:15,1,1,1,0.998389133751422,0.99678017599954,0.995172641566293,0.99356659615513,0.991962685098333,0.990362633555,0.988770920342722, +00:12:16,1,1,1,0.998390185239553,0.996782277986762,0.995175793229771,0.99357079656165,0.991967932970745,0.990368926604689,0.98877825334249, +00:12:17,1,1,1,0.998391234677671,0.996784375876538,0.995178938751685,0.99357498878637,0.99197317062514,0.990375207405106,0.98878557207147, +00:12:18,1,1,1,0.998392282072397,0.996786469682101,0.995182078151857,0.993579172855679,0.991978398094456,0.990381475995722,0.988792876575633, +00:12:19,1,1,1,0.998393327430325,0.996788559416622,0.995185211450021,0.993583348795851,0.991983615411487,0.99038773241583,0.988800166900742, +00:12:20,1,1,1,0.998394370758015,0.996790645093214,0.995188338665823,0.993587516633042,0.99198882260888,0.990393976704549,0.988807443092359, +00:12:21,1,1,1,0.998395412062001,0.996792726724932,0.995191459818819,0.993591676393291,0.991994019719133,0.990400208900821,0.988814705195841, +00:12:22,1,1,1,0.998396451348787,0.996794804324773,0.995194574928479,0.99359582810252,0.991999206774605,0.990406429043418,0.988821953256343, +00:12:23,1,1,1,0.998397488624848,0.996796877905673,0.995197684014188,0.993599971786537,0.992004383807504,0.990412637170938,0.98882918731882, +00:12:24,1,1,1,0.998398523896629,0.996798947480514,0.995200787095241,0.993604107471034,0.992009550849901,0.990418833321804,0.988836407428025, +00:12:25,1,1,1,0.998399557170548,0.996801013062119,0.99520388419085,0.993608235181588,0.99201470793372,0.990425017534274,0.988843613628514, +00:12:26,1,1,1,0.998400588452994,0.996803074663254,0.995206975320141,0.993612354943664,0.992019855090745,0.990431189846432,0.988850805964646, +00:12:27,1,1,1,0.998401617750326,0.996805132296629,0.995210060502154,0.993616466782613,0.99202499235262,0.990437350296196,0.988857984480583, +00:12:28,1,1,1,0.998402645068877,0.996807185974896,0.995213139755845,0.993620570723676,0.992030119750848,0.990443498921314,0.98886514922029, +00:12:29,1,1,1,0.998403670414952,0.996809235710652,0.995216213100088,0.993624666791978,0.992035237316792,0.990449635759368,0.98887230022754, +00:12:30,1,1,1,0.998404693794825,0.996811281516439,0.995219280553672,0.993628755012537,0.992040345081678,0.990455760847776,0.988879437545912, +00:12:31,1,1,1,0.998405715214747,0.996813323404743,0.995222342135302,0.993632835410259,0.992045443076593,0.990461874223789,0.988886561218793, +00:12:32,1,1,1,0.998406734680936,0.996815361387995,0.995225397863601,0.99363690800994,0.992050531332488,0.990467975924493,0.988893671289379, +00:12:33,1,1,1,0.998407752199587,0.99681739547857,0.995228447757113,0.993640972836268,0.992055609880177,0.990474065986814,0.988900767800675, +00:12:34,1,1,1,0.998408767776867,0.99681942568879,0.995231491834296,0.99364502991382,0.992060678750339,0.990480144447513,0.9889078507955, +00:12:35,1,1,1,0.998409781418913,0.996821452030923,0.995234530113529,0.993649079267067,0.992065737973519,0.990486211343191,0.988914920316482, +00:12:36,1,1,1,0.998410793131838,0.996823474517181,0.995237562613111,0.993653120920374,0.992070787580128,0.990492266710289,0.988921976406065, +00:12:37,1,1,1,0.998411802921727,0.996825493159726,0.995240589351259,0.993657154897996,0.992075827600441,0.990498310585088,0.988929019106505, +00:12:38,1,1,1,0.998412810794639,0.996827507970662,0.995243610346112,0.993661181224083,0.992080858064605,0.99050434300371,0.988936048459875, +00:12:39,1,1,1,0.998413816756605,0.996829518962045,0.995246625615728,0.993665199922681,0.992085879002632,0.99051036400212,0.988943064508064, +00:12:40,1,1,1,0.998414820813632,0.996831526145874,0.995249635178088,0.99366921101773,0.992090890444405,0.990516373616125,0.988950067292778, +00:12:41,1,1,1,0.998415822971698,0.996833529534099,0.995252639051092,0.993673214533064,0.992095892419676,0.990522371881378,0.98895705685554, +00:12:42,1,1,1,0.998416823236758,0.996835529138617,0.995255637252565,0.993677210492416,0.992100884958067,0.990528358833376,0.988964033237696, +00:12:43,1,1,1,0.998417821614738,0.99683752497127,0.995258629800252,0.993681198919415,0.992105868089072,0.99053433450746,0.98897099648041, +00:12:44,1,1,1,0.99841881811154,0.996839517043854,0.995261616711822,0.993685179837585,0.992110841842058,0.990540298938822,0.988977946624668, +00:12:45,1,1,1,0.998419812733041,0.996841505368109,0.995264598004867,0.993689153270351,0.992115806246261,0.990546252162495,0.988984883711277, +00:12:46,1,1,1,0.99842080548509,0.996843489955727,0.995267573696903,0.993693119241035,0.992120761330795,0.990552194213367,0.988991807780869, +00:12:47,1,1,1,0.998421796373512,0.996845470818348,0.99527054380537,0.993697077772859,0.992125707124644,0.990558125126171,0.988998718873902, +00:12:48,1,1,1,0.998422785404108,0.996847447967561,0.995273508347632,0.993701028888942,0.992130643656671,0.990564044935492,0.989005617030654, +00:12:49,1,1,1,0.998423772582653,0.996849421414908,0.995276467340979,0.993704972612307,0.992135570955609,0.990569953675763,0.989012502291236, +00:12:50,1,1,1,0.998424757914895,0.996851391171877,0.995279420802625,0.993708908965874,0.992140489050073,0.990575851381273,0.98901937469558, +00:12:51,1,1,1,0.998425741406561,0.996853357249909,0.995282368749711,0.993712837972468,0.992145397968549,0.990581738086159,0.98902623428345, +00:12:52,1,1,1,0.998426723063351,0.996855319660395,0.995285311199303,0.993716759654812,0.992150297739406,0.990587613824415,0.989033081094439, +00:12:53,1,1,1,0.99842770289094,0.996857278414677,0.995288248168396,0.993720674035534,0.992155188390888,0.990593478629886,0.989039915167969, +00:12:54,1,1,1,0.998428680894979,0.996859233524049,0.99529117967391,0.993724581137164,0.992160069951117,0.990599332536274,0.989046736543293, +00:12:55,1,1,1,0.998429657081097,0.996861184999755,0.995294105732691,0.993728480982135,0.992164942448098,0.990605175577135,0.989053545259495, +00:12:56,1,1,1,0.998430631454896,0.996863132852992,0.995297026361517,0.993732373592784,0.992169805909712,0.990611007785884,0.989060341355495, +00:12:57,1,1,1,0.998431604021955,0.996865077094909,0.99529994157709,0.993736258991353,0.992174660363724,0.99061682919579,0.989067124870044, +00:12:58,1,1,1,0.998432574787829,0.996867017736607,0.995302851396043,0.993740137199989,0.99217950583778,0.990622639839982,0.989073895841728, +00:12:59,1,1,1,0.99843354375805,0.99686895478914,0.995305755834938,0.993744008240745,0.992184342359406,0.990628439751448,0.989080654308969, +00:13:00,1,1,1,0.998434510938126,0.996870888263514,0.995308654910264,0.993747872135578,0.992189169956013,0.990634228963033,0.989087400310026, +00:13:01,1,1,1,0.99843547633354,0.996872818170687,0.995311548638444,0.993751728906352,0.992193988654894,0.990640007507447,0.989094133882995, +00:13:02,1,1,1,0.998436439949754,0.996874744521574,0.995314437035826,0.993755578574841,0.992198798483226,0.990645775417256,0.98910085506581, +00:13:03,1,1,1,0.998437401792205,0.996876667327041,0.995317320118693,0.993759421162723,0.992203599468073,0.990651532724891,0.989107563896243, +00:13:04,1,1,1,0.998438361866309,0.996878586597908,0.995320197903256,0.993763256691585,0.992208391636381,0.990657279462645,0.989114260411909, +00:13:05,1,1,1,0.998439320177457,0.996880502344949,0.995323070405658,0.993767085182924,0.992213175014984,0.990663015662673,0.989120944650261, +00:13:06,1,1,1,0.998440276731017,0.996882414578894,0.995325937641976,0.993770906658144,0.992217949630602,0.990668741356996,0.989127616648594, +00:13:07,1,1,1,0.998441231532336,0.996884323310425,0.995328799628214,0.99377472113856,0.992222715509841,0.990674456577498,0.989134276444048, +00:13:08,1,1,1,0.998442184586737,0.99688622855018,0.995331656380313,0.993778528645396,0.992227472679195,0.990680161355929,0.989140924073602, +00:13:09,1,1,1,0.998443135899521,0.996888130308754,0.995334507914145,0.993782329199786,0.99223222116505,0.990685855723907,0.989147559574085, +00:13:10,1,1,1,0.998444085475967,0.996890028596694,0.995337354245514,0.993786122822778,0.992236960993675,0.990691539712914,0.989154182982166, +00:13:11,1,1,1,0.998445033321332,0.996891923424505,0.99534019539016,0.993789909535328,0.992241692191232,0.990697213354303,0.989160794334362, +00:13:12,1,1,1,0.998445979440848,0.996893814802647,0.995343031363755,0.993793689358305,0.992246414783774,0.990702876679292,0.989167393667037, +00:13:13,1,1,1,0.99844692383973,0.996895702741535,0.995345862181904,0.993797462312491,0.992251128797242,0.99070852971897,0.989173981016402, +00:13:14,1,1,1,0.998447866523167,0.996897587251543,0.995348687860151,0.993801228418581,0.99225583425747,0.990714172504296,0.989180556418517, +00:13:15,1,1,1,0.998448807496327,0.996899468342998,0.995351508413969,0.993804987697181,0.992260531190183,0.990719805066098,0.989187119909291, +00:13:16,1,1,1,0.998449746764358,0.996901346026186,0.995354323858771,0.993808740168815,0.992265219620999,0.990725427435077,0.989193671524481, +00:13:17,1,1,1,0.998450684332386,0.996903220311351,0.995357134209904,0.993812485853918,0.99226989957543,0.990731039641805,0.989200211299699, +00:13:18,1,1,1,0.998451620205513,0.996905091208691,0.995359939482649,0.993816224772841,0.992274571078879,0.990736641716726,0.989206739270405, +00:13:19,1,1,1,0.998452554388824,0.996906958728363,0.995362739692226,0.993819956945848,0.992279234156646,0.990742233690157,0.989213255471912, +00:13:20,1,1,1,0.998453486887378,0.996908822880484,0.99536553485379,0.993823682393123,0.992283888833923,0.990747815592292,0.989219759939387, +00:13:21,1,1,1,0.998454417706218,0.996910683675124,0.995368324982435,0.993827401134761,0.9922885351358,0.990753387453195,0.989226252707851, +00:13:22,1,1,1,0.998455346850361,0.996912541122316,0.995371110093189,0.993831113190778,0.992293173087261,0.990758949302808,0.989232733812179, +00:13:23,1,1,1,0.998456274324808,0.996914395232048,0.995373890201019,0.993834818581103,0.992297802713186,0.990764501170949,0.989239203287102, +00:13:24,1,1,1,0.998457200134535,0.996916246014268,0.995376665320832,0.993838517325586,0.992302424038354,0.990770043087311,0.989245661167207, +00:13:25,1,1,1,0.9984581242845,0.996918093478882,0.995379435467471,0.993842209443993,0.992307037087441,0.990775575081466,0.989252107486939, +00:13:26,1,1,1,0.998459046779639,0.996919937635756,0.995382200655717,0.993845894956007,0.992311641885019,0.990781097182863,0.989258542280599, +00:13:27,1,1,1,0.99845996762487,0.996921778494715,0.995384960900291,0.993849573881233,0.99231623845556,0.990786609420829,0.989264965582347, +00:13:28,1,1,1,0.998460886825087,0.996923616065542,0.995387716215855,0.993853246239192,0.992320826823436,0.990792111824569,0.989271377426203, +00:13:29,1,1,1,0.998461804385167,0.996925450357982,0.995390466617008,0.993856912049326,0.992325407012917,0.990797604423172,0.989277777846047, +00:13:30,1,1,1,0.998462720309965,0.996927281381738,0.995393212118289,0.993860571330998,0.992329979048175,0.990803087245604,0.989284166875619, +00:13:31,1,1,1,0.998463634604317,0.996929109146474,0.995395952734178,0.993864224103489,0.99233454295328,0.990808560320713,0.989290544548521, +00:13:32,1,1,1,0.998464547273038,0.996930933661813,0.995398688479096,0.993867870386002,0.992339098752205,0.990814023677227,0.989296910898217, +00:13:33,1,1,1,0.998465458320926,0.99693275493734,0.995401419367403,0.993871510197661,0.992343646468825,0.990819477343759,0.989303265958035, +00:13:34,1,1,1,0.998466367752755,0.996934572982601,0.995404145413403,0.993875143557513,0.992348186126916,0.990824921348804,0.989309609761164, +00:13:35,1,1,1,0.998467275573284,0.9969363878071,0.995406866631339,0.993878770484526,0.992352717750159,0.990830355720739,0.98931594234066, +00:13:36,1,1,1,0.998468181787248,0.996938199420306,0.995409583035396,0.993882390997589,0.992357241362136,0.990835780487827,0.989322263729443, +00:13:37,1,1,1,0.998469086399367,0.996940007831646,0.995412294639701,0.993886005115517,0.992361756986332,0.990841195678215,0.989328573960299, +00:13:38,1,1,1,0.998469989414338,0.996941813050511,0.995415001458326,0.993889612857045,0.99236626464614,0.990846601319935,0.989334873065879, +00:13:39,1,1,1,0.998470890836841,0.996943615086252,0.995417703505281,0.993893214240835,0.992370764364855,0.990851997440906,0.989341161078704, +00:13:40,1,1,1,0.998471790671537,0.996945413948182,0.995420400794524,0.993896809285469,0.992375256165676,0.990857384068931,0.98934743803116, +00:13:41,1,1,1,0.998472688923067,0.996947209645578,0.995423093339951,0.993900398009458,0.992379740071712,0.990862761231704,0.989353703955504, +00:13:42,1,1,1,0.998473585596054,0.996949002187677,0.995425781155407,0.993903980431235,0.992384216105974,0.990868128956803,0.98935995888386, +00:13:43,1,1,1,0.998474480695101,0.996950791583679,0.995428464254676,0.993907556569158,0.992388684291383,0.990873487271697,0.989366202848223, +00:13:44,1,1,1,0.998475374224793,0.996952577842748,0.995431142651489,0.993911126441512,0.992393144650764,0.990878836203742,0.989372435880459, +00:13:45,1,1,1,0.998476266189698,0.99695436097401,0.99543381635952,0.993914690066508,0.992397597206853,0.990884175780184,0.989378658012305, +00:13:46,1,1,1,0.998477156594363,0.996956140986553,0.99543648539239,0.993918247462282,0.992402041982292,0.990889506028159,0.989384869275369, +00:13:47,1,1,1,0.998478045443318,0.996957917889431,0.995439149763662,0.993921798646899,0.992406478999632,0.990894826974694,0.989391069701132, +00:13:48,1,1,1,0.998478932741073,0.996959691691658,0.995441809486845,0.99392534363835,0.992410908281333,0.990900138646707,0.989397259320949, +00:13:49,1,1,1,0.998479818492124,0.996961462402215,0.995444464575395,0.993928882454551,0.992415329849766,0.990905441071007,0.989403438166048, +00:13:50,1,1,1,0.998480702700944,0.996963230030044,0.995447115042713,0.993932415113351,0.992419743727211,0.990910734274295,0.989409606267532, +00:13:51,1,1,1,0.998481585371991,0.996964994584053,0.995449760902146,0.993935941632523,0.992424149935857,0.990916018283167,0.989415763656378, +00:13:52,1,1,1,0.998482466509703,0.996966756073113,0.995452402166988,0.993939462029771,0.992428548497807,0.99092129312411,0.989421910363441, +00:13:53,1,1,1,0.998483346118502,0.99696851450606,0.995455038850478,0.993942976322727,0.992432939435074,0.990926558823506,0.989428046419451, +00:13:54,1,1,1,0.998484224202793,0.996970269891695,0.995457670965803,0.993946484528952,0.992437322769581,0.990931815407632,0.989434171855015, +00:13:55,1,1,1,0.99848510076696,0.996972022238783,0.995460298526098,0.993949986665939,0.992441698523166,0.990937062902657,0.989440286700618, +00:13:56,1,1,1,0.998485975815372,0.996973771556054,0.995462921544445,0.993953482751108,0.99244606671758,0.990942301334649,0.989446390986623, +00:13:57,1,1,1,0.998486849352381,0.996975517852203,0.995465540033873,0.993956972801812,0.992450427374485,0.990947530729571,0.989452484743273, +00:13:58,1,1,1,0.998487721382319,0.996977261135891,0.995468154007359,0.993960456835332,0.992454780515458,0.990952751113282,0.989458568000689, +00:13:59,1,1,1,0.998488591909503,0.996979001415744,0.99547076347783,0.993963934868884,0.99245912616199,0.990957962511538,0.989464640788874, +00:14:00,1,1,1,0.998489460938233,0.996980738700353,0.99547336845816,0.993967406919613,0.992463464335486,0.990963164949994,0.98947070313771, +00:14:01,1,1,1,0.998490328472789,0.996982472998276,0.995475968961172,0.993970873004595,0.992467795057267,0.990968358454201,0.989476755076962, +00:14:02,1,1,1,0.998491194517438,0.996984204318036,0.995478564999637,0.993974333140841,0.992472118348568,0.990973543049611,0.989482796636275, +00:14:03,1,1,1,0.998492059076427,0.996985932668124,0.995481156586279,0.993977787345292,0.992476434230542,0.990978718761573,0.989488827845178, +00:14:04,1,1,1,0.998492922153987,0.996987658056994,0.995483743733767,0.993981235634823,0.992480742724256,0.990983885615338,0.989494848733085, +00:14:05,1,1,1,0.998493783754333,0.99698938049307,0.995486326454723,0.993984678026243,0.992485043850694,0.990989043636054,0.989500859329289, +00:14:06,1,1,1,0.998494643881663,0.99699109998474,0.995488904761718,0.993988114536292,0.99248933763076,0.990994192848774,0.989506859662971, +00:14:07,1,1,1,0.998495502540158,0.996992816540362,0.995491478667273,0.993991545181648,0.992493624085271,0.990999333278448,0.989512849763197, +00:14:08,1,1,1,0.998496359733981,0.996994530168256,0.99549404818386,0.99399496997892,0.992497903234965,0.99100446494993,0.989518829658917, +00:14:09,1,1,1,0.998497215467283,0.996996240876715,0.995496613323902,0.993998388944652,0.992502175100497,0.991009587887977,0.989524799378968, +00:14:10,1,1,1,0.998498069744194,0.996997948673995,0.995499174099773,0.994001802095323,0.992506439702443,0.991014702117245,0.989530758952072, +00:14:11,1,1,1,0.99849892256883,0.996999653568322,0.995501730523799,0.994005209447348,0.992510697061295,0.991019807662298,0.989536708406842, +00:14:12,1,1,1,0.998499773945291,0.997001355567887,0.995504282608256,0.994008611017078,0.992514947197467,0.9910249045476,0.989542647771774, +00:14:13,1,1,1,0.998500623877659,0.997003054680853,0.995506830365372,0.994012006820799,0.992519190131291,0.99102999279752,0.989548577075257, +00:14:14,1,1,1,0.998501472370003,0.997004750915347,0.995509373807329,0.994015396874732,0.992523425883022,0.991035072436334,0.989554496345566, +00:14:15,1,1,1,0.998502319426374,0.997006444279466,0.99551191294626,0.994018781195037,0.992527654472834,0.991040143488219,0.989560405610866, +00:14:16,1,1,1,0.998503165050807,0.997008134781275,0.995514447794249,0.994022159797809,0.992531875920821,0.991045205977261,0.989566304899213, +00:14:17,1,1,1,0.998504009247322,0.997009822428807,0.995516978363337,0.99402553269908,0.992536090247002,0.991050259927451,0.989572194238552, +00:14:18,1,1,1,0.998504852019922,0.997011507230066,0.995519504665513,0.994028899914822,0.992540297471315,0.991055305362685,0.989578073656721, +00:14:19,1,1,1,0.998505693372598,0.997013189193021,0.995522026712724,0.994032261460942,0.992544497613621,0.991060342306768,0.989583943181447, +00:14:20,1,1,1,0.99850653330932,0.997014868325613,0.995524544516865,0.994035617353286,0.992548690693705,0.991065370783413,0.989589802840354, +00:14:21,1,1,1,0.998507371834048,0.997016544635751,0.995527058089791,0.994038967607639,0.992552876731274,0.991070390816238,0.989595652660953, +00:14:22,1,1,1,0.998508208950722,0.997018218131312,0.995529567443307,0.994042312239723,0.992557055745959,0.991075402428772,0.989601492670652, +00:14:23,1,1,1,0.99850904466327,0.997019888820145,0.995532072589172,0.994045651265202,0.992561227757315,0.991080405644451,0.989607322896753, +00:14:24,1,1,1,0.998509878975604,0.997021556710067,0.995534573539101,0.994048984699677,0.99256539278482,0.991085400486622,0.98961314336645, +00:14:25,1,1,1,0.998510711891618,0.997023221808865,0.995537070304763,0.994052312558689,0.992569550847878,0.991090386978541,0.989618954106833, +00:14:26,1,1,1,0.998511543415196,0.997024884124296,0.995539562897783,0.994055634857719,0.992573701965818,0.991095365143374,0.989624755144887, +00:14:27,1,1,1,0.998512373550202,0.997026543664085,0.995542051329738,0.994058951612188,0.992577846157894,0.991100335004196,0.989630546507495, +00:14:28,1,1,1,0.998513202300489,0.997028200435932,0.995544535612164,0.994062262837458,0.992581983443285,0.991105296583997,0.989636328221435, +00:14:29,1,1,1,0.998514029669892,0.997029854447501,0.99554701575655,0.994065568548831,0.992586113841098,0.991110249905676,0.989642100313379, +00:14:30,1,1,1,0.998514855662234,0.997031505706433,0.995549491774341,0.994068868761553,0.992590237370365,0.991115194992043,0.989647862809902, +00:14:31,1,1,1,0.998515680281322,0.997033154220334,0.99555196367694,0.994072163490806,0.992594354050045,0.991120131865822,0.989653615737473, +00:14:32,1,1,1,0.998516503530947,0.997034799996784,0.995554431475704,0.994075452751719,0.992598463899025,0.991125060549649,0.989659359122461, +00:14:33,1,1,1,0.998517325414887,0.997036443043333,0.995556895181948,0.99407873655936,0.992602566936119,0.991129981066075,0.989665092991134, +00:14:34,1,1,1,0.998518145936907,0.997038083367501,0.995559354806941,0.99408201492874,0.992606663180069,0.991134893437562,0.989670817369657, +00:14:35,1,1,1,0.998518965100754,0.997039720976782,0.995561810361911,0.994085287874812,0.992610752649544,0.991139797686487,0.989676532284099, +00:14:36,1,1,1,0.998519782910163,0.997041355878638,0.995564261858044,0.994088555412473,0.992614835363145,0.991144693835143,0.989682237760427, +00:14:37,1,1,1,0.998520599368854,0.997042988080505,0.995566709306481,0.994091817556562,0.992618911339398,0.991149581905736,0.989687933824508, +00:14:38,1,1,1,0.998521414480534,0.997044617589789,0.99556915271832,0.994095074321861,0.992622980596762,0.991154461920388,0.989693620502113, +00:14:39,1,1,1,0.998522228248893,0.997046244413868,0.99557159210462,0.994098325723098,0.992627043153622,0.991159333901138,0.989699297818914, +00:14:40,1,1,1,0.99852304067761,0.997047868560093,0.995574027476395,0.994101571774942,0.992631099028297,0.991164197869938,0.989704965800483, +00:14:41,1,1,1,0.998523851770349,0.997049490035785,0.995576458844618,0.994104812492009,0.992635148239033,0.991169053848659,0.989710624472298, +00:14:42,1,1,1,0.998524661530759,0.99705110884824,0.99557888622022,0.994108047888856,0.992639190804007,0.99117390185909,0.989716273859739, +00:14:43,1,1,1,0.998525469962477,0.997052725004723,0.99558130961409,0.994111277979988,0.99264322674133,0.991178741922934,0.98972191398809, +00:14:44,1,1,1,0.998526277069124,0.997054338512474,0.995583729037078,0.994114502779854,0.992647256069041,0.991183574061815,0.989727544882539, +00:14:45,1,1,1,0.998527082854308,0.997055949378704,0.99558614449999,0.994117722302847,0.992651278805113,0.991188398297273,0.989733166568178, +00:14:46,1,1,1,0.998527887321625,0.997057557610598,0.995588556013592,0.994120936563307,0.992655294967449,0.991193214650768,0.989738779070006, +00:14:47,1,1,1,0.998528690474656,0.997059163215312,0.995590963588611,0.994124145575519,0.992659304573887,0.991198023143678,0.989744382412926, +00:14:48,1,1,1,0.998529492316967,0.997060766199977,0.995593367235731,0.994127349353714,0.992663307642194,0.991202823797301,0.989749976621748, +00:14:49,1,1,1,0.998530292852114,0.997062366571696,0.995595766965598,0.994130547912071,0.992667304190075,0.991207616632853,0.989755561721188, +00:14:50,1,1,1,0.998531092083637,0.997063964337544,0.995598162788815,0.994133741264714,0.992671294235163,0.991212401671474,0.989761137735869, +00:14:51,1,1,1,0.998531890015063,0.997065559504573,0.995600554715947,0.994136929425714,0.992675277795028,0.991217178934221,0.989766704690322, +00:14:52,1,1,1,0.998532686649907,0.997067152079804,0.99560294275752,0.994140112409088,0.992679254887173,0.991221948442072,0.989772262608986, +00:14:53,1,1,1,0.998533481991669,0.997068742070235,0.995605326924019,0.994143290228803,0.992683225529037,0.991226710215929,0.989777811516207, +00:14:54,1,1,1,0.998534276043837,0.997070329482836,0.99560770722589,0.994146462898772,0.99268718973799,0.991231464276613,0.989783351436241, +00:14:55,1,1,1,0.998535068809885,0.997071914324552,0.995610083673539,0.994149630432856,0.992691147531339,0.991236210644868,0.989788882393252, +00:14:56,1,1,1,0.998535860293276,0.9970734966023,0.995612456277335,0.994152792844863,0.992695098926328,0.991240949341361,0.989794404411316, +00:14:57,1,1,1,0.998536650497457,0.997075076322973,0.995614825047607,0.994155950148553,0.992699043940134,0.991245680386681,0.989799917514416, +00:14:58,1,1,1,0.998537439425865,0.997076653493438,0.995617189994645,0.994159102357629,0.99270298258987,0.99125040380134,0.989805421726448, +00:14:59,1,1,1,0.998538227081923,0.997078228120536,0.995619551128702,0.994162249485749,0.992706914892586,0.991255119605774,0.989810917071218, +00:15:00,1,1,1,0.99853901346904,0.997079800211081,0.995621908459991,0.994165391546515,0.992710840865269,0.991259827820343,0.989816403572443, +00:15:01,1,1,1,0.998539798590614,0.997081369771865,0.995624261998687,0.994168528553481,0.992714760524842,0.991264528465331,0.989821881253752, +00:15:02,1,1,1,0.998540582450029,0.997082936809652,0.99562661175493,0.99417166052015,0.992718673888164,0.991269221560946,0.989827350138687, +00:15:03,1,1,1,0.998541365050659,0.997084501331181,0.995628957738819,0.994174787459975,0.992722580972034,0.991273907127322,0.989832810250702, +00:15:04,1,1,1,0.998542146395862,0.997086063343167,0.995631299960416,0.994177909386359,0.992726481793186,0.991278585184519,0.989838261613162, +00:15:05,1,1,1,0.998542926488986,0.997087622852299,0.995633638429748,0.994181026312654,0.992730376368294,0.99128325575252,0.98984370424935, +00:15:06,1,1,1,0.998543705333366,0.997089179865243,0.995635973156802,0.994184138252165,0.992734264713969,0.991287918851236,0.989849138182459, +00:15:07,1,1,1,0.998544482932323,0.997090734388639,0.995638304151529,0.994187245218146,0.99273814684676,0.991292574500504,0.989854563435598, +00:15:08,1,1,1,0.998545259289168,0.997092286429101,0.995640631423845,0.994190347223803,0.992742022783158,0.991297222720089,0.98985998003179, +00:15:09,1,1,1,0.998546034407199,0.997093835993222,0.995642954983626,0.994193444282292,0.99274589253959,0.99130186352968,0.989865387993973, +00:15:10,1,1,1,0.998546808289702,0.997095383087568,0.995645274840715,0.994196536406721,0.992749756132423,0.991306496948897,0.989870787345001, +00:15:11,1,1,1,0.998547580939949,0.997096927718681,0.995647591004915,0.99419962361015,0.992753613577964,0.991311122997285,0.989876178107644, +00:15:12,1,1,1,0.998548352361203,0.997098469893079,0.995649903485996,0.994202705905591,0.992757464892462,0.991315741694318,0.989881560304588, +00:15:13,1,1,1,0.998549122556713,0.997100009617259,0.995652212293692,0.994205783306008,0.992761310092101,0.991320353059398,0.989886933958434, +00:15:14,1,1,1,0.998549891529717,0.997101546897689,0.995654517437699,0.994208855824318,0.992765149193012,0.991324957111859,0.989892299091704, +00:15:15,1,1,1,0.998550659283439,0.997103081740816,0.995656818927678,0.994211923473388,0.992768982211263,0.991329553870959,0.989897655726834, +00:15:16,1,1,1,0.998551425821094,0.997104614153065,0.995659116773256,0.994214986266041,0.992772809162863,0.991334143355889,0.989903003886179, +00:15:17,1,1,1,0.998552191145885,0.997106144140833,0.995661410984025,0.994218044215052,0.992776630063764,0.991338725585768,0.989908343592013, +00:15:18,1,1,1,0.998552955261,0.997107671710498,0.995663701569538,0.994221097333148,0.992780444929859,0.991343300579647,0.989913674866526, +00:15:19,1,1,1,0.998553718169619,0.997109196868413,0.995665988539319,0.994224145633012,0.992784253776983,0.991347868356505,0.989918997731831, +00:15:20,1,1,1,0.998554479874909,0.997110719620906,0.995668271902851,0.994227189127278,0.992788056620913,0.991352428935254,0.989924312209956, +00:15:21,1,1,1,0.998555240380026,0.997112239974285,0.995670551669588,0.994230227828535,0.992791853477369,0.991356982334736,0.989929618322853, +00:15:22,1,1,1,0.998555999688112,0.997113757934832,0.995672827848946,0.994233261749327,0.992795644362013,0.991361528573725,0.98993491609239, +00:15:23,1,1,1,0.998556757802301,0.997115273508809,0.995675100450307,0.994236290902152,0.99279942929045,0.991366067670925,0.989940205540359, +00:15:24,1,1,1,0.998557514725713,0.997116786702453,0.99567736948302,0.994239315299461,0.99280320827823,0.991370599644975,0.989945486688472, +00:15:25,1,1,1,0.998558270461459,0.99711829752198,0.995679634956401,0.994242334953662,0.992806981340845,0.991375124514444,0.989950759558359, +00:15:26,1,1,1,0.998559025012636,0.997119805973582,0.995681896879728,0.994245349877116,0.99281074849373,0.991379642297833,0.989956024171577, +00:15:27,1,1,1,0.998559778382333,0.997121312063429,0.995684155262251,0.994248360082141,0.992814509752266,0.99138415301358,0.989961280549601, +00:15:28,1,1,1,0.998560530573624,0.997122815797668,0.995686410113182,0.994251365581009,0.992818265131778,0.991388656680052,0.989966528713829, +00:15:29,1,1,1,0.998561281589575,0.997124317182426,0.995688661441702,0.994254366385948,0.992822014647534,0.991393153315552,0.989971768685583, +00:15:30,1,1,1,0.998562031433239,0.997125816223806,0.995690909256957,0.994257362509143,0.992825758314749,0.991397642938316,0.989977000486108, +00:15:31,1,1,1,0.99856278010766,0.997127312927889,0.995693153568062,0.994260353962732,0.992829496148581,0.991402125566515,0.98998222413657, +00:15:32,1,1,1,0.998563527615868,0.997128807300734,0.995695394384098,0.994263340758813,0.992833228164135,0.991406601218254,0.989987439658061, +00:15:33,1,1,1,0.998564273960886,0.997130299348378,0.995697631714113,0.994266322909439,0.992836954376462,0.991411069911572,0.989992647071597, +00:15:34,1,1,1,0.998565019145721,0.997131789076839,0.995699865567124,0.994269300426617,0.992840674800556,0.991415531664444,0.989997846398118, +00:15:35,1,1,1,0.998565763173375,0.997133276492109,0.995702095952114,0.994272273322315,0.992844389451361,0.991419986494782,0.990003037658489, +00:15:36,1,1,1,0.998566506046834,0.997134761600161,0.995704322878033,0.994275241608456,0.992848098343764,0.991424434420431,0.990008220873499, +00:15:37,1,1,1,0.998567247769077,0.997136244406946,0.995706546353801,0.994278205296919,0.992851801492601,0.991428875459173,0.990013396063864, +00:15:38,1,1,1,0.99856798834307,0.997137724918394,0.995708766388306,0.994281164399543,0.992855498912653,0.991433309628727,0.990018563250226, +00:15:39,1,1,1,0.99856872777177,0.997139203140414,0.995710982990401,0.994284118928123,0.99285919061865,0.991437736946749,0.990023722453151, +00:15:40,1,1,1,0.998569466058122,0.997140679078892,0.995713196168911,0.994287068894413,0.992862876625267,0.991442157430829,0.990028873693134, +00:15:41,1,1,1,0.998570203205062,0.997142152739696,0.995715405932628,0.994290014310122,0.992866556947129,0.991446571098499,0.990034016990596, +00:15:42,1,1,1,0.998570939215514,0.99714362412867,0.995717612290313,0.994292955186922,0.992870231598808,0.991450977967223,0.990039152365885, +00:15:43,1,1,1,0.998571674092392,0.997145093251639,0.995719815250693,0.994295891536439,0.992873900594823,0.991455378054408,0.990044279839276, +00:15:44,1,1,1,0.9985724078386,0.997146560114407,0.995722014822469,0.99429882337026,0.992877563949642,0.991459771377395,0.990049399430973, +00:15:45,1,1,1,0.998573140457032,0.997148024722756,0.995724211014307,0.99430175069993,0.992881221677682,0.991464157953465,0.990054511161107, +00:15:46,1,1,1,0.99857387195057,0.99714948708245,0.995726403834844,0.994304673536953,0.992884873793309,0.991468537799838,0.990059615049739, +00:15:47,1,1,1,0.998574602322088,0.997150947199229,0.995728593292684,0.994307591892793,0.992888520310837,0.991472910933673,0.990064711116858, +00:15:48,1,1,1,0.998575331574448,0.997152405078817,0.995730779396405,0.994310505778872,0.992892161244529,0.991477277372066,0.990069799382381, +00:15:49,1,1,1,0.998576059710503,0.997153860726913,0.995732962154549,0.994313415206572,0.9928957966086,0.991481637132056,0.990074879866157, +00:15:50,1,1,1,0.998576786733095,0.997155314149199,0.995735141575633,0.994316320187234,0.992899426417211,0.991485990230619,0.990079952587963, +00:15:51,1,1,1,0.998577512645057,0.997156765351336,0.99573731766814,0.994319220732162,0.992903050684475,0.991490336684672,0.990085017567506, +00:15:52,1,1,1,0.998578237449211,0.997158214338966,0.995739490440524,0.994322116852615,0.992906669424456,0.991494676511071,0.990090074824425, +00:15:53,1,1,1,0.99857896114837,0.997159661117708,0.99574165990121,0.994325008559817,0.992910282651167,0.991499009726616,0.990095124378288, +00:15:54,1,1,1,0.998579683745335,0.997161105693164,0.995743826058594,0.99432789586495,0.992913890378571,0.991503336348043,0.990100166248595, +00:15:55,1,1,1,0.998580405242899,0.997162548070916,0.995745988921039,0.994330778779156,0.992917492620584,0.991507656392033,0.990105200454777, +00:15:56,1,1,1,0.998581125643846,0.997163988256526,0.995748148496883,0.99433365731354,0.992921089391072,0.991511969875207,0.990110227016198, +00:15:57,1,1,1,0.998581844950947,0.997165426255534,0.995750304794431,0.994336531479166,0.99292468070385,0.991516276814127,0.990115245952152, +00:15:58,1,1,1,0.998582563166967,0.997166862073466,0.995752457821961,0.994339401287061,0.992928266572689,0.991520577225297,0.990120257281866, +00:15:59,1,1,1,0.998583280294659,0.997168295715822,0.995754607587721,0.994342266748211,0.992931847011308,0.991524871125164,0.9901252610245, +00:16:00,1,1,1,0.998583996336766,0.997169727188089,0.995756754099929,0.994345127873565,0.99293542203338,0.991529158530118,0.990130257199148, +00:16:01,1,1,1,0.998584711296023,0.997171156495729,0.995758897366778,0.994347984674034,0.992938991652529,0.991533439456489,0.990135245824834, +00:16:02,1,1,1,0.998585425175155,0.99717258364419,0.995761037396428,0.994350837160489,0.992942555882332,0.991537713920552,0.99014022692052, +00:16:03,1,1,1,0.998586137976875,0.997174008638898,0.995763174197013,0.994353685343765,0.992946114736318,0.991541981938525,0.990145200505097, +00:16:04,1,1,1,0.998586849703891,0.99717543148526,0.995765307776638,0.994356529234659,0.992949668227969,0.99154624352657,0.990150166597393, +00:16:05,1,1,1,0.998587560358898,0.997176852188664,0.995767438143379,0.994359368843929,0.992953216370721,0.99155049870079,0.99015512521617, +00:16:06,1,1,1,0.998588269944583,0.997178270754482,0.995769565305284,0.994362204182297,0.992956759177961,0.991554747477235,0.990160076380126, +00:16:07,1,1,1,0.998588978463623,0.997179687188065,0.995771689270375,0.994365035260445,0.992960296663032,0.991558989871898,0.99016502010789, +00:16:08,1,1,1,0.998589685918687,0.997181101494744,0.995773810046643,0.994367862089022,0.992963828839229,0.991563225900715,0.99016995641803, +00:16:09,1,1,1,0.998590392312433,0.997182513679834,0.995775927642054,0.994370684678637,0.992967355719801,0.99156745557957,0.990174885329049, +00:16:10,1,1,1,0.99859109764751,0.997183923748631,0.995778042064544,0.994373503039862,0.992970877317951,0.991571678924289,0.990179806859385, +00:16:11,1,1,1,0.99859180192656,0.997185331706412,0.995780153322024,0.994376317183234,0.992974393646837,0.991575895950644,0.990184721027411, +00:16:12,1,1,1,0.998592505152213,0.997186737558437,0.995782261422374,0.994379127119254,0.992977904719571,0.991580106674352,0.99018962785144, +00:16:13,1,1,1,0.998593207327092,0.997188141309944,0.99578436637345,0.994381932858385,0.99298141054922,0.991584311111078,0.990194527349718, +00:16:14,1,1,1,0.998593908453809,0.997189542966159,0.995786468183081,0.994384734411053,0.992984911148805,0.991588509276431,0.99019941954043, +00:16:15,1,1,1,0.998594608534968,0.997190942532284,0.995788566859065,0.99438753178765,0.992988406531302,0.991592701185965,0.990204304441698, +00:16:16,1,1,1,0.998595307573165,0.997192340013507,0.995790662409178,0.994390324998532,0.992991896709644,0.991596886855182,0.990209182071581, +00:16:17,1,1,1,0.998596005570985,0.997193735414996,0.995792754841165,0.994393114054018,0.992995381696717,0.99160106629953,0.990214052448076, +00:16:18,1,1,1,0.998596702531005,0.997195128741902,0.995794844162748,0.994395898964393,0.992998861505364,0.991605239534406,0.990218915589119, +00:16:19,1,1,1,0.998597398455795,0.997196519999359,0.995796930381619,0.994398679739906,0.993002336148385,0.99160940657515,0.990223771512583, +00:16:20,1,1,1,0.998598093347912,0.997197909192481,0.995799013505447,0.994401456390769,0.993005805638534,0.991613567437053,0.990228620236281, +00:16:21,1,1,1,0.998598787209909,0.997199296326368,0.995801093541872,0.994404228927163,0.993009269988521,0.991617722135351,0.990233461777964, +00:16:22,1,1,1,0.998599480044326,0.997200681406098,0.995803170498508,0.99440699735923,0.993012729211015,0.991621870685231,0.990238296155322, +00:16:23,1,1,1,0.998600171853697,0.997202064436736,0.995805244382944,0.99440976169708,0.99301618331864,0.991626013101824,0.990243123385986, +00:16:24,1,1,1,0.998600862640546,0.997203445423327,0.995807315202743,0.994412521950787,0.993019632323976,0.991630149400211,0.990247943487524, +00:16:25,1,1,1,0.998601552407389,0.9972048243709,0.995809382965442,0.99441527813039,0.993023076239561,0.991634279595423,0.990252756477446, +00:16:26,1,1,1,0.998602241156734,0.997206201284465,0.995811447678551,0.994418030245896,0.99302651507789,0.991638403702438,0.990257562373203, +00:16:27,1,1,1,0.998602928891078,0.997207576169016,0.995813509349556,0.994420778307275,0.993029948851416,0.991642521736183,0.990262361192184, +00:16:28,1,1,1,0.998603615612913,0.997208949029532,0.995815567985916,0.994423522324466,0.993033377572549,0.991646633711534,0.990267152951721, +00:16:29,1,1,1,0.99860430132472,0.997210319870971,0.995817623595066,0.994426262307371,0.993036801253657,0.991650739643318,0.990271937669085, +00:16:30,1,1,1,0.998604986028971,0.997211688698278,0.995819676184415,0.994428998265861,0.993040219907064,0.991654839546309,0.990276715361491, +00:16:31,1,1,1,0.998605669728132,0.997213055516378,0.995821725761347,0.994431730209772,0.993043633545055,0.991658933435233,0.990281486046093, +00:16:32,1,1,1,0.998606352424659,0.997214420330181,0.99582377233322,0.994434458148908,0.993047042179873,0.991663021324766,0.990286249739988, +00:16:33,1,1,1,0.998607034121001,0.99721578314458,0.995825815907368,0.994437182093037,0.993050445823717,0.991667103229532,0.990291006460215, +00:16:34,1,1,1,0.998607714819596,0.997217143964452,0.995827856491101,0.994439902051896,0.993053844488748,0.991671179164108,0.990295756223755, +00:16:35,1,1,1,0.998608394522876,0.997218502794655,0.995829894091701,0.994442618035189,0.993057238187082,0.991675249143021,0.990300499047532, +00:16:36,1,1,1,0.998609073233265,0.997219859640035,0.99583192871643,0.994445330052587,0.993060626930798,0.991679313180747,0.990305234948412, +00:16:37,1,1,1,0.998609750953178,0.997221214505417,0.995833960372521,0.994448038113727,0.993064010731931,0.991683371291715,0.990309963943205, +00:16:38,1,1,1,0.998610427685021,0.997222567395612,0.995835989067185,0.994450742228217,0.993067389602477,0.991687423490306,0.990314686048664, +00:16:39,1,1,1,0.998611103431193,0.997223918315416,0.995838014807609,0.994453442405627,0.993070763554392,0.991691469790852,0.990319401281485, +00:16:40,1,1,1,0.998611778194085,0.997225267269605,0.995840037600954,0.9944561386555,0.99307413259959,0.991695510207634,0.990324109658309, +00:16:41,1,1,1,0.99861245197608,0.997226614262943,0.995842057454358,0.994458830987344,0.993077496749947,0.991699544754889,0.990328811195719, +00:16:42,1,1,1,0.998613124779552,0.997227959300174,0.995844074374935,0.994461519410636,0.993080856017297,0.991703573446805,0.990333505910245, +00:16:43,1,1,1,0.998613796606867,0.997229302386031,0.995846088369775,0.994464203934821,0.993084210413436,0.991707596297519,0.990338193818359, +00:16:44,1,1,1,0.998614467460384,0.997230643525227,0.995848099445943,0.994466884569312,0.993087559950119,0.991711613321126,0.990342874936479, +00:16:45,1,1,1,0.998615137342455,0.99723198272246,0.995850107610483,0.994469561323491,0.993090904639063,0.99171562453167,0.990347549280968, +00:16:46,1,1,1,0.998615806255421,0.997233319982413,0.995852112870413,0.994472234206708,0.993094244491944,0.991719629943149,0.990352216868135, +00:16:47,1,1,1,0.998616474201618,0.997234655309753,0.995854115232729,0.994474903228282,0.993097579520401,0.991723629569515,0.990356877714232, +00:16:48,1,1,1,0.998617141183373,0.997235988709131,0.995856114704401,0.994477568397502,0.993100909736033,0.991727623424672,0.990361531835459, +00:16:49,1,1,1,0.998617807203006,0.997237320185185,0.995858111292379,0.994480229723622,0.9931042351504,0.991731611522479,0.990366179247962, +00:16:50,1,1,1,0.998618472262827,0.997238649742532,0.995860105003589,0.99448288721587,0.993107555775023,0.991735593876747,0.990370819967831, +00:16:51,1,1,1,0.998619136365142,0.99723997738578,0.995862095844931,0.994485540883441,0.993110871621387,0.991739570501242,0.990375454011104, +00:16:52,1,1,1,0.998619799512245,0.997241303119517,0.995864083823286,0.994488190735499,0.993114182700936,0.991743541409685,0.990380081393766, +00:16:53,1,1,1,0.998620461706426,0.997242626948318,0.99586606894551,0.994490836781178,0.993117489025077,0.991747506615751,0.990384702131748, +00:16:54,1,1,1,0.998621122949966,0.997243948876741,0.995868051218437,0.994493479029582,0.99312079060518,0.991751466133068,0.990389316240928, +00:16:55,1,1,1,0.998621783245138,0.997245268909331,0.995870030648877,0.994496117489784,0.993124087452576,0.99175541997522,0.990393923737133, +00:16:56,1,1,1,0.998622442594208,0.997246587050617,0.995872007243618,0.994498752170827,0.993127379578558,0.991759368155747,0.990398524636135, +00:16:57,1,1,1,0.998623100999435,0.997247903305112,0.995873981009427,0.994501383081724,0.993130666994383,0.991763310688142,0.990403118953655, +00:16:58,1,1,1,0.998623758463068,0.997249217677316,0.995875951953046,0.99450401023146,0.993133949711271,0.991767247585854,0.990407706705362, +00:16:59,1,1,1,0.998624414987352,0.997250530171711,0.995877920081197,0.994506633628988,0.993137227740403,0.99177117886229,0.990412287906874, +00:17:00,1,1,1,0.998625070574522,0.997251840792768,0.995879885400578,0.994509253283232,0.993140501092925,0.991775104530808,0.990416862573756, +00:17:01,1,1,1,0.998625725226808,0.997253149544941,0.995881847917865,0.994511869203086,0.993143769779944,0.991779024604726,0.990421430721522, +00:17:02,1,1,1,0.998626378946429,0.997254456432669,0.995883807639715,0.994514481397416,0.993147033812532,0.991782939097317,0.990425992365635, +00:17:03,1,1,1,0.998627031735601,0.997255761460377,0.995885764572758,0.994517089875058,0.993150293201725,0.99178684802181,0.990430547521508, +00:17:04,1,1,1,0.998627683596529,0.997257064632477,0.995887718723606,0.994519694644818,0.993153547958522,0.991790751391388,0.990435096204502, +00:17:05,1,1,1,0.998628334531413,0.997258365953363,0.995889670098848,0.994522295715476,0.993156798093884,0.991794649219196,0.990439638429928, +00:17:06,1,1,1,0.998628984542445,0.997259665427417,0.995891618705051,0.99452489309578,0.993160043618739,0.991798541518332,0.990444174213047, +00:17:07,1,1,1,0.998629633631811,0.997260963059006,0.995893564548761,0.994527486794451,0.993163284543978,0.991802428301852,0.990448703569069, +00:17:08,1,1,1,0.998630281801686,0.997262258852483,0.995895507636502,0.994530076820179,0.993166520880456,0.991806309582768,0.990453226513156, +00:17:09,1,1,1,0.998630929054243,0.997263552812187,0.995897447974778,0.99453266318163,0.993169752638992,0.991810185374051,0.990457743060418, +00:17:10,1,1,1,0.998631575391645,0.997264844942441,0.995899385570069,0.994535245887437,0.99317297983037,0.99181405568863,0.990462253225918, +00:17:11,1,1,1,0.998632220816047,0.997266135247555,0.995901320428837,0.994537824946207,0.993176202465339,0.991817920539391,0.990466757024667, +00:17:12,1,1,1,0.9986328653296,0.997267423731826,0.995903252557519,0.994540400366519,0.993179420554614,0.991821779939176,0.99047125447163, +00:17:13,1,1,1,0.998633508934444,0.997268710399536,0.995905181962536,0.994542972156924,0.993182634108872,0.991825633900788,0.990475745581721, +00:17:14,1,1,1,0.998634151632717,0.997269995254952,0.995907108650283,0.994545540325944,0.993185843138757,0.991829482436987,0.990480230369806, +00:17:15,1,1,1,0.998634793426546,0.997271278302328,0.995909032627137,0.994548104882074,0.99318904765488,0.991833325560491,0.990484708850703, +00:17:16,1,1,1,0.998635434318053,0.997272559545905,0.995910953899455,0.994550665833781,0.993192247667815,0.991837163283979,0.990489181039181, +00:17:17,1,1,1,0.998636074309351,0.997273838989909,0.995912872473571,0.994553223189505,0.993195443188102,0.991840995620084,0.990493646949963, +00:17:18,1,1,1,0.998636713402549,0.997275116638552,0.995914788355798,0.994555776957659,0.993198634226247,0.991844822581404,0.990498106597721, +00:17:19,1,1,1,0.998637351599747,0.997276392496033,0.995916701552432,0.994558327146627,0.993201820792722,0.99184864418049,0.990502559997081, +00:17:20,1,1,1,0.998637988903039,0.997277666566538,0.995918612069745,0.994560873764767,0.993205002897966,0.991852460429858,0.990507007162623, +00:17:21,1,1,1,0.998638625314512,0.997278938854239,0.995920519913991,0.99456341682041,0.993208180552382,0.99185627134198,0.990511448108879, +00:17:22,1,1,1,0.998639260836248,0.997280209363293,0.995922425091403,0.994565956321859,0.993211353766342,0.991860076929288,0.990515882850332, +00:17:23,1,1,1,0.998639895470318,0.997281478097846,0.995924327608193,0.994568492277392,0.993214522550182,0.991863877204175,0.99052031140142, +00:17:24,1,1,1,0.998640529218791,0.997282745062028,0.995926227470553,0.994571024695258,0.993217686914207,0.991867672178993,0.990524733776535, +00:17:25,1,1,1,0.998641162083726,0.997284010259957,0.995928124684657,0.99457355358368,0.993220846868685,0.991871461866054,0.990529149990021, +00:17:26,1,1,1,0.998641794067177,0.997285273695739,0.995930019256657,0.994576078950857,0.993224002423856,0.991875246277632,0.990533560056176, +00:17:27,1,1,1,0.998642425171191,0.997286535373465,0.995931911192686,0.994578600804958,0.993227153589923,0.99187902542596,0.990537963989254, +00:17:28,1,1,1,0.998643055397808,0.997287795297213,0.995933800498856,0.994581119154128,0.993230300377057,0.99188279932323,0.990542361803461, +00:17:29,1,1,1,0.998643684749063,0.997289053471048,0.995935687181262,0.994583634006484,0.993233442795398,0.991886567981599,0.990546753512957, +00:17:30,1,1,1,0.998644313226981,0.997290309899022,0.995937571245977,0.994586145370119,0.993236580855052,0.991890331413182,0.990551139131859, +00:17:31,1,1,1,0.998644940833585,0.997291564585174,0.995939452699055,0.994588653253098,0.993239714566093,0.991894089630056,0.990555518674236, +00:17:32,1,1,1,0.998645567570889,0.997292817533531,0.995941331546532,0.994591157663463,0.993242843938562,0.991897842644259,0.990559892154114, +00:17:33,1,1,1,0.998646193440899,0.997294068748105,0.995943207794423,0.994593658609225,0.993245968982467,0.991901590467789,0.990564259585472, +00:17:34,1,1,1,0.998646818445619,0.997295318232897,0.995945081448724,0.994596156098376,0.993249089707788,0.99190533311261,0.990568620982247, +00:17:35,1,1,1,0.998647442587041,0.997296565991894,0.995946952515411,0.994598650138877,0.993252206124469,0.991909070590643,0.99057297635833, +00:17:36,1,1,1,0.998648065867156,0.997297812029071,0.995948821000445,0.994601140738667,0.993255318242424,0.991912802913774,0.990577325727566, +00:17:37,1,1,1,0.998648688287945,0.99729905634839,0.995950686909762,0.994603627905658,0.993258426071535,0.991916530093849,0.990581669103759, +00:17:38,1,1,1,0.998649309851384,0.997300298953801,0.995952550249283,0.994606111647736,0.993261529621651,0.991920252142678,0.990586006500667, +00:17:39,1,1,1,0.998649930559443,0.99730153984924,0.995954411024909,0.994608591972764,0.993264628902594,0.991923969072031,0.990590337932005, +00:17:40,1,1,1,0.998650550414085,0.997302779038631,0.995956269242523,0.994611068888579,0.99326772392415,0.991927680893645,0.990594663411444, +00:17:41,1,1,1,0.998651169417267,0.997304016525887,0.995958124907988,0.994613542402993,0.993270814696075,0.991931387619214,0.990598982952612, +00:17:42,1,1,1,0.99865178757094,0.997305252314907,0.995959978027149,0.994616012523793,0.993273901228097,0.9919350892604,0.990603296569092, +00:17:43,1,1,1,0.998652404877048,0.997306486409577,0.995961828605832,0.99461847925874,0.99327698352991,0.991938785828824,0.990607604274427, +00:17:44,1,1,1,0.998653021337531,0.997307718813772,0.995963676649846,0.994620942615574,0.993280061611177,0.991942477336073,0.990611906082114, +00:17:45,1,1,1,0.99865363695432,0.997308949531355,0.995965522164979,0.994623402602008,0.993283135481533,0.991946163793696,0.99061620200561, +00:17:46,1,1,1,0.998654251729341,0.997310178566175,0.995967365157004,0.99462585922573,0.993286205150581,0.991949845213205,0.990620492058327, +00:17:47,1,1,1,0.998654865664515,0.997311405922071,0.995969205631672,0.994628312494405,0.993289270627893,0.991953521606077,0.990624776253636, +00:17:48,1,1,1,0.998655478761756,0.997312631602868,0.995971043594719,0.994630762415673,0.993292331923011,0.991957192983751,0.990629054604865, +00:17:49,1,1,1,0.998656091022971,0.99731385561238,0.995972879051861,0.99463320899715,0.993295389045448,0.991960859357632,0.990633327125302, +00:17:50,1,1,1,0.998656702450062,0.997315077954408,0.995974712008796,0.99463565224643,0.993298442004687,0.991964520739088,0.990637593828189, +00:17:51,1,1,1,0.998657313044926,0.997316298632742,0.995976542471206,0.994638092171079,0.99330149081018,0.991968177139451,0.990641854726732, +00:17:52,1,1,1,0.998657922809453,0.99731751765116,0.995978370444752,0.994640528778642,0.993304535471349,0.991971828570017,0.990646109834089, +00:17:53,1,1,1,0.998658531745526,0.997318735013427,0.995980195935081,0.99464296207664,0.993307575997588,0.991975475042047,0.990650359163383, +00:17:54,1,1,1,0.998659139855023,0.997319950723298,0.995982018947818,0.994645392072571,0.993310612398259,0.991979116566767,0.990654602727691, +00:17:55,1,1,1,0.998659747139817,0.997321164784515,0.995983839488573,0.994647818773907,0.993313644682699,0.991982753155368,0.990658840540051, +00:17:56,1,1,1,0.998660353601774,0.997322377200808,0.995985657562939,0.994650242188099,0.99331667286021,0.991986384819005,0.99066307261346, +00:17:57,1,1,1,0.998660959242754,0.997323587975895,0.995987473176488,0.994652662322573,0.99331969694007,0.991990011568798,0.990667298960875, +00:17:58,1,1,1,0.998661564064613,0.997324797113484,0.995989286334779,0.994655079184733,0.993322716931525,0.991993633415832,0.99067151959521, +00:17:59,1,1,1,0.998662168069198,0.997326004617271,0.995991097043351,0.994657492781959,0.993325732843791,0.991997250371159,0.990675734529341, +00:18:00,1,1,1,0.998662771258353,0.997327210490938,0.995992905307725,0.994659903121609,0.99332874468606,0.992000862445795,0.990679943776104, +00:18:01,1,1,1,0.998663373633915,0.997328414738159,0.995994711133406,0.994662310211016,0.99333175246749,0.992004469650723,0.990684147348293, +00:18:02,1,1,1,0.998663975197716,0.997329617362594,0.995996514525883,0.994664714057492,0.993334756197214,0.992008071996889,0.990688345258663, +00:18:03,1,1,1,0.998664575951581,0.997330818367893,0.995998315490626,0.994667114668325,0.993337755884335,0.992011669495208,0.990692537519929, +00:18:04,1,1,1,0.998665175897331,0.997332017757694,0.996000114033088,0.994669512050782,0.993340751537928,0.99201526215656,0.990696724144769, +00:18:05,1,1,1,0.99866577503678,0.997333215535623,0.996001910158705,0.994671906212106,0.993343743167039,0.99201884999179,0.990700905145817, +00:18:06,1,1,1,0.998666373371737,0.997334411705297,0.996003703872898,0.994674297159517,0.993346730780688,0.99202243301171,0.990705080535672, +00:18:07,1,1,1,0.998666970904004,0.997335606270319,0.99600549518107,0.994676684900213,0.993349714387864,0.9920260112271,0.99070925032689, +00:18:08,1,1,1,0.998667567635381,0.997336799234282,0.996007284088605,0.994679069441372,0.993352693997531,0.992029584648704,0.990713414531992, +00:18:09,1,1,1,0.998668163567657,0.997337990600769,0.996009070600874,0.994681450790146,0.993355669618624,0.992033153287235,0.990717573163459, +00:18:10,1,1,1,0.998668758702621,0.99733918037335,0.996010854723229,0.994683828953666,0.993358641260049,0.99203671715337,0.99072172623373, +00:18:11,1,1,1,0.998669353042053,0.997340368555585,0.996012636461007,0.994686203939044,0.993361608930686,0.992040276257757,0.99072587375521, +00:18:12,1,1,1,0.998669946587728,0.997341555151022,0.996014415819526,0.994688575753365,0.993364572639388,0.992043830611007,0.990730015740265, +00:18:13,1,1,1,0.998670539341416,0.9973427401632,0.99601619280409,0.994690944403696,0.993367532394981,0.992047380223701,0.99073415220122, +00:18:14,1,1,1,0.998671131304882,0.997343923595645,0.996017967419986,0.99469330989708,0.99337048820626,0.992050925106387,0.990738283150365, +00:18:15,1,1,1,0.998671722479884,0.997345105451873,0.996019739672484,0.99469567224054,0.993373440081998,0.992054465269579,0.990742408599949, +00:18:16,1,1,1,0.998672312868177,0.997346285735389,0.996021509566839,0.994698031441076,0.993376388030937,0.99205800072376,0.990746528562188, +00:18:17,1,1,1,0.998672902471508,0.997347464449688,0.996023277108288,0.994700387505667,0.993379332061794,0.99206153147938,0.990750643049256, +00:18:18,1,1,1,0.998673491291621,0.997348641598253,0.996025042302053,0.99470274044127,0.993382272183259,0.992065057546858,0.990754752073291, +00:18:19,1,1,1,0.998674079330251,0.997349817184556,0.996026805153341,0.994705090254821,0.993385208403996,0.992068578936579,0.990758855646395, +00:18:20,1,1,1,0.998674666589133,0.997350991212061,0.99602856566734,0.994707436953236,0.993388140732641,0.992072095658899,0.990762953780632, +00:18:21,1,1,1,0.998675253069992,0.997352163684219,0.996030323849226,0.994709780543407,0.993391069177804,0.992075607724139,0.990767046488028, +00:18:22,1,1,1,0.99867583877455,0.99735333460447,0.996032079704156,0.994712121032208,0.993393993748069,0.992079115142592,0.990771133780574, +00:18:23,1,1,1,0.998676423704523,0.997354503976245,0.996033833237272,0.994714458426489,0.993396914451993,0.992082617924516,0.990775215670223, +00:18:24,1,1,1,0.998677007861623,0.997355671802964,0.996035584453702,0.994716792733082,0.993399831298108,0.992086116080139,0.990779292168891, +00:18:25,1,1,1,0.998677591247554,0.997356838088036,0.996037333358555,0.994719123958794,0.993402744294919,0.99208960961966,0.99078336328846, +00:18:26,1,1,1,0.998678173864017,0.997358002834861,0.996039079956927,0.994721452110417,0.993405653450905,0.992093098553242,0.990787429040773, +00:18:27,1,1,1,0.998678755712708,0.997359166046827,0.996040824253899,0.994723777194717,0.99340855877452,0.992096582891023,0.99079148943764, +00:18:28,1,1,1,0.998679336795317,0.997360327727313,0.996042566254533,0.994726099218441,0.993411460274191,0.992100062643104,0.990795544490832, +00:18:29,1,1,1,0.998679917113528,0.997361487879685,0.996044305963879,0.994728418188318,0.993414357958321,0.99210353781956,0.990799594212085, +00:18:30,1,1,1,0.998680496669022,0.997362646507303,0.996046043386971,0.994730734111053,0.993417251835286,0.992107008430434,0.9908036386131, +00:18:31,1,1,1,0.998681075463473,0.997363803613514,0.996047778528827,0.994733046993332,0.993420141913436,0.992110474485737,0.990807677705543, +00:18:32,1,1,1,0.998681653498551,0.997364959201655,0.996049511394448,0.994735356841821,0.993423028201099,0.992113935995451,0.990811711501043, +00:18:33,1,1,1,0.998682230775921,0.997366113275054,0.996051241988824,0.994737663663165,0.993425910706573,0.992117392969527,0.990815740011195, +00:18:34,1,1,1,0.998682807297242,0.997367265837027,0.996052970316927,0.994739967463991,0.993428789438135,0.992120845417888,0.990819763247558, +00:18:35,1,1,1,0.998683383064169,0.997368416890882,0.996054696383713,0.994742268250903,0.993431664404035,0.992124293350424,0.990823781221657, +00:18:36,1,1,1,0.99868395807835,0.997369566439915,0.996056420194127,0.994744566030486,0.993434535612498,0.992127736776997,0.990827793944981, +00:18:37,1,1,1,0.998684532341431,0.997370714487415,0.996058141753094,0.994746860809306,0.993437403071723,0.992131175707437,0.990831801428985, +00:18:38,1,1,1,0.998685105855052,0.997371861036657,0.996059861065529,0.994749152593909,0.993440266789888,0.992134610151548,0.99083580368509, +00:18:39,1,1,1,0.998685678620846,0.99737300609091,0.996061578136328,0.99475144139082,0.993443126775143,0.992138040119101,0.990839800724681, +00:18:40,1,1,1,0.998686250640443,0.997374149653431,0.996063292970375,0.994753727206545,0.993445983035614,0.99214146561984,0.99084379255911, +00:18:41,1,1,1,0.998686821915468,0.997375291727467,0.996065005572538,0.994756010047571,0.993448835579403,0.992144886663477,0.990847779199694, +00:18:42,1,1,1,0.998687392447541,0.997376432316256,0.996066715947671,0.994758289920365,0.993451684414588,0.992148303259698,0.990851760657718, +00:18:43,1,1,1,0.998687962238277,0.997377571423026,0.996068424100612,0.994760566831375,0.993454529549223,0.992151715418158,0.990855736944429, +00:18:44,1,1,1,0.998688531289286,0.997378709050996,0.996070130036187,0.994762840787028,0.993457370991335,0.992155123148481,0.990859708071044, +00:18:45,1,1,1,0.998689099602173,0.997379845203375,0.996071833759205,0.994765111793734,0.99346020874893,0.992158526460268,0.990863674048745, +00:18:46,1,1,1,0.998689667178538,0.99738097988336,0.996073535274463,0.994767379857882,0.99346304282999,0.992161925363085,0.990867634888681, +00:18:47,1,1,1,0.998690234019978,0.997382113094143,0.99607523458674,0.994769644985843,0.993465873242471,0.992165319866472,0.990871590601967, +00:18:48,1,1,1,0.998690800128083,0.997383244838902,0.996076931700805,0.994771907183968,0.993468699994306,0.992168709979942,0.990875541199684, +00:18:49,1,1,1,0.998691365504439,0.997384375120809,0.996078626621409,0.994774166458589,0.993471523093406,0.992172095712977,0.990879486692881, +00:18:50,1,1,1,0.998691930150628,0.997385503943023,0.996080319353291,0.99477642281602,0.993474342547655,0.992175477075031,0.990883427092575, +00:18:51,1,1,1,0.998692494068226,0.997386631308697,0.996082009901175,0.994778676262557,0.993477158364917,0.992178854075532,0.990887362409748, +00:18:52,1,1,1,0.998693057258805,0.997387757220973,0.996083698269773,0.994780926804473,0.99347997055303,0.992182226723877,0.99089129265535, +00:18:53,1,1,1,0.998693619723932,0.997388881682983,0.996085384463778,0.994783174448028,0.993482779119809,0.992185595029436,0.9908952178403, +00:18:54,1,1,1,0.99869418146517,0.99739000469785,0.996087068487875,0.994785419199459,0.993485584073048,0.992188959001553,0.990899137975481, +00:18:55,1,1,1,0.998694742484077,0.997391126268689,0.99608875034673,0.994787661064986,0.993488385420515,0.992192318649542,0.990903053071747, +00:18:56,1,1,1,0.998695302782205,0.997392246398604,0.996090430044999,0.99478990005081,0.993491183169955,0.992195673982689,0.990906963139918, +00:18:57,1,1,1,0.998695862361105,0.997393365090692,0.996092107587321,0.994792136163115,0.993493977329093,0.992199025010255,0.990910868190782, +00:18:58,1,1,1,0.998696421222319,0.997394482348037,0.996093782978324,0.994794369408066,0.993496767905628,0.99220237174147,0.990914768235096, +00:18:59,1,1,1,0.998696979367387,0.997395598173718,0.99609545622262,0.994796599791808,0.993499554907238,0.992205714185541,0.990918663283585, +00:19:00,1,1,1,0.998697536797845,0.997396712570803,0.996097127324808,0.994798827320471,0.993502338341577,0.992209052351643,0.990922553346941, +00:19:01,1,1,1,0.998698093515221,0.99739782554235,0.996098796289475,0.994801052000163,0.993505118216277,0.992212386248928,0.990926438435825, +00:19:02,1,1,1,0.998698649521043,0.997398937091409,0.996100463121192,0.994803273836977,0.993507894538946,0.992215715886517,0.990930318560867, +00:19:03,1,1,1,0.998699204816832,0.997400047221022,0.996102127824518,0.994805492836987,0.993510667317173,0.992219041273509,0.990934193732665, +00:19:04,1,1,1,0.998699759404103,0.99740115593422,0.996103790403998,0.99480770900625,0.993513436558521,0.992222362418971,0.990938063961786, +00:19:05,1,1,1,0.998700313284371,0.997402263234026,0.996105450864164,0.994809922350802,0.993516202270533,0.992225679331947,0.990941929258766, +00:19:06,1,1,1,0.998700866459142,0.997403369123455,0.996107109209534,0.994812132876665,0.993518964460729,0.992228992021452,0.99094578963411, +00:19:07,1,1,1,0.99870141892992,0.997404473605511,0.996108765444613,0.994814340589841,0.993521723136605,0.992232300496475,0.990949645098292, +00:19:08,1,1,1,0.998701970698203,0.997405576683191,0.996110419573893,0.994816545496316,0.993524478305639,0.992235604765981,0.990953495661754, +00:19:09,1,1,1,0.998702521765488,0.997406678359482,0.996112071601852,0.994818747602055,0.993527229975284,0.992238904838905,0.990957341334909, +00:19:10,1,1,1,0.998703072133263,0.997407778637363,0.996113721532956,0.994820946913011,0.993529978152971,0.992242200724158,0.990961182128139, +00:19:11,1,1,1,0.998703621803014,0.997408877519803,0.996115369371657,0.994823143435114,0.993532722846111,0.992245492430625,0.990965018051795, +00:19:12,1,1,1,0.998704170776224,0.997409975009766,0.996117015122395,0.99482533717428,0.993535464062092,0.992248779967163,0.9909688491162, +00:19:13,1,1,1,0.998704719054369,0.997411071110202,0.996118658789595,0.994827528136407,0.993538201808281,0.992252063342605,0.990972675331642, +00:19:14,1,1,1,0.998705266638921,0.997412165824055,0.99612030037767,0.994829716327374,0.993540936092022,0.992255342565758,0.990976496708384, +00:19:15,1,1,1,0.99870581353135,0.997413259154262,0.996121939891022,0.994831901753046,0.993543666920641,0.992258617645401,0.990980313256655, +00:19:16,1,1,1,0.99870635973312,0.997414351103749,0.996123577334037,0.994834084419268,0.993546394301438,0.992261888590291,0.990984124986658, +00:19:17,1,1,1,0.99870690524569,0.997415441675433,0.996125212711091,0.994836264331869,0.993549118241695,0.992265155409158,0.990987931908563, +00:19:18,1,1,1,0.998707450070516,0.997416530872225,0.996126846026545,0.994838441496662,0.993551838748672,0.992268418110704,0.990991734032511, +00:19:19,1,1,1,0.998707994209049,0.997417618697026,0.996128477284748,0.99484061591944,0.993554555829607,0.992271676703609,0.990995531368615, +00:19:20,1,1,1,0.998708537662737,0.997418705152729,0.996130106490037,0.994842787605984,0.993557269491717,0.992274931196526,0.990999323926957, +00:19:21,1,1,1,0.998709080433023,0.997419790242217,0.996131733646735,0.994844956562053,0.9935599797422,0.992278181598084,0.991003111717591, +00:19:22,1,1,1,0.998709622521345,0.997420873968367,0.996133358759155,0.994847122793393,0.993562686588231,0.992281427916886,0.99100689475054, +00:19:23,1,1,1,0.998710163929138,0.997421956334046,0.996134981831594,0.994849286305731,0.993565390036965,0.992284670161511,0.991010673035801, +00:19:24,1,1,1,0.998710704657832,0.997423037342114,0.99613660286834,0.994851447104779,0.993568090095535,0.992287908340512,0.991014446583337, +00:19:25,1,1,1,0.998711244708854,0.997424116995422,0.996138221873666,0.994853605196232,0.993570786771055,0.992291142462417,0.991018215403088, +00:19:26,1,1,1,0.998711784083625,0.997425195296811,0.996139838851833,0.994855760585768,0.993573480070619,0.992294372535731,0.991021979504961, +00:19:27,1,1,1,0.998712322783565,0.997426272249117,0.996141453807091,0.994857913279048,0.993576170001297,0.992297598568933,0.991025738898835, +00:19:28,1,1,1,0.998712860810085,0.997427347855166,0.996143066743676,0.994860063281719,0.993578856570142,0.992300820570478,0.991029493594563, +00:19:29,1,1,1,0.998713398164597,0.997428422117776,0.996144677665813,0.994862210599409,0.993581539784186,0.992304038548796,0.991033243601966, +00:19:30,1,1,1,0.998713934848507,0.997429495039756,0.996146286577715,0.994864355237732,0.993584219650439,0.992307252512293,0.99103698893084, +00:19:31,1,1,1,0.998714470863215,0.997430566623909,0.996147893483582,0.994866497202283,0.993586896175892,0.992310462469352,0.99104072959095, +00:19:32,1,1,1,0.998715006210119,0.997431636873029,0.996149498387601,0.994868636498644,0.993589569367517,0.99231366842833,0.991044465592035, +00:19:33,1,1,1,0.998715540890614,0.9974327057899,0.99615110129395,0.994870773132379,0.993592239232263,0.992316870397561,0.991048196943804, +00:19:34,1,1,1,0.998716074906087,0.997433773377301,0.996152702206792,0.994872907109037,0.993594905777062,0.992320068385355,0.991051923655939, +00:19:35,1,1,1,0.998716608257927,0.997434839638001,0.996154301130278,0.994875038434149,0.993597569008824,0.992323262399997,0.991055645738095, +00:19:36,1,1,1,0.998717140947513,0.997435904574762,0.99615589806855,0.994877167113234,0.99360022893444,0.992326452449749,0.991059363199899, +00:19:37,1,1,1,0.998717672976223,0.997436968190339,0.996157493025736,0.994879293151791,0.993602885560782,0.992329638542851,0.991063076050949, +00:19:38,1,1,1,0.998718204345432,0.997438030487475,0.996159086005951,0.994881416555306,0.993605538894701,0.992332820687517,0.991066784300818, +00:19:39,1,1,1,0.998718735056508,0.99743909146891,0.996160677013301,0.994883537329247,0.993608188943029,0.992335998891938,0.991070487959048, +00:19:40,1,1,1,0.998719265110818,0.997440151137375,0.996162266051879,0.99488565547907,0.993610835712578,0.992339173164282,0.991074187035157, +00:19:41,1,1,1,0.998719794509724,0.99744120949559,0.996163853125765,0.994887771010211,0.993613479210141,0.992342343512693,0.991077881538635, +00:19:42,1,1,1,0.998720323254583,0.997442266546271,0.99616543823903,0.994889883928094,0.993616119442492,0.992345509945293,0.991081571478944, +00:19:43,1,1,1,0.99872085134675,0.997443322292124,0.99616702139573,0.994891994238125,0.993618756416384,0.99234867247018,0.991085256865519, +00:19:44,1,1,1,0.998721378787576,0.997444376735849,0.996168602599912,0.994894101945696,0.993621390138552,0.992351831095429,0.991088937707769, +00:19:45,1,1,1,0.998721905578405,0.997445429880137,0.996170181855612,0.994896207056183,0.993624020615713,0.992354985829091,0.991092614015076, +00:19:46,1,1,1,0.998722431720582,0.997446481727672,0.996171759166852,0.994898309574948,0.993626647854562,0.992358136679197,0.991096285796796, +00:19:47,1,1,1,0.998722957215444,0.997447532281129,0.996173334537644,0.994900409507335,0.993629271861777,0.992361283653751,0.991099953062256, +00:19:48,1,1,1,0.998723482064327,0.997448581543178,0.996174907971989,0.994902506858676,0.993631892644017,0.992364426760738,0.991103615820758, +00:19:49,1,1,1,0.998724006268563,0.997449629516479,0.996176479473875,0.994904601634286,0.993634510207921,0.992367566008119,0.991107274081579, +00:19:50,1,1,1,0.998724529829477,0.997450676203685,0.99617804904728,0.994906693839465,0.99363712456011,0.992370701403831,0.991110927853967, +00:19:51,1,1,1,0.998725052748394,0.997451721607442,0.996179616696172,0.994908783479498,0.993639735707187,0.99237383295579,0.991114577147147, +00:19:52,1,1,1,0.998725575026634,0.997452765730388,0.996181182424503,0.994910870559656,0.993642343655733,0.99237696067189,0.991118221970313, +00:19:53,1,1,1,0.998726096665513,0.997453808575155,0.99618274623622,0.994912955085194,0.993644948412314,0.992380084560002,0.991121862332639, +00:19:54,1,1,1,0.998726617666343,0.997454850144365,0.996184308135254,0.994915037061352,0.993647549983476,0.992383204627975,0.991125498243268, +00:19:55,1,1,1,0.998727138030433,0.997455890440635,0.996185868125527,0.994917116493356,0.993650148375747,0.992386320883634,0.99112912971132, +00:19:56,1,1,1,0.998727657759088,0.997456929466573,0.996187426210951,0.994919193386418,0.993652743595636,0.992389433334785,0.991132756745889, +00:19:57,1,1,1,0.998728176853609,0.99745796722478,0.996188982395424,0.994921267745732,0.993655335649633,0.99239254198921,0.991136379356042, +00:19:58,1,1,1,0.998728695315295,0.99745900371785,0.996190536682835,0.994923339576481,0.993657924544212,0.99239564685467,0.991139997550822, +00:19:59,1,1,1,0.998729213145437,0.99746003894837,0.996192089077061,0.994925408883833,0.993660510285826,0.992398747938902,0.991143611339245, +00:20:00,1,1,1,0.998729730345328,0.997461072918919,0.99619363958197,0.994927475672938,0.993663092880911,0.992401845249625,0.991147220730303, +00:20:01,1,1,1,0.998730246916254,0.997462105632069,0.996195188201417,0.994929539948935,0.993665672335887,0.992404938794533,0.991150825732963, +00:20:02,1,1,1,0.998730762859497,0.997463137090384,0.996196734939247,0.994931601716948,0.993668248657152,0.992408028581301,0.991154426356165, +00:20:03,1,1,1,0.998731278176338,0.997464167296422,0.996198279799295,0.994933660982086,0.993670821851088,0.99241111461758,0.991158022608826, +00:20:04,1,1,1,0.998731792868052,0.997465196252734,0.996199822785383,0.994935717749443,0.993673391924061,0.992414196911,0.991161614499835, +00:20:05,1,1,1,0.998732306935911,0.997466223961862,0.996201363901325,0.9949377720241,0.993675958882415,0.992417275469172,0.99116520203806, +00:20:06,1,1,1,0.998732820381184,0.997467250426343,0.996202903150922,0.994939823811123,0.99367852273248,0.992420350299683,0.991168785232342, +00:20:07,1,1,1,0.998733333205137,0.997468275648707,0.996204440537967,0.994941873115565,0.993681083480567,0.992423421410099,0.991172364091498, +00:20:08,1,1,1,0.998733845409031,0.997469299631474,0.996205976066238,0.994943919942463,0.993683641132969,0.992426488807968,0.991175938624319, +00:20:09,1,1,1,0.998734356994124,0.997470322377159,0.996207509739508,0.994945964296841,0.993686195695961,0.992429552500812,0.991179508839572, +00:20:10,1,1,1,0.998734867961671,0.997471343888271,0.996209041561535,0.994948006183709,0.993688747175802,0.992432612496136,0.991183074746001, +00:20:11,1,1,1,0.998735378312923,0.99747236416731,0.99621057153607,0.994950045608063,0.993691295578733,0.992435668801423,0.991186636352325, +00:20:12,1,1,1,0.998735888049127,0.997473383216771,0.996212099666849,0.994952082574885,0.993693840910976,0.992438721424134,0.991190193667236, +00:20:13,1,1,1,0.998736397171527,0.997474401039139,0.996213625957602,0.994954117089144,0.993696383178737,0.99244177037171,0.991193746699407, +00:20:14,1,1,1,0.998736905681365,0.997475417636896,0.996215150412047,0.994956149155792,0.993698922388206,0.992444815651571,0.991197295457483, +00:20:15,1,1,1,0.998737413579877,0.997476433012514,0.996216673033892,0.994958178779772,0.993701458545554,0.992447857271118,0.991200839950085, +00:20:16,1,1,1,0.998737920868297,0.997477447168459,0.996218193826833,0.994960205966009,0.993703991656935,0.99245089523773,0.991204380185812, +00:20:17,1,1,1,0.998738427547856,0.997478460107191,0.996219712794559,0.994962230719417,0.993706521728487,0.992453929558765,0.991207916173239, +00:20:18,1,1,1,0.99873893361978,0.997479471831162,0.996221229940744,0.994964253044895,0.99370904876633,0.992456960241562,0.991211447920915, +00:20:19,1,1,1,0.998739439085293,0.997480482342819,0.996222745269057,0.99496627294733,0.993711572776567,0.992459987293439,0.991214975437368, +00:20:20,1,1,1,0.998739943945615,0.9974814916446,0.996224258783154,0.994968290431593,0.993714093765285,0.992463010721694,0.9912184987311, +00:20:21,1,1,1,0.998740448201963,0.997482499738937,0.996225770486681,0.994970305502544,0.993716611738553,0.992466030533604,0.991222017810592, +00:20:22,1,1,1,0.998740951855551,0.997483506628256,0.996227280383274,0.994972318165028,0.993719126702425,0.992469046736426,0.9912255326843, +00:20:23,1,1,1,0.998741454907588,0.997484512314976,0.99622878847656,0.994974328423877,0.993721638662936,0.9924720593374,0.991229043360657, +00:20:24,1,1,1,0.998741957359281,0.997485516801508,0.996230294770155,0.99497633628391,0.993724147626107,0.992475068343741,0.991232549848072, +00:20:25,1,1,1,0.998742459211833,0.997486520090259,0.996231799267665,0.994978341749933,0.993726653597939,0.992478073762648,0.991236052154933, +00:20:26,1,1,1,0.998742960466445,0.997487522183627,0.996233301972687,0.994980344826738,0.99372915658442,0.992481075601298,0.991239550289602, +00:20:27,1,1,1,0.998743461124313,0.997488523084005,0.996234802888807,0.994982345519104,0.993731656591519,0.99248407386685,0.991243044260421, +00:20:28,1,1,1,0.99874396118663,0.997489522793777,0.996236302019601,0.994984343831796,0.993734153625191,0.992487068566442,0.991246534075707, +00:20:29,1,1,1,0.998744460654588,0.997490521315324,0.996237799368636,0.994986339769568,0.993736647691371,0.992490059707193,0.991250019743754, +00:20:30,1,1,1,0.998744959529372,0.997491518651017,0.99623929493947,0.99498833333716,0.993739138795982,0.992493047296203,0.991253501272835, +00:20:31,1,1,1,0.998745457812167,0.997492514803224,0.996240788735648,0.994990324539298,0.993741626944927,0.992496031340551,0.991256978671199, +00:20:32,1,1,1,0.998745955504153,0.997493509774302,0.99624228076071,0.994992313380696,0.993744112144095,0.992499011847297,0.991260451947073, +00:20:33,1,1,1,0.998746452606507,0.997494503566607,0.996243771018182,0.994994299866056,0.993746594399359,0.992501988823483,0.991263921108661, +00:20:34,1,1,1,0.998746949120403,0.997495496182483,0.996245259511583,0.994996284000064,0.993749073716575,0.992504962276131,0.991267386164145, +00:20:35,1,1,1,0.998747445047011,0.997496487624272,0.996246746244422,0.994998265787398,0.993751550101583,0.992507932212243,0.991270847121684, +00:20:36,1,1,1,0.9987479403875,0.997497477894307,0.996248231220196,0.995000245232718,0.993754023560208,0.992510898638804,0.991274303989416, +00:20:37,1,1,1,0.998748435143033,0.997498466994915,0.996249714442396,0.995002222340675,0.993756494098257,0.992513861562777,0.991277756775456, +00:20:38,1,1,1,0.998748929314773,0.997499454928419,0.996251195914501,0.995004197115905,0.993758961721525,0.992516820991108,0.991281205487895, +00:20:39,1,1,1,0.998749422903875,0.997500441697132,0.996252675639982,0.995006169563034,0.993761426435786,0.992519776930724,0.991284650134806, +00:20:40,1,1,1,0.998749915911497,0.997501427303363,0.996254153622299,0.995008139686673,0.993763888246803,0.992522729388532,0.991288090724238, +00:20:41,1,1,1,0.998750408338789,0.997502411749415,0.996255629864904,0.995010107491422,0.993766347160321,0.992525678371422,0.991291527264216, +00:20:42,1,1,1,0.9987509001869,0.997503395037583,0.99625710437124,0.995012072981867,0.99376880318207,0.992528623886264,0.991294959762747, +00:20:43,1,1,1,0.998751391456975,0.997504377170156,0.996258577144738,0.995014036162582,0.993771256317764,0.99253156593991,0.991298388227814, +00:20:44,1,1,1,0.998751882150157,0.99750535814942,0.996260048188822,0.99501599703813,0.993773706573102,0.992534504539192,0.991301812667378, +00:20:45,1,1,1,0.998752372267585,0.99750633797765,0.996261517506907,0.99501795561306,0.993776153953767,0.992537439690926,0.991305233089381, +00:20:46,1,1,1,0.998752861810395,0.997507316657117,0.996262985102397,0.99501991189191,0.993778598465428,0.992540371401907,0.99130864950174, +00:20:47,1,1,1,0.99875335077972,0.997508294190088,0.996264450978688,0.995021865879203,0.993781040113736,0.992543299678912,0.991312061912353, +00:20:48,1,1,1,0.99875383917669,0.99750927057882,0.996265915139166,0.995023817579454,0.993783478904329,0.992546224528703,0.991315470329097, +00:20:49,1,1,1,0.998754327002432,0.997510245825567,0.996267377587209,0.995025766997162,0.993785914842829,0.992549145958018,0.991318874759825, +00:20:50,1,1,1,0.998754814258071,0.997511219932574,0.996268838326185,0.995027714136817,0.993788347934844,0.992552063973583,0.991322275212371, +00:20:51,1,1,1,0.998755300944726,0.997512192902083,0.996270297359452,0.995029659002893,0.993790778185964,0.9925549785821,0.991325671694549, +00:20:52,1,1,1,0.998755787063516,0.997513164736328,0.996271754690362,0.995031601599856,0.993793205601767,0.992557889790258,0.991329064214148, +00:20:53,1,1,1,0.998756272615555,0.997514135437538,0.996273210322254,0.995033541932157,0.993795630187814,0.992560797604724,0.99133245277894, +00:20:54,1,1,1,0.998756757601956,0.997515105007935,0.996274664258462,0.995035480004237,0.993798051949652,0.99256370203215,0.991335837396674, +00:20:55,1,1,1,0.998757242023827,0.997516073449735,0.996276116502308,0.995037415820523,0.993800470892813,0.992566603079169,0.991339218075079, +00:20:56,1,1,1,0.998757725882275,0.997517040765149,0.996277567057105,0.995039349385433,0.993802887022813,0.992569500752395,0.991342594821862, +00:20:57,1,1,1,0.998758209178401,0.997518006956382,0.996279015926161,0.995041280703371,0.993805300345155,0.992572395058426,0.991345967644711, +00:20:58,1,1,1,0.998758691913306,0.997518972025633,0.996280463112769,0.995043209778729,0.993807710865327,0.992575286003842,0.991349336551292, +00:20:59,1,1,1,0.998759174088087,0.997519935975094,0.996281908620219,0.995045136615888,0.9938101185888,0.992578173595204,0.991352701549252, +00:21:00,1,1,1,0.998759655703837,0.997520898806952,0.996283352451789,0.995047061219217,0.993812523521033,0.992581057839057,0.991356062646215, +00:21:01,1,1,1,0.998760136761649,0.997521860523388,0.996284794610749,0.995048983593075,0.99381492566747,0.992583938741929,0.991359419849789, +00:21:02,1,1,1,0.99876061726261,0.997522821126578,0.996286235100359,0.995050903741806,0.993817325033538,0.992586816310327,0.991362773167556, +00:21:03,1,1,1,0.998761097207805,0.99752378061869,0.996287673923873,0.995052821669744,0.993819721624653,0.992589690550746,0.991366122607082, +00:21:04,1,1,1,0.998761576598317,0.997524739001889,0.996289111084534,0.995054737381213,0.993822115446215,0.992592561469659,0.991369468175911, +00:21:05,1,1,1,0.998762055435225,0.997525696278332,0.996290546585577,0.995056650880524,0.993824506503608,0.992595429073524,0.991372809881568, +00:21:06,1,1,1,0.998762533719606,0.997526652450171,0.996291980430229,0.995058562171975,0.993826894802205,0.992598293368781,0.991376147731556, +00:21:07,1,1,1,0.998763011452533,0.997527607519554,0.996293412621708,0.995060471259856,0.993829280347361,0.992601154361854,0.991379481733361, +00:21:08,1,1,1,0.998763488635078,0.997528561488619,0.996294843163222,0.995062378148442,0.99383166314442,0.992604012059149,0.991382811894446, +00:21:09,1,1,1,0.998763965268309,0.997529514359503,0.996296272057973,0.995064282841999,0.993834043198709,0.992606866467054,0.991386138222256, +00:21:10,1,1,1,0.99876444135329,0.997530466134335,0.996297699309153,0.995066185344782,0.993836420515544,0.992609717591942,0.991389460724216, +00:21:11,1,1,1,0.998764916891084,0.997531416815237,0.996299124919946,0.995068085661033,0.993838795100224,0.992612565440168,0.991392779407732, +00:21:12,1,1,1,0.99876539188275,0.997532366404329,0.996300548893526,0.995069983794983,0.993841166958035,0.99261541001807,0.991396094280187, +00:21:13,1,1,1,0.998765866329346,0.997533314903722,0.996301971233062,0.995071879750852,0.993843536094249,0.99261825133197,0.99139940534895, +00:21:14,1,1,1,0.998766340231925,0.997534262315523,0.996303391941711,0.99507377353285,0.993845902514125,0.992621089388173,0.991402712621364, +00:21:15,1,1,1,0.998766813591538,0.997535208641834,0.996304811022623,0.995075665145175,0.993848266222907,0.992623924192966,0.991406016104759, +00:21:16,1,1,1,0.998767286409233,0.997536153884749,0.996306228478941,0.995077554592013,0.993850627225824,0.992626755752622,0.991409315806441, +00:21:17,1,1,1,0.998767758686057,0.99753709804636,0.996307644313797,0.995079441877539,0.993852985528094,0.992629584073395,0.991412611733699, +00:21:18,1,1,1,0.998768230423052,0.99753804112875,0.996309058530318,0.99508132700592,0.993855341134919,0.992632409161523,0.991415903893802, +00:21:19,1,1,1,0.998768701621258,0.997538983133999,0.99631047113162,0.995083209981309,0.993857694051488,0.99263523102323,0.991419192293999, +00:21:20,1,1,1,0.998769172281712,0.99753992406418,0.996311882120812,0.995085090807847,0.993860044282976,0.992638049664719,0.991422476941522, +00:21:21,1,1,1,0.998769642405449,0.997540863921361,0.996313291500994,0.995086969489668,0.993862391834546,0.992640865092181,0.991425757843582, +00:21:22,1,1,1,0.998770111993501,0.997541802707605,0.99631469927526,0.995088846030893,0.993864736711346,0.992643677311789,0.991429035007373, +00:21:23,1,1,1,0.998770581046896,0.997542740424969,0.996316105446692,0.99509072043563,0.993867078918509,0.9926464863297,0.991432308440068, +00:21:24,1,1,1,0.998771049566662,0.997543677075505,0.996317510018367,0.99509259270798,0.993869418461157,0.992649292152052,0.991435578148821, +00:21:25,1,1,1,0.998771517553822,0.997544612661259,0.996318912993355,0.995094462852031,0.993871755344398,0.992652094784973,0.991438844140771, +00:21:26,1,1,1,0.998771985009397,0.997545547184273,0.996320314374713,0.995096330871862,0.993874089573326,0.992654894234569,0.991442106423033, +00:21:27,1,1,1,0.998772451934406,0.997546480646582,0.996321714165495,0.995098196771539,0.993876421153021,0.992657690506933,0.991445365002708, +00:21:28,1,1,1,0.998772918329863,0.997547413050216,0.996323112368745,0.995100060555119,0.993878750088552,0.992660483608142,0.991448619886875, +00:21:29,1,1,1,0.998773384196783,0.997548344397201,0.996324508987498,0.995101922226647,0.993881076384973,0.992663273544256,0.991451871082597, +00:21:30,1,1,1,0.998773849536176,0.997549274689556,0.996325904024783,0.99510378179016,0.993883400047326,0.99266606032132,0.991455118596916, +00:21:31,1,1,1,0.998774314349049,0.997550203929295,0.99632729748362,0.995105639249682,0.993885721080637,0.992668843945364,0.991458362436858, +00:21:32,1,1,1,0.998774778636407,0.997551132118429,0.99632868936702,0.995107494609227,0.993888039489921,0.992671624422399,0.99146160260943, +00:21:33,1,1,1,0.998775242399253,0.99755205925896,0.99633007967799,0.995109347872798,0.993890355280182,0.992674401758423,0.991464839121619, +00:21:34,1,1,1,0.998775705638587,0.997552985352888,0.996331468419525,0.99511119904439,0.993892668456407,0.99267717595942,0.991468071980396, +00:21:35,1,1,1,0.998776168355405,0.997553910402206,0.996332855594613,0.995113048127986,0.993894979023571,0.992679947031354,0.991471301192714, +00:21:36,1,1,1,0.998776630550704,0.997554834408902,0.996334241206237,0.995114895127557,0.993897286986639,0.992682714980177,0.991474526765506, +00:21:37,1,1,1,0.998777092225475,0.99755575737496,0.996335625257369,0.995116740047066,0.993899592350559,0.992685479811824,0.991477748705688, +00:21:38,1,1,1,0.998777553380706,0.997556679302357,0.996337007750975,0.995118582890466,0.993901895120269,0.992688241532215,0.991480967020158, +00:21:39,1,1,1,0.998778014017386,0.997557600193066,0.996338388690012,0.995120423661697,0.993904195300693,0.992691000147254,0.991484181715796, +00:21:40,1,1,1,0.998778474136498,0.997558520049056,0.996339768077431,0.995122262364691,0.993906492896742,0.992693755662832,0.991487392799465, +00:21:41,1,1,1,0.998778933739025,0.997559438872288,0.996341145916175,0.99512409900337,0.993908787913316,0.99269650808482,0.991490600278009, +00:21:42,1,1,1,0.998779392825946,0.997560356664721,0.996342522209178,0.995125933581644,0.993911080355299,0.99269925741908,0.991493804158254, +00:21:43,1,1,1,0.998779851398237,0.997561273428306,0.996343896959367,0.995127766103416,0.993913370227566,0.992702003671453,0.99149700444701, +00:21:44,1,1,1,0.998780309456872,0.997562189164992,0.996345270169662,0.995129596572574,0.993915657534977,0.992704746847769,0.991500201151069, +00:21:45,1,1,1,0.998780767002824,0.99756310387672,0.996346641842975,0.995131424993001,0.993917942282381,0.992707486953841,0.991503394277204, +00:21:46,1,1,1,0.998781224037061,0.997564017565428,0.996348011982212,0.995133251368568,0.993920224474613,0.992710223995468,0.991506583832171, +00:21:47,1,1,1,0.99878168056055,0.997564930233048,0.996349380590268,0.995135075703134,0.993922504116496,0.992712957978432,0.991509769822711, +00:21:48,1,1,1,0.998782136574255,0.997565841881507,0.996350747670034,0.995136898000551,0.993924781212841,0.992715688908504,0.991512952255544, +00:21:49,1,1,1,0.998782592079139,0.997566752512729,0.996352113224392,0.99513871826466,0.993927055768447,0.992718416791435,0.991516131137375, +00:21:50,1,1,1,0.998783047076159,0.99756766212863,0.996353477256217,0.995140536499292,0.9939293277881,0.992721141632966,0.991519306474892, +00:21:51,1,1,1,0.998783501566274,0.997568570731123,0.996354839768375,0.995142352708268,0.993931597276573,0.992723863438821,0.991522478274763, +00:21:52,1,1,1,0.998783955550436,0.997569478322116,0.996356200763728,0.9951441668954,0.993933864238628,0.992726582214708,0.991525646543642, +00:21:53,1,1,1,0.998784409029599,0.997570384903511,0.996357560245128,0.995145979064489,0.993936128679014,0.992729297966323,0.991528811288165, +00:21:54,1,1,1,0.998784862004711,0.997571290477206,0.99635891821542,0.995147789219327,0.993938390602468,0.992732010699346,0.99153197251495, +00:21:55,1,1,1,0.998785314476719,0.997572195045094,0.996360274677441,0.995149597363697,0.993940650013715,0.992734720419443,0.9915351302306, +00:21:56,1,1,1,0.998785766446568,0.997573098609063,0.996361629634024,0.995151403501369,0.993942906917468,0.992737427132264,0.991538284441698, +00:21:57,1,1,1,0.9987862179152,0.997574001170996,0.996362983087992,0.995153207636108,0.993945161318428,0.992740130843447,0.991541435154814, +00:21:58,1,1,1,0.998786668883555,0.997574902732773,0.99636433504216,0.995155009771667,0.993947413221283,0.992742831558614,0.991544582376498, +00:21:59,1,1,1,0.99878711935257,0.997575803296265,0.996365685499337,0.995156809911789,0.993949662630711,0.992745529283372,0.991547726113284, +00:22:00,1,1,1,0.998787569323179,0.997576702863343,0.996367034462327,0.995158608060208,0.993951909551375,0.992748224023316,0.991550866371691, +00:22:01,1,1,1,0.998788018796316,0.99757760143587,0.996368381933923,0.995160404220648,0.993954153987929,0.992750915784024,0.99155400315822, +00:22:02,1,1,1,0.99878846777291,0.997578499015706,0.996369727916913,0.995162198396824,0.993956395945015,0.992753604571061,0.991557136479355, +00:22:03,1,1,1,0.998788916253889,0.997579395604706,0.996371072414079,0.995163990592443,0.99395863542726,0.99275629038998,0.991560266341565, +00:22:04,1,1,1,0.998789364240179,0.997580291204718,0.996372415428192,0.9951657808112,0.993960872439283,0.992758973246315,0.991563392751301, +00:22:05,1,1,1,0.998789811732703,0.997581185817588,0.996373756962019,0.995167569056781,0.993963106985689,0.992761653145591,0.991566515714999, +00:22:06,1,1,1,0.99879025873238,0.997582079445157,0.996375097018321,0.995169355332865,0.993965339071073,0.992764330093316,0.991569635239077, +00:22:07,1,1,1,0.998790705240131,0.99758297208926,0.996376435599849,0.995171139643118,0.993967568700016,0.992767004094983,0.991572751329937, +00:22:08,1,1,1,0.99879115125687,0.997583863751728,0.996377772709348,0.9951729219912,0.993969795877089,0.992769675156075,0.991575863993967, +00:22:09,1,1,1,0.998791596783511,0.997584754434389,0.996379108349557,0.99517470238076,0.993972020606852,0.992772343282059,0.991578973237536, +00:22:10,1,1,1,0.998792041820966,0.997585644139063,0.996380442523208,0.995176480815437,0.993974242893851,0.992775008478386,0.991582079066999, +00:22:11,1,1,1,0.998792486370143,0.997586532867569,0.996381775233024,0.995178257298864,0.993976462742624,0.992777670750496,0.991585181488692, +00:22:12,1,1,1,0.99879293043195,0.997587420621717,0.996383106481724,0.995180031834661,0.993978680157694,0.992780330103815,0.99158828050894, +00:22:13,1,1,1,0.998793374007291,0.997588307403318,0.996384436272018,0.995181804426441,0.993980895143574,0.992782986543755,0.991591376134046, +00:22:14,1,1,1,0.998793817097068,0.997589193214173,0.99638576460661,0.995183575077808,0.993983107704767,0.992785640075713,0.991594468370302, +00:22:15,1,1,1,0.998794259702181,0.997590078056082,0.996387091488198,0.995185343792355,0.993985317845762,0.992788290705074,0.991597557223981, +00:22:16,1,1,1,0.998794701823527,0.997590961930839,0.996388416919471,0.995187110573668,0.99398752557104,0.992790938437209,0.991600642701342, +00:22:17,1,1,1,0.998795143462003,0.997591844840235,0.996389740903113,0.995188875425324,0.993989730885066,0.992793583277475,0.991603724808627, +00:22:18,1,1,1,0.9987955846185,0.997592726786053,0.996391063441801,0.995190638350889,0.993991933792299,0.992796225231215,0.991606803552063, +00:22:19,1,1,1,0.998796025293911,0.997593607770076,0.996392384538204,0.995192399353921,0.993994134297182,0.992798864303762,0.991609878937862, +00:22:20,1,1,1,0.998796465489122,0.997594487794079,0.996393704194986,0.995194158437971,0.993996332404151,0.992801500500431,0.991612950972218, +00:22:21,1,1,1,0.998796905205022,0.997595366859835,0.996395022414804,0.995195915606577,0.993998528117628,0.992804133826525,0.991616019661313, +00:22:22,1,1,1,0.998797344442494,0.99759624496911,0.996396339200307,0.995197670863273,0.994000721442025,0.992806764287337,0.991619085011309, +00:22:23,1,1,1,0.998797783202419,0.997597122123669,0.996397654554138,0.995199424211579,0.994002912381743,0.992809391888141,0.991622147028357, +00:22:24,1,1,1,0.998798221485679,0.997597998325268,0.996398968478935,0.99520117565501,0.994005100941172,0.992812016634203,0.991625205718591, +00:22:25,1,1,1,0.998798659293149,0.997598873575663,0.996400280977327,0.995202925197072,0.99400728712469,0.992814638530773,0.991628261088128, +00:22:26,1,1,1,0.998799096625706,0.997599747876603,0.996401592051937,0.995204672841259,0.994009470936665,0.992817257583088,0.99163131314307, +00:22:27,1,1,1,0.998799533484222,0.997600621229833,0.996402901705383,0.99520641859106,0.994011652381454,0.992819873796373,0.991634361889508, +00:22:28,1,1,1,0.998799969869569,0.997601493637095,0.996404209940275,0.995208162449953,0.994013831463403,0.992822487175839,0.991637407333511, +00:22:29,1,1,1,0.998800405782615,0.997602365100126,0.996405516759216,0.995209904421409,0.994016008186847,0.992825097726685,0.991640449481139, +00:22:30,1,1,1,0.998800841224227,0.997603235620657,0.996406822164804,0.995211644508888,0.99401818255611,0.992827705454096,0.991643488338432, +00:22:31,1,1,1,0.998801276195269,0.997604105200416,0.996408126159629,0.995213382715843,0.994020354575507,0.992830310363244,0.99164652391142, +00:22:32,1,1,1,0.998801710696604,0.997604973841127,0.996409428746277,0.995215119045719,0.994022524249339,0.99283291245929,0.991649556206112, +00:22:33,1,1,1,0.998802144729092,0.99760584154451,0.996410729927324,0.995216853501951,0.994024691581899,0.992835511747379,0.991652585228507, +00:22:34,1,1,1,0.99880257829359,0.99760670831228,0.996412029705342,0.995218586087965,0.994026856577468,0.992838108232645,0.991655610984587, +00:22:35,1,1,1,0.998803011390954,0.997607574146147,0.996413328082897,0.995220316807182,0.994029019240317,0.992840701920211,0.99165863348032, +00:22:36,1,1,1,0.998803444022038,0.997608439047818,0.996414625062547,0.995222045663009,0.994031179574707,0.992843292815184,0.991661652721658, +00:22:37,1,1,1,0.998803876187695,0.997609303018996,0.996415920646844,0.99522377265885,0.994033337584885,0.99284588092266,0.991664668714538, +00:22:38,1,1,1,0.998804307888772,0.997610166061378,0.996417214838335,0.995225497798096,0.994035493275093,0.992848466247722,0.991667681464884, +00:22:39,1,1,1,0.998804739126119,0.997611028176659,0.99641850763956,0.995227221084134,0.994037646649558,0.992851048795441,0.991670690978605, +00:22:40,1,1,1,0.998805169900579,0.997611889366528,0.99641979905305,0.995228942520338,0.994039797712498,0.992853628570875,0.991673697261594, +00:22:41,1,1,1,0.998805600212996,0.997612749632671,0.996421089081335,0.995230662110077,0.99404194646812,0.992856205579069,0.991676700319731, +00:22:42,1,1,1,0.998806030064211,0.997613608976769,0.996422377726934,0.995232379856711,0.994044092920623,0.992858779825057,0.991679700158879, +00:22:43,1,1,1,0.998806459455064,0.997614467400499,0.996423664992362,0.99523409576359,0.994046237074193,0.992861351313858,0.99168269678489, +00:22:44,1,1,1,0.99880688838639,0.997615324905534,0.996424950880129,0.995235809834058,0.994048378933006,0.992863920050482,0.9916856902036, +00:22:45,1,1,1,0.998807316859026,0.997616181493544,0.996426235392735,0.995237522071449,0.994050518501229,0.992866486039923,0.991688680420828, +00:22:46,1,1,1,0.998807744873803,0.997617037166193,0.996427518532677,0.995239232479091,0.994052655783017,0.992869049287166,0.991691667442384, +00:22:47,1,1,1,0.998808172431553,0.997617891925141,0.996428800302446,0.995240941060301,0.994054790782517,0.992871609797181,0.991694651274059, +00:22:48,1,1,1,0.998808599533104,0.997618745772046,0.996430080704524,0.99524264781839,0.994056923503863,0.992874167574928,0.991697631921632, +00:22:49,1,1,1,0.998809026179283,0.99761959870856,0.99643135974139,0.995244352756659,0.994059053951181,0.992876722625354,0.991700609390866, +00:22:50,1,1,1,0.998809452370914,0.997620450736331,0.996432637415514,0.995246055878402,0.994061182128586,0.992879274953393,0.991703583687514, +00:22:51,1,1,1,0.998809878108821,0.997621301857004,0.996433913729364,0.995247757186907,0.994063308040184,0.992881824563967,0.991706554817309, +00:22:52,1,1,1,0.998810303393823,0.997622152072219,0.996435188685397,0.995249456685448,0.994065431690069,0.992884371461988,0.991709522785974, +00:22:53,1,1,1,0.99881072822674,0.997623001383613,0.996436462286068,0.995251154377298,0.994067553082326,0.992886915652353,0.991712487599218, +00:22:54,1,1,1,0.998811152608388,0.997623849792817,0.996437734533825,0.995252850265718,0.99406967222103,0.992889457139949,0.991715449262734, +00:22:55,1,1,1,0.998811576539581,0.997624697301461,0.996439005431107,0.99525454435396,0.994071789110246,0.992891995929651,0.991718407782202, +00:22:56,1,1,1,0.998812000021132,0.997625543911169,0.996440274980351,0.995256236645271,0.99407390375403,0.992894532026321,0.991721363163288, +00:22:57,1,1,1,0.998812423053852,0.99762638962356,0.996441543183987,0.99525792714289,0.994076016156425,0.99289706543481,0.991724315411645, +00:22:58,1,1,1,0.998812845638548,0.997627234440251,0.996442810044437,0.995259615850044,0.994078126321468,0.992899596159956,0.99172726453291, +00:22:59,1,1,1,0.998813267776029,0.997628078362856,0.99644407556412,0.995261302769957,0.994080234253184,0.992902124206587,0.991730210532709, +00:23:00,1,1,1,0.998813689467098,0.997628921392982,0.996445339745447,0.995262987905844,0.994082339955588,0.992904649579517,0.991733153416652, +00:23:01,1,1,1,0.998814110712559,0.997629763532233,0.996446602590824,0.995264671260909,0.994084443432687,0.992907172283551,0.991736093190337, +00:23:02,1,1,1,0.998814531513211,0.997630604782212,0.996447864102651,0.995266352838351,0.994086544688475,0.99290969232348,0.991739029859348, +00:23:03,1,1,1,0.998814951869854,0.997631445144513,0.996449124283322,0.995268032641362,0.99408864372694,0.992912209704084,0.991741963429254, +00:23:04,1,1,1,0.998815371783285,0.997632284620731,0.996450383135226,0.995269710673125,0.994090740552058,0.992914724430132,0.991744893905613, +00:23:05,1,1,1,0.998815791254298,0.997633123212455,0.996451640660744,0.995271386936813,0.994092835167796,0.99291723650638,0.991747821293966, +00:23:06,1,1,1,0.998816210283687,0.997633960921269,0.996452896862255,0.995273061435596,0.994094927578111,0.992919745937574,0.991750745599844, +00:23:07,1,1,1,0.998816628872241,0.997634797748755,0.996454151742128,0.995274734172632,0.994097017786951,0.992922252728449,0.991753666828764, +00:23:08,1,1,1,0.998817047020752,0.99763563369649,0.996455405302728,0.995276405151075,0.994099105798254,0.992924756883725,0.991756584986227, +00:23:09,1,1,1,0.998817464730005,0.997636468766049,0.996456657546416,0.995278074374067,0.994101191615948,0.992927258408115,0.991759500077723, +00:23:10,1,1,1,0.998817882000787,0.997637302959,0.996457908475545,0.995279741844747,0.994103275243953,0.992929757306318,0.991762412108729, +00:23:11,1,1,1,0.99881829883388,0.99763813627691,0.996459158092463,0.995281407566244,0.994105356686179,0.992932253583021,0.991765321084707, +00:23:12,1,1,1,0.998818715230066,0.997638968721341,0.996460406399513,0.995283071541678,0.994107435946524,0.992934747242903,0.991768227011107, +00:23:13,1,1,1,0.998819131190124,0.997639800293852,0.99646165339903,0.995284733774165,0.994109513028881,0.992937238290627,0.991771129893366, +00:23:14,1,1,1,0.998819546714833,0.997640630995998,0.996462899093347,0.995286394266812,0.99411158793713,0.992939726730849,0.991774029736907, +00:23:15,1,1,1,0.998819961804968,0.997641460829328,0.996464143484788,0.995288053022717,0.994113660675143,0.992942212568213,0.99177692654714, +00:23:16,1,1,1,0.998820376461304,0.997642289795392,0.996465386575674,0.995289710044971,0.994115731246783,0.992944695807348,0.991779820329464, +00:23:17,1,1,1,0.998820790684611,0.997643117895731,0.996466628368318,0.99529136533666,0.994117799655904,0.992947176452877,0.991782711089261, +00:23:18,1,1,1,0.998821204475661,0.997643945131886,0.99646786886503,0.99529301890086,0.994119865906349,0.992949654509409,0.991785598831905, +00:23:19,1,1,1,0.998821617835223,0.997644771505393,0.996469108068112,0.995294670740641,0.994121930001952,0.992952129981542,0.991788483562752, +00:23:20,1,1,1,0.998822030764061,0.997645597017784,0.996470345979862,0.995296320859064,0.994123991946541,0.992954602873865,0.991791365287149, +00:23:21,1,1,1,0.998822443262942,0.997646421670588,0.996471582602572,0.995297969259184,0.99412605174393,0.992957073190952,0.991794244010429, +00:23:22,1,1,1,0.998822855332628,0.997647245465331,0.996472817938529,0.995299615944049,0.994128109397927,0.99295954093737,0.991797119737911, +00:23:23,1,1,1,0.99882326697388,0.997648068403532,0.996474051990013,0.995301260916698,0.994130164912331,0.992962006117674,0.991799992474903, +00:23:24,1,1,1,0.998823678187458,0.997648890486711,0.9964752847593,0.995302904180165,0.99413221829093,0.992964468736407,0.991802862226699, +00:23:25,1,1,1,0.998824088974118,0.99764971171638,0.996476516248661,0.995304545737475,0.994134269537505,0.992966928798101,0.991805728998581, +00:23:26,1,1,1,0.998824499334617,0.997650532094051,0.996477746460359,0.995306185591645,0.994136318655825,0.992969386307279,0.991808592795818, +00:23:27,1,1,1,0.998824909269708,0.997651351621231,0.996478975396655,0.995307823745688,0.994138365649654,0.992971841268451,0.991811453623668, +00:23:28,1,1,1,0.998825318780143,0.997652170299422,0.996480203059802,0.995309460202607,0.994140410522743,0.992974293686119,0.991814311487373, +00:23:29,1,1,1,0.998825727866672,0.997652988130124,0.996481429452049,0.995311094965398,0.994142453278837,0.992976743564771,0.991817166392165, +00:23:30,1,1,1,0.998826136530044,0.997653805114834,0.996482654575639,0.995312728037052,0.99414449392167,0.992979190908886,0.991820018343265, +00:23:31,1,1,1,0.998826544771005,0.997654621255043,0.996483878432809,0.99531435942055,0.99414653245497,0.992981635722933,0.991822867345877, +00:23:32,1,1,1,0.9988269525903,0.997655436552241,0.996485101025791,0.995315989118868,0.994148568882452,0.992984078011369,0.991825713405197, +00:23:33,1,1,1,0.998827359988673,0.997656251007913,0.996486322356815,0.995317617134973,0.994150603207826,0.992986517778641,0.991828556526406, +00:23:34,1,1,1,0.998827766966864,0.997657064623542,0.9964875424281,0.995319243471828,0.994152635434791,0.992988955029186,0.991831396714674, +00:23:35,1,1,1,0.998828173525612,0.997657877400604,0.996488761241863,0.995320868132386,0.994154665567038,0.992991389767429,0.991834233975158, +00:23:36,1,1,1,0.998828579665657,0.997658689340575,0.996489978800316,0.995322491119594,0.994156693608247,0.992993821997785,0.991837068313003, +00:23:37,1,1,1,0.998828985387733,0.997659500444927,0.996491195105665,0.995324112436393,0.994158719562094,0.992996251724659,0.991839899733342, +00:23:38,1,1,1,0.998829390692575,0.997660310715127,0.996492410160111,0.995325732085715,0.994160743432242,0.992998678952447,0.991842728241295, +00:23:39,1,1,1,0.998829795580915,0.99766112015264,0.996493623965849,0.995327350070487,0.994162765222348,0.993001103685531,0.991845553841972, +00:23:40,1,1,1,0.998830200053485,0.997661928758925,0.996494836525069,0.995328966393627,0.994164784936057,0.993003525928285,0.991848376540468, +00:23:41,1,1,1,0.998830604111013,0.997662736535442,0.996496047839956,0.995330581058048,0.99416680257701,0.993005945685073,0.991851196341868, +00:23:42,1,1,1,0.998831007754227,0.997663543483643,0.996497257912692,0.995332194066656,0.994168818148835,0.993008362960247,0.991854013251244, +00:23:43,1,1,1,0.998831410983852,0.99766434960498,0.99649846674545,0.995333805422349,0.994170831655155,0.99301077775815,0.991856827273657, +00:23:44,1,1,1,0.998831813800612,0.997665154900899,0.9964996743404,0.995335415128018,0.994172843099581,0.993013190083115,0.991859638414154, +00:23:45,1,1,1,0.998832216205229,0.997665959372844,0.996500880699707,0.995337023186549,0.994174852485719,0.993015599939463,0.991862446677773, +00:23:46,1,1,1,0.998832618198424,0.997666763022255,0.99650208582553,0.99533862960082,0.994176859817164,0.993018007331507,0.991865252069538, +00:23:47,1,1,1,0.998833019780915,0.997667565850569,0.996503289720024,0.995340234373701,0.994178865097503,0.993020412263548,0.991868054594462, +00:23:48,1,1,1,0.99883342095342,0.99766836785922,0.996504492385338,0.995341837508058,0.994180868330315,0.993022814739879,0.991870854257546, +00:23:49,1,1,1,0.998833821716654,0.997669169049637,0.996505693823616,0.995343439006749,0.994182869519172,0.99302521476478,0.991873651063779, +00:23:50,1,1,1,0.998834222071331,0.997669969423248,0.996506894036998,0.995345038872623,0.994184868667633,0.993027612342523,0.991876445018138, +00:23:51,1,1,1,0.998834622018162,0.997670768981476,0.996508093027617,0.995346637108526,0.994186865779255,0.99303000747737,0.99187923612559, +00:23:52,1,1,1,0.998835021557859,0.99767156772574,0.996509290797603,0.995348233717296,0.994188860857581,0.993032400173572,0.991882024391088, +00:23:53,1,1,1,0.998835420691129,0.997672365657458,0.99651048734908,0.995349828701762,0.994190853906148,0.99303479043537,0.991884809819575, +00:23:54,1,1,1,0.99883581941868,0.997673162778043,0.996511682684167,0.99535142206475,0.994192844928486,0.993037178266997,0.991887592415982, +00:23:55,1,1,1,0.998836217741217,0.997673959088905,0.996512876804979,0.995353013809078,0.994194833928115,0.993039563672674,0.991890372185228, +00:23:56,1,1,1,0.998836615659444,0.997674754591451,0.996514069713624,0.995354603937557,0.994196820908548,0.993041946656613,0.991893149132222, +00:23:57,1,1,1,0.998837013174063,0.997675549287084,0.996515261412207,0.99535619245299,0.994198805873287,0.993044327223015,0.99189592326186, +00:23:58,1,1,1,0.998837410285774,0.997676343177204,0.996516451902828,0.995357779358177,0.994200788825829,0.993046705376073,0.991898694579026, +00:23:59,1,1,1,0.998837806995276,0.997677136263208,0.996517641187581,0.995359364655908,0.994202769769662,0.993049081119969,0.991901463088595, +00:24:00,1,1,1,0.998838203303267,0.997677928546491,0.996518829268555,0.995360948348969,0.994204748708265,0.993051454458875,0.991904228795428, +00:24:01,1,1,1,0.998838599210442,0.997678720028442,0.996520016147835,0.995362530440139,0.99420672564511,0.993053825396955,0.991906991704377, +00:24:02,1,1,1,0.998838994717494,0.997679510710448,0.996521201827502,0.995364110932188,0.994208700583659,0.993056193938362,0.99190975182028, +00:24:03,1,1,1,0.998839389825116,0.997680300593894,0.996522386309629,0.995365689827883,0.994210673527368,0.993058560087238,0.991912509147966, +00:24:04,1,1,1,0.998839784533999,0.99768108968016,0.996523569596288,0.995367267129983,0.994212644479685,0.993060923847719,0.991915263692253, +00:24:05,1,1,1,0.998840178844832,0.997681877970624,0.996524751689544,0.99536884284124,0.994214613444048,0.993063285223927,0.991918015457945, +00:24:06,1,1,1,0.998840572758302,0.997682665466659,0.996525932591457,0.995370416964401,0.994216580423888,0.993065644219978,0.991920764449838, +00:24:07,1,1,1,0.998840966275095,0.997683452169638,0.996527112304083,0.995371989502205,0.994218545422629,0.993068000839977,0.991923510672716, +00:24:08,1,1,1,0.998841359395895,0.997684238080927,0.996528290829473,0.995373560457387,0.994220508443686,0.993070355088019,0.99192625413135, +00:24:09,1,1,1,0.998841752121385,0.997685023201892,0.996529468169673,0.995375129832672,0.994222469490466,0.993072706968191,0.991928994830503, +00:24:10,1,1,1,0.998842144452247,0.997685807533894,0.996530644326725,0.995376697630783,0.994224428566369,0.993075056484568,0.991931732774924, +00:24:11,1,1,1,0.998842536389159,0.997686591078292,0.996531819302666,0.995378263854434,0.994226385674787,0.993077403641218,0.991934467969352, +00:24:12,1,1,1,0.998842927932799,0.997687373836441,0.996532993099528,0.995379828506333,0.994228340819102,0.993079748442199,0.991937200418517, +00:24:13,1,1,1,0.998843319083845,0.997688155809692,0.996534165719337,0.995381391589182,0.994230294002691,0.993082090891559,0.991939930127135, +00:24:14,1,1,1,0.99884370984297,0.997688936999395,0.996535337164117,0.995382953105676,0.994232245228923,0.993084430993336,0.991942657099914, +00:24:15,1,1,1,0.998844100210849,0.997689717406897,0.996536507435886,0.995384513058506,0.994234194501157,0.993086768751562,0.991945381341548, +00:24:16,1,1,1,0.998844490188152,0.997690497033539,0.996537676536657,0.995386071450355,0.994236141822745,0.993089104170255,0.991948102856724, +00:24:17,1,1,1,0.99884487977555,0.997691275880661,0.996538844468439,0.9953876282839,0.994238087197034,0.993091437253428,0.991950821650114, +00:24:18,1,1,1,0.998845268973712,0.997692053949599,0.996540011233236,0.995389183561811,0.994240030627359,0.993093768005082,0.991953537726382, +00:24:19,1,1,1,0.998845657783304,0.997692831241689,0.996541176833046,0.995390737286754,0.99424197211705,0.993096096429209,0.991956251090181, +00:24:20,1,1,1,0.998846046204992,0.997693607758259,0.996542341269866,0.995392289461387,0.994243911669429,0.993098422529793,0.991958961746152, +00:24:21,1,1,1,0.99884643423944,0.997694383500637,0.996543504545685,0.995393840088364,0.994245849287811,0.993100746310809,0.991961669698928, +00:24:22,1,1,1,0.998846821887311,0.997695158470147,0.996544666662489,0.995395389170329,0.994247784975501,0.993103067776221,0.991964374953127, +00:24:23,1,1,1,0.998847209149266,0.997695932668112,0.996545827622259,0.995396936709925,0.994249718735799,0.993105386929986,0.991967077513361, +00:24:24,1,1,1,0.998847596025963,0.997696706095848,0.996546987426972,0.995398482709784,0.994251650571996,0.99310770377605,0.991969777384228, +00:24:25,1,1,1,0.998847982518061,0.997697478754671,0.996548146078599,0.995400027172536,0.994253580487375,0.993110018318351,0.991972474570317, +00:24:26,1,1,1,0.998848368626216,0.997698250645894,0.996549303579109,0.995401570100803,0.994255508485213,0.993112330560819,0.991975169076208, +00:24:27,1,1,1,0.998848754351083,0.997699021770825,0.996550459930464,0.9954031114972,0.99425743456878,0.993114640507373,0.991977860906466, +00:24:28,1,1,1,0.998849139693316,0.997699792130771,0.996551615134622,0.995404651364339,0.994259358741336,0.993116948161925,0.991980550065651, +00:24:29,1,1,1,0.998849524653566,0.997700561727035,0.996552769193538,0.995406189704824,0.994261281006134,0.993119253528376,0.991983236558309, +00:24:30,1,1,1,0.998849909232485,0.997701330560917,0.996553922109162,0.995407726521252,0.994263201366422,0.993121556610619,0.991985920388976, +00:24:31,1,1,1,0.99885029343072,0.997702098633715,0.996555073883437,0.995409261816216,0.994265119825438,0.993123857412538,0.991988601562178, +00:24:32,1,1,1,0.998850677248919,0.997702865946722,0.996556224518306,0.995410795592304,0.994267036386414,0.993126155938009,0.991991280082432, +00:24:33,1,1,1,0.998851060687728,0.99770363250123,0.996557374015704,0.995412327852094,0.994268951052574,0.993128452190899,0.991993955954244, +00:24:34,1,1,1,0.998851443747792,0.997704398298528,0.996558522377563,0.995413858598163,0.994270863827135,0.993130746175065,0.991996629182107, +00:24:35,1,1,1,0.998851826429754,0.997705163339901,0.996559669605811,0.995415387833079,0.994272774713307,0.993133037894356,0.991999299770509, +00:24:36,1,1,1,0.998852208734255,0.997705927626631,0.99656081570237,0.995416915559405,0.994274683714292,0.993135327352612,0.992001967723923, +00:24:37,1,1,1,0.998852590661935,0.997706691159998,0.99656196066916,0.995418441779698,0.994276590833285,0.993137614553664,0.992004633046814, +00:24:38,1,1,1,0.998852972213434,0.997707453941279,0.996563104508093,0.99541996649651,0.994278496073473,0.993139899501336,0.992007295743637, +00:24:39,1,1,1,0.998853353389387,0.997708215971748,0.996564247221082,0.995421489712385,0.994280399438038,0.993142182199441,0.992009955818836, +00:24:40,1,1,1,0.998853734190432,0.997708977252674,0.99656538881003,0.995423011429865,0.994282300930152,0.993144462651785,0.992012613276846, +00:24:41,1,1,1,0.998854114617202,0.997709737785328,0.99656652927684,0.995424531651483,0.994284200552981,0.993146740862165,0.992015268122092, +00:24:42,1,1,1,0.99885449467033,0.997710497570973,0.996567668623408,0.995426050379767,0.994286098309684,0.993149016834368,0.992017920358986, +00:24:43,1,1,1,0.998854874350448,0.997711256610872,0.996568806851627,0.995427567617239,0.994287994203414,0.993151290572175,0.992020569991934, +00:24:44,1,1,1,0.998855253658185,0.997712014906284,0.996569943963385,0.995429083366418,0.994289888237314,0.993153562079355,0.992023217025331, +00:24:45,1,1,1,0.99885563259417,0.997712772458466,0.996571079960567,0.995430597629813,0.994291780414523,0.993155831359673,0.992025861463559, +00:24:46,1,1,1,0.998856011159031,0.997713529268672,0.996572214845053,0.995432110409931,0.99429367073817,0.993158098416881,0.992028503310995, +00:24:47,1,1,1,0.998856389353392,0.997714285338152,0.996573348618717,0.99543362170927,0.994295559211378,0.993160363254726,0.992031142572003, +00:24:48,1,1,1,0.998856767177879,0.997715040668155,0.996574481283431,0.995435131530327,0.994297445837266,0.993162625876944,0.992033779250937, +00:24:49,1,1,1,0.998857144633115,0.997715795259926,0.996575612841064,0.995436639875588,0.99429933061894,0.993164886287265,0.992036413352142, +00:24:50,1,1,1,0.99885752171972,0.997716549114707,0.996576743293476,0.995438146747537,0.994301213559504,0.993167144489408,0.992039044879955, +00:24:51,1,1,1,0.998857898438315,0.997717302233738,0.996577872642528,0.995439652148651,0.994303094662054,0.993169400487085,0.992041673838699, +00:24:52,1,1,1,0.998858274789519,0.997718054618256,0.996579000890074,0.995441156081402,0.994304973929676,0.993171654284,0.992044300232692, +00:24:53,1,1,1,0.998858650773949,0.997718806269495,0.996580128037964,0.995442658548257,0.994306851365454,0.993173905883848,0.992046924066238, +00:24:54,1,1,1,0.99885902639222,0.997719557188687,0.996581254088044,0.995444159551675,0.99430872697246,0.993176155290316,0.992049545343635, +00:24:55,1,1,1,0.998859401644948,0.997720307377059,0.996582379042157,0.995445659094113,0.994310600753764,0.993178402507083,0.992052164069169, +00:24:56,1,1,1,0.998859776532746,0.997721056835837,0.99658350290214,0.995447157178019,0.994312472712424,0.993180647537818,0.992054780247117, +00:24:57,1,1,1,0.998860151056225,0.997721805566245,0.996584625669828,0.995448653805839,0.994314342851496,0.993182890386185,0.992057393881746, +00:24:58,1,1,1,0.998860525215996,0.997722553569503,0.99658574734705,0.99545014898001,0.994316211174026,0.993185131055837,0.992060004977315, +00:24:59,1,1,1,0.998860899012668,0.997723300846829,0.996586867935631,0.995451642702965,0.994318077683054,0.99318736955042,0.992062613538072, +00:25:00,1,1,1,0.998861272446848,0.997724047399436,0.996587987437394,0.995453134977133,0.994319942381613,0.993189605873572,0.992065219568256, +00:25:01,1,1,1,0.998861645519144,0.997724793228539,0.996589105854156,0.995454625804937,0.994321805272731,0.993191840028921,0.992067823072096, +00:25:02,1,1,1,0.998862018230159,0.997725538335345,0.996590223187729,0.995456115188792,0.994323666359427,0.99319407202009,0.992070424053813, +00:25:03,1,1,1,0.998862390580498,0.997726282721061,0.996591339439924,0.99545760313111,0.994325525644713,0.993196301850691,0.992073022517616, +00:25:04,1,1,1,0.998862762570762,0.997727026386891,0.996592454612545,0.995459089634298,0.994327383131597,0.993198529524331,0.992075618467707, +00:25:05,1,1,1,0.998863134201554,0.997727769334038,0.996593568707395,0.995460574700757,0.994329238823078,0.993200755044605,0.992078211908278, +00:25:06,1,1,1,0.998863505473471,0.997728511563699,0.99659468172627,0.99546205833288,0.994331092722148,0.993202978415103,0.992080802843511, +00:25:07,1,1,1,0.998863876387114,0.99772925307707,0.996595793670963,0.99546354053306,0.994332944831794,0.993205199639407,0.99208339127758, +00:25:08,1,1,1,0.998864246943077,0.997729993875345,0.996596904543264,0.995465021303681,0.994334795154996,0.99320741872109,0.992085977214648, +00:25:09,1,1,1,0.998864617141958,0.997730733959714,0.996598014344958,0.995466500647121,0.994336643694727,0.993209635663716,0.99208856065887, +00:25:10,1,1,1,0.99886498698435,0.997731473331365,0.996599123077827,0.995467978565756,0.994338490453953,0.993211850470844,0.992091141614392, +00:25:11,1,1,1,0.998865356470847,0.997732211991485,0.996600230743647,0.995469455061953,0.994340335435633,0.993214063146022,0.992093720085348, +00:25:12,1,1,1,0.998865725602039,0.997732949941254,0.996601337344192,0.995470930138078,0.994342178642722,0.993216273692793,0.992096296075868, +00:25:13,1,1,1,0.998866094378518,0.997733687181854,0.996602442881232,0.995472403796487,0.994344020078165,0.99321848211469,0.992098869590067, +00:25:14,1,1,1,0.998866462800872,0.997734423714462,0.996603547356532,0.995473876039535,0.994345859744903,0.993220688415238,0.992101440632056, +00:25:15,1,1,1,0.998866830869689,0.997735159540253,0.996604650771854,0.99547534686957,0.994347697645869,0.993222892597957,0.992104009205933, +00:25:16,1,1,1,0.998867198585555,0.997735894660399,0.996605753128956,0.995476816288933,0.994349533783991,0.993225094666355,0.99210657531579, +00:25:17,1,1,1,0.998867565949056,0.997736629076069,0.996606854429591,0.995478284299963,0.99435136816219,0.993227294623937,0.992109138965707, +00:25:18,1,1,1,0.998867932960775,0.997737362788432,0.996607954675509,0.995479750904991,0.994353200783379,0.993229492474196,0.992111700159758, +00:25:19,1,1,1,0.998868299621295,0.99773809579865,0.996609053868456,0.995481216106347,0.994355031650466,0.993231688220619,0.992114258902005, +00:25:20,1,1,1,0.998868665931197,0.997738828107888,0.996610152010175,0.99548267990635,0.994356860766352,0.993233881866687,0.992116815196504, +00:25:21,1,1,1,0.998869031891061,0.997739559717302,0.996611249102405,0.995484142307319,0.994358688133933,0.99323607341587,0.992119369047299, +00:25:22,1,1,1,0.998869397501466,0.997740290628052,0.996612345146879,0.995485603311565,0.994360513756098,0.993238262871633,0.992121920458429, +00:25:23,1,1,1,0.998869762762989,0.99774102084129,0.996613440145328,0.995487062921395,0.994362337635727,0.993240450237432,0.992124469433919, +00:25:24,1,1,1,0.998870127676206,0.997741750358168,0.99661453409948,0.995488521139111,0.994364159775698,0.993242635516717,0.99212701597779, +00:25:25,1,1,1,0.998870492241691,0.997742479179837,0.996615627011058,0.995489977967009,0.99436598017888,0.993244818712927,0.992129560094051, +00:25:26,1,1,1,0.99887085646002,0.997743207307441,0.99661671888178,0.995491433407382,0.994367798848136,0.993246999829498,0.992132101786704, +00:25:27,1,1,1,0.998871220331763,0.997743934742126,0.996617809713362,0.995492887462515,0.994369615786322,0.993249178869854,0.992134641059741, +00:25:28,1,1,1,0.998871583857493,0.997744661485033,0.996618899507517,0.99549434013469,0.99437143099629,0.993251355837415,0.992137177917146, +00:25:29,1,1,1,0.998871947037778,0.997745387537301,0.996619988265952,0.995495791426184,0.994373244480884,0.993253530735592,0.992139712362894, +00:25:30,1,1,1,0.998872309873188,0.997746112900068,0.996621075990371,0.995497241339268,0.994375056242943,0.993255703567789,0.992142244400952, +00:25:31,1,1,1,0.99887267236429,0.997746837574466,0.996622162682476,0.995498689876208,0.994376866285297,0.9932578743374,0.992144774035275, +00:25:32,1,1,1,0.998873034511649,0.997747561561627,0.996623248343962,0.995500137039267,0.994378674610773,0.993260043047817,0.992147301269815, +00:25:33,1,1,1,0.998873396315831,0.997748284862682,0.996624332976523,0.995501582830701,0.994380481222191,0.993262209702419,0.992149826108511, +00:25:34,1,1,1,0.998873757777399,0.997749007478756,0.996625416581849,0.995503027252762,0.994382286122364,0.99326437430458,0.992152348555294, +00:25:35,1,1,1,0.998874118896916,0.997749729410973,0.996626499161625,0.995504470307696,0.994384089314098,0.993266536857668,0.992154868614088, +00:25:36,1,1,1,0.998874479674943,0.997750450660456,0.996627580717533,0.995505911997746,0.994385890800196,0.993268697365041,0.992157386288808, +00:25:37,1,1,1,0.998874840112039,0.997751171228324,0.996628661251252,0.995507352325148,0.994387690583453,0.993270855830051,0.992159901583358, +00:25:38,1,1,1,0.998875200208764,0.997751891115694,0.996629740764456,0.995508791292135,0.994389488666657,0.993273012256043,0.992162414501638, +00:25:39,1,1,1,0.998875559965674,0.997752610323679,0.996630819258816,0.995510228900933,0.99439128505259,0.993275166646354,0.992164925047535, +00:25:40,1,1,1,0.998875919383327,0.997753328853393,0.996631896736,0.995511665153766,0.994393079744031,0.993277319004314,0.992167433224931, +00:25:41,1,1,1,0.998876278462277,0.997754046705944,0.996632973197672,0.99551310005285,0.994394872743749,0.993279469333247,0.992169939037696, +00:25:42,1,1,1,0.998876637203078,0.997754763882441,0.996634048645491,0.995514533600399,0.99439666405451,0.993281617636467,0.992172442489696, +00:25:43,1,1,1,0.998876995606282,0.997755480383987,0.996635123081114,0.99551596579862,0.994398453679071,0.993283763917282,0.992174943584785, +00:25:44,1,1,1,0.998877353672442,0.997756196211685,0.996636196506195,0.995517396649717,0.994400241620187,0.993285908178995,0.992177442326811, +00:25:45,1,1,1,0.998877711402107,0.997756911366635,0.996637268922382,0.995518826155887,0.994402027880603,0.993288050424899,0.992179938719611, +00:25:46,1,1,1,0.998878068795826,0.997757625849935,0.996638340331321,0.995520254319326,0.99440381246306,0.99329019065828,0.992182432767016, +00:25:47,1,1,1,0.998878425854147,0.99775833966268,0.996639410734655,0.99552168114222,0.994405595370293,0.993292328882419,0.992184924472847, +00:25:48,1,1,1,0.998878782577618,0.997759052805963,0.996640480134022,0.995523106626755,0.994407376605032,0.993294465100589,0.99218741384092, +00:25:49,1,1,1,0.998879138966782,0.997759765280873,0.996641548531057,0.995524530775109,0.994409156169999,0.993296599316054,0.992189900875038, +00:25:50,1,1,1,0.998879495022185,0.9977604770885,0.996642615927393,0.995525953589458,0.99441093406791,0.993298731532074,0.992192385578999, +00:25:51,1,1,1,0.998879850744371,0.997761188229929,0.996643682324656,0.995527375071971,0.994412710301479,0.993300861751899,0.992194867956592, +00:25:52,1,1,1,0.998880206133879,0.997761898706243,0.996644747724471,0.995528795224814,0.994414484873409,0.993302989978775,0.992197348011599, +00:25:53,1,1,1,0.998880561191253,0.997762608518524,0.99664581212846,0.995530214050146,0.994416257786401,0.993305116215938,0.99219982574779, +00:25:54,1,1,1,0.99888091591703,0.99776331766785,0.996646875538241,0.995531631550125,0.994418029043148,0.993307240466619,0.992202301168931, +00:25:55,1,1,1,0.99888127031175,0.997764026155298,0.996647937955426,0.995533047726901,0.994419798646338,0.993309362734042,0.992204774278779, +00:25:56,1,1,1,0.99888162437595,0.997764733981942,0.996648999381626,0.995534462582621,0.994421566598653,0.993311483021423,0.992207245081081, +00:25:57,1,1,1,0.998881978110166,0.997765441148853,0.996650059818449,0.995535876119427,0.99442333290277,0.993313601331971,0.992209713579578, +00:25:58,1,1,1,0.998882331514933,0.997766147657101,0.996651119267499,0.995537288339456,0.994425097561359,0.99331571766889,0.992212179778002, +00:25:59,1,1,1,0.998882684590784,0.997766853507753,0.996652177730374,0.995538699244841,0.994426860577085,0.993317832035375,0.992214643680077, +00:26:00,1,1,1,0.998883037338253,0.997767558701875,0.996653235208673,0.99554010883771,0.994428621952607,0.993319944434615,0.992217105289519, +00:26:01,1,1,1,0.998883389757871,0.997768263240527,0.996654291703989,0.995541517120188,0.994430381690579,0.993322054869792,0.992219564610037, +00:26:02,1,1,1,0.998883741850168,0.997768967124772,0.99665534721791,0.995542924094392,0.994432139793648,0.993324163344082,0.992222021645329, +00:26:03,1,1,1,0.998884093615674,0.997769670355667,0.996656401752025,0.995544329762438,0.994433896264457,0.993326269860653,0.99222447639909, +00:26:04,1,1,1,0.998884445054917,0.997770372934268,0.996657455307915,0.995545734126436,0.994435651105641,0.993328374422666,0.992226928875003, +00:26:05,1,1,1,0.998884796168423,0.997771074861627,0.99665850788716,0.99554713718849,0.994437404319832,0.993330477033277,0.992229379076745, +00:26:06,1,1,1,0.998885146956719,0.997771776138797,0.996659559491338,0.995548538950703,0.994439155909654,0.993332577695634,0.992231827007984, +00:26:07,1,1,1,0.998885497420329,0.997772476766827,0.99666061012202,0.995549939415169,0.994440905877728,0.993334676412877,0.99223427267238, +00:26:08,1,1,1,0.998885847559777,0.997773176746762,0.996661659780776,0.995551338583983,0.994442654226666,0.993336773188143,0.992236716073588, +00:26:09,1,1,1,0.998886197375586,0.997773876079648,0.996662708469173,0.99555273645923,0.994444400959078,0.993338868024559,0.992239157215252, +00:26:10,1,1,1,0.998886546868276,0.997774574766528,0.996663756188773,0.995554133042995,0.994446146077566,0.993340960925245,0.992241596101009, +00:26:11,1,1,1,0.998886896038368,0.99777527280844,0.996664802941136,0.995555528337355,0.994447889584727,0.993343051893317,0.992244032734489, +00:26:12,1,1,1,0.998887244886381,0.997775970206423,0.996665848727818,0.995556922344385,0.994449631483152,0.993345140931883,0.992246467119314, +00:26:13,1,1,1,0.998887593412834,0.997776666961512,0.996666893550372,0.995558315066154,0.994451371775429,0.993347228044045,0.992248899259098, +00:26:14,1,1,1,0.998887941618243,0.997777363074741,0.996667937410347,0.995559706504728,0.994453110464137,0.993349313232897,0.992251329157447, +00:26:15,1,1,1,0.998888289503123,0.997778058547142,0.99666898030929,0.995561096662169,0.994454847551853,0.993351396501527,0.992253756817961, +00:26:16,1,1,1,0.99888863706799,0.997778753379742,0.996670022248743,0.995562485540532,0.994456583041144,0.993353477853017,0.99225618224423, +00:26:17,1,1,1,0.998888984313358,0.997779447573569,0.996671063230247,0.995563873141869,0.994458316934576,0.993355557290442,0.992258605439838, +00:26:18,1,1,1,0.998889331239739,0.997780141129648,0.996672103255338,0.99556525946823,0.994460049234707,0.993357634816871,0.99226102640836, +00:26:19,1,1,1,0.998889677847643,0.997780834049001,0.996673142325548,0.995566644521656,0.994461779944091,0.993359710435365,0.992263445153366, +00:26:20,1,1,1,0.998890024137583,0.997781526332648,0.996674180442409,0.995568028304188,0.994463509065276,0.993361784148981,0.992265861678416, +00:26:21,1,1,1,0.998890370110067,0.997782217981607,0.996675217607445,0.995569410817859,0.994465236600803,0.993363855960767,0.992268275987062, +00:26:22,1,1,1,0.998890715765602,0.997782908996895,0.996676253822183,0.995570792064702,0.994466962553211,0.993365925873767,0.992270688082851, +00:26:23,1,1,1,0.998891061104698,0.997783599379525,0.99667728908814,0.995572172046741,0.994468686925031,0.993367993891016,0.992273097969321, +00:26:24,1,1,1,0.998891406127858,0.99778428913051,0.996678323406834,0.995573550765999,0.994470409718789,0.993370060015544,0.992275505650003, +00:26:25,1,1,1,0.998891750835589,0.997784978250857,0.996679356779779,0.995574928224494,0.994472130937006,0.993372124250375,0.992277911128419, +00:26:26,1,1,1,0.998892095228395,0.997785666741575,0.996680389208485,0.995576304424238,0.994473850582198,0.993374186598525,0.992280314408086, +00:26:27,1,1,1,0.998892439306777,0.99778635460367,0.996681420694461,0.995577679367241,0.994475568656875,0.993376247063005,0.992282715492511, +00:26:28,1,1,1,0.998892783071239,0.997787041838144,0.996682451239209,0.995579053055509,0.994477285163544,0.993378305646819,0.992285114385196, +00:26:29,1,1,1,0.99889312652228,0.997787728445998,0.996683480844232,0.995580425491041,0.994479000104702,0.993380362352966,0.992287511089635, +00:26:30,1,1,1,0.998893469660401,0.997788414428232,0.996684509511026,0.995581796675834,0.994480713482846,0.993382417184437,0.992289905609313, +00:26:31,1,1,1,0.9988938124861,0.997789099785842,0.996685537241088,0.99558316661188,0.994482425300463,0.993384470144216,0.99229229794771, +00:26:32,1,1,1,0.998894154999875,0.997789784519822,0.996686564035907,0.995584535301168,0.99448413556004,0.993386521235285,0.992294688108297, +00:26:33,1,1,1,0.998894497202221,0.997790468631166,0.996687589896973,0.995585902745681,0.994485844264053,0.993388570460614,0.992297076094538, +00:26:34,1,1,1,0.998894839093636,0.997791152120864,0.996688614825772,0.9955872689474,0.994487551414977,0.993390617823172,0.99229946190989, +00:26:35,1,1,1,0.998895180674613,0.997791834989904,0.996689638823784,0.995588633908299,0.99448925701528,0.993392663325917,0.992301845557804, +00:26:36,1,1,1,0.998895521945645,0.997792517239274,0.996690661892489,0.99558999763035,0.994490961067426,0.993394706971804,0.992304227041721, +00:26:37,1,1,1,0.998895862907225,0.997793198869956,0.996691684033364,0.99559136011552,0.994492663573873,0.993396748763781,0.992306606365076, +00:26:38,1,1,1,0.998896203559844,0.997793879882934,0.99669270524788,0.995592721365773,0.994494364537073,0.993398788704789,0.992308983531298, +00:26:39,1,1,1,0.998896543903993,0.997794560279187,0.996693725537509,0.995594081383067,0.994496063959474,0.993400826797765,0.992311358543808, +00:26:40,1,1,1,0.998896883940161,0.997795240059694,0.996694744903716,0.995595440169357,0.994497761843519,0.993402863045637,0.99231373140602, +00:26:41,1,1,1,0.998897223668835,0.997795919225431,0.996695763347965,0.995596797726595,0.994499458191646,0.993404897451329,0.992316102121339, +00:26:42,1,1,1,0.998897563090504,0.997796597777372,0.996696780871716,0.995598154056727,0.994501153006287,0.993406930017759,0.992318470693166, +00:26:43,1,1,1,0.998897902205654,0.997797275716489,0.996697797476428,0.995599509161695,0.994502846289869,0.993408960747836,0.992320837124892, +00:26:44,1,1,1,0.99889824101477,0.997797953043751,0.996698813163554,0.995600863043439,0.994504538044815,0.993410989644467,0.992323201419904, +00:26:45,1,1,1,0.998898579518335,0.997798629760128,0.996699827934547,0.995602215703893,0.994506228273542,0.993413016710549,0.992325563581578, +00:26:46,1,1,1,0.998898917716834,0.997799305866584,0.996700841790854,0.995603567144987,0.994507916978462,0.993415041948976,0.992327923613288, +00:26:47,1,1,1,0.998899255610748,0.997799981364084,0.996701854733921,0.995604917368648,0.994509604161982,0.993417065362635,0.992330281518395, +00:26:48,1,1,1,0.998899593200558,0.997800656253589,0.99670286676519,0.995606266376798,0.994511289826505,0.993419086954407,0.992332637300258, +00:26:49,1,1,1,0.998899930486745,0.99780133053606,0.9967038778861,0.995607614171357,0.994512973974427,0.993421106727166,0.992334990962228, +00:26:50,1,1,1,0.998900267469787,0.997802004212454,0.996704888098089,0.995608960754238,0.994514656608142,0.993423124683782,0.992337342507646, +00:26:51,1,1,1,0.998900604150164,0.997802677283727,0.996705897402589,0.995610306127352,0.994516337730035,0.993425140827116,0.992339691939849, +00:26:52,1,1,1,0.998900940528352,0.997803349750834,0.99670690580103,0.995611650292605,0.99451801734249,0.993427155160027,0.992342039262167, +00:26:53,1,1,1,0.998901276604827,0.997804021614726,0.996707913294841,0.995612993251901,0.994519695447883,0.993429167685365,0.992344384477922, +00:26:54,1,1,1,0.998901612380065,0.997804692876353,0.996708919885445,0.995614335007138,0.994521372048587,0.993431178405976,0.992346727590429, +00:26:55,1,1,1,0.998901947854539,0.997805363536663,0.996709925574264,0.99561567556021,0.99452304714697,0.993433187324697,0.992349068602997, +00:26:56,1,1,1,0.998902283028724,0.997806033596602,0.996710930362717,0.995617014913009,0.994524720745394,0.993435194444364,0.992351407518928, +00:26:57,1,1,1,0.99890261790309,0.997806703057115,0.99671193425222,0.995618353067421,0.994526392846216,0.993437199767803,0.992353744341516, +00:26:58,1,1,1,0.99890295247811,0.997807371919142,0.996712937244184,0.995619690025329,0.99452806345179,0.993439203297835,0.992356079074051, +00:26:59,1,1,1,0.998903286754254,0.997808040183626,0.99671393934002,0.995621025788612,0.994529732564463,0.993441205037278,0.992358411719812, +00:27:00,1,1,1,0.99890362073199,0.997808707851502,0.996714940541134,0.995622360359146,0.994531400186578,0.99344320498894,0.992360742282075, +00:27:01,1,1,1,0.998903954411788,0.997809374923709,0.996715940848931,0.995623693738801,0.994533066320474,0.993445203155625,0.992363070764108, +00:27:02,1,1,1,0.998904287794115,0.997810041401181,0.996716940264812,0.995625025929446,0.994534730968484,0.993447199540133,0.99236539716917, +00:27:03,1,1,1,0.998904620879437,0.997810707284849,0.996717938790174,0.995626356932943,0.994536394132936,0.993449194145256,0.992367721500518, +00:27:04,1,1,1,0.99890495366822,0.997811372575644,0.996718936426414,0.995627686751153,0.994538055816154,0.993451186973779,0.992370043761398, +00:27:05,1,1,1,0.998905286160927,0.997812037274495,0.996719933174922,0.995629015385931,0.994539716020458,0.993453178028486,0.99237236395505, +00:27:06,1,1,1,0.998905618358024,0.997812701382329,0.99672092903709,0.99563034283913,0.99454137474816,0.99345516731215,0.992374682084711, +00:27:07,1,1,1,0.998905950259971,0.99781336490007,0.996721924014303,0.995631669112597,0.994543032001572,0.993457154827542,0.992376998153606, +00:27:08,1,1,1,0.998906281867232,0.99781402782864,0.996722918107945,0.995632994208178,0.994544687782997,0.993459140577426,0.992379312164957, +00:27:09,1,1,1,0.998906613180265,0.997814690168962,0.996723911319398,0.995634318127712,0.994546342094735,0.993461124564558,0.992381624121978, +00:27:10,1,1,1,0.998906944199532,0.997815351921954,0.996724903650039,0.995635640873038,0.994547994939082,0.993463106791694,0.992383934027876, +00:27:11,1,1,1,0.998907274925492,0.997816013088533,0.996725895101244,0.995636962445987,0.994549646318329,0.993465087261578,0.992386241885854, +00:27:12,1,1,1,0.998907605358601,0.997816673669615,0.996726885674385,0.99563828284839,0.99455129623476,0.993467065976954,0.992388547699105, +00:27:13,1,1,1,0.998907935499316,0.997817333666113,0.996727875370831,0.995639602082071,0.994552944690657,0.993469042940555,0.992390851470818, +00:27:14,1,1,1,0.998908265348095,0.997817993078938,0.99672886419195,0.995640920148853,0.994554591688297,0.993471018155113,0.992393153204174, +00:27:15,1,1,1,0.998908594905391,0.997818651909,0.996729852139107,0.995642237050554,0.99455623722995,0.993472991623352,0.992395452902347, +00:27:16,1,1,1,0.998908924171659,0.997819310157207,0.99673083921366,0.995643552788988,0.994557881317886,0.99347496334799,0.992397750568507, +00:27:17,1,1,1,0.998909253147352,0.997819967824465,0.996731825416971,0.995644867365966,0.994559523954365,0.993476933331742,0.992400046205815, +00:27:18,1,1,1,0.998909581832923,0.997820624911678,0.996732810750393,0.995646180783296,0.994561165141646,0.993478901577314,0.992402339817427, +00:27:19,1,1,1,0.998909910228821,0.997821281419749,0.996733795215281,0.995647493042779,0.994562804881981,0.99348086808741,0.992404631406491, +00:27:20,1,1,1,0.998910238335499,0.997821937349576,0.996734778812983,0.995648804146216,0.99456444317762,0.993482832864726,0.992406920976152, +00:27:21,1,1,1,0.998910566153406,0.99782259270206,0.996735761544848,0.995650114095404,0.994566080030808,0.993484795911953,0.992409208529544, +00:27:22,1,1,1,0.998910893682989,0.997823247478097,0.996736743412221,0.995651422892133,0.994567715443782,0.993486757231777,0.992411494069797, +00:27:23,1,1,1,0.998911220924697,0.997823901678582,0.996737724416442,0.995652730538193,0.994569349418778,0.993488716826878,0.992413777600036, +00:27:24,1,1,1,0.998911547878977,0.997824555304407,0.996738704558851,0.995654037035369,0.994570981958027,0.993490674699931,0.992416059123377, +00:27:25,1,1,1,0.998911874546273,0.997825208356465,0.996739683840786,0.995655342385442,0.994572613063754,0.993492630853606,0.99241833864293, +00:27:26,1,1,1,0.998912200927032,0.997825860835644,0.996740662263578,0.995656646590189,0.994574242738181,0.993494585290566,0.992420616161801, +00:27:27,1,1,1,0.998912527021697,0.997826512742833,0.99674163982856,0.995657949651386,0.994575870983524,0.993496538013471,0.992422891683087, +00:27:28,1,1,1,0.998912852830711,0.997827164078916,0.99674261653706,0.995659251570802,0.994577497801995,0.993498489024972,0.992425165209881, +00:27:29,1,1,1,0.998913178354516,0.997827814844779,0.996743592390403,0.995660552350204,0.994579123195803,0.993500438327719,0.992427436745267, +00:27:30,1,1,1,0.998913503593555,0.997828465041302,0.996744567389912,0.995661851991356,0.994580747167151,0.993502385924352,0.992429706292325, +00:27:31,1,1,1,0.998913828548266,0.997829114669368,0.996745541536908,0.995663150496018,0.994582369718237,0.993504331817511,0.992431973854129, +00:27:32,1,1,1,0.99891415321909,0.997829763729854,0.996746514832707,0.995664447865945,0.994583990851256,0.993506276009825,0.992434239433744, +00:27:33,1,1,1,0.998914477606465,0.997830412223637,0.996747487278626,0.99566574410289,0.994585610568399,0.993508218503922,0.992436503034232, +00:27:34,1,1,1,0.99891480171083,0.997831060151592,0.996748458875975,0.995667039208602,0.994587228871849,0.993510159302422,0.992438764658647, +00:27:35,1,1,1,0.99891512553262,0.997831707514593,0.996749429626066,0.995668333184828,0.994588845763789,0.993512098407941,0.992441024310037, +00:27:36,1,1,1,0.998915449072272,0.997832354313512,0.996750399530204,0.995669626033308,0.994590461246396,0.99351403582309,0.992443281991444, +00:27:37,1,1,1,0.998915772330221,0.997833000549217,0.996751368589693,0.995670917755781,0.99459207532184,0.993515971550474,0.992445537705904, +00:27:38,1,1,1,0.998916095306902,0.997833646222578,0.996752336805836,0.995672208353983,0.994593687992291,0.993517905592693,0.992447791456448, +00:27:39,1,1,1,0.998916418002746,0.99783429133446,0.996753304179932,0.995673497829644,0.994595299259912,0.993519837952341,0.992450043246098, +00:27:40,1,1,1,0.998916740418188,0.997834935885727,0.996754270713276,0.995674786184493,0.994596909126862,0.993521768632008,0.992452293077872, +00:27:41,1,1,1,0.998917062553658,0.997835579877244,0.996755236407164,0.995676073420255,0.994598517595295,0.993523697634278,0.992454540954782, +00:27:42,1,1,1,0.998917384409587,0.99783622330987,0.996756201262885,0.995677359538649,0.994600124667363,0.99352562496173,0.992456786879833, +00:27:43,1,1,1,0.998917705986406,0.997836866184466,0.996757165281728,0.995678644541395,0.994601730345211,0.993527550616938,0.992459030856024, +00:27:44,1,1,1,0.998918027284542,0.997837508501888,0.99675812846498,0.995679928430205,0.994603334630981,0.993529474602471,0.99246127288635, +00:27:45,1,1,1,0.998918348304425,0.997838150262993,0.996759090813923,0.995681211206791,0.994604937526812,0.993531396920892,0.992463512973797, +00:27:46,1,1,1,0.998918669046481,0.997838791468634,0.996760052329839,0.99568249287286,0.994606539034834,0.993533317574759,0.992465751121346, +00:27:47,1,1,1,0.998918989511137,0.997839432119665,0.996761013014006,0.995683773430115,0.994608139157179,0.993535236566626,0.992467987331974, +00:27:48,1,1,1,0.998919309698819,0.997840072216935,0.996761972867699,0.995685052880257,0.99460973789597,0.99353715389904,0.992470221608648, +00:27:49,1,1,1,0.99891962960995,0.997840711761295,0.996762931892192,0.995686331224983,0.994611335253328,0.993539069574545,0.992472453954334, +00:27:50,1,1,1,0.998919949244956,0.99784135075359,0.996763890088755,0.995687608465986,0.994612931231369,0.993540983595679,0.992474684371988, +00:27:51,1,1,1,0.998920268604258,0.997841989194667,0.996764847458656,0.995688884604956,0.994614525832205,0.993542895964974,0.992476912864561, +00:27:52,1,1,1,0.998920587688279,0.99784262708537,0.99676580400316,0.995690159643581,0.994616119057943,0.993544806684958,0.992479139435, +00:27:53,1,1,1,0.998920906497441,0.997843264426541,0.996766759723531,0.995691433583544,0.994617710910687,0.993546715758153,0.992481364086245, +00:27:54,1,1,1,0.998921225032163,0.997843901219021,0.996767714621029,0.995692706426525,0.994619301392537,0.993548623187078,0.992483586821228, +00:27:55,1,1,1,0.998921543292866,0.997844537463648,0.996768668696912,0.995693978174199,0.994620890505586,0.993550528974245,0.992485807642879, +00:27:56,1,1,1,0.998921861279968,0.997845173161259,0.996769621952434,0.995695248828242,0.994622478251927,0.993552433122161,0.992488026554118, +00:27:57,1,1,1,0.998922178993887,0.99784580831269,0.99677057438885,0.995696518390322,0.994624064633646,0.993554335633329,0.992490243557864, +00:27:58,1,1,1,0.99892249643504,0.997846442918775,0.99677152600741,0.995697786862107,0.994625649652825,0.993556236510246,0.992492458657025, +00:27:59,1,1,1,0.998922813603843,0.997847076980347,0.99677247680936,0.995699054245259,0.994627233311543,0.993558135755406,0.992494671854508, +00:28:00,1,1,1,0.998923130500713,0.997847710498235,0.996773426795947,0.995700320541438,0.994628815611873,0.993560033371295,0.99249688315321, +00:28:01,1,1,1,0.998923447126063,0.997848343473268,0.996774375968414,0.995701585752303,0.994630396555887,0.993561929360397,0.992499092556026, +00:28:02,1,1,1,0.998923763480307,0.997848975906274,0.996775324328001,0.995702849879504,0.99463197614565,0.993563823725189,0.992501300065841, +00:28:03,1,1,1,0.998924079563859,0.997849607798078,0.996776271875945,0.995704112924694,0.994633554383223,0.993565716468143,0.992503505685539, +00:28:04,1,1,1,0.99892439537713,0.997850239149504,0.996777218613483,0.995705374889518,0.994635131270666,0.993567607591729,0.992505709417995, +00:28:05,1,1,1,0.998924710920531,0.997850869961375,0.996778164541848,0.995706635775621,0.99463670681003,0.993569497098408,0.992507911266079, +00:28:06,1,1,1,0.998925026194474,0.997851500234511,0.996779109662269,0.995707895584642,0.994638281003367,0.993571384990639,0.992510111232656, +00:28:07,1,1,1,0.998925341199368,0.997852129969731,0.996780053975976,0.995709154318218,0.994639853852721,0.993573271270874,0.992512309320584, +00:28:08,1,1,1,0.998925655935621,0.997852759167852,0.996780997484193,0.995710411977984,0.994641425360134,0.993575155941564,0.992514505532717, +00:28:09,1,1,1,0.998925970403643,0.997853387829691,0.996781940188144,0.995711668565569,0.994642995527643,0.993577039005149,0.992516699871903, +00:28:10,1,1,1,0.998926284603839,0.997854015956061,0.996782882089051,0.995712924082602,0.994644564357282,0.993578920464071,0.992518892340982, +00:28:11,1,1,1,0.998926598536617,0.997854643547776,0.996783823188131,0.995714178530707,0.994646131851081,0.993580800320762,0.992521082942792, +00:28:12,1,1,1,0.998926912202382,0.997855270605645,0.996784763486601,0.995715431911503,0.994647698011063,0.993582678577651,0.992523271680163, +00:28:13,1,1,1,0.998927225601539,0.997855897130478,0.996785702985674,0.995716684226609,0.994649262839252,0.993584555237163,0.99252545855592, +00:28:14,1,1,1,0.998927538734492,0.997856523123084,0.996786641686561,0.995717935477639,0.994650826337664,0.993586430301716,0.992527643572883, +00:28:15,1,1,1,0.998927851601644,0.997857148584268,0.996787579590471,0.995719185666205,0.994652388508312,0.993588303773726,0.992529826733865, +00:28:16,1,1,1,0.998928164203398,0.997857773514834,0.99678851669861,0.995720434793915,0.994653949353206,0.993590175655603,0.992532008041675, +00:28:17,1,1,1,0.998928476540156,0.997858397915586,0.996789453012184,0.995721682862373,0.994655508874352,0.993592045949751,0.992534187499115, +00:28:18,1,1,1,0.998928788612318,0.997859021787325,0.996790388532393,0.995722929873182,0.994657067073751,0.993593914658571,0.992536365108984, +00:28:19,1,1,1,0.998929100420284,0.997859645130851,0.996791323260436,0.995724175827939,0.9946586239534,0.993595781784459,0.992538540874072, +00:28:20,1,1,1,0.998929411964453,0.997860267946962,0.996792257197511,0.995725420728242,0.994660179515293,0.993597647329805,0.992540714797166, +00:28:21,1,1,1,0.998929723245225,0.997860890236454,0.996793190344812,0.99572666457568,0.994661733761419,0.993599511296996,0.992542886881046, +00:28:22,1,1,1,0.998930034262996,0.997861512000124,0.996794122703531,0.995727907371845,0.994663286693765,0.993601373688413,0.992545057128489, +00:28:23,1,1,1,0.998930345018164,0.997862133238763,0.996795054274859,0.995729149118322,0.994664838314313,0.993603234506433,0.992547225542264, +00:28:24,1,1,1,0.998930655511125,0.997862753953165,0.996795985059983,0.995730389816694,0.99466638862504,0.993605093753429,0.992549392125135, +00:28:25,1,1,1,0.998930965742275,0.99786337414412,0.996796915060088,0.995731629468541,0.99466793762792,0.993606951431767,0.992551556879861, +00:28:26,1,1,1,0.998931275712007,0.997863993812416,0.996797844276357,0.995732868075439,0.994669485324923,0.993608807543812,0.992553719809197, +00:28:27,1,1,1,0.998931585420715,0.997864612958841,0.99679877270997,0.995734105638963,0.994671031718017,0.99361066209192,0.992555880915889, +00:28:28,1,1,1,0.998931894868794,0.99786523158418,0.996799700362106,0.995735342160682,0.994672576809163,0.993612515078445,0.992558040202681, +00:28:29,1,1,1,0.998932204056634,0.997865849689218,0.996800627233941,0.995736577642165,0.99467412060032,0.993614366505738,0.992560197672311, +00:28:30,1,1,1,0.998932512984627,0.997866467274738,0.996801553326649,0.995737812084975,0.994675663093442,0.993616216376141,0.99256235332751, +00:28:31,1,1,1,0.998932821653165,0.99786708434152,0.9968024786414,0.995739045490674,0.994677204290482,0.993618064691995,0.992564507171005, +00:28:32,1,1,1,0.998933130062637,0.997867700890344,0.996803403179364,0.99574027786082,0.994678744193385,0.993619911455635,0.992566659205518, +00:28:33,1,1,1,0.998933438213433,0.997868316921989,0.996804326941708,0.995741509196969,0.994680282804096,0.993621756669391,0.992568809433764, +00:28:34,1,1,1,0.99893374610594,0.99786893243723,0.996805249929596,0.995742739500673,0.994681820124554,0.993623600335591,0.992570957858455, +00:28:35,1,1,1,0.998934053740546,0.997869547436844,0.996806172144191,0.99574396877348,0.994683356156694,0.993625442456555,0.992573104482296, +00:28:36,1,1,1,0.99893436111764,0.997870161921603,0.996807093586651,0.995745197016938,0.994684890902449,0.993627283034601,0.992575249307987, +00:28:37,1,1,1,0.998934668237605,0.997870775892279,0.996808014258136,0.995746424232589,0.994686424363748,0.993629122072041,0.992577392338223, +00:28:38,1,1,1,0.998934975100829,0.997871389349643,0.9968089341598,0.995747650421974,0.994687956542513,0.993630959571183,0.992579533575693, +00:28:39,1,1,1,0.998935281707695,0.997872002294465,0.996809853292797,0.995748875586628,0.994689487440667,0.993632795534331,0.992581673023083, +00:28:40,1,1,1,0.998935588058589,0.997872614727511,0.996810771658277,0.995750099728087,0.994691017060125,0.993634629963783,0.99258381068307, +00:28:41,1,1,1,0.998935894153891,0.997873226649547,0.99681168925739,0.995751322847883,0.994692545402802,0.993636462861834,0.992585946558331, +00:28:42,1,1,1,0.998936199993987,0.997873838061339,0.996812606091282,0.995752544947542,0.994694072470607,0.993638294230776,0.992588080651533, +00:28:43,1,1,1,0.998936505579256,0.997874448963649,0.996813522161096,0.99575376602859,0.994695598265446,0.993640124072892,0.992590212965339, +00:28:44,1,1,1,0.99893681091008,0.997875059357239,0.996814437467975,0.99575498609255,0.99469712278922,0.993641952390465,0.992592343502409, +00:28:45,1,1,1,0.998937115986839,0.997875669242869,0.996815352013059,0.995756205140941,0.994698646043829,0.993643779185771,0.992594472265395, +00:28:46,1,1,1,0.998937420809912,0.997876278621297,0.996816265797486,0.995757423175278,0.994700168031167,0.993645604461083,0.992596599256947, +00:28:47,1,1,1,0.998937725379679,0.997876887493281,0.99681717882239,0.995758640197076,0.994701688753125,0.993647428218668,0.992598724479706, +00:28:48,1,1,1,0.998938029696518,0.997877495859576,0.996818091088905,0.995759856207845,0.994703208211591,0.99364925046079,0.992600847936311, +00:28:49,1,1,1,0.998938333760804,0.997878103720937,0.996819002598162,0.995761071209092,0.994704726408447,0.993651071189709,0.992602969629394, +00:28:50,1,1,1,0.998938637572916,0.997878711078116,0.99681991335129,0.995762285202322,0.994706243345576,0.993652890407679,0.992605089561583, +00:28:51,1,1,1,0.998938941133229,0.997879317931864,0.996820823349415,0.995763498189037,0.994707759024852,0.993654708116951,0.992607207735501, +00:28:52,1,1,1,0.998939244442118,0.997879924282932,0.996821732593661,0.995764710170736,0.994709273448149,0.99365652431977,0.992609324153766, +00:28:53,1,1,1,0.998939547499957,0.997880530132068,0.996822641085152,0.995765921148914,0.994710786617336,0.99365833901838,0.99261143881899, +00:28:54,1,1,1,0.99893985030712,0.997881135480019,0.996823548825006,0.995767131125065,0.994712298534278,0.993660152215016,0.992613551733779, +00:28:55,1,1,1,0.99894015286398,0.99788174032753,0.996824455814343,0.995768340100678,0.994713809200838,0.993661963911913,0.992615662900738, +00:28:56,1,1,1,0.998940455170909,0.997882344675345,0.996825362054277,0.995769548077241,0.994715318618874,0.993663774111299,0.992617772322463, +00:28:57,1,1,1,0.998940757228278,0.997882948524208,0.996826267545923,0.995770755056239,0.994716826790241,0.993665582815399,0.992619880001546, +00:28:58,1,1,1,0.998941059036459,0.997883551874858,0.996827172290391,0.995771961039152,0.99471833371679,0.993667390026432,0.992621985940575, +00:28:59,1,1,1,0.998941360595821,0.997884154728037,0.996828076288792,0.99577316602746,0.994719839400369,0.993669195746616,0.992624090142133, +00:29:00,1,1,1,0.998941661906734,0.997884757084482,0.996828979542232,0.995774370022638,0.994721343842822,0.993670999978161,0.992626192608796, +00:29:01,1,1,1,0.998941962969566,0.99788535894493,0.996829882051816,0.99577557302616,0.99472284704599,0.993672802723275,0.992628293343138, +00:29:02,1,1,1,0.998942263784685,0.997885960310117,0.996830783818648,0.995776775039495,0.994724349011709,0.993674603984162,0.992630392347725, +00:29:03,1,1,1,0.998942564352459,0.997886561180777,0.996831684843827,0.995777976064111,0.994725849741814,0.993676403763019,0.992632489625121, +00:29:04,1,1,1,0.998942864673253,0.997887161557642,0.996832585128454,0.995779176101473,0.994727349238133,0.993678202062043,0.992634585177883, +00:29:05,1,1,1,0.998943164747435,0.997887761441444,0.996833484673623,0.995780375153041,0.994728847502495,0.993679998883424,0.992636679008564, +00:29:06,1,1,1,0.998943464575368,0.997888360832913,0.996834383480431,0.995781573220276,0.994730344536721,0.993681794229347,0.992638771119712, +00:29:07,1,1,1,0.998943764157417,0.997888959732777,0.996835281549969,0.995782770304633,0.994731840342631,0.993683588101996,0.992640861513869, +00:29:08,1,1,1,0.998944063493946,0.997889558141764,0.996836178883328,0.995783966407565,0.994733334922042,0.993685380503548,0.992642950193575, +00:29:09,1,1,1,0.998944362585318,0.997890156060598,0.996837075481595,0.995785161530523,0.994734828276765,0.993687171436177,0.992645037161362, +00:29:10,1,1,1,0.998944661431895,0.997890753490005,0.996837971345858,0.995786355674955,0.99473632040861,0.993688960902053,0.992647122419759, +00:29:11,1,1,1,0.998944960034038,0.997891350430707,0.996838866477199,0.995787548842306,0.994737811319383,0.99369074890334,0.992649205971289, +00:29:12,1,1,1,0.99894525839211,0.997891946883425,0.996839760876701,0.995788741034017,0.994739301010885,0.993692535442201,0.992651287818471, +00:29:13,1,1,1,0.998945556506469,0.997892542848881,0.996840654545444,0.995789932251529,0.994740789484916,0.993694320520793,0.992653367963819, +00:29:14,1,1,1,0.998945854377476,0.997893138327791,0.996841547484506,0.995791122496278,0.99474227674327,0.993696104141269,0.992655446409843, +00:29:15,1,1,1,0.998946152005489,0.997893733320875,0.996842439694962,0.995792311769699,0.99474376278774,0.993697886305777,0.992657523159046, +00:29:16,1,1,1,0.998946449390866,0.997894327828848,0.996843331177886,0.995793500073221,0.994745247620113,0.993699667016463,0.992659598213928, +00:29:17,1,1,1,0.998946746533965,0.997894921852425,0.99684422193435,0.995794687408275,0.994746731242176,0.993701446275468,0.992661671576984, +00:29:18,1,1,1,0.998947043435143,0.997895515392319,0.996845111965423,0.995795873776285,0.994748213655709,0.993703224084928,0.992663743250704, +00:29:19,1,1,1,0.998947340094756,0.997896108449242,0.996846001272174,0.995797059178675,0.994749694862491,0.993705000446977,0.992665813237574, +00:29:20,1,1,1,0.998947636513159,0.997896701023904,0.996846889855667,0.995798243616865,0.994751174864296,0.993706775363741,0.992667881540074, +00:29:21,1,1,1,0.998947932690708,0.997897293117015,0.996847777716967,0.995799427092272,0.994752653662897,0.993708548837347,0.99266994816068, +00:29:22,1,1,1,0.998948228627755,0.997897884729283,0.996848664857134,0.995800609606313,0.994754131260061,0.993710320869915,0.992672013101863, +00:29:23,1,1,1,0.998948524324655,0.997898475861414,0.996849551277228,0.995801791160398,0.994755607657553,0.993712091463561,0.99267407636609, +00:29:24,1,1,1,0.99894881978176,0.997899066514114,0.996850436978307,0.995802971755938,0.994757082857134,0.993713860620398,0.992676137955822, +00:29:25,1,1,1,0.998949114999422,0.997899656688085,0.996851321961426,0.99580415139434,0.994758556860563,0.993715628342534,0.992678197873517, +00:29:26,1,1,1,0.998949409977994,0.997900246384032,0.996852206227639,0.995805330077008,0.994760029669594,0.993717394632074,0.992680256121627, +00:29:27,1,1,1,0.998949704717825,0.997900835602654,0.996853089777997,0.995806507805343,0.994761501285978,0.993719159491118,0.9926823127026, +00:29:28,1,1,1,0.998949999219265,0.997901424344653,0.99685397261355,0.995807684580744,0.994762971711464,0.993720922921762,0.992684367618879, +00:29:29,1,1,1,0.998950293482664,0.997902012610726,0.996854854735344,0.995808860404607,0.994764440947796,0.9937226849261,0.992686420872903, +00:29:30,1,1,1,0.998950587508372,0.99790260040157,0.996855736144427,0.995810035278327,0.994765908996716,0.993724445506219,0.992688472467105, +00:29:31,1,1,1,0.998950881296734,0.997903187717882,0.99685661684184,0.995811209203295,0.994767375859962,0.993726204664205,0.992690522403915, +00:29:32,1,1,1,0.998951174848101,0.997903774560356,0.996857496828626,0.995812382180897,0.994768841539269,0.993727962402138,0.992692570685759, +00:29:33,1,1,1,0.998951468162817,0.997904360929686,0.996858376105825,0.995813554212522,0.994770306036368,0.993729718722095,0.992694617315055, +00:29:34,1,1,1,0.99895176124123,0.997904946826563,0.996859254674473,0.995814725299551,0.994771769352989,0.993731473626149,0.99269666229422, +00:29:35,1,1,1,0.998952054083684,0.997905532251677,0.996860132535607,0.995815895443364,0.994773231490854,0.993733227116368,0.992698705625665, +00:29:36,1,1,1,0.998952346690524,0.997906117205719,0.996861009690261,0.995817064645341,0.994774692451688,0.993734979194818,0.992700747311795, +00:29:37,1,1,1,0.998952639062096,0.997906701689377,0.996861886139465,0.995818232906856,0.994776152237208,0.993736729863559,0.992702787355014, +00:29:38,1,1,1,0.998952931198741,0.997907285703336,0.99686276188425,0.995819400229282,0.99477761084913,0.99373847912465,0.992704825757719, +00:29:39,1,1,1,0.998953223100803,0.997907869248283,0.996863636925645,0.995820566613989,0.994779068289165,0.993740226980143,0.992706862522301, +00:29:40,1,1,1,0.998953514768625,0.997908452324902,0.996864511264674,0.995821732062345,0.994780524559023,0.993741973432088,0.992708897651151, +00:29:41,1,1,1,0.998953806202547,0.997909034933875,0.996865384902361,0.995822896575714,0.994781979660408,0.99374371848253,0.992710931146652, +00:29:42,1,1,1,0.998954097402912,0.997909617075885,0.99686625783973,0.99582406015546,0.994783433595025,0.993745462133512,0.992712963011183, +00:29:43,1,1,1,0.998954388370058,0.997910198751611,0.996867130077799,0.995825222802941,0.994784886364572,0.993747204387071,0.99271499324712, +00:29:44,1,1,1,0.998954679104326,0.997910779961733,0.996868001617588,0.995826384519516,0.994786337970744,0.993748945245242,0.992717021856832, +00:29:45,1,1,1,0.998954969606054,0.997911360706927,0.996868872460112,0.995827545306539,0.994787788415235,0.993750684710054,0.992719048842686, +00:29:46,1,1,1,0.998955259875582,0.997911940987872,0.996869742606387,0.995828705165362,0.994789237699735,0.993752422783535,0.992721074207044, +00:29:47,1,1,1,0.998955549913246,0.997912520805242,0.996870612057424,0.995829864097334,0.99479068582593,0.993754159467706,0.992723097952262, +00:29:48,1,1,1,0.998955839719385,0.99791310015971,0.996871480814234,0.995831022103804,0.994792132795503,0.993755894764588,0.992725120080694, +00:29:49,1,1,1,0.998956129294333,0.99791367905195,0.996872348877826,0.995832179186116,0.994793578610135,0.993757628676194,0.992727140594688, +00:29:50,1,1,1,0.998956418638428,0.997914257482633,0.996873216249206,0.995833335345611,0.994795023271503,0.993759361204537,0.992729159496587, +00:29:51,1,1,1,0.998956707752005,0.997914835452429,0.996874082929381,0.995834490583629,0.99479646678128,0.993761092351624,0.992731176788733, +00:29:52,1,1,1,0.998956996635398,0.997915412962008,0.996874948919352,0.995835644901509,0.994797909141138,0.993762822119459,0.992733192473458, +00:29:53,1,1,1,0.99895728528894,0.997915990012036,0.996875814220121,0.995836798300582,0.994799350352744,0.993764550510041,0.992735206553096, +00:29:54,1,1,1,0.998957573712966,0.99791656660318,0.996876678832687,0.995837950782184,0.994800790417763,0.993766277525368,0.992737219029971, +00:29:55,1,1,1,0.998957861907808,0.997917142736106,0.996877542758048,0.995839102347642,0.994802229337856,0.993768003167432,0.992739229906407, +00:29:56,1,1,1,0.998958149873799,0.997917718411477,0.9968784059972,0.995840252998283,0.994803667114681,0.993769727438222,0.992741239184721, +00:29:57,1,1,1,0.998958437611268,0.997918293629956,0.996879268551136,0.995841402735433,0.994805103749894,0.993771450339723,0.992743246867226, +00:29:58,1,1,1,0.998958725120549,0.997918868392204,0.996880130420848,0.995842551560414,0.994806539245147,0.993773171873917,0.992745252956233, +00:29:59,1,1,1,0.99895901240197,0.997919442698882,0.996880991607325,0.995843699474546,0.994807973602089,0.993774892042781,0.992747257454045, +00:30:00,1,1,1,0.998959299455862,0.997920016550648,0.996881852111557,0.995844846479144,0.994809406822366,0.993776610848289,0.992749260362963, +00:30:01,1,1,1,0.998959586282553,0.997920589948161,0.99688271193453,0.995845992575526,0.994810838907621,0.993778328292413,0.992751261685284, +00:30:02,1,1,1,0.998959872882372,0.997921162892077,0.996883571077228,0.995847137765002,0.994812269859494,0.993780044377118,0.992753261423299, +00:30:03,1,1,1,0.998960159255646,0.997921735383051,0.996884429540634,0.995848282048882,0.994813699679622,0.993781759104369,0.992755259579297, +00:30:04,1,1,1,0.998960445402704,0.997922307421737,0.996885287325728,0.995849425428475,0.994815128369639,0.993783472476124,0.992757256155561, +00:30:05,1,1,1,0.99896073132387,0.997922879008788,0.99688614443349,0.995850567905086,0.994816555931175,0.993785184494339,0.99275925115437, +00:30:06,1,1,1,0.998961017019472,0.997923450144857,0.996887000864897,0.995851709480015,0.994817982365858,0.993786895160966,0.992761244578, +00:30:07,1,1,1,0.998961302489835,0.997924020830592,0.996887856620924,0.995852850154566,0.994819407675312,0.993788604477955,0.99276323642872, +00:30:08,1,1,1,0.998961587735283,0.997924591066644,0.996888711702546,0.995853989930033,0.994820831861161,0.99379031244725,0.992765226708799, +00:30:09,1,1,1,0.998961872756141,0.997925160853661,0.996889566110733,0.995855128807715,0.994822254925021,0.993792019070793,0.992767215420498, +00:30:10,1,1,1,0.998962157552732,0.997925730192289,0.996890419846456,0.995856266788902,0.99482367686851,0.99379372435052,0.992769202566075, +00:30:11,1,1,1,0.998962442125379,0.997926299083175,0.996891272910683,0.995857403874886,0.994825097693239,0.993795428288368,0.992771188147785, +00:30:12,1,1,1,0.998962726474405,0.997926867526962,0.99689212530438,0.995858540066956,0.994826517400819,0.993797130886265,0.992773172167877, +00:30:13,1,1,1,0.99896301060013,0.997927435524294,0.996892977028512,0.995859675366396,0.994827935992856,0.99379883214614,0.992775154628598, +00:30:14,1,1,1,0.998963294502877,0.997928003075812,0.996893828084042,0.995860809774491,0.994829353470955,0.993800532069915,0.992777135532189, +00:30:15,1,1,1,0.998963578182966,0.997928570182159,0.996894678471931,0.99586194329252,0.994830769836714,0.993802230659511,0.992779114880886, +00:30:16,1,1,1,0.998963861640717,0.997929136843972,0.996895528193138,0.995863075921764,0.994832185091734,0.993803927916843,0.992781092676924, +00:30:17,1,1,1,0.99896414487645,0.997929703061892,0.99689637724862,0.995864207663499,0.994833599237608,0.993805623843826,0.992783068922532, +00:30:18,1,1,1,0.998964427890482,0.997930268836556,0.996897225639335,0.995865338518998,0.994835012275929,0.993807318442368,0.992785043619935, +00:30:19,1,1,1,0.998964710683133,0.997930834168598,0.996898073366234,0.995866468489533,0.994836424208285,0.993809011714375,0.992787016771354, +00:30:20,1,1,1,0.99896499325472,0.997931399058656,0.996898920430271,0.995867597576374,0.994837835036263,0.993810703661749,0.992788988379005, +00:30:21,1,1,1,0.99896527560556,0.997931963507361,0.996899766832396,0.995868725780786,0.994839244761446,0.993812394286389,0.992790958445102, +00:30:22,1,1,1,0.998965557735969,0.997932527515348,0.996900612573558,0.995869853104036,0.994840653385415,0.99381408359019,0.992792926971853, +00:30:23,1,1,1,0.998965839646263,0.997933091083247,0.996901457654703,0.995870979547385,0.994842060909745,0.993815771575045,0.992794893961463, +00:30:24,1,1,1,0.998966121336759,0.997933654211688,0.996902302076778,0.995872105112094,0.994843467336013,0.993817458242841,0.992796859416132, +00:30:25,1,1,1,0.998966402807769,0.997934216901302,0.996903145840724,0.995873229799419,0.99484487266579,0.993819143595463,0.992798823338058, +00:30:26,1,1,1,0.998966684059609,0.997934779152715,0.996903988947486,0.995874353610617,0.994846276900644,0.993820827634793,0.992800785729432, +00:30:27,1,1,1,0.998966965092592,0.997935340966556,0.996904831398001,0.99587547654694,0.994847680042141,0.993822510362709,0.992802746592443, +00:30:28,1,1,1,0.998967245907031,0.997935902343449,0.996905673193209,0.995876598609639,0.994849082091844,0.993824191781085,0.992804705929276, +00:30:29,1,1,1,0.998967526503238,0.997936463284019,0.996906514334046,0.995877719799963,0.994850483051313,0.993825871891792,0.992806663742111, +00:30:30,1,1,1,0.998967806881526,0.997937023788889,0.996907354821446,0.995878840119157,0.994851882922106,0.993827550696698,0.992808620033124, +00:30:31,1,1,1,0.998968087042205,0.997937583858682,0.996908194656345,0.995879959568467,0.994853281705776,0.993829228197667,0.992810574804489, +00:30:32,1,1,1,0.998968366985586,0.997938143494019,0.996909033839671,0.995881078149132,0.994854679403876,0.99383090439656,0.992812528058374, +00:30:33,1,1,1,0.99896864671198,0.99793870269552,0.996909872372356,0.995882195862392,0.994856076017953,0.993832579295235,0.992814479796942, +00:30:34,1,1,1,0.998968926221695,0.997939261463804,0.996910710255327,0.995883312709486,0.994857471549554,0.993834252895544,0.992816430022355, +00:30:35,1,1,1,0.998969205515041,0.997939819799488,0.99691154748951,0.995884428691647,0.994858866000221,0.993835925199339,0.99281837873677, +00:30:36,1,1,1,0.998969484592327,0.997940377703189,0.996912384075831,0.995885543810107,0.994860259371496,0.993837596208468,0.992820325942339, +00:30:37,1,1,1,0.998969763453859,0.997940935175523,0.996913220015212,0.995886658066098,0.994861651664915,0.993839265924773,0.99282227164121, +00:30:38,1,1,1,0.998970042099946,0.997941492217103,0.996914055308575,0.995887771460847,0.994863042882013,0.993840934350095,0.99282421583553, +00:30:39,1,1,1,0.998970320530895,0.997942048828544,0.996914889956838,0.99588888399558,0.994864433024321,0.993842601486272,0.992826158527438, +00:30:40,1,1,1,0.99897059874701,0.997942605010457,0.996915723960921,0.995889995671521,0.994865822093368,0.993844267335138,0.992828099719072, +00:30:41,1,1,1,0.998970876748598,0.997943160763453,0.996916557321738,0.995891106489891,0.994867210090682,0.993845931898522,0.992830039412565, +00:30:42,1,1,1,0.998971154535965,0.997943716088142,0.996917390040206,0.995892216451909,0.994868597017785,0.993847595178252,0.992831977610046, +00:30:43,1,1,1,0.998971432109414,0.997944270985132,0.996918222117236,0.995893325558792,0.994869982876197,0.993849257176151,0.99283391431364, +00:30:44,1,1,1,0.998971709469249,0.997944825455033,0.99691905355374,0.995894433811754,0.994871367667437,0.99385091789404,0.99283584952547, +00:30:45,1,1,1,0.998971986615774,0.997945379498449,0.996919884350627,0.995895541212009,0.99487275139302,0.993852577333737,0.992837783247652, +00:30:46,1,1,1,0.998972263549292,0.997945933115987,0.996920714508805,0.995896647760765,0.994874134054458,0.993854235497054,0.992839715482301, +00:30:47,1,1,1,0.998972540270105,0.99794648630825,0.996921544029181,0.995897753459233,0.994875515653261,0.993855892385803,0.992841646231526, +00:30:48,1,1,1,0.998972816778514,0.997947039075843,0.99692237291266,0.995898858308617,0.994876896190935,0.993857548001791,0.992843575497434, +00:30:49,1,1,1,0.998973093074822,0.997947591419366,0.996923201160143,0.99589996231012,0.994878275668984,0.993859202346821,0.992845503282126, +00:30:50,1,1,1,0.998973369159328,0.997948143339422,0.996924028772534,0.995901065464945,0.994879654088911,0.993860855422695,0.992847429587702, +00:30:51,1,1,1,0.998973645032332,0.99794869483661,0.99692485575073,0.995902167774291,0.994881031452214,0.993862507231209,0.992849354416256, +00:30:52,1,1,1,0.998973920694135,0.99794924591153,0.99692568209563,0.995903269239354,0.994882407760388,0.993864157774158,0.992851277769879, +00:30:53,1,1,1,0.998974196145035,0.997949796564778,0.996926507808132,0.99590436986133,0.994883783014927,0.993865807053334,0.992853199650658, +00:30:54,1,1,1,0.998974471385331,0.997950346796951,0.996927332889128,0.995905469641412,0.994885157217321,0.993867455070522,0.992855120060676, +00:30:55,1,1,1,0.99897474641532,0.997950896608646,0.996928157339514,0.995906568580791,0.994886530369059,0.993869101827509,0.992857039002013, +00:30:56,1,1,1,0.998975021235301,0.997951446000456,0.99692898116018,0.995907666680653,0.994887902471625,0.993870747326075,0.992858956476744, +00:30:57,1,1,1,0.998975295845569,0.997951994972976,0.996929804352016,0.995908763942187,0.994889273526501,0.993872391567998,0.992860872486943, +00:30:58,1,1,1,0.998975570246421,0.997952543526798,0.996930626915911,0.995909860366577,0.994890643535169,0.993874034555053,0.992862787034676, +00:30:59,1,1,1,0.998975844438154,0.997953091662512,0.996931448852751,0.995910955955003,0.994892012499104,0.993875676289012,0.992864700122009, +00:31:00,1,1,1,0.998976118421061,0.997953639380709,0.996932270163422,0.995912050708647,0.994893380419781,0.993877316771643,0.992866611751003, +00:31:01,1,1,1,0.998976392195439,0.997954186681979,0.996933090848807,0.995913144628686,0.994894747298672,0.99387895600471,0.992868521923713, +00:31:02,1,1,1,0.998976665761581,0.99795473356691,0.996933910909788,0.995914237716296,0.994896113137246,0.993880593989977,0.992870430642195, +00:31:03,1,1,1,0.99897693911978,0.997955280036088,0.996934730347245,0.995915329972649,0.99489747793697,0.993882230729201,0.992872337908497, +00:31:04,1,1,1,0.998977212270331,0.997955826090099,0.996935549162058,0.995916421398918,0.994898841699307,0.993883866224139,0.992874243724666, +00:31:05,1,1,1,0.998977485213524,0.99795637172953,0.996936367355102,0.995917511996273,0.994900204425719,0.993885500476543,0.992876148092744, +00:31:06,1,1,1,0.998977757949654,0.997956916954962,0.996937184927255,0.995918601765879,0.994901566117663,0.993887133488162,0.992878051014769, +00:31:07,1,1,1,0.99897803047901,0.99795746176698,0.99693800187939,0.995919690708903,0.994902926776597,0.993888765260743,0.992879952492777, +00:31:08,1,1,1,0.998978302801885,0.997958006166165,0.99693881821238,0.995920778826507,0.994904286403973,0.993890395796029,0.992881852528798, +00:31:09,1,1,1,0.998978574918568,0.997958550153098,0.996939633927095,0.995921866119852,0.994905645001242,0.993892025095759,0.992883751124861, +00:31:10,1,1,1,0.99897884682935,0.997959093728359,0.996940449024404,0.995922952590097,0.994907002569852,0.99389365316167,0.99288564828299, +00:31:11,1,1,1,0.998979118534519,0.997959636892525,0.996941263505177,0.9959240382384,0.994908359111248,0.993895279995496,0.992887544005204, +00:31:12,1,1,1,0.998979390034366,0.997960179646176,0.996942077370278,0.995925123065913,0.994909714626875,0.993896905598968,0.992889438293522, +00:31:13,1,1,1,0.998979661329178,0.997960721989887,0.996942890620572,0.995926207073791,0.994911069118171,0.993898529973812,0.992891331149954, +00:31:14,1,1,1,0.998979932419243,0.997961263924234,0.996943703256923,0.995927290263183,0.994912422586574,0.993900153121754,0.992893222576512, +00:31:15,1,1,1,0.998980203304849,0.997961805449792,0.996944515280192,0.995928372635238,0.994913775033521,0.993901775044514,0.992895112575202, +00:31:16,1,1,1,0.998980473986283,0.997962346567133,0.996945326691239,0.995929454191103,0.994915126460442,0.993903395743811,0.992897001148025, +00:31:17,1,1,1,0.99898074446383,0.997962887276832,0.996946137490922,0.995930534931922,0.994916476868769,0.99390501522136,0.99289888829698, +00:31:18,1,1,1,0.998981014737777,0.997963427579458,0.996946947680099,0.995931614858836,0.994917826259929,0.993906633478872,0.992900774024063, +00:31:19,1,1,1,0.998981284808409,0.997963967475582,0.996947757259625,0.995932693972987,0.994919174635346,0.993908250518058,0.992902658331265, +00:31:20,1,1,1,0.99898155467601,0.997964506965775,0.996948566230354,0.995933772275513,0.994920521996444,0.993909866340622,0.992904541220574, +00:31:21,1,1,1,0.998981824340866,0.997965046050603,0.996949374593138,0.99593484976755,0.994921868344641,0.993911480948268,0.992906422693976, +00:31:22,1,1,1,0.99898209380326,0.997965584730635,0.996950182348828,0.995935926450232,0.994923213681355,0.993913094342695,0.992908302753449, +00:31:23,1,1,1,0.998982363063475,0.997966123006437,0.996950989498273,0.995937002324691,0.994924558008002,0.993914706525601,0.992910181400973, +00:31:24,1,1,1,0.998982632121794,0.997966660878575,0.996951796042321,0.995938077392057,0.994925901325992,0.993916317498678,0.99291205863852, +00:31:25,1,1,1,0.998982900978499,0.997967198347611,0.996952601981818,0.995939151653459,0.994927243636736,0.993917927263618,0.992913934468062, +00:31:26,1,1,1,0.998983169633872,0.997967735414111,0.99695340731761,0.995940225110022,0.994928584941641,0.993919535822109,0.992915808891566, +00:31:27,1,1,1,0.998983438088194,0.997968272078636,0.996954212050539,0.995941297762871,0.994929925242112,0.993921143175835,0.992917681910993, +00:31:28,1,1,1,0.998983706341747,0.997968808341747,0.996955016181447,0.995942369613128,0.994931264539551,0.993922749326478,0.992919553528305, +00:31:29,1,1,1,0.99898397439481,0.997969344204005,0.996955819711174,0.995943440661912,0.994932602835357,0.993924354275716,0.992921423745458, +00:31:30,1,1,1,0.998984242247662,0.99796987966597,0.996956622640559,0.995944510910342,0.994933940130928,0.993925958025226,0.992923292564404, +00:31:31,1,1,1,0.998984509900585,0.997970414728199,0.99695742497044,0.995945580359534,0.994935276427658,0.99392756057668,0.992925159987094, +00:31:32,1,1,1,0.998984777353855,0.99797094939125,0.996958226701652,0.995946649010602,0.99493661172694,0.993929161931747,0.992927026015472, +00:31:33,1,1,1,0.998985044607752,0.997971483655679,0.99695902783503,0.995947716864659,0.994937946030163,0.993930762092096,0.992928890651482, +00:31:34,1,1,1,0.998985311662553,0.997972017522041,0.996959828371406,0.995948783922813,0.994939279338715,0.993932361059389,0.992930753897063, +00:31:35,1,1,1,0.998985578518536,0.997972550990891,0.996960628311611,0.995949850186174,0.994940611653981,0.993933958835287,0.992932615754149, +00:31:36,1,1,1,0.998985845175977,0.997973084062783,0.996961427656476,0.995950915655848,0.994941942977342,0.993935555421449,0.992934476224674, +00:31:37,1,1,1,0.998986111635153,0.997973616738269,0.996962226406829,0.99595198033294,0.99494327331018,0.99393715081953,0.992936335310566, +00:31:38,1,1,1,0.998986377896339,0.997974149017899,0.996963024563497,0.99595304421855,0.99494460265387,0.993938745031181,0.992938193013751, +00:31:39,1,1,1,0.998986643959811,0.997974680902225,0.996963822127305,0.99595410731378,0.994945931009789,0.993940338058052,0.992940049336149, +00:31:40,1,1,1,0.998986909825843,0.997975212391796,0.996964619099077,0.995955169619729,0.994947258379309,0.993941929901788,0.992941904279681, +00:31:41,1,1,1,0.998987175494711,0.997975743487161,0.996965415479636,0.995956231137492,0.9949485847638,0.993943520564035,0.99294375784626, +00:31:42,1,1,1,0.998987440966687,0.997976274188867,0.996966211269803,0.995957291868164,0.99494991016463,0.99394511004643,0.992945610037799, +00:31:43,1,1,1,0.998987706242046,0.997976804497461,0.996967006470397,0.995958351812837,0.994951234583163,0.993946698350613,0.992947460856206, +00:31:44,1,1,1,0.99898797132106,0.997977334413487,0.996967801082237,0.995959410972604,0.994952558020764,0.993948285478218,0.992949310303386, +00:31:45,1,1,1,0.998988236204001,0.997977863937492,0.99696859510614,0.995960469348551,0.994953880478793,0.993949871430877,0.992951158381241, +00:31:46,1,1,1,0.998988500891142,0.997978393070018,0.99696938854292,0.995961526941766,0.994955201958607,0.993951456210218,0.992953005091668, +00:31:47,1,1,1,0.998988765382754,0.997978921811608,0.996970181393392,0.995962583753333,0.994956522461562,0.993953039817867,0.992954850436563, +00:31:48,1,1,1,0.998989029679107,0.997979450162804,0.996970973658367,0.995963639784337,0.994957841989012,0.993954622255448,0.992956694417818, +00:31:49,1,1,1,0.998989293780474,0.997979978124147,0.996971765338658,0.995964695035857,0.994959160542307,0.993956203524581,0.99295853703732, +00:31:50,1,1,1,0.998989557687122,0.997980505696177,0.996972556435073,0.995965749508973,0.994960478122797,0.993957783626883,0.992960378296954, +00:31:51,1,1,1,0.998989821399323,0.997981032879432,0.996973346948421,0.995966803204763,0.994961794731827,0.993959362563969,0.992962218198602, +00:31:52,1,1,1,0.998990084917345,0.99798155967445,0.996974136879508,0.995967856124301,0.994963110370741,0.99396094033745,0.992964056744143, +00:31:53,1,1,1,0.998990348241456,0.99798208608177,0.996974926229139,0.995968908268661,0.994964425040881,0.993962516948936,0.992965893935451, +00:31:54,1,1,1,0.998990611371925,0.997982612101925,0.996975714998119,0.995969959638914,0.994965738743585,0.993964092400031,0.992967729774398, +00:31:55,1,1,1,0.99899087430902,0.997983137735452,0.99697650318725,0.995971010236131,0.99496705148019,0.993965666692341,0.992969564262851, +00:31:56,1,1,1,0.998991137053007,0.997983662982884,0.996977290797333,0.995972060061379,0.994968363252031,0.993967239827464,0.992971397402678, +00:31:57,1,1,1,0.998991399604154,0.997984187844756,0.996978077829167,0.995973109115724,0.994969674060439,0.993968811806999,0.992973229195738, +00:31:58,1,1,1,0.998991661962726,0.997984712321599,0.996978864283551,0.99597415740023,0.994970983906746,0.993970382632541,0.992975059643892, +00:31:59,1,1,1,0.99899192412899,0.997985236413944,0.996979650161282,0.995975204915959,0.994972292792276,0.99397195230568,0.992976888748993, +00:32:00,1,1,1,0.998992186103211,0.997985760122323,0.996980435463154,0.995976251663972,0.994973600718357,0.993973520828008,0.992978716512894, +00:32:01,1,1,1,0.998992447885653,0.997986283447264,0.996981220189963,0.995977297645327,0.99497490768631,0.993975088201109,0.992980542937445, +00:32:02,1,1,1,0.998992709476581,0.997986806389296,0.996982004342501,0.99597834286108,0.994976213697455,0.993976654426567,0.992982368024489, +00:32:03,1,1,1,0.998992970876258,0.997987328948946,0.996982787921558,0.995979387312287,0.994977518753112,0.993978219505964,0.99298419177587, +00:32:04,1,1,1,0.99899323208495,0.997987851126742,0.996983570927925,0.995980431,0.994978822854595,0.993979783440878,0.992986014193427, +00:32:05,1,1,1,0.998993493102917,0.99798837292321,0.99698435336239,0.995981473925271,0.994980126003218,0.993981346232883,0.992987835278995, +00:32:06,1,1,1,0.998993753930423,0.997988894338873,0.996985135225741,0.995982516089148,0.994981428200293,0.993982907883553,0.992989655034408, +00:32:07,1,1,1,0.99899401456773,0.997989415374256,0.996985916518763,0.995983557492679,0.994982729447127,0.993984468394456,0.992991473461495, +00:32:08,1,1,1,0.9989942750151,0.997989936029883,0.996986697242241,0.99598459813691,0.994984029745029,0.993986027767162,0.992993290562081, +00:32:09,1,1,1,0.998994535272794,0.997990456306274,0.996987477396956,0.995985638022885,0.994985329095301,0.993987586003232,0.992995106337991, +00:32:10,1,1,1,0.998994795341071,0.997990976203952,0.996988256983692,0.995986677151644,0.994986627499246,0.99398914310423,0.992996920791043, +00:32:11,1,1,1,0.998995055220194,0.997991495723436,0.996989036003228,0.995987715524229,0.994987924958164,0.993990699071714,0.992998733923055, +00:32:12,1,1,1,0.998995314910421,0.997992014865247,0.996989814456343,0.995988753141677,0.994989221473352,0.99399225390724,0.993000545735841, +00:32:13,1,1,1,0.998995574412011,0.997992533629902,0.996990592343815,0.995989790005026,0.994990517046106,0.993993807612362,0.993002356231209, +00:32:14,1,1,1,0.998995833725225,0.997993052017919,0.99699136966642,0.99599082611531,0.994991811677718,0.99399536018863,0.993004165410969, +00:32:15,1,1,1,0.998996092850319,0.997993570029815,0.996992146424933,0.995991861473561,0.994993105369479,0.993996911637592,0.993005973276923, +00:32:16,1,1,1,0.998996351787553,0.997994087666105,0.996992922620126,0.99599289608081,0.994994398122677,0.993998461960795,0.993007779830874, +00:32:17,1,1,1,0.998996610537183,0.997994604927305,0.996993698252773,0.995993929938088,0.9949956899386,0.99400001115978,0.993009585074617, +00:32:18,1,1,1,0.998996869099467,0.997995121813928,0.996994473323644,0.995994963046421,0.99499698081853,0.994001559236087,0.993011389009949, +00:32:19,1,1,1,0.998997127474661,0.997995638326488,0.996995247833508,0.995995995406836,0.994998270763749,0.994003106191254,0.993013191638661, +00:32:20,1,1,1,0.998997385663022,0.997996154465496,0.996996021783134,0.995997027020355,0.994999559775538,0.994004652026815,0.993014992962541, +00:32:21,1,1,1,0.998997643664805,0.997996670231464,0.996996795173288,0.995998057888002,0.995000847855172,0.994006196744302,0.993016792983374, +00:32:22,1,1,1,0.998997901480265,0.997997185624903,0.996997568004736,0.995999088010796,0.995002135003928,0.994007740345245,0.993018591702944, +00:32:23,1,1,1,0.998998159109659,0.997997700646321,0.996998340278242,0.996000117389756,0.995003421223078,0.99400928283117,0.993020389123028, +00:32:24,1,1,1,0.998998416553239,0.997998215296229,0.996999111994569,0.996001146025899,0.995004706513894,0.994010824203601,0.993022185245403, +00:32:25,1,1,1,0.998998673811259,0.997998729575132,0.996999883154477,0.99600217392024,0.995005990877642,0.99401236446406,0.993023980071842, +00:32:26,1,1,1,0.998998930883975,0.997999243483539,0.997000653758728,0.996003201073792,0.99500727431559,0.994013903614065,0.993025773604115, +00:32:27,1,1,1,0.998999187771638,0.997999757021955,0.99700142380808,0.996004227487567,0.995008556829001,0.994015441655132,0.993027565843988, +00:32:28,1,1,1,0.998999444474501,0.998000270190885,0.99700219330329,0.996005253162575,0.995009838419138,0.994016978588775,0.993029356793226, +00:32:29,1,1,1,0.998999700992816,0.998000782990834,0.997002962245115,0.996006278099823,0.99501111908726,0.994018514416504,0.993031146453589, +00:32:30,1,1,1,0.998999957326836,0.998001295422305,0.99700373063431,0.996007302300318,0.995012398834625,0.994020049139828,0.993032934826835, +00:32:31,1,1,1,0.999000213476811,0.9980018074858,0.997004498471628,0.996008325765065,0.995013677662488,0.994021582760253,0.993034721914718, +00:32:32,1,1,1,0.999000469442992,0.998002319181821,0.997005265757821,0.996009348495066,0.995014955572102,0.994023115279281,0.993036507718991, +00:32:33,1,1,1,0.99900072522563,0.998002830510869,0.997006032493641,0.996010370491322,0.995016232564718,0.994024646698413,0.993038292241401, +00:32:34,1,1,1,0.999000980824976,0.998003341473444,0.997006798679837,0.996011391754833,0.995017508641584,0.994026177019146,0.993040075483694, +00:32:35,1,1,1,0.999001236241278,0.998003852070045,0.997007564317157,0.996012412286596,0.995018783803949,0.994027706242976,0.993041857447613, +00:32:36,1,1,1,0.999001491474785,0.99800436230117,0.997008329406349,0.996013432087607,0.995020058053055,0.994029234371396,0.993043638134897, +00:32:37,1,1,1,0.999001746525748,0.998004872167316,0.997009093948158,0.99601445115886,0.995021331390146,0.994030761405896,0.993045417547283, +00:32:38,1,1,1,0.999002001394413,0.99800538166898,0.997009857943329,0.996015469501349,0.995022603816462,0.994032287347962,0.993047195686504, +00:32:39,1,1,1,0.999002256081029,0.998005890806657,0.997010621392605,0.996016487116063,0.995023875333241,0.99403381219908,0.993048972554291, +00:32:40,1,1,1,0.999002510585843,0.998006399580842,0.997011384296728,0.996017504003991,0.995025145941718,0.994035335960733,0.993050748152371, +00:32:41,1,1,1,0.999002764909102,0.99800690799203,0.997012146656438,0.996018520166122,0.995026415643128,0.9940368586344,0.993052522482469, +00:32:42,1,1,1,0.999003019051053,0.998007416040712,0.997012908472476,0.99601953560344,0.995027684438702,0.994038380221559,0.993054295546307, +00:32:43,1,1,1,0.999003273011942,0.998007923727382,0.997013669745579,0.99602055031693,0.99502895232967,0.994039900723684,0.993056067345604, +00:32:44,1,1,1,0.999003526792015,0.99800843105253,0.997014430476484,0.996021564307573,0.995030219317259,0.994041420142247,0.993057837882074, +00:32:45,1,1,1,0.999003780391517,0.998008938016648,0.997015190665927,0.996022577576351,0.995031485402696,0.994042938478719,0.993059607157431, +00:32:46,1,1,1,0.999004033810694,0.998009444620224,0.997015950314641,0.996023590124243,0.995032750587202,0.994044455734566,0.993061375173385, +00:32:47,1,1,1,0.999004287049789,0.998009950863748,0.997016709423361,0.996024601952224,0.995034014871999,0.994045971911252,0.993063141931642, +00:32:48,1,1,1,0.999004540109046,0.998010456747708,0.997017467992817,0.996025613061272,0.995035278258307,0.994047487010241,0.993064907433907, +00:32:49,1,1,1,0.99900479298871,0.99801096227259,0.99701822602374,0.99602662345236,0.995036540747342,0.994049001032992,0.99306667168188, +00:32:50,1,1,1,0.999005045689024,0.998011467438881,0.99701898351686,0.996027633126459,0.995037802340318,0.994050513980961,0.99306843467726, +00:32:51,1,1,1,0.99900529821023,0.998011972247067,0.997019740472905,0.996028642084541,0.99503906303845,0.994052025855604,0.993070196421741, +00:32:52,1,1,1,0.999005550552571,0.998012476697632,0.997020496892602,0.996029650327575,0.995040322842947,0.994053536658372,0.993071956917017, +00:32:53,1,1,1,0.999005802716288,0.99801298079106,0.997021252776675,0.996030657856527,0.995041581755019,0.994055046390715,0.993073716164776, +00:32:54,1,1,1,0.999006054701625,0.998013484527834,0.997022008125849,0.996031664672363,0.995042839775871,0.994056555054081,0.993075474166705, +00:32:55,1,1,1,0.999006306508821,0.998013987908437,0.997022762940848,0.996032670776047,0.995044096906709,0.994058062649913,0.993077230924487, +00:32:56,1,1,1,0.999006558138117,0.998014490933348,0.997023517222393,0.996033676168542,0.995045353148734,0.994059569179655,0.993078986439804, +00:32:57,1,1,1,0.999006809589753,0.99801499360305,0.997024270971205,0.996034680850807,0.995046608503148,0.994061074644746,0.993080740714334, +00:32:58,1,1,1,0.999007060863971,0.998015495918021,0.997025024188003,0.996035684823802,0.995047862971148,0.994062579046623,0.99308249374975, +00:32:59,1,1,1,0.999007311961009,0.998015997878741,0.997025776873505,0.996036688088484,0.995049116553931,0.994064082386721,0.993084245547726, +00:33:00,1,1,1,0.999007562881105,0.998016499485687,0.997026529028428,0.996037690645808,0.995050369252691,0.994065584666472,0.99308599610993, +00:33:01,1,1,1,0.9990078136245,0.998017000739338,0.997027280653488,0.996038692496729,0.99505162106862,0.994067085887306,0.99308774543803, +00:33:02,1,1,1,0.999008064191432,0.998017501640168,0.997028031749399,0.9960396936422,0.995052872002908,0.994068586050652,0.993089493533688, +00:33:03,1,1,1,0.999008314582137,0.998018002188654,0.997028782316875,0.996040694083171,0.995054122056745,0.994070085157932,0.993091240398566, +00:33:04,1,1,1,0.999008564796854,0.998018502385271,0.997029532356627,0.99604169382059,0.995055371231315,0.994071583210572,0.993092986034321, +00:33:05,1,1,1,0.99900881483582,0.998019002230493,0.997030281869367,0.996042692855406,0.995056619527802,0.99407308020999,0.993094730442608, +00:33:06,1,1,1,0.999009064699271,0.998019501724792,0.997031030855803,0.996043691188565,0.99505786694739,0.994074576157605,0.99309647362508, +00:33:07,1,1,1,0.999009314387444,0.998020000868642,0.997031779316645,0.996044688821011,0.995059113491258,0.994076071054831,0.993098215583387, +00:33:08,1,1,1,0.999009563900574,0.998020499662513,0.997032527252599,0.996045685753686,0.995060359160584,0.994077564903082,0.993099956319174, +00:33:09,1,1,1,0.999009813238898,0.998020998106877,0.997033274664372,0.996046681987532,0.995061603956544,0.994079057703768,0.993101695834086, +00:33:10,1,1,1,0.99901006240265,0.998021496202203,0.997034021552668,0.996047677523488,0.995062847880312,0.994080549458298,0.993103434129764, +00:33:11,1,1,1,0.999010311392064,0.998021993948961,0.99703476791819,0.996048672362493,0.99506409093306,0.994082040168078,0.993105171207846, +00:33:12,1,1,1,0.999010560207376,0.998022491347618,0.997035513761642,0.996049666505482,0.995065333115959,0.994083529834509,0.993106907069968, +00:33:13,1,1,1,0.999010808848818,0.998022988398644,0.997036259083725,0.99605065995339,0.995066574430176,0.994085018458995,0.993108641717762, +00:33:14,1,1,1,0.999011057316625,0.998023485102503,0.997037003885137,0.99605165270715,0.995067814876877,0.994086506042932,0.993110375152858, +00:33:15,1,1,1,0.999011305611029,0.998023981459663,0.997037748166579,0.996052644767694,0.995069054457227,0.994087992587718,0.993112107376883, +00:33:16,1,1,1,0.999011553732264,0.998024477470589,0.997038491928748,0.996053636135952,0.995070293172389,0.994089478094746,0.993113838391463, +00:33:17,1,1,1,0.99901180168056,0.998024973135744,0.99703923517234,0.996054626812853,0.995071531023521,0.994090962565408,0.993115568198217, +00:33:18,1,1,1,0.999012049456152,0.998025468455593,0.99703997789805,0.996055616799322,0.995072768011782,0.994092446001092,0.993117296798767, +00:33:19,1,1,1,0.999012297059269,0.998025963430598,0.997040720106573,0.996056606096286,0.995074004138328,0.994093928403187,0.993119024194727, +00:33:20,1,1,1,0.999012544490143,0.998026458061222,0.997041461798602,0.996057594704667,0.995075239404314,0.994095409773076,0.993120750387711, +00:33:21,1,1,1,0.999012791749005,0.998026952347925,0.997042202974827,0.996058582625389,0.995076473810893,0.994096890112141,0.993122475379329, +00:33:22,1,1,1,0.999013038836084,0.998027446291168,0.997042943635941,0.996059569859372,0.995077707359214,0.994098369421762,0.993124199171191, +00:33:23,1,1,1,0.999013285751612,0.998027939891412,0.997043683782631,0.996060556407534,0.995078940050425,0.994099847703317,0.9931259217649, +00:33:24,1,1,1,0.999013532495817,0.998028433149114,0.997044423415587,0.996061542270793,0.995080171885674,0.99410132495818,0.993127643162061, +00:33:25,1,1,1,0.999013779068929,0.998028926064733,0.997045162535496,0.996062527450066,0.995081402866106,0.994102801187725,0.993129363364271, +00:33:26,1,1,1,0.999014025471176,0.998029418638726,0.997045901143043,0.996063511946266,0.995082632992861,0.994104276393321,0.993131082373129, +00:33:27,1,1,1,0.999014271702788,0.998029910871551,0.997046639238913,0.996064495760306,0.995083862267082,0.994105750576338,0.993132800190229, +00:33:28,1,1,1,0.999014517763991,0.998030402763662,0.99704737682379,0.996065478893098,0.995085090689908,0.99410722373814,0.993134516817163, +00:33:29,1,1,1,0.999014763655013,0.998030894315514,0.997048113898356,0.996066461345551,0.995086318262474,0.994108695880092,0.99313623225552, +00:33:30,1,1,1,0.999015009376082,0.998031385527563,0.997048850463292,0.996067443118573,0.995087544985916,0.994110167003555,0.993137946506886, +00:33:31,1,1,1,0.999015254927424,0.998031876400262,0.997049586519279,0.996068424213072,0.995088770861367,0.994111637109887,0.993139659572846, +00:33:32,1,1,1,0.999015500309267,0.998032366934063,0.997050322066996,0.996069404629951,0.995089995889958,0.994113106200445,0.993141371454979, +00:33:33,1,1,1,0.999015745521836,0.998032857129418,0.99705105710712,0.996070384370116,0.995091220072818,0.994114574276584,0.993143082154865, +00:33:34,1,1,1,0.999015990565356,0.998033346986779,0.997051791640328,0.996071363434468,0.995092443411075,0.994116041339655,0.993144791674078, +00:33:35,1,1,1,0.999016235440054,0.998033836506597,0.997052525667295,0.996072341823907,0.995093665905854,0.99411750739101,0.993146500014194, +00:33:36,1,1,1,0.999016480146153,0.99803432568932,0.997053259188697,0.996073319539332,0.995094887558278,0.994118972431994,0.99314820717678, +00:33:37,1,1,1,0.99901672468388,0.998034814535398,0.997053992205206,0.996074296581642,0.99509610836947,0.994120436463954,0.993149913163407, +00:33:38,1,1,1,0.999016969053457,0.998035303045279,0.997054724717495,0.996075272951732,0.995097328340548,0.994121899488231,0.993151617975638, +00:33:39,1,1,1,0.999017213255108,0.99803579121941,0.997055456726235,0.996076248650497,0.995098547472631,0.994123361506168,0.993153321615036, +00:33:40,1,1,1,0.999017457289058,0.998036279058239,0.997056188232095,0.99607722367883,0.995099765766835,0.994124822519103,0.993155024083161, +00:33:41,1,1,1,0.999017701155529,0.998036766562211,0.997056919235744,0.996078198037622,0.995100983224274,0.994126282528372,0.993156725381571, +00:33:42,1,1,1,0.999017944854744,0.998037253731771,0.99705764973785,0.996079171727763,0.995102199846061,0.994127741535309,0.99315842551182, +00:33:43,1,1,1,0.999018188386924,0.998037740567364,0.99705837973908,0.996080144750142,0.995103415633304,0.994129199541245,0.99316012447546, +00:33:44,1,1,1,0.999018431752293,0.998038227069434,0.997059109240098,0.996081117105646,0.995104630587114,0.994130656547511,0.993161822274041, +00:33:45,1,1,1,0.999018674951072,0.998038713238423,0.99705983824157,0.99608208879516,0.995105844708596,0.994132112555433,0.993163518909109, +00:33:46,1,1,1,0.999018917983481,0.998039199074774,0.997060566744158,0.996083059819569,0.995107057998856,0.994133567566337,0.993165214382209, +00:33:47,1,1,1,0.999019160849742,0.998039684578928,0.997061294748525,0.996084030179755,0.995108270458996,0.994135021581546,0.993166908694883, +00:33:48,1,1,1,0.999019403550075,0.998040169751326,0.997062022255331,0.9960849998766,0.995109482090118,0.99413647460238,0.99316860184867, +00:33:49,1,1,1,0.999019646084701,0.998040654592409,0.997062749265237,0.996085968910983,0.995110692893321,0.994137926630157,0.993170293845105, +00:33:50,1,1,1,0.999019888453838,0.998041139102614,0.9970634757789,0.996086937283781,0.995111902869702,0.994139377666195,0.993171984685724, +00:33:51,1,1,1,0.999020130657706,0.998041623282381,0.99706420179698,0.996087904995873,0.995113112020357,0.994140827711807,0.993173674372057, +00:33:52,1,1,1,0.999020372696525,0.998042107132149,0.997064927320132,0.996088872048133,0.99511432034638,0.994142276768305,0.993175362905634, +00:33:53,1,1,1,0.999020614570513,0.998042590652352,0.997065652349011,0.996089838441434,0.995115527848862,0.994143724836998,0.993177050287981, +00:33:54,1,1,1,0.999020856279888,0.998043073843429,0.997066376884273,0.99609080417665,0.995116734528894,0.994145171919195,0.993178736520621, +00:33:55,1,1,1,0.999021097824868,0.998043556705815,0.99706710092657,0.996091769254651,0.995117940387564,0.9941466180162,0.993180421605076, +00:33:56,1,1,1,0.99902133920567,0.998044039239944,0.997067824476555,0.996092733676306,0.995119145425959,0.994148063129316,0.993182105542864, +00:33:57,1,1,1,0.999021580422512,0.998044521446251,0.997068547534878,0.996093697442484,0.995120349645163,0.994149507259845,0.993183788335502, +00:33:58,1,1,1,0.999021821475611,0.998045003325169,0.997069270102191,0.996094660554051,0.995121553046259,0.994150950409085,0.993185469984503, +00:33:59,1,1,1,0.999022062365183,0.998045484877131,0.997069992179141,0.996095623011872,0.995122755630328,0.994152392578333,0.993187150491379, +00:34:00,1,1,1,0.999022303091443,0.998045966102569,0.997070713766376,0.99609658481681,0.995123957398449,0.994153833768884,0.993188829857637, +00:34:01,1,1,1,0.999022543654609,0.998046447001914,0.997071434864544,0.996097545969729,0.9951251583517,0.994155273982029,0.993190508084784, +00:34:02,1,1,1,0.999022784054894,0.998046927575597,0.99707215547429,0.996098506471488,0.995126358491157,0.994156713219058,0.993192185174323, +00:34:03,1,1,1,0.999023024292515,0.998047407824047,0.997072875596258,0.996099466322947,0.995127557817893,0.994158151481261,0.993193861127756, +00:34:04,1,1,1,0.999023264367686,0.998047887747694,0.997073595231093,0.996100425524964,0.99512875633298,0.994159588769923,0.993195535946582, +00:34:05,1,1,1,0.99902350428062,0.998048367346967,0.997074314379436,0.996101384078396,0.99512995403749,0.994161025086326,0.993197209632295, +00:34:06,1,1,1,0.999023744031533,0.998048846622292,0.997075033041929,0.996102341984096,0.995131150932489,0.994162460431754,0.99319888218639, +00:34:07,1,1,1,0.999023983620637,0.998049325574097,0.997075751219213,0.99610329924292,0.995132347019046,0.994163894807486,0.993200553610358, +00:34:08,1,1,1,0.999024223048146,0.998049804202808,0.997076468911926,0.996104255855719,0.995133542298225,0.994165328214798,0.993202223905688, +00:34:09,1,1,1,0.999024462314272,0.998050282508851,0.997077186120707,0.996105211823344,0.995134736771089,0.994166760654966,0.993203893073865, +00:34:10,1,1,1,0.999024701419229,0.99805076049265,0.997077902846193,0.996106167146645,0.9951359304387,0.994168192129264,0.993205561116373, +00:34:11,1,1,1,0.999024940363228,0.99805123815463,0.997078619089021,0.996107121826469,0.995137123302117,0.994169622638961,0.993207228034695, +00:34:12,1,1,1,0.999025179146481,0.998051715495215,0.997079334849824,0.996108075863663,0.995138315362399,0.994171052185328,0.993208893830307, +00:34:13,1,1,1,0.999025417769199,0.998052192514826,0.997080050129238,0.996109029259072,0.995139506620601,0.99417248076963,0.993210558504687, +00:34:14,1,1,1,0.999025656231595,0.998052669213886,0.997080764927895,0.99610998201354,0.995140697077778,0.994173908393133,0.993212222059309, +00:34:15,1,1,1,0.999025894533877,0.998053145592817,0.997081479246427,0.99611093412791,0.995141886734983,0.994175335057099,0.993213884495644, +00:34:16,1,1,1,0.999026132676258,0.998053621652039,0.997082193085465,0.996111885603021,0.995143075593266,0.994176760762789,0.993215545815161, +00:34:17,1,1,1,0.999026370658947,0.998054097391971,0.997082906445639,0.996112836439714,0.995144263653678,0.994178185511461,0.993217206019327, +00:34:18,1,1,1,0.999026608482153,0.998054572813034,0.997083619327577,0.996113786638828,0.995145450917264,0.994179609304371,0.993218865109605, +00:34:19,1,1,1,0.999026846146086,0.998055047915646,0.997084331731907,0.996114736201198,0.995146637385072,0.994181032142774,0.993220523087458, +00:34:20,1,1,1,0.999027083650955,0.998055522700225,0.997085043659256,0.996115685127661,0.995147823058145,0.994182454027922,0.993222179954345, +00:34:21,1,1,1,0.999027320996969,0.998055997167187,0.99708575511025,0.99611663341905,0.995149007937525,0.994183874961065,0.993223835711722, +00:34:22,1,1,1,0.999027558184336,0.99805647131695,0.997086466085512,0.996117581076198,0.995150192024253,0.994185294943451,0.993225490361045, +00:34:23,1,1,1,0.999027795213264,0.998056945149929,0.997087176585668,0.996118528099936,0.995151375319367,0.994186713976326,0.993227143903765, +00:34:24,1,1,1,0.99902803208396,0.99805741866654,0.997087886611339,0.996119474491094,0.995152557823906,0.994188132060934,0.993228796341332, +00:34:25,1,1,1,0.999028268796633,0.998057891867196,0.997088596163146,0.996120420250502,0.995153739538904,0.994189549198517,0.993230447675194, +00:34:26,1,1,1,0.999028505351488,0.998058364752312,0.997089305241711,0.996121365378985,0.995154920465395,0.994190965390314,0.993232097906795, +00:34:27,1,1,1,0.999028741748733,0.9980588373223,0.997090013847653,0.996122309877369,0.995156100604411,0.994192380637564,0.993233747037578, +00:34:28,1,1,1,0.999028977988573,0.998059309577574,0.997090721981589,0.99612325374648,0.995157279956982,0.994193794941503,0.993235395068982, +00:34:29,1,1,1,0.999029214071216,0.998059781518544,0.997091429644139,0.996124196987141,0.995158458524137,0.994195208303363,0.993237042002447, +00:34:30,1,1,1,0.999029449996865,0.998060253145623,0.997092136835918,0.996125139600173,0.995159636306904,0.994196620724377,0.993238687839407, +00:34:31,1,1,1,0.999029685765728,0.998060724459219,0.997092843557541,0.996126081586396,0.995160813306306,0.994198032205775,0.993240332581296, +00:34:32,1,1,1,0.999029921378007,0.998061195459743,0.997093549809623,0.996127022946629,0.995161989523368,0.994199442748784,0.993241976229543, +00:34:33,1,1,1,0.999030156833909,0.998061666147604,0.997094255592778,0.996127963681691,0.995163164959112,0.994200852354629,0.993243618785578, +00:34:34,1,1,1,0.999030392133637,0.998062136523211,0.997094960907617,0.996128903792397,0.995164339614557,0.994202261024534,0.993245260250827, +00:34:35,1,1,1,0.999030627277395,0.99806260658697,0.997095665754753,0.996129843279563,0.995165513490723,0.994203668759722,0.993246900626712, +00:34:36,1,1,1,0.999030862265388,0.998063076339289,0.997096370134794,0.996130782144002,0.995166686588626,0.994205075561411,0.993248539914656, +00:34:37,1,1,1,0.999031097097817,0.998063545780574,0.997097074048352,0.996131720386527,0.995167858909281,0.994206481430819,0.993250178116078, +00:34:38,1,1,1,0.999031331774886,0.998064014911232,0.997097777496034,0.996132658007949,0.995169030453701,0.994207886369162,0.993251815232394, +00:34:39,1,1,1,0.999031566296797,0.998064483731666,0.997098480478447,0.996133595009076,0.9951702012229,0.994209290377653,0.993253451265018, +00:34:40,1,1,1,0.999031800663754,0.998064952242282,0.997099182996198,0.996134531390719,0.995171371217886,0.994210693457504,0.993255086215363, +00:34:41,1,1,1,0.999032034875957,0.998065420443482,0.997099885049893,0.996135467153683,0.995172540439668,0.994212095609924,0.993256720084838, +00:34:42,1,1,1,0.999032268933608,0.99806588833567,0.997100586640135,0.996136402298774,0.995173708889253,0.994213496836122,0.993258352874851, +00:34:43,1,1,1,0.999032502836909,0.998066355919249,0.997101287767528,0.996137336826798,0.995174876567647,0.994214897137303,0.993259984586807, +00:34:44,1,1,1,0.99903273658606,0.998066823194619,0.997101988432675,0.996138270738556,0.995176043475853,0.99421629651467,0.993261615222108, +00:34:45,1,1,1,0.999032970181262,0.998067290162183,0.997102688636177,0.99613920403485,0.995177209614873,0.994217694969425,0.993263244782156, +00:34:46,1,1,1,0.999033203622716,0.99806775682234,0.997103388378634,0.996140136716482,0.995178374985707,0.994219092502769,0.993264873268348, +00:34:47,1,1,1,0.999033436910621,0.99806822317549,0.997104087660645,0.996141068784249,0.995179539589353,0.994220489115898,0.99326650068208, +00:34:48,1,1,1,0.999033670045176,0.998068689222033,0.997104786482811,0.996142000238951,0.99518070342681,0.994221884810009,0.993268127024746, +00:34:49,1,1,1,0.999033903026582,0.998069154962365,0.997105484845726,0.996142931081383,0.995181866499072,0.994223279586296,0.993269752297737, +00:34:50,1,1,1,0.999034135855036,0.998069620396887,0.997106182749989,0.996143861312341,0.995183028807133,0.99422467344595,0.993271376502443, +00:34:51,1,1,1,0.999034368530739,0.998070085525993,0.997106880196195,0.996144790932618,0.995184190351984,0.994226066390162,0.99327299964025, +00:34:52,1,1,1,0.999034601053887,0.998070550350082,0.997107577184938,0.996145719943008,0.995185351134618,0.994227458420119,0.993274621712543, +00:34:53,1,1,1,0.999034833424679,0.998071014869548,0.997108273716813,0.996146648344301,0.995186511156022,0.994228849537008,0.993276242720704, +00:34:54,1,1,1,0.999035065643313,0.998071479084787,0.99710896979241,0.996147576137287,0.995187670417184,0.994230239742012,0.993277862666113, +00:34:55,1,1,1,0.999035297709986,0.998071942996194,0.997109665412324,0.996148503322756,0.99518882891909,0.994231629036315,0.993279481550148, +00:34:56,1,1,1,0.999035529624895,0.998072406604162,0.997110360577143,0.996149429901495,0.995189986662724,0.994233017421096,0.993281099374185, +00:34:57,1,1,1,0.999035761388236,0.998072869909085,0.997111055287458,0.99615035587429,0.995191143649067,0.994234404897534,0.993282716139596, +00:34:58,1,1,1,0.999035993000207,0.998073332911355,0.997111749543857,0.996151281241925,0.995192299879102,0.994235791466805,0.993284331847754, +00:34:59,1,1,1,0.999036224461002,0.998073795611364,0.997112443346929,0.996152206005185,0.995193455353807,0.994237177130084,0.993285946500026, +00:35:00,1,1,1,0.999036455770819,0.998074258009504,0.99711313669726,0.996153130164852,0.995194610074159,0.994238561888543,0.99328756009778, +00:35:01,1,1,1,0.999036686929851,0.998074720106164,0.997113829595436,0.996154053721707,0.995195764041136,0.994239945743354,0.993289172642379, +00:35:02,1,1,1,0.999036917938295,0.998075181901736,0.997114522042042,0.996154976676529,0.995196917255711,0.994241328695684,0.993290784135187, +00:35:03,1,1,1,0.999037148796346,0.998075643396609,0.997115214037662,0.996155899030098,0.995198069718858,0.994242710746702,0.993292394577562, +00:35:04,1,1,1,0.999037379504196,0.998076104591171,0.997115905582879,0.99615682078319,0.995199221431548,0.994244091897571,0.993294003970863, +00:35:05,1,1,1,0.999037610062042,0.99807656548581,0.997116596678275,0.996157741936581,0.99520037239475,0.994245472149456,0.993295612316445, +00:35:06,1,1,1,0.999037840470075,0.998077026080915,0.997117287324432,0.996158662491047,0.995201522609434,0.994246851503517,0.993297219615663, +00:35:07,1,1,1,0.999038070728491,0.998077486376872,0.997117977521929,0.996159582447361,0.995202672076564,0.994248229960914,0.993298825869866, +00:35:08,1,1,1,0.999038300837483,0.998077946374067,0.997118667271346,0.996160501806294,0.995203820797107,0.994249607522804,0.993300431080403, +00:35:09,1,1,1,0.999038530797242,0.998078406072885,0.997119356573262,0.996161420568618,0.995204968772026,0.994250984190343,0.993302035248622, +00:35:10,1,1,1,0.999038760607962,0.998078865473713,0.997120045428252,0.996162338735103,0.995206116002282,0.994252359964684,0.993303638375867, +00:35:11,1,1,1,0.999038990269835,0.998079324576934,0.997120733836895,0.996163256306517,0.995207262488837,0.99425373484698,0.993305240463481, +00:35:12,1,1,1,0.999039219783053,0.998079783382932,0.997121421799766,0.996164173283627,0.995208408232649,0.99425510883838,0.993306841512803, +00:35:13,1,1,1,0.999039449147808,0.99808024189209,0.997122109317438,0.9961650896672,0.995209553234675,0.994256481940033,0.993308441525172, +00:35:14,1,1,1,0.99903967836429,0.998080700104791,0.997122796390486,0.996166005458,0.995210697495871,0.994257854153085,0.993310040501924, +00:35:15,1,1,1,0.999039907432692,0.998081158021417,0.997123483019483,0.99616692065679,0.995211841017192,0.994259225478681,0.993311638444393, +00:35:16,1,1,1,0.999040136353203,0.998081615642348,0.997124169205001,0.996167835264333,0.995212983799588,0.994260595917962,0.993313235353909, +00:35:17,1,1,1,0.999040365126014,0.998082072967966,0.997124854947609,0.99616874928139,0.995214125844013,0.99426196547207,0.993314831231803, +00:35:18,1,1,1,0.999040593751315,0.998082529998651,0.997125540247879,0.996169662708721,0.995215267151415,0.994263334142143,0.993316426079402, +00:35:19,1,1,1,0.999040822229296,0.998082986734782,0.997126225106378,0.996170575547084,0.995216407722742,0.994264701929319,0.99331801989803, +00:35:20,1,1,1,0.999041050560147,0.998083443176737,0.997126909523677,0.996171487797237,0.995217547558941,0.994266068834732,0.993319612689011, +00:35:21,1,1,1,0.999041278744056,0.998083899324896,0.99712759350034,0.996172399459935,0.995218686660957,0.994267434859517,0.993321204453666, +00:35:22,1,1,1,0.999041506781213,0.998084355179635,0.997128277036936,0.996173310535935,0.995219825029733,0.994268800004804,0.993322795193313, +00:35:23,1,1,1,0.999041734671805,0.998084810741332,0.997128960134028,0.996174221025988,0.995220962666211,0.994270164271724,0.993324384909269, +00:35:24,1,1,1,0.999041962416022,0.998085266010364,0.997129642792182,0.996175130930848,0.995222099571331,0.994271527661404,0.993325973602849, +00:35:25,1,1,1,0.999042190014051,0.998085720987105,0.997130325011962,0.996176040251267,0.995223235746032,0.99427289017497,0.993327561275365, +00:35:26,1,1,1,0.99904241746608,0.998086175671931,0.997131006793929,0.996176948987994,0.995224371191252,0.994274251813547,0.993329147928126, +00:35:27,1,1,1,0.999042644772296,0.998086630065216,0.997131688138646,0.996177857141777,0.995225505907927,0.994275612578257,0.993330733562442, +00:35:28,1,1,1,0.999042871932886,0.998087084167335,0.997132369046673,0.996178764713366,0.995226639896989,0.99427697247022,0.993332318179618, +00:35:29,1,1,1,0.999043098948038,0.998087537978661,0.99713304951857,0.996179671703505,0.995227773159374,0.994278331490556,0.993333901780958, +00:35:30,1,1,1,0.999043325817937,0.998087991499567,0.997133729554897,0.996180578112941,0.995228905696011,0.994279689640382,0.993335484367764, +00:35:31,1,1,1,0.999043552542769,0.998088444730424,0.997134409156211,0.996181483942417,0.995230037507831,0.994281046920812,0.993337065941336, +00:35:32,1,1,1,0.999043779122721,0.998088897671605,0.997135088323069,0.996182389192676,0.995231168595762,0.994282403332961,0.993338646502971, +00:35:33,1,1,1,0.999044005557978,0.99808935032348,0.997135767056029,0.99618329386446,0.995232298960731,0.994283758877939,0.993340226053964, +00:35:34,1,1,1,0.999044231848725,0.99808980268642,0.997136445355645,0.99618419795851,0.995233428603662,0.994285113556857,0.99334180459561, +00:35:35,1,1,1,0.999044457995147,0.998090254760794,0.997137123222471,0.996185101475563,0.995234557525481,0.994286467370823,0.9933433821292, +00:35:36,1,1,1,0.999044683997429,0.998090706546972,0.997137800657063,0.99618600441636,0.995235685727109,0.994287820320943,0.993344958656022, +00:35:37,1,1,1,0.999044909855755,0.998091158045322,0.997138477659971,0.996186906781635,0.995236813209467,0.994289172408321,0.993346534177364, +00:35:38,1,1,1,0.999045135570309,0.998091609256212,0.997139154231749,0.996187808572126,0.995237939973474,0.994290523634061,0.993348108694512, +00:35:39,1,1,1,0.999045361141276,0.99809206018001,0.997139830372947,0.996188709788567,0.99523906602005,0.994291873999263,0.993349682208749, +00:35:40,1,1,1,0.999045586568838,0.998092510817082,0.997140506084116,0.996189610431691,0.995240191350109,0.994293223505027,0.993351254721354, +00:35:41,1,1,1,0.999045811853178,0.998092961167794,0.997141181365803,0.99619051050223,0.995241315964567,0.99429457215245,0.993352826233608, +00:35:42,1,1,1,0.99904603699448,0.998093411232513,0.997141856218559,0.996191410000914,0.995242439864337,0.994295919942627,0.993354396746788, +00:35:43,1,1,1,0.999046261992927,0.998093861011604,0.997142530642929,0.996192308928475,0.995243563050332,0.994297266876653,0.993355966262168, +00:35:44,1,1,1,0.999046486848699,0.99809431050543,0.997143204639462,0.996193207285641,0.995244685523462,0.99429861295562,0.993357534781021, +00:35:45,1,1,1,0.99904671156198,0.998094759714355,0.997143878208702,0.996194105073138,0.995245807284636,0.994299958180618,0.993359102304618, +00:35:46,1,1,1,0.999046936132951,0.998095208638744,0.997144551351194,0.996195002291694,0.995246928334762,0.994301302552736,0.993360668834228, +00:35:47,1,1,1,0.999047160561794,0.998095657278958,0.997145224067483,0.996195898942034,0.995248048674746,0.99430264607306,0.993362234371117, +00:35:48,1,1,1,0.999047384848689,0.99809610563536,0.997145896358111,0.996196795024881,0.995249168305493,0.994303988742677,0.99336379891655, +00:35:49,1,1,1,0.999047608993818,0.998096553708311,0.99714656822362,0.996197690540959,0.995250287227907,0.994305330562669,0.993365362471791, +00:35:50,1,1,1,0.999047832997361,0.998097001498172,0.997147239664553,0.996198585490988,0.995251405442888,0.994306671534119,0.993366925038099, +00:35:51,1,1,1,0.999048056859498,0.998097449005304,0.997147910681449,0.996199479875691,0.995252522951338,0.994308011658106,0.993368486616733, +00:35:52,1,1,1,0.99904828058041,0.998097896230067,0.997148581274848,0.996200373695785,0.995253639754156,0.994309350935708,0.99337004720895, +00:35:53,1,1,1,0.999048504160275,0.998098343172819,0.997149251445289,0.996201266951989,0.995254755852238,0.994310689368002,0.993371606816005, +00:35:54,1,1,1,0.999048727599274,0.99809878983392,0.997149921193309,0.99620215964502,0.995255871246482,0.994312026956064,0.99337316543915, +00:35:55,1,1,1,0.999048950897585,0.998099236213727,0.997150590519446,0.996203051775595,0.995256985937782,0.994313363700965,0.993374723079636, +00:35:56,1,1,1,0.999049174055388,0.998099682312598,0.997151259424237,0.996203943344428,0.995258099927031,0.994314699603778,0.993376279738711, +00:35:57,1,1,1,0.99904939707286,0.99810012813089,0.997151927908215,0.996204834352232,0.995259213215121,0.994316034665572,0.993377835417623, +00:35:58,1,1,1,0.999049619950181,0.998100573668959,0.997152595971916,0.996205724799721,0.995260325802942,0.994317368887416,0.993379390117615, +00:35:59,1,1,1,0.999049842687527,0.998101018927162,0.997153263615873,0.996206614687605,0.995261437691384,0.994318702270374,0.993380943839931, +00:36:00,1,1,1,0.999050065285078,0.998101463905853,0.99715393084062,0.996207504016594,0.995262548881334,0.994320034815513,0.993382496585811, +00:36:01,1,1,1,0.999050287743009,0.998101908605387,0.997154597646687,0.996208392787399,0.995263659373678,0.994321366523895,0.993384048356495, +00:36:02,1,1,1,0.999050510061499,0.998102353026119,0.997155264034607,0.996209281000726,0.995264769169302,0.994322697396581,0.993385599153218, +00:36:03,1,1,1,0.999050732240724,0.998102797168401,0.997155930004909,0.996210168657284,0.995265878269088,0.994324027434631,0.993387148977215, +00:36:04,1,1,1,0.999050954280861,0.998103241032587,0.997156595558122,0.996211055757776,0.995266986673918,0.994325356639103,0.99338869782972, +00:36:05,1,1,1,0.999051176182085,0.998103684619029,0.997157260694776,0.996211942302909,0.995268094384673,0.994326685011052,0.993390245711964, +00:36:06,1,1,1,0.999051397944574,0.99810412792808,0.997157925415398,0.996212828293385,0.995269201402232,0.994328012551533,0.993391792625174, +00:36:07,1,1,1,0.999051619568502,0.998104570960089,0.997158589720515,0.996213713729907,0.995270307727473,0.9943293392616,0.993393338570579, +00:36:08,1,1,1,0.999051841054045,0.998105013715409,0.997159253610652,0.996214598613176,0.995271413361272,0.994330665142302,0.993394883549403, +00:36:09,1,1,1,0.999052062401379,0.998105456194389,0.997159917086335,0.996215482943892,0.995272518304504,0.99433199019469,0.993396427562868, +00:36:10,1,1,1,0.999052283610678,0.998105898397379,0.997160580148089,0.996216366722755,0.995273622558043,0.994333314419811,0.993397970612198, +00:36:11,1,1,1,0.999052504682116,0.998106340324728,0.997161242796436,0.996217249950462,0.99527472612276,0.994334637818712,0.993399512698609, +00:36:12,1,1,1,0.999052725615869,0.998106781976785,0.9971619050319,0.99621813262771,0.995275828999528,0.994335960392437,0.993401053823321, +00:36:13,1,1,1,0.999052946412109,0.998107223353898,0.997162566855003,0.996219014755194,0.995276931189214,0.994337282142029,0.993402593987547, +00:36:14,1,1,1,0.999053167071012,0.998107664456413,0.997163228266265,0.99621989633361,0.995278032692688,0.994338603068528,0.993404133192503, +00:36:15,1,1,1,0.99905338759275,0.998108105284678,0.997163889266207,0.996220777363651,0.995279133510815,0.994339923172975,0.993405671439398, +00:36:16,1,1,1,0.999053607977497,0.99810854583904,0.997164549855347,0.996221657846009,0.995280233644462,0.994341242456408,0.993407208729442, +00:36:17,1,1,1,0.999053828225425,0.998108986119843,0.997165210034206,0.996222537781375,0.995281333094492,0.994342560919861,0.993408745063844, +00:36:18,1,1,1,0.999054048336707,0.998109426127433,0.997165869803299,0.996223417170441,0.995282431861767,0.994343878564371,0.993410280443809, +00:36:19,1,1,1,0.999054268311516,0.998109865862156,0.997166529163145,0.996224296013894,0.995283529947149,0.99434519539097,0.99341181487054, +00:36:20,1,1,1,0.999054488150024,0.998110305324354,0.99716718811426,0.996225174312423,0.995284627351498,0.99434651140069,0.993413348345239, +00:36:21,1,1,1,0.999054707852403,0.998110744514372,0.997167846657157,0.996226052066714,0.995285724075671,0.994347826594559,0.993414880869108, +00:36:22,1,1,1,0.999054927418823,0.998111183432553,0.997168504792353,0.996226929277454,0.995286820120527,0.994349140973606,0.993416412443343, +00:36:23,1,1,1,0.999055146849458,0.998111622079239,0.997169162520361,0.996227805945328,0.995287915486921,0.994350454538858,0.993417943069141, +00:36:24,1,1,1,0.999055366144476,0.998112060454772,0.997169819841693,0.996228682071019,0.995289010175707,0.994351767291339,0.993419472747696, +00:36:25,1,1,1,0.99905558530405,0.998112498559493,0.997170476756862,0.996229557655209,0.995290104187739,0.994353079232072,0.993421001480201, +00:36:26,1,1,1,0.99905580432835,0.998112936393744,0.997171133266379,0.996230432698581,0.995291197523868,0.99435439036208,0.993422529267846, +00:36:27,1,1,1,0.999056023217546,0.998113373957864,0.997171789370754,0.996231307201814,0.995292290184944,0.994355700682381,0.99342405611182, +00:36:28,1,1,1,0.999056241971808,0.998113811252194,0.997172445070497,0.996232181165588,0.995293382171817,0.994357010193994,0.99342558201331, +00:36:29,1,1,1,0.999056460591306,0.998114248277073,0.997173100366116,0.996233054590582,0.995294473485334,0.994358318897937,0.9934271069735, +00:36:30,1,1,1,0.999056679076209,0.99811468503284,0.99717375525812,0.996233927477472,0.995295564126341,0.994359626795224,0.993428630993574, +00:36:31,1,1,1,0.999056897426686,0.998115121519832,0.997174409747016,0.996234799826934,0.995296654095684,0.994360933886868,0.993430154074713, +00:36:32,1,1,1,0.999057115642906,0.998115557738387,0.997175063833311,0.996235671639645,0.995297743394206,0.994362240173882,0.993431676218096, +00:36:33,1,1,1,0.999057333725038,0.998115993688844,0.997175717517509,0.996236542916277,0.99529883202275,0.994363545657275,0.9934331974249, +00:36:34,1,1,1,0.99905755167325,0.998116429371537,0.997176370800116,0.996237413657504,0.995299919982156,0.994364850338058,0.993434717696302, +00:36:35,1,1,1,0.999057769487711,0.998116864786803,0.997177023681635,0.996238283863998,0.995301007273265,0.994366154217236,0.993436237033476, +00:36:36,1,1,1,0.999057987168587,0.998117299934979,0.99717767616257,0.996239153536429,0.995302093896913,0.994367457295816,0.993437755437592, +00:36:37,1,1,1,0.999058204716048,0.998117734816398,0.997178328243424,0.996240022675468,0.99530317985394,0.994368759574801,0.99343927290982, +00:36:38,1,1,1,0.999058422130259,0.998118169431395,0.997178979924698,0.996240891281783,0.99530426514518,0.994370061055193,0.993440789451331, +00:36:39,1,1,1,0.999058639411388,0.998118603780304,0.997179631206892,0.996241759356041,0.995305349771468,0.994371361737994,0.993442305063289, +00:36:40,1,1,1,0.999058856559602,0.99811903786346,0.997180282090507,0.99624262689891,0.995306433733636,0.994372661624203,0.993443819746859, +00:36:41,1,1,1,0.999059073575067,0.998119471681193,0.997180932576042,0.996243493911054,0.995307517032518,0.994373960714818,0.993445333503204, +00:36:42,1,1,1,0.99905929045795,0.998119905233838,0.997181582663996,0.99624436039314,0.995308599668942,0.994375259010834,0.993446846333485, +00:36:43,1,1,1,0.999059507208416,0.998120338521726,0.997182232354867,0.996245226345829,0.99530968164374,0.994376556513247,0.993448358238861, +00:36:44,1,1,1,0.999059723826632,0.998120771545187,0.99718288164915,0.996246091769785,0.995310762957737,0.994377853223048,0.993449869220489, +00:36:45,1,1,1,0.999059940312762,0.998121204304554,0.997183530547343,0.996246956665668,0.995311843611761,0.99437914914123,0.993451379279525, +00:36:46,1,1,1,0.999060156666972,0.998121636800156,0.99718417904994,0.99624782103414,0.995312923606637,0.994380444268782,0.993452888417122, +00:36:47,1,1,1,0.999060372889427,0.998122069032323,0.997184827157437,0.99624868487586,0.995314002943189,0.994381738606694,0.993454396634432, +00:36:48,1,1,1,0.999060588980292,0.998122501001384,0.997185474870327,0.996249548191485,0.99531508162224,0.994383032155951,0.993455903932606, +00:36:49,1,1,1,0.99906080493973,0.998122932707669,0.997186122189103,0.996250410981674,0.995316159644612,0.994384324917538,0.99345741031279, +00:36:50,1,1,1,0.999061020767907,0.998123364151504,0.997186769114257,0.996251273247082,0.995317237011123,0.99438561689244,0.993458915776132, +00:36:51,1,1,1,0.999061236464985,0.998123795333219,0.997187415646281,0.996252134988365,0.995318313722594,0.994386908081639,0.993460420323777, +00:36:52,1,1,1,0.99906145203113,0.99812422625314,0.997188061785666,0.996252996206176,0.995319389779842,0.994388198486115,0.993461923956867, +00:36:53,1,1,1,0.999061667466504,0.998124656911595,0.997188707532901,0.99625385690117,0.995320465183682,0.994389488106848,0.993463426676543, +00:36:54,1,1,1,0.99906188277127,0.998125087308908,0.997189352888477,0.996254717073997,0.995321539934931,0.994390776944814,0.993464928483945, +00:36:55,1,1,1,0.999062097945591,0.998125517445406,0.99718999785288,0.99625557672531,0.995322614034401,0.99439206500099,0.99346642938021, +00:36:56,1,1,1,0.99906231298963,0.998125947321414,0.997190642426598,0.996256435855759,0.995323687482905,0.99439335227635,0.993467929366473, +00:36:57,1,1,1,0.999062527903549,0.998126376937256,0.99719128661012,0.996257294465991,0.995324760281255,0.994394638771868,0.993469428443869, +00:36:58,1,1,1,0.999062742687511,0.998126806293258,0.997191930403931,0.996258152556657,0.995325832430261,0.994395924488514,0.993470926613529, +00:36:59,1,1,1,0.999062957341676,0.998127235389741,0.997192573808515,0.996259010128402,0.99532690393073,0.994397209427259,0.993472423876585, +00:37:00,1,1,1,0.999063171866208,0.998127664227031,0.997193216824359,0.996259867181872,0.99532797478347,0.99439849358907,0.993473920234164, +00:37:01,1,1,1,0.999063386261267,0.998128092805448,0.997193859451944,0.996260723717713,0.995329044989287,0.994399776974916,0.993475415687393, +00:37:02,1,1,1,0.999063600527014,0.998128521125316,0.997194501691756,0.996261579736569,0.995330114548987,0.994401059585761,0.993476910237398, +00:37:03,1,1,1,0.99906381466361,0.998128949186955,0.997195143544276,0.996262435239083,0.995331183463373,0.994402341422569,0.993478403885302, +00:37:04,1,1,1,0.999064028671216,0.998129376990688,0.997195785009985,0.996263290225896,0.995332251733247,0.994403622486302,0.993479896632227, +00:37:05,1,1,1,0.999064242549992,0.998129804536835,0.997196426089365,0.996264144697651,0.99533331935941,0.994404902777922,0.993481388479292, +00:37:06,1,1,1,0.999064456300099,0.998130231825715,0.997197066782896,0.996264998654986,0.995334386342662,0.994406182298388,0.993482879427615, +00:37:07,1,1,1,0.999064669921696,0.998130658857648,0.997197707091056,0.99626585209854,0.995335452683802,0.994407461048657,0.993484369478313, +00:37:08,1,1,1,0.999064883414942,0.998131085632954,0.997198347014325,0.996266705028953,0.995336518383628,0.994408739029686,0.9934858586325, +00:37:09,1,1,1,0.999065096779997,0.998131512151951,0.99719898655318,0.99626755744686,0.995337583442934,0.99441001624243,0.993487346891289, +00:37:10,1,1,1,0.999065310017021,0.998131938414958,0.997199625708098,0.996268409352899,0.995338647862516,0.994411292687843,0.993488834255792, +00:37:11,1,1,1,0.999065523126172,0.998132364422291,0.997200264479557,0.996269260747703,0.995339711643169,0.994412568366875,0.993490320727118, +00:37:12,1,1,1,0.999065736107609,0.998132790174268,0.997200902868031,0.996270111631908,0.995340774785683,0.994413843280479,0.993491806306373, +00:37:13,1,1,1,0.999065948961489,0.998133215671207,0.997201540873995,0.996270962006145,0.995341837290851,0.994415117429601,0.993493290994666, +00:37:14,1,1,1,0.999066161687972,0.998133640913421,0.997202178497923,0.996271811871048,0.995342899159462,0.994416390815191,0.993494774793098, +00:37:15,1,1,1,0.999066374287215,0.998134065901229,0.99720281574029,0.996272661227247,0.995343960392304,0.994417663438194,0.993496257702774, +00:37:16,1,1,1,0.999066586759376,0.998134490634944,0.997203452601567,0.996273510075372,0.995345020990166,0.994418935299554,0.993497739724793, +00:37:17,1,1,1,0.999066799104612,0.998134915114881,0.997204089082226,0.996274358416054,0.995346080953834,0.994420206400215,0.993499220860255, +00:37:18,1,1,1,0.99906701132308,0.998135339341355,0.997204725182739,0.996275206249918,0.995347140284093,0.994421476741119,0.993500701110258, +00:37:19,1,1,1,0.999067223414938,0.998135763314679,0.997205360903576,0.996276053577594,0.995348198981726,0.994422746323204,0.993502180475897, +00:37:20,1,1,1,0.999067435380341,0.998136187035166,0.997205996245206,0.996276900399706,0.995349257047516,0.994424015147411,0.993503658958265, +00:37:21,1,1,1,0.999067647219446,0.99813661050313,0.9972066312081,0.996277746716881,0.995350314482245,0.994425283214676,0.993505136558456, +00:37:22,1,1,1,0.99906785893241,0.998137033718882,0.997207265792724,0.996278592529743,0.995351371286692,0.994426550525936,0.99350661327756, +00:37:23,1,1,1,0.999068070519389,0.998137456682734,0.997207899999548,0.996279437838915,0.995352427461637,0.994427817082123,0.993508089116665, +00:37:24,1,1,1,0.999068281980537,0.998137879394998,0.997208533829036,0.996280282645019,0.995353483007857,0.994429082884172,0.993509564076859, +00:37:25,1,1,1,0.999068493316011,0.998138301855983,0.997209167281656,0.996281126948676,0.99535453792613,0.994430347933014,0.993511038159227, +00:37:26,1,1,1,0.999068704525965,0.998138724066002,0.997209800357873,0.996281970750508,0.995355592217229,0.994431612229578,0.993512511364854, +00:37:27,1,1,1,0.999068915610556,0.998139146025362,0.997210433058152,0.996282814051133,0.99535664588193,0.994432875774793,0.993513983694821, +00:37:28,1,1,1,0.999069126569936,0.998139567734375,0.997211065382956,0.996283656851171,0.995357698921005,0.994434138569587,0.993515455150209, +00:37:29,1,1,1,0.999069337404262,0.998139989193347,0.997211697332749,0.996284499151237,0.995358751335227,0.994435400614885,0.993516925732097, +00:37:30,1,1,1,0.999069548113687,0.998140410402589,0.997212328907993,0.99628534095195,0.995359803125365,0.994436661911611,0.993518395441561, +00:37:31,1,1,1,0.999069758698364,0.998140831362408,0.99721296010915,0.996286182253925,0.995360854292189,0.994437922460688,0.993519864279677, +00:37:32,1,1,1,0.999069969158449,0.998141252073111,0.997213590936681,0.996287023057776,0.995361904836467,0.994439182263037,0.99352133224752, +00:37:33,1,1,1,0.999070179494094,0.998141672535005,0.997214221391047,0.996287863364117,0.995362954758967,0.994440441319578,0.993522799346161, +00:37:34,1,1,1,0.999070389705453,0.998142092748397,0.997214851472706,0.996288703173561,0.995364004060453,0.994441699631231,0.99352426557667, +00:37:35,1,1,1,0.999070599792679,0.998142512713592,0.997215481182119,0.99628954248672,0.995365052741691,0.994442957198911,0.993525730940117, +00:37:36,1,1,1,0.999070809755924,0.998142932430897,0.997216110519743,0.996290381304204,0.995366100803444,0.994444214023535,0.993527195437569, +00:37:37,1,1,1,0.999071019595342,0.998143351900617,0.997216739486035,0.996291219626624,0.995367148246474,0.994445470106016,0.99352865907009, +00:37:38,1,1,1,0.999071229311084,0.998143771123055,0.997217368081453,0.996292057454588,0.995368195071543,0.994446725447269,0.993530121838746, +00:37:39,1,1,1,0.999071438903302,0.998144190098516,0.997217996306452,0.996292894788705,0.995369241279409,0.994447980048204,0.993531583744598, +00:37:40,1,1,1,0.99907164837215,0.998144608827304,0.997218624161489,0.996293731629582,0.995370286870833,0.994449233909731,0.993533044788707, +00:37:41,1,1,1,0.999071857717777,0.998145027309722,0.997219251647017,0.996294567977824,0.995371331846571,0.994450487032759,0.993534504972132, +00:37:42,1,1,1,0.999072066940336,0.998145445546072,0.997219878763491,0.996295403834037,0.99537237620738,0.994451739418195,0.99353596429593, +00:37:43,1,1,1,0.999072276039978,0.998145863536658,0.997220505511364,0.996296239198826,0.995373419954015,0.994452991066945,0.993537422761157, +00:37:44,1,1,1,0.999072485016853,0.998146281281779,0.997221131891089,0.996297074072794,0.99537446308723,0.994454241979913,0.993538880368867, +00:37:45,1,1,1,0.999072693871113,0.998146698781739,0.997221757903117,0.996297908456542,0.995375505607778,0.994455492158003,0.993540337120113, +00:37:46,1,1,1,0.999072902602907,0.998147116036838,0.997222383547899,0.996298742350674,0.99537654751641,0.994456741602117,0.993541793015944, +00:37:47,1,1,1,0.999073111212387,0.998147533047376,0.997223008825887,0.996299575755788,0.995377588813879,0.994457990313153,0.993543248057411, +00:37:48,1,1,1,0.999073319699702,0.998147949813653,0.99722363373753,0.996300408672486,0.995378629500931,0.994459238292012,0.993544702245562, +00:37:49,1,1,1,0.999073528065002,0.998148366335968,0.997224258283277,0.996301241101365,0.995379669578317,0.99446048553959,0.993546155581441, +00:37:50,1,1,1,0.999073736308436,0.998148782614622,0.997224882463577,0.996302073043024,0.995380709046784,0.994461732056785,0.993547608066094, +00:37:51,1,1,1,0.999073944430155,0.998149198649911,0.997225506278876,0.996302904498059,0.995381747907075,0.99446297784449,0.993549059700563, +00:37:52,1,1,1,0.999074152430306,0.998149614442135,0.997226129729623,0.996303735467067,0.995382786159938,0.994464222903599,0.993550510485889, +00:37:53,1,1,1,0.999074360309038,0.99815002999159,0.997226752816264,0.996304565950642,0.995383823806116,0.994465467235004,0.993551960423112, +00:37:54,1,1,1,0.999074568066502,0.998150445298574,0.997227375539244,0.996305395949378,0.99538486084635,0.994466710839595,0.99355340951327, +00:37:55,1,1,1,0.999074775702843,0.998150860363384,0.997227997899008,0.996306225463869,0.995385897281383,0.994467953718263,0.993554857757399, +00:37:56,1,1,1,0.999074983218212,0.998151275186317,0.997228619896001,0.996307054494708,0.995386933111955,0.994469195871894,0.993556305156534, +00:37:57,1,1,1,0.999075190612756,0.998151689767666,0.997229241530667,0.996307883042485,0.995387968338805,0.994470437301376,0.993557751711708, +00:37:58,1,1,1,0.999075397886623,0.998152104107729,0.997229862803447,0.996308711107791,0.99538900296267,0.994471678007593,0.993559197423953, +00:37:59,1,1,1,0.999075605039959,0.998152518206801,0.997230483714785,0.996309538691215,0.995390036984288,0.994472917991429,0.993560642294299, +00:38:00,1,1,1,0.999075812072913,0.998152932065174,0.997231104265121,0.996310365793347,0.995391070404394,0.994474157253767,0.993562086323775, +00:38:01,1,1,1,0.999076018985631,0.998153345683144,0.997231724454898,0.996311192414775,0.995392103223723,0.994475395795487,0.993563529513406, +00:38:02,1,1,1,0.999076225778261,0.998153759061004,0.997232344284555,0.996312018556084,0.995393135443008,0.99447663361747,0.993564971864218, +00:38:03,1,1,1,0.999076432450949,0.998154172199047,0.997232963754532,0.996312844217861,0.995394167062983,0.994477870720594,0.993566413377236, +00:38:04,1,1,1,0.99907663900384,0.998154585097565,0.997233582865267,0.996313669400691,0.995395198084377,0.994479107105736,0.993567854053481, +00:38:05,1,1,1,0.999076845437083,0.998154997756852,0.997234201617199,0.996314494105158,0.995396228507921,0.994480342773772,0.993569293893974, +00:38:06,1,1,1,0.999077051750821,0.998155410177198,0.997234820010765,0.996315318331847,0.995397258334344,0.994481577725575,0.993570732899734, +00:38:07,1,1,1,0.999077257945201,0.998155822358895,0.997235438046402,0.996316142081338,0.995398287564374,0.99448281196202,0.993572171071778, +00:38:08,1,1,1,0.999077464020369,0.998156234302234,0.997236055724547,0.996316965354213,0.995399316198737,0.994484045483977,0.993573608411122, +00:38:09,1,1,1,0.999077669976469,0.998156646007505,0.997236673045635,0.996317788151054,0.995400344238159,0.994485278292317,0.99357504491878, +00:38:10,1,1,1,0.999077875813647,0.998157057474998,0.9972372900101,0.996318610472439,0.995401371683366,0.99448651038791,0.993576480595766, +00:38:11,1,1,1,0.999078081532048,0.998157468705003,0.997237906618377,0.996319432318948,0.995402398535079,0.994487741771622,0.99357791544309, +00:38:12,1,1,1,0.999078287131816,0.998157879697808,0.9972385228709,0.996320253691159,0.995403424794022,0.99448897244432,0.993579349461763, +00:38:13,1,1,1,0.999078492613095,0.998158290453703,0.997239138768101,0.996321074589648,0.995404450460915,0.994490202406869,0.993580782652792, +00:38:14,1,1,1,0.99907869797603,0.998158700972976,0.997239754310413,0.996321895014993,0.995405475536479,0.994491431660134,0.993582215017184, +00:38:15,1,1,1,0.999078903220764,0.998159111255913,0.997240369498266,0.996322714967768,0.995406500021432,0.994492660204975,0.993583646555944, +00:38:16,1,1,1,0.999079108347442,0.998159521302803,0.997240984332093,0.996323534448547,0.995407523916493,0.994493888042255,0.993585077270076, +00:38:17,1,1,1,0.999079313356206,0.998159931113933,0.997241598812323,0.996324353457904,0.995408547222379,0.994495115172833,0.993586507160581, +00:38:18,1,1,1,0.999079518247201,0.998160340689588,0.997242212939386,0.996325171996413,0.995409569939804,0.994496341597567,0.993587936228461, +00:38:19,1,1,1,0.999079723020568,0.998160750030056,0.99724282671371,0.996325990064644,0.995410592069484,0.994497567317315,0.993589364474713, +00:38:20,1,1,1,0.999079927676451,0.99816115913562,0.997243440135724,0.996326807663169,0.995411613612133,0.994498792332933,0.993590791900336, +00:38:21,1,1,1,0.999080132214992,0.998161568006568,0.997244053205856,0.996327624792557,0.995412634568462,0.994500016645275,0.993592218506325, +00:38:22,1,1,1,0.999080336636335,0.998161976643182,0.997244665924532,0.996328441453379,0.995413654939183,0.994501240255194,0.993593644293675, +00:38:23,1,1,1,0.99908054094062,0.998162385045748,0.997245278292179,0.996329257646201,0.995414674725005,0.994502463163542,0.993595069263378, +00:38:24,1,1,1,0.99908074512799,0.998162793214549,0.997245890309222,0.996330073371592,0.99541569392664,0.99450368537117,0.993596493416427, +00:38:25,1,1,1,0.999080949198587,0.998163201149869,0.997246501976087,0.996330888630119,0.995416712544794,0.994504906878927,0.99359791675381, +00:38:26,1,1,1,0.999081153152553,0.998163608851991,0.997247113293197,0.996331703422347,0.995417730580174,0.994506127687661,0.993599339276516, +00:38:27,1,1,1,0.999081356990027,0.998164016321196,0.997247724260977,0.99633251774884,0.995418748033487,0.994507347798219,0.993600760985532, +00:38:28,1,1,1,0.999081560711153,0.998164423557768,0.99724833487985,0.996333331610163,0.995419764905438,0.994508567211447,0.993602181881844, +00:38:29,1,1,1,0.99908176431607,0.998164830561988,0.997248945150238,0.99633414500688,0.995420781196729,0.994509785928188,0.993603601966435, +00:38:30,1,1,1,0.999081967804919,0.998165237334137,0.997249555072562,0.996334957939552,0.995421796908064,0.994511003949285,0.993605021240287, +00:38:31,1,1,1,0.99908217117784,0.998165643874496,0.997250164647244,0.99633577040874,0.995422812040145,0.994512221275581,0.993606439704381, +00:38:32,1,1,1,0.999082374434975,0.998166050183345,0.997250773874705,0.996336582415006,0.995423826593671,0.994513437907915,0.993607857359697, +00:38:33,1,1,1,0.999082577576462,0.998166456260964,0.997251382755364,0.996337393958909,0.995424840569344,0.994514653847126,0.993609274207213, +00:38:34,1,1,1,0.999082780602442,0.998166862107634,0.99725199128964,0.996338205041008,0.99542585396786,0.994515869094052,0.993610690247904, +00:38:35,1,1,1,0.999082983513054,0.998167267723632,0.997252599477952,0.996339015661861,0.995426866789918,0.99451708364953,0.993612105482746, +00:38:36,1,1,1,0.999083186308438,0.998167673109237,0.997253207320718,0.996339825822025,0.995427879036213,0.994518297514395,0.993613519912712, +00:38:37,1,1,1,0.999083388988732,0.998168078264729,0.997253814818356,0.996340635522056,0.995428890707442,0.994519510689481,0.993614933538775, +00:38:38,1,1,1,0.999083591554077,0.998168483190384,0.997254421971281,0.996341444762511,0.995429901804298,0.99452072317562,0.993616346361903, +00:38:39,1,1,1,0.99908379400461,0.99816888788648,0.99725502877991,0.996342253543943,0.995430912327474,0.994521934973644,0.993617758383068, +00:38:40,1,1,1,0.99908399634047,0.998169292353294,0.997255635244659,0.996343061866907,0.995431922277663,0.994523146084383,0.993619169603235, +00:38:41,1,1,1,0.999084198561795,0.998169696591102,0.997256241365942,0.996343869731955,0.995432931655556,0.994524356508666,0.993620580023372, +00:38:42,1,1,1,0.999084400668724,0.998170100600182,0.997256847144173,0.996344677139639,0.995433940461842,0.994525566247321,0.993621989644441, +00:38:43,1,1,1,0.999084602661394,0.998170504380808,0.997257452579766,0.996345484090512,0.99543494869721,0.994526775301174,0.993623398467408, +00:38:44,1,1,1,0.999084804539944,0.998170907933255,0.997258057673134,0.996346290585123,0.99543595636235,0.99452798367105,0.993624806493233, +00:38:45,1,1,1,0.99908500630451,0.9981713112578,0.997258662424689,0.996347096624022,0.995436963457947,0.994529191357773,0.993626213722877, +00:38:46,1,1,1,0.999085207955229,0.998171714354715,0.997259266834842,0.996347902207757,0.995437969984687,0.994530398362166,0.993627620157298, +00:38:47,1,1,1,0.99908540949224,0.998172117224276,0.997259870904005,0.996348707336877,0.995438975943255,0.99453160468505,0.993629025797454, +00:38:48,1,1,1,0.999085610915679,0.998172519866755,0.997260474632588,0.996349512011929,0.995439981334335,0.994532810327245,0.9936304306443, +00:38:49,1,1,1,0.999085812225682,0.998172922282427,0.997261078021002,0.996350316233459,0.995440986158609,0.99453401528957,0.993631834698791, +00:38:50,1,1,1,0.999086013422386,0.998173324471564,0.997261681069653,0.996351120002012,0.99544199041676,0.994535219572843,0.99363323796188, +00:38:51,1,1,1,0.999086214505927,0.998173726434437,0.997262283778953,0.996351923318134,0.995442994109468,0.99453642317788,0.993634640434518, +00:38:52,1,1,1,0.999086415476442,0.99817412817132,0.997262886149308,0.996352726182368,0.995443997237412,0.994537626105497,0.993636042117655, +00:38:53,1,1,1,0.999086616334065,0.998174529682484,0.997263488181125,0.996353528595257,0.995444999801272,0.994538828356507,0.993637443012241, +00:38:54,1,1,1,0.999086817078934,0.9981749309682,0.997264089874812,0.996354330557343,0.995446001801724,0.994540029931724,0.993638843119221, +00:38:55,1,1,1,0.999087017711182,0.998175332028739,0.997264691230774,0.996355132069167,0.995447003239446,0.994541230831958,0.993640242439543, +00:38:56,1,1,1,0.999087218230945,0.998175732864371,0.997265292249418,0.996355933131271,0.995448004115112,0.99454243105802,0.99364164097415, +00:38:57,1,1,1,0.999087418638359,0.998176133475366,0.997265892931147,0.996356733744193,0.995449004429398,0.994543630610719,0.993643038723985, +00:38:58,1,1,1,0.999087618933558,0.998176533861993,0.997266493276366,0.996357533908473,0.995450004182977,0.994544829490862,0.99364443568999, +00:38:59,1,1,1,0.999087819116677,0.998176934024523,0.997267093285479,0.996358333624649,0.995451003376521,0.994546027699257,0.993645831873105, +00:39:00,1,1,1,0.99908801918785,0.998177333963223,0.997267692958889,0.996359132893258,0.995452002010703,0.994547225236709,0.993647227274268, +00:39:01,1,1,1,0.999088219147212,0.998177733678361,0.997268292296997,0.996359931714837,0.995453000086191,0.994548422104022,0.993648621894416, +00:39:02,1,1,1,0.999088418994895,0.998178133170206,0.997268891300207,0.996360730089921,0.995453997603656,0.994549618302,0.993650015734487, +00:39:03,1,1,1,0.999088618731035,0.998178532439026,0.997269489968918,0.996361528019044,0.995454994563766,0.994550813831442,0.993651408795412, +00:39:04,1,1,1,0.999088818355765,0.998178931485086,0.997270088303532,0.996362325502742,0.995455990967189,0.994552008693151,0.993652801078127, +00:39:05,1,1,1,0.999089017869218,0.998179330308655,0.997270686304448,0.996363122541548,0.995456986814591,0.994553202887926,0.993654192583563, +00:39:06,1,1,1,0.999089217271527,0.998179728909998,0.997271283972067,0.996363919135993,0.995457982106638,0.994554396416564,0.993655583312649, +00:39:07,1,1,1,0.999089416562825,0.998180127289381,0.997271881306786,0.996364715286609,0.995458976843993,0.994555589279863,0.993656973266314, +00:39:08,1,1,1,0.999089615743245,0.99818052544707,0.997272478309005,0.996365510993928,0.99545997102732,0.994556781478619,0.993658362445486, +00:39:09,1,1,1,0.99908981481292,0.998180923383329,0.997273074979119,0.99636630625848,0.995460964657282,0.994557973013625,0.993659750851091, +00:39:10,1,1,1,0.999090013771983,0.998181321098424,0.997273671317528,0.996367101080792,0.99546195773454,0.994559163885676,0.993661138484054, +00:39:11,1,1,1,0.999090212620564,0.998181718592619,0.997274267324626,0.996367895461395,0.995462950259755,0.994560354095563,0.993662525345297, +00:39:12,1,1,1,0.999090411358797,0.998182115866177,0.997274863000809,0.996368689400815,0.995463942233586,0.994561543644078,0.993663911435743, +00:39:13,1,1,1,0.999090609986813,0.998182512919363,0.997275458346474,0.99636948289958,0.995464933656691,0.99456273253201,0.993665296756311, +00:39:14,1,1,1,0.999090808504743,0.998182909752438,0.997276053362013,0.996370275958215,0.995465924529727,0.994563920760147,0.993666681307921, +00:39:15,1,1,1,0.99909100691272,0.998183306365667,0.997276648047823,0.996371068577246,0.995466914853352,0.994565108329278,0.99366806509149, +00:39:16,1,1,1,0.999091205210873,0.998183702759311,0.997277242404295,0.996371860757198,0.995467904628221,0.994566295240187,0.993669448107936, +00:39:17,1,1,1,0.999091403399335,0.998184098933632,0.997277836431822,0.996372652498593,0.995468893854988,0.994567481493662,0.993670830358172, +00:39:18,1,1,1,0.999091601478236,0.998184494888892,0.997278430130798,0.996373443801955,0.995469882534306,0.994568667090484,0.993672211843113, +00:39:19,1,1,1,0.999091799447707,0.998184890625351,0.997279023501613,0.996374234667806,0.995470870666829,0.994569852031438,0.99367359256367, +00:39:20,1,1,1,0.999091997307878,0.998185286143272,0.997279616544658,0.996375025096668,0.995471858253208,0.994571036317304,0.993674972520754, +00:39:21,1,1,1,0.999092195058878,0.998185681442913,0.997280209260325,0.99637581508906,0.995472845294092,0.994572219948862,0.993676351715275, +00:39:22,1,1,1,0.99909239270084,0.998186076524535,0.997280801649002,0.996376604645503,0.995473831790133,0.994573402926892,0.99367773014814, +00:39:23,1,1,1,0.999092590233891,0.998186471388397,0.99728139371108,0.996377393766516,0.995474817741978,0.994574585252172,0.993679107820257, +00:39:24,1,1,1,0.999092787658162,0.99818686603476,0.997281985446946,0.996378182452616,0.995475803150275,0.994575766925479,0.993680484732531, +00:39:25,1,1,1,0.999092984973783,0.99818726046388,0.997282576856989,0.996378970704321,0.995476788015672,0.994576947947588,0.993681860885865, +00:39:26,1,1,1,0.999093182180882,0.998187654676017,0.997283167941597,0.996379758522149,0.995477772338812,0.994578128319274,0.993683236281163, +00:39:27,1,1,1,0.999093379279588,0.99818804867143,0.997283758701156,0.996380545906614,0.995478756120342,0.99457930804131,0.993684610919325, +00:39:28,1,1,1,0.99909357627003,0.998188442450374,0.997284349136053,0.996381332858232,0.995479739360904,0.994580487114468,0.993685984801252, +00:39:29,1,1,1,0.999093773152338,0.998188836013109,0.997284939246674,0.996382119377518,0.995480722061143,0.994581665539519,0.993687357927842, +00:39:30,1,1,1,0.999093969926639,0.99818922935989,0.997285529033404,0.996382905464984,0.995481704221699,0.994582843317234,0.993688730299992, +00:39:31,1,1,1,0.999094166593062,0.998189622490973,0.997286118496627,0.996383691121144,0.995482685843213,0.99458402044838,0.993690101918599, +00:39:32,1,1,1,0.999094363151734,0.998190015406616,0.997286707636727,0.996384476346509,0.995483666926326,0.994585196933725,0.993691472784556, +00:39:33,1,1,1,0.999094559602785,0.998190408107074,0.997287296454089,0.996385261141591,0.995484647471676,0.994586372774037,0.993692842898757, +00:39:34,1,1,1,0.99909475594634,0.998190800592602,0.997287884949095,0.996386045506901,0.995485627479902,0.994587547970079,0.993694212262094, +00:39:35,1,1,1,0.999094952182529,0.998191192863455,0.997288473122127,0.996386829442948,0.99548660695164,0.994588722522617,0.993695580875457, +00:39:36,1,1,1,0.999095148311478,0.998191584919888,0.997289060973567,0.996387612950241,0.995487585887526,0.994589896432412,0.993696948739736, +00:39:37,1,1,1,0.999095344333314,0.998191976762154,0.997289648503796,0.996388396029288,0.995488564288196,0.994591069700228,0.993698315855818, +00:39:38,1,1,1,0.999095540248165,0.998192368390508,0.997290235713195,0.996389178680597,0.995489542154284,0.994592242326824,0.99369968222459, +00:39:39,1,1,1,0.999095736056156,0.998192759805203,0.997290822602144,0.996389960904674,0.995490519486422,0.99459341431296,0.993701047846937, +00:39:40,1,1,1,0.999095931757416,0.998193151006493,0.997291409171023,0.996390742702026,0.995491496285244,0.994594585659395,0.993702412723744, +00:39:41,1,1,1,0.999096127352069,0.998193541994628,0.99729199542021,0.996391524073157,0.995492472551381,0.994595756366885,0.993703776855892, +00:39:42,1,1,1,0.999096322840242,0.998193932769863,0.997292581350084,0.996392305018572,0.995493448285462,0.994596926436188,0.993705140244263, +00:39:43,1,1,1,0.999096518222061,0.998194323332449,0.997293166961022,0.996393085538775,0.995494423488119,0.994598095868058,0.993706502889736, +00:39:44,1,1,1,0.999096713497653,0.998194713682637,0.997293752253402,0.996393865634268,0.995495398159978,0.994599264663248,0.993707864793192, +00:39:45,1,1,1,0.999096908667142,0.998195103820678,0.997294337227601,0.996394645305554,0.995496372301668,0.994600432822512,0.993709225955505, +00:39:46,1,1,1,0.999097103730654,0.998195493746824,0.997294921883994,0.996395424553134,0.995497345913815,0.994601600346602,0.993710586377554, +00:39:47,1,1,1,0.999097298688314,0.998195883461325,0.997295506222957,0.996396203377509,0.995498318997045,0.994602767236267,0.993711946060213, +00:39:48,1,1,1,0.999097493540248,0.99819627296443,0.997296090244866,0.996396981779179,0.995499291551983,0.994603933492258,0.993713305004354, +00:39:49,1,1,1,0.999097688286579,0.99819666225639,0.997296673950093,0.996397759758642,0.995500263579253,0.994605099115322,0.99371466321085, +00:39:50,1,1,1,0.999097882927434,0.998197051337454,0.997297257339015,0.996398537316398,0.995501235079477,0.994606264106207,0.993716020680572, +00:39:51,1,1,1,0.999098077462936,0.99819744020787,0.997297840412003,0.996399314452944,0.995502206053278,0.994607428465659,0.993717377414389, +00:39:52,1,1,1,0.999098271893209,0.998197828867888,0.99729842316943,0.996400091168777,0.995503176501276,0.994608592194423,0.99371873341317, +00:39:53,1,1,1,0.999098466218378,0.998198217317754,0.997299005611669,0.996400867464393,0.995504146424093,0.994609755293242,0.993720088677781, +00:39:54,1,1,1,0.999098660438567,0.998198605557718,0.997299587739091,0.996401643340287,0.995505115822346,0.994610917762859,0.993721443209088, +00:39:55,1,1,1,0.9990988545539,0.998198993588027,0.997300169552068,0.996402418796955,0.995506084696654,0.994612079604017,0.993722797007956, +00:39:56,1,1,1,0.999099048564499,0.998199381408927,0.99730075105097,0.996403193834891,0.995507053047636,0.994613240817455,0.993724150075247, +00:39:57,1,1,1,0.999099242470489,0.998199769020665,0.997301332236166,0.996403968454587,0.995508020875906,0.994614401403912,0.993725502411823, +00:39:58,1,1,1,0.999099436271993,0.998200156423488,0.997301913108027,0.996404742656536,0.995508988182081,0.994615561364128,0.993726854018545, +00:39:59,1,1,1,0.999099629969133,0.998200543617642,0.997302493666921,0.99640551644123,0.995509954966775,0.99461672069884,0.993728204896271, +00:40:00,1,1,1,0.999099823562033,0.998200930603372,0.997303073913217,0.99640628980916,0.995510921230602,0.994617879408783,0.99372955504586, +00:40:01,1,1,1,0.999100017050814,0.998201317380924,0.997303653847282,0.996407062760817,0.995511886974175,0.994619037494692,0.993730904468169, +00:40:02,1,1,1,0.999100210435601,0.998201703950541,0.997304233469484,0.99640783529669,0.995512852198106,0.994620194957302,0.993732253164053, +00:40:03,1,1,1,0.999100403716514,0.99820209031247,0.997304812780189,0.996408607417267,0.995513816903006,0.994621351797346,0.993733601134365, +00:40:04,1,1,1,0.999100596893676,0.998202476466954,0.997305391779763,0.996409379123037,0.995514781089484,0.994622508015555,0.99373494837996, +00:40:05,1,1,1,0.99910078996721,0.998202862414236,0.997305970468573,0.996410150414488,0.99551574475815,0.994623663612659,0.993736294901687, +00:40:06,1,1,1,0.999100982937236,0.998203248154561,0.997306548846983,0.996410921292106,0.995516707909612,0.994624818589389,0.993737640700398, +00:40:07,1,1,1,0.999101175803876,0.99820363368817,0.997307126915357,0.996411691756377,0.995517670544478,0.994625972946473,0.993738985776942, +00:40:08,1,1,1,0.999101368567252,0.998204019015308,0.99730770467406,0.996412461807786,0.995518632663354,0.994627126684638,0.993740330132166, +00:40:09,1,1,1,0.999101561227484,0.998204404136216,0.997308282123455,0.996413231446818,0.995519594266845,0.994628279804611,0.993741673766917, +00:40:10,1,1,1,0.999101753784695,0.998204789051136,0.997308859263905,0.996414000673957,0.995520555355557,0.994629432307117,0.993743016682041, +00:40:11,1,1,1,0.999101946239004,0.998205173760309,0.997309436095772,0.996414769489686,0.995521515930093,0.99463058419288,0.99374435887838, +00:40:12,1,1,1,0.999102138590532,0.998205558263979,0.997310012619419,0.996415537894487,0.995522475991055,0.994631735462624,0.993745700356779, +00:40:13,1,1,1,0.999102330839401,0.998205942562384,0.997310588835206,0.996416305888842,0.995523435539046,0.994632886117069,0.993747041118078, +00:40:14,1,1,1,0.999102522985729,0.998206326655765,0.997311164743494,0.996417073473231,0.995524394574667,0.994634036156938,0.993748381163118, +00:40:15,1,1,1,0.999102715029638,0.998206710544363,0.997311740344644,0.996417840648136,0.995525353098519,0.994635185582951,0.993749720492738, +00:40:16,1,1,1,0.999102906971247,0.998207094228418,0.997312315639015,0.996418607414035,0.995526311111199,0.994636334395825,0.993751059107776, +00:40:17,1,1,1,0.999103098810676,0.998207477708169,0.997312890626966,0.996419373771407,0.995527268613308,0.99463748259628,0.993752397009067, +00:40:18,1,1,1,0.999103290548045,0.998207860983854,0.997313465308856,0.996420139720731,0.995528225605441,0.994638630185031,0.993753734197448, +00:40:19,1,1,1,0.999103482183473,0.998208244055714,0.997314039685043,0.996420905262484,0.995529182088197,0.994639777162794,0.993755070673753, +00:40:20,1,1,1,0.999103673717079,0.998208626923986,0.997314613755885,0.996421670397143,0.995530138062171,0.994640923530284,0.993756406438814, +00:40:21,1,1,1,0.999103865148982,0.998209009588909,0.997315187521738,0.996422435125183,0.995531093527957,0.994642069288214,0.993757741493463, +00:40:22,1,1,1,0.999104056479302,0.998209392050719,0.997315760982959,0.99642319944708,0.995532048486149,0.994643214437297,0.99375907583853, +00:40:23,1,1,1,0.999104247708157,0.998209774309655,0.997316334139905,0.996423963363309,0.995533002937342,0.994644358978245,0.993760409474845, +00:40:24,1,1,1,0.999104438835665,0.998210156365953,0.99731690699293,0.996424726874343,0.995533956882126,0.994645502911767,0.993761742403235, +00:40:25,1,1,1,0.999104629861944,0.998210538219851,0.997317479542389,0.996425489980655,0.995534910321094,0.994646646238573,0.993763074624527, +00:40:26,1,1,1,0.999104820787114,0.998210919871584,0.997318051788637,0.996426252682719,0.995535863254835,0.994647788959372,0.993764406139547, +00:40:27,1,1,1,0.999105011611292,0.998211301321388,0.997318623732028,0.996427014981005,0.995536815683941,0.99464893107487,0.993765736949118, +00:40:28,1,1,1,0.999105202334596,0.998211682569499,0.997319195372915,0.996427776875986,0.995537767608998,0.994650072585774,0.993767067054065, +00:40:29,1,1,1,0.999105392957144,0.998212063616152,0.997319766711651,0.99642853836813,0.995538719030596,0.994651213492789,0.993768396455208, +00:40:30,1,1,1,0.999105583479052,0.998212444461582,0.997320337748589,0.996429299457909,0.99553966994932,0.994652353796619,0.993769725153368, +00:40:31,1,1,1,0.999105773900439,0.998212825106024,0.997320908484079,0.99643006014579,0.995540620365758,0.994653493497966,0.993771053149365, +00:40:32,1,1,1,0.999105964221421,0.998213205549712,0.997321478918474,0.996430820432243,0.995541570280494,0.994654632597534,0.993772380444017, +00:40:33,1,1,1,0.999106154442116,0.99821358579288,0.997322049052123,0.996431580317735,0.995542519694114,0.994655771096023,0.993773707038141, +00:40:34,1,1,1,0.99910634456264,0.998213965835761,0.997322618885378,0.996432339802732,0.9955434686072,0.994656908994133,0.993775032932552, +00:40:35,1,1,1,0.99910653458311,0.998214345678588,0.997323188418588,0.996433098887702,0.995544417020335,0.994658046292563,0.993776358128066, +00:40:36,1,1,1,0.999106724503642,0.998214725321595,0.997323757652102,0.99643385757311,0.995545364934101,0.994659182992011,0.993777682625495, +00:40:37,1,1,1,0.999106914324353,0.998215104765013,0.997324326586269,0.99643461585942,0.995546312349079,0.994660319093174,0.993779006425652, +00:40:38,1,1,1,0.999107104045358,0.998215484009076,0.997324895221438,0.996435373747096,0.99554725926585,0.994661454596747,0.993780329529348, +00:40:39,1,1,1,0.999107293666775,0.998215863054014,0.997325463557954,0.996436131236603,0.995548205684991,0.994662589503426,0.993781651937392, +00:40:40,1,1,1,0.999107483188717,0.998216241900059,0.997326031596167,0.996436888328403,0.995549151607083,0.994663723813904,0.993782973650593, +00:40:41,1,1,1,0.999107672611302,0.998216620547443,0.997326599336423,0.996437645022958,0.995550097032702,0.994664857528874,0.993784294669758, +00:40:42,1,1,1,0.999107861934645,0.998216998996396,0.997327166779066,0.99643840132073,0.995551041962426,0.994665990649027,0.993785614995695, +00:40:43,1,1,1,0.999108051158859,0.998217377247148,0.997327733924445,0.996439157222179,0.995551986396829,0.994667123175055,0.993786934629207, +00:40:44,1,1,1,0.999108240284062,0.99821775529993,0.997328300772902,0.996439912727766,0.995552930336487,0.994668255107647,0.993788253571098, +00:40:45,1,1,1,0.999108429310368,0.998218133154972,0.997328867324784,0.99644066783795,0.995553873781975,0.994669386447493,0.993789571822172, +00:40:46,1,1,1,0.999108618237891,0.998218510812502,0.997329433580433,0.996441422553189,0.995554816733865,0.994670517195279,0.99379088938323, +00:40:47,1,1,1,0.999108807066746,0.998218888272751,0.997329999540195,0.996442176873942,0.99555575919273,0.994671647351692,0.993792206255071, +00:40:48,1,1,1,0.999108995797048,0.998219265535946,0.997330565204411,0.996442930800666,0.995556701159141,0.994672776917418,0.993793522438496, +00:40:49,1,1,1,0.99910918442891,0.998219642602316,0.997331130573424,0.996443684333818,0.99555764263367,0.994673905893141,0.993794837934302, +00:40:50,1,1,1,0.999109372962448,0.998220019472089,0.997331695647577,0.996444437473853,0.995558583616887,0.994675034279546,0.993796152743285, +00:40:51,1,1,1,0.999109561397774,0.998220396145494,0.99733226042721,0.996445190221229,0.99555952410936,0.994676162077315,0.993797466866243, +00:40:52,1,1,1,0.999109749735002,0.998220772622757,0.997332824912666,0.996445942576398,0.995560464111658,0.994677289287129,0.993798780303967, +00:40:53,1,1,1,0.999109937974246,0.998221148904105,0.997333389104284,0.996446694539815,0.995561403624348,0.99467841590967,0.993800093057253, +00:40:54,1,1,1,0.99911012611562,0.998221524989766,0.997333953002405,0.996447446111934,0.995562342647997,0.994679541945616,0.993801405126893, +00:40:55,1,1,1,0.999110314159237,0.998221900879965,0.997334516607369,0.996448197293207,0.995563281183171,0.994680667395647,0.993802716513676, +00:40:56,1,1,1,0.999110502105209,0.998222276574929,0.997335079919513,0.996448948084086,0.995564219230434,0.994681792260441,0.993804027218394, +00:40:57,1,1,1,0.99911068995365,0.998222652074883,0.997335642939178,0.996449698485022,0.995565156790351,0.994682916540672,0.993805337241834, +00:40:58,1,1,1,0.999110877704672,0.998223027380053,0.9973362056667,0.996450448496467,0.995566093863485,0.994684040237019,0.993806646584784, +00:40:59,1,1,1,0.999111065358388,0.998223402490664,0.997336768102418,0.99645119811887,0.995567030450399,0.994685163350155,0.99380795524803, +00:41:00,1,1,1,0.999111252914911,0.998223777406941,0.997337330246668,0.996451947352681,0.995567966551654,0.994686285880753,0.993809263232358, +00:41:01,1,1,1,0.999111440374353,0.998224152129108,0.997337892099788,0.996452696198348,0.995568902167811,0.994687407829487,0.993810570538551, +00:41:02,1,1,1,0.999111627736824,0.998224526657389,0.997338453662113,0.99645344465632,0.99556983729943,0.994688529197029,0.993811877167393, +00:41:03,1,1,1,0.999111815002439,0.998224900992009,0.997339014933979,0.996454192727044,0.99557077194707,0.994689649984048,0.993813183119665, +00:41:04,1,1,1,0.999112002171308,0.998225275133189,0.997339575915721,0.996454940410967,0.99557170611129,0.994690770191215,0.993814488396148, +00:41:05,1,1,1,0.999112189243543,0.998225649081154,0.997340136607674,0.996455687708535,0.995572639792647,0.994691889819199,0.99381579299762, +00:41:06,1,1,1,0.999112376219256,0.998226022836127,0.997340697010172,0.996456434620193,0.995573572991697,0.994693008868667,0.993817096924861, +00:41:07,1,1,1,0.999112563098557,0.998226396398329,0.997341257123547,0.996457181146386,0.995574505708998,0.994694127340286,0.993818400178648, +00:41:08,1,1,1,0.999112749881558,0.998226769767983,0.997341816948135,0.996457927287558,0.995575437945103,0.994695245234722,0.993819702759756, +00:41:09,1,1,1,0.99911293656837,0.998227142945311,0.997342376484266,0.996458673044154,0.995576369700568,0.99469636255264,0.99382100466896, +00:41:10,1,1,1,0.999113123159103,0.998227515930535,0.997342935732275,0.996459418416615,0.995577300975945,0.994697479294704,0.993822305907035, +00:41:11,1,1,1,0.999113309653868,0.998227888723874,0.997343494692491,0.996460163405384,0.995578231771788,0.994698595461576,0.993823606474752, +00:41:12,1,1,1,0.999113496052776,0.998228261325551,0.997344053365246,0.996460908010902,0.995579162088648,0.994699711053919,0.993824906372883, +00:41:13,1,1,1,0.999113682355937,0.998228633735786,0.997344611750872,0.996461652233611,0.995580091927076,0.994700826072393,0.993826205602199, +00:41:14,1,1,1,0.99911386856346,0.998229005954798,0.997345169849698,0.996462396073951,0.995581021287622,0.994701940517659,0.993827504163469, +00:41:15,1,1,1,0.999114054675457,0.998229377982809,0.997345727662054,0.996463139532361,0.995581950170837,0.994703054390376,0.99382880205746, +00:41:16,1,1,1,0.999114240692036,0.998229749820036,0.997346285188269,0.99646388260928,0.995582878577268,0.994704167691201,0.99383009928494, +00:41:17,1,1,1,0.999114426613308,0.998230121466701,0.997346842428672,0.996464625305147,0.995583806507463,0.994705280420792,0.993831395846675, +00:41:18,1,1,1,0.999114612439381,0.99823049292302,0.997347399383592,0.996465367620399,0.99558473396197,0.994706392579805,0.99383269174343, +00:41:19,1,1,1,0.999114798170366,0.998230864189214,0.997347956053356,0.996466109555473,0.995585660941334,0.994707504168895,0.993833986975967, +00:41:20,1,1,1,0.999114983806371,0.9982312352655,0.997348512438292,0.996466851110807,0.995586587446102,0.994708615188717,0.99383528154505, +00:41:21,1,1,1,0.999115169347506,0.998231606152097,0.997349068538726,0.996467592286835,0.995587513476818,0.994709725639924,0.99383657545144, +00:41:22,1,1,1,0.999115354793879,0.998231976849221,0.997349624354985,0.996468333083993,0.995588439034025,0.994710835523167,0.993837868695896, +00:41:23,1,1,1,0.999115540145598,0.998232347357091,0.997350179887395,0.996469073502715,0.995589364118266,0.994711944839099,0.99383916127918, +00:41:24,1,1,1,0.999115725402774,0.998232717675922,0.997350735136281,0.996469813543436,0.995590288730085,0.99471305358837,0.993840453202048, +00:41:25,1,1,1,0.999115910565513,0.998233087805933,0.997351290101968,0.996470553206588,0.995591212870022,0.994714161771629,0.993841744465257, +00:41:26,1,1,1,0.999116095633924,0.998233457747339,0.997351844784781,0.996471292492604,0.995592136538619,0.994715269389525,0.993843035069563, +00:41:27,1,1,1,0.999116280608115,0.998233827500356,0.997352399185044,0.996472031401916,0.995593059736414,0.994716376442706,0.993844325015721, +00:41:28,1,1,1,0.999116465488194,0.9982341970652,0.99735295330308,0.996472769934956,0.995593982463947,0.994717482931818,0.993845614304485, +00:41:29,1,1,1,0.999116650274268,0.998234566442087,0.997353507139213,0.996473508092154,0.995594904721757,0.994718588857507,0.993846902936607, +00:41:30,1,1,1,0.999116834966447,0.998234935631231,0.997354060693764,0.99647424587394,0.995595826510381,0.994719694220417,0.993848190912839, +00:41:31,1,1,1,0.999117019564835,0.998235304632848,0.997354613967057,0.996474983280744,0.995596747830356,0.994720799021193,0.993849478233931, +00:41:32,1,1,1,0.999117204069542,0.998235673447151,0.997355166959412,0.996475720312995,0.995597668682217,0.994721903260478,0.993850764900631, +00:41:33,1,1,1,0.999117388480674,0.998236042074356,0.997355719671152,0.99647645697112,0.9955985890665,0.994723006938912,0.99385205091369, +00:41:34,1,1,1,0.999117572798338,0.998236410514675,0.997356272102596,0.996477193255548,0.99559950898374,0.994724110057138,0.993853336273853, +00:41:35,1,1,1,0.999117757022641,0.998236778768323,0.997356824254065,0.996477929166706,0.995600428434469,0.994725212615796,0.993854620981866, +00:41:36,1,1,1,0.99911794115369,0.998237146835512,0.997357376125879,0.996478664705019,0.995601347419222,0.994726314615524,0.993855905038475, +00:41:37,1,1,1,0.99911812519159,0.998237514716456,0.997357927718358,0.996479399870914,0.995602265938529,0.994727416056961,0.993857188444424, +00:41:38,1,1,1,0.999118309136449,0.998237882411367,0.997358479031819,0.996480134664815,0.995603183992922,0.994728516940745,0.993858471200454, +00:41:39,1,1,1,0.999118492988372,0.998238249920458,0.997359030066582,0.996480869087148,0.995604101582933,0.99472961726751,0.993859753307308, +00:41:40,1,1,1,0.999118676747466,0.99823861724394,0.997359580822964,0.996481603138335,0.99560501870909,0.994730717037894,0.993861034765726, +00:41:41,1,1,1,0.999118860413837,0.998238984382025,0.997360131301283,0.996482336818802,0.995605935371922,0.99473181625253,0.993862315576448, +00:41:42,1,1,1,0.999119043987589,0.998239351334924,0.997360681501856,0.996483070128969,0.995606851571958,0.994732914912053,0.993863595740212, +00:41:43,1,1,1,0.99911922746883,0.998239718102849,0.997361231424999,0.996483803069259,0.995607767309725,0.994734013017094,0.993864875257757, +00:41:44,1,1,1,0.999119410857663,0.998240084686011,0.997361781071029,0.996484535640094,0.995608682585751,0.994735110568286,0.993866154129817, +00:41:45,1,1,1,0.999119594154195,0.998240451084619,0.997362330440261,0.996485267841894,0.99560959740056,0.994736207566259,0.993867432357128, +00:41:46,1,1,1,0.99911977735853,0.998240817298884,0.99736287953301,0.996485999675079,0.995610511754678,0.994737304011643,0.993868709940424, +00:41:47,1,1,1,0.999119960470774,0.998241183329017,0.997363428349592,0.99648673114007,0.99561142564863,0.994738399905068,0.993869986880439, +00:41:48,1,1,1,0.999120143491031,0.998241549175225,0.99736397689032,0.996487462237284,0.995612339082939,0.994739495247162,0.993871263177905, +00:41:49,1,1,1,0.999120326419406,0.998241914837719,0.997364525155508,0.996488192967141,0.995613252058128,0.994740590038551,0.993872538833552, +00:41:50,1,1,1,0.999120509256003,0.998242280316707,0.99736507314547,0.996488923330059,0.995614164574718,0.994741684279862,0.99387381384811, +00:41:51,1,1,1,0.999120692000928,0.998242645612399,0.997365620860518,0.996489653326454,0.995615076633233,0.99474277797172,0.993875088222308, +00:41:52,1,1,1,0.999120874654283,0.998243010725002,0.997366168300965,0.996490382956743,0.995615988234191,0.99474387111475,0.993876361956875, +00:41:53,1,1,1,0.999121057216173,0.998243375654725,0.997366715467123,0.996491112221341,0.995616899378113,0.994744963709576,0.993877635052536, +00:41:54,1,1,1,0.999121239686702,0.998243740401774,0.997367262359304,0.996491841120665,0.995617810065519,0.994746055756819,0.993878907510017, +00:41:55,1,1,1,0.999121422065973,0.998244104966359,0.997367808977817,0.996492569655129,0.995618720296926,0.994747147257102,0.993880179330044, +00:41:56,1,1,1,0.999121604354091,0.998244469348685,0.997368355322976,0.996493297825147,0.995619630072851,0.994748238211046,0.993881450513339, +00:41:57,1,1,1,0.999121786551159,0.99824483354896,0.997368901395088,0.996494025631133,0.995620539393813,0.994749328619271,0.993882721060626, +00:41:58,1,1,1,0.999121968657279,0.99824519756739,0.997369447194464,0.9964947530735,0.995621448260326,0.994750418482395,0.993883990972625, +00:41:59,1,1,1,0.999122150672556,0.998245561404181,0.997369992721414,0.996495480152659,0.995622356672907,0.994751507801036,0.993885260250057, +00:42:00,1,1,1,0.999122332597091,0.998245925059539,0.997370537976247,0.996496206869024,0.99562326463207,0.994752596575814,0.993886528893642, +00:42:01,1,1,1,0.999122514430989,0.99824628853367,0.99737108295927,0.996496933223004,0.995624172138329,0.994753684807342,0.993887796904098, +00:42:02,1,1,1,0.999122696174351,0.99824665182678,0.997371627670791,0.996497659215011,0.995625079192196,0.994754772496237,0.993889064282141, +00:42:03,1,1,1,0.999122877827281,0.998247014939073,0.997372172111118,0.996498384845454,0.995625985794184,0.994755859643114,0.99389033102849, +00:42:04,1,1,1,0.999123059389879,0.998247377870753,0.997372716280559,0.996499110114744,0.995626891944806,0.994756946248586,0.993891597143858, +00:42:05,1,1,1,0.99912324086225,0.998247740622026,0.99737326017942,0.996499835023288,0.995627797644571,0.994758032313266,0.99389286262896, +00:42:06,1,1,1,0.999123422244495,0.998248103193096,0.997373803808006,0.996500559571494,0.995628702893991,0.994759117837766,0.993894127484509, +00:42:07,1,1,1,0.999123603536715,0.998248465584166,0.997374347166624,0.996501283759772,0.995629607693574,0.994760202822697,0.993895391711218, +00:42:08,1,1,1,0.999123784739014,0.99824882779544,0.997374890255579,0.996502007588526,0.995630512043828,0.99476128726867,0.993896655309797, +00:42:09,1,1,1,0.999123965851491,0.998249189827121,0.997375433075176,0.996502731058165,0.995631415945263,0.994762371176292,0.993897918280957, +00:42:10,1,1,1,0.99912414687425,0.998249551679413,0.997375975625719,0.996503454169093,0.995632319398385,0.994763454546174,0.993899180625406, +00:42:11,1,1,1,0.99912432780739,0.998249913352517,0.997376517907512,0.996504176921716,0.995633222403701,0.994764537378922,0.993900442343852, +00:42:12,1,1,1,0.999124508651014,0.998250274846636,0.997377059920859,0.996504899316439,0.995634124961716,0.994765619675142,0.993901703437003, +00:42:13,1,1,1,0.999124689405223,0.998250636161973,0.997377601666063,0.996505621353666,0.995635027072936,0.994766701435442,0.993902963905566, +00:42:14,1,1,1,0.999124870070117,0.998250997298729,0.997378143143426,0.9965063430338,0.995635928737864,0.994767782660425,0.993904223750243, +00:42:15,1,1,1,0.999125050645797,0.998251358257105,0.997378684353251,0.996507064357244,0.995636829957005,0.994768863350696,0.993905482971741, +00:42:16,1,1,1,0.999125231132364,0.998251719037303,0.997379225295839,0.9965077853244,0.995637730730861,0.994769943506858,0.99390674157076, +00:42:17,1,1,1,0.999125411529918,0.998252079639524,0.997379765971492,0.996508505935671,0.995638631059934,0.994771023129513,0.993907999548005, +00:42:18,1,1,1,0.99912559183856,0.998252440063969,0.997380306380511,0.996509226191457,0.995639530944726,0.994772102219262,0.993909256904174, +00:42:19,1,1,1,0.99912577205839,0.998252800310837,0.997380846523196,0.996509946092159,0.995640430385737,0.994773180776707,0.993910513639969, +00:42:20,1,1,1,0.999125952189508,0.998253160380329,0.997381386399847,0.996510665638177,0.995641329383467,0.994774258802446,0.993911769756088, +00:42:21,1,1,1,0.999126132232014,0.998253520272644,0.997381926010764,0.996511384829911,0.995642227938416,0.994775336297079,0.993913025253229, +00:42:22,1,1,1,0.999126312186007,0.998253879987982,0.997382465356246,0.996512103667759,0.995643126051082,0.994776413261203,0.99391428013209, +00:42:23,1,1,1,0.999126492051587,0.998254239526543,0.997383004436592,0.99651282215212,0.995644023721963,0.994777489695416,0.993915534393365, +00:42:24,1,1,1,0.999126671828855,0.998254598888524,0.997383543252099,0.996513540283391,0.995644920951555,0.994778565600313,0.99391678803775, +00:42:25,1,1,1,0.999126851517908,0.998254958074125,0.997384081803067,0.996514258061969,0.995645817740356,0.994779640976491,0.993918041065938, +00:42:26,1,1,1,0.999127031118846,0.998255317083545,0.997384620089792,0.996514975488252,0.995646714088861,0.994780715824544,0.993919293478623, +00:42:27,1,1,1,0.999127210631769,0.99825567591698,0.997385158112571,0.996515692562634,0.995647609997564,0.994781790145064,0.993920545276497, +00:42:28,1,1,1,0.999127390056775,0.998256034574629,0.997385695871701,0.996516409285512,0.99564850546696,0.994782863938646,0.993921796460249, +00:42:29,1,1,1,0.999127569393963,0.99825639305669,0.997386233367479,0.99651712565728,0.995649400497542,0.994783937205881,0.993923047030571, +00:42:30,1,1,1,0.999127748643432,0.998256751363359,0.9973867706002,0.996517841678333,0.995650295089804,0.99478500994736,0.993924296988151, +00:42:31,1,1,1,0.999127927805279,0.998257109494833,0.997387307570158,0.996518557349065,0.995651189244237,0.994786082163673,0.993925546333677, +00:42:32,1,1,1,0.999128106879604,0.998257467451309,0.99738784427765,0.996519272669868,0.995652082961333,0.994787153855411,0.993926795067836, +00:42:33,1,1,1,0.999128285866505,0.998257825232984,0.997388380722969,0.996519987641135,0.995652976241582,0.99478822502316,0.993928043191314, +00:42:34,1,1,1,0.999128464766079,0.998258182840053,0.99738891690641,0.996520702263258,0.995653869085475,0.99478929566751,0.993929290704796, +00:42:35,1,1,1,0.999128643578425,0.998258540272712,0.997389452828267,0.996521416536629,0.9956547614935,0.994790365789046,0.993930537608965, +00:42:36,1,1,1,0.99912882230364,0.998258897531157,0.997389988488832,0.996522130461638,0.995655653466146,0.994791435388356,0.993931783904505, +00:42:37,1,1,1,0.999129000941822,0.998259254615583,0.997390523888398,0.996522844038676,0.9956565450039,0.994792504466023,0.993933029592098, +00:42:38,1,1,1,0.999129179493069,0.998259611526185,0.997391059027257,0.996523557268133,0.995657436107252,0.994793573022633,0.993934274672424, +00:42:39,1,1,1,0.999129357957478,0.998259968263157,0.997391593905702,0.996524270150398,0.995658326776685,0.994794641058769,0.993935519146165, +00:42:40,1,1,1,0.999129536335145,0.998260324826694,0.997392128524025,0.996524982685859,0.995659217012687,0.994795708575013,0.993936763013998, +00:42:41,1,1,1,0.999129714626169,0.99826068121699,0.997392662882515,0.996525694874905,0.995660106815742,0.994796775571948,0.993938006276602, +00:42:42,1,1,1,0.999129892830646,0.998261037434238,0.997393196981464,0.996526406717923,0.995660996186335,0.994797842050154,0.993939248934654, +00:42:43,1,1,1,0.999130070948672,0.998261393478633,0.997393730821163,0.9965271182153,0.995661885124949,0.994798908010211,0.99394049098883, +00:42:44,1,1,1,0.999130248980345,0.998261749350368,0.9973942644019,0.996527829367423,0.995662773632067,0.9947999734527,0.993941732439806, +00:42:45,1,1,1,0.999130426925761,0.998262105049635,0.997394797723966,0.996528540174677,0.995663661708172,0.994801038378197,0.993942973288255, +00:42:46,1,1,1,0.999130604785017,0.998262460576627,0.997395330787649,0.996529250637448,0.995664549353745,0.994802102787282,0.993944213534851, +00:42:47,1,1,1,0.999130782558208,0.998262815931536,0.997395863593238,0.996529960756121,0.995665436569268,0.99480316668053,0.993945453180266, +00:42:48,1,1,1,0.999130960245431,0.998263171114556,0.997396396141021,0.996530670531079,0.995666323355219,0.994804230058518,0.993946692225171, +00:42:49,1,1,1,0.999131137846781,0.998263526125877,0.997396928431287,0.996531379962707,0.995667209712079,0.994805292921821,0.993947930670238, +00:42:50,1,1,1,0.999131315362355,0.998263880965692,0.997397460464321,0.996532089051387,0.995668095640327,0.994806355271013,0.993949168516134, +00:42:51,1,1,1,0.999131492792248,0.998264235634191,0.997397992240412,0.996532797797502,0.99566898114044,0.994807417106668,0.993950405763529, +00:42:52,1,1,1,0.999131670136556,0.998264590131565,0.997398523759846,0.996533506201435,0.995669866212896,0.994808478429358,0.993951642413089, +00:42:53,1,1,1,0.999131847395375,0.998264944458006,0.997399055022908,0.996534214263566,0.995670750858173,0.994809539239656,0.993952878465482, +00:42:54,1,1,1,0.999132024568798,0.998265298613704,0.997399586029886,0.996534921984277,0.995671635076745,0.994810599538132,0.993954113921374, +00:42:55,1,1,1,0.999132201656923,0.99826565259885,0.997400116781063,0.996535629363948,0.995672518869089,0.994811659325356,0.993955348781427, +00:42:56,1,1,1,0.999132378659842,0.998266006413632,0.997400647276725,0.996536336402958,0.995673402235679,0.994812718601899,0.993956583046308, +00:42:57,1,1,1,0.999132555577653,0.998266360058241,0.997401177517157,0.996537043101688,0.995674285176989,0.994813777368329,0.993957816716677, +00:42:58,1,1,1,0.999132732410448,0.998266713532866,0.997401707502642,0.996537749460515,0.995675167693492,0.994814835625213,0.993959049793197, +00:42:59,1,1,1,0.999132909158324,0.998267066837696,0.997402237233464,0.996538455479818,0.995676049785662,0.994815893373118,0.993960282276528, +00:43:00,1,1,1,0.999133085821373,0.998267419972921,0.997402766709906,0.996539161159975,0.99567693145397,0.994816950612611,0.993961514167331, +00:43:01,1,1,1,0.999133262399692,0.998267772938728,0.997403295932252,0.996539866501363,0.995677812698887,0.994818007344257,0.993962745466264, +00:43:02,1,1,1,0.999133438893373,0.998268125735307,0.997403824900784,0.996540571504359,0.995678693520885,0.994819063568621,0.993963976173986, +00:43:03,1,1,1,0.999133615302511,0.998268478362845,0.997404353615783,0.996541276169337,0.995679573920432,0.994820119286266,0.993965206291152, +00:43:04,1,1,1,0.999133791627199,0.99826883082153,0.997404882077531,0.996541980496675,0.995680453898,0.994821174497755,0.993966435818421, +00:43:05,1,1,1,0.999133967867533,0.998269183111549,0.997405410286311,0.996542684486746,0.995681333454055,0.994822229203651,0.993967664756445, +00:43:06,1,1,1,0.999134144023604,0.99826953523309,0.997405938242402,0.996543388139926,0.995682212589067,0.994823283404514,0.993968893105881, +00:43:07,1,1,1,0.999134320095507,0.99826988718634,0.997406465946085,0.996544091456589,0.995683091303502,0.994824337100905,0.99397012086738, +00:43:08,1,1,1,0.999134496083335,0.998270238971485,0.99740699339764,0.996544794437107,0.995683969597826,0.994825390293385,0.993971348041596, +00:43:09,1,1,1,0.999134671987182,0.998270590588713,0.997407520597346,0.996545497081853,0.995684847472507,0.994826442982511,0.99397257462918, +00:43:10,1,1,1,0.99913484780714,0.998270942038208,0.997408047545484,0.9965461993912,0.99568572492801,0.994827495168843,0.993973800630782, +00:43:11,1,1,1,0.999135023543303,0.998271293320157,0.997408574242331,0.996546901365519,0.995686601964798,0.994828546852936,0.993975026047052, +00:43:12,1,1,1,0.999135199195763,0.998271644434747,0.997409100688167,0.996547603005183,0.995687478583336,0.994829598035349,0.993976250878639, +00:43:13,1,1,1,0.999135374764613,0.998271995382161,0.997409626883269,0.996548304310561,0.995688354784088,0.994830648716637,0.99397747512619, +00:43:14,1,1,1,0.999135550249945,0.998272346162585,0.997410152827914,0.996549005282023,0.995689230567515,0.994831698897353,0.993978698790351, +00:43:15,1,1,1,0.999135725651853,0.998272696776205,0.997410678522381,0.99654970591994,0.99569010593408,0.994832748578054,0.99397992187177, +00:43:16,1,1,1,0.999135900970428,0.998273047223204,0.997411203966946,0.99655040622468,0.995690980884244,0.994833797759292,0.99398114437109, +00:43:17,1,1,1,0.999136076205763,0.998273397503767,0.997411729161886,0.996551106196613,0.995691855418469,0.994834846441619,0.993982366288956, +00:43:18,1,1,1,0.99913625135795,0.998273747618078,0.997412254107476,0.996551805836105,0.995692729537213,0.994835894625588,0.993983587626011, +00:43:19,1,1,1,0.99913642642708,0.998274097566321,0.997412778803992,0.996552505143525,0.995693603240936,0.994836942311749,0.993984808382897, +00:43:20,1,1,1,0.999136601413245,0.998274447348679,0.99741330325171,0.99655320411924,0.995694476530097,0.994837989500653,0.993986028560255, +00:43:21,1,1,1,0.999136776316538,0.998274796965337,0.997413827450905,0.996553902763615,0.995695349405155,0.99483903619285,0.993987248158726, +00:43:22,1,1,1,0.999136951137049,0.998275146416476,0.99741435140185,0.996554601077019,0.995696221866566,0.994840082388887,0.99398846717895, +00:43:23,1,1,1,0.999137125874871,0.998275495702279,0.997414875104821,0.996555299059814,0.995697093914787,0.994841128089313,0.993989685621564, +00:43:24,1,1,1,0.999137300530093,0.99827584482293,0.99741539856009,0.996555996712367,0.995697965550274,0.994842173294674,0.993990903487206, +00:43:25,1,1,1,0.999137475102808,0.998276193778609,0.997415921767931,0.996556694035043,0.995698836773483,0.994843218005518,0.993992120776513, +00:43:26,1,1,1,0.999137649593107,0.9982765425695,0.997416444728618,0.996557391028204,0.995699707584869,0.994844262222389,0.993993337490121, +00:43:27,1,1,1,0.999137824001079,0.998276891195784,0.997416967442422,0.996558087692214,0.995700577984885,0.994845305945833,0.993994553628665, +00:43:28,1,1,1,0.999137998326817,0.998277239657642,0.997417489909616,0.996558784027436,0.995701447973986,0.994846349176393,0.993995769192778, +00:43:29,1,1,1,0.999138172570411,0.998277587955256,0.997418012130471,0.996559480034233,0.995702317552623,0.994847391914612,0.993996984183095, +00:43:30,1,1,1,0.999138346731951,0.998277936088807,0.99741853410526,0.996560175712966,0.99570318672125,0.994848434161034,0.993998198600246, +00:43:31,1,1,1,0.999138520811527,0.998278284058475,0.997419055834252,0.996560871063996,0.995704055480317,0.994849475916199,0.993999412444863, +00:43:32,1,1,1,0.999138694809231,0.99827863186444,0.997419577317719,0.996561566087685,0.995704923830277,0.994850517180649,0.994000625717577, +00:43:33,1,1,1,0.999138868725151,0.998278979506883,0.997420098555931,0.996562260784393,0.995705791771578,0.994851557954923,0.994001838419018, +00:43:34,1,1,1,0.999139042559378,0.998279326985985,0.997420619549157,0.996562955154479,0.995706659304671,0.994852598239561,0.994003050549813, +00:43:35,1,1,1,0.999139216312002,0.998279674301923,0.997421140297668,0.996563649198303,0.995707526430005,0.994853638035102,0.99400426211059, +00:43:36,1,1,1,0.999139389983113,0.998280021454879,0.997421660801731,0.996564342916223,0.995708393148028,0.994854677342084,0.994005473101977, +00:43:37,1,1,1,0.9991395635728,0.99828036844503,0.997422181061617,0.996565036308598,0.995709259459187,0.994855716161042,0.994006683524599, +00:43:38,1,1,1,0.999139737081152,0.998280715272556,0.997422701077593,0.996565729375785,0.995710125363931,0.994856754492515,0.994007893379081, +00:43:39,1,1,1,0.999139910508259,0.998281061937636,0.997423220849927,0.996566422118142,0.995710990862705,0.994857792337037,0.994009102666048, +00:43:40,1,1,1,0.999140083854211,0.998281408440448,0.997423740378887,0.996567114536025,0.995711855955955,0.994858829695143,0.994010311386123, +00:43:41,1,1,1,0.999140257119096,0.99828175478117,0.997424259664739,0.99656780662979,0.995712720644126,0.994859866567367,0.994011519539927, +00:43:42,1,1,1,0.999140430303003,0.99828210095998,0.997424778707752,0.996568498399794,0.995713584927664,0.994860902954242,0.994012727128083, +00:43:43,1,1,1,0.999140603406021,0.998282446977056,0.99742529750819,0.996569189846392,0.995714448807011,0.994861938856302,0.994013934151212, +00:43:44,1,1,1,0.999140776428239,0.998282792832574,0.997425816066321,0.996569880969938,0.995715312282611,0.994862974274076,0.994015140609931, +00:43:45,1,1,1,0.999140949369745,0.998283138526713,0.997426334382409,0.996570571770785,0.995716175354908,0.994864009208098,0.994016346504862, +00:43:46,1,1,1,0.999141122230628,0.998283484059649,0.997426852456721,0.996571262249289,0.995717038024342,0.994865043658896,0.994017551836622, +00:43:47,1,1,1,0.999141295010976,0.998283829431558,0.99742737028952,0.996571952405803,0.995717900291355,0.994866077627,0.994018756605827, +00:43:48,1,1,1,0.999141467710878,0.998284174642618,0.997427887881072,0.996572642240678,0.995718762156389,0.99486711111294,0.994019960813095, +00:43:49,1,1,1,0.999141640330421,0.998284519693003,0.997428405231641,0.996573331754267,0.995719623619883,0.994868144117242,0.994021164459039, +00:43:50,1,1,1,0.999141812869694,0.998284864582891,0.99742892234149,0.996574020946922,0.995720484682277,0.994869176640435,0.994022367544276, +00:43:51,1,1,1,0.999141985328784,0.998285209312456,0.997429439210883,0.996574709818994,0.995721345344009,0.994870208683044,0.994023570069418, +00:43:52,1,1,1,0.999142157707779,0.998285553881874,0.997429955840083,0.996575398370834,0.995722205605518,0.994871240245596,0.994024772035079, +00:43:53,1,1,1,0.999142330006766,0.99828589829132,0.997430472229353,0.996576086602791,0.995723065467242,0.994872271328615,0.994025973441869, +00:43:54,1,1,1,0.999142502225834,0.998286242540969,0.997430988378954,0.996576774515216,0.995723924929618,0.994873301932626,0.9940271742904, +00:43:55,1,1,1,0.999142674365069,0.998286586630996,0.99743150428915,0.996577462108458,0.995724783993082,0.994874332058152,0.994028374581283, +00:43:56,1,1,1,0.999142846424558,0.998286930561575,0.9974320199602,0.996578149382865,0.99572564265807,0.994875361705716,0.994029574315126, +00:43:57,1,1,1,0.999143018404389,0.99828727433288,0.997432535392367,0.996578836338786,0.995726500925017,0.99487639087584,0.994030773492538, +00:43:58,1,1,1,0.999143190304649,0.998287617945085,0.997433050585912,0.996579522976568,0.995727358794358,0.994877419569046,0.994031972114127, +00:43:59,1,1,1,0.999143362125425,0.998287961398363,0.997433565541094,0.996580209296559,0.995728216266527,0.994878447785853,0.994033170180498, +00:44:00,1,1,1,0.999143533866802,0.998288304692889,0.997434080258174,0.996580895299105,0.995729073341957,0.994879475526782,0.994034367692259, +00:44:01,1,1,1,0.999143705528869,0.998288647828835,0.997434594737411,0.996581580984553,0.995729930021081,0.994880502792351,0.994035564650013, +00:44:02,1,1,1,0.999143877111711,0.998288990806374,0.997435108979066,0.996582266353248,0.99573078630433,0.994881529583079,0.994036761054366, +00:44:03,1,1,1,0.999144048615414,0.998289333625679,0.997435622983396,0.996582951405535,0.995731642192137,0.994882555899484,0.994037956905919, +00:44:04,1,1,1,0.999144220040065,0.998289676286923,0.99743613675066,0.99658363614176,0.995732497684933,0.994883581742083,0.994039152205277, +00:44:05,1,1,1,0.999144391385751,0.998290018790276,0.997436650281118,0.996584320562267,0.995733352783147,0.994884607111391,0.99404034695304, +00:44:06,1,1,1,0.999144562652556,0.998290361135912,0.997437163575025,0.996585004667399,0.995734207487209,0.994885632007925,0.994041541149808, +00:44:07,1,1,1,0.999144733840567,0.998290703324002,0.997437676632641,0.9965856884575,0.995735061797549,0.994886656432198,0.994042734796183, +00:44:08,1,1,1,0.99914490494987,0.998291045354718,0.997438189454222,0.996586371932912,0.995735915714595,0.994887680384724,0.994043927892762, +00:44:09,1,1,1,0.99914507598055,0.99829138722823,0.997438702040025,0.996587055093978,0.995736769238775,0.994888703866018,0.994045120440144, +00:44:10,1,1,1,0.999145246932693,0.99829172894471,0.997439214390306,0.996587737941041,0.995737622370515,0.994889726876592,0.994046312438927, +00:44:11,1,1,1,0.999145417806384,0.998292070504328,0.997439726505321,0.99658842047444,0.995738475110244,0.994890749416956,0.994047503889706, +00:44:12,1,1,1,0.999145588601708,0.998292411907255,0.997440238385327,0.996589102694517,0.995739327458386,0.994891771487622,0.994048694793077, +00:44:13,1,1,1,0.999145759318751,0.998292753153661,0.997440750030578,0.996589784601613,0.995740179415367,0.994892793089102,0.994049885149636, +00:44:14,1,1,1,0.999145929957597,0.998293094243716,0.99744126144133,0.996590466196067,0.995741030981613,0.994893814221903,0.994051074959976, +00:44:15,1,1,1,0.999146100518332,0.99829343517759,0.997441772617836,0.99659114747822,0.995741882157546,0.994894834886536,0.99405226422469, +00:44:16,1,1,1,0.99914627100104,0.998293775955452,0.997442283560352,0.996591828448409,0.995742732943592,0.994895855083508,0.994053452944371, +00:44:17,1,1,1,0.999146441405806,0.998294116577472,0.997442794269131,0.996592509106973,0.995743583340173,0.994896874813327,0.994054641119609, +00:44:18,1,1,1,0.999146611732714,0.998294457043819,0.997443304744426,0.996593189454251,0.995744433347711,0.994897894076499,0.994055828750996, +00:44:19,1,1,1,0.999146781981849,0.998294797354661,0.997443814986491,0.99659386949058,0.995745282966629,0.994898912873531,0.994057015839122, +00:44:20,1,1,1,0.999146952153296,0.998295137510167,0.997444324995579,0.996594549216296,0.995746132197347,0.994899931204928,0.994058202384574, +00:44:21,1,1,1,0.999147122247137,0.998295477510505,0.997444834771942,0.996595228631737,0.995746981040287,0.994900949071194,0.994059388387942, +00:44:22,1,1,1,0.999147292263459,0.998295817355844,0.997445344315832,0.996595907737239,0.995747829495868,0.994901966472834,0.994060573849813, +00:44:23,1,1,1,0.999147462202343,0.998296157046351,0.997445853627501,0.996596586533138,0.99574867756451,0.99490298341035,0.994061758770773, +00:44:24,1,1,1,0.999147632063875,0.998296496582194,0.997446362707201,0.996597265019767,0.995749525246632,0.994903999884245,0.994062943151407, +00:44:25,1,1,1,0.999147801848137,0.99829683596354,0.997446871555182,0.996597943197463,0.995750372542652,0.994905015895021,0.994064126992301, +00:44:26,1,1,1,0.999147971555214,0.998297175190556,0.997447380171695,0.996598621066559,0.995751219452987,0.994906031443179,0.994065310294038, +00:44:27,1,1,1,0.999148141185189,0.99829751426341,0.99744788855699,0.99659929862739,0.995752065978056,0.994907046529219,0.994066493057203, +00:44:28,1,1,1,0.999148310738146,0.998297853182268,0.997448396711317,0.996599975880288,0.995752912118274,0.994908061153641,0.994067675282376, +00:44:29,1,1,1,0.999148480214167,0.998298191947296,0.997448904634927,0.996600652825586,0.995753757874058,0.994909075316944,0.994068856970139, +00:44:30,1,1,1,0.999148649613335,0.998298530558661,0.997449412328068,0.996601329463616,0.995754603245822,0.994910089019625,0.994070038121073, +00:44:31,1,1,1,0.999148818935734,0.998298869016528,0.997449919790989,0.996602005794712,0.995755448233982,0.994911102262184,0.994071218735759, +00:44:32,1,1,1,0.999148988181447,0.998299207321064,0.997450427023939,0.996602681819203,0.995756292838952,0.994912115045115,0.994072398814775, +00:44:33,1,1,1,0.999149157350557,0.998299545472434,0.997450934027165,0.99660335753742,0.995757137061145,0.994913127368917,0.994073578358699, +00:44:34,1,1,1,0.999149326443145,0.998299883470802,0.997451440800917,0.996604032949695,0.995757980900974,0.994914139234083,0.994074757368108, +00:44:35,1,1,1,0.999149495459294,0.998300221316335,0.997451947345441,0.996604708056358,0.995758824358853,0.994915150641109,0.99407593584358, +00:44:36,1,1,1,0.999149664399088,0.998300559009196,0.997452453660985,0.996605382857737,0.995759667435192,0.994916161590489,0.994077113785691, +00:44:37,1,1,1,0.999149833262608,0.998300896549552,0.997452959747794,0.996606057354162,0.995760510130403,0.994917172082715,0.994078291195014, +00:44:38,1,1,1,0.999150002049937,0.998301233937565,0.997453465606117,0.996606731545962,0.995761352444898,0.994918182118282,0.994079468072125, +00:44:39,1,1,1,0.999150170761156,0.998301571173399,0.997453971236199,0.996607405433465,0.995762194379084,0.994919191697681,0.994080644417596, +00:44:40,1,1,1,0.999150339396347,0.99830190825722,0.997454476638286,0.996608079016997,0.995763035933374,0.994920200821402,0.994081820232001, +00:44:41,1,1,1,0.999150507955593,0.99830224518919,0.997454981812622,0.996608752296888,0.995763877108175,0.994921209489938,0.994082995515911, +00:44:42,1,1,1,0.999150676438975,0.998302581969473,0.997455486759454,0.996609425273463,0.995764717903896,0.994922217703776,0.994084170269897, +00:44:43,1,1,1,0.999150844846574,0.998302918598232,0.997455991479027,0.996610097947049,0.995765558320944,0.994923225463408,0.994085344494529, +00:44:44,1,1,1,0.999151013178473,0.99830325507563,0.997456495971583,0.996610770317971,0.995766398359728,0.99492423276932,0.994086518190377, +00:44:45,1,1,1,0.999151181434752,0.998303591401829,0.997457000237368,0.996611442386555,0.995767238020653,0.994925239622002,0.994087691358008, +00:44:46,1,1,1,0.999151349615494,0.998303927576993,0.997457504276626,0.996612114153126,0.995768077304126,0.99492624602194,0.994088863997992, +00:44:47,1,1,1,0.999151517720778,0.998304263601283,0.997458008089599,0.996612785618009,0.995768916210553,0.994927251969621,0.994090036110894, +00:44:48,1,1,1,0.999151685750686,0.998304599474862,0.99745851167653,0.996613456781527,0.995769754740338,0.99492825746553,0.994091207697282, +00:44:49,1,1,1,0.999151853705299,0.998304935197891,0.997459015037663,0.996614127644004,0.995770592893885,0.994929262510152,0.994092378757719, +00:44:50,1,1,1,0.999152021584698,0.998305270770532,0.99745951817324,0.996614798205763,0.995771430671599,0.994930267103973,0.994093549292772, +00:44:51,1,1,1,0.999152189388964,0.998305606192947,0.997460021083503,0.996615468467127,0.995772268073883,0.994931271247476,0.994094719303004, +00:44:52,1,1,1,0.999152357118176,0.998305941465296,0.997460523768692,0.996616138428418,0.99577310510114,0.994932274941143,0.994095888788977, +00:44:53,1,1,1,0.999152524772416,0.99830627658774,0.997461026229051,0.996616808089958,0.995773941753771,0.994933278185457,0.994097057751254, +00:44:54,1,1,1,0.999152692351764,0.99830661156044,0.99746152846482,0.996617477452068,0.995774778032179,0.994934280980901,0.994098226190397, +00:44:55,1,1,1,0.9991528598563,0.998306946383557,0.997462030476238,0.996618146515069,0.995775613936764,0.994935283327954,0.994099394106965, +00:44:56,1,1,1,0.999153027286105,0.99830728105725,0.997462532263548,0.996618815279281,0.995776449467927,0.994936285227097,0.99410056150152, +00:44:57,1,1,1,0.999153194641258,0.99830761558168,0.997463033826988,0.996619483745025,0.995777284626067,0.994937286678811,0.994101728374619, +00:44:58,1,1,1,0.999153361921839,0.998307949957006,0.997463535166799,0.996620151912619,0.995778119411585,0.994938287683573,0.994102894726822, +00:44:59,1,1,1,0.999153529127928,0.998308284183389,0.997464036283219,0.996620819782384,0.995778953824878,0.994939288241863,0.994104060558685, +00:45:00,1,1,1,0.999153696259604,0.998308618260987,0.997464537176488,0.996621487354637,0.995779787866345,0.994940288354157,0.994105225870766, +00:45:01,1,1,1,0.999153863316949,0.99830895218996,0.997465037846845,0.996622154629696,0.995780621536384,0.994941288020934,0.99410639066362, +00:45:02,1,1,1,0.999154030300039,0.998309285970465,0.997465538294526,0.996622821607881,0.995781454835392,0.994942287242669,0.994107554937803, +00:45:03,1,1,1,0.999154197208956,0.998309619602663,0.997466038519772,0.996623488289506,0.995782287763765,0.994943286019837,0.994108718693868, +00:45:04,1,1,1,0.999154364043779,0.998309953086712,0.997466538522819,0.996624154674891,0.9957831203219,0.994944284352915,0.99410988193237, +00:45:05,1,1,1,0.999154530804585,0.998310286422768,0.997467038303904,0.99662482076435,0.995783952510191,0.994945282242376,0.994111044653861, +00:45:06,1,1,1,0.999154697491456,0.998310619610992,0.997467537863264,0.9966254865582,0.995784784329034,0.994946279688694,0.994112206858894, +00:45:07,1,1,1,0.999154864104469,0.998310952651541,0.997468037201137,0.996626152056757,0.995785615778823,0.994947276692342,0.994113368548019, +00:45:08,1,1,1,0.999155030643702,0.998311285544571,0.997468536317759,0.996626817260335,0.995786446859951,0.994948273253792,0.994114529721787, +00:45:09,1,1,1,0.999155197109236,0.998311618290241,0.997469035213365,0.996627482169249,0.995787277572813,0.994949269373516,0.994115690380748, +00:45:10,1,1,1,0.999155363501149,0.998311950888707,0.99746953388819,0.996628146783813,0.9957881079178,0.994950265051985,0.994116850525451, +00:45:11,1,1,1,0.999155529819518,0.998312283340126,0.997470032342472,0.996628811104342,0.995788937895305,0.99495126028967,0.994118010156444, +00:45:12,1,1,1,0.999155696064423,0.998312615644656,0.997470530576443,0.996629475131148,0.995789767505719,0.99495225508704,0.994119169274275, +00:45:13,1,1,1,0.999155862235941,0.998312947802452,0.99747102859034,0.996630138864544,0.995790596749434,0.994953249444564,0.99412032787949, +00:45:14,1,1,1,0.999156028334151,0.998313279813671,0.997471526384396,0.996630802304842,0.995791425626839,0.99495424336271,0.994121485972634, +00:45:15,1,1,1,0.99915619435913,0.998313611678469,0.997472023958846,0.996631465452355,0.995792254138325,0.994955236841946,0.994122643554255, +00:45:16,1,1,1,0.999156360310958,0.998313943397001,0.997472521313922,0.996632128307395,0.995793082284282,0.99495622988274,0.994123800624894, +00:45:17,1,1,1,0.999156526189711,0.998314274969424,0.997473018449859,0.996632790870271,0.995793910065098,0.994957222485558,0.994124957185097, +00:45:18,1,1,1,0.999156691995467,0.998314606395892,0.99747351536689,0.996633453141296,0.995794737481161,0.994958214650865,0.994126113235406, +00:45:19,1,1,1,0.999156857728303,0.998314937676561,0.997474012065247,0.996634115120779,0.995795564532859,0.994959206379127,0.994127268776363, +00:45:20,1,1,1,0.999157023388298,0.998315268811585,0.997474508545162,0.99663477680903,0.995796391220579,0.994960197670808,0.994128423808509, +00:45:21,1,1,1,0.999157188975529,0.99831559980112,0.997475004806868,0.996635438206358,0.995797217544709,0.994961188526372,0.994129578332386, +00:45:22,1,1,1,0.999157354490072,0.998315930645319,0.997475500850597,0.996636099313073,0.995798043505633,0.994962178946282,0.994130732348532, +00:45:23,1,1,1,0.999157519932006,0.998316261344338,0.997475996676579,0.996636760129483,0.995798869103739,0.994963168931001,0.994131885857488, +00:45:24,1,1,1,0.999157685301407,0.99831659189833,0.997476492285046,0.996637420655896,0.99579969433941,0.994964158480991,0.994133038859791, +00:45:25,1,1,1,0.999157850598352,0.998316922307449,0.997476987676228,0.996638080892619,0.995800519213031,0.994965147596712,0.994134191355979, +00:45:26,1,1,1,0.999158015822918,0.998317252571848,0.997477482850356,0.996638740839961,0.995801343724987,0.994966136278626,0.994135343346588, +00:45:27,1,1,1,0.999158180975181,0.998317582691682,0.997477977807661,0.996639400498227,0.995802167875661,0.994967124527192,0.994136494832156, +00:45:28,1,1,1,0.999158346055219,0.998317912667103,0.997478472548372,0.996640059867724,0.995802991665435,0.99496811234287,0.994137645813216, +00:45:29,1,1,1,0.999158511063107,0.998318242498265,0.997478967072718,0.996640718948758,0.995803815094693,0.994969099726118,0.994138796290305, +00:45:30,1,1,1,0.999158675998923,0.998318572185319,0.997479461380928,0.996641377741635,0.995804638163815,0.994970086677395,0.994139946263955, +00:45:31,1,1,1,0.999158840862742,0.998318901728419,0.997479955473232,0.996642036246659,0.995805460873184,0.994971073197158,0.994141095734699, +00:45:32,1,1,1,0.999159005654641,0.998319231127718,0.997480449349858,0.996642694464136,0.99580628322318,0.994972059285863,0.99414224470307, +00:45:33,1,1,1,0.999159170374696,0.998319560383366,0.997480943011034,0.996643352394369,0.995807105214183,0.994973044943967,0.994143393169601, +00:45:34,1,1,1,0.999159335022982,0.998319889495517,0.997481436456987,0.996644010037663,0.995807926846573,0.994974030171925,0.99414454113482, +00:45:35,1,1,1,0.999159499599576,0.998320218464321,0.997481929687947,0.99664466739432,0.99580874812073,0.994975014970192,0.994145688599259, +00:45:36,1,1,1,0.999159664104554,0.998320547289931,0.997482422704139,0.996645324464645,0.995809569037031,0.994975999339222,0.994146835563447, +00:45:37,1,1,1,0.999159828537991,0.998320875972497,0.997482915505791,0.996645981248938,0.995810389595855,0.99497698327947,0.994147982027913, +00:45:38,1,1,1,0.999159992899962,0.998321204512171,0.997483408093129,0.996646637747504,0.99581120979758,0.994977966791387,0.994149127993185, +00:45:39,1,1,1,0.999160157190543,0.998321532909104,0.99748390046638,0.996647293960642,0.995812029642583,0.994978949875427,0.994150273459789, +00:45:40,1,1,1,0.99916032140981,0.998321861163446,0.997484392625769,0.996647949888654,0.99581284913124,0.99497993253204,0.994151418428253, +00:45:41,1,1,1,0.999160485557838,0.998322189275348,0.997484884571523,0.996648605531842,0.995813668263927,0.994980914761678,0.994152562899101, +00:45:42,1,1,1,0.999160649634702,0.99832251724496,0.997485376303866,0.996649260890506,0.995814487041021,0.994981896564792,0.994153706872859, +00:45:43,1,1,1,0.999160813640476,0.998322845072432,0.997485867823024,0.996649915964946,0.995815305462895,0.99498287794183,0.994154850350051, +00:45:44,1,1,1,0.999160977575237,0.998323172757913,0.997486359129221,0.996650570755461,0.995816123529924,0.994983858893244,0.994155993331201, +00:45:45,1,1,1,0.999161141439058,0.998323500301554,0.997486850222683,0.99665122526235,0.995816941242483,0.99498483941948,0.994157135816832, +00:45:46,1,1,1,0.999161305232014,0.998323827703504,0.997487341103631,0.996651879485913,0.995817758600944,0.994985819520986,0.994158277807465, +00:45:47,1,1,1,0.99916146895418,0.998324154963912,0.997487831772292,0.996652533426448,0.995818575605681,0.994986799198212,0.994159419303622, +00:45:48,1,1,1,0.999161632605632,0.998324482082927,0.997488322228888,0.996653187084253,0.995819392257067,0.994987778451601,0.994160560305823, +00:45:49,1,1,1,0.999161796186442,0.998324809060698,0.997488812473642,0.996653840459624,0.995820208555471,0.994988757281602,0.994161700814588, +00:45:50,1,1,1,0.999161959696685,0.998325135897374,0.997489302506777,0.996654493552861,0.995821024501268,0.99498973568866,0.994162840830437, +00:45:51,1,1,1,0.999162123136435,0.998325462593102,0.997489792328516,0.996655146364258,0.995821840094826,0.994990713673218,0.994163980353889, +00:45:52,1,1,1,0.999162286505768,0.998325789148031,0.997490281939081,0.996655798894112,0.995822655336516,0.994991691235722,0.994165119385459, +00:45:53,1,1,1,0.999162449804756,0.99832611556231,0.997490771338693,0.996656451142721,0.995823470226709,0.994992668376615,0.994166257925667, +00:45:54,1,1,1,0.999162613033473,0.998326441836085,0.997491260527575,0.996657103110377,0.995824284765774,0.99499364509634,0.994167395975027, +00:45:55,1,1,1,0.999162776191994,0.998326767969504,0.997491749505948,0.996657754797378,0.995825098954078,0.994994621395339,0.994168533534056, +00:45:56,1,1,1,0.999162939280391,0.998327093962715,0.997492238274033,0.996658406204017,0.995825912791992,0.994995597274054,0.994169670603269, +00:45:57,1,1,1,0.99916310229874,0.998327419815865,0.99749272683205,0.996659057330589,0.995826726279881,0.994996572732927,0.994170807183179, +00:45:58,1,1,1,0.999163265247112,0.9983277455291,0.99749321518022,0.996659708177387,0.995827539418114,0.994997547772398,0.9941719432743, +00:45:59,1,1,1,0.999163428125581,0.998328071102568,0.997493703318763,0.996660358744705,0.995828352207058,0.994998522392906,0.994173078877144, +00:46:00,1,1,1,0.999163590934222,0.998328396536415,0.997494191247899,0.996661009032837,0.995829164647078,0.994999496594891,0.994174213992225, +00:46:01,1,1,1,0.999163753673106,0.998328721830787,0.997494678967847,0.996661659042073,0.99582997673854,0.995000470378792,0.994175348620052, +00:46:02,1,1,1,0.999163916342307,0.998329046985831,0.997495166478826,0.996662308772708,0.99583078848181,0.995001443745046,0.994176482761137, +00:46:03,1,1,1,0.999164078941898,0.998329372001692,0.997495653781056,0.996662958225033,0.995831599877252,0.995002416694092,0.99417761641599, +00:46:04,1,1,1,0.999164241471952,0.998329696878516,0.997496140874754,0.996663607399338,0.99583241092523,0.995003389226366,0.994178749585118, +00:46:05,1,1,1,0.999164403932542,0.998330021616449,0.99749662776014,0.996664256295916,0.995833221626108,0.995004361342304,0.994179882269032, +00:46:06,1,1,1,0.99916456632374,0.998330346215635,0.99749711443743,0.996664904915056,0.99583403198025,0.995005333042343,0.994181014468239, +00:46:07,1,1,1,0.999164728645619,0.998330670676221,0.997497600906843,0.996665553257049,0.995834841988017,0.995006304326916,0.994182146183246, +00:46:08,1,1,1,0.999164890898251,0.99833099499835,0.997498087168596,0.996666201322185,0.995835651649773,0.995007275196459,0.994183277414559, +00:46:09,1,1,1,0.999165053081709,0.998331319182169,0.997498573222906,0.996666849110752,0.995836460965879,0.995008245651406,0.994184408162684, +00:46:10,1,1,1,0.999165215196065,0.99833164322782,0.99749905906999,0.996667496623041,0.995837269936695,0.995009215692188,0.994185538428125, +00:46:11,1,1,1,0.999165377241391,0.998331967135448,0.997499544710064,0.996668143859339,0.995838078562583,0.995010185319241,0.994186668211388, +00:46:12,1,1,1,0.999165539217759,0.998332290905199,0.997500030143344,0.996668790819935,0.995838886843903,0.995011154532994,0.994187797512975, +00:46:13,1,1,1,0.999165701125242,0.998332614537215,0.997500515370047,0.996669437505116,0.995839694781015,0.995012123333881,0.99418892633339, +00:46:14,1,1,1,0.99916586296391,0.99833293803164,0.997501000390388,0.99667008391517,0.995840502374277,0.99501309172233,0.994190054673134, +00:46:15,1,1,1,0.999166024733837,0.998333261388617,0.997501485204581,0.996670730050384,0.995841309624049,0.995014059698774,0.994191182532709, +00:46:16,1,1,1,0.999166186435093,0.998333584608291,0.997501969812842,0.996671375911044,0.995842116530688,0.995015027263641,0.994192309912616, +00:46:17,1,1,1,0.99916634806775,0.998333907690804,0.997502454215387,0.996672021497438,0.995842923094553,0.995015994417361,0.994193436813354, +00:46:18,1,1,1,0.999166509631879,0.998334230636299,0.997502938412427,0.996672666809849,0.995843729316,0.995016961160362,0.994194563235425, +00:46:19,1,1,1,0.999166671127553,0.998334553444919,0.99750342240418,0.996673311848565,0.995844535195386,0.995017927493072,0.994195689179325, +00:46:20,1,1,1,0.999166832554842,0.998334876116805,0.997503906190856,0.996673956613869,0.995845340733068,0.995018893415918,0.994196814645553, +00:46:21,1,1,1,0.999166993913817,0.998335198652102,0.997504389772672,0.996674601106047,0.9958461459294,0.995019858929327,0.994197939634606, +00:46:22,1,1,1,0.99916715520455,0.99833552105095,0.997504873149838,0.996675245325382,0.99584695078474,0.995020824033725,0.994199064146981, +00:46:23,1,1,1,0.999167316427111,0.998335843313492,0.997505356322569,0.996675889272159,0.99584775529944,0.995021788729537,0.994200188183174, +00:46:24,1,1,1,0.999167477581572,0.99833616543987,0.997505839291077,0.996676532946661,0.995848559473855,0.995022753017189,0.994201311743679, +00:46:25,1,1,1,0.999167638668002,0.998336487430224,0.997506322055574,0.99667717634917,0.99584936330834,0.995023716897105,0.994202434828993, +00:46:26,1,1,1,0.999167799686474,0.998336809284696,0.997506804616272,0.996677819479971,0.995850166803247,0.995024680369708,0.994203557439608, +00:46:27,1,1,1,0.999167960637057,0.998337131003428,0.997507286973383,0.996678462339344,0.995850969958929,0.995025643435422,0.994204679576017, +00:46:28,1,1,1,0.999168121519822,0.998337452586561,0.997507769127118,0.996679104927572,0.995851772775738,0.995026606094669,0.994205801238714, +00:46:29,1,1,1,0.999168282334839,0.998337774034234,0.997508251077689,0.996679747244936,0.995852575254027,0.995027568347871,0.994206922428189, +00:46:30,1,1,1,0.999168443082179,0.99833809534659,0.997508732825306,0.996680389291718,0.995853377394146,0.99502853019545,0.994208043144935, +00:46:31,1,1,1,0.999168603761912,0.998338416523767,0.997509214370179,0.996681031068197,0.995854179196446,0.995029491637827,0.994209163389442, +00:46:32,1,1,1,0.999168764374108,0.998338737565906,0.99750969571252,0.996681672574655,0.995854980661278,0.995030452675421,0.994210283162198, +00:46:33,1,1,1,0.999168924918836,0.998339058473148,0.997510176852537,0.996682313811371,0.995855781788992,0.995031413308653,0.994211402463695, +00:46:34,1,1,1,0.999169085396168,0.998339379245632,0.997510657790442,0.996682954778625,0.995856582579937,0.995032373537941,0.994212521294419, +00:46:35,1,1,1,0.999169245806172,0.998339699883497,0.997511138526442,0.996683595476695,0.995857383034461,0.995033333363704,0.994213639654859, +00:46:36,1,1,1,0.999169406148918,0.998340020386883,0.997511619060747,0.996684235905861,0.995858183152913,0.99503429278636,0.994214757545502, +00:46:37,1,1,1,0.999169566424477,0.998340340755929,0.997512099393566,0.996684876066402,0.995858982935642,0.995035251806326,0.994215874966834, +00:46:38,1,1,1,0.999169726632916,0.998340660990775,0.997512579525107,0.996685515958594,0.995859782382994,0.99503621042402,0.994216991919341, +00:46:39,1,1,1,0.999169886774307,0.998340981091559,0.997513059455579,0.996686155582716,0.995860581495317,0.995037168639856,0.994218108403508, +00:46:40,1,1,1,0.999170046848719,0.998341301058419,0.99751353918519,0.996686794939045,0.995861380272957,0.995038126454252,0.994219224419819, +00:46:41,1,1,1,0.999170206856219,0.998341620891495,0.997514018714146,0.996687434027857,0.99586217871626,0.995039083867621,0.994220339968759, +00:46:42,1,1,1,0.999170366796879,0.998341940590923,0.997514498042656,0.99668807284943,0.995862976825572,0.995040040880379,0.99422145505081, +00:46:43,1,1,1,0.999170526670766,0.998342260156844,0.997514977170927,0.996688711404039,0.995863774601237,0.995040997492939,0.994222569666455, +00:46:44,1,1,1,0.999170686477949,0.998342579589393,0.997515456099165,0.99668934969196,0.9958645720436,0.995041953705715,0.994223683816175, +00:46:45,1,1,1,0.999170846218499,0.998342898888709,0.997515934827577,0.996689987713468,0.995865369153006,0.995042909519119,0.994224797500452, +00:46:46,1,1,1,0.999171005892482,0.99834321805493,0.997516413356369,0.996690625468839,0.995866165929798,0.995043864933564,0.994225910719766, +00:46:47,1,1,1,0.999171165499969,0.998343537088193,0.997516891685746,0.996691262958346,0.995866962374319,0.995044819949461,0.994227023474596, +00:46:48,1,1,1,0.999171325041026,0.998343855988634,0.997517369815916,0.996691900182264,0.995867758486912,0.995045774567222,0.994228135765423, +00:46:49,1,1,1,0.999171484515724,0.998344174756391,0.997517847747082,0.996692537140867,0.995868554267918,0.995046728787256,0.994229247592723, +00:46:50,1,1,1,0.99917164392413,0.998344493391601,0.997518325479451,0.996693173834428,0.995869349717681,0.995047682609974,0.994230358956976, +00:46:51,1,1,1,0.999171803266314,0.9983448118944,0.997518803013226,0.996693810263221,0.995870144836541,0.995048636035785,0.994231469858657, +00:46:52,1,1,1,0.999171962542341,0.998345130264924,0.997519280348613,0.996694446427518,0.995870939624838,0.995049589065099,0.994232580298244, +00:46:53,1,1,1,0.999172121752282,0.99834544850331,0.997519757485816,0.99669508232759,0.995871734082914,0.995050541698322,0.994233690276213, +00:46:54,1,1,1,0.999172280896204,0.998345766609693,0.997520234425038,0.996695717963711,0.995872528211108,0.995051493935863,0.994234799793038, +00:46:55,1,1,1,0.999172439974174,0.998346084584209,0.997520711166483,0.996696353336151,0.995873322009759,0.995052445778129,0.994235908849194, +00:46:56,1,1,1,0.999172598986262,0.998346402426995,0.997521187710355,0.996696988445183,0.995874115479207,0.995053397225527,0.994237017445155, +00:46:57,1,1,1,0.999172757932533,0.998346720138185,0.997521664056856,0.996697623291076,0.995874908619789,0.995054348278462,0.994238125581394, +00:46:58,1,1,1,0.999172916813057,0.998347037717914,0.99752214020619,0.996698257874101,0.995875701431845,0.99505529893734,0.994239233258384, +00:46:59,1,1,1,0.9991730756279,0.998347355166318,0.997522616158559,0.996698892194528,0.995876493915711,0.995056249202566,0.994240340476595, +00:47:00,1,1,1,0.999173234377131,0.998347672483532,0.997523091914166,0.996699526252628,0.995877286071724,0.995057199074544,0.994241447236501, +00:47:01,1,1,1,0.999173393060815,0.998347989669689,0.997523567473212,0.996700160048668,0.995878077900221,0.995058148553678,0.994242553538571, +00:47:02,1,1,1,0.999173551679022,0.998348306724925,0.997524042835899,0.996700793582918,0.995878869401538,0.995059097640371,0.994243659383275, +00:47:03,1,1,1,0.999173710231817,0.998348623649375,0.997524518002429,0.996701426855647,0.995879660576011,0.995060046335026,0.994244764771083, +00:47:04,1,1,1,0.999173868719268,0.998348940443171,0.997524992973002,0.996702059867124,0.995880451423976,0.995060994638045,0.994245869702462, +00:47:05,1,1,1,0.999174027141442,0.998349257106448,0.99752546774782,0.996702692617615,0.995881241945766,0.995061942549829,0.994246974177882, +00:47:06,1,1,1,0.999174185498405,0.99834957363934,0.997525942327083,0.996703325107387,0.995882032141716,0.995062890070779,0.99424807819781, +00:47:07,1,1,1,0.999174343790226,0.998349890041981,0.997526416710992,0.99670395733671,0.995882822012161,0.995063837201297,0.994249181762711, +00:47:08,1,1,1,0.999174502016969,0.998350206314503,0.997526890899746,0.996704589305848,0.995883611557432,0.995064783941781,0.994250284873053, +00:47:09,1,1,1,0.999174660178702,0.99835052245704,0.997527364893546,0.996705221015069,0.995884400777864,0.995065730292632,0.994251387529301, +00:47:10,1,1,1,0.999174818275492,0.998350838469725,0.99752783869259,0.996705852464638,0.995885189673789,0.995066676254247,0.99425248973192, +00:47:11,1,1,1,0.999174976307405,0.99835115435269,0.997528312297079,0.996706483654821,0.995885978245538,0.995067621827025,0.994253591481373, +00:47:12,1,1,1,0.999175134274507,0.998351470106069,0.99752878570721,0.996707114585883,0.995886766493443,0.995068567011365,0.994254692778124, +00:47:13,1,1,1,0.999175292176864,0.998351785729994,0.997529258923184,0.99670774525809,0.995887554417836,0.995069511807662,0.994255793622636, +00:47:14,1,1,1,0.999175450014543,0.998352101224597,0.997529731945197,0.996708375671705,0.995888342019047,0.995070456216314,0.994256894015372, +00:47:15,1,1,1,0.999175607787609,0.99835241659001,0.997530204773449,0.996709005826993,0.995889129297406,0.995071400237716,0.994257993956792, +00:47:16,1,1,1,0.999175765496129,0.998352731826365,0.997530677408137,0.996709635724218,0.995889916253243,0.995072343872265,0.994259093447359, +00:47:17,1,1,1,0.999175923140169,0.998353046933795,0.997531149849458,0.996710265363644,0.995890702886887,0.995073287120355,0.994260192487532, +00:47:18,1,1,1,0.999176080719794,0.99835336191243,0.997531622097611,0.996710894745532,0.995891489198667,0.995074229982381,0.994261291077771, +00:47:19,1,1,1,0.99917623823507,0.998353676762401,0.997532094152792,0.996711523870147,0.995892275188912,0.995075172458736,0.994262389218535, +00:47:20,1,1,1,0.999176395686063,0.998353991483841,0.997532566015198,0.996712152737749,0.995893060857948,0.995076114549814,0.994263486910282, +00:47:21,1,1,1,0.999176553072837,0.998354306076879,0.997533037685025,0.996712781348603,0.995893846206105,0.995077056256008,0.994264584153471, +00:47:22,1,1,1,0.99917671039546,0.998354620541648,0.99753350916247,0.996713409702968,0.995894631233708,0.99507799757771,0.994265680948559, +00:47:23,1,1,1,0.999176867653995,0.998354934878277,0.997533980447729,0.996714037801106,0.995895415941085,0.995078938515312,0.994266777296001, +00:47:24,1,1,1,0.999177024848509,0.998355249086898,0.997534451540996,0.996714665643279,0.995896200328561,0.995079879069204,0.994267873196255, +00:47:25,1,1,1,0.999177181979065,0.998355563167639,0.997534922442469,0.996715293229747,0.995896984396463,0.995080819239778,0.994268968649775, +00:47:26,1,1,1,0.999177339045731,0.998355877120632,0.997535393152342,0.99671592056077,0.995897768145114,0.995081759027424,0.994270063657016, +00:47:27,1,1,1,0.99917749604857,0.998356190946007,0.997535863670809,0.996716547636607,0.995898551574841,0.995082698432531,0.994271158218432, +00:47:28,1,1,1,0.999177652987647,0.998356504643892,0.997536333998066,0.996717174457519,0.995899334685968,0.995083637455488,0.994272252334478, +00:47:29,1,1,1,0.999177809863027,0.998356818214419,0.997536804134307,0.996717801023765,0.995900117478818,0.995084576096684,0.994273346005604, +00:47:30,1,1,1,0.999177966674775,0.998357131657716,0.997537274079726,0.996718427335603,0.995900899953715,0.995085514356507,0.994274439232264, +00:47:31,1,1,1,0.999178123422956,0.998357444973912,0.997537743834517,0.996719053393292,0.995901682110982,0.995086452235345,0.994275532014909, +00:47:32,1,1,1,0.999178280107633,0.998357758163136,0.997538213398873,0.996719679197089,0.995902463950941,0.995087389733584,0.994276624353991, +00:47:33,1,1,1,0.999178436728872,0.998358071225518,0.997538682772988,0.996720304747253,0.995903245473915,0.99508832685161,0.994277716249959, +00:47:34,1,1,1,0.999178593286737,0.998358384161186,0.997539151957054,0.996720930044042,0.995904026680225,0.99508926358981,0.994278807703263, +00:47:35,1,1,1,0.999178749781293,0.998358696970268,0.997539620951265,0.996721555087711,0.995904807570192,0.995090199948569,0.994279898714353, +00:47:36,1,1,1,0.999178906212602,0.998359009652894,0.997540089755813,0.996722179878518,0.995905588144138,0.995091135928272,0.994280989283676, +00:47:37,1,1,1,0.99917906258073,0.99835932220919,0.99754055837089,0.996722804416719,0.995906368402383,0.995092071529302,0.994282079411682, +00:47:38,1,1,1,0.99917921888574,0.998359634639286,0.997541026796688,0.99672342870257,0.995907148345246,0.995093006752044,0.994283169098816, +00:47:39,1,1,1,0.999179375127697,0.998359946943309,0.9975414950334,0.996724052736326,0.995907927973048,0.995093941596882,0.994284258345527, +00:47:40,1,1,1,0.999179531306664,0.998360259121386,0.997541963081215,0.996724676518243,0.995908707286106,0.995094876064197,0.994285347152259, +00:47:41,1,1,1,0.999179687422705,0.998360571173645,0.997542430940327,0.996725300048577,0.995909486284741,0.995095810154372,0.994286435519458, +00:47:42,1,1,1,0.999179843475884,0.998360883100213,0.997542898610925,0.99672592332758,0.995910264969269,0.995096743867789,0.994287523447569, +00:47:43,1,1,1,0.999179999466263,0.998361194901219,0.9975433660932,0.996726546355509,0.995911043340009,0.995097677204829,0.994288610937037, +00:47:44,1,1,1,0.999180155393908,0.998361506576787,0.997543833387343,0.996727169132615,0.995911821397278,0.995098610165871,0.994289697988305, +00:47:45,1,1,1,0.99918031125888,0.998361818127046,0.997544300493543,0.996727791659154,0.995912599141393,0.995099542751298,0.994290784601815, +00:47:46,1,1,1,0.999180467061244,0.998362129552121,0.997544767411992,0.996728413935377,0.99591337657267,0.995100474961487,0.994291870778011, +00:47:47,1,1,1,0.999180622801063,0.99836244085214,0.997545234142877,0.996729035961539,0.995914153691426,0.995101406796818,0.994292956517335, +00:47:48,1,1,1,0.999180778478399,0.998362752027228,0.997545700686389,0.996729657737892,0.995914930497975,0.995102338257671,0.994294041820226, +00:47:49,1,1,1,0.999180934093317,0.998363063077512,0.997546167042717,0.996730279264687,0.995915706992634,0.995103269344421,0.994295126687126, +00:47:50,1,1,1,0.999181089645878,0.998363374003117,0.99754663321205,0.996730900542176,0.995916483175716,0.995104200057448,0.994296211118476, +00:47:51,1,1,1,0.999181245136146,0.99836368480417,0.997547099194576,0.996731521570612,0.995917259047537,0.995105130397129,0.994297295114713, +00:47:52,1,1,1,0.999181400564183,0.998363995480795,0.997547564990484,0.996732142350244,0.995918034608409,0.995106060363839,0.994298378676278, +00:47:53,1,1,1,0.999181555930053,0.998364306033119,0.997548030599961,0.996732762881324,0.995918809858647,0.995106989957954,0.994299461803608, +00:47:54,1,1,1,0.999181711233817,0.998364616461266,0.997548496023196,0.996733383164103,0.995919584798563,0.995107919179851,0.994300544497141, +00:47:55,1,1,1,0.999181866475539,0.998364926765361,0.997548961260376,0.996734003198829,0.99592035942847,0.995108848029904,0.994301626757314, +00:47:56,1,1,1,0.999182021655281,0.99836523694553,0.997549426311688,0.996734622985754,0.99592113374868,0.995109776508487,0.994302708584563, +00:47:57,1,1,1,0.999182176773105,0.998365547001897,0.99754989117732,0.996735242525126,0.995921907759505,0.995110704615975,0.994303789979324, +00:47:58,1,1,1,0.999182331829074,0.998365856934587,0.997550355857458,0.996735861817195,0.995922681461256,0.995111632352741,0.994304870942033, +00:47:59,1,1,1,0.999182486823249,0.998366166743723,0.997550820352288,0.996736480862209,0.995923454854244,0.995112559719157,0.994305951473123, +00:48:00,1,1,1,0.999182641755693,0.998366476429431,0.997551284661998,0.996737099660417,0.995924227938779,0.995113486715596,0.99430703157303, +00:48:01,1,1,1,0.999182796626468,0.998366785991834,0.997551748786773,0.996737718212066,0.995925000715172,0.995114413342431,0.994308111242185, +00:48:02,1,1,1,0.999182951435635,0.998367095431057,0.997552212726799,0.996738336517405,0.995925773183732,0.995115339600031,0.994309190481023, +00:48:03,1,1,1,0.999183106183258,0.998367404747222,0.997552676482261,0.99673895457668,0.995926545344768,0.99511626548877,0.994310269289976, +00:48:04,1,1,1,0.999183260869397,0.998367713940453,0.997553140053346,0.99673957239014,0.995927317198589,0.995117191009015,0.994311347669474, +00:48:05,1,1,1,0.999183415494114,0.998368023010874,0.997553603440236,0.996740189958029,0.995928088745503,0.995118116161138,0.99431242561995, +00:48:06,1,1,1,0.999183570057471,0.998368331958608,0.997554066643119,0.996740807280596,0.995928859985818,0.995119040945508,0.994313503141834, +00:48:07,1,1,1,0.999183724559529,0.998368640783778,0.997554529662177,0.996741424358086,0.995929630919842,0.995119965362494,0.994314580235555, +00:48:08,1,1,1,0.999183879000349,0.998368949486506,0.997554992497596,0.996742041190744,0.995930401547882,0.995120889412464,0.994315656901543, +00:48:09,1,1,1,0.999184033379994,0.998369258066916,0.997555455149559,0.996742657778815,0.995931171870244,0.995121813095785,0.994316733140226, +00:48:10,1,1,1,0.999184187698525,0.998369566525131,0.99755591761825,0.996743274122546,0.995931941887235,0.995122736412826,0.994317808952033, +00:48:11,1,1,1,0.999184341956001,0.998369874861271,0.997556379903853,0.99674389022218,0.995932711599161,0.995123659363953,0.994318884337392, +00:48:12,1,1,1,0.999184496152486,0.99837018307546,0.99755684200655,0.996744506077963,0.995933481006326,0.995124581949532,0.994319959296729, +00:48:13,1,1,1,0.999184650288039,0.998370491167819,0.997557303926526,0.996745121690137,0.995934250109036,0.995125504169929,0.99432103383047, +00:48:14,1,1,1,0.999184804362722,0.998370799138471,0.997557765663962,0.996745737058947,0.995935018907596,0.99512642602551,0.994322107939042, +00:48:15,1,1,1,0.999184958376595,0.998371106987537,0.997558227219042,0.996746352184636,0.995935787402309,0.99512734751664,0.99432318162287, +00:48:16,1,1,1,0.99918511232972,0.998371414715138,0.997558688591946,0.996746967067447,0.995936555593479,0.995128268643682,0.994324254882378, +00:48:17,1,1,1,0.999185266222156,0.998371722321397,0.997559149782859,0.996747581707622,0.99593732348141,0.995129189407001,0.99432532771799, +00:48:18,1,1,1,0.999185420053965,0.998372029806433,0.99755961079196,0.996748196105405,0.995938091066405,0.99513010980696,0.994326400130131, +00:48:19,1,1,1,0.999185573825207,0.998372337170369,0.997560071619433,0.996748810261037,0.995938858348766,0.995131029843921,0.994327472119222, +00:48:20,1,1,1,0.999185727535943,0.998372644413325,0.997560532265457,0.99674942417476,0.995939625328795,0.995131949518248,0.994328543685686, +00:48:21,1,1,1,0.999185881186232,0.998372951535421,0.997560992730215,0.996750037846814,0.995940392006794,0.995132868830303,0.994329614829946, +00:48:22,1,1,1,0.999186034776136,0.998373258536779,0.997561453013886,0.996750651277442,0.995941158383064,0.995133787780445,0.994330685552421, +00:48:23,1,1,1,0.999186188305714,0.998373565417518,0.997561913116652,0.996751264466884,0.995941924457906,0.995134706369037,0.994331755853534, +00:48:24,1,1,1,0.999186341775027,0.99837387217776,0.997562373038692,0.996751877415381,0.99594269023162,0.995135624596439,0.994332825733703, +00:48:25,1,1,1,0.999186495184134,0.998374178817623,0.997562832780188,0.996752490123171,0.995943455704507,0.995136542463011,0.994333895193349, +00:48:26,1,1,1,0.999186648533095,0.998374485337228,0.997563292341318,0.996753102590496,0.995944220876866,0.995137459969112,0.99433496423289, +00:48:27,1,1,1,0.999186801821971,0.998374791736694,0.997563751722262,0.996753714817594,0.995944985748996,0.9951383771151,0.994336032852744, +00:48:28,1,1,1,0.999186955050822,0.998375098016141,0.997564210923199,0.996754326804705,0.995945750321197,0.995139293901336,0.99433710105333, +00:48:29,1,1,1,0.999187108219705,0.998375404175689,0.997564669944309,0.996754938552067,0.995946514593766,0.995140210328175,0.994338168835064, +00:48:30,1,1,1,0.999187261328683,0.998375710215456,0.99756512878577,0.996755550059919,0.995947278567001,0.995141126395977,0.994339236198364, +00:48:31,1,1,1,0.999187414377813,0.998376016135562,0.997565587447761,0.996756161328499,0.995948042241201,0.995142042105098,0.994340303143644, +00:48:32,1,1,1,0.999187567367156,0.998376321936126,0.997566045930461,0.996756772358044,0.995948805616662,0.995142957455895,0.994341369671322, +00:48:33,1,1,1,0.999187720296771,0.998376627617266,0.997566504234047,0.996757383148793,0.995949568693682,0.995143872448722,0.994342435781811, +00:48:34,1,1,1,0.999187873166717,0.998376933179101,0.997566962358697,0.996757993700982,0.995950331472556,0.995144787083937,0.994343501475526, +00:48:35,1,1,1,0.999188025977053,0.998377238621749,0.997567420304589,0.996758604014848,0.99595109395358,0.995145701361894,0.994344566752882, +00:48:36,1,1,1,0.999188178727839,0.998377543945329,0.9975678780719,0.996759214090627,0.995951856137051,0.995146615282947,0.99434563161429, +00:48:37,1,1,1,0.999188331419134,0.998377849149959,0.997568335660807,0.996759823928557,0.995952618023263,0.995147528847451,0.994346696060164, +00:48:38,1,1,1,0.999188484050996,0.998378154235756,0.997568793071488,0.996760433528872,0.995953379612511,0.99514844205576,0.994347760090917, +00:48:39,1,1,1,0.999188636623484,0.998378459202838,0.997569250304119,0.996761042891808,0.995954140905089,0.995149354908226,0.994348823706958, +00:48:40,1,1,1,0.999188789136658,0.998378764051324,0.997569707358876,0.9967616520176,0.995954901901293,0.995150267405202,0.994349886908701, +00:48:41,1,1,1,0.999188941590576,0.99837906878133,0.997570164235935,0.996762260906484,0.995955662601414,0.99515117954704,0.994350949696554, +00:48:42,1,1,1,0.999189093985297,0.998379373392974,0.997570620935473,0.996762869558694,0.995956423005746,0.995152091334093,0.994352012070928, +00:48:43,1,1,1,0.999189246320879,0.998379677886373,0.997571077457665,0.996763477974463,0.995957183114583,0.99515300276671,0.994353074032233, +00:48:44,1,1,1,0.99918939859738,0.998379982261643,0.997571533802686,0.996764086154027,0.995957942928215,0.995153913845244,0.994354135580876, +00:48:45,1,1,1,0.99918955081486,0.998380286518903,0.997571989970713,0.996764694097618,0.995958702446937,0.995154824570043,0.994355196717267, +00:48:46,1,1,1,0.999189702973377,0.998380590658267,0.997572445961919,0.99676530180547,0.995959461671038,0.995155734941459,0.994356257441813, +00:48:47,1,1,1,0.999189855072988,0.998380894679854,0.99757290177648,0.996765909277817,0.995960220600811,0.99515664495984,0.994357317754921, +00:48:48,1,1,1,0.999190007113753,0.998381198583779,0.997573357414569,0.996766516514889,0.995960979236546,0.995157554625535,0.994358377656998, +00:48:49,1,1,1,0.999190159095728,0.998381502370158,0.997573812876362,0.996767123516921,0.995961737578533,0.995158463938893,0.994359437148449, +00:48:50,1,1,1,0.999190311018973,0.998381806039108,0.997574268162033,0.996767730284144,0.995962495627062,0.995159372900261,0.99436049622968, +00:48:51,1,1,1,0.999190462883545,0.998382109590744,0.997574723271754,0.996768336816789,0.995963253382424,0.995160281509987,0.994361554901097, +00:48:52,1,1,1,0.999190614689501,0.998382413025182,0.9975751782057,0.996768943115089,0.995964010844907,0.995161189768417,0.994362613163103, +00:48:53,1,1,1,0.999190766436901,0.998382716342538,0.997575632964045,0.996769549179274,0.995964768014801,0.995162097675899,0.994363671016102, +00:48:54,1,1,1,0.999190918125801,0.998383019542927,0.99757608754696,0.996770155009575,0.995965524892392,0.995163005232778,0.994364728460498, +00:48:55,1,1,1,0.999191069756259,0.998383322626464,0.997576541954619,0.996770760606222,0.995966281477971,0.9951639124394,0.994365785496693, +00:48:56,1,1,1,0.999191221328333,0.998383625593264,0.997576996187195,0.996771365969447,0.995967037771824,0.99516481929611,0.994366842125089, +00:48:57,1,1,1,0.99919137284208,0.998383928443442,0.99757745024486,0.996771971099477,0.995967793774239,0.995165725803252,0.994367898346089, +00:48:58,1,1,1,0.999191524297557,0.998384231177114,0.997577904127786,0.996772575996544,0.995968549485502,0.995166631961171,0.994368954160093, +00:48:59,1,1,1,0.999191675694823,0.998384533794393,0.997578357836145,0.996773180660876,0.9959693049059,0.99516753777021,0.994370009567502, +00:49:00,1,1,1,0.999191827033933,0.998384836295395,0.997578811370109,0.996773785092702,0.99597006003572,0.995168443230713,0.994371064568715, +00:49:01,1,1,1,0.999191978314946,0.998385138680233,0.997579264729848,0.996774389292251,0.995970814875246,0.995169348343022,0.994372119164133, +00:49:02,1,1,1,0.999192129537918,0.998385440949021,0.997579717915536,0.996774993259751,0.995971569424765,0.995170253107479,0.994373173354154, +00:49:03,1,1,1,0.999192280702907,0.998385743101874,0.997580170927342,0.996775596995431,0.995972323684561,0.995171157524427,0.994374227139176, +00:49:04,1,1,1,0.999192431809969,0.998386045138906,0.997580623765437,0.996776200499517,0.995973077654918,0.995172061594207,0.994375280519598, +00:49:05,1,1,1,0.999192582859161,0.99838634706023,0.997581076429992,0.996776803772237,0.995973831336122,0.995172965317159,0.994376333495817, +00:49:06,1,1,1,0.999192733850541,0.998386648865959,0.997581528921177,0.996777406813818,0.995974584728455,0.995173868693624,0.994377386068229, +00:49:07,1,1,1,0.999192884784163,0.998386950556207,0.997581981239162,0.996778009624487,0.995975337832201,0.995174771723942,0.994378438237231, +00:49:08,1,1,1,0.999193035660087,0.998387252131088,0.997582433384117,0.996778612204471,0.995976090647644,0.995175674408453,0.994379490003219, +00:49:09,1,1,1,0.999193186478367,0.998387553590714,0.997582885356211,0.996779214553995,0.995976843175066,0.995176576747495,0.994380541366587, +00:49:10,1,1,1,0.99919333723906,0.998387854935199,0.997583337155615,0.996779816673286,0.995977595414749,0.995177478741408,0.99438159232773, +00:49:11,1,1,1,0.999193487942223,0.998388156164654,0.997583788782496,0.996780418562569,0.995978347366974,0.995178380390529,0.994382642887043, +00:49:12,1,1,1,0.999193638587913,0.998388457279194,0.997584240237025,0.996781020222068,0.995979099032024,0.995179281695196,0.994383693044919, +00:49:13,1,1,1,0.999193789176184,0.998388758278929,0.997584691519369,0.99678162165201,0.99597985041018,0.995180182655746,0.99438474280175, +00:49:14,1,1,1,0.999193939707094,0.998389059163973,0.997585142629697,0.996782222852619,0.995980601501723,0.995181083272516,0.994385792157931, +00:49:15,1,1,1,0.999194090180699,0.998389359934438,0.997585593568178,0.996782823824118,0.995981352306932,0.995181983545843,0.994386841113851, +00:49:16,1,1,1,0.999194240597054,0.998389660590435,0.997586044334979,0.996783424566733,0.995982102826087,0.995182883476061,0.994387889669904, +00:49:17,1,1,1,0.999194390956216,0.998389961132077,0.997586494930269,0.996784025080686,0.99598285305947,0.995183783063508,0.994388937826479, +00:49:18,1,1,1,0.999194541258241,0.998390261559476,0.997586945354214,0.996784625366202,0.995983603007357,0.995184682308516,0.994389985583968, +00:49:19,1,1,1,0.999194691503183,0.998390561872742,0.997587395606983,0.996785225423503,0.99598435267003,0.995185581211422,0.99439103294276, +00:49:20,1,1,1,0.9991948416911,0.998390862071987,0.997587845688741,0.996785825252811,0.995985102047765,0.995186479772559,0.994392079903244, +00:49:21,1,1,1,0.999194991822046,0.998391162157323,0.997588295599657,0.996786424854351,0.995985851140841,0.99518737799226,0.994393126465809, +00:49:22,1,1,1,0.999195141896077,0.99839146212886,0.997588745339896,0.996787024228343,0.995986599949535,0.99518827587086,0.994394172630844, +00:49:23,1,1,1,0.999195291913249,0.99839176198671,0.997589194909626,0.99678762337501,0.995987348474127,0.99518917340869,0.994395218398736, +00:49:24,1,1,1,0.999195441873617,0.998392061730984,0.997589644309012,0.996788222294573,0.99598809671489,0.995190070606082,0.994396263769873, +00:49:25,1,1,1,0.999195591777236,0.998392361361791,0.99759009353822,0.996788820987253,0.995988844672104,0.995190967463369,0.994397308744641, +00:49:26,1,1,1,0.999195741624162,0.998392660879243,0.997590542597416,0.996789419453273,0.995989592346044,0.995191863980882,0.994398353323426, +00:49:27,1,1,1,0.99919589141445,0.99839296028345,0.997590991486766,0.996790017692851,0.995990339736985,0.995192760158952,0.994399397506614, +00:49:28,1,1,1,0.999196041148155,0.998393259574522,0.997591440206435,0.996790615706209,0.995991086845203,0.995193655997909,0.994400441294591, +00:49:29,1,1,1,0.999196190825332,0.998393558752569,0.997591888756589,0.996791213493567,0.995991833670975,0.995194551498084,0.99440148468774, +00:49:30,1,1,1,0.999196340446035,0.998393857817701,0.99759233713739,0.996791811055145,0.995992580214573,0.995195446659805,0.994402527686447, +00:49:31,1,1,1,0.999196490010321,0.998394156770028,0.997592785349006,0.996792408391162,0.995993326476272,0.995196341483402,0.994403570291094, +00:49:32,1,1,1,0.999196639518244,0.99839445560966,0.997593233391599,0.996793005501837,0.995994072456347,0.995197235969204,0.994404612502065, +00:49:33,1,1,1,0.999196788969858,0.998394754336705,0.997593681265335,0.996793602387389,0.995994818155071,0.995198130117539,0.994405654319741, +00:49:34,1,1,1,0.999196938365218,0.998395052951274,0.997594128970377,0.996794199048038,0.995995563572718,0.995199023928734,0.994406695744507, +00:49:35,1,1,1,0.999197087704378,0.998395351453475,0.997594576506888,0.996794795484,0.995996308709559,0.995199917403118,0.994407736776742, +00:49:36,1,1,1,0.999197236987394,0.998395649843418,0.997595023875034,0.996795391695495,0.995997053565869,0.995200810541016,0.994408777416827, +00:49:37,1,1,1,0.99919738621432,0.998395948121211,0.997595471074975,0.99679598768274,0.995997798141918,0.995201703342756,0.994409817665144, +00:49:38,1,1,1,0.99919753538521,0.998396246286964,0.997595918106877,0.996796583445953,0.99599854243798,0.995202595808664,0.994410857522073, +00:49:39,1,1,1,0.999197684500118,0.998396544340784,0.997596364970902,0.99679717898535,0.995999286454324,0.995203487939064,0.994411896987992, +00:49:40,1,1,1,0.999197833559099,0.99839684228278,0.997596811667211,0.996797774301149,0.996000030191223,0.995204379734283,0.994412936063281, +00:49:41,1,1,1,0.999197982562207,0.99839714011306,0.997597258195969,0.996798369393566,0.996000773648946,0.995205271194644,0.994413974748319, +00:49:42,1,1,1,0.999198131509496,0.998397437831734,0.997597704557337,0.996798964262817,0.996001516827765,0.995206162320473,0.994415013043482, +00:49:43,1,1,1,0.999198280401019,0.998397735438907,0.997598150751476,0.996799558909119,0.996002259727949,0.995207053112092,0.994416050949149, +00:49:44,1,1,1,0.999198429236831,0.99839803293469,0.99759859677855,0.996800153332687,0.996003002349768,0.995207943569827,0.994417088465697, +00:49:45,1,1,1,0.999198578016987,0.998398330319188,0.997599042638719,0.996800747533736,0.996003744693491,0.995208833693998,0.994418125593501, +00:49:46,1,1,1,0.999198726741538,0.99839862759251,0.997599488332144,0.996801341512482,0.996004486759387,0.99520972348493,0.994419162332938, +00:49:47,1,1,1,0.99919887541054,0.998398924754763,0.997599933858987,0.99680193526914,0.996005228547724,0.995210612942943,0.994420198684384, +00:49:48,1,1,1,0.999199024024046,0.998399221806055,0.997600379219409,0.996802528803924,0.996005970058771,0.995211502068361,0.994421234648213, +00:49:49,1,1,1,0.999199172582109,0.998399518746492,0.997600824413571,0.996803122117047,0.996006711292796,0.995212390861503,0.9944222702248, +00:49:50,1,1,1,0.999199321084783,0.998399815576182,0.997601269441632,0.996803715208725,0.996007452250065,0.995213279322691,0.994423305414518, +00:49:51,1,1,1,0.999199469532121,0.998400112295231,0.997601714303754,0.996804308079172,0.996008192930846,0.995214167452245,0.994424340217741, +00:49:52,1,1,1,0.999199617924178,0.998400408903747,0.997602159000096,0.996804900728599,0.996008933335406,0.995215055250485,0.994425374634841, +00:49:53,1,1,1,0.999199766261005,0.998400705401835,0.997602603530818,0.996805493157221,0.996009673464011,0.995215942717731,0.994426408666192, +00:49:54,1,1,1,0.999199914542657,0.998401001789602,0.997603047896079,0.99680608536525,0.996010413316927,0.995216829854301,0.994427442312165, +00:49:55,1,1,1,0.999200062769186,0.998401298067154,0.99760349209604,0.996806677352899,0.996011152894419,0.995217716660515,0.994428475573131, +00:49:56,1,1,1,0.999200210940645,0.998401594234598,0.997603936130859,0.99680726912038,0.996011892196754,0.99521860313669,0.994429508449462, +00:49:57,1,1,1,0.999200359057088,0.99840189029204,0.997604380000695,0.996807860667905,0.996012631224195,0.995219489283144,0.994430540941528, +00:49:58,1,1,1,0.999200507118568,0.998402186239585,0.997604823705708,0.996808451995685,0.996013369977008,0.995220375100196,0.994431573049698, +00:49:59,1,1,1,0.999200655125137,0.998402482077339,0.997605267246054,0.996809043103933,0.996014108455456,0.995221260588161,0.994432604774342, +00:50:00,1,1,1,0.999200803076848,0.998402777805407,0.997605710621894,0.996809633992859,0.996014846659804,0.995222145747355,0.99443363611583, +00:50:01,1,1,1,0.999200950973753,0.998403073423895,0.997606153833384,0.996810224662674,0.996015584590315,0.995223030578097,0.994434667074528, +00:50:02,1,1,1,0.999201098815907,0.998403368932909,0.997606596880684,0.996810815113588,0.996016322247252,0.9952239150807,0.994435697650806, +00:50:03,1,1,1,0.99920124660336,0.998403664332553,0.99760703976395,0.996811405345812,0.996017059630879,0.99522479925548,0.99443672784503, +00:50:04,1,1,1,0.999201394336166,0.998403959622933,0.99760748248334,0.996811995359556,0.996017796741456,0.995225683102752,0.994437757657569, +00:50:05,1,1,1,0.999201542014377,0.998404254804153,0.997607925039012,0.99681258515503,0.996018533579247,0.995226566622831,0.994438787088787, +00:50:06,1,1,1,0.999201689638045,0.998404549876318,0.997608367431122,0.996813174732442,0.996019270144513,0.99522744981603,0.994439816139051, +00:50:07,1,1,1,0.999201837207223,0.998404844839532,0.997608809659827,0.996813764092003,0.996020006437516,0.995228332682663,0.994440844808726, +00:50:08,1,1,1,0.999201984721962,0.9984051396939,0.997609251725284,0.99681435323392,0.996020742458516,0.995229215223042,0.994441873098178, +00:50:09,1,1,1,0.999202132182316,0.998405434439527,0.99760969362765,0.996814942158403,0.996021478207775,0.995230097437482,0.994442901007771, +00:50:10,1,1,1,0.999202279588336,0.998405729076516,0.99761013536708,0.996815530865659,0.996022213685553,0.995230979326294,0.994443928537869, +00:50:11,1,1,1,0.999202426940074,0.998406023604972,0.99761057694373,0.996816119355898,0.996022948892109,0.995231860889789,0.994444955688835, +00:50:12,1,1,1,0.999202574237582,0.998406318024998,0.997611018357757,0.996816707629325,0.996023683827704,0.99523274212828,0.994445982461032, +00:50:13,1,1,1,0.999202721480913,0.998406612336698,0.997611459609316,0.99681729568615,0.996024418492596,0.995233623042077,0.994447008854824, +00:50:14,1,1,1,0.999202868670116,0.998406906540175,0.997611900698562,0.996817883526579,0.996025152887045,0.995234503631491,0.994448034870571, +00:50:15,1,1,1,0.999203015805246,0.998407200635534,0.997612341625651,0.996818471150819,0.996025887011309,0.995235383896833,0.994449060508635, +00:50:16,1,1,1,0.999203162886353,0.998407494622877,0.997612782390738,0.996819058559076,0.996026620865646,0.995236263838411,0.994450085769378, +00:50:17,1,1,1,0.999203309913488,0.998407788502307,0.997613222993976,0.996819645751558,0.996027354450315,0.995237143456536,0.99445111065316, +00:50:18,1,1,1,0.999203456886704,0.998408082273929,0.997613663435521,0.996820232728469,0.996028087765573,0.995238022751516,0.994452135160342, +00:50:19,1,1,1,0.999203603806052,0.998408375937844,0.997614103715528,0.996820819490016,0.996028820811676,0.99523890172366,0.994453159291282, +00:50:20,1,1,1,0.999203750671582,0.998408669494155,0.99761454383415,0.996821406036405,0.996029553588883,0.995239780373276,0.99445418304634, +00:50:21,1,1,1,0.999203897483348,0.998408962942965,0.997614983791541,0.99682199236784,0.996030286097449,0.995240658700672,0.994455206425874, +00:50:22,1,1,1,0.999204044241399,0.998409256284376,0.997615423587854,0.996822578484527,0.996031018337631,0.995241536706155,0.994456229430243, +00:50:23,1,1,1,0.999204190945787,0.998409549518492,0.997615863223245,0.99682316438667,0.996031750309684,0.995242414390031,0.994457252059805, +00:50:24,1,1,1,0.999204337596563,0.998409842645413,0.997616302697865,0.996823750074474,0.996032482013865,0.995243291752609,0.994458274314916, +00:50:25,1,1,1,0.999204484193778,0.998410135665242,0.997616742011868,0.996824335548142,0.996033213450427,0.995244168794192,0.994459296195934, +00:50:26,1,1,1,0.999204630737483,0.998410428578081,0.997617181165406,0.996824920807879,0.996033944619627,0.995245045515088,0.994460317703214, +00:50:27,1,1,1,0.999204777227729,0.998410721384032,0.997617620158633,0.996825505853889,0.996034675521718,0.995245921915601,0.994461338837112, +00:50:28,1,1,1,0.999204923664568,0.998411014083197,0.997618058991702,0.996826090686374,0.996035406156954,0.995246797996036,0.994462359597985, +00:50:29,1,1,1,0.999205070048048,0.998411306675676,0.997618497664763,0.996826675305537,0.99603613652559,0.995247673756698,0.994463379986185, +00:50:30,1,1,1,0.999205216378222,0.998411599161572,0.997618936177969,0.996827259711582,0.996036866627879,0.995248549197891,0.994464400002069, +00:50:31,1,1,1,0.99920536265514,0.998411891540986,0.997619374531473,0.996827843904711,0.996037596464073,0.995249424319917,0.994465419645989, +00:50:32,1,1,1,0.999205508878853,0.998412183814018,0.997619812725426,0.996828427885126,0.996038326034426,0.995250299123082,0.994466438918299, +00:50:33,1,1,1,0.999205655049411,0.99841247598077,0.997620250759979,0.99682901165303,0.996039055339191,0.995251173607687,0.994467457819353, +00:50:34,1,1,1,0.999205801166864,0.998412768041343,0.997620688635284,0.996829595208622,0.996039784378618,0.995252047774034,0.994468476349501, +00:50:35,1,1,1,0.999205947231263,0.998413059995837,0.997621126351491,0.996830178552107,0.996040513152961,0.995252921622426,0.994469494509098, +00:50:36,1,1,1,0.999206093242658,0.998413351844352,0.997621563908752,0.996830761683683,0.99604124166247,0.995253795153165,0.994470512298493, +00:50:37,1,1,1,0.999206239201099,0.998413643586991,0.997622001307217,0.996831344603553,0.996041969907396,0.995254668366551,0.994471529718038, +00:50:38,1,1,1,0.999206385106638,0.998413935223851,0.997622438547037,0.996831927311917,0.996042697887991,0.995255541262885,0.994472546768084, +00:50:39,1,1,1,0.999206530959322,0.998414226755035,0.997622875628362,0.996832509808975,0.996043425604504,0.995256413842468,0.994473563448981, +00:50:40,1,1,1,0.999206676759204,0.998414518180642,0.997623312551342,0.996833092094927,0.996044153057186,0.9952572861056,0.994474579761078, +00:50:41,1,1,1,0.999206822506332,0.998414809500771,0.997623749316127,0.996833674169974,0.996044880246287,0.99525815805258,0.994475595704724, +00:50:42,1,1,1,0.999206968200756,0.998415100715523,0.997624185922866,0.996834256034314,0.996045607172055,0.995259029683707,0.994476611280269, +00:50:43,1,1,1,0.999207113842527,0.998415391824997,0.997624622371709,0.996834837688147,0.99604633383474,0.995259900999281,0.99447762648806, +00:50:44,1,1,1,0.999207259431695,0.998415682829293,0.997625058662805,0.996835419131672,0.996047060234591,0.995260771999599,0.994478641328445, +00:50:45,1,1,1,0.999207404968308,0.99841597372851,0.997625494796304,0.996836000365088,0.996047786371856,0.99526164268496,0.994479655801772, +00:50:46,1,1,1,0.999207550452416,0.998416264522747,0.997625930772354,0.996836581388593,0.996048512246784,0.995262513055661,0.994480669908388, +00:50:47,1,1,1,0.99920769588407,0.998416555212104,0.997626366591104,0.996837162202385,0.996049237859621,0.995263383111999,0.994481683648638, +00:50:48,1,1,1,0.999207841263318,0.99841684579668,0.997626802252702,0.996837742806663,0.996049963210616,0.995264252854272,0.994482697022868, +00:50:49,1,1,1,0.99920798659021,0.998417136276572,0.997627237757297,0.996838323201624,0.996050688300014,0.995265122282775,0.994483710031425, +00:50:50,1,1,1,0.999208131864796,0.998417426651881,0.997627673105036,0.996838903387465,0.996051413128065,0.995265991397805,0.994484722674653, +00:50:51,1,1,1,0.999208277087124,0.998417716922704,0.997628108296068,0.996839483364384,0.996052137695013,0.995266860199657,0.994485734952897, +00:50:52,1,1,1,0.999208422257244,0.99841800708914,0.99762854333054,0.996840063132577,0.996052862001104,0.995267728688626,0.9944867468665, +00:50:53,1,1,1,0.999208567375206,0.998418297151288,0.9976289782086,0.996840642692242,0.996053586046585,0.995268596865007,0.994487758415807, +00:50:54,1,1,1,0.999208712441057,0.998418587109245,0.997629412930394,0.996841222043574,0.996054309831701,0.995269464729095,0.99448876960116, +00:50:55,1,1,1,0.999208857454848,0.99841887696311,0.997629847496071,0.99684180118677,0.996055033356697,0.995270332281184,0.994489780422902, +00:50:56,1,1,1,0.999209002416626,0.99841916671298,0.997630281905777,0.996842380122026,0.996055756621818,0.995271199521567,0.994490790881376, +00:50:57,1,1,1,0.999209147326442,0.998419456358954,0.997630716159658,0.996842958849536,0.996056479627308,0.995272066450538,0.994491800976923, +00:50:58,1,1,1,0.999209292184344,0.998419745901129,0.997631150257861,0.996843537369497,0.996057202373412,0.995272933068388,0.994492810709884, +00:50:59,1,1,1,0.999209436990381,0.998420035339602,0.997631584200532,0.996844115682103,0.996057924860373,0.995273799375412,0.994493820080601, +00:51:00,1,1,1,0.999209581744601,0.998420324674472,0.997632017987819,0.99684469378755,0.996058647088434,0.995274665371901,0.994494829089414, +00:51:01,1,1,1,0.999209726447053,0.998420613905834,0.997632451619865,0.996845271686032,0.99605936905784,0.995275531058147,0.994495837736662, +00:51:02,1,1,1,0.999209871097786,0.998420903033787,0.997632885096818,0.996845849377742,0.996060090768832,0.99527639643444,0.994496846022686, +00:51:03,1,1,1,0.999210015696848,0.998421192058427,0.997633318418822,0.996846426862876,0.996060812221654,0.995277261501072,0.994497853947824, +00:51:04,1,1,1,0.999210160244288,0.998421480979852,0.997633751586023,0.996847004141626,0.996061533416546,0.995278126258333,0.994498861512415, +00:51:05,1,1,1,0.999210304740153,0.998421769798158,0.997634184598567,0.996847581214187,0.996062254353753,0.995278990706514,0.994499868716797, +00:51:06,1,1,1,0.999210449184493,0.998422058513441,0.997634617456597,0.996848158080752,0.996062975033513,0.995279854845904,0.994500875561309, +00:51:07,1,1,1,0.999210593577356,0.998422347125798,0.997635050160259,0.996848734741513,0.996063695456071,0.995280718676793,0.994501882046286, +00:51:08,1,1,1,0.999210737918789,0.998422635635326,0.997635482709697,0.996849311196664,0.996064415621664,0.995281582199469,0.994502888172065, +00:51:09,1,1,1,0.999210882208842,0.998422924042121,0.997635915105056,0.996849887446397,0.996065135530536,0.995282445414221,0.994503893938985, +00:51:10,1,1,1,0.999211026447561,0.998423212346279,0.99763634734648,0.996850463490903,0.996065855182925,0.995283308321338,0.994504899347379, +00:51:11,1,1,1,0.999211170634996,0.998423500547895,0.997636779434113,0.996851039330376,0.996066574579072,0.995284170921107,0.994505904397584, +00:51:12,1,1,1,0.999211314771193,0.998423788647067,0.997637211368098,0.996851614965007,0.996067293719217,0.995285033213816,0.994506909089935, +00:51:13,1,1,1,0.999211458856201,0.998424076643889,0.99763764314858,0.996852190394987,0.996068012603598,0.995285895199751,0.994507913424766, +00:51:14,1,1,1,0.999211602890068,0.998424364538457,0.997638074775701,0.996852765620507,0.996068731232454,0.995286756879199,0.994508917402411, +00:51:15,1,1,1,0.999211746872842,0.998424652330866,0.997638506249605,0.996853340641758,0.996069449606025,0.995287618252447,0.994509921023204, +00:51:16,1,1,1,0.999211890804569,0.998424940021213,0.997638937570435,0.996853915458932,0.996070167724549,0.995288479319781,0.994510924287478, +00:51:17,1,1,1,0.999212034685298,0.998425227609591,0.997639368738333,0.996854490072218,0.996070885588263,0.995289340081486,0.994511927195566, +00:51:18,1,1,1,0.999212178515077,0.998425515096097,0.997639799753443,0.996855064481807,0.996071603197405,0.995290200537847,0.994512929747801, +00:51:19,1,1,1,0.999212322293952,0.998425802480825,0.997640230615906,0.996855638687889,0.996072320552214,0.995291060689149,0.994513931944514, +00:51:20,1,1,1,0.999212466021971,0.99842608976387,0.997640661325866,0.996856212690652,0.996073037652925,0.995291920535676,0.994514933786036, +00:51:21,1,1,1,0.999212609699182,0.998426376945327,0.997641091883463,0.996856786490288,0.996073754499776,0.995292780077713,0.9945159352727, +00:51:22,1,1,1,0.999212753325632,0.99842666402529,0.997641522288841,0.996857360086984,0.996074471093003,0.995293639315542,0.994516936404834, +00:51:23,1,1,1,0.999212896901368,0.998426951003854,0.99764195254214,0.996857933480931,0.996075187432842,0.995294498249449,0.994517937182771, +00:51:24,1,1,1,0.999213040426437,0.998427237881114,0.997642382643502,0.996858506672315,0.996075903519529,0.995295356879714,0.994518937606838, +00:51:25,1,1,1,0.999213183900886,0.998427524657162,0.997642812593069,0.996859079661327,0.9960766193533,0.995296215206621,0.994519937677366, +00:51:26,1,1,1,0.999213327324763,0.998427811332094,0.997643242390981,0.996859652448154,0.996077334934389,0.995297073230451,0.994520937394683, +00:51:27,1,1,1,0.999213470698115,0.998428097906004,0.99764367203738,0.996860225032984,0.996078050263032,0.995297930951488,0.994521936759118, +00:51:28,1,1,1,0.999213614020987,0.998428384378984,0.997644101532406,0.996860797416005,0.996078765339463,0.995298788370011,0.994522935770998, +00:51:29,1,1,1,0.999213757293428,0.99842867075113,0.9976445308762,0.996861369597403,0.996079480163916,0.995299645486302,0.994523934430651, +00:51:30,1,1,1,0.999213900515484,0.998428957022534,0.997644960068903,0.996861941577367,0.996080194736626,0.995300502300642,0.994524932738405, +00:51:31,1,1,1,0.999214043687202,0.998429243193291,0.997645389110653,0.996862513356083,0.996080909057826,0.995301358813311,0.994525930694586, +00:51:32,1,1,1,0.999214186808629,0.998429529263492,0.997645818001592,0.996863084933738,0.996081623127749,0.995302215024588,0.994526928299519, +00:51:33,1,1,1,0.99921432987981,0.998429815233233,0.99764624674186,0.996863656310518,0.996082336946628,0.995303070934753,0.994527925553532, +00:51:34,1,1,1,0.999214472900793,0.998430101102605,0.997646675331595,0.99686422748661,0.996083050514697,0.995303926544086,0.994528922456948, +00:51:35,1,1,1,0.999214615871624,0.998430386871701,0.997647103770937,0.996864798462199,0.996083763832186,0.995304781852865,0.994529919010094, +00:51:36,1,1,1,0.99921475879235,0.998430672540615,0.997647532060026,0.996865369237471,0.99608447689933,0.995305636861369,0.994530915213293, +00:51:37,1,1,1,0.999214901663017,0.99843095810944,0.997647960199001,0.996865939812612,0.996085189716359,0.995306491569875,0.99453191106687, +00:51:38,1,1,1,0.999215044483671,0.998431243578267,0.997648388188,0.996866510187807,0.996085902283504,0.995307345978662,0.994532906571149, +00:51:39,1,1,1,0.999215187254358,0.998431528947189,0.997648816027163,0.99686708036324,0.996086614600998,0.995308200088006,0.994533901726452, +00:51:40,1,1,1,0.999215329975125,0.9984318142163,0.997649243716627,0.996867650339097,0.99608732666907,0.995309053898185,0.994534896533102, +00:51:41,1,1,1,0.999215472646018,0.99843209938569,0.997649671256532,0.996868220115561,0.996088038487951,0.995309907409474,0.994535890991421, +00:51:42,1,1,1,0.999215615267083,0.998432384455452,0.997650098647015,0.996868789692818,0.996088750057873,0.995310760622151,0.994536885101732, +00:51:43,1,1,1,0.999215757838366,0.998432669425678,0.997650525888214,0.99686935907105,0.996089461379063,0.995311613536491,0.994537878864356, +00:51:44,1,1,1,0.999215900359912,0.998432954296459,0.997650952980267,0.996869928250442,0.996090172451753,0.99531246615277,0.994538872279614, +00:51:45,1,1,1,0.999216042831768,0.998433239067889,0.997651379923312,0.996870497231178,0.996090883276171,0.995313318471262,0.994539865347827, +00:51:46,1,1,1,0.99921618525398,0.998433523740057,0.997651806717485,0.99687106601344,0.996091593852547,0.995314170492243,0.994540858069315, +00:51:47,1,1,1,0.999216327626593,0.998433808313057,0.997652233362926,0.996871634597411,0.996092304181109,0.995315022215986,0.994541850444397, +00:51:48,1,1,1,0.999216469949653,0.998434092786978,0.997652659859769,0.996872202983275,0.996093014262086,0.995315873642766,0.994542842473393, +00:51:49,1,1,1,0.999216612223206,0.998434377161913,0.997653086208153,0.996872771171213,0.996093724095705,0.995316724772856,0.994543834156622, +00:51:50,1,1,1,0.999216754447297,0.998434661437952,0.997653512408214,0.996873339161408,0.996094433682195,0.99531757560653,0.994544825494403, +00:51:51,1,1,1,0.999216896621971,0.998434945615187,0.997653938460088,0.996873906954042,0.996095143021783,0.995318426144061,0.994545816487053, +00:51:52,1,1,1,0.999217038747275,0.998435229693707,0.997654364363912,0.996874474549297,0.996095852114697,0.99531927638572,0.99454680713489, +00:51:53,1,1,1,0.999217180823253,0.998435513673606,0.997654790119822,0.996875041947354,0.996096560961162,0.995320126331781,0.994547797438232, +00:51:54,1,1,1,0.999217322849951,0.998435797554972,0.997655215727954,0.996875609148395,0.996097269561407,0.995320975982516,0.994548787397395, +00:51:55,1,1,1,0.999217464827414,0.998436081337896,0.997655641188444,0.996876176152601,0.996097977915656,0.995321825338194,0.994549777012696, +00:51:56,1,1,1,0.999217606755688,0.998436365022469,0.997656066501427,0.996876742960152,0.996098686024137,0.995322674399089,0.99455076628445, +00:51:57,1,1,1,0.999217748634817,0.998436648608781,0.997656491667039,0.996877309571229,0.996099393887074,0.99532352316547,0.994551755212973, +00:51:58,1,1,1,0.999217890464846,0.998436932096922,0.997656916685415,0.996877875986012,0.996100101504694,0.995324371637608,0.994552743798581, +00:51:59,1,1,1,0.999218032245822,0.998437215486983,0.99765734155669,0.996878442204682,0.996100808877221,0.995325219815772,0.994553732041588, +00:52:00,1,1,1,0.999218173977788,0.998437498779053,0.997657766280999,0.996879008227418,0.99610151600488,0.995326067700234,0.994554719942308, +00:52:01,1,1,1,0.99921831566079,0.998437781973221,0.997658190858477,0.996879574054401,0.996102222887896,0.995326915291261,0.994555707501056, +00:52:02,1,1,1,0.999218457294872,0.998438065069579,0.997658615289258,0.996880139685808,0.996102929526493,0.995327762589123,0.994556694718145, +00:52:03,1,1,1,0.999218598880079,0.998438348068215,0.997659039573477,0.996880705121821,0.996103635920895,0.995328609594089,0.994557681593887, +00:52:04,1,1,1,0.999218740416456,0.998438630969218,0.997659463711268,0.996881270362616,0.996104342071325,0.995329456306426,0.994558668128596, +00:52:05,1,1,1,0.999218881904048,0.998438913772679,0.997659887702764,0.996881835408374,0.996105047978007,0.995330302726403,0.994559654322584, +00:52:06,1,1,1,0.999219023342899,0.998439196478686,0.997660311548101,0.996882400259273,0.996105753641163,0.995331148854287,0.994560640176162, +00:52:07,1,1,1,0.999219164733054,0.998439479087328,0.99766073524741,0.99688296491549,0.996106459061018,0.995331994690346,0.994561625689642, +00:52:08,1,1,1,0.999219306074557,0.998439761598695,0.997661158800826,0.996883529377204,0.996107164237792,0.995332840234846,0.994562610863336, +00:52:09,1,1,1,0.999219447367453,0.998440044012875,0.997661582208482,0.996884093644592,0.996107869171708,0.995333685488053,0.994563595697552, +00:52:10,1,1,1,0.999219588611787,0.998440326329957,0.997662005470512,0.996884657717833,0.996108573862988,0.995334530450234,0.994564580192603, +00:52:11,1,1,1,0.999219729807601,0.99844060855003,0.997662428587047,0.996885221597103,0.996109278311854,0.995335375121655,0.994565564348797, +00:52:12,1,1,1,0.999219870954942,0.998440890673182,0.997662851558222,0.996885785282579,0.996109982518527,0.995336219502581,0.994566548166444, +00:52:13,1,1,1,0.999220012053852,0.998441172699501,0.997663274384168,0.996886348774438,0.996110686483228,0.995337063593277,0.994567531645853, +00:52:14,1,1,1,0.999220153104376,0.998441454629076,0.997663697065018,0.996886912072856,0.996111390206176,0.995337907394008,0.994568514787333, +00:52:15,1,1,1,0.999220294106559,0.998441736461996,0.997664119600904,0.996887475178011,0.996112093687594,0.995338750905038,0.994569497591191, +00:52:16,1,1,1,0.999220435060444,0.998442018198347,0.997664541991959,0.996888038090077,0.996112796927701,0.995339594126631,0.994570480057735, +00:52:17,1,1,1,0.999220575966075,0.998442299838219,0.997664964238314,0.996888600809232,0.996113499926716,0.995340437059051,0.994571462187273, +00:52:18,1,1,1,0.999220716823496,0.998442581381698,0.9976653863401,0.99688916333565,0.99611420268486,0.995341279702561,0.994572443980111, +00:52:19,1,1,1,0.999220857632751,0.998442862828873,0.99766580829745,0.996889725669507,0.996114905202352,0.995342122057425,0.994573425436557, +00:52:20,1,1,1,0.999220998393884,0.998443144179831,0.997666230110494,0.996890287810978,0.99611560747941,0.995342964123905,0.994574406556915, +00:52:21,1,1,1,0.999221139106938,0.998443425434659,0.997666651779365,0.996890849760238,0.996116309516253,0.995343805902262,0.994575387341492, +00:52:22,1,1,1,0.999221279771958,0.998443706593445,0.997667073304193,0.996891411517462,0.996117011313099,0.99534464739276,0.994576367790594, +00:52:23,1,1,1,0.999221420388986,0.998443987656277,0.997667494685108,0.996891973082824,0.996117712870167,0.995345488595659,0.994577347904524, +00:52:24,1,1,1,0.999221560958067,0.998444268623241,0.997667915922242,0.996892534456499,0.996118414187675,0.995346329511222,0.994578327683588, +00:52:25,1,1,1,0.999221701479244,0.998444549494424,0.997668337015726,0.99689309563866,0.996119115265839,0.995347170139708,0.99457930712809, +00:52:26,1,1,1,0.99922184195256,0.998444830269913,0.997668757965688,0.996893656629481,0.996119816104877,0.995348010481378,0.994580286238333, +00:52:27,1,1,1,0.999221982378059,0.998445110949795,0.99766917877226,0.996894217429136,0.996120516705006,0.995348850536494,0.994581265014621, +00:52:28,1,1,1,0.999222122755784,0.998445391534157,0.997669599435572,0.996894778037799,0.996121217066443,0.995349690305313,0.994582243457256, +00:52:29,1,1,1,0.999222263085778,0.998445672023085,0.997670019955753,0.996895338455641,0.996121917189404,0.995350529788097,0.994583221566541, +00:52:30,1,1,1,0.999222403368086,0.998445952416666,0.997670440332933,0.996895898682837,0.996122617074105,0.995351368985104,0.994584199342778, +00:52:31,1,1,1,0.999222543602748,0.998446232714986,0.997670860567242,0.996896458719558,0.996123316720762,0.995352207896593,0.994585176786269, +00:52:32,1,1,1,0.99922268378981,0.998446512918131,0.997671280658808,0.996897018565977,0.99612401612959,0.995353046522823,0.994586153897315, +00:52:33,1,1,1,0.999222823929314,0.998446793026187,0.997671700607761,0.996897578222267,0.996124715300804,0.995353884864051,0.994587130676217, +00:52:34,1,1,1,0.999222964021302,0.99844707303924,0.99767212041423,0.996898137688599,0.99612541423462,0.995354722920536,0.994588107123275, +00:52:35,1,1,1,0.999223104065819,0.998447352957376,0.997672540078344,0.996898696965145,0.996126112931252,0.995355560692534,0.994589083238789, +00:52:36,1,1,1,0.999223244062906,0.998447632780681,0.997672959600231,0.996899256052077,0.996126811390915,0.995356398180304,0.99459005902306, +00:52:37,1,1,1,0.999223384012607,0.998447912509241,0.99767337898002,0.996899814949565,0.996127509613822,0.995357235384102,0.994591034476387, +00:52:38,1,1,1,0.999223523914964,0.998448192143141,0.997673798217839,0.996900373657781,0.996128207600188,0.995358072304185,0.994592009599068, +00:52:39,1,1,1,0.99922366377002,0.998448471682465,0.997674217313816,0.996900932176896,0.996128905350225,0.995358908940808,0.994592984391402, +00:52:40,1,1,1,0.999223803577819,0.998448751127301,0.997674636268079,0.99690149050708,0.996129602864147,0.995359745294227,0.994593958853687, +00:52:41,1,1,1,0.999223943338401,0.998449030477733,0.997675055080757,0.996902048648504,0.996130300142168,0.995360581364699,0.994594932986222, +00:52:42,1,1,1,0.99922408305181,0.998449309733845,0.997675473751975,0.996902606601337,0.996130997184499,0.995361417152477,0.994595906789302, +00:52:43,1,1,1,0.999224222718089,0.998449588895724,0.997675892281863,0.996903164365751,0.996131693991353,0.995362252657817,0.994596880263225, +00:52:44,1,1,1,0.99922436233728,0.998449867963453,0.997676310670547,0.996903721941913,0.996132390562943,0.995363087880973,0.994597853408289, +00:52:45,1,1,1,0.999224501909425,0.998450146937118,0.997676728918154,0.996904279329995,0.996133086899479,0.995363922822199,0.994598826224788, +00:52:46,1,1,1,0.999224641434566,0.998450425816804,0.997677147024811,0.996904836530164,0.996133783001174,0.995364757481749,0.994599798713019, +00:52:47,1,1,1,0.999224780912746,0.998450704602593,0.997677564990646,0.996905393542592,0.996134478868239,0.995365591859877,0.994600770873276, +00:52:48,1,1,1,0.999224920344007,0.998450983294572,0.997677982815784,0.996905950367445,0.996135174500886,0.995366425956836,0.994601742705857, +00:52:49,1,1,1,0.999225059728392,0.998451261892825,0.997678400500353,0.996906507004892,0.996135869899323,0.995367259772878,0.994602714211053, +00:52:50,1,1,1,0.999225199065941,0.998451540397434,0.997678818044477,0.996907063455103,0.996136565063763,0.995368093308255,0.994603685389161, +00:52:51,1,1,1,0.999225338356698,0.998451818808486,0.997679235448285,0.996907619718244,0.996137259994414,0.995368926563221,0.994604656240473, +00:52:52,1,1,1,0.999225477600704,0.998452097126063,0.9976796527119,0.996908175794485,0.996137954691489,0.995369759538026,0.994605626765284, +00:52:53,1,1,1,0.999225616798002,0.99845237535025,0.99768006983545,0.996908731683992,0.996138649155194,0.995370592232923,0.994606596963886, +00:52:54,1,1,1,0.999225755948632,0.998452653481129,0.99768048681906,0.996909287386934,0.996139343385741,0.995371424648162,0.994607566836572, +00:52:55,1,1,1,0.999225895052638,0.998452931518786,0.997680903662855,0.996909842903477,0.996140037383338,0.995372256783993,0.994608536383634, +00:52:56,1,1,1,0.99922603411006,0.998453209463303,0.99768132036696,0.996910398233789,0.996140731148194,0.995373088640669,0.994609505605364, +00:52:57,1,1,1,0.99922617312094,0.998453487314764,0.997681736931501,0.996910953378036,0.996141424680517,0.995373920218438,0.994610474502054, +00:52:58,1,1,1,0.999226312085321,0.998453765073252,0.997682153356603,0.996911508336384,0.996142117980516,0.99537475151755,0.994611443073995, +00:52:59,1,1,1,0.999226451003243,0.99845404273885,0.99768256964239,0.996912063109002,0.996142811048398,0.995375582538256,0.994612411321478, +00:53:00,1,1,1,0.999226589874749,0.998454320311641,0.997682985788987,0.996912617696053,0.996143503884372,0.995376413280803,0.994613379244792, +00:53:01,1,1,1,0.999226728699879,0.998454597791709,0.997683401796518,0.996913172097705,0.996144196488645,0.995377243745441,0.994614346844228, +00:53:02,1,1,1,0.999226867478676,0.998454875179136,0.997683817665109,0.996913726314124,0.996144888861423,0.995378073932419,0.994615314120077, +00:53:03,1,1,1,0.99922700621118,0.998455152474005,0.997684233394882,0.996914280345474,0.996145581002914,0.995378903841984,0.994616281072625, +00:53:04,1,1,1,0.999227144897433,0.998455429676398,0.997684648985962,0.996914834191921,0.996146272913325,0.995379733474385,0.994617247702164, +00:53:05,1,1,1,0.999227283537476,0.998455706786399,0.997685064438473,0.99691538785363,0.996146964592861,0.995380562829868,0.994618214008981, +00:53:06,1,1,1,0.99922742213135,0.998455983804089,0.997685479752538,0.996915941330766,0.996147656041729,0.995381391908681,0.994619179993364, +00:53:07,1,1,1,0.999227560679097,0.998456260729551,0.997685894928281,0.996916494623493,0.996148347260134,0.995382220711072,0.994620145655602, +00:53:08,1,1,1,0.999227699180758,0.998456537562867,0.997686309965825,0.996917047731977,0.996149038248283,0.995383049237285,0.99462111099598, +00:53:09,1,1,1,0.999227837636374,0.99845681430412,0.997686724865293,0.99691760065638,0.99614972900638,0.995383877487569,0.994622076014787, +00:53:10,1,1,1,0.999227976045985,0.99845709095339,0.997687139626808,0.996918153396868,0.99615041953463,0.995384705462168,0.994623040712309, +00:53:11,1,1,1,0.999228114409633,0.998457367510761,0.997687554250494,0.996918705953604,0.996151109833238,0.995385533161328,0.994624005088832, +00:53:12,1,1,1,0.999228252727358,0.998457643976313,0.997687968736472,0.996919258326751,0.996151799902408,0.995386360585294,0.994624969144641, +00:53:13,1,1,1,0.999228390999202,0.998457920350129,0.997688383084865,0.996919810516474,0.996152489742345,0.995387187734312,0.994625932880024, +00:53:14,1,1,1,0.999228529225205,0.998458196632291,0.997688797295797,0.996920362522934,0.996153179353253,0.995388014608625,0.994626896295263, +00:53:15,1,1,1,0.999228667405408,0.998458472822878,0.997689211369387,0.996920914346295,0.996153868735335,0.995388841208479,0.994627859390645, +00:53:16,1,1,1,0.999228805539852,0.998458748921974,0.99768962530576,0.99692146598672,0.996154557888794,0.995389667534117,0.994628822166454, +00:53:17,1,1,1,0.999228943628577,0.998459024929659,0.997690039105037,0.996922017444371,0.996155246813834,0.995390493585782,0.994629784622972, +00:53:18,1,1,1,0.999229081671624,0.998459300846014,0.997690452767338,0.99692256871941,0.996155935510657,0.995391319363719,0.994630746760486, +00:53:19,1,1,1,0.999229219669033,0.998459576671121,0.997690866292787,0.996923119812,0.996156623979466,0.995392144868169,0.994631708579276, +00:53:20,1,1,1,0.999229357620846,0.99845985240506,0.997691279681504,0.996923670722302,0.996157312220464,0.995392970099376,0.994632670079627, +00:53:21,1,1,1,0.999229495527101,0.998460128047911,0.997691692933611,0.996924221450478,0.996158000233852,0.995393795057583,0.99463363126182, +00:53:22,1,1,1,0.99922963338784,0.998460403599757,0.997692106049228,0.99692477199669,0.996158688019832,0.99539461974303,0.994634592126138, +00:53:23,1,1,1,0.999229771203103,0.998460679060677,0.997692519028477,0.996925322361098,0.996159375578606,0.995395444155961,0.994635552672863, +00:53:24,1,1,1,0.99922990897293,0.998460954430752,0.997692931871478,0.996925872543863,0.996160062910375,0.995396268296615,0.994636512902275, +00:53:25,1,1,1,0.999230046697362,0.998461229710063,0.997693344578352,0.996926422545147,0.996160750015339,0.995397092165235,0.994637472814656, +00:53:26,1,1,1,0.999230184376438,0.998461504898689,0.99769375714922,0.996926972365111,0.9961614368937,0.995397915762061,0.994638432410287, +00:53:27,1,1,1,0.999230322010199,0.998461779996711,0.997694169584201,0.996927522003913,0.996162123545658,0.995398739087334,0.994639391689447, +00:53:28,1,1,1,0.999230459598685,0.998462055004208,0.997694581883416,0.996928071461715,0.996162809971413,0.995399562141294,0.994640350652418, +00:53:29,1,1,1,0.999230597141935,0.998462329921262,0.997694994046984,0.996928620738677,0.996163496171166,0.99540038492418,0.994641309299477, +00:53:30,1,1,1,0.99923073463999,0.998462604747951,0.997695406075026,0.996929169834958,0.996164182145115,0.995401207436232,0.994642267630905, +00:53:31,1,1,1,0.99923087209289,0.998462879484356,0.997695817967661,0.996929718750718,0.996164867893461,0.99540202967769,0.99464322564698, +00:53:32,1,1,1,0.999231009500674,0.998463154130556,0.997696229725009,0.996930267486115,0.996165553416402,0.995402851648791,0.99464418334798, +00:53:33,1,1,1,0.999231146863382,0.998463428686631,0.997696641347189,0.99693081604131,0.996166238714137,0.995403673349776,0.994645140734185, +00:53:34,1,1,1,0.999231284181054,0.99846370315266,0.99769705283432,0.996931364416462,0.996166923786865,0.995404494780881,0.99464609780587, +00:53:35,1,1,1,0.99923142145373,0.998463977528722,0.997697464186521,0.996931912611728,0.996167608634784,0.995405315942346,0.994647054563314, +00:53:36,1,1,1,0.999231558681449,0.998464251814898,0.997697875403911,0.996932460627267,0.996168293258093,0.995406136834407,0.994648011006794, +00:53:37,1,1,1,0.99923169586425,0.998464526011265,0.997698286486609,0.996933008463238,0.996168977656989,0.995406957457302,0.994648967136586, +00:53:38,1,1,1,0.999231833002174,0.998464800117903,0.997698697434733,0.996933556119799,0.996169661831669,0.995407777811268,0.994649922952967, +00:53:39,1,1,1,0.99923197009526,0.998465074134891,0.997699108248402,0.996934103597107,0.996170345782332,0.995408597896542,0.994650878456212, +00:53:40,1,1,1,0.999232107143547,0.998465348062308,0.997699518927734,0.996934650895321,0.996171029509174,0.99540941771336,0.994651833646598, +00:53:41,1,1,1,0.999232244147075,0.998465621900232,0.997699929472847,0.996935198014597,0.996171713012392,0.995410237261958,0.994652788524398, +00:53:42,1,1,1,0.999232381105883,0.998465895648742,0.997700339883859,0.996935744955093,0.996172396292183,0.995411056542572,0.994653743089889, +00:53:43,1,1,1,0.99923251802001,0.998466169307917,0.997700750160888,0.996936291716966,0.996173079348742,0.995411875555438,0.994654697343343, +00:53:44,1,1,1,0.999232654889495,0.998466442877835,0.997701160304051,0.996936838300373,0.996173762182266,0.99541269430079,0.994655651285037, +00:53:45,1,1,1,0.999232791714378,0.998466716358575,0.997701570313466,0.996937384705471,0.996174444792951,0.995413512778863,0.994656604915242, +00:53:46,1,1,1,0.999232928494697,0.998466989750214,0.99770198018925,0.996937930932415,0.996175127180992,0.995414330989893,0.994657558234233, +00:53:47,1,1,1,0.999233065230493,0.99846726305283,0.997702389931521,0.996938476981363,0.996175809346584,0.995415148934113,0.994658511242283, +00:53:48,1,1,1,0.999233201921803,0.998467536266503,0.997702799540395,0.99693902285247,0.996176491289924,0.995415966611757,0.994659463939664, +00:53:49,1,1,1,0.999233338568667,0.998467809391308,0.99770320901599,0.996939568545891,0.996177173011204,0.995416784023059,0.994660416326649, +00:53:50,1,1,1,0.999233475171123,0.998468082427326,0.997703618358421,0.996940114061784,0.99617785451062,0.995417601168252,0.994661368403509, +00:53:51,1,1,1,0.999233611729211,0.998468355374632,0.997704027567806,0.996940659400302,0.996178535788366,0.995418418047569,0.994662320170516, +00:53:52,1,1,1,0.99923374824297,0.998468628233305,0.99770443664426,0.996941204561602,0.996179216844636,0.995419234661243,0.994663271627942, +00:53:53,1,1,1,0.999233884712437,0.998468901003423,0.997704845587901,0.996941749545838,0.996179897679624,0.995420051009506,0.994664222776057, +00:53:54,1,1,1,0.999234021137652,0.998469173685062,0.997705254398845,0.996942294353165,0.996180578293523,0.995420867092591,0.994665173615132, +00:53:55,1,1,1,0.999234157518654,0.9984694462783,0.997705663077206,0.996942838983737,0.996181258686526,0.99542168291073,0.994666124145437, +00:53:56,1,1,1,0.999234293855481,0.998469718783214,0.997706071623102,0.99694338343771,0.996181938858827,0.995422498464153,0.994667074367241, +00:53:57,1,1,1,0.999234430148171,0.998469991199881,0.997706480036647,0.996943927715237,0.996182618810618,0.995423313753091,0.994668024280815, +00:53:58,1,1,1,0.999234566396764,0.998470263528379,0.997706888317957,0.996944471816472,0.996183298542092,0.995424128777777,0.994668973886427, +00:53:59,1,1,1,0.999234702601297,0.998470535768784,0.997707296467148,0.996945015741569,0.996183978053441,0.99542494353844,0.994669923184347, +00:54:00,1,1,1,0.999234838761809,0.998470807921172,0.997707704484335,0.996945559490682,0.996184657344857,0.995425758035311,0.994670872174842, +00:54:01,1,1,1,0.999234974878338,0.998471079985621,0.997708112369632,0.996946103063963,0.996185336416531,0.99542657226862,0.99467182085818, +00:54:02,1,1,1,0.999235110950923,0.998471351962208,0.997708520123155,0.996946646461567,0.996186015268655,0.995427386238596,0.99467276923463, +00:54:03,1,1,1,0.999235246979602,0.998471623851008,0.997708927745018,0.996947189683646,0.996186693901421,0.995428199945468,0.994673717304459, +00:54:04,1,1,1,0.999235382964413,0.998471895652098,0.997709335235336,0.996947732730354,0.996187372315019,0.995429013389467,0.994674665067934, +00:54:05,1,1,1,0.999235518905394,0.998472167365555,0.997709742594224,0.996948275601842,0.99618805050964,0.995429826570821,0.994675612525321, +00:54:06,1,1,1,0.999235654802584,0.998472438991454,0.997710149821796,0.996948818298263,0.996188728485475,0.995430639489758,0.994676559676887, +00:54:07,1,1,1,0.99923579065602,0.998472710529872,0.997710556918165,0.996949360819768,0.996189406242713,0.995431452146506,0.994677506522897, +00:54:08,1,1,1,0.99923592646574,0.998472981980885,0.997710963883446,0.996949903166512,0.996190083781545,0.995432264541293,0.994678453063618, +00:54:09,1,1,1,0.999236062231783,0.998473253344568,0.997711370717753,0.996950445338644,0.996190761102161,0.995433076674348,0.994679399299314, +00:54:10,1,1,1,0.999236197954186,0.998473524620998,0.997711777421199,0.996950987336317,0.99619143820475,0.995433888545897,0.994680345230252, +00:54:11,1,1,1,0.999236333632987,0.998473795810249,0.997712183993898,0.996951529159682,0.996192115089501,0.995434700156167,0.994681290856694, +00:54:12,1,1,1,0.999236469268224,0.998474066912399,0.997712590435964,0.99695207080889,0.996192791756603,0.995435511505385,0.994682236178906, +00:54:13,1,1,1,0.999236604859935,0.998474337927522,0.99771299674751,0.996952612284092,0.996193468206245,0.995436322593777,0.994683181197151, +00:54:14,1,1,1,0.999236740408158,0.998474608855693,0.997713402928647,0.996953153585439,0.996194144438616,0.99543713342157,0.994684125911693, +00:54:15,1,1,1,0.999236875912929,0.998474879696988,0.997713808979491,0.996953694713083,0.996194820453903,0.995437943988989,0.994685070322795, +00:54:16,1,1,1,0.999237011374287,0.998475150451483,0.997714214900153,0.996954235667172,0.996195496252295,0.995438754296261,0.99468601443072, +00:54:17,1,1,1,0.99923714679227,0.998475421119251,0.997714620690747,0.996954776447857,0.99619617183398,0.995439564343609,0.994686958235731, +00:54:18,1,1,1,0.999237282166914,0.998475691700369,0.997715026351384,0.996955317055289,0.996196847199145,0.99544037413126,0.994687901738089, +00:54:19,1,1,1,0.999237417498257,0.998475962194911,0.997715431882177,0.996955857489617,0.996197522347977,0.995441183659437,0.994688844938057, +00:54:20,1,1,1,0.999237552786337,0.998476232602952,0.997715837283238,0.99695639775099,0.996198197280663,0.995441992928366,0.994689787835896, +00:54:21,1,1,1,0.999237688031192,0.998476502924567,0.99771624255468,0.996956937839559,0.996198871997391,0.995442801938269,0.994690730431867, +00:54:22,1,1,1,0.999237823232857,0.99847677315983,0.997716647696613,0.996957477755473,0.996199546498346,0.995443610689372,0.994691672726231, +00:54:23,1,1,1,0.999237958391371,0.998477043308816,0.997717052709151,0.99695801749888,0.996200220783716,0.995444419181897,0.994692614719248, +00:54:24,1,1,1,0.999238093506771,0.998477313371599,0.997717457592405,0.996958557069929,0.996200894853685,0.995445227416068,0.99469355641118, +00:54:25,1,1,1,0.999238228579094,0.998477583348254,0.997717862346486,0.99695909646877,0.996201568708441,0.995446035392108,0.994694497802285, +00:54:26,1,1,1,0.999238363608377,0.998477853238855,0.997718266971506,0.99695963569555,0.996202242348167,0.995446843110238,0.994695438892822, +00:54:27,1,1,1,0.999238498594657,0.998478123043476,0.997718671467575,0.996960174750418,0.996202915773051,0.995447650570683,0.994696379683052, +00:54:28,1,1,1,0.999238633537971,0.99847839276219,0.997719075834805,0.996960713633522,0.996203588983277,0.995448457773662,0.994697320173233, +00:54:29,1,1,1,0.999238768438357,0.998478662395073,0.997719480073307,0.99696125234501,0.996204261979029,0.9954492647194,0.994698260363623, +00:54:30,1,1,1,0.999238903295851,0.998478931942198,0.997719884183192,0.996961790885029,0.996204934760493,0.995450071408116,0.994699200254481, +00:54:31,1,1,1,0.99923903811049,0.998479201403638,0.99772028816457,0.996962329253727,0.996205607327853,0.995450877840032,0.994700139846064, +00:54:32,1,1,1,0.999239172882311,0.998479470779468,0.997720692017551,0.996962867451252,0.996206279681292,0.995451684015369,0.994701079138629, +00:54:33,1,1,1,0.99923930761135,0.99847974006976,0.997721095742246,0.99696340547775,0.996206951820996,0.995452489934347,0.994702018132435, +00:54:34,1,1,1,0.999239442297645,0.998480009274589,0.997721499338766,0.996963943333369,0.996207623747147,0.995453295597187,0.994702956827737, +00:54:35,1,1,1,0.999239576941232,0.998480278394027,0.99772190280722,0.996964481018254,0.996208295459928,0.995454101004109,0.994703895224792, +00:54:36,1,1,1,0.999239711542147,0.998480547428148,0.997722306147717,0.996965018532554,0.996208966959524,0.995454906155333,0.994704833323856, +00:54:37,1,1,1,0.999239846100428,0.998480816377025,0.997722709360369,0.996965555876413,0.996209638246117,0.995455711051077,0.994705771125185, +00:54:38,1,1,1,0.999239980616111,0.998481085240732,0.997723112445285,0.996966093049979,0.99621030931989,0.995456515691562,0.994706708629035, +00:54:39,1,1,1,0.999240115089232,0.998481354019341,0.997723515402573,0.996966630053397,0.996210980181024,0.995457320077006,0.99470764583566, +00:54:40,1,1,1,0.999240249519828,0.998481622712924,0.997723918232344,0.996967166886813,0.996211650829704,0.995458124207627,0.994708582745315, +00:54:41,1,1,1,0.999240383907936,0.998481891321556,0.997724320934706,0.996967703550373,0.996212321266109,0.995458928083645,0.994709519358256, +00:54:42,1,1,1,0.99924051825359,0.998482159845308,0.997724723509769,0.996968240044221,0.996212991490423,0.995459731705276,0.994710455674735, +00:54:43,1,1,1,0.999240652556829,0.998482428284254,0.997725125957642,0.996968776368504,0.996213661502826,0.995460535072739,0.994711391695006, +00:54:44,1,1,1,0.999240786817688,0.998482696638465,0.997725528278433,0.996969312523367,0.996214331303501,0.995461338186252,0.994712327419325, +00:54:45,1,1,1,0.999240921036204,0.998482964908014,0.997725930472251,0.996969848508954,0.996215000892627,0.995462141046031,0.994713262847942, +00:54:46,1,1,1,0.999241055212412,0.998483233092974,0.997726332539204,0.996970384325409,0.996215670270387,0.995462943652293,0.994714197981111, +00:54:47,1,1,1,0.999241189346348,0.998483501193417,0.997726734479401,0.996970919972877,0.99621633943696,0.995463746005256,0.994715132819085, +00:54:48,1,1,1,0.99924132343805,0.998483769209414,0.997727136292951,0.996971455451504,0.996217008392526,0.995464548105134,0.994716067362116, +00:54:49,1,1,1,0.999241457487552,0.998484037141038,0.99772753797996,0.996971990761432,0.996217677137267,0.995465349952145,0.994717001610455, +00:54:50,1,1,1,0.999241591494891,0.998484304988361,0.997727939540537,0.996972525902805,0.996218345671361,0.995466151546505,0.994717935564355, +00:54:51,1,1,1,0.999241725460102,0.998484572751455,0.99772834097479,0.996973060875768,0.996219013994988,0.995466952888427,0.994718869224065, +00:54:52,1,1,1,0.999241859383223,0.998484840430391,0.997728742282827,0.996973595680463,0.996219682108329,0.995467753978129,0.994719802589838, +00:54:53,1,1,1,0.999241993264288,0.998485108025242,0.997729143464754,0.996974130317035,0.996220350011561,0.995468554815824,0.994720735661923, +00:54:54,1,1,1,0.999242127103333,0.998485375536078,0.99772954452068,0.996974664785627,0.996221017704864,0.995469355401728,0.994721668440571, +00:54:55,1,1,1,0.999242260900394,0.998485642962971,0.997729945450712,0.99697519908638,0.996221685188417,0.995470155736055,0.994722600926032, +00:54:56,1,1,1,0.999242394655506,0.998485910305993,0.997730346254956,0.996975733219439,0.996222352462399,0.995470955819018,0.994723533118555, +00:54:57,1,1,1,0.999242528368707,0.998486177565215,0.99773074693352,0.996976267184945,0.996223019526986,0.995471755650833,0.994724465018389, +00:54:58,1,1,1,0.99924266204003,0.998486444740708,0.99773114748651,0.996976800983042,0.996223686382358,0.995472555231712,0.994725396625784, +00:54:59,1,1,1,0.999242795669511,0.998486711832544,0.997731547914033,0.996977334613871,0.996224353028693,0.995473354561868,0.994726327940987, +00:55:00,1,1,1,0.999242929257187,0.998486978840792,0.997731948216196,0.996977868077575,0.996225019466166,0.995474153641515,0.994727258964248, +00:55:01,1,1,1,0.999243062803092,0.998487245765525,0.997732348393105,0.996978401374295,0.996225685694958,0.995474952470866,0.994728189695814, +00:55:02,1,1,1,0.999243196307262,0.998487512606813,0.997732748444866,0.996978934504173,0.996226351715243,0.995475751050132,0.994729120135933, +00:55:03,1,1,1,0.999243329769733,0.998487779364727,0.997733148371586,0.996979467467351,0.996227017527199,0.995476549379526,0.994730050284852, +00:55:04,1,1,1,0.999243463190539,0.998488046039337,0.99773354817337,0.996980000263969,0.996227683131003,0.99547734745926,0.994730980142817, +00:55:05,1,1,1,0.999243596569716,0.998488312630714,0.997733947850325,0.996980532894169,0.996228348526831,0.995478145289545,0.994731909710077, +00:55:06,1,1,1,0.9992437299073,0.998488579138929,0.997734347402555,0.996981065358093,0.99622901371486,0.995478942870594,0.994732838986876, +00:55:07,1,1,1,0.999243863203325,0.998488845564051,0.997734746830167,0.99698159765588,0.996229678695265,0.995479740202616,0.994733767973461, +00:55:08,1,1,1,0.999243996457826,0.998489111906152,0.997735146133266,0.996982129787672,0.996230343468221,0.995480537285823,0.994734696670078, +00:55:09,1,1,1,0.999244129670839,0.998489378165301,0.997735545311958,0.996982661753608,0.996231008033905,0.995481334120425,0.994735625076972, +00:55:10,1,1,1,0.999244262842399,0.998489644341569,0.997735944366346,0.996983193553829,0.996231672392492,0.995482130706632,0.994736553194389, +00:55:11,1,1,1,0.99924439597254,0.998489910435025,0.997736343296538,0.996983725188475,0.996232336544157,0.995482927044655,0.994737481022572, +00:55:12,1,1,1,0.999244529061299,0.99849017644574,0.997736742102636,0.996984256657686,0.996233000489074,0.995483723134703,0.994738408561766, +00:55:13,1,1,1,0.999244662108709,0.998490442373782,0.997737140784747,0.996984787961602,0.996233664227419,0.995484518976986,0.994739335812216, +00:55:14,1,1,1,0.999244795114805,0.998490708219223,0.997737539342975,0.996985319100361,0.996234327759365,0.995485314571713,0.994740262774165, +00:55:15,1,1,1,0.999244928079623,0.998490973982132,0.997737937777424,0.996985850074104,0.996234991085087,0.995486109919092,0.994741189447857, +00:55:16,1,1,1,0.999245061003197,0.998491239662578,0.997738336088198,0.99698638088297,0.996235654204759,0.995486905019333,0.994742115833534, +00:55:17,1,1,1,0.999245193885562,0.998491505260631,0.997738734275403,0.996986911527097,0.996236317118554,0.995487699872643,0.99474304193144, +00:55:18,1,1,1,0.999245326726752,0.998491770776359,0.997739132339141,0.996987442006624,0.996236979826645,0.995488494479231,0.994743967741818, +00:55:19,1,1,1,0.999245459526803,0.998492036209834,0.997739530279517,0.99698797232169,0.996237642329207,0.995489288839305,0.994744893264909, +00:55:20,1,1,1,0.999245592285749,0.998492301561122,0.997739928096635,0.996988502472433,0.996238304626412,0.995490082953072,0.994745818500955, +00:55:21,1,1,1,0.999245725003624,0.998492566830295,0.997740325790598,0.996989032458992,0.996238966718432,0.995490876820739,0.994746743450198, +00:55:22,1,1,1,0.999245857680462,0.99849283201742,0.99774072336151,0.996989562281505,0.996239628605441,0.995491670442513,0.994747668112879, +00:55:23,1,1,1,0.9992459903163,0.998493097122568,0.997741120809474,0.996990091940109,0.996240290287611,0.995492463818602,0.99474859248924, +00:55:24,1,1,1,0.99924612291117,0.998493362145805,0.997741518134594,0.996990621434942,0.996240951765114,0.995493256949211,0.99474951657952, +00:55:25,1,1,1,0.999246255465108,0.998493627087202,0.997741915336973,0.996991150766142,0.996241613038121,0.995494049834548,0.994750440383961, +00:55:26,1,1,1,0.999246387978147,0.998493891946827,0.997742312416713,0.996991679933846,0.996242274106805,0.995494842474817,0.994751363902802, +00:55:27,1,1,1,0.999246520450322,0.998494156724749,0.997742709373918,0.996992208938191,0.996242934971337,0.995495634870224,0.994752287136283, +00:55:28,1,1,1,0.999246652881667,0.998494421421036,0.997743106208691,0.996992737779314,0.996243595631888,0.995496427020976,0.994753210084643, +00:55:29,1,1,1,0.999246785272217,0.998494686035756,0.997743502921133,0.996993266457353,0.996244256088629,0.995497218927277,0.994754132748122, +00:55:30,1,1,1,0.999246917622005,0.998494950568978,0.997743899511348,0.996993794972443,0.996244916341732,0.995498010589331,0.994755055126958, +00:55:31,1,1,1,0.999247049931066,0.998495215020771,0.997744295979438,0.996994323324721,0.996245576391365,0.995498802007344,0.99475597722139, +00:55:32,1,1,1,0.999247182199433,0.998495479391201,0.997744692325504,0.996994851514324,0.996246236237701,0.99549959318152,0.994756899031656, +00:55:33,1,1,1,0.999247314427141,0.998495743680338,0.99774508854965,0.996995379541387,0.996246895880909,0.995500384112063,0.994757820557994, +00:55:34,1,1,1,0.999247446614224,0.998496007888249,0.997745484651977,0.996995907406047,0.996247555321159,0.995501174799177,0.994758741800641, +00:55:35,1,1,1,0.999247578760716,0.998496272015002,0.997745880632587,0.996996435108439,0.99624821455862,0.995501965243065,0.994759662759835, +00:55:36,1,1,1,0.99924771086665,0.998496536060665,0.997746276491581,0.996996962648699,0.996248873593463,0.995502755443932,0.994760583435812, +00:55:37,1,1,1,0.999247842932061,0.998496800025305,0.997746672229061,0.996997490026962,0.996249532425856,0.995503545401978,0.99476150382881, +00:55:38,1,1,1,0.999247974956981,0.998497063908991,0.997747067845129,0.996998017243364,0.996250191055968,0.995504335117409,0.994762423939065, +00:55:39,1,1,1,0.999248106941447,0.998497327711789,0.997747463339886,0.99699854429804,0.996250849483968,0.995505124590425,0.994763343766812, +00:55:40,1,1,1,0.999248238885489,0.998497591433768,0.997747858713433,0.996999071191124,0.996251507710026,0.99550591382123,0.994764263312288, +00:55:41,1,1,1,0.999248370789144,0.998497855074994,0.99774825396587,0.996999597922751,0.996252165734309,0.995506702810025,0.994765182575727, +00:55:42,1,1,1,0.999248502652443,0.998498118635535,0.9977486490973,0.997000124493056,0.996252823556985,0.995507491557012,0.994766101557366, +00:55:43,1,1,1,0.999248634475421,0.998498382115458,0.997749044107823,0.997000650902172,0.996253481178222,0.995508280062392,0.994767020257438, +00:55:44,1,1,1,0.999248766258111,0.998498645514831,0.997749438997538,0.997001177150236,0.996254138598189,0.995509068326368,0.994767938676179, +00:55:45,1,1,1,0.999248898000547,0.998498908833719,0.997749833766548,0.997001703237379,0.996254795817052,0.995509856349139,0.994768856813822, +00:55:46,1,1,1,0.999249029702762,0.99849917207219,0.997750228414952,0.997002229163737,0.99625545283498,0.995510644130906,0.994769774670601, +00:55:47,1,1,1,0.99924916136479,0.998499435230311,0.99775062294285,0.997002754929442,0.996256109652138,0.99551143167187,0.994770692246751, +00:55:48,1,1,1,0.999249292986664,0.998499698308149,0.997751017350343,0.997003280534629,0.996256766268694,0.995512218972231,0.994771609542504, +00:55:49,1,1,1,0.999249424568417,0.99849996130577,0.997751411637531,0.997003805979431,0.996257422684815,0.995513006032189,0.994772526558094, +00:55:50,1,1,1,0.999249556110083,0.998500224223241,0.997751805804513,0.99700433126398,0.996258078900666,0.995513792851944,0.994773443293752, +00:55:51,1,1,1,0.999249687611695,0.998500487060628,0.997752199851389,0.997004856388411,0.996258734916415,0.995514579431695,0.994774359749713, +00:55:52,1,1,1,0.999249819073286,0.998500749817999,0.99775259377826,0.997005381352855,0.996259390732227,0.99551536577164,0.994775275926207, +00:55:53,1,1,1,0.999249950494889,0.998501012495418,0.997752987585223,0.997005906157445,0.996260046348268,0.99551615187198,0.994776191823466, +00:55:54,1,1,1,0.999250081876538,0.998501275092952,0.997753381272379,0.997006430802314,0.996260701764704,0.995516937732913,0.994777107441723, +00:55:55,1,1,1,0.999250213218265,0.998501537610668,0.997753774839827,0.997006955287594,0.9962613569817,0.995517723354636,0.994778022781207, +00:55:56,1,1,1,0.999250344520103,0.998501800048632,0.997754168287667,0.997007479613418,0.996262011999421,0.995518508737349,0.994778937842151, +00:55:57,1,1,1,0.999250475782086,0.998502062406908,0.997754561615995,0.997008003779916,0.996262666818032,0.995519293881249,0.994779852624785, +00:55:58,1,1,1,0.999250607004247,0.998502324685565,0.997754954824913,0.997008527787221,0.996263321437697,0.995520078786533,0.994780767129338, +00:55:59,1,1,1,0.999250738186618,0.998502586884666,0.997755347914519,0.997009051635466,0.996263975858583,0.9955208634534,0.994781681356042, +00:56:00,1,1,1,0.999250869329232,0.998502849004279,0.99775574088491,0.99700957532478,0.996264630080851,0.995521647882045,0.994782595305126, +00:56:01,1,1,1,0.999251000432123,0.998503111044468,0.997756133736186,0.997010098855296,0.996265284104668,0.995522432072667,0.994783508976819, +00:56:02,1,1,1,0.999251131495322,0.998503373005299,0.997756526468445,0.997010622227144,0.996265937930196,0.995523216025461,0.994784422371351, +00:56:03,1,1,1,0.999251262518863,0.998503634886838,0.997756919081786,0.997011145440455,0.9962665915576,0.995523999740624,0.994785335488949, +00:56:04,1,1,1,0.999251393502778,0.99850389668915,0.997757311576305,0.997011668495361,0.996267244987042,0.995524783218352,0.994786248329844, +00:56:05,1,1,1,0.9992515244471,0.998504158412301,0.997757703952101,0.997012191391991,0.996267898218687,0.995525566458841,0.994787160894263, +00:56:06,1,1,1,0.999251655351862,0.998504420056354,0.997758096209273,0.997012714130477,0.996268551252697,0.995526349462287,0.994788073182434, +00:56:07,1,1,1,0.999251786217096,0.998504681621377,0.997758488347917,0.997013236710949,0.996269204089234,0.995527132228884,0.994788985194585, +00:56:08,1,1,1,0.999251917042834,0.998504943107433,0.997758880368132,0.997013759133536,0.996269856728462,0.995527914758829,0.994789896930943, +00:56:09,1,1,1,0.99925204782911,0.998505204514588,0.997759272270014,0.997014281398368,0.996270509170543,0.995528697052315,0.994790808391735, +00:56:10,1,1,1,0.999252178575955,0.998505465842906,0.997759664053661,0.997014803505576,0.99627116141564,0.995529479109537,0.994791719577188, +00:56:11,1,1,1,0.999252309283402,0.998505727092453,0.997760055719171,0.997015325455289,0.996271813463913,0.99553026093069,0.994792630487529, +00:56:12,1,1,1,0.999252439951484,0.998505988263293,0.997760447266639,0.997015847247637,0.996272465315526,0.995531042515968,0.994793541122984, +00:56:13,1,1,1,0.999252570580233,0.99850624935549,0.997760838696165,0.997016368882748,0.996273116970639,0.995531823865564,0.994794451483778, +00:56:14,1,1,1,0.99925270116968,0.99850651036911,0.997761230007843,0.997016890360752,0.996273768429415,0.995532604979673,0.994795361570138, +00:56:15,1,1,1,0.999252831719859,0.998506771304217,0.997761621201771,0.997017411681777,0.996274419692013,0.995533385858487,0.994796271382288, +00:56:16,1,1,1,0.999252962230801,0.998507032160875,0.997762012278045,0.997017932845954,0.996275070758595,0.995534166502199,0.994797180920454, +00:56:17,1,1,1,0.999253092702539,0.998507292939148,0.997762403236763,0.997018453853409,0.996275721629323,0.995534946911004,0.994798090184861, +00:56:18,1,1,1,0.999253223135104,0.998507553639101,0.997762794078019,0.997018974704272,0.996276372304355,0.995535727085092,0.994798999175733, +00:56:19,1,1,1,0.99925335352853,0.998507814260797,0.997763184801911,0.997019495398671,0.996277022783854,0.995536507024656,0.994799907893293, +00:56:20,1,1,1,0.999253483882847,0.998508074804302,0.997763575408535,0.997020015936733,0.996277673067978,0.99553728672989,0.994800816337767, +00:56:21,1,1,1,0.999253614198087,0.998508335269678,0.997763965897985,0.997020536318588,0.996278323156889,0.995538066200983,0.994801724509378, +00:56:22,1,1,1,0.999253744474284,0.99850859565699,0.99776435627036,0.997021056544363,0.996278973050745,0.995538845438129,0.994802632408349, +00:56:23,1,1,1,0.999253874711468,0.998508855966302,0.997764746525753,0.997021576614185,0.996279622749706,0.995539624441518,0.994803540034902, +00:56:24,1,1,1,0.999254004909672,0.998509116197676,0.99776513666426,0.997022096528181,0.996280272253931,0.995540403211341,0.994804447389262, +00:56:25,1,1,1,0.999254135068927,0.998509376351178,0.997765526685978,0.99702261628648,0.99628092156358,0.99554118174779,0.99480535447165, +00:56:26,1,1,1,0.999254265189266,0.998509636426871,0.997765916591001,0.997023135889208,0.996281570678811,0.995541960051054,0.994806261282289, +00:56:27,1,1,1,0.999254395270719,0.998509896424817,0.997766306379425,0.997023655336492,0.996282219599784,0.995542738121325,0.994807167821399, +00:56:28,1,1,1,0.999254525313319,0.99851015634508,0.997766696051345,0.99702417462846,0.996282868326656,0.995543515958793,0.994808074089204, +00:56:29,1,1,1,0.999254655317097,0.998510416187725,0.997767085606855,0.997024693765237,0.996283516859586,0.995544293563647,0.994808980085925, +00:56:30,1,1,1,0.999254785282086,0.998510675952813,0.997767475046051,0.99702521274695,0.996284165198732,0.995545070936077,0.994809885811781, +00:56:31,1,1,1,0.999254915208315,0.998510935640408,0.997767864369027,0.997025731573726,0.996284813344252,0.995545848076272,0.994810791266995, +00:56:32,1,1,1,0.999255045095818,0.998511195250573,0.997768253575878,0.99702625024569,0.996285461296304,0.995546624984422,0.994811696451786, +00:56:33,1,1,1,0.999255174944625,0.998511454783372,0.997768642666698,0.997026768762969,0.996286109055045,0.995547401660716,0.994812601366376, +00:56:34,1,1,1,0.999255304754768,0.998511714238866,0.997769031641582,0.997027287125689,0.996286756620632,0.995548178105342,0.994813506010983, +00:56:35,1,1,1,0.999255434526279,0.99851197361712,0.997769420500625,0.997027805333975,0.996287403993223,0.995548954318489,0.994814410385827, +00:56:36,1,1,1,0.999255564259188,0.998512232918195,0.997769809243919,0.997028323387952,0.996288051172974,0.995549730300344,0.994815314491128, +00:56:37,1,1,1,0.999255693953528,0.998512492142154,0.99777019787156,0.997028841287746,0.996288698160043,0.995550506051096,0.994816218327105, +00:56:38,1,1,1,0.999255823609329,0.998512751289061,0.997770586383641,0.997029359033483,0.996289344954585,0.995551281570933,0.994817121893977, +00:56:39,1,1,1,0.999255953226623,0.998513010358977,0.997770974780255,0.997029876625287,0.996289991556756,0.995552056860042,0.994818025191962, +00:56:40,1,1,1,0.99925608280544,0.998513269351964,0.997771363061498,0.997030394063283,0.996290637966714,0.99555283191861,0.994818928221278, +00:56:41,1,1,1,0.999256212345813,0.998513528268086,0.997771751227461,0.997030911347596,0.996291284184614,0.995553606746825,0.994819830982143, +00:56:42,1,1,1,0.999256341847772,0.998513787107405,0.997772139278238,0.99703142847835,0.99629193021061,0.995554381344872,0.994820733474776, +00:56:43,1,1,1,0.999256471311349,0.998514045869982,0.997772527213924,0.99703194545567,0.99629257604486,0.995555155712939,0.994821635699392, +00:56:44,1,1,1,0.999256600736573,0.99851430455588,0.99777291503461,0.99703246227968,0.996293221687519,0.995555929851212,0.994822537656211, +00:56:45,1,1,1,0.999256730123478,0.99851456316516,0.99777330274039,0.997032978950505,0.99629386713874,0.995556703759876,0.994823439345447, +00:56:46,1,1,1,0.999256859472092,0.998514821697886,0.997773690331357,0.997033495468267,0.99629451239868,0.995557477439119,0.994824340767319, +00:56:47,1,1,1,0.999256988782448,0.998515080154118,0.997774077807604,0.997034011833091,0.996295157467492,0.995558250889124,0.994825241922042, +00:56:48,1,1,1,0.999257118054577,0.998515338533919,0.997774465169223,0.9970345280451,0.996295802345333,0.995559024110078,0.994826142809832, +00:56:49,1,1,1,0.999257247288508,0.998515596837349,0.997774852416307,0.997035044104419,0.996296447032354,0.995559797102166,0.994827043430904, +00:56:50,1,1,1,0.999257376484274,0.998515855064472,0.997775239548949,0.997035560011169,0.996297091528712,0.995560569865572,0.994827943785475, +00:56:51,1,1,1,0.999257505641904,0.998516113215348,0.99777562656724,0.997036075765475,0.996297735834559,0.995561342400482,0.99482884387376, +00:56:52,1,1,1,0.99925763476143,0.998516371290039,0.997776013471274,0.997036591367458,0.99629837995005,0.995562114707079,0.994829743695974, +00:56:53,1,1,1,0.999257763842881,0.998516629288606,0.997776400261141,0.997037106817243,0.996299023875338,0.995562886785548,0.99483064325233, +00:56:54,1,1,1,0.99925789288629,0.998516887211111,0.997776786936935,0.997037622114952,0.996299667610576,0.995563658636072,0.994831542543044, +00:56:55,1,1,1,0.999258021891686,0.998517145057615,0.997777173498746,0.997038137260706,0.996300311155917,0.995564430258835,0.99483244156833, +00:56:56,1,1,1,0.999258150859101,0.998517402828178,0.997777559946668,0.997038652254629,0.996300954511515,0.995565201654021,0.9948333403284, +00:56:57,1,1,1,0.999258279788564,0.998517660522863,0.99777794628079,0.997039167096843,0.996301597677521,0.995565972821813,0.99483423882347, +00:56:58,1,1,1,0.999258408680106,0.99851791814173,0.997778332501205,0.997039681787469,0.996302240654089,0.995566743762394,0.994835137053751, +00:56:59,1,1,1,0.999258537533758,0.99851817568484,0.997778718608005,0.997040196326631,0.996302883441371,0.995567514475947,0.994836035019458, +00:57:00,1,1,1,0.999258666349549,0.998518433152253,0.997779104601281,0.997040710714448,0.996303526039519,0.995568284962654,0.994836932720803, +00:57:01,1,1,1,0.999258795127511,0.998518690544032,0.997779490481122,0.997041224951043,0.996304168448685,0.995569055222697,0.994837830157998, +00:57:02,1,1,1,0.999258923867675,0.998518947860235,0.997779876247622,0.997041739036538,0.99630481066902,0.995569825256258,0.994838727331256, +00:57:03,1,1,1,0.999259052570069,0.998519205100925,0.99778026190087,0.997042252971053,0.996305452700677,0.99557059506352,0.994839624240788, +00:57:04,1,1,1,0.999259181234724,0.998519462266162,0.997780647440959,0.99704276675471,0.996306094543806,0.995571364644663,0.994840520886806, +00:57:05,1,1,1,0.999259309861671,0.998519719356005,0.997781032867977,0.997043280387629,0.99630673619856,0.99557213399987,0.994841417269521, +00:57:06,1,1,1,0.99925943845094,0.998519976370516,0.997781418182016,0.997043793869932,0.996307377665088,0.995572903129321,0.994842313389145, +00:57:07,1,1,1,0.999259567002561,0.998520233309754,0.997781803383166,0.997044307201738,0.996308018943541,0.995573672033197,0.994843209245888, +00:57:08,1,1,1,0.999259695516564,0.99852049017378,0.997782188471518,0.997044820383169,0.99630866003407,0.995574440711679,0.994844104839961, +00:57:09,1,1,1,0.99925982399298,0.998520746962655,0.997782573447161,0.997045333414345,0.996309300936827,0.995575209164947,0.994845000171574, +00:57:10,1,1,1,0.999259952431837,0.998521003676437,0.997782958310187,0.997045846295386,0.99630994165196,0.995575977393182,0.994845895240937, +00:57:11,1,1,1,0.999260080833167,0.998521260315188,0.997783343060685,0.997046359026412,0.996310582179619,0.995576745396563,0.99484679004826, +00:57:12,1,1,1,0.999260209196999,0.998521516878967,0.997783727698745,0.997046871607543,0.996311222519956,0.99557751317527,0.994847684593753, +00:57:13,1,1,1,0.999260337523363,0.998521773367834,0.997784112224456,0.997047384038898,0.996311862673118,0.995578280729483,0.994848578877624, +00:57:14,1,1,1,0.999260465812289,0.998522029781849,0.997784496637908,0.997047896320597,0.996312502639256,0.99557904805938,0.994849472900083, +00:57:15,1,1,1,0.999260594063807,0.998522286121071,0.997784880939192,0.99704840845276,0.996313142418519,0.995579815165142,0.994850366661338, +00:57:16,1,1,1,0.999260722277947,0.99852254238556,0.997785265128396,0.997048920435506,0.996313782011056,0.995580582046946,0.994851260161598, +00:57:17,1,1,1,0.999260850454739,0.998522798575376,0.997785649205609,0.997049432268953,0.996314421417016,0.995581348704972,0.99485215340107, +00:57:18,1,1,1,0.999260978594211,0.998523054690578,0.997786033170922,0.997049943953222,0.996315060636547,0.995582115139397,0.994853046379963, +00:57:19,1,1,1,0.999261106696395,0.998523310731225,0.997786417024422,0.99705045548843,0.996315699669798,0.9955828813504,0.994853939098485, +00:57:20,1,1,1,0.999261234761319,0.998523566697377,0.997786800766199,0.997050966874696,0.996316338516918,0.995583647338159,0.994854831556842, +00:57:21,1,1,1,0.999261362789013,0.998523822589094,0.997787184396343,0.997051478112139,0.996316977178054,0.995584413102852,0.994855723755242, +00:57:22,1,1,1,0.999261490779507,0.998524078406433,0.99778756791494,0.997051989200878,0.996317615653355,0.995585178644655,0.994856615693891, +00:57:23,1,1,1,0.999261618732831,0.998524334149455,0.997787951322081,0.997052500141029,0.996318253942967,0.995585943963746,0.994857507372997, +00:57:24,1,1,1,0.999261746649013,0.998524589818218,0.997788334617854,0.997053010932712,0.996318892047039,0.995586709060302,0.994858398792765, +00:57:25,1,1,1,0.999261874528084,0.998524845412782,0.997788717802346,0.997053521576044,0.996319529965719,0.9955874739345,0.994859289953402, +00:57:26,1,1,1,0.999262002370073,0.998525100933204,0.997789100875648,0.997054032071143,0.996320167699152,0.995588238586517,0.994860180855113, +00:57:27,1,1,1,0.999262130175009,0.998525356379545,0.997789483837846,0.997054542418127,0.996320805247487,0.995589003016528,0.994861071498104, +00:57:28,1,1,1,0.999262257942921,0.998525611751862,0.997789866689028,0.997055052617113,0.99632144261087,0.99558976722471,0.994861961882579, +00:57:29,1,1,1,0.999262385673839,0.998525867050215,0.997790249429284,0.997055562668218,0.996322079789447,0.995590531211239,0.994862852008745, +00:57:30,1,1,1,0.999262513367793,0.998526122274661,0.997790632058699,0.99705607257156,0.996322716783365,0.995591294976291,0.994863741876806, +00:57:31,1,1,1,0.999262641024811,0.99852637742526,0.997791014577364,0.997056582327255,0.99632335359277,0.995592058520039,0.994864631486966, +00:57:32,1,1,1,0.999262768644922,0.99852663250207,0.997791396985364,0.997057091935421,0.996323990217809,0.995592821842662,0.994865520839429, +00:57:33,1,1,1,0.999262896228157,0.998526887505148,0.997791779282787,0.997057601396173,0.996324626658627,0.995593584944332,0.9948664099344, +00:57:34,1,1,1,0.999263023774543,0.998527142434555,0.997792161469721,0.997058110709629,0.99632526291537,0.995594347825225,0.994867298772082, +00:57:35,1,1,1,0.99926315128411,0.998527397290346,0.997792543546254,0.997058619875905,0.996325898988183,0.995595110485515,0.994868187352678, +00:57:36,1,1,1,0.999263278756888,0.998527652072582,0.997792925512472,0.997059128895118,0.996326534877212,0.995595872925376,0.994869075676392, +00:57:37,1,1,1,0.999263406192905,0.998527906781319,0.997793307368462,0.997059637767382,0.996327170582602,0.995596635144984,0.994869963743427, +00:57:38,1,1,1,0.99926353359219,0.998528161416616,0.997793689114312,0.997060146492815,0.996327806104497,0.995597397144511,0.994870851553985, +00:57:39,1,1,1,0.999263660954772,0.998528415978531,0.997794070750108,0.997060655071533,0.996328441443043,0.995598158924131,0.994871739108269, +00:57:40,1,1,1,0.99926378828068,0.998528670467121,0.997794452275937,0.997061163503649,0.996329076598384,0.995598920484018,0.99487262640648, +00:57:41,1,1,1,0.999263915569943,0.998528924882445,0.997794833691885,0.997061671789282,0.996329711570664,0.995599681824345,0.994873513448821, +00:57:42,1,1,1,0.99926404282259,0.998529179224559,0.99779521499804,0.997062179928545,0.996330346360029,0.995600442945285,0.994874400235494, +00:57:43,1,1,1,0.999264170038649,0.998529433493522,0.997795596194487,0.997062687921554,0.99633098096662,0.99560120384701,0.994875286766699, +00:57:44,1,1,1,0.99926429721815,0.998529687689391,0.997795977281313,0.997063195768423,0.996331615390584,0.995601964529694,0.994876173042638, +00:57:45,1,1,1,0.999264424361121,0.998529941812224,0.997796358258604,0.997063703469269,0.996332249632062,0.995602724993508,0.994877059063512, +00:57:46,1,1,1,0.999264551467591,0.998530195862078,0.997796739126446,0.997064211024206,0.996332883691199,0.995603485238624,0.994877944829521, +00:57:47,1,1,1,0.999264678537588,0.998530449839009,0.997797119884926,0.997064718433347,0.996333517568139,0.995604245265216,0.994878830340866, +00:57:48,1,1,1,0.999264805571141,0.998530703743077,0.997797500534128,0.997065225696809,0.996334151263023,0.995605005073453,0.994879715597746, +00:57:49,1,1,1,0.999264932568279,0.998530957574336,0.997797881074139,0.997065732814705,0.996334784775995,0.995605764663508,0.994880600600362, +00:57:50,1,1,1,0.99926505952903,0.998531211332846,0.997798261505044,0.997066239787149,0.996335418107198,0.995606524035553,0.994881485348914, +00:57:51,1,1,1,0.999265186453422,0.998531465018663,0.99779864182693,0.997066746614255,0.996336051256775,0.995607283189757,0.994882369843599, +00:57:52,1,1,1,0.999265313341485,0.998531718631843,0.99779902203988,0.997067253296138,0.996336684224867,0.995608042126292,0.994883254084619, +00:57:53,1,1,1,0.999265440193247,0.998531972172443,0.997799402143982,0.997067759832911,0.996337317011617,0.995608800845328,0.994884138072171, +00:57:54,1,1,1,0.999265567008736,0.998532225640522,0.997799782139319,0.997068266224688,0.996337949617166,0.995609559347035,0.994885021806453, +00:57:55,1,1,1,0.99926569378798,0.998532479036134,0.997800162025977,0.997068772471582,0.996338582041658,0.995610317631585,0.994885905287666, +00:57:56,1,1,1,0.999265820531008,0.998532732359337,0.997800541804042,0.997069278573707,0.996339214285233,0.995611075699147,0.994886788516005, +00:57:57,1,1,1,0.999265947237848,0.998532985610188,0.997800921473597,0.997069784531175,0.996339846348034,0.99561183354989,0.99488767149167, +00:57:58,1,1,1,0.999266073908528,0.998533238788743,0.997801301034728,0.997070290344101,0.9963404782302,0.995612591183984,0.994888554214858, +00:57:59,1,1,1,0.999266200543077,0.998533491895058,0.997801680487519,0.997070796012596,0.996341109931874,0.995613348601599,0.994889436685766, +00:58:00,1,1,1,0.999266327141523,0.998533744929189,0.997802059832055,0.997071301536773,0.996341741453196,0.995614105802903,0.994890318904591, +00:58:01,1,1,1,0.999266453703894,0.998533997891194,0.99780243906842,0.997071806916745,0.996342372794307,0.995614862788065,0.99489120087153, +00:58:02,1,1,1,0.999266580230217,0.998534250781128,0.997802818196699,0.997072312152625,0.996343003955348,0.995615619557255,0.994892082586779, +00:58:03,1,1,1,0.999266706720522,0.998534503599048,0.997803197216976,0.997072817244525,0.996343634936459,0.995616376110639,0.994892964050536, +00:58:04,1,1,1,0.999266833174836,0.998534756345009,0.997803576129336,0.997073322192558,0.99634426573778,0.995617132448388,0.994893845262996, +00:58:05,1,1,1,0.999266959593187,0.998535009019068,0.997803954933861,0.997073826996834,0.996344896359451,0.995617888570667,0.994894726224354, +00:58:06,1,1,1,0.999267085975604,0.99853526162128,0.997804333630636,0.997074331657466,0.996345526801613,0.995618644477647,0.994895606934807, +00:58:07,1,1,1,0.999267212322113,0.998535514151702,0.997804712219746,0.997074836174566,0.996346157064405,0.995619400169494,0.99489648739455, +00:58:08,1,1,1,0.999267338632744,0.998535766610389,0.997805090701273,0.997075340548246,0.996346787147967,0.995620155646374,0.994897367603777, +00:58:09,1,1,1,0.999267464907523,0.998536018997397,0.997805469075301,0.997075844778617,0.996347417052437,0.995620910908457,0.994898247562684, +00:58:10,1,1,1,0.99926759114648,0.998536271312781,0.997805847341914,0.99707634886579,0.996348046777955,0.995621665955908,0.994899127271466, +00:58:11,1,1,1,0.99926771734964,0.998536523556598,0.997806225501195,0.997076852809876,0.99634867632466,0.995622420788894,0.994900006730316, +00:58:12,1,1,1,0.999267843517034,0.998536775728903,0.997806603553227,0.997077356610987,0.996349305692692,0.995623175407582,0.994900885939428, +00:58:13,1,1,1,0.999267969648687,0.998537027829751,0.997806981498094,0.997077860269233,0.996349934882187,0.995623929812139,0.994901764898998, +00:58:14,1,1,1,0.999268095744628,0.998537279859197,0.997807359335879,0.997078363784726,0.996350563893286,0.995624684002729,0.994902643609217, +00:58:15,1,1,1,0.999268221804884,0.998537531817297,0.997807737066664,0.997078867157576,0.996351192726126,0.99562543797952,0.99490352207028, +00:58:16,1,1,1,0.999268347829483,0.998537783704107,0.997808114690533,0.997079370387893,0.996351821380845,0.995626191742676,0.99490440028238, +00:58:17,1,1,1,0.999268473818453,0.99853803551968,0.997808492207568,0.997079873475787,0.996352449857581,0.995626945292364,0.994905278245709, +00:58:18,1,1,1,0.999268599771821,0.998538287264074,0.997808869617852,0.99708037642137,0.996353078156473,0.995627698628748,0.994906155960461, +00:58:19,1,1,1,0.999268725689615,0.998538538937341,0.997809246921468,0.997080879224751,0.996353706277657,0.995628451751994,0.994907033426826, +00:58:20,1,1,1,0.999268851571862,0.998538790539539,0.997809624118497,0.997081381886039,0.996354334221271,0.995629204662266,0.994907910644999, +00:58:21,1,1,1,0.99926897741859,0.99853904207072,0.997810001209023,0.997081884405346,0.996354961987453,0.99562995735973,0.99490878761517, +00:58:22,1,1,1,0.999269103229826,0.998539293530941,0.997810378193127,0.99708238678278,0.996355589576339,0.995630709844549,0.994909664337531, +00:58:23,1,1,1,0.999269229005597,0.998539544920255,0.997810755070892,0.997082889018451,0.996356216988066,0.995631462116888,0.994910540812274, +00:58:24,1,1,1,0.999269354745931,0.998539796238719,0.9978111318424,0.997083391112468,0.996356844222772,0.995632214176911,0.99491141703959, +00:58:25,1,1,1,0.999269480450855,0.998540047486385,0.997811508507732,0.997083893064941,0.996357471280592,0.995632966024781,0.99491229301967, +00:58:26,1,1,1,0.999269606120397,0.998540298663309,0.997811885066971,0.997084394875979,0.996358098161663,0.995633717660662,0.994913168752704, +00:58:27,1,1,1,0.999269731754583,0.998540549769546,0.997812261520198,0.99708489654569,0.996358724866121,0.995634469084718,0.994914044238882, +00:58:28,1,1,1,0.999269857353441,0.998540800805149,0.997812637867495,0.997085398074184,0.996359351394102,0.995635220297112,0.994914919478397, +00:58:29,1,1,1,0.999269982916998,0.998541051770173,0.997813014108944,0.997085899461569,0.996359977745743,0.995635971298007,0.994915794471436, +00:58:30,1,1,1,0.999270108445281,0.998541302664673,0.997813390244625,0.997086400707954,0.996360603921178,0.995636722087566,0.994916669218189, +00:58:31,1,1,1,0.999270233938318,0.998541553488702,0.997813766274619,0.997086901813447,0.996361229920544,0.99563747266595,0.994917543718847, +00:58:32,1,1,1,0.999270359396135,0.998541804242315,0.99781414219901,0.997087402778157,0.996361855743975,0.995638223033323,0.994918417973599, +00:58:33,1,1,1,0.999270484818759,0.998542054925565,0.997814518017877,0.997087903602191,0.996362481391607,0.995638973189847,0.994919291982634, +00:58:34,1,1,1,0.999270610206217,0.998542305538507,0.997814893731301,0.997088404285658,0.996363106863576,0.995639723135684,0.994920165746139, +00:58:35,1,1,1,0.999270735558538,0.998542556081195,0.997815269339363,0.997088904828666,0.996363732160015,0.995640472870995,0.994921039264305, +00:58:36,1,1,1,0.999270860875746,0.998542806553683,0.997815644842145,0.997089405231322,0.996364357281059,0.995641222395941,0.994921912537318, +00:58:37,1,1,1,0.999270986157869,0.998543056956024,0.997816020239726,0.997089905493733,0.996364982226843,0.995641971710686,0.994922785565368, +00:58:38,1,1,1,0.999271111404935,0.998543307288271,0.997816395532188,0.997090405616008,0.996365606997501,0.995642720815388,0.994923658348642, +00:58:39,1,1,1,0.999271236616969,0.99854355755048,0.99781677071961,0.997090905598254,0.996366231593168,0.99564346971021,0.994924530887327, +00:58:40,1,1,1,0.999271361794,0.998543807742703,0.997817145802074,0.997091405440578,0.996366856013976,0.995644218395312,0.994925403181612, +00:58:41,1,1,1,0.999271486936052,0.998544057864993,0.99781752077966,0.997091905143086,0.996367480260062,0.995644966870855,0.994926275231682, +00:58:42,1,1,1,0.999271612043154,0.998544307917405,0.997817895652447,0.997092404705887,0.996368104331557,0.995645715136999,0.994927147037726, +00:58:43,1,1,1,0.999271737115332,0.998544557899992,0.997818270420516,0.997092904129086,0.996368728228595,0.995646463193904,0.994928018599929, +00:58:44,1,1,1,0.999271862152613,0.998544807812807,0.997818645083947,0.997093403412791,0.99636935195131,0.99564721104173,0.994928889918478, +00:58:45,1,1,1,0.999271987155022,0.998545057655903,0.997819019642819,0.997093902557107,0.996369975499835,0.995647958680637,0.994929760993559, +00:58:46,1,1,1,0.999272112122588,0.998545307429333,0.997819394097214,0.997094401562142,0.996370598874302,0.995648706110784,0.994930631825359, +00:58:47,1,1,1,0.999272237055336,0.998545557133151,0.997819768447209,0.997094900428001,0.996371222074845,0.995649453332331,0.994931502414062, +00:58:48,1,1,1,0.999272361953292,0.99854580676741,0.997820142692885,0.99709539915479,0.996371845101597,0.995650200345437,0.994932372759854, +00:58:49,1,1,1,0.999272486816485,0.998546056332162,0.997820516834321,0.997095897742617,0.996372467954689,0.99565094715026,0.994933242862921, +00:58:50,1,1,1,0.999272611644939,0.998546305827461,0.997820890871598,0.997096396191585,0.996373090634254,0.99565169374696,0.994934112723447, +00:58:51,1,1,1,0.999272736438681,0.998546555253359,0.997821264804793,0.997096894501802,0.996373713140424,0.995652440135695,0.994934982341618, +00:58:52,1,1,1,0.999272861197738,0.99854680460991,0.997821638633986,0.997097392673373,0.996374335473331,0.995653186316623,0.994935851717618, +00:58:53,1,1,1,0.999272985922136,0.998547053897165,0.997822012359256,0.997097890706403,0.996374957633108,0.995653932289902,0.99493672085163, +00:58:54,1,1,1,0.999273110611902,0.998547303115178,0.997822385980683,0.997098388600998,0.996375579619885,0.995654678055691,0.99493758974384, +00:58:55,1,1,1,0.999273235267061,0.998547552264002,0.997822759498344,0.997098886357262,0.996376201433794,0.995655423614146,0.994938458394431, +00:58:56,1,1,1,0.99927335988764,0.998547801343688,0.99782313291232,0.997099383975301,0.996376823074967,0.995656168965427,0.994939326803586, +00:58:57,1,1,1,0.999273484473666,0.998548050354289,0.997823506222688,0.99709988145522,0.996377444543534,0.995656914109689,0.99494019497149, +00:58:58,1,1,1,0.999273609025164,0.998548299295857,0.997823879429528,0.997100378797123,0.996378065839626,0.99565765904709,0.994941062898324, +00:58:59,1,1,1,0.99927373354216,0.998548548168446,0.997824252532917,0.997100876001116,0.996378686963375,0.995658403777788,0.994941930584273, +00:59:00,1,1,1,0.999273858024681,0.998548796972107,0.997824625532934,0.997101373067302,0.996379307914911,0.995659148301938,0.994942798029518, +00:59:01,1,1,1,0.999273982472753,0.998549045706892,0.997824998429657,0.997101869995786,0.996379928694365,0.995659892619697,0.994943665234243, +00:59:02,1,1,1,0.999274106886402,0.998549294372853,0.997825371223165,0.997102366786673,0.996380549301866,0.995660636731222,0.994944532198629, +00:59:03,1,1,1,0.999274231265654,0.998549542970043,0.997825743913535,0.997102863440066,0.996381169737546,0.995661380636669,0.994945398922858, +00:59:04,1,1,1,0.999274355610534,0.998549791498514,0.997826116500847,0.997103359956069,0.996381790001533,0.995662124336193,0.994946265407113, +00:59:05,1,1,1,0.99927447992107,0.998550039958317,0.997826488985176,0.997103856334788,0.996382410093959,0.995662867829951,0.994947131651574, +00:59:06,1,1,1,0.999274604197286,0.998550288349504,0.997826861366602,0.997104352576324,0.996383030014952,0.995663611118098,0.994947997656424, +00:59:07,1,1,1,0.999274728439209,0.998550536672128,0.997827233645202,0.997104848680782,0.996383649764641,0.995664354200789,0.994948863421842, +00:59:08,1,1,1,0.999274852646865,0.998550784926239,0.997827605821054,0.997105344648265,0.996384269343158,0.99566509707818,0.994949728948011, +00:59:09,1,1,1,0.999274976820279,0.99855103311189,0.997827977894235,0.997105840478877,0.996384888750629,0.995665839750425,0.99495059423511, +00:59:10,1,1,1,0.999275100959477,0.998551281229132,0.997828349864822,0.99710633617272,0.996385507987186,0.995666582217679,0.99495145928332, +00:59:11,1,1,1,0.999275225064486,0.998551529278016,0.997828721732894,0.997106831729899,0.996386127052956,0.995667324480098,0.994952324092821, +00:59:12,1,1,1,0.99927534913533,0.998551777258595,0.997829093498526,0.997107327150515,0.996386745948068,0.995668066537834,0.994953188663794, +00:59:13,1,1,1,0.999275473172036,0.99855202517092,0.997829465161797,0.997107822434672,0.996387364672651,0.995668808391043,0.994954052996417, +00:59:14,1,1,1,0.999275597174628,0.998552273015041,0.997829836722783,0.997108317582472,0.996387983226832,0.995669550039879,0.994954917090871, +00:59:15,1,1,1,0.999275721143134,0.998552520791011,0.997830208181561,0.997108812594018,0.996388601610742,0.995670291484495,0.994955780947334, +00:59:16,1,1,1,0.999275845077578,0.99855276849888,0.997830579538208,0.997109307469413,0.996389219824506,0.995671032725044,0.994956644565986, +00:59:17,1,1,1,0.999275968977986,0.998553016138699,0.9978309507928,0.997109802208758,0.996389837868254,0.995671773761682,0.994957507947005, +00:59:18,1,1,1,0.999276092844384,0.998553263710521,0.997831321945416,0.997110296812157,0.996390455742112,0.995672514594559,0.994958371090571, +00:59:19,1,1,1,0.999276216676796,0.998553511214395,0.99783169299613,0.99711079127971,0.99639107344621,0.995673255223831,0.994959233996861, +00:59:20,1,1,1,0.999276340475249,0.998553758650372,0.997832063945019,0.99711128561152,0.996391690980673,0.995673995649648,0.994960096666053, +00:59:21,1,1,1,0.999276464239769,0.998554006018504,0.99783243479216,0.997111779807689,0.996392308345629,0.995674735872165,0.994960959098326, +00:59:22,1,1,1,0.999276587970379,0.998554253318842,0.99783280553763,0.997112273868319,0.996392925541206,0.995675475891533,0.994961821293858, +00:59:23,1,1,1,0.999276711667107,0.998554500551436,0.997833176181503,0.99711276779351,0.99639354256753,0.995676215707905,0.994962683252825, +00:59:24,1,1,1,0.999276835329976,0.998554747716336,0.997833546723856,0.997113261583365,0.996394159424728,0.995676955321433,0.994963544975405, +00:59:25,1,1,1,0.999276958959013,0.998554994813595,0.997833917164766,0.997113755237984,0.996394776112926,0.995677694732269,0.994964406461775, +00:59:26,1,1,1,0.999277082554243,0.998555241843261,0.997834287504308,0.997114248757469,0.996395392632252,0.995678433940564,0.994965267712112, +00:59:27,1,1,1,0.999277206115691,0.998555488805386,0.997834657742557,0.997114742141921,0.996396008982831,0.995679172946471,0.994966128726592, +00:59:28,1,1,1,0.999277329643382,0.99855573570002,0.99783502787959,0.997115235391441,0.996396625164789,0.995679911750139,0.994966989505392, +00:59:29,1,1,1,0.999277453137342,0.998555982527213,0.997835397915482,0.99711572850613,0.996397241178253,0.995680650351721,0.994967850048688, +00:59:30,1,1,1,0.999277576597595,0.998556229287016,0.997835767850308,0.997116221486087,0.996397857023349,0.995681388751368,0.994968710356656, +00:59:31,1,1,1,0.999277700024167,0.99855647597948,0.997836137684145,0.997116714331415,0.996398472700201,0.995682126949229,0.994969570429472, +00:59:32,1,1,1,0.999277823417083,0.998556722604653,0.997836507417067,0.997117207042213,0.996399088208936,0.995682864945457,0.994970430267311, +00:59:33,1,1,1,0.999277946776368,0.998556969162587,0.997836877049149,0.997117699618581,0.996399703549679,0.9956836027402,0.994971289870348, +00:59:34,1,1,1,0.999278070102047,0.998557215653332,0.997837246580467,0.99711819206062,0.996400318722555,0.99568434033361,0.994972149238758, +00:59:35,1,1,1,0.999278193394145,0.998557462076936,0.997837616011095,0.99711868436843,0.996400933727689,0.995685077725835,0.994973008372716, +00:59:36,1,1,1,0.999278316652687,0.998557708433452,0.997837985341109,0.997119176542109,0.996401548565205,0.995685814917027,0.994973867272398, +00:59:37,1,1,1,0.999278439877698,0.998557954722927,0.997838354570584,0.99711966858176,0.99640216323523,0.995686551907335,0.994974725937976, +00:59:38,1,1,1,0.999278563069202,0.998558200945413,0.997838723699593,0.997120160487481,0.996402777737887,0.995687288696908,0.994975584369626, +00:59:39,1,1,1,0.999278686227226,0.998558447100959,0.997839092728212,0.997120652259371,0.9964033920733,0.995688025285895,0.994976442567521, +00:59:40,1,1,1,0.999278809351793,0.998558693189614,0.997839461656516,0.99712114389753,0.996404006241595,0.995688761674445,0.994977300531836, +00:59:41,1,1,1,0.999278932442928,0.998558939211428,0.997839830484578,0.997121635402057,0.996404620242894,0.995689497862708,0.994978158262743, +00:59:42,1,1,1,0.999279055500657,0.998559185166452,0.997840199212474,0.997122126773052,0.996405234077323,0.995690233850833,0.994979015760416, +00:59:43,1,1,1,0.999279178525004,0.998559431054734,0.997840567840277,0.997122618010613,0.996405847745004,0.995690969638966,0.994979873025027, +00:59:44,1,1,1,0.999279301515993,0.998559676876323,0.997840936368061,0.99712310911484,0.996406461246062,0.995691705227257,0.994980730056751, +00:59:45,1,1,1,0.99927942447365,0.99855992263127,0.997841304795901,0.99712360008583,0.99640707458062,0.995692440615854,0.99498158685576, +00:59:46,1,1,1,0.999279547397998,0.998560168319623,0.997841673123871,0.997124090923684,0.9964076877488,0.995693175804906,0.994982443422225, +00:59:47,1,1,1,0.999279670289064,0.998560413941432,0.997842041352044,0.997124581628499,0.996408300750728,0.995693910794558,0.994983299756319, +00:59:48,1,1,1,0.999279793146871,0.998560659496746,0.997842409480495,0.997125072200374,0.996408913586524,0.995694645584961,0.994984155858215, +00:59:49,1,1,1,0.999279915971443,0.998560904985614,0.997842777509297,0.997125562639407,0.996409526256313,0.995695380176259,0.994985011728084, +00:59:50,1,1,1,0.999280038762806,0.998561150408085,0.997843145438524,0.997126052945696,0.996410138760217,0.995696114568602,0.994985867366097, +00:59:51,1,1,1,0.999280161520985,0.998561395764208,0.997843513268248,0.997126543119339,0.996410751098359,0.995696848762135,0.994986722772426, +00:59:52,1,1,1,0.999280284246002,0.998561641054033,0.997843880998545,0.997127033160435,0.99641136327086,0.995697582757006,0.994987577947242, +00:59:53,1,1,1,0.999280406937883,0.998561886277608,0.997844248629487,0.99712752306908,0.996411975277844,0.995698316553362,0.994988432890716, +00:59:54,1,1,1,0.999280529596653,0.998562131434981,0.997844616161147,0.997128012845374,0.996412587119432,0.995699050151349,0.994989287603019, +00:59:55,1,1,1,0.999280652222335,0.998562376526203,0.997844983593598,0.997128502489412,0.996413198795747,0.995699783551112,0.994990142084321, +00:59:56,1,1,1,0.999280774814955,0.99856262155132,0.997845350926914,0.997128992001294,0.996413810306909,0.995700516752798,0.994990996334793, +00:59:57,1,1,1,0.999280897374536,0.998562866510383,0.997845718161167,0.997129481381115,0.996414421653041,0.995701249756554,0.994991850354605, +00:59:58,1,1,1,0.999281019901102,0.99856311140344,0.997846085296431,0.997129970628974,0.996415032834264,0.995701982562525,0.994992704143925, +00:59:59,1,1,1,0.999281142394678,0.998563356230538,0.997846452332778,0.997130459744967,0.9964156438507,0.995702715170856,0.994993557702925, diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/CompositionRun.log b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/CompositionRun.log new file mode 100644 index 00000000..e69de29b diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/DbReader.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/DbReader.dll new file mode 100644 index 00000000..f47ec923 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/DbReader.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/DbWriter.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/DbWriter.dll new file mode 100644 index 00000000..9cc3b241 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/DbWriter.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Hargreaves.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Hargreaves.dll new file mode 100644 index 00000000..b21c3e3c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Hargreaves.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Gui.Controls.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Gui.Controls.dll new file mode 100644 index 00000000..7bab0932 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Gui.Controls.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Gui.Core.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Gui.Core.dll new file mode 100644 index 00000000..53def4a2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Gui.Core.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Sdk.Backbone.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Sdk.Backbone.dll new file mode 100644 index 00000000..bcef1ba6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Sdk.Backbone.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Sdk.Buffer.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Sdk.Buffer.dll new file mode 100644 index 00000000..db447ba2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Sdk.Buffer.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Sdk.DevelopmentSupport.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Sdk.DevelopmentSupport.dll new file mode 100644 index 00000000..7ed7434a Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Sdk.DevelopmentSupport.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Sdk.Spatial.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Sdk.Spatial.dll new file mode 100644 index 00000000..f880eb6d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Sdk.Spatial.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Sdk.Wrapper.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Sdk.Wrapper.dll new file mode 100644 index 00000000..ea911a0d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/Oatc.OpenMI.Sdk.Wrapper.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/OpenMI.Standard.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/OpenMI.Standard.dll new file mode 100644 index 00000000..251fa707 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/OpenMI.Standard.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/SMW.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/SMW.dll new file mode 100644 index 00000000..6c5db400 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/SMW.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/SharpMap.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/SharpMap.dll new file mode 100644 index 00000000..094ae9de Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/SharpMap.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/TopModel.dll b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/TopModel.dll new file mode 100644 index 00000000..cb3d66a0 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/bin/TopModel.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/coweeta_ws18_model.opr b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/coweeta_ws18_model.opr new file mode 100644 index 00000000..f02381e2 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/coweeta_ws18_model.opr @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/DbReader.omi b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/DbReader.omi new file mode 100644 index 00000000..cb43fc3e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/DbReader.omi @@ -0,0 +1,6 @@ + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/DbWriter.omi b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/DbWriter.omi new file mode 100644 index 00000000..84a028b7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/DbWriter.omi @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/Pet_Output.csv b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/Pet_Output.csv new file mode 100644 index 00000000..28851d77 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/Pet_Output.csv @@ -0,0 +1,1398 @@ +Simulation Time, PET[mm/day] +01/02/2006: 12:00 AM,0.595879409389289 +01/03/2006: 12:00 AM,0.511890022662306 +01/04/2006: 12:00 AM,0.664605465950461 +01/05/2006: 12:00 AM,0.577669821570334 +01/06/2006: 12:00 AM,0.255841803676358 +01/07/2006: 12:00 AM,0.42148065877197 +01/08/2006: 12:00 AM,0.791559573585588 +01/09/2006: 12:00 AM,0.815437424597708 +01/10/2006: 12:00 AM,0.679005262815033 +01/11/2006: 12:00 AM,0.613448616859926 +01/12/2006: 12:00 AM,0.786243463425015 +01/13/2006: 12:00 AM,0.67766844870283 +01/14/2006: 12:00 AM,0.282159803383197 +01/15/2006: 12:00 AM,0.584380787680964 +01/16/2006: 12:00 AM,0.570332511465839 +01/17/2006: 12:00 AM,0.573920051125142 +01/18/2006: 12:00 AM,0.436011941236987 +01/19/2006: 12:00 AM,0.744493262153162 +01/20/2006: 12:00 AM,0.691166558333934 +01/21/2006: 12:00 AM,0.650255932381124 +01/22/2006: 12:00 AM,0.294345540487336 +01/23/2006: 12:00 AM,0.564125127189799 +01/24/2006: 12:00 AM,0.658521676964867 +01/25/2006: 12:00 AM,0.465515091989184 +01/26/2006: 12:00 AM,0.688323365556655 +01/27/2006: 12:00 AM,0.653806346691659 +01/28/2006: 12:00 AM,0.776619719195935 +01/29/2006: 12:00 AM,0.865978544142128 +01/30/2006: 12:00 AM,0.794651501048095 +01/31/2006: 12:00 AM,0.638416852150328 +02/01/2006: 12:00 AM,0.67839277689672 +02/02/2006: 12:00 AM,0.667267972203124 +02/03/2006: 12:00 AM,0.923663469760274 +02/04/2006: 12:00 AM,0.426884533710859 +02/05/2006: 12:00 AM,0.426443611431117 +02/06/2006: 12:00 AM,0.438158784261278 +02/07/2006: 12:00 AM,0.656503726790099 +02/08/2006: 12:00 AM,0.562252657099125 +02/09/2006: 12:00 AM,0.414060198931605 +02/10/2006: 12:00 AM,0.659572315146216 +02/11/2006: 12:00 AM,0.41041547954434 +02/12/2006: 12:00 AM,0.314065567748753 +02/13/2006: 12:00 AM,0.431407918884461 +02/14/2006: 12:00 AM,0.860676438590361 +02/15/2006: 12:00 AM,0.906866586372476 +02/16/2006: 12:00 AM,1.01586010254328 +02/17/2006: 12:00 AM,1.0138468298462 +02/18/2006: 12:00 AM,0.24111412077975 +02/19/2006: 12:00 AM,0.372822706410008 +02/20/2006: 12:00 AM,0.880162464543337 +02/21/2006: 12:00 AM,1.01088708719672 +02/22/2006: 12:00 AM,0.994827957564054 +02/23/2006: 12:00 AM,0.664947434149819 +02/24/2006: 12:00 AM,0.967509441349643 +02/25/2006: 12:00 AM,0.714369372048425 +02/26/2006: 12:00 AM,0.508099214459003 +02/27/2006: 12:00 AM,0.888562942696767 +02/28/2006: 12:00 AM,1.19851652214977 +03/01/2006: 12:00 AM,1.3310084956607 +03/02/2006: 12:00 AM,1.20370920072544 +03/03/2006: 12:00 AM,0.842420912025647 +03/04/2006: 12:00 AM,1.02929605836158 +03/05/2006: 12:00 AM,1.29089740284515 +03/06/2006: 12:00 AM,1.15516039600797 +03/07/2006: 12:00 AM,1.08618510541793 +03/08/2006: 12:00 AM,1.25147331316107 +03/09/2006: 12:00 AM,1.05278452385212 +03/10/2006: 12:00 AM,1.4700686355086 +03/11/2006: 12:00 AM,1.42565227646289 +03/12/2006: 12:00 AM,1.53588275667492 +03/13/2006: 12:00 AM,1.35482974975973 +03/14/2006: 12:00 AM,0.842582264122196 +03/15/2006: 12:00 AM,1.04807096186991 +03/16/2006: 12:00 AM,1.29157277107888 +03/17/2006: 12:00 AM,1.31614534415783 +03/18/2006: 12:00 AM,1.22200308532503 +03/19/2006: 12:00 AM,1.0818531234557 +03/20/2006: 12:00 AM,0.512343536618653 +03/21/2006: 12:00 AM,1.26518751380013 +03/22/2006: 12:00 AM,1.13641845131631 +03/23/2006: 12:00 AM,0.912843745457975 +03/24/2006: 12:00 AM,0.641772574009739 +03/25/2006: 12:00 AM,0.631321942084637 +03/26/2006: 12:00 AM,0.951180028315391 +03/27/2006: 12:00 AM,1.29657111021299 +03/28/2006: 12:00 AM,1.24247798649732 +03/29/2006: 12:00 AM,1.64466725035709 +03/30/2006: 12:00 AM,1.53646798943178 +03/31/2006: 12:00 AM,1.43352567299492 +04/01/2006: 12:00 AM,1.66795199511635 +04/02/2006: 12:00 AM,1.74925129619199 +04/03/2006: 12:00 AM,1.65764754600476 +04/04/2006: 12:00 AM,1.52557975204734 +04/05/2006: 12:00 AM,1.67073069382677 +04/06/2006: 12:00 AM,1.76149475711934 +04/07/2006: 12:00 AM,2.04654435051144 +04/08/2006: 12:00 AM,1.20330752365352 +04/09/2006: 12:00 AM,1.64790081961602 +04/10/2006: 12:00 AM,1.77404689992891 +04/11/2006: 12:00 AM,1.89360123094269 +04/12/2006: 12:00 AM,1.91118193041788 +04/13/2006: 12:00 AM,2.12101332578973 +04/14/2006: 12:00 AM,2.34821905541832 +04/15/2006: 12:00 AM,2.11702950960051 +04/16/2006: 12:00 AM,2.43073362989786 +04/17/2006: 12:00 AM,2.10405348398569 +04/18/2006: 12:00 AM,1.68003848458372 +04/19/2006: 12:00 AM,1.92306568344109 +04/20/2006: 12:00 AM,1.93473088150344 +04/21/2006: 12:00 AM,1.36363547496194 +04/22/2006: 12:00 AM,1.62691769720075 +04/23/2006: 12:00 AM,2.14851359718608 +04/24/2006: 12:00 AM,2.31491452200807 +04/25/2006: 12:00 AM,2.28773421563196 +04/26/2006: 12:00 AM,1.24972017125562 +04/27/2006: 12:00 AM,1.60241645032904 +04/28/2006: 12:00 AM,2.07590919666822 +04/29/2006: 12:00 AM,1.37221243487774 +04/30/2006: 12:00 AM,1.09048641743353 +05/01/2006: 12:00 AM,1.81849448094615 +05/02/2006: 12:00 AM,2.07029643160302 +05/03/2006: 12:00 AM,2.25239363389814 +05/04/2006: 12:00 AM,2.24048155998867 +05/05/2006: 12:00 AM,1.47660073548086 +05/06/2006: 12:00 AM,2.04814479262082 +05/07/2006: 12:00 AM,0.901501668466128 +05/08/2006: 12:00 AM,1.48396901047548 +05/09/2006: 12:00 AM,1.61647926813427 +05/10/2006: 12:00 AM,1.8540328511079 +05/11/2006: 12:00 AM,1.37436304667625 +05/12/2006: 12:00 AM,1.62179959590426 +05/13/2006: 12:00 AM,1.98956010982604 +05/14/2006: 12:00 AM,1.52225459210672 +05/15/2006: 12:00 AM,1.64113373877097 +05/16/2006: 12:00 AM,1.53629853951451 +05/17/2006: 12:00 AM,1.87860811623904 +05/18/2006: 12:00 AM,2.06430097409813 +05/19/2006: 12:00 AM,2.04772827766484 +05/20/2006: 12:00 AM,2.29747576353014 +05/21/2006: 12:00 AM,1.99551304016468 +05/22/2006: 12:00 AM,1.84027328083887 +05/23/2006: 12:00 AM,2.46521634679022 +05/24/2006: 12:00 AM,2.63747013422622 +05/25/2006: 12:00 AM,2.23681302801023 +05/26/2006: 12:00 AM,2.20740201278036 +05/27/2006: 12:00 AM,2.36864358106232 +05/28/2006: 12:00 AM,2.69836920323658 +05/29/2006: 12:00 AM,2.60967266577689 +05/30/2006: 12:00 AM,2.68700249467355 +05/31/2006: 12:00 AM,2.59692915366554 +06/01/2006: 12:00 AM,2.41751413922204 +06/02/2006: 12:00 AM,2.09546988941441 +06/03/2006: 12:00 AM,1.79048676148369 +06/04/2006: 12:00 AM,2.28776088226916 +06/05/2006: 12:00 AM,1.93475468488491 +06/06/2006: 12:00 AM,2.41380082655692 +06/07/2006: 12:00 AM,2.49740232927149 +06/08/2006: 12:00 AM,2.50233573919382 +06/09/2006: 12:00 AM,2.56028853697695 +06/10/2006: 12:00 AM,2.85594563667476 +06/11/2006: 12:00 AM,2.64407727774855 +06/12/2006: 12:00 AM,2.40845851958691 +06/13/2006: 12:00 AM,1.68466771122258 +06/14/2006: 12:00 AM,2.48119228336427 +06/15/2006: 12:00 AM,2.58850414764015 +06/16/2006: 12:00 AM,2.51280287299788 +06/17/2006: 12:00 AM,2.38564493214945 +06/18/2006: 12:00 AM,2.37087289310325 +06/19/2006: 12:00 AM,2.57505795986773 +06/20/2006: 12:00 AM,2.76986461085173 +06/21/2006: 12:00 AM,3.03497454479837 +06/22/2006: 12:00 AM,2.9520054669298 +06/23/2006: 12:00 AM,2.64200343449073 +06/24/2006: 12:00 AM,2.3092562243864 +06/25/2006: 12:00 AM,1.48310624549359 +06/26/2006: 12:00 AM,1.14959606429218 +06/27/2006: 12:00 AM,2.3395281931846 +06/28/2006: 12:00 AM,2.58638886991986 +06/29/2006: 12:00 AM,2.62780124930183 +06/30/2006: 12:00 AM,2.51910858669879 +07/01/2006: 12:00 AM,2.76004862543082 +07/02/2006: 12:00 AM,2.53967828423503 +07/03/2006: 12:00 AM,2.63800621021774 +07/04/2006: 12:00 AM,2.71012663074818 +07/05/2006: 12:00 AM,2.16568055029315 +07/06/2006: 12:00 AM,2.11857080229529 +07/07/2006: 12:00 AM,2.04759260943575 +07/08/2006: 12:00 AM,2.08993647516577 +07/09/2006: 12:00 AM,2.09140473622282 +07/10/2006: 12:00 AM,2.43961102252417 +07/11/2006: 12:00 AM,2.34485860312668 +07/12/2006: 12:00 AM,2.44575892082329 +07/13/2006: 12:00 AM,2.56696427095055 +07/14/2006: 12:00 AM,2.25589082007613 +07/15/2006: 12:00 AM,2.45613565703883 +07/16/2006: 12:00 AM,2.49820860623752 +07/17/2006: 12:00 AM,2.65926518525693 +07/18/2006: 12:00 AM,2.80397496609748 +07/19/2006: 12:00 AM,2.7040991178262 +07/20/2006: 12:00 AM,2.50137739230343 +07/21/2006: 12:00 AM,2.51010561796665 +07/22/2006: 12:00 AM,2.32609703055764 +07/23/2006: 12:00 AM,1.93442515881891 +07/24/2006: 12:00 AM,2.10321671486127 +07/25/2006: 12:00 AM,2.02109684457142 +07/26/2006: 12:00 AM,2.56519020206793 +07/27/2006: 12:00 AM,2.53170398758004 +07/28/2006: 12:00 AM,2.45796252478725 +07/29/2006: 12:00 AM,1.9266970893266 +07/30/2006: 12:00 AM,2.51268841958714 +07/31/2006: 12:00 AM,2.67056758939184 +08/01/2006: 12:00 AM,2.71597028058584 +08/02/2006: 12:00 AM,2.46014727339051 +08/03/2006: 12:00 AM,2.56702110579169 +08/04/2006: 12:00 AM,2.69253185598991 +08/05/2006: 12:00 AM,2.18436839091735 +08/06/2006: 12:00 AM,2.22255048604534 +08/07/2006: 12:00 AM,2.43272230694151 +08/08/2006: 12:00 AM,2.70510137428064 +08/09/2006: 12:00 AM,2.49555972738614 +08/10/2006: 12:00 AM,2.46601581901074 +08/11/2006: 12:00 AM,1.71479924041425 +08/12/2006: 12:00 AM,0.930650220778948 +08/13/2006: 12:00 AM,2.0092948067251 +08/14/2006: 12:00 AM,2.18723124426199 +08/15/2006: 12:00 AM,2.11772591003565 +08/16/2006: 12:00 AM,1.97330542264674 +08/17/2006: 12:00 AM,2.06484162163322 +08/18/2006: 12:00 AM,2.26439016099088 +08/19/2006: 12:00 AM,2.07552431809579 +08/20/2006: 12:00 AM,1.65247726278151 +08/21/2006: 12:00 AM,1.93822240658535 +08/22/2006: 12:00 AM,2.05115822583589 +08/23/2006: 12:00 AM,1.83449379492081 +08/24/2006: 12:00 AM,2.03241772709257 +08/25/2006: 12:00 AM,1.99712395661739 +08/26/2006: 12:00 AM,2.23869529993857 +08/27/2006: 12:00 AM,2.26972485511587 +08/28/2006: 12:00 AM,1.99797424633938 +08/29/2006: 12:00 AM,2.1869185946079 +08/30/2006: 12:00 AM,2.11088615849073 +08/31/2006: 12:00 AM,0.950925185492851 +09/01/2006: 12:00 AM,1.56130617857336 +09/02/2006: 12:00 AM,1.18636413559955 +09/03/2006: 12:00 AM,1.82270001732682 +09/04/2006: 12:00 AM,1.49208513844329 +09/05/2006: 12:00 AM,1.0931729292985 +09/06/2006: 12:00 AM,1.73994510153626 +09/07/2006: 12:00 AM,1.5514221205735 +09/08/2006: 12:00 AM,1.59135495899139 +09/09/2006: 12:00 AM,1.73136181297636 +09/10/2006: 12:00 AM,1.88160839463366 +09/11/2006: 12:00 AM,1.45721050091402 +09/12/2006: 12:00 AM,1.02601995146229 +09/13/2006: 12:00 AM,0.922102947731386 +09/14/2006: 12:00 AM,1.47449825860304 +09/15/2006: 12:00 AM,1.72518479866584 +09/16/2006: 12:00 AM,1.72798246691018 +09/17/2006: 12:00 AM,1.68184920482789 +09/18/2006: 12:00 AM,1.81101509857691 +09/19/2006: 12:00 AM,1.40726487121389 +09/20/2006: 12:00 AM,1.48259721068169 +09/21/2006: 12:00 AM,1.46649576172562 +09/22/2006: 12:00 AM,1.1285287594839 +09/23/2006: 12:00 AM,1.44938015187482 +09/24/2006: 12:00 AM,1.23392430096441 +09/25/2006: 12:00 AM,1.28814375909179 +09/26/2006: 12:00 AM,1.32727269851084 +09/27/2006: 12:00 AM,1.38095947120647 +09/28/2006: 12:00 AM,1.39598299369598 +09/29/2006: 12:00 AM,1.19339705480731 +09/30/2006: 12:00 AM,1.44198449123667 +10/01/2006: 12:00 AM,1.52860669022361 +10/02/2006: 12:00 AM,1.53853272564206 +10/03/2006: 12:00 AM,1.56570297745479 +10/04/2006: 12:00 AM,1.5289396401025 +10/05/2006: 12:00 AM,1.57532889130277 +10/06/2006: 12:00 AM,1.17503162263837 +10/07/2006: 12:00 AM,1.31223278831608 +10/08/2006: 12:00 AM,1.14427699987687 +10/09/2006: 12:00 AM,1.42013145496753 +10/10/2006: 12:00 AM,1.46740590051019 +10/11/2006: 12:00 AM,1.09050707074363 +10/12/2006: 12:00 AM,1.04852981380575 +10/13/2006: 12:00 AM,0.963295928104986 +10/14/2006: 12:00 AM,1.10565759836766 +10/15/2006: 12:00 AM,1.26398291919515 +10/16/2006: 12:00 AM,0.819566792120529 +10/17/2006: 12:00 AM,0.818815001715051 +10/18/2006: 12:00 AM,1.24560765011738 +10/19/2006: 12:00 AM,1.00014485933125 +10/20/2006: 12:00 AM,0.63466550935751 +10/21/2006: 12:00 AM,1.09092629390404 +10/22/2006: 12:00 AM,0.943472743101638 +10/23/2006: 12:00 AM,0.563467582590166 +10/24/2006: 12:00 AM,0.631132550863525 +10/25/2006: 12:00 AM,0.935144134432019 +10/26/2006: 12:00 AM,0.955545654852321 +10/27/2006: 12:00 AM,0.628086441866991 +10/28/2006: 12:00 AM,0.604939380151331 +10/29/2006: 12:00 AM,1.06301870290077 +10/30/2006: 12:00 AM,1.21838313056082 +10/31/2006: 12:00 AM,0.979587129697057 +11/01/2006: 12:00 AM,1.09994383613422 +11/02/2006: 12:00 AM,0.666917075136355 +11/03/2006: 12:00 AM,0.664174594362801 +11/04/2006: 12:00 AM,0.754128108648011 +11/05/2006: 12:00 AM,0.852355321927833 +11/06/2006: 12:00 AM,0.784543782114183 +11/07/2006: 12:00 AM,0.683322457969376 +11/08/2006: 12:00 AM,0.739129946120512 +11/09/2006: 12:00 AM,1.09394192712769 +11/10/2006: 12:00 AM,1.21482339387855 +11/11/2006: 12:00 AM,0.915900855208104 +11/12/2006: 12:00 AM,0.700097008685892 +11/13/2006: 12:00 AM,0.986215294781085 +11/14/2006: 12:00 AM,0.948154466911221 +11/15/2006: 12:00 AM,0.623134338395868 +11/16/2006: 12:00 AM,0 +11/17/2006: 12:00 AM,0.560320359741539 +11/18/2006: 12:00 AM,0.760396351929415 +11/19/2006: 12:00 AM,0.537776760484921 +11/20/2006: 12:00 AM,0.433543064108764 +11/21/2006: 12:00 AM,0.568700785315147 +11/22/2006: 12:00 AM,0.814875678330379 +11/23/2006: 12:00 AM,0.909621538594913 +11/24/2006: 12:00 AM,0.908843080392959 +11/25/2006: 12:00 AM,0.922144797763549 +11/26/2006: 12:00 AM,0.897737323291488 +11/27/2006: 12:00 AM,0.87423730918338 +11/28/2006: 12:00 AM,0.663262388146908 +11/29/2006: 12:00 AM,0.660879555968434 +11/30/2006: 12:00 AM,0.547666054490163 +12/01/2006: 12:00 AM,0.401471686127754 +12/02/2006: 12:00 AM,0.668548039691136 +12/03/2006: 12:00 AM,0.64192477923637 +12/04/2006: 12:00 AM,0.459025201237166 +12/05/2006: 12:00 AM,0.578447012915794 +12/06/2006: 12:00 AM,0.621004374138832 +12/07/2006: 12:00 AM,0.472415455889889 +12/08/2006: 12:00 AM,0.387238652314909 +12/09/2006: 12:00 AM,0.502071694464211 +12/10/2006: 12:00 AM,0.568434708302798 +12/11/2006: 12:00 AM,0.748637198401855 +12/12/2006: 12:00 AM,0.669671804647622 +12/13/2006: 12:00 AM,0.625287451432247 +12/14/2006: 12:00 AM,0.62900097080706 +12/15/2006: 12:00 AM,0.757238235684453 +12/16/2006: 12:00 AM,0.848072910565826 +12/17/2006: 12:00 AM,0.811273187694337 +12/18/2006: 12:00 AM,0.810509097257843 +12/19/2006: 12:00 AM,0.750685701651316 +12/20/2006: 12:00 AM,0.501802852707481 +12/21/2006: 12:00 AM,0.464561883577172 +12/22/2006: 12:00 AM,0.405351418052326 +12/23/2006: 12:00 AM,0.555412483962505 +12/24/2006: 12:00 AM,0.68623049118484 +12/25/2006: 12:00 AM,0.529118809337406 +12/26/2006: 12:00 AM,0.0977498743247513 +12/27/2006: 12:00 AM,0.521259609764143 +12/28/2006: 12:00 AM,0.588493124261906 +12/29/2006: 12:00 AM,0.674640080031692 +12/30/2006: 12:00 AM,0.587354676997379 +12/31/2006: 12:00 AM,0.564959557574769 +01/01/2007: 12:00 AM,0.588847023280066 +01/02/2007: 12:00 AM,0.735225179979443 +01/03/2007: 12:00 AM,0.64038882333034 +01/04/2007: 12:00 AM,0.753223404129518 +01/05/2007: 12:00 AM,0.684191246925577 +01/06/2007: 12:00 AM,0.78907990214814 +01/07/2007: 12:00 AM,0.591976420555998 +01/08/2007: 12:00 AM,0.340281079811582 +01/09/2007: 12:00 AM,0.355316656849086 +01/10/2007: 12:00 AM,0.427410517497618 +01/11/2007: 12:00 AM,0.493331280840878 +01/12/2007: 12:00 AM,0.541272322319617 +01/13/2007: 12:00 AM,0.725987444511147 +01/14/2007: 12:00 AM,0.770862309864947 +01/15/2007: 12:00 AM,0.608430414808349 +01/16/2007: 12:00 AM,0.134067695624298 +01/17/2007: 12:00 AM,0.437591756616995 +01/18/2007: 12:00 AM,0.326667545165357 +01/19/2007: 12:00 AM,0.475502496275705 +01/20/2007: 12:00 AM,0.59980429893866 +01/21/2007: 12:00 AM,0.366219319369823 +01/22/2007: 12:00 AM,0.452396183696026 +01/23/2007: 12:00 AM,0.420038453366975 +01/24/2007: 12:00 AM,0.527107735089186 +01/25/2007: 12:00 AM,0.413164789151248 +01/26/2007: 12:00 AM,0.638149114042471 +01/27/2007: 12:00 AM,0.773600315319596 +01/28/2007: 12:00 AM,0 +01/29/2007: 12:00 AM,0.403699116514699 +01/30/2007: 12:00 AM,0.539883948190348 +01/31/2007: 12:00 AM,0.479751919428107 +02/01/2007: 12:00 AM,0.364306428210237 +02/02/2007: 12:00 AM,0.548727602039997 +02/03/2007: 12:00 AM,0.404176386873771 +02/04/2007: 12:00 AM,0.376012829799574 +02/05/2007: 12:00 AM,0.411615287575045 +02/06/2007: 12:00 AM,0.635049585350213 +02/07/2007: 12:00 AM,0.865031031528748 +02/08/2007: 12:00 AM,0.675155725081496 +02/09/2007: 12:00 AM,0.487891166632782 +02/10/2007: 12:00 AM,0.579278327558798 +02/11/2007: 12:00 AM,0.791218061563041 +02/12/2007: 12:00 AM,1.02211589534956 +02/13/2007: 12:00 AM,0.736536003489749 +02/14/2007: 12:00 AM,0.444556886274915 +02/15/2007: 12:00 AM,0.52514342557329 +02/16/2007: 12:00 AM,0.492881600965663 +02/17/2007: 12:00 AM,0.405350716904537 +02/18/2007: 12:00 AM,0.485716605461604 +02/19/2007: 12:00 AM,0.898267835243052 +02/20/2007: 12:00 AM,0.929766282639554 +02/21/2007: 12:00 AM,0.977610859136775 +02/22/2007: 12:00 AM,1.04768196059043 +02/23/2007: 12:00 AM,1.00375979700715 +02/24/2007: 12:00 AM,0.882592771487319 +02/25/2007: 12:00 AM,0.882110941057989 +02/26/2007: 12:00 AM,1.04605646088264 +02/27/2007: 12:00 AM,1.16207535836967 +02/28/2007: 12:00 AM,1.26402130587882 +03/01/2007: 12:00 AM,0.874989999253315 +03/02/2007: 12:00 AM,0.966441330390142 +03/03/2007: 12:00 AM,0.875755714836109 +03/04/2007: 12:00 AM,0.682416378316095 +03/05/2007: 12:00 AM,1.06775374113739 +03/06/2007: 12:00 AM,1.16081706256003 +03/07/2007: 12:00 AM,1.26209412612701 +03/08/2007: 12:00 AM,1.41092230756156 +03/09/2007: 12:00 AM,1.08840776788574 +03/10/2007: 12:00 AM,1.24487398732725 +03/11/2007: 12:00 AM,1.38628598130376 +03/12/2007: 12:00 AM,1.55300790309294 +03/13/2007: 12:00 AM,1.65590523929811 +03/14/2007: 12:00 AM,1.56317644385465 +03/15/2007: 12:00 AM,1.27634546390367 +03/16/2007: 12:00 AM,0.601632629950474 +03/17/2007: 12:00 AM,0.660360145650585 +03/18/2007: 12:00 AM,1.0024721329332 +03/19/2007: 12:00 AM,1.41892710191466 +03/20/2007: 12:00 AM,1.5714454966628 +03/21/2007: 12:00 AM,1.43559454893632 +03/22/2007: 12:00 AM,1.37203431817931 +03/23/2007: 12:00 AM,1.86987317474225 +03/24/2007: 12:00 AM,1.84418109621431 +03/25/2007: 12:00 AM,2.06621075688979 +03/26/2007: 12:00 AM,1.69166617197537 +03/27/2007: 12:00 AM,1.86181028211795 +03/28/2007: 12:00 AM,1.78416887155623 +03/29/2007: 12:00 AM,1.24056308263533 +03/30/2007: 12:00 AM,1.33716855587274 +03/31/2007: 12:00 AM,1.71818021193986 +04/01/2007: 12:00 AM,0.69794164410421 +04/02/2007: 12:00 AM,1.82335360999996 +04/03/2007: 12:00 AM,2.01308320436355 +04/04/2007: 12:00 AM,1.54859651260686 +04/05/2007: 12:00 AM,1.17289310732904 +04/06/2007: 12:00 AM,1.15101163598665 +04/07/2007: 12:00 AM,0.660305793026999 +04/08/2007: 12:00 AM,1.09281892319959 +04/09/2007: 12:00 AM,1.063639163583 +04/10/2007: 12:00 AM,1.44398707247604 +04/11/2007: 12:00 AM,1.03320959319342 +04/12/2007: 12:00 AM,1.5596771281106 +04/13/2007: 12:00 AM,1.5118231892981 +04/14/2007: 12:00 AM,1.57233667780981 +04/15/2007: 12:00 AM,0.887435785993238 +04/16/2007: 12:00 AM,1.4034245689178 +04/17/2007: 12:00 AM,1.8052947778854 +04/18/2007: 12:00 AM,1.54703553180759 +04/19/2007: 12:00 AM,1.75530925871362 +04/20/2007: 12:00 AM,1.85417966686643 +04/21/2007: 12:00 AM,1.98733892085236 +04/22/2007: 12:00 AM,2.17836365893062 +04/23/2007: 12:00 AM,2.32397278220579 +04/24/2007: 12:00 AM,1.86431797586612 +04/25/2007: 12:00 AM,2.27499387683364 +04/26/2007: 12:00 AM,1.39293646628836 +04/27/2007: 12:00 AM,1.6321406588601 +04/28/2007: 12:00 AM,1.77200524375758 +04/29/2007: 12:00 AM,2.13049544830157 +04/30/2007: 12:00 AM,2.58334625690468 +05/01/2007: 12:00 AM,2.62793489538774 +05/02/2007: 12:00 AM,1.32894535063746 +05/03/2007: 12:00 AM,2.28994654793171 +05/04/2007: 12:00 AM,1.89887704266326 +05/05/2007: 12:00 AM,0.915872449152137 +05/06/2007: 12:00 AM,1.76026775002529 +05/07/2007: 12:00 AM,2.26317185227597 +05/08/2007: 12:00 AM,2.47513703331266 +05/09/2007: 12:00 AM,2.37005670200348 +05/10/2007: 12:00 AM,2.49008211187817 +05/11/2007: 12:00 AM,2.52951996676444 +05/12/2007: 12:00 AM,1.66659115912571 +05/13/2007: 12:00 AM,2.38221530802613 +05/14/2007: 12:00 AM,1.69888724343296 +05/15/2007: 12:00 AM,2.34637120592201 +05/16/2007: 12:00 AM,1.78178153809353 +05/17/2007: 12:00 AM,2.04571398629347 +05/18/2007: 12:00 AM,1.8297833124873 +05/19/2007: 12:00 AM,2.18225316258109 +05/20/2007: 12:00 AM,2.44550109798853 +05/21/2007: 12:00 AM,2.61743812044499 +05/22/2007: 12:00 AM,2.51344814659478 +05/23/2007: 12:00 AM,2.40601909343509 +05/24/2007: 12:00 AM,2.12284697546786 +05/25/2007: 12:00 AM,2.45675877499985 +05/26/2007: 12:00 AM,2.53835979037269 +05/27/2007: 12:00 AM,2.52262643004771 +05/28/2007: 12:00 AM,2.40893726463815 +05/29/2007: 12:00 AM,2.55014680451407 +05/30/2007: 12:00 AM,2.6270004207809 +05/31/2007: 12:00 AM,2.74693725600577 +06/01/2007: 12:00 AM,2.42318369654732 +06/02/2007: 12:00 AM,1.73470819191535 +06/03/2007: 12:00 AM,2.09785398193175 +06/04/2007: 12:00 AM,2.31913574861469 +06/05/2007: 12:00 AM,2.40791349471335 +06/06/2007: 12:00 AM,2.57452155561326 +06/07/2007: 12:00 AM,2.65519899506036 +06/08/2007: 12:00 AM,2.47024494442684 +06/09/2007: 12:00 AM,2.81765391385275 +06/10/2007: 12:00 AM,2.8053792540943 +06/11/2007: 12:00 AM,2.0130980621054 +06/12/2007: 12:00 AM,2.33361171116253 +06/13/2007: 12:00 AM,2.38361352836773 +06/14/2007: 12:00 AM,2.22099797473735 +06/15/2007: 12:00 AM,1.85047873486858 +06/16/2007: 12:00 AM,2.52393092397834 +06/17/2007: 12:00 AM,2.81377026910154 +06/18/2007: 12:00 AM,2.5093892641028 +06/19/2007: 12:00 AM,2.38191796639607 +06/20/2007: 12:00 AM,2.21442395059306 +06/21/2007: 12:00 AM,2.814141220682 +06/22/2007: 12:00 AM,2.64834240186341 +06/23/2007: 12:00 AM,2.79215613915221 +06/24/2007: 12:00 AM,2.57080464678717 +06/25/2007: 12:00 AM,2.5378698637742 +06/26/2007: 12:00 AM,2.37964982354721 +06/27/2007: 12:00 AM,2.51246622289245 +06/28/2007: 12:00 AM,2.46479443483763 +06/29/2007: 12:00 AM,2.47619590101098 +06/30/2007: 12:00 AM,2.26626077662515 +07/01/2007: 12:00 AM,2.3344748564366 +07/02/2007: 12:00 AM,1.2973059287386 +07/03/2007: 12:00 AM,1.75676678004338 +07/04/2007: 12:00 AM,2.26286621566881 +07/05/2007: 12:00 AM,2.53341549056989 +07/06/2007: 12:00 AM,2.3275370994712 +07/07/2007: 12:00 AM,2.11850629376618 +07/08/2007: 12:00 AM,2.44534575744316 +07/09/2007: 12:00 AM,2.54400801104053 +07/10/2007: 12:00 AM,2.28936243876775 +07/11/2007: 12:00 AM,2.03042659544319 +07/12/2007: 12:00 AM,2.41611233383249 +07/13/2007: 12:00 AM,1.48627072856328 +07/14/2007: 12:00 AM,2.10776379801956 +07/15/2007: 12:00 AM,2.16712794527439 +07/16/2007: 12:00 AM,2.41868976376673 +07/17/2007: 12:00 AM,1.99756624168861 +07/18/2007: 12:00 AM,2.32526777247691 +07/19/2007: 12:00 AM,2.56373469004818 +07/20/2007: 12:00 AM,2.08158586392428 +07/21/2007: 12:00 AM,2.15859420624147 +07/22/2007: 12:00 AM,1.92137892208861 +07/23/2007: 12:00 AM,1.95140951049117 +07/24/2007: 12:00 AM,1.74784513696292 +07/25/2007: 12:00 AM,2.1685289518497 +07/26/2007: 12:00 AM,2.28749263614301 +07/27/2007: 12:00 AM,2.31237570184409 +07/28/2007: 12:00 AM,1.85530362111219 +07/29/2007: 12:00 AM,2.00417162027372 +07/30/2007: 12:00 AM,2.14367088999024 +07/31/2007: 12:00 AM,2.28506090996909 +08/01/2007: 12:00 AM,2.31624422905501 +08/02/2007: 12:00 AM,2.20389258765631 +08/03/2007: 12:00 AM,2.33394941079805 +08/04/2007: 12:00 AM,2.50442993590482 +08/05/2007: 12:00 AM,2.18982549871369 +08/06/2007: 12:00 AM,2.37655985701698 +08/07/2007: 12:00 AM,2.45449611224654 +08/08/2007: 12:00 AM,2.52725443363807 +08/09/2007: 12:00 AM,2.50522993922533 +08/10/2007: 12:00 AM,2.5627588144771 +08/11/2007: 12:00 AM,2.51510214041658 +08/12/2007: 12:00 AM,2.05829543670589 +08/13/2007: 12:00 AM,2.41588264015864 +08/14/2007: 12:00 AM,2.49568416802678 +08/15/2007: 12:00 AM,2.65374022017445 +08/16/2007: 12:00 AM,2.6707918307592 +08/17/2007: 12:00 AM,2.18649392269069 +08/18/2007: 12:00 AM,2.51756106983777 +08/19/2007: 12:00 AM,2.40214896962922 +08/20/2007: 12:00 AM,2.36434089462975 +08/21/2007: 12:00 AM,2.50966751420444 +08/22/2007: 12:00 AM,2.56131599001281 +08/23/2007: 12:00 AM,2.45968322299671 +08/24/2007: 12:00 AM,2.17448181921268 +08/25/2007: 12:00 AM,2.20483698816038 +08/26/2007: 12:00 AM,1.8600281168146 +08/27/2007: 12:00 AM,2.15394621021089 +08/28/2007: 12:00 AM,2.10966439514726 +08/29/2007: 12:00 AM,2.19161582730665 +08/30/2007: 12:00 AM,1.7040859317289 +08/31/2007: 12:00 AM,1.94355083969989 +09/01/2007: 12:00 AM,1.78552314062105 +09/02/2007: 12:00 AM,1.88586139033124 +09/03/2007: 12:00 AM,2.14343024981161 +09/04/2007: 12:00 AM,2.17537523204326 +09/05/2007: 12:00 AM,2.25460409578723 +09/06/2007: 12:00 AM,2.01499401989271 +09/07/2007: 12:00 AM,1.86279672471812 +09/08/2007: 12:00 AM,2.12494797923101 +09/09/2007: 12:00 AM,2.16152028441938 +09/10/2007: 12:00 AM,1.90006388849981 +09/11/2007: 12:00 AM,1.94232305292357 +09/12/2007: 12:00 AM,1.93051439231252 +09/13/2007: 12:00 AM,1.86882450274853 +09/14/2007: 12:00 AM,0.928399982154241 +09/15/2007: 12:00 AM,1.66609209735556 +09/16/2007: 12:00 AM,1.63941277051966 +09/17/2007: 12:00 AM,1.69626268703336 +09/18/2007: 12:00 AM,1.70145048507375 +09/19/2007: 12:00 AM,1.89417206562149 +09/20/2007: 12:00 AM,1.78831276665431 +09/21/2007: 12:00 AM,1.41546368898798 +09/22/2007: 12:00 AM,1.75913726730919 +09/23/2007: 12:00 AM,1.88586219846782 +09/24/2007: 12:00 AM,1.83988956872398 +09/25/2007: 12:00 AM,1.75541883858906 +09/26/2007: 12:00 AM,1.77854278939288 +09/27/2007: 12:00 AM,1.67905841994536 +09/28/2007: 12:00 AM,1.53524335111502 +09/29/2007: 12:00 AM,1.66350841606758 +09/30/2007: 12:00 AM,1.62784586154969 +10/01/2007: 12:00 AM,1.63741673931735 +10/02/2007: 12:00 AM,1.67178597551064 +10/03/2007: 12:00 AM,1.08887890913015 +10/04/2007: 12:00 AM,1.1749829150873 +10/05/2007: 12:00 AM,1.02162900578308 +10/06/2007: 12:00 AM,1.53477642514217 +10/07/2007: 12:00 AM,1.63880867294234 +10/08/2007: 12:00 AM,1.61508697080288 +10/09/2007: 12:00 AM,1.49229334080234 +10/10/2007: 12:00 AM,1.51063190502911 +10/11/2007: 12:00 AM,1.07467755115907 +10/12/2007: 12:00 AM,1.27398316088779 +10/13/2007: 12:00 AM,1.38587824694921 +10/14/2007: 12:00 AM,1.49979651437713 +10/15/2007: 12:00 AM,1.42650607785436 +10/16/2007: 12:00 AM,1.18622860864112 +10/17/2007: 12:00 AM,1.18159186614419 +10/18/2007: 12:00 AM,0.985820488440853 +10/19/2007: 12:00 AM,0.913989072698242 +10/20/2007: 12:00 AM,1.21759561872092 +10/21/2007: 12:00 AM,1.3136872047477 +10/22/2007: 12:00 AM,0.990098382929255 +10/23/2007: 12:00 AM,1.09032099891226 +10/24/2007: 12:00 AM,0.631125377315323 +10/25/2007: 12:00 AM,0.742446737550405 +10/26/2007: 12:00 AM,0.923677401418002 +10/27/2007: 12:00 AM,1.00482337984486 +10/28/2007: 12:00 AM,1.03251283592074 +10/29/2007: 12:00 AM,0.963917313006384 +10/30/2007: 12:00 AM,1.0825452173663 +10/31/2007: 12:00 AM,1.04836168407206 +11/01/2007: 12:00 AM,1.06857829754635 +11/02/2007: 12:00 AM,0.952774476118325 +11/03/2007: 12:00 AM,0.962377269089925 +11/04/2007: 12:00 AM,0.828751481134293 +11/05/2007: 12:00 AM,1.02728098127498 +11/06/2007: 12:00 AM,0.535388993391754 +11/07/2007: 12:00 AM,0.679774206971839 +11/08/2007: 12:00 AM,0.671445653109688 +11/09/2007: 12:00 AM,0.842175375379365 +11/10/2007: 12:00 AM,0.764910602585145 +11/11/2007: 12:00 AM,0.790792933732878 +11/12/2007: 12:00 AM,0.905756085244625 +11/13/2007: 12:00 AM,0.78147181852677 +11/14/2007: 12:00 AM,1.02086211976263 +11/15/2007: 12:00 AM,0.23467506725525 +11/16/2007: 12:00 AM,0.600957777247975 +11/17/2007: 12:00 AM,0.734802722992136 +11/18/2007: 12:00 AM,0.86518612457486 +11/19/2007: 12:00 AM,0.946125594442731 +11/20/2007: 12:00 AM,0.976858390888306 +11/21/2007: 12:00 AM,0.828217377606376 +11/22/2007: 12:00 AM,0.69665206461291 +11/23/2007: 12:00 AM,0.418866278683044 +11/24/2007: 12:00 AM,0.508337357253214 +11/25/2007: 12:00 AM,0.639981525409559 +11/26/2007: 12:00 AM,0.655298246328384 +11/27/2007: 12:00 AM,0.483929337975826 +11/28/2007: 12:00 AM,0.717462813428219 +11/29/2007: 12:00 AM,0.685537651988121 +11/30/2007: 12:00 AM,0.666673030249802 +12/01/2007: 12:00 AM,0.721779407977863 +12/02/2007: 12:00 AM,0.732933265377269 +12/03/2007: 12:00 AM,0.515781129711207 +12/04/2007: 12:00 AM,0.560807723276551 +12/05/2007: 12:00 AM,0.654236801808667 +12/06/2007: 12:00 AM,0.420726259695539 +12/07/2007: 12:00 AM,0.665893555914241 +12/08/2007: 12:00 AM,0.728296079248539 +12/09/2007: 12:00 AM,0.741672430498629 +12/10/2007: 12:00 AM,0.787849674011903 +12/11/2007: 12:00 AM,0.900030944374785 +12/12/2007: 12:00 AM,0.829098269455846 +12/13/2007: 12:00 AM,0.661972986460138 +12/14/2007: 12:00 AM,0.658667674517517 +12/15/2007: 12:00 AM,0.543988950142368 +12/16/2007: 12:00 AM,0.196501018101255 +12/17/2007: 12:00 AM,0.408327215710478 +12/18/2007: 12:00 AM,0.453170570073586 +12/19/2007: 12:00 AM,0.423938147438068 +12/20/2007: 12:00 AM,0.465507022326132 +12/21/2007: 12:00 AM,0.437786464167966 +12/22/2007: 12:00 AM,0.431570425542921 +12/23/2007: 12:00 AM,0.481901230402818 +12/24/2007: 12:00 AM,0.522949850003858 +12/25/2007: 12:00 AM,0.406779070839585 +12/26/2007: 12:00 AM,0.473071135942843 +12/27/2007: 12:00 AM,0.656390895565529 +12/28/2007: 12:00 AM,0.658601179329833 +12/29/2007: 12:00 AM,0.766833461084982 +12/30/2007: 12:00 AM,0.4252944025262 +12/31/2007: 12:00 AM,0.557315672572604 +01/01/2008: 12:00 AM,0.308078593092168 +01/02/2008: 12:00 AM,0.215475400569408 +01/03/2008: 12:00 AM,0.331063203476323 +01/04/2008: 12:00 AM,0.478683466973502 +01/05/2008: 12:00 AM,0.571005956899332 +01/06/2008: 12:00 AM,0.749299922257076 +01/07/2008: 12:00 AM,0.818056844485008 +01/08/2008: 12:00 AM,0.546183839980497 +01/09/2008: 12:00 AM,0.572649364598049 +01/10/2008: 12:00 AM,0.591672190475739 +01/11/2008: 12:00 AM,0.653660365725409 +01/12/2008: 12:00 AM,0.613338568974689 +01/13/2008: 12:00 AM,0.517069660385134 +01/14/2008: 12:00 AM,0.449298758761738 +01/15/2008: 12:00 AM,0.397972168692525 +01/16/2008: 12:00 AM,0.398031476974001 +01/17/2008: 12:00 AM,0.365421577050133 +01/18/2008: 12:00 AM,0.550471729637741 +01/19/2008: 12:00 AM,0.215704802499073 +01/20/2008: 12:00 AM,0.282345651721013 +01/21/2008: 12:00 AM,0.394443880245807 +01/22/2008: 12:00 AM,0.459243147667879 +01/23/2008: 12:00 AM,0.58385168431282 +01/24/2008: 12:00 AM,0.416989513312716 +01/25/2008: 12:00 AM,0.473341861674847 +01/26/2008: 12:00 AM,0.595420024285298 +01/27/2008: 12:00 AM,0.634062311204735 +01/28/2008: 12:00 AM,0.798698757411239 +01/29/2008: 12:00 AM,0.826011778443239 +01/30/2008: 12:00 AM,0.548121428520803 +01/31/2008: 12:00 AM,0.622532382613191 +02/01/2008: 12:00 AM,0.416195876067495 +02/02/2008: 12:00 AM,0.872321603156 +02/03/2008: 12:00 AM,0.92204627941177 +02/04/2008: 12:00 AM,0.780867696622575 +02/05/2008: 12:00 AM,1.05673189310411 +02/06/2008: 12:00 AM,0.463718137781511 +02/07/2008: 12:00 AM,0.837124210179891 +02/08/2008: 12:00 AM,0.844496389063688 +02/09/2008: 12:00 AM,0.797586766832653 +02/10/2008: 12:00 AM,0.77917004236549 +02/11/2008: 12:00 AM,0.942226337583124 +02/12/2008: 12:00 AM,0.773731246858951 +02/13/2008: 12:00 AM,0.377991334129906 +02/14/2008: 12:00 AM,0.901108868062322 +02/15/2008: 12:00 AM,0.954844652540597 +02/16/2008: 12:00 AM,1.05945478600523 +02/17/2008: 12:00 AM,0.678651678864477 +02/18/2008: 12:00 AM,0.591408804131318 +02/19/2008: 12:00 AM,0.518050365671436 +02/20/2008: 12:00 AM,0.840079678388681 +02/21/2008: 12:00 AM,0.671031494620145 +02/22/2008: 12:00 AM,0.750887398041564 +02/23/2008: 12:00 AM,0.921081553290176 +02/24/2008: 12:00 AM,0.785528653641518 +02/25/2008: 12:00 AM,1.16047103733614 +02/26/2008: 12:00 AM,0.907976718676433 +02/27/2008: 12:00 AM,0.329048065134328 +02/28/2008: 12:00 AM,0.632329343359291 +02/29/2008: 12:00 AM,0.717349927185577 +03/01/2008: 12:00 AM,1.07449463064605 +03/02/2008: 12:00 AM,1.17959875977038 +03/03/2008: 12:00 AM,1.20983521699838 +03/04/2008: 12:00 AM,1.04103097196474 +03/05/2008: 12:00 AM,1.16856377900347 +03/06/2008: 12:00 AM,1.30751884237465 +03/07/2008: 12:00 AM,0.908134110368515 +03/08/2008: 12:00 AM,0 +03/09/2008: 12:00 AM,1.05689838460707 +03/10/2008: 12:00 AM,1.29447356290026 +03/11/2008: 12:00 AM,0.911774569226987 +03/12/2008: 12:00 AM,1.34919460312526 +03/13/2008: 12:00 AM,1.54173595594748 +03/14/2008: 12:00 AM,1.06062760856419 +03/15/2008: 12:00 AM,0.888009776573004 +03/16/2008: 12:00 AM,1.0134027934632 +03/17/2008: 12:00 AM,1.05466299217621 +03/18/2008: 12:00 AM,1.06673249697693 +03/19/2008: 12:00 AM,1.17728018618849 +03/20/2008: 12:00 AM,1.02210447617279 +03/21/2008: 12:00 AM,1.40713879403315 +03/22/2008: 12:00 AM,1.56983962813205 +03/23/2008: 12:00 AM,1.10933074830177 +03/24/2008: 12:00 AM,0.750863181027901 +03/25/2008: 12:00 AM,1.1283447073908 +03/26/2008: 12:00 AM,1.5239904765353 +03/27/2008: 12:00 AM,1.6587052283213 +03/28/2008: 12:00 AM,1.38554559314195 +03/29/2008: 12:00 AM,0.898320918418453 +03/30/2008: 12:00 AM,0.616131213998529 +03/31/2008: 12:00 AM,1.0761983849122 +04/01/2008: 12:00 AM,1.75009279228871 +04/02/2008: 12:00 AM,1.79807251502028 +04/03/2008: 12:00 AM,0.751595926737948 +04/04/2008: 12:00 AM,1.45916017641841 +04/05/2008: 12:00 AM,0.856652263330096 +04/06/2008: 12:00 AM,1.38024871788868 +04/07/2008: 12:00 AM,1.48742566943133 +04/08/2008: 12:00 AM,1.17362003265213 +04/09/2008: 12:00 AM,1.8866094512388 +04/10/2008: 12:00 AM,1.74401807769807 +04/11/2008: 12:00 AM,1.75479626150914 +04/12/2008: 12:00 AM,1.44856338622486 +04/13/2008: 12:00 AM,0.955374275276112 +04/14/2008: 12:00 AM,0.816912640138598 +04/15/2008: 12:00 AM,1.33187658008925 +04/16/2008: 12:00 AM,1.88434080285633 +04/17/2008: 12:00 AM,2.22417243283617 +04/18/2008: 12:00 AM,2.12309830625458 +04/19/2008: 12:00 AM,1.32402058372004 +04/20/2008: 12:00 AM,1.4609931058494 +04/21/2008: 12:00 AM,1.93382803460632 +04/22/2008: 12:00 AM,2.18007292276608 +04/23/2008: 12:00 AM,2.10380758604627 +04/24/2008: 12:00 AM,2.09507351403928 +04/25/2008: 12:00 AM,2.02099955858628 +04/26/2008: 12:00 AM,2.09968310403329 +04/27/2008: 12:00 AM,1.51401157357715 +04/28/2008: 12:00 AM,1.02658252257823 +04/29/2008: 12:00 AM,1.30907497645389 +04/30/2008: 12:00 AM,2.08588491068415 +05/01/2008: 12:00 AM,2.17090139234067 +05/02/2008: 12:00 AM,1.94594825667822 +05/03/2008: 12:00 AM,1.04496047102531 +05/04/2008: 12:00 AM,2.15941657047457 +05/05/2008: 12:00 AM,2.16694589813244 +05/06/2008: 12:00 AM,2.37136944811862 +05/07/2008: 12:00 AM,2.12588906740741 +05/08/2008: 12:00 AM,1.86961454563272 +05/09/2008: 12:00 AM,1.94043984333683 +05/10/2008: 12:00 AM,2.00074510914881 +05/11/2008: 12:00 AM,1.35061922502852 +05/12/2008: 12:00 AM,1.59886211131548 +05/13/2008: 12:00 AM,2.28210494987491 +05/14/2008: 12:00 AM,1.61502289193345 +05/15/2008: 12:00 AM,1.27063368207021 +05/16/2008: 12:00 AM,1.35974419997163 +05/17/2008: 12:00 AM,2.12859569598091 +05/18/2008: 12:00 AM,1.78287836738416 +05/19/2008: 12:00 AM,2.2012692143408 +05/20/2008: 12:00 AM,2.27467690171861 +05/21/2008: 12:00 AM,1.94729847194792 +05/22/2008: 12:00 AM,2.49720819324452 +05/23/2008: 12:00 AM,2.44894779942695 +05/24/2008: 12:00 AM,2.21651990220735 +05/25/2008: 12:00 AM,2.26677296530576 +05/26/2008: 12:00 AM,2.53892883554304 +05/27/2008: 12:00 AM,2.40991417135397 +05/28/2008: 12:00 AM,1.51624102658452 +05/29/2008: 12:00 AM,2.08469711770465 +05/30/2008: 12:00 AM,2.25087367248304 +05/31/2008: 12:00 AM,2.16889896883343 +06/01/2008: 12:00 AM,1.61940407517152 +06/02/2008: 12:00 AM,2.36400946288136 +06/03/2008: 12:00 AM,2.29572894366145 +06/04/2008: 12:00 AM,2.5895004129415 +06/05/2008: 12:00 AM,2.70202513795608 +06/06/2008: 12:00 AM,2.78598096893087 +06/07/2008: 12:00 AM,2.65761290127641 +06/08/2008: 12:00 AM,2.93683963595444 +06/09/2008: 12:00 AM,2.81341292974836 +06/10/2008: 12:00 AM,2.69404590295956 +06/11/2008: 12:00 AM,2.56634772219849 +06/12/2008: 12:00 AM,2.37807314230352 +06/13/2008: 12:00 AM,2.33404385384134 +06/14/2008: 12:00 AM,2.2070186089809 +06/15/2008: 12:00 AM,2.40517272455127 +06/16/2008: 12:00 AM,2.38123229495651 +06/17/2008: 12:00 AM,2.37294641266535 +06/18/2008: 12:00 AM,2.47918470875043 +06/19/2008: 12:00 AM,2.50759695766127 +06/20/2008: 12:00 AM,2.56947612171862 +06/21/2008: 12:00 AM,2.14498031657308 +06/22/2008: 12:00 AM,2.34183155080426 +06/23/2008: 12:00 AM,2.62503837489173 +06/24/2008: 12:00 AM,2.74473289057771 +06/25/2008: 12:00 AM,2.76214810918077 +06/26/2008: 12:00 AM,2.87823068054538 +06/27/2008: 12:00 AM,2.59322157464142 +06/28/2008: 12:00 AM,2.47309312822071 +06/29/2008: 12:00 AM,2.09621695631064 +06/30/2008: 12:00 AM,2.17176172280214 +07/01/2008: 12:00 AM,2.34403287625913 +07/02/2008: 12:00 AM,2.58677667294727 +07/03/2008: 12:00 AM,2.55456988818404 +07/04/2008: 12:00 AM,2.56985873591545 +07/05/2008: 12:00 AM,2.25552150432467 +07/06/2008: 12:00 AM,2.51765119188049 +07/07/2008: 12:00 AM,2.41789378550504 +07/08/2008: 12:00 AM,2.28923343541076 +07/09/2008: 12:00 AM,2.4861782339805 +07/10/2008: 12:00 AM,2.06929447699216 +07/11/2008: 12:00 AM,2.18168939930007 +07/12/2008: 12:00 AM,2.52906712945964 +07/13/2008: 12:00 AM,1.73547458658927 +07/14/2008: 12:00 AM,2.39675880178481 +07/15/2008: 12:00 AM,2.5018827461707 +07/16/2008: 12:00 AM,2.44257065028673 +07/17/2008: 12:00 AM,2.46565619262958 +07/18/2008: 12:00 AM,2.6755153024032 +07/19/2008: 12:00 AM,2.27146241303015 +07/20/2008: 12:00 AM,2.68870412755894 +07/21/2008: 12:00 AM,2.83155036685092 +07/22/2008: 12:00 AM,2.60697064163115 +07/23/2008: 12:00 AM,2.4498401643274 +07/24/2008: 12:00 AM,2.47079749910216 +07/25/2008: 12:00 AM,2.09100624488931 +07/26/2008: 12:00 AM,2.04779766782957 +07/27/2008: 12:00 AM,2.6201386986979 +07/28/2008: 12:00 AM,2.6172104550332 +07/29/2008: 12:00 AM,2.22223230133561 +07/30/2008: 12:00 AM,2.62845244332835 +07/31/2008: 12:00 AM,2.31624422905501 +08/01/2008: 12:00 AM,2.51824380149984 +08/02/2008: 12:00 AM,2.72731455591161 +08/03/2008: 12:00 AM,2.53268693862074 +08/04/2008: 12:00 AM,2.65861312033746 +08/05/2008: 12:00 AM,2.6302688834883 +08/06/2008: 12:00 AM,2.52192228850628 +08/07/2008: 12:00 AM,2.39100686077475 +08/08/2008: 12:00 AM,2.09730319792961 +08/09/2008: 12:00 AM,2.33092891252349 +08/10/2008: 12:00 AM,2.18663729162356 +08/11/2008: 12:00 AM,2.40145688220861 +08/12/2008: 12:00 AM,2.22564708121243 +08/13/2008: 12:00 AM,2.03898680008528 +08/14/2008: 12:00 AM,2.20532128899159 +08/15/2008: 12:00 AM,2.31239142303959 +08/16/2008: 12:00 AM,1.82996443536398 +08/17/2008: 12:00 AM,2.1428634445651 +08/18/2008: 12:00 AM,2.14090260199889 +08/19/2008: 12:00 AM,2.40493996447902 +08/20/2008: 12:00 AM,2.33439050417583 +08/21/2008: 12:00 AM,2.14147964418821 +08/22/2008: 12:00 AM,1.90028611789934 +08/23/2008: 12:00 AM,1.90956071592878 +08/24/2008: 12:00 AM,1.62885002281569 +08/25/2008: 12:00 AM,1.28754185361713 +08/26/2008: 12:00 AM,1.02854188852106 +08/27/2008: 12:00 AM,1.47597808373873 +08/28/2008: 12:00 AM,1.5990536733056 +08/29/2008: 12:00 AM,2.15364802272037 +08/30/2008: 12:00 AM,2.28090874297502 +08/31/2008: 12:00 AM,2.06004331131446 +09/01/2008: 12:00 AM,1.6334249143494 +09/02/2008: 12:00 AM,1.90964109673356 +09/03/2008: 12:00 AM,2.08991679265678 +09/04/2008: 12:00 AM,1.99953826678047 +09/05/2008: 12:00 AM,2.10424824238788 +09/06/2008: 12:00 AM,1.9414576271999 +09/07/2008: 12:00 AM,2.07935667347955 +09/08/2008: 12:00 AM,2.10929766355412 +09/09/2008: 12:00 AM,1.41679326774175 +09/10/2008: 12:00 AM,1.65001873119145 +09/11/2008: 12:00 AM,1.34464710517251 +09/12/2008: 12:00 AM,1.36672057181837 +09/13/2008: 12:00 AM,1.75400181087262 +09/14/2008: 12:00 AM,1.57750555232256 +09/15/2008: 12:00 AM,1.50754505295959 +09/16/2008: 12:00 AM,1.10236007220202 +09/17/2008: 12:00 AM,1.17632962384523 +09/18/2008: 12:00 AM,1.6497456066506 +09/19/2008: 12:00 AM,1.5758964541799 +09/20/2008: 12:00 AM,1.54550704662725 +09/21/2008: 12:00 AM,1.4306932831526 +09/22/2008: 12:00 AM,1.77326998483742 +09/23/2008: 12:00 AM,1.65715987245857 +09/24/2008: 12:00 AM,1.68919817340977 +09/25/2008: 12:00 AM,1.65563477278445 +09/26/2008: 12:00 AM,1.22249590753323 +09/27/2008: 12:00 AM,1.11716534885873 +09/28/2008: 12:00 AM,1.53148160286881 +09/29/2008: 12:00 AM,1.5407930455176 +09/30/2008: 12:00 AM,1.6263885662918 +10/01/2008: 12:00 AM,1.24678851033522 +10/02/2008: 12:00 AM,1.33786048120699 +10/03/2008: 12:00 AM,1.46629083138997 +10/04/2008: 12:00 AM,1.55406245129247 +10/05/2008: 12:00 AM,1.51805388594335 +10/06/2008: 12:00 AM,1.61950941284133 +10/07/2008: 12:00 AM,1.3484367655333 +10/08/2008: 12:00 AM,0.592714188830618 +10/09/2008: 12:00 AM,1.27717464645273 +10/10/2008: 12:00 AM,1.20961162588814 +10/11/2008: 12:00 AM,1.12262799352362 +10/12/2008: 12:00 AM,1.11297322062155 +10/13/2008: 12:00 AM,1.21197051216078 +10/14/2008: 12:00 AM,1.5278533104732 +10/15/2008: 12:00 AM,1.51454265309124 +10/16/2008: 12:00 AM,1.35618245493425 +10/17/2008: 12:00 AM,0.666679230784966 +10/18/2008: 12:00 AM,0.783075041749775 +10/19/2008: 12:00 AM,1.09506911920937 +10/20/2008: 12:00 AM,1.11425617710311 +10/21/2008: 12:00 AM,1.16689034612629 +10/22/2008: 12:00 AM,1.0839969858057 +10/23/2008: 12:00 AM,0.835735353077468 +10/24/2008: 12:00 AM,0.562029500578817 +10/25/2008: 12:00 AM,0.773464845957917 +10/26/2008: 12:00 AM,1.10058858307696 +10/27/2008: 12:00 AM,0.630100127557343 +10/28/2008: 12:00 AM,0.520539445701174 +10/29/2008: 12:00 AM,0.865665783763616 +10/30/2008: 12:00 AM,0.97285919987293 +10/31/2008: 12:00 AM,1.06344413247281 +11/01/2008: 12:00 AM,1.12243783987871 +11/02/2008: 12:00 AM,1.13532445831463 +11/03/2008: 12:00 AM,1.08973754300055 +11/04/2008: 12:00 AM,1.12651984644007 +11/05/2008: 12:00 AM,1.14301209087637 +11/06/2008: 12:00 AM,1.13339943586442 +11/07/2008: 12:00 AM,1.0794752832581 +11/08/2008: 12:00 AM,0.787327913094166 +11/09/2008: 12:00 AM,0.74756886014923 +11/10/2008: 12:00 AM,0.847583262457907 +11/11/2008: 12:00 AM,0.778468842604088 +11/12/2008: 12:00 AM,0.735252916664278 +11/13/2008: 12:00 AM,0.513327831746562 +11/14/2008: 12:00 AM,0.692437244590442 +11/15/2008: 12:00 AM,0.384615379720902 +11/16/2008: 12:00 AM,0.339962240708637 +11/17/2008: 12:00 AM,0.664549065181248 +11/18/2008: 12:00 AM,0.306337418910078 +11/19/2008: 12:00 AM,0.578555287521611 +11/20/2008: 12:00 AM,0.809037551031379 +11/21/2008: 12:00 AM,0.300066056068229 +11/22/2008: 12:00 AM,0.482222669153203 +11/23/2008: 12:00 AM,0.609291879417706 +11/24/2008: 12:00 AM,0.365252832729647 +11/25/2008: 12:00 AM,0.420172988689686 +11/26/2008: 12:00 AM,0.634039028791751 +11/27/2008: 12:00 AM,0.739340389729107 +11/28/2008: 12:00 AM,0.714676072045842 +11/29/2008: 12:00 AM,0.45222859417558 +11/30/2008: 12:00 AM,0.300984356055888 +12/01/2008: 12:00 AM,0.133560122899917 +12/02/2008: 12:00 AM,0.318035796169434 +12/03/2008: 12:00 AM,0.566014560656147 +12/04/2008: 12:00 AM,0.437091037811788 +12/05/2008: 12:00 AM,0.434865821196055 +12/06/2008: 12:00 AM,0.370840705736652 +12/07/2008: 12:00 AM,0.441794497966014 +12/08/2008: 12:00 AM,0.53818902042845 +12/09/2008: 12:00 AM,0.611289220472498 +12/10/2008: 12:00 AM,0.423068375700571 +12/11/2008: 12:00 AM,0.411076923045639 +12/12/2008: 12:00 AM,0.429224763452678 +12/13/2008: 12:00 AM,0.499875818599068 +12/14/2008: 12:00 AM,0.5614697939905 +12/15/2008: 12:00 AM,0.637570068315409 +12/16/2008: 12:00 AM,0.510499298083142 +12/17/2008: 12:00 AM,0.533853294984337 +12/18/2008: 12:00 AM,0.690569542757544 +12/19/2008: 12:00 AM,0.65153526063276 +12/20/2008: 12:00 AM,0.382698257316942 +12/21/2008: 12:00 AM,0.222444436079813 +12/22/2008: 12:00 AM,0.290588985551174 +12/23/2008: 12:00 AM,0.545690957051782 +12/24/2008: 12:00 AM,0.618335549134484 +12/25/2008: 12:00 AM,0.567641600716357 +12/26/2008: 12:00 AM,0.489650812460908 +12/27/2008: 12:00 AM,0.537137014266751 +12/28/2008: 12:00 AM,0.556343004295602 +12/29/2008: 12:00 AM,0.606082280544419 +12/30/2008: 12:00 AM,0.785232287358374 +12/31/2008: 12:00 AM,0.375656421671026 +01/01/2009: 12:00 AM,0.417642374432049 +01/02/2009: 12:00 AM,0.388238453520196 +01/03/2009: 12:00 AM,0.469308755924838 +01/04/2009: 12:00 AM,0.779055672254754 +01/05/2009: 12:00 AM,0.763120037812028 +01/06/2009: 12:00 AM,0.532261709694788 +01/07/2009: 12:00 AM,0.241838814769875 +01/08/2009: 12:00 AM,0.424567983141973 +01/09/2009: 12:00 AM,0.600626739812688 +01/10/2009: 12:00 AM,0.58493555937172 +01/11/2009: 12:00 AM,0.340266323397376 +01/12/2009: 12:00 AM,0.494182503670677 +01/13/2009: 12:00 AM,0.546559556954426 +01/14/2009: 12:00 AM,0.521326488749053 +01/15/2009: 12:00 AM,0.367114608412736 +01/16/2009: 12:00 AM,0.229846936492221 +01/17/2009: 12:00 AM,0.321231796280285 +01/18/2009: 12:00 AM,0.441090231990222 +01/19/2009: 12:00 AM,0.297714735925456 +01/20/2009: 12:00 AM,0.211198601236984 +01/21/2009: 12:00 AM,0.392688253434596 +01/22/2009: 12:00 AM,0.632732068786036 +01/23/2009: 12:00 AM,0.845071870295019 +01/24/2009: 12:00 AM,0.648357161337019 +01/25/2009: 12:00 AM,0.571283056787479 +01/26/2009: 12:00 AM,0.599707892118682 +01/27/2009: 12:00 AM,0.761845927527024 +01/28/2009: 12:00 AM,0.570822026551923 +01/29/2009: 12:00 AM,0.625505250402875 +01/30/2009: 12:00 AM,0.38678072116019 +01/31/2009: 12:00 AM,0.559294560327908 +02/01/2009: 12:00 AM,0.784756127956146 +02/02/2009: 12:00 AM,0.538949596877896 +02/03/2009: 12:00 AM,0.39299583402845 +02/04/2009: 12:00 AM,0.232429379052915 +02/05/2009: 12:00 AM,0.450600520821373 +02/06/2009: 12:00 AM,0.835733499371956 +02/07/2009: 12:00 AM,0.974390411638004 +02/08/2009: 12:00 AM,1.05408774942957 +02/09/2009: 12:00 AM,1.00112901796854 +02/10/2009: 12:00 AM,0.915784557056665 +02/11/2009: 12:00 AM,0.477774809744048 +02/12/2009: 12:00 AM,0.793449877997038 +02/13/2009: 12:00 AM,1.0298216976154 +02/14/2009: 12:00 AM,0.769995113882772 +02/15/2009: 12:00 AM,0.809561301345662 +02/16/2009: 12:00 AM,0.65385335092281 +02/17/2009: 12:00 AM,0.76844050523292 +02/18/2009: 12:00 AM,0.920270032838256 +02/19/2009: 12:00 AM,0.485579037336852 +02/20/2009: 12:00 AM,0.614204705920165 +02/21/2009: 12:00 AM,0.772240710791383 +02/22/2009: 12:00 AM,0.471728259984325 +02/23/2009: 12:00 AM,0.719350367405391 +02/24/2009: 12:00 AM,0.863410220597301 +02/25/2009: 12:00 AM,0.894776953976427 +02/26/2009: 12:00 AM,0.966405442606877 +02/27/2009: 12:00 AM,0.618863604937114 +02/28/2009: 12:00 AM,0.532893830263379 +03/01/2009: 12:00 AM,0.252625745553946 +03/02/2009: 12:00 AM,0.6040427638859 +03/03/2009: 12:00 AM,0.713523957089026 +03/04/2009: 12:00 AM,0.891561606410908 +03/05/2009: 12:00 AM,1.14770338164002 +03/06/2009: 12:00 AM,1.10721214639488 +03/07/2009: 12:00 AM,1.70970789995076 +03/08/2009: 12:00 AM,1.64528539059944 +03/09/2009: 12:00 AM,1.43726095153709 +03/10/2009: 12:00 AM,1.47733000422659 +03/11/2009: 12:00 AM,1.37299631012588 +03/12/2009: 12:00 AM,1.11021634347512 +03/13/2009: 12:00 AM,0.383729029020439 +03/14/2009: 12:00 AM,0.650017997992036 +03/15/2009: 12:00 AM,1.10576572999351 +03/16/2009: 12:00 AM,0.866959010042248 +03/17/2009: 12:00 AM,1.45237545940916 +03/18/2009: 12:00 AM,1.37804080485065 +03/19/2009: 12:00 AM,1.54522287721988 +03/20/2009: 12:00 AM,1.19435816755724 +03/21/2009: 12:00 AM,1.05117729692694 +03/22/2009: 12:00 AM,1.47124692264746 +03/23/2009: 12:00 AM,1.50436552322219 +03/24/2009: 12:00 AM,1.45676545278309 +03/25/2009: 12:00 AM,0.425243534284332 +03/26/2009: 12:00 AM,0.634088370206623 +03/27/2009: 12:00 AM,0.809616562566904 +03/28/2009: 12:00 AM,0.746007485550495 +03/29/2009: 12:00 AM,0.894495958466198 +03/30/2009: 12:00 AM,1.55200315866308 +03/31/2009: 12:00 AM,1.12522022244997 +04/01/2009: 12:00 AM,1.46997131463908 +04/02/2009: 12:00 AM,0.786077288361242 +04/03/2009: 12:00 AM,0.934239731390341 +04/04/2009: 12:00 AM,1.93912542548754 +04/05/2009: 12:00 AM,1.91953813624004 +04/06/2009: 12:00 AM,0.570105705707197 +04/07/2009: 12:00 AM,0.664952783963371 +04/08/2009: 12:00 AM,1.38870455443667 +04/09/2009: 12:00 AM,1.89488706907903 +04/10/2009: 12:00 AM,1.26074454115081 +04/11/2009: 12:00 AM,1.09695827500519 +04/12/2009: 12:00 AM,1.67196182432734 +04/13/2009: 12:00 AM,0.744394980076493 +04/14/2009: 12:00 AM,1.41262591872212 +04/15/2009: 12:00 AM,1.53708386979511 +04/16/2009: 12:00 AM,1.75678621067786 +04/17/2009: 12:00 AM,1.95936359018665 +04/18/2009: 12:00 AM,2.07773800365597 +04/19/2009: 12:00 AM,1.07876042061368 +04/20/2009: 12:00 AM,1.3123008662988 +04/21/2009: 12:00 AM,1.47335207156787 +04/22/2009: 12:00 AM,1.56964937796803 +04/23/2009: 12:00 AM,2.40980967276062 +04/24/2009: 12:00 AM,2.52192066791035 +04/25/2009: 12:00 AM,2.43829463282032 +04/26/2009: 12:00 AM,2.22786524779972 +04/27/2009: 12:00 AM,2.07630050050056 +04/28/2009: 12:00 AM,2.08440358746514 +04/29/2009: 12:00 AM,2.1969911923194 +04/30/2009: 12:00 AM,1.78357925235916 +05/01/2009: 12:00 AM,1.70195432612664 +05/02/2009: 12:00 AM,1.40698749261836 +05/03/2009: 12:00 AM,1.56452144300312 +05/04/2009: 12:00 AM,1.24703601272756 +05/05/2009: 12:00 AM,1.56083482617341 +05/06/2009: 12:00 AM,1.50663387901998 +05/07/2009: 12:00 AM,1.97746727303263 +05/08/2009: 12:00 AM,2.10792315599559 +05/09/2009: 12:00 AM,1.98939263128164 +05/10/2009: 12:00 AM,1.9988228514346 +05/11/2009: 12:00 AM,0.984562838770969 +05/12/2009: 12:00 AM,1.95108259322263 +05/13/2009: 12:00 AM,1.76988603172161 +05/14/2009: 12:00 AM,1.83861201257967 +05/15/2009: 12:00 AM,2.17279386906944 +05/16/2009: 12:00 AM,1.93844474069418 +05/17/2009: 12:00 AM,0.545817565915316 +05/18/2009: 12:00 AM,1.91563818702804 +05/19/2009: 12:00 AM,2.07397184576382 +05/20/2009: 12:00 AM,2.26086656487208 +05/21/2009: 12:00 AM,1.98958986449483 +05/22/2009: 12:00 AM,1.96092462663003 +05/23/2009: 12:00 AM,1.8026184313951 +05/24/2009: 12:00 AM,1.81556814541682 +05/25/2009: 12:00 AM,1.88159667715326 +05/26/2009: 12:00 AM,1.68055083599797 +05/27/2009: 12:00 AM,1.73265907368248 +05/28/2009: 12:00 AM,1.98126231889655 +05/29/2009: 12:00 AM,2.02037856004091 +05/30/2009: 12:00 AM,2.41182512158851 +05/31/2009: 12:00 AM,2.46351408567554 +06/01/2009: 12:00 AM,2.68510263889525 +06/02/2009: 12:00 AM,2.66306443968642 +06/03/2009: 12:00 AM,2.50270517057412 +06/04/2009: 12:00 AM,1.67339801590713 +06/05/2009: 12:00 AM,1.9301750424223 +06/06/2009: 12:00 AM,2.39433816740434 +06/07/2009: 12:00 AM,2.29243160985058 +06/08/2009: 12:00 AM,2.53502443694751 +06/09/2009: 12:00 AM,2.69246072445907 +06/10/2009: 12:00 AM,2.51746971757347 +06/11/2009: 12:00 AM,2.46199799859246 +06/12/2009: 12:00 AM,2.20681501435858 +06/13/2009: 12:00 AM,2.24105038034833 +06/14/2009: 12:00 AM,2.33944947653203 +06/15/2009: 12:00 AM,2.4956770130133 +06/16/2009: 12:00 AM,2.5928168292066 +06/17/2009: 12:00 AM,2.54652602864423 +06/18/2009: 12:00 AM,2.53918334036714 +06/19/2009: 12:00 AM,2.84416472151452 +06/20/2009: 12:00 AM,2.89144854296701 +06/21/2009: 12:00 AM,2.4000603079078 +06/22/2009: 12:00 AM,2.16183032400475 +06/23/2009: 12:00 AM,2.56958039020678 +06/24/2009: 12:00 AM,2.66706876451802 +06/25/2009: 12:00 AM,2.62002272488305 +06/26/2009: 12:00 AM,2.64858977532987 +06/27/2009: 12:00 AM,2.73777571541109 +06/28/2009: 12:00 AM,2.74899101817011 +06/29/2009: 12:00 AM,2.33426516267863 +06/30/2009: 12:00 AM,2.57964365976897 +07/01/2009: 12:00 AM,2.47214880089239 +07/02/2009: 12:00 AM,2.48532198910402 +07/03/2009: 12:00 AM,2.30299533092792 +07/04/2009: 12:00 AM,2.52024741962245 +07/05/2009: 12:00 AM,1.7929311916203 +07/06/2009: 12:00 AM,2.32806464134806 +07/07/2009: 12:00 AM,2.26075702293688 +07/08/2009: 12:00 AM,1.88724380775145 +07/09/2009: 12:00 AM,1.99394794302602 +07/10/2009: 12:00 AM,2.08948592352787 +07/11/2009: 12:00 AM,2.34186533990953 +07/12/2009: 12:00 AM,2.28123339411285 +07/13/2009: 12:00 AM,2.06363584604712 +07/14/2009: 12:00 AM,2.36078373708766 +07/15/2009: 12:00 AM,2.32846041274776 +07/16/2009: 12:00 AM,2.09110021407444 +07/17/2009: 12:00 AM,2.29404751687688 +07/18/2009: 12:00 AM,1.96434430553324 +07/19/2009: 12:00 AM,2.02853409516145 +07/20/2009: 12:00 AM,2.27050150486295 +07/21/2009: 12:00 AM,2.28855159139455 +07/22/2009: 12:00 AM,2.04824674087215 +07/23/2009: 12:00 AM,2.29444796063066 +07/24/2009: 12:00 AM,2.42538907101943 +07/25/2009: 12:00 AM,2.62801756894197 +07/26/2009: 12:00 AM,2.38246989460655 +07/27/2009: 12:00 AM,2.51179267872138 +07/28/2009: 12:00 AM,2.15039697958082 +07/29/2009: 12:00 AM,1.8482789784156 +07/30/2009: 12:00 AM,2.12994746540498 +07/31/2009: 12:00 AM,1.39686734542099 +08/01/2009: 12:00 AM,2.25275095111926 +08/02/2009: 12:00 AM,1.76494962157395 +08/03/2009: 12:00 AM,2.25933359936789 +08/04/2009: 12:00 AM,2.41116454524346 +08/05/2009: 12:00 AM,2.28352040857624 +08/06/2009: 12:00 AM,2.31174056353858 +08/07/2009: 12:00 AM,2.40670713127088 +08/08/2009: 12:00 AM,2.28545056880233 +08/09/2009: 12:00 AM,2.48815440805108 +08/10/2009: 12:00 AM,2.50654458408577 +08/11/2009: 12:00 AM,2.35654413312609 +08/12/2009: 12:00 AM,1.74741424292561 +08/13/2009: 12:00 AM,2.04668965706327 +08/14/2009: 12:00 AM,2.0596606750961 +08/15/2009: 12:00 AM,2.22906646447901 +08/16/2009: 12:00 AM,2.01841251942912 +08/17/2009: 12:00 AM,1.91187495653074 +08/18/2009: 12:00 AM,1.9040343123141 +08/19/2009: 12:00 AM,1.95259669573021 +08/20/2009: 12:00 AM,1.74095018407553 +08/21/2009: 12:00 AM,2.00124094207944 +08/22/2009: 12:00 AM,1.60759998100423 +08/23/2009: 12:00 AM,1.9522040623353 +08/24/2009: 12:00 AM,1.80363966592989 +08/25/2009: 12:00 AM,1.84735145586159 +08/26/2009: 12:00 AM,2.14896647862937 +08/27/2009: 12:00 AM,1.92179476895619 +08/28/2009: 12:00 AM,1.14144134289649 +08/29/2009: 12:00 AM,1.84718710172472 +08/30/2009: 12:00 AM,1.67229282205035 +08/31/2009: 12:00 AM,1.35984669746553 +09/01/2009: 12:00 AM,1.44225475363875 +09/02/2009: 12:00 AM,1.69831700407956 +09/03/2009: 12:00 AM,1.79156189696074 +09/04/2009: 12:00 AM,1.87800031635386 +09/05/2009: 12:00 AM,1.94786400939563 +09/06/2009: 12:00 AM,1.51491369670868 +09/07/2009: 12:00 AM,1.81003078636964 +09/08/2009: 12:00 AM,1.71836942109531 +09/09/2009: 12:00 AM,1.58558222726229 +09/10/2009: 12:00 AM,1.45164004554748 +09/11/2009: 12:00 AM,1.61493344085401 +09/12/2009: 12:00 AM,1.72917257434199 +09/13/2009: 12:00 AM,1.7618112310534 +09/14/2009: 12:00 AM,1.62863655854845 +09/15/2009: 12:00 AM,1.10172175633923 +09/16/2009: 12:00 AM,1.234588708756 +09/17/2009: 12:00 AM,0.954776950252612 +09/18/2009: 12:00 AM,1.14702955468675 +09/19/2009: 12:00 AM,1.25577118584885 +09/20/2009: 12:00 AM,0.561903218103283 +09/21/2009: 12:00 AM,0.639167586970016 +09/22/2009: 12:00 AM,1.37557933866719 +09/23/2009: 12:00 AM,1.72007162373379 +09/24/2009: 12:00 AM,1.66540420293535 +09/25/2009: 12:00 AM,1.47284264760124 +09/26/2009: 12:00 AM,0 +09/27/2009: 12:00 AM,1.12582227249094 +09/28/2009: 12:00 AM,1.6184714232125 +09/29/2009: 12:00 AM,1.23124107814298 +09/30/2009: 12:00 AM,1.43162735060955 +10/01/2009: 12:00 AM,1.41270240209034 +10/02/2009: 12:00 AM,0.997943043615135 +10/03/2009: 12:00 AM,1.22231538926984 +10/04/2009: 12:00 AM,1.22915295881082 +10/05/2009: 12:00 AM,0.814236735344926 +10/06/2009: 12:00 AM,1.17434233523872 +10/07/2009: 12:00 AM,1.05212218431109 +10/08/2009: 12:00 AM,1.45697710358762 +10/09/2009: 12:00 AM,1.53113472292355 +10/10/2009: 12:00 AM,0.642236997439438 +10/11/2009: 12:00 AM,1.09050707074363 +10/12/2009: 12:00 AM,0.577711790129692 +10/13/2009: 12:00 AM,1.24631323275916 +10/14/2009: 12:00 AM,0.547515763140719 +10/15/2009: 12:00 AM,0.905540444929432 +10/16/2009: 12:00 AM,0.79849094082441 +10/17/2009: 12:00 AM,0.341499481161537 +10/18/2009: 12:00 AM,0.543666529474591 +10/19/2009: 12:00 AM,1.06477893503152 +10/20/2009: 12:00 AM,1.26069498010474 +10/21/2009: 12:00 AM,1.33196252748135 +10/22/2009: 12:00 AM,1.17512395101802 +10/23/2009: 12:00 AM,1.05201361011237 +10/24/2009: 12:00 AM,0.863755995222157 +10/25/2009: 12:00 AM,1.12945308356268 +10/26/2009: 12:00 AM,1.09166259929169 +10/27/2009: 12:00 AM,0.913622210748883 +10/28/2009: 12:00 AM,1.17978377866065 +10/29/2009: 12:00 AM,1.13777334112327 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/example4.dspx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/example4.dspx new file mode 100644 index 00000000..1180b2fe --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/example4.dspx @@ -0,0 +1,26714 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/example4.sqlite b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/example4.sqlite new file mode 100644 index 00000000..cc2c53b3 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/example4.sqlite differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/example4_Backup.sqlite b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/example4_Backup.sqlite new file mode 100644 index 00000000..9f70bf7c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/example4_Backup.sqlite differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/example4_cache.sqlite b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/example4_cache.sqlite new file mode 100644 index 00000000..ad50b77e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/example4_cache.sqlite differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/hargreaves_output.txt b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/hargreaves_output.txt new file mode 100644 index 00000000..28851d77 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/cuahsi-his/hargreaves_output.txt @@ -0,0 +1,1398 @@ +Simulation Time, PET[mm/day] +01/02/2006: 12:00 AM,0.595879409389289 +01/03/2006: 12:00 AM,0.511890022662306 +01/04/2006: 12:00 AM,0.664605465950461 +01/05/2006: 12:00 AM,0.577669821570334 +01/06/2006: 12:00 AM,0.255841803676358 +01/07/2006: 12:00 AM,0.42148065877197 +01/08/2006: 12:00 AM,0.791559573585588 +01/09/2006: 12:00 AM,0.815437424597708 +01/10/2006: 12:00 AM,0.679005262815033 +01/11/2006: 12:00 AM,0.613448616859926 +01/12/2006: 12:00 AM,0.786243463425015 +01/13/2006: 12:00 AM,0.67766844870283 +01/14/2006: 12:00 AM,0.282159803383197 +01/15/2006: 12:00 AM,0.584380787680964 +01/16/2006: 12:00 AM,0.570332511465839 +01/17/2006: 12:00 AM,0.573920051125142 +01/18/2006: 12:00 AM,0.436011941236987 +01/19/2006: 12:00 AM,0.744493262153162 +01/20/2006: 12:00 AM,0.691166558333934 +01/21/2006: 12:00 AM,0.650255932381124 +01/22/2006: 12:00 AM,0.294345540487336 +01/23/2006: 12:00 AM,0.564125127189799 +01/24/2006: 12:00 AM,0.658521676964867 +01/25/2006: 12:00 AM,0.465515091989184 +01/26/2006: 12:00 AM,0.688323365556655 +01/27/2006: 12:00 AM,0.653806346691659 +01/28/2006: 12:00 AM,0.776619719195935 +01/29/2006: 12:00 AM,0.865978544142128 +01/30/2006: 12:00 AM,0.794651501048095 +01/31/2006: 12:00 AM,0.638416852150328 +02/01/2006: 12:00 AM,0.67839277689672 +02/02/2006: 12:00 AM,0.667267972203124 +02/03/2006: 12:00 AM,0.923663469760274 +02/04/2006: 12:00 AM,0.426884533710859 +02/05/2006: 12:00 AM,0.426443611431117 +02/06/2006: 12:00 AM,0.438158784261278 +02/07/2006: 12:00 AM,0.656503726790099 +02/08/2006: 12:00 AM,0.562252657099125 +02/09/2006: 12:00 AM,0.414060198931605 +02/10/2006: 12:00 AM,0.659572315146216 +02/11/2006: 12:00 AM,0.41041547954434 +02/12/2006: 12:00 AM,0.314065567748753 +02/13/2006: 12:00 AM,0.431407918884461 +02/14/2006: 12:00 AM,0.860676438590361 +02/15/2006: 12:00 AM,0.906866586372476 +02/16/2006: 12:00 AM,1.01586010254328 +02/17/2006: 12:00 AM,1.0138468298462 +02/18/2006: 12:00 AM,0.24111412077975 +02/19/2006: 12:00 AM,0.372822706410008 +02/20/2006: 12:00 AM,0.880162464543337 +02/21/2006: 12:00 AM,1.01088708719672 +02/22/2006: 12:00 AM,0.994827957564054 +02/23/2006: 12:00 AM,0.664947434149819 +02/24/2006: 12:00 AM,0.967509441349643 +02/25/2006: 12:00 AM,0.714369372048425 +02/26/2006: 12:00 AM,0.508099214459003 +02/27/2006: 12:00 AM,0.888562942696767 +02/28/2006: 12:00 AM,1.19851652214977 +03/01/2006: 12:00 AM,1.3310084956607 +03/02/2006: 12:00 AM,1.20370920072544 +03/03/2006: 12:00 AM,0.842420912025647 +03/04/2006: 12:00 AM,1.02929605836158 +03/05/2006: 12:00 AM,1.29089740284515 +03/06/2006: 12:00 AM,1.15516039600797 +03/07/2006: 12:00 AM,1.08618510541793 +03/08/2006: 12:00 AM,1.25147331316107 +03/09/2006: 12:00 AM,1.05278452385212 +03/10/2006: 12:00 AM,1.4700686355086 +03/11/2006: 12:00 AM,1.42565227646289 +03/12/2006: 12:00 AM,1.53588275667492 +03/13/2006: 12:00 AM,1.35482974975973 +03/14/2006: 12:00 AM,0.842582264122196 +03/15/2006: 12:00 AM,1.04807096186991 +03/16/2006: 12:00 AM,1.29157277107888 +03/17/2006: 12:00 AM,1.31614534415783 +03/18/2006: 12:00 AM,1.22200308532503 +03/19/2006: 12:00 AM,1.0818531234557 +03/20/2006: 12:00 AM,0.512343536618653 +03/21/2006: 12:00 AM,1.26518751380013 +03/22/2006: 12:00 AM,1.13641845131631 +03/23/2006: 12:00 AM,0.912843745457975 +03/24/2006: 12:00 AM,0.641772574009739 +03/25/2006: 12:00 AM,0.631321942084637 +03/26/2006: 12:00 AM,0.951180028315391 +03/27/2006: 12:00 AM,1.29657111021299 +03/28/2006: 12:00 AM,1.24247798649732 +03/29/2006: 12:00 AM,1.64466725035709 +03/30/2006: 12:00 AM,1.53646798943178 +03/31/2006: 12:00 AM,1.43352567299492 +04/01/2006: 12:00 AM,1.66795199511635 +04/02/2006: 12:00 AM,1.74925129619199 +04/03/2006: 12:00 AM,1.65764754600476 +04/04/2006: 12:00 AM,1.52557975204734 +04/05/2006: 12:00 AM,1.67073069382677 +04/06/2006: 12:00 AM,1.76149475711934 +04/07/2006: 12:00 AM,2.04654435051144 +04/08/2006: 12:00 AM,1.20330752365352 +04/09/2006: 12:00 AM,1.64790081961602 +04/10/2006: 12:00 AM,1.77404689992891 +04/11/2006: 12:00 AM,1.89360123094269 +04/12/2006: 12:00 AM,1.91118193041788 +04/13/2006: 12:00 AM,2.12101332578973 +04/14/2006: 12:00 AM,2.34821905541832 +04/15/2006: 12:00 AM,2.11702950960051 +04/16/2006: 12:00 AM,2.43073362989786 +04/17/2006: 12:00 AM,2.10405348398569 +04/18/2006: 12:00 AM,1.68003848458372 +04/19/2006: 12:00 AM,1.92306568344109 +04/20/2006: 12:00 AM,1.93473088150344 +04/21/2006: 12:00 AM,1.36363547496194 +04/22/2006: 12:00 AM,1.62691769720075 +04/23/2006: 12:00 AM,2.14851359718608 +04/24/2006: 12:00 AM,2.31491452200807 +04/25/2006: 12:00 AM,2.28773421563196 +04/26/2006: 12:00 AM,1.24972017125562 +04/27/2006: 12:00 AM,1.60241645032904 +04/28/2006: 12:00 AM,2.07590919666822 +04/29/2006: 12:00 AM,1.37221243487774 +04/30/2006: 12:00 AM,1.09048641743353 +05/01/2006: 12:00 AM,1.81849448094615 +05/02/2006: 12:00 AM,2.07029643160302 +05/03/2006: 12:00 AM,2.25239363389814 +05/04/2006: 12:00 AM,2.24048155998867 +05/05/2006: 12:00 AM,1.47660073548086 +05/06/2006: 12:00 AM,2.04814479262082 +05/07/2006: 12:00 AM,0.901501668466128 +05/08/2006: 12:00 AM,1.48396901047548 +05/09/2006: 12:00 AM,1.61647926813427 +05/10/2006: 12:00 AM,1.8540328511079 +05/11/2006: 12:00 AM,1.37436304667625 +05/12/2006: 12:00 AM,1.62179959590426 +05/13/2006: 12:00 AM,1.98956010982604 +05/14/2006: 12:00 AM,1.52225459210672 +05/15/2006: 12:00 AM,1.64113373877097 +05/16/2006: 12:00 AM,1.53629853951451 +05/17/2006: 12:00 AM,1.87860811623904 +05/18/2006: 12:00 AM,2.06430097409813 +05/19/2006: 12:00 AM,2.04772827766484 +05/20/2006: 12:00 AM,2.29747576353014 +05/21/2006: 12:00 AM,1.99551304016468 +05/22/2006: 12:00 AM,1.84027328083887 +05/23/2006: 12:00 AM,2.46521634679022 +05/24/2006: 12:00 AM,2.63747013422622 +05/25/2006: 12:00 AM,2.23681302801023 +05/26/2006: 12:00 AM,2.20740201278036 +05/27/2006: 12:00 AM,2.36864358106232 +05/28/2006: 12:00 AM,2.69836920323658 +05/29/2006: 12:00 AM,2.60967266577689 +05/30/2006: 12:00 AM,2.68700249467355 +05/31/2006: 12:00 AM,2.59692915366554 +06/01/2006: 12:00 AM,2.41751413922204 +06/02/2006: 12:00 AM,2.09546988941441 +06/03/2006: 12:00 AM,1.79048676148369 +06/04/2006: 12:00 AM,2.28776088226916 +06/05/2006: 12:00 AM,1.93475468488491 +06/06/2006: 12:00 AM,2.41380082655692 +06/07/2006: 12:00 AM,2.49740232927149 +06/08/2006: 12:00 AM,2.50233573919382 +06/09/2006: 12:00 AM,2.56028853697695 +06/10/2006: 12:00 AM,2.85594563667476 +06/11/2006: 12:00 AM,2.64407727774855 +06/12/2006: 12:00 AM,2.40845851958691 +06/13/2006: 12:00 AM,1.68466771122258 +06/14/2006: 12:00 AM,2.48119228336427 +06/15/2006: 12:00 AM,2.58850414764015 +06/16/2006: 12:00 AM,2.51280287299788 +06/17/2006: 12:00 AM,2.38564493214945 +06/18/2006: 12:00 AM,2.37087289310325 +06/19/2006: 12:00 AM,2.57505795986773 +06/20/2006: 12:00 AM,2.76986461085173 +06/21/2006: 12:00 AM,3.03497454479837 +06/22/2006: 12:00 AM,2.9520054669298 +06/23/2006: 12:00 AM,2.64200343449073 +06/24/2006: 12:00 AM,2.3092562243864 +06/25/2006: 12:00 AM,1.48310624549359 +06/26/2006: 12:00 AM,1.14959606429218 +06/27/2006: 12:00 AM,2.3395281931846 +06/28/2006: 12:00 AM,2.58638886991986 +06/29/2006: 12:00 AM,2.62780124930183 +06/30/2006: 12:00 AM,2.51910858669879 +07/01/2006: 12:00 AM,2.76004862543082 +07/02/2006: 12:00 AM,2.53967828423503 +07/03/2006: 12:00 AM,2.63800621021774 +07/04/2006: 12:00 AM,2.71012663074818 +07/05/2006: 12:00 AM,2.16568055029315 +07/06/2006: 12:00 AM,2.11857080229529 +07/07/2006: 12:00 AM,2.04759260943575 +07/08/2006: 12:00 AM,2.08993647516577 +07/09/2006: 12:00 AM,2.09140473622282 +07/10/2006: 12:00 AM,2.43961102252417 +07/11/2006: 12:00 AM,2.34485860312668 +07/12/2006: 12:00 AM,2.44575892082329 +07/13/2006: 12:00 AM,2.56696427095055 +07/14/2006: 12:00 AM,2.25589082007613 +07/15/2006: 12:00 AM,2.45613565703883 +07/16/2006: 12:00 AM,2.49820860623752 +07/17/2006: 12:00 AM,2.65926518525693 +07/18/2006: 12:00 AM,2.80397496609748 +07/19/2006: 12:00 AM,2.7040991178262 +07/20/2006: 12:00 AM,2.50137739230343 +07/21/2006: 12:00 AM,2.51010561796665 +07/22/2006: 12:00 AM,2.32609703055764 +07/23/2006: 12:00 AM,1.93442515881891 +07/24/2006: 12:00 AM,2.10321671486127 +07/25/2006: 12:00 AM,2.02109684457142 +07/26/2006: 12:00 AM,2.56519020206793 +07/27/2006: 12:00 AM,2.53170398758004 +07/28/2006: 12:00 AM,2.45796252478725 +07/29/2006: 12:00 AM,1.9266970893266 +07/30/2006: 12:00 AM,2.51268841958714 +07/31/2006: 12:00 AM,2.67056758939184 +08/01/2006: 12:00 AM,2.71597028058584 +08/02/2006: 12:00 AM,2.46014727339051 +08/03/2006: 12:00 AM,2.56702110579169 +08/04/2006: 12:00 AM,2.69253185598991 +08/05/2006: 12:00 AM,2.18436839091735 +08/06/2006: 12:00 AM,2.22255048604534 +08/07/2006: 12:00 AM,2.43272230694151 +08/08/2006: 12:00 AM,2.70510137428064 +08/09/2006: 12:00 AM,2.49555972738614 +08/10/2006: 12:00 AM,2.46601581901074 +08/11/2006: 12:00 AM,1.71479924041425 +08/12/2006: 12:00 AM,0.930650220778948 +08/13/2006: 12:00 AM,2.0092948067251 +08/14/2006: 12:00 AM,2.18723124426199 +08/15/2006: 12:00 AM,2.11772591003565 +08/16/2006: 12:00 AM,1.97330542264674 +08/17/2006: 12:00 AM,2.06484162163322 +08/18/2006: 12:00 AM,2.26439016099088 +08/19/2006: 12:00 AM,2.07552431809579 +08/20/2006: 12:00 AM,1.65247726278151 +08/21/2006: 12:00 AM,1.93822240658535 +08/22/2006: 12:00 AM,2.05115822583589 +08/23/2006: 12:00 AM,1.83449379492081 +08/24/2006: 12:00 AM,2.03241772709257 +08/25/2006: 12:00 AM,1.99712395661739 +08/26/2006: 12:00 AM,2.23869529993857 +08/27/2006: 12:00 AM,2.26972485511587 +08/28/2006: 12:00 AM,1.99797424633938 +08/29/2006: 12:00 AM,2.1869185946079 +08/30/2006: 12:00 AM,2.11088615849073 +08/31/2006: 12:00 AM,0.950925185492851 +09/01/2006: 12:00 AM,1.56130617857336 +09/02/2006: 12:00 AM,1.18636413559955 +09/03/2006: 12:00 AM,1.82270001732682 +09/04/2006: 12:00 AM,1.49208513844329 +09/05/2006: 12:00 AM,1.0931729292985 +09/06/2006: 12:00 AM,1.73994510153626 +09/07/2006: 12:00 AM,1.5514221205735 +09/08/2006: 12:00 AM,1.59135495899139 +09/09/2006: 12:00 AM,1.73136181297636 +09/10/2006: 12:00 AM,1.88160839463366 +09/11/2006: 12:00 AM,1.45721050091402 +09/12/2006: 12:00 AM,1.02601995146229 +09/13/2006: 12:00 AM,0.922102947731386 +09/14/2006: 12:00 AM,1.47449825860304 +09/15/2006: 12:00 AM,1.72518479866584 +09/16/2006: 12:00 AM,1.72798246691018 +09/17/2006: 12:00 AM,1.68184920482789 +09/18/2006: 12:00 AM,1.81101509857691 +09/19/2006: 12:00 AM,1.40726487121389 +09/20/2006: 12:00 AM,1.48259721068169 +09/21/2006: 12:00 AM,1.46649576172562 +09/22/2006: 12:00 AM,1.1285287594839 +09/23/2006: 12:00 AM,1.44938015187482 +09/24/2006: 12:00 AM,1.23392430096441 +09/25/2006: 12:00 AM,1.28814375909179 +09/26/2006: 12:00 AM,1.32727269851084 +09/27/2006: 12:00 AM,1.38095947120647 +09/28/2006: 12:00 AM,1.39598299369598 +09/29/2006: 12:00 AM,1.19339705480731 +09/30/2006: 12:00 AM,1.44198449123667 +10/01/2006: 12:00 AM,1.52860669022361 +10/02/2006: 12:00 AM,1.53853272564206 +10/03/2006: 12:00 AM,1.56570297745479 +10/04/2006: 12:00 AM,1.5289396401025 +10/05/2006: 12:00 AM,1.57532889130277 +10/06/2006: 12:00 AM,1.17503162263837 +10/07/2006: 12:00 AM,1.31223278831608 +10/08/2006: 12:00 AM,1.14427699987687 +10/09/2006: 12:00 AM,1.42013145496753 +10/10/2006: 12:00 AM,1.46740590051019 +10/11/2006: 12:00 AM,1.09050707074363 +10/12/2006: 12:00 AM,1.04852981380575 +10/13/2006: 12:00 AM,0.963295928104986 +10/14/2006: 12:00 AM,1.10565759836766 +10/15/2006: 12:00 AM,1.26398291919515 +10/16/2006: 12:00 AM,0.819566792120529 +10/17/2006: 12:00 AM,0.818815001715051 +10/18/2006: 12:00 AM,1.24560765011738 +10/19/2006: 12:00 AM,1.00014485933125 +10/20/2006: 12:00 AM,0.63466550935751 +10/21/2006: 12:00 AM,1.09092629390404 +10/22/2006: 12:00 AM,0.943472743101638 +10/23/2006: 12:00 AM,0.563467582590166 +10/24/2006: 12:00 AM,0.631132550863525 +10/25/2006: 12:00 AM,0.935144134432019 +10/26/2006: 12:00 AM,0.955545654852321 +10/27/2006: 12:00 AM,0.628086441866991 +10/28/2006: 12:00 AM,0.604939380151331 +10/29/2006: 12:00 AM,1.06301870290077 +10/30/2006: 12:00 AM,1.21838313056082 +10/31/2006: 12:00 AM,0.979587129697057 +11/01/2006: 12:00 AM,1.09994383613422 +11/02/2006: 12:00 AM,0.666917075136355 +11/03/2006: 12:00 AM,0.664174594362801 +11/04/2006: 12:00 AM,0.754128108648011 +11/05/2006: 12:00 AM,0.852355321927833 +11/06/2006: 12:00 AM,0.784543782114183 +11/07/2006: 12:00 AM,0.683322457969376 +11/08/2006: 12:00 AM,0.739129946120512 +11/09/2006: 12:00 AM,1.09394192712769 +11/10/2006: 12:00 AM,1.21482339387855 +11/11/2006: 12:00 AM,0.915900855208104 +11/12/2006: 12:00 AM,0.700097008685892 +11/13/2006: 12:00 AM,0.986215294781085 +11/14/2006: 12:00 AM,0.948154466911221 +11/15/2006: 12:00 AM,0.623134338395868 +11/16/2006: 12:00 AM,0 +11/17/2006: 12:00 AM,0.560320359741539 +11/18/2006: 12:00 AM,0.760396351929415 +11/19/2006: 12:00 AM,0.537776760484921 +11/20/2006: 12:00 AM,0.433543064108764 +11/21/2006: 12:00 AM,0.568700785315147 +11/22/2006: 12:00 AM,0.814875678330379 +11/23/2006: 12:00 AM,0.909621538594913 +11/24/2006: 12:00 AM,0.908843080392959 +11/25/2006: 12:00 AM,0.922144797763549 +11/26/2006: 12:00 AM,0.897737323291488 +11/27/2006: 12:00 AM,0.87423730918338 +11/28/2006: 12:00 AM,0.663262388146908 +11/29/2006: 12:00 AM,0.660879555968434 +11/30/2006: 12:00 AM,0.547666054490163 +12/01/2006: 12:00 AM,0.401471686127754 +12/02/2006: 12:00 AM,0.668548039691136 +12/03/2006: 12:00 AM,0.64192477923637 +12/04/2006: 12:00 AM,0.459025201237166 +12/05/2006: 12:00 AM,0.578447012915794 +12/06/2006: 12:00 AM,0.621004374138832 +12/07/2006: 12:00 AM,0.472415455889889 +12/08/2006: 12:00 AM,0.387238652314909 +12/09/2006: 12:00 AM,0.502071694464211 +12/10/2006: 12:00 AM,0.568434708302798 +12/11/2006: 12:00 AM,0.748637198401855 +12/12/2006: 12:00 AM,0.669671804647622 +12/13/2006: 12:00 AM,0.625287451432247 +12/14/2006: 12:00 AM,0.62900097080706 +12/15/2006: 12:00 AM,0.757238235684453 +12/16/2006: 12:00 AM,0.848072910565826 +12/17/2006: 12:00 AM,0.811273187694337 +12/18/2006: 12:00 AM,0.810509097257843 +12/19/2006: 12:00 AM,0.750685701651316 +12/20/2006: 12:00 AM,0.501802852707481 +12/21/2006: 12:00 AM,0.464561883577172 +12/22/2006: 12:00 AM,0.405351418052326 +12/23/2006: 12:00 AM,0.555412483962505 +12/24/2006: 12:00 AM,0.68623049118484 +12/25/2006: 12:00 AM,0.529118809337406 +12/26/2006: 12:00 AM,0.0977498743247513 +12/27/2006: 12:00 AM,0.521259609764143 +12/28/2006: 12:00 AM,0.588493124261906 +12/29/2006: 12:00 AM,0.674640080031692 +12/30/2006: 12:00 AM,0.587354676997379 +12/31/2006: 12:00 AM,0.564959557574769 +01/01/2007: 12:00 AM,0.588847023280066 +01/02/2007: 12:00 AM,0.735225179979443 +01/03/2007: 12:00 AM,0.64038882333034 +01/04/2007: 12:00 AM,0.753223404129518 +01/05/2007: 12:00 AM,0.684191246925577 +01/06/2007: 12:00 AM,0.78907990214814 +01/07/2007: 12:00 AM,0.591976420555998 +01/08/2007: 12:00 AM,0.340281079811582 +01/09/2007: 12:00 AM,0.355316656849086 +01/10/2007: 12:00 AM,0.427410517497618 +01/11/2007: 12:00 AM,0.493331280840878 +01/12/2007: 12:00 AM,0.541272322319617 +01/13/2007: 12:00 AM,0.725987444511147 +01/14/2007: 12:00 AM,0.770862309864947 +01/15/2007: 12:00 AM,0.608430414808349 +01/16/2007: 12:00 AM,0.134067695624298 +01/17/2007: 12:00 AM,0.437591756616995 +01/18/2007: 12:00 AM,0.326667545165357 +01/19/2007: 12:00 AM,0.475502496275705 +01/20/2007: 12:00 AM,0.59980429893866 +01/21/2007: 12:00 AM,0.366219319369823 +01/22/2007: 12:00 AM,0.452396183696026 +01/23/2007: 12:00 AM,0.420038453366975 +01/24/2007: 12:00 AM,0.527107735089186 +01/25/2007: 12:00 AM,0.413164789151248 +01/26/2007: 12:00 AM,0.638149114042471 +01/27/2007: 12:00 AM,0.773600315319596 +01/28/2007: 12:00 AM,0 +01/29/2007: 12:00 AM,0.403699116514699 +01/30/2007: 12:00 AM,0.539883948190348 +01/31/2007: 12:00 AM,0.479751919428107 +02/01/2007: 12:00 AM,0.364306428210237 +02/02/2007: 12:00 AM,0.548727602039997 +02/03/2007: 12:00 AM,0.404176386873771 +02/04/2007: 12:00 AM,0.376012829799574 +02/05/2007: 12:00 AM,0.411615287575045 +02/06/2007: 12:00 AM,0.635049585350213 +02/07/2007: 12:00 AM,0.865031031528748 +02/08/2007: 12:00 AM,0.675155725081496 +02/09/2007: 12:00 AM,0.487891166632782 +02/10/2007: 12:00 AM,0.579278327558798 +02/11/2007: 12:00 AM,0.791218061563041 +02/12/2007: 12:00 AM,1.02211589534956 +02/13/2007: 12:00 AM,0.736536003489749 +02/14/2007: 12:00 AM,0.444556886274915 +02/15/2007: 12:00 AM,0.52514342557329 +02/16/2007: 12:00 AM,0.492881600965663 +02/17/2007: 12:00 AM,0.405350716904537 +02/18/2007: 12:00 AM,0.485716605461604 +02/19/2007: 12:00 AM,0.898267835243052 +02/20/2007: 12:00 AM,0.929766282639554 +02/21/2007: 12:00 AM,0.977610859136775 +02/22/2007: 12:00 AM,1.04768196059043 +02/23/2007: 12:00 AM,1.00375979700715 +02/24/2007: 12:00 AM,0.882592771487319 +02/25/2007: 12:00 AM,0.882110941057989 +02/26/2007: 12:00 AM,1.04605646088264 +02/27/2007: 12:00 AM,1.16207535836967 +02/28/2007: 12:00 AM,1.26402130587882 +03/01/2007: 12:00 AM,0.874989999253315 +03/02/2007: 12:00 AM,0.966441330390142 +03/03/2007: 12:00 AM,0.875755714836109 +03/04/2007: 12:00 AM,0.682416378316095 +03/05/2007: 12:00 AM,1.06775374113739 +03/06/2007: 12:00 AM,1.16081706256003 +03/07/2007: 12:00 AM,1.26209412612701 +03/08/2007: 12:00 AM,1.41092230756156 +03/09/2007: 12:00 AM,1.08840776788574 +03/10/2007: 12:00 AM,1.24487398732725 +03/11/2007: 12:00 AM,1.38628598130376 +03/12/2007: 12:00 AM,1.55300790309294 +03/13/2007: 12:00 AM,1.65590523929811 +03/14/2007: 12:00 AM,1.56317644385465 +03/15/2007: 12:00 AM,1.27634546390367 +03/16/2007: 12:00 AM,0.601632629950474 +03/17/2007: 12:00 AM,0.660360145650585 +03/18/2007: 12:00 AM,1.0024721329332 +03/19/2007: 12:00 AM,1.41892710191466 +03/20/2007: 12:00 AM,1.5714454966628 +03/21/2007: 12:00 AM,1.43559454893632 +03/22/2007: 12:00 AM,1.37203431817931 +03/23/2007: 12:00 AM,1.86987317474225 +03/24/2007: 12:00 AM,1.84418109621431 +03/25/2007: 12:00 AM,2.06621075688979 +03/26/2007: 12:00 AM,1.69166617197537 +03/27/2007: 12:00 AM,1.86181028211795 +03/28/2007: 12:00 AM,1.78416887155623 +03/29/2007: 12:00 AM,1.24056308263533 +03/30/2007: 12:00 AM,1.33716855587274 +03/31/2007: 12:00 AM,1.71818021193986 +04/01/2007: 12:00 AM,0.69794164410421 +04/02/2007: 12:00 AM,1.82335360999996 +04/03/2007: 12:00 AM,2.01308320436355 +04/04/2007: 12:00 AM,1.54859651260686 +04/05/2007: 12:00 AM,1.17289310732904 +04/06/2007: 12:00 AM,1.15101163598665 +04/07/2007: 12:00 AM,0.660305793026999 +04/08/2007: 12:00 AM,1.09281892319959 +04/09/2007: 12:00 AM,1.063639163583 +04/10/2007: 12:00 AM,1.44398707247604 +04/11/2007: 12:00 AM,1.03320959319342 +04/12/2007: 12:00 AM,1.5596771281106 +04/13/2007: 12:00 AM,1.5118231892981 +04/14/2007: 12:00 AM,1.57233667780981 +04/15/2007: 12:00 AM,0.887435785993238 +04/16/2007: 12:00 AM,1.4034245689178 +04/17/2007: 12:00 AM,1.8052947778854 +04/18/2007: 12:00 AM,1.54703553180759 +04/19/2007: 12:00 AM,1.75530925871362 +04/20/2007: 12:00 AM,1.85417966686643 +04/21/2007: 12:00 AM,1.98733892085236 +04/22/2007: 12:00 AM,2.17836365893062 +04/23/2007: 12:00 AM,2.32397278220579 +04/24/2007: 12:00 AM,1.86431797586612 +04/25/2007: 12:00 AM,2.27499387683364 +04/26/2007: 12:00 AM,1.39293646628836 +04/27/2007: 12:00 AM,1.6321406588601 +04/28/2007: 12:00 AM,1.77200524375758 +04/29/2007: 12:00 AM,2.13049544830157 +04/30/2007: 12:00 AM,2.58334625690468 +05/01/2007: 12:00 AM,2.62793489538774 +05/02/2007: 12:00 AM,1.32894535063746 +05/03/2007: 12:00 AM,2.28994654793171 +05/04/2007: 12:00 AM,1.89887704266326 +05/05/2007: 12:00 AM,0.915872449152137 +05/06/2007: 12:00 AM,1.76026775002529 +05/07/2007: 12:00 AM,2.26317185227597 +05/08/2007: 12:00 AM,2.47513703331266 +05/09/2007: 12:00 AM,2.37005670200348 +05/10/2007: 12:00 AM,2.49008211187817 +05/11/2007: 12:00 AM,2.52951996676444 +05/12/2007: 12:00 AM,1.66659115912571 +05/13/2007: 12:00 AM,2.38221530802613 +05/14/2007: 12:00 AM,1.69888724343296 +05/15/2007: 12:00 AM,2.34637120592201 +05/16/2007: 12:00 AM,1.78178153809353 +05/17/2007: 12:00 AM,2.04571398629347 +05/18/2007: 12:00 AM,1.8297833124873 +05/19/2007: 12:00 AM,2.18225316258109 +05/20/2007: 12:00 AM,2.44550109798853 +05/21/2007: 12:00 AM,2.61743812044499 +05/22/2007: 12:00 AM,2.51344814659478 +05/23/2007: 12:00 AM,2.40601909343509 +05/24/2007: 12:00 AM,2.12284697546786 +05/25/2007: 12:00 AM,2.45675877499985 +05/26/2007: 12:00 AM,2.53835979037269 +05/27/2007: 12:00 AM,2.52262643004771 +05/28/2007: 12:00 AM,2.40893726463815 +05/29/2007: 12:00 AM,2.55014680451407 +05/30/2007: 12:00 AM,2.6270004207809 +05/31/2007: 12:00 AM,2.74693725600577 +06/01/2007: 12:00 AM,2.42318369654732 +06/02/2007: 12:00 AM,1.73470819191535 +06/03/2007: 12:00 AM,2.09785398193175 +06/04/2007: 12:00 AM,2.31913574861469 +06/05/2007: 12:00 AM,2.40791349471335 +06/06/2007: 12:00 AM,2.57452155561326 +06/07/2007: 12:00 AM,2.65519899506036 +06/08/2007: 12:00 AM,2.47024494442684 +06/09/2007: 12:00 AM,2.81765391385275 +06/10/2007: 12:00 AM,2.8053792540943 +06/11/2007: 12:00 AM,2.0130980621054 +06/12/2007: 12:00 AM,2.33361171116253 +06/13/2007: 12:00 AM,2.38361352836773 +06/14/2007: 12:00 AM,2.22099797473735 +06/15/2007: 12:00 AM,1.85047873486858 +06/16/2007: 12:00 AM,2.52393092397834 +06/17/2007: 12:00 AM,2.81377026910154 +06/18/2007: 12:00 AM,2.5093892641028 +06/19/2007: 12:00 AM,2.38191796639607 +06/20/2007: 12:00 AM,2.21442395059306 +06/21/2007: 12:00 AM,2.814141220682 +06/22/2007: 12:00 AM,2.64834240186341 +06/23/2007: 12:00 AM,2.79215613915221 +06/24/2007: 12:00 AM,2.57080464678717 +06/25/2007: 12:00 AM,2.5378698637742 +06/26/2007: 12:00 AM,2.37964982354721 +06/27/2007: 12:00 AM,2.51246622289245 +06/28/2007: 12:00 AM,2.46479443483763 +06/29/2007: 12:00 AM,2.47619590101098 +06/30/2007: 12:00 AM,2.26626077662515 +07/01/2007: 12:00 AM,2.3344748564366 +07/02/2007: 12:00 AM,1.2973059287386 +07/03/2007: 12:00 AM,1.75676678004338 +07/04/2007: 12:00 AM,2.26286621566881 +07/05/2007: 12:00 AM,2.53341549056989 +07/06/2007: 12:00 AM,2.3275370994712 +07/07/2007: 12:00 AM,2.11850629376618 +07/08/2007: 12:00 AM,2.44534575744316 +07/09/2007: 12:00 AM,2.54400801104053 +07/10/2007: 12:00 AM,2.28936243876775 +07/11/2007: 12:00 AM,2.03042659544319 +07/12/2007: 12:00 AM,2.41611233383249 +07/13/2007: 12:00 AM,1.48627072856328 +07/14/2007: 12:00 AM,2.10776379801956 +07/15/2007: 12:00 AM,2.16712794527439 +07/16/2007: 12:00 AM,2.41868976376673 +07/17/2007: 12:00 AM,1.99756624168861 +07/18/2007: 12:00 AM,2.32526777247691 +07/19/2007: 12:00 AM,2.56373469004818 +07/20/2007: 12:00 AM,2.08158586392428 +07/21/2007: 12:00 AM,2.15859420624147 +07/22/2007: 12:00 AM,1.92137892208861 +07/23/2007: 12:00 AM,1.95140951049117 +07/24/2007: 12:00 AM,1.74784513696292 +07/25/2007: 12:00 AM,2.1685289518497 +07/26/2007: 12:00 AM,2.28749263614301 +07/27/2007: 12:00 AM,2.31237570184409 +07/28/2007: 12:00 AM,1.85530362111219 +07/29/2007: 12:00 AM,2.00417162027372 +07/30/2007: 12:00 AM,2.14367088999024 +07/31/2007: 12:00 AM,2.28506090996909 +08/01/2007: 12:00 AM,2.31624422905501 +08/02/2007: 12:00 AM,2.20389258765631 +08/03/2007: 12:00 AM,2.33394941079805 +08/04/2007: 12:00 AM,2.50442993590482 +08/05/2007: 12:00 AM,2.18982549871369 +08/06/2007: 12:00 AM,2.37655985701698 +08/07/2007: 12:00 AM,2.45449611224654 +08/08/2007: 12:00 AM,2.52725443363807 +08/09/2007: 12:00 AM,2.50522993922533 +08/10/2007: 12:00 AM,2.5627588144771 +08/11/2007: 12:00 AM,2.51510214041658 +08/12/2007: 12:00 AM,2.05829543670589 +08/13/2007: 12:00 AM,2.41588264015864 +08/14/2007: 12:00 AM,2.49568416802678 +08/15/2007: 12:00 AM,2.65374022017445 +08/16/2007: 12:00 AM,2.6707918307592 +08/17/2007: 12:00 AM,2.18649392269069 +08/18/2007: 12:00 AM,2.51756106983777 +08/19/2007: 12:00 AM,2.40214896962922 +08/20/2007: 12:00 AM,2.36434089462975 +08/21/2007: 12:00 AM,2.50966751420444 +08/22/2007: 12:00 AM,2.56131599001281 +08/23/2007: 12:00 AM,2.45968322299671 +08/24/2007: 12:00 AM,2.17448181921268 +08/25/2007: 12:00 AM,2.20483698816038 +08/26/2007: 12:00 AM,1.8600281168146 +08/27/2007: 12:00 AM,2.15394621021089 +08/28/2007: 12:00 AM,2.10966439514726 +08/29/2007: 12:00 AM,2.19161582730665 +08/30/2007: 12:00 AM,1.7040859317289 +08/31/2007: 12:00 AM,1.94355083969989 +09/01/2007: 12:00 AM,1.78552314062105 +09/02/2007: 12:00 AM,1.88586139033124 +09/03/2007: 12:00 AM,2.14343024981161 +09/04/2007: 12:00 AM,2.17537523204326 +09/05/2007: 12:00 AM,2.25460409578723 +09/06/2007: 12:00 AM,2.01499401989271 +09/07/2007: 12:00 AM,1.86279672471812 +09/08/2007: 12:00 AM,2.12494797923101 +09/09/2007: 12:00 AM,2.16152028441938 +09/10/2007: 12:00 AM,1.90006388849981 +09/11/2007: 12:00 AM,1.94232305292357 +09/12/2007: 12:00 AM,1.93051439231252 +09/13/2007: 12:00 AM,1.86882450274853 +09/14/2007: 12:00 AM,0.928399982154241 +09/15/2007: 12:00 AM,1.66609209735556 +09/16/2007: 12:00 AM,1.63941277051966 +09/17/2007: 12:00 AM,1.69626268703336 +09/18/2007: 12:00 AM,1.70145048507375 +09/19/2007: 12:00 AM,1.89417206562149 +09/20/2007: 12:00 AM,1.78831276665431 +09/21/2007: 12:00 AM,1.41546368898798 +09/22/2007: 12:00 AM,1.75913726730919 +09/23/2007: 12:00 AM,1.88586219846782 +09/24/2007: 12:00 AM,1.83988956872398 +09/25/2007: 12:00 AM,1.75541883858906 +09/26/2007: 12:00 AM,1.77854278939288 +09/27/2007: 12:00 AM,1.67905841994536 +09/28/2007: 12:00 AM,1.53524335111502 +09/29/2007: 12:00 AM,1.66350841606758 +09/30/2007: 12:00 AM,1.62784586154969 +10/01/2007: 12:00 AM,1.63741673931735 +10/02/2007: 12:00 AM,1.67178597551064 +10/03/2007: 12:00 AM,1.08887890913015 +10/04/2007: 12:00 AM,1.1749829150873 +10/05/2007: 12:00 AM,1.02162900578308 +10/06/2007: 12:00 AM,1.53477642514217 +10/07/2007: 12:00 AM,1.63880867294234 +10/08/2007: 12:00 AM,1.61508697080288 +10/09/2007: 12:00 AM,1.49229334080234 +10/10/2007: 12:00 AM,1.51063190502911 +10/11/2007: 12:00 AM,1.07467755115907 +10/12/2007: 12:00 AM,1.27398316088779 +10/13/2007: 12:00 AM,1.38587824694921 +10/14/2007: 12:00 AM,1.49979651437713 +10/15/2007: 12:00 AM,1.42650607785436 +10/16/2007: 12:00 AM,1.18622860864112 +10/17/2007: 12:00 AM,1.18159186614419 +10/18/2007: 12:00 AM,0.985820488440853 +10/19/2007: 12:00 AM,0.913989072698242 +10/20/2007: 12:00 AM,1.21759561872092 +10/21/2007: 12:00 AM,1.3136872047477 +10/22/2007: 12:00 AM,0.990098382929255 +10/23/2007: 12:00 AM,1.09032099891226 +10/24/2007: 12:00 AM,0.631125377315323 +10/25/2007: 12:00 AM,0.742446737550405 +10/26/2007: 12:00 AM,0.923677401418002 +10/27/2007: 12:00 AM,1.00482337984486 +10/28/2007: 12:00 AM,1.03251283592074 +10/29/2007: 12:00 AM,0.963917313006384 +10/30/2007: 12:00 AM,1.0825452173663 +10/31/2007: 12:00 AM,1.04836168407206 +11/01/2007: 12:00 AM,1.06857829754635 +11/02/2007: 12:00 AM,0.952774476118325 +11/03/2007: 12:00 AM,0.962377269089925 +11/04/2007: 12:00 AM,0.828751481134293 +11/05/2007: 12:00 AM,1.02728098127498 +11/06/2007: 12:00 AM,0.535388993391754 +11/07/2007: 12:00 AM,0.679774206971839 +11/08/2007: 12:00 AM,0.671445653109688 +11/09/2007: 12:00 AM,0.842175375379365 +11/10/2007: 12:00 AM,0.764910602585145 +11/11/2007: 12:00 AM,0.790792933732878 +11/12/2007: 12:00 AM,0.905756085244625 +11/13/2007: 12:00 AM,0.78147181852677 +11/14/2007: 12:00 AM,1.02086211976263 +11/15/2007: 12:00 AM,0.23467506725525 +11/16/2007: 12:00 AM,0.600957777247975 +11/17/2007: 12:00 AM,0.734802722992136 +11/18/2007: 12:00 AM,0.86518612457486 +11/19/2007: 12:00 AM,0.946125594442731 +11/20/2007: 12:00 AM,0.976858390888306 +11/21/2007: 12:00 AM,0.828217377606376 +11/22/2007: 12:00 AM,0.69665206461291 +11/23/2007: 12:00 AM,0.418866278683044 +11/24/2007: 12:00 AM,0.508337357253214 +11/25/2007: 12:00 AM,0.639981525409559 +11/26/2007: 12:00 AM,0.655298246328384 +11/27/2007: 12:00 AM,0.483929337975826 +11/28/2007: 12:00 AM,0.717462813428219 +11/29/2007: 12:00 AM,0.685537651988121 +11/30/2007: 12:00 AM,0.666673030249802 +12/01/2007: 12:00 AM,0.721779407977863 +12/02/2007: 12:00 AM,0.732933265377269 +12/03/2007: 12:00 AM,0.515781129711207 +12/04/2007: 12:00 AM,0.560807723276551 +12/05/2007: 12:00 AM,0.654236801808667 +12/06/2007: 12:00 AM,0.420726259695539 +12/07/2007: 12:00 AM,0.665893555914241 +12/08/2007: 12:00 AM,0.728296079248539 +12/09/2007: 12:00 AM,0.741672430498629 +12/10/2007: 12:00 AM,0.787849674011903 +12/11/2007: 12:00 AM,0.900030944374785 +12/12/2007: 12:00 AM,0.829098269455846 +12/13/2007: 12:00 AM,0.661972986460138 +12/14/2007: 12:00 AM,0.658667674517517 +12/15/2007: 12:00 AM,0.543988950142368 +12/16/2007: 12:00 AM,0.196501018101255 +12/17/2007: 12:00 AM,0.408327215710478 +12/18/2007: 12:00 AM,0.453170570073586 +12/19/2007: 12:00 AM,0.423938147438068 +12/20/2007: 12:00 AM,0.465507022326132 +12/21/2007: 12:00 AM,0.437786464167966 +12/22/2007: 12:00 AM,0.431570425542921 +12/23/2007: 12:00 AM,0.481901230402818 +12/24/2007: 12:00 AM,0.522949850003858 +12/25/2007: 12:00 AM,0.406779070839585 +12/26/2007: 12:00 AM,0.473071135942843 +12/27/2007: 12:00 AM,0.656390895565529 +12/28/2007: 12:00 AM,0.658601179329833 +12/29/2007: 12:00 AM,0.766833461084982 +12/30/2007: 12:00 AM,0.4252944025262 +12/31/2007: 12:00 AM,0.557315672572604 +01/01/2008: 12:00 AM,0.308078593092168 +01/02/2008: 12:00 AM,0.215475400569408 +01/03/2008: 12:00 AM,0.331063203476323 +01/04/2008: 12:00 AM,0.478683466973502 +01/05/2008: 12:00 AM,0.571005956899332 +01/06/2008: 12:00 AM,0.749299922257076 +01/07/2008: 12:00 AM,0.818056844485008 +01/08/2008: 12:00 AM,0.546183839980497 +01/09/2008: 12:00 AM,0.572649364598049 +01/10/2008: 12:00 AM,0.591672190475739 +01/11/2008: 12:00 AM,0.653660365725409 +01/12/2008: 12:00 AM,0.613338568974689 +01/13/2008: 12:00 AM,0.517069660385134 +01/14/2008: 12:00 AM,0.449298758761738 +01/15/2008: 12:00 AM,0.397972168692525 +01/16/2008: 12:00 AM,0.398031476974001 +01/17/2008: 12:00 AM,0.365421577050133 +01/18/2008: 12:00 AM,0.550471729637741 +01/19/2008: 12:00 AM,0.215704802499073 +01/20/2008: 12:00 AM,0.282345651721013 +01/21/2008: 12:00 AM,0.394443880245807 +01/22/2008: 12:00 AM,0.459243147667879 +01/23/2008: 12:00 AM,0.58385168431282 +01/24/2008: 12:00 AM,0.416989513312716 +01/25/2008: 12:00 AM,0.473341861674847 +01/26/2008: 12:00 AM,0.595420024285298 +01/27/2008: 12:00 AM,0.634062311204735 +01/28/2008: 12:00 AM,0.798698757411239 +01/29/2008: 12:00 AM,0.826011778443239 +01/30/2008: 12:00 AM,0.548121428520803 +01/31/2008: 12:00 AM,0.622532382613191 +02/01/2008: 12:00 AM,0.416195876067495 +02/02/2008: 12:00 AM,0.872321603156 +02/03/2008: 12:00 AM,0.92204627941177 +02/04/2008: 12:00 AM,0.780867696622575 +02/05/2008: 12:00 AM,1.05673189310411 +02/06/2008: 12:00 AM,0.463718137781511 +02/07/2008: 12:00 AM,0.837124210179891 +02/08/2008: 12:00 AM,0.844496389063688 +02/09/2008: 12:00 AM,0.797586766832653 +02/10/2008: 12:00 AM,0.77917004236549 +02/11/2008: 12:00 AM,0.942226337583124 +02/12/2008: 12:00 AM,0.773731246858951 +02/13/2008: 12:00 AM,0.377991334129906 +02/14/2008: 12:00 AM,0.901108868062322 +02/15/2008: 12:00 AM,0.954844652540597 +02/16/2008: 12:00 AM,1.05945478600523 +02/17/2008: 12:00 AM,0.678651678864477 +02/18/2008: 12:00 AM,0.591408804131318 +02/19/2008: 12:00 AM,0.518050365671436 +02/20/2008: 12:00 AM,0.840079678388681 +02/21/2008: 12:00 AM,0.671031494620145 +02/22/2008: 12:00 AM,0.750887398041564 +02/23/2008: 12:00 AM,0.921081553290176 +02/24/2008: 12:00 AM,0.785528653641518 +02/25/2008: 12:00 AM,1.16047103733614 +02/26/2008: 12:00 AM,0.907976718676433 +02/27/2008: 12:00 AM,0.329048065134328 +02/28/2008: 12:00 AM,0.632329343359291 +02/29/2008: 12:00 AM,0.717349927185577 +03/01/2008: 12:00 AM,1.07449463064605 +03/02/2008: 12:00 AM,1.17959875977038 +03/03/2008: 12:00 AM,1.20983521699838 +03/04/2008: 12:00 AM,1.04103097196474 +03/05/2008: 12:00 AM,1.16856377900347 +03/06/2008: 12:00 AM,1.30751884237465 +03/07/2008: 12:00 AM,0.908134110368515 +03/08/2008: 12:00 AM,0 +03/09/2008: 12:00 AM,1.05689838460707 +03/10/2008: 12:00 AM,1.29447356290026 +03/11/2008: 12:00 AM,0.911774569226987 +03/12/2008: 12:00 AM,1.34919460312526 +03/13/2008: 12:00 AM,1.54173595594748 +03/14/2008: 12:00 AM,1.06062760856419 +03/15/2008: 12:00 AM,0.888009776573004 +03/16/2008: 12:00 AM,1.0134027934632 +03/17/2008: 12:00 AM,1.05466299217621 +03/18/2008: 12:00 AM,1.06673249697693 +03/19/2008: 12:00 AM,1.17728018618849 +03/20/2008: 12:00 AM,1.02210447617279 +03/21/2008: 12:00 AM,1.40713879403315 +03/22/2008: 12:00 AM,1.56983962813205 +03/23/2008: 12:00 AM,1.10933074830177 +03/24/2008: 12:00 AM,0.750863181027901 +03/25/2008: 12:00 AM,1.1283447073908 +03/26/2008: 12:00 AM,1.5239904765353 +03/27/2008: 12:00 AM,1.6587052283213 +03/28/2008: 12:00 AM,1.38554559314195 +03/29/2008: 12:00 AM,0.898320918418453 +03/30/2008: 12:00 AM,0.616131213998529 +03/31/2008: 12:00 AM,1.0761983849122 +04/01/2008: 12:00 AM,1.75009279228871 +04/02/2008: 12:00 AM,1.79807251502028 +04/03/2008: 12:00 AM,0.751595926737948 +04/04/2008: 12:00 AM,1.45916017641841 +04/05/2008: 12:00 AM,0.856652263330096 +04/06/2008: 12:00 AM,1.38024871788868 +04/07/2008: 12:00 AM,1.48742566943133 +04/08/2008: 12:00 AM,1.17362003265213 +04/09/2008: 12:00 AM,1.8866094512388 +04/10/2008: 12:00 AM,1.74401807769807 +04/11/2008: 12:00 AM,1.75479626150914 +04/12/2008: 12:00 AM,1.44856338622486 +04/13/2008: 12:00 AM,0.955374275276112 +04/14/2008: 12:00 AM,0.816912640138598 +04/15/2008: 12:00 AM,1.33187658008925 +04/16/2008: 12:00 AM,1.88434080285633 +04/17/2008: 12:00 AM,2.22417243283617 +04/18/2008: 12:00 AM,2.12309830625458 +04/19/2008: 12:00 AM,1.32402058372004 +04/20/2008: 12:00 AM,1.4609931058494 +04/21/2008: 12:00 AM,1.93382803460632 +04/22/2008: 12:00 AM,2.18007292276608 +04/23/2008: 12:00 AM,2.10380758604627 +04/24/2008: 12:00 AM,2.09507351403928 +04/25/2008: 12:00 AM,2.02099955858628 +04/26/2008: 12:00 AM,2.09968310403329 +04/27/2008: 12:00 AM,1.51401157357715 +04/28/2008: 12:00 AM,1.02658252257823 +04/29/2008: 12:00 AM,1.30907497645389 +04/30/2008: 12:00 AM,2.08588491068415 +05/01/2008: 12:00 AM,2.17090139234067 +05/02/2008: 12:00 AM,1.94594825667822 +05/03/2008: 12:00 AM,1.04496047102531 +05/04/2008: 12:00 AM,2.15941657047457 +05/05/2008: 12:00 AM,2.16694589813244 +05/06/2008: 12:00 AM,2.37136944811862 +05/07/2008: 12:00 AM,2.12588906740741 +05/08/2008: 12:00 AM,1.86961454563272 +05/09/2008: 12:00 AM,1.94043984333683 +05/10/2008: 12:00 AM,2.00074510914881 +05/11/2008: 12:00 AM,1.35061922502852 +05/12/2008: 12:00 AM,1.59886211131548 +05/13/2008: 12:00 AM,2.28210494987491 +05/14/2008: 12:00 AM,1.61502289193345 +05/15/2008: 12:00 AM,1.27063368207021 +05/16/2008: 12:00 AM,1.35974419997163 +05/17/2008: 12:00 AM,2.12859569598091 +05/18/2008: 12:00 AM,1.78287836738416 +05/19/2008: 12:00 AM,2.2012692143408 +05/20/2008: 12:00 AM,2.27467690171861 +05/21/2008: 12:00 AM,1.94729847194792 +05/22/2008: 12:00 AM,2.49720819324452 +05/23/2008: 12:00 AM,2.44894779942695 +05/24/2008: 12:00 AM,2.21651990220735 +05/25/2008: 12:00 AM,2.26677296530576 +05/26/2008: 12:00 AM,2.53892883554304 +05/27/2008: 12:00 AM,2.40991417135397 +05/28/2008: 12:00 AM,1.51624102658452 +05/29/2008: 12:00 AM,2.08469711770465 +05/30/2008: 12:00 AM,2.25087367248304 +05/31/2008: 12:00 AM,2.16889896883343 +06/01/2008: 12:00 AM,1.61940407517152 +06/02/2008: 12:00 AM,2.36400946288136 +06/03/2008: 12:00 AM,2.29572894366145 +06/04/2008: 12:00 AM,2.5895004129415 +06/05/2008: 12:00 AM,2.70202513795608 +06/06/2008: 12:00 AM,2.78598096893087 +06/07/2008: 12:00 AM,2.65761290127641 +06/08/2008: 12:00 AM,2.93683963595444 +06/09/2008: 12:00 AM,2.81341292974836 +06/10/2008: 12:00 AM,2.69404590295956 +06/11/2008: 12:00 AM,2.56634772219849 +06/12/2008: 12:00 AM,2.37807314230352 +06/13/2008: 12:00 AM,2.33404385384134 +06/14/2008: 12:00 AM,2.2070186089809 +06/15/2008: 12:00 AM,2.40517272455127 +06/16/2008: 12:00 AM,2.38123229495651 +06/17/2008: 12:00 AM,2.37294641266535 +06/18/2008: 12:00 AM,2.47918470875043 +06/19/2008: 12:00 AM,2.50759695766127 +06/20/2008: 12:00 AM,2.56947612171862 +06/21/2008: 12:00 AM,2.14498031657308 +06/22/2008: 12:00 AM,2.34183155080426 +06/23/2008: 12:00 AM,2.62503837489173 +06/24/2008: 12:00 AM,2.74473289057771 +06/25/2008: 12:00 AM,2.76214810918077 +06/26/2008: 12:00 AM,2.87823068054538 +06/27/2008: 12:00 AM,2.59322157464142 +06/28/2008: 12:00 AM,2.47309312822071 +06/29/2008: 12:00 AM,2.09621695631064 +06/30/2008: 12:00 AM,2.17176172280214 +07/01/2008: 12:00 AM,2.34403287625913 +07/02/2008: 12:00 AM,2.58677667294727 +07/03/2008: 12:00 AM,2.55456988818404 +07/04/2008: 12:00 AM,2.56985873591545 +07/05/2008: 12:00 AM,2.25552150432467 +07/06/2008: 12:00 AM,2.51765119188049 +07/07/2008: 12:00 AM,2.41789378550504 +07/08/2008: 12:00 AM,2.28923343541076 +07/09/2008: 12:00 AM,2.4861782339805 +07/10/2008: 12:00 AM,2.06929447699216 +07/11/2008: 12:00 AM,2.18168939930007 +07/12/2008: 12:00 AM,2.52906712945964 +07/13/2008: 12:00 AM,1.73547458658927 +07/14/2008: 12:00 AM,2.39675880178481 +07/15/2008: 12:00 AM,2.5018827461707 +07/16/2008: 12:00 AM,2.44257065028673 +07/17/2008: 12:00 AM,2.46565619262958 +07/18/2008: 12:00 AM,2.6755153024032 +07/19/2008: 12:00 AM,2.27146241303015 +07/20/2008: 12:00 AM,2.68870412755894 +07/21/2008: 12:00 AM,2.83155036685092 +07/22/2008: 12:00 AM,2.60697064163115 +07/23/2008: 12:00 AM,2.4498401643274 +07/24/2008: 12:00 AM,2.47079749910216 +07/25/2008: 12:00 AM,2.09100624488931 +07/26/2008: 12:00 AM,2.04779766782957 +07/27/2008: 12:00 AM,2.6201386986979 +07/28/2008: 12:00 AM,2.6172104550332 +07/29/2008: 12:00 AM,2.22223230133561 +07/30/2008: 12:00 AM,2.62845244332835 +07/31/2008: 12:00 AM,2.31624422905501 +08/01/2008: 12:00 AM,2.51824380149984 +08/02/2008: 12:00 AM,2.72731455591161 +08/03/2008: 12:00 AM,2.53268693862074 +08/04/2008: 12:00 AM,2.65861312033746 +08/05/2008: 12:00 AM,2.6302688834883 +08/06/2008: 12:00 AM,2.52192228850628 +08/07/2008: 12:00 AM,2.39100686077475 +08/08/2008: 12:00 AM,2.09730319792961 +08/09/2008: 12:00 AM,2.33092891252349 +08/10/2008: 12:00 AM,2.18663729162356 +08/11/2008: 12:00 AM,2.40145688220861 +08/12/2008: 12:00 AM,2.22564708121243 +08/13/2008: 12:00 AM,2.03898680008528 +08/14/2008: 12:00 AM,2.20532128899159 +08/15/2008: 12:00 AM,2.31239142303959 +08/16/2008: 12:00 AM,1.82996443536398 +08/17/2008: 12:00 AM,2.1428634445651 +08/18/2008: 12:00 AM,2.14090260199889 +08/19/2008: 12:00 AM,2.40493996447902 +08/20/2008: 12:00 AM,2.33439050417583 +08/21/2008: 12:00 AM,2.14147964418821 +08/22/2008: 12:00 AM,1.90028611789934 +08/23/2008: 12:00 AM,1.90956071592878 +08/24/2008: 12:00 AM,1.62885002281569 +08/25/2008: 12:00 AM,1.28754185361713 +08/26/2008: 12:00 AM,1.02854188852106 +08/27/2008: 12:00 AM,1.47597808373873 +08/28/2008: 12:00 AM,1.5990536733056 +08/29/2008: 12:00 AM,2.15364802272037 +08/30/2008: 12:00 AM,2.28090874297502 +08/31/2008: 12:00 AM,2.06004331131446 +09/01/2008: 12:00 AM,1.6334249143494 +09/02/2008: 12:00 AM,1.90964109673356 +09/03/2008: 12:00 AM,2.08991679265678 +09/04/2008: 12:00 AM,1.99953826678047 +09/05/2008: 12:00 AM,2.10424824238788 +09/06/2008: 12:00 AM,1.9414576271999 +09/07/2008: 12:00 AM,2.07935667347955 +09/08/2008: 12:00 AM,2.10929766355412 +09/09/2008: 12:00 AM,1.41679326774175 +09/10/2008: 12:00 AM,1.65001873119145 +09/11/2008: 12:00 AM,1.34464710517251 +09/12/2008: 12:00 AM,1.36672057181837 +09/13/2008: 12:00 AM,1.75400181087262 +09/14/2008: 12:00 AM,1.57750555232256 +09/15/2008: 12:00 AM,1.50754505295959 +09/16/2008: 12:00 AM,1.10236007220202 +09/17/2008: 12:00 AM,1.17632962384523 +09/18/2008: 12:00 AM,1.6497456066506 +09/19/2008: 12:00 AM,1.5758964541799 +09/20/2008: 12:00 AM,1.54550704662725 +09/21/2008: 12:00 AM,1.4306932831526 +09/22/2008: 12:00 AM,1.77326998483742 +09/23/2008: 12:00 AM,1.65715987245857 +09/24/2008: 12:00 AM,1.68919817340977 +09/25/2008: 12:00 AM,1.65563477278445 +09/26/2008: 12:00 AM,1.22249590753323 +09/27/2008: 12:00 AM,1.11716534885873 +09/28/2008: 12:00 AM,1.53148160286881 +09/29/2008: 12:00 AM,1.5407930455176 +09/30/2008: 12:00 AM,1.6263885662918 +10/01/2008: 12:00 AM,1.24678851033522 +10/02/2008: 12:00 AM,1.33786048120699 +10/03/2008: 12:00 AM,1.46629083138997 +10/04/2008: 12:00 AM,1.55406245129247 +10/05/2008: 12:00 AM,1.51805388594335 +10/06/2008: 12:00 AM,1.61950941284133 +10/07/2008: 12:00 AM,1.3484367655333 +10/08/2008: 12:00 AM,0.592714188830618 +10/09/2008: 12:00 AM,1.27717464645273 +10/10/2008: 12:00 AM,1.20961162588814 +10/11/2008: 12:00 AM,1.12262799352362 +10/12/2008: 12:00 AM,1.11297322062155 +10/13/2008: 12:00 AM,1.21197051216078 +10/14/2008: 12:00 AM,1.5278533104732 +10/15/2008: 12:00 AM,1.51454265309124 +10/16/2008: 12:00 AM,1.35618245493425 +10/17/2008: 12:00 AM,0.666679230784966 +10/18/2008: 12:00 AM,0.783075041749775 +10/19/2008: 12:00 AM,1.09506911920937 +10/20/2008: 12:00 AM,1.11425617710311 +10/21/2008: 12:00 AM,1.16689034612629 +10/22/2008: 12:00 AM,1.0839969858057 +10/23/2008: 12:00 AM,0.835735353077468 +10/24/2008: 12:00 AM,0.562029500578817 +10/25/2008: 12:00 AM,0.773464845957917 +10/26/2008: 12:00 AM,1.10058858307696 +10/27/2008: 12:00 AM,0.630100127557343 +10/28/2008: 12:00 AM,0.520539445701174 +10/29/2008: 12:00 AM,0.865665783763616 +10/30/2008: 12:00 AM,0.97285919987293 +10/31/2008: 12:00 AM,1.06344413247281 +11/01/2008: 12:00 AM,1.12243783987871 +11/02/2008: 12:00 AM,1.13532445831463 +11/03/2008: 12:00 AM,1.08973754300055 +11/04/2008: 12:00 AM,1.12651984644007 +11/05/2008: 12:00 AM,1.14301209087637 +11/06/2008: 12:00 AM,1.13339943586442 +11/07/2008: 12:00 AM,1.0794752832581 +11/08/2008: 12:00 AM,0.787327913094166 +11/09/2008: 12:00 AM,0.74756886014923 +11/10/2008: 12:00 AM,0.847583262457907 +11/11/2008: 12:00 AM,0.778468842604088 +11/12/2008: 12:00 AM,0.735252916664278 +11/13/2008: 12:00 AM,0.513327831746562 +11/14/2008: 12:00 AM,0.692437244590442 +11/15/2008: 12:00 AM,0.384615379720902 +11/16/2008: 12:00 AM,0.339962240708637 +11/17/2008: 12:00 AM,0.664549065181248 +11/18/2008: 12:00 AM,0.306337418910078 +11/19/2008: 12:00 AM,0.578555287521611 +11/20/2008: 12:00 AM,0.809037551031379 +11/21/2008: 12:00 AM,0.300066056068229 +11/22/2008: 12:00 AM,0.482222669153203 +11/23/2008: 12:00 AM,0.609291879417706 +11/24/2008: 12:00 AM,0.365252832729647 +11/25/2008: 12:00 AM,0.420172988689686 +11/26/2008: 12:00 AM,0.634039028791751 +11/27/2008: 12:00 AM,0.739340389729107 +11/28/2008: 12:00 AM,0.714676072045842 +11/29/2008: 12:00 AM,0.45222859417558 +11/30/2008: 12:00 AM,0.300984356055888 +12/01/2008: 12:00 AM,0.133560122899917 +12/02/2008: 12:00 AM,0.318035796169434 +12/03/2008: 12:00 AM,0.566014560656147 +12/04/2008: 12:00 AM,0.437091037811788 +12/05/2008: 12:00 AM,0.434865821196055 +12/06/2008: 12:00 AM,0.370840705736652 +12/07/2008: 12:00 AM,0.441794497966014 +12/08/2008: 12:00 AM,0.53818902042845 +12/09/2008: 12:00 AM,0.611289220472498 +12/10/2008: 12:00 AM,0.423068375700571 +12/11/2008: 12:00 AM,0.411076923045639 +12/12/2008: 12:00 AM,0.429224763452678 +12/13/2008: 12:00 AM,0.499875818599068 +12/14/2008: 12:00 AM,0.5614697939905 +12/15/2008: 12:00 AM,0.637570068315409 +12/16/2008: 12:00 AM,0.510499298083142 +12/17/2008: 12:00 AM,0.533853294984337 +12/18/2008: 12:00 AM,0.690569542757544 +12/19/2008: 12:00 AM,0.65153526063276 +12/20/2008: 12:00 AM,0.382698257316942 +12/21/2008: 12:00 AM,0.222444436079813 +12/22/2008: 12:00 AM,0.290588985551174 +12/23/2008: 12:00 AM,0.545690957051782 +12/24/2008: 12:00 AM,0.618335549134484 +12/25/2008: 12:00 AM,0.567641600716357 +12/26/2008: 12:00 AM,0.489650812460908 +12/27/2008: 12:00 AM,0.537137014266751 +12/28/2008: 12:00 AM,0.556343004295602 +12/29/2008: 12:00 AM,0.606082280544419 +12/30/2008: 12:00 AM,0.785232287358374 +12/31/2008: 12:00 AM,0.375656421671026 +01/01/2009: 12:00 AM,0.417642374432049 +01/02/2009: 12:00 AM,0.388238453520196 +01/03/2009: 12:00 AM,0.469308755924838 +01/04/2009: 12:00 AM,0.779055672254754 +01/05/2009: 12:00 AM,0.763120037812028 +01/06/2009: 12:00 AM,0.532261709694788 +01/07/2009: 12:00 AM,0.241838814769875 +01/08/2009: 12:00 AM,0.424567983141973 +01/09/2009: 12:00 AM,0.600626739812688 +01/10/2009: 12:00 AM,0.58493555937172 +01/11/2009: 12:00 AM,0.340266323397376 +01/12/2009: 12:00 AM,0.494182503670677 +01/13/2009: 12:00 AM,0.546559556954426 +01/14/2009: 12:00 AM,0.521326488749053 +01/15/2009: 12:00 AM,0.367114608412736 +01/16/2009: 12:00 AM,0.229846936492221 +01/17/2009: 12:00 AM,0.321231796280285 +01/18/2009: 12:00 AM,0.441090231990222 +01/19/2009: 12:00 AM,0.297714735925456 +01/20/2009: 12:00 AM,0.211198601236984 +01/21/2009: 12:00 AM,0.392688253434596 +01/22/2009: 12:00 AM,0.632732068786036 +01/23/2009: 12:00 AM,0.845071870295019 +01/24/2009: 12:00 AM,0.648357161337019 +01/25/2009: 12:00 AM,0.571283056787479 +01/26/2009: 12:00 AM,0.599707892118682 +01/27/2009: 12:00 AM,0.761845927527024 +01/28/2009: 12:00 AM,0.570822026551923 +01/29/2009: 12:00 AM,0.625505250402875 +01/30/2009: 12:00 AM,0.38678072116019 +01/31/2009: 12:00 AM,0.559294560327908 +02/01/2009: 12:00 AM,0.784756127956146 +02/02/2009: 12:00 AM,0.538949596877896 +02/03/2009: 12:00 AM,0.39299583402845 +02/04/2009: 12:00 AM,0.232429379052915 +02/05/2009: 12:00 AM,0.450600520821373 +02/06/2009: 12:00 AM,0.835733499371956 +02/07/2009: 12:00 AM,0.974390411638004 +02/08/2009: 12:00 AM,1.05408774942957 +02/09/2009: 12:00 AM,1.00112901796854 +02/10/2009: 12:00 AM,0.915784557056665 +02/11/2009: 12:00 AM,0.477774809744048 +02/12/2009: 12:00 AM,0.793449877997038 +02/13/2009: 12:00 AM,1.0298216976154 +02/14/2009: 12:00 AM,0.769995113882772 +02/15/2009: 12:00 AM,0.809561301345662 +02/16/2009: 12:00 AM,0.65385335092281 +02/17/2009: 12:00 AM,0.76844050523292 +02/18/2009: 12:00 AM,0.920270032838256 +02/19/2009: 12:00 AM,0.485579037336852 +02/20/2009: 12:00 AM,0.614204705920165 +02/21/2009: 12:00 AM,0.772240710791383 +02/22/2009: 12:00 AM,0.471728259984325 +02/23/2009: 12:00 AM,0.719350367405391 +02/24/2009: 12:00 AM,0.863410220597301 +02/25/2009: 12:00 AM,0.894776953976427 +02/26/2009: 12:00 AM,0.966405442606877 +02/27/2009: 12:00 AM,0.618863604937114 +02/28/2009: 12:00 AM,0.532893830263379 +03/01/2009: 12:00 AM,0.252625745553946 +03/02/2009: 12:00 AM,0.6040427638859 +03/03/2009: 12:00 AM,0.713523957089026 +03/04/2009: 12:00 AM,0.891561606410908 +03/05/2009: 12:00 AM,1.14770338164002 +03/06/2009: 12:00 AM,1.10721214639488 +03/07/2009: 12:00 AM,1.70970789995076 +03/08/2009: 12:00 AM,1.64528539059944 +03/09/2009: 12:00 AM,1.43726095153709 +03/10/2009: 12:00 AM,1.47733000422659 +03/11/2009: 12:00 AM,1.37299631012588 +03/12/2009: 12:00 AM,1.11021634347512 +03/13/2009: 12:00 AM,0.383729029020439 +03/14/2009: 12:00 AM,0.650017997992036 +03/15/2009: 12:00 AM,1.10576572999351 +03/16/2009: 12:00 AM,0.866959010042248 +03/17/2009: 12:00 AM,1.45237545940916 +03/18/2009: 12:00 AM,1.37804080485065 +03/19/2009: 12:00 AM,1.54522287721988 +03/20/2009: 12:00 AM,1.19435816755724 +03/21/2009: 12:00 AM,1.05117729692694 +03/22/2009: 12:00 AM,1.47124692264746 +03/23/2009: 12:00 AM,1.50436552322219 +03/24/2009: 12:00 AM,1.45676545278309 +03/25/2009: 12:00 AM,0.425243534284332 +03/26/2009: 12:00 AM,0.634088370206623 +03/27/2009: 12:00 AM,0.809616562566904 +03/28/2009: 12:00 AM,0.746007485550495 +03/29/2009: 12:00 AM,0.894495958466198 +03/30/2009: 12:00 AM,1.55200315866308 +03/31/2009: 12:00 AM,1.12522022244997 +04/01/2009: 12:00 AM,1.46997131463908 +04/02/2009: 12:00 AM,0.786077288361242 +04/03/2009: 12:00 AM,0.934239731390341 +04/04/2009: 12:00 AM,1.93912542548754 +04/05/2009: 12:00 AM,1.91953813624004 +04/06/2009: 12:00 AM,0.570105705707197 +04/07/2009: 12:00 AM,0.664952783963371 +04/08/2009: 12:00 AM,1.38870455443667 +04/09/2009: 12:00 AM,1.89488706907903 +04/10/2009: 12:00 AM,1.26074454115081 +04/11/2009: 12:00 AM,1.09695827500519 +04/12/2009: 12:00 AM,1.67196182432734 +04/13/2009: 12:00 AM,0.744394980076493 +04/14/2009: 12:00 AM,1.41262591872212 +04/15/2009: 12:00 AM,1.53708386979511 +04/16/2009: 12:00 AM,1.75678621067786 +04/17/2009: 12:00 AM,1.95936359018665 +04/18/2009: 12:00 AM,2.07773800365597 +04/19/2009: 12:00 AM,1.07876042061368 +04/20/2009: 12:00 AM,1.3123008662988 +04/21/2009: 12:00 AM,1.47335207156787 +04/22/2009: 12:00 AM,1.56964937796803 +04/23/2009: 12:00 AM,2.40980967276062 +04/24/2009: 12:00 AM,2.52192066791035 +04/25/2009: 12:00 AM,2.43829463282032 +04/26/2009: 12:00 AM,2.22786524779972 +04/27/2009: 12:00 AM,2.07630050050056 +04/28/2009: 12:00 AM,2.08440358746514 +04/29/2009: 12:00 AM,2.1969911923194 +04/30/2009: 12:00 AM,1.78357925235916 +05/01/2009: 12:00 AM,1.70195432612664 +05/02/2009: 12:00 AM,1.40698749261836 +05/03/2009: 12:00 AM,1.56452144300312 +05/04/2009: 12:00 AM,1.24703601272756 +05/05/2009: 12:00 AM,1.56083482617341 +05/06/2009: 12:00 AM,1.50663387901998 +05/07/2009: 12:00 AM,1.97746727303263 +05/08/2009: 12:00 AM,2.10792315599559 +05/09/2009: 12:00 AM,1.98939263128164 +05/10/2009: 12:00 AM,1.9988228514346 +05/11/2009: 12:00 AM,0.984562838770969 +05/12/2009: 12:00 AM,1.95108259322263 +05/13/2009: 12:00 AM,1.76988603172161 +05/14/2009: 12:00 AM,1.83861201257967 +05/15/2009: 12:00 AM,2.17279386906944 +05/16/2009: 12:00 AM,1.93844474069418 +05/17/2009: 12:00 AM,0.545817565915316 +05/18/2009: 12:00 AM,1.91563818702804 +05/19/2009: 12:00 AM,2.07397184576382 +05/20/2009: 12:00 AM,2.26086656487208 +05/21/2009: 12:00 AM,1.98958986449483 +05/22/2009: 12:00 AM,1.96092462663003 +05/23/2009: 12:00 AM,1.8026184313951 +05/24/2009: 12:00 AM,1.81556814541682 +05/25/2009: 12:00 AM,1.88159667715326 +05/26/2009: 12:00 AM,1.68055083599797 +05/27/2009: 12:00 AM,1.73265907368248 +05/28/2009: 12:00 AM,1.98126231889655 +05/29/2009: 12:00 AM,2.02037856004091 +05/30/2009: 12:00 AM,2.41182512158851 +05/31/2009: 12:00 AM,2.46351408567554 +06/01/2009: 12:00 AM,2.68510263889525 +06/02/2009: 12:00 AM,2.66306443968642 +06/03/2009: 12:00 AM,2.50270517057412 +06/04/2009: 12:00 AM,1.67339801590713 +06/05/2009: 12:00 AM,1.9301750424223 +06/06/2009: 12:00 AM,2.39433816740434 +06/07/2009: 12:00 AM,2.29243160985058 +06/08/2009: 12:00 AM,2.53502443694751 +06/09/2009: 12:00 AM,2.69246072445907 +06/10/2009: 12:00 AM,2.51746971757347 +06/11/2009: 12:00 AM,2.46199799859246 +06/12/2009: 12:00 AM,2.20681501435858 +06/13/2009: 12:00 AM,2.24105038034833 +06/14/2009: 12:00 AM,2.33944947653203 +06/15/2009: 12:00 AM,2.4956770130133 +06/16/2009: 12:00 AM,2.5928168292066 +06/17/2009: 12:00 AM,2.54652602864423 +06/18/2009: 12:00 AM,2.53918334036714 +06/19/2009: 12:00 AM,2.84416472151452 +06/20/2009: 12:00 AM,2.89144854296701 +06/21/2009: 12:00 AM,2.4000603079078 +06/22/2009: 12:00 AM,2.16183032400475 +06/23/2009: 12:00 AM,2.56958039020678 +06/24/2009: 12:00 AM,2.66706876451802 +06/25/2009: 12:00 AM,2.62002272488305 +06/26/2009: 12:00 AM,2.64858977532987 +06/27/2009: 12:00 AM,2.73777571541109 +06/28/2009: 12:00 AM,2.74899101817011 +06/29/2009: 12:00 AM,2.33426516267863 +06/30/2009: 12:00 AM,2.57964365976897 +07/01/2009: 12:00 AM,2.47214880089239 +07/02/2009: 12:00 AM,2.48532198910402 +07/03/2009: 12:00 AM,2.30299533092792 +07/04/2009: 12:00 AM,2.52024741962245 +07/05/2009: 12:00 AM,1.7929311916203 +07/06/2009: 12:00 AM,2.32806464134806 +07/07/2009: 12:00 AM,2.26075702293688 +07/08/2009: 12:00 AM,1.88724380775145 +07/09/2009: 12:00 AM,1.99394794302602 +07/10/2009: 12:00 AM,2.08948592352787 +07/11/2009: 12:00 AM,2.34186533990953 +07/12/2009: 12:00 AM,2.28123339411285 +07/13/2009: 12:00 AM,2.06363584604712 +07/14/2009: 12:00 AM,2.36078373708766 +07/15/2009: 12:00 AM,2.32846041274776 +07/16/2009: 12:00 AM,2.09110021407444 +07/17/2009: 12:00 AM,2.29404751687688 +07/18/2009: 12:00 AM,1.96434430553324 +07/19/2009: 12:00 AM,2.02853409516145 +07/20/2009: 12:00 AM,2.27050150486295 +07/21/2009: 12:00 AM,2.28855159139455 +07/22/2009: 12:00 AM,2.04824674087215 +07/23/2009: 12:00 AM,2.29444796063066 +07/24/2009: 12:00 AM,2.42538907101943 +07/25/2009: 12:00 AM,2.62801756894197 +07/26/2009: 12:00 AM,2.38246989460655 +07/27/2009: 12:00 AM,2.51179267872138 +07/28/2009: 12:00 AM,2.15039697958082 +07/29/2009: 12:00 AM,1.8482789784156 +07/30/2009: 12:00 AM,2.12994746540498 +07/31/2009: 12:00 AM,1.39686734542099 +08/01/2009: 12:00 AM,2.25275095111926 +08/02/2009: 12:00 AM,1.76494962157395 +08/03/2009: 12:00 AM,2.25933359936789 +08/04/2009: 12:00 AM,2.41116454524346 +08/05/2009: 12:00 AM,2.28352040857624 +08/06/2009: 12:00 AM,2.31174056353858 +08/07/2009: 12:00 AM,2.40670713127088 +08/08/2009: 12:00 AM,2.28545056880233 +08/09/2009: 12:00 AM,2.48815440805108 +08/10/2009: 12:00 AM,2.50654458408577 +08/11/2009: 12:00 AM,2.35654413312609 +08/12/2009: 12:00 AM,1.74741424292561 +08/13/2009: 12:00 AM,2.04668965706327 +08/14/2009: 12:00 AM,2.0596606750961 +08/15/2009: 12:00 AM,2.22906646447901 +08/16/2009: 12:00 AM,2.01841251942912 +08/17/2009: 12:00 AM,1.91187495653074 +08/18/2009: 12:00 AM,1.9040343123141 +08/19/2009: 12:00 AM,1.95259669573021 +08/20/2009: 12:00 AM,1.74095018407553 +08/21/2009: 12:00 AM,2.00124094207944 +08/22/2009: 12:00 AM,1.60759998100423 +08/23/2009: 12:00 AM,1.9522040623353 +08/24/2009: 12:00 AM,1.80363966592989 +08/25/2009: 12:00 AM,1.84735145586159 +08/26/2009: 12:00 AM,2.14896647862937 +08/27/2009: 12:00 AM,1.92179476895619 +08/28/2009: 12:00 AM,1.14144134289649 +08/29/2009: 12:00 AM,1.84718710172472 +08/30/2009: 12:00 AM,1.67229282205035 +08/31/2009: 12:00 AM,1.35984669746553 +09/01/2009: 12:00 AM,1.44225475363875 +09/02/2009: 12:00 AM,1.69831700407956 +09/03/2009: 12:00 AM,1.79156189696074 +09/04/2009: 12:00 AM,1.87800031635386 +09/05/2009: 12:00 AM,1.94786400939563 +09/06/2009: 12:00 AM,1.51491369670868 +09/07/2009: 12:00 AM,1.81003078636964 +09/08/2009: 12:00 AM,1.71836942109531 +09/09/2009: 12:00 AM,1.58558222726229 +09/10/2009: 12:00 AM,1.45164004554748 +09/11/2009: 12:00 AM,1.61493344085401 +09/12/2009: 12:00 AM,1.72917257434199 +09/13/2009: 12:00 AM,1.7618112310534 +09/14/2009: 12:00 AM,1.62863655854845 +09/15/2009: 12:00 AM,1.10172175633923 +09/16/2009: 12:00 AM,1.234588708756 +09/17/2009: 12:00 AM,0.954776950252612 +09/18/2009: 12:00 AM,1.14702955468675 +09/19/2009: 12:00 AM,1.25577118584885 +09/20/2009: 12:00 AM,0.561903218103283 +09/21/2009: 12:00 AM,0.639167586970016 +09/22/2009: 12:00 AM,1.37557933866719 +09/23/2009: 12:00 AM,1.72007162373379 +09/24/2009: 12:00 AM,1.66540420293535 +09/25/2009: 12:00 AM,1.47284264760124 +09/26/2009: 12:00 AM,0 +09/27/2009: 12:00 AM,1.12582227249094 +09/28/2009: 12:00 AM,1.6184714232125 +09/29/2009: 12:00 AM,1.23124107814298 +09/30/2009: 12:00 AM,1.43162735060955 +10/01/2009: 12:00 AM,1.41270240209034 +10/02/2009: 12:00 AM,0.997943043615135 +10/03/2009: 12:00 AM,1.22231538926984 +10/04/2009: 12:00 AM,1.22915295881082 +10/05/2009: 12:00 AM,0.814236735344926 +10/06/2009: 12:00 AM,1.17434233523872 +10/07/2009: 12:00 AM,1.05212218431109 +10/08/2009: 12:00 AM,1.45697710358762 +10/09/2009: 12:00 AM,1.53113472292355 +10/10/2009: 12:00 AM,0.642236997439438 +10/11/2009: 12:00 AM,1.09050707074363 +10/12/2009: 12:00 AM,0.577711790129692 +10/13/2009: 12:00 AM,1.24631323275916 +10/14/2009: 12:00 AM,0.547515763140719 +10/15/2009: 12:00 AM,0.905540444929432 +10/16/2009: 12:00 AM,0.79849094082441 +10/17/2009: 12:00 AM,0.341499481161537 +10/18/2009: 12:00 AM,0.543666529474591 +10/19/2009: 12:00 AM,1.06477893503152 +10/20/2009: 12:00 AM,1.26069498010474 +10/21/2009: 12:00 AM,1.33196252748135 +10/22/2009: 12:00 AM,1.17512395101802 +10/23/2009: 12:00 AM,1.05201361011237 +10/24/2009: 12:00 AM,0.863755995222157 +10/25/2009: 12:00 AM,1.12945308356268 +10/26/2009: 12:00 AM,1.09166259929169 +10/27/2009: 12:00 AM,0.913622210748883 +10/28/2009: 12:00 AM,1.17978377866065 +10/29/2009: 12:00 AM,1.13777334112327 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.dbf new file mode 100644 index 00000000..76cbfb53 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.prj new file mode 100644 index 00000000..8e8ddec5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_UTM_Zone_17N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.sbn new file mode 100644 index 00000000..94d09716 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.sbx new file mode 100644 index 00000000..4e2c04ed Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.shp new file mode 100644 index 00000000..d28c80a8 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.shp.xml new file mode 100644 index 00000000..5a46f8d9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.shp.xml @@ -0,0 +1,3 @@ + + +2011062016094400FALSE20060330125648002006033012564800Project C:\ArcIMS\data\basin_dd.shp C:\ArcIMS\data\basin_dd_Project.shp PROJCS['NAD_1983_UTM_Zone_17N',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]] #Project C:\ArcIMS\data\utm\coweeta_basin.shp C:\ArcIMS\data\utm\coweeta_basin_Project.shp PROJCS['NAD_1983_UTM_Zone_17N',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]] #Project C:\ArcIMS\data\utm\coweeta_basin_Project.shp C:\ArcIMS\data\utm\coweeta_basin_Project_Projec.shp PROJCS['NAD_1983_UTM_Zone_17N',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]] NAD_1927_To_NAD_1983_6{F0998D1A-00DE-4A94-8A63-67EDA9D07CC2}Microsoft Windows XP Version 5.1 (Build 2600) Service Pack 2; ESRI ArcCatalog 9.1.0.722enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.coweeta_basincoweeta_basinvector digital dataREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.-83.478924-83.42091035.07418635.026968273971.091143279140.9150953878839.6361173883953.785313REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 2; ESRI ArcCatalog 9.1.0.722coweeta_basin273971.091143279140.9150953883953.7853133878839.6361171-83.478924-83.4209135.07418635.0269681enFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timeREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20060330http://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0080.008002file://Local Area Network0.008ShapefileVectorSimplePolygonFALSE1TRUEFALSEG-polygon1GCS_North_American_1983NAD_1983_UTM_Zone_17NNorth American Datum of 1983Geodetic Reference System 806378137.000000298.257222coordinate pairmeters0.0000080.000008Universal Transverse Mercator170.999600-81.0000000.000000500000.0000000.000000NAD_1983_UTM_Zone_17N1coweeta_basinFeature Class1FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.AREAAREANumber193PERIMETERPERIMETERNumber193CWTBASINNACWTBASINNANumber9CWTBASIN_1CWTBASIN_1Number9BASIN_CODEBASIN_CODENumber9SPOTSPOTNumber920060330Dataset copied.S:\ArcIMS\Data\basin_dd20060306Dataset copied.20060306Dataset copied.C:\ArcIMS\data\basin_dd_Project20060330Dataset copied.20060330Dataset copied.20060330Dataset copied.20060330Dataset copied.20060530Dataset copied.2011060808384700Dataset copied.2011062016094400 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.shx new file mode 100644 index 00000000..c871771a Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/CoweetaWatershed.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.dbf new file mode 100644 index 00000000..0fbe2102 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.prj new file mode 100644 index 00000000..155f5ded --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.sbn new file mode 100644 index 00000000..a2b2de85 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.sbx new file mode 100644 index 00000000..d899efb2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.shp new file mode 100644 index 00000000..f9a2977c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.shp.xml new file mode 100644 index 00000000..fb9ae587 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.shp.xml @@ -0,0 +1,3 @@ + + +2011060912300000TRUEProject C:\Temp\weather_stations.shp C:\Temp\weather_stations_Project.shp PROJCS['NAD_1983_UTM_Zone_17N',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]] #{22B652FD-59C5-438A-AFCA-1D6FD56C9F55}file://Local Area NetworkDataset copied.20060329Dataset copied.2011060808375400Dataset copied.2011060808514700Dataset copied.2011060912300000 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.shx new file mode 100644 index 00000000..e7f6becd Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/climateStation.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.dbf new file mode 100644 index 00000000..ad8aa44d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.prj new file mode 100644 index 00000000..8e8ddec5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_UTM_Zone_17N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.sbn new file mode 100644 index 00000000..c0304f96 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.sbx new file mode 100644 index 00000000..f0b5ef9e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.shp new file mode 100644 index 00000000..2df5fca4 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.shx new file mode 100644 index 00000000..a5a3b468 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/coweeta_18.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.dbf new file mode 100644 index 00000000..2d646341 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.prj new file mode 100644 index 00000000..8e8ddec5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_UTM_Zone_17N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.sbn new file mode 100644 index 00000000..2b71a88d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.sbx new file mode 100644 index 00000000..870f0d00 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.shp new file mode 100644 index 00000000..b5d04c6f Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.shp.xml new file mode 100644 index 00000000..607e0fb8 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.shp.xml @@ -0,0 +1,3 @@ + + +2011062016170300FALSE20060331132257002006033113225700{7C81C877-8020-4C10-8060-86C881B79CFB}Microsoft Windows XP Version 5.1 (Build 2600) Service Pack 2; ESRI ArcCatalog 9.1.0.722enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.coweeta_streamscoweeta_streamsvector digital dataREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.-83.476042-83.42151735.07343335.021808274232.121553279071.4227833878260.3768253883871.823190REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 2; ESRI ArcCatalog 9.1.0.722coweeta_streams274232.121553279071.4227833883871.823193878260.3768251-83.476042-83.42151735.07343335.0218081enFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20060331ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0740.074002file://Local Area Network0.074ShapefileVectorSimplePolylineFALSE197TRUEFALSEString197GCS_North_American_1983NAD_1983_UTM_Zone_17NUniversal Transverse Mercator170.999600-81.0000000.000000500000.0000000.000000coordinate pairmeters0.0000080.000008North American Datum of 1983Geodetic Reference System 806378137.000000298.257222NAD_1983_UTM_Zone_17N197coweeta_streamsFeature Class197FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.FNODE_FNODE_Number9TNODE_TNODE_Number9LPOLY_LPOLY_Number9RPOLY_RPOLY_Number9LENGTHLENGTHNumber193STREAM_STREAM_Number9STREAM_IDSTREAM_IDNumber9ORDER_ORDER_Number920060331Dataset copied.2011060808410000Dataset copied.2011062016170300 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.shx new file mode 100644 index 00000000..d1d06331 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/streams.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.dbf new file mode 100644 index 00000000..33408a5f Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.prj b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.prj new file mode 100644 index 00000000..8e8ddec5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_UTM_Zone_17N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.sbn new file mode 100644 index 00000000..de2f3f4b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.sbx new file mode 100644 index 00000000..105658df Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.shp b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.shp new file mode 100644 index 00000000..e172f973 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.shx b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.shx new file mode 100644 index 00000000..ef7574f7 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/data/gis/weir18.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/Hargreaves-PET/Hargreaves.omi b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/Hargreaves-PET/Hargreaves.omi new file mode 100644 index 00000000..af6e7d38 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/Hargreaves-PET/Hargreaves.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/Hargreaves-PET/config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/Hargreaves-PET/config.xml new file mode 100644 index 00000000..ff84d675 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/Hargreaves-PET/config.xml @@ -0,0 +1,122 @@ + + + + + + Coweeta + Coweeta watershed, NC + ..\..\data\gis\coweeta_18.shp + 1 + + + PET + Potential Evapotranspiration + + + Length + 1 + + + Time + -1 + + + + mm/day + Millimeters per day + 1 + 0 + + Scalar + + + + + + Climate Station 01 + Climate Station 01, near Coweeta watershed 18 in NC + ..\..\data\gis\climateStation.shp + 1 + + + Temp + Daily Averaged Temperature + + + Temperature + 1 + + + + Celsius + Degrees Celsius + 1 + 0 + + Scalar + + + + + + Climate Station 01 + Climate Station 01, near Coweeta watershed 18 in NC + ..\..\data\gis\climateStation.shp + 1 + + + Max Temp + Maximum Daily Temperature + + + Temperature + 1 + + + + Celsius + Degrees Celsius + 1 + 0 + + Scalar + + + + + + Climate Station 01 + Climate Station 01, near Coweeta watershed 18 in NC + ..\..\data\gis\climateStation.shp + 1 + + + Min Temp + Minimum Daily Temperature + + + Temperature + 1 + + + + Celsius + Degrees Celsius + 1 + 0 + + Scalar + + + + + + 01/02/2006 00:00:00 + 10/31/2009 00:00:00 + 86400 + + + Hargreaves PET + Potential Evapotranspiration Calculated Using the Hargreaves-Samani Method + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/Hargreaves-PET/output/hargreaves_output.txt b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/Hargreaves-PET/output/hargreaves_output.txt new file mode 100644 index 00000000..63955e7d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/Hargreaves-PET/output/hargreaves_output.txt @@ -0,0 +1,1398 @@ +Simulation Time, PET[mm/day] +01/02/2006: 12:00 AM,0.595879409389289 +01/03/2006: 12:00 AM,0.511890022662306 +01/04/2006: 12:00 AM,0.664605465950461 +01/05/2006: 12:00 AM,0.577669821570334 +01/06/2006: 12:00 AM,0.255841803676357 +01/07/2006: 12:00 AM,0.42148065877197 +01/08/2006: 12:00 AM,0.791559573585588 +01/09/2006: 12:00 AM,0.815437424597708 +01/10/2006: 12:00 AM,0.679005262815033 +01/11/2006: 12:00 AM,0.613448616859926 +01/12/2006: 12:00 AM,0.786243463425015 +01/13/2006: 12:00 AM,0.677668448702831 +01/14/2006: 12:00 AM,0.282159803383197 +01/15/2006: 12:00 AM,0.584380787680964 +01/16/2006: 12:00 AM,0.570332511465839 +01/17/2006: 12:00 AM,0.573920051125141 +01/18/2006: 12:00 AM,0.436011941236986 +01/19/2006: 12:00 AM,0.744493262153162 +01/20/2006: 12:00 AM,0.691166558333934 +01/21/2006: 12:00 AM,0.650255932381124 +01/22/2006: 12:00 AM,0.294345540487336 +01/23/2006: 12:00 AM,0.564125127189799 +01/24/2006: 12:00 AM,0.658521676964867 +01/25/2006: 12:00 AM,0.465515091989184 +01/26/2006: 12:00 AM,0.688323365556655 +01/27/2006: 12:00 AM,0.653806346691658 +01/28/2006: 12:00 AM,0.776619719195935 +01/29/2006: 12:00 AM,0.865978544142128 +01/30/2006: 12:00 AM,0.794651501048095 +01/31/2006: 12:00 AM,0.638416852150328 +02/01/2006: 12:00 AM,0.67839277689672 +02/02/2006: 12:00 AM,0.667267972203124 +02/03/2006: 12:00 AM,0.923663469760274 +02/04/2006: 12:00 AM,0.426884533710859 +02/05/2006: 12:00 AM,0.426443611431117 +02/06/2006: 12:00 AM,0.438158784261278 +02/07/2006: 12:00 AM,0.656503726790099 +02/08/2006: 12:00 AM,0.562252657099125 +02/09/2006: 12:00 AM,0.414060198931605 +02/10/2006: 12:00 AM,0.659572315146216 +02/11/2006: 12:00 AM,0.41041547954434 +02/12/2006: 12:00 AM,0.314065567748753 +02/13/2006: 12:00 AM,0.431407918884461 +02/14/2006: 12:00 AM,0.860676438590361 +02/15/2006: 12:00 AM,0.906866586372476 +02/16/2006: 12:00 AM,1.01586010254328 +02/17/2006: 12:00 AM,1.0138468298462 +02/18/2006: 12:00 AM,0.24111412077975 +02/19/2006: 12:00 AM,0.372822706410008 +02/20/2006: 12:00 AM,0.880162464543337 +02/21/2006: 12:00 AM,1.01088708719672 +02/22/2006: 12:00 AM,0.994827957564054 +02/23/2006: 12:00 AM,0.664947434149819 +02/24/2006: 12:00 AM,0.967509441349643 +02/25/2006: 12:00 AM,0.714369372048425 +02/26/2006: 12:00 AM,0.508099214459003 +02/27/2006: 12:00 AM,0.888562942696767 +02/28/2006: 12:00 AM,1.19851652214977 +03/01/2006: 12:00 AM,1.3310084956607 +03/02/2006: 12:00 AM,1.20370920072544 +03/03/2006: 12:00 AM,0.842420912025647 +03/04/2006: 12:00 AM,1.02929605836158 +03/05/2006: 12:00 AM,1.29089740284515 +03/06/2006: 12:00 AM,1.15516039600797 +03/07/2006: 12:00 AM,1.08618510541793 +03/08/2006: 12:00 AM,1.25147331316107 +03/09/2006: 12:00 AM,1.05278452385212 +03/10/2006: 12:00 AM,1.4700686355086 +03/11/2006: 12:00 AM,1.42565227646289 +03/12/2006: 12:00 AM,1.53588275667492 +03/13/2006: 12:00 AM,1.35482974975973 +03/14/2006: 12:00 AM,0.842582264122196 +03/15/2006: 12:00 AM,1.04807096186991 +03/16/2006: 12:00 AM,1.29157277107888 +03/17/2006: 12:00 AM,1.31614534415783 +03/18/2006: 12:00 AM,1.22200308532503 +03/19/2006: 12:00 AM,1.0818531234557 +03/20/2006: 12:00 AM,0.512343536618653 +03/21/2006: 12:00 AM,1.26518751380013 +03/22/2006: 12:00 AM,1.13641845131631 +03/23/2006: 12:00 AM,0.912843745457975 +03/24/2006: 12:00 AM,0.641772574009739 +03/25/2006: 12:00 AM,0.631321942084637 +03/26/2006: 12:00 AM,0.951180028315391 +03/27/2006: 12:00 AM,1.29657111021299 +03/28/2006: 12:00 AM,1.24247798649732 +03/29/2006: 12:00 AM,1.64466725035709 +03/30/2006: 12:00 AM,1.53646798943178 +03/31/2006: 12:00 AM,1.43352567299492 +04/01/2006: 12:00 AM,1.66795199511635 +04/02/2006: 12:00 AM,1.74925129619199 +04/03/2006: 12:00 AM,1.65764754600476 +04/04/2006: 12:00 AM,1.52557975204734 +04/05/2006: 12:00 AM,1.67073069382677 +04/06/2006: 12:00 AM,1.76149475711934 +04/07/2006: 12:00 AM,2.04654435051144 +04/08/2006: 12:00 AM,1.20330752365352 +04/09/2006: 12:00 AM,1.64790081961602 +04/10/2006: 12:00 AM,1.77404689992891 +04/11/2006: 12:00 AM,1.89360123094269 +04/12/2006: 12:00 AM,1.91118193041788 +04/13/2006: 12:00 AM,2.12101332578973 +04/14/2006: 12:00 AM,2.34821905541832 +04/15/2006: 12:00 AM,2.11702950960051 +04/16/2006: 12:00 AM,2.43073362989786 +04/17/2006: 12:00 AM,2.10405348398569 +04/18/2006: 12:00 AM,1.68003848458372 +04/19/2006: 12:00 AM,1.92306568344109 +04/20/2006: 12:00 AM,1.93473088150344 +04/21/2006: 12:00 AM,1.36363547496194 +04/22/2006: 12:00 AM,1.62691769720075 +04/23/2006: 12:00 AM,2.14851359718608 +04/24/2006: 12:00 AM,2.31491452200807 +04/25/2006: 12:00 AM,2.28773421563196 +04/26/2006: 12:00 AM,1.24972017125562 +04/27/2006: 12:00 AM,1.60241645032904 +04/28/2006: 12:00 AM,2.07590919666822 +04/29/2006: 12:00 AM,1.37221243487774 +04/30/2006: 12:00 AM,1.09048641743353 +05/01/2006: 12:00 AM,1.81849448094615 +05/02/2006: 12:00 AM,2.07029643160302 +05/03/2006: 12:00 AM,2.25239363389814 +05/04/2006: 12:00 AM,2.24048155998867 +05/05/2006: 12:00 AM,1.47660073548086 +05/06/2006: 12:00 AM,2.04814479262082 +05/07/2006: 12:00 AM,0.901501668466128 +05/08/2006: 12:00 AM,1.48396901047548 +05/09/2006: 12:00 AM,1.61647926813427 +05/10/2006: 12:00 AM,1.8540328511079 +05/11/2006: 12:00 AM,1.37436304667625 +05/12/2006: 12:00 AM,1.62179959590426 +05/13/2006: 12:00 AM,1.98956010982604 +05/14/2006: 12:00 AM,1.52225459210672 +05/15/2006: 12:00 AM,1.64113373877097 +05/16/2006: 12:00 AM,1.53629853951451 +05/17/2006: 12:00 AM,1.87860811623904 +05/18/2006: 12:00 AM,2.06430097409814 +05/19/2006: 12:00 AM,2.04772827766484 +05/20/2006: 12:00 AM,2.29747576353014 +05/21/2006: 12:00 AM,1.99551304016468 +05/22/2006: 12:00 AM,1.84027328083887 +05/23/2006: 12:00 AM,2.46521634679022 +05/24/2006: 12:00 AM,2.63747013422622 +05/25/2006: 12:00 AM,2.23681302801023 +05/26/2006: 12:00 AM,2.20740201278036 +05/27/2006: 12:00 AM,2.36864358106232 +05/28/2006: 12:00 AM,2.69836920323658 +05/29/2006: 12:00 AM,2.60967266577689 +05/30/2006: 12:00 AM,2.68700249467355 +05/31/2006: 12:00 AM,2.59692915366554 +06/01/2006: 12:00 AM,2.41751413922204 +06/02/2006: 12:00 AM,2.09546988941441 +06/03/2006: 12:00 AM,1.79048676148369 +06/04/2006: 12:00 AM,2.28776088226916 +06/05/2006: 12:00 AM,1.93475468488491 +06/06/2006: 12:00 AM,2.41380082655692 +06/07/2006: 12:00 AM,2.49740232927149 +06/08/2006: 12:00 AM,2.50233573919382 +06/09/2006: 12:00 AM,2.56028853697695 +06/10/2006: 12:00 AM,2.85594563667476 +06/11/2006: 12:00 AM,2.64407727774855 +06/12/2006: 12:00 AM,2.40845851958691 +06/13/2006: 12:00 AM,1.68466771122258 +06/14/2006: 12:00 AM,2.48119228336427 +06/15/2006: 12:00 AM,2.58850414764015 +06/16/2006: 12:00 AM,2.51280287299788 +06/17/2006: 12:00 AM,2.38564493214945 +06/18/2006: 12:00 AM,2.37087289310325 +06/19/2006: 12:00 AM,2.57505795986773 +06/20/2006: 12:00 AM,2.76986461085173 +06/21/2006: 12:00 AM,3.03497454479837 +06/22/2006: 12:00 AM,2.9520054669298 +06/23/2006: 12:00 AM,2.64200343449073 +06/24/2006: 12:00 AM,2.3092562243864 +06/25/2006: 12:00 AM,1.48310624549359 +06/26/2006: 12:00 AM,1.14959606429218 +06/27/2006: 12:00 AM,2.3395281931846 +06/28/2006: 12:00 AM,2.58638886991986 +06/29/2006: 12:00 AM,2.62780124930183 +06/30/2006: 12:00 AM,2.51910858669879 +07/01/2006: 12:00 AM,2.76004862543082 +07/02/2006: 12:00 AM,2.53967828423503 +07/03/2006: 12:00 AM,2.63800621021774 +07/04/2006: 12:00 AM,2.71012663074818 +07/05/2006: 12:00 AM,2.16568055029315 +07/06/2006: 12:00 AM,2.11857080229529 +07/07/2006: 12:00 AM,2.04759260943575 +07/08/2006: 12:00 AM,2.08993647516577 +07/09/2006: 12:00 AM,2.09140473622282 +07/10/2006: 12:00 AM,2.43961102252417 +07/11/2006: 12:00 AM,2.34485860312668 +07/12/2006: 12:00 AM,2.44575892082329 +07/13/2006: 12:00 AM,2.56696427095055 +07/14/2006: 12:00 AM,2.25589082007613 +07/15/2006: 12:00 AM,2.45613565703883 +07/16/2006: 12:00 AM,2.49820860623752 +07/17/2006: 12:00 AM,2.65926518525693 +07/18/2006: 12:00 AM,2.80397496609748 +07/19/2006: 12:00 AM,2.7040991178262 +07/20/2006: 12:00 AM,2.50137739230343 +07/21/2006: 12:00 AM,2.51010561796665 +07/22/2006: 12:00 AM,2.32609703055764 +07/23/2006: 12:00 AM,1.93442515881891 +07/24/2006: 12:00 AM,2.10321671486127 +07/25/2006: 12:00 AM,2.02109684457142 +07/26/2006: 12:00 AM,2.56519020206793 +07/27/2006: 12:00 AM,2.53170398758004 +07/28/2006: 12:00 AM,2.45796252478725 +07/29/2006: 12:00 AM,1.9266970893266 +07/30/2006: 12:00 AM,2.51268841958714 +07/31/2006: 12:00 AM,2.67056758939184 +08/01/2006: 12:00 AM,2.71597028058584 +08/02/2006: 12:00 AM,2.46014727339051 +08/03/2006: 12:00 AM,2.56702110579169 +08/04/2006: 12:00 AM,2.69253185598991 +08/05/2006: 12:00 AM,2.18436839091735 +08/06/2006: 12:00 AM,2.22255048604534 +08/07/2006: 12:00 AM,2.43272230694151 +08/08/2006: 12:00 AM,2.70510137428064 +08/09/2006: 12:00 AM,2.49555972738614 +08/10/2006: 12:00 AM,2.46601581901074 +08/11/2006: 12:00 AM,1.71479924041425 +08/12/2006: 12:00 AM,0.930650220778947 +08/13/2006: 12:00 AM,2.0092948067251 +08/14/2006: 12:00 AM,2.18723124426199 +08/15/2006: 12:00 AM,2.11772591003565 +08/16/2006: 12:00 AM,1.97330542264674 +08/17/2006: 12:00 AM,2.06484162163322 +08/18/2006: 12:00 AM,2.26439016099088 +08/19/2006: 12:00 AM,2.07552431809579 +08/20/2006: 12:00 AM,1.65247726278151 +08/21/2006: 12:00 AM,1.93822240658535 +08/22/2006: 12:00 AM,2.05115822583589 +08/23/2006: 12:00 AM,1.83449379492081 +08/24/2006: 12:00 AM,2.03241772709257 +08/25/2006: 12:00 AM,1.99712395661739 +08/26/2006: 12:00 AM,2.23869529993857 +08/27/2006: 12:00 AM,2.26972485511587 +08/28/2006: 12:00 AM,1.99797424633938 +08/29/2006: 12:00 AM,2.1869185946079 +08/30/2006: 12:00 AM,2.11088615849073 +08/31/2006: 12:00 AM,0.95092518549285 +09/01/2006: 12:00 AM,1.56130617857336 +09/02/2006: 12:00 AM,1.18636413559955 +09/03/2006: 12:00 AM,1.82270001732682 +09/04/2006: 12:00 AM,1.49208513844329 +09/05/2006: 12:00 AM,1.0931729292985 +09/06/2006: 12:00 AM,1.73994510153626 +09/07/2006: 12:00 AM,1.5514221205735 +09/08/2006: 12:00 AM,1.59135495899139 +09/09/2006: 12:00 AM,1.73136181297636 +09/10/2006: 12:00 AM,1.88160839463366 +09/11/2006: 12:00 AM,1.45721050091402 +09/12/2006: 12:00 AM,1.02601995146229 +09/13/2006: 12:00 AM,0.922102947731386 +09/14/2006: 12:00 AM,1.47449825860304 +09/15/2006: 12:00 AM,1.72518479866584 +09/16/2006: 12:00 AM,1.72798246691018 +09/17/2006: 12:00 AM,1.68184920482789 +09/18/2006: 12:00 AM,1.81101509857691 +09/19/2006: 12:00 AM,1.40726487121389 +09/20/2006: 12:00 AM,1.48259721068169 +09/21/2006: 12:00 AM,1.46649576172562 +09/22/2006: 12:00 AM,1.1285287594839 +09/23/2006: 12:00 AM,1.44938015187482 +09/24/2006: 12:00 AM,1.23392430096441 +09/25/2006: 12:00 AM,1.28814375909179 +09/26/2006: 12:00 AM,1.32727269851084 +09/27/2006: 12:00 AM,1.38095947120647 +09/28/2006: 12:00 AM,1.39598299369598 +09/29/2006: 12:00 AM,1.19339705480731 +09/30/2006: 12:00 AM,1.44198449123667 +10/01/2006: 12:00 AM,1.52860669022361 +10/02/2006: 12:00 AM,1.53853272564206 +10/03/2006: 12:00 AM,1.56570297745479 +10/04/2006: 12:00 AM,1.5289396401025 +10/05/2006: 12:00 AM,1.57532889130277 +10/06/2006: 12:00 AM,1.17503162263837 +10/07/2006: 12:00 AM,1.31223278831608 +10/08/2006: 12:00 AM,1.14427699987686 +10/09/2006: 12:00 AM,1.42013145496753 +10/10/2006: 12:00 AM,1.46740590051019 +10/11/2006: 12:00 AM,1.09050707074363 +10/12/2006: 12:00 AM,1.04852981380575 +10/13/2006: 12:00 AM,0.963295928104986 +10/14/2006: 12:00 AM,1.10565759836766 +10/15/2006: 12:00 AM,1.26398291919515 +10/16/2006: 12:00 AM,0.819566792120529 +10/17/2006: 12:00 AM,0.818815001715051 +10/18/2006: 12:00 AM,1.24560765011738 +10/19/2006: 12:00 AM,1.00014485933125 +10/20/2006: 12:00 AM,0.63466550935751 +10/21/2006: 12:00 AM,1.09092629390404 +10/22/2006: 12:00 AM,0.943472743101637 +10/23/2006: 12:00 AM,0.563467582590166 +10/24/2006: 12:00 AM,0.631132550863525 +10/25/2006: 12:00 AM,0.935144134432019 +10/26/2006: 12:00 AM,0.955545654852321 +10/27/2006: 12:00 AM,0.628086441866991 +10/28/2006: 12:00 AM,0.604939380151331 +10/29/2006: 12:00 AM,1.06301870290077 +10/30/2006: 12:00 AM,1.21838313056082 +10/31/2006: 12:00 AM,0.979587129697057 +11/01/2006: 12:00 AM,1.09994383613422 +11/02/2006: 12:00 AM,0.666917075136355 +11/03/2006: 12:00 AM,0.664174594362801 +11/04/2006: 12:00 AM,0.754128108648011 +11/05/2006: 12:00 AM,0.852355321927833 +11/06/2006: 12:00 AM,0.784543782114183 +11/07/2006: 12:00 AM,0.683322457969376 +11/08/2006: 12:00 AM,0.739129946120512 +11/09/2006: 12:00 AM,1.09394192712769 +11/10/2006: 12:00 AM,1.21482339387855 +11/11/2006: 12:00 AM,0.915900855208104 +11/12/2006: 12:00 AM,0.700097008685892 +11/13/2006: 12:00 AM,0.986215294781085 +11/14/2006: 12:00 AM,0.948154466911221 +11/15/2006: 12:00 AM,0.623134338395868 +11/16/2006: 12:00 AM,0 +11/17/2006: 12:00 AM,0.560320359741539 +11/18/2006: 12:00 AM,0.760396351929415 +11/19/2006: 12:00 AM,0.537776760484921 +11/20/2006: 12:00 AM,0.433543064108764 +11/21/2006: 12:00 AM,0.568700785315147 +11/22/2006: 12:00 AM,0.814875678330379 +11/23/2006: 12:00 AM,0.909621538594913 +11/24/2006: 12:00 AM,0.908843080392959 +11/25/2006: 12:00 AM,0.922144797763549 +11/26/2006: 12:00 AM,0.897737323291487 +11/27/2006: 12:00 AM,0.87423730918338 +11/28/2006: 12:00 AM,0.663262388146908 +11/29/2006: 12:00 AM,0.660879555968433 +11/30/2006: 12:00 AM,0.547666054490162 +12/01/2006: 12:00 AM,0.401471686127754 +12/02/2006: 12:00 AM,0.668548039691136 +12/03/2006: 12:00 AM,0.64192477923637 +12/04/2006: 12:00 AM,0.459025201237166 +12/05/2006: 12:00 AM,0.578447012915794 +12/06/2006: 12:00 AM,0.621004374138832 +12/07/2006: 12:00 AM,0.472415455889889 +12/08/2006: 12:00 AM,0.387238652314909 +12/09/2006: 12:00 AM,0.502071694464211 +12/10/2006: 12:00 AM,0.568434708302798 +12/11/2006: 12:00 AM,0.748637198401854 +12/12/2006: 12:00 AM,0.669671804647622 +12/13/2006: 12:00 AM,0.625287451432246 +12/14/2006: 12:00 AM,0.62900097080706 +12/15/2006: 12:00 AM,0.757238235684453 +12/16/2006: 12:00 AM,0.848072910565826 +12/17/2006: 12:00 AM,0.811273187694337 +12/18/2006: 12:00 AM,0.810509097257843 +12/19/2006: 12:00 AM,0.750685701651316 +12/20/2006: 12:00 AM,0.501802852707481 +12/21/2006: 12:00 AM,0.464561883577172 +12/22/2006: 12:00 AM,0.405351418052326 +12/23/2006: 12:00 AM,0.555412483962505 +12/24/2006: 12:00 AM,0.68623049118484 +12/25/2006: 12:00 AM,0.529118809337406 +12/26/2006: 12:00 AM,0.0977498743247513 +12/27/2006: 12:00 AM,0.521259609764143 +12/28/2006: 12:00 AM,0.588493124261906 +12/29/2006: 12:00 AM,0.674640080031692 +12/30/2006: 12:00 AM,0.587354676997379 +12/31/2006: 12:00 AM,0.564959557574769 +01/01/2007: 12:00 AM,0.588847023280066 +01/02/2007: 12:00 AM,0.735225179979443 +01/03/2007: 12:00 AM,0.64038882333034 +01/04/2007: 12:00 AM,0.753223404129518 +01/05/2007: 12:00 AM,0.684191246925577 +01/06/2007: 12:00 AM,0.78907990214814 +01/07/2007: 12:00 AM,0.591976420555998 +01/08/2007: 12:00 AM,0.340281079811582 +01/09/2007: 12:00 AM,0.355316656849086 +01/10/2007: 12:00 AM,0.427410517497618 +01/11/2007: 12:00 AM,0.493331280840878 +01/12/2007: 12:00 AM,0.541272322319617 +01/13/2007: 12:00 AM,0.725987444511147 +01/14/2007: 12:00 AM,0.770862309864947 +01/15/2007: 12:00 AM,0.608430414808349 +01/16/2007: 12:00 AM,0.134067695624298 +01/17/2007: 12:00 AM,0.437591756616994 +01/18/2007: 12:00 AM,0.326667545165357 +01/19/2007: 12:00 AM,0.475502496275705 +01/20/2007: 12:00 AM,0.59980429893866 +01/21/2007: 12:00 AM,0.366219319369823 +01/22/2007: 12:00 AM,0.452396183696026 +01/23/2007: 12:00 AM,0.420038453366975 +01/24/2007: 12:00 AM,0.527107735089186 +01/25/2007: 12:00 AM,0.413164789151248 +01/26/2007: 12:00 AM,0.638149114042471 +01/27/2007: 12:00 AM,0.773600315319596 +01/28/2007: 12:00 AM,0 +01/29/2007: 12:00 AM,0.403699116514699 +01/30/2007: 12:00 AM,0.539883948190348 +01/31/2007: 12:00 AM,0.479751919428107 +02/01/2007: 12:00 AM,0.364306428210237 +02/02/2007: 12:00 AM,0.548727602039997 +02/03/2007: 12:00 AM,0.404176386873771 +02/04/2007: 12:00 AM,0.376012829799574 +02/05/2007: 12:00 AM,0.411615287575045 +02/06/2007: 12:00 AM,0.635049585350212 +02/07/2007: 12:00 AM,0.865031031528748 +02/08/2007: 12:00 AM,0.675155725081496 +02/09/2007: 12:00 AM,0.487891166632782 +02/10/2007: 12:00 AM,0.579278327558798 +02/11/2007: 12:00 AM,0.791218061563041 +02/12/2007: 12:00 AM,1.02211589534956 +02/13/2007: 12:00 AM,0.736536003489748 +02/14/2007: 12:00 AM,0.444556886274915 +02/15/2007: 12:00 AM,0.52514342557329 +02/16/2007: 12:00 AM,0.492881600965663 +02/17/2007: 12:00 AM,0.405350716904537 +02/18/2007: 12:00 AM,0.485716605461604 +02/19/2007: 12:00 AM,0.898267835243052 +02/20/2007: 12:00 AM,0.929766282639554 +02/21/2007: 12:00 AM,0.977610859136775 +02/22/2007: 12:00 AM,1.04768196059043 +02/23/2007: 12:00 AM,1.00375979700715 +02/24/2007: 12:00 AM,0.882592771487319 +02/25/2007: 12:00 AM,0.882110941057989 +02/26/2007: 12:00 AM,1.04605646088264 +02/27/2007: 12:00 AM,1.16207535836967 +02/28/2007: 12:00 AM,1.26402130587882 +03/01/2007: 12:00 AM,0.874989999253315 +03/02/2007: 12:00 AM,0.966441330390142 +03/03/2007: 12:00 AM,0.875755714836109 +03/04/2007: 12:00 AM,0.682416378316095 +03/05/2007: 12:00 AM,1.06775374113739 +03/06/2007: 12:00 AM,1.16081706256003 +03/07/2007: 12:00 AM,1.26209412612701 +03/08/2007: 12:00 AM,1.41092230756156 +03/09/2007: 12:00 AM,1.08840776788574 +03/10/2007: 12:00 AM,1.24487398732725 +03/11/2007: 12:00 AM,1.38628598130376 +03/12/2007: 12:00 AM,1.55300790309294 +03/13/2007: 12:00 AM,1.65590523929811 +03/14/2007: 12:00 AM,1.56317644385465 +03/15/2007: 12:00 AM,1.27634546390367 +03/16/2007: 12:00 AM,0.601632629950474 +03/17/2007: 12:00 AM,0.660360145650585 +03/18/2007: 12:00 AM,1.0024721329332 +03/19/2007: 12:00 AM,1.41892710191466 +03/20/2007: 12:00 AM,1.5714454966628 +03/21/2007: 12:00 AM,1.43559454893632 +03/22/2007: 12:00 AM,1.37203431817931 +03/23/2007: 12:00 AM,1.86987317474225 +03/24/2007: 12:00 AM,1.84418109621431 +03/25/2007: 12:00 AM,2.06621075688979 +03/26/2007: 12:00 AM,1.69166617197537 +03/27/2007: 12:00 AM,1.86181028211795 +03/28/2007: 12:00 AM,1.78416887155623 +03/29/2007: 12:00 AM,1.24056308263533 +03/30/2007: 12:00 AM,1.33716855587274 +03/31/2007: 12:00 AM,1.71818021193986 +04/01/2007: 12:00 AM,0.69794164410421 +04/02/2007: 12:00 AM,1.82335360999996 +04/03/2007: 12:00 AM,2.01308320436355 +04/04/2007: 12:00 AM,1.54859651260686 +04/05/2007: 12:00 AM,1.17289310732903 +04/06/2007: 12:00 AM,1.15101163598665 +04/07/2007: 12:00 AM,0.660305793026999 +04/08/2007: 12:00 AM,1.09281892319959 +04/09/2007: 12:00 AM,1.063639163583 +04/10/2007: 12:00 AM,1.44398707247604 +04/11/2007: 12:00 AM,1.03320959319342 +04/12/2007: 12:00 AM,1.55967712811059 +04/13/2007: 12:00 AM,1.5118231892981 +04/14/2007: 12:00 AM,1.57233667780981 +04/15/2007: 12:00 AM,0.887435785993238 +04/16/2007: 12:00 AM,1.4034245689178 +04/17/2007: 12:00 AM,1.8052947778854 +04/18/2007: 12:00 AM,1.54703553180759 +04/19/2007: 12:00 AM,1.75530925871362 +04/20/2007: 12:00 AM,1.85417966686643 +04/21/2007: 12:00 AM,1.98733892085236 +04/22/2007: 12:00 AM,2.17836365893062 +04/23/2007: 12:00 AM,2.32397278220579 +04/24/2007: 12:00 AM,1.86431797586612 +04/25/2007: 12:00 AM,2.27499387683364 +04/26/2007: 12:00 AM,1.39293646628836 +04/27/2007: 12:00 AM,1.6321406588601 +04/28/2007: 12:00 AM,1.77200524375758 +04/29/2007: 12:00 AM,2.13049544830157 +04/30/2007: 12:00 AM,2.58334625690468 +05/01/2007: 12:00 AM,2.62793489538774 +05/02/2007: 12:00 AM,1.32894535063746 +05/03/2007: 12:00 AM,2.28994654793171 +05/04/2007: 12:00 AM,1.89887704266326 +05/05/2007: 12:00 AM,0.915872449152137 +05/06/2007: 12:00 AM,1.76026775002529 +05/07/2007: 12:00 AM,2.26317185227597 +05/08/2007: 12:00 AM,2.47513703331266 +05/09/2007: 12:00 AM,2.37005670200348 +05/10/2007: 12:00 AM,2.49008211187817 +05/11/2007: 12:00 AM,2.52951996676444 +05/12/2007: 12:00 AM,1.66659115912571 +05/13/2007: 12:00 AM,2.38221530802613 +05/14/2007: 12:00 AM,1.69888724343296 +05/15/2007: 12:00 AM,2.34637120592201 +05/16/2007: 12:00 AM,1.78178153809353 +05/17/2007: 12:00 AM,2.04571398629347 +05/18/2007: 12:00 AM,1.8297833124873 +05/19/2007: 12:00 AM,2.18225316258108 +05/20/2007: 12:00 AM,2.44550109798852 +05/21/2007: 12:00 AM,2.61743812044499 +05/22/2007: 12:00 AM,2.51344814659478 +05/23/2007: 12:00 AM,2.40601909343509 +05/24/2007: 12:00 AM,2.12284697546786 +05/25/2007: 12:00 AM,2.45675877499985 +05/26/2007: 12:00 AM,2.53835979037269 +05/27/2007: 12:00 AM,2.52262643004771 +05/28/2007: 12:00 AM,2.40893726463816 +05/29/2007: 12:00 AM,2.55014680451408 +05/30/2007: 12:00 AM,2.6270004207809 +05/31/2007: 12:00 AM,2.74693725600577 +06/01/2007: 12:00 AM,2.42318369654732 +06/02/2007: 12:00 AM,1.73470819191534 +06/03/2007: 12:00 AM,2.09785398193175 +06/04/2007: 12:00 AM,2.31913574861469 +06/05/2007: 12:00 AM,2.40791349471335 +06/06/2007: 12:00 AM,2.57452155561326 +06/07/2007: 12:00 AM,2.65519899506036 +06/08/2007: 12:00 AM,2.47024494442684 +06/09/2007: 12:00 AM,2.81765391385275 +06/10/2007: 12:00 AM,2.8053792540943 +06/11/2007: 12:00 AM,2.0130980621054 +06/12/2007: 12:00 AM,2.33361171116253 +06/13/2007: 12:00 AM,2.38361352836773 +06/14/2007: 12:00 AM,2.22099797473735 +06/15/2007: 12:00 AM,1.85047873486858 +06/16/2007: 12:00 AM,2.52393092397834 +06/17/2007: 12:00 AM,2.81377026910154 +06/18/2007: 12:00 AM,2.5093892641028 +06/19/2007: 12:00 AM,2.38191796639607 +06/20/2007: 12:00 AM,2.21442395059306 +06/21/2007: 12:00 AM,2.814141220682 +06/22/2007: 12:00 AM,2.64834240186341 +06/23/2007: 12:00 AM,2.79215613915221 +06/24/2007: 12:00 AM,2.57080464678717 +06/25/2007: 12:00 AM,2.5378698637742 +06/26/2007: 12:00 AM,2.37964982354721 +06/27/2007: 12:00 AM,2.51246622289245 +06/28/2007: 12:00 AM,2.46479443483763 +06/29/2007: 12:00 AM,2.47619590101098 +06/30/2007: 12:00 AM,2.26626077662515 +07/01/2007: 12:00 AM,2.3344748564366 +07/02/2007: 12:00 AM,1.2973059287386 +07/03/2007: 12:00 AM,1.75676678004338 +07/04/2007: 12:00 AM,2.26286621566881 +07/05/2007: 12:00 AM,2.53341549056989 +07/06/2007: 12:00 AM,2.3275370994712 +07/07/2007: 12:00 AM,2.11850629376618 +07/08/2007: 12:00 AM,2.44534575744316 +07/09/2007: 12:00 AM,2.54400801104053 +07/10/2007: 12:00 AM,2.28936243876775 +07/11/2007: 12:00 AM,2.03042659544319 +07/12/2007: 12:00 AM,2.41611233383249 +07/13/2007: 12:00 AM,1.48627072856328 +07/14/2007: 12:00 AM,2.10776379801956 +07/15/2007: 12:00 AM,2.16712794527439 +07/16/2007: 12:00 AM,2.41868976376673 +07/17/2007: 12:00 AM,1.99756624168861 +07/18/2007: 12:00 AM,2.32526777247691 +07/19/2007: 12:00 AM,2.56373469004818 +07/20/2007: 12:00 AM,2.08158586392428 +07/21/2007: 12:00 AM,2.15859420624148 +07/22/2007: 12:00 AM,1.92137892208861 +07/23/2007: 12:00 AM,1.95140951049117 +07/24/2007: 12:00 AM,1.74784513696292 +07/25/2007: 12:00 AM,2.1685289518497 +07/26/2007: 12:00 AM,2.28749263614301 +07/27/2007: 12:00 AM,2.31237570184409 +07/28/2007: 12:00 AM,1.85530362111219 +07/29/2007: 12:00 AM,2.00417162027372 +07/30/2007: 12:00 AM,2.14367088999023 +07/31/2007: 12:00 AM,2.28506090996909 +08/01/2007: 12:00 AM,2.31624422905501 +08/02/2007: 12:00 AM,2.20389258765631 +08/03/2007: 12:00 AM,2.33394941079805 +08/04/2007: 12:00 AM,2.50442993590482 +08/05/2007: 12:00 AM,2.18982549871369 +08/06/2007: 12:00 AM,2.37655985701698 +08/07/2007: 12:00 AM,2.45449611224654 +08/08/2007: 12:00 AM,2.52725443363807 +08/09/2007: 12:00 AM,2.50522993922533 +08/10/2007: 12:00 AM,2.5627588144771 +08/11/2007: 12:00 AM,2.51510214041658 +08/12/2007: 12:00 AM,2.05829543670589 +08/13/2007: 12:00 AM,2.41588264015864 +08/14/2007: 12:00 AM,2.49568416802678 +08/15/2007: 12:00 AM,2.65374022017445 +08/16/2007: 12:00 AM,2.6707918307592 +08/17/2007: 12:00 AM,2.18649392269069 +08/18/2007: 12:00 AM,2.51756106983777 +08/19/2007: 12:00 AM,2.40214896962922 +08/20/2007: 12:00 AM,2.36434089462975 +08/21/2007: 12:00 AM,2.50966751420444 +08/22/2007: 12:00 AM,2.56131599001281 +08/23/2007: 12:00 AM,2.45968322299671 +08/24/2007: 12:00 AM,2.17448181921268 +08/25/2007: 12:00 AM,2.20483698816038 +08/26/2007: 12:00 AM,1.8600281168146 +08/27/2007: 12:00 AM,2.15394621021089 +08/28/2007: 12:00 AM,2.10966439514726 +08/29/2007: 12:00 AM,2.19161582730665 +08/30/2007: 12:00 AM,1.7040859317289 +08/31/2007: 12:00 AM,1.94355083969989 +09/01/2007: 12:00 AM,1.78552314062105 +09/02/2007: 12:00 AM,1.88586139033124 +09/03/2007: 12:00 AM,2.14343024981161 +09/04/2007: 12:00 AM,2.17537523204326 +09/05/2007: 12:00 AM,2.25460409578723 +09/06/2007: 12:00 AM,2.01499401989271 +09/07/2007: 12:00 AM,1.86279672471812 +09/08/2007: 12:00 AM,2.12494797923101 +09/09/2007: 12:00 AM,2.16152028441938 +09/10/2007: 12:00 AM,1.90006388849981 +09/11/2007: 12:00 AM,1.94232305292357 +09/12/2007: 12:00 AM,1.93051439231252 +09/13/2007: 12:00 AM,1.86882450274853 +09/14/2007: 12:00 AM,0.928399982154241 +09/15/2007: 12:00 AM,1.66609209735556 +09/16/2007: 12:00 AM,1.63941277051966 +09/17/2007: 12:00 AM,1.69626268703336 +09/18/2007: 12:00 AM,1.70145048507375 +09/19/2007: 12:00 AM,1.89417206562149 +09/20/2007: 12:00 AM,1.78831276665431 +09/21/2007: 12:00 AM,1.41546368898798 +09/22/2007: 12:00 AM,1.75913726730919 +09/23/2007: 12:00 AM,1.88586219846782 +09/24/2007: 12:00 AM,1.83988956872398 +09/25/2007: 12:00 AM,1.75541883858906 +09/26/2007: 12:00 AM,1.77854278939288 +09/27/2007: 12:00 AM,1.67905841994536 +09/28/2007: 12:00 AM,1.53524335111502 +09/29/2007: 12:00 AM,1.66350841606758 +09/30/2007: 12:00 AM,1.62784586154969 +10/01/2007: 12:00 AM,1.63741673931735 +10/02/2007: 12:00 AM,1.67178597551064 +10/03/2007: 12:00 AM,1.08887890913015 +10/04/2007: 12:00 AM,1.1749829150873 +10/05/2007: 12:00 AM,1.02162900578308 +10/06/2007: 12:00 AM,1.53477642514217 +10/07/2007: 12:00 AM,1.63880867294234 +10/08/2007: 12:00 AM,1.61508697080288 +10/09/2007: 12:00 AM,1.49229334080234 +10/10/2007: 12:00 AM,1.51063190502911 +10/11/2007: 12:00 AM,1.07467755115907 +10/12/2007: 12:00 AM,1.27398316088779 +10/13/2007: 12:00 AM,1.38587824694921 +10/14/2007: 12:00 AM,1.49979651437713 +10/15/2007: 12:00 AM,1.42650607785436 +10/16/2007: 12:00 AM,1.18622860864112 +10/17/2007: 12:00 AM,1.18159186614419 +10/18/2007: 12:00 AM,0.985820488440853 +10/19/2007: 12:00 AM,0.913989072698242 +10/20/2007: 12:00 AM,1.21759561872093 +10/21/2007: 12:00 AM,1.3136872047477 +10/22/2007: 12:00 AM,0.990098382929255 +10/23/2007: 12:00 AM,1.09032099891226 +10/24/2007: 12:00 AM,0.631125377315323 +10/25/2007: 12:00 AM,0.742446737550405 +10/26/2007: 12:00 AM,0.923677401418002 +10/27/2007: 12:00 AM,1.00482337984486 +10/28/2007: 12:00 AM,1.03251283592074 +10/29/2007: 12:00 AM,0.963917313006384 +10/30/2007: 12:00 AM,1.0825452173663 +10/31/2007: 12:00 AM,1.04836168407206 +11/01/2007: 12:00 AM,1.06857829754635 +11/02/2007: 12:00 AM,0.952774476118325 +11/03/2007: 12:00 AM,0.962377269089924 +11/04/2007: 12:00 AM,0.828751481134293 +11/05/2007: 12:00 AM,1.02728098127498 +11/06/2007: 12:00 AM,0.535388993391754 +11/07/2007: 12:00 AM,0.679774206971839 +11/08/2007: 12:00 AM,0.671445653109688 +11/09/2007: 12:00 AM,0.842175375379364 +11/10/2007: 12:00 AM,0.764910602585145 +11/11/2007: 12:00 AM,0.790792933732878 +11/12/2007: 12:00 AM,0.905756085244625 +11/13/2007: 12:00 AM,0.78147181852677 +11/14/2007: 12:00 AM,1.02086211976263 +11/15/2007: 12:00 AM,0.23467506725525 +11/16/2007: 12:00 AM,0.600957777247975 +11/17/2007: 12:00 AM,0.734802722992136 +11/18/2007: 12:00 AM,0.86518612457486 +11/19/2007: 12:00 AM,0.946125594442731 +11/20/2007: 12:00 AM,0.976858390888306 +11/21/2007: 12:00 AM,0.828217377606376 +11/22/2007: 12:00 AM,0.69665206461291 +11/23/2007: 12:00 AM,0.418866278683044 +11/24/2007: 12:00 AM,0.508337357253214 +11/25/2007: 12:00 AM,0.639981525409559 +11/26/2007: 12:00 AM,0.655298246328384 +11/27/2007: 12:00 AM,0.483929337975826 +11/28/2007: 12:00 AM,0.717462813428219 +11/29/2007: 12:00 AM,0.685537651988121 +11/30/2007: 12:00 AM,0.666673030249802 +12/01/2007: 12:00 AM,0.721779407977863 +12/02/2007: 12:00 AM,0.732933265377269 +12/03/2007: 12:00 AM,0.515781129711207 +12/04/2007: 12:00 AM,0.560807723276551 +12/05/2007: 12:00 AM,0.654236801808667 +12/06/2007: 12:00 AM,0.420726259695539 +12/07/2007: 12:00 AM,0.665893555914241 +12/08/2007: 12:00 AM,0.728296079248539 +12/09/2007: 12:00 AM,0.741672430498629 +12/10/2007: 12:00 AM,0.787849674011903 +12/11/2007: 12:00 AM,0.900030944374784 +12/12/2007: 12:00 AM,0.829098269455846 +12/13/2007: 12:00 AM,0.661972986460138 +12/14/2007: 12:00 AM,0.658667674517517 +12/15/2007: 12:00 AM,0.543988950142368 +12/16/2007: 12:00 AM,0.196501018101255 +12/17/2007: 12:00 AM,0.408327215710478 +12/18/2007: 12:00 AM,0.453170570073586 +12/19/2007: 12:00 AM,0.423938147438068 +12/20/2007: 12:00 AM,0.465507022326132 +12/21/2007: 12:00 AM,0.437786464167966 +12/22/2007: 12:00 AM,0.431570425542921 +12/23/2007: 12:00 AM,0.481901230402818 +12/24/2007: 12:00 AM,0.522949850003858 +12/25/2007: 12:00 AM,0.406779070839585 +12/26/2007: 12:00 AM,0.473071135942843 +12/27/2007: 12:00 AM,0.656390895565529 +12/28/2007: 12:00 AM,0.658601179329832 +12/29/2007: 12:00 AM,0.766833461084983 +12/30/2007: 12:00 AM,0.4252944025262 +12/31/2007: 12:00 AM,0.557315672572604 +01/01/2008: 12:00 AM,0.308078593092168 +01/02/2008: 12:00 AM,0.215475400569408 +01/03/2008: 12:00 AM,0.331063203476323 +01/04/2008: 12:00 AM,0.478683466973502 +01/05/2008: 12:00 AM,0.571005956899332 +01/06/2008: 12:00 AM,0.749299922257076 +01/07/2008: 12:00 AM,0.818056844485008 +01/08/2008: 12:00 AM,0.546183839980497 +01/09/2008: 12:00 AM,0.572649364598048 +01/10/2008: 12:00 AM,0.591672190475739 +01/11/2008: 12:00 AM,0.653660365725408 +01/12/2008: 12:00 AM,0.613338568974689 +01/13/2008: 12:00 AM,0.517069660385134 +01/14/2008: 12:00 AM,0.449298758761738 +01/15/2008: 12:00 AM,0.397972168692525 +01/16/2008: 12:00 AM,0.398031476974001 +01/17/2008: 12:00 AM,0.365421577050133 +01/18/2008: 12:00 AM,0.550471729637741 +01/19/2008: 12:00 AM,0.215704802499073 +01/20/2008: 12:00 AM,0.282345651721013 +01/21/2008: 12:00 AM,0.394443880245807 +01/22/2008: 12:00 AM,0.459243147667879 +01/23/2008: 12:00 AM,0.58385168431282 +01/24/2008: 12:00 AM,0.416989513312716 +01/25/2008: 12:00 AM,0.473341861674847 +01/26/2008: 12:00 AM,0.595420024285298 +01/27/2008: 12:00 AM,0.634062311204735 +01/28/2008: 12:00 AM,0.798698757411239 +01/29/2008: 12:00 AM,0.826011778443239 +01/30/2008: 12:00 AM,0.548121428520803 +01/31/2008: 12:00 AM,0.622532382613191 +02/01/2008: 12:00 AM,0.416195876067495 +02/02/2008: 12:00 AM,0.872321603156001 +02/03/2008: 12:00 AM,0.92204627941177 +02/04/2008: 12:00 AM,0.780867696622574 +02/05/2008: 12:00 AM,1.05673189310411 +02/06/2008: 12:00 AM,0.463718137781511 +02/07/2008: 12:00 AM,0.837124210179891 +02/08/2008: 12:00 AM,0.844496389063688 +02/09/2008: 12:00 AM,0.797586766832653 +02/10/2008: 12:00 AM,0.77917004236549 +02/11/2008: 12:00 AM,0.942226337583124 +02/12/2008: 12:00 AM,0.773731246858951 +02/13/2008: 12:00 AM,0.377991334129906 +02/14/2008: 12:00 AM,0.901108868062322 +02/15/2008: 12:00 AM,0.954844652540597 +02/16/2008: 12:00 AM,1.05945478600523 +02/17/2008: 12:00 AM,0.678651678864477 +02/18/2008: 12:00 AM,0.591408804131318 +02/19/2008: 12:00 AM,0.518050365671436 +02/20/2008: 12:00 AM,0.840079678388681 +02/21/2008: 12:00 AM,0.671031494620145 +02/22/2008: 12:00 AM,0.750887398041563 +02/23/2008: 12:00 AM,0.921081553290176 +02/24/2008: 12:00 AM,0.785528653641518 +02/25/2008: 12:00 AM,1.16047103733614 +02/26/2008: 12:00 AM,0.907976718676433 +02/27/2008: 12:00 AM,0.329048065134328 +02/28/2008: 12:00 AM,0.632329343359291 +02/29/2008: 12:00 AM,0.717349927185577 +03/01/2008: 12:00 AM,1.07449463064605 +03/02/2008: 12:00 AM,1.17959875977038 +03/03/2008: 12:00 AM,1.20983521699838 +03/04/2008: 12:00 AM,1.04103097196474 +03/05/2008: 12:00 AM,1.16856377900347 +03/06/2008: 12:00 AM,1.30751884237465 +03/07/2008: 12:00 AM,0.908134110368515 +03/08/2008: 12:00 AM,0 +03/09/2008: 12:00 AM,1.05689838460707 +03/10/2008: 12:00 AM,1.29447356290026 +03/11/2008: 12:00 AM,0.911774569226987 +03/12/2008: 12:00 AM,1.34919460312526 +03/13/2008: 12:00 AM,1.54173595594748 +03/14/2008: 12:00 AM,1.06062760856419 +03/15/2008: 12:00 AM,0.888009776573004 +03/16/2008: 12:00 AM,1.0134027934632 +03/17/2008: 12:00 AM,1.05466299217621 +03/18/2008: 12:00 AM,1.06673249697693 +03/19/2008: 12:00 AM,1.17728018618849 +03/20/2008: 12:00 AM,1.02210447617279 +03/21/2008: 12:00 AM,1.40713879403315 +03/22/2008: 12:00 AM,1.56983962813205 +03/23/2008: 12:00 AM,1.10933074830177 +03/24/2008: 12:00 AM,0.750863181027901 +03/25/2008: 12:00 AM,1.1283447073908 +03/26/2008: 12:00 AM,1.5239904765353 +03/27/2008: 12:00 AM,1.6587052283213 +03/28/2008: 12:00 AM,1.38554559314195 +03/29/2008: 12:00 AM,0.898320918418453 +03/30/2008: 12:00 AM,0.616131213998529 +03/31/2008: 12:00 AM,1.0761983849122 +04/01/2008: 12:00 AM,1.75009279228871 +04/02/2008: 12:00 AM,1.79807251502028 +04/03/2008: 12:00 AM,0.751595926737948 +04/04/2008: 12:00 AM,1.45916017641841 +04/05/2008: 12:00 AM,0.856652263330096 +04/06/2008: 12:00 AM,1.38024871788868 +04/07/2008: 12:00 AM,1.48742566943133 +04/08/2008: 12:00 AM,1.17362003265213 +04/09/2008: 12:00 AM,1.8866094512388 +04/10/2008: 12:00 AM,1.74401807769807 +04/11/2008: 12:00 AM,1.75479626150913 +04/12/2008: 12:00 AM,1.44856338622486 +04/13/2008: 12:00 AM,0.955374275276112 +04/14/2008: 12:00 AM,0.816912640138598 +04/15/2008: 12:00 AM,1.33187658008925 +04/16/2008: 12:00 AM,1.88434080285633 +04/17/2008: 12:00 AM,2.22417243283617 +04/18/2008: 12:00 AM,2.12309830625458 +04/19/2008: 12:00 AM,1.32402058372004 +04/20/2008: 12:00 AM,1.4609931058494 +04/21/2008: 12:00 AM,1.93382803460632 +04/22/2008: 12:00 AM,2.18007292276608 +04/23/2008: 12:00 AM,2.10380758604627 +04/24/2008: 12:00 AM,2.09507351403928 +04/25/2008: 12:00 AM,2.02099955858628 +04/26/2008: 12:00 AM,2.09968310403329 +04/27/2008: 12:00 AM,1.51401157357715 +04/28/2008: 12:00 AM,1.02658252257823 +04/29/2008: 12:00 AM,1.30907497645389 +04/30/2008: 12:00 AM,2.08588491068415 +05/01/2008: 12:00 AM,2.17090139234067 +05/02/2008: 12:00 AM,1.94594825667822 +05/03/2008: 12:00 AM,1.04496047102531 +05/04/2008: 12:00 AM,2.15941657047457 +05/05/2008: 12:00 AM,2.16694589813244 +05/06/2008: 12:00 AM,2.37136944811862 +05/07/2008: 12:00 AM,2.12588906740741 +05/08/2008: 12:00 AM,1.86961454563272 +05/09/2008: 12:00 AM,1.94043984333683 +05/10/2008: 12:00 AM,2.00074510914881 +05/11/2008: 12:00 AM,1.35061922502852 +05/12/2008: 12:00 AM,1.59886211131548 +05/13/2008: 12:00 AM,2.28210494987491 +05/14/2008: 12:00 AM,1.61502289193345 +05/15/2008: 12:00 AM,1.27063368207021 +05/16/2008: 12:00 AM,1.35974419997163 +05/17/2008: 12:00 AM,2.12859569598091 +05/18/2008: 12:00 AM,1.78287836738416 +05/19/2008: 12:00 AM,2.2012692143408 +05/20/2008: 12:00 AM,2.27467690171861 +05/21/2008: 12:00 AM,1.94729847194792 +05/22/2008: 12:00 AM,2.49720819324452 +05/23/2008: 12:00 AM,2.44894779942695 +05/24/2008: 12:00 AM,2.21651990220735 +05/25/2008: 12:00 AM,2.26677296530576 +05/26/2008: 12:00 AM,2.53892883554304 +05/27/2008: 12:00 AM,2.40991417135397 +05/28/2008: 12:00 AM,1.51624102658452 +05/29/2008: 12:00 AM,2.08469711770465 +05/30/2008: 12:00 AM,2.25087367248304 +05/31/2008: 12:00 AM,2.16889896883343 +06/01/2008: 12:00 AM,1.61940407517152 +06/02/2008: 12:00 AM,2.36400946288136 +06/03/2008: 12:00 AM,2.29572894366145 +06/04/2008: 12:00 AM,2.5895004129415 +06/05/2008: 12:00 AM,2.70202513795608 +06/06/2008: 12:00 AM,2.78598096893087 +06/07/2008: 12:00 AM,2.65761290127641 +06/08/2008: 12:00 AM,2.93683963595444 +06/09/2008: 12:00 AM,2.81341292974836 +06/10/2008: 12:00 AM,2.69404590295956 +06/11/2008: 12:00 AM,2.56634772219849 +06/12/2008: 12:00 AM,2.37807314230352 +06/13/2008: 12:00 AM,2.33404385384134 +06/14/2008: 12:00 AM,2.2070186089809 +06/15/2008: 12:00 AM,2.40517272455127 +06/16/2008: 12:00 AM,2.38123229495651 +06/17/2008: 12:00 AM,2.37294641266535 +06/18/2008: 12:00 AM,2.47918470875043 +06/19/2008: 12:00 AM,2.50759695766127 +06/20/2008: 12:00 AM,2.56947612171862 +06/21/2008: 12:00 AM,2.14498031657308 +06/22/2008: 12:00 AM,2.34183155080426 +06/23/2008: 12:00 AM,2.62503837489173 +06/24/2008: 12:00 AM,2.74473289057771 +06/25/2008: 12:00 AM,2.76214810918077 +06/26/2008: 12:00 AM,2.87823068054538 +06/27/2008: 12:00 AM,2.59322157464142 +06/28/2008: 12:00 AM,2.47309312822071 +06/29/2008: 12:00 AM,2.09621695631064 +06/30/2008: 12:00 AM,2.17176172280214 +07/01/2008: 12:00 AM,2.34403287625913 +07/02/2008: 12:00 AM,2.58677667294727 +07/03/2008: 12:00 AM,2.55456988818404 +07/04/2008: 12:00 AM,2.56985873591545 +07/05/2008: 12:00 AM,2.25552150432467 +07/06/2008: 12:00 AM,2.51765119188049 +07/07/2008: 12:00 AM,2.41789378550504 +07/08/2008: 12:00 AM,2.28923343541076 +07/09/2008: 12:00 AM,2.4861782339805 +07/10/2008: 12:00 AM,2.06929447699216 +07/11/2008: 12:00 AM,2.18168939930007 +07/12/2008: 12:00 AM,2.52906712945964 +07/13/2008: 12:00 AM,1.73547458658927 +07/14/2008: 12:00 AM,2.39675880178481 +07/15/2008: 12:00 AM,2.5018827461707 +07/16/2008: 12:00 AM,2.44257065028673 +07/17/2008: 12:00 AM,2.46565619262958 +07/18/2008: 12:00 AM,2.6755153024032 +07/19/2008: 12:00 AM,2.27146241303015 +07/20/2008: 12:00 AM,2.68870412755894 +07/21/2008: 12:00 AM,2.83155036685092 +07/22/2008: 12:00 AM,2.60697064163115 +07/23/2008: 12:00 AM,2.4498401643274 +07/24/2008: 12:00 AM,2.47079749910216 +07/25/2008: 12:00 AM,2.09100624488931 +07/26/2008: 12:00 AM,2.04779766782957 +07/27/2008: 12:00 AM,2.6201386986979 +07/28/2008: 12:00 AM,2.6172104550332 +07/29/2008: 12:00 AM,2.22223230133561 +07/30/2008: 12:00 AM,2.62845244332835 +07/31/2008: 12:00 AM,2.31624422905501 +08/01/2008: 12:00 AM,2.51824380149983 +08/02/2008: 12:00 AM,2.72731455591161 +08/03/2008: 12:00 AM,2.53268693862074 +08/04/2008: 12:00 AM,2.65861312033746 +08/05/2008: 12:00 AM,2.6302688834883 +08/06/2008: 12:00 AM,2.52192228850628 +08/07/2008: 12:00 AM,2.39100686077475 +08/08/2008: 12:00 AM,2.09730319792961 +08/09/2008: 12:00 AM,2.33092891252349 +08/10/2008: 12:00 AM,2.18663729162356 +08/11/2008: 12:00 AM,2.40145688220861 +08/12/2008: 12:00 AM,2.22564708121243 +08/13/2008: 12:00 AM,2.03898680008528 +08/14/2008: 12:00 AM,2.20532128899159 +08/15/2008: 12:00 AM,2.31239142303959 +08/16/2008: 12:00 AM,1.82996443536398 +08/17/2008: 12:00 AM,2.1428634445651 +08/18/2008: 12:00 AM,2.14090260199889 +08/19/2008: 12:00 AM,2.40493996447902 +08/20/2008: 12:00 AM,2.33439050417583 +08/21/2008: 12:00 AM,2.14147964418821 +08/22/2008: 12:00 AM,1.90028611789934 +08/23/2008: 12:00 AM,1.90956071592878 +08/24/2008: 12:00 AM,1.62885002281569 +08/25/2008: 12:00 AM,1.28754185361713 +08/26/2008: 12:00 AM,1.02854188852106 +08/27/2008: 12:00 AM,1.47597808373873 +08/28/2008: 12:00 AM,1.5990536733056 +08/29/2008: 12:00 AM,2.15364802272037 +08/30/2008: 12:00 AM,2.28090874297502 +08/31/2008: 12:00 AM,2.06004331131446 +09/01/2008: 12:00 AM,1.6334249143494 +09/02/2008: 12:00 AM,1.90964109673356 +09/03/2008: 12:00 AM,2.08991679265678 +09/04/2008: 12:00 AM,1.99953826678047 +09/05/2008: 12:00 AM,2.10424824238788 +09/06/2008: 12:00 AM,1.9414576271999 +09/07/2008: 12:00 AM,2.07935667347955 +09/08/2008: 12:00 AM,2.10929766355412 +09/09/2008: 12:00 AM,1.41679326774175 +09/10/2008: 12:00 AM,1.65001873119145 +09/11/2008: 12:00 AM,1.34464710517251 +09/12/2008: 12:00 AM,1.36672057181837 +09/13/2008: 12:00 AM,1.75400181087262 +09/14/2008: 12:00 AM,1.57750555232256 +09/15/2008: 12:00 AM,1.50754505295959 +09/16/2008: 12:00 AM,1.10236007220202 +09/17/2008: 12:00 AM,1.17632962384523 +09/18/2008: 12:00 AM,1.6497456066506 +09/19/2008: 12:00 AM,1.5758964541799 +09/20/2008: 12:00 AM,1.54550704662725 +09/21/2008: 12:00 AM,1.4306932831526 +09/22/2008: 12:00 AM,1.77326998483742 +09/23/2008: 12:00 AM,1.65715987245857 +09/24/2008: 12:00 AM,1.68919817340977 +09/25/2008: 12:00 AM,1.65563477278445 +09/26/2008: 12:00 AM,1.22249590753323 +09/27/2008: 12:00 AM,1.11716534885873 +09/28/2008: 12:00 AM,1.53148160286881 +09/29/2008: 12:00 AM,1.5407930455176 +09/30/2008: 12:00 AM,1.6263885662918 +10/01/2008: 12:00 AM,1.24678851033522 +10/02/2008: 12:00 AM,1.33786048120699 +10/03/2008: 12:00 AM,1.46629083138997 +10/04/2008: 12:00 AM,1.55406245129247 +10/05/2008: 12:00 AM,1.51805388594335 +10/06/2008: 12:00 AM,1.61950941284133 +10/07/2008: 12:00 AM,1.3484367655333 +10/08/2008: 12:00 AM,0.592714188830618 +10/09/2008: 12:00 AM,1.27717464645273 +10/10/2008: 12:00 AM,1.20961162588814 +10/11/2008: 12:00 AM,1.12262799352362 +10/12/2008: 12:00 AM,1.11297322062155 +10/13/2008: 12:00 AM,1.21197051216078 +10/14/2008: 12:00 AM,1.5278533104732 +10/15/2008: 12:00 AM,1.51454265309124 +10/16/2008: 12:00 AM,1.35618245493425 +10/17/2008: 12:00 AM,0.666679230784966 +10/18/2008: 12:00 AM,0.783075041749775 +10/19/2008: 12:00 AM,1.09506911920937 +10/20/2008: 12:00 AM,1.11425617710311 +10/21/2008: 12:00 AM,1.16689034612629 +10/22/2008: 12:00 AM,1.0839969858057 +10/23/2008: 12:00 AM,0.835735353077468 +10/24/2008: 12:00 AM,0.562029500578817 +10/25/2008: 12:00 AM,0.773464845957917 +10/26/2008: 12:00 AM,1.10058858307696 +10/27/2008: 12:00 AM,0.630100127557343 +10/28/2008: 12:00 AM,0.520539445701174 +10/29/2008: 12:00 AM,0.865665783763616 +10/30/2008: 12:00 AM,0.97285919987293 +10/31/2008: 12:00 AM,1.06344413247281 +11/01/2008: 12:00 AM,1.12243783987871 +11/02/2008: 12:00 AM,1.13532445831463 +11/03/2008: 12:00 AM,1.08973754300055 +11/04/2008: 12:00 AM,1.12651984644007 +11/05/2008: 12:00 AM,1.14301209087637 +11/06/2008: 12:00 AM,1.13339943586442 +11/07/2008: 12:00 AM,1.0794752832581 +11/08/2008: 12:00 AM,0.787327913094165 +11/09/2008: 12:00 AM,0.74756886014923 +11/10/2008: 12:00 AM,0.847583262457907 +11/11/2008: 12:00 AM,0.778468842604088 +11/12/2008: 12:00 AM,0.735252916664278 +11/13/2008: 12:00 AM,0.513327831746562 +11/14/2008: 12:00 AM,0.692437244590442 +11/15/2008: 12:00 AM,0.384615379720902 +11/16/2008: 12:00 AM,0.339962240708637 +11/17/2008: 12:00 AM,0.664549065181248 +11/18/2008: 12:00 AM,0.306337418910078 +11/19/2008: 12:00 AM,0.578555287521611 +11/20/2008: 12:00 AM,0.809037551031379 +11/21/2008: 12:00 AM,0.300066056068229 +11/22/2008: 12:00 AM,0.482222669153203 +11/23/2008: 12:00 AM,0.609291879417706 +11/24/2008: 12:00 AM,0.365252832729647 +11/25/2008: 12:00 AM,0.420172988689686 +11/26/2008: 12:00 AM,0.634039028791751 +11/27/2008: 12:00 AM,0.739340389729107 +11/28/2008: 12:00 AM,0.714676072045842 +11/29/2008: 12:00 AM,0.45222859417558 +11/30/2008: 12:00 AM,0.300984356055888 +12/01/2008: 12:00 AM,0.133560122899917 +12/02/2008: 12:00 AM,0.318035796169434 +12/03/2008: 12:00 AM,0.566014560656147 +12/04/2008: 12:00 AM,0.437091037811788 +12/05/2008: 12:00 AM,0.434865821196055 +12/06/2008: 12:00 AM,0.370840705736652 +12/07/2008: 12:00 AM,0.441794497966014 +12/08/2008: 12:00 AM,0.53818902042845 +12/09/2008: 12:00 AM,0.611289220472498 +12/10/2008: 12:00 AM,0.423068375700571 +12/11/2008: 12:00 AM,0.411076923045639 +12/12/2008: 12:00 AM,0.429224763452678 +12/13/2008: 12:00 AM,0.499875818599068 +12/14/2008: 12:00 AM,0.5614697939905 +12/15/2008: 12:00 AM,0.637570068315409 +12/16/2008: 12:00 AM,0.510499298083142 +12/17/2008: 12:00 AM,0.533853294984337 +12/18/2008: 12:00 AM,0.690569542757544 +12/19/2008: 12:00 AM,0.65153526063276 +12/20/2008: 12:00 AM,0.382698257316942 +12/21/2008: 12:00 AM,0.222444436079813 +12/22/2008: 12:00 AM,0.290588985551174 +12/23/2008: 12:00 AM,0.545690957051782 +12/24/2008: 12:00 AM,0.618335549134484 +12/25/2008: 12:00 AM,0.567641600716357 +12/26/2008: 12:00 AM,0.489650812460908 +12/27/2008: 12:00 AM,0.53713701426675 +12/28/2008: 12:00 AM,0.556343004295603 +12/29/2008: 12:00 AM,0.606082280544419 +12/30/2008: 12:00 AM,0.785232287358374 +12/31/2008: 12:00 AM,0.375656421671026 +01/01/2009: 12:00 AM,0.417642374432049 +01/02/2009: 12:00 AM,0.388238453520196 +01/03/2009: 12:00 AM,0.469308755924838 +01/04/2009: 12:00 AM,0.779055672254754 +01/05/2009: 12:00 AM,0.763120037812027 +01/06/2009: 12:00 AM,0.532261709694788 +01/07/2009: 12:00 AM,0.241838814769875 +01/08/2009: 12:00 AM,0.424567983141973 +01/09/2009: 12:00 AM,0.600626739812688 +01/10/2009: 12:00 AM,0.58493555937172 +01/11/2009: 12:00 AM,0.340266323397376 +01/12/2009: 12:00 AM,0.494182503670677 +01/13/2009: 12:00 AM,0.546559556954426 +01/14/2009: 12:00 AM,0.521326488749053 +01/15/2009: 12:00 AM,0.367114608412736 +01/16/2009: 12:00 AM,0.229846936492221 +01/17/2009: 12:00 AM,0.321231796280285 +01/18/2009: 12:00 AM,0.441090231990221 +01/19/2009: 12:00 AM,0.297714735925456 +01/20/2009: 12:00 AM,0.211198601236984 +01/21/2009: 12:00 AM,0.392688253434596 +01/22/2009: 12:00 AM,0.632732068786036 +01/23/2009: 12:00 AM,0.845071870295019 +01/24/2009: 12:00 AM,0.648357161337019 +01/25/2009: 12:00 AM,0.571283056787479 +01/26/2009: 12:00 AM,0.599707892118682 +01/27/2009: 12:00 AM,0.761845927527024 +01/28/2009: 12:00 AM,0.570822026551923 +01/29/2009: 12:00 AM,0.625505250402875 +01/30/2009: 12:00 AM,0.38678072116019 +01/31/2009: 12:00 AM,0.559294560327908 +02/01/2009: 12:00 AM,0.784756127956146 +02/02/2009: 12:00 AM,0.538949596877896 +02/03/2009: 12:00 AM,0.39299583402845 +02/04/2009: 12:00 AM,0.232429379052915 +02/05/2009: 12:00 AM,0.450600520821373 +02/06/2009: 12:00 AM,0.835733499371956 +02/07/2009: 12:00 AM,0.974390411638004 +02/08/2009: 12:00 AM,1.05408774942957 +02/09/2009: 12:00 AM,1.00112901796854 +02/10/2009: 12:00 AM,0.915784557056665 +02/11/2009: 12:00 AM,0.477774809744048 +02/12/2009: 12:00 AM,0.793449877997038 +02/13/2009: 12:00 AM,1.0298216976154 +02/14/2009: 12:00 AM,0.769995113882772 +02/15/2009: 12:00 AM,0.809561301345662 +02/16/2009: 12:00 AM,0.65385335092281 +02/17/2009: 12:00 AM,0.76844050523292 +02/18/2009: 12:00 AM,0.920270032838256 +02/19/2009: 12:00 AM,0.485579037336852 +02/20/2009: 12:00 AM,0.614204705920165 +02/21/2009: 12:00 AM,0.772240710791383 +02/22/2009: 12:00 AM,0.471728259984325 +02/23/2009: 12:00 AM,0.719350367405391 +02/24/2009: 12:00 AM,0.863410220597301 +02/25/2009: 12:00 AM,0.894776953976426 +02/26/2009: 12:00 AM,0.966405442606877 +02/27/2009: 12:00 AM,0.618863604937114 +02/28/2009: 12:00 AM,0.532893830263379 +03/01/2009: 12:00 AM,0.252625745553946 +03/02/2009: 12:00 AM,0.6040427638859 +03/03/2009: 12:00 AM,0.713523957089026 +03/04/2009: 12:00 AM,0.891561606410908 +03/05/2009: 12:00 AM,1.14770338164002 +03/06/2009: 12:00 AM,1.10721214639488 +03/07/2009: 12:00 AM,1.70970789995075 +03/08/2009: 12:00 AM,1.64528539059944 +03/09/2009: 12:00 AM,1.43726095153709 +03/10/2009: 12:00 AM,1.47733000422659 +03/11/2009: 12:00 AM,1.37299631012588 +03/12/2009: 12:00 AM,1.11021634347512 +03/13/2009: 12:00 AM,0.383729029020439 +03/14/2009: 12:00 AM,0.650017997992036 +03/15/2009: 12:00 AM,1.10576572999351 +03/16/2009: 12:00 AM,0.866959010042248 +03/17/2009: 12:00 AM,1.45237545940916 +03/18/2009: 12:00 AM,1.37804080485065 +03/19/2009: 12:00 AM,1.54522287721988 +03/20/2009: 12:00 AM,1.19435816755724 +03/21/2009: 12:00 AM,1.05117729692694 +03/22/2009: 12:00 AM,1.47124692264746 +03/23/2009: 12:00 AM,1.50436552322219 +03/24/2009: 12:00 AM,1.45676545278309 +03/25/2009: 12:00 AM,0.425243534284332 +03/26/2009: 12:00 AM,0.634088370206623 +03/27/2009: 12:00 AM,0.809616562566904 +03/28/2009: 12:00 AM,0.746007485550495 +03/29/2009: 12:00 AM,0.894495958466198 +03/30/2009: 12:00 AM,1.55200315866308 +03/31/2009: 12:00 AM,1.12522022244997 +04/01/2009: 12:00 AM,1.46997131463908 +04/02/2009: 12:00 AM,0.786077288361242 +04/03/2009: 12:00 AM,0.934239731390341 +04/04/2009: 12:00 AM,1.93912542548754 +04/05/2009: 12:00 AM,1.91953813624004 +04/06/2009: 12:00 AM,0.570105705707197 +04/07/2009: 12:00 AM,0.664952783963371 +04/08/2009: 12:00 AM,1.38870455443667 +04/09/2009: 12:00 AM,1.89488706907903 +04/10/2009: 12:00 AM,1.26074454115081 +04/11/2009: 12:00 AM,1.09695827500519 +04/12/2009: 12:00 AM,1.67196182432734 +04/13/2009: 12:00 AM,0.744394980076493 +04/14/2009: 12:00 AM,1.41262591872212 +04/15/2009: 12:00 AM,1.53708386979511 +04/16/2009: 12:00 AM,1.75678621067786 +04/17/2009: 12:00 AM,1.95936359018665 +04/18/2009: 12:00 AM,2.07773800365597 +04/19/2009: 12:00 AM,1.07876042061368 +04/20/2009: 12:00 AM,1.3123008662988 +04/21/2009: 12:00 AM,1.47335207156787 +04/22/2009: 12:00 AM,1.56964937796803 +04/23/2009: 12:00 AM,2.40980967276061 +04/24/2009: 12:00 AM,2.52192066791035 +04/25/2009: 12:00 AM,2.43829463282032 +04/26/2009: 12:00 AM,2.22786524779972 +04/27/2009: 12:00 AM,2.07630050050056 +04/28/2009: 12:00 AM,2.08440358746514 +04/29/2009: 12:00 AM,2.1969911923194 +04/30/2009: 12:00 AM,1.78357925235916 +05/01/2009: 12:00 AM,1.70195432612664 +05/02/2009: 12:00 AM,1.40698749261836 +05/03/2009: 12:00 AM,1.56452144300312 +05/04/2009: 12:00 AM,1.24703601272756 +05/05/2009: 12:00 AM,1.56083482617341 +05/06/2009: 12:00 AM,1.50663387901998 +05/07/2009: 12:00 AM,1.97746727303263 +05/08/2009: 12:00 AM,2.10792315599559 +05/09/2009: 12:00 AM,1.98939263128164 +05/10/2009: 12:00 AM,1.9988228514346 +05/11/2009: 12:00 AM,0.984562838770969 +05/12/2009: 12:00 AM,1.95108259322263 +05/13/2009: 12:00 AM,1.76988603172161 +05/14/2009: 12:00 AM,1.83861201257967 +05/15/2009: 12:00 AM,2.17279386906944 +05/16/2009: 12:00 AM,1.93844474069418 +05/17/2009: 12:00 AM,0.545817565915316 +05/18/2009: 12:00 AM,1.91563818702804 +05/19/2009: 12:00 AM,2.07397184576382 +05/20/2009: 12:00 AM,2.26086656487208 +05/21/2009: 12:00 AM,1.98958986449483 +05/22/2009: 12:00 AM,1.96092462663003 +05/23/2009: 12:00 AM,1.8026184313951 +05/24/2009: 12:00 AM,1.81556814541682 +05/25/2009: 12:00 AM,1.88159667715326 +05/26/2009: 12:00 AM,1.68055083599797 +05/27/2009: 12:00 AM,1.73265907368248 +05/28/2009: 12:00 AM,1.98126231889655 +05/29/2009: 12:00 AM,2.02037856004091 +05/30/2009: 12:00 AM,2.41182512158851 +05/31/2009: 12:00 AM,2.46351408567554 +06/01/2009: 12:00 AM,2.68510263889525 +06/02/2009: 12:00 AM,2.66306443968642 +06/03/2009: 12:00 AM,2.50270517057412 +06/04/2009: 12:00 AM,1.67339801590713 +06/05/2009: 12:00 AM,1.9301750424223 +06/06/2009: 12:00 AM,2.39433816740434 +06/07/2009: 12:00 AM,2.29243160985058 +06/08/2009: 12:00 AM,2.53502443694751 +06/09/2009: 12:00 AM,2.69246072445907 +06/10/2009: 12:00 AM,2.51746971757347 +06/11/2009: 12:00 AM,2.46199799859246 +06/12/2009: 12:00 AM,2.20681501435858 +06/13/2009: 12:00 AM,2.24105038034833 +06/14/2009: 12:00 AM,2.33944947653203 +06/15/2009: 12:00 AM,2.4956770130133 +06/16/2009: 12:00 AM,2.5928168292066 +06/17/2009: 12:00 AM,2.54652602864423 +06/18/2009: 12:00 AM,2.53918334036714 +06/19/2009: 12:00 AM,2.84416472151452 +06/20/2009: 12:00 AM,2.89144854296701 +06/21/2009: 12:00 AM,2.4000603079078 +06/22/2009: 12:00 AM,2.16183032400475 +06/23/2009: 12:00 AM,2.56958039020678 +06/24/2009: 12:00 AM,2.66706876451802 +06/25/2009: 12:00 AM,2.62002272488305 +06/26/2009: 12:00 AM,2.64858977532987 +06/27/2009: 12:00 AM,2.73777571541109 +06/28/2009: 12:00 AM,2.74899101817011 +06/29/2009: 12:00 AM,2.33426516267863 +06/30/2009: 12:00 AM,2.57964365976897 +07/01/2009: 12:00 AM,2.47214880089239 +07/02/2009: 12:00 AM,2.48532198910402 +07/03/2009: 12:00 AM,2.30299533092792 +07/04/2009: 12:00 AM,2.52024741962245 +07/05/2009: 12:00 AM,1.7929311916203 +07/06/2009: 12:00 AM,2.32806464134806 +07/07/2009: 12:00 AM,2.26075702293688 +07/08/2009: 12:00 AM,1.88724380775145 +07/09/2009: 12:00 AM,1.99394794302602 +07/10/2009: 12:00 AM,2.08948592352787 +07/11/2009: 12:00 AM,2.34186533990953 +07/12/2009: 12:00 AM,2.28123339411285 +07/13/2009: 12:00 AM,2.06363584604712 +07/14/2009: 12:00 AM,2.36078373708766 +07/15/2009: 12:00 AM,2.32846041274776 +07/16/2009: 12:00 AM,2.09110021407444 +07/17/2009: 12:00 AM,2.29404751687688 +07/18/2009: 12:00 AM,1.96434430553325 +07/19/2009: 12:00 AM,2.02853409516145 +07/20/2009: 12:00 AM,2.27050150486295 +07/21/2009: 12:00 AM,2.28855159139455 +07/22/2009: 12:00 AM,2.04824674087215 +07/23/2009: 12:00 AM,2.29444796063066 +07/24/2009: 12:00 AM,2.42538907101943 +07/25/2009: 12:00 AM,2.62801756894197 +07/26/2009: 12:00 AM,2.38246989460655 +07/27/2009: 12:00 AM,2.51179267872138 +07/28/2009: 12:00 AM,2.15039697958082 +07/29/2009: 12:00 AM,1.8482789784156 +07/30/2009: 12:00 AM,2.12994746540498 +07/31/2009: 12:00 AM,1.39686734542099 +08/01/2009: 12:00 AM,2.25275095111926 +08/02/2009: 12:00 AM,1.76494962157395 +08/03/2009: 12:00 AM,2.25933359936789 +08/04/2009: 12:00 AM,2.41116454524346 +08/05/2009: 12:00 AM,2.28352040857624 +08/06/2009: 12:00 AM,2.31174056353858 +08/07/2009: 12:00 AM,2.40670713127088 +08/08/2009: 12:00 AM,2.28545056880233 +08/09/2009: 12:00 AM,2.48815440805108 +08/10/2009: 12:00 AM,2.50654458408577 +08/11/2009: 12:00 AM,2.35654413312609 +08/12/2009: 12:00 AM,1.74741424292561 +08/13/2009: 12:00 AM,2.04668965706327 +08/14/2009: 12:00 AM,2.0596606750961 +08/15/2009: 12:00 AM,2.22906646447901 +08/16/2009: 12:00 AM,2.01841251942912 +08/17/2009: 12:00 AM,1.91187495653074 +08/18/2009: 12:00 AM,1.9040343123141 +08/19/2009: 12:00 AM,1.95259669573021 +08/20/2009: 12:00 AM,1.74095018407553 +08/21/2009: 12:00 AM,2.00124094207944 +08/22/2009: 12:00 AM,1.60759998100423 +08/23/2009: 12:00 AM,1.9522040623353 +08/24/2009: 12:00 AM,1.80363966592989 +08/25/2009: 12:00 AM,1.84735145586159 +08/26/2009: 12:00 AM,2.14896647862937 +08/27/2009: 12:00 AM,1.92179476895619 +08/28/2009: 12:00 AM,1.14144134289649 +08/29/2009: 12:00 AM,1.84718710172472 +08/30/2009: 12:00 AM,1.67229282205035 +08/31/2009: 12:00 AM,1.35984669746553 +09/01/2009: 12:00 AM,1.44225475363875 +09/02/2009: 12:00 AM,1.69831700407956 +09/03/2009: 12:00 AM,1.79156189696074 +09/04/2009: 12:00 AM,1.87800031635386 +09/05/2009: 12:00 AM,1.94786400939563 +09/06/2009: 12:00 AM,1.51491369670868 +09/07/2009: 12:00 AM,1.81003078636964 +09/08/2009: 12:00 AM,1.71836942109531 +09/09/2009: 12:00 AM,1.58558222726229 +09/10/2009: 12:00 AM,1.45164004554748 +09/11/2009: 12:00 AM,1.61493344085401 +09/12/2009: 12:00 AM,1.72917257434199 +09/13/2009: 12:00 AM,1.7618112310534 +09/14/2009: 12:00 AM,1.62863655854845 +09/15/2009: 12:00 AM,1.10172175633923 +09/16/2009: 12:00 AM,1.234588708756 +09/17/2009: 12:00 AM,0.954776950252612 +09/18/2009: 12:00 AM,1.14702955468675 +09/19/2009: 12:00 AM,1.25577118584885 +09/20/2009: 12:00 AM,0.561903218103283 +09/21/2009: 12:00 AM,0.639167586970016 +09/22/2009: 12:00 AM,1.37557933866719 +09/23/2009: 12:00 AM,1.72007162373379 +09/24/2009: 12:00 AM,1.66540420293535 +09/25/2009: 12:00 AM,1.47284264760124 +09/26/2009: 12:00 AM,0 +09/27/2009: 12:00 AM,1.12582227249094 +09/28/2009: 12:00 AM,1.6184714232125 +09/29/2009: 12:00 AM,1.23124107814298 +09/30/2009: 12:00 AM,1.43162735060955 +10/01/2009: 12:00 AM,1.41270240209034 +10/02/2009: 12:00 AM,0.997943043615134 +10/03/2009: 12:00 AM,1.22231538926984 +10/04/2009: 12:00 AM,1.22915295881082 +10/05/2009: 12:00 AM,0.814236735344926 +10/06/2009: 12:00 AM,1.17434233523872 +10/07/2009: 12:00 AM,1.05212218431109 +10/08/2009: 12:00 AM,1.45697710358762 +10/09/2009: 12:00 AM,1.53113472292355 +10/10/2009: 12:00 AM,0.642236997439438 +10/11/2009: 12:00 AM,1.09050707074363 +10/12/2009: 12:00 AM,0.577711790129692 +10/13/2009: 12:00 AM,1.24631323275916 +10/14/2009: 12:00 AM,0.547515763140719 +10/15/2009: 12:00 AM,0.905540444929432 +10/16/2009: 12:00 AM,0.79849094082441 +10/17/2009: 12:00 AM,0.341499481161537 +10/18/2009: 12:00 AM,0.543666529474591 +10/19/2009: 12:00 AM,1.06477893503152 +10/20/2009: 12:00 AM,1.26069498010474 +10/21/2009: 12:00 AM,1.33196252748135 +10/22/2009: 12:00 AM,1.17512395101802 +10/23/2009: 12:00 AM,1.05201361011237 +10/24/2009: 12:00 AM,0.863755995222157 +10/25/2009: 12:00 AM,1.12945308356268 +10/26/2009: 12:00 AM,1.09166259929169 +10/27/2009: 12:00 AM,0.913622210748883 +10/28/2009: 12:00 AM,1.17978377866065 +10/29/2009: 12:00 AM,1.13777334112328 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/TOPMODEL/Config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/TOPMODEL/Config.xml new file mode 100644 index 00000000..0c3db631 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/TOPMODEL/Config.xml @@ -0,0 +1,122 @@ + + + + + + Coweeta Runoff + Coweeta watershed, NC + ..\..\data\gis\weir18.shp + 1 + + + Runoff + Runoff per unit area + + + Length + 1 + + + Time + -1 + + + + mm/day + millimeters per day + 1 + 0 + + scalar + + + + + Coweeta Streamflow + Coweeta watershed, NC + ..\..\data\gis\weir18.shp + 1 + + + Streamflow + Streamflow at the outlet of watershed 18 + + + Length + 3 + + + Time + -1 + + + + liters per second + liters per second + 1 + 0 + + scalar + + + + + Coweeta Precipitation + Coweeta watershed, NC + ..\..\data\gis\climateStation.shp + 1 + + + Precipitation + Rainfall + + + Length + 1 + + + + mm + millimeters + 1 + 0 + + Scalar + + + + + Coweeta + Coweeta watershed in NC + ..\..\data\gis\coweeta_18.shp + 1 + + + PET + Potential Evapotranspiration + + + Length + 1 + + + + mm + millimeters + 1 + 0 + + Scalar + + + + + 01/02/2006 12:00:00 AM + 10/31/2009 12:00:00 AM + 86400 + + + TopModel + Topographic rainfall runoff Model + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/TOPMODEL/TI_raster.txt b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/TOPMODEL/TI_raster.txt new file mode 100644 index 00000000..091a11ab --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/TOPMODEL/TI_raster.txt @@ -0,0 +1,116 @@ +ncols 63 +nrows 108 +xllcorner 277817.66651537 +yllcorner 3880780.93501313 +cellsize 6.096 +NODATA_value -9999 +-9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 +-9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 +-9999 -9999 -9999 -9999 -9999 4.40998110208 4.29015267237 3.93084183923 4.04301452597 4.19566524673 3.79362577693 3.57403389969 3.73337783334 3.94704964605 3.75765633105 3.92762832905 3.47292070607 3.41917282103 3.39266296432 3.32890875879 3.46626926817 3.14393103283 2.98464866044 2.90722971724 2.63135590728 2.87001617695 2.59022321792 2.39386497462 1.90970414712 1.39197181578 1.52807202297 1.8235062602 1.32791012803 -9999 -9999 -9999 1.02655842534 0.866681583393 -3.9163160689 -4.26364716016 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 -9999 -9999 -9999 -9999 -9999 -9999 3.53180286904 3.55820953681 3.65698130273 4.12340558358 3.27830406877 3.39153999212 2.95243158302 2.71742660486 2.70121914867 2.88061329628 2.80791257616 2.41783628945 2.48266118356 2.26252752212 2.37297160406 1.98442214477 2.42061691027 1.91510397086 1.33405392673 1.51256298633 2.58257116004 2.15959809077 1.57583274407 1.024373876 1.21737043985 2.14657723596 -9999 -9999 -9999 -9999 1.45909958279 0.826345115255 0.866681583393 -3.91669484515 -4.26516064885 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 5.33318622386 4.27886182974 3.73129014057 3.14201384507 2.64525262477 2.75332258246 2.64509635697 2.61642298471 2.20080366961 2.57240729468 2.32033784045 2.12853265624 1.74875516149 1.29703430647 1.43127255499 1.45510319466 1.71534590752 1.72425503153 1.75450782666 1.32791012803 0.780325204347 0.669443645046 1.52807202297 -9999 -9999 -9999 -9999 -9999 1.85507184039 1.5409142495 1.02542574975 1.01740026242 -3.9163160689 -4.26667185036 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 4.42905078714 3.95080801415 4.05213485009 3.32376441788 3.09851890892 2.69364257075 2.57380731607 2.41686842074 2.44327332181 2.36259265629 2.2472031724 1.96602696125 1.54603813796 1.18149847381 1.47003591213 2.34481716357 2.0274577454 1.50457908824 0.926679341558 1.41410366335 1.58598330709 -9999 -9999 -9999 -9999 -9999 -9999 2.00813534991 2.01877159331 2.22785513336 1.88150860132 1.04736646753 -3.91858703206 -4.26818066472 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -9999 -9999 2.78278849268 3.95296622576 2.0617020951 -9999 3.90554435935 3.92718372733 3.55889370464 3.12964037036 2.30482447144 2.48751480084 2.14432719693 1.84907355447 1.60604656244 1.54479627499 1.45088520856 1.27584573907 1.44157556821 2.73833061955 2.26730573615 1.56491591085 1.92996414213 1.49642310122 2.25256466834 -9999 -9999 -9999 -9999 -9999 -9999 3.39780439809 3.38527256651 2.91128244064 2.22812475024 1.67545086736 1.70241502913 1.0776787665 -4.2678036745 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -9999 2.75594066362 2.57035791697 3.2127100745 4.15451871305 2.00582778007 -9999 3.73437313914 3.97528427993 3.50266240614 3.15519411982 2.84085050779 2.43796987999 2.39596244964 2.30947701615 2.19643832127 1.95533091129 1.87695027127 2.45698202993 2.58920136678 2.06113624698 2.09651205023 2.10554586555 1.59817430412 -9999 -9999 -9999 -9999 -9999 -9999 4.00677535197 4.12794208959 3.77845886478 3.36490014769 3.02361878314 2.49845833905 2.35143328769 1.69929222009 -3.92047564536 -4.27081573092 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -9999 2.00941638979 1.94417581761 3.18554746842 2.71748109432 4.32350796424 3.62350460495 -9999 3.34862787247 3.74852798531 3.45901676469 2.81830618544 2.47408297068 2.19845639514 1.86394049284 2.11582561038 2.2579740186 2.72210658257 1.92724750063 2.20933292097 2.12764952009 2.31275788716 1.98950006536 1.87099583517 -9999 -9999 -9999 -9999 -9999 4.91080413178 4.5483122015 4.26932189967 3.97822205938 3.66704621491 3.4333194978 3.51952712643 2.83660330483 2.22219842481 1.51854796568 -3.92424212957 -4.27269360295 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -9999 1.69983343296 1.77961388868 2.02371721688 1.91674333748 3.21293048366 2.48246931893 2.42572370394 -9999 -9999 3.51641402809 2.99550459483 3.05024037414 2.55555366795 2.41905794962 2.4030116516 2.79042244007 2.07337186189 2.26537043289 2.0852014827 2.56322935107 2.45775700875 2.36939068165 1.99753998083 -9999 -9999 -9999 2.79037929955 3.03599151087 2.58390523841 2.465453023 2.15098383864 2.79184305132 3.12442139398 2.9624356436 2.93537475829 2.26380088655 1.99156996291 1.20378890117 1.56394402124 -4.27830636447 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.05471790027 1.61595142591 1.38406869891 1.8516421358 1.64922503605 2.14837968057 1.74849432516 1.60463466293 -9999 -9999 -9999 3.79983579401 3.3181502256 2.95260989883 2.59102677732 3.15930087265 2.22650033587 2.47818919904 2.74895760062 3.38131208965 2.58627780763 2.73495639487 2.83610352134 -9999 -9999 2.22082441917 2.05535995576 2.02743069798 2.06439757221 1.74272156775 2.02279592547 1.99332812428 1.85753013342 2.09034078151 2.23943786323 2.04086560556 1.09057264496 1.16849122014 1.33005716389 1.32791012803 -3.9354572046 -4.28648185208 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 1.68657353293 1.26285458232 1.25157180883 1.96134765652 1.20110889268 1.8235061679 1.12810621455 2.44018529288 3.56706101903 2.95509485589 3.50307123505 -9999 3.96346437421 3.27402814592 3.10386248542 3.85694495028 3.0938315974 3.74751533788 -9999 -9999 -9999 -9999 -9999 -9999 2.15877730509 1.61445801239 1.65611796799 1.36753046448 1.17021275415 1.48095647892 1.60190060794 1.70149820528 1.92919593932 1.81108650437 1.83084998094 2.34931964024 2.72379065623 1.96799546897 2.01252277248 1.77210953615 0.599923148701 -3.94101788829 -4.28980717652 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 9.72982095087 1.5745428427 1.47539801102 2.16533206941 2.11417840866 1.31268059951 1.35110718519 1.99089741442 2.18687051597 2.91511167329 3.2205732254 2.00582778007 -9999 -9999 -9999 -9999 -9999 -9999 -9999 2.57588131031 -9999 -9999 -9999 -9999 1.9973677744 1.9482765242 1.3633312779 1.57577186906 1.23944579016 1.22624333507 1.4950460582 1.75245692568 1.69074910706 1.53471403722 1.17080090413 1.28080527459 1.23161548524 2.0099304666 0.93733680085 2.16795150474 1.18602930876 0.507961712118 -3.94360229538 -4.29238583554 -4.29459093866 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 10.7031284995 9.35786803479 2.38147599975 1.78989570095 1.64544284424 1.36536083895 1.23417874586 1.04621406246 1.79750807996 2.60299881683 2.50488298726 2.23752972735 8.4155525615 7.369535266 5.93545720819 5.90613897937 3.92156444727 3.51086255532 3.25498987957 3.05111047795 3.05674904415 2.78959902615 1.67298978808 2.92603736676 -9999 3.80630747116 1.94338653125 2.07019480254 1.97382705904 1.92320207988 1.93544351031 1.51268648021 1.67255543579 1.59694438154 1.80341441699 1.87403661949 2.19076079553 2.75041490919 2.26373172597 1.0020911125 2.44649273807 0.481273812846 0.897544837745 1.12689881214 -3.9476502071 -4.29569161748 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.32215845049 3.27781683353 2.30258509299 1.94550161288 1.24451331166 1.41535755317 1.75847976048 1.55982876395 1.23417874586 1.89425607324 2.04272464123 2.58880579407 4.61456702765 5.11901769227 5.25918557802 6.19589058066 6.1178974763 3.20870969228 2.58340993019 2.84676354553 2.9187654116 2.71063455289 1.87457008748 1.7710692915 2.63765251149 -9999 4.60636823401 2.82427242168 2.2297246533 2.39785893698 2.05738363083 2.11782262539 2.19903522399 2.25154408474 2.23820651508 2.6050069731 2.8878808034 2.19761497455 1.9480816522 1.73680539795 1.54523728471 1.33426790041 1.26221173971 0.607187116355 0.753473115959 -3.94911806844 +-4.29642483478 -4.29898661085 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 1.74248715162 0.951306975003 3.67617469518 8.68181923492 2.05743342393 1.77903436236 1.1892505451 1.56394402124 1.88239772566 1.37094746986 2.50947934726 3.83476145951 3.4884794532 3.78273929072 4.87673116159 4.65287808168 5.43040566129 6.05293759596 3.36446310815 2.64699894313 2.77590244315 2.10086985573 1.95556248276 2.09507213437 1.59652299977 1.75473611757 -9999 4.11402049595 2.85101327666 2.73915828935 2.55241933118 2.31424409617 2.41308749713 2.3760322703 2.86404524341 3.02749046251 2.17908225457 1.91988186885 2.11459943145 1.79141858877 1.5838837385 1.47264302406 1.51407958136 1.45166413229 1.18359077662 +0.825400853156 1.07146752032 -3.95241304632 -4.30227067959 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 1.49725757739 1.96164006849 1.17333894664 3.03316286239 9.70860322708 2.51665334846 2.00582778007 1.07146752032 1.39688988729 1.32278192374 1.39394009493 2.94760084693 3.32093636371 4.57245365625 3.67731928908 3.9835933738 4.32511902806 5.53199458182 6.04679747232 3.52712495199 2.68154968634 2.5228277108 1.95062749198 2.07939004459 1.26858624469 1.50726860485 3.03721641607 -9999 3.52787645805 2.67530527937 2.69010882778 2.58358990623 2.4683021765 3.23507974833 3.3449190674 2.58781937967 2.070111537 2.45824692072 2.15299612323 1.93509034677 2.51495433318 2.14721391871 1.88457558646 1.86179661207 +2.01255075761 1.92896926501 1.50493029307 1.10004674912 -3.95642537474 -4.30663269385 -4.30953020262 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 1.10004674912 1.84425286694 1.68144586058 1.8730378365 3.21514569472 9.70257033052 2.30258509299 1.94586514856 1.08816120709 1.12689881214 1.47693258493 1.9997684878 3.53749776606 3.56265828644 2.90547332417 2.7281445269 2.88278886652 4.47571937285 6.1151192079 4.57730002044 3.56340103739 2.93367575368 2.53473973705 2.2739224968 2.02377302876 1.87142456337 2.38191459739 2.95458462844 -9999 -9999 -9999 -9999 4.34560916705 4.70413319813 2.92714147648 2.29013600587 2.60559540865 2.77912746357 2.18879707421 2.91299289925 2.67519442311 2.52632833878 2.53585114217 +3.18659987995 2.5170060541 2.05729198069 1.79692546255 1.45540767956 1.3249389309 0.953760691342 -3.96331828346 -4.31350057997 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -3.8509435015 1.80909208902 1.28684048034 1.54427155012 1.77992113939 2.29625354476 4.16428753032 10.6087779852 2.03458864257 0.834924842413 1.56394402124 1.36536083895 2.2671713928 2.57572425544 2.34460337945 2.16138303329 2.56984931844 2.8675859134 5.12161587529 5.91958023889 4.55758145327 3.68906072827 2.98952370594 3.24285340622 3.12505340147 1.71193451644 2.53567221844 4.73943157189 5.27436478823 3.88223825073 -9999 -9999 -9999 -9999 -9999 -9999 4.61415656354 4.18142787241 4.19725308044 3.65697480775 3.64567273398 3.76603125129 +3.44151211939 2.71373625027 2.50776410947 2.15970568526 1.88493706207 2.29835465865 1.84771968182 1.23669316366 1.05031638616 -3.96692702184 -4.31745535747 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -4.20074808235 1.30770552258 1.15893825572 1.20812907849 1.60159340807 1.74757474779 2.00038556663 3.4362079149 10.1971042524 1.78528636021 1.19638435492 1.55982876395 1.47371147879 1.87240332138 2.07713024327 1.77676954806 2.49489896852 1.92582421018 2.63269184405 6.24113577257 4.42771620865 4.43385731205 4.57680788012 4.14578304838 4.00163211893 4.06214826243 3.60925332294 4.76434267244 3.98882513086 3.68479555829 3.1025905266 2.51062952127 2.14014412196 2.58811116736 5.13698505344 -9999 -9999 -9999 -9999 -9999 -9999 +3.43291611659 3.01554453599 2.98608986344 2.81067595899 2.48992023514 2.6172931989 2.72633222636 2.66032038652 1.95397762283 1.45152606221 1.30173098043 -3.97159906816 -4.32210897201 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -4.20276222864 -4.20396881762 -3.85699316957 1.23417874586 1.11329246533 1.78201884832 1.77920024759 2.07700382433 9.55756053266 3.06780019495 1.92917234639 1.55536658629 1.15527527574 1.36536083895 1.62691971921 1.43601051865 2.19341986155 1.8154671763 2.1004181729 4.37991289042 6.14994079001 3.8423712702 3.44141764255 3.23620818312 3.4731116338 3.81216908675 4.42370316353 4.26678827004 4.53805720785 3.71702563803 3.24410965343 2.91525313963 1.90764318606 2.3631605366 1.85655914049 6.56425060059 5.05524053783 2.9562668468 2.38916356847 -9999 +-9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 2.29399542044 1.93305779977 1.61242930505 1.12689881214 -3.73825690917 -4.32531809683 -4.3288717429 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 -4.20517383867 -3.85779701233 1.47693258493 1.25157180883 1.97722560393 1.96748128884 2.26916062637 9.89893469546 3.20999112785 2.06592273253 1.97265538172 1.84357702662 1.81859838864 1.45162703602 1.80048849926 1.4734235455 1.91436720758 2.89060754441 5.56501946765 4.29084990358 3.66575349831 2.96245027307 2.82947954703 3.1505535044 4.11873850329 4.5084120072 4.18163145086 4.44632692456 3.58357519192 3.44756451881 1.64143862787 1.94052999559 1.90707954357 5.41355311672 6.59154898762 3.48036221803 3.01923626783 +2.46191717898 2.09127792867 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 2.05648241958 -3.98477834155 -4.33347275355 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 -4.20557518989 -3.85819869153 1.56394402124 2.18705648663 1.82408952408 2.05429594336 2.65508335032 10.5840960948 2.69837023215 2.41610219441 2.20187633174 2.19463503419 2.00544089771 1.34506645076 1.52807202297 1.64318373649 2.1000255895 3.08088496088 5.57882569617 4.41810703013 3.36145416916 2.6976111304 2.51527399783 3.29413815048 4.34239226431 4.59645507401 4.08233634058 4.19228170654 3.94869367364 1.99946768433 1.39328791298 1.58795522216 1.94099095239 6.71485403664 4.10921653603 +3.37533517572 2.84292749488 2.4550598759 2.28330766909 2.70385126145 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 1.66142185214 -3.98936791509 -4.33840411214 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.20597638009 1.88239772566 1.46323314613 2.18176632961 2.35584964768 2.17445157966 8.72337895624 3.1304425914 2.34379272071 2.11764240553 1.84946210583 2.02694566615 1.73675589282 1.41190611516 1.26959178617 1.83134284942 2.14186983872 2.93577647117 5.02611946993 3.71127132747 3.01176787912 2.50402287317 2.71294136468 3.37068691214 4.50175286549 4.16406168853 3.85796482567 4.17960209286 3.51356265853 2.28281440553 1.26959178617 1.71512842073 4.76874453246 +6.42968354966 4.07483139944 3.54532999742 3.2823589671 2.98670177671 2.53415763571 2.6564376947 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 1.93161778951 -3.99463752335 -4.34226170608 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.20717898587 -3.86060538434 1.84041855498 2.27040177943 2.48089200181 2.86396236474 2.96029347588 11.2598314313 3.44835676141 2.21968927856 2.22379024405 1.66070000585 1.35479851905 1.04702226231 1.39394009493 0.904998171149 1.48144251286 1.6108580921 3.38898401195 4.92194061194 3.50185309754 2.91232465051 3.13884008867 2.99041626832 3.35484535212 4.55401833132 3.83593940485 3.98320338575 3.69027210245 2.7329669411 1.67214697389 0.966107013368 +2.32416454626 6.17996760489 5.11513555152 3.41528980613 3.53513591005 3.49905083734 3.31373926894 2.39584924743 2.0627239615 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 1.39688988729 -4.34401020554 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.20957998064 2.10183222642 2.04605157638 2.28271477406 2.81353026599 2.9598260875 3.96224823441 9.4503926333 3.58167112204 2.17569706273 2.32831865184 1.99627690765 1.83974473741 1.26637060629 0.864636514547 1.12689881214 0.904998171149 1.38469430351 4.11345736814 4.49427991539 3.10437846647 2.71694670696 3.02803813438 2.74490873714 3.57326250405 4.6583846656 4.04678907828 3.53988235278 3.58777747652 2.63153996126 +1.23417874586 1.99600358171 3.36040580982 6.59923527964 4.9133463039 3.74911457398 3.59804209795 3.66527311683 3.16899467077 1.90090115152 1.35178643262 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -3.99918217194 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.21197522444 1.71193451644 1.98376521798 2.37195881062 2.69788976588 2.81978736545 3.37824139788 3.0409409276 9.0314636271 2.91631484441 2.35718336458 2.432314831 2.15662683586 1.88158430314 1.21997360905 1.97628496238 2.14150839862 1.81871760282 3.0245079629 3.5865282662 4.35877270016 3.19233297382 2.88197151706 3.01383212645 3.28955271645 3.69889773583 4.4124725246 3.49804385673 3.4212789365 +2.83289566451 2.48824635522 2.0494938502 1.96246415545 4.4298179552 6.03382688443 4.93653583932 4.15578665259 3.61380765094 3.60516302148 3.59854507987 2.5807674032 2.98188775642 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.21476242481 -3.86779106317 1.67793996009 2.50265436146 2.76792434824 3.05756586232 3.11389044552 2.6589771635 2.25277560169 8.9177353622 4.20333190634 3.18447276752 2.9998893707 2.34335919447 2.23385691109 1.82650364905 2.06817170079 1.73948401812 2.03761152572 3.08672364627 3.55872518626 3.76210518768 2.73831172782 2.71264727674 3.25618336148 2.92255898874 4.13524614049 3.67199793707 +3.03019966728 2.74151574789 2.45190735012 2.42078820983 2.08987612074 2.52008571574 5.27748922215 5.21648992647 4.82467013338 4.27619817559 3.79539651476 3.89199493262 3.82691792038 3.11759232819 2.66693530457 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.21754176588 1.37094746986 1.8293051577 2.50030202791 3.23741075371 2.91061006472 2.94087565416 1.73945440478 2.84439893626 9.12618074692 3.68166549531 3.15919689911 3.16872704395 2.4190503321 2.09841226737 2.48391040753 1.95633951825 1.79026343937 2.5080733398 2.88466630223 3.50798280241 3.52892017015 2.83201661429 3.15521019904 2.38269977959 3.87613292018 +3.35238177515 2.76056336283 2.9169609063 2.08473794493 2.34297907249 2.38544820923 2.52094205988 4.12806229722 5.49951230801 5.02859483202 4.24820425912 4.14109890052 3.95789351055 3.62278134533 3.71431399315 3.53904993539 3.17162300535 3.26122242202 2.65497036791 2.41498192444 1.91899596189 2.14237847383 2.3201145157 2.10682114123 2.69660585656 2.56212497528 -9999 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.21912661163 -3.8725529631 1.36536083895 2.061043316 2.78112280879 3.04318532699 2.76092926792 1.86784762379 2.1732975974 2.71114438876 8.70888919187 3.40257111663 3.47145567882 2.91345680822 2.38570118683 1.96221295641 1.62350819713 0.904998171149 1.50096316976 2.41915229444 3.14641097965 2.96971013461 3.25948126284 2.61247644637 2.94035662674 +3.06851767063 3.4313856487 2.88822159098 2.34890930809 2.37202725132 2.45956492945 2.96483521458 2.32169698759 4.00172532801 5.12880030514 4.58811339481 4.16259056155 3.88452153785 3.99842806056 4.03775824091 3.63528510828 3.76053116001 3.4947020243 3.01842797435 2.79153029019 2.29186105155 2.33815813008 2.44366935913 2.43314503218 2.51264287176 2.05850801951 1.87199442036 2.29815903538 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.22070894962 -3.87453046122 1.84488409503 2.58226137273 2.62154588456 2.86035463183 2.5999801301 1.24059059559 2.10360885348 10.8405416902 4.65046616892 2.74455606475 2.74496810777 2.47981962862 2.12661162949 2.01081070281 2.18580500428 2.12186578497 1.95639991524 2.70622009937 2.71982559708 2.60720172863 2.88313298238 +2.25386457218 3.29085584944 3.19755087795 2.2689232279 2.35099448206 2.51056099637 2.88066110834 2.25426410188 1.96849753739 2.56769628904 4.56928674959 4.2336103194 3.88878974441 3.73285684441 3.75581034516 3.90003731068 3.7362639929 3.17125583363 3.3246736834 2.8012111842 2.66517002003 3.05694585929 3.06401197545 2.70428316156 2.57401323187 2.22380215698 1.93161778951 1.65925419393 1.93161778951 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.22347183505 -3.73030993656 2.38426027313 2.82282701899 2.73283094584 2.67911461954 1.69584091652 1.64795102316 2.4953336098 9.3845924285 3.46786175511 3.09221689231 2.96140059304 2.52755638012 2.38385151596 2.21698100659 2.26593948341 2.00700751018 1.9399170302 2.59989968418 2.27021962702 +2.73647322047 2.74287302048 2.18173925906 2.91398848938 2.78410971498 2.40775592824 2.50411464784 2.47810971868 2.16918193681 2.04776066457 2.43601373249 4.10706566178 4.09695345281 4.27556366104 3.96491575996 3.29324327652 3.41889476723 3.56638014103 3.27595555096 2.71282794137 2.35783132414 2.67535687228 2.89109869208 2.96658919768 2.67693525694 2.48333465123 2.04552712343 1.67886912952 1.76461470088 -4.00786432744 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.22701304781 1.52807202297 2.70070480579 3.04796550109 2.79497776122 1.8349369652 1.67531819943 2.0707832919 8.82252732417 9.04264081887 3.60777123021 3.33456210272 3.37849231321 3.12511343583 2.98658933078 3.18419799807 3.13697081109 3.19630658136 3.4982026372 +3.63181546594 3.23772654608 2.86012957197 2.76908974008 2.21990086607 3.13967510864 3.15279562208 2.32908089938 2.47832046646 2.24147418748 1.47784591712 2.63716463297 3.62117031677 4.23599781138 4.34374812667 4.17215851979 3.8800486489 3.32421423904 3.31839483854 3.43469898446 2.95737467505 2.83919147061 2.75603281938 2.78116326733 2.69616698804 2.6069096713 2.38542999732 1.87013921989 1.50995970859 1.85208543628 -4.35547464662 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.23015031165 -3.8843594809 1.53582409545 2.54324788778 2.60683129202 2.23268951936 2.03456869617 1.66031901273 2.07482059619 8.95225612619 3.99503101941 3.87673032492 3.63149412299 3.61736057179 3.66625486959 3.55327844403 3.23180951687 3.07928072268 +2.92563114154 3.49300842711 3.17875481799 2.68188343303 2.65034619724 2.66495783423 2.15976542909 2.5946912174 2.47548562195 2.18406332539 2.30365480835 1.88231041225 2.71724815294 3.66895033974 3.53228641061 3.42847871872 4.06491043723 4.21904771528 3.73446795957 3.35320037591 3.24674544148 3.54269586628 3.08434016675 2.72193613265 2.6495916844 2.62729805098 2.32487525393 2.14310173315 1.84511672344 1.32791012803 -4.00993689546 -4.35685543725 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.23249684497 -3.88592325055 1.53582409545 2.50295391332 2.62715920011 1.59648975583 1.65925419393 2.27340178254 3.92559533139 9.52420353835 4.35255232298 4.24452851828 4.00660601597 4.05036486452 4.07564396828 4.29244281414 +4.13718275831 3.93620407932 3.74399805944 3.24823117897 2.67863061751 2.14329257285 2.32008312532 2.57953440156 1.97149331544 2.01460796893 2.24463816982 2.06908150752 2.38060179767 2.57290460169 3.32620361498 3.22541597985 2.87255478536 2.84906150121 3.14722712018 3.83232157194 3.73355225784 3.3738461318 3.10972305181 3.0783824525 3.0126884843 2.70247154469 2.37701934147 2.21594852933 1.7905663896 1.54446136889 1.42425232017 -4.35720031277 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.2344479999 -3.88865391845 1.8235062602 2.67936458178 1.39688988729 1.92148583115 2.31492779625 2.58079259439 10.0671402089 4.18303201546 2.48004470582 2.76809320792 2.21975449898 2.41163585376 +2.72233805112 2.87777649207 2.9566624254 3.07859215209 3.56714254974 3.51827025808 3.07517994755 2.66292593689 2.17837547664 1.71642219405 1.30568485473 2.02613961055 2.51752615492 2.22049245126 2.51618821834 2.92512892046 2.87648439467 2.46027753415 2.13500159218 2.30239734109 2.96247729853 3.99899804998 3.46180769521 2.75297628223 2.4593444144 2.51954280867 2.66231293342 2.39187167846 2.34749289985 1.95071972142 1.26959178617 -4.00993689546 -4.3578898049 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.23678448193 -3.89059978467 2.00582778007 1.75747492973 2.02302766164 2.01398384031 1.9353634132 8.28032443636 9.42062891252 3.23225322372 2.85142375971 2.63499637736 +2.32288499284 2.38119273518 2.56142517668 2.43658876809 2.13874419827 2.4421722414 3.0622994885 3.01056186206 2.39922767566 2.26635787924 2.0881690986 2.10280315082 1.54896333728 1.79303313719 2.01611762882 2.1467010975 2.55402047919 2.68512261555 2.12113360597 2.19729799805 2.18784256473 1.97085541183 3.22195338375 3.41490348831 2.55745916529 1.80836913786 2.02437520588 2.32820620318 2.30759605754 2.21845226795 1.79185448355 1.36536083895 -4.35651044275 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.23911551754 -3.89215383386 2.17424113542 1.78161376989 1.66182532765 2.33462304257 2.88741423188 9.10007837926 3.42507875493 2.94237275959 +2.8127322835 2.53876366757 2.0022259593 1.87405865558 1.86034555364 2.13162253607 1.75838186935 1.53576117813 2.66798311009 2.76311417086 2.19218354609 2.26911847412 2.14978651731 1.79474202891 1.15527527574 1.23417874586 1.89020463928 1.72474211719 1.94023570456 2.15717099349 2.61581499842 2.33007023231 2.11432300917 2.43129912676 2.74600011955 2.71947024196 2.3077782574 2.12094825292 2.09728521062 1.94471898939 1.82028514873 1.42425232017 -4.00786432744 -4.35547464662 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.24066645478 1.93161778951 1.39394009493 1.65925419393 1.16272193908 1.20110889268 8.92576682009 3.52474874373 +2.80104148375 2.8019878683 2.63096017142 2.6032216009 2.4503756596 2.53678579099 2.30272173108 2.37427361805 2.28820790401 2.40564805053 3.06982185097 2.95674432586 2.60387091614 2.57441492391 2.53215125203 2.56722360127 2.34377649406 1.9569814097 1.66987562969 1.04736646753 1.84767637755 2.76847861856 2.97914793751 2.24472718768 2.05942087398 2.11751206054 2.5971395583 2.53716573586 2.37078008195 1.95571847358 1.32278192374 1.47693265019 -4.00648020203 -4.3537460955 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.24260185946 -3.89602822983 1.65925419393 1.18149847381 1.92639299688 3.27028356359 2.30258509299 +4.376238507 3.0703301921 2.91523691605 2.96220808551 2.90102842155 2.62540033995 2.65709309244 2.55178498043 2.77255689387 2.46953736592 1.82118341433 2.30868203389 2.76678520173 2.60966057139 2.42279416928 2.29807410659 2.73546821853 2.75871667935 2.77026148679 2.43728057746 2.11398341932 1.53732774394 1.88062691149 2.17675448074 2.78163710883 2.37867718697 2.11142936396 1.6332195199 2.78773708021 2.14750494468 2.0535454885 1.39394009493 -4.00648020203 -4.35305383757 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.24453352558 -3.89757387231 1.12689881214 1.56479448876 2.34492232389 +9.57089465299 5.7674220255 3.18023574223 2.75469785971 2.0177386153 1.70782944769 1.59011905117 1.81300216011 2.32426093284 1.92785807366 1.2889330472 1.41971738968 2.19919840962 3.0856280709 2.37459848583 1.60214185001 2.16619751829 2.50630552123 1.73025305951 1.20110889268 2.29266268583 2.28794097693 1.84292243871 2.18544290661 2.12498132578 2.24141131961 2.77903321483 2.12508513445 2.22152386192 1.93398017006 2.39618480168 1.39394009493 1.65925419393 -4.35305383757 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.24607608901 1.25378911192 1.55982876395 +1.90937725349 4.86061767433 8.9006818658 5.37742039136 4.02807110672 3.50291242207 3.41469594236 3.20535122351 3.11200475023 2.45776379572 2.3034751479 2.61074472119 2.41381868974 2.86637099617 2.44125397343 2.47818573551 2.30296237215 1.70041223023 1.28982178631 1.61921984305 2.60248621961 2.74666084121 1.99958610182 2.16435257751 2.34949156615 2.23138852458 2.41766934004 2.23992865793 2.39756960135 2.11552110291 2.05540522581 1.42425232017 1.47693258493 -4.00682639568 -4.35340002644 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.2476162766 1.47693258493 +1.6144860182 1.60627424977 4.384445244 8.22715374987 4.27311120181 5.89347322122 6.28162977231 6.27966508835 6.17141566727 6.4996755579 6.45153175295 5.87343182566 5.32679575071 3.87550606051 3.30208492936 3.37302436949 3.29542173878 2.57945784393 1.46650012066 1.27009440567 2.61569678781 3.33752736898 2.46767654122 2.01109122392 2.26423251365 1.99441774816 1.79852706019 2.27970203603 2.35637895837 2.24732773901 2.17767202542 2.02518153365 1.58504410331 -4.00717246953 -4.3537460955 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.2487699715 +2.00582778007 1.77145741663 2.4478087748 4.38134624076 8.16858323373 4.89003589527 5.32041434048 5.31026649117 5.26973573559 5.21910787421 4.33217284084 4.45632757485 5.52129464311 6.07331083328 6.20979586305 5.90173907789 3.09929554697 3.2625232791 3.38767252304 2.74322440514 2.88849917716 4.17774301415 3.28912960607 3.02138839359 2.84948328495 2.45724950805 2.41790819413 2.65321897238 2.9370330231 2.7952011223 2.60674029491 2.25225827052 2.12319854736 1.77082594706 -4.35305383757 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +-4.24953829007 2.19865903779 2.74730816785 3.05557466133 5.08946408375 7.91726986656 8.82549076455 2.8935959286 2.93411075974 2.82653154311 2.72198735524 2.24655394306 2.00335007318 2.50607244669 2.57238826625 3.39173669801 4.63748480015 6.06928110193 6.11774794462 6.59673925498 6.96341414931 5.76525329518 5.49126865863 5.38596397721 4.59396938443 4.10586442442 3.47522231137 3.16348703136 3.21012341464 2.85756276515 2.59312268503 2.36329836109 2.32834716735 2.23477026581 2.00582778007 -4.35201445304 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 -4.25030612756 2.17007976549 3.35213583606 4.44570396147 3.88470992522 3.97391358245 9.0070910631 3.07368268674 2.38663537015 2.27876884323 2.2608336504 2.38976186488 2.24729968021 2.13783285543 1.98496029661 1.48781566362 1.30227720151 1.37378679112 2.03892393003 2.69833824553 3.02991275015 2.6853266696 4.59439578272 4.92616387557 4.61073551042 4.2974068683 4.00589039158 4.00162936863 3.70375857424 3.48273486949 3.31421984392 3.08709411179 2.8929946325 2.83416741748 1.93161778951 -4.35132099491 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 -4.25107315852 3.59998369327 3.33936996754 3.87724218204 3.72684016819 2.87130171469 8.80016210998 3.75830348358 3.42313882756 2.98964988601 2.73618098198 2.43208870939 2.16142320934 2.28522611719 2.0240537139 1.75572552092 1.44013521302 1.23847060895 1.8544688004 1.81474298819 1.45555203575 1.18418042207 1.751810964 2.86338801948 3.21206911826 3.05082883535 2.94937775443 2.95304886671 3.53161937298 3.41462752508 3.2794032204 3.24305842535 3.50243823669 3.13903293537 1.8235062602 -4.35097408544 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 -4.25222287441 3.48153433649 3.5674131131 4.43677481584 3.28838545018 3.34504299411 8.93489954572 6.15346793117 3.22276412491 2.67141084031 2.54503510595 2.17547421786 1.99180746027 2.07096932705 1.90514774665 2.2328881015 2.01420874084 2.10739695915 2.35132587593 1.49665989254 0.932719577726 0.692046292924 0.949365947688 2.19294488862 1.45915907497 2.4728954246 2.3751509553 2.59593906531 2.69984128268 2.53025244536 2.11955966437 1.79185439413 3.09287755265 2.63005421154 -4.00231643312 -4.35027980679 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.25375363105 3.53070271541 2.38236064984 4.86955663854 4.17248504157 4.32401671471 2.30258509299 5.49532919367 6.11925823778 4.09124510844 3.27883574314 2.89528405782 2.92834828256 2.61089520464 2.19219949183 1.88952601445 2.1298616768 2.30295238465 1.94293684486 1.61292914288 1.16459772171 1.16825433342 1.77742240991 1.3939399748 2.54674610367 1.46444619161 2.83603689818 2.73146789084 2.69276145813 2.6198357429 2.24052472188 2.12506036662 2.11739950073 2.00582778007 -4.34923763201 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.25566389579 2.75466460515 1.98621750982 5.81680475708 3.6116437191 2.5830767048 7.54349931668 5.60121617053 6.26251520199 5.7705552965 4.75409246028 3.35948084746 2.91389491332 2.85339411376 2.81778502886 2.48847405512 2.5697667832 2.31578098421 2.08000591848 2.08791142694 1.60872393982 1.71280643276 1.2623108304 2.13286273811 2.03328213955 2.35458480757 1.77788107774 2.20334191545 2.07363968044 1.93477351393 2.16666554562 1.86509781067 1.58504410331 -4.00474743372 -4.35201445304 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.25757051838 2.65909453705 5.51321861717 5.15570187588 3.37425889815 8.56158590352 3.67779230415 3.4550067753 6.26301495328 6.53995412165 6.68436730772 6.20550149339 6.07962051937 3.56563840234 3.48804107233 3.28152255661 3.0323633321 2.90338015099 2.85990787995 3.12733044572 3.01154501318 2.2853546329 2.51188774615 2.30324198797 1.91199328208 2.14437680645 2.37437423732 2.44797342278 2.25158026336 2.05740123888 1.85788435005 1.36536083895 -4.00509422767 -4.35305383757 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.25985354804 2.38888843329 5.82996707728 3.23199209038 3.06537251303 10.0025905419 3.08216054037 3.66378329194 3.83699621592 4.79621551921 5.0687198937 5.89260151536 5.91857794089 6.63928890815 6.20300280569 5.53011715246 4.63801379786 4.06083946746 3.57649148346 3.12874151257 2.86003927598 2.52157392503 1.91142859387 0.502986491202 1.64127555252 0.923018147358 2.03066220858 1.31947761323 2.05777224609 1.96607283265 2.05795097583 1.21325512769 -4.35166778409 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.26175220681 1.85208543628 5.53491203528 3.57651811807 3.51329890198 7.78551494371 1.55982876395 2.85537683988 3.67758151555 3.53027035494 3.65749251804 3.41950956986 3.91323849022 4.44294117173 5.063471075 5.60360205921 5.86157059192 5.52850312419 4.97331756188 3.36213964261 3.19615171071 2.77391747692 2.24245374061 2.05681555865 1.16570878139 1.67355007311 2.62607606256 2.25220060113 2.3203568007 2.95492396435 1.83603342392 1.29307032926 -4.34993263434 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.26288960967 3.46168100559 5.09819432558 4.44024277322 3.45317771123 9.97522199088 4.09092072683 1.94383340129 2.78552753905 3.0874056735 2.60827997782 3.38662915082 2.77615675566 3.01994223854 3.87974453563 4.57220284312 4.87855547975 5.24929973293 5.32726836381 5.52747898837 5.07670621719 4.58349020568 4.29280610409 3.99048767543 3.94556605884 3.71688931784 3.17341229761 2.56761422265 1.98213257374 2.32705576438 1.53688916851 -4.00022806413 -4.34923763201 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.26478251818 4.18694203247 5.02338234268 4.79221255164 3.32251719196 3.44971516363 2.30258509299 7.18658191663 1.58504410331 1.84254573194 2.90148172655 2.48546387002 3.06144800355 2.87973303328 3.17961606585 3.40691951059 4.05756428999 3.41361076636 3.3524508533 3.72242971148 4.23948248446 5.03231479811 4.67828880312 4.70898325664 4.42202543743 3.94259452451 3.19174962665 2.59652938501 2.52814006511 2.04042067536 1.21737043985 -4.34680155991 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.26629418373 4.23248109818 3.59260063168 4.37437923014 3.98342091611 2.97769350108 3.23934730953 2.50275802483 2.30258509299 2.77058955556 2.40608837478 2.69076954103 2.63525269548 2.79614388492 2.53768097349 3.13134554001 3.56512457497 3.75095377895 3.13040013783 3.41359186971 3.55482437067 3.00774600043 2.65896450117 2.61769734591 3.59855460977 3.28325666442 3.3753259188 2.63589622186 1.96383185263 1.32075950841 1.23847060895 -4.34714991964 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.26818066472 4.0418584003 3.45578912227 3.94101666483 3.86688293083 3.4374837284 3.61330660685 3.9713670457 4.12592844997 8.22255448031 1.53990673737 2.13152212798 2.27339744078 2.09151909448 2.51822999601 2.48500148527 2.97689607766 3.36230764454 3.35812000121 2.81443926174 2.97540285777 3.01757372816 2.50634927442 2.68985550729 2.23701756999 2.91046056479 2.35685600242 1.94991425882 1.36185348045 0.961131834617 -3.99918217194 -4.34749825679 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.08041837871 3.74297299863 2.91702894435 3.74755199693 3.74366596222 2.9710454121 3.7438429778 4.40361042742 3.96042058617 2.44807294844 7.42108069774 1.10106178869 2.04667897586 2.41587128109 2.0448873176 2.32251698132 1.8793066621 3.24989424077 3.15776675919 2.64469923811 2.32741903446 2.58411057854 2.51793747727 2.57933894061 2.23605921872 1.71598083199 1.73078597567 1.49689780514 0.619533418954 1.07146752032 -4.34680155991 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -2.38333371061 3.50081773487 2.51047514048 3.77893910771 3.64077671379 3.0297055363 3.56194279534 4.30687023549 4.05726583447 3.33438301718 1.97070249525 8.03062834334 1.3921943527 2.42336173512 2.43565594996 2.27087314907 2.2763455646 2.14234546658 2.99001881707 2.65011983634 2.45498429521 2.35855573797 2.44270068755 2.40540145452 1.80128592358 1.24718633478 1.53270818504 0.941702114359 0.825400853156 -3.99953097083 -4.34784637395 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -2.59501181789 3.68399012156 3.10970025609 3.27359374688 3.28996800637 3.38684813786 3.46114058813 4.12960362171 4.31526955735 3.20926584635 1.59586163845 7.33415118088 3.26500767425 1.72813815695 2.5859055448 2.28155352883 2.19019852064 1.91496541348 1.82920685808 2.20318668666 2.20401464957 2.53029080345 3.16189818839 1.89918947217 1.13719289073 1.51949229582 1.06533257992 1.01601716823 -3.9988333213 -4.34714991964 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.33383478108 3.43865767236 3.54650820893 2.92951024386 3.00747163456 3.28707326657 3.46756666536 3.98670511733 3.77786360875 3.63511563984 1.81183295108 3.4326440185 8.66000745664 3.39411905652 2.54404747227 2.88355893148 2.42523632578 1.97190603536 1.53140143583 1.61259902905 2.26274765568 2.86591448196 2.65194917122 1.99422089985 1.62278367343 1.04736646753 1.32278192374 -3.9988333213 -4.34680155991 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 +-9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.841827318 3.13142353188 3.26137235235 3.03319689585 3.03264592831 3.1628492011 3.19502490923 4.11905599888 4.00126955204 3.69962293955 2.60625878436 3.31055673746 0.149529734333 6.72675916504 2.14817765229 2.89403874215 2.83306117008 2.28408352977 1.59894468699 0.98557668935 1.92354862101 2.58986219416 1.99355400576 2.24858837709 1.8737945457 1.23417874586 -3.99987957822 -4.34749825679 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 +-9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.28980717652 2.7893272713 2.7437659598 3.20340982271 2.88263621551 2.90370614763 3.07226286512 3.78533363178 3.71453672078 3.31519747973 3.12318218844 3.79034169549 0.834924842413 8.92948144127 3.58431975686 2.82191631899 2.61121875988 2.62092955242 2.27098142516 2.11844943645 1.55630042709 2.07938694532 1.64900037953 2.00077677861 1.43852873477 1.06533257992 -4.34819436997 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 +-9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.19714469688 1.9668544598 2.10612413264 3.10051326226 3.07383299672 2.59981132149 2.94135134265 3.54943273523 3.42425772865 3.21279634395 3.38092016684 3.64948622561 1.02029132575 6.34708722036 4.96087127695 3.54475469988 3.03228326738 2.51647459701 2.41246510621 1.73715547341 1.33459885204 1.9987206348 2.18910691072 1.71044630273 1.11329246533 -4.00196867435 -4.35027980679 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +-9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.2997173135 1.09362685734 1.73616997209 2.47705229885 2.81208832865 2.59053677373 2.96970207693 3.37725516919 3.2949821692 2.88484533723 3.03819061185 4.06292567656 3.18121970055 4.94113254548 6.49952601767 3.08844156267 3.27859943049 2.74999677015 2.48059916335 2.20999774541 2.05954742661 1.76174375306 2.25727339922 2.14590655925 1.32791012803 -4.34993263434 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.30409045546 -3.95897046363 1.10501826841 1.96760013552 2.71623140435 2.2667893896 2.53085567973 3.3721338028 3.15391429244 2.72431803676 2.66438338141 4.17563005735 3.4913249701 4.33357367961 7.45826351016 3.80841833849 3.4922719523 3.30533286842 2.96177004867 2.56983559454 2.43383641639 2.24626797335 2.05318998022 1.63642279004 1.42425232017 -4.35062705557 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.30953020262 -3.96440227304 1.46905878083 2.25301302581 2.34788518823 2.38939359635 2.84151728238 3.15266652129 2.83347302678 2.64444856262 3.99727749345 3.89019694658 3.98062992059 6.56437471262 6.21277537516 4.51708841451 3.70918596892 2.93233403751 2.68435418178 2.46658716324 2.06143277094 1.6091707554 1.29307032926 -4.00335898441 -4.35097408544 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.31565966071 -3.69427241006 2.03143271924 1.81018168586 2.30304399012 2.6732780668 2.70838682283 2.68417837011 2.30826968101 4.00545510697 3.72295169312 4.28501734344 5.37364717138 6.73826732348 5.50517659542 4.42509897528 3.917457132 3.17616498581 2.73669573308 2.41863396827 1.85186789161 1.13035907964 -4.35027980679 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.32103700489 1.11824637002 1.58414079493 1.89032747412 2.16731547717 2.05793044128 2.52763391762 2.11387835064 3.44300189085 3.29239851833 4.27636501189 5.4130713499 5.37303791472 6.23521880589 4.49410079764 3.88762170717 3.35226640718 2.6408087953 2.41337295157 1.78531061112 1.20110889268 -4.35062705557 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.32602991772 -3.98158846686 0.899268201981 1.79343722671 1.9548221479 1.86962917866 2.72813369438 2.85893738518 3.29362377108 3.57961342567 4.27483737824 5.01550750611 5.30348680864 5.76592194275 4.85004085293 4.355488282 3.93714241687 3.13154641982 2.37788294504 1.65228415743 1.18149847381 -4.35201445304 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.33241290549 -3.98760514289 0.973663726172 2.05715533731 2.06685615679 2.3176877031 2.32745974542 3.40008829255 3.78778599889 4.03684586749 4.18927583817 4.44507733913 5.60046205316 5.59399808497 4.05034999857 3.76827929396 3.52858155985 2.98258894143 2.2562187662 1.21325512769 -4.35270752882 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.33805269181 -3.99253296889 1.90640230825 1.98108055618 2.13466001026 2.18878477317 3.37676569119 3.85133806904 3.83669912863 3.88974763595 3.48536436142 5.27313855787 5.6760776402 5.18890310014 4.12079955334 3.283811352 3.1748594796 2.59326695266 1.28354613791 -4.35305383757 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.34261165064 1.13035907964 1.69872221691 1.98004302742 2.16384516155 3.1037461898 3.97141211155 3.73012334044 3.51586389663 3.34757697819 3.81069650317 5.52444987245 5.86376835019 4.68850864938 3.20975180063 2.76178930669 3.16070605782 2.11497684221 -4.00786432744 -4.35512917534 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.34610447616 -4.0005763588 1.11665964323 1.54796772507 1.92637928983 2.83745517037 4.08338327298 3.79040016286 3.55374378058 2.91763701614 3.16093181961 4.67446987794 5.86673176822 5.50019507185 3.15941205294 2.72706447516 2.52679019258 2.72362355144 1.5119450697 -4.3578898049 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.35062705557 -4.00509422767 1.10004674912 1.54796772507 2.96667336267 3.77957179583 3.37909719381 3.32851075632 2.7627375501 2.96102357365 3.04954555913 5.38856149244 5.89896541091 3.86517383956 2.75867729517 2.7038854282 2.56972610206 1.45547557547 -4.36167300187 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.35443787453 -4.00821004234 1.10004674912 2.8841570446 3.9293189763 3.1154880665 3.39713990215 2.1542773955 2.54068826801 3.16769733562 4.99996841722 5.66943916761 4.62524107948 2.66889874579 2.42884991421 2.39838169048 1.86917407342 -4.36441564999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.35823422627 -4.01200510779 2.81346599911 3.76598940172 3.24209103521 3.14620717846 2.24518280751 2.57909066497 2.83682974125 3.81139786805 6.32767304374 5.04065461495 2.52746130926 2.7628427299 2.46876262048 1.79328302128 -4.36680914263 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.87243652715 2.89124673443 4.03905893794 3.20698777093 3.02251058103 2.11831185999 2.83972097437 2.67021480161 3.12224336969 5.46047900637 5.58426033258 3.45268552065 2.91020438004 2.76934434569 1.37781942781 -4.36953766283 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.36441564999 2.91132140206 3.73410510171 3.31140533531 2.88839724831 2.24638798615 2.89241425838 2.49590058931 3.29741665282 4.71313199771 5.67228181082 4.03855475405 3.46698993603 2.69399426355 1.8189998977 -4.37259845961 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.36715060297 -2.33814411684 3.91933665465 3.5360091947 2.77495036254 2.3594167059 3.12684393975 2.80434689582 3.11084527705 4.38992014037 5.96632015851 3.96926346711 3.51813476528 2.84048229664 1.97759676818 -4.37564982052 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -2.12602180496 4.14852363911 3.27388506365 2.97679057751 2.8901812647 2.85957445872 2.89676716487 3.47284788696 4.64006836057 5.91238283218 3.76367583547 3.39284293429 2.69622717885 2.13984655567 -4.37835426179 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -2.18831017463 4.38605730047 3.36007572797 2.9293752524 2.15868987609 3.14733609908 3.57327199515 3.54967689708 4.17859798362 5.90227722135 3.23171602572 2.54933598118 2.73481106037 2.62005023345 +-4.38105150424 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.00110217959 4.7336357921 3.38006204411 2.62656051703 2.67639058916 3.2636657921 3.42220959095 3.39253964154 4.23275726758 5.84684884828 3.33872259821 2.29412750616 2.8807662365 +2.29677022431 -4.38441283496 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.3797038402 4.45548407559 3.1424063237 2.55800709133 2.33149344911 2.98506344323 3.88186695959 2.91854916244 4.23814309604 5.69924856521 2.98924444846 2.20184500617 +2.42698128424 2.58114435323 -4.38709390208 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.44357992547 3.9724881675 3.17680699335 2.74264218768 2.23306712327 2.80640829828 3.53164031861 2.98883532755 4.10787846613 5.85843576329 3.21337348543 +2.06941686476 2.39357230395 2.56457164711 -4.38943378809 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.67958306513 3.81616739412 2.99202673187 2.5301015533 2.36411144499 2.94842619068 3.14628703101 3.07561677197 4.19361902467 5.71828831059 +3.99817922374 2.62358037452 2.10451121728 2.01650989609 -4.22602024352 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.53544201131 3.40058217533 2.84426855465 2.59334497345 2.32813030174 2.68216011575 3.01872358408 3.3376560464 4.20207041245 +5.86085773926 4.12925672067 2.2416939407 2.30864755222 1.65925419393 -4.39442965714 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.73915434012 2.97888643408 2.96175334066 2.43261219174 2.35545846484 2.90063188888 3.23490418121 3.57805940576 +4.00884409684 5.36621304608 4.50155989332 2.36564262198 1.93936930939 -4.05117281671 -4.39708394403 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.2657529607 2.60203298715 2.7955781573 2.89560284171 2.50252668552 2.88021183157 3.18963171334 +3.33812873981 3.42692142278 5.26917284336 5.24289271127 1.922427437 1.47003591213 -4.40006160795 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.65871542917 2.48933777628 2.61712562635 2.80213163759 2.20785094663 2.81330755389 +3.36046857739 2.87992187076 3.47653831297 4.58166125287 4.93294900704 2.46407881187 -4.05579784165 -4.4027010077 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.6788969906 2.07910936057 2.58946606223 2.72567251175 2.04712727702 +2.93936332185 3.14386320515 2.69458576534 3.65220410946 4.30190297341 4.98176439595 2.62297777352 -4.40500479327 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.54928845755 2.04917609429 2.4125863597 2.4478715808 +2.32589078483 2.75348981287 2.9634406745 3.20178241148 3.31516025508 4.17055952952 4.41226063079 2.66600013969 -4.40763119525 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.96345902797 2.29076085584 2.32611921742 +2.35514540883 2.36707378589 2.65202546177 2.64383818418 3.04526706514 3.45511646284 4.22411414823 4.21998684385 2.42610669622 -4.41090450389 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.73277557608 2.12744150558 +2.30797165171 1.9791532174 2.29557264947 2.40969757523 2.5895929265 2.771075314 3.42269819462 4.06088831913 3.6960973219 2.16609871307 -4.41351547662 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -3.81574326243 +2.2597063038 2.08966768695 1.89599266226 2.19683290997 2.22067297432 2.37199219185 2.75063903 3.41356754221 3.83811572921 3.67934943377 -3.25644642115 -4.41676961196 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +-4.30688759068 2.09240131088 2.06861641798 1.96753511451 1.929615371 2.20620673739 2.5035875367 2.76793977345 3.11651051301 3.50634398671 3.60112657603 -3.68533227293 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 -4.4344805445 1.35110730028 1.67551398432 1.95651534372 1.92923338143 2.10636076225 2.51584022734 2.12795780638 3.33167743112 3.12507536277 3.45498554685 -3.39495284777 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 -4.43766736452 -4.09204776767 1.29307032926 1.75304472919 1.58386304031 1.93103646661 2.22446013639 2.52954420781 2.88479192344 3.12005573604 3.2618847921 -3.14997477438 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.44147806527 -4.09522143087 1.20110889268 1.46338571842 1.67213674069 1.99136177599 2.30513612976 2.64194933758 2.8578960355 3.2134971424 -3.31398311155 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.44495850414 -4.09933209108 1.12346239211 1.29449757004 1.71749341464 1.82164795738 2.38861759616 2.93141943641 2.98334396868 -3.21776054864 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.44779716964 -4.10216802277 1.0871428197 1.36213992846 1.74553313629 2.34876877077 2.46716986753 2.83464435367 -3.6132320944 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.45062779992 -4.10468224273 1.01878733588 1.50446819648 2.11193124254 2.2357636898 2.51439035449 -3.55750267746 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.45345052913 -4.1068769018 1.2352494735 1.8055996653 1.85687656118 2.32406314481 -3.71001640964 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.45595279273 1.01878733588 1.31987208204 1.51984285191 2.05624408176 -4.10416971785 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.45813723726 -4.11280979273 1.05031638616 0.923018147358 1.38574531468 -4.15138665282 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 +2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -4.46124966822 -4.46187095841 -4.11467600856 0.936972469931 -4.45907201945 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 2.30258509299 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 +-9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 +-9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/TOPMODEL/Topmodel.omi b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/TOPMODEL/Topmodel.omi new file mode 100644 index 00000000..3e240ee0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/TOPMODEL/Topmodel.omi @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/TOPMODEL/output/Runoff.csv b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/TOPMODEL/output/Runoff.csv new file mode 100644 index 00000000..5969f6e3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/HydroModeler_example_configurations/example_configuration_04/models/TOPMODEL/output/Runoff.csv @@ -0,0 +1,1403 @@ +Daily Runoff.... +StartDate: , 01/02/2006 12:00:00 +EndDate: , 10/31/2009 12:00:00 + +Time [0:MM/dd/yyyy hh:mm:ss], Runoff +01/02/2006 12:00:00,9.74628658691881, +01/03/2006 12:00:00,11.3603677184983, +01/04/2006 12:00:00,10.1403965528071, +01/05/2006 12:00:00,9.10810198600561, +01/06/2006 12:00:00,8.27272885896606, +01/07/2006 12:00:00,7.56544434311324, +01/08/2006 12:00:00,6.97379770331903, +01/09/2006 12:00:00,6.48741110242026, +01/10/2006 12:00:00,6.0543355055349, +01/11/2006 12:00:00,5.67346869379124, +01/12/2006 12:00:00,6.09596218982536, +01/13/2006 12:00:00,5.72167488517449, +01/14/2006 12:00:00,6.48846319192581, +01/15/2006 12:00:00,6.03320657556668, +01/16/2006 12:00:00,5.65492983207554, +01/17/2006 12:00:00,5.56461306661988, +01/18/2006 12:00:00,11.425058472018, +01/19/2006 12:00:00,10.1335848973596, +01/20/2006 12:00:00,9.1046028683083, +01/21/2006 12:00:00,8.32848988420198, +01/22/2006 12:00:00,8.76578047565416, +01/23/2006 12:00:00,8.32851384600662, +01/24/2006 12:00:00,7.8513614326335, +01/25/2006 12:00:00,7.23716733621361, +01/26/2006 12:00:00,6.69403581641822, +01/27/2006 12:00:00,6.21951157262625, +01/28/2006 12:00:00,5.81732836025518, +01/29/2006 12:00:00,5.46564808105157, +01/30/2006 12:00:00,5.66405271807418, +01/31/2006 12:00:00,5.60457554543178, +02/01/2006 12:00:00,5.25341207695003, +02/02/2006 12:00:00,4.94509981119273, +02/03/2006 12:00:00,4.6765561913403, +02/04/2006 12:00:00,4.44348306574949, +02/05/2006 12:00:00,5.22944410337042, +02/06/2006 12:00:00,4.91737035392982, +02/07/2006 12:00:00,4.66147237173866, +02/08/2006 12:00:00,4.43023308590657, +02/09/2006 12:00:00,4.21971790771274, +02/10/2006 12:00:00,4.01889127742461, +02/11/2006 12:00:00,3.84379952695985, +02/12/2006 12:00:00,4.13677304573722, +02/13/2006 12:00:00,3.9430422606953, +02/14/2006 12:00:00,3.77506648829633, +02/15/2006 12:00:00,3.62381259547841, +02/16/2006 12:00:00,3.47979877777285, +02/17/2006 12:00:00,3.33198998124852, +02/18/2006 12:00:00,3.19399980070347, +02/19/2006 12:00:00,3.17428545274697, +02/20/2006 12:00:00,3.04408763783235, +02/21/2006 12:00:00,2.94570804910665, +02/22/2006 12:00:00,2.84955802924241, +02/23/2006 12:00:00,2.94163838475706, +02/24/2006 12:00:00,2.82763718268666, +02/25/2006 12:00:00,2.72159142990367, +02/26/2006 12:00:00,2.63096685760017, +02/27/2006 12:00:00,2.53797531252167, +02/28/2006 12:00:00,2.45675947570294, +03/01/2006 12:00:00,2.3849892294083, +03/02/2006 12:00:00,2.3081794262592, +03/03/2006 12:00:00,2.22864132202077, +03/04/2006 12:00:00,2.15070485721516, +03/05/2006 12:00:00,2.0797578910347, +03/06/2006 12:00:00,2.01986302633062, +03/07/2006 12:00:00,1.95920368891069, +03/08/2006 12:00:00,1.89655123739994, +03/09/2006 12:00:00,1.83954817107553, +03/10/2006 12:00:00,2.06052880126563, +03/11/2006 12:00:00,2.07185145113405, +03/12/2006 12:00:00,2.00811459336329, +03/13/2006 12:00:00,1.93946941126676, +03/14/2006 12:00:00,1.87528982243584, +03/15/2006 12:00:00,1.89809640844367, +03/16/2006 12:00:00,1.83734617087533, +03/17/2006 12:00:00,1.78876054619968, +03/18/2006 12:00:00,1.73872942789905, +03/19/2006 12:00:00,1.6868309830209, +03/20/2006 12:00:00,1.6369288722399, +03/21/2006 12:00:00,2.01563146371684, +03/22/2006 12:00:00,1.98012046136764, +03/23/2006 12:00:00,1.93137665608153, +03/24/2006 12:00:00,1.87061527394794, +03/25/2006 12:00:00,1.81520255673926, +03/26/2006 12:00:00,1.76635234825172, +03/27/2006 12:00:00,1.7243244502827, +03/28/2006 12:00:00,1.68418014881714, +03/29/2006 12:00:00,1.64037567390747, +03/30/2006 12:00:00,1.59289930374327, +03/31/2006 12:00:00,1.54836888458678, +04/01/2006 12:00:00,1.53506339976762, +04/02/2006 12:00:00,1.66972070357628, +04/03/2006 12:00:00,1.67803573718905, +04/04/2006 12:00:00,1.91011610464955, +04/05/2006 12:00:00,1.84148139555625, +04/06/2006 12:00:00,1.77815989823105, +04/07/2006 12:00:00,1.72037392948202, +04/08/2006 12:00:00,1.66301234219152, +04/09/2006 12:00:00,1.73947883949877, +04/10/2006 12:00:00,1.6748528638358, +04/11/2006 12:00:00,1.62733501234352, +04/12/2006 12:00:00,1.57489933624228, +04/13/2006 12:00:00,1.52303018686482, +04/14/2006 12:00:00,1.47187276565959, +04/15/2006 12:00:00,1.42291136996693, +04/16/2006 12:00:00,1.37336754567177, +04/17/2006 12:00:00,1.32319586498232, +04/18/2006 12:00:00,1.27844905377979, +04/19/2006 12:00:00,1.23189771692264, +04/20/2006 12:00:00,1.24147020648204, +04/21/2006 12:00:00,1.30849973539337, +04/22/2006 12:00:00,1.35400326597146, +04/23/2006 12:00:00,1.75098457690953, +04/24/2006 12:00:00,1.69728861353064, +04/25/2006 12:00:00,1.64179471430819, +04/26/2006 12:00:00,1.58073020977575, +04/27/2006 12:00:00,1.5841222224368, +04/28/2006 12:00:00,1.52395950694304, +04/29/2006 12:00:00,1.48227058307667, +04/30/2006 12:00:00,1.43796399328917, +05/01/2006 12:00:00,1.38831320361471, +05/02/2006 12:00:00,1.35051260969497, +05/03/2006 12:00:00,1.3179457059923, +05/04/2006 12:00:00,1.27725065126244, +05/05/2006 12:00:00,1.23520181328218, +05/06/2006 12:00:00,1.20256697008145, +05/07/2006 12:00:00,1.16186669149431, +05/08/2006 12:00:00,1.2094228402124, +05/09/2006 12:00:00,1.17065986607174, +05/10/2006 12:00:00,1.14665150767424, +05/11/2006 12:00:00,1.11688075244066, +05/12/2006 12:00:00,1.09286879103642, +05/13/2006 12:00:00,1.06113293161388, +05/14/2006 12:00:00,1.04402369022217, +05/15/2006 12:00:00,1.01655956258579, +05/16/2006 12:00:00,0.986455317416296, +05/17/2006 12:00:00,0.962015854489493, +05/18/2006 12:00:00,0.93729628230362, +05/19/2006 12:00:00,0.914395770595981, +05/20/2006 12:00:00,0.889210017942828, +05/21/2006 12:00:00,0.963428559599872, +05/22/2006 12:00:00,0.93485063697404, +05/23/2006 12:00:00,0.924139935915549, +05/24/2006 12:00:00,0.897548336924948, +05/25/2006 12:00:00,0.873308401721615, +05/26/2006 12:00:00,0.84463409723043, +05/27/2006 12:00:00,0.815729226994492, +05/28/2006 12:00:00,0.791204958762085, +05/29/2006 12:00:00,0.767832014396063, +05/30/2006 12:00:00,0.744122909412947, +05/31/2006 12:00:00,0.718942441439823, +06/01/2006 12:00:00,0.695405514711017, +06/02/2006 12:00:00,0.672277411264399, +06/03/2006 12:00:00,0.690129322588546, +06/04/2006 12:00:00,0.66901238285279, +06/05/2006 12:00:00,0.706241852937366, +06/06/2006 12:00:00,0.688827213284602, +06/07/2006 12:00:00,0.668625812232133, +06/08/2006 12:00:00,0.651443568272641, +06/09/2006 12:00:00,0.631778166849565, +06/10/2006 12:00:00,0.612314797795705, +06/11/2006 12:00:00,0.593537276727548, +06/12/2006 12:00:00,0.575110250399503, +06/13/2006 12:00:00,0.55571257179122, +06/14/2006 12:00:00,0.538212414578633, +06/15/2006 12:00:00,0.522584448934986, +06/16/2006 12:00:00,0.511176061509332, +06/17/2006 12:00:00,0.496106385432368, +06/18/2006 12:00:00,0.481037045664727, +06/19/2006 12:00:00,0.466849009829683, +06/20/2006 12:00:00,0.45372030801099, +06/21/2006 12:00:00,0.441083859310729, +06/22/2006 12:00:00,0.427978772052957, +06/23/2006 12:00:00,0.416836960160111, +06/24/2006 12:00:00,0.420681934212927, +06/25/2006 12:00:00,0.406933659528182, +06/26/2006 12:00:00,0.510382682668736, +06/27/2006 12:00:00,0.88365296624842, +06/28/2006 12:00:00,0.862984578537512, +06/29/2006 12:00:00,0.845789926463373, +06/30/2006 12:00:00,0.819273386744858, +07/01/2006 12:00:00,0.791841472769485, +07/02/2006 12:00:00,0.76522107875597, +07/03/2006 12:00:00,0.740496929561552, +07/04/2006 12:00:00,0.715023945047265, +07/05/2006 12:00:00,0.694206182565323, +07/06/2006 12:00:00,0.755021998181791, +07/07/2006 12:00:00,0.750316711354048, +07/08/2006 12:00:00,0.72875341705752, +07/09/2006 12:00:00,0.708296070100648, +07/10/2006 12:00:00,0.689042737639633, +07/11/2006 12:00:00,0.670157999991492, +07/12/2006 12:00:00,0.651904369161759, +07/13/2006 12:00:00,0.632058987338265, +07/14/2006 12:00:00,0.61352042015472, +07/15/2006 12:00:00,0.691539834153012, +07/16/2006 12:00:00,0.669369158135493, +07/17/2006 12:00:00,0.650071992234168, +07/18/2006 12:00:00,0.630189796025361, +07/19/2006 12:00:00,0.61078013721694, +07/20/2006 12:00:00,0.591130378869312, +07/21/2006 12:00:00,0.573114514108872, +07/22/2006 12:00:00,0.55463675863592, +07/23/2006 12:00:00,0.545091281168592, +07/24/2006 12:00:00,0.528689498424436, +07/25/2006 12:00:00,0.540856197453874, +07/26/2006 12:00:00,0.527632817917012, +07/27/2006 12:00:00,0.513932598662371, +07/28/2006 12:00:00,0.501068005511673, +07/29/2006 12:00:00,0.485937128031457, +07/30/2006 12:00:00,0.481402076203949, +07/31/2006 12:00:00,0.46745785371128, +08/01/2006 12:00:00,0.456399098500086, +08/02/2006 12:00:00,0.443047402436903, +08/03/2006 12:00:00,0.429465158750455, +08/04/2006 12:00:00,0.416166850695983, +08/05/2006 12:00:00,0.404367097278169, +08/06/2006 12:00:00,0.39252853687009, +08/07/2006 12:00:00,0.380603684678905, +08/08/2006 12:00:00,0.370965443957067, +08/09/2006 12:00:00,0.361468086163537, +08/10/2006 12:00:00,0.351507782582523, +08/11/2006 12:00:00,0.340926107582878, +08/12/2006 12:00:00,0.331391647882295, +08/13/2006 12:00:00,0.340061616937736, +08/14/2006 12:00:00,0.333145129347991, +08/15/2006 12:00:00,0.328961349586377, +08/16/2006 12:00:00,0.352291058208588, +08/17/2006 12:00:00,0.343457191971765, +08/18/2006 12:00:00,0.335107256686571, +08/19/2006 12:00:00,0.327460200664538, +08/20/2006 12:00:00,0.340850343226027, +08/21/2006 12:00:00,0.332085046323439, +08/22/2006 12:00:00,0.324185215776825, +08/23/2006 12:00:00,0.317840085753524, +08/24/2006 12:00:00,0.310749697327478, +08/25/2006 12:00:00,0.303496074754463, +08/26/2006 12:00:00,0.297076231758495, +08/27/2006 12:00:00,0.290235841453707, +08/28/2006 12:00:00,0.283672453803966, +08/29/2006 12:00:00,0.282420349836046, +08/30/2006 12:00:00,0.275303771402028, +08/31/2006 12:00:00,0.269115950941712, +09/01/2006 12:00:00,0.487008699155999, +09/02/2006 12:00:00,0.599744083717403, +09/03/2006 12:00:00,0.590515771733632, +09/04/2006 12:00:00,0.577944662745665, +09/05/2006 12:00:00,0.760849092721277, +09/06/2006 12:00:00,0.918185597223799, +09/07/2006 12:00:00,0.896319414149656, +09/08/2006 12:00:00,0.878663422692754, +09/09/2006 12:00:00,0.855953309585497, +09/10/2006 12:00:00,0.835593353491365, +09/11/2006 12:00:00,0.815558041436782, +09/12/2006 12:00:00,0.795048718418919, +09/13/2006 12:00:00,0.774050272225547, +09/14/2006 12:00:00,0.91628203425795, +09/15/2006 12:00:00,0.898656791923194, +09/16/2006 12:00:00,0.882442470715074, +09/17/2006 12:00:00,0.861887016216072, +09/18/2006 12:00:00,0.839875336797356, +09/19/2006 12:00:00,0.966010684018646, +09/20/2006 12:00:00,0.940767748215854, +09/21/2006 12:00:00,0.915232807057823, +09/22/2006 12:00:00,0.894221484551479, +09/23/2006 12:00:00,0.891571203219549, +09/24/2006 12:00:00,0.911967755347949, +09/25/2006 12:00:00,1.13217933382533, +09/26/2006 12:00:00,1.10332549281287, +09/27/2006 12:00:00,1.07783704465352, +09/28/2006 12:00:00,1.0526349411853, +09/29/2006 12:00:00,1.02787895506771, +09/30/2006 12:00:00,1.00341484519284, +10/01/2006 12:00:00,0.979625473226588, +10/02/2006 12:00:00,0.958567615622738, +10/03/2006 12:00:00,0.935830698169452, +10/04/2006 12:00:00,0.913049602459145, +10/05/2006 12:00:00,0.89093759428005, +10/06/2006 12:00:00,0.871928983115207, +10/07/2006 12:00:00,0.851244412000408, +10/08/2006 12:00:00,0.830836944789004, +10/09/2006 12:00:00,0.814337479670016, +10/10/2006 12:00:00,0.79720285657427, +10/11/2006 12:00:00,0.781874602655743, +10/12/2006 12:00:00,0.764845851680113, +10/13/2006 12:00:00,0.7479617160616, +10/14/2006 12:00:00,0.73433630660107, +10/15/2006 12:00:00,0.721360091371103, +10/16/2006 12:00:00,0.709309446132947, +10/17/2006 12:00:00,0.834591359480568, +10/18/2006 12:00:00,1.68202965711268, +10/19/2006 12:00:00,1.64047400736385, +10/20/2006 12:00:00,1.94739452645518, +10/21/2006 12:00:00,1.88619640485255, +10/22/2006 12:00:00,1.83253252657485, +10/23/2006 12:00:00,1.78876765900192, +10/24/2006 12:00:00,1.73799123654948, +10/25/2006 12:00:00,1.69200690944573, +10/26/2006 12:00:00,1.65427128362158, +10/27/2006 12:00:00,1.61689325065894, +10/28/2006 12:00:00,2.41617615114369, +10/29/2006 12:00:00,2.33606752219246, +10/30/2006 12:00:00,2.26783907770601, +10/31/2006 12:00:00,2.20361599546332, +11/01/2006 12:00:00,2.13279494090046, +11/02/2006 12:00:00,2.07408795579074, +11/03/2006 12:00:00,2.01170931634849, +11/04/2006 12:00:00,1.95007578378358, +11/05/2006 12:00:00,1.89970442201508, +11/06/2006 12:00:00,1.85161737988666, +11/07/2006 12:00:00,1.80399213461412, +11/08/2006 12:00:00,2.35970966247762, +11/09/2006 12:00:00,2.28666872370698, +11/10/2006 12:00:00,2.21975347147535, +11/11/2006 12:00:00,2.15503573687931, +11/12/2006 12:00:00,2.08614430078295, +11/13/2006 12:00:00,2.01840551977744, +11/14/2006 12:00:00,1.96003981991718, +11/15/2006 12:00:00,1.91185430660567, +11/16/2006 12:00:00,3.84032309155744, +11/17/2006 12:00:00,4.14249369974764, +11/18/2006 12:00:00,3.94970806684655, +11/19/2006 12:00:00,3.79674677564029, +11/20/2006 12:00:00,3.63487207223033, +11/21/2006 12:00:00,3.47856980170358, +11/22/2006 12:00:00,3.34162684307273, +11/23/2006 12:00:00,3.21782629552476, +11/24/2006 12:00:00,3.09826041424417, +11/25/2006 12:00:00,2.97936275296348, +11/26/2006 12:00:00,2.86571990242958, +11/27/2006 12:00:00,2.75956749742656, +11/28/2006 12:00:00,2.65981571592675, +11/29/2006 12:00:00,2.56685473343653, +11/30/2006 12:00:00,2.59209147774886, +12/01/2006 12:00:00,3.39227940543002, +12/02/2006 12:00:00,4.54889916337859, +12/03/2006 12:00:00,4.32287032798909, +12/04/2006 12:00:00,4.12339226245278, +12/05/2006 12:00:00,3.93046125325352, +12/06/2006 12:00:00,3.75479213155696, +12/07/2006 12:00:00,3.59985926838048, +12/08/2006 12:00:00,3.4525451709658, +12/09/2006 12:00:00,3.31473007279295, +12/10/2006 12:00:00,3.19154376635003, +12/11/2006 12:00:00,3.07934500865897, +12/12/2006 12:00:00,2.97101233363365, +12/13/2006 12:00:00,2.86769415746192, +12/14/2006 12:00:00,2.84551754191751, +12/15/2006 12:00:00,2.74722983257812, +12/16/2006 12:00:00,2.65612394756163, +12/17/2006 12:00:00,2.57028464181766, +12/18/2006 12:00:00,2.48616514171838, +12/19/2006 12:00:00,2.4046371982203, +12/20/2006 12:00:00,2.32853644538032, +12/21/2006 12:00:00,2.25657793967572, +12/22/2006 12:00:00,2.18982868482391, +12/23/2006 12:00:00,3.16945778644339, +12/24/2006 12:00:00,3.0563467533356, +12/25/2006 12:00:00,2.95405871845368, +12/26/2006 12:00:00,3.46096882446211, +12/27/2006 12:00:00,3.47549405975055, +12/28/2006 12:00:00,3.33906395824323, +12/29/2006 12:00:00,3.2262561470165, +12/30/2006 12:00:00,3.10758911005662, +12/31/2006 12:00:00,3.0621789894406, +01/01/2007 12:00:00,6.86625069405155, +01/02/2007 12:00:00,6.37307543582251, +01/03/2007 12:00:00,5.94589938582586, +01/04/2007 12:00:00,5.56977322252102, +01/05/2007 12:00:00,5.24810403287476, +01/06/2007 12:00:00,6.04432264956011, +01/07/2007 12:00:00,5.69016739817927, +01/08/2007 12:00:00,8.07805260556356, +01/09/2007 12:00:00,7.41740343357435, +01/10/2007 12:00:00,6.84648413693256, +01/11/2007 12:00:00,6.37170824307194, +01/12/2007 12:00:00,5.95718083352095, +01/13/2007 12:00:00,5.58872648585586, +01/14/2007 12:00:00,5.25894724658525, +01/15/2007 12:00:00,4.96259439648693, +01/16/2007 12:00:00,4.68817250802464, +01/17/2007 12:00:00,4.43910376440793, +01/18/2007 12:00:00,4.22548355625898, +01/19/2007 12:00:00,4.12547698939633, +01/20/2007 12:00:00,3.94145900040178, +01/21/2007 12:00:00,3.78563190070118, +01/22/2007 12:00:00,4.97416914189465, +01/23/2007 12:00:00,4.70449585127279, +01/24/2007 12:00:00,4.47189145711883, +01/25/2007 12:00:00,4.2570166050574, +01/26/2007 12:00:00,4.06249792506257, +01/27/2007 12:00:00,3.88025929612482, +01/28/2007 12:00:00,3.71718900731382, +01/29/2007 12:00:00,3.55876778889743, +01/30/2007 12:00:00,3.40788095458943, +01/31/2007 12:00:00,3.29370103659123, +02/01/2007 12:00:00,3.17604362188675, +02/02/2007 12:00:00,3.49201380193661, +02/03/2007 12:00:00,3.3560374014711, +02/04/2007 12:00:00,3.23347527351743, +02/05/2007 12:00:00,3.11346254736636, +02/06/2007 12:00:00,3.00584605307988, +02/07/2007 12:00:00,2.90589225573805, +02/08/2007 12:00:00,2.8110706149481, +02/09/2007 12:00:00,2.71584791055179, +02/10/2007 12:00:00,2.62031730998242, +02/11/2007 12:00:00,2.53537280860676, +02/12/2007 12:00:00,2.45986888813295, +02/13/2007 12:00:00,2.38623444838752, +02/14/2007 12:00:00,2.48318510768288, +02/15/2007 12:00:00,2.40485363656875, +02/16/2007 12:00:00,2.33048207968679, +02/17/2007 12:00:00,2.26669938432324, +02/18/2007 12:00:00,2.20429191329981, +02/19/2007 12:00:00,2.14563295856398, +02/20/2007 12:00:00,2.09159045049129, +02/21/2007 12:00:00,2.15104051839994, +02/22/2007 12:00:00,2.0864386213481, +02/23/2007 12:00:00,2.02444695484274, +02/24/2007 12:00:00,1.96457507751647, +02/25/2007 12:00:00,1.90627944157892, +02/26/2007 12:00:00,2.26404494829526, +02/27/2007 12:00:00,2.19391284416034, +02/28/2007 12:00:00,2.1274549338911, +03/01/2007 12:00:00,2.06493318021952, +03/02/2007 12:00:00,3.98413888276898, +03/03/2007 12:00:00,3.78043694687007, +03/04/2007 12:00:00,3.60847529762734, +03/05/2007 12:00:00,3.44710987172171, +03/06/2007 12:00:00,3.30127086767938, +03/07/2007 12:00:00,3.17234363985505, +03/08/2007 12:00:00,3.04064498637339, +03/09/2007 12:00:00,2.91553996395012, +03/10/2007 12:00:00,2.79624850197063, +03/11/2007 12:00:00,2.68104592792055, +03/12/2007 12:00:00,2.5818661541804, +03/13/2007 12:00:00,2.48493139525842, +03/14/2007 12:00:00,2.39057250203841, +03/15/2007 12:00:00,2.29813304514135, +03/16/2007 12:00:00,2.57445357757382, +03/17/2007 12:00:00,3.22612069029513, +03/18/2007 12:00:00,3.08408719672804, +03/19/2007 12:00:00,2.97248567662243, +03/20/2007 12:00:00,2.86643779576801, +03/21/2007 12:00:00,2.75765580669764, +03/22/2007 12:00:00,2.64485209318342, +03/23/2007 12:00:00,2.53565546183359, +03/24/2007 12:00:00,2.43693150590003, +03/25/2007 12:00:00,2.34585516211947, +03/26/2007 12:00:00,2.24901586394557, +03/27/2007 12:00:00,2.15881780016916, +03/28/2007 12:00:00,2.06950711774903, +03/29/2007 12:00:00,1.9931149942948, +03/30/2007 12:00:00,1.96295204567729, +03/31/2007 12:00:00,1.89075888837971, +04/01/2007 12:00:00,1.8324705010832, +04/02/2007 12:00:00,2.43359275742563, +04/03/2007 12:00:00,2.33462420178927, +04/04/2007 12:00:00,2.26488792911539, +04/05/2007 12:00:00,2.46981404628367, +04/06/2007 12:00:00,2.36153986255075, +04/07/2007 12:00:00,2.27098243051955, +04/08/2007 12:00:00,2.19410401871316, +04/09/2007 12:00:00,2.12192270655003, +04/10/2007 12:00:00,2.06369967291018, +04/11/2007 12:00:00,1.99957597135662, +04/12/2007 12:00:00,2.0360323598759, +04/13/2007 12:00:00,1.96639673235225, +04/14/2007 12:00:00,1.90828843852493, +04/15/2007 12:00:00,2.15313964979484, +04/16/2007 12:00:00,2.48079097479229, +04/17/2007 12:00:00,2.38225179860467, +04/18/2007 12:00:00,2.3056192567727, +04/19/2007 12:00:00,2.2216693219663, +04/20/2007 12:00:00,2.13398093549979, +04/21/2007 12:00:00,2.05685692787874, +04/22/2007 12:00:00,1.97992188638589, +04/23/2007 12:00:00,1.90544652430993, +04/24/2007 12:00:00,1.83269676213901, +04/25/2007 12:00:00,1.7606409491597, +04/26/2007 12:00:00,1.69017450516684, +04/27/2007 12:00:00,1.74785069056669, +04/28/2007 12:00:00,1.67893289594162, +04/29/2007 12:00:00,1.62814237386869, +04/30/2007 12:00:00,1.57591630910447, +05/01/2007 12:00:00,1.52402928222296, +05/02/2007 12:00:00,1.46933868267026, +05/03/2007 12:00:00,1.41098151822961, +05/04/2007 12:00:00,1.35512867144573, +05/05/2007 12:00:00,1.31923981117514, +05/06/2007 12:00:00,1.43815897564477, +05/07/2007 12:00:00,1.39095901251247, +05/08/2007 12:00:00,1.35923920031808, +05/09/2007 12:00:00,1.3174921750631, +05/10/2007 12:00:00,1.27115180421856, +05/11/2007 12:00:00,1.22441176096564, +05/12/2007 12:00:00,1.18118225616893, +05/13/2007 12:00:00,1.13860428990104, +05/14/2007 12:00:00,1.0975955927823, +05/15/2007 12:00:00,1.06767148525065, +05/16/2007 12:00:00,1.03146614020477, +05/17/2007 12:00:00,1.00368446438324, +05/18/2007 12:00:00,0.970617450262625, +05/19/2007 12:00:00,0.944266490690211, +05/20/2007 12:00:00,0.916451017790489, +05/21/2007 12:00:00,0.891625568050597, +05/22/2007 12:00:00,0.864635032705685, +05/23/2007 12:00:00,0.83648294281275, +05/24/2007 12:00:00,0.808084731263338, +05/25/2007 12:00:00,0.781684799556008, +05/26/2007 12:00:00,0.757159968957586, +05/27/2007 12:00:00,0.735664727236081, +05/28/2007 12:00:00,0.712550114830075, +05/29/2007 12:00:00,0.689758231610799, +05/30/2007 12:00:00,0.667952658558831, +05/31/2007 12:00:00,0.647713456226109, +06/01/2007 12:00:00,0.627328168699757, +06/02/2007 12:00:00,0.878070171892347, +06/03/2007 12:00:00,0.846810076412965, +06/04/2007 12:00:00,0.81956728590648, +06/05/2007 12:00:00,0.798898373916863, +06/06/2007 12:00:00,0.776088238033437, +06/07/2007 12:00:00,0.752434524840251, +06/08/2007 12:00:00,0.729026806153919, +06/09/2007 12:00:00,0.705336517592589, +06/10/2007 12:00:00,0.682027284552626, +06/11/2007 12:00:00,0.660863254289213, +06/12/2007 12:00:00,0.638270241542638, +06/13/2007 12:00:00,0.72954808061557, +06/14/2007 12:00:00,0.709811053908956, +06/15/2007 12:00:00,0.786163342491296, +06/16/2007 12:00:00,0.818167282071019, +06/17/2007 12:00:00,0.793675878505692, +06/18/2007 12:00:00,0.772964883187593, +06/19/2007 12:00:00,1.02010889484415, +06/20/2007 12:00:00,1.14393101504973, +06/21/2007 12:00:00,1.1028937272608, +06/22/2007 12:00:00,1.06512191829466, +06/23/2007 12:00:00,1.03075733751028, +06/24/2007 12:00:00,0.991877988833353, +06/25/2007 12:00:00,0.956420720727575, +06/26/2007 12:00:00,0.969724617869574, +06/27/2007 12:00:00,0.935991915768053, +06/28/2007 12:00:00,0.904035131255106, +06/29/2007 12:00:00,0.897785676387779, +06/30/2007 12:00:00,0.941645477702221, +07/01/2007 12:00:00,0.910109074102086, +07/02/2007 12:00:00,0.879805978536652, +07/03/2007 12:00:00,0.852557569153066, +07/04/2007 12:00:00,0.825814698518641, +07/05/2007 12:00:00,0.808466469880169, +07/06/2007 12:00:00,0.787991161676382, +07/07/2007 12:00:00,0.76431369456421, +07/08/2007 12:00:00,0.821063957217873, +07/09/2007 12:00:00,0.795614679334726, +07/10/2007 12:00:00,0.92590699082283, +07/11/2007 12:00:00,0.932772431173824, +07/12/2007 12:00:00,1.04178769694562, +07/13/2007 12:00:00,1.00765583264789, +07/14/2007 12:00:00,0.977502774464861, +07/15/2007 12:00:00,0.944886655565548, +07/16/2007 12:00:00,0.922191963510068, +07/17/2007 12:00:00,0.894669026997001, +07/18/2007 12:00:00,0.890457947300315, +07/19/2007 12:00:00,0.861473590985989, +07/20/2007 12:00:00,0.837192475205859, +07/21/2007 12:00:00,0.819774579983216, +07/22/2007 12:00:00,0.792501427733186, +07/23/2007 12:00:00,0.870313450236954, +07/24/2007 12:00:00,0.844347684159155, +07/25/2007 12:00:00,0.821315310009052, +07/26/2007 12:00:00,0.803341451652515, +07/27/2007 12:00:00,0.783105932720719, +07/28/2007 12:00:00,0.760329299934533, +07/29/2007 12:00:00,0.796297937745731, +07/30/2007 12:00:00,0.77192444268748, +07/31/2007 12:00:00,0.834818547147518, +08/01/2007 12:00:00,0.811451395690663, +08/02/2007 12:00:00,0.787822860209992, +08/03/2007 12:00:00,0.763982153956251, +08/04/2007 12:00:00,0.803954090650438, +08/05/2007 12:00:00,0.780132439565156, +08/06/2007 12:00:00,1.08520358148724, +08/07/2007 12:00:00,1.04693962652387, +08/08/2007 12:00:00,1.01359520127182, +08/09/2007 12:00:00,0.979808695633492, +08/10/2007 12:00:00,0.946730335459734, +08/11/2007 12:00:00,0.914405793493367, +08/12/2007 12:00:00,0.883665052521796, +08/13/2007 12:00:00,0.853729033369562, +08/14/2007 12:00:00,0.825447398510106, +08/15/2007 12:00:00,0.801983562655711, +08/16/2007 12:00:00,0.776587600040604, +08/17/2007 12:00:00,0.751586820784443, +08/18/2007 12:00:00,0.726423706312249, +08/19/2007 12:00:00,0.70216000592745, +08/20/2007 12:00:00,0.682167185232957, +08/21/2007 12:00:00,0.660685204352661, +08/22/2007 12:00:00,0.640756265223075, +08/23/2007 12:00:00,0.621787361375456, +08/24/2007 12:00:00,0.602618075919977, +08/25/2007 12:00:00,0.620821922862757, +08/26/2007 12:00:00,0.605369630319266, +08/27/2007 12:00:00,0.588773003412729, +08/28/2007 12:00:00,0.572552604195919, +08/29/2007 12:00:00,0.558792837164603, +08/30/2007 12:00:00,0.543838005543293, +08/31/2007 12:00:00,0.556026744423485, +09/01/2007 12:00:00,0.751025772579356, +09/02/2007 12:00:00,0.732811753073726, +09/03/2007 12:00:00,0.713459181097623, +09/04/2007 12:00:00,0.695850892639499, +09/05/2007 12:00:00,0.678115942420131, +09/06/2007 12:00:00,0.659249995176993, +09/07/2007 12:00:00,0.640825100557834, +09/08/2007 12:00:00,0.622536507796501, +09/09/2007 12:00:00,0.606331561966397, +09/10/2007 12:00:00,0.591543773873439, +09/11/2007 12:00:00,0.575690832813461, +09/12/2007 12:00:00,0.560146668142482, +09/13/2007 12:00:00,0.546534017214328, +09/14/2007 12:00:00,0.533099443837433, +09/15/2007 12:00:00,0.828297046785449, +09/16/2007 12:00:00,0.806255449139751, +09/17/2007 12:00:00,0.792390299160033, +09/18/2007 12:00:00,0.773147038462758, +09/19/2007 12:00:00,0.75471760814986, +09/20/2007 12:00:00,0.736444478453527, +09/21/2007 12:00:00,0.718707814669303, +09/22/2007 12:00:00,0.700172055877823, +09/23/2007 12:00:00,0.682963386141001, +09/24/2007 12:00:00,0.668781219159241, +09/25/2007 12:00:00,0.652739286849184, +09/26/2007 12:00:00,0.636377397887914, +09/27/2007 12:00:00,0.620812504107295, +09/28/2007 12:00:00,0.606234452865311, +09/29/2007 12:00:00,0.591948137067842, +09/30/2007 12:00:00,0.578656454806046, +10/01/2007 12:00:00,0.5665526193288, +10/02/2007 12:00:00,0.554057986896854, +10/03/2007 12:00:00,0.542099905678925, +10/04/2007 12:00:00,0.530412574316729, +10/05/2007 12:00:00,0.518859513863369, +10/06/2007 12:00:00,0.51345160322537, +10/07/2007 12:00:00,0.504855086622932, +10/08/2007 12:00:00,0.497207075381527, +10/09/2007 12:00:00,0.487205865235365, +10/10/2007 12:00:00,0.476957128553059, +10/11/2007 12:00:00,0.467082624717105, +10/12/2007 12:00:00,0.458019797404105, +10/13/2007 12:00:00,0.449091158132186, +10/14/2007 12:00:00,0.442299920369024, +10/15/2007 12:00:00,0.434773573127056, +10/16/2007 12:00:00,0.426929483610919, +10/17/2007 12:00:00,0.418782459702551, +10/18/2007 12:00:00,0.411125578024841, +10/19/2007 12:00:00,0.412083157922531, +10/20/2007 12:00:00,0.449164153246959, +10/21/2007 12:00:00,0.442764741730614, +10/22/2007 12:00:00,0.436798082176116, +10/23/2007 12:00:00,0.486787214695106, +10/24/2007 12:00:00,0.705510992694443, +10/25/2007 12:00:00,0.808245831245921, +10/26/2007 12:00:00,0.793045494844701, +10/27/2007 12:00:00,0.781831216690849, +10/28/2007 12:00:00,0.770004302329772, +10/29/2007 12:00:00,0.75707269956211, +10/30/2007 12:00:00,0.743850686453798, +10/31/2007 12:00:00,0.730753862189645, +11/01/2007 12:00:00,0.718474329852533, +11/02/2007 12:00:00,0.705650295056269, +11/03/2007 12:00:00,0.693381021174872, +11/04/2007 12:00:00,0.681270930391155, +11/05/2007 12:00:00,0.67022911388386, +11/06/2007 12:00:00,0.659375748032472, +11/07/2007 12:00:00,0.649636047292093, +11/08/2007 12:00:00,0.638833021832386, +11/09/2007 12:00:00,0.631375573037992, +11/10/2007 12:00:00,0.623151327509421, +11/11/2007 12:00:00,0.615136024122127, +11/12/2007 12:00:00,0.60623658052471, +11/13/2007 12:00:00,0.597980912747411, +11/14/2007 12:00:00,0.589733710271992, +11/15/2007 12:00:00,0.708617719549175, +11/16/2007 12:00:00,0.698136961311573, +11/17/2007 12:00:00,0.686238553118418, +11/18/2007 12:00:00,0.679947899017891, +11/19/2007 12:00:00,0.671293950564384, +11/20/2007 12:00:00,0.661920959739752, +11/21/2007 12:00:00,0.651889508322099, +11/22/2007 12:00:00,0.717731060100136, +11/23/2007 12:00:00,0.791515162865984, +11/24/2007 12:00:00,0.778798004219893, +11/25/2007 12:00:00,0.767391583478161, +11/26/2007 12:00:00,0.774280825593924, +11/27/2007 12:00:00,0.890700694108144, +11/28/2007 12:00:00,0.877170711642788, +11/29/2007 12:00:00,0.863830818705074, +11/30/2007 12:00:00,0.85226655542529, +12/01/2007 12:00:00,0.838992731123383, +12/02/2007 12:00:00,0.826299037487405, +12/03/2007 12:00:00,0.843894104551015, +12/04/2007 12:00:00,0.830784373675802, +12/05/2007 12:00:00,0.817894296742593, +12/06/2007 12:00:00,0.807058658226549, +12/07/2007 12:00:00,0.796094333772636, +12/08/2007 12:00:00,0.7846316541141, +12/09/2007 12:00:00,0.775230805135087, +12/10/2007 12:00:00,0.764138881323215, +12/11/2007 12:00:00,0.752819284427986, +12/12/2007 12:00:00,0.74165211664117, +12/13/2007 12:00:00,0.730394843789055, +12/14/2007 12:00:00,0.718582852439848, +12/15/2007 12:00:00,0.707547100694143, +12/16/2007 12:00:00,0.817384002591491, +12/17/2007 12:00:00,0.805407598711634, +12/18/2007 12:00:00,0.794612454824153, +12/19/2007 12:00:00,0.786775842735444, +12/20/2007 12:00:00,0.7774290238828, +12/21/2007 12:00:00,0.774166027450231, +12/22/2007 12:00:00,0.902713578771279, +12/23/2007 12:00:00,0.942111006168105, +12/24/2007 12:00:00,1.07172430874028, +12/25/2007 12:00:00,1.05573362831207, +12/26/2007 12:00:00,1.03962446745666, +12/27/2007 12:00:00,1.0235058233909, +12/28/2007 12:00:00,1.00897096691955, +12/29/2007 12:00:00,1.35244023985935, +12/30/2007 12:00:00,1.32554306316474, +12/31/2007 12:00:00,1.62170942257962, +01/01/2008 12:00:00,1.58343314002906, +01/02/2008 12:00:00,1.55194361067663, +01/03/2008 12:00:00,1.51955190938746, +01/04/2008 12:00:00,1.4920323590486, +01/05/2008 12:00:00,1.46677206521481, +01/06/2008 12:00:00,1.44063755140028, +01/07/2008 12:00:00,1.41325075308814, +01/08/2008 12:00:00,1.38548461691929, +01/09/2008 12:00:00,1.3562209747319, +01/10/2008 12:00:00,1.32705122772187, +01/11/2008 12:00:00,2.2784764777243, +01/12/2008 12:00:00,2.47746472670578, +01/13/2008 12:00:00,2.40258293244412, +01/14/2008 12:00:00,2.33026488930399, +01/15/2008 12:00:00,2.26267086216525, +01/16/2008 12:00:00,2.20064061740006, +01/17/2008 12:00:00,2.18258316620717, +01/18/2008 12:00:00,2.6745564689308, +01/19/2008 12:00:00,2.5936280347244, +01/20/2008 12:00:00,2.51800566398174, +01/21/2008 12:00:00,2.44191461791984, +01/22/2008 12:00:00,2.37787258686261, +01/23/2008 12:00:00,2.45592638055224, +01/24/2008 12:00:00,2.38691164569826, +01/25/2008 12:00:00,2.31993410892347, +01/26/2008 12:00:00,2.25353687402444, +01/27/2008 12:00:00,2.19415205010482, +01/28/2008 12:00:00,2.13639690978893, +01/29/2008 12:00:00,2.0788244250714, +01/30/2008 12:00:00,2.51832421513264, +01/31/2008 12:00:00,2.48105396701776, +02/01/2008 12:00:00,2.82816917869345, +02/02/2008 12:00:00,3.68802060629742, +02/03/2008 12:00:00,3.53443435871125, +02/04/2008 12:00:00,3.50236362092203, +02/05/2008 12:00:00,3.36258898524745, +02/06/2008 12:00:00,3.22576168082617, +02/07/2008 12:00:00,4.00209735387326, +02/08/2008 12:00:00,3.8046738432436, +02/09/2008 12:00:00,3.64569255903364, +02/10/2008 12:00:00,3.48587183991742, +02/11/2008 12:00:00,3.33814245108533, +02/12/2008 12:00:00,3.20290178824553, +02/13/2008 12:00:00,3.07802390082134, +02/14/2008 12:00:00,3.15192692186549, +02/15/2008 12:00:00,3.03059025855305, +02/16/2008 12:00:00,2.9290308178695, +02/17/2008 12:00:00,2.82311744024978, +02/18/2008 12:00:00,4.0055887426961, +02/19/2008 12:00:00,3.8077563697532, +02/20/2008 12:00:00,3.64070030950622, +02/21/2008 12:00:00,3.49218163958699, +02/22/2008 12:00:00,3.57664767276793, +02/23/2008 12:00:00,3.59968150661823, +02/24/2008 12:00:00,3.44918593093536, +02/25/2008 12:00:00,3.30731773152654, +02/26/2008 12:00:00,3.17303729115636, +02/27/2008 12:00:00,3.6513167485505, +02/28/2008 12:00:00,3.47978314680172, +02/29/2008 12:00:00,3.33121910107109, +03/01/2008 12:00:00,3.26986829516638, +03/02/2008 12:00:00,3.14472904115515, +03/03/2008 12:00:00,3.02559250378207, +03/04/2008 12:00:00,2.91993446591975, +03/05/2008 12:00:00,5.92968290001496, +03/06/2008 12:00:00,5.52109139124203, +03/07/2008 12:00:00,5.20051579770094, +03/08/2008 12:00:00,6.92642313037625, +03/09/2008 12:00:00,6.39824745317152, +03/10/2008 12:00:00,5.94743659162302, +03/11/2008 12:00:00,5.60402974273459, +03/12/2008 12:00:00,5.24290982646282, +03/13/2008 12:00:00,4.91112392400944, +03/14/2008 12:00:00,4.63332075062713, +03/15/2008 12:00:00,4.37718683075275, +03/16/2008 12:00:00,5.51151452804161, +03/17/2008 12:00:00,5.16093638505805, +03/18/2008 12:00:00,4.85800845684284, +03/19/2008 12:00:00,4.60312329719724, +03/20/2008 12:00:00,6.33960583885696, +03/21/2008 12:00:00,5.88703934050764, +03/22/2008 12:00:00,5.48550970982887, +03/23/2008 12:00:00,5.13990129257686, +03/24/2008 12:00:00,4.81416914419434, +03/25/2008 12:00:00,4.51643690180462, +03/26/2008 12:00:00,4.26936758798486, +03/27/2008 12:00:00,4.06032655531733, +03/28/2008 12:00:00,3.85502190833923, +03/29/2008 12:00:00,3.65313815335296, +03/30/2008 12:00:00,3.48346724460388, +03/31/2008 12:00:00,3.31791974613228, +04/01/2008 12:00:00,3.18093633177943, +04/02/2008 12:00:00,3.10304821008356, +04/03/2008 12:00:00,2.9760367211774, +04/04/2008 12:00:00,2.83872019333927, +04/05/2008 12:00:00,3.14368750328143, +04/06/2008 12:00:00,3.51187611185015, +04/07/2008 12:00:00,3.3415675946505, +04/08/2008 12:00:00,3.20418522479053, +04/09/2008 12:00:00,3.06060772318133, +04/10/2008 12:00:00,2.92452818870475, +04/11/2008 12:00:00,2.80709932765685, +04/12/2008 12:00:00,2.74860798064048, +04/13/2008 12:00:00,2.63580419844424, +04/14/2008 12:00:00,2.52258035863299, +04/15/2008 12:00:00,2.42436804889057, +04/16/2008 12:00:00,2.3437998240934, +04/17/2008 12:00:00,2.27087755330831, +04/18/2008 12:00:00,2.19051965882327, +04/19/2008 12:00:00,2.1030532096789, +04/20/2008 12:00:00,2.32885782091631, +04/21/2008 12:00:00,2.22745210957155, +04/22/2008 12:00:00,2.14973301114911, +04/23/2008 12:00:00,2.0734966651788, +04/24/2008 12:00:00,1.99204778115788, +04/25/2008 12:00:00,1.91064701950219, +04/26/2008 12:00:00,1.83546415000708, +04/27/2008 12:00:00,1.76471996133612, +04/28/2008 12:00:00,1.76151603265798, +04/29/2008 12:00:00,1.86742939316476, +04/30/2008 12:00:00,1.80533906074286, +05/01/2008 12:00:00,1.75493040980313, +05/02/2008 12:00:00,1.70197467372051, +05/03/2008 12:00:00,1.63871197782836, +05/04/2008 12:00:00,1.57745757332357, +05/05/2008 12:00:00,1.52284510046587, +05/06/2008 12:00:00,1.48423918283422, +05/07/2008 12:00:00,1.43113201307302, +05/08/2008 12:00:00,1.38055414032526, +05/09/2008 12:00:00,1.45035119948269, +05/10/2008 12:00:00,1.47303269138179, +05/11/2008 12:00:00,1.42460824282189, +05/12/2008 12:00:00,1.75868501239465, +05/13/2008 12:00:00,1.6937958519288, +05/14/2008 12:00:00,1.64300671446876, +05/15/2008 12:00:00,1.59059671376115, +05/16/2008 12:00:00,1.81953726882733, +05/17/2008 12:00:00,1.75810516669594, +05/18/2008 12:00:00,1.70565505045961, +05/19/2008 12:00:00,1.70617707355752, +05/20/2008 12:00:00,1.6427760275665, +05/21/2008 12:00:00,1.89726042981676, +05/22/2008 12:00:00,1.82107260368597, +05/23/2008 12:00:00,1.74799282952943, +05/24/2008 12:00:00,1.69397063625594, +05/25/2008 12:00:00,1.62444054063277, +05/26/2008 12:00:00,1.55960033108499, +05/27/2008 12:00:00,1.5018060063081, +05/28/2008 12:00:00,1.44626243612564, +05/29/2008 12:00:00,1.45917423850523, +05/30/2008 12:00:00,1.40379572717082, +05/31/2008 12:00:00,1.36339707423705, +06/01/2008 12:00:00,1.31718711860214, +06/02/2008 12:00:00,1.34129811045383, +06/03/2008 12:00:00,1.29503265803019, +06/04/2008 12:00:00,1.25783444272138, +06/05/2008 12:00:00,1.2130927701965, +06/06/2008 12:00:00,1.17126561906552, +06/07/2008 12:00:00,1.12803505479956, +06/08/2008 12:00:00,1.08564754823351, +06/09/2008 12:00:00,1.04441857440237, +06/10/2008 12:00:00,1.00646080925261, +06/11/2008 12:00:00,0.967545354863471, +06/12/2008 12:00:00,0.931645818482356, +06/13/2008 12:00:00,0.898472233124753, +06/14/2008 12:00:00,0.867874919747454, +06/15/2008 12:00:00,0.882120018355824, +06/16/2008 12:00:00,0.85420096085033, +06/17/2008 12:00:00,0.85449810729043, +06/18/2008 12:00:00,0.827093360519607, +06/19/2008 12:00:00,0.800978674156263, +06/20/2008 12:00:00,0.775955421351473, +06/21/2008 12:00:00,0.751103659238991, +06/22/2008 12:00:00,0.738541033957311, +06/23/2008 12:00:00,0.714509642545779, +06/24/2008 12:00:00,0.694367662445664, +06/25/2008 12:00:00,0.673602113856096, +06/26/2008 12:00:00,0.651744879461196, +06/27/2008 12:00:00,0.629980217741801, +06/28/2008 12:00:00,0.608968861105812, +06/29/2008 12:00:00,0.666363381622643, +06/30/2008 12:00:00,0.685863953972772, +07/01/2008 12:00:00,0.676782343276617, +07/02/2008 12:00:00,0.658272991783943, +07/03/2008 12:00:00,0.639904776951495, +07/04/2008 12:00:00,0.621092486706397, +07/05/2008 12:00:00,0.601484827791334, +07/06/2008 12:00:00,0.582798070737767, +07/07/2008 12:00:00,0.606627055364473, +07/08/2008 12:00:00,0.58951060540168, +07/09/2008 12:00:00,0.571475202645035, +07/10/2008 12:00:00,0.644624129817062, +07/11/2008 12:00:00,0.626287059072729, +07/12/2008 12:00:00,0.60709432470113, +07/13/2008 12:00:00,0.591061625871859, +07/14/2008 12:00:00,0.582525391829322, +07/15/2008 12:00:00,0.564678673785188, +07/16/2008 12:00:00,0.551838437526808, +07/17/2008 12:00:00,0.535804494466149, +07/18/2008 12:00:00,0.519773153433732, +07/19/2008 12:00:00,0.504601513172935, +07/20/2008 12:00:00,0.489833950871934, +07/21/2008 12:00:00,0.474571819737593, +07/22/2008 12:00:00,0.515250207785292, +07/23/2008 12:00:00,0.499003484996407, +07/24/2008 12:00:00,0.482657620077909, +07/25/2008 12:00:00,0.467973307274269, +07/26/2008 12:00:00,0.454516003326162, +07/27/2008 12:00:00,0.441412577867509, +07/28/2008 12:00:00,0.430374517517938, +07/29/2008 12:00:00,0.46851779258694, +07/30/2008 12:00:00,0.473336955242223, +07/31/2008 12:00:00,0.458931994849856, +08/01/2008 12:00:00,0.47752207859804, +08/02/2008 12:00:00,0.462918332821787, +08/03/2008 12:00:00,0.450230208282204, +08/04/2008 12:00:00,0.437061660995335, +08/05/2008 12:00:00,0.423447916750102, +08/06/2008 12:00:00,0.411113435457178, +08/07/2008 12:00:00,0.39868511088617, +08/08/2008 12:00:00,0.395924037988698, +08/09/2008 12:00:00,0.384538497060665, +08/10/2008 12:00:00,0.374012213294834, +08/11/2008 12:00:00,0.364882468871884, +08/12/2008 12:00:00,0.355177329623743, +08/13/2008 12:00:00,0.346263151208967, +08/14/2008 12:00:00,0.336878333938262, +08/15/2008 12:00:00,0.328355408457806, +08/16/2008 12:00:00,0.320673400751003, +08/17/2008 12:00:00,0.336737338388267, +08/18/2008 12:00:00,0.327933855349592, +08/19/2008 12:00:00,0.320933181654001, +08/20/2008 12:00:00,0.313122653612846, +08/21/2008 12:00:00,0.305532063049375, +08/22/2008 12:00:00,0.297361926761859, +08/23/2008 12:00:00,0.289638177792923, +08/24/2008 12:00:00,0.282681635923594, +08/25/2008 12:00:00,0.27657765334585, +08/26/2008 12:00:00,0.51477516975907, +08/27/2008 12:00:00,1.74556574252234, +08/28/2008 12:00:00,1.72024656947702, +08/29/2008 12:00:00,1.67360461149361, +08/30/2008 12:00:00,1.62171450069439, +08/31/2008 12:00:00,1.57031500855495, +09/01/2008 12:00:00,1.51291251558435, +09/02/2008 12:00:00,1.45659045336693, +09/03/2008 12:00:00,1.40625769798848, +09/04/2008 12:00:00,1.36415506224446, +09/05/2008 12:00:00,1.32021852662209, +09/06/2008 12:00:00,1.27595627893086, +09/07/2008 12:00:00,1.23483946616217, +09/08/2008 12:00:00,1.1942878873991, +09/09/2008 12:00:00,1.15741913467528, +09/10/2008 12:00:00,1.12055588089175, +09/11/2008 12:00:00,1.08494180429579, +09/12/2008 12:00:00,1.0803758590596, +09/13/2008 12:00:00,1.07064904890693, +09/14/2008 12:00:00,1.04509949435795, +09/15/2008 12:00:00,1.02019510675308, +09/16/2008 12:00:00,0.992281859949782, +09/17/2008 12:00:00,0.967107178901804, +09/18/2008 12:00:00,0.943468335436015, +09/19/2008 12:00:00,0.924362692914211, +09/20/2008 12:00:00,0.905147212534548, +09/21/2008 12:00:00,0.882314587923573, +09/22/2008 12:00:00,0.860889844865001, +09/23/2008 12:00:00,0.840420690698196, +09/24/2008 12:00:00,0.82154889016159, +09/25/2008 12:00:00,0.800505385623806, +09/26/2008 12:00:00,0.781071431822695, +09/27/2008 12:00:00,0.762013225325206, +09/28/2008 12:00:00,0.743811343136005, +09/29/2008 12:00:00,0.729328581190996, +09/30/2008 12:00:00,0.715985145199657, +10/01/2008 12:00:00,0.70007309592161, +10/02/2008 12:00:00,0.684559859536993, +10/03/2008 12:00:00,0.668921428246921, +10/04/2008 12:00:00,0.656228799118204, +10/05/2008 12:00:00,0.643272619198948, +10/06/2008 12:00:00,0.629844510358986, +10/07/2008 12:00:00,0.616238405362757, +10/08/2008 12:00:00,0.603225437930304, +10/09/2008 12:00:00,0.888454679959009, +10/10/2008 12:00:00,0.868801542379713, +10/11/2008 12:00:00,0.85619620999977, +10/12/2008 12:00:00,0.838123830451401, +10/13/2008 12:00:00,0.821135800183935, +10/14/2008 12:00:00,0.805328981092898, +10/15/2008 12:00:00,0.790027570392236, +10/16/2008 12:00:00,0.774368503697681, +10/17/2008 12:00:00,0.756744473636657, +10/18/2008 12:00:00,0.739750356979723, +10/19/2008 12:00:00,0.724407040999288, +10/20/2008 12:00:00,0.714399680984032, +10/21/2008 12:00:00,0.703781427593984, +10/22/2008 12:00:00,0.691234638853293, +10/23/2008 12:00:00,0.678866450167222, +10/24/2008 12:00:00,0.666451157053762, +10/25/2008 12:00:00,0.927898519449212, +10/26/2008 12:00:00,0.912114959341092, +10/27/2008 12:00:00,0.898767687938128, +10/28/2008 12:00:00,0.883863168684866, +10/29/2008 12:00:00,0.866496219839701, +10/30/2008 12:00:00,0.853624825714159, +10/31/2008 12:00:00,0.841974846596809, +11/01/2008 12:00:00,0.827719007687157, +11/02/2008 12:00:00,0.812948654548437, +11/03/2008 12:00:00,0.797836767200847, +11/04/2008 12:00:00,0.782662272628321, +11/05/2008 12:00:00,0.767793956055213, +11/06/2008 12:00:00,0.753663585808423, +11/07/2008 12:00:00,0.739625710377683, +11/08/2008 12:00:00,0.725831492173674, +11/09/2008 12:00:00,0.712461285239126, +11/10/2008 12:00:00,0.699808137700638, +11/11/2008 12:00:00,0.689478040280628, +11/12/2008 12:00:00,0.679640769859423, +11/13/2008 12:00:00,0.669339990887855, +11/14/2008 12:00:00,0.86396654786419, +11/15/2008 12:00:00,0.901844270153214, +11/16/2008 12:00:00,0.967378789263488, +11/17/2008 12:00:00,0.951454602701777, +11/18/2008 12:00:00,0.938827047687782, +11/19/2008 12:00:00,0.92689786508474, +11/20/2008 12:00:00,0.912263535130391, +11/21/2008 12:00:00,0.901214143717318, +11/22/2008 12:00:00,0.887976437628734, +11/23/2008 12:00:00,0.873034495279116, +11/24/2008 12:00:00,0.862852760558896, +11/25/2008 12:00:00,1.06777605237087, +11/26/2008 12:00:00,1.05001804574025, +11/27/2008 12:00:00,1.03526211064563, +11/28/2008 12:00:00,1.0203036618264, +11/29/2008 12:00:00,1.00356319690318, +11/30/2008 12:00:00,1.03548283780351, +12/01/2008 12:00:00,1.10982932117273, +12/02/2008 12:00:00,1.10993966682857, +12/03/2008 12:00:00,1.0943892218804, +12/04/2008 12:00:00,1.08103284917556, +12/05/2008 12:00:00,1.06601376616211, +12/06/2008 12:00:00,1.04875731761672, +12/07/2008 12:00:00,1.03328957245169, +12/08/2008 12:00:00,1.01823009463209, +12/09/2008 12:00:00,1.00418393908147, +12/10/2008 12:00:00,1.13293932305005, +12/11/2008 12:00:00,1.97456277382284, +12/12/2008 12:00:00,3.25595498564641, +12/13/2008 12:00:00,3.1383443675541, +12/14/2008 12:00:00,3.02890502547652, +12/15/2008 12:00:00,2.92595194374391, +12/16/2008 12:00:00,2.90153991422785, +12/17/2008 12:00:00,2.80412487810988, +12/18/2008 12:00:00,3.03877524534319, +12/19/2008 12:00:00,2.93281234969887, +12/20/2008 12:00:00,2.83288365586527, +12/21/2008 12:00:00,2.87140259815918, +12/22/2008 12:00:00,2.99292521512205, +12/23/2008 12:00:00,2.89358149717571, +12/24/2008 12:00:00,2.80480704769127, +12/25/2008 12:00:00,3.04232123310842, +12/26/2008 12:00:00,2.93509747999121, +12/27/2008 12:00:00,2.83263205836787, +12/28/2008 12:00:00,2.73793393812588, +12/29/2008 12:00:00,3.12042044665252, +12/30/2008 12:00:00,3.008351266437, +12/31/2008 12:00:00,2.90300159353186, +01/01/2009 12:00:00,2.80289943869855, +01/02/2009 12:00:00,2.7041106493657, +01/03/2009 12:00:00,2.62209969535649, +01/04/2009 12:00:00,2.54359386013227, +01/05/2009 12:00:00,2.61996160588201, +01/06/2009 12:00:00,2.78355050537363, +01/07/2009 12:00:00,7.46582456029284, +01/08/2009 12:00:00,7.6320115846272, +01/09/2009 12:00:00,7.03367071136161, +01/10/2009 12:00:00,6.56238380666296, +01/11/2009 12:00:00,6.22693418129301, +01/12/2009 12:00:00,5.81597531986719, +01/13/2009 12:00:00,5.45536423517622, +01/14/2009 12:00:00,5.14817911552922, +01/15/2009 12:00:00,4.8657431880638, +01/16/2009 12:00:00,4.60939420146381, +01/17/2009 12:00:00,4.37886356996358, +01/18/2009 12:00:00,4.18028703696143, +01/19/2009 12:00:00,4.00774248028455, +01/20/2009 12:00:00,3.83794999096009, +01/21/2009 12:00:00,3.67718666020799, +01/22/2009 12:00:00,3.53388895441182, +01/23/2009 12:00:00,3.40398932870903, +01/24/2009 12:00:00,3.27717345699112, +01/25/2009 12:00:00,3.15151170699061, +01/26/2009 12:00:00,3.02804261441003, +01/27/2009 12:00:00,2.918741152508, +01/28/2009 12:00:00,2.81863343246298, +01/29/2009 12:00:00,3.06292014244507, +01/30/2009 12:00:00,2.94798266818189, +01/31/2009 12:00:00,2.8460527895671, +02/01/2009 12:00:00,2.74894573143036, +02/02/2009 12:00:00,2.66408378566335, +02/03/2009 12:00:00,2.60055899448743, +02/04/2009 12:00:00,2.51399537023693, +02/05/2009 12:00:00,2.43840422427005, +02/06/2009 12:00:00,2.37033149890143, +02/07/2009 12:00:00,2.30943339186699, +02/08/2009 12:00:00,2.24656384842639, +02/09/2009 12:00:00,2.17837437031213, +02/10/2009 12:00:00,2.11076670569943, +02/11/2009 12:00:00,2.04501005134276, +02/12/2009 12:00:00,2.42550879286207, +02/13/2009 12:00:00,2.34580442246385, +02/14/2009 12:00:00,2.28049514454866, +02/15/2009 12:00:00,2.21146045762476, +02/16/2009 12:00:00,2.14093000471382, +02/17/2009 12:00:00,2.07950745478315, +02/18/2009 12:00:00,2.02028861016228, +02/19/2009 12:00:00,3.03830245931976, +02/20/2009 12:00:00,2.92481586998199, +02/21/2009 12:00:00,2.81448886394252, +02/22/2009 12:00:00,2.72312465236121, +02/23/2009 12:00:00,2.6337447601827, +02/24/2009 12:00:00,2.54555026794861, +02/25/2009 12:00:00,2.46989109026087, +02/26/2009 12:00:00,2.39236314749357, +02/27/2009 12:00:00,2.31572753558881, +02/28/2009 12:00:00,2.56695112892769, +03/01/2009 12:00:00,2.8725073738509, +03/02/2009 12:00:00,2.95698919848071, +03/03/2009 12:00:00,2.85557366882201, +03/04/2009 12:00:00,2.76818193502894, +03/05/2009 12:00:00,2.67638904994034, +03/06/2009 12:00:00,2.58718234673613, +03/07/2009 12:00:00,2.49872836128085, +03/08/2009 12:00:00,2.40925514086058, +03/09/2009 12:00:00,2.32600675140895, +03/10/2009 12:00:00,2.23400471266156, +03/11/2009 12:00:00,2.14900062636711, +03/12/2009 12:00:00,2.07329741369893, +03/13/2009 12:00:00,2.00097391427269, +03/14/2009 12:00:00,1.93458787040719, +03/15/2009 12:00:00,2.56599489005957, +03/16/2009 12:00:00,2.87355240343952, +03/17/2009 12:00:00,2.79662499600674, +03/18/2009 12:00:00,2.68959177158752, +03/19/2009 12:00:00,2.59561612584333, +03/20/2009 12:00:00,2.49264401532824, +03/21/2009 12:00:00,2.39800502584704, +03/22/2009 12:00:00,2.30528629180143, +03/23/2009 12:00:00,2.22600484372561, +03/24/2009 12:00:00,2.15423701483212, +03/25/2009 12:00:00,2.07753432120583, +03/26/2009 12:00:00,2.67209489490158, +03/27/2009 12:00:00,2.93802466069794, +03/28/2009 12:00:00,3.76971201619613, +03/29/2009 12:00:00,4.39840541482311, +03/30/2009 12:00:00,4.25767510173268, +03/31/2009 12:00:00,4.04987669374194, +04/01/2009 12:00:00,3.85877634733683, +04/02/2009 12:00:00,3.99806198737091, +04/03/2009 12:00:00,4.29322566647195, +04/04/2009 12:00:00,4.44762444553097, +04/05/2009 12:00:00,4.22083554052711, +04/06/2009 12:00:00,4.00876154157103, +04/07/2009 12:00:00,3.77727738443434, +04/08/2009 12:00:00,3.56810743952353, +04/09/2009 12:00:00,3.42346499560081, +04/10/2009 12:00:00,3.29515045545072, +04/11/2009 12:00:00,4.99396641563315, +04/12/2009 12:00:00,4.66152166339236, +04/13/2009 12:00:00,4.39980737393009, +04/14/2009 12:00:00,4.49568146565135, +04/15/2009 12:00:00,4.43166420524479, +04/16/2009 12:00:00,4.20811409440297, +04/17/2009 12:00:00,3.97811141815495, +04/18/2009 12:00:00,3.76465128112086, +04/19/2009 12:00:00,3.57163733468004, +04/20/2009 12:00:00,5.04604553183819, +04/21/2009 12:00:00,4.85103952107041, +04/22/2009 12:00:00,4.5717452135401, +04/23/2009 12:00:00,4.31050279898675, +04/24/2009 12:00:00,4.06826251291903, +04/25/2009 12:00:00,3.84524334020573, +04/26/2009 12:00:00,3.61208929953369, +04/27/2009 12:00:00,3.39718198016754, +04/28/2009 12:00:00,3.20461350699811, +04/29/2009 12:00:00,3.03516778065553, +04/30/2009 12:00:00,2.88392444791455, +05/01/2009 12:00:00,2.74414277920368, +05/02/2009 12:00:00,2.82711682344155, +05/03/2009 12:00:00,2.72438955253809, +05/04/2009 12:00:00,3.67990524234873, +05/05/2009 12:00:00,3.50790177957793, +05/06/2009 12:00:00,3.3392791358103, +05/07/2009 12:00:00,4.16006496786599, +05/08/2009 12:00:00,3.94576326201909, +05/09/2009 12:00:00,4.21731100388028, +05/10/2009 12:00:00,3.96398542376077, +05/11/2009 12:00:00,3.73045740009615, +05/12/2009 12:00:00,3.5230685365321, +05/13/2009 12:00:00,3.33380214959802, +05/14/2009 12:00:00,3.19290062165488, +05/15/2009 12:00:00,3.03561805675132, +05/16/2009 12:00:00,3.69684234540319, +05/17/2009 12:00:00,4.54933183540891, +05/18/2009 12:00:00,4.28816591452923, +05/19/2009 12:00:00,4.02930139260987, +05/20/2009 12:00:00,3.84910948765114, +05/21/2009 12:00:00,3.63349263059779, +05/22/2009 12:00:00,3.43191940557557, +05/23/2009 12:00:00,3.24200458778376, +05/24/2009 12:00:00,3.07675630373956, +05/25/2009 12:00:00,3.1044403677816, +05/26/2009 12:00:00,3.38573314440649, +05/27/2009 12:00:00,3.91962307847213, +05/28/2009 12:00:00,3.89347141488504, +05/29/2009 12:00:00,3.99148388848773, +05/30/2009 12:00:00,3.76942184908111, +05/31/2009 12:00:00,3.55876933377487, +06/01/2009 12:00:00,3.36565741798328, +06/02/2009 12:00:00,3.1767176811875, +06/03/2009 12:00:00,3.00250268833175, +06/04/2009 12:00:00,2.83649778548658, +06/05/2009 12:00:00,2.70654927920206, +06/06/2009 12:00:00,2.62973202750061, +06/07/2009 12:00:00,2.51897141583421, +06/08/2009 12:00:00,2.40935526134384, +06/09/2009 12:00:00,2.29635308892832, +06/10/2009 12:00:00,2.19335953801801, +06/11/2009 12:00:00,2.09206279874507, +06/12/2009 12:00:00,2.06226589852803, +06/13/2009 12:00:00,2.05260141762906, +06/14/2009 12:00:00,1.98290309153154, +06/15/2009 12:00:00,1.90154135669114, +06/16/2009 12:00:00,1.82437758634877, +06/17/2009 12:00:00,1.74997343821844, +06/18/2009 12:00:00,1.83389864002862, +06/19/2009 12:00:00,1.75448777892111, +06/20/2009 12:00:00,1.68062678875404, +06/21/2009 12:00:00,1.61118303110117, +06/22/2009 12:00:00,1.78642288753528, +06/23/2009 12:00:00,1.70478076562469, +06/24/2009 12:00:00,1.63621902653771, +06/25/2009 12:00:00,1.57523995809026, +06/26/2009 12:00:00,1.51128368400104, +06/27/2009 12:00:00,1.44943798833648, +06/28/2009 12:00:00,1.3916377346082, +06/29/2009 12:00:00,1.33653307640439, +06/30/2009 12:00:00,1.28317300017499, +07/01/2009 12:00:00,1.23246259392128, +07/02/2009 12:00:00,1.18975451883309, +07/03/2009 12:00:00,1.14574263623733, +07/04/2009 12:00:00,1.10503178912101, +07/05/2009 12:00:00,1.06606101901636, +07/06/2009 12:00:00,1.11280071228395, +07/07/2009 12:00:00,1.07309770833249, +07/08/2009 12:00:00,2.1681824401356, +07/09/2009 12:00:00,2.31318823341573, +07/10/2009 12:00:00,2.20976750361762, +07/11/2009 12:00:00,2.12106261139406, +07/12/2009 12:00:00,2.03555211026856, +07/13/2009 12:00:00,1.96917900866595, +07/14/2009 12:00:00,1.88609068354901, +07/15/2009 12:00:00,1.80910640550846, +07/16/2009 12:00:00,1.74038369317999, +07/17/2009 12:00:00,1.67045146453045, +07/18/2009 12:00:00,1.60496958968116, +07/19/2009 12:00:00,1.54673167993253, +07/20/2009 12:00:00,1.4884515020127, +07/21/2009 12:00:00,1.43793543781384, +07/22/2009 12:00:00,1.38894388828398, +07/23/2009 12:00:00,1.33903500876256, +07/24/2009 12:00:00,1.29184747607667, +07/25/2009 12:00:00,1.24941120413544, +07/26/2009 12:00:00,1.29541850393094, +07/27/2009 12:00:00,1.2481041702966, +07/28/2009 12:00:00,1.20065173139641, +07/29/2009 12:00:00,1.21316579524001, +07/30/2009 12:00:00,1.28786230751048, +07/31/2009 12:00:00,1.24433484361333, +08/01/2009 12:00:00,1.23179811842537, +08/02/2009 12:00:00,1.19107651296225, +08/03/2009 12:00:00,1.16064756186698, +08/04/2009 12:00:00,1.12169855923167, +08/05/2009 12:00:00,1.08978194460758, +08/06/2009 12:00:00,1.05388830284143, +08/07/2009 12:00:00,1.01799595178909, +08/08/2009 12:00:00,0.984935401578188, +08/09/2009 12:00:00,0.952994657079554, +08/10/2009 12:00:00,0.921508756339923, +08/11/2009 12:00:00,0.892425187027258, +08/12/2009 12:00:00,0.880893638176151, +08/13/2009 12:00:00,0.878277416549088, +08/14/2009 12:00:00,0.850321312202749, +08/15/2009 12:00:00,0.828516653011736, +08/16/2009 12:00:00,0.805034290784439, +08/17/2009 12:00:00,0.7822997069577, +08/18/2009 12:00:00,0.784953328901182, +08/19/2009 12:00:00,0.862634090357225, +08/20/2009 12:00:00,0.938652666392441, +08/21/2009 12:00:00,1.12127156215165, +08/22/2009 12:00:00,1.08732949130758, +08/23/2009 12:00:00,1.0570075876423, +08/24/2009 12:00:00,1.02517097138793, +08/25/2009 12:00:00,0.998532767949704, +08/26/2009 12:00:00,0.969499153149207, +08/27/2009 12:00:00,0.942982960488869, +08/28/2009 12:00:00,0.997692256796801, +08/29/2009 12:00:00,1.02022480747729, +08/30/2009 12:00:00,0.99064682237323, +08/31/2009 12:00:00,1.06852791952739, +09/01/2009 12:00:00,1.16698648804499, +09/02/2009 12:00:00,1.1343184452132, +09/03/2009 12:00:00,1.10637657662436, +09/04/2009 12:00:00,1.07853540794364, +09/05/2009 12:00:00,1.04899807351852, +09/06/2009 12:00:00,1.01961988208241, +09/07/2009 12:00:00,0.99049911258524, +09/08/2009 12:00:00,0.961818091771247, +09/09/2009 12:00:00,0.938289016147652, +09/10/2009 12:00:00,0.912852966331749, +09/11/2009 12:00:00,0.889147020479724, +09/12/2009 12:00:00,0.867413076439296, +09/13/2009 12:00:00,0.847528761465156, +09/14/2009 12:00:00,0.826913548668623, +09/15/2009 12:00:00,0.8060447743428, +09/16/2009 12:00:00,0.922383178573983, +09/17/2009 12:00:00,1.21396912013318, +09/18/2009 12:00:00,1.22659047288235, +09/19/2009 12:00:00,1.23754125870063, +09/20/2009 12:00:00,1.21504914998777, +09/21/2009 12:00:00,4.2207121684258, +09/22/2009 12:00:00,13.2993844551638, +09/23/2009 12:00:00,11.5779783514825, +09/24/2009 12:00:00,10.2464716440287, +09/25/2009 12:00:00,9.12221736485672, +09/26/2009 12:00:00,8.27676466271233, +09/27/2009 12:00:00,11.9206039595786, +09/28/2009 12:00:00,10.4263250427669, +09/29/2009 12:00:00,9.39399458905049, +09/30/2009 12:00:00,8.45596782008267, +10/01/2009 12:00:00,7.64558265663245, +10/02/2009 12:00:00,6.99614870891729, +10/03/2009 12:00:00,6.43069135451955, +10/04/2009 12:00:00,5.96067207937335, +10/05/2009 12:00:00,5.69162137609495, +10/06/2009 12:00:00,6.81497635890507, +10/07/2009 12:00:00,6.31094030197113, +10/08/2009 12:00:00,6.27409676367085, +10/09/2009 12:00:00,5.82375441134522, +10/10/2009 12:00:00,5.45311156801153, +10/11/2009 12:00:00,5.08902107534511, +10/12/2009 12:00:00,4.77864655267005, +10/13/2009 12:00:00,5.78966884394946, +10/14/2009 12:00:00,5.42143171719224, +10/15/2009 12:00:00,5.88744313920072, +10/16/2009 12:00:00,5.84241557704965, +10/17/2009 12:00:00,5.48076683259561, +10/18/2009 12:00:00,5.1416906794734, +10/19/2009 12:00:00,4.84515935372415, +10/20/2009 12:00:00,4.60026332673282, +10/21/2009 12:00:00,4.36961213220758, +10/22/2009 12:00:00,4.13848731229206, +10/23/2009 12:00:00,3.94409535836684, +10/24/2009 12:00:00,6.45708473019642, +10/25/2009 12:00:00,5.98260354701767, +10/26/2009 12:00:00,5.57621191399595, +10/27/2009 12:00:00,5.22842454413694, +10/28/2009 12:00:00,4.94171654303052, +10/29/2009 12:00:00,7.39273255589736, +10/30/2009 12:00:00,6.80347753005329, diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/CompositionRun.log b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/CompositionRun.log new file mode 100644 index 00000000..dc18cf2e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/CompositionRun.log differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/DbWriter_Test.opr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/DbWriter_Test.opr new file mode 100644 index 00000000..31250782 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/DbWriter_Test.opr @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/LoadCalculation.opr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/LoadCalculation.opr new file mode 100644 index 00000000..c6ee50c8 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/LoadCalculation.opr @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/SR_to_ET.opr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/SR_to_ET.opr new file mode 100644 index 00000000..b2017f65 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/SR_to_ET.opr @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/SR_to_ET_Dbwriter.opr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/SR_to_ET_Dbwriter.opr new file mode 100644 index 00000000..442ee888 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/SR_to_ET_Dbwriter.opr @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/SanMarcos_LoadCalc.opr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/SanMarcos_LoadCalc.opr new file mode 100644 index 00000000..1da07364 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/SanMarcos_LoadCalc.opr @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/SmithBranchModel.opr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/SmithBranchModel.opr new file mode 100644 index 00000000..9f85af68 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/SmithBranchModel.opr @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/SmithBranchModel_RandomInput.opr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/SmithBranchModel_RandomInput.opr new file mode 100644 index 00000000..35d6a7b0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/SmithBranchModel_RandomInput.opr @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/Water_Sediment_Concentration.opr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/Water_Sediment_Concentration.opr new file mode 100644 index 00000000..6bb1cc46 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/Water_Sediment_Concentration.opr @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/CompositionRun.log b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/CompositionRun.log new file mode 100644 index 00000000..14bdef59 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/CompositionRun.log differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/DbReader.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/DbReader.omi new file mode 100644 index 00000000..ff046dfb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/DbReader.omi @@ -0,0 +1,6 @@ + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/DbWriter.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/DbWriter.omi new file mode 100644 index 00000000..423f0f58 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/DbWriter.omi @@ -0,0 +1,6 @@ + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/HydroLink.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/HydroLink.omi new file mode 100644 index 00000000..784fbe14 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/HydroLink.omi @@ -0,0 +1,6 @@ + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/SanMarcusData.sqlite b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/SanMarcusData.sqlite new file mode 100644 index 00000000..1684ada3 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/SanMarcusData.sqlite differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/configuration_output.csv b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/configuration_output.csv new file mode 100644 index 00000000..a6153fd1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/configuration_output.csv @@ -0,0 +1,720 @@ +Precipitation,0,0,6/21/2008 1:00:00 AM +Precipitation,1,0,6/21/2008 1:00:00 AM +Precipitation,2,0,6/21/2008 1:00:00 AM +Precipitation,3,0,6/21/2008 1:00:00 AM +Precipitation,4,0,6/21/2008 1:00:00 AM +Precipitation,5,0,6/21/2008 1:00:00 AM +Precipitation,6,0,6/21/2008 1:00:00 AM +Precipitation,7,0,6/21/2008 1:00:00 AM +Precipitation,8,0,6/21/2008 1:00:00 AM +Precipitation,9,0,6/21/2008 1:00:00 AM +Precipitation,10,0,6/21/2008 1:00:00 AM +Precipitation,11,0,6/21/2008 1:00:00 AM +Precipitation,12,0.15,6/21/2008 1:00:00 AM +Precipitation,13,0,6/21/2008 1:00:00 AM +Precipitation,14,0,6/21/2008 1:00:00 AM +ExcessPrecip,0,0,6/21/2008 1:00:00 AM +ExcessPrecip,1,0,6/21/2008 1:00:00 AM +ExcessPrecip,2,0,6/21/2008 1:00:00 AM +ExcessPrecip,3,0,6/21/2008 1:00:00 AM +ExcessPrecip,4,0,6/21/2008 1:00:00 AM +ExcessPrecip,5,0,6/21/2008 1:00:00 AM +ExcessPrecip,6,0,6/21/2008 1:00:00 AM +ExcessPrecip,7,0,6/21/2008 1:00:00 AM +ExcessPrecip,8,0,6/21/2008 1:00:00 AM +ExcessPrecip,9,0,6/21/2008 1:00:00 AM +ExcessPrecip,10,0,6/21/2008 1:00:00 AM +ExcessPrecip,11,0,6/21/2008 1:00:00 AM +ExcessPrecip,12,0,6/21/2008 1:00:00 AM +ExcessPrecip,13,0,6/21/2008 1:00:00 AM +ExcessPrecip,14,0,6/21/2008 1:00:00 AM +Precipitation,0,0,6/21/2008 1:05:00 AM +Precipitation,1,0,6/21/2008 1:05:00 AM +Precipitation,2,0,6/21/2008 1:05:00 AM +Precipitation,3,0,6/21/2008 1:05:00 AM +Precipitation,4,0,6/21/2008 1:05:00 AM +Precipitation,5,0,6/21/2008 1:05:00 AM +Precipitation,6,0,6/21/2008 1:05:00 AM +Precipitation,7,0,6/21/2008 1:05:00 AM +Precipitation,8,0,6/21/2008 1:05:00 AM +Precipitation,9,0,6/21/2008 1:05:00 AM +Precipitation,10,0,6/21/2008 1:05:00 AM +Precipitation,11,0,6/21/2008 1:05:00 AM +Precipitation,12,0.15,6/21/2008 1:05:00 AM +Precipitation,13,0,6/21/2008 1:05:00 AM +Precipitation,14,0,6/21/2008 1:05:00 AM +ExcessPrecip,0,0,6/21/2008 1:05:00 AM +ExcessPrecip,1,0,6/21/2008 1:05:00 AM +ExcessPrecip,2,0,6/21/2008 1:05:00 AM +ExcessPrecip,3,0,6/21/2008 1:05:00 AM +ExcessPrecip,4,0,6/21/2008 1:05:00 AM +ExcessPrecip,5,0,6/21/2008 1:05:00 AM +ExcessPrecip,6,0,6/21/2008 1:05:00 AM +ExcessPrecip,7,0,6/21/2008 1:05:00 AM +ExcessPrecip,8,0,6/21/2008 1:05:00 AM +ExcessPrecip,9,0,6/21/2008 1:05:00 AM +ExcessPrecip,10,0,6/21/2008 1:05:00 AM +ExcessPrecip,11,0,6/21/2008 1:05:00 AM +ExcessPrecip,12,0,6/21/2008 1:05:00 AM +ExcessPrecip,13,0,6/21/2008 1:05:00 AM +ExcessPrecip,14,0,6/21/2008 1:05:00 AM +Precipitation,0,0,6/21/2008 1:10:00 AM +Precipitation,1,0,6/21/2008 1:10:00 AM +Precipitation,2,0,6/21/2008 1:10:00 AM +Precipitation,3,0,6/21/2008 1:10:00 AM +Precipitation,4,0,6/21/2008 1:10:00 AM +Precipitation,5,0,6/21/2008 1:10:00 AM +Precipitation,6,0,6/21/2008 1:10:00 AM +Precipitation,7,0,6/21/2008 1:10:00 AM +Precipitation,8,0,6/21/2008 1:10:00 AM +Precipitation,9,0,6/21/2008 1:10:00 AM +Precipitation,10,0,6/21/2008 1:10:00 AM +Precipitation,11,0,6/21/2008 1:10:00 AM +Precipitation,12,0.15,6/21/2008 1:10:00 AM +Precipitation,13,0,6/21/2008 1:10:00 AM +Precipitation,14,0,6/21/2008 1:10:00 AM +ExcessPrecip,0,0,6/21/2008 1:10:00 AM +ExcessPrecip,1,0,6/21/2008 1:10:00 AM +ExcessPrecip,2,0,6/21/2008 1:10:00 AM +ExcessPrecip,3,0,6/21/2008 1:10:00 AM +ExcessPrecip,4,0,6/21/2008 1:10:00 AM +ExcessPrecip,5,0,6/21/2008 1:10:00 AM +ExcessPrecip,6,0,6/21/2008 1:10:00 AM +ExcessPrecip,7,0,6/21/2008 1:10:00 AM +ExcessPrecip,8,0,6/21/2008 1:10:00 AM +ExcessPrecip,9,0,6/21/2008 1:10:00 AM +ExcessPrecip,10,0,6/21/2008 1:10:00 AM +ExcessPrecip,11,0,6/21/2008 1:10:00 AM +ExcessPrecip,12,5.46050236621756E-05,6/21/2008 1:10:00 AM +ExcessPrecip,13,0,6/21/2008 1:10:00 AM +ExcessPrecip,14,0,6/21/2008 1:10:00 AM +Precipitation,0,0,6/21/2008 1:15:00 AM +Precipitation,1,0,6/21/2008 1:15:00 AM +Precipitation,2,0,6/21/2008 1:15:00 AM +Precipitation,3,0,6/21/2008 1:15:00 AM +Precipitation,4,0,6/21/2008 1:15:00 AM +Precipitation,5,0,6/21/2008 1:15:00 AM +Precipitation,6,0,6/21/2008 1:15:00 AM +Precipitation,7,0,6/21/2008 1:15:00 AM +Precipitation,8,0,6/21/2008 1:15:00 AM +Precipitation,9,0,6/21/2008 1:15:00 AM +Precipitation,10,0,6/21/2008 1:15:00 AM +Precipitation,11,0,6/21/2008 1:15:00 AM +Precipitation,12,0.15,6/21/2008 1:15:00 AM +Precipitation,13,0,6/21/2008 1:15:00 AM +Precipitation,14,0,6/21/2008 1:15:00 AM +ExcessPrecip,0,0,6/21/2008 1:15:00 AM +ExcessPrecip,1,0,6/21/2008 1:15:00 AM +ExcessPrecip,2,0,6/21/2008 1:15:00 AM +ExcessPrecip,3,0,6/21/2008 1:15:00 AM +ExcessPrecip,4,0,6/21/2008 1:15:00 AM +ExcessPrecip,5,0,6/21/2008 1:15:00 AM +ExcessPrecip,6,0,6/21/2008 1:15:00 AM +ExcessPrecip,7,0,6/21/2008 1:15:00 AM +ExcessPrecip,8,0,6/21/2008 1:15:00 AM +ExcessPrecip,9,0,6/21/2008 1:15:00 AM +ExcessPrecip,10,0,6/21/2008 1:15:00 AM +ExcessPrecip,11,0,6/21/2008 1:15:00 AM +ExcessPrecip,12,0.0109437285621582,6/21/2008 1:15:00 AM +ExcessPrecip,13,0,6/21/2008 1:15:00 AM +ExcessPrecip,14,0,6/21/2008 1:15:00 AM +Precipitation,0,0,6/21/2008 1:20:00 AM +Precipitation,1,0,6/21/2008 1:20:00 AM +Precipitation,2,0,6/21/2008 1:20:00 AM +Precipitation,3,0,6/21/2008 1:20:00 AM +Precipitation,4,0,6/21/2008 1:20:00 AM +Precipitation,5,0,6/21/2008 1:20:00 AM +Precipitation,6,0,6/21/2008 1:20:00 AM +Precipitation,7,0,6/21/2008 1:20:00 AM +Precipitation,8,0,6/21/2008 1:20:00 AM +Precipitation,9,0,6/21/2008 1:20:00 AM +Precipitation,10,0,6/21/2008 1:20:00 AM +Precipitation,11,0,6/21/2008 1:20:00 AM +Precipitation,12,0.15,6/21/2008 1:20:00 AM +Precipitation,13,0,6/21/2008 1:20:00 AM +Precipitation,14,0,6/21/2008 1:20:00 AM +ExcessPrecip,0,0,6/21/2008 1:20:00 AM +ExcessPrecip,1,0,6/21/2008 1:20:00 AM +ExcessPrecip,2,0,6/21/2008 1:20:00 AM +ExcessPrecip,3,0,6/21/2008 1:20:00 AM +ExcessPrecip,4,0,6/21/2008 1:20:00 AM +ExcessPrecip,5,0,6/21/2008 1:20:00 AM +ExcessPrecip,6,0,6/21/2008 1:20:00 AM +ExcessPrecip,7,0,6/21/2008 1:20:00 AM +ExcessPrecip,8,0,6/21/2008 1:20:00 AM +ExcessPrecip,9,0,6/21/2008 1:20:00 AM +ExcessPrecip,10,0,6/21/2008 1:20:00 AM +ExcessPrecip,11,0,6/21/2008 1:20:00 AM +ExcessPrecip,12,0.0275898807634764,6/21/2008 1:20:00 AM +ExcessPrecip,13,0,6/21/2008 1:20:00 AM +ExcessPrecip,14,0,6/21/2008 1:20:00 AM +Precipitation,0,0,6/21/2008 1:25:00 AM +Precipitation,1,0,6/21/2008 1:25:00 AM +Precipitation,2,0,6/21/2008 1:25:00 AM +Precipitation,3,0,6/21/2008 1:25:00 AM +Precipitation,4,0,6/21/2008 1:25:00 AM +Precipitation,5,0,6/21/2008 1:25:00 AM +Precipitation,6,0,6/21/2008 1:25:00 AM +Precipitation,7,0,6/21/2008 1:25:00 AM +Precipitation,8,0,6/21/2008 1:25:00 AM +Precipitation,9,0,6/21/2008 1:25:00 AM +Precipitation,10,0,6/21/2008 1:25:00 AM +Precipitation,11,0,6/21/2008 1:25:00 AM +Precipitation,12,0.15,6/21/2008 1:25:00 AM +Precipitation,13,0,6/21/2008 1:25:00 AM +Precipitation,14,0,6/21/2008 1:25:00 AM +ExcessPrecip,0,0,6/21/2008 1:25:00 AM +ExcessPrecip,1,0,6/21/2008 1:25:00 AM +ExcessPrecip,2,0,6/21/2008 1:25:00 AM +ExcessPrecip,3,0,6/21/2008 1:25:00 AM +ExcessPrecip,4,0,6/21/2008 1:25:00 AM +ExcessPrecip,5,0,6/21/2008 1:25:00 AM +ExcessPrecip,6,0,6/21/2008 1:25:00 AM +ExcessPrecip,7,0,6/21/2008 1:25:00 AM +ExcessPrecip,8,0,6/21/2008 1:25:00 AM +ExcessPrecip,9,0,6/21/2008 1:25:00 AM +ExcessPrecip,10,0,6/21/2008 1:25:00 AM +ExcessPrecip,11,0,6/21/2008 1:25:00 AM +ExcessPrecip,12,0.0414158170959764,6/21/2008 1:25:00 AM +ExcessPrecip,13,0,6/21/2008 1:25:00 AM +ExcessPrecip,14,0,6/21/2008 1:25:00 AM +Precipitation,0,0,6/21/2008 1:30:00 AM +Precipitation,1,0,6/21/2008 1:30:00 AM +Precipitation,2,0,6/21/2008 1:30:00 AM +Precipitation,3,0,6/21/2008 1:30:00 AM +Precipitation,4,0,6/21/2008 1:30:00 AM +Precipitation,5,0,6/21/2008 1:30:00 AM +Precipitation,6,0,6/21/2008 1:30:00 AM +Precipitation,7,0,6/21/2008 1:30:00 AM +Precipitation,8,0,6/21/2008 1:30:00 AM +Precipitation,9,0,6/21/2008 1:30:00 AM +Precipitation,10,0,6/21/2008 1:30:00 AM +Precipitation,11,0,6/21/2008 1:30:00 AM +Precipitation,12,0.15,6/21/2008 1:30:00 AM +Precipitation,13,0,6/21/2008 1:30:00 AM +Precipitation,14,0,6/21/2008 1:30:00 AM +ExcessPrecip,0,0,6/21/2008 1:30:00 AM +ExcessPrecip,1,0,6/21/2008 1:30:00 AM +ExcessPrecip,2,0,6/21/2008 1:30:00 AM +ExcessPrecip,3,0,6/21/2008 1:30:00 AM +ExcessPrecip,4,0,6/21/2008 1:30:00 AM +ExcessPrecip,5,0,6/21/2008 1:30:00 AM +ExcessPrecip,6,0,6/21/2008 1:30:00 AM +ExcessPrecip,7,0,6/21/2008 1:30:00 AM +ExcessPrecip,8,0,6/21/2008 1:30:00 AM +ExcessPrecip,9,0,6/21/2008 1:30:00 AM +ExcessPrecip,10,0,6/21/2008 1:30:00 AM +ExcessPrecip,11,0,6/21/2008 1:30:00 AM +ExcessPrecip,12,0.0530245563373452,6/21/2008 1:30:00 AM +ExcessPrecip,13,0,6/21/2008 1:30:00 AM +ExcessPrecip,14,0,6/21/2008 1:30:00 AM +Precipitation,0,0,6/21/2008 1:35:00 AM +Precipitation,1,0,6/21/2008 1:35:00 AM +Precipitation,2,0,6/21/2008 1:35:00 AM +Precipitation,3,0,6/21/2008 1:35:00 AM +Precipitation,4,0,6/21/2008 1:35:00 AM +Precipitation,5,0,6/21/2008 1:35:00 AM +Precipitation,6,0,6/21/2008 1:35:00 AM +Precipitation,7,0,6/21/2008 1:35:00 AM +Precipitation,8,0,6/21/2008 1:35:00 AM +Precipitation,9,0,6/21/2008 1:35:00 AM +Precipitation,10,0,6/21/2008 1:35:00 AM +Precipitation,11,0,6/21/2008 1:35:00 AM +Precipitation,12,0.15,6/21/2008 1:35:00 AM +Precipitation,13,0,6/21/2008 1:35:00 AM +Precipitation,14,0,6/21/2008 1:35:00 AM +ExcessPrecip,0,0,6/21/2008 1:35:00 AM +ExcessPrecip,1,0,6/21/2008 1:35:00 AM +ExcessPrecip,2,0,6/21/2008 1:35:00 AM +ExcessPrecip,3,0,6/21/2008 1:35:00 AM +ExcessPrecip,4,0,6/21/2008 1:35:00 AM +ExcessPrecip,5,0,6/21/2008 1:35:00 AM +ExcessPrecip,6,0,6/21/2008 1:35:00 AM +ExcessPrecip,7,0,6/21/2008 1:35:00 AM +ExcessPrecip,8,0,6/21/2008 1:35:00 AM +ExcessPrecip,9,0,6/21/2008 1:35:00 AM +ExcessPrecip,10,0,6/21/2008 1:35:00 AM +ExcessPrecip,11,0,6/21/2008 1:35:00 AM +ExcessPrecip,12,0.0628661236397434,6/21/2008 1:35:00 AM +ExcessPrecip,13,0,6/21/2008 1:35:00 AM +ExcessPrecip,14,0,6/21/2008 1:35:00 AM +Precipitation,0,0,6/21/2008 1:40:00 AM +Precipitation,1,0,6/21/2008 1:40:00 AM +Precipitation,2,0,6/21/2008 1:40:00 AM +Precipitation,3,0,6/21/2008 1:40:00 AM +Precipitation,4,0,6/21/2008 1:40:00 AM +Precipitation,5,0,6/21/2008 1:40:00 AM +Precipitation,6,0,6/21/2008 1:40:00 AM +Precipitation,7,0,6/21/2008 1:40:00 AM +Precipitation,8,0,6/21/2008 1:40:00 AM +Precipitation,9,0,6/21/2008 1:40:00 AM +Precipitation,10,0,6/21/2008 1:40:00 AM +Precipitation,11,0,6/21/2008 1:40:00 AM +Precipitation,12,0.15,6/21/2008 1:40:00 AM +Precipitation,13,0,6/21/2008 1:40:00 AM +Precipitation,14,0,6/21/2008 1:40:00 AM +ExcessPrecip,0,0,6/21/2008 1:40:00 AM +ExcessPrecip,1,0,6/21/2008 1:40:00 AM +ExcessPrecip,2,0,6/21/2008 1:40:00 AM +ExcessPrecip,3,0,6/21/2008 1:40:00 AM +ExcessPrecip,4,0,6/21/2008 1:40:00 AM +ExcessPrecip,5,0,6/21/2008 1:40:00 AM +ExcessPrecip,6,0,6/21/2008 1:40:00 AM +ExcessPrecip,7,0,6/21/2008 1:40:00 AM +ExcessPrecip,8,0,6/21/2008 1:40:00 AM +ExcessPrecip,9,0,6/21/2008 1:40:00 AM +ExcessPrecip,10,0,6/21/2008 1:40:00 AM +ExcessPrecip,11,0,6/21/2008 1:40:00 AM +ExcessPrecip,12,0.0712818808382604,6/21/2008 1:40:00 AM +ExcessPrecip,13,0,6/21/2008 1:40:00 AM +ExcessPrecip,14,0,6/21/2008 1:40:00 AM +Precipitation,0,0,6/21/2008 1:45:00 AM +Precipitation,1,0,6/21/2008 1:45:00 AM +Precipitation,2,0,6/21/2008 1:45:00 AM +Precipitation,3,0,6/21/2008 1:45:00 AM +Precipitation,4,0,6/21/2008 1:45:00 AM +Precipitation,5,0,6/21/2008 1:45:00 AM +Precipitation,6,0,6/21/2008 1:45:00 AM +Precipitation,7,0,6/21/2008 1:45:00 AM +Precipitation,8,0,6/21/2008 1:45:00 AM +Precipitation,9,0,6/21/2008 1:45:00 AM +Precipitation,10,0,6/21/2008 1:45:00 AM +Precipitation,11,0,6/21/2008 1:45:00 AM +Precipitation,12,0.15,6/21/2008 1:45:00 AM +Precipitation,13,0,6/21/2008 1:45:00 AM +Precipitation,14,0,6/21/2008 1:45:00 AM +ExcessPrecip,0,0,6/21/2008 1:45:00 AM +ExcessPrecip,1,0,6/21/2008 1:45:00 AM +ExcessPrecip,2,0,6/21/2008 1:45:00 AM +ExcessPrecip,3,0,6/21/2008 1:45:00 AM +ExcessPrecip,4,0,6/21/2008 1:45:00 AM +ExcessPrecip,5,0,6/21/2008 1:45:00 AM +ExcessPrecip,6,0,6/21/2008 1:45:00 AM +ExcessPrecip,7,0,6/21/2008 1:45:00 AM +ExcessPrecip,8,0,6/21/2008 1:45:00 AM +ExcessPrecip,9,0,6/21/2008 1:45:00 AM +ExcessPrecip,10,0,6/21/2008 1:45:00 AM +ExcessPrecip,11,0,6/21/2008 1:45:00 AM +ExcessPrecip,12,0.0785345614801286,6/21/2008 1:45:00 AM +ExcessPrecip,13,0,6/21/2008 1:45:00 AM +ExcessPrecip,14,0,6/21/2008 1:45:00 AM +Precipitation,0,0,6/21/2008 1:50:00 AM +Precipitation,1,0,6/21/2008 1:50:00 AM +Precipitation,2,0,6/21/2008 1:50:00 AM +Precipitation,3,0,6/21/2008 1:50:00 AM +Precipitation,4,0,6/21/2008 1:50:00 AM +Precipitation,5,0,6/21/2008 1:50:00 AM +Precipitation,6,0,6/21/2008 1:50:00 AM +Precipitation,7,0,6/21/2008 1:50:00 AM +Precipitation,8,0,6/21/2008 1:50:00 AM +Precipitation,9,0,6/21/2008 1:50:00 AM +Precipitation,10,0,6/21/2008 1:50:00 AM +Precipitation,11,0,6/21/2008 1:50:00 AM +Precipitation,12,0.15,6/21/2008 1:50:00 AM +Precipitation,13,0,6/21/2008 1:50:00 AM +Precipitation,14,0,6/21/2008 1:50:00 AM +ExcessPrecip,0,0,6/21/2008 1:50:00 AM +ExcessPrecip,1,0,6/21/2008 1:50:00 AM +ExcessPrecip,2,0,6/21/2008 1:50:00 AM +ExcessPrecip,3,0,6/21/2008 1:50:00 AM +ExcessPrecip,4,0,6/21/2008 1:50:00 AM +ExcessPrecip,5,0,6/21/2008 1:50:00 AM +ExcessPrecip,6,0,6/21/2008 1:50:00 AM +ExcessPrecip,7,0,6/21/2008 1:50:00 AM +ExcessPrecip,8,0,6/21/2008 1:50:00 AM +ExcessPrecip,9,0,6/21/2008 1:50:00 AM +ExcessPrecip,10,0,6/21/2008 1:50:00 AM +ExcessPrecip,11,0,6/21/2008 1:50:00 AM +ExcessPrecip,12,0.0848290469351548,6/21/2008 1:50:00 AM +ExcessPrecip,13,0,6/21/2008 1:50:00 AM +ExcessPrecip,14,0,6/21/2008 1:50:00 AM +Precipitation,0,0,6/21/2008 1:55:00 AM +Precipitation,1,0,6/21/2008 1:55:00 AM +Precipitation,2,0,6/21/2008 1:55:00 AM +Precipitation,3,0,6/21/2008 1:55:00 AM +Precipitation,4,0,6/21/2008 1:55:00 AM +Precipitation,5,0,6/21/2008 1:55:00 AM +Precipitation,6,0,6/21/2008 1:55:00 AM +Precipitation,7,0,6/21/2008 1:55:00 AM +Precipitation,8,0,6/21/2008 1:55:00 AM +Precipitation,9,0,6/21/2008 1:55:00 AM +Precipitation,10,0,6/21/2008 1:55:00 AM +Precipitation,11,0,6/21/2008 1:55:00 AM +Precipitation,12,0.15,6/21/2008 1:55:00 AM +Precipitation,13,0,6/21/2008 1:55:00 AM +Precipitation,14,0,6/21/2008 1:55:00 AM +ExcessPrecip,0,0,6/21/2008 1:55:00 AM +ExcessPrecip,1,0,6/21/2008 1:55:00 AM +ExcessPrecip,2,0,6/21/2008 1:55:00 AM +ExcessPrecip,3,0,6/21/2008 1:55:00 AM +ExcessPrecip,4,0,6/21/2008 1:55:00 AM +ExcessPrecip,5,0,6/21/2008 1:55:00 AM +ExcessPrecip,6,0,6/21/2008 1:55:00 AM +ExcessPrecip,7,0,6/21/2008 1:55:00 AM +ExcessPrecip,8,0,6/21/2008 1:55:00 AM +ExcessPrecip,9,0,6/21/2008 1:55:00 AM +ExcessPrecip,10,0,6/21/2008 1:55:00 AM +ExcessPrecip,11,0,6/21/2008 1:55:00 AM +ExcessPrecip,12,0.0903270079961809,6/21/2008 1:55:00 AM +ExcessPrecip,13,0,6/21/2008 1:55:00 AM +ExcessPrecip,14,0,6/21/2008 1:55:00 AM +Precipitation,0,0,6/21/2008 2:00:00 AM +Precipitation,1,0,6/21/2008 2:00:00 AM +Precipitation,2,0,6/21/2008 2:00:00 AM +Precipitation,3,0,6/21/2008 2:00:00 AM +Precipitation,4,0,6/21/2008 2:00:00 AM +Precipitation,5,0,6/21/2008 2:00:00 AM +Precipitation,6,0,6/21/2008 2:00:00 AM +Precipitation,7,0,6/21/2008 2:00:00 AM +Precipitation,8,0,6/21/2008 2:00:00 AM +Precipitation,9,0,6/21/2008 2:00:00 AM +Precipitation,10,0,6/21/2008 2:00:00 AM +Precipitation,11,0,6/21/2008 2:00:00 AM +Precipitation,12,0.15,6/21/2008 2:00:00 AM +Precipitation,13,0,6/21/2008 2:00:00 AM +Precipitation,14,0,6/21/2008 2:00:00 AM +ExcessPrecip,0,0,6/21/2008 2:00:00 AM +ExcessPrecip,1,0,6/21/2008 2:00:00 AM +ExcessPrecip,2,0,6/21/2008 2:00:00 AM +ExcessPrecip,3,0,6/21/2008 2:00:00 AM +ExcessPrecip,4,0,6/21/2008 2:00:00 AM +ExcessPrecip,5,0,6/21/2008 2:00:00 AM +ExcessPrecip,6,0,6/21/2008 2:00:00 AM +ExcessPrecip,7,0,6/21/2008 2:00:00 AM +ExcessPrecip,8,0,6/21/2008 2:00:00 AM +ExcessPrecip,9,0,6/21/2008 2:00:00 AM +ExcessPrecip,10,0,6/21/2008 2:00:00 AM +ExcessPrecip,11,0,6/21/2008 2:00:00 AM +ExcessPrecip,12,0.0951573982669737,6/21/2008 2:00:00 AM +ExcessPrecip,13,0,6/21/2008 2:00:00 AM +ExcessPrecip,14,0,6/21/2008 2:00:00 AM +Precipitation,0,0,6/21/2008 2:05:00 AM +Precipitation,1,0,6/21/2008 2:05:00 AM +Precipitation,2,0,6/21/2008 2:05:00 AM +Precipitation,3,0,6/21/2008 2:05:00 AM +Precipitation,4,0,6/21/2008 2:05:00 AM +Precipitation,5,0,6/21/2008 2:05:00 AM +Precipitation,6,0,6/21/2008 2:05:00 AM +Precipitation,7,0,6/21/2008 2:05:00 AM +Precipitation,8,0,6/21/2008 2:05:00 AM +Precipitation,9,0,6/21/2008 2:05:00 AM +Precipitation,10,0,6/21/2008 2:05:00 AM +Precipitation,11,0,6/21/2008 2:05:00 AM +Precipitation,12,0.15,6/21/2008 2:05:00 AM +Precipitation,13,0,6/21/2008 2:05:00 AM +Precipitation,14,0,6/21/2008 2:05:00 AM +ExcessPrecip,0,0,6/21/2008 2:05:00 AM +ExcessPrecip,1,0,6/21/2008 2:05:00 AM +ExcessPrecip,2,0,6/21/2008 2:05:00 AM +ExcessPrecip,3,0,6/21/2008 2:05:00 AM +ExcessPrecip,4,0,6/21/2008 2:05:00 AM +ExcessPrecip,5,0,6/21/2008 2:05:00 AM +ExcessPrecip,6,0,6/21/2008 2:05:00 AM +ExcessPrecip,7,0,6/21/2008 2:05:00 AM +ExcessPrecip,8,0,6/21/2008 2:05:00 AM +ExcessPrecip,9,0,6/21/2008 2:05:00 AM +ExcessPrecip,10,0,6/21/2008 2:05:00 AM +ExcessPrecip,11,0,6/21/2008 2:05:00 AM +ExcessPrecip,12,0.0994240902424087,6/21/2008 2:05:00 AM +ExcessPrecip,13,0,6/21/2008 2:05:00 AM +ExcessPrecip,14,0,6/21/2008 2:05:00 AM +Precipitation,0,0,6/21/2008 2:10:00 AM +Precipitation,1,0,6/21/2008 2:10:00 AM +Precipitation,2,0,6/21/2008 2:10:00 AM +Precipitation,3,0,6/21/2008 2:10:00 AM +Precipitation,4,0,6/21/2008 2:10:00 AM +Precipitation,5,0,6/21/2008 2:10:00 AM +Precipitation,6,0,6/21/2008 2:10:00 AM +Precipitation,7,0,6/21/2008 2:10:00 AM +Precipitation,8,0,6/21/2008 2:10:00 AM +Precipitation,9,0,6/21/2008 2:10:00 AM +Precipitation,10,0,6/21/2008 2:10:00 AM +Precipitation,11,0,6/21/2008 2:10:00 AM +Precipitation,12,0.15,6/21/2008 2:10:00 AM +Precipitation,13,0,6/21/2008 2:10:00 AM +Precipitation,14,0,6/21/2008 2:10:00 AM +ExcessPrecip,0,0,6/21/2008 2:10:00 AM +ExcessPrecip,1,0,6/21/2008 2:10:00 AM +ExcessPrecip,2,0,6/21/2008 2:10:00 AM +ExcessPrecip,3,0,6/21/2008 2:10:00 AM +ExcessPrecip,4,0,6/21/2008 2:10:00 AM +ExcessPrecip,5,0,6/21/2008 2:10:00 AM +ExcessPrecip,6,0,6/21/2008 2:10:00 AM +ExcessPrecip,7,0,6/21/2008 2:10:00 AM +ExcessPrecip,8,0,6/21/2008 2:10:00 AM +ExcessPrecip,9,0,6/21/2008 2:10:00 AM +ExcessPrecip,10,0,6/21/2008 2:10:00 AM +ExcessPrecip,11,0,6/21/2008 2:10:00 AM +ExcessPrecip,12,0.103211509968548,6/21/2008 2:10:00 AM +ExcessPrecip,13,0,6/21/2008 2:10:00 AM +ExcessPrecip,14,0,6/21/2008 2:10:00 AM +Precipitation,0,0,6/21/2008 2:15:00 AM +Precipitation,1,0,6/21/2008 2:15:00 AM +Precipitation,2,0,6/21/2008 2:15:00 AM +Precipitation,3,0,6/21/2008 2:15:00 AM +Precipitation,4,0,6/21/2008 2:15:00 AM +Precipitation,5,0,6/21/2008 2:15:00 AM +Precipitation,6,0,6/21/2008 2:15:00 AM +Precipitation,7,0,6/21/2008 2:15:00 AM +Precipitation,8,0,6/21/2008 2:15:00 AM +Precipitation,9,0,6/21/2008 2:15:00 AM +Precipitation,10,0,6/21/2008 2:15:00 AM +Precipitation,11,0,6/21/2008 2:15:00 AM +Precipitation,12,0.15,6/21/2008 2:15:00 AM +Precipitation,13,0,6/21/2008 2:15:00 AM +Precipitation,14,0,6/21/2008 2:15:00 AM +ExcessPrecip,0,0,6/21/2008 2:15:00 AM +ExcessPrecip,1,0,6/21/2008 2:15:00 AM +ExcessPrecip,2,0,6/21/2008 2:15:00 AM +ExcessPrecip,3,0,6/21/2008 2:15:00 AM +ExcessPrecip,4,0,6/21/2008 2:15:00 AM +ExcessPrecip,5,0,6/21/2008 2:15:00 AM +ExcessPrecip,6,0,6/21/2008 2:15:00 AM +ExcessPrecip,7,0,6/21/2008 2:15:00 AM +ExcessPrecip,8,0,6/21/2008 2:15:00 AM +ExcessPrecip,9,0,6/21/2008 2:15:00 AM +ExcessPrecip,10,0,6/21/2008 2:15:00 AM +ExcessPrecip,11,0,6/21/2008 2:15:00 AM +ExcessPrecip,12,0.106588848157438,6/21/2008 2:15:00 AM +ExcessPrecip,13,0,6/21/2008 2:15:00 AM +ExcessPrecip,14,0,6/21/2008 2:15:00 AM +Precipitation,0,0,6/21/2008 2:20:00 AM +Precipitation,1,0,6/21/2008 2:20:00 AM +Precipitation,2,0,6/21/2008 2:20:00 AM +Precipitation,3,0,6/21/2008 2:20:00 AM +Precipitation,4,0,6/21/2008 2:20:00 AM +Precipitation,5,0,6/21/2008 2:20:00 AM +Precipitation,6,0,6/21/2008 2:20:00 AM +Precipitation,7,0,6/21/2008 2:20:00 AM +Precipitation,8,0,6/21/2008 2:20:00 AM +Precipitation,9,0,6/21/2008 2:20:00 AM +Precipitation,10,0,6/21/2008 2:20:00 AM +Precipitation,11,0,6/21/2008 2:20:00 AM +Precipitation,12,0.15,6/21/2008 2:20:00 AM +Precipitation,13,0,6/21/2008 2:20:00 AM +Precipitation,14,0,6/21/2008 2:20:00 AM +ExcessPrecip,0,0,6/21/2008 2:20:00 AM +ExcessPrecip,1,0,6/21/2008 2:20:00 AM +ExcessPrecip,2,0,6/21/2008 2:20:00 AM +ExcessPrecip,3,0,6/21/2008 2:20:00 AM +ExcessPrecip,4,0,6/21/2008 2:20:00 AM +ExcessPrecip,5,0,6/21/2008 2:20:00 AM +ExcessPrecip,6,0,6/21/2008 2:20:00 AM +ExcessPrecip,7,0,6/21/2008 2:20:00 AM +ExcessPrecip,8,0,6/21/2008 2:20:00 AM +ExcessPrecip,9,0,6/21/2008 2:20:00 AM +ExcessPrecip,10,0,6/21/2008 2:20:00 AM +ExcessPrecip,11,0,6/21/2008 2:20:00 AM +ExcessPrecip,12,0.109613244462527,6/21/2008 2:20:00 AM +ExcessPrecip,13,0,6/21/2008 2:20:00 AM +ExcessPrecip,14,0,6/21/2008 2:20:00 AM +Precipitation,0,0,6/21/2008 2:25:00 AM +Precipitation,1,0,6/21/2008 2:25:00 AM +Precipitation,2,0,6/21/2008 2:25:00 AM +Precipitation,3,0,6/21/2008 2:25:00 AM +Precipitation,4,0,6/21/2008 2:25:00 AM +Precipitation,5,0,6/21/2008 2:25:00 AM +Precipitation,6,0,6/21/2008 2:25:00 AM +Precipitation,7,0,6/21/2008 2:25:00 AM +Precipitation,8,0,6/21/2008 2:25:00 AM +Precipitation,9,0,6/21/2008 2:25:00 AM +Precipitation,10,0,6/21/2008 2:25:00 AM +Precipitation,11,0,6/21/2008 2:25:00 AM +Precipitation,12,0.15,6/21/2008 2:25:00 AM +Precipitation,13,0,6/21/2008 2:25:00 AM +Precipitation,14,0,6/21/2008 2:25:00 AM +ExcessPrecip,0,0,6/21/2008 2:25:00 AM +ExcessPrecip,1,0,6/21/2008 2:25:00 AM +ExcessPrecip,2,0,6/21/2008 2:25:00 AM +ExcessPrecip,3,0,6/21/2008 2:25:00 AM +ExcessPrecip,4,0,6/21/2008 2:25:00 AM +ExcessPrecip,5,0,6/21/2008 2:25:00 AM +ExcessPrecip,6,0,6/21/2008 2:25:00 AM +ExcessPrecip,7,0,6/21/2008 2:25:00 AM +ExcessPrecip,8,0,6/21/2008 2:25:00 AM +ExcessPrecip,9,0,6/21/2008 2:25:00 AM +ExcessPrecip,10,0,6/21/2008 2:25:00 AM +ExcessPrecip,11,0,6/21/2008 2:25:00 AM +ExcessPrecip,12,0.112332221436314,6/21/2008 2:25:00 AM +ExcessPrecip,13,0,6/21/2008 2:25:00 AM +ExcessPrecip,14,0,6/21/2008 2:25:00 AM +Precipitation,0,0,6/21/2008 2:30:00 AM +Precipitation,1,0,6/21/2008 2:30:00 AM +Precipitation,2,0,6/21/2008 2:30:00 AM +Precipitation,3,0,6/21/2008 2:30:00 AM +Precipitation,4,0,6/21/2008 2:30:00 AM +Precipitation,5,0,6/21/2008 2:30:00 AM +Precipitation,6,0,6/21/2008 2:30:00 AM +Precipitation,7,0,6/21/2008 2:30:00 AM +Precipitation,8,0,6/21/2008 2:30:00 AM +Precipitation,9,0,6/21/2008 2:30:00 AM +Precipitation,10,0,6/21/2008 2:30:00 AM +Precipitation,11,0,6/21/2008 2:30:00 AM +Precipitation,12,0.15,6/21/2008 2:30:00 AM +Precipitation,13,0,6/21/2008 2:30:00 AM +Precipitation,14,0,6/21/2008 2:30:00 AM +ExcessPrecip,0,0,6/21/2008 2:30:00 AM +ExcessPrecip,1,0,6/21/2008 2:30:00 AM +ExcessPrecip,2,0,6/21/2008 2:30:00 AM +ExcessPrecip,3,0,6/21/2008 2:30:00 AM +ExcessPrecip,4,0,6/21/2008 2:30:00 AM +ExcessPrecip,5,0,6/21/2008 2:30:00 AM +ExcessPrecip,6,0,6/21/2008 2:30:00 AM +ExcessPrecip,7,0,6/21/2008 2:30:00 AM +ExcessPrecip,8,0,6/21/2008 2:30:00 AM +ExcessPrecip,9,0,6/21/2008 2:30:00 AM +ExcessPrecip,10,0,6/21/2008 2:30:00 AM +ExcessPrecip,11,0,6/21/2008 2:30:00 AM +ExcessPrecip,12,0.114785563646181,6/21/2008 2:30:00 AM +ExcessPrecip,13,0,6/21/2008 2:30:00 AM +ExcessPrecip,14,0,6/21/2008 2:30:00 AM +Precipitation,0,0,6/21/2008 2:35:00 AM +Precipitation,1,0,6/21/2008 2:35:00 AM +Precipitation,2,0,6/21/2008 2:35:00 AM +Precipitation,3,0,6/21/2008 2:35:00 AM +Precipitation,4,0,6/21/2008 2:35:00 AM +Precipitation,5,0,6/21/2008 2:35:00 AM +Precipitation,6,0,6/21/2008 2:35:00 AM +Precipitation,7,0,6/21/2008 2:35:00 AM +Precipitation,8,0,6/21/2008 2:35:00 AM +Precipitation,9,0,6/21/2008 2:35:00 AM +Precipitation,10,0,6/21/2008 2:35:00 AM +Precipitation,11,0,6/21/2008 2:35:00 AM +Precipitation,12,0.15,6/21/2008 2:35:00 AM +Precipitation,13,0,6/21/2008 2:35:00 AM +Precipitation,14,0,6/21/2008 2:35:00 AM +ExcessPrecip,0,0,6/21/2008 2:35:00 AM +ExcessPrecip,1,0,6/21/2008 2:35:00 AM +ExcessPrecip,2,0,6/21/2008 2:35:00 AM +ExcessPrecip,3,0,6/21/2008 2:35:00 AM +ExcessPrecip,4,0,6/21/2008 2:35:00 AM +ExcessPrecip,5,0,6/21/2008 2:35:00 AM +ExcessPrecip,6,0,6/21/2008 2:35:00 AM +ExcessPrecip,7,0,6/21/2008 2:35:00 AM +ExcessPrecip,8,0,6/21/2008 2:35:00 AM +ExcessPrecip,9,0,6/21/2008 2:35:00 AM +ExcessPrecip,10,0,6/21/2008 2:35:00 AM +ExcessPrecip,11,0,6/21/2008 2:35:00 AM +ExcessPrecip,12,0.117006781939268,6/21/2008 2:35:00 AM +ExcessPrecip,13,0,6/21/2008 2:35:00 AM +ExcessPrecip,14,0,6/21/2008 2:35:00 AM +Precipitation,0,0,6/21/2008 2:40:00 AM +Precipitation,1,0,6/21/2008 2:40:00 AM +Precipitation,2,0,6/21/2008 2:40:00 AM +Precipitation,3,0,6/21/2008 2:40:00 AM +Precipitation,4,0,6/21/2008 2:40:00 AM +Precipitation,5,0,6/21/2008 2:40:00 AM +Precipitation,6,0,6/21/2008 2:40:00 AM +Precipitation,7,0,6/21/2008 2:40:00 AM +Precipitation,8,0,6/21/2008 2:40:00 AM +Precipitation,9,0,6/21/2008 2:40:00 AM +Precipitation,10,0,6/21/2008 2:40:00 AM +Precipitation,11,0,6/21/2008 2:40:00 AM +Precipitation,12,0.15,6/21/2008 2:40:00 AM +Precipitation,13,0,6/21/2008 2:40:00 AM +Precipitation,14,0,6/21/2008 2:40:00 AM +ExcessPrecip,0,0,6/21/2008 2:40:00 AM +ExcessPrecip,1,0,6/21/2008 2:40:00 AM +ExcessPrecip,2,0,6/21/2008 2:40:00 AM +ExcessPrecip,3,0,6/21/2008 2:40:00 AM +ExcessPrecip,4,0,6/21/2008 2:40:00 AM +ExcessPrecip,5,0,6/21/2008 2:40:00 AM +ExcessPrecip,6,0,6/21/2008 2:40:00 AM +ExcessPrecip,7,0,6/21/2008 2:40:00 AM +ExcessPrecip,8,0,6/21/2008 2:40:00 AM +ExcessPrecip,9,0,6/21/2008 2:40:00 AM +ExcessPrecip,10,0,6/21/2008 2:40:00 AM +ExcessPrecip,11,0,6/21/2008 2:40:00 AM +ExcessPrecip,12,0.119024264326278,6/21/2008 2:40:00 AM +ExcessPrecip,13,0,6/21/2008 2:40:00 AM +ExcessPrecip,14,0,6/21/2008 2:40:00 AM +Precipitation,0,0,6/21/2008 2:45:00 AM +Precipitation,1,0,6/21/2008 2:45:00 AM +Precipitation,2,0,6/21/2008 2:45:00 AM +Precipitation,3,0,6/21/2008 2:45:00 AM +Precipitation,4,0,6/21/2008 2:45:00 AM +Precipitation,5,0,6/21/2008 2:45:00 AM +Precipitation,6,0,6/21/2008 2:45:00 AM +Precipitation,7,0,6/21/2008 2:45:00 AM +Precipitation,8,0,6/21/2008 2:45:00 AM +Precipitation,9,0,6/21/2008 2:45:00 AM +Precipitation,10,0,6/21/2008 2:45:00 AM +Precipitation,11,0,6/21/2008 2:45:00 AM +Precipitation,12,0.15,6/21/2008 2:45:00 AM +Precipitation,13,0,6/21/2008 2:45:00 AM +Precipitation,14,0,6/21/2008 2:45:00 AM +ExcessPrecip,0,0,6/21/2008 2:45:00 AM +ExcessPrecip,1,0,6/21/2008 2:45:00 AM +ExcessPrecip,2,0,6/21/2008 2:45:00 AM +ExcessPrecip,3,0,6/21/2008 2:45:00 AM +ExcessPrecip,4,0,6/21/2008 2:45:00 AM +ExcessPrecip,5,0,6/21/2008 2:45:00 AM +ExcessPrecip,6,0,6/21/2008 2:45:00 AM +ExcessPrecip,7,0,6/21/2008 2:45:00 AM +ExcessPrecip,8,0,6/21/2008 2:45:00 AM +ExcessPrecip,9,0,6/21/2008 2:45:00 AM +ExcessPrecip,10,0,6/21/2008 2:45:00 AM +ExcessPrecip,11,0,6/21/2008 2:45:00 AM +ExcessPrecip,12,0.120862187861187,6/21/2008 2:45:00 AM +ExcessPrecip,13,0,6/21/2008 2:45:00 AM +ExcessPrecip,14,0,6/21/2008 2:45:00 AM +Precipitation,0,0,6/21/2008 2:50:00 AM +Precipitation,1,0,6/21/2008 2:50:00 AM +Precipitation,2,0,6/21/2008 2:50:00 AM +Precipitation,3,0,6/21/2008 2:50:00 AM +Precipitation,4,0,6/21/2008 2:50:00 AM +Precipitation,5,0,6/21/2008 2:50:00 AM +Precipitation,6,0,6/21/2008 2:50:00 AM +Precipitation,7,0,6/21/2008 2:50:00 AM +Precipitation,8,0,6/21/2008 2:50:00 AM +Precipitation,9,0,6/21/2008 2:50:00 AM +Precipitation,10,0,6/21/2008 2:50:00 AM +Precipitation,11,0,6/21/2008 2:50:00 AM +Precipitation,12,0.15,6/21/2008 2:50:00 AM +Precipitation,13,0,6/21/2008 2:50:00 AM +Precipitation,14,0,6/21/2008 2:50:00 AM +ExcessPrecip,0,0,6/21/2008 2:50:00 AM +ExcessPrecip,1,0,6/21/2008 2:50:00 AM +ExcessPrecip,2,0,6/21/2008 2:50:00 AM +ExcessPrecip,3,0,6/21/2008 2:50:00 AM +ExcessPrecip,4,0,6/21/2008 2:50:00 AM +ExcessPrecip,5,0,6/21/2008 2:50:00 AM +ExcessPrecip,6,0,6/21/2008 2:50:00 AM +ExcessPrecip,7,0,6/21/2008 2:50:00 AM +ExcessPrecip,8,0,6/21/2008 2:50:00 AM +ExcessPrecip,9,0,6/21/2008 2:50:00 AM +ExcessPrecip,10,0,6/21/2008 2:50:00 AM +ExcessPrecip,11,0,6/21/2008 2:50:00 AM +ExcessPrecip,12,0.122541246607064,6/21/2008 2:50:00 AM +ExcessPrecip,13,0,6/21/2008 2:50:00 AM +ExcessPrecip,14,0,6/21/2008 2:50:00 AM +Precipitation,0,0,6/21/2008 2:55:00 AM +Precipitation,1,0,6/21/2008 2:55:00 AM +Precipitation,2,0,6/21/2008 2:55:00 AM +Precipitation,3,0,6/21/2008 2:55:00 AM +Precipitation,4,0,6/21/2008 2:55:00 AM +Precipitation,5,0,6/21/2008 2:55:00 AM +Precipitation,6,0,6/21/2008 2:55:00 AM +Precipitation,7,0,6/21/2008 2:55:00 AM +Precipitation,8,0,6/21/2008 2:55:00 AM +Precipitation,9,0,6/21/2008 2:55:00 AM +Precipitation,10,0,6/21/2008 2:55:00 AM +Precipitation,11,0,6/21/2008 2:55:00 AM +Precipitation,12,0.15,6/21/2008 2:55:00 AM +Precipitation,13,0,6/21/2008 2:55:00 AM +Precipitation,14,0,6/21/2008 2:55:00 AM +ExcessPrecip,0,0,6/21/2008 2:55:00 AM +ExcessPrecip,1,0,6/21/2008 2:55:00 AM +ExcessPrecip,2,0,6/21/2008 2:55:00 AM +ExcessPrecip,3,0,6/21/2008 2:55:00 AM +ExcessPrecip,4,0,6/21/2008 2:55:00 AM +ExcessPrecip,5,0,6/21/2008 2:55:00 AM +ExcessPrecip,6,0,6/21/2008 2:55:00 AM +ExcessPrecip,7,0,6/21/2008 2:55:00 AM +ExcessPrecip,8,0,6/21/2008 2:55:00 AM +ExcessPrecip,9,0,6/21/2008 2:55:00 AM +ExcessPrecip,10,0,6/21/2008 2:55:00 AM +ExcessPrecip,11,0,6/21/2008 2:55:00 AM +ExcessPrecip,12,0.124079236892734,6/21/2008 2:55:00 AM +ExcessPrecip,13,0,6/21/2008 2:55:00 AM +ExcessPrecip,14,0,6/21/2008 2:55:00 AM diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/data_IO_test.opr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/data_IO_test.opr new file mode 100644 index 00000000..9ef22b98 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/data_IO_test.opr @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_1.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_1.xml new file mode 100644 index 00000000..c0238c7f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_1.xml @@ -0,0 +1,116 @@ + + + + + NEXRAD:1 + + 2009-03-28T15:00:00 + 2009-03-28T23:00:00 + + + + + + 1 + + + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_10.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_10.xml new file mode 100644 index 00000000..26b4fb3d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_10.xml @@ -0,0 +1,116 @@ + + + + + NEXRAD:1 + + 2009-03-28T15:00:00 + 2009-03-28T23:00:00 + + + + + + 10 + + + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_11.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_11.xml new file mode 100644 index 00000000..f2310a53 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_11.xml @@ -0,0 +1,116 @@ + + + + + NEXRAD:1 + + 2009-03-28T15:00:00 + 2009-03-28T23:00:00 + + + + + + 11 + + + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_12.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_12.xml new file mode 100644 index 00000000..7f0f253d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_12.xml @@ -0,0 +1,116 @@ + + + + + NEXRAD:1 + + 2009-03-28T15:00:00 + 2009-03-28T23:00:00 + + + + + + 12 + + + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_13.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_13.xml new file mode 100644 index 00000000..1a8423ff --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_13.xml @@ -0,0 +1,116 @@ + + + + + NEXRAD:1 + + 2009-03-28T15:00:00 + 2009-03-28T23:00:00 + + + + + + 13 + + + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_14.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_14.xml new file mode 100644 index 00000000..038bc42e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_14.xml @@ -0,0 +1,116 @@ + + + + + NEXRAD:1 + + 2009-03-28T15:00:00 + 2009-03-28T23:00:00 + + + + + + 14 + + + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_15.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_15.xml new file mode 100644 index 00000000..4c81f492 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_15.xml @@ -0,0 +1,116 @@ + + + + + NEXRAD:1 + + 2009-03-28T15:00:00 + 2009-03-28T23:00:00 + + + + + + 15 + + + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_2.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_2.xml new file mode 100644 index 00000000..813fd2f1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_2.xml @@ -0,0 +1,116 @@ + + + + + NEXRAD:1 + + 2009-03-28T15:00:00 + 2009-03-28T23:00:00 + + + + + + 2 + + + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_3.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_3.xml new file mode 100644 index 00000000..fb7f8e44 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_3.xml @@ -0,0 +1,116 @@ + + + + + NEXRAD:1 + + 2009-03-28T15:00:00 + 2009-03-28T23:00:00 + + + + + + 3 + + + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_4.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_4.xml new file mode 100644 index 00000000..3581c6c6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_4.xml @@ -0,0 +1,116 @@ + + + + + NEXRAD:1 + + 2009-03-28T15:00:00 + 2009-03-28T23:00:00 + + + + + + 4 + + + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_5.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_5.xml new file mode 100644 index 00000000..d03c59df --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_5.xml @@ -0,0 +1,116 @@ + + + + + NEXRAD:1 + + 2009-03-28T15:00:00 + 2009-03-28T23:00:00 + + + + + + 5 + + + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_6.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_6.xml new file mode 100644 index 00000000..d45f9b1d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_6.xml @@ -0,0 +1,116 @@ + + + + + NEXRAD:1 + + 2009-03-28T15:00:00 + 2009-03-28T23:00:00 + + + + + + 6 + + + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_7.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_7.xml new file mode 100644 index 00000000..d6da2980 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_7.xml @@ -0,0 +1,116 @@ + + + + + NEXRAD:1 + + 2009-03-28T15:00:00 + 2009-03-28T23:00:00 + + + + + + 7 + + + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_8.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_8.xml new file mode 100644 index 00000000..e133a747 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_8.xml @@ -0,0 +1,116 @@ + + + + + NEXRAD:1 + + 2009-03-28T15:00:00 + 2009-03-28T23:00:00 + + + + + + 8 + + + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_9.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_9.xml new file mode 100644 index 00000000..b05d0176 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/Rocky Branch/siteid_9.xml @@ -0,0 +1,116 @@ + + + + + NEXRAD:1 + + 2009-03-28T15:00:00 + 2009-03-28T23:00:00 + + + + + + 9 + + + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.018333333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.055833333 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.005000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + 0.000000000 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_1.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_1.xml new file mode 100644 index 00000000..87e00d63 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_1.xml @@ -0,0 +1,79 @@ + + + + + 0 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0.15 + 0.25 + 0.25 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_10.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_10.xml new file mode 100644 index 00000000..5f3be8b9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_10.xml @@ -0,0 +1,79 @@ + + + + + 9 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.15 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_11.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_11.xml new file mode 100644 index 00000000..ab537cf5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_11.xml @@ -0,0 +1,79 @@ + + + + + 10 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_12.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_12.xml new file mode 100644 index 00000000..d158ae98 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_12.xml @@ -0,0 +1,79 @@ + + + + + 11 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.15 + 0.25 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.25 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_13.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_13.xml new file mode 100644 index 00000000..88189300 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_13.xml @@ -0,0 +1,79 @@ + + + + + 12 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_14.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_14.xml new file mode 100644 index 00000000..436dc888 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_14.xml @@ -0,0 +1,79 @@ + + + + + 13 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_15.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_15.xml new file mode 100644 index 00000000..24c91610 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_15.xml @@ -0,0 +1,79 @@ + + + + + 14 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0.15 + 0.25 + 0.25 + 0 + 0 + 0.25 + 0 + 0 + 0 + 0 + 0 + 0 + 0.25 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_2.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_2.xml new file mode 100644 index 00000000..6a59709f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_2.xml @@ -0,0 +1,79 @@ + + + + + 1 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_3.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_3.xml new file mode 100644 index 00000000..c25c888f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_3.xml @@ -0,0 +1,79 @@ + + + + + 2 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0.15 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_4.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_4.xml new file mode 100644 index 00000000..173358e9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_4.xml @@ -0,0 +1,79 @@ + + + + + 3 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_5.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_5.xml new file mode 100644 index 00000000..7dbb5d1b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_5.xml @@ -0,0 +1,79 @@ + + + + + 4 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_6.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_6.xml new file mode 100644 index 00000000..0864f346 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_6.xml @@ -0,0 +1,79 @@ + + + + + 5 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_7.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_7.xml new file mode 100644 index 00000000..bf06a7fb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_7.xml @@ -0,0 +1,79 @@ + + + + + 6 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_8.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_8.xml new file mode 100644 index 00000000..d681fc4a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_8.xml @@ -0,0 +1,79 @@ + + + + + 7 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0.15 + 0 + 0 + 0.25 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.25 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_9.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_9.xml new file mode 100644 index 00000000..b93ab4e1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/cuahsi-his/waterMLdb/SmithBranch/siteid_9.xml @@ -0,0 +1,79 @@ + + + + + 8 + NEXRAD:1 + + 2009-08-20T21:40:00 + 2009-08-21T10:00:00 + + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.1 + 0.15 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.25 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0.25 + 0.1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.dbf new file mode 100644 index 00000000..08ced89e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.prj b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.prj new file mode 100644 index 00000000..f7f2e098 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.sbn new file mode 100644 index 00000000..404a67b9 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.sbx new file mode 100644 index 00000000..8c5724d6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.shp b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.shp new file mode 100644 index 00000000..d4fe4f22 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.shp.xml new file mode 100644 index 00000000..bdcaa41a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.shp.xml @@ -0,0 +1,3 @@ + + +{B235146B-5BA8-4F42-83B0-7C6967BA65B5}2009031715453300FALSE20090317154533002009031715453300Dissolve StreamNetwork C:\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shp ARCID "GRID_CODE FIRST;FROM_COMID LAST;TO_COMID FIRST;K SUM;LENGTHFT SUM;X LAST" MULTI_PART DISSOLVE_LINESMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.StreamNetStreamNetvector digital data\\CE-51\C\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shpREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770StreamNetenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20090317ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://\\CE-51\C\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shpLocal Area Network0.000ShapefileVectorSimplePolylineFALSE0FALSEFALSEString0GCS_North_American_1983NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_IntlLambert Conformal Conic32.50000034.833333-81.00000031.8333332000000.0000000.000000coordinate pairinternational feet0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl0StreamNetFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.ARCIDARCIDNumber195FIRST_GRIDFIRST_GRIDNumber195LAST_FROM_LAST_FROM_Number195FIRST_TO_CFIRST_TO_CNumber195SUM_KSUM_KFloat1911SUM_LENGTHSUM_LENGTHFloat1911LAST_XLAST_XNumber19520090317 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.shx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.shx new file mode 100644 index 00000000..8ebe4f3b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.dbf new file mode 100644 index 00000000..52cbca81 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.prj b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.prj new file mode 100644 index 00000000..5ded4bca --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.sbn new file mode 100644 index 00000000..92849ec4 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.sbx new file mode 100644 index 00000000..69af38b5 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.shp b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.shp new file mode 100644 index 00000000..20de4f02 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.shp.xml new file mode 100644 index 00000000..926c98da --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.shp.xml @@ -0,0 +1,3 @@ + + +2010071514074800FALSE20090317154533002009031715453300Dissolve StreamNetwork C:\Code\Dev.CSharp\OpenMI.Models\Repo.Code\branch\branch02\data\SmithBranchDataFiles\StreamNet.shp ARCID "GRID_CODE FIRST;FROM_COMID LAST;TO_COMID FIRST;K SUM;LENGTHFT SUM;X LAST" MULTI_PART DISSOLVE_LINESProject StreamNet_HEC C:\_Code\Dev.CSharp\HydroDesktop\Binaries\Plugins\HydroModeler\example_configuration\data\gis\StreamNet_HEC_Project.shp GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]] # PROJCS['NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',2000000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Standard_Parallel_1',32.5],PARAMETER['Standard_Parallel_2',34.83333333333334],PARAMETER['Latitude_Of_Origin',31.83333333333333],UNIT['Foot',0.3048]]{C50F9BDA-34CA-4851-8D55-2B54FE1E54E5}Microsoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.StreamNetStreamNetvector digital dataREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows XP Version 5.1 (Build 2600) Service Pack 3; ESRI ArcCatalog 9.3.0.1770StreamNetenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20090317ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://Local Area Network0.000ShapefileVectorSimplePolylineFALSE0FALSEFALSEString0GCS_North_American_1983NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_IntlLambert Conformal Conic32.50000034.833333-81.00000031.8333332000000.0000000.000000coordinate pairinternational feet0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl0StreamNetFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.ARCIDARCIDNumber195FIRST_GRIDFIRST_GRIDNumber195LAST_FROM_LAST_FROM_Number195FIRST_TO_CFIRST_TO_CNumber195SUM_KSUM_KFloat1911SUM_LENGTHSUM_LENGTHFloat1911LAST_XLAST_XNumber19520090317Dataset copied.2009100113311100Dataset copied.2009101614330700Dataset copied.2010071514074800 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.shx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.shx new file mode 100644 index 00000000..7d0454e4 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/StreamNet_HEC.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.dbf new file mode 100644 index 00000000..a57a6418 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.mwsr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.mwsr new file mode 100644 index 00000000..f82f3e7b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.mwsr @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.prj b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.prj new file mode 100644 index 00000000..f7f2e098 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.sbn new file mode 100644 index 00000000..2ad6fe02 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.sbx new file mode 100644 index 00000000..bb5ca171 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.shp b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.shp new file mode 100644 index 00000000..6ecbecfa Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.shp.xml new file mode 100644 index 00000000..51204f05 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.shp.xml @@ -0,0 +1,3 @@ + + +2009031613082500TRUEFeatureToPoint Watershed_Sub_ALL "C:\Code\OpenMI.Models\Repo.Code\branch\branch02\data\RockyBranchData\Smith Branch Data\SubWatershedPoints.shp" CENTROID{7DABFEC4-F981-49BF-B070-DC844A8B517C}file://Local Area NetworkDataset copied.2009031613082500 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.shx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.shx new file mode 100644 index 00000000..4a5806a6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.dbf new file mode 100644 index 00000000..80c1372f Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.mwsr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.mwsr new file mode 100644 index 00000000..cb1ce9c6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.mwsr @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.prj b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.prj new file mode 100644 index 00000000..5ded4bca --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.sbn new file mode 100644 index 00000000..7e21ff1e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.sbx new file mode 100644 index 00000000..a0a90ddb Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.shp b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.shp new file mode 100644 index 00000000..7e636e0b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.shp.xml new file mode 100644 index 00000000..97ac3538 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.shp.xml @@ -0,0 +1,3 @@ + + +{BBEA62A7-1480-4BEB-AD0D-203ED6EB6C96}2010071514070900TRUEProject SubWatershedCentroids_HEC C:\_Code\Dev.CSharp\HydroDesktop\Binaries\Plugins\HydroModeler\example_configuration\data\gis\SubWatershedCentroids_HEC_Pr.shp GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]] # PROJCS['Lambert_Conformal_Conic',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['false_easting',2000000.0],PARAMETER['false_northing',0.0],PARAMETER['central_meridian',-81.0],PARAMETER['standard_parallel_1',32.5],PARAMETER['standard_parallel_2',34.83333333333334],PARAMETER['latitude_of_origin',31.83333333333333],UNIT['unknown',0.3048]] diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.shx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.shx new file mode 100644 index 00000000..0460d5ce Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatershedCentroids_HEC.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.dbf new file mode 100644 index 00000000..e293b7f0 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.mwsr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.mwsr new file mode 100644 index 00000000..8c1cf44d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.mwsr @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.prj b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.prj new file mode 100644 index 00000000..f7f2e098 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.sbn new file mode 100644 index 00000000..4bb5867c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.sbx new file mode 100644 index 00000000..580fd3f4 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.shp b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.shp new file mode 100644 index 00000000..6995328f Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.shx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.shx new file mode 100644 index 00000000..87f87011 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.dbf new file mode 100644 index 00000000..439b4e84 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.mwsr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.mwsr new file mode 100644 index 00000000..46714cd7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.mwsr @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.prj b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.prj new file mode 100644 index 00000000..5ded4bca --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.sbn new file mode 100644 index 00000000..a5c6e508 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.sbx new file mode 100644 index 00000000..fd877e73 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.shp b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.shp new file mode 100644 index 00000000..1ef5a061 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.shp.xml new file mode 100644 index 00000000..bfdc21d3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.shp.xml @@ -0,0 +1,3 @@ + + +{A37C7937-1F18-4BC5-8ADC-8D918A194992}2010071514332200TRUEProject SubWatersheds_HEC_old C:\_Code\Dev.CSharp\HydroDesktop\Binaries\Plugins\HydroModeler\example_configuration\data\gis\SubWatersheds_n.shp GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]] # PROJCS['Lambert_Conformal_Conic',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['false_easting',2000000.0],PARAMETER['false_northing',0.0],PARAMETER['central_meridian',-81.0],PARAMETER['standard_parallel_1',32.5],PARAMETER['standard_parallel_2',34.83333333333334],PARAMETER['latitude_of_origin',31.83333333333333],UNIT['unknown',0.3048]] diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.shx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.shx new file mode 100644 index 00000000..3ee3e79c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/SubWatersheds_HEC.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/elements.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/elements.dbf new file mode 100644 index 00000000..5881acd8 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/elements.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/elements.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/elements.sbn new file mode 100644 index 00000000..8d8160da Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/elements.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/elements.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/elements.sbx new file mode 100644 index 00000000..0ec902e0 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/elements.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/elements.shp b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/elements.shp new file mode 100644 index 00000000..6348db60 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/elements.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/elements.shx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/elements.shx new file mode 100644 index 00000000..3735b8d7 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/data/gis/elements.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/RandomInputGenerator.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/RandomInputGenerator.omi new file mode 100644 index 00000000..07dd6b89 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/RandomInputGenerator.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Advection/Water_adv.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Advection/Water_adv.omi new file mode 100644 index 00000000..b316be16 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Advection/Water_adv.omi @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Advection/config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Advection/config.xml new file mode 100644 index 00000000..67aafd76 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Advection/config.xml @@ -0,0 +1,62 @@ + + + + + + water + numerical-analysis, Columbia SC + + + Concentration + C + + + ppm + 1 + + + + ppm + ppm + 1 + 0 + + scalar + + + + + sed + Smith Branch Watershed, Columbia SC + 1 + .\StreamNet.shp + + + Concentration + Excess Rainfall + + + 1 + Length + + + + in + inches + 1 + 0 + + Scalar + + + + + 08/20/2009 00:00:00 AM + 08/20/2009 01:00:00 AM + 1 + + + Water Component + read the Concentration values from sediment Component + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Advection/inputs.csv b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Advection/inputs.csv new file mode 100644 index 00000000..e08df65b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Advection/inputs.csv @@ -0,0 +1,7 @@ +u,2,,,,,,,, +D,0.025,,,,,,,, +rows_W,1,,,,,,,, +columns_W,10,,,,,,,, +rows_S,9,,,,,,,, +columns_S,10,,,,,,,, +1,1,1,0,0,0,0,0,0,0 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Diffusion/Sediment_Diff.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Diffusion/Sediment_Diff.omi new file mode 100644 index 00000000..93217e7f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Diffusion/Sediment_Diff.omi @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Diffusion/config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Diffusion/config.xml new file mode 100644 index 00000000..748558ae --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Diffusion/config.xml @@ -0,0 +1,63 @@ + + + + + + sed + numerical-analysis, Columbia SC + + + Concentration + C + + + ppm + 1 + + + + ppm + ppm + 1 + 0 + + scalar + + + + + water + Concentration, Columbia SC + 1 + .\StreamNet.shp + + + Concentration + Concentration + + + 1 + ppm + + + + ppm + ppm + 1 + 0 + + Scalar + + + + + + 08/20/2009 00:00:00 AM + 08/20/2009 01:00:00 AM + 1 + + + Soil Component + read the Concentration values from water component + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Diffusion/inputs.csv b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Diffusion/inputs.csv new file mode 100644 index 00000000..624e1b7b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/Diffusion/inputs.csv @@ -0,0 +1,15 @@ +u,2,,,,,,,, +D,0.025,,,,,,,, +rows_S,9,,,,,,,, +columns_S,10,,,,,,,, +rows_W,1,,,,,,,, +columns_W,10,,,,,,,, +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/LoadCalculator/LoadCalculator.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/LoadCalculator/LoadCalculator.omi new file mode 100644 index 00000000..32662619 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/LoadCalculator/LoadCalculator.omi @@ -0,0 +1,6 @@ + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/LoadCalculator/config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/LoadCalculator/config.xml new file mode 100644 index 00000000..8c7cf79a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/concentration/LoadCalculator/config.xml @@ -0,0 +1,93 @@ + + + + + + San Marcos Basin + San Marcos Basin, TX + 1 + + + Nutrient Load + Nutrient Loading in Kilograms per Day + + + Mass + 1 + + + Time + -1 + + + + kg/day + Kilograms per Day + 0.00001157 + 0 + + Scalar + + + + + San Marcos Basin + San Marcos Basin, TX + 1 + + + Nutrient Concentration + Nutrient Concentration in Kg/M3 + + + 1 + Mass + + + -3 + Length + + + + mg/l + Kilograms per cubic meter + 1 + 0 + + Scalar + + + + + San Marcos Basin + San Marcos Basin, TX + 1 + + + Discharge + Streamflow Discharge in Meters Feet per Second + + + 3 + Length + + + -1 + Time + + + + m^3/s + Cubic Meters per Second + 1 + 0 + + Scalar + + + + + 01/15/1975 12:00:00AM + 2592000 + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/Hargreaves.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/Hargreaves.omi new file mode 100644 index 00000000..81192112 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/Hargreaves.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/config.xml new file mode 100644 index 00000000..33e73988 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/config.xml @@ -0,0 +1,122 @@ + + + + + + Coweeta + Coweeta watershed, NC + .\data\coweeta_18.shp + 1 + + + PET + Potential Evapotranspiration + + + Length + 1 + + + T + -1 + + + + mm/day + Millimeters per day + 0.000000011574074 + 0 + + Scalar + + + + + + Climate Station 01 + Climate Station 01, near Coweeta watershed 18 in NC + .\data\climateStation.shp + 1 + + + Temp + Daily Averaged Temperature + + + Temperature + 1 + + + + Celsius + Degrees Celsius + 1 + 0 + + Scalar + + + + + + Climate Station 01 + Climate Station 01, near Coweeta watershed 18 in NC + .\data\climateStation.shp + 1 + + + Max Temp + Maximum Daily Temperature + + + Temperature + 1 + + + + Celsius + Degrees Celsius + 1 + 0 + + Scalar + + + + + + Climate Station 01 + Climate Station 01, near Coweeta watershed 18 in NC + .\data\climateStation.shp + 1 + + + Min Temp + Minimum Daily Temperature + + + Temperature + 1 + + + + Celsius + Degrees Celsius + 1 + 0 + + Scalar + + + + + + 05/29/2009 1:00:00 + 05/29/2009 2:00:00 + 3600 + + + Hargreaves PET + Potential Evapotranspiration Calculated Using the Hargreaves-Samani Method + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.dbf new file mode 100644 index 00000000..0fbe2102 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.prj b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.prj new file mode 100644 index 00000000..155f5ded --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.sbn new file mode 100644 index 00000000..a2b2de85 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.sbx new file mode 100644 index 00000000..d899efb2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.shp b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.shp new file mode 100644 index 00000000..f9a2977c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.shp.xml new file mode 100644 index 00000000..fb9ae587 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.shp.xml @@ -0,0 +1,3 @@ + + +2011060912300000TRUEProject C:\Temp\weather_stations.shp C:\Temp\weather_stations_Project.shp PROJCS['NAD_1983_UTM_Zone_17N',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]] #{22B652FD-59C5-438A-AFCA-1D6FD56C9F55}file://Local Area NetworkDataset copied.20060329Dataset copied.2011060808375400Dataset copied.2011060808514700Dataset copied.2011060912300000 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.shx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.shx new file mode 100644 index 00000000..e7f6becd Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/climateStation.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.dbf new file mode 100644 index 00000000..ad8aa44d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.prj b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.prj new file mode 100644 index 00000000..8e8ddec5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_UTM_Zone_17N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.sbn new file mode 100644 index 00000000..c0304f96 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.sbx new file mode 100644 index 00000000..f0b5ef9e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.shp b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.shp new file mode 100644 index 00000000..2df5fca4 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.shx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.shx new file mode 100644 index 00000000..a5a3b468 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/Hargreaves-Samani/data/coweeta_18.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/CompositionRun.log b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/CompositionRun.log new file mode 100644 index 00000000..79e786aa Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/CompositionRun.log differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/ET.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/ET.omi new file mode 100644 index 00000000..1a5cf4ff --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/ET.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/ET.opr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/ET.opr new file mode 100644 index 00000000..c717be79 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/ET.opr @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/config.xml new file mode 100644 index 00000000..0432c058 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/config.xml @@ -0,0 +1,234 @@ + + + + + + SC_NC Study + Potantial Evapotranspiration + ./data/PeTgauges.shp + 1 + + + PET + Potantial Evapotranspiration + + + Length + 1 + + + time + -1 + + + + mm/d + millimeters per day + 1 + 0 + + Scalar + + + + + SC_NC Study + Standardized Reference Evapotranspiration(ASCE-Penman-Monteith) + ./data/PeTgauges.shp + 1 + + + StandardizedET + Standardized Reference Evapotranspiration + + + Length + 1 + + + time + -1 + + + + mm/d + millimeters per day + 1 + 0 + + Scalar + + + + + NetRadiation + NetRadiation + 1 + ./data/PeTgauges.shp + + + NSR + net radiation + + + 1 + Megajoule + + + -2 + meter + + + -1 + day + + + + MJ/m^2/d + Megajoule per square meter per day + 1 + 0 + + Scalar + + + + + SC_NC Study + Temperature of the gauge + ./data/PeTgauges.shp + 1 + + + Temperature + Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Dew Point Temperature of the gauge + ./data/PeTgauges.shp + 1 + + + Dew Point Temperature + Dew Point Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Maximum Temperature of the gauge + ./data/PeTgauges.shp + 1 + + + Maximum Temperature + Maximum Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Minimum Temperature of the gauge + ./data/PeTgauges.shp + 1 + + + Minimum Temperature + Minimum Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + wind speed of the gauge + ./data/PeTgauges.shp + 1 + + + wind speed + wind speed + + + Length + 1 + + + Time + -1 + + + + m/s + meter/second + 1 + 0 + + Scalar + + + + + 01/01/1982 + 02/28/1982 + 86400 + + + PET: Penman-Monteith + This component calculates PET(potantial evapotranspiration) and ETsz(Standardized Evapotranspiration) using a variation of the Penman-Monteith algorithm, defined by ASCE + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.dbf new file mode 100644 index 00000000..5b09a3eb Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.prj b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.prj new file mode 100644 index 00000000..2d456db1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609600.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.sbn new file mode 100644 index 00000000..213ab8fd Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.sbx new file mode 100644 index 00000000..5d010438 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.shp b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.shp new file mode 100644 index 00000000..794e4f1c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.shp.xml new file mode 100644 index 00000000..83706310 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.shp.xml @@ -0,0 +1,3 @@ + + +2011050412375900FALSEFeatureClassToFeatureClass PeTgauges_Layer "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data" PeTgauges.shp # "GaugeIDs 'GaugeIDs' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,GaugeIDs,-1,-1;X 'X' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,X,-1,-1;Y 'Y' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,Y,-1,-1" # "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp"DefineProjection PeTgauges GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]] PeTgaugesFeatureClassToFeatureClass PeTgauges "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data" PeTgages.shp # "GaugeIDs 'GaugeIDs' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,GaugeIDs,-1,-1;X 'X' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,X,-1,-1;Y 'Y' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,Y,-1,-1" # "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgages.shp"Project PeTgages "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgages_Prjctd.shp" PROJCS['NAD_1983_StatePlane_South_Carolina_FIPS_3900',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',609600.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Standard_Parallel_1',32.5],PARAMETER['Standard_Parallel_2',34.83333333333334],PARAMETER['Latitude_Of_Origin',31.83333333333333],UNIT['Meter',1.0]] # GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]]20110504123646002011050412364600{EF570522-7F48-4B98-8EFA-F2853B5F611C}Microsoft Windows 2000 Version 5.2 (Build 3790) Service Pack 2; ESRI ArcCatalog 9.3.1.3000enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.PeTgagesPeTgagesvector digital dataREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows 2000 Version 5.2 (Build 3790) Service Pack 2; ESRI ArcCatalog 9.3.1.3000PeTgagesenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20110504ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://Local Area Network0.000ShapefileVectorSimplePointFALSE0FALSEFALSEEntity point0GCS_North_American_1983Decimal degrees0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222GCS_North_American_19830PeTgagesFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.GaugeIDsGaugeIDsFloat1911XXFloat1911YYFloat191120110504Dataset copied.2011050412375900 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.shx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.shx new file mode 100644 index 00000000..368f99c1 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/data/PeTgauges.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/output.csv b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/output.csv new file mode 100644 index 00000000..fc197d11 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PenmanMonteith/output.csv @@ -0,0 +1,63 @@ +StationID:,7233870,7233812 +Latitude:,34.898998260498,35.431999206543 +Longitude:,-82.2190017700195,-82.5380020141602 +Elevation:,296,661.400024414063 +Date:,ETsz,ETsz +01-01-1982,0,0 +01-02-1982,0,0 +01-03-1982,0,0 +01-04-1982,0,0 +01-05-1982,0,0 +01-06-1982,0,0 +01-07-1982,0,0 +01-08-1982,0,0 +01-09-1982,0,0 +01-10-1982,0,0 +01-11-1982,0,0 +01-12-1982,0,0 +01-13-1982,0,0 +01-14-1982,0,0 +01-15-1982,0,0 +01-16-1982,0,0 +01-17-1982,0,0 +01-18-1982,0,0 +01-19-1982,0,0 +01-20-1982,0,0 +01-21-1982,0,0 +01-22-1982,0,0 +01-23-1982,0,0 +01-24-1982,0,0 +01-25-1982,0,0 +01-26-1982,0,0 +01-27-1982,0,0 +01-28-1982,0,0 +01-29-1982,0,0 +01-30-1982,0,0 +01-31-1982,0,0 +02-01-1982,0,0 +02-02-1982,0,0 +02-03-1982,0,0 +02-04-1982,0,0 +02-05-1982,0,0 +02-06-1982,0,0 +02-07-1982,0,0 +02-08-1982,0,0 +02-09-1982,0,0 +02-10-1982,0,0 +02-11-1982,0,0 +02-12-1982,0,0 +02-13-1982,0,0 +02-14-1982,0,0 +02-15-1982,0,0 +02-16-1982,0,0 +02-17-1982,0,0 +02-18-1982,0,0 +02-19-1982,0,0 +02-20-1982,0,0 +02-21-1982,0,0 +02-22-1982,0,0 +02-23-1982,0,0 +02-24-1982,0,0 +02-25-1982,0,0 +02-26-1982,0,0 +02-27-1982,0,0 \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/CompositionRun.log b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/CompositionRun.log new file mode 100644 index 00000000..ba1317a1 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/CompositionRun.log differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/PTPET.opr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/PTPET.opr new file mode 100644 index 00000000..a1d5790a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/PTPET.opr @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/PT_PET.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/PT_PET.omi new file mode 100644 index 00000000..0adbc621 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/PT_PET.omi @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/PT_PETconfig.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/PT_PETconfig.xml new file mode 100644 index 00000000..06217bdf --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/PT_PETconfig.xml @@ -0,0 +1,155 @@ + + + + + + pet + Potantial Evapotranspiration + ..\..\..\data\NCDCgages.shp + 1 + + + PET + Potantial Evapotranspiration + + + Length + 1 + + + time + -1 + + + + mm/d + millimeters per day + 1 + 0 + + Scalar + + + + + ETsz + Standardized Reference Evapotranspiration(ASCE-Penman-Monteith) + ..\..\..\data\NCDCgages.shp + 1 + + + StandardizedET + Standardized Reference Evapotranspiration + + + Length + 1 + + + time + -1 + + + + mm/d + millimeters per day + 1 + 0 + + Scalar + + + + + NetRadiation + NetRadiation + 1 + ..\..\..\data\NCDCgages.shp + + + NSR + net radiation + + + 1 + Megajoule + + + -2 + meter + + + -1 + day + + + + MJ/m^2/d + Megajoule per square meter per day + 1 + 0 + + Scalar + + + + + T + Temperature + 1 + ..\..\..\data\NCDCgages.shp + + + Temp + Temperature + + + 1 + C + + + + C + Celsius degree + 1 + 0 + + Scalar + + + + + Z + Elevation + 1 + ..\..\..\data\NCDCgages.shp + + + Elevation + Elevation of the station + + + 1 + metter + + + + m + metter + 1 + 0 + + Scalar + + + + + 01/01/2005 + 12/31/2009 + 86400 + + + PET: Priestley-Taylor + This component calculates PET(potantial evapotranspiration) and ETsz(Standardized Evapotranspiration) using a variation of the Priestley-Taylor algorithm. + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.dbf new file mode 100644 index 00000000..d7a03310 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.prj b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.prj new file mode 100644 index 00000000..5ded4bca --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.prj @@ -0,0 +1 @@ +GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.sbn new file mode 100644 index 00000000..9a4177d8 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.sbx new file mode 100644 index 00000000..3baa3de3 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.shp b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.shp new file mode 100644 index 00000000..148af331 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.shp.xml new file mode 100644 index 00000000..8581c6c1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.shp.xml @@ -0,0 +1,3 @@ + + +2010073011350500TRUEFeatureVerticesToPoints NCDCStations "C:\Documents and Settings\ERCANM\Desktop\OpenMI\DataPreperation\workspace\GISwork\work1\NCDCgages.shp" ALL{25CFC97B-424C-4B37-BD20-7E913D2345A1}\\CE-57\C\Documents and Settings\ERCANM\Desktop\OpenMI\Components\PETPriestley-Taylor\data\NCDCgagesfile://\\CE-57\C\Documents and Settings\ERCANM\Desktop\OpenMI\Components\PETPriestley-Taylor\data\NCDCgagesLocal Area NetworkDataset copied.C:\Documents and Settings\ERCANM\Desktop\OpenMI\DataPreperation\workspace\GISwork\work1\NCDCgages2010073011350500 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.shx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.shx new file mode 100644 index 00000000..884125e2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/NCDCgages.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/PT-PET.set b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/PT-PET.set new file mode 100644 index 00000000..a77711dd --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/data/PT-PET.set @@ -0,0 +1,4 @@ +Hydrodesktop Priestley-Taylor Potantial Evapotranspiration Component Coefficients. +This file gives flexibility to determine some coefficients. +Kc=,0.85,//Average Crop Coefficient over the watershed. +Alpha=,1.3,//Coefficient = 1.26 for humid and 1.74 for arid areas.(http://www.iiasa.ac.at/Admin/PUB/Documents/WP-94-064.pdf explanations is on page 9/33) \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/output.csv b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/output.csv new file mode 100644 index 00000000..3da98e9c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/evapotranspiration/PriestleyTaylor/output.csv @@ -0,0 +1,1828 @@ +StationID: +Latitude: +Longitude: +Elevation: +Date: +01-03-2005 +01-04-2005 +01-05-2005 +01-06-2005 +01-07-2005 +01-08-2005 +01-09-2005 +01-10-2005 +01-11-2005 +01-12-2005 +01-13-2005 +01-14-2005 +01-15-2005 +01-16-2005 +01-17-2005 +01-18-2005 +01-19-2005 +01-20-2005 +01-21-2005 +01-22-2005 +01-23-2005 +01-24-2005 +01-25-2005 +01-26-2005 +01-27-2005 +01-28-2005 +01-29-2005 +01-30-2005 +01-31-2005 +02-01-2005 +02-02-2005 +02-03-2005 +02-04-2005 +02-05-2005 +02-06-2005 +02-07-2005 +02-08-2005 +02-09-2005 +02-10-2005 +02-11-2005 +02-12-2005 +02-13-2005 +02-14-2005 +02-15-2005 +02-16-2005 +02-17-2005 +02-18-2005 +02-19-2005 +02-20-2005 +02-21-2005 +02-22-2005 +02-23-2005 +02-24-2005 +02-25-2005 +02-26-2005 +02-27-2005 +02-28-2005 +03-01-2005 +03-02-2005 +03-03-2005 +03-04-2005 +03-05-2005 +03-06-2005 +03-07-2005 +03-08-2005 +03-09-2005 +03-10-2005 +03-11-2005 +03-12-2005 +03-13-2005 +03-14-2005 +03-15-2005 +03-16-2005 +03-17-2005 +03-18-2005 +03-19-2005 +03-20-2005 +03-21-2005 +03-22-2005 +03-23-2005 +03-24-2005 +03-25-2005 +03-26-2005 +03-27-2005 +03-28-2005 +03-29-2005 +03-30-2005 +03-31-2005 +04-01-2005 +04-02-2005 +04-03-2005 +04-04-2005 +04-05-2005 +04-06-2005 +04-07-2005 +04-08-2005 +04-09-2005 +04-10-2005 +04-11-2005 +04-12-2005 +04-13-2005 +04-14-2005 +04-15-2005 +04-16-2005 +04-17-2005 +04-18-2005 +04-19-2005 +04-20-2005 +04-21-2005 +04-22-2005 +04-23-2005 +04-24-2005 +04-25-2005 +04-26-2005 +04-27-2005 +04-28-2005 +04-29-2005 +04-30-2005 +05-01-2005 +05-02-2005 +05-03-2005 +05-04-2005 +05-05-2005 +05-06-2005 +05-07-2005 +05-08-2005 +05-09-2005 +05-10-2005 +05-11-2005 +05-12-2005 +05-13-2005 +05-14-2005 +05-15-2005 +05-16-2005 +05-17-2005 +05-18-2005 +05-19-2005 +05-20-2005 +05-21-2005 +05-22-2005 +05-23-2005 +05-24-2005 +05-25-2005 +05-26-2005 +05-27-2005 +05-28-2005 +05-29-2005 +05-30-2005 +05-31-2005 +06-01-2005 +06-02-2005 +06-03-2005 +06-04-2005 +06-05-2005 +06-06-2005 +06-07-2005 +06-08-2005 +06-09-2005 +06-10-2005 +06-11-2005 +06-12-2005 +06-13-2005 +06-14-2005 +06-15-2005 +06-16-2005 +06-17-2005 +06-18-2005 +06-19-2005 +06-20-2005 +06-21-2005 +06-22-2005 +06-23-2005 +06-24-2005 +06-25-2005 +06-26-2005 +06-27-2005 +06-28-2005 +06-29-2005 +06-30-2005 +07-01-2005 +07-02-2005 +07-03-2005 +07-04-2005 +07-05-2005 +07-06-2005 +07-07-2005 +07-08-2005 +07-09-2005 +07-10-2005 +07-11-2005 +07-12-2005 +07-13-2005 +07-14-2005 +07-15-2005 +07-16-2005 +07-17-2005 +07-18-2005 +07-19-2005 +07-20-2005 +07-21-2005 +07-22-2005 +07-23-2005 +07-24-2005 +07-25-2005 +07-26-2005 +07-27-2005 +07-28-2005 +07-29-2005 +07-30-2005 +07-31-2005 +08-01-2005 +08-02-2005 +08-03-2005 +08-04-2005 +08-05-2005 +08-06-2005 +08-07-2005 +08-08-2005 +08-09-2005 +08-10-2005 +08-11-2005 +08-12-2005 +08-13-2005 +08-14-2005 +08-15-2005 +08-16-2005 +08-17-2005 +08-18-2005 +08-19-2005 +08-20-2005 +08-21-2005 +08-22-2005 +08-23-2005 +08-24-2005 +08-25-2005 +08-26-2005 +08-27-2005 +08-28-2005 +08-29-2005 +08-30-2005 +08-31-2005 +09-01-2005 +09-02-2005 +09-03-2005 +09-04-2005 +09-05-2005 +09-06-2005 +09-07-2005 +09-08-2005 +09-09-2005 +09-10-2005 +09-11-2005 +09-12-2005 +09-13-2005 +09-14-2005 +09-15-2005 +09-16-2005 +09-17-2005 +09-18-2005 +09-19-2005 +09-20-2005 +09-21-2005 +09-22-2005 +09-23-2005 +09-24-2005 +09-25-2005 +09-26-2005 +09-27-2005 +09-28-2005 +09-29-2005 +09-30-2005 +10-01-2005 +10-02-2005 +10-03-2005 +10-04-2005 +10-05-2005 +10-06-2005 +10-07-2005 +10-08-2005 +10-09-2005 +10-10-2005 +10-11-2005 +10-12-2005 +10-13-2005 +10-14-2005 +10-15-2005 +10-16-2005 +10-17-2005 +10-18-2005 +10-19-2005 +10-20-2005 +10-21-2005 +10-22-2005 +10-23-2005 +10-24-2005 +10-25-2005 +10-26-2005 +10-27-2005 +10-28-2005 +10-29-2005 +10-30-2005 +10-31-2005 +11-01-2005 +11-02-2005 +11-03-2005 +11-04-2005 +11-05-2005 +11-06-2005 +11-07-2005 +11-08-2005 +11-09-2005 +11-10-2005 +11-11-2005 +11-12-2005 +11-13-2005 +11-14-2005 +11-15-2005 +11-16-2005 +11-17-2005 +11-18-2005 +11-19-2005 +11-20-2005 +11-21-2005 +11-22-2005 +11-23-2005 +11-24-2005 +11-25-2005 +11-26-2005 +11-27-2005 +11-28-2005 +11-29-2005 +11-30-2005 +12-01-2005 +12-02-2005 +12-03-2005 +12-04-2005 +12-05-2005 +12-06-2005 +12-07-2005 +12-08-2005 +12-09-2005 +12-10-2005 +12-11-2005 +12-12-2005 +12-13-2005 +12-14-2005 +12-15-2005 +12-16-2005 +12-17-2005 +12-18-2005 +12-19-2005 +12-20-2005 +12-21-2005 +12-22-2005 +12-23-2005 +12-24-2005 +12-25-2005 +12-26-2005 +12-27-2005 +12-28-2005 +12-29-2005 +12-30-2005 +12-31-2005 +01-01-2006 +01-02-2006 +01-03-2006 +01-04-2006 +01-05-2006 +01-06-2006 +01-07-2006 +01-08-2006 +01-09-2006 +01-10-2006 +01-11-2006 +01-12-2006 +01-13-2006 +01-14-2006 +01-15-2006 +01-16-2006 +01-17-2006 +01-18-2006 +01-19-2006 +01-20-2006 +01-21-2006 +01-22-2006 +01-23-2006 +01-24-2006 +01-25-2006 +01-26-2006 +01-27-2006 +01-28-2006 +01-29-2006 +01-30-2006 +01-31-2006 +02-01-2006 +02-02-2006 +02-03-2006 +02-04-2006 +02-05-2006 +02-06-2006 +02-07-2006 +02-08-2006 +02-09-2006 +02-10-2006 +02-11-2006 +02-12-2006 +02-13-2006 +02-14-2006 +02-15-2006 +02-16-2006 +02-17-2006 +02-18-2006 +02-19-2006 +02-20-2006 +02-21-2006 +02-22-2006 +02-23-2006 +02-24-2006 +02-25-2006 +02-26-2006 +02-27-2006 +02-28-2006 +03-01-2006 +03-02-2006 +03-03-2006 +03-04-2006 +03-05-2006 +03-06-2006 +03-07-2006 +03-08-2006 +03-09-2006 +03-10-2006 +03-11-2006 +03-12-2006 +03-13-2006 +03-14-2006 +03-15-2006 +03-16-2006 +03-17-2006 +03-18-2006 +03-19-2006 +03-20-2006 +03-21-2006 +03-22-2006 +03-23-2006 +03-24-2006 +03-25-2006 +03-26-2006 +03-27-2006 +03-28-2006 +03-29-2006 +03-30-2006 +03-31-2006 +04-01-2006 +04-02-2006 +04-03-2006 +04-04-2006 +04-05-2006 +04-06-2006 +04-07-2006 +04-08-2006 +04-09-2006 +04-10-2006 +04-11-2006 +04-12-2006 +04-13-2006 +04-14-2006 +04-15-2006 +04-16-2006 +04-17-2006 +04-18-2006 +04-19-2006 +04-20-2006 +04-21-2006 +04-22-2006 +04-23-2006 +04-24-2006 +04-25-2006 +04-26-2006 +04-27-2006 +04-28-2006 +04-29-2006 +04-30-2006 +05-01-2006 +05-02-2006 +05-03-2006 +05-04-2006 +05-05-2006 +05-06-2006 +05-07-2006 +05-08-2006 +05-09-2006 +05-10-2006 +05-11-2006 +05-12-2006 +05-13-2006 +05-14-2006 +05-15-2006 +05-16-2006 +05-17-2006 +05-18-2006 +05-19-2006 +05-20-2006 +05-21-2006 +05-22-2006 +05-23-2006 +05-24-2006 +05-25-2006 +05-26-2006 +05-27-2006 +05-28-2006 +05-29-2006 +05-30-2006 +05-31-2006 +06-01-2006 +06-02-2006 +06-03-2006 +06-04-2006 +06-05-2006 +06-06-2006 +06-07-2006 +06-08-2006 +06-09-2006 +06-10-2006 +06-11-2006 +06-12-2006 +06-13-2006 +06-14-2006 +06-15-2006 +06-16-2006 +06-17-2006 +06-18-2006 +06-19-2006 +06-20-2006 +06-21-2006 +06-22-2006 +06-23-2006 +06-24-2006 +06-25-2006 +06-26-2006 +06-27-2006 +06-28-2006 +06-29-2006 +06-30-2006 +07-01-2006 +07-02-2006 +07-03-2006 +07-04-2006 +07-05-2006 +07-06-2006 +07-07-2006 +07-08-2006 +07-09-2006 +07-10-2006 +07-11-2006 +07-12-2006 +07-13-2006 +07-14-2006 +07-15-2006 +07-16-2006 +07-17-2006 +07-18-2006 +07-19-2006 +07-20-2006 +07-21-2006 +07-22-2006 +07-23-2006 +07-24-2006 +07-25-2006 +07-26-2006 +07-27-2006 +07-28-2006 +07-29-2006 +07-30-2006 +07-31-2006 +08-01-2006 +08-02-2006 +08-03-2006 +08-04-2006 +08-05-2006 +08-06-2006 +08-07-2006 +08-08-2006 +08-09-2006 +08-10-2006 +08-11-2006 +08-12-2006 +08-13-2006 +08-14-2006 +08-15-2006 +08-16-2006 +08-17-2006 +08-18-2006 +08-19-2006 +08-20-2006 +08-21-2006 +08-22-2006 +08-23-2006 +08-24-2006 +08-25-2006 +08-26-2006 +08-27-2006 +08-28-2006 +08-29-2006 +08-30-2006 +08-31-2006 +09-01-2006 +09-02-2006 +09-03-2006 +09-04-2006 +09-05-2006 +09-06-2006 +09-07-2006 +09-08-2006 +09-09-2006 +09-10-2006 +09-11-2006 +09-12-2006 +09-13-2006 +09-14-2006 +09-15-2006 +09-16-2006 +09-17-2006 +09-18-2006 +09-19-2006 +09-20-2006 +09-21-2006 +09-22-2006 +09-23-2006 +09-24-2006 +09-25-2006 +09-26-2006 +09-27-2006 +09-28-2006 +09-29-2006 +09-30-2006 +10-01-2006 +10-02-2006 +10-03-2006 +10-04-2006 +10-05-2006 +10-06-2006 +10-07-2006 +10-08-2006 +10-09-2006 +10-10-2006 +10-11-2006 +10-12-2006 +10-13-2006 +10-14-2006 +10-15-2006 +10-16-2006 +10-17-2006 +10-18-2006 +10-19-2006 +10-20-2006 +10-21-2006 +10-22-2006 +10-23-2006 +10-24-2006 +10-25-2006 +10-26-2006 +10-27-2006 +10-28-2006 +10-29-2006 +10-30-2006 +10-31-2006 +11-01-2006 +11-02-2006 +11-03-2006 +11-04-2006 +11-05-2006 +11-06-2006 +11-07-2006 +11-08-2006 +11-09-2006 +11-10-2006 +11-11-2006 +11-12-2006 +11-13-2006 +11-14-2006 +11-15-2006 +11-16-2006 +11-17-2006 +11-18-2006 +11-19-2006 +11-20-2006 +11-21-2006 +11-22-2006 +11-23-2006 +11-24-2006 +11-25-2006 +11-26-2006 +11-27-2006 +11-28-2006 +11-29-2006 +11-30-2006 +12-01-2006 +12-02-2006 +12-03-2006 +12-04-2006 +12-05-2006 +12-06-2006 +12-07-2006 +12-08-2006 +12-09-2006 +12-10-2006 +12-11-2006 +12-12-2006 +12-13-2006 +12-14-2006 +12-15-2006 +12-16-2006 +12-17-2006 +12-18-2006 +12-19-2006 +12-20-2006 +12-21-2006 +12-22-2006 +12-23-2006 +12-24-2006 +12-25-2006 +12-26-2006 +12-27-2006 +12-28-2006 +12-29-2006 +12-30-2006 +12-31-2006 +01-01-2007 +01-02-2007 +01-03-2007 +01-04-2007 +01-05-2007 +01-06-2007 +01-07-2007 +01-08-2007 +01-09-2007 +01-10-2007 +01-11-2007 +01-12-2007 +01-13-2007 +01-14-2007 +01-15-2007 +01-16-2007 +01-17-2007 +01-18-2007 +01-19-2007 +01-20-2007 +01-21-2007 +01-22-2007 +01-23-2007 +01-24-2007 +01-25-2007 +01-26-2007 +01-27-2007 +01-28-2007 +01-29-2007 +01-30-2007 +01-31-2007 +02-01-2007 +02-02-2007 +02-03-2007 +02-04-2007 +02-05-2007 +02-06-2007 +02-07-2007 +02-08-2007 +02-09-2007 +02-10-2007 +02-11-2007 +02-12-2007 +02-13-2007 +02-14-2007 +02-15-2007 +02-16-2007 +02-17-2007 +02-18-2007 +02-19-2007 +02-20-2007 +02-21-2007 +02-22-2007 +02-23-2007 +02-24-2007 +02-25-2007 +02-26-2007 +02-27-2007 +02-28-2007 +03-01-2007 +03-02-2007 +03-03-2007 +03-04-2007 +03-05-2007 +03-06-2007 +03-07-2007 +03-08-2007 +03-09-2007 +03-10-2007 +03-11-2007 +03-12-2007 +03-13-2007 +03-14-2007 +03-15-2007 +03-16-2007 +03-17-2007 +03-18-2007 +03-19-2007 +03-20-2007 +03-21-2007 +03-22-2007 +03-23-2007 +03-24-2007 +03-25-2007 +03-26-2007 +03-27-2007 +03-28-2007 +03-29-2007 +03-30-2007 +03-31-2007 +04-01-2007 +04-02-2007 +04-03-2007 +04-04-2007 +04-05-2007 +04-06-2007 +04-07-2007 +04-08-2007 +04-09-2007 +04-10-2007 +04-11-2007 +04-12-2007 +04-13-2007 +04-14-2007 +04-15-2007 +04-16-2007 +04-17-2007 +04-18-2007 +04-19-2007 +04-20-2007 +04-21-2007 +04-22-2007 +04-23-2007 +04-24-2007 +04-25-2007 +04-26-2007 +04-27-2007 +04-28-2007 +04-29-2007 +04-30-2007 +05-01-2007 +05-02-2007 +05-03-2007 +05-04-2007 +05-05-2007 +05-06-2007 +05-07-2007 +05-08-2007 +05-09-2007 +05-10-2007 +05-11-2007 +05-12-2007 +05-13-2007 +05-14-2007 +05-15-2007 +05-16-2007 +05-17-2007 +05-18-2007 +05-19-2007 +05-20-2007 +05-21-2007 +05-22-2007 +05-23-2007 +05-24-2007 +05-25-2007 +05-26-2007 +05-27-2007 +05-28-2007 +05-29-2007 +05-30-2007 +05-31-2007 +06-01-2007 +06-02-2007 +06-03-2007 +06-04-2007 +06-05-2007 +06-06-2007 +06-07-2007 +06-08-2007 +06-09-2007 +06-10-2007 +06-11-2007 +06-12-2007 +06-13-2007 +06-14-2007 +06-15-2007 +06-16-2007 +06-17-2007 +06-18-2007 +06-19-2007 +06-20-2007 +06-21-2007 +06-22-2007 +06-23-2007 +06-24-2007 +06-25-2007 +06-26-2007 +06-27-2007 +06-28-2007 +06-29-2007 +06-30-2007 +07-01-2007 +07-02-2007 +07-03-2007 +07-04-2007 +07-05-2007 +07-06-2007 +07-07-2007 +07-08-2007 +07-09-2007 +07-10-2007 +07-11-2007 +07-12-2007 +07-13-2007 +07-14-2007 +07-15-2007 +07-16-2007 +07-17-2007 +07-18-2007 +07-19-2007 +07-20-2007 +07-21-2007 +07-22-2007 +07-23-2007 +07-24-2007 +07-25-2007 +07-26-2007 +07-27-2007 +07-28-2007 +07-29-2007 +07-30-2007 +07-31-2007 +08-01-2007 +08-02-2007 +08-03-2007 +08-04-2007 +08-05-2007 +08-06-2007 +08-07-2007 +08-08-2007 +08-09-2007 +08-10-2007 +08-11-2007 +08-12-2007 +08-13-2007 +08-14-2007 +08-15-2007 +08-16-2007 +08-17-2007 +08-18-2007 +08-19-2007 +08-20-2007 +08-21-2007 +08-22-2007 +08-23-2007 +08-24-2007 +08-25-2007 +08-26-2007 +08-27-2007 +08-28-2007 +08-29-2007 +08-30-2007 +08-31-2007 +09-01-2007 +09-02-2007 +09-03-2007 +09-04-2007 +09-05-2007 +09-06-2007 +09-07-2007 +09-08-2007 +09-09-2007 +09-10-2007 +09-11-2007 +09-12-2007 +09-13-2007 +09-14-2007 +09-15-2007 +09-16-2007 +09-17-2007 +09-18-2007 +09-19-2007 +09-20-2007 +09-21-2007 +09-22-2007 +09-23-2007 +09-24-2007 +09-25-2007 +09-26-2007 +09-27-2007 +09-28-2007 +09-29-2007 +09-30-2007 +10-01-2007 +10-02-2007 +10-03-2007 +10-04-2007 +10-05-2007 +10-06-2007 +10-07-2007 +10-08-2007 +10-09-2007 +10-10-2007 +10-11-2007 +10-12-2007 +10-13-2007 +10-14-2007 +10-15-2007 +10-16-2007 +10-17-2007 +10-18-2007 +10-19-2007 +10-20-2007 +10-21-2007 +10-22-2007 +10-23-2007 +10-24-2007 +10-25-2007 +10-26-2007 +10-27-2007 +10-28-2007 +10-29-2007 +10-30-2007 +10-31-2007 +11-01-2007 +11-02-2007 +11-03-2007 +11-04-2007 +11-05-2007 +11-06-2007 +11-07-2007 +11-08-2007 +11-09-2007 +11-10-2007 +11-11-2007 +11-12-2007 +11-13-2007 +11-14-2007 +11-15-2007 +11-16-2007 +11-17-2007 +11-18-2007 +11-19-2007 +11-20-2007 +11-21-2007 +11-22-2007 +11-23-2007 +11-24-2007 +11-25-2007 +11-26-2007 +11-27-2007 +11-28-2007 +11-29-2007 +11-30-2007 +12-01-2007 +12-02-2007 +12-03-2007 +12-04-2007 +12-05-2007 +12-06-2007 +12-07-2007 +12-08-2007 +12-09-2007 +12-10-2007 +12-11-2007 +12-12-2007 +12-13-2007 +12-14-2007 +12-15-2007 +12-16-2007 +12-17-2007 +12-18-2007 +12-19-2007 +12-20-2007 +12-21-2007 +12-22-2007 +12-23-2007 +12-24-2007 +12-25-2007 +12-26-2007 +12-27-2007 +12-28-2007 +12-29-2007 +12-30-2007 +12-31-2007 +01-01-2008 +01-02-2008 +01-03-2008 +01-04-2008 +01-05-2008 +01-06-2008 +01-07-2008 +01-08-2008 +01-09-2008 +01-10-2008 +01-11-2008 +01-12-2008 +01-13-2008 +01-14-2008 +01-15-2008 +01-16-2008 +01-17-2008 +01-18-2008 +01-19-2008 +01-20-2008 +01-21-2008 +01-22-2008 +01-23-2008 +01-24-2008 +01-25-2008 +01-26-2008 +01-27-2008 +01-28-2008 +01-29-2008 +01-30-2008 +01-31-2008 +02-01-2008 +02-02-2008 +02-03-2008 +02-04-2008 +02-05-2008 +02-06-2008 +02-07-2008 +02-08-2008 +02-09-2008 +02-10-2008 +02-11-2008 +02-12-2008 +02-13-2008 +02-14-2008 +02-15-2008 +02-16-2008 +02-17-2008 +02-18-2008 +02-19-2008 +02-20-2008 +02-21-2008 +02-22-2008 +02-23-2008 +02-24-2008 +02-25-2008 +02-26-2008 +02-27-2008 +02-28-2008 +02-29-2008 +03-01-2008 +03-02-2008 +03-03-2008 +03-04-2008 +03-05-2008 +03-06-2008 +03-07-2008 +03-08-2008 +03-09-2008 +03-10-2008 +03-11-2008 +03-12-2008 +03-13-2008 +03-14-2008 +03-15-2008 +03-16-2008 +03-17-2008 +03-18-2008 +03-19-2008 +03-20-2008 +03-21-2008 +03-22-2008 +03-23-2008 +03-24-2008 +03-25-2008 +03-26-2008 +03-27-2008 +03-28-2008 +03-29-2008 +03-30-2008 +03-31-2008 +04-01-2008 +04-02-2008 +04-03-2008 +04-04-2008 +04-05-2008 +04-06-2008 +04-07-2008 +04-08-2008 +04-09-2008 +04-10-2008 +04-11-2008 +04-12-2008 +04-13-2008 +04-14-2008 +04-15-2008 +04-16-2008 +04-17-2008 +04-18-2008 +04-19-2008 +04-20-2008 +04-21-2008 +04-22-2008 +04-23-2008 +04-24-2008 +04-25-2008 +04-26-2008 +04-27-2008 +04-28-2008 +04-29-2008 +04-30-2008 +05-01-2008 +05-02-2008 +05-03-2008 +05-04-2008 +05-05-2008 +05-06-2008 +05-07-2008 +05-08-2008 +05-09-2008 +05-10-2008 +05-11-2008 +05-12-2008 +05-13-2008 +05-14-2008 +05-15-2008 +05-16-2008 +05-17-2008 +05-18-2008 +05-19-2008 +05-20-2008 +05-21-2008 +05-22-2008 +05-23-2008 +05-24-2008 +05-25-2008 +05-26-2008 +05-27-2008 +05-28-2008 +05-29-2008 +05-30-2008 +05-31-2008 +06-01-2008 +06-02-2008 +06-03-2008 +06-04-2008 +06-05-2008 +06-06-2008 +06-07-2008 +06-08-2008 +06-09-2008 +06-10-2008 +06-11-2008 +06-12-2008 +06-13-2008 +06-14-2008 +06-15-2008 +06-16-2008 +06-17-2008 +06-18-2008 +06-19-2008 +06-20-2008 +06-21-2008 +06-22-2008 +06-23-2008 +06-24-2008 +06-25-2008 +06-26-2008 +06-27-2008 +06-28-2008 +06-29-2008 +06-30-2008 +07-01-2008 +07-02-2008 +07-03-2008 +07-04-2008 +07-05-2008 +07-06-2008 +07-07-2008 +07-08-2008 +07-09-2008 +07-10-2008 +07-11-2008 +07-12-2008 +07-13-2008 +07-14-2008 +07-15-2008 +07-16-2008 +07-17-2008 +07-18-2008 +07-19-2008 +07-20-2008 +07-21-2008 +07-22-2008 +07-23-2008 +07-24-2008 +07-25-2008 +07-26-2008 +07-27-2008 +07-28-2008 +07-29-2008 +07-30-2008 +07-31-2008 +08-01-2008 +08-02-2008 +08-03-2008 +08-04-2008 +08-05-2008 +08-06-2008 +08-07-2008 +08-08-2008 +08-09-2008 +08-10-2008 +08-11-2008 +08-12-2008 +08-13-2008 +08-14-2008 +08-15-2008 +08-16-2008 +08-17-2008 +08-18-2008 +08-19-2008 +08-20-2008 +08-21-2008 +08-22-2008 +08-23-2008 +08-24-2008 +08-25-2008 +08-26-2008 +08-27-2008 +08-28-2008 +08-29-2008 +08-30-2008 +08-31-2008 +09-01-2008 +09-02-2008 +09-03-2008 +09-04-2008 +09-05-2008 +09-06-2008 +09-07-2008 +09-08-2008 +09-09-2008 +09-10-2008 +09-11-2008 +09-12-2008 +09-13-2008 +09-14-2008 +09-15-2008 +09-16-2008 +09-17-2008 +09-18-2008 +09-19-2008 +09-20-2008 +09-21-2008 +09-22-2008 +09-23-2008 +09-24-2008 +09-25-2008 +09-26-2008 +09-27-2008 +09-28-2008 +09-29-2008 +09-30-2008 +10-01-2008 +10-02-2008 +10-03-2008 +10-04-2008 +10-05-2008 +10-06-2008 +10-07-2008 +10-08-2008 +10-09-2008 +10-10-2008 +10-11-2008 +10-12-2008 +10-13-2008 +10-14-2008 +10-15-2008 +10-16-2008 +10-17-2008 +10-18-2008 +10-19-2008 +10-20-2008 +10-21-2008 +10-22-2008 +10-23-2008 +10-24-2008 +10-25-2008 +10-26-2008 +10-27-2008 +10-28-2008 +10-29-2008 +10-30-2008 +10-31-2008 +11-01-2008 +11-02-2008 +11-03-2008 +11-04-2008 +11-05-2008 +11-06-2008 +11-07-2008 +11-08-2008 +11-09-2008 +11-10-2008 +11-11-2008 +11-12-2008 +11-13-2008 +11-14-2008 +11-15-2008 +11-16-2008 +11-17-2008 +11-18-2008 +11-19-2008 +11-20-2008 +11-21-2008 +11-22-2008 +11-23-2008 +11-24-2008 +11-25-2008 +11-26-2008 +11-27-2008 +11-28-2008 +11-29-2008 +11-30-2008 +12-01-2008 +12-02-2008 +12-03-2008 +12-04-2008 +12-05-2008 +12-06-2008 +12-07-2008 +12-08-2008 +12-09-2008 +12-10-2008 +12-11-2008 +12-12-2008 +12-13-2008 +12-14-2008 +12-15-2008 +12-16-2008 +12-17-2008 +12-18-2008 +12-19-2008 +12-20-2008 +12-21-2008 +12-22-2008 +12-23-2008 +12-24-2008 +12-25-2008 +12-26-2008 +12-27-2008 +12-28-2008 +12-29-2008 +12-30-2008 +12-31-2008 +01-01-2009 +01-02-2009 +01-03-2009 +01-04-2009 +01-05-2009 +01-06-2009 +01-07-2009 +01-08-2009 +01-09-2009 +01-10-2009 +01-11-2009 +01-12-2009 +01-13-2009 +01-14-2009 +01-15-2009 +01-16-2009 +01-17-2009 +01-18-2009 +01-19-2009 +01-20-2009 +01-21-2009 +01-22-2009 +01-23-2009 +01-24-2009 +01-25-2009 +01-26-2009 +01-27-2009 +01-28-2009 +01-29-2009 +01-30-2009 +01-31-2009 +02-01-2009 +02-02-2009 +02-03-2009 +02-04-2009 +02-05-2009 +02-06-2009 +02-07-2009 +02-08-2009 +02-09-2009 +02-10-2009 +02-11-2009 +02-12-2009 +02-13-2009 +02-14-2009 +02-15-2009 +02-16-2009 +02-17-2009 +02-18-2009 +02-19-2009 +02-20-2009 +02-21-2009 +02-22-2009 +02-23-2009 +02-24-2009 +02-25-2009 +02-26-2009 +02-27-2009 +02-28-2009 +03-01-2009 +03-02-2009 +03-03-2009 +03-04-2009 +03-05-2009 +03-06-2009 +03-07-2009 +03-08-2009 +03-09-2009 +03-10-2009 +03-11-2009 +03-12-2009 +03-13-2009 +03-14-2009 +03-15-2009 +03-16-2009 +03-17-2009 +03-18-2009 +03-19-2009 +03-20-2009 +03-21-2009 +03-22-2009 +03-23-2009 +03-24-2009 +03-25-2009 +03-26-2009 +03-27-2009 +03-28-2009 +03-29-2009 +03-30-2009 +03-31-2009 +04-01-2009 +04-02-2009 +04-03-2009 +04-04-2009 +04-05-2009 +04-06-2009 +04-07-2009 +04-08-2009 +04-09-2009 +04-10-2009 +04-11-2009 +04-12-2009 +04-13-2009 +04-14-2009 +04-15-2009 +04-16-2009 +04-17-2009 +04-18-2009 +04-19-2009 +04-20-2009 +04-21-2009 +04-22-2009 +04-23-2009 +04-24-2009 +04-25-2009 +04-26-2009 +04-27-2009 +04-28-2009 +04-29-2009 +04-30-2009 +05-01-2009 +05-02-2009 +05-03-2009 +05-04-2009 +05-05-2009 +05-06-2009 +05-07-2009 +05-08-2009 +05-09-2009 +05-10-2009 +05-11-2009 +05-12-2009 +05-13-2009 +05-14-2009 +05-15-2009 +05-16-2009 +05-17-2009 +05-18-2009 +05-19-2009 +05-20-2009 +05-21-2009 +05-22-2009 +05-23-2009 +05-24-2009 +05-25-2009 +05-26-2009 +05-27-2009 +05-28-2009 +05-29-2009 +05-30-2009 +05-31-2009 +06-01-2009 +06-02-2009 +06-03-2009 +06-04-2009 +06-05-2009 +06-06-2009 +06-07-2009 +06-08-2009 +06-09-2009 +06-10-2009 +06-11-2009 +06-12-2009 +06-13-2009 +06-14-2009 +06-15-2009 +06-16-2009 +06-17-2009 +06-18-2009 +06-19-2009 +06-20-2009 +06-21-2009 +06-22-2009 +06-23-2009 +06-24-2009 +06-25-2009 +06-26-2009 +06-27-2009 +06-28-2009 +06-29-2009 +06-30-2009 +07-01-2009 +07-02-2009 +07-03-2009 +07-04-2009 +07-05-2009 +07-06-2009 +07-07-2009 +07-08-2009 +07-09-2009 +07-10-2009 +07-11-2009 +07-12-2009 +07-13-2009 +07-14-2009 +07-15-2009 +07-16-2009 +07-17-2009 +07-18-2009 +07-19-2009 +07-20-2009 +07-21-2009 +07-22-2009 +07-23-2009 +07-24-2009 +07-25-2009 +07-26-2009 +07-27-2009 +07-28-2009 +07-29-2009 +07-30-2009 +07-31-2009 +08-01-2009 +08-02-2009 +08-03-2009 +08-04-2009 +08-05-2009 +08-06-2009 +08-07-2009 +08-08-2009 +08-09-2009 +08-10-2009 +08-11-2009 +08-12-2009 +08-13-2009 +08-14-2009 +08-15-2009 +08-16-2009 +08-17-2009 +08-18-2009 +08-19-2009 +08-20-2009 +08-21-2009 +08-22-2009 +08-23-2009 +08-24-2009 +08-25-2009 +08-26-2009 +08-27-2009 +08-28-2009 +08-29-2009 +08-30-2009 +08-31-2009 +09-01-2009 +09-02-2009 +09-03-2009 +09-04-2009 +09-05-2009 +09-06-2009 +09-07-2009 +09-08-2009 +09-09-2009 +09-10-2009 +09-11-2009 +09-12-2009 +09-13-2009 +09-14-2009 +09-15-2009 +09-16-2009 +09-17-2009 +09-18-2009 +09-19-2009 +09-20-2009 +09-21-2009 +09-22-2009 +09-23-2009 +09-24-2009 +09-25-2009 +09-26-2009 +09-27-2009 +09-28-2009 +09-29-2009 +09-30-2009 +10-01-2009 +10-02-2009 +10-03-2009 +10-04-2009 +10-05-2009 +10-06-2009 +10-07-2009 +10-08-2009 +10-09-2009 +10-10-2009 +10-11-2009 +10-12-2009 +10-13-2009 +10-14-2009 +10-15-2009 +10-16-2009 +10-17-2009 +10-18-2009 +10-19-2009 +10-20-2009 +10-21-2009 +10-22-2009 +10-23-2009 +10-24-2009 +10-25-2009 +10-26-2009 +10-27-2009 +10-28-2009 +10-29-2009 +10-30-2009 +10-31-2009 +11-01-2009 +11-02-2009 +11-03-2009 +11-04-2009 +11-05-2009 +11-06-2009 +11-07-2009 +11-08-2009 +11-09-2009 +11-10-2009 +11-11-2009 +11-12-2009 +11-13-2009 +11-14-2009 +11-15-2009 +11-16-2009 +11-17-2009 +11-18-2009 +11-19-2009 +11-20-2009 +11-21-2009 +11-22-2009 +11-23-2009 +11-24-2009 +11-25-2009 +11-26-2009 +11-27-2009 +11-28-2009 +11-29-2009 +11-30-2009 +12-01-2009 +12-02-2009 +12-03-2009 +12-04-2009 +12-05-2009 +12-06-2009 +12-07-2009 +12-08-2009 +12-09-2009 +12-10-2009 +12-11-2009 +12-12-2009 +12-13-2009 +12-14-2009 +12-15-2009 +12-16-2009 +12-17-2009 +12-18-2009 +12-19-2009 +12-20-2009 +12-21-2009 +12-22-2009 +12-23-2009 +12-24-2009 +12-25-2009 +12-26-2009 +12-27-2009 +12-28-2009 +12-29-2009 +12-30-2009 \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/GreenAmpt/GreenAmpt.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/GreenAmpt/GreenAmpt.omi new file mode 100644 index 00000000..8e496a0f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/GreenAmpt/GreenAmpt.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/GreenAmpt/Help.txt b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/GreenAmpt/Help.txt new file mode 100644 index 00000000..7e186cab --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/GreenAmpt/Help.txt @@ -0,0 +1,16 @@ +To test the functionality of this component run the GreenAmpt Test.cs. +This supplies sample input values and outputs the result to the Output window. + + The finish method utilizes the new functionality of the SMW.Utilities class, by loading the +results into ODM. The default properties required to load into ODM are: + _server = "CE-51\\SQLEXPRESS" + _database = "OD" + _user = "sa" + _password = "sa" + _file = "" + _log = "log.txt" +Change these to reflect your system, by setting them within Finish(). + + + Two addtional projects are included for debugging purposes, Numerics and SMW. +The purpose of the Numerics project is to assist in solving the Infiltration equation. \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/GreenAmpt/config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/GreenAmpt/config.xml new file mode 100644 index 00000000..fbcb8a88 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/GreenAmpt/config.xml @@ -0,0 +1,93 @@ + + + + + + Test Location + Example 6.15 in Water Resources Engineering, David A. Chin + ..\..\..\data\gis\elements.shp + 1 + + + Pe + Excess + + + Length + 1 + + + + mm + millimeters + 1 + 0 + + Scalar + + + + + + + Test Location + Example 6.15 in Water Resources Engineering, David A. Chin + ..\..\..\data\gis\elements.shp + 1 + + + F + total Infiltration + + + Length + 1 + + + + mm + millimeters + 1 + 0 + + Scalar + + + + + + + Test Location + Example 6.15 in Water Resources Engineering, David A. Chin + ..\..\..\data\gis\elements.shp + 1 + + + P + Rainfall + + + 1 + Length + + + + mm/h + millimeters per hour + 1 + 0 + + Scalar + + + + + 05/29/2009 1:00:00 + 05/29/2009 2:00:00 + 600 + + + GreenAmpt Infiltration + none + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/GreenAmpt/odmLoad.bat b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/GreenAmpt/odmLoad.bat new file mode 100644 index 00000000..b624e498 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/GreenAmpt/odmLoad.bat @@ -0,0 +1 @@ +odmloader.exe -server CE-51\SQLEXPRESS -db OD -user sa -password sa -file "C:\Code\Dev.CSharp\OpenMI_Test\branches\Tony 01\Components\GreenAmpt\GreenAmpt\data\output.csv" \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/NRCS-Curve-Number/CNMethod.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/NRCS-Curve-Number/CNMethod.omi new file mode 100644 index 00000000..c789eeb9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/NRCS-Curve-Number/CNMethod.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/NRCS-Curve-Number/cn_config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/NRCS-Curve-Number/cn_config.xml new file mode 100644 index 00000000..434aa374 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/NRCS-Curve-Number/cn_config.xml @@ -0,0 +1,64 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + ..\..\..\data\gis\SubWatershedCentroids_HEC.shp + 1 + + + Excess Rainfall + Excess Rainfall + + + Length + 1 + + + + cm + Centimeter + 1 + 0 + + Scalar + + + + + SmithBranch + Smith Branch Watershed, Columbia SC + ..\..\..\data\gis\SubWatershedCentroids_HEC.shp + 1 + + + Rainfall + Precipitation + + + 1 + Length + + + + cm + Centimeters + 1 + 0 + + Scalar + + + + + 08/20/2009 21:40:00 + 08/21/2009 10:00:00 + 300 + + + Curve Number Method + Calculates the Excess Precipitation that results from Precipitation + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/NRCS-Curve-Number/log.txt b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/NRCS-Curve-Number/log.txt new file mode 100644 index 00000000..8a3bce3e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/NRCS-Curve-Number/log.txt @@ -0,0 +1,50 @@ +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. +Initializing. diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/SCSAbstraction_output.csv b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/SCSAbstraction_output.csv new file mode 100644 index 00000000..c1ed9a39 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/infiltration/SCSAbstraction_output.csv @@ -0,0 +1,6 @@ +Precip In +Date, Time, element 1,element 2,element 3,element 4,element 5,element 6,element 7,element 8,element 9,element 10,element 11,element 12,element 13,element 14,element 15, + + + Excess Precip Out +Date, Time,element 1,element 2,element 3,element 4,element 5,element 6,element 7,element 8,element 9,element 10,element 11,element 12,element 13,element 14,element 15, diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/Main.py b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/Main.py new file mode 100644 index 00000000..c35a476e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/Main.py @@ -0,0 +1,22 @@ +import Muskingum +import xmlrpclib + +#Implement Service Methods +s = xmlrpclib.ServerProxy('http://localhost:8000') + +c = Muskingum.Engine() + +stream = "20414204240.120.520416204140.130.220418204160.110.220422204400.10.320424204220.150.220426204300.170.220428204180.20.220430204280.30.320432204260.20.420434204320.40.420436204340.30.520438204360.50.320440204580.40.320458215280.220.321528220620.30.222062221500.30.322150221920.340.222192245860.350.424582529000.370.324584245900.40.524586245840.290.224588245820.20.224590245880.110.2360006/21/2008 1:00:00 AM06/21/2008 2:00:00 AM" +#stream = "20414204240.120.520416204140.130.2" + +c.initialize(stream) +##timestep +inflowVals = "107" +c.performTimeStep(inflowVals) +##timestep 2 +inflowVals = [2000, 0] +#c.performTimeStep(inflowVals) +##timestep 3 +#inflowVals = [4200, 0] +#c.performTimeStep(inflowVals) + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/Muskingum.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/Muskingum.omi new file mode 100644 index 00000000..ec1a2a99 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/Muskingum.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/Muskingum.py b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/Muskingum.py new file mode 100644 index 00000000..18a81555 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/Muskingum.py @@ -0,0 +1,253 @@ +import Muskingum +import networkx as nx +import time +import math +from StringIO import StringIO +from lxml import etree +from networkx import * +import matplotlib.pyplot as plot +from sys import stdout + +class Reach: + def __init__(self, uid, From, To, travel_time, x): + self.uid = uid + self.K = float(travel_time) + self.X = float(x) + self.Inflow = {} + self.Outflow = {} + self.C1 = 0 + self.C2 = 0 + self.C3 = 0 + self.From = From + self.To = To + +class Engine: + + def __init__(self): + # Create and output file for the reach flows + f = open('../MuskingumRouting_reachFlows.csv','w') + f.close() + print("Service started.") + + #def initialize(self, configfile, network_relat_path, stream_att_path): + def initialize(self, elementset): + stdout.write("\n--- Muskingum Web Service: Initialize Begin \n"); + + #---- Initalize global variables ---- + self.timestep_sec = 0 #time_step + self.current_time_sec = 0 # current_time + self.G = nx.DiGraph() + self.reaches = {} #Create reaches dictionary + + #---- Parse FROM, TO K, and X from the XML stream ---- + stdout.write(" Parsing FROM, K, and X from XML stream ... "); + elements = StringIO(elementset) + xmltree = etree.parse(elements) + #loop through all of the elements within the elementset + + for element in xmltree.getiterator('element'): + #loop through all throughhe child nodes of each element + for child in element.iterdescendants(): + if child.tag == "From": + From = child.text + elif child.tag =="To": + To = child.text + elif child.tag == "K": + K = child.text + elif child.tag == "X": + X = child.text + uid = int(From) + self.reaches[From] = Muskingum.Reach(uid, From, To, K, X) + # self.G.add_edge(self.reaches[From], self.reaches[To]) + uid += 1 + stdout.write("done.\n"); + + #---- Parse TIMESTEP, START TIME, and END TIME from the XML stream ---- + stdout.write(" Parsing start time, end time, and time step from XML stream ... "); + time_format1 = "%m/%d/%Y %H:%M:%S" + time_format2 = "%m/%d/%Y %H:%M:%S %p" + for element in xmltree.getiterator('TimeHorizon'): + for child in element.iterdescendants(): + if child.tag == "TimeStepInSeconds": + self.timestep_sec = float(child.text) + elif child.tag == "StartDateTime": + try: #timeformat 1 assumes no AM/PM + start_datetime = time.mktime(time.strptime(child.text, time_format1)) + except: #timeformat 2 assumes AM/PM + start_datetime = time.mktime(time.strptime(child.text, time_format2)) + elif child.tag == "EndDateTime": + try: #timeformat 1 assumes no AM/PM + end_datetime = time.mktime(time.strptime(child.text, time_format1)) + except: #timeformat 2 assumes AM/PM + end_datetime = time.mktime(time.strptime(child.text, time_format2)) + stdout.write("done.\n"); + + #---- Add edges to DiGraph ---- + stdout.write(" Building graph ... "); + for i in self.reaches: + try: + self.G.add_edge(self.reaches[i], self.reaches[self.reaches[i].To]) + except: + pass + self.n = nx.topological_sort(self.G) + stdout.write("done.\n"); + + #write header for output file + writer = open('../MuskingumRouting_reachFlows.csv','w') + for i in self.n: + writer.write('reach: '+ str(i.uid) + ',') + writer.write('\n') + + + #---- Calculate C1, C2, C3 from K and X ---- + stdout.write(" Calculating C1, C2, and C3 for reaches in graph ... "); + for i in self.n: + k = self.reaches[i.From].K + x = self.reaches[i.From].X + self.reaches[i.From].C1 = (self.timestep_sec /3600.0 - 2*k*x)/ (2*k*(1-x) + self.timestep_sec /3600.0) + self.reaches[i.From].C2 = (self.timestep_sec /3600.0 + 2*k*x)/ (2*k*(1-x) + self.timestep_sec /3600.0) + self.reaches[i.From].C3 = (2*k*(1-x) - self.timestep_sec /3600.0) / (2*k*(1-x) + self.timestep_sec /3600.0) + + c1 = self.reaches[i.From].C1 + c2 = self.reaches[i.From].C2 + c3 = self.reaches[i.From].C3 + + #initialize Inflow and Outflow dictionaries for reach to Zero. Key is time in seconds + t = 0 + while t <= (end_datetime - start_datetime): + self.reaches[i.From].Inflow["%f" % t] = 0.0 + self.reaches[i.From].Outflow["%f" % t] = 0.0 + t += self.timestep_sec # convert timstep in hrs to timestep in seconds + + stdout.write("done.\n"); + + stdout.write("--- Muskingum Web Service: Initialize End \n\n"); + + + + return True + + def performTimeStep(self, inflow_stream): + stdout.write("\n--- Muskingum Web Service: Perform Time Step Begin --- \n"); + + #Open the output file to append the calculated flows + writer = open('../MuskingumRouting_reachFlows.csv','a') + + #---- advance current time by time step ---- + previous_time_sec = self.current_time_sec + self.current_time_sec += self.timestep_sec + stdout.write(" Previous time is %f seconds.\n" % previous_time_sec); + stdout.write(" Current time is %f seconds.\n" % self.current_time_sec); + + #---- parse XML stream to set inflow values for reaches ---- + stdout.write(" Get inflow values from XML stream ... "); + elements = StringIO(inflow_stream) + xmltree = etree.parse(elements) + inflow = [] + for _inflow in xmltree.getiterator('inflow'): + #loop through all the child nodes of each element + for child in _inflow.iterdescendants(): + if child.tag == "reach": + inflow.append(float(child.text)) + stdout.write("done.\n") + + #---- route flows for each reach using network topology---- + stdout.write(" --- Route flows --- \n"); + outflow = [] #Array that holds the outflows for all outlets, at the current timestep + e = 0 #input element within the inflow array + for i in self.n: + stdout.write(" for reach " + str(i.uid) + "..."); + + #extracting reach properties C1, C2, C3 + c1 = self.reaches[i.From].C1 + c2 = self.reaches[i.From].C2 + c3 = self.reaches[i.From].C3 + + + #get inflow from previous time step + try: + In1 = self.reaches[i.From].Inflow["%f" % previous_time_sec] #In1 = inflow from last timestep + except: + stdout.write ("PROBLEM GETTING PREVIOUS INFLOW FOR REACH " + str([i.From]) + "\n") + #add inflow to In2 + try: + #self.reaches[i.From].Inflow["%f" % self.current_time_sec] = inflow[e] #In2 = inflow from this timestep (inflow) + #Infow for this timestep equals flow being passed to this reach plus any additional inflow from a runoff hydrograph + + #In2 = inflow from this timestep + 'inflow' + self.reaches[i.From].Inflow["%f" % self.current_time_sec] += inflow[i.uid-1] + + #make sure that the reach inflow is never negative, even when instablitiy occurs + if self.reaches[i.From].Inflow["%f" % self.current_time_sec] < 0 : + self.reaches[i.From].Inflow["%f" % self.current_time_sec] = 0 + + except: + #There is no inflow from the watershed into the reach + self.reaches[i.From].Inflow["%f" % self.current_time_sec] = 0.0 + stdout.write ("PROBLEM SETTING CURRENT INFLOW FOR REACH (Inflow = 0) \n") + + #get inflow from current time step + In2 = self.reaches[i.From].Inflow["%f" % self.current_time_sec] + + + + #get outflow from last timestep + Out1 = self.reaches[i.From].Outflow[ "%f" % previous_time_sec] + + #---- Check to see if flow is negative ---- + + #Muskingum routed outflow + f = c1*In2 + c2*In1 + c3*Out1 + + #This loop check to see if the solution of the Muskingum equation is unstable (i.e. calculation of negative flows) + if f < 0.0: + stdout.write("Reach " + str(i.From) + " is unstable. \n \t Flow of "+str(f)+" will be set to 0.0 \n") + #f = 0.0 + + #Write the calculated flow value to the output file + writer.write(str(f)) + writer.write(',') + + #Set Outflow from this reach + self.reaches[i.From].Outflow["%f" % self.current_time_sec] = f + + #Write Outflow to Console + stdout.write(str(self.reaches[i.From].Outflow["%f" % self.current_time_sec])) + + #add this outflow to downstream reach's inflow + if self.G.successors(i): + #self.reaches[self.G.successors(i)[0].From].Inflow["%f" % self.current_time_sec] += self.reaches[i.From].Outflow["%f" % self.current_time_sec] + self.reaches[self.G.successors(i)[0].From].Inflow["%f" % self.current_time_sec] += f + else: + successor = "outlet" + outflow.append(self.reaches[i.From].Outflow["%f" % self.current_time_sec]) + + #Set the current inflow for this reach, equal to the inflow from the previous timestep + self.reaches[i.From].Inflow["%f" % previous_time_sec] = In2 + + + #Next inflow element + e += 1 + stdout.write(" done.\n"); + + #close the writer + writer.write('\n') + writer.close() + + #---- Return outflow at the outlets ---- + outflow_stream = "" + for q in outflow: + outflow_stream += ""+ str(q) +"" + outflow_stream += "" + + stdout.write("--- Muskingum Web Service: Perform Time Step End --- \n\n"); + return outflow_stream + + def finalize(self): + # todo: set object to null + return True + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/Muskingumipy.py b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/Muskingumipy.py new file mode 100644 index 00000000..46ebc00f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/Muskingumipy.py @@ -0,0 +1,254 @@ +import Muskingum +import networkx as nx +import time +import math +from StringIO import StringIO +from lxml import etree +from networkx import * +import matplotlib.pyplot as plot +from sys import stdout +import ironclad + +class Reach: + def __init__(self, uid, From, To, travel_time, x): + self.uid = uid + self.K = float(travel_time) + self.X = float(x) + self.Inflow = {} + self.Outflow = {} + self.C1 = 0 + self.C2 = 0 + self.C3 = 0 + self.From = From + self.To = To + +class Engine: + + def __init__(self): + # Create and output file for the reach flows + f = open('../MuskingumRouting_reachFlows.csv','w') + f.close() + print("Service started.") + + #def initialize(self, configfile, network_relat_path, stream_att_path): + def initialize(self, elementset): + stdout.write("\n--- Muskingum Web Service: Initialize Begin \n"); + + #---- Initalize global variables ---- + self.timestep_sec = 0 #time_step + self.current_time_sec = 0 # current_time + self.G = nx.DiGraph() + self.reaches = {} #Create reaches dictionary + + #---- Parse FROM, TO K, and X from the XML stream ---- + stdout.write(" Parsing FROM, K, and X from XML stream ... "); + elements = StringIO(elementset) + xmltree = etree.parse(elements) + #loop through all of the elements within the elementset + + for element in xmltree.getiterator('element'): + #loop through all throughhe child nodes of each element + for child in element.iterdescendants(): + if child.tag == "From": + From = child.text + elif child.tag =="To": + To = child.text + elif child.tag == "K": + K = child.text + elif child.tag == "X": + X = child.text + uid = int(From) + self.reaches[From] = Muskingum.Reach(uid, From, To, K, X) + # self.G.add_edge(self.reaches[From], self.reaches[To]) + uid += 1 + stdout.write("done.\n"); + + #---- Parse TIMESTEP, START TIME, and END TIME from the XML stream ---- + stdout.write(" Parsing start time, end time, and time step from XML stream ... "); + time_format1 = "%m/%d/%Y %H:%M:%S" + time_format2 = "%m/%d/%Y %H:%M:%S %p" + for element in xmltree.getiterator('TimeHorizon'): + for child in element.iterdescendants(): + if child.tag == "TimeStepInSeconds": + self.timestep_sec = float(child.text) + elif child.tag == "StartDateTime": + try: #timeformat 1 assumes no AM/PM + start_datetime = time.mktime(time.strptime(child.text, time_format1)) + except: #timeformat 2 assumes AM/PM + start_datetime = time.mktime(time.strptime(child.text, time_format2)) + elif child.tag == "EndDateTime": + try: #timeformat 1 assumes no AM/PM + end_datetime = time.mktime(time.strptime(child.text, time_format1)) + except: #timeformat 2 assumes AM/PM + end_datetime = time.mktime(time.strptime(child.text, time_format2)) + stdout.write("done.\n"); + + #---- Add edges to DiGraph ---- + stdout.write(" Building graph ... "); + for i in self.reaches: + try: + self.G.add_edge(self.reaches[i], self.reaches[self.reaches[i].To]) + except: + pass + self.n = nx.topological_sort(self.G) + stdout.write("done.\n"); + + #write header for output file + writer = open('../MuskingumRouting_reachFlows.csv','w') + for i in self.n: + writer.write('reach: '+ str(i.uid) + ',') + writer.write('\n') + + + #---- Calculate C1, C2, C3 from K and X ---- + stdout.write(" Calculating C1, C2, and C3 for reaches in graph ... "); + for i in self.n: + k = self.reaches[i.From].K + x = self.reaches[i.From].X + self.reaches[i.From].C1 = (self.timestep_sec /3600.0 - 2*k*x)/ (2*k*(1-x) + self.timestep_sec /3600.0) + self.reaches[i.From].C2 = (self.timestep_sec /3600.0 + 2*k*x)/ (2*k*(1-x) + self.timestep_sec /3600.0) + self.reaches[i.From].C3 = (2*k*(1-x) - self.timestep_sec /3600.0) / (2*k*(1-x) + self.timestep_sec /3600.0) + + c1 = self.reaches[i.From].C1 + c2 = self.reaches[i.From].C2 + c3 = self.reaches[i.From].C3 + + #initialize Inflow and Outflow dictionaries for reach to Zero. Key is time in seconds + t = 0 + while t <= (end_datetime - start_datetime): + self.reaches[i.From].Inflow["%f" % t] = 0.0 + self.reaches[i.From].Outflow["%f" % t] = 0.0 + t += self.timestep_sec # convert timstep in hrs to timestep in seconds + + stdout.write("done.\n"); + + stdout.write("--- Muskingum Web Service: Initialize End \n\n"); + + + + return True + + def performTimeStep(self, inflow_stream): + stdout.write("\n--- Muskingum Web Service: Perform Time Step Begin --- \n"); + + #Open the output file to append the calculated flows + writer = open('../MuskingumRouting_reachFlows.csv','a') + + #---- advance current time by time step ---- + previous_time_sec = self.current_time_sec + self.current_time_sec += self.timestep_sec + stdout.write(" Previous time is %f seconds.\n" % previous_time_sec); + stdout.write(" Current time is %f seconds.\n" % self.current_time_sec); + + #---- parse XML stream to set inflow values for reaches ---- + stdout.write(" Get inflow values from XML stream ... "); + elements = StringIO(inflow_stream) + xmltree = etree.parse(elements) + inflow = [] + for _inflow in xmltree.getiterator('inflow'): + #loop through all the child nodes of each element + for child in _inflow.iterdescendants(): + if child.tag == "reach": + inflow.append(float(child.text)) + stdout.write("done.\n") + + #---- route flows for each reach using network topology---- + stdout.write(" --- Route flows --- \n"); + outflow = [] #Array that holds the outflows for all outlets, at the current timestep + e = 0 #input element within the inflow array + for i in self.n: + stdout.write(" for reach " + str(i.uid) + "..."); + + #extracting reach properties C1, C2, C3 + c1 = self.reaches[i.From].C1 + c2 = self.reaches[i.From].C2 + c3 = self.reaches[i.From].C3 + + + #get inflow from previous time step + try: + In1 = self.reaches[i.From].Inflow["%f" % previous_time_sec] #In1 = inflow from last timestep + except: + stdout.write ("PROBLEM GETTING PREVIOUS INFLOW FOR REACH " + str([i.From]) + "\n") + #add inflow to In2 + try: + #self.reaches[i.From].Inflow["%f" % self.current_time_sec] = inflow[e] #In2 = inflow from this timestep (inflow) + #Infow for this timestep equals flow being passed to this reach plus any additional inflow from a runoff hydrograph + + #In2 = inflow from this timestep + 'inflow' + self.reaches[i.From].Inflow["%f" % self.current_time_sec] += inflow[i.uid-1] + + #make sure that the reach inflow is never negative, even when instablitiy occurs + if self.reaches[i.From].Inflow["%f" % self.current_time_sec] < 0 : + self.reaches[i.From].Inflow["%f" % self.current_time_sec] = 0 + + except: + #There is no inflow from the watershed into the reach + self.reaches[i.From].Inflow["%f" % self.current_time_sec] = 0.0 + stdout.write ("PROBLEM SETTING CURRENT INFLOW FOR REACH (Inflow = 0) \n") + + #get inflow from current time step + In2 = self.reaches[i.From].Inflow["%f" % self.current_time_sec] + + + + #get outflow from last timestep + Out1 = self.reaches[i.From].Outflow[ "%f" % previous_time_sec] + + #---- Check to see if flow is negative ---- + + #Muskingum routed outflow + f = c1*In2 + c2*In1 + c3*Out1 + + #This loop check to see if the solution of the Muskingum equation is unstable (i.e. calculation of negative flows) + if f < 0.0: + stdout.write("Reach " + str(i.From) + " is unstable. \n \t Flow of "+str(f)+" will be set to 0.0 \n") + #f = 0.0 + + #Write the calculated flow value to the output file + writer.write(str(f)) + writer.write(',') + + #Set Outflow from this reach + self.reaches[i.From].Outflow["%f" % self.current_time_sec] = f + + #Write Outflow to Console + stdout.write(str(self.reaches[i.From].Outflow["%f" % self.current_time_sec])) + + #add this outflow to downstream reach's inflow + if self.G.successors(i): + #self.reaches[self.G.successors(i)[0].From].Inflow["%f" % self.current_time_sec] += self.reaches[i.From].Outflow["%f" % self.current_time_sec] + self.reaches[self.G.successors(i)[0].From].Inflow["%f" % self.current_time_sec] += f + else: + successor = "outlet" + outflow.append(self.reaches[i.From].Outflow["%f" % self.current_time_sec]) + + #Set the current inflow for this reach, equal to the inflow from the previous timestep + self.reaches[i.From].Inflow["%f" % previous_time_sec] = In2 + + + #Next inflow element + e += 1 + stdout.write(" done.\n"); + + #close the writer + writer.write('\n') + writer.close() + + #---- Return outflow at the outlets ---- + outflow_stream = "" + for q in outflow: + outflow_stream += ""+ str(q) +"" + outflow_stream += "" + + stdout.write("--- Muskingum Web Service: Perform Time Step End --- \n\n"); + return outflow_stream + + def finalize(self): + # todo: set object to null + return True + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/Service.py b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/Service.py new file mode 100644 index 00000000..1e8d149f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/Service.py @@ -0,0 +1,16 @@ +from SimpleXMLRPCServer import SimpleXMLRPCServer +from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler +import Muskingum + +# Restrict to a particular path. +class RequestHandler(SimpleXMLRPCRequestHandler): + rpc_paths = ('/RPC2',) + +# Create server +server = SimpleXMLRPCServer(("localhost", 8000), + requestHandler=RequestHandler) +server.register_introspection_functions() + +server.register_instance(Muskingum.Engine()) + +server.serve_forever() \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/musk_config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/musk_config.xml new file mode 100644 index 00000000..23df5c37 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/musk_config.xml @@ -0,0 +1,72 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + ..\..\..\data\gis\StreamNet_HEC.shp + 1 + + + Streamflow + Streamflow + + + Length + 3 + + + Time + -1 + + + + cms + cubic meters per second + 1 + 0 + + Scalar + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + 1 + ..\..\..\data\gis\StreamNet_HEC.shp + + + Runoff + Runoff + + + 3 + Length + + + -1 + Time + + + + cms + Cubic meters per second + 1 + 0 + + Scalar + + + + + 08/20/2009 21:40:00 + 08/21/2009 10:00:00 + 300 + + + Muskingum Routing + Python script that calculates that returns the stream flow at the outlet of a stream network + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/readme.txt b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/readme.txt new file mode 100644 index 00000000..0450a17a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/readme.txt @@ -0,0 +1,5 @@ +You must start the service by double-clicking on start_python_service.bat before adding the Muskingum.omi to an OpenMI Configuration. When you done running the model, simply close the command window running the Python service to terminate the service. + +This Python service requires Python version 2.5 with NetworkX installed. Both are freely available online (http://www.python.org, http://networkx.lanl.gov). + +NOTE: We have only tested this having the service run on the local host. \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/routing_config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/routing_config.xml new file mode 100644 index 00000000..23df5c37 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/routing_config.xml @@ -0,0 +1,72 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + ..\..\..\data\gis\StreamNet_HEC.shp + 1 + + + Streamflow + Streamflow + + + Length + 3 + + + Time + -1 + + + + cms + cubic meters per second + 1 + 0 + + Scalar + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + 1 + ..\..\..\data\gis\StreamNet_HEC.shp + + + Runoff + Runoff + + + 3 + Length + + + -1 + Time + + + + cms + Cubic meters per second + 1 + 0 + + Scalar + + + + + 08/20/2009 21:40:00 + 08/21/2009 10:00:00 + 300 + + + Muskingum Routing + Python script that calculates that returns the stream flow at the outlet of a stream network + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/start_python_service.bat b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/start_python_service.bat new file mode 100644 index 00000000..df1ebf1c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/Muskingum/start_python_service.bat @@ -0,0 +1,2 @@ +c:\python25\python.exe Service.py +pause \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/MuskingumDotNet/Muskingum.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/MuskingumDotNet/Muskingum.omi new file mode 100644 index 00000000..c94d3c8e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/MuskingumDotNet/Muskingum.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/MuskingumDotNet/musk_config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/MuskingumDotNet/musk_config.xml new file mode 100644 index 00000000..9afd5912 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/MuskingumDotNet/musk_config.xml @@ -0,0 +1,72 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + ..\..\..\data\gis\StreamNet_HEC.shp + 1 + + + Streamflow + Streamflow + + + Length + 3 + + + Time + -1 + + + + cms + cubic meters per second + 1 + 0 + + Scalar + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + ..\..\..\data\gis\StreamNet_HEC.shp + 1 + + + Runoff + Runoff + + + 3 + Length + + + -1 + Time + + + + cms + Cubic meters per second + 1 + 0 + + Scalar + + + + + 08/20/2009 21:40:00 + 08/21/2009 10:00:00 + 300 + + + Muskingum Routing + Python script that calculates that returns the stream flow at the outlet of a stream network + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/MuskingumRouting_input.csv b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/MuskingumRouting_input.csv new file mode 100644 index 00000000..adf0fcb5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/MuskingumRouting_input.csv @@ -0,0 +1,148 @@ +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1.32884841116351,0,0,0,0, +0,0,0,0,0,0,0,0.00968462464228737,0,0,4.09498562337351,0,0,0,0, +0,0,0,0,0,0,0,0.958739038710516,0,0,9.54906519868651,0,0,0,0, +0,0,0,0,0,0,0,4.15756726604281,0,0,19.5669486737326,0,0,0,0, +0,0,0,0,0,0,0,9.7148959716119,0,0,32.8376305795231,0,0,0,0, +0,0,0,0,0,0,0,19.5665688089316,0,0,49.4527578488827,0,0,0,0, +0,0,0,0,0,0,0,32.1628361423446,0,0,61.0031838612659,0,0,0,0, +0,0,0,0,0,0,0,44.5481544054049,0,0,62.4211146996091,0,0,0,0, +0,0,0,0,0,0,0,55.6559396376671,0,0,56.6724183729837,0,0,0,0, +0,0,0,0,0,0,0,62.5048755016437,0,0,47.1756387804239,0,0,0,0, +0,0,0,0,0,0,0,64.0398715000342,0,0,35.7308175516411,0,0,0,0, +0,0.00690837041328698,0,0,0,0,0,62.6323360519265,0,0,25.0016607819804,0,0,0,0, +0.642378632626587,0.103245402201225,0,0,0,0,0,59.3198878400923,0.571020279045433,0,24.8961829684206,0,0,0,0, +2.08677610836521,0.285680445442654,0,0,0,0,0,58.0556722780834,2.27173616850557,0,36.9574833284888,0,0,0,0, +3.8653584124587,0.560237702510758,0,0,0,0,0,60.3845671065379,5.26084416788957,0,62.1325947628767,0,0,0,0, +4.39589433672619,0.932273957098958,0,0,0,0,0,62.3782378974713,8.90618345942936,0,88.8688214576099,0,0,0,0, +3.91801210898618,1.26877614462969,0,0,0,0,0,64.2131185676282,11.5221182225662,0,102.315369468673,0,0,0,0, +2.95323784423965,1.4534161800498,0,0,0,0,0,63.2802232417773,12.3192712602697,0,101.099662397771,0,0,0,0, +1.84369684521709,1.50169407463331,0,0,0,0,0,59.48420302078,11.5469032887786,0,89.3839337540765,0,0,0,0, +1.21627122610586,1.44575506140532,0,0,0,0,0,53.2980939774244,9.82091316219846,0,71.234961868048,0,0,0,0, +0.830392009507859,1.30242932825939,0,0,0,0,0,45.2495629495388,7.56338506030978,0,51.2734957037075,0,0,0,0, +0.548158298144736,1.12265152667288,0,0,0,0,0,36.2495712439004,5.44372413654601,0,36.5975182030204,0,0,0,0, +0.363061731021586,0.889781806026386,0,0,0,0,0,28.7083981166168,3.98437603600643,0,27.0426550644315,0,0,0,0, +0.23721559620519,0.674271656466356,0,0,0,0,0,22.0237817946814,2.97754813602821,0,19.9790534073691,0,0,0,0, +0.160112131833988,0.533872819252073,0,0,0,0,0,17.2253407653063,2.22253960152675,0,14.5866715540017,0,0,0,0, +0.107041748198208,0.421808911610309,0,0,0,0,0,13.4963617083465,1.64561834255156,0,10.6340739066988,0,0,0,0, +0.0702301155168471,0.34261893211199,0,0,0,0,0,10.5602640410592,1.22739387571847,0,7.72261265774803,0,0,0,0, +0.0473808150180573,0.272587263185881,0,0,0,0,0,8.32173973531063,0.909455052303173,0,5.56189215871796,0,0,0,0, +0.0341245973626,0.212527839004864,0,0,0,0,0,6.47657763364882,0.672656256917287,0,4.01032547322738,0,0,0,0, +0.0210552923760847,0.170272839311456,0,0,0,0,0,5.08275794987818,0.500292481085496,0,2.94292472936646,0,0,0,0, +0.0100084443298703,0.135615298844959,0,0,0,0,0,3.96997326965848,0.372781341527881,0,2.15217322548748,0,0,0,0, +0,0.106653439914846,0,0,0,0,0,3.11356448146628,0.276752751469581,0,1.56620255301352,0,0,0,0, +0,0.0836114821132943,0,0,0,0,0,2.4290727126696,0.204454817895088,0,1.16000438710302,0,0,0,0, +0,0.0671026772713609,0,0,0,0,0,1.88935532119208,0.152451471053719,0,0.892019664504409,0,0,0,0, +0,0.0533915350159286,0,0,0,0,0,1.43733990192848,0.117863964948923,0,0.66024168273362,0,0,0,0, +0,0.0421533915935916,0,0,0,0,0,1.08082036019912,0.0905233817496544,0,0.445133036378536,0,0,0,0, +0,0.0336975752985651,0,0,0,0,0,0.819524626882564,0.0642321125616846,0,0.247550864303537,0,0,0,0, +0,0.02671400138617,0,0,0,0,0,0.612686789121735,0.0402298343644753,0,0.0565730325434659,0,0,0,0, +0,0.0210227449249603,0,0,0,0,0,0.480926505262732,0.0174460150317511,0,0,0,0,0,0, +0,0.0168540713627418,0,0,0,0,0,0.380205781283817,0.00312593501294132,0,0,0,0,0,0, +0,0.0140981486884743,0,0,0,0,0,0.293687815281986,0,0,0,0,0,0,0, +0,0.0115270189743123,0,0,0,0,0,0.214924601079645,0,0,0,0,0,0,0, +0,0.00896804891048415,0,0,0,0,0,0.137077596750392,0,0,0,0,0,0,0, +0,0.00657570135685038,0,0,0,0,0,0.0636349973743469,0,0,0,0,0,0,0, +0,0.00443309326171534,0,0,0,0,0,0.0303807106581435,0,0,0,0,0,0,0, +0,0.00229048516658029,0,0,0,0,0,0.00377763652666931,0,0,0,0,0,0,0, +0,0.000288739000164811,0,0,0,0,0,4.33680868994202E-19,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/MuskingumRouting_output.csv b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/MuskingumRouting_output.csv new file mode 100644 index 00000000..ca009641 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/MuskingumRouting_output.csv @@ -0,0 +1,149 @@ +Date,Element 1,Element 2,Element 3,Element 4,Element 5,Element 6,Element 7,Element 8,Element 9,Element 10,Element 11,Element 12,Element 13,Element 14,Element 15, +20.8.2009 21:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 21:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 21:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 21:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 22:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 22:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 22:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 22:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 22:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 22:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 22:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 22:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 22:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 22:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 22:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 22:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 23:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 23:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 23:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 23:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 23:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 23:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 23:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 23:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 23:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 23:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 23:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20.8.2009 23:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 0:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 0:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 0:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 0:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 0:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 0:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 0:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 0:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 0:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 0:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 0:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 0:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 1:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 1:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 1:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 1:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 1:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 1:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 1:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 1:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 1:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 1:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 1:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 1:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 2:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 2:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 2:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 2:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 2:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 2:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 2:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 2:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 2:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 2:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 2:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 2:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 3:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 3:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 3:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 3:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 3:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 3:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 3:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 3:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 3:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 3:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 3:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 3:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 4:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 4:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 4:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 4:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 4:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 4:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 4:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 4:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 4:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 4:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 4:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 4:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 5:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 5:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 5:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 5:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 5:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 5:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 5:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 5:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 5:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 5:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 5:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 5:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 6:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 6:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 6:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 6:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 6:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 6:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 6:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 6:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 6:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 6:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 6:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 6:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 7:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 7:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 7:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 7:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 7:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 7:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 7:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 7:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 7:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 7:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 7:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 7:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 8:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 8:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 8:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 8:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 8:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 8:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 8:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 8:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 8:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 8:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 8:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 8:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 9:00:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 9:05:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 9:10:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 9:15:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 9:20:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 9:25:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 9:30:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 9:35:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 9:40:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 9:45:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 9:50:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21.8.2009 9:55:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/MuskingumRouting_reachFlows.csv b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/MuskingumRouting_reachFlows.csv new file mode 100644 index 00000000..f00d05be --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/routing/MuskingumRouting_reachFlows.csv @@ -0,0 +1,149 @@ +reach: 5,reach: 4,reach: 6,reach: 12,reach: 3,reach: 7,reach: 14,reach: 15,reach: 2,reach: 13,reach: 11,reach: 8,reach: 9,reach: 10,reach: 1, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.390974208638,0.0,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.88134389374,-0.0055908518639,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.55003942577,-0.551833637912,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-2.40985656741,-2.23648095703,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-2.18070956694,-4.75891714603,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.482563873738,-8.89388584439,0.0,0.0,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.51147801369,-13.1132162749,0.0,-2.76027995123,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.5318147941,-15.4072921546,0.0,-6.13253076182,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,26.0426790837,-15.3894917533,0.0,-7.08517305108,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,34.5980197173,-11.7236910732,0.0,-4.77707486094,0.0, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,40.3310625536,-4.64880613395,0.0,0.187769452109,-0.00833692457034, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.00111302484,0.0,42.6225313198,3.53126591434,-0.732376332029,7.02911653249,-0.174100042785, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0154933222273,0.0,39.339228221,11.7902953223,-2.2730823537,15.7569653861,2.95854943772, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0279988673789,0.0,33.0739337961,17.6232300358,-2.83800889472,23.5879116795,8.57825432706, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0276220029139,0.0,26.3973672234,20.6119439399,-2.52823100877,28.8195215399,15.9220044069, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.00395628891593,0.0,25.2525202348,23.7100101106,-1.99087838411,28.9108521735,23.5265006844, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.074979664853,0.0,33.2619611068,26.7519290103,-0.805357171206,24.1714832664,27.8949443092, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.215013578925,0.0,46.6080093015,31.2354010968,0.763251196594,19.2965711886,27.7560631482, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.383361021102,0.0,60.3044341458,36.7894982236,2.68835431217,17.8723593146,25.232108998, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.551422819286,0.0,71.1138386087,42.7387920752,4.92399183073,20.9032140157,23.5052852074, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.701706315744,0.0,77.0096898908,48.4900104769,7.44643620594,27.9429130092,25.0008431343, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.816105592308,0.0,76.486900128,53.3473074207,10.1918882181,37.9695822538,30.4802701481, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.897220777522,0.0,71.7952794542,55.9077283752,13.2762268548,47.9846400062,39.7113614815, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.930884186355,0.0,65.4559442198,56.926361945,16.4512901894,55.8981172364,51.0100816152, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.917008760955,0.0,58.4886737626,56.0610019184,19.7492432389,61.2896085327,62.2324287945, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.880574064883,0.0,51.3940127666,54.1679621382,22.8881486752,64.2853666675,72.1633740962, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.828086981745,0.0,44.5840238422,51.625653152,25.746476463,65.1304466754,80.1312080995, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.770326694431,0.0,38.286431837,48.6358219985,28.2801850472,64.1954607461,85.878490746, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.709214517959,0.0,32.5877249653,45.4952241649,30.4301571057,61.8933195548,89.4595347026, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.645383548545,0.0,27.5266086509,42.228021099,32.2162570891,58.5959027779,91.085914089, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.583397067823,0.0,23.1352806514,38.9915888693,33.63047203,54.6120438418,91.064584559, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.524379663408,0.0,19.360939976,35.8265524492,34.6976531753,50.2380919507,89.6994095634, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.468682988509,0.0,16.1334120248,32.8016238011,35.4358252364,45.7096125894,87.3056077483, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.416577894769,0.0,13.3958871563,29.9360834776,35.875296426,41.1946320166,84.173371929, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.369084566721,0.0,11.1122091574,27.2611078009,36.0428063128,36.8060878728,80.5402668552, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.325997310015,0.0,9.2095717517,24.7617787359,35.9762724921,32.6456016631,76.5912155452, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.286991366429,0.0,7.61918759757,22.4303171995,35.7070136923,28.7780690124,72.4886553275, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.25209306521,0.0,6.28883459305,20.2828884797,35.2567526547,25.233484855,68.3613817894, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.220956587935,0.0,5.13324380501,18.2943322755,34.6559677677,22.0420326479,64.2963377923, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.193193622755,0.0,4.16772403188,16.4817119511,33.9207901381,19.1605477842,60.3702248638, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.168558625834,0.0,3.38381036743,14.8397106574,33.0734862629,16.5694089656,56.6026339256, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.147005498336,0.0,2.74734423756,13.355637192,32.1383976012,14.2640831454,53.0032797638, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.12815003144,0.0,2.23059200725,12.0178856333,31.135541268,12.2309236985,49.5879025643, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11158540731,0.0,1.81103650383,10.8093716696,30.0830536528,10.4508679965,46.3675270862, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0969961281661,0.0,1.47039584449,9.69647700241,29.0000994811,8.90204478325,43.3468294051, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0841770145451,0.0,1.19382681405,8.69294763874,27.8924223443,7.56157496142,40.5271555767, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0728536188932,0.0,0.969278080648,7.77877852011,26.7733112008,6.40678042332,37.8995675919, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0625799613356,0.0,0.786965066096,6.95824778903,25.6487492851,5.41596266539,35.4551656784, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0536798394053,0.0,0.638943588656,6.22382432276,24.5270528209,4.56887247545,33.1812164828, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0460454927917,0.0,0.518763700033,5.56648262499,23.4157677469,3.84696113374,31.0653758191, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0394969029326,0.0,0.42118863269,4.97819534201,22.3211034189,3.23348012295,29.0960003784, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0338796535054,0.0,0.341966610802,4.45176196808,21.2481272792,2.71347858681,27.2620115916, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0290612892763,0.0,0.27764558164,3.98072501365,20.2009164412,2.27373438663,25.552940908, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0249281927948,0.0,0.225422794417,3.55929447521,19.1826915054,1.90264455539,23.9589977601, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0213829052836,0.0,0.183022672079,3.18227981423,18.1959345485,1.59009344748,22.4711157214, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0183418285526,0.0,0.148597654383,2.84502872417,17.2424930249,1.32731131852,21.0809674332, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0157332537459,0.0,0.120647691553,2.54337202956,16.3236711411,1.10673197556,19.7809519221, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0134956704411,0.0,0.0979548804963,2.27357412137,15.4403100967,0.921855150942,18.5641616062, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0115763162278,0.0,0.0795303953976,2.03228838808,14.5928584417,0.767117099934,17.424336257, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00992993256552,0.0,0.0645714002208,1.81651715204,13.7814336658,0.637771390293,16.3558099016, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00851769758317,0.0,0.052426065602,1.62357566718,13.0058760161,0.529780782277,15.3534551455, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00730631065615,0.0,0.0425651657716,1.45105977584,12.2657954331,0.439720368294,14.4126280399, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00626720717458,0.0,0.0345590178543,1.29681686107,11.5606124002,0.364691660729,13.5291155346, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00537588498733,0.0,0.0280587586915,1.15891976566,10.8895934125,0.302247015591,12.6990867366, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00461132663911,0.0,0.0227811433366,1.03564338073,10.2518816968,0.250323606845,11.9190485985, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00395550377709,0.0,0.018496202823,0.925443635901,9.64652374426,0.20718608334,11.1858062518, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00339295204071,0.0,0.0150172234035,0.826938648861,9.07249215347,0.171377018759,10.4964279207, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00291040641074,0.0,0.0121926106081,0.738891816169,8.52870522989,0.141674284388,9.84821417963, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00249648841896,0.0,0.00989928360563,0.66019664853,8.01404373443,0.117054519623,9.23867121546, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00214143784283,0.0,0.00803731202896,0.589863173252,7.52736513179,0.0966619354163,8.66548770608, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00183688255867,0.0,0.00652556156833,0.527005744244,7.06751564883,0.0797817536298,8.12651491026, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00157564112619,0.0,0.00529815859191,0.470832115809,6.63334041791,0.0658176555039,7.61974957326, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00135155344953,0.0,0.00430161974124,0.420633650901,6.22369194881,0.0542726815143,7.14331927374, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00115933552163,0.0,0.00349252142556,0.375776547473,5.83743714458,0.0447330907381,6.69546986874, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000994454826906,0.0,0.00283560766449,0.335693978307,5.47346305165,0.036854749056,6.27455472744, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000853023464139,0.0,0.00230225382958,0.299879050247,5.13068151225,0.0303516714526,5.8790254802, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000731706469398,0.0,0.00186921934308,0.26787849832,4.80803286743,0.0249863940794,5.50742404396, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000627643177318,0.0,0.00151763498344,0.239287038809,4.50448884111,0.0205618966625,5.15837571746, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000538379766354,0.0,0.00123218067023,0.213742313062,4.21905472013,0.0169148355078,4.83058317002, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000461811397453,0.0,0.00100041790065,0.190920360812,3.95077093122,0.0139098821318,4.52282117396, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000396132581768,0.0,0.000812247749152,0.170531568022,3.69871410353,0.0114349928309,4.23393195491, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000339794607071,0.0,0.000659470812721,0.152317039932,3.46199769436,0.00939746073939,3.96282105483, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000291469018981,0.0,0.00053542992675,0.136045355032,3.23977224591,0.00772062454269,3.70845362045, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000250016295898,0.0,0.000434720083026,0.121509660258,3.0312253326,0.006341127434,3.46985104518, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000214458978978,0.0,0.000352952909698,0.108525071797,2.83558125056,0.00520663651423,3.24608790553, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000183958623573,0.0,0.000286565450571,0.0969263495696,2.65210049437,0.00427394699966,3.03628914402, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000157796028631,0.0,0.000232664911393,0.0865658167585,2.48007906007,0.00350740764553,2.83962745963, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00013535427787,0.0,0.000188902608063,0.0773114987251,2.31884760843,0.00287761400592,2.65532087432, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000116104192841,0.0,0.000153371624107,0.0690454583163,2.16777051768,0.00236032478977,2.48263045055, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.95918548521e-005,0.0,0.000124523717922,0.0616623069554,2.02624485079,0.00193556386626,2.32085813966, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.54279015269e-005,0.0,0.000101101859065,0.0550678730562,1.89369925911,0.00158687661747,2.16934474502, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.32783456051e-005,0.0,8.20854538962e-005,0.0491780112226,1.76959284075,0.00130071450409,2.02746798736, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.28566994932e-005,0.0,6.66458738113e-005,0.0439175374238,1.65341396949,0.00106592604903,1.89464066224, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.39172198629e-005,0.0,5.41103482438e-005,0.0392192768809,1.54467910752,0.000873336081387,1.77030888164, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.62491130012e-005,0.0,4.39326490842e-005,0.035023212788,1.44293161335,0.000715398128627,1.65395039345, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.96715642765e-005,0.0,3.56692891138e-005,0.0312757252365,1.34774055418,0.000585907390937,1.54507297374, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.40294745134e-005,0.0,2.89601973113e-005,0.0279289108235,1.25869953069,0.000479763858057,1.44321288792, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.9189802741e-005,0.0,2.3513028971e-005,0.0249399744252,1.17542552053,0.000392776902296,1.34793341732, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.50384290749e-005,0.0,1.90904269556e-005,0.0222706855095,1.09755774583,0.000321504159284,1.25882344853, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.14774637603e-005,0.0,1.54996789991e-005,0.0198868921659,1.02475656882,0.000263118738126,1.17549612326, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.84229389229e-005,0.0,1.25843203839e-005,0.0177580867459,0.956702419005,0.000215299825633,1.09758754644, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.58028285996e-005,0.0,1.02173160834e-005,0.0158570176513,0.893094754172,0.000176142599352,1.02475555099, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.35553503593e-005,0.0,8.2955252857e-006,0.0141593423839,0.833651057282,0.000144084069843,0.956678517386, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.16275084682e-005,0.0,6.73520709392e-006,0.0126433174834,0.778105870398,0.000117842058115,0.893054246463, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.97384424563e-006,0.0,5.46837156608e-006,0.011289521444,0.726209866501,9.63649994616e-005,0.833598883916, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.55536414425e-006,0.0,4.43981709362e-006,0.0100806071118,0.677728959572,7.8790666975e-005,0.778045894927, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.33862027902e-006,0.0,3.60472502401e-006,0.00900108043414,0.632443452992,6.44122408793e-005,0.726145087424, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.29492172298e-006,0.0,2.92670671442e-006,0.00803710276456,0.590147226022,5.26504251601e-005,0.677661682432, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.39965797272e-006,0.0,2.3762179182e-006,0.0071763142208,0.550646957893,4.30305406741e-005,0.632375430001, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.63171863059e-006,0.0,1.92927141178e-006,0.00640767585981,0.513761388845,3.51637120675e-005,0.590079769163, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.97299561959e-006,0.0,1.56639176558e-006,0.00572132866955,0.479320617288,2.87314212377e-005,0.55058103038, +0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.40795619342e-006,0.0,1.27176671375e-006,0.00510846758976,0.447165432143,2.34728283568e-005,0.513697678947, diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/DiffusiveWave/2dDiffusiveWave.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/DiffusiveWave/2dDiffusiveWave.omi new file mode 100644 index 00000000..38381718 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/DiffusiveWave/2dDiffusiveWave.omi @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/DiffusiveWave/2dDiffusiveWaveConfig.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/DiffusiveWave/2dDiffusiveWaveConfig.xml new file mode 100644 index 00000000..9b9003e1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/DiffusiveWave/2dDiffusiveWaveConfig.xml @@ -0,0 +1,89 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + + 1 + + + Excess Rainfall + Excess Rainfall + + + Length + 1 + + + + in + Inches + 1 + 0 + + Scalar + + + + + SmithBranch + Smith Branch Watershed, Columbia SC + 1 + + + + Excess Rainfall + Excess Rainfall + + + 1 + Length + + + + in + inches + 1 + 0 + + Scalar + + + + + SmithBranch + Smith Branch Watershed, Columbia SC + 1 + + + + Stage + Water Stage + + + 1 + Length + + + + ft + feet + 1 + 0 + + Scalar + + + + + 08/20/2009 00:00:00 AM + 08/20/2009 12:00:00 PM + .1 + + + Diffusive Wave Routing + 2d Diffusive Wave Model + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/NRCS-unit-hydrograph/NRCS UnitHydrograph.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/NRCS-unit-hydrograph/NRCS UnitHydrograph.omi new file mode 100644 index 00000000..131880fc --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/NRCS-unit-hydrograph/NRCS UnitHydrograph.omi @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/NRCS-unit-hydrograph/uh_config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/NRCS-unit-hydrograph/uh_config.xml new file mode 100644 index 00000000..257613a3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/NRCS-unit-hydrograph/uh_config.xml @@ -0,0 +1,64 @@ + + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + ..\..\..\data\gis\SubWatersheds_HEC.shp + 1 + + + Runoff + Runoff + + + Time + 1 + + + + cm + Centimeter + 1 + 0 + + Scalar + + + + + Smith Branch + Smith Branch Watershed, Columbia SC + ..\..\..\data\gis\SubWatersheds_HEC.shp + 1 + + + Excess Rainfall + Excess Rainfall + + + 1 + Length + + + + cm + Centimeters + 1 + 0 + + Scalar + + + + + 08/20/2009 21:40:00 + 08/21/2009 10:00:00 + 300 + + + Unit Hydrograph + Calculates the streamflow at watershed outlet + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/SCSUnitHydrograph_output.csv b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/SCSUnitHydrograph_output.csv new file mode 100644 index 00000000..0fac4327 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/SCSUnitHydrograph_output.csv @@ -0,0 +1,148 @@ +Date, Time, element 1,element 2,element 3,element 4,element 5,element 6,element 7,element 8,element 9,element 10,element 11,element 12,element 13,element 14,element 15, +08.20.2009, 09:40 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 09:45 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 09:50 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 09:55 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 10:00 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 10:05 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 10:10 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 10:15 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 10:20 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 10:25 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 10:30 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 10:35 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 10:40 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 10:45 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 10:50 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 10:55 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 11:00 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 11:05 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 11:10 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 11:15 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 11:20 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 11:25 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 11:30 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 11:35 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 11:40 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 11:45 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 11:50 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.20.2009, 11:55 odp.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 12:00 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 12:05 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 12:10 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 12:15 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 12:20 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 12:25 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 12:30 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 12:35 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 12:40 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 12:45 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 12:50 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 12:55 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 01:00 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 01:05 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 01:10 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 01:15 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 01:20 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 01:25 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 01:30 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 01:35 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 01:40 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 01:45 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 01:50 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 01:55 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 02:00 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 02:05 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 02:10 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 02:15 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 02:20 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 02:25 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 02:30 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 02:35 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 02:40 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 02:45 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 02:50 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 02:55 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 03:00 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 03:05 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 03:10 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 03:15 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 03:20 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 03:25 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 03:30 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 03:35 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 03:40 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 03:45 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 03:50 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 03:55 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 04:00 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 04:05 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 04:10 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 04:15 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 04:20 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 04:25 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 04:30 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 04:35 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 04:40 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 04:45 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 04:50 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 04:55 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 05:00 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 05:05 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 05:10 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 05:15 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 05:20 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 05:25 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 05:30 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 05:35 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 05:40 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 05:45 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 05:50 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 05:55 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 06:00 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 06:05 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 06:10 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 06:15 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 06:20 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 06:25 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 06:30 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 06:35 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 06:40 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 06:45 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 06:50 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 06:55 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 07:00 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 07:05 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 07:10 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 07:15 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 07:20 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 07:25 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 07:30 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 07:35 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 07:40 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 07:45 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 07:50 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 07:55 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 08:00 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 08:05 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 08:10 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 08:15 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 08:20 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 08:25 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 08:30 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 08:35 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 08:40 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 08:45 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 08:50 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 08:55 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 09:00 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 09:05 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 09:10 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 09:15 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 09:20 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 09:25 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 09:30 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 09:35 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 09:40 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 09:45 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +08.21.2009, 09:50 dop.,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/TopModel/Config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/TopModel/Config.xml new file mode 100644 index 00000000..87da0794 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/runoff/TopModel/Config.xml @@ -0,0 +1,62 @@ + + + + + + Region1 + numerical-analysis, Columbia SC + + + ConcentrationBC1 + C + + + ppm + 1 + + + + ppm + ppm + 1 + 0 + + scalar + + + + + Region1 + Smith Branch Watershed, Columbia SC + 1 + .\StreamNet.shp + + + ConcentrationBC2 + Excess Rainfall + + + 1 + Length + + + + in + inches + 1 + 0 + + Scalar + + + + + 08/20/2009 00:00:00 AM + 08/20/2009 00:20:00 AM + 1 + + + Water Component + ghg + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/CompositionRun.log b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/CompositionRun.log new file mode 100644 index 00000000..40f0037a Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/CompositionRun.log differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/NSR.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/NSR.omi new file mode 100644 index 00000000..b54cc790 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/NSR.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/NSR.opr b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/NSR.opr new file mode 100644 index 00000000..b344badc --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/NSR.opr @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/config.xml new file mode 100644 index 00000000..92f18178 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/config.xml @@ -0,0 +1,172 @@ + + + + + + NetRad + Net Solar Radiation + ./data/SRgauges.shp + 1 + + + NSR + Net Radiation + + + kilojule + 1 + + + meter + -2 + + + hour + -1 + + + + MJ/m2/day + Megajoule per square meter per day + 1 + 0 + + Scalar + + + + + SC_NC Study + Dew Point Temperature of the gauge + ./data/SRgauges.shp + 1 + + + Dew Point Temperature + Dew Point Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Maximum Temperature of the gauge + ./data/SRgauges.shp + 1 + + + Maximum Temperature + Maximum Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Minimum Temperature of the gauge + ./data/SRgauges.shp + 1 + + + Minimum Temperature + Minimum Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Minimum Temperature of the gauge for next day + ./data/SRgauges.shp + 1 + + + Minimum Temperature in Advance + Maximum Temperature for next day + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + SC_NC Study + Monthly average daily temprature range of the gauge + ./data/SRgauges.shp + 1 + + + Monthly average daily temp range + Monthly average daily temprature range + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + 01/01/1982 + 12/31/1983 + 86400 + + + Solar Radiation + This model calculates net solar radiation in megajoule per square meter per day + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.dbf b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.dbf new file mode 100644 index 00000000..414cecdd Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.dbf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.prj b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.prj new file mode 100644 index 00000000..2d456db1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.prj @@ -0,0 +1 @@ +PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609600.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Meter",1.0]] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.sbn b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.sbn new file mode 100644 index 00000000..213ab8fd Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.sbn differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.sbx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.sbx new file mode 100644 index 00000000..5d010438 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.sbx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.shp b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.shp new file mode 100644 index 00000000..794e4f1c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.shp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.shp.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.shp.xml new file mode 100644 index 00000000..45104181 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.shp.xml @@ -0,0 +1,3 @@ + + +2011050412483200FALSEFeatureClassToFeatureClass PeTgauges_Layer "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data" PeTgauges.shp # "GaugeIDs 'GaugeIDs' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,GaugeIDs,-1,-1;X 'X' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,X,-1,-1;Y 'Y' true true false 8 Double 0 0 ,First,#,PeTgauges.txt_Features,Y,-1,-1" # "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp"DefineProjection PeTgauges GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]] PeTgaugesFeatureClassToFeatureClass PeTgauges "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data" PeTgages.shp # "GaugeIDs 'GaugeIDs' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,GaugeIDs,-1,-1;X 'X' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,X,-1,-1;Y 'Y' true true false 19 Double 0 0 ,First,#,C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges.shp,Y,-1,-1" # "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgages.shp"Project PeTgages "C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgages_Prjctd.shp" PROJCS['NAD_1983_StatePlane_South_Carolina_FIPS_3900',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',609600.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-81.0],PARAMETER['Standard_Parallel_1',32.5],PARAMETER['Standard_Parallel_2',34.83333333333334],PARAMETER['Latitude_Of_Origin',31.83333333333333],UNIT['Meter',1.0]] # GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]]20110504123646002011050412364600{D77F57FC-884D-4B62-A0D6-2B70C1D32663}Microsoft Windows 2000 Version 5.2 (Build 3790) Service Pack 2; ESRI ArcCatalog 9.3.1.3000enREQUIRED: A brief narrative summary of the data set.REQUIRED: A summary of the intentions with which the data set was developed.REQUIRED: The name of an organization or individual that developed the data set.REQUIRED: The date when the data set is published or otherwise made available for release.PeTgagesPeTgagesvector digital data\\CE-57\C\Documents and Settings\ercanm\Desktop\SolarRadiation\data\PeTgaugesREQUIRED: The basis on which the time period of content information is determined.REQUIRED: The year (and optionally month, or month and day) for which the data set corresponds to the ground.REQUIRED: The state of the data set.REQUIRED: The frequency with which changes and additions are made to the data set after the initial data set is completed.REQUIRED: Western-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Eastern-most coordinate of the limit of coverage expressed in longitude.REQUIRED: Northern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Southern-most coordinate of the limit of coverage expressed in latitude.REQUIRED: Reference to a formally registered thesaurus or a similar authoritative source of theme keywords.REQUIRED: Common-use word or phrase used to describe the subject of the data set.REQUIRED: Restrictions and legal prerequisites for accessing the data set.REQUIRED: Restrictions and legal prerequisites for using the data set after access is granted.ShapefileMicrosoft Windows 2000 Version 5.2 (Build 3790) Service Pack 2; ESRI ArcCatalog 9.3.1.3000PeTgagesenFGDC Content Standards for Digital Geospatial MetadataFGDC-STD-001-1998local timehttp://www.esri.com/metadata/esriprof80.htmlESRI Metadata ProfileREQUIRED: The person responsible for the metadata information.REQUIRED: The organization responsible for the metadata information.REQUIRED: The mailing and/or physical address for the organization or individual.REQUIRED: The city of the address.REQUIRED: The state or province of the address.REQUIRED: The ZIP or other postal code of the address.REQUIRED: The telephone number by which individuals can speak to the organization or individual.20110504ISO 19115 Geographic Information - MetadataDIS_ESRI1.0datasetDownloadable Data0.0000.000002file://\\CE-57\C\Documents and Settings\ercanm\Desktop\SolarRadiation\data\PeTgaugesLocal Area Network0.000ShapefileVectorSimplePointFALSE0FALSEFALSEEntity point0GCS_North_American_1983Decimal degrees0.0000000.000000North American Datum of 1983Geodetic Reference System 806378137.000000298.257222GCS_North_American_19830PeTgagesFeature Class0FIDFIDOID400Internal feature number.ESRISequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.ESRICoordinates defining the features.GaugeIDsGaugeIDsFloat1911XXFloat1911YYFloat191120110504Dataset copied.2011050412375900Dataset copied.C:\Documents and Settings\ercanm\Desktop\PenmanMonteith\data\PeTgauges2011050412483200 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.shx b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.shx new file mode 100644 index 00000000..368f99c1 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/solarradiation/data/SRgauges.shx differ diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/wtmpReader/config.xml b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/wtmpReader/config.xml new file mode 100644 index 00000000..3980a933 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/wtmpReader/config.xml @@ -0,0 +1,318 @@ + + + + + + TempMinNextDay + Minimum Temperature of the gauge for next day + + 1 + + + Minimum Temperature NextDay + Minimum Temperature for next day + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + MonthlyAvTempRan + Monthly mean dailly range of air temperature of the gauge + + 1 + + + Monthly Average Temp Range + Monthly mean dailly range of air temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + StationID + gage IDs + + 1 + + + StID + Station_Identities + + + + 1 + + + + unitless + unitless + 1 + 0 + + Scalar + + + + + Lat + Latitude of the gauge + + 1 + + + Latitude + Latitude + + + Length + 1 + + + + Degree + Degree + 1 + 0 + + Scalar + + + + + Lon + Longitude of the gauge + + 1 + + + Longitude + Longitude + + + Length + 1 + + + + Degree + Degree + 1 + 0 + + Scalar + + + + + Elev + Elevation of the gauge + + 1 + + + Elevation + Elevation + + + Length + 1 + + + + m + meter + 1 + 0 + + Scalar + + + + + Temp + Temperature of the gauge + + 1 + + + Temperature + Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + TempDew + Dew Point Temperature of the gauge + + 1 + + + Dew Point Temperature + Dew Point Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + TempMax + Maximum Temperature of the gauge + + 1 + + + Maximum Temperature + Maximum Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + TempMin + Minimum Temperature of the gauge + + 1 + + + Minimum Temperature + Minimum Temperature + + + Length + 1 + + + + C + degree + 1 + 0 + + Scalar + + + + + Wind + wind speed of the gauge + + 1 + + + wind speed + wind speed + + + Length + 1 + + + Time + -1 + + + + m/s + meter/second + 1 + 0 + + Scalar + + + + + Date + Date + + 1 + + + Date + Date + + + Length + 1 + + + + Time + day + 1 + 0 + + Scalar + + + + + 01/01/1982 + 12/31/1983 + 86400 + + + Read Input Files + This component Read PET(potantial evapotranspiration) Inputs in wtmp format + + diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/wtmpReader/data/72312003870.wtmp b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/wtmpReader/data/72312003870.wtmp new file mode 100644 index 00000000..412455de --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/wtmpReader/data/72312003870.wtmp @@ -0,0 +1,10230 @@ +This file is prepared for OpenMI Evaporation component with a Python code. (mehmetbercan@gmail.com)(CEE/USC, SC USA) +Elv:,296.0,Lat:,34.899,Lon:,-82.219,StationName:,GREENVILLE/GREENVIL,State:,SC,StationID:,72312003870 +yearMoDa,Temp,Tdew,Tmax,Tmin,WndSpd +19820101,5.9,4.5,15.0,-0.6,2.8 +19820102,4.9,0.2,15.0,1.1,3.1 +19820103,3.9,2.1,8.9,1.1,3.9 +19820104,7.7,2.9,13.3,2.2,5.5 +19820105,3.4,-6.6,13.9,-3.9,2.1 +19820106,4.8,-4.0,13.3,-3.9,2.5 +19820107,14.2,7.1,20.6,11.1,3.8 +19820108,6.7,-3.9,21.1,2.2,3.5 +19820109,1.1,-9.6,10.0,-4.4,3.5 +19820110,-6.1,-19.5,10.0,-17.8,4.5 +19820111,-11.6,-23.1,-2.8,-16.7,3.2 +19820112,-6.0,-13.2,-2.2,-16.7,2.0 +19820113,-3.6,-5.9,-1.1,-10.0,3.5 +19820114,-0.8,-2.5,1.1,-5.0,2.5 +19820115,-4.6,-8.3,3.3,-12.2,2.9 +19820116,2.0,-1.1,7.8,-1.1,5.1 +19820117,-3.7,-14.9,7.8,-12.8,2.4 +19820118,-3.6,-11.5,4.4,-12.8,1.7 +19820119,3.9,1.9,5.6,2.2,1.9 +19820120,4.3,3.8,6.1,2.2,1.7 +19820121,6.1,5.4,9.4,2.8,2.5 +19820122,4.7,3.1,9.4,2.8,4.7 +19820123,2.0,0.4,7.2,0.6,4.2 +19820124,3.7,-6.4,7.8,-0.6,4.5 +19820125,1.7,-8.1,12.2,-3.9,3.0 +19820126,1.8,-11.4,12.2,-4.4,5.0 +19820127,-3.7,-14.5,6.7,-10.0,1.9 +19820128,1.0,-8.6,10.6,-10.0,3.5 +19820129,4.5,-4.3,12.8,-5.0,2.1 +19820130,7.1,-4.2,14.4,-3.3,1.8 +19820131,12.3,7.6,20.6,3.9,4.6 +19820201,8.0,0.6,12.2,1.7,4.3 +19820202,4.3,-1.9,12.2,1.7,5.4 +19820203,4.5,3.5,7.2,2.2,3.8 +19820204,9.2,7.3,12.2,3.3,2.7 +19820205,7.5,6.2,12.2,6.1,3.1 +19820206,9.4,7.6,13.3,6.1,2.2 +19820207,2.2,-8.4,13.3,-3.3,2.6 +19820208,3.2,-5.2,12.8,-3.3,1.3 +19820209,9.1,4.6,12.8,7.2,1.4 +19820210,4.9,-0.8,12.2,-2.2,2.2 +19820211,6.3,-1.3,12.8,-2.2,1.4 +19820212,5.1,-0.1,12.8,0.6,1.7 +19820213,6.1,0.7,10.6,0.6,3.8 +19820214,4.5,-3.4,14.4,-2.8,2.8 +19820215,9.4,5.7,15.6,6.1,1.0 +19820216,11.8,11.2,15.6,6.7,1.5 +19820217,14.4,12.1,20.0,11.1,1.9 +19820218,6.2,3.2,20.0,3.9,5.1 +19820219,7.3,2.9,16.1,3.9,2.5 +19820220,9.1,-1.1,19.4,-0.6,2.2 +19820221,13.3,-2.6,19.4,-0.6,4.2 +19820222,8.9,-4.2,20.0,3.3,5.2 +19820223,10.5,-2.9,22.2,-0.6,3.6 +19820224,18.0,2.9,26.1,12.2,5.2 +19820225,12.7,1.4,26.1,8.3,4.8 +19820226,3.1,-6.6,13.9,-1.1,4.7 +19820227,0.1,-2.1,5.6,-1.1,5.9 +19820228,3.2,1.2,5.0,-1.1,5.2 +19820301,6.1,-1.6,12.8,2.2,3.0 +19820302,8.6,-0.4,19.4,0.0,3.3 +19820303,13.8,0.8,19.4,0.0,4.3 +19820304,8.1,3.9,18.9,5.6,3.7 +19820305,10.5,5.9,24.4,3.3,2.5 +19820306,13.4,7.1,24.4,3.3,4.4 +19820307,7.2,4.1,15.0,5.6,4.5 +19820308,2.6,-6.7,10.0,-6.1,3.4 +19820309,6.1,-3.4,17.2,-6.1,2.9 +19820310,10.4,-0.3,18.9,-2.2,1.7 +19820311,12.5,5.7,19.4,2.8,2.2 +19820312,15.8,9.0,23.9,6.7,2.6 +19820313,18.4,11.7,25.6,6.7,3.9 +19820314,14.5,5.2,26.1,6.1,2.3 +19820315,10.9,7.2,20.0,6.7,3.4 +19820316,6.9,5.3,14.4,5.0,3.8 +19820317,12.4,10.7,22.2,5.0,3.6 +19820318,16.1,13.2,22.2,7.8,2.9 +19820319,17.0,14.2,25.6,11.7,4.2 +19820320,21.4,15.4,27.8,12.8,3.1 +19820321,16.3,11.7,27.8,10.0,3.5 +19820322,16.4,4.4,25.6,8.9,2.7 +19820323,12.2,-0.3,21.7,6.7,2.9 +19820324,11.2,6.2,16.7,6.1,1.3 +19820325,14.7,10.5,21.1,8.3,2.3 +19820326,10.4,1.2,21.1,4.4,4.8 +19820327,4.7,-8.7,12.8,0.6,4.4 +19820328,3.2,-10.9,10.6,-3.3,3.7 +19820329,4.9,-6.4,14.4,-3.3,2.9 +19820330,13.8,4.7,21.1,8.3,3.0 +19820331,15.7,12.6,21.1,7.8,3.3 +19820401,17.3,11.0,23.9,10.6,2.2 +19820402,14.9,3.9,23.9,10.6,3.0 +19820403,18.8,10.0,23.9,10.6,7.9 +19820404,16.2,-6.7,24.4,6.7,4.9 +19820405,9.9,4.7,22.8,6.1,1.2 +19820406,9.1,1.2,12.2,6.1,5.1 +19820407,5.1,-10.3,13.3,0.0,3.9 +19820408,6.3,0.2,13.9,0.0,2.3 +19820409,7.9,1.2,17.8,2.7,4.8 +19820410,7.8,-3.6,18.3,0.6,2.9 +19820411,10.1,-1.2,18.3,0.6,2.1 +19820412,14.2,0.3,22.8,3.3,3.9 +19820413,16.0,6.3,22.8,5.6,6.0 +19820414,17.6,13.1,23.9,10.0,2.9 +19820415,16.8,14.7,23.9,12.8,3.1 +19820416,17.6,14.9,21.7,14.4,3.1 +19820417,18.6,16.7,22.2,15.6,3.4 +19820418,14.8,5.4,22.2,7.8,4.2 +19820419,12.4,5.5,20.0,7.8,1.2 +19820420,14.2,11.3,20.0,8.3,2.0 +19820421,16.7,11.5,21.7,11.6,2.1 +19820422,13.7,3.8,21.7,11.7,3.8 +19820423,10.6,-5.4,17.8,0.0,2.8 +19820424,11.2,-2.3,21.1,0.0,1.8 +19820425,12.4,8.5,21.7,1.1,2.4 +19820426,16.8,13.7,25.0,9.4,3.7 +19820427,16.8,13.8,25.0,13.9,2.5 +19820428,15.7,9.7,22.8,10.0,2.3 +19820429,14.6,5.7,22.8,10.0,3.4 +19820430,13.9,2.5,20.6,7.2,3.2 +19820501,14.2,3.8,23.9,5.0,1.2 +19820502,17.7,8.1,25.6,5.0,2.0 +19820503,18.5,10.8,25.6,8.9,2.2 +19820504,18.3,9.0,25.6,11.1,2.2 +19820505,18.0,10.1,26.1,11.1,2.4 +19820506,20.7,12.9,27.8,13.9,2.4 +19820507,20.6,12.9,27.8,13.9,3.9 +19820508,19.1,13.6,25.6,14.4,1.7 +19820509,18.1,8.3,25.6,8.9,3.3 +19820510,18.9,8.1,27.2,8.9,1.7 +19820511,21.0,9.6,28.3,10.0,2.5 +19820512,20.6,10.4,29.4,11.1,1.4 +19820513,23.1,12.4,31.1,11.1,1.4 +19820514,24.3,13.5,31.7,13.9,2.3 +19820515,23.7,13.1,31.7,15.6,2.5 +19820516,23.1,13.7,30.6,15.0,1.7 +19820517,21.4,15.7,30.6,15.0,2.5 +19820518,20.8,16.6,30.0,14.4,1.5 +19820519,21.7,17.1,28.9,14.4,2.3 +19820520,20.3,17.1,27.2,16.6,3.1 +19820521,21.6,17.4,27.8,16.7,2.1 +19820522,22.4,18.1,28.9,16.7,1.8 +19820523,21.0,18.6,29.4,16.7,1.7 +19820524,20.3,18.4,27.8,17.8,2.3 +19820525,22.3,18.6,28.9,17.8,1.2 +19820526,22.0,19.1,28.9,17.8,1.7 +19820527,22.1,19.3,26.7,18.3,2.2 +19820528,23.2,20.0,29.4,18.3,2.8 +19820529,23.4,19.1,31.7,17.8,2.4 +19820530,26.3,20.6,32.2,17.8,3.0 +19820531,23.5,19.3,32.2,18.9,2.7 +19820601,22.2,19.4,30.6,19.4,3.2 +19820602,23.1,16.9,28.3,16.1,2.3 +19820603,24.1,17.9,29.4,16.1,2.6 +19820604,22.0,19.5,30.0,18.9,1.9 +19820605,23.9,19.1,28.3,20.0,2.8 +19820606,22.3,12.1,28.3,16.1,4.0 +19820607,22.2,13.4,28.3,14.4,2.8 +19820608,24.2,16.5,31.1,14.4,2.3 +19820609,25.4,18.3,31.7,16.1,1.7 +19820610,24.2,19.7,31.7,18.3,2.0 +19820611,22.1,17.6,30.6,16.6,2.0 +19820612,22.6,18.7,27.8,16.7,3.0 +19820613,21.7,18.9,27.2,20.0,2.8 +19820614,22.1,16.2,27.2,17.2,2.1 +19820615,22.2,17.8,28.3,17.2,2.0 +19820616,24.8,19.6,28.9,17.2,4.3 +19820617,23.1,18.8,29.4,20.6,3.9 +19820618,22.9,18.9,26.1,20.5,3.0 +19820619,23.7,17.8,29.4,18.3,3.0 +19820620,24.7,17.3,29.4,18.3,2.2 +19820621,22.3,14.7,28.9,15.6,2.2 +19820622,21.7,17.3,27.8,15.6,2.7 +19820623,22.4,17.3,28.9,15.6,1.2 +19820624,23.1,18.2,28.9,15.6,3.1 +19820625,23.3,18.9,27.8,19.4,2.6 +19820626,23.7,18.8,28.9,20.0,1.9 +19820627,22.6,19.4,29.4,20.0,1.5 +19820628,23.7,20.1,29.4,20.0,3.0 +19820629,23.9,20.0,29.4,20.6,3.2 +19820630,24.8,19.0,30.6,18.9,2.1 +19820701,24.9,17.2,30.6,18.9,3.3 +19820702,24.3,16.9,28.9,20.0,2.6 +19820703,26.3,19.3,34.4,20.0,4.0 +19820704,26.2,18.4,34.4,20.6,2.4 +19820705,25.1,19.7,33.3,20.5,3.0 +19820706,24.1,18.9,31.7,20.6,3.0 +19820707,24.3,19.7,28.9,21.1,2.2 +19820708,23.3,19.4,30.0,19.4,3.0 +19820709,25.0,19.9,30.6,19.4,3.3 +19820710,23.6,20.4,30.6,21.1,2.7 +19820711,24.3,21.1,30.0,21.1,3.8 +19820712,23.2,20.2,30.6,20.0,2.7 +19820713,24.6,20.7,29.4,20.0,1.5 +19820714,23.9,20.5,30.0,20.6,1.7 +19820715,23.5,20.7,28.9,20.6,1.5 +19820716,23.4,20.4,29.4,20.6,1.7 +19820717,24.2,20.7,28.9,20.6,2.7 +19820718,24.5,21.1,30.0,20.6,1.4 +19820719,24.5,20.5,30.0,20.0,1.2 +19820720,26.1,21.0,30.6,20.0,1.9 +19820721,26.4,20.7,30.6,21.7,1.8 +19820722,25.7,22.3,31.1,21.7,1.2 +19820723,23.8,20.9,30.6,21.1,1.4 +19820724,23.7,20.4,28.3,20.6,2.6 +19820725,24.6,21.2,28.9,20.6,1.9 +19820726,25.6,21.6,30.6,21.1,1.1 +19820727,25.8,21.9,31.7,21.7,1.7 +19820728,25.9,22.3,31.7,21.7,2.1 +19820729,24.3,21.4,32.2,20.6,2.4 +19820730,23.5,21.8,28.3,20.6,3.2 +19820731,23.7,22.1,28.3,21.1,4.5 +19820801,23.3,19.8,27.8,20.0,1.5 +19820802,24.8,20.1,29.4,19.4,1.9 +19820803,24.1,18.1,30.0,17.8,1.4 +19820804,25.6,20.1,30.0,17.8,1.9 +19820805,24.9,21.6,30.0,20.6,1.1 +19820806,22.9,19.2,28.9,17.8,1.1 +19820807,24.5,20.4,29.4,17.8,1.3 +19820808,24.8,21.3,30.0,20.0,3.2 +19820809,24.5,21.4,30.0,21.1,3.8 +19820810,24.5,21.3,28.9,21.1,3.9 +19820811,24.1,21.7,28.9,22.2,3.2 +19820812,24.2,21.2,28.9,21.7,1.7 +19820813,22.4,20.8,28.9,21.1,2.8 +19820814,23.3,20.0,27.8,20.0,2.6 +19820815,22.8,19.6,28.3,18.3,1.0 +19820816,23.9,20.0,28.3,18.3,2.1 +19820817,23.6,20.0,28.9,19.4,1.5 +19820818,22.8,19.2,28.3,18.3,1.8 +19820819,22.8,18.9,28.9,18.3,2.5 +19820820,24.1,19.7,30.6,18.3,1.3 +19820821,24.2,19.6,30.6,18.9,2.1 +19820822,22.4,16.0,29.4,16.7,3.4 +19820823,22.8,17.7,29.4,16.1,1.8 +19820824,25.3,20.1,31.7,16.1,1.6 +19820825,27.1,21.5,32.2,19.4,3.8 +19820826,22.9,16.3,32.8,16.7,2.8 +19820827,22.8,18.8,29.4,16.7,2.0 +19820828,24.7,20.2,29.4,17.8,1.8 +19820829,21.9,15.3,30.0,18.9,3.8 +19820830,21.0,15.3,27.8,16.7,2.1 +19820831,21.8,18.7,27.8,17.2,2.4 +19820901,22.4,20.7,25.0,20.0,2.4 +19820902,24.4,21.2,30.6,20.6,2.8 +19820903,24.8,19.9,32.2,18.9,2.2 +19820904,22.7,14.8,32.8,18.3,4.1 +19820905,19.8,12.8,26.7,13.9,3.2 +19820906,20.1,13.4,28.3,13.3,1.6 +19820907,21.2,15.0,28.9,13.3,1.9 +19820908,21.3,15.6,28.9,14.4,2.3 +19820909,20.4,15.6,27.8,15.6,3.1 +19820910,21.7,16.7,26.7,16.7,2.7 +19820911,20.4,18.3,27.8,18.3,2.5 +19820912,21.8,18.7,26.1,18.9,2.3 +19820913,23.1,20.7,26.1,18.9,1.4 +19820914,23.8,21.8,28.3,21.7,1.4 +19820915,24.0,21.8,30.0,21.1,1.4 +19820916,24.4,19.4,30.6,19.4,2.0 +19820917,22.6,16.2,30.6,16.7,2.3 +19820918,22.3,17.2,30.0,16.1,1.7 +19820919,21.8,19.1,30.6,16.1,2.7 +19820920,21.3,16.6,25.0,18.9,2.7 +19820921,19.8,13.6,25.0,17.2,2.8 +19820922,15.8,9.7,22.8,10.6,3.0 +19820923,14.1,5.3,22.2,5.6,2.3 +19820924,14.2,7.3,23.3,5.6,1.6 +19820925,15.9,10.2,23.9,7.2,1.1 +19820926,16.5,12.6,24.4,10.6,3.4 +19820927,16.6,11.2,25.0,11.1,3.4 +19820928,17.9,11.4,26.1,11.1,2.0 +19820929,18.7,11.9,26.7,11.1,2.6 +19820930,19.8,12.9,25.0,12.8,3.1 +19821001,19.7,12.9,26.7,12.8,1.5 +19821002,20.1,12.9,28.9,12.8,1.9 +19821003,20.2,14.4,28.9,12.8,1.7 +19821004,21.4,16.1,27.8,14.4,1.3 +19821005,22.1,16.3,29.4,15.6,0.9 +19821006,22.3,16.6,29.4,15.6,1.9 +19821007,20.2,16.6,28.3,15.6,1.5 +19821008,20.1,18.8,25.6,15.6,1.1 +19821009,22.7,20.3,26.1,19.4,2.7 +19821010,20.6,19.2,26.7,16.7,2.6 +19821011,15.8,14.4,23.3,15.0,2.3 +19821012,16.0,14.3,18.3,15.0,1.4 +19821013,18.0,16.7,21.1,15.0,2.2 +19821014,18.6,12.2,23.3,12.8,2.6 +19821015,14.2,5.7,23.3,6.7,2.4 +19821016,15.4,4.0,21.7,6.7,4.0 +19821017,11.2,0.7,20.6,2.8,2.3 +19821018,9.8,2.3,17.8,2.8,1.8 +19821019,11.1,4.7,20.6,5.0,2.9 +19821020,16.7,12.0,22.8,5.0,2.6 +19821021,17.3,14.2,23.3,11.7,0.9 +19821022,13.3,5.4,22.8,11.1,4.6 +19821023,9.5,2.7,15.6,7.2,4.1 +19821024,7.9,-1.3,12.8,6.7,5.9 +19821025,8.9,3.2,11.1,6.7,3.9 +19821026,13.5,-1.7,20.6,6.7,2.9 +19821027,10.6,1.5,20.6,3.9,2.0 +19821028,10.9,2.9,21.1,3.3,1.0 +19821029,11.4,4.2,21.7,3.3,0.8 +19821030,11.8,5.6,22.8,3.3,1.1 +19821031,14.8,9.7,23.9,3.3,1.5 +19821101,18.1,13.1,25.6,7.8,1.4 +19821102,18.4,15.4,26.7,12.2,1.6 +19821103,18.2,16.1,25.0,13.9,2.0 +19821104,16.6,14.5,22.8,11.1,2.7 +19821105,7.1,-4.8,18.9,1.7,2.8 +19821106,4.1,-4.7,12.8,-1.7,1.4 +19821107,5.8,-3.5,16.7,-0.6,0.6 +19821108,8.2,-1.5,18.9,-0.6,1.0 +19821109,10.8,2.6,22.2,0.0,1.1 +19821110,12.7,5.8,22.2,3.3,1.5 +19821111,11.8,6.8,21.1,5.6,0.7 +19821112,16.8,13.4,21.7,7.2,4.5 +19821113,11.2,1.5,21.7,4.4,4.4 +19821114,3.1,-3.8,14.4,-0.6,2.0 +19821115,7.6,-3.2,13.3,-0.6,2.3 +19821116,4.2,-4.4,13.3,-1.1,2.2 +19821117,9.8,-0.4,12.2,8.9,3.5 +19821118,11.2,7.8,12.8,8.9,4.6 +19821119,11.0,9.0,12.8,10.6,5.1 +19821120,11.8,10.2,13.3,10.6,4.7 +19821121,13.8,12.1,16.1,11.1,3.6 +19821122,15.4,12.6,21.1,12.2,2.0 +19821123,15.9,13.8,21.1,12.2,2.0 +19821124,15.6,9.4,21.1,10.6,4.8 +19821125,6.1,-3.8,18.3,1.7,3.6 +19821126,9.4,1.7,13.3,1.7,1.7 +19821127,11.9,9.5,13.9,7.8,3.4 +19821128,8.7,6.7,13.3,6.7,4.8 +19821129,10.5,6.5,19.4,6.1,3.9 +19821130,10.6,5.6,19.4,4.3,2.0 +19821201,12.8,11.4,16.1,4.4,2.1 +19821202,14.7,13.8,17.2,11.7,1.6 +19821203,18.2,17.1,20.6,13.3,2.0 +19821204,18.3,16.2,21.7,16.7,2.6 +19821205,18.3,16.6,22.2,15.6,3.4 +19821206,12.7,7.8,20.6,7.7,3.9 +19821207,9.5,2.4,17.2,3.9,3.3 +19821208,8.1,-1.6,15.0,3.9,3.8 +19821209,8.6,-0.6,16.1,2.8,2.0 +19821210,5.5,-2.2,16.1,1.1,2.7 +19821211,6.8,4.7,8.9,1.1,0.9 +19821212,5.5,1.2,8.3,2.2,5.8 +19821213,-0.8,-10.3,7.8,-6.7,1.7 +19821214,0.8,-10.2,9.4,-6.7,1.0 +19821215,4.3,-1.8,9.4,-5.6,2.1 +19821216,11.1,5.3,13.9,2.2,3.3 +19821217,4.3,-3.5,13.9,1.1,2.3 +19821218,1.7,-6.3,7.8,-3.9,1.4 +19821219,1.2,-3.0,7.8,-3.9,1.2 +19821220,4.7,-3.4,11.7,-3.3,3.5 +19821221,4.1,-4.7,11.7,-1.7,1.6 +19821222,3.3,-4.4,10.0,-1.7,2.1 +19821223,6.1,-1.8,15.6,-0.6,0.9 +19821224,9.1,3.3,16.1,0.0,2.5 +19821225,14.8,12.1,21.1,5.6,2.6 +19821226,16.8,13.2,21.1,11.7,2.9 +19821227,14.4,12.5,21.1,11.1,1.3 +19821228,16.8,15.2,17.2,11.1,4.9 +19821229,14.4,10.9,17.2,12.2,4.6 +19821230,6.1,-2.4,17.2,5.0,4.0 +19821231,3.4,-0.6,6.1,2.2,3.7 +19830101,5.8,2.4,8.3,2.2,1.6 +19830102,6.9,4.6,8.3,4.4,2.2 +19830103,7.6,3.1,11.1,5.6,3.6 +19830104,3.2,-4.9,11.1,-1.1,3.2 +19830105,4.1,-4.4,8.3,-1.1,3.7 +19830106,5.7,-2.9,13.3,0.0,1.9 +19830107,8.4,0.8,16.7,0.0,4.0 +19830108,7.8,-2.0,16.7,1.7,2.7 +19830109,6.0,-3.5,13.3,1.7,4.4 +19830110,6.6,3.3,8.3,3.9,4.0 +19830111,7.4,3.1,10.6,3.9,5.0 +19830112,3.4,-5.7,10.6,1.1,6.3 +19830113,0.1,-8.8,6.7,-6.1,2.3 +19830114,1.3,-5.7,11.7,-6.1,2.1 +19830115,5.9,-4.1,11.7,3.3,4.3 +19830116,0.9,-10.2,7.8,-2.8,3.7 +19830117,-0.1,-9.7,9.4,-8.3,2.1 +19830118,-0.7,-13.0,9.4,-8.3,3.9 +19830119,-3.2,-16.8,3.3,-9.4,2.6 +19830120,-2.6,-16.0,3.3,-9.4,3.9 +19830121,-2.9,-5.7,0.0,-4.5,8.6 +19830122,1.4,0.6,11.1,-4.4,6.1 +19830123,2.6,2.1,4.4,0.6,2.8 +19830124,4.3,-0.1,8.3,1.1,2.8 +19830125,2.4,-1.6,10.0,-2.2,1.7 +19830126,2.2,-2.0,10.0,-3.4,1.7 +19830127,4.7,-0.1,9.4,-3.3,4.0 +19830128,6.3,1.4,12.2,1.1,3.4 +19830129,4.3,0.9,12.8,-1.1,1.4 +19830130,8.4,5.8,13.3,-1.1,2.5 +19830131,7.1,2.8,15.6,0.0,1.2 +19830201,7.7,4.5,15.6,0.0,2.5 +19830202,15.3,11.4,17.8,13.9,6.9 +19830203,5.4,-0.8,17.8,2.7,7.0 +19830204,1.8,-5.9,8.9,-3.9,3.5 +19830205,0.7,-9.5,8.9,-3.9,2.5 +19830206,0.7,-2.3,5.0,-2.8,2.8 +19830207,2.6,-0.1,7.8,0.0,2.5 +19830208,1.2,-7.1,8.3,-6.7,2.2 +19830209,1.4,-5.2,8.3,-6.7,1.6 +19830210,3.4,0.6,7.2,-3.3,4.1 +19830211,2.6,0.4,5.0,1.1,5.2 +19830212,1.8,-1.2,7.8,-2.8,0.9 +19830213,3.4,-2.4,7.8,-2.8,4.1 +19830214,4.6,-0.1,11.1,0.6,6.5 +19830215,6.8,1.1,15.6,-0.6,1.9 +19830216,6.4,3.3,15.6,-0.6,0.9 +19830217,9.9,3.0,17.2,0.6,3.4 +19830218,7.7,-2.2,17.2,0.0,3.0 +19830219,6.7,-0.2,16.1,-1.1,1.6 +19830220,8.0,1.0,16.1,-1.1,2.4 +19830221,7.8,-0.1,16.7,-0.6,1.5 +19830222,9.5,3.7,16.7,-0.6,1.9 +19830223,11.8,8.9,17.8,6.1,4.2 +19830224,10.5,5.6,18.3,4.4,2.3 +19830225,8.1,0.2,15.0,3.3,3.9 +19830226,2.4,-9.5,10.0,-5.6,3.3 +19830227,2.6,-9.0,9.4,-5.6,3.0 +19830228,5.7,-5.1,8.3,-3.3,5.8 +19830301,11.1,5.7,18.3,3.3,6.3 +19830302,14.6,-2.1,21.7,6.1,3.5 +19830303,12.7,0.8,22.8,3.3,1.5 +19830304,14.6,4.2,23.3,3.3,2.9 +19830305,16.4,10.0,23.9,6.7,2.8 +19830306,19.1,14.6,24.4,11.1,4.6 +19830307,15.6,12.7,24.4,12.2,2.1 +19830308,16.9,14.1,21.7,12.2,2.5 +19830309,12.5,7.7,22.8,6.7,2.9 +19830310,6.9,0.2,17.8,3.3,3.9 +19830311,5.2,-1.9,8.9,3.3,5.0 +19830312,8.2,-2.5,15.6,3.3,6.6 +19830313,10.9,-4.9,19.4,3.3,3.8 +19830314,11.5,-0.6,21.7,3.3,1.8 +19830315,15.3,5.3,25.0,3.3,2.0 +19830316,13.9,6.4,25.0,6.7,4.3 +19830317,7.9,5.1,15.6,5.6,8.1 +19830318,11.2,9.2,17.2,5.6,6.2 +19830319,15.2,7.7,22.2,8.3,4.7 +19830320,11.2,5.6,22.2,4.4,1.6 +19830321,11.7,7.6,20.0,4.4,6.4 +19830322,5.0,-5.2,14.4,-1.1,3.9 +19830323,5.2,-5.6,12.8,-1.1,2.0 +19830324,3.1,-1.5,11.7,-1.1,3.8 +19830325,3.7,-3.8,11.1,-1.7,1.5 +19830326,5.3,-4.2,12.8,-1.7,2.1 +19830327,8.0,5.4,17.8,-0.6,3.5 +19830328,12.4,2.2,17.8,4.4,5.0 +19830329,8.1,-0.5,15.6,0.0,1.9 +19830330,7.2,-0.3,15.0,0.0,3.0 +19830331,8.6,5.9,11.7,2.8,2.6 +19830401,8.9,5.2,17.2,2.2,1.4 +19830402,13.6,7.9,20.0,2.2,5.1 +19830403,11.0,2.4,20.0,8.8,7.3 +19830404,9.9,0.6,21.1,0.0,1.9 +19830405,11.1,6.3,21.1,0.0,2.0 +19830406,15.4,13.1,22.8,6.7,2.1 +19830407,18.8,16.7,23.3,11.1,2.3 +19830408,17.6,16.7,22.8,16.1,2.1 +19830409,17.6,17.1,18.9,16.7,3.4 +19830410,14.3,7.6,18.9,6.7,4.2 +19830411,12.5,1.6,19.4,3.8,4.4 +19830412,11.3,3.1,20.6,2.2,1.6 +19830413,14.6,7.3,22.2,2.2,2.3 +19830414,16.7,11.7,22.2,7.8,4.1 +19830415,17.7,13.4,21.7,13.9,4.4 +19830416,10.0,-2.8,21.7,2.8,4.3 +19830417,10.1,-3.5,18.3,0.5,3.7 +19830418,7.7,-0.1,18.9,0.6,3.3 +19830419,4.3,-7.3,10.6,0.0,5.6 +19830420,4.8,-7.6,13.3,-3.9,2.6 +19830421,7.2,-5.0,16.7,-3.9,1.7 +19830422,9.6,0.3,16.7,-2.8,2.0 +19830423,10.1,6.9,15.0,2.8,3.6 +19830424,11.4,9.7,13.9,7.8,4.1 +19830425,12.4,-1.8,19.4,7.2,5.7 +19830426,13.9,1.3,22.8,3.3,2.5 +19830427,15.8,4.1,26.7,3.3,1.7 +19830428,17.7,5.6,26.7,5.0,4.1 +19830429,18.6,9.0,26.1,8.3,3.9 +19830430,18.6,12.8,26.7,10.0,3.9 +19830501,20.6,14.6,26.1,10.0,4.5 +19830502,21.8,15.2,27.8,16.1,5.5 +19830503,19.8,14.8,27.8,16.1,5.6 +19830504,15.2,8.8,23.9,8.9,4.1 +19830505,15.4,4.8,24.4,6.1,2.1 +19830506,16.7,3.3,24.4,6.1,2.6 +19830507,17.3,7.6,26.7,7.2,3.1 +19830508,19.0,11.8,26.7,7.2,5.2 +19830509,15.6,6.9,23.9,10.0,4.4 +19830510,15.8,8.1,25.0,8.3,1.5 +19830511,19.3,12.2,27.8,8.3,2.5 +19830512,20.9,14.1,27.8,11.1,2.6 +19830513,18.7,15.8,28.9,13.9,2.0 +19830514,20.5,16.9,27.8,14.4,4.2 +19830515,21.7,15.8,27.8,14.4,5.2 +19830516,20.5,16.6,27.2,17.2,3.6 +19830517,16.4,7.6,27.2,11.7,5.0 +19830518,14.5,7.6,21.1,7.8,2.7 +19830519,16.3,14.3,21.7,7.8,2.8 +19830520,19.9,19.0,23.9,15.0,3.1 +19830521,21.1,19.1,26.7,17.2,3.7 +19830522,23.1,19.8,26.7,17.8,4.7 +19830523,22.9,18.3,27.2,19.4,4.0 +19830524,20.6,13.5,27.2,15.0,2.7 +19830525,18.7,11.0,25.6,12.8,3.0 +19830526,19.2,13.3,25.6,12.2,1.6 +19830527,17.0,7.6,26.1,10.6,3.1 +19830528,17.5,10.9,26.1,10.0,2.5 +19830529,20.6,15.6,26.1,10.0,3.4 +19830530,21.8,16.1,27.8,16.1,3.9 +19830531,20.2,10.9,27.8,11.1,3.3 +19830601,18.7,11.8,27.8,11.1,2.4 +19830602,17.6,11.8,25.6,11.1,2.7 +19830603,20.3,15.8,27.2,11.1,3.4 +19830604,23.7,18.6,27.8,14.4,3.9 +19830605,22.4,17.3,28.9,15.6,2.6 +19830606,22.4,18.8,28.9,15.6,3.3 +19830607,20.7,19.3,29.4,17.2,1.3 +19830608,20.3,16.1,25.0,16.1,2.4 +19830609,20.3,14.3,26.1,15.6,3.8 +19830610,20.4,12.9,27.2,14.4,3.9 +19830611,20.3,12.0,27.8,12.2,2.9 +19830612,20.9,11.9,28.9,12.2,3.1 +19830613,21.4,11.8,28.9,12.8,3.0 +19830614,21.8,12.1,29.4,12.8,1.7 +19830615,23.9,16.1,30.6,12.8,2.3 +19830616,24.6,18.5,30.6,16.7,2.5 +19830617,22.9,19.0,30.6,17.8,1.8 +19830618,22.2,18.7,28.9,17.8,2.3 +19830619,22.7,20.4,28.3,17.8,2.1 +19830620,23.7,19.6,28.9,19.4,2.6 +19830621,24.7,19.9,31.1,19.4,1.8 +19830622,22.4,20.8,31.1,19.4,3.9 +19830623,22.2,19.0,27.2,18.9,3.7 +19830624,23.2,16.9,30.6,16.7,1.2 +19830625,25.9,17.8,32.8,16.7,1.5 +19830626,26.4,20.7,33.3,18.9,2.4 +19830627,25.8,20.8,32.2,20.6,2.4 +19830628,24.9,21.7,31.1,20.6,4.1 +19830629,25.3,21.5,30.6,21.7,4.1 +19830630,25.3,22.2,30.6,22.2,2.7 +19830701,24.1,21.9,30.6,21.1,1.9 +19830702,25.6,21.6,31.7,20.6,1.3 +19830703,26.4,21.8,32.8,20.6,2.5 +19830704,25.8,21.9,32.8,21.1,2.9 +19830705,24.9,21.8,31.7,21.7,2.4 +19830706,23.6,18.8,31.1,18.9,3.3 +19830707,22.6,14.7,29.4,18.3,4.8 +19830708,21.8,14.6,27.8,15.6,3.5 +19830709,22.9,15.3,30.6,15.0,2.0 +19830710,24.8,15.8,31.1,15.0,2.0 +19830711,25.9,19.9,32.2,16.1,2.0 +19830712,26.0,21.1,32.2,20.0,2.6 +19830713,27.1,20.7,34.4,20.0,1.7 +19830714,27.9,21.5,35.0,20.0,1.7 +19830715,27.4,22.2,34.4,21.1,2.0 +19830716,28.2,20.8,36.1,21.1,1.7 +19830717,28.3,21.1,36.1,21.1,1.4 +19830718,27.1,20.4,35.0,21.1,2.8 +19830719,26.7,20.2,35.0,19.4,2.3 +19830720,27.7,21.0,34.4,19.4,2.0 +19830721,29.2,22.1,36.1,20.6,2.6 +19830722,31.3,22.3,37.8,22.2,3.2 +19830723,31.1,21.6,38.3,23.9,2.9 +19830724,30.3,21.1,37.2,23.9,2.5 +19830725,27.5,21.9,37.2,23.9,2.1 +19830726,24.5,20.1,32.8,20.6,3.0 +19830727,24.9,18.1,30.0,18.3,2.6 +19830728,24.3,16.3,30.6,17.8,2.2 +19830729,24.5,17.9,30.6,17.8,2.3 +19830730,24.3,15.9,31.1,16.7,1.9 +19830731,26.1,19.8,31.1,16.7,3.2 +19830801,23.4,21.3,31.1,20.6,3.0 +19830802,23.7,21.5,28.9,20.6,2.5 +19830803,23.7,20.2,28.9,20.0,1.7 +19830804,26.3,20.6,32.2,20.0,2.3 +19830805,26.7,19.9,33.3,20.0,1.5 +19830806,26.1,20.1,33.3,20.6,2.3 +19830807,25.4,20.4,32.8,20.6,2.7 +19830808,25.2,20.2,32.8,20.0,2.2 +19830809,27.6,20.2,34.4,20.0,2.2 +19830810,27.4,18.1,35.0,20.6,1.6 +19830811,28.2,19.4,35.0,20.6,3.2 +19830812,26.4,19.6,34.4,21.7,3.1 +19830813,24.1,14.6,31.7,18.3,3.4 +19830814,21.1,12.3,29.4,15.0,2.7 +19830815,21.2,13.6,29.4,14.4,2.2 +19830816,23.8,16.2,30.0,14.4,1.5 +19830817,25.0,17.4,31.7,17.2,1.9 +19830818,26.8,17.9,35.0,17.8,2.0 +19830819,29.2,18.9,36.7,18.9,2.0 +19830820,30.2,19.4,37.2,21.7,2.6 +19830821,30.1,19.9,38.9,22.8,2.1 +19830822,29.9,19.9,38.9,22.8,2.5 +19830823,30.7,19.7,39.4,22.8,2.7 +19830824,27.6,19.9,38.3,21.1,3.8 +19830825,22.5,20.9,24.4,21.1,3.5 +19830826,24.2,18.5,28.9,21.1,2.5 +19830827,25.6,21.1,31.1,21.1,1.7 +19830828,26.7,19.6,31.7,21.1,2.3 +19830829,26.8,19.5,32.2,21.7,2.3 +19830830,24.9,17.6,32.8,18.3,2.6 +19830831,23.3,18.8,31.1,18.3,1.4 +19830901,23.2,19.6,30.6,18.3,2.6 +19830902,21.5,19.1,27.2,20.0,3.5 +19830903,20.8,19.9,23.9,19.4,3.4 +19830904,22.9,20.8,27.2,19.4,3.2 +19830905,24.7,21.4,30.6,20.0,2.3 +19830906,24.9,20.9,30.6,20.6,3.5 +19830907,25.3,19.9,30.6,20.0,3.3 +19830908,25.4,20.4,31.1,20.0,2.0 +19830909,25.3,20.5,31.1,20.0,1.8 +19830910,26.1,20.7,32.2,20.6,1.6 +19830911,26.1,20.7,32.2,21.1,1.5 +19830912,24.8,19.7,32.2,20.0,2.9 +19830913,22.8,19.7,30.6,20.0,2.4 +19830914,20.1,17.9,25.6,17.8,4.7 +19830915,18.9,12.7,23.9,15.0,3.4 +19830916,18.2,13.3,23.9,14.4,2.7 +19830917,20.7,16.3,27.8,14.4,2.5 +19830918,22.2,17.9,28.9,15.6,1.7 +19830919,21.9,17.7,28.9,15.6,1.3 +19830920,21.3,19.2,28.9,16.1,2.4 +19830921,21.5,20.3,24.4,17.8,5.1 +19830922,12.7,3.3,23.3,4.4,3.1 +19830923,12.2,4.2,20.6,4.4,2.2 +19830924,13.1,4.2,21.1,4.4,3.6 +19830925,12.5,5.3,20.0,6.7,3.2 +19830926,13.9,7.1,21.1,6.7,2.9 +19830927,15.3,8.3,23.9,8.3,3.2 +19830928,17.2,10.0,25.0,8.3,3.2 +19830929,17.7,9.1,25.0,11.1,4.2 +19830930,15.0,5.7,20.6,12.2,2.1 +19831001,15.3,11.8,21.7,12.2,2.0 +19831002,17.3,11.3,26.1,8.9,1.7 +19831003,17.9,11.2,27.8,8.9,1.5 +19831004,19.7,14.6,27.8,10.6,2.4 +19831005,23.1,19.1,27.8,12.8,4.9 +19831006,19.2,12.3,27.2,13.3,3.3 +19831007,16.7,8.3,26.1,10.6,3.0 +19831008,15.4,8.4,23.9,10.0,3.0 +19831009,14.3,9.3,22.8,10.0,3.7 +19831010,16.8,11.8,21.1,10.6,5.2 +19831011,15.1,12.4,21.1,14.4,6.2 +19831012,16.4,15.9,20.0,14.4,3.1 +19831013,19.6,18.1,21.7,14.4,5.1 +19831014,11.6,5.1,21.7,5.0,2.1 +19831015,12.5,6.7,22.2,5.0,1.6 +19831016,13.1,7.7,22.8,5.0,1.6 +19831017,14.0,8.6,23.9,6.1,1.0 +19831018,15.2,10.9,23.9,7.2,1.2 +19831019,16.8,13.1,23.3,9.4,0.6 +19831020,16.4,13.0,23.3,11.7,3.7 +19831021,12.8,10.7,19.4,12.2,5.2 +19831022,9.9,8.9,13.3,9.4,5.4 +19831023,10.9,10.2,14.4,9.4,4.2 +19831024,15.2,11.9,20.6,9.4,1.8 +19831025,14.9,9.1,21.7,7.8,2.8 +19831026,12.7,5.1,21.7,4.4,2.3 +19831027,10.7,-0.3,18.9,3.3,2.8 +19831028,10.1,2.2,20.6,2.2,2.6 +19831029,13.8,4.6,23.3,2.2,2.4 +19831030,12.9,3.9,23.3,5.0,4.5 +19831031,11.4,3.8,14.4,9.4,2.7 +19831101,13.4,8.7,20.0,9.4,2.2 +19831102,12.8,9.1,20.0,7.8,1.3 +19831103,14.8,10.3,23.3,7.8,2.0 +19831104,16.2,13.4,23.3,9.4,2.5 +19831105,8.9,-0.2,17.8,1.7,2.6 +19831106,7.0,0.2,16.7,0.0,1.9 +19831107,8.8,4.2,16.7,0.0,1.2 +19831108,11.5,6.8,18.9,3.9,3.0 +19831109,13.1,7.8,18.9,6.7,4.6 +19831110,14.2,13.2,17.8,8.9,3.7 +19831111,8.9,2.5,16.1,3.3,5.0 +19831112,6.5,-4.9,15.6,3.3,4.6 +19831113,4.8,-3.9,11.7,1.7,1.3 +19831114,2.7,-2.9,8.9,-3.3,1.0 +19831115,6.8,5.3,8.9,5.6,3.3 +19831116,5.9,1.0,10.6,1.1,2.7 +19831117,4.8,-2.9,11.1,-1.7,2.2 +19831118,5.7,-1.8,17.2,-1.7,1.8 +19831119,8.8,1.8,18.3,-1.1,2.9 +19831120,11.1,8.9,18.3,2.2,2.8 +19831121,9.7,4.1,17.2,1.6,2.1 +19831122,10.3,2.2,22.2,1.7,0.9 +19831123,12.3,7.1,22.2,2.8,1.4 +19831124,14.9,13.4,19.4,7.2,3.0 +19831125,8.3,-1.2,16.1,2.8,3.9 +19831126,5.5,-2.4,15.6,-1.1,1.7 +19831127,7.7,2.6,15.6,-1.1,0.9 +19831128,14.5,11.1,19.4,11.1,5.1 +19831129,8.2,-2.3,19.4,3.9,5.4 +19831130,4.6,-5.3,14.4,-3.3,2.2 +19831201,8.8,-2.8,15.6,-3.3,2.7 +19831202,5.6,-2.5,15.6,-1.1,1.2 +19831203,10.8,8.0,13.9,8.9,1.4 +19831204,11.1,8.1,17.8,7.2,5.4 +19831205,9.3,5.5,18.3,3.3,1.8 +19831206,12.3,8.6,18.3,3.3,4.5 +19831207,3.7,-6.4,8.3,-1.7,3.1 +19831208,3.3,-6.1,11.1,-1.7,3.1 +19831209,3.6,-3.9,11.7,-1.1,2.2 +19831210,6.1,-0.8,16.1,-1.1,1.0 +19831211,6.8,3.6,16.1,0.6,3.9 +19831212,10.7,8.6,16.7,3.3,3.4 +19831213,10.3,5.4,16.7,3.3,2.7 +19831214,8.4,6.5,16.1,3.3,3.8 +19831215,7.0,0.6,10.6,2.7,5.3 +19831216,5.1,-4.1,10.6,-1.1,3.4 +19831217,7.2,-2.4,11.7,-1.1,2.2 +19831218,3.8,-7.3,11.7,-1.1,3.0 +19831219,4.6,-4.6,9.4,-1.1,2.2 +19831220,2.6,-5.6,8.3,-1.1,3.7 +19831221,0.7,-8.7,3.3,0.0,6.0 +19831222,3.1,1.3,6.7,0.0,2.8 +19831223,4.2,-3.6,6.7,0.6,2.5 +19831224,-1.3,-11.6,6.7,-12.2,4.4 +19831225,-11.6,-26.9,1.7,-14.4,4.1 +19831226,-9.2,-22.3,-2.2,-14.4,2.1 +19831227,-2.2,-13.9,1.7,-3.9,2.2 +19831228,1.1,-2.7,4.4,-4.4,2.9 +19831229,3.9,0.4,5.6,-0.6,2.8 +19831230,-3.8,-16.4,5.6,-15.6,4.8 +19831231,-5.3,-16.3,3.9,-11.7,1.3 +19840101,-1.4,-12.8,8.9,-11.7,0.4 +19840102,1.1,-11.2,9.4,-7.8,1.2 +19840103,3.9,-5.7,10.6,-5.0,1.5 +19840104,3.0,-5.8,13.3,-5.0,1.7 +19840105,8.8,-2.2,13.3,4.4,3.5 +19840106,8.3,-1.3,16.1,2.8,3.8 +19840107,7.4,-4.5,16.1,2.8,3.7 +19840108,4.2,-6.0,15.6,-3.3,1.9 +19840109,6.1,-2.8,16.1,-3.3,1.0 +19840110,7.4,2.7,16.1,-1.7,3.4 +19840111,5.6,-2.6,8.3,2.8,4.3 +19840112,-0.3,-13.3,7.8,-3.3,4.7 +19840113,-0.4,-7.6,3.3,-3.3,4.5 +19840114,2.7,-1.8,10.6,-2.2,1.2 +19840115,2.9,-3.1,10.6,-2.2,1.9 +19840116,3.2,-2.0,6.7,1.6,1.0 +19840117,3.3,-1.2,10.0,-2.8,1.0 +19840118,5.8,3.3,10.6,-2.8,2.6 +19840119,4.0,-1.4,6.1,0.6,2.8 +19840120,-2.9,-13.5,5.6,-7.8,2.0 +19840121,-1.7,-15.4,3.3,-7.8,2.2 +19840122,-3.8,-15.1,2.8,-10.0,1.9 +19840123,-1.3,-11.8,4.4,-10.0,2.7 +19840124,3.9,1.8,7.2,-5.6,2.6 +19840125,8.9,6.9,13.3,1.7,1.9 +19840126,6.2,-1.3,14.4,0.0,1.9 +19840127,9.1,3.7,17.2,0.0,1.2 +19840128,5.9,-1.7,17.2,-1.1,1.4 +19840129,6.2,-3.9,12.8,-1.1,4.1 +19840130,5.6,-4.6,14.4,-1.1,4.5 +19840131,1.7,-9.8,14.4,-2.2,3.9 +19840201,0.9,-9.5,9.4,-6.1,1.5 +19840202,3.1,-6.2,14.4,-6.1,1.5 +19840203,6.1,0.7,14.4,-3.9,1.9 +19840204,9.4,4.7,15.0,2.2,2.0 +19840205,5.3,-6.7,15.0,-2.2,3.9 +19840206,0.1,-7.9,7.2,-5.0,4.0 +19840207,-2.2,-14.5,5.0,-8.3,3.0 +19840208,-0.3,-13.5,10.6,-8.3,0.8 +19840209,5.0,-9.2,16.7,-8.3,2.7 +19840210,7.9,-2.4,17.2,-1.7,1.7 +19840211,11.9,8.7,18.9,1.1,2.1 +19840212,11.4,8.2,20.0,6.1,1.4 +19840213,14.3,11.4,20.6,6.1,2.6 +19840214,13.6,8.2,17.2,10.0,3.5 +19840215,10.7,-0.7,19.4,2.8,2.3 +19840216,10.0,1.5,19.4,2.8,1.5 +19840217,11.6,3.6,20.6,2.8,2.2 +19840218,11.3,1.9,20.6,1.7,1.6 +19840219,11.2,4.8,20.6,1.7,2.1 +19840220,14.4,5.4,20.6,4.4,2.7 +19840221,9.5,-1.7,18.3,4.4,2.2 +19840222,7.5,-4.9,15.6,1.1,2.8 +19840223,8.3,3.3,13.3,1.1,5.0 +19840224,10.0,1.4,18.3,2.8,4.2 +19840225,8.9,-1.4,18.9,0.6,4.1 +19840226,4.1,-5.1,12.8,-2.2,1.4 +19840227,4.9,-1.3,11.7,-2.2,5.7 +19840228,3.1,-1.6,7.2,2.2,6.8 +19840229,1.4,-9.6,6.1,-2.2,4.5 +19840301,0.4,-13.8,7.8,-6.1,3.3 +19840302,6.2,-7.6,13.9,-6.1,3.2 +19840303,7.1,-2.6,16.1,-1.1,2.1 +19840304,7.0,-1.6,16.7,-1.1,2.8 +19840305,9.7,5.0,12.8,1.7,2.3 +19840306,11.7,9.2,15.6,7.8,1.4 +19840307,7.3,1.6,15.6,4.4,3.4 +19840308,6.3,-2.1,16.7,-1.7,4.7 +19840309,3.8,-12.1,16.7,-1.7,4.9 +19840310,2.1,-10.7,7.8,-2.8,3.2 +19840311,3.8,-6.1,13.9,-3.9,2.0 +19840312,5.6,-5.6,13.9,-3.9,2.6 +19840313,8.1,2.8,14.4,-1.7,3.6 +19840314,12.3,4.8,22.8,5.0,2.2 +19840315,13.5,2.7,23.9,5.6,3.3 +19840316,16.6,7.4,25.6,5.6,3.7 +19840317,14.6,6.2,25.6,10.0,2.6 +19840318,10.7,8.7,17.8,7.8,1.2 +19840319,14.7,10.4,25.6,7.8,1.7 +19840320,16.9,10.9,26.1,8.3,2.3 +19840321,8.8,2.3,22.2,4.4,7.1 +19840322,10.2,-3.4,18.9,-2.2,5.9 +19840323,12.2,-5.2,20.6,1.1,2.6 +19840324,13.1,-1.1,21.1,1.1,3.1 +19840325,16.4,10.9,21.1,6.7,4.1 +19840326,12.9,2.6,21.7,6.1,4.0 +19840327,9.6,5.4,17.2,5.6,1.8 +19840328,14.6,11.4,21.1,5.6,4.4 +19840329,11.4,5.5,21.1,8.9,6.0 +19840330,8.7,-2.4,15.6,1.7,3.9 +19840331,8.4,-5.4,15.6,1.1,3.6 +19840401,10.9,-1.5,16.1,1.1,3.5 +19840402,11.1,-1.2,19.4,3.3,3.7 +19840403,11.3,7.3,19.4,3.3,2.1 +19840404,13.3,12.8,18.3,9.4,3.9 +19840405,11.7,4.1,18.3,6.7,5.7 +19840406,11.3,0.7,17.2,3.3,4.9 +19840407,13.4,-2.1,22.2,3.3,4.4 +19840408,13.1,-0.2,22.2,3.9,3.3 +19840409,9.4,5.6,17.8,6.7,6.1 +19840410,6.4,4.1,11.7,5.0,7.7 +19840411,11.1,2.3,18.9,5.0,3.5 +19840412,12.8,3.6,21.1,5.0,2.6 +19840413,15.9,9.1,23.9,5.0,3.5 +19840414,17.4,11.2,25.0,10.6,3.4 +19840415,14.6,6.8,25.0,7.2,4.0 +19840416,12.5,2.9,21.1,5.0,4.9 +19840417,10.9,3.6,17.8,5.0,6.0 +19840418,10.5,1.6,16.7,3.9,4.5 +19840419,7.9,3.7,17.2,3.3,1.9 +19840420,9.4,8.0,12.2,3.3,1.1 +19840421,13.7,11.2,21.7,7.2,2.4 +19840422,13.4,10.1,21.7,10.0,5.6 +19840423,9.5,6.5,18.3,6.7,5.0 +19840424,12.6,0.8,18.9,5.6,4.8 +19840425,16.9,4.6,29.4,5.6,4.3 +19840426,21.2,8.2,29.4,8.3,3.8 +19840427,17.6,12.8,29.4,11.7,2.8 +19840428,19.5,17.6,25.6,13.3,2.1 +19840429,19.2,18.4,25.6,13.3,2.3 +19840430,19.6,18.2,26.1,17.2,4.4 +19840501,17.7,8.8,26.1,10.6,3.4 +19840502,15.3,9.8,25.0,10.6,3.1 +19840503,12.8,11.9,16.7,11.7,3.6 +19840504,18.2,12.7,24.4,11.7,6.4 +19840505,16.4,7.7,24.4,6.7,2.7 +19840506,18.1,15.7,25.0,6.7,2.8 +19840507,18.8,16.9,25.0,13.9,3.3 +19840508,19.5,16.9,24.4,14.4,4.3 +19840509,12.6,3.4,23.9,4.4,4.8 +19840510,13.7,3.4,20.6,4.4,2.6 +19840511,15.9,7.6,24.4,5.6,3.1 +19840512,19.5,12.1,28.3,6.7,4.4 +19840513,21.6,15.3,28.3,12.8,3.4 +19840514,22.7,15.9,30.0,15.0,3.0 +19840515,17.1,4.1,30.0,8.9,3.3 +19840516,16.7,1.3,25.6,8.9,3.9 +19840517,16.2,-0.9,23.9,6.7,3.2 +19840518,18.2,5.4,27.8,6.7,2.3 +19840519,22.4,9.4,31.1,8.9,3.8 +19840520,23.9,13.2,31.7,13.3,4.7 +19840521,23.3,14.8,30.6,16.1,3.2 +19840522,23.7,18.6,30.6,16.7,2.8 +19840523,23.8,20.2,30.6,18.9,4.0 +19840524,22.2,12.6,30.6,15.6,3.8 +19840525,21.3,13.7,28.0,13.9,1.9 +19840526,25.0,19.2,31.7,13.9,2.3 +19840527,25.1,20.0,31.7,20.0,3.3 +19840528,24.6,21.3,30.6,20.0,4.0 +19840529,23.6,19.7,29.4,20.6,5.4 +19840530,16.0,5.9,28.3,11.1,4.6 +19840531,15.6,1.7,24.4,6.1,4.2 +19840601,19.2,5.3,26.7,6.1,3.1 +19840602,22.9,10.8,31.1,8.9,3.2 +19840603,26.7,13.2,32.2,13.9,3.1 +19840604,25.8,17.0,32.2,18.9,2.4 +19840605,26.4,20.1,32.2,18.9,2.5 +19840606,27.5,20.7,33.3,20.0,2.7 +19840607,27.5,20.6,33.3,20.6,3.4 +19840608,27.4,19.3,32.8,20.6,3.1 +19840609,26.0,18.2,31.7,20.0,2.6 +19840610,26.5,17.7,32.8,20.0,2.3 +19840611,26.9,18.2,33.9,20.6,2.2 +19840612,26.7,19.6,33.9,20.6,1.9 +19840613,27.1,18.1,33.9,20.6,2.3 +19840614,27.1,18.0,33.9,20.6,3.2 +19840615,26.7,18.9,34.4,21.1,3.1 +19840616,26.6,18.7,34.4,21.1,2.3 +19840617,26.0,19.9,34.4,21.7,2.4 +19840618,27.5,18.7,35.0,21.7,2.4 +19840619,29.7,18.7,36.1,21.7,2.0 +19840620,28.6,19.8,36.1,22.2,2.4 +19840621,25.8,20.7,34.4,22.8,2.8 +19840622,21.4,19.3,30.0,19.4,4.1 +19840623,22.3,19.3,26.7,19.4,2.4 +19840624,21.9,19.9,27.2,18.3,1.4 +19840625,24.2,17.0,30.0,18.3,3.0 +19840626,23.4,10.7,30.6,16.1,3.0 +19840627,22.3,16.1,29.4,16.1,2.3 +19840628,22.9,19.2,29.4,16.1,2.3 +19840629,19.6,18.4,28.9,17.2,2.5 +19840630,21.2,18.8,25.0,17.2,2.2 +19840701,20.2,15.4,27.2,13.3,2.4 +19840702,20.4,18.6,27.2,13.3,2.5 +19840703,20.2,16.1,28.3,13.3,1.7 +19840704,23.3,19.1,30.0,13.3,3.2 +19840705,23.2,20.2,30.0,17.8,3.5 +19840706,22.1,19.7,30.0,18.3,3.4 +19840707,22.6,18.9,28.9,18.3,3.7 +19840708,21.9,17.3,28.3,17.8,3.0 +19840709,22.5,17.2,28.9,16.7,2.3 +19840710,25.9,19.3,33.3,16.7,2.6 +19840711,28.1,21.6,34.4,20.6,3.1 +19840712,26.9,20.6,35.0,21.1,3.6 +19840713,23.9,21.6,33.9,20.6,2.8 +19840714,23.9,21.7,28.9,20.6,2.7 +19840715,25.8,22.0,30.6,21.7,2.8 +19840716,24.1,21.9,31.1,22.2,3.7 +19840717,24.4,21.4,30.0,22.2,2.9 +19840718,24.3,20.3,29.4,21.1,3.7 +19840719,24.2,17.3,29.4,19.4,3.2 +19840720,23.8,19.6,28.3,19.4,2.0 +19840721,23.9,19.2,28.3,20.0,1.7 +19840722,23.8,18.6,28.9,20.0,3.9 +19840723,24.2,19.1,28.3,20.6,2.8 +19840724,25.8,20.8,31.7,20.6,1.8 +19840725,27.6,21.2,32.2,21.1,2.0 +19840726,26.0,21.2,32.8,22.2,2.5 +19840727,24.2,20.4,32.2,20.6,4.7 +19840728,22.7,19.9,30.6,20.6,3.0 +19840729,20.1,18.0,24.4,17.8,3.4 +19840730,20.2,17.6,23.3,17.8,3.3 +19840731,20.9,18.8,23.3,17.8,3.7 +19840801,22.9,21.2,27.2,18.9,2.5 +19840802,23.3,20.8,29.4,20.0,2.3 +19840803,25.6,21.6,30.0,20.0,3.8 +19840804,26.2,20.6,31.7,20.6,2.4 +19840805,25.2,19.9,31.7,20.6,2.3 +19840806,25.5,21.0,31.7,20.6,2.6 +19840807,26.2,20.5,31.7,21.1,2.4 +19840808,26.1,20.0,31.1,20.6,1.8 +19840809,25.6,20.9,31.7,20.6,1.5 +19840810,24.6,20.9,31.1,21.1,1.7 +19840811,23.6,19.8,31.1,19.4,2.0 +19840812,23.7,21.2,30.0,19.4,2.8 +19840813,23.4,21.1,28.3,21.1,2.8 +19840814,24.1,21.4,28.9,20.0,1.3 +19840815,24.9,19.9,30.0,20.0,1.3 +19840816,25.1,21.6,30.0,20.0,1.7 +19840817,24.4,19.4,30.6,19.4,1.9 +19840818,22.9,18.9,30.0,18.3,1.4 +19840819,23.4,20.3,29.4,18.3,1.3 +19840820,23.8,19.3,30.0,19.4,2.8 +19840821,23.3,18.3,28.9,19.4,2.7 +19840822,22.6,18.4,28.3,17.8,1.5 +19840823,23.5,19.4,28.9,17.8,2.0 +19840824,22.2,16.3,28.3,17.2,2.3 +19840825,22.3,17.1,27.2,17.2,2.6 +19840826,22.3,19.1,26.7,18.9,2.1 +19840827,22.8,18.8,27.8,18.3,2.7 +19840828,23.0,19.7,28.3,18.3,3.4 +19840829,22.9,19.8,27.2,19.4,2.8 +19840830,23.6,19.8,28.9,18.9,3.6 +19840831,25.3,18.3,30.6,18.9,3.0 +19840901,23.1,13.8,30.6,17.2,2.4 +19840902,23.1,16.6,31.1,16.1,1.9 +19840903,24.7,19.1,31.1,16.1,3.3 +19840904,21.9,17.3,31.1,19.4,2.8 +19840905,20.1,11.4,26.1,15.0,3.7 +19840906,18.3,10.4,25.0,12.2,2.6 +19840907,18.1,10.0,25.0,12.2,3.3 +19840908,17.2,8.9,25.0,11.1,3.6 +19840909,18.8,11.2,25.0,11.1,3.8 +19840910,21.9,14.4,27.8,13.3,4.0 +19840911,22.9,15.9,31.1,16.7,2.9 +19840912,24.8,17.0,31.7,16.7,2.9 +19840913,25.3,17.2,32.2,18.9,4.1 +19840914,25.0,17.4,33.3,17.2,2.0 +19840915,24.2,17.1,33.3,17.2,3.3 +19840916,18.7,6.5,31.1,13.9,5.6 +19840917,14.8,4.2,22.8,8.3,4.3 +19840918,15.0,5.5,21.1,8.3,3.7 +19840919,16.6,6.3,25.0,7.8,2.3 +19840920,18.1,8.2,28.3,7.8,1.5 +19840921,20.6,10.7,30.6,9.4,1.8 +19840922,21.1,12.7,30.6,12.2,2.6 +19840923,21.4,14.3,30.0,13.3,2.1 +19840924,20.9,15.1,28.9,15.0,1.5 +19840925,22.7,15.2,31.7,15.6,2.3 +19840926,23.1,13.3,31.7,14.4,2.6 +19840927,18.3,7.8,23.3,14.4,5.5 +19840928,14.1,5.7,20.0,11.7,3.7 +19840929,15.8,8.3,19.4,11.7,4.5 +19840930,14.1,9.2,19.4,12.2,4.0 +19841001,12.9,5.7,15.6,10.0,4.4 +19841002,12.5,1.8,19.4,4.4,2.6 +19841003,12.7,3.5,22.2,4.4,2.4 +19841004,16.1,6.4,25.6,5.0,1.9 +19841005,18.2,10.1,26.1,7.8,1.3 +19841006,17.9,11.9,26.7,11.7,2.8 +19841007,17.6,12.4,24.4,12.8,3.9 +19841008,18.1,13.5,23.3,15.6,2.8 +19841009,18.8,13.9,23.9,15.6,2.4 +19841010,19.8,14.6,24.4,15.6,3.2 +19841011,19.1,12.1,25.0,15.6,4.1 +19841012,17.8,10.3,26.1,11.1,2.0 +19841013,19.0,8.1,27.2,11.1,1.9 +19841014,17.7,8.9,27.8,10.0,0.8 +19841015,19.2,12.0,27.2,10.0,1.7 +19841016,20.7,14.4,27.8,13.9,1.9 +19841017,19.3,15.2,27.8,15.6,1.6 +19841018,20.9,16.9,25.6,16.7,2.8 +19841019,21.1,16.6,28.3,16.7,2.8 +19841020,21.5,15.7,28.3,16.1,3.1 +19841021,22.1,17.2,28.3,16.1,4.9 +19841022,21.5,18.4,26.7,18.9,3.5 +19841023,20.2,17.6,26.7,16.1,1.8 +19841024,20.9,18.1,26.7,16.7,2.3 +19841025,20.8,16.9,26.7,16.7,1.6 +19841026,19.0,14.3,26.7,14.4,2.0 +19841027,16.8,13.3,26.2,12.2,1.2 +19841028,21.1,18.5,27.2,12.2,2.8 +19841029,22.6,18.8,27.2,18.3,3.4 +19841030,21.6,17.1,27.8,17.2,2.2 +19841031,19.0,15.7,27.2,16.1,3.5 +19841101,18.9,15.2,22.2,16.1,3.3 +19841102,18.2,14.7,23.3,13.9,2.0 +19841103,12.5,2.4,23.3,10.0,6.3 +19841104,7.8,3.9,15.0,6.1,5.8 +19841105,12.0,9.7,18.3,6.1,3.1 +19841106,9.1,-0.6,19.4,4.4,4.8 +19841107,5.5,-3.6,12.2,-2.8,2.2 +19841108,5.9,-1.8,14.4,-1.7,1.6 +19841109,7.7,-0.7,17.2,0.0,1.5 +19841110,8.8,3.4,20.0,1.1,2.6 +19841111,11.5,6.0,20.6,1.1,5.6 +19841112,6.4,-3.6,13.9,3.3,5.4 +19841113,5.4,-9.9,13.3,-0.6,4.9 +19841114,5.9,-8.8,16.7,-2.8,2.3 +19841115,7.7,-2.7,18.3,-2.8,3.0 +19841116,13.8,5.2,19.8,1.7,3.9 +19841117,6.4,-10.2,19.4,-2.8,2.6 +19841118,4.8,-3.1,14.4,-2.8,1.1 +19841119,13.3,8.1,22.8,0.6,3.2 +19841120,8.2,0.8,23.3,3.9,4.8 +19841121,0.2,-8.2,9.4,-4.4,3.7 +19841122,1.2,-8.7,8.3,-4.4,4.3 +19841123,3.1,-9.9,14.4,-3.9,2.9 +19841124,5.6,-8.6,17.8,-3.9,1.2 +19841125,5.3,-5.4,18.3,-2.8,1.3 +19841126,7.3,-3.3,17.8,-1.1,1.5 +19841127,11.4,4.4,20.0,-0.6,2.3 +19841128,13.5,8.2,20.6,6.7,5.6 +19841129,5.7,-5.4,15.6,-1.7,2.6 +19841130,4.4,-3.2,14.4,-2.8,2.3 +19841201,9.6,3.7,16.7,-2.8,2.2 +19841202,6.4,-0.2,16.7,2.8,3.1 +19841203,9.3,5.3,16.7,2.8,3.2 +19841204,3.2,-5.8,7.8,-1.7,1.5 +19841205,2.6,-1.0,7.8,-1.7,5.2 +19841206,2.9,-2.1,7.8,0.0,4.8 +19841207,-3.3,-15.2,7.8,-8.3,4.5 +19841208,1.4,-8.2,12.8,-8.3,2.3 +19841209,4.3,-3.6,14.4,-5.6,1.5 +19841210,5.6,1.6,15.0,-3.3,1.8 +19841211,9.7,5.3,16.7,0.6,1.4 +19841212,8.5,4.4,16.7,2.2,2.2 +19841213,13.7,9.4,21.7,2.2,3.3 +19841214,13.3,10.0,21.7,6.1,2.6 +19841215,12.7,9.0,21.7,5.6,1.1 +19841216,12.6,9.0,21.1,5.6,1.5 +19841217,13.8,9.0,21.1,7.8,2.7 +19841218,15.3,10.2,23.9,8.3,1.7 +19841219,16.6,11.5,24.4,8.9,4.2 +19841220,16.7,12.5,21.7,12.8,3.5 +19841221,14.3,12.3,17.8,11.1,3.9 +19841222,14.7,11.0,17.8,10.0,5.7 +19841223,6.8,-2.2,16.7,2.2,2.7 +19841224,4.0,-1.6,11.1,-0.6,1.5 +19841225,10.9,5.5,16.7,-0.6,2.7 +19841226,6.0,-6.1,8.3,3.3,4.5 +19841227,10.6,1.8,19.4,3.3,2.5 +19841228,12.3,8.3,21.1,5.0,3.2 +19841229,15.4,10.8,22.2,10.6,5.5 +19841230,16.6,11.5,23.9,10.6,4.3 +19841231,13.6,11.4,23.9,10.6,3.1 +19850101,14.5,11.3,21.7,10.0,3.4 +19850102,16.3,13.9,22.2,10.0,2.4 +19850103,9.6,8.1,16.7,3.3,6.2 +19850104,2.6,0.8,3.9,1.7,5.6 +19850105,1.6,-5.4,5.6,-0.6,4.5 +19850106,-0.5,-6.7,8.3,-9.4,2.4 +19850107,4.4,-3.1,13.3,-7.2,4.7 +19850108,4.1,-4.5,13.3,-1.7,3.4 +19850109,2.1,-8.3,9.4,-3.9,3.9 +19850110,3.0,-8.3,8.3,-3.9,3.2 +19850111,4.1,-2.4,7.8,1.1,2.9 +19850112,-0.2,-10.9,8.3,-4.4,5.7 +19850113,0.2,-10.5,8.9,-7.8,2.6 +19850114,2.1,-9.8,9.4,-7.8,5.2 +19850115,2.1,-9.8,8.9,-3.3,5.2 +19850116,-0.7,-9.5,5.6,-6.7,2.3 +19850117,3.5,-0.1,8.3,-6.7,3.3 +19850118,2.3,-3.1,8.9,-3.3,4.2 +19850119,7.2,-4.1,12.2,3.3,5.5 +19850120,-1.1,-12.4,12.8,-12.2,5.5 +19850121,-14.0,-29.2,-3.3,-20.0,4.6 +19850122,-5.9,-16.2,4.4,-20.0,3.0 +19850123,-3.4,-13.5,6.1,-12.8,2.5 +19850124,1.6,-10.6,10.6,-10.6,4.8 +19850125,6.2,-6.4,13.9,-5.0,6.5 +19850126,-1.8,-16.2,6.1,-8.3,4.6 +19850127,-1.5,-14.8,8.9,-10.0,2.6 +19850128,2.3,-4.2,9.4,0.6,4.0 +19850129,1.1,-3.1,3.9,-1.7,2.1 +19850130,2.5,-1.8,6.7,-1.7,2.2 +19850131,4.9,3.6,7.2,-1.7,2.6 +19850201,8.3,8.1,13.3,3.3,3.4 +19850202,8.5,7.8,13.3,6.7,3.0 +19850203,5.0,0.9,9.4,2.2,4.2 +19850204,2.2,-4.0,6.1,0.0,4.3 +19850205,0.6,-2.6,4.4,-1.1,3.3 +19850206,2.9,1.3,10.0,0.0,1.6 +19850207,2.4,-4.7,10.6,-2.2,2.4 +19850208,-0.2,-15.3,7.2,-5.6,5.9 +19850209,2.3,-16.0,11.1,-5.6,4.4 +19850210,3.6,-9.1,14.4,-2.8,1.8 +19850211,3.8,-2.8,14.4,-2.8,2.6 +19850212,3.6,-1.0,11.7,-1.7,8.8 +19850213,1.1,-9.4,7.8,-4.4,6.1 +19850214,1.7,-10.9,10.0,-6.1,4.1 +19850215,2.3,-12.7,10.6,-6.1,3.8 +19850216,0.1,-12.3,8.3,-7.8,2.5 +19850217,6.2,-10.3,15.0,1.1,2.9 +19850218,5.4,-5.7,15.6,-2.2,3.0 +19850219,7.6,0.6,13.9,-2.2,2.0 +19850220,9.3,4.7,15.6,3.9,2.1 +19850221,7.5,-0.7,15.6,0.0,2.3 +19850222,11.6,2.8,18.9,0.0,2.3 +19850223,15.5,8.8,21.7,6.7,3.1 +19850224,15.9,11.8,21.7,11.1,3.9 +19850225,15.8,12.7,20.6,12.2,3.7 +19850226,15.8,12.9,20.0,13.3,2.5 +19850227,16.2,9.8,20.6,11.1,4.0 +19850228,9.6,-3.9,18.3,3.3,3.3 +19850301,8.1,0.5,16.1,3.3,1.7 +19850302,12.6,6.1,19.4,3.9,3.0 +19850303,11.8,1.7,19.4,6.1,3.5 +19850304,14.1,6.8,22.8,6.7,2.6 +19850305,18.2,6.8,23.9,8.3,4.1 +19850306,9.6,-4.5,23.9,3.3,4.6 +19850307,5.5,-4.3,14.4,-1.1,3.4 +19850308,13.4,3.4,23.3,-1.1,4.6 +19850309,17.8,11.8,23.9,16.7,2.5 +19850310,11.4,-3.6,18.3,1.7,2.2 +19850311,12.9,1.9,18.9,1.7,2.2 +19850312,17.6,6.7,22.8,10.0,5.5 +19850313,12.8,-4.1,22.8,1.7,3.4 +19850314,17.8,7.2,25.0,12.2,4.5 +19850315,12.6,-0.4,25.6,5.6,4.6 +19850316,8.3,-4.7,16.1,3.3,3.2 +19850317,12.5,-1.4,17.2,3.3,3.7 +19850318,6.3,-10.1,17.8,-1.1,7.1 +19850319,5.9,-12.2,15.6,-3.9,3.1 +19850320,10.2,-6.2,19.4,-3.9,4.6 +19850321,10.4,2.1,20.0,2.2,2.7 +19850322,4.6,2.8,12.2,2.2,7.3 +19850323,7.9,4.7,18.9,3.3,3.3 +19850324,12.7,5.7,19.4,3.9,4.0 +19850325,8.6,-0.1,17.8,1.1,3.1 +19850326,9.3,-0.2,18.3,1.1,2.6 +19850327,12.3,2.8,21.7,1.1,4.8 +19850328,17.8,10.8,21.7,14.4,6.0 +19850329,19.3,14.2,25.6,14.4,5.7 +19850330,21.3,13.5,27.8,15.6,5.5 +19850331,19.8,12.7,27.8,15.0,5.6 +19850401,13.1,2.7,25.0,5.6,4.9 +19850402,10.3,-4.8,19.4,0.6,2.9 +19850403,10.1,-2.2,23.3,0.6,4.8 +19850404,18.2,5.4,26.7,10.0,5.2 +19850405,19.7,8.3,26.7,10.0,7.5 +19850406,15.2,5.9,22.2,8.9,7.4 +19850407,15.1,1.4,23.3,5.6,4.8 +19850408,9.4,-3.8,23.3,2.2,4.3 +19850409,7.8,-7.3,15.6,2.2,3.7 +19850410,6.0,-6.8,13.9,-0.6,3.0 +19850411,11.3,0.0,21.7,-0.6,2.9 +19850412,15.1,4.4,23.9,3.9,1.7 +19850413,16.8,11.2,23.9,6.7,2.2 +19850414,15.2,12.7,21.1,13.3,3.3 +19850415,15.9,14.6,17.8,13.9,3.5 +19850416,15.6,14.1,17.8,15.0,1.8 +19850417,17.9,10.8,25.6,11.1,2.7 +19850418,18.4,10.6,26.7,11.1,2.7 +19850419,19.9,10.7,27.8,11.1,3.2 +19850420,20.8,10.9,29.4,11.1,1.6 +19850421,20.8,10.4,30.0,11.1,1.9 +19850422,21.3,8.2,29.4,11.7,2.9 +19850423,20.8,10.3,28.9,12.2,2.8 +19850424,19.5,14.7,27.8,14.4,3.9 +19850425,20.4,9.3,28.3,12.2,3.2 +19850426,19.6,6.1,29.4,10.6,2.5 +19850427,21.3,10.2,30.0,10.6,3.1 +19850428,23.2,15.7,28.9,15.6,3.1 +19850429,21.4,13.0,28.3,16.7,3.9 +19850430,16.8,7.9,25.6,9.4,2.6 +19850501,17.6,9.6,25.6,9.4,2.6 +19850502,17.9,13.9,25.6,10.0,2.9 +19850503,19.2,13.9,23.9,15.6,3.5 +19850504,15.6,6.8,23.9,7.2,2.5 +19850505,15.6,7.8,23.3,7.2,3.0 +19850506,19.3,9.6,27.8,7.8,3.6 +19850507,21.6,13.1,28.9,11.7,2.5 +19850508,17.9,11.9,27.8,13.9,3.8 +19850509,13.0,11.4,21.1,12.8,3.9 +19850510,16.3,15.1,22.8,12.8,3.5 +19850511,20.7,17.5,25.6,14.4,2.0 +19850512,21.8,18.2,27.2,18.3,1.7 +19850513,21.2,16.4,27.8,16.1,1.9 +19850514,23.4,17.4,29.4,16.1,1.2 +19850515,24.3,18.6,30.0,17.2,2.5 +19850516,23.0,15.6,30.6,19.4,4.1 +19850517,18.9,12.1,27.2,12.8,3.5 +19850518,16.9,7.1,23.3,12.8,4.9 +19850519,17.7,7.6,25.6,8.9,2.5 +19850520,19.6,11.3,27.8,8.9,2.1 +19850521,22.4,15.9,29.4,12.2,1.9 +19850522,23.3,17.1,29.4,15.6,2.9 +19850523,22.5,17.1,29.4,18.3,6.1 +19850524,16.8,13.1,27.8,13.3,2.9 +19850525,19.3,11.9,25.6,13.3,2.7 +19850526,20.2,10.4,27.2,12.2,1.7 +19850527,22.0,11.8,28.9,12.2,2.7 +19850528,21.9,14.1,28.9,13.9,3.6 +19850529,21.7,15.9,28.3,16.1,1.4 +19850530,21.3,17.0,28.3,16.1,3.3 +19850531,22.2,17.8,28.9,18.9,3.8 +19850601,27.4,18.3,33.9,18.9,2.8 +19850602,24.7,15.3,34.4,17.8,2.2 +19850603,27.2,18.3,36.1,17.8,2.0 +19850604,29.7,19.6,36.7,20.0,2.7 +19850605,29.8,19.1,37.2,23.3,3.5 +19850606,29.3,18.8,37.8,23.3,3.2 +19850607,26.3,19.4,37.2,21.1,2.8 +19850608,23.0,18.1,32.2,18.3,3.2 +19850609,27.3,18.2,33.3,18.3,2.3 +19850610,28.1,19.7,33.3,19.4,2.3 +19850611,26.6,19.9,33.3,21.7,4.3 +19850612,25.7,18.4,32.2,22.8,6.5 +19850613,20.4,7.5,28.9,13.9,3.1 +19850614,20.1,8.6,26.7,12.8,3.7 +19850615,21.8,13.5,27.8,12.8,2.4 +19850616,24.4,19.6,31.1,15.0,4.6 +19850617,26.1,18.4,32.2,18.9,4.1 +19850618,25.9,19.1,32.8,18.9,5.7 +19850619,22.6,15.1,29.4,17.8,4.2 +19850620,20.6,11.7,27.2,12.2,2.5 +19850621,21.4,11.8,28.9,12.2,2.5 +19850622,21.8,13.6,30.0,13.9,1.9 +19850623,25.1,16.2,31.1,13.9,2.6 +19850624,24.7,19.2,32.8,18.3,2.6 +19850625,23.7,18.0,32.8,17.2,2.2 +19850626,26.3,18.5,33.9,17.2,2.1 +19850627,24.1,14.2,33.9,18.3,4.1 +19850628,22.9,15.1,28.3,17.2,2.7 +19850629,21.8,19.4,28.3,17.2,1.7 +19850630,21.6,18.7,28.3,18.3,3.2 +19850701,20.3,17.2,27.8,17.2,3.7 +19850702,21.2,17.0,27.8,16.7,3.4 +19850703,22.7,15.3,30.0,13.9,2.4 +19850704,23.7,17.6,30.0,13.9,3.0 +19850705,22.1,18.6,30.0,17.2,4.0 +19850706,20.6,19.1,28.3,18.3,3.8 +19850707,23.3,19.0,30.0,19.4,2.5 +19850708,24.2,17.2,31.1,16.1,2.8 +19850709,25.7,18.7,32.8,16.1,2.4 +19850710,26.1,19.0,33.9,17.8,2.5 +19850711,26.4,18.2,33.9,19.4,3.6 +19850712,26.1,19.3,33.9,19.4,2.6 +19850713,24.3,20.3,34.4,18.9,2.6 +19850714,24.5,20.8,32.2,18.9,1.3 +19850715,25.3,20.7,33.3,19.4,2.5 +19850716,24.3,20.6,33.3,20.0,2.5 +19850717,24.2,19.9,31.7,20.0,3.4 +19850718,24.5,19.2,30.6,19.4,2.3 +19850719,25.3,19.5,31.7,19.4,1.6 +19850720,26.7,20.2,33.3,19.4,1.6 +19850721,27.3,20.9,33.9,21.1,2.6 +19850722,26.2,20.8,33.3,20.6,2.7 +19850723,22.4,20.2,33.3,20.0,2.4 +19850724,20.6,19.9,27.8,18.9,4.6 +19850725,22.7,20.4,28.3,18.9,5.2 +19850726,23.7,21.9,28.3,20.0,4.1 +19850727,24.1,21.7,28.3,21.7,3.9 +19850728,22.1,20.9,27.2,19.4,3.3 +19850729,22.4,21.0,26.7,19.4,2.6 +19850730,23.9,21.8,28.3,20.6,1.6 +19850731,25.1,22.4,31.1,20.6,1.9 +19850801,24.9,22.2,31.7,20.6,2.0 +19850802,22.8,17.9,28.9,18.9,4.7 +19850803,21.2,14.9,26.7,16.1,3.8 +19850804,19.7,13.4,26.7,13.9,2.8 +19850805,19.7,14.5,27.8,13.3,2.4 +19850806,21.8,19.3,27.8,13.3,2.0 +19850807,23.4,20.4,27.8,18.9,1.9 +19850808,22.7,20.9,28.9,20.6,1.8 +19850809,24.6,21.3,30.0,20.6,2.6 +19850810,25.4,20.6,31.1,21.1,2.6 +19850811,25.1,20.9,31.7,19.4,1.5 +19850812,25.3,20.9,31.7,19.4,2.0 +19850813,25.6,20.6,32.2,19.4,1.7 +19850814,25.1,19.4,32.2,18.9,1.7 +19850815,25.1,19.6,31.1,18.9,3.1 +19850816,25.2,20.6,31.7,19.4,2.5 +19850817,22.9,21.6,32.2,20.0,3.5 +19850818,24.6,20.3,30.0,20.6,3.0 +19850819,24.8,19.4,31.7,17.8,1.6 +19850820,25.1,21.0,31.7,17.8,1.8 +19850821,24.3,20.9,30.6,19.4,1.3 +19850822,22.4,17.6,30.6,17.2,3.1 +19850823,20.2,16.8,27.8,17.2,2.9 +19850824,19.9,18.9,22.8,17.8,1.7 +19850825,22.1,20.4,25.0,17.8,3.8 +19850826,22.5,21.0,26.1,20.6,3.9 +19850827,22.9,20.8,26.7,20.6,2.9 +19850828,23.4,20.4,28.9,19.4,1.9 +19850829,23.9,19.4,30.0,18.3,2.0 +19850830,23.5,20.4,30.0,18.3,4.2 +19850831,23.0,19.7,30.0,19.4,2.5 +19850901,22.7,18.8,28.9,17.8,3.4 +19850902,23.4,19.4,29.4,17.8,2.4 +19850903,24.1,20.2,30.6,17.8,1.9 +19850904,24.7,19.9,31.1,18.3,2.3 +19850905,25.6,20.5,31.1,18.9,3.4 +19850906,24.7,20.2,31.7,19.4,2.7 +19850907,25.1,20.1,32.2,19.4,1.8 +19850908,25.6,21.1,32.2,20.0,1.0 +19850909,25.1,20.1,32.8,18.9,1.6 +19850910,25.8,20.6,32.8,18.9,1.6 +19850911,25.1,20.2,33.3,19.4,2.2 +19850912,21.6,18.3,32.2,18.9,4.1 +19850913,17.0,11.2,22.2,15.6,5.1 +19850914,13.1,5.2,20.6,5.6,4.0 +19850915,13.7,6.8,21.7,5.6,3.5 +19850916,16.2,8.8,24.4,7.2,3.2 +19850917,16.4,9.3,26.1,8.9,2.7 +19850918,17.1,10.1,26.1,8.9,2.7 +19850919,18.1,11.3,27.2,8.9,3.0 +19850920,18.7,12.1,27.8,11.1,2.5 +19850921,19.2,14.5,27.8,11.1,2.2 +19850922,21.3,16.1,28.3,14.4,1.4 +19850923,20.3,16.1,28.9,13.3,2.3 +19850924,22.8,19.3,29.4,13.3,1.8 +19850925,20.7,13.7,29.4,16.1,4.3 +19850926,19.3,14.6,26.7,16.1,3.8 +19850927,18.2,10.4,26.1,11.1,3.9 +19850928,14.6,6.2,23.3,6.7,3.1 +19850929,15.0,8.3,23.9,6.7,2.9 +19850930,17.6,11.7,26.1,7.2,2.2 +19851001,17.8,14.7,26.1,11.1,2.2 +19851002,19.0,18.2,25.0,12.8,3.2 +19851003,20.9,19.7,25.6,17.8,2.0 +19851004,22.2,18.2,27.8,17.8,3.4 +19851005,19.2,12.2,28.3,15.6,4.1 +19851006,12.4,2.3,23.3,3.9,3.0 +19851007,11.6,4.4,20.0,3.9,3.0 +19851008,11.8,7.1,20.0,4.4,4.1 +19851009,18.6,12.1,25.0,6.1,4.0 +19851010,17.8,12.4,27.8,10.0,2.6 +19851011,20.1,13.4,28.9,10.0,2.5 +19851012,19.9,15.3,29.4,12.8,2.4 +19851013,21.3,17.2,28.3,13.3,2.3 +19851014,22.4,17.4,29.4,16.7,1.5 +19851015,23.4,17.9,30.0,16.7,4.2 +19851016,20.9,17.5,30.0,18.3,2.0 +19851017,18.8,13.3,26.1,13.3,3.8 +19851018,18.9,13.6,25.0,13.3,4.2 +19851019,19.3,15.3,26.7,13.3,2.5 +19851020,19.7,14.9,28.3,12.2,2.2 +19851021,15.1,14.2,28.3,11.7,3.7 +19851022,13.1,11.9,18.9,11.1,3.4 +19851023,15.5,14.3,17.8,11.1,3.3 +19851024,18.1,16.1,22.8,14.4,2.5 +19851025,19.7,15.9,26.1,15.6,1.8 +19851026,17.0,8.6,26.1,15.0,4.8 +19851027,13.8,6.7,20.6,10.0,4.0 +19851028,17.4,10.1,22.2,10.0,4.5 +19851029,12.8,-0.8,22.8,10.0,7.6 +19851030,8.8,3.8,15.6,5.6,7.4 +19851031,12.2,11.6,15.0,5.6,6.7 +19851101,16.4,15.9,18.3,10.6,5.1 +19851102,15.7,15.3,18.3,13.9,3.1 +19851103,13.0,12.5,17.8,11.7,4.8 +19851104,12.9,11.8,14.4,8.3,4.2 +19851105,7.9,3.9,14.4,2.2,3.2 +19851106,11.6,5.6,21.1,2.2,3.4 +19851107,10.9,7.1,21.1,2.8,3.4 +19851108,9.9,1.1,20.0,1.1,3.4 +19851109,7.6,2.6,18.9,-1.7,1.2 +19851110,13.0,9.2,22.2,-1.7,2.4 +19851111,15.2,11.2,24.4,5.6,1.5 +19851112,15.6,13.2,25.0,8.9,2.8 +19851113,18.2,16.9,22.8,11.7,2.7 +19851114,17.3,14.9,24.4,11.1,2.3 +19851115,18.1,14.8,25.0,11.1,2.5 +19851116,14.1,13.3,25.0,11.7,3.5 +19851117,15.7,14.2,23.9,11.7,3.3 +19851118,16.9,15.8,24.4,12.2,2.2 +19851119,17.7,16.6,22.2,13.9,2.4 +19851120,18.2,17.4,23.3,15.0,1.3 +19851121,17.9,17.8,21.7,13.3,3.2 +19851122,10.7,9.0,18.9,6.1,7.6 +19851123,12.7,7.4,18.9,6.1,2.6 +19851124,10.1,7.0,18.9,5.0,1.7 +19851125,14.6,13.3,17.8,5.0,2.0 +19851126,15.0,14.1,18.3,12.2,3.0 +19851127,19.1,17.3,22.2,12.8,5.2 +19851128,19.2,16.5,22.8,16.7,5.0 +19851129,17.8,17.2,21.7,16.7,2.2 +19851130,12.2,11.6,19.4,8.9,4.9 +19851201,10.3,9.7,13.3,8.9,3.0 +19851202,9.3,2.6,12.2,2.8,4.7 +19851203,1.1,-9.9,12.2,-3.3,4.7 +19851204,1.2,-7.6,8.3,-3.9,2.6 +19851205,3.5,-3.7,10.0,-3.9,2.5 +19851206,3.1,-2.6,10.0,-1.7,4.1 +19851207,0.6,-4.6,8.3,-9.4,2.0 +19851208,5.2,-1.4,15.0,-6.1,3.8 +19851209,10.3,3.3,18.9,-0.6,3.1 +19851210,10.4,6.7,19.4,2.8,2.0 +19851211,10.6,8.6,18.9,3.3,2.5 +19851212,15.1,14.2,17.8,5.0,2.7 +19851213,15.9,15.3,18.7,12.2,3.3 +19851214,4.2,-4.0,18.3,-0.6,6.5 +19851215,-1.8,-10.2,7.2,-8.9,3.2 +19851216,0.9,-7.2,10.0,-8.9,2.5 +19851217,4.7,-5.7,12.8,-6.1,4.2 +19851218,4.8,-4.4,13.3,-3.9,3.5 +19851219,0.3,-13.6,10.6,-3.9,4.0 +19851220,-1.0,-10.7,5.0,-5.0,2.6 +19851221,-1.2,-10.9,5.0,-6.7,3.1 +19851222,-2.3,-10.2,6.7,-10.0,2.8 +19851223,5.7,-1.8,14.4,-0.6,6.1 +19851224,7.9,1.6,15.0,-0.6,6.4 +19851225,0.3,-9.4,15.0,-5.6,5.0 +19851226,-8.7,-18.1,5.6,-15.0,4.2 +19851227,0.4,-12.1,10.6,-5.6,6.3 +19851228,4.4,-5.4,10.6,-5.6,3.8 +19851229,2.7,-7.2,12.2,-5.6,3.1 +19851230,1.8,-12.6,12.8,-6.1,2.6 +19851231,0.9,-7.3,8.9,-6.1,2.8 +19860101,4.4,-0.5,12.2,-3.9,2.8 +19860102,3.1,-2.2,13.3,-5.0,2.3 +19860103,9.7,-0.9,17.2,3.9,3.8 +19860104,5.5,-1.3,17.2,1.1,1.9 +19860105,4.7,-4.1,9.4,1.1,4.2 +19860106,0.8,-12.2,11.7,-6.7,3.9 +19860107,4.7,-9.7,12.2,-6.7,3.5 +19860108,-1.0,-14.6,11.7,-6.7,4.8 +19860109,-2.6,-15.7,9.4,-11.1,2.1 +19860110,7.3,-7.4,13.9,2.8,2.6 +19860111,5.9,-10.0,14.4,-3.9,2.9 +19860112,5.6,-7.6,17.8,-3.9,3.7 +19860113,6.2,-8.6,17.8,-3.3,5.2 +19860114,0.6,-10.4,11.7,-7.8,4.3 +19860115,4.1,-7.2,12.2,-7.8,3.5 +19860116,4.3,-4.1,15.6,-3.3,3.4 +19860117,9.8,3.1,16.1,5.6,2.8 +19860118,11.6,8.9,18.9,3.9,1.5 +19860119,12.2,9.2,19.4,5.6,5.0 +19860120,5.9,-2.8,14.4,0.6,4.2 +19860121,6.0,-4.5,16.7,-3.3,2.0 +19860122,9.7,3.5,20.6,-3.3,3.8 +19860123,8.3,-1.6,21.1,1.7,5.1 +19860124,2.1,-8.2,11.1,-2.8,4.1 +19860125,2.2,-4.9,8.3,-2.8,3.7 +19860126,4.1,0.9,7.8,-1.1,2.2 +19860127,-4.8,-16.3,7.8,-10.0,6.3 +19860128,-10.2,-21.6,-0.6,-15.0,4.4 +19860129,-0.4,-9.4,7.2,-4.4,5.5 +19860130,4.3,-5.2,10.0,-5.0,3.8 +19860131,3.8,-5.8,13.9,-2.8,2.7 +19860201,5.3,-4.1,15.0,-2.8,2.2 +19860202,10.6,2.1,22.2,-2.8,4.3 +19860203,15.3,7.8,22.8,1.1,3.8 +19860204,14.7,8.4,23.3,7.8,4.2 +19860205,15.5,13.3,22.2,8.3,4.4 +19860206,13.2,13.1,16.7,11.7,2.3 +19860207,13.2,6.9,17.8,7.2,6.0 +19860208,8.3,2.7,17.8,1.7,2.8 +19860209,5.4,3.7,15.0,0.0,2.4 +19860210,7.2,6.4,12.8,0.0,3.3 +19860211,6.6,5.7,8.3,4.4,3.0 +19860212,0.7,-8.6,7.8,-5.6,3.9 +19860213,-2.2,-14.2,6.7,-6.7,4.3 +19860214,-1.3,-11.8,2.8,-6.7,3.2 +19860215,2.5,-2.7,9.4,-6.1,2.9 +19860216,4.5,-4.4,16.7,-3.9,2.6 +19860217,10.9,-1.1,16.7,6.7,3.4 +19860218,12.2,9.2,20.6,6.7,2.5 +19860219,14.1,11.4,20.6,8.9,3.5 +19860220,15.3,10.7,23.3,8.9,2.6 +19860221,14.8,11.4,23.9,6.7,4.2 +19860222,11.8,8.9,23.3,6.7,2.8 +19860223,8.9,0.4,16.7,1.1,2.9 +19860224,6.4,0.4,17.2,1.1,3.1 +19860225,5.6,-4.1,11.1,-0.6,4.7 +19860226,4.2,-4.0,14.4,-2.8,3.7 +19860227,11.1,3.3,17.2,-2.8,3.8 +19860228,4.5,-0.9,9.4,2.2,2.7 +19860301,2.2,-9.2,7.2,-1.1,3.8 +19860302,3.3,-10.6,10.6,-1.7,4.2 +19860303,9.2,-1.9,18.9,-1.7,4.5 +19860304,6.7,-0.8,18.9,-2.2,2.8 +19860305,5.4,-2.8,14.4,-2.2,3.9 +19860306,8.3,-3.1,16.1,-0.6,4.3 +19860307,8.3,-3.3,18.3,0.0,4.7 +19860308,2.6,-11.4,8.9,-3.9,4.1 +19860309,5.6,-4.9,17.2,-3.9,2.7 +19860310,12.8,9.4,20.6,8.3,2.6 +19860311,20.2,14.4,26.7,16.7,4.9 +19860312,15.6,8.3,27.2,13.3,4.5 +19860313,10.7,9.4,17.2,8.3,4.0 +19860314,13.7,13.4,16.1,8.3,3.1 +19860315,12.9,10.4,20.0,8.3,3.3 +19860316,12.2,8.1,20.6,6.7,2.1 +19860317,12.5,5.7,20.6,6.7,3.0 +19860318,13.8,7.6,22.8,6.7,3.1 +19860319,17.8,14.9,23.3,7.2,6.5 +19860320,10.8,9.1,19.4,7.8,2.9 +19860321,3.9,-4.9,13.3,-1.1,3.2 +19860322,2.7,-11.1,10.6,-4.4,3.2 +19860323,5.8,-6.6,19.4,-4.4,2.4 +19860324,14.9,-1.2,22.8,5.0,3.8 +19860325,13.5,1.7,22.8,4.4,3.2 +19860326,15.2,9.6,22.8,4.4,2.5 +19860327,16.1,7.3,22.8,7.8,3.1 +19860328,14.1,-0.9,22.8,5.6,2.7 +19860329,14.1,0.9,25.0,2.8,2.3 +19860330,16.9,3.2,27.2,2.8,2.6 +19860331,18.8,4.6,29.4,6.1,2.5 +19860401,19.6,5.9,30.0,8.3,2.0 +19860402,20.2,6.2,29.4,8.9,2.4 +19860403,19.4,9.3,28.9,11.1,3.8 +19860404,19.9,9.8,28.3,12.2,3.0 +19860405,20.7,10.2,28.3,12.2,4.1 +19860406,21.1,9.9,28.9,13.3,4.3 +19860407,22.1,11.2,29.4,13.3,3.5 +19860408,18.9,14.1,30.0,13.3,3.5 +19860409,13.7,2.4,20.0,8.3,5.7 +19860410,10.1,-4.4,19.4,0.0,4.4 +19860411,13.3,-3.7,23.9,0.0,4.8 +19860412,16.1,1.1,23.9,1.1,3.2 +19860413,15.7,4.3,26.1,4.4,2.7 +19860414,16.7,7.2,26.7,5.0,3.1 +19860415,19.1,9.8,26.1,8.9,5.6 +19860416,12.9,0.3,23.9,7.8,5.0 +19860417,8.0,-0.1,15.6,1.1,4.3 +19860418,12.4,3.6,23.9,1.1,3.0 +19860419,15.7,6.9,24.4,2.2,3.1 +19860420,15.4,9.3,24.4,6.1,4.1 +19860421,16.7,11.1,21.1,8.9,4.5 +19860422,10.9,1.9,22.8,3.3,4.0 +19860423,8.7,-8.3,17.2,1.1,5.4 +19860424,12.7,-5.6,23.9,-0.6,2.9 +19860425,19.1,0.1,30.6,6.7,3.0 +19860426,21.4,8.4,31.1,15.0,3.0 +19860427,23.4,10.7,33.9,12.2,2.8 +19860428,23.7,11.6,33.9,12.2,3.8 +19860429,19.7,8.8,31.1,11.7,3.7 +19860430,20.9,4.7,29.4,10.6,2.9 +19860501,22.8,9.0,31.7,10.6,3.7 +19860502,21.6,5.3,31.7,13.9,4.0 +19860503,16.5,-0.3,26.7,7.8,3.8 +19860504,13.8,-2.6,23.3,3.9,3.2 +19860505,17.1,3.4,26.7,3.9,4.0 +19860506,22.1,14.1,30.0,7.8,4.3 +19860507,22.7,15.4,31.1,14.4,3.2 +19860508,22.2,15.8,32.2,14.4,3.1 +19860509,20.4,12.0,29.4,12.8,2.7 +19860510,17.6,9.8,27.8,12.8,3.0 +19860511,18.9,11.6,28.9,10.6,3.0 +19860512,21.8,15.6,28.9,10.6,2.7 +19860513,19.5,15.4,27.2,14.4,2.4 +19860514,16.9,15.7,26.1,13.9,2.7 +19860515,18.8,16.2,25.0,13.9,1.9 +19860516,20.7,16.6,27.8,15.6,2.6 +19860517,20.9,17.7,28.3,15.6,2.6 +19860518,22.2,17.7,28.3,16.1,2.6 +19860519,20.2,17.8,29.4,17.2,2.3 +19860520,19.4,16.2,26.1,13.9,2.8 +19860521,17.1,11.4,26.7,9.4,2.4 +19860522,17.1,7.7,25.0,7.8,2.4 +19860523,16.8,11.5,23.9,7.8,2.3 +19860524,20.8,15.8,29.4,11.7,2.3 +19860525,23.4,18.1,30.0,12.8,2.2 +19860526,20.2,18.6,28.9,17.2,2.2 +19860527,20.5,19.3,24.4,18.3,2.2 +19860528,22.0,19.5,27.8,17.8,2.7 +19860529,23.7,20.3,28.3,17.8,2.8 +19860530,24.8,19.2,31.1,17.8,1.8 +19860531,24.7,18.3,31.7,17.2,1.6 +19860601,23.8,18.4,31.1,17.2,2.0 +19860602,23.6,19.5,31.7,17.8,1.7 +19860603,20.3,14.8,31.1,17.2,3.2 +19860604,20.2,15.9,26.1,17.2,2.7 +19860605,23.4,19.2,29.4,17.8,2.3 +19860606,24.6,18.9,31.7,17.8,2.1 +19860607,26.2,20.9,32.8,17.8,2.3 +19860608,26.5,21.5,33.3,20.6,4.2 +19860609,25.5,21.7,32.8,21.1,2.9 +19860610,24.3,21.8,32.8,20.6,1.9 +19860611,26.2,22.4,32.2,21.7,3.3 +19860612,26.8,21.2,32.2,21.1,5.0 +19860613,25.5,16.6,31.7,17.2,3.1 +19860614,24.7,17.2,31.1,17.2,3.3 +19860615,24.4,19.1,31.7,17.8,2.2 +19860616,24.9,19.6,32.8,17.8,2.2 +19860617,26.2,19.4,33.3,17.8,3.1 +19860618,24.7,16.4,33.3,17.8,4.4 +19860619,24.2,15.9,31.7,16.1,2.0 +19860620,26.7,18.8,35.0,16.1,3.0 +19860621,26.7,16.1,35.0,20.0,4.0 +19860622,25.7,16.4,32.8,18.9,3.5 +19860623,27.6,17.5,35.6,18.9,3.8 +19860624,27.8,19.0,36.1,19.4,3.6 +19860625,26.2,16.4,34.4,18.3,2.6 +19860626,26.3,16.4,34.4,18.3,2.5 +19860627,28.3,20.7,35.6,20.6,3.1 +19860628,27.9,20.3,36.1,21.1,4.2 +19860629,26.3,20.9,35.6,21.1,5.0 +19860630,26.6,20.8,33.9,21.1,3.5 +19860701,27.8,21.0,34.4,21.7,3.7 +19860702,26.5,21.6,34.4,22.2,5.5 +19860703,24.8,16.9,33.9,19.4,4.0 +19860704,24.3,15.1,31.1,17.8,3.4 +19860705,25.6,16.7,32.2,17.8,2.3 +19860706,26.3,16.4,33.9,17.8,1.8 +19860707,28.9,18.9,36.7,18.3,1.7 +19860708,30.2,19.6,37.8,20.6,2.2 +19860709,30.0,19.8,38.3,21.7,2.6 +19860710,29.1,19.7,37.8,21.7,2.7 +19860711,27.9,19.6,35.6,20.6,2.3 +19860712,28.4,20.8,36.7,20.6,4.0 +19860713,29.4,19.1,36.1,22.2,4.3 +19860714,29.0,19.0,36.1,22.2,2.3 +19860715,25.3,21.0,36.7,20.6,2.8 +19860716,27.1,21.3,35.0,20.6,2.3 +19860717,28.7,21.7,36.1,21.1,2.2 +19860718,30.9,21.0,37.8,21.7,2.2 +19860719,31.8,19.4,38.9,22.8,2.9 +19860720,30.7,18.4,39.4,23.3,3.1 +19860721,31.3,18.9,38.3,23.3,2.9 +19860722,28.3,21.4,38.9,21.7,2.8 +19860723,27.3,21.8,35.0,21.7,2.7 +19860724,26.5,22.8,35.0,22.2,3.5 +19860725,26.6,22.3,34.4,21.7,2.5 +19860726,26.2,21.5,35.0,21.1,3.4 +19860727,25.5,22.4,35.0,21.1,2.9 +19860728,26.5,21.7,35.0,20.6,2.4 +19860729,28.4,21.7,36.1,20.6,2.7 +19860730,27.7,16.9,36.1,19.4,3.1 +19860731,26.3,13.8,35.0,18.9,3.2 +19860801,25.9,17.1,33.9,18.9,2.7 +19860802,27.6,20.6,34.4,20.0,2.1 +19860803,26.4,20.3,35.6,20.0,2.8 +19860804,24.2,20.7,32.8,20.0,3.0 +19860805,24.3,20.4,31.7,19.4,2.9 +19860806,24.4,21.9,31.1,19.4,2.1 +19860807,24.8,20.6,32.8,19.4,3.3 +19860808,25.1,20.5,33.3,19.4,4.0 +19860809,26.1,19.4,33.3,20.0,4.4 +19860810,25.3,20.6,32.8,20.6,3.8 +19860811,24.8,21.3,32.2,20.6,3.8 +19860812,22.0,21.4,31.7,20.6,2.4 +19860813,21.4,20.7,24.4,20.0,4.2 +19860814,22.7,21.1,27.8,20.0,4.4 +19860815,25.2,21.3,31.7,20.6,3.3 +19860816,25.8,21.8,32.2,20.6,1.8 +19860817,24.9,22.3,32.2,20.6,3.1 +19860818,23.2,21.9,27.2,21.1,4.2 +19860819,22.2,21.1,27.8,21.1,4.3 +19860820,22.8,21.2,26.7,20.6,4.5 +19860821,24.1,20.9,29.4,20.6,3.4 +19860822,25.3,21.9,30.7,20.6,2.6 +19860823,24.8,22.6,31.7,20.6,2.5 +19860824,25.7,20.9,31.7,20.0,2.8 +19860825,22.8,17.6,31.7,17.8,3.3 +19860826,24.1,20.5,30.6,17.8,2.7 +19860827,25.8,21.6,30.6,19.4,4.3 +19860828,22.1,19.4,30.6,18.3,4.8 +19860829,17.3,10.2,23.9,12.8,4.7 +19860830,15.7,9.4,22.8,12.2,4.3 +19860831,16.9,14.7,20.6,12.2,5.4 +19860901,17.1,16.7,20.6,15.0,4.7 +19860902,18.2,18.0,20.0,16.1,4.1 +19860903,20.1,19.6,23.3,17.2,3.1 +19860904,21.1,20.9,25.0,18.3,2.4 +19860905,22.8,21.2,27.8,20.0,1.8 +19860906,23.9,20.2,28.9,20.0,2.7 +19860907,22.0,14.8,29.4,15.0,2.4 +19860908,21.2,17.2,29.4,15.0,2.8 +19860909,17.9,15.7,27.2,16.1,4.1 +19860910,20.3,18.1,26.7,16.1,2.6 +19860911,22.1,20.3,27.2,17.2,3.0 +19860912,24.6,21.1,30.6,20.0,4.6 +19860913,21.9,15.4,30.6,16.1,3.6 +19860914,20.1,15.1,27.8,13.9,3.2 +19860915,19.6,14.0,28.3,10.6,2.4 +19860916,21.3,16.4,27.8,10.6,2.4 +19860917,19.5,13.4,28.3,16.1,4.1 +19860918,17.4,14.1,22.8,14.4,2.2 +19860919,21.3,18.7,27.8,15.6,3.5 +19860920,23.3,19.6,30.6,16.1,2.5 +19860921,24.9,19.4,31.7,16.1,2.2 +19860922,22.9,19.1,32.2,17.2,2.3 +19860923,23.2,18.8,30.6,16.7,2.8 +19860924,25.1,20.3,31.7,16.7,3.6 +19860925,25.4,20.3,31.7,19.4,3.0 +19860926,25.9,20.4,32.8,19.4,1.7 +19860927,25.6,19.6,32.8,18.9,1.9 +19860928,24.9,19.2,33.9,18.3,2.2 +19860929,23.6,21.1,32.8,18.3,2.5 +19860930,23.4,20.9,28.9,18.9,2.7 +19861001,24.4,19.6,31.7,18.9,3.8 +19861002,25.6,18.8,32.8,18.9,2.7 +19861003,25.4,19.3,33.3,19.4,3.2 +19861004,25.5,19.1,32.2,18.9,4.5 +19861005,26.6,18.2,32.8,18.9,5.4 +19861006,20.7,10.7,32.8,12.8,3.9 +19861007,17.4,8.5,26.1,12.8,4.2 +19861008,18.1,11.8,23.9,12.8,3.2 +19861009,18.3,17.1,25.0,12.8,2.6 +19861010,16.9,15.7,19.4,13.3,4.2 +19861011,11.6,10.7,17.8,10.6,6.2 +19861012,13.1,12.3,15.6,10.6,4.8 +19861013,16.1,15.7,18.3,11.7,2.6 +19861014,19.6,15.5,24.4,15.0,3.8 +19861015,12.7,6.8,25.0,6.1,2.2 +19861016,13.0,5.8,19.4,6.1,3.1 +19861017,11.9,4.6,20.0,3.9,2.3 +19861018,12.1,6.1,20.0,3.9,3.1 +19861019,11.2,5.0,20.0,3.9,3.3 +19861020,10.9,4.9,21.1,2.2,1.6 +19861021,12.8,5.4,22.2,2.2,1.5 +19861022,13.1,6.6,23.9,5.0,1.2 +19861023,14.3,8.1,24.4,5.0,1.9 +19861024,16.4,9.3,23.9,6.7,1.9 +19861025,14.6,12.1,23.9,10.6,4.0 +19861026,15.0,13.5,20.6,12.8,4.3 +19861027,15.0,9.5,20.6,8.3,4.0 +19861028,14.2,6.9,21.1,8.3,2.8 +19861029,11.0,7.9,20.6,6.1,1.6 +19861030,13.9,8.8,23.3,5.6,2.4 +19861031,13.7,9.1,23.9,5.6,4.8 +19861101,12.4,11.3,20.0,9.4,6.4 +19861102,17.2,14.5,22.8,11.1,3.7 +19861103,16.1,11.2,23.3,12.2,2.7 +19861104,15.3,12.9,21.1,11.7,2.7 +19861105,15.4,14.0,21.1,12.8,2.5 +19861106,18.4,15.1,23.9,13.9,3.1 +19861107,16.1,15.1,23.9,13.9,3.9 +19861108,14.9,14.7,18.9,13.3,2.6 +19861109,19.6,17.6,25.0,13.3,4.2 +19861110,14.4,6.5,16.7,12.8,4.6 +19861111,10.0,8.0,15.6,8.9,2.8 +19861112,11.1,10.2,11.7,8.9,3.7 +19861113,7.7,4.4,11.7,2.8,3.4 +19861114,-1.0,-9.7,9.4,-5.0,5.0 +19861115,1.4,-1.2,4.4,-5.0,2.7 +19861116,8.3,7.2,15.6,-0.6,2.9 +19861117,10.9,10.3,16.1,5.6,2.5 +19861118,12.8,12.6,14.4,9.4,2.4 +19861119,11.5,4.4,16.1,4.4,5.4 +19861120,6.0,3.5,14.4,4.4,4.3 +19861121,7.7,1.9,14.4,3.9,3.5 +19861122,4.7,0.7,15.6,-1.7,2.5 +19861123,7.3,4.3,12.8,-1.7,2.7 +19861124,12.1,10.4,17.8,5.6,2.8 +19861125,13.9,13.1,17.8,8.9,4.0 +19861126,12.1,10.5,22.2,8.3,5.4 +19861127,12.1,7.9,22.2,5.6,3.2 +19861128,11.1,7.7,16.1,5.6,3.8 +19861129,11.6,7.3,20.6,4.4,1.7 +19861130,10.4,6.4,12.2,4.4,5.4 +19861201,4.4,3.6,12.2,2.8,9.7 +19861202,4.9,4.3,7.8,2.8,6.5 +19861203,8.1,3.8,13.9,2.2,4.1 +19861204,5.7,-3.7,13.9,0.6,3.7 +19861205,5.3,-7.1,11.7,-3.3,3.3 +19861206,2.4,-5.4,11.7,-3.3,3.0 +19861207,1.8,-4.8,11.7,-6.7,1.9 +19861208,8.5,3.3,12.2,5.0,3.1 +19861209,9.8,9.4,12.2,6.7,2.0 +19861210,14.1,13.3,17.8,8.9,2.8 +19861211,9.3,8.4,17.8,6.7,4.8 +19861212,7.8,7.1,10.6,6.7,1.9 +19861213,3.6,-5.8,10.6,0.6,5.6 +19861214,-1.2,-8.3,7.2,-6.1,2.9 +19861215,4.8,-2.7,12.8,-6.1,2.1 +19861216,7.7,1.2,17.2,0.0,1.8 +19861217,8.1,4.1,17.2,0.0,2.2 +19861218,8.5,7.3,13.3,4.4,2.5 +19861219,4.8,-3.4,13.9,-3.9,3.8 +19861220,5.9,-1.2,14.4,-3.9,2.5 +19861221,3.9,-1.9,15.6,-1.1,2.9 +19861222,0.7,-4.8,10.0,-3.3,3.2 +19861223,0.6,-3.1,5.6,-3.3,3.8 +19861224,7.1,5.4,11.1,-1.1,5.6 +19861225,9.9,7.2,13.9,5.0,4.2 +19861226,8.3,3.7,13.9,2.8,1.1 +19861227,5.5,2.3,14.4,2.2,3.4 +19861228,3.4,0.8,10.6,-1.1,2.0 +19861229,2.8,-0.2,10.0,-1.1,1.6 +19861230,3.3,-1.6,11.7,-2.8,2.8 +19861231,1.3,-4.3,11.7,-5.0,2.9 +19870101,3.4,-0.3,11.7,-5.0,6.4 +19870102,3.4,-1.4,8.3,-3.3,3.3 +19870103,1.0,-4.9,9.8,-5.0,1.6 +19870104,0.5,-4.4,8.9,-5.0,4.5 +19870105,5.0,-7.4,12.8,-3.3,6.4 +19870106,3.0,-8.4,12.8,-2.8,3.2 +19870107,6.7,-2.8,14.4,-2.8,3.9 +19870108,6.9,1.4,14.4,-1.1,3.1 +19870109,4.6,0.3,12.8,-2.2,2.5 +19870110,7.7,5.1,13.3,-2.2,2.9 +19870111,4.1,-3.7,9.4,-0.6,5.1 +19870112,3.4,-5.9,15.6,-3.3,3.8 +19870113,10.8,-4.3,18.9,-3.3,4.3 +19870114,9.3,0.7,19.4,2.2,3.8 +19870115,11.4,7.9,17.8,2.2,4.4 +19870116,10.7,8.6,15.6,7.8,3.3 +19870117,6.4,5.9,12.2,4.4,5.5 +19870118,3.7,3.5,7.8,2.2,4.8 +19870119,6.2,3.4,11.7,2.2,4.6 +19870120,2.7,-2.3,12.2,-2.2,2.4 +19870121,3.9,-1.3,6.7,-2.2,2.3 +19870122,1.5,0.3,6.1,0.0,4.2 +19870123,-1.2,-8.6,2.8,-4.4,6.5 +19870124,-1.7,-6.3,6.1,-7.2,5.7 +19870125,2.6,0.3,6.7,-7.2,3.6 +19870126,-0.7,-3.6,3.9,-3.3,4.2 +19870127,-4.0,-9.9,2.2,-10.6,3.5 +19870128,0.1,-4.7,6.7,-10.6,2.8 +19870129,0.5,-3.5,7.2,-6.1,1.9 +19870130,8.1,1.9,16.7,-4.4,4.2 +19870131,6.9,-4.0,17.2,0.6,5.8 +19870201,5.7,-5.0,11.7,-0.6,3.9 +19870202,5.5,2.5,10.6,-0.6,2.0 +19870203,9.7,6.4,19.4,2.8,3.1 +19870204,8.2,2.3,19.4,2.8,3.3 +19870205,6.8,-1.8,11.7,2.2,4.2 +19870206,5.3,-2.3,11.7,2.2,3.8 +19870207,9.9,-0.7,17.8,2.2,3.4 +19870208,8.3,-3.0,20.0,-1.1,5.0 +19870209,1.4,-11.4,8.9,-2.8,8.1 +19870210,2.9,-14.7,14.4,-7.8,3.5 +19870211,6.9,-10.8,16.7,-7.8,2.9 +19870212,14.1,-1.6,23.3,6.7,6.0 +19870213,12.6,-3.4,23.9,5.6,4.1 +19870214,7.0,-0.8,18.3,0.6,1.9 +19870215,7.2,0.4,13.9,0.6,5.5 +19870216,0.9,-0.7,11.1,-2.8,7.8 +19870217,0.4,-1.0,3.9,-2.8,5.0 +19870218,1.8,0.6,4.4,-1.1,1.0 +19870219,3.6,-0.2,6.7,0.6,3.3 +19870220,3.8,-3.2,10.0,-2.2,3.1 +19870221,5.6,-0.1,10.6,-2.2,3.1 +19870222,4.3,1.0,11.1,2.2,3.9 +19870223,6.1,-0.5,13.3,1.7,5.3 +19870224,4.6,-2.7,13.9,0.0,3.0 +19870225,7.2,0.7,12.2,0.0,2.7 +19870226,5.5,0.1,12.8,3.3,3.8 +19870227,1.9,0.9,7.8,1.1,7.0 +19870228,3.1,2.0,4.4,1.1,7.7 +19870301,8.8,6.2,14.4,2.2,7.2 +19870302,8.2,-0.5,17.8,-1.1,4.2 +19870303,9.7,-3.3,20.0,-1.7,3.1 +19870304,9.1,-7.6,20.6,-2.2,3.9 +19870305,5.0,-4.7,16.1,-2.2,2.8 +19870306,6.6,-2.1,16.7,-2.2,2.4 +19870307,10.1,-0.1,20.0,-1.7,3.5 +19870308,11.8,3.8,20.6,10.6,5.2 +19870309,11.8,10.6,14.4,10.0,3.6 +19870310,8.9,3.7,14.4,5.6,5.8 +19870311,2.4,-7.9,11.7,-0.6,5.2 +19870312,5.3,-3.2,12.2,-0.6,2.8 +19870313,7.4,-3.5,15.6,0.0,4.2 +19870314,7.3,-3.8,16.1,-1.1,3.1 +19870315,10.8,-0.2,20.6,-1.1,3.7 +19870316,12.4,2.0,21.1,1.7,4.7 +19870317,6.7,1.4,16.7,3.3,4.2 +19870318,7.3,2.1,12.8,3.3,2.5 +19870319,7.6,6.1,13.9,3.3,4.6 +19870320,9.5,5.7,18.9,1.1,2.6 +19870321,14.3,1.0,22.8,1.1,2.5 +19870322,12.5,-4.2,23.3,1.7,2.3 +19870323,12.7,0.4,23.3,1.7,3.3 +19870324,12.0,3.4,20.6,4.4,3.4 +19870325,10.9,10.5,18.9,5.6,4.0 +19870326,15.3,10.4,22.2,10.0,2.5 +19870327,12.9,10.2,22.2,8.9,2.8 +19870328,16.6,11.0,25.0,8.9,2.0 +19870329,16.4,10.2,25.6,8.9,3.4 +19870330,15.7,13.3,21.1,11.1,2.5 +19870331,9.1,3.8,20.6,3.9,6.2 +19870401,3.8,-6.0,15.0,-2.8,3.2 +19870402,10.1,-0.6,18.9,-2.8,6.0 +19870403,6.3,1.4,18.9,2.2,5.7 +19870404,3.3,-4.9,7.8,0.6,6.8 +19870405,5.5,-3.0,12.8,0.6,4.4 +19870406,8.4,-0.4,17.8,0.0,3.3 +19870407,9.5,1.4,18.3,1.1,3.4 +19870408,13.0,4.4,20.0,1.1,3.8 +19870409,14.6,1.6,23.9,4.4,2.5 +19870410,14.5,-0.4,23.9,4.4,3.4 +19870411,16.1,5.9,23.9,5.0,4.8 +19870412,17.7,9.2,26.1,8.3,6.3 +19870413,20.3,12.3,28.3,9.4,2.9 +19870414,16.7,11.7,28.3,12.2,4.9 +19870415,17.9,13.6,22.8,12.8,5.7 +19870416,13.6,9.3,23.3,8.9,3.9 +19870417,12.0,8.4,18.3,7.2,2.4 +19870418,14.5,9.2,21.1,6.2,4.4 +19870419,18.2,11.1,26.1,8.9,3.7 +19870420,19.7,12.7,28.3,11.1,2.2 +19870421,20.9,14.2,28.9,11.1,2.0 +19870422,21.9,14.2,30.6,12.8,2.5 +19870423,21.9,15.0,30.6,12.8,3.3 +19870424,17.6,13.4,26.7,13.3,5.0 +19870425,14.3,8.9,22.2,10.0,5.5 +19870426,14.4,8.3,22.8,6.1,3.8 +19870427,14.8,3.2,23.3,6.1,3.8 +19870428,17.4,4.3,22.8,6.7,4.4 +19870429,16.3,-1.2,25.0,5.6,5.1 +19870430,22.9,6.4,32.8,14.4,5.5 +19870501,21.3,11.7,32.8,13.3,3.5 +19870502,20.5,13.7,30.0,12.2,2.7 +19870503,21.3,14.4,30.6,12.2,3.8 +19870504,19.9,16.8,28.3,13.3,3.0 +19870505,13.1,9.8,17.8,10.0,4.8 +19870506,15.5,10.5,24.4,7.2,2.7 +19870507,19.8,12.7,27.2,7.2,2.5 +19870508,20.8,9.1,27.2,11.7,3.6 +19870509,17.5,7.1,27.2,9.4,3.2 +19870510,19.6,9.7,28.3,9.4,3.4 +19870511,19.1,11.8,28.3,10.6,3.5 +19870512,20.8,16.1,28.3,12.2,3.5 +19870513,19.8,17.0,28.3,13.9,2.4 +19870514,17.2,16.6,27.2,13.9,4.8 +19870515,20.6,17.9,27.8,14.4,2.4 +19870516,22.1,17.4,28.3,15.6,2.9 +19870517,23.1,18.4,28.9,15.6,3.0 +19870518,23.5,18.2,30.0,16.7,3.3 +19870519,23.6,19.6,30.6,17.8,3.5 +19870520,22.5,20.7,29.4,18.3,3.1 +19870521,21.4,18.4,25.6,18.3,4.1 +19870522,22.2,17.9,26.1,18.3,3.1 +19870523,23.8,18.1,30.6,16.7,1.6 +19870524,24.9,19.0,31.7,16.7,3.2 +19870525,24.3,17.5,31.1,17.2,2.9 +19870526,25.2,18.9,33.3,17.2,2.8 +19870527,23.4,20.3,33.3,17.2,3.2 +19870528,24.4,20.4,30.6,19.4,2.2 +19870529,23.3,19.1,31.1,17.2,2.4 +19870530,23.6,18.9,32.2,16.7,2.0 +19870531,24.1,19.6,31.7,16.7,2.8 +19870601,25.3,20.2,32.2,17.8,3.0 +19870602,25.1,18.7,33.9,16.1,1.7 +19870603,27.3,19.8,34.4,16.7,2.6 +19870604,24.6,19.6,35.0,18.9,3.0 +19870605,22.1,14.8,31.1,14.4,2.8 +19870606,22.8,11.6,31.1,13.9,3.3 +19870607,23.4,12.7,31.7,13.3,2.7 +19870608,24.9,14.2,32.2,13.3,4.1 +19870609,25.1,15.2,32.8,16.7,3.5 +19870610,24.4,17.2,32.8,16.7,2.7 +19870611,21.3,18.6,32.8,17.8,3.7 +19870612,24.3,19.0,31.7,18.3,3.7 +19870613,23.8,19.9,32.8,18.3,3.3 +19870614,24.0,21.1,30.6,20.6,2.6 +19870615,23.7,22.0,31.1,20.6,3.7 +19870616,24.0,22.3,29.4,20.6,4.1 +19870617,24.3,21.3,31.1,21.1,3.6 +19870618,23.8,21.3,31.1,19.4,2.5 +19870619,23.7,21.2,31.1,19.4,3.0 +19870620,23.4,21.3,29.4,20.0,4.1 +19870621,25.2,21.4,32.2,20.6,4.1 +19870622,25.8,21.6,32.8,20.6,5.8 +19870623,26.3,22.1,32.2,21.7,4.8 +19870624,25.7,20.9,33.3,21.1,2.9 +19870625,23.4,21.4,33.3,20.0,2.6 +19870626,23.8,22.1,30.0,20.0,3.2 +19870627,24.2,18.7,30.0,15.6,2.4 +19870628,21.6,11.6,30.6,12.2,2.2 +19870629,23.2,15.7,30.6,12.2,2.0 +19870630,24.3,17.6,31.1,14.4,2.2 +19870701,25.4,21.3,31.1,16.1,3.5 +19870702,24.6,22.3,31.7,21.1,4.2 +19870703,24.5,22.7,30.6,21.1,4.6 +19870704,24.6,22.4,30.0,21.1,5.0 +19870705,26.6,21.1,32.8,21.1,3.7 +19870706,25.9,21.2,33.9,18.3,2.2 +19870707,27.1,21.9,34.4,18.3,2.8 +19870708,26.9,21.7,33.3,20.0,2.3 +19870709,26.9,22.2,33.9,20.0,2.4 +19870710,28.5,22.4,33.9,21.1,2.5 +19870711,27.7,22.6,33.3,22.8,2.3 +19870712,27.2,20.8,33.3,21.1,3.6 +19870713,26.7,19.7,32.8,19.4,2.5 +19870714,26.9,20.3,33.3,19.4,2.9 +19870715,24.5,17.6,32.8,19.4,3.3 +19870716,23.7,17.3,30.6,16.7,3.1 +19870717,23.8,16.6,32.2,16.1,2.1 +19870718,25.1,18.1,32.8,16.1,2.1 +19870719,26.0,18.4,33.3,17.8,2.2 +19870720,27.2,18.3,35.0,17.2,2.1 +19870721,27.7,19.1,35.0,17.2,1.8 +19870722,27.6,19.5,36.1,18.9,2.3 +19870723,28.6,18.6,37.8,19.4,2.8 +19870724,28.2,19.0,37.8,18.9,2.2 +19870725,29.1,19.9,37.8,20.0,2.2 +19870726,28.3,20.6,37.2,20.6,2.5 +19870727,27.0,21.8,37.2,20.6,2.0 +19870728,27.1,20.6,35.0,21.1,2.8 +19870729,26.3,19.9,34.4,20.0,3.1 +19870730,24.8,22.4,33.9,20.0,3.4 +19870731,25.1,21.8,36.7,19.4,2.2 +19870801,27.0,22.9,33.3,19.4,2.1 +19870802,26.3,23.5,33.9,21.7,3.0 +19870803,25.8,23.2,33.3,21.7,2.9 +19870804,26.4,23.1,34.4,21.7,3.4 +19870805,26.6,22.3,33.9,21.7,3.0 +19870806,25.3,22.6,35.0,21.1,2.8 +19870807,24.3,21.9,32.2,20.6,2.1 +19870808,26.2,23.6,31.7,20.6,2.3 +19870809,26.6,22.3,33.3,21.1,1.9 +19870810,27.4,23.3,33.9,21.1,2.5 +19870811,24.6,21.8,33.9,20.6,4.4 +19870812,24.5,20.5,28.3,20.6,3.3 +19870813,23.8,19.7,28.9,18.9,3.7 +19870814,22.5,17.1,28.9,17.8,3.9 +19870815,23.4,18.8,28.3,17.8,3.6 +19870816,24.0,19.9,30.6,19.4,2.3 +19870817,26.2,21.3,32.8,19.4,2.9 +19870818,26.2,20.3,32.8,20.0,2.6 +19870819,26.7,21.2,33.3,20.0,1.7 +19870820,26.6,16.4,34.4,18.9,3.0 +19870821,26.5,18.3,34.4,18.9,2.4 +19870822,27.4,18.7,33.9,19.4,4.3 +19870823,28.2,19.6,35.6,21.7,3.6 +19870824,24.9,15.4,36.1,20.6,4.8 +19870825,24.2,18.5,30.0,19.4,2.8 +19870826,26.6,21.7,35.0,19.4,2.6 +19870827,28.3,21.4,35.0,20.0,4.3 +19870828,27.9,20.5,35.0,21.7,4.3 +19870829,26.6,19.8,34.4,19.4,2.5 +19870830,24.7,15.8,33.9,19.4,4.5 +19870831,23.6,18.8,30.6,20.6,2.9 +19870901,23.2,17.9,28.9,17.8,2.1 +19870902,23.4,17.1,30.0,17.2,2.4 +19870903,23.9,17.4,30.6,16.7,3.5 +19870904,22.1,18.3,31.1,16.7,4.9 +19870905,17.4,16.2,25.0,15.6,6.1 +19870906,19.7,19.1,23.3,15.6,4.9 +19870907,22.5,21.6,25.6,17.8,3.3 +19870908,22.9,20.5,30.6,18.3,2.3 +19870909,23.8,19.9,31.1,18.3,1.5 +19870910,23.4,19.6,31.7,17.8,2.0 +19870911,22.0,20.0,30.0,17.8,3.1 +19870912,22.1,21.3,28.9,18.3,2.0 +19870913,23.2,20.6,28.3,19.4,2.6 +19870914,22.8,18.2,30.0,16.1,2.2 +19870915,22.9,19.1,30.6,15.6,2.3 +19870916,23.0,20.4,29.4,17.2,2.1 +19870917,24.2,20.7,30.0,18.9,3.2 +19870918,25.1,20.1,30.6,18.9,4.6 +19870919,21.6,19.1,31.1,18.9,1.8 +19870920,22.0,18.1,27.2,18.9,2.5 +19870921,20.1,11.3,27.8,11.1,2.0 +19870922,18.5,10.8,27.2,11.7,3.0 +19870923,17.1,10.1,25.6,10.6,2.8 +19870924,17.9,10.8,25.6,10.6,1.9 +19870925,18.5,11.6,26.7,11.1,2.1 +19870926,18.6,11.9,28.3,11.1,1.5 +19870927,19.2,13.5,28.3,11.1,2.4 +19870928,19.5,15.9,27.8,12.2,3.3 +19870929,20.2,16.8,26.7,14.4,2.6 +19870930,20.6,15.4,27.2,14.4,4.2 +19871001,16.2,5.6,24.4,9.4,3.7 +19871002,14.3,5.9,25.6,5.0,3.4 +19871003,13.7,4.4,25.6,5.0,5.9 +19871004,11.8,-0.6,20.6,2.2,3.7 +19871005,13.2,1.9,23.9,2.2,2.3 +19871006,14.1,7.3,23.9,3.9,3.9 +19871007,12.2,5.1,22.8,5.0,2.8 +19871008,10.1,0.9,20.0,0.6,3.1 +19871009,10.2,2.5,19.4,0.6,2.7 +19871010,13.4,6.0,23.9,2.2,1.9 +19871011,16.3,9.1,27.2,3.9,1.2 +19871012,13.3,10.3,27.8,7.2,4.5 +19871013,9.4,3.0,16.7,3.3,4.9 +19871014,9.1,0.6,17.2,2.2,4.2 +19871015,10.2,1.3,20.6,2.2,3.1 +19871016,12.2,2.2,23.3,2.2,3.1 +19871017,13.3,3.4,25.0,2.8,2.4 +19871018,15.6,6.9,25.6,4.4,2.4 +19871019,15.6,8.9,26.1,7.2,2.2 +19871020,18.2,12.9,25.0,7.2,3.5 +19871021,13.3,5.8,24.4,8.3,4.2 +19871022,6.8,-6.4,16.7,-3.3,3.2 +19871023,7.5,-3.7,18.9,-3.3,1.7 +19871024,10.8,-1.1,22.8,-1.7,2.0 +19871025,14.6,4.6,22.8,1.1,2.0 +19871026,13.2,3.8,22.8,7.8,4.1 +19871027,12.2,6.2,20.6,7.8,3.9 +19871028,11.2,0.8,17.8,3.3,3.8 +19871029,7.7,-1.2,17.2,-1.2,2.6 +19871030,14.2,2.8,22.8,8.9,4.6 +19871031,16.1,7.1,26.7,7.8,3.0 +19871101,16.7,10.0,26.7,7.8,3.0 +19871102,15.1,8.3,25.0,6.7,3.3 +19871103,15.3,9.6,24.4,6.7,3.5 +19871104,16.5,12.3,25.0,8.9,2.5 +19871105,17.9,9.3,25.0,9.4,3.6 +19871106,11.4,-9.9,23.3,1.7,4.4 +19871107,9.1,-6.4,20.6,-0.6,3.2 +19871108,12.5,-1.9,21.1,-0.6,3.3 +19871109,15.6,8.2,22.2,3.3,2.1 +19871110,18.2,14.3,23.3,8.9,4.4 +19871111,5.6,-1.2,12.2,1.1,6.5 +19871112,6.4,-7.2,16.1,-0.6,4.7 +19871113,7.8,-3.8,20.6,-2.8,1.5 +19871114,10.9,-3.1,20.6,-2.8,2.6 +19871115,10.9,-0.7,21.1,2.8,3.6 +19871116,15.4,3.2,21.1,13.3,4.9 +19871117,16.9,15.3,23.3,12.8,5.4 +19871118,15.4,10.4,19.4,11.7,4.0 +19871119,7.9,1.9,20.0,1.7,2.9 +19871120,6.9,1.1,11.7,0.6,3.9 +19871121,3.3,-10.3,11.7,-2.2,4.5 +19871122,2.9,-8.4,12.2,-4.4,2.2 +19871123,6.4,-0.4,17.2,-4.4,3.1 +19871124,10.9,7.0,20.6,-2.2,2.3 +19871125,13.9,10.3,20.6,3.9,2.1 +19871126,14.6,13.2,20.6,8.9,4.1 +19871127,15.1,14.8,17.2,10.0,4.2 +19871128,8.3,7.9,16.7,7.2,7.3 +19871129,10.6,8.9,15.0,7.2,4.5 +19871130,7.1,3.3,15.0,3.3,3.4 +19871201,4.6,-0.1,10.6,-1.7,3.9 +19871202,3.0,-3.0,10.6,-3.9,3.2 +19871203,3.8,-2.3,13.9,-3.9,4.1 +19871204,7.4,-1.5,14.4,-3.9,6.5 +19871205,4.2,-6.6,10.0,0.6,6.5 +19871206,2.7,-4.7,10.6,-3.3,2.2 +19871207,5.5,-2.2,12.2,-3.3,2.5 +19871208,7.1,-1.7,12.8,0.0,4.5 +19871209,10.7,4.2,13.9,2.2,3.3 +19871210,12.9,12.5,16.7,8.9,2.4 +19871211,9.7,1.2,16.7,3.3,4.1 +19871212,10.2,-0.1,17.8,1.7,4.1 +19871213,8.9,-4.6,17.8,1.7,3.3 +19871214,7.7,1.2,15.6,2.8,2.9 +19871215,8.7,6.2,15.6,5.0,5.8 +19871216,3.8,-4.8,16.7,-2.8,4.2 +19871217,3.1,-7.5,8.9,-2.8,5.7 +19871218,0.7,-6.2,9.4,-4.4,2.8 +19871219,4.5,-2.6,12.8,-4.4,2.9 +19871220,10.6,6.2,16.7,6.7,3.2 +19871221,10.6,10.3,16.7,5.6,2.8 +19871222,9.6,8.8,13.3,6.7,3.0 +19871223,7.5,2.3,14.4,-0.6,3.1 +19871224,5.8,3.3,15.0,-0.6,2.3 +19871225,10.8,10.8,15.6,1.1,2.1 +19871226,17.7,17.3,20.6,8.3,5.4 +19871227,11.6,11.4,21.1,7.8,4.8 +19871228,7.4,7.3,8.9,6.7,3.5 +19871229,5.6,-0.9,8.3,1.1,5.6 +19871230,2.4,-7.4,9.4,-5.6,3.5 +19871231,4.4,-2.8,12.2,-5.6,3.7 +19880101,9.3,5.4,12.2,8.3,2.8 +19880102,5.3,2.6,11.7,3.3,4.4 +19880103,1.6,-0.9,7.8,0.6,4.9 +19880104,4.0,1.7,9.4,0.6,3.2 +19880105,0.9,-10.8,10.6,-2.2,4.5 +19880106,-1.9,-13.8,4.4,-5.0,2.6 +19880107,-5.7,-9.7,-1.7,-8.3,6.0 +19880108,-4.9,-6.1,0.0,-8.3,5.0 +19880109,-3.5,-4.8,2.2,-8.3,1.6 +19880110,-2.2,-5.4,3.3,-7.8,2.9 +19880111,-3.3,-7.3,3.9,-8.9,3.0 +19880112,-2.7,-7.1,5.6,-10.0,2.7 +19880113,4.2,-1.7,11.1,1.1,4.0 +19880114,-2.7,-11.4,1.7,-8.3,4.0 +19880115,-3.1,-10.8,2.2,-8.3,2.5 +19880116,-2.2,-9.1,7.2,-10.0,1.9 +19880117,0.7,-3.6,7.8,-10.0,2.8 +19880118,5.3,4.7,12.8,-2.2,2.4 +19880119,7.2,7.2,13.9,1.7,4.7 +19880120,7.5,7.3,13.3,4.4,4.5 +19880121,8.9,5.8,13.9,4.4,2.7 +19880122,4.1,-0.1,12.8,-1.1,2.8 +19880123,1.7,-4.6,8.9,-4.4,4.7 +19880124,3.2,-3.8,12.2,-4.4,3.8 +19880125,6.4,2.4,12.2,-3.3,2.8 +19880126,0.2,-11.2,10.0,-5.6,5.6 +19880127,-2.4,-11.9,3.9,-9.4,3.1 +19880128,-0.6,-9.4,9.4,-9.4,2.1 +19880129,3.5,-5.2,15.6,-8.9,2.4 +19880130,7.6,-1.8,16.1,-5.0,4.9 +19880131,11.6,8.4,16.7,0.6,2.5 +19880201,13.6,12.3,18.9,6.7,2.7 +19880202,14.1,13.4,19.4,8.9,3.2 +19880203,13.8,13.7,18.3,8.9,3.6 +19880204,9.1,7.8,16.1,7.2,4.0 +19880205,3.6,-4.8,15.6,-0.6,3.9 +19880206,-1.6,-13.3,7.8,-6.1,4.1 +19880207,-4.2,-17.3,3.9,-11.7,3.9 +19880208,3.2,-11.6,10.0,0.0,2.8 +19880209,3.3,-9.1,11.7,-5.0,2.2 +19880210,4.9,-3.5,13.3,-5.0,2.9 +19880211,4.7,-1.7,13.3,-2.2,4.6 +19880212,3.4,-3.8,11.7,-1.1,3.8 +19880213,-3.3,-12.3,5.6,-11.1,2.7 +19880214,1.7,-7.8,13.9,-11.1,2.9 +19880215,7.4,2.4,14.4,3.9,3.9 +19880216,5.8,-1.4,11.7,0.0,5.6 +19880217,5.3,-2.3,16.1,-3.3,2.1 +19880218,7.1,-1.7,16.1,-3.3,2.4 +19880219,7.6,3.8,16.1,-0.6,3.9 +19880220,8.1,6.6,10.0,5.6,4.7 +19880221,6.1,-7.2,11.1,-1.7,3.1 +19880222,2.8,-8.6,15.6,-6.7,3.5 +19880223,10.5,3.8,16.7,3.9,6.3 +19880224,6.2,-2.9,17.8,-2.2,3.9 +19880225,1.8,-10.8,10.0,-7.2,3.2 +19880226,2.7,-10.8,10.6,-7.2,4.2 +19880227,10.1,-3.9,21.7,2.8,5.9 +19880228,7.5,-5.6,21.7,-1.7,4.2 +19880229,7.6,-4.2,18.9,-3.3,2.2 +19880301,9.3,-4.1,18.9,-3.3,4.0 +19880302,7.8,-2.8,18.9,-2.2,3.4 +19880303,12.2,4.6,19.9,7.2,3.5 +19880304,15.8,12.9,20.6,6.7,6.0 +19880305,10.3,4.4,19.4,6.1,5.4 +19880306,8.4,-4.4,15.0,0.0,2.8 +19880307,10.7,1.8,21.7,0.0,2.3 +19880308,12.3,3.7,21.7,1.1,2.4 +19880309,13.3,10.3,20.6,5.0,2.9 +19880310,11.1,10.8,14.4,8.3,2.9 +19880311,7.4,2.3,15.6,-0.6,3.5 +19880312,9.4,5.6,18.3,-0.6,3.5 +19880313,14.5,6.8,18.9,11.1,4.8 +19880314,6.1,-6.0,20.0,1.7,4.6 +19880315,-0.1,-10.6,10.0,-5.0,4.0 +19880316,1.9,-9.4,10.0,-5.0,4.8 +19880317,3.6,-7.1,13.9,-5.0,2.5 +19880318,5.5,-0.1,13.9,-5.0,2.5 +19880319,6.2,0.3,11.1,0.6,4.7 +19880320,9.5,-2.8,20.6,1.1,6.6 +19880321,15.3,1.6,25.0,1.1,5.2 +19880322,10.8,0.4,26.1,2.2,5.4 +19880323,10.3,3.9,20.0,2.2,2.8 +19880324,15.1,10.0,23.9,2.8,2.7 +19880325,15.3,12.7,23.9,8.9,3.5 +19880326,16.9,14.1,22.8,10.6,5.7 +19880327,13.9,-1.2,23.3,3.3,3.5 +19880328,12.5,-3.2,22.8,2.8,2.9 +19880329,14.4,2.1,23.3,2.8,2.9 +19880330,16.7,10.2,23.3,3.9,3.4 +19880331,18.8,12.2,24.4,8.9,2.8 +19880401,18.1,12.3,25.0,13.3,3.3 +19880402,17.2,13.4,22.8,11.7,2.6 +19880403,16.7,15.2,21.7,11.7,2.9 +19880404,19.9,14.7,26.1,15.0,5.7 +19880405,19.6,6.4,29.4,8.3,2.8 +19880406,17.6,8.7,30.0,8.3,6.0 +19880407,12.1,0.5,21.1,6.1,6.7 +19880408,13.3,4.9,20.0,6.1,6.1 +19880409,14.5,-0.3,23.9,2.8,3.0 +19880410,14.7,0.8,23.9,2.8,3.0 +19880411,14.1,8.7,23.9,3.9,3.4 +19880412,8.8,7.4,21.1,5.6,6.5 +19880413,11.1,4.7,20.0,5.6,4.9 +19880414,13.1,5.3,22.8,3.9,3.7 +19880415,17.1,8.1,25.0,3.9,4.5 +19880416,12.4,0.9,25.0,5.0,4.7 +19880417,12.6,-0.2,21.1,2.2,4.1 +19880418,16.7,7.6,25.0,11.1,6.3 +19880419,17.0,11.3,25.0,10.6,5.2 +19880420,11.7,-1.3,20.0,1.7,4.4 +19880421,17.6,6.4,27.2,1.7,5.5 +19880422,21.7,11.1,29.4,10.0,4.6 +19880423,19.0,13.2,29.4,13.3,5.2 +19880424,20.4,13.3,27.8,13.9,4.4 +19880425,14.7,5.8,27.8,8.3,3.2 +19880426,15.3,8.4,22.2,8.3,2.7 +19880427,17.3,11.0,25.0,8.9,4.7 +19880428,14.4,-1.8,25.6,6.7,4.5 +19880429,12.5,-1.3,21.7,2.8,3.5 +19880430,13.4,0.3,22.2,2.8,2.8 +19880501,14.9,1.2,23.3,4.4,3.0 +19880502,15.8,2.8,26.1,5.6,2.4 +19880503,16.9,7.0,26.7,5.6,4.7 +19880504,16.4,11.1,25.6,9.4,3.9 +19880505,15.3,9.3,22.8,10.6,3.9 +19880506,16.1,5.8,21.7,7.8,5.6 +19880507,19.0,9.0,27.8,7.8,3.0 +19880508,19.7,10.6,28.3,9.4,3.1 +19880509,19.4,13.1,27.8,10.6,5.1 +19880510,18.9,14.5,26.1,14.4,4.5 +19880511,17.4,8.4,26.7,7.2,2.3 +19880512,18.8,9.4,26.1,7.2,3.7 +19880513,18.8,12.8,27.2,12.2,2.5 +19880514,20.2,13.1,28.9,11.7,2.2 +19880515,21.4,15.1,29.4,11.7,2.5 +19880516,21.6,16.2,30.6,14.4,2.4 +19880517,20.2,14.9,31.1,13.9,4.0 +19880518,18.4,9.6,27.8,9.4,2.7 +19880519,19.5,10.0,26.7,9.4,3.4 +19880520,20.2,11.9,28.3,11.7,2.4 +19880521,22.1,13.3,30.0,12.8,2.5 +19880522,21.8,14.3,30.0,13.3,2.4 +19880523,24.1,16.3,30.6,13.3,4.5 +19880524,19.8,15.9,30.6,16.7,3.4 +19880525,19.8,14.8,25.0,16.7,5.0 +19880526,16.3,3.1,25.0,7.8,4.4 +19880527,16.2,6.0,23.9,7.8,3.1 +19880528,19.4,9.3,31.1,7.8,2.0 +19880529,22.7,10.4,31.7,10.0,2.9 +19880530,24.0,12.2,32.2,13.9,2.8 +19880531,25.4,11.8,33.3,15.0,2.9 +19880601,25.6,14.5,33.9,17.2,2.8 +19880602,26.0,12.5,33.3,16.7,3.4 +19880603,22.2,14.9,33.3,16.1,3.6 +19880604,16.6,8.8,31.1,10.6,3.9 +19880605,17.9,7.4,27.8,8.9,2.5 +19880606,22.6,8.6,32.2,8.9,2.6 +19880607,25.4,11.5,34.4,11.7,2.6 +19880608,26.4,13.8,35.0,15.0,2.5 +19880609,24.3,18.2,34.4,17.8,5.6 +19880610,19.6,8.9,32.8,15.0,5.8 +19880611,17.9,3.6,26.1,8.3,3.7 +19880612,19.8,7.2,29.4,8.3,2.0 +19880613,22.3,9.7,31.7,9.4,2.1 +19880614,23.9,12.7,32.8,11.7,2.5 +19880615,24.7,14.2,32.8,14.4,3.0 +19880616,25.1,14.6,34.4,16.1,3.0 +19880617,25.0,16.6,35.0,16.7,2.7 +19880618,23.3,17.9,34.4,16.7,3.0 +19880619,22.8,19.2,32.8,16.7,3.1 +19880620,25.0,19.3,33.3,18.3,2.5 +19880621,26.6,19.1,34.4,18.3,1.6 +19880622,27.8,18.9,35.6,18.9,2.1 +19880623,28.4,19.2,36.7,20.0,2.5 +19880624,27.0,21.2,37.2,20.6,2.8 +19880625,27.1,22.6,33.3,21.1,3.3 +19880626,27.4,21.3,35.6,21.7,3.1 +19880627,24.2,18.6,36.1,20.0,4.5 +19880628,22.6,13.3,29.4,14.4,2.8 +19880629,25.1,16.1,32.8,14.4,4.8 +19880630,22.6,19.0,33.3,17.8,3.8 +19880701,20.6,14.5,26.7,14.4,2.8 +19880702,20.9,11.1,28.3,14.4,3.1 +19880703,20.0,17.2,28.3,14.4,2.9 +19880704,18.4,18.2,21.1,16.7,3.0 +19880705,22.2,18.7,28.3,17.2,3.2 +19880706,22.9,16.2,30.0,15.6,3.3 +19880707,23.8,16.2,32.8,15.0,1.4 +19880708,28.1,18.3,36.1,15.0,3.5 +19880709,27.2,20.7,36.7,20.6,3.0 +19880710,26.6,20.4,33.9,20.6,2.5 +19880711,25.3,20.8,33.9,20.6,3.7 +19880712,26.4,21.8,31.7,20.6,6.2 +19880713,25.5,21.7,32.2,20.6,3.0 +19880714,26.6,22.9,32.2,20.6,2.7 +19880715,28.9,22.8,35.6,22.2,2.3 +19880716,28.0,23.2,36.7,22.2,2.5 +19880717,27.2,22.3,36.7,21.7,2.4 +19880718,28.5,21.9,35.0,21.7,4.6 +19880719,28.2,21.0,35.0,22.2,4.3 +19880720,27.6,21.0,33.9,22.2,5.0 +19880721,27.3,21.7,33.3,22.2,5.4 +19880722,23.9,21.3,33.9,21.1,2.7 +19880723,24.4,21.2,30.0,20.6,2.4 +19880724,24.8,19.4,31.1,17.8,2.6 +19880725,25.9,17.8,32.2,17.8,2.5 +19880726,24.7,18.4,32.2,17.8,2.9 +19880727,24.7,20.7,32.2,17.8,2.2 +19880728,25.0,20.7,31.7,18.9,2.8 +19880729,27.0,21.4,34.4,18.9,2.2 +19880730,26.7,21.0,34.4,19.4,2.6 +19880731,27.6,20.7,35.0,19.4,3.0 +19880801,28.3,20.6,36.7,20.0,2.0 +19880802,28.4,21.8,36.7,20.6,3.1 +19880803,27.6,21.9,36.1,21.7,3.4 +19880804,25.9,22.6,33.9,22.2,3.2 +19880805,25.6,22.6,32.2,21.7,2.4 +19880806,26.6,22.2,32.8,21.1,2.5 +19880807,26.4,21.4,34.4,20.6,2.0 +19880808,27.3,21.8,34.4,20.6,2.8 +19880809,27.7,22.1,35.0,21.1,2.5 +19880810,27.5,22.4,35.0,21.7,2.2 +19880811,24.4,22.9,35.6,22.2,2.5 +19880812,25.4,21.2,32.2,20.0,1.4 +19880813,26.7,20.8,32.8,20.0,2.0 +19880814,26.3,20.8,33.9,20.0,3.5 +19880815,26.9,21.2,34.4,21.1,2.2 +19880816,27.2,21.9,35.0,21.1,2.1 +19880817,28.6,21.9,36.1,21.1,2.9 +19880818,30.1,21.4,38.3,21.7,2.9 +19880819,29.5,19.8,38.3,21.7,4.0 +19880820,27.0,22.8,36.1,21.7,4.8 +19880821,26.5,22.3,32.2,22.2,3.5 +19880822,24.7,21.6,32.8,22.2,4.4 +19880823,23.5,19.3,29.4,18.9,3.3 +19880824,25.4,21.3,32.2,18.9,3.0 +19880825,25.4,15.5,32.8,16.7,2.6 +19880826,25.0,14.2,34.4,15.6,2.1 +19880827,25.8,16.3,34.4,15.6,2.4 +19880828,22.7,20.9,34.4,17.2,3.8 +19880829,25.7,21.5,33.3,19.4,3.9 +19880830,23.6,21.4,33.3,21.1,4.1 +19880831,21.7,18.6,26.1,18.9,5.6 +19880901,20.9,15.2,26.1,16.1,4.6 +19880902,20.7,14.3,27.8,14.4,3.3 +19880903,21.8,18.0,28.3,14.4,2.7 +19880904,21.9,21.3,27.2,19.4,5.8 +19880905,20.9,16.8,27.2,16.7,3.1 +19880906,20.7,15.5,27.2,16.7,4.2 +19880907,19.0,12.6,25.6,15.0,5.2 +19880908,16.8,11.9,23.9,10.6,4.5 +19880909,18.2,17.4,24.4,10.6,4.9 +19880910,20.7,19.1,25.0,17.2,2.7 +19880911,23.6,21.3,28.3,18.3,2.2 +19880912,24.1,21.4,28.9,19.4,2.3 +19880913,24.4,21.7,30.6,20.0,2.7 +19880914,25.4,20.9,31.7,18.9,1.9 +19880915,22.8,20.4,32.2,18.9,3.9 +19880916,20.8,17.8,24.4,18.9,3.2 +19880917,17.6,16.7,21.7,16.1,3.9 +19880918,19.3,18.1,21.7,16.1,4.6 +19880919,21.2,20.7,26.1,17.8,2.9 +19880920,22.8,20.4,28.9,17.8,2.8 +19880921,24.5,17.5,30.6,16.7,3.2 +19880922,19.8,12.0,31.1,11.1,2.1 +19880923,22.2,17.9,30.6,11.1,2.7 +19880924,25.2,21.7,31.1,15.0,3.8 +19880925,23.5,21.0,31.7,20.0,2.9 +19880926,20.6,17.8,30.0,16.7,4.2 +19880927,18.5,14.6,25.0,13.3,2.9 +19880928,18.7,13.7,26.7,12.2,2.6 +19880929,19.4,15.6,26.7,12.2,3.3 +19880930,19.7,16.9,27.2,14.4,4.4 +19881001,20.0,17.6,26.7,15.6,2.7 +19881002,21.2,20.3,27.2,15.6,3.7 +19881003,18.7,18.3,23.3,17.2,3.8 +19881004,17.3,13.2,21.1,14.4,3.8 +19881005,13.4,6.0,21.1,6.7,3.4 +19881006,12.2,2.8,20.6,6.1,4.3 +19881007,10.6,2.4,18.3,5.6,3.8 +19881008,9.8,3.4,18.9,1.7,1.9 +19881009,10.3,4.6,19.4,1.7,2.3 +19881010,12.1,6.5,19.4,3.3,3.4 +19881011,15.3,8.9,22.8,5.6,4.3 +19881012,12.3,2.5,22.8,5.6,3.1 +19881013,7.6,-1.8,18.9,-1.7,2.5 +19881014,7.3,0.0,17.8,-1.7,1.7 +19881015,11.7,3.9,22.2,-1.1,2.7 +19881016,11.8,4.9,22.8,3.3,2.2 +19881017,16.8,11.7,25.0,3.3,2.4 +19881018,18.7,13.8,26.1,9.4,4.9 +19881019,18.1,11.2,26.7,12.2,4.3 +19881020,10.8,3.1,20.6,4.4,3.0 +19881021,10.4,8.7,17.2,4.4,3.2 +19881022,10.9,5.8,18.3,4.4,3.2 +19881023,8.5,1.2,18.9,-0.6,3.4 +19881024,14.8,4.8,21.1,9.4,4.3 +19881025,12.0,-0.6,21.7,1.1,4.4 +19881026,11.2,6.1,20.0,1.1,1.7 +19881027,8.8,2.6,17.8,2.2,3.3 +19881028,15.6,10.3,23.3,11.7,3.9 +19881029,14.3,7.7,23.3,8.3,3.0 +19881030,10.8,3.0,20.0,4.4,3.1 +19881031,8.7,2.7,17.8,4.4,4.7 +19881101,9.6,6.8,17.8,3.9,3.2 +19881102,11.0,2.8,19.4,3.9,2.9 +19881103,10.0,2.9,19.4,3.3,2.9 +19881104,11.2,8.8,21.7,3.3,2.3 +19881105,16.5,12.8,21.7,3.9,6.9 +19881106,9.8,4.8,20.0,6.7,7.0 +19881107,9.5,1.6,17.8,2.2,4.2 +19881108,11.7,4.9,19.4,2.2,4.6 +19881109,13.2,9.6,20.6,5.6,2.5 +19881110,16.4,13.5,22.2,6.1,4.3 +19881111,13.2,5.2,23.3,5.6,3.6 +19881112,7.8,0.3,18.9,4.4,4.3 +19881113,11.9,5.7,20.0,4.4,3.1 +19881114,12.1,7.2,21.1,4.4,2.2 +19881115,11.1,7.7,21.7,3.9,1.5 +19881116,17.4,13.1,22.8,12.8,3.2 +19881117,16.4,11.2,23.3,10.6,4.7 +19881118,7.8,-3.2,18.9,1.1,3.7 +19881119,9.1,-0.4,16.1,1.1,4.5 +19881120,10.4,9.1,20.6,6.7,4.6 +19881121,12.4,3.4,21.1,6.7,5.3 +19881122,6.6,-0.1,16.1,3.3,5.0 +19881123,8.7,4.4,11.1,3.3,5.9 +19881124,10.2,6.9,17.2,2.2,2.7 +19881125,8.6,5.4,17.8,1.7,2.8 +19881126,11.9,9.0,20.0,1.7,3.1 +19881127,15.6,14.3,21.1,5.0,4.3 +19881128,10.8,4.8,17.8,6.7,5.4 +19881129,4.9,-4.1,13.3,-2.8,3.2 +19881130,5.3,-0.3,13.3,-2.8,3.9 +19881201,5.1,-2.1,13.3,-3.9,3.6 +19881202,4.9,-5.2,12.2,-3.9,3.9 +19881203,6.9,-3.4,19.4,-2.2,2.9 +19881204,9.6,-0.9,19.4,-2.2,4.1 +19881205,4.4,-7.2,15.0,-3.9,2.8 +19881206,6.6,-4.0,17.2,-3.9,2.6 +19881207,10.4,-0.7,18.3,6.1,4.7 +19881208,10.5,2.4,18.9,1.7,2.1 +19881209,9.3,4.3,19.4,1.7,3.5 +19881210,2.0,-1.8,11.1,-2.8,2.6 +19881211,3.2,-2.6,7.2,-2.8,3.2 +19881212,-1.7,-11.4,5.6,-5.6,5.1 +19881213,-1.2,-8.7,10.6,-8.3,3.3 +19881214,3.3,-4.3,16.1,-8.3,3.1 +19881215,10.3,0.0,17.2,5.6,4.1 +19881216,6.2,-2.8,18.3,2.2,3.2 +19881217,0.3,-7.3,8.9,-5.0,3.4 +19881218,-1.9,-10.9,5.6,-8.3,2.9 +19881219,5.3,-6.4,15.6,-8.3,5.2 +19881220,6.9,-0.3,16.1,-2.2,4.8 +19881221,10.5,7.6,16.1,0.6,3.8 +19881222,11.4,8.4,17.2,5.6,3.3 +19881223,9.0,8.4,17.2,5.6,3.6 +19881224,12.4,11.9,17.8,7.8,3.5 +19881225,11.6,3.3,17.8,5.0,4.6 +19881226,6.9,-5.9,15.6,0.0,3.0 +19881227,5.4,-2.3,15.0,-0.6,2.7 +19881228,12.1,8.4,18.3,8.9,4.9 +19881229,3.4,-5.0,18.3,-3.9,3.2 +19881230,1.2,-2.2,10.6,-3.9,1.6 +19881231,7.3,5.6,10.0,-2.2,2.7 +19890101,8.0,7.5,10.6,5.0,3.5 +19890102,9.2,6.9,13.9,5.0,3.2 +19890103,9.9,6.8,16.7,7.2,4.6 +19890104,6.6,-6.9,16.7,-1.7,5.6 +19890105,3.1,-6.0,11.1,-5.0,3.2 +19890106,5.6,3.2,10.6,-5.0,2.1 +19890107,8.1,8.1,9.4,0.6,3.2 +19890108,11.0,10.3,16.7,6.7,3.6 +19890109,7.7,1.4,16.7,4.4,3.4 +19890110,3.8,2.9,10.0,2.8,3.4 +19890111,4.7,4.1,6.7,2.8,4.0 +19890112,7.6,7.6,9.4,3.3,3.7 +19890113,10.1,5.8,11.1,6.7,4.9 +19890114,2.2,-3.4,11.7,0.0,4.7 +19890115,5.2,4.1,15.6,0.0,4.1 +19890116,7.2,1.2,16.1,1.1,4.3 +19890117,4.1,-5.5,11.7,-3.3,2.8 +19890118,4.2,-3.3,16.1,-3.9,3.0 +19890119,7.9,-1.2,16.1,-3.9,3.2 +19890120,9.7,0.4,16.1,-0.6,4.0 +19890121,3.0,-7.8,7.2,-3.3,5.4 +19890122,1.3,-9.9,8.9,-4.4,3.8 +19890123,6.4,-8.2,18.3,-4.4,4.2 +19890124,8.7,-3.3,20.0,-0.6,2.1 +19890125,11.6,-2.6,21.7,0.0,2.7 +19890126,10.6,2.6,22.2,1.7,4.3 +19890127,13.1,3.6,19.4,2.8,5.7 +19890128,8.0,-6.3,16.1,0.6,3.1 +19890129,9.9,2.3,19.4,0.6,4.0 +19890130,13.8,10.9,20.0,10.6,5.4 +19890131,10.4,1.1,18.3,-0.6,4.1 +19890201,12.6,6.0,20.6,-0.6,5.6 +19890202,16.9,13.6,25.0,4.4,4.1 +19890203,19.2,15.2,25.6,10.6,6.0 +19890204,12.6,8.8,25.6,9.4,4.4 +19890205,5.4,5.2,13.3,3.9,3.2 +19890206,9.4,8.4,19.4,3.9,3.2 +19890207,13.2,10.9,20.0,5.6,5.5 +19890208,6.4,2.2,17.8,1.1,3.3 +19890209,0.3,-14.7,11.1,-4.4,5.7 +19890210,-2.1,-13.4,8.3,-10.0,2.3 +19890211,2.9,-9.3,14.4,-10.0,2.6 +19890212,7.7,-5.4,17.2,-6.1,3.3 +19890213,9.1,-5.1,17.2,-1.7,4.4 +19890214,11.8,4.9,20.6,3.9,2.7 +19890215,17.2,13.8,23.9,3.9,5.4 +19890216,15.6,12.6,23.9,11.1,4.4 +19890217,4.3,2.9,20.0,0.0,7.5 +19890218,-0.2,-0.4,8.3,-0.6,5.9 +19890219,0.1,-0.2,2.2,-2.2,3.2 +19890220,2.4,1.4,4.4,-2.2,1.4 +19890221,6.9,6.4,13.9,1.1,4.4 +19890222,11.3,7.5,14.4,3.3,4.6 +19890223,1.6,-2.4,13.9,-1.1,4.8 +19890224,-1.4,-10.7,3.9,-5.6,5.8 +19890225,1.5,-14.3,10.0,-5.6,4.9 +19890226,8.0,-2.8,18.3,-5.6,6.3 +19890227,8.0,3.8,18.9,1.7,4.3 +19890228,5.4,4.4,11.1,2.8,4.2 +19890301,5.4,2.3,11.7,-0.6,2.1 +19890302,6.4,1.4,13.3,-0.6,3.1 +19890303,7.7,5.2,13.9,0.0,4.8 +19890304,8.6,7.4,11.1,5.0,3.8 +19890305,10.3,9.9,15.0,6.7,3.4 +19890306,16.0,13.6,18.9,7.8,5.2 +19890307,5.7,2.1,18.9,2.8,6.6 +19890308,2.1,-3.0,8.3,-1.7,8.0 +19890309,6.4,-1.2,16.1,-1.7,6.1 +19890310,7.6,-1.4,16.7,-0.6,3.2 +19890311,8.8,-1.1,17.2,-0.6,3.2 +19890312,13.4,3.4,23.3,0.6,2.7 +19890313,13.0,3.1,24.4,3.9,4.6 +19890314,7.8,4.2,16.7,2.2,2.3 +19890315,15.2,11.8,23.9,2.2,4.8 +19890316,16.2,6.3,23.9,8.3,4.4 +19890317,13.4,7.6,21.7,6.7,2.4 +19890318,17.6,14.0,25.0,6.7,4.4 +19890319,13.6,4.4,26.1,6.1,4.7 +19890320,7.6,3.6,18.9,5.0,3.7 +19890321,9.8,9.3,16.7,5.0,3.2 +19890322,7.3,5.4,16.7,4.4,6.4 +19890323,3.8,2.4,8.9,1.7,7.6 +19890324,8.2,4.6,17.8,1.7,5.7 +19890325,13.0,8.7,24.4,3.3,2.5 +19890326,16.6,8.5,26.7,3.3,2.8 +19890327,17.4,11.3,26.7,6.7,2.3 +19890328,19.3,14.7,26.1,8.9,4.5 +19890329,21.7,15.1,27.2,12.2,5.7 +19890330,20.5,15.4,27.8,16.1,5.8 +19890331,17.2,10.7,25.0,13.3,6.3 +19890401,8.8,-1.6,22.8,2.8,4.3 +19890402,9.5,-0.7,20.0,0.6,4.0 +19890403,13.5,7.1,20.0,10.0,4.4 +19890404,16.7,14.1,23.9,10.0,4.0 +19890405,15.5,12.6,24.4,12.2,4.9 +19890406,12.4,-0.3,21.1,7.8,4.6 +19890407,8.7,1.9,17.2,3.9,5.0 +19890408,5.0,2.8,13.3,1.1,3.0 +19890409,8.8,4.0,13.9,1.1,2.4 +19890410,8.4,3.2,14.4,3.9,2.7 +19890411,6.2,0.5,11.7,3.3,2.8 +19890412,6.9,0.0,15.0,-1.1,2.0 +19890413,10.4,1.8,19.4,-1.1,2.1 +19890414,12.6,2.9,21.7,1.7,3.1 +19890415,13.9,9.7,22.2,3.9,3.0 +19890416,15.1,7.8,21.7,8.3,2.7 +19890417,15.4,8.2,24.4,6.7,3.4 +19890418,18.5,9.0,26.7,6.7,3.9 +19890419,20.0,11.2,27.8,10.0,3.2 +19890420,15.2,9.2,19.4,11.7,6.1 +19890421,13.9,7.9,22.8,5.6,2.3 +19890422,16.6,8.2,25.6,5.6,2.7 +19890423,16.8,10.0,26.7,7.8,2.4 +19890424,17.5,14.2,25.6,12.2,1.8 +19890425,20.6,15.3,29.4,12.2,2.9 +19890426,23.2,13.7,30.6,12.2,4.1 +19890427,24.1,15.9,31.7,12.2,3.7 +19890428,22.4,14.3,32.2,13.3,2.6 +19890429,20.4,17.2,29.4,13.3,3.3 +19890430,20.6,17.8,27.8,15.6,3.1 +19890501,18.7,18.3,27.8,16.1,3.4 +19890502,16.7,10.4,22.8,9.4,3.8 +19890503,14.3,4.1,23.3,7.8,3.4 +19890504,13.9,6.3,20.6,6.7,3.5 +19890505,16.4,15.8,22.8,6.7,4.0 +19890506,16.9,10.7,22.8,11.7,6.6 +19890507,11.0,2.1,22.8,2.8,4.8 +19890508,9.3,2.2,18.9,-0.6,3.0 +19890509,13.4,11.4,19.4,11.7,2.7 +19890510,15.1,10.8,18.3,11.7,4.4 +19890511,13.1,3.7,18.3,6.7,5.2 +19890512,12.6,4.9,20.6,3.3,4.0 +19890513,13.7,3.9,22.2,3.3,3.0 +19890514,18.1,10.7,23.9,13.9,3.3 +19890515,19.3,14.8,25.6,13.3,4.0 +19890516,17.7,7.9,25.6,11.7,4.2 +19890517,18.5,8.8,27.8,8.3,2.4 +19890518,20.9,12.9,27.8,8.3,2.1 +19890519,20.2,14.2,28.3,11.7,1.5 +19890520,18.4,15.6,26.1,12.8,2.4 +19890521,23.1,17.3,30.0,12.8,3.0 +19890522,23.3,16.8,30.6,15.6,3.1 +19890523,21.3,17.1,30.0,15.6,4.8 +19890524,19.7,10.1,28.3,9.4,3.3 +19890525,22.2,16.3,30.0,9.4,4.3 +19890526,25.6,21.0,31.1,15.0,5.5 +19890527,25.6,19.6,31.7,19.4,4.2 +19890528,20.6,10.6,32.2,13.9,4.6 +19890529,19.4,13.9,27.2,12.8,2.9 +19890530,22.3,16.8,28.9,12.8,3.5 +19890531,23.9,18.2,31.7,15.6,3.2 +19890601,26.7,19.4,34.4,16.7,2.9 +19890602,27.0,19.1,34.4,18.3,2.9 +19890603,24.0,16.8,34.4,17.2,3.3 +19890604,25.1,19.2,32.2,17.2,4.5 +19890605,22.8,20.5,32.2,18.9,4.9 +19890606,20.7,18.9,30.6,18.9,4.7 +19890607,22.1,17.4,28.9,17.8,3.0 +19890608,21.5,18.2,29.4,17.2,2.8 +19890609,22.4,19.6,27.2,17.2,6.3 +19890610,23.3,16.7,29.4,15.0,3.2 +19890611,22.3,14.7,30.0,13.3,2.4 +19890612,23.6,18.2,30.0,13.3,3.1 +19890613,24.3,19.2,31.1,17.8,5.6 +19890614,25.7,18.7,31.7,18.9,5.8 +19890615,22.2,19.3,32.2,18.9,4.7 +19890616,20.4,19.3,27.8,18.9,5.1 +19890617,22.1,17.1,27.8,17.8,4.1 +19890618,21.8,14.7,28.9,13.9,1.7 +19890619,21.9,18.2,28.9,13.9,2.7 +19890620,21.4,19.6,27.8,17.8,2.7 +19890621,21.1,19.9,28.3,18.9,3.0 +19890622,22.1,19.6,28.9,17.8,2.3 +19890623,23.3,18.8,30.0,17.8,2.2 +19890624,24.6,19.4,31.1,18.3,2.2 +19890625,25.6,20.3,31.7,18.9,2.6 +19890626,25.9,20.2,32.2,20.0,2.4 +19890627,26.3,20.3,31.7,20.0,3.4 +19890628,25.3,20.1,31.7,20.0,3.4 +19890629,24.6,19.9,31.7,21.1,2.6 +19890630,24.0,19.0,30.6,20.0,2.9 +19890701,23.4,17.2,29.4,18.9,2.3 +19890702,22.3,17.1,29.4,18.3,2.2 +19890703,21.1,19.5,26.1,18.3,3.1 +19890704,22.6,20.8,26.7,20.0,2.9 +19890705,23.9,21.0,28.9,21.1,2.8 +19890706,24.4,20.9,30.0,20.6,3.0 +19890707,25.3,21.3,30.6,20.6,4.2 +19890708,26.3,20.6,32.8,20.6,2.6 +19890709,26.6,20.6,33.3,19.4,2.2 +19890710,27.7,21.3,34.4,19.4,2.3 +19890711,27.7,20.6,35.0,21.1,2.3 +19890712,27.2,20.4,34.4,21.1,2.3 +19890713,25.4,19.9,33.9,20.6,2.0 +19890714,25.5,20.5,31.7,20.6,1.6 +19890715,24.3,20.4,31.1,20.0,2.5 +19890716,24.3,21.4,30.0,20.0,2.1 +19890717,23.7,20.4,30.0,20.6,3.8 +19890718,23.1,19.1,28.3,20.0,2.6 +19890719,23.0,20.4,28.9,19.4,2.0 +19890720,23.2,20.2,29.4,19.4,4.7 +19890721,23.1,20.7,28.9,20.6,3.2 +19890722,23.9,20.3,30.0,19.4,1.9 +19890723,24.7,20.9,30.6,19.4,2.1 +19890724,24.9,19.1,32.2,18.3,2.1 +19890725,27.0,20.5,33.3,18.3,3.0 +19890726,26.4,21.2,34.4,20.6,1.5 +19890727,25.8,22.0,34.4,20.6,2.1 +19890728,27.1,19.7,33.9,22.2,3.1 +19890729,27.0,20.0,33.3,21.1,2.4 +19890730,26.1,21.7,32.8,21.1,2.5 +19890731,24.2,20.9,31.7,20.6,2.8 +19890801,24.4,21.3,32.8,20.6,1.9 +19890802,25.4,20.7,31.7,20.6,2.5 +19890803,25.4,18.2,32.2,18.9,2.0 +19890804,26.8,20.3,33.9,18.9,2.0 +19890805,27.2,19.7,34.4,17.8,2.8 +19890806,27.2,21.2,34.4,17.8,2.8 +19890807,25.8,18.7,33.9,21.1,3.2 +19890808,20.7,11.6,31.1,17.2,4.1 +19890809,19.4,12.8,25.0,13.9,3.6 +19890810,19.8,12.6,26.7,13.9,3.9 +19890811,21.2,14.4,28.9,14.4,2.2 +19890812,22.3,16.7,29.4,14.4,2.2 +19890813,22.1,16.9,28.3,17.2,2.3 +19890814,23.2,19.3,29.4,17.2,2.8 +19890815,23.2,19.8,29.4,20.0,2.7 +19890816,23.2,19.1,30.6,17.8,1.9 +19890817,22.8,19.3,31.1,17.8,1.4 +19890818,22.4,18.7,30.0,17.8,2.0 +19890819,22.0,18.6,28.3,17.8,2.9 +19890820,23.9,20.2,30.6,18.3,2.1 +19890821,25.7,20.2,31.7,18.3,2.7 +19890822,25.9,20.3,32.8,19.4,1.9 +19890823,27.2,21.7,33.9,19.4,2.5 +19890824,24.9,22.1,34.4,21.1,2.1 +19890825,24.9,21.8,31.7,20.6,2.1 +19890826,24.8,22.7,30.6,20.6,2.3 +19890827,23.7,21.1,31.1,20.0,1.7 +19890828,25.7,22.6,31.1,20.0,1.9 +19890829,25.8,22.9,31.1,21.7,2.6 +19890830,26.0,22.5,31.7,21.7,2.5 +19890831,25.1,19.3,32.2,18.3,2.7 +19890901,23.6,19.4,31.1,17.8,2.1 +19890902,26.1,21.0,31.7,17.8,2.4 +19890903,23.4,19.4,32.2,20.6,4.4 +19890904,21.4,14.3,26.1,17.8,5.5 +19890905,19.1,16.1,26.1,17.2,5.7 +19890906,19.0,18.4,20.6,17.2,4.6 +19890907,21.9,19.6,28.3,17.8,3.0 +19890908,23.7,20.2,30.0,18.9,0.8 +19890909,24.3,20.2,31.1,17.8,1.2 +19890910,24.9,20.2,31.7,17.8,2.2 +19890911,24.8,20.8,31.7,18.9,2.2 +19890912,24.4,20.9,31.7,19.4,1.4 +19890913,24.0,20.9,31.7,19.4,2.3 +19890914,23.8,19.5,30.0,18.9,2.0 +19890915,23.7,20.3,31.1,18.9,2.0 +19890916,22.9,19.3,31.1,18.9,3.4 +19890917,20.2,14.2,27.8,14.4,2.7 +19890918,18.7,13.4,27.2,12.8,3.7 +19890919,19.7,14.8,25.6,12.8,4.5 +19890920,19.1,16.6,25.6,15.0,2.7 +19890921,23.2,21.0,28.3,15.0,4.5 +19890922,23.1,19.7,28.9,19.4,8.7 +19890923,21.9,17.9,27.2,18.9,4.1 +19890924,13.8,4.4,17.8,10.0,6.8 +19890925,11.9,8.4,17.8,10.0,6.8 +19890926,17.5,14.9,25.0,10.0,4.3 +19890927,17.7,11.0,25.6,14.4,5.6 +19890928,13.6,7.6,21.1,8.9,4.5 +19890929,16.2,13.8,18.9,8.9,3.2 +19890930,17.5,17.1,18.9,14.4,3.7 +19891001,16.5,16.1,18.9,15.6,5.8 +19891002,21.2,17.8,27.8,15.6,3.8 +19891003,22.0,15.9,28.3,15.0,2.9 +19891004,18.4,10.1,28.9,10.6,2.5 +19891005,15.3,7.4,25.6,6.7,2.6 +19891006,20.1,15.1,28.9,6.7,3.8 +19891007,21.5,16.1,28.9,13.9,2.9 +19891008,16.8,7.4,28.9,12.2,4.1 +19891009,10.6,1.3,22.8,1.7,2.3 +19891010,10.3,3.4,19.4,1.7,2.2 +19891011,13.6,7.2,23.9,2.8,1.2 +19891012,15.7,9.9,25.6,5.0,1.3 +19891013,18.4,13.0,28.9,7.8,1.2 +19891014,20.6,14.9,29.4,10.6,1.6 +19891015,17.8,13.3,28.9,11.1,1.6 +19891016,19.7,16.4,26.7,11.1,0.9 +19891017,21.8,19.9,27.2,15.0,4.4 +19891018,20.6,19.6,25.0,18.3,2.4 +19891019,14.1,12.2,24.4,10.0,4.0 +19891020,5.8,-0.9,9.4,0.6,5.0 +19891021,7.6,-2.3,18.9,-1.7,4.9 +19891022,13.2,2.9,23.9,-1.7,2.7 +19891023,12.1,4.7,24.4,3.9,1.9 +19891024,12.4,5.1,20.6,5.6,2.7 +19891025,13.6,3.5,22.2,6.1,3.7 +19891026,13.6,2.3,22.8,6.7,3.3 +19891027,13.7,5.2,23.3,6.7,3.7 +19891028,14.7,6.3,23.9,7.2,3.2 +19891029,15.3,6.7,24.4,7.2,3.9 +19891030,17.4,11.8,23.9,9.4,4.2 +19891031,17.6,15.8,24.4,12.2,3.0 +19891101,13.2,8.7,21.7,4.4,2.0 +19891102,9.9,7.2,18.9,4.4,3.1 +19891103,10.6,5.3,16.1,4.4,2.4 +19891104,8.1,0.9,16.7,2.2,2.9 +19891105,9.0,2.8,20.6,1.7,2.0 +19891106,12.3,9.7,20.6,1.7,2.9 +19891107,14.3,13.4,18.9,8.9,2.4 +19891108,16.9,15.8,20.0,12.2,3.1 +19891109,17.3,10.1,21.1,14.4,4.8 +19891110,11.9,-0.3,21.7,3.9,4.7 +19891111,12.5,3.1,22.8,2.8,3.0 +19891112,18.7,5.5,27.2,2.8,3.7 +19891113,15.3,7.2,27.2,6.7,2.0 +19891114,14.3,9.2,26.1,6.7,1.6 +19891115,15.2,14.6,21.7,8.3,1.9 +19891116,12.5,5.6,20.0,6.1,7.6 +19891117,2.6,-6.3,16.7,-4.4,2.7 +19891118,5.2,-4.5,15.0,-4.4,3.4 +19891119,5.7,-2.4,15.0,-0.6,1.7 +19891120,10.4,-0.3,21.7,0.0,6.0 +19891121,13.5,-0.1,21.7,3.9,5.4 +19891122,5.2,-5.1,17.2,1.7,4.4 +19891123,3.2,-2.3,6.7,0.0,5.1 +19891124,-0.5,-6.3,6.7,-6.7,1.9 +19891125,1.9,-3.3,11.7,-6.7,2.3 +19891126,12.6,8.2,19.4,8.9,3.7 +19891127,12.3,11.4,20.0,8.9,2.3 +19891128,14.7,12.6,21.7,10.6,3.8 +19891129,8.8,-0.8,21.7,5.0,4.5 +19891130,5.4,-8.5,14.4,-2.2,3.4 +19891201,9.3,-8.5,17.2,-2.2,2.9 +19891202,7.1,-3.8,17.2,0.6,3.5 +19891203,3.9,-10.5,15.6,-1.1,6.3 +19891204,0.2,-12.6,9.4,-6.7,4.2 +19891205,7.5,-9.8,16.7,-6.7,4.9 +19891206,11.3,1.1,20.0,0.0,5.5 +19891207,11.7,7.4,20.6,5.0,3.6 +19891208,3.7,2.5,15.0,1.1,7.1 +19891209,0.9,-0.7,5.0,0.0,6.6 +19891210,1.7,-0.2,3.9,0.0,2.5 +19891211,3.7,1.9,6.1,0.0,4.5 +19891212,5.2,4.4,6.7,2.2,4.1 +19891213,2.9,0.7,6.1,1.7,3.6 +19891214,0.3,-5.9,7.2,-5.0,3.1 +19891215,1.7,-4.1,7.8,-5.0,3.6 +19891216,-1.6,-13.9,7.2,-6.7,4.6 +19891217,-3.8,-14.4,1.1,-6.7,2.5 +19891218,-0.1,-10.8,3.3,-6.1,2.0 +19891219,-0.2,-4.1,3.9,-2.2,2.7 +19891220,0.8,-3.3,7.2,-5.0,2.0 +19891221,0.6,-4.8,8.9,-5.6,3.2 +19891222,-5.2,-16.9,0.0,-8.9,5.4 +19891223,-8.6,-21.5,-3.3,-12.2,5.3 +19891224,-6.3,-19.7,2.2,-12.2,2.6 +19891225,-2.8,-12.8,2.8,-11.7,4.1 +19891226,0.3,-6.8,9.4,-7.2,4.9 +19891227,-0.9,-6.7,10.0,-7.2,2.0 +19891228,5.1,-3.6,13.9,-6.7,2.9 +19891229,4.2,-3.3,14.4,-2.8,2.1 +19891230,9.3,6.4,14.4,7.2,2.6 +19891231,11.3,10.6,16.1,7.2,4.3 +19900101,8.6,1.3,16.1,2.2,5.0 +19900102,1.6,-5.9,11.7,-5.0,2.7 +19900103,6.2,-1.0,15.0,-5.0,3.2 +19900104,9.6,7.9,15.0,0.0,2.1 +19900105,11.9,11.1,14.4,8.3,3.4 +19900106,10.9,9.6,14.4,8.9,1.6 +19900107,7.6,1.6,13.9,6.1,3.1 +19900108,6.4,5.3,11.7,4.4,4.0 +19900109,5.6,1.7,13.9,-1.7,2.8 +19900110,9.3,0.7,17.2,-1.7,5.8 +19900111,8.3,-3.1,19.4,0.0,4.9 +19900112,9.2,-7.1,19.4,0.0,5.8 +19900113,1.6,-10.9,12.2,-5.0,4.2 +19900114,2.6,-8.3,11.7,-3.3,2.8 +19900115,8.2,-4.6,17.2,-2.8,5.0 +19900116,13.1,2.6,21.1,1.1,3.3 +19900117,12.6,6.8,21.1,5.6,2.9 +19900118,14.3,11.9,21.1,5.6,4.5 +19900119,12.0,8.4,20.0,9.4,3.5 +19900120,7.9,6.3,13.3,6.7,3.5 +19900121,12.4,9.3,16.1,6.7,4.8 +19900122,7.5,-0.2,16.1,-1.7,3.1 +19900123,8.8,-1.8,18.3,-1.7,2.7 +19900124,9.5,3.5,18.9,0.0,2.8 +19900125,9.4,9.3,12.8,7.8,3.3 +19900126,6.2,-3.4,12.8,0.6,4.6 +19900127,2.8,-5.7,12.2,-5.0,2.3 +19900128,5.8,-3.3,15.6,-5.0,1.9 +19900129,9.3,5.2,16.7,-3.3,2.4 +19900130,5.7,-1.2,16.1,-3.3,2.9 +19900131,7.7,-2.8,17.2,-3.3,2.4 +19900201,8.2,-1.4,18.3,-1.7,2.8 +19900202,14.0,10.5,18.9,11.7,2.8 +19900203,15.8,14.9,20.6,11.7,3.3 +19900204,18.3,13.9,21.7,11.7,5.7 +19900205,8.7,-2.3,22.2,1.1,4.0 +19900206,6.4,-3.6,15.6,-1.1,2.7 +19900207,12.6,6.8,17.8,9.4,3.8 +19900208,9.3,4.4,18.9,2.2,2.1 +19900209,9.7,8.3,17.8,2.2,1.7 +19900210,14.6,12.5,17.8,5.0,5.0 +19900211,8.4,1.2,17.8,0.0,3.1 +19900212,11.3,-2.3,17.8,0.0,3.7 +19900213,10.3,0.0,19.4,1.7,3.9 +19900214,13.2,4.9,21.7,1.7,4.3 +19900215,15.8,11.0,22.2,5.0,4.2 +19900216,17.4,14.3,22.8,10.6,3.9 +19900217,13.6,6.9,19.4,7.8,3.9 +19900218,5.4,-3.7,17.8,3.3,5.5 +19900219,8.4,5.5,17.8,3.3,3.4 +19900220,10.9,-3.1,17.8,4.4,4.4 +19900221,6.2,-5.9,15.6,-0.6,3.9 +19900222,10.5,5.1,15.6,7.8,3.8 +19900223,14.2,11.2,15.6,7.8,6.8 +19900224,7.9,-3.1,16.7,1.1,7.4 +19900225,2.2,-14.1,15.0,-3.3,5.1 +19900226,-0.5,-14.0,7.2,-5.6,3.7 +19900227,4.3,-6.8,17.2,-5.6,3.9 +19900228,12.2,3.4,19.4,7.2,3.1 +19900301,10.1,1.3,20.6,6.7,4.2 +19900302,6.9,3.9,12.8,5.6,2.8 +19900303,10.9,7.0,17.2,5.6,4.4 +19900304,9.6,-1.6,17.8,0.6,3.1 +19900305,10.2,3.4,17.8,0.6,2.6 +19900306,11.8,4.1,21.1,3.9,2.3 +19900307,9.1,2.4,13.3,5.0,5.3 +19900308,5.3,-2.8,12.2,3.3,3.4 +19900309,7.2,4.7,13.9,3.3,3.8 +19900310,14.8,11.3,24.4,3.9,2.4 +19900311,19.4,13.9,27.2,7.2,3.6 +19900312,20.5,12.3,28.3,12.2,4.2 +19900313,21.5,10.1,28.3,12.2,3.7 +19900314,19.4,11.3,28.9,12.8,3.3 +19900315,19.1,14.2,26.7,13.3,3.4 +19900316,19.2,17.2,23.9,15.0,3.0 +19900317,16.6,15.1,20.6,14.4,4.5 +19900318,12.9,3.2,20.6,3.3,2.7 +19900319,13.3,2.3,21.1,3.3,3.5 +19900320,6.3,-4.9,21.7,0.6,6.1 +19900321,6.1,-6.3,17.2,-3.9,3.3 +19900322,10.7,-1.2,20.6,-3.9,3.9 +19900323,15.3,3.4,24.4,0.6,3.0 +19900324,16.4,7.2,25.0,5.0,3.5 +19900325,13.7,6.4,25.0,6.1,3.8 +19900326,12.7,8.3,23.3,6.1,3.5 +19900327,10.1,3.0,16.1,3.9,3.3 +19900328,9.1,2.1,17.2,2.8,2.3 +19900329,9.0,6.7,17.2,2.8,5.0 +19900330,7.6,6.3,9.4,6.1,5.1 +19900331,12.2,10.3,20.6,6.1,2.8 +19900401,16.8,11.6,26.1,8.3,2.1 +19900402,18.3,10.8,26.7,8.3,3.5 +19900403,11.0,1.1,25.6,6.1,6.3 +19900404,9.3,-1.9,18.3,2.2,6.0 +19900405,14.7,0.9,23.3,2.2,4.9 +19900406,15.8,7.7,23.9,6.7,5.6 +19900407,8.9,-2.0,22.2,2.8,5.3 +19900408,7.7,-6.2,16.1,0.0,3.8 +19900409,9.7,-1.1,18.9,0.0,2.6 +19900410,14.8,8.1,20.6,1.7,4.3 +19900411,14.5,8.8,20.6,10.0,5.8 +19900412,7.9,-2.6,16.7,0.0,2.1 +19900413,8.9,-2.2,17.8,0.0,3.9 +19900414,13.2,5.1,21.7,1.1,2.8 +19900415,16.3,11.7,23.3,6.1,2.2 +19900416,16.4,6.5,24.4,8.3,2.9 +19900417,18.7,8.4,27.8,8.3,4.1 +19900418,12.8,0.6,27.8,6.7,6.3 +19900419,10.1,-1.5,18.9,1.7,3.4 +19900420,14.7,8.1,19.4,11.1,1.2 +19900421,16.5,13.3,21.1,10.6,4.0 +19900422,18.7,13.1,25.0,12.2,3.2 +19900423,19.1,12.3,26.1,10.0,2.1 +19900424,20.0,12.1,28.3,10.0,3.3 +19900425,20.9,10.4,29.4,12.2,3.4 +19900426,22.5,11.0,31.1,12.2,2.7 +19900427,21.1,9.8,31.1,10.6,3.0 +19900428,17.8,13.2,30.0,10.6,4.0 +19900429,15.1,13.0,20.6,12.8,2.9 +19900430,19.2,15.8,28.9,10.6,3.1 +19900501,23.4,17.9,30.6,10.6,3.1 +19900502,21.7,15.6,30.6,13.3,3.1 +19900503,19.6,16.8,29.4,13.3,4.1 +19900504,20.2,18.7,24.4,17.2,4.3 +19900505,21.3,16.8,26.1,17.8,6.0 +19900506,13.8,5.2,26.7,5.6,3.6 +19900507,14.6,5.7,22.2,5.6,3.2 +19900508,16.6,7.7,25.0,6.1,4.0 +19900509,16.6,13.7,25.6,6.7,2.4 +19900510,19.5,13.1,25.0,14.4,6.7 +19900511,14.2,4.0,25.0,3.9,2.7 +19900512,18.4,9.7,25.0,12.8,3.2 +19900513,20.6,15.2,26.1,11.7,5.4 +19900514,21.1,15.2,28.9,12.2,2.6 +19900515,21.8,15.7,29.4,12.2,2.5 +19900516,23.4,17.5,30.0,14.4,4.6 +19900517,23.7,17.8,29.4,17.2,5.0 +19900518,18.5,7.7,28.3,8.9,3.0 +19900519,19.3,8.4,27.2,8.9,2.5 +19900520,20.0,15.1,28.3,10.6,3.2 +19900521,21.8,17.8,29.4,13.3,4.5 +19900522,20.2,15.7,29.4,16.7,4.5 +19900523,15.2,10.4,23.9,7.8,2.7 +19900524,19.4,12.5,25.0,7.8,2.1 +19900525,20.4,14.1,26.7,13.3,3.0 +19900526,22.7,17.2,28.9,15.0,5.2 +19900527,24.2,18.1,31.1,17.8,3.7 +19900528,19.3,18.3,20.6,18.3,3.8 +19900529,18.4,14.7,23.9,13.9,3.4 +19900530,19.2,8.8,26.1,11.1,3.8 +19900531,19.8,13.0,26.7,11.1,2.7 +19900601,20.9,15.1,27.2,13.9,2.1 +19900602,20.4,17.9,27.2,13.9,2.2 +19900603,22.6,19.9,27.8,18.9,4.0 +19900604,24.0,16.0,29.4,16.7,5.4 +19900605,19.6,12.6,30.6,12.2,3.0 +19900606,20.9,15.3,29.4,12.2,2.7 +19900607,25.8,17.4,34.4,12.8,2.8 +19900608,27.8,19.9,35.0,18.9,3.0 +19900609,26.1,18.7,35.6,21.1,4.4 +19900610,24.0,19.2,33.9,18.9,2.9 +19900611,23.8,12.0,30.6,16.1,4.7 +19900612,21.8,11.6,29.4,14.4,3.8 +19900613,22.2,13.3,30.6,13.9,2.9 +19900614,25.4,16.5,33.3,13.9,3.5 +19900615,26.7,19.6,33.9,17.2,2.1 +19900616,23.6,20.3,33.3,21.1,4.3 +19900617,24.4,19.6,30.6,19.4,2.5 +19900618,25.3,19.2,33.9,17.2,2.3 +19900619,27.3,17.2,33.9,17.2,3.8 +19900620,25.9,12.9,33.9,17.2,3.4 +19900621,27.5,16.8,36.1,17.2,3.5 +19900622,27.1,20.2,36.1,20.0,3.9 +19900623,26.9,15.1,33.3,21.1,5.6 +19900624,23.8,11.2,31.1,14.4,3.0 +19900625,23.2,11.4,31.1,14.4,3.3 +19900626,22.7,14.8,31.1,15.6,2.1 +19900627,24.1,17.6,32.8,15.6,2.0 +19900628,23.8,18.7,32.8,17.8,1.8 +19900629,26.0,18.8,34.4,17.8,2.8 +19900630,27.6,18.6,35.6,19.4,1.9 +19900701,28.3,18.8,35.6,20.0,2.9 +19900702,26.6,16.0,35.6,19.4,3.1 +19900703,23.7,13.9,32.8,15.0,2.9 +19900704,25.0,16.2,33.3,15.0,2.9 +19900705,27.4,15.0,36.1,16.7,3.1 +19900706,27.2,17.8,36.1,17.2,2.6 +19900707,27.6,19.5,35.6,20.0,2.8 +19900708,27.7,20.2,35.6,21.1,3.4 +19900709,26.8,21.1,35.0,20.6,2.6 +19900710,28.1,20.4,36.1,20.6,3.9 +19900711,27.9,19.7,36.7,20.6,2.8 +19900712,25.8,20.4,37.2,20.6,5.2 +19900713,24.0,20.7,31.7,20.6,3.5 +19900714,22.2,21.6,23.9,20.6,3.9 +19900715,24.3,19.6,29.4,20.6,4.3 +19900716,24.4,16.4,30.6,17.2,2.6 +19900717,24.8,19.2,31.1,17.2,2.3 +19900718,23.9,19.8,31.1,19.4,2.2 +19900719,22.8,20.2,30.0,19.4,2.2 +19900720,23.0,21.2,29.4,19.4,2.6 +19900721,24.0,21.7,31.7,21.1,3.0 +19900722,24.2,21.2,31.7,20.0,2.8 +19900723,26.2,20.2,32.8,20.0,3.5 +19900724,26.0,19.1,32.8,20.0,2.9 +19900725,22.2,19.9,31.1,20.0,4.1 +19900726,23.9,18.4,30.0,18.9,3.7 +19900727,24.2,16.0,30.6,18.3,4.3 +19900728,25.0,19.1,30.0,18.3,4.8 +19900729,25.1,19.8,31.1,20.6,2.5 +19900730,26.6,19.8,33.3,19.4,1.9 +19900731,27.1,19.4,33.9,19.4,1.6 +19900801,25.6,18.3,34.4,19.4,2.8 +19900802,24.3,18.7,32.2,19.4,3.4 +19900803,24.7,19.2,30.6,18.9,3.0 +19900804,25.9,19.9,32.8,18.9,2.3 +19900805,27.0,20.7,33.3,19.4,4.7 +19900806,24.9,21.9,32.8,22.2,3.1 +19900807,24.8,19.4,31.7,18.9,2.3 +19900808,23.5,18.3,31.1,18.9,4.2 +19900809,24.2,19.2,30.0,18.9,4.3 +19900810,21.9,18.3,30.0,18.3,2.2 +19900811,23.1,16.6,31.1,15.6,1.2 +19900812,24.6,17.4,31.7,15.6,2.0 +19900813,25.2,18.8,32.2,18.3,2.4 +19900814,25.1,18.7,33.3,18.3,2.2 +19900815,26.0,20.6,33.3,18.3,1.6 +19900816,25.4,20.4,33.9,19.4,2.1 +19900817,25.5,19.4,32.8,20.0,3.9 +19900818,25.9,20.8,32.8,20.0,1.6 +19900819,26.9,20.5,35.0,20.6,1.2 +19900820,26.9,20.8,35.6,20.6,2.3 +19900821,25.2,21.8,36.1,21.1,2.2 +19900822,22.9,21.1,33.9,20.6,2.7 +19900823,23.7,20.9,30.0,19.4,2.4 +19900824,24.4,22.1,30.0,19.4,2.4 +19900825,25.1,22.4,30.0,21.1,2.4 +19900826,25.5,22.2,32.2,20.6,1.2 +19900827,27.0,22.4,32.8,20.6,0.9 +19900828,27.3,20.4,34.4,20.0,1.3 +19900829,26.6,20.4,35.0,20.0,2.8 +19900830,24.3,18.3,35.6,18.9,2.6 +19900831,22.5,19.3,30.6,18.9,4.3 +19900901,23.7,19.0,30.0,18.9,3.1 +19900902,24.8,20.2,32.2,18.3,1.2 +19900903,26.2,21.1,32.8,18.3,1.8 +19900904,24.1,19.2,32.2,20.6,3.1 +19900905,23.6,18.7,30.6,17.2,1.7 +19900906,26.3,20.0,33.3,17.2,2.0 +19900907,27.4,21.1,34.4,21.1,3.0 +19900908,26.6,21.7,35.0,21.7,2.6 +19900909,24.2,21.9,33.3,21.1,2.6 +19900910,24.9,20.9,31.7,20.6,1.9 +19900911,24.2,19.6,32.8,19.4,2.6 +19900912,24.1,20.9,31.7,19.4,2.3 +19900913,22.7,21.4,30.0,20.0,1.8 +19900914,22.1,21.4,25.6,21.1,3.3 +19900915,24.4,19.7,29.4,21.1,3.5 +19900916,20.2,14.6,30.0,12.8,1.6 +19900917,19.1,12.5,27.8,12.8,2.3 +19900918,16.8,10.2,26.1,10.6,3.5 +19900919,18.7,14.2,26.7,10.6,3.4 +19900920,23.9,20.2,31.1,13.3,2.6 +19900921,22.4,18.9,31.1,19.4,3.7 +19900922,21.9,20.2,28.3,19.4,2.9 +19900923,16.8,9.2,28.9,9.4,3.1 +19900924,13.2,4.5,22.2,5.6,3.0 +19900925,13.3,7.7,22.2,5.6,2.4 +19900926,16.7,10.2,27.2,5.6,2.3 +19900927,19.1,13.1,27.8,9.4,2.4 +19900928,18.6,14.3,28.3,11.7,2.2 +19900929,19.8,15.7,26.7,12.8,1.0 +19900930,18.9,15.3,26.7,13.9,1.2 +19901001,19.6,15.9,26.7,13.9,2.0 +19901002,19.1,13.6,26.7,11.7,2.2 +19901003,18.0,14.7,27.8,11.7,2.4 +19901004,21.4,19.7,25.6,12.8,4.6 +19901005,19.6,12.6,27.2,10.6,3.0 +19901006,17.0,11.1,27.2,8.9,1.6 +19901007,17.9,14.3,27.2,8.9,1.7 +19901008,22.5,18.7,28.9,11.1,1.9 +19901009,21.7,17.1,29.4,16.1,1.4 +19901010,20.1,18.5,28.3,16.1,3.5 +19901011,18.3,17.4,22.2,15.6,4.0 +19901012,19.2,18.8,21.7,15.6,5.4 +19901013,20.4,18.3,26.7,17.8,4.5 +19901014,19.8,15.7,26.7,14.4,2.2 +19901015,18.3,12.1,26.1,9.4,2.0 +19901016,17.5,11.1,26.7,9.4,3.2 +19901017,17.1,13.2,24.4,11.1,2.3 +19901018,20.5,17.2,25.0,11.1,5.7 +19901019,12.1,1.7,24.4,2.2,4.2 +19901020,10.5,4.7,19.4,2.2,3.1 +19901021,14.5,8.6,21.1,4.4,3.7 +19901022,16.2,15.0,21.1,11.7,3.5 +19901023,17.7,15.3,23.9,15.0,3.0 +19901024,15.4,11.5,23.9,10.0,2.0 +19901025,11.1,8.1,22.2,8.3,3.7 +19901026,9.6,0.1,14.4,5.6,6.1 +19901027,7.4,0.8,16.1,-0.6,2.0 +19901028,11.3,3.1,20.0,-0.6,3.4 +19901029,11.1,-1.3,20.6,2.8,3.0 +19901030,9.6,3.6,21.1,1.1,1.5 +19901031,13.2,5.2,26.1,1.1,1.8 +19901101,13.8,6.4,26.1,3.9,1.6 +19901102,13.8,6.7,25.6,5.0,1.5 +19901103,13.2,7.1,24.4,5.0,1.0 +19901104,13.7,9.6,24.4,5.0,1.7 +19901105,15.8,12.9,23.9,6.7,2.7 +19901106,12.9,6.1,24.4,7.2,3.2 +19901107,10.9,5.3,21.1,3.9,2.5 +19901108,10.3,0.6,20.0,3.9,4.3 +19901109,5.7,0.4,14.4,3.9,4.8 +19901110,9.3,6.5,14.4,3.9,5.7 +19901111,8.8,0.1,18.3,0.0,2.9 +19901112,12.0,4.2,22.2,0.0,1.7 +19901113,13.9,-0.9,22.8,2.8,4.1 +19901114,9.9,1.7,21.1,3.3,2.5 +19901115,9.6,3.4,19.4,1.7,2.6 +19901116,12.8,6.4,21.7,1.7,2.7 +19901117,13.0,3.1,21.7,5.0,5.4 +19901118,7.2,-2.2,16.1,-0.6,2.7 +19901119,8.3,0.1,19.4,-0.6,2.0 +19901120,11.6,4.7,21.1,-0.6,1.7 +19901121,11.2,6.4,21.7,3.9,1.9 +19901122,11.2,7.1,19.4,3.9,2.8 +19901123,15.8,10.6,21.7,3.9,4.8 +19901124,11.8,3.0,21.7,2.8,3.5 +19901125,14.3,3.2,22.8,2.8,4.5 +19901126,13.6,4.9,23.3,6.1,2.7 +19901127,14.9,11.1,23.9,6.1,2.9 +19901128,18.9,17.0,24.4,9.4,4.2 +19901129,13.4,6.8,25.0,7.2,4.6 +19901130,4.3,-6.8,16.1,-4.4,2.6 +19901201,4.6,-3.6,16.1,-4.4,2.6 +19901202,12.5,7.2,18.3,8.9,1.7 +19901203,14.5,13.3,18.3,8.9,3.5 +19901204,11.1,4.6,17.2,3.9,5.5 +19901205,3.3,-10.7,16.1,-4.4,3.1 +19901206,4.3,-4.9,15.0,-4.4,2.5 +19901207,5.5,-1.1,15.6,-4.4,2.7 +19901208,7.3,0.6,13.3,0.6,3.4 +19901209,7.3,-5.4,15.6,-1.7,2.8 +19901210,9.4,-2.3,20.0,-1.7,3.0 +19901211,10.7,-0.2,20.6,0.0,2.5 +19901212,7.9,2.3,17.2,1.7,2.6 +19901213,10.6,5.9,20.6,1.7,4.3 +19901214,10.3,7.9,21.1,6.1,3.4 +19901215,6.4,3.6,13.3,4.4,3.1 +19901216,11.9,9.8,17.2,4.4,3.4 +19901217,9.4,5.3,17.8,7.8,2.3 +19901218,12.1,10.1,20.0,7.8,3.5 +19901219,13.9,11.7,20.0,9.4,3.0 +19901220,8.2,6.1,16.7,4.4,5.2 +19901221,7.4,7.3,9.4,4.4,4.2 +19901222,10.8,10.8,13.9,6.7,2.4 +19901223,17.2,16.4,20.0,9.4,5.2 +19901224,9.1,3.6,20.0,0.6,6.2 +19901225,-1.3,-10.7,6.1,-6.7,1.9 +19901226,1.3,-5.5,7.2,-6.7,1.9 +19901227,1.4,-4.3,7.2,-2.8,4.8 +19901228,2.6,1.9,7.2,0.0,2.6 +19901229,6.3,6.2,8.9,0.6,2.5 +19901230,11.4,11.3,17.2,5.0,2.9 +19901231,14.4,9.3,19.4,7.8,3.7 +19910101,4.6,-0.9,7.8,0.6,3.8 +19910102,6.9,2.8,12.2,4.4,2.1 +19910103,5.1,4.5,8.9,1.7,1.8 +19910104,7.1,6.6,8.3,5.6,2.6 +19910105,6.4,4.8,7.8,5.0,2.4 +19910106,8.6,7.7,12.8,5.6,2.7 +19910107,11.6,11.4,14.4,6.7,3.0 +19910108,3.3,2.3,6.1,1.7,6.4 +19910109,4.1,3.0,6.1,2.8,2.8 +19910110,6.7,5.2,9.4,5.6,3.8 +19910111,5.3,4.6,7.8,4.4,6.4 +19910112,7.3,6.2,12.2,5.6,2.8 +19910113,4.4,-2.8,9.4,1.7,4.6 +19910114,1.6,-3.6,10.6,-4.4,2.4 +19910115,1.6,-2.3,7.2,-3.3,2.8 +19910116,9.8,6.9,16.7,5.6,5.7 +19910117,6.7,-0.9,13.3,-0.6,3.4 +19910118,6.5,-2.8,15.0,-1.7,2.6 +19910119,4.7,-0.9,6.7,1.7,2.0 +19910120,7.2,5.5,12.8,5.0,3.4 +19910121,4.8,-2.5,9.4,0.0,4.6 +19910122,-2.3,-10.2,3.3,-7.8,2.3 +19910123,-0.7,-8.3,8.3,-6.7,3.1 +19910124,2.0,-4.2,3.9,0.0,2.4 +19910125,2.4,-4.1,8.3,-2.8,2.2 +19910126,1.1,-4.9,9.4,-5.6,2.6 +19910127,4.1,-2.3,12.8,-3.9,3.4 +19910128,10.1,0.2,16.7,5.6,2.7 +19910129,8.2,6.8,12.8,5.6,2.3 +19910130,11.0,10.9,14.4,9.4,2.9 +19910131,9.4,0.2,15.0,5.0,6.9 +19910201,2.6,-11.9,11.1,-4.4,2.8 +19910202,4.3,-6.2,15.6,-3.3,2.3 +19910203,7.9,-0.3,19.4,-0.6,2.0 +19910204,10.9,1.3,21.7,2.8,2.4 +19910205,11.5,4.8,20.6,5.0,2.3 +19910206,13.3,11.5,15.6,11.7,2.3 +19910207,14.8,12.8,18.9,12.2,3.1 +19910208,9.7,1.9,13.9,6.1,4.4 +19910209,9.3,-4.9,21.7,-0.6,3.5 +19910210,11.4,-7.7,18.3,2.8,2.9 +19910211,8.5,-3.9,14.4,0.6,3.8 +19910212,6.8,-3.6,15.6,-1.7,2.8 +19910213,8.3,1.6,13.3,3.3,4.4 +19910214,11.0,4.9,13.9,7.8,7.0 +19910215,-0.1,-10.3,9.4,-5.6,6.7 +19910216,-6.7,-18.5,1.7,-11.7,4.0 +19910217,0.6,-11.0,7.8,-3.9,5.6 +19910218,4.5,2.2,9.4,2.2,1.7 +19910219,9.3,7.4,16.1,6.1,2.7 +19910220,14.3,13.7,17.8,11.7,3.4 +19910221,12.4,9.1,18.3,7.8,2.3 +19910222,12.3,10.3,14.4,10.6,1.6 +19910223,9.3,6.7,11.7,6.7,5.0 +19910224,6.8,-1.4,13.9,2.8,4.3 +19910225,10.2,3.9,17.8,5.6,3.0 +19910226,7.1,-0.7,13.9,3.3,4.0 +19910227,3.4,-6.3,11.7,-4.4,3.7 +19910228,7.4,-2.9,16.7,-1.7,3.4 +19910301,7.8,2.3,13.9,2.2,2.5 +19910302,14.9,12.6,18.9,10.6,5.3 +19910303,13.3,12.0,16.1,11.7,4.1 +19910304,8.9,2.8,13.9,3.9,6.0 +19910305,7.3,-2.8,17.8,-1.7,4.0 +19910306,10.9,5.1,15.0,7.2,4.2 +19910307,14.2,7.5,20.0,10.0,3.2 +19910308,7.7,2.6,14.4,2.8,4.0 +19910309,4.2,-0.6,13.9,-1.1,2.1 +19910310,5.6,-5.1,8.9,0.6,5.8 +19910311,6.7,-5.3,15.0,-0.6,4.3 +19910312,7.8,-2.5,14.4,2.8,3.0 +19910313,7.3,3.1,10.0,5.0,3.9 +19910314,9.8,6.9,14.4,7.8,2.9 +19910315,8.9,1.6,15.0,5.6,3.8 +19910316,8.3,0.3,15.6,3.9,3.0 +19910317,8.2,2.8,12.8,4.4,1.9 +19910318,12.1,7.9,21.1,7.8,4.2 +19910319,12.1,0.5,17.2,6.7,5.6 +19910320,11.8,-0.1,21.7,2.2,3.1 +19910321,16.2,5.1,22.8,11.1,5.5 +19910322,19.0,13.0,26.7,12.8,4.8 +19910323,20.7,12.2,24.4,17.2,6.2 +19910324,18.8,-0.2,26.1,12.2,5.7 +19910325,17.7,-1.7,25.0,8.3,3.2 +19910326,16.4,2.7,26.7,6.7,3.5 +19910327,18.7,9.8,23.3,12.8,5.8 +19910328,19.3,14.9,21.1,16.7,5.0 +19910329,13.4,12.7,16.1,12.2,3.4 +19910330,10.9,5.4,13.3,5.6,5.2 +19910331,7.8,-0.1,15.0,3.3,4.5 +19910401,11.1,1.8,22.2,2.8,3.7 +19910402,14.8,1.1,23.3,5.0,2.6 +19910403,14.9,1.0,20.0,10.0,4.1 +19910404,13.1,7.3,18.3,7.8,3.1 +19910405,14.4,12.4,18.3,12.2,2.2 +19910406,16.2,12.8,25.0,9.4,2.6 +19910407,18.8,12.4,27.2,11.1,2.4 +19910408,19.8,15.6,26.1,16.7,3.1 +19910409,20.1,17.2,26.1,16.7,4.9 +19910410,19.2,9.0,26.1,13.9,4.3 +19910411,15.7,3.6,22.8,8.9,3.4 +19910412,15.1,7.5,17.8,12.8,3.8 +19910413,12.0,9.2,13.9,10.6,4.7 +19910414,14.5,13.4,20.0,11.1,2.4 +19910415,16.9,14.4,25.6,11.7,4.8 +19910416,20.2,13.2,27.2,12.2,2.4 +19910417,19.5,11.8,28.9,11.7,2.0 +19910418,20.3,14.4,27.8,13.9,3.0 +19910419,16.2,14.4,22.8,12.2,3.7 +19910420,13.6,10.8,20.0,10.0,3.5 +19910421,12.7,6.9,16.7,10.0,4.2 +19910422,10.6,2.9,18.3,3.3,3.2 +19910423,14.1,6.9,21.1,8.3,3.0 +19910424,17.8,8.8,25.6,11.1,4.0 +19910425,14.2,3.7,20.6,6.7,2.7 +19910426,15.2,11.1,17.8,13.3,2.9 +19910427,16.7,16.0,19.4,15.0,3.0 +19910428,21.0,19.0,25.6,17.8,3.0 +19910429,21.4,19.1,28.3,16.7,2.4 +19910430,20.9,18.4,26.7,18.3,3.0 +19910501,21.6,16.6,27.8,15.6,3.9 +19910502,20.4,8.7,25.6,15.0,4.9 +19910503,17.9,7.5,28.3,8.3,2.4 +19910504,19.7,15.4,23.9,16.7,3.2 +19910505,19.2,17.9,22.8,17.8,2.4 +19910506,19.8,17.1,23.9,16.7,5.1 +19910507,18.2,8.6,25.0,10.0,3.7 +19910508,17.3,9.1,25.6,10.0,3.0 +19910509,17.7,13.7,21.1,15.6,3.4 +19910510,19.9,17.1,26.1,17.2,2.8 +19910511,22.1,18.4,26.7,17.8,2.0 +19910512,21.3,19.0,25.0,17.8,2.8 +19910513,22.1,19.3,27.2,19.4,2.6 +19910514,22.4,18.9,29.4,17.2,1.7 +19910515,23.9,19.3,30.6,18.3,2.4 +19910516,23.2,19.9,28.9,19.4,3.3 +19910517,23.7,19.6,31.1,18.9,2.3 +19910518,24.9,19.6,31.7,18.9,2.0 +19910519,18.4,17.2,25.6,12.8,4.8 +19910520,12.3,11.3,13.9,11.1,6.1 +19910521,15.6,14.1,21.1,13.3,5.5 +19910522,20.6,17.4,25.0,17.8,3.9 +19910523,22.6,19.1,27.2,18.9,1.9 +19910524,23.0,18.4,28.9,18.9,2.6 +19910525,23.3,19.9,28.9,18.9,2.1 +19910526,23.4,19.8,30.0,18.9,1.9 +19910527,24.6,22.0,29.4,22.2,3.2 +19910528,25.0,21.9,30.6,21.7,3.9 +19910529,25.7,22.2,31.7,21.1,2.0 +19910530,25.6,22.0,32.8,20.6,2.4 +19910531,26.6,21.6,33.9,21.7,2.3 +19910601,26.4,20.4,32.8,21.1,2.9 +19910602,24.3,20.3,31.1,19.4,3.2 +19910603,24.4,19.4,31.1,18.9,2.7 +19910604,26.1,19.3,31.7,20.0,2.8 +19910605,22.8,13.6,27.8,18.3,4.3 +19910606,19.7,11.6,25.0,13.9,3.9 +19910607,18.6,10.6,25.0,12.2,3.5 +19910608,19.4,11.8,26.7,12.8,1.8 +19910609,21.4,13.6,29.4,13.9,1.4 +19910610,22.1,14.4,30.0,14.4,1.6 +19910611,22.8,15.3,29.4,15.6,3.2 +19910612,23.8,17.3,26.7,20.0,3.4 +19910613,25.1,19.3,32.2,18.9,2.1 +19910614,24.9,21.1,30.6,20.6,2.4 +19910615,22.5,20.2,29.4,18.3,2.5 +19910616,24.9,20.9,31.1,20.6,2.3 +19910617,24.7,20.3,32.2,19.4,2.3 +19910618,24.3,20.6,29.4,20.6,3.0 +19910619,23.2,21.3,28.3,20.6,2.2 +19910620,23.9,21.9,28.3,21.7,3.0 +19910621,25.2,21.8,30.0,21.1,2.5 +19910622,24.7,20.2,31.1,20.6,3.2 +19910623,24.1,20.7,29.4,20.6,2.8 +19910624,21.0,17.7,23.9,18.3,4.4 +19910625,21.6,16.2,25.0,18.9,3.4 +19910626,19.6,16.3,21.7,17.2,4.7 +19910627,21.9,17.9,27.2,18.9,4.3 +19910628,24.6,19.4,30.6,18.9,2.7 +19910629,26.3,20.4,32.8,20.0,1.9 +19910630,27.4,21.7,33.3,21.1,2.5 +19910701,28.8,22.1,34.4,22.8,2.8 +19910702,27.9,22.8,33.9,23.9,2.4 +19910703,26.8,21.1,34.4,20.6,2.5 +19910704,26.3,21.4,32.8,21.7,2.9 +19910705,24.8,21.7,31.7,22.2,3.7 +19910706,25.6,20.1,32.2,20.0,2.3 +19910707,27.4,20.9,33.9,21.7,2.7 +19910708,26.8,22.0,30.6,22.8,3.0 +19910709,27.4,19.9,34.4,21.1,3.3 +19910710,27.1,20.4,34.4,20.0,2.1 +19910711,26.5,20.4,32.8,21.7,3.1 +19910712,27.8,20.6,34.4,21.7,2.3 +19910713,29.0,19.6,33.9,22.2,3.2 +19910714,27.5,18.3,33.9,21.1,2.3 +19910715,26.5,17.2,31.1,22.2,4.6 +19910716,23.9,20.5,27.8,21.7,3.2 +19910717,22.4,20.7,28.3,20.6,3.0 +19910718,22.7,20.8,27.2,20.6,2.8 +19910719,25.8,21.9,31.7,22.2,3.5 +19910720,26.7,22.6,32.8,22.8,3.4 +19910721,27.6,22.0,34.4,21.7,1.9 +19910722,28.5,21.3,34.4,22.2,2.0 +19910723,29.4,21.6,35.0,23.3,1.8 +19910724,29.1,21.1,35.0,22.8,2.6 +19910725,25.6,20.7,31.7,20.6,3.5 +19910726,26.4,21.1,32.2,21.1,2.9 +19910727,25.9,21.4,32.2,22.2,2.5 +19910728,22.1,20.9,23.9,20.6,4.0 +19910729,23.6,21.0,30.0,20.6,2.7 +19910730,23.5,20.8,28.3,20.0,3.6 +19910731,25.0,21.7,29.4,21.7,2.4 +19910801,24.1,21.9,27.8,22.2,2.7 +19910802,23.2,20.8,27.8,20.6,4.3 +19910803,26.6,20.9,33.9,21.1,1.9 +19910804,27.2,20.6,33.9,20.6,2.0 +19910805,27.8,20.8,32.8,22.8,2.9 +19910806,27.2,22.6,34.4,23.3,2.4 +19910807,25.9,21.9,32.8,21.1,2.3 +19910808,26.6,22.4,32.8,22.2,2.1 +19910809,25.6,22.3,31.7,22.8,3.2 +19910810,24.6,21.3,32.8,21.1,2.7 +19910811,24.3,20.0,29.4,20.6,2.6 +19910812,21.7,20.1,25.6,20.0,3.5 +19910813,22.0,18.9,26.1,19.4,2.8 +19910814,21.5,20.6,22.8,20.6,1.8 +19910815,21.2,18.4,28.3,17.2,2.1 +19910816,23.2,18.2,30.0,16.7,1.9 +19910817,23.5,18.5,30.0,17.8,1.6 +19910818,23.6,19.2,31.1,17.8,1.8 +19910819,24.8,19.2,31.1,20.0,2.8 +19910820,23.3,17.1,27.2,18.3,3.2 +19910821,21.1,14.4,27.8,13.3,2.0 +19910822,22.3,16.5,28.3,17.8,2.8 +19910823,22.1,16.9,29.4,16.7,2.7 +19910824,23.7,19.0,28.9,20.0,3.8 +19910825,22.4,21.2,25.6,21.1,4.0 +19910826,21.3,20.4,22.2,20.6,4.4 +19910827,23.7,20.4,30.0,20.6,2.8 +19910828,24.9,21.6,30.6,21.1,2.2 +19910829,25.4,22.1,30.6,22.2,2.4 +19910830,24.9,21.4,31.1,20.6,1.9 +19910831,25.2,20.2,32.2,19.4,2.4 +19910901,25.7,21.1,31.1,21.1,2.8 +19910902,21.6,16.3,25.0,18.9,5.5 +19910903,20.4,15.5,25.6,16.7,3.3 +19910904,21.3,16.7,28.9,15.6,2.1 +19910905,23.8,18.3,30.0,18.3,2.6 +19910906,23.7,19.7,31.1,18.3,1.9 +19910907,23.0,20.0,29.4,19.4,3.0 +19910908,23.7,19.4,28.3,20.6,3.0 +19910909,21.9,16.1,29.4,16.7,2.3 +19910910,21.1,14.8,29.4,13.9,1.6 +19910911,24.5,19.1,31.7,18.9,2.2 +19910912,25.4,19.4,32.2,20.0,2.2 +19910913,24.3,19.9,32.2,19.4,1.6 +19910914,26.2,21.0,33.9,20.6,2.0 +19910915,26.6,21.3,34.4,21.1,1.6 +19910916,26.4,20.8,34.4,20.6,1.9 +19910917,26.9,22.3,33.3,22.2,2.4 +19910918,24.2,21.7,27.8,21.1,2.6 +19910919,24.9,21.6,30.0,21.7,3.3 +19910920,18.6,10.9,22.8,15.0,5.2 +19910921,15.2,8.1,22.2,8.9,3.3 +19910922,14.8,8.5,22.8,8.9,3.0 +19910923,17.9,11.3,28.3,10.0,1.4 +19910924,19.4,15.7,25.6,15.6,2.3 +19910925,18.2,17.2,21.1,17.2,1.7 +19910926,18.1,11.6,23.9,10.6,2.4 +19910927,15.8,7.2,22.8,10.0,3.8 +19910928,14.9,7.0,23.9,7.8,2.5 +19910929,16.0,8.7,25.6,8.3,1.6 +19910930,17.9,11.7,27.8,11.1,1.9 +19911001,18.7,12.8,26.1,12.2,2.4 +19911002,18.8,15.6,22.8,16.1,3.7 +19911003,19.7,15.3,26.7,12.8,2.3 +19911004,20.7,15.7,27.8,14.4,2.5 +19911005,22.1,18.6,27.8,18.9,3.5 +19911006,17.1,9.7,23.3,11.7,4.2 +19911007,11.2,-2.1,18.9,5.6,4.0 +19911008,10.9,0.8,20.0,3.9,2.9 +19911009,11.9,4.6,22.2,4.4,2.0 +19911010,15.1,8.8,23.9,7.8,2.2 +19911011,15.6,8.6,23.9,7.8,2.4 +19911012,16.7,4.6,23.9,8.3,3.5 +19911013,14.2,3.0,21.7,7.8,3.1 +19911014,12.3,4.4,21.7,5.0,2.2 +19911015,13.8,11.2,17.2,10.6,2.5 +19911016,13.3,6.2,17.8,10.0,3.5 +19911017,11.2,0.2,22.2,3.3,2.2 +19911018,13.7,3.1,26.7,3.3,1.7 +19911019,16.5,6.5,28.9,6.7,2.2 +19911020,15.6,8.1,20.6,11.1,4.8 +19911021,11.1,7.1,16.1,7.8,2.4 +19911022,15.9,11.7,23.9,10.0,1.8 +19911023,17.3,13.6,23.9,12.8,1.4 +19911024,19.4,16.2,26.1,14.4,2.5 +19911025,19.0,14.8,25.6,14.4,2.8 +19911026,18.9,13.2,27.2,12.8,3.0 +19911027,20.0,13.8,27.2,14.4,2.0 +19911028,19.8,14.1,29.4,13.3,1.6 +19911029,17.4,8.1,21.7,12.2,5.2 +19911030,12.0,2.8,21.7,5.0,2.4 +19911031,17.5,6.1,26.7,11.1,2.1 +19911101,11.7,6.6,15.0,8.3,2.6 +19911102,13.1,8.5,18.9,8.9,3.1 +19911103,7.8,2.1,12.8,2.8,2.2 +19911104,4.7,-3.3,11.1,-1.7,2.7 +19911105,2.5,-7.7,9.4,-2.2,3.0 +19911106,3.3,-4.4,13.3,-5.0,1.5 +19911107,6.6,-3.0,17.2,-0.6,1.2 +19911108,8.1,-1.7,10.0,6.1,4.0 +19911109,5.1,-0.4,6.7,3.3,6.0 +19911110,5.4,3.8,8.3,3.9,3.4 +19911111,8.7,-3.7,15.6,5.0,5.6 +19911112,6.0,-4.6,13.9,-1.7,2.4 +19911113,8.2,-1.6,17.2,-0.6,2.9 +19911114,9.7,1.6,20.0,2.8,1.8 +19911115,12.4,4.6,22.2,4.4,2.4 +19911116,16.3,9.2,26.1,8.3,2.4 +19911117,14.0,10.1,17.2,10.0,3.1 +19911118,10.4,3.6,13.3,7.2,3.1 +19911119,12.2,7.5,17.2,8.9,2.9 +19911120,16.5,13.6,23.3,12.8,2.8 +19911121,19.7,16.8,23.3,17.2,4.1 +19911122,18.4,14.2,20.6,13.9,5.8 +19911123,11.6,6.1,20.6,5.0,2.7 +19911124,9.1,-1.5,12.2,4.4,5.7 +19911125,2.0,-7.7,10.0,-4.4,1.7 +19911126,1.5,-9.5,10.0,-5.6,1.7 +19911127,1.6,-7.7,10.0,-3.9,2.0 +19911128,5.2,-5.1,17.8,-2.2,1.4 +19911129,10.4,1.2,21.7,3.3,1.2 +19911130,16.0,13.5,22.2,12.2,2.2 +19911201,19.2,18.5,21.7,14.4,4.6 +19911202,21.0,18.7,22.8,19.4,6.3 +19911203,17.7,15.7,21.1,11.1,6.1 +19911204,4.9,-4.9,10.0,1.1,4.2 +19911205,0.8,-10.3,7.8,-4.4,2.8 +19911206,4.9,-5.5,14.4,-0.6,2.0 +19911207,7.3,-1.6,17.8,0.0,3.1 +19911208,9.9,1.2,20.6,2.2,2.1 +19911209,15.7,11.7,19.4,11.7,5.2 +19911210,13.6,4.8,17.2,7.2,3.8 +19911211,8.3,1.0,17.2,1.1,1.6 +19911212,8.7,5.1,13.9,3.9,0.8 +19911213,13.2,10.3,16.1,11.1,2.1 +19911214,15.9,10.7,20.6,11.7,4.4 +19911215,6.2,-11.7,13.3,0.0,5.5 +19911216,3.7,-14.4,8.9,-2.2,3.4 +19911217,4.6,-7.9,15.0,-1.1,5.2 +19911218,7.1,-6.1,13.3,-1.1,3.7 +19911219,0.6,-14.1,6.1,-6.1,4.8 +19911220,0.1,-16.2,8.9,-6.1,2.2 +19911221,7.3,-7.8,16.1,0.6,3.9 +19911222,8.7,4.3,17.8,2.2,1.1 +19911223,13.5,11.8,15.6,11.7,4.1 +19911224,10.2,5.8,15.0,6.7,4.2 +19911225,4.4,-3.2,12.8,-1.7,2.3 +19911226,3.9,-3.8,10.0,-0.6,3.3 +19911227,8.9,-0.2,13.9,6.1,4.5 +19911228,5.2,1.6,11.1,2.8,6.7 +19911229,7.7,5.5,15.0,4.4,3.2 +19911230,8.1,0.9,12.8,4.4,3.3 +19911231,4.7,0.4,6.7,1.7,3.9 +19920101,2.6,-2.2,7.2,-0.6,4.9 +19920102,8.4,4.2,13.9,4.4,5.2 +19920103,9.8,7.2,13.9,7.8,3.9 +19920104,11.6,7.6,16.7,9.4,3.8 +19920105,11.7,4.1,17.2,5.0,3.7 +19920106,9.3,2.2,15.0,6.1,2.9 +19920107,5.9,-2.3,15.0,-1.7,1.3 +19920108,5.8,-0.4,13.9,-1.1,1.1 +19920109,9.1,6.5,12.2,7.2,1.9 +19920110,8.4,4.4,11.7,5.0,4.3 +19920111,5.1,-7.0,13.3,-2.2,4.8 +19920112,6.1,-2.9,12.8,0.0,2.4 +19920113,8.6,4.6,9.4,6.7,1.7 +19920114,10.3,4.2,15.6,5.6,6.4 +19920115,1.4,-6.9,5.0,-1.7,3.0 +19920116,-0.3,-15.9,3.9,-6.1,4.9 +19920117,0.7,-15.7,10.6,-5.0,5.9 +19920118,3.3,-9.5,10.0,-3.9,2.7 +19920119,3.9,-10.2,7.2,-0.6,2.5 +19920120,1.9,-7.1,15.6,-5.6,2.3 +19920121,6.5,-4.8,17.2,-1.7,2.1 +19920122,7.6,-1.9,17.2,0.6,2.1 +19920123,10.2,4.2,15.0,6.1,4.3 +19920124,5.4,-4.4,10.0,0.6,5.7 +19920125,1.6,-8.9,12.2,-6.7,3.4 +19920126,8.1,-3.6,13.3,1.1,3.5 +19920127,4.9,-0.2,7.8,1.7,2.5 +19920128,8.2,5.2,13.9,5.6,1.5 +19920129,7.9,4.3,14.4,2.8,1.2 +19920130,9.1,4.9,15.0,4.4,2.2 +19920131,9.3,1.1,17.8,2.2,2.8 +19920201,7.4,-6.3,12.8,0.6,4.9 +19920202,4.9,-9.9,16.7,-3.9,2.4 +19920203,10.0,-8.1,20.0,2.2,2.1 +19920204,10.4,-3.6,21.7,1.1,1.9 +19920205,10.8,-1.9,13.3,7.2,3.9 +19920206,7.7,-8.7,12.8,3.3,7.0 +19920207,6.3,-7.9,15.0,-0.6,2.9 +19920208,4.5,-8.3,10.0,-2.8,3.4 +19920209,1.0,-10.7,9.4,-6.7,1.8 +19920210,1.5,-10.1,7.8,-2.8,4.2 +19920211,7.8,-5.8,16.7,1.7,1.9 +19920212,7.7,-1.3,16.1,1.1,2.4 +19920213,6.7,1.2,11.7,3.3,3.3 +19920214,8.4,6.5,15.0,5.0,3.2 +19920215,12.2,11.5,15.0,10.6,2.3 +19920216,14.4,9.7,18.9,11.7,4.4 +19920217,6.7,1.1,12.2,4.4,4.2 +19920218,5.4,5.1,7.2,4.4,3.7 +19920219,10.4,6.4,18.9,6.7,3.1 +19920220,9.0,-0.1,15.0,0.0,2.1 +19920221,7.9,0.6,18.9,0.6,2.5 +19920222,9.6,3.2,20.0,1.7,1.7 +19920223,12.6,11.6,15.0,11.7,2.9 +19920224,14.8,12.8,21.1,12.2,2.7 +19920225,12.5,11.9,15.6,10.0,3.6 +19920226,11.2,9.4,16.1,9.4,3.3 +19920227,7.6,0.9,15.0,0.6,2.8 +19920228,10.6,2.4,18.3,3.9,4.7 +19920229,14.1,0.3,17.8,10.0,5.4 +19920301,8.2,-3.7,18.3,-0.6,2.6 +19920302,13.1,0.1,25.6,3.9,2.4 +19920303,15.8,2.3,26.1,6.1,1.7 +19920304,16.7,5.9,25.6,12.2,3.1 +19920305,13.5,9.8,18.9,10.6,4.0 +19920306,13.9,13.7,15.6,13.3,3.1 +19920307,16.8,13.8,23.9,12.8,3.3 +19920308,16.9,8.8,23.9,10.0,3.3 +19920309,15.6,7.3,23.3,7.8,3.0 +19920310,16.7,11.7,19.4,13.9,4.7 +19920311,5.4,-3.7,16.1,-1.7,5.1 +19920312,3.6,-6.8,12.2,-2.2,3.2 +19920313,7.4,-2.4,11.1,0.0,3.7 +19920314,3.6,-4.3,15.0,-3.9,2.9 +19920315,8.2,-3.3,16.1,-1.1,4.7 +19920316,4.7,-8.6,12.2,0.0,5.0 +19920317,9.9,-3.6,21.7,1.7,5.1 +19920318,14.6,6.2,18.3,11.1,4.9 +19920319,13.0,11.7,17.8,11.1,4.6 +19920320,8.6,5.7,14.4,5.0,3.7 +19920321,8.1,-2.5,15.6,-1.1,3.5 +19920322,6.9,2.8,10.6,2.8,4.0 +19920323,9.4,4.4,11.1,6.1,4.9 +19920324,5.7,-3.6,13.3,-0.6,3.0 +19920325,4.4,1.1,8.3,0.0,2.9 +19920326,9.9,4.3,18.3,5.0,4.3 +19920327,11.6,0.9,15.6,6.1,4.9 +19920328,9.6,-2.6,17.2,4.4,5.1 +19920329,10.8,-1.8,17.2,3.9,2.4 +19920330,11.6,8.0,14.4,8.9,2.5 +19920331,13.0,6.4,19.4,8.9,4.3 +19920401,10.4,0.4,18.9,2.8,3.6 +19920402,7.0,-3.4,13.9,2.2,4.6 +19920403,4.8,-6.9,11.7,-1.7,4.8 +19920404,9.1,-2.9,20.0,0.0,5.2 +19920405,9.3,-2.3,16.1,0.6,4.0 +19920406,8.9,-0.4,17.2,2.2,2.4 +19920407,11.2,8.2,13.9,10.0,1.7 +19920408,14.4,9.4,24.4,6.7,2.3 +19920409,17.4,9.6,25.0,9.4,3.3 +19920410,19.1,11.8,27.2,10.6,3.9 +19920411,20.1,13.9,26.1,15.0,3.1 +19920412,18.6,14.9,27.8,11.7,2.9 +19920413,16.7,9.1,20.6,13.9,4.9 +19920414,14.2,5.6,24.4,4.4,3.0 +19920415,20.4,13.5,28.9,11.7,3.0 +19920416,20.1,14.5,28.9,13.3,3.7 +19920417,21.3,11.9,27.8,15.0,5.2 +19920418,20.4,12.8,27.2,13.3,3.6 +19920419,19.4,15.2,24.4,15.6,2.8 +19920420,19.2,17.6,21.7,17.8,4.0 +19920421,18.3,17.7,21.7,16.1,3.8 +19920422,18.3,11.5,25.6,11.7,3.4 +19920423,17.9,6.9,26.7,7.8,2.5 +19920424,19.1,10.9,28.3,10.0,3.5 +19920425,19.1,10.1,26.1,14.4,3.6 +19920426,11.9,1.2,15.6,8.9,4.8 +19920427,10.1,1.7,14.4,3.9,2.8 +19920428,10.5,2.2,15.6,6.1,3.5 +19920429,10.3,0.6,19.4,1.1,2.6 +19920430,15.4,6.8,22.2,10.0,3.4 +19920501,17.4,9.8,26.1,8.3,3.4 +19920502,20.6,12.3,28.9,11.7,4.7 +19920503,22.6,12.3,27.8,15.6,5.4 +19920504,19.3,1.2,23.9,14.4,5.1 +19920505,14.3,5.3,20.0,7.8,4.1 +19920506,9.1,7.7,11.1,7.8,4.5 +19920507,6.6,5.0,7.8,4.4,7.8 +19920508,7.8,6.7,9.4,7.2,4.0 +19920509,12.3,8.0,21.7,7.2,4.2 +19920510,18.1,10.2,27.2,9.4,2.2 +19920511,19.8,11.2,26.7,12.2,3.3 +19920512,19.8,13.4,26.7,12.8,2.7 +19920513,19.0,15.2,25.0,14.4,2.7 +19920514,18.9,14.4,26.7,12.2,2.4 +19920515,20.9,15.7,27.8,14.4,2.4 +19920516,21.4,15.4,27.2,13.9,2.2 +19920517,21.4,16.1,28.3,14.4,1.6 +19920518,21.7,17.4,28.9,16.7,2.3 +19920519,21.4,18.4,26.1,18.9,3.5 +19920520,18.5,13.6,22.2,15.6,5.5 +19920521,18.3,11.0,25.6,13.3,5.7 +19920522,18.7,5.4,27.8,10.6,3.5 +19920523,18.9,7.1,30.0,7.8,1.7 +19920524,21.9,10.3,30.6,12.2,2.9 +19920525,21.3,15.6,27.8,16.7,3.0 +19920526,17.7,14.8,22.8,14.4,3.8 +19920527,16.9,12.6,21.7,13.9,2.8 +19920528,15.5,11.9,21.1,12.8,2.8 +19920529,11.9,11.2,15.0,11.1,6.9 +19920530,13.8,12.6,19.4,11.1,4.9 +19920531,18.6,13.2,24.4,13.9,2.9 +19920601,17.8,10.0,21.7,12.2,3.9 +19920602,18.3,12.1,25.0,12.2,2.7 +19920603,17.9,14.7,22.8,13.9,2.8 +19920604,19.7,17.8,25.0,17.2,4.6 +19920605,20.8,15.4,26.7,15.6,3.6 +19920606,22.2,16.1,29.4,15.0,2.6 +19920607,24.2,18.0,30.0,17.8,3.5 +19920608,24.8,20.2,31.1,20.0,2.9 +19920609,22.2,21.3,24.4,20.6,4.1 +19920610,22.2,20.8,25.0,20.6,3.7 +19920611,19.4,18.1,21.1,18.3,4.7 +19920612,16.4,14.9,17.8,15.6,4.9 +19920613,18.1,15.9,20.6,15.6,3.4 +19920614,19.9,17.6,25.6,17.2,3.0 +19920615,22.6,19.4,28.3,18.9,1.9 +19920616,22.3,18.9,28.3,18.3,3.5 +19920617,22.6,18.8,25.0,20.0,3.1 +19920618,21.7,17.8,26.1,18.9,3.2 +19920619,24.4,18.6,30.6,19.4,2.8 +19920620,23.5,16.2,30.0,17.8,3.2 +19920621,22.6,16.4,27.2,17.2,2.8 +19920622,18.2,10.4,24.4,11.7,3.5 +19920623,20.4,14.9,26.7,15.6,3.6 +19920624,23.5,17.1,30.6,18.3,3.9 +19920625,25.1,17.6,31.7,18.3,3.9 +19920626,25.5,20.3,32.2,20.0,2.7 +19920627,24.4,19.3,29.4,20.0,2.6 +19920628,23.5,16.7,28.3,18.9,4.4 +19920629,23.8,20.5,28.9,20.6,2.8 +19920630,23.7,20.7,29.4,20.0,2.4 +19920701,23.4,20.8,28.3,20.6,4.4 +19920702,23.9,21.4,27.8,21.7,4.6 +19920703,24.6,21.9,31.7,21.1,2.9 +19920704,25.6,18.3,31.7,20.0,3.5 +19920705,24.0,14.9,31.1,15.6,3.1 +19920706,25.3,18.1,30.6,19.4,4.3 +19920707,24.8,19.0,31.1,18.9,2.9 +19920708,27.2,19.9,33.9,20.0,3.5 +19920709,28.3,18.4,35.6,19.4,4.3 +19920710,28.4,19.6,36.1,20.0,2.6 +19920711,28.9,19.4,35.0,21.7,3.1 +19920712,28.7,18.8,36.1,20.6,2.7 +19920713,29.1,19.1,36.7,22.2,4.4 +19920714,28.8,20.5,33.9,23.3,5.5 +19920715,26.6,19.9,31.1,22.2,6.9 +19920716,25.7,19.6,31.1,21.7,5.8 +19920717,25.4,20.4,30.0,22.2,6.2 +19920718,24.1,19.7,31.1,19.4,4.6 +19920719,24.6,19.3,32.2,18.9,2.5 +19920720,26.1,18.9,33.9,20.0,2.1 +19920721,26.0,19.7,33.3,19.4,2.6 +19920722,23.8,20.9,30.6,20.0,3.0 +19920723,23.9,21.3,29.4,21.1,3.7 +19920724,25.2,22.1,29.4,22.8,4.6 +19920725,26.0,21.8,33.3,21.7,3.1 +19920726,26.3,22.2,32.8,21.7,2.8 +19920727,26.9,21.8,32.8,22.8,5.0 +19920728,26.6,19.1,31.1,22.8,3.7 +19920729,25.4,17.4,32.2,20.0,3.1 +19920730,25.8,18.8,32.8,18.3,2.2 +19920731,26.6,20.3,32.2,21.7,5.2 +19920801,24.2,17.6,30.0,19.4,3.2 +19920802,22.9,17.6,29.4,18.3,3.4 +19920803,24.1,17.4,31.1,18.3,2.7 +19920804,23.9,17.5,32.2,17.2,2.0 +19920805,23.9,17.0,28.9,19.4,4.6 +19920806,21.6,17.8,25.0,19.4,4.6 +19920807,20.7,18.5,23.9,18.3,4.5 +19920808,23.3,19.7,30.6,20.0,3.4 +19920809,25.6,20.1,32.8,19.4,2.4 +19920810,26.5,19.0,33.9,18.3,2.6 +19920811,26.8,19.5,35.0,20.0,3.0 +19920812,25.5,19.4,32.8,20.6,2.7 +19920813,20.8,20.6,21.7,19.4,2.8 +19920814,20.6,17.8,25.6,17.8,4.6 +19920815,21.4,18.1,25.6,18.9,3.1 +19920816,21.7,17.8,26.1,17.8,3.2 +19920817,21.9,19.2,25.0,20.0,3.8 +19920818,22.4,18.6,28.9,18.3,2.6 +19920819,22.7,18.0,28.9,17.2,2.4 +19920820,22.2,19.3,28.3,18.3,2.8 +19920821,21.6,19.3,25.0,20.0,3.9 +19920822,21.2,19.7,23.3,20.0,3.7 +19920823,20.6,19.2,22.8,19.4,4.6 +19920824,22.8,19.7,27.2,20.0,4.0 +19920825,23.7,19.7,30.0,18.9,2.7 +19920826,24.7,20.4,30.6,20.0,2.4 +19920827,24.1,21.5,28.3,21.1,3.3 +19920828,23.9,19.2,28.3,20.6,6.7 +19920829,19.6,13.5,25.6,12.2,2.3 +19920830,20.1,14.8,28.3,13.9,2.2 +19920831,21.9,16.3,29.4,15.0,2.1 +19920901,23.1,17.9,30.0,16.7,2.0 +19920902,22.9,19.2,28.9,18.9,2.7 +19920903,23.9,20.3,28.9,21.7,4.5 +19920904,22.1,19.5,28.9,17.8,2.2 +19920905,21.8,20.7,26.7,20.0,2.4 +19920906,22.6,21.0,27.8,20.6,2.1 +19920907,22.3,19.8,28.3,17.8,2.3 +19920908,23.7,20.3,30.6,18.9,2.2 +19920909,24.0,20.3,30.6,18.9,2.9 +19920910,23.8,20.6,29.4,19.4,2.8 +19920911,22.3,19.0,28.9,17.2,3.1 +19920912,21.3,15.5,25.0,17.8,5.0 +19920913,19.7,15.4,25.0,16.1,3.5 +19920914,19.2,15.1,25.6,13.9,3.4 +19920915,19.2,14.3,26.7,13.9,4.0 +19920916,19.4,14.0,26.7,13.3,3.1 +19920917,21.0,15.9,29.4,15.0,2.3 +19920918,21.6,18.0,28.3,16.7,2.8 +19920919,23.3,20.4,27.8,19.4,3.3 +19920920,21.0,19.6,23.9,18.3,3.9 +19920921,21.5,19.6,27.2,18.9,4.2 +19920922,23.3,20.7,29.4,19.4,3.4 +19920923,20.8,19.3,24.4,18.3,4.5 +19920924,14.6,11.0,18.9,10.0,6.5 +19920925,14.9,10.8,20.0,11.7,6.1 +19920926,16.9,14.7,21.7,14.4,3.7 +19920927,18.5,18.3,20.6,17.2,2.9 +19920928,20.8,19.8,23.9,19.4,3.8 +19920929,19.7,14.3,24.4,13.3,4.9 +19920930,14.0,7.2,20.6,8.9,4.1 +19921001,12.6,7.2,19.4,7.2,3.0 +19921002,12.8,7.7,21.1,6.7,2.3 +19921003,13.6,9.5,22.2,7.2,1.6 +19921004,14.5,13.8,16.1,13.3,7.6 +19921005,14.0,11.8,15.6,13.3,7.8 +19921006,10.9,5.8,17.8,5.6,4.7 +19921007,11.4,7.3,20.0,5.6,4.0 +19921008,13.7,12.8,16.7,11.1,4.1 +19921009,19.7,16.0,24.4,16.7,4.9 +19921010,14.2,6.4,22.2,5.6,3.0 +19921011,15.3,9.2,20.6,11.7,4.1 +19921012,12.9,4.3,18.9,5.0,4.2 +19921013,13.9,8.1,24.4,5.6,2.4 +19921014,16.8,10.6,26.7,8.3,3.3 +19921015,17.3,12.9,25.0,11.7,3.2 +19921016,17.4,13.8,25.0,11.7,3.3 +19921017,15.2,10.2,19.4,10.0,3.9 +19921018,9.6,3.0,13.9,6.1,3.9 +19921019,7.9,-0.3,15.0,2.2,3.2 +19921020,6.2,-2.1,13.3,0.6,3.3 +19921021,13.5,5.1,22.8,7.8,3.7 +19921022,14.8,9.9,22.2,8.9,2.8 +19921023,12.8,8.7,19.4,7.8,2.8 +19921024,14.6,9.6,23.9,8.9,2.9 +19921025,17.2,7.3,22.2,12.8,3.7 +19921026,12.7,3.6,22.2,5.0,3.0 +19921027,13.3,7.5,22.2,5.0,2.3 +19921028,15.7,14.8,17.8,13.3,2.1 +19921029,15.4,13.4,22.2,10.6,2.4 +19921030,15.9,13.6,22.2,10.6,2.0 +19921031,17.3,13.9,22.8,10.0,3.4 +19921101,13.6,12.4,17.8,11.7,2.8 +19921102,16.1,15.3,19.4,13.3,5.4 +19921103,15.9,11.2,22.2,8.9,3.4 +19921104,14.2,12.9,17.2,12.8,2.5 +19921105,16.4,15.8,17.8,15.0,4.5 +19921106,7.2,2.4,13.9,1.1,2.9 +19921107,6.4,0.1,10.0,4.4,4.1 +19921108,5.1,0.0,11.1,0.0,2.7 +19921109,4.4,-1.1,11.7,-0.6,3.6 +19921110,5.7,-0.9,13.9,0.0,3.6 +19921111,11.5,4.4,16.1,8.9,3.1 +19921112,13.3,12.1,17.8,11.1,3.5 +19921113,12.5,2.4,19.4,5.6,5.7 +19921114,4.6,-3.9,12.2,-1.7,2.7 +19921115,6.3,-2.2,13.3,-0.6,3.4 +19921116,2.6,-5.7,8.9,-3.3,3.5 +19921117,4.2,-2.1,15.6,-2.2,2.2 +19921118,9.6,1.6,23.3,0.6,2.1 +19921119,11.8,3.1,21.7,3.9,2.3 +19921120,8.6,5.4,10.6,7.2,6.0 +19921121,8.7,8.2,11.7,6.7,6.2 +19921122,15.8,15.6,20.0,11.7,4.0 +19921123,15.5,10.9,20.0,10.0,6.1 +19921124,10.7,8.6,12.2,9.4,4.9 +19921125,10.6,9.7,12.2,10.0,4.1 +19921126,13.3,11.7,17.2,11.1,3.5 +19921127,8.1,5.1,12.8,3.3,3.0 +19921128,7.8,4.9,10.0,6.7,3.6 +19921129,6.2,3.0,12.2,0.0,2.1 +19921130,4.3,-1.1,12.8,-2.2,2.4 +19921201,7.2,-2.3,10.0,2.2,4.4 +19921202,4.8,-3.2,11.1,-0.6,4.4 +19921203,3.4,-6.3,11.7,-4.4,3.0 +19921204,6.4,-3.0,11.7,2.2,4.2 +19921205,5.6,-4.6,7.8,2.2,6.4 +19921206,-1.6,-11.8,2.8,-6.7,3.5 +19921207,3.6,0.2,11.7,-0.6,4.2 +19921208,3.4,-1.8,5.0,0.6,3.4 +19921209,-0.3,-5.2,3.9,-3.9,4.1 +19921210,1.8,-0.9,4.4,0.0,4.8 +19921211,4.4,-1.1,9.4,0.0,5.0 +19921212,6.3,-2.0,11.7,2.2,4.9 +19921213,3.3,-1.9,12.2,-2.8,2.2 +19921214,3.6,-0.5,8.3,0.0,3.7 +19921215,1.8,-0.3,4.4,-1.1,2.9 +19921216,4.5,2.7,7.2,3.3,3.0 +19921217,12.3,10.9,17.2,7.8,4.2 +19921218,7.3,1.2,13.3,0.6,3.2 +19921219,5.3,2.2,12.2,0.0,3.1 +19921220,9.9,9.2,13.9,8.3,2.5 +19921221,7.5,2.3,10.6,5.0,3.3 +19921222,6.1,5.4,10.0,3.9,2.7 +19921223,12.6,11.7,18.9,8.3,5.4 +19921224,8.4,-0.9,15.0,1.7,4.7 +19921225,-0.2,-10.0,5.6,-6.1,3.2 +19921226,5.8,-4.1,8.9,2.8,3.9 +19921227,1.0,-5.8,4.4,-0.6,5.5 +19921228,2.7,1.4,10.6,-0.6,4.2 +19921229,8.6,6.7,17.8,1.1,3.2 +19921230,9.1,7.8,17.2,4.4,2.8 +19921231,10.4,8.8,16.1,7.8,4.5 +19930101,12.9,5.2,20.0,7.8,4.4 +19930102,7.3,-3.2,12.2,3.3,4.7 +19930103,5.9,-2.1,8.9,4.4,4.1 +19930104,9.0,3.2,15.0,5.0,3.3 +19930105,15.4,13.2,20.0,11.7,3.5 +19930106,11.7,6.4,13.3,10.0,3.5 +19930107,9.4,8.4,10.6,8.9,3.0 +19930108,8.8,8.3,9.4,8.3,5.4 +19930109,6.7,5.3,8.9,5.0,7.5 +19930110,3.6,2.0,4.4,2.8,5.9 +19930111,3.8,2.6,5.6,3.3,4.9 +19930112,6.4,6.0,8.3,5.6,4.3 +19930113,10.3,6.3,17.2,7.8,4.9 +19930114,5.2,-3.3,11.1,-2.8,2.5 +19930115,4.1,-0.8,8.3,0.0,2.6 +19930116,6.1,2.8,10.6,3.3,3.3 +19930117,5.8,1.0,13.9,-1.7,3.2 +19930118,6.2,0.6,10.6,1.7,2.3 +19930119,5.2,1.8,7.8,1.7,4.7 +19930120,2.7,-2.2,6.7,1.1,5.8 +19930121,3.3,1.9,5.6,1.7,5.8 +19930122,8.3,4.0,17.8,4.4,5.0 +19930123,7.6,-3.7,16.7,0.0,3.4 +19930124,6.2,2.6,11.7,0.6,3.0 +19930125,3.5,-5.9,7.8,-2.2,5.4 +19930126,1.3,-9.6,5.0,-1.1,6.1 +19930127,3.2,-8.0,13.9,-5.0,4.2 +19930128,5.7,-5.6,15.6,-2.2,4.1 +19930129,10.3,-3.2,16.7,6.7,4.4 +19930130,4.8,-10.0,13.3,-3.3,4.6 +19930131,5.3,-7.2,18.9,-4.4,4.6 +19930201,11.2,-3.2,14.4,5.0,6.7 +19930202,3.9,-11.7,9.4,-3.9,4.1 +19930203,2.1,-12.7,12.2,-6.1,3.5 +19930204,6.7,-9.9,16.1,-1.1,4.1 +19930205,6.6,-9.7,13.9,0.6,3.7 +19930206,10.0,-0.4,17.8,5.6,2.6 +19930207,4.0,-1.1,8.9,0.6,5.9 +19930208,10.2,1.9,21.1,4.4,4.2 +19930209,5.9,4.0,14.4,2.8,3.6 +19930210,6.6,5.3,8.9,5.6,2.6 +19930211,8.1,6.7,12.2,3.9,3.1 +19930212,10.7,9.4,13.3,7.8,5.0 +19930213,8.5,3.3,13.9,4.4,4.6 +19930214,4.2,-1.9,9.4,-2.2,3.1 +19930215,1.4,-4.2,6.1,-3.3,3.3 +19930216,5.1,1.7,11.1,2.8,5.0 +19930217,5.2,-2.1,10.0,-1.1,4.1 +19930218,1.7,-6.5,5.6,-2.8,3.8 +19930219,-0.9,-17.6,5.6,-6.7,5.6 +19930220,3.8,-7.7,7.2,1.7,5.3 +19930221,5.8,4.6,13.3,4.4,3.3 +19930222,14.2,4.3,18.3,10.0,7.4 +19930223,6.4,-9.7,11.1,-1.7,5.4 +19930224,2.1,-11.1,8.9,-6.1,3.0 +19930225,0.2,-9.9,3.9,-1.7,3.9 +19930226,-0.3,-1.8,3.3,-1.7,5.2 +19930227,3.9,0.6,11.1,-1.1,2.4 +19930228,4.1,-5.2,10.6,-0.6,4.3 +19930301,4.1,-6.1,15.0,-4.4,2.9 +19930302,6.4,-1.0,10.0,1.7,3.1 +19930303,7.7,6.9,8.9,7.2,3.5 +19930304,9.9,6.3,13.3,7.8,7.8 +19930305,7.0,0.0,8.9,5.6,8.1 +19930306,4.3,-3.2,13.9,-3.3,3.3 +19930307,6.4,-2.9,15.0,-1.1,4.3 +19930308,10.2,1.6,19.4,2.2,6.7 +19930309,11.2,-2.9,18.9,1.7,3.7 +19930310,10.9,-0.2,22.8,1.1,5.5 +19930311,10.8,-4.1,19.4,3.3,5.1 +19930312,3.9,-4.4,7.2,-0.6,5.0 +19930313,0.3,-2.0,2.8,-2.2,10.3 +19930314,-3.1,-13.6,1.1,-6.7,6.7 +19930315,-2.7,-13.2,5.6,-11.1,3.3 +19930316,1.8,-7.2,7.2,-3.3,3.3 +19930317,6.9,3.5,13.3,3.3,4.2 +19930318,6.3,-2.6,10.0,0.6,6.0 +19930319,2.1,-11.5,8.9,-2.8,6.0 +19930320,4.8,-7.2,11.7,0.0,3.4 +19930321,11.4,1.0,20.0,6.1,2.9 +19930322,12.6,9.9,15.6,10.6,2.5 +19930323,14.1,13.4,16.7,12.2,4.6 +19930324,15.3,11.9,21.1,12.2,3.6 +19930325,14.4,9.1,20.6,8.9,4.4 +19930326,12.0,10.4,15.0,10.0,6.6 +19930327,9.8,8.9,11.7,8.9,5.9 +19930328,12.3,9.4,18.9,9.4,2.5 +19930329,13.8,6.6,22.8,6.1,2.6 +19930330,15.3,5.0,26.7,6.1,2.7 +19930331,15.9,8.3,20.0,11.7,3.4 +19930401,14.3,9.4,18.3,10.6,6.0 +19930402,9.6,2.2,14.4,5.6,5.4 +19930403,6.0,-3.1,16.7,-2.8,3.7 +19930404,10.2,-0.4,17.2,4.4,3.5 +19930405,8.6,5.2,13.3,3.9,6.7 +19930406,7.4,4.3,13.9,3.3,6.1 +19930407,11.9,3.9,18.3,8.3,3.8 +19930408,12.0,3.3,21.1,4.4,2.7 +19930409,12.1,6.7,16.1,6.7,3.5 +19930410,13.7,6.6,20.6,9.4,4.8 +19930411,14.1,2.6,25.0,5.0,4.4 +19930412,20.1,5.4,28.3,8.3,4.4 +19930413,17.9,2.9,25.0,8.9,3.2 +19930414,18.2,9.2,26.7,10.6,3.6 +19930415,18.1,12.7,22.2,12.2,4.9 +19930416,14.8,8.6,18.3,10.6,7.5 +19930417,11.9,-0.7,18.3,3.9,4.8 +19930418,12.2,-0.6,19.4,3.9,3.7 +19930419,13.2,3.1,21.7,4.4,4.6 +19930420,16.4,7.1,23.9,7.8,5.6 +19930421,16.9,8.8,20.6,13.9,6.1 +19930422,9.5,-4.5,15.0,5.6,7.8 +19930423,10.9,-2.7,20.6,1.1,4.4 +19930424,14.8,2.6,22.2,7.2,5.3 +19930425,16.8,8.1,24.4,9.4,6.0 +19930426,18.3,12.0,21.1,15.6,6.0 +19930427,12.4,0.2,21.1,2.2,4.3 +19930428,12.7,0.9,22.8,3.3,3.2 +19930429,15.4,3.7,25.0,5.6,3.1 +19930430,16.7,4.3,25.0,9.4,3.5 +19930501,19.1,8.8,25.6,12.2,3.0 +19930502,18.5,11.3,24.4,12.8,2.7 +19930503,18.6,13.6,21.7,13.9,3.5 +19930504,18.3,16.4,23.3,16.1,4.0 +19930505,21.4,17.1,27.2,17.8,3.1 +19930506,21.5,13.7,28.9,12.8,2.5 +19930507,21.4,15.2,28.3,16.1,2.9 +19930508,20.3,17.1,23.9,18.3,3.4 +19930509,20.6,15.0,27.2,13.9,2.9 +19930510,21.2,14.5,28.3,14.4,3.4 +19930511,21.3,14.8,28.3,15.0,3.4 +19930512,21.8,14.7,26.7,17.8,5.2 +19930513,19.1,14.9,23.9,13.9,4.6 +19930514,17.1,12.9,25.6,12.2,2.9 +19930515,19.4,12.8,26.1,12.2,3.9 +19930516,20.4,12.4,27.8,12.2,3.4 +19930517,21.6,14.7,28.3,13.9,2.8 +19930518,22.1,17.4,29.4,16.7,4.9 +19930519,20.0,16.8,26.1,16.7,3.6 +19930520,15.5,9.9,20.0,11.1,3.6 +19930521,11.2,6.8,17.8,5.0,2.4 +19930522,13.8,5.3,21.7,5.0,3.4 +19930523,15.2,7.4,23.9,6.7,3.1 +19930524,18.5,12.2,26.7,11.7,4.5 +19930525,20.5,15.6,25.6,16.7,3.9 +19930526,20.2,16.6,26.1,16.7,2.5 +19930527,20.7,13.8,27.2,16.1,3.5 +19930528,20.7,15.2,27.2,13.9,3.4 +19930529,22.9,16.4,30.6,18.3,3.6 +19930530,20.7,16.9,24.4,16.1,4.1 +19930531,20.1,18.1,25.6,17.8,3.1 +19930601,20.5,14.1,25.6,15.6,4.2 +19930602,19.1,11.4,26.1,12.2,4.1 +19930603,22.1,16.2,28.9,16.7,5.1 +19930604,24.7,18.2,30.6,18.3,5.1 +19930605,26.2,19.7,31.7,22.2,6.4 +19930606,20.7,12.8,27.8,11.7,2.6 +19930607,23.5,15.1,31.7,16.7,3.0 +19930608,27.2,19.2,33.9,21.1,4.3 +19930609,28.1,18.8,34.4,21.7,4.5 +19930610,27.6,17.4,34.4,19.4,3.6 +19930611,27.4,16.8,35.0,20.0,2.8 +19930612,25.6,18.8,31.7,19.4,4.1 +19930613,21.8,19.0,25.6,19.4,3.6 +19930614,20.3,17.1,25.6,17.2,4.5 +19930615,22.4,16.8,29.4,16.7,2.8 +19930616,24.2,18.6,30.0,19.4,2.8 +19930617,24.9,18.1,32.2,18.9,3.1 +19930618,26.0,18.3,32.8,19.4,3.5 +19930619,25.9,16.6,32.2,18.9,3.9 +19930620,24.9,15.8,31.7,18.3,3.7 +19930621,23.5,18.1,28.3,21.1,3.5 +19930622,24.4,18.2,32.2,18.3,3.8 +19930623,25.6,16.0,32.2,18.9,4.0 +19930624,25.7,17.7,31.7,20.0,3.9 +19930625,24.7,18.1,31.1,18.3,3.5 +19930626,23.5,19.6,30.6,18.3,2.9 +19930627,24.6,15.6,31.7,18.3,3.0 +19930628,25.7,14.7,33.3,19.4,2.8 +19930629,24.9,18.2,33.3,17.8,2.6 +19930630,24.6,18.9,32.8,18.3,2.3 +19930701,28.4,18.8,34.4,22.8,3.0 +19930702,27.9,20.8,35.0,21.7,3.3 +19930703,29.1,19.1,36.1,21.1,3.1 +19930704,29.8,18.8,37.2,21.7,2.9 +19930705,29.5,18.6,36.1,21.7,3.5 +19930706,29.4,17.6,36.7,21.7,3.3 +19930707,28.9,17.6,37.2,20.0,2.8 +19930708,28.8,19.1,36.1,22.2,3.0 +19930709,28.4,18.6,36.7,21.1,3.0 +19930710,28.9,18.6,36.7,21.1,2.2 +19930711,28.7,18.3,36.1,20.6,2.7 +19930712,29.1,17.4,36.7,20.6,3.0 +19930713,28.3,17.9,35.6,20.6,3.0 +19930714,29.1,17.9,35.6,22.8,4.5 +19930715,28.7,18.8,36.1,21.7,3.3 +19930716,26.4,20.4,33.9,21.1,2.8 +19930717,27.0,20.2,35.0,21.1,3.0 +19930718,28.3,21.4,35.0,22.2,2.8 +19930719,26.2,23.1,35.0,21.7,2.7 +19930720,28.3,21.6,35.0,22.8,2.5 +19930721,27.8,16.8,35.0,20.0,3.2 +19930722,28.6,19.6,35.6,22.2,2.3 +19930723,27.6,21.4,34.4,22.2,3.3 +19930724,26.7,22.4,33.3,21.7,2.6 +19930725,27.2,22.1,34.4,22.8,3.2 +19930726,25.8,21.9,32.8,20.0,3.2 +19930727,27.7,21.5,37.2,20.6,3.2 +19930728,29.3,20.3,37.8,21.7,2.7 +19930729,30.4,20.4,37.2,23.9,2.9 +19930730,27.6,13.8,34.4,21.7,4.6 +19930731,25.0,11.7,31.7,17.8,3.2 +19930801,25.2,13.3,33.9,16.7,2.6 +19930802,25.3,16.2,32.2,17.2,2.2 +19930803,24.8,20.4,32.8,20.6,4.1 +19930804,23.5,20.7,27.8,20.6,3.4 +19930805,25.2,19.1,30.6,18.9,2.9 +19930806,24.4,20.2,28.9,21.7,5.2 +19930807,22.7,20.2,26.1,20.0,3.5 +19930808,23.3,20.1,27.2,21.1,4.0 +19930809,22.9,18.5,29.4,18.3,3.7 +19930810,23.1,16.4,30.6,17.2,2.9 +19930811,23.3,16.7,31.7,16.7,2.4 +19930812,24.7,18.9,30.6,18.9,3.2 +19930813,23.7,21.6,26.7,20.6,2.1 +19930814,24.9,22.3,30.0,22.2,3.0 +19930815,26.5,20.3,32.8,20.6,3.2 +19930816,26.1,18.6,34.4,18.9,2.5 +19930817,27.3,20.3,36.7,20.0,2.8 +19930818,28.1,19.8,35.0,21.7,2.7 +19930819,27.2,19.8,33.9,21.1,3.0 +19930820,27.6,20.5,33.9,22.8,3.9 +19930821,24.6,20.7,32.8,19.4,2.7 +19930822,25.5,20.8,30.6,21.7,3.8 +19930823,25.3,20.9,30.6,22.2,2.9 +19930824,25.2,19.8,31.1,21.1,2.8 +19930825,25.8,19.6,32.8,20.0,2.0 +19930826,26.6,21.1,32.8,21.7,2.2 +19930827,25.9,20.6,33.3,20.6,2.7 +19930828,25.7,20.0,34.4,18.9,2.4 +19930829,26.8,19.3,34.4,20.0,2.4 +19930830,27.3,19.4,34.4,21.1,3.1 +19930831,26.4,20.8,35.0,20.6,2.6 +19930901,27.2,20.1,34.4,21.1,2.7 +19930902,25.7,21.6,30.6,22.2,3.0 +19930903,25.9,21.8,32.2,22.2,4.2 +19930904,23.8,22.2,27.8,22.2,3.9 +19930905,23.2,20.3,27.8,20.0,3.0 +19930906,23.6,19.6,30.0,18.9,2.5 +19930907,23.3,20.0,27.8,20.0,2.3 +19930908,21.7,17.9,30.0,15.6,1.9 +19930909,23.4,18.0,30.6,17.2,2.9 +19930910,23.8,16.9,28.3,18.3,3.9 +19930911,19.1,7.6,25.0,10.0,2.8 +19930912,17.8,10.8,27.8,10.0,2.7 +19930913,21.3,13.8,30.0,13.9,2.5 +19930914,22.8,16.3,31.1,16.1,3.0 +19930915,24.2,19.3,30.6,19.4,2.7 +19930916,24.1,20.3,30.6,20.0,2.6 +19930917,23.3,21.1,28.9,20.0,2.1 +19930918,24.6,19.2,31.1,20.0,2.4 +19930919,22.7,15.8,28.9,17.8,4.0 +19930920,20.1,18.3,23.9,18.3,4.0 +19930921,21.6,18.6,28.9,18.3,2.1 +19930922,20.7,13.9,28.3,12.2,1.4 +19930923,20.9,14.7,30.0,13.9,2.3 +19930924,22.8,16.4,30.0,16.7,2.3 +19930925,22.2,18.7,25.6,19.4,3.0 +19930926,22.8,18.2,30.0,16.7,4.0 +19930927,21.6,15.6,24.4,19.4,5.1 +19930928,13.9,5.0,23.3,5.0,2.6 +19930929,16.0,5.6,23.9,7.2,2.5 +19930930,14.1,1.1,18.9,9.4,3.9 +19931001,11.2,2.5,20.0,4.4,3.0 +19931002,14.4,6.2,26.1,5.0,2.8 +19931003,18.7,9.2,26.1,12.2,2.9 +19931004,16.8,6.2,26.7,8.3,3.4 +19931005,17.9,7.6,28.9,8.3,2.1 +19931006,17.1,12.1,21.1,12.8,4.3 +19931007,15.8,10.2,22.2,11.7,4.5 +19931008,19.9,11.1,26.7,16.1,3.2 +19931009,19.2,12.3,28.3,11.7,3.9 +19931010,20.4,13.6,25.0,14.4,3.9 +19931011,11.3,5.2,18.3,8.9,7.0 +19931012,11.5,6.1,20.0,6.1,2.8 +19931013,11.3,3.9,21.7,3.3,2.7 +19931014,14.0,7.8,21.1,10.0,2.6 +19931015,15.4,9.9,22.8,10.0,3.2 +19931016,15.7,11.9,18.3,13.3,4.3 +19931017,17.9,14.9,23.9,14.4,4.6 +19931018,19.3,15.2,27.8,12.8,3.1 +19931019,20.7,16.3,27.2,14.4,2.9 +19931020,21.4,17.6,27.2,16.7,3.3 +19931021,20.6,16.9,28.3,16.1,3.6 +19931022,12.2,8.6,18.3,9.4,3.8 +19931023,11.1,3.7,19.4,5.6,4.4 +19931024,11.3,1.6,19.4,5.0,3.4 +19931025,12.9,3.4,22.8,6.7,2.8 +19931026,16.1,7.1,21.7,12.2,3.8 +19931027,15.9,10.1,24.4,8.3,3.3 +19931028,13.9,1.8,19.4,7.2,3.6 +19931029,10.4,-2.3,15.6,4.4,3.9 +19931030,10.9,9.5,12.8,10.0,3.6 +19931031,7.1,3.0,12.8,3.9,3.1 +19931101,4.2,-4.7,10.6,-1.7,4.0 +19931102,3.6,-3.3,11.7,-2.8,2.2 +19931103,7.1,-0.1,13.3,1.7,3.4 +19931104,11.5,4.8,19.4,4.4,3.5 +19931105,15.4,14.4,18.9,12.8,4.0 +19931106,16.1,11.6,18.3,8.9,4.2 +19931107,3.9,-2.9,10.6,-2.8,2.0 +19931108,3.9,-1.8,13.3,-1.1,2.1 +19931109,5.3,-0.4,11.1,1.7,2.6 +19931110,9.3,1.5,17.2,2.8,2.0 +19931111,7.8,-0.6,17.2,-0.6,2.3 +19931112,8.9,-1.0,19.4,1.7,2.1 +19931113,12.6,5.6,21.1,6.1,1.7 +19931114,16.7,14.7,22.2,12.2,1.9 +19931115,19.7,16.7,26.1,16.1,3.4 +19931116,19.3,15.1,25.0,14.4,2.3 +19931117,19.8,16.9,22.8,16.7,4.5 +19931118,13.7,8.1,20.6,8.3,3.8 +19931119,11.4,8.0,13.9,8.9,3.4 +19931120,9.7,0.8,12.8,6.7,4.7 +19931121,4.9,-5.9,12.8,-0.6,2.9 +19931122,5.9,-3.4,17.8,-1.1,2.3 +19931123,9.0,0.4,18.9,2.2,2.8 +19931124,10.3,0.3,20.6,2.2,2.4 +19931125,11.9,1.0,17.8,7.8,4.9 +19931126,8.2,4.7,12.8,6.1,6.6 +19931127,8.3,6.9,12.2,6.7,5.8 +19931128,10.1,2.9,13.3,3.3,5.2 +19931129,4.7,-4.5,14.4,-3.3,1.9 +19931130,6.1,-2.1,13.3,1.1,3.7 +19931201,4.4,-2.9,9.4,0.0,4.4 +19931202,4.7,-2.4,11.7,0.0,3.4 +19931203,8.8,3.4,17.8,3.3,1.7 +19931204,11.7,9.7,14.4,10.6,1.2 +19931205,13.7,7.9,17.2,10.0,6.1 +19931206,7.4,1.3,17.2,0.0,3.0 +19931207,6.6,-1.7,11.7,0.0,2.9 +19931208,6.9,-0.1,16.7,1.7,1.7 +19931209,7.4,-0.4,16.1,1.1,2.4 +19931210,7.7,5.3,9.4,5.6,3.0 +19931211,5.5,-2.1,8.9,1.7,5.4 +19931212,2.8,-13.3,10.6,-1.1,5.6 +19931213,2.0,-9.7,9.4,-3.3,2.2 +19931214,3.7,-4.4,6.7,2.2,4.2 +19931215,5.2,2.7,10.6,2.8,4.4 +19931216,9.5,2.1,16.7,3.9,3.2 +19931217,5.4,2.0,10.0,2.2,3.0 +19931218,6.0,2.9,8.9,1.1,3.5 +19931219,5.8,0.8,11.7,0.0,3.1 +19931220,2.1,-0.4,5.0,0.0,3.1 +19931221,3.2,0.1,7.8,-0.6,3.4 +19931222,0.1,-4.7,3.9,-3.9,1.6 +19931223,2.1,-0.3,6.7,0.0,2.0 +19931224,1.1,-5.3,3.9,-1.1,2.8 +19931225,1.1,-4.8,6.7,-3.3,5.2 +19931226,0.6,-12.6,8.3,-5.6,6.4 +19931227,6.9,-4.1,16.1,0.6,5.7 +19931228,9.7,4.6,13.9,6.1,4.1 +19931229,3.1,2.8,10.6,0.0,3.8 +19931230,0.7,-10.6,4.4,-2.8,5.2 +19931231,-1.7,-9.8,8.3,-7.8,2.0 +19940101,-0.1,-7.1,8.3,-8.3,1.7 +19940102,4.8,-0.3,12.8,-6.1,2.3 +19940103,6.1,4.8,13.9,-3.3,5.0 +19940104,3.9,0.2,8.3,1.1,5.9 +19940105,2.4,-7.3,9.4,-3.9,4.5 +19940106,2.9,-3.2,10.6,-3.9,4.0 +19940107,9.1,5.8,14.4,6.1,2.8 +19940108,6.3,0.3,15.0,0.0,3.8 +19940109,-0.8,-13.8,10.0,-6.1,3.8 +19940110,-1.7,-10.5,5.6,-6.7,3.8 +19940111,0.9,-5.8,4.4,-6.7,3.8 +19940112,6.8,4.3,13.3,-0.6,3.7 +19940113,7.7,5.3,13.9,3.9,2.9 +19940114,5.1,-0.9,9.4,0.0,4.3 +19940115,-3.9,-17.3,8.3,-8.9,5.8 +19940116,-9.9,-20.2,-1.1,-14.4,3.9 +19940117,-5.0,-9.9,0.0,-14.4,3.2 +19940118,-0.4,-3.9,3.9,-7.2,3.8 +19940119,-10.4,-20.1,-4.4,-15.0,3.5 +19940120,-6.8,-14.7,0.0,-15.0,1.7 +19940121,-2.1,-9.3,3.9,-11.7,2.9 +19940122,0.9,-9.3,13.3,-8.3,1.7 +19940123,3.1,-3.6,13.3,-7.8,2.3 +19940124,9.4,0.9,18.3,4.4,2.9 +19940125,8.1,4.7,18.9,1.7,1.4 +19940126,10.7,7.4,15.0,1.7,2.8 +19940127,5.4,4.5,15.0,1.1,6.3 +19940128,5.6,4.3,13.9,1.1,5.3 +19940129,10.4,5.0,13.9,1.1,3.5 +19940130,5.6,2.8,13.3,3.3,3.8 +19940131,2.6,-1.0,6.7,1.1,3.2 +19940201,-0.2,-6.3,5.6,-6.7,2.4 +19940202,-1.2,-11.2,5.6,-7.8,2.9 +19940203,1.8,-9.9,10.6,-7.8,4.4 +19940204,4.1,-7.2,12.2,-4.4,3.4 +19940205,8.0,2.3,12.8,5.6,3.9 +19940206,8.9,6.9,13.3,2.2,3.1 +19940207,9.6,2.3,17.2,-1.1,3.1 +19940208,10.5,6.4,17.2,-1.1,4.4 +19940209,17.4,14.2,23.3,6.7,7.2 +19940210,9.7,7.4,24.4,0.6,4.5 +19940211,-0.6,-1.7,1.1,-1.7,5.6 +19940212,1.8,0.9,3.9,-1.7,2.4 +19940213,6.5,4.1,11.7,1.1,4.1 +19940214,4.7,-8.6,13.3,-4.4,4.4 +19940215,5.2,-6.6,13.3,-4.4,3.9 +19940216,8.6,-6.6,17.8,-2.2,2.5 +19940217,7.7,-6.0,18.3,-2.2,2.7 +19940218,11.0,-1.2,19.4,0.0,3.2 +19940219,11.7,4.1,20.6,3.9,3.5 +19940220,14.4,8.8,20.6,4.4,2.9 +19940221,13.3,10.7,21.1,7.8,2.2 +19940222,10.4,8.2,17.2,5.6,3.5 +19940223,10.6,9.6,15.0,5.6,4.5 +19940224,10.1,3.1,13.9,7.8,5.2 +19940225,5.9,-4.7,16.1,-3.3,3.5 +19940226,7.6,-8.2,16.7,-3.3,6.6 +19940227,2.2,-11.9,10.0,-4.4,4.6 +19940228,3.2,-10.1,11.1,-4.4,2.6 +19940301,6.5,-0.3,11.7,-3.9,3.8 +19940302,4.7,3.3,7.8,3.9,7.7 +19940303,7.8,0.1,13.3,3.9,6.2 +19940304,11.5,0.1,25.6,1.1,5.4 +19940305,16.7,1.2,26.1,1.1,4.0 +19940306,13.9,-0.8,23.9,6.7,3.8 +19940307,14.6,4.4,26.7,6.1,2.6 +19940308,18.2,7.7,26.7,6.1,5.2 +19940309,11.0,7.4,17.2,5.6,5.4 +19940310,7.4,4.2,13.9,3.9,4.6 +19940311,4.3,-7.7,14.4,-3.3,4.6 +19940312,5.3,-5.7,12.8,-3.3,3.0 +19940313,6.1,-0.9,15.6,-1.7,3.2 +19940314,11.4,1.7,17.8,-1.7,3.5 +19940315,13.5,0.9,24.4,2.8,5.4 +19940316,11.8,-7.6,25.0,0.6,5.7 +19940317,5.4,-11.8,15.0,-3.9,3.8 +19940318,12.1,-1.9,21.7,6.1,6.2 +19940319,16.0,-3.4,22.8,2.8,4.6 +19940320,16.3,-1.6,25.6,2.8,2.7 +19940321,17.5,7.6,25.6,5.6,3.2 +19940322,15.9,4.5,22.8,8.9,4.7 +19940323,14.1,1.7,24.4,3.3,3.5 +19940324,16.9,10.2,25.0,12.2,4.3 +19940325,16.1,13.3,21.7,11.7,3.2 +19940326,9.6,1.8,18.9,2.2,3.0 +19940327,16.5,12.3,25.6,2.2,5.4 +19940328,18.8,16.1,26.7,9.4,6.0 +19940329,11.3,4.3,14.4,7.2,4.8 +19940330,7.9,-1.0,16.1,-0.6,2.8 +19940331,11.2,2.4,16.7,7.8,3.7 +19940401,8.5,-2.1,17.8,-1.7,3.2 +19940402,12.0,-0.9,21.7,-1.7,2.9 +19940403,14.1,1.9,21.7,2.2,5.4 +19940404,13.2,4.4,22.2,4.4,3.0 +19940405,13.8,6.3,21.7,4.4,3.0 +19940406,15.2,12.6,21.1,6.7,3.9 +19940407,12.6,5.2,18.9,7.2,5.5 +19940408,9.3,-1.5,18.3,0.6,3.9 +19940409,11.6,5.2,18.9,0.6,2.8 +19940410,16.9,12.2,25.0,6.1,3.2 +19940411,21.0,15.9,27.8,10.6,2.6 +19940412,14.7,12.4,28.3,12.2,5.0 +19940413,19.1,13.1,25.0,12.2,6.9 +19940414,19.2,4.1,27.2,7.8,4.3 +19940415,16.8,11.2,27.8,7.8,2.6 +19940416,18.4,10.6,22.8,11.1,4.4 +19940417,15.7,2.2,24.4,5.6,3.7 +19940418,18.1,2.7,25.6,5.6,3.6 +19940419,18.6,6.8,27.2,6.7,4.2 +19940420,20.8,9.6,30.0,8.9,2.6 +19940421,21.2,5.0,30.6,10.0,3.2 +19940422,17.6,9.7,27.8,11.7,4.2 +19940423,13.8,3.4,21.1,7.8,5.0 +19940424,14.6,4.6,25.0,3.9,2.8 +19940425,19.2,10.6,27.8,3.9,3.9 +19940426,22.2,15.2,29.4,8.9,4.2 +19940427,21.5,16.2,29.4,15.0,4.2 +19940428,20.6,16.6,30.6,15.0,2.7 +19940429,22.3,17.3,28.9,15.0,3.2 +19940430,21.1,15.3,28.9,13.9,3.7 +19940501,21.9,13.8,28.3,13.9,4.6 +19940502,14.9,6.8,28.3,9.4,4.2 +19940503,11.4,7.7,21.1,7.8,4.3 +19940504,12.1,9.6,18.9,7.8,5.7 +19940505,15.2,8.5,21.1,9.4,3.9 +19940506,15.4,8.2,24.4,6.7,2.6 +19940507,19.3,12.3,26.1,6.7,5.2 +19940508,18.8,11.0,26.1,11.1,6.5 +19940509,14.9,7.3,22.8,7.2,3.3 +19940510,18.7,10.9,26.1,7.2,2.7 +19940511,19.2,9.7,26.1,12.2,3.7 +19940512,20.7,13.6,28.9,11.7,3.5 +19940513,17.9,7.4,28.9,11.7,3.3 +19940514,18.2,12.1,25.0,12.2,2.0 +19940515,21.3,16.8,27.8,12.8,4.0 +19940516,22.6,15.3,28.3,16.1,3.9 +19940517,20.3,6.6,28.3,15.0,6.0 +19940518,16.8,7.6,25.6,7.8,3.5 +19940519,14.7,3.6,24.4,7.8,5.1 +19940520,14.6,6.6,20.6,7.2,4.0 +19940521,15.6,8.8,21.7,7.2,3.3 +19940522,18.2,7.2,28.9,7.2,2.8 +19940523,23.1,10.1,31.7,7.2,2.5 +19940524,24.3,13.2,32.2,12.8,2.7 +19940525,23.6,14.2,32.2,15.0,3.5 +19940526,22.9,16.3,31.1,17.2,5.2 +19940527,21.0,13.0,28.9,15.0,4.1 +19940528,17.6,7.4,26.7,9.4,4.3 +19940529,20.1,13.3,27.2,9.4,2.9 +19940530,21.5,11.1,28.3,12.8,2.9 +19940531,21.6,14.2,28.3,12.8,3.8 +19940601,23.8,16.8,31.7,15.6,3.0 +19940602,24.4,17.1,33.3,16.7,2.1 +19940603,23.2,16.2,33.3,16.7,3.4 +19940604,23.3,18.9,30.6,18.3,2.8 +19940605,22.9,19.9,30.0,18.9,2.9 +19940606,22.6,20.5,30.0,18.9,3.5 +19940607,23.8,20.6,28.9,20.6,4.0 +19940608,24.8,20.2,30.0,20.0,4.1 +19940609,23.3,18.2,30.6,18.9,3.0 +19940610,21.8,19.5,26.7,18.9,3.2 +19940611,21.9,18.3,27.2,17.8,3.1 +19940612,23.6,19.8,30.0,17.8,2.2 +19940613,24.5,19.8,31.1,18.3,2.5 +19940614,24.8,20.0,31.1,18.3,2.8 +19940615,23.9,21.0,31.1,19.4,2.3 +19940616,25.1,20.8,32.2,19.4,2.0 +19940617,24.1,19.4,32.8,18.9,3.3 +19940618,24.9,19.6,31.1,18.3,3.1 +19940619,25.4,19.7,31.7,18.3,2.3 +19940620,26.2,19.4,32.8,18.9,1.8 +19940621,26.6,19.6,33.3,19.4,2.2 +19940622,27.1,21.1,33.3,19.4,2.2 +19940623,26.2,20.7,33.9,20.6,3.9 +19940624,25.2,20.9,32.2,20.6,7.2 +19940625,23.4,18.4,28.9,20.6,5.6 +19940626,22.6,18.4,28.3,18.9,5.4 +19940627,22.1,19.4,28.3,18.3,4.8 +19940628,23.4,19.7,30.0,16.7,2.9 +19940629,23.3,20.2,30.6,16.7,4.4 +19940630,23.9,18.4,30.6,19.4,3.0 +19940701,25.1,18.4,31.1,18.9,2.5 +19940702,25.4,19.3,31.7,18.9,1.7 +19940703,25.6,20.5,32.2,19.4,2.5 +19940704,24.8,20.9,31.1,20.6,2.6 +19940705,23.0,21.9,28.9,20.6,2.7 +19940706,24.5,21.4,30.0,21.7,2.5 +19940707,24.8,20.3,30.0,20.0,2.6 +19940708,24.5,21.2,30.0,20.0,4.3 +19940709,25.2,20.6,30.6,20.0,5.0 +19940710,24.5,20.9,30.6,20.0,3.8 +19940711,24.2,21.2,30.0,20.5,2.9 +19940712,24.1,21.3,30.0,20.6,3.0 +19940713,23.9,21.3,28.9,20.6,3.4 +19940714,24.8,21.7,29.4,20.6,4.7 +19940715,25.8,21.9,31.7,21.7,4.0 +19940716,25.0,21.2,31.7,21.7,3.0 +19940717,24.8,21.8,32.2,20.6,3.8 +19940718,24.6,21.3,30.6,20.6,2.1 +19940719,24.4,20.9,31.1,20.0,2.8 +19940720,23.3,20.3,30.6,20.0,3.5 +19940721,24.4,20.9,30.6,20.0,3.2 +19940722,22.9,21.6,31.1,20.0,3.2 +19940723,23.3,20.9,28.9,19.4,3.3 +19940724,23.6,20.0,31.1,18.9,2.9 +19940725,25.5,21.3,31.7,18.9,2.6 +19940726,24.4,20.8,31.1,20.0,5.2 +19940727,22.7,20.3,27.8,21.1,4.7 +19940728,22.9,19.5,27.8,18.9,3.2 +19940729,23.4,19.1,28.3,18.9,2.9 +19940730,22.9,17.5,28.9,17.2,1.9 +19940731,23.7,20.3,29.4,17.2,2.1 +19940801,22.5,20.0,28.9,19.4,2.0 +19940802,23.7,20.2,29.4,18.9,2.3 +19940803,23.8,19.6,30.0,18.9,1.5 +19940804,23.4,20.8,31.1,20.0,3.3 +19940805,24.8,21.2,29.4,20.0,4.2 +19940806,21.7,18.1,29.4,18.3,3.2 +19940807,21.9,17.8,26.7,18.3,2.4 +19940808,22.7,17.8,28.3,17.8,2.4 +19940809,23.7,19.4,30.0,17.8,1.5 +19940810,25.1,19.7,31.1,17.8,1.1 +19940811,25.4,19.7,31.7,19.4,1.5 +19940812,24.7,20.7,31.7,20.0,2.1 +19940813,24.1,20.5,31.7,19.4,2.2 +19940814,23.8,20.8,31.1,19.4,2.8 +19940815,23.5,21.6,30.0,20.0,2.5 +19940816,21.6,20.8,27.8,20.6,3.3 +19940817,22.7,20.4,27.8,20.0,6.5 +19940818,23.5,19.9,29.4,17.8,1.7 +19940819,23.7,20.4,30.0,17.8,3.4 +19940820,22.6,19.2,29.4,17.8,2.5 +19940821,22.4,20.4,29.4,17.8,4.3 +19940822,21.3,17.1,27.8,16.1,2.6 +19940823,22.0,16.9,28.3,16.1,2.6 +19940824,22.3,18.4,28.9,16.7,1.7 +19940825,23.2,18.0,29.4,17.2,1.9 +19940826,24.0,19.2,30.0,17.2,2.0 +19940827,24.3,20.3,30.0,18.3,2.5 +19940828,23.9,19.7,31.1,17.8,1.8 +19940829,25.0,19.4,31.1,17.8,2.8 +19940830,25.2,20.3,31.7,18.3,2.6 +19940831,24.3,21.2,31.1,20.6,3.0 +19940901,24.6,21.2,31.1,20.6,2.5 +19940902,19.3,18.7,21.7,16.7,4.5 +19940903,16.6,15.3,21.1,15.6,5.2 +19940904,17.2,13.3,22.8,12.8,2.8 +19940905,18.2,14.3,23.9,12.8,2.7 +19940906,20.3,17.9,24.4,14.4,3.8 +19940907,21.8,18.3,29.4,16.1,2.6 +19940908,21.3,15.8,29.4,16.1,3.2 +19940909,22.3,18.6,27.8,16.7,2.1 +19940910,22.4,18.1,27.8,16.7,2.5 +19940911,22.4,17.3,29.4,16.1,2.1 +19940912,22.2,15.7,30.0,16.1,2.8 +19940913,21.2,15.8,29.4,14.4,1.4 +19940914,23.2,17.0,30.0,14.4,1.9 +19940915,22.2,16.2,30.0,15.6,1.1 +19940916,22.2,18.2,30.6,15.6,2.0 +19940917,23.3,20.9,29.4,16.1,4.6 +19940918,22.0,19.3,28.3,17.8,4.8 +19940919,19.3,12.2,24.4,15.6,3.9 +19940920,17.1,11.2,25.0,11.1,3.5 +19940921,18.2,12.4,24.4,11.1,4.1 +19940922,17.7,11.8,25.0,11.1,3.5 +19940923,17.7,14.3,25.6,11.1,1.3 +19940924,19.1,17.3,25.0,12.8,3.4 +19940925,21.2,18.9,26.7,16.7,3.2 +19940926,19.8,14.4,26.7,15.6,4.4 +19940927,18.2,12.1,25.0,12.2,5.1 +19940928,17.4,9.8,25.6,8.3,3.4 +19940929,19.6,10.3,26.7,8.3,3.1 +19940930,17.8,10.1,27.2,9.4,2.5 +19941001,19.2,13.2,28.3,9.4,3.5 +19941002,19.9,16.7,28.3,12.8,1.8 +19941003,17.8,15.9,25.6,15.0,6.2 +19941004,15.1,9.2,20.0,11.1,3.0 +19941005,14.8,9.6,22.8,8.9,2.5 +19941006,16.3,10.7,23.3,8.9,3.2 +19941007,17.2,12.3,22.8,12.2,3.0 +19941008,15.1,11.3,22.2,10.0,3.2 +19941009,18.7,16.7,23.3,10.0,2.5 +19941010,15.6,12.8,23.3,10.6,4.6 +19941011,12.7,4.8,17.8,9.4,6.0 +19941012,9.8,5.2,17.2,8.9,7.3 +19941013,11.6,10.8,12.8,8.9,7.8 +19941014,14.6,13.4,16.7,11.1,6.0 +19941015,16.7,10.4,21.7,13.3,6.2 +19941016,14.1,6.6,22.2,8.9,4.4 +19941017,12.2,6.2,21.1,6.1,2.3 +19941018,11.7,4.9,21.7,3.9,1.9 +19941019,13.9,9.4,22.2,3.9,3.7 +19941020,17.8,14.8,25.0,8.9,3.3 +19941021,15.8,9.9,25.0,8.3,2.5 +19941022,14.7,12.7,24.4,8.3,1.6 +19941023,19.8,16.0,26.7,10.6,3.0 +19941024,15.8,8.9,26.7,10.0,3.2 +19941025,15.0,7.8,23.3,7.2,2.9 +19941026,13.6,5.2,23.9,7.2,3.7 +19941027,8.3,1.3,17.8,2.2,3.4 +19941028,7.2,1.8,15.6,1.1,2.7 +19941029,9.7,4.9,18.9,1.1,3.4 +19941030,17.1,13.6,21.7,12.8,3.8 +19941031,18.4,16.1,22.2,12.8,2.8 +19941101,16.1,9.5,22.8,11.7,5.8 +19941102,10.2,-2.7,21.1,0.6,2.8 +19941103,11.5,1.6,22.8,0.6,2.2 +19941104,14.1,5.7,23.3,2.8,3.1 +19941105,17.7,13.4,23.3,6.1,3.1 +19941106,18.1,15.3,23.9,13.9,4.2 +19941107,14.4,5.9,22.2,7.2,4.5 +19941108,11.4,1.9,20.6,2.8,2.6 +19941109,15.8,10.7,24.4,2.8,4.3 +19941110,15.8,14.0,25.0,9.4,4.7 +19941111,10.6,0.5,17.8,6.7,7.6 +19941112,10.3,-2.7,17.2,2.8,4.3 +19941113,9.8,0.9,22.2,0.6,2.1 +19941114,11.8,4.1,22.8,0.6,1.9 +19941115,12.9,4.3,23.3,2.2,2.6 +19941116,13.9,7.9,23.3,6.1,4.3 +19941117,13.1,8.3,20.6,10.0,7.4 +19941118,17.1,11.8,25.0,10.6,5.5 +19941119,16.1,5.6,25.6,8.3,3.3 +19941120,13.1,-1.6,24.4,7.2,4.2 +19941121,15.2,8.7,23.3,7.2,4.1 +19941122,14.7,4.6,23.3,10.6,4.6 +19941123,8.2,-8.6,20.0,3.9,4.7 +19941124,5.9,-9.6,11.7,-0.6,4.5 +19941125,6.3,-4.7,15.0,-0.6,4.6 +19941126,6.6,0.1,15.6,1.1,2.3 +19941127,5.7,4.8,7.2,3.3,4.8 +19941128,8.2,7.1,15.0,4.4,4.1 +19941129,5.8,3.2,15.0,1.1,3.2 +19941130,6.8,0.8,15.6,-0.6,1.8 +19941201,5.5,-4.1,15.6,-1.1,3.1 +19941202,4.9,-2.9,14.4,-2.8,1.6 +19941203,9.1,1.2,16.1,-2.8,1.7 +19941204,13.5,11.2,16.1,5.6,4.2 +19941205,17.9,16.3,21.7,12.8,4.6 +19941206,15.4,11.4,22.2,8.3,2.1 +19941207,14.8,10.5,23.3,8.3,4.1 +19941208,14.2,7.6,23.3,8.3,3.7 +19941209,10.2,3.9,18.3,8.3,3.3 +19941210,8.4,6.6,11.1,5.0,1.2 +19941211,6.8,0.8,11.1,2.2,4.8 +19941212,-0.2,-5.7,11.1,-4.4,3.7 +19941213,2.7,-4.5,5.6,-4.4,5.1 +19941214,6.2,1.4,8.3,1.7,5.6 +19941215,7.9,5.8,10.6,5.0,4.8 +19941216,6.2,3.2,11.1,3.9,4.2 +19941217,6.5,5.1,10.0,3.9,2.9 +19941218,7.4,3.2,15.0,1.1,3.3 +19941219,4.3,-3.7,15.6,-2.8,4.2 +19941220,2.7,-3.2,11.7,-3.3,2.8 +19941221,4.7,-1.6,11.7,-3.3,4.3 +19941222,7.9,4.6,10.0,-0.6,6.0 +19941223,9.8,4.3,13.3,6.1,6.0 +19941224,9.7,-1.4,14.4,6.7,5.9 +19941225,8.0,-2.0,15.0,5.0,4.6 +19941226,10.3,-2.7,16.7,5.0,3.1 +19941227,7.7,-3.4,17.2,0.6,2.7 +19941228,7.9,-0.6,20.0,-0.6,1.7 +19941229,10.6,-0.4,20.6,-0.6,2.7 +19941230,7.7,-4.2,14.4,5.6,5.9 +19941231,4.7,0.1,10.0,1.7,5.5 +19950101,8.3,6.8,15.6,5.6,3.9 +19950102,7.1,-1.7,11.7,0.6,4.3 +19950103,0.7,-9.6,5.6,-3.3,3.3 +19950104,0.3,-6.8,8.9,-5.6,2.4 +19950105,-2.6,-17.8,2.2,-8.3,4.5 +19950106,-3.9,-11.1,0.0,-7.2,2.5 +19950107,6.0,3.4,11.7,0.0,4.1 +19950108,2.4,-4.6,9.4,-3.3,2.9 +19950109,5.6,-2.7,13.9,0.6,2.6 +19950110,5.6,-1.2,13.3,-1.7,2.7 +19950111,6.8,2.7,12.2,2.2,2.1 +19950112,10.2,8.9,14.4,8.3,2.9 +19950113,11.8,10.1,20.0,6.7,2.5 +19950114,16.6,15.3,17.8,14.4,4.9 +19950115,14.1,12.9,17.2,12.2,4.0 +19950116,10.8,7.0,16.7,5.0,2.9 +19950117,8.2,2.6,18.3,0.6,2.6 +19950118,9.1,4.7,15.0,3.9,2.8 +19950119,7.5,6.2,11.1,5.0,3.7 +19950120,5.6,-1.4,11.7,2.8,7.6 +19950121,3.9,-4.7,11.1,-1.1,5.1 +19950122,2.6,-6.9,10.6,-4.4,4.3 +19950123,3.8,-3.4,7.8,1.7,3.9 +19950124,0.8,-7.4,7.2,-3.3,3.8 +19950125,2.5,-9.3,11.7,-4.4,4.1 +19950126,6.8,-4.4,12.2,0.6,3.4 +19950127,3.6,-5.6,10.6,-2.2,2.5 +19950128,6.7,3.6,8.9,4.4,3.0 +19950129,3.3,2.6,8.9,0.6,5.6 +19950130,1.1,-0.3,5.0,-0.6,3.9 +19950131,2.2,-3.1,9.4,-3.9,3.2 +19950201,4.4,-3.1,15.0,-3.3,4.8 +19950202,10.9,2.1,17.8,6.1,4.9 +19950203,7.4,3.1,13.9,2.8,2.7 +19950204,5.7,-1.7,8.3,2.2,5.5 +19950205,-1.1,-12.3,4.4,-6.7,3.8 +19950206,-3.5,-15.9,3.3,-10.0,4.7 +19950207,-0.8,-11.4,6.7,-7.8,4.0 +19950208,-2.8,-12.5,3.3,-6.1,5.7 +19950209,-5.1,-16.6,5.0,-11.7,4.1 +19950210,2.2,-6.5,4.4,-0.6,5.3 +19950211,5.8,3.0,11.1,3.3,3.0 +19950212,2.7,-9.6,7.2,-2.2,4.6 +19950213,-0.6,-13.6,3.9,-4.4,3.4 +19950214,3.8,-6.7,7.8,1.7,2.0 +19950215,3.8,0.6,6.1,2.2,3.8 +19950216,7.3,6.7,12.8,3.9,3.4 +19950217,10.2,9.4,14.4,7.2,5.0 +19950218,6.4,5.1,8.3,5.0,5.0 +19950219,7.9,5.0,12.2,5.6,3.0 +19950220,11.2,6.2,17.2,7.2,2.9 +19950221,7.9,-1.5,13.3,2.8,5.5 +19950222,5.4,-7.3,15.0,-1.1,5.1 +19950223,11.8,-1.6,22.2,5.6,6.5 +19950224,11.8,-3.4,17.2,7.8,6.5 +19950225,5.4,-8.4,13.9,-2.8,3.8 +19950226,11.2,-3.3,21.7,3.9,5.0 +19950227,12.6,7.3,17.2,9.4,2.8 +19950228,14.2,13.4,16.1,12.2,3.4 +19950301,13.3,11.6,15.0,12.2,4.1 +19950302,9.1,4.9,11.7,7.8,3.8 +19950303,7.2,4.7,8.9,5.0,2.7 +19950304,3.8,2.2,7.8,1.7,5.1 +19950305,4.6,3.4,6.1,3.9,4.5 +19950306,8.3,6.9,16.1,4.4,3.6 +19950307,14.7,12.3,21.7,11.1,2.4 +19950308,15.6,12.2,18.9,8.3,5.8 +19950309,3.2,-7.4,7.8,-0.6,6.7 +19950310,3.2,-8.3,13.3,-3.9,3.5 +19950311,7.8,-6.2,18.3,-0.6,3.6 +19950312,11.1,-2.4,21.7,1.1,3.0 +19950313,13.3,5.0,22.2,5.6,2.5 +19950314,13.7,6.7,22.2,6.1,2.3 +19950315,14.2,6.6,22.8,6.7,2.3 +19950316,15.3,7.5,23.9,8.9,2.6 +19950317,17.6,10.6,24.4,11.1,3.2 +19950318,16.6,3.6,22.8,10.6,4.1 +19950319,11.8,-0.5,19.4,2.2,2.6 +19950320,12.6,3.2,22.8,3.9,3.5 +19950321,16.5,6.1,22.8,10.0,6.1 +19950322,18.0,3.8,28.3,6.7,5.8 +19950323,22.6,11.8,31.7,16.1,5.7 +19950324,17.3,3.2,26.1,11.7,4.9 +19950325,13.2,-7.0,22.2,5.6,3.8 +19950326,13.8,-3.1,23.3,3.9,2.9 +19950327,15.7,9.6,19.4,11.1,3.4 +19950328,16.6,6.9,22.8,9.4,4.2 +19950329,13.2,2.1,19.4,6.7,3.5 +19950330,13.9,3.8,20.6,7.2,2.9 +19950331,12.7,-0.4,17.2,8.3,3.5 +19950401,11.0,-0.4,16.7,5.0,4.1 +19950402,11.3,-2.1,19.4,2.2,3.1 +19950403,12.1,-0.7,22.2,2.8,3.7 +19950404,14.8,4.2,22.2,7.8,4.7 +19950405,14.8,-3.6,20.0,6.1,4.0 +19950406,13.8,0.2,21.7,7.8,3.6 +19950407,16.3,5.1,27.2,7.8,3.2 +19950408,19.1,5.6,27.8,10.6,4.4 +19950409,20.1,7.7,28.3,11.7,5.4 +19950410,22.2,9.6,32.2,12.8,3.4 +19950411,15.7,11.4,26.7,12.2,5.3 +19950412,15.8,14.2,21.1,12.8,5.2 +19950413,16.8,9.2,25.6,10.0,4.0 +19950414,16.4,-0.4,23.9,10.0,5.2 +19950415,16.7,-1.6,25.0,8.3,4.4 +19950416,19.3,6.3,28.9,10.6,4.7 +19950417,20.6,7.9,27.2,14.4,4.3 +19950418,20.3,14.4,29.4,13.9,2.7 +19950419,24.0,15.1,30.6,17.8,5.3 +19950420,23.1,15.7,29.4,17.8,5.2 +19950421,21.4,15.6,25.6,17.2,4.9 +19950422,20.0,14.9,27.2,12.8,2.9 +19950423,14.6,13.3,20.6,7.8,4.6 +19950424,9.3,6.9,15.0,6.7,3.8 +19950425,11.4,1.8,21.7,1.7,3.4 +19950426,14.6,5.1,22.8,5.6,3.0 +19950427,16.1,8.4,22.8,8.9,3.1 +19950428,18.1,8.0,25.0,11.7,2.9 +19950429,16.6,6.3,25.0,9.4,3.8 +19950430,18.1,12.3,25.6,11.1,3.6 +19950501,18.2,13.7,22.8,12.8,3.2 +19950502,15.3,10.4,18.9,12.2,4.2 +19950503,13.5,5.6,21.1,6.1,3.0 +19950504,14.7,10.2,20.0,10.6,3.3 +19950505,17.6,12.2,24.4,12.2,4.3 +19950506,17.2,6.3,24.4,8.9,3.9 +19950507,17.8,7.8,25.6,11.1,2.8 +19950508,19.3,9.6,27.2,11.1,2.7 +19950509,19.3,14.1,23.9,16.1,3.0 +19950510,22.3,18.3,27.2,17.8,5.4 +19950511,23.1,17.2,28.3,18.3,5.8 +19950512,21.0,12.7,27.2,12.8,2.8 +19950513,20.1,13.1,26.1,14.4,3.4 +19950514,19.7,16.8,24.4,17.2,4.3 +19950515,22.3,18.9,31.7,17.8,3.0 +19950516,21.3,14.8,28.3,15.6,2.5 +19950517,23.2,17.8,30.0,17.2,4.4 +19950518,24.4,18.3,28.9,20.0,4.7 +19950519,24.2,17.3,27.2,18.3,6.1 +19950520,18.6,7.8,25.0,10.6,4.7 +19950521,18.6,10.1,27.2,10.6,1.1 +19950522,21.2,12.8,27.2,13.9,2.5 +19950523,22.1,14.2,27.8,15.6,2.3 +19950524,23.3,14.5,30.0,16.1,2.3 +19950525,24.2,15.9,31.7,17.8,2.1 +19950526,25.6,17.2,33.9,17.8,2.0 +19950527,24.3,18.8,28.3,20.0,4.7 +19950528,22.4,19.3,28.3,19.4,3.1 +19950529,22.6,18.7,29.4,18.3,3.6 +19950530,22.6,19.1,28.9,18.3,2.6 +19950531,20.8,14.1,25.0,18.3,3.8 +19950601,21.9,19.8,28.9,18.9,3.9 +19950602,22.5,20.7,27.2,18.9,3.4 +19950603,22.7,19.2,30.0,18.9,2.4 +19950604,24.5,19.1,30.6,19.4,2.8 +19950605,22.2,20.6,26.1,20.6,4.2 +19950606,22.3,19.2,29.4,19.4,6.2 +19950607,24.3,19.8,31.1,19.4,3.4 +19950608,27.2,20.2,35.0,20.0,3.1 +19950609,26.3,20.6,33.3,18.9,3.1 +19950610,23.0,19.4,33.9,17.8,2.6 +19950611,23.6,19.8,32.2,18.3,2.9 +19950612,22.6,19.3,27.8,19.4,4.3 +19950613,19.6,11.6,24.4,13.9,4.3 +19950614,19.6,9.9,27.8,11.7,3.0 +19950615,22.2,12.5,29.4,15.0,2.2 +19950616,22.3,14.0,28.3,16.1,3.2 +19950617,22.1,14.2,28.9,15.6,3.4 +19950618,22.6,13.0,28.3,16.7,4.5 +19950619,20.0,14.2,25.0,16.1,3.7 +19950620,20.3,16.3,27.2,16.1,3.9 +19950621,21.3,17.5,28.3,17.8,2.5 +19950622,21.7,17.9,29.4,17.8,2.8 +19950623,23.1,19.1,28.9,18.9,3.2 +19950624,24.2,20.4,29.4,19.4,2.6 +19950625,23.3,20.8,30.0,19.4,2.9 +19950626,24.1,20.6,31.7,18.9,2.5 +19950627,26.1,19.7,32.8,20.0,3.1 +19950628,24.4,20.4,30.0,20.0,2.6 +19950629,23.7,19.8,27.8,20.0,3.0 +19950630,23.7,20.9,30.6,20.6,2.4 +19950701,23.5,20.6,30.0,20.0,2.8 +19950702,23.9,19.8,30.6,18.9,2.2 +19950703,24.4,20.1,31.1,18.9,3.2 +19950704,25.8,20.7,32.8,20.6,2.7 +19950705,27.3,21.4,34.4,21.7,2.1 +19950706,26.7,21.7,33.3,21.7,3.1 +19950707,24.9,20.1,31.1,21.1,3.2 +19950708,26.0,16.8,32.8,20.0,3.6 +19950709,25.2,15.4,31.7,19.4,3.3 +19950710,25.9,18.8,33.9,20.0,2.7 +19950711,27.6,20.2,33.9,21.1,2.6 +19950712,27.5,20.8,34.4,21.1,2.8 +19950713,27.7,20.2,33.9,21.1,2.8 +19950714,27.7,19.2,35.0,20.6,2.5 +19950715,28.2,20.4,36.1,21.1,2.3 +19950716,28.3,21.6,35.6,22.2,2.5 +19950717,26.0,21.9,33.9,21.1,2.3 +19950718,28.2,21.7,34.4,22.8,2.5 +19950719,27.4,19.8,32.8,22.2,3.5 +19950720,26.6,21.9,32.8,22.8,2.7 +19950721,27.2,23.1,36.1,22.8,3.7 +19950722,27.7,22.3,35.0,22.8,2.4 +19950723,28.8,21.9,36.1,22.8,3.6 +19950724,29.8,21.1,37.8,22.2,3.5 +19950725,29.4,20.3,36.7,21.7,2.6 +19950726,28.4,20.9,36.1,22.2,3.9 +19950727,24.6,21.5,30.6,20.6,3.4 +19950728,25.8,21.6,32.2,22.2,3.4 +19950729,26.6,21.1,33.3,22.2,2.3 +19950730,27.3,20.1,34.4,20.6,2.7 +19950731,26.7,21.0,33.9,22.2,2.8 +19950801,26.0,20.2,33.3,21.7,3.5 +19950802,26.4,20.4,32.2,21.7,3.8 +19950803,24.9,21.7,28.3,23.3,4.1 +19950804,25.2,22.4,31.1,22.8,3.5 +19950805,25.8,22.3,31.7,22.2,4.0 +19950806,27.0,21.8,32.8,22.8,5.9 +19950807,26.4,21.9,29.4,24.4,3.4 +19950808,21.6,19.8,23.9,20.0,4.0 +19950809,23.0,18.2,27.8,20.0,3.9 +19950810,24.4,19.8,31.1,20.0,2.8 +19950811,25.4,21.2,32.8,21.1,2.3 +19950812,27.6,20.4,36.1,21.1,1.9 +19950813,29.2,21.5,36.1,22.8,2.1 +19950814,30.1,22.4,37.2,23.3,1.7 +19950815,30.2,22.2,37.8,23.3,2.7 +19950816,30.7,22.7,37.2,25.6,2.9 +19950817,30.5,22.8,37.2,25.0,2.5 +19950818,30.4,22.0,36.7,24.4,1.9 +19950819,26.6,21.7,31.7,21.7,3.2 +19950820,25.3,22.1,29.4,22.8,3.2 +19950821,23.9,21.8,27.8,22.2,2.4 +19950822,26.3,21.6,33.9,21.7,2.7 +19950823,26.2,19.5,30.0,22.8,4.8 +19950824,24.7,21.5,27.8,21.7,3.9 +19950825,25.1,21.4,30.6,21.7,4.1 +19950826,23.0,22.3,23.3,22.8,5.5 +19950827,22.7,22.2,23.3,22.2,5.9 +19950828,24.8,20.0,29.4,22.2,6.7 +19950829,25.2,19.1,32.2,20.0,3.0 +19950830,25.7,20.9,31.1,21.7,2.0 +19950831,25.7,20.8,30.6,21.7,3.6 +19950901,25.3,20.3,33.9,21.1,3.2 +19950902,22.5,16.7,27.8,18.9,3.5 +19950903,21.4,13.4,28.3,16.1,3.0 +19950904,21.1,13.7,28.9,14.4,2.4 +19950905,21.6,15.1,28.3,15.6,2.5 +19950906,22.0,15.6,28.3,16.7,2.8 +19950907,22.5,14.9,27.8,18.9,3.5 +19950908,23.6,17.8,30.0,17.8,1.6 +19950909,23.6,18.6,31.7,17.8,1.5 +19950910,24.0,19.3,30.6,18.3,1.9 +19950911,21.3,19.6,25.6,19.4,4.1 +19950912,19.9,16.7,25.6,17.8,4.0 +19950913,22.4,18.9,28.9,17.2,2.7 +19950914,22.9,21.1,27.8,20.0,2.8 +19950915,23.3,19.3,28.3,18.9,3.3 +19950916,20.1,17.7,23.9,18.3,4.2 +19950917,22.0,18.3,30.0,18.3,3.3 +19950918,21.6,16.1,26.7,16.1,2.9 +19950919,21.4,16.0,25.6,18.3,4.0 +19950920,21.1,15.9,27.2,16.7,2.8 +19950921,22.7,18.6,27.2,18.9,2.1 +19950922,22.7,20.6,26.1,20.6,2.4 +19950923,13.8,11.3,19.4,10.6,5.8 +19950924,11.3,8.5,14.4,8.9,5.5 +19950925,15.2,13.5,20.6,12.8,3.0 +19950926,20.1,17.2,25.6,17.2,3.8 +19950927,19.9,15.7,24.4,15.6,3.3 +19950928,19.3,14.0,25.0,15.0,3.4 +19950929,18.6,11.8,23.9,13.9,4.7 +19950930,17.7,13.1,22.2,14.4,5.0 +19951001,19.0,15.1,24.4,16.1,3.3 +19951002,20.6,16.4,28.9,14.4,1.9 +19951003,21.6,18.7,25.6,19.4,2.0 +19951004,18.6,17.6,21.1,17.2,5.4 +19951005,21.9,20.7,23.9,18.9,8.8 +19951006,21.7,18.9,27.8,18.3,5.2 +19951007,20.8,16.1,26.7,17.2,3.2 +19951008,17.1,11.2,23.3,11.7,3.1 +19951009,16.6,11.9,22.2,12.2,3.5 +19951010,17.6,11.7,24.4,11.7,3.4 +19951011,19.1,13.4,23.9,15.0,4.8 +19951012,19.8,14.6,26.1,15.6,5.1 +19951013,19.2,16.4,22.8,17.8,5.0 +19951014,19.6,19.3,22.2,18.9,2.5 +19951015,14.8,5.0,19.4,8.9,4.8 +19951016,13.2,3.8,21.7,5.6,2.5 +19951017,12.9,3.6,18.3,8.3,3.6 +19951018,12.6,6.4,20.6,6.1,3.0 +19951019,15.4,10.9,23.9,6.1,2.7 +19951020,16.2,12.8,22.8,11.1,3.1 +19951021,11.0,3.9,16.7,3.9,4.3 +19951022,10.8,3.6,20.0,2.8,2.3 +19951023,12.5,6.4,21.1,4.4,2.2 +19951024,17.3,13.8,23.3,13.3,2.8 +19951025,15.1,9.4,20.6,7.2,2.6 +19951026,13.4,7.8,21.1,6.7,2.1 +19951027,14.7,13.4,19.4,11.7,2.9 +19951028,15.0,9.8,18.9,11.1,6.0 +19951029,10.2,0.8,17.2,3.3,4.5 +19951030,9.9,2.4,16.1,3.9,2.4 +19951031,10.4,8.5,11.7,9.4,2.5 +19951101,13.7,12.6,18.3,10.6,4.1 +19951102,16.4,16.1,18.9,15.6,3.1 +19951103,18.1,17.4,20.0,17.2,5.1 +19951104,8.8,-2.4,17.8,3.9,5.5 +19951105,3.4,-4.2,6.1,-1.1,3.7 +19951106,5.5,0.8,12.8,-0.6,1.9 +19951107,9.5,8.8,12.8,8.3,2.9 +19951108,9.1,1.7,12.2,5.6,5.2 +19951109,3.3,-6.1,9.4,-2.2,3.1 +19951110,5.1,-0.8,13.3,-0.6,1.6 +19951111,11.3,8.1,17.2,8.3,5.0 +19951112,3.9,-5.9,12.2,-2.2,3.5 +19951113,4.7,-1.9,11.1,-0.6,2.0 +19951114,5.9,2.9,8.9,3.3,2.4 +19951115,2.8,-6.8,8.3,-2.2,3.9 +19951116,2.4,-4.6,11.7,-3.9,2.9 +19951117,4.7,-3.3,11.1,-0.6,3.0 +19951118,6.0,-1.6,13.3,1.1,3.1 +19951119,10.2,1.9,18.9,2.8,2.9 +19951120,9.6,3.1,14.4,6.7,3.2 +19951121,9.9,-0.4,16.1,5.6,3.2 +19951122,4.8,-8.8,11.1,-2.8,2.9 +19951123,6.8,-4.1,15.6,1.7,5.0 +19951124,8.9,5.2,12.8,6.1,4.2 +19951125,6.3,2.9,11.7,1.7,3.9 +19951126,8.9,3.0,18.9,1.1,3.7 +19951127,10.7,5.6,15.6,6.7,5.9 +19951128,15.7,12.6,21.7,12.2,4.9 +19951129,13.4,11.2,17.2,8.3,5.0 +19951130,6.9,1.4,10.0,2.2,3.3 +19951201,8.6,2.6,17.2,2.8,6.2 +19951202,12.2,1.6,19.4,6.7,3.5 +19951203,9.9,3.2,18.3,2.2,3.1 +19951204,14.1,5.6,20.0,10.6,4.0 +19951205,9.7,1.4,13.9,6.7,4.2 +19951206,8.6,5.7,15.6,3.9,2.2 +19951207,6.4,3.7,11.1,2.2,5.9 +19951208,1.8,-7.4,6.1,-2.2,2.9 +19951209,3.8,-0.1,10.0,0.6,3.5 +19951210,-1.6,-13.5,3.3,-6.7,4.8 +19951211,-2.1,-14.4,3.9,-6.1,2.9 +19951212,0.7,-8.9,6.7,-3.9,2.1 +19951213,6.2,-3.7,13.3,1.7,3.0 +19951214,8.3,3.1,15.0,4.4,2.5 +19951215,14.3,10.7,21.7,10.0,4.1 +19951216,14.8,10.7,18.9,11.7,4.6 +19951217,8.1,-0.2,13.3,1.1,2.9 +19951218,6.6,2.6,11.1,3.9,4.1 +19951219,5.4,4.9,9.4,3.9,4.2 +19951220,4.8,-1.9,9.4,2.2,6.3 +19951221,0.3,-10.2,4.4,-3.3,4.0 +19951222,-0.4,-7.1,5.0,-5.6,2.9 +19951223,-1.1,-7.1,3.9,-5.6,2.7 +19951224,-1.8,-10.6,3.9,-5.0,4.2 +19951225,-1.3,-8.7,5.6,-6.7,2.6 +19951226,-0.5,-9.3,3.3,-4.4,4.6 +19951227,0.0,-8.3,6.1,-5.0,3.3 +19951228,0.3,-8.4,5.0,-5.0,3.6 +19951229,0.4,-7.9,8.3,-5.0,2.3 +19951230,1.7,-4.6,10.6,-4.4,1.4 +19951231,6.8,4.3,8.3,5.6,1.4 +19960101,8.2,7.7,9.4,7.8,3.4 +19960102,8.3,7.8,9.4,6.7,4.2 +19960103,7.0,3.8,9.4,2.8,5.5 +19960104,1.1,-5.8,6.1,-3.9,3.1 +19960105,2.5,-4.5,9.4,-1.7,2.5 +19960106,3.1,-0.6,5.0,0.6,3.7 +19960107,-1.8,-3.2,0.0,-3.9,6.3 +19960108,-4.9,-10.4,0.0,-8.9,4.4 +19960109,-2.7,-7.0,4.4,-7.2,5.3 +19960110,2.8,-4.2,8.9,-1.7,3.4 +19960111,0.4,-7.6,2.2,-1.7,3.5 +19960112,0.1,-3.5,5.0,-2.8,4.8 +19960113,3.3,-3.4,10.6,-2.2,5.0 +19960114,5.8,-0.8,16.7,-1.7,2.8 +19960115,10.6,1.2,20.0,4.4,3.1 +19960116,6.8,2.1,11.7,4.4,4.9 +19960117,5.4,2.8,9.4,3.3,2.7 +19960118,10.6,9.8,16.7,7.2,4.0 +19960119,8.4,4.3,18.3,-0.6,9.3 +19960120,-2.6,-12.3,3.3,-6.7,3.8 +19960121,-0.4,-8.9,3.3,-2.8,3.4 +19960122,0.9,-4.3,8.3,-4.4,2.1 +19960123,4.1,-2.1,11.7,-1.7,3.0 +19960124,10.9,5.6,15.0,7.8,6.9 +19960125,2.5,-8.4,8.3,-2.2,3.9 +19960126,0.4,-5.6,3.3,-3.9,4.4 +19960127,8.1,1.6,11.7,2.2,6.8 +19960128,2.3,-14.2,7.2,-2.8,4.3 +19960129,2.0,-7.0,5.6,-0.6,2.3 +19960130,4.2,2.2,6.1,2.8,2.2 +19960131,8.3,5.7,11.7,6.1,3.8 +19960201,2.5,-4.9,7.2,0.6,4.4 +19960202,0.4,-0.5,0.6,0.0,4.8 +19960203,-1.2,-3.0,0.6,-2.8,4.5 +19960204,-5.9,-10.9,-2.8,-8.3,3.4 +19960205,-8.1,-13.8,-1.7,-12.8,2.8 +19960206,-2.4,-9.4,6.1,-8.3,2.5 +19960207,2.9,-4.9,11.1,-1.7,3.2 +19960208,8.1,-0.9,14.4,4.4,5.2 +19960209,13.9,5.6,18.9,9.4,5.5 +19960210,10.6,-0.4,21.1,1.7,3.3 +19960211,14.9,6.0,18.9,12.2,7.4 +19960212,4.1,-8.3,10.6,-1.1,5.1 +19960213,1.2,-8.3,8.9,-5.0,4.2 +19960214,7.8,-4.0,16.1,3.9,7.8 +19960215,10.4,-0.6,17.8,3.9,4.0 +19960216,3.6,-4.1,12.2,-0.6,5.5 +19960217,-0.3,-12.7,7.2,-6.7,5.2 +19960218,3.6,-8.8,11.1,-2.8,4.0 +19960219,5.3,-4.6,15.0,0.6,3.7 +19960220,10.4,8.3,13.9,7.8,3.3 +19960221,11.2,8.8,18.9,5.6,2.0 +19960222,14.0,10.3,21.7,8.9,2.3 +19960223,15.4,12.0,23.9,8.9,3.3 +19960224,16.0,4.9,20.6,13.3,6.0 +19960225,12.3,-3.8,22.8,3.3,3.0 +19960226,16.8,2.8,26.7,9.4,4.4 +19960227,19.6,12.0,27.2,13.9,4.4 +19960228,17.3,11.7,21.1,15.6,5.0 +19960229,8.8,-5.7,15.0,2.8,4.6 +19960301,5.6,-6.6,9.4,2.2,4.1 +19960302,7.6,-1.0,13.9,2.8,3.2 +19960303,8.8,-7.9,16.1,3.9,5.7 +19960304,6.2,-9.3,15.6,-0.6,2.8 +19960305,12.1,2.4,20.0,6.1,5.3 +19960306,14.8,11.9,17.8,12.8,4.6 +19960307,14.1,12.4,17.2,11.7,4.7 +19960308,-0.3,-10.2,8.9,-5.0,7.8 +19960309,-3.6,-15.4,4.4,-8.9,5.9 +19960310,-1.1,-12.4,4.4,-6.1,5.9 +19960311,2.3,-12.3,10.6,-2.8,7.0 +19960312,5.9,-13.2,15.0,-1.1,4.2 +19960313,8.5,-8.4,19.4,-1.1,3.2 +19960314,13.9,0.3,23.9,6.1,4.9 +19960315,15.7,10.9,21.7,12.2,6.4 +19960316,14.2,11.2,23.9,8.9,3.9 +19960317,15.4,13.6,20.0,13.3,3.7 +19960318,11.8,9.9,16.7,8.9,4.7 +19960319,9.2,6.2,11.7,6.1,8.0 +19960320,3.8,-4.9,8.9,0.6,9.5 +19960321,3.1,-5.9,10.6,-2.2,5.0 +19960322,4.3,-6.9,15.0,-3.3,3.3 +19960323,6.8,-10.7,16.7,-1.1,3.8 +19960324,11.6,-5.9,22.2,4.4,3.2 +19960325,11.4,6.3,16.7,7.8,3.7 +19960326,14.2,7.4,22.2,8.3,2.6 +19960327,10.6,-0.4,16.7,6.1,5.5 +19960328,4.6,3.3,6.1,3.3,7.5 +19960329,8.8,5.4,20.0,3.9,2.6 +19960330,12.9,8.9,17.2,11.1,3.4 +19960331,9.4,8.1,10.6,8.3,3.2 +19960401,10.8,9.1,15.0,9.4,2.5 +19960402,9.7,-1.6,19.4,2.2,3.1 +19960403,14.0,0.9,24.4,4.4,2.7 +19960404,18.9,4.3,24.4,13.9,5.0 +19960405,15.1,6.1,20.6,8.9,3.2 +19960406,8.4,3.5,15.0,6.1,3.7 +19960407,8.3,-1.5,14.4,4.4,3.0 +19960408,8.6,-3.4,15.0,5.5,3.0 +19960409,8.2,-0.6,11.7,4.4,3.7 +19960410,6.6,-6.4,13.9,1.1,3.2 +19960411,10.4,-2.6,21.7,-0.6,2.5 +19960412,17.1,3.3,26.1,8.3,3.9 +19960413,17.2,9.4,22.2,12.2,4.4 +19960414,17.6,11.3,26.1,9.4,2.0 +19960415,18.8,12.1,22.8,15.6,4.1 +19960416,14.0,3.7,20.0,7.8,4.6 +19960417,14.1,0.5,23.3,3.3,1.4 +19960418,17.1,4.6,25.0,7.8,3.2 +19960419,16.1,10.1,21.1,12.2,2.9 +19960420,16.4,15.9,22.2,14.4,2.6 +19960421,17.8,14.7,25.6,13.3,3.2 +19960422,20.3,15.3,26.7,15.0,2.3 +19960423,19.6,15.8,24.4,17.2,4.7 +19960424,13.1,1.5,20.0,5.6,2.9 +19960425,15.3,3.7,23.9,6.1,4.0 +19960426,17.2,10.6,22.2,11.6,4.4 +19960427,16.2,6.1,22.8,7.2,1.4 +19960428,17.7,6.4,25.6,11.1,3.2 +19960429,20.6,17.0,24.4,17.7,3.5 +19960430,17.2,12.1,20.6,12.2,4.6 +19960501,12.2,3.9,21.1,3.9,2.2 +19960502,17.8,7.5,25.6,9.4,2.3 +19960503,19.7,11.1,26.7,12.2,3.3 +19960504,21.9,15.4,28.9,15.0,3.3 +19960505,23.4,16.7,29.4,16.1,3.3 +19960506,23.3,17.1,28.3,19.4,3.4 +19960507,17.3,16.4,21.1,14.4,3.4 +19960508,18.2,15.4,27.2,13.3,3.3 +19960509,23.4,17.7,29.4,17.2,2.4 +19960510,23.2,16.2,29.4,17.2,2.5 +19960511,21.4,17.4,26.1,18.3,3.5 +19960512,17.3,8.4,21.7,11.1,3.0 +19960513,13.9,3.7,17.2,10.6,2.5 +19960514,13.6,6.7,17.8,9.4,3.9 +19960515,12.9,9.7,16.1,11.1,2.0 +19960516,18.1,14.4,27.8,12.2,2.5 +19960517,23.3,17.2,30.6,16.7,2.2 +19960518,25.7,17.7,33.3,17.2,2.0 +19960519,26.5,18.4,33.9,18.3,1.5 +19960520,25.9,18.3,33.3,18.3,1.5 +19960521,26.2,16.8,33.3,17.7,2.5 +19960522,25.6,16.2,29.4,20.0,3.0 +19960523,23.6,14.2,30.0,17.2,2.8 +19960524,25.4,20.0,32.2,21.1,2.4 +19960525,23.8,18.6,30.0,17.7,3.0 +19960526,21.2,18.8,26.7,18.3,3.1 +19960527,22.0,19.2,28.9,17.2,3.4 +19960528,22.0,19.0,26.7,18.3,2.6 +19960529,23.3,19.9,29.4,20.0,2.4 +19960530,19.4,14.7,26.1,16.6,4.1 +19960531,17.1,8.7,22.8,11.1,2.5 +19960601,16.8,10.1,22.8,10.6,1.4 +19960602,18.3,12.1,25.0,12.8,1.6 +19960603,20.1,14.9,26.1,16.7,1.9 +19960604,20.1,16.2,25.6,15.0,2.7 +19960605,20.2,14.4,27.2,13.3,1.2 +19960606,21.8,14.3,28.3,15.0,2.0 +19960607,22.4,17.4,28.9,14.4,2.1 +19960608,21.1,18.4,25.0,17.2,2.7 +19960609,21.6,18.6,27.2,18.8,3.5 +19960610,21.9,16.5,27.2,16.6,1.5 +19960611,21.9,16.6,27.2,16.7,2.1 +19960612,22.1,17.8,27.2,17.7,2.3 +19960613,22.6,18.4,28.9,17.2,2.3 +19960614,23.2,19.2,29.4,17.2,0.8 +19960615,23.8,18.9,30.6,17.2,2.1 +19960616,24.3,19.8,30.0,18.8,1.9 +19960617,25.1,20.4,29.4,20.0,1.6 +19960618,25.3,20.3,30.0,21.1,2.7 +19960619,25.1,20.8,30.6,21.1,1.6 +19960620,23.7,20.3,31.1,19.4,1.5 +19960621,26.1,21.1,32.2,20.6,0.5 +19960622,27.7,21.6,33.9,21.1,0.8 +19960623,28.7,20.8,35.6,22.2,1.3 +19960624,27.9,21.4,35.0,22.2,1.0 +19960625,27.4,20.6,32.2,22.2,1.5 +19960626,25.4,17.6,30.0,21.1,3.8 +19960627,23.7,16.9,26.7,19.4,2.9 +19960628,23.8,16.9,30.0,17.7,1.5 +19960629,25.1,17.9,32.2,17.8,1.3 +19960630,27.2,19.2,33.3,21.1,1.1 +19960701,28.8,19.6,35.0,21.7,1.3 +19960702,29.9,19.7,36.3,23.9,1.7 +19960703,27.3,17.3,33.3,21.1,2.3 +19960704,23.1,11.4,29.4,15.0,2.6 +19960705,22.1,13.8,27.2,18.3,3.2 +19960706,23.8,19.0,30.6,20.0,1.9 +19960707,26.4,19.1,33.9,20.0,2.2 +19960708,24.9,21.2,29.4,22.0,3.4 +19960709,25.3,21.3,32.2,21.7,1.6 +19960710,24.6,16.3,29.4,20.6,2.6 +19960711,22.8,15.7,27.2,18.9,4.8 +19960712,23.2,16.3,28.9,20.0,5.5 +19960713,25.4,18.6,31.7,20.0,2.5 +19960714,25.4,21.0,31.1,20.6,3.5 +19960715,23.9,22.2,28.9,22.0,4.8 +19960716,25.4,21.5,31.1,22.2,2.6 +19960717,27.1,21.6,33.3,22.0,1.8 +19960718,26.1,21.8,32.2,21.7,2.2 +19960719,28.2,20.3,33.3,22.8,3.1 +19960720,29.0,21.0,33.3,24.4,2.1 +19960721,25.9,20.9,31.1,22.8,1.3 +19960722,27.4,22.2,32.2,23.3,2.5 +19960723,28.0,22.2,32.8,23.3,1.0 +19960724,24.4,21.2,31.1,21.0,2.3 +19960725,23.2,20.8,30.0,18.0,2.0 +19960726,21.3,18.2,28.9,16.7,1.1 +19960727,22.8,18.1,27.8,17.8,1.3 +19960728,22.9,19.3,26.7,20.0,1.7 +19960729,23.3,18.6,29.4,17.8,2.2 +19960730,24.9,19.8,30.6,20.6,2.2 +19960731,23.7,20.3,27.8,20.6,1.3 +19960801,23.7,20.4,28.3,20.6,2.5 +19960802,23.8,18.4,29.4,18.9,1.1 +19960803,23.0,20.1,28.9,19.0,1.3 +19960804,24.1,20.3,29.4,19.4,2.7 +19960805,24.3,21.8,27.2,22.0,2.9 +19960806,24.2,20.8,28.9,21.0,1.6 +19960807,25.3,21.9,30.6,21.0,1.0 +19960808,23.5,20.6,27.8,21.0,2.4 +19960809,24.4,21.9,28.9,21.8,1.3 +19960810,23.8,21.3,28.3,20.6,1.7 +19960811,23.2,20.9,26.7,21.0,3.1 +19960812,22.2,21.5,25.0,20.6,2.6 +19960813,22.1,19.5,26.7,19.4,0.9 +19960814,22.2,18.6,27.8,18.9,1.9 +19960815,22.7,18.4,28.9,17.0,1.1 +19960816,24.0,19.7,30.0,18.9,0.7 +19960817,24.4,20.0,30.6,18.9,1.1 +19960818,24.1,19.9,31.1,19.0,0.6 +19960819,25.4,20.9,30.0,20.6,2.1 +19960820,25.2,20.7,30.0,20.6,2.7 +19960821,25.0,20.5,30.6,20.0,1.6 +19960822,25.3,20.6,31.1,19.4,1.4 +19960823,25.9,21.1,31.7,20.0,0.5 +19960824,24.9,20.5,31.1,19.4,0.9 +19960825,22.6,20.1,26.7,19.0,2.0 +19960826,23.6,20.8,28.9,20.6,1.4 +19960827,23.8,21.0,28.3,20.6,1.2 +19960828,23.4,21.1,28.3,20.6,1.4 +19960829,23.3,19.8,28.9,20.0,2.5 +19960830,23.6,19.8,27.2,19.0,2.0 +19960831,22.6,19.3,25.0,20.0,2.6 +19960901,22.0,17.1,25.6,17.8,2.8 +19960902,20.8,18.4,22.8,19.4,2.6 +19960903,21.6,19.9,26.7,19.0,2.5 +19960904,22.7,20.2,28.3,18.0,2.6 +19960905,22.9,20.9,26.1,20.6,3.8 +19960906,25.3,18.9,31.1,21.1,2.5 +19960907,24.7,19.9,30.6,18.9,0.7 +19960908,23.8,19.8,30.0,18.9,0.9 +19960909,24.4,20.2,30.6,19.0,1.2 +19960910,23.0,20.7,26.7,20.0,0.9 +19960911,23.1,19.9,27.2,19.0,2.3 +19960912,22.2,18.3,27.8,17.8,1.9 +19960913,20.8,15.4,24.4,16.7,1.9 +19960914,16.8,10.3,23.9,10.0,1.2 +19960915,17.3,11.4,26.1,10.0,1.1 +19960916,19.3,17.5,23.0,17.0,2.1 +19960917,22.4,19.3,28.3,19.0,2.9 +19960918,19.1,12.5,23.9,14.4,2.6 +19960919,17.4,11.1,24.4,10.6,1.3 +19960920,17.8,12.6,24.4,11.1,1.0 +19960921,17.8,14.3,22.8,13.9,1.8 +19960922,19.2,14.2,25.6,13.9,1.6 +19960923,19.3,13.8,27.2,13.3,1.1 +19960924,20.7,15.4,27.8,13.9,1.7 +19960925,21.0,16.4,26.7,15.0,1.3 +19960926,21.2,17.4,26.7,17.2,2.8 +19960927,21.8,19.1,25.0,18.9,2.8 +19960928,22.4,20.1,25.0,18.0,4.8 +19960929,16.5,12.4,19.4,14.4,2.9 +19960930,15.4,12.9,17.0,13.9,3.6 +19961001,14.5,13.2,17.2,12.8,4.5 +19961002,17.4,15.8,22.0,15.0,2.8 +19961003,20.2,17.8,25.0,16.0,1.5 +19961004,15.7,9.6,21.1,12.8,5.7 +19961005,10.7,4.9,16.1,6.1,4.8 +19961006,12.9,8.0,17.2,10.6,5.3 +19961007,12.6,9.8,14.4,11.7,5.0 +19961008,16.8,13.7,23.3,12.2,5.6 +19961009,18.2,13.9,21.7,16.0,2.9 +19961010,11.7,6.3,18.9,5.6,1.0 +19961011,11.9,5.8,17.8,6.7,2.4 +19961012,11.3,5.8,18.3,6.1,1.6 +19961013,12.0,7.1,21.7,4.4,0.8 +19961014,15.5,9.8,26.1,8.3,1.3 +19961015,17.9,12.8,25.0,11.7,2.0 +19961016,17.7,13.8,24.4,11.0,1.2 +19961017,18.0,14.2,25.0,12.8,0.9 +19961018,16.3,13.7,20.6,11.1,1.9 +19961019,11.0,-1.1,16.7,6.7,3.1 +19961020,11.1,-1.8,19.4,2.8,2.0 +19961021,12.6,4.1,22.8,5.0,1.2 +19961022,17.1,10.3,25.0,11.1,1.9 +19961023,16.8,10.3,20.6,13.9,4.7 +19961024,13.7,1.9,22.2,5.0,1.9 +19961025,14.2,7.8,22.2,7.8,1.0 +19961026,17.2,11.2,20.0,15.0,2.0 +19961027,15.7,14.3,17.8,14.0,1.7 +19961028,19.2,16.2,28.3,13.9,1.6 +19961029,20.5,16.2,24.4,15.0,1.9 +19961030,21.9,16.4,26.7,18.3,4.6 +19961031,19.0,8.1,25.6,11.7,2.7 +19961101,17.1,9.2,21.7,11.7,2.5 +19961102,13.7,8.5,18.3,8.3,3.2 +19961103,5.9,-5.2,11.7,0.0,2.7 +19961104,6.0,-1.2,13.3,0.0,0.9 +19961105,10.2,3.8,15.0,7.2,1.1 +19961106,14.6,12.6,19.4,11.7,0.5 +19961107,18.1,16.5,22.0,16.0,1.0 +19961108,17.9,15.3,21.1,10.6,6.5 +19961109,6.1,-1.2,9.4,2.8,3.8 +19961110,3.4,-2.1,8.3,-1.1,2.0 +19961111,2.4,-3.7,8.9,-2.8,1.7 +19961112,2.8,-4.3,8.9,-2.8,1.6 +19961113,3.7,-3.7,8.3,-0.6,1.7 +19961114,8.5,2.1,13.9,6.1,1.2 +19961115,4.8,-4.0,10.6,1.1,5.8 +19961116,2.9,-6.8,9.4,-1.1,4.7 +19961117,6.6,-1.2,13.3,3.3,3.7 +19961118,9.9,6.9,12.0,8.0,1.7 +19961119,12.3,10.2,16.7,10.0,2.2 +19961120,11.7,7.6,17.8,7.8,1.6 +19961121,10.6,9.5,11.1,10.0,1.4 +19961122,8.7,1.7,12.2,4.4,4.6 +19961123,4.7,-1.8,11.7,-1.1,2.2 +19961124,7.9,3.1,16.7,1.7,2.2 +19961125,14.3,9.8,21.1,10.6,1.8 +19961126,14.0,9.3,18.9,7.2,6.3 +19961127,4.9,-5.9,12.2,-0.6,3.1 +19961128,3.3,-3.9,10.0,-2.2,1.3 +19961129,3.1,-1.6,7.8,-1.1,1.0 +19961130,4.9,3.2,6.1,3.9,3.6 +19961201,12.3,11.6,18.0,6.0,4.7 +19961202,9.5,0.2,16.7,4.4,4.2 +19961203,5.9,-1.0,14.4,0.0,2.1 +19961204,7.7,-1.1,12.8,1.7,3.2 +19961205,3.6,-0.2,7.8,2.2,2.2 +19961206,5.9,0.7,15.0,0.0,3.0 +19961207,9.0,6.3,13.3,5.6,2.2 +19961208,6.0,-2.9,11.0,1.1,4.1 +19961209,4.2,-8.1,7.8,0.0,4.5 +19961210,3.9,-4.8,14.4,-2.8,2.6 +19961211,12.4,6.8,18.9,6.7,5.6 +19961212,15.7,13.2,17.2,13.0,4.5 +19961213,13.0,9.5,16.1,8.9,3.7 +19961214,6.9,0.1,16.1,0.0,1.4 +19961215,6.9,-1.1,13.3,0.0,1.3 +19961216,5.5,-0.7,10.6,1.1,1.7 +19961217,6.7,4.9,11.7,4.0,2.6 +19961218,4.4,2.1,8.3,2.0,3.2 +19961219,0.1,-2.8,1.7,-3.3,4.9 +19961220,-5.1,-11.8,0.6,-9.4,1.9 +19961221,-2.8,-9.9,3.3,-7.2,1.7 +19961222,0.3,-7.6,8.9,-5.6,1.9 +19961223,8.2,-1.2,16.1,3.3,3.6 +19961224,11.7,8.8,13.0,10.6,4.4 +19961225,4.4,-4.9,10.6,-3.3,2.0 +19961226,2.8,-5.2,7.2,-1.7,2.6 +19961227,7.0,2.8,12.8,3.9,1.2 +19961228,10.3,8.7,12.2,8.0,0.9 +19961229,13.9,13.3,18.0,12.0,2.9 +19961230,15.7,14.3,21.1,12.0,2.7 +19961231,18.2,15.7,21.7,16.0,3.0 +19970101,12.8,9.6,17.2,8.9,3.5 +19970102,11.4,9.6,19.4,8.0,3.4 +19970103,14.7,10.7,22.8,8.9,3.2 +19970104,15.8,12.2,21.1,11.0,3.8 +19970105,17.1,13.3,18.9,13.9,6.3 +19970106,10.5,2.9,15.6,6.7,2.5 +19970107,8.3,-1.2,11.1,5.6,2.7 +19970108,3.2,-9.6,6.1,1.1,3.3 +19970109,0.8,-0.2,2.0,0.0,3.7 +19970110,2.9,-2.0,6.7,0.0,7.7 +19970111,-0.3,-8.9,6.1,-6.7,4.7 +19970112,-1.2,-8.4,5.6,-6.1,1.1 +19970113,0.1,-10.3,7.2,-5.0,1.0 +19970114,0.8,-13.1,7.8,-5.6,1.6 +19970115,2.2,-8.3,10.0,-2.2,1.0 +19970116,6.4,0.8,10.6,2.8,3.6 +19970117,-3.4,-19.7,1.1,-8.9,4.7 +19970118,-4.6,-17.9,2.8,-11.1,2.3 +19970119,-2.4,-11.9,1.7,-5.6,1.2 +19970120,1.6,-7.5,13.3,-5.6,2.0 +19970121,8.5,-2.7,17.2,0.0,2.2 +19970122,7.6,3.6,13.3,2.2,1.8 +19970123,12.3,8.8,17.8,9.0,2.6 +19970124,6.9,4.1,13.3,2.8,4.4 +19970125,7.8,2.8,14.0,2.8,3.2 +19970126,4.9,-9.1,10.0,0.0,2.8 +19970127,6.4,-3.8,10.0,4.4,2.5 +19970128,9.2,4.1,16.7,5.6,3.2 +19970129,5.8,-5.7,9.4,3.9,4.7 +19970130,5.2,-0.6,6.7,2.8,3.2 +19970131,5.5,1.8,12.8,1.7,2.6 +19970201,11.3,-0.7,20.0,5.0,4.3 +19970202,11.4,3.6,18.9,3.3,2.1 +19970203,11.7,6.1,18.3,5.6,1.7 +19970204,11.4,10.5,15.6,7.2,4.2 +19970205,9.2,7.2,16.7,6.0,2.7 +19970206,5.4,-0.7,11.7,0.0,2.1 +19970207,8.9,1.3,15.0,5.0,1.3 +19970208,8.0,6.3,11.1,6.0,2.4 +19970209,4.6,1.1,7.8,2.2,2.0 +19970210,4.7,2.7,6.0,3.9,1.6 +19970211,3.4,-0.6,7.8,-1.1,2.1 +19970212,1.9,-2.9,7.8,-2.2,1.4 +19970213,3.4,-0.1,6.7,0.6,4.2 +19970214,0.9,0.7,3.0,-0.6,3.7 +19970215,6.8,1.6,13.3,3.0,2.8 +19970216,4.8,-5.5,12.8,-2.2,2.6 +19970217,8.1,-4.0,15.6,2.8,2.8 +19970218,7.7,-2.6,16.7,-0.6,2.3 +19970219,12.9,6.9,21.0,6.7,3.9 +19970220,14.9,9.5,21.1,8.3,2.2 +19970221,16.1,12.5,22.0,13.0,3.8 +19970222,15.5,10.9,18.9,9.4,6.7 +19970223,6.3,-3.9,12.2,0.6,1.7 +19970224,7.9,-4.1,15.6,0.6,1.3 +19970225,9.6,-0.7,15.0,5.6,1.5 +19970226,7.9,3.5,11.1,6.0,1.7 +19970227,12.0,11.8,19.0,8.0,2.9 +19970228,16.8,16.6,18.0,15.0,3.8 +19970301,16.9,15.7,24.4,14.0,1.9 +19970302,18.2,16.5,21.0,16.1,3.1 +19970303,18.3,13.9,25.0,14.0,5.2 +19970304,12.8,7.5,21.1,4.0,3.2 +19970305,15.4,11.2,24.4,8.0,3.3 +19970306,12.8,3.1,21.7,6.1,4.7 +19970307,9.6,-6.5,16.7,3.3,3.0 +19970308,11.9,0.8,20.0,5.0,3.7 +19970309,14.2,4.1,21.7,7.8,2.4 +19970310,19.2,11.4,25.0,15.0,5.2 +19970311,17.9,7.1,25.6,11.1,2.7 +19970312,16.5,2.7,21.7,10.0,2.9 +19970313,12.0,7.9,16.7,9.4,3.4 +19970314,17.0,15.6,21.0,13.0,5.2 +19970315,10.8,0.7,17.8,3.3,4.7 +19970316,5.6,-6.7,12.8,-1.7,2.4 +19970317,7.9,-1.3,17.2,0.0,2.7 +19970318,15.6,5.9,21.1,11.1,3.4 +19970319,14.2,13.2,17.8,12.0,2.6 +19970320,10.9,9.2,18.0,7.8,2.6 +19970321,13.8,7.8,22.2,6.1,2.3 +19970322,17.6,8.5,26.1,10.6,3.8 +19970323,13.2,0.7,18.3,7.2,3.7 +19970324,11.9,-1.1,18.3,5.6,3.2 +19970325,10.1,6.2,14.4,8.3,2.7 +19970326,16.6,12.8,23.9,10.6,3.9 +19970327,13.1,1.9,21.7,3.3,2.0 +19970328,12.4,7.9,18.9,8.3,1.6 +19970329,17.1,11.1,26.7,11.0,4.2 +19970330,17.9,6.3,25.6,9.4,3.2 +19970331,13.1,1.2,22.8,6.1,6.2 +19970401,11.0,-8.9,18.9,4.4,6.1 +19970402,11.6,-4.9,20.0,1.1,2.2 +19970403,14.1,-2.1,23.3,3.3,2.3 +19970404,16.7,1.8,25.0,6.7,2.0 +19970405,18.6,7.4,25.6,12.8,3.4 +19970406,18.2,14.8,22.2,16.0,3.2 +19970407,19.2,11.4,22.2,15.6,4.3 +19970408,12.5,-4.3,19.4,4.4,3.1 +19970409,14.9,-0.9,20.0,10.6,2.9 +19970410,8.3,-6.4,15.0,1.7,2.7 +19970411,10.6,1.0,20.0,2.2,1.6 +19970412,17.1,12.8,22.8,13.0,3.2 +19970413,17.2,8.6,21.1,13.0,4.6 +19970414,8.2,-2.5,13.9,2.8,3.5 +19970415,10.9,1.8,18.9,2.8,1.3 +19970416,13.3,3.4,22.2,5.0,2.6 +19970417,13.8,2.1,19.4,9.4,4.5 +19970418,8.8,-6.2,17.2,1.7,6.3 +19970419,12.1,1.9,20.6,5.0,2.8 +19970420,14.8,5.9,21.7,8.3,2.2 +19970421,16.1,8.3,26.1,7.8,3.2 +19970422,19.3,13.6,25.6,13.0,4.5 +19970423,13.2,11.5,18.3,10.0,4.8 +19970424,11.4,5.6,18.3,5.0,2.1 +19970425,13.9,5.1,20.6,6.7,1.9 +19970426,12.8,4.6,17.2,8.9,2.9 +19970427,10.9,9.6,12.8,9.0,4.5 +19970428,13.0,12.5,17.0,11.1,2.5 +19970429,15.1,12.0,20.0,11.7,3.0 +19970430,16.7,12.8,23.3,12.2,2.9 +19970501,20.5,12.7,27.2,15.6,5.6 +19970502,17.0,3.6,25.0,8.9,2.9 +19970503,18.1,13.7,23.3,15.0,5.0 +19970504,14.6,2.7,20.0,7.2,3.9 +19970505,13.9,2.1,21.1,5.0,3.0 +19970506,18.6,7.1,26.7,12.2,4.1 +19970507,17.9,2.4,22.8,11.1,2.8 +19970508,17.1,9.4,24.4,9.4,3.1 +19970509,20.2,13.9,25.0,14.4,3.9 +19970510,15.4,0.9,22.2,8.3,4.8 +19970511,14.6,1.2,21.7,5.6,3.2 +19970512,16.7,6.7,24.0,10.6,3.9 +19970513,17.3,7.4,23.3,12.2,3.7 +19970514,15.8,5.3,26.7,5.6,4.5 +19970515,21.2,9.7,25.0,15.6,5.9 +19970516,15.4,-1.7,21.7,8.3,4.2 +19970517,16.2,3.8,26.7,6.1,2.2 +19970518,21.7,9.0,30.6,11.7,3.2 +19970519,24.1,14.6,30.0,15.6,4.8 +19970520,23.7,18.3,29.0,20.0,4.9 +19970521,20.3,9.8,25.0,15.0,3.5 +19970522,17.8,5.3,23.9,11.1,3.4 +19970523,19.2,8.7,26.7,13.3,2.2 +19970524,20.9,14.3,26.1,16.1,3.5 +19970525,21.2,18.8,25.6,19.0,3.9 +19970526,23.4,18.7,30.6,19.0,4.7 +19970527,18.7,15.5,26.1,15.0,4.5 +19970528,14.8,9.9,18.3,12.2,4.2 +19970529,14.8,10.6,18.3,12.8,3.1 +19970530,16.1,14.7,20.0,14.0,3.1 +19970531,20.8,16.1,27.2,16.7,2.5 +19970601,20.3,17.2,23.3,17.8,4.2 +19970602,19.9,16.3,24.4,16.7,2.2 +19970603,18.0,14.8,21.0,15.6,3.1 +19970604,14.7,11.3,17.8,12.2,4.7 +19970605,16.5,10.3,21.1,13.3,3.2 +19970606,15.1,9.1,19.4,13.3,4.8 +19970607,13.6,10.9,16.1,12.0,5.0 +19970608,15.7,11.3,18.9,13.0,2.4 +19970609,16.7,12.0,20.6,14.4,2.9 +19970610,19.1,11.4,26.1,13.3,3.7 +19970611,20.7,14.6,25.0,17.2,1.9 +19970612,22.5,18.6,28.3,19.0,3.4 +19970613,23.5,19.7,30.6,19.0,4.2 +19970614,22.4,18.6,28.3,18.3,3.5 +19970615,21.9,17.4,27.2,17.8,3.9 +19970616,21.6,17.9,26.1,17.2,2.5 +19970617,23.4,20.5,27.2,20.6,3.2 +19970618,23.6,20.2,26.7,20.6,5.6 +19970619,23.9,17.7,30.0,17.8,2.9 +19970620,25.4,18.6,31.1,19.4,1.5 +19970621,24.6,19.0,30.0,20.6,2.4 +19970622,22.6,19.1,31.1,18.3,2.2 +19970623,25.4,20.2,30.6,20.0,2.6 +19970624,25.8,20.8,30.6,21.7,2.3 +19970625,26.9,21.6,32.2,22.2,3.0 +19970626,26.6,19.9,31.1,22.2,4.7 +19970627,23.0,20.8,28.3,21.0,3.1 +19970628,21.7,20.0,23.9,20.6,4.0 +19970629,22.4,16.6,27.2,18.9,2.9 +19970630,22.8,18.0,27.2,19.4,1.0 +19970701,24.6,21.0,29.4,21.1,1.6 +19970702,26.4,20.4,31.7,21.1,1.6 +19970703,28.2,21.8,35.6,22.2,1.4 +19970704,27.5,17.8,34.4,18.9,2.2 +19970705,25.4,18.5,31.7,18.9,1.7 +19970706,24.2,16.6,29.4,17.2,2.1 +19970707,23.9,16.6,28.9,18.9,1.8 +19970708,24.5,18.6,30.0,20.0,1.0 +19970709,24.1,20.1,30.6,19.0,2.6 +19970710,24.4,19.4,31.7,18.3,1.7 +19970711,24.1,19.9,28.3,21.0,3.7 +19970712,24.7,18.4,30.0,19.4,1.4 +19970713,26.4,19.7,32.2,21.7,1.3 +19970714,27.2,21.2,32.8,22.0,0.7 +19970715,27.6,21.2,33.3,21.0,1.0 +19970716,25.8,20.6,32.2,21.1,1.8 +19970717,23.9,19.7,30.0,19.0,2.1 +19970718,25.6,19.4,32.8,19.4,1.3 +19970719,27.5,20.4,33.9,22.2,1.8 +19970720,26.9,22.2,32.8,22.0,1.6 +19970721,26.6,22.2,32.2,21.1,2.2 +19970722,26.6,23.0,31.1,23.3,2.6 +19970723,24.2,22.7,27.0,22.0,2.3 +19970724,24.4,22.2,31.7,21.7,3.8 +19970725,25.1,22.2,29.4,21.7,2.5 +19970726,26.4,22.9,31.1,23.0,1.3 +19970727,27.2,23.2,31.7,23.3,1.3 +19970728,27.7,23.6,34.4,23.3,1.9 +19970729,26.2,21.1,31.7,22.2,1.7 +19970730,21.9,20.3,26.7,17.8,4.5 +19970731,19.8,14.7,26.1,16.7,4.4 +19970801,21.2,13.4,27.8,13.9,2.7 +19970802,22.4,15.4,30.0,15.0,0.9 +19970803,24.5,17.7,31.1,18.3,1.7 +19970804,26.1,19.0,31.7,20.6,1.2 +19970805,24.8,19.0,30.6,19.4,2.4 +19970806,21.9,14.9,26.7,16.7,2.8 +19970807,22.9,16.9,27.8,19.4,2.3 +19970808,22.2,17.1,26.1,18.0,2.6 +19970809,21.4,16.7,25.0,18.9,1.1 +19970810,21.6,18.3,27.0,18.9,1.6 +19970811,23.8,20.3,30.0,19.0,1.1 +19970812,25.8,20.8,31.1,20.6,2.2 +19970813,26.0,21.6,31.1,21.7,4.0 +19970814,25.8,21.8,32.2,21.7,3.0 +19970815,26.7,22.4,32.8,21.7,2.8 +19970816,26.6,22.1,33.9,21.7,2.6 +19970817,27.6,22.6,33.9,22.2,3.1 +19970818,28.3,22.0,32.8,23.9,3.3 +19970819,26.1,19.7,30.6,21.7,2.3 +19970820,25.6,21.5,31.1,22.8,3.5 +19970821,24.7,19.1,30.0,20.0,2.0 +19970822,22.3,12.8,28.0,16.1,2.8 +19970823,21.3,11.1,27.8,15.0,2.2 +19970824,21.6,12.0,28.3,16.1,2.3 +19970825,22.1,14.3,29.4,16.7,1.0 +19970826,23.1,16.3,31.1,17.2,1.9 +19970827,24.9,17.6,31.7,18.3,1.5 +19970828,25.3,19.6,31.7,20.0,2.1 +19970829,26.3,18.4,33.9,19.4,1.7 +19970830,25.7,17.0,31.7,20.0,3.5 +19970831,25.1,20.3,31.1,20.6,1.7 +19970901,25.2,20.3,31.7,20.0,1.6 +19970902,26.1,19.9,32.8,21.7,2.3 +19970903,25.3,19.0,32.2,19.0,1.9 +19970904,21.7,10.5,26.7,15.6,4.4 +19970905,18.0,7.3,27.2,10.0,1.6 +19970906,20.7,10.8,29.4,13.3,2.3 +19970907,22.8,12.8,31.1,15.0,1.7 +19970908,24.4,15.3,31.1,18.3,0.9 +19970909,23.1,16.9,28.3,19.4,2.2 +19970910,21.1,19.0,24.4,18.9,2.3 +19970911,19.2,15.9,26.7,15.0,2.1 +19970912,21.7,16.3,28.9,16.1,1.7 +19970913,22.6,16.1,28.9,17.8,2.3 +19970914,22.6,17.3,29.4,17.8,1.7 +19970915,23.9,17.5,29.4,20.0,3.1 +19970916,23.0,17.2,28.9,18.0,2.2 +19970917,23.6,18.0,31.1,18.0,1.2 +19970918,24.4,19.7,29.4,21.0,1.2 +19970919,24.3,19.4,31.7,19.0,1.6 +19970920,25.4,18.1,33.9,17.8,1.4 +19970921,23.2,15.7,28.3,21.1,4.2 +19970922,19.3,11.5,21.7,17.2,2.6 +19970923,21.1,13.7,28.3,17.0,2.4 +19970924,17.9,16.3,23.9,13.0,4.1 +19970925,14.1,13.2,18.9,12.0,2.8 +19970926,18.4,15.1,23.3,16.0,2.2 +19970927,18.9,14.0,21.1,17.2,5.0 +19970928,17.1,16.3,19.4,16.0,4.3 +19970929,19.9,13.8,25.0,16.1,3.5 +19970930,19.2,9.8,28.3,12.6,5.3 +19971001,18.1,8.8,24.4,11.1,2.9 +19971002,15.1,7.9,20.6,10.0,2.7 +19971003,14.7,9.7,23.3,7.2,1.1 +19971004,17.1,11.3,26.1,10.0,1.3 +19971005,18.9,12.6,28.3,11.7,1.5 +19971006,20.7,13.8,28.9,13.3,0.8 +19971007,20.6,14.9,28.3,13.9,0.8 +19971008,20.9,16.0,28.3,15.0,1.4 +19971009,20.7,16.2,27.2,15.0,1.2 +19971010,21.2,16.6,28.9,15.6,1.0 +19971011,21.2,16.6,26.7,16.1,1.7 +19971012,18.6,15.6,21.0,16.7,3.1 +19971013,18.9,16.3,24.4,16.0,2.6 +19971014,19.9,18.3,23.3,18.0,2.2 +19971015,14.9,9.4,17.2,13.3,4.1 +19971016,14.1,8.3,18.9,10.6,3.4 +19971017,13.5,9.2,17.2,10.6,3.4 +19971018,11.9,10.5,13.3,10.6,4.1 +19971019,14.2,11.4,18.9,11.7,3.9 +19971020,15.3,6.3,21.7,10.0,4.5 +19971021,13.3,8.6,20.0,7.2,2.0 +19971022,12.8,7.9,16.1,9.4,2.2 +19971023,10.2,2.2,15.0,3.9,2.6 +19971024,8.7,7.9,12.0,6.0,1.8 +19971025,14.4,14.1,18.3,11.0,2.9 +19971026,15.9,15.6,17.8,12.8,3.2 +19971027,13.2,10.4,15.6,9.4,4.0 +19971028,7.9,-0.2,14.4,1.7,3.0 +19971029,10.0,4.1,17.8,5.6,1.7 +19971030,10.7,5.2,18.9,3.9,1.2 +19971031,10.3,6.7,16.1,5.6,1.6 +19971101,13.6,11.7,17.2,11.0,3.6 +19971102,13.8,8.9,17.2,9.4,4.2 +19971103,10.5,3.2,14.4,6.1,5.6 +19971104,8.4,1.0,12.8,3.3,2.4 +19971105,6.4,0.8,12.8,1.7,3.0 +19971106,6.9,2.4,8.9,4.4,4.4 +19971107,9.6,5.7,15.6,7.0,2.9 +19971108,9.1,5.1,13.3,5.6,3.5 +19971109,9.0,3.8,15.0,4.4,3.1 +19971110,8.3,5.0,12.8,3.3,1.2 +19971111,8.1,4.9,12.8,2.8,1.3 +19971112,7.0,4.2,10.0,3.9,0.6 +19971113,5.6,5.2,6.7,3.3,5.5 +19971114,5.8,5.2,13.0,3.0,4.1 +19971115,6.6,3.9,11.7,1.7,2.9 +19971116,3.5,-4.0,8.3,-1.7,3.0 +19971117,1.3,-6.4,7.8,-4.4,2.0 +19971118,2.6,-4.7,11.1,-3.3,1.5 +19971119,5.8,-2.1,13.3,0.6,1.5 +19971120,5.9,-1.8,15.6,-1.7,1.0 +19971121,5.7,2.7,7.8,2.8,1.9 +19971122,10.9,9.2,20.0,7.0,2.7 +19971123,11.0,5.6,16.7,5.6,2.0 +19971124,6.2,-2.5,11.1,1.7,2.5 +19971125,4.0,-4.4,11.7,-2.2,2.2 +19971126,7.4,-0.6,15.0,1.7,5.5 +19971127,10.6,0.3,18.3,2.8,2.6 +19971128,9.5,0.5,18.3,2.8,2.0 +19971129,11.4,7.2,16.1,7.2,1.1 +19971130,12.8,12.5,14.4,12.0,2.6 +19971201,12.7,7.7,15.6,9.4,3.8 +19971202,6.8,-0.1,14.4,0.6,1.7 +19971203,7.9,4.6,10.6,4.4,1.2 +19971204,10.6,8.1,16.1,7.8,3.4 +19971205,6.0,-1.2,11.1,1.1,4.3 +19971206,0.2,-7.2,5.0,-3.9,2.4 +19971207,-0.6,-7.3,6.1,-5.0,2.0 +19971208,-1.1,-4.8,1.7,-4.4,1.8 +19971209,1.3,0.6,4.4,0.0,1.6 +19971210,5.3,4.6,11.1,2.8,2.2 +19971211,6.2,3.5,11.1,2.2,1.2 +19971212,6.6,2.3,8.3,5.0,2.5 +19971213,3.9,-0.7,8.3,-1.1,1.6 +19971214,5.3,-4.3,7.8,3.9,2.9 +19971215,3.3,-8.6,11.7,-2.8,3.4 +19971216,5.9,-11.1,15.6,-1.7,2.2 +19971217,6.2,-7.8,16.1,-1.7,0.9 +19971218,8.1,-2.2,14.4,2.2,2.2 +19971219,8.5,-1.1,18.3,1.7,2.9 +19971220,10.6,0.5,18.3,3.9,3.1 +19971221,9.4,4.4,13.3,5.6,3.5 +19971222,5.7,4.4,8.9,4.0,5.0 +19971223,7.5,6.5,12.2,5.6,2.6 +19971224,7.4,7.2,9.4,6.7,3.9 +19971225,9.6,7.0,15.6,6.7,4.4 +19971226,8.0,3.6,14.4,1.7,2.3 +19971227,6.4,3.8,10.0,3.9,2.8 +19971228,1.3,-6.4,5.0,-3.9,3.0 +19971229,0.1,-2.0,1.1,-2.2,1.8 +19971230,1.0,-3.4,4.4,-1.1,5.8 +19971231,0.8,-4.1,5.6,-2.2,4.3 +19980101,-1.5,-10.8,5.0,-7.2,2.5 +19980102,3.7,-8.1,13.3,-1.7,4.4 +19980103,8.2,2.9,16.7,0.6,2.2 +19980104,9.8,6.3,18.9,2.8,1.4 +19980105,13.1,10.6,19.4,2.8,2.3 +19980106,14.7,14.4,18.3,10.6,2.7 +19980107,17.1,16.9,20.0,15.0,3.3 +19980108,18.2,16.5,20.6,15.0,6.0 +19980109,11.8,5.7,17.2,7.8,6.4 +19980110,6.6,1.1,13.3,1.1,1.7 +19980111,7.4,1.8,16.7,0.6,1.5 +19980112,9.7,4.7,16.7,0.0,1.7 +19980113,10.1,7.4,16.1,7.0,2.5 +19980114,8.5,2.9,11.1,6.1,3.4 +19980115,2.3,1.3,5.6,0.6,5.1 +19980116,5.2,4.7,8.3,3.3,3.3 +19980117,6.1,4.6,9.4,3.3,4.1 +19980118,4.4,-1.7,11.7,-1.7,1.5 +19980119,5.2,2.1,12.8,-2.2,2.9 +19980120,3.7,-0.5,7.8,-1.1,1.8 +19980121,3.3,-2.9,8.3,-0.6,1.8 +19980122,3.9,0.1,8.9,-0.6,3.5 +19980123,5.3,4.6,9.4,3.0,4.5 +19980124,7.7,6.1,9.4,3.9,2.1 +19980125,3.3,-5.5,8.3,-1.1,2.7 +19980126,3.6,-3.7,10.6,-1.7,2.3 +19980127,4.7,0.4,11.1,-1.7,6.8 +19980128,7.3,-0.6,11.7,4.4,7.2 +19980129,7.4,-1.2,16.1,-0.6,2.7 +19980130,8.5,-1.2,16.1,-1.7,4.1 +19980131,5.4,-3.9,10.0,1.1,3.0 +19980201,3.3,-4.4,10.0,-1.7,1.9 +19980202,4.2,-2.2,10.6,-2.2,3.0 +19980203,5.9,4.8,10.0,0.0,8.7 +19980204,5.6,4.3,7.2,4.0,9.7 +19980205,5.8,-0.3,8.9,4.4,3.5 +19980206,5.7,0.4,10.0,3.9,2.1 +19980207,5.5,2.5,7.2,3.0,2.9 +19980208,6.0,1.9,10.0,2.8,1.4 +19980209,8.7,-0.3,12.8,6.1,1.7 +19980210,6.3,-1.6,13.3,-0.6,1.6 +19980211,7.6,4.2,14.0,3.3,2.0 +19980212,10.2,4.4,15.0,6.1,5.2 +19980213,6.6,1.5,11.7,1.1,1.4 +19980214,8.4,-0.8,12.8,5.6,3.1 +19980215,5.4,-2.9,10.0,0.6,3.3 +19980216,4.4,0.9,10.6,0.0,7.5 +19980217,9.8,7.5,17.2,5.0,7.3 +19980218,9.9,6.3,17.8,6.7,6.5 +19980219,8.9,4.1,17.2,3.3,3.2 +19980220,12.0,4.6,17.8,2.2,3.1 +19980221,7.8,0.1,14.4,0.6,2.1 +19980222,7.1,0.8,15.0,0.0,3.3 +19980223,7.6,5.7,11.7,2.2,5.2 +19980224,10.7,-0.8,18.9,3.9,6.1 +19980225,13.4,-3.3,22.8,3.9,3.7 +19980226,13.3,-2.7,22.8,3.9,2.9 +19980227,11.7,8.4,21.1,7.8,2.6 +19980228,14.4,9.9,21.1,11.1,3.0 +19980301,14.1,0.7,17.8,10.6,4.3 +19980302,9.1,-2.2,13.9,3.9,3.4 +19980303,4.2,-5.6,9.4,-1.1,3.7 +19980304,5.0,-3.3,11.7,0.0,3.0 +19980305,9.6,2.1,12.8,7.8,3.4 +19980306,7.9,6.3,10.0,6.0,2.7 +19980307,6.4,5.7,8.9,5.6,3.9 +19980308,11.7,11.0,17.8,8.0,4.0 +19980309,12.2,8.6,16.0,6.7,7.6 +19980310,4.2,-5.3,6.7,0.6,5.5 +19980311,-0.1,-11.1,7.2,-5.6,4.0 +19980312,-1.1,-13.2,5.0,-7.2,4.3 +19980313,1.0,-11.7,9.4,-6.1,3.1 +19980314,9.0,-4.1,19.4,1.7,5.6 +19980315,11.9,-0.7,20.0,1.1,2.0 +19980316,7.5,-0.4,18.3,3.3,4.7 +19980317,2.9,0.9,5.0,2.0,6.9 +19980318,3.8,3.4,6.7,2.2,5.3 +19980319,11.7,9.2,22.2,6.7,2.0 +19980320,15.5,11.9,22.8,7.2,4.6 +19980321,8.0,1.3,13.3,4.0,4.9 +19980322,6.6,-1.4,14.4,0.6,3.6 +19980323,6.8,-1.7,15.0,-1.1,2.9 +19980324,9.4,3.3,16.1,3.9,1.5 +19980325,9.5,1.6,16.1,3.9,3.3 +19980326,13.1,7.2,22.8,7.0,2.6 +19980327,17.2,10.8,25.0,10.6,2.9 +19980328,18.3,11.1,25.6,10.6,4.3 +19980329,19.1,10.9,27.2,11.7,2.8 +19980330,21.0,11.8,27.8,13.9,3.8 +19980331,20.6,14.8,28.3,13.3,4.7 +19980401,20.2,15.1,25.0,16.7,5.9 +19980402,18.5,3.8,27.2,10.0,4.8 +19980403,13.3,6.8,27.8,8.9,2.8 +19980404,12.0,8.1,16.7,8.0,4.5 +19980405,10.2,0.7,18.3,4.4,2.4 +19980406,13.2,0.5,22.2,5.0,1.7 +19980407,16.3,5.6,25.0,7.2,4.0 +19980408,20.2,13.5,25.6,15.0,4.1 +19980409,18.8,12.9,26.1,14.4,6.4 +19980410,11.4,3.7,13.9,8.9,5.6 +19980411,11.4,0.2,20.0,6.1,3.7 +19980412,13.1,-0.6,20.0,5.6,2.7 +19980413,12.8,2.9,21.1,3.9,2.8 +19980414,13.8,9.1,21.7,3.9,5.1 +19980415,17.3,14.5,23.3,13.0,4.6 +19980416,18.6,16.5,23.9,13.9,4.9 +19980417,20.9,17.9,25.6,16.0,5.0 +19980418,17.1,14.1,22.2,14.0,3.4 +19980419,13.3,13.0,17.0,11.0,3.8 +19980420,13.9,7.7,20.0,7.8,2.4 +19980421,12.9,7.2,20.0,7.2,3.0 +19980422,11.4,10.2,19.4,8.3,2.5 +19980423,10.9,8.6,15.6,8.3,2.6 +19980424,13.1,6.7,21.7,6.1,1.9 +19980425,15.7,6.1,23.0,8.9,2.2 +19980426,18.2,8.1,23.9,12.8,5.7 +19980427,17.7,11.1,24.4,11.7,3.5 +19980428,11.7,4.8,24.4,7.8,4.3 +19980429,15.2,9.4,20.0,11.7,1.3 +19980430,15.2,13.9,20.0,11.1,2.5 +19980501,16.6,13.6,22.2,13.9,4.3 +19980502,15.9,9.8,22.2,9.4,4.7 +19980503,16.4,11.7,22.2,8.9,4.3 +19980504,17.2,12.3,22.2,11.7,4.6 +19980505,16.2,8.6,22.8,8.3,2.5 +19980506,18.4,11.2,25.6,11.7,2.7 +19980507,18.6,16.9,25.6,11.1,2.2 +19980508,19.9,15.5,26.1,15.0,5.0 +19980509,20.6,13.4,26.1,15.0,2.7 +19980510,18.8,16.9,26.1,15.0,3.3 +19980511,18.7,13.6,25.6,13.0,3.5 +19980512,19.6,10.6,26.1,11.1,2.8 +19980513,19.0,13.5,26.0,10.6,2.1 +19980514,21.0,16.8,27.2,16.1,1.8 +19980515,23.4,19.1,30.0,18.0,1.3 +19980516,24.6,20.5,30.0,17.8,1.4 +19980517,24.9,19.4,30.0,20.0,2.1 +19980518,23.7,15.8,29.4,18.3,2.8 +19980519,23.3,15.0,31.1,15.6,2.0 +19980520,25.0,17.4,31.7,15.6,2.7 +19980521,26.2,18.9,32.8,20.6,2.7 +19980522,24.4,19.3,33.3,19.4,2.2 +19980523,24.2,19.8,30.6,19.4,1.9 +19980524,22.9,19.7,27.8,19.0,2.2 +19980525,25.6,19.9,31.1,18.9,3.1 +19980526,26.4,18.5,31.7,20.6,4.0 +19980527,24.2,18.7,32.2,17.8,2.4 +19980528,23.3,20.1,32.2,17.8,2.0 +19980529,25.1,20.3,30.0,19.4,1.7 +19980530,24.7,20.8,31.1,20.6,1.7 +19980531,24.0,19.8,30.0,18.0,3.8 +19980601,27.6,18.3,34.4,22.2,4.0 +19980602,23.3,18.7,31.1,17.0,2.8 +19980603,27.6,20.1,33.3,21.7,3.9 +19980604,26.4,20.9,31.1,21.0,3.4 +19980605,22.5,20.3,28.9,18.9,3.1 +19980606,23.2,19.2,29.4,18.9,3.6 +19980607,18.2,7.5,23.9,11.7,4.7 +19980608,18.1,8.3,24.4,10.0,2.3 +19980609,19.2,14.9,25.6,10.0,2.0 +19980610,21.0,19.8,25.6,18.9,3.2 +19980611,24.4,20.8,31.7,19.4,3.9 +19980612,26.7,21.1,32.2,21.0,3.8 +19980613,27.7,19.9,32.2,20.6,5.4 +19980614,23.9,16.2,28.9,17.8,2.5 +19980615,26.7,20.7,32.2,22.0,5.7 +19980616,26.1,18.2,30.0,20.6,6.6 +19980617,24.9,17.6,31.1,17.8,2.7 +19980618,25.6,15.7,33.9,17.2,1.6 +19980619,25.7,20.9,33.9,16.7,3.7 +19980620,24.4,18.2,32.8,18.9,2.2 +19980621,24.4,18.6,32.2,18.9,1.9 +19980622,25.4,20.4,33.9,20.0,1.5 +19980623,25.3,19.1,32.8,18.9,2.9 +19980624,27.4,21.7,33.9,18.3,1.5 +19980625,25.4,20.1,32.8,18.9,2.1 +19980626,28.6,22.2,35.0,22.0,1.7 +19980627,28.9,21.4,35.6,21.7,2.5 +19980628,29.6,20.4,35.6,21.7,2.2 +19980629,28.8,21.2,36.1,21.7,1.3 +19980630,27.4,21.0,36.1,22.2,4.5 +19980701,27.1,19.0,32.8,21.1,2.8 +19980702,25.7,17.4,30.6,19.4,1.5 +19980703,25.8,18.6,32.2,19.4,1.7 +19980704,26.6,19.6,33.3,21.1,1.7 +19980705,26.9,20.1,33.9,20.6,3.0 +19980706,25.1,20.1,33.3,21.7,2.4 +19980707,26.3,19.2,32.8,21.1,2.0 +19980708,28.3,21.6,33.3,20.6,3.5 +19980709,28.2,21.8,35.0,22.8,2.0 +19980710,28.9,18.9,35.6,22.8,2.9 +19980711,27.0,16.7,31.7,22.8,3.0 +19980712,26.4,19.5,31.7,21.7,1.8 +19980713,25.9,18.4,30.6,20.0,2.8 +19980714,24.7,16.8,31.7,20.0,2.3 +19980715,25.4,17.7,31.7,19.4,3.2 +19980716,27.9,20.5,33.3,22.8,2.3 +19980717,26.4,22.5,32.8,22.0,1.8 +19980718,26.7,19.2,33.3,21.7,2.0 +19980719,28.5,20.1,36.1,22.2,1.6 +19980720,27.3,19.7,35.6,21.1,2.9 +19980721,27.0,21.1,35.6,21.1,3.1 +19980722,27.6,21.9,34.4,23.3,2.5 +19980723,26.3,22.1,32.2,23.0,3.5 +19980724,24.9,21.3,32.2,21.1,2.1 +19980725,24.6,22.8,32.8,21.1,0.9 +19980726,25.0,21.3,31.1,21.0,1.9 +19980727,23.9,22.0,31.1,21.1,1.7 +19980728,25.9,22.8,31.1,22.8,1.5 +19980729,27.1,21.5,32.2,22.0,1.9 +19980730,27.1,21.2,32.8,21.7,2.1 +19980731,26.8,22.7,32.2,21.7,3.8 +19980801,24.4,18.5,28.3,20.6,4.7 +19980802,23.1,14.5,27.8,18.3,4.0 +19980803,22.4,12.7,29.4,16.7,3.0 +19980804,23.3,12.4,30.6,17.2,2.8 +19980805,24.0,13.9,32.2,16.7,1.7 +19980806,24.8,15.7,32.8,16.7,2.2 +19980807,24.3,17.5,32.2,17.8,3.0 +19980808,24.7,21.0,31.1,20.6,2.1 +19980809,23.9,22.3,31.1,20.6,1.3 +19980810,25.1,21.9,31.1,22.0,2.7 +19980811,24.9,20.4,31.1,20.6,2.0 +19980812,25.5,20.2,32.2,20.0,1.4 +19980813,26.0,21.0,32.2,20.6,2.7 +19980814,23.6,20.6,27.8,21.0,2.5 +19980815,24.1,21.9,28.3,21.1,2.7 +19980816,24.1,21.9,30.0,21.1,2.0 +19980817,24.7,21.6,30.6,21.1,3.8 +19980818,25.6,21.1,31.7,21.1,1.7 +19980819,25.8,21.4,31.7,20.6,2.5 +19980820,24.0,16.6,26.7,18.9,3.5 +19980821,22.5,16.3,29.4,16.1,1.4 +19980822,23.8,17.2,31.7,16.7,1.2 +19980823,26.0,18.6,32.8,19.4,1.4 +19980824,26.6,18.4,33.3,20.0,2.1 +19980825,26.8,18.7,35.0,18.9,1.4 +19980826,28.0,20.4,36.0,21.7,3.8 +19980827,29.6,19.7,36.1,21.1,3.3 +19980828,28.2,19.9,33.3,22.8,2.5 +19980829,28.9,19.9,36.7,21.1,2.6 +19980830,27.6,20.7,36.7,21.1,2.6 +19980831,27.9,19.9,33.9,22.2,2.7 +19980901,26.5,17.8,31.7,20.0,2.2 +19980902,26.0,18.0,32.8,20.0,2.0 +19980903,22.3,19.6,28.9,19.0,4.3 +19980904,23.4,17.8,31.7,18.9,3.0 +19980905,26.1,18.3,32.8,19.4,1.9 +19980906,25.7,20.7,32.8,19.4,1.4 +19980907,25.6,20.3,33.3,20.0,3.2 +19980908,25.7,18.6,30.0,19.0,5.1 +19980909,18.4,7.4,23.9,11.7,2.2 +19980910,17.8,9.1,25.6,10.0,1.9 +19980911,20.1,11.3,28.3,12.8,1.5 +19980912,22.7,13.2,31.1,15.6,1.8 +19980913,24.4,15.5,31.1,15.0,2.2 +19980914,24.1,18.0,30.6,17.2,1.0 +19980915,23.8,19.5,31.1,17.2,1.4 +19980916,24.2,18.9,30.6,18.0,1.4 +19980917,24.2,18.9,31.1,17.8,1.3 +19980918,24.6,19.7,31.1,17.8,2.3 +19980919,23.9,19.7,30.0,20.0,3.4 +19980920,23.2,18.7,28.9,17.8,1.4 +19980921,22.8,21.7,30.0,17.8,1.4 +19980922,24.2,21.2,31.1,20.0,1.9 +19980923,22.8,17.4,25.6,19.4,3.1 +19980924,19.9,13.9,23.3,16.1,2.5 +19980925,20.0,15.0,27.8,14.4,1.6 +19980926,21.8,16.1,29.4,15.0,1.0 +19980927,22.4,17.3,31.1,15.6,2.2 +19980928,24.6,21.2,31.1,15.0,3.3 +19980929,22.8,21.1,27.8,21.1,2.6 +19980930,21.4,19.5,25.6,19.0,2.1 +19981001,23.1,18.3,30.6,18.3,2.2 +19981002,18.1,9.2,24.4,12.2,3.1 +19981003,17.1,12.8,23.9,11.7,0.9 +19981004,21.1,19.3,25.6,19.0,2.0 +19981005,21.5,20.4,25.6,19.4,2.6 +19981006,19.6,18.2,21.1,18.3,3.8 +19981007,19.3,18.9,23.9,18.0,3.1 +19981008,21.8,18.8,27.2,18.9,4.0 +19981009,16.8,10.5,22.2,12.2,3.8 +19981010,15.6,8.8,22.8,8.9,2.1 +19981011,16.9,12.6,24.4,10.0,1.2 +19981012,17.7,13.5,25.0,10.0,1.3 +19981013,18.2,13.6,25.0,11.7,2.0 +19981014,17.2,10.6,23.3,10.6,1.2 +19981015,15.8,7.6,22.8,8.9,2.3 +19981016,15.7,10.1,23.3,8.3,1.3 +19981017,16.2,11.4,23.3,10.0,1.2 +19981018,15.8,11.7,23.3,8.9,1.9 +19981019,18.8,15.1,26.1,12.8,2.6 +19981020,20.9,15.4,27.2,12.2,2.7 +19981021,14.3,7.2,24.4,10.6,1.5 +19981022,12.2,2.4,16.1,8.3,4.3 +19981023,8.4,-0.4,16.7,1.1,2.2 +19981024,11.3,3.7,22.2,2.8,0.7 +19981025,13.7,6.2,23.9,5.6,0.9 +19981026,14.8,7.8,25.0,6.7,0.9 +19981027,15.6,8.7,25.6,5.6,1.5 +19981028,15.8,9.3,25.6,7.0,2.0 +19981029,19.0,11.1,26.1,6.7,2.9 +19981030,18.0,12.5,26.7,10.6,1.4 +19981031,20.9,12.2,27.2,10.0,3.1 +19981101,17.6,10.2,23.3,11.1,2.1 +19981102,15.8,11.8,23.3,10.6,1.5 +19981103,13.7,13.2,15.6,11.0,3.6 +19981104,11.8,9.9,17.0,10.0,2.7 +19981105,9.5,5.6,11.7,7.8,4.2 +19981106,8.7,1.7,11.7,7.0,2.9 +19981107,6.4,-1.3,12.2,3.3,2.7 +19981108,6.8,4.3,12.2,2.8,1.4 +19981109,10.6,9.8,12.2,10.0,1.4 +19981110,14.6,13.3,21.7,11.0,2.3 +19981111,16.7,13.6,21.7,11.1,4.0 +19981112,10.3,0.2,16.1,5.0,2.6 +19981113,10.7,4.5,16.7,3.9,0.9 +19981114,11.1,8.7,15.0,7.8,2.8 +19981115,13.2,11.0,20.6,10.6,2.4 +19981116,12.6,11.6,15.6,10.0,1.2 +19981117,15.8,11.9,22.2,13.0,2.6 +19981118,11.4,5.3,15.6,6.1,3.4 +19981119,11.2,7.4,16.1,6.1,1.5 +19981120,14.6,13.0,18.3,11.7,3.2 +19981121,10.7,-0.3,16.7,6.1,4.6 +19981122,7.1,-0.9,13.9,0.6,1.3 +19981123,9.0,3.4,17.8,2.2,2.0 +19981124,15.6,11.2,23.3,10.6,2.5 +19981125,12.7,2.3,23.3,10.6,3.1 +19981126,11.5,4.7,20.0,3.9,1.1 +19981127,14.2,-0.8,21.1,8.3,2.9 +19981128,13.6,2.6,21.7,6.7,1.5 +19981129,13.4,4.4,22.8,5.0,1.9 +19981130,13.6,8.6,22.8,4.4,2.8 +19981201,16.2,10.6,22.2,6.1,2.6 +19981202,12.9,5.1,20.6,5.0,1.4 +19981203,14.9,10.0,22.8,8.3,3.2 +19981204,15.6,10.3,22.8,7.8,2.2 +19981205,15.8,12.9,22.8,8.9,3.1 +19981206,18.1,15.6,23.9,13.0,3.3 +19981207,18.1,15.3,24.4,13.3,4.2 +19981208,17.8,16.2,23.3,15.0,3.8 +19981209,14.7,8.4,19.0,8.3,4.6 +19981210,7.8,0.9,13.3,3.3,2.0 +19981211,10.8,1.9,13.9,2.2,2.3 +19981212,9.3,-2.6,11.1,5.6,3.8 +19981213,5.7,5.4,8.3,4.0,3.3 +19981214,9.2,4.7,12.8,7.2,3.8 +19981215,3.8,-4.1,8.3,-0.6,3.4 +19981216,8.9,0.4,16.7,3.9,3.4 +19981217,7.4,-2.6,17.2,2.8,4.6 +19981218,2.6,-4.7,9.4,-2.8,2.0 +19981219,5.3,0.8,10.0,-3.9,2.3 +19981220,9.4,8.5,16.1,5.0,1.5 +19981221,13.9,12.6,19.4,11.0,0.9 +19981222,13.6,10.2,18.0,6.7,3.8 +19981223,2.2,-5.1,6.7,-1.0,4.5 +19981224,0.6,0.4,2.2,-1.0,1.5 +19981225,1.1,-0.2,2.2,-0.6,4.4 +19981226,2.1,-2.1,8.3,-0.6,2.4 +19981227,2.3,-1.2,8.9,-2.2,1.1 +19981228,3.4,-0.2,8.9,-3.3,0.9 +19981229,4.7,4.6,8.3,-1.7,3.0 +19981230,4.0,-3.6,7.2,0.0,4.2 +19981231,2.7,-6.4,10.0,-0.6,2.3 +19990101,3.4,-3.8,10.0,-2.8,1.5 +19990102,0.8,-5.8,10.6,-3.3,6.7 +19990103,1.0,-0.1,5.0,-2.0,2.4 +19990104,-2.8,-10.1,1.1,-7.2,2.6 +19990105,-5.6,-12.9,-0.6,-9.4,1.6 +19990106,-2.8,-10.3,3.9,-7.8,4.3 +19990107,6.1,0.4,15.0,2.0,4.9 +19990108,8.1,6.2,15.0,1.7,1.5 +19990109,8.6,6.8,13.3,3.9,2.8 +19990110,-0.5,-8.7,5.0,-6.1,3.1 +19990111,2.8,-6.2,12.2,-2.8,2.6 +19990112,7.7,-1.4,13.9,2.8,4.9 +19990113,8.3,1.4,14.4,2.8,2.4 +19990114,11.8,8.9,18.3,7.0,1.4 +19990115,10.1,4.1,13.9,3.9,3.5 +19990116,5.7,-4.2,15.0,-1.7,2.5 +19990117,6.4,0.2,15.6,-2.2,2.0 +19990118,10.4,5.4,17.2,6.7,4.9 +19990119,8.7,-4.4,16.7,1.7,2.6 +19990120,10.3,1.4,19.4,3.3,2.5 +19990121,10.7,9.5,19.4,2.8,1.9 +19990122,12.6,11.9,17.2,10.0,1.6 +19990123,16.6,15.4,19.4,14.0,3.9 +19990124,14.6,10.6,16.1,10.6,4.8 +19990125,9.7,0.7,20.6,2.8,2.9 +19990126,9.8,2.1,21.1,2.2,2.6 +19990127,10.9,5.1,21.1,4.4,4.4 +19990128,16.0,9.6,24.4,8.9,4.0 +19990129,15.7,10.6,24.4,8.3,1.9 +19990130,11.2,9.9,21.1,8.3,4.1 +19990131,5.9,1.2,10.0,0.0,5.8 +19990201,0.9,0.1,3.3,-1.0,5.7 +19990202,6.8,5.8,14.4,3.3,3.2 +19990203,9.8,6.4,16.7,3.0,3.7 +19990204,13.2,6.1,20.0,8.3,4.1 +19990205,9.8,-5.2,17.2,0.0,3.1 +19990206,11.9,0.3,21.1,3.9,4.4 +19990207,16.1,11.6,20.6,12.8,5.1 +19990208,15.4,6.4,21.1,9.4,3.5 +19990209,12.4,4.0,18.9,6.7,2.7 +19990210,14.4,11.1,20.0,10.0,2.4 +19990211,15.4,11.3,20.6,10.0,1.3 +19990212,13.6,10.6,18.0,7.8,4.6 +19990213,2.1,-8.9,5.6,-1.1,4.8 +19990214,0.4,-12.1,9.4,-6.1,1.9 +19990215,5.8,-9.5,15.0,-0.6,3.2 +19990216,9.5,-5.2,16.7,2.8,4.4 +19990217,10.8,5.1,17.2,2.8,2.6 +19990218,12.1,8.6,16.7,7.0,2.1 +19990219,7.3,5.7,11.7,3.0,4.1 +19990220,5.7,1.1,12.8,0.6,1.9 +19990221,5.3,-1.2,13.3,0.0,4.0 +19990222,-0.3,-11.9,5.6,-5.0,3.8 +19990223,0.4,-12.4,6.1,-5.0,2.1 +19990224,0.7,-6.9,7.8,-3.3,3.0 +19990225,3.9,-1.8,11.7,-1.7,3.0 +19990226,6.4,-1.2,14.4,-1.7,1.6 +19990227,10.9,2.8,15.6,6.7,3.2 +19990228,13.9,7.5,16.1,5.6,5.9 +19990301,9.7,-3.3,16.7,2.8,3.2 +19990302,9.3,-4.4,19.4,1.1,1.7 +19990303,10.7,3.2,20.0,-1.1,5.2 +19990304,3.7,-8.3,11.1,-3.3,4.2 +19990305,4.9,-6.0,13.3,-2.2,2.3 +19990306,9.2,2.4,17.8,2.8,4.0 +19990307,8.0,-2.7,13.9,2.2,4.3 +19990308,2.6,-12.0,6.7,-1.7,3.2 +19990309,1.3,-5.1,7.2,-1.7,3.1 +19990310,4.2,-0.1,12.2,-0.6,3.0 +19990311,4.9,-4.1,13.3,-1.7,2.6 +19990312,6.7,-9.4,15.6,-2.2,2.4 +19990313,5.9,-8.8,16.1,-2.8,3.1 +19990314,2.9,1.6,7.8,1.7,6.2 +19990315,6.7,2.4,12.2,3.9,3.8 +19990316,8.2,-2.2,18.3,0.0,3.3 +19990317,14.4,-0.2,24.4,5.6,3.6 +19990318,17.5,3.6,26.1,9.4,4.6 +19990319,15.4,-1.7,26.7,8.3,4.2 +19990320,13.1,0.4,18.9,7.8,3.3 +19990321,11.8,8.7,19.4,7.8,3.1 +19990322,10.4,-2.3,16.1,5.0,4.2 +19990323,11.9,-1.3,21.1,5.0,3.3 +19990324,15.5,5.6,21.7,4.4,3.7 +19990325,13.2,9.2,22.2,7.2,3.2 +19990326,7.4,6.3,10.0,3.9,4.0 +19990327,7.2,2.4,15.0,2.8,3.3 +19990328,10.4,-2.4,20.6,1.1,1.8 +19990329,13.6,3.2,17.2,10.6,1.7 +19990330,13.8,3.0,18.9,8.3,3.5 +19990331,10.7,4.8,19.4,8.3,3.0 +19990401,15.4,13.1,23.9,9.0,4.3 +19990402,18.8,13.1,26.1,10.6,1.5 +19990403,20.7,13.7,28.9,12.2,1.5 +19990404,22.7,15.7,30.0,11.7,5.1 +19990405,21.6,12.8,28.3,13.9,2.5 +19990406,15.8,11.6,28.3,12.8,3.9 +19990407,17.6,11.9,27.8,10.6,2.9 +19990408,20.8,11.6,28.3,10.6,2.5 +19990409,21.2,15.9,27.2,12.8,6.8 +19990410,22.7,10.5,27.8,16.1,4.6 +19990411,23.4,14.5,30.6,17.2,4.7 +19990412,18.9,2.6,26.1,11.1,5.8 +19990413,13.3,1.9,21.1,6.1,4.1 +19990414,13.7,2.1,21.7,5.0,2.3 +19990415,12.6,9.2,18.3,8.9,2.9 +19990416,14.4,3.8,18.9,8.9,7.3 +19990417,11.9,-2.5,17.2,5.6,5.7 +19990418,9.8,-0.2,16.7,2.2,3.1 +19990419,12.0,2.0,21.0,3.9,3.2 +19990420,17.9,7.4,26.1,11.1,5.3 +19990421,18.3,8.1,27.8,10.6,3.2 +19990422,22.0,10.3,28.3,15.0,4.9 +19990423,21.8,12.7,29.4,14.4,4.8 +19990424,22.7,15.8,30.0,13.9,3.9 +19990425,16.9,10.3,20.0,14.4,2.8 +19990426,17.3,12.8,20.6,13.9,2.9 +19990427,19.3,16.4,26.7,14.0,3.0 +19990428,14.4,13.2,17.8,10.0,5.0 +19990429,8.2,7.1,9.4,7.0,7.5 +19990430,7.9,5.1,13.9,5.0,7.7 +19990501,14.6,2.2,22.2,9.4,7.3 +19990502,16.3,1.3,22.8,8.9,4.9 +19990503,15.8,6.1,24.4,6.7,2.3 +19990504,18.2,10.4,26.7,10.6,2.4 +19990505,18.0,14.1,26.7,10.0,2.7 +19990506,19.1,17.9,21.7,17.8,2.7 +19990507,19.5,17.2,25.0,16.7,3.4 +19990508,20.6,12.9,26.1,14.4,5.0 +19990509,20.4,9.9,27.8,11.7,1.6 +19990510,21.9,11.8,27.8,11.7,3.3 +19990511,21.1,14.6,27.8,15.0,2.4 +19990512,18.8,15.7,27.8,15.0,1.3 +19990513,20.2,15.8,26.7,15.6,2.7 +19990514,16.8,14.0,21.1,13.3,4.4 +19990515,15.6,9.4,23.3,11.7,5.0 +19990516,17.9,8.9,25.0,11.1,3.5 +19990517,19.8,12.2,26.1,13.9,3.1 +19990518,19.8,15.6,26.7,13.3,1.6 +19990519,20.6,14.2,26.7,15.0,2.9 +19990520,19.3,9.1,26.1,12.2,2.9 +19990521,20.3,11.6,27.8,12.8,2.4 +19990522,22.0,14.6,28.9,17.2,4.0 +19990523,24.1,16.9,30.0,16.7,4.3 +19990524,23.6,14.1,30.6,17.2,6.5 +19990525,20.6,9.2,27.2,13.9,4.7 +19990526,19.7,12.9,27.8,13.3,2.3 +19990527,19.5,11.1,26.7,12.8,1.9 +19990528,20.3,7.8,26.7,12.2,1.7 +19990529,21.1,12.0,29.4,12.8,1.1 +19990530,22.3,13.4,29.4,12.8,1.7 +19990531,21.9,13.1,28.9,14.4,2.8 +19990601,22.5,14.2,27.8,15.6,2.3 +19990602,23.7,16.9,30.0,18.9,3.5 +19990603,22.4,18.8,28.3,18.0,2.8 +19990604,23.6,17.6,30.6,18.3,1.8 +19990605,22.9,17.1,30.0,17.8,2.5 +19990606,23.3,16.2,29.4,17.2,1.3 +19990607,24.7,16.4,31.7,17.2,1.6 +19990608,26.4,16.4,32.8,18.9,1.5 +19990609,27.0,17.3,33.3,18.3,1.2 +19990610,25.4,19.3,33.9,17.8,2.1 +19990611,22.8,19.0,31.1,20.0,4.8 +19990612,23.3,17.8,28.9,19.0,3.4 +19990613,23.4,14.6,30.6,17.8,2.4 +19990614,25.0,17.2,30.6,17.2,2.8 +19990615,23.1,20.3,31.1,18.9,2.8 +19990616,18.9,18.3,21.1,17.0,3.7 +19990617,20.7,16.7,27.2,17.0,2.8 +19990618,20.7,11.6,25.6,15.6,4.3 +19990619,19.2,10.8,23.9,13.9,4.6 +19990620,18.9,14.1,24.4,13.3,5.4 +19990621,19.8,15.2,25.6,16.1,4.5 +19990622,20.7,16.9,26.1,16.1,2.9 +19990623,21.4,17.1,25.6,18.0,1.2 +19990624,21.3,18.5,26.1,17.8,1.4 +19990625,22.7,18.2,27.0,20.6,2.4 +19990626,24.7,22.3,28.9,21.7,2.3 +19990627,24.2,21.7,29.4,21.7,4.7 +19990628,26.2,22.7,31.1,23.0,4.6 +19990629,26.7,21.6,31.7,23.3,4.2 +19990630,25.4,20.7,31.1,20.6,2.4 +19990701,25.7,20.3,31.1,20.6,4.0 +19990702,24.6,20.8,29.4,21.0,3.8 +19990703,26.1,21.4,31.1,22.2,2.1 +19990704,26.3,20.9,32.8,20.6,1.9 +19990705,27.7,21.9,33.9,23.3,2.6 +19990706,25.9,22.1,32.2,21.7,2.1 +19990707,24.6,21.6,32.8,21.7,2.5 +19990708,24.8,20.9,31.1,20.0,1.9 +19990709,27.6,21.1,32.2,20.0,4.8 +19990710,25.9,20.9,30.6,22.0,4.4 +19990711,22.4,20.8,23.9,18.9,3.8 +19990712,17.1,16.2,19.0,15.6,5.0 +19990713,17.9,15.7,21.7,16.0,4.5 +19990714,20.8,17.3,25.6,16.7,2.1 +19990715,22.7,18.9,26.7,20.0,1.4 +19990716,24.4,19.6,30.6,19.0,0.8 +19990717,25.3,20.3,30.0,20.0,1.4 +19990718,25.8,20.5,31.7,20.6,1.9 +19990719,27.1,20.4,32.8,21.7,2.1 +19990720,27.4,21.1,33.9,21.7,2.2 +19990721,27.4,21.4,34.4,21.7,1.6 +19990722,28.0,22.6,33.9,22.8,1.3 +19990723,29.7,21.6,35.6,24.4,1.4 +19990724,29.7,22.4,36.7,23.3,2.0 +19990725,27.8,19.8,36.1,21.7,1.8 +19990726,29.6,15.7,36.7,21.1,2.3 +19990727,28.8,20.0,36.7,21.1,2.7 +19990728,28.1,20.5,35.6,22.2,1.5 +19990729,29.2,20.7,36.1,21.7,2.3 +19990730,29.1,21.0,37.8,22.8,2.1 +19990731,31.8,21.5,39.4,26.1,1.9 +19990801,30.2,21.9,38.3,23.3,1.6 +19990802,29.3,20.1,38.3,22.8,2.7 +19990803,27.7,16.3,32.2,22.2,4.0 +19990804,26.3,16.8,32.8,21.7,2.8 +19990805,28.1,17.8,34.4,22.8,1.0 +19990806,28.3,17.2,35.6,22.8,2.0 +19990807,28.3,18.7,35.6,22.8,2.4 +19990808,28.8,17.9,35.6,21.7,2.6 +19990809,27.3,20.7,36.7,21.1,2.4 +19990810,27.8,20.3,33.9,23.0,2.0 +19990811,28.7,18.6,36.1,21.1,1.7 +19990812,29.4,18.6,37.2,20.6,1.9 +19990813,29.4,19.1,36.7,21.7,1.5 +19990814,29.7,20.5,38.0,24.4,3.3 +19990815,27.2,19.6,32.8,23.0,3.9 +19990816,27.3,20.8,34.4,22.2,2.3 +19990817,29.2,21.4,36.7,23.9,2.0 +19990818,30.3,18.0,37.8,22.2,1.6 +19990819,28.9,15.9,37.8,21.1,3.1 +19990820,26.2,20.3,32.2,22.0,2.9 +19990821,23.8,16.9,30.6,18.3,2.3 +19990822,25.1,13.8,31.7,18.3,2.9 +19990823,24.3,17.2,32.2,18.3,2.5 +19990824,22.1,20.3,31.1,19.4,2.7 +19990825,24.8,20.8,30.6,21.7,3.2 +19990826,26.3,21.2,31.7,22.2,3.9 +19990827,26.0,17.7,32.2,19.4,2.3 +19990828,26.1,17.6,32.8,19.4,3.0 +19990829,26.2,18.5,32.8,20.6,3.7 +19990830,25.4,15.6,31.7,22.2,3.8 +19990831,21.0,8.6,26.7,14.4,3.9 +19990901,21.7,11.0,30.6,13.3,1.6 +19990902,24.8,13.6,33.9,16.7,1.9 +19990903,25.8,11.8,33.9,16.7,2.9 +19990904,26.0,12.7,33.9,17.8,3.3 +19990905,24.2,17.4,33.9,17.8,2.0 +19990906,25.4,20.0,32.2,21.1,1.1 +19990907,25.6,19.8,32.8,20.6,0.7 +19990908,26.7,19.2,33.9,20.0,2.1 +19990909,24.2,19.5,34.4,19.4,1.6 +19990910,23.1,13.8,30.6,18.3,2.1 +19990911,22.8,8.1,31.1,13.9,1.5 +19990912,22.4,10.9,31.7,13.3,1.3 +19990913,21.9,12.7,30.0,15.6,1.5 +19990914,23.2,14.9,30.0,15.0,3.7 +19990915,23.5,16.9,30.6,17.2,6.5 +19990916,23.1,6.8,28.3,18.9,7.2 +19990917,19.7,5.4,28.9,12.2,3.2 +19990918,18.8,8.6,27.2,12.2,1.9 +19990919,20.3,12.1,27.2,14.4,2.0 +19990920,20.4,13.9,27.8,14.4,2.1 +19990921,19.4,16.3,28.3,14.4,1.9 +19990922,17.2,7.9,22.8,12.2,4.2 +19990923,15.3,4.3,23.9,6.1,1.3 +19990924,17.2,8.2,26.1,8.9,1.9 +19990925,18.6,10.7,27.2,11.1,0.8 +19990926,20.7,14.9,27.8,10.0,1.8 +19990927,22.0,20.4,27.8,13.9,2.2 +19990928,22.8,21.5,26.1,20.6,2.4 +19990929,22.8,22.0,26.1,21.7,1.6 +19990930,18.0,8.8,25.0,11.7,4.8 +19991001,15.2,7.2,22.8,8.3,1.1 +19991002,16.3,9.9,23.9,9.0,1.4 +19991003,19.0,14.4,26.1,9.4,1.1 +19991004,18.9,17.7,26.1,13.9,2.3 +19991005,17.7,14.6,22.8,13.0,1.7 +19991006,17.1,12.4,23.3,12.8,1.7 +19991007,16.0,12.2,22.2,11.7,2.2 +19991008,15.0,11.8,21.7,10.6,2.9 +19991009,18.8,15.3,24.4,10.6,2.5 +19991010,19.2,18.5,25.0,16.1,1.4 +19991011,21.1,18.3,25.6,17.8,3.0 +19991012,18.9,13.9,22.2,16.0,5.0 +19991013,15.9,13.0,20.6,13.9,3.0 +19991014,18.4,15.2,23.3,13.9,2.6 +19991015,16.6,10.2,20.0,13.0,3.9 +19991016,17.1,10.2,23.3,12.8,4.8 +19991017,20.8,15.1,26.7,12.8,6.0 +19991018,19.5,10.8,26.7,15.6,3.9 +19991019,14.5,8.1,17.2,12.0,4.0 +19991020,12.2,10.9,14.0,11.0,3.2 +19991021,12.1,5.8,17.2,6.0,2.7 +19991022,12.4,6.4,22.2,5.0,2.5 +19991023,11.9,1.0,22.2,4.4,3.3 +19991024,8.9,-1.7,15.0,1.7,3.5 +19991025,9.3,0.9,17.2,1.1,1.1 +19991026,10.9,3.8,20.0,1.1,0.8 +19991027,15.6,5.4,23.9,3.3,0.3 +19991028,14.3,7.1,23.9,7.2,1.7 +19991029,13.4,8.3,22.2,6.7,0.1 +19991030,14.7,9.0,22.2,6.7,0.9 +19991031,18.3,13.2,25.0,7.8,0.8 +19991101,16.8,15.3,25.0,14.4,1.8 +19991102,16.4,14.0,18.0,10.0,5.4 +19991103,6.8,-3.8,18.3,0.6,3.3 +19991104,7.2,-3.9,16.1,0.0,0.1 +19991105,10.3,0.0,20.6,-0.6,0.4 +19991106,13.4,4.6,23.9,2.8,2.0 +19991107,17.5,10.4,25.0,10.6,1.6 +19991108,16.8,9.3,25.0,10.6,1.5 +19991109,16.4,11.3,25.0,8.9,1.5 +19991110,17.4,11.6,25.0,8.9,3.9 +19991111,16.1,11.3,23.9,10.0,3.7 +19991112,13.8,11.6,24.4,10.0,3.2 +19991113,13.4,9.6,21.7,7.8,2.0 +19991114,15.9,9.4,26.1,7.0,2.3 +19991115,15.0,1.6,26.1,7.2,4.0 +19991116,10.7,-4.6,18.3,7.2,5.6 +19991117,7.2,-3.3,16.1,-1.7,2.2 +19991118,7.1,-0.1,16.1,0.6,1.1 +19991119,9.5,3.6,19.4,2.2,1.1 +19991120,14.7,12.0,20.6,10.0,0.9 +19991121,16.3,13.8,21.1,10.0,2.1 +19991122,15.8,13.9,21.7,12.2,3.0 +19991123,16.8,14.2,21.1,13.9,3.5 +19991124,16.2,14.4,21.1,13.9,3.0 +19991125,15.8,15.1,17.8,14.0,2.8 +19991126,16.8,15.5,18.3,13.9,4.4 +19991127,12.4,0.4,18.9,8.3,3.8 +19991128,12.2,3.4,19.4,6.7,1.3 +19991129,12.4,3.5,20.6,5.0,3.0 +19991130,5.4,-8.9,17.2,0.0,4.3 +19991201,2.1,-8.8,8.3,-3.3,2.4 +19991202,4.9,-6.8,14.4,-1.7,2.0 +19991203,9.1,-3.0,17.2,-2.2,3.2 +19991204,11.6,0.4,17.8,3.3,3.2 +19991205,12.1,6.7,21.1,5.0,2.6 +19991206,13.2,9.9,22.2,5.0,3.9 +19991207,5.6,-3.3,15.0,-1.7,2.5 +19991208,5.5,-1.2,15.0,-1.1,0.7 +19991209,7.9,3.2,15.0,-1.7,1.2 +19991210,14.0,9.8,19.4,11.0,3.0 +19991211,10.6,2.1,20.0,5.0,2.8 +19991212,7.3,0.6,14.4,2.2,1.2 +19991213,10.3,8.6,12.2,2.2,3.1 +19991214,12.4,9.1,17.2,9.4,5.9 +19991215,8.2,4.6,17.2,2.8,5.1 +19991216,7.3,-3.7,15.0,-0.6,3.5 +19991217,6.8,-6.0,15.0,-0.6,2.3 +19991218,6.5,-3.3,15.0,-1.7,1.8 +19991219,10.3,1.1,12.0,9.0,5.7 +19991220,8.8,8.2,12.2,7.8,3.8 +19991221,8.3,8.2,11.1,5.6,1.8 +19991222,9.8,6.6,13.3,7.0,1.3 +19991223,6.9,-1.8,12.8,3.0,1.6 +19991224,4.3,-3.8,12.8,0.0,4.1 +19991225,-0.8,-10.3,9.4,-5.6,3.0 +19991226,2.8,-6.6,14.4,-3.3,4.7 +19991227,5.4,-7.9,15.0,-3.9,2.5 +19991228,3.7,-8.2,11.1,-2.8,3.0 +19991229,4.2,-4.9,12.2,-2.8,3.0 +19991230,7.2,-0.1,16.1,0.0,3.3 +19991231,12.4,4.9,19.4,7.8,3.0 +20000101,10.2,9.4,19.4,5.0,1.2 +20000102,13.1,12.4,18.0,10.0,2.2 +20000103,15.0,13.6,20.0,11.7,2.9 +20000104,14.9,11.9,20.0,11.1,3.9 +20000105,5.8,-3.4,16.7,1.1,4.3 +20000106,3.0,-4.8,9.4,-1.7,2.2 +20000107,8.4,-0.1,15.6,2.2,1.2 +20000108,6.3,-4.1,15.6,0.6,1.8 +20000109,6.8,3.9,11.1,0.6,1.0 +20000110,10.7,6.8,18.3,7.0,4.3 +20000111,12.4,-0.2,20.0,7.2,5.4 +20000112,11.6,-0.8,20.6,2.2,2.5 +20000113,14.8,4.7,23.3,10.0,4.8 +20000114,4.1,-11.1,11.7,-0.6,6.2 +20000115,2.2,-11.1,10.6,-5.0,2.8 +20000116,9.1,-3.2,15.0,5.6,6.0 +20000117,9.2,0.3,15.6,5.6,3.1 +20000118,2.8,-3.5,11.7,0.0,2.2 +20000119,3.6,-0.9,9.4,-1.0,2.4 +20000120,6.3,-0.2,10.0,-1.1,5.2 +20000121,-0.6,-13.2,10.0,-5.6,3.9 +20000122,-1.7,-12.8,5.6,-5.6,2.4 +20000123,-1.1,-2.2,1.0,-3.3,2.2 +20000124,1.1,0.1,2.0,0.6,3.3 +20000125,1.4,-7.4,3.9,-2.2,3.9 +20000126,-1.9,-12.1,4.4,-5.0,6.3 +20000127,-2.4,-14.9,4.4,-7.2,3.0 +20000128,0.1,-14.4,5.6,-3.9,2.0 +20000129,1.7,-9.2,5.6,-4.4,3.2 +20000130,-0.8,-1.6,1.0,-2.0,3.1 +20000131,0.0,-1.8,3.3,-4.0,0.6 +20000201,1.2,-4.7,11.1,-4.4,2.1 +20000202,3.2,-9.6,12.2,-1.7,3.7 +20000203,4.4,-7.6,13.3,-2.2,4.7 +20000204,7.5,-5.3,13.3,-2.8,5.2 +20000205,3.0,-7.3,12.2,-1.7,3.8 +20000206,3.9,-7.9,11.7,-2.8,2.0 +20000207,6.8,-5.6,16.1,0.6,2.1 +20000208,8.9,-0.4,16.7,-0.6,3.5 +20000209,7.6,0.3,16.1,1.1,2.1 +20000210,9.9,1.2,18.9,1.7,1.7 +20000211,14.4,6.4,23.3,8.3,4.7 +20000212,10.6,9.3,18.3,5.6,3.7 +20000213,2.9,2.9,13.3,1.7,3.3 +20000214,9.2,7.0,19.0,2.8,4.3 +20000215,9.9,0.7,19.4,2.2,3.1 +20000216,12.5,4.2,23.3,2.2,4.0 +20000217,11.8,2.9,23.3,7.2,3.3 +20000218,6.0,4.3,11.7,3.0,3.2 +20000219,12.6,8.4,22.2,3.3,4.3 +20000220,6.8,-2.1,12.8,1.7,3.9 +20000221,6.1,-4.3,13.3,0.6,2.8 +20000222,5.2,-2.5,12.8,-1.7,0.7 +20000223,9.7,0.2,16.1,5.0,1.2 +20000224,12.4,5.5,18.9,7.2,1.2 +20000225,15.8,10.8,23.3,7.8,2.7 +20000226,16.2,10.8,24.4,7.8,2.9 +20000227,14.8,12.8,22.8,8.9,3.1 +20000228,12.6,2.7,18.3,7.8,3.3 +20000229,10.9,-1.4,18.9,1.7,1.7 +20000301,13.8,4.9,21.7,7.2,4.5 +20000302,14.8,4.3,22.2,6.1,4.0 +20000303,11.3,-1.1,21.1,3.9,2.6 +20000304,10.8,6.6,18.9,3.9,2.9 +20000305,12.4,3.6,21.1,6.1,2.8 +20000306,15.3,4.9,22.8,7.2,1.6 +20000307,16.2,6.8,25.6,6.7,2.4 +20000308,19.2,8.3,27.2,11.7,3.8 +20000309,19.9,12.3,27.2,10.0,5.7 +20000310,18.8,14.5,26.7,12.2,3.4 +20000311,17.2,15.6,24.4,12.2,5.3 +20000312,9.3,3.1,21.1,3.9,6.4 +20000313,4.4,-4.7,11.7,-1.1,2.1 +20000314,7.9,-1.5,17.2,0.0,1.2 +20000315,12.3,2.7,20.0,6.7,2.4 +20000316,12.4,8.4,20.6,6.1,1.7 +20000317,15.8,10.7,18.3,10.0,5.1 +20000318,6.6,-4.1,18.3,1.1,5.2 +20000319,7.9,0.1,10.6,1.1,5.1 +20000320,11.4,9.9,16.7,6.7,5.5 +20000321,12.3,9.0,17.8,8.9,3.7 +20000322,14.2,7.4,21.1,6.7,2.0 +20000323,13.9,7.6,21.1,5.6,4.0 +20000324,14.3,6.4,22.2,7.2,1.3 +20000325,17.6,8.7,25.0,11.1,3.9 +20000326,18.9,7.3,25.6,10.6,3.5 +20000327,15.3,6.9,24.4,10.6,3.1 +20000328,13.2,3.1,22.2,6.1,6.3 +20000329,10.8,-2.4,22.8,2.8,2.8 +20000330,13.1,7.8,21.1,9.4,2.4 +20000331,16.4,7.6,21.1,8.3,3.4 +20000401,15.3,8.1,22.2,8.3,1.7 +20000402,14.7,11.2,22.8,8.3,2.5 +20000403,18.6,17.3,22.8,16.0,3.7 +20000404,15.7,9.9,21.7,11.1,6.9 +20000405,7.3,-2.8,17.2,-1.1,3.3 +20000406,15.1,4.0,25.0,5.6,5.7 +20000407,19.5,10.0,25.6,11.7,5.8 +20000408,15.7,9.8,22.2,8.3,6.9 +20000409,7.7,-4.8,18.3,-0.6,4.6 +20000410,13.8,-1.1,23.3,5.0,3.7 +20000411,16.9,5.4,23.3,3.9,4.8 +20000412,17.9,12.4,23.3,11.1,1.9 +20000413,9.7,5.9,23.9,5.0,6.6 +20000414,8.1,7.4,13.3,5.0,6.0 +20000415,11.8,11.7,15.0,5.6,4.1 +20000416,17.3,13.7,25.6,12.8,1.6 +20000417,19.7,12.4,26.1,13.9,4.6 +20000418,15.9,9.1,26.7,10.6,4.9 +20000419,16.3,9.9,25.0,8.9,2.0 +20000420,19.1,12.5,26.7,11.7,2.8 +20000421,19.7,10.4,27.2,10.6,6.1 +20000422,11.9,5.1,18.9,5.0,3.9 +20000423,13.3,5.8,20.6,5.6,3.4 +20000424,14.7,10.8,20.6,5.0,3.1 +20000425,11.9,10.2,17.2,10.0,4.9 +20000426,12.7,10.1,18.3,10.0,1.9 +20000427,13.1,6.1,21.1,5.6,2.4 +20000428,13.9,9.1,21.7,5.6,2.5 +20000429,13.0,9.4,21.7,6.1,1.7 +20000430,16.2,7.3,25.0,8.3,1.2 +20000501,18.6,8.6,26.1,11.1,3.6 +20000502,20.0,11.8,27.2,13.9,2.8 +20000503,18.3,16.6,27.2,13.3,2.8 +20000504,19.9,17.0,24.4,17.0,1.5 +20000505,19.9,13.9,26.7,12.8,1.7 +20000506,21.3,14.6,28.3,14.4,1.9 +20000507,22.1,14.5,28.9,13.9,2.8 +20000508,22.7,14.9,29.4,13.9,3.7 +20000509,23.3,15.6,28.9,16.1,3.9 +20000510,23.8,15.4,29.4,16.1,5.0 +20000511,20.4,11.2,29.4,12.2,1.7 +20000512,24.4,16.8,31.1,12.2,3.5 +20000513,26.0,19.3,31.7,17.2,4.0 +20000514,22.0,12.9,32.2,17.8,2.5 +20000515,18.9,5.8,26.1,13.3,3.5 +20000516,17.3,7.4,24.4,11.1,1.8 +20000517,20.1,13.4,25.6,15.0,3.8 +20000518,22.7,16.1,29.4,15.0,4.4 +20000519,25.7,16.2,31.7,20.0,5.1 +20000520,25.4,17.1,32.2,19.4,3.5 +20000521,23.2,18.1,31.1,19.4,2.2 +20000522,22.9,15.7,28.3,17.8,3.2 +20000523,20.8,14.5,28.9,14.4,2.8 +20000524,23.4,19.3,30.6,18.0,3.4 +20000525,26.2,20.2,31.7,18.3,3.7 +20000526,22.0,16.4,31.7,16.1,1.6 +20000527,25.9,18.9,32.8,20.0,3.1 +20000528,25.8,18.4,33.3,21.7,4.7 +20000529,20.5,13.5,30.0,15.6,2.5 +20000530,18.7,10.8,25.0,12.2,4.2 +20000531,19.7,11.4,27.8,12.2,1.6 +20000601,24.4,15.4,33.3,16.1,1.1 +20000602,27.7,16.8,35.6,20.0,1.6 +20000603,27.4,17.8,36.1,18.9,1.0 +20000604,21.9,19.6,32.8,18.9,2.0 +20000605,21.9,20.4,25.6,20.0,1.2 +20000606,21.0,14.3,24.4,17.2,3.9 +20000607,18.0,7.4,26.1,9.4,2.4 +20000608,19.8,10.9,27.8,12.8,1.4 +20000609,23.3,13.0,32.2,16.1,1.4 +20000610,25.5,14.8,32.8,15.0,2.0 +20000611,26.1,15.9,33.3,17.2,2.1 +20000612,27.5,15.9,34.4,18.3,2.3 +20000613,28.0,17.4,35.0,20.0,2.6 +20000614,28.4,19.0,35.6,20.6,2.7 +20000615,28.2,19.2,35.6,21.7,3.7 +20000616,26.3,19.7,35.0,21.1,5.3 +20000617,24.9,20.5,31.7,21.0,3.1 +20000618,26.0,20.7,32.8,20.6,3.6 +20000619,25.1,20.4,32.8,20.6,2.5 +20000620,25.1,21.6,31.1,20.0,1.5 +20000621,25.1,21.8,32.8,20.0,1.6 +20000622,25.7,21.6,32.8,20.6,2.9 +20000623,26.2,15.8,33.9,18.3,1.3 +20000624,27.4,16.6,33.9,17.2,1.4 +20000625,27.1,18.1,35.6,18.9,2.6 +20000626,27.2,18.3,35.6,20.6,3.5 +20000627,26.2,19.0,35.0,20.6,4.9 +20000628,26.2,20.3,33.3,20.6,4.3 +20000629,23.0,20.7,26.1,21.0,2.7 +20000630,23.3,15.5,28.9,17.2,1.7 +20000701,24.6,15.2,30.6,18.9,1.4 +20000702,24.8,17.5,31.7,18.9,1.6 +20000703,26.2,18.3,31.7,18.3,3.8 +20000704,27.9,18.4,34.4,22.2,3.3 +20000705,28.1,19.8,35.0,21.7,0.9 +20000706,28.3,20.5,35.6,21.7,2.1 +20000707,27.2,20.0,35.6,22.8,2.8 +20000708,26.1,19.1,33.9,21.1,1.9 +20000709,28.4,19.5,33.9,22.8,4.2 +20000710,30.2,18.5,36.7,23.9,4.1 +20000711,29.3,18.3,37.2,21.7,1.4 +20000712,26.9,20.8,36.7,21.7,1.7 +20000713,24.4,21.5,33.3,21.7,2.6 +20000714,25.9,21.2,31.7,21.7,1.9 +20000715,26.4,17.1,32.8,20.0,2.9 +20000716,26.1,15.0,33.9,18.3,1.9 +20000717,26.7,14.1,33.3,18.3,1.6 +20000718,27.3,16.4,34.4,20.0,1.0 +20000719,28.9,18.9,35.6,19.4,2.9 +20000720,29.6,17.9,36.1,22.2,2.4 +20000721,27.0,16.6,36.1,22.8,4.0 +20000722,25.8,20.8,32.2,22.8,1.6 +20000723,24.6,20.6,32.8,21.7,3.1 +20000724,22.8,19.5,30.0,20.0,3.0 +20000725,20.1,17.5,23.3,18.0,5.2 +20000726,23.2,17.4,28.9,20.0,2.3 +20000727,24.2,19.4,31.1,20.6,0.9 +20000728,24.6,19.6,33.9,20.0,1.4 +20000729,24.5,19.2,33.9,18.3,1.2 +20000730,26.9,20.9,32.8,18.3,2.0 +20000731,24.4,20.9,32.8,21.7,2.1 +20000801,24.8,20.9,30.6,21.0,2.4 +20000802,24.3,20.8,31.1,21.1,2.5 +20000803,24.7,21.4,30.0,21.7,1.7 +20000804,24.3,21.7,30.0,21.7,1.4 +20000805,25.1,19.7,31.7,20.0,1.2 +20000806,26.1,21.8,31.7,20.0,1.2 +20000807,28.6,22.4,34.4,23.9,2.5 +20000808,28.6,22.3,34.4,23.3,1.3 +20000809,28.6,21.9,35.6,22.8,0.7 +20000810,27.7,21.6,35.6,21.1,2.3 +20000811,27.7,20.7,33.3,21.1,2.0 +20000812,25.3,15.4,31.1,18.9,2.4 +20000813,23.8,13.6,30.6,18.3,1.6 +20000814,24.2,14.9,30.6,17.8,0.4 +20000815,25.6,16.3,32.2,18.9,0.8 +20000816,27.8,18.5,35.6,21.1,1.7 +20000817,28.3,19.9,35.6,20.6,1.2 +20000818,29.8,21.1,37.2,23.3,2.4 +20000819,27.2,19.1,37.8,23.3,2.3 +20000820,25.3,18.3,28.3,22.0,2.1 +20000821,20.6,16.9,28.3,17.8,2.2 +20000822,21.9,16.2,28.0,17.2,0.3 +20000823,23.7,17.4,30.6,17.0,1.5 +20000824,26.6,20.3,32.8,22.2,1.7 +20000825,26.7,19.3,33.9,21.7,0.9 +20000826,25.7,19.0,32.2,20.0,1.6 +20000827,24.6,20.8,32.2,20.0,1.9 +20000828,25.6,18.7,33.3,19.0,2.2 +20000829,24.6,18.3,33.9,19.4,3.2 +20000830,24.6,18.4,30.6,19.4,3.9 +20000831,23.8,20.9,31.1,20.6,4.4 +20000901,24.5,21.3,29.4,21.7,0.7 +20000902,24.2,21.8,30.0,21.7,1.6 +20000903,24.4,22.2,28.3,22.2,0.8 +20000904,25.1,22.3,28.3,23.0,0.7 +20000905,22.9,19.8,26.1,19.4,3.8 +20000906,17.7,12.8,26.7,16.1,6.7 +20000907,19.1,14.4,24.0,16.0,6.0 +20000908,22.3,17.1,26.1,15.6,2.8 +20000909,23.8,18.5,28.9,20.0,1.0 +20000910,24.0,18.3,30.0,18.3,0.6 +20000911,24.2,18.3,30.0,17.8,0.6 +20000912,24.3,18.7,30.0,18.9,1.1 +20000913,24.9,19.2,31.1,19.4,0.9 +20000914,26.5,20.7,32.8,19.4,1.5 +20000915,24.8,17.0,32.8,19.4,1.9 +20000916,18.7,6.6,28.9,11.7,0.6 +20000917,16.4,6.8,24.4,10.6,3.1 +20000918,16.2,10.6,22.8,10.6,3.8 +20000919,21.3,16.3,29.4,13.9,3.7 +20000920,23.3,18.4,30.0,16.7,3.5 +20000921,22.9,20.7,30.0,17.2,3.7 +20000922,20.7,18.5,23.3,17.0,3.1 +20000923,21.4,18.2,30.0,16.7,4.4 +20000924,25.7,20.9,32.2,17.2,2.7 +20000925,24.6,21.8,32.2,20.6,3.7 +20000926,18.1,11.9,29.4,12.8,3.5 +20000927,14.6,8.2,21.7,8.9,2.2 +20000928,16.5,10.7,25.0,8.9,1.1 +20000929,17.1,10.6,25.0,10.0,3.9 +20000930,17.9,12.2,23.9,12.8,4.2 +20001001,19.3,13.7,24.4,13.3,3.3 +20001002,18.5,12.9,26.7,12.2,1.2 +20001003,21.6,15.4,29.4,12.2,2.1 +20001004,22.3,16.5,29.4,14.4,2.2 +20001005,22.0,15.9,29.4,15.0,2.0 +20001006,21.9,17.1,28.9,15.0,2.5 +20001007,18.6,9.3,26.1,13.9,2.9 +20001008,11.4,0.7,22.2,7.8,4.3 +20001009,8.4,-3.3,13.9,3.9,3.6 +20001010,10.7,-1.8,20.0,3.3,2.5 +20001011,14.1,-1.8,23.9,3.3,1.4 +20001012,15.4,0.4,24.4,6.1,1.3 +20001013,15.7,3.7,27.2,5.0,0.7 +20001014,17.8,4.8,28.3,5.0,1.6 +20001015,17.6,4.9,28.3,7.8,0.9 +20001016,18.6,6.4,28.3,7.8,1.1 +20001017,18.9,9.3,28.3,10.0,0.9 +20001018,20.6,11.7,28.9,11.1,1.5 +20001019,18.8,8.4,28.9,12.2,3.0 +20001020,16.8,10.3,23.9,11.7,1.1 +20001021,18.8,12.7,26.7,11.7,1.6 +20001022,20.5,13.5,27.8,12.2,1.5 +20001023,20.0,12.2,27.8,13.3,2.8 +20001024,17.8,10.2,25.0,11.1,1.1 +20001025,18.7,12.4,25.0,11.1,1.2 +20001026,19.3,12.1,25.0,13.3,1.5 +20001027,18.9,11.7,27.8,11.0,0.7 +20001028,21.9,10.5,28.9,14.4,2.8 +20001029,17.8,7.1,22.2,12.0,2.1 +20001030,15.1,2.4,23.3,7.2,1.8 +20001031,15.1,-1.0,25.0,3.9,1.3 +20001101,15.8,-0.2,25.0,3.9,1.5 +20001102,16.3,5.9,26.1,6.1,0.9 +20001103,19.1,10.1,28.3,8.3,1.1 +20001104,18.8,12.8,28.3,10.6,1.0 +20001105,16.2,10.3,22.2,12.2,1.7 +20001106,12.3,4.9,21.1,7.8,1.5 +20001107,14.2,10.7,17.8,7.8,2.4 +20001108,17.1,15.1,23.3,12.2,1.4 +20001109,18.9,17.8,23.3,14.4,2.8 +20001110,14.6,8.3,20.6,8.3,4.9 +20001111,10.4,0.4,20.0,2.2,1.3 +20001112,10.3,3.2,20.0,2.2,1.2 +20001113,10.2,5.3,17.8,2.8,1.8 +20001114,12.9,6.6,17.8,3.3,2.1 +20001115,7.1,-3.2,16.7,1.7,2.8 +20001116,6.6,1.6,12.8,1.1,1.6 +20001117,9.2,6.7,12.8,1.1,2.3 +20001118,4.2,-2.3,7.8,1.0,1.6 +20001119,3.1,1.3,6.1,1.0,1.9 +20001120,4.9,-0.2,13.9,0.6,3.7 +20001121,2.9,-11.1,13.9,-2.8,2.3 +20001122,0.9,-9.4,11.1,-6.7,1.7 +20001123,6.7,-1.4,13.3,-6.7,1.5 +20001124,6.1,1.7,13.3,0.6,2.0 +20001125,5.8,3.8,8.9,2.2,6.1 +20001126,9.3,6.2,14.4,3.9,3.7 +20001127,8.9,2.4,15.0,3.3,4.0 +20001128,8.8,-1.4,17.2,-0.6,2.4 +20001129,10.1,2.3,17.2,-0.6,2.5 +20001130,7.8,-2.7,16.7,1.7,2.4 +20001201,4.4,-3.6,12.8,-1.1,1.7 +20001202,5.6,-0.4,11.1,-1.1,2.4 +20001203,1.7,-1.7,7.8,-1.1,4.4 +20001204,0.1,-8.3,8.3,-7.2,0.8 +20001205,3.2,-6.1,12.2,-7.2,1.3 +20001206,1.7,-4.6,12.2,-4.4,1.1 +20001207,5.1,-3.6,12.8,-3.9,2.8 +20001208,8.7,-2.6,17.8,-1.1,4.1 +20001209,7.1,-1.4,17.8,2.2,2.5 +20001210,6.7,-1.6,10.6,2.2,3.2 +20001211,7.6,1.8,11.7,5.0,1.6 +20001212,10.0,2.3,12.2,5.0,4.7 +20001213,1.3,-8.1,12.2,-1.1,4.8 +20001214,3.1,1.7,12.8,-1.1,2.9 +20001215,4.4,2.7,12.8,0.0,3.0 +20001216,3.4,2.7,10.0,0.0,4.5 +20001217,4.8,-0.6,11.1,-1.1,6.7 +20001218,-0.9,-8.1,7.8,-7.0,2.3 +20001219,1.3,-3.1,8.3,-6.7,3.8 +20001220,-3.8,-13.2,3.3,-7.8,3.0 +20001221,-2.2,-8.4,2.2,-7.8,1.7 +20001222,-0.8,-6.7,3.3,-6.7,3.7 +20001223,-3.0,-15.2,3.3,-7.8,2.9 +20001224,0.1,-9.6,9.4,-5.6,1.0 +20001225,0.9,-12.8,10.0,-6.1,3.5 +20001226,-1.7,-14.1,3.3,-4.4,1.2 +20001227,1.3,-5.7,3.0,0.0,2.1 +20001228,2.8,0.0,3.3,0.0,3.0 +20001229,-0.4,-10.3,5.0,-6.7,2.5 +20001230,-1.3,-10.8,5.0,-6.7,3.1 +20001231,-4.4,-11.9,2.8,-10.0,2.3 +20010101,-2.2,-9.9,2.8,-10.0,1.4 +20010102,-1.1,-10.4,3.3,-5.6,3.5 +20010103,-3.1,-12.1,3.9,-10.0,2.0 +20010104,0.5,-9.4,8.3,-10.0,2.0 +20010105,2.7,-5.7,12.2,-7.2,3.9 +20010106,5.3,-7.3,12.2,-4.4,3.2 +20010107,4.9,-5.0,13.9,-1.7,1.6 +20010108,7.8,3.3,13.9,-1.7,2.6 +20010109,2.1,-7.1,5.6,-2.0,4.1 +20010110,3.5,-12.3,13.9,-3.3,3.3 +20010111,5.2,-7.9,13.9,-3.3,3.4 +20010112,5.1,1.6,10.6,-2.2,2.4 +20010113,6.5,-0.3,12.8,2.8,3.2 +20010114,9.2,0.3,12.8,2.8,1.7 +20010115,11.1,6.8,18.3,2.2,3.0 +20010116,9.4,0.3,18.3,3.9,2.0 +20010117,6.3,0.7,13.9,3.9,2.0 +20010118,6.3,5.8,9.4,4.4,2.3 +20010119,6.9,6.8,10.0,5.6,2.3 +20010120,8.4,6.1,13.0,3.0,4.1 +20010121,1.2,-8.9,12.8,-3.9,2.2 +20010122,2.6,-6.9,9.4,-3.9,2.3 +20010123,4.5,-8.6,15.0,-2.8,2.8 +20010124,6.9,-6.7,15.0,-2.2,1.5 +20010125,3.3,-7.4,13.3,-1.1,3.5 +20010126,0.3,-10.1,8.9,-6.7,2.3 +20010127,7.8,-4.2,15.6,2.8,4.4 +20010128,4.2,-7.2,16.1,-4.4,1.2 +20010129,6.9,-3.9,17.2,-4.4,1.3 +20010130,12.7,6.1,15.0,10.6,5.8 +20010131,12.6,3.2,18.3,9.0,6.3 +20010201,8.4,-1.0,18.9,3.3,2.1 +20010202,6.4,-2.1,12.8,2.8,2.6 +20010203,2.5,-11.4,12.8,-4.4,2.0 +20010204,4.7,-5.3,12.8,-4.4,1.5 +20010205,7.4,0.4,13.9,0.0,3.2 +20010206,5.4,-4.6,15.6,-3.3,2.1 +20010207,10.3,-3.7,19.4,-3.3,1.9 +20010208,10.6,1.4,20.6,0.6,1.6 +20010209,12.3,7.6,20.6,1.7,2.8 +20010210,14.8,7.6,20.6,6.1,4.1 +20010211,5.0,-4.1,17.8,0.6,4.3 +20010212,3.6,0.3,9.4,0.6,3.8 +20010213,4.9,3.6,10.0,1.7,1.3 +20010214,10.0,9.3,15.0,2.8,2.6 +20010215,15.6,14.3,17.8,7.8,3.6 +20010216,17.9,15.2,22.8,13.9,4.9 +20010217,10.8,3.1,22.8,5.6,5.2 +20010218,2.9,-7.7,13.3,-2.2,2.6 +20010219,5.0,-4.2,13.3,-2.2,2.8 +20010220,8.7,1.3,15.0,-0.6,2.4 +20010221,12.6,8.8,18.9,1.7,3.2 +20010222,5.2,1.3,18.9,0.6,3.9 +20010223,5.4,1.5,16.7,0.6,1.4 +20010224,8.2,2.1,16.7,0.6,1.7 +20010225,13.2,10.6,18.9,10.0,3.0 +20010226,15.6,5.5,21.7,8.9,3.5 +20010227,12.0,-3.8,21.7,5.6,2.6 +20010228,12.7,1.7,16.7,5.6,2.0 +20010301,10.7,2.1,18.3,5.0,1.5 +20010302,14.9,6.5,24.4,5.0,4.0 +20010303,13.8,11.7,24.4,8.3,2.3 +20010304,10.3,9.9,12.0,9.0,3.3 +20010305,8.7,-0.9,13.3,5.0,5.6 +20010306,2.8,-9.1,7.2,-2.0,6.1 +20010307,4.2,-7.5,12.2,-1.7,5.6 +20010308,6.2,-5.7,15.6,-2.8,3.4 +20010309,10.2,-3.8,15.6,-2.8,2.9 +20010310,5.8,-7.8,12.8,-2.0,2.6 +20010311,8.9,-3.3,17.8,-1.7,2.9 +20010312,11.1,4.2,17.8,0.0,1.5 +20010313,16.1,9.1,21.7,6.7,6.5 +20010314,14.3,0.5,20.6,8.0,4.1 +20010315,11.6,7.3,21.1,8.3,3.3 +20010316,10.7,9.2,17.8,7.8,2.9 +20010317,11.6,3.7,17.8,2.8,2.7 +20010318,8.7,-1.4,17.8,2.8,4.2 +20010319,7.5,-7.0,14.4,1.1,4.5 +20010320,4.8,-1.9,13.9,0.6,7.5 +20010321,6.2,2.9,12.8,0.6,5.2 +20010322,11.9,1.1,18.3,3.3,6.4 +20010323,12.8,-0.9,20.0,6.7,3.0 +20010324,12.8,1.3,21.7,3.3,2.7 +20010325,11.2,1.6,21.7,3.3,3.2 +20010326,7.1,-8.7,15.6,0.6,4.1 +20010327,4.2,-9.2,11.1,-1.7,2.1 +20010328,6.1,-7.5,13.3,-1.7,2.8 +20010329,6.3,2.3,13.3,0.0,4.8 +20010330,9.4,7.9,14.4,4.4,2.7 +20010331,13.2,8.7,20.0,6.7,4.0 +20010401,11.1,1.6,20.0,4.4,4.4 +20010402,10.1,-5.0,18.9,2.2,2.2 +20010403,11.7,5.3,18.9,2.2,3.7 +20010404,13.8,9.8,18.9,7.8,2.7 +20010405,12.4,7.4,18.9,8.9,2.6 +20010406,15.4,11.0,24.4,10.6,4.0 +20010407,21.7,14.7,28.9,10.6,4.5 +20010408,23.2,12.9,29.4,16.1,4.3 +20010409,23.4,13.3,30.6,15.6,3.4 +20010410,23.7,13.9,31.7,13.9,2.7 +20010411,23.2,14.5,31.7,13.9,2.6 +20010412,22.6,14.3,30.0,15.6,4.9 +20010413,20.8,16.5,24.4,16.0,3.1 +20010414,19.3,8.7,25.0,11.1,1.9 +20010415,17.8,11.6,25.0,11.1,3.7 +20010416,16.5,6.7,21.1,10.6,3.8 +20010417,10.7,-2.7,17.2,6.0,4.8 +20010418,7.0,-5.2,15.6,0.6,3.3 +20010419,9.1,-3.7,17.8,0.0,1.5 +20010420,14.1,0.8,22.8,7.8,4.1 +20010421,17.9,9.3,25.6,7.2,4.1 +20010422,19.6,12.0,26.7,12.2,3.7 +20010423,19.8,13.1,26.7,13.3,3.8 +20010424,19.7,14.3,27.2,13.3,3.7 +20010425,14.1,9.3,27.2,10.6,3.2 +20010426,13.2,7.4,20.6,7.2,1.5 +20010427,16.3,6.1,25.6,7.2,1.6 +20010428,20.2,7.1,29.4,7.2,2.1 +20010429,18.4,5.1,29.4,10.0,4.8 +20010430,17.8,8.9,24.4,13.3,2.2 +20010501,18.8,13.4,26.7,11.7,2.0 +20010502,19.4,12.5,26.7,11.7,2.4 +20010503,19.9,10.9,27.8,11.1,1.8 +20010504,20.6,9.8,28.9,11.1,2.1 +20010505,21.8,12.0,30.0,12.2,2.3 +20010506,21.1,15.1,30.0,13.9,3.4 +20010507,18.2,8.0,26.1,13.9,4.8 +20010508,17.2,10.1,22.2,13.9,1.6 +20010509,19.3,13.7,25.6,14.4,1.2 +20010510,19.9,15.3,27.2,15.6,1.8 +20010511,20.7,14.9,29.4,14.4,2.7 +20010512,21.8,15.4,29.4,14.4,2.2 +20010513,20.9,7.6,27.8,14.4,3.5 +20010514,18.7,2.0,26.7,11.1,2.8 +20010515,21.6,8.6,31.7,11.1,2.2 +20010516,24.2,12.0,32.8,11.7,2.2 +20010517,21.8,16.2,32.8,16.7,3.6 +20010518,23.4,15.6,32.8,15.6,3.4 +20010519,24.7,14.2,32.8,15.6,4.5 +20010520,21.4,17.4,31.7,16.7,1.9 +20010521,22.1,20.4,27.8,17.2,4.0 +20010522,22.6,18.9,26.1,18.0,5.2 +20010523,16.5,7.9,26.1,8.3,2.1 +20010524,18.1,9.8,26.1,8.3,3.2 +20010525,16.8,14.9,26.1,10.0,3.8 +20010526,17.3,10.1,25.0,10.0,3.1 +20010527,19.3,9.7,27.8,10.0,3.8 +20010528,18.7,13.7,27.8,11.1,2.9 +20010529,20.9,15.8,28.3,14.4,2.2 +20010530,22.1,12.2,28.3,16.7,2.3 +20010531,21.2,12.6,28.3,16.1,2.6 +20010601,18.9,17.3,25.6,16.1,2.8 +20010602,21.1,15.0,27.8,16.7,4.3 +20010603,22.2,13.8,30.0,14.4,4.0 +20010604,23.2,19.1,30.0,14.4,3.9 +20010605,25.8,18.5,32.2,17.8,3.8 +20010606,25.1,18.3,32.2,18.3,2.2 +20010607,22.5,19.3,31.7,19.4,2.5 +20010608,22.7,18.6,28.3,20.0,2.3 +20010609,21.6,18.4,28.3,17.2,1.3 +20010610,23.2,19.3,27.8,17.2,2.3 +20010611,23.4,17.6,28.9,17.2,2.0 +20010612,23.5,19.2,28.9,17.2,3.0 +20010613,25.4,19.0,32.8,18.9,3.4 +20010614,24.0,18.3,32.8,18.9,1.9 +20010615,24.4,19.5,32.8,18.9,2.3 +20010616,26.2,19.0,31.1,18.9,3.1 +20010617,25.5,14.2,32.2,18.9,2.4 +20010618,25.3,14.6,32.2,18.9,2.6 +20010619,24.7,16.4,30.6,18.3,1.2 +20010620,24.7,16.8,31.1,18.3,2.2 +20010621,25.4,17.2,31.1,18.3,2.3 +20010622,23.0,19.6,31.1,18.3,3.6 +20010623,21.8,17.2,28.9,17.8,2.0 +20010624,22.6,14.6,28.3,17.8,3.1 +20010625,20.3,15.9,27.8,17.2,3.9 +20010626,20.3,18.7,26.7,17.2,2.4 +20010627,23.4,19.2,30.0,17.8,1.8 +20010628,24.0,18.8,30.0,18.9,1.0 +20010629,23.8,19.4,30.6,18.9,2.7 +20010630,24.0,20.4,30.6,18.9,2.7 +20010701,23.9,20.8,30.6,20.0,3.3 +20010702,25.1,19.8,31.7,20.0,1.6 +20010703,24.4,20.9,31.7,20.0,2.2 +20010704,24.6,20.3,31.1,20.0,4.0 +20010705,22.9,18.9,31.7,17.8,2.9 +20010706,23.9,18.6,31.1,17.8,1.7 +20010707,24.2,19.5,31.1,18.3,1.9 +20010708,24.3,20.8,28.9,20.0,2.0 +20010709,24.6,19.6,32.2,20.6,2.7 +20010710,26.8,20.1,32.8,21.7,1.9 +20010711,27.3,20.9,34.4,21.7,1.6 +20010712,26.1,18.5,34.4,21.7,2.8 +20010713,23.5,18.9,30.6,20.0,4.0 +20010714,22.9,14.9,28.9,17.2,2.1 +20010715,23.7,13.3,30.0,16.7,2.5 +20010716,24.1,15.7,31.1,17.8,1.5 +20010717,25.7,16.9,32.2,17.8,2.5 +20010718,26.7,17.8,32.8,20.6,3.0 +20010719,25.0,19.8,32.8,20.0,1.6 +20010720,23.2,21.3,31.1,20.0,2.9 +20010721,22.2,17.9,27.2,18.3,3.1 +20010722,22.9,16.6,28.9,17.8,2.2 +20010723,24.1,18.4,30.0,17.8,3.2 +20010724,23.9,21.9,30.0,19.4,2.5 +20010725,22.6,21.7,28.3,21.7,4.6 +20010726,24.1,21.1,29.4,21.0,4.7 +20010727,24.8,21.3,30.0,20.6,3.2 +20010728,20.8,18.6,23.0,19.0,3.0 +20010729,23.2,21.7,28.3,19.4,3.3 +20010730,24.7,21.9,30.0,21.1,2.5 +20010731,24.4,20.3,30.0,20.6,2.2 +20010801,24.2,19.9,29.4,20.6,1.2 +20010802,23.9,18.0,29.4,19.4,2.3 +20010803,24.6,19.4,29.4,19.4,2.1 +20010804,23.6,20.9,29.4,20.6,2.4 +20010805,24.4,21.3,30.0,21.1,1.7 +20010806,25.1,21.4,30.6,20.6,1.2 +20010807,26.6,21.1,32.2,20.6,2.1 +20010808,27.7,21.7,32.8,21.7,1.9 +20010809,27.9,22.6,33.3,22.2,2.2 +20010810,28.1,22.5,33.3,22.8,2.5 +20010811,27.1,22.4,32.8,22.2,2.2 +20010812,25.8,21.2,32.2,21.7,3.9 +20010813,24.4,21.6,30.0,21.1,2.6 +20010814,25.2,19.8,31.1,21.0,2.0 +20010815,25.4,18.9,31.1,21.1,2.1 +20010816,25.2,19.6,31.1,20.6,2.2 +20010817,26.2,21.7,32.8,20.6,2.7 +20010818,25.9,21.0,33.3,21.7,2.0 +20010819,25.6,20.6,33.3,21.7,3.7 +20010820,26.0,18.2,31.7,21.1,2.8 +20010821,24.3,14.1,31.7,18.3,2.6 +20010822,23.8,14.2,31.1,16.1,1.9 +20010823,24.9,17.8,32.8,16.1,1.9 +20010824,26.9,19.9,32.8,17.8,2.7 +20010825,25.3,18.6,32.8,21.7,2.1 +20010826,25.6,18.1,31.7,20.6,2.1 +20010827,26.7,19.5,33.9,20.6,2.7 +20010828,24.4,19.1,33.9,18.9,1.8 +20010829,25.3,20.3,32.2,18.9,1.7 +20010830,24.4,20.9,32.2,20.0,3.0 +20010831,23.9,20.1,28.9,20.0,4.1 +20010901,22.0,20.5,29.4,20.0,3.3 +20010902,22.1,20.8,25.6,20.6,2.4 +20010903,22.1,20.9,26.1,20.6,1.8 +20010904,20.2,19.1,26.1,17.8,3.1 +20010905,23.2,19.4,30.0,17.8,1.7 +20010906,23.6,20.1,30.0,17.8,2.0 +20010907,22.9,18.6,28.9,18.9,1.9 +20010908,22.5,17.8,28.3,17.8,2.0 +20010909,22.4,19.3,28.3,17.8,2.9 +20010910,23.6,21.8,27.8,19.4,1.9 +20010911,24.1,19.2,28.3,21.1,3.2 +20010912,22.1,16.1,28.3,17.2,2.5 +20010913,21.2,14.8,27.8,14.4,1.8 +20010914,20.5,16.5,28.0,15.6,2.2 +20010915,17.1,8.9,21.7,12.0,6.4 +20010916,16.2,8.1,23.3,10.0,2.6 +20010917,17.3,11.1,25.0,10.0,1.4 +20010918,18.6,11.6,26.7,10.0,1.2 +20010919,17.8,14.0,26.7,10.6,1.0 +20010920,20.4,18.7,26.1,12.2,1.2 +20010921,22.3,17.7,28.3,17.8,2.2 +20010922,22.1,16.8,29.4,16.7,1.1 +20010923,22.8,18.2,30.0,16.7,1.9 +20010924,19.5,18.3,30.0,17.2,2.9 +20010925,15.4,8.4,20.0,10.0,2.4 +20010926,12.9,6.3,20.6,5.6,2.1 +20010927,15.4,8.1,23.3,5.6,1.5 +20010928,16.2,9.0,23.3,8.9,2.6 +20010929,15.5,6.9,22.2,8.3,4.1 +20010930,14.8,6.8,21.7,8.3,2.5 +20011001,15.4,7.4,24.4,7.8,1.5 +20011002,17.6,8.7,25.6,7.8,1.9 +20011003,18.1,10.3,27.2,10.0,1.2 +20011004,18.3,11.1,27.2,10.0,1.4 +20011005,17.5,13.4,26.7,10.6,1.9 +20011006,17.9,15.8,24.4,11.1,3.0 +20011007,11.8,3.0,19.4,5.0,2.7 +20011008,10.6,1.1,19.4,4.4,3.2 +20011009,9.9,2.9,17.2,4.4,2.5 +20011010,12.9,7.0,21.1,5.0,2.4 +20011011,17.7,13.7,23.3,7.8,1.9 +20011012,18.1,16.3,23.3,13.9,1.7 +20011013,18.9,16.9,24.4,14.0,2.4 +20011014,20.6,17.6,25.0,14.4,5.4 +20011015,15.3,8.3,24.4,7.8,1.9 +20011016,13.3,6.7,22.2,6.7,3.2 +20011017,9.3,-0.7,21.1,3.3,3.4 +20011018,9.1,0.4,16.7,1.7,2.0 +20011019,10.1,4.4,20.6,1.7,1.5 +20011020,14.6,8.9,23.3,2.2,1.1 +20011021,15.9,10.3,25.0,7.2,0.7 +20011022,17.4,12.4,26.1,8.9,0.6 +20011023,18.8,15.5,26.7,10.6,1.7 +20011024,20.6,16.3,27.8,13.9,3.3 +20011025,20.2,10.1,27.8,14.4,4.2 +20011026,13.5,-4.6,23.3,5.0,5.0 +20011027,6.6,-6.6,18.3,0.6,3.9 +20011028,4.9,-4.9,12.8,-1.7,1.9 +20011029,6.9,-1.6,17.2,-1.7,1.1 +20011030,11.1,0.6,22.2,-0.6,0.7 +20011031,12.1,1.7,22.2,1.7,1.5 +20011101,13.8,6.9,22.2,4.4,0.9 +20011102,16.7,12.4,24.4,7.2,1.4 +20011103,18.2,12.9,26.7,10.0,1.7 +20011104,17.3,5.3,26.7,10.0,3.7 +20011105,14.9,1.4,22.2,6.7,2.0 +20011106,10.4,-5.0,22.2,0.6,2.0 +20011107,11.4,-2.8,22.8,0.6,1.0 +20011108,13.4,0.7,22.8,0.6,1.0 +20011109,16.2,3.0,22.2,11.7,2.0 +20011110,13.1,2.9,23.9,2.8,2.2 +20011111,14.9,2.4,23.9,2.8,2.8 +20011112,11.7,2.8,22.2,6.1,3.6 +20011113,8.6,0.9,15.6,3.9,2.6 +20011114,10.3,2.0,18.3,3.9,2.3 +20011115,12.2,4.7,20.6,5.0,2.2 +20011116,14.2,3.7,23.9,5.0,1.7 +20011117,16.2,7.0,23.9,5.0,2.0 +20011118,13.1,8.9,22.2,8.3,1.5 +20011119,11.7,7.7,21.1,4.4,1.5 +20011120,13.7,6.2,21.1,4.4,3.3 +20011121,7.2,-2.2,12.2,2.0,2.3 +20011122,6.8,2.0,16.7,-1.1,1.4 +20011123,10.0,7.4,16.7,-1.1,1.9 +20011124,12.0,12.0,15.6,6.1,3.8 +20011125,17.7,16.4,23.3,11.1,3.9 +20011126,15.1,12.0,23.3,6.7,1.8 +20011127,18.6,16.0,23.9,15.6,2.3 +20011128,17.6,15.4,23.9,13.9,2.2 +20011129,16.8,14.7,23.3,11.7,2.7 +20011130,18.2,15.4,23.3,11.7,5.4 +20011201,13.2,9.1,20.6,5.6,1.9 +20011202,12.4,7.1,20.6,5.6,2.4 +20011203,11.1,3.0,18.9,5.0,2.6 +20011204,9.8,2.3,20.6,1.7,0.4 +20011205,11.9,5.0,22.2,1.7,1.3 +20011206,15.3,11.8,22.2,5.0,3.1 +20011207,15.9,11.8,22.8,9.4,2.6 +20011208,17.4,12.2,22.8,10.6,3.3 +20011209,14.8,9.3,22.8,12.2,3.2 +20011210,7.8,3.6,12.8,4.0,4.7 +20011211,8.1,6.4,15.0,4.4,2.8 +20011212,10.1,9.1,15.0,5.0,2.7 +20011213,11.4,11.2,15.0,9.4,1.8 +20011214,14.7,14.2,20.0,10.0,3.1 +20011215,12.6,7.4,20.0,5.0,2.3 +20011216,9.2,3.6,18.3,5.0,2.1 +20011217,10.2,7.0,13.3,6.1,1.3 +20011218,12.7,7.9,17.8,7.2,2.5 +20011219,7.8,0.9,17.8,1.7,2.3 +20011220,7.4,-4.3,15.0,1.7,4.0 +20011221,4.4,-7.4,13.3,-3.9,1.7 +20011222,4.9,-5.6,13.3,-3.9,1.6 +20011223,5.3,1.0,12.2,-1.7,1.0 +20011224,7.1,3.1,11.0,1.7,2.9 +20011225,1.3,-7.3,10.0,-5.0,1.0 +20011226,1.6,-7.6,7.2,-5.0,2.1 +20011227,0.6,-10.6,7.2,-4.4,4.4 +20011228,4.4,-5.1,13.9,-4.4,5.2 +20011229,9.2,0.3,15.6,-1.7,5.1 +20011230,2.3,-8.1,15.6,-2.2,1.7 +20011231,2.3,-8.8,7.8,-2.2,1.7 +20020101,0.6,-9.9,7.2,-6.1,2.2 +20020102,-0.9,-10.6,7.2,-6.1,3.4 +20020103,-2.2,-3.8,1.1,-4.0,3.4 +20020104,0.1,-9.9,7.2,-4.4,3.1 +20020105,1.8,-6.2,10.6,-4.4,2.5 +20020106,2.4,-1.1,10.6,-4.4,2.6 +20020107,2.6,-1.2,7.8,-2.2,3.1 +20020108,0.4,-7.2,7.8,-6.1,2.2 +20020109,4.6,-3.5,15.6,-6.1,3.8 +20020110,12.3,6.6,19.4,6.7,5.0 +20020111,13.1,6.2,20.0,5.6,4.3 +20020112,4.6,-0.9,16.7,-2.2,1.4 +20020113,5.1,-0.7,12.8,-2.2,2.8 +20020114,3.4,-2.5,12.8,-3.3,2.0 +20020115,7.3,1.0,13.9,-3.3,2.5 +20020116,4.9,-4.1,13.9,-0.6,2.4 +20020117,6.7,-2.0,17.8,-1.1,3.2 +20020118,10.9,2.8,13.9,8.0,2.5 +20020119,4.1,0.2,9.4,1.0,3.6 +20020120,3.7,0.3,10.0,-1.7,2.2 +20020121,6.7,4.2,14.4,-1.7,2.7 +20020122,6.7,-1.8,14.4,-0.6,2.1 +20020123,6.9,4.8,13.9,-0.6,2.1 +20020124,11.5,11.4,15.6,5.0,3.0 +20020125,11.0,5.7,13.3,4.0,2.8 +20020126,4.9,-2.8,15.0,-2.2,1.0 +20020127,6.7,-1.4,17.8,-2.2,1.0 +20020128,10.8,2.1,22.8,-2.2,1.9 +20020129,17.6,11.9,25.6,11.7,4.2 +20020130,18.2,13.6,25.6,11.1,4.3 +20020131,17.8,15.7,23.9,11.7,3.0 +20020201,18.1,14.3,21.7,13.9,5.9 +20020202,7.6,-2.7,21.7,1.7,3.1 +20020203,4.3,-2.7,10.6,1.1,1.3 +20020204,4.2,-3.3,10.6,-1.7,3.6 +20020205,0.2,-13.5,10.6,-5.6,2.2 +20020206,2.3,-4.8,5.6,-5.6,2.4 +20020207,3.1,2.8,6.0,1.7,2.5 +20020208,7.4,-1.1,17.8,0.0,2.4 +20020209,8.8,-0.5,17.8,-0.6,1.5 +20020210,11.6,5.8,16.0,9.0,2.4 +20020211,8.9,0.5,16.1,1.7,3.9 +20020212,5.7,-3.6,15.0,-2.2,1.6 +20020213,9.3,-3.8,15.6,-2.2,2.5 +20020214,7.3,-5.4,15.6,2.2,3.8 +20020215,6.7,-0.4,16.1,-0.6,2.0 +20020216,11.2,1.1,17.8,-0.6,2.7 +20020217,8.7,-6.5,17.8,3.3,4.6 +20020218,5.2,-9.4,13.3,-2.8,1.7 +20020219,6.9,-7.6,16.1,-2.8,2.7 +20020220,10.6,5.8,13.9,7.8,2.7 +20020221,13.5,7.6,19.4,6.7,4.1 +20020222,11.5,-0.4,19.4,5.0,2.3 +20020223,6.9,-1.0,16.7,1.7,4.2 +20020224,6.4,-1.8,15.6,-2.2,1.5 +20020225,8.5,-1.4,18.3,-2.2,2.2 +20020226,12.0,2.8,19.4,6.0,5.0 +20020227,1.4,-12.3,10.6,-3.3,4.0 +20020228,-2.0,-13.4,6.7,-8.9,2.7 +20020301,2.6,-11.8,11.7,-8.9,2.6 +20020302,4.2,-2.4,11.7,-5.0,4.8 +20020303,8.8,5.6,15.0,1.7,3.5 +20020304,0.2,-10.6,15.0,-5.0,2.9 +20020305,1.1,-11.7,11.1,-6.1,2.1 +20020306,7.0,-5.7,17.8,-6.1,3.0 +20020307,10.3,-2.0,20.0,-2.2,1.8 +20020308,12.7,3.1,21.7,0.0,1.9 +20020309,15.4,12.2,22.2,3.9,2.5 +20020310,11.2,-2.1,22.2,3.3,4.6 +20020311,7.3,-11.6,16.1,0.0,3.0 +20020312,7.8,1.1,15.0,0.0,3.0 +20020313,10.7,9.8,17.2,4.4,3.9 +20020314,13.9,10.9,22.8,6.0,1.3 +20020315,17.4,11.7,25.6,6.1,3.4 +20020316,20.7,14.3,27.8,10.0,5.0 +20020317,16.6,13.9,23.3,11.0,3.3 +20020318,10.1,8.4,18.3,6.7,3.0 +20020319,13.4,10.9,18.3,6.7,3.1 +20020320,12.1,11.4,17.8,10.0,3.4 +20020321,14.5,12.3,19.4,10.0,2.8 +20020322,6.7,-6.7,17.2,-2.0,4.3 +20020323,4.6,-8.6,15.0,-4.0,2.2 +20020324,11.1,-4.1,21.7,-3.9,3.5 +20020325,16.0,6.7,25.0,2.8,3.8 +20020326,17.6,14.3,25.0,8.3,3.7 +20020327,14.6,6.8,23.3,6.7,2.7 +20020328,9.1,0.0,20.6,1.7,3.6 +20020329,12.6,7.7,23.3,1.7,2.5 +20020330,16.1,12.4,19.4,12.8,2.3 +20020331,16.9,15.5,23.9,12.8,2.8 +20020401,15.8,9.0,23.9,9.4,2.8 +20020402,15.8,7.9,25.0,6.7,2.7 +20020403,20.2,12.0,28.3,6.7,4.4 +20020404,10.8,1.3,17.8,5.0,4.3 +20020405,11.2,0.2,17.8,4.4,2.5 +20020406,11.4,-4.2,17.8,3.9,3.5 +20020407,9.7,-2.3,17.8,2.2,3.3 +20020408,14.2,7.7,23.3,2.2,3.3 +20020409,17.2,13.8,23.3,8.3,5.0 +20020410,18.3,15.2,23.3,15.6,3.0 +20020411,18.2,11.5,23.9,13.9,4.6 +20020412,15.6,11.1,23.3,12.8,3.1 +20020413,15.8,14.6,19.4,12.8,2.5 +20020414,18.6,15.9,25.0,13.9,1.7 +20020415,21.4,16.1,28.9,13.9,2.7 +20020416,22.9,15.3,30.0,15.0,3.3 +20020417,23.2,16.1,30.6,15.0,2.9 +20020418,23.5,16.3,31.7,16.7,1.4 +20020419,23.8,17.0,31.7,16.7,2.1 +20020420,24.5,16.8,31.7,17.2,2.2 +20020421,24.8,16.0,31.7,17.2,3.8 +20020422,23.7,12.5,31.1,17.2,4.2 +20020423,17.3,2.3,26.7,10.6,3.1 +20020424,16.3,6.2,23.9,10.0,2.3 +20020425,18.7,12.5,25.6,10.0,3.2 +20020426,13.9,0.7,25.6,8.3,2.8 +20020427,15.1,7.6,20.0,8.3,1.6 +20020428,20.1,15.7,28.3,11.7,4.8 +20020429,23.6,11.8,29.4,15.0,4.1 +20020430,17.1,5.0,29.4,9.4,3.2 +20020501,18.2,15.1,24.0,14.0,3.7 +20020502,22.7,19.0,29.4,14.4,5.6 +20020503,21.8,17.2,29.4,17.8,3.6 +20020504,12.6,11.7,23.3,10.0,4.1 +20020505,12.7,10.9,20.6,10.0,2.0 +20020506,16.3,12.3,24.4,10.0,1.8 +20020507,21.7,15.9,28.9,14.4,4.1 +20020508,24.4,19.2,30.3,18.0,3.7 +20020509,25.0,18.7,30.6,18.9,4.6 +20020510,21.2,19.0,30.6,16.1,1.5 +20020511,19.0,14.6,26.7,16.1,3.9 +20020512,20.0,15.5,26.7,16.7,2.7 +20020513,22.2,18.9,27.8,18.9,4.9 +20020514,15.7,5.9,28.3,8.9,4.5 +20020515,16.9,6.1,23.9,8.9,2.2 +20020516,18.3,10.8,26.1,8.9,3.5 +20020517,21.0,15.7,27.2,10.0,3.5 +20020518,19.9,14.7,23.9,14.0,5.2 +20020519,12.1,3.1,22.8,6.7,3.7 +20020520,13.0,2.2,18.9,6.7,2.5 +20020521,13.5,4.3,18.3,7.2,2.8 +20020522,12.2,4.7,18.3,6.7,3.5 +20020523,14.3,5.5,23.9,6.1,1.3 +20020524,19.1,8.4,27.8,10.6,2.3 +20020525,21.8,11.8,30.0,10.0,1.7 +20020526,22.8,13.2,30.6,12.2,1.7 +20020527,22.5,16.0,30.6,14.4,2.0 +20020528,20.9,15.6,28.9,14.4,1.9 +20020529,22.7,15.4,28.9,14.4,2.4 +20020530,22.3,16.8,28.9,17.2,2.7 +20020531,23.4,18.6,31.1,18.9,2.2 +20020601,25.7,18.6,33.9,18.9,2.0 +20020602,27.8,18.6,35.0,18.9,2.0 +20020603,28.2,19.9,35.0,19.4,2.0 +20020604,27.6,20.7,33.3,22.2,2.0 +20020605,24.7,20.5,33.3,19.4,3.2 +20020606,25.7,20.7,31.7,19.4,3.2 +20020607,23.1,18.6,30.6,18.3,3.4 +20020608,21.7,13.2,28.9,16.1,4.7 +20020609,21.1,11.6,29.4,12.8,1.7 +20020610,22.9,11.7,31.7,12.8,1.3 +20020611,24.8,13.4,32.8,13.3,1.3 +20020612,26.1,14.2,33.9,15.6,2.4 +20020613,27.4,16.7,33.9,17.2,2.7 +20020614,26.6,18.0,34.4,19.4,2.6 +20020615,22.4,13.3,30.6,15.6,2.1 +20020616,22.2,10.7,30.0,13.3,1.5 +20020617,23.6,11.9,30.0,13.3,1.9 +20020618,24.4,12.6,31.1,16.7,2.7 +20020619,23.3,16.2,31.1,17.2,2.7 +20020620,24.9,15.6,30.6,17.2,4.2 +20020621,24.3,11.9,29.4,18.3,4.8 +20020622,23.6,13.8,30.6,18.3,4.6 +20020623,23.1,19.9,31.1,18.3,2.5 +20020624,24.5,20.0,31.7,20.0,1.4 +20020625,25.2,19.8,31.7,20.0,2.0 +20020626,25.3,21.7,31.1,20.6,3.1 +20020627,25.8,20.3,32.8,20.6,3.9 +20020628,25.3,18.6,32.8,20.6,5.0 +20020629,26.2,19.3,33.9,20.6,2.4 +20020630,26.9,19.5,33.9,20.6,2.4 +20020701,24.9,20.6,33.9,20.6,1.5 +20020702,26.2,20.5,34.4,20.6,1.3 +20020703,25.9,19.3,34.4,20.0,1.5 +20020704,24.5,19.4,34.4,19.4,1.5 +20020705,27.8,18.1,36.1,19.4,1.5 +20020706,28.9,18.8,36.1,20.0,3.7 +20020707,27.1,17.2,34.4,21.7,2.6 +20020708,26.4,16.4,33.3,20.0,1.9 +20020709,26.6,16.2,34.4,19.4,2.9 +20020710,27.5,20.6,34.4,19.4,3.4 +20020711,23.3,20.9,33.3,20.6,2.8 +20020712,19.9,15.1,28.3,17.8,3.2 +20020713,22.2,18.6,26.1,17.8,2.5 +20020714,23.9,20.8,29.4,20.0,2.5 +20020715,25.1,21.6,31.1,22.0,2.5 +20020716,27.1,20.6,33.3,21.1,1.6 +20020717,28.5,19.2,33.9,21.1,1.4 +20020718,28.5,20.3,34.4,22.8,1.4 +20020719,28.2,19.1,34.4,21.1,2.6 +20020720,27.8,18.7,34.4,21.1,2.1 +20020721,27.2,19.9,33.3,22.8,2.0 +20020722,26.2,20.6,33.3,21.1,2.1 +20020723,25.8,20.2,31.7,21.1,2.3 +20020724,26.3,20.5,33.3,20.6,2.5 +20020725,23.9,21.7,33.3,20.6,1.5 +20020726,25.8,21.9,32.8,21.1,2.2 +20020727,26.3,22.2,33.9,21.7,1.9 +20020728,28.9,21.4,34.4,22.2,2.8 +20020729,29.2,20.3,35.0,22.8,2.3 +20020730,29.4,20.1,35.6,22.8,2.6 +20020731,28.3,18.9,35.6,21.1,1.7 +20020801,28.1,19.2,35.0,21.1,2.2 +20020802,27.3,19.7,35.0,21.1,1.9 +20020803,27.1,18.4,33.9,20.6,2.7 +20020804,27.8,16.9,35.0,20.6,3.0 +20020805,28.2,17.1,36.1,20.0,1.5 +20020806,29.2,19.0,36.1,20.0,1.7 +20020807,26.0,11.1,35.0,18.9,4.2 +20020808,23.8,10.6,31.1,17.2,2.1 +20020809,24.2,12.7,31.1,16.7,1.6 +20020810,24.2,13.8,31.7,16.1,1.4 +20020811,25.9,14.5,33.9,16.1,2.0 +20020812,27.4,14.7,35.0,18.9,2.6 +20020813,27.4,14.8,35.0,20.0,2.9 +20020814,26.6,17.6,35.0,20.6,2.3 +20020815,27.0,20.5,33.9,21.1,3.0 +20020816,24.7,21.4,33.9,20.6,2.9 +20020817,23.2,21.7,31.7,20.6,2.2 +20020818,25.6,20.8,33.3,20.6,1.9 +20020819,26.4,21.0,33.3,20.6,1.9 +20020820,26.3,20.1,33.3,20.6,1.8 +20020821,27.6,20.0,33.3,20.6,2.5 +20020822,27.0,21.4,33.3,21.7,1.4 +20020823,28.3,20.8,35.0,21.7,1.7 +20020824,28.7,21.0,35.0,22.2,2.2 +20020825,24.3,21.2,33.9,20.6,1.3 +20020826,23.9,20.7,29.4,20.0,1.8 +20020827,22.3,19.6,29.4,18.9,3.3 +20020828,21.4,18.4,26.7,18.9,4.4 +20020829,20.3,18.4,22.8,18.9,3.7 +20020830,21.4,19.6,23.0,20.0,3.5 +20020831,19.9,19.3,22.8,18.9,4.0 +20020901,20.4,18.5,26.1,17.8,3.9 +20020902,22.7,19.3,27.8,17.8,2.7 +20020903,23.1,19.8,30.0,17.8,1.0 +20020904,26.2,19.8,33.3,17.8,0.9 +20020905,26.4,18.3,33.3,20.0,2.7 +20020906,23.8,16.1,30.6,18.3,2.7 +20020907,23.1,16.7,30.0,18.3,2.7 +20020908,22.9,14.9,29.4,17.2,2.9 +20020909,23.0,13.2,31.7,17.2,2.9 +20020910,24.2,11.6,33.9,14.4,1.3 +20020911,26.2,11.9,33.9,14.4,2.4 +20020912,23.7,12.1,28.3,18.0,3.6 +20020913,20.6,15.1,28.3,16.7,2.9 +20020914,21.9,20.6,25.6,16.7,1.7 +20020915,20.1,19.5,25.0,18.9,2.4 +20020916,23.4,20.1,30.0,18.9,1.5 +20020917,24.0,20.3,30.0,18.3,1.7 +20020918,22.8,21.4,27.8,20.6,1.0 +20020919,22.9,20.2,27.8,20.0,1.4 +20020920,23.5,20.7,27.8,20.0,2.6 +20020921,22.3,20.4,27.2,20.6,2.0 +20020922,21.8,20.1,26.1,20.0,1.2 +20020923,22.5,18.4,26.7,18.9,2.5 +20020924,21.1,16.3,26.7,18.9,3.5 +20020925,18.1,14.6,22.8,15.0,4.7 +20020926,15.9,15.1,20.0,14.4,6.1 +20020927,23.0,21.3,26.1,14.4,5.7 +20020928,21.9,18.2,26.7,18.9,3.1 +20020929,21.0,17.2,26.7,18.9,3.4 +20020930,20.8,16.7,25.6,17.2,2.7 +20021001,22.0,18.4,28.3,17.2,1.7 +20021002,23.1,19.9,29.4,17.8,1.2 +20021003,23.9,20.2,30.0,17.8,1.1 +20021004,23.4,19.8,30.0,18.3,2.1 +20021005,23.5,20.7,29.4,18.3,2.4 +20021006,22.4,17.7,29.4,17.8,2.4 +20021007,22.3,18.2,27.8,17.8,1.6 +20021008,18.6,12.8,27.8,15.0,4.9 +20021009,13.8,12.4,16.1,12.0,4.0 +20021010,16.8,15.3,20.6,12.2,3.7 +20021011,19.8,17.7,25.0,15.0,3.6 +20021012,21.5,19.0,27.2,16.7,0.8 +20021013,21.2,19.2,27.2,16.7,1.4 +20021014,15.8,11.6,25.6,12.8,4.2 +20021015,10.8,9.4,17.2,9.4,5.4 +20021016,14.3,11.6,21.1,9.4,3.3 +20021017,12.5,7.7,21.1,7.8,1.8 +20021018,10.5,5.4,18.9,3.9,1.1 +20021019,12.8,8.1,20.6,3.9,2.8 +20021020,15.7,12.3,21.1,6.1,3.2 +20021021,18.1,16.3,21.7,11.1,2.6 +20021022,12.8,10.9,16.1,11.0,3.5 +20021023,13.3,11.1,17.8,11.0,2.0 +20021024,13.8,11.9,18.3,11.1,2.2 +20021025,12.5,11.4,13.0,12.0,4.0 +20021026,14.8,13.6,20.0,12.0,1.7 +20021027,16.6,15.6,20.6,12.2,1.7 +20021028,15.2,14.2,17.2,13.9,1.8 +20021029,12.2,11.6,16.1,9.4,4.2 +20021030,10.6,10.3,13.3,8.9,1.8 +20021031,10.8,7.3,17.8,5.0,1.6 +20021101,9.9,4.9,17.8,5.0,2.5 +20021102,8.8,1.4,16.1,3.9,2.5 +20021103,9.7,2.0,15.0,3.9,1.4 +20021104,10.9,8.6,16.0,8.3,2.2 +20021105,10.6,10.4,15.6,8.3,2.5 +20021106,11.4,7.6,17.0,8.9,3.7 +20021107,9.4,1.2,16.7,5.6,3.5 +20021108,9.2,4.9,18.3,2.2,2.4 +20021109,12.5,9.7,20.6,2.2,3.6 +20021110,17.0,16.4,21.7,6.7,3.4 +20021111,19.1,18.2,22.2,15.0,5.9 +20021112,14.5,14.2,22.2,12.8,1.9 +20021113,11.0,4.5,16.1,6.7,3.0 +20021114,8.3,1.0,16.1,1.1,1.4 +20021115,8.8,5.3,17.2,1.1,2.0 +20021116,11.6,11.5,12.8,10.6,2.7 +20021117,9.3,6.2,12.0,6.0,2.5 +20021118,4.4,-2.4,12.8,-2.2,2.5 +20021119,6.4,3.8,14.4,-2.1,2.4 +20021120,7.6,6.4,14.4,0.6,0.9 +20021121,11.7,9.7,16.7,2.8,1.5 +20021122,8.2,2.4,16.7,4.4,4.2 +20021123,5.0,-5.1,12.2,-1.7,3.0 +20021124,8.3,0.7,18.9,-1.7,1.4 +20021125,10.0,4.0,18.9,0.0,1.5 +20021126,10.0,2.7,18.9,2.8,1.5 +20021127,8.6,2.1,17.2,2.2,3.3 +20021128,1.6,-5.4,11.7,-2.2,2.0 +20021129,2.4,-4.9,12.8,-4.4,3.8 +20021130,11.1,-0.9,17.0,7.8,7.4 +20021201,4.1,-8.5,17.2,-2.2,3.8 +20021202,2.5,-6.2,12.2,-4.4,2.0 +20021203,8.8,0.1,15.0,-4.4,2.7 +20021204,3.3,-1.4,15.0,-2.2,4.7 +20021205,0.9,0.9,7.2,-2.2,2.4 +20021206,3.0,1.5,8.3,-0.6,0.9 +20021207,2.6,0.9,8.3,-1.1,2.3 +20021208,3.2,0.4,11.7,-3.3,0.6 +20021209,5.6,-0.2,11.7,-3.3,3.6 +20021210,4.1,-1.4,7.8,1.0,5.0 +20021211,5.4,5.2,8.0,3.9,3.3 +20021212,4.8,4.6,7.8,2.2,1.4 +20021213,5.3,5.2,7.8,2.2,4.1 +20021214,5.7,2.8,10.6,2.0,4.0 +20021215,4.9,-2.3,12.8,-2.2,3.1 +20021216,8.8,1.9,18.3,-2.1,3.0 +20021217,7.3,1.8,18.3,2.2,2.2 +20021218,5.3,-1.1,10.6,2.8,3.4 +20021219,6.5,2.8,8.0,5.6,2.6 +20021220,10.7,6.4,15.0,6.1,5.1 +20021221,6.6,-4.0,13.3,1.0,4.2 +20021222,9.0,0.9,16.7,1.1,4.8 +20021223,9.3,-0.1,16.7,1.7,1.7 +20021224,5.9,4.1,15.6,1.7,3.3 +20021225,5.2,1.4,7.8,2.0,5.0 +20021226,1.7,-4.9,7.8,-2.8,2.6 +20021227,2.0,-2.5,9.4,-5.0,1.2 +20021228,3.8,-3.6,11.1,-5.0,2.9 +20021229,9.0,-0.8,19.4,-3.3,3.1 +20021230,8.0,2.4,19.4,-0.6,2.3 +20021231,9.2,5.9,15.0,-0.6,1.4 +20030101,13.6,12.4,15.0,12.0,4.0 +20030102,10.1,9.3,16.1,8.3,4.3 +20030103,8.7,6.3,11.7,3.9,2.7 +20030104,3.2,-4.6,11.7,-1.7,3.6 +20030105,5.1,-0.7,13.3,-1.7,3.1 +20030106,5.8,0.8,13.3,-0.6,2.6 +20030107,3.1,-8.6,10.6,-1.1,3.8 +20030108,7.6,-4.2,16.7,-1.1,4.3 +20030109,13.6,3.9,20.6,2.8,7.4 +20030110,12.1,3.3,20.6,6.1,4.8 +20030111,3.1,-7.9,15.0,-3.3,1.7 +20030112,0.2,-14.8,8.3,-4.4,2.6 +20030113,2.1,-9.5,7.2,-4.4,2.4 +20030114,5.1,-3.6,13.9,-1.7,2.9 +20030115,3.2,-6.3,13.9,-2.8,3.4 +20030116,1.0,-10.3,7.8,-2.8,2.2 +20030117,-0.2,-4.1,5.6,-2.8,2.5 +20030118,-4.6,-12.2,3.3,-10.6,2.9 +20030119,-0.8,-10.3,6.7,-10.6,4.5 +20030120,6.6,-3.8,16.7,1.7,6.9 +20030121,11.2,8.6,16.7,1.7,5.1 +20030122,4.8,1.9,16.7,0.0,2.6 +20030123,-1.8,-8.2,8.3,-9.4,4.2 +20030124,-6.6,-15.8,4.4,-11.1,3.1 +20030125,-0.3,-8.7,6.7,-11.1,1.5 +20030126,3.6,-7.3,10.0,-5.6,3.0 +20030127,-0.2,-11.1,10.0,-6.1,3.6 +20030128,2.8,-10.2,11.7,-6.1,4.1 +20030129,8.7,1.3,10.6,7.2,5.1 +20030130,5.8,5.6,10.6,2.8,4.2 +20030131,2.9,1.9,5.0,2.0,2.5 +20030201,6.2,1.9,15.6,0.0,2.1 +20030202,7.8,0.9,21.1,-1.1,2.8 +20030203,14.1,4.3,19.4,8.3,4.9 +20030204,13.8,5.4,20.0,7.8,6.3 +20030205,5.4,-9.2,16.1,-1.1,2.7 +20030206,4.6,-8.5,12.2,-1.1,2.9 +20030207,2.8,0.3,7.2,0.6,3.3 +20030208,1.6,-6.2,7.2,-3.3,2.4 +20030209,3.9,-8.5,10.6,-3.3,2.0 +20030210,6.2,0.3,12.8,-0.6,3.1 +20030211,3.7,-4.2,12.8,-4.4,3.7 +20030212,8.8,-4.4,15.0,4.0,5.7 +20030213,5.2,-11.6,15.0,-4.4,2.0 +20030214,6.7,-0.4,15.0,-4.4,1.7 +20030215,9.1,4.3,15.0,2.2,2.5 +20030216,2.3,1.7,13.3,-2.2,7.2 +20030217,-0.6,-1.2,3.3,-2.2,3.2 +20030218,4.4,2.1,12.2,-1.7,1.7 +20030219,6.4,2.9,14.4,0.0,2.1 +20030220,9.7,5.6,14.4,0.6,2.8 +20030221,8.7,5.2,12.2,5.6,3.1 +20030222,9.3,7.7,18.9,7.0,3.7 +20030223,11.1,3.3,18.9,3.3,7.1 +20030224,9.3,2.8,18.9,1.7,4.3 +20030225,9.6,3.1,18.9,1.7,2.6 +20030226,5.4,2.4,10.6,2.0,4.1 +20030227,1.7,1.7,7.8,0.6,4.8 +20030228,4.3,4.0,8.0,2.8,1.3 +20030301,6.8,6.2,8.3,2.2,2.8 +20030302,10.2,7.5,20.0,5.6,3.2 +20030303,7.3,-1.6,20.0,0.6,2.8 +20030304,8.1,2.2,15.6,0.6,2.3 +20030305,12.1,9.7,17.2,1.1,2.7 +20030306,14.1,12.7,17.2,8.9,3.2 +20030307,9.6,4.9,15.0,6.0,3.7 +20030308,6.2,3.3,17.2,-0.6,2.0 +20030309,15.1,7.8,22.8,10.0,2.7 +20030310,12.4,-0.1,23.3,4.4,2.7 +20030311,9.9,-0.6,17.8,4.4,3.0 +20030312,12.8,5.6,24.4,2.8,2.5 +20030313,17.1,10.1,25.0,2.8,2.9 +20030314,14.8,10.7,25.0,9.4,3.7 +20030315,9.8,6.3,10.6,8.0,3.3 +20030316,11.3,10.9,14.4,8.3,3.2 +20030317,13.8,13.1,16.7,10.0,2.4 +20030318,13.6,13.6,16.7,12.2,3.7 +20030319,13.9,13.4,15.0,12.0,4.0 +20030320,9.4,9.2,12.2,8.0,5.3 +20030321,13.2,10.2,21.7,8.3,3.4 +20030322,14.9,7.4,21.7,7.2,2.5 +20030323,13.6,5.2,21.7,5.6,1.6 +20030324,16.2,3.9,22.2,5.6,2.1 +20030325,15.9,5.2,25.0,6.7,2.6 +20030326,18.3,8.2,25.0,6.7,4.4 +20030327,15.9,9.0,25.0,11.7,4.3 +20030328,16.8,11.3,21.1,11.7,3.4 +20030329,18.9,14.9,23.9,13.3,3.4 +20030330,8.5,4.8,20.0,3.0,4.4 +20030331,4.8,-6.4,11.1,-2.0,3.6 +20030401,10.7,-1.3,22.2,-1.7,4.8 +20030402,17.7,6.9,24.4,11.0,4.7 +20030403,18.8,7.8,26.1,10.6,4.7 +20030404,18.8,10.9,26.1,10.6,4.5 +20030405,18.8,14.4,24.4,11.1,5.0 +20030406,15.7,8.7,22.8,8.3,3.0 +20030407,10.4,9.8,21.1,7.8,4.6 +20030408,7.9,7.0,8.3,7.0,3.4 +20030409,6.7,5.9,8.9,5.6,4.8 +20030410,6.1,5.0,8.9,1.7,5.1 +20030411,8.8,5.8,14.4,1.7,3.6 +20030412,15.2,4.9,24.4,6.1,3.7 +20030413,17.5,6.8,25.0,6.7,1.6 +20030414,18.2,7.8,26.7,8.9,2.5 +20030415,18.6,11.1,26.7,10.0,3.0 +20030416,19.2,11.6,26.1,10.6,3.4 +20030417,17.9,11.8,25.6,11.7,3.2 +20030418,12.6,11.9,24.4,8.9,5.0 +20030419,11.7,10.3,17.2,8.9,4.0 +20030420,13.9,12.6,17.8,9.4,2.3 +20030421,15.9,15.1,18.9,11.7,2.9 +20030422,16.8,12.2,21.1,10.6,2.4 +20030423,13.9,2.7,22.2,7.2,3.0 +20030424,14.0,5.3,22.2,5.6,1.5 +20030425,14.2,11.5,20.0,5.6,2.4 +20030426,16.4,13.2,23.9,11.1,1.6 +20030427,17.9,10.7,23.9,11.1,2.5 +20030428,18.4,12.8,25.6,11.0,1.9 +20030429,20.6,13.4,28.3,11.1,2.3 +20030430,21.4,15.8,28.3,13.3,2.3 +20030501,21.0,16.6,28.3,13.9,2.1 +20030502,19.7,16.2,28.3,14.4,1.9 +20030503,18.9,15.4,28.3,13.3,2.0 +20030504,17.6,14.4,25.0,13.3,2.5 +20030505,14.6,13.7,22.8,12.2,3.5 +20030506,17.1,16.7,19.4,12.2,2.1 +20030507,19.8,18.1,26.0,16.0,2.5 +20030508,23.7,19.5,30.0,17.2,4.0 +20030509,25.2,21.3,30.0,17.2,5.0 +20030510,25.2,19.6,31.1,19.4,4.9 +20030511,23.4,19.8,31.1,19.4,4.9 +20030512,19.2,10.1,26.7,12.8,5.0 +20030513,22.2,6.7,26.1,12.8,2.9 +20030514,18.1,9.2,23.9,11.7,2.6 +20030515,19.2,15.5,24.0,16.0,3.8 +20030516,20.4,17.4,26.1,15.6,2.4 +20030517,18.4,18.1,20.0,14.0,3.5 +20030518,13.3,12.9,19.4,12.2,5.9 +20030519,13.1,11.9,15.0,11.7,5.5 +20030520,16.8,12.5,22.8,11.7,3.3 +20030521,18.9,16.7,22.8,13.9,1.3 +20030522,16.3,16.1,22.2,14.4,3.7 +20030523,16.2,14.9,21.1,13.9,4.1 +20030524,19.5,16.6,26.1,13.9,1.7 +20030525,20.7,16.5,27.2,15.6,2.2 +20030526,21.6,16.6,27.2,15.6,2.6 +20030527,19.9,14.1,27.2,15.6,2.7 +20030528,19.1,10.6,26.1,10.6,1.4 +20030529,19.9,12.4,26.1,10.6,4.0 +20030530,19.3,11.6,26.1,12.8,2.7 +20030531,21.9,15.3,29.4,12.8,5.5 +20030601,20.4,9.2,29.4,15.0,3.2 +20030602,18.4,8.6,26.1,12.2,2.7 +20030603,18.8,16.7,24.4,12.2,1.7 +20030604,22.8,19.7,27.8,15.6,5.0 +20030605,20.2,12.7,27.8,13.9,2.3 +20030606,20.7,15.0,27.2,13.9,2.4 +20030607,21.7,20.7,27.2,14.4,5.0 +20030608,24.0,21.1,29.4,20.6,3.7 +20030609,24.0,17.0,29.4,17.8,2.7 +20030610,22.9,14.3,29.4,15.0,2.3 +20030611,23.8,19.1,31.1,15.0,2.6 +20030612,23.1,20.9,31.1,18.3,3.2 +20030613,23.8,20.8,28.9,20.0,4.2 +20030614,23.2,20.4,28.9,19.4,4.1 +20030615,24.8,20.8,30.6,19.4,3.8 +20030616,24.1,20.8,30.6,20.6,2.5 +20030617,21.1,20.1,24.4,19.0,3.0 +20030618,21.6,20.6,25.0,19.4,2.2 +20030619,22.9,21.0,28.3,19.0,3.0 +20030620,23.3,18.7,28.9,19.4,2.1 +20030621,20.8,10.4,28.9,13.9,3.7 +20030622,21.2,12.3,27.8,13.9,1.4 +20030623,23.1,15.6,29.4,14.4,1.3 +20030624,24.3,17.8,30.6,15.6,1.2 +20030625,25.2,19.1,31.7,17.2,1.2 +20030626,25.7,19.4,31.7,18.9,3.0 +20030627,24.9,20.1,31.1,19.4,3.1 +20030628,21.8,19.8,30.6,20.0,1.9 +20030629,23.2,20.1,29.4,18.3,1.6 +20030630,24.1,21.3,29.4,18.3,2.6 +20030701,21.7,20.0,25.6,19.0,2.0 +20030702,20.4,19.4,23.9,18.0,3.8 +20030703,23.1,18.1,30.0,17.2,1.8 +20030704,25.7,20.3,31.7,17.2,1.7 +20030705,24.8,21.2,31.7,18.9,3.5 +20030706,25.3,21.1,30.0,21.1,4.1 +20030707,24.1,21.4,30.6,21.1,3.2 +20030708,26.3,22.1,32.8,21.0,1.9 +20030709,27.2,22.6,33.3,21.1,2.3 +20030710,24.2,21.7,33.3,20.6,2.6 +20030711,25.2,21.2,30.6,20.6,4.8 +20030712,23.9,19.2,31.7,17.8,2.2 +20030713,23.6,20.5,31.7,17.8,2.2 +20030714,24.9,21.1,28.9,19.4,1.4 +20030715,26.6,21.6,30.6,22.8,2.1 +20030716,25.7,22.3,32.2,21.7,3.0 +20030717,28.1,22.1,32.2,21.7,2.9 +20030718,25.4,21.9,30.6,21.1,2.8 +20030719,24.3,21.1,31.1,20.6,2.1 +20030720,24.2,21.8,31.1,20.6,1.5 +20030721,25.5,22.4,31.1,20.6,2.8 +20030722,23.0,20.6,31.1,20.0,4.1 +20030723,21.9,20.2,26.7,19.0,3.5 +20030724,21.6,16.8,27.8,16.0,1.3 +20030725,23.3,17.9,29.4,16.1,2.6 +20030726,23.7,20.2,29.4,18.3,2.4 +20030727,24.1,21.3,30.0,19.4,0.9 +20030728,26.7,20.9,32.8,20.6,1.9 +20030729,25.3,21.6,32.8,21.1,2.4 +20030730,24.2,21.7,27.8,21.0,2.5 +20030731,23.5,21.8,28.3,21.0,2.2 +20030801,23.3,21.8,29.4,21.1,2.9 +20030802,22.8,21.3,28.3,20.0,1.9 +20030803,23.7,22.1,28.3,20.0,2.9 +20030804,24.4,21.6,29.4,20.6,3.2 +20030805,23.2,20.7,29.4,19.0,3.2 +20030806,22.7,20.9,28.9,19.0,1.7 +20030807,22.2,20.6,29.4,18.3,1.9 +20030808,22.1,20.2,28.3,18.3,1.3 +20030809,23.2,20.8,29.4,18.9,1.7 +20030810,22.7,20.8,28.0,19.0,1.9 +20030811,22.1,19.7,28.3,18.3,1.7 +20030812,22.9,20.4,28.3,18.3,2.5 +20030813,23.9,21.2,29.4,18.3,1.5 +20030814,25.7,21.8,31.7,20.6,1.0 +20030815,25.3,21.8,31.7,20.6,1.7 +20030816,25.6,22.9,31.1,20.6,1.7 +20030817,23.8,21.2,31.1,20.6,2.5 +20030818,23.9,20.6,31.1,19.4,1.9 +20030819,23.9,21.8,30.6,19.4,2.5 +20030820,25.3,21.8,30.6,21.1,2.0 +20030821,25.3,22.7,32.2,21.7,1.6 +20030822,24.8,21.8,32.2,20.6,2.2 +20030823,25.3,21.6,32.2,20.6,1.5 +20030824,25.1,21.7,32.2,20.6,3.1 +20030825,24.9,21.4,30.6,20.6,0.9 +20030826,26.6,22.1,32.8,20.6,2.1 +20030827,27.5,22.4,33.3,21.1,2.9 +20030828,27.0,23.1,33.3,22.2,1.9 +20030829,25.3,22.4,31.1,21.0,2.4 +20030830,26.4,22.2,31.7,21.1,3.5 +20030831,24.9,22.7,31.7,22.2,1.5 +20030901,24.9,22.1,30.0,21.1,1.7 +20030902,24.0,21.8,30.0,20.6,2.4 +20030903,25.3,22.1,31.1,20.6,2.5 +20030904,25.1,22.9,31.1,21.1,3.2 +20030905,23.4,19.9,28.9,18.9,2.9 +20030906,20.6,17.4,23.3,18.0,3.3 +20030907,19.1,15.6,23.9,16.1,3.1 +20030908,21.4,16.6,25.6,16.1,2.7 +20030909,20.9,16.8,26.1,17.0,2.3 +20030910,20.5,15.2,26.7,17.2,3.5 +20030911,19.5,13.7,26.1,15.6,3.1 +20030912,19.8,13.7,26.1,14.4,3.2 +20030913,20.9,16.2,28.9,14.0,1.5 +20030914,21.9,18.4,29.4,14.4,1.5 +20030915,23.5,19.8,29.4,16.7,1.1 +20030916,21.9,15.1,28.9,16.7,3.6 +20030917,19.9,12.6,26.7,14.4,3.9 +20030918,21.3,13.6,29.4,14.4,4.0 +20030919,22.4,13.4,30.0,15.0,2.7 +20030920,21.4,14.6,30.0,13.3,1.4 +20030921,21.2,15.8,30.0,13.3,1.7 +20030922,21.9,19.6,28.3,15.6,3.0 +20030923,21.5,16.2,26.7,15.0,2.4 +20030924,19.0,13.4,25.6,12.0,1.9 +20030925,19.9,15.6,28.3,12.2,1.0 +20030926,20.6,17.0,28.3,12.8,1.2 +20030927,21.7,18.8,28.3,13.9,2.3 +20030928,18.9,13.3,28.3,12.8,1.9 +20030929,14.4,5.2,23.9,8.3,3.0 +20030930,14.0,7.1,20.6,7.0,2.3 +20031001,14.8,10.2,22.2,7.2,1.1 +20031002,14.4,6.3,22.2,9.4,3.3 +20031003,10.7,2.8,20.0,5.0,2.8 +20031004,14.6,9.3,23.9,5.0,3.9 +20031005,17.3,11.6,23.9,7.8,1.9 +20031006,18.3,14.2,23.9,10.6,1.2 +20031007,18.1,15.9,22.2,15.0,2.1 +20031008,16.7,16.1,21.7,15.6,3.1 +20031009,17.9,17.2,21.1,15.6,3.2 +20031010,18.3,16.3,21.1,16.7,3.2 +20031011,17.0,15.2,21.1,15.0,4.3 +20031012,18.0,15.0,26.1,12.8,0.9 +20031013,19.9,16.0,26.1,12.8,1.1 +20031014,20.1,17.9,26.1,13.9,2.7 +20031015,15.3,5.2,23.9,7.8,3.9 +20031016,13.2,5.1,21.1,5.0,1.9 +20031017,13.3,9.6,22.2,5.0,1.9 +20031018,14.4,8.7,22.2,5.6,2.6 +20031019,14.3,9.7,23.9,6.1,1.0 +20031020,16.6,10.4,24.4,6.1,1.9 +20031021,18.0,13.2,25.6,10.0,4.2 +20031022,17.7,7.7,25.6,8.9,3.0 +20031023,13.2,4.4,24.4,4.4,2.8 +20031024,12.9,6.4,20.6,4.4,3.1 +20031025,12.7,8.1,20.0,7.2,2.5 +20031026,14.7,13.5,20.0,7.8,2.0 +20031027,16.8,15.6,21.1,13.9,2.8 +20031028,10.7,8.2,21.1,6.7,2.8 +20031029,13.1,8.1,21.7,6.7,3.1 +20031030,13.2,8.4,23.9,5.6,1.0 +20031031,15.4,10.8,24.4,5.6,1.2 +20031101,17.1,10.8,27.2,6.7,1.2 +20031102,17.4,11.5,27.2,8.3,0.5 +20031103,17.8,12.7,27.2,10.0,1.4 +20031104,17.6,15.6,26.1,10.6,1.1 +20031105,21.0,19.9,26.1,13.3,1.6 +20031106,22.4,20.6,27.2,18.9,2.7 +20031107,20.6,17.2,27.2,17.2,2.7 +20031108,14.8,11.3,23.9,10.0,3.2 +20031109,10.3,4.4,17.8,6.1,4.6 +20031110,7.2,0.0,14.4,2.2,2.8 +20031111,11.3,5.8,21.7,2.2,2.7 +20031112,17.8,13.1,25.0,13.3,5.1 +20031113,15.7,0.9,21.1,7.0,5.7 +20031114,7.9,-10.8,19.4,3.9,4.6 +20031115,9.3,-0.2,16.1,3.9,0.4 +20031116,11.7,6.9,21.1,4.4,1.9 +20031117,16.9,16.2,19.4,15.6,2.6 +20031118,16.3,15.4,22.2,12.8,1.9 +20031119,17.2,15.8,22.2,12.8,5.7 +20031120,12.3,3.8,20.6,3.9,2.9 +20031121,13.3,4.3,23.3,3.9,1.8 +20031122,14.6,5.3,23.3,5.0,2.3 +20031123,13.6,7.7,21.1,6.0,2.1 +20031124,13.4,12.1,16.1,6.0,3.8 +20031125,4.4,-3.9,11.1,-2.0,2.8 +20031126,5.7,-0.2,13.3,-1.7,1.1 +20031127,8.9,5.5,13.3,-0.6,1.2 +20031128,12.9,11.0,17.2,5.0,4.5 +20031129,2.6,-6.9,6.7,-2.2,4.4 +20031130,5.2,-6.1,17.8,-2.2,3.5 +20031201,10.4,-5.6,19.4,-1.7,3.5 +20031202,8.6,-13.1,19.4,1.7,4.2 +20031203,5.4,-9.7,10.0,3.0,3.0 +20031204,0.9,-2.3,3.9,-1.0,4.8 +20031205,2.3,2.2,4.4,-0.6,1.9 +20031206,4.3,0.2,8.3,-0.6,3.2 +20031207,4.6,-4.8,11.1,-0.6,3.6 +20031208,4.3,-2.9,12.8,-2.2,1.4 +20031209,5.2,0.5,14.4,-2.2,1.0 +20031210,8.8,7.1,14.4,6.7,3.2 +20031211,5.6,1.1,14.4,-0.6,3.7 +20031212,3.7,-2.2,11.7,-2.8,1.2 +20031213,3.4,-2.7,11.1,-2.8,3.5 +20031214,1.6,1.4,6.1,0.0,4.5 +20031215,3.9,0.6,13.9,-2.8,1.6 +20031216,4.6,2.6,13.9,-2.8,1.6 +20031217,7.1,2.7,11.1,-1.1,2.8 +20031218,2.6,-4.3,10.0,-2.2,3.4 +20031219,4.2,-3.8,10.6,-2.8,5.7 +20031220,0.0,-9.4,7.8,-3.9,2.7 +20031221,-0.2,-8.7,8.9,-6.1,3.1 +20031222,6.2,-5.3,15.0,1.7,4.5 +20031223,7.4,3.2,15.0,-2.0,2.3 +20031224,10.8,7.1,15.0,-1.7,3.3 +20031225,1.3,-5.1,13.3,-4.4,1.3 +20031226,3.4,-6.6,12.8,-3.9,1.6 +20031227,6.1,-5.3,17.8,-3.9,1.2 +20031228,7.0,-2.5,17.8,-3.3,1.0 +20031229,7.0,0.2,16.1,-1.1,0.9 +20031230,10.3,2.6,13.3,0.6,4.0 +20031231,5.4,-5.2,13.9,-2.8,1.6 +20040101,8.4,-1.9,18.9,-2.8,1.5 +20040102,13.2,2.4,18.0,8.0,3.5 +20040103,15.0,13.2,21.7,7.8,4.6 +20040104,17.7,15.3,22.2,11.7,5.2 +20040105,17.7,16.6,22.2,13.9,6.4 +20040106,5.4,-0.4,20.6,0.0,3.2 +20040107,-2.0,-15.8,8.3,-7.2,3.7 +20040108,1.1,-9.4,6.1,-7.2,0.7 +20040109,1.6,-1.9,6.1,-2.8,1.7 +20040110,0.9,-1.4,4.0,-1.0,3.0 +20040111,-0.8,-5.6,6.0,-7.0,2.3 +20040112,6.1,-1.3,16.7,-6.7,5.2 +20040113,8.4,1.8,16.7,0.6,2.2 +20040114,6.6,0.1,16.1,-1.7,1.6 +20040115,9.2,1.0,15.6,-1.7,5.4 +20040116,5.8,-7.8,13.0,1.0,3.4 +20040117,4.3,-1.4,12.8,-1.1,1.6 +20040118,7.4,6.1,15.0,-1.1,2.3 +20040119,4.3,-2.9,15.0,0.0,2.3 +20040120,-0.5,-9.7,7.8,-5.6,2.6 +20040121,1.2,-7.7,7.8,-5.6,2.4 +20040122,3.2,-5.3,13.9,-3.3,2.3 +20040123,4.4,-12.3,13.9,-3.3,4.2 +20040124,8.4,-4.9,18.9,-2.8,4.9 +20040125,3.5,-1.3,12.0,-4.0,3.7 +20040126,-3.6,-4.2,-2.0,-5.0,4.2 +20040127,-0.8,-1.3,3.9,-4.4,3.2 +20040128,-0.6,-6.8,7.0,-7.2,2.5 +20040129,1.9,-8.6,11.1,-7.8,2.0 +20040130,6.2,-6.3,13.3,-5.0,4.7 +20040131,2.2,-10.3,13.3,-4.4,2.8 +20040201,1.6,-9.9,8.3,-4.4,3.0 +20040202,1.3,-7.8,8.3,-2.8,5.2 +20040203,3.3,2.1,11.7,-0.6,3.2 +20040204,3.7,-1.7,11.7,-2.8,1.9 +20040205,2.2,-0.9,10.6,-2.8,4.2 +20040206,2.8,2.6,8.3,0.0,3.9 +20040207,5.7,0.2,9.4,0.6,4.3 +20040208,1.6,-8.6,8.9,-2.8,3.1 +20040209,2.2,-5.4,8.3,-2.8,1.1 +20040210,6.1,0.8,13.3,-2.8,2.5 +20040211,7.7,0.3,13.3,1.1,0.9 +20040212,4.7,2.1,9.0,2.0,3.7 +20040213,4.3,1.6,12.8,-1.7,1.6 +20040214,7.4,5.8,12.8,-1.7,1.4 +20040215,5.7,5.2,8.9,1.7,4.1 +20040216,1.5,-0.7,7.2,-1.7,3.8 +20040217,0.9,-6.6,4.0,-2.0,3.5 +20040218,4.8,-4.5,14.0,-2.0,2.0 +20040219,7.6,-5.3,18.9,-2.2,1.9 +20040220,10.8,1.4,18.9,-1.7,5.5 +20040221,14.4,4.9,19.4,5.0,5.0 +20040222,8.0,-1.6,19.4,-1.7,1.5 +20040223,7.1,-0.1,15.6,-1.7,2.1 +20040224,8.8,3.3,13.9,2.8,2.8 +20040225,8.3,-0.4,13.9,5.0,5.6 +20040226,2.1,-4.6,8.3,-2.0,7.3 +20040227,1.7,-2.5,8.3,-1.7,5.5 +20040228,5.1,-5.0,14.0,-2.0,1.5 +20040229,6.1,-5.4,17.0,-2.0,1.3 +20040301,10.0,1.7,21.1,-3.3,2.1 +20040302,15.2,10.9,20.0,12.0,3.6 +20040303,16.6,13.7,23.0,11.0,2.5 +20040304,18.3,12.3,25.0,11.1,3.2 +20040305,18.8,13.8,25.0,13.3,4.1 +20040306,20.0,13.0,24.0,17.0,6.7 +20040307,15.9,4.7,23.9,8.3,3.8 +20040308,9.4,-6.6,22.2,2.8,3.3 +20040309,4.8,-4.3,14.4,-0.6,2.7 +20040310,5.6,-0.6,12.8,-0.6,2.5 +20040311,7.6,-3.4,17.8,-0.6,3.3 +20040312,12.8,-5.2,20.6,-0.6,3.9 +20040313,10.1,-8.9,20.6,1.7,2.7 +20040314,11.1,-1.2,19.4,3.9,2.4 +20040315,14.7,9.9,19.4,5.6,1.5 +20040316,15.5,11.9,23.0,12.8,3.5 +20040317,11.8,0.0,22.8,3.3,2.4 +20040318,10.1,0.4,18.3,3.3,2.4 +20040319,14.2,5.1,23.3,5.0,2.5 +20040320,12.9,1.9,23.3,7.2,3.2 +20040321,14.3,4.7,20.6,6.7,4.8 +20040322,4.3,-9.6,16.7,-0.6,6.0 +20040323,4.3,-12.1,12.8,-2.8,2.4 +20040324,9.8,-5.4,19.4,-2.8,2.8 +20040325,13.4,4.3,22.8,2.2,2.4 +20040326,16.1,9.3,24.4,5.6,2.1 +20040327,18.2,10.5,26.1,8.3,3.2 +20040328,20.7,11.4,27.0,14.0,2.9 +20040329,17.2,8.3,22.8,11.0,3.9 +20040330,11.8,8.4,21.7,8.9,3.0 +20040331,9.1,7.4,15.0,6.1,2.9 +20040401,8.4,2.9,15.0,2.2,3.2 +20040402,8.1,0.9,15.0,2.2,2.9 +20040403,11.2,3.4,21.7,1.7,2.9 +20040404,12.3,0.9,21.7,1.7,4.1 +20040405,9.7,-5.0,18.3,1.7,4.2 +20040406,12.8,-4.9,21.7,1.7,3.4 +20040407,16.9,4.2,26.1,4.4,2.3 +20040408,18.1,8.4,26.1,6.7,3.3 +20040409,18.1,6.7,26.0,12.0,3.0 +20040410,16.9,6.1,25.6,11.7,3.2 +20040411,17.4,11.9,22.8,11.7,1.6 +20040412,10.0,9.4,21.7,6.7,5.9 +20040413,10.7,9.2,18.9,6.7,4.8 +20040414,8.7,2.6,18.9,3.9,6.1 +20040415,13.4,1.5,22.2,3.9,2.8 +20040416,17.0,5.9,25.0,3.9,2.5 +20040417,18.1,8.8,27.2,8.9,3.3 +20040418,21.2,11.3,29.4,9.4,3.0 +20040419,20.9,11.9,29.4,11.7,4.5 +20040420,21.9,10.9,28.3,12.8,2.5 +20040421,20.9,10.3,28.3,13.9,4.4 +20040422,19.8,11.6,27.0,13.0,4.1 +20040423,21.0,13.9,29.0,15.0,4.0 +20040424,22.7,15.0,29.0,15.6,2.7 +20040425,21.7,16.0,28.9,14.4,3.3 +20040426,18.1,16.2,27.8,15.0,3.3 +20040427,14.3,6.6,21.1,7.2,3.5 +20040428,14.2,0.7,22.0,6.0,2.7 +20040429,15.3,8.3,24.4,6.1,2.1 +20040430,16.8,13.4,24.4,7.8,1.8 +20040501,18.9,17.9,23.3,14.4,1.7 +20040502,18.9,17.7,23.3,16.7,3.9 +20040503,14.2,8.6,23.3,8.3,2.5 +20040504,12.0,2.8,20.0,5.0,3.0 +20040505,16.3,8.6,26.7,5.0,3.0 +20040506,21.4,14.4,30.0,7.8,1.6 +20040507,23.7,13.9,32.2,12.8,1.5 +20040508,23.8,15.3,32.2,15.0,2.3 +20040509,22.9,17.4,30.6,16.1,2.3 +20040510,21.7,16.2,28.0,14.0,2.2 +20040511,21.5,16.1,28.3,14.4,2.6 +20040512,20.6,17.7,28.3,15.0,2.3 +20040513,21.2,18.3,27.0,18.0,2.4 +20040514,21.2,17.6,27.0,16.7,1.8 +20040515,21.6,16.1,27.8,16.1,2.3 +20040516,21.6,17.3,28.3,16.1,2.1 +20040517,21.9,17.5,28.9,16.1,1.6 +20040518,20.7,18.8,28.9,16.1,1.7 +20040519,21.4,19.0,28.3,17.2,2.2 +20040520,24.1,18.9,31.7,17.2,1.9 +20040521,25.6,19.6,33.3,17.8,1.4 +20040522,25.7,19.8,33.3,18.3,1.9 +20040523,24.4,20.2,32.2,18.9,3.1 +20040524,25.3,18.4,31.7,17.2,3.9 +20040525,29.5,18.8,33.3,17.2,4.2 +20040526,26.4,19.4,33.3,22.8,4.2 +20040527,25.0,16.8,31.7,18.3,4.0 +20040528,25.8,17.1,32.2,18.3,4.5 +20040529,24.3,17.4,32.2,18.3,2.0 +20040530,24.4,19.5,31.0,20.6,2.5 +20040531,23.8,20.3,30.6,18.9,4.3 +20040601,22.0,15.5,27.8,15.0,3.3 +20040602,22.9,13.9,32.2,15.0,2.3 +20040603,23.8,14.7,32.2,16.1,2.2 +20040604,22.8,17.4,31.1,16.7,2.5 +20040605,21.4,16.5,27.2,14.4,2.0 +20040606,22.4,15.9,28.3,14.4,1.9 +20040607,23.3,19.2,29.4,17.2,3.0 +20040608,22.6,19.9,29.4,18.9,2.8 +20040609,22.2,20.0,28.0,19.0,1.7 +20040610,23.7,20.6,31.7,18.9,1.9 +20040611,26.7,21.6,33.9,18.9,1.7 +20040612,26.7,20.7,34.4,20.0,2.0 +20040613,21.6,20.3,25.0,20.0,3.2 +20040614,22.4,21.3,27.2,19.4,1.9 +20040615,24.2,22.4,29.4,20.6,1.7 +20040616,25.2,22.4,31.1,21.7,2.2 +20040617,27.2,22.7,33.3,21.7,1.4 +20040618,26.3,22.1,33.3,21.1,2.7 +20040619,26.3,21.8,32.8,21.1,2.0 +20040620,24.3,19.5,32.8,20.0,2.1 +20040621,23.1,20.6,28.9,20.0,1.9 +20040622,23.6,21.3,30.6,20.0,2.8 +20040623,24.2,20.9,30.6,20.0,4.0 +20040624,23.7,21.2,29.4,20.6,3.3 +20040625,23.9,21.7,29.4,20.6,2.7 +20040626,24.2,20.1,28.9,21.1,2.6 +20040627,22.1,18.8,28.9,19.4,2.7 +20040628,21.4,19.5,25.6,18.9,2.7 +20040629,22.9,18.4,28.9,17.2,2.1 +20040630,22.2,20.3,28.9,20.6,1.0 +20040701,23.2,21.2,28.0,20.0,1.9 +20040702,24.4,21.7,28.3,20.0,2.2 +20040703,23.7,22.0,28.0,21.0,1.2 +20040704,24.9,21.8,31.1,20.6,3.1 +20040705,25.4,22.2,33.0,21.0,2.4 +20040706,26.0,19.4,33.0,18.0,2.7 +20040707,27.3,20.7,32.8,18.3,3.2 +20040708,25.7,21.4,32.8,21.1,2.4 +20040709,25.2,21.3,32.0,19.0,1.5 +20040710,27.2,22.1,33.0,21.7,1.1 +20040711,25.4,21.9,32.8,20.6,1.5 +20040712,24.4,22.6,31.0,21.0,1.6 +20040713,25.6,22.1,33.0,20.6,1.5 +20040714,27.1,21.8,33.0,21.0,3.5 +20040715,25.7,17.7,32.8,21.1,3.5 +20040716,23.4,15.0,29.4,15.6,2.0 +20040717,23.6,18.1,30.0,15.6,1.6 +20040718,22.7,20.3,30.0,18.3,2.4 +20040719,22.4,18.7,28.9,17.2,2.0 +20040720,24.0,19.3,29.4,17.2,1.4 +20040721,25.3,20.0,31.1,18.3,1.1 +20040722,26.6,21.4,32.0,22.0,1.2 +20040723,26.6,21.5,32.2,21.7,1.6 +20040724,26.8,20.9,32.2,21.7,2.5 +20040725,24.5,21.1,31.7,21.7,3.0 +20040726,24.8,22.0,29.4,21.7,2.4 +20040727,23.8,21.9,28.0,21.0,1.6 +20040728,24.9,21.7,29.4,21.0,2.2 +20040729,24.1,22.5,30.0,21.1,2.4 +20040730,24.3,22.0,29.4,21.1,2.3 +20040731,25.0,21.7,31.1,21.1,1.2 +20040801,26.0,22.2,31.7,21.7,2.7 +20040802,25.8,22.6,31.7,21.7,3.2 +20040803,25.3,21.7,31.7,21.7,2.1 +20040804,26.3,20.9,32.8,20.6,1.5 +20040805,25.7,22.1,32.8,20.6,1.5 +20040806,23.3,15.6,29.4,18.9,3.5 +20040807,20.2,10.3,26.1,13.0,2.6 +20040808,20.4,12.8,28.0,13.0,1.1 +20040809,21.9,15.6,28.9,13.3,1.5 +20040810,23.2,18.0,28.9,15.6,2.6 +20040811,24.1,19.4,30.6,16.1,3.5 +20040812,20.9,19.4,30.6,18.9,1.8 +20040813,21.7,18.2,26.7,17.8,1.3 +20040814,20.4,16.4,26.7,17.8,3.5 +20040815,20.5,18.5,25.0,17.8,3.8 +20040816,21.6,18.1,28.3,16.7,1.6 +20040817,22.4,19.8,28.3,16.7,1.2 +20040818,24.2,21.1,30.0,18.3,1.9 +20040819,25.3,20.3,31.7,18.9,1.4 +20040820,25.1,20.9,31.7,18.9,1.9 +20040821,24.5,21.4,31.1,19.4,3.9 +20040822,21.4,19.9,30.0,20.0,3.0 +20040823,23.4,19.4,28.9,20.0,1.6 +20040824,23.1,21.3,29.4,20.6,1.6 +20040825,23.6,20.7,29.4,20.6,1.9 +20040826,23.1,19.1,29.0,18.9,2.0 +20040827,24.5,19.9,31.0,20.0,1.6 +20040828,24.6,20.8,31.1,19.4,1.3 +20040829,23.8,20.3,31.1,20.0,2.4 +20040830,25.2,20.6,32.2,20.0,2.2 +20040831,24.7,21.7,32.2,20.0,1.5 +20040901,23.8,21.5,28.9,20.6,2.1 +20040902,22.2,20.3,28.3,20.6,2.8 +20040903,22.1,18.0,27.0,18.0,2.7 +20040904,22.2,17.3,28.3,18.3,3.4 +20040905,23.2,18.1,28.3,18.3,4.4 +20040906,23.0,19.8,28.3,19.4,4.6 +20040907,22.2,21.7,25.6,21.7,6.4 +20040908,22.3,21.9,23.3,21.7,6.0 +20040909,23.0,19.3,27.8,18.9,2.4 +20040910,23.2,17.8,27.8,18.3,2.5 +20040911,22.4,18.1,27.2,18.0,2.4 +20040912,21.4,17.3,27.0,17.0,2.6 +20040913,20.8,17.6,26.7,17.2,2.4 +20040914,21.0,16.7,26.7,16.7,2.2 +20040915,20.3,17.4,26.7,16.1,2.9 +20040916,21.9,20.2,25.0,16.1,3.9 +20040917,22.7,20.7,26.1,20.0,7.5 +20040918,22.4,12.6,27.2,17.8,4.2 +20040919,18.6,8.3,27.2,13.3,3.7 +20040920,16.4,7.9,24.4,11.1,4.6 +20040921,16.8,10.3,24.0,11.7,3.2 +20040922,19.6,10.5,28.0,13.0,2.0 +20040923,21.8,15.4,30.0,12.2,1.3 +20040924,22.1,16.9,30.0,15.6,2.9 +20040925,20.2,14.6,27.2,15.0,3.1 +20040926,19.4,13.9,25.6,15.0,3.5 +20040927,19.3,17.1,25.6,15.0,5.9 +20040928,22.9,19.7,28.9,17.8,4.0 +20040929,20.4,16.1,28.9,15.6,1.1 +20040930,19.9,16.7,26.0,16.0,0.7 +20041001,20.3,17.5,26.1,15.0,1.5 +20041002,21.1,18.4,27.2,16.1,1.7 +20041003,20.2,17.9,27.2,16.7,1.4 +20041004,19.8,13.7,26.1,12.8,1.1 +20041005,18.2,13.3,26.1,11.1,1.2 +20041006,16.6,13.6,25.6,11.1,3.3 +20041007,17.1,13.7,22.2,13.3,1.3 +20041008,15.6,10.8,22.2,10.6,2.1 +20041009,18.4,13.5,22.8,10.6,2.4 +20041010,18.4,15.0,24.4,12.8,1.2 +20041011,18.7,14.4,24.4,12.8,2.2 +20041012,18.9,16.7,24.4,14.4,1.4 +20041013,20.1,17.3,24.4,14.4,4.2 +20041014,14.8,11.8,22.8,10.0,3.3 +20041015,13.1,8.3,18.9,8.9,5.4 +20041016,12.3,5.3,21.1,6.1,4.9 +20041017,13.3,5.1,22.0,5.6,2.4 +20041018,16.6,13.1,23.0,12.0,1.9 +20041019,18.6,17.7,22.8,12.2,3.6 +20041020,17.8,16.6,21.7,15.0,2.2 +20041021,16.7,16.4,21.7,15.0,1.7 +20041022,16.8,14.7,20.0,15.6,1.4 +20041023,14.7,12.3,20.0,12.8,2.6 +20041024,14.4,13.6,17.0,13.0,2.5 +20041025,17.3,15.0,23.3,12.8,1.5 +20041026,14.6,14.0,23.3,11.1,1.5 +20041027,17.1,16.2,21.7,16.0,2.5 +20041028,17.2,16.6,22.2,15.6,2.5 +20041029,16.3,16.2,19.4,15.0,1.5 +20041030,21.1,18.3,26.7,15.0,4.6 +20041031,21.3,17.7,28.0,17.0,3.8 +20041101,21.2,18.2,28.3,16.7,2.9 +20041102,19.8,19.1,26.7,16.7,2.4 +20041103,21.6,20.6,24.0,20.0,2.1 +20041104,17.3,17.0,22.0,13.0,2.5 +20041105,13.3,3.7,19.4,8.9,3.8 +20041106,10.6,1.6,18.3,2.0,2.3 +20041107,12.6,5.3,22.2,2.2,2.0 +20041108,15.3,6.4,22.2,3.3,2.3 +20041109,9.5,-0.5,22.2,3.9,2.6 +20041110,7.3,0.9,14.4,2.8,1.1 +20041111,7.7,4.1,13.3,2.8,0.9 +20041112,10.1,9.8,13.9,3.9,2.5 +20041113,12.6,9.6,15.0,8.3,4.5 +20041114,7.5,-0.7,15.0,1.7,3.8 +20041115,6.3,-1.9,15.6,-1.1,1.0 +20041116,6.7,1.6,15.6,-1.1,0.6 +20041117,10.8,4.7,20.6,-1.1,0.9 +20041118,13.1,8.7,22.2,3.9,2.0 +20041119,16.1,10.3,22.2,6.7,2.6 +20041120,16.4,14.1,21.0,14.0,2.9 +20041121,15.4,12.9,21.0,11.0,1.6 +20041122,15.1,14.2,20.6,11.1,1.1 +20041123,16.4,16.2,18.9,11.7,2.1 +20041124,16.2,15.7,18.3,14.0,3.5 +20041125,12.3,7.4,18.9,5.0,5.7 +20041126,4.5,-4.1,16.1,-1.7,2.2 +20041127,3.1,-1.8,10.6,-1.7,2.4 +20041128,8.2,4.6,16.0,3.9,2.4 +20041129,8.2,0.2,15.6,3.3,1.5 +20041130,6.9,3.6,13.9,1.1,0.7 +20041201,12.6,6.4,16.0,8.0,4.6 +20041202,6.3,-1.4,15.6,-1.1,2.4 +20041203,8.1,-1.3,14.4,-1.1,2.5 +20041204,6.4,-0.1,14.0,-1.0,1.5 +20041205,7.4,0.3,15.6,-1.7,1.6 +20041206,9.1,7.6,11.7,7.8,1.6 +20041207,12.6,12.4,19.4,7.8,2.6 +20041208,15.1,10.6,19.4,7.2,2.3 +20041209,9.0,7.9,19.4,6.7,2.0 +20041210,12.7,10.1,18.9,6.7,3.4 +20041211,8.6,3.3,13.9,4.0,4.4 +20041212,5.1,0.5,12.2,-1.1,3.1 +20041213,8.9,-1.7,13.3,-1.1,5.5 +20041214,1.0,-8.8,4.4,-1.1,4.5 +20041215,-0.1,-9.9,6.7,-5.0,2.0 +20041216,1.9,-8.4,10.6,-5.0,2.6 +20041217,4.8,-6.2,13.9,-3.9,1.6 +20041218,4.7,-2.0,13.9,-2.8,1.6 +20041219,5.5,-2.6,13.3,-2.8,3.7 +20041220,-4.2,-18.4,2.2,-9.0,4.6 +20041221,2.1,-10.0,12.0,-3.0,4.7 +20041222,4.6,0.8,12.0,-2.2,1.2 +20041223,13.4,10.6,19.4,-2.8,4.5 +20041224,1.3,-5.6,4.0,-1.0,3.0 +20041225,0.2,-6.2,3.9,-2.2,2.4 +20041226,1.8,-7.0,10.0,-2.2,3.7 +20041227,3.2,-6.6,10.0,-2.2,2.7 +20041228,1.2,-7.3,8.3,-5.6,1.6 +20041229,6.8,-2.9,16.1,-5.6,3.5 +20041230,11.1,6.2,19.0,5.0,1.8 +20041231,10.5,7.4,18.9,3.3,3.0 +20050101,12.7,9.6,20.6,3.3,2.9 +20050102,12.7,10.4,18.3,6.0,1.2 +20050103,13.7,11.6,20.0,6.1,2.5 +20050104,16.3,12.8,22.8,8.3,4.4 +20050105,15.8,12.3,22.8,10.6,4.1 +20050106,15.2,13.4,18.3,12.8,5.6 +20050107,12.5,8.8,18.3,7.8,2.2 +20050108,14.4,11.9,21.7,7.8,3.0 +20050109,10.9,6.9,21.7,6.7,2.6 +20050110,11.2,7.7,20.0,3.9,2.1 +20050111,12.2,9.3,21.7,3.9,2.0 +20050112,14.4,13.0,21.7,6.7,3.4 +20050113,16.9,15.6,22.0,12.8,4.1 +20050114,13.6,8.8,21.7,6.7,4.3 +20050115,4.4,-2.2,16.1,1.1,4.0 +20050116,4.9,-4.4,11.0,0.6,4.1 +20050117,-0.8,-11.9,10.6,-6.7,4.1 +20050118,-3.1,-19.9,3.3,-6.7,4.4 +20050119,-2.8,-12.8,3.9,-7.8,3.9 +20050120,2.8,-4.0,12.2,-7.8,1.9 +20050121,6.7,1.1,12.2,-3.3,2.9 +20050122,1.8,1.2,5.0,-1.0,2.9 +20050123,-2.9,-12.1,3.9,-7.8,5.6 +20050124,-2.6,-15.5,7.2,-10.0,3.6 +20050125,5.4,-11.6,14.4,-10.0,3.6 +20050126,11.8,1.1,20.6,7.0,4.1 +20050127,7.6,-0.4,21.1,2.8,4.0 +20050128,0.5,-13.3,10.0,-2.2,5.0 +20050129,-2.4,-10.0,2.2,-5.0,5.2 +20050130,1.3,-999.0,7.2,-5.0,1.1 +20050131,4.3,0.3,9.4,-1.0,2.0 +20050201,4.5,-2.9,10.0,1.1,3.0 +20050202,2.4,-1.1,5.6,1.0,3.7 +20050203,2.6,1.6,7.2,1.0,3.8 +20050204,5.2,0.1,14.0,-1.1,1.2 +20050205,7.7,-1.6,17.2,-1.7,2.1 +20050206,8.9,-2.7,17.2,-1.7,3.3 +20050207,9.9,-3.5,16.7,3.3,2.0 +20050208,12.8,3.5,20.6,3.9,3.3 +20050209,13.1,12.5,20.6,7.8,3.3 +20050210,8.9,1.8,14.4,2.2,5.2 +20050211,2.5,-9.7,11.0,-3.0,3.7 +20050212,5.1,-5.4,15.6,-3.3,2.4 +20050213,7.4,0.2,15.6,-3.3,0.8 +20050214,8.1,6.6,11.1,0.6,2.6 +20050215,8.9,8.4,13.3,6.0,2.0 +20050216,14.4,12.4,21.7,6.1,4.1 +20050217,9.3,-1.8,21.7,4.4,2.7 +20050218,4.7,-9.9,12.8,-2.8,2.8 +20050219,6.7,-6.1,14.4,-2.8,1.9 +20050220,7.4,0.6,14.4,-0.6,1.5 +20050221,8.7,7.6,14.4,3.9,2.3 +20050222,13.6,8.4,22.2,6.7,2.9 +20050223,13.7,3.9,22.2,5.6,2.1 +20050224,9.7,5.4,20.6,5.6,4.2 +20050225,6.5,2.1,13.3,1.1,1.7 +20050226,6.0,0.1,13.3,0.0,2.0 +20050227,6.3,0.0,13.3,0.0,3.0 +20050228,4.1,2.1,7.0,2.0,4.9 +20050301,3.9,-5.2,7.0,0.0,5.7 +20050302,1.6,-11.3,11.7,-5.0,2.7 +20050303,4.3,-8.7,12.2,-5.0,1.9 +20050304,6.1,-6.1,16.1,-3.3,2.6 +20050305,12.4,-1.1,18.9,6.0,6.1 +20050306,9.2,-2.9,19.4,0.0,3.5 +20050307,11.6,-0.4,21.7,0.0,5.0 +20050308,10.2,3.2,12.8,3.0,5.6 +20050309,2.7,-7.8,12.2,-2.8,2.3 +20050310,5.4,-5.4,12.8,-2.8,2.7 +20050311,8.9,-2.7,16.1,-2.2,6.5 +20050312,9.9,-4.3,23.3,1.7,7.2 +20050313,18.1,2.6,24.4,12.0,6.1 +20050314,11.9,7.1,25.0,7.8,4.3 +20050315,7.1,0.6,16.7,2.8,1.9 +20050316,6.5,2.4,12.8,2.8,4.1 +20050317,3.0,1.2,9.4,1.7,6.2 +20050318,5.4,-1.8,14.0,-2.0,2.5 +20050319,7.8,-1.1,16.1,-1.7,1.5 +20050320,12.2,0.9,21.1,0.0,2.5 +20050321,11.9,-0.5,21.1,5.0,1.5 +20050322,9.4,2.3,15.6,5.6,3.8 +20050323,12.3,8.7,21.1,7.0,5.0 +20050324,14.0,5.0,22.0,6.0,2.9 +20050325,15.8,6.0,23.3,5.6,2.6 +20050326,16.2,9.7,23.3,9.4,3.2 +20050327,12.9,10.9,21.7,10.6,4.8 +20050328,11.8,8.4,14.4,10.0,6.4 +20050329,14.2,2.9,26.0,6.7,4.4 +20050330,17.6,3.4,26.1,5.6,2.6 +20050331,16.9,10.1,26.1,10.6,3.1 +20050401,14.7,13.7,17.0,12.0,1.7 +20050402,13.0,6.9,17.2,8.3,7.3 +20050403,12.3,-2.8,21.7,5.6,4.6 +20050404,16.3,0.2,26.1,5.6,3.7 +20050405,18.9,3.8,27.8,7.8,3.0 +20050406,18.8,6.4,27.8,10.0,3.4 +20050407,17.6,13.2,25.6,12.2,4.1 +20050408,15.4,13.9,20.0,13.0,2.9 +20050409,17.6,10.3,22.8,13.3,5.0 +20050410,16.6,6.9,25.6,8.9,1.3 +20050411,19.3,9.6,27.2,8.9,2.2 +20050412,16.9,10.0,27.2,10.6,2.9 +20050413,10.2,8.5,13.0,8.0,4.8 +20050414,10.7,3.6,18.3,5.6,4.1 +20050415,13.1,2.8,20.0,5.6,2.9 +20050416,12.6,-4.8,20.0,4.4,4.6 +20050417,13.1,-1.4,23.3,2.2,1.2 +20050418,17.8,4.0,27.2,2.2,2.3 +20050419,19.7,7.3,28.3,10.6,2.4 +20050420,20.6,6.2,28.3,9.4,4.1 +20050421,20.4,7.6,28.3,10.6,3.2 +20050422,18.1,13.2,28.3,10.6,2.8 +20050423,15.4,9.7,18.3,12.0,5.4 +20050424,8.4,-3.2,18.3,1.7,5.0 +20050425,10.4,-1.5,19.4,1.1,4.0 +20050426,11.9,3.9,19.4,1.1,4.1 +20050427,13.6,7.4,20.0,6.1,3.4 +20050428,12.0,2.9,20.6,2.8,1.9 +20050429,17.2,9.2,24.4,12.8,3.8 +20050430,16.8,12.8,24.4,12.2,3.8 +20050501,16.0,8.3,21.1,9.4,3.3 +20050502,15.1,1.9,22.8,7.2,3.0 +20050503,13.8,2.2,22.8,7.2,2.7 +20050504,14.7,3.8,20.6,8.3,3.8 +20050505,13.2,8.2,20.6,8.9,4.3 +20050506,15.1,6.2,21.7,10.6,3.9 +20050507,16.9,6.5,26.0,10.0,2.0 +20050508,20.6,8.8,30.0,8.9,2.1 +20050509,21.5,10.1,30.0,11.1,1.9 +20050510,19.9,12.8,28.9,13.3,2.2 +20050511,19.2,13.7,28.3,12.2,1.6 +20050512,22.6,14.4,31.1,12.2,1.4 +20050513,21.7,16.1,31.1,15.0,3.3 +20050514,20.6,16.6,26.7,16.7,3.8 +20050515,19.1,15.8,26.7,16.7,3.2 +20050516,17.2,11.2,24.4,10.0,1.6 +20050517,18.9,12.8,25.6,10.0,2.3 +20050518,20.7,15.1,27.0,15.6,1.8 +20050519,21.4,16.5,26.7,15.6,2.7 +20050520,18.7,16.5,26.7,15.0,3.1 +20050521,17.7,12.9,23.3,12.8,3.4 +20050522,18.7,13.9,25.0,12.8,3.1 +20050523,22.8,14.9,29.0,17.2,4.0 +20050524,20.3,9.8,28.9,14.4,4.0 +20050525,15.8,6.3,25.0,7.8,2.6 +20050526,18.7,8.6,26.7,7.8,1.9 +20050527,20.9,12.1,28.9,11.1,1.5 +20050528,20.3,13.4,28.9,12.2,1.8 +20050529,19.0,10.3,26.7,10.0,1.2 +20050530,17.1,14.3,26.7,10.0,1.9 +20050531,18.1,14.6,24.4,13.9,2.2 +20050601,16.8,15.2,21.1,13.0,4.3 +20050602,14.9,13.8,19.4,12.8,6.0 +20050603,16.8,15.7,19.0,15.6,3.4 +20050604,22.1,17.7,30.0,15.6,1.1 +20050605,25.1,19.7,31.7,17.8,2.0 +20050606,24.9,20.0,32.2,19.0,2.2 +20050607,23.6,18.9,31.1,18.0,1.9 +20050608,23.3,19.7,31.1,18.3,1.9 +20050609,23.2,20.8,29.4,19.4,2.6 +20050610,23.9,21.1,29.4,20.6,2.1 +20050611,23.1,19.7,28.9,20.6,2.9 +20050612,23.7,21.0,28.3,20.6,3.8 +20050613,25.7,21.9,31.1,21.1,4.1 +20050614,26.7,19.3,33.3,19.4,1.6 +20050615,27.5,18.5,33.3,19.4,3.0 +20050616,24.6,15.4,32.8,17.2,2.0 +20050617,23.4,13.1,30.6,17.2,2.9 +20050618,23.1,13.7,29.0,18.3,2.5 +20050619,21.3,15.4,27.0,17.0,3.1 +20050620,19.3,15.6,27.2,16.1,3.1 +20050621,20.1,15.4,27.2,15.0,1.4 +20050622,22.8,15.7,31.1,15.0,2.4 +20050623,25.1,16.2,31.1,16.7,2.1 +20050624,24.3,16.6,31.1,18.9,2.3 +20050625,24.1,17.2,31.1,18.9,2.3 +20050626,23.5,19.1,29.4,19.4,3.3 +20050627,24.7,21.6,31.1,19.4,2.3 +20050628,23.2,20.8,31.1,21.7,2.3 +20050629,24.2,21.3,29.4,21.0,1.6 +20050630,25.7,20.9,32.8,20.0,1.4 +20050701,26.4,21.8,32.8,20.0,1.9 +20050702,25.4,20.4,32.8,20.6,1.3 +20050703,24.2,20.6,31.1,20.6,3.1 +20050704,24.6,21.3,29.0,21.7,2.0 +20050705,26.4,21.8,31.7,21.7,3.4 +20050706,25.8,21.1,31.7,21.1,2.0 +20050707,23.1,20.1,30.0,20.0,3.8 +20050708,23.3,17.9,29.4,17.0,1.7 +20050709,25.3,18.7,31.1,17.2,1.7 +20050710,24.5,20.9,31.1,18.9,2.2 +20050711,25.4,22.6,30.0,20.6,3.8 +20050712,25.4,21.8,30.0,22.0,4.1 +20050713,24.7,21.2,31.1,21.7,3.2 +20050714,24.3,21.7,31.1,21.7,3.6 +20050715,24.9,21.2,29.4,22.0,3.8 +20050716,25.2,21.3,29.4,22.0,3.8 +20050717,26.9,21.6,32.2,22.2,3.7 +20050718,27.1,21.9,32.8,22.8,2.5 +20050719,27.9,22.3,33.3,22.8,2.2 +20050720,26.2,21.0,33.3,21.7,1.6 +20050721,26.7,22.1,33.3,21.7,1.9 +20050722,26.6,21.3,33.9,21.7,1.9 +20050723,27.1,20.7,33.9,21.7,1.9 +20050724,26.9,20.1,32.8,22.2,2.0 +20050725,28.0,22.1,35.0,22.8,1.4 +20050726,30.0,22.2,36.7,22.8,1.7 +20050727,29.8,22.0,36.7,22.8,1.9 +20050728,27.5,20.8,36.7,22.8,2.4 +20050729,22.7,21.0,33.3,21.7,2.8 +20050730,23.3,20.8,28.0,21.0,2.3 +20050731,23.6,21.4,27.8,21.1,3.0 +20050801,24.1,20.1,28.9,21.0,3.1 +20050802,25.2,18.9,31.1,20.6,2.1 +20050803,26.2,18.9,32.2,20.0,1.1 +20050804,27.2,19.8,33.3,20.0,1.3 +20050805,26.1,19.9,33.3,20.6,1.2 +20050806,24.6,20.2,32.2,20.6,1.4 +20050807,22.3,20.1,30.6,20.6,3.0 +20050808,22.8,19.9,28.3,20.6,3.2 +20050809,24.1,21.2,30.0,20.6,1.9 +20050810,24.9,21.4,31.1,20.6,1.2 +20050811,26.0,21.4,32.2,20.6,1.5 +20050812,26.7,21.9,32.8,21.7,0.9 +20050813,26.3,22.1,32.8,21.7,0.6 +20050814,26.3,22.1,33.3,21.7,1.1 +20050815,27.2,21.2,33.9,21.7,0.7 +20050816,27.4,22.4,33.9,21.7,1.2 +20050817,26.1,21.9,33.9,22.8,1.7 +20050818,25.0,21.6,29.4,22.0,1.5 +20050819,26.0,22.6,32.8,21.7,1.1 +20050820,27.6,22.6,35.0,21.7,1.3 +20050821,28.3,22.3,35.6,22.8,1.6 +20050822,26.0,21.5,31.1,22.0,2.2 +20050823,24.2,21.4,31.7,21.7,1.2 +20050824,24.7,21.4,29.4,21.7,3.0 +20050825,24.7,19.8,29.4,21.7,2.7 +20050826,23.2,17.6,29.4,18.9,2.1 +20050827,23.4,17.9,30.0,18.3,1.1 +20050828,25.8,20.6,31.1,18.3,1.7 +20050829,25.7,21.2,31.1,21.1,2.5 +20050830,26.7,22.6,31.1,22.8,5.7 +20050831,26.3,19.6,32.2,21.7,4.1 +20050901,25.0,16.2,32.2,20.6,1.6 +20050902,24.7,16.6,31.7,17.8,1.4 +20050903,25.4,15.3,31.7,17.8,2.3 +20050904,23.9,13.6,31.1,19.4,3.0 +20050905,22.9,13.6,30.6,17.8,3.9 +20050906,21.8,13.1,28.3,17.2,4.5 +20050907,21.8,13.0,28.3,16.1,4.2 +20050908,22.9,12.8,31.1,16.1,3.1 +20050909,23.1,11.8,31.7,15.0,2.3 +20050910,23.5,12.8,31.7,15.0,3.1 +20050911,23.7,13.9,31.1,17.2,3.6 +20050912,22.4,12.8,30.6,16.1,3.3 +20050913,24.7,12.5,32.8,16.1,3.2 +20050914,26.1,14.9,33.9,17.2,2.7 +20050915,25.6,15.4,33.9,18.3,1.1 +20050916,25.9,18.2,33.9,18.3,2.1 +20050917,25.6,17.4,33.3,18.3,2.3 +20050918,24.9,13.8,33.3,17.8,1.6 +20050919,24.8,14.2,33.9,17.8,2.4 +20050920,25.9,17.1,33.9,17.8,1.8 +20050921,25.6,17.4,33.3,20.0,2.5 +20050922,25.2,18.4,32.2,20.0,1.4 +20050923,25.0,17.0,33.3,17.8,1.0 +20050924,24.7,16.9,33.3,17.8,1.6 +20050925,24.7,18.6,32.2,18.3,3.2 +20050926,22.9,18.9,28.9,20.0,4.0 +20050927,23.9,17.3,29.4,18.0,2.2 +20050928,21.9,16.4,30.6,18.3,2.0 +20050929,23.4,19.0,28.9,18.3,2.4 +20050930,19.6,9.3,28.9,16.7,4.4 +20051001,21.3,11.9,28.9,17.0,2.8 +20051002,21.7,16.1,29.4,17.2,2.5 +20051003,22.5,14.7,28.9,17.0,3.1 +20051004,22.2,12.5,28.9,17.2,3.9 +20051005,21.8,16.1,28.9,17.8,4.3 +20051006,20.8,18.9,27.2,18.9,5.2 +20051007,20.9,19.7,22.0,20.0,3.4 +20051008,23.4,18.7,28.9,20.0,2.9 +20051009,20.2,15.9,28.9,17.2,2.9 +20051010,19.7,17.3,24.4,17.2,4.0 +20051011,20.2,17.1,23.9,17.8,3.0 +20051012,20.1,16.4,24.4,17.8,3.8 +20051013,18.7,15.3,23.3,16.0,2.3 +20051014,19.8,13.7,26.7,14.4,1.9 +20051015,19.5,9.9,27.2,12.2,2.9 +20051016,18.6,3.9,27.2,11.1,3.0 +20051017,15.6,4.1,25.0,6.7,2.3 +20051018,17.1,8.1,26.7,6.7,1.6 +20051019,19.4,12.9,28.9,8.9,1.2 +20051020,21.4,15.2,29.4,11.7,2.3 +20051021,20.8,14.6,29.4,15.0,2.7 +20051022,19.2,13.6,23.3,14.0,2.2 +20051023,12.5,4.5,19.0,4.0,1.9 +20051024,10.5,3.7,20.0,4.4,2.9 +20051025,9.1,0.4,14.4,3.3,4.0 +20051026,9.8,0.7,16.0,3.3,2.9 +20051027,8.6,1.7,16.1,2.8,1.6 +20051028,9.1,2.1,16.7,2.8,1.9 +20051029,9.7,1.2,16.1,2.0,1.7 +20051030,10.8,1.9,21.7,0.6,0.9 +20051031,12.6,3.9,22.2,0.6,1.7 +20051101,12.7,6.0,22.2,5.0,1.5 +20051102,15.0,4.7,21.7,5.0,2.2 +20051103,11.2,1.9,21.7,2.8,1.4 +20051104,14.3,6.3,23.3,2.8,3.3 +20051105,16.7,11.2,23.9,6.1,3.4 +20051106,16.3,12.6,23.3,11.0,2.6 +20051107,17.5,11.3,24.4,9.4,1.6 +20051108,16.2,9.5,26.1,7.2,1.1 +20051109,19.8,12.9,27.2,7.2,3.9 +20051110,18.2,1.9,22.2,11.0,5.1 +20051111,9.4,-4.9,20.6,-0.6,2.0 +20051112,9.7,-2.7,18.9,-0.6,1.4 +20051113,12.7,4.8,22.2,1.7,1.2 +20051114,18.4,12.3,24.0,14.0,1.7 +20051115,18.2,15.1,25.0,13.9,3.0 +20051116,19.3,15.7,22.0,12.0,5.8 +20051117,6.4,-5.1,12.2,1.0,2.6 +20051118,2.7,-10.0,11.7,-3.9,2.0 +20051119,3.8,-7.5,13.3,-3.3,1.3 +20051120,9.4,-2.9,13.3,6.7,1.7 +20051121,10.3,8.1,13.3,6.1,4.1 +20051122,8.1,1.6,12.2,4.4,4.9 +20051123,3.8,-4.7,10.0,-2.8,3.1 +20051124,11.4,0.6,19.4,7.0,5.8 +20051125,8.1,-8.0,20.0,2.8,2.7 +20051126,4.6,-2.2,12.0,-2.0,1.2 +20051127,6.9,1.6,12.2,-1.7,3.1 +20051128,9.1,8.1,13.0,7.2,3.8 +20051129,15.9,12.4,19.4,7.8,5.1 +20051130,8.9,0.1,19.4,2.8,2.0 +20051201,6.7,-1.6,15.6,-0.6,1.9 +20051202,4.8,-5.7,13.9,-2.2,2.2 +20051203,3.1,-5.4,11.1,-2.2,1.1 +20051204,9.1,7.1,19.4,-1.1,3.1 +20051205,9.7,8.7,19.4,3.9,4.0 +20051206,4.1,-1.7,12.2,-1.1,1.9 +20051207,2.4,-5.4,10.6,-3.3,1.6 +20051208,3.2,-3.6,10.6,-3.3,3.5 +20051209,3.1,-2.1,8.9,0.0,2.9 +20051210,2.1,-5.3,10.0,-4.4,2.3 +20051211,5.0,-3.4,11.7,-4.3,4.6 +20051212,4.7,-2.6,13.3,-2.2,3.4 +20051213,4.5,-4.3,13.3,-2.2,2.3 +20051214,0.4,-6.9,10.0,-2.2,3.3 +20051215,-0.1,-3.3,1.1,-1.7,3.0 +20051216,2.1,-0.9,8.3,-3.0,2.3 +20051217,4.2,-2.3,8.9,-2.8,2.8 +20051218,5.7,-3.3,11.1,2.8,3.6 +20051219,4.7,-2.7,12.8,-1.7,2.2 +20051220,2.9,-5.5,12.8,-1.7,2.0 +20051221,2.3,-9.8,8.9,-2.2,2.0 +20051222,2.3,-10.4,10.6,-5.0,1.4 +20051223,4.2,-8.3,15.6,-5.0,3.0 +20051224,6.1,-5.7,15.6,-3.3,4.0 +20051225,7.7,5.0,13.9,-1.1,3.6 +20051226,7.3,1.2,13.9,2.8,4.4 +20051227,6.1,-2.7,17.2,-1.1,2.5 +20051228,9.1,3.7,17.2,-1.1,3.3 +20051229,9.3,5.6,14.4,5.6,2.9 +20051230,6.0,0.6,13.3,-1.0,1.9 +20051231,9.0,1.8,15.6,-0.6,3.5 +20060101,8.0,-3.1,17.2,0.0,1.7 +20060102,9.0,5.3,17.2,0.0,3.1 +20060103,10.9,7.2,15.6,7.2,2.8 +20060104,8.4,3.4,16.0,2.0,2.0 +20060105,11.4,4.6,18.0,7.0,2.3 +20060106,5.8,-4.1,9.0,2.8,4.7 +20060107,2.0,-7.1,9.4,-3.9,2.7 +20060108,7.0,-4.0,17.0,0.6,4.5 +20060109,13.1,6.4,21.0,9.0,4.9 +20060110,13.9,10.1,21.1,8.9,2.6 +20060111,13.7,10.6,20.0,10.0,4.3 +20060112,12.3,7.4,19.4,5.6,3.7 +20060113,11.6,8.8,19.4,5.6,2.6 +20060114,6.1,-2.7,16.1,2.2,5.7 +20060115,5.9,-10.0,13.0,1.0,4.5 +20060116,8.8,-1.4,14.0,6.0,2.9 +20060117,12.2,7.9,18.3,9.0,3.4 +20060118,8.4,0.1,17.8,2.0,7.4 +20060119,6.7,-4.4,16.1,1.0,3.3 +20060120,10.4,-1.4,17.0,4.0,4.1 +20060121,10.8,7.6,17.2,3.9,1.7 +20060122,9.9,6.9,13.9,4.0,4.6 +20060123,5.1,3.8,13.3,2.2,3.1 +20060124,10.3,5.8,17.2,2.2,2.3 +20060125,9.3,-7.7,17.2,4.4,4.1 +20060126,4.7,-8.7,12.0,-2.0,4.5 +20060127,3.6,-7.8,12.2,-3.9,1.4 +20060128,6.4,-5.0,16.0,0.6,3.0 +20060129,11.1,7.8,16.1,0.0,4.4 +20060130,11.9,7.4,18.0,4.0,3.0 +20060131,8.6,-0.3,18.3,2.2,3.2 +20060201,4.6,-2.8,14.4,-2.2,1.3 +20060202,5.6,0.0,11.0,1.0,1.7 +20060203,10.2,7.2,18.9,1.1,2.8 +20060204,11.9,7.4,16.1,7.0,5.4 +20060205,3.2,-7.4,16.1,-1.1,5.3 +20060206,2.9,-6.3,8.3,-1.1,3.3 +20060207,5.9,-3.6,12.2,2.0,2.2 +20060208,3.7,-9.9,9.0,-3.0,1.6 +20060209,4.7,-6.2,10.0,-2.7,3.4 +20060210,2.2,-8.2,10.6,-5.0,3.0 +20060211,4.4,0.1,10.6,-4.9,1.9 +20060212,1.7,-4.4,6.7,-3.3,2.5 +20060213,0.7,-7.8,6.1,-4.0,2.2 +20060214,4.4,-8.4,15.0,-3.2,3.8 +20060215,9.4,-4.3,17.0,3.0,4.0 +20060216,11.7,0.6,24.4,2.8,2.8 +20060217,14.6,6.6,24.4,3.9,4.2 +20060218,8.4,1.6,16.1,3.0,3.3 +20060219,1.6,-6.8,5.0,-2.0,3.4 +20060220,4.9,-1.8,10.0,-1.0,3.3 +20060221,9.2,3.2,17.2,6.0,2.7 +20060222,11.7,6.4,17.2,5.6,3.2 +20060223,12.6,5.8,17.2,7.8,3.4 +20060224,9.2,-7.2,16.1,0.6,1.9 +20060225,8.2,-1.8,17.2,0.6,2.4 +20060226,6.9,-4.1,11.7,1.7,4.0 +20060227,4.2,-14.1,13.3,-2.2,4.6 +20060228,12.1,-2.7,22.0,5.6,5.7 +20060301,17.6,7.5,24.4,12.0,5.6 +20060302,18.0,9.4,25.0,12.2,6.6 +20060303,12.1,-1.4,23.9,6.7,4.7 +20060304,6.6,-9.2,16.1,-1.1,2.3 +20060305,8.2,-10.7,16.7,-2.1,2.6 +20060306,12.7,-0.7,22.0,7.8,2.0 +20060307,9.5,-2.7,15.0,3.0,3.8 +20060308,9.8,-1.9,19.4,0.6,2.7 +20060309,13.1,2.2,20.0,6.7,5.0 +20060310,17.5,8.8,24.0,13.0,5.9 +20060311,16.8,13.4,25.0,13.3,1.9 +20060312,19.5,13.6,27.0,13.0,3.1 +20060313,20.1,13.2,27.8,13.3,5.5 +20060314,17.6,5.1,19.4,13.0,5.2 +20060315,9.7,-9.1,20.0,-0.6,1.9 +20060316,10.5,-2.7,18.3,0.0,2.3 +20060317,14.7,0.6,22.2,3.9,3.9 +20060318,10.8,-4.5,17.2,4.0,3.8 +20060319,10.1,-9.1,17.2,4.4,2.4 +20060320,7.6,-4.9,12.2,3.0,3.5 +20060321,4.7,2.9,9.4,2.8,4.0 +20060322,7.1,-1.3,13.3,1.1,3.4 +20060323,6.3,-5.2,13.3,1.1,2.4 +20060324,6.1,1.7,10.6,2.2,1.7 +20060325,4.9,-3.9,11.1,-2.2,3.0 +20060326,5.5,-5.4,12.8,-2.1,2.7 +20060327,6.9,-4.0,15.0,-2.0,2.4 +20060328,9.6,0.5,15.6,-1.6,4.2 +20060329,13.0,6.5,21.1,5.6,3.1 +20060330,14.9,5.0,22.8,5.6,3.0 +20060331,16.9,10.3,24.0,12.0,3.3 +20060401,20.9,11.9,28.0,15.6,5.1 +20060402,20.3,5.0,28.0,9.0,2.4 +20060403,21.0,11.9,27.8,8.3,5.6 +20060404,14.1,-0.8,27.2,7.8,4.4 +20060405,14.8,-5.4,23.9,7.2,3.1 +20060406,15.5,-5.1,23.9,5.6,2.2 +20060407,20.0,3.4,28.0,14.0,4.6 +20060408,18.4,11.8,28.9,12.8,4.8 +20060409,11.6,0.4,20.6,3.9,3.2 +20060410,12.3,-0.8,21.0,3.0,1.7 +20060411,14.6,1.8,23.9,3.3,1.7 +20060412,16.4,5.7,23.9,4.4,3.1 +20060413,19.6,9.1,29.4,10.0,3.0 +20060414,21.8,10.3,30.6,12.8,4.0 +20060415,24.6,10.2,32.8,13.3,5.5 +20060416,24.0,9.2,32.8,16.7,4.7 +20060417,24.5,13.1,33.3,16.7,5.7 +20060418,18.2,8.3,33.3,12.8,3.3 +20060419,17.0,11.8,22.8,12.8,2.9 +20060420,18.8,14.0,26.1,11.7,1.2 +20060421,20.1,14.6,26.1,11.7,2.7 +20060422,18.8,15.8,25.0,14.4,2.9 +20060423,19.1,11.8,28.3,11.7,2.8 +20060424,22.1,10.9,29.4,11.7,4.4 +20060425,22.8,13.3,30.0,15.0,3.3 +20060426,19.6,13.9,30.0,14.4,2.7 +20060427,16.5,10.8,22.0,13.0,3.1 +20060428,16.0,5.5,23.9,7.8,1.5 +20060429,14.6,5.4,23.9,7.8,3.2 +20060430,13.9,4.2,17.8,10.6,2.8 +20060501,15.7,2.7,22.8,10.6,2.5 +20060502,16.4,6.1,25.0,8.3,2.6 +20060503,21.8,11.1,29.4,8.3,2.3 +20060504,20.2,9.0,29.4,11.1,2.1 +20060505,20.7,15.6,28.3,11.1,2.4 +20060506,19.9,12.5,26.7,13.9,2.1 +20060507,16.5,10.0,22.8,11.0,4.2 +20060508,13.1,8.6,20.0,10.0,3.7 +20060509,14.4,9.8,18.0,12.0,2.3 +20060510,14.3,11.3,17.8,12.2,2.0 +20060511,18.9,12.5,24.4,13.9,4.9 +20060512,14.9,5.1,24.4,7.8,4.6 +20060513,15.6,4.9,24.0,8.0,3.9 +20060514,18.6,9.6,25.0,8.3,4.9 +20060515,16.4,4.9,25.0,10.0,4.0 +20060516,14.2,4.8,22.8,5.6,2.3 +20060517,15.9,7.9,23.9,5.6,1.9 +20060518,17.2,9.6,26.7,7.8,4.6 +20060519,17.8,4.4,27.0,9.0,4.5 +20060520,20.7,13.0,29.4,15.0,4.2 +20060521,22.1,17.3,29.4,17.2,3.4 +20060522,22.1,14.4,26.1,17.8,2.3 +20060523,20.2,11.7,27.0,14.0,2.2 +20060524,21.8,8.9,28.9,14.4,2.5 +20060525,21.6,14.4,31.1,13.9,2.6 +20060526,23.4,17.4,31.1,13.9,4.4 +20060527,25.9,17.3,33.3,17.8,3.4 +20060528,25.8,15.8,33.3,18.9,2.7 +20060529,25.6,16.1,33.3,18.3,1.7 +20060530,26.3,16.9,33.9,18.3,1.5 +20060531,25.7,16.4,32.0,18.0,2.2 +20060601,25.2,17.1,32.2,18.3,1.7 +20060602,24.7,18.0,31.7,18.3,2.9 +20060603,22.5,15.1,28.0,18.0,3.1 +20060604,21.5,10.6,28.9,15.6,1.7 +20060605,18.2,10.8,28.3,12.2,2.6 +20060606,20.1,7.9,28.9,11.7,2.0 +20060607,22.6,9.1,30.0,11.7,1.8 +20060608,24.1,12.1,32.2,13.3,2.2 +20060609,24.8,11.6,32.2,16.1,2.3 +20060610,26.6,13.6,36.1,16.1,2.3 +20060611,28.0,17.1,36.1,17.8,3.1 +20060612,25.2,18.0,36.1,19.4,2.0 +20060613,20.1,17.1,33.3,16.7,4.3 +20060614,22.5,15.3,31.1,17.2,4.6 +20060615,25.0,12.1,31.1,17.8,2.3 +20060616,24.2,12.2,30.6,17.8,1.9 +20060617,24.2,13.6,31.0,18.0,3.1 +20060618,23.6,13.8,30.6,17.8,3.0 +20060619,24.1,14.9,31.7,17.8,3.9 +20060620,26.2,16.0,35.0,18.3,1.6 +20060621,28.7,13.9,36.1,18.3,2.5 +20060622,28.2,17.8,37.2,21.1,2.4 +20060623,25.7,19.8,37.2,20.6,2.1 +20060624,23.6,19.3,29.4,19.0,2.0 +20060625,25.1,19.7,31.7,19.4,2.5 +20060626,22.7,20.3,31.7,20.6,2.5 +20060627,24.3,19.8,31.1,20.6,2.3 +20060628,24.2,16.6,31.1,17.8,1.5 +20060629,25.2,15.9,32.2,17.8,2.5 +20060630,25.3,14.6,32.2,18.9,1.8 +20060701,24.9,16.3,31.1,18.0,1.0 +20060702,26.4,18.2,33.9,18.3,1.6 +20060703,27.2,18.7,34.4,15.0,1.7 +20060704,27.3,19.2,34.4,21.1,2.6 +20060705,25.5,19.6,33.9,21.1,2.3 +20060706,24.1,19.3,31.7,21.1,2.4 +20060707,22.4,15.3,27.2,17.8,3.4 +20060708,22.2,13.2,27.2,16.7,1.8 +20060709,22.8,14.8,28.3,16.7,2.3 +20060710,25.4,16.7,32.2,16.7,2.6 +20060711,26.7,18.1,32.2,20.0,3.0 +20060712,26.9,19.3,33.3,20.6,2.3 +20060713,27.8,20.3,33.9,21.7,3.9 +20060714,25.3,21.2,34.4,21.7,2.6 +20060715,27.2,20.7,35.6,21.7,2.5 +20060716,27.6,19.2,35.6,22.2,2.9 +20060717,27.2,16.1,34.0,21.0,2.3 +20060718,27.6,16.8,35.0,19.4,1.4 +20060719,28.8,17.4,36.1,19.4,1.5 +20060720,27.6,18.7,36.1,21.1,2.7 +20060721,26.8,19.2,35.6,21.7,2.7 +20060722,27.1,19.7,35.6,21.7,3.5 +20060723,24.4,20.2,30.0,21.0,2.3 +20060724,23.7,20.1,29.4,21.1,2.2 +20060725,24.8,21.2,31.0,22.0,1.8 +20060726,26.5,20.0,33.3,21.0,1.2 +20060727,28.1,18.6,33.9,21.1,2.0 +20060728,28.8,19.1,35.0,22.2,2.5 +20060729,26.0,18.5,35.0,22.2,2.9 +20060730,26.4,19.4,32.8,20.0,1.9 +20060731,28.1,19.4,34.4,20.0,1.0 +20060801,29.3,21.2,36.0,23.0,1.0 +20060802,29.2,21.7,36.1,23.3,1.5 +20060803,28.8,20.8,36.1,22.8,2.1 +20060804,29.7,19.4,37.2,22.2,1.5 +20060805,28.1,20.2,37.2,22.2,3.5 +20060806,26.6,21.3,32.2,22.8,2.5 +20060807,28.2,20.6,36.1,22.2,1.3 +20060808,28.4,20.5,36.1,22.2,1.7 +20060809,27.8,20.0,36.1,22.2,2.1 +20060810,27.2,21.8,35.0,22.2,1.9 +20060811,25.9,20.3,29.4,22.0,2.7 +20060812,21.6,18.8,30.0,18.3,3.5 +20060813,22.1,16.0,28.3,18.3,2.2 +20060814,24.3,18.2,30.0,19.0,1.9 +20060815,25.2,20.3,31.7,19.4,3.1 +20060816,24.4,21.2,31.1,21.1,3.0 +20060817,25.8,18.6,30.0,21.1,3.1 +20060818,24.4,16.1,29.4,19.0,2.9 +20060819,25.2,17.0,31.1,18.3,1.3 +20060820,26.2,19.7,33.9,18.3,1.2 +20060821,25.1,20.0,33.9,20.0,1.4 +20060822,24.2,21.8,32.2,20.0,1.3 +20060823,24.3,20.9,29.0,21.0,1.5 +20060824,24.8,21.7,30.0,21.1,2.1 +20060825,24.4,19.1,30.0,19.0,1.5 +20060826,24.2,18.0,31.0,18.0,1.2 +20060827,25.1,18.8,31.1,18.3,0.7 +20060828,25.7,18.7,32.2,19.0,2.3 +20060829,28.0,21.4,34.0,24.0,2.5 +20060830,24.2,21.3,31.0,21.0,1.8 +20060831,23.4,20.9,31.1,21.7,3.1 +20060901,22.8,18.8,27.8,20.0,2.8 +20060902,23.1,17.8,27.8,20.0,2.4 +20060903,23.9,19.7,29.4,20.0,1.6 +20060904,23.6,21.2,29.4,20.6,1.6 +20060905,22.2,19.6,28.3,20.6,2.4 +20060906,22.1,17.1,28.0,18.0,1.0 +20060907,21.3,17.6,28.3,18.3,2.0 +20060908,22.2,17.5,28.3,17.8,1.0 +20060909,22.7,17.6,28.3,17.8,0.9 +20060910,23.4,17.7,29.4,17.8,0.9 +20060911,22.1,16.9,29.4,17.8,2.8 +20060912,19.8,15.4,26.7,17.2,2.6 +20060913,17.7,16.2,23.3,16.7,2.8 +20060914,19.3,15.2,26.7,13.3,1.5 +20060915,20.9,12.7,27.0,16.0,2.0 +20060916,20.8,14.6,28.3,14.4,0.7 +20060917,21.8,15.9,28.3,14.4,1.4 +20060918,22.1,17.0,29.0,17.0,1.9 +20060919,23.5,19.8,28.9,16.7,3.6 +20060920,18.5,10.2,28.3,11.7,1.6 +20060921,15.6,7.6,23.9,9.4,3.0 +20060922,19.3,13.9,26.1,9.4,1.6 +20060923,23.2,18.2,30.0,16.1,3.1 +20060924,23.9,19.4,30.0,19.4,3.7 +20060925,20.9,14.8,27.8,16.1,1.6 +20060926,18.6,11.6,25.6,14.4,2.6 +20060927,17.6,13.1,24.4,13.3,1.0 +20060928,18.4,13.3,26.1,13.0,3.0 +20060929,14.7,6.8,26.7,8.3,2.1 +20060930,14.3,8.1,22.8,7.8,1.6 +20061001,19.4,12.2,26.7,8.3,2.6 +20061002,19.2,10.9,26.7,11.7,2.1 +20061003,19.0,13.7,27.8,11.7,0.9 +20061004,20.9,14.7,29.0,15.0,1.6 +20061005,22.1,14.3,30.0,15.0,1.7 +20061006,21.7,13.9,30.0,15.6,3.0 +20061007,14.2,7.8,25.6,8.3,3.4 +20061008,15.3,12.1,20.0,8.9,5.0 +20061009,18.3,12.1,24.4,13.3,4.4 +20061010,19.2,10.5,27.0,11.7,1.3 +20061011,19.3,13.8,26.7,11.7,1.8 +20061012,19.2,10.5,24.0,13.0,3.9 +20061013,13.4,2.5,24.4,8.3,2.6 +20061014,9.9,-2.4,21.0,0.6,1.9 +20061015,10.5,-2.3,20.6,-0.5,1.3 +20061016,11.9,3.6,19.4,1.1,1.8 +20061017,12.4,10.7,16.7,8.3,3.4 +20061018,18.8,15.8,26.7,11.1,1.4 +20061019,19.3,17.6,26.7,16.1,1.2 +20061020,19.3,14.4,22.2,13.9,3.4 +20061021,11.7,5.2,22.2,6.7,2.5 +20061022,13.2,9.0,21.1,6.7,2.2 +20061023,9.7,0.5,21.1,3.3,3.4 +20061024,4.4,-2.9,11.1,-2.0,1.4 +20061025,5.2,-3.1,13.0,-1.0,1.5 +20061026,9.9,2.2,17.2,-1.0,1.8 +20061027,10.7,6.7,17.2,5.6,2.2 +20061028,14.2,7.7,20.6,9.4,3.8 +20061029,11.3,1.7,21.1,2.2,3.2 +20061030,14.8,4.9,23.9,2.2,2.3 +20061031,14.0,7.2,23.9,7.2,2.7 +20061101,16.2,9.5,25.0,9.4,2.7 +20061102,15.1,5.7,25.0,9.4,3.7 +20061103,7.0,-9.8,17.2,-0.6,3.5 +20061104,4.9,-7.7,12.8,-1.1,1.8 +20061105,5.4,-4.9,13.3,0.0,1.4 +20061106,7.3,-3.3,14.0,2.0,2.1 +20061107,9.8,4.3,13.9,1.7,4.0 +20061108,13.9,10.3,20.0,7.2,3.0 +20061109,16.3,6.6,26.0,9.0,2.4 +20061110,16.4,7.8,26.7,8.9,1.8 +20061111,17.0,11.9,26.7,8.9,3.7 +20061112,11.0,3.0,24.4,5.6,4.7 +20061113,10.7,-0.8,22.0,1.7,2.2 +20061114,12.3,2.0,21.7,1.7,1.7 +20061115,12.3,6.7,21.1,2.8,2.2 +20061116,12.7,8.9,17.0,8.0,6.0 +20061117,8.1,1.4,16.7,2.2,3.6 +20061118,7.9,-1.7,15.0,0.6,1.0 +20061119,7.3,-0.3,15.0,0.6,2.3 +20061120,6.3,-2.2,14.4,0.6,3.7 +20061121,5.0,-5.4,12.2,0.0,4.6 +20061122,9.6,5.4,14.4,0.0,4.5 +20061123,10.6,4.7,19.4,2.8,1.5 +20061124,12.5,1.3,21.7,3.3,0.8 +20061125,11.1,-0.5,21.7,3.3,0.8 +20061126,10.5,-0.8,21.0,2.0,0.6 +20061127,10.8,1.1,21.1,2.2,0.6 +20061128,14.4,5.5,21.0,9.0,1.1 +20061129,16.1,11.6,21.1,8.3,1.7 +20061130,18.7,15.6,23.3,12.2,2.8 +20061201,19.3,12.9,22.2,12.0,7.1 +20061202,8.8,-3.9,22.8,1.1,2.0 +20061203,9.7,-3.9,16.1,1.1,2.8 +20061204,6.4,-8.4,10.0,1.0,3.2 +20061205,4.1,-9.8,12.8,-2.8,0.5 +20061206,5.7,-6.1,14.0,-1.0,1.7 +20061207,8.9,-4.7,15.0,-1.0,3.3 +20061208,-1.7,-16.2,4.4,-7.0,3.6 +20061209,1.1,-13.1,8.0,-7.0,2.1 +20061210,5.4,-11.2,13.0,-2.0,2.7 +20061211,10.0,-10.1,19.4,0.6,1.6 +20061212,9.1,-5.9,19.4,0.6,2.0 +20061213,12.8,2.4,19.0,9.0,1.7 +20061214,10.1,5.1,18.0,1.0,2.1 +20061215,12.9,5.7,21.1,1.1,3.2 +20061216,11.9,2.6,22.0,2.8,1.3 +20061217,11.3,3.3,21.7,2.2,2.0 +20061218,14.4,4.8,24.4,2.8,2.5 +20061219,14.4,5.5,24.4,5.6,1.3 +20061220,10.6,0.6,23.3,6.1,3.8 +20061221,8.9,1.1,12.2,7.8,2.0 +20061222,12.1,10.7,17.0,9.0,3.8 +20061223,16.9,12.8,20.6,9.4,2.6 +20061224,12.1,2.7,20.6,6.1,1.5 +20061225,7.9,3.9,12.0,6.0,4.6 +20061226,8.1,3.8,11.1,6.1,4.8 +20061227,5.0,-3.4,11.7,-1.1,1.9 +20061228,4.8,-2.3,13.0,-2.0,0.9 +20061229,8.1,1.3,18.3,-1.0,1.2 +20061230,10.0,6.1,18.3,1.1,2.6 +20061231,11.0,9.4,16.0,10.0,3.5 +20070101,15.0,10.7,19.0,10.6,5.7 +20070102,6.3,-1.7,18.9,-1.7,2.4 +20070103,6.9,-0.1,14.4,-1.0,1.2 +20070104,11.2,6.7,19.0,7.0,0.9 +20070105,15.7,14.1,19.4,7.2,2.7 +20070106,14.5,11.3,21.1,10.6,4.3 +20070107,11.8,9.2,21.1,7.8,2.1 +20070108,12.4,4.3,15.0,7.8,4.0 +20070109,4.8,-7.5,15.0,0.0,4.6 +20070110,3.2,-10.1,10.6,-1.7,3.1 +20070111,2.8,-10.9,10.0,-3.3,1.4 +20070112,8.3,-1.6,13.3,-1.0,0.6 +20070113,13.1,8.1,21.1,3.9,2.9 +20070114,15.2,9.9,21.7,7.8,3.4 +20070115,16.7,12.1,21.7,10.0,4.5 +20070116,13.1,8.4,17.0,4.0,3.2 +20070117,1.6,-8.0,4.4,-1.1,4.5 +20070118,0.9,-5.3,4.4,-1.1,3.2 +20070119,5.5,0.2,12.8,-0.5,2.6 +20070120,5.2,-10.1,12.8,1.1,4.2 +20070121,4.2,-4.2,11.1,0.6,2.1 +20070122,3.9,2.4,8.3,0.6,2.3 +20070123,5.5,0.0,8.9,1.7,2.0 +20070124,4.3,-3.2,10.0,-1.1,1.5 +20070125,4.9,-4.8,10.6,-1.0,2.5 +20070126,2.6,-11.1,11.1,-4.4,2.5 +20070127,7.4,-8.2,16.1,-4.3,4.7 +20070128,8.9,-2.4,16.1,1.1,5.2 +20070129,-2.2,-16.7,4.4,-8.0,5.0 +20070130,2.9,-12.0,11.7,-8.3,4.2 +20070131,1.2,-14.0,11.7,-5.0,4.0 +20070201,0.0,-6.3,4.4,-4.4,2.2 +20070202,2.7,0.6,10.0,0.6,3.0 +20070203,1.1,-7.7,6.1,-4.0,4.1 +20070204,2.4,-10.6,8.9,-3.8,6.0 +20070205,0.8,-15.5,8.9,-6.7,2.7 +20070206,-0.6,-14.3,8.0,-7.2,2.3 +20070207,10.2,-2.9,21.0,5.0,5.4 +20070208,6.6,-6.7,21.1,-1.1,1.4 +20070209,4.4,-10.2,13.3,-1.1,1.7 +20070210,3.3,-11.8,9.4,-2.2,2.0 +20070211,3.5,-14.1,12.0,-3.0,2.5 +20070212,7.3,-5.6,17.8,-3.2,2.5 +20070213,9.5,1.7,17.8,-0.5,2.8 +20070214,5.1,0.1,12.8,0.0,4.7 +20070215,-0.8,-12.1,10.0,-5.0,2.4 +20070216,1.0,-14.9,7.0,-4.0,2.8 +20070217,0.8,-11.2,6.7,-3.3,4.2 +20070218,4.7,-9.4,10.6,-3.2,3.9 +20070219,3.6,-9.0,13.3,-4.0,2.9 +20070220,7.7,-3.0,13.9,-4.3,4.8 +20070221,14.2,10.4,19.0,11.0,4.1 +20070222,15.0,4.1,23.0,9.0,3.9 +20070223,10.6,-14.3,23.9,5.0,4.6 +20070224,8.7,-12.0,17.8,0.0,2.6 +20070225,8.6,1.2,16.7,1.1,3.5 +20070226,8.4,1.9,17.2,1.1,2.5 +20070227,11.7,-5.2,19.4,4.0,2.7 +20070228,10.7,-3.6,19.4,0.6,1.7 +20070301,9.4,2.9,18.9,1.7,2.9 +20070302,14.1,3.9,19.4,7.2,5.2 +20070303,11.4,-6.9,19.4,5.0,5.6 +20070304,6.7,-7.5,16.7,0.0,3.8 +20070305,6.1,-9.1,17.2,-3.3,2.9 +20070306,10.8,-5.8,19.0,3.0,2.4 +20070307,11.9,-3.2,21.1,5.0,3.8 +20070308,12.8,-0.9,21.1,5.0,2.6 +20070309,10.0,1.1,20.0,5.0,3.3 +20070310,12.1,3.1,20.6,5.0,2.4 +20070311,16.2,6.8,22.2,5.0,2.1 +20070312,14.2,-2.6,19.0,9.0,3.5 +20070313,15.2,2.8,27.8,5.6,2.6 +20070314,19.7,7.1,26.0,14.0,4.6 +20070315,18.6,9.8,26.7,13.3,4.2 +20070316,14.8,11.4,20.6,9.0,3.2 +20070317,5.7,-7.8,11.0,1.0,5.1 +20070318,4.5,-9.2,12.2,-2.2,1.8 +20070319,9.7,-4.9,18.9,1.7,3.5 +20070320,16.4,4.4,25.6,1.7,3.5 +20070321,17.6,9.8,25.6,8.9,3.3 +20070322,16.7,7.3,23.0,10.0,3.3 +20070323,18.8,10.4,26.7,9.4,3.9 +20070324,20.7,9.7,28.0,13.0,2.8 +20070325,23.1,9.7,30.6,12.8,2.4 +20070326,19.5,10.0,30.6,13.9,3.1 +20070327,20.6,13.3,27.2,13.9,3.8 +20070328,21.7,11.4,28.9,13.9,3.0 +20070329,16.6,10.6,25.0,9.0,5.0 +20070330,12.6,5.4,20.0,9.4,2.1 +20070331,17.3,10.1,24.0,12.0,4.0 +20070401,18.2,14.2,25.0,13.9,4.2 +20070402,20.1,13.8,27.8,15.6,4.5 +20070403,20.5,12.2,28.0,13.0,2.7 +20070404,20.3,10.4,27.8,13.3,5.4 +20070405,11.4,-5.5,25.6,5.0,3.9 +20070406,7.4,-6.4,16.7,0.0,3.4 +20070407,3.8,-10.4,15.6,-2.2,4.6 +20070408,3.6,-11.3,13.0,-4.0,2.2 +20070409,7.3,-7.1,13.3,-4.3,3.3 +20070410,8.3,-3.5,17.0,-1.0,2.5 +20070411,9.6,3.8,13.9,8.0,3.1 +20070412,13.5,4.7,23.0,8.0,4.8 +20070413,14.2,-1.6,23.3,5.0,3.2 +20070414,16.3,1.2,23.3,5.0,3.2 +20070415,15.2,11.6,20.0,8.0,4.3 +20070416,12.7,-4.9,21.1,7.2,6.7 +20070417,17.7,-6.7,25.6,7.2,5.0 +20070418,17.3,-0.8,25.6,11.1,2.0 +20070419,14.5,8.1,23.9,9.4,2.7 +20070420,13.1,6.7,22.8,7.8,3.8 +20070421,15.4,4.8,24.0,7.0,1.0 +20070422,17.7,4.0,27.0,8.0,1.7 +20070423,18.8,5.9,26.7,7.2,4.1 +20070424,20.8,10.3,27.0,15.0,3.8 +20070425,22.1,10.9,29.0,15.0,4.6 +20070426,20.9,12.7,28.9,14.4,3.9 +20070427,20.4,13.2,26.1,14.4,4.6 +20070428,18.3,5.8,26.1,12.8,2.6 +20070429,19.2,5.7,28.3,11.1,2.5 +20070430,22.1,4.1,30.6,10.6,1.6 +20070501,23.7,6.3,32.2,13.9,2.9 +20070502,23.4,8.7,32.2,13.9,3.1 +20070503,23.9,13.1,31.7,13.9,4.7 +20070504,14.2,11.8,17.8,12.8,4.6 +20070505,13.1,11.4,16.1,11.7,3.3 +20070506,16.9,11.6,23.9,11.7,3.4 +20070507,14.6,-2.0,23.9,6.7,4.8 +20070508,17.7,3.4,25.0,6.7,5.2 +20070509,20.6,12.8,26.1,12.2,5.4 +20070510,21.3,14.1,28.3,15.6,2.2 +20070511,23.1,15.5,29.4,15.6,1.6 +20070512,21.2,17.7,30.0,16.7,1.2 +20070513,21.7,15.0,28.0,16.0,2.7 +20070514,19.5,9.7,27.8,15.0,2.9 +20070515,19.0,9.4,28.0,12.0,3.0 +20070516,20.5,13.2,27.8,10.6,4.7 +20070517,19.0,7.7,24.0,13.0,2.9 +20070518,17.9,3.4,25.0,11.7,3.7 +20070519,15.3,1.6,24.4,7.2,2.2 +20070520,19.8,2.7,28.9,7.2,1.6 +20070521,21.2,5.1,30.0,10.0,1.7 +20070522,21.8,8.5,30.6,10.0,1.6 +20070523,22.3,12.7,30.6,12.8,2.5 +20070524,21.4,12.3,27.8,15.0,2.4 +20070525,21.3,11.8,28.3,14.0,1.7 +20070526,22.8,11.9,30.0,12.8,2.4 +20070527,23.6,12.4,31.1,15.0,3.1 +20070528,22.7,12.5,30.6,15.6,3.1 +20070529,23.4,12.3,31.1,15.6,1.7 +20070530,24.3,9.7,32.2,15.0,1.4 +20070531,25.6,11.9,33.3,15.0,1.0 +20070601,24.8,14.1,33.3,17.8,2.4 +20070602,22.0,14.6,30.6,17.8,2.6 +20070603,20.6,15.6,28.0,17.0,3.2 +20070604,24.1,15.1,32.0,18.0,4.4 +20070605,24.1,12.2,32.8,17.2,3.9 +20070606,24.1,13.6,32.2,16.7,2.9 +20070607,26.4,13.8,34.4,16.7,2.6 +20070608,27.6,18.0,35.6,19.4,3.9 +20070609,27.7,14.8,36.0,21.0,2.7 +20070610,27.0,12.9,33.3,21.0,3.3 +20070611,24.2,16.9,30.6,19.0,2.3 +20070612,20.5,16.3,28.0,16.7,2.1 +20070613,20.6,14.1,28.3,15.0,2.5 +20070614,20.6,15.3,28.3,15.0,1.8 +20070615,19.3,16.6,28.3,15.0,2.1 +20070616,22.2,17.2,28.3,17.2,3.5 +20070617,25.1,15.0,33.0,18.0,1.1 +20070618,26.1,15.0,35.0,17.8,1.2 +20070619,26.5,17.4,35.0,17.8,3.2 +20070620,25.7,16.3,32.8,20.6,3.4 +20070621,24.7,9.4,32.2,15.6,2.6 +20070622,25.2,11.0,33.9,15.6,2.2 +20070623,26.4,13.9,33.9,16.1,1.9 +20070624,26.4,18.1,34.0,21.0,2.6 +20070625,24.6,18.2,33.9,20.6,3.6 +20070626,24.0,18.1,32.8,19.4,2.1 +20070627,25.8,18.6,32.8,19.4,2.0 +20070628,27.0,18.7,33.3,20.0,2.7 +20070629,26.7,17.9,34.4,20.6,2.4 +20070630,26.3,19.3,34.4,20.6,1.8 +20070701,25.7,18.7,33.9,21.1,3.0 +20070702,21.8,16.1,30.0,17.8,2.6 +20070703,21.9,14.6,27.0,18.0,1.9 +20070704,23.0,16.1,28.9,17.8,2.7 +20070705,24.6,15.6,31.7,17.8,3.3 +20070706,25.9,17.5,33.3,18.3,2.2 +20070707,25.3,20.1,33.3,20.6,1.4 +20070708,25.3,19.7,30.6,21.1,2.0 +20070709,25.9,19.7,32.0,21.0,1.6 +20070710,25.6,20.1,33.9,20.0,3.4 +20070711,25.3,19.3,33.9,21.1,4.7 +20070712,25.9,16.1,32.2,18.9,1.7 +20070713,23.9,12.7,32.2,18.9,2.2 +20070714,21.9,14.7,28.0,17.0,1.0 +20070715,22.8,17.6,28.3,17.2,1.9 +20070716,24.7,19.2,32.2,18.9,2.3 +20070717,26.2,19.3,33.3,19.4,2.5 +20070718,25.3,20.1,32.0,21.0,2.2 +20070719,26.8,17.7,35.0,20.0,2.5 +20070720,27.1,17.7,35.0,20.0,3.3 +20070721,24.7,13.3,31.7,20.0,3.4 +20070722,23.7,11.7,28.3,19.0,2.8 +20070723,23.2,11.1,29.4,16.7,2.5 +20070724,24.0,13.1,31.7,16.7,2.1 +20070725,25.0,15.0,32.8,18.3,2.5 +20070726,25.3,16.2,33.3,19.4,2.1 +20070727,26.2,17.7,34.4,19.4,1.9 +20070728,23.6,18.9,34.4,20.6,1.7 +20070729,23.8,20.4,27.8,21.1,2.0 +20070730,24.6,20.9,31.7,21.7,1.3 +20070731,25.5,19.3,32.2,21.0,2.6 +20070801,26.6,18.1,32.2,21.0,1.4 +20070802,27.4,17.1,33.9,20.0,1.8 +20070803,27.2,16.3,33.9,20.0,1.3 +20070804,27.2,17.6,36.0,20.0,1.5 +20070805,28.3,18.3,36.7,20.0,1.2 +20070806,28.3,19.7,36.7,21.7,1.4 +20070807,30.7,19.4,38.0,24.0,0.9 +20070808,31.6,19.4,40.0,23.9,1.4 +20070809,32.1,19.1,40.0,24.4,1.5 +20070810,32.3,18.1,41.0,23.0,2.1 +20070811,31.7,16.9,40.6,22.8,2.9 +20070812,28.1,20.8,33.3,23.0,2.6 +20070813,29.0,17.9,36.7,22.2,1.9 +20070814,29.0,14.8,36.7,21.7,2.3 +20070815,29.1,14.9,37.8,20.6,1.6 +20070816,30.6,17.6,38.9,20.6,2.9 +20070817,30.6,18.8,38.9,24.4,2.6 +20070818,28.9,16.6,37.8,22.2,2.0 +20070819,28.0,17.2,35.0,22.0,2.3 +20070820,29.4,16.8,36.7,22.2,3.8 +20070821,30.7,17.9,38.9,22.8,3.3 +20070822,30.1,19.2,38.9,23.9,1.4 +20070823,28.9,19.0,38.9,22.8,1.9 +20070824,26.9,19.5,36.7,21.7,2.4 +20070825,26.4,19.7,36.1,21.7,2.2 +20070826,25.7,19.4,36.1,21.7,2.0 +20070827,24.6,20.1,31.0,21.0,2.1 +20070828,-999.0,-999.0,-999.0,-999.0,-999.0 +20070829,27.2,19.9,36.0,21.7,2.6 +20070830,24.7,20.4,35.6,21.7,2.1 +20070831,24.5,19.6,33.3,21.7,2.1 +20070901,24.6,18.6,31.1,20.6,2.6 +20070902,24.8,15.0,30.0,20.6,4.1 +20070903,24.4,15.1,32.8,17.8,1.1 +20070904,23.2,17.8,32.8,17.8,1.3 +20070905,26.2,13.0,35.0,17.8,1.5 +20070906,27.5,15.8,35.0,17.8,2.5 +20070907,26.6,16.8,33.3,20.6,1.7 +20070908,26.4,15.7,34.0,19.0,1.3 +20070909,26.0,14.6,34.0,18.0,1.0 +20070910,27.6,14.8,35.6,18.3,2.4 +20070911,27.7,14.4,35.6,20.6,4.8 +20070912,25.7,17.2,35.0,21.1,2.7 +20070913,23.8,19.2,31.1,21.7,2.9 +20070914,23.4,20.2,27.0,22.0,1.9 +20070915,22.6,16.6,29.4,16.7,2.1 +20070916,19.1,7.2,29.4,15.0,4.1 +20070917,19.4,9.9,25.0,14.0,3.1 +20070918,19.3,10.7,26.0,14.0,3.3 +20070919,20.1,10.3,27.2,14.0,4.1 +20070920,21.8,13.7,27.8,14.4,4.5 +20070921,22.2,17.4,26.7,17.8,3.4 +20070922,24.7,18.1,31.7,20.0,1.5 +20070923,26.0,17.4,33.9,18.9,1.6 +20070924,26.3,17.2,33.9,18.9,2.2 +20070925,24.7,17.1,32.8,19.4,2.0 +20070926,24.1,13.2,32.8,15.6,1.4 +20070927,23.3,13.8,32.8,15.6,1.5 +20070928,24.3,12.6,31.1,15.6,2.6 +20070929,21.0,4.1,30.0,13.9,3.7 +20070930,19.4,4.7,28.3,12.8,3.4 +20071001,19.9,7.3,27.8,12.8,3.2 +20071002,20.9,10.9,28.3,13.3,3.6 +20071003,23.8,13.8,28.3,15.0,3.5 +20071004,22.7,18.7,26.0,21.0,2.2 +20071005,23.4,19.1,28.3,21.0,2.6 +20071006,23.4,17.9,29.4,20.6,2.9 +20071007,23.5,17.3,30.0,18.3,2.3 +20071008,24.0,17.0,31.7,17.8,0.8 +20071009,24.3,16.1,32.2,17.8,1.7 +20071010,23.1,13.3,32.2,17.8,2.1 +20071011,17.1,2.6,30.0,11.7,3.8 +20071012,15.1,3.2,22.8,8.9,1.8 +20071013,15.2,4.8,23.3,7.8,1.9 +20071014,17.1,7.3,26.1,7.8,1.1 +20071015,19.1,8.7,26.7,9.4,1.6 +20071016,17.9,11.5,23.0,12.0,1.3 +20071017,20.1,14.4,27.0,17.0,1.2 +20071018,21.2,16.5,26.7,16.7,1.9 +20071019,21.8,18.5,26.1,18.3,4.6 +20071020,17.8,9.4,24.4,11.1,2.6 +20071021,16.7,6.0,26.1,8.0,1.4 +20071022,16.1,11.4,26.1,8.3,1.7 +20071023,20.7,18.2,27.2,14.4,2.9 +20071024,18.4,16.1,27.2,16.1,2.8 +20071025,16.6,11.6,22.8,10.6,2.1 +20071026,15.8,12.2,22.8,11.1,3.5 +20071027,16.4,9.7,23.0,12.0,1.5 +20071028,14.9,5.9,22.8,10.0,3.2 +20071029,11.3,0.6,20.6,5.0,3.5 +20071030,9.5,0.1,20.0,1.1,1.3 +20071031,11.9,3.4,22.2,1.1,1.3 +20071101,16.8,9.8,24.4,3.9,1.5 +20071102,15.1,4.1,18.0,11.0,4.6 +20071103,10.8,1.3,21.1,1.7,2.5 +20071104,13.3,-2.8,21.1,1.7,2.3 +20071105,13.2,-0.4,22.2,3.9,3.3 +20071106,14.7,1.0,22.2,4.4,4.8 +20071107,6.7,-7.2,17.2,-2.2,2.2 +20071108,5.9,-4.6,13.9,-2.1,2.0 +20071109,9.1,-1.7,18.9,-1.6,2.0 +20071110,12.8,-0.9,18.9,1.1,3.7 +20071111,7.8,-1.7,17.2,0.0,1.8 +20071112,11.1,2.3,21.1,0.0,2.4 +20071113,15.4,6.3,24.4,3.3,3.5 +20071114,18.4,12.3,26.1,8.9,3.5 +20071115,15.1,6.6,21.7,6.0,5.6 +20071116,5.5,-6.4,12.0,-1.0,3.2 +20071117,6.3,-3.7,16.7,-2.2,2.1 +20071118,12.5,2.3,22.2,-2.1,2.3 +20071119,15.6,7.7,23.3,5.0,1.2 +20071120,15.6,8.2,24.0,8.0,2.5 +20071121,16.4,8.7,23.9,8.3,3.9 +20071122,17.3,13.5,23.9,10.0,4.3 +20071123,7.9,-1.8,11.0,4.0,3.7 +20071124,3.3,-6.3,10.6,-1.1,2.7 +20071125,6.4,-3.6,9.4,-0.5,2.7 +20071126,8.0,6.6,11.1,5.6,2.1 +20071127,12.1,5.9,15.6,6.1,3.6 +20071128,8.3,-3.7,16.1,0.0,1.9 +20071129,8.4,-1.1,18.3,0.0,1.8 +20071130,9.1,-2.1,18.3,0.6,2.3 +20071201,9.3,-5.4,18.0,2.0,1.5 +20071202,9.9,-2.2,17.8,1.7,1.8 +20071203,12.7,1.3,15.6,4.4,4.4 +20071204,6.2,-9.1,15.6,0.0,2.6 +20071205,7.2,-6.1,16.1,1.1,2.7 +20071206,5.3,-5.3,16.1,-0.6,4.4 +20071207,4.6,-4.8,11.1,-0.6,1.7 +20071208,11.9,5.7,23.3,0.6,3.4 +20071209,16.4,13.6,23.3,4.4,2.4 +20071210,18.6,13.4,26.1,12.2,3.1 +20071211,18.6,12.5,26.1,12.8,3.4 +20071212,18.8,12.5,26.1,12.8,4.4 +20071213,18.6,12.7,25.6,13.3,4.4 +20071214,14.9,7.1,23.9,6.7,1.3 +20071215,8.7,2.3,15.0,3.0,4.8 +20071216,5.3,-0.1,11.1,2.8,5.7 +20071217,1.6,-8.8,10.0,-5.0,1.7 +20071218,1.9,-8.6,10.0,-5.0,0.9 +20071219,6.1,-2.2,12.2,-4.9,3.2 +20071220,6.4,2.3,12.2,1.7,1.9 +20071221,6.8,4.3,10.0,2.2,5.6 +20071222,7.9,2.4,11.1,6.1,5.4 +20071223,10.1,7.1,16.1,6.7,4.4 +20071224,6.6,-5.6,16.1,0.0,2.1 +20071225,7.6,-5.6,13.9,0.0,2.4 +20071226,6.9,1.4,12.8,2.8,3.5 +20071227,9.1,4.8,15.0,2.8,2.2 +20071228,10.1,7.9,15.0,7.2,1.5 +20071229,12.9,9.3,20.0,10.0,2.8 +20071230,9.2,5.9,20.0,7.8,1.8 +20071231,7.8,2.6,14.4,1.1,2.3 +20080101,6.1,-4.9,14.4,0.6,3.8 +20080102,-0.9,-13.5,10.0,-6.7,5.0 +20080103,-2.8,-13.9,4.0,-7.2,2.3 +20080104,0.1,-12.6,8.3,-7.8,3.0 +20080105,4.4,-7.8,13.0,-2.0,4.2 +20080106,10.6,2.6,19.0,6.0,3.7 +20080107,13.1,7.7,21.1,5.6,2.7 +20080108,14.1,10.9,21.1,6.1,2.5 +20080109,17.3,12.9,23.0,13.0,4.9 +20080110,10.5,7.9,16.1,8.0,3.1 +20080111,12.9,7.4,18.3,7.8,4.5 +20080112,8.5,1.3,18.3,3.9,3.1 +20080113,7.9,1.5,13.9,3.9,3.1 +20080114,5.2,-2.9,12.2,0.0,3.1 +20080115,2.5,-8.7,12.2,-4.4,1.9 +20080116,1.6,-10.1,8.9,-4.4,1.9 +20080117,1.5,-1.0,6.1,-3.8,3.9 +20080118,4.1,1.9,12.2,0.0,2.0 +20080119,3.8,2.1,6.7,1.0,1.9 +20080120,-0.5,-9.7,2.0,-6.0,1.5 +20080121,-1.8,-17.9,5.0,-7.8,2.5 +20080122,1.3,-10.2,5.0,-7.8,1.8 +20080123,4.1,1.9,10.0,1.1,2.7 +20080124,6.0,0.3,12.2,1.7,3.0 +20080125,-1.4,-15.2,4.0,-7.0,3.1 +20080126,3.8,-9.2,10.6,-6.6,3.1 +20080127,5.2,-3.1,14.4,-2.2,2.3 +20080128,8.4,-8.1,15.0,-2.1,3.3 +20080129,11.9,-3.8,17.8,2.2,5.5 +20080130,9.9,-2.4,17.8,2.2,4.7 +20080131,4.0,-12.1,11.7,-0.6,4.3 +20080201,4.6,0.6,11.0,1.0,5.8 +20080202,5.8,-1.8,16.1,-2.2,2.4 +20080203,10.0,-2.4,18.3,-1.0,2.6 +20080204,11.1,6.1,18.3,3.9,1.2 +20080205,14.2,10.4,22.8,7.8,3.6 +20080206,16.3,14.3,22.8,7.8,4.8 +20080207,11.3,0.7,18.3,2.2,4.6 +20080208,8.9,-2.1,17.2,0.0,2.9 +20080209,10.2,-0.6,19.4,5.0,3.9 +20080210,11.0,-6.7,19.4,3.9,6.7 +20080211,6.8,-9.5,18.9,-2.2,2.1 +20080212,7.6,-2.6,15.6,-1.0,2.8 +20080213,8.1,4.9,13.9,2.8,2.8 +20080214,3.1,-7.3,13.3,-4.4,3.1 +20080215,8.9,-3.5,17.2,-4.3,2.6 +20080216,13.3,2.9,21.0,8.0,1.8 +20080217,9.8,5.4,20.6,6.7,3.1 +20080218,14.2,7.8,17.2,8.3,6.4 +20080219,7.0,-6.4,17.2,0.6,5.5 +20080220,8.8,-5.7,19.4,0.6,6.0 +20080221,7.4,-2.0,19.4,1.7,3.9 +20080222,3.1,1.6,7.0,1.0,3.3 +20080223,11.1,6.8,21.1,1.1,3.8 +20080224,7.6,1.3,21.1,3.9,3.0 +20080225,8.9,2.1,18.0,1.0,1.2 +20080226,11.3,6.1,17.8,0.6,3.0 +20080227,4.5,-6.1,17.8,0.6,3.4 +20080228,-0.3,-12.1,7.2,-7.2,2.2 +20080229,5.6,-6.6,13.9,-7.1,3.0 +20080301,12.2,-0.5,21.0,6.0,4.3 +20080302,11.2,-6.9,20.6,0.0,1.4 +20080303,12.3,0.2,22.2,1.7,3.1 +20080304,17.5,13.3,19.0,14.0,6.1 +20080305,10.3,3.3,20.0,3.3,4.4 +20080306,11.2,2.5,19.4,3.3,2.6 +20080307,10.9,7.1,19.4,5.6,3.5 +20080308,8.9,3.4,14.0,3.0,6.6 +20080309,3.4,-8.4,13.9,-4.4,2.5 +20080310,8.4,-3.9,19.4,-4.3,1.5 +20080311,11.3,-0.3,19.4,0.0,2.1 +20080312,11.7,-1.3,21.1,1.1,3.4 +20080313,14.8,0.3,24.4,1.1,2.3 +20080314,15.8,4.1,24.4,4.4,4.4 +20080315,13.3,11.4,20.0,10.6,3.0 +20080316,12.4,5.3,18.0,8.0,3.8 +20080317,9.7,-0.6,13.3,4.0,3.2 +20080318,10.1,1.4,16.0,8.0,2.4 +20080319,14.3,10.3,19.0,11.0,4.6 +20080320,13.5,1.9,19.0,6.0,6.1 +20080321,12.1,-4.5,20.6,2.8,3.0 +20080322,15.3,-0.6,25.0,4.4,4.7 +20080323,11.6,-2.8,25.0,4.4,3.7 +20080324,6.2,-6.9,17.2,0.6,3.5 +20080325,6.5,-6.2,14.4,-2.2,2.9 +20080326,12.4,-4.2,22.2,-2.1,5.0 +20080327,16.3,1.2,23.9,5.0,4.8 +20080328,18.8,8.2,25.0,9.4,6.2 +20080329,13.9,10.3,25.0,7.8,4.3 +20080330,6.6,2.0,8.0,4.0,6.5 +20080331,8.2,4.6,15.0,4.4,4.7 +20080401,14.6,11.1,23.3,6.1,3.6 +20080402,19.1,11.9,24.4,10.6,2.8 +20080403,11.2,6.3,19.4,6.0,4.6 +20080404,8.7,7.4,14.0,6.0,2.3 +20080405,14.6,13.4,17.0,13.0,2.5 +20080406,16.4,13.0,21.7,13.3,2.6 +20080407,13.5,8.3,21.7,10.0,5.0 +20080408,13.2,7.9,17.2,9.0,2.7 +20080409,15.1,7.9,23.9,8.9,1.9 +20080410,17.6,9.8,24.4,8.9,1.6 +20080411,20.0,12.8,27.8,10.6,4.3 +20080412,19.0,14.1,27.8,15.0,5.6 +20080413,13.4,0.1,20.6,6.1,5.0 +20080414,8.1,-1.9,18.3,3.3,2.3 +20080415,10.1,-1.7,17.2,3.3,3.6 +20080416,11.6,-3.9,21.1,2.2,1.2 +20080417,15.3,-0.1,26.1,2.2,1.7 +20080418,18.9,2.4,27.2,4.4,3.6 +20080419,16.9,9.1,27.2,10.6,3.5 +20080420,15.8,5.2,22.2,7.8,3.0 +20080421,16.2,5.1,22.2,7.8,2.6 +20080422,16.8,9.3,23.3,9.4,3.3 +20080423,19.3,11.5,25.0,11.1,4.3 +20080424,19.5,11.7,27.2,12.2,1.4 +20080425,20.9,12.4,28.3,12.2,2.9 +20080426,20.6,14.1,29.4,14.4,3.3 +20080427,18.4,16.3,29.4,15.0,1.5 +20080428,18.6,15.1,22.2,16.0,3.4 +20080429,12.8,-0.7,22.8,6.1,3.8 +20080430,12.6,0.6,21.1,3.9,2.4 +20080501,16.7,5.9,26.0,8.0,3.1 +20080502,19.7,10.7,27.2,7.8,4.3 +20080503,19.6,12.9,27.2,13.3,4.3 +20080504,20.0,11.9,27.2,13.9,2.7 +20080505,20.5,9.4,27.2,13.9,3.3 +20080506,19.9,8.1,26.0,13.0,2.5 +20080507,20.4,9.6,27.2,13.3,2.9 +20080508,22.6,14.5,28.3,13.3,4.9 +20080509,22.8,15.5,28.0,17.0,5.1 +20080510,22.6,14.4,28.3,16.7,2.5 +20080511,18.3,12.4,25.6,13.0,4.6 +20080512,17.6,4.4,23.3,13.3,6.4 +20080513,16.6,5.3,23.0,9.0,2.5 +20080514,16.4,10.1,22.8,8.3,2.8 +20080515,18.1,14.8,21.7,10.6,2.5 +20080516,20.3,15.9,26.7,15.6,4.4 +20080517,16.8,6.8,26.7,8.9,4.1 +20080518,18.1,10.1,25.6,8.9,4.9 +20080519,18.9,8.7,27.2,10.6,4.2 +20080520,22.5,12.3,30.0,10.6,5.9 +20080521,18.2,10.4,26.0,11.0,2.4 +20080522,19.1,6.6,27.8,9.4,2.0 +20080523,21.8,9.6,29.0,15.6,2.0 +20080524,21.8,13.4,28.9,15.6,3.0 +20080525,20.2,13.1,27.0,15.0,1.8 +20080526,21.8,12.6,29.0,16.0,4.1 +20080527,24.1,14.8,31.1,15.0,4.2 +20080528,22.8,17.9,27.2,14.0,2.8 +20080529,17.1,11.6,25.0,13.0,3.8 +20080530,22.0,16.8,29.4,13.3,3.2 +20080531,26.1,18.6,33.3,16.7,5.2 +20080601,25.6,15.2,31.0,19.0,4.3 +20080602,25.1,14.1,32.2,18.9,2.1 +20080603,25.2,16.6,32.2,18.9,2.5 +20080604,28.2,19.2,35.6,18.9,5.2 +20080605,29.2,17.9,36.1,21.7,3.7 +20080606,29.3,18.4,36.1,21.7,3.1 +20080607,29.4,17.7,37.2,22.8,2.7 +20080608,29.9,16.9,37.8,21.7,2.2 +20080609,30.4,17.7,37.8,21.7,2.3 +20080610,28.9,16.9,37.2,21.1,2.2 +20080611,27.3,17.6,36.7,20.0,2.6 +20080612,26.6,17.8,35.0,20.0,3.4 +20080613,27.2,16.9,33.3,20.6,2.3 +20080614,26.8,16.3,34.4,20.6,3.3 +20080615,25.8,16.7,32.0,19.0,1.9 +20080616,26.9,16.5,35.0,19.4,2.3 +20080617,27.4,15.1,35.0,20.6,2.5 +20080618,23.6,6.6,35.0,16.7,2.4 +20080619,24.8,6.4,31.1,16.7,2.8 +20080620,24.6,10.0,31.1,15.6,2.0 +20080621,24.4,16.0,31.1,15.6,2.3 +20080622,24.5,16.9,32.0,18.0,1.8 +20080623,24.8,16.2,32.8,18.3,2.3 +20080624,26.2,11.7,35.0,17.8,1.5 +20080625,27.4,10.8,36.0,18.0,2.4 +20080626,27.7,10.9,36.1,17.8,2.6 +20080627,28.3,16.4,36.1,18.3,4.3 +20080628,26.6,18.3,35.6,21.1,3.7 +20080629,27.3,17.4,32.0,21.0,5.5 +20080630,25.6,16.1,32.8,20.0,5.0 +20080701,23.4,8.3,31.7,16.1,3.5 +20080702,23.9,7.6,32.0,14.0,1.9 +20080703,26.1,10.8,34.4,14.4,2.8 +20080704,27.6,15.0,35.0,17.8,3.2 +20080705,25.8,18.3,35.0,20.6,2.9 +20080706,24.3,18.6,31.0,19.0,2.6 +20080707,23.3,18.4,32.0,18.0,2.8 +20080708,26.7,20.0,32.2,18.3,3.1 +20080709,25.7,19.9,33.9,21.1,3.3 +20080710,24.7,20.4,32.0,21.0,2.0 +20080711,26.2,20.8,33.3,21.1,2.0 +20080712,27.3,19.3,33.9,21.7,1.5 +20080713,25.8,19.3,33.9,21.7,3.4 +20080714,25.7,19.2,32.8,21.7,2.1 +20080715,26.4,15.4,31.7,21.7,3.0 +20080716,26.0,14.7,31.7,20.0,2.6 +20080717,25.9,14.8,31.7,20.0,3.2 +20080718,26.2,15.1,32.8,20.0,2.7 +20080719,27.2,17.9,33.3,20.0,1.6 +20080720,28.3,17.1,36.0,21.0,1.5 +20080721,30.5,17.2,38.9,21.1,2.1 +20080722,27.2,16.9,38.9,20.6,2.9 +20080723,27.4,17.9,36.1,20.6,2.9 +20080724,25.8,14.6,30.0,19.0,2.8 +20080725,25.1,14.6,30.6,19.4,2.3 +20080726,24.7,19.9,29.0,21.0,1.2 +20080727,26.9,20.1,36.1,20.6,2.1 +20080728,27.8,17.2,36.1,20.6,2.5 +20080729,26.9,20.6,35.6,20.6,2.5 +20080730,28.2,20.3,36.7,21.7,3.1 +20080731,28.1,20.8,36.7,22.2,3.3 +20080801,27.2,19.8,34.0,22.0,1.4 +20080802,28.9,18.2,37.2,21.0,1.6 +20080803,25.6,19.1,37.2,20.0,1.6 +20080804,28.2,18.7,35.6,20.0,2.3 +20080805,28.8,18.1,36.1,21.7,1.8 +20080806,30.3,19.7,37.8,21.7,1.4 +20080807,28.6,18.2,37.8,22.2,1.3 +20080808,26.7,14.9,35.0,21.7,2.4 +20080809,25.1,11.2,32.2,18.3,2.7 +20080810,26.2,14.4,33.3,18.3,2.0 +20080811,26.3,11.6,33.3,18.3,2.2 +20080812,24.6,11.1,30.0,18.0,3.2 +20080813,22.8,18.8,29.4,18.3,3.3 +20080814,21.6,16.9,29.4,17.8,2.5 +20080815,23.9,17.4,32.8,17.8,1.8 +20080816,24.6,17.1,32.8,17.8,2.7 +20080817,23.5,17.4,29.4,18.0,2.8 +20080818,24.0,17.9,31.1,18.3,2.1 +20080819,26.3,16.8,33.9,18.9,1.9 +20080820,26.3,16.3,33.9,19.4,2.5 +20080821,25.6,17.1,33.3,19.4,4.3 +20080822,24.7,17.2,30.6,20.6,5.4 +20080823,24.9,17.1,31.1,20.6,5.2 +20080824,25.4,16.8,31.1,21.1,2.5 +20080825,25.1,20.1,30.6,21.7,1.7 +20080826,22.5,21.2,28.3,21.7,4.1 +20080827,23.3,21.3,27.2,21.7,4.0 +20080828,23.4,20.7,27.2,21.0,1.6 +20080829,25.2,19.4,31.1,21.1,1.8 +20080830,26.1,18.9,32.8,20.6,1.7 +20080831,26.1,19.8,32.8,20.6,2.1 +20080901,24.6,20.6,29.0,22.0,3.3 +20080902,24.3,17.3,29.4,19.4,2.3 +20080903,23.4,16.2,30.0,17.0,1.0 +20080904,23.1,15.9,30.6,15.6,1.5 +20080905,23.4,17.1,30.0,15.6,3.5 +20080906,25.9,17.6,33.0,19.0,3.1 +20080907,26.3,18.7,33.3,19.4,1.4 +20080908,26.6,19.8,33.3,20.6,2.5 +20080909,25.7,20.4,32.2,22.2,3.0 +20080910,25.1,19.7,30.0,21.7,1.4 +20080911,20.8,17.9,23.3,18.0,4.6 +20080912,23.5,20.3,29.4,18.3,1.9 +20080913,25.6,20.7,31.0,21.0,2.3 +20080914,25.8,19.4,32.2,20.6,4.3 +20080915,26.4,19.9,31.7,20.6,2.8 +20080916,19.1,17.1,23.0,17.0,4.6 +20080917,18.9,14.6,23.9,16.1,4.7 +20080918,20.5,13.7,27.2,15.0,1.4 +20080919,20.3,13.3,27.2,15.0,3.5 +20080920,18.9,12.4,25.6,13.9,3.2 +20080921,18.6,12.9,23.9,13.9,2.3 +20080922,20.5,13.1,27.2,14.4,2.8 +20080923,18.9,11.9,27.2,15.0,3.8 +20080924,18.6,9.3,25.0,13.9,4.9 +20080925,18.2,7.4,23.9,13.9,6.0 +20080926,18.8,14.6,23.3,14.4,4.6 +20080927,19.1,16.6,23.3,17.0,1.4 +20080928,22.5,16.8,28.9,17.2,1.2 +20080929,21.7,15.8,28.9,15.6,1.4 +20080930,20.7,15.0,28.3,15.0,2.2 +20081001,19.1,12.4,28.3,15.0,1.7 +20081002,15.1,4.9,24.4,7.2,2.2 +20081003,15.2,7.3,25.0,7.2,1.2 +20081004,17.8,10.4,26.7,7.2,1.0 +20081005,19.2,12.3,27.8,10.6,0.9 +20081006,19.3,12.3,27.8,11.7,1.2 +20081007,17.6,13.3,27.2,11.7,2.7 +20081008,16.6,13.8,21.7,13.9,2.6 +20081009,18.3,15.9,22.8,15.6,3.3 +20081010,20.4,17.1,26.1,16.1,4.0 +20081011,20.8,14.9,26.1,17.8,6.0 +20081012,20.2,9.1,24.0,17.0,6.4 +20081013,19.7,11.2,25.6,15.0,3.7 +20081014,18.4,11.3,27.8,11.1,0.9 +20081015,19.2,11.4,28.3,11.1,1.9 +20081016,20.7,13.4,28.3,11.1,2.3 +20081017,21.1,17.2,28.3,13.3,2.6 +20081018,14.2,9.1,22.8,11.7,4.5 +20081019,11.4,1.7,17.8,5.6,3.0 +20081020,10.4,2.8,20.0,2.8,1.4 +20081021,14.1,5.3,23.0,7.0,1.7 +20081022,13.4,2.7,22.8,5.6,2.5 +20081023,9.8,1.4,18.3,5.6,3.7 +20081024,10.4,5.6,15.6,5.6,4.5 +20081025,15.1,12.3,21.7,9.4,2.3 +20081026,12.2,6.0,21.7,4.4,1.3 +20081027,11.4,1.3,20.6,5.6,4.2 +20081028,6.7,-4.2,14.4,1.7,4.1 +20081029,6.1,-3.4,16.1,-1.7,2.5 +20081030,10.4,-3.3,18.3,-1.6,2.2 +20081031,10.2,-0.3,21.1,1.1,1.1 +20081101,12.3,1.6,23.0,4.0,1.3 +20081102,13.6,3.8,23.3,3.3,2.0 +20081103,13.4,7.3,23.3,5.0,4.0 +20081104,15.4,9.8,20.0,10.0,4.7 +20081105,16.6,9.4,23.3,11.7,3.1 +20081106,16.3,7.9,26.0,10.0,1.0 +20081107,15.9,8.3,25.6,7.2,2.4 +20081108,15.1,6.7,23.9,7.2,4.4 +20081109,10.1,0.4,18.9,2.8,1.7 +20081110,8.3,0.4,16.7,0.6,1.1 +20081111,8.9,-2.8,16.7,0.6,2.0 +20081112,9.7,0.4,15.6,5.0,2.9 +20081113,11.2,6.9,14.4,6.1,2.6 +20081114,13.5,12.3,15.0,8.3,1.4 +20081115,15.9,11.4,19.0,11.0,4.9 +20081116,6.8,-1.1,18.9,-1.1,1.7 +20081117,5.6,-2.2,16.1,-1.7,1.8 +20081118,3.1,-8.6,16.1,-1.6,3.8 +20081119,0.9,-10.8,8.3,-6.1,2.1 +20081120,5.9,-6.3,17.2,-6.1,2.0 +20081121,4.3,-7.4,17.2,-1.6,4.0 +20081122,-0.1,-12.4,7.2,-7.2,1.4 +20081123,5.5,-10.4,12.2,-7.1,1.8 +20081124,5.8,-2.8,12.2,-0.5,2.8 +20081125,7.1,-0.7,12.8,0.6,2.9 +20081126,3.5,-6.0,12.8,-3.9,0.9 +20081127,7.9,-2.1,17.8,-3.2,1.7 +20081128,10.9,2.4,19.4,1.7,1.4 +20081129,9.1,4.7,19.4,5.0,2.7 +20081130,4.2,2.8,6.0,3.0,4.0 +20081201,5.3,0.8,7.8,2.8,6.2 +20081202,2.5,-3.4,8.3,-2.8,2.8 +20081203,2.5,-4.7,11.1,-5.0,2.1 +20081204,5.6,-0.4,11.7,-4.3,3.5 +20081205,6.6,-0.7,12.0,2.0,1.3 +20081206,3.1,-4.8,11.7,0.0,1.9 +20081207,2.1,-7.3,8.9,-4.4,1.6 +20081208,2.4,-11.7,10.0,-3.9,1.1 +20081209,6.8,-1.9,11.0,4.0,2.0 +20081210,13.9,11.9,17.2,4.4,2.3 +20081211,15.9,14.4,19.0,13.0,2.8 +20081212,9.5,1.3,13.3,3.0,3.4 +20081213,3.2,-6.7,9.0,-2.0,2.6 +20081214,2.8,-3.7,8.9,-1.7,1.3 +20081215,8.7,4.4,13.3,5.0,1.6 +20081216,13.4,11.6,18.0,10.6,1.1 +20081217,10.1,9.1,16.1,7.0,3.0 +20081218,17.4,14.0,23.3,7.2,2.2 +20081219,15.5,12.4,23.3,11.7,3.4 +20081220,16.7,14.1,20.0,11.7,4.5 +20081221,13.1,4.5,17.2,3.9,3.7 +20081222,-1.0,-16.3,4.4,-7.0,3.9 +20081223,-0.7,-13.1,4.4,-6.7,1.4 +20081224,5.6,-5.8,10.0,-3.8,1.2 +20081225,12.8,9.0,20.0,3.9,0.8 +20081226,10.3,4.2,14.0,8.0,3.0 +20081227,9.3,7.8,13.3,7.0,1.1 +20081228,14.3,12.9,18.0,11.7,2.4 +20081229,14.0,6.3,18.3,10.0,1.3 +20081230,9.8,-3.4,20.0,1.1,2.2 +20081231,10.1,-5.0,20.0,1.1,5.0 +20090101,1.5,-13.0,12.8,-4.4,1.7 +20090102,3.0,-5.0,10.6,-3.9,2.6 +20090103,6.9,5.5,10.6,-3.2,1.3 +20090104,11.0,9.3,16.1,5.0,1.7 +20090105,14.9,12.4,22.2,9.4,3.7 +20090106,16.6,14.7,22.2,12.2,3.1 +20090107,15.1,9.7,19.0,7.0,8.3 +20090108,7.0,-2.4,18.9,3.3,4.4 +20090109,4.6,-8.8,13.9,-1.7,2.2 +20090110,6.2,-2.7,11.7,-1.0,2.5 +20090111,9.0,5.6,11.1,1.7,1.4 +20090112,4.2,-4.4,10.6,0.0,2.3 +20090113,3.3,-3.4,11.0,-1.0,1.3 +20090114,3.0,-7.9,10.6,-4.4,2.8 +20090115,4.2,-9.7,10.0,-3.8,4.1 +20090116,-5.1,-20.3,-1.0,-10.0,1.5 +20090117,-3.9,-18.4,3.3,-9.4,2.3 +20090118,2.9,-5.7,9.0,1.0,3.1 +20090119,3.9,-1.8,8.9,-0.6,2.8 +20090120,0.5,-9.3,7.2,-3.3,4.5 +20090121,-2.6,-14.6,5.0,-7.0,2.9 +20090122,1.9,-10.9,12.2,-6.7,2.4 +20090123,8.2,-1.4,18.3,-4.9,4.1 +20090124,13.3,5.0,17.0,10.0,2.1 +20090125,6.8,-5.2,10.0,3.0,3.3 +20090126,6.1,-1.6,9.0,4.0,1.0 +20090127,6.8,4.0,8.9,3.9,1.6 +20090128,8.4,6.9,16.1,5.6,3.1 +20090129,5.7,0.6,12.2,-2.0,0.8 +20090130,4.0,-6.1,12.8,-1.7,2.1 +20090131,2.1,-9.1,11.0,-3.0,2.1 +20090201,6.8,-4.6,16.0,0.0,4.3 +20090202,8.2,0.1,16.1,0.0,3.3 +20090203,3.7,-6.8,16.1,-1.7,4.3 +20090204,-3.2,-15.6,5.0,-9.0,5.1 +20090205,-2.7,-16.7,6.1,-8.9,4.0 +20090206,3.3,-11.6,15.6,-7.2,2.5 +20090207,10.8,-1.7,21.1,-3.8,4.2 +20090208,14.4,2.4,23.3,2.2,4.0 +20090209,14.7,6.7,23.3,7.2,2.1 +20090210,14.9,7.3,22.2,7.8,3.7 +20090211,15.4,8.8,21.1,10.0,5.3 +20090212,14.0,1.2,21.1,7.2,5.1 +20090213,11.2,-4.7,21.0,3.0,0.9 +20090214,12.4,1.6,21.1,2.8,2.8 +20090215,9.3,1.2,14.4,5.0,2.1 +20090216,7.0,-2.3,11.1,2.0,2.9 +20090217,3.6,-9.1,12.2,-3.3,2.5 +20090218,6.6,2.2,11.1,-2.1,2.3 +20090219,9.8,1.1,13.0,5.6,4.2 +20090220,1.7,-13.4,12.8,-4.4,2.5 +20090221,3.3,-11.8,12.2,-4.4,1.7 +20090222,6.7,-8.2,12.2,-3.8,3.8 +20090223,1.7,-11.7,9.4,-3.3,3.4 +20090224,1.9,-11.0,9.4,-5.0,2.1 +20090225,6.3,-6.7,14.0,2.8,1.6 +20090226,11.4,3.6,17.8,2.8,1.7 +20090227,13.0,8.9,17.8,7.8,4.1 +20090228,11.7,10.6,13.0,9.0,3.0 +20090301,3.8,2.2,9.4,1.0,6.6 +20090302,-0.3,-8.2,4.4,-3.3,3.1 +20090303,-1.9,-12.6,3.9,-7.2,2.3 +20090304,1.8,-8.8,10.0,-6.7,2.1 +20090305,6.6,-6.4,16.1,-2.7,3.0 +20090306,11.9,3.2,20.0,-1.0,4.5 +20090307,17.3,9.3,26.1,6.1,4.1 +20090308,17.7,9.3,26.1,10.6,5.9 +20090309,21.1,10.1,29.4,12.2,4.3 +20090310,19.1,3.4,23.9,14.0,2.8 +20090311,19.4,10.1,28.9,11.1,2.9 +20090312,13.8,0.3,28.9,10.6,4.4 +20090313,7.9,-3.1,15.0,5.0,5.1 +20090314,4.7,2.2,6.1,3.0,3.5 +20090315,7.1,5.1,11.0,5.6,1.7 +20090316,9.9,8.3,12.0,8.0,1.2 +20090317,13.9,7.9,21.1,8.3,2.2 +20090318,12.8,5.8,21.1,5.6,1.7 +20090319,14.4,4.8,24.4,5.6,2.1 +20090320,11.7,-1.9,24.4,5.6,3.6 +20090321,9.2,-4.7,17.2,4.4,2.8 +20090322,10.3,0.0,20.0,1.7,1.5 +20090323,14.4,1.5,22.2,1.7,2.6 +20090324,14.4,4.2,22.2,7.8,2.6 +20090325,10.1,6.4,17.0,6.0,4.0 +20090326,7.9,6.4,13.9,5.6,2.7 +20090327,13.4,12.2,16.7,5.6,2.0 +20090328,15.9,14.1,16.7,12.2,2.5 +20090329,13.5,7.6,17.0,8.9,6.8 +20090330,10.3,-1.1,20.0,2.2,2.9 +20090331,12.7,2.9,20.0,2.2,1.7 +20090401,14.3,9.2,21.0,11.0,2.0 +20090402,16.9,14.4,20.6,10.6,2.4 +20090403,16.8,9.9,22.0,11.7,5.9 +20090404,14.4,1.6,24.4,5.6,2.1 +20090405,17.1,5.3,26.1,5.6,2.8 +20090406,15.6,6.7,26.1,7.8,6.2 +20090407,6.3,-4.4,17.2,2.8,3.8 +20090408,7.9,-4.1,18.0,1.0,4.7 +20090409,14.7,-0.1,23.9,1.1,3.5 +20090410,16.1,9.6,21.1,14.0,3.8 +20090411,15.2,10.1,21.0,9.0,3.4 +20090412,13.2,2.5,21.1,6.7,2.5 +20090413,12.7,6.2,20.0,6.7,2.7 +20090414,13.1,10.2,21.7,9.4,2.9 +20090415,14.8,5.5,21.7,7.8,2.2 +20090416,13.8,3.3,21.1,7.8,4.6 +20090417,13.9,0.4,22.2,6.1,1.4 +20090418,16.6,3.1,25.0,6.1,2.8 +20090419,17.0,6.4,25.0,7.2,2.7 +20090420,17.6,12.3,22.2,13.3,5.1 +20090421,14.6,4.6,21.0,6.0,3.6 +20090422,13.7,-2.2,21.7,4.4,3.8 +20090423,17.8,2.8,28.3,4.4,2.4 +20090424,21.9,9.9,31.7,7.8,2.2 +20090425,23.7,11.8,31.7,12.8,2.4 +20090426,22.5,11.8,31.1,14.4,2.9 +20090427,21.0,11.9,28.9,13.3,2.4 +20090428,19.6,11.8,27.8,13.3,2.6 +20090429,20.5,11.9,27.8,13.3,2.5 +20090430,19.9,12.9,27.8,13.9,2.4 +20090501,21.6,13.9,27.2,17.0,4.1 +20090502,21.6,14.6,27.8,16.1,4.2 +20090503,21.1,17.1,27.8,16.1,4.5 +20090504,20.0,15.3,26.7,17.2,5.2 +20090505,20.1,16.8,27.2,16.1,2.6 +20090506,20.1,18.0,27.2,17.2,2.9 +20090507,21.3,16.9,28.0,17.0,4.5 +20090508,20.1,16.3,27.8,15.0,2.8 +20090509,23.9,18.8,28.3,15.0,5.0 +20090510,22.4,14.1,28.3,17.2,2.2 +20090511,17.9,11.7,24.4,14.0,3.8 +20090512,15.6,8.9,23.9,7.8,1.1 +20090513,17.6,10.0,24.4,7.8,1.4 +20090514,21.1,15.3,27.2,11.7,1.6 +20090515,22.3,17.3,28.3,16.7,1.9 +20090516,21.3,17.9,28.3,17.8,2.6 +20090517,19.4,16.2,23.0,13.0,2.5 +20090518,13.7,5.5,22.8,10.0,4.4 +20090519,14.1,1.4,21.7,7.2,4.7 +20090520,18.1,3.4,25.6,7.2,5.2 +20090521,20.6,10.4,25.6,12.2,3.9 +20090522,21.4,14.2,28.0,16.0,2.4 +20090523,21.1,16.5,27.8,16.1,2.2 +20090524,21.1,18.3,25.6,17.2,2.2 +20090525,22.9,18.8,28.9,18.9,0.9 +20090526,22.7,19.1,28.9,20.0,1.9 +20090527,22.2,18.9,27.2,20.0,2.4 +20090528,23.0,19.1,28.3,19.0,2.2 +20090529,22.8,17.1,29.0,17.0,3.4 +20090530,22.7,12.1,29.4,15.6,2.0 +20090531,24.3,14.1,32.8,15.6,2.6 +20090601,24.7,12.8,31.0,18.0,2.7 +20090602,25.2,16.4,32.2,17.8,1.7 +20090603,25.7,17.6,32.2,17.8,3.2 +20090604,22.3,18.2,31.7,20.0,1.7 +20090605,21.8,18.3,27.8,18.9,2.1 +20090606,22.1,16.9,27.8,18.9,2.5 +20090607,22.7,16.9,28.3,18.9,2.1 +20090608,24.2,17.2,30.0,18.0,1.1 +20090609,25.9,18.2,32.2,18.3,0.9 +20090610,24.6,17.9,32.2,20.0,1.7 +20090611,22.8,18.8,30.0,18.0,2.0 +20090612,24.1,19.1,32.2,18.3,2.3 +20090613,24.9,18.2,32.2,18.9,1.4 +20090614,25.1,18.7,30.6,18.9,1.1 +20090615,24.6,19.3,31.1,20.0,1.4 +20090616,23.5,20.2,31.1,20.0,1.0 +20090617,23.2,20.0,30.0,20.0,2.6 +20090618,24.3,20.5,32.2,18.9,1.8 +20090619,25.8,20.0,33.9,18.9,1.7 +20090620,28.3,20.4,36.0,22.0,2.2 +20090621,27.2,20.3,35.6,21.7,1.7 +20090622,27.8,19.1,33.0,24.0,2.2 +20090623,26.7,17.8,32.8,20.6,2.2 +20090624,26.9,16.9,32.2,20.6,1.5 +20090625,26.8,17.1,33.0,21.0,0.9 +20090626,27.1,19.6,33.9,20.0,1.3 +20090627,26.2,21.3,35.0,20.6,1.3 +20090628,27.6,18.6,35.0,21.1,1.4 +20090629,27.9,16.6,33.3,21.1,1.5 +20090630,25.6,12.2,33.0,17.8,2.8 +20090701,25.6,13.3,33.9,17.2,2.8 +20090702,25.7,13.9,33.9,17.2,1.7 +20090703,24.4,13.2,32.2,17.2,2.1 +20090704,24.6,13.1,30.0,18.0,1.9 +20090705,24.3,17.1,31.7,18.3,1.5 +20090706,25.9,19.8,33.3,20.0,3.3 +20090707,25.4,18.8,33.3,21.7,2.5 +20090708,24.7,17.8,30.6,21.1,2.3 +20090709,23.0,18.8,30.0,20.6,1.5 +20090710,22.7,17.3,28.9,18.9,1.7 +20090711,24.9,17.8,31.1,18.9,2.8 +20090712,27.0,18.2,33.3,19.4,3.3 +20090713,25.8,19.8,33.3,20.6,2.5 +20090714,25.6,16.7,31.0,21.0,2.0 +20090715,26.4,16.7,33.3,18.3,2.0 +20090716,27.6,19.4,34.4,18.3,2.7 +20090717,27.3,20.6,34.4,21.7,3.2 +20090718,23.4,14.7,33.9,17.8,1.4 +20090719,23.4,12.0,29.4,17.8,1.9 +20090720,23.3,13.3,29.4,18.3,2.0 +20090721,22.9,15.4,29.0,18.0,2.7 +20090722,23.7,18.8,29.4,18.3,2.3 +20090723,24.9,19.9,31.1,20.6,1.8 +20090724,26.0,15.8,32.8,20.0,1.4 +20090725,26.6,15.4,34.4,18.9,1.6 +20090726,27.8,15.9,35.6,18.9,2.6 +20090727,24.9,19.3,35.6,20.6,2.7 +20090728,25.5,19.9,33.3,20.0,1.8 +20090729,24.3,20.5,33.3,20.0,4.4 +20090730,26.4,20.5,31.1,22.2,3.3 +20090731,26.2,21.2,31.7,22.2,4.5 +20090801,26.3,20.8,32.8,21.7,2.2 +20090802,25.4,21.1,32.8,21.7,3.0 +20090803,26.1,18.6,33.3,18.9,1.3 +20090804,26.8,16.7,35.6,18.9,1.6 +20090805,24.1,18.8,35.6,18.9,2.2 +20090806,25.4,17.5,35.6,19.4,1.4 +20090807,26.3,16.6,33.0,20.0,1.4 +20090808,26.9,18.4,33.9,19.4,2.1 +20090809,28.7,18.2,36.1,20.6,2.8 +20090810,29.8,17.8,37.8,22.2,2.4 +20090811,29.4,19.3,37.8,22.2,1.7 +20090812,23.2,20.9,26.1,21.0,0.8 +20090813,23.4,19.3,30.0,18.0,1.1 +20090814,25.0,18.8,31.1,18.3,2.0 +20090815,25.2,18.6,31.1,20.0,2.5 +20090816,25.4,18.7,31.7,20.6,1.3 +20090817,24.4,19.1,31.1,19.0,1.1 +20090818,26.3,18.9,33.3,19.4,1.8 +20090819,26.2,19.9,33.3,20.6,2.6 +20090820,26.0,20.9,33.0,21.7,2.6 +20090821,25.3,20.6,32.8,20.6,2.5 +20090822,26.3,19.3,32.8,20.6,2.5 +20090823,24.3,16.6,32.2,18.9,2.7 +20090824,24.2,17.4,30.6,18.9,3.0 +20090825,25.3,17.5,31.7,19.4,2.6 +20090826,25.9,17.3,33.3,18.9,1.5 +20090827,26.2,18.3,33.3,18.9,1.0 +20090828,23.9,19.2,32.8,19.4,1.6 +20090829,23.9,18.6,32.2,18.9,1.3 +20090830,24.9,18.4,32.2,18.9,1.3 +20090831,20.2,17.8,30.6,18.9,3.0 +20090901,20.3,15.6,24.0,17.0,3.9 +20090902,20.2,12.9,26.1,15.0,3.9 +20090903,20.6,12.2,28.0,14.0,3.0 +20090904,22.6,13.6,30.0,14.4,1.3 +20090905,24.1,15.2,32.2,16.7,1.4 +20090906,24.7,14.8,32.2,17.8,2.2 +20090907,23.7,15.2,31.1,18.3,2.6 +20090908,23.1,16.4,31.1,17.2,1.4 +20090909,20.7,16.9,31.1,16.7,2.5 +20090910,18.9,16.9,26.7,16.7,2.7 +20090911,20.6,16.2,27.0,17.8,1.9 +20090912,22.6,17.2,30.0,16.7,1.1 +20090913,23.3,15.2,30.0,16.7,2.3 +20090914,23.4,16.9,29.4,18.3,1.2 +20090915,23.1,18.6,29.4,18.3,1.2 +20090916,22.3,19.3,27.8,19.4,1.1 +20090917,21.4,19.1,24.4,19.0,3.0 +20090918,21.0,19.6,24.4,19.4,2.2 +20090919,22.0,20.7,26.1,20.0,1.3 +20090920,20.7,20.0,22.2,19.0,3.3 +20090921,20.9,19.6,26.0,19.0,2.8 +20090922,21.6,18.5,27.2,18.9,3.1 +20090923,22.2,19.2,28.3,18.9,2.1 +20090924,24.1,20.2,30.0,18.9,0.7 +20090925,24.6,21.1,31.0,21.7,0.7 +20090926,18.0,17.5,31.1,15.6,4.0 +20090927,19.4,15.7,26.1,15.6,2.9 +20090928,19.9,14.4,28.3,12.8,4.4 +20090929,16.6,4.9,28.3,8.3,2.3 +20090930,15.9,7.4,22.8,8.3,1.9 +20091001,15.7,9.0,22.8,9.4,2.0 +20091002,16.4,12.1,23.3,9.4,2.2 +20091003,18.6,11.3,24.4,11.7,2.9 +20091004,16.1,7.2,24.4,10.6,1.1 +20091005,13.9,12.8,22.8,10.6,2.2 +20091006,16.6,14.4,20.0,12.2,1.3 +20091007,21.4,16.2,28.9,14.4,3.7 +20091008,16.7,9.3,28.9,8.9,1.3 +20091009,20.3,16.2,26.7,8.9,2.4 +20091010,22.6,19.4,26.7,17.2,2.7 +20091011,18.1,13.4,26.1,15.0,3.2 +20091012,14.1,13.2,20.6,13.9,2.5 +20091013,15.6,13.2,23.3,11.7,1.3 +20091014,14.3,13.3,23.3,8.9,2.9 +20091015,9.1,8.2,17.8,7.8,2.8 +20091016,13.2,11.6,17.2,7.8,2.3 +20091017,10.1,7.9,14.0,8.0,2.9 +20091018,8.1,1.0,13.3,3.9,2.5 +20091019,7.2,-0.7,16.1,0.0,1.2 +20091020,10.9,3.9,21.1,0.0,0.9 +20091021,12.3,5.5,23.0,3.9,0.8 +20091022,13.9,9.2,23.0,6.0,1.0 +20091023,17.9,15.2,24.4,6.1,2.3 +20091024,20.1,15.8,24.4,13.3,5.9 +20091025,10.9,5.1,16.0,6.0,2.4 +20091026,12.3,5.4,18.3,6.1,3.6 +20091027,12.3,9.4,18.3,10.0,2.7 +20091028,15.1,12.6,22.2,11.7,2.3 +20091029,15.4,11.9,22.2,10.0,1.8 +20091030,14.6,12.2,22.2,10.0,2.1 +20091031,16.1,15.3,21.0,13.0,1.6 +20091101,14.3,11.2,20.6,10.6,3.4 +20091102,12.9,8.6,18.3,8.9,2.3 +20091103,13.4,6.2,22.8,5.6,0.9 +20091104,12.5,2.5,22.8,5.6,2.4 +20091105,12.2,2.5,19.4,6.1,1.5 +20091106,10.2,-1.4,19.4,2.8,1.6 +20091107,9.7,2.9,19.4,1.1,1.6 +20091108,13.8,6.2,24.4,2.2,1.8 +20091109,12.8,7.2,24.4,6.7,0.9 +20091110,14.1,11.0,18.3,7.2,3.8 +20091111,12.6,11.6,14.0,11.0,8.5 +20091112,12.7,6.7,17.2,10.6,6.4 +20091113,14.7,7.7,22.2,8.9,2.7 +20091114,14.8,10.1,23.3,7.2,0.9 +20091115,15.7,9.3,24.4,7.2,1.1 +20091116,13.4,7.0,24.4,5.0,0.9 +20091117,12.6,8.5,21.7,6.1,1.9 +20091118,12.8,10.3,18.3,7.2,4.5 +20091119,13.3,11.6,18.9,10.6,2.2 +20091120,12.1,4.9,18.9,5.0,1.5 +20091121,10.7,4.1,18.3,5.0,1.7 +20091122,8.0,4.8,15.6,5.6,2.6 +20091123,8.9,7.8,11.1,5.6,4.3 +20091124,10.9,8.7,12.0,10.0,0.5 +20091125,11.0,8.5,16.7,8.9,2.0 +20091126,8.4,3.7,16.7,0.6,1.6 +20091127,6.5,-2.8,15.6,-0.6,2.6 +20091128,8.8,-5.1,17.2,0.0,2.6 +20091129,11.1,3.1,20.0,3.3,2.9 +20091130,12.6,6.4,20.0,6.1,4.2 +20091201,6.2,-1.2,14.4,-1.7,1.4 +20091202,6.9,3.9,12.2,-1.0,3.9 +20091203,10.8,6.6,15.0,4.4,4.1 +20091204,5.6,1.3,15.0,0.6,1.6 +20091205,6.8,1.6,8.9,0.6,3.4 +20091206,1.0,-4.0,8.9,-4.4,1.3 +20091207,3.6,-0.8,11.7,-4.4,1.1 +20091208,5.1,3.2,11.7,-1.0,2.3 +20091209,7.4,3.4,18.3,2.8,5.2 +20091210,8.2,-6.9,18.3,2.2,4.1 +20091211,0.6,-15.6,11.1,-2.8,3.2 +20091212,0.4,-10.6,4.4,-2.8,1.2 +20091213,3.1,1.5,8.3,-2.7,2.9 +20091214,7.5,6.9,13.9,0.6,1.1 +20091215,13.2,12.2,16.1,4.4,2.5 +20091216,7.4,-4.6,16.1,2.2,3.7 +20091217,3.2,-5.4,9.0,-2.0,1.0 +20091218,2.4,-2.4,8.9,-2.7,4.8 +20091219,3.0,0.8,9.4,0.0,3.4 +20091220,3.2,-2.0,9.4,-2.2,2.0 +20091221,1.8,-3.5,11.1,-5.0,0.9 +20091222,3.2,-2.2,11.1,-3.8,1.2 +20091223,3.7,-0.9,10.6,-2.7,0.3 +20091224,5.6,-0.2,11.1,-1.6,3.0 +20091225,4.3,2.4,7.8,1.0,5.7 +20091226,3.2,1.3,8.0,-2.0,1.1 +20091227,4.1,-3.9,12.0,-2.2,3.5 +20091228,4.7,-4.7,11.7,-2.1,3.8 +20091229,2.1,-7.8,8.3,-3.0,3.0 +20091230,1.1,-8.1,5.0,-3.0,1.0 +20091231,2.3,0.6,5.6,-2.7,0.4 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/wtmpReader/data/72315003812.wtmp b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/wtmpReader/data/72315003812.wtmp new file mode 100644 index 00000000..11ceddfe --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/wtmpReader/data/72315003812.wtmp @@ -0,0 +1,10230 @@ +This file is prepared for OpenMI Evaporation component with a Python code. (mehmetbercan@gmail.com)(CEE/USC, SC USA) +Elv:,661.4,Lat:,35.432,Lon:,-82.538,StationName:,ASHEVILLEMUNICIPAL,State:,NC,StationID:,72315003812 +yearMoDa,Temp,Tdew,Tmax,Tmin,WndSpd +19820101,3.7,2.3,9.4,0.5,3.9 +19820102,1.9,-1.1,6.7,-2.8,2.9 +19820103,3.4,1.8,6.7,0.6,3.5 +19820104,8.3,2.5,13.3,4.4,5.1 +19820105,1.9,-6.7,10.0,-2.8,5.6 +19820106,6.7,-4.1,15.0,1.7,4.3 +19820107,10.9,5.4,18.9,6.1,3.9 +19820108,0.6,-5.3,9.4,-3.3,8.5 +19820109,-3.1,-8.5,6.1,-8.9,5.0 +19820110,-11.5,-19.4,-3.9,-17.2,9.0 +19820111,-16.7,-22.6,-9.4,-21.1,8.2 +19820112,-9.5,-12.1,-1.7,-13.3,5.5 +19820113,-3.4,-4.8,1.1,-4.4,3.9 +19820114,-1.3,-3.1,2.2,-6.7,5.4 +19820115,-5.4,-7.0,5.0,-10.6,4.3 +19820116,-1.8,-3.3,6.1,-6.7,3.7 +19820117,-11.7,-17.3,-2.2,-21.1,7.5 +19820118,-6.7,-11.4,2.8,-13.9,2.2 +19820119,4.6,2.9,11.1,1.7,2.8 +19820120,3.3,3.3,7.8,0.0,2.0 +19820121,7.2,5.8,15.6,3.3,3.4 +19820122,3.8,3.4,11.1,0.6,4.2 +19820123,2.2,1.1,8.9,-1.1,4.0 +19820124,1.1,-10.3,7.8,-3.3,6.9 +19820125,-0.7,-8.6,9.4,-5.0,3.5 +19820126,-4.4,-10.3,5.6,-10.0,9.5 +19820127,-7.7,-12.1,1.1,-13.3,3.5 +19820128,-1.6,-7.4,5.0,-7.2,3.2 +19820129,1.2,-2.9,10.0,-3.9,2.9 +19820130,2.9,-2.1,11.7,-1.7,3.2 +19820131,9.3,7.3,12.8,6.1,5.9 +19820201,3.3,-0.9,10.0,-2.2,6.0 +19820202,1.7,-1.2,5.6,0.0,2.9 +19820203,4.2,4.1,9.4,2.8,3.0 +19820204,7.4,4.4,13.3,2.8,4.1 +19820205,5.9,4.2,9.4,2.8,3.1 +19820206,5.1,3.4,8.9,-0.6,6.1 +19820207,-2.9,-8.4,6.7,-10.0,4.6 +19820208,-0.3,-5.9,10.6,-7.2,2.1 +19820209,7.4,3.5,12.8,5.6,3.4 +19820210,-0.2,-4.0,6.1,-3.9,7.5 +19820211,3.6,-2.2,11.7,0.0,2.4 +19820212,0.7,-1.6,5.6,-4.4,2.2 +19820213,1.7,0.3,3.3,0.6,5.8 +19820214,0.2,-3.8,12.8,-8.3,3.3 +19820215,7.8,4.1,12.2,5.0,4.1 +19820216,9.8,9.6,12.2,8.9,1.4 +19820217,11.9,11.4,15.6,10.0,2.8 +19820218,5.0,5.0,13.3,2.2,3.8 +19820219,4.1,2.2,10.0,1.1,5.5 +19820220,7.1,1.0,18.9,0.6,3.5 +19820221,10.9,-0.4,14.4,7.8,6.7 +19820222,4.6,-2.8,9.4,1.7,10.2 +19820223,7.4,-0.4,23.9,-2.2,3.7 +19820224,14.6,4.6,24.4,5.6,3.3 +19820225,6.9,2.8,18.3,1.7,7.5 +19820226,-0.2,-5.4,2.8,-2.8,3.1 +19820227,-0.7,-0.7,2.2,-3.3,1.7 +19820228,2.7,1.9,5.6,1.1,2.7 +19820301,3.8,2.0,10.6,0.6,2.8 +19820302,5.9,0.6,18.3,-2.8,2.5 +19820303,8.8,1.7,19.4,2.2,2.0 +19820304,7.6,5.4,13.3,3.9,4.7 +19820305,10.9,7.8,23.3,4.4,3.3 +19820306,7.7,7.1,12.2,5.0,3.8 +19820307,4.5,4.2,7.8,0.0,5.9 +19820308,0.3,-6.1,9.4,-3.3,7.2 +19820309,5.7,-2.9,16.1,-2.8,2.7 +19820310,7.3,0.6,17.2,0.6,2.9 +19820311,8.4,4.5,16.7,-0.6,3.0 +19820312,13.1,8.4,23.3,3.9,2.7 +19820313,15.1,12.3,23.9,11.1,2.8 +19820314,10.3,5.4,15.0,5.6,4.7 +19820315,8.8,6.9,12.8,6.7,4.0 +19820316,6.3,6.2,12.8,3.9,4.4 +19820317,12.9,11.3,24.4,6.7,2.7 +19820318,14.5,11.4,26.1,6.7,2.3 +19820319,15.1,12.8,23.9,8.3,2.3 +19820320,18.3,15.2,25.0,10.6,2.1 +19820321,13.9,13.3,20.0,11.1,3.6 +19820322,12.2,2.6,19.4,6.1,6.8 +19820323,9.4,0.6,16.1,2.8,4.3 +19820324,9.3,4.7,15.0,3.3,2.8 +19820325,13.3,9.6,22.2,8.9,2.5 +19820326,6.5,-0.2,16.7,1.1,8.3 +19820327,1.5,-7.9,6.1,-2.8,7.4 +19820328,1.3,-10.4,10.0,-5.0,3.9 +19820329,2.3,-6.1,12.2,-7.2,2.2 +19820330,11.2,5.3,18.3,5.0,3.3 +19820331,15.4,12.8,21.1,12.2,4.8 +19820401,15.3,6.1,22.8,9.4,4.2 +19820402,9.6,2.7,17.2,1.7,2.5 +19820403,17.1,9.1,23.3,12.2,6.1 +19820404,13.7,-8.8,19.4,8.3,8.0 +19820405,7.9,3.4,14.4,3.3,3.1 +19820406,5.4,-0.4,12.2,0.6,9.6 +19820407,2.2,-10.1,13.9,-3.9,7.3 +19820408,3.2,-1.3,7.8,1.1,3.3 +19820409,5.7,1.0,11.7,1.7,5.1 +19820410,5.4,-2.7,14.4,-0.6,4.9 +19820411,7.8,-2.1,16.7,-0.6,4.7 +19820412,9.8,0.4,22.2,0.0,2.5 +19820413,16.7,5.6,23.3,11.1,5.5 +19820414,14.7,12.1,23.3,9.4,2.8 +19820415,14.7,14.5,16.7,12.8,1.9 +19820416,15.8,14.6,21.7,13.9,3.0 +19820417,17.7,16.2,21.1,15.6,2.9 +19820418,13.3,3.6,20.6,6.7,6.2 +19820419,11.7,5.2,17.8,7.2,2.4 +19820420,13.3,9.1,23.3,10.0,2.2 +19820421,15.4,8.6,20.0,11.1,4.6 +19820422,11.5,1.1,15.0,8.9,6.6 +19820423,10.2,-5.3,18.9,3.3,4.3 +19820424,10.1,-2.7,21.7,-1.7,2.6 +19820425,10.2,4.9,15.6,5.0,1.9 +19820426,15.5,13.6,23.9,11.1,2.2 +19820427,14.8,13.4,20.6,11.7,2.6 +19820428,14.3,9.0,21.1,9.4,5.6 +19820429,12.9,6.1,18.3,8.3,3.7 +19820430,12.3,3.4,20.0,3.9,2.4 +19820501,12.2,3.6,23.3,1.7,2.1 +19820502,14.4,7.8,23.9,5.6,2.0 +19820503,16.7,9.8,23.9,8.9,2.7 +19820504,16.9,8.0,25.0,7.8,2.3 +19820505,16.3,8.6,26.1,6.7,1.9 +19820506,18.0,12.7,25.6,9.4,2.3 +19820507,18.1,12.1,23.9,10.0,3.1 +19820508,17.7,13.1,22.8,13.9,4.5 +19820509,16.4,8.8,23.3,9.4,6.0 +19820510,17.2,8.1,27.2,7.2,3.4 +19820511,18.9,8.7,28.3,8.3,2.8 +19820512,18.9,10.9,29.4,8.3,2.4 +19820513,20.8,13.3,30.6,11.1,2.7 +19820514,21.1,13.5,30.0,11.7,2.3 +19820515,21.7,14.7,27.2,15.0,2.6 +19820516,19.7,15.6,29.4,13.9,2.2 +19820517,18.6,15.3,28.3,12.2,2.4 +19820518,19.4,16.2,26.1,13.3,2.3 +19820519,18.9,16.6,26.7,15.6,1.4 +19820520,17.7,16.6,22.8,15.0,1.7 +19820521,20.8,17.2,28.9,15.6,2.1 +19820522,20.1,17.7,27.2,14.4,1.9 +19820523,20.0,18.1,26.1,16.7,2.3 +19820524,19.1,17.8,23.3,16.7,1.7 +19820525,21.2,18.2,27.8,17.2,2.1 +19820526,21.4,19.5,25.6,18.3,2.2 +19820527,20.8,19.2,26.7,16.7,2.4 +19820528,20.5,19.1,27.2,16.1,2.6 +19820529,20.9,19.1,29.4,16.1,2.2 +19820530,23.8,20.0,31.7,17.2,2.1 +19820531,21.2,18.6,29.4,15.6,2.1 +19820601,21.4,18.8,27.8,17.2,2.6 +19820602,20.3,17.3,26.1,15.0,3.8 +19820603,21.6,18.1,28.3,15.0,2.1 +19820604,20.6,19.9,23.9,18.9,2.4 +19820605,21.6,18.3,26.7,18.3,4.1 +19820606,18.9,14.1,25.0,12.8,5.4 +19820607,20.4,14.4,27.8,14.4,5.1 +19820608,22.1,16.9,30.6,15.0,2.8 +19820609,23.4,18.5,31.1,16.1,2.1 +19820610,20.9,19.4,28.3,16.7,2.1 +19820611,22.0,17.9,28.3,17.2,3.1 +19820612,20.8,19.3,26.1,18.3,2.6 +19820613,20.5,18.5,25.6,17.8,3.2 +19820614,20.8,16.2,26.7,15.0,3.0 +19820615,21.4,17.7,27.8,15.0,2.5 +19820616,23.0,18.8,28.3,17.2,3.4 +19820617,21.4,18.7,25.0,18.3,2.0 +19820618,21.1,18.9,25.0,18.3,2.1 +19820619,21.9,16.8,28.3,15.6,1.9 +19820620,21.9,16.1,28.3,17.8,3.7 +19820621,20.1,14.0,27.8,14.4,4.3 +19820622,21.3,15.9,25.6,17.8,2.5 +19820623,20.3,15.7,27.8,13.9,2.0 +19820624,20.8,15.8,25.6,16.1,2.0 +19820625,20.9,17.8,23.9,18.3,2.5 +19820626,21.5,17.9,27.8,16.7,2.0 +19820627,21.2,18.3,24.4,18.3,1.6 +19820628,21.7,18.9,27.8,18.9,1.4 +19820629,22.0,19.0,27.8,19.4,2.5 +19820630,23.1,18.1,29.4,16.7,4.2 +19820701,22.7,14.9,28.3,18.3,3.8 +19820702,20.8,15.4,27.2,15.0,2.3 +19820703,23.4,17.6,32.2,18.3,3.0 +19820704,24.0,17.8,30.0,19.4,3.7 +19820705,23.8,18.7,28.9,18.3,3.4 +19820706,22.1,18.3,25.6,18.9,2.6 +19820707,20.7,17.6,27.8,15.0,1.5 +19820708,22.8,18.4,28.3,18.3,2.6 +19820709,22.7,19.0,26.7,18.9,2.7 +19820710,22.4,19.8,27.2,18.3,2.1 +19820711,22.1,20.4,27.2,20.0,1.5 +19820712,22.8,20.2,28.9,18.3,2.4 +19820713,22.3,19.8,28.9,19.4,2.2 +19820714,21.9,19.4,25.6,19.4,1.6 +19820715,22.6,19.7,28.9,18.9,1.7 +19820716,22.4,19.8,29.4,18.9,2.2 +19820717,22.4,20.2,27.8,19.4,2.1 +19820718,22.2,20.6,27.2,19.4,1.6 +19820719,23.1,19.9,29.4,18.9,3.3 +19820720,24.3,20.4,29.4,20.0,3.0 +19820721,23.7,19.9,29.4,18.3,2.0 +19820722,23.2,21.3,30.0,20.0,3.0 +19820723,21.2,19.6,25.6,20.0,1.7 +19820724,22.0,19.9,27.8,18.9,1.9 +19820725,23.1,20.6,28.3,20.0,1.0 +19820726,24.1,21.3,31.1,19.4,2.1 +19820727,23.7,21.1,28.9,18.3,1.4 +19820728,23.8,21.7,28.9,21.1,2.0 +19820729,22.1,20.8,26.1,19.4,1.7 +19820730,22.8,21.3,26.7,20.0,3.5 +19820731,21.7,21.3,24.4,20.0,1.9 +19820801,21.8,18.3,28.3,18.3,2.9 +19820802,21.3,16.9,27.8,16.1,3.1 +19820803,21.8,17.5,28.9,16.7,4.1 +19820804,23.4,19.3,30.0,17.2,2.8 +19820805,23.2,20.7,27.2,20.0,2.3 +19820806,21.8,19.2,28.3,16.7,2.3 +19820807,21.7,19.8,26.7,17.2,0.9 +19820808,22.8,20.8,28.3,20.0,3.1 +19820809,22.9,20.4,26.7,20.0,2.0 +19820810,21.8,19.9,27.8,18.9,1.8 +19820811,22.0,20.7,26.7,20.0,2.4 +19820812,22.1,19.4,27.8,18.3,3.2 +19820813,21.4,19.6,23.3,19.4,2.9 +19820814,20.9,18.6,26.7,17.8,2.3 +19820815,21.1,18.3,27.8,17.2,1.4 +19820816,21.4,18.8,26.1,16.7,2.2 +19820817,20.8,18.9,23.9,17.8,2.6 +19820818,20.8,18.6,26.1,16.1,2.3 +19820819,20.2,17.7,27.8,15.6,2.0 +19820820,21.9,18.2,29.4,16.1,2.6 +19820821,21.8,17.6,28.3,17.2,3.4 +19820822,18.9,14.7,24.4,12.2,2.8 +19820823,19.5,16.2,28.3,13.9,1.4 +19820824,22.0,19.9,28.3,17.8,2.5 +19820825,23.3,20.4,28.9,20.0,3.1 +19820826,19.7,16.5,25.6,14.4,2.5 +19820827,20.0,17.4,28.9,14.4,2.4 +19820828,22.5,19.8,27.8,19.4,3.5 +19820829,19.0,15.9,23.3,15.6,2.4 +19820830,19.4,15.7,27.8,15.6,2.8 +19820831,20.5,19.2,22.2,18.9,3.3 +19820901,21.1,20.8,23.3,19.4,2.3 +19820902,21.4,20.5,27.8,18.9,2.0 +19820903,21.3,19.1,27.8,16.7,3.3 +19820904,19.0,14.1,24.4,14.4,3.3 +19820905,16.4,13.2,23.9,10.0,0.8 +19820906,17.8,14.2,26.1,11.7,2.1 +19820907,18.4,14.2,27.2,11.7,1.3 +19820908,18.2,15.1,25.6,12.2,1.0 +19820909,16.9,14.4,22.8,12.2,1.1 +19820910,17.3,15.7,23.3,14.4,1.3 +19820911,17.9,17.4,19.4,16.7,1.3 +19820912,18.3,17.4,22.2,15.6,1.6 +19820913,20.3,19.4,23.3,18.3,1.6 +19820914,21.8,20.1,27.2,18.9,2.2 +19820915,21.4,19.0,27.8,15.0,2.5 +19820916,22.1,18.9,27.8,17.8,4.0 +19820917,19.1,15.2,28.3,11.1,1.5 +19820918,18.6,16.9,26.1,13.9,0.9 +19820919,17.8,17.8,19.4,15.0,0.7 +19820920,17.2,15.4,19.4,15.6,3.0 +19820921,15.4,12.3,20.6,11.1,2.6 +19820922,12.4,7.0,16.1,8.9,6.4 +19820923,10.7,5.4,20.6,3.3,2.5 +19820924,11.5,7.4,21.7,5.0,0.5 +19820925,13.4,10.9,19.4,8.9,0.7 +19820926,13.7,12.4,15.0,12.2,1.0 +19820927,13.8,11.0,21.7,8.3,1.7 +19820928,14.1,10.5,23.3,7.2,1.3 +19820929,14.6,11.8,25.0,7.8,1.0 +19820930,16.2,13.8,23.3,10.6,0.8 +19821001,16.4,13.6,24.4,10.6,2.5 +19821002,16.2,12.6,26.1,9.4,1.2 +19821003,16.1,13.6,25.0,8.9,0.9 +19821004,18.2,16.3,23.9,14.4,0.7 +19821005,19.2,16.7,26.1,15.0,0.6 +19821006,18.6,16.1,25.6,12.2,1.1 +19821007,16.4,16.0,21.1,12.2,0.7 +19821008,18.0,17.5,22.8,16.1,0.4 +19821009,19.6,18.7,22.8,17.8,0.2 +19821010,18.3,18.0,22.8,15.0,1.3 +19821011,14.1,14.1,16.1,12.8,2.5 +19821012,14.6,13.5,17.8,13.3,1.0 +19821013,15.5,15.2,20.0,13.9,1.9 +19821014,13.7,10.1,18.3,9.4,5.8 +19821015,12.0,4.8,21.1,7.2,4.9 +19821016,13.0,2.1,16.1,7.8,6.5 +19821017,8.3,0.1,17.2,0.6,2.4 +19821018,7.5,2.4,15.0,2.2,1.4 +19821019,6.7,3.8,16.1,-1.1,1.2 +19821020,14.3,11.8,21.1,10.6,2.1 +19821021,13.3,10.9,16.1,10.0,4.3 +19821022,9.3,5.2,14.4,4.4,3.6 +19821023,7.4,3.6,13.9,2.2,0.8 +19821024,5.1,-1.3,9.4,1.1,1.0 +19821025,5.4,2.4,7.8,3.9,5.8 +19821026,8.9,-1.5,18.3,1.7,5.1 +19821027,6.9,-0.4,18.9,-1.7,0.9 +19821028,7.6,1.2,19.4,-1.1,0.8 +19821029,8.3,2.7,20.0,-0.6,0.8 +19821030,9.1,3.5,22.2,0.0,0.7 +19821031,11.5,7.3,23.3,3.3,0.8 +19821101,14.4,10.5,25.0,7.8,1.0 +19821102,15.2,12.2,24.4,7.8,1.1 +19821103,15.9,15.6,17.8,14.4,1.7 +19821104,9.6,8.9,15.0,2.2,6.4 +19821105,1.9,-5.2,7.2,-1.7,7.6 +19821106,2.4,-7.3,11.1,-2.8,5.1 +19821107,2.9,-6.8,15.6,-5.6,1.3 +19821108,5.3,-3.6,18.9,-4.4,1.4 +19821109,7.6,0.7,20.6,-0.6,1.7 +19821110,8.7,2.8,20.0,0.0,0.9 +19821111,8.6,4.7,15.6,2.2,1.9 +19821112,14.3,12.8,16.1,12.2,4.9 +19821113,5.7,-1.4,14.4,1.1,7.5 +19821114,0.5,-5.1,6.7,-3.9,2.1 +19821115,4.6,-4.2,10.0,1.1,5.8 +19821116,0.7,-6.6,10.0,-6.7,2.1 +19821117,5.9,0.3,8.9,3.3,1.2 +19821118,8.1,7.9,9.4,6.7,0.2 +19821119,8.4,8.4,8.9,7.8,0.4 +19821120,9.4,9.4,11.1,7.8,1.4 +19821121,11.1,11.1,12.8,10.6,0.4 +19821122,13.4,12.3,18.9,11.1,0.0 +19821123,13.0,12.4,18.3,11.1,0.6 +19821124,11.1,8.5,16.1,3.9,5.9 +19821125,2.4,-4.7,10.0,-3.3,3.5 +19821126,7.4,1.2,17.8,1.1,2.0 +19821127,10.8,10.1,13.3,9.4,2.5 +19821128,6.3,6.3,9.4,4.4,4.2 +19821129,9.1,7.1,17.2,4.4,4.1 +19821130,5.6,4.0,11.1,0.0,1.5 +19821201,12.4,11.7,17.2,9.4,2.1 +19821202,13.4,12.8,18.9,9.4,1.6 +19821203,16.4,15.6,17.8,15.0,3.5 +19821204,16.9,14.9,20.0,15.0,3.7 +19821205,16.1,15.4,16.7,15.0,5.1 +19821206,9.5,6.5,14.4,5.6,3.8 +19821207,7.2,1.1,13.3,1.7,4.3 +19821208,4.2,-3.1,11.7,-2.2,1.0 +19821209,4.5,-1.2,9.4,0.0,4.2 +19821210,1.9,-2.7,8.3,-2.2,2.1 +19821211,5.3,4.1,7.8,3.9,2.3 +19821212,1.1,-1.9,6.7,-3.3,7.0 +19821213,-3.2,-11.8,5.6,-8.9,4.4 +19821214,0.7,-12.3,10.6,-5.6,3.1 +19821215,4.4,-0.3,11.1,1.1,3.3 +19821216,7.5,3.8,13.3,0.0,6.8 +19821217,0.7,-5.0,2.2,-1.1,9.1 +19821218,-0.5,-6.8,7.2,-6.1,2.7 +19821219,2.3,-2.9,9.4,-1.1,2.5 +19821220,3.3,-3.8,8.3,0.0,5.9 +19821221,2.3,-4.5,7.2,-1.1,5.1 +19821222,0.4,-5.6,9.4,-5.6,1.9 +19821223,6.6,-3.7,16.1,1.1,2.9 +19821224,6.7,1.9,12.8,1.7,2.4 +19821225,14.0,13.1,16.1,11.7,3.0 +19821226,15.8,13.2,20.6,13.3,2.7 +19821227,13.7,11.6,17.2,10.0,2.5 +19821228,14.8,13.6,16.1,13.9,5.4 +19821229,9.6,6.1,15.0,5.0,5.5 +19821230,1.3,-3.8,4.4,-0.6,4.1 +19821231,2.3,0.1,4.4,1.1,2.1 +19830101,4.4,0.9,8.3,1.7,2.2 +19830102,5.6,4.3,7.2,4.4,1.5 +19830103,3.9,0.5,6.1,1.7,5.7 +19830104,0.1,-6.0,6.7,-6.1,2.4 +19830105,0.7,-7.2,9.4,-5.0,2.6 +19830106,3.6,-5.3,11.7,-1.1,3.0 +19830107,4.3,-1.9,13.9,-2.8,3.5 +19830108,4.7,-1.4,11.7,-0.6,3.1 +19830109,5.3,-3.8,7.8,3.3,2.4 +19830110,5.2,3.8,8.3,3.3,2.1 +19830111,5.2,-1.7,10.6,0.0,2.6 +19830112,-0.8,-6.4,4.4,-2.8,8.5 +19830113,-1.7,-9.7,5.0,-5.0,4.1 +19830114,0.3,-6.2,12.2,-7.2,3.0 +19830115,2.7,-4.8,7.2,-1.1,7.1 +19830116,-2.1,-11.7,3.3,-6.7,8.0 +19830117,-0.8,-11.2,6.7,-5.0,3.7 +19830118,-3.6,-14.6,-0.6,-7.8,8.8 +19830119,-4.4,-19.6,5.0,-10.0,5.9 +19830120,-3.4,-17.7,-0.6,-6.1,2.3 +19830121,-3.1,-4.7,1.7,-6.7,1.8 +19830122,1.9,0.8,2.8,1.1,2.7 +19830123,2.7,1.3,6.1,1.1,2.6 +19830124,2.6,-1.9,6.7,0.6,5.6 +19830125,0.3,-2.7,3.3,-2.8,3.6 +19830126,1.5,-2.4,7.8,-0.6,3.7 +19830127,3.3,-0.6,7.2,0.6,1.6 +19830128,4.4,-1.4,12.8,-1.7,2.1 +19830129,2.2,-0.9,8.3,-3.3,2.1 +19830130,7.7,3.6,16.1,4.4,3.0 +19830131,6.5,-0.1,16.1,-0.6,2.9 +19830201,5.5,1.6,11.1,0.0,2.6 +19830202,12.7,8.6,15.6,9.4,6.9 +19830203,4.2,-2.1,10.0,1.1,4.1 +19830204,-0.2,-7.6,2.8,-2.2,6.3 +19830205,-2.1,-9.1,3.9,-5.6,4.6 +19830206,-0.2,-3.6,2.2,-1.7,2.7 +19830207,1.7,-1.8,2.2,0.0,5.7 +19830208,-1.3,-9.4,5.6,-6.1,6.3 +19830209,0.1,-7.7,6.7,-4.4,2.3 +19830210,2.2,-2.1,3.9,1.1,1.9 +19830211,1.4,-0.5,2.8,0.6,1.9 +19830212,2.2,-1.4,5.6,0.6,5.6 +19830213,1.7,-2.2,4.4,0.6,1.7 +19830214,4.0,-4.9,10.6,0.0,5.6 +19830215,5.7,-3.2,14.4,-2.2,2.9 +19830216,4.7,-0.4,12.2,-2.2,2.0 +19830217,8.1,0.6,13.9,2.8,4.0 +19830218,5.8,-3.2,13.3,-0.6,4.5 +19830219,5.6,-3.5,15.6,-3.3,1.5 +19830220,5.7,-1.9,15.6,-2.2,1.7 +19830221,5.9,-2.2,17.2,-2.8,1.5 +19830222,6.7,0.8,13.3,1.7,1.6 +19830223,8.8,6.2,13.3,6.1,3.3 +19830224,6.7,4.1,10.6,2.8,1.7 +19830225,2.9,-1.6,6.7,0.0,5.6 +19830226,-0.5,-10.1,6.1,-5.0,7.0 +19830227,-0.1,-9.4,7.2,-6.1,3.1 +19830228,3.1,-5.6,5.6,1.1,1.1 +19830301,8.2,4.3,15.0,5.0,5.6 +19830302,8.8,-3.1,18.3,-1.1,3.5 +19830303,8.8,-0.9,21.1,-0.6,2.1 +19830304,11.2,1.7,22.8,2.2,2.5 +19830305,13.7,9.1,18.3,10.0,3.8 +19830306,16.5,12.0,22.2,13.3,6.1 +19830307,11.3,8.2,16.7,6.1,1.9 +19830308,14.0,10.9,19.4,9.4,3.1 +19830309,9.9,5.2,16.1,6.7,5.8 +19830310,3.2,-0.1,6.1,0.6,6.6 +19830311,0.7,-3.2,3.3,-0.6,8.7 +19830312,3.1,-2.5,8.3,1.1,9.4 +19830313,6.2,-4.1,18.9,-1.1,5.1 +19830314,8.6,-1.5,20.0,1.1,2.6 +19830315,11.8,1.8,22.8,2.2,1.9 +19830316,11.8,2.5,17.8,6.7,1.9 +19830317,7.1,3.8,12.2,5.6,3.1 +19830318,9.7,7.3,14.4,7.2,3.4 +19830319,11.9,5.8,16.1,9.4,5.6 +19830320,9.4,4.6,17.2,3.3,3.5 +19830321,7.4,4.8,10.6,1.1,4.8 +19830322,1.4,-7.0,5.0,-1.1,7.3 +19830323,2.6,-7.9,10.6,-1.7,5.1 +19830324,1.3,-3.9,6.7,-1.1,2.9 +19830325,3.7,-6.5,12.2,-1.7,6.8 +19830326,3.6,-5.1,10.0,-2.8,3.1 +19830327,6.3,3.8,15.6,1.7,4.5 +19830328,7.7,2.9,12.2,4.4,4.2 +19830329,4.8,-0.1,8.9,2.2,7.3 +19830330,4.9,0.0,12.8,-0.6,2.8 +19830331,6.5,4.3,9.4,4.4,3.2 +19830401,6.1,3.0,15.6,0.0,2.1 +19830402,11.1,7.2,16.1,7.8,6.8 +19830403,7.8,1.7,11.1,6.1,4.7 +19830404,8.6,1.3,21.1,0.6,2.6 +19830405,9.1,5.8,15.6,6.7,2.3 +19830406,13.5,11.9,21.1,9.4,1.9 +19830407,16.3,15.8,18.9,14.4,2.1 +19830408,15.4,15.3,16.7,14.4,2.7 +19830409,15.4,15.3,18.9,14.4,3.4 +19830410,11.4,5.8,16.1,6.1,5.5 +19830411,9.0,2.1,15.0,4.4,4.6 +19830412,9.0,2.8,20.0,0.6,2.9 +19830413,12.8,6.9,20.0,4.4,3.5 +19830414,13.9,11.2,16.7,11.7,6.3 +19830415,12.7,10.4,15.6,8.3,6.5 +19830416,6.3,-3.4,11.7,1.7,9.5 +19830417,6.8,-4.0,15.6,-0.6,3.8 +19830418,4.2,-0.2,9.4,1.7,4.6 +19830419,1.3,-8.0,5.0,-2.2,6.4 +19830420,3.1,-7.2,10.0,-2.2,5.1 +19830421,6.4,-5.9,15.0,0.0,4.6 +19830422,6.4,-0.2,11.1,0.6,1.7 +19830423,8.8,6.6,10.6,7.2,2.2 +19830424,9.7,7.8,11.7,8.3,5.2 +19830425,9.5,-1.7,16.1,5.0,9.6 +19830426,14.2,0.3,23.3,4.4,5.4 +19830427,14.4,2.0,26.1,2.8,2.4 +19830428,15.9,4.5,26.1,4.4,2.7 +19830429,17.0,7.7,24.4,8.9,4.0 +19830430,17.9,12.3,23.3,12.2,5.1 +19830501,18.9,14.0,23.9,15.0,3.8 +19830502,20.3,14.4,25.6,16.1,6.1 +19830503,17.9,14.3,22.2,14.4,5.6 +19830504,12.6,6.9,17.2,8.9,5.4 +19830505,12.2,3.9,20.6,3.3,4.1 +19830506,12.7,3.8,22.8,2.2,2.4 +19830507,15.1,6.8,24.4,5.0,3.9 +19830508,17.4,12.6,21.1,13.3,4.8 +19830509,12.8,4.8,21.7,6.7,6.1 +19830510,13.4,5.8,25.0,3.3,1.7 +19830511,17.4,11.1,26.7,7.8,1.9 +19830512,17.8,13.7,23.3,11.1,1.7 +19830513,16.9,16.0,22.2,14.4,2.0 +19830514,17.7,15.7,25.0,12.8,2.0 +19830515,19.1,15.7,22.8,14.4,3.7 +19830516,17.8,14.9,22.2,15.6,4.8 +19830517,13.4,6.8,18.3,8.9,4.7 +19830518,11.4,7.2,18.9,3.3,2.7 +19830519,14.3,13.1,15.6,12.8,3.8 +19830520,17.8,17.1,23.9,15.0,2.2 +19830521,19.2,17.6,25.0,15.6,3.8 +19830522,19.8,18.6,23.9,17.2,3.2 +19830523,19.8,16.3,25.6,15.6,2.7 +19830524,17.6,12.1,22.2,13.9,5.9 +19830525,14.8,10.2,21.7,7.8,2.3 +19830526,16.5,12.2,23.3,8.9,2.7 +19830527,15.1,5.6,23.3,7.8,3.8 +19830528,15.3,9.5,24.4,6.1,2.5 +19830529,18.4,15.6,23.9,13.3,3.1 +19830530,19.9,14.9,25.6,14.4,3.9 +19830531,16.3,11.5,23.3,9.4,3.0 +19830601,15.4,11.1,21.7,11.1,4.3 +19830602,14.8,10.6,23.3,6.7,1.7 +19830603,18.5,14.9,26.7,11.7,3.5 +19830604,20.7,17.9,25.6,15.6,3.1 +19830605,19.1,17.1,25.6,13.9,2.1 +19830606,19.7,18.3,25.6,15.0,2.1 +19830607,18.2,17.8,21.1,16.7,2.1 +19830608,18.3,14.2,25.0,12.2,3.5 +19830609,18.6,14.3,23.9,12.8,1.5 +19830610,17.9,13.0,26.1,10.6,1.1 +19830611,18.4,13.3,26.1,10.0,1.9 +19830612,18.3,12.3,26.7,9.4,1.7 +19830613,18.8,11.4,28.3,9.4,1.6 +19830614,19.3,11.7,28.3,8.9,1.7 +19830615,21.1,14.7,29.4,12.8,1.7 +19830616,21.9,17.3,28.3,16.1,2.2 +19830617,18.9,17.8,24.4,15.6,1.5 +19830618,20.1,18.6,25.6,16.1,1.2 +19830619,20.9,19.2,26.7,17.8,1.7 +19830620,21.2,19.2,28.3,18.3,1.4 +19830621,23.2,18.6,30.6,17.8,2.2 +19830622,21.8,19.4,27.2,20.0,2.8 +19830623,20.1,18.3,25.6,16.6,1.4 +19830624,22.0,17.3,30.0,15.6,1.9 +19830625,22.9,17.3,31.1,14.4,2.7 +19830626,24.1,20.3,30.0,18.3,1.9 +19830627,23.6,20.9,28.9,18.9,1.9 +19830628,22.8,21.4,27.2,20.6,2.3 +19830629,23.8,21.5,28.9,20.0,2.7 +19830630,22.8,22.1,26.7,20.6,2.0 +19830701,22.0,20.2,28.9,18.9,2.4 +19830702,24.1,20.7,30.6,18.3,2.2 +19830703,24.2,20.8,30.0,18.3,2.6 +19830704,22.4,20.5,30.0,18.3,1.9 +19830705,21.6,21.0,25.6,19.4,1.9 +19830706,22.0,17.8,26.7,17.2,4.5 +19830707,20.3,15.6,25.6,14.4,2.9 +19830708,20.2,15.8,27.8,12.8,2.1 +19830709,20.7,15.3,27.8,12.2,3.1 +19830710,22.6,16.2,30.0,15.6,3.3 +19830711,23.7,19.1,30.6,17.8,1.9 +19830712,24.1,18.6,31.1,17.8,2.1 +19830713,24.1,19.3,31.7,16.1,1.2 +19830714,25.4,21.1,32.8,18.9,1.8 +19830715,25.8,20.9,32.8,19.4,2.4 +19830716,25.2,20.6,32.2,18.3,2.5 +19830717,25.4,21.2,30.6,20.0,3.3 +19830718,24.3,20.5,30.0,19.4,3.5 +19830719,24.8,21.2,31.7,19.4,4.3 +19830720,25.9,21.6,33.3,20.0,3.4 +19830721,26.7,21.2,33.9,20.0,3.2 +19830722,28.7,21.9,34.4,24.4,4.1 +19830723,28.1,21.3,33.9,21.7,2.7 +19830724,26.1,20.8,34.4,20.6,2.7 +19830725,24.3,20.8,28.9,20.6,2.8 +19830726,23.0,18.4,29.4,18.3,2.9 +19830727,22.7,16.7,28.3,15.6,1.3 +19830728,22.3,15.9,29.4,15.0,1.4 +19830729,21.7,15.9,30.0,14.4,1.7 +19830730,22.3,15.9,30.6,13.9,1.4 +19830731,22.7,17.3,31.1,16.7,2.0 +19830801,22.6,20.8,25.6,20.0,1.4 +19830802,22.6,20.2,27.2,18.9,2.5 +19830803,23.7,20.1,30.0,20.0,1.9 +19830804,24.7,20.3,32.2,18.9,2.7 +19830805,23.9,19.4,31.1,17.2,3.0 +19830806,23.8,19.9,31.7,17.8,1.7 +19830807,23.9,20.9,31.1,18.9,2.3 +19830808,23.2,20.1,30.6,18.3,2.2 +19830809,25.3,20.2,33.3,18.3,2.5 +19830810,24.5,18.7,33.9,16.1,1.5 +19830811,25.5,20.1,33.3,18.3,2.0 +19830812,24.2,18.9,28.9,20.0,4.7 +19830813,22.2,14.9,30.0,17.2,3.1 +19830814,19.6,13.6,26.1,12.2,1.9 +19830815,20.2,14.4,29.4,12.2,2.0 +19830816,21.3,16.9,28.3,15.0,2.0 +19830817,23.7,17.1,31.7,16.7,1.5 +19830818,24.3,18.4,32.8,17.2,2.6 +19830819,27.1,19.5,35.0,20.0,4.1 +19830820,27.9,19.9,36.1,20.0,2.3 +19830821,27.5,21.7,36.7,20.6,2.4 +19830822,26.0,21.1,33.9,20.0,1.2 +19830823,26.9,21.2,36.1,20.0,1.9 +19830824,24.3,21.3,32.2,20.0,2.0 +19830825,22.1,20.9,23.9,20.6,2.1 +19830826,23.3,19.0,30.6,19.4,2.0 +19830827,23.7,20.6,29.4,18.3,2.5 +19830828,24.7,19.9,30.6,20.0,4.4 +19830829,24.8,19.3,31.7,20.0,4.4 +19830830,23.6,16.3,31.1,16.1,2.5 +19830831,20.7,17.7,28.9,16.1,1.3 +19830901,21.0,18.5,27.2,17.2,2.0 +19830902,21.0,18.9,24.4,18.9,1.0 +19830903,20.0,18.5,21.7,18.9,0.8 +19830904,22.0,19.8,26.7,18.9,2.0 +19830905,24.9,20.0,31.7,20.6,2.6 +19830906,23.9,18.8,30.0,18.9,2.8 +19830907,23.6,18.9,28.9,18.9,3.5 +19830908,23.9,18.9,29.4,20.6,2.7 +19830909,22.2,18.4,29.4,18.9,1.7 +19830910,23.4,18.1,31.7,18.3,2.2 +19830911,23.2,18.3,31.1,18.3,1.9 +19830912,22.6,18.2,30.0,18.9,2.2 +19830913,21.4,18.7,24.4,19.4,1.6 +19830914,19.7,15.9,22.8,18.3,4.0 +19830915,16.9,9.7,21.1,13.3,2.1 +19830916,16.4,12.1,21.7,12.2,1.7 +19830917,19.8,13.3,28.3,13.3,2.4 +19830918,19.7,13.6,27.8,11.7,1.9 +19830919,19.6,14.9,27.2,13.9,1.6 +19830920,20.1,17.4,22.8,16.7,2.5 +19830921,18.7,16.9,21.7,12.8,4.7 +19830922,10.8,0.7,16.7,6.1,7.9 +19830923,9.6,1.2,20.0,2.2,2.6 +19830924,10.3,1.5,18.3,2.2,2.1 +19830925,10.1,3.2,20.0,2.2,1.4 +19830926,13.6,5.9,22.2,8.3,1.8 +19830927,14.2,7.2,23.9,6.7,2.0 +19830928,15.6,7.8,24.4,7.8,2.6 +19830929,16.1,8.8,22.2,12.2,2.6 +19830930,13.9,5.8,22.2,8.9,2.3 +19831001,14.9,9.6,21.1,11.7,2.5 +19831002,15.6,9.6,26.1,9.4,2.3 +19831003,15.1,8.8,26.7,5.6,1.7 +19831004,16.8,11.4,27.8,8.3,1.5 +19831005,20.8,17.3,25.6,18.9,3.1 +19831006,17.4,9.8,22.8,12.8,5.4 +19831007,13.0,6.3,21.7,6.1,1.6 +19831008,13.2,7.3,22.8,5.6,0.9 +19831009,12.7,7.1,22.8,5.6,1.4 +19831010,16.1,10.1,19.4,14.4,1.8 +19831011,14.1,11.8,15.0,13.3,1.6 +19831012,16.8,15.3,23.3,13.9,1.9 +19831013,19.3,16.7,22.8,12.8,5.3 +19831014,10.2,2.3,16.7,5.6,4.5 +19831015,10.4,3.6,21.7,2.2,1.7 +19831016,10.9,5.2,22.2,2.8,1.0 +19831017,12.6,7.5,24.4,4.4,1.1 +19831018,14.3,9.6,22.8,7.8,1.3 +19831019,16.4,11.1,24.4,11.1,1.7 +19831020,16.1,12.9,19.4,14.4,3.1 +19831021,12.3,10.0,13.9,10.6,2.3 +19831022,9.2,7.5,10.0,8.9,2.4 +19831023,11.3,10.1,16.7,8.9,2.5 +19831024,13.8,9.4,17.2,10.6,4.7 +19831025,12.8,8.9,15.6,10.6,5.0 +19831026,11.2,1.8,16.1,6.1,5.9 +19831027,10.1,-1.1,15.6,7.2,6.5 +19831028,9.8,-0.7,23.9,0.0,2.8 +19831029,12.8,4.7,23.3,3.9,3.9 +19831030,11.5,3.8,15.6,8.3,2.7 +19831031,9.8,3.9,17.2,3.3,2.6 +19831101,13.3,7.4,21.7,7.8,2.0 +19831102,12.9,7.8,21.7,6.1,1.1 +19831103,14.4,9.5,22.2,8.9,2.7 +19831104,13.8,9.9,16.7,8.3,4.1 +19831105,5.1,-1.9,10.0,0.6,5.5 +19831106,7.1,-1.5,17.2,1.1,3.4 +19831107,6.8,1.1,14.4,0.6,1.5 +19831108,9.3,4.4,20.0,1.7,1.7 +19831109,9.9,7.6,16.1,4.4,0.7 +19831110,14.0,12.8,18.9,12.8,2.7 +19831111,6.3,2.1,12.2,3.9,5.9 +19831112,3.8,-4.7,8.3,1.1,8.0 +19831113,3.9,-3.8,8.9,1.7,2.9 +19831114,1.8,-2.5,10.0,-4.4,1.5 +19831115,6.2,5.5,10.0,4.4,3.9 +19831116,6.0,0.7,8.3,4.4,5.2 +19831117,4.9,-2.7,9.4,1.7,6.7 +19831118,4.5,-1.9,17.2,-2.8,1.5 +19831119,9.4,1.3,20.0,0.6,3.2 +19831120,12.3,9.5,15.0,6.7,4.0 +19831121,9.3,3.6,17.8,3.3,3.8 +19831122,8.4,1.4,22.8,0.0,2.0 +19831123,11.2,5.6,18.3,5.6,3.0 +19831124,13.9,13.2,15.6,10.0,2.9 +19831125,4.9,-1.9,10.6,-0.6,8.3 +19831126,4.7,-2.6,16.7,-2.8,1.9 +19831127,4.3,1.9,10.6,-2.2,2.3 +19831128,14.7,11.3,18.9,10.0,4.6 +19831129,5.2,-1.9,11.1,0.0,4.9 +19831130,3.0,-4.0,12.2,-2.8,3.6 +19831201,5.4,-2.7,11.7,-0.6,3.8 +19831202,4.3,-2.6,12.8,-2.2,2.6 +19831203,10.8,9.3,13.9,8.3,2.7 +19831204,10.4,8.8,16.7,7.2,3.8 +19831205,8.9,5.8,18.3,1.7,3.2 +19831206,11.9,7.9,17.8,6.7,4.4 +19831207,1.7,-7.1,5.6,-1.7,6.4 +19831208,0.5,-6.1,9.4,-5.6,3.1 +19831209,1.7,-4.4,12.2,-4.4,2.2 +19831210,6.6,0.6,17.8,-0.6,1.0 +19831211,5.2,3.8,8.3,1.7,2.3 +19831212,8.9,7.2,14.4,6.1,3.0 +19831213,9.4,6.2,14.4,5.6,4.8 +19831214,6.4,5.6,8.3,3.3,3.3 +19831215,3.8,-1.0,8.9,-2.2,3.9 +19831216,3.2,-4.1,10.0,-1.1,4.1 +19831217,3.8,-3.1,8.3,0.0,4.8 +19831218,0.2,-6.6,9.4,-6.1,1.8 +19831219,2.7,-3.7,8.3,-2.2,2.8 +19831220,1.6,-3.9,4.4,0.0,3.9 +19831221,0.6,-5.8,2.2,-0.6,4.1 +19831222,4.5,3.6,10.0,1.1,2.9 +19831223,1.7,-4.6,5.6,-1.1,5.4 +19831224,-6.6,-13.9,3.3,-17.2,8.2 +19831225,-17.2,-26.1,-10.6,-21.7,9.4 +19831226,-12.5,-22.2,-2.2,-17.8,6.2 +19831227,-3.7,-8.9,1.1,-6.1,2.3 +19831228,2.5,0.7,12.2,-1.1,3.2 +19831229,1.1,-0.8,6.7,-5.0,7.5 +19831230,-9.7,-14.9,-5.0,-14.4,8.3 +19831231,-7.1,-15.2,4.4,-13.9,4.7 +19840101,-2.2,-12.7,9.4,-10.0,1.8 +19840102,-1.2,-9.6,6.7,-7.2,2.5 +19840103,2.3,-6.0,10.0,-3.3,4.4 +19840104,0.0,-5.6,11.1,-7.2,2.5 +19840105,4.2,-1.6,8.3,0.6,4.5 +19840106,3.9,-1.7,12.2,-2.8,3.6 +19840107,3.1,-4.1,7.2,0.0,6.5 +19840108,0.3,-5.3,13.3,-8.3,1.7 +19840109,2.6,-3.5,13.3,-5.0,2.4 +19840110,4.4,0.2,7.2,2.2,2.7 +19840111,0.0,-4.6,4.4,-3.9,9.1 +19840112,-4.8,-9.2,3.3,-11.7,3.3 +19840113,-2.7,-5.9,0.6,-5.0,3.3 +19840114,1.0,-2.4,7.8,-5.6,4.2 +19840115,-0.1,-3.4,2.2,-1.1,2.9 +19840116,0.2,-2.1,5.0,-1.1,2.9 +19840117,1.5,-1.9,8.3,-2.8,1.6 +19840118,2.5,0.3,4.4,1.1,2.7 +19840119,-0.8,-4.4,3.3,-6.7,7.3 +19840120,-7.1,-12.2,-0.6,-11.1,6.5 +19840121,-6.3,-13.8,0.0,-12.8,5.9 +19840122,-7.1,-12.3,3.9,-14.4,2.2 +19840123,-3.1,-9.1,2.8,-8.9,2.5 +19840124,4.3,3.0,10.0,0.0,2.1 +19840125,6.9,4.9,8.3,5.6,3.2 +19840126,2.5,-1.3,13.3,-5.6,1.7 +19840127,5.8,-0.7,13.9,0.6,3.5 +19840128,3.7,-2.5,9.4,0.0,4.1 +19840129,2.8,-3.8,10.6,-2.8,2.7 +19840130,0.8,-4.8,12.2,-5.0,3.3 +19840131,-2.5,-7.2,2.2,-5.6,8.2 +19840201,-1.6,-7.6,8.3,-8.3,2.5 +19840202,0.8,-5.6,12.8,-7.2,2.4 +19840203,5.2,0.9,12.8,-1.1,3.6 +19840204,5.3,1.6,12.2,0.0,3.5 +19840205,1.8,-4.7,6.1,-3.9,4.8 +19840206,-4.8,-7.1,0.0,-10.0,7.1 +19840207,-7.9,-11.7,-1.1,-13.3,6.2 +19840208,-3.7,-11.4,10.6,-11.7,3.6 +19840209,2.3,-5.2,16.7,-7.2,1.6 +19840210,4.3,0.1,10.0,-2.2,2.6 +19840211,10.4,8.4,17.8,6.1,3.8 +19840212,8.1,7.7,15.6,2.8,2.2 +19840213,11.6,11.4,12.8,10.6,3.6 +19840214,10.3,7.3,13.3,7.2,5.6 +19840215,8.6,1.1,17.8,0.0,3.9 +19840216,6.7,2.1,16.7,-1.1,2.7 +19840217,8.0,3.8,18.3,-0.6,1.6 +19840218,7.8,2.1,18.3,-1.1,3.0 +19840219,10.9,4.4,21.1,2.8,3.8 +19840220,9.7,4.3,15.6,4.4,6.7 +19840221,5.5,-3.3,13.3,0.0,6.7 +19840222,3.6,-5.4,11.7,-5.0,2.4 +19840223,4.5,2.2,9.4,2.2,5.0 +19840224,6.5,1.5,17.2,-1.1,3.6 +19840225,5.5,-0.6,12.2,2.8,6.3 +19840226,2.4,-3.0,8.9,-1.7,3.5 +19840227,2.7,0.1,5.0,0.6,3.4 +19840228,0.9,-0.2,2.2,-1.7,4.6 +19840229,-3.2,-7.5,0.0,-5.0,7.2 +19840301,-2.5,-11.1,5.6,-7.8,6.2 +19840302,1.7,-5.3,11.7,-4.4,2.2 +19840303,2.9,-1.9,11.7,-4.4,2.0 +19840304,2.7,-1.6,11.1,-5.0,2.4 +19840305,8.7,7.1,12.8,5.6,2.6 +19840306,7.3,5.9,10.6,2.8,5.4 +19840307,1.8,-1.2,6.1,-1.1,7.0 +19840308,2.2,-4.1,13.3,-6.1,3.7 +19840309,-1.7,-9.9,6.1,-6.7,6.9 +19840310,-1.3,-7.7,5.6,-5.6,2.8 +19840311,0.8,-2.8,6.7,-3.3,5.5 +19840312,1.7,-4.1,10.0,-5.6,3.3 +19840313,6.3,4.0,12.8,2.8,3.2 +19840314,9.3,3.7,19.4,-0.6,4.0 +19840315,9.4,1.9,23.3,-1.1,2.2 +19840316,15.1,8.7,20.6,9.4,4.3 +19840317,10.8,8.3,15.6,3.9,3.2 +19840318,9.6,9.0,14.4,6.1,2.0 +19840319,13.9,10.1,24.4,8.9,2.1 +19840320,13.6,11.9,18.9,10.6,3.9 +19840321,5.4,3.5,12.2,0.6,4.9 +19840322,7.8,-2.2,16.1,1.7,4.0 +19840323,7.8,-3.0,15.6,1.7,5.2 +19840324,7.5,-0.3,19.4,-1.1,2.5 +19840325,13.2,9.2,18.9,9.4,3.7 +19840326,9.8,4.1,15.6,6.7,5.4 +19840327,7.4,5.8,12.2,2.2,2.2 +19840328,11.4,10.8,16.1,9.4,3.1 +19840329,5.8,4.7,11.1,2.8,6.1 +19840330,4.9,-1.7,10.6,1.7,8.3 +19840331,5.0,-4.1,12.2,0.0,4.9 +19840401,7.4,-1.2,13.9,1.7,5.6 +19840402,6.9,-1.3,18.3,-2.2,2.7 +19840403,9.1,6.2,12.8,7.2,2.3 +19840404,11.2,11.0,17.2,9.4,3.1 +19840405,8.4,4.5,12.2,4.4,3.7 +19840406,8.7,0.7,12.8,5.0,6.2 +19840407,10.8,-1.5,18.3,6.1,8.1 +19840408,10.5,0.3,15.0,6.1,3.5 +19840409,7.4,5.4,11.1,5.6,2.9 +19840410,5.3,4.9,7.8,4.4,2.0 +19840411,10.1,5.6,18.9,5.6,1.5 +19840412,10.4,4.2,19.4,1.1,2.8 +19840413,13.2,7.5,22.8,5.6,3.4 +19840414,14.7,10.1,22.8,7.2,3.2 +19840415,10.4,6.2,17.8,4.4,2.4 +19840416,10.1,3.2,13.9,5.0,3.8 +19840417,8.2,2.7,11.7,5.0,2.6 +19840418,6.9,2.2,12.2,2.8,3.1 +19840419,4.6,2.9,10.6,-1.1,1.7 +19840420,7.3,6.2,12.2,3.3,2.3 +19840421,12.8,10.9,20.6,8.9,2.6 +19840422,10.9,10.2,15.6,7.8,3.9 +19840423,9.2,7.5,14.4,6.7,4.5 +19840424,8.4,1.8,15.0,4.4,5.6 +19840425,13.4,3.8,26.1,1.7,3.0 +19840426,17.2,6.4,27.8,6.1,2.9 +19840427,15.7,11.6,21.7,11.7,1.8 +19840428,16.7,15.5,22.8,12.2,2.2 +19840429,16.6,16.2,20.6,13.9,2.3 +19840430,17.7,16.7,21.1,16.1,3.9 +19840501,14.6,3.8,21.1,7.8,4.1 +19840502,10.6,7.7,16.7,6.7,2.1 +19840503,11.6,11.6,16.7,8.9,3.2 +19840504,16.3,11.4,20.6,12.8,4.6 +19840505,14.1,8.3,22.8,6.7,4.4 +19840506,14.8,12.7,21.7,10.0,2.4 +19840507,16.1,15.1,22.8,12.8,4.0 +19840508,15.8,14.6,22.8,8.9,4.4 +19840509,9.2,2.8,17.2,2.2,4.4 +19840510,11.4,4.4,20.0,2.8,2.9 +19840511,14.3,7.8,24.4,3.9,2.8 +19840512,17.3,11.8,25.0,8.9,4.0 +19840513,17.6,13.9,25.6,10.0,3.4 +19840514,18.8,13.9,25.0,13.9,3.9 +19840515,13.7,3.7,19.4,7.8,7.5 +19840516,11.1,2.0,17.2,2.8,5.3 +19840517,12.7,-0.7,22.2,5.0,4.2 +19840518,14.2,4.4,25.6,2.8,2.2 +19840519,17.5,10.1,27.2,7.2,3.2 +19840520,18.1,12.1,26.7,8.9,2.8 +19840521,18.8,14.5,25.0,11.1,3.4 +19840522,19.9,16.7,27.2,15.0,3.0 +19840523,19.7,17.7,26.1,16.7,3.9 +19840524,16.3,11.3,23.9,7.2,2.8 +19840525,16.4,12.4,25.0,7.2,2.1 +19840526,19.6,17.7,26.1,15.0,2.9 +19840527,19.2,17.9,26.1,15.6,1.6 +19840528,20.1,19.1,24.4,17.8,2.5 +19840529,17.7,16.3,21.1,14.4,4.6 +19840530,9.4,4.8,12.8,6.1,8.6 +19840531,10.2,3.0,17.8,1.7,5.8 +19840601,13.3,6.2,23.9,2.8,3.1 +19840602,18.0,10.9,28.3,9.4,4.7 +19840603,21.7,14.1,28.9,15.6,4.6 +19840604,19.9,16.0,26.7,12.2,2.8 +19840605,21.4,16.7,29.4,13.9,2.7 +19840606,21.4,16.8,30.0,13.3,2.2 +19840607,21.8,17.6,31.1,13.3,2.7 +19840608,23.1,18.1,31.1,13.9,2.8 +19840609,21.5,15.3,30.0,12.2,2.8 +19840610,21.9,16.3,30.0,12.2,2.3 +19840611,22.3,18.1,30.6,12.2,2.1 +19840612,21.6,18.1,30.6,15.0,2.1 +19840613,20.1,18.2,30.6,15.0,2.0 +19840614,20.4,18.3,29.4,15.6,2.5 +19840615,20.7,18.1,29.4,14.4,2.4 +19840616,21.1,18.6,29.4,14.4,2.1 +19840617,20.4,18.9,28.9,15.6,2.0 +19840618,22.8,19.3,30.0,15.6,2.2 +19840619,23.1,19.5,30.6,16.1,2.7 +19840620,21.9,20.1,31.7,16.1,1.9 +19840621,20.1,19.5,30.0,17.8,1.9 +19840622,18.8,18.7,25.6,17.8,1.3 +19840623,19.2,18.2,23.9,16.1,2.2 +19840624,21.1,19.7,26.7,16.1,2.5 +19840625,20.4,15.4,27.2,15.6,4.3 +19840626,19.2,12.4,27.2,9.4,2.8 +19840627,19.8,15.9,27.2,9.4,2.6 +19840628,19.3,18.4,27.8,11.1,1.6 +19840629,19.4,18.2,25.0,15.6,2.1 +19840630,18.8,18.1,25.6,15.6,3.1 +19840701,17.8,15.0,25.6,10.6,3.1 +19840702,18.8,17.4,26.1,10.6,2.0 +19840703,18.5,16.0,26.1,12.8,2.2 +19840704,20.7,18.1,28.3,12.8,2.0 +19840705,21.3,19.6,28.9,13.3,2.6 +19840706,21.1,19.3,28.9,16.7,2.1 +19840707,21.3,19.0,27.8,16.7,3.0 +19840708,20.4,17.2,27.8,15.6,2.9 +19840709,20.7,17.2,27.2,13.9,2.3 +19840710,23.1,18.8,31.1,13.9,4.0 +19840711,24.7,20.7,31.7,16.1,2.3 +19840712,22.9,20.6,32.2,16.7,3.2 +19840713,21.9,20.9,28.3,17.8,2.4 +19840714,22.6,21.1,28.3,18.3,2.0 +19840715,22.2,20.4,28.3,18.3,2.4 +19840716,22.2,20.5,29.4,18.3,2.7 +19840717,20.1,19.7,26.1,17.2,2.0 +19840718,21.2,18.9,26.1,17.2,4.1 +19840719,19.4,15.8,26.7,13.9,3.1 +19840720,21.1,18.6,26.1,13.9,2.6 +19840721,20.3,17.8,26.7,15.6,2.6 +19840722,20.0,17.6,27.2,15.0,2.4 +19840723,20.3,17.7,25.6,15.0,1.7 +19840724,21.7,18.9,28.9,15.6,1.9 +19840725,23.8,20.7,30.0,16.1,2.5 +19840726,21.5,19.4,30.0,16.1,2.1 +19840727,20.7,19.4,29.4,16.1,2.5 +19840728,19.5,18.9,27.8,16.7,2.8 +19840729,17.3,16.9,22.8,15.6,1.9 +19840730,17.6,16.9,21.1,15.6,2.4 +19840731,18.4,18.2,21.7,15.6,1.3 +19840801,20.9,20.1,24.4,16.7,2.3 +19840802,22.3,20.6,27.8,18.3,2.3 +19840803,22.8,20.9,28.3,17.8,1.9 +19840804,22.2,20.1,29.4,17.2,2.2 +19840805,21.4,19.7,30.6,17.2,1.0 +19840806,21.7,19.7,28.3,17.2,2.4 +19840807,21.8,19.9,28.9,16.7,2.8 +19840808,22.5,20.2,28.9,16.7,3.1 +19840809,22.5,20.8,29.4,17.2,2.8 +19840810,22.4,20.6,29.4,17.2,2.2 +19840811,20.9,19.7,29.4,17.2,3.3 +19840812,21.6,20.7,28.3,17.8,1.9 +19840813,21.1,20.1,26.7,18.3,2.0 +19840814,22.3,19.9,28.9,18.3,2.9 +19840815,21.3,18.7,28.9,15.0,2.3 +19840816,21.7,19.6,28.3,15.0,2.3 +19840817,21.7,18.7,28.3,16.7,2.9 +19840818,19.7,17.8,28.3,14.4,1.9 +19840819,21.6,19.6,26.7,14.4,2.9 +19840820,20.9,18.2,28.3,15.6,3.2 +19840821,20.5,19.1,28.3,15.6,2.5 +19840822,20.4,18.4,27.2,15.6,1.6 +19840823,21.2,18.3,27.8,15.6,4.1 +19840824,19.2,16.3,26.7,13.9,2.2 +19840825,18.9,16.6,25.0,13.9,1.9 +19840826,19.2,18.3,25.6,13.9,1.5 +19840827,19.9,18.6,26.7,15.6,2.0 +19840828,19.2,18.2,26.7,13.9,2.0 +19840829,20.3,18.6,26.7,13.9,1.9 +19840830,19.9,18.5,27.8,16.1,1.7 +19840831,21.7,18.3,27.2,16.1,3.9 +19840901,19.1,14.8,28.3,10.6,1.9 +19840902,20.9,17.8,28.9,10.6,2.5 +19840903,21.1,18.6,29.4,13.9,2.4 +19840904,19.0,16.7,28.9,13.9,4.3 +19840905,16.5,11.8,23.3,10.0,3.5 +19840906,15.2,10.4,23.9,7.8,2.5 +19840907,14.6,11.8,23.9,7.2,1.7 +19840908,13.5,10.3,22.2,5.6,2.2 +19840909,14.9,12.4,23.3,5.6,2.0 +19840910,18.1,14.9,26.1,8.3,2.0 +19840911,19.1,15.7,28.3,10.0,2.7 +19840912,21.6,17.9,29.4,11.1,4.0 +19840913,20.9,17.1,29.4,12.8,3.3 +19840914,20.2,17.3,30.0,11.7,2.1 +19840915,19.1,17.1,30.6,11.7,4.4 +19840916,14.1,9.3,25.0,7.2,3.4 +19840917,11.4,7.2,22.2,3.9,1.7 +19840918,10.9,7.9,18.3,3.9,1.4 +19840919,13.9,9.1,25.0,4.4,3.1 +19840920,15.6,9.9,28.3,4.4,1.5 +19840921,17.1,12.2,28.3,4.4,1.7 +19840922,17.3,13.7,28.9,6.1,2.6 +19840923,18.2,15.3,26.7,7.8,2.6 +19840924,17.8,14.9,27.2,10.6,1.7 +19840925,20.3,15.3,28.9,10.6,2.1 +19840926,17.6,15.4,30.0,10.0,3.3 +19840927,13.9,12.1,16.7,10.0,4.0 +19840928,12.2,10.9,20.0,7.8,3.0 +19840929,13.5,12.0,20.0,7.8,4.8 +19840930,10.9,10.7,17.2,10.0,3.3 +19841001,9.1,7.2,12.2,7.2,6.9 +19841002,10.4,4.9,17.8,3.3,5.2 +19841003,9.2,3.9,22.2,-0.6,1.9 +19841004,12.6,8.2,23.9,-0.6,2.5 +19841005,15.2,11.2,24.4,3.3,1.5 +19841006,15.7,13.6,24.4,7.2,2.1 +19841007,15.1,13.9,22.8,8.9,3.2 +19841008,15.8,14.7,20.0,12.8,3.2 +19841009,16.3,15.6,20.0,12.8,1.4 +19841010,16.7,15.1,22.2,12.8,1.5 +19841011,15.6,12.7,22.8,8.9,1.5 +19841012,14.7,10.9,23.9,6.7,2.7 +19841013,14.7,8.6,24.4,6.1,3.8 +19841014,15.4,10.6,26.1,6.1,2.7 +19841015,16.0,12.3,27.2,6.7,1.9 +19841016,17.6,13.0,26.7,8.9,2.2 +19841017,16.9,14.8,27.2,10.6,1.5 +19841018,17.7,14.6,27.8,10.6,2.0 +19841019,20.4,16.0,27.8,10.6,3.2 +19841020,18.6,15.4,27.8,13.3,2.6 +19841021,18.8,16.4,25.6,13.3,4.1 +19841022,19.1,17.1,22.8,16.7,3.4 +19841023,16.4,15.2,23.3,12.8,1.7 +19841024,17.5,16.6,23.9,12.8,1.7 +19841025,19.4,16.4,24.4,15.0,2.2 +19841026,16.9,13.8,25.0,11.7,1.6 +19841027,14.7,12.8,25.0,9.4,2.2 +19841028,19.2,17.7,23.9,9.4,3.0 +19841029,19.8,17.6,25.0,15.6,1.9 +19841030,18.2,15.6,25.6,13.9,2.1 +19841031,16.8,14.1,26.1,13.3,2.0 +19841101,16.2,13.9,22.8,13.3,3.0 +19841102,15.1,12.8,18.9,10.6,3.9 +19841103,9.6,4.1,18.9,7.8,3.1 +19841104,7.8,6.5,11.7,5.6,2.9 +19841105,11.7,8.9,15.0,5.6,4.3 +19841106,6.3,-0.9,15.0,2.2,7.6 +19841107,4.1,-3.3,11.7,-3.9,3.3 +19841108,4.5,-1.3,12.8,-3.9,2.2 +19841109,6.3,-0.5,16.1,-3.3,2.1 +19841110,8.1,2.3,16.7,-1.7,3.3 +19841111,7.3,5.1,14.4,1.7,6.4 +19841112,2.3,-2.1,11.1,0.6,8.0 +19841113,1.6,-6.2,10.0,-2.8,7.3 +19841114,3.2,-6.7,15.6,-7.2,2.7 +19841115,6.4,-4.1,16.7,-7.2,3.8 +19841116,9.8,0.2,16.7,-1.7,5.4 +19841117,4.2,-9.5,13.3,-2.8,4.8 +19841118,5.0,-2.1,13.3,-2.8,3.4 +19841119,12.7,10.0,17.2,-1.1,5.8 +19841120,3.1,-2.0,6.7,0.0,7.8 +19841121,-2.2,-6.4,5.0,-7.8,3.6 +19841122,-1.3,-7.1,8.9,-8.3,3.6 +19841123,0.9,-8.7,15.6,-8.9,3.0 +19841124,3.9,-8.4,17.2,-8.9,2.6 +19841125,3.7,-5.7,17.2,-6.1,1.4 +19841126,5.3,-3.7,17.2,-5.6,2.2 +19841127,11.0,5.9,17.2,-3.9,3.9 +19841128,10.7,7.9,16.7,2.2,6.8 +19841129,2.4,-4.3,14.4,-1.7,6.6 +19841130,2.3,-2.5,13.9,-5.6,2.6 +19841201,6.7,0.7,15.0,3.3,3.3 +19841202,2.6,-1.3,12.2,-3.9,2.1 +19841203,7.9,3.0,13.3,5.6,4.4 +19841204,1.5,-6.9,13.3,-2.8,4.9 +19841205,0.8,-1.7,6.1,-2.8,3.1 +19841206,0.2,-2.2,2.8,-8.3,5.9 +19841207,-7.4,-14.1,2.8,-12.2,7.3 +19841208,1.6,-6.7,12.2,-12.2,4.8 +19841209,2.3,-3.8,13.9,-5.6,2.2 +19841210,4.6,-1.4,14.4,-5.6,2.3 +19841211,10.3,3.0,16.7,-1.1,3.7 +19841212,6.7,-1.1,17.2,-0.6,2.5 +19841213,10.1,3.9,20.0,-0.6,1.9 +19841214,10.8,6.7,22.2,2.2,0.9 +19841215,9.7,5.8,22.8,1.7,1.4 +19841216,9.3,5.6,21.1,1.1,2.6 +19841217,11.3,7.3,21.1,1.7,1.5 +19841218,12.4,9.2,21.1,3.9,1.9 +19841219,13.9,10.2,21.7,3.9,2.0 +19841220,13.2,10.9,21.1,7.2,2.6 +19841221,13.3,11.1,17.2,10.6,4.1 +19841222,12.4,7.2,17.2,8.3,6.2 +19841223,4.8,-2.3,15.6,-1.1,3.4 +19841224,2.1,-3.5,10.6,-4.4,2.6 +19841225,9.3,4.3,14.4,5.6,5.1 +19841226,2.2,-2.8,14.4,-3.9,2.5 +19841227,10.3,2.4,20.0,5.6,2.2 +19841228,10.7,6.5,21.7,3.3,1.7 +19841229,11.1,7.1,23.3,1.7,2.4 +19841230,12.6,8.2,23.3,1.7,2.0 +19841231,13.8,10.5,22.8,3.9,2.7 +19850101,14.2,11.8,20.0,8.9,4.6 +19850102,11.6,10.8,17.2,7.2,4.0 +19850103,6.1,5.5,14.4,3.3,4.0 +19850104,2.1,1.4,8.3,0.6,3.7 +19850105,-2.1,-5.4,3.9,-4.4,9.1 +19850106,-1.9,-5.9,8.9,-8.9,3.7 +19850107,2.1,-3.2,9.4,-8.9,4.2 +19850108,0.7,-4.0,10.0,-3.9,7.8 +19850109,-1.1,-7.2,3.9,-6.7,4.6 +19850110,-0.1,-7.2,4.4,-6.7,3.4 +19850111,0.8,-2.7,2.8,-2.8,5.5 +19850112,-5.9,-9.8,2.8,-8.3,9.0 +19850113,-4.6,-9.9,4.4,-10.0,5.0 +19850114,-0.3,-11.2,8.9,-10.0,4.1 +19850115,-2.9,-11.4,8.9,-7.8,8.6 +19850116,-4.6,-12.8,4.4,-11.7,4.0 +19850117,1.1,-1.7,5.6,-2.2,5.0 +19850118,0.0,-4.3,8.3,-4.4,5.0 +19850119,2.8,-5.0,8.9,-3.9,5.4 +19850120,-9.8,-14.1,4.4,-21.7,8.9 +19850121,-21.6,-26.7,-13.9,-26.8,9.0 +19850122,-10.2,-15.5,-1.7,-16.1,8.7 +19850123,-6.9,-12.1,0.6,-13.3,6.9 +19850124,-2.5,-11.1,10.0,-10.6,2.3 +19850125,2.3,-6.4,10.6,-1.7,5.0 +19850126,-7.8,-16.3,-1.1,-11.7,8.7 +19850127,-6.4,-15.8,2.8,-13.9,2.8 +19850128,-0.3,-4.8,3.3,-1.1,3.7 +19850129,-1.9,-5.2,2.8,-5.0,4.9 +19850130,0.8,-2.6,5.6,-5.0,3.6 +19850131,5.2,3.3,13.9,-2.8,3.1 +19850201,6.6,6.1,14.4,1.7,4.2 +19850202,6.7,5.8,13.9,3.3,3.4 +19850203,-1.4,-3.6,2.8,-3.9,5.1 +19850204,-0.9,-4.2,2.2,-3.9,3.6 +19850205,-1.2,-3.5,2.2,-2.8,3.5 +19850206,2.8,1.0,5.6,-2.8,5.2 +19850207,-2.0,-9.1,6.7,-6.1,6.8 +19850208,-6.7,-16.6,2.8,-11.7,8.2 +19850209,-3.7,-17.0,6.7,-11.7,7.0 +19850210,1.2,-12.3,11.7,-9.4,2.0 +19850211,1.1,-3.7,13.3,-6.1,3.4 +19850212,0.1,-1.7,8.3,-5.0,6.3 +19850213,-4.6,-8.3,-1.1,-6.7,5.8 +19850214,-2.9,-13.4,5.6,-11.1,3.6 +19850215,-2.9,-12.3,6.1,-11.1,4.4 +19850216,-4.0,-13.0,6.1,-10.0,5.0 +19850217,1.1,-7.2,7.8,-10.0,3.8 +19850218,1.6,-4.8,10.0,-5.6,3.2 +19850219,5.7,-0.5,10.0,2.8,3.0 +19850220,6.4,-1.1,13.3,0.0,4.2 +19850221,4.3,-3.2,13.9,-3.9,2.8 +19850222,9.8,-2.2,16.7,-3.9,4.5 +19850223,12.3,6.4,17.2,3.3,4.1 +19850224,14.2,9.9,18.9,7.2,3.3 +19850225,12.8,10.8,19.4,10.0,2.4 +19850226,12.6,10.3,18.3,9.4,2.4 +19850227,11.1,6.2,19.4,8.3,4.6 +19850228,5.4,-5.5,13.9,-2.8,2.6 +19850301,4.7,-2.2,14.4,-2.8,2.8 +19850302,8.8,3.2,12.8,6.7,5.0 +19850303,6.5,-0.1,14.4,-1.7,2.8 +19850304,10.8,5.4,17.8,-1.7,4.7 +19850305,12.6,3.8,18.3,6.7,6.2 +19850306,6.7,-6.6,16.1,0.0,7.4 +19850307,4.7,-5.6,15.6,-3.3,3.7 +19850308,10.5,1.3,22.8,-3.3,2.9 +19850309,13.7,9.1,22.8,11.1,5.2 +19850310,9.5,-6.2,16.7,4.4,4.2 +19850311,11.0,-1.3,17.2,4.4,4.0 +19850312,12.7,3.8,17.8,5.0,5.7 +19850313,9.6,-5.6,25.0,-1.7,4.0 +19850314,10.6,4.6,25.0,-1.7,4.7 +19850315,6.7,-2.5,13.9,1.7,7.5 +19850316,4.1,-6.3,13.3,-4.4,2.3 +19850317,8.2,-3.1,12.8,4.4,5.5 +19850318,1.5,-10.3,12.8,-2.8,9.0 +19850319,3.7,-11.6,16.1,-6.1,3.7 +19850320,7.6,-6.6,18.9,-6.1,1.8 +19850321,8.1,-1.1,19.4,-3.9,2.4 +19850322,2.6,1.1,11.7,1.1,2.9 +19850323,7.3,4.7,15.0,1.1,2.9 +19850324,8.5,3.9,15.6,2.8,4.0 +19850325,4.9,-0.1,12.8,0.0,6.4 +19850326,6.6,-1.4,18.9,-3.3,2.4 +19850327,9.9,-0.1,21.1,-3.3,3.8 +19850328,13.6,7.1,22.2,-1.7,4.6 +19850329,18.9,13.3,26.7,3.9,4.8 +19850330,19.9,11.4,27.8,11.7,4.3 +19850331,18.1,11.9,28.3,11.7,4.8 +19850401,10.6,-2.3,20.0,4.4,5.5 +19850402,6.7,-6.3,15.6,1.1,6.5 +19850403,7.4,-4.4,21.1,-3.9,3.2 +19850404,15.3,1.8,24.4,3.3,4.3 +19850405,16.6,6.6,25.0,12.2,7.4 +19850406,11.5,2.4,20.0,3.3,4.5 +19850407,8.6,-0.9,20.0,1.1,3.9 +19850408,5.4,-5.1,10.0,1.1,6.1 +19850409,3.1,-8.1,10.6,-1.7,7.1 +19850410,3.4,-7.8,13.3,-5.0,3.0 +19850411,9.4,-3.2,21.1,-5.0,2.7 +19850412,12.9,2.1,22.8,-1.7,2.5 +19850413,14.7,8.3,22.8,3.9,2.3 +19850414,13.1,10.6,19.4,7.8,1.6 +19850415,13.2,12.7,17.2,7.8,3.0 +19850416,12.8,11.2,17.8,11.1,1.9 +19850417,16.6,9.6,25.0,11.1,3.9 +19850418,16.6,7.8,26.7,5.6,2.6 +19850419,18.7,9.1,27.8,5.6,2.8 +19850420,18.3,8.9,28.3,7.8,2.5 +19850421,18.2,7.2,28.3,6.7,2.0 +19850422,18.8,5.8,28.3,6.7,3.0 +19850423,17.1,5.9,27.2,7.8,2.5 +19850424,16.9,12.4,26.7,8.9,3.1 +19850425,16.8,7.2,25.0,10.6,4.4 +19850426,15.8,4.2,26.7,4.4,2.5 +19850427,17.6,9.8,27.2,4.4,1.6 +19850428,19.4,14.4,24.4,11.7,3.8 +19850429,18.9,11.9,25.0,12.8,4.2 +19850430,14.4,5.1,25.0,3.9,2.4 +19850501,14.8,7.7,23.9,3.9,3.3 +19850502,15.2,12.3,22.8,13.3,3.6 +19850503,15.4,11.2,18.3,12.8,5.7 +19850504,12.4,4.9,21.1,2.8,3.0 +19850505,14.1,6.4,23.9,2.8,2.8 +19850506,16.3,8.4,25.6,3.9,2.9 +19850507,17.3,10.9,26.1,5.6,2.8 +19850508,14.2,11.6,25.0,10.0,1.9 +19850509,11.1,9.9,16.7,9.4,1.2 +19850510,15.1,13.7,20.0,9.4,1.6 +19850511,17.9,15.6,24.4,12.8,2.3 +19850512,19.6,16.4,25.6,14.4,2.0 +19850513,18.9,14.8,27.8,13.3,2.9 +19850514,20.1,15.7,28.9,13.3,2.9 +19850515,21.1,16.6,30.0,13.9,2.9 +19850516,19.7,11.4,28.3,13.9,4.5 +19850517,13.7,11.4,16.1,10.6,4.0 +19850518,13.7,5.8,18.9,8.9,7.2 +19850519,13.7,6.4,23.9,3.3,2.6 +19850520,16.4,9.2,25.6,3.3,2.0 +19850521,18.1,12.7,26.1,7.2,2.0 +19850522,19.6,14.9,27.8,10.0,3.0 +19850523,19.3,15.7,27.8,13.9,4.7 +19850524,13.6,11.1,16.7,11.1,5.5 +19850525,16.1,10.2,22.8,11.1,4.3 +19850526,16.8,9.8,26.1,7.2,1.7 +19850527,18.6,11.6,27.8,7.2,1.5 +19850528,17.4,13.3,28.9,8.9,2.3 +19850529,18.4,14.5,25.6,9.4,1.2 +19850530,19.7,16.6,25.6,11.7,2.6 +19850531,21.4,17.4,28.3,16.7,4.4 +19850601,24.2,15.4,32.2,17.2,4.0 +19850602,20.1,13.8,32.2,12.8,2.3 +19850603,22.8,17.2,30.6,12.8,3.1 +19850604,24.1,18.0,31.7,15.6,2.7 +19850605,24.7,18.7,33.9,16.7,2.5 +19850606,23.3,17.4,33.9,16.7,4.0 +19850607,21.0,16.2,31.1,16.7,4.0 +19850608,19.3,16.1,30.0,14.4,3.7 +19850609,22.0,15.6,30.6,13.9,2.2 +19850610,23.8,18.5,31.7,13.9,3.3 +19850611,23.0,18.2,31.1,17.2,2.3 +19850612,21.1,15.3,28.9,17.8,5.3 +19850613,14.7,5.1,25.0,8.9,7.3 +19850614,14.4,6.8,22.8,6.7,2.8 +19850615,16.4,10.7,26.1,6.7,2.4 +19850616,21.3,15.9,28.3,16.7,2.8 +19850617,21.4,14.7,29.4,12.8,2.0 +19850618,21.4,16.8,30.6,12.8,3.3 +19850619,19.5,12.2,26.7,13.9,3.2 +19850620,16.0,9.9,23.9,7.8,2.3 +19850621,18.2,10.2,26.1,7.8,2.7 +19850622,19.0,11.7,27.8,9.4,2.8 +19850623,22.6,16.7,28.3,18.3,2.4 +19850624,21.8,17.2,30.0,16.7,3.4 +19850625,22.1,15.7,31.1,15.0,3.4 +19850626,22.1,15.9,31.1,13.9,3.3 +19850627,21.9,13.8,30.6,13.9,3.2 +19850628,19.8,14.2,27.2,15.0,3.1 +19850629,18.6,17.1,25.0,15.0,2.2 +19850630,18.8,17.2,24.4,15.6,2.0 +19850701,17.5,15.5,21.7,15.6,2.5 +19850702,19.3,15.0,25.0,15.0,2.4 +19850703,19.3,13.2,27.8,10.6,2.3 +19850704,19.2,15.6,27.8,10.6,2.7 +19850705,19.9,16.8,26.7,14.4,3.5 +19850706,19.1,17.6,26.7,16.7,2.9 +19850707,20.9,16.8,27.2,16.7,3.5 +19850708,21.4,15.4,28.9,12.2,3.7 +19850709,22.9,17.8,28.9,12.2,3.4 +19850710,22.6,18.3,31.1,16.7,1.8 +19850711,22.6,16.8,31.1,16.1,4.3 +19850712,22.7,18.7,30.6,16.1,2.4 +19850713,22.3,18.9,31.1,16.7,2.1 +19850714,22.7,19.7,30.6,16.7,2.2 +19850715,21.7,18.9,30.6,16.7,2.0 +19850716,22.7,18.9,30.0,16.7,3.5 +19850717,22.9,18.7,28.9,17.8,2.2 +19850718,23.2,18.6,28.3,17.8,1.9 +19850719,23.8,18.6,30.6,17.8,2.1 +19850720,24.4,18.9,31.1,17.8,2.7 +19850721,22.8,19.2,31.7,17.2,2.0 +19850722,21.9,19.3,31.7,17.2,2.4 +19850723,21.2,18.9,28.9,18.3,2.8 +19850724,19.2,17.9,27.2,17.8,1.9 +19850725,20.5,18.9,26.1,17.8,2.3 +19850726,22.6,20.1,28.3,18.9,3.2 +19850727,21.7,20.5,28.3,19.4,1.8 +19850728,19.4,18.7,22.8,17.8,2.0 +19850729,20.5,19.1,26.1,17.8,2.2 +19850730,22.7,20.3,27.8,18.3,2.4 +19850731,22.4,20.3,28.9,18.9,1.9 +19850801,21.0,19.6,27.8,18.9,3.1 +19850802,20.4,16.8,25.0,16.7,3.1 +19850803,18.2,14.2,22.8,13.3,2.4 +19850804,17.7,13.0,23.9,10.0,1.6 +19850805,16.7,12.8,24.4,9.4,1.7 +19850806,19.9,17.1,24.4,9.4,2.0 +19850807,20.5,18.7,25.6,16.7,2.3 +19850808,21.2,19.5,26.7,18.3,1.9 +19850809,22.6,19.6,27.8,18.9,2.4 +19850810,22.5,18.8,29.4,17.2,1.8 +19850811,22.9,19.3,30.6,17.2,2.3 +19850812,22.0,18.9,30.6,17.2,2.0 +19850813,23.2,19.3,30.6,17.2,1.7 +19850814,22.4,18.0,31.1,16.1,2.3 +19850815,22.6,18.1,29.4,16.1,2.9 +19850816,21.2,18.5,28.9,16.7,2.2 +19850817,20.1,19.3,27.8,16.7,2.6 +19850818,21.8,19.1,26.1,18.9,4.1 +19850819,22.9,18.3,30.0,16.1,2.5 +19850820,21.4,18.9,30.0,16.1,1.7 +19850821,21.1,18.4,28.9,17.2,3.5 +19850822,19.5,14.3,27.2,14.4,4.0 +19850823,17.6,14.8,25.0,14.4,2.1 +19850824,18.6,17.1,22.2,14.4,2.5 +19850825,20.5,18.6,25.0,16.1,3.0 +19850826,21.2,18.7,26.1,17.2,3.1 +19850827,20.6,18.4,26.1,17.2,2.6 +19850828,21.2,18.2,27.8,17.2,2.2 +19850829,21.0,18.2,28.3,16.7,2.1 +19850830,21.0,18.4,28.3,16.7,2.6 +19850831,20.1,16.5,28.3,15.0,3.0 +19850901,19.9,16.5,29.4,15.0,2.0 +19850902,21.3,17.4,27.8,15.0,2.1 +19850903,21.1,17.5,29.4,14.4,2.1 +19850904,21.4,18.1,29.4,14.4,1.6 +19850905,22.7,19.2,30.0,16.1,2.1 +19850906,21.6,18.3,30.0,15.6,2.8 +19850907,22.4,18.8,29.4,15.6,2.8 +19850908,21.2,18.2,31.1,16.7,1.9 +19850909,21.9,19.3,31.7,16.7,2.2 +19850910,22.1,18.8,29.4,15.6,2.4 +19850911,21.6,18.2,28.9,15.6,3.9 +19850912,18.7,15.9,27.8,16.1,2.8 +19850913,15.1,11.4,20.0,12.8,2.1 +19850914,11.3,4.3,18.3,2.8,2.0 +19850915,10.9,6.3,20.6,2.2,1.8 +19850916,12.7,7.2,22.2,2.2,1.9 +19850917,13.5,8.7,22.8,3.9,1.5 +19850918,14.2,9.3,23.9,5.0,1.6 +19850919,15.4,10.1,25.6,5.6,1.7 +19850920,14.9,10.3,25.6,5.6,1.5 +19850921,16.3,12.3,25.6,5.6,1.4 +19850922,19.2,14.8,26.1,10.0,1.7 +19850923,17.6,15.1,26.1,11.7,2.3 +19850924,19.6,17.0,25.6,12.2,3.6 +19850925,16.6,11.9,24.4,11.7,3.7 +19850926,16.5,13.9,22.2,11.7,2.4 +19850927,13.8,9.2,23.3,10.6,6.9 +19850928,11.1,5.9,21.7,2.8,2.7 +19850929,11.4,6.7,21.7,2.2,2.1 +19850930,13.7,9.8,23.9,2.2,2.6 +19851001,14.7,12.8,24.4,5.0,1.7 +19851002,17.3,16.0,22.2,10.6,2.2 +19851003,18.9,17.0,24.4,15.0,3.0 +19851004,19.4,15.5,26.7,15.0,2.9 +19851005,14.8,8.3,26.7,10.6,5.8 +19851006,9.5,-0.1,17.8,5.0,4.6 +19851007,8.2,0.2,17.8,0.0,2.2 +19851008,9.5,5.4,18.3,0.0,2.4 +19851009,16.8,11.8,25.0,12.8,1.7 +19851010,15.6,11.7,25.6,8.9,2.4 +19851011,17.4,12.4,26.1,8.9,3.2 +19851012,17.8,13.9,26.1,8.9,2.0 +19851013,19.6,16.1,25.0,12.2,2.3 +19851014,19.2,15.8,26.1,13.9,2.2 +19851015,19.6,16.4,27.2,13.9,3.1 +19851016,18.8,14.0,27.2,13.9,4.1 +19851017,16.4,9.1,23.3,11.7,2.7 +19851018,15.4,12.0,22.8,10.6,2.0 +19851019,17.3,13.3,26.7,10.6,1.7 +19851020,18.1,14.1,27.2,10.6,1.2 +19851021,14.7,13.0,28.3,11.1,3.1 +19851022,12.6,11.8,17.2,10.6,2.4 +19851023,14.2,13.4,17.2,10.6,2.8 +19851024,15.8,14.9,18.3,13.3,2.1 +19851025,17.5,14.1,23.3,13.9,3.1 +19851026,14.9,7.9,23.9,11.1,2.0 +19851027,11.8,5.9,18.9,7.2,1.4 +19851028,15.1,10.1,21.1,7.2,3.2 +19851029,11.4,-1.1,21.1,8.3,2.9 +19851030,8.8,3.5,13.3,6.7,1.8 +19851031,11.4,10.4,12.8,6.7,1.7 +19851101,13.8,12.8,15.0,10.6,2.5 +19851102,15.1,14.0,17.2,12.8,2.3 +19851103,12.4,11.4,17.2,11.1,2.3 +19851104,9.5,8.6,13.9,2.8,5.7 +19851105,4.2,0.1,12.2,2.8,7.5 +19851106,8.1,4.9,13.3,3.3,6.0 +19851107,7.6,4.8,16.7,2.8,2.9 +19851108,7.2,-1.9,16.7,1.1,5.8 +19851109,5.6,-1.6,17.2,-3.9,3.0 +19851110,11.6,5.2,21.1,-3.9,2.3 +19851111,12.2,8.6,21.7,3.9,1.7 +19851112,12.7,9.9,22.8,4.4,1.6 +19851113,17.0,14.4,22.8,7.2,2.3 +19851114,14.2,11.4,22.8,8.3,2.1 +19851115,15.5,12.3,22.2,8.3,2.0 +19851116,12.9,11.8,22.2,9.4,2.9 +19851117,15.7,13.4,23.3,11.1,2.6 +19851118,15.4,13.9,23.9,11.7,2.1 +19851119,17.2,14.9,21.7,11.7,3.5 +19851120,18.3,15.7,22.8,14.4,2.1 +19851121,14.9,13.8,23.3,13.3,2.8 +19851122,10.8,9.6,16.7,7.2,3.4 +19851123,10.3,6.2,19.4,3.3,3.9 +19851124,8.8,6.2,19.4,3.3,2.2 +19851125,12.1,9.9,17.2,4.4,1.7 +19851126,14.3,11.3,22.8,8.9,2.6 +19851127,17.6,15.3,23.9,8.9,4.1 +19851128,17.7,15.1,21.7,15.6,4.9 +19851129,15.2,14.4,18.9,13.3,2.1 +19851130,12.6,12.0,16.7,9.4,2.5 +19851201,10.4,10.1,15.0,8.3,3.1 +19851202,5.3,-1.2,12.2,-1.7,5.9 +19851203,-3.2,-11.9,9.4,-7.8,6.5 +19851204,-0.7,-8.7,6.7,-7.8,1.6 +19851205,3.0,-3.6,7.8,-6.7,2.0 +19851206,0.8,-3.2,7.8,-1.1,6.0 +19851207,-0.3,-5.9,8.3,-7.8,3.6 +19851208,3.6,-2.7,14.4,-7.8,2.3 +19851209,6.2,1.6,16.7,-2.8,1.6 +19851210,5.8,2.2,18.3,-1.7,1.6 +19851211,9.8,7.8,18.9,-1.7,3.4 +19851212,13.8,12.5,16.7,4.4,2.4 +19851213,14.1,12.7,19.4,7.8,4.2 +19851214,-1.6,-6.2,6.1,-5.6,8.7 +19851215,-5.1,-13.2,5.0,-11.7,3.6 +19851216,0.1,-9.7,7.2,-11.7,4.1 +19851217,2.0,-6.2,11.1,-5.0,3.0 +19851218,1.3,-7.7,11.7,-2.2,6.9 +19851219,-3.8,-15.1,3.3,-9.4,5.0 +19851220,-2.9,-10.2,2.8,-9.4,3.7 +19851221,-5.5,-11.8,2.8,-10.0,6.8 +19851222,-5.3,-11.4,7.2,-12.8,2.7 +19851223,3.6,-2.3,13.3,-3.3,3.0 +19851224,2.3,-2.0,13.9,-5.0,3.0 +19851225,-5.8,-11.3,6.1,-12.2,7.8 +19851226,-11.5,-19.0,-2.2,-16.1,4.9 +19851227,-2.9,-12.1,10.6,-16.1,2.6 +19851228,1.2,-9.7,11.1,-2.8,4.4 +19851229,-2.7,-11.2,7.2,-10.0,3.8 +19851230,-1.7,-13.3,7.2,-10.0,4.6 +19851231,1.2,-7.4,6.7,-5.6,3.6 +19860101,3.2,-3.3,9.4,-2.8,6.5 +19860102,-0.2,-5.7,10.0,-7.8,2.8 +19860103,7.4,-1.2,13.3,2.2,4.3 +19860104,2.9,-2.8,14.4,-2.8,3.3 +19860105,0.3,-6.1,7.8,-2.8,6.7 +19860106,-2.4,-13.6,7.2,-10.6,4.6 +19860107,0.8,-10.7,7.2,-10.6,4.9 +19860108,-3.5,-14.3,6.1,-11.7,4.5 +19860109,-3.6,-14.7,10.6,-13.3,1.6 +19860110,3.7,-9.3,15.0,-0.6,3.3 +19860111,4.3,-10.9,11.1,-2.2,5.7 +19860112,2.1,-9.0,15.6,-7.2,2.5 +19860113,2.1,-9.1,16.1,-7.2,7.4 +19860114,-2.6,-11.6,10.6,-10.6,4.0 +19860115,2.1,-7.2,10.6,-10.6,5.3 +19860116,1.8,-6.3,15.6,-7.8,2.3 +19860117,7.7,3.2,16.1,2.2,3.2 +19860118,9.0,6.9,16.1,1.7,1.7 +19860119,8.6,6.4,16.7,2.8,5.0 +19860120,1.6,-3.7,11.1,-1.7,8.0 +19860121,4.3,-3.9,17.8,-4.4,4.0 +19860122,6.3,0.8,18.9,-4.4,2.7 +19860123,4.0,-2.6,8.3,-2.2,7.3 +19860124,-0.6,-7.4,8.9,-7.2,2.7 +19860125,0.8,-5.7,6.1,-7.2,2.7 +19860126,0.9,-0.6,7.2,-2.2,4.7 +19860127,-10.4,-15.8,2.2,-15.0,8.2 +19860128,-14.3,-20.8,-6.1,-19.0,7.2 +19860129,-3.2,-8.3,10.0,-10.0,2.0 +19860130,0.9,-6.3,10.0,-9.4,6.5 +19860131,2.1,-6.0,13.9,-5.0,2.7 +19860201,2.4,-5.3,14.4,-6.7,2.1 +19860202,6.2,-0.4,18.3,-6.7,2.8 +19860203,10.6,6.7,20.0,-2.8,2.2 +19860204,13.7,6.8,20.0,5.0,4.3 +19860205,14.6,11.3,20.0,7.8,4.0 +19860206,8.4,8.1,19.4,4.4,2.4 +19860207,9.1,4.5,13.9,1.1,3.5 +19860208,6.0,0.0,14.4,0.0,2.9 +19860209,4.6,0.9,14.4,-2.8,1.5 +19860210,6.5,5.1,15.0,-2.8,2.8 +19860211,2.4,0.7,7.8,-3.3,6.5 +19860212,-5.1,-11.3,5.0,-8.9,7.5 +19860213,-6.9,-14.6,0.6,-12.2,6.3 +19860214,-3.2,-13.4,0.6,-12.2,6.0 +19860215,-1.0,-4.4,2.2,-8.9,6.6 +19860216,1.8,-6.2,15.6,-6.7,3.6 +19860217,7.9,-0.5,15.6,3.9,3.5 +19860218,10.2,7.6,18.3,3.3,2.8 +19860219,10.3,7.2,20.0,4.4,2.1 +19860220,12.6,7.9,21.7,4.4,2.8 +19860221,12.9,7.4,25.0,4.4,2.6 +19860222,8.0,5.9,12.8,3.3,4.4 +19860223,5.5,-1.9,12.2,-0.6,6.3 +19860224,2.2,-3.9,12.2,-3.3,2.1 +19860225,1.1,-5.1,7.2,-3.3,8.8 +19860226,1.6,-5.9,11.7,-3.9,3.9 +19860227,6.6,1.6,11.7,-3.9,4.5 +19860228,-0.5,-4.1,8.3,-2.8,5.9 +19860301,-3.0,-10.9,1.7,-7.2,8.1 +19860302,-0.5,-11.8,8.9,-7.2,5.5 +19860303,5.3,-2.9,14.4,-6.1,3.8 +19860304,2.5,-2.5,14.4,-3.3,4.4 +19860305,3.2,-4.9,12.2,-3.3,5.6 +19860306,4.4,-5.0,12.2,-1.7,5.1 +19860307,2.7,-4.6,10.0,-3.9,4.5 +19860308,-0.3,-11.4,10.0,-6.1,5.3 +19860309,6.0,-3.7,17.8,-6.1,5.0 +19860310,11.1,8.7,17.8,5.6,3.2 +19860311,16.6,9.2,23.9,5.6,3.7 +19860312,11.4,3.5,23.9,7.8,4.1 +19860313,10.2,8.3,13.9,7.8,3.1 +19860314,10.7,9.8,14.4,7.8,3.0 +19860315,8.6,6.7,17.8,3.3,2.2 +19860316,9.1,3.8,17.8,1.7,2.9 +19860317,8.4,-0.1,17.8,-1.1,2.2 +19860318,9.5,-0.3,18.9,-1.1,3.4 +19860319,16.2,11.7,21.1,14.4,5.1 +19860320,7.2,1.3,21.1,3.9,7.0 +19860321,-0.8,-8.4,11.1,-5.0,7.9 +19860322,-0.2,-15.6,9.4,-6.7,6.0 +19860323,4.3,-9.9,17.2,-6.7,2.9 +19860324,10.2,-4.0,19.4,0.0,3.3 +19860325,9.6,-1.6,20.0,-1.1,3.0 +19860326,12.2,4.1,20.0,-1.1,3.2 +19860327,11.7,4.0,20.6,4.4,5.0 +19860328,10.6,-3.6,20.6,-0.6,3.1 +19860329,11.1,-1.4,22.8,-1.1,1.9 +19860330,13.6,1.4,24.4,-1.1,2.5 +19860331,15.1,2.4,26.1,1.7,2.0 +19860401,15.3,2.4,26.1,2.8,1.7 +19860402,17.3,3.9,26.1,3.3,2.6 +19860403,15.8,6.9,24.4,5.6,2.8 +19860404,17.7,7.3,26.1,5.6,2.9 +19860405,17.4,6.7,26.1,7.2,3.3 +19860406,17.7,7.3,26.7,7.2,2.7 +19860407,18.4,3.4,25.6,8.3,3.9 +19860408,14.1,5.2,25.6,8.9,1.9 +19860409,9.8,-1.8,20.0,6.1,8.3 +19860410,7.5,-5.9,13.3,3.9,9.4 +19860411,10.9,-5.9,18.3,1.1,4.8 +19860412,12.6,-2.4,21.7,0.6,3.0 +19860413,12.2,0.2,22.8,0.6,3.3 +19860414,14.6,4.8,23.3,0.6,2.5 +19860415,17.7,5.3,23.9,13.9,4.7 +19860416,7.8,-1.5,22.8,3.3,7.0 +19860417,3.6,0.2,11.7,0.0,7.2 +19860418,10.7,2.8,21.1,0.0,5.8 +19860419,13.3,4.5,23.9,1.7,2.4 +19860420,14.1,7.4,24.4,1.7,5.2 +19860421,12.4,8.5,17.8,6.7,4.9 +19860422,6.8,0.0,16.1,3.3,6.9 +19860423,4.3,-9.2,12.2,-1.7,8.2 +19860424,10.6,-7.6,22.8,-1.7,4.2 +19860425,14.8,-0.6,27.2,-0.6,3.1 +19860426,19.2,7.6,29.4,2.8,2.9 +19860427,20.1,9.2,29.4,8.3,2.2 +19860428,20.2,8.6,31.1,8.3,3.2 +19860429,16.3,7.6,30.0,10.6,5.8 +19860430,16.9,4.4,27.8,6.1,3.1 +19860501,19.1,7.1,27.8,6.1,3.1 +19860502,16.7,4.5,27.8,9.4,6.9 +19860503,12.1,-2.4,21.1,6.1,7.7 +19860504,9.9,-3.2,20.6,-1.7,3.1 +19860505,14.3,3.2,25.0,-1.7,3.1 +19860506,17.5,11.4,27.2,1.7,3.0 +19860507,18.4,14.2,27.2,8.3,2.7 +19860508,18.9,13.7,25.6,10.0,4.6 +19860509,16.9,10.9,25.6,7.2,2.8 +19860510,14.1,9.6,23.9,7.2,3.1 +19860511,16.2,11.2,25.0,7.8,2.8 +19860512,18.1,13.6,25.6,7.8,3.5 +19860513,16.3,14.7,22.8,13.3,2.1 +19860514,16.4,14.6,22.8,13.3,3.3 +19860515,17.7,13.7,23.3,13.3,3.9 +19860516,17.7,14.9,24.4,13.9,2.5 +19860517,18.7,14.6,27.2,13.3,3.0 +19860518,20.1,15.1,27.2,13.3,3.5 +19860519,17.6,15.6,27.2,13.9,3.1 +19860520,15.4,13.4,20.6,12.8,3.7 +19860521,13.1,7.8,20.6,7.8,5.9 +19860522,12.9,4.5,20.0,6.1,5.7 +19860523,11.6,8.2,20.6,5.6,2.0 +19860524,16.6,13.8,25.0,5.6,2.2 +19860525,18.9,15.4,25.6,11.1,2.3 +19860526,17.6,16.3,25.6,14.4,2.1 +19860527,17.9,16.6,23.3,15.6,3.0 +19860528,19.4,17.1,23.9,15.6,2.4 +19860529,20.7,17.7,26.1,15.6,3.1 +19860530,21.1,16.5,28.3,14.4,2.5 +19860531,22.0,15.2,28.3,14.4,4.2 +19860601,20.3,15.2,27.8,13.3,2.6 +19860602,21.2,16.4,28.3,13.3,2.9 +19860603,18.1,12.8,28.3,15.6,3.3 +19860604,17.2,14.5,23.3,14.4,2.7 +19860605,20.6,17.1,26.7,14.4,2.1 +19860606,21.6,16.8,29.4,13.9,1.6 +19860607,21.9,19.3,29.4,13.9,2.9 +19860608,21.7,19.4,29.4,17.2,2.0 +19860609,21.4,19.3,27.8,17.2,1.7 +19860610,21.6,19.3,27.8,17.2,2.3 +19860611,23.1,20.1,27.8,17.8,2.3 +19860612,24.0,18.0,30.6,17.2,2.4 +19860613,21.7,14.8,30.6,16.1,4.0 +19860614,20.8,15.3,27.8,14.4,2.2 +19860615,21.7,16.2,28.9,14.4,2.0 +19860616,22.6,17.2,29.4,14.4,2.1 +19860617,22.6,16.7,30.0,13.9,3.8 +19860618,21.9,13.5,28.9,13.9,3.7 +19860619,19.8,13.8,28.3,11.1,2.2 +19860620,22.1,15.9,29.4,11.1,3.9 +19860621,22.4,15.8,30.0,13.9,2.2 +19860622,22.6,15.2,30.6,14.4,2.7 +19860623,23.1,16.2,31.7,14.4,2.4 +19860624,23.4,17.9,32.2,14.4,2.6 +19860625,21.8,13.2,29.4,12.8,2.8 +19860626,21.4,13.7,31.1,11.1,1.9 +19860627,22.6,15.8,31.1,11.1,2.2 +19860628,24.6,18.7,32.2,13.9,2.5 +19860629,23.5,18.6,32.2,17.2,2.7 +19860630,23.0,19.5,30.0,17.2,2.9 +19860701,23.4,19.8,30.6,17.8,2.1 +19860702,22.6,19.2,30.0,18.9,2.4 +19860703,20.2,14.4,28.9,15.0,4.6 +19860704,19.3,13.4,27.8,10.6,2.5 +19860705,22.1,15.9,29.4,10.6,1.7 +19860706,22.4,15.3,31.1,13.3,2.3 +19860707,24.2,16.7,33.3,13.3,1.7 +19860708,24.8,18.9,33.3,15.6,2.4 +19860709,25.7,18.1,33.3,17.8,2.9 +19860710,23.6,18.6,33.9,17.8,3.4 +19860711,23.0,18.6,32.2,17.2,2.2 +19860712,24.7,17.8,32.8,17.2,2.7 +19860713,23.7,18.1,32.2,17.2,3.1 +19860714,24.8,17.8,31.7,17.2,4.5 +19860715,23.2,17.6,31.7,17.8,3.3 +19860716,23.8,17.7,31.7,16.7,2.9 +19860717,25.9,17.7,34.4,16.7,2.7 +19860718,26.4,18.3,34.4,17.8,2.9 +19860719,26.9,17.6,34.4,18.3,4.3 +19860720,26.3,17.1,34.4,18.9,3.7 +19860721,26.0,17.3,33.9,18.3,3.0 +19860722,25.1,18.7,34.4,18.3,2.8 +19860723,24.1,19.6,33.3,17.8,2.3 +19860724,23.3,20.1,33.3,17.8,2.4 +19860725,23.9,20.0,31.1,18.3,2.1 +19860726,24.6,18.6,33.9,18.3,2.8 +19860727,23.2,19.5,33.9,18.3,2.2 +19860728,24.1,19.4,32.2,18.9,3.4 +19860729,25.4,18.5,32.2,17.8,3.3 +19860730,25.0,13.7,32.8,17.8,4.4 +19860731,21.4,12.0,31.1,11.7,2.4 +19860801,23.1,15.4,31.1,11.7,2.7 +19860802,22.7,17.1,31.7,15.6,2.7 +19860803,22.8,17.4,31.7,15.6,3.5 +19860804,23.2,16.6,30.0,16.7,2.7 +19860805,21.3,18.8,29.4,16.7,2.0 +19860806,21.1,19.2,28.9,17.8,2.4 +19860807,22.6,18.7,30.0,17.8,2.7 +19860808,23.4,17.8,30.6,17.8,2.8 +19860809,23.0,17.9,31.1,17.8,3.0 +19860810,21.9,18.3,30.6,17.8,2.2 +19860811,22.0,18.7,30.6,17.8,2.8 +19860812,19.7,18.6,25.6,18.3,2.0 +19860813,20.1,18.1,23.9,17.8,1.9 +19860814,21.2,18.6,25.6,17.8,2.1 +19860815,22.1,18.8,29.4,18.3,2.0 +19860816,22.4,20.1,29.4,18.3,2.0 +19860817,20.7,19.5,29.4,18.9,2.8 +19860818,21.0,19.6,25.0,19.4,2.9 +19860819,20.3,18.7,25.0,18.3,2.2 +19860820,21.2,18.7,25.0,18.3,2.1 +19860821,21.7,18.7,27.2,17.2,1.8 +19860822,22.4,19.5,29.4,17.2,2.1 +19860823,23.0,20.6,29.4,18.3,1.8 +19860824,23.1,18.6,29.4,18.9,3.9 +19860825,19.2,15.3,27.8,12.8,2.2 +19860826,20.8,17.9,28.9,12.8,2.2 +19860827,22.7,19.4,28.9,15.6,2.5 +19860828,19.0,16.0,28.9,16.7,3.9 +19860829,12.9,7.4,20.0,5.6,2.7 +19860830,12.2,8.0,19.4,5.6,1.5 +19860831,14.3,12.8,17.2,7.2,1.5 +19860901,15.8,14.9,17.8,12.2,2.0 +19860902,16.7,16.2,18.9,15.0,1.7 +19860903,18.5,17.1,22.8,15.6,2.0 +19860904,19.2,18.4,23.3,16.7,2.3 +19860905,21.4,18.8,27.2,18.3,2.2 +19860906,21.2,15.6,27.2,17.8,3.7 +19860907,17.7,11.3,26.1,10.0,3.4 +19860908,16.9,13.8,26.1,10.0,2.9 +19860909,16.6,13.9,23.3,12.2,3.1 +19860910,18.4,15.4,24.4,14.4,3.1 +19860911,19.8,17.8,24.4,14.4,3.0 +19860912,22.0,18.0,26.7,17.2,4.6 +19860913,18.9,12.9,26.7,12.8,3.5 +19860914,17.1,12.5,25.6,10.6,1.7 +19860915,16.1,12.2,24.4,9.4,1.5 +19860916,18.9,15.1,25.6,9.4,2.6 +19860917,16.5,10.7,26.1,14.4,2.6 +19860918,16.0,12.6,20.0,13.3,3.4 +19860919,18.4,15.9,26.7,13.9,2.7 +19860920,19.7,16.8,27.2,14.4,2.4 +19860921,20.9,17.2,28.9,14.4,4.4 +19860922,18.8,15.3,28.3,12.8,1.5 +19860923,20.0,17.3,28.3,12.8,1.6 +19860924,20.9,18.2,27.2,15.0,1.5 +19860925,21.6,18.3,28.9,16.7,1.9 +19860926,21.9,18.3,28.3,16.7,2.0 +19860927,21.6,17.2,29.4,14.4,2.8 +19860928,20.8,16.9,29.4,14.4,2.5 +19860929,20.0,18.3,30.0,14.4,2.1 +19860930,21.2,18.4,28.9,16.1,2.7 +19861001,21.2,18.4,28.9,16.1,1.6 +19861002,21.2,17.9,28.9,16.1,2.0 +19861003,21.4,18.2,29.4,16.1,1.1 +19861004,20.9,16.6,30.0,13.3,2.2 +19861005,22.2,16.6,30.0,13.3,2.7 +19861006,15.8,9.1,29.4,11.1,6.1 +19861007,13.8,7.4,20.0,7.2,3.2 +19861008,14.0,10.1,22.8,7.2,2.2 +19861009,16.2,15.1,23.3,8.3,2.1 +19861010,15.4,13.9,17.8,13.3,2.1 +19861011,10.9,10.0,16.1,10.0,2.0 +19861012,11.7,11.2,14.4,10.0,3.0 +19861013,15.2,14.8,19.4,10.6,2.2 +19861014,16.2,13.6,21.1,12.2,3.8 +19861015,9.8,4.4,21.1,5.0,5.2 +19861016,9.8,2.9,15.0,5.0,4.5 +19861017,8.5,2.9,17.8,1.1,3.8 +19861018,8.7,3.0,18.3,0.6,1.6 +19861019,9.1,4.1,18.9,0.0,1.3 +19861020,8.6,3.1,20.0,0.0,2.3 +19861021,10.0,2.6,20.6,0.0,3.2 +19861022,10.3,4.2,21.1,0.6,1.6 +19861023,11.4,5.2,21.7,1.7,1.3 +19861024,14.3,8.3,21.7,2.8,1.7 +19861025,12.4,11.1,21.1,8.9,2.6 +19861026,14.1,12.2,20.0,11.1,2.3 +19861027,12.2,8.6,20.6,6.1,3.2 +19861028,12.4,6.2,19.4,6.1,4.0 +19861029,8.6,6.0,19.4,2.8,1.7 +19861030,12.0,7.1,21.1,2.8,3.0 +19861031,10.8,6.9,21.7,4.4,1.8 +19861101,12.1,10.7,17.8,4.4,1.4 +19861102,15.6,12.3,20.0,13.9,4.0 +19861103,12.5,9.4,20.0,7.2,2.6 +19861104,13.3,10.8,19.4,7.2,1.6 +19861105,14.2,12.8,19.4,8.9,3.7 +19861106,15.4,13.2,20.6,13.3,2.6 +19861107,15.1,14.2,21.1,13.3,2.3 +19861108,16.9,15.6,22.2,12.8,4.2 +19861109,18.3,14.2,23.9,12.8,5.8 +19861110,11.6,4.9,14.4,9.4,4.0 +19861111,9.1,6.9,14.4,6.7,3.7 +19861112,10.1,9.4,12.8,6.7,2.7 +19861113,3.8,0.2,10.6,-2.2,7.3 +19861114,-3.6,-10.5,6.7,-8.9,3.9 +19861115,1.6,-1.8,7.8,-8.9,2.3 +19861116,8.4,6.1,16.1,-1.7,2.3 +19861117,10.9,8.8,20.0,5.0,1.6 +19861118,10.2,8.8,20.6,5.6,2.3 +19861119,9.1,1.2,18.3,3.9,6.1 +19861120,5.0,2.4,12.8,3.3,3.6 +19861121,5.2,-0.3,9.4,1.1,7.4 +19861122,2.4,-1.7,11.1,-4.4,3.2 +19861123,6.6,4.3,12.8,-4.4,2.9 +19861124,12.0,10.9,17.2,2.8,2.4 +19861125,12.2,11.4,18.3,8.9,2.8 +19861126,12.2,10.1,20.0,8.9,4.9 +19861127,10.8,6.6,20.0,6.7,4.7 +19861128,8.9,6.9,13.9,6.7,2.0 +19861129,10.8,6.7,20.0,5.0,2.7 +19861130,8.9,3.6,20.0,5.0,2.1 +19861201,4.2,1.9,11.7,2.8,2.2 +19861202,4.6,3.3,8.3,2.8,2.6 +19861203,6.0,2.0,8.3,2.8,5.5 +19861204,2.9,-5.9,8.9,-1.1,7.0 +19861205,1.8,-8.4,8.9,-2.8,5.6 +19861206,-0.3,-7.5,11.1,-8.3,1.9 +19861207,-0.2,-6.5,11.7,-8.9,1.2 +19861208,6.3,0.7,12.8,3.3,1.6 +19861209,12.7,11.5,17.2,3.9,4.3 +19861210,11.1,10.2,17.2,6.7,3.5 +19861211,6.8,5.9,11.7,5.6,3.3 +19861212,6.4,3.9,10.6,1.7,4.8 +19861213,-0.4,-7.8,3.3,-3.9,7.5 +19861214,-2.6,-9.3,5.6,-8.9,2.7 +19861215,4.1,-6.2,14.4,-8.9,2.2 +19861216,5.6,-1.4,15.6,-1.7,1.7 +19861217,6.1,3.7,16.1,-2.2,2.0 +19861218,7.2,5.2,11.7,2.2,4.2 +19861219,2.3,-4.6,11.7,-3.3,4.6 +19861220,4.3,-4.3,13.9,-3.3,4.1 +19861221,3.0,-6.8,13.9,-3.9,4.5 +19861222,-0.4,-4.6,11.7,-5.0,2.2 +19861223,-1.8,-3.7,6.1,-5.0,1.3 +19861224,6.3,5.8,9.4,-5.0,1.9 +19861225,6.9,5.3,9.4,5.0,4.2 +19861226,4.7,0.3,12.2,1.7,4.3 +19861227,1.6,-0.8,12.8,-3.3,2.0 +19861228,3.6,-0.1,10.6,-3.3,3.4 +19861229,0.9,-1.3,10.6,-3.9,2.1 +19861230,1.7,-1.1,7.8,-3.9,4.1 +19861231,0.1,-4.8,5.6,-5.0,5.4 +19870101,1.4,-1.7,5.6,-5.0,3.1 +19870102,0.8,-2.9,3.3,-1.1,5.8 +19870103,-0.1,-5.9,7.2,-3.9,5.8 +19870104,-1.1,-4.4,7.8,-5.0,1.7 +19870105,1.9,-5.9,12.8,-5.0,3.2 +19870106,0.6,-7.5,13.3,-7.8,2.4 +19870107,4.4,-3.5,11.1,-7.8,4.8 +19870108,4.6,-1.6,11.7,-3.9,6.3 +19870109,2.0,-3.6,11.7,-5.6,3.3 +19870110,6.1,2.8,12.2,3.9,4.3 +19870111,0.1,-5.1,8.3,-2.8,6.6 +19870112,1.5,-7.7,11.7,-3.9,7.4 +19870113,6.7,-4.7,16.1,-3.9,6.5 +19870114,4.4,-2.8,16.7,-2.8,2.8 +19870115,9.6,4.9,16.1,-2.8,3.4 +19870116,8.0,6.4,16.7,3.3,3.1 +19870117,5.2,4.3,8.9,3.3,1.9 +19870118,3.0,2.6,6.1,1.7,3.8 +19870119,7.4,3.4,12.2,1.7,4.7 +19870120,0.6,-4.2,12.8,-2.2,6.6 +19870121,-0.1,-5.1,5.0,-2.2,5.4 +19870122,-0.3,-2.8,3.3,-2.2,3.8 +19870123,-4.8,-12.7,1.1,-8.9,5.9 +19870124,-4.4,-11.4,8.3,-13.9,2.4 +19870125,2.9,0.2,8.9,0.0,3.7 +19870126,-2.7,-4.7,4.4,-6.7,5.4 +19870127,-8.2,-12.4,0.6,-14.4,5.2 +19870128,-2.7,-5.6,2.2,-5.6,4.6 +19870129,-2.6,-6.0,4.4,-7.8,3.0 +19870130,5.8,-0.3,12.2,1.7,3.9 +19870131,2.2,-5.5,12.2,-1.7,9.7 +19870201,2.2,-5.4,10.0,-2.8,3.3 +19870202,3.7,0.4,10.6,-1.1,2.3 +19870203,6.3,3.8,10.6,-1.1,5.7 +19870204,6.0,-0.7,13.3,0.0,5.1 +19870205,4.5,-5.8,13.9,-1.1,3.2 +19870206,3.6,-6.7,12.2,-4.4,2.0 +19870207,7.8,-3.3,13.9,4.4,5.4 +19870208,4.5,-5.1,16.7,-5.6,4.3 +19870209,-3.6,-11.6,2.8,-6.7,12.3 +19870210,-0.9,-15.2,11.7,-10.6,2.7 +19870211,3.3,-11.9,15.0,-10.6,1.9 +19870212,9.8,-3.6,17.2,-6.7,5.1 +19870213,8.8,-3.6,17.8,1.1,6.3 +19870214,3.8,-2.6,16.7,-2.2,2.0 +19870215,5.7,4.0,8.9,-2.2,2.7 +19870216,0.7,-0.6,6.7,-1.1,2.5 +19870217,-0.3,-1.6,2.8,-1.7,2.5 +19870218,0.4,-0.9,3.3,-1.7,2.7 +19870219,1.4,-0.8,3.3,-1.1,1.9 +19870220,1.7,-3.2,7.2,-2.8,1.7 +19870221,3.4,-0.4,10.0,-2.8,2.2 +19870222,2.1,0.2,10.0,0.6,3.2 +19870223,3.6,-2.1,8.3,0.6,7.8 +19870224,1.2,-4.2,8.9,-5.0,2.3 +19870225,5.5,-2.1,11.1,-5.0,2.5 +19870226,4.3,-1.1,11.7,1.1,2.3 +19870227,0.9,-0.2,6.1,0.0,3.6 +19870228,2.5,1.1,4.4,0.0,3.4 +19870301,8.1,4.4,12.8,1.7,5.2 +19870302,6.6,-2.1,13.3,2.8,7.9 +19870303,5.7,-4.3,16.7,-3.9,3.9 +19870304,6.5,-9.4,16.7,-3.9,6.8 +19870305,3.9,-6.6,13.3,-3.3,2.2 +19870306,5.3,-3.0,16.1,-3.3,2.1 +19870307,7.6,-1.7,18.9,-3.3,2.3 +19870308,9.6,-0.1,18.9,5.6,1.5 +19870309,9.9,8.9,13.3,5.6,2.9 +19870310,4.4,1.4,11.1,1.7,7.5 +19870311,0.4,-7.4,6.7,-2.2,3.5 +19870312,1.2,-4.4,6.1,-2.2,4.3 +19870313,2.3,-4.9,9.4,-2.8,5.5 +19870314,3.7,-4.8,13.9,-3.9,2.7 +19870315,7.6,-2.8,18.3,-3.9,3.1 +19870316,9.4,1.1,18.3,-2.2,2.1 +19870317,5.5,1.7,15.6,2.8,3.9 +19870318,5.8,-0.7,11.7,1.7,3.2 +19870319,5.4,3.6,11.1,1.7,2.8 +19870320,10.9,2.9,17.8,3.3,4.1 +19870321,9.9,-3.4,18.3,2.8,4.4 +19870322,9.9,-6.4,20.0,0.6,3.8 +19870323,9.7,-1.3,20.6,-0.6,2.7 +19870324,9.2,0.1,18.9,-0.6,3.4 +19870325,9.4,8.3,14.4,3.9,3.4 +19870326,12.5,5.7,20.6,6.1,2.9 +19870327,10.4,6.6,20.6,3.3,2.2 +19870328,14.2,8.0,22.8,3.3,3.1 +19870329,11.5,8.1,22.8,6.1,1.9 +19870330,13.9,10.3,19.4,6.1,3.9 +19870331,4.2,0.4,20.0,-0.6,7.1 +19870401,1.3,-7.8,12.8,-5.6,4.8 +19870402,6.5,-2.2,17.2,-5.6,3.5 +19870403,0.0,-1.3,2.2,-2.2,6.3 +19870404,-1.8,-6.1,0.6,-3.3,9.1 +19870405,1.3,-4.3,5.6,-3.3,7.4 +19870406,4.2,-0.9,9.4,0.6,5.8 +19870407,6.1,-0.4,12.2,1.1,5.8 +19870408,9.6,3.0,16.1,1.1,6.0 +19870409,9.7,-1.4,18.9,-1.1,3.3 +19870410,9.9,-2.2,21.1,-1.7,1.3 +19870411,13.6,-0.4,22.2,-1.7,2.6 +19870412,13.2,1.6,23.3,2.8,3.0 +19870413,15.8,9.9,23.3,2.8,3.2 +19870414,13.7,9.4,24.4,9.4,3.5 +19870415,15.3,10.2,20.0,10.6,5.3 +19870416,10.3,7.2,20.6,7.8,4.6 +19870417,9.1,6.8,13.9,7.2,4.2 +19870418,12.0,7.4,18.3,7.2,5.1 +19870419,16.2,7.6,23.3,7.8,3.8 +19870420,17.3,8.6,26.1,7.8,2.4 +19870421,19.0,9.1,27.2,7.8,2.2 +19870422,19.3,11.9,27.8,8.9,2.1 +19870423,19.0,12.9,27.2,10.0,3.2 +19870424,12.7,9.3,21.1,8.3,5.7 +19870425,10.1,6.7,15.0,7.2,8.7 +19870426,13.2,6.2,21.1,6.7,4.8 +19870427,13.2,3.4,21.7,4.4,2.8 +19870428,14.8,1.1,21.1,4.4,5.7 +19870429,12.6,-1.7,25.6,0.6,3.2 +19870430,22.2,5.3,28.3,15.6,4.7 +19870501,17.8,11.2,29.4,10.0,2.7 +19870502,16.3,12.1,27.8,9.4,2.3 +19870503,17.1,12.6,26.1,9.4,2.3 +19870504,18.3,13.7,24.4,10.6,4.3 +19870505,11.9,9.0,25.0,8.3,3.0 +19870506,13.6,8.6,23.3,6.7,2.0 +19870507,17.7,9.2,25.0,6.7,2.8 +19870508,17.1,4.0,25.6,9.4,4.7 +19870509,13.9,4.0,23.3,3.3,2.2 +19870510,16.8,7.8,26.1,3.3,2.0 +19870511,17.3,8.9,26.7,6.1,2.7 +19870512,18.4,11.6,26.1,7.8,2.8 +19870513,18.3,14.2,26.1,10.6,2.0 +19870514,16.3,14.8,24.4,12.2,2.7 +19870515,18.6,15.0,26.7,13.9,2.2 +19870516,18.9,15.5,27.2,13.9,1.7 +19870517,20.9,15.5,27.8,14.4,1.9 +19870518,20.1,15.5,28.3,13.3,2.2 +19870519,20.8,16.5,28.3,13.3,2.5 +19870520,20.7,18.2,27.2,15.0,2.3 +19870521,19.8,17.5,26.7,15.6,3.3 +19870522,19.7,16.1,24.4,16.7,2.4 +19870523,21.3,17.7,27.2,16.7,2.1 +19870524,20.4,17.7,27.8,16.7,2.1 +19870525,19.9,16.9,27.8,15.0,2.0 +19870526,20.7,17.4,27.8,14.4,2.2 +19870527,20.5,17.8,27.8,14.4,1.9 +19870528,20.5,17.3,28.3,16.1,1.8 +19870529,20.1,18.2,28.9,16.1,2.7 +19870530,19.8,16.9,27.8,15.6,2.3 +19870531,20.6,17.4,28.3,15.0,1.5 +19870601,19.8,18.0,28.3,15.0,2.1 +19870602,20.9,18.2,28.3,16.7,3.2 +19870603,22.6,18.8,28.9,16.7,2.2 +19870604,21.4,17.7,30.0,16.7,4.4 +19870605,18.8,13.4,26.1,11.1,4.2 +19870606,18.7,10.7,27.2,10.0,2.9 +19870607,19.3,11.9,28.3,9.4,1.9 +19870608,20.7,14.7,28.9,9.4,2.5 +19870609,20.8,15.9,28.9,11.7,2.3 +19870610,20.3,16.9,29.4,11.7,2.7 +19870611,19.4,17.3,28.9,13.3,2.5 +19870612,22.5,18.2,29.4,15.6,2.0 +19870613,21.6,19.7,30.6,15.6,2.8 +19870614,22.0,18.1,28.9,8.9,2.1 +19870615,22.4,18.2,30.0,16.1,2.2 +19870616,22.1,19.3,28.3,16.1,2.1 +19870617,21.4,18.7,29.4,18.3,2.5 +19870618,22.0,20.3,29.4,17.8,2.2 +19870619,20.8,18.8,28.9,17.8,2.0 +19870620,21.6,19.4,27.2,17.8,3.2 +19870621,22.4,19.8,28.3,18.3,2.5 +19870622,22.5,19.4,30.0,17.8,2.4 +19870623,23.5,20.6,30.0,17.8,3.1 +19870624,23.7,19.2,30.6,17.8,3.3 +19870625,20.9,19.5,30.6,17.2,2.2 +19870626,21.3,19.4,27.2,17.2,2.5 +19870627,20.7,15.3,26.7,15.6,4.1 +19870628,18.1,10.1,26.1,8.9,3.0 +19870629,19.4,13.1,27.8,8.9,2.2 +19870630,21.1,15.9,28.9,10.6,1.9 +19870701,21.2,18.5,28.3,13.3,2.2 +19870702,22.3,19.7,28.3,16.1,4.5 +19870703,23.3,19.7,27.8,18.9,4.0 +19870704,22.4,20.2,28.3,19.4,2.8 +19870705,22.1,19.6,29.4,18.3,2.3 +19870706,22.7,19.1,30.0,16.7,2.5 +19870707,24.2,20.0,31.1,16.7,3.5 +19870708,22.7,19.4,31.7,17.8,2.9 +19870709,23.8,19.9,30.6,17.8,2.5 +19870710,23.5,20.4,31.1,18.3,2.4 +19870711,24.0,20.2,31.1,19.4,4.0 +19870712,22.6,18.1,30.0,17.8,4.9 +19870713,22.9,17.8,31.1,16.1,2.3 +19870714,22.7,18.1,31.1,16.1,4.9 +19870715,20.7,15.3,27.8,16.1,3.4 +19870716,19.7,13.7,27.2,12.2,3.5 +19870717,20.6,15.1,27.2,12.2,2.2 +19870718,21.8,16.6,28.9,13.9,2.0 +19870719,22.7,17.0,30.6,14.4,2.7 +19870720,23.4,17.6,31.1,14.4,2.2 +19870721,23.5,18.0,31.7,15.6,1.1 +19870722,24.2,16.7,32.2,15.6,2.6 +19870723,24.3,17.0,32.8,15.6,1.9 +19870724,25.2,17.9,33.3,15.6,1.5 +19870725,25.1,18.2,33.9,17.2,2.3 +19870726,25.0,18.2,33.3,17.2,2.9 +19870727,24.8,18.9,33.3,17.8,2.6 +19870728,24.9,17.9,32.2,17.8,4.3 +19870729,23.3,16.7,31.7,16.1,2.6 +19870730,23.7,19.1,31.1,16.1,2.4 +19870731,23.8,18.1,32.2,17.8,2.8 +19870801,24.6,19.0,32.8,17.2,2.3 +19870802,23.7,20.7,33.3,17.2,2.3 +19870803,25.1,20.8,33.9,19.4,2.8 +19870804,25.2,20.6,33.9,20.0,2.9 +19870805,24.6,19.7,32.8,19.4,2.5 +19870806,22.4,20.2,32.2,18.9,2.3 +19870807,22.7,19.9,30.0,18.9,2.7 +19870808,23.8,21.3,30.6,18.9,2.2 +19870809,25.3,20.3,32.2,20.0,2.5 +19870810,24.1,20.4,32.8,19.4,3.1 +19870811,22.2,18.4,30.6,17.8,3.2 +19870812,21.6,18.8,26.1,17.8,2.0 +19870813,20.3,17.3,25.6,15.0,1.7 +19870814,19.5,14.9,26.1,13.3,2.1 +19870815,21.3,16.2,27.8,13.3,2.1 +19870816,22.1,17.8,29.4,16.1,2.1 +19870817,21.8,18.6,30.6,16.1,2.2 +19870818,22.7,18.7,30.6,17.2,3.2 +19870819,23.8,19.1,31.1,18.3,3.1 +19870820,22.9,13.5,32.2,13.9,3.3 +19870821,22.1,14.2,32.2,13.3,2.2 +19870822,24.2,16.3,33.3,13.3,2.8 +19870823,24.3,17.1,33.9,15.6,3.5 +19870824,21.6,13.5,31.7,14.4,3.0 +19870825,22.2,17.3,27.8,14.4,3.0 +19870826,22.8,18.7,31.1,17.2,2.1 +19870827,23.7,19.6,31.7,17.2,2.4 +19870828,23.8,19.0,32.2,16.7,2.0 +19870829,22.2,18.7,32.2,16.7,4.0 +19870830,20.4,15.2,28.3,15.6,2.9 +19870831,19.7,17.8,26.1,15.6,2.2 +19870901,19.3,13.1,26.7,13.3,3.2 +19870902,18.6,11.2,27.8,10.6,2.5 +19870903,20.2,10.5,28.3,10.6,3.1 +19870904,20.7,16.2,28.9,11.7,2.7 +19870905,16.9,14.2,23.9,14.4,2.7 +19870906,18.7,17.9,22.2,14.4,1.9 +19870907,20.7,19.3,25.0,16.7,2.9 +19870908,20.5,18.1,27.8,16.7,2.7 +19870909,20.6,17.7,27.8,16.7,3.0 +19870910,20.1,17.9,28.3,16.1,1.7 +19870911,20.1,18.1,28.9,16.1,2.4 +19870912,20.1,19.0,26.7,16.1,1.9 +19870913,20.6,17.5,26.1,16.7,2.4 +19870914,20.9,16.5,32.2,15.6,3.2 +19870915,19.6,16.3,27.8,14.4,1.6 +19870916,20.0,17.7,26.7,14.4,1.7 +19870917,21.6,18.4,27.2,15.6,2.2 +19870918,22.8,17.3,28.3,17.2,3.4 +19870919,18.6,16.5,28.9,16.7,2.9 +19870920,19.2,14.3,30.0,15.6,5.1 +19870921,15.3,9.5,23.9,7.8,2.5 +19870922,14.6,8.6,24.4,7.8,2.9 +19870923,13.8,8.3,22.2,7.8,3.2 +19870924,13.3,8.6,21.7,5.0,2.9 +19870925,15.7,9.7,24.4,5.0,3.1 +19870926,15.3,10.3,25.0,7.2,1.4 +19870927,15.6,11.6,26.1,7.2,1.3 +19870928,15.4,12.9,23.3,8.9,1.4 +19870929,18.3,14.9,23.9,9.4,2.2 +19870930,16.8,12.7,23.9,12.8,4.9 +19871001,13.0,3.7,19.4,8.3,5.0 +19871002,10.3,4.7,22.2,1.1,2.3 +19871003,9.7,2.7,22.2,1.1,7.5 +19871004,8.4,-1.4,17.2,2.8,6.1 +19871005,10.1,3.7,21.7,0.6,2.5 +19871006,10.7,6.0,22.2,0.6,2.9 +19871007,9.9,3.6,18.3,3.9,3.9 +19871008,7.9,-0.3,15.6,3.3,6.8 +19871009,6.4,0.7,17.8,-1.7,2.1 +19871010,11.4,5.4,22.8,-1.7,2.5 +19871011,13.1,7.4,23.3,1.7,2.4 +19871012,10.5,8.4,23.3,3.9,5.9 +19871013,7.9,0.8,15.6,1.1,4.8 +19871014,6.2,-1.4,17.2,-2.8,1.7 +19871015,7.4,-1.7,20.6,-2.8,2.0 +19871016,9.1,-0.7,21.7,-2.2,1.6 +19871017,9.9,-0.2,22.8,-1.1,1.7 +19871018,12.1,4.5,23.9,-0.6,1.9 +19871019,11.8,5.7,24.4,1.7,2.1 +19871020,14.5,10.1,22.2,12.8,2.2 +19871021,9.6,3.1,18.3,4.4,6.3 +19871022,4.6,-7.0,13.9,-3.9,4.3 +19871023,5.4,-5.2,18.9,-4.4,2.0 +19871024,8.8,-2.9,21.7,-4.4,2.1 +19871025,12.2,3.7,21.7,7.2,3.6 +19871026,10.4,5.6,18.9,3.9,2.6 +19871027,9.1,4.8,17.8,3.9,2.8 +19871028,7.1,-1.5,12.2,1.7,5.4 +19871029,4.4,-3.7,15.0,-4.4,2.4 +19871030,11.6,4.3,21.7,5.6,1.9 +19871031,12.8,6.2,23.9,2.8,1.9 +19871101,13.1,7.3,24.4,2.8,1.6 +19871102,11.6,5.9,22.8,2.8,1.5 +19871103,11.3,6.2,22.2,1.1,1.6 +19871104,13.4,8.4,23.9,1.1,1.4 +19871105,14.1,6.4,25.0,5.0,5.6 +19871106,7.8,-12.0,18.3,2.8,7.9 +19871107,6.2,-6.8,20.6,-3.9,1.9 +19871108,10.3,-2.3,21.1,-3.9,3.5 +19871109,12.4,7.1,20.0,-0.6,2.4 +19871110,12.6,9.8,21.1,5.0,4.0 +19871111,0.0,-4.2,3.9,-2.2,10.2 +19871112,2.1,-7.9,12.2,-3.9,7.0 +19871113,3.9,-6.9,17.2,-6.1,3.0 +19871114,6.6,-4.6,18.9,-6.1,2.8 +19871115,5.9,-3.5,18.9,-3.9,1.7 +19871116,10.7,3.4,17.8,6.7,2.7 +19871117,14.6,13.8,16.1,8.9,4.7 +19871118,10.9,5.6,16.1,6.1,5.1 +19871119,4.7,-0.7,14.4,-1.7,2.5 +19871120,4.0,-2.3,10.6,-1.7,5.0 +19871121,-1.3,-12.3,6.7,-6.1,8.4 +19871122,0.6,-10.8,12.2,-7.2,2.9 +19871123,4.1,-3.8,14.4,-7.2,3.8 +19871124,8.3,3.6,18.9,-4.4,2.5 +19871125,11.2,7.8,18.9,-1.1,2.5 +19871126,9.3,8.2,17.2,4.4,0.6 +19871127,13.4,12.3,16.1,4.4,1.6 +19871128,8.3,7.8,16.7,6.7,3.0 +19871129,9.6,8.0,15.0,6.7,2.6 +19871130,4.0,0.4,15.0,2.2,7.6 +19871201,2.6,-2.0,6.1,0.0,4.8 +19871202,1.4,-5.7,7.8,-3.3,5.1 +19871203,0.1,-5.1,12.2,-6.7,2.5 +19871204,3.4,-2.7,12.8,-6.7,7.6 +19871205,-0.2,-8.3,5.6,-2.8,7.6 +19871206,1.3,-7.5,11.7,-5.6,2.8 +19871207,3.7,-4.1,12.2,-5.6,2.5 +19871208,3.4,-2.1,11.1,-1.1,2.3 +19871209,8.8,7.8,16.1,-1.1,2.6 +19871210,10.3,9.3,16.7,5.6,1.5 +19871211,5.9,-0.7,16.7,0.6,3.8 +19871212,8.6,-3.2,13.9,0.0,3.4 +19871213,5.1,-5.7,13.9,0.0,3.6 +19871214,5.2,-2.1,12.2,-0.6,2.6 +19871215,7.9,3.4,16.1,2.8,4.7 +19871216,0.0,-7.9,4.4,-2.8,7.4 +19871217,-1.1,-9.1,3.9,-3.9,8.3 +19871218,-1.5,-7.8,6.7,-8.3,3.4 +19871219,2.7,-5.0,11.7,-8.3,2.4 +19871220,11.2,6.2,17.8,7.2,4.5 +19871221,8.7,5.7,17.8,6.7,4.2 +19871222,8.1,6.1,12.8,5.0,2.6 +19871223,6.8,-0.7,13.9,1.7,4.5 +19871224,3.7,1.5,13.9,-1.7,2.8 +19871225,13.9,12.6,17.8,10.0,5.1 +19871226,16.1,14.4,18.3,12.2,4.6 +19871227,10.1,9.5,18.3,7.2,3.6 +19871228,6.6,6.2,12.2,5.6,3.7 +19871229,1.9,-3.2,7.8,-2.8,8.0 +19871230,-0.4,-8.4,10.0,-6.1,5.4 +19871231,3.8,-5.3,10.0,-6.1,4.0 +19880101,7.8,4.7,10.6,-1.1,5.7 +19880102,2.8,-1.7,10.6,0.6,5.1 +19880103,0.4,-3.1,6.7,-0.6,2.9 +19880104,1.6,-1.4,3.9,-0.6,5.4 +19880105,-4.4,-16.1,5.0,-7.2,7.9 +19880106,-7.1,-18.8,-1.7,-10.0,6.1 +19880107,-8.4,-12.7,-2.8,-10.0,4.2 +19880108,-5.9,-8.1,0.6,-10.0,3.2 +19880109,-3.0,-6.2,1.1,-8.9,4.8 +19880110,-4.7,-7.6,1.7,-7.8,3.8 +19880111,-6.0,-11.3,5.6,-16.7,2.7 +19880112,-4.6,-11.5,8.3,-16.7,2.2 +19880113,2.1,-5.5,8.9,-3.3,5.4 +19880114,-5.9,-13.3,6.7,-10.0,5.4 +19880115,-5.3,-12.9,3.3,-12.2,2.0 +19880116,-4.2,-10.8,7.2,-12.8,2.2 +19880117,0.8,-4.9,7.2,-2.2,2.9 +19880118,5.2,3.7,13.3,-2.8,2.8 +19880119,5.6,5.1,13.9,1.7,3.2 +19880120,8.1,6.3,16.1,3.9,4.6 +19880121,4.9,1.3,16.1,0.0,5.9 +19880122,1.2,-4.2,6.7,-1.1,6.9 +19880123,-0.8,-8.1,8.3,-8.3,3.3 +19880124,0.4,-6.8,10.6,-8.3,2.6 +19880125,3.6,-0.8,10.6,1.1,3.8 +19880126,-4.8,-12.8,5.6,-10.0,7.2 +19880127,-5.5,-13.4,1.1,-10.0,6.0 +19880128,-2.2,-10.7,8.3,-9.4,2.6 +19880129,1.3,-6.0,13.9,-9.4,1.8 +19880130,4.9,-4.1,14.4,-7.2,3.7 +19880131,10.4,6.7,15.0,9.4,3.4 +19880201,13.0,10.4,17.8,8.9,3.7 +19880202,13.9,11.7,18.3,10.6,4.7 +19880203,11.4,10.8,15.6,8.3,3.1 +19880204,6.6,4.9,12.8,1.1,6.1 +19880205,-1.1,-7.6,10.6,-3.9,7.9 +19880206,-6.9,-16.6,3.3,-11.7,7.8 +19880207,-7.2,-18.7,3.9,-15.0,4.1 +19880208,0.4,-14.9,7.2,-5.6,3.4 +19880209,-0.1,-9.1,9.4,-7.2,2.5 +19880210,2.0,-5.4,11.1,-7.2,3.1 +19880211,1.9,-3.9,11.1,-6.1,2.6 +19880212,-1.1,-6.9,10.6,-6.7,7.0 +19880213,-6.7,-13.3,1.7,-10.6,7.6 +19880214,-0.8,-9.3,13.9,-10.6,4.3 +19880215,5.9,0.2,14.4,3.9,4.7 +19880216,1.2,-4.1,8.9,-3.3,7.9 +19880217,2.7,-5.8,15.0,-6.1,2.6 +19880218,4.5,-3.8,16.1,-6.1,2.1 +19880219,6.2,0.8,15.0,-4.4,3.6 +19880220,5.7,1.9,9.4,2.2,3.2 +19880221,1.8,-11.3,9.4,-3.3,5.7 +19880222,0.3,-9.9,12.8,-9.4,3.4 +19880223,8.2,1.5,13.3,4.4,5.0 +19880224,0.9,-6.2,3.9,-2.8,7.8 +19880225,-1.0,-12.1,5.6,-7.8,4.5 +19880226,0.4,-13.0,11.1,-7.8,3.9 +19880227,4.4,-6.4,18.3,-7.8,3.9 +19880228,5.4,-7.3,18.3,-5.6,5.8 +19880229,4.6,-5.0,15.6,-5.6,4.2 +19880301,6.0,-7.8,16.1,-5.6,4.0 +19880302,5.4,-5.9,18.3,-5.6,2.6 +19880303,10.2,0.9,18.3,3.9,3.8 +19880304,13.7,10.6,17.2,3.9,5.4 +19880305,7.1,2.6,17.8,3.9,5.4 +19880306,7.4,-2.8,14.4,3.9,2.7 +19880307,8.5,1.5,18.9,1.1,2.8 +19880308,8.9,-0.1,20.0,-0.6,3.2 +19880309,12.3,7.8,18.9,10.0,3.1 +19880310,9.4,7.8,14.4,5.6,4.5 +19880311,5.9,-1.9,15.6,-2.8,4.2 +19880312,9.2,3.2,16.1,5.6,6.2 +19880313,11.1,3.7,15.0,5.6,5.8 +19880314,1.0,-7.8,6.1,-2.8,7.8 +19880315,-3.9,-12.4,3.9,-7.2,7.7 +19880316,-1.8,-10.6,4.4,-7.2,8.0 +19880317,1.7,-8.4,12.2,-5.0,5.1 +19880318,2.6,-3.8,12.8,-4.4,3.1 +19880319,2.6,-3.1,10.0,-2.8,6.6 +19880320,8.3,-5.3,17.2,-0.6,5.7 +19880321,11.4,-1.4,22.8,0.0,3.1 +19880322,9.1,-0.5,22.8,0.6,3.5 +19880323,8.5,1.3,20.0,-1.7,3.5 +19880324,13.0,6.9,20.6,6.7,3.5 +19880325,14.0,10.2,20.6,6.7,4.3 +19880326,14.4,10.4,20.6,8.9,4.1 +19880327,9.2,-3.2,21.1,3.3,5.6 +19880328,8.6,-4.9,20.6,-2.8,3.1 +19880329,11.1,-0.4,21.7,-2.8,3.3 +19880330,13.7,7.5,21.7,-1.1,3.0 +19880331,16.4,10.4,22.2,5.6,2.8 +19880401,14.4,10.1,22.8,10.0,2.5 +19880402,14.4,11.8,18.9,10.0,2.5 +19880403,14.6,12.9,19.4,10.6,3.2 +19880404,17.3,12.2,23.9,12.2,2.9 +19880405,17.1,3.9,27.2,6.7,3.0 +19880406,14.6,7.4,27.2,6.7,4.2 +19880407,7.4,0.6,10.6,3.3,9.4 +19880408,8.2,4.4,13.3,3.3,9.5 +19880409,10.8,-1.6,18.9,2.8,6.6 +19880410,11.1,-2.0,22.8,-1.1,2.9 +19880411,12.4,4.3,22.8,-1.1,2.2 +19880412,6.4,4.7,20.0,0.6,3.6 +19880413,7.5,2.3,15.6,0.6,6.1 +19880414,10.3,3.5,20.6,0.6,2.4 +19880415,13.0,5.7,20.6,0.6,5.0 +19880416,7.2,-0.6,20.0,1.1,5.9 +19880417,8.8,-1.9,20.0,-2.8,3.5 +19880418,15.8,6.6,22.2,11.7,4.7 +19880419,12.1,8.3,22.2,9.4,5.4 +19880420,8.6,-3.9,18.9,-2.8,3.3 +19880421,14.8,-1.2,25.6,5.0,4.3 +19880422,17.3,3.2,28.9,3.9,3.4 +19880423,18.6,10.8,28.9,6.7,3.4 +19880424,17.7,10.5,24.4,11.1,5.5 +19880425,12.2,4.0,22.8,7.2,4.6 +19880426,12.8,5.9,20.0,5.6,1.8 +19880427,15.2,5.2,23.9,5.6,3.0 +19880428,10.7,-4.7,23.9,6.1,8.4 +19880429,11.8,-5.1,17.2,7.2,7.2 +19880430,12.9,-3.6,18.3,6.1,3.8 +19880501,12.4,-0.8,21.7,2.8,3.3 +19880502,12.9,0.2,22.8,1.7,3.7 +19880503,12.6,3.4,23.3,1.7,2.5 +19880504,12.4,9.5,21.7,3.3,3.3 +19880505,12.3,7.2,16.1,7.2,5.6 +19880506,13.1,3.9,16.7,8.9,8.2 +19880507,17.1,6.4,25.6,9.4,5.7 +19880508,16.3,7.0,25.6,6.7,3.3 +19880509,17.1,10.8,25.6,6.7,4.7 +19880510,17.2,11.4,24.4,11.7,3.4 +19880511,14.4,6.5,24.4,4.4,3.7 +19880512,14.8,7.4,23.3,4.4,2.7 +19880513,16.8,9.8,23.9,5.0,3.0 +19880514,15.8,10.1,27.2,6.7,2.9 +19880515,17.6,12.6,28.3,6.7,2.1 +19880516,17.7,13.2,28.3,10.0,2.4 +19880517,15.6,13.4,27.8,10.0,2.9 +19880518,14.3,8.6,21.7,7.8,5.0 +19880519,14.8,8.8,22.8,7.2,3.0 +19880520,16.6,10.5,24.4,7.2,2.6 +19880521,18.6,10.8,26.1,8.3,2.7 +19880522,18.6,12.2,26.7,10.0,2.4 +19880523,20.9,14.2,27.2,10.0,4.3 +19880524,16.5,13.3,26.7,13.3,3.4 +19880525,16.7,10.6,21.7,13.3,5.2 +19880526,14.1,1.0,21.7,5.0,5.4 +19880527,13.8,4.4,22.8,3.3,2.3 +19880528,17.1,7.4,26.7,3.3,3.9 +19880529,19.1,8.1,28.9,6.7,2.9 +19880530,20.1,9.0,30.0,8.9,2.0 +19880531,21.8,12.1,30.0,8.9,2.4 +19880601,22.2,12.7,30.0,13.3,2.5 +19880602,21.0,11.7,30.6,11.1,3.3 +19880603,19.4,12.1,29.4,11.1,3.9 +19880604,14.1,5.6,26.7,6.7,3.1 +19880605,14.9,4.9,25.0,4.4,2.7 +19880606,18.7,7.5,29.4,4.4,3.1 +19880607,21.8,11.7,32.2,6.7,2.6 +19880608,22.8,12.9,32.8,11.1,2.6 +19880609,19.5,14.9,31.7,12.8,3.7 +19880610,14.4,6.4,26.7,6.7,6.0 +19880611,15.1,3.8,22.8,6.7,4.8 +19880612,16.6,5.7,27.2,4.4,2.8 +19880613,19.1,9.3,28.9,4.4,2.5 +19880614,20.9,11.2,30.0,8.3,2.2 +19880615,21.7,13.2,29.4,10.6,2.1 +19880616,21.7,14.4,31.7,11.7,2.1 +19880617,19.4,16.5,32.8,13.3,2.0 +19880618,19.1,16.3,27.8,15.0,1.7 +19880619,19.7,16.0,28.3,15.0,1.9 +19880620,21.1,16.0,30.0,13.3,2.6 +19880621,23.6,15.9,32.8,13.3,3.4 +19880622,24.1,16.3,33.3,15.6,2.2 +19880623,24.9,16.8,33.9,15.6,2.5 +19880624,23.6,18.3,33.9,16.1,2.0 +19880625,24.6,19.9,33.9,17.2,3.2 +19880626,25.9,18.6,34.4,18.9,4.1 +19880627,21.8,15.7,35.0,16.1,3.5 +19880628,20.8,12.2,27.2,13.3,2.4 +19880629,21.9,14.0,31.1,12.2,2.1 +19880630,20.9,18.0,31.7,12.2,2.5 +19880701,18.3,11.3,24.4,13.3,4.0 +19880702,16.9,9.1,25.6,6.7,2.0 +19880703,17.6,14.8,26.7,16.1,3.1 +19880704,17.4,16.7,20.6,15.6,2.4 +19880705,20.8,17.2,26.1,15.6,2.7 +19880706,20.5,13.9,28.3,11.1,1.9 +19880707,21.6,13.7,32.2,11.1,2.3 +19880708,25.2,16.0,35.6,11.7,3.1 +19880709,25.3,18.1,35.6,16.1,2.9 +19880710,22.5,17.7,32.8,16.1,2.6 +19880711,21.9,18.8,32.8,15.6,2.9 +19880712,23.6,20.2,30.0,15.6,3.5 +19880713,22.5,20.2,30.0,18.3,2.0 +19880714,23.9,20.9,31.1,18.3,3.2 +19880715,26.1,20.5,34.4,18.3,3.3 +19880716,25.9,20.7,35.0,18.3,2.5 +19880717,24.0,19.7,34.4,18.3,3.2 +19880718,24.4,21.1,32.8,18.3,2.5 +19880719,24.9,20.1,32.2,18.9,3.4 +19880720,25.2,18.4,31.7,17.2,4.0 +19880721,23.4,19.8,31.7,17.2,3.7 +19880722,22.2,17.3,31.1,18.3,3.3 +19880723,21.9,16.9,29.4,17.2,3.6 +19880724,22.8,16.2,28.9,16.7,4.2 +19880725,21.9,14.9,28.3,15.0,2.8 +19880726,22.1,17.0,28.9,15.0,2.2 +19880727,20.7,17.7,28.3,16.1,1.9 +19880728,22.9,18.6,30.0,16.1,3.0 +19880729,23.1,19.2,31.7,18.3,2.3 +19880730,22.0,19.1,31.1,17.8,2.5 +19880731,23.6,18.8,30.6,17.8,3.2 +19880801,24.4,18.4,32.8,17.2,3.0 +19880802,25.3,19.4,33.3,17.2,1.7 +19880803,24.7,19.6,32.8,18.9,2.1 +19880804,23.8,19.7,30.0,18.9,1.9 +19880805,21.8,19.7,30.0,18.9,2.2 +19880806,22.6,19.7,29.4,18.9,2.6 +19880807,23.1,18.8,30.6,18.3,3.4 +19880808,23.9,16.4,30.6,16.7,2.6 +19880809,24.3,19.4,31.1,16.7,2.4 +19880810,24.6,19.8,31.1,18.3,2.7 +19880811,22.9,19.6,31.1,18.9,2.6 +19880812,23.0,19.1,30.0,18.3,2.7 +19880813,23.6,18.4,30.6,16.7,2.2 +19880814,24.0,18.1,31.1,16.7,1.9 +19880815,23.3,19.5,31.7,17.8,2.1 +19880816,22.6,20.3,31.7,18.9,2.7 +19880817,25.1,19.7,33.9,18.9,2.6 +19880818,25.9,18.4,34.4,17.8,2.9 +19880819,24.7,18.6,35.0,16.7,2.3 +19880820,23.6,20.9,33.3,16.7,2.6 +19880821,23.9,19.7,29.4,20.6,4.3 +19880822,21.0,17.7,30.0,16.7,2.6 +19880823,20.7,18.1,25.6,16.7,2.7 +19880824,21.6,17.9,28.3,17.2,3.7 +19880825,21.6,14.1,28.9,12.8,2.8 +19880826,21.4,12.9,31.1,11.7,2.7 +19880827,21.6,14.9,31.7,11.7,2.1 +19880828,21.2,18.1,30.6,12.8,1.6 +19880829,22.6,19.3,30.0,16.7,2.9 +19880830,20.4,19.4,21.7,18.3,2.8 +19880831,18.4,16.3,22.2,16.7,2.3 +19880901,18.3,13.9,23.3,13.3,1.8 +19880902,17.2,12.7,25.6,9.4,1.6 +19880903,18.3,16.3,25.6,9.4,2.3 +19880904,19.4,18.8,22.2,15.6,4.1 +19880905,17.3,14.1,22.2,12.2,4.1 +19880906,16.6,13.2,22.2,12.2,3.9 +19880907,15.8,12.1,21.1,11.7,2.4 +19880908,13.8,9.3,21.1,5.6,2.1 +19880909,17.4,16.1,21.1,15.6,2.4 +19880910,19.8,17.8,25.6,15.6,1.8 +19880911,21.2,19.6,25.6,16.1,1.9 +19880912,21.4,19.4,25.6,17.8,1.7 +19880913,22.2,19.0,28.3,17.2,3.2 +19880914,22.1,18.3,29.4,16.1,2.9 +19880915,20.5,17.7,30.0,15.6,2.3 +19880916,18.6,16.1,25.0,15.6,2.8 +19880917,15.6,15.2,19.4,13.9,3.1 +19880918,18.1,16.7,21.1,13.9,2.0 +19880919,19.5,18.6,23.3,16.1,2.4 +19880920,21.4,19.0,28.3,17.8,2.7 +19880921,20.2,14.1,28.3,15.0,4.2 +19880922,16.6,10.6,27.2,6.7,2.1 +19880923,19.5,15.7,28.9,6.7,2.3 +19880924,21.1,18.5,29.4,11.1,2.0 +19880925,20.7,18.2,28.9,15.0,2.7 +19880926,19.2,15.3,27.2,15.0,3.5 +19880927,16.3,12.5,25.0,10.6,2.2 +19880928,15.4,10.8,24.4,8.9,1.7 +19880929,15.6,12.6,25.0,8.9,2.0 +19880930,18.4,15.7,23.3,9.4,2.6 +19881001,17.8,15.3,23.3,14.4,2.8 +19881002,18.2,17.3,22.8,14.4,2.6 +19881003,16.4,16.0,21.7,15.6,2.6 +19881004,14.6,10.2,17.2,11.7,6.6 +19881005,9.2,3.4,17.2,2.8,4.6 +19881006,8.5,2.7,16.1,1.7,3.4 +19881007,7.9,3.1,16.7,1.7,2.6 +19881008,6.7,0.7,15.0,-1.7,3.0 +19881009,6.9,2.1,15.6,-1.7,2.6 +19881010,9.4,4.9,17.8,0.6,2.1 +19881011,10.4,5.1,19.4,2.2,2.9 +19881012,9.3,-0.3,20.0,2.2,4.6 +19881013,5.6,-4.4,13.9,-6.1,5.4 +19881014,4.9,-2.6,17.8,-3.9,1.8 +19881015,9.6,1.8,21.1,-3.9,2.4 +19881016,8.6,1.1,21.1,-1.1,2.2 +19881017,13.9,8.9,22.2,-1.1,2.1 +19881018,14.9,12.1,23.9,5.6,3.0 +19881019,13.4,8.3,23.9,7.8,6.1 +19881020,6.4,1.0,15.6,-1.7,2.2 +19881021,8.2,7.4,13.9,-1.7,2.8 +19881022,10.0,2.4,13.3,5.0,6.1 +19881023,6.3,-0.7,17.8,-2.2,3.0 +19881024,12.5,1.7,17.8,7.2,5.1 +19881025,8.3,-2.3,17.8,0.0,3.4 +19881026,9.1,3.9,16.1,0.0,4.8 +19881027,5.2,-1.1,15.6,-2.8,2.8 +19881028,12.7,7.4,20.6,8.3,2.9 +19881029,10.9,2.4,21.1,3.3,4.6 +19881030,7.9,0.4,20.6,2.2,2.8 +19881031,6.2,2.9,14.4,2.2,2.0 +19881101,7.9,4.3,13.9,3.9,4.6 +19881102,5.9,-1.0,14.4,-1.7,4.7 +19881103,6.0,-0.3,18.9,-2.8,2.2 +19881104,9.9,6.7,19.4,-2.8,2.9 +19881105,13.6,9.2,18.9,3.3,5.1 +19881106,6.2,1.7,17.2,2.2,3.7 +19881107,7.9,-3.4,16.7,0.0,3.7 +19881108,6.9,1.4,18.9,-0.6,2.6 +19881109,9.9,6.9,18.9,-0.6,2.1 +19881110,14.1,10.4,19.4,3.9,4.2 +19881111,9.2,2.2,20.0,4.4,5.6 +19881112,3.5,-1.5,13.9,-1.7,3.4 +19881113,9.2,3.4,16.7,-1.7,4.7 +19881114,7.4,2.9,19.4,-1.7,1.9 +19881115,8.1,4.3,20.0,-1.7,1.9 +19881116,14.9,10.4,20.0,12.8,4.1 +19881117,10.7,5.6,20.0,6.1,7.0 +19881118,3.6,-5.2,12.8,-3.9,2.4 +19881119,5.7,-0.3,13.3,-3.9,2.7 +19881120,11.7,9.8,18.9,4.4,4.9 +19881121,8.2,0.9,19.4,5.0,8.5 +19881122,2.8,-1.6,11.7,-2.2,2.5 +19881123,6.6,4.6,10.0,-2.2,3.1 +19881124,8.4,4.5,16.7,2.2,3.5 +19881125,6.6,3.6,16.7,-0.6,2.4 +19881126,11.3,8.1,17.2,-0.6,5.4 +19881127,14.3,12.4,17.2,7.2,4.6 +19881128,6.1,0.4,15.0,1.1,6.9 +19881129,1.5,-6.1,11.7,-5.6,4.2 +19881130,3.3,-3.1,11.7,-5.6,3.1 +19881201,1.8,-5.8,9.4,-5.0,3.2 +19881202,1.3,-6.7,7.8,-5.0,6.6 +19881203,4.2,-7.7,14.4,-3.9,5.7 +19881204,7.1,-4.2,14.4,-3.9,7.0 +19881205,1.8,-11.2,11.1,-5.0,3.7 +19881206,3.6,-8.1,17.2,-5.6,2.1 +19881207,4.7,-5.2,17.2,-5.6,2.7 +19881208,5.1,-2.2,16.1,-3.9,3.0 +19881209,4.4,1.1,16.7,-3.3,5.9 +19881210,-1.0,-5.5,6.7,-7.2,3.9 +19881211,0.6,-7.2,7.2,-7.2,5.2 +19881212,-4.0,-12.3,5.0,-8.9,2.9 +19881213,-3.6,-10.2,5.6,-8.9,4.3 +19881214,2.9,-5.1,16.1,-8.3,3.9 +19881215,7.1,-1.9,16.1,-6.1,3.9 +19881216,1.2,-6.2,12.8,-1.7,6.1 +19881217,-3.6,-10.6,4.4,-6.7,5.5 +19881218,-3.5,-12.9,3.3,-8.3,5.3 +19881219,0.9,-8.5,15.6,-8.3,2.8 +19881220,7.2,-4.8,15.6,2.2,3.2 +19881221,10.4,6.1,14.4,0.6,4.0 +19881222,9.1,7.2,14.4,5.6,3.4 +19881223,7.9,7.0,13.3,5.6,3.1 +19881224,12.4,11.4,15.0,5.6,4.9 +19881225,7.9,1.1,15.0,3.9,5.9 +19881226,2.9,-6.2,12.8,-4.4,2.8 +19881227,2.9,-3.4,12.8,-4.4,2.9 +19881228,9.9,6.5,14.4,-3.3,6.3 +19881229,0.2,-6.2,15.0,-6.7,4.4 +19881230,-0.2,-3.2,8.3,-6.7,1.7 +19881231,6.2,5.1,11.1,-3.9,3.1 +19890101,7.1,5.7,11.7,4.4,4.6 +19890102,7.1,2.5,13.9,3.3,4.0 +19890103,8.4,2.7,16.7,3.3,4.4 +19890104,1.6,-8.2,7.8,-2.2,10.0 +19890105,0.3,-6.9,11.7,-7.2,3.1 +19890106,6.5,0.9,15.6,2.8,4.2 +19890107,5.1,4.2,15.6,-0.6,1.6 +19890108,11.7,10.1,14.4,-0.6,5.0 +19890109,1.8,-4.6,14.4,-1.1,7.0 +19890110,0.8,-0.3,4.4,-1.1,2.5 +19890111,3.2,2.9,5.0,0.0,2.3 +19890112,7.6,6.7,13.9,1.1,3.5 +19890113,7.1,3.9,14.4,2.2,5.8 +19890114,-0.6,-4.6,2.2,-2.8,3.6 +19890115,7.3,5.6,12.8,-2.2,5.2 +19890116,4.3,-1.1,12.8,1.1,6.8 +19890117,0.3,-6.6,10.0,-7.8,1.9 +19890118,1.8,-5.8,15.0,-7.8,2.0 +19890119,7.6,-2.1,15.6,2.8,3.8 +19890120,6.4,-4.1,15.0,2.8,4.7 +19890121,0.2,-9.3,10.0,-3.9,7.4 +19890122,-0.5,-10.7,9.4,-8.3,2.0 +19890123,2.7,-8.6,17.8,-8.3,1.7 +19890124,4.4,-6.1,18.3,-7.2,1.9 +19890125,7.0,-3.6,18.9,-5.0,2.5 +19890126,8.4,-1.3,18.9,-2.8,2.9 +19890127,9.2,2.2,18.9,-0.6,6.6 +19890128,4.1,-6.3,14.4,-5.6,2.8 +19890129,7.8,-2.6,18.9,-5.6,2.3 +19890130,13.1,7.3,19.4,10.0,3.9 +19890131,7.8,-0.6,18.3,-1.1,3.8 +19890201,9.6,-0.1,21.1,-1.7,3.1 +19890202,14.1,7.3,24.4,-1.7,2.4 +19890203,16.4,10.9,24.4,5.0,3.0 +19890204,7.0,4.9,13.3,3.9,5.3 +19890205,5.0,4.2,10.0,3.9,3.7 +19890206,6.6,5.8,11.7,3.9,3.6 +19890207,4.1,2.7,11.7,0.0,6.6 +19890208,-0.9,-6.4,6.1,-3.9,7.9 +19890209,-4.6,-16.3,4.4,-10.0,7.7 +19890210,-5.3,-16.6,4.4,-12.2,5.6 +19890211,0.6,-11.2,11.7,-12.2,4.9 +19890212,3.3,-8.9,12.2,-6.7,5.1 +19890213,4.6,-7.8,13.9,-5.6,4.0 +19890214,13.8,4.7,20.6,6.7,5.2 +19890215,17.4,12.1,23.3,8.3,5.8 +19890216,12.2,10.1,23.3,8.3,4.5 +19890217,2.4,1.2,12.2,-0.6,2.9 +19890218,-1.3,-2.5,5.0,-6.1,2.2 +19890219,-0.9,-1.9,2.2,-2.8,0.9 +19890220,1.6,0.4,5.0,-2.8,3.4 +19890221,8.6,6.8,15.6,0.0,4.3 +19890222,6.0,3.2,16.1,0.6,6.9 +19890223,-2.9,-6.1,0.6,-5.0,9.6 +19890224,-7.2,-13.7,-1.7,-10.6,11.8 +19890225,-3.5,-14.9,6.7,-10.6,7.4 +19890226,3.3,-6.3,16.1,-8.9,4.0 +19890227,3.7,-1.7,16.1,-5.6,4.3 +19890228,3.9,1.9,8.9,0.6,4.2 +19890301,2.9,-4.3,10.0,-2.2,3.4 +19890302,2.4,-2.2,10.6,-3.9,2.2 +19890303,5.8,3.1,10.6,-3.9,2.3 +19890304,7.8,7.2,10.6,3.3,3.5 +19890305,11.4,9.7,20.0,6.1,4.3 +19890306,16.6,10.9,21.1,7.2,5.7 +19890307,4.0,0.4,6.1,2.2,6.1 +19890308,2.4,-3.1,8.9,-1.1,3.7 +19890309,5.6,-2.9,13.9,-1.7,5.5 +19890310,8.6,-4.6,17.8,-1.7,5.6 +19890311,8.3,-1.2,18.3,-0.6,2.5 +19890312,10.9,0.2,22.2,-0.6,4.3 +19890313,9.4,2.3,22.8,1.7,3.3 +19890314,7.9,4.0,17.2,1.7,3.9 +19890315,15.2,10.4,21.1,11.1,3.9 +19890316,11.4,3.2,21.7,5.6,4.7 +19890317,10.2,3.7,19.4,1.7,3.0 +19890318,15.8,9.7,21.1,13.9,3.6 +19890319,8.6,0.3,21.1,0.6,6.4 +19890320,6.3,1.8,16.7,0.6,3.2 +19890321,9.2,7.6,13.3,3.9,5.0 +19890322,3.8,1.7,13.3,2.2,5.0 +19890323,2.9,0.8,6.1,1.1,2.6 +19890324,7.6,4.9,15.0,1.1,4.3 +19890325,12.2,5.8,24.4,3.9,4.2 +19890326,13.9,4.9,24.4,3.3,2.5 +19890327,15.6,6.9,23.9,3.3,2.5 +19890328,18.1,11.8,25.0,6.1,4.8 +19890329,20.2,11.6,26.1,10.6,4.7 +19890330,18.4,12.2,26.1,15.0,5.6 +19890331,12.8,7.8,21.7,7.2,4.7 +19890401,4.7,-3.3,10.0,0.6,7.6 +19890402,5.9,-2.8,16.1,-2.2,3.7 +19890403,13.4,5.9,20.6,9.4,5.5 +19890404,15.8,11.7,21.7,8.9,4.9 +19890405,11.9,8.7,22.2,9.4,5.0 +19890406,8.4,-2.7,15.6,3.3,5.8 +19890407,4.3,-0.6,12.8,0.6,4.7 +19890408,2.2,0.8,8.9,-1.1,3.1 +19890409,6.7,-0.8,11.1,-1.1,5.7 +19890410,5.3,-4.4,11.1,1.1,6.0 +19890411,3.8,-4.6,9.4,-1.1,5.2 +19890412,5.3,-3.6,12.2,-2.8,2.3 +19890413,7.8,-2.3,17.2,-2.8,2.6 +19890414,9.0,-0.9,19.4,-2.2,2.7 +19890415,11.8,7.1,20.0,8.9,3.7 +19890416,11.9,5.2,20.0,6.1,3.9 +19890417,13.6,4.6,24.4,2.2,2.2 +19890418,16.8,6.2,26.1,2.2,2.9 +19890419,16.4,8.8,26.7,6.7,3.9 +19890420,13.9,6.3,23.3,8.9,4.3 +19890421,12.9,5.6,22.2,3.9,2.6 +19890422,14.0,4.3,23.9,3.3,1.4 +19890423,15.4,8.2,24.4,3.3,2.0 +19890424,16.7,12.4,23.3,10.6,1.8 +19890425,18.7,12.3,30.0,8.9,1.9 +19890426,22.1,12.2,30.0,8.9,3.8 +19890427,22.7,13.9,30.6,14.4,3.2 +19890428,18.4,14.4,30.6,13.3,2.5 +19890429,17.6,15.6,26.7,13.3,1.9 +19890430,18.1,14.8,25.0,13.3,2.2 +19890501,16.4,15.7,25.0,13.3,2.2 +19890502,14.1,7.7,19.4,10.6,6.9 +19890503,11.3,1.2,18.3,7.2,6.2 +19890504,9.2,3.1,16.7,0.6,2.9 +19890505,13.5,12.3,17.8,10.6,4.4 +19890506,12.1,6.8,18.3,7.2,4.1 +19890507,6.3,-0.8,10.0,1.7,5.4 +19890508,7.4,-0.8,18.9,-2.2,2.9 +19890509,10.8,8.5,20.0,8.9,2.8 +19890510,11.5,8.8,12.8,8.9,5.1 +19890511,9.3,2.8,13.3,8.3,6.8 +19890512,9.7,2.3,16.1,3.3,3.9 +19890513,10.6,1.5,19.4,1.1,2.2 +19890514,14.7,7.5,20.6,10.0,2.2 +19890515,16.3,11.9,22.2,10.0,2.8 +19890516,14.1,5.4,22.2,7.2,5.8 +19890517,15.4,6.9,24.4,6.7,4.3 +19890518,17.5,10.3,25.0,6.7,1.8 +19890519,17.6,12.2,25.6,10.0,2.0 +19890520,16.5,11.8,25.6,10.0,2.3 +19890521,19.9,14.9,27.2,10.0,3.5 +19890522,18.7,13.9,28.3,10.6,2.9 +19890523,18.4,14.4,27.8,10.6,4.1 +19890524,17.3,9.1,26.1,9.4,4.3 +19890525,19.4,12.6,29.4,9.4,3.2 +19890526,23.3,16.7,30.6,11.1,2.9 +19890527,21.2,16.0,31.1,15.0,5.6 +19890528,17.6,8.9,25.6,11.1,4.1 +19890529,17.2,11.2,25.0,11.1,2.2 +19890530,20.6,14.3,28.3,11.1,2.4 +19890531,21.7,15.2,30.0,12.2,2.6 +19890601,22.6,17.4,30.0,12.2,2.2 +19890602,21.1,17.9,30.0,15.6,2.3 +19890603,21.4,17.2,30.0,15.6,2.4 +19890604,20.7,17.1,28.9,15.6,2.8 +19890605,20.1,18.1,27.2,17.2,2.0 +19890606,18.3,16.3,27.2,15.6,2.9 +19890607,18.7,14.3,26.1,12.2,2.6 +19890608,18.3,15.3,26.1,12.2,2.2 +19890609,20.4,18.2,24.4,12.2,3.9 +19890610,19.8,14.4,26.1,12.2,3.6 +19890611,20.1,13.2,28.3,12.2,2.8 +19890612,20.9,16.4,28.3,12.2,2.8 +19890613,21.4,16.4,27.8,15.0,3.9 +19890614,21.2,16.7,29.4,13.9,1.9 +19890615,19.2,17.3,29.4,13.9,3.5 +19890616,18.4,16.9,22.8,17.2,4.6 +19890617,18.4,13.9,25.0,13.3,2.2 +19890618,18.3,13.7,27.2,11.1,2.7 +19890619,19.3,16.8,25.0,11.1,1.8 +19890620,18.8,17.4,24.4,16.1,2.5 +19890621,19.4,17.9,22.8,17.2,3.3 +19890622,19.7,17.9,25.6,16.7,2.4 +19890623,20.8,17.2,27.8,16.1,2.9 +19890624,22.6,18.4,28.9,16.1,2.7 +19890625,22.5,18.7,29.4,17.2,2.2 +19890626,23.4,19.3,30.0,17.8,2.4 +19890627,23.4,19.2,30.0,18.3,2.6 +19890628,21.3,19.1,30.0,16.7,2.1 +19890629,21.8,18.6,27.8,16.7,2.8 +19890630,21.5,18.0,27.8,18.3,2.5 +19890701,21.1,17.0,25.0,17.8,2.1 +19890702,19.1,16.1,25.6,16.1,1.7 +19890703,18.4,17.2,21.7,16.1,2.4 +19890704,20.6,19.0,24.4,16.7,1.8 +19890705,21.9,18.9,26.1,18.9,2.6 +19890706,22.4,19.5,26.7,18.9,3.0 +19890707,22.6,20.2,28.9,18.9,2.9 +19890708,22.9,19.1,29.4,17.8,3.7 +19890709,23.8,18.2,30.6,17.8,2.6 +19890710,22.7,18.8,31.1,17.8,2.8 +19890711,23.6,19.3,31.7,16.7,2.7 +19890712,23.5,18.8,31.7,16.7,4.8 +19890713,22.3,19.0,30.6,18.3,3.8 +19890714,23.2,17.5,28.3,18.3,3.9 +19890715,22.3,17.6,27.8,17.2,2.3 +19890716,22.4,19.3,27.2,17.2,2.5 +19890717,21.3,16.6,26.7,18.3,4.3 +19890718,20.9,17.8,27.2,18.3,3.0 +19890719,21.5,18.9,25.6,18.3,3.3 +19890720,21.4,19.1,26.1,18.3,3.2 +19890721,20.7,18.7,25.6,17.8,2.6 +19890722,21.7,19.1,26.7,17.2,2.5 +19890723,22.6,19.3,27.8,17.2,2.0 +19890724,22.8,18.4,29.4,16.7,2.4 +19890725,23.7,19.7,30.0,16.7,2.6 +19890726,22.8,20.3,31.1,18.3,2.9 +19890727,23.6,20.2,31.7,18.3,2.6 +19890728,23.2,19.1,30.6,18.3,4.5 +19890729,23.7,19.8,30.0,18.3,2.3 +19890730,22.8,20.3,30.0,18.3,2.4 +19890731,21.6,19.7,28.3,18.9,2.9 +19890801,21.6,20.3,28.3,18.9,2.8 +19890802,22.9,18.9,27.8,18.9,3.9 +19890803,22.6,17.2,30.0,16.7,2.9 +19890804,23.7,18.6,30.6,16.7,3.7 +19890805,23.2,17.9,31.7,15.0,3.1 +19890806,24.7,20.1,32.2,15.0,4.1 +19890807,22.2,17.2,28.9,18.3,5.1 +19890808,16.8,9.5,26.1,12.2,5.8 +19890809,15.9,10.6,22.8,9.4,2.1 +19890810,17.1,11.7,25.0,8.9,1.7 +19890811,18.6,13.3,26.1,8.9,2.5 +19890812,19.6,16.2,26.7,11.7,2.1 +19890813,19.1,16.6,27.2,15.6,1.4 +19890814,20.7,17.7,25.6,15.6,2.2 +19890815,20.4,18.2,26.7,17.2,1.6 +19890816,20.9,18.0,26.7,16.7,2.8 +19890817,20.5,17.3,28.3,16.7,3.4 +19890818,19.8,17.9,27.8,16.7,1.7 +19890819,18.8,16.9,25.6,15.6,1.7 +19890820,20.5,17.3,27.2,15.0,2.4 +19890821,22.4,19.3,27.8,15.0,2.5 +19890822,22.9,19.1,30.0,17.2,1.4 +19890823,23.1,20.8,30.6,17.2,2.2 +19890824,22.3,20.6,30.0,18.9,2.7 +19890825,22.7,19.7,30.6,18.9,2.7 +19890826,22.4,20.7,31.1,18.9,1.8 +19890827,21.9,19.1,29.4,17.8,2.3 +19890828,23.4,21.1,28.9,17.8,2.5 +19890829,23.5,20.7,29.4,19.4,2.9 +19890830,23.1,20.1,30.0,19.4,3.3 +19890831,21.9,17.1,28.9,15.0,2.6 +19890901,20.3,17.6,27.8,14.4,2.3 +19890902,22.9,19.4,28.3,14.4,4.3 +19890903,20.6,17.7,28.9,17.8,2.8 +19890904,18.7,13.4,21.7,16.1,1.8 +19890905,17.1,14.3,22.8,13.3,2.4 +19890906,17.6,17.1,20.0,13.3,1.4 +19890907,20.5,18.4,27.2,16.7,1.1 +19890908,21.7,18.7,27.2,17.2,1.7 +19890909,22.2,19.1,28.9,17.2,1.8 +19890910,22.2,18.6,29.4,17.2,1.3 +19890911,22.0,19.1,29.4,17.2,1.5 +19890912,21.1,18.8,28.3,17.8,2.8 +19890913,21.5,20.1,27.2,17.8,2.1 +19890914,21.1,18.7,26.7,17.8,2.0 +19890915,19.9,18.6,26.7,17.2,1.6 +19890916,20.5,17.4,26.7,17.2,3.4 +19890917,17.2,13.4,25.6,13.3,4.6 +19890918,15.9,12.4,22.8,11.7,3.2 +19890919,17.1,13.0,22.8,11.7,2.2 +19890920,17.1,14.9,24.4,11.7,3.1 +19890921,20.7,19.5,24.4,12.2,1.5 +19890922,20.8,18.1,25.6,17.8,5.8 +19890923,17.6,15.7,25.0,12.2,3.3 +19890924,9.9,3.6,15.0,5.0,5.1 +19890925,10.3,8.1,15.0,5.0,1.9 +19890926,15.6,13.8,22.8,8.3,4.3 +19890927,15.2,10.8,22.8,11.7,4.0 +19890928,10.9,7.7,18.9,4.4,1.4 +19890929,13.4,13.1,17.2,4.4,1.4 +19890930,15.8,15.7,17.2,11.7,1.3 +19891001,15.2,14.9,18.3,13.9,2.3 +19891002,18.9,16.7,23.9,13.9,4.1 +19891003,18.7,14.9,24.4,13.9,4.9 +19891004,15.1,9.1,24.4,10.0,5.2 +19891005,11.6,7.1,22.2,2.2,2.3 +19891006,16.5,11.5,27.2,2.2,2.3 +19891007,16.3,11.1,27.8,9.4,4.7 +19891008,11.4,6.2,20.6,7.2,5.8 +19891009,7.9,0.9,16.1,-0.6,3.4 +19891010,7.9,3.2,17.2,-0.6,2.0 +19891011,11.5,5.3,22.2,0.0,1.7 +19891012,13.2,8.2,25.0,2.8,1.4 +19891013,16.1,11.0,27.8,3.9,2.4 +19891014,17.9,13.0,27.8,7.8,1.8 +19891015,15.0,10.2,26.7,7.2,1.6 +19891016,16.3,14.1,24.4,7.2,2.4 +19891017,19.7,18.2,23.9,10.0,3.6 +19891018,16.3,15.5,23.9,12.2,4.0 +19891019,8.7,7.6,19.4,4.4,6.2 +19891020,2.3,-2.8,10.6,-0.6,6.2 +19891021,6.2,-3.3,18.9,-2.8,2.5 +19891022,12.1,2.3,21.7,-2.8,4.4 +19891023,9.7,4.3,21.7,2.8,1.3 +19891024,11.7,4.8,20.6,2.8,1.4 +19891025,10.6,2.8,21.1,1.1,1.5 +19891026,9.6,1.0,21.7,0.0,1.6 +19891027,9.9,3.6,22.2,0.0,1.2 +19891028,11.4,4.4,22.8,0.6,1.4 +19891029,10.6,4.9,23.9,1.1,1.6 +19891030,12.9,9.4,22.2,1.1,1.3 +19891031,15.8,13.9,20.6,6.7,2.2 +19891101,11.3,5.8,20.6,6.1,4.5 +19891102,6.8,4.4,16.7,3.3,1.1 +19891103,6.8,2.4,10.6,2.8,4.2 +19891104,4.4,-1.1,12.8,-1.1,2.6 +19891105,6.6,0.1,18.3,-2.2,2.4 +19891106,11.5,7.8,18.9,8.9,2.7 +19891107,11.7,10.9,16.7,8.3,1.3 +19891108,14.8,13.8,18.3,8.9,3.9 +19891109,13.4,8.3,18.9,8.9,5.8 +19891110,5.9,-1.2,17.2,-2.2,3.1 +19891111,9.3,0.3,22.8,-2.2,2.3 +19891112,13.9,3.8,23.3,-1.1,2.2 +19891113,11.5,4.4,23.9,2.8,1.9 +19891114,10.8,6.6,23.3,2.8,2.0 +19891115,14.7,13.6,18.9,13.3,3.0 +19891116,8.8,3.6,17.8,1.1,5.9 +19891117,-0.6,-6.0,5.6,-4.4,4.4 +19891118,2.6,-5.4,11.7,-4.4,4.0 +19891119,5.2,-4.8,14.4,-2.8,2.5 +19891120,8.1,0.0,21.7,-1.1,2.9 +19891121,11.1,-2.6,21.7,-1.1,9.4 +19891122,1.9,-4.7,5.6,-1.1,2.8 +19891123,0.6,-2.4,3.3,-2.8,6.3 +19891124,-1.9,-8.6,5.6,-7.2,2.7 +19891125,2.8,-3.7,13.3,-7.2,3.1 +19891126,10.4,7.7,14.4,6.7,3.3 +19891127,9.9,9.8,14.4,6.7,2.2 +19891128,13.3,11.2,16.7,7.8,4.4 +19891129,3.8,-2.3,16.7,0.6,7.3 +19891130,1.3,-7.8,8.9,-3.3,6.3 +19891201,4.3,-8.1,12.8,-3.3,4.1 +19891202,2.9,-6.7,15.0,-3.9,1.4 +19891203,-0.7,-11.6,11.1,-6.1,8.0 +19891204,-3.1,-13.1,7.8,-8.9,5.2 +19891205,4.7,-7.2,15.0,-8.9,2.5 +19891206,6.8,-0.5,19.4,-1.1,1.4 +19891207,9.7,4.1,20.6,-1.1,3.4 +19891208,2.5,1.8,12.2,0.6,2.3 +19891209,0.5,-0.6,3.3,0.0,1.8 +19891210,2.7,0.3,7.8,0.0,4.4 +19891211,1.7,0.0,7.8,-2.2,2.4 +19891212,3.5,3.0,7.2,-2.2,3.5 +19891213,-1.3,-3.0,5.0,-3.3,6.0 +19891214,-3.6,-6.4,1.7,-8.3,2.7 +19891215,-0.3,-3.6,2.8,-8.3,3.9 +19891216,-8.4,-13.9,2.8,-13.9,8.2 +19891217,-7.6,-14.1,-2.8,-13.9,2.5 +19891218,-2.1,-11.6,3.3,-10.0,3.1 +19891219,-1.5,-5.8,3.9,-4.4,3.6 +19891220,-1.1,-7.5,2.8,-5.6,6.7 +19891221,-3.6,-7.8,3.3,-7.8,4.8 +19891222,-10.8,-18.3,1.7,-14.4,8.2 +19891223,-14.4,-21.9,-8.3,-17.2,7.7 +19891224,-11.3,-19.3,-1.7,-17.2,6.3 +19891225,-6.3,-15.4,-1.1,-16.7,3.2 +19891226,-2.4,-5.7,1.7,-10.6,4.4 +19891227,-2.8,-6.7,6.7,-8.3,3.1 +19891228,2.9,-3.8,11.7,-8.3,3.8 +19891229,0.8,-4.7,11.7,-6.7,1.6 +19891230,7.3,3.8,12.2,2.2,2.9 +19891231,10.2,9.3,12.8,1.7,2.9 +19900101,3.2,-1.4,13.3,-0.6,7.0 +19900102,-1.4,-6.2,6.1,-7.2,2.8 +19900103,3.6,-2.9,14.4,-7.2,2.6 +19900104,9.4,7.4,14.4,7.8,4.2 +19900105,7.8,6.3,12.8,1.7,1.7 +19900106,7.7,6.1,12.8,1.7,2.8 +19900107,5.1,0.5,9.4,3.9,1.9 +19900108,4.8,4.1,8.3,3.3,3.1 +19900109,3.8,0.6,14.4,-0.6,3.1 +19900110,8.2,-2.4,14.4,-0.6,5.8 +19900111,5.0,-3.8,20.0,-4.4,2.1 +19900112,5.0,-8.8,20.0,-4.4,7.4 +19900113,-1.9,-11.5,10.6,-6.1,8.3 +19900114,0.9,-10.7,11.1,-6.1,2.6 +19900115,6.2,-5.8,16.7,-4.4,2.7 +19900116,6.5,3.0,17.8,-1.7,1.6 +19900117,8.4,5.2,18.9,-0.6,2.3 +19900118,14.3,10.5,19.4,11.7,2.8 +19900119,10.2,7.4,20.0,7.8,2.9 +19900120,7.9,6.3,11.7,5.0,3.0 +19900121,10.9,8.2,12.8,5.0,4.7 +19900122,5.5,-2.3,14.4,0.0,5.6 +19900123,5.5,-2.9,15.0,-2.8,2.7 +19900124,8.6,1.9,15.0,6.7,1.8 +19900125,8.7,8.3,12.2,6.7,3.1 +19900126,2.1,-5.4,12.2,-2.2,6.4 +19900127,0.7,-6.1,11.1,-6.1,2.5 +19900128,3.7,-3.7,15.0,-6.1,2.0 +19900129,8.1,4.4,15.6,-5.0,3.3 +19900130,3.6,-3.6,13.3,-3.3,4.5 +19900131,5.8,-3.9,15.6,-3.3,3.1 +19900201,5.5,-2.8,16.7,-2.8,3.3 +19900202,12.1,9.1,20.6,-2.8,2.7 +19900203,12.4,11.4,21.1,3.3,2.6 +19900204,13.3,11.0,20.0,7.2,4.3 +19900205,6.0,-3.1,20.0,-0.6,6.7 +19900206,4.4,-4.7,15.0,-3.3,2.7 +19900207,8.8,4.5,15.0,-3.3,3.9 +19900208,5.3,2.2,15.0,-0.6,2.2 +19900209,10.5,7.3,15.6,-0.6,4.0 +19900210,10.9,9.6,13.9,5.6,5.9 +19900211,4.6,-1.1,13.9,-2.2,2.5 +19900212,7.9,-2.6,15.6,-2.2,4.5 +19900213,7.5,-0.7,16.1,-1.1,3.3 +19900214,11.7,4.1,20.0,-1.1,2.6 +19900215,14.8,10.3,20.6,12.8,4.8 +19900216,14.8,13.6,18.3,12.8,3.1 +19900217,8.1,2.7,15.6,3.9,5.9 +19900218,2.6,-3.3,10.6,0.6,2.7 +19900219,6.7,4.4,12.8,0.6,4.1 +19900220,7.6,-4.1,13.3,1.1,5.1 +19900221,3.8,-6.0,13.3,-2.8,2.6 +19900222,9.6,4.6,15.6,5.6,4.4 +19900223,12.4,8.5,16.1,5.6,6.0 +19900224,4.4,-4.8,14.4,-0.6,6.1 +19900225,-2.9,-14.9,10.0,-7.8,8.2 +19900226,-3.4,-13.8,2.8,-7.8,4.2 +19900227,3.6,-7.3,17.2,-7.8,2.1 +19900228,8.3,1.6,17.8,-6.1,3.5 +19900301,6.3,0.7,14.4,1.1,4.0 +19900302,6.1,4.2,9.4,3.3,2.8 +19900303,9.0,4.9,13.3,3.3,4.5 +19900304,7.3,-3.4,13.9,0.6,3.2 +19900305,6.6,1.3,15.0,0.0,2.2 +19900306,8.6,0.4,18.9,-0.6,1.9 +19900307,7.2,1.8,19.4,1.7,2.6 +19900308,3.3,-2.4,10.0,0.6,3.7 +19900309,9.1,7.4,16.7,0.6,3.1 +19900310,14.2,11.6,21.1,5.6,2.4 +19900311,15.8,11.6,25.0,8.9,2.0 +19900312,17.7,10.8,26.7,7.2,2.0 +19900313,17.5,10.0,27.2,7.2,2.2 +19900314,18.2,9.6,26.1,9.4,3.6 +19900315,17.5,13.2,25.0,9.4,4.8 +19900316,16.4,15.4,20.0,15.0,3.2 +19900317,13.3,11.7,17.2,10.0,4.5 +19900318,10.1,0.1,15.6,5.6,6.3 +19900319,9.3,1.5,17.8,3.9,3.9 +19900320,-0.1,-5.7,3.3,-3.3,10.0 +19900321,4.4,-7.6,16.7,-3.3,5.1 +19900322,8.1,-3.0,17.8,-2.8,3.4 +19900323,12.0,1.3,21.7,-2.2,2.7 +19900324,12.2,5.7,22.8,1.7,2.8 +19900325,10.6,7.3,19.4,5.0,4.6 +19900326,7.5,4.0,15.0,5.0,5.5 +19900327,6.6,-1.3,15.6,-1.1,3.6 +19900328,6.9,0.7,15.6,-1.1,2.6 +19900329,7.7,4.6,13.3,1.1,2.1 +19900330,6.3,5.5,8.9,5.0,3.3 +19900331,11.8,9.4,20.6,5.0,3.0 +19900401,15.2,10.0,22.2,6.7,2.5 +19900402,14.6,7.0,22.8,5.0,2.3 +19900403,5.7,-0.5,16.7,2.8,7.6 +19900404,6.1,-2.8,15.0,2.2,6.8 +19900405,10.0,-1.1,20.6,0.6,2.2 +19900406,11.4,2.7,21.1,0.6,3.2 +19900407,4.2,-4.6,18.3,-0.6,8.5 +19900408,4.9,-8.3,15.0,-2.8,3.4 +19900409,8.1,-2.5,16.7,-2.8,3.1 +19900410,11.6,7.2,16.7,-1.1,4.1 +19900411,9.7,5.8,16.1,6.7,6.0 +19900412,5.9,-4.8,11.7,1.7,5.4 +19900413,5.3,-4.2,14.4,-2.8,2.6 +19900414,10.4,-0.8,17.2,-2.8,3.2 +19900415,13.5,7.4,19.4,4.4,4.0 +19900416,14.9,3.6,21.1,7.8,3.7 +19900417,14.4,6.4,25.0,4.4,3.1 +19900418,8.1,-1.6,15.0,1.1,5.8 +19900419,7.7,-3.1,15.6,-0.6,3.7 +19900420,12.8,3.4,16.1,11.1,3.6 +19900421,16.1,11.6,21.1,11.1,4.5 +19900422,17.1,11.2,23.9,11.7,3.2 +19900423,18.2,11.3,25.0,11.1,2.7 +19900424,18.3,11.6,27.2,9.4,2.2 +19900425,17.7,11.8,27.2,9.4,2.4 +19900426,19.8,9.8,27.8,9.4,2.6 +19900427,18.7,8.6,27.8,7.8,2.9 +19900428,15.9,10.8,26.7,7.8,4.3 +19900429,12.2,8.9,18.3,7.8,2.3 +19900430,17.2,13.6,26.7,7.8,2.3 +19900501,20.8,16.2,28.3,10.6,3.2 +19900502,18.9,14.3,28.3,11.7,4.1 +19900503,17.6,16.2,26.7,11.7,2.5 +19900504,18.4,16.4,23.3,14.4,4.0 +19900505,19.5,14.1,25.0,15.0,3.7 +19900506,10.7,4.6,16.7,5.6,6.2 +19900507,11.8,5.7,21.1,5.6,3.6 +19900508,14.0,6.0,23.9,3.9,2.4 +19900509,14.9,11.2,24.4,13.3,3.3 +19900510,15.8,11.4,21.1,12.8,4.4 +19900511,12.6,1.7,21.1,5.6,4.1 +19900512,14.6,7.2,22.2,5.6,3.6 +19900513,19.2,13.0,25.6,9.4,4.6 +19900514,18.9,12.2,28.3,10.0,2.2 +19900515,19.7,13.7,28.9,10.0,2.8 +19900516,21.6,15.8,28.3,11.7,4.6 +19900517,19.8,14.5,28.3,15.0,3.8 +19900518,17.1,4.0,24.4,12.2,5.5 +19900519,16.2,7.6,25.0,8.9,2.5 +19900520,18.2,12.8,26.1,8.9,2.3 +19900521,19.8,16.0,26.7,13.9,2.3 +19900522,16.1,13.1,26.7,11.7,4.7 +19900523,13.8,9.6,20.6,8.9,4.1 +19900524,16.6,10.8,22.2,8.9,2.5 +19900525,17.3,13.6,23.9,10.0,1.8 +19900526,20.8,15.9,26.7,12.8,3.6 +19900527,20.2,16.5,27.8,15.0,2.8 +19900528,17.4,17.1,18.9,15.0,2.8 +19900529,15.1,13.2,20.0,12.2,5.1 +19900530,15.8,8.9,21.7,10.6,6.8 +19900531,16.8,11.5,23.3,10.6,2.9 +19900601,18.6,14.4,23.9,10.6,3.0 +19900602,18.6,16.0,22.8,13.3,3.4 +19900603,20.5,17.9,27.2,16.7,3.7 +19900604,19.7,14.9,27.8,13.3,4.2 +19900605,16.8,12.3,26.1,10.0,3.3 +19900606,19.3,15.1,26.1,10.0,2.8 +19900607,22.7,18.4,30.0,12.2,3.1 +19900608,23.5,20.8,30.0,15.6,2.6 +19900609,22.6,19.9,30.6,17.2,3.0 +19900610,20.3,18.1,28.9,16.1,3.6 +19900611,20.0,12.5,26.7,15.6,6.5 +19900612,18.9,11.9,27.2,10.6,2.7 +19900613,20.5,13.9,28.3,10.6,2.4 +19900614,21.9,17.1,29.4,12.2,2.9 +19900615,23.2,19.8,30.0,14.4,3.6 +19900616,21.7,19.5,28.3,18.9,2.3 +19900617,22.7,18.7,30.0,18.9,1.8 +19900618,23.9,19.6,31.7,16.7,2.4 +19900619,24.4,17.6,31.7,16.7,4.3 +19900620,22.3,13.4,30.0,13.9,2.5 +19900621,23.3,18.7,30.6,13.9,3.1 +19900622,23.8,19.1,30.6,16.7,2.3 +19900623,23.5,14.8,31.1,16.7,4.3 +19900624,19.4,12.6,27.2,12.2,3.4 +19900625,19.2,12.7,26.7,11.7,2.4 +19900626,20.6,14.0,28.3,11.7,2.2 +19900627,21.4,15.9,29.4,12.2,1.6 +19900628,21.6,16.4,31.1,13.9,2.1 +19900629,22.8,17.9,31.1,13.9,2.2 +19900630,24.8,18.4,33.3,15.0,2.8 +19900701,25.8,18.9,33.3,17.2,2.6 +19900702,23.8,15.4,32.2,18.3,3.9 +19900703,21.6,13.3,30.0,12.8,2.2 +19900704,23.3,14.9,32.8,12.8,2.4 +19900705,24.5,15.7,32.8,13.9,2.9 +19900706,25.1,17.3,33.3,14.4,4.2 +19900707,25.2,18.2,33.3,16.1,2.1 +19900708,24.2,19.9,34.4,16.1,2.2 +19900709,23.7,20.3,32.2,18.9,2.4 +19900710,24.6,20.4,32.2,18.9,2.4 +19900711,24.4,20.0,32.8,18.3,2.2 +19900712,23.1,20.4,32.2,18.3,2.4 +19900713,22.1,20.0,27.8,18.9,2.8 +19900714,20.7,20.4,27.2,19.4,3.8 +19900715,21.4,18.7,25.0,18.3,2.4 +19900716,20.2,15.6,26.7,13.3,2.4 +19900717,21.4,17.5,27.8,13.3,1.3 +19900718,21.7,19.0,28.3,16.7,1.7 +19900719,20.9,18.8,27.2,17.8,1.4 +19900720,20.9,19.6,27.2,17.8,2.4 +19900721,21.6,19.7,27.2,18.3,2.7 +19900722,23.2,20.3,28.9,18.3,2.0 +19900723,22.6,19.7,30.0,18.9,3.4 +19900724,22.2,18.4,28.9,17.8,2.5 +19900725,20.9,18.8,27.2,17.8,1.9 +19900726,20.6,16.8,27.2,14.4,1.4 +19900727,21.7,16.0,27.8,13.9,2.4 +19900728,21.8,17.6,28.3,13.9,2.4 +19900729,23.2,19.8,29.4,16.1,1.6 +19900730,22.6,19.0,30.6,16.1,1.9 +19900731,23.7,19.7,30.6,16.1,3.4 +19900801,22.1,18.1,31.1,16.1,2.2 +19900802,21.4,18.0,28.9,16.1,2.2 +19900803,22.4,19.0,28.9,17.2,2.4 +19900804,22.9,19.7,30.0,17.2,1.9 +19900805,23.9,20.4,30.0,17.8,2.0 +19900806,23.1,19.9,31.1,19.4,4.1 +19900807,21.6,16.7,27.8,16.7,4.9 +19900808,20.6,17.1,27.2,16.7,2.1 +19900809,21.8,17.9,25.6,16.7,1.9 +19900810,19.0,16.2,26.1,15.6,2.4 +19900811,20.1,15.5,28.3,12.8,2.3 +19900812,21.4,16.8,29.4,12.8,1.4 +19900813,20.6,17.9,30.6,15.0,2.4 +19900814,21.0,19.1,28.9,15.0,2.2 +19900815,22.7,19.9,30.0,17.2,2.0 +19900816,22.8,18.9,30.6,17.8,2.0 +19900817,22.2,16.9,30.6,15.6,1.9 +19900818,24.3,19.8,31.1,15.6,2.3 +19900819,24.2,19.5,32.8,16.7,2.3 +19900820,24.4,20.3,33.3,16.7,1.7 +19900821,21.8,20.2,33.9,17.8,1.9 +19900822,21.3,19.9,31.1,17.8,3.3 +19900823,22.3,19.5,28.3,18.3,2.2 +19900824,22.3,19.9,28.9,18.3,2.0 +19900825,23.7,21.4,28.3,18.3,2.4 +19900826,24.5,20.9,31.1,20.0,2.0 +19900827,24.0,19.9,31.7,18.3,2.6 +19900828,23.8,18.4,33.3,16.7,2.1 +19900829,23.1,19.1,33.3,16.7,2.4 +19900830,20.8,18.2,31.1,16.7,2.5 +19900831,19.6,18.0,26.7,17.2,2.1 +19900901,20.9,18.2,27.2,16.1,1.6 +19900902,22.6,19.6,29.4,16.1,3.0 +19900903,22.8,19.6,30.0,17.8,2.4 +19900904,21.5,18.1,30.0,17.2,2.1 +19900905,22.7,18.3,29.4,16.7,3.0 +19900906,22.6,17.8,32.2,15.6,2.0 +19900907,24.4,19.4,32.8,15.6,1.5 +19900908,23.0,20.1,32.8,17.2,2.1 +19900909,21.7,20.3,30.0,18.3,2.6 +19900910,22.2,19.5,30.0,18.3,1.9 +19900911,20.8,18.4,30.0,16.7,2.5 +19900912,21.5,19.3,29.4,16.7,1.9 +19900913,20.4,19.6,28.3,18.3,1.6 +19900914,21.1,19.7,25.0,18.3,2.2 +19900915,20.6,17.0,24.4,17.2,3.7 +19900916,17.1,12.3,25.0,10.0,2.6 +19900917,16.3,10.5,24.4,10.0,3.0 +19900918,14.2,9.9,23.3,7.8,2.6 +19900919,16.9,13.7,24.4,7.8,1.8 +19900920,21.4,18.2,28.3,11.1,2.9 +19900921,19.6,17.1,28.3,15.0,2.1 +19900922,20.3,18.2,26.1,15.0,3.9 +19900923,13.5,7.8,25.0,8.3,4.8 +19900924,11.2,3.9,17.8,6.1,6.2 +19900925,10.9,6.2,21.7,2.2,1.0 +19900926,14.5,9.7,25.0,2.2,2.3 +19900927,16.2,11.7,25.0,6.1,1.2 +19900928,15.6,12.1,25.0,7.8,1.3 +19900929,17.6,14.8,24.4,7.8,1.5 +19900930,17.4,15.0,25.0,12.8,1.6 +19901001,16.5,14.8,25.0,11.7,0.8 +19901002,15.8,11.2,26.1,8.3,1.6 +19901003,15.6,13.2,26.1,8.3,2.0 +19901004,19.6,18.0,23.3,17.8,4.8 +19901005,16.6,11.2,25.0,8.3,3.3 +19901006,14.7,10.4,25.0,6.1,2.0 +19901007,15.6,12.1,26.1,6.1,2.2 +19901008,20.1,17.4,26.7,17.8,2.1 +19901009,19.4,16.1,26.1,14.4,1.7 +19901010,17.5,16.7,25.6,14.4,2.3 +19901011,16.1,14.8,20.6,11.7,4.0 +19901012,17.7,17.5,20.6,11.7,2.4 +19901013,18.6,17.2,22.8,16.7,3.3 +19901014,17.7,15.0,23.9,14.4,2.8 +19901015,15.7,11.8,25.0,9.4,3.6 +19901016,14.1,10.2,22.8,7.8,2.2 +19901017,14.9,11.9,22.8,7.8,2.3 +19901018,18.2,14.4,23.3,10.0,4.6 +19901019,9.2,1.0,23.3,3.3,6.9 +19901020,8.2,3.8,17.8,0.6,2.2 +19901021,10.9,7.8,18.3,0.6,1.1 +19901022,14.8,14.4,18.3,6.1,1.0 +19901023,14.6,13.5,16.7,12.2,3.5 +19901024,13.0,8.7,19.4,8.3,5.4 +19901025,8.0,5.9,19.4,5.6,6.4 +19901026,6.1,-0.5,10.6,2.8,8.8 +19901027,6.6,-0.1,17.8,-1.7,2.5 +19901028,8.7,1.5,18.3,-1.7,4.2 +19901029,8.2,-4.1,17.2,0.0,4.9 +19901030,8.1,-1.7,21.1,-2.2,2.0 +19901031,10.3,-0.2,23.9,-2.2,2.0 +19901101,11.0,1.4,23.9,0.0,0.8 +19901102,11.3,4.1,24.4,0.6,1.3 +19901103,11.2,3.9,23.3,1.1,1.2 +19901104,11.2,5.8,24.4,1.1,1.3 +19901105,13.9,12.1,23.3,1.7,3.2 +19901106,9.3,4.3,19.4,4.4,6.7 +19901107,7.3,3.4,19.4,-1.7,2.1 +19901108,8.1,0.3,19.4,-1.7,5.1 +19901109,4.6,-1.6,12.8,2.2,3.0 +19901110,6.6,4.8,8.9,2.8,4.7 +19901111,6.5,-0.9,15.0,0.0,5.6 +19901112,11.2,2.9,17.2,0.0,5.1 +19901113,8.8,-2.3,17.8,2.2,5.3 +19901114,7.8,1.5,18.9,-0.6,2.3 +19901115,8.4,2.8,20.6,-1.1,1.4 +19901116,10.1,4.9,21.1,-1.1,2.5 +19901117,8.3,2.3,20.0,1.7,6.7 +19901118,6.8,-3.3,16.1,-1.1,3.8 +19901119,5.7,-1.4,17.2,-3.3,2.8 +19901120,9.3,3.2,17.8,-3.3,2.7 +19901121,8.2,4.9,18.3,0.6,0.7 +19901122,9.2,5.4,19.4,0.6,1.1 +19901123,13.5,9.6,19.4,10.0,2.2 +19901124,10.7,-0.3,18.9,3.9,3.1 +19901125,11.5,1.8,22.8,0.6,2.3 +19901126,10.4,3.7,23.3,-0.6,1.5 +19901127,14.1,9.3,22.8,7.8,2.7 +19901128,17.7,15.9,22.2,15.6,4.5 +19901129,8.3,4.1,22.2,3.3,7.7 +19901130,3.2,-7.3,11.7,-3.9,4.2 +19901201,3.1,-3.9,15.0,-6.7,2.2 +19901202,9.5,6.1,16.1,5.0,1.9 +19901203,12.8,12.3,16.7,4.4,4.8 +19901204,6.3,1.9,15.0,-1.1,7.3 +19901205,-0.3,-10.5,14.4,-5.0,5.8 +19901206,2.1,-7.8,15.0,-5.6,2.1 +19901207,4.7,-2.6,15.6,-5.6,2.9 +19901208,4.8,-1.4,8.3,2.2,5.5 +19901209,3.9,-5.1,12.8,-2.2,4.5 +19901210,7.3,-2.4,16.7,-2.2,4.2 +19901211,8.3,-0.9,16.7,-0.6,2.4 +19901212,6.2,-0.3,17.2,-2.2,2.5 +19901213,7.4,3.6,18.3,-2.2,2.0 +19901214,7.6,6.6,20.0,-1.1,3.4 +19901215,6.5,4.1,14.4,2.2,4.1 +19901216,9.4,5.9,14.4,2.2,4.9 +19901217,7.3,5.3,11.7,6.1,2.5 +19901218,12.9,11.7,17.2,6.1,5.9 +19901219,10.4,8.2,17.8,7.2,3.2 +19901220,6.9,5.0,15.6,3.3,2.4 +19901221,6.7,6.7,11.1,3.3,0.8 +19901222,12.7,12.4,16.1,4.4,3.5 +19901223,15.9,15.7,16.7,10.0,4.2 +19901224,4.0,1.4,16.7,-5.0,7.5 +19901225,-4.3,-10.0,4.4,-10.0,3.9 +19901226,-0.4,-7.8,5.0,-10.0,2.6 +19901227,-0.2,-4.8,5.6,-3.9,2.7 +19901228,1.8,1.6,7.8,-1.1,1.2 +19901229,8.8,8.5,16.7,0.0,3.5 +19901230,15.6,14.6,18.3,13.3,5.0 +19901231,7.3,5.7,18.9,0.6,7.6 +19910101,-0.1,-1.8,5.0,-3.9,2.4 +19910102,5.8,0.2,12.8,2.2,3.1 +19910103,4.2,1.2,6.7,2.8,3.5 +19910104,5.2,4.3,7.8,3.9,3.0 +19910105,4.8,4.4,8.9,3.3,3.2 +19910106,6.9,5.9,16.7,1.1,1.0 +19910107,10.8,10.7,12.8,6.7,2.7 +19910108,3.3,3.0,6.7,1.7,2.1 +19910109,4.3,3.7,10.0,2.2,3.0 +19910110,6.1,4.7,8.3,4.4,3.6 +19910111,4.2,4.1,6.1,3.3,2.6 +19910112,5.4,4.8,10.0,2.2,3.1 +19910113,-0.4,-3.4,1.7,-2.2,7.4 +19910114,-0.5,-4.7,12.2,-6.7,2.2 +19910115,-0.1,-2.3,5.6,-5.6,1.7 +19910116,9.0,5.6,16.1,5.0,3.2 +19910117,5.5,-1.0,10.0,3.3,6.8 +19910118,2.9,-3.1,11.7,-3.3,3.2 +19910119,2.3,0.3,5.6,-0.6,1.7 +19910120,5.9,4.6,10.0,3.9,3.3 +19910121,0.0,-3.4,6.1,-5.6,5.9 +19910122,-5.8,-11.4,0.0,-9.4,5.1 +19910123,-2.9,-8.7,8.3,-10.0,1.6 +19910124,0.6,-3.6,3.3,-1.7,2.8 +19910125,0.4,-7.3,6.1,-5.0,4.4 +19910126,-0.8,-6.4,9.4,-7.8,0.7 +19910127,1.0,-4.2,11.7,-6.7,1.5 +19910128,8.3,0.3,15.6,3.3,2.9 +19910129,6.3,3.4,13.9,0.0,1.7 +19910130,10.8,10.4,12.2,8.9,4.2 +19910131,4.4,-1.4,12.2,-0.6,9.0 +19910201,0.7,-11.7,10.0,-6.7,2.8 +19910202,2.6,-6.3,15.0,-6.1,1.3 +19910203,5.0,-3.5,18.9,-5.6,1.1 +19910204,6.2,-1.8,20.6,-5.0,1.6 +19910205,8.3,2.6,18.3,0.6,0.6 +19910206,11.6,10.4,15.0,9.4,2.5 +19910207,11.3,9.4,15.0,7.2,4.2 +19910208,4.8,1.2,8.3,2.8,9.0 +19910209,5.7,-4.2,16.1,-0.6,7.2 +19910210,7.8,-4.8,15.6,3.3,5.5 +19910211,5.1,-4.6,8.9,0.6,6.4 +19910212,5.6,-3.1,13.3,0.0,4.5 +19910213,4.7,1.3,10.0,-0.6,2.2 +19910214,8.2,2.1,10.6,5.0,5.0 +19910215,-5.3,-9.7,2.8,-10.6,6.8 +19910216,-10.0,-18.1,0.0,-15.6,6.7 +19910217,-1.6,-8.9,5.6,-6.1,2.6 +19910218,4.7,3.1,11.7,1.7,5.0 +19910219,10.9,9.7,16.7,6.7,4.1 +19910220,13.2,12.2,16.1,11.1,2.9 +19910221,9.9,7.4,14.4,7.2,2.6 +19910222,10.4,3.5,12.8,7.8,1.4 +19910223,7.7,0.9,11.7,5.0,2.4 +19910224,5.8,0.7,13.9,1.1,1.9 +19910225,8.3,4.5,13.9,3.3,1.6 +19910226,1.5,-2.2,7.8,-0.6,7.0 +19910227,1.1,-6.5,10.6,-6.1,2.1 +19910228,3.9,-3.4,14.4,-5.0,2.2 +19910301,5.6,2.2,12.8,-1.1,2.4 +19910302,13.7,11.5,17.8,11.1,5.3 +19910303,11.9,11.1,15.0,10.0,1.7 +19910304,2.1,0.3,11.7,-0.6,8.3 +19910305,4.6,-2.4,17.2,-1.7,4.9 +19910306,9.6,4.2,12.2,7.2,5.0 +19910307,10.7,3.8,13.9,5.6,5.1 +19910308,3.9,-0.8,8.9,0.6,5.2 +19910309,2.3,-3.8,11.1,-4.4,2.0 +19910310,1.7,-5.4,6.1,-2.2,8.3 +19910311,4.3,-5.3,12.8,-1.1,6.0 +19910312,5.1,-3.4,12.2,-1.1,2.8 +19910313,6.8,3.3,13.3,3.3,3.7 +19910314,7.2,5.0,9.4,5.0,3.9 +19910315,5.7,0.1,12.8,2.2,5.9 +19910316,6.8,-0.5,16.7,1.1,1.5 +19910317,7.3,1.3,11.7,3.3,2.9 +19910318,9.9,6.8,17.2,5.6,3.7 +19910319,8.4,0.2,12.8,4.4,8.4 +19910320,10.0,0.6,21.1,1.1,2.2 +19910321,15.3,4.2,24.4,6.1,2.0 +19910322,17.8,13.4,22.2,14.4,4.3 +19910323,18.8,10.4,22.8,15.6,4.2 +19910324,18.1,-4.3,22.8,13.3,6.0 +19910325,14.7,-0.8,23.3,7.2,3.8 +19910326,12.9,1.8,23.9,2.2,2.9 +19910327,17.5,8.1,21.7,11.7,4.0 +19910328,18.4,12.3,22.8,13.3,4.2 +19910329,11.4,9.8,17.2,10.0,2.3 +19910330,5.9,3.2,12.2,1.1,7.1 +19910331,3.6,-0.9,12.2,-1.7,2.7 +19910401,8.9,0.2,18.3,1.1,3.1 +19910402,12.3,-0.1,20.0,1.7,3.5 +19910403,11.3,1.2,18.3,3.9,2.4 +19910404,10.6,5.9,16.1,4.4,1.7 +19910405,12.8,11.8,18.3,11.1,1.3 +19910406,14.7,10.6,24.4,7.2,1.0 +19910407,16.2,10.1,25.0,6.1,1.6 +19910408,19.2,14.3,22.8,16.1,4.2 +19910409,18.7,15.2,25.6,12.2,3.1 +19910410,15.4,6.8,21.7,10.0,4.6 +19910411,13.9,2.8,21.7,6.7,4.0 +19910412,12.7,6.8,17.8,8.9,2.1 +19910413,10.4,9.3,13.3,8.9,2.9 +19910414,15.4,14.3,20.0,12.2,3.3 +19910415,16.9,14.0,25.0,11.1,4.4 +19910416,17.6,9.5,25.0,8.9,2.3 +19910417,17.8,8.9,27.2,8.9,1.4 +19910418,17.8,9.4,25.6,8.9,2.4 +19910419,15.2,12.9,21.7,11.7,4.1 +19910420,12.1,10.2,21.1,8.9,3.4 +19910421,7.8,4.9,10.0,5.6,6.9 +19910422,8.2,1.6,15.0,5.0,6.1 +19910423,10.2,4.0,18.9,3.3,2.7 +19910424,14.6,6.8,21.1,6.1,4.4 +19910425,11.6,1.5,19.4,2.8,2.9 +19910426,14.1,9.2,20.0,10.6,3.0 +19910427,15.9,15.2,19.4,14.4,2.9 +19910428,18.8,16.3,26.1,15.0,2.8 +19910429,19.2,17.6,24.4,16.1,2.7 +19910430,17.4,15.7,20.0,15.6,2.8 +19910501,17.8,12.4,27.2,11.1,2.7 +19910502,16.8,6.0,21.7,11.1,6.4 +19910503,14.9,4.3,27.2,3.9,2.3 +19910504,18.9,12.8,25.0,13.9,2.3 +19910505,17.9,15.8,21.1,15.6,3.1 +19910506,18.5,15.6,22.8,15.6,3.2 +19910507,15.2,5.0,21.1,8.9,5.8 +19910508,13.8,6.4,21.7,5.0,2.5 +19910509,15.2,12.5,18.9,12.8,2.2 +19910510,17.6,15.5,24.4,15.0,1.2 +19910511,20.6,16.6,25.6,16.7,2.3 +19910512,19.1,16.9,22.8,16.1,2.0 +19910513,19.8,16.6,26.1,15.6,2.2 +19910514,20.9,17.4,27.8,16.7,2.8 +19910515,20.9,17.5,27.2,15.6,1.8 +19910516,20.2,18.3,25.0,17.2,1.9 +19910517,21.3,18.4,27.2,17.8,2.4 +19910518,21.3,18.1,27.8,16.1,1.7 +19910519,17.5,16.0,23.3,13.3,2.1 +19910520,11.9,10.7,15.0,10.6,1.5 +19910521,14.6,13.4,18.9,12.2,1.5 +19910522,17.7,15.4,21.1,14.4,1.2 +19910523,19.6,16.4,25.0,16.1,2.0 +19910524,20.6,16.3,26.1,16.1,2.3 +19910525,20.4,16.7,25.6,15.0,2.6 +19910526,21.4,17.1,27.2,16.7,2.9 +19910527,21.9,20.2,26.7,20.0,3.0 +19910528,22.2,20.5,26.1,19.4,2.0 +19910529,23.2,20.5,30.0,19.4,2.3 +19910530,23.0,19.8,28.9,18.9,2.8 +19910531,24.1,19.2,31.1,18.3,3.5 +19910601,23.1,17.6,28.9,17.8,3.9 +19910602,23.1,17.4,30.6,17.8,3.7 +19910603,22.7,17.8,28.9,18.3,3.6 +19910604,22.4,17.3,28.3,17.8,4.6 +19910605,19.6,12.2,24.4,16.1,3.0 +19910606,17.5,10.1,20.6,13.3,2.2 +19910607,15.4,9.4,22.2,7.8,1.8 +19910608,16.9,10.1,24.4,8.3,2.5 +19910609,18.3,11.1,26.1,10.6,1.7 +19910610,19.7,11.8,27.2,11.1,1.9 +19910611,20.3,13.8,26.1,12.8,2.1 +19910612,19.8,16.7,23.3,17.2,2.1 +19910613,21.8,17.9,28.9,17.2,2.7 +19910614,21.8,19.2,27.2,18.3,1.4 +19910615,22.3,19.3,28.3,18.9,3.0 +19910616,22.3,19.8,28.9,18.9,1.9 +19910617,21.4,19.2,28.3,17.8,2.5 +19910618,21.7,19.1,27.8,18.3,2.5 +19910619,22.1,19.1,26.7,18.9,2.5 +19910620,21.5,19.9,24.4,20.0,1.6 +19910621,22.4,19.8,28.9,20.0,1.7 +19910622,21.1,18.2,27.2,17.2,2.8 +19910623,21.2,18.8,27.2,17.8,3.1 +19910624,18.5,15.9,23.9,16.7,2.8 +19910625,17.6,15.6,19.4,16.7,2.0 +19910626,16.4,15.3,18.3,15.0,1.1 +19910627,18.9,16.3,23.9,16.1,2.1 +19910628,22.2,18.1,28.3,17.2,1.7 +19910629,23.7,19.5,30.0,18.3,2.5 +19910630,23.5,20.0,29.4,18.3,2.3 +19910701,24.1,20.2,31.7,18.3,2.2 +19910702,23.3,19.9,31.1,19.4,2.0 +19910703,23.4,18.9,30.0,17.8,3.0 +19910704,23.4,19.3,30.0,18.9,1.7 +19910705,22.3,18.7,27.2,18.9,2.5 +19910706,22.1,16.9,29.4,15.6,2.0 +19910707,23.4,18.8,30.0,17.8,2.3 +19910708,23.6,19.3,29.4,18.9,3.3 +19910709,24.2,18.9,30.6,18.3,3.3 +19910710,22.8,18.9,30.0,17.2,2.9 +19910711,23.1,19.2,28.3,18.9,4.4 +19910712,24.0,19.5,30.6,18.3,1.7 +19910713,24.9,18.5,30.0,20.0,4.4 +19910714,24.1,17.5,28.9,19.4,4.0 +19910715,22.8,17.1,27.8,17.8,2.9 +19910716,21.8,17.9,25.6,17.8,2.1 +19910717,20.7,18.9,24.4,18.9,2.4 +19910718,21.2,19.2,25.6,19.4,3.4 +19910719,22.7,19.4,30.0,18.9,2.4 +19910720,23.0,19.7,30.0,18.9,1.8 +19910721,24.2,20.3,31.7,19.4,2.6 +19910722,25.1,20.0,32.2,18.9,2.1 +19910723,25.7,19.3,32.2,19.4,3.1 +19910724,25.1,19.7,31.7,19.4,3.7 +19910725,22.1,19.4,28.3,18.3,2.7 +19910726,22.7,20.0,27.2,19.4,2.2 +19910727,23.0,19.9,28.3,20.0,2.7 +19910728,20.4,19.2,23.9,18.9,2.1 +19910729,21.7,19.5,25.6,19.4,2.4 +19910730,22.6,19.5,28.9,19.4,2.5 +19910731,22.8,19.8,27.2,19.4,2.6 +19910801,21.9,19.9,26.1,19.4,2.7 +19910802,22.0,18.9,28.9,16.7,2.6 +19910803,23.9,19.5,30.6,18.9,3.2 +19910804,23.7,18.6,31.7,16.7,2.8 +19910805,23.1,20.1,28.9,19.4,2.8 +19910806,23.6,20.2,31.7,19.4,1.9 +19910807,22.7,19.7,31.1,18.9,1.7 +19910808,23.1,20.2,30.6,19.4,2.9 +19910809,22.3,20.7,27.2,20.0,2.4 +19910810,21.6,19.8,26.1,17.8,2.3 +19910811,21.2,18.0,26.1,17.8,2.7 +19910812,19.6,18.1,23.3,18.3,1.7 +19910813,19.3,16.8,23.3,16.7,1.9 +19910814,18.7,18.1,21.1,17.2,2.6 +19910815,19.1,15.7,26.1,13.9,3.0 +19910816,20.0,14.9,27.2,13.9,2.4 +19910817,20.5,16.4,27.8,15.0,1.6 +19910818,20.9,17.1,28.3,14.4,1.6 +19910819,22.4,17.8,28.9,17.8,3.0 +19910820,19.6,15.2,23.9,15.6,4.2 +19910821,18.6,13.1,25.0,13.3,3.6 +19910822,19.8,14.6,25.6,15.6,2.8 +19910823,19.3,14.7,26.1,12.8,1.3 +19910824,20.7,16.3,27.2,15.6,2.3 +19910825,20.3,18.8,23.9,18.3,1.4 +19910826,19.3,18.5,20.0,18.3,1.9 +19910827,21.6,19.1,27.2,18.3,1.8 +19910828,23.0,19.9,28.9,18.9,2.4 +19910829,22.9,20.6,28.3,20.0,2.1 +19910830,22.8,19.3,28.9,18.3,1.5 +19910831,23.1,19.2,31.1,17.8,2.5 +19910901,22.4,19.0,28.9,17.2,1.8 +19910902,19.3,16.2,22.2,17.2,2.9 +19910903,17.3,14.3,21.7,13.3,1.9 +19910904,19.4,16.3,26.7,15.0,1.8 +19910905,21.4,18.2,27.8,17.2,2.1 +19910906,20.6,18.8,25.0,17.8,2.4 +19910907,21.1,18.6,26.7,17.8,2.6 +19910908,21.4,18.4,25.6,18.9,2.6 +19910909,20.2,16.4,26.1,16.1,1.8 +19910910,18.8,15.6,25.6,12.8,1.6 +19910911,21.5,17.9,28.9,16.1,2.7 +19910912,22.5,17.6,29.4,17.2,3.1 +19910913,21.3,17.6,29.4,15.0,2.2 +19910914,24.1,19.6,32.2,18.3,2.5 +19910915,23.2,18.9,33.3,17.8,1.5 +19910916,22.7,19.3,31.7,17.8,2.1 +19910917,22.9,19.7,30.0,17.8,2.1 +19910918,22.4,19.9,29.4,18.9,2.2 +19910919,20.2,18.0,26.1,14.4,3.6 +19910920,14.4,7.6,20.0,11.1,6.0 +19910921,12.5,7.4,18.9,6.7,2.0 +19910922,12.1,7.7,20.0,5.6,2.1 +19910923,15.1,10.7,23.3,8.3,1.9 +19910924,16.9,14.4,21.1,13.3,2.1 +19910925,16.7,15.3,21.1,15.0,2.7 +19910926,13.9,9.0,20.0,8.9,5.6 +19910927,12.4,4.1,19.4,7.2,5.0 +19910928,12.2,4.6,23.3,3.9,2.2 +19910929,14.3,8.4,25.0,6.1,2.0 +19910930,15.6,10.4,25.0,8.3,1.5 +19911001,15.2,10.7,22.2,7.8,1.5 +19911002,15.5,12.5,21.7,11.1,1.0 +19911003,16.7,13.6,24.4,11.1,1.3 +19911004,17.8,13.6,25.6,12.2,2.1 +19911005,19.3,16.1,26.1,15.0,3.2 +19911006,11.7,4.9,18.9,6.7,8.5 +19911007,7.4,-2.3,13.9,3.3,5.5 +19911008,7.1,-0.4,16.7,-1.1,2.2 +19911009,9.2,0.2,20.0,0.0,1.6 +19911010,10.9,4.5,21.7,2.2,1.8 +19911011,13.3,6.3,22.8,3.9,2.5 +19911012,12.9,2.1,20.0,4.4,3.0 +19911013,10.4,1.3,18.9,2.8,2.7 +19911014,8.4,2.3,18.3,0.6,2.8 +19911015,11.8,8.9,15.0,8.9,2.8 +19911016,9.9,3.8,13.3,7.2,6.2 +19911017,9.3,-0.9,19.4,2.2,4.6 +19911018,11.2,-1.1,26.1,0.0,2.1 +19911019,14.2,0.0,25.0,4.4,3.3 +19911020,12.8,7.4,17.8,7.8,3.5 +19911021,10.2,6.4,16.7,5.0,2.9 +19911022,14.1,9.4,22.8,10.0,2.7 +19911023,14.4,10.4,23.3,7.2,2.1 +19911024,18.2,14.0,21.7,13.9,2.9 +19911025,17.8,13.0,22.8,14.4,2.3 +19911026,16.2,10.9,22.8,11.1,2.3 +19911027,17.2,11.6,25.0,11.1,1.4 +19911028,17.9,11.7,26.1,10.0,1.6 +19911029,16.4,6.2,21.7,10.0,3.5 +19911030,11.5,1.1,23.9,2.8,2.4 +19911031,17.3,4.0,25.0,12.8,3.8 +19911101,10.9,5.8,17.2,6.1,2.4 +19911102,9.6,4.6,13.3,4.4,6.1 +19911103,5.1,-2.1,11.1,1.7,6.1 +19911104,0.9,-8.9,4.4,-3.3,7.6 +19911105,-0.1,-10.1,8.3,-6.7,3.8 +19911106,2.3,-7.4,13.3,-6.7,2.2 +19911107,5.6,-4.7,13.9,0.0,2.6 +19911108,4.9,-1.9,7.8,1.7,5.4 +19911109,1.2,-2.3,2.8,0.0,5.9 +19911110,1.7,-0.6,3.3,0.6,6.5 +19911111,3.4,-3.2,9.4,0.0,7.3 +19911112,3.7,-4.7,11.1,-2.2,4.2 +19911113,6.8,-2.6,16.7,0.6,4.9 +19911114,7.9,-5.7,19.4,-0.6,2.1 +19911115,11.3,-3.9,22.8,-0.6,1.1 +19911116,12.3,3.5,21.1,4.4,3.7 +19911117,10.1,7.7,13.9,4.4,2.7 +19911118,9.9,3.5,12.2,7.2,3.7 +19911119,11.3,9.8,16.7,7.8,2.9 +19911120,15.2,13.1,19.4,12.2,2.8 +19911121,16.8,15.2,18.9,15.6,3.2 +19911122,16.1,11.8,18.3,10.6,5.4 +19911123,10.2,5.7,18.9,5.6,2.9 +19911124,5.1,-3.5,12.8,0.0,5.7 +19911125,0.3,-10.6,5.6,-3.3,5.0 +19911126,0.2,-10.6,8.3,-4.4,4.1 +19911127,0.3,-7.9,8.9,-5.6,1.9 +19911128,4.8,-4.8,17.8,-3.3,1.6 +19911129,8.1,1.8,18.3,-0.6,3.1 +19911130,14.9,12.6,16.7,12.8,3.8 +19911201,16.8,15.6,20.6,13.9,3.9 +19911202,17.6,16.1,20.0,15.0,3.4 +19911203,16.1,13.3,20.0,6.7,6.5 +19911204,0.8,-7.4,5.6,-2.8,6.9 +19911205,-2.3,-10.1,6.1,-7.2,4.4 +19911206,2.8,-4.7,12.8,-3.9,3.0 +19911207,4.2,-1.8,15.6,-3.3,1.8 +19911208,6.3,1.8,18.3,-1.1,0.7 +19911209,11.5,7.7,16.7,6.7,1.6 +19911210,9.9,3.4,13.9,3.3,4.8 +19911211,4.7,-1.4,15.6,-2.8,0.6 +19911212,6.6,3.4,11.7,1.1,1.5 +19911213,13.7,10.4,17.8,10.0,4.9 +19911214,14.1,9.1,16.1,7.8,5.6 +19911215,1.9,-11.9,7.8,-3.3,6.0 +19911216,0.5,-15.6,5.6,-3.9,5.1 +19911217,0.9,-9.0,14.4,-7.2,1.6 +19911218,3.7,-7.6,10.0,-1.1,5.0 +19911219,-1.6,-14.8,6.1,-7.2,5.6 +19911220,-1.1,-14.3,10.0,-7.8,2.4 +19911221,4.9,-5.4,12.2,1.7,3.4 +19911222,9.2,4.2,17.2,5.6,4.5 +19911223,11.1,9.6,13.9,7.2,2.0 +19911224,7.3,4.3,12.2,2.8,6.0 +19911225,2.1,-4.2,10.6,-3.9,3.8 +19911226,0.6,-4.9,11.1,-6.1,1.4 +19911227,8.1,-1.4,13.3,5.6,1.9 +19911228,4.5,0.1,10.0,2.2,2.9 +19911229,6.2,4.4,11.7,3.9,3.1 +19911230,4.6,-0.3,7.2,2.2,6.7 +19911231,1.4,-0.8,5.0,-1.7,2.0 +19920101,0.1,-3.2,6.7,-5.0,1.4 +19920102,7.3,3.1,12.2,5.0,2.8 +19920103,7.7,6.0,10.0,6.7,3.2 +19920104,8.4,6.3,11.1,6.1,6.7 +19920105,8.8,3.3,11.7,6.7,7.5 +19920106,5.5,1.3,8.3,3.3,5.6 +19920107,4.9,-1.7,14.4,-2.2,4.3 +19920108,3.7,-1.7,12.8,-3.3,2.4 +19920109,9.7,5.7,14.4,7.2,3.3 +19920110,3.9,0.7,10.0,0.6,4.6 +19920111,2.1,-6.7,11.1,-2.8,6.5 +19920112,3.0,-4.9,12.2,-2.8,2.3 +19920113,9.3,3.9,11.7,7.2,3.8 +19920114,8.5,2.4,13.3,0.0,6.2 +19920115,-0.8,-7.8,5.0,-3.9,5.0 +19920116,-5.3,-16.4,0.6,-11.7,6.9 +19920117,-3.2,-16.3,7.8,-11.7,4.5 +19920118,0.6,-9.6,4.4,-2.8,6.3 +19920119,-1.2,-14.7,2.8,-5.6,5.6 +19920120,-0.3,-11.3,10.6,-7.8,4.7 +19920121,5.5,-5.6,15.6,-2.8,3.8 +19920122,4.9,-4.4,16.1,-1.7,2.8 +19920123,8.8,2.8,13.9,5.0,4.1 +19920124,2.6,-8.1,7.2,0.0,6.7 +19920125,0.6,-11.3,10.6,-6.7,3.9 +19920126,6.8,-4.4,12.2,0.6,5.3 +19920127,3.9,-1.9,7.8,0.6,2.0 +19920128,7.4,3.8,13.9,4.4,2.0 +19920129,7.2,2.6,15.0,1.7,1.2 +19920130,6.8,2.2,13.3,2.2,1.6 +19920131,6.3,-2.3,13.3,-1.1,4.1 +19920201,4.3,-7.1,9.4,-0.6,9.3 +19920202,3.7,-10.7,15.6,-2.2,5.1 +19920203,7.5,-11.8,18.3,-0.6,3.5 +19920204,7.7,-4.8,18.3,-2.8,3.2 +19920205,8.6,-0.4,12.8,4.4,3.5 +19920206,6.5,-11.3,12.8,1.7,2.4 +19920207,3.9,-8.6,15.0,-3.3,1.5 +19920208,0.8,-8.6,7.2,-2.8,7.5 +19920209,-1.5,-13.6,7.8,-7.2,5.7 +19920210,-0.9,-12.7,5.6,-6.1,2.3 +19920211,5.0,-7.2,13.9,-1.1,3.1 +19920212,5.1,-2.5,12.2,-2.8,2.8 +19920213,5.9,1.1,10.0,1.7,3.7 +19920214,7.2,3.9,16.1,1.7,1.5 +19920215,11.1,9.4,13.9,10.0,3.7 +19920216,9.8,4.5,13.3,6.1,4.8 +19920217,2.9,-0.5,7.8,-0.6,2.2 +19920218,5.0,4.4,8.9,3.3,3.2 +19920219,10.2,4.3,16.7,6.1,3.8 +19920220,6.3,-2.2,11.1,3.3,5.9 +19920221,5.3,-3.8,18.9,-4.4,1.9 +19920222,7.7,-1.8,19.4,-1.7,2.2 +19920223,10.6,7.6,13.9,7.2,2.0 +19920224,12.6,10.2,18.9,10.0,1.5 +19920225,10.8,10.1,15.6,8.3,1.0 +19920226,9.1,7.4,11.7,5.0,4.6 +19920227,4.3,-1.6,12.2,-1.1,5.8 +19920228,7.8,-0.3,16.7,1.1,2.8 +19920229,10.1,-0.7,13.9,5.6,7.5 +19920301,5.7,-4.9,18.3,-3.3,1.5 +19920302,10.9,-1.6,23.9,0.0,2.9 +19920303,12.6,0.5,24.4,1.7,2.1 +19920304,14.3,4.1,22.8,7.8,2.3 +19920305,13.2,8.2,17.8,10.0,2.6 +19920306,12.7,12.2,13.9,11.7,3.3 +19920307,14.9,10.1,21.7,11.1,2.3 +19920308,15.5,6.3,20.6,11.7,4.3 +19920309,11.5,4.3,21.7,2.8,2.7 +19920310,14.5,9.4,17.2,11.7,4.7 +19920311,-0.7,-6.4,11.1,-5.6,8.8 +19920312,0.3,-9.8,8.3,-4.4,3.5 +19920313,1.8,-4.9,4.4,-1.1,6.2 +19920314,0.9,-7.7,9.4,-3.9,3.0 +19920315,3.7,-5.3,12.2,-2.2,3.4 +19920316,1.9,-12.9,11.1,-3.9,7.0 +19920317,7.1,-7.0,22.2,-3.9,2.9 +19920318,11.7,3.3,18.9,5.0,3.5 +19920319,11.1,8.0,18.9,7.2,3.4 +19920320,6.0,1.7,9.4,1.1,5.9 +19920321,5.5,-4.4,12.2,1.1,5.7 +19920322,4.2,0.9,11.1,-1.7,1.4 +19920323,4.7,0.1,8.9,1.1,6.6 +19920324,3.5,-5.4,12.2,-3.3,3.0 +19920325,3.2,-2.4,9.4,-1.7,2.2 +19920326,6.8,3.5,13.3,2.2,3.8 +19920327,6.3,-1.6,9.4,1.1,5.4 +19920328,6.0,-6.7,15.0,0.0,6.7 +19920329,7.8,-4.1,15.0,0.6,2.8 +19920330,11.3,3.3,13.9,8.9,4.1 +19920331,9.1,4.1,13.3,5.0,6.6 +19920401,6.3,0.8,15.6,0.0,3.9 +19920402,2.6,-5.8,6.1,-1.1,6.9 +19920403,2.2,-9.1,10.0,-2.8,4.8 +19920404,5.3,-5.6,16.7,-2.8,4.2 +19920405,6.6,-4.4,14.4,1.1,6.3 +19920406,6.7,-3.5,16.1,-1.1,2.6 +19920407,11.1,3.7,15.6,8.3,2.7 +19920408,13.9,7.3,22.8,7.8,4.9 +19920409,14.9,6.4,24.4,5.0,2.2 +19920410,17.2,8.4,26.7,7.8,2.5 +19920411,14.4,10.1,22.8,7.8,1.7 +19920412,17.2,12.1,26.1,10.6,3.8 +19920413,14.7,7.7,20.0,7.8,4.5 +19920414,14.2,4.9,25.0,4.4,2.7 +19920415,17.3,11.1,26.1,9.4,1.5 +19920416,18.7,12.9,27.2,12.8,2.4 +19920417,19.0,9.7,26.1,9.4,2.4 +19920418,20.2,10.8,25.0,15.0,3.3 +19920419,18.1,13.2,21.7,16.1,3.9 +19920420,17.3,15.6,20.0,15.0,3.8 +19920421,17.6,16.1,21.1,15.6,3.3 +19920422,16.2,7.8,23.3,8.9,3.4 +19920423,15.5,4.2,25.6,5.0,2.7 +19920424,17.7,7.7,28.9,7.2,1.7 +19920425,15.2,7.2,25.0,12.2,5.7 +19920426,7.7,1.9,11.7,5.0,5.7 +19920427,7.9,1.9,13.3,4.4,5.7 +19920428,7.2,2.2,12.2,4.4,6.5 +19920429,9.2,-0.2,18.9,1.1,3.0 +19920430,13.9,5.2,21.7,8.3,2.5 +19920501,15.6,8.1,26.7,6.1,2.5 +19920502,19.2,10.7,29.4,8.9,2.6 +19920503,20.7,10.5,25.6,17.8,5.0 +19920504,16.6,1.4,22.2,11.7,6.1 +19920505,11.1,3.7,17.8,5.0,5.0 +19920506,6.1,4.8,11.7,4.4,3.9 +19920507,4.5,3.3,6.7,2.2,4.2 +19920508,6.3,5.6,7.8,5.0,3.6 +19920509,8.4,5.9,16.1,3.9,2.3 +19920510,15.1,8.9,24.4,6.7,3.2 +19920511,16.6,9.6,26.1,7.8,2.2 +19920512,18.6,12.3,25.0,12.2,2.4 +19920513,16.7,13.8,22.2,12.8,2.7 +19920514,17.6,13.8,24.4,12.2,3.2 +19920515,19.5,15.1,24.4,14.4,2.5 +19920516,19.5,14.3,25.0,13.3,2.4 +19920517,19.3,14.1,26.1,11.7,2.4 +19920518,19.5,15.0,27.2,12.8,2.2 +19920519,18.4,16.7,23.9,16.1,2.0 +19920520,16.2,13.6,18.9,13.9,2.3 +19920521,16.7,10.4,22.8,12.2,2.6 +19920522,16.2,6.4,25.6,6.1,2.3 +19920523,17.4,6.2,28.3,6.7,2.3 +19920524,18.0,10.6,27.2,10.0,3.2 +19920525,17.9,15.0,22.8,13.9,3.9 +19920526,15.7,12.8,17.2,14.4,4.2 +19920527,14.5,7.9,18.9,9.4,3.9 +19920528,11.9,9.6,15.6,10.0,2.0 +19920529,10.9,9.9,12.2,10.0,1.3 +19920530,13.3,12.0,20.0,10.0,2.7 +19920531,16.2,10.9,21.1,11.7,5.4 +19920601,14.7,9.1,20.0,10.0,4.8 +19920602,15.6,10.1,22.8,10.0,2.7 +19920603,16.0,13.4,20.0,13.3,2.1 +19920604,17.7,15.9,22.2,15.6,3.3 +19920605,18.4,15.1,23.3,15.0,2.3 +19920606,19.6,14.8,27.8,13.3,2.3 +19920607,22.0,16.9,27.8,15.6,2.9 +19920608,21.6,18.6,26.7,17.2,2.1 +19920609,20.9,19.8,23.9,19.4,2.1 +19920610,20.4,19.2,23.3,19.4,1.2 +19920611,18.4,17.1,20.0,16.1,1.9 +19920612,15.1,12.7,17.2,13.3,1.7 +19920613,15.9,14.6,17.2,15.0,1.9 +19920614,18.4,16.3,25.0,16.1,2.0 +19920615,20.7,17.4,27.2,17.8,2.6 +19920616,20.2,17.6,24.4,16.7,1.9 +19920617,20.3,17.9,22.8,18.9,2.6 +19920618,19.8,16.9,23.9,16.7,3.3 +19920619,21.7,16.2,28.3,15.0,3.5 +19920620,21.8,14.2,27.8,16.1,3.8 +19920621,19.9,14.1,24.4,16.1,5.0 +19920622,16.3,9.0,23.3,9.4,3.8 +19920623,18.9,12.3,25.0,11.7,2.8 +19920624,22.0,14.4,29.4,14.4,3.0 +19920625,21.8,16.7,27.8,15.0,2.7 +19920626,22.1,18.8,28.3,18.9,2.4 +19920627,21.8,17.4,26.7,18.3,4.4 +19920628,20.3,14.5,25.0,16.1,3.0 +19920629,22.2,18.7,26.1,18.9,2.7 +19920630,22.7,18.9,26.7,18.9,2.9 +19920701,21.8,19.3,25.0,19.4,2.9 +19920702,22.4,19.7,26.1,18.9,1.9 +19920703,23.1,20.0,27.8,18.9,2.0 +19920704,23.1,16.6,28.3,18.9,3.9 +19920705,20.6,14.8,28.3,13.9,2.0 +19920706,22.2,17.8,28.3,17.8,4.3 +19920707,22.9,17.4,29.4,16.7,2.9 +19920708,24.1,17.1,32.8,16.7,2.2 +19920709,24.9,16.6,32.8,16.7,3.8 +19920710,25.5,19.1,32.8,18.9,3.7 +19920711,25.2,19.8,31.7,20.0,2.8 +19920712,24.9,18.8,32.8,17.8,2.0 +19920713,25.3,18.1,33.3,17.2,2.6 +19920714,24.5,18.6,30.6,18.3,2.7 +19920715,23.8,18.6,29.4,17.8,2.7 +19920716,23.2,18.3,28.9,18.3,2.7 +19920717,24.2,18.9,28.3,20.6,3.9 +19920718,23.2,18.9,26.7,18.9,3.6 +19920719,22.5,16.1,30.0,16.1,3.4 +19920720,22.2,15.4,29.4,15.0,1.9 +19920721,24.3,16.9,31.1,18.3,2.9 +19920722,22.1,18.6,27.2,18.9,2.0 +19920723,22.3,19.8,26.7,20.0,2.8 +19920724,22.6,20.2,28.3,19.4,2.4 +19920725,24.2,20.2,32.2,19.4,2.7 +19920726,24.8,20.3,30.6,19.4,2.6 +19920727,23.9,19.7,30.6,18.3,2.5 +19920728,23.6,16.7,27.8,19.4,4.6 +19920729,21.6,15.5,29.4,15.0,2.7 +19920730,22.4,17.1,30.6,15.6,2.3 +19920731,24.2,18.3,29.4,18.3,2.5 +19920801,21.8,15.7,28.3,16.7,3.8 +19920802,21.6,15.2,27.2,17.2,2.8 +19920803,21.8,14.9,28.9,16.1,1.6 +19920804,21.4,17.2,27.8,16.1,2.9 +19920805,21.6,16.0,24.4,17.8,2.7 +19920806,19.6,16.9,22.2,18.3,1.7 +19920807,19.3,17.3,22.2,17.8,2.8 +19920808,21.9,19.1,26.7,18.9,2.8 +19920809,22.9,19.9,28.9,19.4,2.6 +19920810,23.3,18.9,31.1,16.1,2.9 +19920811,22.6,19.2,29.4,17.2,1.8 +19920812,20.7,18.6,27.2,17.8,2.7 +19920813,19.4,18.8,21.7,18.9,2.3 +19920814,19.7,16.9,23.9,17.8,2.2 +19920815,19.3,16.9,22.8,17.8,2.2 +19920816,19.3,16.9,23.9,17.2,2.6 +19920817,19.9,18.0,23.3,18.9,1.9 +19920818,20.7,17.3,26.7,17.8,2.4 +19920819,20.7,16.5,26.1,16.1,2.2 +19920820,20.0,17.7,22.8,17.2,2.4 +19920821,19.8,17.7,22.2,18.3,2.1 +19920822,18.6,17.8,20.0,17.8,1.6 +19920823,18.4,17.7,20.6,17.8,1.8 +19920824,21.1,18.8,26.1,18.9,1.7 +19920825,21.3,18.6,27.8,17.8,1.8 +19920826,22.2,18.9,29.4,18.3,1.9 +19920827,21.0,18.9,26.1,18.3,2.4 +19920828,21.6,17.5,25.6,18.9,5.9 +19920829,17.8,11.9,23.9,12.8,5.1 +19920830,17.4,12.2,27.2,10.6,1.7 +19920831,19.6,15.4,26.7,13.3,3.6 +19920901,20.1,15.9,27.2,13.9,2.0 +19920902,20.8,17.5,26.1,16.7,3.4 +19920903,21.2,18.9,26.1,18.9,2.7 +19920904,20.4,18.1,26.1,17.2,2.4 +19920905,20.3,18.8,25.0,18.3,2.2 +19920906,21.2,18.4,27.2,18.3,2.5 +19920907,21.7,18.7,27.2,18.3,2.5 +19920908,22.4,18.7,28.3,18.3,2.7 +19920909,21.6,18.1,27.8,17.2,2.5 +19920910,22.1,19.1,27.8,18.3,2.2 +19920911,20.5,17.1,25.0,17.8,4.1 +19920912,18.2,14.0,22.8,14.4,2.6 +19920913,18.9,14.8,23.3,15.6,2.8 +19920914,18.8,14.9,23.9,13.9,1.7 +19920915,19.1,14.2,25.6,13.3,2.6 +19920916,17.5,12.4,25.6,11.7,1.9 +19920917,18.3,13.6,27.2,11.7,2.2 +19920918,19.5,16.1,26.1,14.4,2.6 +19920919,20.2,18.1,26.1,16.7,2.3 +19920920,18.9,17.7,23.3,16.1,2.3 +19920921,20.2,18.4,24.4,17.8,3.6 +19920922,21.8,19.4,26.7,19.4,2.6 +19920923,18.9,17.3,22.2,17.2,3.6 +19920924,13.9,8.9,17.2,10.6,2.6 +19920925,13.6,10.0,20.6,8.9,2.8 +19920926,16.6,14.4,21.1,14.4,3.0 +19920927,17.8,16.9,21.1,16.1,2.5 +19920928,19.1,17.9,22.8,17.2,2.0 +19920929,16.4,10.5,19.4,12.8,6.5 +19920930,11.6,4.2,19.4,4.4,5.3 +19921001,10.2,4.9,18.3,2.8,2.3 +19921002,10.8,7.2,19.4,5.0,2.2 +19921003,11.8,9.0,20.0,6.1,1.7 +19921004,13.7,12.4,16.7,12.2,2.9 +19921005,13.6,11.7,16.1,12.2,3.7 +19921006,10.3,6.2,16.7,3.3,1.7 +19921007,8.8,5.6,17.2,2.8,1.9 +19921008,13.1,11.7,15.6,11.1,2.3 +19921009,17.9,14.3,22.8,15.6,3.2 +19921010,12.6,5.0,21.1,6.7,3.9 +19921011,13.0,6.3,15.6,10.0,4.4 +19921012,10.4,3.6,17.2,4.4,3.5 +19921013,11.4,5.6,22.2,3.9,3.0 +19921014,13.5,7.8,26.7,3.9,1.2 +19921015,15.2,9.6,25.0,7.2,3.2 +19921016,14.8,11.0,22.8,8.9,1.9 +19921017,13.2,6.2,17.2,8.3,5.6 +19921018,6.6,2.9,10.6,2.8,2.4 +19921019,6.2,-2.3,11.1,3.3,4.7 +19921020,3.9,-3.1,12.2,-1.7,3.1 +19921021,11.7,-0.2,21.1,5.0,3.4 +19921022,14.1,7.8,21.7,6.7,2.7 +19921023,11.1,7.0,21.1,4.4,1.6 +19921024,13.1,8.2,23.3,6.1,2.9 +19921025,14.6,5.0,18.3,9.4,5.0 +19921026,9.8,0.4,21.7,0.0,2.2 +19921027,11.1,4.6,20.6,3.9,1.9 +19921028,14.2,11.9,17.2,12.2,1.6 +19921029,13.9,10.7,20.6,10.0,2.7 +19921030,12.3,10.4,17.8,7.8,2.5 +19921031,15.3,12.3,21.1,12.2,3.4 +19921101,13.3,12.2,16.1,12.2,3.3 +19921102,14.7,13.6,18.3,11.7,5.7 +19921103,12.8,7.4,18.9,3.9,2.5 +19921104,12.8,10.6,15.6,9.4,2.3 +19921105,13.7,12.6,17.2,7.8,3.7 +19921106,3.2,-1.4,6.1,1.1,7.9 +19921107,2.8,-1.8,6.1,1.1,4.5 +19921108,3.2,-2.5,9.4,-0.6,4.4 +19921109,2.5,-2.2,11.1,-2.8,2.4 +19921110,3.6,-1.9,12.2,-2.2,3.1 +19921111,9.2,4.4,16.1,5.6,2.5 +19921112,13.0,11.9,16.7,11.7,4.0 +19921113,8.4,-0.1,16.7,2.2,7.9 +19921114,3.3,-6.9,10.0,-1.1,3.2 +19921115,3.2,-4.7,8.9,-0.6,5.1 +19921116,0.7,-6.1,10.0,-5.6,2.6 +19921117,4.8,-2.6,18.3,-2.8,1.9 +19921118,7.0,-0.2,19.4,-1.7,1.6 +19921119,7.6,-0.3,19.4,-1.1,1.2 +19921120,5.8,2.4,11.7,1.1,2.4 +19921121,8.5,8.1,12.2,6.7,3.4 +19921122,15.1,14.4,18.9,12.2,4.0 +19921123,12.2,8.2,18.9,3.9,4.5 +19921124,8.3,7.1,10.0,6.1,3.1 +19921125,9.9,9.6,14.4,8.3,2.7 +19921126,13.4,11.1,18.9,10.6,3.4 +19921127,6.4,1.8,11.7,2.8,5.9 +19921128,3.8,0.9,6.1,2.2,5.4 +19921129,3.3,0.3,6.7,1.7,4.9 +19921130,1.6,-3.7,8.9,-3.3,3.5 +19921201,3.7,-2.8,6.7,0.6,4.0 +19921202,1.2,-4.0,6.7,-4.4,3.2 +19921203,2.8,-7.3,8.9,-1.7,5.1 +19921204,5.1,-4.6,12.2,1.1,3.7 +19921205,1.9,-6.6,6.7,-2.8,7.6 +19921206,-3.4,-12.4,1.7,-7.8,4.4 +19921207,1.5,-1.9,3.3,-0.6,5.5 +19921208,-0.2,-3.8,1.7,-1.7,6.5 +19921209,-2.7,-6.4,0.6,-6.1,4.0 +19921210,0.1,-1.4,3.3,-1.7,4.0 +19921211,1.8,-2.3,3.3,0.0,9.6 +19921212,1.7,-2.6,4.4,0.6,10.9 +19921213,2.6,-1.5,10.0,-0.6,6.2 +19921214,1.4,-1.4,10.0,-3.9,1.6 +19921215,1.8,-0.8,6.7,-2.2,3.2 +19921216,7.7,5.9,11.1,5.0,4.7 +19921217,11.5,10.1,13.3,8.3,4.6 +19921218,5.1,0.9,10.6,-1.7,2.6 +19921219,4.1,1.1,11.1,-0.6,2.2 +19921220,9.4,7.8,11.1,7.2,4.3 +19921221,5.1,0.7,8.3,2.8,3.7 +19921222,6.6,5.2,11.7,2.8,2.2 +19921223,10.7,9.6,16.1,7.8,2.4 +19921224,3.9,-4.0,9.4,-1.1,6.4 +19921225,-0.3,-10.4,10.0,-5.6,3.5 +19921226,2.6,-4.6,6.7,0.0,6.2 +19921227,-1.6,-7.0,1.1,-4.4,2.3 +19921228,4.1,2.7,13.3,-1.1,3.0 +19921229,6.5,5.0,16.1,2.2,1.9 +19921230,8.2,4.8,20.0,1.1,1.1 +19921231,10.9,7.1,21.1,5.0,2.7 +19930101,10.6,4.7,14.4,7.8,4.8 +19930102,5.7,-3.3,10.6,1.7,3.4 +19930103,4.8,-1.9,8.9,2.8,3.7 +19930104,10.5,8.6,12.8,8.3,4.0 +19930105,12.8,10.3,15.0,10.0,4.6 +19930106,8.3,5.4,13.3,5.6,1.5 +19930107,8.8,6.9,10.0,7.8,2.8 +19930108,7.8,7.4,8.9,7.2,2.4 +19930109,6.3,4.9,7.8,5.0,1.7 +19930110,2.9,1.7,5.0,1.7,3.5 +19930111,3.2,2.7,5.0,1.7,2.7 +19930112,6.9,6.7,9.4,5.6,2.6 +19930113,10.0,4.4,16.7,7.2,3.3 +19930114,2.6,-4.3,7.2,-1.7,7.3 +19930115,1.9,-2.6,8.3,-2.2,1.9 +19930116,4.3,1.2,7.8,1.7,4.3 +19930117,3.6,-0.9,10.6,-0.6,2.2 +19930118,3.6,-1.1,8.3,0.6,3.9 +19930119,3.9,0.7,5.6,1.7,2.7 +19930120,1.2,-1.5,5.0,-0.6,3.7 +19930121,2.7,1.7,4.4,1.1,3.9 +19930122,5.7,2.9,13.3,2.2,3.3 +19930123,5.7,-3.7,16.7,-1.1,4.3 +19930124,5.6,0.8,12.2,1.1,4.4 +19930125,1.1,-9.1,6.1,-2.2,7.8 +19930126,-1.2,-9.1,5.6,-5.6,1.5 +19930127,1.9,-7.3,8.9,-3.9,4.8 +19930128,3.1,-5.2,16.1,-5.0,1.3 +19930129,6.8,-3.4,11.1,0.6,4.7 +19930130,2.5,-10.6,11.7,-5.0,4.6 +19930131,5.6,-10.1,17.8,-2.2,5.5 +19930201,8.8,-3.2,11.1,6.1,6.1 +19930202,2.3,-13.3,9.4,-3.9,5.3 +19930203,1.8,-10.1,13.3,-7.2,2.7 +19930204,6.1,-10.0,15.0,-0.6,3.8 +19930205,3.2,-8.1,12.8,-4.4,1.4 +19930206,5.1,-6.8,15.0,-3.9,3.2 +19930207,3.8,-5.4,13.3,-4.4,2.1 +19930208,9.4,-2.5,16.7,3.3,5.0 +19930209,3.8,-1.2,8.9,-1.7,2.9 +19930210,6.4,4.2,12.8,2.8,2.0 +19930211,8.1,6.5,12.2,4.4,2.6 +19930212,9.1,8.1,11.7,6.1,3.0 +19930213,5.1,2.9,7.8,2.2,4.4 +19930214,1.3,-2.5,3.3,0.0,6.1 +19930215,-0.4,-4.7,2.8,-4.4,3.9 +19930216,4.3,0.9,13.3,1.1,4.2 +19930217,0.8,-4.4,7.8,-2.2,6.9 +19930218,-2.4,-9.6,-0.6,-5.0,8.0 +19930219,-5.1,-16.6,5.0,-11.1,5.1 +19930220,1.9,-6.3,7.2,0.0,2.7 +19930221,6.7,4.4,12.2,1.7,5.2 +19930222,11.7,-2.7,14.4,8.3,5.2 +19930223,2.4,-11.4,8.9,-2.8,6.2 +19930224,-1.7,-12.3,3.3,-5.6,5.7 +19930225,-2.8,-10.8,-1.1,-3.9,3.7 +19930226,-0.8,-2.3,6.1,-4.4,3.1 +19930227,1.0,-2.1,3.9,-2.2,6.7 +19930228,-0.3,-6.7,5.6,-4.4,5.9 +19930301,2.7,-7.7,13.3,-4.4,4.5 +19930302,4.3,-4.0,10.6,-0.6,1.5 +19930303,7.4,6.6,9.4,6.1,4.2 +19930304,7.9,4.3,11.1,6.7,4.7 +19930305,3.9,-1.9,7.2,1.1,3.9 +19930306,2.9,-4.5,10.6,-1.1,5.8 +19930307,3.7,-4.1,12.8,-3.9,3.1 +19930308,7.8,0.2,15.6,1.1,3.6 +19930309,7.8,-3.6,13.9,0.6,5.2 +19930310,9.4,-2.2,22.8,0.0,3.1 +19930311,6.6,-5.7,17.8,0.6,7.4 +19930312,1.3,-5.8,4.4,-2.2,3.1 +19930313,-2.3,-2.9,1.1,-6.7,10.1 +19930314,-7.4,-12.8,-5.0,-9.4,7.6 +19930315,-8.0,-15.0,2.8,-16.7,1.9 +19930316,-0.1,-8.6,4.4,-3.3,3.8 +19930317,3.4,1.6,8.9,0.6,3.0 +19930318,3.2,-2.9,7.8,-1.1,6.2 +19930319,0.1,-11.7,6.1,-5.6,2.4 +19930320,2.4,-7.7,8.3,-1.1,2.5 +19930321,7.4,2.9,15.6,2.2,2.5 +19930322,9.6,7.2,13.3,6.1,2.1 +19930323,12.4,11.7,15.0,11.1,3.7 +19930324,13.0,10.4,18.9,10.0,1.7 +19930325,11.9,7.4,16.7,6.7,4.0 +19930326,10.9,8.8,13.9,10.0,2.8 +19930327,9.1,7.6,11.1,7.8,2.0 +19930328,10.6,8.3,14.4,8.9,3.3 +19930329,12.3,6.2,19.4,8.3,4.8 +19930330,13.6,4.4,22.8,6.7,4.8 +19930331,12.7,7.6,17.8,8.9,2.8 +19930401,10.8,6.9,16.1,7.2,3.5 +19930402,5.2,0.9,11.1,1.1,5.8 +19930403,4.4,-4.4,15.6,-1.1,6.7 +19930404,7.6,-2.4,13.9,0.0,3.2 +19930405,6.5,4.2,11.1,3.3,2.0 +19930406,6.2,4.6,12.2,3.3,2.6 +19930407,9.7,5.5,16.1,6.1,2.5 +19930408,10.7,2.9,18.3,2.8,3.4 +19930409,10.4,4.1,15.6,8.3,3.4 +19930410,10.8,4.8,16.1,7.8,4.7 +19930411,13.4,1.7,24.4,4.4,3.2 +19930412,18.3,2.2,23.9,10.0,4.6 +19930413,14.2,2.7,23.3,6.7,3.1 +19930414,15.8,7.4,25.0,7.2,3.0 +19930415,16.6,10.7,21.1,13.9,4.7 +19930416,14.1,6.5,18.3,10.0,5.8 +19930417,8.2,-1.4,13.3,3.9,6.5 +19930418,10.7,-2.1,17.8,4.4,3.4 +19930419,11.4,1.5,18.9,2.2,3.8 +19930420,16.1,4.9,22.2,11.1,5.0 +19930421,13.3,6.2,18.9,6.7,5.6 +19930422,5.2,-4.9,10.6,1.7,10.1 +19930423,8.8,-3.9,18.9,-1.1,3.1 +19930424,13.5,0.9,20.6,4.4,3.5 +19930425,17.2,6.1,22.2,12.2,5.7 +19930426,14.7,9.8,18.9,12.2,4.9 +19930427,11.9,-1.2,20.0,5.0,5.1 +19930428,11.9,-1.4,22.8,1.1,1.9 +19930429,14.5,1.7,24.4,2.8,2.6 +19930430,15.2,2.7,22.8,6.1,2.2 +19930501,17.4,6.8,23.3,10.6,2.4 +19930502,16.7,8.7,21.7,11.1,3.2 +19930503,17.2,11.9,20.0,15.0,5.0 +19930504,17.1,14.3,22.2,15.0,4.5 +19930505,19.4,13.9,25.0,15.0,3.3 +19930506,17.9,10.8,26.1,9.4,3.4 +19930507,18.7,12.0,26.1,11.1,2.2 +19930508,17.2,14.9,21.1,13.9,1.7 +19930509,17.4,13.7,25.6,12.2,1.5 +19930510,19.1,13.9,26.7,11.7,2.7 +19930511,19.0,12.9,27.2,11.7,2.2 +19930512,20.3,13.9,25.6,14.4,2.3 +19930513,16.9,12.6,21.7,13.3,2.3 +19930514,15.7,11.0,21.1,11.7,4.4 +19930515,16.2,10.1,25.0,8.3,2.3 +19930516,18.3,10.9,26.7,9.4,1.7 +19930517,19.5,14.1,25.6,15.6,2.5 +19930518,19.8,15.5,28.3,15.6,2.0 +19930519,17.4,13.9,24.4,15.0,4.0 +19930520,12.9,6.5,16.7,9.4,4.7 +19930521,9.3,4.1,13.9,2.8,3.0 +19930522,10.7,4.6,18.3,5.6,5.2 +19930523,12.7,5.5,21.7,3.9,2.9 +19930524,16.8,9.7,25.0,7.2,3.0 +19930525,17.1,14.3,21.7,14.4,3.2 +19930526,17.6,13.5,22.8,14.4,4.1 +19930527,16.7,11.0,25.6,8.3,2.3 +19930528,19.7,13.5,27.8,11.7,2.2 +19930529,21.6,15.3,27.8,15.0,4.0 +19930530,17.6,14.6,22.2,12.8,2.4 +19930531,18.3,16.1,21.7,16.7,2.1 +19930601,17.1,11.4,21.1,12.8,6.2 +19930602,15.3,9.8,24.4,7.8,2.8 +19930603,20.8,14.8,27.8,14.4,2.7 +19930604,21.5,16.4,28.9,14.4,3.3 +19930605,23.8,16.2,30.6,17.2,4.0 +19930606,18.7,10.1,27.2,11.1,4.2 +19930607,21.4,13.4,29.4,15.0,2.5 +19930608,24.1,18.1,31.7,16.7,2.1 +19930609,24.6,17.2,32.2,15.6,1.6 +19930610,24.2,17.7,31.7,15.6,2.4 +19930611,23.4,17.2,30.6,16.1,3.0 +19930612,21.8,17.3,29.4,17.2,2.1 +19930613,19.4,17.7,21.7,17.8,2.0 +19930614,18.3,16.0,22.2,15.6,2.3 +19930615,21.4,16.4,28.3,16.7,3.0 +19930616,21.6,16.1,27.8,15.6,2.6 +19930617,22.1,18.0,29.4,16.1,2.3 +19930618,22.7,18.2,28.9,16.7,2.1 +19930619,23.0,17.3,30.0,17.2,2.0 +19930620,21.9,14.9,29.4,13.3,2.0 +19930621,20.7,17.1,25.6,17.8,2.1 +19930622,21.4,16.5,28.3,16.1,3.7 +19930623,21.6,14.9,28.9,13.9,2.3 +19930624,21.8,16.8,27.8,16.1,2.1 +19930625,22.9,16.4,27.2,18.9,3.0 +19930626,22.5,17.3,27.2,17.8,2.2 +19930627,22.3,12.4,30.0,14.4,3.9 +19930628,22.8,14.9,30.0,16.7,2.2 +19930629,20.1,17.8,27.8,16.1,2.4 +19930630,22.9,17.8,31.1,17.8,2.4 +19930701,25.2,19.3,31.1,19.4,3.4 +19930702,25.3,20.3,31.1,19.4,2.4 +19930703,25.2,19.3,32.2,18.3,2.4 +19930704,25.9,18.2,32.8,18.3,2.8 +19930705,26.1,18.7,32.8,18.3,2.0 +19930706,26.1,17.7,32.8,18.9,2.6 +19930707,25.8,15.7,34.4,17.2,2.2 +19930708,26.0,16.7,34.4,17.2,2.3 +19930709,26.1,18.6,32.8,18.9,2.8 +19930710,25.1,18.1,32.8,19.4,3.5 +19930711,24.9,18.4,32.8,18.3,2.8 +19930712,24.3,18.3,31.7,17.8,2.5 +19930713,23.9,18.9,31.7,18.3,2.6 +19930714,24.4,18.8,30.6,18.3,1.8 +19930715,23.3,20.2,29.4,19.4,3.9 +19930716,24.1,20.4,30.6,19.4,3.2 +19930717,24.4,19.2,31.1,18.3,2.8 +19930718,25.6,20.1,33.9,20.0,2.5 +19930719,25.8,21.2,32.2,20.6,1.9 +19930720,25.8,19.5,31.1,20.6,4.5 +19930721,24.4,14.9,33.3,15.6,2.1 +19930722,25.9,17.8,33.3,18.3,2.6 +19930723,25.1,20.2,30.0,21.1,1.7 +19930724,24.3,20.7,28.9,20.0,2.7 +19930725,24.5,21.4,32.2,20.6,2.5 +19930726,24.2,20.6,32.2,19.4,2.9 +19930727,25.3,20.3,32.8,19.4,3.2 +19930728,25.9,20.2,34.4,20.0,3.0 +19930729,26.8,19.7,34.4,20.6,3.5 +19930730,24.0,13.5,30.6,18.3,6.0 +19930731,22.3,11.7,28.9,15.6,3.8 +19930801,20.5,11.9,30.0,11.7,1.9 +19930802,20.9,15.3,27.8,14.4,2.2 +19930803,22.8,18.6,28.3,18.9,2.6 +19930804,21.2,18.4,26.7,17.8,1.8 +19930805,21.2,17.7,27.2,17.8,3.3 +19930806,20.6,18.2,25.6,17.8,2.9 +19930807,20.4,17.8,24.4,18.3,3.0 +19930808,21.2,18.1,25.6,18.9,2.6 +19930809,20.6,16.9,26.1,16.1,2.0 +19930810,20.1,15.7,26.7,14.4,2.0 +19930811,20.4,15.8,27.8,14.4,1.8 +19930812,20.6,17.9,24.4,16.7,1.3 +19930813,21.1,19.9,23.3,19.4,1.7 +19930814,23.1,20.8,28.3,20.6,2.2 +19930815,23.4,20.1,29.4,19.4,1.9 +19930816,23.8,18.6,31.1,17.2,2.3 +19930817,24.3,18.7,31.7,18.3,2.9 +19930818,24.6,19.1,31.7,18.9,3.2 +19930819,24.3,20.0,29.4,20.0,1.9 +19930820,23.7,19.8,31.1,18.9,2.1 +19930821,22.8,18.8,28.9,18.3,3.5 +19930822,22.8,17.8,27.2,17.2,2.9 +19930823,23.4,19.6,28.3,20.0,2.4 +19930824,23.7,19.7,30.0,19.4,2.5 +19930825,23.3,20.6,30.0,20.0,2.8 +19930826,22.9,20.0,28.3,20.0,2.7 +19930827,22.4,19.1,30.0,18.9,2.0 +19930828,22.1,19.0,30.0,18.9,2.3 +19930829,22.8,18.2,30.6,17.2,1.8 +19930830,23.8,18.2,30.6,17.2,1.9 +19930831,24.2,19.4,31.1,18.9,2.1 +19930901,23.7,18.7,31.7,17.2,2.4 +19930902,23.0,19.8,28.9,19.4,2.3 +19930903,24.2,20.2,28.3,21.7,4.0 +19930904,21.9,20.2,25.6,20.6,2.7 +19930905,20.3,17.6,25.6,17.2,2.7 +19930906,21.8,17.5,28.3,16.7,1.6 +19930907,20.9,18.2,25.6,16.7,2.1 +19930908,19.8,16.6,27.2,15.0,1.3 +19930909,21.1,17.2,27.8,16.7,2.3 +19930910,20.6,15.5,24.4,16.1,4.2 +19930911,16.6,6.1,24.4,11.1,3.7 +19930912,16.0,8.6,26.1,7.2,2.7 +19930913,18.6,12.6,26.7,11.1,2.7 +19930914,19.4,14.9,26.1,12.8,2.1 +19930915,21.4,17.5,27.8,16.1,2.7 +19930916,21.1,19.1,25.6,18.3,1.6 +19930917,22.1,19.1,28.9,18.9,2.4 +19930918,22.2,17.3,28.3,17.8,3.5 +19930919,18.6,13.3,26.1,11.7,2.6 +19930920,19.1,16.3,21.7,17.2,2.6 +19930921,20.1,15.9,26.1,17.2,3.4 +19930922,18.2,12.2,27.2,11.1,2.3 +19930923,17.2,12.6,24.4,11.1,2.1 +19930924,18.9,15.3,26.1,13.9,2.9 +19930925,20.4,17.8,22.8,18.9,3.1 +19930926,22.2,17.7,28.3,18.9,4.0 +19930927,19.1,14.2,23.3,15.6,3.9 +19930928,12.7,4.3,22.2,5.6,3.5 +19930929,12.9,4.6,22.2,5.0,3.4 +19930930,10.2,0.6,15.0,6.7,5.9 +19931001,8.1,1.8,18.3,0.6,2.3 +19931002,13.3,6.4,25.6,3.3,2.6 +19931003,15.1,6.9,20.6,10.6,4.1 +19931004,11.7,5.4,22.8,3.3,2.3 +19931005,15.3,7.6,26.1,7.2,3.9 +19931006,14.1,10.7,21.1,8.3,2.2 +19931007,13.9,9.9,22.2,7.8,2.1 +19931008,16.3,10.1,24.4,10.0,2.6 +19931009,15.6,10.3,27.2,7.8,2.0 +19931010,15.3,11.6,21.1,10.6,5.9 +19931011,9.4,4.8,11.7,7.8,3.9 +19931012,8.1,5.1,11.1,6.7,4.4 +19931013,8.8,2.8,19.4,1.7,3.4 +19931014,11.9,6.9,19.4,6.7,1.8 +19931015,12.3,8.4,19.4,5.6,2.1 +19931016,14.2,10.6,16.7,11.1,2.5 +19931017,16.2,13.9,22.8,13.3,2.1 +19931018,16.7,13.2,25.6,10.6,2.2 +19931019,18.6,14.4,26.7,12.8,2.0 +19931020,19.2,14.8,25.6,12.8,2.7 +19931021,18.6,15.6,22.8,13.9,4.2 +19931022,11.3,2.5,14.4,8.9,5.0 +19931023,9.0,0.1,18.3,1.1,2.9 +19931024,7.9,-1.7,20.0,-1.7,1.0 +19931025,10.3,0.1,21.7,1.7,1.4 +19931026,14.2,6.6,19.4,9.4,1.3 +19931027,12.0,7.1,21.7,3.3,2.0 +19931028,10.3,0.0,17.2,2.2,4.9 +19931029,5.0,-3.4,13.9,-2.2,2.3 +19931030,9.3,8.7,11.7,5.6,3.2 +19931031,1.8,-0.9,4.4,0.0,8.1 +19931101,1.3,-4.4,5.0,-0.6,7.6 +19931102,1.8,-3.8,10.0,-3.3,3.0 +19931103,5.5,-1.4,11.7,2.2,2.0 +19931104,5.6,1.6,16.7,-1.1,2.7 +19931105,13.9,11.8,20.0,10.6,3.6 +19931106,8.9,5.4,16.7,3.3,6.4 +19931107,2.6,-5.2,7.8,-0.6,5.1 +19931108,1.3,-3.8,11.1,-5.0,1.4 +19931109,2.7,-2.4,10.0,-3.3,2.5 +19931110,7.1,-1.6,14.4,0.6,3.8 +19931111,4.8,-2.7,16.1,-3.9,2.3 +19931112,7.9,-1.2,16.1,-0.6,2.2 +19931113,11.3,3.8,18.3,6.1,2.4 +19931114,17.0,13.8,21.7,13.3,4.7 +19931115,17.7,15.6,21.1,14.4,3.5 +19931116,16.6,13.6,22.2,11.1,2.0 +19931117,18.1,15.6,18.9,17.2,4.4 +19931118,11.0,5.9,16.1,7.2,4.9 +19931119,10.1,7.2,13.3,7.8,3.2 +19931120,6.7,0.1,10.0,3.3,6.7 +19931121,2.4,-5.8,10.0,-3.9,2.8 +19931122,2.8,-5.6,15.6,-6.7,1.4 +19931123,3.9,-5.0,17.2,-5.0,1.5 +19931124,5.5,-3.4,18.9,-3.9,2.4 +19931125,8.3,-0.9,16.1,0.6,2.2 +19931126,6.8,4.2,11.1,5.6,3.8 +19931127,7.3,6.6,11.1,5.0,2.7 +19931128,6.2,-2.3,11.7,1.1,5.8 +19931129,2.7,-6.2,12.8,-4.4,2.7 +19931130,2.8,-3.2,11.1,-3.9,2.5 +19931201,2.2,-3.2,8.3,-3.3,1.9 +19931202,2.1,-3.2,11.1,-3.3,2.4 +19931203,7.2,1.9,17.2,-0.6,2.2 +19931204,11.3,8.9,14.4,8.9,4.0 +19931205,9.9,6.8,14.4,5.6,7.3 +19931206,5.1,1.4,13.3,-2.2,4.2 +19931207,4.6,-2.1,10.6,0.0,5.2 +19931208,4.1,-1.8,13.9,-1.7,2.3 +19931209,3.4,-2.3,13.9,-4.4,2.1 +19931210,7.2,4.3,8.9,5.6,3.7 +19931211,3.1,-3.8,8.3,-2.8,9.1 +19931212,-1.5,-13.0,5.6,-5.6,8.9 +19931213,-0.6,-10.6,8.9,-6.7,2.1 +19931214,2.1,-6.2,5.6,1.1,2.3 +19931215,2.6,0.8,5.6,0.6,3.3 +19931216,5.7,2.2,9.4,3.9,7.9 +19931217,2.9,1.9,5.6,0.0,2.8 +19931218,4.1,2.9,8.9,0.6,2.4 +19931219,3.8,-2.2,7.8,0.0,4.7 +19931220,-0.9,-2.5,2.8,-3.3,2.0 +19931221,-0.1,-2.1,0.6,-3.3,4.6 +19931222,-2.3,-5.5,1.1,-5.6,3.5 +19931223,-0.9,-3.3,1.1,-3.3,4.9 +19931224,-2.9,-7.2,1.1,-5.0,3.3 +19931225,-3.0,-6.8,3.3,-7.2,2.9 +19931226,-3.1,-13.0,7.8,-9.4,4.8 +19931227,1.9,-4.4,14.4,-5.6,1.7 +19931228,2.9,0.2,8.9,-0.6,1.4 +19931229,2.9,2.6,5.6,0.6,3.3 +19931230,-2.9,-12.2,2.2,-7.8,8.0 +19931231,-3.3,-12.7,7.8,-10.6,2.8 +19940101,0.5,-6.6,10.0,-6.7,2.6 +19940102,5.5,1.8,10.6,-1.2,2.9 +19940103,4.7,3.3,11.1,2.8,2.3 +19940104,0.4,-0.8,6.1,-2.8,3.7 +19940105,-2.3,-5.8,3.3,-6.2,5.7 +19940106,2.9,-3.6,8.9,-1.7,4.2 +19940107,8.9,5.4,12.8,5.0,7.0 +19940108,0.4,-4.3,12.7,-3.9,7.9 +19940109,-4.8,-12.9,2.8,-9.5,6.4 +19940110,-3.7,-10.1,2.7,-8.4,2.4 +19940111,0.3,-4.9,5.6,-2.8,2.7 +19940112,6.4,5.4,10.6,2.7,3.1 +19940113,5.3,2.4,10.5,3.8,4.1 +19940114,1.1,-2.0,6.6,-2.8,5.2 +19940115,-9.6,-16.7,2.7,-13.9,7.4 +19940116,-13.3,-19.8,-6.1,-18.4,5.1 +19940117,-3.6,-7.4,2.2,-8.9,4.1 +19940118,-5.4,-8.4,2.7,-14.4,8.0 +19940119,-14.2,-21.6,-1.2,-20.6,6.1 +19940120,-7.2,-14.6,-0.6,-12.3,2.7 +19940121,-3.8,-10.4,3.3,-8.4,5.2 +19940122,-1.2,-10.4,8.3,-6.7,5.5 +19940123,2.1,-1.8,10.0,-5.6,2.3 +19940124,6.9,3.4,13.9,2.7,3.1 +19940125,2.8,1.6,14.4,-2.3,1.0 +19940126,7.1,6.1,13.3,1.6,1.4 +19940127,4.8,4.2,13.3,1.1,4.0 +19940128,7.4,4.3,17.2,1.1,4.7 +19940129,5.7,0.9,18.3,2.2,5.6 +19940130,1.8,-0.2,7.2,0.0,3.2 +19940131,0.0,-1.4,5.0,-1.2,3.2 +19940201,-2.9,-8.9,0.5,-5.6,5.0 +19940202,-4.7,-13.7,1.7,-8.9,5.5 +19940203,-2.3,-10.7,9.4,-10.6,2.1 +19940204,1.7,-7.8,10.0,-5.0,2.7 +19940205,7.9,3.3,12.8,5.0,3.3 +19940206,5.7,2.6,13.3,-1.2,2.9 +19940207,5.1,-0.8,15.0,-3.4,2.0 +19940208,10.4,0.7,15.5,6.6,5.3 +19940209,14.7,12.3,19.4,10.6,4.8 +19940210,5.8,5.0,10.6,1.1,4.4 +19940211,-0.3,-0.8,8.3,-1.7,3.4 +19940212,1.4,1.3,2.8,0.0,2.9 +19940213,3.6,1.9,7.2,0.6,4.6 +19940214,0.3,-7.4,10.0,-5.6,6.6 +19940215,1.2,-7.3,10.5,-6.2,2.5 +19940216,4.3,-8.2,15.0,-4.5,3.0 +19940217,3.9,-6.2,15.0,-5.0,2.0 +19940218,6.4,-2.4,16.1,-2.3,2.2 +19940219,8.5,2.7,16.7,1.1,2.5 +19940220,12.6,8.0,16.6,9.4,2.5 +19940221,11.6,8.8,16.6,7.7,2.7 +19940222,6.8,4.7,16.1,1.1,2.6 +19940223,9.6,9.2,13.3,8.3,3.5 +19940224,8.1,2.7,13.3,4.4,5.5 +19940225,3.9,-6.4,13.9,-2.8,4.2 +19940226,3.0,-9.4,13.8,-4.5,7.0 +19940227,-1.5,-12.9,9.4,-7.8,5.4 +19940228,1.3,-9.8,9.4,-5.6,2.7 +19940301,4.9,-0.8,10.0,2.7,3.0 +19940302,3.5,2.7,6.1,2.2,2.1 +19940303,1.7,-2.1,6.7,-1.2,9.1 +19940304,8.1,-2.4,21.1,-1.2,4.3 +19940305,12.8,-1.1,21.1,6.6,5.7 +19940306,8.1,-1.9,18.9,-1.7,2.7 +19940307,10.6,2.6,22.2,0.5,3.1 +19940308,13.4,6.8,22.2,4.4,2.6 +19940309,7.9,7.2,10.0,4.4,4.8 +19940310,4.9,3.1,10.0,0.6,7.2 +19940311,0.6,-7.2,10.0,-2.8,8.2 +19940312,1.9,-6.1,10.6,-5.6,2.2 +19940313,4.3,-3.6,13.3,-3.9,2.2 +19940314,8.4,0.2,14.4,3.3,4.5 +19940315,8.4,-1.1,21.7,-1.2,2.6 +19940316,7.7,-7.3,22.2,3.8,7.4 +19940317,3.2,-13.6,11.7,-2.3,7.6 +19940318,7.6,-4.6,18.9,-1.2,3.3 +19940319,12.6,-5.2,20.0,5.5,8.4 +19940320,13.0,-3.0,23.9,2.7,4.2 +19940321,15.0,8.3,24.4,10.5,2.7 +19940322,12.3,1.6,21.1,5.0,6.8 +19940323,10.4,-0.8,21.7,0.0,2.8 +19940324,14.3,8.3,21.6,9.4,2.6 +19940325,12.4,10.7,17.2,8.3,4.9 +19940326,6.2,1.4,16.1,0.5,4.1 +19940327,12.5,10.7,17.2,7.7,3.2 +19940328,14.1,12.6,20.0,11.1,3.8 +19940329,6.9,1.6,18.3,2.7,6.2 +19940330,5.8,-2.7,13.3,-1.7,2.8 +19940331,8.2,-0.1,13.8,4.4,5.2 +19940401,6.5,-2.7,15.6,0.0,6.0 +19940402,8.5,-3.3,19.4,-2.3,2.4 +19940403,11.1,0.0,20.0,2.7,3.4 +19940404,10.9,3.2,19.4,5.5,4.3 +19940405,11.9,3.6,20.6,2.7,2.7 +19940406,13.5,11.1,20.5,10.5,4.0 +19940407,7.4,3.2,20.5,1.6,6.9 +19940408,5.3,-2.9,15.6,-3.4,4.1 +19940409,8.5,3.9,16.1,2.7,2.5 +19940410,15.4,12.1,21.7,8.8,4.8 +19940411,17.2,14.6,22.2,13.3,3.1 +19940412,13.5,13.1,22.2,11.6,3.9 +19940413,18.8,11.3,25.0,13.3,5.5 +19940414,16.4,2.0,26.1,4.4,3.3 +19940415,15.3,9.7,26.6,8.8,3.1 +19940416,14.7,7.6,19.4,10.5,5.8 +19940417,14.6,-1.9,22.8,5.5,4.8 +19940418,16.2,0.4,25.0,7.2,4.3 +19940419,17.2,4.3,27.2,5.5,2.6 +19940420,18.4,6.9,27.7,8.8,3.5 +19940421,18.1,2.6,27.2,7.7,3.2 +19940422,15.9,6.2,27.7,8.8,3.0 +19940423,13.3,3.7,23.3,7.2,3.0 +19940424,14.1,3.7,24.4,2.7,2.6 +19940425,16.4,8.4,26.7,5.5,2.4 +19940426,19.8,14.1,27.8,12.7,2.6 +19940427,18.1,15.1,28.3,12.2,2.5 +19940428,17.5,14.4,28.3,12.2,2.5 +19940429,20.0,15.2,27.2,12.2,2.7 +19940430,18.5,13.8,27.7,12.7,3.9 +19940501,18.4,13.3,24.4,14.4,4.8 +19940502,11.9,6.3,21.6,5.5,5.3 +19940503,10.1,7.3,20.0,7.2,2.4 +19940504,11.2,9.1,17.8,7.7,2.2 +19940505,12.6,8.3,17.7,10.0,5.1 +19940506,12.3,6.9,23.3,2.7,2.3 +19940507,15.9,11.1,24.4,7.7,2.4 +19940508,14.0,8.9,25.5,8.8,6.6 +19940509,12.9,6.8,23.3,4.4,2.5 +19940510,15.9,9.8,23.8,9.4,4.1 +19940511,15.1,7.2,22.8,6.6,3.2 +19940512,17.4,11.5,24.4,9.4,4.0 +19940513,15.2,6.3,24.4,6.6,3.8 +19940514,16.4,12.2,22.8,11.6,3.4 +19940515,20.1,16.7,26.1,15.5,3.1 +19940516,19.3,13.1,28.3,13.8,4.6 +19940517,16.1,6.4,25.0,11.6,6.7 +19940518,14.6,5.9,21.7,7.7,6.2 +19940519,12.1,3.3,21.6,5.0,5.4 +19940520,12.8,5.5,18.9,5.5,5.1 +19940521,14.0,8.0,19.4,7.7,3.1 +19940522,15.3,7.6,25.6,4.4,3.1 +19940523,19.7,9.8,27.8,10.5,4.3 +19940524,19.7,13.1,28.3,11.1,2.2 +19940525,19.2,14.6,27.7,14.4,3.2 +19940526,19.1,15.9,27.7,15.0,2.2 +19940527,16.0,11.2,25.0,11.6,4.7 +19940528,14.1,7.2,21.7,6.6,3.3 +19940529,16.7,11.4,24.4,8.8,3.0 +19940530,18.7,11.4,25.0,12.2,3.2 +19940531,18.7,12.3,24.4,12.2,2.0 +19940601,21.1,15.6,28.9,13.8,3.1 +19940602,21.9,15.4,29.4,14.4,3.2 +19940603,20.9,15.0,30.0,15.5,2.6 +19940604,21.2,17.6,28.8,16.6,2.2 +19940605,21.3,18.8,29.4,18.3,2.8 +19940606,20.8,19.4,26.1,18.3,2.9 +19940607,21.7,19.2,27.2,18.3,2.8 +19940608,21.5,19.2,28.3,18.3,2.9 +19940609,19.6,17.6,27.2,15.5,2.1 +19940610,21.0,18.6,26.1,18.8,3.3 +19940611,20.3,18.1,27.2,16.1,1.9 +19940612,21.4,18.8,26.7,17.7,1.7 +19940613,20.5,18.3,27.7,16.1,2.1 +19940614,22.1,18.9,27.8,16.6,1.9 +19940615,21.6,19.7,28.3,18.3,2.6 +19940616,23.1,19.4,29.4,18.8,2.4 +19940617,23.3,18.4,29.4,18.8,2.1 +19940618,22.9,18.7,28.9,17.8,1.9 +19940619,22.9,18.2,30.0,16.1,2.1 +19940620,23.6,18.9,30.6,18.8,2.6 +19940621,22.9,19.3,30.5,17.2,2.7 +19940622,23.9,19.7,31.1,18.3,2.6 +19940623,22.9,19.8,31.1,17.7,2.4 +19940624,22.8,19.9,30.5,19.4,4.1 +19940625,21.8,15.8,27.2,16.6,3.4 +19940626,19.6,15.8,26.7,13.3,2.8 +19940627,20.4,17.6,26.7,17.2,3.2 +19940628,20.5,16.7,28.3,12.7,1.8 +19940629,21.5,18.6,28.3,17.7,2.2 +19940630,21.8,16.0,28.8,13.8,2.5 +19940701,22.1,16.8,28.8,16.1,2.6 +19940702,22.2,17.3,29.4,15.5,2.3 +19940703,22.8,18.4,30.0,17.2,2.6 +19940704,23.1,19.4,29.4,18.8,3.0 +19940705,21.7,20.4,27.7,20.0,2.0 +19940706,22.7,20.1,27.8,20.0,2.2 +19940707,22.5,18.7,27.7,17.7,2.4 +19940708,22.5,19.3,27.7,20.0,3.8 +19940709,23.4,19.4,29.4,17.2,3.3 +19940710,22.9,19.8,30.0,18.8,3.1 +19940711,21.3,19.9,27.2,19.4,2.2 +19940712,21.8,19.9,25.6,19.4,1.6 +19940713,21.5,19.9,26.1,18.8,2.9 +19940714,23.4,19.8,29.4,18.3,2.2 +19940715,22.6,20.9,29.4,18.8,2.2 +19940716,23.1,20.5,28.8,20.0,3.2 +19940717,22.5,20.2,28.9,19.4,1.9 +19940718,22.5,19.9,29.4,18.8,2.5 +19940719,22.1,19.8,30.0,18.3,2.1 +19940720,22.6,18.8,28.9,18.3,2.4 +19940721,21.9,19.4,28.8,18.3,2.4 +19940722,21.3,19.6,27.7,17.7,2.2 +19940723,22.7,19.4,27.2,18.8,2.3 +19940724,22.5,18.8,28.9,17.7,2.9 +19940725,22.1,19.1,29.4,17.7,1.6 +19940726,21.5,19.6,28.8,17.7,1.9 +19940727,20.4,19.2,26.1,18.3,3.0 +19940728,20.0,17.4,26.1,16.6,3.0 +19940729,20.3,16.6,26.1,16.6,2.4 +19940730,20.3,15.6,26.6,15.5,2.3 +19940731,20.5,16.1,26.7,14.4,2.0 +19940801,20.9,18.1,26.6,17.7,2.3 +19940802,20.7,18.5,27.2,17.2,2.1 +19940803,20.6,19.1,27.2,18.3,2.0 +19940804,22.4,19.8,26.7,18.8,2.3 +19940805,21.2,19.4,27.7,19.4,2.9 +19940806,19.3,16.4,26.1,15.5,3.5 +19940807,20.2,16.8,24.4,17.2,3.0 +19940808,20.2,17.7,25.6,17.7,2.3 +19940809,21.1,17.1,28.9,15.5,2.7 +19940810,22.3,18.2,29.4,16.6,2.1 +19940811,22.7,18.8,30.0,17.2,1.7 +19940812,22.8,19.9,29.4,18.8,2.4 +19940813,22.2,19.6,29.4,18.3,2.2 +19940814,21.4,20.3,28.8,18.8,1.9 +19940815,21.1,20.2,28.3,20.0,2.2 +19940816,20.1,19.4,25.0,18.8,2.6 +19940817,21.3,18.9,26.1,18.3,4.2 +19940818,20.8,17.3,27.2,15.0,2.1 +19940819,20.4,17.7,28.3,16.1,2.1 +19940820,20.7,18.1,27.2,16.6,3.1 +19940821,20.1,19.1,27.7,18.3,3.0 +19940822,18.8,15.4,23.9,13.8,3.5 +19940823,18.8,15.1,25.6,12.2,1.6 +19940824,20.4,17.1,26.1,16.6,1.6 +19940825,20.2,17.4,25.6,14.4,2.4 +19940826,20.9,17.4,28.3,16.1,2.4 +19940827,21.6,18.3,28.3,17.7,2.2 +19940828,21.6,18.2,28.3,16.6,2.4 +19940829,22.3,18.5,28.9,15.5,2.2 +19940830,22.3,18.9,28.8,18.3,3.1 +19940831,23.1,20.1,28.9,19.4,2.3 +19940901,21.8,20.1,29.4,19.4,2.9 +19940902,18.4,17.9,26.1,15.5,2.2 +19940903,15.8,14.2,20.0,14.4,1.7 +19940904,15.8,13.4,21.7,11.6,1.3 +19940905,17.0,14.3,21.6,14.4,3.0 +19940906,19.3,17.1,23.9,16.1,3.0 +19940907,18.8,14.9,25.0,13.8,3.2 +19940908,17.3,13.7,25.0,12.2,2.4 +19940909,19.2,16.7,25.0,15.5,2.2 +19940910,19.4,16.1,26.7,15.0,1.6 +19940911,18.7,14.3,27.2,12.2,2.6 +19940912,18.3,12.8,26.7,10.0,2.0 +19940913,17.9,12.9,26.6,11.1,2.7 +19940914,18.5,14.0,26.7,10.5,2.5 +19940915,18.5,14.4,27.8,11.1,1.6 +19940916,19.3,16.3,27.7,12.7,2.0 +19940917,21.8,20.3,27.2,19.4,3.0 +19940918,19.4,18.0,27.2,16.6,3.3 +19940919,16.9,12.7,22.2,11.6,2.5 +19940920,15.3,11.2,22.7,8.3,2.0 +19940921,15.2,11.5,21.7,10.0,1.4 +19940922,14.8,10.9,23.9,7.2,1.9 +19940923,15.1,13.4,23.8,11.6,1.2 +19940924,17.5,16.2,22.8,14.4,2.4 +19940925,18.2,16.6,23.3,14.4,2.7 +19940926,16.6,12.2,23.3,10.0,3.8 +19940927,15.7,9.3,23.9,9.4,2.3 +19940928,14.2,9.0,23.8,7.7,3.3 +19940929,15.6,9.0,23.3,9.4,4.1 +19940930,14.6,8.9,25.6,6.1,1.6 +19941001,16.7,12.4,26.6,8.8,2.0 +19941002,17.7,15.1,27.2,12.7,2.1 +19941003,17.6,15.9,25.5,16.1,2.9 +19941004,15.4,12.4,21.7,12.7,3.3 +19941005,13.2,8.0,21.6,7.7,4.7 +19941006,12.8,9.3,18.3,8.8,3.2 +19941007,15.5,11.5,19.4,12.7,3.1 +19941008,13.2,11.6,20.0,8.3,2.2 +19941009,16.6,16.5,18.9,15.0,2.0 +19941010,13.4,10.2,18.8,11.1,4.6 +19941011,10.3,5.4,16.6,5.0,2.5 +19941012,8.0,4.3,15.0,5.0,2.3 +19941013,10.4,10.2,11.7,7.7,2.1 +19941014,13.6,12.4,16.7,11.1,2.4 +19941015,15.2,9.8,19.4,12.2,2.5 +19941016,11.5,6.9,20.0,4.4,2.2 +19941017,10.3,5.8,20.5,2.7,2.0 +19941018,10.2,4.6,22.2,2.7,1.7 +19941019,11.2,8.8,22.2,8.3,1.6 +19941020,13.1,11.0,21.1,8.3,1.7 +19941021,12.3,7.9,22.2,4.4,1.7 +19941022,13.9,11.7,22.2,8.3,2.1 +19941023,17.3,13.9,21.7,15.0,3.8 +19941024,13.6,6.8,21.6,6.1,3.8 +19941025,11.5,6.2,20.5,4.4,3.4 +19941026,9.7,2.5,20.0,6.1,5.2 +19941027,6.0,0.1,15.6,-1.2,2.8 +19941028,6.0,0.8,15.5,-1.7,1.8 +19941029,7.5,4.0,19.4,-1.7,2.1 +19941030,15.6,12.7,20.0,12.2,1.6 +19941031,17.0,14.4,22.2,14.4,2.0 +19941101,12.1,8.1,22.2,7.7,4.9 +19941102,9.1,-4.9,18.3,2.7,4.5 +19941103,9.6,0.2,23.3,0.0,1.8 +19941104,11.9,2.8,24.4,1.1,2.5 +19941105,14.6,10.1,25.0,9.4,3.6 +19941106,17.4,14.1,22.8,15.0,4.9 +19941107,12.9,4.3,23.3,8.3,4.9 +19941108,9.1,1.6,21.1,0.0,2.7 +19941109,11.8,5.8,23.9,2.2,2.2 +19941110,13.8,12.6,23.8,10.0,2.9 +19941111,10.1,-0.9,15.6,5.0,2.0 +19941112,8.1,-1.3,16.6,0.0,1.7 +19941113,8.2,-0.2,21.7,-1.7,1.5 +19941114,9.1,1.3,21.7,-1.2,1.7 +19941115,9.1,1.7,21.6,0.0,1.9 +19941116,10.6,5.0,21.6,3.8,2.6 +19941117,12.0,8.7,20.0,8.3,3.4 +19941118,14.5,11.2,20.0,11.1,4.7 +19941119,14.8,5.6,22.2,8.8,5.2 +19941120,9.7,-0.4,22.2,2.7,2.7 +19941121,14.4,8.8,23.9,9.4,3.4 +19941122,11.6,2.7,23.8,5.5,6.5 +19941123,4.2,-10.6,15.0,0.0,7.2 +19941124,3.1,-8.5,11.7,-2.8,4.0 +19941125,2.7,-6.5,12.8,-5.0,2.4 +19941126,5.3,-1.5,13.8,3.3,3.4 +19941127,4.5,3.7,6.6,3.8,3.7 +19941128,9.9,6.6,16.1,4.4,4.0 +19941129,2.3,-0.7,5.6,-1.7,1.4 +19941130,4.7,-0.3,10.6,-1.2,3.8 +19941201,3.4,-5.4,11.7,-3.4,2.9 +19941202,2.9,-3.4,13.9,-5.0,1.7 +19941203,6.1,2.1,16.7,-1.2,2.0 +19941204,12.6,12.5,16.6,11.1,1.3 +19941205,16.2,14.7,21.1,13.8,3.9 +19941206,12.9,10.6,21.1,6.6,2.8 +19941207,11.4,9.6,19.4,4.4,3.6 +19941208,11.8,7.7,17.2,6.6,4.7 +19941209,9.7,5.7,16.1,6.6,3.1 +19941210,8.7,7.9,15.0,6.6,2.8 +19941211,3.3,-0.3,11.7,-1.1,8.9 +19941212,-1.7,-6.2,5.5,-6.2,4.0 +19941213,0.3,-4.6,4.4,-2.8,2.9 +19941214,4.9,2.9,8.9,2.7,1.3 +19941215,6.9,5.4,8.9,5.5,1.9 +19941216,5.6,3.1,9.4,3.8,3.7 +19941217,6.6,4.7,13.9,3.3,3.2 +19941218,5.4,2.4,13.8,-0.6,5.4 +19941219,2.7,-3.7,10.0,-0.6,6.1 +19941220,0.7,-3.7,10.0,-6.2,1.6 +19941221,1.5,-2.6,10.0,-3.9,1.6 +19941222,6.3,4.8,8.8,4.4,2.3 +19941223,6.6,1.3,7.8,5.5,8.5 +19941224,4.2,-1.0,7.7,2.2,9.4 +19941225,3.4,-3.1,6.1,2.2,10.4 +19941226,5.8,-2.2,15.0,-0.6,5.6 +19941227,3.9,-1.0,15.0,-4.5,1.5 +19941228,4.9,-1.7,16.1,-2.8,2.1 +19941229,7.1,-1.8,16.1,2.2,2.8 +19941230,6.7,-6.2,12.2,3.8,2.7 +19941231,3.8,1.6,8.8,1.1,2.3 +19950101,8.5,6.7,14.4,6.1,2.6 +19950102,2.2,-3.9,9.4,-2.8,6.3 +19950103,-1.3,-10.2,5.0,-3.9,3.8 +19950104,-0.8,-7.7,2.8,-2.8,6.0 +19950105,-5.8,-16.9,1.7,-12.2,5.1 +19950106,-3.2,-10.6,2.2,-7.2,3.6 +19950107,3.8,2.7,7.2,0.0,4.6 +19950108,0.4,-4.3,6.7,-2.8,5.9 +19950109,2.9,-1.9,9.4,-1.1,2.4 +19950110,2.4,-2.2,12.2,-3.9,2.2 +19950111,4.9,2.6,8.9,0.6,3.0 +19950112,9.6,8.9,13.9,7.2,2.8 +19950113,11.6,10.3,15.0,8.9,3.1 +19950114,14.6,13.7,16.7,12.8,6.3 +19950115,12.0,11.6,15.0,10.0,3.5 +19950116,7.9,6.2,10.0,5.6,6.3 +19950117,5.8,0.8,17.2,0.0,3.6 +19950118,7.3,3.2,15.6,1.7,2.2 +19950119,6.3,5.5,9.4,4.4,4.3 +19950120,2.8,-1.7,8.9,-0.6,4.8 +19950121,0.7,-4.4,4.4,-3.3,6.7 +19950122,-0.6,-7.4,7.2,-5.0,5.0 +19950123,1.3,-6.4,4.4,-1.1,4.7 +19950124,-2.8,-8.0,2.2,-7.2,6.5 +19950125,-0.8,-9.1,10.0,-7.8,4.6 +19950126,3.9,-4.1,7.8,-2.2,4.7 +19950127,0.2,-5.4,7.8,-5.6,2.2 +19950128,6.1,3.3,10.0,3.3,3.5 +19950129,2.7,2.7,5.6,0.6,3.7 +19950130,0.0,-0.7,2.8,-1.7,4.1 +19950131,-0.3,-3.4,5.6,-2.8,6.2 +19950201,3.2,-4.2,13.9,-2.2,4.3 +19950202,9.4,2.3,12.2,5.6,2.9 +19950203,5.2,3.1,10.0,1.1,4.1 +19950204,1.8,-1.3,6.7,-2.8,6.7 +19950205,-5.3,-11.5,-2.8,-7.8,7.4 +19950206,-7.3,-15.9,-1.1,-11.7,6.9 +19950207,-5.6,-13.6,2.2,-11.7,2.6 +19950208,-7.6,-12.5,-1.1,-11.7,7.9 +19950209,-8.8,-16.1,2.2,-14.4,5.7 +19950210,0.7,-5.3,11.1,-4.4,1.7 +19950211,4.3,1.3,6.7,2.2,5.9 +19950212,-3.0,-11.1,1.1,-7.2,8.0 +19950213,-3.3,-14.2,2.8,-7.8,3.1 +19950214,1.5,-8.4,4.4,-0.6,1.9 +19950215,2.4,-0.4,4.4,0.6,4.1 +19950216,9.1,9.1,13.9,3.9,3.3 +19950217,9.4,9.1,11.7,7.2,3.8 +19950218,6.3,5.6,10.0,4.4,2.4 +19950219,8.0,6.3,13.3,5.6,2.3 +19950220,9.2,4.8,13.3,5.6,4.1 +19950221,5.1,-1.2,10.6,1.1,8.0 +19950222,2.7,-4.7,16.1,-4.4,5.5 +19950223,8.8,-1.2,19.4,0.0,2.2 +19950224,8.9,-3.2,16.1,4.4,6.1 +19950225,3.2,-6.5,13.3,-3.3,2.7 +19950226,7.9,-2.6,20.6,-2.8,2.6 +19950227,11.4,5.9,16.1,8.3,3.4 +19950228,12.1,11.6,13.9,10.6,2.9 +19950301,9.8,8.9,12.2,6.7,5.1 +19950302,4.6,2.5,6.1,3.3,4.0 +19950303,4.8,3.4,6.1,3.3,2.8 +19950304,3.3,2.3,8.3,0.6,2.9 +19950305,3.1,3.0,3.9,2.2,3.6 +19950306,8.6,7.2,20.0,3.9,2.5 +19950307,14.3,12.4,17.2,12.2,4.6 +19950308,10.9,9.3,16.1,0.6,7.8 +19950309,-1.4,-6.1,1.7,-3.9,10.2 +19950310,1.3,-5.1,13.9,-6.7,3.9 +19950311,6.2,-1.8,17.2,-4.4,1.9 +19950312,8.8,0.5,19.4,-2.2,2.1 +19950313,9.9,3.7,18.9,0.0,1.8 +19950314,11.1,6.1,20.6,1.1,1.6 +19950315,11.4,6.0,20.6,1.7,1.2 +19950316,12.7,6.6,22.2,2.8,2.2 +19950317,14.4,7.8,23.3,5.6,3.1 +19950318,14.2,3.3,22.2,6.1,3.5 +19950319,9.8,-1.0,18.3,1.1,2.8 +19950320,11.0,2.9,19.4,1.7,4.2 +19950321,12.8,3.9,18.3,3.9,4.2 +19950322,13.8,3.4,25.0,2.8,3.2 +19950323,18.0,8.7,27.2,10.0,3.3 +19950324,12.7,1.1,21.1,8.3,7.1 +19950325,9.8,-8.1,18.9,1.7,5.3 +19950326,9.8,-4.7,21.7,-1.1,2.0 +19950327,12.9,6.8,18.9,8.3,2.1 +19950328,13.2,4.8,17.8,8.3,5.2 +19950329,9.9,1.6,17.8,2.8,2.7 +19950330,10.4,1.7,15.6,6.7,4.2 +19950331,9.2,-1.9,14.4,5.0,5.2 +19950401,7.1,-2.1,12.2,1.1,3.4 +19950402,7.7,-4.1,15.0,0.0,3.8 +19950403,8.3,-2.8,20.0,-1.7,2.7 +19950404,12.2,3.2,18.9,4.4,3.8 +19950405,11.3,-6.1,18.3,3.9,6.1 +19950406,11.7,0.3,19.4,5.0,2.2 +19950407,13.2,3.1,24.4,1.7,2.8 +19950408,15.3,5.3,25.0,4.4,2.1 +19950409,18.3,7.3,26.7,8.3,3.7 +19950410,19.8,7.7,29.4,7.8,3.3 +19950411,14.8,11.1,25.6,11.1,4.9 +19950412,13.7,13.1,19.4,11.1,4.9 +19950413,12.3,5.9,18.3,6.1,4.8 +19950414,12.2,-0.7,18.3,7.2,6.2 +19950415,13.2,-1.8,22.2,2.8,3.0 +19950416,15.3,5.2,27.2,4.4,2.2 +19950417,15.3,10.8,22.8,10.6,1.6 +19950418,17.6,13.8,27.8,11.7,1.7 +19950419,21.2,12.9,28.3,12.2,3.4 +19950420,18.9,15.1,23.9,13.3,2.6 +19950421,19.5,14.2,26.7,16.1,3.5 +19950422,17.9,11.9,23.3,10.0,3.0 +19950423,12.7,10.2,20.0,7.2,3.2 +19950424,7.6,5.4,11.1,5.6,5.0 +19950425,8.8,2.3,16.7,3.3,5.6 +19950426,10.1,2.9,19.4,0.6,1.9 +19950427,13.2,6.5,20.6,4.4,3.4 +19950428,14.4,4.8,21.1,8.9,4.8 +19950429,12.7,4.2,21.7,3.3,3.2 +19950430,15.5,10.0,23.3,10.0,2.7 +19950501,14.4,12.2,18.3,10.6,3.0 +19950502,11.7,8.8,13.9,8.3,4.9 +19950503,11.3,5.6,18.9,5.0,3.2 +19950504,13.4,9.2,17.8,8.9,3.8 +19950505,13.5,9.9,19.4,8.9,3.1 +19950506,14.2,5.3,21.7,8.3,4.4 +19950507,13.7,6.3,24.4,5.6,1.9 +19950508,15.7,7.9,25.0,7.2,2.2 +19950509,16.9,13.3,22.2,13.9,2.7 +19950510,19.3,16.6,25.6,13.9,3.1 +19950511,20.6,14.9,26.7,15.0,3.7 +19950512,17.2,11.9,22.8,11.1,3.9 +19950513,14.9,11.6,21.1,8.3,2.3 +19950514,18.2,16.1,24.4,15.6,3.7 +19950515,21.7,18.4,27.2,17.8,4.0 +19950516,18.9,13.2,26.1,11.1,2.8 +19950517,21.8,15.7,28.3,16.7,2.9 +19950518,23.4,17.4,28.3,17.8,2.9 +19950519,19.9,16.6,23.9,16.7,4.3 +19950520,15.6,6.7,23.3,8.9,4.2 +19950521,16.0,8.9,24.4,7.2,1.6 +19950522,18.9,11.7,24.4,11.7,2.6 +19950523,18.8,13.8,25.0,12.2,2.2 +19950524,20.4,14.2,26.7,13.9,2.8 +19950525,21.7,15.1,28.3,14.4,2.4 +19950526,20.8,17.2,26.7,14.4,2.0 +19950527,19.4,17.7,24.4,15.6,2.0 +19950528,18.8,17.5,22.2,16.7,3.2 +19950529,20.4,18.8,26.1,17.8,2.9 +19950530,19.8,16.5,24.4,17.2,3.7 +19950531,17.4,13.3,21.7,13.3,2.8 +19950601,18.9,18.3,22.8,16.7,2.3 +19950602,20.6,19.2,24.4,18.3,3.2 +19950603,20.0,17.2,26.1,14.4,2.0 +19950604,21.4,17.4,27.8,15.0,2.2 +19950605,21.0,18.8,25.0,18.3,1.3 +19950606,20.0,18.1,26.1,17.8,3.9 +19950607,21.1,18.4,26.1,17.2,2.5 +19950608,23.1,18.9,30.0,16.1,2.6 +19950609,22.2,19.6,30.0,17.8,1.6 +19950610,20.8,18.6,28.9,17.2,1.4 +19950611,22.4,19.3,28.9,17.8,2.5 +19950612,18.9,17.4,25.0,16.7,3.5 +19950613,15.5,10.7,18.9,12.2,5.5 +19950614,16.0,9.2,23.9,8.9,4.0 +19950615,17.6,11.8,25.0,10.6,2.5 +19950616,17.2,12.6,25.0,10.6,1.8 +19950617,17.3,14.4,23.3,11.7,1.8 +19950618,18.1,14.3,26.1,12.8,2.3 +19950619,16.9,14.6,22.8,14.4,2.5 +19950620,17.3,14.9,22.8,13.9,2.6 +19950621,19.0,15.6,24.4,14.4,2.0 +19950622,19.1,16.7,24.4,16.1,1.9 +19950623,19.3,17.2,24.4,15.6,1.9 +19950624,20.5,18.3,25.0,17.2,1.7 +19950625,20.3,19.2,25.6,17.8,2.0 +19950626,21.2,19.3,27.8,18.3,1.5 +19950627,20.7,17.1,28.3,15.6,2.3 +19950628,21.1,17.5,26.7,14.4,1.8 +19950629,21.3,19.1,25.6,18.9,1.9 +19950630,19.6,18.4,25.6,16.1,1.5 +19950701,21.2,18.8,25.6,18.3,3.2 +19950702,20.7,17.7,26.1,16.1,2.4 +19950703,19.9,17.9,26.7,16.1,2.0 +19950704,21.0,18.4,26.7,17.2,1.7 +19950705,23.6,19.6,30.6,18.3,2.5 +19950706,23.4,19.3,29.4,18.3,2.2 +19950707,22.3,17.7,27.8,17.2,2.9 +19950708,21.7,15.1,27.2,16.1,3.6 +19950709,19.8,14.7,26.7,12.8,1.7 +19950710,21.9,17.3,28.9,15.0,1.5 +19950711,23.3,18.6,31.1,17.2,3.2 +19950712,23.7,18.4,31.7,17.2,1.9 +19950713,23.7,20.1,29.4,18.9,1.7 +19950714,24.5,20.3,31.1,18.3,2.2 +19950715,24.1,20.3,32.2,18.9,1.7 +19950716,24.6,20.4,31.1,20.0,2.5 +19950717,24.2,20.4,30.6,20.0,2.9 +19950718,24.9,18.9,31.1,19.4,3.1 +19950719,23.2,17.4,28.3,17.8,2.7 +19950720,24.1,20.2,30.6,18.9,2.8 +19950721,24.7,21.4,30.6,20.6,2.4 +19950722,23.9,20.5,28.9,19.4,1.7 +19950723,24.9,20.3,32.2,18.9,1.6 +19950724,25.7,20.0,32.8,18.9,1.9 +19950725,25.1,19.0,32.2,17.8,1.5 +19950726,23.7,19.3,31.7,18.3,2.0 +19950727,22.9,20.3,27.2,20.6,2.2 +19950728,23.1,19.6,27.2,18.3,3.3 +19950729,23.3,19.3,29.4,18.3,1.9 +19950730,24.1,19.2,30.6,17.2,1.9 +19950731,24.0,19.9,30.6,18.9,1.5 +19950801,23.0,19.1,28.9,17.8,2.2 +19950802,22.9,19.1,28.3,18.3,2.0 +19950803,22.7,20.0,26.1,20.6,3.5 +19950804,23.2,20.7,27.8,20.6,3.2 +19950805,22.8,20.3,26.7,19.4,2.9 +19950806,24.5,20.3,28.9,21.7,2.7 +19950807,22.4,20.8,26.7,21.1,1.4 +19950808,19.7,18.4,22.2,17.8,2.3 +19950809,20.2,17.7,25.0,17.8,1.8 +19950810,21.4,19.3,27.8,17.8,1.9 +19950811,23.1,20.4,30.0,19.4,2.3 +19950812,23.6,19.6,31.1,18.3,2.6 +19950813,25.3,20.5,32.2,20.0,2.2 +19950814,26.2,20.9,33.3,19.4,1.8 +19950815,25.6,20.5,33.3,19.4,1.6 +19950816,27.2,21.5,33.9,21.7,1.8 +19950817,25.9,20.1,33.9,19.4,1.8 +19950818,26.3,21.2,33.3,20.0,2.0 +19950819,24.2,20.7,28.9,20.0,1.9 +19950820,22.2,20.0,25.0,19.4,2.2 +19950821,23.2,20.2,27.8,20.0,2.1 +19950822,24.0,20.6,30.6,20.0,2.5 +19950823,22.4,18.5,26.7,17.2,2.3 +19950824,22.2,19.4,27.2,19.4,1.3 +19950825,22.7,20.0,27.8,18.9,2.1 +19950826,21.7,20.9,24.4,20.6,1.9 +19950827,20.9,20.1,23.3,20.0,2.5 +19950828,23.1,19.4,27.8,19.4,3.1 +19950829,22.7,18.8,29.4,17.2,2.4 +19950830,22.9,19.1,29.4,17.8,2.0 +19950831,24.2,20.1,31.1,19.4,1.7 +19950901,22.1,19.5,31.1,17.8,2.5 +19950902,20.3,15.1,25.6,17.2,3.3 +19950903,17.7,12.3,26.1,11.1,1.5 +19950904,18.3,13.3,25.6,10.6,1.2 +19950905,17.9,14.2,26.1,11.7,2.0 +19950906,18.7,14.9,25.6,13.9,1.6 +19950907,19.5,14.1,27.2,12.8,2.0 +19950908,20.0,15.1,27.8,13.3,1.8 +19950909,20.8,16.4,28.9,14.4,2.1 +19950910,19.9,17.2,26.1,15.0,1.4 +19950911,19.2,18.4,21.1,17.2,1.9 +19950912,17.2,16.3,20.6,16.1,2.5 +19950913,20.3,17.7,26.7,16.1,2.5 +19950914,20.8,18.5,25.0,17.8,2.9 +19950915,19.6,16.7,24.4,15.6,2.2 +19950916,17.8,17.1,20.6,16.1,1.6 +19950917,19.8,17.3,24.4,16.7,4.1 +19950918,18.7,15.0,24.4,14.4,2.9 +19950919,18.5,14.7,22.2,16.1,1.6 +19950920,17.8,14.9,23.9,13.3,1.7 +19950921,20.3,17.9,23.3,17.8,1.8 +19950922,18.6,17.7,21.7,13.9,2.3 +19950923,11.5,10.7,13.3,10.0,3.8 +19950924,10.3,9.7,14.4,8.3,2.7 +19950925,15.2,13.6,21.1,12.2,2.5 +19950926,17.9,15.3,21.1,15.6,3.2 +19950927,16.6,13.4,22.8,12.8,2.6 +19950928,16.7,13.1,22.8,12.2,1.7 +19950929,14.4,10.8,21.1,8.3,1.5 +19950930,13.8,11.3,20.0,8.3,1.5 +19951001,17.6,14.3,25.0,14.4,2.2 +19951002,17.8,14.3,26.1,12.8,1.9 +19951003,17.9,16.9,20.6,15.6,2.3 +19951004,16.9,16.8,18.9,15.6,1.5 +19951005,20.3,18.9,23.3,17.2,7.1 +19951006,18.3,15.6,25.6,13.3,2.5 +19951007,17.7,12.7,21.7,12.2,4.3 +19951008,14.5,8.8,22.2,8.9,4.2 +19951009,13.7,10.5,21.1,8.3,1.6 +19951010,14.6,10.7,23.9,8.3,1.9 +19951011,15.5,10.9,25.0,7.8,1.6 +19951012,16.1,11.7,25.0,8.9,1.8 +19951013,17.0,15.7,18.3,15.6,1.4 +19951014,17.8,17.3,19.4,15.6,2.8 +19951015,10.9,2.7,16.1,6.1,7.5 +19951016,11.3,2.2,18.9,3.3,4.0 +19951017,8.5,2.8,16.7,1.1,2.5 +19951018,9.2,3.2,20.6,0.0,1.3 +19951019,11.4,7.2,21.1,3.9,1.7 +19951020,12.8,10.6,17.2,8.9,2.5 +19951021,8.6,0.8,13.9,2.8,5.8 +19951022,7.9,0.1,21.1,-0.6,1.8 +19951023,9.8,3.8,20.0,1.1,2.7 +19951024,15.2,10.9,22.2,9.4,3.3 +19951025,12.7,4.5,20.0,3.9,4.2 +19951026,11.7,4.7,21.1,6.1,2.6 +19951027,13.5,10.6,17.8,10.0,3.6 +19951028,11.8,6.1,15.6,6.7,3.4 +19951029,8.5,-0.7,13.3,5.0,5.2 +19951030,6.6,0.3,14.4,0.0,2.7 +19951031,9.1,7.6,11.1,7.2,1.5 +19951101,12.2,11.7,16.1,10.0,1.8 +19951102,15.4,14.7,18.3,13.9,2.7 +19951103,14.1,13.3,17.8,8.3,2.6 +19951104,3.0,-3.8,6.7,-1.1,7.3 +19951105,0.3,-4.9,5.0,-4.4,2.3 +19951106,3.3,-3.0,11.7,-3.3,1.9 +19951107,9.2,6.7,12.8,6.1,4.2 +19951108,6.3,-1.1,11.7,1.7,6.3 +19951109,1.0,-8.2,10.0,-5.6,4.1 +19951110,5.3,-4.2,13.9,-0.6,3.9 +19951111,10.4,5.9,16.1,0.6,5.7 +19951112,1.0,-7.3,8.9,-3.9,6.4 +19951113,3.3,-4.2,10.0,-1.1,2.5 +19951114,3.0,-0.8,6.1,-0.6,4.6 +19951115,-0.9,-7.2,2.8,-3.9,8.0 +19951116,-0.4,-6.6,9.4,-6.1,2.5 +19951117,2.9,-4.0,12.2,-2.2,3.8 +19951118,5.6,-1.7,15.0,-0.6,2.5 +19951119,6.6,-0.7,16.7,-1.1,2.6 +19951120,6.2,-0.8,16.7,-1.1,1.4 +19951121,7.5,-2.9,11.1,3.3,4.3 +19951122,3.6,-11.8,8.9,-1.7,5.6 +19951123,3.9,-6.5,13.9,-2.2,2.0 +19951124,6.7,2.1,11.1,5.6,3.9 +19951125,6.3,0.3,12.8,3.3,3.4 +19951126,6.7,-0.7,20.6,-1.1,2.1 +19951127,11.9,0.7,15.0,9.4,6.2 +19951128,14.3,10.8,17.8,11.7,5.1 +19951129,7.4,4.8,15.0,5.0,6.2 +19951130,3.7,-0.5,10.6,-0.6,3.8 +19951201,6.1,0.2,18.9,-1.7,2.4 +19951202,10.5,-0.8,20.0,1.1,3.5 +19951203,8.9,1.8,18.3,0.6,2.3 +19951204,12.1,3.0,15.6,8.3,3.9 +19951205,7.1,0.6,9.4,5.0,2.7 +19951206,8.0,2.6,12.8,5.0,3.4 +19951207,4.1,-0.1,9.4,0.6,5.4 +19951208,-0.8,-8.3,5.0,-5.0,3.2 +19951209,1.4,-1.1,5.0,-0.6,4.7 +19951210,-7.4,-17.1,-1.1,-13.3,8.1 +19951211,-5.3,-18.7,2.2,-8.9,4.9 +19951212,-0.2,-11.2,6.1,-3.3,3.3 +19951213,4.9,-3.7,12.8,1.1,2.0 +19951214,8.5,2.6,17.2,1.7,2.9 +19951215,10.9,6.4,20.0,5.6,1.2 +19951216,11.6,7.5,15.0,9.4,4.6 +19951217,4.0,-1.4,10.6,-2.8,2.5 +19951218,5.3,2.0,7.8,3.3,3.5 +19951219,7.9,6.6,14.4,3.9,3.3 +19951220,1.8,-3.7,10.0,-3.3,7.2 +19951221,-3.7,-8.9,0.6,-6.7,7.4 +19951222,-3.3,-8.1,-1.1,-5.0,7.3 +19951223,-4.0,-9.4,-2.2,-5.0,7.7 +19951224,-5.4,-10.7,-1.7,-8.3,7.3 +19951225,-4.7,-9.8,1.1,-7.8,6.6 +19951226,-3.7,-10.6,0.6,-7.2,7.2 +19951227,-1.1,-8.5,2.2,-3.9,5.3 +19951228,-2.6,-9.3,0.0,-5.6,7.6 +19951229,-1.8,-8.8,9.4,-8.3,4.8 +19951230,0.0,-5.3,11.1,-7.8,2.4 +19951231,6.3,2.0,12.2,3.3,1.9 +19960101,7.4,7.2,8.9,6.1,1.6 +19960102,7.8,7.6,10.0,6.1,3.2 +19960103,4.3,1.4,8.9,-1.7,5.7 +19960104,-2.2,-7.4,5.0,-6.1,4.8 +19960105,0.3,-5.1,6.1,-5.0,1.7 +19960106,1.6,-1.6,3.3,-1.1,3.0 +19960107,-4.4,-6.3,-1.1,-8.9,5.0 +19960108,-8.8,-14.1,-4.4,-10.6,8.4 +19960109,-5.9,-12.9,5.6,-11.7,4.6 +19960110,0.7,-6.1,2.2,-1.1,9.2 +19960111,-2.5,-8.7,0.0,-4.4,4.2 +19960112,-3.1,-5.4,1.1,-7.8,5.0 +19960113,0.0,-3.4,7.2,-3.3,6.3 +19960114,3.1,-2.7,14.4,-5.6,2.1 +19960115,3.8,-0.8,14.4,-3.3,1.2 +19960116,3.1,0.6,8.3,0.0,1.9 +19960117,5.7,3.6,13.3,2.8,2.8 +19960118,9.9,9.4,14.4,6.7,5.1 +19960119,4.9,1.3,17.2,-8.3,8.8 +19960120,-5.8,-13.1,2.8,-10.6,4.6 +19960121,-1.1,-9.2,4.4,-3.9,3.3 +19960122,-0.7,-5.7,6.1,-6.7,2.0 +19960123,3.8,-4.3,13.3,-2.8,3.0 +19960124,9.2,3.6,12.8,1.1,5.5 +19960125,-0.8,-8.7,6.7,-5.6,5.4 +19960126,-1.1,-5.4,2.8,-4.4,2.9 +19960127,5.2,-1.4,9.4,1.7,4.8 +19960128,-0.6,-15.6,5.6,-5.0,5.7 +19960129,1.5,-7.4,6.1,-1.1,3.1 +19960130,4.7,3.4,8.9,2.2,1.3 +19960131,4.6,2.6,8.3,-1.1,5.9 +19960201,-1.4,-5.3,-0.6,-2.2,3.6 +19960202,0.1,-0.6,1.1,-1.1,2.8 +19960203,-7.2,-9.5,-1.7,-10.0,7.6 +19960204,-12.3,-16.6,-10.0,-15.6,7.8 +19960205,-12.5,-17.8,-2.2,-18.3,3.5 +19960206,-4.8,-10.6,2.8,-10.6,3.1 +19960207,0.9,-4.0,6.1,-2.8,2.5 +19960208,5.8,1.8,12.2,1.7,2.9 +19960209,9.7,3.5,12.8,5.6,5.2 +19960210,6.5,-1.5,20.0,-1.7,1.5 +19960211,11.4,2.6,15.6,5.6,5.4 +19960212,-0.6,-7.2,3.3,-3.3,9.2 +19960213,-0.8,-6.8,6.7,-4.4,6.0 +19960214,7.7,-5.3,12.8,3.9,4.7 +19960215,6.9,-0.1,11.1,3.9,4.6 +19960216,-0.6,-5.6,5.0,-3.3,9.2 +19960217,-3.6,-12.0,5.0,-8.3,6.5 +19960218,1.6,-8.6,6.7,-1.7,3.7 +19960219,2.3,-5.3,11.1,-3.3,2.8 +19960220,8.5,6.4,13.3,6.7,3.1 +19960221,10.2,7.1,17.2,6.1,1.6 +19960222,11.4,8.0,18.9,6.1,1.6 +19960223,13.8,10.7,22.8,8.9,2.4 +19960224,13.5,2.8,19.4,8.9,7.0 +19960225,7.8,-4.9,21.1,-1.7,2.4 +19960226,13.7,1.6,24.4,3.9,2.1 +19960227,15.6,9.6,25.6,8.3,1.8 +19960228,14.9,8.3,20.6,11.1,5.4 +19960229,1.7,-7.2,9.4,-2.8,9.1 +19960301,1.4,-8.8,7.2,-2.2,3.8 +19960302,3.8,-3.8,10.0,-1.1,3.3 +19960303,4.4,-9.3,7.8,1.1,5.1 +19960304,2.2,-10.8,13.3,-5.0,2.4 +19960305,9.6,1.3,15.0,3.9,4.5 +19960306,13.2,10.1,19.4,10.6,3.5 +19960307,10.3,8.2,16.1,-0.6,4.4 +19960308,-6.7,-11.9,-1.7,-10.0,10.7 +19960309,-8.7,-15.1,-1.7,-13.3,6.6 +19960310,-5.4,-12.9,3.9,-12.2,2.9 +19960311,-0.6,-12.2,8.9,-8.9,2.1 +19960312,2.3,-11.3,14.4,-7.2,1.9 +19960313,5.7,-9.8,17.8,-4.4,1.1 +19960314,9.7,-1.3,21.1,-0.6,2.3 +19960315,11.9,8.1,17.8,6.7,1.5 +19960316,11.1,8.4,19.4,3.9,2.1 +19960317,11.4,8.6,18.3,5.0,2.6 +19960318,10.7,5.6,15.6,3.9,3.9 +19960319,7.5,3.1,10.6,2.8,5.7 +19960320,0.5,-7.1,2.8,-1.1,5.7 +19960321,-1.1,-6.2,1.1,-3.3,6.9 +19960322,0.5,-7.4,8.3,-3.9,6.4 +19960323,4.3,-11.7,13.3,-2.8,5.1 +19960324,7.1,-6.7,18.9,-2.8,2.3 +19960325,11.4,4.7,15.6,9.4,4.6 +19960326,9.3,1.7,13.9,5.0,5.7 +19960327,7.1,-0.6,10.0,5.6,2.9 +19960328,4.1,3.1,6.7,2.8,2.6 +19960329,8.2,5.9,15.0,3.9,3.8 +19960330,9.6,7.8,12.8,8.3,3.0 +19960331,7.7,7.1,8.3,7.2,3.3 +19960401,7.9,6.7,10.6,4.4,3.8 +19960402,6.0,-4.4,16.1,1.1,9.1 +19960403,10.1,-0.8,24.4,-1.1,2.1 +19960404,16.1,0.3,24.4,6.1,2.9 +19960405,10.6,3.8,20.6,4.4,7.2 +19960406,4.8,1.9,7.8,3.3,4.0 +19960407,3.3,-4.9,9.4,-1.1,5.8 +19960408,5.0,-3.6,6.7,2.8,4.1 +19960409,4.3,-3.4,7.2,1.7,7.1 +19960410,3.4,-7.4,11.1,-2.2,5.5 +19960411,9.2,-4.8,21.7,-1.1,2.9 +19960412,14.6,0.8,27.2,2.2,2.0 +19960413,15.6,7.5,21.7,8.9,2.8 +19960414,15.6,8.3,25.0,8.9,4.0 +19960415,17.2,10.0,22.2,14.4,5.2 +19960416,10.6,1.0,16.1,3.9,7.4 +19960417,12.3,-4.2,21.1,4.4,4.8 +19960418,13.1,0.8,23.3,2.2,2.9 +19960419,15.6,7.3,21.1,11.7,3.9 +19960420,15.9,13.8,21.7,13.9,3.8 +19960421,16.6,12.4,25.0,11.1,1.9 +19960422,18.2,12.4,26.1,10.6,3.7 +19960423,18.9,12.6,23.3,13.9,5.6 +19960424,10.4,-1.3,19.4,3.3,6.4 +19960425,13.0,-1.5,22.2,3.3,4.1 +19960426,15.9,6.7,21.7,10.0,4.8 +19960427,13.8,0.6,20.6,5.6,6.2 +19960428,13.2,3.1,21.7,3.9,2.9 +19960429,20.6,13.6,26.1,16.1,5.5 +19960430,13.9,9.2,21.1,8.9,6.3 +19960501,9.9,1.3,21.1,0.0,3.0 +19960502,16.0,5.3,25.0,7.8,2.4 +19960503,17.4,8.4,25.6,8.3,1.7 +19960504,21.4,11.9,31.1,12.2,2.9 +19960505,21.0,12.7,27.8,11.7,3.0 +19960506,20.1,15.1,25.0,16.1,3.8 +19960507,15.5,14.0,18.9,13.3,2.7 +19960508,18.1,14.7,26.7,12.8,3.1 +19960509,21.0,15.9,27.2,14.4,2.3 +19960510,20.0,14.1,27.2,12.8,1.9 +19960511,19.1,15.7,25.0,13.3,1.5 +19960512,13.3,5.7,19.4,9.4,6.2 +19960513,10.2,2.2,13.9,7.2,2.9 +19960514,10.7,4.7,16.1,7.8,3.3 +19960515,11.2,8.0,13.3,9.4,3.7 +19960516,16.6,12.4,25.0,11.7,2.6 +19960517,20.6,15.2,30.6,12.8,1.3 +19960518,22.7,14.8,31.7,13.3,3.1 +19960519,23.2,13.8,33.3,13.9,2.9 +19960520,23.9,16.2,31.7,15.0,3.0 +19960521,23.9,16.4,30.0,16.1,2.5 +19960522,22.6,13.8,27.8,18.3,5.2 +19960523,20.2,11.6,27.2,12.2,3.0 +19960524,22.4,16.7,30.6,15.0,2.5 +19960525,22.4,16.9,29.4,17.8,3.6 +19960526,20.3,17.9,26.1,17.8,2.7 +19960527,20.4,17.3,27.8,15.6,2.2 +19960528,20.7,17.4,25.6,17.2,3.4 +19960529,21.9,17.7,26.7,17.2,4.3 +19960530,17.1,13.1,21.7,13.9,3.7 +19960531,15.9,8.1,21.1,8.3,2.5 +19960601,14.4,8.7,20.6,6.1,1.7 +19960602,15.4,10.8,22.2,8.3,2.0 +19960603,17.5,13.0,22.8,13.9,1.0 +19960604,16.5,14.3,22.2,12.7,1.5 +19960605,16.1,11.5,23.9,8.8,0.7 +19960606,17.5,11.7,26.1,9.4,1.3 +19960607,19.6,15.1,27.2,12.2,2.4 +19960608,18.9,17.1,22.2,15.6,2.2 +19960609,19.7,16.7,24.4,17.2,4.1 +19960610,17.9,14.7,24.4,13.8,1.4 +19960611,18.0,15.3,23.9,14.4,1.3 +19960612,18.8,16.1,23.3,13.3,1.6 +19960613,19.2,16.6,25.6,15.0,1.5 +19960614,21.1,16.8,27.8,16.1,2.3 +19960615,21.5,16.7,28.9,15.0,2.0 +19960616,21.2,17.4,28.3,15.5,1.4 +19960617,21.3,18.4,27.8,17.8,1.4 +19960618,21.6,19.1,27.2,18.3,1.2 +19960619,22.4,19.2,27.8,18.9,0.9 +19960620,22.2,18.2,29.4,17.2,2.2 +19960621,23.6,18.2,30.0,16.7,2.6 +19960622,23.4,17.4,31.1,15.0,2.5 +19960623,24.8,18.0,32.8,18.3,2.1 +19960624,23.2,20.3,30.6,18.3,1.1 +19960625,23.1,19.2,28.3,18.8,4.2 +19960626,21.6,17.2,25.6,17.2,1.7 +19960627,21.7,16.9,25.6,16.7,1.1 +19960628,21.7,17.1,27.8,15.5,0.9 +19960629,22.5,16.8,29.4,15.0,0.9 +19960630,23.8,18.3,30.0,17.2,2.1 +19960701,24.9,18.4,31.1,18.9,3.1 +19960702,25.2,19.1,31.7,18.9,2.1 +19960703,22.0,16.8,27.2,17.8,3.8 +19960704,19.3,10.4,25.0,11.1,3.6 +19960705,18.5,12.7,25.0,12.2,1.8 +19960706,22.4,17.1,30.0,18.0,1.8 +19960707,22.5,17.8,30.0,15.6,1.4 +19960708,21.9,20.3,24.4,19.0,1.7 +19960709,22.7,18.6,29.4,17.8,2.9 +19960710,21.8,13.6,26.7,17.2,2.7 +19960711,19.0,13.6,23.9,12.2,1.4 +19960712,20.7,15.4,25.6,17.0,1.5 +19960713,19.3,17.0,27.8,13.9,0.8 +19960714,22.2,19.8,28.9,17.8,1.5 +19960715,21.9,20.3,25.0,19.0,3.0 +19960716,21.7,18.2,28.3,16.7,1.0 +19960717,21.8,19.6,29.0,17.0,0.4 +19960718,23.8,20.3,30.0,17.0,2.1 +19960719,24.7,19.6,30.6,18.3,2.5 +19960720,25.5,20.1,28.9,22.2,3.8 +19960721,23.4,21.2,27.8,20.0,1.7 +19960722,23.7,21.3,28.9,19.0,1.8 +19960723,22.8,20.8,27.8,19.0,2.1 +19960724,23.2,19.1,28.9,18.3,2.7 +19960725,20.6,19.7,26.1,17.2,1.5 +19960726,19.6,16.1,26.1,15.0,2.1 +19960727,19.6,14.9,25.0,13.3,1.7 +19960728,19.4,17.6,23.9,16.7,0.7 +19960729,20.6,17.4,26.1,16.7,1.2 +19960730,19.6,18.8,22.8,16.7,0.7 +19960731,19.8,18.8,22.8,17.0,0.9 +19960801,21.7,17.4,26.1,18.9,2.7 +19960802,20.3,15.5,25.6,15.0,1.9 +19960803,20.9,17.4,26.7,15.6,1.4 +19960804,20.9,18.4,27.2,15.6,1.1 +19960805,22.2,19.9,26.1,19.0,1.0 +19960806,22.2,19.9,28.9,18.0,0.7 +19960807,22.3,19.8,30.0,18.3,2.0 +19960808,21.8,19.9,25.6,18.9,1.4 +19960809,22.1,18.9,27.2,19.0,2.9 +19960810,21.3,17.8,25.6,16.7,2.4 +19960811,20.1,18.6,22.0,18.0,1.1 +19960812,20.1,19.2,24.0,18.0,1.7 +19960813,20.4,17.3,25.0,17.2,3.3 +19960814,19.9,16.4,25.0,16.7,1.9 +19960815,20.6,16.7,27.8,16.0,1.2 +19960816,20.4,17.3,27.8,15.6,1.7 +19960817,19.8,17.4,26.7,15.0,0.6 +19960818,21.1,18.0,28.3,16.7,0.9 +19960819,21.6,18.1,28.3,16.7,0.8 +19960820,21.9,18.6,27.8,17.0,1.3 +19960821,21.6,18.9,27.8,17.0,1.6 +19960822,21.5,18.9,28.3,17.0,1.8 +19960823,21.8,18.8,28.3,17.0,1.2 +19960824,20.3,17.8,28.9,15.6,1.7 +19960825,19.3,18.5,22.8,17.0,0.7 +19960826,21.1,18.2,27.2,18.0,1.0 +19960827,20.2,18.4,25.6,17.8,1.3 +19960828,20.8,18.2,27.2,17.8,2.1 +19960829,19.7,17.4,26.1,16.0,1.4 +19960830,20.8,17.8,26.1,17.0,1.6 +19960831,19.9,17.6,24.4,17.0,0.8 +19960901,18.9,15.3,24.4,15.0,0.9 +19960902,17.6,16.8,19.4,16.1,0.3 +19960903,19.6,18.2,23.9,17.0,0.7 +19960904,21.2,18.1,26.7,17.8,1.8 +19960905,20.2,17.9,24.4,17.0,1.3 +19960906,22.9,16.6,27.8,19.4,4.3 +19960907,20.4,16.8,28.9,13.9,1.3 +19960908,19.9,17.6,25.6,16.7,2.4 +19960909,20.6,18.3,27.2,16.7,1.2 +19960910,20.3,18.8,24.4,17.8,1.5 +19960911,20.3,16.4,25.6,17.0,2.7 +19960912,19.4,14.9,26.1,14.0,1.9 +19960913,17.1,11.5,20.0,13.9,3.1 +19960914,14.1,8.6,20.6,7.8,2.3 +19960915,13.4,8.8,22.8,5.6,0.8 +19960916,17.3,16.1,19.4,15.0,1.7 +19960917,18.3,16.2,21.0,16.0,2.9 +19960918,15.3,9.9,19.4,12.2,4.3 +19960919,14.7,9.2,21.1,8.9,3.3 +19960920,13.4,9.6,22.8,6.0,0.9 +19960921,13.9,11.8,20.0,10.0,1.3 +19960922,16.2,10.8,21.7,12.2,3.7 +19960923,17.5,10.8,25.0,10.0,2.4 +19960924,15.9,12.4,25.0,9.0,0.9 +19960925,17.4,14.7,22.8,11.0,1.7 +19960926,17.4,15.7,21.7,13.3,2.1 +19960927,19.9,16.7,22.2,18.3,4.5 +19960928,18.3,16.9,22.0,12.2,4.8 +19960929,13.1,8.8,18.9,10.0,2.5 +19960930,12.2,10.9,17.0,9.0,1.0 +19961001,13.5,12.7,17.0,12.0,1.2 +19961002,16.0,15.0,21.7,13.9,1.4 +19961003,19.1,16.1,23.3,16.1,2.6 +19961004,12.8,8.6,16.7,9.4,2.1 +19961005,7.3,3.7,15.0,1.0,0.9 +19961006,8.8,6.9,14.4,3.9,0.6 +19961007,10.9,8.3,12.2,9.0,0.5 +19961008,14.1,11.7,18.9,11.1,3.7 +19961009,13.7,10.2,16.7,10.6,2.9 +19961010,9.1,3.3,13.9,5.0,3.6 +19961011,9.0,3.1,15.6,3.9,2.3 +19961012,6.9,2.8,16.7,-1.0,0.7 +19961013,9.9,4.7,20.6,2.0,1.2 +19961014,12.9,6.3,24.4,4.4,2.7 +19961015,13.6,9.8,23.3,5.6,1.4 +19961016,14.1,10.6,23.9,8.0,1.0 +19961017,14.1,11.1,22.2,7.0,1.1 +19961018,11.2,9.6,18.9,6.7,3.0 +19961019,7.4,-3.8,11.7,3.9,5.8 +19961020,7.4,-3.7,15.6,0.0,2.8 +19961021,8.7,-0.7,20.0,0.0,1.7 +19961022,12.8,6.8,23.3,5.6,2.2 +19961023,16.7,6.6,21.1,13.9,3.3 +19961024,11.8,1.0,20.6,3.9,2.8 +19961025,11.2,3.9,20.6,3.9,1.4 +19961026,14.6,8.9,17.2,11.7,1.0 +19961027,15.1,13.3,23.3,11.7,1.0 +19961028,17.2,15.1,24.4,12.2,2.1 +19961029,18.0,15.3,22.8,13.3,2.2 +19961030,20.8,12.2,27.0,16.7,3.5 +19961031,16.0,5.2,23.3,10.6,3.3 +19961101,13.1,6.0,15.6,10.6,2.5 +19961102,7.6,2.6,12.0,3.3,5.7 +19961103,2.9,-8.5,10.0,-2.8,4.1 +19961104,3.5,-4.5,13.3,-3.9,1.6 +19961105,10.1,3.2,17.8,4.4,1.5 +19961106,13.1,10.0,19.4,7.2,1.7 +19961107,16.4,15.0,18.9,14.0,3.5 +19961108,13.1,10.8,19.0,3.3,6.1 +19961109,3.7,-4.8,8.9,1.1,4.4 +19961110,0.8,-4.4,5.0,-2.6,2.6 +19961111,-0.1,-6.6,4.6,-5.0,2.9 +19961112,0.4,-8.8,6.7,-3.9,4.2 +19961113,0.5,-5.9,6.7,-4.4,1.0 +19961114,4.0,0.2,7.0,2.8,3.4 +19961115,1.7,-4.6,4.4,-2.0,2.8 +19961116,0.3,-6.5,8.9,-5.0,2.3 +19961117,3.9,0.5,10.0,-2.2,1.0 +19961118,9.8,9.2,12.2,8.0,0.7 +19961119,10.7,8.1,13.9,8.3,2.9 +19961120,9.4,5.1,15.0,5.6,1.8 +19961121,8.3,6.4,11.0,6.7,1.5 +19961122,3.8,-0.6,8.9,1.1,8.0 +19961123,1.6,-3.2,11.1,-5.0,1.7 +19961124,4.2,-0.7,15.6,-2.8,1.0 +19961125,10.7,8.2,15.6,5.6,2.4 +19961126,9.8,7.1,14.4,1.7,5.4 +19961127,1.3,-8.8,8.9,-3.9,6.7 +19961128,0.8,-5.7,10.0,-5.6,0.9 +19961129,0.4,-3.3,6.7,-3.9,0.7 +19961130,3.9,2.6,7.0,2.0,2.6 +19961201,11.6,10.7,16.1,6.7,3.1 +19961202,5.2,-2.0,10.0,0.0,5.9 +19961203,2.8,-2.7,13.3,-2.8,0.7 +19961204,5.0,-3.3,10.0,1.1,5.1 +19961205,0.4,-2.4,2.8,-3.3,2.1 +19961206,4.2,-2.9,12.8,-0.6,2.5 +19961207,6.1,2.9,8.3,2.8,3.4 +19961208,2.3,-5.1,7.8,-3.9,3.6 +19961209,-0.4,-7.6,3.9,-3.9,5.9 +19961210,1.4,-5.5,15.0,-6.1,1.3 +19961211,8.1,3.3,16.1,1.1,2.5 +19961212,13.3,11.9,14.4,11.7,2.6 +19961213,9.0,6.9,12.0,4.4,3.9 +19961214,5.4,-1.5,13.9,0.6,4.6 +19961215,3.7,-2.7,12.8,-3.3,0.9 +19961216,2.4,-2.3,10.0,-2.8,1.5 +19961217,5.8,3.4,11.1,3.0,3.8 +19961218,2.5,-0.5,5.0,0.0,4.1 +19961219,-3.2,-6.5,-0.6,-8.3,5.1 +19961220,-8.1,-13.9,-2.2,-11.7,5.4 +19961221,-6.9,-11.7,1.1,-13.3,1.7 +19961222,-0.7,-7.7,10.0,-7.2,2.1 +19961223,5.6,-2.1,15.0,-2.2,2.8 +19961224,9.3,6.9,11.0,3.9,4.3 +19961225,-0.3,-7.1,5.6,-5.6,5.0 +19961226,-0.9,-5.8,5.6,-6.1,0.5 +19961227,6.3,4.0,16.7,2.0,1.4 +19961228,11.4,9.3,15.6,8.0,3.5 +19961229,14.2,11.6,21.7,10.6,1.6 +19961230,11.0,6.8,18.0,6.0,0.5 +19961231,13.8,12.4,16.1,11.0,2.7 +19970101,9.0,7.9,12.0,7.0,2.4 +19970102,10.7,8.5,17.8,7.8,1.9 +19970103,13.2,8.9,20.0,7.2,3.3 +19970104,10.4,8.1,20.6,3.0,2.0 +19970105,14.8,8.7,18.3,10.0,3.8 +19970106,6.8,-0.1,10.0,3.9,5.4 +19970107,2.9,-4.9,5.6,1.1,6.1 +19970108,-0.1,-9.5,4.4,-2.0,3.2 +19970109,-0.4,-1.0,1.0,-2.0,3.4 +19970110,0.3,-4.3,3.3,-2.2,4.3 +19970111,-6.8,-10.4,1.0,-12.2,5.7 +19970112,-6.3,-11.0,0.0,-10.6,4.7 +19970113,-4.8,-12.3,1.0,-8.3,5.6 +19970114,-3.7,-11.9,5.6,-10.6,2.9 +19970115,-0.3,-6.0,7.0,-6.1,2.2 +19970116,1.1,-3.2,3.3,-3.9,5.9 +19970117,-9.1,-20.4,-4.4,-14.4,6.5 +19970118,-7.8,-19.6,-2.8,-11.1,6.8 +19970119,-5.3,-14.8,-0.6,-8.3,2.8 +19970120,-0.4,-6.7,8.9,-7.2,3.7 +19970121,3.7,-2.8,15.0,-4.0,1.9 +19970122,6.8,3.5,12.8,3.9,3.3 +19970123,7.2,4.4,12.8,1.7,1.6 +19970124,3.6,2.3,6.7,2.0,2.2 +19970125,5.7,1.1,8.0,2.8,3.9 +19970126,1.2,-7.1,7.2,-3.9,2.7 +19970127,4.0,-5.1,7.2,2.2,2.7 +19970128,6.7,3.9,9.0,2.8,3.8 +19970129,2.1,-6.1,6.1,-3.3,3.5 +19970130,3.8,-2.2,7.0,1.7,1.1 +19970131,4.3,-0.8,13.9,-1.1,1.6 +19970201,7.6,-2.7,18.3,-1.1,1.9 +19970202,7.6,-0.2,17.2,0.0,0.8 +19970203,7.7,3.1,17.2,0.0,0.7 +19970204,9.1,7.8,12.8,6.0,2.9 +19970205,6.3,4.3,8.9,1.7,5.6 +19970206,2.7,-3.3,10.0,-1.1,5.6 +19970207,7.6,-0.4,13.9,3.9,1.6 +19970208,5.7,3.3,10.0,2.8,3.1 +19970209,1.6,-2.1,3.9,0.0,3.4 +19970210,1.7,-0.7,3.0,0.0,1.5 +19970211,-1.1,-5.1,2.2,-3.3,5.1 +19970212,-0.9,-5.3,5.0,-5.0,4.0 +19970213,0.3,-2.1,2.2,-1.1,2.6 +19970214,0.2,-0.2,2.2,-1.1,1.8 +19970215,3.7,-0.7,7.8,1.1,6.2 +19970216,2.3,-6.4,11.7,-6.1,2.8 +19970217,5.9,-4.9,14.4,-1.1,3.9 +19970218,5.4,-2.9,15.6,-2.8,2.6 +19970219,9.4,1.8,18.9,0.6,2.1 +19970220,10.6,4.9,18.9,2.8,2.3 +19970221,14.1,10.9,17.2,12.0,4.3 +19970222,10.7,7.2,14.0,3.3,6.4 +19970223,3.4,-5.9,9.4,-1.1,5.5 +19970224,3.4,-5.5,11.7,-3.9,3.3 +19970225,6.6,-2.8,12.8,2.2,2.0 +19970226,7.3,2.1,11.1,4.4,3.1 +19970227,14.7,12.9,18.0,10.6,5.6 +19970228,14.7,14.1,16.1,13.0,2.7 +19970301,16.3,14.2,22.2,12.8,4.7 +19970302,17.3,13.8,19.4,14.4,2.8 +19970303,16.2,11.6,23.3,12.0,4.3 +19970304,12.9,7.7,21.1,5.6,3.0 +19970305,12.8,8.2,22.2,3.0,3.7 +19970306,7.4,-0.8,13.3,2.8,6.9 +19970307,6.4,-6.9,13.9,1.1,4.5 +19970308,11.1,-2.0,18.3,5.0,3.0 +19970309,8.7,1.2,17.8,-0.6,2.2 +19970310,14.6,9.2,19.4,11.1,3.0 +19970311,12.8,5.4,21.1,6.1,3.1 +19970312,11.3,1.4,19.4,3.3,2.0 +19970313,8.8,5.3,14.4,4.4,1.9 +19970314,15.0,12.6,18.3,11.0,5.2 +19970315,4.3,-2.8,12.2,-1.1,8.0 +19970316,2.2,-9.5,9.4,-3.9,4.1 +19970317,5.3,-3.7,15.6,-3.9,2.2 +19970318,11.0,4.2,15.6,3.3,1.4 +19970319,12.2,11.5,14.4,10.6,0.9 +19970320,11.5,7.6,16.1,7.8,4.2 +19970321,11.1,3.8,20.6,2.8,2.0 +19970322,12.6,4.4,19.4,5.0,4.7 +19970323,8.9,-1.7,13.9,3.9,5.9 +19970324,8.0,-2.5,15.0,-0.6,3.0 +19970325,8.5,4.7,12.2,6.1,2.9 +19970326,13.2,8.1,16.1,10.6,4.1 +19970327,10.3,-0.3,20.6,1.1,2.6 +19970328,9.4,5.6,13.3,6.1,1.3 +19970329,15.9,8.4,23.9,10.0,3.2 +19970330,14.9,5.6,22.8,6.7,2.4 +19970331,7.3,0.1,17.2,2.0,7.9 +19970401,6.7,-9.9,13.3,1.1,9.3 +19970402,8.6,-6.8,19.0,-1.7,2.7 +19970403,10.1,-3.4,21.1,-1.7,1.3 +19970404,12.7,0.8,23.3,1.1,1.7 +19970405,17.4,6.6,23.3,12.2,4.5 +19970406,16.7,12.6,20.0,13.9,3.3 +19970407,13.7,4.5,17.2,8.0,5.2 +19970408,9.5,-5.4,16.1,3.3,5.7 +19970409,10.1,-2.7,14.0,6.7,5.0 +19970410,6.3,-7.6,16.1,-0.6,3.4 +19970411,9.4,-1.0,18.9,0.6,2.7 +19970412,14.8,8.9,20.0,11.7,2.3 +19970413,11.6,6.2,15.6,6.1,5.7 +19970414,5.6,-3.9,13.3,0.6,5.4 +19970415,7.9,-2.2,17.2,-1.7,1.6 +19970416,10.7,0.6,20.6,0.0,1.4 +19970417,9.3,0.0,15.6,4.4,5.4 +19970418,4.9,-6.4,12.2,0.0,10.2 +19970419,8.3,2.0,12.8,4.4,2.9 +19970420,11.8,5.0,19.4,5.6,4.1 +19970421,12.8,6.4,22.8,5.0,2.1 +19970422,15.8,12.2,22.2,11.7,2.9 +19970423,10.2,9.3,14.4,7.8,3.2 +19970424,9.5,3.4,16.0,4.4,5.0 +19970425,9.8,2.6,16.7,2.8,2.1 +19970426,8.2,3.2,12.8,2.2,1.7 +19970427,9.1,8.8,11.0,7.8,2.5 +19970428,13.1,12.6,19.4,10.0,2.0 +19970429,13.3,11.3,18.0,10.6,2.2 +19970430,15.4,11.8,21.7,9.4,3.0 +19970501,18.3,8.1,24.4,12.8,4.3 +19970502,14.1,3.6,22.2,5.0,3.4 +19970503,16.2,10.6,22.8,12.8,3.1 +19970504,11.2,1.8,15.6,6.7,6.8 +19970505,9.8,2.4,19.4,0.6,1.5 +19970506,15.7,4.6,22.8,7.8,4.1 +19970507,14.6,2.9,21.1,6.7,2.6 +19970508,13.6,8.8,20.6,5.6,2.9 +19970509,15.3,12.1,21.1,11.1,3.6 +19970510,11.4,0.4,16.7,6.1,7.2 +19970511,10.8,1.8,20.6,1.1,2.4 +19970512,13.2,5.1,21.1,4.4,1.7 +19970513,13.2,3.9,18.3,8.3,5.2 +19970514,11.9,5.2,23.0,1.7,2.7 +19970515,16.3,7.0,21.7,10.0,3.5 +19970516,10.7,-0.7,17.2,2.2,4.8 +19970517,13.1,3.2,25.0,2.2,2.4 +19970518,17.1,9.7,28.3,6.1,1.8 +19970519,19.1,13.9,26.7,10.0,1.6 +19970520,19.8,17.2,25.0,16.7,3.1 +19970521,16.0,7.2,20.0,10.6,5.6 +19970522,14.6,5.0,22.8,7.8,2.7 +19970523,15.4,7.9,23.9,5.6,1.9 +19970524,17.2,12.7,25.0,9.0,2.4 +19970525,18.9,17.6,22.2,17.0,2.9 +19970526,20.5,16.6,27.2,15.0,2.6 +19970527,15.8,13.3,21.1,13.3,2.1 +19970528,12.4,7.6,15.6,10.6,2.4 +19970529,11.6,9.5,14.0,9.0,2.3 +19970530,14.0,13.4,17.2,12.0,1.9 +19970531,17.7,15.4,22.0,15.0,2.4 +19970601,19.1,15.9,23.3,15.6,3.8 +19970602,16.6,14.4,23.0,14.0,1.9 +19970603,15.4,13.8,20.0,13.0,1.5 +19970604,12.9,11.1,15.6,10.6,1.5 +19970605,13.8,9.6,17.2,11.7,2.1 +19970606,12.1,8.6,15.6,8.9,1.2 +19970607,12.0,9.7,14.4,10.0,1.4 +19970608,12.7,10.8,15.6,10.6,2.4 +19970609,13.4,11.1,15.0,12.2,1.6 +19970610,15.7,11.2,23.3,9.0,1.2 +19970611,18.1,14.2,22.2,13.9,0.6 +19970612,19.7,17.9,24.0,16.7,2.0 +19970613,21.1,18.0,28.3,17.0,1.7 +19970614,19.0,16.7,24.4,15.6,2.5 +19970615,19.4,16.2,25.0,15.0,2.9 +19970616,20.0,16.9,24.4,16.0,2.7 +19970617,21.7,18.9,26.7,17.0,2.2 +19970618,22.3,18.2,26.7,18.9,3.7 +19970619,21.8,16.5,27.8,17.2,3.3 +19970620,21.4,17.3,28.3,15.0,1.1 +19970621,20.6,17.8,26.7,16.7,1.4 +19970622,21.0,17.6,27.2,15.0,2.8 +19970623,22.9,18.4,28.3,17.0,2.3 +19970624,22.7,19.3,27.8,17.0,1.4 +19970625,21.9,18.4,26.7,18.9,0.6 +19970626,22.7,19.3,28.9,17.8,1.9 +19970627,20.4,19.4,22.0,18.9,1.6 +19970628,19.6,17.8,22.8,17.8,1.1 +19970629,19.7,16.9,23.9,17.8,1.0 +19970630,20.0,17.2,25.6,16.0,1.6 +19970701,22.2,19.4,27.2,19.0,2.6 +19970702,23.6,18.8,29.4,17.8,2.8 +19970703,25.5,19.1,32.2,19.0,2.4 +19970704,23.2,17.5,31.7,14.4,2.3 +19970705,21.3,17.1,26.1,17.8,3.8 +19970706,20.5,15.3,26.7,13.9,2.7 +19970707,20.8,15.3,27.2,14.4,2.1 +19970708,20.9,15.9,27.8,13.9,1.3 +19970709,19.9,17.8,27.2,15.0,1.1 +19970710,21.6,18.8,28.3,17.8,3.1 +19970711,20.9,18.4,25.0,17.2,1.5 +19970712,21.8,18.1,27.8,16.7,0.6 +19970713,23.3,18.9,28.9,16.7,1.9 +19970714,23.5,19.3,30.0,17.0,2.1 +19970715,23.9,19.3,30.6,18.0,1.9 +19970716,22.3,19.5,28.3,17.8,2.1 +19970717,22.3,18.3,28.9,17.8,2.6 +19970718,22.3,16.9,30.6,14.0,1.4 +19970719,23.7,18.4,31.1,16.7,1.9 +19970720,23.7,20.0,29.4,17.8,1.2 +19970721,24.2,20.6,30.6,19.0,1.8 +19970722,24.2,21.4,29.4,20.6,2.0 +19970723,22.0,21.2,24.0,21.0,1.4 +19970724,23.1,20.7,28.9,19.0,1.7 +19970725,23.4,19.3,30.0,17.0,1.7 +19970726,24.3,20.6,29.4,20.0,2.1 +19970727,23.6,21.3,28.3,18.9,2.6 +19970728,23.9,22.1,32.0,19.4,1.7 +19970729,23.2,19.6,27.8,19.4,3.2 +19970730,20.1,18.9,23.9,17.2,1.1 +19970731,18.7,13.0,24.4,15.0,1.7 +19970801,17.6,11.9,26.1,9.0,1.2 +19970802,19.1,12.9,28.3,10.0,1.5 +19970803,21.0,15.4,28.3,13.3,1.5 +19970804,22.1,16.4,29.4,15.0,2.2 +19970805,21.1,16.3,27.2,17.0,3.9 +19970806,18.5,12.3,24.4,11.7,2.1 +19970807,18.8,14.6,23.3,15.6,1.5 +19970808,18.9,15.9,23.9,15.6,1.5 +19970809,18.9,14.4,22.2,16.1,1.9 +19970810,18.4,15.9,24.4,15.6,1.1 +19970811,21.8,18.1,28.3,16.7,2.1 +19970812,23.1,18.8,29.4,17.2,1.5 +19970813,22.7,18.8,30.0,16.7,1.0 +19970814,24.2,19.3,30.0,19.4,2.4 +19970815,22.8,18.4,31.1,16.1,1.2 +19970816,25.2,20.3,31.7,20.0,2.5 +19970817,25.6,20.0,32.2,19.4,2.3 +19970818,24.2,18.9,29.4,18.9,2.7 +19970819,22.5,17.8,28.3,16.7,2.0 +19970820,22.9,19.3,27.2,20.0,1.4 +19970821,21.7,14.7,26.1,17.8,4.1 +19970822,18.6,10.5,23.3,13.9,5.5 +19970823,17.2,9.3,24.4,10.6,3.1 +19970824,16.9,10.2,25.6,8.3,1.2 +19970825,18.3,12.6,25.6,11.7,1.2 +19970826,19.9,13.8,27.8,12.2,1.2 +19970827,21.6,15.7,29.4,14.4,1.1 +19970828,22.1,17.3,28.9,15.0,2.1 +19970829,22.7,16.2,31.1,15.6,2.2 +19970830,21.7,15.7,28.9,15.0,1.7 +19970831,22.1,17.8,29.4,17.0,1.3 +19970901,22.1,18.6,28.9,17.8,1.4 +19970902,21.9,18.9,28.9,18.0,1.2 +19970903,20.8,17.9,25.6,16.0,2.4 +19970904,17.4,8.4,23.9,11.1,4.7 +19970905,14.6,7.0,24.4,5.0,1.2 +19970906,17.3,10.9,26.1,8.9,1.1 +19970907,19.1,12.5,27.2,11.7,1.3 +19970908,19.7,13.6,27.2,13.3,0.8 +19970909,19.1,16.5,22.8,16.1,0.8 +19970910,17.8,16.3,22.2,15.0,0.9 +19970911,16.6,14.3,22.2,13.9,1.6 +19970912,17.6,14.3,24.4,12.0,0.9 +19970913,18.2,14.6,25.6,12.0,1.3 +19970914,19.1,14.8,26.1,13.0,1.0 +19970915,20.2,14.1,26.1,15.0,3.1 +19970916,19.1,13.7,27.2,13.3,1.0 +19970917,19.3,15.8,27.2,13.9,0.8 +19970918,21.8,17.9,27.8,18.0,1.1 +19970919,21.1,16.1,30.0,15.6,0.8 +19970920,20.7,15.8,30.0,13.3,2.4 +19970921,18.9,15.7,20.6,16.7,2.4 +19970922,16.0,11.6,18.9,13.9,2.2 +19970923,18.3,13.5,26.1,13.3,1.6 +19970924,16.1,15.3,19.4,12.8,1.2 +19970925,15.4,13.7,22.2,11.7,1.6 +19970926,17.1,14.1,20.6,14.0,2.0 +19970927,16.6,12.6,21.7,12.2,1.5 +19970928,15.9,15.3,17.8,14.0,2.4 +19970929,16.8,11.1,22.8,12.8,4.2 +19970930,15.1,7.8,25.0,7.2,2.6 +19971001,15.2,8.1,19.0,11.1,3.8 +19971002,11.5,7.2,18.9,4.0,1.3 +19971003,12.8,8.4,22.2,6.0,1.5 +19971004,15.2,10.5,25.0,7.8,1.3 +19971005,15.7,10.4,25.6,6.7,1.3 +19971006,15.7,10.6,25.6,7.2,1.3 +19971007,16.3,12.1,26.1,8.3,0.8 +19971008,16.7,13.4,24.4,11.0,0.9 +19971009,16.7,13.0,25.0,10.0,1.2 +19971010,17.6,14.0,25.6,12.0,2.0 +19971011,17.7,14.8,23.3,13.0,2.0 +19971012,17.1,14.8,21.7,13.0,1.4 +19971013,18.1,14.4,22.2,15.6,2.9 +19971014,14.6,13.1,18.0,12.0,2.9 +19971015,12.2,4.7,18.3,8.3,5.2 +19971016,10.6,5.4,16.7,5.0,1.9 +19971017,11.9,7.8,17.2,5.0,1.4 +19971018,11.1,8.9,16.7,7.8,2.4 +19971019,12.1,10.1,14.4,10.6,3.7 +19971020,11.2,6.2,16.7,7.8,4.1 +19971021,8.8,6.0,15.6,3.0,1.0 +19971022,9.2,2.9,16.1,3.3,5.2 +19971023,5.5,-1.0,13.9,-1.7,2.2 +19971024,7.5,5.8,13.9,-1.7,2.6 +19971025,13.3,12.1,18.9,10.0,1.6 +19971026,14.6,13.7,18.9,9.4,2.6 +19971027,9.7,7.7,14.4,5.6,5.4 +19971028,5.6,-2.2,13.3,0.6,5.8 +19971029,7.6,-0.1,17.2,1.0,1.6 +19971030,6.8,1.7,16.1,-0.6,1.3 +19971031,7.3,3.9,16.7,-1.1,1.2 +19971101,11.4,9.7,17.8,8.9,1.3 +19971102,10.6,5.4,14.4,5.6,3.3 +19971103,5.9,0.7,11.1,1.1,2.6 +19971104,4.4,-0.4,8.3,0.6,4.1 +19971105,2.8,-0.7,10.6,-3.0,1.6 +19971106,3.6,1.8,10.6,-2.8,0.4 +19971107,7.4,5.5,13.9,3.9,2.9 +19971108,6.6,3.4,13.9,3.9,5.7 +19971109,6.2,3.2,9.0,5.0,7.2 +19971110,6.3,3.1,9.4,1.7,4.2 +19971111,6.7,3.6,9.4,1.7,4.7 +19971112,4.4,1.8,6.7,2.2,2.2 +19971113,4.3,4.3,6.7,2.2,2.0 +19971114,5.3,4.6,10.0,3.0,3.4 +19971115,3.8,1.6,6.0,2.0,5.4 +19971116,0.4,-6.9,3.3,-2.8,6.1 +19971117,0.1,-8.0,6.7,-3.9,4.3 +19971118,-0.3,-7.2,9.4,-7.2,1.7 +19971119,2.9,-5.2,11.1,-2.8,1.7 +19971120,3.0,-3.9,13.3,-3.9,1.7 +19971121,4.6,1.4,13.3,-5.0,1.5 +19971122,9.9,8.6,15.0,7.0,3.1 +19971123,8.1,3.6,11.1,5.6,5.4 +19971124,2.8,-3.6,6.1,0.0,5.1 +19971125,0.8,-6.1,11.1,-6.1,1.2 +19971126,3.0,-1.8,15.6,-5.0,1.1 +19971127,9.5,-0.9,16.7,1.7,3.5 +19971128,7.1,-0.8,17.8,0.0,0.6 +19971129,7.1,4.4,18.3,-0.6,0.9 +19971130,12.1,11.8,14.4,10.6,1.7 +19971201,8.4,5.9,11.1,5.6,5.6 +19971202,4.3,-1.1,15.0,-2.8,1.6 +19971203,7.5,4.2,9.4,5.6,1.7 +19971204,9.0,6.7,13.0,6.1,2.8 +19971205,2.3,-2.9,7.8,-0.6,4.3 +19971206,-3.4,-8.1,-1.1,-5.6,5.6 +19971207,-4.3,-7.9,-0.6,-6.1,5.6 +19971208,-4.7,-6.4,-0.6,-8.3,2.2 +19971209,1.3,0.9,6.1,-2.0,1.9 +19971210,4.9,2.2,15.6,-1.1,3.2 +19971211,4.4,0.9,15.6,0.0,4.8 +19971212,1.9,-1.6,3.9,0.0,5.7 +19971213,0.6,-3.8,3.9,-2.2,4.5 +19971214,1.5,-5.3,4.4,-2.8,4.0 +19971215,-0.4,-8.4,10.0,-8.0,2.4 +19971216,0.6,-9.3,13.9,-7.2,0.9 +19971217,2.9,-7.1,13.9,-8.3,2.1 +19971218,4.2,-3.0,13.3,-5.6,0.9 +19971219,3.2,-2.8,14.4,-4.4,1.5 +19971220,5.1,-0.8,16.1,-2.8,2.0 +19971221,4.4,2.3,16.7,-3.3,1.6 +19971222,4.1,3.8,9.4,-2.2,2.9 +19971223,6.9,5.1,11.7,3.0,3.5 +19971224,6.2,5.7,11.7,1.7,2.5 +19971225,7.8,5.7,13.3,5.6,2.8 +19971226,5.9,1.3,12.2,2.8,4.9 +19971227,2.8,0.9,6.7,0.0,4.4 +19971228,-1.1,-6.7,2.8,-4.4,5.5 +19971229,-1.3,-3.4,3.3,-5.0,2.9 +19971230,-1.6,-5.6,1.0,-3.9,3.3 +19971231,-2.8,-5.3,1.1,-5.0,4.3 +19980101,-5.0,-10.8,5.0,-11.1,2.9 +19980102,0.3,-7.9,14.4,-7.2,1.6 +19980103,3.4,-2.4,14.4,-7.2,2.2 +19980104,5.3,2.8,16.7,-5.0,1.2 +19980105,9.9,8.8,16.7,-2.2,2.0 +19980106,13.8,13.5,17.2,12.0,2.6 +19980107,15.6,15.3,18.3,13.9,3.9 +19980108,16.5,13.8,18.9,13.9,5.5 +19980109,9.4,4.5,14.4,5.0,5.2 +19980110,3.9,-0.5,11.7,-2.0,2.5 +19980111,4.7,0.7,12.2,-1.7,2.9 +19980112,5.9,3.4,12.2,1.0,2.0 +19980113,8.4,5.8,13.9,5.0,2.9 +19980114,6.6,2.2,8.9,4.0,3.5 +19980115,1.7,0.9,4.0,0.0,2.3 +19980116,4.9,4.4,8.0,3.0,2.1 +19980117,5.6,3.2,10.6,3.9,3.6 +19980118,2.7,-3.4,8.3,-1.7,3.3 +19980119,2.8,0.9,8.3,-2.2,2.5 +19980120,1.7,-3.3,6.7,-3.3,3.1 +19980121,2.1,-2.8,7.2,-3.3,2.6 +19980122,3.1,-0.7,7.2,-2.2,2.3 +19980123,4.8,4.2,10.6,2.8,1.5 +19980124,4.7,3.2,8.0,0.0,5.4 +19980125,0.8,-5.6,6.7,-2.2,4.9 +19980126,0.7,-4.2,7.8,-4.4,1.1 +19980127,1.7,-1.5,7.8,-4.4,2.5 +19980128,2.3,-1.1,5.6,0.0,8.5 +19980129,2.7,-2.1,11.7,-3.9,1.5 +19980130,2.9,-1.7,12.2,-3.9,5.5 +19980131,1.8,-4.5,6.1,-1.0,4.8 +19980201,-0.2,-4.4,7.2,-5.6,1.8 +19980202,1.9,-2.4,7.8,-2.2,0.7 +19980203,4.6,2.8,7.8,-2.2,2.8 +19980204,3.6,2.0,5.0,1.7,6.2 +19980205,0.8,-1.7,2.2,-1.0,8.1 +19980206,1.1,-1.6,5.0,-1.0,4.3 +19980207,3.8,1.0,7.2,1.7,3.4 +19980208,3.6,1.3,7.2,0.6,3.6 +19980209,5.4,0.3,10.0,2.8,1.7 +19980210,4.4,-1.3,12.8,-2.2,1.5 +19980211,5.8,2.8,12.8,-2.8,3.3 +19980212,6.2,2.8,9.4,2.8,3.8 +19980213,3.6,0.2,6.1,1.7,4.1 +19980214,4.3,-1.6,8.9,1.7,5.4 +19980215,0.8,-3.1,6.1,-4.4,2.1 +19980216,3.2,0.5,6.1,-4.4,3.0 +19980217,8.1,6.6,13.9,3.9,3.0 +19980218,7.9,4.4,10.6,5.0,2.9 +19980219,7.7,3.5,12.2,4.4,4.1 +19980220,7.2,3.5,12.2,5.0,3.8 +19980221,6.3,-0.6,11.0,3.9,5.1 +19980222,3.0,-0.6,7.8,-2.2,2.0 +19980223,5.2,3.5,7.8,-2.8,3.2 +19980224,6.3,-1.2,13.9,2.2,9.2 +19980225,11.1,-4.4,17.8,6.7,6.8 +19980226,8.9,-2.1,18.3,1.1,2.2 +19980227,11.7,7.1,18.3,0.6,3.6 +19980228,11.2,4.3,19.4,5.0,1.9 +19980301,9.9,-0.1,20.0,3.9,3.2 +19980302,5.3,-2.1,9.4,2.2,4.5 +19980303,-0.1,-4.2,3.9,-3.3,4.6 +19980304,1.4,-3.4,8.3,-2.2,1.3 +19980305,4.2,-0.4,10.6,-1.7,2.2 +19980306,6.4,4.0,10.6,-1.7,1.9 +19980307,5.5,5.2,8.0,3.9,2.4 +19980308,10.7,9.5,15.6,7.0,3.6 +19980309,11.0,7.7,14.4,4.4,5.2 +19980310,-0.7,-6.9,3.9,-3.3,8.2 +19980311,-4.1,-12.2,1.1,-7.8,7.7 +19980312,-5.6,-12.7,0.0,-9.4,7.5 +19980313,-3.0,-11.8,6.7,-10.0,1.9 +19980314,5.3,-5.0,17.2,-4.4,3.3 +19980315,7.6,-5.2,17.8,-5.0,4.0 +19980316,4.8,-1.2,15.0,0.6,2.0 +19980317,1.8,1.0,3.3,0.6,3.8 +19980318,3.5,3.5,7.2,1.7,2.7 +19980319,11.4,8.5,20.6,7.0,2.0 +19980320,14.4,10.2,21.1,7.2,4.2 +19980321,3.5,0.6,8.9,0.6,5.9 +19980322,2.6,-1.9,7.2,0.0,7.2 +19980323,3.4,-2.7,8.9,-2.2,2.3 +19980324,5.2,0.6,12.2,1.0,4.1 +19980325,6.0,-0.7,12.8,0.6,2.4 +19980326,12.3,5.2,22.2,4.4,3.8 +19980327,14.6,8.6,22.2,4.4,2.5 +19980328,16.8,10.1,22.2,5.6,5.2 +19980329,16.4,9.2,25.0,7.2,1.5 +19980330,17.2,9.8,26.1,7.8,2.0 +19980331,17.8,13.3,26.1,7.2,4.2 +19980401,18.2,11.1,23.9,12.8,5.5 +19980402,15.1,0.6,25.0,4.4,2.6 +19980403,9.7,4.4,25.0,4.4,1.9 +19980404,8.8,6.3,12.8,3.9,4.9 +19980405,7.8,-0.2,16.1,2.8,6.6 +19980406,9.2,-1.9,20.0,-1.1,2.0 +19980407,11.8,2.7,22.2,3.3,2.8 +19980408,16.8,10.8,24.4,9.4,2.5 +19980409,16.7,9.7,25.0,9.4,4.2 +19980410,7.6,2.6,10.0,5.0,5.0 +19980411,7.8,0.5,15.0,4.4,6.7 +19980412,10.5,-0.9,18.9,2.2,3.1 +19980413,10.2,2.0,18.0,1.1,2.7 +19980414,13.8,8.2,19.0,10.0,4.4 +19980415,14.8,11.3,23.9,8.3,2.7 +19980416,17.7,14.3,23.9,7.8,5.1 +19980417,18.4,14.5,24.4,13.9,3.1 +19980418,13.0,11.9,15.6,11.7,2.7 +19980419,11.4,10.9,13.3,10.0,2.5 +19980420,11.5,5.4,17.8,7.0,5.0 +19980421,9.6,5.7,15.6,3.0,2.0 +19980422,9.3,8.3,15.6,2.8,0.8 +19980423,9.1,6.6,14.4,6.7,2.9 +19980424,9.9,4.8,17.2,3.0,3.1 +19980425,11.6,4.3,21.1,2.2,1.1 +19980426,16.2,7.8,23.3,8.3,3.2 +19980427,14.1,10.0,23.3,8.3,2.2 +19980428,10.5,6.1,20.6,6.7,2.5 +19980429,13.4,8.6,18.9,10.0,2.2 +19980430,13.3,12.2,18.9,9.4,2.5 +19980501,14.2,12.6,20.6,12.0,1.6 +19980502,12.1,8.7,18.9,7.2,1.7 +19980503,12.2,9.6,18.3,5.6,1.6 +19980504,12.9,9.8,19.4,5.6,1.6 +19980505,11.5,7.3,20.0,3.9,2.6 +19980506,14.6,9.7,22.8,6.0,1.7 +19980507,16.2,15.0,23.3,5.6,2.6 +19980508,16.1,12.6,22.2,11.7,2.4 +19980509,17.6,13.0,23.3,11.7,4.2 +19980510,16.4,14.2,20.0,14.0,1.8 +19980511,16.4,12.4,22.0,13.3,4.5 +19980512,15.6,9.1,23.0,6.7,3.7 +19980513,16.9,12.5,26.7,9.4,1.6 +19980514,20.4,16.0,28.9,14.0,1.5 +19980515,22.4,18.1,29.4,17.0,1.9 +19980516,21.8,17.8,27.8,16.0,1.9 +19980517,22.8,16.8,27.8,16.1,4.3 +19980518,20.2,12.5,27.2,12.2,1.9 +19980519,20.6,14.2,32.2,11.0,1.3 +19980520,22.7,15.2,33.3,11.1,2.8 +19980521,22.4,15.8,29.4,15.6,2.0 +19980522,22.6,17.7,29.4,15.0,2.7 +19980523,21.4,17.1,27.8,16.0,1.9 +19980524,21.5,18.3,26.7,17.0,1.4 +19980525,21.9,17.6,28.3,14.0,2.0 +19980526,22.3,17.6,28.9,14.4,1.2 +19980527,20.8,18.2,29.4,16.1,1.7 +19980528,21.4,17.4,28.9,16.0,1.3 +19980529,22.7,18.8,28.9,15.6,1.6 +19980530,22.5,18.9,28.9,17.8,1.4 +19980531,22.1,18.3,30.0,15.0,1.4 +19980601,23.3,18.9,30.0,14.4,3.5 +19980602,20.9,16.8,30.0,14.0,1.8 +19980603,24.5,17.6,32.8,17.2,2.1 +19980604,23.4,19.4,32.8,16.7,2.0 +19980605,20.3,18.3,27.8,16.7,1.9 +19980606,18.6,16.8,24.4,14.0,4.3 +19980607,13.5,7.2,19.0,8.3,5.5 +19980608,14.2,8.2,23.3,6.1,1.0 +19980609,16.6,14.1,23.3,5.6,1.5 +19980610,18.2,17.4,24.4,14.0,0.7 +19980611,21.7,18.4,30.0,16.0,0.6 +19980612,23.7,18.7,31.1,16.0,1.0 +19980613,23.7,16.3,31.1,16.1,2.7 +19980614,21.1,14.8,24.4,15.0,2.1 +19980615,23.8,17.8,30.0,18.0,2.6 +19980616,23.6,16.9,30.6,17.2,2.7 +19980617,21.3,14.2,28.0,12.8,2.6 +19980618,21.3,15.3,30.0,12.2,1.7 +19980619,21.6,19.3,33.3,11.7,1.9 +19980620,22.3,16.9,28.9,15.6,2.8 +19980621,20.7,17.1,28.9,15.0,0.9 +19980622,22.9,19.7,30.6,17.0,1.5 +19980623,22.5,18.1,31.1,16.1,3.4 +19980624,25.0,19.6,31.7,17.8,2.5 +19980625,23.1,18.0,32.2,16.7,1.5 +19980626,25.4,20.7,32.2,16.1,2.3 +19980627,24.7,19.6,32.2,17.8,2.2 +19980628,25.6,19.5,32.8,17.8,3.0 +19980629,24.8,20.2,32.2,18.9,1.4 +19980630,23.7,19.4,32.2,18.0,1.9 +19980701,23.5,17.5,32.8,17.8,3.2 +19980702,22.6,16.7,28.9,16.1,2.9 +19980703,23.4,17.4,30.0,17.2,1.8 +19980704,22.7,18.7,28.9,16.7,1.2 +19980705,23.4,19.4,30.0,16.1,3.9 +19980706,23.6,18.9,29.4,18.9,2.2 +19980707,23.6,19.2,29.4,17.0,0.8 +19980708,24.1,21.8,30.0,17.2,1.1 +19980709,24.8,20.9,31.0,18.9,2.1 +19980710,24.7,18.9,31.1,18.9,4.1 +19980711,22.4,17.0,28.3,17.2,1.2 +19980712,22.6,18.3,28.3,17.2,1.4 +19980713,23.2,18.6,28.3,16.7,2.1 +19980714,21.4,17.7,25.6,18.3,1.1 +19980715,21.9,16.7,28.9,15.0,1.3 +19980716,24.1,18.7,30.6,15.0,1.3 +19980717,25.3,19.9,30.6,18.3,4.0 +19980718,24.7,17.2,31.1,17.8,2.2 +19980719,24.0,17.9,32.2,16.7,1.3 +19980720,23.2,18.6,32.8,16.0,2.6 +19980721,24.0,18.8,32.8,16.1,1.6 +19980722,23.6,20.1,33.3,17.2,1.6 +19980723,23.9,20.7,31.1,18.3,1.9 +19980724,22.1,20.3,31.1,18.9,2.2 +19980725,22.3,20.1,29.4,18.9,2.2 +19980726,22.8,18.4,27.8,17.2,2.7 +19980727,22.2,19.8,28.3,17.2,1.6 +19980728,24.0,20.3,30.6,20.0,2.2 +19980729,23.6,18.1,30.6,17.2,2.9 +19980730,23.4,18.9,31.7,17.2,1.9 +19980731,22.4,20.5,30.0,17.2,2.9 +19980801,22.2,16.9,25.6,17.2,2.4 +19980802,20.6,14.7,25.0,15.0,1.0 +19980803,18.9,11.3,27.8,10.0,0.9 +19980804,19.3,10.9,29.4,10.0,0.6 +19980805,21.1,13.8,30.0,9.4,0.9 +19980806,21.8,15.1,30.6,12.2,1.3 +19980807,20.8,16.5,29.4,13.3,1.2 +19980808,22.5,19.2,28.9,18.0,1.7 +19980809,23.3,20.7,29.4,18.3,2.6 +19980810,23.3,20.4,28.9,20.0,1.9 +19980811,23.6,18.2,30.0,18.9,3.0 +19980812,23.5,17.2,31.1,17.2,2.2 +19980813,22.9,17.3,31.1,16.1,1.5 +19980814,21.5,19.7,28.9,16.1,1.5 +19980815,21.2,20.1,26.1,18.9,0.8 +19980816,22.3,21.1,26.1,20.0,0.8 +19980817,23.4,19.3,29.4,19.4,2.6 +19980818,23.0,17.7,30.6,16.7,2.2 +19980819,22.9,19.1,30.6,16.1,2.2 +19980820,21.3,16.4,28.9,17.2,1.3 +19980821,20.3,15.3,28.3,13.0,1.4 +19980822,21.7,16.1,30.6,14.0,1.2 +19980823,23.4,18.0,31.1,16.0,1.2 +19980824,23.7,17.9,31.7,16.1,1.2 +19980825,24.2,17.4,33.3,16.1,1.0 +19980826,25.4,19.2,33.3,16.1,4.0 +19980827,25.2,18.7,32.8,18.3,5.2 +19980828,24.4,18.7,31.1,17.8,1.9 +19980829,24.7,19.1,31.7,17.2,1.1 +19980830,23.3,19.7,32.8,17.8,0.9 +19980831,23.4,18.0,31.7,17.8,2.4 +19980901,22.2,15.7,29.4,15.6,1.5 +19980902,21.3,16.1,30.0,15.0,1.0 +19980903,19.1,17.4,28.9,14.4,1.2 +19980904,23.6,14.2,30.6,18.3,3.9 +19980905,22.7,15.8,32.8,14.4,1.3 +19980906,22.2,17.5,33.3,14.4,0.8 +19980907,22.6,17.5,30.6,15.6,1.1 +19980908,21.3,15.2,31.7,15.0,2.8 +19980909,16.9,6.3,26.7,12.8,5.0 +19980910,14.6,5.6,26.1,5.0,1.0 +19980911,17.2,6.9,28.3,7.2,1.2 +19980912,19.9,9.7,31.7,10.0,0.5 +19980913,21.5,13.3,31.7,10.0,1.0 +19980914,21.4,15.2,31.7,12.2,1.3 +19980915,21.3,17.1,31.1,12.2,1.1 +19980916,22.2,17.1,30.0,15.0,0.8 +19980917,22.5,17.2,30.6,15.0,0.6 +19980918,21.8,16.8,30.6,15.0,0.6 +19980919,22.2,18.4,29.4,15.6,0.9 +19980920,21.3,17.2,28.9,15.6,1.2 +19980921,21.4,18.9,29.4,15.6,0.4 +19980922,22.5,18.8,28.9,17.8,2.7 +19980923,21.1,15.7,29.4,17.8,2.6 +19980924,18.6,13.4,21.7,15.0,2.7 +19980925,18.4,14.4,27.8,12.2,1.4 +19980926,20.5,15.4,28.9,13.9,1.4 +19980927,20.1,14.3,30.0,11.0,1.3 +19980928,21.1,18.4,31.1,10.6,1.3 +19980929,19.2,17.7,28.9,16.7,1.1 +19980930,20.3,18.1,24.4,17.8,1.5 +19981001,20.4,16.4,26.7,16.0,3.2 +19981002,15.7,8.2,21.1,8.3,2.5 +19981003,15.1,11.1,23.3,9.4,2.9 +19981004,19.4,17.1,23.9,16.7,1.4 +19981005,19.8,18.4,25.0,16.7,1.4 +19981006,17.9,16.6,19.4,17.0,1.7 +19981007,17.2,16.6,19.0,16.0,1.8 +19981008,17.3,15.4,19.4,12.8,4.1 +19981009,12.9,7.6,18.9,8.9,5.7 +19981010,12.7,7.3,21.1,5.6,3.0 +19981011,13.9,8.8,24.4,7.0,1.5 +19981012,13.6,10.1,24.4,7.2,1.0 +19981013,15.1,11.5,23.3,7.2,0.9 +19981014,13.7,6.4,19.4,7.2,2.3 +19981015,11.6,4.8,22.2,2.2,1.2 +19981016,12.5,8.2,22.2,2.2,0.9 +19981017,12.9,8.9,22.8,5.0,1.5 +19981018,13.1,9.2,22.8,5.6,1.4 +19981019,14.9,12.5,23.4,10.0,1.3 +19981020,16.5,10.7,23.3,9.4,5.1 +19981021,12.7,4.3,18.9,9.4,3.1 +19981022,9.0,0.4,13.9,5.0,6.9 +19981023,7.5,-2.7,17.2,1.1,3.2 +19981024,8.5,-0.8,21.7,-1.1,0.5 +19981025,9.7,2.4,22.2,-1.7,1.2 +19981026,10.7,2.9,23.9,0.0,0.7 +19981027,11.5,5.2,23.9,0.0,0.9 +19981028,12.6,6.1,24.4,2.8,0.8 +19981029,17.7,10.8,22.2,13.9,4.1 +19981030,14.5,9.7,25.0,6.1,1.5 +19981031,15.9,10.6,25.6,5.6,3.0 +19981101,13.2,8.5,22.2,5.0,1.3 +19981102,12.2,10.0,22.8,3.9,1.2 +19981103,14.6,13.4,21.1,12.0,3.0 +19981104,11.8,8.2,15.0,8.9,2.3 +19981105,6.8,5.0,11.1,4.0,2.4 +19981106,3.8,-1.4,7.0,1.1,5.9 +19981107,3.1,-3.0,10.6,-2.8,2.8 +19981108,5.6,-0.7,12.2,-3.3,1.5 +19981109,9.6,7.0,12.2,0.6,1.9 +19981110,14.2,11.8,18.3,10.0,5.6 +19981111,12.8,5.8,17.2,8.3,5.5 +19981112,7.2,-2.1,15.6,0.0,2.2 +19981113,9.0,3.2,16.1,-1.1,0.1 +19981114,10.1,8.1,14.4,6.1,0.6 +19981115,12.9,10.3,17.2,11.0,2.9 +19981116,7.9,7.3,12.8,3.0,0.7 +19981117,12.9,9.4,16.7,10.6,4.7 +19981118,7.5,3.3,13.3,0.6,2.5 +19981119,9.7,6.4,16.7,5.6,1.4 +19981120,12.1,10.6,17.2,5.0,1.9 +19981121,6.1,-0.4,9.4,3.3,6.2 +19981122,3.3,-2.4,13.3,-3.9,1.2 +19981123,6.1,-1.9,20.0,-2.2,1.3 +19981124,14.8,8.7,18.9,11.1,3.8 +19981125,8.1,4.1,12.2,4.4,0.9 +19981126,10.2,3.1,15.0,7.2,5.6 +19981127,10.6,-0.9,18.9,4.4,4.2 +19981128,10.1,0.6,21.1,0.0,0.9 +19981129,8.1,1.6,21.1,-1.1,0.5 +19981130,9.2,4.5,21.7,-1.1,2.2 +19981201,13.1,7.6,19.4,0.0,3.0 +19981202,8.1,2.0,20.0,-1.1,0.4 +19981203,9.0,4.7,20.6,-1.7,0.8 +19981204,9.4,6.1,20.0,0.0,0.8 +19981205,12.2,9.6,21.7,5.0,1.3 +19981206,14.6,12.2,22.2,4.4,2.0 +19981207,16.9,12.6,23.9,12.2,3.1 +19981208,17.6,15.1,23.9,11.7,3.5 +19981209,10.1,5.4,14.4,5.6,5.9 +19981210,4.3,0.1,12.8,-2.2,1.6 +19981211,8.2,0.6,10.6,6.7,3.5 +19981212,6.9,-1.7,8.9,3.9,1.7 +19981213,5.9,5.6,11.7,3.0,1.9 +19981214,8.3,3.9,11.7,3.3,4.5 +19981215,1.8,-4.8,9.4,-6.0,1.4 +19981216,7.3,-5.8,14.0,2.8,3.2 +19981217,2.8,-4.3,6.7,-0.6,4.4 +19981218,0.9,-6.1,8.9,-4.4,2.7 +19981219,3.1,-0.8,9.4,-5.0,1.2 +19981220,7.9,7.1,15.0,4.4,1.0 +19981221,12.1,10.8,18.3,8.9,1.7 +19981222,8.8,6.8,15.6,0.0,6.0 +19981223,-0.3,-4.5,1.0,-1.7,3.1 +19981224,0.9,0.5,3.0,-1.1,2.2 +19981225,-0.6,-1.7,1.0,-2.2,1.5 +19981226,-0.3,-2.1,4.4,-3.0,3.5 +19981227,0.7,-2.0,7.8,-3.0,2.5 +19981228,1.8,-0.6,7.8,-2.8,1.1 +19981229,4.0,3.3,7.0,2.8,0.9 +19981230,-0.3,-4.7,5.0,-4.4,6.6 +19981231,0.1,-7.6,6.1,-3.9,1.5 +19990101,1.4,-4.3,8.9,-2.8,3.5 +19990102,-0.6,-5.3,5.0,-3.0,3.9 +19990103,-0.1,-1.0,1.1,-4.0,4.3 +19990104,-7.2,-12.6,-4.4,-9.4,6.2 +19990105,-8.7,-14.9,-3.9,-11.7,4.5 +19990106,-5.3,-9.3,3.9,-11.1,0.9 +19990107,3.6,0.8,8.3,1.1,3.2 +19990108,5.3,3.4,8.9,1.1,2.4 +19990109,6.6,4.7,10.6,-1.7,4.8 +19990110,-3.3,-10.6,3.3,-7.8,6.0 +19990111,0.4,-7.9,8.3,-4.4,2.3 +19990112,5.5,-2.8,12.8,-1.7,2.5 +19990113,6.8,1.7,12.8,-2.8,2.3 +19990114,10.6,9.0,13.3,8.9,2.3 +19990115,5.8,1.6,11.7,0.6,4.5 +19990116,2.9,-4.8,15.6,-4.4,1.5 +19990117,3.6,-1.6,15.6,-4.4,1.4 +19990118,8.0,-0.4,13.9,5.0,2.3 +19990119,7.7,-6.4,14.4,0.6,2.2 +19990120,6.6,0.7,17.8,-1.7,0.6 +19990121,8.0,6.3,18.9,-1.7,1.5 +19990122,14.9,12.8,18.3,11.7,4.6 +19990123,15.3,13.9,17.2,12.2,5.8 +19990124,10.5,8.2,14.4,5.6,5.4 +19990125,5.3,0.5,15.6,-2.0,3.7 +19990126,7.1,2.1,16.1,-1.7,2.5 +19990127,8.3,1.9,-999.0,-1.1,1.4 +19990128,13.2,6.1,26.7,-1.1,3.0 +19990129,12.6,8.6,22.8,2.8,1.9 +19990130,10.1,9.4,18.3,6.1,1.7 +19990131,4.2,0.3,8.9,-2.0,2.8 +19990201,0.4,-0.7,3.3,-2.0,2.7 +19990202,5.6,3.7,13.9,2.0,1.2 +19990203,8.2,3.5,15.0,1.0,2.0 +19990204,9.4,1.4,15.6,4.4,4.1 +19990205,7.8,-6.6,17.2,1.1,3.0 +19990206,6.1,-0.1,13.9,-1.7,1.4 +19990207,10.9,7.6,20.0,4.0,3.1 +19990208,12.8,2.5,20.0,4.4,3.7 +19990209,8.4,3.3,17.2,0.6,0.3 +19990210,12.3,10.5,17.2,9.4,0.6 +19990211,12.4,10.6,17.2,9.4,0.3 +19990212,11.4,8.5,16.7,1.1,4.4 +19990213,-1.6,-9.3,0.6,-3.0,5.0 +19990214,-2.2,-13.1,7.2,-7.2,5.8 +19990215,2.4,-10.3,14.4,-5.6,0.9 +19990216,6.0,-5.6,16.1,-3.3,1.6 +19990217,8.8,4.7,16.1,-3.9,1.2 +19990218,8.8,5.7,12.2,6.0,2.9 +19990219,4.3,3.2,7.2,1.7,1.1 +19990220,3.8,-1.1,9.4,-0.6,4.9 +19990221,0.8,-4.1,6.7,-2.2,6.4 +19990222,-3.3,-12.5,2.2,-6.7,7.6 +19990223,-2.8,-10.3,2.2,-6.7,3.0 +19990224,-1.4,-7.1,7.2,-5.6,2.3 +19990225,1.7,-2.5,11.1,-3.3,1.5 +19990226,5.0,-4.3,13.9,-1.1,2.7 +19990227,7.4,1.8,17.2,0.6,1.4 +19990228,10.2,7.0,17.8,0.0,4.3 +19990301,5.1,-2.1,9.4,1.7,7.8 +19990302,6.8,-2.9,17.8,-1.7,3.3 +19990303,8.3,2.8,18.3,-2.2,5.4 +19990304,-0.9,-7.9,3.9,-4.4,8.1 +19990305,2.0,-5.8,11.1,-5.0,2.8 +19990306,8.2,1.6,17.0,1.7,4.3 +19990307,3.4,-4.6,17.2,-1.1,7.6 +19990308,-0.7,-11.4,5.0,-6.1,3.1 +19990309,-0.6,-6.4,5.6,-6.1,3.2 +19990310,2.4,-1.3,5.6,0.0,4.9 +19990311,1.5,-5.9,8.0,-2.2,7.2 +19990312,3.0,-9.9,11.0,-2.2,6.2 +19990313,1.6,-5.9,11.1,-2.2,2.0 +19990314,1.6,0.5,3.3,-1.7,2.7 +19990315,2.7,0.2,6.0,0.6,5.5 +19990316,5.7,-2.9,17.8,-2.2,3.4 +19990317,9.8,-2.1,23.3,-2.8,1.9 +19990318,13.2,2.6,23.3,-2.2,4.0 +19990319,10.7,-4.6,21.7,2.2,5.9 +19990320,8.8,-2.6,17.2,0.0,3.3 +19990321,9.9,5.6,17.2,0.0,2.5 +19990322,7.4,-5.7,13.0,1.7,5.6 +19990323,8.1,-3.7,17.8,1.1,3.0 +19990324,10.7,3.1,20.0,3.3,1.2 +19990325,9.9,4.4,20.0,2.8,4.1 +19990326,4.9,2.2,8.9,0.6,1.8 +19990327,3.7,-0.4,11.0,-0.6,4.2 +19990328,5.4,-3.9,16.1,-3.3,3.3 +19990329,9.3,0.4,13.3,5.0,3.5 +19990330,10.8,0.9,16.7,4.4,3.5 +19990331,7.1,-0.8,17.2,3.9,1.1 +19990401,13.7,8.8,21.7,7.8,1.3 +19990402,15.3,10.3,23.3,6.7,1.9 +19990403,16.4,10.3,26.1,7.2,1.4 +19990404,20.7,12.5,28.3,16.7,3.5 +19990405,19.6,10.4,25.6,11.7,3.2 +19990406,14.8,11.4,26.1,10.0,4.0 +19990407,16.2,9.7,26.0,7.0,2.2 +19990408,15.5,8.8,26.1,6.7,1.9 +19990409,19.4,12.6,27.2,13.9,3.6 +19990410,20.0,7.6,26.1,12.8,4.0 +19990411,22.2,11.6,27.8,17.8,4.0 +19990412,14.1,1.4,22.2,10.0,9.2 +19990413,9.8,0.8,17.0,5.0,6.6 +19990414,10.9,1.1,17.2,5.0,2.1 +19990415,11.4,7.6,16.1,6.1,2.7 +19990416,12.6,-0.2,16.7,6.7,6.1 +19990417,9.4,-5.9,13.9,3.9,4.5 +19990418,7.8,-1.1,14.4,3.3,4.2 +19990419,9.1,0.0,17.8,0.6,2.2 +19990420,15.2,6.7,21.1,10.0,3.3 +19990421,14.6,6.8,25.6,4.4,2.1 +19990422,18.2,8.6,26.7,7.2,3.2 +19990423,19.2,10.8,27.8,9.4,2.5 +19990424,19.6,13.9,28.3,8.9,3.9 +19990425,14.1,9.0,16.7,11.7,2.9 +19990426,14.8,11.5,19.0,11.1,2.8 +19990427,16.8,13.9,24.4,12.2,2.4 +19990428,13.3,11.9,17.2,9.0,2.0 +19990429,7.3,5.6,8.9,5.6,2.3 +19990430,7.3,2.8,15.6,3.9,3.0 +19990501,13.7,0.3,21.0,8.9,4.6 +19990502,13.8,1.0,21.7,3.3,1.6 +19990503,13.3,4.3,23.9,2.8,1.8 +19990504,15.0,7.2,24.4,5.0,1.6 +19990505,16.4,12.8,25.0,5.0,2.7 +19990506,16.9,15.4,20.6,12.2,3.9 +19990507,16.6,14.6,22.2,12.2,2.8 +19990508,16.7,10.9,22.8,10.0,2.7 +19990509,15.7,8.8,23.9,7.2,1.7 +19990510,17.3,10.1,24.4,6.7,2.0 +19990511,17.7,11.5,25.0,8.9,1.5 +19990512,16.7,12.9,25.6,9.4,1.3 +19990513,16.2,13.1,22.2,11.7,1.2 +19990514,14.6,12.6,22.8,11.7,2.5 +19990515,14.1,9.4,21.1,9.0,1.6 +19990516,15.8,10.4,23.9,8.0,1.4 +19990517,18.8,12.1,24.4,7.8,1.7 +19990518,18.3,14.1,24.4,12.8,1.2 +19990519,17.3,12.4,24.4,13.3,5.7 +19990520,16.5,8.4,23.9,7.8,2.8 +19990521,16.8,10.8,25.6,8.9,1.1 +19990522,18.2,13.9,27.2,11.0,1.2 +19990523,20.9,14.6,27.8,14.4,2.7 +19990524,19.2,11.9,27.8,13.9,4.3 +19990525,16.6,9.2,23.0,10.0,3.3 +19990526,16.9,11.4,23.3,9.4,2.8 +19990527,15.4,7.8,23.0,8.3,3.6 +19990528,15.9,7.7,25.0,6.7,1.8 +19990529,18.1,11.1,26.1,9.4,1.3 +19990530,18.6,11.9,26.7,9.4,1.5 +19990531,18.3,12.1,26.1,10.0,1.9 +19990601,18.8,13.7,25.0,10.6,2.9 +19990602,20.3,16.1,27.2,13.9,2.1 +19990603,20.6,17.4,28.3,13.9,3.2 +19990604,20.3,14.6,26.7,12.0,2.5 +19990605,19.9,16.3,27.8,12.2,1.7 +19990606,20.5,15.7,26.7,14.4,1.2 +19990607,20.7,13.8,30.0,12.0,1.2 +19990608,23.1,15.1,31.1,11.7,2.1 +19990609,23.1,16.4,31.1,13.9,1.7 +19990610,22.1,17.6,31.1,15.0,1.4 +19990611,20.9,18.1,28.9,16.1,1.8 +19990612,21.1,16.4,26.1,16.7,1.1 +19990613,20.2,13.4,27.8,12.0,1.5 +19990614,20.2,14.9,28.3,12.2,1.6 +19990615,19.7,18.3,28.3,12.2,2.2 +19990616,17.3,16.6,19.0,15.0,0.7 +19990617,18.4,14.7,23.3,15.6,3.0 +19990618,17.6,9.8,24.4,12.2,2.7 +19990619,16.3,10.2,22.2,8.9,1.7 +19990620,17.4,12.8,22.8,8.9,1.6 +19990621,19.6,14.9,24.4,15.6,2.6 +19990622,20.2,16.6,25.0,15.0,2.5 +19990623,19.9,17.1,25.6,16.7,2.4 +19990624,18.9,17.8,25.0,17.2,2.3 +19990625,20.3,19.2,23.9,17.8,1.9 +19990626,22.1,20.8,25.6,20.6,0.9 +19990627,22.0,20.8,26.1,20.0,2.7 +19990628,23.2,20.4,30.6,18.0,1.9 +19990629,21.7,20.0,30.6,17.8,1.7 +19990630,22.7,19.4,28.3,18.3,2.6 +19990701,23.4,20.3,28.9,18.3,2.7 +19990702,22.7,20.4,27.8,18.0,2.3 +19990703,22.3,20.1,28.9,18.0,1.8 +19990704,22.6,20.1,30.0,17.0,2.0 +19990705,23.8,21.7,30.6,17.2,2.0 +19990706,23.7,21.6,31.1,19.4,2.3 +19990707,21.6,20.2,24.4,18.3,2.3 +19990708,22.9,20.8,28.3,18.9,2.4 +19990709,23.4,20.8,30.0,18.0,1.6 +19990710,21.9,20.3,30.0,17.8,0.9 +19990711,20.4,19.1,25.6,17.2,1.9 +19990712,15.9,15.0,18.0,14.4,1.4 +19990713,16.7,14.8,20.6,14.0,1.1 +19990714,19.8,16.8,24.4,16.7,1.9 +19990715,21.5,18.2,26.1,17.0,2.3 +19990716,22.3,17.9,28.3,17.0,1.9 +19990717,21.7,18.3,26.7,16.7,1.3 +19990718,22.0,18.9,29.4,17.0,1.7 +19990719,22.6,18.7,30.0,17.2,2.5 +19990720,23.8,19.7,30.0,17.8,2.3 +19990721,25.1,21.1,30.6,20.6,3.0 +19990722,26.2,21.9,31.1,21.7,4.0 +19990723,26.9,21.9,32.8,22.2,2.6 +19990724,24.8,21.7,33.3,20.0,2.4 +19990725,23.6,18.2,31.1,18.9,4.3 +19990726,23.8,17.4,31.7,16.7,3.0 +19990727,23.7,19.7,31.7,16.1,1.9 +19990728,25.2,19.9,31.7,18.3,1.9 +19990729,24.9,20.6,31.7,18.9,2.2 +19990730,25.6,20.9,32.8,17.0,2.7 +19990731,26.9,21.3,34.4,21.1,1.7 +19990801,25.7,21.2,32.2,18.9,1.9 +19990802,25.6,20.0,32.8,18.3,4.4 +19990803,23.6,16.1,28.3,17.2,2.7 +19990804,22.8,16.7,28.9,16.7,1.5 +19990805,23.6,17.3,29.4,16.1,2.8 +19990806,23.7,17.2,30.0,17.2,1.8 +19990807,23.6,17.6,31.7,16.0,2.1 +19990808,22.9,17.7,31.1,14.4,1.8 +19990809,23.1,19.7,31.7,14.4,2.8 +19990810,23.8,18.6,30.6,18.0,1.9 +19990811,23.9,18.3,31.1,16.1,1.8 +19990812,24.4,17.9,31.7,16.1,1.4 +19990813,24.1,20.1,33.0,18.3,0.9 +19990814,25.4,20.6,33.3,17.8,2.4 +19990815,23.2,16.7,28.9,18.3,3.3 +19990816,23.5,18.7,31.1,17.2,1.5 +19990817,25.4,19.7,32.2,19.0,1.0 +19990818,25.4,17.5,32.8,17.2,2.7 +19990819,23.8,16.9,33.3,17.2,1.7 +19990820,22.7,19.3,30.6,17.8,1.7 +19990821,21.7,16.1,27.2,16.7,3.3 +19990822,20.6,14.2,27.8,13.3,1.9 +19990823,19.5,16.9,28.3,12.2,0.9 +19990824,19.9,19.3,26.7,14.4,2.1 +19990825,22.6,19.7,27.2,19.0,3.0 +19990826,23.8,19.8,30.0,19.0,2.2 +19990827,21.7,16.8,26.7,15.0,2.7 +19990828,22.1,17.7,29.0,16.7,1.8 +19990829,22.9,18.4,28.9,16.1,2.0 +19990830,23.2,14.8,28.9,17.2,4.2 +19990831,18.2,10.4,26.7,10.0,1.5 +19990901,18.5,12.3,28.9,9.0,2.6 +19990902,20.3,12.8,30.6,11.0,1.3 +19990903,20.9,14.1,30.6,10.6,0.9 +19990904,20.9,13.5,31.0,11.7,2.1 +19990905,20.4,15.4,31.1,11.7,3.5 +19990906,23.9,18.4,28.9,20.0,3.6 +19990907,22.6,17.0,30.0,14.0,0.7 +19990908,22.7,16.2,31.1,14.4,1.2 +19990909,21.4,16.1,31.7,15.0,2.6 +19990910,21.1,9.7,27.0,16.1,4.2 +19990911,18.1,7.3,27.8,8.3,1.6 +19990912,18.7,11.1,28.3,7.2,1.1 +19990913,18.2,12.3,28.3,10.0,1.2 +19990914,20.3,15.4,28.3,10.0,1.3 +19990915,20.9,15.5,27.2,13.9,4.9 +19990916,19.0,5.4,23.0,15.6,10.3 +19990917,16.7,5.1,24.4,10.6,3.1 +19990918,14.4,8.9,22.2,6.0,1.4 +19990919,15.6,11.1,24.4,8.3,1.1 +19990920,17.2,12.6,25.6,9.4,1.3 +19990921,18.0,14.9,25.6,9.4,3.5 +19990922,13.6,4.7,18.0,9.4,7.7 +19990923,12.7,2.6,22.8,2.8,2.2 +19990924,14.0,6.1,25.0,3.9,1.5 +19990925,15.3,8.2,26.1,5.6,1.4 +19990926,15.8,11.6,26.1,5.6,1.2 +19990927,19.8,18.8,21.1,18.9,2.1 +19990928,20.8,20.1,23.9,18.9,1.2 +19990929,20.9,19.6,23.9,19.4,2.0 +19990930,14.1,6.8,23.9,8.9,6.9 +19991001,11.8,5.8,22.2,3.3,1.8 +19991002,13.3,8.4,22.2,3.3,1.7 +19991003,14.2,10.9,24.4,5.0,1.9 +19991004,17.2,16.1,20.0,15.6,2.0 +19991005,15.4,10.9,20.6,11.0,3.8 +19991006,13.6,9.1,22.2,7.2,2.1 +19991007,11.8,8.8,22.2,6.7,1.4 +19991008,13.5,10.7,19.4,6.7,2.3 +19991009,16.5,14.8,20.6,7.8,2.8 +19991010,17.8,17.7,20.6,14.4,1.8 +19991011,19.2,16.4,24.4,15.6,3.4 +19991012,16.4,12.9,18.3,14.0,1.2 +19991013,14.5,13.1,20.0,12.0,1.1 +19991014,16.1,11.4,21.7,12.2,3.0 +19991015,14.6,8.8,18.3,11.0,3.0 +19991016,13.4,9.8,22.2,6.7,1.0 +19991017,15.9,11.7,25.0,6.7,4.3 +19991018,15.1,9.1,25.0,9.4,6.2 +19991019,11.5,7.4,17.2,10.0,2.2 +19991020,10.7,9.6,12.0,9.0,3.9 +19991021,8.9,4.3,15.6,3.9,3.0 +19991022,8.5,3.1,21.7,-0.6,1.6 +19991023,8.8,-2.0,21.7,-0.6,5.9 +19991024,6.0,-2.3,10.6,3.9,6.5 +19991025,6.2,-0.5,17.2,-2.8,1.5 +19991026,7.8,1.2,18.9,-2.8,1.8 +19991027,11.1,2.4,22.0,3.3,2.6 +19991028,10.1,3.9,21.7,1.1,1.5 +19991029,11.0,5.6,22.8,1.1,1.2 +19991030,11.1,7.0,22.8,2.2,0.9 +19991031,16.4,11.7,22.8,2.8,0.9 +19991101,13.1,12.2,22.8,8.3,0.9 +19991102,14.1,11.7,18.3,5.0,5.0 +19991103,3.5,-5.7,9.0,-2.0,5.8 +19991104,5.1,-6.1,15.6,-3.3,1.7 +19991105,7.0,-1.8,19.4,-3.2,1.2 +19991106,9.8,3.4,20.0,-2.2,3.3 +19991107,15.4,9.7,21.7,10.0,4.4 +19991108,13.7,9.2,22.2,7.8,1.2 +19991109,12.8,8.8,23.3,5.0,0.3 +19991110,13.3,8.3,23.3,3.3,1.4 +19991111,11.3,8.4,22.2,3.3,1.7 +19991112,12.4,10.2,20.0,5.0,2.0 +19991113,10.9,6.8,21.1,5.0,1.2 +19991114,12.1,6.2,24.4,2.8,2.7 +19991115,11.5,-0.5,24.4,2.8,6.4 +19991116,6.4,-5.1,13.9,2.8,5.7 +19991117,5.5,-5.4,13.9,-0.6,4.2 +19991118,4.0,-3.7,15.6,-4.4,1.4 +19991119,6.1,0.9,17.2,-4.4,2.2 +19991120,13.0,9.3,19.4,10.0,1.8 +19991121,14.0,12.0,19.4,9.4,1.4 +19991122,13.9,11.6,20.0,10.0,1.2 +19991123,13.7,11.6,20.0,10.0,1.4 +19991124,14.5,12.9,18.9,10.6,0.9 +19991125,13.9,13.4,18.9,12.2,2.3 +19991126,14.5,13.1,17.0,8.0,4.2 +19991127,7.8,0.9,16.7,3.9,5.0 +19991128,8.6,2.1,16.7,2.2,3.7 +19991129,9.1,0.9,16.7,2.2,4.6 +19991130,1.8,-9.3,12.2,-2.2,6.4 +19991201,0.1,-12.3,8.0,-5.0,5.6 +19991202,2.7,-9.2,15.0,-5.6,1.1 +19991203,5.2,-2.6,16.7,-5.6,2.0 +19991204,8.8,-1.2,19.4,-1.7,1.5 +19991205,10.0,3.8,19.4,0.0,3.4 +19991206,9.7,7.1,18.3,1.7,4.9 +19991207,3.9,-3.7,14.4,-2.2,5.0 +19991208,3.9,-2.5,16.7,-4.4,1.1 +19991209,6.3,2.3,16.7,-4.4,2.0 +19991210,12.7,8.7,18.0,10.0,4.7 +19991211,8.1,2.4,17.8,1.1,4.8 +19991212,5.4,-0.8,14.4,-1.0,1.9 +19991213,10.4,4.3,14.0,7.8,2.9 +19991214,11.7,8.1,14.4,7.2,4.5 +19991215,4.5,1.8,15.0,-1.1,1.5 +19991216,4.4,-6.9,15.0,-1.1,5.0 +19991217,1.7,-6.6,13.3,-6.1,0.6 +19991218,2.4,-5.2,13.3,-6.1,0.8 +19991219,7.1,-1.3,12.8,-4.4,0.9 +19991220,8.1,0.8,12.2,6.0,2.6 +19991221,6.6,5.7,12.8,3.9,1.3 +19991222,4.6,2.1,7.8,0.6,5.3 +19991223,1.4,-4.3,8.3,-3.3,3.4 +19991224,-0.7,-4.4,8.3,-5.0,2.1 +19991225,-3.3,-10.7,1.7,-7.8,5.9 +19991226,1.1,-9.1,14.4,-7.8,4.6 +19991227,2.3,-10.8,14.4,-7.2,6.2 +19991228,1.2,-10.3,9.4,-2.8,4.5 +19991229,3.1,-5.4,10.6,-2.8,4.5 +19991230,2.0,-4.4,13.9,-5.6,1.1 +19991231,6.4,0.8,16.7,-5.6,1.2 +20000101,7.1,4.6,17.8,-0.6,1.6 +20000102,13.1,10.0,18.9,9.0,3.4 +20000103,14.5,12.0,19.4,8.9,3.7 +20000104,14.3,10.4,16.7,8.0,5.4 +20000105,1.6,-4.6,7.8,-2.2,5.2 +20000106,-0.2,-5.5,8.9,-7.2,1.5 +20000107,2.6,-4.1,10.0,-2.8,4.2 +20000108,2.1,-4.7,10.0,-4.4,1.7 +20000109,5.8,-0.6,10.0,-4.4,2.2 +20000110,11.6,1.2,16.0,8.0,3.3 +20000111,8.1,-4.4,18.3,-1.7,3.3 +20000112,7.1,-3.9,18.9,-2.2,2.3 +20000113,12.1,1.7,18.9,-2.2,5.5 +20000114,-0.3,-10.7,5.0,-4.4,8.4 +20000115,-1.4,-10.4,10.0,-9.4,1.7 +20000116,3.7,-4.5,10.0,-9.4,2.7 +20000117,6.8,-3.9,11.1,-2.8,3.3 +20000118,1.7,-3.4,11.1,-1.1,4.4 +20000119,2.3,-3.4,7.2,-1.1,6.3 +20000120,1.9,-2.4,5.6,-3.0,9.1 +20000121,-5.7,-14.0,4.4,-10.0,8.3 +20000122,-5.8,-11.4,-1.7,-10.0,3.7 +20000123,-1.3,-2.6,2.2,-7.8,2.2 +20000124,1.0,-0.8,2.2,-3.9,5.6 +20000125,-3.8,-9.0,2.2,-7.8,9.5 +20000126,-6.7,-12.1,-1.1,-8.3,8.5 +20000127,-6.9,-14.6,-1.0,-11.0,7.5 +20000128,-4.7,-14.0,3.3,-11.1,2.4 +20000129,-1.1,-8.5,3.3,-10.0,2.6 +20000130,-1.7,-2.4,1.1,-3.3,3.0 +20000131,-2.4,-5.8,0.6,-6.0,5.2 +20000201,-2.7,-6.9,3.9,-6.7,5.3 +20000202,-1.3,-8.9,6.1,-6.7,6.2 +20000203,0.1,-8.9,13.3,-7.8,2.1 +20000204,2.0,-5.3,13.3,-7.8,3.7 +20000205,-1.4,-6.6,1.7,-3.0,7.2 +20000206,1.0,-8.4,9.4,-3.9,3.5 +20000207,4.3,-7.2,12.8,-3.9,2.5 +20000208,2.5,-2.6,12.8,-2.8,1.6 +20000209,2.4,-2.7,13.9,-6.0,0.9 +20000210,5.4,-1.2,17.2,-5.6,1.9 +20000211,10.0,3.3,19.4,-1.7,2.5 +20000212,7.4,6.9,19.4,2.2,2.3 +20000213,2.5,2.2,8.9,0.6,3.8 +20000214,7.8,5.3,15.6,0.6,3.2 +20000215,6.4,-1.7,15.6,0.6,5.2 +20000216,11.1,1.7,21.1,0.6,3.2 +20000217,9.2,0.8,21.1,2.8,4.5 +20000218,6.4,3.8,12.8,2.0,4.5 +20000219,11.2,8.9,15.0,2.0,6.4 +20000220,2.4,-3.2,7.2,-1.0,7.5 +20000221,3.2,-5.3,12.8,-1.7,4.9 +20000222,2.7,-3.2,12.8,-3.3,1.1 +20000223,7.9,-0.7,15.6,-3.3,2.4 +20000224,9.3,4.1,18.3,1.1,2.7 +20000225,12.1,6.9,22.2,2.8,1.9 +20000226,11.6,6.5,19.4,3.0,2.6 +20000227,13.7,10.2,20.0,3.3,4.1 +20000228,8.6,0.4,15.0,4.4,5.6 +20000229,7.0,-1.9,17.2,-2.2,2.1 +20000301,10.7,1.7,21.7,-2.2,2.3 +20000302,10.6,0.3,21.7,0.6,6.4 +20000303,8.3,-3.0,17.2,2.2,3.3 +20000304,8.7,2.3,17.2,2.2,2.3 +20000305,9.7,-1.5,18.9,-0.6,3.7 +20000306,10.2,-0.6,21.7,-0.6,0.8 +20000307,12.0,1.0,24.4,-0.6,1.3 +20000308,14.3,3.1,25.6,0.6,2.2 +20000309,15.0,6.9,25.6,2.8,2.1 +20000310,14.2,7.6,23.3,4.4,1.2 +20000311,14.8,11.8,22.2,5.0,3.9 +20000312,4.1,-0.2,18.3,0.0,7.8 +20000313,2.1,-5.9,10.6,-5.0,3.6 +20000314,4.9,-3.7,16.1,-5.0,1.2 +20000315,9.9,0.9,18.9,-4.4,2.7 +20000316,10.8,7.7,18.9,3.9,2.0 +20000317,11.2,8.0,14.4,6.1,5.7 +20000318,3.3,-5.3,14.4,-2.2,3.7 +20000319,5.1,-0.8,8.9,-2.2,3.8 +20000320,8.4,7.4,13.9,3.3,3.9 +20000321,10.2,6.7,16.1,5.6,2.2 +20000322,10.8,4.5,17.8,4.4,5.5 +20000323,10.6,5.7,18.9,1.7,1.7 +20000324,11.7,6.2,21.7,1.7,1.4 +20000325,14.1,8.2,22.2,2.8,1.3 +20000326,14.8,4.6,22.2,5.0,4.5 +20000327,8.9,5.1,20.6,2.8,2.3 +20000328,9.1,-0.2,17.8,-0.6,4.9 +20000329,7.1,-3.6,17.8,-0.6,3.7 +20000330,10.7,6.3,18.3,0.6,2.2 +20000331,13.2,8.3,19.4,6.1,3.0 +20000401,13.0,6.8,21.1,3.3,2.1 +20000402,14.1,10.7,21.1,3.3,4.3 +20000403,15.4,14.1,19.4,11.1,3.7 +20000404,10.5,6.9,17.8,1.0,5.4 +20000405,6.0,-6.7,15.6,1.1,5.4 +20000406,12.3,2.2,27.2,1.1,1.9 +20000407,15.3,7.2,27.2,1.1,1.9 +20000408,11.4,5.9,18.9,2.0,6.5 +20000409,3.7,-6.4,15.6,-0.6,7.4 +20000410,9.3,-3.2,21.1,-1.1,3.2 +20000411,14.4,2.3,21.1,-1.1,3.8 +20000412,14.8,8.1,20.6,5.6,4.2 +20000413,7.1,4.5,18.9,2.8,2.7 +20000414,7.3,5.9,12.0,4.0,0.9 +20000415,11.6,10.7,16.0,9.0,1.2 +20000416,14.9,11.4,23.3,8.9,1.7 +20000417,15.4,11.5,23.9,8.3,2.5 +20000418,10.6,7.1,14.0,7.8,6.8 +20000419,14.8,7.7,25.6,7.8,4.7 +20000420,16.7,9.8,25.6,8.3,3.6 +20000421,15.7,8.0,20.6,8.0,5.7 +20000422,6.7,3.1,10.6,4.0,6.5 +20000423,10.4,3.1,18.9,2.2,3.0 +20000424,10.7,7.1,18.9,2.2,1.7 +20000425,9.7,8.7,13.9,6.7,1.9 +20000426,10.9,5.9,16.1,6.0,2.3 +20000427,10.2,0.4,19.4,0.0,2.7 +20000428,11.1,6.6,19.4,0.0,3.7 +20000429,11.7,5.6,20.0,3.9,2.4 +20000430,13.5,4.6,23.3,2.8,2.8 +20000501,14.4,6.1,24.0,3.9,2.7 +20000502,18.8,11.5,24.4,12.2,2.8 +20000503,16.6,13.9,24.4,10.0,1.7 +20000504,17.2,15.0,22.2,10.0,1.7 +20000505,16.9,12.9,25.0,10.6,1.2 +20000506,19.1,13.3,27.8,10.6,2.0 +20000507,19.3,13.4,27.8,10.6,1.5 +20000508,19.3,13.9,27.8,10.6,1.9 +20000509,20.1,14.2,27.8,11.1,2.5 +20000510,19.7,13.1,27.8,11.1,3.0 +20000511,17.5,10.1,26.7,7.8,3.0 +20000512,21.1,14.7,30.6,7.8,2.2 +20000513,22.9,17.2,30.6,12.2,3.1 +20000514,18.4,8.8,29.4,13.9,5.9 +20000515,15.6,1.8,22.8,10.0,5.6 +20000516,13.0,4.4,22.2,3.3,2.1 +20000517,16.5,10.3,25.6,3.3,1.6 +20000518,21.2,14.8,27.8,8.3,3.6 +20000519,23.8,13.7,31.1,16.1,1.9 +20000520,21.6,15.4,31.1,17.2,2.3 +20000521,19.1,15.8,28.3,15.6,2.3 +20000522,18.4,13.1,24.4,15.0,3.9 +20000523,16.4,11.9,26.7,10.0,1.6 +20000524,19.9,17.2,27.8,10.0,1.2 +20000525,20.8,17.7,27.8,15.6,2.4 +20000526,18.7,15.3,26.7,13.3,2.7 +20000527,23.2,16.7,31.1,13.3,2.3 +20000528,22.0,15.8,31.1,16.1,2.6 +20000529,17.1,12.1,27.2,13.3,5.1 +20000530,16.8,11.5,23.9,11.7,2.4 +20000531,18.9,11.9,27.2,10.0,2.7 +20000601,21.7,15.7,30.0,10.0,2.3 +20000602,23.6,17.3,30.0,12.8,3.6 +20000603,22.3,16.8,30.0,16.7,3.7 +20000604,19.5,18.1,29.4,16.7,1.7 +20000605,19.7,17.8,22.8,16.7,1.2 +20000606,16.5,12.3,19.4,13.0,5.4 +20000607,15.9,5.8,23.9,10.6,5.6 +20000608,16.3,9.4,25.6,6.7,1.4 +20000609,19.7,12.3,29.4,6.7,1.9 +20000610,20.8,14.0,29.4,10.0,1.4 +20000611,21.7,15.2,30.0,11.7,1.2 +20000612,23.5,16.2,31.1,13.3,1.1 +20000613,23.2,16.9,31.1,15.0,0.7 +20000614,24.5,18.2,31.7,15.0,2.9 +20000615,24.4,18.0,31.7,17.8,2.4 +20000616,22.4,18.9,30.6,17.8,3.7 +20000617,21.8,19.2,27.8,18.0,2.2 +20000618,22.7,19.2,29.0,18.0,1.7 +20000619,21.9,19.9,29.4,18.3,1.3 +20000620,21.1,19.1,27.2,16.7,1.2 +20000621,23.1,19.7,29.4,18.9,1.6 +20000622,22.4,19.2,29.4,18.3,2.7 +20000623,21.2,15.1,29.4,12.8,2.2 +20000624,22.4,15.6,30.0,12.8,1.4 +20000625,21.4,17.6,30.6,14.4,1.4 +20000626,22.1,18.3,30.6,15.0,1.5 +20000627,21.1,17.9,25.6,16.0,1.6 +20000628,21.9,19.6,27.2,16.1,1.9 +20000629,19.9,17.3,27.2,16.7,3.4 +20000630,18.9,13.4,25.6,12.0,2.3 +20000701,20.1,14.3,26.7,12.2,1.6 +20000702,21.2,16.3,27.2,13.9,1.3 +20000703,21.7,17.1,28.9,14.4,1.3 +20000704,23.5,18.2,30.6,15.6,2.0 +20000705,22.6,19.6,30.6,16.7,1.6 +20000706,23.4,20.1,30.6,17.8,2.5 +20000707,23.3,18.3,30.6,18.3,2.9 +20000708,23.1,18.2,27.2,18.0,2.1 +20000709,23.8,18.7,31.7,17.2,1.5 +20000710,25.6,18.9,33.9,17.2,2.0 +20000711,24.6,18.0,33.9,16.7,2.4 +20000712,22.7,15.2,32.8,16.7,2.5 +20000713,22.9,18.7,28.3,20.0,2.2 +20000714,23.7,18.8,29.4,18.9,2.7 +20000715,21.7,15.1,29.4,15.6,4.1 +20000716,21.9,14.5,28.3,15.0,3.1 +20000717,21.5,13.9,28.9,13.3,3.0 +20000718,21.6,15.7,30.0,13.3,1.6 +20000719,22.8,18.4,31.7,13.9,2.0 +20000720,23.8,17.5,31.7,16.1,4.6 +20000721,23.1,16.7,29.4,18.9,3.0 +20000722,21.7,16.8,29.4,17.8,1.7 +20000723,21.0,18.3,28.3,17.8,1.5 +20000724,19.1,17.6,23.9,17.8,1.0 +20000725,17.7,15.8,22.8,15.6,1.3 +20000726,20.2,16.7,27.2,15.6,1.6 +20000727,21.1,18.3,27.2,16.7,1.1 +20000728,22.2,17.9,27.8,17.0,1.3 +20000729,20.8,17.6,28.9,14.4,1.5 +20000730,21.8,18.9,27.8,14.4,2.3 +20000731,21.2,18.8,27.8,17.8,2.0 +20000801,21.8,18.9,27.8,17.8,2.6 +20000802,20.8,19.3,27.2,18.9,2.1 +20000803,21.1,19.2,26.1,18.9,1.3 +20000804,21.3,19.0,26.7,17.8,1.9 +20000805,22.1,17.9,27.8,17.0,2.1 +20000806,22.3,19.2,28.9,17.2,0.7 +20000807,24.4,21.3,30.6,17.2,1.6 +20000808,22.5,20.5,30.6,18.9,1.5 +20000809,24.4,20.9,31.7,18.9,2.2 +20000810,24.7,19.0,31.7,18.9,3.7 +20000811,22.6,17.1,30.0,18.3,4.3 +20000812,20.8,13.8,27.2,15.0,4.3 +20000813,19.0,12.1,26.1,12.8,3.5 +20000814,19.3,13.2,27.2,11.7,2.0 +20000815,20.4,14.4,29.4,11.7,2.6 +20000816,22.7,17.3,32.2,12.2,2.0 +20000817,23.6,19.4,32.2,14.4,2.1 +20000818,23.8,20.4,32.8,18.3,2.2 +20000819,22.0,18.6,32.8,17.8,2.0 +20000820,20.5,17.6,23.3,17.0,2.2 +20000821,17.3,15.4,21.7,15.0,1.5 +20000822,18.1,15.2,25.0,12.8,1.3 +20000823,19.8,16.8,27.8,12.8,0.9 +20000824,21.5,18.8,28.9,14.4,2.0 +20000825,22.2,17.7,28.9,16.7,3.4 +20000826,20.8,17.2,27.2,14.0,1.7 +20000827,20.7,18.6,27.8,14.4,1.5 +20000828,21.5,16.8,28.3,15.0,2.5 +20000829,21.5,17.1,28.3,15.0,1.1 +20000830,21.3,17.0,27.2,15.6,1.6 +20000831,21.2,19.1,27.2,15.6,2.0 +20000901,20.8,19.2,25.0,17.8,0.9 +20000902,21.7,19.7,25.6,17.8,0.9 +20000903,21.5,19.7,26.7,19.0,1.1 +20000904,22.6,19.7,28.9,19.4,2.4 +20000905,18.9,17.3,22.2,16.0,2.1 +20000906,15.1,11.9,22.8,12.8,1.9 +20000907,16.4,12.9,22.2,12.8,1.6 +20000908,18.9,15.9,25.0,13.3,1.0 +20000909,21.2,17.7,27.8,16.7,1.4 +20000910,20.3,16.7,27.8,15.6,1.3 +20000911,21.0,17.2,27.2,15.6,1.0 +20000912,20.9,17.1,27.2,15.6,1.5 +20000913,21.2,17.8,28.3,15.6,1.1 +20000914,21.9,18.4,28.9,15.6,1.2 +20000915,19.7,12.8,28.9,15.6,4.0 +20000916,14.3,5.1,23.3,8.9,4.6 +20000917,11.4,6.0,18.9,3.0,1.3 +20000918,12.4,9.8,20.0,3.3,1.7 +20000919,18.2,13.8,27.2,7.8,2.2 +20000920,18.7,15.0,27.2,10.6,2.9 +20000921,20.6,18.3,27.2,10.6,2.6 +20000922,17.8,15.9,27.2,15.6,1.5 +20000923,19.4,16.8,27.2,15.0,2.5 +20000924,21.2,19.1,27.8,15.6,1.7 +20000925,21.1,20.0,27.8,15.6,2.1 +20000926,13.1,8.9,25.6,9.4,6.5 +20000927,11.7,5.2,21.1,3.3,2.7 +20000928,12.8,7.7,22.2,3.3,2.7 +20000929,12.4,8.4,22.2,5.0,1.6 +20000930,13.6,10.3,20.6,5.6,1.3 +20001001,15.4,12.3,21.7,8.9,1.3 +20001002,15.2,12.1,24.4,8.9,1.1 +20001003,18.1,13.9,27.2,8.9,2.6 +20001004,18.2,14.5,27.2,10.6,1.7 +20001005,17.9,14.4,27.2,10.6,1.3 +20001006,16.7,14.5,26.7,10.6,2.3 +20001007,12.2,6.8,22.8,8.3,6.5 +20001008,5.8,-3.3,9.4,3.0,8.1 +20001009,4.5,-4.2,8.9,1.7,7.2 +20001010,6.8,-4.0,16.1,1.1,5.1 +20001011,9.2,-2.9,20.0,1.1,4.6 +20001012,9.8,0.3,22.2,-1.1,1.6 +20001013,10.4,2.4,25.0,-1.1,0.9 +20001014,11.6,3.0,25.0,-0.6,2.1 +20001015,11.5,3.3,24.4,0.6,1.9 +20001016,12.4,4.7,25.0,1.1,1.1 +20001017,13.7,8.3,25.0,1.7,0.8 +20001018,15.5,10.4,23.9,6.1,2.5 +20001019,14.4,6.7,22.8,6.7,2.5 +20001020,11.6,8.3,21.7,5.0,1.3 +20001021,15.6,11.9,23.9,5.0,0.9 +20001022,16.5,12.4,24.4,10.0,0.6 +20001023,15.5,12.3,24.4,8.9,1.0 +20001024,15.3,11.4,24.4,8.3,2.0 +20001025,15.7,13.1,24.4,8.3,0.7 +20001026,15.6,13.0,21.1,11.7,0.7 +20001027,16.1,11.8,24.0,7.0,2.4 +20001028,17.8,11.1,23.9,7.2,2.6 +20001029,13.8,6.6,23.9,5.0,2.2 +20001030,11.5,-1.7,23.9,1.1,2.2 +20001031,10.6,-3.2,23.9,-1.1,2.1 +20001101,12.0,-1.1,24.4,-1.1,1.5 +20001102,12.7,6.3,25.0,1.1,1.6 +20001103,15.2,11.0,25.0,2.8,1.7 +20001104,13.7,12.0,24.4,6.7,1.5 +20001105,12.6,6.1,18.3,6.1,3.2 +20001106,8.4,4.4,17.8,1.7,1.7 +20001107,12.0,10.7,16.1,1.7,2.3 +20001108,16.6,15.2,22.8,9.4,2.0 +20001109,17.1,16.3,22.8,14.4,4.2 +20001110,9.4,5.8,18.9,5.6,6.7 +20001111,5.9,-1.1,14.4,1.0,7.7 +20001112,5.8,0.6,16.1,-2.2,1.4 +20001113,5.3,2.1,16.1,-2.2,1.2 +20001114,8.2,2.1,14.4,-0.6,6.1 +20001115,3.4,-4.3,10.0,-0.6,5.1 +20001116,2.7,-0.2,9.4,-2.2,0.9 +20001117,6.6,2.8,8.9,-2.2,4.7 +20001118,0.0,-4.9,8.9,-3.3,3.5 +20001119,1.2,-4.1,2.8,-3.3,2.7 +20001120,1.7,-3.1,10.0,-3.3,2.5 +20001121,-1.6,-12.1,10.0,-4.4,5.2 +20001122,-1.7,-12.3,8.3,-7.2,3.7 +20001123,3.5,-2.9,10.6,-7.2,1.6 +20001124,3.8,0.6,10.6,-2.2,1.3 +20001125,4.3,3.5,8.3,0.0,2.9 +20001126,7.6,5.6,11.7,2.8,2.0 +20001127,5.8,0.3,12.2,-1.1,2.9 +20001128,5.1,-3.3,13.9,-2.8,2.3 +20001129,4.8,-0.3,13.9,-2.8,1.3 +20001130,4.2,-6.1,13.3,-0.6,5.2 +20001201,0.9,-4.6,8.9,-5.6,2.2 +20001202,2.1,-1.2,9.4,-5.6,1.3 +20001203,-0.4,-1.8,5.0,-3.9,2.5 +20001204,-2.0,-5.4,5.6,-7.2,1.3 +20001205,-1.2,-4.8,6.1,-7.8,3.3 +20001206,-1.2,-4.7,6.1,-7.8,2.7 +20001207,1.6,-4.6,8.9,-5.0,2.9 +20001208,2.4,-3.8,12.8,-4.4,1.9 +20001209,3.2,-1.6,12.8,-4.4,2.4 +20001210,4.0,-0.7,8.9,-2.8,2.4 +20001211,4.3,2.9,12.2,1.0,2.1 +20001212,4.7,-0.7,12.2,-1.1,5.5 +20001213,-1.9,-8.4,1.1,-4.0,3.4 +20001214,3.2,2.1,11.7,-5.0,3.8 +20001215,5.3,3.0,11.7,-1.1,3.5 +20001216,3.2,2.5,10.6,1.7,3.6 +20001217,3.4,-0.3,13.3,-6.1,6.2 +20001218,-3.6,-10.4,7.2,-9.0,4.0 +20001219,-0.6,-5.7,7.8,-8.9,3.7 +20001220,-7.9,-13.8,2.8,-12.8,6.0 +20001221,-3.1,-9.6,3.3,-12.8,2.3 +20001222,-3.6,-9.6,3.3,-8.9,5.5 +20001223,-5.7,-15.0,2.2,-11.7,3.4 +20001224,0.4,-9.7,7.8,-11.7,3.3 +20001225,-1.7,-12.3,7.8,-6.7,5.8 +20001226,-1.7,-11.2,3.3,-6.7,1.6 +20001227,2.0,-3.2,5.6,-5.0,2.6 +20001228,1.8,-1.2,5.6,-0.6,4.8 +20001229,-2.2,-6.1,4.4,-8.3,1.4 +20001230,-5.2,-10.6,4.4,-8.9,6.0 +20001231,-6.9,-10.6,-2.2,-9.4,6.4 +20010101,-5.8,-8.4,-1.0,-8.9,3.2 +20010102,-4.4,-9.2,-1.1,-8.9,6.8 +20010103,-5.2,-11.4,2.8,-12.2,4.7 +20010104,-2.1,-8.0,3.9,-12.2,4.6 +20010105,0.6,-4.7,11.1,-6.7,3.1 +20010106,2.8,-4.3,11.1,-6.7,4.7 +20010107,2.1,-3.0,11.1,-4.4,1.1 +20010108,3.6,1.2,11.1,-4.4,4.4 +20010109,-2.9,-8.7,0.0,-4.4,7.8 +20010110,-0.1,-12.0,13.3,-6.1,5.1 +20010111,-0.3,-5.7,13.3,-7.2,1.5 +20010112,3.3,2.3,6.0,2.0,2.1 +20010113,3.0,0.7,11.1,-2.2,1.9 +20010114,6.2,2.7,11.1,-2.2,2.0 +20010115,8.2,5.6,15.6,2.8,1.5 +20010116,5.1,0.1,15.6,2.2,4.3 +20010117,2.9,-0.9,10.0,-2.2,1.4 +20010118,5.5,4.7,10.0,-2.2,2.1 +20010119,8.1,8.0,12.0,5.0,2.2 +20010120,4.2,2.8,11.0,-3.0,5.7 +20010121,-2.3,-9.1,11.1,-6.1,6.9 +20010122,-0.6,-7.1,7.2,-6.1,1.8 +20010123,0.3,-7.4,10.6,-7.2,2.4 +20010124,4.2,-5.2,10.6,-7.2,4.7 +20010125,-0.3,-7.0,9.4,-3.9,7.0 +20010126,-1.9,-9.0,8.9,-9.4,2.6 +20010127,2.9,-3.2,8.9,-9.4,4.5 +20010128,1.8,-6.8,12.2,-6.7,2.7 +20010129,4.6,-2.6,14.4,-6.7,2.3 +20010130,10.2,5.9,13.9,8.0,4.9 +20010131,9.8,-1.5,18.3,0.6,4.1 +20010201,5.2,-0.8,18.3,0.6,3.2 +20010202,3.5,-3.5,10.0,-0.6,3.3 +20010203,0.1,-11.7,10.0,-6.7,3.4 +20010204,2.8,-6.3,11.7,-6.7,2.2 +20010205,4.1,-0.5,11.7,-2.8,3.0 +20010206,3.2,-2.9,15.6,-5.6,1.7 +20010207,5.9,0.2,17.8,-5.6,1.3 +20010208,7.7,2.2,20.0,-3.3,1.7 +20010209,10.6,6.0,20.0,-2.2,4.2 +20010210,9.6,5.5,16.7,1.7,5.2 +20010211,1.9,-4.3,13.9,-3.3,4.3 +20010212,2.0,-0.3,8.3,-3.3,2.5 +20010213,5.8,5.4,11.0,3.0,0.9 +20010214,12.3,10.6,19.4,2.8,1.9 +20010215,14.4,12.7,19.4,9.4,2.8 +20010216,17.2,14.2,22.2,12.8,4.2 +20010217,6.6,1.6,22.2,1.7,8.1 +20010218,-0.4,-9.7,10.0,-5.0,5.9 +20010219,3.3,-4.7,12.2,-5.0,2.8 +20010220,6.9,1.2,17.2,-2.8,1.8 +20010221,9.3,6.5,17.2,-0.6,3.1 +20010222,3.4,2.3,13.9,0.6,2.4 +20010223,7.8,1.9,15.6,0.6,4.3 +20010224,5.9,1.3,15.6,-0.6,1.8 +20010225,11.3,10.8,17.2,-1.1,3.2 +20010226,11.6,2.9,17.2,5.0,4.8 +20010227,8.0,-1.9,17.2,0.0,2.1 +20010228,9.8,1.2,13.9,0.0,3.8 +20010301,7.7,-1.8,16.1,2.0,4.5 +20010302,10.6,2.8,17.2,2.2,5.1 +20010303,10.7,9.3,17.2,6.1,1.4 +20010304,9.9,9.2,14.0,8.0,3.7 +20010305,5.0,-1.0,13.9,-0.6,8.4 +20010306,-1.9,-8.8,7.2,-6.1,11.1 +20010307,-0.3,-8.3,4.4,-6.1,8.5 +20010308,3.8,-5.0,13.9,-4.4,2.8 +20010309,7.1,-4.8,13.9,-4.4,5.4 +20010310,4.2,-6.6,13.9,-3.9,3.9 +20010311,6.4,-1.3,18.3,-3.9,2.1 +20010312,8.8,6.1,18.3,-2.8,2.0 +20010313,13.3,6.3,18.3,3.3,3.6 +20010314,12.9,-1.7,18.3,6.7,4.5 +20010315,9.1,4.9,18.3,6.7,1.6 +20010316,9.6,7.4,14.4,6.7,4.4 +20010317,8.4,1.5,14.4,5.0,5.0 +20010318,5.2,-2.8,12.2,1.0,6.3 +20010319,4.2,-6.1,12.8,-3.9,1.8 +20010320,3.4,-3.2,11.7,-3.9,2.9 +20010321,2.8,0.9,7.2,0.0,4.7 +20010322,8.4,1.3,14.4,1.1,8.3 +20010323,9.8,-1.8,17.8,2.2,5.0 +20010324,8.3,-0.1,17.8,-1.1,1.6 +20010325,7.3,-3.5,17.8,-1.1,5.5 +20010326,2.4,-11.2,11.7,-3.3,7.4 +20010327,1.7,-10.7,8.3,-4.4,4.7 +20010328,2.6,-8.6,11.7,-6.1,2.7 +20010329,5.6,1.5,8.3,3.0,2.3 +20010330,10.0,8.3,17.2,3.3,3.3 +20010331,11.2,9.1,17.2,7.2,3.1 +20010401,7.7,2.3,16.1,5.0,4.8 +20010402,7.0,-4.1,15.6,-1.0,3.0 +20010403,11.2,7.1,16.7,7.8,2.2 +20010404,12.9,11.1,17.8,7.2,2.4 +20010405,11.3,8.7,16.1,8.9,3.1 +20010406,14.5,11.4,26.1,6.1,2.1 +20010407,18.7,13.9,27.8,6.1,1.1 +20010408,21.0,14.0,28.3,8.9,2.1 +20010409,21.4,14.7,29.4,11.7,3.0 +20010410,21.9,14.6,30.6,12.2,3.2 +20010411,20.3,13.9,30.6,12.2,2.4 +20010412,20.8,13.9,28.3,12.2,3.6 +20010413,17.7,15.2,27.8,13.9,3.3 +20010414,15.4,8.2,22.8,7.8,2.4 +20010415,14.9,10.2,22.8,7.8,2.1 +20010416,13.7,4.4,22.2,7.8,6.6 +20010417,6.4,-2.4,17.8,0.0,6.4 +20010418,4.9,-5.6,11.7,0.0,7.3 +20010419,6.6,-5.4,16.7,-2.2,1.9 +20010420,11.3,-0.6,21.1,-2.2,3.1 +20010421,16.6,7.0,24.4,2.8,2.8 +20010422,17.9,9.8,25.6,9.4,2.2 +20010423,18.3,8.5,27.0,11.0,2.7 +20010424,16.3,12.2,22.8,12.0,2.7 +20010425,13.0,5.3,23.3,8.3,4.4 +20010426,12.6,2.4,20.0,5.0,2.8 +20010427,12.8,1.3,24.4,1.1,2.3 +20010428,16.4,5.4,26.1,1.1,2.7 +20010429,15.1,4.9,26.1,5.6,2.7 +20010430,13.6,9.0,23.9,6.1,1.3 +20010501,15.7,11.8,24.4,6.1,2.1 +20010502,17.4,11.5,25.0,10.0,1.7 +20010503,17.0,9.8,25.0,7.0,1.4 +20010504,17.7,9.2,27.2,7.2,1.5 +20010505,19.2,11.4,27.2,7.8,1.4 +20010506,18.6,14.1,27.2,10.0,1.4 +20010507,16.1,7.9,22.8,12.8,3.1 +20010508,15.2,10.3,20.0,11.1,2.1 +20010509,16.3,11.1,22.8,11.1,2.7 +20010510,18.4,11.9,25.0,11.1,2.0 +20010511,18.7,12.8,26.7,11.7,1.7 +20010512,18.3,14.0,29.4,11.7,3.5 +20010513,16.7,5.2,23.3,10.6,5.1 +20010514,15.2,2.0,23.9,4.4,3.8 +20010515,18.3,7.3,28.9,4.4,2.8 +20010516,20.3,10.8,30.6,8.3,1.6 +20010517,20.5,14.9,30.6,12.2,2.3 +20010518,21.3,14.7,30.6,15.6,1.6 +20010519,20.3,13.4,30.6,11.1,1.7 +20010520,18.7,16.3,28.9,11.1,2.8 +20010521,20.8,18.1,26.1,15.6,3.7 +20010522,19.7,16.4,23.3,14.0,3.8 +20010523,14.2,6.4,23.9,8.9,3.1 +20010524,14.2,9.0,23.3,6.1,2.7 +20010525,16.2,13.0,23.3,6.1,3.4 +20010526,13.9,8.4,22.2,6.0,2.0 +20010527,16.7,8.4,26.1,6.1,1.8 +20010528,15.4,11.7,26.1,8.9,1.4 +20010529,18.4,12.9,25.0,10.6,3.2 +20010530,18.2,10.4,26.7,10.6,2.8 +20010531,17.1,11.8,26.7,10.6,1.5 +20010601,17.3,15.8,22.2,11.1,1.9 +20010602,18.3,12.8,23.9,13.9,2.7 +20010603,18.6,12.3,26.1,13.3,3.9 +20010604,19.9,15.4,28.3,13.3,1.7 +20010605,23.3,17.9,29.4,13.9,2.6 +20010606,21.9,17.4,29.4,16.7,2.4 +20010607,20.7,17.7,28.3,16.7,1.6 +20010608,20.4,17.3,27.2,17.8,2.6 +20010609,19.8,15.7,27.2,14.4,2.1 +20010610,20.3,15.2,26.1,14.4,2.1 +20010611,21.5,16.6,26.7,16.1,1.6 +20010612,20.9,15.9,27.8,13.9,1.7 +20010613,23.6,17.4,30.0,13.9,3.7 +20010614,22.9,17.4,30.6,16.1,1.6 +20010615,21.7,17.7,30.0,16.0,0.9 +20010616,22.3,17.3,30.0,16.1,5.2 +20010617,22.9,13.3,29.4,16.7,5.3 +20010618,21.5,13.3,29.4,12.8,1.6 +20010619,21.4,14.7,28.9,12.8,1.1 +20010620,21.7,15.7,29.4,13.9,1.7 +20010621,21.3,16.2,29.4,15.0,1.6 +20010622,20.0,16.8,29.4,15.6,1.7 +20010623,19.7,14.3,27.8,15.0,3.4 +20010624,19.6,12.6,25.0,14.4,3.0 +20010625,18.5,13.7,25.0,14.4,1.9 +20010626,18.3,15.6,25.0,13.9,1.2 +20010627,20.3,16.6,28.3,14.4,1.6 +20010628,21.6,16.9,28.3,15.0,2.5 +20010629,22.3,17.1,29.4,15.6,2.0 +20010630,21.9,18.3,29.4,16.1,2.0 +20010701,21.5,18.8,27.2,17.8,1.5 +20010702,22.6,18.7,28.9,17.0,2.4 +20010703,22.2,20.1,29.4,17.2,1.9 +20010704,21.8,18.9,28.3,18.0,1.9 +20010705,21.4,17.4,28.9,16.7,3.2 +20010706,22.6,16.3,28.9,16.7,2.5 +20010707,21.2,16.2,28.3,16.1,1.6 +20010708,22.5,19.0,29.4,16.1,2.2 +20010709,22.3,18.4,29.4,18.3,2.7 +20010710,25.1,19.2,31.1,19.4,3.1 +20010711,24.6,18.6,31.1,18.3,3.3 +20010712,23.1,17.7,31.1,17.2,1.6 +20010713,22.2,16.8,29.4,17.2,2.3 +20010714,19.8,10.9,27.2,11.1,2.7 +20010715,19.8,11.8,26.7,11.1,1.7 +20010716,21.0,15.2,28.3,12.8,1.2 +20010717,23.5,17.4,28.9,15.0,1.8 +20010718,22.9,18.1,28.3,18.0,2.2 +20010719,21.6,18.2,28.9,16.7,1.3 +20010720,21.7,19.2,27.8,16.7,1.4 +20010721,20.6,17.3,24.4,17.8,1.5 +20010722,20.2,16.1,27.8,14.4,1.5 +20010723,23.1,16.5,29.0,17.0,1.2 +20010724,23.4,19.7,29.4,16.7,1.6 +20010725,21.9,20.4,26.7,20.6,2.5 +20010726,23.5,19.8,28.3,20.0,2.9 +20010727,23.1,19.8,28.3,20.0,2.5 +20010728,19.4,17.2,27.8,17.8,2.5 +20010729,21.2,19.7,24.4,17.8,2.2 +20010730,24.1,19.3,30.0,19.4,3.2 +20010731,23.4,19.4,30.0,19.4,2.5 +20010801,22.1,18.5,27.0,18.0,2.1 +20010802,21.9,17.8,27.8,17.8,1.7 +20010803,21.8,18.6,27.8,18.3,1.5 +20010804,21.7,19.2,27.8,19.4,0.9 +20010805,23.3,19.6,27.8,19.4,2.5 +20010806,22.3,19.1,27.8,18.0,1.6 +20010807,23.8,19.7,30.6,18.3,2.1 +20010808,24.9,20.9,30.6,18.9,2.1 +20010809,24.1,20.3,31.1,19.0,1.8 +20010810,24.6,20.6,31.7,19.4,2.8 +20010811,24.8,20.6,30.6,20.0,2.4 +20010812,23.9,20.3,30.0,20.0,3.0 +20010813,22.6,20.3,28.9,20.0,2.1 +20010814,23.8,17.9,28.9,18.9,3.2 +20010815,22.2,17.2,27.2,17.0,2.0 +20010816,22.7,18.3,28.3,17.2,2.7 +20010817,22.2,19.1,28.9,17.2,1.7 +20010818,23.6,18.3,28.9,17.2,2.7 +20010819,22.8,17.9,29.4,17.8,1.9 +20010820,22.7,16.7,29.4,17.8,4.2 +20010821,21.0,12.7,27.2,15.6,3.7 +20010822,19.3,12.9,28.9,11.7,1.3 +20010823,21.3,16.0,30.6,11.7,2.1 +20010824,22.9,18.5,30.6,14.4,3.1 +20010825,22.1,18.2,29.4,17.8,1.6 +20010826,22.5,18.6,29.4,17.8,1.6 +20010827,21.1,18.9,29.4,17.8,1.7 +20010828,21.3,18.7,28.3,17.2,1.9 +20010829,22.9,19.2,28.9,17.2,2.0 +20010830,20.9,18.6,28.9,17.8,1.2 +20010831,20.9,18.8,25.0,18.3,1.0 +20010901,20.4,18.5,23.3,18.0,1.7 +20010902,20.2,18.6,24.4,17.8,1.5 +20010903,20.3,19.0,24.4,17.8,1.4 +20010904,20.9,18.3,27.8,17.8,1.5 +20010905,22.2,18.8,28.9,17.8,1.9 +20010906,21.6,18.3,28.9,16.7,1.5 +20010907,21.4,18.2,27.2,16.7,2.1 +20010908,20.0,16.9,26.7,15.0,1.6 +20010909,20.4,17.7,26.7,15.0,1.4 +20010910,22.3,20.1,26.7,16.1,2.0 +20010911,21.6,17.4,26.7,17.8,2.9 +20010912,18.4,15.2,26.7,12.8,0.9 +20010913,18.4,15.0,26.1,12.8,1.1 +20010914,18.7,16.1,26.1,12.8,2.5 +20010915,15.6,8.3,26.1,8.9,2.0 +20010916,12.8,7.9,22.8,5.6,1.5 +20010917,14.3,10.4,23.9,5.6,0.8 +20010918,16.2,11.6,25.0,7.2,1.2 +20010919,14.9,13.6,25.0,8.9,1.9 +20010920,18.7,17.7,24.0,16.7,2.0 +20010921,19.3,15.2,26.7,14.4,2.1 +20010922,18.2,14.7,26.7,12.8,1.2 +20010923,18.5,15.6,27.8,12.8,1.7 +20010924,17.4,16.0,18.9,15.0,2.9 +20010925,11.7,6.0,18.9,7.8,6.4 +20010926,10.4,3.6,18.3,4.4,3.8 +20010927,12.3,5.3,21.7,4.4,2.8 +20010928,12.2,6.7,21.7,5.6,4.3 +20010929,12.8,6.4,20.0,5.6,4.6 +20010930,11.8,6.4,20.0,5.0,3.9 +20011001,13.2,5.7,21.7,4.4,4.2 +20011002,15.0,8.8,23.9,4.4,2.9 +20011003,14.8,10.0,24.4,6.7,1.3 +20011004,14.9,10.7,23.3,6.0,1.7 +20011005,14.4,11.6,23.9,6.1,2.9 +20011006,14.7,12.2,23.3,6.7,5.6 +20011007,9.2,0.7,18.3,3.9,4.3 +20011008,6.9,0.7,16.1,-0.6,1.7 +20011009,7.1,1.9,16.1,-0.6,1.9 +20011010,9.2,6.0,17.8,-0.6,1.1 +20011011,15.4,12.8,19.4,12.8,1.6 +20011012,16.8,14.7,20.6,12.8,2.5 +20011013,17.7,15.8,21.1,15.6,3.2 +20011014,19.1,15.3,23.3,16.0,5.2 +20011015,14.2,5.2,23.9,7.8,3.1 +20011016,9.6,4.6,16.7,4.0,3.6 +20011017,7.1,-1.2,17.8,3.9,6.8 +20011018,6.4,-0.4,16.1,-1.7,2.0 +20011019,7.9,2.6,20.0,-1.7,1.2 +20011020,11.8,7.1,22.8,-1.7,1.6 +20011021,12.8,9.1,23.9,1.7,1.9 +20011022,14.1,9.6,24.4,4.0,1.7 +20011023,16.0,11.7,26.0,8.9,1.9 +20011024,16.7,12.4,27.2,7.2,2.5 +20011025,17.6,6.1,27.2,7.2,5.6 +20011026,11.2,-7.4,14.4,6.0,5.6 +20011027,4.3,-8.4,14.4,1.1,6.8 +20011028,4.8,-6.9,13.3,-2.2,3.8 +20011029,5.8,-5.7,18.9,-3.3,1.9 +20011030,8.7,-4.1,21.1,-3.3,1.4 +20011031,8.7,-0.6,21.1,-1.7,1.6 +20011101,9.7,4.2,20.0,-1.1,1.5 +20011102,13.8,9.3,23.3,2.2,1.4 +20011103,13.7,9.5,23.3,6.1,2.5 +20011104,14.6,3.8,22.2,6.1,4.5 +20011105,12.7,-0.9,21.1,6.1,4.2 +20011106,10.1,-6.9,19.4,2.8,4.5 +20011107,9.7,-5.3,22.8,-1.7,1.7 +20011108,9.9,-0.9,22.8,-1.7,1.7 +20011109,13.8,1.1,20.6,9.4,4.6 +20011110,9.5,0.1,21.7,-1.1,2.1 +20011111,11.3,1.0,21.7,-1.1,4.6 +20011112,7.2,1.3,18.3,-1.1,1.6 +20011113,4.8,-0.8,13.3,-3.0,1.3 +20011114,5.3,-1.8,17.2,-3.9,1.0 +20011115,7.2,-0.8,19.4,-3.9,1.1 +20011116,8.7,-1.1,21.1,-2.8,2.4 +20011117,11.6,3.6,21.7,-1.7,1.6 +20011118,9.2,5.8,21.7,0.6,1.1 +20011119,8.6,5.2,19.4,0.0,1.1 +20011120,10.2,4.3,19.4,0.0,4.6 +20011121,4.0,-4.3,13.3,-3.9,1.5 +20011122,4.1,-1.1,15.6,-5.0,1.3 +20011123,6.4,5.0,15.6,-5.0,1.0 +20011124,11.7,11.7,13.3,10.0,2.0 +20011125,17.4,14.9,21.7,10.6,4.3 +20011126,11.2,8.1,22.2,3.3,0.8 +20011127,14.9,12.7,22.2,3.3,2.2 +20011128,14.6,12.2,22.2,8.3,1.9 +20011129,16.1,13.1,21.7,8.3,3.9 +20011130,17.5,13.0,20.6,11.1,5.6 +20011201,11.4,5.5,21.1,3.3,2.7 +20011202,11.6,4.6,21.1,3.3,3.3 +20011203,7.5,2.1,18.9,-1.0,0.7 +20011204,8.2,2.3,20.6,-1.0,0.8 +20011205,8.8,4.6,21.1,-0.6,1.6 +20011206,11.8,9.3,21.7,-0.6,1.2 +20011207,12.8,10.5,21.7,5.0,1.9 +20011208,14.4,11.7,20.0,7.2,2.6 +20011209,11.8,7.9,15.6,8.0,5.0 +20011210,6.1,2.3,13.9,3.9,1.8 +20011211,8.1,6.4,15.6,3.9,2.7 +20011212,9.7,8.6,15.6,4.4,2.8 +20011213,11.7,11.2,15.0,8.3,2.4 +20011214,15.1,13.6,19.4,9.4,3.1 +20011215,11.1,4.8,19.4,7.2,4.5 +20011216,7.1,3.2,16.7,2.2,2.3 +20011217,9.7,7.7,12.2,2.2,3.1 +20011218,10.5,5.7,12.8,6.1,5.8 +20011219,5.1,-0.3,15.6,-2.2,2.2 +20011220,4.8,-6.5,15.6,-0.6,7.2 +20011221,2.0,-9.2,9.4,-5.6,3.2 +20011222,1.9,-6.4,11.7,-6.1,1.9 +20011223,5.4,0.8,11.7,-6.1,3.0 +20011224,4.2,-2.9,11.1,-0.6,5.4 +20011225,-0.4,-9.6,5.0,-6.0,3.1 +20011226,-1.9,-10.7,2.2,-6.0,5.6 +20011227,-2.4,-11.7,6.1,-8.9,2.3 +20011228,0.3,-6.9,12.2,-8.9,1.8 +20011229,4.1,-3.4,13.9,-6.7,4.1 +20011230,-2.1,-11.0,3.3,-6.1,6.7 +20011231,-1.8,-12.7,3.3,-6.7,5.4 +20020101,-3.4,-13.5,2.8,-7.8,5.9 +20020102,-3.4,-12.6,-1.0,-6.1,1.9 +20020103,-1.7,-9.4,-0.6,-6.7,5.7 +20020104,-2.1,-12.8,5.6,-5.6,6.9 +20020105,-0.6,-12.7,10.6,-9.0,1.6 +20020106,1.7,-2.7,5.0,0.0,2.8 +20020107,0.8,-3.3,2.0,-2.0,6.3 +20020108,-1.6,-8.5,5.0,-6.0,5.5 +20020109,3.3,-4.1,18.9,-5.6,1.7 +20020110,8.8,3.8,18.9,-5.6,2.7 +20020111,10.2,5.4,18.9,-0.6,4.5 +20020112,1.9,-1.3,12.2,-5.6,1.8 +20020113,4.8,-4.6,11.1,-6.1,4.2 +20020114,0.7,-3.8,11.1,-6.1,2.7 +20020115,5.1,-2.7,10.0,-6.1,5.0 +20020116,3.5,-5.5,10.6,-2.2,3.9 +20020117,4.4,-3.4,14.4,-3.3,3.2 +20020118,6.0,1.8,14.4,-3.3,4.2 +20020119,2.8,-0.5,8.3,0.6,2.6 +20020120,3.5,-0.8,8.9,-1.0,4.4 +20020121,6.9,1.4,15.6,-0.5,3.5 +20020122,4.6,-3.4,15.6,-3.9,2.6 +20020123,7.6,5.6,15.0,-3.9,2.1 +20020124,12.9,12.2,15.6,4.4,2.5 +20020125,8.6,2.6,15.6,3.9,5.4 +20020126,2.9,-4.6,15.6,-5.6,1.5 +20020127,4.2,-1.8,17.2,-5.6,1.4 +20020128,7.4,0.9,22.2,-5.0,0.8 +20020129,11.9,8.4,24.4,-2.2,1.0 +20020130,13.5,10.1,24.4,2.2,1.8 +20020131,16.4,12.4,24.4,3.3,4.0 +20020201,16.5,11.9,22.8,8.9,5.5 +20020202,4.1,-4.8,9.4,0.0,6.4 +20020203,1.9,-3.6,9.4,-1.1,1.5 +20020204,1.9,-6.8,5.0,-2.2,7.6 +20020205,-2.2,-15.9,5.0,-6.1,6.5 +20020206,0.7,-7.6,5.0,-6.1,1.2 +20020207,2.2,1.6,6.0,0.6,2.6 +20020208,5.3,-3.0,15.0,0.6,5.7 +20020209,4.6,-3.0,15.6,-4.4,2.0 +20020210,10.4,4.8,15.0,8.0,4.0 +20020211,5.6,-2.5,15.0,1.1,7.2 +20020212,2.6,-6.0,12.8,-5.0,1.7 +20020213,6.1,-7.6,12.8,-5.0,5.2 +20020214,3.1,-6.9,11.1,-4.4,2.1 +20020215,4.5,-3.0,13.9,-4.4,2.6 +20020216,8.3,-0.9,13.9,-2.2,3.4 +20020217,5.3,-8.0,13.3,1.1,7.5 +20020218,3.3,-10.9,13.3,-3.3,3.7 +20020219,3.9,-9.9,15.6,-6.1,2.4 +20020220,9.8,3.7,11.1,7.2,4.0 +20020221,9.8,2.1,16.7,2.2,3.3 +20020222,6.2,-1.3,16.7,1.7,5.4 +20020223,3.5,-4.0,10.6,0.0,6.0 +20020224,4.0,-5.2,16.7,-6.1,2.1 +20020225,6.7,-2.8,18.3,-6.1,2.1 +20020226,10.6,0.3,18.9,-3.9,3.7 +20020227,-4.4,-12.2,3.3,-9.0,8.0 +20020228,-5.2,-13.4,3.3,-10.0,4.9 +20020301,-0.8,-12.8,9.4,-10.0,2.4 +20020302,2.6,-3.5,5.0,0.0,2.4 +20020303,5.6,4.2,10.0,-1.0,3.9 +20020304,-4.8,-13.1,-0.6,-8.3,7.6 +20020305,-1.3,-13.3,10.0,-8.9,3.4 +20020306,4.0,-6.6,16.1,-8.9,2.1 +20020307,6.9,-4.0,18.3,-6.1,1.2 +20020308,8.4,0.0,19.4,-2.8,1.9 +20020309,14.0,9.9,18.0,11.1,3.7 +20020310,5.9,-6.1,17.8,-1.1,7.3 +20020311,4.7,-12.4,12.8,-3.9,4.3 +20020312,6.7,-0.5,12.8,-3.9,1.7 +20020313,10.7,9.1,18.3,2.8,2.3 +20020314,11.9,8.6,21.1,3.3,3.0 +20020315,16.7,9.1,23.9,12.0,2.5 +20020316,18.4,13.1,24.4,11.1,2.9 +20020317,13.7,12.2,24.4,11.1,2.0 +20020318,11.3,9.3,20.6,7.8,3.1 +20020319,12.8,10.2,20.6,7.8,2.6 +20020320,12.1,10.4,20.6,8.9,3.3 +20020321,12.2,7.6,20.6,8.9,4.3 +20020322,1.4,-8.6,12.2,-6.0,7.8 +20020323,2.3,-10.6,13.9,-5.6,2.8 +20020324,7.4,-4.9,19.4,-4.4,2.0 +20020325,13.1,2.1,22.8,-3.3,3.8 +20020326,14.3,10.7,22.8,3.3,3.0 +20020327,7.9,4.3,15.6,3.0,6.6 +20020328,4.9,-1.2,15.6,-2.2,3.4 +20020329,11.1,3.6,21.1,1.7,3.6 +20020330,14.4,10.9,18.3,11.7,2.4 +20020331,15.0,13.2,20.0,11.0,2.4 +20020401,12.0,5.1,17.8,7.0,5.6 +20020402,12.0,3.8,22.8,1.7,2.3 +20020403,14.3,8.5,25.6,1.7,3.2 +20020404,6.9,-2.4,13.9,2.0,5.9 +20020405,8.1,-4.6,15.0,1.7,5.1 +20020406,7.3,-6.3,14.4,0.0,4.7 +20020407,6.1,-3.7,15.0,-2.2,2.9 +20020408,11.7,6.3,20.0,-2.2,4.2 +20020409,15.2,12.7,17.8,13.0,4.0 +20020410,16.1,12.8,22.2,12.8,2.9 +20020411,16.0,10.3,22.2,12.8,2.6 +20020412,13.5,10.1,20.0,10.6,1.6 +20020413,15.2,12.8,21.1,10.6,2.3 +20020414,16.9,14.2,22.2,12.8,2.9 +20020415,18.6,13.9,26.1,12.0,1.9 +20020416,20.7,13.8,28.9,12.2,1.9 +20020417,19.7,13.9,28.9,12.2,1.5 +20020418,19.9,13.6,28.3,11.7,1.5 +20020419,20.7,14.0,28.3,11.7,1.6 +20020420,21.4,13.9,28.3,12.8,1.7 +20020421,22.0,13.4,29.4,13.9,2.2 +20020422,19.3,8.0,29.4,13.9,3.8 +20020423,13.8,0.4,23.3,7.8,6.4 +20020424,12.4,3.8,20.6,4.4,1.6 +20020425,14.3,9.9,18.9,4.4,4.0 +20020426,11.1,-0.9,17.8,6.7,4.4 +20020427,12.8,7.5,17.8,6.7,2.7 +20020428,18.3,13.9,27.8,9.4,3.7 +20020429,19.1,8.7,27.8,12.8,5.4 +20020430,13.8,6.3,22.2,5.0,2.9 +20020501,17.3,14.7,23.3,13.9,3.1 +20020502,21.9,17.2,28.3,16.7,4.3 +20020503,17.0,14.5,29.4,12.8,4.1 +20020504,11.0,9.9,19.4,8.3,2.6 +20020505,15.6,10.1,24.4,8.3,3.1 +20020506,15.7,10.8,24.4,10.6,3.0 +20020507,18.7,12.9,28.9,10.6,2.1 +20020508,20.3,15.7,28.9,10.0,1.6 +20020509,21.5,16.2,29.4,12.2,2.6 +20020510,19.3,16.9,29.4,15.0,2.6 +20020511,16.7,13.7,25.0,15.0,2.1 +20020512,18.8,15.7,26.7,15.0,3.8 +20020513,20.8,17.4,26.7,15.0,4.2 +20020514,12.2,4.3,25.6,6.7,7.1 +20020515,13.3,5.5,23.3,3.9,1.6 +20020516,15.7,9.4,25.0,3.9,2.6 +20020517,18.6,13.1,26.1,5.6,3.0 +20020518,15.5,11.9,22.8,9.0,6.0 +20020519,9.2,1.9,19.4,3.9,5.8 +20020520,9.7,0.9,16.1,2.2,3.9 +20020521,9.9,2.7,16.1,2.2,3.8 +20020522,10.1,3.3,17.8,2.8,2.3 +20020523,12.1,5.4,23.3,1.7,1.3 +20020524,16.6,9.3,27.8,1.7,2.7 +20020525,18.6,11.9,27.8,5.6,2.3 +20020526,18.7,13.0,27.8,8.3,1.2 +20020527,17.4,16.2,27.8,10.6,1.1 +20020528,18.7,15.3,25.0,14.0,1.2 +20020529,18.6,14.3,25.6,11.7,1.2 +20020530,18.7,15.6,25.6,11.7,0.7 +20020531,21.2,17.6,28.9,16.0,1.5 +20020601,22.6,18.0,30.6,16.1,2.3 +20020602,23.8,18.7,30.6,16.1,2.9 +20020603,24.3,20.6,30.6,16.1,1.7 +20020604,23.9,20.9,31.1,19.0,1.3 +20020605,22.2,19.1,31.7,17.8,2.9 +20020606,21.3,18.9,29.4,17.8,2.2 +20020607,20.6,17.7,26.1,16.7,2.0 +20020608,18.8,13.6,25.6,14.4,2.5 +20020609,18.1,13.2,26.7,9.4,1.1 +20020610,20.3,14.3,27.8,9.4,1.7 +20020611,20.3,12.8,29.4,10.0,0.8 +20020612,21.7,15.6,30.0,10.0,1.7 +20020613,22.5,18.3,30.0,12.2,1.1 +20020614,21.1,18.3,28.9,15.6,2.9 +20020615,19.0,13.2,23.9,13.9,5.0 +20020616,17.9,11.7,25.6,9.4,2.9 +20020617,20.2,12.6,26.7,9.4,3.1 +20020618,20.9,13.3,27.8,12.8,1.4 +20020619,20.8,15.4,27.8,12.8,1.4 +20020620,20.9,15.4,27.8,13.3,1.4 +20020621,20.4,11.8,27.8,12.2,2.0 +20020622,20.1,12.6,27.2,12.2,2.2 +20020623,21.2,18.4,25.6,12.2,1.9 +20020624,22.8,18.8,28.9,17.8,1.3 +20020625,24.1,18.6,30.6,17.8,1.3 +20020626,22.9,20.3,30.6,18.9,1.6 +20020627,21.1,19.5,28.9,18.3,2.0 +20020628,22.2,18.9,27.2,18.3,1.7 +20020629,22.7,19.2,29.4,17.8,2.1 +20020630,22.7,19.6,29.4,17.8,1.2 +20020701,23.7,20.0,31.1,17.8,1.3 +20020702,22.8,19.6,31.1,17.8,2.1 +20020703,22.4,17.8,30.6,17.2,2.8 +20020704,22.3,18.4,30.6,17.2,2.2 +20020705,24.3,18.5,32.2,17.2,2.4 +20020706,25.2,19.0,32.2,17.2,2.0 +20020707,23.0,18.2,30.0,17.2,1.5 +20020708,22.9,17.8,28.9,16.1,1.4 +20020709,23.0,17.9,30.0,16.1,0.8 +20020710,22.4,18.4,30.0,16.7,1.0 +20020711,21.8,19.0,28.3,16.7,2.5 +20020712,18.3,14.4,26.7,15.6,1.8 +20020713,18.3,17.0,21.1,15.6,0.8 +20020714,21.8,19.5,26.7,16.7,1.6 +20020715,22.2,19.7,28.9,18.9,1.4 +20020716,23.4,18.6,30.0,17.2,2.6 +20020717,23.8,17.8,30.0,17.0,2.5 +20020718,24.0,18.8,30.0,17.2,2.3 +20020719,24.1,18.5,30.6,17.8,2.1 +20020720,23.8,18.1,30.6,17.8,3.2 +20020721,23.9,18.7,30.6,17.2,1.3 +20020722,23.8,18.9,30.6,17.2,1.7 +20020723,23.5,19.1,30.0,17.8,1.4 +20020724,23.4,19.2,30.0,17.8,1.9 +20020725,22.4,20.3,29.4,18.3,1.8 +20020726,22.9,20.6,30.0,19.0,0.7 +20020727,24.1,20.3,31.1,18.3,1.6 +20020728,24.4,21.0,31.7,18.3,1.5 +20020729,25.3,20.7,31.7,18.3,1.5 +20020730,25.9,20.1,32.2,18.9,2.5 +20020731,24.9,18.3,32.2,19.4,3.9 +20020801,24.8,17.8,31.7,17.8,2.2 +20020802,22.9,18.9,31.7,17.2,1.1 +20020803,23.1,19.2,30.6,17.2,0.8 +20020804,24.0,17.7,31.1,16.1,1.2 +20020805,24.2,17.2,33.3,15.6,1.6 +20020806,24.6,18.2,33.3,15.6,3.1 +20020807,21.7,11.3,31.7,12.2,2.4 +20020808,19.9,12.3,30.0,10.6,1.3 +20020809,20.7,13.7,30.0,10.6,1.3 +20020810,21.2,15.4,29.4,12.2,1.3 +20020811,22.6,16.6,31.0,15.6,1.2 +20020812,24.2,17.8,31.7,14.4,1.2 +20020813,23.1,15.8,32.8,14.4,1.2 +20020814,23.3,17.2,32.8,14.4,1.8 +20020815,24.0,19.8,31.1,15.6,1.9 +20020816,22.3,20.4,29.4,19.4,1.4 +20020817,22.4,20.2,28.3,19.0,1.0 +20020818,22.4,19.6,30.6,16.7,1.6 +20020819,22.6,19.6,30.6,16.7,2.0 +20020820,23.2,18.5,31.1,17.8,3.6 +20020821,23.6,18.6,31.1,17.8,1.1 +20020822,23.1,19.3,31.7,16.7,1.1 +20020823,24.0,19.9,32.2,16.7,1.2 +20020824,24.0,20.1,32.2,17.2,2.2 +20020825,21.8,19.9,32.2,17.8,0.7 +20020826,19.8,17.9,28.3,15.6,0.9 +20020827,19.6,17.3,26.7,14.4,1.2 +20020828,20.3,16.9,26.1,14.4,1.8 +20020829,20.1,17.2,25.0,17.2,1.9 +20020830,20.8,17.9,25.0,17.8,1.6 +20020831,19.9,17.5,25.0,17.8,1.3 +20020901,20.0,16.8,25.6,17.2,1.5 +20020902,22.1,18.1,28.3,17.2,1.8 +20020903,21.9,18.4,28.0,16.0,1.4 +20020904,23.3,18.7,32.2,16.1,2.0 +20020905,23.1,17.5,32.2,16.7,1.4 +20020906,20.8,15.1,28.9,13.3,1.4 +20020907,20.1,15.3,28.9,12.8,1.2 +20020908,20.6,14.6,28.3,12.8,1.2 +20020909,20.5,11.4,31.7,10.6,1.5 +20020910,20.7,9.9,32.2,10.0,2.3 +20020911,20.3,12.7,32.2,10.0,2.7 +20020912,19.7,12.2,30.0,10.6,1.9 +20020913,17.6,14.5,25.6,12.2,1.0 +20020914,19.5,19.0,22.8,12.8,1.2 +20020915,18.7,17.9,21.7,17.2,1.9 +20020916,22.2,18.7,28.3,17.8,3.5 +20020917,20.5,18.6,28.3,16.1,0.8 +20020918,20.7,19.6,25.6,16.1,1.0 +20020919,21.4,19.4,26.1,18.3,2.0 +20020920,21.1,19.3,26.1,18.3,2.2 +20020921,20.2,19.2,22.8,18.9,1.9 +20020922,19.8,19.1,22.0,19.0,1.3 +20020923,20.1,16.6,23.9,16.7,2.3 +20020924,19.5,15.9,23.9,15.0,1.2 +20020925,15.6,14.2,22.8,12.8,1.1 +20020926,14.8,14.3,17.2,12.8,0.9 +20020927,21.6,19.7,24.4,13.3,5.7 +20020928,20.4,16.0,25.0,16.7,4.0 +20020929,18.4,15.7,25.0,14.4,0.8 +20020930,17.9,15.9,22.2,14.4,1.3 +20021001,20.6,17.0,27.8,15.0,0.8 +20021002,21.0,18.2,28.3,16.7,1.4 +20021003,21.3,18.4,28.3,16.1,1.4 +20021004,20.6,18.1,28.3,16.1,2.9 +20021005,21.1,17.9,27.8,16.7,2.4 +20021006,18.7,15.8,24.4,13.0,1.7 +20021007,18.1,16.1,25.0,13.3,3.1 +20021008,16.1,12.7,17.8,13.0,2.0 +20021009,13.5,11.7,18.3,11.1,2.2 +20021010,15.1,14.5,18.3,11.1,2.3 +20021011,18.2,16.6,23.3,13.9,1.0 +20021012,19.4,16.8,26.1,15.6,1.0 +20021013,18.6,15.8,26.1,15.6,3.1 +20021014,14.1,10.1,23.3,10.0,4.2 +20021015,9.9,8.4,12.8,8.0,1.3 +20021016,11.7,9.8,16.1,8.3,4.3 +20021017,8.4,4.8,16.1,3.9,3.1 +20021018,7.1,3.2,16.1,0.0,0.9 +20021019,10.4,6.9,20.6,0.0,0.8 +20021020,15.1,11.7,22.2,3.3,1.4 +20021021,15.6,14.6,22.2,10.6,1.3 +20021022,13.7,11.6,20.0,10.6,1.8 +20021023,13.1,11.3,20.0,10.0,1.7 +20021024,12.0,11.2,18.9,10.0,1.0 +20021025,11.4,11.1,13.3,10.6,1.6 +20021026,14.1,12.9,18.9,10.6,1.5 +20021027,14.4,13.6,18.9,11.1,1.4 +20021028,14.7,14.6,17.2,12.8,2.0 +20021029,12.2,12.1,15.6,9.0,3.2 +20021030,11.4,9.9,18.0,8.0,3.5 +20021031,7.2,4.4,17.8,5.6,6.1 +20021101,6.2,2.1,11.0,2.8,4.7 +20021102,5.1,-2.6,11.1,0.0,5.4 +20021103,7.1,-2.3,13.3,0.0,2.9 +20021104,9.6,6.4,13.3,4.4,3.4 +20021105,8.5,7.6,13.3,6.1,2.7 +20021106,8.5,6.1,11.1,5.6,5.5 +20021107,6.1,-0.2,12.8,2.8,6.0 +20021108,6.1,1.4,18.0,-2.0,1.9 +20021109,10.2,5.8,18.3,-1.7,3.9 +20021110,15.3,14.3,18.0,12.8,3.2 +20021111,17.6,15.6,20.0,13.9,2.7 +20021112,12.1,10.5,20.0,10.0,3.9 +20021113,7.1,2.4,10.0,4.0,6.0 +20021114,5.1,-0.4,14.4,-2.2,2.3 +20021115,7.4,2.6,14.4,-2.2,2.6 +20021116,9.8,9.6,13.3,1.7,1.2 +20021117,4.7,2.8,11.1,1.7,7.0 +20021118,2.6,-3.8,11.1,-2.2,4.5 +20021119,5.0,2.2,15.0,-2.2,1.7 +20021120,4.8,3.4,15.0,-1.7,1.3 +20021121,9.5,8.3,13.3,7.8,2.7 +20021122,4.8,0.4,8.9,1.0,6.2 +20021123,2.7,-5.5,10.0,-1.1,5.9 +20021124,5.2,-0.4,16.7,-2.2,1.6 +20021125,6.2,1.8,16.7,-2.2,2.0 +20021126,6.3,1.7,15.6,-1.7,2.0 +20021127,3.9,0.9,15.0,-1.1,5.8 +20021128,-1.2,-6.3,6.7,-4.4,4.7 +20021129,0.2,-6.6,11.7,-6.1,2.2 +20021130,6.4,-3.2,13.9,-6.1,3.5 +20021201,-0.7,-10.1,13.9,-5.6,5.6 +20021202,-0.1,-8.6,11.7,-7.2,1.5 +20021203,6.9,-0.3,11.7,3.3,4.6 +20021204,1.2,-1.3,7.8,-3.0,2.7 +20021205,1.4,1.3,5.0,-2.8,2.5 +20021206,0.7,-1.8,4.4,-1.7,5.4 +20021207,-1.7,-6.6,8.9,-8.0,2.0 +20021208,0.3,-6.7,8.9,-7.8,2.0 +20021209,2.6,-3.5,7.2,-6.1,2.7 +20021210,2.8,-0.3,8.3,-1.7,0.6 +20021211,5.6,5.0,8.9,-1.1,2.6 +20021212,5.6,3.4,10.0,3.9,3.9 +20021213,4.7,4.5,10.0,2.2,2.2 +20021214,2.9,0.9,4.0,1.0,4.6 +20021215,2.4,-2.9,9.4,-1.1,6.5 +20021216,6.6,1.6,15.6,-1.1,3.8 +20021217,4.9,1.3,15.6,-0.6,2.1 +20021218,3.7,-2.1,10.0,0.6,2.8 +20021219,5.1,2.6,8.9,2.2,2.8 +20021220,7.9,4.3,10.6,3.3,4.5 +20021221,4.9,-8.4,12.2,-0.6,2.6 +20021222,3.9,-2.9,15.6,-4.4,2.3 +20021223,4.8,-2.5,15.6,-4.4,4.5 +20021224,3.4,2.1,10.6,0.6,2.0 +20021225,1.8,-0.8,5.0,-2.2,6.3 +20021226,-2.3,-6.1,2.2,-4.0,7.3 +20021227,-1.2,-5.8,7.8,-7.2,3.1 +20021228,1.2,-4.3,8.9,-7.2,2.1 +20021229,6.7,-2.9,16.7,-3.9,3.1 +20021230,3.2,-1.2,15.6,-4.0,1.3 +20021231,7.9,4.7,16.1,-3.9,2.6 +20030101,12.2,10.9,15.0,2.2,3.6 +20030102,6.3,5.4,15.0,0.0,1.3 +20030103,5.0,3.7,14.4,-1.1,4.5 +20030104,-1.2,-5.4,3.9,-4.0,6.6 +20030105,2.4,-1.7,12.2,-3.9,1.3 +20030106,2.8,0.9,12.2,-2.2,4.3 +20030107,-0.8,-8.0,6.1,-5.0,6.1 +20030108,4.2,-3.2,15.6,-5.0,2.6 +20030109,10.9,2.2,19.4,-2.2,4.1 +20030110,7.1,0.3,19.4,1.7,5.6 +20030111,-1.2,-9.4,10.6,-6.1,6.4 +20030112,-3.7,-15.9,3.9,-8.9,5.8 +20030113,-1.9,-11.7,5.6,-8.9,3.9 +20030114,2.2,-4.3,11.7,-7.2,2.9 +20030115,-1.9,-8.9,11.7,-7.2,6.1 +20030116,-2.5,-11.4,3.0,-6.1,3.3 +20030117,-3.9,-7.4,-1.0,-7.0,5.5 +20030118,-8.2,-12.7,-1.1,-13.9,4.1 +20030119,-3.9,-9.9,3.3,-13.9,3.7 +20030120,4.1,-2.6,15.6,-8.3,3.3 +20030121,5.1,3.3,15.6,-6.7,2.6 +20030122,2.6,-2.7,7.2,-2.0,4.1 +20030123,-6.8,-13.9,1.7,-13.0,9.0 +20030124,-10.4,-18.2,-1.7,-15.0,8.2 +20030125,-3.9,-15.3,5.6,-15.0,3.9 +20030126,-1.3,-11.9,5.6,-9.4,3.3 +20030127,-4.6,-13.8,5.0,-10.0,6.0 +20030128,1.1,-11.3,13.9,-10.0,1.7 +20030129,6.4,0.4,9.0,2.8,1.7 +20030130,5.1,4.0,8.9,1.7,0.9 +20030131,1.8,0.8,6.7,0.6,1.3 +20030201,3.4,-0.7,7.8,0.6,4.7 +20030202,5.8,-2.7,20.0,-2.2,3.5 +20030203,8.1,-1.2,21.7,-2.8,1.5 +20030204,9.4,2.1,12.8,4.0,6.7 +20030205,1.1,-12.0,13.3,-4.4,5.7 +20030206,1.1,-10.3,6.7,-4.4,1.3 +20030207,-0.2,-1.9,1.1,-2.0,3.4 +20030208,-4.3,-10.9,1.1,-10.6,4.3 +20030209,-1.3,-11.6,6.7,-10.6,4.2 +20030210,2.9,-1.9,8.3,-4.4,3.3 +20030211,2.1,-7.4,10.6,-2.8,4.9 +20030212,6.4,-9.4,9.4,2.0,5.5 +20030213,2.5,-15.6,10.6,-2.8,5.5 +20030214,1.6,-2.3,10.6,-3.3,1.3 +20030215,9.2,6.3,19.4,-3.3,1.7 +20030216,2.2,1.3,14.4,-1.7,4.8 +20030217,-0.5,-1.4,2.0,-2.0,0.3 +20030218,1.7,-1.4,7.8,-2.0,4.5 +20030219,3.6,-0.4,12.8,-2.2,2.3 +20030220,7.4,3.0,12.8,-2.2,2.3 +20030221,5.7,3.9,9.4,1.7,1.3 +20030222,7.9,7.3,16.1,1.7,2.9 +20030223,6.8,1.3,16.1,0.0,6.2 +20030224,6.4,-1.0,17.2,-2.2,3.5 +20030225,4.9,-1.7,17.2,-2.2,4.5 +20030226,3.9,0.4,11.1,0.0,3.0 +20030227,1.6,0.8,5.0,0.0,2.2 +20030228,6.4,4.2,14.4,0.0,2.1 +20030301,6.4,5.1,14.4,2.8,2.9 +20030302,8.9,6.0,15.0,3.9,3.2 +20030303,3.7,-4.7,15.0,-1.1,5.4 +20030304,4.5,-2.1,13.3,-3.3,2.1 +20030305,12.1,6.5,21.7,7.0,2.2 +20030306,12.9,8.9,21.7,7.2,2.7 +20030307,6.1,2.6,17.2,3.9,3.2 +20030308,5.4,-0.4,18.3,-1.7,1.7 +20030309,11.4,2.8,18.9,-1.7,4.1 +20030310,6.8,-5.2,12.8,1.0,6.3 +20030311,6.1,-4.6,16.1,-2.2,1.3 +20030312,9.1,0.8,21.7,-2.2,1.3 +20030313,13.6,5.0,25.0,-1.7,1.7 +20030314,11.7,8.1,16.1,9.0,3.0 +20030315,8.6,2.3,12.2,6.0,1.4 +20030316,10.9,9.1,15.0,6.1,1.7 +20030317,12.3,10.8,15.0,8.9,1.1 +20030318,11.9,11.2,13.3,11.0,0.4 +20030319,12.1,11.0,12.8,11.0,2.8 +20030320,9.3,8.3,12.8,7.2,1.5 +20030321,12.7,9.2,20.6,7.2,3.2 +20030322,12.0,4.8,20.6,7.8,4.1 +20030323,11.0,2.2,17.8,4.4,2.3 +20030324,12.3,0.9,20.0,2.0,2.6 +20030325,12.1,3.1,22.8,1.1,1.5 +20030326,13.9,6.2,22.8,1.1,2.6 +20030327,11.8,4.9,21.1,6.1,2.8 +20030328,13.5,9.0,18.3,8.3,2.8 +20030329,14.2,12.0,19.4,8.9,3.2 +20030330,3.1,0.6,8.9,0.0,8.8 +20030331,1.4,-7.3,7.8,-2.8,5.8 +20030401,6.8,-3.1,21.7,-3.3,1.5 +20030402,14.2,3.0,24.4,3.9,2.3 +20030403,15.1,4.4,25.6,2.8,2.7 +20030404,15.2,8.7,25.6,3.3,2.5 +20030405,16.4,10.8,22.8,6.1,3.2 +20030406,12.8,3.0,22.8,3.9,3.7 +20030407,9.6,8.9,19.4,3.9,3.1 +20030408,7.1,7.0,11.1,5.6,2.5 +20030409,5.8,5.1,7.8,4.0,2.1 +20030410,4.5,3.3,8.3,0.0,2.6 +20030411,5.5,3.8,10.0,0.0,4.6 +20030412,12.1,3.1,20.0,3.3,5.7 +20030413,12.6,3.5,22.8,2.8,1.9 +20030414,13.8,4.1,23.9,2.8,2.0 +20030415,16.4,7.8,24.4,3.3,2.0 +20030416,16.3,8.4,24.4,7.8,2.5 +20030417,15.3,10.0,23.3,7.8,2.4 +20030418,11.2,10.2,14.0,8.0,2.1 +20030419,11.8,9.9,17.8,8.3,2.1 +20030420,13.9,12.1,20.0,8.9,3.4 +20030421,15.3,13.7,21.7,10.6,2.7 +20030422,13.0,7.4,21.7,9.4,4.5 +20030423,10.8,-0.1,18.9,5.0,7.2 +20030424,10.2,1.9,20.0,0.6,2.1 +20030425,11.8,8.9,15.0,10.0,3.0 +20030426,14.4,11.1,20.6,10.0,3.5 +20030427,15.7,8.7,23.9,8.3,3.2 +20030428,15.8,10.4,24.4,7.2,1.4 +20030429,17.7,12.2,27.2,7.2,1.7 +20030430,17.3,12.6,27.2,9.4,2.0 +20030501,16.4,13.9,26.7,10.0,1.4 +20030502,16.2,13.6,25.6,11.7,2.7 +20030503,16.1,12.7,25.6,10.0,2.6 +20030504,14.6,11.0,22.8,7.2,1.7 +20030505,13.5,12.4,22.2,7.2,3.3 +20030506,15.3,14.6,19.4,11.1,1.7 +20030507,16.7,14.8,23.3,13.3,1.5 +20030508,20.4,15.2,28.9,11.7,2.0 +20030509,21.8,16.4,30.6,11.7,1.3 +20030510,22.3,16.8,29.0,14.0,2.2 +20030511,21.3,16.1,29.4,14.4,1.5 +20030512,17.3,3.7,26.1,10.6,4.7 +20030513,16.3,2.9,22.2,10.6,5.3 +20030514,15.9,7.6,22.2,10.6,3.0 +20030515,16.4,12.9,22.8,10.6,2.5 +20030516,17.7,14.9,25.0,12.2,0.7 +20030517,17.0,15.6,25.0,13.9,1.0 +20030518,12.8,12.1,18.3,11.7,2.9 +20030519,12.7,11.2,15.6,11.0,2.5 +20030520,14.4,11.2,20.6,11.1,1.4 +20030521,16.6,14.6,20.6,11.7,0.6 +20030522,15.3,14.0,16.1,14.0,1.1 +20030523,15.6,13.2,21.0,13.0,1.3 +20030524,17.2,13.8,22.2,13.3,1.0 +20030525,16.4,11.8,22.8,10.0,1.5 +20030526,16.9,12.8,23.3,10.0,3.2 +20030527,17.9,10.8,23.3,12.8,3.9 +20030528,15.7,7.7,22.2,7.8,3.5 +20030529,15.7,10.5,22.2,7.8,2.2 +20030530,16.2,11.0,22.8,11.1,2.8 +20030531,17.9,12.1,27.2,10.6,2.1 +20030601,16.6,7.3,27.2,10.6,7.1 +20030602,14.9,7.8,21.7,6.7,3.1 +20030603,17.2,14.0,22.2,6.7,2.6 +20030604,19.7,16.7,26.7,13.3,2.6 +20030605,16.7,9.6,26.7,11.7,6.2 +20030606,16.5,11.3,24.4,10.0,1.9 +20030607,19.3,17.8,24.4,10.0,1.9 +20030608,21.4,18.5,27.2,17.8,1.2 +20030609,20.3,14.4,27.2,13.3,3.0 +20030610,19.2,12.3,26.7,11.1,1.7 +20030611,21.3,16.9,28.3,11.1,1.9 +20030612,21.2,17.9,28.3,15.0,2.7 +20030613,21.7,18.4,27.2,16.1,2.7 +20030614,20.9,18.2,27.2,16.7,1.7 +20030615,22.1,19.2,27.2,16.7,1.1 +20030616,20.6,18.9,27.2,18.3,0.6 +20030617,19.8,18.1,26.1,17.8,2.0 +20030618,19.7,18.4,23.3,17.8,0.8 +20030619,21.0,17.6,26.1,17.2,2.7 +20030620,20.9,14.9,26.1,17.2,3.9 +20030621,17.4,8.0,25.6,10.6,5.6 +20030622,17.9,10.4,25.6,10.6,3.5 +20030623,19.6,12.3,27.8,10.6,2.3 +20030624,20.4,13.8,28.3,10.6,1.1 +20030625,22.2,16.1,30.0,11.7,0.3 +20030626,22.9,17.8,30.0,14.4,1.1 +20030627,20.7,17.7,29.4,16.1,1.3 +20030628,19.5,17.6,26.1,16.7,1.5 +20030629,21.1,17.4,27.8,16.1,2.0 +20030630,21.0,18.8,28.3,15.6,1.2 +20030701,18.7,17.8,25.6,17.2,1.0 +20030702,18.2,17.1,21.7,16.7,1.2 +20030703,20.8,16.3,27.8,15.6,3.1 +20030704,22.1,17.6,29.4,15.0,1.1 +20030705,22.1,19.3,29.4,15.0,1.1 +20030706,22.1,19.8,29.4,17.8,1.6 +20030707,22.5,19.8,28.3,18.9,1.3 +20030708,24.1,19.9,30.6,18.9,1.7 +20030709,22.7,19.9,30.6,18.3,0.9 +20030710,21.6,19.6,26.7,18.0,1.6 +20030711,22.0,18.2,27.2,16.7,2.2 +20030712,20.3,15.8,27.8,12.8,1.3 +20030713,20.3,17.8,27.8,12.8,1.9 +20030714,19.3,17.3,26.1,15.6,1.2 +20030715,21.6,18.4,27.8,15.6,1.2 +20030716,21.9,19.2,28.9,17.0,0.7 +20030717,23.1,19.6,30.0,17.2,2.1 +20030718,22.1,18.0,28.3,17.0,1.0 +20030719,21.9,19.1,28.9,17.2,1.0 +20030720,22.4,17.9,29.4,17.0,1.3 +20030721,22.3,19.6,29.4,17.2,1.2 +20030722,19.8,18.1,28.9,16.7,1.1 +20030723,20.1,17.1,26.7,16.7,1.1 +20030724,19.0,13.4,25.0,13.0,3.4 +20030725,19.9,14.4,26.1,13.0,1.0 +20030726,21.1,16.7,27.8,13.3,1.2 +20030727,22.2,18.3,29.4,15.0,1.6 +20030728,22.9,18.2,29.4,15.6,1.3 +20030729,22.3,19.3,29.4,15.6,2.2 +20030730,22.2,20.0,27.8,18.3,1.4 +20030731,21.8,20.1,26.1,19.0,1.7 +20030801,21.8,20.1,27.2,18.9,0.9 +20030802,21.7,19.2,28.3,17.8,1.6 +20030803,21.4,19.3,28.3,17.8,1.3 +20030804,21.7,18.7,26.7,18.0,1.4 +20030805,19.9,17.4,27.8,15.6,1.1 +20030806,22.1,17.9,28.3,15.6,1.5 +20030807,21.1,18.7,28.3,16.7,1.4 +20030808,20.6,18.3,26.7,17.2,1.8 +20030809,20.9,18.3,27.2,17.2,1.6 +20030810,20.7,18.1,27.2,17.8,0.6 +20030811,20.1,17.3,26.1,16.7,1.6 +20030812,20.3,17.3,26.1,15.6,1.2 +20030813,22.4,19.2,27.8,15.6,1.3 +20030814,22.6,19.5,29.4,18.0,1.0 +20030815,23.7,20.5,29.4,18.3,0.9 +20030816,23.9,20.8,29.4,20.0,2.5 +20030817,23.4,18.9,30.0,17.8,2.4 +20030818,22.5,18.0,28.9,17.0,2.2 +20030819,21.4,17.9,27.0,16.0,1.7 +20030820,22.8,19.7,28.9,16.1,0.7 +20030821,22.5,19.7,28.9,18.9,1.3 +20030822,22.5,19.3,29.4,18.9,1.9 +20030823,23.5,19.0,30.6,17.8,2.0 +20030824,21.7,18.2,26.1,17.0,1.3 +20030825,23.3,18.1,29.4,17.2,0.8 +20030826,23.8,18.8,31.7,17.8,0.9 +20030827,24.3,20.2,31.7,17.8,1.7 +20030828,22.9,20.0,31.7,17.8,1.1 +20030829,22.6,19.3,30.6,18.3,1.4 +20030830,22.8,20.1,30.6,18.3,1.2 +20030831,21.4,19.9,27.0,19.0,0.8 +20030901,22.7,19.3,27.8,18.9,1.8 +20030902,21.3,18.3,28.3,17.2,0.8 +20030903,22.6,19.6,28.3,17.2,1.7 +20030904,22.2,19.9,27.8,19.4,1.9 +20030905,20.4,16.2,26.7,15.6,1.9 +20030906,19.7,15.4,26.7,15.6,1.5 +20030907,18.6,14.5,22.8,15.6,1.3 +20030908,18.2,14.1,23.9,13.9,1.2 +20030909,18.9,14.7,23.9,13.9,0.9 +20030910,18.0,13.8,23.9,13.9,0.5 +20030911,16.8,13.4,23.3,11.0,0.8 +20030912,17.1,11.6,24.4,10.0,0.7 +20030913,18.3,13.6,27.8,10.0,1.1 +20030914,19.4,16.0,27.8,11.7,1.3 +20030915,19.9,17.1,26.7,12.8,2.3 +20030916,18.6,13.2,25.0,13.9,3.1 +20030917,16.4,11.7,25.0,9.4,0.6 +20030918,15.9,11.0,23.9,9.4,3.7 +20030919,20.3,12.0,26.1,9.4,3.9 +20030920,18.3,13.3,26.7,10.6,0.8 +20030921,17.3,13.6,26.7,10.6,0.7 +20030922,18.8,16.9,25.0,10.6,3.3 +20030923,18.2,13.2,23.3,13.9,4.2 +20030924,14.6,11.1,23.3,7.8,1.2 +20030925,16.4,13.0,25.6,7.8,0.4 +20030926,17.7,15.0,25.6,10.6,1.2 +20030927,18.1,15.1,25.6,12.8,2.0 +20030928,15.6,10.4,25.6,11.7,4.0 +20030929,10.2,3.2,20.0,5.0,1.9 +20030930,9.9,4.7,18.3,3.0,2.1 +20031001,11.7,7.3,18.3,3.3,3.9 +20031002,10.6,2.4,17.2,6.7,5.8 +20031003,6.6,0.9,15.0,0.0,2.0 +20031004,10.1,5.1,21.1,0.0,2.4 +20031005,12.9,7.5,21.1,2.2,1.7 +20031006,14.3,11.6,20.0,6.1,0.9 +20031007,13.9,11.5,21.1,8.0,1.2 +20031008,14.7,13.3,21.7,8.3,1.5 +20031009,15.9,14.6,17.8,12.8,0.6 +20031010,16.6,13.8,18.9,15.0,0.8 +20031011,15.8,12.4,21.1,13.3,1.0 +20031012,15.1,12.1,22.8,9.0,2.5 +20031013,15.7,12.7,23.3,9.4,1.6 +20031014,17.7,15.2,23.3,9.4,2.7 +20031015,12.5,2.7,16.1,9.0,7.2 +20031016,9.4,3.0,19.4,1.1,2.2 +20031017,9.8,5.3,19.4,1.1,1.7 +20031018,12.1,5.3,19.4,1.7,3.7 +20031019,11.7,4.9,22.2,2.8,2.4 +20031020,12.9,7.4,22.2,2.8,1.3 +20031021,14.3,8.8,26.1,4.4,2.1 +20031022,15.3,3.4,26.1,5.6,5.8 +20031023,9.9,2.2,18.3,3.3,3.1 +20031024,8.6,3.9,16.7,1.0,2.1 +20031025,9.8,6.1,19.4,1.1,1.8 +20031026,12.7,11.7,15.0,10.6,1.1 +20031027,13.0,12.2,15.6,7.0,3.7 +20031028,6.6,5.3,16.7,3.3,2.2 +20031029,10.3,4.7,17.2,3.3,2.7 +20031030,10.5,3.4,23.9,1.7,2.1 +20031031,13.2,6.8,24.4,1.7,1.2 +20031101,13.6,7.1,25.0,3.9,1.6 +20031102,14.0,7.7,26.7,3.9,0.4 +20031103,14.4,9.3,26.7,4.4,0.9 +20031104,14.1,12.1,25.0,5.0,1.2 +20031105,19.6,18.4,22.2,17.8,2.3 +20031106,19.7,17.9,25.0,17.2,1.8 +20031107,17.3,13.4,25.0,13.9,4.3 +20031108,12.9,8.3,21.7,10.0,3.8 +20031109,7.6,1.0,16.1,3.9,1.5 +20031110,5.3,-0.4,15.0,-1.1,1.4 +20031111,9.8,4.1,21.7,-1.1,1.3 +20031112,15.2,9.5,24.4,2.2,1.9 +20031113,10.9,-1.7,24.4,3.9,7.8 +20031114,3.6,-12.3,14.4,-1.1,7.8 +20031115,6.5,-6.6,10.6,-1.1,1.6 +20031116,11.7,4.1,20.0,5.0,2.3 +20031117,15.1,12.5,21.7,6.7,1.8 +20031118,15.4,14.1,21.7,11.1,3.8 +20031119,15.8,13.5,18.9,10.0,5.2 +20031120,10.9,0.1,18.9,6.7,6.7 +20031121,8.8,1.1,20.0,-0.6,1.1 +20031122,9.1,2.1,22.2,-0.6,1.1 +20031123,9.3,3.3,22.2,-0.6,1.8 +20031124,11.8,9.2,21.1,0.0,5.6 +20031125,1.7,-6.8,15.0,-5.0,4.6 +20031126,3.8,-2.3,12.8,-5.0,1.7 +20031127,8.4,5.1,13.3,-1.7,2.5 +20031128,10.8,9.5,16.0,1.7,5.8 +20031129,-1.2,-7.2,1.7,-3.9,6.0 +20031130,2.6,-8.0,14.4,-5.6,2.8 +20031201,6.4,-4.9,14.4,-5.6,4.1 +20031202,3.5,-12.3,13.9,-2.8,4.8 +20031203,1.3,-8.9,8.9,-2.8,2.6 +20031204,-0.4,-3.0,1.1,-3.0,2.0 +20031205,1.3,1.3,3.3,-2.8,1.3 +20031206,0.8,-0.9,3.3,0.0,6.5 +20031207,1.3,-4.6,6.7,-2.2,5.7 +20031208,1.6,-3.1,11.7,-5.0,1.4 +20031209,2.9,-0.9,12.8,-5.0,1.1 +20031210,7.8,6.4,11.0,5.6,3.7 +20031211,1.8,-0.8,7.2,-1.0,7.6 +20031212,1.3,-5.3,8.3,-2.2,5.4 +20031213,0.0,-4.7,8.3,-3.9,1.6 +20031214,0.9,0.9,5.0,-3.9,3.4 +20031215,3.3,-0.8,11.7,-1.7,4.4 +20031216,3.2,0.3,11.7,-2.2,2.9 +20031217,3.6,-0.3,11.1,-2.2,5.7 +20031218,-0.6,-6.5,7.2,-5.6,2.5 +20031219,-0.1,-3.6,6.1,-5.6,4.6 +20031220,-4.4,-9.2,2.8,-6.7,5.9 +20031221,-3.3,-9.8,9.4,-10.0,2.1 +20031222,2.1,-7.1,13.3,-5.0,1.9 +20031223,4.8,1.0,13.9,-5.6,2.9 +20031224,5.5,2.9,11.7,-3.3,4.5 +20031225,-1.4,-7.8,10.0,-4.4,6.0 +20031226,0.9,-9.3,9.4,-5.0,4.7 +20031227,2.9,-8.7,16.1,-6.7,1.4 +20031228,3.2,-4.5,16.1,-6.7,1.1 +20031229,5.4,-0.3,15.6,-5.0,2.3 +20031230,6.5,0.4,12.8,-1.1,6.0 +20031231,1.6,-6.4,13.9,-6.7,1.3 +20040101,4.7,-4.3,17.2,-6.7,1.2 +20040102,9.7,0.6,17.0,4.0,1.3 +20040103,9.4,6.4,22.8,0.6,1.5 +20040104,15.6,13.2,21.0,12.8,4.2 +20040105,14.3,13.2,21.1,6.7,5.0 +20040106,0.1,-3.9,6.7,-4.0,8.2 +20040107,-6.9,-17.0,-2.0,-11.0,5.4 +20040108,-2.4,-13.1,3.3,-10.6,1.7 +20040109,-0.1,-4.0,2.0,-2.0,2.2 +20040110,-1.7,-4.2,1.7,-4.4,5.6 +20040111,-3.6,-7.1,6.7,-10.0,2.5 +20040112,2.8,-1.2,15.6,-10.0,3.7 +20040113,6.9,1.3,15.6,-5.0,4.9 +20040114,5.4,0.4,14.4,-3.9,2.9 +20040115,4.9,-0.6,13.9,-3.9,6.7 +20040116,2.1,-6.6,11.1,-2.8,4.2 +20040117,2.2,-1.1,11.1,-4.4,1.9 +20040118,7.4,6.5,11.7,-4.4,4.5 +20040119,-1.0,-6.2,4.4,-3.0,7.2 +20040120,-4.1,-12.7,3.9,-8.3,6.1 +20040121,-1.6,-10.4,7.8,-8.3,2.4 +20040122,1.7,-8.1,9.0,-2.0,4.2 +20040123,-0.7,-15.3,10.6,-7.2,6.0 +20040124,3.4,-6.1,14.4,-7.2,3.4 +20040125,1.2,-2.1,14.4,-6.7,3.2 +20040126,-3.5,-4.3,5.6,-4.4,3.0 +20040127,-0.6,-2.0,4.4,-4.4,4.3 +20040128,-4.1,-11.1,4.4,-7.2,7.6 +20040129,-1.1,-11.6,6.7,-7.2,4.1 +20040130,1.1,-5.8,7.2,-7.2,3.3 +20040131,-2.3,-13.1,7.2,-9.4,4.9 +20040201,-0.7,-9.5,6.7,-9.4,2.0 +20040202,-0.6,-7.5,6.7,-7.2,2.4 +20040203,2.5,0.2,8.9,-3.3,3.0 +20040204,1.6,-3.2,8.9,-2.2,4.3 +20040205,-0.5,-1.8,7.8,-3.3,2.1 +20040206,1.9,1.9,9.0,0.0,0.5 +20040207,1.5,-2.7,8.9,-2.2,5.6 +20040208,-1.3,-8.6,6.7,-4.4,5.2 +20040209,2.2,-4.5,9.4,-4.4,3.2 +20040210,4.1,0.2,9.4,-3.3,2.3 +20040211,3.8,-3.9,8.9,-1.1,4.5 +20040212,2.1,-0.8,7.2,0.0,1.5 +20040213,4.4,-1.9,12.0,0.6,4.0 +20040214,5.4,-1.7,11.7,-0.5,1.7 +20040215,2.9,0.9,7.8,0.0,1.0 +20040216,0.2,-1.6,5.0,-1.1,1.5 +20040217,-0.8,-4.4,4.0,-3.3,2.6 +20040218,3.3,-4.5,9.0,0.0,6.1 +20040219,5.4,-6.6,16.7,-3.3,3.0 +20040220,6.4,-1.4,17.8,-3.3,2.2 +20040221,9.9,3.2,12.0,6.0,5.1 +20040222,5.4,-2.2,15.6,-1.1,4.1 +20040223,4.3,-0.8,15.6,-2.2,1.7 +20040224,5.8,4.7,10.0,-2.2,2.4 +20040225,5.8,-1.1,10.0,2.8,3.9 +20040226,0.9,-6.8,7.8,-3.3,2.3 +20040227,1.6,0.7,8.9,-3.3,2.9 +20040228,4.4,-3.3,15.6,-5.0,2.2 +20040229,4.8,-4.7,17.2,-5.0,1.6 +20040301,7.2,2.8,17.2,-5.0,2.5 +20040302,13.4,11.8,16.0,12.0,4.0 +20040303,13.1,11.4,20.0,8.9,2.9 +20040304,15.2,10.8,23.3,8.9,2.5 +20040305,17.1,13.1,23.3,8.9,5.2 +20040306,17.4,12.4,20.6,13.9,5.2 +20040307,11.6,4.7,18.0,3.0,3.1 +20040308,5.7,-6.2,8.0,2.8,8.1 +20040309,1.4,-3.1,9.4,-3.3,2.8 +20040310,3.4,-2.2,8.9,-3.3,5.4 +20040311,3.9,-3.6,17.2,-6.1,1.3 +20040312,9.7,-3.3,14.0,3.9,5.1 +20040313,6.6,-5.9,15.0,-1.0,5.0 +20040314,8.9,1.4,17.2,-0.6,2.8 +20040315,11.7,9.8,17.2,3.9,1.8 +20040316,13.4,9.8,20.6,8.9,2.8 +20040317,7.5,0.4,12.2,3.9,4.6 +20040318,5.4,2.2,13.3,0.0,1.5 +20040319,10.4,2.1,18.3,0.0,3.2 +20040320,9.5,2.6,21.0,0.6,2.8 +20040321,10.1,2.7,20.6,0.0,5.8 +20040322,0.0,-10.9,4.0,-3.3,7.8 +20040323,1.0,-11.0,12.0,-7.2,1.8 +20040324,8.0,-4.9,17.2,2.0,2.8 +20040325,10.7,2.8,21.0,1.0,2.1 +20040326,13.4,7.9,22.2,0.6,2.3 +20040327,14.2,8.5,23.9,3.3,1.2 +20040328,16.6,10.7,24.4,4.4,1.7 +20040329,15.1,9.1,24.4,8.9,3.5 +20040330,10.8,6.2,20.6,7.8,3.7 +20040331,6.1,4.1,9.0,3.0,2.9 +20040401,5.2,0.4,10.0,2.8,6.1 +20040402,6.2,-1.1,10.0,2.8,6.0 +20040403,8.3,2.3,16.7,3.3,5.6 +20040404,8.9,-3.7,13.3,4.0,7.4 +20040405,5.9,-9.5,12.8,1.7,7.2 +20040406,9.7,-7.8,19.0,1.0,3.1 +20040407,12.9,-0.6,23.9,0.6,1.6 +20040408,14.7,3.9,21.0,9.0,1.8 +20040409,15.1,1.1,22.2,8.9,4.3 +20040410,12.9,1.0,22.2,2.8,2.6 +20040411,13.5,6.8,20.6,2.8,1.6 +20040412,9.6,8.4,13.0,7.0,2.3 +20040413,10.2,7.8,16.7,7.2,3.9 +20040414,4.8,0.2,9.0,1.0,7.6 +20040415,11.1,-1.4,19.4,1.1,6.1 +20040416,11.6,2.2,21.7,1.7,1.8 +20040417,14.5,4.7,25.0,1.7,1.1 +20040418,18.0,6.7,27.8,3.3,1.9 +20040419,18.1,7.1,27.8,6.1,1.4 +20040420,18.3,6.4,27.8,7.2,2.0 +20040421,17.0,5.2,24.0,8.0,2.9 +20040422,18.9,7.9,24.4,8.3,4.6 +20040423,18.6,9.7,27.2,10.0,1.5 +20040424,20.7,13.4,27.2,10.0,2.6 +20040425,19.3,12.9,26.7,12.8,2.9 +20040426,16.2,13.0,25.6,11.7,3.2 +20040427,11.4,3.6,18.3,4.4,3.8 +20040428,11.7,-2.4,20.6,1.7,3.7 +20040429,13.1,5.7,22.2,1.7,2.4 +20040430,15.1,11.6,22.2,3.9,2.3 +20040501,16.6,14.9,21.0,14.0,1.3 +20040502,17.1,15.4,20.6,11.7,3.4 +20040503,9.3,3.9,12.0,6.0,6.4 +20040504,8.7,0.9,18.9,0.6,3.7 +20040505,13.1,6.9,24.4,0.6,1.6 +20040506,18.1,11.4,27.8,4.4,1.4 +20040507,19.6,10.6,28.3,8.9,3.2 +20040508,19.7,11.5,28.3,9.4,2.4 +20040509,18.3,13.7,27.2,10.6,1.9 +20040510,18.6,13.2,27.0,11.0,1.6 +20040511,18.6,12.2,26.7,10.0,2.1 +20040512,19.1,14.9,26.7,10.0,2.0 +20040513,18.2,16.8,24.4,13.3,1.8 +20040514,19.3,16.3,24.0,16.0,2.7 +20040515,19.4,14.0,25.0,15.0,2.4 +20040516,18.7,14.1,25.0,14.0,1.2 +20040517,18.2,15.4,24.0,14.0,1.2 +20040518,18.7,16.3,24.4,14.4,2.0 +20040519,19.1,15.9,26.1,13.9,1.4 +20040520,20.5,17.3,27.2,13.9,1.5 +20040521,21.6,17.4,29.4,15.6,1.2 +20040522,21.1,17.7,29.4,15.6,0.9 +20040523,20.1,16.8,27.2,15.0,2.0 +20040524,21.3,16.4,29.4,15.0,1.3 +20040525,22.2,16.2,30.6,13.9,1.4 +20040526,22.9,17.3,30.6,13.9,1.1 +20040527,20.3,15.6,29.0,15.0,3.5 +20040528,20.4,15.6,28.9,14.4,3.1 +20040529,19.8,15.8,27.8,13.3,1.9 +20040530,20.8,18.4,27.8,13.3,0.9 +20040531,21.2,17.6,26.0,17.0,1.9 +20040601,18.6,10.4,26.7,11.1,2.4 +20040602,18.4,11.8,27.8,9.4,2.2 +20040603,19.9,13.2,27.8,9.4,1.3 +20040604,18.6,15.1,27.8,12.8,2.5 +20040605,18.1,11.8,23.9,11.7,3.2 +20040606,18.3,12.4,24.0,12.0,1.4 +20040607,20.1,16.4,25.0,12.2,0.8 +20040608,20.4,17.4,25.0,16.1,0.5 +20040609,20.8,16.9,27.0,17.0,1.7 +20040610,21.7,17.7,29.4,16.7,1.6 +20040611,23.7,18.1,30.6,16.7,1.8 +20040612,23.6,18.6,30.6,17.2,1.6 +20040613,19.7,18.4,30.0,17.8,2.8 +20040614,21.7,18.9,25.6,18.9,3.1 +20040615,21.8,20.1,25.6,19.4,1.4 +20040616,22.4,20.0,28.3,18.9,0.9 +20040617,23.3,20.3,30.0,18.9,2.4 +20040618,22.7,19.4,29.0,18.0,2.4 +20040619,23.9,18.7,30.0,17.8,3.5 +20040620,22.6,16.4,29.4,17.2,2.9 +20040621,20.2,17.8,23.9,17.0,1.6 +20040622,21.4,18.4,27.2,17.2,2.5 +20040623,21.4,18.4,27.2,17.8,2.5 +20040624,21.4,18.0,26.1,17.8,2.3 +20040625,21.2,19.0,26.1,18.9,1.5 +20040626,21.2,17.0,26.1,17.8,3.4 +20040627,19.7,16.9,26.1,16.7,2.2 +20040628,19.5,17.4,24.0,17.0,1.3 +20040629,20.1,16.3,26.1,15.0,2.1 +20040630,19.7,17.6,26.1,15.0,0.9 +20040701,20.8,18.2,26.1,17.2,1.5 +20040702,23.1,18.8,26.7,17.8,1.5 +20040703,21.4,18.9,26.7,18.9,1.3 +20040704,22.3,19.6,28.9,18.9,0.9 +20040705,23.5,18.4,31.0,17.0,2.2 +20040706,22.3,17.1,30.6,16.7,3.4 +20040707,22.7,17.9,29.4,16.7,2.2 +20040708,22.5,17.7,29.4,16.7,2.8 +20040709,22.5,17.2,30.0,16.0,1.3 +20040710,23.0,18.8,31.0,17.0,2.0 +20040711,22.9,19.8,30.6,17.2,2.1 +20040712,23.2,19.9,30.0,19.4,2.4 +20040713,23.8,18.9,30.0,19.4,2.7 +20040714,24.2,17.7,31.1,18.9,2.7 +20040715,22.8,14.2,31.1,17.2,4.7 +20040716,20.0,13.2,26.0,13.0,2.1 +20040717,19.5,16.5,26.7,13.3,0.5 +20040718,21.3,17.1,27.0,18.0,2.5 +20040719,20.8,15.2,27.2,14.4,2.9 +20040720,21.2,14.7,28.3,14.4,2.2 +20040721,21.7,15.7,29.0,14.0,1.3 +20040722,23.0,18.3,28.9,13.9,2.1 +20040723,23.8,19.0,29.0,20.0,3.4 +20040724,22.8,19.0,28.0,18.0,1.5 +20040725,22.5,18.9,28.9,18.3,1.3 +20040726,22.6,19.8,27.2,19.4,1.4 +20040727,21.5,19.2,26.1,18.9,1.1 +20040728,22.1,18.1,28.3,17.8,2.5 +20040729,21.6,17.9,28.3,17.8,2.0 +20040730,22.1,19.8,26.0,20.0,2.8 +20040731,22.6,19.7,28.0,19.0,1.3 +20040801,23.3,20.3,29.4,19.4,2.0 +20040802,23.7,20.5,29.4,20.0,1.9 +20040803,22.8,18.0,28.9,18.9,4.2 +20040804,22.3,17.6,30.0,15.6,1.3 +20040805,21.8,18.6,30.0,15.6,2.1 +20040806,19.6,12.8,25.6,15.0,5.5 +20040807,16.8,7.9,24.4,10.0,3.0 +20040808,17.2,10.9,26.0,9.0,1.0 +20040809,18.3,13.4,26.1,9.4,1.1 +20040810,19.7,15.3,26.7,12.2,1.3 +20040811,20.0,17.1,27.8,12.8,1.5 +20040812,18.9,17.3,27.8,15.6,1.1 +20040813,17.8,13.7,22.8,13.9,5.1 +20040814,18.3,13.4,24.4,13.9,2.9 +20040815,19.0,16.0,24.4,13.9,1.7 +20040816,20.2,15.9,26.7,16.1,1.9 +20040817,20.4,17.6,26.7,16.1,0.8 +20040818,21.8,17.2,28.0,18.0,1.6 +20040819,21.3,17.5,28.3,16.0,2.0 +20040820,22.2,18.4,28.9,16.1,1.7 +20040821,22.2,18.6,28.9,17.8,2.2 +20040822,20.2,17.4,27.8,17.8,2.1 +20040823,20.8,17.4,26.0,18.0,0.9 +20040824,21.5,18.4,27.0,18.0,1.2 +20040825,21.1,17.9,27.0,18.0,1.7 +20040826,21.4,17.1,27.2,16.1,1.4 +20040827,22.7,18.9,29.4,16.1,1.5 +20040828,21.9,19.3,29.4,18.3,1.4 +20040829,20.7,18.2,29.4,17.8,1.0 +20040830,21.2,18.9,28.0,18.0,1.6 +20040831,21.9,18.7,28.3,17.8,2.1 +20040901,20.6,18.6,28.3,17.8,0.8 +20040902,19.0,17.2,21.0,17.0,1.1 +20040903,19.3,16.4,23.0,16.0,0.6 +20040904,19.8,15.9,25.0,15.0,0.9 +20040905,19.2,15.3,25.0,14.0,1.1 +20040906,20.1,16.9,25.6,14.4,1.2 +20040907,20.8,18.7,25.6,16.1,2.9 +20040908,21.3,19.2,22.8,20.0,3.5 +20040909,20.3,16.3,24.0,17.0,4.6 +20040910,19.4,16.0,26.1,15.6,1.6 +20040911,20.4,16.6,26.1,15.6,1.3 +20040912,19.4,15.7,25.6,15.0,1.0 +20040913,17.5,14.9,25.0,13.9,0.8 +20040914,17.4,14.2,23.3,13.9,1.1 +20040915,19.3,15.5,25.0,13.9,1.5 +20040916,19.9,18.1,25.0,15.0,2.1 +20040917,20.9,18.7,22.2,18.3,6.7 +20040918,18.4,10.4,21.7,15.0,8.9 +20040919,16.6,6.7,24.0,10.0,4.0 +20040920,13.4,7.2,23.9,6.7,0.9 +20040921,13.6,7.2,24.0,6.0,0.7 +20040922,15.2,7.9,27.2,6.1,0.9 +20040923,18.3,13.3,28.3,7.2,0.8 +20040924,19.0,14.9,28.3,10.0,0.9 +20040925,18.8,15.0,25.6,13.9,1.1 +20040926,17.3,13.2,24.4,11.7,1.5 +20040927,17.3,15.1,23.9,11.7,2.1 +20040928,19.4,16.9,22.8,16.1,4.9 +20040929,17.9,13.4,23.0,13.9,2.2 +20040930,17.4,13.6,23.3,12.8,1.5 +20041001,17.3,14.7,23.9,12.8,1.2 +20041002,17.8,14.8,25.0,12.8,1.4 +20041003,17.6,14.1,25.0,12.8,1.9 +20041004,15.1,9.1,24.4,7.2,2.7 +20041005,15.0,9.3,23.3,7.2,1.2 +20041006,15.6,11.3,23.3,7.2,2.2 +20041007,16.2,11.6,22.0,13.9,1.9 +20041008,12.4,8.0,21.7,6.7,1.6 +20041009,15.9,11.4,20.6,6.7,0.4 +20041010,17.1,13.1,24.0,13.0,1.3 +20041011,18.1,13.1,23.9,12.8,1.6 +20041012,16.7,13.3,23.0,11.0,2.2 +20041013,17.6,14.4,23.3,11.1,2.4 +20041014,13.9,9.6,18.0,11.0,3.7 +20041015,11.5,5.2,18.9,7.8,4.3 +20041016,9.7,1.0,17.2,2.8,2.7 +20041017,10.1,-1.0,19.4,2.2,3.2 +20041018,12.2,7.4,20.0,2.2,1.5 +20041019,17.4,15.1,19.0,16.0,2.7 +20041020,17.3,14.5,24.4,13.9,1.5 +20041021,16.9,14.9,24.4,13.9,1.6 +20041022,14.9,12.9,19.0,13.0,2.5 +20041023,12.6,11.1,18.9,10.6,2.5 +20041024,15.1,11.8,22.2,10.6,2.0 +20041025,15.2,11.4,23.3,10.0,1.6 +20041026,13.1,10.3,23.3,7.8,1.2 +20041027,16.2,13.4,24.0,13.9,1.3 +20041028,16.7,15.4,23.9,13.9,1.9 +20041029,16.2,14.2,22.8,13.9,1.6 +20041030,18.4,14.8,25.6,13.9,1.5 +20041031,17.7,12.7,26.0,12.0,1.0 +20041101,17.1,12.6,27.2,10.6,1.9 +20041102,18.9,15.7,27.2,10.6,2.1 +20041103,18.7,17.3,23.3,15.0,1.0 +20041104,16.3,14.2,20.6,12.8,3.4 +20041105,10.3,0.8,20.0,6.7,8.1 +20041106,7.6,-1.7,18.9,-1.1,1.4 +20041107,10.3,3.1,22.2,-1.1,1.6 +20041108,12.9,4.0,17.0,10.0,4.1 +20041109,10.8,-3.1,19.0,3.0,3.1 +20041110,6.5,-1.4,12.0,1.0,1.7 +20041111,5.9,1.8,12.2,0.0,1.4 +20041112,9.7,9.1,13.9,1.1,2.0 +20041113,10.3,7.3,13.9,7.2,4.3 +20041114,4.0,-1.5,13.3,-2.2,0.9 +20041115,3.8,-3.3,15.0,-3.9,0.7 +20041116,4.4,-1.2,15.0,-3.9,1.4 +20041117,9.3,2.7,18.3,-1.7,1.6 +20041118,11.6,7.1,18.3,1.1,2.1 +20041119,13.8,8.9,19.0,10.0,1.9 +20041120,14.1,11.1,18.9,9.4,2.1 +20041121,12.9,10.1,17.8,8.9,1.3 +20041122,13.8,11.5,19.4,8.9,0.7 +20041123,14.1,13.1,19.4,11.1,1.4 +20041124,14.2,12.9,18.0,12.8,3.9 +20041125,7.8,3.7,17.8,1.7,7.4 +20041126,2.7,-5.6,13.9,-2.2,3.0 +20041127,1.3,-3.9,10.0,-3.3,2.9 +20041128,5.8,1.6,9.4,-3.3,3.5 +20041129,6.2,-1.2,12.0,2.0,2.5 +20041130,6.5,1.9,12.2,1.1,2.2 +20041201,8.1,3.3,13.0,3.0,6.0 +20041202,3.2,-2.7,13.3,-5.0,2.9 +20041203,5.1,-3.7,13.3,-5.0,5.3 +20041204,2.5,-4.0,12.2,-4.4,1.2 +20041205,3.8,-3.0,13.9,-4.4,1.4 +20041206,7.9,4.3,13.9,-2.2,2.9 +20041207,13.4,11.9,17.2,5.0,4.3 +20041208,12.2,5.8,17.2,6.1,3.0 +20041209,7.3,5.7,17.2,3.9,1.4 +20041210,12.1,8.7,16.1,3.9,2.8 +20041211,5.0,1.4,16.1,2.8,4.2 +20041212,2.9,-1.8,6.7,-1.1,3.9 +20041213,5.1,-3.0,8.0,1.0,4.0 +20041214,-2.5,-9.6,7.8,-4.4,8.6 +20041215,-2.6,-11.3,5.0,-6.1,6.9 +20041216,-1.6,-9.4,10.0,-9.0,1.1 +20041217,3.1,-7.8,10.6,-8.9,2.4 +20041218,1.0,-5.0,10.0,-6.0,1.3 +20041219,0.6,-3.3,10.6,-5.6,3.7 +20041220,-8.7,-18.7,-1.0,-14.0,6.7 +20041221,-0.3,-9.8,13.3,-13.9,1.9 +20041222,3.7,-0.7,13.3,-7.8,2.9 +20041223,7.6,6.2,13.3,-3.9,5.8 +20041224,-2.8,-7.9,1.0,-5.0,7.0 +20041225,-3.7,-8.1,2.0,-7.0,2.1 +20041226,-0.4,-9.5,5.6,-7.2,3.2 +20041227,0.4,-10.8,7.8,-4.4,5.5 +20041228,-1.1,-8.2,8.0,-7.0,1.2 +20041229,4.9,-4.7,14.4,-6.7,3.1 +20041230,6.6,1.4,16.1,-4.4,0.8 +20041231,8.4,4.1,16.1,-1.7,1.4 +20050101,8.7,4.2,18.9,1.0,1.0 +20050102,9.5,5.7,19.4,1.1,1.4 +20050103,10.3,6.9,17.8,2.2,1.6 +20050104,13.3,9.0,21.7,3.9,1.1 +20050105,11.8,8.4,21.7,5.0,1.7 +20050106,13.3,10.1,18.3,5.0,4.3 +20050107,8.7,4.4,16.1,4.4,2.1 +20050108,11.9,8.0,15.0,4.4,5.1 +20050109,6.1,2.8,15.6,0.0,1.6 +20050110,8.2,3.6,15.6,0.0,3.8 +20050111,8.2,5.2,17.8,1.1,1.4 +20050112,13.0,9.6,17.8,2.2,3.7 +20050113,15.1,11.8,18.0,13.9,5.9 +20050114,8.3,4.6,17.8,3.9,7.4 +20050115,2.6,-3.7,10.6,-1.7,2.8 +20050116,2.4,-3.8,8.9,-2.0,1.9 +20050117,-5.8,-13.9,-1.7,-9.4,7.5 +20050118,-6.7,-20.7,1.1,-11.7,4.9 +20050119,-3.4,-15.1,2.8,-11.7,2.3 +20050120,1.8,-5.8,7.8,-7.2,3.8 +20050121,4.3,-1.7,11.7,-2.8,2.2 +20050122,0.7,-0.7,5.0,-2.0,4.4 +20050123,-7.5,-14.2,5.0,-11.1,10.8 +20050124,-5.8,-16.1,7.2,-13.3,4.8 +20050125,3.6,-11.7,14.4,-2.0,2.2 +20050126,7.0,0.2,16.1,-2.8,2.8 +20050127,4.1,-3.5,16.1,-1.1,6.2 +20050128,-1.3,-14.3,6.7,-4.4,3.3 +20050129,-3.9,-11.1,-1.0,-7.0,3.1 +20050130,1.7,-0.6,6.7,-6.7,4.4 +20050131,2.6,-0.7,6.7,0.0,2.2 +20050201,2.5,-4.7,6.7,0.0,1.7 +20050202,-0.1,-4.1,6.7,-3.3,2.2 +20050203,1.1,-0.8,5.0,-3.3,3.0 +20050204,4.1,-2.1,8.9,-1.1,6.7 +20050205,4.9,-3.1,15.0,-3.3,3.3 +20050206,3.9,-3.9,15.0,-3.3,1.5 +20050207,4.6,-4.0,14.4,-3.3,1.1 +20050208,10.5,0.4,17.8,-2.8,1.5 +20050209,9.1,7.4,17.8,4.4,1.1 +20050210,4.4,-0.9,13.3,-2.2,7.2 +20050211,-1.7,-9.9,8.3,-6.1,10.1 +20050212,5.2,-7.4,14.4,-6.1,6.7 +20050213,2.4,-2.3,14.4,-2.8,0.8 +20050214,6.1,3.6,10.0,-2.8,2.8 +20050215,5.7,2.8,16.1,0.0,1.2 +20050216,10.6,7.8,17.8,0.0,3.2 +20050217,3.9,-4.8,8.9,0.0,6.2 +20050218,1.6,-11.7,7.8,-4.4,5.4 +20050219,1.8,-7.6,11.7,-5.0,1.7 +20050220,4.2,-2.7,11.7,-5.0,2.1 +20050221,8.8,6.3,17.2,1.7,2.4 +20050222,11.3,5.3,19.4,3.9,2.7 +20050223,11.1,1.2,19.4,3.9,3.7 +20050224,8.2,4.4,19.4,5.0,1.0 +20050225,5.1,-0.9,11.1,0.6,4.5 +20050226,4.3,-4.0,13.3,-3.3,2.2 +20050227,3.5,-0.8,13.3,-3.3,1.7 +20050228,1.9,0.3,6.7,-0.6,1.9 +20050301,0.1,-7.4,3.3,-3.0,5.2 +20050302,-1.9,-11.3,6.1,-6.1,6.5 +20050303,1.8,-10.6,8.9,-6.1,4.9 +20050304,2.2,-7.4,13.3,-6.7,1.7 +20050305,7.8,-2.5,14.4,1.7,3.8 +20050306,7.2,-3.4,16.1,0.6,5.0 +20050307,6.9,-2.7,20.0,-3.3,2.4 +20050308,5.6,0.9,10.6,0.0,6.4 +20050309,0.1,-8.9,10.0,-4.4,4.0 +20050310,3.2,-7.2,10.0,-4.4,3.2 +20050311,4.8,-5.7,12.0,-3.0,3.6 +20050312,8.8,-5.6,20.0,-2.8,6.0 +20050313,16.7,0.7,22.2,11.1,2.7 +20050314,8.7,3.9,22.8,5.0,4.5 +20050315,4.6,-2.6,11.7,-1.1,2.4 +20050316,4.5,0.8,11.7,-1.1,2.0 +20050317,1.6,-1.1,5.6,0.0,1.8 +20050318,2.5,-3.4,11.1,-2.8,2.2 +20050319,4.2,-2.9,13.3,-3.3,1.9 +20050320,7.0,-1.7,16.7,-3.3,2.6 +20050321,9.0,-2.4,16.7,-2.2,2.2 +20050322,6.9,1.3,16.1,0.0,1.5 +20050323,11.1,7.1,21.1,3.3,3.2 +20050324,11.7,3.9,17.2,7.0,4.9 +20050325,11.5,4.2,20.6,4.4,2.5 +20050326,13.4,7.3,20.6,4.4,1.9 +20050327,11.3,9.5,20.6,5.6,3.3 +20050328,10.1,7.3,12.2,7.8,4.1 +20050329,11.9,1.0,21.1,6.7,7.5 +20050330,12.9,2.1,23.3,3.9,2.5 +20050331,13.8,8.2,23.3,3.9,2.5 +20050401,12.3,11.1,17.2,8.3,2.1 +20050402,9.1,5.5,15.0,3.9,5.4 +20050403,8.6,-3.3,15.6,2.8,11.1 +20050404,13.9,-1.2,22.8,4.4,3.8 +20050405,13.7,2.3,25.0,2.8,2.3 +20050406,15.9,4.3,25.0,2.8,3.1 +20050407,15.1,10.7,23.3,8.3,4.1 +20050408,13.7,11.8,18.9,10.6,2.2 +20050409,15.3,9.3,21.1,10.6,2.6 +20050410,14.8,6.9,25.6,5.6,1.4 +20050411,17.3,8.3,25.6,5.6,2.2 +20050412,15.4,8.2,25.6,8.3,2.4 +20050413,9.4,7.7,11.7,7.0,1.4 +20050414,9.2,0.7,17.2,2.8,3.1 +20050415,11.7,0.6,21.1,2.2,2.0 +20050416,11.1,-6.1,21.1,1.1,1.9 +20050417,10.8,-2.9,22.2,-0.6,2.1 +20050418,14.1,2.4,24.4,-0.6,1.4 +20050419,16.3,5.4,25.0,3.3,1.4 +20050420,17.4,5.8,25.6,6.1,1.6 +20050421,15.9,6.3,25.6,6.7,1.4 +20050422,14.1,11.6,25.6,6.7,1.9 +20050423,10.5,6.5,14.0,6.7,4.3 +20050424,3.6,-2.8,8.9,-2.0,4.5 +20050425,9.5,-5.0,18.3,-1.7,3.6 +20050426,8.8,2.5,18.3,1.7,3.0 +20050427,9.9,3.4,16.1,2.8,3.8 +20050428,8.8,1.4,17.8,1.7,2.8 +20050429,14.6,7.8,22.8,1.7,2.5 +20050430,15.8,11.6,22.8,10.0,4.1 +20050501,12.0,3.4,18.3,7.8,7.4 +20050502,10.8,0.0,18.3,3.3,2.9 +20050503,11.0,-0.4,18.3,3.3,3.7 +20050504,11.4,-0.1,18.9,3.9,3.5 +20050505,10.5,5.9,18.9,3.9,1.0 +20050506,13.5,5.1,20.6,6.7,3.7 +20050507,14.0,4.2,22.8,3.9,2.8 +20050508,16.3,7.2,25.6,3.9,2.6 +20050509,18.0,9.1,26.7,6.7,1.6 +20050510,17.2,11.9,26.7,8.3,2.4 +20050511,17.2,11.8,26.1,11.0,2.3 +20050512,19.7,11.7,30.0,10.6,1.6 +20050513,18.2,14.2,30.0,10.6,2.2 +20050514,19.5,14.3,26.1,12.2,3.7 +20050515,16.4,14.2,20.0,14.0,1.9 +20050516,14.1,7.6,21.7,7.2,2.7 +20050517,15.4,8.6,23.3,7.2,2.4 +20050518,18.1,12.2,25.6,7.2,2.0 +20050519,19.1,14.2,25.6,11.1,1.4 +20050520,16.9,13.8,25.0,12.8,2.5 +20050521,15.9,12.1,20.6,12.0,2.2 +20050522,17.3,11.7,24.4,11.7,2.2 +20050523,19.3,10.9,26.1,11.7,3.1 +20050524,16.7,7.4,26.1,10.6,4.1 +20050525,13.8,4.8,20.0,9.4,5.4 +20050526,15.7,6.6,23.9,7.8,4.2 +20050527,17.4,9.4,25.6,7.8,2.4 +20050528,15.9,10.2,25.6,8.9,2.7 +20050529,13.9,7.7,22.2,6.1,1.0 +20050530,16.3,11.5,21.1,6.1,2.1 +20050531,16.9,12.4,22.8,11.1,2.4 +20050601,15.4,13.0,22.8,11.1,1.9 +20050602,13.7,12.2,17.2,11.7,0.9 +20050603,15.6,14.2,18.9,12.2,1.7 +20050604,20.4,15.6,28.3,13.9,1.7 +20050605,22.2,16.6,30.6,15.0,1.7 +20050606,21.8,17.5,30.6,15.6,1.9 +20050607,22.1,16.9,29.4,16.1,1.7 +20050608,21.3,18.3,28.9,16.1,1.7 +20050609,21.9,18.3,28.3,17.8,2.0 +20050610,22.3,18.9,28.3,17.8,2.7 +20050611,21.0,17.7,23.9,19.0,2.3 +20050612,20.6,18.6,23.3,18.0,3.5 +20050613,23.6,20.0,28.9,18.3,2.7 +20050614,23.3,17.3,31.1,15.6,2.4 +20050615,24.2,16.8,31.1,15.6,3.1 +20050616,21.6,12.9,29.4,14.4,3.7 +20050617,20.2,10.9,27.2,14.4,3.7 +20050618,17.4,11.1,25.6,11.1,1.9 +20050619,17.9,14.2,25.0,11.1,1.4 +20050620,15.9,13.9,20.0,13.0,1.4 +20050621,15.9,13.2,23.3,11.7,0.8 +20050622,19.1,14.1,26.7,11.7,2.3 +20050623,21.2,15.1,27.2,12.2,1.5 +20050624,20.7,14.2,27.8,12.8,1.4 +20050625,20.7,14.6,27.8,12.8,1.1 +20050626,20.3,17.2,27.8,13.9,1.5 +20050627,22.4,19.2,27.8,17.8,1.6 +20050628,21.4,19.1,27.8,17.8,1.3 +20050629,22.2,19.1,29.4,18.9,2.0 +20050630,23.5,19.0,30.0,18.3,2.7 +20050701,23.8,19.4,30.0,18.3,2.7 +20050702,22.1,17.8,29.4,17.8,2.7 +20050703,21.2,18.6,25.0,17.0,1.3 +20050704,22.2,19.6,26.1,17.2,1.7 +20050705,23.6,19.6,29.0,19.0,1.8 +20050706,22.1,18.7,30.6,18.9,1.8 +20050707,19.8,18.1,26.7,16.7,2.9 +20050708,20.6,14.3,27.2,15.6,3.8 +20050709,20.9,14.2,29.4,13.9,1.3 +20050710,22.3,18.3,29.4,13.9,1.9 +20050711,22.2,20.1,27.2,17.8,3.2 +20050712,23.2,20.1,28.3,18.9,2.8 +20050713,22.1,19.2,27.8,18.0,2.2 +20050714,22.2,19.1,28.3,18.3,1.6 +20050715,23.6,20.2,28.3,20.0,2.3 +20050716,23.0,19.8,28.3,20.0,1.9 +20050717,24.0,20.2,30.6,20.0,2.0 +20050718,22.9,20.1,30.6,20.0,1.5 +20050719,23.6,20.2,30.0,20.0,1.8 +20050720,22.2,19.5,29.4,19.0,2.3 +20050721,23.9,20.2,30.0,19.0,2.0 +20050722,24.0,20.0,30.6,19.0,2.0 +20050723,25.2,18.8,31.1,19.4,3.1 +20050724,22.8,18.0,31.1,16.7,1.1 +20050725,25.2,19.1,33.3,16.7,1.9 +20050726,26.4,20.3,33.9,18.9,2.0 +20050727,25.9,21.0,33.9,20.0,1.8 +20050728,22.0,19.2,32.8,19.4,1.7 +20050729,20.7,18.9,27.8,18.9,0.9 +20050730,21.8,19.0,26.1,18.9,1.4 +20050731,21.6,19.4,26.1,18.9,0.7 +20050801,21.5,17.7,26.7,17.0,1.3 +20050802,21.5,16.6,28.9,16.0,1.6 +20050803,21.9,16.4,30.0,15.0,1.3 +20050804,22.2,17.6,30.6,15.0,1.4 +20050805,21.4,18.2,30.6,16.7,0.9 +20050806,21.9,18.1,28.9,17.2,1.2 +20050807,19.9,18.6,27.8,17.2,0.5 +20050808,20.0,18.1,23.3,18.0,0.5 +20050809,22.2,19.2,27.2,18.3,0.7 +20050810,22.6,19.6,27.2,19.4,1.6 +20050811,23.6,18.2,31.1,17.8,1.1 +20050812,23.1,17.7,31.1,16.7,0.9 +20050813,24.2,19.6,31.1,16.7,1.6 +20050814,22.9,18.7,30.6,18.3,3.5 +20050815,24.4,19.3,31.7,18.9,1.7 +20050816,23.4,19.2,31.7,18.3,0.9 +20050817,23.1,19.9,31.1,18.3,1.6 +20050818,22.3,20.4,29.4,19.4,1.2 +20050819,23.4,20.5,30.0,19.4,1.5 +20050820,24.5,20.6,31.1,18.9,1.4 +20050821,25.2,19.9,31.1,18.9,2.6 +20050822,22.8,19.2,31.1,18.3,1.7 +20050823,22.1,19.5,28.3,18.3,1.3 +20050824,21.8,18.7,27.2,18.9,1.1 +20050825,22.6,17.7,27.2,19.4,1.4 +20050826,21.4,17.2,25.6,18.0,1.4 +20050827,21.1,16.8,26.7,16.7,1.3 +20050828,22.7,19.1,28.3,16.7,1.1 +20050829,22.5,19.8,28.3,18.9,1.5 +20050830,23.3,20.8,26.7,19.4,5.8 +20050831,22.5,16.7,27.2,16.7,3.7 +20050901,21.2,14.7,26.7,14.0,3.3 +20050902,20.2,14.8,27.8,13.0,2.1 +20050903,21.4,13.5,27.8,13.3,2.8 +20050904,18.8,12.9,27.2,11.1,1.1 +20050905,18.7,13.6,26.7,11.1,0.8 +20050906,18.2,11.9,24.4,12.8,1.2 +20050907,18.2,12.4,26.7,10.6,1.0 +20050908,18.5,11.6,27.2,10.6,1.4 +20050909,19.0,13.0,27.2,10.6,0.7 +20050910,18.9,13.0,27.2,11.1,0.9 +20050911,19.0,14.0,27.2,11.1,0.8 +20050912,18.4,13.6,27.8,10.6,1.7 +20050913,19.7,13.7,28.9,10.6,2.3 +20050914,20.6,13.9,28.9,12.2,2.8 +20050915,21.2,15.1,30.0,13.9,1.5 +20050916,19.9,17.1,30.0,13.9,1.5 +20050917,20.6,17.1,28.3,15.6,1.4 +20050918,19.3,13.3,28.3,11.1,1.9 +20050919,19.7,13.6,28.9,11.1,1.0 +20050920,20.4,15.1,30.0,11.7,0.6 +20050921,21.1,16.0,30.0,13.9,1.0 +20050922,21.3,16.8,28.3,15.0,1.2 +20050923,21.1,16.1,28.9,15.0,0.8 +20050924,20.3,15.6,28.9,13.9,1.0 +20050925,21.9,17.3,28.3,13.9,3.4 +20050926,20.4,17.6,26.7,18.9,3.5 +20050927,21.0,15.7,26.7,16.7,2.8 +20050928,18.2,15.2,26.7,13.9,1.3 +20050929,19.1,16.4,25.0,13.9,3.3 +20050930,16.1,10.1,23.9,12.8,2.4 +20051001,16.9,11.8,26.1,11.0,1.1 +20051002,17.3,14.6,27.2,10.6,0.9 +20051003,18.4,14.3,25.6,14.4,0.8 +20051004,16.6,12.0,26.1,8.9,0.9 +20051005,18.2,14.4,25.6,8.9,1.4 +20051006,19.3,17.1,23.9,12.8,1.2 +20051007,19.1,17.7,22.0,17.8,1.0 +20051008,18.4,15.0,21.7,15.6,5.9 +20051009,16.3,13.1,21.0,13.0,3.2 +20051010,18.8,16.2,21.7,17.0,1.7 +20051011,19.0,15.9,25.0,16.7,1.6 +20051012,18.9,15.5,25.0,16.7,0.8 +20051013,19.1,14.6,25.0,15.6,2.4 +20051014,16.6,11.6,21.7,9.0,3.7 +20051015,16.8,9.1,23.9,12.0,4.1 +20051016,15.6,1.1,19.4,11.0,5.0 +20051017,12.4,2.7,21.1,6.1,3.3 +20051018,13.8,5.8,25.0,5.0,1.7 +20051019,16.3,11.2,26.1,8.9,0.7 +20051020,16.8,12.2,26.1,8.9,0.8 +20051021,16.4,12.1,26.1,8.9,2.1 +20051022,14.8,10.8,25.0,9.4,3.4 +20051023,10.4,3.4,18.3,4.0,2.8 +20051024,7.3,1.3,18.3,3.3,6.7 +20051025,6.2,-0.2,10.0,3.9,7.4 +20051026,7.3,-0.6,11.7,3.9,5.7 +20051027,4.6,-0.5,12.8,-2.2,1.1 +20051028,6.5,-0.1,13.3,-2.2,2.1 +20051029,5.6,-2.8,15.0,-2.2,2.1 +20051030,7.4,-2.3,21.1,-2.8,1.3 +20051031,8.2,0.1,21.1,-2.8,1.1 +20051101,8.5,3.3,21.1,-1.7,1.6 +20051102,12.4,2.8,19.4,0.6,3.6 +20051103,8.1,-0.3,20.6,-1.7,1.6 +20051104,10.4,3.2,22.8,0.0,1.6 +20051105,13.7,8.6,23.3,0.0,1.7 +20051106,16.0,11.3,23.9,6.7,2.7 +20051107,14.1,6.7,23.9,4.4,1.2 +20051108,12.2,5.1,24.4,2.8,0.5 +20051109,14.6,8.8,25.6,2.8,1.0 +20051110,12.9,1.1,25.6,5.6,5.0 +20051111,6.9,-7.9,18.3,-1.1,2.8 +20051112,6.7,-5.3,17.8,-2.2,1.8 +20051113,10.2,2.9,19.4,-2.2,2.1 +20051114,15.5,10.8,23.0,10.0,1.9 +20051115,16.8,12.9,23.3,9.4,3.6 +20051116,14.5,12.3,20.0,5.0,5.9 +20051117,2.0,-6.5,5.0,-2.0,6.9 +20051118,0.9,-13.4,9.4,-5.6,4.1 +20051119,1.1,-9.0,11.7,-7.0,1.3 +20051120,6.4,-2.0,11.1,2.8,1.1 +20051121,9.0,7.8,11.1,1.7,1.5 +20051122,3.9,-0.4,11.1,0.6,9.0 +20051123,1.9,-6.9,7.2,-2.8,5.8 +20051124,10.6,-2.2,17.0,5.6,3.3 +20051125,3.5,-9.4,16.7,-2.8,4.7 +20051126,2.2,-4.6,11.7,-4.4,1.6 +20051127,4.7,0.4,11.7,-4.4,2.2 +20051128,9.1,8.1,16.0,6.0,3.4 +20051129,15.9,11.2,17.8,6.1,5.4 +20051130,5.3,-2.8,17.8,0.6,5.6 +20051201,2.5,-3.5,11.1,-3.3,1.9 +20051202,2.0,-9.1,11.1,-3.3,5.3 +20051203,0.2,-7.4,6.1,-3.3,2.2 +20051204,9.7,4.9,18.9,-3.3,3.7 +20051205,6.8,5.5,10.0,3.0,3.0 +20051206,0.7,-4.9,5.6,-4.0,5.0 +20051207,-0.6,-7.7,7.8,-6.7,2.0 +20051208,0.1,-5.0,7.8,-6.7,2.2 +20051209,0.6,-4.1,2.8,-2.2,5.9 +20051210,-0.7,-6.6,8.3,-8.0,2.7 +20051211,2.0,-5.7,8.9,-7.8,3.3 +20051212,2.1,-4.3,9.4,-3.9,2.3 +20051213,0.9,-5.6,9.4,-3.9,4.4 +20051214,-2.2,-8.3,4.4,-3.9,2.6 +20051215,-1.2,-4.1,1.0,-3.0,2.9 +20051216,1.3,-3.3,6.1,-3.9,2.9 +20051217,1.6,-5.6,6.1,-3.9,3.2 +20051218,3.2,-3.6,11.1,-1.7,1.0 +20051219,0.8,-4.9,11.1,-4.4,2.8 +20051220,-1.2,-9.0,5.6,-5.6,5.6 +20051221,-1.7,-13.4,5.0,-7.2,4.4 +20051222,-0.5,-11.4,10.0,-7.8,3.0 +20051223,-0.3,-9.9,13.9,-9.4,0.9 +20051224,0.7,-8.9,15.0,-9.4,1.6 +20051225,5.6,2.6,9.4,3.0,3.3 +20051226,3.7,-0.6,9.4,0.6,5.9 +20051227,3.6,-3.3,14.4,-1.1,3.9 +20051228,6.1,2.8,14.4,-1.1,2.7 +20051229,5.6,3.3,11.1,0.0,3.9 +20051230,4.4,-0.3,12.8,1.0,3.7 +20051231,5.8,-1.2,13.3,-0.6,2.6 +20060101,4.6,-5.8,16.0,-3.0,2.1 +20060102,7.6,4.2,15.6,-3.3,2.1 +20060103,7.6,5.6,9.4,5.0,3.7 +20060104,5.3,1.9,15.0,-1.0,2.3 +20060105,5.7,2.0,15.0,-0.6,5.0 +20060106,1.6,-4.3,8.3,0.6,8.2 +20060107,-0.7,-7.9,6.0,-4.0,3.8 +20060108,2.2,-5.1,17.0,-6.0,2.0 +20060109,10.2,3.3,20.0,1.0,2.8 +20060110,9.4,5.8,20.0,0.0,1.1 +20060111,12.9,8.8,18.0,11.0,3.8 +20060112,6.2,-0.1,18.3,-1.1,1.1 +20060113,9.1,4.4,18.3,-1.1,3.4 +20060114,2.8,-3.1,16.1,-1.1,9.5 +20060115,1.8,-11.4,9.0,-2.2,9.6 +20060116,5.3,-5.7,14.0,-1.0,1.2 +20060117,9.3,6.7,12.0,8.0,4.2 +20060118,5.4,-2.4,12.2,-2.0,4.3 +20060119,3.6,-5.6,16.0,-3.0,1.7 +20060120,7.0,-3.3,16.1,-3.3,2.1 +20060121,9.7,6.5,16.1,-2.2,2.7 +20060122,7.8,5.4,11.0,3.0,2.6 +20060123,6.4,5.2,13.3,1.7,2.8 +20060124,9.5,3.1,13.9,1.7,4.6 +20060125,6.1,-9.7,9.0,2.0,8.7 +20060126,0.7,-9.1,8.9,-2.2,7.6 +20060127,0.6,-7.7,9.0,-6.1,2.1 +20060128,3.5,-6.4,16.0,-4.0,2.3 +20060129,10.2,5.1,14.0,6.0,4.8 +20060130,6.7,1.1,15.6,-1.1,1.6 +20060131,4.1,-1.3,15.6,-1.1,7.7 +20060201,1.9,-4.0,10.0,-4.0,2.3 +20060202,3.0,-1.8,10.6,-4.4,1.7 +20060203,9.3,4.7,18.3,-2.7,2.3 +20060204,8.0,4.8,13.0,2.0,4.1 +20060205,-0.3,-7.3,3.0,-3.0,4.9 +20060206,-0.4,-8.8,6.0,-4.0,3.7 +20060207,2.2,-9.3,7.0,-2.0,5.0 +20060208,0.9,-11.7,7.8,-1.7,3.4 +20060209,-0.2,-6.6,6.1,-2.2,4.8 +20060210,-0.9,-8.8,9.4,-7.8,2.0 +20060211,2.0,-1.9,9.4,-7.7,2.4 +20060212,-1.7,-5.9,4.4,-3.9,6.4 +20060213,-2.8,-7.8,2.0,-6.0,3.3 +20060214,1.7,-8.9,13.9,-6.1,3.6 +20060215,5.4,-4.6,14.0,-4.0,2.3 +20060216,7.5,0.2,17.2,-4.3,2.6 +20060217,11.8,3.1,14.4,8.0,4.6 +20060218,2.1,-1.9,15.0,-2.2,6.5 +20060219,-3.3,-7.3,2.0,-7.0,3.8 +20060220,2.9,-2.4,10.0,0.0,3.0 +20060221,5.3,-1.9,13.0,2.0,4.9 +20060222,7.4,0.8,15.0,3.0,1.6 +20060223,8.9,1.9,15.6,3.3,4.4 +20060224,7.0,-9.2,13.0,3.0,3.0 +20060225,4.6,-4.0,13.9,-2.2,1.1 +20060226,3.2,-9.3,11.1,-2.2,7.5 +20060227,1.0,-15.6,12.0,-7.0,2.9 +20060228,9.1,-3.9,18.0,-1.0,2.1 +20060301,13.3,2.4,24.0,5.0,1.6 +20060302,15.3,6.6,24.4,5.0,2.5 +20060303,6.9,-4.3,17.8,2.0,6.8 +20060304,2.9,-10.4,11.1,-3.3,4.9 +20060305,5.2,-11.2,16.0,-3.0,2.6 +20060306,8.3,0.3,16.7,-3.2,4.2 +20060307,5.7,-3.9,13.3,1.7,6.9 +20060308,6.1,-3.9,17.2,-2.2,2.2 +20060309,12.4,-0.2,17.0,9.0,5.9 +20060310,15.4,5.6,23.3,6.7,4.2 +20060311,13.0,4.6,23.9,6.7,1.7 +20060312,16.2,10.9,24.4,6.7,1.4 +20060313,17.3,11.2,25.6,8.9,3.3 +20060314,12.9,3.6,18.0,8.0,7.4 +20060315,7.2,-9.9,17.8,1.7,7.2 +20060316,8.2,-3.8,15.6,0.6,2.6 +20060317,10.6,-0.6,16.1,2.8,4.3 +20060318,6.8,-5.1,12.0,1.0,5.4 +20060319,6.6,-11.7,12.2,1.1,4.8 +20060320,3.1,-5.9,12.2,0.0,1.9 +20060321,3.5,1.9,8.3,0.0,2.7 +20060322,3.1,-3.7,8.0,-2.0,6.5 +20060323,2.9,-6.2,11.1,-4.4,2.8 +20060324,2.6,-0.3,11.1,-4.3,3.0 +20060325,1.4,-3.3,4.0,-2.0,5.4 +20060326,1.9,-5.1,7.8,-1.7,6.6 +20060327,3.6,-5.2,13.9,-5.0,1.4 +20060328,9.6,-0.2,16.0,4.0,3.0 +20060329,9.3,3.1,19.0,0.6,1.2 +20060330,10.9,4.3,19.4,0.6,2.0 +20060331,14.8,8.7,22.0,9.0,3.2 +20060401,17.9,8.8,26.1,11.7,2.9 +20060402,15.4,3.9,26.1,3.9,1.3 +20060403,16.9,8.4,23.9,3.9,4.0 +20060404,9.9,-1.7,16.0,4.0,7.1 +20060405,11.0,-6.7,18.3,4.4,5.3 +20060406,11.4,-4.6,21.0,2.0,2.2 +20060407,18.9,2.3,27.2,14.0,3.1 +20060408,15.8,9.8,27.8,11.7,4.7 +20060409,8.6,-2.1,17.0,2.0,6.2 +20060410,9.6,-1.7,20.0,-1.0,2.1 +20060411,12.0,0.9,22.2,-0.5,1.7 +20060412,13.2,3.0,22.2,1.1,1.7 +20060413,15.9,7.0,26.0,7.0,2.3 +20060414,17.9,6.9,30.0,5.0,1.9 +20060415,21.8,6.8,30.0,8.3,3.1 +20060416,20.9,7.8,30.6,10.0,2.5 +20060417,20.7,9.1,30.6,10.0,3.5 +20060418,16.2,7.6,29.4,10.0,3.7 +20060419,15.4,9.9,23.3,10.0,2.7 +20060420,16.0,11.7,23.0,9.0,1.4 +20060421,15.7,13.2,23.9,9.4,1.8 +20060422,16.3,12.9,21.1,12.2,2.7 +20060423,14.4,7.4,24.4,5.6,1.5 +20060424,17.7,8.3,27.2,5.6,1.8 +20060425,17.7,10.9,27.2,8.3,1.3 +20060426,15.4,12.9,25.6,10.0,2.3 +20060427,13.8,7.9,18.3,10.0,4.8 +20060428,12.6,1.7,22.2,3.3,1.6 +20060429,12.0,3.8,22.2,3.3,1.7 +20060430,11.6,4.1,15.0,6.7,2.5 +20060501,13.1,2.8,22.0,9.0,1.6 +20060502,13.8,5.1,24.0,4.0,2.1 +20060503,17.8,8.6,24.4,4.4,3.4 +20060504,16.1,8.8,25.6,7.2,1.4 +20060505,17.2,14.0,25.6,7.2,2.2 +20060506,16.2,10.7,22.8,11.7,4.5 +20060507,13.3,9.8,22.2,10.0,1.7 +20060508,10.8,7.9,16.0,8.0,1.9 +20060509,12.3,9.2,17.2,8.3,3.0 +20060510,13.0,10.6,17.2,10.0,2.6 +20060511,16.7,10.8,23.3,12.2,3.9 +20060512,12.3,3.1,21.7,5.6,2.5 +20060513,11.6,3.6,21.0,3.0,1.6 +20060514,14.3,8.0,21.7,2.8,2.5 +20060515,11.7,4.3,20.6,5.0,3.2 +20060516,10.8,4.9,18.3,4.4,3.1 +20060517,12.1,6.9,18.0,4.0,2.8 +20060518,11.8,6.8,21.7,3.9,2.5 +20060519,12.9,3.9,22.8,3.9,2.9 +20060520,17.3,12.5,25.6,11.1,2.1 +20060521,19.2,14.7,26.1,13.9,3.1 +20060522,17.1,13.5,21.7,13.0,2.1 +20060523,16.8,8.0,25.0,10.0,2.6 +20060524,17.5,4.7,28.0,7.0,2.1 +20060525,17.2,11.4,27.8,6.7,1.9 +20060526,20.9,14.5,29.4,9.4,2.6 +20060527,22.4,14.3,28.0,14.0,2.7 +20060528,21.5,14.3,29.0,13.0,1.3 +20060529,22.7,16.2,30.0,13.3,1.4 +20060530,23.0,16.2,31.1,14.4,1.3 +20060531,21.4,15.6,31.1,15.0,2.9 +20060601,20.6,16.3,28.0,16.0,2.1 +20060602,20.7,16.9,29.4,16.1,1.6 +20060603,19.1,12.4,27.8,15.6,5.2 +20060604,16.4,10.2,24.0,9.0,1.7 +20060605,15.8,8.8,25.0,9.4,5.0 +20060606,17.1,7.3,25.0,10.0,4.4 +20060607,17.6,9.2,25.6,8.3,1.2 +20060608,19.6,12.2,27.2,8.3,3.2 +20060609,20.9,12.6,27.2,12.2,4.8 +20060610,22.2,13.3,31.1,13.9,1.6 +20060611,22.9,16.2,31.1,13.9,1.5 +20060612,21.6,16.7,30.6,16.1,2.9 +20060613,18.9,14.6,25.0,16.0,2.4 +20060614,20.3,13.8,27.2,16.1,4.1 +20060615,20.9,11.3,27.2,13.9,4.1 +20060616,19.6,11.2,27.8,10.6,2.3 +20060617,20.6,13.2,28.3,10.6,2.0 +20060618,20.6,13.2,27.2,12.0,2.0 +20060619,20.4,13.9,27.8,12.2,1.3 +20060620,22.5,15.7,31.0,14.0,2.5 +20060621,23.5,13.6,32.2,14.4,2.4 +20060622,23.3,16.4,32.8,16.7,1.9 +20060623,22.2,18.2,32.8,16.7,1.9 +20060624,21.3,17.6,29.4,17.8,1.9 +20060625,20.9,18.2,28.9,17.8,1.1 +20060626,19.6,17.7,26.7,17.8,1.2 +20060627,22.1,17.4,27.8,18.3,2.5 +20060628,20.7,14.0,28.9,13.9,1.5 +20060629,21.0,13.9,28.0,13.0,2.3 +20060630,21.4,12.9,28.3,13.3,2.6 +20060701,20.7,13.5,30.0,12.8,1.5 +20060702,22.8,15.7,31.7,12.8,1.6 +20060703,22.8,16.2,31.7,15.0,1.4 +20060704,22.8,17.6,31.1,15.6,0.9 +20060705,21.2,18.6,30.6,17.2,1.2 +20060706,20.8,17.2,26.0,18.0,3.2 +20060707,18.9,12.4,26.1,13.9,2.5 +20060708,19.5,13.1,25.6,13.9,1.2 +20060709,19.3,15.1,25.6,13.9,1.4 +20060710,21.9,16.3,29.4,13.9,1.0 +20060711,21.3,18.2,29.4,16.1,0.7 +20060712,23.0,18.8,30.0,17.8,1.5 +20060713,23.2,18.9,31.1,18.3,1.8 +20060714,22.6,19.8,31.1,18.9,1.2 +20060715,22.8,19.8,29.0,19.0,1.7 +20060716,24.7,19.1,30.0,19.4,2.2 +20060717,22.4,16.2,29.0,14.0,0.9 +20060718,23.7,16.7,31.7,14.4,1.0 +20060719,23.1,17.3,31.7,16.1,0.9 +20060720,24.1,17.8,30.6,18.9,1.4 +20060721,22.8,18.4,30.6,18.9,0.9 +20060722,23.3,18.7,30.6,18.9,2.4 +20060723,-999.0,-999.0,-999.0,-999.0,-999.0 +20060724,-999.0,-999.0,-999.0,-999.0,-999.0 +20060725,20.2,18.7,22.0,19.0,0.9 +20060726,-999.0,-999.0,-999.0,-999.0,-999.0 +20060727,-999.0,-999.0,-999.0,-999.0,-999.0 +20060728,-999.0,-999.0,-999.0,-999.0,-999.0 +20060729,-999.0,-999.0,-999.0,-999.0,-999.0 +20060730,26.6,17.4,29.0,21.0,4.2 +20060731,-999.0,-999.0,-999.0,-999.0,-999.0 +20060801,29.5,18.0,33.0,23.0,2.8 +20060802,25.3,19.3,32.0,20.0,1.7 +20060803,25.2,20.4,31.0,21.0,1.7 +20060804,25.9,19.1,33.3,20.0,2.7 +20060805,23.1,19.1,33.3,18.9,1.4 +20060806,24.4,19.1,30.6,18.9,1.5 +20060807,24.9,20.1,32.2,20.0,2.0 +20060808,24.5,19.3,32.8,18.9,2.1 +20060809,23.8,18.4,32.8,17.8,1.6 +20060810,25.2,20.2,32.2,17.8,1.8 +20060811,22.8,18.2,32.2,18.9,3.3 +20060812,19.3,17.2,28.9,16.7,1.4 +20060813,19.5,15.2,26.1,15.6,1.6 +20060814,21.8,17.4,28.9,15.6,1.6 +20060815,22.4,18.9,28.9,16.7,1.0 +20060816,22.9,19.7,27.8,17.8,1.7 +20060817,22.0,18.0,27.2,17.8,1.0 +20060818,21.4,16.5,27.0,14.0,1.2 +20060819,22.2,18.1,30.0,14.4,0.9 +20060820,21.1,19.3,30.0,17.2,1.3 +20060821,21.8,18.2,27.0,17.0,1.2 +20060822,23.1,18.8,28.3,17.2,2.2 +20060823,21.9,17.9,28.3,17.8,1.7 +20060824,22.1,18.5,27.2,17.8,1.4 +20060825,22.1,17.9,28.0,18.0,1.9 +20060826,21.1,15.3,28.9,15.0,1.0 +20060827,21.1,16.7,28.9,15.0,1.1 +20060828,21.9,17.6,30.0,15.0,0.9 +20060829,24.6,19.9,31.7,16.1,2.4 +20060830,21.9,19.3,31.7,18.9,1.3 +20060831,21.7,19.1,28.3,18.9,1.4 +20060901,20.4,17.6,24.4,17.8,1.8 +20060902,19.7,17.3,24.0,17.0,1.5 +20060903,20.2,17.6,26.1,16.7,1.1 +20060904,21.1,18.9,26.1,17.2,1.7 +20060905,19.3,17.3,21.7,17.0,1.9 +20060906,19.2,14.8,25.0,15.6,2.5 +20060907,18.4,15.9,25.0,15.6,0.9 +20060908,19.4,16.1,24.4,16.1,1.2 +20060909,18.5,14.9,26.0,13.0,1.0 +20060910,19.4,15.6,26.1,13.3,0.9 +20060911,18.6,15.4,23.0,14.0,1.4 +20060912,17.2,14.7,22.8,14.4,2.3 +20060913,15.9,14.2,18.9,15.0,2.5 +20060914,17.6,12.9,22.2,13.9,3.1 +20060915,16.8,11.1,24.0,11.0,2.7 +20060916,17.1,12.3,26.0,11.0,2.0 +20060917,17.5,12.9,26.0,12.0,0.7 +20060918,18.4,14.8,27.2,12.2,1.7 +20060919,20.4,15.9,27.2,12.2,3.0 +20060920,15.1,7.6,22.8,11.1,5.3 +20060921,11.6,7.3,18.9,5.6,2.3 +20060922,14.9,12.8,18.9,5.6,2.2 +20060923,20.8,17.2,27.0,17.8,3.3 +20060924,20.1,17.6,26.7,16.7,2.2 +20060925,17.0,11.9,21.0,13.0,3.8 +20060926,14.9,10.2,19.0,11.0,2.4 +20060927,15.7,11.4,22.0,11.0,1.8 +20060928,13.9,10.8,23.0,8.0,1.7 +20060929,11.2,5.8,16.1,7.0,4.8 +20060930,11.2,6.8,21.1,5.0,1.0 +20061001,16.5,10.5,23.3,6.7,3.2 +20061002,14.6,9.6,23.0,6.0,1.7 +20061003,15.6,11.6,25.0,6.1,0.8 +20061004,17.1,12.1,26.1,10.0,1.8 +20061005,17.9,13.4,27.2,10.6,1.6 +20061006,17.3,12.9,27.2,11.1,5.0 +20061007,11.4,6.3,18.9,7.8,5.5 +20061008,13.1,10.2,17.2,7.8,3.4 +20061009,16.9,10.7,23.9,10.6,1.9 +20061010,14.9,9.9,24.4,7.8,1.1 +20061011,15.4,12.1,24.4,7.8,2.0 +20061012,14.1,8.3,21.7,10.6,3.1 +20061013,7.7,-2.7,13.0,2.0,4.2 +20061014,7.3,-5.2,16.0,1.0,3.5 +20061015,7.5,-2.9,18.3,-1.1,2.1 +20061016,9.7,3.4,18.3,-1.0,1.9 +20061017,11.7,10.3,16.0,8.9,3.5 +20061018,17.2,14.4,24.0,13.9,1.8 +20061019,16.3,14.4,20.0,13.0,0.5 +20061020,14.0,9.8,20.6,8.9,4.0 +20061021,8.2,3.9,16.7,2.8,2.7 +20061022,10.7,6.1,20.6,2.8,1.9 +20061023,5.8,-2.8,20.6,2.8,6.8 +20061024,2.7,-5.4,7.2,-1.1,4.7 +20061025,3.5,-5.6,13.0,-2.0,3.2 +20061026,8.6,-0.3,16.0,5.0,1.9 +20061027,9.1,5.2,15.6,5.0,3.0 +20061028,12.0,6.1,14.0,10.0,5.5 +20061029,10.4,-2.3,20.0,1.0,2.6 +20061030,10.1,2.2,22.0,1.0,1.1 +20061031,11.7,4.3,21.7,0.6,1.3 +20061101,13.1,7.6,22.0,6.0,1.3 +20061102,10.2,4.3,22.2,5.0,6.5 +20061103,2.9,-10.2,13.9,-1.1,6.4 +20061104,1.4,-8.4,10.0,-6.1,1.6 +20061105,2.3,-5.8,12.0,-5.0,1.3 +20061106,3.8,-3.8,13.0,-4.0,1.5 +20061107,7.9,3.9,10.0,6.0,1.5 +20061108,11.1,8.3,15.0,6.0,3.4 +20061109,13.4,5.8,21.1,6.1,5.1 +20061110,12.3,4.7,25.0,3.0,1.1 +20061111,13.2,8.3,25.0,3.3,2.4 +20061112,5.6,1.3,10.0,3.9,9.6 +20061113,6.6,-1.2,20.0,-2.2,4.1 +20061114,9.2,-0.8,20.0,-1.6,2.7 +20061115,8.2,4.5,17.8,0.6,2.0 +20061116,11.3,7.8,14.4,6.1,6.0 +20061117,5.6,0.2,14.4,3.9,5.1 +20061118,5.5,-1.7,13.0,-1.0,2.5 +20061119,3.8,-0.5,13.3,-1.7,3.3 +20061120,2.5,-3.6,8.9,-1.6,5.6 +20061121,1.2,-5.9,6.0,-2.2,7.2 +20061122,6.2,-2.6,13.0,2.0,8.4 +20061123,9.4,-3.2,16.7,2.2,7.9 +20061124,9.1,-2.0,19.4,-1.1,2.2 +20061125,6.9,-2.1,19.4,-2.2,0.6 +20061126,7.1,-1.4,20.0,-2.2,0.5 +20061127,6.6,-0.9,20.6,-2.8,0.7 +20061128,9.2,3.3,18.9,-2.7,0.7 +20061129,12.0,9.6,18.3,5.0,1.2 +20061130,16.0,14.6,17.0,14.0,3.1 +20061201,16.9,10.2,20.0,6.0,6.5 +20061202,4.3,-5.6,13.0,-1.0,5.7 +20061203,6.4,-3.4,13.3,-1.0,1.2 +20061204,1.2,-10.0,11.1,-4.4,6.5 +20061205,1.0,-11.9,8.9,-3.9,4.3 +20061206,2.1,-6.6,12.0,-4.0,2.3 +20061207,4.8,-6.2,12.8,-4.9,4.8 +20061208,-6.0,-17.4,7.8,-10.0,8.0 +20061209,-3.1,-15.4,8.0,-10.0,1.9 +20061210,0.6,-11.4,12.0,-6.1,0.9 +20061211,4.7,-8.2,16.7,-6.7,1.5 +20061212,3.4,-6.1,16.7,-4.4,1.5 +20061213,9.9,3.3,17.0,4.0,1.5 +20061214,5.1,0.2,16.7,-2.2,0.3 +20061215,7.6,0.2,18.3,-2.2,2.0 +20061216,9.1,-0.7,21.1,-2.1,0.9 +20061217,7.4,-0.2,21.1,-2.2,1.4 +20061218,8.3,0.6,20.6,-1.6,1.6 +20061219,7.8,3.2,20.0,-0.6,2.4 +20061220,6.2,2.1,16.7,0.0,2.1 +20061221,6.9,3.2,10.0,1.1,1.2 +20061222,10.8,9.9,13.3,4.4,2.7 +20061223,11.7,8.0,14.0,8.0,3.7 +20061224,6.9,0.1,15.0,1.7,4.0 +20061225,6.5,2.7,15.0,2.2,2.5 +20061226,5.7,2.4,10.0,1.7,4.4 +20061227,2.5,-4.1,8.3,-1.1,4.3 +20061228,2.2,-4.2,12.0,-4.0,1.3 +20061229,3.7,-3.9,15.0,-4.0,0.8 +20061230,5.1,1.7,15.6,-3.8,0.4 +20061231,9.4,8.3,12.0,8.9,2.8 +20070101,12.7,8.8,17.0,6.0,3.7 +20070102,4.6,-3.1,17.8,0.0,6.9 +20070103,2.8,-2.1,13.0,-5.0,1.5 +20070104,8.6,4.9,17.2,-4.9,2.8 +20070105,14.3,12.7,17.2,12.0,3.2 +20070106,12.4,8.4,19.0,7.0,2.2 +20070107,8.4,6.9,12.8,3.0,1.4 +20070108,8.2,1.7,12.2,2.2,4.8 +20070109,-0.2,-5.9,12.2,-5.0,3.4 +20070110,-0.3,-9.9,5.6,-5.0,5.4 +20070111,-0.3,-9.7,7.2,-6.1,2.2 +20070112,7.8,-0.1,13.0,4.0,3.2 +20070113,12.2,7.1,18.3,5.0,2.0 +20070114,11.4,7.1,18.9,3.9,1.7 +20070115,14.9,9.6,18.0,13.0,5.0 +20070116,7.2,3.9,18.9,-1.1,5.7 +20070117,-1.4,-9.3,3.0,-4.0,5.1 +20070118,-0.8,-6.9,2.8,-3.9,2.2 +20070119,3.4,-2.3,6.1,-2.2,5.0 +20070120,0.9,-11.3,7.0,-3.0,6.8 +20070121,1.4,-6.6,6.7,-2.2,2.6 +20070122,3.6,1.9,7.0,0.6,3.2 +20070123,1.6,-2.7,5.0,-1.0,5.5 +20070124,1.0,-5.3,7.2,-2.2,4.9 +20070125,0.7,-6.4,7.2,-2.2,5.5 +20070126,0.0,-11.3,9.4,-6.7,5.0 +20070127,2.9,-8.1,15.6,-6.7,2.9 +20070128,3.9,-5.3,15.6,-6.0,4.8 +20070129,-6.9,-15.8,1.0,-13.0,5.6 +20070130,-1.4,-11.7,8.9,-12.2,2.1 +20070131,-3.2,-14.6,8.9,-10.0,4.5 +20070201,-0.8,-7.3,3.3,-10.0,3.2 +20070202,2.4,0.6,7.0,0.0,2.2 +20070203,-2.2,-12.0,7.8,-7.2,4.1 +20070204,-1.4,-12.4,4.4,-7.2,2.6 +20070205,-3.8,-17.1,4.4,-7.2,5.0 +20070206,-3.7,-16.4,6.0,-9.0,3.7 +20070207,7.2,-3.5,11.0,2.0,5.5 +20070208,0.8,-10.8,11.1,-2.8,6.4 +20070209,-0.8,-18.2,6.7,-5.0,6.3 +20070210,-1.9,-17.3,3.0,-7.0,5.6 +20070211,-0.2,-15.7,10.0,-8.9,2.6 +20070212,4.3,-7.4,17.8,-8.3,1.8 +20070213,7.4,0.4,17.8,-4.9,2.7 +20070214,1.8,-1.1,9.4,-5.0,5.4 +20070215,-4.9,-13.8,5.0,-8.3,7.7 +20070216,-4.1,-15.4,1.0,-9.0,6.3 +20070217,-3.4,-12.3,5.0,-10.0,2.4 +20070218,-1.3,-9.7,5.0,-9.9,6.8 +20070219,0.3,-9.3,11.0,-7.0,4.7 +20070220,6.5,-3.6,13.3,-6.6,2.6 +20070221,11.8,7.0,17.0,8.0,3.0 +20070222,10.1,-0.3,18.3,2.8,5.4 +20070223,6.2,-13.3,17.8,0.6,9.4 +20070224,4.3,-10.9,13.3,-5.0,2.8 +20070225,7.1,0.4,11.0,4.0,4.2 +20070226,6.8,-0.2,14.4,0.6,2.8 +20070227,6.9,-6.9,16.0,-1.0,2.9 +20070228,6.7,-4.1,17.0,-3.0,2.3 +20070301,7.7,0.9,16.7,-2.7,2.4 +20070302,9.8,-1.1,13.9,3.3,4.6 +20070303,7.4,-9.7,14.4,-1.0,3.2 +20070304,1.0,-8.4,10.0,-4.0,6.5 +20070305,3.5,-10.4,14.0,-2.0,6.1 +20070306,8.8,-6.2,14.0,4.0,5.4 +20070307,8.5,-4.7,20.0,-0.6,2.3 +20070308,9.4,-2.7,20.0,-1.1,1.9 +20070309,7.6,-0.3,18.3,-1.0,2.5 +20070310,9.3,1.9,18.0,2.8,2.2 +20070311,13.7,2.5,18.9,2.8,2.6 +20070312,9.9,-3.7,19.0,1.0,1.1 +20070313,11.6,0.8,23.0,1.0,0.9 +20070314,16.0,6.2,24.0,9.0,1.9 +20070315,14.8,7.8,23.9,6.7,2.5 +20070316,11.3,9.5,17.2,3.0,3.3 +20070317,0.9,-8.1,5.0,-2.0,8.8 +20070318,1.6,-11.4,8.0,-3.3,3.2 +20070319,5.9,-5.9,17.2,-5.0,3.2 +20070320,12.9,6.0,22.0,5.6,2.4 +20070321,12.4,9.7,21.7,5.6,1.8 +20070322,14.9,7.7,21.1,9.4,3.6 +20070323,14.7,7.3,25.0,4.4,1.4 +20070324,16.4,8.1,26.0,8.0,1.6 +20070325,18.4,8.0,27.2,7.2,1.6 +20070326,18.2,9.5,27.2,7.8,2.7 +20070327,18.2,11.4,25.6,10.6,2.1 +20070328,18.0,10.9,26.1,10.0,1.1 +20070329,13.9,10.8,18.3,8.0,2.5 +20070330,10.8,6.9,18.9,7.8,2.3 +20070331,15.0,9.2,23.0,9.0,2.5 +20070401,16.7,12.8,23.9,8.9,3.3 +20070402,17.4,11.1,25.0,11.1,2.1 +20070403,16.0,6.8,26.0,7.0,2.0 +20070404,16.1,7.7,25.6,6.7,5.0 +20070405,6.0,-6.0,12.2,0.6,7.6 +20070406,3.5,-7.3,10.0,-1.0,6.0 +20070407,-1.2,-9.2,10.0,-6.7,5.8 +20070408,0.8,-12.1,8.9,-6.7,3.9 +20070409,3.9,-8.7,11.1,-5.5,2.4 +20070410,4.9,-6.3,13.9,-3.9,1.6 +20070411,7.8,1.4,11.1,6.0,3.2 +20070412,11.5,1.4,19.4,3.3,3.3 +20070413,9.4,-3.7,19.4,2.2,6.3 +20070414,12.0,-0.2,20.0,2.2,3.1 +20070415,11.3,8.5,15.0,3.0,6.2 +20070416,8.4,-4.9,15.0,3.0,14.3 +20070417,12.9,-7.4,19.4,5.0,11.9 +20070418,13.1,-0.7,20.0,7.2,2.8 +20070419,10.9,7.4,20.0,5.6,2.3 +20070420,11.4,3.2,18.9,5.6,2.5 +20070421,13.1,3.5,22.0,3.0,1.4 +20070422,14.8,2.3,24.0,4.0,1.7 +20070423,15.2,3.3,25.0,3.3,2.3 +20070424,17.1,8.4,25.0,3.9,1.5 +20070425,18.4,9.6,27.2,8.9,2.6 +20070426,18.1,11.4,27.2,10.0,3.3 +20070427,17.8,10.4,22.8,11.1,3.3 +20070428,14.3,5.5,22.8,9.4,5.1 +20070429,15.7,4.0,23.3,6.7,3.3 +20070430,17.9,3.4,28.3,5.6,2.1 +20070501,19.8,5.8,30.0,8.0,2.1 +20070502,19.1,7.6,30.0,8.3,0.8 +20070503,19.6,13.6,28.9,10.0,2.0 +20070504,13.9,12.3,16.1,12.0,2.8 +20070505,12.6,11.4,16.7,10.6,2.8 +20070506,16.0,12.3,22.2,10.6,1.7 +20070507,12.7,-1.2,21.0,2.0,2.3 +20070508,15.0,3.5,24.0,3.0,1.7 +20070509,18.7,11.1,24.4,7.8,2.6 +20070510,19.1,12.8,27.2,11.7,1.5 +20070511,19.9,14.6,27.8,11.7,1.7 +20070512,19.2,15.2,27.8,14.4,1.8 +20070513,20.4,10.6,26.1,13.3,3.9 +20070514,17.3,8.5,26.7,10.0,2.9 +20070515,17.8,8.8,26.7,10.0,2.3 +20070516,18.2,12.2,26.7,10.0,2.9 +20070517,14.8,5.4,21.0,9.0,4.5 +20070518,12.9,2.1,21.1,8.9,6.5 +20070519,12.9,-0.3,22.0,6.0,3.5 +20070520,16.2,0.1,26.0,7.0,3.3 +20070521,16.7,0.7,27.8,4.4,1.6 +20070522,18.1,6.4,27.8,4.4,1.5 +20070523,18.3,10.9,27.8,6.7,1.6 +20070524,19.1,11.9,25.6,11.1,2.2 +20070525,18.2,10.6,26.0,9.0,1.2 +20070526,20.4,11.2,28.0,12.0,1.7 +20070527,20.0,11.2,28.3,11.7,1.3 +20070528,20.4,11.8,28.9,11.7,1.8 +20070529,19.8,10.6,29.0,10.0,1.6 +20070530,20.2,8.4,29.4,9.4,1.3 +20070531,20.2,11.1,29.4,9.4,0.8 +20070601,21.4,13.5,29.4,15.0,2.1 +20070602,18.9,14.6,28.9,14.4,1.6 +20070603,18.7,13.6,24.4,14.4,4.0 +20070604,20.9,12.4,28.3,13.9,2.5 +20070605,21.4,9.8,29.4,13.3,3.1 +20070606,20.8,11.4,28.0,13.0,2.7 +20070607,22.0,12.4,31.0,12.0,2.5 +20070608,24.7,17.0,31.7,17.8,2.7 +20070609,22.4,15.2,31.7,16.1,4.9 +20070610,22.8,12.1,31.1,16.1,2.6 +20070611,21.4,14.2,31.1,16.7,1.5 +20070612,19.4,14.8,26.0,14.0,1.9 +20070613,18.1,13.3,26.0,14.0,2.0 +20070614,18.1,13.4,24.0,13.0,2.0 +20070615,18.1,14.7,25.6,13.3,2.3 +20070616,20.2,15.9,26.7,15.0,1.9 +20070617,21.5,13.8,29.0,13.0,1.2 +20070618,21.6,14.1,31.0,13.0,0.9 +20070619,22.0,16.8,31.7,13.3,1.7 +20070620,22.6,14.1,30.0,17.2,5.5 +20070621,20.8,7.7,30.0,11.1,2.5 +20070622,21.1,8.8,29.0,11.0,2.5 +20070623,22.5,12.9,31.0,14.0,2.0 +20070624,21.7,17.5,30.6,14.4,2.0 +20070625,22.1,17.4,28.9,17.2,1.4 +20070626,20.9,16.9,29.4,17.2,1.2 +20070627,22.4,17.2,30.0,16.1,1.1 +20070628,22.6,17.9,30.0,16.1,1.0 +20070629,23.0,17.7,30.0,17.2,1.7 +20070630,23.4,16.7,29.0,17.0,2.6 +20070701,22.9,17.2,27.2,18.0,2.2 +20070702,19.8,14.7,27.8,16.7,1.6 +20070703,19.4,14.2,25.6,15.6,2.2 +20070704,21.0,14.8,28.3,14.4,1.9 +20070705,22.2,15.6,29.0,14.0,1.9 +20070706,22.9,17.4,29.4,14.4,2.2 +20070707,22.3,17.5,29.4,16.7,1.1 +20070708,22.9,16.6,31.0,17.0,1.5 +20070709,23.4,17.4,31.0,17.0,2.0 +20070710,22.4,18.5,31.7,17.2,1.5 +20070711,22.2,18.2,27.0,18.0,1.3 +20070712,22.3,14.4,28.3,16.7,3.2 +20070713,19.2,12.1,28.3,15.6,2.1 +20070714,18.6,14.0,26.1,12.8,1.5 +20070715,21.1,16.2,26.1,12.8,2.0 +20070716,21.6,16.7,30.0,15.6,1.4 +20070717,22.2,17.9,30.0,15.6,1.8 +20070718,22.2,18.0,29.0,18.0,2.5 +20070719,21.7,17.6,29.4,16.0,2.5 +20070720,22.6,17.8,30.6,16.1,3.2 +20070721,20.3,12.4,27.2,13.9,1.6 +20070722,20.1,12.2,26.7,13.9,1.0 +20070723,17.4,12.7,25.0,12.0,1.4 +20070724,18.8,15.0,25.6,12.2,0.9 +20070725,20.3,16.2,28.0,17.0,1.9 +20070726,20.6,17.1,27.8,16.7,1.1 +20070727,20.6,17.2,27.2,16.0,1.0 +20070728,19.8,17.6,28.3,16.1,1.0 +20070729,22.5,19.2,26.0,20.6,1.3 +20070730,22.2,19.4,26.1,19.0,1.0 +20070731,22.1,17.8,28.9,17.8,1.7 +20070801,23.3,17.4,30.0,17.8,1.3 +20070802,23.6,17.4,30.0,17.8,1.2 +20070803,22.8,17.6,30.0,17.8,1.2 +20070804,23.7,17.8,31.7,17.2,1.5 +20070805,22.9,17.9,31.7,17.2,1.0 +20070806,24.3,19.4,31.7,17.8,1.7 +20070807,25.6,19.2,32.2,18.9,1.6 +20070808,25.7,20.3,33.3,18.9,1.4 +20070809,26.2,20.2,33.0,19.0,1.2 +20070810,25.9,19.7,34.4,18.9,1.0 +20070811,26.2,17.6,33.3,18.9,2.6 +20070812,25.2,18.9,32.2,19.4,2.2 +20070813,24.8,17.6,32.2,17.8,2.2 +20070814,24.6,14.8,32.2,16.7,2.4 +20070815,23.7,13.2,33.9,14.4,1.8 +20070816,24.9,17.7,34.4,14.4,0.8 +20070817,24.7,18.1,34.4,17.8,2.0 +20070818,24.2,15.4,33.3,15.6,2.0 +20070819,24.0,17.6,32.2,15.6,2.0 +20070820,25.1,17.7,33.0,17.0,1.4 +20070821,24.3,17.8,33.3,16.7,1.5 +20070822,25.1,18.8,33.3,17.2,1.8 +20070823,24.8,19.3,33.3,18.9,1.1 +20070824,23.1,18.5,32.2,18.0,1.4 +20070825,23.1,18.3,31.0,18.0,1.2 +20070826,22.6,18.4,32.2,18.3,2.1 +20070827,22.1,18.7,27.0,18.0,1.0 +20070828,-999.0,-999.0,-999.0,-999.0,-999.0 +20070829,22.1,18.1,30.6,17.8,1.6 +20070830,22.7,18.6,30.6,17.8,2.6 +20070831,21.6,18.3,27.0,18.0,2.4 +20070901,21.0,17.6,26.0,17.0,0.8 +20070902,21.2,16.2,26.1,17.2,0.0 +20070903,26.8,15.7,29.4,15.0,3.8 +20070904,18.8,15.7,29.4,15.0,0.6 +20070905,20.6,12.6,30.6,12.8,0.8 +20070906,21.9,14.6,30.6,12.8,1.6 +20070907,21.9,15.2,30.0,14.4,1.4 +20070908,21.6,14.2,29.0,13.0,0.9 +20070909,21.7,14.0,31.1,13.3,0.5 +20070910,23.3,16.2,31.1,13.3,0.4 +20070911,22.4,16.2,29.0,16.0,1.3 +20070912,21.8,15.8,29.4,16.1,3.0 +20070913,20.9,15.1,24.0,17.0,2.0 +20070914,20.4,18.3,24.4,17.2,1.1 +20070915,19.1,13.9,22.2,16.1,4.4 +20070916,14.4,7.8,22.2,8.3,1.7 +20070917,15.9,11.0,21.7,8.3,1.4 +20070918,15.6,10.9,23.9,10.0,0.6 +20070919,16.7,11.2,25.0,10.0,1.4 +20070920,16.8,12.3,25.0,10.0,1.4 +20070921,19.6,16.2,22.8,10.0,0.7 +20070922,21.7,16.7,28.9,17.2,0.7 +20070923,21.7,16.1,29.4,14.4,0.9 +20070924,21.3,15.7,29.4,14.4,0.6 +20070925,20.9,15.9,29.0,15.0,0.6 +20070926,20.1,15.1,28.9,13.9,0.6 +20070927,18.3,12.9,27.0,11.0,0.9 +20070928,20.1,11.7,27.2,11.1,4.3 +20070929,14.9,4.7,25.0,5.0,1.0 +20070930,13.1,6.2,22.0,4.0,0.7 +20071001,13.4,7.5,22.8,4.4,1.1 +20071002,14.8,9.7,23.3,4.4,0.9 +20071003,19.3,14.8,24.0,16.0,0.7 +20071004,19.7,17.5,24.4,16.1,0.4 +20071005,20.6,17.7,25.0,18.3,0.7 +20071006,19.6,16.1,26.1,15.0,0.5 +20071007,20.0,15.6,27.0,14.0,1.0 +20071008,19.0,14.4,27.0,12.0,0.8 +20071009,19.7,15.4,28.3,12.2,1.3 +20071010,19.4,12.2,28.3,13.9,3.3 +20071011,11.8,2.3,17.2,7.0,5.2 +20071012,10.9,3.2,17.0,6.0,3.9 +20071013,10.6,4.7,20.0,3.0,0.9 +20071014,12.9,6.4,23.3,3.3,1.0 +20071015,14.8,8.9,23.9,5.0,1.2 +20071016,14.8,11.3,23.9,7.2,1.4 +20071017,16.2,12.9,22.8,10.0,1.0 +20071018,17.9,15.2,22.8,11.7,1.9 +20071019,19.8,17.0,22.8,15.6,3.7 +20071020,14.0,5.4,22.8,6.7,2.3 +20071021,11.3,4.3,22.0,2.0,1.6 +20071022,12.0,10.4,22.2,2.2,1.0 +20071023,19.2,16.8,24.0,16.7,4.0 +20071024,16.6,14.4,23.9,13.9,2.7 +20071025,14.4,11.3,17.0,12.0,3.0 +20071026,14.4,11.3,19.4,11.7,2.7 +20071027,12.4,7.6,19.4,8.9,3.5 +20071028,12.2,4.6,17.2,8.9,7.0 +20071029,7.1,0.4,14.0,-1.0,1.6 +20071030,6.1,-0.3,18.3,-2.2,1.0 +20071031,6.8,0.9,19.4,-2.8,1.0 +20071101,11.1,6.3,21.0,3.0,1.7 +20071102,12.3,4.5,20.6,3.9,2.2 +20071103,8.4,-1.2,18.9,-1.1,3.1 +20071104,9.1,-3.4,18.3,-1.0,3.7 +20071105,9.2,-1.8,20.0,-1.0,1.6 +20071106,10.0,0.4,20.0,-0.5,6.5 +20071107,3.5,-7.8,15.0,-1.1,5.0 +20071108,1.9,-5.5,10.0,-5.0,1.7 +20071109,6.2,-2.4,15.6,-4.9,1.6 +20071110,8.3,-1.6,15.6,-1.6,4.5 +20071111,3.7,-3.1,13.0,-4.0,1.5 +20071112,8.3,0.9,20.0,-3.8,1.4 +20071113,10.8,5.4,20.0,-0.5,1.2 +20071114,13.6,9.6,22.2,5.0,1.4 +20071115,9.9,3.7,22.2,1.7,7.0 +20071116,2.4,-7.3,15.6,-1.7,6.1 +20071117,2.4,-5.3,13.0,-4.0,1.4 +20071118,7.5,0.6,18.0,0.0,0.9 +20071119,11.0,5.9,19.4,-0.5,1.4 +20071120,11.1,7.2,21.7,2.8,0.6 +20071121,10.3,6.8,21.7,2.8,1.5 +20071122,12.7,10.6,20.0,2.8,4.0 +20071123,2.6,-3.1,5.0,0.0,6.8 +20071124,-1.3,-6.4,5.0,-6.1,1.8 +20071125,3.7,-3.2,6.0,3.0,1.2 +20071126,9.5,9.2,14.0,5.0,3.7 +20071127,9.4,4.2,13.9,5.6,6.3 +20071128,5.1,-3.6,14.0,-2.0,2.5 +20071129,4.7,-1.6,13.9,-2.8,2.7 +20071130,5.4,-1.9,13.9,-2.7,2.0 +20071201,6.6,-5.8,16.0,-2.0,2.8 +20071202,9.2,-0.8,15.6,-1.0,3.5 +20071203,9.0,3.2,15.0,1.7,6.9 +20071204,1.0,-9.5,13.3,-3.3,4.7 +20071205,3.5,-6.3,15.0,-3.3,1.7 +20071206,1.1,-5.7,15.0,-3.3,5.1 +20071207,2.4,-4.8,10.0,-3.3,2.3 +20071208,9.1,4.9,19.4,-2.7,1.0 +20071209,10.7,9.7,19.4,1.1,1.1 +20071210,14.4,11.4,23.3,5.6,1.2 +20071211,12.5,9.0,23.3,3.9,1.5 +20071212,13.8,10.3,23.0,6.0,1.1 +20071213,12.4,10.6,22.8,5.0,1.5 +20071214,9.9,5.6,20.0,4.4,3.7 +20071215,4.7,3.1,15.6,1.7,2.3 +20071216,2.9,-0.4,6.0,-2.0,5.0 +20071217,-1.6,-9.4,6.1,-5.0,6.6 +20071218,-1.9,-8.4,7.0,-9.0,2.0 +20071219,3.6,-4.2,9.4,-8.9,3.1 +20071220,1.4,-0.2,9.4,-2.2,1.2 +20071221,4.4,3.4,6.1,-1.6,1.3 +20071222,5.3,3.8,7.8,3.3,1.8 +20071223,8.5,6.5,15.6,3.3,4.7 +20071224,3.4,-8.6,15.6,-1.1,3.7 +20071225,4.8,-6.1,10.0,-0.5,2.3 +20071226,4.6,0.5,11.1,0.0,2.3 +20071227,8.0,4.3,16.1,0.0,2.3 +20071228,8.2,7.2,16.1,5.0,2.6 +20071229,10.6,8.5,13.3,5.6,4.5 +20071230,5.7,4.1,8.9,3.0,1.7 +20071231,4.3,0.4,11.1,-2.8,2.0 +20080101,1.8,-5.9,11.1,-2.8,3.9 +20080102,-6.5,-11.7,5.6,-9.4,7.7 +20080103,-7.2,-13.9,0.0,-11.7,6.4 +20080104,-4.1,-12.3,6.1,-11.1,1.1 +20080105,1.9,-7.9,12.2,-11.1,2.6 +20080106,7.9,2.3,17.2,-3.8,1.7 +20080107,8.3,4.7,19.4,-0.6,1.3 +20080108,12.9,9.9,16.0,10.0,3.5 +20080109,13.7,8.2,17.0,9.0,5.1 +20080110,6.2,4.2,9.4,2.0,1.8 +20080111,10.7,7.7,14.4,2.8,4.8 +20080112,4.9,0.2,14.4,-0.6,3.0 +20080113,3.6,1.2,8.0,-1.0,1.0 +20080114,1.2,-3.9,8.3,-2.2,4.0 +20080115,-1.5,-8.9,7.8,-5.0,4.4 +20080116,-1.7,-9.7,4.0,-7.0,2.8 +20080117,-0.3,-1.8,4.4,-6.7,1.6 +20080118,4.1,-0.3,10.6,-2.7,3.2 +20080119,1.5,-6.9,10.6,-1.7,4.9 +20080120,-6.1,-15.3,2.8,-11.1,6.3 +20080121,-6.7,-17.1,1.0,-12.0,2.6 +20080122,1.1,-6.9,8.0,-3.0,2.7 +20080123,5.0,1.4,9.4,-2.1,4.6 +20080124,0.1,-3.9,9.4,-3.9,5.2 +20080125,-5.2,-15.2,3.0,-12.0,4.6 +20080126,1.6,-10.7,9.0,-1.0,1.5 +20080127,2.1,-3.9,8.0,-2.0,5.0 +20080128,3.9,-6.8,14.4,-4.4,3.1 +20080129,9.2,-4.1,16.1,-3.8,3.3 +20080130,4.8,-5.4,16.1,-2.2,6.4 +20080131,-0.8,-11.7,10.0,-7.2,2.8 +20080201,2.3,-0.2,10.0,-5.6,2.5 +20080202,3.9,-3.3,16.1,-3.9,2.9 +20080203,6.7,-2.7,16.1,-3.2,2.1 +20080204,7.8,6.5,16.1,-1.6,1.1 +20080205,14.7,10.7,22.8,4.4,3.1 +20080206,15.6,13.1,22.8,11.7,5.3 +20080207,7.0,-0.2,13.9,1.0,4.3 +20080208,5.2,-2.2,13.0,-1.0,3.0 +20080209,6.0,-2.7,15.0,-1.0,1.7 +20080210,8.9,-8.9,16.1,1.7,6.6 +20080211,2.2,-12.3,13.3,-5.6,4.4 +20080212,3.8,-2.3,11.7,-5.6,1.9 +20080213,5.2,2.9,10.0,-3.3,5.1 +20080214,-1.0,-7.7,11.0,-7.0,5.7 +20080215,6.0,-2.8,16.1,-6.7,3.0 +20080216,10.4,2.9,17.2,-3.2,1.7 +20080217,7.8,4.8,17.2,4.4,3.7 +20080218,9.4,6.7,13.3,4.4,3.9 +20080219,3.7,-8.7,13.3,-1.1,4.4 +20080220,4.3,-5.7,14.4,-3.3,3.0 +20080221,3.8,-1.5,14.4,-2.7,3.8 +20080222,3.0,2.1,13.3,-0.6,2.8 +20080223,7.4,5.2,13.3,0.0,4.1 +20080224,2.9,-0.8,12.8,-2.2,3.6 +20080225,7.1,2.4,16.1,-2.1,2.9 +20080226,9.8,4.4,16.1,3.9,3.7 +20080227,-1.4,-7.7,3.9,-5.0,8.0 +20080228,-3.6,-10.8,4.0,-7.2,5.2 +20080229,1.4,-6.2,10.0,-7.2,3.0 +20080301,6.7,-1.6,15.0,-2.1,4.0 +20080302,6.1,-5.4,17.0,-3.0,2.2 +20080303,8.4,0.2,18.0,-1.0,3.5 +20080304,14.9,11.7,16.1,13.0,6.1 +20080305,5.7,0.8,13.9,1.0,6.1 +20080306,6.1,0.1,17.0,-2.0,2.2 +20080307,8.1,5.7,17.2,-1.6,1.7 +20080308,6.7,2.6,13.0,-2.0,6.2 +20080309,0.3,-9.8,12.8,-4.4,5.1 +20080310,4.8,-4.4,16.0,-3.3,1.2 +20080311,7.4,-1.2,15.6,-3.8,1.7 +20080312,8.5,-3.4,18.0,2.0,4.5 +20080313,10.1,-0.3,22.8,-0.6,1.6 +20080314,10.8,3.6,22.8,-0.5,2.1 +20080315,9.9,8.8,16.1,3.9,1.9 +20080316,8.4,3.7,14.4,5.6,5.2 +20080317,6.2,-0.2,11.0,-1.0,3.2 +20080318,6.3,0.3,11.1,-0.5,2.4 +20080319,11.7,10.3,16.7,2.8,4.1 +20080320,7.9,0.4,16.1,2.0,7.5 +20080321,7.1,-3.6,18.3,-2.8,2.7 +20080322,12.1,-1.9,21.7,-2.7,3.3 +20080323,6.3,-2.5,13.3,2.0,5.7 +20080324,1.4,-6.3,12.2,-2.8,6.7 +20080325,3.3,-6.0,12.2,-4.4,3.5 +20080326,8.6,-3.6,20.0,-4.3,1.9 +20080327,12.6,3.1,21.7,-1.6,1.9 +20080328,15.6,7.1,22.2,3.9,3.5 +20080329,11.8,9.6,22.2,5.6,2.9 +20080330,4.2,2.2,6.0,2.0,2.5 +20080331,6.4,4.8,15.0,2.2,3.1 +20080401,15.1,11.0,24.4,3.9,3.7 +20080402,15.4,8.1,24.4,9.4,4.8 +20080403,9.2,6.0,12.2,6.0,2.3 +20080404,10.7,9.7,18.3,5.0,4.2 +20080405,12.6,11.7,18.3,5.0,2.0 +20080406,13.3,10.5,18.0,9.0,2.6 +20080407,12.1,8.6,18.0,8.0,3.2 +20080408,11.5,8.1,17.8,8.3,3.2 +20080409,13.6,7.4,23.0,8.0,2.0 +20080410,14.9,8.4,22.0,7.0,2.0 +20080411,18.0,11.3,23.3,7.2,3.1 +20080412,18.2,8.8,23.3,13.9,3.0 +20080413,9.7,-2.2,22.2,5.0,5.6 +20080414,4.1,-1.0,11.7,1.7,4.6 +20080415,6.3,-2.7,14.0,2.0,5.8 +20080416,8.1,-4.8,20.0,-2.2,1.2 +20080417,12.7,-1.1,23.9,-2.1,2.0 +20080418,15.3,1.8,26.0,4.0,2.2 +20080419,15.4,8.2,19.4,12.8,3.9 +20080420,10.9,6.3,18.9,5.0,4.1 +20080421,12.6,5.1,20.6,5.0,5.3 +20080422,14.9,7.7,21.1,5.6,3.0 +20080423,17.1,9.6,23.3,8.9,1.5 +20080424,16.7,9.6,24.4,7.8,1.7 +20080425,17.2,10.4,25.0,7.8,1.9 +20080426,16.3,13.3,23.0,9.0,0.9 +20080427,15.2,13.8,23.9,9.4,1.3 +20080428,14.7,11.9,19.4,11.7,3.4 +20080429,7.7,-1.2,12.8,2.0,5.9 +20080430,8.9,-0.4,21.0,-1.0,1.9 +20080501,14.3,4.1,23.3,1.7,3.2 +20080502,18.2,8.9,24.0,13.0,4.1 +20080503,17.1,11.2,23.9,12.8,4.5 +20080504,16.2,9.2,24.0,10.0,3.0 +20080505,17.3,5.3,23.9,8.9,4.3 +20080506,16.4,2.4,25.0,6.7,2.8 +20080507,17.3,7.5,25.0,6.7,2.7 +20080508,19.8,12.4,25.6,10.6,4.4 +20080509,19.3,13.7,25.0,14.0,3.1 +20080510,18.4,12.4,26.1,13.3,3.5 +20080511,15.8,9.8,23.9,10.6,3.9 +20080512,13.0,3.8,20.6,10.0,11.6 +20080513,13.5,4.2,22.0,4.0,2.4 +20080514,14.2,8.7,22.2,4.4,2.9 +20080515,15.5,13.0,20.0,8.9,2.0 +20080516,16.5,14.6,22.0,12.0,2.6 +20080517,13.9,5.7,22.2,7.8,4.6 +20080518,13.9,8.8,21.7,6.7,1.6 +20080519,15.4,5.6,23.3,5.6,2.2 +20080520,18.8,9.8,27.0,12.8,2.7 +20080521,15.7,7.3,26.7,8.9,4.0 +20080522,15.2,3.9,25.0,5.6,3.0 +20080523,18.6,8.2,27.2,5.6,1.7 +20080524,18.9,12.2,27.2,10.6,3.1 +20080525,17.3,10.5,25.0,8.9,2.2 +20080526,19.7,13.3,27.2,8.9,2.9 +20080527,20.1,16.1,27.0,13.0,1.9 +20080528,18.8,17.6,27.8,13.3,1.4 +20080529,16.1,12.6,25.0,11.7,2.2 +20080530,20.3,16.1,27.8,11.7,2.2 +20080531,24.2,16.8,30.6,13.9,3.0 +20080601,20.9,14.3,30.6,15.0,2.0 +20080602,20.9,14.3,27.8,15.0,3.1 +20080603,20.7,15.2,28.3,13.3,1.9 +20080604,25.3,17.0,32.8,13.3,3.0 +20080605,24.6,17.0,32.8,16.1,2.3 +20080606,24.8,16.9,32.2,16.1,2.1 +20080607,24.7,18.6,33.3,16.1,1.1 +20080608,24.7,18.3,33.9,16.7,1.4 +20080609,25.9,17.3,34.0,17.0,1.9 +20080610,24.3,17.8,33.9,17.2,2.1 +20080611,22.2,18.0,32.2,17.8,2.0 +20080612,24.2,16.8,29.0,18.0,2.4 +20080613,24.0,16.6,29.0,18.0,2.2 +20080614,21.4,17.1,29.4,16.7,1.8 +20080615,22.1,16.2,29.4,16.7,4.0 +20080616,21.8,13.6,30.0,13.0,2.5 +20080617,22.8,13.7,31.1,13.3,3.5 +20080618,19.3,7.2,29.4,11.1,3.9 +20080619,19.7,7.2,27.2,11.1,2.7 +20080620,19.3,9.9,27.2,10.6,1.2 +20080621,20.7,13.3,26.1,10.6,2.2 +20080622,19.3,15.3,27.2,13.9,1.6 +20080623,21.3,14.1,28.9,13.9,1.4 +20080624,21.2,11.7,30.0,12.2,2.0 +20080625,22.2,9.6,32.0,12.0,1.6 +20080626,21.9,13.4,31.7,11.7,1.1 +20080627,21.6,16.6,31.7,12.2,2.5 +20080628,21.3,17.6,31.1,15.6,1.5 +20080629,22.7,17.8,31.1,15.6,2.2 +20080630,21.0,14.3,29.4,15.0,2.7 +20080701,17.9,10.0,26.7,10.0,3.8 +20080702,18.6,8.7,27.8,8.9,1.4 +20080703,20.1,10.3,28.9,8.9,1.3 +20080704,20.6,15.6,28.9,10.0,0.9 +20080705,20.9,17.8,28.9,15.0,1.2 +20080706,20.9,17.8,28.3,17.2,1.4 +20080707,21.4,16.9,28.0,17.0,2.2 +20080708,21.2,18.4,29.4,17.2,0.9 +20080709,21.9,18.8,29.4,17.8,2.2 +20080710,20.9,19.2,29.4,17.8,1.3 +20080711,23.8,18.4,29.4,17.8,2.7 +20080712,23.3,16.7,31.0,16.0,1.7 +20080713,22.4,18.6,31.1,16.1,1.5 +20080714,22.7,15.7,28.0,19.0,3.7 +20080715,21.9,12.8,29.0,16.0,2.3 +20080716,21.8,13.8,28.9,14.4,1.1 +20080717,21.8,14.2,28.3,13.3,1.1 +20080718,21.4,13.8,29.0,13.0,1.3 +20080719,23.8,14.9,31.7,12.8,1.4 +20080720,23.5,15.3,31.7,15.0,2.0 +20080721,26.7,17.7,33.9,15.0,3.2 +20080722,24.2,15.4,33.9,16.1,3.0 +20080723,23.4,16.8,32.2,16.1,3.8 +20080724,21.4,12.3,29.4,12.8,2.3 +20080725,21.3,13.7,28.3,12.8,1.4 +20080726,21.8,17.9,28.3,17.2,1.1 +20080727,24.5,17.7,32.0,18.0,3.0 +20080728,23.4,16.1,32.2,15.6,2.5 +20080729,22.5,19.0,31.7,15.6,2.5 +20080730,25.0,19.3,32.8,18.3,1.7 +20080731,24.7,19.1,32.8,18.3,2.7 +20080801,25.2,18.0,31.1,20.0,4.1 +20080802,24.8,17.1,33.3,16.7,2.9 +20080803,24.3,16.1,33.3,16.7,2.2 +20080804,24.6,15.4,33.0,17.0,2.0 +20080805,25.6,15.9,33.9,17.2,3.1 +20080806,26.6,17.2,33.9,17.2,3.0 +20080807,24.9,17.1,29.0,19.0,2.9 +20080808,22.9,13.6,29.4,17.8,4.1 +20080809,20.4,11.1,28.3,11.7,2.2 +20080810,21.3,14.8,28.3,11.7,1.6 +20080811,21.7,11.3,28.3,15.0,3.9 +20080812,19.6,10.9,28.3,12.2,1.4 +20080813,20.3,16.0,26.7,12.2,1.6 +20080814,21.0,15.4,28.9,16.7,2.1 +20080815,20.4,14.6,28.9,13.9,1.3 +20080816,21.0,14.4,28.3,13.9,1.3 +20080817,20.3,15.9,28.3,16.1,1.4 +20080818,-999.0,-999.0,-999.0,-999.0,-999.0 +20080819,23.1,15.3,33.0,15.0,1.4 +20080820,22.7,15.1,32.8,15.0,1.3 +20080821,21.5,15.3,29.4,15.0,1.6 +20080822,22.3,14.8,27.8,15.0,1.7 +20080823,22.5,14.8,27.0,18.0,2.2 +20080824,21.2,15.8,26.0,16.0,1.6 +20080825,21.4,18.4,27.2,16.1,0.6 +20080826,20.3,19.1,22.2,19.0,2.0 +20080827,21.4,19.5,26.0,19.0,2.4 +20080828,21.9,19.0,26.1,19.4,2.6 +20080829,22.1,15.8,29.0,17.0,2.7 +20080830,21.8,15.3,30.0,14.0,1.2 +20080831,22.8,18.2,30.0,14.4,1.5 +20080901,22.1,19.7,29.4,17.2,1.3 +20080902,21.1,17.1,27.0,16.0,0.9 +20080903,20.4,15.4,28.0,14.0,0.9 +20080904,19.4,13.9,27.0,12.0,1.8 +20080905,21.3,14.9,28.9,12.2,1.0 +20080906,22.5,16.2,28.9,14.4,3.7 +20080907,22.1,16.4,29.4,15.0,2.3 +20080908,22.0,16.7,29.4,15.0,1.8 +20080909,22.4,19.3,28.9,15.0,1.6 +20080910,20.6,18.7,25.0,18.0,1.3 +20080911,19.3,17.8,23.0,17.0,2.1 +20080912,21.1,19.1,26.7,17.2,2.7 +20080913,22.6,19.2,29.4,18.9,1.5 +20080914,23.2,18.9,29.4,18.9,3.7 +20080915,21.7,16.9,24.0,18.0,4.7 +20080916,17.4,14.7,19.4,16.0,2.8 +20080917,17.4,13.3,21.1,15.0,1.6 +20080918,17.2,12.7,25.0,12.0,1.6 +20080919,16.5,12.2,25.6,10.0,0.8 +20080920,16.5,12.3,22.8,10.0,1.3 +20080921,15.4,12.2,21.0,11.0,0.5 +20080922,16.7,11.4,25.6,10.0,1.1 +20080923,13.7,10.2,25.6,8.9,0.6 +20080924,15.7,7.4,22.8,8.3,1.5 +20080925,13.9,7.1,23.3,7.2,3.2 +20080926,16.4,12.0,23.3,7.2,6.0 +20080927,17.3,14.3,23.0,15.0,2.6 +20080928,20.1,15.2,24.4,15.0,3.7 +20080929,17.3,13.4,25.0,12.8,2.1 +20080930,16.6,11.8,25.0,10.0,1.0 +20081001,15.4,10.2,23.9,10.6,3.8 +20081002,11.2,4.0,18.9,4.4,2.5 +20081003,11.2,5.1,21.1,2.8,0.6 +20081004,13.2,7.5,23.3,2.8,0.4 +20081005,15.1,9.8,24.4,4.4,0.5 +20081006,15.4,10.4,25.0,7.2,0.9 +20081007,13.4,11.1,25.0,7.8,1.6 +20081008,13.9,12.9,17.2,7.8,2.6 +20081009,16.8,14.5,22.8,13.3,1.3 +20081010,17.2,15.1,22.8,12.8,1.1 +20081011,18.3,13.6,22.0,16.0,1.9 +20081012,17.6,6.6,22.0,14.0,1.6 +20081013,16.8,10.3,23.0,12.8,1.2 +20081014,15.6,9.0,26.1,5.6,1.2 +20081015,16.4,9.9,27.2,5.6,0.4 +20081016,16.9,12.1,27.2,8.3,1.2 +20081017,17.2,15.3,25.6,9.4,2.7 +20081018,11.0,6.1,18.3,7.8,4.9 +20081019,8.4,1.1,17.2,1.1,2.0 +20081020,7.9,2.5,18.0,-1.0,0.9 +20081021,11.0,5.1,19.0,4.0,2.9 +20081022,9.9,3.2,18.9,1.7,2.0 +20081023,6.2,1.2,17.8,0.6,1.4 +20081024,8.1,4.9,11.7,0.6,2.4 +20081025,11.5,8.9,14.4,7.2,3.4 +20081026,9.8,3.7,18.9,3.9,2.9 +20081027,6.8,-1.8,11.1,3.0,4.8 +20081028,3.0,-4.0,9.4,0.6,8.4 +20081029,4.9,-6.2,12.8,0.6,6.2 +20081030,7.1,-5.5,17.2,-2.2,2.0 +20081031,7.2,-1.9,20.0,-2.8,1.4 +20081101,8.7,-0.6,21.0,-1.0,1.3 +20081102,8.8,1.4,20.6,-1.0,0.9 +20081103,9.3,3.5,20.6,0.0,0.7 +20081104,11.9,6.7,20.0,0.6,2.2 +20081105,11.7,6.4,21.0,4.0,1.6 +20081106,11.8,5.4,22.2,2.8,1.5 +20081107,10.9,4.7,22.8,1.7,1.5 +20081108,12.6,3.6,22.8,1.7,4.2 +20081109,5.4,-1.3,15.6,-1.1,2.1 +20081110,5.3,-2.7,13.3,-1.0,4.6 +20081111,4.6,-4.7,13.3,-3.3,1.9 +20081112,7.2,-0.6,12.8,-2.7,1.6 +20081113,9.7,6.7,16.7,2.2,1.7 +20081114,12.5,12.0,18.0,11.0,2.0 +20081115,13.3,10.3,17.8,5.6,4.1 +20081116,3.0,-1.7,5.6,0.6,7.0 +20081117,2.1,-3.8,10.6,-2.8,4.1 +20081118,-0.7,-9.3,3.9,-4.0,7.3 +20081119,-1.2,-11.4,7.2,-6.1,3.8 +20081120,3.8,-6.3,12.8,-6.1,3.7 +20081121,-0.4,-7.7,12.8,-4.4,7.4 +20081122,-3.2,-13.7,6.0,-9.4,2.4 +20081123,2.5,-10.1,10.0,-9.3,1.5 +20081124,2.6,-2.4,10.0,-3.9,2.7 +20081125,3.6,-3.3,8.3,-3.8,4.4 +20081126,1.6,-6.6,10.0,-3.3,3.9 +20081127,2.5,-4.2,15.0,-6.0,0.5 +20081128,5.1,-0.2,15.6,-5.6,1.8 +20081129,6.7,2.1,13.9,-1.6,1.6 +20081130,2.6,2.4,8.3,1.7,2.4 +20081201,2.2,-0.7,5.0,-0.6,3.3 +20081202,0.8,-4.9,4.4,-1.1,2.6 +20081203,-1.1,-6.9,9.4,-7.8,1.1 +20081204,3.9,-0.5,11.1,-7.7,2.8 +20081205,1.1,-3.9,6.1,-3.0,5.8 +20081206,-2.5,-6.5,2.0,-7.0,1.3 +20081207,-0.1,-9.3,2.2,-6.6,5.1 +20081208,-1.5,-10.9,7.2,-7.2,1.7 +20081209,5.9,0.4,11.0,2.0,3.3 +20081210,12.8,11.8,14.4,2.2,2.9 +20081211,13.4,12.9,16.1,9.4,2.7 +20081212,4.1,-0.7,16.1,-1.1,6.2 +20081213,0.6,-7.1,8.3,-5.6,3.9 +20081214,1.8,-3.6,8.3,-4.9,2.5 +20081215,8.8,8.6,13.3,-2.7,1.5 +20081216,12.3,11.8,17.0,9.0,2.3 +20081217,12.3,11.2,18.3,8.0,2.6 +20081218,13.4,12.4,20.0,8.3,2.2 +20081219,13.0,10.6,18.9,7.8,2.1 +20081220,12.8,7.6,18.9,7.8,3.0 +20081221,7.3,2.1,13.0,-2.0,6.0 +20081222,-6.7,-17.1,-1.7,-12.0,7.2 +20081223,-3.9,-13.9,3.3,-11.7,2.7 +20081224,5.6,2.2,11.1,-7.1,3.8 +20081225,10.2,2.5,14.4,1.7,4.6 +20081226,6.2,1.2,14.4,0.6,1.2 +20081227,10.4,8.6,16.1,0.6,3.2 +20081228,13.1,11.4,16.1,6.1,4.1 +20081229,7.6,0.3,10.0,4.0,5.9 +20081230,8.3,-6.1,18.9,2.8,3.3 +20081231,5.4,-5.9,18.9,-0.6,6.2 +20090101,-1.6,-12.8,12.2,-7.2,3.3 +20090102,2.7,-4.8,9.4,-6.1,3.1 +20090103,5.1,2.8,15.0,-1.6,1.7 +20090104,11.5,8.6,18.0,8.9,1.3 +20090105,10.6,8.9,19.4,5.0,1.6 +20090106,12.3,11.7,19.4,5.0,1.6 +20090107,11.9,7.3,17.0,1.0,4.8 +20090108,3.0,-4.9,5.0,1.0,3.0 +20090109,1.1,-8.6,10.6,-5.6,4.0 +20090110,4.2,-2.4,11.7,-4.4,2.5 +20090111,5.6,2.9,11.7,-2.7,6.6 +20090112,0.6,-5.3,11.1,-2.2,4.7 +20090113,0.0,-4.8,8.3,-5.0,1.2 +20090114,-1.3,-8.7,8.3,-8.3,4.5 +20090115,-1.8,-10.5,7.8,-8.3,5.9 +20090116,-10.5,-21.4,-6.0,-15.0,6.6 +20090117,-8.6,-18.6,1.0,-16.0,2.6 +20090118,0.5,-4.8,7.0,-3.0,3.3 +20090119,0.4,-3.6,7.2,-3.9,2.4 +20090120,-5.6,-10.7,3.3,-8.3,8.7 +20090121,-6.2,-14.8,1.0,-11.0,7.0 +20090122,-0.9,-11.4,10.0,-10.6,2.2 +20090123,2.1,-5.3,17.8,-8.3,0.8 +20090124,8.9,2.4,11.7,4.0,3.9 +20090125,2.8,-5.2,10.6,0.0,3.3 +20090126,4.4,-2.4,10.6,0.0,1.9 +20090127,5.1,3.2,13.3,0.0,1.9 +20090128,8.3,6.8,12.0,3.0,4.3 +20090129,2.4,-3.3,12.2,-1.1,5.6 +20090130,0.1,-7.8,8.9,-2.2,5.5 +20090131,0.8,-9.6,7.2,-2.2,4.5 +20090201,1.5,-6.8,14.0,-7.0,1.0 +20090202,2.8,-2.2,14.4,-6.6,2.6 +20090203,-1.0,-7.4,4.0,-5.0,5.5 +20090204,-9.2,-14.9,4.4,-13.3,8.4 +20090205,-7.4,-14.8,0.6,-13.3,5.1 +20090206,-1.0,-9.5,13.3,-11.1,1.3 +20090207,4.7,-3.4,19.4,-10.0,1.1 +20090208,9.9,1.4,19.4,-4.3,2.1 +20090209,8.3,3.8,19.0,-1.1,1.9 +20090210,13.6,6.4,18.0,8.0,3.8 +20090211,11.7,8.0,17.8,8.9,4.5 +20090212,10.6,-0.6,14.4,3.9,4.9 +20090213,7.5,-5.2,16.0,-2.0,1.9 +20090214,6.8,1.8,16.1,-1.6,2.7 +20090215,6.5,-0.9,13.3,2.8,5.1 +20090216,2.8,-5.7,12.8,-1.1,6.0 +20090217,0.3,-8.4,9.4,-6.7,2.0 +20090218,6.4,0.6,13.0,4.0,5.2 +20090219,5.9,-1.1,13.3,0.0,5.1 +20090220,-2.8,-13.9,10.6,-8.3,5.7 +20090221,-0.4,-11.3,10.0,-8.3,3.3 +20090222,0.0,-8.1,10.0,-7.8,4.9 +20090223,-3.2,-11.4,3.3,-7.2,6.7 +20090224,-1.0,-10.6,8.3,-8.9,3.0 +20090225,4.6,-7.3,12.0,1.0,2.4 +20090226,10.1,3.2,18.3,0.6,3.0 +20090227,11.1,8.1,18.3,6.1,4.1 +20090228,8.8,8.1,12.8,6.7,0.8 +20090301,2.8,1.9,7.0,0.0,3.8 +20090302,-4.6,-10.2,-2.0,-7.0,9.3 +20090303,-4.7,-14.6,3.3,-10.0,5.8 +20090304,0.3,-9.2,8.0,-4.0,1.5 +20090305,3.4,-5.5,15.0,-5.0,1.7 +20090306,10.6,1.4,19.4,-4.9,3.6 +20090307,13.4,6.9,25.6,1.1,1.9 +20090308,14.8,6.9,25.6,3.3,2.3 +20090309,18.7,8.0,23.0,15.0,4.3 +20090310,13.7,3.3,23.9,5.6,2.1 +20090311,14.4,7.8,23.3,5.6,2.5 +20090312,8.6,-0.3,12.8,5.0,5.1 +20090313,5.9,-4.2,12.2,2.8,3.3 +20090314,3.1,2.5,6.1,1.7,2.9 +20090315,6.7,5.9,13.3,1.7,1.7 +20090316,10.3,9.8,13.3,3.9,1.0 +20090317,12.2,7.2,19.4,6.1,2.7 +20090318,11.3,5.8,19.4,5.0,1.4 +20090319,10.6,3.6,18.9,1.7,2.2 +20090320,7.4,-5.3,12.0,1.0,5.1 +20090321,4.1,-4.8,12.8,-3.3,1.7 +20090322,7.7,-1.4,18.9,-3.2,1.3 +20090323,10.3,1.0,19.4,-2.1,0.6 +20090324,10.5,3.3,19.4,0.6,1.6 +20090325,7.8,5.7,18.9,1.7,3.6 +20090326,7.4,6.9,13.0,4.0,3.1 +20090327,11.1,10.8,13.3,5.0,1.0 +20090328,12.9,12.3,14.4,9.4,1.6 +20090329,11.3,7.0,15.0,6.7,4.7 +20090330,8.0,-4.0,17.0,2.0,6.1 +20090331,7.7,-0.3,13.9,1.0,1.2 +20090401,12.3,8.7,21.0,8.9,2.4 +20090402,14.0,12.0,20.6,8.9,2.1 +20090403,13.1,8.2,17.2,8.9,5.2 +20090404,10.8,0.6,20.6,5.0,5.8 +20090405,12.8,2.6,23.3,1.7,2.7 +20090406,11.7,5.3,23.3,1.7,6.2 +20090407,1.4,-3.8,13.9,-1.1,5.2 +20090408,5.1,-5.3,15.0,-2.2,2.8 +20090409,12.8,-2.2,21.1,-2.1,2.4 +20090410,13.3,7.6,21.1,4.4,3.3 +20090411,11.2,8.3,16.1,8.9,3.4 +20090412,9.8,2.6,17.8,2.2,2.5 +20090413,9.5,4.8,17.8,2.2,2.5 +20090414,10.5,9.3,17.8,7.8,2.2 +20090415,9.3,4.0,17.8,6.7,6.1 +20090416,10.3,2.8,18.3,3.9,2.7 +20090417,11.0,1.2,21.1,0.0,0.8 +20090418,13.6,2.7,23.3,0.0,1.9 +20090419,13.1,5.6,23.3,2.8,1.5 +20090420,14.4,10.5,20.0,8.9,2.5 +20090421,10.9,2.4,20.0,3.3,3.0 +20090422,10.5,-3.6,17.2,2.8,5.0 +20090423,13.9,0.8,25.6,2.2,1.7 +20090424,17.5,7.3,29.0,9.0,1.1 +20090425,19.0,9.6,28.9,8.3,2.1 +20090426,19.5,9.4,28.9,9.4,2.1 +20090427,18.4,8.3,27.2,10.6,2.4 +20090428,17.5,10.3,25.6,10.0,2.0 +20090429,17.8,11.4,25.0,10.0,1.9 +20090430,17.1,10.8,25.0,10.0,2.5 +20090501,18.1,12.3,24.4,12.2,2.4 +20090502,17.8,13.9,24.4,14.4,2.3 +20090503,17.7,15.2,22.8,13.9,2.3 +20090504,17.8,14.5,22.8,14.4,3.9 +20090505,16.9,14.7,23.0,13.0,2.1 +20090506,17.2,15.1,23.3,13.3,2.2 +20090507,18.8,14.6,25.0,12.8,2.3 +20090508,16.1,13.4,25.0,10.6,1.4 +20090509,20.2,16.6,26.7,10.6,1.9 +20090510,18.7,11.5,26.7,13.9,3.9 +20090511,14.1,10.2,24.4,11.7,1.5 +20090512,12.6,7.3,21.7,6.7,1.5 +20090513,14.8,8.7,21.7,6.7,2.2 +20090514,18.4,14.2,25.0,9.4,2.5 +20090515,18.8,16.4,25.0,15.0,1.5 +20090516,18.2,15.7,24.0,14.0,1.7 +20090517,14.4,12.8,17.2,9.0,3.9 +20090518,10.8,3.4,17.2,5.6,3.2 +20090519,10.7,1.4,19.4,1.7,1.4 +20090520,13.8,4.2,23.0,6.0,1.2 +20090521,17.3,9.9,22.8,5.6,1.8 +20090522,17.0,12.4,23.3,10.6,1.0 +20090523,18.1,14.1,23.3,10.6,1.0 +20090524,18.9,17.1,23.3,13.9,1.1 +20090525,19.8,17.7,25.0,16.7,1.3 +20090526,19.8,17.2,23.0,16.0,1.7 +20090527,19.7,17.7,24.4,16.1,1.6 +20090528,19.6,17.6,24.4,16.7,1.4 +20090529,19.7,16.1,25.6,15.6,2.7 +20090530,18.8,12.2,25.6,12.2,4.4 +20090531,19.9,12.8,27.8,11.7,2.3 +20090601,19.5,12.1,27.8,10.6,1.6 +20090602,21.2,14.8,29.4,10.6,1.1 +20090603,20.3,15.2,29.4,13.3,1.0 +20090604,19.2,17.1,28.3,13.3,2.3 +20090605,19.1,16.8,23.3,16.1,3.2 +20090606,19.1,13.6,26.7,13.9,2.7 +20090607,21.1,15.6,27.2,13.9,1.9 +20090608,20.5,16.5,28.0,15.0,1.4 +20090609,21.3,16.3,30.6,14.4,2.0 +20090610,20.4,17.1,30.6,15.6,0.9 +20090611,19.9,17.8,27.2,15.6,1.5 +20090612,21.1,17.1,27.2,16.7,2.4 +20090613,21.6,16.3,28.0,15.0,2.0 +20090614,22.1,16.2,27.8,15.0,2.1 +20090615,20.9,17.1,27.8,15.0,1.0 +20090616,20.9,18.6,28.3,15.0,1.1 +20090617,20.8,18.9,28.3,17.2,2.7 +20090618,21.2,18.7,29.4,16.7,2.0 +20090619,22.5,18.5,31.0,17.0,2.3 +20090620,24.8,17.9,32.0,18.0,3.2 +20090621,23.3,19.4,31.7,17.2,3.1 +20090622,23.1,18.8,28.0,19.0,3.1 +20090623,23.3,17.8,28.3,17.8,3.4 +20090624,22.8,15.1,28.3,16.7,3.5 +20090625,22.2,14.2,30.0,14.4,1.4 +20090626,22.3,16.5,30.6,14.4,1.9 +20090627,23.7,18.4,31.1,15.0,2.5 +20090628,24.1,17.8,31.1,17.2,2.2 +20090629,23.5,15.4,30.6,17.2,4.1 +20090630,21.2,11.3,28.3,12.2,2.6 +20090701,21.3,12.3,29.4,13.9,2.3 +20090702,21.6,13.6,29.4,13.9,3.2 +20090703,19.9,12.2,27.8,14.4,5.6 +20090704,19.4,13.0,27.0,12.0,1.5 +20090705,20.9,17.4,27.2,12.2,0.5 +20090706,22.3,18.7,28.0,19.0,2.5 +20090707,22.7,16.9,27.0,18.0,2.2 +20090708,20.1,16.1,24.4,17.0,1.8 +20090709,19.0,17.2,24.0,17.0,1.0 +20090710,19.5,16.6,25.6,15.6,0.8 +20090711,20.3,17.2,27.2,15.6,1.4 +20090712,21.9,18.2,30.0,16.7,1.0 +20090713,22.6,18.3,30.0,16.7,2.8 +20090714,21.7,16.2,27.2,15.6,2.4 +20090715,22.5,16.9,28.3,15.6,1.7 +20090716,23.7,18.7,28.9,16.1,2.3 +20090717,23.5,18.4,28.9,17.8,1.4 +20090718,19.7,12.2,23.9,14.0,4.7 +20090719,18.7,12.1,24.4,13.3,2.3 +20090720,19.2,13.3,25.6,13.3,2.6 +20090721,19.7,14.3,25.6,14.4,1.7 +20090722,19.1,16.0,25.0,15.0,1.6 +20090723,20.6,17.7,26.7,15.0,1.7 +20090724,21.1,15.1,27.0,14.0,2.4 +20090725,21.1,15.8,29.0,14.0,0.8 +20090726,20.8,17.2,29.4,14.4,0.8 +20090727,22.2,17.9,28.9,15.6,1.0 +20090728,21.4,18.8,28.9,16.7,1.2 +20090729,21.4,19.0,28.9,18.3,2.9 +20090730,21.7,18.6,27.8,17.2,1.2 +20090731,22.4,19.3,27.2,17.2,2.7 +20090801,22.6,18.8,28.0,18.0,1.9 +20090802,22.5,19.6,28.3,18.3,1.7 +20090803,21.6,16.8,28.9,15.0,2.2 +20090804,21.0,16.8,29.0,14.0,1.9 +20090805,19.7,17.6,29.4,14.4,1.1 +20090806,21.5,16.6,28.9,15.0,3.7 +20090807,21.2,16.2,28.3,14.4,1.4 +20090808,22.2,18.2,29.4,14.4,0.6 +20090809,23.9,18.8,30.6,16.7,1.1 +20090810,23.2,19.7,30.6,17.2,1.1 +20090811,22.7,19.9,30.0,17.8,1.9 +20090812,21.3,18.6,30.0,17.8,2.0 +20090813,21.5,17.7,27.2,17.0,1.7 +20090814,21.4,18.1,28.0,17.0,0.5 +20090815,21.4,17.6,28.3,15.6,1.1 +20090816,20.9,17.8,28.3,15.6,0.9 +20090817,21.7,17.9,28.3,16.1,1.4 +20090818,23.3,18.3,28.9,18.3,2.2 +20090819,23.1,19.3,28.0,18.0,1.5 +20090820,22.4,19.9,28.9,18.3,1.7 +20090821,22.4,19.7,28.3,19.4,1.5 +20090822,22.6,17.8,27.0,19.0,3.2 +20090823,20.2,15.4,27.2,16.7,3.8 +20090824,20.3,16.2,25.6,16.1,2.3 +20090825,21.4,16.1,27.0,16.0,1.0 +20090826,21.8,15.9,29.0,16.0,0.8 +20090827,21.4,17.1,28.9,15.6,1.1 +20090828,20.1,18.3,28.9,16.1,1.5 +20090829,21.3,17.6,27.8,17.8,1.6 +20090830,20.8,17.3,26.0,17.0,2.5 +20090831,18.4,16.8,21.7,17.0,1.3 +20090901,18.2,14.4,21.0,16.0,0.9 +20090902,17.4,13.2,23.0,13.9,0.8 +20090903,17.3,12.6,26.1,10.0,0.9 +20090904,19.8,15.0,27.0,13.0,0.8 +20090905,20.1,15.1,27.8,13.3,0.8 +20090906,21.1,16.3,27.8,14.4,0.9 +20090907,20.1,16.8,26.0,17.0,0.5 +20090908,18.7,16.9,26.0,16.0,0.4 +20090909,17.6,16.6,25.6,15.0,1.4 +20090910,17.1,15.6,22.8,15.0,1.1 +20090911,18.3,15.5,24.0,15.6,0.8 +20090912,19.8,16.1,26.7,15.0,1.9 +20090913,19.3,14.8,27.0,13.0,1.3 +20090914,18.9,14.9,26.7,12.8,1.0 +20090915,19.9,17.9,26.1,12.8,0.6 +20090916,19.5,18.4,23.9,17.2,0.8 +20090917,18.8,17.3,21.0,17.0,0.7 +20090918,19.3,17.9,23.9,17.2,1.0 +20090919,20.2,18.6,24.4,17.8,1.1 +20090920,18.2,17.8,20.0,17.0,1.1 +20090921,18.6,18.1,20.0,17.2,1.7 +20090922,19.8,17.6,25.0,17.2,1.0 +20090923,20.4,17.6,26.0,16.7,1.5 +20090924,20.7,18.2,27.8,16.1,0.8 +20090925,22.6,19.7,27.8,16.7,1.2 +20090926,17.1,16.3,27.8,14.4,1.9 +20090927,17.4,13.5,23.0,15.0,2.7 +20090928,16.2,10.5,26.7,8.9,1.9 +20090929,13.8,3.7,17.0,10.0,6.0 +20090930,12.9,6.8,18.9,8.9,5.7 +20091001,12.1,8.1,20.0,5.6,2.0 +20091002,14.1,10.9,20.0,5.6,2.6 +20091003,14.7,8.3,21.7,8.9,2.0 +20091004,11.6,6.4,21.7,5.6,1.1 +20091005,12.2,11.4,18.3,5.6,1.4 +20091006,15.4,13.6,20.0,10.6,1.1 +20091007,17.8,13.5,22.0,16.0,3.7 +20091008,13.9,7.6,22.2,5.6,2.5 +20091009,19.6,14.2,27.0,13.0,3.8 +20091010,18.3,16.2,26.7,15.0,4.1 +20091011,14.9,12.1,20.0,12.8,2.3 +20091012,13.7,12.4,20.0,12.8,2.2 +20091013,15.4,12.2,21.7,11.7,2.4 +20091014,12.9,11.7,21.7,8.9,1.8 +20091015,9.1,8.4,15.6,6.7,2.3 +20091016,12.2,9.3,14.4,6.7,4.8 +20091017,6.6,4.0,8.3,4.0,5.9 +20091018,4.6,-1.0,8.3,2.8,8.5 +20091019,6.0,-3.0,16.0,-2.0,3.0 +20091020,8.3,0.6,22.0,-1.0,1.1 +20091021,9.7,2.3,22.8,-1.0,0.7 +20091022,10.7,4.9,22.8,-0.5,1.3 +20091023,15.3,13.8,18.0,11.0,2.6 +20091024,17.0,13.6,19.4,9.0,5.2 +20091025,9.5,2.8,19.4,3.3,4.3 +20091026,9.0,3.3,17.8,3.9,0.8 +20091027,10.3,6.8,17.8,4.4,0.8 +20091028,14.1,10.3,21.1,9.4,3.9 +20091029,12.2,9.1,21.1,5.6,1.9 +20091030,12.7,11.3,19.4,5.6,2.6 +20091031,13.7,13.4,18.0,11.7,4.0 +20091101,9.5,6.5,17.8,7.8,7.4 +20091102,10.9,2.9,18.3,6.7,3.6 +20091103,9.8,2.6,18.3,2.2,3.7 +20091104,8.5,1.2,17.8,1.1,2.0 +20091105,8.2,0.9,16.7,1.1,2.5 +20091106,7.6,-2.3,17.0,-1.0,2.4 +20091107,7.6,1.0,19.0,0.0,1.0 +20091108,10.9,0.5,24.0,1.0,1.7 +20091109,8.8,3.7,23.9,0.6,0.3 +20091110,11.2,9.4,17.2,1.7,1.5 +20091111,11.2,10.2,12.0,9.0,2.4 +20091112,8.7,4.9,12.8,6.1,7.6 +20091113,11.1,5.2,20.0,6.1,5.5 +20091114,12.7,6.4,23.0,6.0,2.8 +20091115,11.7,5.6,23.0,3.0,0.8 +20091116,9.9,4.3,22.8,1.1,0.9 +20091117,9.6,6.1,20.6,1.7,2.0 +20091118,10.2,8.7,16.1,2.8,2.9 +20091119,11.7,9.7,17.2,8.3,2.5 +20091120,8.8,2.9,17.2,4.4,5.4 +20091121,6.8,2.1,14.0,1.0,1.1 +20091122,4.7,3.2,7.8,1.0,0.7 +20091123,7.7,6.2,11.1,1.1,0.8 +20091124,7.7,6.8,11.1,5.0,1.2 +20091125,8.9,6.1,15.0,4.0,0.6 +20091126,5.8,1.2,11.0,-1.0,2.4 +20091127,4.7,-4.8,11.1,-0.5,7.3 +20091128,6.2,-5.7,16.0,-1.0,3.5 +20091129,7.7,1.1,18.3,-0.5,1.2 +20091130,9.7,4.9,18.3,1.1,2.5 +20091201,4.7,-1.6,13.0,-1.1,4.3 +20091202,5.5,3.1,12.8,-1.0,2.0 +20091203,6.9,4.1,12.2,3.3,4.5 +20091204,4.2,0.4,10.0,2.2,3.3 +20091205,2.7,0.3,7.8,-1.1,4.4 +20091206,-0.9,-6.2,4.4,-6.1,3.1 +20091207,1.8,-2.4,11.0,-4.0,0.8 +20091208,4.2,0.7,10.6,-4.3,2.4 +20091209,6.7,0.8,18.0,1.0,4.0 +20091210,3.0,-9.2,18.3,-2.2,5.9 +20091211,-3.7,-17.2,0.0,-7.0,5.4 +20091212,-2.4,-13.0,3.3,-6.7,1.0 +20091213,3.9,1.7,15.0,-6.1,2.5 +20091214,9.1,6.8,17.8,-0.5,1.9 +20091215,10.2,8.4,17.8,4.4,4.1 +20091216,3.7,-6.8,12.8,-1.1,6.5 +20091217,1.8,-7.6,9.0,-3.3,2.4 +20091218,0.8,-2.8,8.9,-3.8,1.3 +20091219,0.2,-1.2,2.0,-1.0,3.3 +20091220,-0.1,-2.7,1.1,-2.0,5.1 +20091221,-2.3,-5.0,3.3,-8.3,3.1 +20091222,-0.7,-4.4,8.3,-8.3,0.7 +20091223,0.3,-2.7,8.3,-7.2,0.5 +20091224,0.8,-2.4,8.3,-5.0,1.7 +20091225,2.3,1.4,6.7,-4.9,2.8 +20091226,1.9,-2.6,4.4,-1.1,4.0 +20091227,0.7,-5.0,9.0,-4.0,1.9 +20091228,1.6,-6.8,8.9,-4.3,5.5 +20091229,-1.2,-9.4,4.0,-4.0,6.6 +20091230,-0.9,-9.5,4.4,-5.6,2.3 +20091231,3.3,1.2,10.0,-5.0,1.6 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/wtmpReader/wtmpReader.omi b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/wtmpReader/wtmpReader.omi new file mode 100644 index 00000000..cb66d4a8 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/models/wtmpReader/wtmpReader.omi @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/readme.txt b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/readme.txt new file mode 100644 index 00000000..01194b7c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/readme.txt @@ -0,0 +1,12 @@ +To run the model. + +1. Double click start_muskingum_service.bat to start the Muskingum service. This command screen will remain open while to model runs. +[This assumes you have Python and the necessary Python libraries installed.] + +2. Double click run-SmithBranchModel-01.bat to run model. Results from model are written to the root directory. + +3. Close service command line window to end Muskingum service. + +Jon Goodall +U. of South Carolina +March, 2009 diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/run-SmithBranchModel-config.bat b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/run-SmithBranchModel-config.bat new file mode 100644 index 00000000..acee5df5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/run-SmithBranchModel-config.bat @@ -0,0 +1,36 @@ +@echo off +set starttime=%time% + +bin\Oatc.OpenMI.CommandLine.exe -r SmithBranchModel.opr +set endtime=%time% + +set /a hrs=%endtime:~0,2% +set /a hrs=%hrs%-%starttime:~0,2% + +set /a mins=%endtime:~3,2% +set /a mins=%mins%-%starttime:~3,2% + +set /a secs=%endtime:~6,2% +set /a secs=%secs%-%starttime:~6,2% + +if %secs% lss 0 ( + set /a secs=!secs!+60 + set /a mins=!mins!-1 +) +if %mins% lss 0 ( + set /a mins=!mins!+60 + set /a hrs=!hrs!-1 +) +if %hrs% lss 0 ( + set /a hrs=!hrs!+24 +) +set /a tot=%secs%+%mins%*60+%hrs%*3600 + +echo End = %endtime% +echo Start = %starttime% +echo Hours = %hrs% +echo Minutes = %mins% +echo Seconds = %secs% +echo Total = %tot% + +pause \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/start_muskingum_service.bat b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/start_muskingum_service.bat new file mode 100644 index 00000000..c8268726 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Examples/example_configuration/start_muskingum_service.bat @@ -0,0 +1,2 @@ +cd .\models\routing\Muskingum\ +start_python_service.bat \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/HelpPage.htm b/Source/Plugins/Plugins.HydroModeler/HelpPage.htm new file mode 100644 index 00000000..b438c0b6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/HelpPage.htm @@ -0,0 +1,15 @@ + + + + OmiEd help + + + + You will be automatically redirected to OmiEd help page in 5 seconds.
    + If not, please go to ../Help/Help.html. + + diff --git a/Source/Plugins/Plugins.HydroModeler/HydroModeler.sln b/Source/Plugins/Plugins.HydroModeler/HydroModeler.sln new file mode 100644 index 00000000..1676098f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/HydroModeler.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroModeler", "HydroModeler.csproj", "{D26B704D-1FC9-4040-A29D-21FB8707ECE1}" + ProjectSection(ProjectDependencies) = postProject + {5ED7C71D-E89A-41F7-8B34-54C0C099412C} = {5ED7C71D-E89A-41F7-8B34-54C0C099412C} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Gui.Core", "Utilities\OpenMI\gui\Core\Oatc.OpenMI.Gui.Core.csproj", "{5ED7C71D-E89A-41F7-8B34-54C0C099412C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D26B704D-1FC9-4040-A29D-21FB8707ECE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D26B704D-1FC9-4040-A29D-21FB8707ECE1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D26B704D-1FC9-4040-A29D-21FB8707ECE1}.Debug|x86.ActiveCfg = Debug|Any CPU + {D26B704D-1FC9-4040-A29D-21FB8707ECE1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D26B704D-1FC9-4040-A29D-21FB8707ECE1}.Release|Any CPU.Build.0 = Release|Any CPU + {D26B704D-1FC9-4040-A29D-21FB8707ECE1}.Release|x86.ActiveCfg = Release|Any CPU + {5ED7C71D-E89A-41F7-8B34-54C0C099412C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5ED7C71D-E89A-41F7-8B34-54C0C099412C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5ED7C71D-E89A-41F7-8B34-54C0C099412C}.Debug|x86.ActiveCfg = Debug|Any CPU + {5ED7C71D-E89A-41F7-8B34-54C0C099412C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5ED7C71D-E89A-41F7-8B34-54C0C099412C}.Release|Any CPU.Build.0 = Release|Any CPU + {5ED7C71D-E89A-41F7-8B34-54C0C099412C}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/MainForm.cs b/Source/Plugins/Plugins.HydroModeler/MainForm.cs new file mode 100644 index 00000000..11faba82 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/MainForm.cs @@ -0,0 +1,1638 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Diagnostics; +using System.Text; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.IO; +using System.Threading; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Gui.Core; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + /// + /// Summary description for MainForm. + /// + public class MainForm : System.Windows.Forms.Form + { + #region Window controls + + private System.Windows.Forms.HScrollBar compositionHScrollBar; + private System.Windows.Forms.PictureBox compositionBox; + private System.Windows.Forms.VScrollBar compositionVScrollBar; + + private System.Windows.Forms.MainMenu mainMenu1; + private System.Windows.Forms.MenuItem menuItem15; + private System.Windows.Forms.MenuItem menuItem17; + private System.Windows.Forms.MenuItem menuItem18; + private System.Windows.Forms.ContextMenu contextMenu; + private System.Windows.Forms.MenuItem menuFileNew; + private System.Windows.Forms.MenuItem menuFileOpen; + private System.Windows.Forms.MenuItem menuFileSave; + private System.Windows.Forms.MenuItem menuFileSaveAs; + private System.Windows.Forms.MenuItem menuFileExit; + private System.Windows.Forms.MenuItem menuEditModelAdd; + private System.Windows.Forms.MenuItem menuEditTriggerAdd; + private System.Windows.Forms.MenuItem menuHelpAbout; + private System.Windows.Forms.MenuItem contextConnectionAdd; + private System.Windows.Forms.MenuItem contextModelProperties; + private System.Windows.Forms.MenuItem contextConnectionProperties; + private System.Windows.Forms.MenuItem contextModelRemove; + private System.Windows.Forms.MenuItem contextConnectionRemove; + private System.Windows.Forms.MenuItem contextModelAdd; + private System.Windows.Forms.MenuItem menuFileReload; + private System.Windows.Forms.MenuItem menuViewModelProperties; + private System.Windows.Forms.MenuItem menuEditConnectionProperties; + private System.Windows.Forms.MenuItem menuEditConnectionAdd; + private System.Windows.Forms.MenuItem menuFile; + private System.Windows.Forms.MenuItem menuEditRunProperties; + private System.Windows.Forms.MenuItem menuHelp; + private System.Windows.Forms.ImageList imageList; + private System.Windows.Forms.MenuItem menuItem1; + private System.Windows.Forms.MenuItem contextRun; + private System.Windows.Forms.MenuItem menuComposition; + + #endregion + + #region Member variables + + // pre-created dialogs + ModelDialog _modelDialog; + ConnectionDialog _connectionDialog; + AboutBox _aboutBox; + RunProperties _runProperties; + RunBox _runBox; + + + Cursor _sourceCursor, _targetCursor; + + bool _isAddingConnection = false; + UIModel _sourceModel = null; + + bool _isMovingModel = false; + Point _prevMouse; + + object _contextSelectedObject; + + CompositionManager _composition; + + string _compositionFilename = null; + + Point _compositionBoxPositionInArea; + Rectangle _compositionArea; + + const string ApplicationTitle = "Configuration Editor"; + private System.Windows.Forms.MenuItem contextDivider; + private System.Windows.Forms.MenuItem contextAddTrigger; + private System.Windows.Forms.MenuItem menuHelpContents; + private System.Windows.Forms.MenuItem menuItem3; + private System.Windows.Forms.MenuItem menuOptions; + private System.Windows.Forms.MenuItem menuRegisterExtensions; + + const string DefaultFilename = "NewComposition.opr"; + private ListView fileList; + + // record the culture that the application starts in + System.Globalization.CultureInfo _cultureInfo = Application.CurrentCulture; + + #endregion + + /// + /// Creates a new instance of MainForm window. + /// + public MainForm() + { + // + // Required for Windows Form Designer support + // + + _compositionBoxPositionInArea = new Point(0,0); + + InitializeComponent(); + + _composition = new CompositionManager(); + + _prevMouse = new Point(0,0); + + _sourceCursor = new Cursor(GetType(), "Source.cur"); + _targetCursor = new Cursor(GetType(), "Target.cur"); + + // create dialogs + //_modelDialog = new ModelDialog(); + //_connectionDialog = new ConnectionDialog(); + //_aboutBox = new AboutBox(); + //_runProperties = new RunProperties(); + //_runBox = new RunBox(); + + + menuRegisterExtensions.Checked = Utils.AreFileExtensionsRegistered( Application.ExecutablePath ); + } + + + #region Methods and properties + + /// + /// Method is used to start application. + /// + /// Command-line arguments. + /// Method proceeds all command-line args ("/opr %", "/reg", ...) + /// and perform requested actions. + private static void ProceedCommandLineArgs( string[] args ) + { + // read commad-line args + string oprFilename = null; + string omiFilename = null; + bool mta = false; + + for( int i=0; i + /// Opens composition from OPR file. + ///
    + /// Full path to OPR file. + private void OpenOprFile( string fullPath ) + { + try + { + _compositionFilename = null; + _composition.Release(); + _composition.LoadFromFile( fullPath ); + _compositionFilename = fullPath; + } + catch( Exception ex ) + { + MessageBox.Show(ex.ToString(), "Error occured while loading the file...", MessageBoxButtons.OK, MessageBoxIcon.Error); + _composition.Release(); + } + + UpdateControls(); + UpdateTitle(); + + CompositionUpdateArea(); + CompositionCenterView(); + } + + + /// + /// Adds one model to composition. + /// + /// Full path to OMI file. + private void AddModel( string fullPath ) + { + try + { + _composition.AddModel( null, fullPath ); + } + catch( Exception ex ) + { + MessageBox.Show( + "OMI filename: "+fullPath+"\n"+"Exception: "+ ex.ToString(), + "Error occured while adding the model...", + MessageBoxButtons.OK, + MessageBoxIcon.Error ); + } + + // Reset the culture every time a new model is added. + // The new model may be of a different culture, we want to retain the original culture of the application, + // which will be that of the User's computer. + Application.CurrentCulture = _cultureInfo; + + CompositionUpdateArea(); + UpdateControls(); + UpdateTitle(); + Invalidate(); + } + + + /// + /// Method calculates size of composition area and it's scroll-bars according to + /// position of models' rectangles and size of the window. + /// + /// + /// This method is called if some model has moved, main window has resized or if new file was opened. + /// + private void CompositionUpdateArea() + { + Point topLeft = new Point( 0, 0 ), + bottomRight = new Point( 0, 0 ); + + foreach( UIModel model in _composition.Models ) + { + topLeft.X = Math.Min( topLeft.X, model.Rect.X ); + topLeft.Y = Math.Min( topLeft.Y, model.Rect.Y ); + + bottomRight.X = Math.Max( bottomRight.X, model.Rect.X + model.Rect.Width ); + bottomRight.Y = Math.Max( bottomRight.Y, model.Rect.Y + model.Rect.Height ); + } + + // increase size of area + topLeft.X -= compositionBox.Width / 2; + topLeft.Y -= compositionBox.Height / 2; + bottomRight.X += compositionBox.Width - compositionBox.Width / 2; + bottomRight.Y += compositionBox.Height - compositionBox.Height / 2; + + _compositionArea = new Rectangle( topLeft.X, topLeft.Y, bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y ); + + // update scrollbars + + compositionHScrollBar.Minimum = _compositionArea.X; + compositionHScrollBar.Maximum = _compositionArea.X + _compositionArea.Width; + compositionHScrollBar.LargeChange = compositionBox.Width; + //compositionHScrollBar.Value = compositionHScrollBar.Value; // don't change Value, but call ValueChange event + + + compositionVScrollBar.Minimum = _compositionArea.Y; + compositionVScrollBar.Maximum = _compositionArea.Y + _compositionArea.Height; + compositionVScrollBar.LargeChange = compositionBox.Height; + //compositionVScrollBar.Value = compositionVScrollBar.Value; // todo + + compositionScrollBar_ValueChanged(null, null); + + compositionBox.Invalidate(); + } + + + /// + /// Sets composition box to center. + /// + private void CompositionCenterView() + { + // todo... + } + + private Point CompositionWindowPointToAreaPoint( Point point ) + { + return( new Point(_compositionBoxPositionInArea.X+point.X, _compositionBoxPositionInArea.Y+point.Y) ); + } + + private Point CompositionAreaPointToWindowPoint( Point point ) + { + return( new Point(point.X - _compositionBoxPositionInArea.X, point.Y - _compositionBoxPositionInArea.Y) ); + } + + + private void UpdateTitle() + { + this.Text = ApplicationTitle + (_composition.ShouldBeSaved ? " *" : "") ; + } + + + private void UpdateControls() + { + contextConnectionAdd.Enabled = menuEditConnectionAdd.Enabled = _composition.Models.Count > 1 ; + + bool hasTrigger = _composition.HasTrigger(); + + contextAddTrigger.Enabled = menuEditTriggerAdd.Enabled = !hasTrigger; + + contextRun.Enabled = menuEditRunProperties.Enabled = hasTrigger && _composition.Models.Count > 1; + } + + + /// + /// If composition should be saved, this method shows message box, where the user can do it, can + /// ignore it or can cancel current operation. + /// + /// Returns true if current operation can continue, or false + /// if user pressed cancel button. + private bool CheckIfSaved() + { + if( _composition.ShouldBeSaved ) + { + switch( MessageBox.Show("The composition has been changed.\n\nDo you want to save the changes?", "Warning", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) ) + { + case DialogResult.Yes: + menuFileSave_Click(null, null); + return( !_composition.ShouldBeSaved ); + case DialogResult.No: + return( true ); + default: + return( false ); + } + } + return( true ); + } + + + private void ShowLinkDialog( UIConnection link ) + { + // find maximum link ID of all existing links + int maxID = 0; + foreach( UIConnection uiLink in _composition.Connections ) + foreach( ILink iLink in uiLink.Links ) + maxID = Math.Max( int.Parse(iLink.ID), maxID ); + + _connectionDialog.PopulateDialog( link, maxID+1 ); + if( _connectionDialog.ShowDialog(this) == DialogResult.OK ) + _composition.ShouldBeSaved = true; + + UpdateTitle(); + } + + + private UIModel GetModel( int x, int y ) + { + Point areaPoint = CompositionWindowPointToAreaPoint( new Point(x,y) ); + + // search from last model to first for case some models are overlapping + for( int i=_composition.Models.Count-1; i>=0; i-- ) + { + UIModel model = (UIModel)_composition.Models[i]; + + if( model.IsPointInside(areaPoint) ) + return( model ); + } + + return( null ); + } + + + private UIConnection GetConnection( int x, int y ) + { + Point areaPoint = CompositionWindowPointToAreaPoint( new Point(x,y) ); + + for( int i=_composition.Connections.Count-1; i>=0; i-- ) + { + UIConnection connection = (UIConnection)_composition.Connections[i]; + + if( connection.IsOnConnectionLine(areaPoint) ) + return( connection ); + } + + return( null ); + } + + + private void StopAddingConnection() + { + _isAddingConnection = false; + compositionBox.Cursor = Cursors.Default; + _sourceModel = null; + } + + private void StopMovingModel() + { + _isMovingModel = false; + foreach( UIModel model in _composition.Models ) + model.IsMoving = false; + compositionBox.Invalidate(); + } + + + private void StopAllActions() + { + StopAddingConnection(); + StopMovingModel(); + } + + + #endregion + + #region MainForm event handlers + + private void MainForm_Load(object sender, System.EventArgs e) + { + MainForm_SizeChanged(sender, e); + UpdateTitle(); + UpdateControls(); + CompositionUpdateArea(); + } + + + private void MainForm_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) + { + MessageBox.Show("form1, dragDrop"); + + } + + + private void MainForm_SizeChanged(object sender, System.EventArgs e) + { + /*// resize all elements so they fit to window + const int border = 5; + const int scrollBarWidth = 16; + + // listBoxOutput + listBoxOutput.Height = (ClientRectangle.Height * 3) / 10; // 30% + listBoxOutput.Width = ClientRectangle.Width - 2*border; + listBoxOutput.Top = ClientRectangle.Height - (listBoxOutput.Height+border); + listBoxOutput.Left = border; + + //compositionBox.BackColor = Color.Brown; // todo + + // compositionBox + compositionBox.Top = border; + compositionBox.Left = border; + compositionBox.Width = listBoxOutput.Width - scrollBarWidth; + compositionBox.Height = ClientRectangle.Height - listBoxOutput.Height - scrollBarWidth - 3*border; + + // compositionVScrollBar + compositionVScrollBar.Width = scrollBarWidth; + compositionVScrollBar.Height = compositionBox.Height; + compositionVScrollBar.Top = compositionBox.Top; + compositionVScrollBar.Left = border + compositionBox.Width; + + // compositionHScrollBar + compositionHScrollBar.Width = compositionBox.Width; + compositionHScrollBar.Height = scrollBarWidth; + compositionHScrollBar.Top = border + compositionBox.Height; + compositionHScrollBar.Left = border;*/ + + CompositionUpdateArea(); + } + + + private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // if composition isn't saved, show message box, and maybe stop the closing + e.Cancel = !CheckIfSaved(); + + if( !e.Cancel ) + { + _composition.Release(); + } + } + + + private void MainForm_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) + { + // ESC cancels adding connection + if( _isAddingConnection && e.KeyChar == 27 ) + { + StopAddingConnection(); + e.Handled = true; + Invalidate(); + } + } + + + #endregion + + #region Main menu event handlers + + private void menuEditModelAdd_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + OpenFileDialog dlgFile = new OpenFileDialog(); + dlgFile.CheckFileExists = true; + dlgFile.CheckPathExists = true; + dlgFile.Title = "Add model..."; + dlgFile.Filter = "OpenMI models (*.omi)|*.omi|All files|*.*"; + dlgFile.Multiselect = false; + + if( dlgFile.ShowDialog( this ) == DialogResult.OK ) + AddModel( dlgFile.FileName ); + + dlgFile.Dispose(); + } + + + private void menuEditTriggerAdd_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + try + { + _composition.AddModel( null, CompositionManager.TriggerModelID ); + } + catch( Exception ex ) + { + MessageBox.Show( + "Exception: "+ ex.ToString(), + "Error occured while adding the trigger...", + MessageBoxButtons.OK, + MessageBoxIcon.Error ); + } + + UpdateControls(); + UpdateTitle(); + CompositionUpdateArea(); + } + + + private void menuDeployRun_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + _runProperties.PopulateDialog( _composition, _compositionFilename==null ); + DialogResult result = _runProperties.ShowDialog( this ); + + UpdateTitle(); + + if( result == DialogResult.OK ) + { + // user decided to run the composition + + // ### prepare listeners + ArrayList listOfListeners = new ArrayList(); + + // progress bar + ProgressBarListener progressBarListener = new ProgressBarListener( _composition.GetSimulationTimehorizon(), _runBox.ProgressBarRun ); + listOfListeners.Add( progressBarListener ); + + // log file + if( _composition.LogToFile!=null && _composition.LogToFile!="" ) + { + // get composition file's directory to logfile is saved in same directory + string logFileName; + if( _compositionFilename!=null ) + { + FileInfo compositionFileInfo = new FileInfo(_compositionFilename); + FileInfo logFileInfo = Utils.GetFileInfo( compositionFileInfo.DirectoryName, _composition.LogToFile ); + logFileName = logFileInfo.FullName; + } + else + logFileName = _composition.LogToFile; + + LogFileListener logFileListener = new LogFileListener( _composition.ListenedEventTypes, logFileName ); + listOfListeners.Add( logFileListener ); + } + + // list box + if( _composition.ShowEventsInListbox ) + { + ListViewListener listViewListener = new ListViewListener( _composition.ListenedEventTypes, _runBox.ListViewEvents, 400 ); + listOfListeners.Add( listViewListener ); + } + + const uint actionInterval = 200; // in milliseconds + + // ### create proxy listener and register other listeners to it + IListener proxyListener; + if( _composition.RunInSameThread ) + { + // DoEvents listener + DoEventsListener doEventsListener = new DoEventsListener( actionInterval ); + listOfListeners.Add( doEventsListener ); + + ProxyListener proxySingleThreadListener = new ProxyListener(); + proxySingleThreadListener.Initialize( listOfListeners ); + proxyListener = proxySingleThreadListener; + } + else + { + ProxyMultiThreadListener proxyMultiThreadListener = new ProxyMultiThreadListener(); + proxyMultiThreadListener.Initialize( listOfListeners, _runBox.Timer, (int)actionInterval ); + proxyListener = proxyMultiThreadListener; + } + + // ### populate and show run-dialog and run simulation from it + Invalidate(); + _runBox.PopuplateDialog( _composition, proxyListener ); + _runBox.ShowDialog( this ); // this fires simulation + + + } + } + + + private void menuFileNew_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + if( !CheckIfSaved() ) + return; + + _composition.Release(); + + _compositionFilename = null; + UpdateControls(); + UpdateTitle(); + CompositionUpdateArea(); + } + + + private void menuFileOpen_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + if( !CheckIfSaved() ) + return; + + OpenFileDialog dlgFile = new OpenFileDialog(); + dlgFile.Filter = "OmiEd projects (*.opr)|*.opr|All files|*.*"; + dlgFile.Multiselect = false; + dlgFile.CheckFileExists = true; + dlgFile.CheckPathExists = true; + dlgFile.Title = "Open project..."; + + if( dlgFile.ShowDialog( this ) == DialogResult.OK ) + OpenOprFile( dlgFile.FileName ); + + dlgFile.Dispose(); + + } + + + private void menuFileSave_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + string filename; + + if( _compositionFilename == null ) + { + SaveFileDialog dlgFile = new SaveFileDialog(); + dlgFile.Filter = "OmiEd projects (*.opr)|*.opr|All files|*.*"; + dlgFile.ValidateNames = true; + dlgFile.FileName = DefaultFilename; + dlgFile.Title = "Save project..."; + dlgFile.AddExtension = true; + dlgFile.OverwritePrompt = true; + + if( dlgFile.ShowDialog( this ) != DialogResult.OK ) + { + dlgFile.Dispose(); + return; + } + + filename = dlgFile.FileName; + + dlgFile.Dispose(); + } + else + filename = _compositionFilename; + + try + { + _composition.SaveToFile( filename ); + _compositionFilename = filename; + } + catch( System.Exception ex ) + { + MessageBox.Show("Composition cannot be saved, make sure the file is not write-protected. Details: "+ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + UpdateTitle(); + } + + + private void menuFileSaveAs_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + SaveFileDialog dlgFile = new SaveFileDialog(); + dlgFile.Filter = "OmiEd projects (*.opr)|*.opr|All files|*.*"; + dlgFile.ValidateNames = true; + dlgFile.Title = "Save project As..."; + dlgFile.AddExtension = true; + dlgFile.OverwritePrompt = true; + + if( _compositionFilename != null ) + dlgFile.FileName = _compositionFilename; + else + dlgFile.FileName = DefaultFilename; + + if( dlgFile.ShowDialog( this ) != DialogResult.OK ) + { + dlgFile.Dispose(); + return; + } + + try + { + _composition.SaveToFile( dlgFile.FileName ); + _compositionFilename = dlgFile.FileName; + } + catch( System.Exception ex ) + { + MessageBox.Show("Composition cannot be saved, make sure the file is not write-protected. Details: "+ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + dlgFile.Dispose(); + + UpdateTitle(); + } + + + private void menuFileReload_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + _composition.Reload(); + } + + + private void menuFileExit_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + Close(); + } + + + private void menuEditConnectionAdd_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + _isAddingConnection = true; + compositionBox.Cursor = _sourceCursor; + //Cursor.Current = _sourceCursor; + } + + + private void menuViewModelProperties_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + _modelDialog.PopulateDialog( _composition.Models ); + _modelDialog.ShowDialog( this ); + } + + + private void menuRegisterExtensions_Click(object sender, System.EventArgs e) + { + if( menuRegisterExtensions.Checked ) + { + Utils.UnregisterFileExtensions(); + menuRegisterExtensions.Checked = false; + } + else + { + Utils.RegisterFileExtensions( Application.ExecutablePath ); + menuRegisterExtensions.Checked = true; + } + } + + + private void menuHelpAbout_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + _aboutBox.ShowDialog( this ); + } + + + private void menuHelpContents_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + FileInfo fileInfo = new FileInfo( Application.StartupPath + "\\Help.html" ); + + if( !fileInfo.Exists ) + fileInfo = new FileInfo( Application.StartupPath + "\\HelpPage.htm" ); + + // trick to open file in project directory (exe is in "projdir\bin\debug") + // if not found in startup directory + if( !fileInfo.Exists ) + fileInfo = new FileInfo( Application.StartupPath + "\\..\\..\\HelpPage.htm" ); + + if( fileInfo.Exists ) + { + ProcessStartInfo info = new ProcessStartInfo( fileInfo.FullName ); + Process.Start( info ); + } + } + + + #endregion + + #region Context menu event handlers + + private void contextMenu_Popup(object sender, System.EventArgs e) + { + StopAllActions(); + + contextConnectionRemove.Visible = true; + contextConnectionProperties.Visible = true; + contextModelProperties.Visible = true; + contextModelRemove.Visible = true; + contextAddTrigger.Visible = true; + contextRun.Visible = true; + contextConnectionAdd.Visible = true; + + + if( _contextSelectedObject == null ) + { + contextDivider.Visible = false; + contextConnectionRemove.Visible = false; + contextConnectionProperties.Visible = false; + contextModelProperties.Visible = false; + contextModelRemove.Visible = false; + } + else if( _contextSelectedObject is UIConnection ) + { + contextDivider.Visible = true; + contextConnectionRemove.Visible = true; + contextConnectionProperties.Visible = true; + contextModelProperties.Visible = false; + contextModelRemove.Visible = false; + } + else if( _contextSelectedObject is UIModel ) + { + contextDivider.Visible = true; + contextConnectionRemove.Visible = false; + contextConnectionProperties.Visible = false; + contextModelProperties.Visible = true; + contextModelRemove.Visible = true; + } + else + Debug.Assert( false ); + + // Make disabled items invisible + if( !contextConnectionRemove.Enabled ) + contextConnectionRemove.Visible = false; + if( !contextConnectionProperties.Enabled ) + contextConnectionProperties.Visible = false; + if( !contextModelProperties.Enabled ) + contextModelProperties.Visible = false; + if( !contextModelRemove.Enabled ) + contextModelRemove.Visible = false; + if( !contextAddTrigger.Enabled ) + contextAddTrigger.Visible = false; + if( !contextRun.Enabled ) + contextRun.Visible = false; + if( !contextConnectionAdd.Enabled ) + contextConnectionAdd.Visible = false; + } + + + private void contextConnectionAdd_Click(object sender, System.EventArgs e) + { + menuEditConnectionAdd_Click(sender, e); + CompositionUpdateArea(); + UpdateControls(); + UpdateTitle(); + } + + private void contextConnectionRemove_Click(object sender, System.EventArgs e) + { + _composition.RemoveConnection( (UIConnection)_contextSelectedObject ); + CompositionUpdateArea(); + UpdateControls(); + UpdateTitle(); + } + + private void contextConnectionProperties_Click(object sender, System.EventArgs e) + { + ShowLinkDialog( (UIConnection)_contextSelectedObject ); + UpdateTitle(); + } + + private void contextModelAdd_Click(object sender, System.EventArgs e) + { + menuEditModelAdd_Click( sender, e ); + } + + private void contextModelRemove_Click(object sender, System.EventArgs e) + { + _composition.RemoveModel( (UIModel)_contextSelectedObject ); + CompositionUpdateArea(); + UpdateControls(); + UpdateTitle(); + } + + private void contextModelProperties_Click(object sender, System.EventArgs e) + { + _modelDialog.PopulateDialog( _composition.Models, ((UIModel)_contextSelectedObject).ModelID ); + _modelDialog.ShowDialog( this ); + } + + private void contextRun_Click(object sender, System.EventArgs e) + { + menuDeployRun_Click(sender, e); + } + + + private void contextAddTrigger_Click(object sender, System.EventArgs e) + { + menuEditTriggerAdd_Click( sender, e ); + } + + + #endregion + + + + #region Composition box event handlers + + private void compositionScrollBar_ValueChanged(object sender, System.EventArgs e) + { + _compositionBoxPositionInArea.X = compositionHScrollBar.Value; + _compositionBoxPositionInArea.Y = compositionVScrollBar.Value; + compositionBox.Invalidate(); + } + + private void compositionBox_Paint(object sender, System.Windows.Forms.PaintEventArgs e) + { + // draw OpenMI logo + e.Graphics.DrawImage( imageList.Images[0], 0, 0 ); + + foreach (UIConnection link in _composition.Connections) + link.Draw( _compositionBoxPositionInArea, e.Graphics ); + + foreach (UIModel model in _composition.Models) + model.Draw( _compositionBoxPositionInArea, e.Graphics ); + + // Draw link currently being added (if any) + //if( _isAddingLink && _leftMouseButtonIsDown ) + // UIConnection.DrawLink( (float)_prevMouse.X, (float)_prevMouse.Y, (float)_currentMouse.X, (float)_currentMouse.Y, _compositionBoxPositionInArea, e.Graphics); + } + + + private void compositionBox_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) + { + StopMovingModel(); + compositionBox.Invalidate(); + + bool actionFoundOut = false; + + // Left mouse button + if( e.Button == MouseButtons.Left ) + { + // if adding a connection + if( _isAddingConnection ) + { + UIModel model = GetModel( e.X, e.Y ); + + // if some model selected + if( model!=null ) + { + // if source model selected + if( _sourceModel == null ) + { + _sourceModel = model; + compositionBox.Cursor = _targetCursor; + } + else + { + // target model selected => add connection to composition + if( _sourceModel != model ) + _composition.AddConnection( _sourceModel, model ); + StopAddingConnection(); + + } + } + else + { + // no model selected + StopAddingConnection(); + } + + actionFoundOut = true; + } + + // move model ? + if( !actionFoundOut ) + { + UIModel model = GetModel( e.X, e.Y ); + + if( model != null ) + { + _prevMouse.X = e.X; + _prevMouse.Y = e.Y; + + _isMovingModel = true; + model.IsMoving = true; + + actionFoundOut = true; + } + } + + // or show link dialog ? + if( !actionFoundOut ) + { + UIConnection connection = GetConnection(e.X,e.Y); + if( connection!=null ) + ShowLinkDialog( connection ); + } + } + else if( e.Button == MouseButtons.Right ) + { + // right button => show context menu + + // stop other actions + StopAddingConnection(); + StopMovingModel(); + + // get model under cursor + _contextSelectedObject = GetModel(e.X,e.Y); + if( _contextSelectedObject == null ) + _contextSelectedObject = GetConnection(e.X,e.Y); + + contextMenu.Show( compositionBox, new Point(e.X,e.Y) ); + } + } + + private void compositionBox_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) + { + // moving model ? + if( _isMovingModel ) + { + foreach( UIModel model in _composition.Models ) + if( model.IsMoving ) + { + model.Rect.X += e.X -_prevMouse.X; + model.Rect.Y += e.Y -_prevMouse.Y; + + _prevMouse.X = e.X; + _prevMouse.Y = e.Y; + + _composition.ShouldBeSaved = true; + CompositionUpdateArea(); + UpdateTitle(); + compositionBox.Invalidate(); + } + } + + } + + private void compositionBox_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) + { + StopMovingModel(); + } + + + #endregion + + #region .NET generated members + + private System.ComponentModel.IContainer components; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + + /// + /// The main entry point for the application. + /// + static void Main( string[] args ) + { + try + { + ProceedCommandLineArgs( args ); + } + catch( Exception e ) + { + MessageBox.Show( e.ToString(), "Error occured while starting the application", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + + + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + this.mainMenu1 = new System.Windows.Forms.MainMenu(this.components); + this.menuFile = new System.Windows.Forms.MenuItem(); + this.menuFileNew = new System.Windows.Forms.MenuItem(); + this.menuItem17 = new System.Windows.Forms.MenuItem(); + this.menuFileReload = new System.Windows.Forms.MenuItem(); + this.menuItem18 = new System.Windows.Forms.MenuItem(); + this.menuFileOpen = new System.Windows.Forms.MenuItem(); + this.menuFileSave = new System.Windows.Forms.MenuItem(); + this.menuFileSaveAs = new System.Windows.Forms.MenuItem(); + this.menuItem15 = new System.Windows.Forms.MenuItem(); + this.menuFileExit = new System.Windows.Forms.MenuItem(); + this.menuComposition = new System.Windows.Forms.MenuItem(); + this.menuEditModelAdd = new System.Windows.Forms.MenuItem(); + this.menuEditConnectionAdd = new System.Windows.Forms.MenuItem(); + this.menuEditTriggerAdd = new System.Windows.Forms.MenuItem(); + this.menuItem1 = new System.Windows.Forms.MenuItem(); + this.menuEditConnectionProperties = new System.Windows.Forms.MenuItem(); + this.menuViewModelProperties = new System.Windows.Forms.MenuItem(); + this.menuEditRunProperties = new System.Windows.Forms.MenuItem(); + this.menuOptions = new System.Windows.Forms.MenuItem(); + this.menuRegisterExtensions = new System.Windows.Forms.MenuItem(); + this.menuHelp = new System.Windows.Forms.MenuItem(); + this.menuHelpContents = new System.Windows.Forms.MenuItem(); + this.menuItem3 = new System.Windows.Forms.MenuItem(); + this.menuHelpAbout = new System.Windows.Forms.MenuItem(); + this.compositionHScrollBar = new System.Windows.Forms.HScrollBar(); + this.compositionBox = new System.Windows.Forms.PictureBox(); + this.compositionVScrollBar = new System.Windows.Forms.VScrollBar(); + this.contextMenu = new System.Windows.Forms.ContextMenu(); + this.contextModelAdd = new System.Windows.Forms.MenuItem(); + this.contextConnectionAdd = new System.Windows.Forms.MenuItem(); + this.contextAddTrigger = new System.Windows.Forms.MenuItem(); + this.contextRun = new System.Windows.Forms.MenuItem(); + this.contextDivider = new System.Windows.Forms.MenuItem(); + this.contextConnectionRemove = new System.Windows.Forms.MenuItem(); + this.contextConnectionProperties = new System.Windows.Forms.MenuItem(); + this.contextModelRemove = new System.Windows.Forms.MenuItem(); + this.contextModelProperties = new System.Windows.Forms.MenuItem(); + this.imageList = new System.Windows.Forms.ImageList(this.components); + this.fileList = new System.Windows.Forms.ListView(); + ((System.ComponentModel.ISupportInitialize)(this.compositionBox)).BeginInit(); + this.SuspendLayout(); + // + // mainMenu1 + // + this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuFile, + this.menuComposition, + this.menuOptions, + this.menuHelp}); + // + // menuFile + // + this.menuFile.Index = 0; + this.menuFile.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuFileNew, + this.menuItem17, + this.menuFileReload, + this.menuItem18, + this.menuFileOpen, + this.menuFileSave, + this.menuFileSaveAs, + this.menuItem15, + this.menuFileExit}); + this.menuFile.Text = "&File"; + // + // menuFileNew + // + this.menuFileNew.Index = 0; + this.menuFileNew.Shortcut = System.Windows.Forms.Shortcut.CtrlN; + this.menuFileNew.Text = "&New"; + this.menuFileNew.Click += new System.EventHandler(this.menuFileNew_Click); + // + // menuItem17 + // + this.menuItem17.Index = 1; + this.menuItem17.Text = "-"; + // + // menuFileReload + // + this.menuFileReload.Index = 2; + this.menuFileReload.Shortcut = System.Windows.Forms.Shortcut.CtrlR; + this.menuFileReload.Text = "&Reload"; + this.menuFileReload.Click += new System.EventHandler(this.menuFileReload_Click); + // + // menuItem18 + // + this.menuItem18.Index = 3; + this.menuItem18.Text = "-"; + // + // menuFileOpen + // + this.menuFileOpen.Index = 4; + this.menuFileOpen.Shortcut = System.Windows.Forms.Shortcut.CtrlO; + this.menuFileOpen.Text = "&Open..."; + this.menuFileOpen.Click += new System.EventHandler(this.menuFileOpen_Click); + // + // menuFileSave + // + this.menuFileSave.Index = 5; + this.menuFileSave.Shortcut = System.Windows.Forms.Shortcut.CtrlS; + this.menuFileSave.Text = "&Save"; + this.menuFileSave.Click += new System.EventHandler(this.menuFileSave_Click); + // + // menuFileSaveAs + // + this.menuFileSaveAs.Index = 6; + this.menuFileSaveAs.Text = "Save &As..."; + this.menuFileSaveAs.Click += new System.EventHandler(this.menuFileSaveAs_Click); + // + // menuItem15 + // + this.menuItem15.Index = 7; + this.menuItem15.Text = "-"; + // + // menuFileExit + // + this.menuFileExit.Index = 8; + this.menuFileExit.Text = "E&xit"; + this.menuFileExit.Click += new System.EventHandler(this.menuFileExit_Click); + // + // menuComposition + // + this.menuComposition.Index = 1; + this.menuComposition.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuEditModelAdd, + this.menuEditConnectionAdd, + this.menuEditTriggerAdd, + this.menuItem1, + this.menuEditConnectionProperties, + this.menuViewModelProperties, + this.menuEditRunProperties}); + this.menuComposition.Text = "&Composition"; + // + // menuEditModelAdd + // + this.menuEditModelAdd.Index = 0; + this.menuEditModelAdd.Text = "Add &Model"; + this.menuEditModelAdd.Click += new System.EventHandler(this.menuEditModelAdd_Click); + // + // menuEditConnectionAdd + // + this.menuEditConnectionAdd.Enabled = false; + this.menuEditConnectionAdd.Index = 1; + this.menuEditConnectionAdd.Text = "Add &Connection"; + this.menuEditConnectionAdd.Click += new System.EventHandler(this.menuEditConnectionAdd_Click); + // + // menuEditTriggerAdd + // + this.menuEditTriggerAdd.Index = 2; + this.menuEditTriggerAdd.Text = "Add &Trigger"; + this.menuEditTriggerAdd.Click += new System.EventHandler(this.menuEditTriggerAdd_Click); + // + // menuItem1 + // + this.menuItem1.Index = 3; + this.menuItem1.Text = "-"; + // + // menuEditConnectionProperties + // + this.menuEditConnectionProperties.Enabled = false; + this.menuEditConnectionProperties.Index = 4; + this.menuEditConnectionProperties.Text = "Co&nnection properties..."; + // + // menuViewModelProperties + // + this.menuViewModelProperties.Index = 5; + this.menuViewModelProperties.Text = "Model &properties..."; + this.menuViewModelProperties.Click += new System.EventHandler(this.menuViewModelProperties_Click); + // + // menuEditRunProperties + // + this.menuEditRunProperties.Index = 6; + this.menuEditRunProperties.Shortcut = System.Windows.Forms.Shortcut.F5; + this.menuEditRunProperties.Text = "&Run..."; + this.menuEditRunProperties.Click += new System.EventHandler(this.menuDeployRun_Click); + // + // menuOptions + // + this.menuOptions.Index = 2; + this.menuOptions.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuRegisterExtensions}); + this.menuOptions.Text = "&Options"; + // + // menuRegisterExtensions + // + this.menuRegisterExtensions.Checked = true; + this.menuRegisterExtensions.Index = 0; + this.menuRegisterExtensions.Text = "&Register file extensions"; + this.menuRegisterExtensions.Click += new System.EventHandler(this.menuRegisterExtensions_Click); + // + // menuHelp + // + this.menuHelp.Index = 3; + this.menuHelp.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuHelpContents, + this.menuItem3, + this.menuHelpAbout}); + this.menuHelp.Text = "&Help"; + // + // menuHelpContents + // + this.menuHelpContents.Index = 0; + this.menuHelpContents.Shortcut = System.Windows.Forms.Shortcut.F1; + this.menuHelpContents.Text = "Help contents"; + this.menuHelpContents.Click += new System.EventHandler(this.menuHelpContents_Click); + // + // menuItem3 + // + this.menuItem3.Index = 1; + this.menuItem3.Text = "-"; + // + // menuHelpAbout + // + this.menuHelpAbout.Index = 2; + this.menuHelpAbout.Text = "&About Configuration Editor ..."; + this.menuHelpAbout.Click += new System.EventHandler(this.menuHelpAbout_Click); + // + // compositionHScrollBar + // + this.compositionHScrollBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.compositionHScrollBar.Location = new System.Drawing.Point(0, 236); + this.compositionHScrollBar.Maximum = 20; + this.compositionHScrollBar.Minimum = -10; + this.compositionHScrollBar.Name = "compositionHScrollBar"; + this.compositionHScrollBar.Size = new System.Drawing.Size(376, 16); + this.compositionHScrollBar.TabIndex = 2; + this.compositionHScrollBar.ValueChanged += new System.EventHandler(this.compositionScrollBar_ValueChanged); + // + // compositionBox + // + this.compositionBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.compositionBox.BackColor = System.Drawing.Color.White; + this.compositionBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.compositionBox.Location = new System.Drawing.Point(0, 0); + this.compositionBox.Name = "compositionBox"; + this.compositionBox.Size = new System.Drawing.Size(376, 236); + this.compositionBox.TabIndex = 3; + this.compositionBox.TabStop = false; + this.compositionBox.Click += new System.EventHandler(this.compositionBox_Click); + this.compositionBox.Paint += new System.Windows.Forms.PaintEventHandler(this.compositionBox_Paint); + this.compositionBox.MouseDown += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseDown); + this.compositionBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseMove); + this.compositionBox.MouseUp += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseUp); + // + // compositionVScrollBar + // + this.compositionVScrollBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.compositionVScrollBar.Location = new System.Drawing.Point(376, 0); + this.compositionVScrollBar.Name = "compositionVScrollBar"; + this.compositionVScrollBar.Size = new System.Drawing.Size(16, 236); + this.compositionVScrollBar.TabIndex = 4; + this.compositionVScrollBar.ValueChanged += new System.EventHandler(this.compositionScrollBar_ValueChanged); + // + // contextMenu + // + this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.contextModelAdd, + this.contextConnectionAdd, + this.contextAddTrigger, + this.contextRun, + this.contextDivider, + this.contextConnectionRemove, + this.contextConnectionProperties, + this.contextModelRemove, + this.contextModelProperties}); + this.contextMenu.Popup += new System.EventHandler(this.contextMenu_Popup); + // + // contextModelAdd + // + this.contextModelAdd.Index = 0; + this.contextModelAdd.Text = "Add Model..."; + this.contextModelAdd.Click += new System.EventHandler(this.contextModelAdd_Click); + // + // contextConnectionAdd + // + this.contextConnectionAdd.Index = 1; + this.contextConnectionAdd.Text = "Add Connection"; + this.contextConnectionAdd.Click += new System.EventHandler(this.contextConnectionAdd_Click); + // + // contextAddTrigger + // + this.contextAddTrigger.Index = 2; + this.contextAddTrigger.Text = "Add Trigger"; + this.contextAddTrigger.Click += new System.EventHandler(this.contextAddTrigger_Click); + // + // contextRun + // + this.contextRun.Index = 3; + this.contextRun.Text = "Run..."; + this.contextRun.Click += new System.EventHandler(this.contextRun_Click); + // + // contextDivider + // + this.contextDivider.Index = 4; + this.contextDivider.Text = "-"; + // + // contextConnectionRemove + // + this.contextConnectionRemove.Index = 5; + this.contextConnectionRemove.Text = "Remove connection"; + this.contextConnectionRemove.Click += new System.EventHandler(this.contextConnectionRemove_Click); + // + // contextConnectionProperties + // + this.contextConnectionProperties.Index = 6; + this.contextConnectionProperties.Text = "Connection properties..."; + this.contextConnectionProperties.Click += new System.EventHandler(this.contextConnectionProperties_Click); + // + // contextModelRemove + // + this.contextModelRemove.Index = 7; + this.contextModelRemove.Text = "Remove model"; + this.contextModelRemove.Click += new System.EventHandler(this.contextModelRemove_Click); + // + // contextModelProperties + // + this.contextModelProperties.Index = 8; + this.contextModelProperties.Text = "Model properties..."; + this.contextModelProperties.Click += new System.EventHandler(this.contextModelProperties_Click); + // + // imageList + // + this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream"))); + this.imageList.TransparentColor = System.Drawing.Color.Transparent; + this.imageList.Images.SetKeyName(0, ""); + // + // fileList + // + this.fileList.Location = new System.Drawing.Point(0, 0); + this.fileList.Name = "fileList"; + this.fileList.Size = new System.Drawing.Size(96, 236); + this.fileList.TabIndex = 5; + this.fileList.UseCompatibleStateImageBehavior = false; + // + // MainForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(392, 253); + this.Controls.Add(this.fileList); + this.Controls.Add(this.compositionVScrollBar); + this.Controls.Add(this.compositionBox); + this.Controls.Add(this.compositionHScrollBar); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Menu = this.mainMenu1; + this.MinimumSize = new System.Drawing.Size(300, 200); + this.Name = "MainForm"; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; + this.Text = "Configuration Editor"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing); + this.Load += new System.EventHandler(this.MainForm_Load); + this.SizeChanged += new System.EventHandler(this.MainForm_SizeChanged); + this.DragDrop += new System.Windows.Forms.DragEventHandler(this.MainForm_DragDrop); + this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.MainForm_KeyPress); + ((System.ComponentModel.ISupportInitialize)(this.compositionBox)).EndInit(); + this.ResumeLayout(false); + + } + #endregion + + private void compositionBox_Click(object sender, EventArgs e) + { + + } + + + + #endregion + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/MainForm.resx b/Source/Plugins/Plugins.HydroModeler/MainForm.resx new file mode 100644 index 00000000..e26bcc4a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/MainForm.resx @@ -0,0 +1,1185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 126, 17 + + + 241, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABA + lAAAAk1TRnQBSQFMAwEBAAEMAQABDAEAAa0BAAFuAQAE/wEZAQAI/wFCAU0BNgcAATYDAAEoAwABtAEC + AgABbgMAAQEBAAEYBQABCAF8AQMRAP////8J//8A/wD/AP8A/wD/ABsA/////wn//wD/AP8A/wD/AP8A + GwBk/wH+Av8B/gL/Af4C/wH+GP8B/gX/Af4G/wH+Av8B/gL/Af4C/wH+Av8B/v//aP//AP8A/wD/AP8A + /wAbAGH/Af4C/wH+Av8B/QL/Af4C/wH+Av8B/gH/Af4C/wH+B/8B/gL/Af4C/wH+Av8B/QL/Af4C/wH9 + Av8B/gL/Af4B/QL/Af0C/wH9Av8B/QL/Af0C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/ + Af4C/wH+Av8B/v//R///AP8A/wD/AP8A/wAbAGH/Af4C/wH9Av8B/QL/Af4C/wH+Av8B/gH/Af4C/wH+ + B/8B/gL/Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af4B/QL/AfwC/wH9Av8B/QL/Af0C/wH9Av8B/gL/ + Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/v//R///AP8A/wD/AP8A/wAbAGH/Af4C/wH+ + Av8B/gL/Af4C/wH+Av8B/gL/Af4J/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gH9Av8B/QL/ + Af0C/wH9Av8B/QL/Af0C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+//9H//8A + /wD/AP8A/wD/ABsAZP8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Cf8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+ + Av8B/gL/Av4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+ + Av8B/gL/Af7//0f//wD/AP8A/wD/AP8AGwBq/wH+GP8B/gL/Af4C/wH+Av8B/gL/Af4C/wL+Av8B/gL/ + Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/v//Tf//AP8A/wD/AP8A + /wAbAGP/Af4C/wH+Af8B/hr/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gn/Af4C/wH+Av8B/gL/Af4C/wH+ + Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+//9N//8A/wD/AP8A/wD/ABsAY/8B/gH/Av4B/wH9Av8B/gL/ + Af4E/wH+D/8B/gL/Af4C/wH9Av8B/QL/Af0C/wH+Ev8B/gL/Af4C/wH9Av8B/QL/Af4C/wH+Av8B/gL/ + Af7//03//wD/AP8A/wD/AP8AGwBg/wH+Af8B/gH9Af8C/QH/Af0B/gH/Af0C/wH9Af8B/gL/Af4N/wH+ + Af8B/gL/Af4C/wH9Av8B/QL/Af0C/wH9Av8B/gH/Af4C/wH+Cv8B/gL/Af4C/wH9Av8B/QL/Af4C/wH+ + Av8B/gL/Af7//03//wD/AP8A/wD/AP8AGwBg/wH+Af8B/gH9Af8C/QH/Af0B/gH/Af0C/wH9Af8B/gL/ + Af4C/wH+Av8B/gT/AfwC/QL/Af4B/AH7AfoC/wH9Af8B/gH8Av8B/AH/Af0B/AH/Av4B/wL8Af0C/AH/ + Af4H/wT9Av8B/QL/Af0C/wH9Av8B/QL/Af4C/wH+Nf8D/mD/MP6E//8A/wD/AP8A/wD/ABsAS/8G/Qz+ + BP0B/gL9Af8C/QH/Af0C/wH9Av8B/gH/Af4C/wH+Av8B/gL/Af4B/wH9Av4D/AL/Af4C/wH9Av8C/AH5 + AfYC/wH8Av8B/AH+AvoB/wH+Av8B/gL/Av0B/wL9A/8D/QH8Af0B/AH9Av8B/QL/Af0C/wH9Av8B/gL/ + Af4g/wz9A/5p/zD+hP//AP8A/wD/AP8A/wAbAGL/Av4B/wH9Af4B/wH9Av8B/gT/Af4C/wH+Av8B/gL/ + Af4B/wH+Av8B/QH/Af4C/wL9AfwB+gHrAecB5AG+AbgBtAG4Aa8BqwG1AawBqQHRAcsBygH8AfcB+AH/ + Af4C/wH+Av8B/gH/BP4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af4C/wH+IP8D/gz/A/5m/zD+hP//AP8A + /wD/AP8A/wAbAFT/Bv4J/wH+Af8B/gL/Af4E/wH+Av8B/gL/Af4C/wH+Af8C/gH/Af0B/gH/Af0B/wH+ + Av8B/QL/AfwB8QHsAegBvgG1AbABvAGwAawBugGvAawBywHEAcMB/wL9Af8B/gL/Av0B/wH+BP8B/gL/ + AfwB/QH8Af0C/wH9Av8B/QL/Af0C/wH+I/8D/gn/Cf5j/zD+hP//AP8A/wD/AP8A/wAbAEv/GP4K/wH+ + Av8B/gL/Af4B/wL+Af8B/QH+Af8B/QL/Af0B/wH+AvwB+wH/Af4B+wHxAekB5QG8AbABqwHAAa8BqwG+ + Aa8BqwHPAsYB/wH9Av8D/QH6AfsB/wH+BP8B/gL/Af0C/wH9Av8B/QL/Af0C/wH9Av8B/iP/DP0G/mb/ + MP6E//8A/wD/AP8A/wD/ABsAS/8D/hL/A/4H/wH+Av8B/gL/Af4C/wH+Af8C/gH/Af0C/wH7Av0B/AH9 + AfwB/gH9AfsC/wH7AfUB7AHnAcABsgGtAcMBsQGrAb8BrgGpAcwCwQH/Af0C/wH+Av8B/gL/Af4C/wL+ + A/wB/QL/Af0C/wH9Av8B/QL/Af0C/wH+OP8D/WD/MP6E//8A/wD/AP8A/wD/ABsAUf8D/gb9A/4H/wH+ + Av8B/gL/Af4C/wH+Av8B/gL/Af0B/wH9Af4B/wH9Av8B/AL/Af0B/wH+Av8B/AH/Af0B+gH1AesB5gHB + AbEBrAHGAbEBqwHCAa8BqwHSAcgBxwH/Af0C/wH7AfwB/wH9Af4B/wH+BP8B/QL+Af0C/wH9Av8B/AL/ + Af0C/wH9Av8B/ib/A/4G/Qn/A/1g/zD+hP//AP8A/wD/AP8A/wAbAAP/Af4C/wH+Av8B/gL/Af4U/wH+ + Av8B/QL/Af0C/wH9Af8C/gH/Av4B/wH9Av8B/gL/Af4C/wH+Av8B/QL/Af0C/wH9Av8B/QL/AfwC/wH8 + Af8B/AH5AfwB9wH1AfgB9QHyAfgB9QHyAfwB9wH2Af8B/AH6Af8B/gH9Af8B/gH9Af8C/gH/Av4B/wH+ + Av8B/gL/Af4B/wH9Av8B/AL/AfsC/wH5AvwC/wH9Av8B/AH2AewB5wHBAbIBqwHEAbEBqAHEAbEBqgHR + AcYBwgH/Af4B/AH/Af4B/AH/Af4B/QH8AfcB9gH6AfYB8wH2AfMB8AH6AfcB9AL/AfwC/wH8Av8B/QL/ + Af0X/wH+Av8B/gL/Af0C/wH9Av8B/QH6AfYB9AH5AfQB8gH5AfQB8gH8AfcB9gH/AfwB+gL/Af0C/wH9 + Af8B/gH9Av8B/gH/Af4B/wL+Af8C/gL/Af4D/wH+Av8B/QL/Af0C/wH9Av8B/gH/Af4C/wH+Av8B/gL/ + Af4C/wH+Av8B/gL/Af4C/wH+A/8B/QL/Af0C/wH9Av8B/QL/A/4B/wH8Af0B/wH7AfwB/wL7Af8C+wH/ + AvwB/wL9Af8B/gT/Af4B/QH/Af4B/QL+Af8B/gL/Af4B/wP+Af0B/gH/AvwB/wH7AfwB/wH7AfwB/wL8 + Af8B/QH+Af8D/gH/Af4C/wH+Af8B/QL+Af0C/gP/Av4B/wH8Af0B/wH6AfwB/wH5AfwB/wH5AfwB/wH7 + AfwB/wL9Af8C/gH/Af0B/gH/AfwB/QH/AfsB/AH/AfoB/AH/AfsB/AH/AvwB/wL9Af8C/lL//wD/AP8A + /wD/AP8AGwAB/gL/Af0C/wH9Av8B/QH/Af4B/QH/Af4C/wH+Av8B/gH/Av4B/wH+Av8B/gL/Af4B/wH7 + A/wC/wH7Af8B/gH8Af8B/QH8Af8B/AH9Af8B/AL/AfwB/gH9AfoC/wH8Av8B/AL/AfwB/wH6AfYB8QHk + AeAB4QHUAc4B0AHDAbsByAG8AbMBwQG3Aa0BwAG1Aa0BwQG0Aa0BwgG0Aa0ByQG4AbMB0AG/AboB2gHK + AcgB6wHfAd4B/wH8AfkB/wH8AfoC/wH8Av8B/AH+Af8C/AH/Af0B+gL/AfoC/wH+BP8B/QHzAeoB5QHC + AbQBrAHCAbMBqAHBAbIBqAHVAcgBvwL/AfkB5wHbAdYB0AHCAb4BxAG4AbIBvgGxAasBwgG2Aa4BwQG2 + Aa0BxQG5AbEB1wHLAcUB8AHnAeMB/wH8AfkB/wL+Af8C/QH+Av8B/AL9AfwC/QX/Af4C/wH9Av8B/AH0 + Ae4B6wHZAdABzQHIAb4BuQHCAbYBsAHEAbYBsAHCAbIBrgHEAbYBsAHKAb8BuQHRAckBxAHlAeEB2wH/ + Af0B+QH/Af4B/QH/Af4B/wL9Af8C/AL/Af4B/wHpAuQBzgHFAcEB0QHIAcIBzQHDAcEB6gHjAeEB/wH+ + Af8B/gH8Af4C/AH9Av4B/wL+Af8B/gH9Av8B/QH/Af0C+QHPAcYBwwHRAcYBwQHTAccBwgHVAcsByAL/ + A/0B/wHwAfQB/wHRAdUB7wHPAdAB9wHSAdMB+gHjAeYB/AH3AfwB/wH9Af4B/wH8Af0C+wH8AfsB/QL/ + AfwB+wH8Af8B/gH/Af4B/wH+AfsB/QH/AfcB+QH/AdAB0wHrAdcB2gHzAfYB+gH/AfsB/QH/AfwB/QH8 + Af8B/gH/Af4B/AH+Af0C/wH8A/0C/AL9Af8B9gH7Af8B0wHaAfMBzwHVAfsBzAHRAfYB0QHVAesB9AH2 + Af8B/AH9Af8B+gH8Af8B8QH2Af8B0AHXAfEB0AHVAfkB0QHUAfgB1QHUAe8B+wH6Af8C/VL//wD/AP8A + /wD/AP8AGwAB/gL/Af0C/wH9Av8B/QH/Af4B/QH/Af4C/wH9Av8B/QH/Av4B/wL+Af8B/QH/Av4B/wH6 + Av0B+wL/AfoB/wH9AfsB/wH8AfoB/wH6Af4B/wH7Af8B/gH6Av8B/AL/AfwB/wH4AfQB4AHXAdIByQG9 + AbgBvQGuAagBwAGvAagBwgGzAakBwQGzAagBvwGxAagBvwGxAagBvwGxAagBwQGwAagBxAGwAaoBxgGx + AawBxQGxAa4BwAGvAasBwgG0AbEB2QHQAcsB/AH2AfEC/wH7Av8B+wH8Af8C+wH/Af4B+QH+Af0C/gL/ + Av4B9AHqAeYBwQGzAasBwgG0AagBwQGzAagBzwHBAbYB1wHIAcABugGtAagBugGtAagBvwGwAaoBvgGv + AagBwQGyAagBwgGzAagBwQGvAagBvwGvAagBwwG0Aa4B1QHKAcYB/AH1AfMC/wH9AfcB+QH3Af0B/wH9 + Av8B/gH8AfoB+QL/AfwB/wH6AfcB2wHRAc4BvwGzAa4BvgGxAawBvgGvAakBvgGuAagBwQGvAagBwQGv + AagBwgGwAakBwgGyAasBvAGuAagBvAGyAakBxwG/AbgB8gHrAekB/QL5Af8B/QH/Af4B/AL/AfwB/QHe + AdcB1AG7Aa0BqAHBAbEBqwG9Aa8BqwHgAdcB1AH/AvwB/wH+Af8C/gH/Af0B/gH/Af4B/QH/Af0B/AL/ + Af0B/wH5AvMBwQG1AbABvwGuAagBwAGvAagByAG6AbYB/wH6AfYC/QH/Ae0B8gH/AcIByAHoAbgBuQHx + ArgB8AHLAdAB8QHyAfcB/wH8Af4D/wH8Af0B/wL9A/8B/gH/AfwB+gL8Af0B/wH5AfwB/wHaAd4B/AG8 + AcAB5wHBAcMB7AHlAegB/wH5AfwB/wH8Af0B/gH/Af4C/wH+Af8B/QL/Af0F/wL8Af8B6wHxAf8BvAHE + AesBsgG5AfABtAG6Ae0ByAHNAeoB8QH0Af8B+wH8Af8B+AH7Af8B5wHsAf8BvAHCAekBtAG5Ae0BtwG4 + Ae0BwwHBAecB9gH0Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAH+Av8B/QL/Af0C/wH9Af8B/gH9Af8C/gH/ + Af0C/wH9Av8B/gH/Av4B/wH8Af0B/wH+Af8B/AL+AfsB/wH+AfwB/wH9AfwB/wH8AfoB/AH4Av8B+wH/ + Af0B+AL/AfoB8gHoAeQBxwG7AbgBwQG0Aa8BugGtAagBwQGyAa0BvAGvAagBuAGrAagBvgGzAakBwwG5 + Aa8BxQG6AbIBxgG6AbMBxQG5AbMBwAGzAa4BugGsAagBvwGsAagBxAGyAa8BwAGvAasBvgGwAawBygG9 + AbgB6gHhAdwB/wH8AfcC/wL8Af8B/QH7Af8B/gP9Af8C/gHzAeoB5wHAAbEBqwHBAbQBqAHBAbMBqAHE + AbUBqwG6Aa0BqAG7Aa8BqQHEAboBtAHMAcMBvQHTAcoBwwHMAcEBuQG8AbABqAG+Aa8BqAHCAbIBqQHE + AbMBrAG4AakBqAHcAdEBzgH/Af4B+wL/AvwB/wL7AfoB9wL/AfwB/wH9AfkB1wHLAcUBvQGuAagBwwGy + AaoBvwGvAagBwQGzAasBxgG4AbAB0AHEAb0B1wHIAcIB0QHCAb0ByQG5AbMBwAGvAagBvgGuAagBwwG0 + AasBxAG3AbAB6QHfAdwB/wL+Af8C/QH/AfsB+QHmAdsB1wHDAbIBqwHAAa0BqAG+Aa4BqAHjAdcB1AH/ + Af4B/QH/Af4C/wH+Af8C/QH/Af0B/AH/Af0B/AH+Af8B/gH/AfkB9AHxAcIBtgGvAcEBrwGoAcEBrwGo + AcgBuwG0Af8B+gH2Af0B/gH/AfcB+wH/AcsB0AHvArgB7wKyAe0BwAHCAesB7QHxAf8B+gH8Af8B/gH/ + Av0C/wL8Af0C/wH+AfsB+gL8Af0B/wHyAfQB/wHEAcYB8QG0AbUB7AGxAbIB6wHMAc8B+QHyAfQB/wH7 + Af0B/wL8Af0C/wL+Av8B/QL/Af4C/wH6AfwB/wHeAeEB/wG2AboB6wGvAbMB8AGzAbgB7QHWAdkB9QH4 + AfwB/wH8Af0B/wH6AfwB/wHqAe4B/wG5Ab4B6gGwAbMB7gKxAesBwAG9AeYB+gH3Af8B/QH8Uv//AP8A + /wD/AP8A/wAbAAP/Af4C/wH9Av8B/QH/Af4B/QH/Av4B/wH9Av8B/QL/Af4C/wH+Af8B/gL/Af4B/wH9 + Av8B+wL9AfwB/wH9Af4B/wH8Av0B+gL/AfsC/wH6AecB3AHVAcEBswGvAcMBtQGwAbwBrgGpAb4BsAGs + Ab0BsQGtAdMByQHEAeoB4QHbAfQB7AHlAf8B9wHxAf8B/QH3Af8B/QH4Af8B+AH0AfMB7QHqAesB4gHe + AdkBywHIAcYBtgGzAbkBqQGoAcEBsQGuAb0BrQGoAcQBtgGxAd0B1AHPAv8B/AL/AfwB/QH/Af4B/QH8 + Af0B/wL+AfUB6gHoAcABsQGsAcIBtAGpAcEBsgGoAbsBrQGoAcEBtQGvAeQB3AHXAf0B9wHzAv8B+wL/ + AfoB/wH9AfcB/wH3AfAB1wHLAcMBvgGvAagBxgG0Aa0BwAGuAagBvgGxAasB5AHeAdgC/wH8Af0B/wH8 + Av8B/AH/AfsB9gHaAc8ByQHAAbABqQHDAbEBqQHBAa8BqAHMAb0BtQHuAeMB2wL/AfkB/wH8AfYB/wH8 + AfkC/wH6Af8B/AH2AeUB1wHRAcYBtwGvAbwBrQGoAbcCqAHPAcQBvwH2Ae8B7QH/Af4B/QL/AfwB3gHT + Ac4BwAGvAagByAG2Aa0BwgGxAaoB5QHaAdYB/wH+Af0D/wH8Av4B/AH+Af8C/gL/Af4D/wH+AfoB9QHx + AcQBtwGvAcIBsQGoAcQBswGpAckBvQG0Af8B/AH2Af4C/wH4AfwB/wHbAd4B+gG4AbkB7wG2AbQB8QG4 + AboB6wHfAeIB/wH5AfwB/wH9Af8D/gH/Af4C/wH8Af0B/AL9Af8B9wH5Af8B1wHYAfcCuQHvAbIBswHz + AbIBswHzArgB7QHdAd4B/QH3AfkB/wL8Af8C/gL9Av4B/QH+Af8B+gH8Af4B+AH7Af8BzQHPAfYBtgG4 + AfEBswG1AfUBuAG6AfAB4wHmAf8B+QH8Af8C/AH/AfsB/AH/AeoB7AH/AbkBvAHsArQB9AG1AbMB8gG/ + AbsB6AH6AfYB/wH9AfxS//8A/wD/AP8A/wD/ABsACf8B/QH/Af4B/QH/Av4B/wH9Av8B/QL/Af4C/wH+ + Af8B/gL/Af4B/wH9Av8B/AL+Af0B/wH9Av8B/AL/AfwC/wH6Ae4B4wHcAcABsAGpAb0BrQGoAboBqwGo + AcMBtAGwAdEBxQHBAfMB6wHnAf8B/gH7Av8B+gL/AfsC/wH7Af8B/QH6Af8B/gH7Av8B/AL/Af0B/wH+ + AfwB/wH+AfwB9wHrAeoB1QHIAcUBwgG0Aa8BvgGtAagBvAGsAagBuwGvAakB3wHXAdMB/AH6AfYC/wH9 + Af8B/AH9Af8B/QH+AfYB6gHpAcEBsQGtAcQBtAGrAcABsAGoAb0BsAGrAd8B1wHUAfwB+AH1Av8B/AH+ + Af8D/AH6Av8B/AL/AfsB/wH8AfUBywHBAbgBwAGvAagByQG4Aa8BugGtAagBzgHGAb8B/gH/AfsB/QH/ + AfwB/gH8AfgB6wHjAd8BvgGyAa0BvwGvAakBwAGuAagBzAG9AbYB/wH2Ae8B/wH+AfgC/AH3Av8B/AH9 + Af8C/QH/AfwC/wH8Af8B/QH5AeMB3QHXAcABtwGvAd0B0gHMAfIB6wHlAv8B/AL/Af0B/wH8AfkB4gHa + AdQBwQGyAagBwQGvAagBvgGvAagB4AHXAdEB/wH9AfoB/QH/Af0B/AH/Af4B/AL/Af0C/wH+Af8B/gH9 + Af4B/AH3AfQB8AHBAbQBrAHBAa8BqAHBAbABqAHHAboBsAH/AfsB9QH9Af4B/AH6AfwB/wHrAe4B/wG6 + AbkB7gG2AbQB8wK0Ae4BywHNAfYB+QH6Af8B/QH+Af8B/gL/Af0B/gH/AfwC/gH6AfwB/wHiAeMB/wG9 + AbwB6wKzAe8BtAG1AfgBtwG4AfoCsAHsAcMBwgHxAeUB5gH/AfoB/AH/AfwC/wH9Av4B/AH+Af8B+gH9 + Af8B8wH3Af8BvgG/Ae8CtAHzAbMBtAH0AbwBvwHxAe4B8QH/AfgB+wH/Av0B/wL8Af8B6AHqAf8BtwG4 + AesBsgGxAfUBtAGwAfQBuwG3AeYB9wH0Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAn/Af4B/wH+Af0B/wL+ + Af8B/QL/Af0C/wH+Av8B/gH/Af4B/wL9Af4B/QP+BP8B/QL/AfwC/wH8AfcB7wHqAcEBtAGsAcYBtgGu + AcEBsQGrAcMBtAGvAdIBxgHCAf8B+QH2Av8B/AL/AfwC/wH8Af8B/gH8Av8B/AL/Af0C/wH9Af8B/gL8 + Af0B/AH9Af4C/QH5AfgB/wH+AfwB/wH+AfwB3gHUAdABwQGxAa0BxQG1Aa8BwAGxAaoBuQGvAagB6gHl + AeAC/wH8Af8C/QH/AfwB/QH2AesB6QHBAbEBrQHEAbMBqwHAAa8BqAHKAb4BugH/AfsB+QL/Af0B/AH9 + AfwB+wP9Av8B/gL/Af0B/AH6Av8B+wHhAdkB0gG9Aa4BqAHEAbIBqQHBAa8BqAHIAb4BtwL8AfcB/gH/ + AfwC/wH6AcwBwwK+AbABqgHEAbUBrgHBAbEBqgHoAdkB0wL/AfoB/wH+AfkC/wH8Af0B/wH8AfsB/AH5 + Af0B/gH8Av8B/AL/AfsB/wH8AfYB/wH5AfMC/wH5Av8B+wL/Af0B/wH+Af0C/wH8Ad8B2AHTAbsBrQGo + AcgBuAGvAcABsQGqAeEB2AHTAf8B/QH6Af0B/wH9AfsB/wH9AfwB/wH9AfwB/gH9AfwB/QH8Af0B/wH9 + AfkB9gHxAcQBtwGuAcQBswGoAcQBtAGpAcgBvQGzAf8B/AH2Av8B/QH8Af0B/wH3AfkB/wHGAcUB9AG4 + AbcB9AG1AbQB9AK+AfAB8gHzAf8B+wH9Af8B+wH8Af0B+wH8Af0B+gH9Af8B6wHtAf8ByAHHAfMBtQG0 + AewBswG0Ae8BwgHEAf8BwAHBAfwCtgHxAbQBsQHrAc0BywH3AfEB8wH/AfoB/QH/Af0B/gH/AfwB/gH/ + AfcB/AH/AecB6wH/AbgBtwHtAbUBswH1AbUBtgHxAcoBzQH4AfcB+gH/AfwB/gH/Av4B/wL8Af8B7AHu + Af8BugG7Ae0BtQGzAfYBtgGzAfYBvAG4AekB+QH2Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAv/Av4B/wH+ + Af0B/wH9Af4B/wH9Av8B/gL/Af4B/wH+Af8B/gH9Av4B/QH+BP8B/gH9Av8B/AH/AfwB+QHYAc8ByQHB + AbMBqwG8Aa0BqAG7Aa0BqAHYAc0ByAL/AfwC/wH8Af8B/QH8Av8B/gL/Af4C/wH+Af8C/gH/Av4B/wH+ + Af8D/gH8Av8B/Ab/AvwC/wH8Af8B/QH5AeAB1gHQAb0BrwGoAb8BrwGoAcABswGtAc4BxgHBAfsB9gHz + Af8B/gH9Af8B/QH8AfYB6wHqAcABsAGsAcQBswGrAcEBrwGoAdcByQHHAf8C/AH+AvwB/wH+Af8C/gH/ + AvwB/gH8AfsB/gH/Af4D/wH8AfAB6AHkAcEBswGrAccBtAGrAccBswGsAcEBsgGsAfUB8QHtAv8B/AH/ + AfkB8QG/AbQBqQHBAbQBqgG9Aa4BqAHIAbgBsAH7Ae0B5QH/AfYB8AH+AfYB8AH6AfQB7gH6AfQB7gH8 + AfQB7wH8AfQB7wH+AfUB7wH/AfYB8AH/AfYB8AH/AfYB8AH9AfIB7QH9AfUB8gH9AvsB/wL9Av8B/QHh + AdkB1QG8Aa0BqAG+Aa0BqAHBAbEBqwHjAdgB1QH/Af0B+wH9Af8B/gH8Af8B/gH9Af8B/gL/Af0C/wL9 + Af8B/QH5AfcB8wHBAbUBrAHBAbABqAHBAbEBqAHGAboBsgH/Af0B+QL/Af0B+wL8AfkB+wH/AdYB1QH8 + AbgBtwHwAbcBtAH2AbgBtgHuAeEB4gH8AfkB+wH/AfwB/gH/AfsB/QH/AfYB+wH/AdEB1AH1AbgBtgHw + AbcBtAH0AbsBvQHwAdkB3QH/AdcB2gH/AbwBvQHwAbMBrwHxAbsBuAHyAdYB1wH4AfMB9wH/AfsB/QH/ + AfsB/QH/AfMB+AH/AdMB1wH4AbYBtQHvAbYBtAH0AbgBugHuAd0B4AH/AfkB/AH/AfwB/QH+Af0D/AH7 + Af8B7QHuAf8BvAG+AesBtQG0AfQBtwG0AfUBvQG5AeoB+QH2Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAT/ + Af4G/wL+Af8B/gH9Af8B/QH+Af8B/QL/Af4C/wH+Af8B/gL/Af4C/wH+Av8B/gL/Af0B/AH/Af0B/AH9 + AfQB8gG+AbIBrQHAAbEBqQG/AbABqAHFAbkBsgH1Ae0B5wL/AfwB/wH9AfwD/wP8Af8B/gL/Af4C/wH9 + Af4B/wL9Af4E/QH+AfwB/gH/Af0C/wL9Av8B/gH/AfwC+wL/AfwB/wH6AfUBzQHBAboBvwGvAagBwAGw + AakBuQGvAagB9gHuAeoB/wH+AfwB/wH9AfwB9QHrAekBvQGwAasBwgGyAaoBwQGwAakB3QHQAc0B/wH+ + Af0B/wL8Af8B/gL/Af0C/wH9Av8B/QL/Af0C/wH+Af0B8QHrAecBwgG0AawBwgGvAagBwgGuAagBxgG2 + AbAB/AH3AfUC/wH7AfQB7AHjAcQBuAGsAcABsQGoAcIBtAGpAb0BrgGoAcYBuAGvAcIBtwGvAb8BswGt + AcABtQGuAcEBtQGuAcQBtgGvAcQBtgGvAcIBtAGsAcEBswGrAcMBtAGtAcQBtgGvAcMBtQGvAb0BsgGv + Ad4B2AHZAf8B/gL/Af4B/QHeAdYB0QHDAbIBrAHGAbQBrQG+Aa4BqAHiAdcB1AH/Af4B/AH+Av8B/QL/ + Af0E/wH+Av8B/gH8Af0B/AH3AfYB8QHCAbUBqwHDAbIBqAHDAbMBqQHGAboBswH/AfsB+AH+Af0B/AH+ + Af8B/QH7AfwB/wLmAf8CuAHrAbYBtAH2AbUBtAHxAtUB9gH4AfoB/wH5AfwB/wH4AfwB/wHjAeYB/wG8 + Ab4B7AGzAa8B8gG5AbYB9gHJAcsC8wH2Af8B8QH1Af8BvwHBAegBuQG2AfYBtQGyAfQBugG8AeoB5AHo + Af8B+AH8Af8B9wH7Af8B8wH4Af8BxgHIAfEBtgG1AfEBtwG1AfIBvwHBAewB7wHzAf8B+wH8Af8B/QL+ + Af8B/gH/AfwB+wH/AesB7gH/AbkBvAHnArMB8AG2AbQB8wG9AbkB6AH3AfUB/wH9AfxS//8A/wD/AP8A + /wD/ABsABP8B/gL/Af4D/wL+Af8B/gH9Af8B/QH+Af8B/QL/Af4C/wH+AvwB/QH/Af4B/wP8Af8B/gL/ + Av0B/wH+AfwB7AHjAeABvgGxAa0BvwGvAagBvAGuAagB0AHHAcEC/wH6Af8B/QH8Av8B/gH7AvwB/QH+ + Av8B/gL/Af4C/wH+Av8B/gf/Af4D/wH+Av8B/AL/Af0B/wP9Av8B/QH/AfsB9gHlAdsB1AG/Aa4BqAHE + AbIBqwG+Aa8BqQHjAdoB1QH/Af0B+gH/Af4B/AH0Ae0B6gG4Aa4BqAHBAbMBqQHAAbEBqAHQAcUBwQH/ + Af4B/AH/AfwB+gH/Af4B/QH/Af4C/wH9Av8B/AL/Af4D/wH9AeQB3gHZAb8BsQGqAcIBsQGpAcIBsAGp + AcUBtgGxAf0B+QH3Av8B/AHzAesB4wHBAbQBqAHCAbMBqQHDAbQBqgG+Aa4BqAHFAbYBrgG6Aa0BqAHA + AbIBqwG9Aa8BqAG7Aa4BqAHBAbEBqAG/Aa4BqAHBAbABqAHFAbQBqwHBAa8BqAHFAbYBrAHBAbABqQG/ + AbIBrQHfAdkB1wH/AvwC/wH8Ad8B1QHQAcQBsgGrAcIBrwGoAbwBrAGoAeAB1QHSAf8F/AH9Av8B/QP/ + Af4B/wH9AvwB/gH9AfwB+wH3AfMBwgG1AasBxAGyAagBxAG0AawBxAG4AbMB/gL4Af8B/gH/Av4C/AH9 + Af8B8gH0Af8BygHMAfYBsQGyAfEBtQG2AfQBwgHDAewB8gH1Af8B9gH6Af8B8QH1Af8BwQHEAe8BtQG2 + AfABuAG3AfcBvAG6AfEB5QHnAf8B+AH8Af8B9wH6Af8B5QHnAf8BugG5AfABtQGzAfQBtwG4AfEBxAHI + AfIB8QH2Af8B9gH6Af8B4wHnAf8BuAG7AewBuQG4AfYBuAG2Ae8BzwHSAfUB9gH6Af8B+wH8A/8B/QH/ + Af0B/wH9AfwB/wHsAe4B/wG6Ab0B5wK1AfEBtwG2AfEBvAG5AecB+QH2Af8B/QH8Uv//AP8A/wD/AP8A + /wAbAAT/Af4C/wH+A/8C/gH/Af4B/QH/Af0B/gH/Af0C/wH+Av8B/gH/Af4C/wH+Af8C/gL/Af4C/wH+ + Af0B/wH9AfwB5AHaAdcBvAGvAasBwQGxAakBwAGxAakB0wHKAcQC/wH7Av8B/AH9Af8B/gH9Af4B/wL9 + Av8B/gL/Af4C/wH+B/8B/gb/Af4C/wH9Af8B/QH6Af4C+wH8Av8B/QL/AfwB6wHgAdkBwQGvAagBxgGy + AasBvgGuAagB2wHQAcoC/wH7Av8B/AHzAesB6AG+AbQBrQHBAbIBqAHBAbIBqQHEAbcBsAH3Ae4B6gL/ + AfwC/wH8Av8B/QH+AvwB/wH+Av8B/QH8Av8B/AHTAc0BxwG+AbEBqQHEAbQBqwG9AawBqAHKAb4BuQH/ + Af4B/AL/AfwB+AHxAeoBxAG4Aa8BvAGuAagBxAG0Aa0BwQGvAakBygG5AbMBzQG/AbgByQG+AbcBzQHC + AbsBygHAAbgBzAHBAbgBygG+AbUB0AHBAbgB0AHBAbgBxAG0AakBwwGzAagBwQGyAaoBvAGvAakB8QHq + AegB/wH+Af0B/wH8AfoB5gHbAdYBwQGwAakBxgG0AawBwgGyAa0B1wHMAcgB/wH+Af0B/wH+Af8D/QT/ + Av0C/wH9Av8B/AHwAesB5AHDAbUBqQHHAbUBqAG/Aa4BqAHGAbkBtgH/AvwB/wH+A/8C/AH+Af8B9gH5 + Af8B0wHXAfkBsgG1Ae8BsQGzAfIBugG9Ae0B5AHnAf8B8wH2Af8B0AHTAfUBuAG5AfABtAG1AfMCtQHv + AtAB+gH2AfcB/wH8Af0B/wH8Af0B/wH1AfYB/wLQAfoCtAHuAbEBsgHxAbgBuQHxAdEB1QH2AfAB8wH/ + AdcB2wH/AbQBtgHtAbgBtgH0AbgBtgHsAdwB3wH8AfcB/AH/Af0E/wH9Af8B/QH/AvwB/wHsAe4B/wG6 + Ab0B6AK1AfEBtwG2AfEBvAG5AeUB+AH2Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAT/Af4E/wH+Af8B/gH9 + Af8B/gH9Af8B/QH+Af8B/QL/Af4C/wH+Af8B/gH/Af0B/AH9Af8B/gL/Av4C/wH9Af8B/gH8AeEB1wHV + Ab0BrwGrAcABrwGoAcMBtAGsAdcBzwHIAv8B+wL9AfoB/gH/Af0B/gL/AfwB+wH8Af8B/gL/Af4E/wH9 + Af8B/gH9Af8B/gH9Af8B/gL/Af4B/wH+Av8B/AL/AfwB/wL+Af8C/AH7Av8B/AHrAeAB2gHDAa8BqAHG + AbEBqQHBAa8BqQHZAcsBxwH/Af4B+wL/AfwB8QHpAeQBwQG2Aa8BwQGxAagBxAGzAakBwAGwAagB0wHI + AcEC/wH6Av8B+QH/Af0B+gL/AfwC/wH8Av8B/AHvAeoB5AG+AbYBrgG+Aa8BqAHFAbQBrAHDAbMBrQHa + AdABywL9AfoC/wH8Av8B/AHNAcIBvwG9Aa4BqgHFAbQBrwHAAa4BqAHiAdEBywL/AfkC/wH5Av8B+QL/ + AfoC/wH6Av8B+gL/AvkB7wHmAdMByAG8Ab4BsAGoAboBrwGoAckBwAG5Af8B/AH5Av8B/QH/AfoB9wHl + AdwB1wG9Aa4BqAHDAbMBqQG6AawBqAHKAcABuwH9AfcB9gL/Af0B/gH8AfoB/wH+AfwB/wH+AfwC/wH8 + Av8B+wHeAdUBzQG+Aa4BqAHIAbYBqQG8Aa0BqAHMAcEBvgH/AvwB/wH9A/8B/QH8Af4B/wH3AfwB/wHh + AeYB/wG2AboB7wGvAbMB8QG1AbgB8AHSAdUB/wHnAeoB/wG5AbsB6wK0AfMCtQHzAcABwgHtAeoB7AH/ + AvwB/wH9AfwB/gH/Af4B/wL8Af8B6QHrAf8BvwHBAe0CsQHwArIB8QG5AbsB6wHjAeUB/wHKAc4B/wGz + AbQB7wG2AbMB8QG+AbwB7wHsAe8B/wH5AfwB/wH+A/8B/gH8Af8B/gH/AvwB/wHrAe0B/wG5AbwB6wG1 + AbQB8gG3AbYB8gG8AbkB5QH4AfcB/wH9AfxS//8A/wD/AP8A/wD/ABsACf8B/gH/Af4B/QH/Af4B/QH/ + Af0B/gH/Af0C/wH+Av8B/gH/Af4B/wH9AvwB/gH9Af4B/wL+Av8B/QL/AfwB6AHfAd0BvAGvAasBwQGv + AagBvwGuAagB0QHHAcEB/wH9AfgC/wP8AfsC/wH+BP8B/gT/Af4B/wH+Af0B/wH+Af0B/wH+Af0B/wH+ + Av8B/gH/Af4C/wH9Av8B/QL/Af4B/wH+AfwB+wL/AfsB4AHUAc4BvwGrAagBxAGvAagBwgGxAasB5gHZ + AdUB/wH9AfsB/wH+AfwB8QHoAeUBwQGzAa4BwQGvAagBxQGyAakBwgGyAakBvQGvAagB0gHJAcIB9wHx + AesC/wH7Af8B/QH5Af8B/AH4AeQB2wHWAcEBtwGvAboBrwGoAcQBtAGsAboBqQGoAcsBvQG3AfUB7AHn + Av8B/AL/Af0C/wH9AesB4wHhAccBugG4Ab4BrQGpAcABrgGoAcEBrwGoAdsBzgHHAf0B9AHuAv8B+gL/ + AfoC/wH8Av8B+wHxAesB5AHOAcMBugG4AaoBqAHBAbQBqgG9AbIBqQHoAeEB2wL/Af0B/wH+Af0C/wH8 + AeIB2QHUAcABsAGoAcQBtAGrAcEBswGrAbkBrQGoAc0BxgHCAfMB7QHrAv8B/AL/AfoC/wH6Av8B+QHn + Ad8B2QHKAcABtwHBAbEBqAHEAbQBqAG6AawBqAHWAcsByQH/Af4C/wH+A/8B/QL8Af0B+QH9Af8B7gH0 + Af8BwAHFAfEBsgG2AfEBswG3AfMBxQHHAf8ByQHKAf8CuAHwAbQBsgHzAroB8QHcAd8B/QH3AfsB/wL9 + Av8B/gH/Af0E/AH/AfcB+wH/AdcB2wH5AroB8QG0AbMB8wK4AfABzQHOAf8BwQHCAf4CtwH1AbUBswHu + AcwBygH3AfYB+AH/AfsB/QX/Af4B/AL+Af8B+wH8Af8B6wHtAf8BuQG6AewBtQGzAfQBtwG1AfMBuwG6 + AeUB+AH3Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAn/Af4B/wH+Af0B/wH+Af0B/wH9Af4B/wH9Av8B/gL/ + Af4B/wH+Av8B/gH/Av4F/wH+Af0C/wH8AfMB7AHqAcEBtQGvAcUBtAGsAcEBrwGoAcUBuAGwAfUB7AHn + Av8B+wL/AfwB+gH5AfcC/wH9Av8B/QL/Af0C/wH9Af4B/wH9Af4B/wL+Af8C/gP/Af4C/wH+Af8B/AH7 + AfwB/QL8Av8B/AH/AfgB8wHQAcIBuwHAAa4BqAHEAbIBqwG7Aa4BqAH2AesB5wH/AfwB+gH/Af4B/AH0 + AesB6AG8Aa8BqgHCAbABqQHEAbEBqQHFAbMBrAHBAbEBqgG6Aa0BqAHEAbgBswHHAboBtgHKAb4BuQHG + AbgBswHAAbEBqwG/Aa8BqAHAAa8BqAHBAa8BqAHIAbcBsQHsAd4B2gH/Af0B/AL/AfwB/wH9AfwB/wH9 + AfwC/wH8AegB3gHaAcEBsgGtAcABrgGoAcUBswGrAcABrwGoAcIBtQGuAc8BxQG/AdcBzgHIAdMBygHG + AcIBuAGyAb0BrwGoAcABrwGoAcEBrwGoAcMBswGqAd8B1wHQAf8B/QH6Af8B/gL/AfwB/QH/Af4B/QHe + AdQB0QG+Aa8BqAHBAbABqAHCAbQBrQHGAbgBswG6Aa4BqwG5Aa8BqwHMAcEBvQHXAcsBxgHZAc8ByAHR + AccBwAG8AbEBqwG7Aa8BqAHBAbIBqAG+Aa8BqAHGAboBtQHtAeUB5AL/Af0B/AH7AfoC/wH9A/wB+wH+ + Af8B9gH6Af8BywHQAfYBtAG4Ae4BsgG0AfMBuQG6AfwCtQH1ArgB9AG2AbQB7QLOAfcB8wH3Af8B+gH9 + Af8C/AL/Af4C/wH9Af8B/AH9Af8B+gH9Af8B8QH1Af8CzgH3AbYBtAHtArYB8wK4AfgCuAH5ArgB9gG1 + AbMB6gHdAdwB/wH4AfoB/wH8Af4B/wH9AfwB/QH/Af4B/wH9Av4B+gH8Af8B6gHtAf8BuAG6Ae0BtAGz + AfUBtwG0AfQBuwG5AeYB+AH3Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAb/Af4C/wH9Af8B/gH9Af8B/gH9 + Af8B/QH+Af8B/QL/Af4C/wL+Af0B/gH/Af4B/wH8Av0F/wH9Av8B/AH/AfsB+AHVAcsBxgHAAa8BqAHH + AbUBqwG9Aa8BqAHWAcoBwwH/AfkB9AL/AfwB/wH9AfsB/wH+AfwC/wH8Av8B/QL/Af0C/wH9Av8C/gL/ + Af0C/wH9Av8D/QL/Af0C/wH8Af8B/AH4AeIB1wHRAcEBsQGpAcQBswGrAcABsAGoAckBwAG5Af8B/gH6 + Av8B/QH/Af4B/QHzAesB6gG9AbEBrgHAAa8BqgG+Aa8BqAHXAcoBwwH1AeoB5AHHAboBtgG+AbIBrwG7 + Aa4BqwG3AakBqAHCAbMBrgG/Aa8BqQHAAbEBqQG/Aa8BqAHKAbwBtwHoAd0B1wH/AfsB+QH/Af4B/AH9 + AfwB+gL/Af0C/wH9Af8B/AH6Af8B/gH8AfQB6gHlAdEBxAG+AcIBswGtAb4BrwGpAbkBrAGoAbkBrgGo + AboBrwGqAb4BsQGuAcABsgGuAb4BrwGqAcABsAGqAdEBwwG8AekB3gHXAf8B/AH3Av8B/AH/Af4C/wH9 + Av8B/AH9AeEB2AHXAb8BsgGtAb8BsQGpAboBrQGoAeMB1wHSAesB3wHdAcIBtwK0AqgBvgGyAa0BuAGu + AagBtwGsAagBuQGuAagBuQGuAagBvwGxAagBxwG7AbMB4QHXAdUB/wH6AfkC/wH8Af4B/wH8Av8B/QT8 + Af4B/wH4AfwB/wHbAd4B/gG3AbkB6wGxAbIB8gKxAfcCswH4AbMBsgHwAsAB7gHnAegB/wH5AfwB/wH5 + AvwB/QL/AfwC/QH+Av8B/QL/AfoC/AH5AfwB/wHkAeUB/wK8AeoBsgGxAfACsgH2ArEB9QK2AfMBuwG6 + AesB6gHrAf8B9gH4Af8B/QH+Af8B/QH7Af0B/wH9Af8B/QH/Af4B+QH8Af8B6gHtAf8BuAG6Ae0CswH1 + AbcBtAH1AbsBuQHnAfgB9gH/Af0B/FL//wD/AP8A/wD/AP8AGwAD/wH+Av8B/gL/Af0B/wH+Af0B/wH+ + Af0B/wH9Av8B/QL/Af4C/wL+Av0B/wH+Af8C/QH+A/0C/wH9Av8B/AL/AfwB9AHrAeYBxAG2AawBxAGz + AagBvgGuAagBwAGyAaoB3AHSAc0B/AH2AfEC/wH8Av8B/AL/AfwC/wH8Av8B/QL/Af0B/wH+Av8B/gH/ + Af0B/gH/Af0B/gP/Af0C/wH8Af4B+QH2AeQB2gHWAcMBtAGuAb4BrAGoAcEBsAGoAcABtAGrAeIB3gHX + Av8B/AH9Af8C/QL8AfgB9AHzAd4B1wHUAeAB1gHQAd4B1gHPAecB4wHeAv8B/AH+AfcB9gHoAeAB3gHb + AdACzwHDAcEBxwG7AbYBzQHCAbwB1QHLAcQB6AHhAdsB/AH2AfEC/wH8Av8C/gL/Af0C/wH8Av8B+wH9 + AfwB/QH/Af4C/wH9Av8B/QH/AfwB+QH0Ae0B6wHfAdcB0wHRAcgBxAHMAcEBvwHIAbwBuQHJAbwBugHQ + AcQBwQHbAdEB0AHrAeUB4wH8AfkB9gL/AfwC/wP8AfoB+wH8Af0B/gH9Av8B/QH/AfEC6wHeAdcB0QHe + AdUB0AHeAdcB0QH0Ae0B6wH/Af4B/QH8AfQB8wHnAd4B3QHTAcwByQHDAb4BuQHHAcEBvQHJAcEBvAHS + AcgBwwHkAdsB1AH6AfEB7AH/Af4B/QL/Af0B/AH+AfoB/AH+AfoC/wH9Af8C/QH+Av8B+gH8Af8B6wHt + Af8BvgG/AewBtgG0AfMBsQGvAfYBswGxAfkCtAHvAdUB1wH5AfgB+gH/AvwB/wP8Af0B/wH9AfwB/wL8 + Af8C/AH/Af0B+wT8Af8B9gH3Af8B0gHUAfYCtQHxArMB+QKxAfYCswHvAcoBywL0AfYB/wH5AfwB/wH+ + Af8B/QH/AfwC/wH9Af8B/AH+Af8B+AH8Af8B6QHtAf8BuAG7AesBswG0AfQBtwG0AfQBuwG4AegB+AH2 + Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAP/Af4C/wH+Av8B/QH/Af4B/QH/Av4B/wH+Av8B/gL/Af4B/wH+ + Bf8B/gH/Af4C/wH8Av0C/wH+Af8B/QH8Av8B/AL/AfsB3gHTAcsBwAGyAagBwQGzAasBwQGzAasBugGu + AagB1wHNAccB/AH1AfAC/wH6Av8B+wL/AfsC/wH8Av8B/AL/AfwC/wH9Av8B/QL/Af0C/wH8AfoB9QHw + Ad4B1gHQAcEBtQGvAbwBrAGoAcYBtgGvAb4BrwGoAdABxwHAAv8B+gL/AfwB/QH/Af4B/QL+Af8C/gH/ + Af4B/QL/AfwC/wH7Av8D/AH6Av8B/QH/Af0B/gH/Af4B/QH/AfsB+QL/AfwC/wH6Av8B+gL/AfoC/wH8 + Af4B/wH9AfwC/wH8Av8B+gL9AfsC/gH8Av8B/AL/AfsB/AH9Af4E/wH9Af8B/AH7Av8B/QH/Af4B/QH/ + Af4B/QH/AvwB/wH+AfwB/wH+AfwB/wH8AfoC/wL9Af8B/gH6Af0B+wH9Af8B/AH9Af8B/QH6AfwC/QH+ + Av8B/gL/Av0C/wH8Av8B/AL/AfwC/wH9Af8C+wH/Af4C/wL+Af0B+gH4Av8B/AH/Af4B+wH/Af0B+wH/ + Af4B/AL/AfwC/wH8Av8C/QL8Af0B/wH8Af0B/wH8BP8B/gP/Af4C/AH/AfcB+AH/AsYB7QG8AbkB9gG1 + AbMB9wKzAfMBxAHFAfYB7gHxAf8B+wH8Af8B/QH8A/8B/gH7Af0B+wH8Af8C/AH/AvwB/wH8Av8B/gL8 + Af8B+wH8Af8B6QHrAf8BvQG+Ae8CsgHyArYB+AGzAbQB7QHYAdsB+wH4AfsB/wH8Av8B/QH+AfwB/wH9 + Af8B/QH8Af8B/AH/Af4B+AH9Af8B6gHuAf8BuAG8AesBswG0AfMBtwG1AfQBugG4AegB9wH2Af8C/FL/ + /wD/AP8A/wD/AP8AGwAJ/wH+Av8B/h//Af4C/wH+Av8B/AH/Af4B+QHeAdUBzwG8Aa8BqQG7Aa0BqAHC + AbIBrQG/Aa4BqAHGAbcBrwHZAcwBxQH0AeoB4wH9AfYB7QL/AfYC/wH4Av8B+QL/AfkB/AH3AfEB9AHt + AeUB3wHTAcsByQG6AbIBvQGuAagBwgGzAawBvgGvAakBuwGuAagB2QHQAcoB/wH9AfoC/wH8Av8B/QL/ + Af4E/wH+Av8B/gP/Af0C/wH9Av8B/QL/Af4C/wH+Af8B/gP/Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/ + Af4C/wL+Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH8Av8B/AL/AfwB/wH9Af4B/wH9Av8B/QH/Af4C/wH8 + Av8B/AL/Af0B/gL/AfwC/wH7Av8B+wH+Af8B/QL/Af4C/wH9Av8B/QT/Af4F/wH+A/8B/gL/Af0C/wH+ + Bv8C/gH/Bv4B/QH/Av4B/wH+Av8B/QL/Af0B/wH+Av8B/gH/Af4B/wL9Af8C/AH/AfwB/QH/AfwB/wH+ + Af8B/gH8Af4C/wH+Av0B/wH2AfcB/wHfAeEB/wKzAesBuAG3AfQCuAHoAeQB5gH/AfYB+AH/AfoB/AH/ + Af0B/wL9Af8B/AH+Af8B/QH+Av8D/AL/Av0B/gH7Af0B/wH9AfsB/QH/AfYB+QH/Ad8B4gH/AbYBuAHo + AbUBtAHyAbgBuQHuAekB6wH/AfkB/AH/Af0B/wL9Af8B/AL9Af8C/AH/AfsB/gH8AfgB/AH/AeoB7gH/ + AbwBvgHtArEB8gK1AfYBuAG5AekC9gH/AvxS//8A/wD/AP8A/wD/ABsAMv8B/QL/AfwB/wH7AfcB5wHe + AdsBxgG5AbUBuwGsAagBwgGxAasBxAGyAasBvgGtAagBvAGuAagBwgG3Aa0ByAG/AbUBygHBAbgByQHC + AbgByAHAAbYBwQG4Aa8BuwGvAagBvgGtAagBxQGzAasBwQGxAakBuQGrAagBwwG4AbIB4gHYAdUB/QH2 + AfMC/wH8Af8B/gH9Af8C/gH/Af4C/wH+Av8B/gL/Af4C/wH+Nf8B/gH/Af4C/wH9Av8B/AL/AfwB/wH+ + Af0B/wH9BP8B/gL/AfwC/wH9Bv8B/QL/AfwC/wH8Av8B/QH/Af4C/wL9Af8C/QH+Av0B/wP+Af0B/gL9 + Af4C/QH+AfwD/QH+Af8B/QH+Af8B/QH+Af8B/QL/Af0C/wH9Av8B/QL/Af4C/wH+Af8B/gP/Af4B/QH/ + Af0B/gH/AfwB/wH9AfwB/wL8Af8B/AH9Af8B/QH/Af4B/wH9AfwB/QL/A/0B/wH6AfwB/wHqAesB/wK5 + AesCswHoAtAB9AHxAfMB/wH5AfwB/wH8Av8B/gH/AfwB/gH/AfsC/wP+Af8B/gH9A/8B/gH8Af4B+QH9 + Af8C/AL/AfkB/AH/AesB7gH/AcsBzAHwArgB7QHDAcQC8wH1Af8B/AL/Af4B/wL9Af8B/gL9Af8B/AH9 + Af8B/QL/AfsB/QH/AeoB6wH/AboBvAHoAbMBsgHwArYB8wK4AeYB9AH1Af8C/FL//wD/AP8A/wD/AP8A + GwAy/wH+AvwB+gL/AfwC/wH8AfAB5wHkAdYByQHGAcIBtAGvAb4BrwGpAcIBswGuAcEBsgGsAb8BsQGp + AbwBrwGoAbsBrwGoAbwBrwGoAb0BrwGoAcABsAGqAcEBsgGsAcEBsQGrAbsBrQGoAb0BsAGrAdABxQHB + Ae4B5QHiAf8B/AH5Av8B/AH/AfsB+gH/Av4B/wH+Av8B/kH/Af4C/wH+Af8B/gL/Af4J/wH+Av8B/gL/ + Af4B/wL+Af8B/QL/Af0B/wH9Af4B/wH9Av8B/gH/Af0C/wH9Av8B/QH/Af4B/QH/Af4B/QH/Af4B/QH/ + Av4B/wL+Af8C/gH/Av4B/wL+Af8C/gz/Af4C/wH+Av8B/gL/Af0B/gL/Av4B/wH9Af4B/wH9Af8B/QH8 + Af8B/AH9Af8B/AH9Af8B/QH/Af4C/wH8Af4B/wH+Af0B/AL9AfsB/QH/AfIB9QH/AccByAHwAboBvAHm + AekB6wH/AfkB+wH/AfsB/QH/Af0E/wH8Av8B/AL/Af0B/AL9Af8B/gP/Af0B/AH9AfkB/QH/AfwB/QL/ + AfsB/QH/AfcB+gH/AeMB5QH+AboBvAHnAs8B9gH4AfkB/wH9Af4B/wL+Af8B/gH9Af8B/QH8Af8B/QH8 + Af8C/AH/AvwB/wLsAf8CwQHpArgB7QK4Ae4CvgHnAvcB/wL8Uv//AP8A/wD/AP8A/wAbADD/Af4C/wH+ + Af8B/gL9AfwB/wH+AfwC/wH8Av8B/AH2AewB6QHeAdMC0AHDAb8BwQG0Aa8BvQGwAawBvAGvAasBvwGy + Aa4BvwGyAa0BvQGvAaoBvgGvAasBwQGzAa8BzgHBAb4B3AHRAc8B8wHqAecB/wH8AfoB/wH+AfwC/wH9 + Av8B/QL/Af4B/wH+D/8B/gL/Af4C/wH+Mf8B/gL/Af4G/wH+Av8B/gL/Af4B/wH+Av8B/gH/Af4C/wH9 + Av8B/AL/AfwC/wH9Af8C/gH9Af4B/wH9Av8B/AL/Af4B/wL+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+ + Av8B/gL/Af4J/wH+Av8B/gL/Af4C/wH9Af4B/wH9Af4B/wP+Af8C/gH/Af0B/wL9Af8C/QH/Af0B/gH/ + Af4B/wH+Av8B/gP/Af0B/AL9AfsB/gH/AfYB+QH/AdgB3AH5AdMB1gH0AfYB+QH/AfsB/QH/AfwB/QH/ + Af0B/wH9Av8B/AL/AfwB/gH/Av0B/gH9Af4C/wH+Af8D/QH6Av8B/AH+Af8C/QH+Af8B+wH9Af8B9AH2 + Af8BzQHQAe0B3gHfAfwB+wH8Af8C/QL/Af0C/gH9Af8B/gH9Af8B/gH9Af8B/QH8Af8B/QH8Af8C7gH/ + AswB6wLFAewCxwHuAs0B6wL3Af8B/QH8Uv//AP8A/wD/AP8A/wAbADD/Af4C/wH8Af0B/gH8Bf0B/wL+ + Af8B/QH8Af8B/QH8Af8B/QH8Af8B/gH8Af8B9wH1AfIB6wHnAeQB3QHZAd8B1wHTAd8B1wHTAeQB3AHY + AfIB6QHmAf4B9gH0Af8B+gH5Af8C/QH/Av4B/wL+Af8B/QH+Af8B/gL/Af4C/wH+Af8B/gL/Af4D/wH+ + Cf8B/gL/Af4C/wH+Mf8B/gb/Af0C/wH8Av8B/AL/Af0C/wH+A/8B/gL/Af0C/wH9Av8B/QL/Af0G/wL+ + Af8C/gH/Af0C/gH9Af8B/gH9Av4B/QL+Af0B/gH/Af4C/wH+E/8G/gH9Af8C/gH/Af0B/gH/Av4D/wH+ + Af8B/gH/Av4B/wH9Af4B/wH+BP8B/gL/Af4D/wH9Av8B/QH7Af0B/wH4AfwB/wHqAe4B/wHtAfEB/wH7 + AfwB/wH9Af4B/wH+Av0C/wH9Af8B/gH8Af0B/gH7Af4B/wL9Af8C/QH/Av4B/wH9Av8B/AL/AfwC/wH9 + Af4C/QH+Av8B/AH9Af8B6wHuAfwB8QH1Af8C/QL/Av4C/wH9Av8C/QH+Af0D/wH+AfwB/QH+Af0B/wL8 + Af8B9gH4Af8B9gH6Af8B9gH6Af8B8gH0Af8B+wH8Af8C/VL//wD/AP8A/wD/AP8AGwAw/wH+Av8B/QH+ + Af8B+gL8AfoB+wH8Af4F/wH+Av0B/wH+Af0C/wH9Av8B/QH/Af4B/AH/Af0B/AL/AfwC/wH8Af8B/QH7 + Af8C/AH/Af4B/QH/Af4C/wH+Av8B/gL/Af4C/wH+Af8C/AH9AvwC/QH+Af8B/QH+Af8B/QL/Af4H/wH+ + Av8B/gL/Af0C/wH+Nf8B/gL/Af0C/wH8Av8B/AL/AfwC/wH9BP8B/gH/Af4C/wH+Av8B/gH/Af0B/gH/ + Af0B/gH/Af0B/gH/Af0B/gH/Af0E/wL+Af8D/gL9Af8C/gL/Af4C/wH+Av8B/gL/Af4C/wL+Af8B/gH9 + Av4B/QL+Af0B/wH+Af0B/wH+AfwC/gH9Af8B/gH9Af8B/gj/Af4C/wH+B/8B/QH+Af8B/QH+Av8B/QL/ + Av0B/wH+AfsB/gH/AfYB+QH/AfkB/AH/Af0B/gP/Af0C/wH9Av8B/QL/Af0B/gH9AfwB/gH/Av0B/wL9 + Af8B/QH+Af8B/QL/Af0C/wH9Af8B/gH9Af4C/AH/Af4B/AH9Av8B+gH9Af8B+gH9Af8C/AH/Af4C/AL/ + AfwC/wH8Af0B/wH8Af4B/wH8Av8B/QH/Av0B/AH9Af8B+gH9Af8B+QH+Af8B+QH+Af8B+wH+Af8C/AL+ + U///AP8A/wD/AP8A/wAbADH/Af4B/wH+Af0C/wH+Af8C/gH/Af0B/gH/AvwC/QL/Af0C/wP8Av8B/gL/ + Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QH+Af8C/gH9Af4B/wH+Av8B/gH/AvwB/QH8Af0B/wH9Af4B/wH9 + Av8B+QH6AfwB/QL/Af0C/wH+B/8B/gL/Af4B/wL+Av8B/i//Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/ + Af0C/wH9Av8B/gH/Af4C/wH+A/8B/AL/AfsB/gH/AfoB/QH/AfoB+wH/AfwB+wH+Af0B+wj8AfsB/AH7 + BvwB/gH9AfwB/wH+A/0B/AL9AfwC/QH8Af0B/gH9AfwB/gL9Af8B/gH9Av8B/QL/Af0C/wH9Af8B/gX/ + Af4C/wH+Av8B/gH/Af4C/wH+Av8C/gH/Av0B/gL9Av8B/QH8Af4B/QH8Av8B+gH+Af8B/AH+Bf8B/gH9 + Av8B/gH/Af4C/wH+Af8B/gH/Av4B/wH+Af0B/wL9Af8B/QH+Af8B/QT/Af4C/wH+Av8C/QH/Af4B/QL/ + Af4B+wH9Af8B/AL/AvwB/QH+AfwB/QL/Af4B/QH/AfwB/QH/AfwB/gH/Af0B/wH+Af0B/wH+Af0B/wH+ + Av0B/wH9AfkB/QH8AfkB/gH8Af0B/wH9Af4B/wH9Av8B/lH//wD/AP8A/wD/AP8AGwAx/wH+Av8B/gH/ + Af4B/AH9Af8B/gH/Av4B/wH8Af4B/wH6A/wB/QH+Af0C/wH9Af4H/wH9Af4C/QH+Av0B/wH+Af0B/wH+ + AfwB/wH+Af0C/wH8Af0B/gH7AfwC/QH+Af8B/QL/AfoB/AH9AfsB/AL9Av8B/QL/Af0C/wH+B/8B/gL/ + Af4C/wH+Av8B/i//Af4C/wH8Av8B/AT/Af4B/wH+Af8B/gH9Af8B/gH9Av8B/QH+Av8B/QL/Af0C/wH+ + A/0B+QH8Af0B9gH5AfwB9QH2AfoB9wH2AvgB9QL2AfUF9gH1AfYB9QL2AfUB9wL2AvgB9gH6AfkB9wL8 + AfoC/AH6BPwB/gL8Af4C/QH/Af4B/QL/Af0C/wH9Av8B/gT/Af4C/wH+Av8B/gL/Af4C/wH+Af8B/gL/ + Av4D/wP9Af4C/wH7A/wB/wH9AfwB/gL8Af4B/AL/Af0B/gH9AfwB/gL8Af8B/QH+Af8B/gT/Af4B/wH+ + AfwB/wH9Af4B/wL+Af8E/gH/Af4C/wH+Av8B/gP/Af4C/wH+AfwD/QP/Af4C/wH+Af8B/gL/Af0B/wH+ + Af0B/wH9Af4B/wH9Af8C/QH/Af4B/wH+AvwC/wL9Af8C/AH/AfwB/gH/Af0C/wH9Av8B/lH//wD/AP8A + /wD/AP8AGwA0/wH+Av8B/gL/Af4C/wH+Af8B/QH+Af8B/QH+Af8B/QH+Af8B/gP/Af4C/wH+Av8B/gL/ + Af4C/wH+Av8B/gP/Av4B/wH+A/8B/gL/Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9Af8C/gH/ + Af4C/wH+BP8B/gL/Af4C/wH+MP8B/QH+Af8B/AL/Af0B/wH+Af8B/gH9Af8B/AH9Af8B/AL/AfwB/gH/ + AfwB/QH/AfsB+gH/Af0B/AH/AfoB+wH+AfcB+AH2AfgB+wLzAfYB7gHwAvEC7gHwAu0B7wLtAu4B7QHv + A+4B7wLuAfEB8AHuAfEB8AHuAfEB8AHuAfQB8gHxAfYB9QHzAfkB+AH2AfoB+QH4AvoB+QL7AfoB/AP9 + Av8B/QL+Af0B/gb/Af4B/wL+Af8B/gH9Af8C/gL/Af4C/wH+BP8B/gH/Av4B/wH+BP8B/gL/AfwC/wH8 + Av8B/gz/Af4F/wH+Af8B/gP/Af4U/wH9Av8B/QP/Af4C/wH+Af8B/QL/Af0C/wH8Av8B/QP/Af0C/wH9 + Av8B/QL/Af4B/wL+Af8C/gL/Af4C/wH+Av8B/lL//wD/AP8A/wD/AP8AGwAx/wH+Av8B/gL/Af4C/wH+ + Av8B/gH/Af4C/wH9Af4B/wL+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gP/Af4C/wH+Av8B/gL/ + Af4C/wL+Af8B/QH+Af8B/QH+Af8B/QH+Af8B/QH+Af8B/QH+Af8B/QH+Af8B/gL/Af4C/wH+O/8B/gL/ + AfwB/gH9AvwB+gH+AfwB+gH/Af0B/gH/AfwB/gH/AfkB/AH/AfAB8QH7AeEB3wH0AeUB5AH6AvAB/wH2 + AfgB/wHwAfIB8QHpAesB5QHrAeoB6QHtAekB6gHrAukB6wLoAeoC5gHpAeUB5AHpAeUB5AHqAeUB5AHr + AecB5AHrAecB5AHvAesB6QHvAesB6QHwAe0B6wHzAfEB8AH3AvYB+wL6AfwB+wH8AfoB+wH8Av4C/wH+ + Bv8B/gL/Af4B/wL+Af8B/gH9Av8B/QL/Af4D/wL+Af8C/gL/Af4D/wH+Av8B/AL/AfwC/wH9Af4C/wH+ + Af8B/gH9Af8C/gH/Av4J/wH+BP8B/gL/Af4B/wH+Af0B/wH+Af0B/wL+Av8B/gL/Af0B/gH/Av4C/wH+ + Af8B/gL/Af0C/wH8Av8B/AL/Af0D/wH+Av8B/QL/Af0C/wH9Av8B/QH/Af4B/QL/Af0C/wH9Av8B/lL/ + /wD/AP8A/wD/AP8AGwA0/wH+Av8C/gH/Af4E/wH9Av8B/QL/Af0C/wH+A/8B/gL/Af4C/wH+Av8B/gL/ + Af4C/wH+A/8B/gL/Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9Av8B/gL/ + Af4E/wH+Av8B/gL/Af4w/wH+Av8B/QH/Af0B/gH/Af0C/wH9Af8E/QL/AfsB/AH/AfUB9gH/AckByAHq + AcEBwAHoAs0B8QHhAeMB/QHpAesB9gLoAekB5wHiAd8B5wHgAdsB5wHfAdsB5gHeAdoB5gHeAdkB5QHd + AdgB5wHeAdkB6QHgAdsB6wHjAd4B7AHkAeAB6wHkAeEB7AHnAeQB7gHpAecB7gLrAfAB7QHuAfIB8AHx + AfUB9AH2AfcB9gH5AfwB+wH8Af8C/QH/Af4J/wH+Av8B/QH/Af4B/AL/Af0C/wP+Af8C/gL/Af4C/wH+ + A/8B/QL/AfwB/gH/Av0B/wL9Af8C/QH/Av0B/wH9Af4B/wH+Af8B/gL/Af4C/wH+Av8B/gH/Af4B/wH+ + Af0B/wL9Af8C/QH/Av0B/wL9Af8B/gH9Af4B/wH9Af4B/wH+Af8B/QH+Af8C/QH/Av0B/wH9AfwB/wL9 + Af8B/QL/Af0C/wH+Af8B/gL/Af4B/wH+Af0B/wH+Af0C/wH+Av8B/lX//wD/AP8A/wD/AP8AGwA1/wH+ + Av8B/gL/Af4C/wH+Af0C/wH9Av8B/QL/Af4D/wH+Av8B/gL/Af4C/wH+BP8B/gL/Af0B/wH+Af0B/wH+ + Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH8Av8B/AL/AfwC/wH9Av8B/QL/Af0C/wH+BP8B/gL/Af4C/wH+ + Av8B/i//Af4B/wH+AfwB/QH/Af0C/wH+Af8C/gH9AfwB/QH8AfsB/AH/AvYB/wHLAcoB8wG4AbcB6wK2 + AesBxQHGAfIC1wHxAdUB0wHfAcsCxAHQAcYBvwHKAb4BtgHLAb4BtAHMAb4BtAHNAcABtgHPAcEBuAHR + AcQBugHUAcgBvwHWAckBwQHeAdQBzAHjAdkB0wHnAd8B2gHpAeMB4AHqAuQB7ALoAfAB7QHuAfQB8QHy + AfcB9AH1AfoB+AH5Af4B/AH9Af8B/gL/Af4D/wH+Av8B/QL/Af0C/wH9Av8C/gL/Af0B/gH/Av4C/wH+ + A/8B/gL/Af0B/gH/Av0B/wH9AfwB/wH9AfwB/wL9Af8B/QH+Af8B/gH/Af4C/wH+Av8B/gL/Af4B/wH+ + Af8B/gH9Af8B/QH8Af8B/QH8Af8C/QH/Av0B/wH+Af0B/gH/Af0B/gH/Af4B/wL+Af8C/QH/Av0B/wL9 + Af8C/QH/Af0B/gH/AfwC/wH9BP8B/gH/Av4B/wL+Bv8B/lT//wD/AP8A/wD/AP8AGwA1/wH+Av8B/QL/ + Av4B/wH+Af0C/wH9Av8B/QL/Af0B/gH/Av4B/wL+Af8C/gH/Af0C/wH9Av8B/AL/AfsB/wH+AfwB/wL+ + Af8B/gL/Af4C/wH+Av8B/QL/Af0C/wH9Av8B/AL/AfwC/wH9Av8B/QL/Af0C/wH+BP8B/gH/Av4B/wH+ + A/8B/i//Af4C/wH9Av8B/gL/Av0B/AH9AfoC/wL9AfwB/wH5AfgB/wHMAcoB9AG5AbgB8QGzAbIB9AG4 + AbYB8wG9AbsB5wG5AbYB0AG2Aa8BtwHCAbcBsQHIAbgBrQHLAbkBqQHLAbkBqQHMAboBqQHNAbsBqwHP + AbwBrQHPAb4BrwHPAb8BrwHOAb8BsQHQAcIBtgHUAcgBvgHbAdEByAHjAdoB0wHpAeIB3QHtAecB5AHv + AeoB5wHyAe4B7AH3AfQB8wH8AvoD/AL9Av4E/wH+Av8B/QL/Av4B/wH+Af0C/wH9Av8B/QH/Af4C/wH+ + Af8B/gP/Af4C/wL9Af8C/QH/Af0B/AH/Av0B/wH+Af0D/wH+Av8B/gL/Af4C/wH+Af8B/QL/Af0B/wH+ + AfwB/wL9Af8C/QH/Av0B/wH+Av0B/wL9Af8C/gH/Af4C/wH+Av8B/gL/Af4C/wH+Af8B/gL/Af0C/wH9 + Af4C/wH+Av8C/gH/Af4C/wH+Af8B/QH+Af8B/QL/Af5R//8A/wD/AP8A/wD/ABsAMv8B/gL/Av4B/wH9 + Af4B/wL+Av8B/gL/Af0B/gH/Af0B/gH/Av4B/wL+Af8C/gH/Av4B/wH9Af4B/wH9Av8B/AL/AfwC/wH8 + Av8B/gP/Af4G/wH+Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af0G/wH+Av8B/jP/Af4C/wH+ + Av8B/gL/Av4C/wH9Av8B/gH6AfgB/AHrAeoB+gHTAdEB9gG5AbgB7QKxAfUBtgG0AfkBtgGzAe0BugG1 + Ad4BwAG4AcsBwgG3AbgBywG6Aa4B0AG8AagB0AG9AagB0gG+AagB0gG+AagB0wG/AakB0wG/AakB0gG/ + AakB0AG+AakB0AG/AasB0AHAAa4B0QHDAbMB1gHIAbsB3gHRAcYB5wHdAdEB6wHjAdoB7gHoAeQB8gHv + Ae0B9wL2AfkB+AL6AfsC/AP+Af8C/gH/Af0C/wL+Af8B/gH9Af8C/QH/Av0B/wH9Af4B/wH9BP8B/gP/ + Af0B/gH/Av0B/wH+Af0C/wH9Av8B/Qb/Af4C/wH+BP8B/QL/Af0C/wH9Av8B/QH/Av4B/wH9Av8D/gH/ + Af4B/QH/Av4C/wH+Av8B/gL/Af4C/wH+Bv8B/gL/Av4C/wH+Av8B/gL/Af4B/wL+Af8B/QH+Af8B/QL/ + Af5R//8A/wD/AP8A/wD/ABsAMv8C/gH/Av4B/wH9Af4B/wH+BP8B/gL/Af4C/wH+Av8B/QL/Af0C/wH9 + Av8B/QL/Af4C/wH+Af8B/gL/Af4C/wH9Av8C/gH/Av4C/wH+Av8B/gb/Af4C/wH9Av8B/QL/Af0C/wH9 + Av8B/QL/Af0H/wH+Av8B/jD/Af4C/wH9Af8B/QL8AfsB/AH/Af4C/wH+Af8B8wHxAfMB4QHfAeEC1wHe + Ae4B7wH/AcsBzAH0AbMBtAHwArQB+QG4AbQB+AG+AbgB8QHGAb0B4gHCAbYBxQHKAboBsAHRAb4BqAHT + Ab8BqAHVAcEBqAHXAcEBqAHXAcIBqAHZAcMBqAHZAcQBqAHcAcYBqwHcAccBrAHaAccBrAHXAcMBqgHU + AcEBqQHXAcUBrgHfAc8BuQHkAdYBxQHlAd4B1QHpAeUB4wHvAu0B8gHxAfMB9QH2AfcB+gL8Af0B/wH+ + Af0B/wH9Av8C/gH/Af4B/QH/Av0B/wH8Af0B/wH8Af0B/wH8BP8B/gL/Af4C/wH+Af8C/gH/Af0B/gH/ + Af0B/gH/Av4D/wH+Av8B/QL/Af0C/wP+Af8B/QH+Af8B/QH+Af8C/gL/Af4D/wH+Av8B/QH+Af8B/QL/ + Af4C/wH+Af8B/gL/Af4C/wH+Av8B/gf/Af4C/wH9Af8C/gH/Af0B/gH/Af0B/gH/Af0B/gH/Af0C/wH+ + Uf//AP8A/wD/AP8A/wAbADP/Af4B/wL+Af8B/gf/Af4C/wH+Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9 + Av8B/gL/Af4C/wH+Av8B/gH/Av4B/wL+Af8C/gH/Av4C/wH+Bv8B/gL/Af0C/wH9Av8B/QL/Af0C/wH+ + B/8B/gb/Af4C/wH+Av8B/gL/Af4C/wL+Af8C/gH/Av4C/wH+Fv8B/gH/Af0B/AL/Af0B/wH+Af8B/QH+ + Af8C6gHtAc8BzgHQAdcB1gHXAfcB9gH6AfkB+wH/AdwB3gH7AbgBugHtAbABsQHxAbQBsQH3AbcBsQH0 + AcEBuQHuAccBvQHcAccBuAG5AdABvAGtAdMBvwGpAdYBwQGoAdgBwQGoAdoBwwGoAdsBwwGoAdsBxAGo + AdwBxAGoAd4BxwGoAd8ByAGoAd4ByAGoAd4ByAGpAdwBxwGpAdsByAGqAdgBxwGuAeAB1QHFAeQB3QHU + AesB5gHhAe4B6wHqAfEB8gHxAfcC+QH8Bf0G/wH9Af8C/QH/AfwB/QH/AfwB/QH/AfwE/wH+Av8B/gL/ + Af4B/wH+Af0B/wH9Af4B/wL+Af8C/gP/Af4C/wH9Av8B/QL/A/4B/wH9Af4B/wH+Af0B/wH+Af0C/wH+ + A/8B/gL/Af0C/wH8Av8B/QL/Af4C/wH+Av8B/gH/Af4C/wH+Av8B/gT/Af4C/wH+Af8C/gH/Af0B/gH/ + Af0B/gH/Af0B/gH/Af0C/wH+Uf//AP8A/wD/AP8A/wAbAEP/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/ + Af4C/wH+C/8B/gL/Af4C/wH+Av8B/gz/Af4C/wH+Av8B/gL/Af4O/wH+Av8B/QL/Af0B/gH/Af0B/gH/ + Af0B/gH/Av0B/wL9Af8C/QH/Af4B/AH+Af0B/AH9AfwH/wL+Af8B/gL/Af4B/wH+AfwB/QP/Af4C/wH7 + Af0B/AHdAeAB3wHIAcsBzAHOAdAB0QLyAfQC/QH/AfoB/AH/AfQB9wH/AcwB0AH2AbQBtwHtAbgBtwH5 + AbQBsQH5AbUBsgH1AcABuQHrAcoBvAHUAcsBuQG6AdABugGpAdoBwgGoAd8BxwGoAd4BxAGoAdoBwgGo + Ad0BxgGqAd8BxwGoAd8ByAGoAeEByAGoAeIByQGoAeEByQGpAd8BygGpAd4BygGoAdwByQGpAdoByAGu + Ad4B0AG6AegB3gHOAe4B6AHeAe8B7QHmAfMB9AHxA/oC/AH9Af8B/QH/Af4B/QL+Af8C/gH/Af0B/gH/ + Af0B/gH/Af0B/wH+Av8B/gL/Af4C/wH+Av8B/gH/Af4D/wH+Av8B/gb/Af4C/wH+BP8B/gH/Af4D/wH+ + Av8B/gL/Af4G/wH+Av8B/gL/Af4d/wH+Av8B/gL/Af4C/wH+VP//AP8A/wD/AP8A/wAbAJL/Af4C/wH9 + Av8B/QL/Af0B/gH/Av0B/wL9Af8C/QH/Av0B/wH+Af0B/wH+Af0B/wH+A/0D/gT/Af4C/wH9Af4B/wH+ + Av8B/QH/AfkC+gHaAdwB2gHLAc4BywHKAswC8QHzAf4C/wH9Af4B/wH7Af4B/wH3AfsB/wHmAeoB/wHC + AcQB8AGwAa8B7AG0AbIB+AGyAa8B+QG6AbUB9AHGAbsB4gHLAbwBywHRAb8BtgHZAcMBqwHgAccBqAHh + AcgBqAHeAccBqgHeAccBqwHeAcgBqAHfAcgBqAHiAcoBqAHjAcsBqAHiAcoBqQHhAcsBqQHhAc0BqQHg + Ac4BqgHhAc4BrQHcAcsBrgHeAdMBuQHnAeABzQHsAeoB3gLxAesB+AH3AfYB+wL6Af8B/QL/Af4B/wP+ + Av8C/gH/Af4E/wH+Av8B/rX//wD/AP8A/wD/AP8AGwCV/wH+Av8B/QL/Av4B/wH+Af0B/wH+Af0B/wH+ + Af0B/wH+Af0C/wH8Av4B/QL/AfwC/gL9Af4B/wH+Av8B/QH+Af0B/AH9Af8B/gL/AfwB/gHlAeMB5ALI + AcYByQHIAccB6QLnAf8C/gL/Af0B+wH6AfkB+wH8AfoB+QH8Af8B9wH5Af8C2wH9AboBtgHrAbYBsAHz + AbcBrwH6AbgBsQH1AcABuQHqAcYBvgHXAc4BwAHBAdIBwQGwAdkBxAGoAeAByAGoAd8ByAGqAd0BxwGo + Ad4ByQGoAd8BywGoAeMBzgGoAeIBzQGoAeABzAGpAeABzQGrAd8BzwGrAd8B0QGuAeIB0QGuAdoBywGq + AdYBywGvAdsB1QG+AeQB4AHQAewB6wHhAfUB9AHvAfgB9wH2Af4C/QH/Av4C/wH+Av8B/gL/Af4E/wH+ + Av8B/rX//wD/AP8A/wD/AP8AGwCa/wH+Av8B/gH/Af4C/wH9Av8B/QL/Af0C/wH8A/0C/wH9Av8B/QH+ + Af8C/QP+Av8B/QH+Af8C/QHqAecB6AHOAssBygHIAccC3gHcAv8B/gH9AvwC/wP9AfwC/wH8Af0B/gH/ + AfoB/AH/AvEB/wHSAdAB+QG5AbQB7QG6AbQB+AG5AbQB9QG9AbsB6wHDAcEB3QHJAcIByAHNAcEBtgHT + AcIBrQHaAccBrQHcAcgBrwHZAccBrQHdAcsBrwHdAcwBrQHiAdABrQHhAc8BqwHfAc0BqgHfAc8BqwHd + Ac8BqwHfAdMBrgHgAdMBrgHgAdQBsQHcAdIBsgHXAdABtQHZAdYBwQHmAeQB1QLxAecC9QHwAvwB+gH+ + Av0F/wL+Af8B/gL/Af4E/wH+tf//AP8A/wD/AP8A/wAbAJT/Af4C/wH+Av8B/gL/Af4B/wL+Af8B/QL/ + Af0B/gH/Af0B/gH/Af0B/gH/Af0B/gH/Af0C/wH9Av8D/AH+A/8B/gH/AfEB8AHxA88ByQLIAtMB0gH1 + AfYB9AH7AvwB/gL/AvwB/gH9Av8B+gP8Af4B/wH3AfkB/wH5AfoB/wLtAf8ByQHIAfMBtwG1Ae0BtAGz + AeoBwQHCAeoBxAHHAd4CyAHNAcsBxgHBAdEBxgG5AdYByAG5AdcByAG8AdcByAG8AdYByAG5AdcByQG2 + Ad8BzwG2Ad8BzwGwAeABzwGuAeIB0QGuAd4B0QGsAeAB1QGvAeAB1QGvAeQB2QG2AeIB2QG3AdoB1AG0 + AdgB0wG5AeAB3gHJAewB6wHeAfQB8wHsAfoB+QH2A/wG/wL+Af0C/wL+Av8B/rb//wD/AP8A/wD/AP8A + GwCR/wH+Av8B/gL/Af0C/wH+Av8B/gL/Af4B/wL+Af8C/gH/Av4B/wL+Af8B/AL9Af4C/wb9A/8B+gL5 + A94ByQHKAckBzgHPAc0B5QHmAeQB/AH9AfsB/QH/Av0C/wH9Av8B/AH+Af8B/QL/AfwB/gH/AfwB/gH/ + AfsB/AH/AfgB+gH/AeEB4wH/Ab0BwAHoAbwBvwHnAbwBwQHdAb4BwQHSAcABwgHHAsMBwAHIAcIBvAHK + AcIBvAHLAcEBvwHLAcEBwAHOAcUBwAHQAccBugHcAc8BugHfAc8BtAHjAdEBsQHlAdcBswHgAdUBrwHj + AdkBtAHhAdgBtAHhAdgBtgHiAdkBtgHhAdkBuAHeAdkBuwHeAdkBwQHlAeMB0gHxAfAB5gL2AfEB/AL6 + Af8B/gL/Af4B/wH+Av0C/wH+Af0C/wH9Av8B/rP//wD/AP8A/wD/AP8AGwCR/wH+Av8B/gL/Af4C/wH+ + Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8C/QH/Av4B/wL9Av8B/gH/Av4B8ALtAdABzwHOAcwBywHJ + AdYB1wHTAvYB8wL9AfoC/wL8Af0B+wH9Af8B/QH8Af4B/QH/Af4C/wH+A/8B/gT8Af0B/wH4AfwB/wHn + AesB/wHpAe4B/wHuAfEB/wHuAfEB+gHuAfIB9AHwAfMC8QHzAfAC8wHxAfMB8QHyAfMC8QHKAccBwwHN + AccBvAHbAdABvAHfAdEBtwHlAdUBtQHqAdkBuAHiAdcBtQHjAdoBuQHjAdsBuQHhAdoBuAHiAdoBuAHl + Ad4BuwHkAd4BvwHeAdkBwAHhAd4BzAHrAeoB3gH0AfEB7QH6AvgB/wH+Av8B/gH/Af4C/QP/Af0B/wH+ + Af0B/wL+s///AP8A/wD/AP8A/wAbAJH/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/ + AvwB/wL+Af8C/gH/Af4B/QH/Af4B/QH+AfoB+QHoAeQB4wHMAcgBxwHNAckBxwHqAeYB5AH/AfwB+QL/ + AfwB/gH8AfYC/wH6Av8B+gL/AfwB/wH8AfsC/wH8Af8B/AH5Av8B+wL/BPwB+gH9Af8B+QH8Af8B/AH9 + Af8B/AH9Af8B+wL/AfoB/wL8Af8B/QH8Af8B/gH9Af4B/wP8AcoByQHGAc0ByQG+Ad0B0wG+AeEB1AG4 + AeYB1wG3AeoB3AG6AeAB1wG4AeAB2gG7AeIB3AG9AeQB3gG+AeUB3wG8AeYB4AG9AeYB4AG/AeIB3QHB + AeEB3gHIAeYB5AHXAfIB8AHrAfkB9wH2Af8B/QH+Af8B/gH/Af4B/QH+A/8B/QL/AfwB/gH9Af6z//8A + /wD/AP8A/wD/ABsAlP8B/gH/A/0H/wH+Af0C/wH+Af8C/gL/Af0B/wH+Af0C/wH9Af8B/gH9Af8B/QH7 + Af8B+QH3AfEB6wHqAdcB0AHPAcsBxAHBAdMByQHHAeAB1QHSAecB2wHZAeMB1wHTAd8B1wHPAd4B1wHL + Ad4B1wHLAd8B1wHNAeIB1wHQAeMB1wHRAegB2wHTAeoB3gHWAekB4AHXAesB5AHdAfQB8QHuAv8B/gH/ + Af4B/wL+Af8B/AH/Af4B/AH/Af0B/AH/Av0B/wH9AfwC/gL/AfwCzQHEAcwByAG5Ad0B1QG8AeQB2QG6 + AecB2wG4AeUB2wG4AeIB3QG9Ad8B3QG+AeEB3gG/AeQB3wG+AeUB4QG9AegB4wG+AeYB4AG+AeUB3wHB + AeIB3gHHAd8B3gHOAe0B6wHkAvYB8wH8AfoB+wH/Af4C/wH+Af8C/AL9Av4B/QL/Af6z//8A/wD/AP8A + /wD/ABsAk/8C/QH8Av8B/gL/Af4B/AH6AfkB+wH5AfgC/wH9Af8B/gH9Af8B/AH6AfsB9gH1AfEB6wHq + AeQB3gHcAdgB0QHQAdUBzgHLAc0BxgHEAcEBuQG4AcIBuQG3AccBugG4AcsBvQG6AcgBugG5AcMBtQGy + AcEBtgGuAcABtQGqAb4BtQGoAcABtQGoAcEBtQGqAcABsQGpAcABrwGoAcQBtAGrAcMBtgGrAcIBuAGu + AdwB1gHPAv8B+wL/Af0C/wH+Af0B/wL9Af8B/QH+Af8B/gP/Af4C/QH+Af0B+wHQAc4BxgHPAcsBvAHe + AdcBwAHkAdsBvQHnAd4BvAHmAd4BvQHkAeABwQHgAd8BwQHjAeEBwQHkAeMBwQHnAeQBwAHlAeEBvQHo + AeMBwAHlAeEBwQHiAeABxwLeAcoC6wHfAfYB9QHwAfwB+gH5Af8B/gL/Af4B/wH9AfwB/gH9Af4B/wH+ + tv//AP8A/wD/AP8A/wAbAJL/A/4D/QH8Av8B/AL/Af0C/wH9Af8B/AH6AfMB8AHuAeMB3gHdAdMBzgHM + AdABygHIAcwBxgHEAc0BxwHEAdIBygHIAcoBwwHBAcIBuwG4AckBwQG+AdcBzAHIAdkBzQHKAdYCyAHV + AcgBxwHVAcgBxgHQAccBwAHMAcMBuQHLAcIBtgHHAboBsQHGAbgBsAHBAbIBqwHBAbMBrAG9AbEBqQG3 + Aa0BqAHVAc0ByAL/AfwB/wH+AfwB/wH9AfwB/gH9AfwB/wL9Af8B/QL/Af0C/wH8Av8C/AHLAccBxAHI + AcMBuQHXAdABvgHfAdcBvgHnAd4BwQHoAeEBwwHmAeIBxQHiAd8BwQHhAeABwQHjAeIBwQHlAeQBwQHi + Ad8BvAHnAeQBwQHkAeIBwgHjAeEBxwLdAcgC6AHaAvQB6wH7AfoB9gH/Af0B/gH/Af4B/wH+AfwB/gH/ + Af4C/wH+tf//AP8A/wD/AP8A/wAbAJL/Af4C/wH9AvwB+gL/AfwC/wH8AfYB9AHyAeAB3QHaAdIBzgHM + Ac8BygHIAdgB0wHQAd4B2AHWAecB4QHfAfEB6wHqAfYB8AHuAeEB2gHYAc8ByAHHAdMBzQHKAfwB9QHx + Af8B+gH3Af8B+AH5Af8B/AH9Af8C/AH/AfoB9wH+AfYB8QH8AfUB7gH3Ae8B6gH3Ae4B6AHqAd8B2wHh + AdcB0gHZAdABywHQAcgBxAHhAdsB2AH/AfwB+wH/Av4B/wH+Av8C/gH/Af4C/wH9Av8B/QL/AfwC/wH8 + Af8BxgHBAcABuwG1Aa4BwQG5AasBxgG8AagBzQHCAawB1wHNAbQB4wHaAcIB6AHjAckB5AHhAcUB4wHi + AcQB5gHkAccB4wHhAcIB5wHlAccB5AHjAcYB5QHkAcsC4AHLAuQB1QHxAfIB6AL6AfUB/wL9Af8B/gH/ + Af4B/QL/Af4C/wH+tf//AP8A/wD/AP8A/wAbAJL/Af4C/wH9Av8B/AL/AfwB8wHxAe8B2QHXAdUB0AHM + AckB2wHXAdYB8ALrAf0B+QH3Af8B+wH5Af8B/QH8Af8B/gH9Af8B/gH9AeAB3AHbAc4BygHIAdcB1AHR + Av8B+wL/AfwB/QH7AfwB/wH9Av8B/AL/Af0C/wL+Af8B/gH9Af8B/QH8Av8B/QL/Af0C/wH9Av8B/QH+ + AfwB+wH8AvsB/wH+Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9Af8B/QH8Af8B/QH8Af0BxgHCAcABuQG0 + Aa0BvgG2AakBwAG0AagBwAGzAagBwQGzAagBywG8Aa4B0QHGAbYB5AHeAckB4wHhAckB5QHjAcsB4wHh + AcoB4wHhAcoB4QHgAckC4wHNAeMB5AHQAeIB4wHTAvEB5wL6AfUC/gH8Af8B/gL/Af0C/wH+Av8C/rT/ + /wD/AP8A/wD/AP8AGwCS/wL+Af0B/AL/AfwC/wH8AeIB3wHeAdUB0gHQAe0B6gHoAf4B+gH5Av8B/QL/ + Af0B/wH+Af0B/wH+Af0B/wH+Av0C+wHWAtQBygLIAd0B3AHbAv8B/AH7AfwB+QHnAukB6AHpAesC5wHq + AekB5wHrAekB5gHqAekB5gHoAeoB6AHpAeoB6AHpA+QC7wHuA/wD/QH+A/8B/gH/Af0B/AL/AfwC/wH8 + Av8B/AH/Af4B/AH/AvwB/wL8Af8D/QHIAcYBwQG5AbQBqgG8AbMBqAHAAbMBqAHEAbUBqAHDAbMBqAHE + AbEBqAHAAbABqAG9AbUBqAHMAcgBuAHNAcoBuwHQAc4BwAHTAdEBwgHXAdUBxAHTAdEBwQHeAd0BzALi + AdMC8gHoAfoB+wH2Av4B/AH/Af4C/wH9Av8B/gL/Av60//8A/wD/AP8A/wD/ABsAkv8B/gL/Af0C/wH8 + Af8B/QH8AdsB2AHXAdwB2QHXAv8B/QL/Af0B/wH8AfsC/wH9Af8C/gH/Av4C/wT+AdIC0wHIAsoB4QHi + AeEC/wH9AvYB9QHhAuMB7QHuAe8B8QHyAvMB8gH0AfEB8AHxAfMB8QHyAfYB9AH1AfQC8wHkAeYB5AHs + Ae4B7AH9Af8C/QH/Av0B/gH8Av8B/QH+Af8B/QH+Af8B/gL/A/4B/wL8Af8B+QH8Af8B+QH8Af8B/AH9 + Af4B3gHaAdQBzQHGAbkBxwG7AawBwAGyAagBwAGwAagBwQGxAagBxAGzAagBwAGwAagBwQG2Aa4B6AHi + AdsB5gHhAdwB6AHkAd4B6gHnAeEB5wHkAdwB0AHOAcIB3wHeAdAC4gHVAvMB6QL8AfYC/gH9Af8B/gL/ + Af0C/wH+Av8C/rT//wD/AP8A/wD/AP8AGwCS/wH+Av8B/QH/Af0B/AL/Af0B3gHbAdkB3AHZAdcB/wH+ + Af0B/wH+AfwB/wH+AfwC/wH9Av8C/gL9A/8C/QH+AdAC0QHIAsoB5AHmAeUC/wH+A/QD5AH2AvgB/wH+ + Av8B/gH/Af0B/AH9Af8B/gL/Af4D/wH9AegB6QHnAekB6wHpAf0B/wH9Af4B/wP9AfwC/wH9Af4B/wH8 + Af0B/wH8Af0B/wH9AfkB+wH8AfEB9AH8AesB7wH8AegB7AH9AesB7QH7Ad0B3AHdAd4B2QHQAeYB3QHL + AdsB0AG7Ac0BwQGvAcQBuAGoAcMBtQGoAb0BsAGoAckBwQG5Af8B/gH8Af8C/AH/Af4D/wH9AfoB9wHz + AdABzwHFAt8B0wLjAdcB8wH0AeoC/AH3Av8B/QH/Af4C/wH+A/8B/QL/Af0C/wH+sf//AP8A/wD/AP8A + /wAbAJT/Af4C/wL8Av8B/QH1AfEB8AHaAdcB1AHkAeEB3gH/Af0B+gL/AfwC/wH8Av8B/QL/Af4C/wH+ + A/0B0gLTAcgCyQHnAugD/gP5A+EC+QH6Af8B/QL/Af4C/wH+Av8B/gL/Af4B/QH/Af0B/ALwAe4B7AHt + AesB+gH7AfoD/AbqAeYB5wHkAecB6AHmAeQC5QHgAeIB5gHVAdcB5QHBAcUB3wG1AbkB5QG4Ab0B5QHO + AdIB4wHXAdkB1gHfAd0ByAHnAeMByAHpAeQBzAHjAd0BxgHZAdEBuwHJAcIBsAHPAckBwQH+AfsB+QH/ + Af0C/wH9Av8B/gH/AfkB9wH1As0BwwHiAeMB1wHkAeUB2QH0AfYB7AL8AfgB/wH+Af0B/wH+Av8C/gL/ + AfwC/wH8Av8B/bH//wD/AP8A/wD/AP8AGwCT/wH+AfwB/QH/Af0B/gL/Af0C/wH8AfEB7gHrAd8B3QHY + AeUB4wHfAfYB9AHxAf8B/QH7Av8B/QL/Af0C/wH+AfwB/QH8AdkC2AHKAskB4QLgAf4B/wH+A/YB3wHe + Ad8B/AH6AfwB/wH+Av8B/gH/Af4B/AH9Af8B/gP/Af4C/wH9AuoB6AHqAekB6AL/Af4D+gLaAdsB4QHg + AeEB4wHiAeEB4gHjAeEB4gHkAeMB4gHkAeoB3AHfAe4ByAHMAesBtQG5Ae8BtgG8AfABxAHMAeYB1AHZ + AdsB3gHfAcsB5QHjAcYB5wHkAcoB5wHkAcoB6AHkAcoB5AHhAcsB5AHjAdcC/wH8Af8B/gH9Af8C/AL/ + Af0B+AH3AfIBzwHQAcYB3QHfAdEB5AHnAdsB9QH2Ae0B/QH8AfkB/wH+Av8B/QL/Af0B/gL/AfwC/wH8 + Av8B/bH//wD/AP8A/wD/AP8AGwCU/wH+Av8C/gH/AvwC/wH9Av8B/AH2AfQB8QHnAeQB4QHkAeMB3wH0 + AfMB8AL7AfkC/wH9Av8B/gP8Ad0B3AHbAcsByQHIAeEB4AHeAv0B/AH1AfYB9APeA/oC/gH/Av4B/wH9 + Af4B/wH+Av8D/AL/Af0C6wHqAesB6gHpAv8B/gH2AvUD3gH5AfgB+QP/Af0B/gH9AfwB/gH9AfoB/AH/ + AfQB9wH/Ad0B4AH7AbwBwQHxAbYBuwHtAb4BxQHjAdEB1wLeAd8BzwHjAeIBxQHjAeEBxgHkAeIBxwHn + AeQBywHnAeUB0AHsAe0B3gL/AfYC/wH4Av8B+gL/AfoB/QH+AfQB2wHeAdAB3QHgAdEB5wHqAd0B9gH4 + AfAB/gH9AfsB/wH+Av8B/QH/Af4B/AP/Af4C/wH9Av8B/rH//wD/AP8A/wD/AP8AGwCU/wL9Af8C/gL/ + Af4B/wH+AfwC/wH8Av8B/AH9AfsB+QHxAfAB7QLkAeIC6QHnAfMB9AHzAf0B/gH9Av8B/QHlAeQB4gHK + AccBxQHdAdoB1wL/AfwC+gH2AuEB3wH3AfkB+AH6A/wC/gH8Af0B/gH7AvwB/QL+A/wC6wHqAe4B7QHs + Av8B/gH1AvQD4AP8Af8B/gH/AfwD/QH/Af0B/AH+Af8B+gH8Af8B6wHuAf8BxwHLAfYBuAG/Ae0BugHB + AeQBzgHUAeIB3gHgAdMB4gHjAcgB5QHkAcgB5gHkAcgB5QHkAcoC5AHNAeYB6AHVAe4B8QHgAe4B8QHj + AfEB8wHlAe8B8QHkAfEB8wHlAeIB5QHVAeQB5wHXAesB7gHgAfkB+gHxAf8B/gH8Af8B/gL/Af0B/wH+ + AfwC/wH+Av8C/rT//wD/AP8A/wD/AP8AGwCU/wH+Af8B/gH8Af0C/wL+Af8B/QH7AfwB+gH+Af8B/AL/ + Af0C/wH9Af8B/gH9AfYB9QH0AfAB8QHwAfQB9gH0Av0B+wHyAfAB7QHQAcoByAHYAdIBzwH/AfsC9gHz + Ae4B4QHfAd0B/wH+AfwC/wH+Af0C/wH9Av8B/gX/Af0C/AHtAusB7QHsAesC/wH9AfcC9gLgAd8B+gL7 + AvwB/QH7A/wB/wH9AfwC/QH8Af0B/wH1AfcB/wHUAdgB+wG+AcQB7QG6AcEB5wHJAdAB5AHZAd0B1wHf + AeIBygHkAeUByALoAcoB5gHnAc0B5QHnAdAB4wHlAdAB4gHmAdAB4gHlAdEB4wHmAdMB3gHiAc8B5AHo + AdYB4QHlAdMB5AHoAdcB8AHyAeYC/AH0Av8B/AH/Af4C/wH9Af8B/gH8Av8B/gL/Af61//8A/wD/AP8A + /wD/ABsAlP8B/gH/Af4B/QH+BPwB/gL9Af8C/QH/Af0C/wH+Af8B/gH9Af8B/gL/Av4B+wL8AfoB/AH6 + Av8B/AH6AfcB9AHGAb8BugG7AbIBrQHCAboBtAG/AbgBsgG+AbgBtAH0AfEB7gL/Av0F/AH/Af4C/wH9 + Af4B/wH+Af8B7gLsAesB6QHoAv8B/QL3AfYD3gH7AvwB/QH+Af8B/QL/Af0B/wH9AfwB/gL9Af4B/wH6 + AfwB/wHjAecB/wHHAc0B8QG5AcEB6QHCAcoB5QHVAtoB3gHhAc4B4gHkAccB5AHmAccB4wHlAcsB4wHm + Ac4B4wHoAdAB4gHoAc8B5AHpAdIB5gHrAdUB5AHqAdUB5QHqAdUB4wHnAdQB4wHnAdcB9QH3AesB/QH/ + AfcB/gH/AfwB/wH+Av8B/gH/Af4B/AL/Af4C/wH+tf//AP8A/wD/AP8A/wAbAJP/AfoB+AH5Af8B/gH/ + Af0C/wH7Af4B/QH7Af8C/QH/BP4B/wL9Af4B/AH9Af8B/gH/Af0C/wH9Af8B/QL/AfwB/wH9AfkByAHA + AroBrwGpAbwBrwGoAb0BsAGqAcEBuAGyAfkB8gHwAf8B/gH9Af8C/AH9AfsB/AH/Af0C/wH8Af0B/gL8 + AfEC7gHvAusC/wH9AfkB+AH2Ad4B3wHeAfYC9wH9Av8B/QL/Af0B/wH9Af4B/wH9Af4C/QL8Af8B7wH0 + Af8B0QHXAfUBugHBAesBvgHFAeUB0QHYAd4B3wHkAdYB4wHlAcoB5QHoAcgB5AHoAc0B4wHoAdAB5AHq + AdAB4wHqAdAB4wHqAdAB4wHpAdEB5wHtAdYB5QHrAdYB5QHrAdcB6gHtAd4B+QH8AfEC/wH6Af0B/gH7 + Af8B/gH9Af8B/gH/Af4B/QH+A/8D/rT//wD/AP8A/wD/AP8AGwCU/wH+Av8B/gH/AfwC/wH7Av8B+gH+ + Af0B/AP/Af4C/wH+Av8B/gH/Av0B/gH8Af4B/wH8Av0C/wH8Av8B/AHJAcEBuwG+AbEBqwHCAbIBrAHC + AbMBrQG8Aa8BqwHkAdoB1wHlAd8B3gHjAd4B3wHiAd8C4AHeAd8B4gHeAd8B4wHeAd8B5ALfAeEC3gHj + AeAC3wLeAdsB3AHaAfsD/AH+Av0B/wH+AfwB/QH8Av8B/QH/AfwB/QH+Af0B/wH3AfwB/wHbAeIB+AG/ + AccB7gG7AcQB5wHNAdUB4AHbAeEB2QHfAeQBywHkAecByAHiAecBzAHgAecBzQHiAegB0AHkAesB0gHk + AeoB0QHiAegB0AHnAe0B1wHkAekB1QHmAeoB2QHuAfEB5AH8Af0B9QL/AfsC/QH7Af4B/QH8Av8C/gH/ + Af4C/wP+Af20//8A/wD/AP8A/wD/ABsAlP8B/gL/Af4B/wH8Av8B+wL/AfsC/wH8Av8B/gP/Af4C/wH+ + Af8E/QL/AfoB/AH7Av8B/AL/AfwByAHAAboBuQGtAagBwgGzAa0BwAGwAakBwQG0Aa8B8AHmAeQB9wHx + AfAB9gHyAfMB8QHuAvAB7QHvAfEB7QHuAfYB8gHzAegC5AHpAuUB8wHxAvAB7wHuAfIB9AHyAfoB/AH6 + Af0B/wH+Af0B/wH+Af0B/wH+Av8B/gH/Af4C/wH+Af8B+gH9Af8B6AHuAf4ByAHQAfQBugHEAecByAHR + AeIB2AHfAd0B3wHjAc4B5AHnAcoB4wHpAc0B4QHoAc4B4wHpAdAB5QHrAdMB5AHrAdMB5AHrAdQB5QHr + AdYB5AHpAdcB6gHtAd8B9gH5Ae4C/wH6Av8B/AL/Af0C/wH9Av8B/QL/Af4C/wH+Av8B/rT//wD/AP8A + /wD/AP8AGwCR/wH+Av8B/gL/Af4B/wH8Av8B+wL/AfsC/wH8Av8B/gP/Af4B/wH9AfwB/QL8Av0C/wH9 + Af8B/gL/Av0B+wH3Ac4BxgHBAcIBuAGyAcEBswGtAbwBrwGpAccBvAG4AfwB9QHyAf8B/gL9AvsB/gL8 + Af8B/gL/Af0B/gH/Av0B7wLrAfEC7QH+AvwB/gH9AvwB/QH8Af0B/wL9Af8B/QH8Af8B/QT/Af4C/wH+ + Af8B/QL8AfsB/QH/AeoB8AH7AdAB2AH2Ab8ByAHqAccB0AHkAdYB3QHfAd4B4gHQAeMB5wHLAeMB6gHN + AeMB6gHOAeQB6gHRAeMB6AHRAeQB6wHUAeYB7AHXAeQB6QHXAeUB6QHZAfAB8wHoAfwB/wH2Av8B/AL/ + AfwC/wH9Av8B/gL/Af4C/wH+uv//AP8A/wD/AP8A/wAbAJH/Af4C/wH+Av8B/gH/Af0C/wH8Av8B/AL/ + Af0B/wH+B/8B/gH/Av0B/gH8Af4B/wH8Av0C/wH9Av8B/AH5AfIB8AH8AfQB8AHmAd4B2AHPAcgBwQHm + AeEB3QL/AvwB+wH6A/8B/QH8Af0B/AH7AfwB/wH+Av8C/QHtAusB7QHrAeoB/AH7AfoC/wH9Af4B/wH+ + AfwB/QL8Af0C/AH9BPwB/QL8Af0B+gH7AfkB9wH4Af0C/wH4AfwB/wHaAeMB+gHFAc8B6wHFAc8B5AHS + AdsB4QHeAeIB1QHjAeYBzgHkAekBzgHjAesBzwHkAesB0QHiAegB0QHlAesB1gHlAesB1wHjAecB1wHr + Ae4B4gH5AfsB8wL/AfsC/wH8Av8B/gT/Af4B/wH+Av8B/gL/Av4B/wH+A/8B/rL//wD/AP8A/wD/AP8A + GwCR/wH+Av8B/gL/Af4B/wH9Av8B/QL/Af0B/wH+Af0B/wH+Av8B/gb/Af4C/wH8Av4B/AL+AfsC/AL/ + Af0B/wH9AfwC/wH8Af4B+wH2AeIB3wHbAdABzgHLAfgB9wH2Av8B/gH5AvsB/QL/AfwC/QP/A/wB6wHq + AegB4wHhAeAB5gHlAeQB5QLkA+MB4AHhAuAB4gLgAeIB4AHiAuEB5QHjAeQB5wHkAuUB4wHkA/sB+QH8 + Af8B4wHrAf0BywHVAe0BxAHNAeMB0AHXAeIB3QHiAdgB4wHmAdAB4wHoAc4B5AHqAc4B4wHqAdAB5AHr + AdQB5AHqAdcB4wHmAdcB5QHpAd0B9AH2Ae4C/wH6Av8B/AL/Af0E/wH+Av8B/gH/Av4B/wL+Af8C/gH/ + Av4C/wH+sv//AP8A/wD/AP8A/wAbAJH/Af4C/wH+Av8B/gH/Af4C/wH+BP8B/QL/Af0C/wH9Av8B/gP9 + AfwD/QL/Af0C/wH9Av8B/gH/Af4B/wH9AfwB/wH9AfwC/wH8AvgB9QLQAc4B2wHcAdsB/AH9Af4B/QL/ + AfwD/QL/Af0C/gL/Af4C+QH3AvQB8wH2AfUB9AH2AvUD9wP4A/YC9wH2AfcC9gH4AvYB8wHxAfMB6AHm + AegB/gH8Af4B/AH9Af8B6gHxAf0B0QHcAe4BxAHOAeMBzAHVAeEB3QHiAdoB4wHlAdEB4wHnAc8B5AHp + Ac4B4wHpAdAB5AHqAdMB4QHmAdQB5AHnAdkB8QHzAeoB/AH9AfgB/gH/AfwC/QH8BP8B/gH/Av4B/wL+ + Af8C/gH/Av4B/wL+Af8C/gL/Af6y//8A/wD/AP8A/wD/ABsAkf8B/gL/Af4C/wH+Av8B/gP/Af4C/wH9 + Av8B/QL/Af0C/wH9Av8B/gH9Af8B/gH8Af0B/gH9Av8B+wH8Af0B/AL9BP8C/gL9AfwB/gH/Af0B+gH8 + AfsB2QLaAuUB5wL+Af8B/QH+Af8B/gT/Af4C/wH9Av8B/QL/Af0C/wH+Af8E/gH/Af4B/QL/Af4G/wH9 + Av8B/QH5AfcB+AHmAeQB5gH9AfoB/QL8Af8B7gH1Af0B2AHjAfABxQHQAeMBygHTAd8B2wHgAdoB4QHk + AdMB4wHmAc8B5AHnAc4B4wHpAdAB4gHoAdIB4wHnAdcB7QHwAeUB/AH9AfcC/wL8Af0B/Af/Af4B/wH+ + Av8B/gL/Av4B/wL+Af8B/gL/Af62//8A/wD/AP8A/wD/ABsAkf8B/gL/Af4C/wH+Av8B/gP/Af4C/wH9 + Av8B/AL/AfwC/wH9Av8B/gH9Av8B/QL/Af0C/wH9Av8B/QL/Af0B/gH/Af4C/wH8Av0D/gH/Af4B/wH4 + AfYB+AHsAesB7AHvAe0B7gH/Af4B/wH+AfwC/QL8Av0B/AL/Af0C/wH9Av8B/gT/Af4C/wH+Av8B/QL/ + Af4C/wH9AfwC/wH8AfkB9wH4AeQB4gHlAf4B+gH/Af0B/AH/AfMB+QH+Ad8B6gHyAcgB0wHkAcgB0QHf + AdgB3gHZAeEB5AHSAeQB5gHQAeQB5wHPAeMB6AHQAeUB6wHXAe8B8wHkAfkB/AHzAv8B/AP/Av0B/gH/ + Af4H/wH+Av8B/gL/Af0C/wH9Av8B/QH/Av4B/wH+tP//AP8A/wD/AP8A/wAbAJH/Af4C/wH+Av8B/gL/ + Af4D/wH+Av8B/QL/Af0C/wH9Av8B/QL/Af4B/QL+Af0C/wH8Af0B/gH8Af0B/wH9Av8B/QH+Af8B/AL9 + Af4C/wH+Af0D/gL/Af0B/gH/Af4B/wH5AfcB+QH9AvwB/wH+A/8B/gH/Af4B/QL/AfwC/wH9Af8B/gT9 + Af8B/QH+Af8B/gL/Af0C/wH+Af8B/gH9AfwC/wL8AvoB5QHiAeQB/wH7Av8B/AH/AfgB/AH/AeYB7gH2 + AcsB1QHmAcgB0AHeAdcB3gHZAd4B4wHTAeQB5QHRAeQB5gHQAeIB5gHTAe0B8QHjAfwB/wH0Av8B+wL9 + AfwB/wH+Av8B/gH/A/wF/wL+Af8C/gH/Av4C/wH9Av8B/gH/Av4B/wH+tP//AP8A/wD/AP8A/wAbAJT/ + Af4C/wH+Cf8B/gL/Af4C/wH+Av8B/gb/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/ + Af4K/wH+Av8C/gH9AfwC/gH8Av4B/AH+Af0B/AH/Af4B/QL/Af0C/wH9A/8C/gH/Av0B/wH+Af8B/QL/ + AfwB+wH3AfYB7wHpAegB/AL0Af8C/gH6AfwB/QHsAfIB+QHQAdcB6QHHAdEB3gHUAd4B2QHXAd8B0QHe + AeEB0AHoAeoB2gH5AfsB8gH7AfwB9wL/AfwC/wH9Av8G/hP/Af68//8A/wD/AP8A/wD/ABsAw/8B/gH/ + Af4B/QH/Af4B/QH/Af4B/QH/Av4B/wL+Af8B/gL/Af0C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Av0B/AH7 + Af8B/gH9Av8B/gH/Af4C/wH+Af8C/QH8AeoB6AHlAd0B1gHTAdcBzgHKAeEB1wHTAegB4QHfAf4C/wHz + AfcB/wHVAdsB7gHHAc8B4AHTAt0B3gHmAd4B7gHxAeYC/AH0AvwB+QP8Cf8G/s///wD/AP8A/wD/AP8A + GwDD/wH+Af8C/gH/Av4B/wL+Af8C/gH/Av4B/wH+Av8B/gL/Av4B/wH+A/0B/gL9A/wC9gH1Ae8C7gHw + Au8B9gL0Af0C+wH/AfwB+wH9AfoB9wHXAdEBzwG9AbEBrgG5AasBqAG8Aa8BqQHGAbwBuQH/Af4B/wH2 + AfkB/wHXAdwB9AHLAdAB6AHeAeQB7QHxAfUB9gH+Af0B+wL/AfwC/wH9A/8S/sz//wD/AP8A/wD/AP8A + GwDF/wL+Af8B/gL/Av4B/wH+Av8B/gL/Af4C/wH+Av8C/gH/BP4E/wH+Af8D/APxAegB5wHoAeUC5AHg + AtwB3wHbAdoB5QHgAd4BygHBAb8BvAGuAaoBwgGzAa4BwQGxAasByQHAAboB/wH9Af8B9wH5Af8B2wHe + AfkB0QHWAfAB6AHsAfoB+wH9Av8B/gL/Af0B/Ab/Cf4G/wP+zP//AP8A/wD/AP8A/wAbAMX/Af4C/wH9 + Av8B/gL/Af4C/wH+Av8B/gn/Av4B/wX8A/0B/gL9Af8C/QH/Af4B/AH+Af8B+wH8Af8B+QH6Af4C9wHX + Ac4BzQG8Aa0BqwG/Aa4BqQG7Aa0BqAHHAb4BtwH/Av0B9wH7Af8B3QHhAfoB0wHYAfEB6AHtAfoB+QH8 + Bf8B/gH8Av8B/gP/Bv4J/wP+zP//AP8A/wD/AP8A/wAbAML/Af4C/wH+Av8B/QL/Af4C/wH+Av8B/gL/ + Af4E/wH+Af8B/QH8Af0B/wH+Af8C/gH/Av4B/wL+Af8B/gH9Af8B/gH9Av8B/QL/Af0C/wH+Av8C/gHi + AdoB2QHIAbsBuQHLAb4BuQHLAcEBuAHUAc4ByAL+Af8B8wH4Af8B2AHeAfUB1AHaAfEB6wHxAf0B+QH9 + Af8B/QT/Af0B/wj+DP8D/sz//wD/AP8A/wD/AP8AGwDC/wH+Av8B/gL/Af0C/wH9Av8B/QL/Af4C/wH+ + BP8B/gL/Af4C/wH+Af8C/gH/Af0B/AH/AfkB+gH8AfgB+QH8AfsB/AH/Av4B/wH8AfoB+wL/Af0C/wH9 + Af8B/gH8Af8B/AH6Av8B/AL/AfoB/wH+AfwB+wH9Af8B6wHzAf8B0wHaAfAB1wHeAfQB8gH5Af8B+QH9 + Af8B/AH9Af8B/QH+Af0J/gz/A/7M//8A/wD/AP8A/wD/ABsAwv8B/gL/Af4C/wH9Av8B/QL/Af0C/wH+ + Av8B/gH/Af4C/wH+Av8B/gH/Af4B/QH/Av0B/wH+Af0B/wL6Af0C9gH5AvcB+wL8Af8C/gH/Af0C/wH6 + AvwB/QP/Af4C/wH8Av4B/AP9Af8B9QH6Af8B5wHvAf0B1AHdAfEB3QHlAfcB9QH7Af8B+QH9Af8B+QH7 + AfwB/gj/D/7P//8A/wD/AP8A/wD/ABsAwv8B/gL/Af4C/wH9Av8B/QL/Af0C/wH+Av8B/gH/Af4C/wH+ + Av8B/gL/Af4B/wH+Af0B/wH+Af0B/wL9Af8C+gH9AvMB9gLtAfEC+QH+AfoB/AH/AfkB/QH/AfgB/QH/ + AfkB/AH/AfgB+wH/AfkB/AH/AfgB/AH/Ae8B9QH/AdoB4QHzAdgB3wHyAesB8QH/AfcB/AH/AfoB/QH/ + Af3p//8A/wD/AP8A/wD/ABsAwv8B/gL/Af4C/wH9Av8B/QL/Af0C/wH+Av8B/gT/Af4B/wL9Af8B/QH8 + Af8C/QH/Af4B/QH/Af0B/gH/AvwB/wH4AfkB/AL1AfoB5wHoAe8B6gHrAfQB7QHzAfoB8wH6Af8B9gH8 + Af8B9gH7Af8B8QH2Af8B7AHxAf8B3AHiAfUB2QHfAfEB5QHrAfkB9wH8Af8B+wL/Af0B/wH9Av8B/QL/ + Af0C/wH+4f//AP8A/wD/AP8A/wAbAML/Af4C/wH+Av8B/QL/Af4C/wH+Av8B/gL/Af4E/wH+Af8C/QH+ + Av0B/gL9Af8C/QH/Av4B/wH+Af0B/wH+Af0B/wL8Af8B9AHzAfwB7QHuAfgB5AHqAfMB3wHnAfEB3wHl + AfQB3gHkAfQB3QHiAfEB2gHfAfAB3gHjAfYB5gHqAfoB9gH6Af8B+wL/Af4B/wH8Av8B+QL/AfoC/wH7 + Av8B/eH//wD/AP8A/wD/AP8AGwDF/wH+Av8B/QL/Af4C/wH+Av8B/gL/Af4K/wH+Av8B/gH/Av4C/wH+ + Af8C/gL/Af4B/wH+Af0B/wH9AfwB/wH6AfwB/wHxAfYB/QHqAfEB+gHlAewB+AHkAesB9wHnAewB+AHo + AewB+gHxAfQB/wH3AfkB/wH7Af0B/wH+Af8B/QL8AfYC/wH4Av8B+gL/AfsC/wH94f//AP8A/wD/AP8A + /wAbAMX/Av4B/wH+Av8C/gH/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gf/Af4C/wH+Af8C/gL/Af4C/wH+ + Af8C/AH9AfwB/gH/AfkC/wH3Av8B9wH+Af8B+AH9Af8B+QH9Af8B+gH9Af8B+gH8Af8B+wH8Af8B/QH+ + A/8B/AH/Af4B+wL/AfwC/wH8Af8B/gH8Av8B/uH//wD/AP8A/wD/AP8AGwDD/wH+Af8C/gH/Av4B/wL+ + Af8C/gH/Av4B/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gH/Av4B/wL+Av8B/gP9AfwB/gH9 + AfoB/wH9AfgB/gH9AfkB/AH+AfkC/QH8Af4B/QH8Af4B/wH6AfsB/wL8Af8B/QH+A/8B/QL/Af0B/wL+ + Af8B/uj//wD/AP8A/wD/AP8AGwDD/wH+Af8B/gH9Af8B/gH9Af8B/gH9Af8C/gH/Av4B/wH+Av8B/QL/ + Af0C/wH9Af4B/wH9Af8B/gH9Af8B/gH9Av8B/QL/Af0C/wH9Af8C/gH/Af4B/wH9Af4B/wH8Av8B/AL/ + Af0C/wH+Af8B/gL/AfwC/wH9AvwB/wL8Af8B/gT/Af4B/wH9Av8B/AH/Av0B/wH9Af4B/wH+4///AP8A + /wD/AP8A/wAbAMP/Af4B/wH+Af0B/wL+Af8C/gH/Av4B/wL+Af8B/gL/Af4C/wH9Av8B/gL/Af0B/wH+ + Af0C/gH8Av8B/QL/Af0C/wH9Af8B/gH9Af4B/QH+Av0B/wH8Af0B/wH9Af4G/wH9Av8B/AL/AfwC/QH/ + Av0B/wH+Bv8B/QL/Af0B/wH9Af4B/wH9Af4B/wH+4///AP8A/wD/AP8A/wAbAMb/Af4T/wH+Bf8B/gX/ + Af4C/wH+Av8B/gL/Af4H/wH+Af8B/gL/Af4H/wH+Av8B/QL/Af0B/wH+Af8C/gj/Af4C/wH+Af8B/gL/ + Af7m//8A/wD/AP8A/wD/ABsA/////wn//wD/AP8A/wD/AP8AGwD/////Cf//AP8A/wD/AP8A/wAbAP// + //8J//8A/wD/AP8A/wD/ABsA/////wn//wD/AP8A/wD/AP8AGwD/////Cf//AP8A/wD/AP8A/wAbAP// + //8J//8A/wD/AP8A/wD/ABsA/////wn//wD/AP8A/wD/AP8AGwD/////Cf//AP8A/wD/AP8A/wAbAP// + //8J//8A/wD/AP8A/wD/ABsA/////wn//wD/AP8A/wD/AP8AGwABQgFNAT4HAAE+AwABKAMAAbQBAgIA + AW4DAAEBAQABAQUAAdABJRYAA///AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A + /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/APYACw== + + + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/MainTab.Designer.cs b/Source/Plugins/Plugins.HydroModeler/MainTab.Designer.cs new file mode 100644 index 00000000..f92d1d70 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/MainTab.Designer.cs @@ -0,0 +1,21 @@ +namespace Plugins.HydroModeler +{ + partial class mainTab + { + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + //private void InitializeComponent() + //{ + // components = new System.ComponentModel.Container(); + // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + //} + + #endregion + //private System.Windows.Forms.VScrollBar compositionVScrollBar; + private System.Windows.Forms.MenuItem contextConfigurationAdd; + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/MainTab.cs b/Source/Plugins/Plugins.HydroModeler/MainTab.cs new file mode 100644 index 00000000..05389c1c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/MainTab.cs @@ -0,0 +1,4200 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Threading; +using System.Windows.Forms; +using System.Xml; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using HydroDesktop.Help; +using Oatc.OpenMI.Gui.Core; +using OpenMI.Standard; + +namespace Plugins.HydroModeler +{ + public partial class mainTab : UserControl + { + + #region Window controls + private System.Windows.Forms.PictureBox compositionBox; + private FileListView fileList; + private MyListView properties; + private System.Windows.Forms.Panel ListPanel; + private System.Windows.Forms.SplitContainer container; + private SplitContainer container2; + private SplitContainer comp_container; + private TextBox t; + private System.Windows.Forms.FolderBrowserDialog dirDialog; + private System.Windows.Forms.Button AddModelButton; + private ImageList _hmImage; + private Button changeDir; + private Button _Save; + private Label currentDir; + private Label emptylabel1; + private Label emptylabel2; + private TextBox tb_navigate; + private ToolStripMenuItem menuFileNew; + private ToolStripMenuItem menuFileOpen; + private ToolStripMenuItem menuFileSave; + private ToolStripMenuItem menuFileSaveAs; + private ToolStripMenuItem menuFileExit; + private ToolStripMenuItem menuEditModelAdd; + private ToolStripMenuItem menuEditTriggerAdd; + private ToolStripMenuItem menuHelpAbout; + private ToolStripMenuItem menuFileReload; + private ToolStripMenuItem menuViewModelProperties; + private ToolStripMenuItem menuEditConnectionProperties; + private ToolStripMenuItem menuEditConnectionAdd; + private ToolStripMenuItem menuFile; + private ToolStripMenuItem menuEditRunProperties; + private ToolStripMenuItem menuHelp; + private ContextMenu filelist_context; + private MenuItem add_model; + private MenuItem add_comp; + private MenuItem delete; + private System.Windows.Forms.ContextMenu contextMenu; + private System.Windows.Forms.MenuItem contextRun; + private System.Windows.Forms.MenuItem contextConnectionAdd; + private System.Windows.Forms.MenuItem contextModelProperties; + private System.Windows.Forms.MenuItem contextConnectionProperties; + private System.Windows.Forms.MenuItem contextModelRemove; + private System.Windows.Forms.MenuItem contextConnectionRemove; + private System.Windows.Forms.MenuItem contextModelAdd; + private System.Windows.Forms.ImageList imageList; + private string listviewImagesPath = Path.GetDirectoryName(Assembly.GetAssembly(typeof(Program)).CodeBase).Remove(0, 6) + "/icons"; + private bool _isdragging = false; + private int initialX, initialY, currentX, currentY; + //private List rps; + private Dictionary rps; + private string _currentFile = null; + #endregion + + #region Member variables + + // pre-created dialogs + bool _isMovingModel = false; + bool _isAddingConnection = false; + private bool ispan = false; + string _compositionFilename = null; + string image_path; + const string ApplicationTitle = "Configuration Editor"; + const string DefaultFilename = "NewComposition.opr"; + object _contextSelectedObject; + AboutBox _aboutBox; + CompositionManager _composition; + ConnectionDialog _connectionDialog; + Cursor _sourceCursor, _targetCursor, _panCursor; + private AppManager _mapArgs; + ModelDialog _modelDialog; + Point _prevMouse; + Point _compositionBoxPositionInArea; + Rectangle _compositionArea; + RunProperties _runProperties; + RunBox _runBox; + UIModel _sourceModel = null; + + + private System.Windows.Forms.MenuItem contextDivider; + private System.Windows.Forms.MenuItem contextAddTrigger; + private System.Windows.Forms.ToolStripMenuItem menuHelpContents; + + private System.Windows.Forms.ToolStripMenuItem menuOptions; + private System.Windows.Forms.ToolStripMenuItem menuRegisterExtensions; + private readonly string _localHelpUri = HydroModeler.Settings.Default.localHelpUri; + + // record the culture that the application starts in + System.Globalization.CultureInfo _cultureInfo = Application.CurrentCulture; + + private Dictionary openmiFiles = new Dictionary(); + private Dictionary Folders = new Dictionary(); + private ListViewItem _currentLvi = new ListViewItem(); + private ListViewItem _currentFileItem = new ListViewItem(); + private bool _hasChanged = false; + private string _oldText; + bool _allowEdit = true; + string opr_path; + + //Dictionary _modelOmi = new Dictionary(); + UIModel _selectedModel; + + #endregion + + /// + /// Creates a new instance of mainTab window. + /// + //public mainTab(AppManager app, List rp, string currentDirectory) + public mainTab(AppManager app, Dictionary rp, string currentDirectory) + { + //get ribbon panel object + rps = rp; + + //set mapwindow args + _mapArgs = app; + + _compositionBoxPositionInArea = new Point(0, 0); + + fileList = new FileListView(); + + //initialize the composition + _composition = new CompositionManager(); + InitializeComponentRibbon(); + + //define mouse variables + _prevMouse = new Point(0, 0); + + //set cursors from resources file + using (var memoryStream = new MemoryStream(HydroModeler.Properties.Resources.Source)) + { + _sourceCursor = new Cursor(memoryStream); + } + + using (var memoryStream = new MemoryStream(HydroModeler.Properties.Resources.Target)) + { + _targetCursor = new Cursor(memoryStream); + } + Image panBit = HydroModeler.Properties.Resources.pan1.GetThumbnailImage(32, 32, null, IntPtr.Zero); + Bitmap b = new Bitmap(panBit); + _panCursor = CreateCursor(b, 3, 3); + + // create dialogs + _modelDialog = new ModelDialog(); + _connectionDialog = new ConnectionDialog(); + _aboutBox = new AboutBox(); + _runProperties = new RunProperties(); + _runBox = new RunBox(this); + + //set current directory + _runBox._currentDirectory = currentDirectory; + } + + + #region Methods and properties + + /// + /// Sets the ispan field. This is used to determine if panning will be performed when the user clicks in the composition box. + /// + public bool Ispan + { + get { return ispan; } + set { ispan = value; } + } + + public string Image_Path + { + get { return image_path; } + set { image_path = value; } + } + + public string OPR_Path + { + get { return opr_path; } + set { opr_path = value; } + } + #region Icon Creation + public struct IconInfo + { + public bool fIcon; + public int xHotspot; + public int yHotspot; + public IntPtr hbmMask; + public IntPtr hbmColor; + } + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool GetIconInfo(IntPtr hIcon, ref IconInfo pIconInfo); + + [DllImport("user32.dll")] + public static extern IntPtr CreateIconIndirect(ref IconInfo icon); + + public Cursor CreateCursor(Bitmap bmp, int xHotSpot, int yHotSpot) + { + IntPtr ptr = bmp.GetHicon(); + IconInfo tmp = new IconInfo(); + GetIconInfo(ptr, ref tmp); + tmp.xHotspot = xHotSpot; + tmp.yHotspot = yHotSpot; + tmp.fIcon = false; + ptr = CreateIconIndirect(ref tmp); + return new Cursor(ptr); + } + #endregion + + /// + /// Method is used to start application. + /// + /// Command-line arguments. + /// Method proceeds all command-line args ("/opr %", "/reg", ...) + /// and perform requested actions. + private static void ProceedCommandLineArgs(string[] args) + { + // read commad-line args + string oprFilename = null; + string omiFilename = null; + bool mta = false; + + for (int i = 0; i < args.Length; i++) + switch (args[i].ToLower()) + { + case "/opr": + case "-opr": + if (oprFilename != null) + throw (new Exception("-opr can be used only once.")); + + if (omiFilename != null) + throw (new Exception("-opr cannot be used together with -omi option.")); + + if (args.Length <= i + 1) + throw (new Exception("-opr option must be followed by filename.")); + + oprFilename = args[i + 1]; + i++; + break; + + case "/omi": + case "-omi": + if (omiFilename != null) + throw (new Exception("-omi can be used only once.")); + + if (oprFilename != null) + throw (new Exception("-omi cannot be used together with -opr option.")); + + if (args.Length <= i + 1) + throw (new Exception("-omi option must be followed by filename.")); + + omiFilename = args[i + 1]; + i++; + break; + + case "/reg": + case "-reg": + Utils.RegisterFileExtensions(Application.ExecutablePath); + return; + + case "/unreg": + case "-unreg": + Utils.UnregisterFileExtensions(); + return; + + case "-mta": + case "/mta": + mta = true; + break; + + case "-help": + case "/help": + case "-?": + case "/?": + case "--help": + case "-h": + case "/h": + string help = + "OmiEd command-line options:\n\n" + + "Syntax: OmiEd.exe [-opr OPRFILE | -omi OMIFILE | -reg | -unreg | -help] [-mta]\n\n" + + "Options:\n" + + "-opr OPRFILE\tOpens OmiEd project from specific OPRFILE\n" + + "-omi OMIFILE\tCreates a new composition and adds model from OMIFILE into it.\n" + + "-reg\t\tRegisters OPR and OMI file extensions in Windows registry to be opened with this OmiEd executable.\n" + + "-unreg\t\tDiscards all OPR and OMI file extension registrations from Windows registry.\n" + + "-help\t\tShows this help.\n" + + "-mta\t\tApplication creates and enters a multi-threaded apartment COM model at start.\n"; + MessageBox.Show(help, "Help", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + + default: + throw (new Exception("Unknown command-line option: " + args[i])); + } + + // do actions... + + // VS2005 fix + // In VS2005 the main thread uses MTA by default, so we have to create new thread, + // which will run the message loop, and set it's appartment state before it's started + + Thread thread = new Thread(new ParameterizedThreadStart(StartApplication)); + thread.IsBackground = false; + + if (mta) + { + thread.SetApartmentState(ApartmentState.MTA); + + // NOTE: when using MTA, the OpenFileDialog (and maybe other things) + // throws ThreadStateException ("Current thread must be set to single thread + // apartment (STA) mode before OLE calls can be made. Ensure that your Main + // function has STAThreadAttribute marked on it. This exception is only raised + // if a debugger is attached to the process.") + // + // MTA is used only if really needed (we provide it as feature), + // thus this statement is perfectly correct + Control.CheckForIllegalCrossThreadCalls = false; + } + else + { + thread.SetApartmentState(ApartmentState.STA); + } + + thread.Start(new string[] { oprFilename, omiFilename }); + } + + private static void StartApplication(object data) + { + try + { + string oprFilename = ((string[])data)[0]; + string omiFilename = ((string[])data)[1]; + + if (oprFilename != null) + { + // Open OPR project from file + FileInfo fileInfo = new FileInfo(oprFilename); + + //this.OpenOprFile(fileInfo.FullName); + + //Application.Run( mainTab ); + } + else if (omiFilename != null) + { + FileInfo fileInfo = new FileInfo(omiFilename); + + //AddModel(fileInfo.FullName); + + //Application.Run( mainTab ); + } + //else + //Application.Run( new mainTab() ); + } + catch (Exception e) + { + MessageBox.Show(e.ToString(), "Exception occured", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + /// + /// Opens composition from OPR file. + /// + /// Full path to OPR file. + private void OpenOprFile(string fullPath) + { + try + { + _compositionFilename = null; + _composition.Release(); + _composition.LoadFromFile(fullPath); + _compositionFilename = fullPath; + } + catch (Exception ex) + { + MessageBox.Show("Unable to load file.", "Error occured while loading the file...", MessageBoxButtons.OK, MessageBoxIcon.Error); + _composition.Release(); + } + + UpdateControls(); + UpdateTitle(); + + CompositionUpdateArea(); + CompositionCenterView(); + } + + + + /// + /// Adds one model to composition. + /// + /// Full path to OMI file. + private void AddModel(string fullPath) + { + try + { + //-- add model to composition + _composition.AddModel(null, fullPath); + + //-- save model and omi + //SaveModelOMI(fullPath); + } + catch (Exception ex) + { + MessageBox.Show( + + "Unable to load model.", + "Failed to load model...", + MessageBoxButtons.OK, + MessageBoxIcon.Warning); + } + + // Reset the culture every time a new model is added. + // The new model may be of a different culture, we want to retain the original culture of the application, + // which will be that of the User's computer. + Application.CurrentCulture = _cultureInfo; + + CompositionUpdateArea(); + UpdateControls(); + UpdateTitle(); + Invalidate(); + } + + + /// + /// Method calculates size of composition area and it's scroll-bars according to + /// position of models' rectangles and size of the window. + /// + /// + /// This method is called if some model has moved, main window has resized or if new file was opened. + /// + public void CompositionUpdateArea() + { + Point topLeft = new Point(0, 0), + bottomRight = new Point(0, 0); + + int minx = 999; + int miny = 999; + int maxx = 0; + int maxy = 0; + foreach (UIModel model in _composition.Models) + { + topLeft.X = Math.Min(topLeft.X, model.Rect.X); + if (topLeft.X < minx) + minx = topLeft.X; + + topLeft.Y = Math.Min(topLeft.Y, model.Rect.Y); + if (topLeft.Y < miny) + miny = topLeft.Y; + + bottomRight.X = Math.Max(bottomRight.X, model.Rect.X + model.Rect.Width); + if (bottomRight.X > maxx) + maxx = bottomRight.X; + + bottomRight.Y = Math.Max(bottomRight.Y, model.Rect.Y + model.Rect.Height); + if (bottomRight.Y > maxy) + maxy = bottomRight.Y; + } + + //get the container's rectangle + Rectangle extents = new Rectangle(new Point(0,0),container.Panel2.ClientSize); + + //get the rectangle needed to show the model composition + if (minx < extents.X) + extents.X = minx; + if (miny < extents.Y) + extents.Y = miny; + if (maxx > extents.Right) + extents.Width = maxx + 10 - extents.X; + if (maxy > extents.Bottom) + extents.Height = maxy + 10 - extents.Y; + + //set the composition area + _compositionArea = extents; + + //resize the compositionBox + this.compositionBox.Size = new System.Drawing.Size(extents.Width, extents.Height); + + compositionBox.Invalidate(); + } + + //TODO: Remove this method because its out-of-date + public void CompositionUpdateArea(int x, int y) + { + //get the top left corner of panel2 in screen coordinates + Point p = this.container.Panel2.PointToScreen(new Point(0, 0)); + + Point TopLeft = new Point(x - p.X, y - p.Y), + bottomRight = new Point(0, 0); + + Point topLeft = CompositionAreaPointToWindowPoint(TopLeft); + + //Point topLeft = new Point(x-left, y-top), + // bottomRight = new Point(0, 0); + + //get the last entered model + UIModel model = (UIModel)_composition.Models[_composition.Models.Count - 1]; + + //set its draw properties + bottomRight.X = topLeft.X + model.Rect.Width; + bottomRight.Y = topLeft.Y + model.Rect.Height; + model.Rect = new Rectangle(topLeft.X, topLeft.Y, model.Rect.Width, model.Rect.Height); + + Rectangle extents = container.Panel2.DisplayRectangle; + + + + _compositionArea = extents; + _compositionArea = new Rectangle(topLeft.X, topLeft.Y, bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y); + + compositionBox.Invalidate(); + } + /// + /// Sets composition box to center. + /// + private void CompositionCenterView() + { + // todo... + } + + private Point CompositionWindowPointToAreaPoint(Point point) + { + return (new Point(_compositionBoxPositionInArea.X + point.X, _compositionBoxPositionInArea.Y + point.Y)); + } + + private Point CompositionAreaPointToWindowPoint(Point point) + { + return (new Point(point.X - _compositionBoxPositionInArea.X, point.Y - _compositionBoxPositionInArea.Y)); + } + + + private void UpdateTitle() + { + this.Text = ApplicationTitle + (_composition.ShouldBeSaved ? " *" : ""); + } + + + private void UpdateControls() + { + contextConnectionAdd.Enabled = menuEditConnectionAdd.Enabled = _composition.Models.Count > 1; + + //_composition.Models.Count > 1; + bool hasTrigger = _composition.HasTrigger(); + + contextAddTrigger.Enabled = menuEditTriggerAdd.Enabled = !hasTrigger; + + contextRun.Enabled = menuEditRunProperties.Enabled = hasTrigger && (_composition.Models.Count - _composition.Connections.Count <= 1) && (_composition.Models.Count > 1); + + //enable or disable the Run ribbon button + //enableRun = contextRun.Enabled; + + //enable or disable the Connection ribbon button + //enableConn = contextConnectionAdd.Enabled; + } + + + /// + /// If composition should be saved, this method shows message box, where the user can do it, can + /// ignore it or can cancel current operation. + /// + /// Returns true if current operation can continue, or false + /// if user pressed cancel button. + private bool CheckIfSaved() + { + if (_composition.ShouldBeSaved) + { + switch (MessageBox.Show("The composition has been changed.\n\nDo you want to save the changes?", "Warning", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)) + { + case DialogResult.Yes: + menuFileSave_Click(null, null); + return (!_composition.ShouldBeSaved); + case DialogResult.No: + return (true); + default: + return (false); + } + } + return (true); + } + + + private void ShowLinkDialog(UIConnection link) + { + // find maximum link ID of all existing links + int maxID = 0; + foreach (UIConnection uiLink in _composition.Connections) + foreach (ILink iLink in uiLink.Links) + maxID = Math.Max(int.Parse(iLink.ID), maxID); + + _connectionDialog.PopulateDialog(link, maxID + 1); + if (_connectionDialog.ShowDialog(this) == DialogResult.OK) + _composition.ShouldBeSaved = true; + + UpdateTitle(); + } + + + private UIModel GetModel(int x, int y) + { + Point areaPoint = CompositionWindowPointToAreaPoint(new Point(x, y)); + + // search from last model to first for case some models are overlapping + for (int i = _composition.Models.Count - 1; i >= 0; i--) + { + UIModel model = (UIModel)_composition.Models[i]; + + if (model.IsPointInside(areaPoint)) + return (model); + } + + return (null); + } + + + private UIConnection GetConnection(int x, int y) + { + Point areaPoint = CompositionWindowPointToAreaPoint(new Point(x, y)); + + for (int i = _composition.Connections.Count - 1; i >= 0; i--) + { + UIConnection connection = (UIConnection)_composition.Connections[i]; + + if (connection.IsOnConnectionLine(areaPoint)) + return (connection); + } + + return (null); + } + + + private void StopAddingConnection() + { + _isAddingConnection = false; + //compositionBox.Cursor = Cursors.Default; + _sourceModel = null; + } + + private void StopMovingModel() + { + _isMovingModel = false; + foreach (UIModel model in _composition.Models) + model.IsMoving = false; + compositionBox.Invalidate(); + } + + + private void StopAllActions() + { + StopAddingConnection(); + StopMovingModel(); + } + + + #endregion + + #region mainTab event handlers + + private void mainTab_Load(object sender, System.EventArgs e) + { + mainTab_SizeChanged(sender, e); + UpdateTitle(); + UpdateControls(); + CompositionUpdateArea(); + + //load the file list too + LoadFileList(); + + } + private void LoadFileList() + { + int height = compositionBox.Height; + int width = 100; + fileList.Invalidate(new Rectangle(0,0,width,height)); + + } + + private void mainTab_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) + { + MessageBox.Show("form1, dragDrop"); + + } + + + private void mainTab_SizeChanged(object sender, System.EventArgs e) + { + // resize all elements so they fit to window + //const int border = 5; + //const int scrollBarWidth = 16; + CompositionUpdateArea(); + } + + + private void mainTab_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // if composition isn't saved, show message box, and maybe stop the closing + e.Cancel = !CheckIfSaved(); + + if (!e.Cancel) + { + _composition.Release(); + } + } + + + public void mainTab_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) + { + // ESC cancels adding connection + if (_isAddingConnection && e.KeyChar == 27) + { + StopAddingConnection(); + e.Handled = true; + Invalidate(); + } + else if (e.KeyChar == (char)System.Windows.Forms.Keys.LButton) + { + e.Handled = true; + Invalidate(); + } + } + + + #endregion + + #region Main menu event handlers + + public void menuEditModelAdd_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + OpenFileDialog dlgFile = new OpenFileDialog(); + dlgFile.CheckFileExists = true; + dlgFile.CheckPathExists = true; + dlgFile.Title = "Add model..."; + dlgFile.Filter = "OpenMI models (*.omi)|*.omi|All files|*.*"; + dlgFile.Multiselect = false; + + if (dlgFile.ShowDialog(this) == DialogResult.OK) + AddModel(dlgFile.FileName); + + dlgFile.Dispose(); + } + + + public void menuEditTriggerAdd_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + try + { + _composition.AddModel(null, CompositionManager.TriggerModelID); + } + catch (Exception ex) + { + MessageBox.Show( + "Exception: " + ex.ToString(), + "Error occured while adding the trigger...", + MessageBoxButtons.OK, + MessageBoxIcon.Error); + } + + UpdateControls(); + UpdateTitle(); + CompositionUpdateArea(); + } + + + public void menuDeployRun_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + + + + _runProperties.PopulateDialog(_composition, _compositionFilename == null); + DialogResult result = _runProperties.ShowDialog(this); + + UpdateTitle(); + + if (result == DialogResult.OK) + { + // user decided to run the composition + + // ### prepare listeners + ArrayList listOfListeners = new ArrayList(); + + // progress bar + ProgressBarListener progressBarListener = new ProgressBarListener(_composition.GetSimulationTimehorizon(), _runBox.ProgressBarRun); + listOfListeners.Add(progressBarListener); + + // log file + if (!string.IsNullOrEmpty(_composition.LogToFile)) + { + // get composition file's directory to logfile is saved in same directory + string logFileName; + if (_compositionFilename != null) + { + FileInfo compositionFileInfo = new FileInfo(_compositionFilename); + FileInfo logFileInfo = Utils.GetFileInfo(compositionFileInfo.DirectoryName, _composition.LogToFile); + logFileName = logFileInfo.FullName; + } + else + logFileName = _composition.LogToFile; + + LogFileListener logFileListener = new LogFileListener(_composition.ListenedEventTypes, logFileName); + listOfListeners.Add(logFileListener); + } + + // list box + if (_composition.ShowEventsInListbox) + { + ListViewListener listViewListener = new ListViewListener(_composition.ListenedEventTypes, _runBox.ListViewEvents, 400); + listOfListeners.Add(listViewListener); + } + + const uint actionInterval = 200; // in milliseconds + + // ### create proxy listener and register other listeners to it + IListener proxyListener; + if (_composition.RunInSameThread) + { + // DoEvents listener + DoEventsListener doEventsListener = new DoEventsListener(actionInterval); + listOfListeners.Add(doEventsListener); + + ProxyListener proxySingleThreadListener = new ProxyListener(); + proxySingleThreadListener.Initialize(listOfListeners); + proxyListener = proxySingleThreadListener; + } + else + { + ProxyMultiThreadListener proxyMultiThreadListener = new ProxyMultiThreadListener(); + proxyMultiThreadListener.Initialize(listOfListeners, _runBox.Timer, (int)actionInterval); + proxyListener = proxyMultiThreadListener; + } + + // ### populate and show run-dialog and run simulation from it + Invalidate(); + _runBox.PopuplateDialog(_composition, proxyListener); + _runBox.ShowDialog(this); // this fires simulation + + + } + } + + + public void menuFileNew_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + if (!CheckIfSaved()) + return; + + _composition.Release(); + + _compositionFilename = null; + UpdateControls(); + UpdateTitle(); + CompositionUpdateArea(); + } + + + public void menuFileOpen_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + if (!CheckIfSaved()) + return; + + OpenFileDialog dlgFile = new OpenFileDialog(); + dlgFile.Filter = "OmiEd projects (*.opr)|*.opr|All files|*.*"; + dlgFile.Multiselect = false; + dlgFile.CheckFileExists = true; + dlgFile.CheckPathExists = true; + dlgFile.Title = "Open project..."; + + if (dlgFile.ShowDialog(this) == DialogResult.OK) + OpenOprFile(dlgFile.FileName); + + dlgFile.Dispose(); + + } + + + public void menuFileSave_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + string filename; + + if (_compositionFilename == null) + { + SaveFileDialog dlgFile = new SaveFileDialog(); + dlgFile.Filter = "OmiEd projects (*.opr)|*.opr|All files|*.*"; + dlgFile.ValidateNames = true; + dlgFile.FileName = DefaultFilename; + dlgFile.Title = "Save project..."; + dlgFile.AddExtension = true; + dlgFile.OverwritePrompt = true; + + if (dlgFile.ShowDialog(this) != DialogResult.OK) + { + dlgFile.Dispose(); + return; + } + + filename = dlgFile.FileName; + + dlgFile.Dispose(); + } + else + filename = _compositionFilename; + + try + { + _composition.SaveToFile(filename); + _compositionFilename = filename; + + //HACK: + //make sure that the trigger does not contain any extra characters + StreamReader sr = new StreamReader(filename); + string contents = sr.ReadToEnd(); + sr.Close(); + + if (contents.Contains("Oatc.OpenMI.Gui.Trigger")) + { + int end = contents.IndexOf("Oatc.OpenMI.Gui.Trigger"); + int index = end-1; + int count = 0; + while (contents[index] != '\"') + { + count++; + index--; + } + + contents = contents.Remove(end - count, count); + } + + StreamWriter sw = new StreamWriter(filename); + sw.Write(contents); + sw.Close(); + } + catch (System.Exception ex) + { + MessageBox.Show("Composition cannot be saved, make sure the file is not write-protected. Details: " + ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + //refresh filelist + //this.filelist_update(((RibbonTextBox)((RibbonItemGroup)rps[2].Items[0]).Items[0]).TextBoxText); + this.filelist_update(((TextEntryActionItem)rps["dirbox"]).Text); + } + + + public void menuFileSaveAs_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + SaveFileDialog dlgFile = new SaveFileDialog(); + dlgFile.Filter = "OmiEd projects (*.opr)|*.opr|All files|*.*"; + dlgFile.ValidateNames = true; + dlgFile.Title = "Save project As..."; + dlgFile.AddExtension = true; + dlgFile.OverwritePrompt = true; + + if (_compositionFilename != null) + dlgFile.FileName = _compositionFilename; + else + dlgFile.FileName = DefaultFilename; + + if (dlgFile.ShowDialog(this) != DialogResult.OK) + { + dlgFile.Dispose(); + return; + } + + try + { + _composition.SaveToFile(dlgFile.FileName); + _compositionFilename = dlgFile.FileName; + + //HACK: + //make sure that the trigger does not contain any extra characters + string filename = dlgFile.FileName; + StreamReader sr = new StreamReader(filename); + string contents = sr.ReadToEnd(); + sr.Close(); + + if (contents.Contains("Oatc.OpenMI.Gui.Trigger")) + { + int end = contents.IndexOf("Oatc.OpenMI.Gui.Trigger"); + int index = end - 1; + int count = 0; + while (contents[index] != '\"') + { + count++; + index--; + } + + contents = contents.Remove(end - count, count); + } + + StreamWriter sw = new StreamWriter(filename); + sw.Write(contents); + sw.Close(); + } + catch (System.Exception ex) + { + MessageBox.Show("Composition cannot be saved, make sure the file is not write-protected. Details: " + ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + dlgFile.Dispose(); + + //refresh filelist + //this.filelist_update(((RibbonTextBox)((RibbonItemGroup)rps[2].Items[0]).Items[0]).TextBoxText); + this.filelist_update(((TextEntryActionItem)rps["dirbox"]).Text); + UpdateTitle(); + } + + + public void menuFileReload_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + _composition.Reload(); + + } + + + private void menuFileExit_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + //Close(); + } + + + public void menuEditConnectionAdd_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + //if pan is currently selected, disable it + this.Ispan = false; + //RibbonButton s = ((RibbonButton)rps[3].Items[0]); + SimpleActionItem s = (SimpleActionItem)rps["connection"]; + + //s.Checked = false; + + + _isAddingConnection = true; + compositionBox.Cursor = _sourceCursor; + Cursor.Current = _sourceCursor; + + } + + + private void menuViewModelProperties_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + _modelDialog.PopulateDialog(_composition.Models); + _modelDialog.ShowDialog(this); + } + + + private void menuRegisterExtensions_Click(object sender, System.EventArgs e) + { + if (menuRegisterExtensions.Checked) + { + Utils.UnregisterFileExtensions(); + menuRegisterExtensions.Checked = false; + } + else + { + Utils.RegisterFileExtensions(Application.ExecutablePath); + menuRegisterExtensions.Checked = true; + } + } + + + private void menuHelpAbout_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + _aboutBox.ShowDialog(this); + } + + + private void menuHelpContents_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + FileInfo fileInfo = new FileInfo(Application.StartupPath + "\\Help.html"); + + if (!fileInfo.Exists) + fileInfo = new FileInfo(Application.StartupPath + "\\HelpPage.htm"); + + // trick to open file in project directory (exe is in "projdir\bin\debug") + // if not found in startup directory + if (!fileInfo.Exists) + fileInfo = new FileInfo(Application.StartupPath + "\\..\\..\\HelpPage.htm"); + + if (fileInfo.Exists) + { + ProcessStartInfo info = new ProcessStartInfo(fileInfo.FullName); + Process.Start(info); + } + } + + + #endregion + + #region Context menu event handlers + + private void contextMenu_Popup(object sender, System.EventArgs e) + { + StopAllActions(); + + contextConnectionRemove.Visible = true; + contextConnectionProperties.Visible = true; + contextModelProperties.Visible = true; + contextModelRemove.Visible = true; + contextAddTrigger.Visible = true; + contextRun.Visible = true; + contextConnectionAdd.Visible = true; + + + if (_contextSelectedObject == null) + { + contextDivider.Visible = false; + contextConnectionRemove.Visible = false; + contextConnectionProperties.Visible = false; + contextModelProperties.Visible = false; + contextModelRemove.Visible = false; + } + else if (_contextSelectedObject is UIConnection) + { + contextDivider.Visible = true; + contextConnectionRemove.Visible = true; + contextConnectionProperties.Visible = true; + contextModelProperties.Visible = false; + contextModelRemove.Visible = false; + } + else if (_contextSelectedObject is UIModel) + { + contextDivider.Visible = true; + contextConnectionRemove.Visible = false; + contextConnectionProperties.Visible = false; + contextModelProperties.Visible = true; + contextModelRemove.Visible = true; + } + else + Debug.Assert(false); + + // Make disabled items invisible + if (!contextConnectionRemove.Enabled) + contextConnectionRemove.Visible = false; + if (!contextConnectionProperties.Enabled) + contextConnectionProperties.Visible = false; + if (!contextModelProperties.Enabled) + contextModelProperties.Visible = false; + if (!contextModelRemove.Enabled) + contextModelRemove.Visible = false; + if (!contextAddTrigger.Enabled) + contextAddTrigger.Visible = false; + if (!contextRun.Enabled) + contextRun.Visible = false; + if (!contextConnectionAdd.Enabled) + contextConnectionAdd.Visible = false; + } + + + private void contextConnectionAdd_Click(object sender, System.EventArgs e) + { + menuEditConnectionAdd_Click(sender, e); + CompositionUpdateArea(); + //UpdateControls(); + UpdateTitle(); + } + + private void contextConnectionRemove_Click(object sender, System.EventArgs e) + { + _composition.RemoveConnection((UIConnection)_contextSelectedObject); + CompositionUpdateArea(); + UpdateControls(); + UpdateTitle(); + + } + + private void contextConnectionProperties_Click(object sender, System.EventArgs e) + { + ShowLinkDialog((UIConnection)_contextSelectedObject); + UpdateTitle(); + } + + private void contextModelAdd_Click(object sender, System.EventArgs e) + { + menuEditModelAdd_Click(sender, e); + } + + + + private void contextModelRemove_Click(object sender, System.EventArgs e) + { + //-- remove model + _composition.RemoveModel((UIModel)_contextSelectedObject); + + //-- remove saved omi + //this.RemoveModelOMI((UIModel)_contextSelectedObject); + + + //--- update ribbon controls --- + //disable "add connection" + if (_composition.Models.Count - 1 <= _composition.Connections.Count) + //((RibbonButton)rps[1].Items[2]).Enabled = false; + ((SimpleActionItem)rps["connection"]).Enabled = false; + //disable "run" + if (!_composition.HasTrigger()) + //((RibbonButton)rps[1].Items[3]).Enabled = false; + ((SimpleActionItem)rps["run"]).Enabled = false; + + CompositionUpdateArea(); + UpdateControls(); + UpdateTitle(); + } + + private void contextModelProperties_Click(object sender, System.EventArgs e) + { + _modelDialog.PopulateDialog(_composition.Models, ((UIModel)_contextSelectedObject).ModelID); + _modelDialog.ShowDialog(this); + } + + private void contextRun_Click(object sender, System.EventArgs e) + { + menuDeployRun_Click(sender, e); + } + + + private void contextAddTrigger_Click(object sender, System.EventArgs e) + { + menuEditTriggerAdd_Click(sender, e); + + //enable run button + if (_composition.Models.Count - _composition.Connections.Count <= 1) + if (_composition.HasTrigger()) + //((RibbonButton)rps[1].Items[3]).Enabled = true; + ((SimpleActionItem)rps["run"]).Enabled = true; + + } + + + #endregion + + + + #region Composition box event handlers + + private void compositionScrollBar_ValueChanged(object sender, System.EventArgs e) + { + compositionBox.Invalidate(); + } + + public void compositionBox_Paint(object sender, System.Windows.Forms.PaintEventArgs e) + { + + // draw OpenMI logo + //e.Graphics.DrawImage(_HMimage, 30, 30); + List points = new List(); + //draw links + foreach (UIConnection link in _composition.Connections) + { + try + { + //link.Draw(_compositionBoxPositionInArea, e.Graphics, DotSpatial.Tools.ModelShapes.Arrow); + Point[] p = link.Draw(_compositionBoxPositionInArea, e.Graphics); + + + //save triangle points if length is > 0 + if (p.Length > 0) + points.Add(p); + + } + catch (OutOfMemoryException) { } + + } + //fill in arrows + foreach (UIConnection link in _composition.Connections) + { + //link.Draw(_compositionBoxPositionInArea, e.Graphics, DotSpatial.Tools.ModelShapes.Arrow); + link.FillArrows(points, e.Graphics); + } + + + + + + + foreach (UIModel model in _composition.Models) + { + //model.Draw(_compositionBoxPositionInArea, e.Graphics); + model.Draw(_compositionBoxPositionInArea, e.Graphics, model.Shape); + } + + + //enable / disable "trigger" + if (!_composition.HasTrigger()) + //((RibbonButton)rps[1].Items[1]).Enabled = true; + ((SimpleActionItem)rps["trigger"]).Enabled = true; + else + //((RibbonButton)rps[1].Items[1]).Enabled = false; + ((SimpleActionItem)rps["trigger"]).Enabled = false; + + //enable / disable "add connection" + if (_composition.Models.Count >= 2) + //((RibbonButton)rps[1].Items[2]).Enabled = true; + ((SimpleActionItem)rps["connection"]).Enabled = true; + else + //((RibbonButton)rps[1].Items[2]).Enabled = false; + ((SimpleActionItem)rps["connection"]).Enabled = false; + + //enable / disable "run" + + if (_composition.Models.Count - _composition.Connections.Count <= 1) + { + if (_composition.HasTrigger()) + //((RibbonButton)rps[1].Items[3]).Enabled = true; + ((SimpleActionItem)rps["run"]).Enabled = true; + } + else + { + //((RibbonButton)rps[1].Items[3]).Enabled = false; + ((SimpleActionItem)rps["run"]).Enabled = false; + } + + + + // Draw link currently being added (if any) + //if( _isAddingLink && _leftMouseButtonIsDown ) + // UIConnection.DrawLink( (float)_prevMouse.X, (float)_prevMouse.Y, (float)_currentMouse.X, (float)_currentMouse.Y, _compositionBoxPositionInArea, e.Graphics); + } + + //TODO: zoom in/out with mouse wheel + private void compositionBox_mousewheel(object sender, System.Windows.Forms.MouseEventArgs e) + { + + //int newWidth = compositionBox.Width, newHeight = compositionBox.Height, newX = compositionBox.Location.X, newY = compositionBox.Location.Y; + + //if (e.Delta > 0) + //{ + // newWidth = compositionBox.Size.Width + (compositionBox.Size.Width / 10); + // newHeight = compositionBox.Size.Height + (compositionBox.Size.Height / 10); + // newX = compositionBox.Location.X - ((compositionBox.Size.Width / 10) / 2); + // newY = compositionBox.Location.Y - ((compositionBox.Size.Height / 10) / 2); + //} + + //else if (e.Delta < 0) + //{ + // newWidth = compositionBox.Size.Width - (compositionBox.Size.Width / 10); + // newHeight = compositionBox.Size.Height - (compositionBox.Size.Height / 10); + // newX = compositionBox.Location.X + ((compositionBox.Size.Width / 10) / 2); + // newY = compositionBox.Location.Y + ((compositionBox.Size.Height / 10) / 2); + + // // Prevent image from zooming out beyond original size + // if (newWidth < compositionBox.Width) + // { + // newWidth = compositionBox.Width; + // newHeight = compositionBox.Height; + // newX = 0; + // newY = 0; + // } + //} + //compositionBox.Size = new Size(newWidth, newHeight); + //compositionBox.Location = new Point(newX, newY); + } + + private void compositionBox_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) + { + StopMovingModel(); + compositionBox.Invalidate(); + + bool actionFoundOut = false; + + // Left mouse button + if (e.Button == MouseButtons.Left) + { + //-- clear listview + this.properties.Items.Clear(); + + //-- change selected model back to default color + if (_selectedModel != null) + for(int i=0; i<=_composition.Models.Count-1;i++) + if( ((UIModel)_composition.Models[i]) == _selectedModel) + { + ((UIModel)_composition.Models[i]).Color = System.Drawing.Color.LightGreen; + _selectedModel = null; + _currentFile = null; + _allowEdit = false; + } + + + + + // if adding a connection + if (_isAddingConnection) + { + UIModel model = GetModel(e.X, e.Y); + + // if some model selected + if (model != null) + { + // if source model selected + if (_sourceModel == null) + { + _sourceModel = model; + compositionBox.Cursor = _targetCursor; + } + else + { + // target model selected => add connection to composition + if (_sourceModel != model) + _composition.AddConnection(_sourceModel, model); + StopAddingConnection(); + UpdateControls(); + + //reset cursor + compositionBox.Cursor = Cursors.Default; + + } + } + else + { + // no model selected + StopAddingConnection(); + + //reset cursor + compositionBox.Cursor = Cursors.Default; + } + + actionFoundOut = true; + } + + // move model ? + if (!actionFoundOut) + { + UIModel model = GetModel(e.X, e.Y); + + if (model != null) + { + _prevMouse.X = e.X; + _prevMouse.Y = e.Y; + + _isMovingModel = true; + model.IsMoving = true; + + actionFoundOut = true; + + //-- Make sure the trigger is not selected + if (model.ModelID != "Oatc.OpenMI.Gui.Trigger") + { + //-- populate omi properties + this.properties_populate(model.OmiFilename); + + //-- highlight model + model.Color = System.Drawing.Color.MediumBlue; + + //-- set selected model + _selectedModel = model; + + //-- set the current file + _currentFile = model.OmiFilename; + _allowEdit = true; + } + } + //if in pan mode + else if (Ispan) + { + _prevMouse.X = e.X; + _prevMouse.Y = e.Y; + actionFoundOut = true; + } + } + + // or show link dialog ? + if (!actionFoundOut) + { + UIConnection connection = GetConnection(e.X, e.Y); + if (connection != null) + ShowLinkDialog(connection); + } + } + else if (e.Button == MouseButtons.Right) + { + // right button => show context menu + + // stop other actions + StopAddingConnection(); + StopMovingModel(); + + // get model under cursor + _contextSelectedObject = GetModel(e.X, e.Y); + if (_contextSelectedObject == null) + _contextSelectedObject = GetConnection(e.X, e.Y); + + contextMenu.Show(compositionBox, new Point(e.X, e.Y)); + } + } + + private void compositionBox_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) + { + //get the model under the cursor + UIModel M = GetModel(e.X, e.Y); + + // moving model ? + if (_isMovingModel) + { + foreach (UIModel model in _composition.Models) + if (model.IsMoving) + { + model.Rect.X += e.X - _prevMouse.X; + model.Rect.Y += e.Y - _prevMouse.Y; + + _prevMouse.X = e.X; + _prevMouse.Y = e.Y; + + _composition.ShouldBeSaved = true; + CompositionUpdateArea(); + UpdateTitle(); + compositionBox.Invalidate(); + } + } + //if pan is selected, and no models are + else if (Ispan && e.Button == System.Windows.Forms.MouseButtons.Left && M == null) + { + foreach (UIModel model in _composition.Models) + { + model.Rect.X += e.X - _prevMouse.X; + model.Rect.Y += e.Y - _prevMouse.Y; + _composition.ShouldBeSaved = true; + CompositionUpdateArea(); + UpdateTitle(); + compositionBox.Invalidate(); + } + _prevMouse.X = e.X; + _prevMouse.Y = e.Y; + } + + } + + /// + /// Stops the selected model from moving + /// + /// + /// + private void compositionBox_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) + { + StopMovingModel(); + } + + /// + /// Change the cursor into pan mode when it leaves the composition box + /// + /// + /// + private void compositionBox_MouseEnter(object sender, EventArgs e) + { + if (Ispan) + { + compositionBox.Cursor = _panCursor; + } + } + + /// + /// change the cursor back to default mode when it leaves the composition box + /// + /// + /// + private void compositionBox_MouseLeave(object sender, EventArgs e) + { + compositionBox.Cursor = Cursors.Default; + } + #endregion + + #region .NET generated members + + private System.ComponentModel.IContainer components; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose(disposing); + } + + + /// + /// The main entry point for the application. + /// + static void Main(string[] args) + { + try + { + ProceedCommandLineArgs(args); + } + catch (Exception e) + { + MessageBox.Show(e.ToString(), "Error occured while starting the application", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// Initializes the HydoDesktop Ribbon. Also calls the three methods below. + /// + private void InitializeComponentRibbon() + { + this.components = new System.ComponentModel.Container(); + + InitializeOldMenu(); + InitializeContext(); + InitializeComposition(); + + // mainTab + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoSize = true; + //add controls + + + + this.Margin = new System.Windows.Forms.Padding(0); + this.MinimumSize = new System.Drawing.Size(300, 200); + this.Name = "mainTab"; + this.Size = new System.Drawing.Size(602, 288); + + //add event handelers to the maintab + this.Load += new System.EventHandler(this.mainTab_Load); + this.DragDrop += new System.Windows.Forms.DragEventHandler(this.mainTab_DragDrop); + this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.mainTab_KeyPress); + this.SizeChanged += new System.EventHandler(this.mainTab_SizeChanged); + + //finish initialization + ((System.ComponentModel.ISupportInitialize)(this.compositionBox)).EndInit(); + //((System.ComponentModel.ISupportInitialize)(this.fileList)).EndInit(); + + this.container.ResumeLayout(false); + + //container.PerformAutoScale(); + container.PerformLayout(); + this.ResumeLayout(false); + + + } + /// + /// Initializes the orignal OpenMI Editor menu and variables + /// + private void InitializeOldMenu() + { + this.menuFile = new ToolStripMenuItem(); + this.menuFile.Text = "HydroModeler"; + this.menuFile.Name = "hydroModelerMenuItem"; + + this.menuFileNew = new ToolStripMenuItem(); + this.menuFileNew.Text = "&New composition"; + this.menuFileNew.Click += new System.EventHandler(this.menuFileNew_Click); + this.menuFile.DropDownItems.Add(this.menuFileNew); + + this.menuFileReload = new ToolStripMenuItem(); + this.menuFileReload.Text = "&Reload composition"; + this.menuFileReload.Click += new System.EventHandler(this.menuFileReload_Click); + this.menuFile.DropDownItems.Add(this.menuFileReload); + + this.menuFileOpen = new ToolStripMenuItem(); + this.menuFileOpen.Text = "&Open composition..."; + this.menuFileOpen.Click += new System.EventHandler(this.menuFileOpen_Click); + this.menuFile.DropDownItems.Add(this.menuFileOpen); + + this.menuFileSave = new ToolStripMenuItem(); + this.menuFileSave.Text = "&Save composition"; + this.menuFileSave.Click += new System.EventHandler(this.menuFileSave_Click); + this.menuFile.DropDownItems.Add(this.menuFileSave); + + this.menuFileSaveAs = new ToolStripMenuItem(); + this.menuFileSaveAs.Text = "Save composition &As..."; + this.menuFileSaveAs.Click += new System.EventHandler(this.menuFileSaveAs_Click); + this.menuFile.DropDownItems.Add(this.menuFileSaveAs); + + this.menuFileExit = new ToolStripMenuItem(); + this.menuFileExit.Text = "E&xit"; + this.menuFileExit.Click += new System.EventHandler(this.menuFileExit_Click); + + this.menuFile.DropDownItems.Add(new ToolStripSeparator()); + + this.menuEditModelAdd = new ToolStripMenuItem(); + this.menuEditModelAdd.Text = "Add &Model"; + this.menuEditModelAdd.Click += new System.EventHandler(this.menuEditModelAdd_Click); + this.menuFile.DropDownItems.Add(this.menuEditModelAdd); + + this.menuEditConnectionAdd = new ToolStripMenuItem(); + this.menuEditConnectionAdd.Enabled = false; + this.menuEditConnectionAdd.Text = "Add &Connection"; + this.menuEditConnectionAdd.Click += new System.EventHandler(this.menuEditConnectionAdd_Click); + this.menuFile.DropDownItems.Add(this.menuEditConnectionAdd); + + this.menuEditTriggerAdd = new ToolStripMenuItem(); + this.menuEditTriggerAdd.Text = "Add &Trigger"; + this.menuEditTriggerAdd.Click += new System.EventHandler(this.menuEditTriggerAdd_Click); + this.menuFile.DropDownItems.Add(this.menuEditTriggerAdd); + + this.menuEditConnectionProperties = new ToolStripMenuItem(); + this.menuEditConnectionProperties.Enabled = false; + this.menuEditConnectionProperties.Text = "Co&nnection properties..."; + this.menuFile.DropDownItems.Add(this.menuEditConnectionProperties); + + this.menuViewModelProperties = new ToolStripMenuItem(); + this.menuViewModelProperties.Text = "Model &properties..."; + this.menuViewModelProperties.Click += new System.EventHandler(this.menuViewModelProperties_Click); + this.menuFile.DropDownItems.Add(this.menuViewModelProperties); + + this.menuEditRunProperties = new ToolStripMenuItem(); + this.menuEditRunProperties.Text = "&Run..."; + this.menuEditRunProperties.Click += new System.EventHandler(this.menuDeployRun_Click); + this.menuFile.DropDownItems.Add(this.menuEditRunProperties); + + this.menuRegisterExtensions = new ToolStripMenuItem(); + this.menuRegisterExtensions.Checked = true; + this.menuRegisterExtensions.Text = "&Register file extensions"; + this.menuRegisterExtensions.Click += new System.EventHandler(this.menuRegisterExtensions_Click); + + this.menuOptions = new ToolStripMenuItem(); + this.menuOptions.Text = "&Options"; + this.menuOptions.DropDownItems.Add(this.menuRegisterExtensions); + this.menuFile.DropDownItems.Add(this.menuOptions); + + this.menuFile.DropDownItems.Add(new ToolStripSeparator()); + + this.menuHelp = new ToolStripMenuItem(); + this.menuHelp.Text = "&Help"; + //_ mapArgs.MainMenu.Items.Add(this.menuHelp); don't include for now. + + this.menuHelpAbout = new ToolStripMenuItem(); + this.menuHelpAbout.Text = "&About Configuration Editor ..."; + this.menuHelpAbout.Click += new System.EventHandler(this.menuHelpAbout_Click); + this.menuFile.DropDownItems.Add(this.menuHelpAbout); + + this.menuHelpContents = new ToolStripMenuItem(); + this.menuHelpContents.Text = "Help contents"; + this.menuHelpContents.Click += new System.EventHandler(this.menuHelpContents_Click); + this.menuFile.DropDownItems.Add(this.menuHelpContents); + + //add an event handler for launching the Help file via F1 + this.HelpRequested += new HelpEventHandler(mainTab_HelpRequested); + + } + + void mainTab_HelpRequested(object sender, HelpEventArgs hlpevent) + { + LocalHelp.OpenHelpFile(_localHelpUri); + hlpevent.Handled = true; + } + + /// + /// Initializes the context menus for the HydroModeler Model window and File Browser window + /// + private void InitializeContext() + { + this.contextMenu = new System.Windows.Forms.ContextMenu(); + this.contextConfigurationAdd = new System.Windows.Forms.MenuItem(); + this.contextModelAdd = new System.Windows.Forms.MenuItem(); + this.contextConnectionAdd = new System.Windows.Forms.MenuItem(); + this.contextAddTrigger = new System.Windows.Forms.MenuItem(); + this.contextRun = new System.Windows.Forms.MenuItem(); + this.contextDivider = new System.Windows.Forms.MenuItem(); + this.contextConnectionRemove = new System.Windows.Forms.MenuItem(); + this.contextConnectionProperties = new System.Windows.Forms.MenuItem(); + this.contextModelRemove = new System.Windows.Forms.MenuItem(); + this.contextModelProperties = new System.Windows.Forms.MenuItem(); + // + // contextMenu + // + this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.contextConfigurationAdd, + this.contextModelAdd, + this.contextConnectionAdd, + this.contextAddTrigger, + this.contextRun, + this.contextDivider, + this.contextConnectionRemove, + this.contextConnectionProperties, + this.contextModelRemove, + this.contextModelProperties}); + this.contextMenu.Popup += new System.EventHandler(this.contextMenu_Popup); + // + // contextConfigurationAdd + // + this.contextConfigurationAdd.Index = 0; + this.contextConfigurationAdd.Text = "Add Configuration"; + this.contextConfigurationAdd.Click += new System.EventHandler(this.composition_addconfiguration); + // + // contextModelAdd + // + this.contextModelAdd.Index = 1; + this.contextModelAdd.Text = "Add Model"; + this.contextModelAdd.Click += new System.EventHandler(this.contextModelAdd_Click); + // + // contextConnectionAdd + // + this.contextConnectionAdd.Index = 2; + this.contextConnectionAdd.Text = "Add Connection"; + this.contextConnectionAdd.Click += new System.EventHandler(this.contextConnectionAdd_Click); + // + // contextAddTrigger + // + this.contextAddTrigger.Index = 3; + this.contextAddTrigger.Text = "Add Trigger"; + this.contextAddTrigger.Click += new System.EventHandler(this.contextAddTrigger_Click); + // + // contextRun + // + //this.contextRun.Index = 4; + this.contextRun.Text = "Run"; + this.contextRun.Click += new System.EventHandler(this.contextRun_Click); + // + // contextDivider + // + this.contextDivider.Index = 5; + this.contextDivider.Text = "-"; + // + // contextConnectionRemove + // + this.contextConnectionRemove.Index = 6; + this.contextConnectionRemove.Text = "Remove connection"; + this.contextConnectionRemove.Click += new System.EventHandler(this.contextConnectionRemove_Click); + // + // contextConnectionProperties + // + this.contextConnectionProperties.Index = 7; + this.contextConnectionProperties.Text = "Connection properties"; + this.contextConnectionProperties.Click += new System.EventHandler(this.contextConnectionProperties_Click); + // + // contextModelRemove + // + this.contextModelRemove.Index = 8; + this.contextModelRemove.Text = "Remove model"; + this.contextModelRemove.Click += new System.EventHandler(this.contextModelRemove_Click); + // + // contextModelProperties + // + this.contextModelProperties.Index = 9; + this.contextModelProperties.Text = "Model properties"; + this.contextModelProperties.Click += new System.EventHandler(this.contextModelProperties_Click); + // + // FileList Context Menu + // + this.filelist_context = new ContextMenu(); + this.add_comp = new MenuItem(); + this.add_model = new MenuItem(); + this.delete = new MenuItem(); + this.filelist_context.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.add_comp, + this.add_model, + this.delete}); + // + // filelist_context Add Configuration + // + this.add_model.Index = 0; + this.add_model.Text = "Add Model"; + this.add_model.Click += new System.EventHandler(this.ClickModel); + // + // filelist_context Add Model + // + this.add_comp.Index = 1; + this.add_comp.Text = "Add Component"; + this.add_comp.Click += new System.EventHandler(this.ClickModel); + // + // filelist_context Delete + // + this.delete.Index = 2; + this.delete.Text = "Delete"; + this.delete.Click += new EventHandler(delete_Click); + } + + + /// + /// Initializes the HydroModeler composition items, including the modeler window, file browser, and properties window. + /// + private void InitializeComposition() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(mainTab)); + + this.compositionBox = new System.Windows.Forms.PictureBox(); + ((System.ComponentModel.ISupportInitialize)(this.compositionBox)).BeginInit(); + this.container = new SplitContainer(); + this.container2 = new SplitContainer(); + this.comp_container = new SplitContainer(); + + this.imageList = new System.Windows.Forms.ImageList(this.components); + this.ListPanel = new Panel(); + this.fileList = new FileListView(); + this.properties = new MyListView(); + this.tb_navigate = new TextBox(); + this.changeDir = new Button(); + this.currentDir = new Label(); + this.emptylabel1 = new Label(); + this.emptylabel2 = new Label(); + this._hmImage = new ImageList(); + this.dirDialog = new FolderBrowserDialog(); + this.AddModelButton = new Button(); + this._Save = new Button(); + this.t = new TextBox(); + this.container.SuspendLayout(); + this.ListPanel.SuspendLayout(); + this.compositionBox.SuspendLayout(); + this.SuspendLayout(); + + // + // SplitContainer1 + // + this.container.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.container.Dock = System.Windows.Forms.DockStyle.Fill; + this.container.Location = new System.Drawing.Point(0, 0); + this.container.Name = "container"; + this.container.Size = new System.Drawing.Size(602, 288); + this.container.SplitterDistance = 200; + this.container.SplitterMoved += new SplitterEventHandler(container_SplitterMoved); + this.Controls.Add(container); //add container as a form control + // SplitContainer1.Panel2 + this.container.Panel2.AutoScroll = true; + //this.container.Panel2.Controls.Add(this.compositionBox); + // + // SplitContainer2 + // + this.container2.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.container2.Dock = System.Windows.Forms.DockStyle.Fill; + this.container2.Location = new System.Drawing.Point(0, 0); + this.container2.Name = "container2"; + this.container2.Size = new System.Drawing.Size(602, 288); + this.container2.Orientation = Orientation.Horizontal; + this.container2.SplitterDistance = (int)((2.0/3.7)*(double)container.Panel1.Height); + this.container2.SplitterMoved += new SplitterEventHandler(container2_SplitterMoved); + this.container.Panel1.Controls.Add(container2); + // + // Composition Split Container + // + //this.comp_container.BorderStyle = System.Windows.Forms.BorderStyle.None; + //this.comp_container.Dock = System.Windows.Forms.DockStyle.Fill; + //this.comp_container.Location = new System.Drawing.Point(0, 0); + //this.comp_container.Name = "comp_container"; + //this.comp_container.Size = new System.Drawing.Size(602, 288); + //this.comp_container.Orientation = Orientation.Horizontal; + //this.comp_container.SplitterDistance = (int)((2.0 / 3.0) * (double)container.Panel1.Height); + ////this.comp_container.SplitterMoved += new SplitterEventHandler(container2_SplitterMoved); + //this.container.Panel2.Controls.Add(comp_container); + // + // compositionBox + // + this.compositionBox.BackColor = System.Drawing.Color.White; + this.compositionBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.compositionBox.Dock = DockStyle.Fill; + this.compositionBox.Location = new System.Drawing.Point(0, 0); + this.compositionBox.Name = "compositionBox"; + this.compositionBox.SizeMode = PictureBoxSizeMode.AutoSize; + this.compositionBox.TabIndex = 3; + this.compositionBox.TabStop = false; + this.compositionBox.AllowDrop = true; + this.compositionBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseMove); + this.compositionBox.MouseDown += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseDown); + this.compositionBox.Paint += new System.Windows.Forms.PaintEventHandler(this.compositionBox_Paint); + this.compositionBox.MouseUp += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseUp); + this.compositionBox.DragEnter += new System.Windows.Forms.DragEventHandler(this.composition_dragenter); + this.compositionBox.DragDrop += new System.Windows.Forms.DragEventHandler(this.composition_dragdrop); + this.compositionBox.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.compositionBox_mousewheel); + this.compositionBox.MouseEnter += new EventHandler(compositionBox_MouseEnter); + this.compositionBox.MouseLeave += new EventHandler(compositionBox_MouseLeave); + this.container.Panel2.Controls.Add(this.compositionBox); + //this.comp_container.Panel1.Controls.Add(this.compositionBox); + // + // imageList + // + //set opacity of _HMImage + //Image hm_image = Bitmap.FromFile(listviewImagesPath + _HmLogo); + //Bitmap temp = new Bitmap(hm_image.Width,hm_image.Height); + //Graphics gfx = Graphics.FromImage(temp); + //ColorMatrix cmx = new ColorMatrix(); + //cmx.Matrix33 = 0.2f; + //ImageAttributes ia = new ImageAttributes(); + //ia.SetColorMatrix(cmx, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); + //gfx.DrawImage(hm_image, new Rectangle(0, 0, temp.Width, temp.Height), 0, 0, hm_image.Width, hm_image.Height, GraphicsUnit.Pixel, ia); + //gfx.Dispose(); + //this._HMimage = temp; + //this.imageList.Images.Add(temp); + //this.imageList.TransparentColor = System.Drawing.Color.Transparent; + //this.imageList.Images.SetKeyName(0, ""); + // + // List View + // + this.fileList.BackColor = System.Drawing.Color.GhostWhite; + this.fileList.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.fileList.Dock = DockStyle.None; + this.fileList.Location = new System.Drawing.Point(0, 37); + this.fileList.Size = new Size(245, this.container2.Panel1.ClientSize.Height - 37); + this.fileList.Name = "fileList"; + + ImageList _imagesList = new ImageList(); + //_imagesList.Images.Add(HydroModeler.Properties.Resources.component_image.GetThumbnailImage(10, 10, null, IntPtr.Zero)); + //_imagesList.Images.Add(HydroModeler.Properties.Resources.model_image.GetThumbnailImage(10,10,null,IntPtr.Zero)); + _imagesList.Images.Add(HydroModeler.Properties.Resources.component_image.ToBitmap()); + _imagesList.Images.Add(HydroModeler.Properties.Resources.model_image.ToBitmap()); + _imagesList.Images.Add(HydroModeler.Properties.Resources.Folder.ToBitmap()); + //_imagesList.Images.Add(Bitmap.FromFile(listviewImagesPath + _xmlIcon)); + fileList.SmallImageList = _imagesList; + + ColumnHeader col = new ColumnHeader(); + col.Text = "Name"; + col.Width = 145; + col.TextAlign = HorizontalAlignment.Left; + this.fileList.Columns.Add(col); + + col = new ColumnHeader(); + col.Text = "Type"; + col.Width = 50; + col.TextAlign = HorizontalAlignment.Left; + this.fileList.Columns.Add(col); + + col = new ColumnHeader(); + col.Text = "Details"; + col.Width = 50; + col.TextAlign = HorizontalAlignment.Left; + this.fileList.Columns.Add(col); + + this.fileList.AllowColumnReorder = true; + //this.fileList.GridLines = true; + this.fileList.View = View.Details; + this.fileList.FullRowSelect = true; + this.fileList.MultiSelect = false; + this.fileList.DoubleClick += new System.EventHandler(this.ClickModel); + this.fileList.MouseDown += new MouseEventHandler(fileList_Click); + this.fileList.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.filelist_itemDrag); + this.fileList.SizeChanged += new EventHandler(fileList_SizeChanged); + this.fileList.SelectedIndexChanged += new EventHandler(fileList_SelectedIndexChanged); + this.container2.Panel1.Controls.Add(this.fileList); //add to container2 panel 1 + + // + // Label: Double Click or Drag + // + this.emptylabel2.Location = new Point(0, 3); + this.emptylabel2.Text = "Double click, or drag the desired model to add it to the HydroModeler composition window."; + this.emptylabel2.Size = new Size(245, 35); + this.emptylabel2.Font = new Font(emptylabel2.Font, FontStyle.Italic); + this.container2.Panel1.Controls.Add(this.emptylabel2); + // + // Add Model Button + // + this.AddModelButton.Text = "Add Item >>"; + this.AddModelButton.Size = new Size(75, 30); + this.AddModelButton.Location = new Point(135, this.container2.Panel2.Height-35); + this.AddModelButton.Click += new EventHandler(ClickModel); + this.container2.Panel2.Controls.Add(this.AddModelButton); + // + // Save Properties Button + // + this._Save.Text = "Save"; + this._Save.Size = new Size(75, 30); + this._Save.Location = new Point(50, this.container2.Panel2.Height - 35); + this._Save.Enabled = false; + this._Save.Visible = true; + this._Save.Click += new EventHandler(save_click); + this.container2.Panel2.Controls.Add(this._Save); + // + // Dialog Directory + // + this.dirDialog.ShowNewFolderButton = false; + // + // textbox + // + this.t.Location = new Point(0, this.container2.Panel2.Height - 35); + this.t.Size = new Size(30, 30); + this.t.Text = "Test"; + this.t.Visible = false; + this.t.KeyPress += new KeyPressEventHandler(textbox_keypress); + this.t.LostFocus += new EventHandler(textbox_lostfocus); + this.container2.Panel2.Controls.Add(this.t); + + // + // Properties Window + // + this.properties.BackColor = System.Drawing.Color.GhostWhite; + this.properties.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.properties.Dock = DockStyle.None; + this.properties.Height = (int)(0.75 * (double)container2.Panel2.Height); + this.properties.Width = container2.Panel2.Width; + this.properties.Location = new System.Drawing.Point(2, 0); + this.properties.Name = "properties"; + + col = new ColumnHeader(); + col.Text = "Property"; + col.Width = 90; + col.TextAlign = HorizontalAlignment.Left; + this.properties.Columns.Add(col); + + col = new ColumnHeader(); + col.Text = "Value"; + col.Width = 105; + col.TextAlign = HorizontalAlignment.Left; + this.properties.Columns.Add(col); + + this.properties.AllowColumnReorder = true; + this.properties.GridLines = false; + this.properties.View = View.Details; + this.properties.FullRowSelect = true; + this.properties.MultiSelect = false; + this.properties.LabelEdit = false; + this.properties.Scroll += new ScrollEventHandler(properties_scroll); + this.properties.MouseWheel += new MouseEventHandler(properties_MouseWheel); + this.properties.MouseDown += new MouseEventHandler(properties_MouseDown); + this.properties.ColumnWidthChanging += new ColumnWidthChangingEventHandler(properties_ColumnWidthChanging); + this.container2.Panel2.Controls.Add(this.properties); //add to container2 panel 2 + + // + // Output text box + // + //this.output_box = new TextBox(); + //this.output_box.AcceptsReturn = true; + //this.output_box.Dock = DockStyle.Fill; + //this.output_box.BackColor = System.Drawing.Color.Black; ; + //this.output_box.ForeColor = System.Drawing.Color.White; + //this.output_box.Multiline = true; + //this.output_box.ReadOnly = true; + //this.output_box.WordWrap = true; + ////this.output_box.f + //this.comp_container.Panel2.Controls.Add(this.output_box); + + } + + /* + private void InitializeComponent() + { + + + this.components = new System.ComponentModel.Container(); + + //InitializeMyMenu(); + InitializeOldMenu(); + InitializeContext(); + InitializeComposition(); +// + // mainTab + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoSize = true; + this.Controls.Add(this.compositionVScrollBar); + this.Controls.Add(this.compositionBox); + this.Controls.Add(this.compositionHScrollBar); + this.Margin = new System.Windows.Forms.Padding(0); + this.MinimumSize = new System.Drawing.Size(300, 200); + this.Name = "mainTab"; + this.Size = new System.Drawing.Size(602, 288); + this.Load += new System.EventHandler(this.mainTab_Load); + this.DragDrop += new System.Windows.Forms.DragEventHandler(this.mainTab_DragDrop); + this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.mainTab_KeyPress); + this.SizeChanged += new System.EventHandler(this.mainTab_SizeChanged); + ((System.ComponentModel.ISupportInitialize)(this.compositionBox)).EndInit(); + this.ResumeLayout(false); + + // Add UI features + //btnHydroModelerPlugin.DisplayStyle = ToolStripItemDisplayStyle.Text; + //btnSamplePlugin.Image = Resources.MySampleIcon1.ToBitmap(); + //btnHydroModelerPlugin.Name = "HydroModeler"; + //btnHydroModelerPlugin.ToolTipText = "Launch HydroModeler"; + //btnHydroModelerPlugin.Click += new EventHandler(btnSamplePlugin_Click); + + } + */ + /* + private void InitializeMyMenu() + { + ////create the menu, add the items and attatch the EventHandelers + mnuHydroModelerPlugin = new ToolStripMenuItem("HydroModeler"); + + ToolStripMenuItem mnuNew = new ToolStripMenuItem("New Composition"); + mnuHydroModelerPlugin.DropDownItems.Add(mnuNew); + + mnuHydroModelerPlugin.DropDownItems.Add(new ToolStripSeparator()); + + ToolStripMenuItem mnuReload = new ToolStripMenuItem("Reload Composition"); + mnuHydroModelerPlugin.DropDownItems.Add(mnuReload); + ToolStripMenuItem mnuOpen = new ToolStripMenuItem("Open Composition"); + mnuHydroModelerPlugin.DropDownItems.Add(mnuOpen); + ToolStripMenuItem mnuSave = new ToolStripMenuItem("Save Composition"); + mnuHydroModelerPlugin.DropDownItems.Add(mnuSave); + ToolStripMenuItem mnuSaveAs = new ToolStripMenuItem("Save Composition As ..."); + mnuHydroModelerPlugin.DropDownItems.Add(mnuSaveAs); + + mnuHydroModelerPlugin.DropDownItems.Add(new ToolStripSeparator()); + + ToolStripMenuItem mnuClose = new ToolStripMenuItem("Close"); + mnuHydroModelerPlugin.DropDownItems.Add(mnuClose); + + if (_mapArgs.MainMenu != null) + { + _mapArgs.MainMenu.Items.Add(mnuHydroModelerPlugin); + mnuNew.Click += new EventHandler(menuFileNew_Click); + mnuReload.Click += new EventHandler(menuFileReload_Click); + mnuOpen.Click += new EventHandler(menuFileOpen_Click); + mnuSave.Click += new EventHandler(menuFileSave_Click); + mnuSaveAs.Click += new EventHandler(menuFileSave_Click); + //mnuClose.Click += new EventHandler(btnClose_Click); + } + } + */ + #endregion + + + + + #endregion + + #region HydroModeler Event Handelers + + //-- filelist methods + private void filelist_mouseMoving(object sender, MouseEventArgs e) + { + if (_isdragging) + { + currentX = e.X; + currentY = e.Y; + } + } + private void filelist_itemDrag(object sender, System.Windows.Forms.ItemDragEventArgs e) + { + fileList.DoDragDrop(fileList.SelectedItems[0], DragDropEffects.Copy); + } + public void filelist_update(string path) + { + //pass the new directory to the runBox dialog + _runBox._currentDirectory = path; + + //clearItems + this.fileList.Items.Clear(); + + //clear stored items + openmiFiles.Clear(); + + //clear stored folders + Folders.Clear(); + + this.fileList.BeginUpdate(); + //add new items + if (System.IO.Directory.Exists(path)) + { + try + { + string[] omifiles = Directory.GetFiles(path, "*.omi"); + string[] oprfiles = Directory.GetFiles(path, "*.opr"); + //string[] xmlfiles = Directory.GetFiles(path, "*.xml"); + + + string[] folders = Directory.GetDirectories(path); + + //add omi files to dictionary + for (int i = 0; i <= omifiles.Length - 1; i++) + { + int omilength = omifiles[i].Split('\\').Length; + openmiFiles.Add(omifiles[i].Split('\\')[omilength - 1], omifiles[i]); + } + //add opr files to dictionary + for (int i = 0; i <= oprfiles.Length - 1; i++) + { + int oprlength = oprfiles[i].Split('\\').Length; + openmiFiles.Add(oprfiles[i].Split('\\')[oprlength - 1], oprfiles[i]); + } + ////add xml files to dictionary + //for (int i = 0; i <= xmlfiles.Length - 1; i++) + //{ + // int xmllength = xmlfiles[i].Split('\\').Length; + // openmiFiles.Add(xmlfiles[i].Split('\\')[xmllength - 1], xmlfiles[i]); + //} + + // + //--- add "up dir" to dictionary --- + // + path = path.Replace('/', '\\'); + + //remove end '\\' if there is one + path = path.TrimEnd('\\'); + + //convert path into array + string[] path_array = path.Split('\\'); + int path_array_length = path_array.Length - 1; + + //create new path + string newPath; + if (path_array[path_array_length].Contains(':')) + newPath = path_array[path_array_length] + "\\"; + else + { + Array.Resize(ref path_array, path_array_length); + newPath = string.Join("\\", path_array); + } + + if (newPath.Split('\\').Length == 1) + newPath += "\\"; + + Folders.Add("...", newPath); + + //add folders to dictionary + for (int i = 0; i <= folders.Length - 1; i++) + { + int folder_length = folders[i].Split('\\').Length; + Folders.Add(folders[i].Split('\\')[folder_length - 1], folders[i]); + } + + + //sort folders by name + var fldrs = from key in Folders.Keys + // orderby Folders[key] ascending + select key; + + + ListViewItem li; + ListViewItem.ListViewSubItem lsi = new ListViewItem.ListViewSubItem(); + //add all other folders to listview + foreach (string key in fldrs) + { + //set folder name + li = new ListViewItem(key, 2); + + //set type + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = "Folder"; + li.SubItems.Add(lsi); + + //set details + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = " "; + li.SubItems.Add(lsi); + fileList.Items.Add(li); + } + + //sort files by name + var items = from k in openmiFiles.Keys + orderby openmiFiles[k] ascending + select k; + + //add files to listview + foreach (string k in items) + { + //get file extension + string ext = k.Split('.')[1]; + + //set type and image + lsi = new ListViewItem.ListViewSubItem(); + if (ext == "omi") + { + //set file name + li = new ListViewItem(k.Split('.')[0], 0); + lsi.Text = "Component"; + } + else + { + //set file name + li = new ListViewItem(k.Split('.')[0], 1); + lsi.Text = "Model"; + } + //else + //{ + // //set file name + // li = new ListViewItem(k.Split('.')[0], 3); + // lsi.Text = "Xml"; + //} + li.SubItems.Add(lsi); + + //set details + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = k.Split('.')[1]; + li.SubItems.Add(lsi); + fileList.Items.Add(li); + } + } + catch (Exception) { } + + } + + this.fileList.EndUpdate(); + } + private void fileList_Click(object sender, MouseEventArgs e) + { + + ListViewItem lvi = fileList.GetItemAt(e.X, e.Y); + this.fileList.Refresh(); + + + //-- clear selected model from memory + if (_selectedModel != null) + for (int i = 0; i <= _composition.Models.Count - 1; i++) + if (_composition.Models[i] == _selectedModel) + { + ((UIModel)_composition.Models[i]).Color = Color.LightGreen; + _selectedModel = null; + _currentFile = null; + _allowEdit = false; + + //redraw + this.Refresh(); + } + + + //make sure the item is not a folder + if (lvi != null) + { + //set textbox invisable + + if (_currentFileItem != lvi) + { + if (_hasChanged) + { + try + { + string path = openmiFiles[_currentFileItem.SubItems[0].Text + "." + _currentFileItem.SubItems[2].Text]; + properties_savechanges(path); + } + catch (Exception) { } + } + + if (t.Visible) + t.Visible = false; + + } + + //clear items from the properties window + this.properties.Items.Clear(); + + if (lvi.SubItems[2].Text != " ") + { + //check that it is an omi file + if (lvi.SubItems[2].Text == "omi") + { + //set current file item + _currentFileItem = lvi; + + //create a key + string key = lvi.SubItems[0].Text + "." + lvi.SubItems[2].Text; + + //get the item path from dictionary + string path = openmiFiles[key]; + + //populate the properties window + properties_populate(path); + + //set the current file + _currentFile = path; + } + else if (lvi.SubItems[2].Text == "opr") + { + //set current file item + _currentFileItem = lvi; + + //create a key + string key = lvi.SubItems[0].Text + "." + lvi.SubItems[2].Text; + + //get the item path from dictionary + string path = openmiFiles[key]; + + //populate the properties window + properties_populateOPR(path); + + //set the current file + _currentFile = path; + } + } + } + + if (e.Button == MouseButtons.Right) + { + filelist_context_display(e); + } + + } + private void fileList_SelectedIndexChanged(object sender, EventArgs e) + { + if (fileList.SelectedItems.Count > 0) + { + //get the selected item + ListViewItem lvi = fileList.SelectedItems[0]; + + //clear items from the properties window + this.properties.Items.Clear(); + + if (lvi.SubItems[2].Text != " ") + { + //check that it is an omi file + if (lvi.SubItems[2].Text == "omi") + { + //allow editing + _allowEdit = true; + + //set current file item + _currentFileItem = lvi; + + //create a key + string key = lvi.SubItems[0].Text + "." + lvi.SubItems[2].Text; + + //get the item path from dictionary + string path = openmiFiles[key]; + + //populate the properties window + properties_populate(path); + + //set the current file + _currentFile = path; + } + else if (lvi.SubItems[2].Text == "opr") + { + //dont allow editing + _allowEdit = false; + + //set current file item + _currentFileItem = lvi; + + //create a key + string key = lvi.SubItems[0].Text + "." + lvi.SubItems[2].Text; + + //get the item path from dictionary + string path = openmiFiles[key]; + + //populate the properties window + properties_populateOPR(path); + + //set the current file + _currentFile = path; + } + } + } + } + private void filelist_context_display(MouseEventArgs e) + { + + //get item from list view + ListViewItem lvi = this.fileList.GetItemAt(e.X, e.Y); + + if (lvi != null) + { + //highlight the selected item + this.fileList.FocusedItem = lvi; + + //get the file extension + string ext = lvi.SubItems[2].Text; + + if (ext == "omi") + { + add_model.Enabled = false; + add_comp.Enabled = true; + delete.Enabled = true; + } + else if (ext == "opr") + { + add_model.Enabled = true; + add_comp.Enabled = false; + delete.Enabled = true; + + } + else if (ext == "xml") + { + add_model.Enabled = false; + add_comp.Enabled = false; + delete.Enabled = false; + } + else + { + add_model.Enabled = false; + add_comp.Enabled = false; + delete.Enabled = false; + } + + filelist_context.Show(fileList, new Point(e.X, e.Y)); + } + + } + private void filelist_leave(object sender, EventArgs e) + { + + //get item from list view + ListViewItem lvi = this.fileList.SelectedItems[0]; + + //create the dictionary key + string key = lvi.SubItems[0].Text + "." + lvi.SubItems[2].Text; + + //get the item path + string path = openmiFiles[key]; + + //add model or composition to the composition window + StopAllActions(); + if (lvi.SubItems[2].Text == "omi") + this.AddModel(path); + else + this.OpenOprFile(path); + } + private void filelist_context_edit(object sender, EventArgs e) + { + ////HydroModeler.XmlViewer viewer = new HydroModeler.XmlViewer(); + + ////ListViewItem lvi = lvi = this.fileList.SelectedItems[0]; + + ////string path = ((RibbonTextBox)((RibbonItemGroup)rps[2].Items[0]).Items[0]).TextBoxText; + ////string file = lvi.SubItems[0].Text + "." + lvi.SubItems[2].Text; + + ////viewer.populate(path + "\\" + file); + + + + } + private void fileList_SizeChanged(object sender, EventArgs e) + { + + } + + //-- composition methods + private void composition_addconfiguration(object sender, EventArgs e) + { + menuFileOpen_Click(sender, e); + } + private void composition_selectmodel(object sender, System.Windows.Forms.MouseEventArgs e) + { + //check that a single left click was performed + if (e.Button == MouseButtons.Left && e.Clicks == 1) + { + //make sure an item has been selected + if (fileList.SelectedItems.Count > 0) + { + //make sure the item is not a folder + if (fileList.SelectedItems[0].SubItems[2].Text != " ") + { + if (fileList.SelectedItems[0].SubItems[2].Text == ".omi") + { + string key = fileList.SelectedItems[0].SubItems[0].Text + "." + fileList.SelectedItems[0].SubItems[2].Text; + //get the item path + string path = openmiFiles[key]; + properties_populate(path); + } + + _isdragging = true; + initialX = e.X; + initialY = e.Y; + fileList.DoDragDrop(fileList.SelectedItems[0], DragDropEffects.Copy); + + } + } + } + else if (e.Clicks > 1) + { + } + else if (e.Button == MouseButtons.Right) + { + filelist_context_display(e); + } + //else if (fileList.SelectedItems.Count > 0) + //{ + // ClickModel(this, e); + //} + + + } + private void composition_dragenter(object sender, DragEventArgs e) + { + if (e.Data.GetDataPresent(typeof(ListViewItem))) + { + e.Effect = DragDropEffects.Copy; + } + } + private void composition_dragdrop(object sender, DragEventArgs e) + { + //change to wait cursor + compositionBox.Cursor = Cursors.WaitCursor; + + if (e.Data.GetDataPresent(typeof(ListViewItem))) + { + //get item from list view + ListViewItem lvi = this.fileList.SelectedItems[0]; + + //create the dictionary key + string key = lvi.SubItems[0].Text + "." + lvi.SubItems[2].Text; + + //make sure that the selected file is either an .opr or .omi + if (lvi.SubItems[2].Text == "omi" || lvi.SubItems[2].Text == "opr") + { + + //get the item path + string path = openmiFiles[key]; + + + //get x location + int x = e.X; + + //get y location + int y = e.Y; + + + //add model or composition to the composition window + StopAllActions(); + if (lvi.SubItems[2].Text == "omi") + { + try + { + _composition.AddModel(null, path); + } + catch (Exception ex) + { + MessageBox.Show( + "Unable to load model.", + "Failed to load model...", + MessageBoxButtons.OK, + MessageBoxIcon.Warning); + } + + + //update the Enable Ribbon Add Connection + if (_composition.Models.Count - 1 > _composition.Connections.Count) + //((RibbonButton)rps[1].Items[2]).Enabled = true; + ((SimpleActionItem)rps["connection"]).Enabled = true; + + + Application.CurrentCulture = _cultureInfo; + + CompositionUpdateArea(x, y); + + + UpdateControls(); + UpdateTitle(); + Invalidate(); + } + else if (lvi.SubItems[2].Text == "opr") + this.OpenOprFile(path); + } + else + { + ToolTip tip = new ToolTip(); + + Point topLeft = this.PointToScreen(new Point(this.container.Panel2.Left, this.container.Panel2.Top)); + + int y = e.Y - topLeft.Y + 32; + int x = e.X; + tip.Show("Sorry, cannot add a folder to the composition window", this, x, y, 1000); + + + } + + //reset cursor + compositionBox.Cursor = Cursors.Default; + + _isdragging = false; + + } + } + public void composition_clear() + { + _composition.RemoveAllModels(); + + //disable "add connection" + //((RibbonButton)rps[1].Items[2]).Enabled = false; + ((SimpleActionItem)rps["connection"]).Enabled = false; + + //disable "run" + //((RibbonButton)rps[1].Items[3]).Enabled = false; + ((SimpleActionItem)rps["run"]).Enabled = false; + + CompositionUpdateArea(); + UpdateControls(); + UpdateTitle(); + + } + + //-- ribbon change dir methods + public string changeDir_Click(object sender, EventArgs e) + { + DialogResult result = this.dirDialog.ShowDialog(); + string path = null; + if (result == DialogResult.OK) + { + path = dirDialog.SelectedPath; + filelist_update(path); + //tb_navigate.Text = path; + } + + return path; + + } + + //-- container methods + private void container_SplitterMoved(object sender, EventArgs e) + { + //get splitter width + int newWidth = this.container.Panel1.ClientSize.Width; + + + //set new filelist width + this.fileList.Width = newWidth; + + //set column widths + this.fileList.Columns[0].Width = Convert.ToInt32(3 * newWidth / 5) - SystemInformation.VerticalScrollBarWidth - 4; + this.fileList.Columns[1].Width = Convert.ToInt32(newWidth / 5); + this.fileList.Columns[2].Width = Convert.ToInt32(newWidth / 5); + + this.fileList.Invalidate(); + + // Move the AddItem box + + + //Resize the label + this.emptylabel2.Width = newWidth; + + // + //resize properties window + // + this.properties.Width = newWidth; //set the new width for the properties window + int oldWidth = this.properties.Columns[0].Width + this.properties.Columns[1].Width; //get the old width + double ratio = (Double)(this.properties.Columns[0].Width) / oldWidth; //calculate the percentage of total width for column 1 + this.properties.Columns[0].Width = (Int32)(newWidth * ratio - 2); //set column 1 width + this.properties.Columns[1].Width = (Int32)(newWidth * (1 - ratio) - 2); //set column 2 width + this.AddModelButton.Location = new Point(newWidth - this.AddModelButton.Width - 15, this.container2.Panel2.Height - 35); //set button loc + this._Save.Location = new Point(newWidth - this._Save.Width - 100, this.container2.Panel2.Height - 35); //set button loc + + } + private void container2_SplitterMoved(object sender, SplitterEventArgs e) + { + //get splitter height + int height1 = this.container2.Panel1.Height; + int height2 = this.container2.Panel2.Height; + + //get splitter width + int width = this.container2.Panel1.Width; + + //set new heights in panel 1 + this.fileList.Height = height1 - 37; + + + //set new heights in panel 2 + this.properties.Height = height2 - 45; + this.AddModelButton.Location = new Point(width - this.AddModelButton.Width - 15, height2 - 35); + this._Save.Location = new Point(width - this._Save.Width - 100, height2 - 35); + + } + + //-- properties methods + private void properties_populate(string file) + { + //-- clear listview + this.properties.Items.Clear(); + + //define some colors + //Color headerColor = Color.Gray; + //Color groupColor = Color.Silver; + //Color itemColor = Color.WhiteSmoke; + //Color headerColor = Color.Salmon; + //Color groupColor = Color.LightGreen; + //Color itemColor = Color.LightBlue; + + + Color headerColor = Color.DarkBlue; + Color groupColor = Color.RoyalBlue; + Color itemColor = Color.Gray; + + try + { + XmlDocument doc = new XmlDocument(); + doc.Load(file); + Dictionary args = new Dictionary(); + + //get root element + XmlElement root = doc.DocumentElement; + + //get root children + XmlNodeList elements = root.ChildNodes; + + + //get the linkable component node + XmlNode linkableComponent = root.SelectSingleNode("/LinkableComponent"); + if (linkableComponent == null) + linkableComponent = (XmlNode)root; + + //get the class name and assembly path + string className = linkableComponent.OuterXml.Split('=')[1].Split('\"')[1]; + string assembly = linkableComponent.OuterXml.Split('=')[2].Split('\"')[1]; + + //loop through the root children + foreach (XmlNode Arguments in elements) + { + //get arguments node + if (Arguments.Name == "Arguments") + { + //get arguments children + XmlNodeList Argument = Arguments.ChildNodes; + + //loop through args + foreach (XmlNode arg in Argument) + { + //-- get the argument key + string Key = arg.OuterXml.Split(' ')[1].Split('=')[1]; + Key = Key.Remove(0, 1).Remove(Key.Length - 2, 1); + + //-- get the argument value + string Value = arg.OuterXml.Split(' ')[3].Split('=')[1]; + for (int i = 4; i <= arg.OuterXml.Split(' ').Length - 1; i++) + Value += " " + arg.OuterXml.Split(' ')[i]; + //-- replace xml characters in value + Value = Value.Replace("/>", ""); + Value = Value.Replace(">", ""); + //Value = Value.Replace(".\\", ""); + //Value = Value.Replace("\\", ""); + Value = Value.Replace("\"", ""); + + ////remove /> characters if there isnt a space after this element + //if(arg.OuterXml.Split(' ').Length == 3) + // Value = Value.Remove(0, 1).Remove(Value.Length - 2, 1); + + try + { + args.Add(Key, Value); + } + catch (Exception) + { + while (args.ContainsKey(Key)) + Key += " "; + + args.Add(Key, Value); + } + } + break; + } + } + + + + this.properties.BeginUpdate(); + + ListViewItem li; + ListViewItem.ListViewSubItem lsi; + + + li = new ListViewItem("Omi Arguments"); + li.UseItemStyleForSubItems = true; + //li.BackColor = headerColor; + li.ForeColor = headerColor; + li.Font = new Font(li.Font, FontStyle.Bold); + this.properties.Items.Add(li); + + //set the class name + li = new ListViewItem("Class"); + li.UseItemStyleForSubItems = false; + //li.BackColor = itemColor; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = className; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + + //set the assembly name + li = new ListViewItem("Assembly"); + li.UseItemStyleForSubItems = false; + //li.BackColor = itemColor; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = assembly; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + + foreach (KeyValuePair kvp in args) + { + // + // populate the properties window + // + li = new ListViewItem(kvp.Key); + li.UseItemStyleForSubItems = false; + //li.BackColor = itemColor; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = kvp.Value; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + } + + + //loop through the arguments, and see if any of the xml data can be loaded + foreach (KeyValuePair kvp in args) + { + if (kvp.Value.Contains(".xml")) + { + try + { + //load the document + doc = new XmlDocument(); + int characters = file.Split('\\')[file.Split('\\').Length - 1].Length; + string path = System.IO.Path.GetFullPath(file.Remove(file.Length - characters) + kvp.Value); + doc.Load(path); + //get root element + root = doc.DocumentElement; + + //get input and output exchangeitems + XmlNodeList outputs = root.SelectNodes("/Configuration/ExchangeItems/OutputExchangeItem"); + XmlNodeList inputs = root.SelectNodes("/Configuration/ExchangeItems/InputExchangeItem"); + //get timehorizon + XmlNode timeHorizon = root.SelectSingleNode("/Configuration/TimeHorizon"); + //get model info + XmlNode modelInfo = root.SelectSingleNode("/Configuration/ModelInfo"); + + #region Add Output Exchange Items + //loop through output and input exchange items + foreach (XmlNode output in outputs) + { + //add Exchange Item Property + li = new ListViewItem("Output Exchange Item"); + li.UseItemStyleForSubItems = true; + li.ForeColor = headerColor; + li.Font = new Font(li.Font, FontStyle.Bold); + this.properties.Items.Add(li); + + //add ElementSet Property + li = new ListViewItem("Element Set"); + li.UseItemStyleForSubItems = false; + li.ForeColor = groupColor; + li.Font = new Font(li.Font, FontStyle.Bold); + this.properties.Items.Add(li); + + //Add Element Set Items + foreach (XmlNode e in output.FirstChild.ChildNodes) + { + li = new ListViewItem(e.Name); + li.UseItemStyleForSubItems = false; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = e.FirstChild.Value; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + } + + //add Quantity Property + li = new ListViewItem("Quantity"); + li.UseItemStyleForSubItems = false; + li.ForeColor = groupColor; + li.Font = new Font(li.Font, FontStyle.Bold); + this.properties.Items.Add(li); + + //Add Quantity Items + foreach (XmlNode e in output.FirstChild.NextSibling.ChildNodes) + { + li = new ListViewItem(e.Name); + li.UseItemStyleForSubItems = false; + li.ForeColor = itemColor; + lsi = new ListViewItem.ListViewSubItem(); + + if (e.Name == "Dimensions") + { + XmlNodeList dims = e.ChildNodes; + string dimension = null; + foreach (XmlNode dim in dims) + { + dimension += "[" + dim.FirstChild.InnerText + " ^" + dim.FirstChild.NextSibling.InnerText + "]"; + } + lsi.Text = dimension; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + } + else if (e.Name == "Unit") + { + XmlNodeList units = e.ChildNodes; + foreach (XmlNode unit in units) + { + li = new ListViewItem("Unit: " + unit.Name); + li.UseItemStyleForSubItems = false; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = unit.FirstChild.Value; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + + } + } + else + { + li = new ListViewItem(e.Name); + li.UseItemStyleForSubItems = false; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = e.FirstChild.Value; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + } + + + + } + + + } + #endregion + + #region Add Input Exchange Items + foreach (XmlNode input in inputs) + { + //add Exchange Item Property + li = new ListViewItem("Input Exchange Item"); + li.UseItemStyleForSubItems = true; + li.ForeColor = headerColor; + li.Font = new Font(li.Font, FontStyle.Bold); + this.properties.Items.Add(li); + + //add ElementSet Property + li = new ListViewItem("Element Set"); + li.UseItemStyleForSubItems = false; + li.ForeColor = groupColor; + li.Font = new Font(li.Font, FontStyle.Bold); + this.properties.Items.Add(li); + + //Add Element Set Items + foreach (XmlNode e in input.FirstChild.ChildNodes) + { + li = new ListViewItem(e.Name); + li.UseItemStyleForSubItems = false; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = e.FirstChild.Value; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + } + + //add Quantity Property + li = new ListViewItem("Quantity"); + li.UseItemStyleForSubItems = false; + li.ForeColor = groupColor; + li.Font = new Font(li.Font, FontStyle.Bold); + this.properties.Items.Add(li); + + //Add Quantity Items + foreach (XmlNode e in input.FirstChild.NextSibling.ChildNodes) + { + li = new ListViewItem(e.Name); + li.UseItemStyleForSubItems = false; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + + if (e.Name == "Dimensions") + { + XmlNodeList dims = e.ChildNodes; + string dimension = null; + foreach (XmlNode dim in dims) + { + dimension += "[" + dim.FirstChild.InnerText + "^" + dim.FirstChild.NextSibling.InnerText + "]"; + } + lsi.Text = dimension; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + } + else if (e.Name == "Unit") + { + XmlNodeList units = e.ChildNodes; + foreach (XmlNode unit in units) + { + li = new ListViewItem("Unit: " + unit.Name); + li.UseItemStyleForSubItems = false; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = unit.FirstChild.Value; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + + } + } + else + { + li = new ListViewItem(e.Name); + li.UseItemStyleForSubItems = false; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = e.FirstChild.Value; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + } + + + + } + } + #endregion + + //read time horizion + + //add TimeHorizon Property + li = new ListViewItem("Time Horizon"); + li.UseItemStyleForSubItems = true; + li.ForeColor = headerColor; + li.Font = new Font(li.Font, FontStyle.Bold); + this.properties.Items.Add(li); + foreach (XmlNode child in timeHorizon.ChildNodes) + { + li = new ListViewItem(child.Name); + li.UseItemStyleForSubItems = false; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = child.FirstChild.Value; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + + } + + + + //read model info + + //add Model Info Poroperty + li = new ListViewItem("Model Info"); + li.UseItemStyleForSubItems = true; + li.ForeColor = headerColor; + li.Font = new Font(li.Font, FontStyle.Bold); + this.properties.Items.Add(li); + foreach (XmlNode child in modelInfo.ChildNodes) + { + li = new ListViewItem(child.Name); + li.UseItemStyleForSubItems = false; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = child.FirstChild.Value; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + + } + } + catch (Exception) { } + } + } + } + catch (Exception) + { + + } + + this.properties.EndUpdate(); + } + private void properties_populateOPR(string file) + { + //define some colors + //Color headerColor = Color.Gray; + //Color groupColor = Color.Silver; + //Color itemColor = Color.WhiteSmoke; + //Color headerColor = Color.Salmon; + //Color groupColor = Color.LightGreen; + //Color itemColor = Color.LightBlue; + + Color headerColor = Color.DarkBlue; + Color groupColor = Color.RoyalBlue; + Color itemColor = Color.Gray; + + try + { + XmlDocument doc = new XmlDocument(); + doc.Load(file); + Dictionary args = new Dictionary(); + + //get root element + XmlElement root = doc.DocumentElement; + + //get root children + XmlNodeList elements = root.ChildNodes; + + List links = new List(); + + + foreach (XmlNode children in elements) + { + if (children.Name == "links") + { + //loop through the links + foreach (XmlNode child in children) + { + /*TODO: This catches the instance when a link has yet to be formed between two components. + In the future it should also load this information, right now its just omitting it.base */ + try + { + //get some data from the opr file and store it in the UiLink class + string provider = child.OuterXml.Split('=')[1].Split('\"')[1]; + string accepter = child.OuterXml.Split('=')[2].Split('\"')[1]; + int id = Convert.ToInt32(child.InnerXml.Split('=')[1].Split('\"')[1]); + string p_element = child.InnerXml.Split('=')[2].Split('\"')[1]; + string p_quantity = child.InnerXml.Split('=')[3].Split('\"')[1]; + string a_element = child.InnerXml.Split('=')[4].Split('\"')[1]; + string a_quantity = child.InnerXml.Split('=')[5].Split('\"')[1]; + string dataop = "none"; + if (child.ChildNodes[0].HasChildNodes) + { + dataop = (child.InnerXml.Split('=')[6].Split('\"')[1]); + + } + + links.Add(new UiLink(id, provider, accepter, p_element, p_quantity, a_element, a_quantity, dataop)); + } + catch (Exception) + { + } + } + } + } + + + this.properties.BeginUpdate(); + + ListViewItem li; + ListViewItem.ListViewSubItem lsi; + + for (int i = 0; i <= links.Count - 1; i++) + { + li = new ListViewItem("Link id=" + links[i].linkID.ToString()); + li.UseItemStyleForSubItems = true; + li.ForeColor = headerColor; + li.Font = new Font(li.Font, FontStyle.Bold); + this.properties.Items.Add(li); + + //set the providing model name + li = new ListViewItem("Providing Model"); + li.UseItemStyleForSubItems = false; + li.ForeColor = groupColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = links[i].provider; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + + //set the providing model name + li = new ListViewItem("Quantity"); + li.UseItemStyleForSubItems = false; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = links[i].provider_quantity; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + + //set the accepting model name + li = new ListViewItem("Element Set"); + li.UseItemStyleForSubItems = false; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = links[i].provider_elementset; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + + //set the accepting model name + li = new ListViewItem("Accepting Model"); + li.UseItemStyleForSubItems = false; + li.ForeColor = groupColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = links[i].accepter; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + + //set the providing model name + li = new ListViewItem("Quantity"); + li.UseItemStyleForSubItems = false; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = links[i].accepter_quantity; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + + //set the accepting model name + li = new ListViewItem("Element Set"); + li.UseItemStyleForSubItems = false; + li.ForeColor = itemColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = links[i].accepter_elementset; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + + //set the accepting model name + li = new ListViewItem("Data Operation"); + li.UseItemStyleForSubItems = false; + li.ForeColor = groupColor; + li.Font = new Font(li.Font, FontStyle.Bold); + lsi = new ListViewItem.ListViewSubItem(); + lsi.Text = links[i].dataoperation; + li.SubItems.Add(lsi); + this.properties.Items.Add(li); + + } + } + catch (Exception e) + { + } + this.properties.EndUpdate(); + + } + private void properties_MouseDown(object sender, MouseEventArgs e) + { + //make sure a file has been selected + if (_currentFile != null) + { + //get the selected item + ListViewItem lvi = properties.GetItemAt(e.X, e.Y); + + //make sure any changes that have been made are saved + if (t.Visible == true) + textbox_setproperty(); + + //make sure the item is not a folder + if (lvi != null) + { + + //check if the item is already highlighted + if (this.properties.Items[lvi.Index].Selected == true) + { + if (!_allowEdit) + { + ToolTip tip = new ToolTip(); + int y = this.container2.Panel2.Top + properties.Location.Y + e.Y + 32; + int x = e.X; + tip.Show("Editing is not available for this file", this, x, y, 1000); + } + else + { + try + { + //disable scrolling + //this.properties.Scrollable = false; + + //get the sub item + ListViewItem.ListViewSubItem lvsi = lvi.SubItems[1]; + + //create a text box in that exact location + t.Location = new Point(lvsi.Bounds.X+7, lvsi.Bounds.Y + 2); + t.Size = new Size(lvsi.Bounds.Width, lvsi.Bounds.Height + 1); + t.Font = lvi.Font; + t.BorderStyle = BorderStyle.None; + t.Text = lvsi.Text; + t.Visible = true; + + + //save the old text + _oldText = t.Text; + _currentLvi = lvi; + + //highlight the text + //t.SelectAll(); + t.HideSelection = false; + } + catch (ArgumentOutOfRangeException) { } + } + } + else + { + //highlight the selected item + this.properties.Items[lvi.Index].Selected = true; + this.properties.Refresh(); + } + } + } + } + private void properties_saveOmiOpr(string file) + { + Dictionary newVals = new Dictionary(); + List output = new List(); + List input = new List(); + List time = new List(); + List model = new List(); + + #region Save Properties By XPath + string config = null; + string headerItem = ""; + bool elementsAdded = false; + int outputItems = 0; + int inputItems = 0; + + //read properties window to get new values + for (int i = 0; i < this.properties.Items.Count; i++) + { + //get row info + ListViewItem lvi = this.properties.Items[i]; + //configRoot.SelectSingleNode("/Configuration/ExchangeItems/OutputExchangeItem/Quantity[ID='Excess Rainfall']") + if (lvi.SubItems.Count > 1) + { + if (headerItem.Contains("Omi Arguments")) + { + newVals.Add(headerItem + ":" + lvi.Text, lvi.SubItems[1].Text); + } + else if (headerItem.Contains("Output Exchange Item")) + { + if (lvi.Text.Contains("Dimensions")) + output.Add("Dimension:" + lvi.SubItems[1].Text); + else + output.Add(lvi.SubItems[1].Text); + } + else if (headerItem.Contains("Input Exchange Item")) + { + if (lvi.Text.Contains("Dimensions")) + input.Add("Dimension:" + lvi.SubItems[1].Text); + else + input.Add(lvi.SubItems[1].Text); + } + else if (headerItem.Contains("Time Horizon")) + time.Add(lvi.SubItems[1].Text); + else if (headerItem.Contains("Model Info")) + model.Add(lvi.SubItems[1].Text); + + //newVals.Add(headerItem+":"+lvi.SubItems[0].Text, lvi.SubItems[1].Text); + elementsAdded = true; + } + else + { + + if (lvi.Text == "Omi Arguments" || lvi.Text == "Output Exchange Item" || lvi.Text == "Input Exchange Item" + || lvi.Text == "Time Horizon" || lvi.Text == "Model Info") + { + if (lvi.Text == "Output Exchange Item") + { + outputItems++; + headerItem = lvi.Text + outputItems; + //output.Add(lvi.Text); + } + else if (lvi.Text == "Input Exchange Item") + { + inputItems++; + headerItem = lvi.Text + inputItems; + //input.Add(lvi.Text); + } + else + { + headerItem = lvi.Text; + + } + elementsAdded = false; + } + else + { + if (elementsAdded) + { + string[] headeritems = headerItem.Split(':'); + int length = headeritems.Length - 1; + Array.Resize(ref headeritems, length); + headerItem = String.Join(":", headeritems); + elementsAdded = false; + } + headerItem += ":" + lvi.Text; + } + } + + + } + #endregion + + List> values = new List>(); + values.Add(output); + values.Add(input); + values.Add(time); + values.Add(model); + + + #region Edit the OMI file + //Open Omi file + XmlDocument omi = new XmlDocument(); + omi.Load(file); + XmlElement omiRoot = omi.DocumentElement; + + //get the linkable component node + XmlNode linkableComponent = omiRoot.SelectSingleNode("/LinkableComponent"); + + //get the class name and assembly path + string className = linkableComponent.OuterXml.Split('=')[1].Split('\"')[1]; + string assembly = linkableComponent.OuterXml.Split('=')[2].Split('\"')[1]; + + + + // + // Read the arguments from the omi file + // + XmlNodeList args = omiRoot.SelectNodes("/LinkableComponent/Arguments/Argument"); + foreach (XmlNode arg in args) + { + if (arg.OuterXml.Contains("ConfigFile")) + { + //get the length of the omi filename + int characters = file.Split('\\')[file.Split('\\').Length - 1].Length; + + //get the config filename + int configLength = arg.OuterXml.Split('=')[3].Length; + string configFileName = arg.OuterXml.Split('=')[3].Remove(0, 1).Remove(configLength - 5, 4); + + //get full path to config file + config = System.IO.Path.GetFullPath(file.Remove(file.Length - characters) + configFileName); + break; + } + } + + //open the omi file to read its contents + StreamReader srOmi = new StreamReader(file); + //read all contents + string[] contents = srOmi.ReadToEnd().Split('\n'); + //close the stream reader + srOmi.Close(); + + for (int i = 0; i <= contents.Length - 1; i++) + { + //replace class name and assembly pat + if (contents[i].Contains("Type")) + { + string type = newVals["Omi Arguments:Class"]; + string assemblyName = newVals["Omi Arguments:Assembly"]; + contents[i] = "\r"; + + //remove class and assembly from dictionary + newVals.Remove("Omi Arguments:Class"); + newVals.Remove("Omi Arguments:Assembly"); + + break; + } + } + + //replace aruments + foreach (KeyValuePair kvp in newVals) + { + if (kvp.Key.Split(':')[0] == "Omi Arguments") + { + for (int i = 0; i <= contents.Length - 1; i++) + { + //Argument Key=\"ConfigFile\" + if (contents[i].Contains("Argument Key=\""+kvp.Key.Split(':')[1]+"\"")) + { + contents[i] = " \r"; + break; + } + + } + } + } + #endregion + + string configStream = null; + if (config != null) + configStream = properties_writeconfig(values, config); + + #region Update OMI and Config Values + + //save changes made to the omi file + StreamWriter swOmi = new StreamWriter(file, false); + string omiOutput = String.Join("\n", contents); + swOmi.Write(omiOutput); + swOmi.Close(); + + //write new config if stream was created successfully + if (configStream != null) + { + StreamWriter swConfig = new StreamWriter(config, false); + swConfig.Write(configStream); + swConfig.Close(); + } + + #endregion + + + _hasChanged = false; + _Save.Enabled = false; + + + } + private string properties_writeconfig(List> values, string path) + { + //-- get shapefile path, relative to omi + string[] path_parts = path.Split('\\'); + string shapePath = ""; + for (int i = 0; i <= path_parts.Length - 2; i++) + shapePath += path_parts[i] + "\\"; + + string id = ""; + string configStream = null; + configStream += "" + "\n"; + configStream += "" + "\n"; + configStream += "\t" + "\n"; + + for (int i = 0; i <= values.Count - 1; i++) + { + //output exchange item or input exchange item + if (i == 0 || i == 1) + { + for (int j = 0; j <= values[i].Count - 1; j++) + { + if (i == 0) + configStream += "\t\t" + "\n"; + else + configStream += "\t\t" + "\n"; + + configStream += "\t\t\t" + "\n"; + configStream += "\t\t\t\t" + values[i][j] + "" + "\n"; j++; + configStream += "\t\t\t\t" + values[i][j] + "" + "\n"; j++; + + //BROKEN: File Exists is not working!!!!! It must be relatice to the OMI!!!!! + //check to see if a shapefile path was given + //string currPath = ((RibbonTextBox)((RibbonItemGroup)rps[2].Items[0]).Items[0]).TextBoxText + "//"; + string currPath = ((TextEntryActionItem)rps["dirbox"]).Text + "//"; + + //check to see if the file exists by absolute path + if (File.Exists(Path.GetFullPath(values[i][j]))) + { configStream += "\t\t\t\t" + values[i][j] + "" + "\n"; j++; } + //check to see if the file exists by relative path + else if (File.Exists(Path.GetFullPath(shapePath + values[i][j]))) + { configStream += "\t\t\t\t" + values[i][j] + "" + "\n"; j++; } + + configStream += "\t\t\t\t" + values[i][j] + "" + "\n"; j++; + configStream += "\t\t\t" + "\n"; + + configStream += "\t\t\t" + "\n"; + configStream += "\t\t\t\t" + values[i][j] + "" + "\n"; j++; + configStream += "\t\t\t\t" + values[i][j] + "" + "\n"; j++; + + configStream += "\t\t\t\t" + "\n"; + if (values[i][j].Contains("Dimension")) + { + string dim = values[i][j].Split(':')[1]; + for (int k = 0; k <= dim.Split(']').Length - 2; k++) + { + + configStream += "\t\t\t\t\t" + "\n"; + configStream += "\t\t\t\t\t\t" + dim.Split(']')[k].Split('^')[0].Replace("[", "").Replace("]", "").Trim() + "" + "\n"; + configStream += "\t\t\t\t\t\t" + dim.Split('^')[k + 1].Split(']')[0] + "" + "\n"; + configStream += "\t\t\t\t\t" + "\n"; + } + j++; + } + + configStream += "\t\t\t\t" + "\n"; + + configStream += "\t\t\t\t" + "\n"; + configStream += "\t\t\t\t\t" + values[i][j] + "" + "\n"; j++; + configStream += "\t\t\t\t\t" + values[i][j] + "" + "\n"; j++; + configStream += "\t\t\t\t\t" + values[i][j] + "" + "\n"; j++; + configStream += "\t\t\t\t\t" + values[i][j] + "" + "\n"; j++; + configStream += "\t\t\t\t" + "\n"; + + configStream += "\t\t\t\t" + values[i][j] + "" + "\n"; + + configStream += "\t\t\t" + "\n"; + + if (i == 0) + configStream += "\t\t" + "\n"; + else + configStream += "\t\t" + "\n"; + } + } + //time horizon + else if (i == 2) + { + for (int j = 0; j <= values[i].Count - 1; j++) + { + configStream += "\t" + "\n"; + + configStream += "\t" + "\n"; + + // Model must have a start time defined + configStream += "\t\t" + values[i][j] + "" + "\n"; j++; + + // This assumes that a if only one date-time is given, then it is the StartDateTime + DateTime dt; + if (DateTime.TryParse(values[i][j], out dt)) + { configStream += "\t\t" + values[i][j] + "" + "\n"; j++; } + + configStream += "\t\t" + values[i][j] + "" + "\n"; j++; + + configStream += "\t" + "\n"; + + } + + } + //model info + else if (i == 3) + { + for (int j = 0; j <= values[i].Count - 1; j++) + { + configStream += "\t" + "\n"; + configStream += "\t\t" + values[i][j] + "" + "\n"; id = values[i][j]; j++; + configStream += "\t\t" + values[i][j] + "" + "\n"; j++; + configStream += "\t" + "\n"; + } + } + + } + configStream += "\t" + "\n"; + + return configStream; + } + private void properties_savechanges(string filename) + { + DialogResult result = MessageBox.Show("Would you like to save the changes made to " + filename + " ?", "Important Question", MessageBoxButtons.YesNo); + + if (result == DialogResult.Yes) + { + properties_saveOmiOpr(filename); + + int length = filename.Split('\\').Length; + //string id = ((Oatc.OpenMI.Gui.Core.UIModel)_composition.Models[0]).OmiFilename; + + //check to see if an omi file has been modified + if (filename.Split('\\')[length - 1].Contains(".omi")) + { + for (int i = 0; i <= _composition.Models.Count - 1; i++) + { + //checl to see of the edited model is loaded in the composition + if (((Oatc.OpenMI.Gui.Core.UIModel)_composition.Models[i]).OmiFilename == filename) + { + + //---- reload the composition --- + + //-- get the current file path + string path = _composition.FilePath; + + if (path != null) + { + + //-- overwrite the original file + _composition.SaveToFile(path); + + + //-- clear the composition window + this.composition_clear(); + + //-- remove extra characters (in path) from the trigger + StreamReader sr = new StreamReader(path); + string contents = sr.ReadToEnd(); + sr.Close(); + + if (contents.Contains("Oatc.OpenMI.Gui.Trigger")) + { + int end = contents.IndexOf("Oatc.OpenMI.Gui.Trigger"); + int index = end - 1; + int count = 0; + while (contents[index] != '\"') + { count++; index--; } + contents = contents.Remove(end - count, count); + } + + //-- rewrite the opr with revised trigger info + StreamWriter sw = new StreamWriter(path); + sw.Write(contents); + sw.Close(); + + //-- reopen the opr file + this.OpenOprFile(_composition.FilePath); + } + else + { + //-- clear the composition window + this.composition_clear(); + + //-- reload model component + this.AddModel(filename); + } + break; + } + } + } + + } + if (result == DialogResult.No) + { + t.Visible = false; + _hasChanged = false; + } + + } + private void properties_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e) + { + //get column index + int index = e.ColumnIndex; + + if (index == 0) + { + //get new width for col 0 + int Column0Width = e.NewWidth; + + //get total width of the properties window + int TotalWidth = this.properties.Width; + + //get new column 1 width + int Column1Width = TotalWidth - Column0Width; + + //set new column 0 width + //this.properties.Columns[0].Width = Column0Width; + + //set column 1 width + this.properties.Columns[1].Width = Column1Width - 4; + + } + } + private void properties_MouseWheel(object sender, MouseEventArgs e) + { + //-- check if edit textbox is visable + if (t.Visible == true) + //-- set the textbox value + textbox_setproperty(); + } + private void properties_scroll(object sender, ScrollEventArgs e) + { + //-- check if edit textbox is visable + if (t.Visible == true) + //-- set the textbox value + textbox_setproperty(); + } + + //-- properties save button methods + private void save_click(object sender, EventArgs e) + { + string path = null; + //-- get the file path + if (_selectedModel != null) + path = _selectedModel.OmiFilename; + else + path = openmiFiles[_currentFileItem.SubItems[0].Text + "." + _currentFileItem.SubItems[2].Text]; + + + + + try + { + properties_savechanges(path); + } + catch (SystemException) + { + DialogResult failed = MessageBox.Show("HydroModeler encountered an error while saving. Please make sure that the values entered are in the correct format, and file exist at the paths specified. ", "Error", MessageBoxButtons.OK); + } + + } + + //-- textbox edit methods + private void textbox_lostfocus(object sender, EventArgs e) + { + textbox_setproperty(); + } + private void textbox_setproperty() + { + try + { + ListViewItem.ListViewSubItem sub = _currentLvi.SubItems[1]; + if (t.Text != _oldText) + { + this.properties.BeginUpdate(); + sub.Text = t.Text; + this.properties.EndUpdate(); + _hasChanged = true; + _Save.Enabled = true; + + } + t.Visible = false; + //re enable scrolling + this.properties.Scrollable = true; + } + catch (Exception) { } + } + private void textbox_keypress(object sender, KeyPressEventArgs e) + { + if (e.KeyChar == (char)Keys.Enter) + { + textbox_setproperty(); + } + } + + + #region Context Menu Handelers + private void ClickModel(object sender, EventArgs e) + { + string key = null; + ListViewItem lvi = null; + try + { + //get item from list view + lvi = this.fileList.SelectedItems[0]; + + //create the dictionary key + if (lvi.SubItems[2].Text == " ") + key = lvi.SubItems[0].Text; + else + key = lvi.SubItems[0].Text + "." + lvi.SubItems[2].Text; + + //check to see if the user clicked on a folder + if (Folders.ContainsKey(key)) + { + //get the folder path + string path = Folders[key]; + + //update the filelist + filelist_update(path); + + //update the ribbon textbox text + //((RibbonTextBox)((RibbonItemGroup)rps[2].Items[0]).Items[0]).TextBoxText = path; + ((TextEntryActionItem)rps["dirbox"]).Text = path; + + + //give the path to the run dialog box + _runBox._currentDirectory = path; + } + // if folder == ... + else if (Folders.ContainsKey(key.Substring(0, 3))) + { + //get the folder path + string path = Folders[key.Substring(0, 3)]; + + //update the filelist + filelist_update(path); + + //update the ribbon textbox text + //((RibbonTextBox)((RibbonItemGroup)rps[2].Items[0]).Items[0]).TextBoxText = path; + ((TextEntryActionItem)rps["dirbox"]).Text = path; + + _runBox._currentDirectory = path; + } + else if (lvi.SubItems[2].Text == "omi" || lvi.SubItems[2].Text == "opr") + { + //get the item path + string path = openmiFiles[key]; + + //add model or composition to the composition window + StopAllActions(); + if (lvi.SubItems[2].Text == "omi") + this.AddModel(path); + else + this.OpenOprFile(path); + } + } + catch (Exception) { } + } + void delete_Click(object sender, EventArgs e) + { + //authenticate the deletion + DialogResult result = MessageBox.Show("Are you sure you want to permanently remove " + _currentFileItem.SubItems[0].Text + "." + _currentFileItem.SubItems[2].Text + "?", "Important Question", MessageBoxButtons.YesNo); + + + if (result == DialogResult.Yes) + { + //delete file + File.Delete(openmiFiles[_currentFileItem.SubItems[0].Text + "." + _currentFileItem.SubItems[2].Text]); + + //clear the composition window if the deleted item is currently loaded + if (openmiFiles[_currentFileItem.SubItems[0].Text + "." + _currentFileItem.SubItems[2].Text] == _composition.FilePath) + composition_clear(); + + //refresh the file browser + //this.filelist_update(((RibbonTextBox)((RibbonItemGroup)rps[2].Items[0]).Items[0]).TextBoxText); + this.filelist_update(((TextEntryActionItem)rps["dirbox"]).Text); + } + } + #endregion + + private void InitializeComponent() + { + this.SuspendLayout(); + // + // mainTab + // + this.Name = "mainTab"; + this.Size = new System.Drawing.Size(229, 211); + this.ResumeLayout(false); + + } + + #endregion + + + //public void SaveModelOMI(string omiPath) + //{ + // //-- loop through all models in composition + // for (int i = 0; i <= _composition.Models.Count - 1; i++) + // { + // //-- find model that matches this omi path + // if (((UIModel)_composition.Models[i]).OmiFilename == omiPath) + // { + // //-- save omi + // _modelOmi.Add((UIModel)_composition.Models[i], omiPath); + // break; + // } + // } + //} + + //public void RemoveModelOMI(UIModel model) + //{ + // //-- remove omi + // _modelOmi.Remove(model); + //} + + } + + public class UiLink + { + public int linkID; + public string provider; + public string accepter; + public string provider_elementset; + public string provider_quantity; + public string accepter_elementset; + public string accepter_quantity; + public string dataoperation; + + public UiLink( int linkID, string provider, string accepter, string provider_elementset, + string provider_quantity, string accepter_elementset, + string accepter_quantity, string dataoperation) + { + //set internal variables + this.linkID = linkID; + this.provider = provider; + this.accepter = accepter; + this.provider_elementset = provider_elementset; + this.provider_quantity = provider_quantity; + this.accepter_elementset = accepter_elementset; + this.accepter_quantity = accepter_quantity; + this.dataoperation = dataoperation ; + + } + + } + + + /// + /// This class is necessary to create and eventhandler for listview scrolling + /// + /// + public class FileListView : ListView + { + public FileListView() + { + SetStyle(ControlStyles.OptimizedDoubleBuffer|ControlStyles.AllPaintingInWmPaint|ControlStyles.ResizeRedraw, true); + } + } + + public class MyListView : ListView + { + public MyListView() + { + SetStyle(ControlStyles.OptimizedDoubleBuffer|ControlStyles.AllPaintingInWmPaint|ControlStyles.ResizeRedraw, true); + } + + private const int WM_HSCROLL = 0x114; + private const int WM_VSCROLL = 0x115; + public event ScrollEventHandler Scroll; + protected virtual void OnScroll(ScrollEventArgs e) + { + ScrollEventHandler handler = this.Scroll; + if (handler != null) handler(this, e); + } + protected override void WndProc(ref Message m) + { + base.WndProc(ref m); + if (m.Msg == WM_VSCROLL) + { + //vertical scrolling + OnScroll(new ScrollEventArgs((ScrollEventType)(m.WParam.ToInt32() & 0xffff), 0)); + } + else if (m.Msg == WM_HSCROLL) + { + //horizontal scrolling + } + } + } + + +} \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/MainTab.resx b/Source/Plugins/Plugins.HydroModeler/MainTab.resx new file mode 100644 index 00000000..ff31a6db --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/MainTab.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/Source/Plugins/Plugins.HydroModeler/ModelDialog.cs b/Source/Plugins/Plugins.HydroModeler/ModelDialog.cs new file mode 100644 index 00000000..eede5e39 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/ModelDialog.cs @@ -0,0 +1,516 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Collections; +using System.Diagnostics; +using Oatc.OpenMI.Gui.Controls; +using Oatc.OpenMI.Gui.Core; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard; + +namespace Plugins.HydroModeler +{ + /// + /// Summary description for ModelDialog. + /// + public class ModelDialog : System.Windows.Forms.Form + { + private System.Windows.Forms.ComboBox comboBoxModel; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.PropertyGrid propertyGrid; + private System.Windows.Forms.Button buttonClose; + private ExchangeItemSelector outputExchangeItemSelector; + private ExchangeItemSelector inputExchangeItemSelector; + private System.Windows.Forms.GroupBox groupBoxProperties; + private System.Windows.Forms.Button buttonViewElementSet; + private System.Windows.Forms.GroupBox groupBoxOutputExchnageItems; + private System.Windows.Forms.Panel panelTop; + private System.Windows.Forms.Panel panelBottom; + private System.Windows.Forms.GroupBox groupBoxInputExchangeItems; + private System.Windows.Forms.Splitter splitterVertical; + private System.Windows.Forms.Splitter splitterHorizontal; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + /// + /// Creates a new instance of ModelDialog dialog. + /// + public ModelDialog() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // + // TODO: Add any constructor code after InitializeComponent call + // + + _elementSetViewer = new Oatc.OpenMI.Gui.ConfigurationEditor.ElementSetViewer(); + //_elementSetViewer.ResizeEnd += new EventHandler(elementSetViewer_ResizeEnd); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(ModelDialog)); + this.comboBoxModel = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.propertyGrid = new System.Windows.Forms.PropertyGrid(); + this.outputExchangeItemSelector = new Oatc.OpenMI.Gui.Controls.ExchangeItemSelector(); + this.groupBoxOutputExchnageItems = new System.Windows.Forms.GroupBox(); + this.inputExchangeItemSelector = new Oatc.OpenMI.Gui.Controls.ExchangeItemSelector(); + this.groupBoxProperties = new System.Windows.Forms.GroupBox(); + this.buttonViewElementSet = new System.Windows.Forms.Button(); + this.buttonClose = new System.Windows.Forms.Button(); + this.panelTop = new System.Windows.Forms.Panel(); + this.panelBottom = new System.Windows.Forms.Panel(); + this.groupBoxInputExchangeItems = new System.Windows.Forms.GroupBox(); + this.splitterVertical = new System.Windows.Forms.Splitter(); + this.splitterHorizontal = new System.Windows.Forms.Splitter(); + this.groupBoxOutputExchnageItems.SuspendLayout(); + this.groupBoxProperties.SuspendLayout(); + this.panelTop.SuspendLayout(); + this.panelBottom.SuspendLayout(); + this.groupBoxInputExchangeItems.SuspendLayout(); + this.SuspendLayout(); + // + // comboBoxModel + // + this.comboBoxModel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.comboBoxModel.Location = new System.Drawing.Point(60, 4); + this.comboBoxModel.Name = "comboBoxModel"; + this.comboBoxModel.Size = new System.Drawing.Size(460, 21); + this.comboBoxModel.TabIndex = 0; + this.comboBoxModel.SelectedIndexChanged += new System.EventHandler(this.comboBoxModel_SelectedIndexChanged); + this.comboBoxModel.Enter += new System.EventHandler(this.comboBoxModel_Enter); + // + // label1 + // + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.label1.Location = new System.Drawing.Point(8, 8); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(48, 12); + this.label1.TabIndex = 3; + this.label1.Text = "Model:"; + // + // propertyGrid + // + this.propertyGrid.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.propertyGrid.CommandsVisibleIfAvailable = true; + this.propertyGrid.Cursor = System.Windows.Forms.Cursors.HSplit; + this.propertyGrid.LargeButtons = false; + this.propertyGrid.LineColor = System.Drawing.SystemColors.ScrollBar; + this.propertyGrid.Location = new System.Drawing.Point(8, 16); + this.propertyGrid.Name = "propertyGrid"; + this.propertyGrid.Size = new System.Drawing.Size(258, 272); + this.propertyGrid.TabIndex = 28; + this.propertyGrid.Text = "propertyGrid1"; + this.propertyGrid.ViewBackColor = System.Drawing.SystemColors.Window; + this.propertyGrid.ViewForeColor = System.Drawing.SystemColors.WindowText; + // + // outputExchangeItemSelector + // + this.outputExchangeItemSelector.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.outputExchangeItemSelector.Location = new System.Drawing.Point(8, 16); + this.outputExchangeItemSelector.Name = "outputExchangeItemSelector"; + this.outputExchangeItemSelector.Size = new System.Drawing.Size(232, 136); + this.outputExchangeItemSelector.TabIndex = 27; + this.outputExchangeItemSelector.SelectionChanged += new System.EventHandler(this.outputExchangeItemSelector_SelectionChanged); + // + // groupBoxOutputExchnageItems + // + this.groupBoxOutputExchnageItems.Controls.Add(this.outputExchangeItemSelector); + this.groupBoxOutputExchnageItems.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBoxOutputExchnageItems.Location = new System.Drawing.Point(8, 28); + this.groupBoxOutputExchnageItems.Name = "groupBoxOutputExchnageItems"; + this.groupBoxOutputExchnageItems.Size = new System.Drawing.Size(248, 157); + this.groupBoxOutputExchnageItems.TabIndex = 29; + this.groupBoxOutputExchnageItems.TabStop = false; + this.groupBoxOutputExchnageItems.Text = " Output Exchange Items"; + // + // inputExchangeItemSelector + // + this.inputExchangeItemSelector.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.inputExchangeItemSelector.Location = new System.Drawing.Point(8, 16); + this.inputExchangeItemSelector.Name = "inputExchangeItemSelector"; + this.inputExchangeItemSelector.Size = new System.Drawing.Size(232, 144); + this.inputExchangeItemSelector.TabIndex = 1; + this.inputExchangeItemSelector.SelectionChanged += new System.EventHandler(this.inputExchangeItemSelector_SelectionChanged); + // + // groupBoxProperties + // + this.groupBoxProperties.Controls.Add(this.propertyGrid); + this.groupBoxProperties.Controls.Add(this.buttonViewElementSet); + this.groupBoxProperties.Dock = System.Windows.Forms.DockStyle.Right; + this.groupBoxProperties.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.groupBoxProperties.Location = new System.Drawing.Point(260, 28); + this.groupBoxProperties.Name = "groupBoxProperties"; + this.groupBoxProperties.Size = new System.Drawing.Size(272, 325); + this.groupBoxProperties.TabIndex = 30; + this.groupBoxProperties.TabStop = false; + this.groupBoxProperties.Text = "ElementSet properties"; + // + // buttonViewElementSet + // + this.buttonViewElementSet.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonViewElementSet.Enabled = false; + this.buttonViewElementSet.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonViewElementSet.Location = new System.Drawing.Point(12, 293); + this.buttonViewElementSet.Name = "buttonViewElementSet"; + this.buttonViewElementSet.Size = new System.Drawing.Size(108, 24); + this.buttonViewElementSet.TabIndex = 33; + this.buttonViewElementSet.Text = "ElementSet viewer"; + this.buttonViewElementSet.Click += new System.EventHandler(this.buttonViewElementSet_Click); + // + // buttonClose + // + this.buttonClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClose.Location = new System.Drawing.Point(428, 4); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(88, 28); + this.buttonClose.TabIndex = 31; + this.buttonClose.Text = "Close"; + this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); + // + // panelTop + // + this.panelTop.Controls.Add(this.label1); + this.panelTop.Controls.Add(this.comboBoxModel); + this.panelTop.Dock = System.Windows.Forms.DockStyle.Top; + this.panelTop.Location = new System.Drawing.Point(8, 0); + this.panelTop.Name = "panelTop"; + this.panelTop.Size = new System.Drawing.Size(524, 28); + this.panelTop.TabIndex = 32; + // + // panelBottom + // + this.panelBottom.Controls.Add(this.buttonClose); + this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panelBottom.Location = new System.Drawing.Point(8, 353); + this.panelBottom.Name = "panelBottom"; + this.panelBottom.Size = new System.Drawing.Size(524, 36); + this.panelBottom.TabIndex = 33; + // + // groupBoxInputExchangeItems + // + this.groupBoxInputExchangeItems.Controls.Add(this.inputExchangeItemSelector); + this.groupBoxInputExchangeItems.Dock = System.Windows.Forms.DockStyle.Bottom; + this.groupBoxInputExchangeItems.Location = new System.Drawing.Point(8, 189); + this.groupBoxInputExchangeItems.Name = "groupBoxInputExchangeItems"; + this.groupBoxInputExchangeItems.Size = new System.Drawing.Size(248, 164); + this.groupBoxInputExchangeItems.TabIndex = 0; + this.groupBoxInputExchangeItems.TabStop = false; + this.groupBoxInputExchangeItems.Text = " Input Exchange Items"; + // + // splitterVertical + // + this.splitterVertical.Dock = System.Windows.Forms.DockStyle.Right; + this.splitterVertical.Location = new System.Drawing.Point(256, 28); + this.splitterVertical.MinExtra = 150; + this.splitterVertical.MinSize = 150; + this.splitterVertical.Name = "splitterVertical"; + this.splitterVertical.Size = new System.Drawing.Size(4, 325); + this.splitterVertical.TabIndex = 34; + this.splitterVertical.TabStop = false; + // + // splitterHorizontal + // + this.splitterHorizontal.Dock = System.Windows.Forms.DockStyle.Bottom; + this.splitterHorizontal.Location = new System.Drawing.Point(8, 185); + this.splitterHorizontal.MinExtra = 150; + this.splitterHorizontal.MinSize = 150; + this.splitterHorizontal.Name = "splitterHorizontal"; + this.splitterHorizontal.Size = new System.Drawing.Size(248, 4); + this.splitterHorizontal.TabIndex = 35; + this.splitterHorizontal.TabStop = false; + // + // ModelDialog + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.ClientSize = new System.Drawing.Size(540, 397); + this.Controls.Add(this.groupBoxOutputExchnageItems); + this.Controls.Add(this.splitterHorizontal); + this.Controls.Add(this.groupBoxInputExchangeItems); + this.Controls.Add(this.splitterVertical); + this.Controls.Add(this.groupBoxProperties); + this.Controls.Add(this.panelTop); + this.Controls.Add(this.panelBottom); + this.DockPadding.Bottom = 8; + this.DockPadding.Left = 8; + this.DockPadding.Right = 8; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(500, 400); + this.Name = "ModelDialog"; + this.ShowInTaskbar = false; + this.Text = "Model properties"; + this.Resize += new System.EventHandler(this.ModelDialog_Resize); + this.groupBoxOutputExchnageItems.ResumeLayout(false); + this.groupBoxProperties.ResumeLayout(false); + this.panelTop.ResumeLayout(false); + this.panelBottom.ResumeLayout(false); + this.groupBoxInputExchangeItems.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + + private ArrayList _uiModels; + private string _loadedModelID; + + private Oatc.OpenMI.Gui.ConfigurationEditor.ElementSetViewer _elementSetViewer; + + /// + /// Populates this dialog with models. + /// + /// List of models, ie. UIModel objects. + /// ID of the model to be selected. + public void PopulateDialog( ArrayList uiModels, string modelID ) + { + _uiModels = uiModels; + _loadedModelID = null; + + string modelIdToSelect = null; + + comboBoxModel.Items.Clear(); + + for( int i=0; i + /// Populates this dialog with models. + ///
    + /// List of models, ie. UIModel objects. + public void PopulateDialog( ArrayList uiModels ) + { + PopulateDialog( uiModels, null ); + } + + + /// + /// Selects one model to be shown in dialog. + /// + /// ID of model to be selected. + public void SelectModel( string modelID ) + { + if( modelID == null ) + { + outputExchangeItemSelector.PopulateExchangeItemTree( new OutputExchangeItem[0], false ); + inputExchangeItemSelector.PopulateExchangeItemTree( new InputExchangeItem[0], false ); + _loadedModelID = null; + } + else + { + // find model by ID + int modelIndex = -1; + for( int i=0; i=_uiModels.Count ) + { + // model with modelID wasn't found + Debug.Assert( false ); + SelectModel( null ); + return; + } + + UIModel selectedModel = (UIModel)_uiModels[ modelIndex ]; + + Debug.Assert( selectedModel.ModelID == modelID ); + + // load exchange items (if they aren't already loaded) + if( modelID != _loadedModelID ) + { + IExchangeItem[] outputExchangeItems = new IExchangeItem[ selectedModel.LinkableComponent.OutputExchangeItemCount ]; + for (int i = 0; i < selectedModel.LinkableComponent.OutputExchangeItemCount; i++) + outputExchangeItems[i] = selectedModel.LinkableComponent.GetOutputExchangeItem( i ); + outputExchangeItemSelector.PopulateExchangeItemTree( outputExchangeItems, false ); + + IExchangeItem[] inputExchangeItems = new IExchangeItem[ selectedModel.LinkableComponent.InputExchangeItemCount ]; + for (int i = 0; i < selectedModel.LinkableComponent.InputExchangeItemCount; i++) + inputExchangeItems[i] = selectedModel.LinkableComponent.GetInputExchangeItem(i); + inputExchangeItemSelector.PopulateExchangeItemTree( inputExchangeItems, false ); + + _loadedModelID = selectedModel.ModelID; + } + + // select model also in comboBox + // this can cause this method is reentered + comboBoxModel.SelectedIndex = modelIndex; + + //labelInfo.Text = "Model " + selectedModel.ModelID; + + // show properties of this model + PropertyGridSelectObject( selectedModel.LinkableComponent ); + } + } + + private void PropertyGridSelectObject( object obj ) + { + buttonViewElementSet.Enabled = false; + + // show properties of selected object (if any) + if( obj!=null ) + { + propertyGrid.SelectedObject = Oatc.OpenMI.Gui.Controls.PropertyManager.ConstructPropertyManager( obj, true ); + + // Modify text in groupBoxProperties + if( obj is IQuantity ) + groupBoxProperties.Text = " Quantity properties"; + else if( obj is IElementSet ) + { + buttonViewElementSet.Enabled = true; + groupBoxProperties.Text = " ElementSet properties"; + } + else if( obj is IDataOperation ) + groupBoxProperties.Text = " DataOperation properties"; + else if( obj is ILinkableComponent ) + groupBoxProperties.Text = " LinkableComponent properties"; + else + { + groupBoxProperties.Text = " Properties"; + Debug.Assert( false ); + } + } + else + { + // no object is selected + propertyGrid.SelectedObject = null; + groupBoxProperties.Text = " Properties"; + } + + } + + + private void comboBoxModel_SelectedIndexChanged(object sender, System.EventArgs e) + { + if( comboBoxModel.SelectedIndex < 0 ) + SelectModel( null ); + else + SelectModel( (string)comboBoxModel.Items[comboBoxModel.SelectedIndex] ); + } + + private void comboBoxModel_Enter(object sender, System.EventArgs e) + { + comboBoxModel_SelectedIndexChanged( sender, e ); + } + + + private void outputExchangeItemSelector_SelectionChanged(object sender, System.EventArgs e) + { + PropertyGridSelectObject( outputExchangeItemSelector.GetSelectedObject() ); + } + + private void inputExchangeItemSelector_SelectionChanged(object sender, System.EventArgs e) + { + PropertyGridSelectObject( inputExchangeItemSelector.GetSelectedObject() ); + } + + private void buttonClose_Click(object sender, System.EventArgs e) + { + Close(); + } + + private void buttonViewElementSet_Click(object sender, System.EventArgs e) + { + Debug.Assert( buttonViewElementSet.Enabled ); + + if( propertyGrid.SelectedObject!=null ) + if( ((Oatc.OpenMI.Gui.Controls.PropertyManager)propertyGrid.SelectedObject).Tag is IElementSet ) + { + ArrayList elementSets = new ArrayList(); + elementSets.Add( ((Oatc.OpenMI.Gui.Controls.PropertyManager)propertyGrid.SelectedObject).Tag ); + _elementSetViewer.PopulateDialog( elementSets ); + _elementSetViewer.ShowDialog(); + } + } + + + private void ModelDialog_Resize(object sender, System.EventArgs e) + { + if( groupBoxInputExchangeItems.Width < 100 ) + groupBoxInputExchangeItems.Width = 100; + if( groupBoxInputExchangeItems.Height < 100 ) + groupBoxInputExchangeItems.Height = 100; + + if( groupBoxOutputExchnageItems.Width < 100 ) + groupBoxOutputExchnageItems.Width = 100; + if( groupBoxOutputExchnageItems.Height < 100 ) + groupBoxOutputExchnageItems.Height = 100; + + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/ModelDialog.resx b/Source/Plugins/Plugins.HydroModeler/ModelDialog.resx new file mode 100644 index 00000000..67b65921 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/ModelDialog.resx @@ -0,0 +1,716 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + True + + + Private + + + 4, 4 + + + True + + + Private + + + False + + + True + + + Private + + + 4, 4 + + + True + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + (Default) + + + False + + + False + + + 4, 4 + + + True + + + 80 + + + True + + + ModelDialog + + + Private + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Oatc.OpenMI.Gui.ConfigurationEditor.csproj b/Source/Plugins/Plugins.HydroModeler/Oatc.OpenMI.Gui.ConfigurationEditor.csproj new file mode 100644 index 00000000..2e6e33de --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Oatc.OpenMI.Gui.ConfigurationEditor.csproj @@ -0,0 +1,174 @@ + + + Local + 8.0.50727 + 2.0 + {5990D533-2648-49CB-A3F2-A31EC8F03D59} + Debug + AnyCPU + OmiEd.ico + + + Oatc.OpenMI.Gui.ConfigurationEditor + + + JScript + Grid + IE50 + false + WinExe + Oatc.OpenMI.Gui.ConfigurationEditor + OnBuildSuccess + + + + + + + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + bin/Release/Oatc.OpenMI.Gui.xml + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + Form + + + Code + + + Form + + + Form + + + Form + + + Form + + + Form + + + AboutBox.cs + Designer + + + ConnectionDialog.cs + Designer + + + MainForm.cs + Designer + + + ModelDialog.cs + Designer + + + RunBox.cs + Designer + + + RunProperties.cs + Designer + + + org.OpenMI.Tools.GUI.ConfigurationEditor + + + org.OpenMI.Tools.GUI.ConfigurationEditor + + + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + + + {B7BE8C7F-0679-4022-81A5-6A314C058429} + Oatc.OpenMI.Sdk.DevelopmentSupport + + + {FC8850E1-3C5A-4B6D-8012-A7411B06F863} + Oatc.OpenMI.Gui.Controls + + + {5ED7C71D-E89A-41F7-8B34-54C0C099412C} + Oatc.OpenMI.Gui.Core + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/OmiEd.ico b/Source/Plugins/Plugins.HydroModeler/OmiEd.ico new file mode 100644 index 00000000..5ef2c3dc Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/OmiEd.ico differ diff --git a/Source/Plugins/Plugins.HydroModeler/Plugins.HydroModeler.csproj b/Source/Plugins/Plugins.HydroModeler/Plugins.HydroModeler.csproj new file mode 100644 index 00000000..76c0c3b4 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Plugins.HydroModeler.csproj @@ -0,0 +1,288 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {D26B704D-1FC9-4040-A29D-21FB8707ECE1} + Library + Properties + Plugins.HydroModeler + Plugins.HydroModeler + v4.0 + 512 + + + 3.5 + + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\Plugins.HydroModeler\ + DEBUG;TRACE + prompt + 4 + ..\..\..\Binaries\Plugins\Plugins.HydroModeler\Plugins.HydroModeler.xml + 1591 + + + none + true + ..\..\..\Binaries\Plugins\Plugins.HydroModeler\ + TRACE + prompt + 4 + true + + + true + ..\..\..\Binaries\Plugins\Plugins.HydroModeler\ + DEBUG;TRACE + ..\..\..\Binaries\Plugins\Plugins.HydroModeler\Plugins.HydroModeler.xml + 1591 + full + x86 + ..\..\..\Binaries\Plugins\Plugins.HydroModeler\Plugins.HydroModeler.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + true + ..\..\..\Binaries\Plugins\Plugins.HydroModeler\ + TRACE + true + x86 + ..\..\..\Binaries\Plugins\Plugins.HydroModeler\Plugins.HydroModeler.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + + Form + + + Form + + + Form + + + + + True + True + Resources.resx + + + Form + + + Form + + + UserControl + + + MainTab.cs + + + True + True + Settings.settings + + + + + AboutBox.cs + Designer + + + ConnectionDialog.cs + Designer + + + MainTab.cs + Designer + + + ModelDialog.cs + Designer + + + Designer + ResXFileCodeGenerator + Resources.Designer.cs + + + RunBox.cs + Designer + + + RunProperties.cs + Designer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + + + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + + + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + + + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + + + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + + + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + + + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + + + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + + + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + + + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + + + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + + + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + + + ..\..\..\Binaries\HydroDesktop.Configuration.dll + False + + + ..\..\..\Binaries\HydroDesktop.Help.dll + False + + + ..\..\..\Binaries\HydroDesktop.Interfaces.dll + False + + + Utilities\OpenMI\Oatc.OpenMI.Gui.Controls.dll + + + False + Utilities\OpenMI\Oatc.OpenMI.Gui.Core.dll + + + Utilities\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + Utilities\OpenMI\Oatc.OpenMI.Sdk.Buffer.dll + + + Utilities\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + Utilities\OpenMI\Oatc.OpenMI.Sdk.Spatial.dll + + + Utilities\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + Utilities\OpenMI\OpenMI.Standard.dll + + + + + + + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + + + + xcopy.exe "$(ProjectDir)Examples\HydroModeler_example_configurations" "$(TargetDir)HydroModeler_example_configurations\" /e /y +cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack "Plugins.HydroModeler.csproj" +move /y "*.nupkg" "$(TargetDir)" + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Plugins.HydroModeler.nuspec b/Source/Plugins/Plugins.HydroModeler/Plugins.HydroModeler.nuspec new file mode 100644 index 00000000..1ee6f684 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Plugins.HydroModeler.nuspec @@ -0,0 +1,19 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/license + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/cc7votd + false + $description$ + + en-US + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Program.cs b/Source/Plugins/Plugins.HydroModeler/Program.cs new file mode 100644 index 00000000..beca37c6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Program.cs @@ -0,0 +1,426 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Controls.Docking; +using DotSpatial.Controls.Header; +using HydroDesktop.Help; +using HydroDesktop.Common; + +namespace Plugins.HydroModeler +{ + public class Program : Extension + { + #region Variables + + // Local variables + mainTab hydroModelerControl; + private string ImagePath = Path.GetDirectoryName(Assembly.GetAssembly(typeof(Program)).CodeBase).Remove(0,6) + "/icons"; + private string _defaultPath = HydroModeler.Properties.Resources.startpath; + private readonly string _localHelpUri = HydroModeler.Settings.Default.localHelpUri; + private RootItem root = null; + private bool ignoreRootSelected = false; //used by synchronizing between ribbon and docking + + // plugin info + private const string _pluginName = "HydroModeler"; + private const string kHydroModelerDock = "kHydroModelerDock"; + private const string KHydroModeler = "RootRibbonHydroModeler"; + + + private Dictionary rps_dict = new Dictionary(); + #endregion + + + #region IExtension Members + + /// + /// Occurs when the HydroModeler plugin is unloaded + /// + public override void Deactivate() + { + //detach events + App.DockManager.ActivePanelChanged -= HM_Panel_Selected; + App.HeaderControl.RootItemSelected -= HeaderControl_RootItemSelected; + + // Remove ribbon tab + App.HeaderControl.RemoveAll(); + + // Remove the plugin panel + //App.DockManager.Remove(kHydroModelerDock); + + // this line ensures that 'enabled' is set to false + base.Deactivate(); + } + + /// + /// Occurs when the HydroModeler plugin is loaded + /// + public override void Activate() + { + root = new RootItem(KHydroModeler, _pluginName); + root.SortOrder = 150; + root.Visible = true; + App.HeaderControl.Add(root); + + // add buttons to the ribbon + rps_dict = BuildRibbonPanel(); + + // Add a dockable panel + Add_HM_Panel(); + + // activate plugin + base.Activate(); + } + + void Add_HM_Panel() + { + // Add a dockable panel + hydroModelerControl = new mainTab(App, rps_dict, ((TextEntryActionItem)rps_dict["dirbox"]).Text); + var hmDockPanel = new DockablePanel(kHydroModelerDock, _pluginName, hydroModelerControl, DockStyle.Fill); + hmDockPanel.DefaultSortOrder = 1000; //HydroModeler should be the last dockable panel by default + App.DockManager.Add(hmDockPanel); + + // set the initial text for the dirbox + try + { + Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory); + string start_path = Path.GetFullPath(HydroModeler.Properties.Resources.startpath); + if (Directory.Exists(start_path)) + ((TextEntryActionItem)rps_dict["dirbox"]).Text = start_path; + else + ((TextEntryActionItem)rps_dict["dirbox"]).Text = "C:\\"; + } + catch + { + ((TextEntryActionItem)rps_dict["dirbox"]).Text = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Plugins\\HydroModeler\\"); //C:\\"; + } + + // update filelist + string text = ((TextEntryActionItem)rps_dict["dirbox"]).Text; + hydroModelerControl.filelist_update(text); + + // set pan mouse image + hydroModelerControl.Image_Path = ImagePath; + + // add event for when HM panel is selected + App.DockManager.ActivePanelChanged += new EventHandler(HM_Panel_Selected); + + App.HeaderControl.RootItemSelected += new EventHandler(HeaderControl_RootItemSelected); + } + + void HeaderControl_RootItemSelected(object sender, RootItemEventArgs e) + { + /* if (ignoreRootSelected) return; + + if (e.SelectedRootKey == "RootRibbonHydroModeler") + { + App.DockManager.SelectPanel(kHydroModelerDock); + + //hide panels + App.DockManager.HidePanel("kLegend"); + App.DockManager.HidePanel(HydroDesktop.Common.SharedConstants.SeriesViewKey); + } + else if (e.SelectedRootKey == SharedConstants.SearchRootkey || e.SelectedRootKey == HeaderControl.HomeRootItemKey) + { + App.DockManager.SelectPanel("kLegend"); + App.DockManager.ShowPanel(HydroDesktop.Common.SharedConstants.SeriesViewKey); + } + else if (e.SelectedRootKey == "kHydroGraph_01" || e.SelectedRootKey == SharedConstants.TableRootKey || e.SelectedRootKey == "kHydroEditView" || e.SelectedRootKey == "kHydroR") + { + App.DockManager.SelectPanel(HydroDesktop.Common.SharedConstants.SeriesViewKey); + App.DockManager.ShowPanel("kLegend"); + } + */ + } + #endregion + + #region IMapPlugin Members + + private Dictionary BuildRibbonPanel() + { + + //Create a new Ribbon Panel + List btns = new List(); + Dictionary rps = new Dictionary(); + + #region menu panel + //Open Composition + var rb = new SimpleActionItem("Open", OpenComp_Click); + rb.ToolTipText = "Open a saved model configuration"; + rb.LargeImage = HydroModeler.Properties.Resources.open.GetThumbnailImage(32, 32, null, IntPtr.Zero); + rb.SmallImage = HydroModeler.Properties.Resources.open.GetThumbnailImage(20, 20, null, IntPtr.Zero); + rb.GroupCaption = "Model"; + rb.RootKey = KHydroModeler; + App.HeaderControl.Add(rb); + btns.Add(rb); + rps.Add("open", rb); + + //save + rb = new SimpleActionItem("Save", Save_Click); + rb.ToolTipText = "Save model configuration"; + rb.LargeImage = HydroModeler.Properties.Resources.save.GetThumbnailImage(32, 32, null, IntPtr.Zero); + rb.SmallImage = HydroModeler.Properties.Resources.save.GetThumbnailImage(20, 20, null, IntPtr.Zero); + rb.GroupCaption = "Model"; + rb.RootKey = KHydroModeler; + App.HeaderControl.Add(rb); + btns.Add(rb); + rps.Add("save", rb); + + //save as + rb = new SimpleActionItem("Save As...", SaveAs_Click); + rb.ToolTipText = "Save model configuration as..."; + rb.LargeImage = HydroModeler.Properties.Resources.saveas.GetThumbnailImage(32, 32, null, IntPtr.Zero); + rb.SmallImage = HydroModeler.Properties.Resources.saveas.GetThumbnailImage(20, 20, null, IntPtr.Zero); + rb.GroupCaption = "Model"; + rb.RootKey = KHydroModeler; + App.HeaderControl.Add(rb); + btns.Add(rb); + rps.Add("saveas", rb); + + #endregion + + #region model_panel + //Add Model + rb = new SimpleActionItem("Add Component", AddModel_Click); + rb.ToolTipText = "Click to add a model to the composition"; + rb.LargeImage = HydroModeler.Properties.Resources.add_model.GetThumbnailImage(32, 32, null, IntPtr.Zero); + rb.SmallImage = HydroModeler.Properties.Resources.add_model.GetThumbnailImage(20, 20, null, IntPtr.Zero); + rb.GroupCaption = "Composition"; + rb.RootKey = KHydroModeler; + App.HeaderControl.Add(rb); + btns.Add(rb); + rps.Add("component", rb); + + //Add Trigger + rb = new SimpleActionItem("Add Trigger", AddTrigger_Click); + rb.ToolTipText = "Click to add a trigger to the composition"; + rb.LargeImage = HydroModeler.Properties.Resources.trigger.GetThumbnailImage(32, 32, null, IntPtr.Zero); + rb.SmallImage = HydroModeler.Properties.Resources.trigger.GetThumbnailImage(20, 20, null, IntPtr.Zero); + rb.GroupCaption = "Composition"; + rb.RootKey = KHydroModeler; + App.HeaderControl.Add(rb); + btns.Add(rb); + rps.Add("trigger", rb); + + //Add Connection + rb = new SimpleActionItem("Add Connection", AddConnection_Click); + rb.ToolTipText = "Click to add a connection to the composition"; + rb.LargeImage = HydroModeler.Properties.Resources.add_connection.GetThumbnailImage(32, 32, null, IntPtr.Zero); + rb.SmallImage = HydroModeler.Properties.Resources.add_connection.GetThumbnailImage(20, 20, null, IntPtr.Zero); + rb.GroupCaption = "Composition"; + rb.RootKey = KHydroModeler; + App.HeaderControl.Add(rb); + btns.Add(rb); + rps.Add("connection", rb); + + //Run + rb = new SimpleActionItem("Run", Run_Click); + rb.ToolTipText = "Run model simulation"; + rb.LargeImage = HydroModeler.Properties.Resources.run.GetThumbnailImage(32, 32, null, IntPtr.Zero); + rb.SmallImage = HydroModeler.Properties.Resources.run.GetThumbnailImage(20, 20, null, IntPtr.Zero); + rb.GroupCaption = "Composition"; + rb.RootKey = KHydroModeler; + App.HeaderControl.Add(rb); + btns.Add(rb); + rps.Add("run", rb); + + //Clear Composition + rb = new SimpleActionItem("Clear Composition", this.clear_Click); + rb.ToolTipText = "Clear all items from the model canvas"; + rb.LargeImage = HydroModeler.Properties.Resources.delete_icon.GetThumbnailImage(32, 32, null, IntPtr.Zero); + rb.SmallImage = HydroModeler.Properties.Resources.delete_icon.GetThumbnailImage(20, 20, null, IntPtr.Zero); + rb.GroupCaption = "Composition"; + rb.RootKey = KHydroModeler; + App.HeaderControl.Add(rb); + btns.Add(rb); + rps.Add("clear", rb); + + #endregion + + #region dir_panel + var rtb = new TextEntryActionItem(); + rtb.ToolTipText = "The current working directory"; + rtb.Width = 300; + rtb.GroupCaption = "Directory"; + rtb.RootKey = KHydroModeler; + rtb.Caption = "Current Path: "; + rtb.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(rtb_PropertyChanged); + App.HeaderControl.Add(rtb); + rps.Add("dirbox", rtb); + #endregion + + #region view_panel + rb = new SimpleActionItem("Pan", this.set_pan); + rb.ToolTipText = "Click to activate pan cursor on the model canvas"; + rb.LargeImage = HydroModeler.Properties.Resources.pan1.GetThumbnailImage(32, 32, null, IntPtr.Zero); + rb.SmallImage = HydroModeler.Properties.Resources.pan1.GetThumbnailImage(20, 20, null, IntPtr.Zero); + rb.GroupCaption = "View"; + rb.ToggleGroupKey = "View"; + rb.RootKey = KHydroModeler; + App.HeaderControl.Add(rb); + btns.Add(rb); + rps.Add("pan", rb); + + rb = new SimpleActionItem("Select", this.set_select); + rb.ToolTipText = "Click to activate the select cursor on the model canvas"; + rb.LargeImage = HydroModeler.Properties.Resources.select.GetThumbnailImage(32, 32, null, IntPtr.Zero); + rb.SmallImage = HydroModeler.Properties.Resources.select.GetThumbnailImage(20, 20, null, IntPtr.Zero); + rb.GroupCaption = "View"; + rb.ToggleGroupKey = "View"; + rb.RootKey = KHydroModeler; + App.HeaderControl.Add(rb); + btns.Add(rb); + rps.Add("select", rb); + + #endregion + + #region help_panel + rb = new SimpleActionItem("", this.getHelp); + rb.ToolTipText = "Click to launch the HydroModeler help documentation"; + rb.SmallImage = HydroModeler.Properties.Resources.help.GetThumbnailImage(20, 20, null, IntPtr.Zero); + rb.GroupCaption = "Help"; + rb.RootKey = KHydroModeler; + App.HeaderControl.Add(rb); + btns.Add(rb); + rps.Add("help", rb); + #endregion + + return rps; + } + + void rtb_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + TextEntryActionItem te = (TextEntryActionItem)rps_dict["dirbox"]; + ribbonTextBox_textChanged(te); + } + + void reloadButtons(bool run, bool connection) + { + + //enable or disable run button + ((SimpleActionItem)rps_dict["run"]).Enabled = run; + + //enable or disble connection button + ((SimpleActionItem)rps_dict["connection"]).Enabled = connection; + + } + + #endregion + + #region UI Events + void HM_Panel_Selected(object sender, DotSpatial.Controls.Docking.DockablePanelEventArgs e) + { + if (e.ActivePanelKey == kHydroModelerDock) + { + App.DockManager.SelectPanel("RootRibbonHydroModeler"); + ignoreRootSelected = true; + App.HeaderControl.SelectRoot(KHydroModeler); + ignoreRootSelected = false; + + //hide panels + App.DockManager.HidePanel("kLegend"); + App.DockManager.HidePanel(HydroDesktop.Common.SharedConstants.SeriesViewKey); + } + } + + private void set_pan(object sender, EventArgs e) + { + hydroModelerControl.Ispan = true; + SimpleActionItem s = ((SimpleActionItem)rps_dict["pan"]); + } + private void set_select(object sender, EventArgs e) + { + hydroModelerControl.Ispan = false; + SimpleActionItem s = ((SimpleActionItem)rps_dict["select"]); + } + private void ribbonTextBox_textChanged(TextEntryActionItem textbox) + { + //get path from ribbon textbox + string path = textbox.Text; + + //replace path slashes + path = path.Replace('/', '\\'); + + //update file list + hydroModelerControl.filelist_update(path); + } + public void ribbonTextBox_update(string path) + { + //update the ribbon textbox text + ((TextEntryActionItem)rps_dict["dirbox"]).Text = path; + } + public void dirItem_click(object sender, EventArgs e) + { + string path = hydroModelerControl.changeDir_Click(sender, e); + + if(path != null) + { + ribbonTextBox_update(path); + } + } + void keypressed(Object o, KeyPressEventArgs e) + { + if (e.KeyChar == (char)Keys.Return) + { + e.Handled = true; + } + } + void OpenComp_Click(object sender, EventArgs e) + { + //call open composition event + hydroModelerControl.menuFileOpen_Click(sender, e); + } + void Save_Click(object sender, EventArgs e) + { + //call save event + hydroModelerControl.menuFileSave_Click(sender, e); + } + void SaveAs_Click(object sender, EventArgs e) + { + //call save as event + hydroModelerControl.menuFileSaveAs_Click(sender, e); + + } + void AddModel_Click(object sender, EventArgs e) + { + //call add model event + hydroModelerControl.menuEditModelAdd_Click(sender, e); + } + void AddConnection_Click(object sender, EventArgs e) + { + //call add connection event + hydroModelerControl.menuEditConnectionAdd_Click(sender, e); + } + void AddTrigger_Click(object sender, EventArgs e) + { + //call add trigger event + hydroModelerControl.menuEditTriggerAdd_Click(sender, e); + } + void Run_Click(object sender, EventArgs e) + { + //call run event + hydroModelerControl.menuDeployRun_Click(sender, e); + } + void clear_Click(object sender, EventArgs e) + { + DialogResult result = MessageBox.Show("Are you sure you want to remove all models from the composition window?", "Important Question", MessageBoxButtons.YesNo); + if(result == DialogResult.Yes) + hydroModelerControl.composition_clear(); + } + void getHelp(object sender, EventArgs e) + { + try + { + LocalHelp.OpenHelpFile(_localHelpUri); + } + catch (Exception ex) + { + MessageBox.Show("Could not open help file at " + _localHelpUri + "\n" + ex.Message, "Could not open help", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + #endregion + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..1441bfc9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Plugins.HydroModeler")] +[assembly: AssemblyDescription("Hydro Modeler")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina, Department of Civil Engineering")] +[assembly: AssemblyProduct("Plugins.HydroModeler")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("0100a37a-2c31-4bca-861d-6eb3bbc85a9d")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Properties/Resources.Designer.cs b/Source/Plugins/Plugins.HydroModeler/Properties/Resources.Designer.cs new file mode 100644 index 00000000..acdfc9c9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Properties/Resources.Designer.cs @@ -0,0 +1,252 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Plugins.HydroModeler.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("Plugins.HydroModeler.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap add_connection { + get { + object obj = ResourceManager.GetObject("add_connection", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap add_model { + get { + object obj = ResourceManager.GetObject("add_model", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap change_dir { + get { + object obj = ResourceManager.GetObject("change_dir", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon component_image { + get { + object obj = ResourceManager.GetObject("component_image", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap delete_icon { + get { + object obj = ResourceManager.GetObject("delete_icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon Folder { + get { + object obj = ResourceManager.GetObject("Folder", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap help { + get { + object obj = ResourceManager.GetObject("help", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon model_image { + get { + object obj = ResourceManager.GetObject("model_image", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap open { + get { + object obj = ResourceManager.GetObject("open", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] pan { + get { + object obj = ResourceManager.GetObject("pan", resourceCulture); + return ((byte[])(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap pan1 { + get { + object obj = ResourceManager.GetObject("pan1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap run { + get { + object obj = ResourceManager.GetObject("run", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap save { + get { + object obj = ResourceManager.GetObject("save", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap saveas { + get { + object obj = ResourceManager.GetObject("saveas", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap select { + get { + object obj = ResourceManager.GetObject("select", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] Source { + get { + object obj = ResourceManager.GetObject("Source", resourceCulture); + return ((byte[])(obj)); + } + } + + /// + /// Looks up a localized string similar to ./Plugins/HydroModeler/hydromodeler_example_configurations. + /// + internal static string startpath { + get { + return ResourceManager.GetString("startpath", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] Target { + get { + object obj = ResourceManager.GetObject("Target", resourceCulture); + return ((byte[])(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap trigger { + get { + object obj = ResourceManager.GetObject("trigger", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Properties/Resources.resx b/Source/Plugins/Plugins.HydroModeler/Properties/Resources.resx new file mode 100644 index 00000000..5b47b9a5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Properties/Resources.resx @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\add_connection.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\add_model.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\change_dir.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\delete_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Folder.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\help.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\pan.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\run.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\saveas.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Source.cur;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\Target.cur;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\trigger.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\component_image.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\model_image.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\pan.cur;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ./Plugins/HydroModeler/hydromodeler_example_configurations + start path for the directory textbox + + + ..\Resources\select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/Folder.ico b/Source/Plugins/Plugins.HydroModeler/Resources/Folder.ico new file mode 100644 index 00000000..bc30d0f2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/Folder.ico differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/HydroModelerLogo.png b/Source/Plugins/Plugins.HydroModeler/Resources/HydroModelerLogo.png new file mode 100644 index 00000000..8ae11c8e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/HydroModelerLogo.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/Source.cur b/Source/Plugins/Plugins.HydroModeler/Resources/Source.cur new file mode 100644 index 00000000..fb76976b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/Source.cur differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/Target.cur b/Source/Plugins/Plugins.HydroModeler/Resources/Target.cur new file mode 100644 index 00000000..b121229d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/Target.cur differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/Thumbs.db b/Source/Plugins/Plugins.HydroModeler/Resources/Thumbs.db new file mode 100644 index 00000000..d8abe48a Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/Thumbs.db differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/add_connection.png b/Source/Plugins/Plugins.HydroModeler/Resources/add_connection.png new file mode 100644 index 00000000..bd4b6151 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/add_connection.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/add_model.png b/Source/Plugins/Plugins.HydroModeler/Resources/add_model.png new file mode 100644 index 00000000..c0664426 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/add_model.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/change_dir.png b/Source/Plugins/Plugins.HydroModeler/Resources/change_dir.png new file mode 100644 index 00000000..1c21fcf1 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/change_dir.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/component_image.bmp b/Source/Plugins/Plugins.HydroModeler/Resources/component_image.bmp new file mode 100644 index 00000000..fb3844c9 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/component_image.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/component_image.ico b/Source/Plugins/Plugins.HydroModeler/Resources/component_image.ico new file mode 100644 index 00000000..400e8e8c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/component_image.ico differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/delete_icon.png b/Source/Plugins/Plugins.HydroModeler/Resources/delete_icon.png new file mode 100644 index 00000000..dd618471 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/delete_icon.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/help.png b/Source/Plugins/Plugins.HydroModeler/Resources/help.png new file mode 100644 index 00000000..a78b1cc1 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/help.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/image_sources.txt b/Source/Plugins/Plugins.HydroModeler/Resources/image_sources.txt new file mode 100644 index 00000000..baab94ac --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Resources/image_sources.txt @@ -0,0 +1,8 @@ +run.png : http://www.pdclipart.org/displayimage.php?album=130&pos=14 +open.png : http://www.clker.com/clipart-9700.html Here is the Disclaimer ==> http://www.clker.com/disclaimer.html +save.png : http://www.clker.com/clipart-documnet-save.html +saveas.png : http://www.clker.com/clipart-document-save-as.html +add_connection.png : http://www.clker.com/clipart-ethernet-cable.html +add_model.png : http://www.clker.com/clipart-14214.html +delete_icon : http://www.iconspedia.com/icon/delete-10-01.html + diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/model_image.bmp b/Source/Plugins/Plugins.HydroModeler/Resources/model_image.bmp new file mode 100644 index 00000000..483a7c2b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/model_image.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/model_image.ico b/Source/Plugins/Plugins.HydroModeler/Resources/model_image.ico new file mode 100644 index 00000000..3f0f8867 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/model_image.ico differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/open.png b/Source/Plugins/Plugins.HydroModeler/Resources/open.png new file mode 100644 index 00000000..7a9d6abf Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/open.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/pan.cur b/Source/Plugins/Plugins.HydroModeler/Resources/pan.cur new file mode 100644 index 00000000..18114a64 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/pan.cur differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/pan.png b/Source/Plugins/Plugins.HydroModeler/Resources/pan.png new file mode 100644 index 00000000..cac42322 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/pan.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/run.png b/Source/Plugins/Plugins.HydroModeler/Resources/run.png new file mode 100644 index 00000000..dfb5295f Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/run.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/save.png b/Source/Plugins/Plugins.HydroModeler/Resources/save.png new file mode 100644 index 00000000..2a4fc0ad Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/save.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/saveas.png b/Source/Plugins/Plugins.HydroModeler/Resources/saveas.png new file mode 100644 index 00000000..b270058c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/saveas.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/select.png b/Source/Plugins/Plugins.HydroModeler/Resources/select.png new file mode 100644 index 00000000..b55ca3eb Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/select.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/trigger.png b/Source/Plugins/Plugins.HydroModeler/Resources/trigger.png new file mode 100644 index 00000000..481cf607 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/trigger.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Resources/xml_icon.png b/Source/Plugins/Plugins.HydroModeler/Resources/xml_icon.png new file mode 100644 index 00000000..d096d7b6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Resources/xml_icon.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/RunBox.cs b/Source/Plugins/Plugins.HydroModeler/RunBox.cs new file mode 100644 index 00000000..7a437728 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/RunBox.cs @@ -0,0 +1,493 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.IO; +using System.Windows.Forms; +using Oatc.OpenMI.Gui.Core; +using OpenMI.Standard; +//using DotSpatial.Controls.RibbonControls; + +namespace Plugins.HydroModeler +{ + /// + /// Summary description for RunBox. + /// + public class RunBox : System.Windows.Forms.Form + { + CompositionManager _composition; + + + private System.Windows.Forms.Button buttonStop; + private System.Windows.Forms.ProgressBar progressBarRun; + private System.Windows.Forms.Button buttonClose; + private System.Windows.Forms.Label labelInfo; + private System.ComponentModel.IContainer components; + + private bool _finished; + private bool _started; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Timer timerProgress; + private System.Windows.Forms.ColumnHeader _colType; + private System.Windows.Forms.ColumnHeader _colDescription; + private System.Windows.Forms.ColumnHeader _colSender; + private System.Windows.Forms.ColumnHeader _colSimulationTime; + private System.Windows.Forms.ListView listViewEvents; + private System.Windows.Forms.ColumnHeader _colOrder; + IListener _listener; + public string _currentDirectory; + mainTab hydroModelerControl; + + + /// + /// Creates a new instance of RunBox dialog. + /// + public RunBox(mainTab instance) + { + hydroModelerControl = instance; + InitializeComponent(); + } + + /// + /// Progress bar showing simulation progress. + /// + /// This property is used to initialize ProgressBarListener. + public ProgressBar ProgressBarRun + { + get { return(progressBarRun); } + } + + /// + /// Listview showing events during simulation. + /// + /// This property is used to initialize ListViewListener. + public ListView ListViewEvents + { + get { return(listViewEvents); } + } + + /// + /// Timer used to initiate sending of events to UI listeners. + /// + public Timer Timer + { + get { return(timerProgress); } + } + + /// + /// Populates this dialog with specified composition and proxy listener. + /// + /// Composition which simulation is to be run. + /// Listener which is used for monitoring simulation. + /// + /// Simulation is fired after this dialog is showed. That's because if + /// simulation runs in same thread we won't be able to show it another way. + /// We determine whether simulation runs in same thread using + /// CompositionManager.RunInSameThread property. + /// + public void PopuplateDialog( CompositionManager composition, IListener listener ) + { + _composition = composition; + _listener = listener; + _finished = false; + _started = false; + buttonClose.Enabled = !composition.RunInSameThread; + buttonStop.Enabled = !composition.RunInSameThread; + + progressBarRun.Value = 0; + progressBarRun.Enabled = true; + + labelInfo.Text = "Running..."; + + listViewEvents.Items.Clear(); + } + + + private void RunBox_Paint(object sender, System.Windows.Forms.PaintEventArgs e) + { + + // this event is fired when this dialog is shown + StartSimulation(); + } + + + /// + /// Method fires simulation if not already running. + /// + private void StartSimulation() + { + // this method is called from repaint handler + + // we start simulation here because now we are sure, + // dialog is already visible on the screen. + // Thats because if running in same thread, we won't be able to show it another way. + if( !_started ) + { + _started = true; + Invalidate(); // next call may block this repaint handler, so another repaint event should be generated + _composition.Run( _listener, _composition.RunInSameThread ); + } + } + + + private void buttonStop_Click(object sender, System.EventArgs e) + { + if( buttonStop.Enabled ) + { + _composition.Stop(); + buttonStop.Enabled = false; + } + } + + + private void progressBarRun_EnabledChanged(object sender, System.EventArgs e) + { + // This event is fired by ProgressBarListener ( called from Proxy(MultiThread)Listener ) + // when simulation finishes + if( !progressBarRun.Enabled ) + { + progressBarRun.Value = progressBarRun.Maximum; + buttonStop.Enabled = false; + buttonClose.Enabled = true; + labelInfo.Text = "Finished..."; + _finished = true; + } + } + + + private void buttonClose_Click(object sender, System.EventArgs e) + { + Close(); + } + + + private void RunBox_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // if running in same thread and simulation hasn't finished yet, + // we cannot close dialog + if( !_finished ) + { + if( _composition.RunInSameThread ) + { + e.Cancel = true; + return; + } + + switch( MessageBox.Show("Simulation hasn't finished yet, do you want to stop it?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) ) + { + case DialogResult.Yes: + buttonStop_Click( null, null ); + break; + + default: + e.Cancel = true; + return; + } + } + + switch( MessageBox.Show("All models have been finished their simulation run. Would you like to reload project?\n\nNote: Models must be reloaded prior to simulation. If \"No\" is selected, all models will be removed from the composition.", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) ) + { + case DialogResult.Yes: + { + + #region old reload method + //////_composition.Reload(); + + + //////temporarily save file + ////_composition.SaveToFile(this._currentDirectory + "\\temp.opr"); + + //////clear composition window + ////_composition.RemoveAllModels(); + + //////HACK: fix to fix opr file + //////make sure that the trigger does not contain any extra characters + ////string filename = this._currentDirectory + "\\temp.opr"; + ////StreamReader sr = new StreamReader(filename); + ////string contents = sr.ReadToEnd(); + ////sr.Close(); + + ////if (contents.Contains("Oatc.OpenMI.Gui.Trigger")) + ////{ + //// int end = contents.IndexOf("Oatc.OpenMI.Gui.Trigger"); + //// int index = end - 1; + //// int count = 0; + //// while (contents[index] != '\"') + //// { + //// count++; + //// index--; + //// } + + //// contents = contents.Remove(end - count, count); + ////} + + ////StreamWriter sw = new StreamWriter(filename); + ////sw.Write(contents); + ////sw.Close(); + + //////reload temp opr + ////_composition.LoadFromFile(this._currentDirectory + "\\temp.opr"); + + ////System.IO.File.Delete(this._currentDirectory + "\\temp.opr"); + + //////foreach (UIModel model in models) + //////_composition.AddModel(model. + ////// if (model.ModelID.Contains("Oatc")) + ////// { + ////// _composition.RemoveModel(model); + ////// break; + ////// } + //////_composition.Reload(); + #endregion + + //---- reload the composition --- + + //-- get the current file path + string path = _composition.FilePath; + + //-- overwrite the original file + _composition.SaveToFile(path); + + //-- clear the composition window + _composition.RemoveAllModels(); + + //-- remove extra characters (in path) from the trigger + StreamReader sr = new StreamReader(path); + string contents = sr.ReadToEnd(); + sr.Close(); + + if (contents.Contains("Oatc.OpenMI.Gui.Trigger")) + { + int end = contents.IndexOf("Oatc.OpenMI.Gui.Trigger"); + int index = end - 1; + int count = 0; + while (contents[index] != '\"') + { count++; index--; } + contents = contents.Remove(end - count, count); + } + + //-- rewrite the opr with revised trigger info + StreamWriter sw = new StreamWriter(path); + sw.Write(contents); + sw.Close(); + + //-- reopen the opr file + _composition.LoadFromFile(_composition.FilePath); + + break; + } + default: + hydroModelerControl.composition_clear(); + break; + } + + // clean-up + listViewEvents.Items.Clear(); + } + + + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem(""); + System.Windows.Forms.ListViewItem listViewItem2 = new System.Windows.Forms.ListViewItem(""); + System.Windows.Forms.ListViewItem listViewItem3 = new System.Windows.Forms.ListViewItem(""); + System.Windows.Forms.ListViewItem listViewItem4 = new System.Windows.Forms.ListViewItem(""); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RunBox)); + this.labelInfo = new System.Windows.Forms.Label(); + this.buttonStop = new System.Windows.Forms.Button(); + this.progressBarRun = new System.Windows.Forms.ProgressBar(); + this.buttonClose = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.timerProgress = new System.Windows.Forms.Timer(this.components); + this.listViewEvents = new System.Windows.Forms.ListView(); + this._colOrder = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this._colType = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this._colDescription = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this._colSender = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this._colSimulationTime = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.SuspendLayout(); + // + // labelInfo + // + this.labelInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.labelInfo.Location = new System.Drawing.Point(4, 4); + this.labelInfo.Name = "labelInfo"; + this.labelInfo.Size = new System.Drawing.Size(507, 16); + this.labelInfo.TabIndex = 0; + this.labelInfo.Text = "Running..."; + // + // buttonStop + // + this.buttonStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonStop.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonStop.Location = new System.Drawing.Point(327, 569); + this.buttonStop.Name = "buttonStop"; + this.buttonStop.Size = new System.Drawing.Size(84, 24); + this.buttonStop.TabIndex = 1; + this.buttonStop.Text = "Stop !!!"; + this.buttonStop.Click += new System.EventHandler(this.buttonStop_Click); + // + // progressBarRun + // + this.progressBarRun.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.progressBarRun.Location = new System.Drawing.Point(4, 24); + this.progressBarRun.Maximum = 256; + this.progressBarRun.Name = "progressBarRun"; + this.progressBarRun.Size = new System.Drawing.Size(511, 24); + this.progressBarRun.TabIndex = 2; + this.progressBarRun.EnabledChanged += new System.EventHandler(this.progressBarRun_EnabledChanged); + // + // buttonClose + // + this.buttonClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.Enabled = false; + this.buttonClose.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClose.Location = new System.Drawing.Point(419, 569); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(84, 24); + this.buttonClose.TabIndex = 3; + this.buttonClose.Text = "Close"; + this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label1.Location = new System.Drawing.Point(4, 56); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(511, 16); + this.label1.TabIndex = 5; + this.label1.Text = "Events:"; + // + // listViewEvents + // + this.listViewEvents.AllowColumnReorder = true; + this.listViewEvents.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.listViewEvents.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.listViewEvents.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this._colOrder, + this._colType, + this._colDescription, + this._colSender, + this._colSimulationTime}); + this.listViewEvents.FullRowSelect = true; + this.listViewEvents.GridLines = true; + this.listViewEvents.Items.AddRange(new System.Windows.Forms.ListViewItem[] { + listViewItem1, + listViewItem2, + listViewItem3, + listViewItem4}); + this.listViewEvents.Location = new System.Drawing.Point(4, 76); + this.listViewEvents.Name = "listViewEvents"; + this.listViewEvents.Size = new System.Drawing.Size(511, 483); + this.listViewEvents.TabIndex = 6; + this.listViewEvents.UseCompatibleStateImageBehavior = false; + this.listViewEvents.View = System.Windows.Forms.View.Details; + // + // _colOrder + // + this._colOrder.Text = "Order"; + this._colOrder.Width = 48; + // + // _colType + // + this._colType.Text = "Type"; + this._colType.Width = 82; + // + // _colDescription + // + this._colDescription.Text = "Description"; + this._colDescription.Width = 147; + // + // _colSender + // + this._colSender.Text = "Sender"; + this._colSender.Width = 82; + // + // _colSimulationTime + // + this._colSimulationTime.Text = "Simulation Time"; + this._colSimulationTime.Width = 155; + // + // RunBox + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.CancelButton = this.buttonClose; + this.ClientSize = new System.Drawing.Size(519, 600); + this.Controls.Add(this.listViewEvents); + this.Controls.Add(this.label1); + this.Controls.Add(this.buttonClose); + this.Controls.Add(this.progressBarRun); + this.Controls.Add(this.buttonStop); + this.Controls.Add(this.labelInfo); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(440, 200); + this.Name = "RunBox"; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; + this.Text = "Simulation progress"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.RunBox_Closing); + this.Paint += new System.Windows.Forms.PaintEventHandler(this.RunBox_Paint); + this.ResumeLayout(false); + + } + #endregion + + + + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/RunBox.resx b/Source/Plugins/Plugins.HydroModeler/RunBox.resx new file mode 100644 index 00000000..617fe2ed --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/RunBox.resx @@ -0,0 +1,539 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/RunProperties.cs b/Source/Plugins/Plugins.HydroModeler/RunProperties.cs new file mode 100644 index 00000000..303e3430 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/RunProperties.cs @@ -0,0 +1,669 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Diagnostics; +using System.Windows.Forms; +using Oatc.OpenMI.Gui.Core; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using OpenMI.Standard; + +namespace Plugins.HydroModeler +{ + /// + /// Summary description for RunProperties. + /// + public class RunProperties : System.Windows.Forms.Form + { + #region Window controls + + private System.Windows.Forms.CheckBox cbEventTypeWarning; + private System.Windows.Forms.CheckBox cbEventTypeValOutOfRange; + private System.Windows.Forms.CheckBox cbEventTypeTimeStepProgress; + private System.Windows.Forms.CheckBox cbEventTypeTargetBefore; + private System.Windows.Forms.CheckBox cbEventTypeTargetAfter; + private System.Windows.Forms.CheckBox cbEventTypeSourceBefore; + private System.Windows.Forms.CheckBox cbEventTypeSourceAfter; + private System.Windows.Forms.CheckBox cbEventTypeOther; + private System.Windows.Forms.CheckBox cbEventTypeInformative; + private System.Windows.Forms.CheckBox cbEventTypeGlobalProgress; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.CheckBox cbEventTypeDataChanged; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button buttonTimeLatestOverlapping; + private System.Windows.Forms.Button buttonRun; + private System.Windows.Forms.TextBox textTriggerInvokeTime; + private System.Windows.Forms.Button buttonClose; + private System.Windows.Forms.TextBox textLogToFile; + private System.Windows.Forms.CheckBox checkBoxLogToFile; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + #endregion + + CheckBox[] checkboxesEventTypes; + CompositionManager _composition; + private System.Windows.Forms.Button buttonSetAll; + private System.Windows.Forms.Button buttonClearAll; + private System.Windows.Forms.Button buttonBrowseLogFile; + private System.Windows.Forms.CheckBox checkBoxNoMultithreading; + private System.Windows.Forms.CheckBox checkBoxEventsToListbox; + bool runIt; + + /// + /// Creates a new instance of RunProperties dialog. + /// + public RunProperties() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + checkboxesEventTypes = new CheckBox[ (int)EventType.NUM_OF_EVENT_TYPES ]; + checkboxesEventTypes[0] = cbEventTypeWarning; + checkboxesEventTypes[1] = cbEventTypeInformative; + checkboxesEventTypes[2] = cbEventTypeValOutOfRange; + checkboxesEventTypes[3] = cbEventTypeGlobalProgress; + checkboxesEventTypes[4] = cbEventTypeTimeStepProgress; + checkboxesEventTypes[5] = cbEventTypeDataChanged; + checkboxesEventTypes[6] = cbEventTypeTargetBefore; + checkboxesEventTypes[7] = cbEventTypeSourceAfter; + checkboxesEventTypes[8] = cbEventTypeSourceBefore; + checkboxesEventTypes[9] = cbEventTypeTargetAfter; + checkboxesEventTypes[10] = cbEventTypeOther; + + this.DialogResult = DialogResult.OK; + } + + + /// + /// Populates this dialog with specific composition. + /// + /// Composition to be used for dialog. + /// + /// If true, the CompositionManager.TriggerInvokeTime + /// is set to latest overlapping time of time horizons of all models. Typically this is used + /// when this dialog is showed for the first time. + public void PopulateDialog( CompositionManager composition, bool initialTriggerInvokeTime ) + { + _composition = composition; + + Debug.Assert( _composition.HasTrigger() ); + Debug.Assert( _composition.Models.Count > 1 ); + + // fill dialog according to composition + if( _composition.LogToFile == null ) + { + checkBoxLogToFile.Checked = false; + textLogToFile.Text = "CompositionRun.log"; + } + else + { + checkBoxLogToFile.Checked = true; + textLogToFile.Text = _composition.LogToFile; + } + + for( int i=0; i<(int)EventType.NUM_OF_EVENT_TYPES; i++ ) + checkboxesEventTypes[i].Checked = _composition.ListenedEventTypes[i]; + + if( initialTriggerInvokeTime ) + { + buttonTimeLatestOverlapping_Click(null, null); + } + else + { + textTriggerInvokeTime.Text = _composition.TriggerInvokeTime.ToString( ); + } + + checkBoxEventsToListbox.Checked = _composition.ShowEventsInListbox; + + checkBoxNoMultithreading.Checked = _composition.RunInSameThread; + + runIt = false; + } + + + private void SaveStateToComposition() + { + _composition.LogToFile = checkBoxLogToFile.Checked ? textLogToFile.Text : null; + + for( int i=0; i<(int)EventType.NUM_OF_EVENT_TYPES; i++ ) + if( _composition.ListenedEventTypes[i] != checkboxesEventTypes[i].Checked ) + { + _composition.ListenedEventTypes[i] = checkboxesEventTypes[i].Checked; + _composition.ShouldBeSaved = true; + } + + _composition.TriggerInvokeTime = DateTime.Parse( textTriggerInvokeTime.Text ); + + _composition.RunInSameThread = checkBoxNoMultithreading.Checked; + + _composition.ShowEventsInListbox = checkBoxEventsToListbox.Checked; + } + + + private bool CheckControlsFormat() + { + // check format of date and time + try + { + DateTime.Parse(textTriggerInvokeTime.Text); + } + catch( FormatException ) + { + switch (MessageBox.Show("Text you have entered is not valid date and time, please use format specific for " + Application.CurrentCulture.Name + " culture, i.e. " + Application.CurrentCulture.DateTimeFormat.ShortDatePattern + " " + Application.CurrentCulture.DateTimeFormat.LongTimePattern + ", for example " + System.DateTime.Now.ToShortDateString() + " " + System.DateTime.Now.ToLongTimeString(), "Invalid format", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1)) + { + case DialogResult.Cancel: + textTriggerInvokeTime.Text = _composition.TriggerInvokeTime.ToString(); + break; + default: + break; + } + textTriggerInvokeTime.Focus(); + return( false ); + } + + // check log filename + if( checkBoxLogToFile.Checked ) + if( string.IsNullOrEmpty(textLogToFile.Text) ) + { + switch( MessageBox.Show("Text you have entered is not file name.", "Invalid format", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1) ) + { + case DialogResult.Cancel: + checkBoxLogToFile.Checked = false; + break; + default: + break; + } + textLogToFile.Focus(); + return( false ); + } + + + return( true ); + } + + + private void checkBoxLogToFile_CheckedChanged(object sender, System.EventArgs e) + { + textLogToFile.Enabled = checkBoxLogToFile.Checked; + buttonBrowseLogFile.Enabled = checkBoxLogToFile.Checked; + } + + + private void RunProperties_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + if( CheckControlsFormat() ) + { + SaveStateToComposition(); + DialogResult = runIt ? DialogResult.OK : DialogResult.No; + } + else + { + e.Cancel = true; + } + } + + + private void textTriggerInvokeTime_Leave(object sender, System.EventArgs e) + { + CheckControlsFormat(); + } + + + private void buttonClose_Click(object sender, System.EventArgs e) + { + Close(); + } + + + private void buttonRun_Click(object sender, System.EventArgs e) + { + runIt = true; + Close(); + } + + + private void buttonTimeLatestOverlapping_Click(object sender, System.EventArgs e) + { + double start = double.MinValue, + end = double.MaxValue; + + foreach( UIModel model in _composition.Models ) + { + start = Math.Max( model.LinkableComponent.TimeHorizon.Start.ModifiedJulianDay, start ); + end = Math.Min( model.LinkableComponent.TimeHorizon.End.ModifiedJulianDay, end ); + } + + if( start > end ) + { + MessageBox.Show("Model timehorizons don't overlap.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning ); + } + else + { + textTriggerInvokeTime.Text = CalendarConverter.ModifiedJulian2Gregorian( end ).ToString(); + } + + } + + + private void buttonSetAll_Click(object sender, System.EventArgs e) + { + foreach( CheckBox checkBox in checkboxesEventTypes ) + checkBox.Checked = true; + } + + + private void buttonClearAll_Click(object sender, System.EventArgs e) + { + foreach( CheckBox checkBox in checkboxesEventTypes ) + checkBox.Checked = false; + } + + + private void buttonBrowseLogFile_Click(object sender, System.EventArgs e) + { + SaveFileDialog dlgFile = new SaveFileDialog(); + dlgFile.Filter = "Run log (*.log)|*.log|All files|*.*"; + dlgFile.ValidateNames = true; + dlgFile.Title = "Select log file..."; + dlgFile.AddExtension = true; + dlgFile.OverwritePrompt = true; + + if( textLogToFile.Text.Length>0 ) + dlgFile.FileName = textLogToFile.Text; + + if( dlgFile.ShowDialog() == DialogResult.OK ) + textLogToFile.Text = dlgFile.FileName; + + dlgFile.Dispose(); + } + + #region .NET generated + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(RunProperties)); + this.cbEventTypeWarning = new System.Windows.Forms.CheckBox(); + this.cbEventTypeValOutOfRange = new System.Windows.Forms.CheckBox(); + this.cbEventTypeTimeStepProgress = new System.Windows.Forms.CheckBox(); + this.cbEventTypeTargetBefore = new System.Windows.Forms.CheckBox(); + this.cbEventTypeTargetAfter = new System.Windows.Forms.CheckBox(); + this.cbEventTypeSourceBefore = new System.Windows.Forms.CheckBox(); + this.cbEventTypeSourceAfter = new System.Windows.Forms.CheckBox(); + this.cbEventTypeOther = new System.Windows.Forms.CheckBox(); + this.cbEventTypeInformative = new System.Windows.Forms.CheckBox(); + this.cbEventTypeGlobalProgress = new System.Windows.Forms.CheckBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.buttonClearAll = new System.Windows.Forms.Button(); + this.cbEventTypeDataChanged = new System.Windows.Forms.CheckBox(); + this.buttonSetAll = new System.Windows.Forms.Button(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.checkBoxEventsToListbox = new System.Windows.Forms.CheckBox(); + this.checkBoxNoMultithreading = new System.Windows.Forms.CheckBox(); + this.textTriggerInvokeTime = new System.Windows.Forms.TextBox(); + this.buttonTimeLatestOverlapping = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.buttonBrowseLogFile = new System.Windows.Forms.Button(); + this.textLogToFile = new System.Windows.Forms.TextBox(); + this.checkBoxLogToFile = new System.Windows.Forms.CheckBox(); + this.buttonRun = new System.Windows.Forms.Button(); + this.buttonClose = new System.Windows.Forms.Button(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // cbEventTypeWarning + // + this.cbEventTypeWarning.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeWarning.Location = new System.Drawing.Point(16, 36); + this.cbEventTypeWarning.Name = "cbEventTypeWarning"; + this.cbEventTypeWarning.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeWarning.TabIndex = 23; + this.cbEventTypeWarning.Text = "Warning"; + // + // cbEventTypeValOutOfRange + // + this.cbEventTypeValOutOfRange.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeValOutOfRange.Location = new System.Drawing.Point(16, 84); + this.cbEventTypeValOutOfRange.Name = "cbEventTypeValOutOfRange"; + this.cbEventTypeValOutOfRange.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeValOutOfRange.TabIndex = 22; + this.cbEventTypeValOutOfRange.Text = "Value out of range"; + // + // cbEventTypeTimeStepProgress + // + this.cbEventTypeTimeStepProgress.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeTimeStepProgress.Location = new System.Drawing.Point(16, 52); + this.cbEventTypeTimeStepProgress.Name = "cbEventTypeTimeStepProgress"; + this.cbEventTypeTimeStepProgress.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeTimeStepProgress.TabIndex = 21; + this.cbEventTypeTimeStepProgress.Text = "Time step progress"; + // + // cbEventTypeTargetBefore + // + this.cbEventTypeTargetBefore.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeTargetBefore.Location = new System.Drawing.Point(144, 68); + this.cbEventTypeTargetBefore.Name = "cbEventTypeTargetBefore"; + this.cbEventTypeTargetBefore.Size = new System.Drawing.Size(192, 20); + this.cbEventTypeTargetBefore.TabIndex = 20; + this.cbEventTypeTargetBefore.Text = "Target before GetValues() call"; + // + // cbEventTypeTargetAfter + // + this.cbEventTypeTargetAfter.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeTargetAfter.Location = new System.Drawing.Point(144, 52); + this.cbEventTypeTargetAfter.Name = "cbEventTypeTargetAfter"; + this.cbEventTypeTargetAfter.Size = new System.Drawing.Size(192, 20); + this.cbEventTypeTargetAfter.TabIndex = 19; + this.cbEventTypeTargetAfter.Text = "Target after GetValues() return"; + // + // cbEventTypeSourceBefore + // + this.cbEventTypeSourceBefore.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeSourceBefore.Location = new System.Drawing.Point(144, 36); + this.cbEventTypeSourceBefore.Name = "cbEventTypeSourceBefore"; + this.cbEventTypeSourceBefore.Size = new System.Drawing.Size(192, 20); + this.cbEventTypeSourceBefore.TabIndex = 18; + this.cbEventTypeSourceBefore.Text = "Source before GetValues() return"; + // + // cbEventTypeSourceAfter + // + this.cbEventTypeSourceAfter.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeSourceAfter.Location = new System.Drawing.Point(144, 20); + this.cbEventTypeSourceAfter.Name = "cbEventTypeSourceAfter"; + this.cbEventTypeSourceAfter.Size = new System.Drawing.Size(192, 20); + this.cbEventTypeSourceAfter.TabIndex = 17; + this.cbEventTypeSourceAfter.Text = "Source after GetValues() call"; + // + // cbEventTypeOther + // + this.cbEventTypeOther.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeOther.Location = new System.Drawing.Point(144, 84); + this.cbEventTypeOther.Name = "cbEventTypeOther"; + this.cbEventTypeOther.Size = new System.Drawing.Size(60, 20); + this.cbEventTypeOther.TabIndex = 16; + this.cbEventTypeOther.Text = "Other"; + // + // cbEventTypeInformative + // + this.cbEventTypeInformative.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeInformative.Location = new System.Drawing.Point(16, 20); + this.cbEventTypeInformative.Name = "cbEventTypeInformative"; + this.cbEventTypeInformative.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeInformative.TabIndex = 15; + this.cbEventTypeInformative.Text = "Informative"; + // + // cbEventTypeGlobalProgress + // + this.cbEventTypeGlobalProgress.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeGlobalProgress.Location = new System.Drawing.Point(16, 68); + this.cbEventTypeGlobalProgress.Name = "cbEventTypeGlobalProgress"; + this.cbEventTypeGlobalProgress.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeGlobalProgress.TabIndex = 14; + this.cbEventTypeGlobalProgress.Text = "Global progress"; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.buttonClearAll); + this.groupBox1.Controls.Add(this.cbEventTypeDataChanged); + this.groupBox1.Controls.Add(this.buttonSetAll); + this.groupBox1.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.groupBox1.Location = new System.Drawing.Point(4, 4); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(348, 124); + this.groupBox1.TabIndex = 24; + this.groupBox1.TabStop = false; + this.groupBox1.Text = " Events listened during calculation"; + // + // buttonClearAll + // + this.buttonClearAll.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClearAll.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.buttonClearAll.Location = new System.Drawing.Point(276, 96); + this.buttonClearAll.Name = "buttonClearAll"; + this.buttonClearAll.Size = new System.Drawing.Size(64, 20); + this.buttonClearAll.TabIndex = 29; + this.buttonClearAll.Text = "Clear all"; + this.buttonClearAll.Click += new System.EventHandler(this.buttonClearAll_Click); + // + // cbEventTypeDataChanged + // + this.cbEventTypeDataChanged.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeDataChanged.Location = new System.Drawing.Point(12, 96); + this.cbEventTypeDataChanged.Name = "cbEventTypeDataChanged"; + this.cbEventTypeDataChanged.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeDataChanged.TabIndex = 0; + this.cbEventTypeDataChanged.Text = "Data changed"; + // + // buttonSetAll + // + this.buttonSetAll.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonSetAll.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.buttonSetAll.Location = new System.Drawing.Point(212, 96); + this.buttonSetAll.Name = "buttonSetAll"; + this.buttonSetAll.Size = new System.Drawing.Size(60, 20); + this.buttonSetAll.TabIndex = 28; + this.buttonSetAll.Text = "Set all"; + this.buttonSetAll.Click += new System.EventHandler(this.buttonSetAll_Click); + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.checkBoxEventsToListbox); + this.groupBox2.Controls.Add(this.checkBoxNoMultithreading); + this.groupBox2.Controls.Add(this.textTriggerInvokeTime); + this.groupBox2.Controls.Add(this.buttonTimeLatestOverlapping); + this.groupBox2.Controls.Add(this.label1); + this.groupBox2.Controls.Add(this.buttonBrowseLogFile); + this.groupBox2.Controls.Add(this.textLogToFile); + this.groupBox2.Controls.Add(this.checkBoxLogToFile); + this.groupBox2.Location = new System.Drawing.Point(4, 132); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(348, 108); + this.groupBox2.TabIndex = 25; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Run properties"; + // + // checkBoxEventsToListbox + // + this.checkBoxEventsToListbox.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.checkBoxEventsToListbox.Location = new System.Drawing.Point(12, 64); + this.checkBoxEventsToListbox.Name = "checkBoxEventsToListbox"; + this.checkBoxEventsToListbox.Size = new System.Drawing.Size(328, 16); + this.checkBoxEventsToListbox.TabIndex = 29; + this.checkBoxEventsToListbox.Text = "Show events in list-box"; + // + // checkBoxNoMultithreading + // + this.checkBoxNoMultithreading.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.checkBoxNoMultithreading.Location = new System.Drawing.Point(12, 84); + this.checkBoxNoMultithreading.Name = "checkBoxNoMultithreading"; + this.checkBoxNoMultithreading.Size = new System.Drawing.Size(328, 16); + this.checkBoxNoMultithreading.TabIndex = 28; + this.checkBoxNoMultithreading.Text = "Don\'t use separate thread"; + // + // textTriggerInvokeTime + // + this.textTriggerInvokeTime.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.textTriggerInvokeTime.Location = new System.Drawing.Point(96, 16); + this.textTriggerInvokeTime.MaxLength = 30; + this.textTriggerInvokeTime.Name = "textTriggerInvokeTime"; + this.textTriggerInvokeTime.Size = new System.Drawing.Size(132, 20); + this.textTriggerInvokeTime.TabIndex = 3; + this.textTriggerInvokeTime.Text = "12/31/1999 11:59:59 PM"; + this.textTriggerInvokeTime.Leave += new System.EventHandler(this.textTriggerInvokeTime_Leave); + // + // buttonTimeLatestOverlapping + // + this.buttonTimeLatestOverlapping.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonTimeLatestOverlapping.Location = new System.Drawing.Point(232, 16); + this.buttonTimeLatestOverlapping.Name = "buttonTimeLatestOverlapping"; + this.buttonTimeLatestOverlapping.Size = new System.Drawing.Size(108, 20); + this.buttonTimeLatestOverlapping.TabIndex = 1; + this.buttonTimeLatestOverlapping.Text = "Latest overlapping"; + this.buttonTimeLatestOverlapping.Click += new System.EventHandler(this.buttonTimeLatestOverlapping_Click); + // + // label1 + // + this.label1.Location = new System.Drawing.Point(8, 20); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(88, 16); + this.label1.TabIndex = 0; + this.label1.Text = "Invoke trigger at:"; + // + // buttonBrowseLogFile + // + this.buttonBrowseLogFile.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonBrowseLogFile.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.buttonBrowseLogFile.Location = new System.Drawing.Point(312, 40); + this.buttonBrowseLogFile.Name = "buttonBrowseLogFile"; + this.buttonBrowseLogFile.Size = new System.Drawing.Size(28, 20); + this.buttonBrowseLogFile.TabIndex = 4; + this.buttonBrowseLogFile.Text = "..."; + this.buttonBrowseLogFile.Click += new System.EventHandler(this.buttonBrowseLogFile_Click); + // + // textLogToFile + // + this.textLogToFile.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.textLogToFile.Enabled = false; + this.textLogToFile.Location = new System.Drawing.Point(96, 40); + this.textLogToFile.Name = "textLogToFile"; + this.textLogToFile.Size = new System.Drawing.Size(212, 20); + this.textLogToFile.TabIndex = 27; + this.textLogToFile.Text = "CompositionRun.log"; + // + // checkBoxLogToFile + // + this.checkBoxLogToFile.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.checkBoxLogToFile.Location = new System.Drawing.Point(12, 40); + this.checkBoxLogToFile.Name = "checkBoxLogToFile"; + this.checkBoxLogToFile.Size = new System.Drawing.Size(80, 20); + this.checkBoxLogToFile.TabIndex = 1; + this.checkBoxLogToFile.Text = "Log to file:"; + this.checkBoxLogToFile.CheckedChanged += new System.EventHandler(this.checkBoxLogToFile_CheckedChanged); + // + // buttonRun + // + this.buttonRun.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonRun.Location = new System.Drawing.Point(168, 248); + this.buttonRun.Name = "buttonRun"; + this.buttonRun.Size = new System.Drawing.Size(84, 24); + this.buttonRun.TabIndex = 4; + this.buttonRun.Text = "RUN !!!"; + this.buttonRun.Click += new System.EventHandler(this.buttonRun_Click); + // + // buttonClose + // + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClose.Location = new System.Drawing.Point(260, 248); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(84, 24); + this.buttonClose.TabIndex = 28; + this.buttonClose.Text = "Close"; + this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); + // + // RunProperties + // + this.AcceptButton = this.buttonRun; + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.CancelButton = this.buttonClose; + this.ClientSize = new System.Drawing.Size(358, 279); + this.Controls.Add(this.buttonClose); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.cbEventTypeWarning); + this.Controls.Add(this.cbEventTypeValOutOfRange); + this.Controls.Add(this.cbEventTypeTimeStepProgress); + this.Controls.Add(this.cbEventTypeTargetBefore); + this.Controls.Add(this.cbEventTypeTargetAfter); + this.Controls.Add(this.cbEventTypeSourceBefore); + this.Controls.Add(this.cbEventTypeSourceAfter); + this.Controls.Add(this.cbEventTypeOther); + this.Controls.Add(this.cbEventTypeInformative); + this.Controls.Add(this.cbEventTypeGlobalProgress); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.buttonRun); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "RunProperties"; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.Text = "Run properties"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.RunProperties_Closing); + this.Load += new System.EventHandler(this.RunProperties_Load); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + private void RunProperties_Load(object sender, System.EventArgs e) + { + + } + + + + + + + + + + #endregion + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/RunProperties.resx b/Source/Plugins/Plugins.HydroModeler/RunProperties.resx new file mode 100644 index 00000000..d49e8289 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/RunProperties.resx @@ -0,0 +1,788 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + RunProperties + + + (Default) + + + False + + + False + + + 4, 4 + + + True + + + 80 + + + True + + + Private + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Settings.Designer.cs b/Source/Plugins/Plugins.HydroModeler/Settings.Designer.cs new file mode 100644 index 00000000..a3db8671 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Settings.Designer.cs @@ -0,0 +1,38 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Plugins.HydroModeler { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.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; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("extensions\\HydroModeler\\HydroModeler.html")] + public string localHelpUri { + get { + return ((string)(this["localHelpUri"])); + } + set { + this["localHelpUri"] = value; + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Settings.settings b/Source/Plugins/Plugins.HydroModeler/Settings.settings new file mode 100644 index 00000000..af869420 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Settings.settings @@ -0,0 +1,9 @@ + + + + + + extensions\HydroModeler\HydroModeler.html + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Source.cur b/Source/Plugins/Plugins.HydroModeler/Source.cur new file mode 100644 index 00000000..fb76976b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Source.cur differ diff --git a/Source/Plugins/Plugins.HydroModeler/Target.cur b/Source/Plugins/Plugins.HydroModeler/Target.cur new file mode 100644 index 00000000..b121229d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Target.cur differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/AboutThisFolder.txt b/Source/Plugins/Plugins.HydroModeler/Utilities/AboutThisFolder.txt new file mode 100644 index 00000000..63e252db --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/AboutThisFolder.txt @@ -0,0 +1 @@ +This folder contains additional binaries used during the development of new HydroModeler components. \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/CookComputing/CookComputing.XmlRpcV2.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/CookComputing/CookComputing.XmlRpcV2.dll new file mode 100644 index 00000000..24e1a1b6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/CookComputing/CookComputing.XmlRpcV2.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/NUnit/nunit.framework.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/NUnit/nunit.framework.dll new file mode 100644 index 00000000..dc9dfe92 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/NUnit/nunit.framework.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Gui.Controls.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Gui.Controls.dll new file mode 100644 index 00000000..229e77e8 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Gui.Controls.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Gui.Core.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Gui.Core.dll new file mode 100644 index 00000000..b601bcb0 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Gui.Core.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Gui.xml b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Gui.xml new file mode 100644 index 00000000..6d72a06c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Gui.xml @@ -0,0 +1,18 @@ + + + + Oatc.OpenMI.Gui.CommandLine + + + + + Summary description for Class1. + + + + + The main entry point for the application. + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Backbone.XML b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Backbone.XML new file mode 100644 index 00000000..d8ca43ea --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Backbone.XML @@ -0,0 +1,1408 @@ + + + + Oatc.OpenMI.Sdk.Backbone + + + + + The Vertex class contains a (x,y,z) coordinate + + + + + Constructor + + + + + Constructor + + X coordinate + Y coordinate + Z coordinate + + + + Copy constructor + + The vertex to copy + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + String representation of the vertext + + + + + + Getter and setter for X coordinate + + + + + Getter and setter for X coordinate + + + + + Getter and setter for X coordinate + + + + + The Unit class defines a unit for a quantity. + This is a trivial implementation of OpenMI.Standard.IUnit, refer there for further details. + + + + + Constructor + + + + + Copy constructor + + The unit to copy + + + + Constructor + + ID + Conversion factor to SI + Conversion offset to SI + + + + Constructor + + ID + Conversion factor to SI + Conversion offset to SI + Description + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + Getter and setter for description + + + + + Getter and setter for conversion factor to SI + + + + + Getter and setter for offset to SI + + + + + Getter and setter for ID + + + + + This class defines a spatial references. + This is a trivial implementation of OpenMI.Standard.ISpatialReference, refer there for further details. + + + + + Constructor + + + + + Constructor + + Spatial reference ID + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + Getter and setter for ID + + + + + Argument is a class that contains (key,value) pairs. + This is a trivial implementation of OpenMI.Standard.IArgument, refer there for further details. + + + + + Empty constructor + + + + + Copy constructor + + Source argument to copy + + + + Constructor + + Key + Value + Is argument read-only? + Description + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + TODO: comment + + + + + TODO: comment + + + + + TODO: comment + + + + + TODO: comment + + + + + Events are used to send informative and warning messages. + This is a trivial implementation of OpenMI.Standard.IEvent, refer there for further details. + + + + + Constructor + + + + + Constructor + + Event type + + + + Sets an attribute for the event with a (key,value) pair + + The key + The value + + + + Gets an attribute for a given key + + The key + The attribute + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + Getter and setter for the event type + + + + + Getter and setter for the sender + + + + + Getter and setter for the simulation time + + + + + Getter and setter for the description + + + + + The Element class contains a spatial element. + This is a trivial implementation for use with Oatc.OpenMI.Sdk.Backbone.ElementSet, refer there for further details. + + + + + Constructor + + + + + Copy constructor + + The element to copy + + + + Constructor function + + The Element ID + + + + Gets a vertex + + The vertex index + The vertex + + + + Adds a vertex + + The vertex to add + + + + Adds a face + + The vertex indices for the face + + + + Returns the face vertex indices for a face + + The face index + The face vertex indices + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + String representation of the element + + + + + + Setter and getter functions for the vertex list + + + + + Returns the vertex count + + + + + Getter and setter functions for the element ID + + + + + Returns the number of faces + + + + + The Dimension class contains the dimension for a unit. + This is a trivial implementation of OpenMI.Standard.IDimension, refer there for further details. + + + + + Constructor + + + + + Returns the power of a base quantity + + The base quantity + The power + + + + Sets a power for a base quantity + + The base quantity + The power + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + The ScalarSet class contains a list of scalar values. + This is a trivial implementation of OpenMI.Standard.IScalarSet, refer there for further details. + + + + + Constructor + + + + + Constructor + + The list of values + + + + Returns if a certain element is valid + + Element index + True if element is valid + + + + Copy constructor + + The scalar set to copy + + + + Gets a value from the list of values + + The element index + The scalar value + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Will compare two doubles, using _doubleEpsilon. + + First double + Second double + True if double1 and double2 are equal. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + Gives direct access to the data + + + + + Returns the number of values + + + + + Getter and Setter for the missing value definition. + + + + + The epsilon (i.e. the small double value) that should be used when + checking + + + + + + The Vector class contains x,y,z components. + This is a trivial implementation of OpenMI.Standard.IVector, refer there for further details. + + + + + Constructor + + + + + Copy constructor + + The vector to copy + + + + Constructor + + x value + y value + z value + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + Getter and setter for x component + + + + + Getter and setter for y component + + + + + Getter and setter for z component + + + + + The VectorSet class contains a list of vectors. + This is a trivial implementation of OpenMI.Standard.IVectorSet, refer there for further details. + + + + + Constructor + + + + + Constructor + + List of vectors + + + + Copy constructor + + The VectorSet to copy + + + + Returns if a element is valid + + Element index + True if the element is valid + + + + Gets a vector with a given index + + Index + The vector + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + The number of elements in the list + + + + + The DataOperation class contains operations the providing component should + carry out on the data. + This is a trivial implementation of OpenMI.Standard.IDataOperation, refer there for further details. + + + + + Constructor + + + + + Initialize method + + The arguments for the data operations + + + + Copy constructor + + The Data Operation to copy + + + + Constructor with just a string ID + + The ID + + + + Gets one argument + + The index of the argument + The argument + + + + Adds an argument + + The argument to add + + + + Checks whether the current data operation is valid for the combination of + input and output exchange items + + The input exchange item + The output exchange item + The selected data operations + True if the data operation is valid + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + Setter and getter methods for ID + + + + + Getter method for the argument count + + + + + Setter and getter methods for the arguments + + + + + The input exchange item is an exchange item used for inputs + in the receiving component. + This is a trivial implementation of OpenMI.Standard.IInputExchangeItem, refer there for further details. + + + + + The exchange item is a combination of a quantity and an element set. + This is a trivial implementation of OpenMI.Standard.IExchangeItem, refer there for further details. + + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + Getter and setter for the quantity + + + + + Getter and setter for the element set. + See IExchangeItem.ElementSet. + + + + + The TimeSpan class defines a time span given a + start and end time. + This is a trivial implementation of OpenMI.Standard.ITimeSpan, refer there for further details. + + + + + Constructor + + Start time + End time + + + + Copy constructor + + The time span to copy + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + Getter and setter for start time + + + + + Getter and setter for end time + + + + + The LinkableComponent provides the OpenMI interface to the wrapped engine. + This is a trivial implementation of OpenMI.Standard.ILinkableComponent, refer there for further details. + + + + + Called before computation + + + + + Returns computed values + + The timestamp/timespan for which to return values + The linkID describing on which link values to return + The computed values + + + + Adds a link + + The link + + + + Removes a link + + The link ID + + + + Returns the accepting links + + The accepting links + + + + Returns the providing links + + The providing links + + + + Gets a link + + The link ID + The link + + + + Subscribes to an event + + The listener + The event type + + + + Unsubscribes to an event + + The listener + The event type + + + + Sends an event + + The event + + + + Returns a published event type + + The event index + The published event + + + + Returns the number of published events + + The number of published events + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Dispose function + + + + + Returns an input exchange item + + The input exchange item index + The input exchange item + + + + Returns if the component is valid (contains valid data) + + True if the component is valid + + + + Returns an output exchange item + + The output exchange item index + The output exchange item + + + + Adds an input exchange item + + The input exchange item + + + + Adds an output exchange item + + The output exchange item + + + + Initializes the component with the given arguments + + The arguments + + + + Finish clears up allocated memory and closes files + After this method is called no other methods should + be called on the LinkableComponent + + + + + Returns a string describing this linkable component + + The description + + + + Returns true if the linkable component has listeners + + True is linkable component has listeners + + + + Get Hash Code. + + Hash Code for the current instance + + + + Returns the number of links + + + + + Returns the component description + + + + + Returns the number of input exchange items + + + + + Returns the time horizon, which is the simulation start and stop + time for this component + + + + + Returns the earliest time for which input is needed + + + + + Returns the component ID + + + + + The model description + + + + + The model ID + + + + + The number of output exchange items + + + + + The Quantity class contains a unit, description, id, and dimension. + This is a trivial implementation of OpenMI.Standard.IQuantity, refer there for further details. + + + + + Constructor + + + + + Constructor + + ID + + + + Copy constructor + + The quantity to copy + + + + Constructor + + Unit + Description + ID + + + + Constructor + + Unit + Description + ID + Value type (vector or scalar) + + + + Constructor + + Unit + Description + ID + Value type (vector or scalar) + Dimension + + + + Returns the ID + + ID + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + Getter and setter for ID + + + + + Getter and setter for Dimension + + + + + Getter and setter for description + + + + + Getter and setter for unit + + + + + Getter and setter for value type (scalar/vector) + + + + + The output exchange item is an exchange item used for outputs + from the transmitting component. + This is a trivial implementation of OpenMI.Standard.IOutputExchangeItem, refer there for further details. + + + + + Get a data operation. See + + + + + Adds a data operation. + + The data operation to be added + + + + Getter for the number of data operations. See . + + + + + The list of data operations + + + + + The TimeStamp class defines a time instant. + This is a trivial implementation of OpenMI.Standard.TimeStamp, refer there for further details. + + + + + Constructor + + + + + Copy constructor + + The time stamp to copy + + + + Constructor + + The modified julian day for the time stamp + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Returns the hash code + + The hash code + + + + Compares two timestamps + + The timestamp to compare with + The result of the comparison + + + + Converts the time stamp to a string + + String converted time stamp + + + + Getter and setter for the modified julian day + + + + + The ElementSet class describes a collection of spatial elements. + This is a trivial implementation of OpenMI.Standard.IElementSet, refer there for further details. + + + + + Constructor + + + + + Copy constructor + + The element set to copy + + + + Constructor + + Description + ID + Element type + Spatial reference + + + + Adds an element + + The element to add + + + + Gets an element + + The element index + The element + + + + Returns an element ID for an element + + The element index + The element ID + + + + Returns the x coordinate for a vertex + + The element index + The vertex index + The x coordinate + + + + Returns the y coordinate for a vertex + + The element index + The vertex index + The y coordinate + + + + Returns the z coordinate for a vertex + + The element index + The vertex index + The z coordinate + + + + Returns the number of vertices for an element + + The element index + The number of vertices for this element + + + + Returns the element index for a given element ID + + The element ID + The element index + + + + Returns the list of face vertex indices for a given element and face + + The element index + The face index + List of face vertex indices + + + + Returns the face count for a given element + + The element index + The face count for the given element + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + String representation of the + + + + + + ElementSet version + + + + + Getter and setter functions for the element list + + + + + Setter and getter for the element set description + + + + + Setter and getter for the element set ID + + + + + Setter and getter for the element type + + + + + Returns the number of elements + + + + + Getter and setter for the spatial reference + + + + + The link is used to describe the data transfer between + linkable components. + This is a trivial implementation of OpenMI.Standard.ILink, refer there for further details. + + + + + Constructor + + + + + Copy constructor + + The link to copy + + + + Constructor + + The source component + The source element set + The source quantity + The target component + The target element set + The target quantity + The description + The ID + Data operations to be carried out by the provider + + + + Constructor + + The source component + The source element set + The source quantity + The target component + The target element set + The target quantity + The ID + + + + Adds a data operation + + The data operation + + + + Gets a data operation + + The index of the data operation + The data operation + + + + Check if the current instance equals another instance of this class. + + The instance to compare the current instance with. + true if the instances are the same instance or have the same content. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + Getter and setter for the link ID + + + + + Getter and setter for the link description + + + + + Getter and setter for the source component + + + + + Getter and setter for the source quantity + + + + + Getter and setter for the source element set + + + + + Getter and setter for the target component + + + + + Getter and setter for the target quantity + + + + + Getter and setter for the target element set + + + + + The number of data operations + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Backbone.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Backbone.dll new file mode 100644 index 00000000..4b95e690 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Backbone.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Buffer.XML b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Buffer.XML new file mode 100644 index 00000000..655300bb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Buffer.XML @@ -0,0 +1,186 @@ + + + + Oatc.OpenMI.Sdk.Buffer + + + + + Support functions for the Buffer. + + + + + return true if ta is before tb (eveluates (ta less than tb) + + Time ta + time tb + true if ta is before tb (eveluates (ta less than tb) + + + + GetVal will get the index´th number of the axisNumber´th component of the + ValueSet. + + ValueSet to read the value from. + Index of the value in the ValueSet. + Relevant for VectorSets only. 1: x, 2: y, 3: z. + The index´th number of the axisNumber´th component + + + + The SmartBuffer class provides bufferig functionality that will store values needed for a + particular link in memory and functionality that will interpolate, extrapolate and aggregate + values from these values. + + + + + Short description of the SmartBuffer + + + The content of the SmartBuffer is lists of corresponding times and ValueSets, + where times can be TimeStamps or TimeSpans and the ValueSets can be ScalarSets or VectorSets. + Or in other words the content of the SmartBuffer is corresponding ScalarSets and TimeStamps, or ScalarSets and TimeSpans, or VectorSets and TimeStamps, or VectorSets and TimeSpans. + + SmartBuffer objects may not contain mixtures of TimeSpans and TimeStamps and may not contain mixtures of ScalarSets and VectorSets. + The number of Times (TimeSpans or TimeStamps) must equal the number of ValueSets ( ScalarSets or VectorSets) in the SmartBuffer. + + + + + Create a new SmartBuffer with values and times copied from another SmartBuffer + + The SmartBuffer to copy + + + + Add corresponding values for time and values to the SmartBuffer. + + Description of the time parameter + Description of the values parameter + + The AddValues method will internally make a copy of the added times and values. The reason for + doing this is that the times and values arguments are references, and the correspondign values + could be changed by the owner of the classes + + + + + Returns the timeStep´th ITime. + + time step index + The timeStep´th ITime + + + + Returns the timeStep´th IValueSet + + time step index + The timeStep´th IValueSet + + + + Returns the ValueSet that corresponds to requestTime. The ValueSet may be found by + interpolation, extrapolation and/or aggregation. + + time for which the value is requested + valueSet that corresponds to requestTime + + + + A ValueSet corresponding to a TimeSpan is calculated using interpolation or + extrapolation in corresponding lists of ValueSets and TimeSpans. + + Time for which the ValueSet is requested + ValueSet that corresponds to requestedTime + + + + A ValueSet corresponding to a TimeSpan is calculated using interpolation or + extrapolation in corresponding lists of ValueSets and TimeStamps. + + Time for which the ValueSet is requested + ValueSet that corresponds to requestedTime + + + + Makes a copy of the first ValueSet in the list of valueSets + + + + + + A ValueSet corresponding to a TimeStamp is calculated using interpolation or + extrapolation in corresponding lists of ValueSets and TimeStamps. + + TimeStamp for which the values are requested + ValueSet that corresponds to the requested time stamp + + + + A ValueSet corresponding to a TimeSpan is calculated using interpolation or + extrapolation in corresponding lists of ValueSets and TimeSpans. + + Time for which the ValueSet is requested + ValueSet that corresponds to requestedTime + + + + Checks weather the contents of the buffer is valid. + + + + + Validates a given time. The check made is for TimeSpan the starting time must be smaller + than the end time. Throws exception if the time is not valid. + + + + + Clear all times and values in the buffer at or later than the specified time + If the specified time is type ITimeSpan the Start time is used. + + + + + + Clear all records in the buffer assocaited to time that is earlier that the + time specified in the argument list. However, one record associated to time + before the time in the argument list is left in the buffer. + The criteria when comparing TimeSpans is that they may not overlap in order + to be regarded as before each other. + (see also Oatc.OpenMI.Sdk.Buffer.Support.IsBefore(ITime ta, ITime tb) + + time before which the records are removed + + + + Clears the buffer between start- and end- time of the time (TimeSpan). + + + + + RelaxationFactor. The relaxation factor must be in the interval [0; 1]. The relaxation + parameter is used when doing extrapolation. A value of 1 results in nearest extrapolation + whereas a value 0 results in linear extrapolation. + + + + + Number of time streps in the buffer. + + + + + Read only property for the number of values in each of the valuesets contained in the buffer. + + + + + Read/Write property flag that indicates wheather or not to perform extended data + checking. + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Buffer.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Buffer.dll new file mode 100644 index 00000000..0abd926e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Buffer.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.DevelopmentSupport.XML b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.DevelopmentSupport.XML new file mode 100644 index 00000000..1414763f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.DevelopmentSupport.XML @@ -0,0 +1,1095 @@ + + + + Oatc.OpenMI.Sdk.DevelopmentSupport + + + + + Support class for reading and writing objects to xml. + Each object to be written or read is accessed in a generic way for the properties to write or read. This is done via an aggregate intermediate object. + Objects are written once in an xml file. If they are encountered more than once, references are written. References may refer to other files. + Writing and reading strings is always done and expected in neutral culture (English-US) in order to enable exchangability. + Needed meta info is retrieved from MetaInfo. + MetaInfo used by XmlFile + + + + + + + Reads an object from file + The file to read should have been registered with the object earlier by a reqad or write action + + The object to be read + Cannot find file to read + Cannot resolve class type when an object for an xml element must be instantiated + Cannot find class type + Xml element holds a reference, but referenced object cannot be found + Schema cannot be found although it has been specified in MetaInfo + Validation error when xml file doesn't meet specified schema + + + + Reads an object from file + + The object to be read + The file containing the object's information + Cannot find file to read + Cannot resolve class type when an object for an xml element must be instantiated + Cannot find class type + Xml element holds a reference, but referenced object cannot be found + Schema cannot be found although it has been specified in MetaInfo + Validation error when xml file doesn't meet specified schema + + + + Reads and creates an object from a given file + + The file containig the object to be read + Populated object + Cannot find file to read + Cannot resolve class type when an object for an xml element must be instantiated + Cannot find class type + Xml element holds a reference, but referenced object cannot be found + Schema cannot be found although it has been specified in MetaInfo + Validation error when xml file doesn't meet specified schema + + + + Creates and reads an object from a given file + + The file containig the object to be read + The expected class type of the new object + The new populated object + Cannot find file to read + Cannot resolve class type when an object for an xml element must be instantiated + Cannot find class type + Xml element holds a reference, but referenced object cannot be found + Schema cannot be found although it has been specified in MetaInfo + Validation error when xml file doesn't meet specified schema + + + + Callback method used for validation against an xsd file + + Sender of the method + Error details + Validation error when xml file doesn't meet specified schema + + + + Gets a stream containing an xsd file, which resides within an assembly. + + If the xsdPackage isn't defined, type in the assembly in which the xsd file should reside + Name of the schema + The assembly in which the xsd file resides + The xsd stream, null if not found + + + + Reads the current xml element into an object. + Then moves the xml stream forward to the next element. + If the next element is one level deeper, that element is read by calling this method recursively. + Finally the current element is positioned on the first unread element. + By calling this method at the top level of an xml file, the whole xml file is read. + + The xml stream + The object which will be populated with data within the current xml element + The parent of the object, i.e. the object to which the target will be assigned + The property of the parent + The root object of the xml file + Read only property has null value, but a property of this object should be set according to the xml file + + + + Gets the object associated with an xml element. + Different procedures are followed for the following cases: + 1) The file is mentioned. Then that file is read and the top object (a.k.a. the root) of that file is returned + 2) The file is mentioned and the xml element is defined as a reference. Then that file is read (if not before) and the root of the file is asked for a property with the specified reference. + 3) The file isn't mentioned and the xml element is defined as a reference. Then the object is retrieved from the registration. + 4) Otherwise the object is instantiated + + The xml stream + The type to instantiate when no type is specified in the xml element + The top object of the xml stream + The object associated with the xml element + Cannot resolve class type when an object for an xml element must be instantiated + Cannot find class type + Cannot instantiate object for known class type + Xml element holds a reference, but referenced object cannot be found + + + + Reads the attributes of the current xml element and uses them to populute the target with + + The object which is populated with the xml attributes + The xml stream + Top object of the xml stream + Cannot find class type + Cannot instantiate object for known class type + + + + Moves the xml stream forward to the next readable element + + The xml stream + + + + Sets up registration tables for a root object + + The root object + + + + Registers that an object is written to or read from the same file as a root object. + This method calls RegisterKey internally. + + The object to register + The xml stream + The object at the top of an xml file + + + + Registers an object with a unique key within the scope of the root. + + The root object + The unique key + The object to register + + + + Gets a key from registration given the object. + The key will only be found if RegisterKey or RegisterObject has been called before. + + The root object, the scope where is searched for the object + The object to search for + The key, null if not found + + + + Gets an object from registration given the key. + The object will only be found if RegisterKey or RegisterObject has been called before. + + The root object, the scope where is searched for the key + The key to search for + The associated object, null if not found + + + + Gets the file associated with an object. + The object should be the root of the file, i.e. associated with the top xml element. + + + The file, null if the object isn't a root of a file + + + + Gets a list of all objects, whcih are known to be the root of a file. + The root of a file is the object associated with the top xml element. + + + + + + Gets the root object of a file + + Full name of the file + The root object, null if not found + + + + Gets the file registered with an object and if not found, a new file is created + + The object an associated file is searched for + Directory in which a new file will be created, if no file exists + The associated file + + + + Removes an object of all registrations. + To be used for releasing memory + + The object to be removed from registrations + + + + Gets the aggregate of an object. + The aggregate is an object, which can be used for querying the object in a generic way. + The MetaInfo attribute "ObjectAggregate" is used to identify the class type of the aggregate, if not present DefaultAggregate is used. + The same aggregate object is reused when the same object is passed. + + + + The object an aggregate is asked for + The aggregate object + Cannot find aggregate class type + Cannot instantiate aggregate for known class type + + + + Gets a string from an xml file which uniquely identifies the object which is currently parsed + This string reflects the identification of the object, e.g. the ID of the object + + + The xml file stream + Indication whether the current xml element refers to a prior definition of the object + The identification string + + + + Gets the key from an object. + If the key isn't unique and the property allows for key generation, a unique key is generated. + + + + + + + + Writes an object to an xml file + The registered file of the object will be used as xml file. This is the file + to which the object was written to or read from in an earlier stage + + The object to be written + Cannot derive key for object which must be written as a reference. Probably MetaInfo is missing for the class and subject XmlKeyexception> + + + + Writes an object to an xml file + + The object to write + The xml file + Cannot derive key for object which must be written as a reference. Probably MetaInfo is missing for the class and subject XmlKeyexception> + + + + Writes an object to xml. This will write + 1) the type and assembly of the object to write + 2) xml attributes for all properties of the object which can be written as xml attributes + 3) xml elements for all other properties (this this method is called recursively) + + The xml stream + The object to be written + The object in the xml stream, which is associated with the xml parent element + Type of the object + Type expected + Object associated with the top of the xml stream + Name of the xml parent tag + List of all object written so far in this xml stream + Cannot derive key for object which must be written as a reference. Probably MetaInfo is missing for the class and subject XmlKeyexception> + + + + Gets the string representing an object. + This string value is used for writing the object in an xml file. + + The object a string value is requested for + Directory, which is used in case of files. Then the relative file path is returned + The string representation + + + + Gets all properties of an aggregate in a sorted way. + MetaInfo attribute "XmlIndex" is used for the sorting. + + The aggregate + Sorted property names + + + + Gets the xml element name for a specific property + + The class type containing the property + The property to write + Identifies whether the property is to be written completely or just a reference, because the property has been written before + The xml element name + + + + Indicates whether two objects are written in the same file. + This should occur when 1) the root of this object isn't the same as the root writing at this moment + or 2) the object is declared that it should be written in it's own file. + The root is the object at the top of the xml file + + First object + Second object + Indication same file + + + + Indicates whether a property should be written + + The class type of the object containing the property + The property to write + Identifies whether the property is to be written completely or just a reference, because the property has been written before + Boolean indicating whether the property is to be written + + + + Gets the single word given a plural word. + For example, plural word "variables" would return "variable". + + The plural word + The single word, "Item" if nothing specific can be derived + + + + Gets the property given a specific xml element name + + The object which will contain the property + The xml element name + The property name, null if not found + + + + Indicates whether an object can be written as an xml attribute (instead of an xml element) + + The class type of the object which should be written + Indication of writable as xml attribute + + + + Gets a temporary file. + When writing an xml file, first a temporary file is used and later it is moved to the actually intended file. + In this way the original file is left untouched when an exception occurs. + + The directory where the temp file should be located + The temporary file + + + + Support class for conversions between DateTime objects and Modified Julian Dates + Modified Julian Date is the number of days since November 17, 1858. + + + + + Converts a DateTime object to modified julian date + + DateTime object + Modified Julian Date (days since November 17, 1858) + + + + Converts a modified julian date to a DateTime object + + Modified Julian Date (days since November 17, 1858) + DateTime object + + + + This class provides some static methods to handle relative paths to files + + + + + Gets the relative path from a starting directory to a file + + Starting point + File to refer to + + + + + Gets the relative path from a starting directory to a directory + + Starting point + Directory to refer to + + + + + Gets the relative path given the base and target + + Array of directories for the base directory + Array of directories for the target file or directory + The relative path + + + + Returns an array of all directories in a path. The first directory is the highest directory in the path. + + Directory from which to generate the array + ArrayList containing all directories. Each element is a DirectoryInfo object + + + + Expands a relative path to a FileInfo object + + The directory from which the relative path is defined + The relative path + FileInfo object corresponding to the base directory and relative path + + + + Expands a relative path to a DirectoryInfo object + + The directory from which the relative path is defined + The relative path + DirectoryInfo object corresponding to the base directory and relative path + + + + Generates relative path by path. + + + + + + + + Number of methods for general operations on objects. They comprise: + 1. instantiating objects given a class name + 2. deep copy of objects + + + + + Gets a deep copy of a specified object. + Deep copying copies all primitive and enumeration properties and the properties for which MetaInfo "ObjectCopy" is set to true + + The object to be copied + The copied object + + + + Gets a deep copy of a specified object and copies referenced files + Deep copying copies all primitive and enumeration properties and the properties for which MetaInfo "ObjectCopy" is set to true + + The object to be copied + The path in which copied files will be positioned (relative to original position) + The copied object + + + + Creates an object which is a deep copy fo a source object, including copying of referenced file + Deep copying copies all primitive and enumeration properties and the properties for which MetaInfo "ObjectCopy" is set to true + + The object to be copied + Lookup table for already copied objects + Path where files are copied to + + + + + Deep copies all properties of source into the properties of target + Deep copying copies all primitive and enumeration properties and the properties for which MetaInfo "ObjectCopy" is set to true + + The source object + The target object + + + + Deep copies all properties of source into the properties of target, including files + Deep copying copies all primitive and enumeration properties and the properties for which MetaInfo "ObjectCopy" is set to true + + The source object + The target object + Path where files are copied to + + + + Gets the deep copy + + The object to be copied + The object which will be the copy + Collection of objects and their copied equivalents. Will be populated and queried during copy. + Relative path to location where copied files will reside + + + + Gets the deep copy + + The object to be copied + The object which will be the copy + Collection of objects and their copied equivalents. Will be populated and queried during copy. + Relative path to location where files will be copied to + Indicates whether the new object should refer to a copy or to the same object + + + + Gets a copy of a file. + If the file doesn't exist, the copied file will not exist neither. + + The file or directory to be copied + The relative path (starting from the location of the original file) to the directory where the file will be copied to + The copied file + + + + Loads an assembly. + The assembly name can be either a full path to a file or a full or partial name of an assembly registered in the GAC. + An empty assembly name is ignored. + + The assembly name + Assembly cannot be found in the GAC + + + + Loads an assembly. + + The assembly + + + + Tells whether an assembly has been loaded already. + + The assembly + Indication of loaded + + + + Gets the class object given a string describing the class. The following assemblies are queried: + 1. All assemblies loaded with ObjectSupport.LoadAssembly + 2. All assemblies which reside in the same directory as this assembly + + The class name, including path with namespaces + The class object or null if not found + Class cannot be found + + + + Creates a new object. + Types with an argumentless constructor can be created this way + + Full class name of the object to be instantiated + New object, null if not possible + + + + Creates a new object using a base value (e.g. a string with its value). + Normally primitives, enumerations and some value types can be instantiated this way. + Also types with constructors having one argument can be instantiated. + + Full class name of the object to be instantiated + Value which is passed as argument to the constructor + New object, null if not possible + + + + Creates a new object. + Types with an argumentless constructor can be created this way + + Class type of the object to be instantiated + New object, null if not possible + + + + Creates a new object using a base value (e.g. a string with its value). + Normally primitives, enumerations and some value types can be instantiated this way. + Also types with constructors having one argument can be instantiated. + + Class type of the object to be instantiated + Value which is passed as argument to the constructor + New object, null if not possible + + + + Creates a new object using a base value (e.g. a string with its value). + Normally primitives, enumerations and some value types can be instantiated this way. + Also types with constructors having one argument can be instantiated. + + Class type of the object to be instantiated + Value which is passed as argument to the constructor + Culture info used for parsing the base value + New object, null if not possible + + + + Implementation of IAggregate which is based on reflection. + This class is used by XmlFile as default + + + + + + This interface allows generic querying of an object's properties. + An aggregate serves as an "in between" object between a source (containing the actual information) and a querier (asking for properties, e.g. XmlFile). + + + + + Gets the class type of one of the properties + + Property name + The property type + + + + Tells whether a value can be assigned to the property + + Property name + Boolean indicating writable + + + + Tells whether a value can be retrieved from the property + + Property name + Boolean indicating readable + + + + Gets the value of a property + + Property name + The property value + + + + Sets the value of a property + + Property name + The new property value + + + + Gets a property value by reference. + A reference isn't necessary a property, but can be any string, as long as it can be interpreted by the aggregate + + Reference + The referenced value + + + + Tells the aggregate to process all information passed with SetValue calls + + + + + Tells the aggregate to prepare for subsequent GetValue calls + + + + + The underlying object which holds the actual information. + + + + + List of properties which can be queried in a generic way + + + + + Constructor which gets the underlying source object + + The underlying source object + + + + Gets the class type of a property by reflection + + The property name + The type of the property + + + + Indicates whether a property can be written to. Reflection is used. + + The property name + Property is writable, false if property doesn't exist + + + + Indicates whether a property can be read. Reflection is used. + + The property name + Property is readable, false if property doesn't exist + + + + Gets a value for a certain property. Reflection is used. + + The property name + The property value, null if the property doesn't exist + Internal exception raised by the source object when getting the value + + + + Sets a value for a certain property. Reflection is used. + + The property name + The new property value + Internal exception raised by the source object when setting the value + + + + Gets a referenced value, i.e. a value corresponding with a reference string within the scope of the source. + Implementation is delegated to XmlFile.GetRegisteredTarget. + + Reference + The referenced object + + + + Intended for updating the source after various SetValue calls. + Takes no action, because all SetValue calls are delegated directly to the source object with reflection. + + + + + Intended for updating the aggregate before various GetValue calls. + Takes no action, because all GetValue calls are delegated directly to the source object with reflection. + + + + + Gets the underlying source object + + + + + Gets a list of all properties defined in the class type of the source. + Reflection is used to get this list. + + + + + Support class for collections + + + + + Indicates whether an object is contained by a collection by comparing references. + The Equals method is not used, in contrary with the Contains method in the ArrayList. + + The collection + The object which might be in the collection + + + + + Converts a collection to an array + + The collection + The array + + + + This class registers extra information about classes and (optionally) properties in your application. + For example, information about how to write a property of a class into an xml file can be stored here. + This mechanism has great similarities with the attribute mechanism in the .Net framework, but differences are that + 1) entries can be set dynamically + 2) no code modification is necessary in the target classes (the classes for which information is stored) + + + MetaInfo.SetAttribute (typeof(ILinkableComponent), "XmlFile", true); + Tells that the interface ILinkableComponent has subject XmlFile, which has corresponding value true. + There must be another class which knows that subject XmlFile exists and uses this information in some way. + MetaInfo.SetAttribute (typeof(IElementSet), "ID", "XmlRefName", "RefID"); + Tells that the property ID in the interface IElementSet has subject XmlRefName, which has corresponding value "RefID". + + + + + Writes all metainfo to a file + + The file + + + + Reads all metainfo from file + + The file + + + + Sets metainfo about the xml file where meta info is saved in + + + + + Gets all metainfo concerning a given class + + The class name + All metainfo about a class, null if not found + + + + Gets all metainfo concerning a given class and creates an empty block if not found + + The class name + All metainfo about a class + + + + Stores information about a class + + The class about which information is stored (usually as class type or string) + The type of information (e.g. how the class is named in an xml file) + The actual value + + + + Stores information about a class and property + + The class about which information is stored (usually as class type or string) + The property in the class + The type of information (e.g. how the property is named in an xml file) + The actual value + + + + Gets the stored information for a class. + Not only the class is examined, but also all superclasses and implemented interfaces. + + The class about which information will be retrieved + The type of information required + The information stored for this object and type of information, null if not found + + + + Gets the stored information for a class and property. + Not only the class is examined, but also all superclasses and implemented interfaces. + + The class type about which information will be retrieved + The property for which information is to be required + The type of information required + The information stored for the class and property, null if not found + + + + Gets the stored information for a class. + Not only the class is examined, but also all superclasses and implemented interfaces. + + The object about which information will be retrieved + The type of information required + Default value if the information is not found + The information stored for this object and type, the default value if not found + + + + Gets the stored information for a class and property. + Not only the class is examined, but also all superclasses and implemented interfaces. + + The object about which information will be retrieved + The property in the class + The type of information required + Default value if the information is not found + The information stored for this class, property and type, the default value if not found + + + + Gets the stored information for an assembly. + + The assembly about which information will be retrieved + The type of information required + Default value if the information is not found + The information stored for this class, property and type, the default value if not found + + + + Gets the stored information for a string + + The string about which information will be retrieved + The type of information required + Default value if the information is not found + The information stored for this class, property and type, the default value if not found + + + + Gets a list of all properties in a class, for which a value has been stored. + All superclasses and implemented interfaces of the class are examined too. + + The class + List of properties + + + + Special list for all entered information in MetaInfo + + + + + Class which groups all information stored for a class in MetaInfo + + + + + Default constructor + + The class + + + + Gets a group of subjects and associated values for a property in the class + + The property + Group of subjects and associated values + + + + Gets a list of all properties for which a value is stored + + The list of properties + + + + Gets the stored value directly under a class for a certain subject + + The subject + The stored value, null if not found + + + + Gets the stored value directly under a class for a certain subject + + The subject + The new value + + + + Gets the stored value for a subject and property in the class + + The property + The subject + The stored value, null if not found + + + + Stores a new value for a subject and property in the class + + The property + The subject + The new value + + + + Tells whether a value is stored for a property and subject in the class + + The property name + The subject + Indication of presence of the property and subject + + + + Class for which information is stored + + + + + Group of subjects and stored values directly under the class (so without properties) + + + + + List of all properties for which a value is stored + + + + + Class which groups all information about a property of a class type in MetaInfo + + + + + Default constructor + + Property name + + + + Indication whether a subject is stored + + The subject + Indication whether the subject is stored + + + + Gets a list of all subjects stored for this property. + + List of all subjects + + + + The property name for which information is stored + + + + + Dictionary of all subjects and stored values. + The index specified the subject. + + + + + Aggregate class for MetaInfoClass. + Used when writing and reading with XmlFile. + + + + + Aggregate for the meta info class + An aggregate is an "in between" object between the element set and XmlFile. + /> + /> + + + + + Class type of a property + + The property name + The property type + + + + Tells whether a property can be written + + The property name + Indication of writable + + + + Tells whether a property can be read + + The property name + Indication of readable + + + + Gets the value of a property + + The property name + The property value + + + + Sets a value for a certain property + + The property name + The new property value + + + + Updates the underlying source. Takes no action. + + + + + Prepares the aggregate for subsequent GetValue calls. Takes no action. + + + + + Gets a referenced value, i.e. a value corresponding with a reference string within the scope of the source. + Implementation is delegated to XmlFile.GetRegisteredTarget. + + Reference + The referenced object + + + + Gets the underlying object + + + + + Gets a list of properties which are accessed in a generic way. + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.DevelopmentSupport.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.DevelopmentSupport.dll new file mode 100644 index 00000000..9a7cc6ab Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.DevelopmentSupport.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Spatial.XML b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Spatial.XML new file mode 100644 index 00000000..58ce9f49 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Spatial.XML @@ -0,0 +1,818 @@ + + + + Oatc.OpenMI.Sdk.Spatial + + + + + Summary description for DataOperation. + + + + + Redecalration of the overloaded constructor from the base class. + The redeclaration is probably needed since constructors can not be + marked as virtual. + + + + + Redecalration of the overloaded constructor from the base class. + The redeclaration is probably needed since constructors can not be + marked as virtual. + + + + + Redecalration of the overloaded constructor from the base class. + The redeclaration is probably needed since constructors can not be + marked as virtual. + + + + + For a given combination of inputExchangeItem, outputExchangeItem and list of dataOperation + it is decided if the dataOperations constitutes a valid set seen from a spatial settings + point of view. + + The input exchange item + The output exchange item + List of selected dataOperations + + + + XYPoint is simply a x and a y coordinate. + + + + + Constructor. + + None + + + + Constructor. + + None + + + + Constructor. + + None + + + + Compares the object type and the coordinates of the object and the + object passed as parameter. + + True if object type is XYPolyline and the coordinates are + equal to to the coordinates of the current object. False otherwise. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + Read/Write property describing the x-coordinate of the point. + + + + + Read/Write property describing the y-coordinate of the point. + + + + + Summary description for ElementSetChecker. + + + + + Static method that validates an object with an IElementSet interface. The method + raises an Exception in case IElementSet does not describe a valid ElementSet. + The checks made are: +

    ElementType: Check

    +

    XYPoint: Only one vertex in each element.

    +

    XYPolyline: At least two vertices in each element.

    +

    All line segments in each element has length > 0

    +

    XYPolygon: At least three vertices in each element.

    +

    Area of each element is larger than 0

    +

    All line segments in each element has length > 0

    +

    No line segments within an element crosses.

    +
    + + Object that implement the IElementSet interface + + + The method has no return value. + +
    + + +

    The XYPolygon class defines a polygon in the XY plane (no z coordinate)

    +

    +

    The XYPolygon class has a number of usefull methods and XYPolygon objects + are used as argument in a number of the methods in the Oatc.OpenMI.Sdk.Spatial + namespace.

    +

    +

    The XYPolygon class is inhereted from the org.OpenMI.Utilities.BackBone.Element class.

    +

    +

    It is possible to upcaste the XYPoint objects to Element objects.

    +

    +

    If you already have a Element object that defines a polygon you can construct + a new XYPoint using the Element objects as argument in the constructor.

    + +
    +
    + + + XYPolyline is a collection of points (at least 2) connected with straigth lines. + Polylines are typically used for presentation of 1D data, river networks e.t.c. + + + + + Constructor. + + + + + Constructor. Copies the contents of the xyPolyline parameter. + + Polyline to copy. + None + + + + Retrieves the x-coordinate of the index´th line point. + + Index number of the point. + X-coordinate of the index´th point in the polyline. + + + + Retrieves the y-coordinate of the index´th line point. + + Index number of the point. + Y-coordinate of the index´th point in the polyline. + + + + Retrieves the lineNumber´th line segment of the polyline. The index + list is zero based. + + Index number of the line to retrieve. + The lineNumber´th line segment of the polyline. + + + + Calculates the length of the polyline. + + Length of the polyline. + + + + Compares the object type and the coordinates of the object and the + object passed as parameter. + + True if object type is XYPolyline and the coordinates are + equal to to the coordinates of the current object. False otherwise. + + + + Get hash code. + + Hash Code for the current instance. + + + + The validate method check if the XYPolyline is valid. The checks + made are: + - is number of points >= 2 + - is the length of all line segments positiv + Exception is raised if the constraints are not met. + + + + + Read only property holding the list of points. + + + + + Constructor. + + + + + Constructor. Copies the contents of the xyPolygon parameter. + + Polygon to copy. + None + + + + Calcualtes area of polygon. + + Polygon area. + + + + Returns the XYline that connects XYPoint LineNumber and the next + number (i.e. LineNumber+1 or 0). + 0-based line number. + + The XYLine starting at node lineNumber. + + + + + Finds a set of three concecutive points that form a triangle, that + is not intersected by other parts of the polygon. + + + +

    i: Index for the "midlle" point of triangle that forms an ear. + The ear is formed by P(i-1), P(i) and P(i+1), where P are points + included in the polygon.

    +
    +
    + + + The method decides if the triangle formed by P(i-1), P(i) and + P(i+1) from Polygon are intersected by any of the other points + of the polygon. + + Middle index for the three points that forms the triangle + +

    true: If the triangle P(i-1), P(i), P(i+1) is intersected by other parts of Polygon

    +

    false: otherwise

    +
    +
    + + + Returns an ArrayList of triangles of type XYPolygon describing the + triangalation of the polygon. + + + + A triangulation of the polygon. + + + + + Decides if the angle at i´th point is convex or concave. + + Index + +

    True if angle at the i´th point is convex.

    +

    False if angle at the i´th point is concave.

    +
    +
    + + + Compares the object type and the coordinates of the object and the + object passed as parameter. + + True if object type is XYPolygon and the coordinates are + equal to to the coordinates of the current object. False otherwise. + + + + Get hash code. + + Hash Code for the current instance. + + + + The validate method check if the XYPolyline is valid. The checks + made are: + - is number of points >= 3 + - is the length of all line segments positiv + - do any lines cross + - is the area positiv + Exception is raised if the constraints are not met. + + + + + The XYline class is used for representing line segments. XYPolylines + and XYPolygons are composed of XYLines. + + + + + Constructor. + + None + + + + Constructor. + + x-coordinate for line start point + y-coordinate for line start point + x-coordinate for line end point + y-coordinate for line end point + None + + + + Constructor. + + Line start point + Line end point + None + + + + Constructor. Copies input line. + + Line to copy + + + + Calculates the length of line. + + Line length + + + + Calculates the mid point of the line. + + Returns the line mid point as a XYPoint + + + + Compares the object type and the coordinates of the object and the + object passed as parameter. + + True if object type is XYLine and the coordinates are + equal to to the coordinates of the current object. False otherwise. + + + + Get Hash Code. + + Hash Code for the current instance. + + + + Read only property describing the one end-point. + + + + + Read only property describing the one end-point. + + + + + The XYGeometryTools class is a collection of general geometry functions. All functions are + static methods that performs calculations on input given as parameters and returns a result. + + The parameters passed to the XYGeometryTools methods are typically of type XYPoint, XYLine, + XYPolyline or XYPolygon. + + + + + Returns the distance between the two points. + + Point + Point + Point to point distance + + + + Returns true if two line segments intersects. The lines are said to intersect if the lines + axctually crosses and not if they only share a point. + + x-coordiante for first point in first line segment + y-coordinate for first point in first line segment + x-cooedinate for second point in first line segment + y-coordinate for second point in first line segment + x-coordinate for the first point in second line segment + y-coordinate for the first point in second line segment + x-coordinate for the second point in the second line segment + y-coordinate for the second point in the second line segment + True if the line segments intersects otherwise false. + + + + OverLoad of DoLineSegmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4) + + First point in first line + Second point in first line + First point in second line + Second point in second line + true if the line segmenst intersects otherwise false + + + + OverLoad of DoLineSegmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4) + + First line + Second line + true if the line segmenst intersects otherwise false + + + + Calculate intersection point between two line segments. + + First point in first line + Second point in first line + First point in second line + Second point in second line + Intersection point + + + + OverLoad of CalculateIntersectionPoint(XYPoint p1, XYPoint p2, XYPoint p3, XYPoint p4) + + First line + Second line + Intersection point + + + + Calculates the length of polyline inside polygon. Lines segments on the edges of + polygons are included with half their length. + + Polyline + Polygon + + Length of polyline inside polygon. + + + + + Calculates the length that two lines overlap. + + Line + Line + + Length of shared line segment. + + + + + Calculates length of line inside polygon. Parts of the line that is on the edge of + the polygon only counts with half their length. + + Line + Polygon + + Length of line inside polygon. + + + + + The method calculates the intersection area of triangle a and b both + of type XYPolygon. + + Triangle of type XYPolygon + Triangle of type XYPolygon + + Intersection area between the triangles triangleA and triAngleB. + + + + + The method calculates the intersection points of triangle a and b both + of type XYPolygon. + + triangle. The search is started along triangleA. + triangle. Intersection with this triangle are sought. + Starting point for the search. p must be part of triangleA. + on input: End index for the first line segment of triangleA in the search. + on output: End index for the last intersected line segment in triangleA. + on input: -1 if vertices before intersection is not to be added to list. + on output: End index for last intersected line segment of triangleB. + polygon eventuallu describing the + intersection area between triangleA and triangleB + + The p, i, j and intersectionPolygon are called by reference and modified in the method. + + + + + The method steps to the next index in a circular list 0, 1 ..., n. + + Index to increase. + Largest index + +

    The increased index.

    +
    +
    + + + The method steps to the previous index in a circular list 0, 1 ..., n. + + Index to decrease. + Largest index + +

    The decreased index.

    +
    +
    + + + Checks if the lines lineA and lineB shares a point either as a real + crossing point or as a shared end point or a end point of the one + line being in the other line. + + Line. + Line. + Point. + +

    True if lineA and lineB has shared point. False otherwise

    +

    The shared point if any is returned in the intersectionPoint + parameter that is called by reference

    +
    +
    + + + Determines if a point is included in a line either in the interior + or as one of the end points. + + x-coordinate + y-coordinate + Line. + +

    Determines if a point is included in a line.

    +
    +
    + + + Determines if a point is included in a line either in the interior + or as one of the end points. +

    Overload to: IsPointInLine(double x, double y, XYLine line)

    +
    + + Point + Line. + + +

    Determines if a point is included in a line.

    +
    +
    + + + Determines if a point is included in a lines interior. I.e. included + in the line and not an endpoint. + + x-coordinate + y-coordinate + Line. + +

    Determines if a point is included in a line.

    +
    +
    + + + Determines if a point is included in a lines interior. I.e. included + in the line and not an endpoint. +

    Overload to:IsPointInLineInterior(double x, double y, XYLine line)

    +
    + Point. + Line. + +

    Determines if a point is included in a line.

    +
    +
    + + + Calculates the distance from a polyline to a point in the plane. + The algorithm decides weather the point lies besides the line + segment in which case the distance is the length along a line + perpendicular to the line. Alternatively the distance is the + smallest of the distances to either endpoint. + + Line + Point + +

    Length of the shortest path between the line and the point.

    +
    +
    + + + Finds the shortest distance between any line segment of the polyline + and the point. + + PolyLine. + Point + +

    Length of the shortest path between the polyline and the point.

    +
    +
    + + + Determines if a point in inside or outside a polygon. + Works for both convex and concave polygons (Winding number test) + + Point + Polygon + +

    true: If the point is inside the polygon

    +

    false: Otherwise.

    +
    +
    + + + Determines if a point in inside or outside a polygon. + Works for both convex and concave polygons (Winding number test) + + x-coordinate for the point + y-coordiante for the point + Polygon + +

    true: If the point is inside the polygon

    +

    false: If the point is outside the polygon.

    +
    +
    + + + Determines if a point in inside or outside a polygon. Inside + includes on the edge for this method. + Works for both convex and concave polygons (Winding number test) + + x-coordinate for the point + y-coordiante for the point + Polygon + +

    true: If the point is inside the polygon

    +

    false: If the point is outside the polygon.

    +
    +
    + + + The methods calculates the shared area of two arbitrarily shaped + polygons. + + Polygon + Polygon + +

    The shared area.

    +
    +
    + + + The ElementMapper converts one ValueSet (inputValues) associated one ElementSet (fromElements) + to a new ValuesSet (return value of MapValue) that corresponds to another ElementSet + (toElements). The conversion is a two step procedure where the first step (Initialize) is + executed at initialisation time only, whereas the MapValues is executed during time stepping. + +

    The Initialize method will create a conversion matrix with the same number of rows as the + number of elements in the ElementSet associated to the accepting component (i.e. the toElements) + and the same number of columns as the number of elements in the ElementSet associated to the + providing component (i.e. the fromElements).

    + +

    Mapping is possible for any zero-, one- and two-dimensional elemets. Zero dimensional + elements will always be points, one-dimensional elements will allways be polylines and two- + dimensional elements will allways be polygons.

    + +

    The ElementMapper contains a number of methods for mapping between the different element types. + As an example polyline to polygon mapping may be done either as Weighted Mean or as Weighted Sum. + Typically the method choice will depend on the quantity mapped. Such that state variables such as + water level will be mapped using Weighted Mean whereas flux variables such as seepage from river + to groundwater will be mapped using Weighted Sum. The list of available methods for a given + combination of from and to element types is obtained using the GetAvailableMethods method.

    +
    +
    + + + Constructor. + + + + + Initialises the ElementMapper. The initialisation includes setting the _isInitialised + flag and calls UpdateMappingMatrix for claculation of the mapping matrix. + + + String description of mapping method + The IElementSet to map from. + The IElementSet to map to + + + The method has no return value. + + + + + MapValues calculates a IValueSet through multiplication of an inputValues IValueSet + vector or matrix (ScalarSet or VectorSet) on to the mapping maprix. IScalarSets maps + to IScalarSets and IVectorSets maps to IVectorSets. + + + + Mapvalues is called every time a georeferenced link is evaluated. + + + IValueSet of values to be mapped. + + + A IValueSet found by mapping of the inputValues on to the toElementSet. + + + + + Calculates the mapping matrix between fromElements and toElements. The mapping method + is decided from the combination of methodDescription, fromElements.ElementType and + toElements.ElementType. + The valid values for methodDescription is obtained through use of the + GetAvailableMethods method. + + + + UpdateMappingMatrix is called during initialisation. UpdateMappingMatrix must be called prior + to Mapvalues. + + + String description of mapping method + The IElementset to map from. + The IElementset to map to + + + The method has no return value. + + + + + Extracts the (row, column) element from the MappingMatrix. + + + Zero based row index + Zero based column index + + Element(row, column) from the mapping matrix. + + + + + Sets individual the (row, column) element in the MappingMatrix. + + + Element value to set + Zero based row index + Zero based column index + + No value is returned. + + + + + Gives a list of descriptions (strings) for available mapping methods + given the combination of fromElementType and toElementType + + + Element type of the elements in + the fromElementset + Element type of the elements in + the toElementset + + +

    ArrayList of method descriptions

    +
    +
    + + + Gives a list of ID's (strings) for available mapping methods + given the combination of fromElementType and toElementType + + + Element type of the elements in + the fromElementset + Element type of the elements in + the toElementset + + +

    ArrayList of method ID's

    +
    +
    + + + This method will return an ArrayList of IDataOperations that the ElementMapper provides when + mapping from the ElementType specified in the method argument. + + + Each IDataOperation object will contain 3 IArguments: +

    [Key] [Value] [ReadOnly] [Description]-----------------

    +

    ["Type"] ["SpatialMapping"] [true] ["Using the ElementMapper"]

    +

    ["ID"] [The Operation ID] [true] ["Internal ElementMapper dataoperation ID"]

    +

    ["Description"] [The Operation Description] [true] ["Using the ElementMapper"]

    +

    ["ToElementType"] [ElementType] [true] ["Valid To-Element Types"]

    +
    + + + ArrayList which contains the available dataOperations (IDataOperation). + +
    +
    +
    diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Spatial.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Spatial.dll new file mode 100644 index 00000000..1ebf27d2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Spatial.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Wrapper.XML b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Wrapper.XML new file mode 100644 index 00000000..b10bdf9d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Wrapper.XML @@ -0,0 +1,825 @@ + + + + Oatc.OpenMI.Sdk.Wrapper + + + + + The class Oatc.OpenMI.Sdk.Wrapper.LinkableEngine will access the model engine through + this interface. + + + + + The IRunEngine is the interface the ModelEngine component + The Class Oatc.OpenMI.Sdk.Wrapper.LinkableRunEngine will access the + model engine component through this interface. + + + None + + + + + Initialize will typically be invoked just after creation of the object + that implements the IRunEngine interface. + + + Hashtable with the same contents as the Component arguments + in the ILinkableComponent interface. Typically any information + needed for initialization of the model will be included in this table. + This could be path and file names for input files. + + + + + This method will be invoked after all computations are completed. Deallocation of memory + and closing files could be implemented in this method + + + + + This method will be invoked after all computations are completed + and after the Finish method has been invoked + + + + + This method will make the model engine perform one time step. + + Returns true if the time step was completed, + otherwise it will return false + + + + + Get the current time of the model engine + + The current time for the model engine + + + + Get the time for which the next input is needed for + a specific Quantity and ElementSet combination + + ID for the quantity + ID for the ElementSet + ITimeSpan or ITimeStamp + + + + Get earlist needed time, which can be used + to clear the buffer. For most time stepping model engines this + time will be the time for the previous time step. + + TimeStamp + + + + Sets values in the model engine + + quantityID associated to the values + elementSetID associated to the values + The values + + + + Gets values from the model engine + + quantityID associated to the requested values + elementSetID associated to the requested values + The requested values + + + + In some situations a valied values cannot be return when the + Oatc.OpenMI.Sdk.Wrapper.IRunEngine.GetValues is invoked. In such case a missing values + can be returned. The GetMissingValeusDefinition method can be used to query which definition + of a missing value that applies to this particular model component. Example of missing value + definition could be: -999.99 + + Missing value definition + + + + Get the ComponentID. The component ID is the name of the non-populated component. This is typically + the product name of your model engine. + + Component ID + + + + Get a description of your component. This description refers to the non-populated component. This is + typically a description of what your component does and which methods that are used. E.g. "Finite element + based ground water model". + + Component description + + + + Returns the ModelID. The ModelID identifies the populated model component. + Example: "River Rhine" + + ModelID + + + + Return the Model Description. The Model Description is a description of the populated + model component. + + Model description + + + + Return the time horison for the populated model compoent. The Time Horizon for a model i typically + the same as the simulation period, which normally depend on de available input data. When you model + is running in the OpenMI environment, the model component must be able to return values within the + TimeHorizon + + TimeHorizon + + + + Returns the number of input exchange items for the populated model component. + + InputExchangeItemCount + + + + Returns the number of output exchange items for the populated model component. + + OutputExchangeItemCount + + + + Returns a specific output exchange item from the populated model component. + + index number + OutputExchangeItem according the the index number + + + + Returns a specific input exchange item from the populated model component. + + index number + InputExchangeItem according the the index number + + + + The SmartLink contains the link and a reference to the engine + + + + + Reference to the Link + + + + + Reference to the engine + + + + + Error messages + + Error Messages + + + + Warining + + warnings + + + + The ILink object contained in the SmartLink + + + + + Reference to the engine + + + + + Combined ITime and IValueSet. Used in connection with the IAdvancedEngine interface + + + + + Constructor + + ITime object + IValuesSet object + + + + The time + + + + + The values + + + + + Smart output link + + + + + Constructor + + reference to the engine + The ILink object + + + + Initialize will create buffers, prepare data operations and create the mapping matrice when georeferenced links are used. + The initialize method should be invoked in the ILinkableComponent prepare method (is done from the LinkableRunEngine). + + + + + The last time in the buffer + + the latest time in the buffer + + + + Update the associated buffer with the last values calculated by the engine + + + + + Retrieves a value from the buffer that applies to the time passes as argument. + During this process the buffer will do temporal operations, + such as extrapolations, interpolations, or aggregation + + The time for which the values should apply + The values + + + + Convert the units according the what is specified in the link + + The values + The unit converted values + + + + Saves a copy of the buffer + + ID for the saved buffer state + + + + Clears a buffer state + + ID for the state to clear + + + + Restores the buffer with a previously saved buffer state + + ID for the state to restore + + + + The SmartBuffer associated to the SmartOutputLink + + + + + The IAdvancedEngine interface is introduced in order to facilitate models + where different quantities are calculated base on different time step lengths. + One example of such model could be a multi-domain model such a models for combined + ground water and surface water. Typically the time step length for the ground + water calculations will be much longer that the time step length for the surface + water calculations. In the IEngine interface values are pulled from the engine + through the GetValues method, which returns a IValueSet. In this cases it will + be assumed that the accociated time is the current time which is obtained through + the IEngine interface through the GetCurrentTime. By use of the IAdvanceEngine + interface accociated values can be pulled from the engine through the + GetValues method that will return an instance of the TimeValues class, + which contains a IValueSet and the associated ITime. The IAdvanced i + nterface is implemented as a separate interface in order to facilitate + backward compatibility. + Summary description for IAdvancedEngine. + + + + + The GetValues method will return an instance of the TimeValues class, + which is the currently calculated values as IValueSet and the associated time as ITime. + + The Quantity ID for the requested values + The ElementSet ID for the requested values + TimeValueSet which is the calculated values and the associated time + + + + The LinkableRunEngine implements the run time part of the ILinkableComponent interface. + The remaining methods are implemented in the derived LinkableEngine class. There are + historical reasons for splitting the functionality between the two classes. + The LinkableRunEngine class and the LinkableEngine class could be merged, + but for the time being these are keeps as they are in order to support backward compatibility. + + + + + List of SmartInputLinks + + + + + List of SmartOutput Links + + + + + Reference to the engine. Must be assigned in the derived class + + + + + True if the _engineApiAccess was assigned + + + + + True if the Initialize method was invoked + + + + + True if the Prepare method was invoked + + + + + True if the component is gathering data from other LinkableComponents + + + + + Arraylist of published event types + + + + + used when comparing time in the IsLater method (see property TimeEpsilon) + + + + + Current validation string from the Validate method + + + + + The current validateion error message + + + + + Constructor method for the LinkableRunEngine class + + + + + Add a link to the LinkableComponent + + The Link + + + + Creates a new input link + + The engine + The link + The new input link + + + + Creates a new output link + + The engine + The link + The new output link + + + + Implementaion of the same method in the + OpenMI.Standard.ILinkableComponent + + + + + Implementation of the same method in + OpenMI.Standard.ILInkableComponent + + Time (ITimeSpan or ITimeStamp) for which values are requested + LinkID associated to the requested values + The values + + + + Finish + + + + + Initialize + + Initialization parameters + + + + Prepare. This method will be invoked after end of configuration and before the first GetValues call + + + + + Remove a link + + Link ID for the link to be removed + + + + Returns an array of input ILink which contains links already added to this component. + + Returns an array of ILink which contains links already added to this component + + + + Returns an array of output ILink which contains links already added to this component. + + Returns an array of output ILink which contains links already added to this component. + + + + Set reference to the engine + + + + + Keep Curren state + + ID for the state keept + + + + Restore a state + + ID for the state to restore + + + + Clear a state + + ID for the state to clear + + + + Get the published event types. + + index for the requested event type + the requested event type + + + + Get the number of published event types + + Number of published event types + + + + Convert a ITime object to a ITimeStamp. + + The ITime object to convert + The converted time + + + + Will compare two times. If the first argument t1, is later than the second argument t2 + the method will return true. Otherwise false will be returned. t1 and t2 can be of types + ITimeSpan or ITimeStamp. + + First time + Second time + isLater + + + + Converts a ITime object to a formatted string + + The time to convert + The formatted string + + + + get an input exchange item + + index number for the requested input exchange item + the requested input exchange item + + + + get an output exchange item. + + index number for the requested exchange item + the requested exchange item + + + + Validate the component + + Empty string if no warnings were issued, or a description if there were warnings + + + + Implementation of the same method in the + OpenMI.Standard.ILinkableComponent interface + + + + + This _timeEpsilon variable is used when comparing the current time in the engine with + the time specified in the parameters for the GetValue method. + if ( requestedTime > engineTime + _timeEpsilon) then PerformTimestep().. + The default values for _timeEpsilon is double.Epsilon = 4.94065645841247E-324 + The default value may be too small for some engines, in which case the _timeEpsilon can + be changed the class that you have inherited from LinkableRunEngine og LinkableEngine. + + + + + Description of the component + + + + + ID for the component + + + + + Get the reference to the engine + + + + + Model descscription + + + + + Model ID + + + + + Time Horizon + + + + + Number of input exchange items + + + + + number of output exchange items + + + + + The LinkableEngine class inplements the ILinkableComponent interface. + In normal usage of the Wrapper package, the person migrating a model will inherit + his own class from this class. The LinkableEngine class is an abstract class due to the + abstract method SetEngineApiAccess. This method must be overridden in the derived class. + + Implementation of the ILinkableComponent methods are done partly in this class (LinkebleEngine class) + and partly in the parent class – LinkableRunEngine class. There are historical reasons for + dividing the implementation into two classes, and basically the LinkebleEngine class and the + LinkebleRunEngine class could be merged. However, in order to keep the backward compatibility + the two classes still exists. + + + + + constructor + + + + + Get an input exchange item + + index of the requested input exchange item + The input exchange item + + + + get a output exchange item + + index number of the requested output exchange item + The requested exchange item + + + + The SetEngineApiAccess() method is abstract and as such should be overridden in the derived class. + This method should set the reference to the class that implements the IEngine interface. + The property EngineApiAccess, which is implemented in the LinkableRunEngine class is used + to assign this reference. + + + + + Number of input exchange items + + + + + Number of output exchange items + + + + + Model description + + + + + Model ID + + + + + Time TimeHorizon for the model, which is the time period in which the model can be requested + for values + + + + + The SmartInputLink contains the ILink object. The smart input link + has a reference to the engine, which enables the SmartInputLink to update input. + + + + + Constructor + + Reference to the engine + Reference to the link + + + + Retrieves data from the providing LinkableComponent as defined + in the Link and sets this data in the engine + + + + + Send event + + the event type to send + reference to the sender (this) + + + + The LinearDataOperation class is an implementation of the IDataOperation interface. + The LinearDataOperation can make linear conversion on ScalarSets. The ax+b type of operations. + + + + + Constructor + + + + + The linear dataoperation is valid for any input and output exchange items and can be combined with any other + dataopertion, consequently this method always return true. + See also documentation for : OpenMI.Standard.IDataOperation for details + + inputExchangeItem + outputExchangeItem + SelectedDataOperations + + + + + Initialises the data operation. Nothing is done for the Linear dataoperation + + arguments + + + + Returns the arguments for the Linear Dataoperation + + Argument index + + + + + The prepare method should be called before the PerformDataOperation. This method is + not part of the OpenMI.Standard.IDataOperation interface. This method will convert + the arguments which originally are defined as strings to doubles and subsequently assign + these values to private field variables. The prepare method is introduced for performance + reasons. + + + + + The ValueSet is converted. This method does not support VectorSet, so if the ValueSet is a Vectorset + an exception will be thrown. The parameters passed in this method is not used, since all needed information + is already assigned in the Prepare method. + + argumens but not used in this method + The converted ValueSet + + + + Creates a copy of the current instance. + + Copy of the instance + + + + DataOperation ID. In this class always "Linear Conversions" (is hardcoded) + + + + + Number of dataoperation arguments. For the Linear dataoperation this number is always 3 (coefficient a, offset b and description text) + + + + + The SmartBuffer data operation class is used to define the temporal relaxations factors and to define the level of validation + + + + + Constructor + + + + + This data operation can be combined with any other data operation, so this method always return true + + input exchange items + output exchange items + the selected data operations + true if valid, false if invalid + + + + Initialize + + parameters + + + + get argument + + index for the requested argument + the requested argument + + + + prepare + + + + + Creates a copy of the current instance. + + Copy of the instance + + + + Data operation ID + + + + + Number of arguments + + + + + If true the component will do extended data validation + + + + + Relaxation factor for temporal extrapolation + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Wrapper.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Wrapper.dll new file mode 100644 index 00000000..055dad00 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/Oatc.OpenMI.Sdk.Wrapper.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/OpenMI.Standard.XML b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/OpenMI.Standard.XML new file mode 100644 index 00000000..f73958eb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/OpenMI.Standard.XML @@ -0,0 +1,1286 @@ + + + + OpenMI.Standard + + + + + Vector interface + + + + + Vector component in X-direction + + + + + Vector component in Y-direction + + + + + Vector component in Z-direction + + + + + VectorSet interface + (Array of vectors for a certain quantity on a certain elementset). + + + + + ValueSet interface + (Base for VectorSet and ScalarSet) + + + + + Is a value valid or missing/deleted? + + The element index. + True if the value is valid. + + + + Number of elements in the set + + + + + Vector for one of the elements in the set + + index in the vector set. + vector. + + + + Time interface + ('Abstract' interface, base for TimeStamp and TimeSpan) + + + + + Manage State Interface. (To be implemented optionally, in addition to + the linkable component interface.) + + + + + Store the linkable component's current State + + State identifier. + + + + Restores the state identified by the parameter stateID. If the state identifier identified by + stateID is not known by the linkable component an exception should be trown. + + State identifier. + + + + Clears a state from the linkable component's memory. If the state identifier identified by + stateID is not known by the linkable component an exception should be trown. + + State identifier. + + + + An IInputExchangeItem describes an input item that can be accepted by a LinkableComponent. + The item describes a combination of quantity and elementSet that can be accepted. + + + + + ExchangeItem interface + + + + + The Quantity + + + + + The ElementSet + + + + + The IArgument interface defines a key – value pair. If the property ReadOnly is + false the value is editable otherwise it is read-only. + + + + + The key (string) in key-value pair. + + + + + The value (double) in key-value pair. + + If the ReadOnly property is true and the property is attempted to be changed + from outside an exception must be thrown. + + + + + Defines whether the Values property may be edited from outside. + + + + + Description of the key-value pair. + + + + + Publisher interface + + + + + Subscribes a listener + + The listener. + The event type. + + + + Unsubscribes a listener + + The listener. + The event type. + + + + Sends an event to all subscribed listeners + + The event. + + + + Get number of published event types + + Number of provided event types. + + + + Get provided event type with index providedEventTypeIndex + + index in provided event types. + Provided event type. + + + + The ILinkableComponent is the key interface in the OpenMI standard. + Any OpenMI compliant component must implement ILinkableComponent. + + OpenMI compliance definition: + + § 1) An OpenMI compliant component must implement the ILinkableComponent interface according to specifications provided as comments in the OpenMI.Standard interface source code. + + § 2) An OpenMI compliant component must, when compiled, reference the OpenMI.Standard.dll, which is released and compiled by the OpenMI Association. + + § 3) An OpenMI compliant component must be associated with a XML file, which complies to (can be validated with) the LinkableComponent.xsd schema. + + § 4) An OpenMI compliant component must be associated with a XML file, which complies to (can be validated with) the OpenMICompliancyInfo.xsd schema. This file must be submitted to the OpenMI Association. + + § 5) The OpenMI Association provides two additional interfaces which OpenMI compliant components may or may not implement; the IManageState interface and the IDiscreteTimes interface. However, if these interfaces are implemented, each method and property must implemented according to the comments given in the OpenMI.Standard interface source code. + + § 6) The OpenMI Association’s downloadable standard zip file provides the only recognized version of source files, xml schemas and assembly file. + + + + + Initializes the LinkableComponent. + + The Initialize method will and must be invoked before any other method or property in the + ILinkableComponent interface is invoked. + + When the Initialize methods has been invoked the properties ModelID, ModelDescription, + ComponentID, ComponentDescription, InputExchangeItemCount, OutExchangeItemCount, TimeHorizon, + and the methods GetInputExchangeItem( ), GetOutputExchangeItem( ), AddLink( ), RemoveLink( ), + Validate( ), and Prepare( ) must be prepared for invocation. + + It is only required that the method Initialize can be invoked once. If the Initialize method + is invoked more that once and the LinkableComponent cannot handle this; an exception must be + thrown. + + REMARKS: + The properties argument is typically generated based on the information given in the OMI file. + The arguments typically contain information about name and location of input files. + The Initialize method will typically populate the component by reading input files, allocate memory, + and organize the input exchange items and output exchange items. + + + + see OpenMI.Standard.IArgument interface + . + + + + Returns the InputExchangeItem corresponding to the inputExchangeItemIndex + provided in the method arguments. + + This method must be accessible after the Initialize( ) method has been + invoked and until the Prepare( ) method has been invoked. If this property + is accessed before the Initialize( ) method has been invoked or after the + Prepare( ) method has been invoked and the LinkableComponent cannot handle + this an exception must be thrown. + + This method basically returns a reference to the InputExchangeItem object. + There is no guarantee that this object is not altered by other components + after it has been returned. It is the responsibility of the LinkableComponent + to make sure that such possible alterations does not subsequently corrupt + the LinkableComponent. + + + + Identifies the index-number of the requested InputExchangeItem (indexing starts from zero) + This method must accept values of inputExchangeItemIndex in the interval + [0, InputExchangeItemCount - 1]. If the inputExchangeItemIndex is outside this + interval an exception must be thrown. + + + The InputExchangeItem as identified by inputExchangeItemIndex. + + + + + Returns the OutputExchangeItem corresponding to the outputExchangeItemIndex + provided in the method arguments. + + This method must be accessible after the Initialize( ) method has been + invoked and until the Prepare( ) method has been invoked. If this property + is accessed before the Initialize( ) method has been invoked or after the + Prepare( ) method has been invoked and the LinkableComponent cannot handle + this an exception must be thrown. + + This method basically returns a reference to the OutputExchangeItem object. + There is no guarantee that this object is not altered by other components + after it has been returned. It is the responsibility of the LinkableComponent + to make sure that such possible alterations does not subsequently corrupt + the LinkableComponent. + + + + Identifies the index-number of the requested OutputExchangeItem (indexing starts from zero) + This method must accept values of outputExchangeItemIndex in the interval + [0, OutputExchangeItemCount - 1]. If the outputExchangeItemIndex is outside this + interval an exception must be thrown. + + + The OutputExchangeItem as identified by inputExchangeItemIndex. + + + + + Adds a Link to the LinkableComponent + + This method must be accessible after the Initialize( ) method has been + invoked and until the Prepare( ) method has been invoked. If this property + is accessed before the Initialize( ) method has been invoked or after the + Prepare method has been invoked and the LinkableComponent cannot handle + this an exception must be thrown. + + + Link to be added. + + + + Removes a Link from the LinkableComponent + + This method must be accessible after the Initialize( ) method has been + invoked and until the Prepare( ) method has been invoked. If this property + is accessed before the Initialize( ) method has been invoked or after the + Prepare( ) method has been invoked and the LinkableComponent cannot handle + this an exception must be thrown. + + If the LinkID is not recognized an exception must be thrown + + + LinkID for the link to be removed. + + + + Validates the populated instance of the LinkableComponent + + This method must be accessible after the Initialize( ) method has been + invoked and until the Finish( ) method has been invoked. If this property + is accessed before the Initialize( ) method has been invoked or after the + Finish( ) method has been invoked and the LinkableComponent cannot handle + this an exception must be thrown. + + + + Returns an empty string if the component is valid otherwise returns a message + + + + + Prepare for GetValues invocation + + This method must be accessible after the Initialize( ) method has been + invoked and until the Finish( ) method has been invoked. If this property + is accessed before the Initialize( ) method has been invoked or after the + Finish( ) method has been invoked and the LinkableComponent cannot handle + this an exception must be thrown. + + It is only required that the Prepare( ) method can be invoked once. If the Prepare method + is invoked more that once and the LinkableComponent cannot handle this an exception must be thrown. + + + + + Returns a ValuesSet, which is either a ScalarSet or a VectorSet, where the values applies + to the time (TimeStamp or TimeSpan) defined in the method arguments and corresponds to the + previously added Link, which is identified by the LinkID provided in the method arguments. + + The number of Scalars or Vectors must match the number of elements in the target ElementSet + as defined in Link.TargetElementSet.ElementCount + + The GetValues method must accept requests for data for any previously added link. + If the LinkID is not recognized an exception must be thrown. + + If the Unit conversion factor and/or the Unit offset of the provided quantity does + not match the Unit conversion factor and/or the Unit offset of the accepting quantity, + unit conversion must be performed so the provided values corresponds to the unit of the + accepting quantity. + + If the accepting ElementSet is geo-referenced the provided values must be converted to + apply to the geometry of the elements in the accepting ElementSet. + + If the LinkableComponent at the time when the GetValues method is invoked has invoked + the GetValues method on the invoking LinkableComponet and this component has not yet return + the values, the LinkableComponent may not re-invoke the GetValues method again on that component + until it has returned the values. + + The GetValues method is not required to return values for times outside the TimeHorizon of the + LinkableComponent. If the GetValues method is invoked with a time argument that is outside the + TimeHorizon of the LinkableComponent and the LinkableComponent cannot handle such invocation + an exception must be thrown. + + The GetValues method is not required to return values before the time defined by the EarliestInputTime + property of the accepting component. If the GetValues method is invoked with a time argument that is + before this time and the LinkableComponent cannot handle this an exception must be thrown + + The LinkableComponent must send the SourceAfterGetValuesCall event immediately after the GetValues + method is invoked. The LinkableComponent must send the SourceBeforeGetValuesReturn event immediately + preceding it returns the values. If the LinkableComponent invokes GetValues in an other + LinkableComponent it must send the TargetBeforeGetValuesCall event immediately preceding the + GetValues invocation and the TargetAfterGetValuesReturn event immediately after the invoked + LinkableComponent has retuned the values. If the LinkableComponent is progressing time steps + or changing state the TimeStepProgress event and/or the DataChange event, respectively must + be send. + + The GetValues method must be accessible after the Prepare( ) method has been + invoked and until the Finish( ) method has been invoked. If this Method + is accessed before the Prepare( ) method has been invoked or after the + Finish( ) method has been invoked and the LinkableComponent cannot handle + this an exception must be thrown. + + This method basically returns a reference to the ValueSet object. + There is no guarantee that this object is not altered by other components + after it has been returned. It is the responsibility of the LinkableComponent + to make sure that such possible alterations does not subsequently corrupt + the LinkableComponent. + + + + The time for which the values are requested. + + + ID for the previously added link object. + + + ValueSet corresponding the the time and LinkID argument (ScalarSet or VectorSet) + + + + + This method is and must be invoked as the second last of any methods in the + ILinkableComponent interface. + + This method must be accessible after the Initialize() method has been invoked + and before the Dispose() method has been invoked. If this method is invoked before + the Initialize() method has been invoked or after the Dispose() method has + been invoked and the LinkableComponent cannot handled this an exception must be thrown. + + + + + This method is and must be invoked as the last of any methods in the ILinkableComponent interface. + + This method must be accessible after the Finish() method has been invoked. + If this method is invoked before the Finish() method has been invoked and the + LinkableComponent cannot handled this an exception must be thrown. + + + + + Identifies the specific ILinkableComponent implementation (the class not the instance/object) + + This property must be accessible after the Initialize( ) method has been + invoked and until the Finish( ) method has been invoked. If this property + is accessed before the Initialize( ) method has been invoked or after the + Finish( ) method has been invoked and the LinkableComponent cannot handle + this and exception must be thrown. + + EXAMPLE: + "MODFLOW", "Mike 11", "Hydroworks RS", "Sobek", "HEC RAS" + + + + + Describes the ILinkableComponent implementation (the class not the instance/object) + + This property must be accessible after the Initialize( ) method has been + invoked and until the Finish( ) method has been invoked. If this property + is accessed before the Initialize( ) method has been invoked or after the + Finish( ) method has been invoked and the LinkableComponent cannot handle + this an exception must be thrown. + + EXAMPLE: + "MODFLOW Ground water model", "Mike 11 riveer model", "Hydroworks RS river model", "Sobek river model" + + + + + Identifies the instance of the LinkableComponent (the instantiated and populated object) + + This property must be accessible after the Initialize( ) method has been + invoked and until the Finish( ) method has been invoked. If this property + is accessed before the Initialize( ) method has been invoked or after the + Finish( ) method has been invoked and the LinkableComponent cannot handle + this and exception must be thrown. + + EXAMPLE: + "The Rhine river model", "Catchment 23A" + + + + + Describes the instance of the LinkableComponent (the instantiated and populated object) + + This property must be accessible after the Initialize( ) method has been + invoked and until the Finish( ) method has been invoked. If this property + is accessed before the Initialize( ) method has been invoked or after the + Finish( ) method has been invoked and the LinkableComponent cannot handle + this and exception must be thrown. + + EXAMPLE: + "The Rhine river model hydrodynamic model, wet season scenario" + + + + + Defines the number of input exchange items that can be retrieves + with the GetInputExchangeItem( ) method. + + This property must be accessible after the Initialize( ) method has been + invoked and until the Prepare( ) method has been invoked. If this property + is accessed before the Initialize( ) method has been invoked or after the + Prepare( ) method has been invoked and the LinkableComponent cannot handle + this an exception must be thrown. + + + + + Defines the number of output exchange items that can be retrieves + from the GetOutputExchangeItem( ) method. + + This property must be accessible after the Initialize( ) method has been + invoked and until the Prepare( ) method has been invoked. If this property + is accessed before the Initialize( ) method has been invoked or after the + Prepare( ) method has been invoked and the LinkableComponent cannot handle + this an exception must be thrown. + + + + + Defines the time span within which the LinkableComponent can return values without + using temporal extrapolation. For numerical models this is typically the time horizon + of the available input data. If the LinkableComponent does not know time at all or of + the LinkableComponent can provide data at any time null should be returned. + + Note that the GetValues( ) method may be invoked with time arguments that outside the time + horizon defined in this method. In this case the linkable component may return extrapolated + values or throw an exception if the sound values cannot be generated by means of extrapolation. + + This property must be accessible after the Initialize( ) method has been + invoked and until the Prepare( ) method has been invoked. If this property + is accessed before the Initialize( ) method has been invoked or after the + Prepare( ) method has been invoked and the LinkableComponent cannot handle + this an exception must be thrown. + + + + + The earliestInputTime property defines earliest time for which the LinkableComponent + will invoke the GetValues on other LinkableComponent. The LinkableComponent must + ensure that earliestInputTime property always reflects the latest possible time. + When the earliestInputTime property is updated the updated time must always be + later than any previous times exposed by this property + + This property must be accessible after the Prepare( ) method has been + invoked and until the Finish( ) method has been invoked. If this property + is accessed before the Prepare( ) method has been invoked or after the + Finish( ) method has been invoked and the LinkableComponent cannot handle + this an exception must be thrown. + + REMARKS: + Most time stepping numerical models keeps typically only the calculated values corresponding + to the current time step and the previous time step in memery. In order to enable the + LinkableComponent to return values before that an internal buffer is typically established + for each link added to this component. The earliestInputTime property on the LinkableComponent + to which such component is linked is typically used to detect which time related data that + can be removed from these buffers. + + + + + DataOperation interface + + + + + This method should not be a part of the standard since it is not required + to be invoked by any outside component. However, in order to avoid changing + the standard it will remain in the IDataOperation interface. + It is recommended simply to make an empty implementation of this method. + + + + + Gets the argument object (instance of class implementing IArgument) as + identified by the argumentIndex parameter. + + + + The index-number of the requested DataOperation(indexing starts from zero) + This method must accept values of argumentIndex in the interval [0, ArgumentCount - 1]. + If the argumentIndex is outside this interval an exception must be thrown.. + + The Argument as identified by argumentIndex. + + + + Validates a specific combination of InputExchangeItem, OutputExchangeItem and a + selection of DataOperations. If this combination is valid true should be + returned otherwise false should be returned. + + + The input exchange item. + + The output exchange item. + + The already selected data operations. + + True if the combination of InputExchangeItem, OutputExchangeItem, and the array + of dataOperations provided in the methods argument is valid, otherwise false. + + + + Identification string for the data operation. + + Two or more data operations provided by one OutputExchangeItem may not have the same ID. + + EXAMPLE: + "Mean value", "Max value", "Spatially averaged", "Accumulated", "linear conversion" + + + + + Number of arguments for this data operation + + + + + SpatialReference interface + + + + + Identifier indicating which spatial reference to use + + + + + An IOutputExchangeItem describes an output item that can be delivered by a LinkableComponent. + The item describes on which elementset a quantity can be provided. + An output exchange item may provide data operations (interpolation in time, spatial interpolation etc.) that can + be performed on the output exchange item before the values are delivered to the target ILinkableComponent + + + + + Get one of the data operations that can be performed on the output quantity/elemenset. + + The index for the data operation [0, DataOperationCount-1]. + The data operation for index dataOperationIndex. + + + + The number of data operations that can be performed on the output quantity/elemenset. + + + + + Link interface + + + + + Get the data operation with index DataOperationIndex. + If this method is invoked with a dataOperationIndex, which is outside the interval + [0,DataOperationCount] an exception must be thrown. + + DataOperation according to the argument: dataOperationCount. + + + + Identification string + + + + + Additional descriptive information + + + + + Number of data operations + + + + + Target quantity + + + + + Target elementset + + + + + Source elementset + + + + + Souce linkable component + + + + + Source quantity + + + + + Target linkable component + + + + + TimeStamp interface + + + + + Get TimeStamp expressed as ModifiedJulianDateAndTime (JulianDateAndTime - 2400000.5) + Number of days since 1858/11/17 12:00:00.00, and fraction of 24hr. + See for example http://aa.usno.navy.mil/data/docs/JulianDate.html + + + + + Shape Type of an Elementset + + + + + Identifier based + + + + Points + + + + Lines + + + + Polylines + + + + Polygons + + + + 3D Point + + + + + 3D Line + + + + + 3D Polyline + + + + + 3D Polygon + + + + + 3D Polyhedron + + + + + Data exchange between components in OpenMI is always related to one or more elements in a space, + either geo-referenced or not. An element set in OpenMI can be anything from a one-dimensional array + of points, line segments, poly lines or polygons, through to an array of three-dimensional volumes. + As a special case, a cloud of IDBased elements (without co-ordinates) is also supported thus allowing + exchange of arbitrary data that is not related to space in any way. + + The IElementSet interface has been defined to describe, in a finite element sense, the space where + the values apply, while preserving a course granularity level of the interface. + + Conceptually, IElementSet is composed of an ordered list of elements having a common type. + The geometry of each element can be described by an ordered list of vertices. The shape of + three-dimensional elements (i.e. volumes or polyhedrons) can be queried by face. If the element set + is geo-referenced (i.e. the SpatialReference is not Null), co-ordinates (X,Y,Z) can be obtained for + each vertex of an element. The ElementType is an enumeration, listed in Table 1. Data not related + to spatial representation can be described by composing an element set containing one (or more) + IDBased elements, without any geo-reference. + + Note that IElementSet can be used to query the geometric description of a model schematization, + but an implementation does not necessarily provide all topological knowledge on inter-element + connections. + + The interface of a spatial reference (ISpatialReference) only contains a string ID. No other + properties and methods have been defined, as the OpenGIS SpatialReferenceSystem + specification (OGC 2002) provides an excellent standard for this purpose. + + The element set and the element are identified by a string ID. The ID is intended to be useful + in terms of an end user. This is particularly useful for configuration as well as for providing + specific logging information. However, the properties of an element (its vertices and/or faces) + are obtained using an integer index (elementIndex, faceIndex and vertexIndex). This functionality + is introduced because an element set is basically an ordered list of elements, an element may have + faces and an element (or a face) is an ordered list of vertices. The integer index indicates the + location of the element/vertex in the array list. + + While most models encapsulate static element sets, some advanced models might contain dynamic + elements (e.g. waves). A version number has been introduced to enable tracking of changes over + time. If the version changes, the element set might need to be queried again during the computation + process. + + + + + Index of element 'ElementID' in the elementset. Indexes start from zero. + There are not restrictions to how elements are ordered. + + + Identification string for the element for which the element index is requested. + If no element in the ElementSet has the specified elementID, an exception must be thrown. + . + + + + Returns ID of 'ElementIndex'-th element in the ElementSet. Indexes start from zero. + + + The element index for which the element ID is requested. If the element index is outside + the range [0, number of elements -1], and exception must be thrown. + . + + + + Number of vertices for the element specified by the elementIndex. + + If the GetVertexCount()method is invoked for ElementSets of type ElementType.IDBased, an exception + must be thrown. + + + + The element index for the element for which the number of vertices is requested. + + If the element index is outside the range [0, number of elements -1], and exception + must be thrown. + . + Number of vertices in element defined by the elementIndex. + + + + Returns the number of faces in an element. + + + Index for the element + + If the element index is outside the range [0, number of elements -1], and exception + must be thrown. + . + Number of faces. + + + + Gives an array with the vertex indices for a face. + + Element index. + Face index. + The vertex indices for this face. + + + + X-coord for the vertex with VertexIndex of the element with ElementIndex + + element index. + vertex index in the element with index ElementIndex. + + + + Y-coord for the vertex with VertexIndex of the element with ElementIndex. + + element index. + vertex index in the element with index ElementIndex. + + + + Z-coord for the vertex with VertexIndex of the element with ElementIndex. + + element index. + vertex index in the element with index ElementIndex. + + + + Identification string + + EXAMPLE: + "River Branch 34", "Node 34" + + + + + Additional descriptive information + + + + + The SpatialReference defines the spatial reference to be used in association with + the coordinates in the ElementSet. For all ElementSet Types except ElementType.IDBased + a spatial reference must be defined. For ElementSets of type ElementType.IDBased the + SpatialReference property may be null. + + EXAMPLE: + SpatialReference.ID = "WG84" or "Local coordinate system" + + + + + + + ElementType of the elementset. + + + + + Number of elements in the ElementSet + + + + + The current version number for the populated ElementSet. + The version must be incremented if anything inside the ElementSet is changed. + + + + + Within and outside modelling exercises, many situations occur where ‘raw’ data is desired at + the (discrete) time stamp as it is available in the source component. A typical example is + the comparison of computation results with monitoring data, or a computational core that wants + to adhere to the time stepping of its data source. To keep the values fixed to the discrete + times as they are available in the source component, the IDiscreteTimes interface has been + defined. This interface can provide a list of time stamps for which values of a quantity on + an element set are available. + + Note that the IDiscreteTimes interface is an optional interface to provide more detailed + information on the temporal discretization of available data. It is not required to implement + the IDiscreteTimes interface in order to claim OpenMI compliance for a Component. However, if + the IDiscreteTimes interface is implemented it must be implemented according to the definitions + given below. + + + + + Returns true if the component can provide discrete times for the specific exchange + item defined by the arguments quantity and elementSet + + + + + Returns the number of discrete time steps for a specific combination of ElementSet and Quantity + + + + + Get n-th discrete time stamp or time span for a specific combination of ElementSet and Quantity. + This method must accept values of discreteTimeIndex in the interval [0, GetDiscreteTimesCount - 1]. + If the discreteTimeIndex is outside this interval an exception must be thrown. + + The quantity. + The element. + index of timeStep. + Discrete time stamp or time span. + + + + TimeSpan interface + + + + + Time span's begin time stamp + + + + + Time span's end time stamp + + + + + Unit interface + + + + + Identification string + + + + + Additional descriptive information + + + + + Conversion factor to SI ('A' in: SI-value = A * quant-value + B) + + + + + OffSet to SI ('B' in: SI-value = A * quant-value + B) + + + + + Value(Set)Type for Quantity + + + + + Scalar + + + + Vector + + + + Quantity interface + + + + + Identifier + + + + + Additional descriptive information + + + + + Quantity's value type (vector, scalar or ...) + + + + + Quantity's Dimension + + + + + Unit + + + + + Enumeration for event types + + + + + Warning. + + + + + Informative. Any type of information. + + + + + Value out of range. If a LinkableComponent receives values through the GetValues method, + which are detected by the receiving component as out-of-range an OutOfRange event must + be send. Alternatively, if the component cannot proceed with the received value or if + proceeding with the received value will make the component unstable or make the component + generate erroneous results and exception can be thrown. + + + + + Global progress. Indicates progress as percentage of global time horizon. It + is not mandatory for LinkableComponent to provide this event type. + + + + + Timestep progress. Indicates progress as % for the current time step. + It is not mandatory for LinkableComponent to provide this event type. + + + + + Data changed. Events of this event type must be send at least once + during each period when the LinkableComponent hold the thread if the internal + state of the component has changed. + + + + + Target before GetValues call. Immediately before a LinkableComponent invokes + the GetValues method in another LinkableComponent an event of type + TargetBeforeGetValuesCall must be send. + + + + + Source after GetValues call. Immediately when the GetValues method is invoked in + a LinkableComponent this component must send an event of type SourceAfterGetValuesCall + + + + + Source before GetValues return. Immediately before a LinkableComponent in which the GetValues + method has been invoked returns the thread to the calling component an event of type + SourceBeforeGetValuesReturn must be send. + + + + + Target after GetValues return. Immediately after a LinkableComponent which has + invoked the GetValues method in another LinkableComponent receives the thread back from + this component (after this component returns the values) an event of type + TargetAfterGetValuesReturn must be send. + + + + + Other. Any other event that is found useful to implement. + + + + + Number of event types + + + + + Within modern software systems, events are often applied for all types of messaging. Within + OpenMI a lightweight event mechanism is applied, using a generic Event interface and an enumeration + of event types (OpenMI.Standard.EventType) to allow the implementation of generic tools that + perform monitoring tasks such as logging, tracing, or online visualization. Linkable components + must generate events to which other linkable components or tools can subscribe. In this way, it + becomes possible to implement these generic tools without requiring any knowledge of the specific + tools in the components themselves. By adopting the OpenMI event types, system developers can use + those tools without additional effort. Note that the event mechanism should not be used to pass + data sets. Data sets should be retrieved through the GetValues() call. + + The event mechanism is also used to facilitate pausing and resuming of the computation + thread, as the computation process of an entire model chain is rather autonomous and not + controlled by any master controller. Once a component receives the thread, it must send an + event, so listeners (e.g. a GUI) can grab and hold the thread, and thus pause the computation + by not returning control. In normal conditions, the control is returned so the component can + continue its computation. Of course the computation is also controlled at the level that + triggers the first component of the chain by means of a GetValues()-call. Stop firing those + calls will also result in a paused system, although it may take a while before an entire call + stack completes its processing activity. + + + + + Get the value of a Key=Value pair, containing additional information on the event. + This method must throw an exception if the key is not recognized. + + + + + Type of event + + + + + Additional descriptive information + + + + + Linkable component that generated the event + + + + + Current SimulationTime + + + + + Listener interface + + + + + Method called when event is raised + + Event that has been raised. + + + + Get number of accepted event types + + Number of accepted event types. + + + + Get accepted event type with index acceptedEventTypeIndex. + + If this method is invoked with an argument that is outside the interval + [0, numberOfAcceptedEventsTypes], where numberOfAcceptedEventsTypes is + the values obtained through the method GetAcceptedEventTypeCount(), + an exception must be thrown. + + index in accepted event types. + Accepted event type. + + + + Enumeration for base dimensions + + + + + Base dimension length. + + + + + Base dimension mass. + + + + + Base dimension time. + + + + + Base dimension electric current. + + + + + Base dimension temperature. + + + + + Base dimension amount of substance. + + + + + Base dimension luminous intensity. + + + + + Base dimension currency. + + + + + Total number of base dimensions. + + + + + Dimension interface + + + + + Returns the power for the requested dimension + + EXAMPLE: + For a quantity such as flow, which may have the unit m3/s, the GetPower method must + work as follows: + + myDimension.GetPower(DimensionBase.AmountOfSubstance) -->returns 0 + myDimension.GetPower(DimensionBase.Currency) --> returns 0 + myDimension.GetPower(DimensionBase.ElectricCurrent) --> returns 0 + myDimension.GetPower(DimensionBase.Length) --> returns 3 + myDimension.GetPower(DimensionBase.LuminousIntensity) --> returns 0 + myDimension.GetPower(DimensionBase.Mass) --> returns 0 + myDimension.GetPower(DimensionBase.Temperature) --> returns 0 + myDimension.GetPower(DimensionBase.Time) --> returns -1 + + + + + Check if a Dimension instance equals to another Dimension instance. + + Dimension instance to compare with. + True if the dimensions are equal. + + + + ScalarSet interface + (Array of doubles for a certain quantity on a certain elementset). + + + + + Value for one of the elements in the set + + index in the scalar set. + double scalar value. + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/OpenMI.Standard.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/OpenMI.Standard.dll new file mode 100644 index 00000000..3d0288fc Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/OpenMI.Standard.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/CommandLine/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/CommandLine/AssemblyInfo.cs new file mode 100644 index 00000000..0426d98f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/CommandLine/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI GUI CommandLine Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4")] +[assembly: AssemblyCopyright("BSD License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/CommandLine/MainClass.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/CommandLine/MainClass.cs new file mode 100644 index 00000000..eec93d68 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/CommandLine/MainClass.cs @@ -0,0 +1,224 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using System.IO; +using System.Threading; + +using OpenMI.Standard; +using Oatc.OpenMI.Gui.Core; +using System.Diagnostics; + +namespace Oatc.OpenMI.Gui.CommandLine +{ + /// + /// Summary description for Class1. + /// + class MainClass + { + private static int _exitCode = 0; + + public static void WriteCaption() + { + Console.WriteLine("OmiEd for command-line. Copyright(c) 2005-2006 OpenMI Association.\n"); + } + + public static void WriteUsage() + { + Console.WriteLine("Usage:"); + Console.WriteLine(" OmiEd_cmd.exe -r OPR_FILE [-v] [-mta]"); + Console.WriteLine(" -r OPR_FILE Runs simulation of specified OmiEd project."); + Console.WriteLine(" -v Verbose mode off."); + Console.WriteLine(" -mta Application creates and enters a multi-threaded apartment COM model at startup."); + Console.WriteLine(" -help Shows this help."); + } + + public static void ProceedCommandLineArgs(string[] args) + { + bool mta = false; + bool verboseOff = false; + string oprFilename = null; + + // read command-line options + for( int i=0; i + /// The main entry point for the application. + ///
    + static int Main(string[] args) + { + WriteCaption(); + + try + { + ProceedCommandLineArgs(args); + } + catch( Exception e ) + { + Console.WriteLine("Exception occured while initiating the application: " + e.ToString() ); + _exitCode = -1; + } + + return ( _exitCode ); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/CommandLine/Oatc.OpenMI.Gui.CommandLine.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/CommandLine/Oatc.OpenMI.Gui.CommandLine.csproj new file mode 100644 index 00000000..40563cca --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/CommandLine/Oatc.OpenMI.Gui.CommandLine.csproj @@ -0,0 +1,113 @@ + + + + Local + 8.0.50727 + 2.0 + {46FB499C-4EE5-4D44-8DCA-E55A83437934} + Debug + AnyCPU + OmiEd_cmd.ico + + + Oatc.OpenMI.Gui.CommandLine + + + JScript + Grid + IE50 + false + Exe + Oatc.OpenMI.Gui.CommandLine + OnBuildSuccess + + + + + + + v4.0 + 2.0 + + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ..\..\ + false + 285212672 + false + + + TRACE + bin/Release\Oatc.OpenMI.Gui.xml + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + False + + + System + + + + + Code + + + Code + + + + + + {5ED7C71D-E89A-41F7-8B34-54C0C099412C} + Oatc.OpenMI.Gui.Core + False + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/CommandLine/OmiEd_cmd.ico b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/CommandLine/OmiEd_cmd.ico new file mode 100644 index 00000000..6a33e769 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/CommandLine/OmiEd_cmd.ico differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/CommandLine/app.config b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/CommandLine/app.config new file mode 100644 index 00000000..cb2586be --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/CommandLine/app.config @@ -0,0 +1,3 @@ + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/AboutBox.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/AboutBox.cs new file mode 100644 index 00000000..d93e6d57 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/AboutBox.cs @@ -0,0 +1,283 @@ +#region Copyright +/////////////////////////////////////////////////////////// +// +// Copyright (C) 2006 OpenMI Association +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// or look at URL www.gnu.org/licenses/lgpl.html +// +// Contact info: +// URL: www.openmi.org +// Email: sourcecode@openmi.org +// Discussion forum available at www.sourceforge.net +// +// Coordinator: Roger Moore, CEH Wallingford, Wallingford, Oxon, UK +// +/////////////////////////////////////////////////////////// +// +// Original authors: Jan Curn, DHI - Water & Environment, Prague, Czech Republic +// Jan B. Gregersen, DHI - Water & Environment, Horsholm, Denmark +// Created on: 1. July 2005 +// Version: 1.0.0 +// +// Modification history: +// +// +/////////////////////////////////////////////////////////// +#endregion +using System; +using System.Diagnostics; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + /// + /// Summary description for AboutBox. + /// + public class AboutBox : System.Windows.Forms.Form + { + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button buttonClose; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.LinkLabel linkWwwOpenMIOrg; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.LinkLabel linkWwwSourceforgeNet; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label12; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + /// + /// Creates a new instance of AboutBox dialog. + /// + public AboutBox() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // + // TODO: Add any constructor code after InitializeComponent call + // + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox)); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.label1 = new System.Windows.Forms.Label(); + this.linkWwwOpenMIOrg = new System.Windows.Forms.LinkLabel(); + this.buttonClose = new System.Windows.Forms.Button(); + this.label5 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.linkWwwSourceforgeNet = new System.Windows.Forms.LinkLabel(); + this.label9 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // pictureBox1 + // + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(4, 4); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(136, 436); + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(148, 8); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(380, 432); + this.label1.TabIndex = 1; + this.label1.Text = resources.GetString("label1.Text"); + this.label1.Click += new System.EventHandler(this.label1_Click); + // + // linkWwwOpenMIOrg + // + this.linkWwwOpenMIOrg.Location = new System.Drawing.Point(60, 459); + this.linkWwwOpenMIOrg.Name = "linkWwwOpenMIOrg"; + this.linkWwwOpenMIOrg.Size = new System.Drawing.Size(164, 16); + this.linkWwwOpenMIOrg.TabIndex = 2; + this.linkWwwOpenMIOrg.TabStop = true; + this.linkWwwOpenMIOrg.Text = "http://www.openmi.org"; + this.linkWwwOpenMIOrg.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkWwwOpenMIOrg_LinkClicked); + // + // buttonClose + // + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClose.Location = new System.Drawing.Point(413, 522); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(92, 32); + this.buttonClose.TabIndex = 10; + this.buttonClose.Text = "Close"; + // + // label5 + // + this.label5.Location = new System.Drawing.Point(12, 443); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(80, 16); + this.label5.TabIndex = 8; + this.label5.Text = "Contact info:"; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(20, 459); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(36, 16); + this.label2.TabIndex = 11; + this.label2.Text = "URL:"; + // + // label7 + // + this.label7.Location = new System.Drawing.Point(20, 491); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(156, 16); + this.label7.TabIndex = 13; + this.label7.Text = "Discussion forum available at:"; + // + // linkWwwSourceforgeNet + // + this.linkWwwSourceforgeNet.Location = new System.Drawing.Point(180, 491); + this.linkWwwSourceforgeNet.Name = "linkWwwSourceforgeNet"; + this.linkWwwSourceforgeNet.Size = new System.Drawing.Size(207, 16); + this.linkWwwSourceforgeNet.TabIndex = 15; + this.linkWwwSourceforgeNet.TabStop = true; + this.linkWwwSourceforgeNet.Text = "http://sourceforge.net/projects/openmi/"; + this.linkWwwSourceforgeNet.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkWwwSourceforgeNet_LinkClicked); + // + // label9 + // + this.label9.Location = new System.Drawing.Point(12, 512); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(68, 16); + this.label9.TabIndex = 17; + this.label9.Text = "Created on:"; + // + // label10 + // + this.label10.Location = new System.Drawing.Point(84, 512); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(92, 16); + this.label10.TabIndex = 18; + this.label10.Text = "December 2007"; + // + // label11 + // + this.label11.Location = new System.Drawing.Point(84, 532); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(80, 16); + this.label11.TabIndex = 20; + this.label11.Text = "1.4.0.0"; + // + // label12 + // + this.label12.Location = new System.Drawing.Point(12, 532); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(68, 16); + this.label12.TabIndex = 19; + this.label12.Text = "Version:"; + // + // AboutBox + // + this.AcceptButton = this.buttonClose; + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.CancelButton = this.buttonClose; + this.ClientSize = new System.Drawing.Size(534, 563); + this.Controls.Add(this.label11); + this.Controls.Add(this.label12); + this.Controls.Add(this.label10); + this.Controls.Add(this.label9); + this.Controls.Add(this.linkWwwSourceforgeNet); + this.Controls.Add(this.label7); + this.Controls.Add(this.label2); + this.Controls.Add(this.label5); + this.Controls.Add(this.buttonClose); + this.Controls.Add(this.linkWwwOpenMIOrg); + this.Controls.Add(this.label1); + this.Controls.Add(this.pictureBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AboutBox"; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.Text = "About..."; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + + } + #endregion + + private void linkWwwOpenMIOrg_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) + { + ProcessStartInfo info = new ProcessStartInfo( linkWwwOpenMIOrg.Text ); + Process.Start( info ); + } + + //private void linkWwwJanCurn_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) + //{ + // ProcessStartInfo info = new ProcessStartInfo( linkWwwJanCurn.Text ); + // Process.Start( info ); + //} + + private void linkWwwSourceforgeNet_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) + { + ProcessStartInfo info = new ProcessStartInfo( linkWwwSourceforgeNet.Text ); + Process.Start( info ); + } + + private void label1_Click(object sender, EventArgs e) + { + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/AboutBox.resx b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/AboutBox.resx new file mode 100644 index 00000000..acca796e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/AboutBox.resx @@ -0,0 +1,3379 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + Qk0ulAIAAAAAADYAAAAoAAAAggAAAK8BAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAosDsosDs + o8LtosHspMLupMLupMLuo8Lto8TsosbrosXrosXsocbsn8XunsXunMXum8PxmsLxkrvtjLfqjLjsirbr + ibbtjrzyiLfvf63nhbPvhbPvhbPvhbPuhrPuhbPuhrPthbTshrTth7Xth7btiLjuibnvirnwi7rxjLvw + i73viLvuhrvshrvth7vuiLzwirvyirzzi73zjL30jb3zjr7zkL7yj73wjr7tkL/uk8Txmcn0n8z2o8z0 + pM30o832osz3oMz4n8v4oMv3ocz2ocvzosvypc3zpMzxocnwocrzocz2nMjyk8Dujrrok8Dtj7zrmMTz + nMf4kbzvkLrvlL71kbvyk7zzk730k730lL71lL/zlL/zlL/ylb/ylMDxlL/xlL/xlL/xlL/xlb/xlcDy + lcDylcDylsLzlsLzlsL0lsL0l8P0l8P1mMP1mcT2mMT2lMP0lcX1lsb2l8f3mMf1l8X0lsTylMPymMTy + lsLwlMHulsPxmcbzmcXwmsXwncn0pND4AACnxfKnxfKnxvOnxfKmxfKmxfKmxfKmxfGlxvCjx+6kyO+k + yPCjyfCiyfKhyfOfyfOex/aex/iTve+Kt+uRvvOTwfiNu/OKufCJuPKHtvGJuPWJuPWKuPWKuPWLufaL + uvaLuvWMu/WMu/WMvPWNvfWNvvaOv/ePv/eQwPiQwfaPwfWNwfSLwfOLwfWLwPWMwPaOwPiOwfiOwfiO + wfmQwfmRwvmTwveSwfWRwvOTw/OWyPaczfqj0Pun0Pmo0fqn0ful0Pyj0P2i0P6j0Pyk0Pul0Pmn0vmr + 0/qq0vin0Pem0Pqm0fyfy/eVw/KUwfCWw/GVw/Kcyfqfy/2YxPiUwPaYw/qYwvqVv/iWwfqWwfqXwfqX + w/mXw/mYw/iYw/iYxPeYxPeYxPeYxPeYxPeZxPeZxfiZxfiZxfiZxfiZxfiZxfeYxfeZxfeZxfiZxfiZ + xviYxviYx/qYyfuZyfuZyvubyvqayvqayfmZyfmcyvmbyfeax/Wbyfiey/meyvadyvaizvqo1f4AAKbF + 8abF8abF8abE8KXE8KXE8KXE8KXE76TF7qPG7aPH7aPH7qPG8KDH8J/G8Z/G8ZzE8pzF9ZG77Iay5Yu4 + 7I688Yq37oe27Yq48Ym48Ye18oe284i284i384i384q39Iq584u68ou684y79Iy89Iy99I2+9Y2+9Y2+ + 9Y6+9I2/84vA8orA8YrA84rA9IzA9Y7A94/B94/B+I/B+Y/A95DB95LB9pHA9JDB8ZLC8pXH9ZvM+KLP + +qbP+KfQ+KbQ+qTP+6LP/KHP/KLP+qTP+qDL9KHM86XO9aXN9KTM9KTO+KPO+ZzI9JPB74y66I286pPB + 8ZrH95rH+ZTA9I+78JK99ZXA95O+9pS/95XA+JXA+JbB95bC95fC9pXC9pfD9pfE9pfE9pfE9pfE9pjE + 9pjF95jF95jF95fE9pfE9pfE9ZbD9ZXC9ZXC9ZXC9ZTC9ZTD9pbH95bH+JfI+ZfI+ZnI+JnJ+JnJ+JnJ + +JzK+JvI95nH9ZvJ953L+J3K9JzJ9KHN+KfU/AAApsXypsXypsXypsTxpcTxpcTxpcTxpcTxpcXwpcbw + pMbwpcfxpMbyo8fyocbzocb0n8X0ncX1lr/vjrjqjLjsjLnskL3yl8X6lML5h7Xuh7byiLb0iLfziLfz + ibj0irj1irn0i7rzi7v0i7v0jLz0jL31jb71jb72jr/2jr/0jr/0i8DzisDyisDzisD0i8D1jsD4jsH4 + j8L5j8L5kMH4kcL4k8L3ksH1kcLyk8Pzlsj2nM35otD7ptD5p9H5ptH7pdD8o9D9otD9o9D8pdD7o874 + pc/3qNH3p9D1pM30o832osz2msbxkb/tjr/tk8Txmcn4ncz8msn6k8H1kL3zkr/4lMH5kr/3k8D4k8D5 + k8D5lML3lML4lcP3lMP2lcT2lcT3lcT3lcT3lcT3lsT3lsX4lsX4lsX4lsX3lsX3lsX2lcT2lcT2lcT2 + lcT2lcT2lsX3l8f4l8j5l8j6l8j6mcn4mcn4mcn4mcj4m8r5m8j3mcb1m8j3ncv5ncr1nMn1oc35p9T9 + AAClxPClxPClxPClw++kw++kw++kw++kw++mw/CnxPGnxPGnxfKlxfOlxfOkxfOixfShxPSfxfWZwPGU + u+2Suu6Ru+6Xw/WgzP2ZxfmFs+uItPGGtfKHtvKHtvKIt/OJt/SJuPOKufKKufOKufOLuvOLvPOMvPSM + vfSNvfWNv/SMvvKKv/GJv/KJvvKJvvKKv/SNv/aOwPeOwfiOwfiQwfiRwviTwveSwfWRwvKTw/OWyPWc + zfmi0Pqm0Pin0fmm0fql0Puj0Pyiz/2jz/yk0Pqkzvin0fir1fmt1vmt1vqv2fyw2/2q1/yg0Pqf0Pyf + 0v2e0fyYy/mQwvOLvO+MvPGOvfSPv/aQv/aQwPeQwPiRwfiRwveRwveSwvaRwvWSw/WSxPaSxPaSxPaS + xPaTxPaTxfeTxfeTxfeUxveUxveUxvaTxfaTxfaTxfaTxfaTxfaUxfaWxveWx/iXx/mXyPmZyPiZyPiZ + yPeYyPebyfibyPaZxvSayPadyvidyfScyPShzPim0/0AAKXD8KXD8KXD8KXC76TC76TC76TC76TC7qbD + 8KnE86nC86jD9KbE9KfE9KXF9KPE9KHE9KHE9ZnA8Za+75zD9J3G9p3I+aDL+5jD9Ie06Ye174W08oa0 + 8oe18Ye28oi28om38om48Yq58ou684u684q784u884y89Iy89I298ou98oq+8Yi/8Im/8om/84q/9Iu9 + 9ou+9oq+9oq99o2+947A95DA9Y+/84+/8JHB8ZPG9ZrL+KDP+qTP+KXQ+KTQ+qLP+6HP/KDO/KHO+6LO + +qHM9qLN9KTP9aTN86HK86DL9p/L9pfE8Yy97Im964nA7oi+7YO46IK26Ii874zA9Yu99Ym79Iq89Iq9 + 9Yu99ou+9oy/9Yy/9Y3A9IzA9I3B9I3C9I3C9I3C843C847C9I7D9Y7D9Y7D9Y/E9o/E9o/E9Y7D9Y7C + 9Y7C9Y7D9Y/D9ZHC9ZLD9ZLD9pPE95TF95XF9pXF9pXF9pXF9pjH9pfF9JXD8pfF9ZrI9pnH8ZjF8Z3K + 9qTR/AAAo8Lwo8Pwo8PwpMTwo8Pwo8Pvo8Pvo8PupMPwqMPyqsT1q8b3q8b3qcT1p8Typsbzpsb0qMr5 + oMTymr/uoMb2osr6n8j4nMb4lcDxibXqi7btirbwiLbxhrbzhrbzhbb0hrj1hrn1hrfzh7bwi7vzjL3z + jLzzjLz0jL31i772iL72hL73g733hLz1h7vxj73wlsDwncbxpMrzpcz1pcz0ps31ps30pczzo8vxpcvy + qc/1r9X4tNb5ttX3t9b3t9b5t9b5tNb5tdf5tNb4ttf4tNX0tNTyuNf0utj2udn1uNn2ttf0rdDwpsvs + qNDxp9Dzpc7yoMnuncbroMnuosryn8bvnsbvosnyosnzo8rzo8rzo8v0o8zyo8zxosvyoMz1nsz2nsz2 + oMz0ocz1os30os7zo870o870pM/1pM/1pM/0o871o871o870o870pM70pc/0pc/1ptD1p9H2qNH1qdL2 + qdL2qNH1qtH2q9H3qc/1qM7zqs/1rdH2rND1rND1r9P3tNj8AACev+6fwO+gwe+gw+6hxO+hxO6gxOyg + w+yiwu2kwu+oxPKrx/WqxvSow/CpxPCsyPSwzvivzfmmxvKfwe+fxPSexfacxPabxfiTvvKHsuePuOyN + uO2Kt++GtvODtvSCtvWCtvWDuPWDtvOHuPKNvvWNvvKKue6HuO+Ku/OJvvaDuvSBvPl+vPuAuPSKuu6d + w++z0PLC3PbL4vjO5PnO5/vO5/vK5/vI5vvH5PrI4/rN5fvU6fzX6vvY6PvZ6fza6fza6vzZ6vzZ6vvZ + 6vrZ6vrY6vrY6vna7Prc7/ve8fve8fvc7/za7vvY7fvU6/3U7P3U7P3S6vzO5/vM5PnM5PnO5vvP5vvM + 5PrN5fvN5fvN5fvN5fvN5fvN5frL5PrH5fvE5PzF5PzH5PvI5fvK5fvM5/vM5/vM5/vO6PzN6PzM5/vL + 5/vK5/vK5/vL5/vN5/vL6PvK6PvL6fnK6frN6PvN6PzM5/zL5vvN5vvQ6PvQ6PvQ6PvQ6PvQ5/vR5vzT + 6f3U6v3V6vwAAJ/A7qDB76HD76HE8KLE76LE76HE7aHE7KLD7qXD8abC8KbD8KjF8q3H87HM97LP+7XU + /a7M+afJ9abK9aLH9ZzD9J3G96LM/pnD+IWy6Im28Ye28oe284a29IW29IW39YW39Ia49Ii48om58oq6 + 8Yi574e574e68ou99Yu+94m99Ya88Yi775LA76PJ8rfV+Mfh+9Hn/dTo/NPm+M7l9s3m+Mrm+sjl+cni + 98ri98/l+9bp/Nrr/drp/dzp/dzq/tzr/dzr/dzr/dzr/Nvq+9vr+9zr+9rr+dnp99jo9Nfo9Nnr9d3v + +d3w/cvh8svj9tDn+9Hp/NHo/NDn+9Dn+tDn+s/m+s7m+c/m+s/n+s/n+s/n+s/m+s/l+c7l+c7m+c7n + +c/n+NDn+NDn99Lo99Pp99Pp99Pp99Tp+NPp+NHp+NHo+NHo+NHo+NHo+NHo+NLp+NTq+tTq+9Tq+9Xq + +9Xr+9bq+9Xp+tbp+tXp+dXo+NXm+dbl+tfl+tjm+9no/dvq/dzr/QAAnb7rnr/sn8DsoMDtoMLtoMHs + n8HqoMLooMDoob/qpcHtp8TvrMjzss32tdD5stD5sc/4rs73qsv3psn0nsPxlrztmL/xocr7msT4hbHq + g7PxgbPzg7PyhLTxhbTxhrXwh7Xxh7bwhrbvhbbvhrfwiLjyibvzi7zzi7zxi7rwjrvslL3ooMXps9Px + w935y+H6zuH2z+D00eL20+f4zOP3y+T5yeT5x+L5x+H3yeH2z+T51uf62un62uj62un62un72un72un7 + 2un72un62ur61+f42Oj42un62er41+j11uf01uf02ev32uz7y+L0yuL4zeT6zeX6zOP4y+L3y+L4zeT5 + zuX6zOT5zeX6zeX6zeX6zeX6zeX6zOT5zeT5z+X20eb10eb00eb10eb20eb20uf30ef30ef30uj40uj4 + 0ef30ef30Of3z+f2z+f3z+f4zub4yeT5yuX6yuX6y+T8y+T8zOT7y+P6y+P6zeX6z+X6zuP6zuP6z+P6 + 0eX70ub70+f71Oj7AACev+yfwO2gwe2gwu2hxO2hxOyhxOqgxOmiwumlw+yryPOwzfey0Pizz/ezz/ex + z/exz/iwz/mnyvWixfKgxfScw/ScxPaeyPuXwvaGs+2DtfSCtPaDtPSGtPKHtfKHtvKItvKHtvKGufWJ + u/iJu/iLvfqOv/mNvfGMuOqQu+qcweu11fTG4ffO5/rV6/zW6fzU5frS5PfT5/zT6P/L5f7J5v7I5v7H + 5P3I4/zK4/zP5fzV6f3Y6/3Z6/3a7f3a7f7a7f7a7f7a7f7Z7P3a7f3X6fzW6fza7fzb7/3Z7P3W6fvW + 6vzZ7f3a8P7K4/vJ5P3M6P7N6P3L5v3I5PzI4/zJ5P3K5f3J5P3K5f7K5f7K5f7K5f7K5f7J5f7K5PzL + 5vvM5/vM5vvL5vvK5vzK5vzJ5v7K5/7L5/3N6P7N6P7M6P3M6P3M5/3L5/zK5/zK5/3J6PzK6fzL6/3L + 6/3L6/3M6v3M6f3M6fzL6fzO6fzN6fzO6PzP6PzO5/zQ6fzR6v3S7P3S7P0AAJ296Z6+66DB7KDB7KDC + 6p/A6J/C56DC56TF6qzL8a/N87HQ9rDP9a/M8q7L8a/N9LHP963N9qLE7pu+6p7C8aDG95zE95jB9ZC6 + 8IOw6oKx8IOz84W08oez8Yez8Iaz8ISz8IO08oG09IG19oK19oS284e374236pe+6ajK77rY9s3m+9To + 98/j8s/h89Hj99Ll+8/j/Mbc+bvY97LR8q/R86/S86/R8q/P8LLP77jS8b3W9cDZ9sHZ9MPb9MPb9cPb + 9cPb9cPb9cLb9MLa9MDY8sLa88be98Xe98LZ8r7V8L7W8cPb9MLe+K7M6q3N7rHT87TV9bTV9bLT87DR + 8a/Q8K7P8K7P8K/Q8a/Q8a/Q8a/Q8a/Q8a/Q8K7Q8a7R8q3R86vR9KvR9arR9qnQ9qnS96rS96zS9q7T + 9K7S87DS8bDS867S86zR86rR9KrS9q3U96/X9a/Y9K/Y9a/Y9bDY9bDY9bDX9LDX9LLY87PZ9LTY9LTY + 87TY87bZ9LXZ9Lfc9bvg9wAAnLvooL7rosHsocDqnr7mnr7locLnpsjrrM3wsM/zr8/ysM/zsdD0s9D0 + s9D0stD2sdD3rc31o8bwnsHuocX0oMb4ncT4m8T4krzzhbDphrHvh7TwibXxibXxh7PwhbLwg7TxgrX0 + hLf5hbn6hLb0h7XwkLruo8fzttf7x+H+0Ob+0OX40OT10eX30OT6zuT9yOD8vdf6sM30pcfwocfxn8jx + n8jxn8bwoMXto8buqsnysM72tNL3tNP1tdP1tdT2tdT2tdT2tdT2tdP1tdT2sM/xs9L0u9r7utn7tNP1 + sdDysdDysdDyrM3yosfvoMjwoMjxoMnyocnyocjxoMfwn8bvnsbvnsXvnsbwn8fwn8fxoMjxoMnyoMjx + n8jyn8jyncj0nMj1msj2mMj3mMj4msn3ncn3n8r0ncXupMzyqND2pMzzncbynMn2nMv5mcv7jsb+gr37 + gb/8gL/8gL/8gL/8gr/8gr77hL/8f7v2gbz3g774gr71hb/4hsD5gbv0hb/1kcz8AACfvOifvOifveag + vuaiwOelxOuqye+uzvGwz/KuzvCw0PCw0PGw0POy0POy0POx0fSw0faszfSmyPKkx/OgxfSawfKbwvag + yP2WwPeGsOiMte+Ls/CJsu+Hsu+Hs/CItfOJtvSJt/eItvSEsu2Hs+qXvvGv0v3D4f7L4/3O4/zS5vzN + 4vjK4fnM5PvH4fy71/uty/WjxPGhxfShx/mdxvibxvicx/acxvWbxPKfxfOlyPerzfuu0fyw0/mw1Piw + 1Pmw1Pmw1Pmw1Pmw0/mw1Pqt0fau0vix1Puv0vusz/itz/qu0PqqzPeix/OcxvSbx/Wbx/abx/abx/ab + x/WaxvWaxfSaxfSbx/abyPabyPacyPecyfedyfidyficyficyfacyfSayfaZyfiZyPiZyfiayveeyvag + y/SgyfClzvSizPWaxvKWx/ib0f2Qyv1xsfVHkeQnd94keeYjeeUjeuQkeuQmeuMleuIme+Eled8ofOAp + feAoe90qfN4rfd8qfd4wg+Q/kvMAAJ265Z675qK/6KbE7arJ8K7M8q/O8q7O8K7O8K7Q8K/Q7q/R77DS + 8LLR8rLR8rHR87DR9KzP8qfJ8qLF8Zq+7ZC26JO67p3G/JfB+Iaw6Imy7Yqy74iy74iz8Iiz8Imz8Imy + 7omx64qx55K36aXH87XV+sDc/cfg/Mzh/M/j/M7j+83l/Mfj/b7a/LPR+ajI9qDE853D9p3E+p/H/ZrG + +prG+ZvG95vF9ZvE9JzF9aDI+qfM/KzR+67U+a/U+K/U+q/U+q/U+q/U+q/T+q/T+qzP+K3P+q3Q+6vN + +anM+KzP+67Q/KjK953E8ZrF9pfF95bF95bF95bF95bF95bE9pbE9pfE9pjG+JnH+ZnH+ZnH+ZrI+prI + +prI+5zJ+Z3J9Z/J85/J9J3J9ZzJ9ZzJ9Z3K9aDK9KLL8qTN8p3G7pbD7pfK+JHK/ne491Ca6C9/2B90 + 2hx06Rhx7Rhy7Rhz7Bpz7Bpz6xpz6Rp15xly5R115x935xx04h104x525B125CZ/7TiR/QAAnrvnor/r + qsjxr831sM/1r8/zrc7wrMzurc7usNHur9HusNLvsdPws9Lxs9LystLzsdL1q83yo8buocTwocX1ncX3 + nsX5n8f8lL32gq3ohLDtiLPxirXzirT0iLPwibHsjrTqlLboo8Htu9X6yeH+0ef/0OT9zOD8zeL9z+X9 + z+f9wN76s9T4q8z2o8Xzn8T1nsX6n8b+ncb+m8f9m8b7nMf6nMf3nMb2nMT1ncX2osj6p8z8rNH7r9X5 + sNb3sNb4sNX6sNX6sNX6sNT6sNT6rdD5rdD6r9L8rdD7rM75rc/8r8/8qcv4ocXznMf3mMb4l8X3lsT1 + lcT1lcT1lsT1mMX3mMb4l8b3mMf4mMf4mcj5mcj5msn6msn6nMn4n8n0osvxosrxn8rznsnznsn0oMv1 + ocv0osvznMfvn8z3ntD+i8b7YqfvMoHbFG7TEXPhGHjuGHPsGXPuGXTuGXTuGXXsG3XrG3XqHHXoGnTl + H3joI3vqIHnmIHnlH3nlH3jlKYLvO5T8AAClweqqxe+wzPWxzvSvzPGsyu2sye2uzO6vzu6wzu2wz+2x + 0O6x0PCy0PCy0PGx0PGv0fKqzfCfxOmZveaZwOyZwfGXv/OUvPOMtvGCrOyErvKHs/iJtfeJsvGHr+eL + sOObvOquyfHB2vfQ5fzL3fbL3fTP4/nQ5fzM4fzE2/vA2/qmx+2Zvuudw/GdxPWdxfibxPqawvuYxPqY + w/ibxfiaxfabxvSbxfOZw/KbxPOfx/eky/uq0Pqv0/aw1PSw1PWw0/aw0/aw0/aw0few0/iszvWtz/ax + 0vmv0PmszfiszPmtzfmpyfaixfGdx/WZxvWXxPOVw/GXwfKYwvOZw/WaxfaaxfSZxPSZxPSaxfWaxfWa + xfWcxfWcxPabxfWeyfSeyfKdx/GfyvOhzPShyvOfyPKeyfOfyvej0vyWyvx2sfFHi9kkccwbctkZeOwM + ce0HbOkUde8Wc+wZc+oacukac+gZdOgYdOcYd+cUdeQWd+YcfOkbe+cbeuYaeOMZdd8lf+g5lPoAALLM + 8rLM8rLM8rLM8bLM8bPN8bPN8rPM8bXM8LbM77fN8LfO8bXO8bXP8rTQ8rPR8bDS86bL65/H553H6ZzH + 7Z7H9JzE+pa++o2z9YWr9Ieu/oSs+oOr74mu6Ja456jH7LvW98vj/c/l+cre9snf9Mri983m/cvn/sLe + /rHO+p+/8JnA8pfD9pXD95fE+JfD+JfD95fC95jB9pfA9Z3I+57H+p7I+ZzH9prG9JvH9Z7L+KPQ+6vU + +7HU+bPV+LPV+bPV+bPV+bPV+7PU+7PU+rDS+bDR+bDR+LDR+bLT+7LT+6/Q+qrK9aTI8p/J9ZjG9JfC + 85jB85vC953D+Z3E+ZvC95rD9p/I96DI9aHH9qPI96TH+KfG+qfF+6TF+p3H+JXG8pbE75/H8qXM9aPL + 853H8pzL+pzQ/4G791KU5i541SV02iJ05B9z6R9z7Rtv6xVt6BZx6hxx6ipy6i9z6S105yh15R104xR0 + 4hF15BF36BN56hR66xd96hV55RV13SaB50KZ/AAAsMnusMruscrusMnusMruscruscrvssvvtMrutcrt + tcvutczwtMzws83xsc7xsM7wrtDxpcnqoMbonsXqmcHqmL/unMP3nML7k7f2hqvvharxg6briavkmrrq + ttL3y+T9z+b8yNz1xNjwyN/1yeH4x+L7vdv5r9H0o8bxmr7xlrzxlMDulMTslcTtl8TymsT2nMT6nMP6 + nMP7nML7ncH8nsD8ncH8nMD3nMD1ncH0ocb2p8z5q9H4rNT3rdX1rdX2rdX2rdX2rdT3rdT3rdP2rNP0 + qtH1qtH2qtH2rNP3rdP4qc/2pcvyn8fwmcXwlsTxlsLxmMHzm8L1nMP2nML1ncDznL/vnMDtn8Pupcbx + q8r1sMz5s8z6tMz7s8z7q834qtL5rdP5p8nyocDtpcb0o8n8jrv6aqTtLnPOHm3RHHHdHHPlG23kHWrh + J27kL2/jOnLlT37vWoDwZ4T0bYn1aYr0YofwU4PtR4HrOXjlLnXjJHThGXLeFXbgFHneFXfbJIDiOZP0 + AACxy/Cxy/Cxy/Cxy/Cxy/Cxy/Cyy/CyzPGyzPCzzPC0zfG1zvKzzvK00POy0POx0POu0fWrz/aqzfei + x/OYveyVu+yawfSdxPmWvfSMsuuIqeOauO2yzvjE3v3L4vvN4PXO4PTR4fjS5PzQ5f7F3/211/emzfKb + xO6Vv/CSvvWTv/WVwe+YxOyYxe6ZxfGaxfSZxfaZw/iZw/iYwvicxPqexfuew/qdwvifwvWjw/Snx/at + zfuv0fur0fms0vms0vms0vms0vms0fus0Pur0Pqrz/mpzvipzvmqz/qs0fus0fypzvukyPaexvKXxfCW + xvGWxvOXxfSZxfSbxPOdw/Kgw/Cjxe+pyvCuzfGz0fO51fe/1vnB1vrB1Pq/1Pi80/W51PW71fq+1v2+ + 1f6zy/+Qsfdbid8sacwib9scdOgYdOwTa+YXZ98uceRKgO9diPRvjPaCkPiGkPSHjvKEjfCAjvB+j/B9 + kPR7kvlvi/RghfBJf+oudN8ddNwVeN4Ved4iguY0kfcAAK/J7a/J7bDJ7q/J7bDJ7rDK7rDK7rDK7rHK + 77HL77DN77HO8LHO8LHP8a/P8q7P9K7O9qnJ9KPE86DB8p/D9KHF9qDF9JnB75O655S346rG8LjS9sjh + +9Hm+9Dj9M3c7Mvb7s3e98vf/L/a+q7O95zD7ZO/6pG/7pTD9ZTD+ZPA+JS/8ZfA75fA8ZfC9ZjF+JfH + +JfI+pfJ+5fK+pjL+5rL+5rJ+5vI+Z3G+KHH+KbL+q3R+6/U/K3T/K3U/K3U/a3U/a3U/a3U/a3U/KzT + /KzS/KvR/KvR/KzR/K7S/K3S/KvQ/abL+5/I+JrJ+ZfK+ZXK+ZTH+JXF95jE957F96bG9q7L9rjT97vU + 977W98HX98TX+MXV+MbS+MTR9sXT98fW+cnX+8fV/bnI+5ur83KM40943Thx4h1q4xVu6hBr6BNo4i9z + 51OF8myP9X2T8oSS8IOP6oWS64eR64aS7IKS7YGR7YKQ7oKO8IKN84GQ+m6N+E2A6zF24B503Bh03CN/ + 5zWP+gAAsMrusMrusMrusMrusMnusMruscrvscvvscvvsczxsM7vsc/xsdDwsM/ysM/zsM/1r874rcz6 + pMP0m7rtn77wosPzncHsmL7mn8bortHzyOP/yuD8yd/1zeHz0eT00uX3zOD6xNr7s833nb7tmL7vk73v + kL/xk8L0k8P0lsL2mML2lsH1lcD2k7/5kL78jb3+hrf9frP5ebH3d7D2eLL5ebP7ebH7erD5fK/3f7D2 + hrT2jLz3kMH3ksP3k8X1k8X2k8X2k8T4k8T4k8T3ksP3ksP4k8L3ksL3lMP5lcX5lcX6kcH4jLz1hrf2 + f7L1fK/3ea/2dqz0dajyeqfxharykK7zobf2ssL7ssL5tMP3tcP2tsP2t8L2u8D1vMD1ur/yvsT0ucL1 + oavmhpHXe4rYeY/paYvxTX/vIWXbG2fhHmrgK27iTYDubI3yeIzpgYzhgo/ke4/le4/mfY7mfI/neY/p + eY7peo3pfYvsfITpgYrxgJP7aYv2SXzoLXLeIHDbJXnlNYz4AACwye6wye6wye6wye6wye6vye6xye6w + yu+wy++wzfCvze+vzu+vzu+wzvGxz/Oyz/WxzvetyfaoxPOjwPCivu2lw+6sy/K01vi83/vF5P3G3vfI + 3fbI4PXM5PjN5fvF4Pu20fajwfCXuu6Uu/SSvPaNu/GQv/OZxfiZwvSXvfCexPiUwPWRwfiUxf6Etvxk + lfBAc9wsYNAlXNEkXdUiXNglYN4hW9smX9woYdglX84zbdNJhONOieZJhuNKh+VKh+VKh+VKh+VKh+VK + huVKheZKhudLhedKhehMh+lNiOtNh+xHguY/ed47c9o4btk7b9w5ct46dN46cNs9bNZNctlmgON8jeuJ + k+yMlOmNluePl+SPl+SSmOWVl+WWl+OYmeOYm+KSmuGMl+CLmOONm+uInPF/mfZvlPZUiPBAe+RFfORc + jPF0lfWEl/GPnO2VneqRm+uNmu+PmvKSmfGRmfGOm/KKm/KJnPOJm/STnfiSmPeLlPWImvt0l/lRh+07 + gOQ3hus6jfMAAK/J7q/J7q/J7q/J7q/J7q/J7rDJ7rDK77DK7a7J7K/L7bHN77HO77LO8LPP8rLO87XO + 9a/I8arC7KjA6qrE7LbQ88Te/Mvm/cnl/cXg+sTa9sjd+sri/MTg+7bV9qXI75q+7ZO48JC49JG8+pO/ + +5TB+pO/85G775a98Zy/9Ze79pfD+4q//m2h9Uh84ihczxxRzx9W3SNd6CNe7BdU5RpX7BVS6RlW6xlY + 5xVX2yNn3zqB70CH8D6D6kCF60CF60CE7ECE7ECE7ECE60CD7ECD7UCD7D6B6j2A6z6B7D+C7j+C7z2A + 7T5+7EeB9EaB9UKC9UGD9EF/8UR87FaC8HOR+oia/5Ca/ZWc+JWe9Zaf9Jeh85ig9J2h85+f9J2e9Juf + 9Zei9JGk85Kl8pWk8pSl9JCl+Iqn+3We+F6N6F+M53me9pGo/pql95ql8Zum75qn8pim9Zym96Cl+KGl + +Zyn+Zip+pKp+ZGp95mq+Jmk9Zii9pqq/Imn+meW8E6N6ESR7ECU8QAAsMrusMrusMrusMrusMrusMru + sMruscvvsMrsr8vrss7utM/xtM/xs87ws83vs8zvt8/xtMrstMrsus/vwdj2y+H70+j90un8zuX7yuD6 + y+L9xt7+vdn9rs72ncLvkbrrjbjujbj0kr36lL77kLr1lsD5msL5j7jxj7f0msD8ncP/eqv6TIPrKF7U + G0/OIlfeJVvmHFXjGVbgHFzlFljhGlvoFFXnF1npF1vmEljdH2niNoHxP4fyQIPqQ4TsQoTsQoTsQoTs + QoTtQoTtQoPsQ4PsQ4TuQoLtQYHtQYLsQYLtQoPuQ4PvRIPwQYDtPn/rOYDsOIHsN4DoPX7mUYTrb5H2 + hZv7kJ73lZ/0laHylaPvlaTvlaTvmaTum6PxmZ/1mZ74lqL5kaX3kqX1lqPxmKTyl6n4kKz8dJ3xXY/j + XIzhdZzyk6v9nKj4laHtmKbtmavzkqfwlafymabymqb0laf0kqn1j6n0j6rzlKjwlaPtl6Xwmaz6hqj3 + ZJjqTpDkRJHoPY/pAACvye2vye2vye2vye2vye2vye2wye2wyu6wyuyyzuu00O220fC1z/Cyy+2zyuy2 + ze270fC+0+/E2fHN4vfU6PvU5/rR5PjQ4PXP3/bM3vzE2v210PylxfWXvOyQuuyOu/CPu/WRvPiRuvaT + ufKXvfOVvfCSuvKVv/qcxv+Jtfxmk+0tYtAYUc8eVdweU+AeU+QhVegjWecgW+AdWtwbWtkfXt8aWN4d + WuMdXOAXWNgiaN45ge1Dh+5DgulGg+pHgutHgutHgutHguxHguxHguxGgetGgexIgu5Jg+9Igu5Ff+xE + fupDfepCfulAfuQ8gOI1geMzg+Q2g+I8geFRhuVtkOyEmfGRnfGUnu2ToOuTo+mSpOiSpeiUpOiWouuX + oPCYoPWVo/WSpvSXpfKbpPGaovGWo/OIpfZfkuVOjOBLiN5fkueAovSTpvWUouyYp+2ZqvCRpOySpe+V + pO+VpfGQpfGQp/KRp/GUpu+cp++epe+ap/KUq/d8pPJblehLkedHku5Bj+4AALDK77DK77DK7rDK77DK + 77DK77HK77HL8LHL7LLN6rbP7rfQ8bbO77XM7bnP7sLW88vd99Pm+9fp+tTo99Tn99Xn99Tm99Pk+NPj + +svd/anA8J+89Ji78pO78Y+68o269Y+79pS995i99pq985e68Ze78p3E/ZnE/3Wk9kN12iJWyBdQyBlU + 1B5X4h5U5hxO5R1P6SNV6yRZ5yJY4iBW3yVa5SFU5CJX6CJZ5h1W3Cln4j+A8EaH8UOE6kSF6kSG6kSG + 6UOG6kOG6kOF6kOF6kGC6EKC6kOE60SE60GC6j5/6D5/6ECA7EOD7kOC7kCC7TqD7TmF8DyF7j+A6U+B + 6WSH636S85Wf/Jef9pag85ai8pOk8ZWl8Zek85qj9Juh8pmh8pai8pSl85mn9Z2m9ZWi9Yme9XWa9U6N + 6EWP7kKM6UqK5mqY8Yql+ZKm9ZWm75yn8Z6l8aGm9KGm9Z6m95yn+pym+qCm+qKm+Kam+KOj95mk+Imk + +muZ9EuM60GM7kKP9z6N9wAArMXsr8fvscvws8zwscrur8jsrsjssMnssMrtr8russzvtszuuczqvs7p + yNbt1eDz4Ov63+n22+bz1uTxz+Lxzuf2z+v7xuT5sNHpnb3cmrnimbnplbXrlLbxmbz3lrr4kLTxlbjy + mLz2lbj0nL75mLv9f6b7U4DoJVfREUbLGE/YI1bdJlXZJ1LaJ1LdJVLgIVTkHFXjGFjhGFjiG1bkH1bp + F07kGVHmG1jlGFjcKWbjQHrwSYPxSYTuR4bpQ4fkQIfiPYbiPYbkPobmQIXoQoXoQYPmQYLmQYPnPoHl + PYLnPoPtMnboH2LcHmPhHWDiH13fI1zdJV7dKGHcLWPZMGHVRmvaaIDsdYXsf4rugozuf4rrfYjpgIjs + hYrviozsiovmiIrjho3mhJLufJTyaI3uS33kM3DcKW/hJm7mJW3kKWzhOHHgTnzjZ4jpf5Twh5juhJHl + iZLmi5Hljo/ojo3sjY3uiozxg4vwhJb4eZX4WoPsQnfkM3PmKHLmIXPjJn3mNIzzAACux++vyPCwye+x + y/Cxy++xy++xy+6vyuyxyvCzzPOzy/C5zu7E1fDR4PTb5/jh6vfi6vff6PTd5/ba6PrR5fnG4Pm93fmy + 1vShy+qWv+WYu+mcvfGdvfabuvWXt/KXuPOZu/SUuPOVu/acwv6Msf1mjus2YtMcS8wcTtkgVecbUugV + TuMYT+EfUuEhU+IgVeIcV+AZWN8WWd8XWd8eWOUmW+0fVeseWOsZW+MRWNUiaNk/getJhfFHfO5Hfu1F + gupChepAiOw/iO09huw8gepChO1DhO1Dg+xDhO1AgOw/gPA+f/YtbfAWU90XUdwbUN4hUOElUOEhUeAb + UuAWUt8TUNsbUtktWt9BY+RXcetoe/FxgfF1g/B4g+x5gup5gu55g/F6hfN2hfNnge5QeOc6cOEkaNwa + Y9wbY+IaYuUZYuQZYeIcYt4lZ944b+NId+ZVgethi/Bmi/BvjfFzjfV4i/h0iPlthPhmhflSfu8+d+cr + buIbZd8YZuMXZ+UUZ94ddt8yi+4AAK/I8K3G7azG6qzG667I7LHL7rDK7a7J6bDI6rfM7r3Q8cfY9NLk + +dzs/OHv/ODt+Nrp89vp+Nfn+s3g+cHY9rfQ9K3M86XH8Z7C75m+8Zm69pK08Zi69aDB+Ji57pG06Za6 + 8pvC+5K7/HGc7kJt1R1LwRpKyiRT3SRU5B5N3xdI3BVK4hNN5hVN4xpN4BlR3RdT2hZV2BRW2BVV2R1W + 4SNY6B5R5R9T5x1Y4xlY2Chp2kCB50iG70h+8UV970J+7UCB6z+G7T6H7juE6zd/5TyC6ECD6UGC6kOD + 7UB/7kF88kF8+DBq7xtR3SBT4SJR4SRQ4SNO4B1P3xhP3xVR4RNU5BZV5xpU5yBU5CtV5Tld50do7FRy + 7l167V9971d671F38VF18klv7Tpn5Clg3R5e3Bpi4Bxm5Rtj5B1k5Rxm5xtm5hdk5RVj4hlk4yBl5CRn + 5Cdp4zBt5jhy6T517UBz8D1w7jZr6C1o5CRo3h9q3hpp4RZn5Blq6Blq5xlp3id34TyM8AAAscrxrsfv + rcfsrcbrr8jssMrtscrtscrrt8zsw9T0z9/42ur+3+/+3e762uz12uz22e351+v8zOD3udDvr8jvr8n2 + rcr7psb4mr7yk7fuk7f0lbf1lrrzlLjvlbnwncL4mL7+f6b1UHnaJFHEIVHPHk/ZI1PkIE/jGkjbG0nZ + JFHgJVHjJE/jJ0/hKk/gJ1HeJVbcI1jdIlvfIlviJlvmKVrpIE7jI1DnJ1brJVbnMmbrRXvzR4HwQ4Dq + QIDmPX7mO33iOX7gOYDhOoHiPILhPYLfQIHbRYLdSYPfSH/iR3voR3rsNmvfG0/OGE7bGEzgG03fHVDg + IFLgIVTfHVXeFlPcFVTfGVjlFVLjF07jHE7kIlLlJlblJlrlI1zhJl3eJVzaJFrZI1nbIVzgH1/kHGLo + GWTpGGPpFl/kGWHlGmPnGWXnFmTmFWHmFmHnHGLqIGPqImToJWXmJmTjKGTjJ2TlJWPlI2TlIGblG2jg + GGrgFmnjE2jlGGnqGWjnGGXcJnHfPYfvAACxyvGxyvGxy/Cwyu6uyOuux+uxyu2yy+zE1/Pb6f3b6Pvc + 6vnc7Pjb7vba7fbW6/bU6/rF3PS1ze2rxeqpxe+sy/mrzfygw/WVvOuSuuqVu++Tue+Pte6TufaZwP6J + sPxcg+QsVccYQsIbSNQeTOEcS+QXRt8YRt0hTuAlUd8gTNYhTtUlUtkvVt8+XOdJYOpPZuxTaO5TaO5U + au1Ta+hWb+lMZ+REY+MzWN0cSc8fVtM0dOI+f95BgtNPi9xckOhik+hpl+ZvneV4pOeAqumHsOyIr+uM + r+mRsuuOru2Jp+6Cou1skOBJcM88Y9swVtwjR9QbQM8bQ9McSNkbTd0WUN0RUNwQU9wVVeAdV+QoW+cz + Yek5Zuo8bek+ceg/b+ZAbuQ/beU8a+YzZ+UpYuMgX+IZXuQVX+UZYukYYuoXY+oYY+cZYeQbYeMhYuQp + ZeY0auhBb+xHcO1IdO1LdvBIdvJEc/A9cu04cussbuMjbN8dZ+AXYuAYY+UaY+YYY94lcOA5g/AAAKzF + 7bHJ8bHL8K7I7a7I7LDI7LDK7bXO7s3f9uLu/N3o99nn89rp9dzt+Njr+czk9cHZ8LrW8q7K7ajG7a3N + 96nN+aLJ9aPM953I74234JG46JrB95zD+ou1/mqS7T9o1iBKxxhDzBxH2RxH3x5I4h1J4h1K4R9K3iJN + 3iFM3CFI1ixM1z1Y4Uhe51Fi7Flp7Vlq5Fds41lx41Ft11R10nWV736e7mqJ2GyJ3nCR53ii6oK474jH + 8ofO9IHA9ou6/Jm//Zy5/aa//qrA/LDG+6m/9rnQ+sXb/7XM9KbA663J97vd/6/c/6jX+ZjC8YOo8oCg + 83OS8mSE8V2A8kdx5DBg0yZa0RtQzh9P0DZc30dk7U9l8Fhr9ldr81xy9lhw7llx6l537lt17VRy60tw + 6z9s6i1l5hxe4Rlj6BZm6xVl6hRi5Rlh3yVl3zRu5EBz5kx16Vh47lp37Ft461t461x47ld471R471F7 + 8Eh56z536DFv5SRk4yFj5h5j6Rti4SZx5DuJ9wAAqsPrscrxscvwrsfsr8nsscrusMrtt9HxzOD32+v5 + 3u344O/73Oz61OX3y97zw9jyvtXzttHys9H2rs/3pMjvnMTsoMnzpNH4m8jvjrvmmcHzmL//gKj3Tnjd + IUzHFUDIG0jZH03jGkjfGEPYH0neI0zgI0zeIkjbIUfaJUzgLVLjPl3pUWvyVGrrUGHeVGbXWG3PWG7N + XnfWZYLZe53jo8j8s9X/pMb5ob7zn8Dxr+D6tPn9nPD7gd/7VajhRYDRWoXhZYThd43ndozldYrebYXR + mrbqvdz9mLzmaJK8ap3Ll9f4pfT9oPD+crPiU4jLXofbaIzlaIzleZ7ug6z5h7f+hrX8b5nybpHpaYLo + XXDeWGffX27mX27oX27qYXDvYHDwXWzrXG3oYHLrYXfwWHbwRW7rMGblG2DhFGHkE2DkFmDhJGXgOW/l + S3jpVXznVnrnVXfsVnfsWHjrWnnqXHjtXHjuW3juWHnuVHztT33tRHbsNmzrLGfrImHoGF7gIG7kNof3 + AACqw+qwyfCwyu+tx+uuyOuwyOyvyey1z+/I3/ba7Prb7PnX6PnQ4PXG1/C/0e290fC91fa40vSvzfCo + ye2kye+ky/SfyfSZxfGYxfSdyP6PtvtehOIrUcMYPr0aRNAdSN4ZRt0SQ9gURdcdStkgS9kkS9olSdsk + RdgnR9kxU+M/YuxNb+9DY9k+WsxRadJme9OClt2gs/Gqu/uht/yEou+dvvuLqPBnhdVQbshCaL1rq9+U + 7vuG8fdw4flJquU5ftZYiu9qjvF0ju9zi+p5kuppiNaLsOmw2vyg0fZ4sNtdncx0xeiQ8/uR9fx7zv1H + itY6cMw8a9UpW80eWMskZ9Eqcc8+fs9mmuGMtPekxPymwfifvfGFou5yi91YcMlUatZVauVVauVdc+pj + eO1gc+hXbeNOb+hIdPAoY+IbX+AZXd4hX+A3audPdu1de+xgeeVXdeVMc+tLdOtNdupSd+tVduxYduxX + dutVdulUeOlReupLd+5DdPI1bO8jYOUYXd0ib+M1hvUAAKvE7LHK8rHL8a7I7a/J7bHK7rDK7bTP8Mnj + +djw/c3h9sPW78DR7sDR88LU9sHU97zS9r3W+bDL8KfG66nN9qXJ+qLJ+6rR/5m//2uS5TRcwiZNxB9E + yx9E1h5F4BlB3hVB2hpJ2x5N3RxI2B1G2SNG4CpJ5CxK4C5K2TVU1kRj3VBm1Wp73JGh7aGz+q3C/77W + /56592J/009z0TtnyXej+XGV+VBu21Rr4kpo212R44za/I/2/nLn/FO47T6E21+N9XST9neN7neL6XmP + 5nyX46HA9K/R/KXM+ZnC83mp4nu955Tp/Zbw/pnq/Wqx5VqW4lyY80GM9SJ/7ReC7BaF6SWG50aQ7FuS + 7W2W7oKj8pe585az7bXJ/LXD8pal6HeL52N33Vht1Fxw2WN14WB051hz7U508jZq6yZg5CJb3ixh4kRt + 7Fp28mN472Jz51lv5FFx6lJy61Z26lh36lt261x161t16Vl05ld45lJ35k527Ep49Ttw8SRg5Bpg3SZ1 + 5zWJ9wAAqsLqsMjwsMnvrcbrrcfqrsfrsMnsudP0xN74xd70vdXuuc3tu83wwNH3wtP6wNL2u87yuM/x + sMvuqMbuqMn0qMr7pMf+kLL3Xn/ZJUqxG0W8GEXKG0PWHEDcGz7cH0HeIEbdG0bWG0bXHUndHkXhJETp + JULjHzrSJEDJSmfYepjqn7n2orj4kqfwc4jUd43TsMX7qsD0X3fWSGbKSG3Tfqf4gaH8WHDcVWbhUGbf + U4Daf8nxjfb8bu78W83zP47aVo7pZo7lcY7gg5zrkav0kK3us9H3tdTxpMLpqsj1lbXvjr7ppOf7ou77 + ou/7d8H0XprmVI/pOontHYLqDIDmC4HiI4TlTo/wZpL0eZX2e5HteZXocovVvcz1ys/5w8TwyMn4v8T9 + pa/vg43gaHPaXGvaWXDoU3T0OmvtKGDjIVnbLWHgRG3qVnPuWnPrWnHlX3HlbHjtcHrsc3/tdoLudYHw + coDvcH/ta37qZX/nWHjgUHPjTXfvPG/sIl3eGF/aI3TlLoTvAACxxee1yuuxyu2qx+qtzPGuz/eiwuyd + u+avyu7A1/LC1fG/0vS9z/S/0fTC1/fB2PW91vGzz+2ry+6t0fap0P2Vv/h4pO5TfuMsVskbRcIiTM0g + S9MXQtUWPtcfRdsiR9odQtMcQ9MfSN8fSecbRt4ZQNEiR8tIadh8m/CVtP+Ws/ZyiulPZtVJZs9DZchJ + YceGk+m6y/+MqPlEY7lLacR/n/h+n/1QbtpSYdxYZN1VedR4v+qJ9/1o9f1T1PdDmt5YlOZ/pviTr/uX + sfefuPWftu680Pm5zPKqvuq60f6nxPaMsuKn1/qx7/2t9v2J1PZkoedPjewriOkLgOAQhecYguQtfuBi + k/V5mPqFnf2LnvaUpO2ruvS4xf2Ll+RweMyBid2fpey4vfbEyP+1u/mKleljd9tPbeM4Ze0gVugbVOck + XOk4aetPduxbeelkeuhzgPB+hfN9hfJ6h/N5iPN5ifF7ifF9h/B/h+95hutwhOdjgulSeuk7buYkXuAd + XtwpceQ5hfIAALLF5bHG57HN76rM8qPJ84+25XGYzHic0abC7sLX9sDR78HR9cPT98LV877V7rnV6rTT + 6rXY9azT+p3J+Xam4kN4xTtxzkV76jNm5xxM1BhCyRxEzBpFzxpG0RxG0x5H1CBH2CVK3SJI2xU+zRVA + xTxn1Xum95W9/HCV6UVlyEdh2FFi31dm401o40lr4k9k3l5h3pad+a7F+GB7xExouoCf94Gm/Etw3kph + 31Vn5U523GWu6nHn/Ffz+1fn/F/A+Gqq8Yyz+5y3+5iy66G456O05MDN88bR+qy47rXK9bza+pO25Y61 + 5LXm/rb2/KXo+Xis7VOM7imH6gR/3Q+E5iOD6jZ/5WWU9Hme+Xyg9oOe6Z+s5svU+6Wx+3CB5WV35Wx8 + 7XOA6HmA24OG0aSo5MTN/6/A+nKO6ipSzSJU3SRc7BxT5Ctb40508GWA8HWC64GG74CD7n6E73aF8nSH + 8XSJ7XiH7H6F7IGC7ICE7H+L73GL7lZ95j1r4ite4iFb3C1r30OE8wAAq8XusMz4rc79lLjqfaTZa5TL + YInBdZrRpcTvwdr5wNPzwtP3xdX4wdLwus/ruNPuutv4sdf+i7brY5bXSoDKPHXIQ3zcRXzpLV/bF0bN + GEPOIknVKE3VI0fOGkDQGUHXG0TaGULSGT7CPWDKf6L0irL/X4rpMFvUGkXDJknDPVnQSmHdV2vrTF/l + UGLqXmvyT1PXc3XfwcP+o6/0TWi+bI/xhan9UXXhOV/cPGrkPHjjQpbpUMv3W/v9ZPb9bdT8a7LqfKzm + j7Dpl7Tinrfeo7XhvMr1wM76mqrblq3Xs9L5kbXkZYq8o8/1wPX9wPX+ibDwUHjcM3zjHoTpF3/lJ4Xs + P4/wVZTsaJ7wbp7rf6Pks8n8xtT+jZnkb33ecH3ncn7sdoHnfIbhf4fhfYLffoXelKLtrMP/krn1TXzX + I1THJFLTNVrkT2v2boP+eIXue3/miYb0h4Pyf4PxeoTueobrfIbrgYXxhIX2foLzeILybILxWHrrQm3m + LV7jIFfaKmbcQX/xAACnyfubvvKDqeRokNBhis1lj9Fkjs12ndigwu+71/a81PK8z/S9zvTB0/bC2fq4 + 0/mpzPiCrOdQgso3ccA7ec9Fg+BGg+Y4cN0fUckVQsUcRNEiRtYgQs8gQ80nT9ohS9QaRMMkTMhrjuWq + yP1ykOk/YMwfRMQaRc8gTNwnTtoqTtMxVtM/Y91KZutOY/FQZfFOYuReaNqdnu/L1f5jh9hXiOKCrP1c + hOE8b9U5edpAhdxFk9xPu+Nm7/V59/2J5PyIyPCVvuyqx/C1ze+5y+y0we7AyvnEzvqotOeZq9+wyPOx + y/KFoNiewu7A9vzB+f2IreRGZr0vZ8Uredoledouf95EjudVlONflt5lltqDqui40fyrvPxygeBreel0 + gPNyfe9vfuxxg+x3hvNwfO9fbdtcbdNpgdWhxvWr1vx2ouY6YsY7W9RUbPJYbetic+Z2f/F8fPB9fvJ8 + gvN7hfJ5iO53hux3f/B2ffRud/Bpde9idu9Vc+tIbOs0YOQkV9otaN5Fg/YAAIWt5nOb2GGLz1mDzGKL + 1maQ2GGKzHSb1aDD7rbV9LfR8LnP9b7R+7/U/rTN+pi563uh3V2M1kJ4zDl00Dh52DR32Dd43Tdy3yVY + zxpFxx9Czx4+0x1D2iBL2hZDvxpGtE931aDD+5m58EpoyzRRxR89wilK1ylO4CJK3R1G3RxI2xpI0B5M + zy9Y4TVW5zlZ50do7E9l2HJ907PH+oay9U2Hynmw8Gef41WX3lOd5Fmi6Wy173fO84Ho+Jn4+673/arh + +6LH9KG566e57qu58KOv8LzJ+MDO+6W19pyw8qe988Pb/6nC/pG457T1/Lv8/afV9X6h6GKP6FuV71ma + 8Vue7mWi6Guf4WiS02qNyZOx77DK/nWL3Fpv31909GZ39WJw6F5v52Bz7VZs6E1j5FZt6lhy5Uxszk1y + wpi/97vj/5zC9WiJ3E9r0FZv4ltv7lZq6Vxv6mBz7WR58Gh+8GeC6mN+52F26Vxv6Vxu61xv7ldu7FFv + 6kpt7Thi5iZY2Ctn3kSF9wAAXofFZ5HSYozWW4bUYYvYZ5DaY4vPc5nSnsHrudj2udT0vtb/uNH/oLz1 + fqDea5LUaJXeXZDkSIHdP3zcPn7hPH3jP3/nP3voK2HaHErOKEnZHj/RHkrZDD2/I1HAdZ/locT0psLz + mrf3VnTUGTi+LE3cKEjhI0XbIEbeI0zoG0jlGkTgIUnhJU7jI0vdIknWI0bKKUm5TGnDgqXpuOn+f73j + idL3d8j4XbLuUKTvUZ7yW6XzWqvpY7znjeX9ne39kNTybp/QaYzObobZeovkcoTanLTxmrTza4jXZoXT + aYvgiKv3krr0XZLEl+X7nu/9l9P8YZDcM2PBP3LZWJLvba3xi8P6n8z/o8X7pL7uxtz9p8D2XnnIR2TM + SWTeUGbhXW3lXGvnUmPjUmbqU2zzR2TsRGboU3nsPWPBZ47Zpsr5wOD+vtz+l7PuY3zYT2baUWzpUXHw + S2zsT23uT2/pUHLhVHThU3DkWHDsVm3sVWvtVG/sT3DrSG3sNWLlIljYKGjePoT3AABdhsRsldZfiNFf + iNRnj9tnjthjiMx6nNamyPK+3fu41fmlwvSJp+Nyldhoj9hkkt5kludcj+hMguA8d9YxbM4tasw0cdc7 + d+YvZ+IbStEXPcshRtAUQro1Zc+Tvvqjyf9aeMgyS6p1kOCvzv9khuUbQMslSNsmSeQeQ+AdRd4gR94k + Q98lP9wZPdAQQMcqVs9SeOJpk+9xpO99tO2l2/aS0vBcteFIru0ffdYNYMshbd40feore9g3k9Z33P2J + 8fuQ7/1xvOlhl9trjOpziPFqgd+Xs/CZuPVpjN1kit9hieltmu6NxfpbodV70PCS6vuY5vxGitMCPqgW + UcYqbuAqddxGieRnmuJ/pt+mwOzU6vypxvWXtPN6lutviOdYbtlQYNVeauBjb+ZaaeVTZupVcPZMb/M+ + ZN01XL93nOa/3vy+2fi91PbH2/yvxvl5keJRbNFMauFLautSb/VNau1QbudYdupUbuVWbehWa+pXbOxU + buxJa+c+ZuMuXd4eWNYkZ904f/IAAF+FxWyT1mSM1GKM1WWN12aP1meN0Hqe2qLH9rHT+JO04nia12qO + 02eP2WaT4WWV5mSW6lyP6UyB4EZ83ER83EB53EN95EJ76yph3hdIzRdDySBJxVV/2JjA/ISq7TtdxyJB + vyhFxSpIwWeJ36nN/1h95Bk/wBpB1h5F3yBJ0yJJyyZFxjpW10t531WW72ao/Wuq9VSZ7zGB4TB9y3e5 + 7Jrh/Uam20ax9x994gBFwhFO0zRs7TR46S+K41jF+nfx/YD3/YDj/1Oe2lmE32+F72+D45iu8py293CO + 3WaH32SI62CN62ul82i172HF6Hzq+oj0/Tef3QBSuhNi3CWC+xl86yV+4z+H4GCX3qrQ/LLS/Xed13WZ + 3n2V6o6f842f+3mM8W9/52dz4VVh1VNi3l1z7Uhn4CtPvGSM4qnP/63L+bnQ+r3P+sLR+c/i/b7W+YWf + 31hw0FZr4llu8lZs9E9p6lBq51Zs6lht7Fpu8Vdu8kpo6jxh4jBd4CVZ3RxW1yNl3jd98gAAX4TEa5DS + Yo3QYI3SX43SYo/UZI7Rc5vch6/qfqbZZ47GZIjOcpfhc5rmZI7bW4rXZpfnVongP3PPPXPRQHfXO3TW + PnfdPHHiJFbRGUXAF0OyVH7hpsj/haT0J0fAFTa/JEjeIEffHELFIESyWnvUr9D/aYvsFj2yHkjCKVjI + PW/VbKDse7L2XaPuOY3ZIn3TH33fH3vlHXDkJnDcQH7RiMf5SpjqRp34L4XvAk7FFU7JR3HsSn/yMHvg + NpfdaOD8a+n7fvH8ZsPvUIvWZorjcYjimqzxn7P2dIndaYHbbYbuZIXvW4jrZrH8W9j3Uur7U+z8Jbbk + AXnPDXTlFX/1DHzrFHvjIXfaT5XhpNn8i7v7Vo3bUoPdTm3RUmXTVGvXaITrhJ39g5n6fZLxd47nUWvQ + N1WzWn3UqM3/hqr0P2C2fpvlv9j8uM/2uM7zy+P1xt37ma/tXXLQT2XcXnX4Um/xSmfpVXDxU27wS2Xs + RGHrNVvjJ1XbI1XdHlXfHFXaKGXgQHz0AABhh8lokNNeis5ej9FcjtNgk9hgj9Vmkdppldtfjs9mkdZr + kN1rkd9tktxtlN1slt9qmeVcj+NDedRBedhHgeNAed9BeeE/ceMiTMgdRrRgidydwf1hf+gcN78hQNEj + R98TP9UTRNQgTdooTtMuTMNhe9unwf1khcx0oOdxqvthpPk+juQpg9sffdkVddkSfuMThe4Uce0YU+Mf + SNQlSL1qkPdsm/88eew/kv4TbtcQWcpDd+xKevE7decpfdNFuulj5v5v8/116v9ZruhKhNJVf9eTs/SZ + tPhtiOJqheFwivVphPtGaugwgeQ+3f8m7vsp8f0Wze4BktsIeuAOfOcOfuYWfeIjfOBWofWNzfxUlN8+ + iOg7gfE6auZLbetHauY7Yto7YdpFaNtukeaiyf6fxPqJrOekx/+AoPk+X9McRLhPe+mey/++5//E4/7F + 3PXG3fe+2fx9nOVBYs42W9k8Zuk2Yec2XuUwWN8uVOEtVuYkVOMcUuIbVOcbVOYdVeAvZORIevcAAF+G + y2SN0l+Kzl+N012N02CR2GCP112L1FyM1VqO1l+R22WS32eS3muT22yW2muY2WaX21+U4Ud/2Dt32Tp4 + 3zlz3UV75El54jtmzll71L/a/4Sc5idCwBg10SRE4xxA2hpG1iBN2BxF0h08zCpFxFp1z7TS/8Xu/4G4 + 4USP1B540xZ62xuB4yB96SJ17BNt6QJe3wNG1RQ61yg92iAyxFVp84ef/DFYxzB86B984w1ZzDZw6kZ3 + 8z5z6C522hyFzE7L+WHr/Gnv+3He/Eui2jVzwnml6oKs+FB730523Vh76lZ19i9P4ABCuAqv6A3i9x31 + /AzS8QCR2wp64BeD7hyG6x983TiE3nC4/Gq19yx91CWA6Bdv5Q9S1xxP3CpZ4iNQ1SBN1x9O1xVIvTxw + xpHC9rfi/6rR/VJ01SJDtiVPxiZVxDxwyWKV24as7KbB+bPR/rfe/7ri/3Wb6SxZvxtTziBc4yBW3ihY + 4SNU4R5Q4CBT4x5U4x1U5BxS5RpS3ihf4kB39QAAXYTNY4rTZ5DYZY3WYYvTYI3VY5LYYJHYXZDYXJLb + W5HcXpLdYZTcZpbbZpjZZ5rYZJjaYZfjUYzkPnzhMW/eMm3bPHPZR3nTZ5Pdo8P9xtj8fY7gJkTCHkbb + HULaHD7SH0bZFj/PH0TLT3DeeJz1gK76c6fZnNb9jtTvLojOHIDhH37qGm3jGlvbGEvUE0LUEUDYF0Hc + IUDcJD7eJDfdLkLejKH8V3rVHl/GMYbxKXHlKFzWRHXrPG/dMW3UKnfXPZ/paeP9aOr+e/L+bNPtRIi7 + cp3dfaj8SXzlQ3HbS3HaTmzjO1beBTyyEI3PMdv6OvP9INDxB47bDHPeEXblE3vdI3fQU5DWhsn9OpPt + IYTjJIbtFXHlDVjeEEveIU7lJUvjHknnIlTxGU/TJFvAfLH0suL7qdL5ocTygaLndpfkbJLjX4fbSHLO + J1HDLlXSVH7nY5Hih7DssNH/a5PgE0/AE1bbI1zjI1XdIFPhHVTkJFfkKVniI1TgH1TiGVXeHF7hNXr5 + AABdhM1jitNmj9dkjdVgi9NhjdVkkNhgkNdekNdgkdpgkdxhkt5jk95olNxplttpl9tnl95ckN9Hftg8 + dtpCfedBeN1FdtN0nuqozf6y0/252P2DpusnVscHPMYTRdMYStEVT9Aoa9tWm/JqsP1Jk+Mxe9ItdMhk + n+Wn4P9eofIgZdYPTNUPQuEVPeIdO+IiO+QjPOUmPeQrP+ErP94hNdQQJbN2jO97mewzbL9Qm+ZlrPdH + gdxbiuVpj+pWet1jkO5np/CD3vyI8vuO+vqS9/iS2eWl0++Zw/d/q/SFqveOq/aTsPuHq/x5rvlvwOmC + 6/p7+Pto7PJUvulRoOhJm+U+md5ToN2Cve6Izvoxj9sTetIZeuEVa98UVdscT+EaRdkfR9wpUesfSOAi + S81ghuKv0v/B3fu+1/HO5f3G3P/C2f692P/A4f+r0P9hieYmU8UeTcoVRMAqU8ODpvWewv9MfOYZTsgk + WNofU9wZUd8YUuIZT98fUOAgUeIfUuQbUN0kWt48dPQAAF2EzWOK02aP12WN1WGL02GO1WSQ2GKP12KO + 1mSQ2GSQ2mWQ3maR32mS3mqU3mmV32aU4V6P5kV51zpu0UJ12UJxy1R8ypi58sjj/bLS/K/a/VuQ2RlY + vwxPwxlazDR03VOZ8me0/FSn8CyD1x100h1t3TF16Shax2eR9YGs/zBdxRI8xhk+4Rk73x052Bw21R02 + 0yM80ixF0TJN00Be4Exu4oWj+K7O/Gyd41+d6oXH/HCy+laP8FqK71N+70976lmU8XDG/VrD5Gjh8Xnz + +o/z+5Ti92yu4kWC0kV501KB2luR6EiN4TWN1SeYzUnP71jy/VDt+D646Uic6Vel82Cr8323863U+7Hg + +nK78mS18l+s9EiJ6zNi0i1QxihOzyFL0R5FyiFEwk1t1KG798jf+8PX89Dj9cvb9cHS7cXW8MLX8sHb + 9sDe/Ja69EVvyh9OvjVm5zdk4Elv1qHC/aLD/0JoziNW0htW3Sdk7Cxp7yFa4x9V3yZa5ipb6CtZ4j1q + 51iE+QAAXYTNY4rTZo/YZo3WYYvTY47WZpDZY4/YZI/WZpHYZY/aZZDeZpHhaZLgapThapTjZpPmWozo + R33cSn7cTn7YU3zJgqLdvNX7yt75vNj+kr35RHzOIGO8ImvHUpbndLP8aqj4RoThJmfPG2DQD1HVBELZ + EUXeFjvFNVDMhqP5eZnuKUzAEDS8H0XNMlfaT3LlZ4ftcI36aYf9XIDwUHzoS3jkWn7do8T5b5TnGUa2 + R4LeWaD4KGnYOG3jPm7oNWHdRHvpZ7b+PaPdPLniZOj6e+/7iuv9ZLvsMoHXO3/iTo31TJX6L43rBn7Q + AIfQE8H3I+39Fdz1AJTZCXPXI3zmJXHTVYrWqMr6ibPrS5DWSpfrVJz3VJH2W4bza472cJr3ZJLvSnTZ + RGfIfJnhw9r/zeL4zeT3zuT3ydz5wdPzztz11uT6zuL3yOL6sNL9cZ3lPG7OQ3XoUYHuOWTKhqv6xOH9 + a4zbFEu/DFHSPH/3S4r9NXLnLmrfOnXrPXbtPXPlVYnzcaL+AABdhs5ii9NljtZjjNRhi9NjjdVlj9dk + j9dlj9ZlkdZlkdplkd9lkt9pk99qkuBnkuJjkuZaj+pIgt9FfNNAcb5bhMOtzPDW7PnF2OvJ3/q00/lh + is9Cd8FgnOp+tflfkOsrVc4dQsggSNcXQtkVP94ZP+QVNtYqQtEeMaphd9OnwfxwjeFQcOFkifJpkfZm + ivRYduFBW9IwStUjQtAWQcoUQL4eQbR5leuSq/01UsMoX8lbpPtGiOs0ZNhGb+ZHbeZAb95kqPlGnukf + jspVzO995/uY9/t41O9Al99IlexQlvlFkvgtju8FfdcBi9sVwvkf7vwR4fkBneMIeeMbf/Ebc+JQkeOd + zvxgmuYdc80ZeOAed+0caucdW9kkWtY2bdRUi+NwoPaLsvey0fnM4/jI3e/Y7/vL4fPJ3PrG1vrN2fXX + 4vnY6PvI4/mhzPZ+tvd1rfdtoe1Sgto8a71uld3B3fqlxvkzbs0UYNFCjPVSlvU5fNozd9RBhuNCiOQ/ + g9xWlupsrPwAAFaEzF6N1V+N1l2J0mKO1meS2mWQ12eR2WKP11yM0WGU3F2R3V6Q3WWU3WOR2l2N2V2R + 4VKQ5kaI3zt6yEd+vou14c3r/tLr+tjs9dXn89jt/7vV+qDD+Hig6y1UyRI3yh063CI65B084RQ81xpB + 1yFB0yxH0UJZ22J34IWg76jF+42n+VFp4S5M0R5AzBs6yyI80h0y0yI44yE86hU84BtE3Bk/xExs6piw + /VJsyRRNs1Wq8WGu9i9n1j1v3j1w3y9r1T6J6VCq/iOL1kSw7X3i/537/Ins/VTB8Tif3DWS4jua9iON + 7wJ72QCF0hjC+B/t/g7h9gCf3wR53hJ66hdy51Od75DO+T+K3Bd/3AuA5gp76RJ97hl76CV74itz2i1r + ylaJ2aHH+M/r/tfq+uHv9eX2/Nzr99vp/trm/t/n+eTr+dvu+8/w/ozE7EWO1WSn6p/U/4y6+G6Z15y/ + 8dbu/dHw/ny39zWC3FCf8F6r90OS40CR5EWZ7Emc7U6e7GGq83S6/gAAXY/WbJ3kbJ7kYI/XW4vSYY7V + Yo7WX4zUYpLYaJvfZJvhXJbdYJfdbaDicqTjbaHibqXtWpzqR43cUZPWerXntuL62Pf61e761uz20ebw + zuPuvtXvvdX9UGvBGDe3GzzVGTnVEjPIG0XOKl3TOGbSZIjydpbwbo3yT3PmOmjHaJfueJ34NFHLDTC+ + G0bgIk7nIUvgG0PhFT3mF0LsG03tIVfqE0zLNmvgi7P8WoPQGV+3P6DlYL76UKDpNYDLN4XPQJXdSqns + XMH8PablOqPZbtHroPj4k/r8Yt/yPrjZM6bXOaruJ5zwCYvcAZLNEsrwF/L6CunwAq3aCYjaFojmHITn + VKrwiNH4OpPdEYbbCIjmCYfmCoTjCH3YE3zQQ5PYd67lpM30yej92Ov53ef05Oz15vD63er43uv83+r8 + 4+ny4env2ez2yuz7grzsPIfUPYPQZ5rdn8f6stT8zOb91On70u77rN/8VJrUU5/jV6ryOJPhMZHmN5ju + PZntRpnpXabvdLf8AAB6sfeAtv19s/lypu1qnuRkldxhktlomOB6q/GGuv14sPdqpetso+V8r+mEtuyB + t+5/uveAw/9nsPJmq+iW0/XE8/7V8/zX7/rT6vvJ4fbD3vW41va81fyas/NCYMsQM7ImTshXhOhqoPlb + m/pXkOlRet4nTMkeR9MpWucjXtc/fu2Ftv9SetoUQskmXvEtafkiYeYfXugVVOgeXfAmZPEvcvIeZtgu + dd+Gvv1soOApdcYxl+ZXw/9j0PlDr+RHsehRvfVJuvJbzvxPwfswntdKrtGF4vGL+P1n6vxKzfE7uuc7 + ufkpqv0PnfAAoeEP0PgP9P4I8PkAvOcJm+MZm+gkn+lYvveB1fdNpNU3ndg/p+VWsOtqufF1vfCKx+yv + 3/jK7v/T7/vT6vXW5vHh6/Pk7vvf7P3a6v3X5/3Y6Pzh6/Xh6/bj9vvQ8P6IwPdIk+lJjNxwot+oy/vK + 4/3d8v3D3PWz0vG86f57t99epuNRpvAzlOcsku0xmPQ2mfFBmetepvJ1t/4AAGij6HOt83u2+4C4/Xqw + 9maa4FeK0F6R122h5nGl62ui52Oc32qg3IGy5Y6+7JDD8pHJ+oXI+2av6mmt4pzX88Lv/NDs+Nnv+8rg + +LvV9LLS9b3d/r7W+8ne/3ya40xx1F2J6Gab8UyN6yhz5B9i2h5Q0BM/yBhG3SFT6xxV3iVd2oGu+Hac + 6SRNyhRF2RxT5RdU2BVT3A5J3RpS5SVY5SRa3BNVxR1hw32y8Yi27VSV2Ueg5lW38GbJ8V6/51mx32G2 + 51qx33DI9oHV/XC+7XKz1pvY66Pv/Ivo/HbX91++5U6x4zmg4iOW2xWZ1CjD7Czo9C3u9CzC5Del3Umr + 4mC85pDX9LPj+KPT55/Y8qne+cPo/Nbw/tnr/OPx/N7v+9fp+dfo9tjn89vq8+Ht9+Dv+93u/Nzt/dPl + /NHh+dvn9tro+tny/LLa92Sn6jOL4ESQ3YS25svr/d7y/NDk+6DA6oex4rnl+pXG6Weo5VCf7TaS6S+S + 7TWZ8jaZ7D+Y5Vyl7HO3+wAATIrQY6DldrL3erX6c6zxZJvgWI3TXZDVap7hcqbodKnpcanmea/mjLvp + kb7pjbvpjL7yerfzY6XjcK7gndL0uuH2xN7r0ub4wdX0utH2udb7tdT2yeL8wdn6uNf/fqbtMGG/HlfB + JmzoHXD5HWj1GlXhEkXWEELcG0zmJljnGkjIeZnpm7D6RFzQFTTFI0ncKFbeJlLeI0neKU3iK03cN13f + QXXlT4jon8r6qND3fLXtdL3ufsnvk9r0nd30kMfwn9L0odf1q+H8uu38uej/rM3mw93ty/X9vPX7t/T6 + puX0k9jxgM/veczucsfngN3vgfLykPr1pOv2vOP5x+T90Oz/4/D76un05+333vD/1en72er44u/72Oj0 + 1eT32Ob81OP80+H82OX72ub43un34/H94/H92ej83On91uL73eb83uv71/P9nMvrSpPSKILPSZbWm8vq + 2fr90uj7ts7wgqzjYZPRpdD3n8z0b6zrUZ3uPZLrOJXsOpvwOJvrP5nkWKbtb7j8AABAgMZfnuV1svh4 + s/d1re9mnNtbjc1pmdiHtvCayv6bzfyVx/eJueiJteKQueqSu/SMuPd8rPFfk9dvn9qjy/W+3vrE2vTK + 3fjG2fy+0vu71P251fnH5fq31u633PWl0fpNgdIbVr8nauMgZ+wYW+YJRdEHP8kWTdciXuEmaeMsbNVr + lOCrwfWIouZjiON1pPx1q/92pvt1nPBrlOdbjuVknuxiovFTkud2r+yUyfprp+pTmehbp/JbrOh6zv9k + vPVHothVsepXtu1myPVqyvJRns93uuaX7f2B7fZ/6vd84fxVwukyrOE2qt1QrdWT3Pi69v/O+v3g/P7j + 8/ja6fLZ6vfd7Pjf6vTe6/bc6/jZ6fvX6PvW6fzU6vvV6vzX6PzY5fvZ5Prb4/re5fne6Pfd6/ne7P3d + 6/3a5fzW3/zb4vzh6/zc8PzI5fqlz/Z/seGKt97K7PzX9P2/3vnD5v2SvOxfjcSXwOqp1P12s/JLm+o8 + kuU1j+I0kec1kuk+lupUo/FmsfsAAFaR1mah5HKr7Hiv7nyw7nSl4HCe2Ii2653L/JzK+5vL+ZLC8Yq6 + 6I266ZG88Iu18oCs7WmZ3liIy3qk3bLW+snm+8vg+M3f+Mfa+8TX+MbZ9c3g99Lh88za7dHh98nf/pS1 + 6GON0VaG2FmN52CU8l2O71qJ7GKT72qg82mo9Gyq83ys6KzR9pXA9mGX61qY7EyN6UiC5UFv1jNjxUeA + 11CM30+K3kmBznmo3qXP94Sx5Gia33Gn7HGn5oa/+YfI+G6x5W6y7Ha9837J9IbN9Hes35XB7arn/Jnq + 9KDw+KPn+XjB51Cl2E+i1Ha84q3i+tPz/OT1++73/Orw9uDp893q+d3s+93r+97s++Hr+9/r/N3r/dvr + /drr/Nvs+93r9t/q8uHp8+Lo9OLq9OHt89/v9N/w+d/w/Nbk993n++Lq++Dq99/s99/z+9rz/tDt/dfw + /OP2+7/U5pGtybTV9Mfr/6PH8qvJ8cLi+5bH82ep7Fuk6Veh5lik7Fmj8GCm8HOy84S++gAAe6zrfrDu + hLTxjb32lMT6jLrvg7HjjbvtnMr6n879nM39ksT5hrnuf6/leafhcp7eZ5PXYJDTZZPSkLrrxuj+1fH7 + 1en51ef4zeL9zeP9x+D02O382eT52t/52t/31N33zuP8udv8l8L0ibjxhbX1eKbzaJftY5bnZpzpYZvq + VI7Ya5rZpc32irrzVI7lT5DrR47rTY7tW5DxY5n0b639ebj+frn+d6vtnMTuv+L8osjtjrbrncT7mLzw + n8Pwtdz+rNP7n8bvqM72qtT0vOL9s8jxv832wd/1t+Ts0fj54vz+zOj8rdHyqM/vvOH51vH97fn99fb7 + +PP89vH76uz74+r94+z94+395Oz+5u3+5u394u394e394O394e774e344e734+z45Oz44+724vH14fL3 + 4fX64vT94O384u394+z75+/67Pj85fT61Of00ef43u/85u/32OLwrsLgp8Ltqcf5pMDvus3v1OT6uNf8 + lcL5ibz3hrv2ib78iL79jr77osj8stT+AACQuPCXv/acxfycxfmRvO+EsOODr96Nuumax/eezfyUxfuD + tvNxpeNkltZgkNNkk9ltmuJnltltm9Wbwu3H5fvQ6PXT5e3V5fPM3vbF3/jA4fXJ6fvI2/bP2/jS3fTM + 3PHL5ve43/iItOZjkdxVhuNLe+JHeeNIf+ZQivJPjvpIgudql+SrzviOtu5UiN1Qj+NJkONLjuNakuho + o/Jrr/VssvRxsfRvp+GUwOO73/ajye6KtOqZw/qZwfGUvOep0PW33fupzOymyeamy+W83vfE1/rJ1/y7 + 1eyr09zM6+7u/Pzn8vvV5vfN4fHd8fzm9Pv4+vz89vj48Pj17/rp6vrf6Pvh7Pvh6/vi7Pzj7Pzk6/zg + 6/zg6/zf7Prf7Prd6vvb6Pzc6Pzd6fve6vvg7vrh8Prj8vvk8vzd5/re5/rf6Prk7Pvg7PzD0+epvNe5 + zuve7fvs8vji6/rO4v3P6/+83vquzffO4Pnc6fq81PadwfKSuu6Pue6Qu/WPuveVu/KoxfO4z/oAAJO6 + 6pO67JG46oyz5oex5Yq27I678Y268YOv6nWh42yb4WKU3V6S22CS3mOU4GWV5Gya5mqX33ag3qLF8cjj + /dPo9d3t8+Dv+8/j+cje+MXe98zj+9Dh9tTi9dTk8M3i7cjk9cTm/Zi97FyCzlN72FN841aA8E587Uh6 + 7kZ+9kZ97GWN6qjH+o+z9Up54UJ63kOC5UiF5kp/3k+G3WWk726v8n24/H+x7p3E6rzd9KLH6oq06JbC + +pjC+JW875/D68jp/r3Z/KjF5aXD47jV9sja/c/b/rnR8KbK4cjh8PL4/vb4/env+tvk7Ob1+eXz8/b7 + +vz7+vTz+O7v++Pq+9ro+97u/eDt+eLv+ePu+uLt/N7t/t3u/t7u+97u+9zr/dvp/dvo/d3o/ODr+uXv + +Ojy+Ozz+e30/OTq9+nv/Obu/d7o/NPi/LbK7J213q7J79zu/uv4+8rd65682q/W+q3Z/5fB8bvY+dHn + +7fX+ZvE+I278Ym58oq7+Ii5+I669aHE9bHS/QAAirTfi7Xhi7XlirTnhrLpga3pdqPiZpPXXovSXovV + XYvYW4zdXI/iYpPlZZPnZZLnZZHjbJbjeqHjo8PyzOP81uj23Ory3uv20OH3zNv41N7709370t/z0eHu + zOLvx+HxxOD6xuP/uNf9mrnwhaTidJLbb43cZ4jfW3/dTnnaR3TPZ4vap8b2jK3xSnPaSHbhS3zrTHrs + WHzwTXXjTX7hVormaprzeKLwnb/0vt77osrzirv0kL/8j7f4nL/4lrXosMvzzOP9us/yobjftMz0xdT8 + y9b7vNT2n8Lhtszk7/T89vT77vD65u7y4fHw5/j08Pj18/j37/X67PX74vH72ur53ez34u714+/z5O71 + 4uz33Or82+r82un62ur53er63ej33uj05O725O704+zu5/Dv6vL05e3z4Ojy3+v53uz82ev90eb+w93+ + uNX9udf8yN371N/8vs72gp7XXIDJXYjYVn/LlbHvvtT8fp/gVYDYWobkVILiT4HlTH/mUH7iZIrlepzz + AACDst2MuumLuux6qd9nldNgjtJfj9Zbi9dejNtnlORmlOVll+lmmOxomO1rme5rmO5tme1wmulzmt+V + turG4Pva7Pvc6PTd6fbV4/vQ3f3R2v7O2/3H3fPH4vTF5vyz1veUteV7nNiEpdmlxuu+3PvJ5f/E3/+6 + 0/unw/WSsu2LrOeUs+a21fmVtexdgNJcg95TfuBKct1XeOpWeetMe+REdttEc9dMdNF/oeerzPuMu/Jt + p+54rviFtPuYwPydv/ehvuy+1/u/1/mjvOSvyfLH3PzP4v231vWUvd2qxuHl7v3x9fzx+v7w/Pvg8O3p + +Pfz/P7q8PbQ2efR3fDV5fnW6Pnk8vzp8/ns8/ft8fnr8P3l7v3h7P3g7P3h7P3j7vvh7Pnh7vrk8/3f + 8fvX6fjY6/7b7//X6//P5//F4P+syvqPruh+oNx9n9qHquGcvu260/nQ3/7G1/ymwvWjxvOLtfZZgsuZ + ufC0z/5ojt1Bc9VMf+lLfOhHe+tCeetCd+VSf+hmkfYAAIi56nyv4Wud01yOyVmJy16O1WOT3mKR32KR + 4GaU42WV5GaY5meZ6Gua6G2a6G2Z6W2Y6HKd6muW2oKn3LnV9dru/dvq9trn89nn/dTh/dDf+s/h+8nj + +sfo+rrd/Iqu3l6AuWSDvoqq2bDO8Mvn+tPs9czj787h9sbY+a/C7Zis2anC5cbl+q3P9Y+z75C69oa0 + +n2p+YCn+nqj+Wyf8Wuh722c72uU55W376rJ+H+q6mOb5nKq83ep73un6ZW58Z+/7LzX+cvk+q7F567F + 7NHj+uH0/cHf9KLI5brV6+bu/PL4/PL9/PD8+ez29+bx9fD3++Lo97zH5cfZ8cbb+cTa9t7w/dzn+OTp + 9eXo9+Lm+t3l/Nvj/Nrj+9vk/NXg+M/d+M7g+szk/L/Z+6nF8pi37Yyr6Hue4nCX42qV5lqG4Ex41Up3 + 0FJ7zmeO2ZW67sDc+8na98PV8MLc/L7f9ZK35nOZz6nI9KXD9mGN2UZ83E2E60yB6Up/6kZ+7EV851OF + 6maX+QAAgrXtbKDaWozIV4nJXY7SXY/WXY7XYpPeZpfiZpfgaJniaJvjapzjb53hcZzib5vkbpjjcaDp + cJ3gfaXZqMrq0On62ur21uTx2Ob40+L3y9ns0+L1z+H2xdv1xdz5wNn3t9Dywdn7zOL/yt770uX81OX3 + 0+Pz1eT31OL6y9f3ucbqv9byv9/8k7bkaI/SWYXTVofVZJbhbpzobJzqZZ/naqPpb5/pbpXhpMHzts/2 + i7Dqeqrzgrb+fK/2farwjLHtiKfXn7jZyNzxvtD0n6/Vwczk4u36x9zutdDq0eL57+/8+Pb7+fz79fr5 + 7vL36Oz58vb90dnznKzbq8P0k7HigaHQudb5x9z7zd320N32z9v3y9r7y9n8y9n4zNr1ydj3xtj5xtz8 + udX6lrPla4rHVHW/TnHISW7OSXPUSHTaSnnjTn/qTXriS3TVY4nbnL/0xuD/yNn5y9v5y9/7l67UdZK8 + pcLuy+X+nbnsXIfbSH7nTYDvTHzqSnnrR3nqSHnnVoTuapj9AABpnd1lmNZhlNJkldRmlthmlthpl9xs + nOFwoeRwpORwpeVypuV1qOR7qOJ9p+N7o+R5ouZ0pOl7quuDreCav+HH4fXe7/jY5vHV5PXX5ffZ5fbY + 5fzZ4/3V4fzO3vzH2vnF2/rQ5f7H2/alteSdrduzxOvN3/7N4PrM3/fS4v3T4v3S4vbO3/a/0viuxfaP + rexhh9pNdtNLcthRfeVIgONKg+ZJeuJCbM2Fpu6cuvRvmN5ckuZjnfFemORdkdd3ot6Os+KiwODA2fTO + 4/u6y+fJ1unl8frM4PC81O/V5fvj4/Tt6/b1+vz1/P3m7PTp7/rr8/2qt9xtg8GauvF9pNtQfL6awvS8 + 3f2+2/zD3fzE3PzB2v3A2v3D2fnG2/fI2vPI2PLJ3ffG3/uzz/Kdt+aXsOaasu+VsfR/oO9ihdlUfNVd + hd9vlOiJquyjw/OgveujueHD1PnC0/bI2fjC1va3z/TF3/zE2/yPquVYgttIfexNg/VSgfFTf/JRfu9P + fOtYhvFrl/0AAHWm236u4oGw5YOw5I2465a+8Zi/8pi/8JbC75bF8JPF8pLG95fH+KDJ9KbK8qbJ8qTI + 9ZvG95zL+6PO+bTW+NTr/Or2/Orx/OPt/OLp+u3t/ebr/dfq+8He/KjL+Iuy5Xyd242o6qrB+7PH9rjJ + 8L/R88vf9dPj+NPk+8/k98rg9Mne8cvc9s3d+8/g/crg/rvU/6S+9Iah52+N32KF5luB5VF42VyF4ZjB + +oqz5mGMzmqW3YCq6Ja56aTH7rvc98vq/9Lr/tjs/OLw++by/+Ls/ufu/ODm+dnf+uDk+t3g9drn9dr3 + /dX5/Nj6/dv9/NH1/oCk0mWKyJ/H+H+q32ORy67P+c7g+9Hj+8DZ+cDa+8bc/Mfb/dHh/snZ9c7a9tHc + +c7e+cvg+8rd/dPj/tro/9Di/srj/bjc/pvD64Wl1aS96sPY/NXo/rzW/3WT5Gp/ybXA8tXi/cXa987n + /cLf/L3b+7LR/nSX40163EyA8FGD91R/9FZ98lp+8Vh/7VyJ82ub/QAAi7nklMLsl8Lslb3mncPqpsnx + qMnvqMruqs7vqdHvos/xm8v1oMn0qMrtr83tsc7urs/0lsT0erDodKndiLXhtdPy4vL+6fL61tzs1tvs + 6O395vL/rMjxYIrJUIXNWI/lPGrXLE/PO1jXR1/SaX3fnbH3vtD/yNf/zNr9yN/5wt72v9r0wNj0wdb0 + wNT1wtb3xt36yN7/wtv/utT+qsX9kKvydZTbe53hocb9i7DifqLWqMj1wd38yuP81O3/1PD+0Or4z+Px + 0uHx2eP14+r83uX73uX82+H51dz20t/2xt7yuOHuru31l+zxg/T1fvX7etv2PIS6OWqnkrLlrcj8rMX3 + z93/zc/8y9T/xdz/x+L/wtj+u870xNTxzNr2ytj7wtH5vtD5vtP6wNL4yNX5ydf2wtbywdr6wN7/qcf2 + tdD3zOP90eL9qrjvWXTGQWfIiKTzyNT8z9r8yN75wNz2u9j7udf+fZ3uPV/OLlfRMV/hMl7mN17pP2Hr + QmDpPV7kQGzoUYP5AACXwuuiy/SkzPWhx+6my++tz/OtzfCvzvGtz/CnzOyly+2hx/Gixe+qxuytyO2r + ye+kyPaSxfpkpOFJjMlPjcR4qNa/4Pji9vnZ4e7f6fTY7vyz1fSkzPl7qukxacUSTL4dUdYbRt4aP9wd + PtoWMcYrRMw/VdFtgemdsfe00Pqz0fO30vO70/S70vS91ve+1vm50/q30Pu20fu61vu62Pa92vy81/20 + zPi70vm2zfa81frG4PjA3PLE3vjA2/LD3/LM5PbQ5fXP3/DR3e/W4PPd5vni7fzX5PfG2/LB4PO54vKt + 4u2o6/OE8PM/6ekx5/NBzPJXs+eAtuW61fWoufZse9+AjOiRn/FTar5dfs6Fp+6oxfu91fq8z/a8zvO7 + 0vi00Pqxzfa30/a91Pq4y/q2y/i/2fm+1f5+jOJTYL2Lo9+83Pe0zP9dcM4dPJpfhs+11P6+z/nD0/jB + 1/SzzfC1z/uYsvo+WMkfO8UgQdUYP9cVO9kbP94jReUhQ+IXPtchT905bPQAAIq24ZjD7qDJ86DI8aXL + 86jP9KfL8KfK76fM76XM7KbN76fO86zO9rLQ97LQ+K3P+qTO/YzG/mKo7EuY4UWS2lKS0Iy85szo/uTu + ++Ly/77o/WmgzFKMyHq29o3J/12Z7xlSyws+xRhH1hRB1x9J5CVN6RpA1B9CyS1QvHaZ37fZ+7/Z/7zQ + /7/X/b7Z/LzV+7nR+rjP+7jQ/bvT+7nU77/a78Xd9MPZ9MLV9sDQ88jZ9szf9svf9dLl/c3f+M7h9dHl + +NDm98zh88vd7svb7tnl+ejz/tzr+sne9cbi9MXm9sPl88vv+7D7/mr5+Ejv90DA5nfP/bP0/7Pk/1V/ + 2goxsk534oiy+CxWwBQ8sSFHuj1du2N+zYyh8bjP/7fY/7DZ+7DW87LP8brU97nQ+LrS/rbP/oyg8zVA + t1Rj36zK/bfe/2aG3S5Ft2yG2LXS/rTN+r3R+8vf/bzS77rS+bTP/2iD5SI/xSFC2yVJ5hxE4RdB3xVC + 3xlI5RVH4xBG1x9a3Tp49AAAc6TTgrLiirjmibbkjLfkkLnlj7jij7fikrzlk7/kk7/klL7llr7kmb7k + mL/mlr7okb/ve7TxVZjgQo3fRZPoRYvYXpXSpsnx3/D+0uT7jrnwP3a/GletImHFSoPedKj3dZ73SGzU + IUe/F0PDGknVHk/mIU7nIkjVJ0jDjKrvp8P/cojXfY/irsT9vdf8t9D4ts33v9L7wtP9wdD8wtT6wNTz + vdPsxNrxyNz2wtTyvc/wydr40uL8zt750uD70d73zNzzyN7zy+H2y+H1y93x0Nry4+r53+r5zN3zy+Lz + y+P0ytrr2+Lyy/L8l/3+Yur8J5bOJnzHS5rSdb3yRH3eACqyQ2rakbX6Xn7WUGzOXnnaZobkWHvbX4Dn + aIjndZzonsb4utr+vNT8vND0utHvwtf8rb76V2rcJTvCRF/raIrvVXjcKUSqW2/KvM39zNz2u830wNP3 + q8DnudD3u9b8i6v2MVfGFEDJFEXbFUnbG1HcHljhHVzhHWHlHWXoIGriMX3jR5PyAABxo9WAseOFteWC + suKEs+KIteOHs+CJteCKuOKJt+GHteCGtt6Gtt2HttqKttyLt96IuOV2redTktg8hNg6h+M7hNtEhM1v + oNmu0PDP6/6x0P5XgNMhXcgbXdIPSsUfTslde+KUqPl8lvA5XdIhTMofTdcnUtoiRMRfeuywy/x4kuos + Rb0qRLtbdduXsvW+2P7E2/u90Pm/zffE0v2/zfzD0/7C2PvA2fa/2PLB2fTD1/rG1/zI2/vH3frM4PzO + 4PzL3ffF2vTG3fXJ3fXM2/LS2fDh5Pjk7v3W6PjL5vXM6vfQ5PTY4fPT8vyq/PaL7/lTqN8mb8Auer5t + t+l5q/hceOp4jfKqw/+vyvxzkPBmjO0+b98rYuEWR9UVPtQbPchBXtpjfeR/l+mrwv270vm90/2muvtK + YtkhRNIbQdgdQNMYNbVDWsCitfK+0/i0ze/C3PqnwuqQrt201v2fx/9Ie9kXVcgcYugga/Uhb/Ind/Ep + efAmefAkfPIhfvIffegtiONAmu0AAIu45pjF8pzJ9pvG8ZzH8Z3J8ZzH7p3I75/K86DI9Z7I9pvJ9ZrK + 9J3M8KDO8KLN8aDN9o/C+Gij5kuP30WR60mV70eR40uQ1m+r4bLg/NPw/KDB90aC2h9s2ilv7yZe5SJG + yjNGwWJ33o6v/nab90dv2yVKtElnyJ26/Iim/itMxB5CzCVK3x1AyjBQw2+M4bHM/cTd+73U877T8cTX + +sDT+77U+77X+b3Z9b3Z8sLY+Mnc/Mjf/MPg/MXg+8je+8fc+MTZ9sPZ9cva9tPe+dXa89vf9uXu/N7v + +szk9Mrn9M/n9c7e78zu97v5+qH0+XzJ/ESP5zuU4GW+9liW7zNSzzxUwnCO15e3+TRZyxlGyQpBzhVL + 5BxG6iFB6yVD8B074wwwxQ85tjlgyn+f67fV/J/A+EFlwxtFxRRAzRlBxjFTxXGO2bTQ9cLo/6vc+4W2 + 4Xmm0q3b+qPZ+2Oi6C562CF45hp48hh69hl78Bl76BR45BJ35RV77BV87RV65CKE4zeY8QAAnsbsqtH4 + rNP6ps7zp8/wqNHxps7uqtHyrNH1psnzpcn2oMn4n8n3osvypM7wps7wpM71lsn8aaXmRIvWQ5LkSJnv + Q5XnOIzaOYvUZqfdzvT/zvP8e7rrJ3jMFGPXIWPvIFLkHUDRIkPRLFHTVnvgi677eZvjkrHqq8z7QmjG + Ik3EJVTeHE3mG0XgGj7RJ0jFWHjUm77zwOL+vNz2tdLwt9Hwvdb4xdz9xd37wNfywNbyzOH60OX8x977 + x978yN38xtv6xdr6xtr6ytz50d/61d312uD26e/76/P83Ob41uLx1uDx1d7wze/7rPv9e+T6Ubb9DGPM + AFy2KKHsIn7nBj7KGUTBOmLAi63/XXzuIUPEKFLhIErgJ0bcJULZHkfhFUvjF1njGGDcGFfUT33spc// + pdP5VIO8OGbITX3ndqnsp9v/ueX/msPyb6blRorQRYfJkMnut/L/c7b0LnzKK4LhJofxF33rFYDuGYLu + G4LrGX/qF3zrGX3wGXzxF3npJITsOZb7AACgxems0fWu0/anze6mzu2o0O6nzuup0e2r0e+mye2kyPGe + x/agx/elyfGpy++pzPClzPWNxPdhpONFktdBlOBCluREmOY7lOcmf9kue8Z8r9vF8fy48f1mp+QpatAe + Wt4gVO0bSeogSuQoU9slSsI0UrSCn/K/3f+oxv9RdNAjSsEWQsYUQc0fSd8rUOwlRtwZO8A0WMZ8oeu6 + 3/+83fm92vbB2PbE2vjG2vnE2ffD2vXF3/fK4PrM3vvL2/vH2vvF2fzE2vzH3P3J3f3N3/vS4vrU4/bi + 7Pju8/3l6Pje4O/d4PLb5vfH+f6J/f1c7fxMzf0Scc8BYcAvrPIog+oDPNMbRtImS8dxjfiUp/stScgU + Q9IZVugRV+Mib/EleO8mfe8jgPMhf/Qmdu4sauBimOqo2vqdze+CruuRwf+X0/t1tutUj+U9dNsrZs1B + gtmQy/i56f92qfE1ctIqb9smcukWZ+IZa+McbeQbbOMdbeQdbOYdaechbesibusgbOYse+9Bkf4AAJe9 + 46TK8KjP86TL76TM7qXO76LN7KLP66fT7qfS7aLQ8J7M+aHK+qvL97DN9a/N9ajP+o3G/Fuk5EGT1USZ + 3Uea4Eub5EWY7CuD5iFx1Cxswnis8L/u/73q/nSe5TJcyB1Mzx1S5h1S4RpLyihRw1+A26bD/XWS3lp3 + y4qm9Yai9U5v1jdZ0SRH0BI1yiVI5S1P8xs80y9Nz3GP7LLN/77X/cba+8PW8sHT8cLW98Ld+7/g+8He + +cjd+8Ta+r7Y+r7X+8Ta/Mjc/Mrd/cre+8zj+cff8NXo9ef1/d3t+NLl8s/r97/r95r1+0vw8TPt+TnO + /A5uzgBawjSf8St67AI21hxK3xtKz0Zs2KK++1V33xBHvRxn5Bt47RiD7h2I7x6D7RJz6g9q7ih97kSQ + 3GWh3J/M9Mjt/rDV/2eT4ipkySFl2SBh5hlV4D525pHD+rHX/3GK7DBKyxg9zx1I5hA+4Q473BZB2RU/ + 0hU90RZA1BVA1hY/1xtF1hxJ0hlKzyNa2zhz8wAAfqnZibXmjLjpibXkirfljbrnibjkibnji7rki7ji + ibflhrXriLTrkrXolrfnlbfnj7jsfrX0UZXdOIPOP4zZRI3eRIvfPIfkI3PdF2PWJWjeKGLLW4vUpc/y + veD/gaTpNF3AIE2+KljLIUzFSnDarcz/iKX2MFC4LEy8KkfIRWLpco3ziKH7eJP0TWveJkjVGT/UGUDa + G0DSJ0zIX4XZnsP5weD/x+T8s87quNTvwt74wtz4yOD9xtz7w9n5vtj6wNj7x9z9y979y+H5yeL0zOP0 + yN3sz+Ls4fX43fn8t+b3gMvjadrnVPP7IvH0IfT7KdD9CmvIAF2+OJ7yLnnsAznUHkznHkjbPV/TpsD/ + jaj6MlnTH1bgHmnoC13VD1nLHFvNMGzjVI/6dKz/dqz7WYXcTGzEbIncttf+gqrvM2PJD0K6BzXCMlrc + iK32nL/3WnbcKUHJIDrVIEHlGz7oGDroIEDtIkHoID3gIT/fJELjIkLjIUDhIkLfIELZGkHRJVPaO27w + AAB+quCItOqKteuFseaHs+iJteqGsuiGsuiJs+uLs+yKs++HtPCJtO+Pt+uSueySue2OufB/s/RZlOFE + g9dEhuFBheJCheZAhOsocN0VXtIcYNobXdEgXLxHf9aTxPi65f+TuOtJaLkmQ6RdetSkwf5zkvQtTswr + TdAsUd0fRd8bPtwbOcw3Uc5heOh2jvV0lPJoke5Pe+QsV88ZRLRLdsWfyfqSuOmu0Pe01vSz1O++2PLI + 1/bN2vrI1/jF1fjC1fjD1/rG2vzJ3PvJ4PPI3+3M4PDO3u/S4uzW6/PG7PyGy/Itoc4cyNwm9vwM7vQX + 7fkl1PwKbsQAXr41ofMre+kAOtMaSOsbPt8oQsV7j9+pvPw+VdAZNsIoUcw/atRkgeh3h/FyhPVlgO1L + Z9onQtAULsIcNccqRstnh+qw0/6Jq+40ValTcNClv/+duP1MadkdPb4iR9odRN8cRN4cRN8dQ+MZP+EY + Pt8YPd4ZQNwdRd4eRuEeReMeROMbQuAYQ9cnVds/cPAAAJm/7aPK+KbM+qDH9aLI9qXL+aPJ96LI96PJ + 96LH9qDI+J3I+p/I+aLK96fN96TN+Z/N/JDH/2em7U6R4kyT6UiP6UiP7ESP8ix75xtt2yB14yJ25SJ1 + 5B9u1zZ94nq097Lf/6LC8ZWt57nN/5Wt8jRV1Bg/xyRO5BpG4CBK4R5E2SVF4CM/3x461SRA0TdX2F2E + 6Hyj9Xuc/XGP5Iqm7arE/lJrrXKLzrjW/LTT9rnS98ja+cPR8s3Y/MnX+8TZ+8Tb/Mbd/sne/Mzf+c3e + 9sva+crc/M3n/7Xd+IHB7Fa08DG77xvY9Bfz/Qrx+hDo/DLf/g55yQBWwSeR9CJx6wA41BFE4BVC2S9W + 1WGB17bT/3+b5W+M5X+e8YSj52R940NZ4yxF1xQ0zhA02Bg96CFD8CJA6iI91ytDw4Gb76rJ/q3R96zU + /Xmj6ylVxxQ9yiNJ4xxC4B1C4R5E4R5D4h1B5B1A5hs+5Bs/4hs/3x1C3x5D4h5B5B9C5hxB4hpC2ilV + 30Jw8wAAqMjvsND3r9D2p8juqMnvrc30rs30sNH3rdD1pMfso8rvn8nxn8nwpMvups3vpM3yn875i8P5 + YaHjSY/ZSJHiRY/lQ47oPY3sInffDmnQFnraF4HhEnzpDnTlEWrWIGnPUoXbnL3zy+L/p7fxTmPLLEzC + KE/YHUrkGEXlFT3ZIEPdIUXhGDzbH0LhKEjoH0PZG0LNJEnMNFXKXHvZpsP+r8r+fZrghaPvsdL+t9n6 + t9X1wdnxwtXuxNTyxNf0xd31xd/0yN/1yt/1zN7zy9v0xdj4vdn7p9D0ebfaSp/JOqrdQNL7Mun7Hen6 + DuL3Ftr5QNn8FX2/Cmu6RaTsUJHlSG/PbYvngaH2iqfwhp/tkKfxobj/VWnWN0bRLDnZHS7PHTXTJEPf + IEXgFTrkEDLuGDbxIDrpJT/RO1i+hqXot9T+pMH2YHzdJUPGFz7JGkjaGUTcIETgIkPgIUPfIEPfID/i + ID/kID/kIEDjHT7bHUDbIEHfID/hIUDjH0DfHUHXLFTcRG/xAACgw+qqzPOrzfSkxu2lyO6pyvGoyvCp + y/KpzPKlye6iyvKgyvKgy/OkzfGlz/Clz/Ohz/qMxPtgouVIjtlIkOJEjuZDjuo/ju8meuMPbNYUft8V + heYNfeUOduIceOcia9smXMc1WsNuiOCyyf+ft/1UctoeQ7whSM4jS94gQuQgQuYeR90bR9UdSOAZROUU + QOAeTOQeSdYdRsRJb96Ms/1Pds1Fbc1Redlvl+yVuvmxz/zB2v7C2/+72PvB3vvH4frK4vjO3/XP3fXT + 3fXU3fvS3v/H2v+fvet+rNl0sdxpteN42fp98/xq7PVk7PR37/yb8v1ut+RnuvF6zv5emfBTc+ZdeexF + Z+AuVMsjSsQvU8acvPxzjvIuP9UpOOUtQ+wfPd4WONofP+UkQusYNNsVM8wzVtZih+agyv+02/98nO80 + TskhOMspQeUnR+kfSN8dRt4jR+MiRuIgReAfQ98fQeEfQOMfQOQhQ+QbP9saP9kdQd0dP98eQOEeQN8c + QtcrVtxEcvIAAJG655zG86DJ957G9KDJ96LK+J3G9JnD8J3G86HJ957G+JzH+ZzH95/I86LK9KPL96DO + /YrB/V+e5UeK2kaM4kOI5EOJ6EKM8S585xhv3xd15hh67Bl45xlw4B9r4yFj4RxS2BpCzyJDyUFd1HyY + 8KnG/4am8EZmyiVFvxo6yR5A2SNI3h1F2RhE4RVF5xVG5BdJ3BdHzD9s2Y+5/3Wd+SJMvBdDxRxH0xpC + ziBFxkZl03KN54al7pO48aPF97bR/sLZ/8ze/s/g/cXY/rjN+Zy16ajH9Za88oCu6JHM9oPN9YTb9o/z + +2PV3WXg4oL0+YXb9z6GvjyV2TiY7hRW0Ro51SI84xg72yNJ5xlE2xpEx3GW86/Q/lZ04yI/0B4+1Rs+ + 2R072x841h86yzFPymKE25TB96zd/3qr7EBw1BdBxRxB2ShK7SND6iNE5ydJ5CRF4SNF4iFF4CFE4B9D + 3yBB4iBA4yBA4yJC5Rs+2xs/2R9B3h9A4SFC4h5B3xxC1ytV3ERx8QAAcaDWfKvhfq3je6nffqzigK/l + fqzifqvigKzjgqvlgqvof6vofqrkgajegqndhKzfg6/nc6fqT4nXPHvQQIHbPn/ePn/gO4DnJm7dE13V + CVPUDlfcEVnZFFbWGVfdGVTfFEfdF0PhHkbgGj3NHDvATGvWhqPvk7P/gaDtWXnfJkfFHDnRHjrhHT/q + IUjuGUPcEjvCMFjPep/6qM39RWjbJkvSIEfkHUTvG0HrFTrcKE3ZR2vhR2vZQmjSWHrfaobldpLnhKXr + i7LwdaPrUobVNWvAbKfraKrvM33NR6biV873Udz3S+r4AKi5ALrQLuv4QNv9AXLDHZbmIp3vDFrMJEbY + LkTkKELmK0TqJEHjKEfYNE/HjKj4gKX8KVHHFTbCHDjPIz7MQV7Uaonlmbn5sNL/h634PmfQHUrGGkrS + HEzgGUjmGUTmG0PlIEThIkPeJUXgJ0bmJkXmJkflJkXmJULpJELpJELoJULoHjzeHT7bIUDgIj/jI0Dl + IT7jIEHcMFfiSXP2AABqmNNzotx1pN5wn9lzodt3peB2pd96p+J6peN2n995ouR5pOZ4o+N7o9x8o9l8 + o9p6pOFrnuVIgtI4dcw9fNk8fdw9fd43euIdZdUOUsoSUdAXVNgTUdgPTtgSUN0ST90RR9kWRNsdR90g + RNomRtkkRNIjQsw7WdJykuyZuf+Xtf9rhepBWt0mQ9AhQsojQ8YpSMJigOibuv19nPQrTModQdQfRukX + P+oZPucYPdooUNVEbuFMeOtHdfFHce1FbORCbd5CdN5DeuBAeeA9ddpActl2pfRzpPQ+eNdMoORp4P9b + 7/445PoCvdcAy+Ad7Poq1/0DgdgenfAalugGWMYeTdMhSuATQuUYRu8UP+gkSuofPMo4VdWIrftYf9cx + S8FPYdWCmvGryv+tzP+Bn+tJZNwpRNglQd4pTegmTegiS+chSuchRuohROoiRuQiR94kSOElSOckR+Yj + RuUjReUhQucgP+cfP+YfP+QeP+EgQuEfQOIcPeIdPeIbPOAZPtgoUtxCbfMAAImx55S88pfA9pS98pfA + 9prC+ZjA9pe/9ZnA95rA+ZrD/JnF/prF/Z3F+JzD9ZvC9prE+4W6+12Y5kmH3EqL5kmM6UuN7UeN8i95 + 5x9o2Slu4Sxy5yRt6x1n6B1l6htf5BdT2BhK0SJN2SNJ3Rk+2iBF5ydL6xxA1Rc4wTVTylt50o2s7aXI + /ZW6+m+U5EBhvURgxZOv/6PC9TlZwSxP0iRJ3yJK6RU+4Bk+3h5A2SxR2UNt5Uh27kBx7UBx7UJz7EN4 + 7D996Tt75Tl45UF75UNz3Hil73yu+jx72DiU11vd+1Py/C7g+wbP7gnk7x/0+h7T/ACJ2x+Y8RqC6ghQ + zhxJ2BxH4xBG6Q9C4hA60hs8yzFJzzNJu4mj8bLP/KzH+6rG/Zez9mB+4TJTySVJxiNKziBH1h9F4BtB + 5htA6BtC5BxF4BtH2htK2BtJ2hlI3xdH3RNG2BJH2RJH2BNI2hNH3RRG3hRG3hVH3hFG2RNI2BVK2xdK + 4BxO5h1R5htS3Sdj3z178QAAob3rrMn3r8z6rMj2rsv4sMz7q8j2qcb1p8f1osfzocn3n8r5ncj3nsfx + oMfvoMjyncr5jcP9YqHpSIzbRY3iRY3mR4/sRZH0Ln3pGG3cGXDfHHblGHPlFG3hGmviG2PeF1TTGUzR + HErXHUfbGkXfFkTiFkPiGkbhH0fdJkbWJ0TNKEnBPmTLYorhg6v1l7v/qcb+wNv/rc38ZIfUJkm/EjfI + GUPcHUfjIknlHUXfJ1XiPnLzRXz1Q3ntRHrsQnjrP3jpO3rmO3rmQHjoSHrmSXPZfKXwear4MHLMLIrM + WNn6XO7+M8f6AZnJDOH0G/n+HN3+AJ7hGZP1EWnpCkHQIkLWGz3VEj3RJk3OVHLZcozgl7H0rMX/rcX/ + lLDwZovfPmzRIFHFE0XGHFXXIF7gE1XZD1PYGV/mElbjEVTkFFbiFljhFVzcFV/aFF/eEV7iEWHiFGfj + FGjhFWnhFmrkF2npGWrrGmrsGWnrG2/qH3PrIHPuIXPyJnj3Jnn1InjrKobqPpz4AACmwuuwzPSxzPWq + xu6rx++tyfGrx+2qx+2oye+jyO2fyO2cx+6dx+2fxuuex+udye2byvWLw/pgoeRFi9dEjeFDjuREkuhB + ke4ofOQRbNkRd+UTeukSd+IQcNsVbdwYZdkWVNYbTdkeStsbRdofSt4aTN0WSdkXRtgZRdkdRN4jRuQj + RuIdQ9YYQMgfSMI6YMhjhNaCpOmYuvajx/uDpvdegutIcN80XNghR9AROMQeTs42b+I8duU9dOI8duM4 + c+A0b9w2cd89duZFd+lLduVHbtR9pux7rPgzc9E5kNVu3/xx5Ps5newAV58PweQj7Psm2/MNos4eiNYi + ZdA1XM1bc91hf+N4n/Kfw/mvzv2kxPmLsvJsl+M+a88kVskUVc0TX90dcOkjee0gee4bdvAadvAaefMd + ffMcf+0cgOobf+kbfusafe0ZfO0ZfusZgekZgekYf+kYgOkYgekYgeoYf+saf+0bf+4cgO0agekZgOcX + feYVe+YYfukXfucUfeAejOMxoPIAAJS+7KDK+KPN+p7I9J7I857K85zH753J8KDM853L8ZzH7J7I7qXO + 9qfP/KLM+pvL95fL+4fA/l+d5UeI3UiP6kaT60OU6D6S6yp94xlv3BV15Rl67Rp56Rhz5Bdy5BRq4RNW + 2RlJ2SFG3yVD4SND4RxG3xxH3h9G3CJG3CBI3iBL3yNP3SRR2yNP3iJM4B1H3Bc/0xlB0ChN1zpe3lh9 + 4n2j75C2+5K1/oSk9HWT5nSX43Ke5mSR6FaG6UyE5kGC3z5/3EJ530R24kZ240t74Ud1zXSj6nms+EWA + 1VGh3Yjt/YTe+j9+2yFmt07D5mz2+3Hx9m3X6YPI6Z7F9qrG/a/M/qDH94Gz6WaZ5kZ01ilbxxVSyxJb + 1h5u4CeB7B6H8hSI8Q+E7Ax+5hKE7BmI8xKB6g595RWE7RSE6xOD5xOC5hOA5hSA5hSA5heD5xmF6ReD + 6RN/6BSB7BWD7RSC6xJ/6RF+5xN/6RWB6heB6RWA6BR/5haB5xeD6RWB5xiC6SKN8iyY/AAAgazljbnx + kLzzi7ftirfri7nsibbpibjojLzrjLzpjLvnkLzolL/ukrvwi7bsh7Tqhbjweq/1WZHjR4LfRobqPobm + PIrjPIvrLXbjHWTdG1/nIGTwIGPqHGHjGWTkFmDjF1LdH0veJ0nkK0bmKUflIUjlIknkKknkKkfjJ0bj + I0PhJ0rlKErmJUfnJ0rsKk/vKE7qI0njH0PeH0LYHUDNKUzULFHSN1zTRmjdUHTmZpHxf6/4jbj1mbvy + nsP0n8z3pc/6rMz7rsn7rsb5scb5sML2w9X7xtn+s8z6s9/4vPj7wPD7ssb4nb/1muj6mfn9lff9f9b8 + aKTqV3vXSGbUNlnSJE/QG1DSG1DUGk7XGVPgHmXyJnr8JoP6Gn7tFH3qGITuGYXvFYDrFIDqF4PsFYHp + FIDoFYLqFIHpFILpFYPpFoPoFYLnFYLnFYHlFYDlEX/jDIDiDoPmEIbpEIXpD4PnDIHkDoDjDoDlEoPp + FYPpFILpF4TqFYPpEn/mEn3mF4LrHojxAAB9peSJsvCNtfSHsOyGsOqHsuuEr+eFseeItemItemItemM + t+qPt+2KseyDqud+qeV9ret2qvRYjuZDfuFAgOo4fuQzgN8ygOUgbNwQVtYRTt4XUOcWUuAQUNkOVdwM + VNsNStYVQ9geRt8jRuMfROEZQ+AaQ98gQt8iQuAhQeEfQOIeQOYeQOcdP+UcP+IbQN0cQ9oeRd0gR+Qh + SOUcQ98cROAVPtgVQNoTPdoJNs4WSc0zbNlBeNdHd89OgdVTi99bkOdkk+prlutymep2mut7ned+ouRw + mNxyoeOS1Pmh9P2Iz/hQgM4sbrZDwt9L6PdW7P04uvQNas8AQMAPRNgeSukaROUbSeQlUuwnUuseTuYZ + VegfZu4gbu4WauUYbuUddegdd+gceOkZeOkYeusYf+0Yge8WgO4ZhPIXhO4Vgu0SgeoSgOkTf+gTf+gT + gOkSgukQhekQh+kQh+oOhegMg+YLguYNgugQhekOhOkQhOoRhewShewQhOsPgukPguoQg+sShewAAI6x + 65u++J7B+pi89Ji885m+8pa77pe875nA85a98pW78Zu+9aDC+6LB/Zy+/Ze++5fF/YGz/FKJ4Tl01jp8 + 5TmD6DSH5C2D5Rtt3Qxf1wtg3hFl5BFl3w1j2gxm3Qlj3ApU1hNO2RVG2A870hNC2BFG2xJH2hVF2BVE + 2BVG2RdK3w9E2Q9E2RZI3xdI3hVG2BRF1BNE1hA/1ws71RFF3hVK4g5E3BBH4BNH5A9C3BxU2zRx5Dp4 + 5Dh23Tl54jZ65jJ35jBw4jBu4DJw3TVz2zl33Tt/4Cp40C6H2lvJ+nbz/VXM+BR10wBmuA3E4hrr9y7w + /BC99AB11AFc0w5k6Rhh7BVZ5Ble4iBm5yBl6BZd4QtV3ApV3gtY3QpX1hJf2Q9c0gdXygxh0xBq3Ats + 3Qlv3glz4Adz4At35Al34wh24Qh14Ap34Q554xB85hR/6ReB7RuB8R2D9ByD9ByD8RiB7hWA7RWB7RWE + 7hKC6xGD6xKG7BCF6gyC5w2D6A+G6w6H7AuF6QAAo8Dyrsz7stD8rMr4rMr4rcz4qsn1rMv3qMn4nb70 + m7zynbzxor/3pMD7n737l7v3kbz5hbX9U4vfMXHPO4LoSJn3RqD5Ppz6Lov0IIXwGozxHpX1HpPzHY7v + G43wGIXuGHPnI2ztIVzmEUbVHVbmImTwJWryKGjvJGbrH2brHmjrHWrnH2znImvqImbsJmbtK2jvJmLs + FFDfBkPRIGHoJ2vvIWboIWToI2DrI1vqM23vRYL0S4jsTormUo/qT5DwTI7wSIjtRofqSovoTpHpS5Dq + SZbsPpnjQa3qXdr8afb8WeL8KqjvA5PWFNbxGe38J+r9DLvwAInZCIDgFYjvHYfwH4nxHIzvFYnsEobr + E4bwFob2GIL3Gnz3HnjyKHvyHGzfDGDRFW/fIIHuGIDtEn7qEoLsEYTtEYTtEITsEYLqEYDoEn/mEX7m + EH7kFIDoEHDjBFTTE1/hGmfqIHDwInXzInn0IXr0HnzyIIH0IYb2Hof1F4XvEoLpEITqEontEYntDYXp + AACgvPOqxvqsyPqmw/eoxfeqyPmoxvapyPakxfeau/WdvPefvPegvPihvPueu/yavPyUvfuFtP1UieEv + bc46gudJm/xCnvc8mvkvj/gXfukXie8WjO0YjOsUhuQYi+wcifESb+IcZeQeXOUKQ9EXU+IkaPQiaPAm + ae8eZekga+8VZuYNZNsSatwTZt4ZZOUhaeskaO0mZ/EQUd0DR84iaecfauMcaN0VXtcPUNEXVNoybutH + hfJHi+1Fj+hHlOxCj+tEkvI+i+03gOJBiudJk+tCkes/luw4n+RCuuxf4/1e7PpK2Pw7wvgAjscB1OsJ + 8vwk8/0LxPQAiNUIh+ANje4Rg+gUg+oSguoUhu8JfegLgOoPf+sPfegahe8cguwjg+8YdOADY88QduEd + ivMRhu4Ti/INh+4Jg+kSjPEWjfIOgecPguYVhuoSguYRguUVhOkQa98IStITS9oTTNsTTtsRUNwSVN0R + V90QWtwSYOAVZeMWa+YZc+oeee8ffvEfgfIegvMdg/IAAI6t85e2+5m4+5Oz9pW19pi4+Ja39Za39ZW6 + +JG5+ZO5+Ze5+pq5/Zu3/pu4/pi5/pS6/ISv/liJ5jdv1T9/6kyW+0mc+kSc/TKK+BNr4Qdd2gpf3Q9j + 3Q5l2hp46yqG+yBv7Bxc5BpS3ws/0BlQ4ipp+CVl8xlV4gQ+zQtI2BFS4Rpi6Bpm6A1X2wxT2xdb4x9j + 6SZm8BBP3gNF0SJm7CFn6B9k5Rdb3Q1N1hRS2y1u6EKH8UGN7T2N50KS7D6P6UKS8TuK7jN+4z6H50WO + 60GQ7DeP5jOe4EvI7mbq/Fbd9jzF7zbC+QCbzgDW6Qjx+x3n/RLA9wCS3QmL5BWL8B2E7xhz5wdd1Rdv + 6Rh27x6D9xaC7QZ53gaD4QqJ5hqN7xN95AFr0wt95BeP9AyJ7AuM7gOD5gB94AB01QN52wJ32Q5/4hmL + 7BmK6xaL6hiK7BZx4xdU3CFU4x9S4R1R4BpR3xdQ3RVP2hNO2BJO2BFP2BFP1xFS2BFU2hNW3BVb3hde + 4Rlf4wAAeZztg6b1haf1f6LwgaXxhKjzgqbxgafwgKrxe6jtfartgKvuhKnviKfziajziKjyhKjyeaH3 + UoDgNWnSPXflSIz0RZP0PpH2I3XlAkzKFVbiJ2X2JmbwCk7RBEzNE2DiG1/mJl3rIlLlCjfOGEriKGH3 + J2D1JFftFkXdFEbhC0DbFk7lHFfrFE7gF1LkIV7sJGPtJmPuEU3fCUbYJmP1JWPzI2HwG1joDkvfE1Hj + Km7sPYnxQI3uP4zqRZLsQo/nR5LuP4nvNnvnQ4XsSo3uRI/vMovhN6TlXNv3bPD+R8rzKbDfLsL4BLPf + CN7yFPD9FND3FLPxCJznBpDnDY3sFonwGX7vEWzlCmHcBl/aGXftH4DuDnfeCH/gDorpGo/yDXzkAGrS + CHziEI7zCIruDZH1CYzwCYnsFI7zGZD0EoXpFYXpF4rtEYfpDojoEYnsEHDiEFPYHVPhHlTiIVflIlfm + IlblIVTkIFPjIlXlIVXkIFPjIFHhHU7gHE3fG0zfG0zfGkzeAAB4m+yCpvWDp/Z+ovCApfGDqPKBpe+A + pu6ArPB/r/GAsPCFsPCKr/KOrfSPrvWNrvOKrvN9pvZUgt42ac8/euRLkfRGlfA9kPAkduIHVcscZucq + cvYpcO4MVtIFU84WZuIdYuUjWuUfTeANOM8bTeInX/IfWOsfU+ceUOMjWu4hWe8QQtgMPNEQQNUaTuAn + X+klYeUhXuUSTNkPSdkoYPIoX/ImXO8cVOcPR90TTuEobeo6h+0+iutAiehIkOlGjuFKkehChuw4eOZE + getNie5Ci+szjeA/r+lh4/pm6fs6uukXoc8lwe4UyO0T5/oa7/wHt+IPpOYUoe8Fj+UAiuIGjukGguYJ + eugXgfMNcuUIZ9oMZ9UXct8hhvIXhO4fi/UUf+oAa9YHe+QPi/MGhewLi/IKh+4JhOsQguoVhewSfuUW + g+oai/ETie0MiesLh+wNceMSVdsdVeIeVeMfVuQhVuQiVuQiVOMiVOMiVOMjVOMlVeQnV+YoVuYmVOUk + UuMhT+EfTd8AAIms8ZK2+5S4/Y+z95G195S4+ZK195G19ZO8+JTA+5S/+5fB+5rA+52//J6//JzA+5nA + /I64/l+P5DlxzkOE5E+c90if9EKd9jeT9h5/5w503gZv2Qpw2A102xyD7CSE9Bdn4R1b4SFU5Aw70BZJ + 3iNe7iFf7B5b5xJQ2xlc5x1g6yVe6SRX4hdL1RpR2iZh5iZl5yRi5hJN1w9H1Shg7Clf7Cdd6x1T4g9G + 2BNN2yls5zuG7T6K7D+K60aQ6kWP4UmT6EGH7TZ46EOB7kuK8j2J6TWS40i88V/m/l7i/Dmy5xWaziPB + 7BzY+Qrt/g/z/gCq2RKf5yGq+wyQ5wCC3QSG5gB84QZ86BiM+hSH9hCA7gt24wlz4BOD8RKG9xqJ+RB8 + 6QBs2Ap+6ReQ+w2J9A6K9QaD7QR85ABs1gFw2gBu1wd34A+E6wyF6waH6gaF7Apv5BRX3x9U5R1U4x1U + 4xxV5B5W5SBY5iNZ5iFX5CBV4yFW4yBW4yFW4yBU4R9T3x1R3hxP3gAAn8Hyp8r6p8r6ocL0osT3pcb6 + pMX6psf7pMX5mr3zmb72l773l8D2mcH1msL1msL2mcL5jbf7XIzaOHPFP4XaSZzwR6T2PZ/1LJDsGofm + EIrqEZLxDI3pC4fkGI7rHYTpEmbZGlvbG07ZDTfJH0nbJlbmJlrpIl7oH2DoHGDoGl/mG1/kH2LiIWHh + ImDhJV/kKF/pJlzoF03cDEXSJ2LtJ2PuHlrnHlnpHVfnFlLdJWPiP4DyR4v1QojvRInpSYznSo3sQoHt + NnXmOXfnRIjxPoroOpXlT8nzYfT8Vdj2PKPmKJncGqvgKN38Eu78Duf8AqPbDZDbJrX6EJ/jAHzPBX7g + CH/lDYDlDoPoC4frC4jtCIfnBoPkDYPpE4TuG4vyDH7hAG/RB37hFpDyEZDxCoztB4vsBYnpDI/vDY/v + DIztDYrrDorrDInpCIbmDofpFXTmFVbbH1bhHVXgHVfhG1fhGljiGljiGlnjGFjhGFbgGlfiGlfiGlbi + GlXhGVTfGVLfGFHfAAChxfKozPmlx/ebve6Zu+2au+6XuOyXt++Wt++Qs+uRtvKRufeTvvqWwvqZxfua + w/yZwvyQuf1jkOVCedNHieVQnPdMof5Enfwuh+8dfegdhvQij/wbifQWgesgg+8leu8eYuQlWOYjSeEY + NtYrSOkwUfEsUu8jUukgVOsfVesgV+wfV+kfV+UhWOMkVuMpVekxVfIwU/MhR+YUPdosWfEtXvMkVu0n + WvQpXfYiVukuY+lJgPlOiPtEgfJFg+1IiOxKie9FgPE9dew8d+xGh/Q6heQ/m+lb1/ti8/1MxfU6kuEv + keIbpOIx3f4d7f0V4f4HoeERiuAzv/kfvPYFk+kVkPUilPodjvAekvIYlfQTl/UOl/EMlO4NjesOhOcX + iO4PfOQBbdYIduAUhO4Vh/EShu8UiPIVifYTiPQThvMVhfMVhPIXgvEYgfAXf+8egPMic+8fWeInWeck + WecjWOYiWOYhWOYfV+UeV+YeVuUeVeQfVeUhVOYiU+YiUuUjUeQiT+UiTuMAAKPJ/avR/anO/J/E+Ju/ + 9Zi89JG074yw7I2w7oqw8Iev8oWu9ISw9Ye19oy6+ZO9/Ze//Yiw/l+I6ERy2kR65kSC7kCD8Dh87yJi + 3RJO0RhT2xpV4BRT2xBP1hZR2hdL3BQ61hYx1xsu3B0q3R0t3hgv3RYy2hI22RI62hM72xI82RE81xM+ + 1RY91Rg71Bo31xwy2x8w3R4v3Rww3Bwz2hs32hMw1xc33Rk73xM30yBI1ztn50Jw7Dtt5jpx4Tl33Tx5 + 4D1x5jpq5jlr5T946CVxzTuZ5Gjd/WDg+T+l6DJ51yN61wiL0R/G+iHl/RLR/AGN2QR10SKq8iK8/AaN + 5AZ53xWE6xF+4BCA4Q2E4wyK5wyS6wqU7AuQ6wuJ6RGI7RB/6Qdz3wZx3wl04ghw4AVq3ARn2QRk2AFj + 2gJj2gJh2gRf2gNe2QNc2gNb2gZa2g5Z3BhW3xxW4RxW4htX4xtX5BxY5B1Y5h1Y5SBY5yNa6CRZ6SZZ + 6idX6ShW6ChT5ydR5idQ5QAAirLrlr7zmcD2lr71mL74mL76krf0jrTzi7Lzha3xfabvc57qa5niaZne + bJrfcp3ldp7rcZj1U3njPGfZPW3jO27oPG/sOmzuJFDbFjfNHzPVIjHZHDHWGjHVGzTYHDLbHCvdGyTd + ISjkJS3pGCbdEyrZGDngIUvpJ1XuJlXsJFTpIFPlIlbmKFjpK1ToJUXjHTTbGSrXHy3dKDPmIC3cIC3c + GCbXGyzbHjLcFy/TJkTXQ2fqR2/uO2XmN2riNXHZN3PcPW3mP2noPWrlOXHfJHTLSKzneej9ZNL1P5Ll + OnLeJXLZAH7KGb/4Keb9DML0AIPUAHHLEpvrILz9C5LlAW/WEHvkEnjfEXfdC3feCXzfB4PhCYroC4zu + Do7xCo3tC43sDo7sDYvrD4zuFY7wFYrwEYTsEYPrD33pEHvoEXrpEHjoD3XoD3ToDnPnDXHnEHDoFG3p + FGzoE2roEWnmDmblDWTjDGLiDWHhDV/gDV3fEF3gEFzgEVrfElneEVXbEFTaD1PZAACFsOmPufOPufWL + tO+MtfCPuPONtvGLtfGQuPeTufuPt/yKtPyEsfZ8rO91pehvneRrl+dkj+tJc9w6Ztg8aeQ3aOY8a+xB + avQsTuEdL9EtLeAxJ+EsKN4oKt4mKuAmK+InKuYlJuYgJuMcKOAYLt4bP+MgU+slYO4hYugcXuIZXeAa + Y+MZY+MdY+MmZOgpXuojS+QZONsVLdcXKNgbKtkeKtsYJdkfLOAjMuEcMNUoRNdAY+hGbPBAZ+07beY2 + cds4c9w/cOlDb+xAbugzbdcviNhcy/F/7P1evfE5ft0+b+Eqd+ACidAs1f4u5P0FsekAe9ACcc4IkuIg + vPwSm+wBb9cUeOQZeOMbd+QXduURduMMd+EJeeQLf+0MhvEEiukGlOoJmu4CkeYBjuMHleoKlewIkesM + lO4Nk+4Nku8Oke8PkO8Qj+8Qj+4Rj+8SjvASj/IVkfgUkPgTkPgSjvYTjfURi/QQifISifQOg+8MgOwN + ge0Of+wOfewMeuoKeOcJduYJdOUAAIy07ZO79JO79I+38JG58pG68o227Y627pK49JO395S4+pC3+Y64 + +Iy694q694q4+Ii1+nOg9lF/4z5w3jpv4zds5Tpr6Tlk6SVG1xsvzycq3Sgk3yYl3ics4Sks4yYp4iUm + 4yYo5CIp4hkp2hUy2BlF3ydg7yJk6B5m5Rlh3hhj3hVm4BFk3RJi3Bpk4SRl6iRZ6hlD3hIz1xYv2Bgr + 1yAw3x0r3yMx5SI05Bsz2ChI2j9m50Zw70Jt8Dpt5jZz3Tl23z1w5j5u5z5y5Cttzzic4mLd+HLe/Uyf + 6zBu0Txt3yh83ROm4Tjl/Dbf/gSU3AZ21wtu1wF91Rut8hqb7gVu2BZ04xx05Bty4htx5Rtz5xh46RZ6 + 6hB67AZ36QiD6guP7AuR6weN6AWN6AmV7wqY8QOU7QGO5wCN5QGR6QST7ASP6QOM5QWP5wqT6w2U7AuT + 7AiS6wWS6gSR6QSR6QeS6wiT7QeS7AeQ6wqT7guT7weP7AaO6wiP7AqS8AuS8gmR8AeO7QAAhq/qkLj0 + kbn1jbTwj7fykbnzjrbvj7fxlbrzlLbxkrTxkrb1k7r3kr3zjbrwirjvh7j2gLL+XpXvQn7iPHznPX3t + RH72PnHyJlDcGjrSGzHZGCrZFirYGizaGy3dHCncHifcIynhIy3iGyzcFTHXG0TfLWDyJV7pJ2PrJl/p + J2DrImLsHF/pGVvkIF3nLGPzKVfxFTveDCrUFC3ZFyrbITDiHiviIC/lHTLiFjLXJUrbPGvqQXLuPGzq + PHHoOnTgOnXfP3PpOnDmNHLeK3rUSr7wcff+ZdH5QIjkN2/VOHHbI4bbJcj1Nub+HrH3AWvTFmfjIWzr + DHXfIKH0IJXzCGfbEWrfGG/iG3DkHXHoHHLqGHTmFXbmDXXnCXboCHnmDIDpE4rxE431DIzyCY3wBo/x + ApDwAI7rAI/pAJLsApXuAZLsAJHpBZTrCJbsBpPoA5HmApPoAZXpAZXpBZftBZftBZftBJbsA5TrApPr + ApPrA5XtBJbuApXuAZTtAJTtAJPtAJPtAAB/p+yMtPiPt/qLs/aMtPaOt/eLtPOLs/KUufaYuvSRs+2Q + s/GVufWVvPCOt+qJtuqMvfZ/svtak+lCg+E/hutBiPRFifpBfPcvYecmUuInU+sjTuoeSOQbQuAXOtwV + M9gVLdYXKdYYK9YVK9MQLtEbQt4tWO8dSd8aRNsZPdoYONgZPN0YPd0SOdUbQdwxU/EzUvUcN+ASJ9Ue + L+AeK98jL+QfKeIeLOMaLt4TL9MhRtc4aOY+cOs+b+pFduxAceI6a9xBcuo3b+Iqb9U5kOdb1fdr9PxI + reUubM06cdgwdNYqmuA35fwz4fsEfN0AP8MQQdQfT+IQYt8plvE1mPoXa+gRY90Va+EWbOMZb+cccugb + deYZd+YVeOcSeegPeucQfOYOfugNgekMhewLiu8Lj/IHkfACkO4AkuwBle4El/ADl+0BleoAkuYBk+YD + lOgDlukBl+wCl+4Dl+4Dl+4BlewAkusAkuoAkusAkOgAjugAkOoAkusAkuwAkewAku4AlO8AlfAAAHSb + 73ee8nad8XSb7nWd7XOb6nOc6n+o84+1/JO5+ZO395W5+Zm+/JnA+JS98o+78Y28+H2w+lmT6kWH5kCK + 8DiD7y546ilr6CZe5Sdd6yNe6yNg7SNh7SNd7CFZ6yNV6yVQ6yNL6SBI5xpF4RI/2RtO4yZY7g071Aow + zhIt1BYo1hko2Roq2hMl0RMozyg95TJJ8x804BUn1iEv4h8q3yYt5iIo5iQt6iMx5x4z3itM40Vx9EZ2 + 8jtr6Edy7Uxx7Uhs6Up18zpw6CZu1T+d8Gno/V3n+jWV4Ddr1T5y3jOA2ULB9z74/i3b/Ahv2wY70hs4 + 3iA+4AZFzRl25TaQ/iZ09BVl5RVr5hFq5RRq6Rpv6yJ27CV67SB67Rh36hV76BB95Qx74gx+5A2C6AyH + 7A2M7w+S8xCW9w6Z9weU8gKQ7AGS6wSV7QWX7gWW7QOV7AGW7QCX7gCV7QCU7ACT7AGV7gOW8ASW8QWW + 8QqZ9AqX9QWS8QOR7wOS8AKU8gKW9AGV8wCT8QAAW4LlXYTnXoXna5LydJ35ZY/qV4DaZI3jf6n2krr8 + lLr9j7X5hqvtiKzqkrnzlr/5jbn5gLL8XpbuP4HiM33mKHTjHmjcGFrZF1DaHVfjG1riG17jHGLkGWDj + GV7jH2HpI2LtJGHvIF3sFVThFlbiLnH3PX77HFbjGEjfHT/gGzPbHC7aJzbiHzDWCR7AESrLKELkITjf + EibQGivYHCfZJCzhICbiIyjmICniFybUIDvWM1fgPmjoP2voN1zaQ1vePlbcO1/kMmTgJm7YTa3zcOz8 + QMXiKYDSRnDjLl/OI3XFWNz9OvT7KdT7CGjZFEHdLEDqKEDlBDnCDGLWK4H7GWHlBlHTFWnoGW7tH3D0 + H23vHmbjGGDbGWLfGmrmHnnrFXvlDXXeEXniFoDpF4PsEYDpD4DnDYHnCXvhCYHmEI3xFZT4DpDyBITl + AH/iB4vtCpf1ApXtAJPpAJHpBJPsCZjwDZfyC5PtA4njAYDbBoTgD5HvE5bzDpHuCI3qBIvrB43sC5Py + AABQcuk6YNFOf99omvVjju1UfN5SfNhfjeFzofCDrPaEq/V7o+yEq++Gru59puWHsPGJtvqEtv1Wj+ov + bdslaeAYXNwOTtMWTdcfTdofTtseVd8lYeogX+kWVuIPVeAVXOYfYeoWVN4RTNgcU+ASUtwbZecyhPwd + ePAKY9wSY+IRXOEaZ+kca+sPXt4YYt4ucOolX+wQQdYTOtcXOdkYNdYbN9kVLtkTKdkLINAFGscbMtI0 + TN46WOE9X+I8V9xCUdw3SdUuTtghXdQagdRGxfNu6v46pOAeXs80V9wjZM8qoddQ6/045f4zyPwSZtcX + P9UlO+AsQecPPNMVV+M3f/0eZeYAPMcLSNQXUN4jWOsjWekcWOMeXOUiYOsVVd4dZOYib+sSYd4TY+Ea + buwYcO0befMKb+UFceENeuIHf+QIhecLgeUDdt4LeeUage4NdOkFeOQJmfcAlOsBmu8Hm/AUnfYTku4E + eNgKfd0UhuMKhN4DgdsMjugQmvUChuUAfNwIk+4Lle8AAGKE/z1l2FaM6XGp/WCK7FV14F6E5XKg9YKx + /4Wy/YCs93Ge6Ye0/JS//4Ww84y2+I+9/Xap+T932iFf0iNk5hlZ5g5I2xtP4i9c7zdi9ChU5jJj9Sda + 8BdO5hFP4hda5yVl7xxY4RFH0hxN2xhU3RVl4yOH+w+G7gB42Q2I6gyG5w+T7g+X8AKE4Q2G6SKN+BRu + 6QhU2CFf6ylg7SRa5idb6SJW6iBR7BdF4xI72SpN5UNh8EZl7Uhp7URh5UNX4EZd5jti5yhy3yys7FPr + +VXN/Ct54RlHyyFD0S5+40zd+1P0+y7C9Syi7x1j2RhA0iA62SpD5BY72BpN5jx9/SZs6gA4yRA2zxYz + 0R041xw92xVD2x5R5iZY7RhL3x1V4ilm7R1d4xlc5Bdg5wlY3RNq6gZl3whx5RSG8RGH7RWL8BOI7Qh5 + 4gx45xh/8wtl3QJm1g2a+QGT6gKd8AGY6g+b9BCQ7QFw1A984CSZ+BqX8QiL5BGX8Ref/AOF6QJ93g2X + 8Q+b8gAAX4j1PWrTSn7cZ5z1a5P4Y4DuW37mYozpcJrve6fyhbL6eqrzfK30f6zvd6Dje6Xme6fvaJjv + OnHVIl/QJGXkIGHoGVfkGFXmFE7jE0jfFELcJFHsI1HuIFLuH1jsIF/sJmbtG1rfEk7WGlTfEljeFG3o + GYX2An/lAH3bDpLvDI3rAIfiDZnyFZz4D47vEYTvC3DlBV3ZFWHiH2XnGmLgIGboHmXsIGbyGlvrEU3e + IljhM2XlMWPfMmPeN2LgP2HjTnTzN3DnK3/hRMT5Wej9OqfrJGzZIlLRJE/XQ5bvYev9Rtn1DorRHoLm + HF7hEz7WGTjYI0DiEDrTF0/hPH79JGjoAzrNH0HgHjTbIDPeHjXeFTbaETnYHEHeIEfhLmPzLm/2GWDi + El3eFmXkFGrkHXjwFHPoEXTnEHXlAWrXBW/cFoHtGorzE4XtDH/oBHTbBn3eEpr2CJrxBKDyAJrrB531 + D537B4frDobsDYfpA3rZBX3cC4fqCoPpCYHqEIzyD5DwEpfxAABZi+xGeNlPgt9llPJskfNjguZXedtY + ftdvkdqNruWcv/OWvPiPuPWKseyEqeSIreiMtPKFtPhomu5QheY/d+MmYNQaUsocVtMYVNkXUd4VSN0d + TeYWR+EUR94UTd0UUtodXOAdXd8aWd4WVuAFT9YMZeQeh/kWj/QIiusMje0CguMIj+0RmvgJju4HhukU + ifMagvYUceoXaeYcaOUYZt4baeEVZOIYY+cSWN8MTNMeWdguZNouaNs4eOs9ee4+cOg5c+Qmc9U3nO5g + 4vpZ4P4hhNIZWsUkWM80bOJgvf1j6/woqOUAWLcuevQfWewNOtoUMtkeO98NN9AWT987ff0jaOgANcgZ + N9oeMN4iLuQmM+kfNuQVMdoXMNccOdokUechX+sYXeMaY+cfce8edvEbePAPbuEFZ9gKbN0EZ9QGbdkU + f+gUhuwHf+IDgOEMkPARm/ULmO4HnvABou4AnOoAme8FlvIChekAe+MAfuIAedoEfd8GguUAddsBeOAG + g+oAft4Agt4AAFyS7GKW8Guc+HGe92+Y7GqP3myU332k7KLE+b/d/q/Q+5W++Ye19Yaz9YGt8X2p74Gv + 93Kn9FqS6VuS8Gae+V6U80Z64i1k0iBczydm4SVj6Shk8CFb6SNg6yNk6B1g3iBk3iRo4iBi4xxe5RVd + 5A5i4xd17h6J9hyO9hqM9ByP8xyS9xmQ9xqP9R2O9huB8hNu5hBj3xpj4x9m4x1m3x1o4Bhj4Bxl5Rxf + 4x5b3zlw606B80iD8kOJ9kCF80SC8Td+4zCM21XF+m3t/U/N9jOO3zx74Dp44EuX6HLc/Fvh+B6V1QVR + vEaD/SNW8Aw12hIt2B423w0y0BhJ3z56/CVl5wAyxhk42SI14iIv5CEx5SA65xo44ho03CE84Ro/2hJE + 1RZP3h1b6SJo8yNz+iF49x579Bh87hV+6RJ/5A+A4RCF4w2H5AiF4gaG5gqQ8A6a8wec7QKd6ACh6QGj + 7ASd7QaX7gqT8g+U9QmU8AWW7wuc9Qya9wiT8wqS8wmV9AiX8Aia8AAAX5XuYpXubJjxa5Xpcpvnh7Ht + jbnyiLXtj7fol7rpibHmd6bocaPqd6jwdqbvdaPsf6z2a5vsPW/EKVepQGy4cpvkm8H+kbv2WorgLGTE + H2PWHWflGWfnFWPiGmrjFWfdGGjdHWngGmPhHmfsHWnvD2TmBGHbBGrbBW/bBG/bCHXeCHLaBnHYDHjg + E3njDWnbCVzXFmLhImjnH2ThGmPbGmXdFmXgF2blF2LiF1/dLW/lRoTwRYnxPIbuP4fwSIvzN4beMpzW + XNb5bev9Sb7pN5DbQIXfQ5HkXL7wd+3+WNv3Go/MA1S9Q3/9J1jxFDngFi3bHjHgEC/VHEjmP3b9JF/m + ADDFFzvaHzjfHjPgGjTgGDviGD3jGjvhHj3iH0LhHEbfGEbfEkLbEEXdFVPnGF3rGWvvG3XwF33sF4bu + E4npB4XiA4XgA4jjA4nnBIvpBpPrBp7sAqHlAJ/gAJzfAJnjAJbmBJjrDaD1BaHxAKDqAJ7oAJvpBaDw + DaH3CZ7xA5rnAJznAABhle1unfVnj+RylueNtPeOufOEsOqDsOl+q+SBq+eQvPiKufh6qex4o+KHruyU + tfCOreOYteqlvu6tw+q7zO3N3Pbg7/rj9vzH4PuLtO41dtMPYdEVbuMUcegZd+waeeskfvEkee0UZuAO + YeELY+ILa+QNd+cPgOYMguQKguQCft4Vj+cQjeIDftYMgNsTfeMQb98TauAgcOgpeO4neeoedeQSbt8K + ZtsOaNwaceIqfuU6iug9i+k7huZDietEhuo9j99KuuZv7vl28PtQv+k6k9c6iNRQrelx5Ptx7PpNyu8r + nNQed9NBivsWT9sMNtIZNNsjOOMPLtUXQuM7cvskY+gKPtInUOclSOUjROQbQN8NPNcNPNcVPt0eQeEa + QN0dQt4hReEdQtwcQdweRt8cSN0bUN8fYOkXZuUVc+ggifkmmvoemvcZm/UcovYXnvIGk+UDmeQXtfoa + vfkXuPUauPYctvkTqvIJnuUHoOEOqucPqOUJn9wKnN8OnOQKneIJpeQJreoAAF+Q6m+e8nKY55e4+Zq/ + /HOb43ij64Sx92WU3VqJ1Xaj6pG8+pS4846s4anC8M7i/tTh/OTq/fv9//v4+fr09fz4+PP0+vL2/fD6 + /b7a+XCn9Sp33xt55xV97glw4wdt4RR36xl16hJs5Q5s6ARr4wZ86BKT9hah+Q6g8Qug8wqk9iTJ/xrH + +QOt7Aur7xin+RKR8Qx+5w915BJz4xV34hl95hR65Qlw3Qtw3B+C6TWW8T2a7ECV6EaT7EmR7kyR8FGm + 8F3S9HDy/G3k/lO/7D2d2UCe4GPR9Xn2/lvV6zyr10Ov6jym8kSl/yp78g5O2BI/2BU72wIqxQ0/2Dd4 + /ihx8AVH1hlJ3R1H4CJK5SJL5hpN4hhK3xpE3Bo/2B1A2yBD3SdF3jRO5ERc70pf7zpQ4S5J2ixQ4SNS + 4Q1K1w9Y4Btz7BqA7x+Q9S2l/iWk+AuT5QCO3waY5Aym6Ru49S7C/Sy49iip6i6o5z637lnQ+FTG8Tys + 4jqr5Sul4xum4CHB8hO86gAAa5jwZ5HijbDypMT8gqbsZo3capXjaZbmXo7jVYrjXo/hhKjul7Xwl7Lm + s8v30+j8zdz04ej5+fr88vHz7e7x6vD40N/vxtjvzuP4qcn4ga30XZz2LoTmD3fgB3XjCnXoDG3jDmXd + EGfiDmrkBm/gCITqEJz0CaHvAZvjAaDrD7n5END8BMzvAsLsEcf5HML+EqL3B4XpCnnjEHTjDW/aHH7p + HoLwD3TiCGvWG3vhOpryTqr3W7H4YbD7VJ3zVp72XLT3Ydfybe/7Ztn5OqLQJo3CQavlbOL7dPH6V8Tr + S6LhSanwK6HjMar1NaP/GXnqIWzrImLpCEXMCU3UJHX3GWnnAETKDkTWHEffIknkIknjGkjaGkbVJUbX + K0bZPlXpRVzxRVrrUWLuYnH4aHP3WGLmTVfeTVvlR1zqMlDeGUHOCz7JCk3PEWDaFW/gFHXfE37jFInq + FY3mGpjnK6bwPa72QqjsTanqab71ecr4jt36h9L0esTzi9v/ddL7Tb7yQc34Jr7mAABijeVymeajxvyj + xfSBqOVvmuRWhNBRgdNej+dXh+BtkuKVrOeiteWhs+G0yPPB1v2rv+HL2e7p8vzy+/3u+//A1vJ7nMdh + hbR8n9CUtuuQtvKCtfsoeMwNctQei/UahfcWcuoYZuMXY+EXaOUQceQSiu4WoPgLpfEAnOQAmeQAougL + yfYHxuUAtNYIu+oXt/cNle0BdNwNbuIedu8YcOUieu8fe/EQbuUJadsYd+Iwj+09m+tLpPBXq/ZHluY9 + iN9NqOls5v13+vxn2/hQuepBreRWxvR17f1s5fVPrOFSlelUqPonpuQksfEdp/cIgOAPduIZdOYYc+gq + iPMyk/wTbuUAQsQEPdEVP90hQuUmReYlR94sTN9AVuZWY/FVYe9UXe1TXelRW+FZYuJhbOdkbedob+lx + efVmb+5fa+5WZ+5EXegsT9wVQs8KP8wLR9MPUNQdZdxAj/lNnv1Hl+5PmehfpO1pqetpqOJztuWJzfWE + xet8uOKGxfN5ve9gseRdwvFSwu4AAGSQ4nWd5rTV+63L84Kl5H+p74q5+pHA95zB7aW857rI7dri9Ov1 + /Nro/77S+LbR/LLT/JW13H+gxI6y3LTd98Ly/J3V+nWw83Ou7IS68Iaz44vB+DGG1xeC4BiK8gl25BJx + 5CR27yBs6BRo4RFu4BF84xeO7Byb8Red8hGb9QSY7xTB+g/J9Qq37Rit8hma7xGA5RB04xZy5hdv4yB3 + 6xxz6Bhv6BNq5BFq4B556DSR8kWh9kSb7ECQ4UOS5DuO3la473ny/XLw+VLD6lW/9V3T/2Xk/HHu/WTY + 9Eqn3lOZ51Oo+ieg5Ciy9BSf8AOB3Ah43Q934Q133CWU7jOh+hyE8BFs5Rhj4xlY4xZK3hlD2StL3UBX + 5E5b5VRZ4lpb5V5d6Vtc5Flc3l5k4Whw6G126G966HR+63qC8WVw4V9s5WFz9E1j7DNO4CpK5ilO7CVK + 3zBT2Exy7FmC8l6K726Z93yr/nqu+Gig4G+w5YrQ+ozR+YHB7Hy55nKu4HCu33/D737G7wAAaZjocZvi + vdn6scr0fZ7mZYzjYI3ffqrhv9jy7vP/+Pr97fX35PH9uMvqi6jWiK3qfKr1YpzqOnzMJWvCQ43gXqju + TZbgRpHdWaPeWZzZUYfPa6n3M4/mFYbnDYXsCH3oFHztIn3yGXLoDGfeD2zgEW/dFHPdGnfeGnrhEnnm + AnTfAZXrAKbwBZjtEobrEnXjEGjeE2zgFnjmHYDsH3/tEm3fE2jfGWznFWnhGm/hL4XrNYvoN4fkQ4vp + OYjfO5rjadT/ee/9bOPyS7frRbHzXNz6aPb8YeX4UMLsTbHpV7HzPZ7pEoLRLqX7FovqC3vjF3zsI4X0 + B3PSF4vgIpHzCnDgEHTlJonyKoT1IXPuIWLhOWHkTmToUmDhTlfYWFrhV1niUVLcWlziaW/vdHr3c3zz + bnnsbHbncXzrWGfXTV7UWG7qXHX5SGfyL1PmJUjiK0veP1ngVGvsYXn0Y37xY4LsaYzua5bvYpblZaHn + c7X0brTuZq7mbbTpa6/icrLlj8z8lM/9AABlk+ZvmOOoyPqpxvl9pO9fj+tNft1FddRXf9V/neSzzvzL + 5/+ow/ttiNFTcshXfeRmlvpcm/4veu4TZN0YbOAaaNcmasphneSn2fvE7P7I5f+dw/84e9IOaMwMb9wG + adsOZ9wba+MaauQXauYWa+YXa+YXbOMWat0SadkPatwHbdsLiekSmvUSiu0Obd4QY9wcaeYZaeUQaOAV + b+USa+MRaOEYbeocbu4QZeAOZdsheOczifA5iu49ies3jOQym99f0/1x7P1Fv90fkso5q+xf4Pxo7/1M + xu8tltUsidU3juMvjucaiuYqnPwXgusLbdwPa+EQbOEGbtImlOwulfoRbeUOZ94Sat0XaeEdaOUxcPBT + ff5cfPxVcO1Sa+VPYuNKWuBGV95IV99OXORSX+hUX+dVXeRUXuNZYeRWX+RRXOJPXuVNYu1AWugtS9wj + QtYwTd1JYedRZuZSZ+VPY9xLYdVMZtRaeeBulfVlle5eledcmeVfoehxtfhvs/RoqutwsvFur+8AAGqV + 72mQ4pS19ajK/Xmm7FSJ41SH8Ux77kp141V94liC4mKN6lN+5E9751SA9kh28kd59FCL/DZ57B1m3Bxq + 2yBu2SRt0ihryz560nan7cvt/I6y9DRwzBVlzRxy5Bht5Blm3iFm3SBm3hxo4xZn5BRo5hJr4w1q3Ahq + 2Ahz3A1/5BqT8hCJ6ARx1wtq2BNp3hJl3hNk4RZp5Rhq5xlp5hhm5Blo5hlp5hNk3hZn3Cd35zmG8jyI + 8DiG6DWR4zmq5Gbj/G/w/DS02SCd0lHL9Gno/FvZ/Tqo6S6L2z+R7UCO8S+I6x2J6iqa/CCG7wxs3A5q + 4Adl2Qh02Syh9CmU9Qpm4RNo4iBw5xtm3x1i4DRs7FV9+16A+Vl67Ft97Ft88FV1709u60dk5UNd4UVb + 40xd6FNf7Fdh7VZe62Bl81xk8lRf7lBf70RZ6zFL4ShE2zVR4Uxk609l6VFm6FNo6FVr505o3ktq3Vd8 + 6WKP9WSY91yX8ViY7F6h8GOp9Wev+Gy1+2Su8gAAaJXzcZvygKTrosb7jLv4YJXkUoHjUnrvUXnwTnvr + SHjoRnroRHnmTX7vTn3zR3TtUX34RHjzLmrjK3LpJHPpG2/kI3jpGG3bE2PPTJPyfLn+SIXXI2zSF2fY + HmviImniLWzhN3HhMm7eK2zfJm7hJ3bpKILwIYbtE4fmCo7oD5zzFaH5B5DpAYLfDojqFojvDXfkC2vd + EWjfGGfhIWjkJWnlKGvlKW3jKm3hL3LhPXvoSobwTYvyQYnnOpfdTcPqbfL9X+b+JKzTMrvjXeH6auj/ + TcL3MZXjOovjSI/xQontM4bnIYbiN5/7K4vtEGvSFG7bC2vWE4ThL6z8GY3sAWbaFHHnGXHjG23jHWji + MnDsUX73XYL0XX7oYILlXoXqXIbvXYXxWn7vVnjsVXTqVW/oTmPgSVnYVGDiU1/kU1/nU2LsS1/uPVXp + L0vkKEjjL03jQFjoTmHvS1/rS2DpUWntS2blRWbfUXnrYI76ZJj9Xpj3VpXtUpXnVpzpX6fxZa/4ZrD3 + AABklPF1oflnjduApeqUwPt8rO1XgNRRdNtTfOpIeuxHfe1BeeNHfeVTgutRfehQdupUevNCbO4dT9YY + Vt4hau4WZuMSZdkhddw/kOZltP4sfdwTY8ckcd8rc+o0c+o+c+hNeutWf+xSfOhMe+dJfeVTj/FaovtM + pfcxnuwWmuYHnOkEnOgCn+sEoPAInvMQnPYTkfEKd94RaNklbOAva+E/cupLeu9Ofu9OfOlOeuRYgOhn + jfRnlfZRjuRIm9dh0ut29vtT2fomsNZH1PJn8PtTz/cznuUzi9tIjeRPi+dSjOhQle44j+FSqvtMmvMy + etg0fuInedwzmehBsvsbhd8GZtEWc+ISbtwXbuEWauIkbeZCee9YgfBeguhmh+Zhg+JghOJoiulsjOxv + ju92k/R6k/Z1jPBtgulleeRZbdpSaN1RauZBX+IqTdgeRtkbRt0eQdcwR9pIXuxMYOxIXudKZOZHZeJM + beJhhvRmkPdhkPFjk+9jme5hnOxem+lcm+ZgoutnqvIAAGaX72+e9Hqi9nCX5XSh6Yq7+4Wx/GuV7lqE + 5U5630p630h95EuC6kuC7kh97kp38U519090/SpN3QszwR1N0zRs5EOE6mWq+WOs9Sl3yh5w0SZ04Dl9 + 60qB8liD9WCB8WB/715+7l9+71l56lh44XiW84uz/X+z+2at80mo8SOZ5Q+d6gOc6wCZ6QGZ7A+a9BuS + 8xZ24C5150p99VR5819891t38GF88WR+72B45muB7nyT/Hua+mqa7meu5oPn+nzx/UbE5T/E7Fzn+2Po + /jao4yuI3EmR61yT7GaT7nCb9muf9lSX5XS3/mie+FqI6liF7EZ65G+09W6+/T2I6i9y5C1y6iNt5B1r + 6Blp7SFr7jdw8Ex48l6E9GyK83eP9H2R83+R8n+R84CS84KU9IOV9YWW9YSY9oee/YKb/XKR+GCG9D5r + 4htPzRJN0hJR2xBI0hxI0CpR1zZc4EFn5Upw6FJ56l2D7mSL72iR8GmU7meV7GWX62GZ612a61ua61ib + 61Wa6gAAapnua5rucp3zcp7ybJ3tYpbkWo7ia5zyia/8ka33fJztXYjgSHrVQHrYQ37gSn/kT3vkU3Li + OFDEP1TIZn7scZT2Y5b1QILoGGbRIHHZMn3iPX/jTYHnWYLpX4HoX37nWXzpVHrsV3vzWXvzXXjofZHy + lqn8lq35jK73fa37Yaf6NpnwG5LuGJTyGY7yJo32Ooz8O3fwSG7tU2rsW2jsYmvwXmbrY2zuZW/uX2vk + aHfteYz7d4/za4/lfbbtovb9g+j6P7DSUMnzce38Sr7rJ4fYMXrdT4XqZ4/ub47uc5Dwa5DrVobadqb8 + ZIjtUG3bUGjaUGzfgan2d6bySXDcTGfkRGLoJ0zUI1HdF0/gF0vgIkrcNlTfTmboZXfycHntdXjod3rq + eHvreXzseHzsdXrpcnnlbnrkdIfudo/1aoz0Xoz0RoDsLHDfJXLjJXrvHnPoGmzfH27hKHXkOYLuS5D4 + V5n6Wpn2WZPuWpTsXJfsWpjsV5nuUJnvRZftPJPrM5HoLo7mAABql+xtmu9rme5smvBunvVjlO9Pg99F + d9RXgdp0luaCovCMrvmQs/iTve+ZxO2XxPGRvPeJrPl4lfNkfeZJYtgoS8gdTcgmZOIlcfArdu5Cg+xN + heVWg+VagudcgeZbgehUgOxOf/FNfvVNevRSdexngut8kvCFme6HnfCFnvZ1nPlOkPExh+0nfesbaN8h + YN44Zes+W+RIVN9KTdlPT91TU+JOTt9RUuNTVuNNVNtVYuJme/BmgeVrkeGXzPun8vt30uxYv9x34/ly + 3P80ldwlcdU7cuVUfetphuxtg+htguplgOdUedt0m/1ZeOxEXNlAVtRPZOKCo/xrkOZDWcxSWuBSWec+ + SdowQ9odOtsbOdorP908SuBMVuNYXeRhYuRmZeZpZuhqaOxtau5sau5qa+xnaeljauVgbuVngPFhhfNa + ivRJifEwfOMje+Iff+cZgOgah+4Tg+gUguUYguMfhuQnieYujOcyjec4kOk6keg3kekzkOorj+oijuoZ + jeoRjOoOi+kAAGuV7nSg9W6c7G6c7HKb9GmR8GKK6F+I5mCM6GmZ8XWh9oWp84ip8oWn6YKm4X6m43yk + 7n2g8nSQ7Wh8819x709m2TFRzRxJyyhh4ER/9k6D7lWE6FeA6Vh+6lqB6VqC6laB6lJ/61N+8VR99VF2 + 7VFz41Rz3Vl22Fx32Vx021Nx3EFx2yxq1x1a0BFExxtBzDdN3kFL3k9R4VNR4VBS4lFU6ExO5VBQ6lNT + 6k5S4ldh6Wd79GOD43Of3qfi/Z7m+XPJ3YHi9Iru/VKt5y171Dlz4kx18GB+8HCG7G+B522A62Z/7FV3 + 4neY/Vpw8Elb40BT2lNp7IGm/V2I3DxXyVJa4Fpb6Fha6z5I4CY72yg83z9L6VBY71Vd6VJY4FFW31JW + 41RX5VZZ6Flb6lpc6lpd6Vld5ldf41Zm4mN7816D9FWI9UqK9TJ/6CF74R+A5hd/5Q574g+B5hGE6Q6D + 5wqC4wqC4g6E5RSI6RaI5xWF5RWG5hSG5hCG5g2I6AmK6gaL6wWM7AAAapLpdZ/yc6DrcZ/od53tdpbs + eJjwh6n7eaX3WI3nU4fnT3vkUHrkTnriRnPdRnTfTnvpS27pMknOMj3JTVHVcXXpi5b9Y3nkLE69SHHf + WoPvWIHtV33sWXvrXX/rX4DqX3/oWXvkWXroXn3wVnboUHPgVnjiYoXobo7wc470b4/zYJH1SorzOXjt + LGLjNFvkSl/sSFLfTlHaTlHZTVTdT1XjRk3gSE7jTlDkTU/dVV7jYnfrY4nde7Hgq+z9our5hdXmmfP8 + hN76N4bKL3LVQnXqT3XvY3/ucITobYLna4HsYX7rUXXfdJT9V2bpSlbfQFPUUm3nfqX9VYHaOVjIUF/e + UFrgT1niOkjXJj3SJDzUNkbeSFXpUF3mTlveTFnfTVnjTFjjS1fiTlfjUVnlUVrjUFriUF3fVWfmY333 + XoL1VIbzS4n0NX/oJHfhIXvmInzoInroHnvoGHzoFn7qE4HrEoHrEYPrE4TtEYTqEILnE4PoF4brG4vu + GovtFYjrEofqEIfqAAB8pe6CrfZ+rfRwnuSFqu6evvt/pvZTg+pPgehShupPgeZVgexkjvdtlfhii+pZ + heJhju9kj/pHbecjQc8oPdwqOtYqOMJseeyXp/5+lOlriO5jhe1ri/FpiOxxj/dohfJgfetgf+9aeupa + fOdjhOttj+uMrPqOrvuVsfqgtf2Ys/94sP9Qnv4zh/YgbeU+det1kP1pdOxhZdxYWNBnZuJobOxaautM + XuJgY+xybfNkaeVjed91oOKOzuey/P6g7Pii6vqx9P18uu82ddIycOE6cehId+thg+1whud0i/BtifVf + gehnjeiBpP5kfPFPY91Tb9d1lfGKqf5ifOZVZ95tevJibe1SWuJPW+JKX+BAVNs3RtlIVOpeafRUYOFT + YtxicehjdOxYaONWZN9icOtndfFea+tTYeNSYuhXbvBXd/BVfu9VifNOi/E9f+ouc+U4e+1Hifcwducg + bd40gvM9ivs6hvYrd+Qwe+c6iPIxhesid9wofN8sf+IZac8gcdoxhvE2jvkAAH6q8Iay+HSg54u29aTJ + /n6i51WA2kR34FWI8WOT9U972muR72mM5mKD2mqL3mCH022W5m2W9zxj1yZL0EJj9Ehk9DlT2UZg1WF+ + 15Cq84yh8W+E13iN53uR9G2A8Flq5FVl411q6F5s5Gd453aJ7nyU7I6o8oqk65au8J+y842l61uM4zN4 + 4CFr4Rhe3jxr6W+B+2lt7WFj3F1d0nFz5HZ/715y4UJZzFxi4Xdy9mlu6mmA54uz86je9bH1+qXz+avz + /ank/XOm5T5u0jpq4z9y6Dxv21J63niV8n6Y+WyH8WyM7Xmf8X2d92t+8Vpp4WJ53ICe9X6W+Fps31tr + 42p38ltn6FZj51dn6VJq5lt29EVb5zlL2l1u8VBh2F9v3XSC63WE7XKD7mV44WZ55HiL+XSF+1tp50xZ + 4U5d6E5i6E9o6lV08E5z7jhe3x1FzCZQ1EBu6iVW0xtQzzNq6Dps6jBg3ShX0ER06UN56S1q1iZlzz17 + 4k6L8j155j5+7Dt/7iVs3AAAirTykLn3kbbzmr33k7b3a5LjUHzbWInwap7/a5v4YIvicpXdl7Lytcr0 + t8v0o7/plLPnhKP0RGLOID64PFzbRWbtME/dNljdSnPmXoTopsT/epLZc4jhfJH4X3HoRlXYTFfhTVbf + Q03NUl3RdYHnjpvynqz2j53ql6bzn674iqL2Qm7eH1rdHV/mElLZLFzhZoD/fIr/dID3YGvjbHbqeoT2 + ZHLpRlPQXl7jdnD1ZW/haYnim8z7t/b9pfL6ofz9n/f+iMv5X5LbRm7ZSGzqQnDnPHLcVYXleZ73gpz9 + dor1d47vhqb1k6/6g5P2bXnfcIbZlbH4fJbuWW/YaHvrfo/9ZHbtOU7SN1HVQ2bkSmzuPVvoSWPuYXr4 + XHHnYm/idn7ufITycHrmYXDYZXjec4fxboHyXW3oU1/kTlnkR1XeTVzjYHP2ZXz9TmjuKEXPKknVR2j0 + LlHcKU/ZQ2nyRWbvOFTcNE7SU3HwZYn+SHPkLFnIQW/dWIX0QG7gPXDiR4LzR4X1AAB/rOl/qOSkxPmT + s+5xl+VrmfJVh+dLgOJZjPBdi+5qj+N0kMm2yPHs8/3q8f3m9/7d9P6xxPiXqv1shN89WL49VtI5Udwl + QtIwVd44W9dngeWHmvtrfehgceVmdPJZZOtETd1JUORSWudRWttkbN6Ah+qgpf6Rk/aLjvh/hvdZZ+g5 + UugmSesZReQWRt8lT987VuBDVt1IV+JRWuZlavJycvloZfFVTt1fUuRlW+VUZMxmlduX3Pud9/mK8vqL + +vt44fdXpNxJgNZJcOZJbO4/beM9c91KettcgN50i++EkvuFlfeLpfOhuPyHkfJ1feF6i+Gmv/mCmelX + bNhYaeBYaOVMYOYyS9glRNE0WeQmStkkRNtEXvNHYeZJX91VX99vcPF8fvpxdu9tdup3gvN0gPRmcetg + aulkbPRZYOtFTtc9SdFIWt5OaOpAYOgqT9soTN4xU+cqSt4pRto+WelGWetGVedDUd5WZu1dc/JXc+tN + a99LbOBIaeAzVtA5YdtBceo8cOcAAF+Y42ue5KfK+qLB+nSd6l+R6kyA2FSG2GiR6GKB2nuT16y84dvi + 9ezr/ejn/eDt++H3/K/A9Gp6zIqe4r7U+pir52t64XKF5m2G1jZLuDk+xWlr/DVC0yg7yTpN2D9P205S + 61RR9UtM60ZP4ztN1E1n3mN/9TxP1SIvxycs1iMl2hol1RIjzgkdzAkd0g8e1REW0RcZ1iEg3Csq3DE0 + 0zU60ENE1EZF1kxK3UZO1ztezGSl5Yjo/W/p+3Dy/Hjy/VW95jB8xjVv1ERy70Bq7T1u5D1x2kJv0lF2 + 12N+42+D63KJ6Hmb6Ymk/Fph2Fpc22Ru45Ch/Gl55kxa3kpU5jQ+3yo33SQ53h883xw+4Ro94Rw64CE5 + 2ixA0z5N1ExV2lJX3Fda3V1g4l1g4l1g4mJk52Nl7Vxf6lJV5FNX50pR4DhF1CxC0yFB1RE81Qw93As/ + 3gs+2BhG2xY7zyI/0zJF20lX60xY6lNh7Exe4E5k4Exk30li3lJr60pl6kdn6j5l5zVg4QAAaJnZirPs + zOL70N35qL7upsT1udb5zeT50+f80+P54+/66/X28Pbz7u376uv83/H73PT+gZXNVWSzkqLh2+3/3+v6 + q7DiqbDY3+z/qr7yO1m8U3/zN3foMHzrKXToElPLGUXHKkbSIkLJJVbTPYPsNpLtLIrtG2ndJGLnJUjo + CyjNADO+FGPbJW3iMGXjO17wIzfeEiHOFijXCinNCkHOJmriJWzgL3PiL23lCkS9D1K1V7Hnd+38W+r6 + a/P8guv4SJvPNXTJRnjlQXHrNmXdSHbjZ5PtgaX1kK/8hKP2ZIXhZIveg7b5Yo/ZX3nTeIrni6TqpsT8 + c4/fQFi+TF7bU2HyPU7mLUfeHz/bIELkI0XoIDreLUHgSlfpS1XaY3DhfIvrf4zpgYvoho7tgIjxZ2/k + U1vSVV7UdH7meobsf43vgpb4WnbmJUzJDUHHIF7mNXr1LnjoNXjmRH3iV4XibY30aoTzUWnYSmTOborn + g6HxfJnpeZTpgJv2fZj7YoHsTHLZUXnfAACBsO6QuO7M4/na5/2owOuXt+Wuze3A2vHU6vnp+f/q9/vr + 9+7w+fLu8/zp7vzd7Pi80+utvOqttvO2v+vS2+/p7v7l5fzg4vji7P3G3f1ah89kovo4gOkeauErcPYu + Z/QlTuEgP9QjTdkpaeMhct0cgOAfg+8ldPMuZ/QeRuUaPNomWuckaOcqa+IuaOAiWuIqYPQnVusELNAc + R+csZPUpY+gnXeUwaOcobe8QW9sNbM9Dv+5k9f1P6/tw9f2I4PlSkNBBcc9KdOFCcuBRguprlPOIpvWQ + p+6OoueTq/CIqveCrfCNw/xmmeFqjOVrheGWs/eiwvp1lN9ogd9kdepQXepMXe5CXOksS94eQNohQ94x + TOVBVOVXZOhveeyAi/GAjOl+iOOGjOmJjfB7f/Jnbe5ZYOJXYNx0f+WJlfOeqf6LmPFrfuo/WdQgRs8q + XOczdOslcd0sdNthmPOErv9/nvpnf+hXb9hmf+J0juN8luCFm+WEmOl/ku12iu9ofOpbc91ZddwAAJrF + /ISq3ajD6r7W+ZCx52OO0F2K0GaS13md3I2m3p2z4sHW99nq/9Ld/8bS8tDe89vp+Ovy/c7P6Le20ODf + 6PHw/N7d9+bs/sjW9qS/6pnE+mGV7hdJyQQwyhU41yI+3yA53iE+4ztt/DR78gA+ugJRxBZq6BhV7AAv + 0gAiwStR7lB4/xg71AAUvQEhzgAhywgz2RQ54Qok0Ehp/z1u/gY0xwAywAA5vwBSzhmI7R2l7DTM7Ff3 + /Vj0+3Tw/H7M+liM2kZy10Nu2j9v1HGg8pGz/X2T5niF13+I2XqI1I6l5KfK/pfC/IKu+mmL5kJevneX + 5n6f6HeV5Juz/XaF6kFL1FFf6Etj5jtZ4R4/0x8/0ztV5URa31dm4pik/ouX8l1pzVRcwl1h0V1g21BT + 2lNX4lZe60xV3ENLx29365qd/WVm1FJZ009e4jZP4B1E3AU7zBFU0kSC82SP+ll25lNl2FJf01Zm3I2g + /niO6FNoxlVmxVpozl9q2Vhi2lxp4niF+ZSk/gAAh6zgj7Dgss73xuL+qc38e6jxXI3lVIXlVYHoUnfi + V3ngYYPibo3khaDspLv3us72ztr04OX25+Xy5+Hr8+309fL75+n54uv7w9P3p8HusND/U3vZG0jBHVHX + IFLcIU7ZFTzSDjXTEUfeDFvlHn/zP6X/RJ//MXX+BDrTBCzIIEvoOm38IFHnEDLUHDbhFi/dECnVGCzZ + EB7JGDPXHlfvJXX2K4z1GIPoBIHaFanpO9v5UfP7VfL6Y+/6gO7/ecH9VojoRHLlSHfrPG7RU4HZgaT1 + nbX5nK32qbX+rbj1kZ/ilK3wjbP6T3fMb5HrgZ/0udr9mbrug6DloLX7eobpTFHUV2HlTmThPVnfIkDV + Iz/aP1nrRlvlSFbWYGvfeonshZjumKb0oaz9hpD2YGjiUlneU17nVF/kT1nSeYL0n6P9aW7YTVfRRlzd + K1DaE0fXHFfmOHX5PnDsVHLpU2TZUlvVWWDcVmTeW3DidY7wj6j0nLP2mKn6fIv1Y3DpWmjiYXHla33p + AABunNuGsu2YvfGfw/Kfxfl+p/JOetpIduFUhPJQgu5Uh/ZThfVJeeRKeddVfcx2l9bC2Pbm8v3s8v3t + 6/fp4/Ps6Pnl6Pvd4/jq9v+3y/hMZ8osWtQlduohfOYad+EwjfczdPMXP9cHM8wEQNAVYuAihegrh+of + YugBJ8QeL9ohK9URNModWt0wb+cuZdwhZOEoffY3ffkZRNcIKsgEKc8GLtQGL8wORdEVb+AfoO850fVT + 9Pls/P115vlYruY8edE9bN46aeg/bOo9a9NznvCEqPdykOZog9pthNl9kd6esuu30/x5ofY4YMZBXc5s + gfSDmPxnfNh5iuWKlfZub+pZU+lYWe9OXOo9UugnPuQhOuI3T+5PZPhWZO5HU9FQYNJxgut/jvJrd+BU + XdJRV9pRV+FQWeVXYOhQW9RxfeySnvx+jetTbdg8ZdYgXtUteuo7hvgNSdcfStQ+V9lYZOVqcO5nbe1P + XdxKX9ZZc910ke19mPJlfd9PZNNSZeFXa+dVbOFWb+IAAHms6aTS/6fN/Y2u4Ja26aXI/I2x9GqN4lZ/ + 3k174Ut55k577FmE6m6Y65K07rrT89/u+PD0+/Du+e3s9Ojr8eXy9uL4/NHp/aK+7VB9ySNpyQxn0gVv + 2gRs1gVt1CeP9CeB8wRLygpPzyx99S+K9xF43w1w3B5y7BZb5Ak50Qo00RVN1w9W0gVUzwJMyAFVzCGK + 8ESX/g1D3AAlxhI51SlZ6RFK0BBg1TSe+hSV1SW512T6/YX7/JPm9mCf1liP2F6Q5lmI7VqG71R/32uR + 4n+f74Cc7oGb54Ob5IKa4J6267XO/HCJ8Etl0FNwzpCq94ed+neH8HF9619m3VJX2ldc6lVh80Za7zJK + 5yU+5CM+4S1F4DxU41Jo6F9z5I6d9pum+X+K5nB83W9542x17Fxl5k9Z21Ba1lJczHuH8p6s/ZWp/2WC + 7jZd0xtOzy9r6jt99B9h2y9p3Ud05GaG9nqP/HSC8Wd04Wdx2pqm9KS0/36Q6XGD23OF4XCF6mV65F5z + 32F24gAAhLPzirbwj7X0krf0lLrwj7bphKzvha37fqj6ZpHqXIbmXYPmYYPbdpTWtc3s5vb+5Ov17u36 + +PP/8fL/6PL/1Oj/o8L5Xn/XMFPCJlfOM3vuHW/oHnDpJXTwI23vKW7yGlvkCEbUF1bhKG3sJnDqGWjm + H3HtJ3X0K3P5GFbmFE3jLmbsNnDwMHLxKHT0HWvtIGnmI1rnCyjXFSfcKUPnOmTuF1vZEnLfDYjbC5rW + OdfuYf39b+n6cbvtXJXeZp7uaqDxZJfyYJD0UHzfRW3NWXrdfJjzj6f4kKf1h6HpiqbnmrL+bHzoTV/M + aYjfoML9gpvzX3DeVGDZU13eUl/kTV/mQljmNE/lJkTjHz7iIj7iJUHdL0ncSmPob4b4hpXxhIzleoLl + e4XrgIrydoD0YmzwVV/jU1zcVFzXaHLqbnzyWGzkP1nYLEzUHkPWEj3WFkzaKmvlM3DlSHvqVHzwVHDo + UWTaYm7gfYTsiJHtgYzqeYnqfpLugZfydI3xYXroVW7gUmvfAABqleVrlupvnPNxoPZwnutllN1WiN5S + hOVgkOpyn+53ofCHq/iOrfGWsOG5zvLg7/7n8PrX3PK9weuTmt1nc81HWcsuR88eO88ZONYcPt4cQNwQ + NdAXPNgeP94dO9wcNtwWKtYcL9siOOISMdUONdIRQtYiWucgXOUoZOwnXOojVOMfT94hUeAaTt4US90Z + TtwVQtIQKs0bHNkoIeUiJNgNIsYAKr4xhvQQheAOnOE42/pU9fta1/Y4heAwa9Qvatkxad4zauI7cec9 + cd9KeuNJcOBPb+Rad+hdeuFig9t6n+ePr/taduNKZtOAo/RylPFGYMtBVMpSYuJTYehJWuNEWeU0T94f + QNMgQdwfQuQjQ+ojQOQkPtsrRdc5UdpJWNtRW9hQWtlMWd5LV+JMWOdOWelRWetRWetTW+xTXe5LV+k7 + TN8uRdsoRd4jROAZP98TQdoTRtYOQc8TPc4gQtI1UN5JXOhSYupTYeZQYeFMYdxKY9tJZt5JaeNLbOtK + be1FZ+1AY+oAAGyX7XCe+GKX+FyS9W2h92+g7lSI4EZ63VSE32uU43mf8YKm/I6v95m29J2266u/6Mrb + +cLO8aSv4YKN2FppzjRIxB02xx472SJA5R474ydB6SQ84yc+6CA44iM54ys85yw66Cs55yg45R433xg8 + 3CJU6jFr+h1g5Rti4h9i4xxg4Rth3h5k4Rlf5BNX5R1b6yRX6xo64R4l5Rsb3yMp3xYt0x9T6ymB/gVj + yCGf3VPw/lnw/Ea58i9z4Tlt6jty7jxz7z117j947T135UF55kV160Vw7Ulz7FF87VaH5mOa6W+l+U1/ + 5WSQ93ae+1Bx4kJc3E5j7VBi9EJU6zxT5y9K3SFB1idM4htC3hY+4Bg/4yBC5yRD5SdF4SlE2zNJ3j5R + 5ERX6kdZ7EhY60lY7EtZ8UpY80hW9ENQ7ztK6zNE6Cs/5SI74CA+4SJD5R5B5Rk/4RlE4h5H5SJG5SVE + 4ShD4C9K4jlR5j5W6T9a6EFf6kFk7Dxk6jVg5zBc5itZ5ylX6CZV5gAAZpPpaJnxZZ75ZJ33Z5nkbZfc + cZzocqH4e6X8faL2Z47uVYPlTnvjUHvlVHrfYX3WaoDMlKfbytn54PD/1Ob/tsr8iZ7tTWLOKD++KkTQ + KEXgIT/hI0TqGTrgHT7gHTzdHz3cIDzaGjjWGDvYDzzVGVLiLG/3HGjmG2jlGmbjGGPfIGTeHFvWIFvh + HljoGlHlIFLpEjbcEyTfHCrlHDDeASbEKWr4D2jmAFzBJ63kXPH8UdrzM5jbMGnTQm3lQm/jPm7gPG/d + O3HbO3XYPXfaQHfkPHHlOG/gOnTdO33WTZffWqXwN3zZWJT/MF3ZLU7WP1rrMUjjK0DiLELmLEXmJ0bh + HkLbGkTbGEXeGEXgGEXhG0PhHULgIELcIEDXIUHZIUHbI0HaK0bdMUnfMUjeMEXcL0bfMUjjLUTjIjvd + IDzeI0HkHz/gHUDeIkXjIkXiH0PhIUfnHEDgHD/fI0XjKEjmJ0nkJEffI0fcIknbIUrbIEzbIlDcIVLd + HlHdHVLfIlflKFzrAABqnPBqnvBpn/BlmuZ9qOubv/eLs/ZpluxXhORRf+VQhOxCfeZMifVHgPNMe+5d + f+RpgNCisuTc5/rm7/bd5/Hi7Pno8//U3/6XpORDVb4iPcQlReAoS+wbP+IZQd4ZQNwYPdkcPtkfQN4c + PuESO9sWR+MnX/QrafQnaO8iYOolYOsmXekmWugnWe8kU/MlUvQgS+4RMd8UJuEdK+IaLdQTNNBAfPsP + R74AT7BEt+p96f1evek/h8xKetxXgOtchvBfivFei/Fai+tXjOVXkedVj+xPh+1Hg+ZEhN9HjtlToNxa + pelMk+g9eeQUQsAdQNArSeImQuImP+clPucfPOMfQeQhSOUcR+IcSuQaSuUcSeUdSOQgSOMiR+AgRt0f + SN8cR+AdRd0iRdwmRd4pRd4pRN0oRd4pR+EjRd8fQ90gRt8hSOIeRt8dQ9wgRN4iRt4hRd4hRuEfReEf + RuIhSeIhSeIgSeEhS+EjTeEnU+QjUeIgT90eT9wfUd0jWOIjWOEgVt8qYekAAGib8Gud7HOk64Gu8JW7 + /I6w92SM4kx73kuB50iE60OE7T+D7UaI8zx35VqK85Cv/cDS/N/o/ers+Onp6+/t7e7s+ODg+ebp/Ovy + /7fF+EVeyyZEzyA/1yZI5CBF4xk/3B1B3SBA3iA84iM96hs45RU44BQ73BZC2RZD1BU/0hU90gs0zg03 + 1Q802A8w2RU23REw1RIn0R0m2B0jzxokvlxz8WKR/yNlzTeR3ILh+5zu/H6962ac4mqc9VqK7liH7FuH + 7FiG6FmK6WGW62qh8FyT6FeM51iP5lON3Wmn6I/R/JTR+361/0x64zpk4DBW3yNH2CBA2iJB3yRE5CRH + 5yBG5R5G4x1I4xtH4hlG4RpG4R1G4iBI4yJI4SFH4BxJ3hpK3h1J4CFH4SNF4SZF4CZF4iVE4SJE3iBI + 3x9J3xxK3BxJ2x5J3CBI3iNH3iRG3yRG3yNG4SJI4iBJ4SBK4R9M4h9N4yBO4iFM4iJP4yFP4CRQ4SRS + 4SJR3SdY4SRY3iBX2jBo6gAAZZbtaprrgavuncT7lrv9bpXsVYHjT4DrSYLrSIXrSInvR4buRoHoVIfp + YIreb4rNrrzm5Or76unz6uXx8uz77Of85OD85uj76PD42un9o7z/UXDlID7IIkHYI0XhGj7cJEbjJ0Tj + ITriIjnqGzXlGjriGkLeGkfWHk7WI1DaIEzYF0bYGEbcH0fgIkTdGznQEy7EIDTLOkTgSlHlY27pqcT+ + SoHVK3nKZcbvhe3+kOb8gcDqZqHiY6D4T4ntUIbtVIbvU4PrYpPyb6P1ZpnsV4nhW4zmYZPpWIvccqbl + qN79ncz6ZYrjPmHMR27lSnHxSXHyQ2rxNl3oJ1DeH0nZHUjZH0reIk3jI07lI0zmI0rmIkjkIkbkIkfk + I0jkHknjHErhHkjiIEbkIkTlJETlJEPlI0TlIUXiIEjhH0nfHkrcHkrdHkneIEffJEbhJkTiJUXjI0bi + IkfiIUnhIUriH0vjHk3jH03lIE3lI03mIkrjI0vjJU/iI1DfJVbfI1bcIVvbN3HvAABllO9xnu2Pt/Oa + vvR7pe9gjupdjOlZiOVXh+NZh+BNftpViOlhlPV0oftuleR7mNXC1PXj7P3m6fjs6fnt5/nn4/jl5Prl + 6vfg6vTJ3PiLqO9mh/QzU9khQdcoS+UkSeUiRuEkRuAiQuEePOIWOt0lU+w0bfkvdPApcucqc+oncOkk + c+oebeQgZt0wbONBeOpMfe1NdPBLZOdVaOWMov+IrfktbLZSqd6L8vyN9veZ7vqRyvJgldxIgd1GfuVJ + f+ZIe+JMe+JnlPdxo/xWi99ViORekPNdkfBimPaFvf+i2vx+sPpYfuVFatw0WtUyWdg3Yd1DcOpRgPpV + g/pGdvAwX+AiUNUhTdciS9ojSt4kSOAlSOMlR+QlRuQlRuQiSOQhSeQiSOQiRuUiReYkROckROYhROUh + ReQgR+QgSOMgSeIhSeEhR+IhR+MlRuMmReQmRuMkR+MkSOMiSuIhTOIfTeIfTuQgTuYgTuciTuggSeUj + S+UlUeYjUeIiVuAeWdsiY948gPgAAGmZ7nSi7KbM+KfO+Hqp7GSX6Wya55e87rvZ+5668XGS1mSN2myc + 73ms/2ub7IGo75az58fY9+jx/ert9Ozs7+3u8eTo8ePp8+31/NDg+2N70F978D9a6SVB3SNC4Rs93B5A + 2SZI3SJF3RpA2xRD2CNf6yx29CB36Bh44hd56Q9v4Bdq0yxz1kqJ6Ged9nep/nGf+05z4D5a01py7IWk + +ytbsyBtumHG9G7q/G3t9X/i/G+x602D0kp72E584FWB5FyG5maQ8HSf+nWm+Wec8FeO7UyE7Dp13kGA + 5mms/Was9D192D925DJg20xy805x8Upx7E157lWE9luN91yQ+1yO/VOD9EBt6DRe4SZM2CRF1ydH3StK + 4SxK4ylI4ydI5CRI5CRI4yVH4yRG4yVG4iRG4iJH4SJH4iJH4yJH5CNH4yRH4yRH4iRH4SZG4SdH4CZH + 4CZI3yVK3iJM3iJN3iBP3x9P4CFP4yBO5CNP6CBK5CBL4yRT5iFV4x5a3hlc2B5p3j2N/AAAVojqX47l + rtL6r877cJjqRXHSVnnGpb7l4vT90+T+nbTxWHnHRm7PQm/fQW3iWX/wVXLZdorgxNL61uD7zdX45+79 + 7vT+5uv/6+7/s73xSl+4W3bvOFXnJkPlHkHnGkDkI0rkJk3gIUfcHETcE0bbGl7qIHTzGHnoE3ndHoDe + LIHbVpbreav5h7T9i7j+eKr7TYPrKVbDN1W1hZ/5fZz/G1CvTKndfO/8hfT8m/z9idf2XZflWIbjZ5Dv + dJv8eaD/c5z/ZpT0WIfpT3/kS33kS4HsOnfgLXTUSpjrXq75QYzpMnXfMGjlHErTIUjZJ0zcLVPeMFrd + MFzcMF7cM2LgNWPkPWrpS3fyT3z7THjyNmDgKFDWKE7aKErfK0zmJkrjIkngI0riJErjJUnkJErlI0rj + IknjIUjiJEnkI0njJEniJEnhJUnhJknhJkriJ0riKEriKErhJkvhJU3gJE/gI0/iIlDjIU/mIVDlIFHk + IVPlIlTlIVXmI1rmIFzfGlzVKHTgR5b7AABDdOFKddegvfemvvhigd9DZdZzkOTB1fbn+P7D0/hzhtdG + YMVMa+UkRtUeQdkxUukqR9YnQcRQaNZSaclddMqYrPSbq+mAjs2st+y7yPRNYbpnf+w3UdcmRd0eRuQa + R+YdSeEgSdolStwlSNsbR9kbV+YkcPIofu8rgOFGkeJysfWIu/6Br/V7q+1upOdKheAqat4zatRfhc6j + yPxJduInb9Ja1vVp9fCE6uyj4vh6redUgtxhi+lnkOhmjupchOdMeeBEdNdGdtxJd+dGduo7dOA5fNtS + o+tqw/tRpfAyed4+efA1YukmTd8jSuQhSuQhSt4hTNshTNshS9shSdwiSN0hSdsgStcqVtlFc+pOfvRG + de8zX+AfR9QnTd8lT94hTtslT98lT+EkTeIiSuQjSuUjSuQjS+IlS+EkTN8kS90jS9skSt0mSt0nTN8o + TeMpTOQpS+IoTOAnTt8mUeAmUOMlUeUiUeUhU+QdUuAkXOUlW+ggV+UmX+kiXOAfXtU8f+RTmvYAAFSA + 60941oyt8K7M/mOH2ERv0WyQ55Ow7Juz8G2C4TlQxUBd3Ext9C1S5R9H3yBI4CJK3yVM3CFH0yRL0S5W + 1zNY2CxPySpNwVZ03py0/qW1/4+f/kBW0SdF0yRL4h9J5R1G3yZL3ytN3ydG2ChK2R9M1hVLzidj2kuK + 9l+Y/WSa80uC2UiC2WCd62Cf6lSO6FWI82KS9Yu4/3Go+ABLsB6N5zvd/D7q9XDq+I3W9W2p5liW516X + 62CW42mb6W6e726a7mWP6VqG40995UqA6C9z0EWU6HbQ/2C/8TaM3zuB5D517EBm8ChM3iNN4SBO4SJP + 4CVQ4CVR4SVS4idT5ClS5itU6CdS5BxH1iBM1S5b4ENx9FF//UVw8iZS1yJO1iZS3SVR3ydS4ydQ5SRN + 5SJJ5CNK5idP5yZN5CVN4SVN4CRM3iRM3yVN4CdO4ipO4ypP5ClP5ClQ4ShT4CdU4SVV5SRW5iNX5iJX + 5iBZ4iVg5iRf6SNc6Cdi6iNh4iZo3UOK61eg+QAAUIPoRnfUapjgnsn8cJ/oQXDSNF7KK07ILU3RLUvT + KEjSL1LfIEfVIUrYKVLiIUvaJE/fIkzgFUDWHEjhIEvmFj/ZIkjdKk7dHT3GOVTQlKr+bIPmK0vCHUPM + IU3eHUziGkbaIEnaKVDgJUvaHEHOJk7VNWDfUX/1YY/6RXLfH0y3OmbHeqfve7D7U4zuRXbiNV3UPmTT + gKj9T4vmMozUZdz7VOr6TuDsl/P5p9LteKDcWovdXpHndKj1cqbtfK3vf6zzdZ3wXYjlSHvdO3jYQ47j + Ybf0bsj8QpvjKHbMRYXqRnjuQGXtJ0rZJVHgIVPgI1TfJVPgJlTgJlXiKFbjK1blKlXnKVPpK1XqKVLl + I07cJVPZPG3qUYL3SnzsMGDaJFDVJU/ZJ1DeLFPkKlHlJUvjJUrjJ03lKE7kJ07hJ07gJk7fJk7eJ0/g + KE/hKVDiKVLjKFTiKFbhKVjgKFrgJVnjJFvlI1vkIlzlIFzhImDjIl/kIV7jI2LkIGHcKm/dSJLuVaL2 + AABEfeVGf+FPhNtuoO2It/9lku8zW9YtT+AwVOokTeMkT+YlUOcYRdskUeUfTN8dSt0hTeAkUeYeTeIX + R9seTt8rWeQiT9MXQL4yWc5ghvZbf/I3XdcjUNMcTtoaTNwbStsdStkiTtweS9oSQdAjUtxJd/pPfPNN + d+VPeeBHcthWguOCr/yFs/lFfNgVVcgOS8YJRMUrY+RCdfMMU7M9rt50+Px09/uE8/rD/f2xy+J3lNds + mPNwnvtxm/Z2oPF9qu54p+9gjedHeNtAfN9PlfFdrfxpvv5ervVCieE7fNlHgedOffI9Z+snUN0pWOQl + V+MmWOIoWuMoWuMpWeMqWeQpV+QrV+ksV+wkTuMlUeIqV+MeTc4hVM1Fe+xhlv5Rg/U3ZOUpVNomUdks + VeIrU+UoT+MnTuMrUucoUeQnUeImUeEmUN8mUN8nUeAoUuIpU+QpVuMpWeMnWuEoXOAnXuEmXuMkXuUj + YOQjYOYhYeMjZOMiY+MjY+QkZuQiZNwxeOJSnfRaqfcAAEZ951CG7kl84EZ313Og7Hmh71J14S9O2yJD + 2CVL2yNK3SlR5idO5ihO6iBG4yZM6iBH5BlB2yxU6S1V4hY/xRY+vi5Vyk902WiN8FuC8CJLzhdD0SFQ + 4yNS5SBM3CNK1ylN1ydM1CBJ0CVV2j5x70p770Bv11SA3Hem832w/X21/2uq9jqA1hxmzSBu4g9l2w1q + 2T2T/yRu6gFiwDTN7UDk8Tu/03zZ8ML6/ZGz21B2ykp64Up24VF23GmP54Gs9Hmo81yN6jZt0Tt93lun + /Uqa6E+d6FKZ60mE4Ut/5Ed54VB/8jpp6yhX3ydY4ilb5ihc4iRY2iNW2CRW2SVW3Spa5CtZ5idU4ShW + 4ChZ3Sxe3TNm3Ud98FeL/DVp20R15lWC+Dxp5ipW2CxY3i5Y4ylR4StT5S1V5ydT4ydS4CdT4CdT3iZT + 3idU3yhV3yhV4ChX4Cdb4idc4Cdf3yhi4Shj5CZj5SNj5CJi4yNk4iVo4iRm4iZn5CRm4CFk2Dd+5Fik + +Fqp9QAAUYHpUH/oU4LrU4LlU4DTYYvWbJLwZYj3V3bnSWTaOFTOKkfIK0jQLUvbK0vgJkbgJETdKEjd + JUTUK0jRQVzbWXLobYb3cor4VGzdKUXDKErVKU/iJ0/jJEzfKU3cL1HZMlHULEzKM1jSSnfsTn/rQ3jY + WpDkgLn/hsL/a7PyR5feKoTWH4HaJYPnJYDqGoHjJ57vN6b2CmvNG5fmN+v+Es/lD5fEcszspuT9TYDG + JFW0R3nlTXvnWoPlcpzyeKfwbZ7oXI/lR37cXaDzXaf2RpTfUJvmUZXpRX7fSH3iT4DnUYDyPWrpKlfe + KljkKFnkI1XYH1PPI1nRKF3WJVfWI1LYI1LXLF3gSnv2U4f3VYr5V475SH3rN2jeQ3LqPm3iUoHxV4T4 + N2PfK1bXKFHYKFHbL1nnJE3dJ1LgJ1PgKFXfKFffKVjgK1nhK1nhKFnhJ1ziKF7iJ1/fJmHeKGPfKGXk + J2TlJWTkImHgI2TfJmjgJ2niKGnkJWXeI2bXP4XoXaj7WKTvAABPg+dNgehLgOtRh/JVius/c9EqWsg0 + X9lcg+t8n/NzlfRihOdMcdhBZ9VAZtpAaOA7Zd0/aOBNcuJkhfJ2lPpuiOxPZ9o4T8U0Tsg4U9IxUtUo + TdQpUNwiStomT9suWt4mUc0nUcZEb91Xhu1bj+xtp/h9wP9yv/pQp+kzk9sfhtQWgtkdiucghuYZfNoo + mOg3u/0VltgDcLE6zf4z6P0BpMIroMuO3fOX1f1BdsotXLlWgedbiupml+57rfxxo+x6q/RxpO+GvfyJ + x/9Fic9boudnr/lEid8+ftxEgOJIfeVQf/BGcO4xWeAsWOUpV+EwYeE6cOVCeOhIfuxGee01Z+AjVc8m + WNA+cOFVi/FjmvxakPZBdN4xYNQxXthQffFejPldivlZhfo+augoUtYtV+AyXOgpVOErV+QrWOMqWeEr + WuEqW+ErXeIsX+QsYeUsYuUqYuQrY+IqZeEpZeAnY+AlY+EnY+MnZuMnZ+AoZ98paOIqaOMqZ98vbt9J + jO9gqPtdqPEAAER85E+J8UeB7UB550aA8UN77S5d2SZL0itN0jRV00dm3VBt4Exr3E5v3VR250916kBp + 4Ttm4UFr5kFo4zFX2CNGySRGyyxO1itP2yhN1ypP0ShO0C5V3ydQ3yFQ2yNX3CRZ1Dhs3VeK81uM81WL + 7F+d9lum9kCW6SmJ3SKG4yGJ6hyE5yGI6h6H5RWC3Sif8Cuu9gGJygebxkTt/DLS/ACAplS40bD6+aLf + /VeM3Et72GmY+WiY9Geb7nCl9mud8mSX52CW3IvD+Xu28mKd4Xq19WWj8Dx91z5/2keE5EqC6U5/7khw + 6y9V2SdQ2jto8FKD+0+C8jxy20F43ViO9GCU/FiJ9kR04y9fyz9x11OG6kp+4Ed53lSF8FeF8l2M9Et6 + 4URy3lyI+FmE+jxl5itV2StX3zNd5y5b5C5c5C5d4ixd4ipd4Cpf4Cpf4Spf4Ctg4S1j5C1l4y5n4y5p + 5C5o5Cxn5Spn5Spm4ypo4Spo4C1o4Sxm4Shi2zNv4U6O8WKl+GWr9AAARnbwR3juRnjoS37tUIT6QnLu + MlPVOUzNSlvLWmzEa3vEdYG+c4CzcX2qa3qsXnOwTme1QWDANFXHJkfHI0PMLU7bNVbmLE/iJkzeKlHj + KlDdLVLgK03jKk3lIErcHk7YOWvpVoj7Wof7RG/mKlnPJV3SKGvdKnjoL3/xK3fvKHLsLHXtMn7yInjj + HHrhNpb9K4XuAGq+B77rNOP+LafwFXC1e87qsPn+g7vyOGTHMlvNR3HpRnHhXIfoZpT3SnjmPXHYXpzo + ZabmWJXXgbj1g7X/VobnQHPUQXrXSIHjUIjxSX7uP2/nK1jYK1bdRnL3WYn7VYbzToLnVIvoYZj1ZZr5 + XpHzVIXtU4LtXoz4ZZP5VobtSnzeUYTiY5XzbJ/8Y5T1S3riSHXjV4H0SnX0NFzhL1niKlXfJ1TdKFbe + KlvgK17iK2DhK2HhKmHgJ2DeKmHiMGXoKWHhJl7bJmDcKmXiLmjoLmnpLmnoKWbgKGXeMWzmMmvnLGPd + OHHkT4vwXJ3wZ6r1AAA4XuQ/Z+Q/atdGcdNYe95ddtVeaLpvbat+e5mBhIGOkX6SknmMinCNjHeYm5CZ + oqeSobV4jbBqg7ZdeLpJY7dCW8E9WM8uTM4fQMseQNErTuAnSN0cNtQlPdwgP9MgQs1FaetYffg9Xd4l + QskhQ8wjTtcfUdoVTdQRS9EQRs0YSc8bTNIjWdoPVMcWa9FAlfsncd8BZLot2fxB2/obccs2cM6R3vag + 8/tko+seScEYP8QrUdcxV9JYfeZmjvMwX9E/d95vq/49e8lLg81+sPRxnPRNctxNdthPftpHedhPgeRM + f+k+cOIxYdkvW9ktV9UoVckwX8hLfN1ilfJcj+1Gd9hDctdIdeFCbOBXf/hZgfc7Y9o5ZdVZhe1lkvJX + g+lZhfBLd+MvW8o1YdVBbOQ5Y+IxWN4hStIkTtkjUNklVNopW98uYeIuY+IsYt8qYd4tYuEuYeIlV9ki + U9QiVtYlWtwsYuQxZ+kyaOkhV9geVdMuZuIxZuIrYNc5cN1RiutTj+ZYl+UAADhk5E158FaD5mGH04CO + xYuGooN1bYd1TZSFTZuTVqCaYqCbb4qGa6Gfm+bq8/D6/7vL0oyjmoynlJWvnoykonuRsGB2vUBYwShE + yyhG2DRT4SxK2ilD3CxF4ShE1DdU21Nx9UFd5CU/yi1I1ylI1SlP1CxZ3SJU2h9X3ixq7yZk5yFc3iRl + 3hZw1C2h6y6n8wBrwBqZ2GTp/ky66SRismmd7Z7x/ZT0/U+d6BlSzB5Mzjxl4VyB8muP8Ul0zj12yXWt + /1KD6yFQtHKg7prH/2KL3Uhx022X9Him+16M4lWD2ViH4z9v1zVi0Ttl2jdh00Jv1lGB4l6O7Wua+2CN + 9EZw30Fr3kZu5jRY2CpM1TlZ6D5c7j5d7Elr8khr7Tha3iNExjJX01R88l6I+V+L+0x47ypU1CdQ1zNc + 6ShS4iJN3CpY4zJj6jFk5ixh4S9l4jRm5S1b3StU2jVf6Tpm8S9d5jNh6T1t8zlp8CFP2iZU3zlp7zZn + 5Cpf0D1z2Gih+mGY81WN5gAAQmzeQmTNZ3vQg4W8inh+i2tIiGYuk3MxoIdBm4tJpZZerpt2gG5YYVFJ + k4aEwLuztraloKeDnKZ4nqh4nqeCnqedkZq2cny/Ul/IQlTTOVTbKEnWJEPWKkncLlLXOV/cRmjqLk3V + IDzINlHfLE3UJE/FL2XVQX7vP4T2MXzwI3TmIW7eI3ngLqPyL7/2GKLUJpvOft76p+77gq/nWWy9gJTf + qub6o/D7ZZ/kP2PUV3LqdIz6e5H0c43hXH/Mapvkhrn/XYzkXYrjlsL7dqPhZpPgcJ7wbZ/vbKHvdKn0 + dKj1aJzvWYzoUYHmYI73Yo71aJf0ZZbuY5TrX4/oVYPkUn3mXYbzW4X0OWDYJ0vLOVriNlfiJUbQOFvd + THHvXH38Tm/vNFjUNVzSQmvcRXDfS3brQ23rL1fdKVPfI03bIU3aKljhMmPoMmXmLmPhLmTiNWjlNmPj + LFbaK1XfLVfhJVPaKVneMWLmK1zhKlrjNGPtOWnsMmXeLmTRSIDhaaP7XpfvVI3jAABIatBqgdeSkMKD + bHl9VDWVZSWYcCSPcyaXgjicjUqklFyhjmFcSiQmGgBUTiiRk2qboXWXnnWco32gqYOdpoWUn4yLm5t+ + kKlkeK9HXrM7Vso6Wt04WN4oS84kT8VEcOFgiPddf/VEYuY5VtpGa+JRguRfm/FfpfhAjuQeds8ceNYm + gOQmguU4qPg1s+womstsxuS3+P6Zv/hjeclZZsGHnfG16v2o6P5kkOFAWM9Sa+NceudaetlzkuKApvJo + mfBNg9pCestuo/R/sv1pmehVh9lMgdZCec5HftNYjONfkOltnPhunP1HdOZLcvFIa+5JcehLdeRchvRX + ge5GcN9Fbt9Hb+FPd+lWffNJb+pNcvBEaeg2XNhIceRUfe1Jb+RDZeI8YNpDa91LdeU7Z9dKdelMdvQt + VtouV+IrVeErVuMwXuc2Zeo0ZugxZOUvY+MzZ+Q2Z+UsW9wqWN4pWOAnV9spWtwoXd4gVdYmWN4tYOYv + Y+MrYdYuZ9BLiORfnfJXlulWluYAAG2I14qZ0od+hHNVN4dVJ5phKY1jJYZtL4VzQH5wSoFzV2BSOiYc + Bi8sE3h8ZZumloaUj4KPnHiCnmx2k3B6lnJ/mGx/lmuBnW2GrW+HxXuP7XuP+3aP/WWF71qD41uI41J8 + 3Uhu2kpq3kpn2lV43Xik9IrB/3/B+mm19Eqe4zCM1SGI3CGO5TOd7jCU2Eeg1Jno/KHm+1OL5SJStTBg + vIC2963s/Xu87DNixiJDwThf2kd35FWB3oCm7pS//1WK6zZxzkiJ1W2s916U7W6f+2GV8EuB3El+21GD + 41J/4Vd/5HKW/WqN+i5PzixK2yxJ3TJS3jld31h9+Utv6y9T0jJX1DBW0D5l21uC+UZs50Jn40Zs6Uty + 7GOM+FmE8Edt40Vp4kdt4ViA71R/7D5o11qG91Z/+C9Z2zRe5TVf6DRg6DRi6DRk5jNl5TFk5C9j4jFk + 4TNn4TFj4TFi5TRl6TVp6Tdt6jVt6TFp5TNq6jJp6TNr5TNt3D583WKj92eq+GKk8Gaq9AAAiJzNkJi2 + cGBSbUsfj10rk1sthVgydFg8fGtflYqQioKOenGBbWd7gICafoSoWmSXSFWZT1ywV2G7Z2/GhozbnqTo + sLfpvsjvu8f0oqzmdHvFZm7Fa3nWc4zkgKP0eqbwXIjZVHzaaYzvYn/jU3HMdJjiga7udKjlebbxcrXz + U6LgKY7MMqLhRqToPITNZ63brfj9jNX5P4LfG12/P37Mm9r4re79XZvTH1S5I1HNO2rfRHbYZI/ekbX0 + fKPpSXbRT4TaXZzcZqThU4XXa5j1aZryWIzfWIvhV4biVX7cZIXneJb6aYXwQV7VOFfZMVPYM1nVOWDW + WoL0S3PlMFfNNVvSNVzQRW7eV4DyO2LZNVvVMlfTLlTOSHHkTXbmQGbYO2DTR23dXITvS3bgM17IW4b2 + VH32MlvbNV7iNV/mM2DlMWDiL2DfMGLfMWPiMGPiMWXhNmviNmrkM2jmM2fnMWnlMmrjMGviMWzlMmzo + L2nlM27jNXLcQ4ThZqr6YqjxX6TpaK7zAACdqceRkKFlRz51RyaHWB+JXB1/XDVkTUOYjpHv8fzf5PTl + 5/nt7f/j4/+RksleY6qDjc2ntPO8yvzQ2/7a4P/Mz/DBvt7T0Oe9us1TUm8IBTwmJ29aYrVdcMR1l+WK + uPx3p/Flk+Zsle5hguFScsyBo/GKrvNjitNtmuJ1pu56s/Jxs+WT1vqDtuVliMqexOzO+v602P59lPNq + f9qSsebH7fvE6/16od9RedxQeOxZhO1mkuSNsu6vy/aMqN92m+V0oumY0PyHv+5tm95+pvZ/rfhypup0 + pu55qfZ4o/J3nu99ovh0mPNbf+RcgvBbhPZciPFfjPBnlPddiu5ah+1divFUgedYh+hdi+5XhetdifNf + ivZbhvRjj/dkkPZgifRdg/FjifViivJDbdU3Y81ahPRVfvU+ZuQ4YOI1YOM1YOMzY+EyY+EzZOEzZeQ0 + ZOU0aOI2a+I2auM1aec1aecza+UzbOQybOMybuIuaeE2cOk1ceIzcddPkOlnrPdkq+9kq+xmre8AAJ2j + u42HmGBBP2w+L3BFLGxLNWZTW09IbIB/p+Dh+ufq+uLj9eXk9+Tf+ru346el3d7f/uXr/9nj+eDo+dbY + 5rq5x8G7y+jh7OTh562rwFxdkFldqFVguGR42Iqs94Cu9mSW52OV6WiY8lR83EJmxXOV7oWn+0psxFN4 + 0H2m936z+mSz5WvK606mzkeSzI7V+qLm92yh4UhpzERow3y247Xx+anW/F18zEVey0Re2T1k0El90YOx + 7qnL9nKVzV2Iz3Sm7Ye/9WWb1VqI0XKd7Wua6VaJ1laJ2F+R4V2N3WGN3nWf9muV80Nq0kJn3T5k3Dlh + 1EVv212I80545Ddgzzdgzzlkzkl321+N709740hz31N87E9450hz3kNt1VV95GSK8muT+GSO8EJrzztl + zF+J9lV+8zhh2zdg3jdg4DVi3jVj3jNk3zJk3zNk4jRk5DRm4TZp4DVp4TVo5TRp5jVq5DRs4zRt4DNt + 4TFq4Tdw5TRv3TRy1lGT6Gat82Ws7WSs6meu6gAAlaLEhYeoRjRQTS1SYEN/XEaYRTyhMDOhe3vJ6eH+ + 4tnw2tLj+PD86+PzyMPVq6jBw8Xc0dfqy9Hf3uLs3t/pwMDLy8za6u774+z41eD+h5PUUV+6VmjQgpr5 + jbT/bZ7uR3vRRXjTWorrVX/kR3DSbJPug6v8THPOPWbAXYbgXZLkV63rOKPSH4O0WrDZovH+gMjvNHDE + JFbAJWS/Xr3pmvj7ksn/TmvPQlPOO0/TKVbIQ4jgeLb9grLxXI7RTonVbqv4ZaL0Q37QVYfcc6P6aJf1 + TX3fSnzcU4TkUX/eWIPicp3+ZI75MFfLM1jVMVbWLVPOPGTaW4L4SXDpMFXTQmfjT3XuTXXqV37zR23p + P2TjO17kM1bcNFfbN1vYMVfIR2/UapT1ZY/vPWjKPGbNZo/8VX7yMVnTOGDeOGLfNmPeN2XdNWXeNGTg + NGXjNGTmNWblOGnkOGjlOGfnN2npN2rmNmzlNm7kNW3jNGzjOG/lNG3cO3jbWZnvaa30ZavraK7rarDr + AAB8ltR/kthGR6I8MaI6MLowK8U2N8pbYde6u/faz+RmWGlfT13YzNnk3ObW0926vMm7wdK4v9OorMO5 + vdHIy926v8/Fzd7a5fjP3fTF1ft0h95GXslcduhpiPFOddROfNNKeNIzYMBCbNBSet9CbMlkkN6Lu/d9 + rvVrm+hdjNxajd50tvhPmM5SkcCn2e3A7/yCruVGbbk+Y8I9ccB7zvKe8fuKuvRUa8tDV8gzUMMxYMNY + mOZwqe9hj9Rbj85amdhnpu5Nht9EeNNZidpzn+1nkOtPeNxMeNpVgt5Vgdpbht5vmfdijPI2YM0vWMsz + W9A3YNBCbdpYgPBKceZAZ99af/pdg/pDa987Y9cvVM0zV9YyU9ovUNg5WuIzVdRJbtxnj+51nvptlvNO + eNhLddllj/lQeOs1XNU4Yds4Yts2Y9o2ZNs0Zds0Y900ZOE0ZOQ3ZOM6Z+I6Z+Q6Zuc5Zug3aeU3a+M3 + bOI2a+E3beM3beIzathAe95em/FqqvFmp+drrelssOkAAGCG5Fl35Cw6yTc/2kpY43CE5Km489HZ+vLy + /M7FzVFCRlhJV9vO48G50cPA28jM573D4MbM6q2z0KWnv7m7y7/D0NLX5efs/tbd/7G++FFpy0Bf0zVV + yjhayjxiw1V/1WiQ6l6F5GiO6mqQ6Ux0x2+d3Yy+9X6y7Hyv7W6g5YGz8JLH/Huw3KbQ5eD9/svn8qvH + 6Zmv45Oi5Z2z68Dr/cX0/anH9Iie5Hqa6GmR4XWd45C275K16Yyt3YKq14a45Ii78HKc5nme7Xme24er + 4YOl6XOU5W+U4nKc4nGc4HSf33qm62yZ6E571lB941SA61iE7FmH61+M9VF950p230l03ERy1VqK52aW + 81SD5Eh13EZx3kVv3VF+51yJ7nOe/m2V9FiC4F6I52aQ8WeQ92aP+0Zt4TZe1zli2zdi3DZj2zZk3TZl + 3TVl3zVl4zZk5jhk5jtn5Dxn5Tpm6Dlm6jdp5jhr5Ths5Ddr4jlt5Tdr4zRq2UR+4WSh9Gqr72an5W2u + 63Cw7AAAXIPiXoDgXnjac4njo7jx1ej86vX/4OLz9O37zb/DTEBDe3Z7393qt7nO2t343+H929345en7 + xMfWsbS90NTc3+T13eT33+n+sb7xcojPTW3OT3XiVnvrWHjmV3ffaIjofJ72c5fne57mkbX1eJ7bg6rh + o8r+jbXvf6fjdZ3blcL7cbLkZ7LZpOPzw/L4uN/xocHleZrEep/LpNDyuOv9vfD/ocvxfqTcc5zZcZ7Y + k8HymMTth6/TpMfmpsbprM78pcf6nL71mLnzkbTmo8bypcb3lLTtjq7njq/niK3ki7Hqlrz5h7D0aZDg + U33dUHriS3fYVILcc6D1XYjlNF/DL1u7Q3LLaJrrb6D0WITjSXLbUnrqYYn3bJj5b575TnziL1zNPWrW + VoTpYo7zZ5H6VHrsPWDbPF/cPWLeQGTfPmXeOWLbOGHdOWTiO2jmOmflN2XiOmfhPmrlPWrnOWjlOGvl + Om3oOm/qN2znNmznM2nfM23TS4rcbK3vcbPqbazidbDucazuAABYgONkiOhohuJpgdB2isGOn8KtudbT + 2e7/+v/SwtVcTFmIgIff3OS4u8ja4O3g4/Ld3e7q5/DW0NPEwcbc3Obd5Py6x/eWp+dtgtBge9Nmi+tP + ed1HbdhLbtlNbtZVdNZpi9+Cp+uLsut7otVpkcF5n9Kqz/6av/aJruZ+pNqZyPd1u+NswOGZ4/mv5/qn + 1/mKtuZbjb1oqs6d5/2f7PyO1u2AveZglctNgbtqnth9seRsocxunb6Ntc6myeqev+9+nNZtj8xsj8tw + lMqKruOJrOOEpd2AoNp5mdN8ntaApt2GrOeErOtultxnjeJxmPB+qvaLufybyP2DrvFlj+Fnkd9qmOB6 + quiXxf55pfFii95sk+5njehhjNh8q/Bgj99oluhrm+xGd8pTgtlhjO9AaNc9Y901W9s6Yd9AaONCbOQ+ + auI6Z+A6aOE8bOI6buE3bN83bd85cuM4cuY1ceQzcuM0deYydOosbeQ0dek2d+Q3etZSmd9yu/F7we54 + uul7tvB0resAAFJ841d+5mB/6meB6WmA115yt1psp2t5q6Wp0aqjxGBVbZuRofHr9sPG0MHL1b/K1M/V + 36ijql5VXEhCUXd4lImXxWaBxVt70FV011R33VV+3kVv0UJp01J041h35VFx1V6B1Yau76fR/57H8nae + 0nKW0Zq9+Iuu7Xyh3nWb0ZLB7IjH6I3W7p7b+pPA6oau5HOb3VKEvWerz5Tg9Z/r+nS81HKu21WJxEJ1 + tXqv6YG473Gp3Ie64JPA2rTb/KLG+IKk4Xuf33eb3HOY1oSp5I+y8Iao53CR0W2QzX+i3YSr44Ku5nei + 3U11uV1/zm2P3YGo54m154Wv5X2l4Xyj4n2i5YOq6ZS+9ZrE95jB+Y218Xmf4F+Fx1+Hwnqk3JnE+KPN + +oGu42qX1n6r8HKd80Ns1URs4zli4Ddj4Dxq5j9u6Dps5DVm3TNm3Ddr3Dpx3Thv2zZt2Tpz3zp14TV0 + 3zR14TV45DN45y1y4TV55jl94kGG3F6m6HfB9X7F8nzA7Xq673ay6wAAW4jsV4DmUnbgW3vlb4vvb4nm + WW/OR1i0U1+rV1yWQUFuZGCEoKC/lJ26oK7LlqnGkKDAXF9/JyNEGRlCOkR4X3i5YIjYWYXgSXLVUXrg + W4bmWoTnWn/uX3/0XHzuUXDbVXfScJbfjbTxk7r2gaXpdpXhhqT1bYvbWXnDV3m6iLPnnNv5q/T6o973 + hK7riKvyjK74dp/jjsjsrOv3ruj7hbnYfKbXX4PCYIfLgq7te63qbqTge63ahbDSmb/ojK7mg6bmh6zu + faPkd57ahKvkiq3pf6PfgaTgkLTvj7Psgajfhq/oiLPwdJvjaIredJTng6jqjbbsibHoi7Lug6frbI3Y + Y4XOcZbYh63rgqjneJ/dia3xkrb3ia/vkrnxncL5i7HrirLplsD4fafrVX/UQmvRR2/kO2TgP27oRnbv + SHvzRHbvPnDqO23oOW3jN2zbOWvYPm/dQ3PhQnPhPXLfPnPgQXflQXjoPnXmPXfjO3baR4XaY6bpdrzz + fcX0fsXzerzxdbfvAABYhOBVgdxTfdlZf91gg+NVc91EXNREVtVQXdVWYMhPVrFMUaJvc8BgbLVZZ7Fb + bbdyg8uHldt3hdBgcsJgedFae91QeeJUgOxHcd1Jc9xQedxIctZAZtBFadhSdOFQcdlGacdKb8NghdN3 + nOh0luVce9Fti+Fvi+Fph9hefciNuPCX4fiN7fNmuto+f8FVjdtgleNLhMR7v+Gv8Py17v2Pvd54m8x/ + mtarx/96mtZRdLhiis1zm9OPs+CKrd51ltRwlNV5nt98ot+GruOPuOeHrt6ApdaJrN+Iqt99oNSCptx3 + nNZegsNskNpxk+p4m/F3nulznd9pktZxmOJuk+Jnit5pjuFfhdRqkd13net2m+t4nPF5nfJpj95fhs9z + mtyHreyLsvF7pORpktlki+FZgeFche5Tf+o7a9Q6bdY+cNo8bdw6bd8+b+VBcuU+cuE9ct8/duQ/duQ7 + ct82a9k1atk6bt88b+E7buA6bdk5btJMh95op+9usO1rr+dtsehqredtsOsAAGiO5nGX7Haf7nGa6nGX + 72WG60Nd0zdNz0JU10hY1FRk1Vtrz2FwzmJuxm13y4SQ456x/5y5/3qg72SP5lWC4kp03k5z5khu4kBq + 2UBq1VmE6FJ73VmB5GGJ61R83EZryUlvyE10yFd/z3ac6Yar9YOm73+h7ICi6W+R1GSGxpS976fm+Kbz + 9oHG5k+IzFWM2FyW3EWFu2qx0Jvg+aDe+Iq+35K65afG8aXA73aRyHOP0IGg5oqq5a7N+qXD9paz8Yqn + 6X2e3H+j25e965rC6aTJ8KDC65q65ZOy34qr2Zi66JG052+QzFFztmuS23qj7YWw8XKf3mSQ0nah536o + 8Xig63ih7HCZ42qT4Xqh836k93WZ8nWa8nOb6miT23Si5Yu5+Yi39Hil53Sf522X52KL4m2W8HWg+Hin + 93yu9m6h8ViL4UV41D5w0Uh72UyE30OC4j+H60KN8UeS9UaP9T2F7TR55DJ14Th540WG6UeH4VaX6HS3 + +Hq+9nS17nKx6HKv53248AAAd5TuZYPbZojabZHhaYvkY4PkUXLYOVjDQVvJWnHcWXHTWXXMYHfFeILN + kZTbnKDmmqjtaY3PVozOZJ7rT4jhOmvQSG/dSXLeS3zhVYXrTnjiUXjhUnrfWIHhX4nlW4XfVX/YZIvl + YonhUXfLaZDegqrwhKzrfKTedJvReZ/VncPyv+v90f7/rtX1gaHrj7L6lL/3b6HRjcffvfn+pNz4ZJa6 + jLTetNX/oL/veZbLZYS/eJvbocT5stL6osDxj6zokaztkK/tjKzllLjnmb3mj67Ynbnjob3nlbHan7vl + ocDpmLjkr8//n8L1eKHYZpPMaZXOcJvXcZzZdJ7efqjng63sfqnnfafog6rydJnoXoLWUnXLaY3fjbT6 + g67ueKrpdq3vY5ndV4nRY5HgZI3lVnzYXIPfcZfvcZzqfazxdqXtbJ3mZJXjY5XmbaLwaqPtUJDfO4Lb + NIDZQ5LpPo/mJXbRMYLfTp/9TJ34Po7hQI/ZXqjreb/5dLfsa6jbc6nbgrXlmMj4AAB9kuxrgtpog9Zo + hdhefNZigN9wkOxukOpjgtxfedNgfM9igMxvhc+GjNaRj9uQjNqHjNpeecVVg9FrnvJdj+1Aa9NBZdFL + c9lOgt1Xiec+ZdBKbd1BZtE5YMRJcdJNd9ZGbs1fheZuk/NQddBPdMlmjNd7ouSBqON6odZ/pdmlzfa4 + 5fO/7fKcxOhtjtVzlNx+pNt/qtKy4vPK+/2n2PKGstefxvKfwPSOq+J4ls1ihr19p9uYwu2QtNqfv++L + qeSBnt+Jp+eOrumQseSHqNWAnsqTrtufuOSYs9ucttyXtdiPrtGpyPGoyvamy/6NtOpzmdKBpuKPs/F/ + o+B8oN2Ps/CNse93mtllh8taecZtjNpefctScruAo+Oexv5xod9dk9dgld5Of85MeNFSeN1Ze+VZeuRM + btFjh99uludZgtFWgM5ijNxXg9VVhtFrnuNzpu9vovFwpvVno+9RkN05fc04ftBBittGlOEygsU6icRt + uOuQ1vyR0PeQyPOUxu6TweibxesAAHKH3oed8Y+p94ql9XuV9GeA51pz3l945mJ451ts3Fdn1lRl011p + 2Wlr4mxp42Vh3llc2k1d2U5q5lFw7ERj5TtY3EZg4U9v40122mKN7mSM8lqC6VV941d/41R+30p11URu + zkRtzVR83W6U9XSa9nWZ8Hec7IKm7m2Rz12CvIq136vn9aLq8Hu84mCX4GGX31WMwl+YuqXf7K/r9qLa + 8aTV+omy5naX13+b33GN0HGVzJO/6ZO+5oSo1JO06oem6IOi6YGh5Xea136i1Yap1pi65Zq65ajF76/M + 9Ju635e32p2945296pKx5YGh34em7H+e44Kh5Yuq7YCf43qY3YWk6ouo8Yek7oOg63qX4oil8IKh6HiX + 2oqs6YGm4nel4nan6W2d52WS5ViA4Ett21Nz5l5/8E5w3FV93Haf+GCK4FB3z12E3l6G312I22aR3m6V + 4XOW5WaJ12+X4Xml8W2d7mCU5FyR41ON2FmZ2Wqr4n297YXE7oO+6I3F75vQ9Z3R86fa+QAAcojXe5Xg + e5nae5vgcovlT2TVOErMNkXTPUfaQ0neO0HVOD7TNzzUNDrWLjfWLjrZMkHeL0LaK0DVKT3TKDzTJjrM + NUrTU2rmTmnTVnjUZI7hZJPiW4rbYI3hc6Hxb57vU4HURnXGUn/RYoziaZHoWH3VTXDFZIjVa4/SZInD + irDeuub4wfL7irbiX4XVb5jldaLacKPEpN7mqujsl9Xoc63SVYK9XoTNcI3dYHrGcpbNkr/jibXbgKTY + eJjXcZHaeZnjbpHVZYrFfqTVmcHpia/UhqnPlbfdm7ziosPpnr/njK3bk7LmhKLhYYDKYX3Of53phaTt + a4vRaorRepnjcY/dYoDQb4vcgZ/shqbtiavskrbylbr0kLXuh6zlirTrh7Tta5jXXYfRaJDlYIXlRGjR + SXDWYYrqWYXadaTzcaDxZZHkUXjRU3nUgKf4e6LtU3vKX4jZUnzLWoXRbJblb5nqZY7hZ5HkfKf2g7L1 + gbPrgrfpebDfbaTTcqrZerLefbjcj8zsAACUt/KMsemBp9uDqN+Ep+l3l+Zrh+NngedphO5qhu9mgexm + gu1gfutUc+FKa9lQdeBnjvZdg+pfhOtfguxWeeZfgetfhOpTeddWftFvl+FljNBnjM1ljM5ulNh8oud8 + oeZukthihcxzlN2Gp/NvkN1gg89sj9Z+oOJyksxzkMOsxerT5u/k8/KtxONvj9B4mtqGqNekxNjb9/DV + +POp2vJxp9Nijshwk9VkgMdkfsOUtOmlzPKPuN6Rt+aNsOWDpN+Ip+KMrOOFpNaDo82Jqcygwt+tz+mh + w96UtdKWudqavuaRsuGTs+uWt/WFpehwkdVtjtFxktR0ldd3mNp2ltt3ld5xkNpkg812lNyNrfKVuPeI + q+l8oNuCp+Ggw/yau/SUtfCXuPaUt/WZuv2Rsvt6m+plh9Zcfsx6n+l/pe91mehwkuVnh95efdZriOF4 + l+1uk+RolN54pe93ou1xmudxl+ZukeBxlOCLrvSJr+uOuOmiz/mh0faay/CSxOuDttx+tNqRx+wAAH2o + 332o332n4IKq54as7nyg6nGR5HiY8H+j+Xef8Hmh9IGo/Yiv/4ev/n6n9Xij73im8HOj6X6u8n+w93ep + 8nuq9Xam8Gqd5G6i53Sl5Xei3oOs5YSv5oOu5oOu53+o4nid2nud3ICj5ICj5Xmf4GuX03Kf13ql2GyT + wHGSvKa/3dff4unq4rXI3ICk1nuh04alyrrO2/T67e/796vR8F6Pwl+GvmuKxWyJxYyr5KPE9ZCz34Oq + 04ix24eu24So1oiq2JCv3Iun0oejyZez1KvJ5KzM46vN46vO6KLH6J/E7ZS46Xqd1XOX04Op4oGn322S + zWSJxHCV0XCT0mGDw2OFx3mb34Wn632f4nue4Hqd3nSY13WY132h3Yeq5YSk4X2b24Ce3Yem5IWl44Sk + 4o6v7JCx8Iip6Yyt8Imq8HSV3WOCzmmH12iG2Vx5z2aE2nmc7HGZ5GaP2myS4W2R42aI3G+Q4nqc6XCT + 2W+V0Yeu4ZjC7ZfE6ZnG6ZzK7ZTC55G9553J9AAAcpzecpzfdJzieZ7rcZTqU3LTN1HBO1PJQVzNPFnE + QmHNRWHQQl7OQ1/OR2XVS2rZS2zXSGzURGnNRWvNTnXWVX/bWobdZ5XmdqfweKztbaLbdq7idrHkcazf + dbDie7Tme7Dmeq3kd6njcqXgbqTdZJ3SaqTVdq7bc6fPeabMosbi0uHn3+Xjt83kibPkg67eocPi0un2 + 6fXv3vDykbnaWIi9cJnPfJ/ViKngnb/0lLfmjLLck7zmiLLfibPik7vrmcDuk7bjkbPem7zip8jqnr7e + lrnVocbiq9Hwo8nukrnliLHhg6rgfKPcgq3ji7frhrHldqDWdqDXgKrjganleaLee6PhhKzrfKTjcJnX + b5fVeqPfe6XfdZ/Yd6HZgKfifqXgeJ/aeaDaeKDZcpvScJnQd6DYfqfed6HZgKriha7ohK3phK3rgqnq + dZzeY4nNYYbNZYvVV37KYITWaY3jZIjfYoXdZYvgY4zaYozQdqPeirntiLjmg7TeiLrij77mk8Drmsfy + AAB1oOBynt1xndx4ouR8pepslN5YfM5WedFcfthafdddf9tXeNdOcNFNbdFScddVct1QauBQZ+VFWuY3 + TOAsQdImQsU/YtBqle17re5yqd9rpNhzruBzsOFrqtpvrdtzr91wqNlrn9JtoNVupNlmn9JmodJyrtt8 + s9xypct2pMabvtfQ3+bb4uGrxdt4p9Nzocihw9rb9Pvo+PTU6vCDrc9tnc5pk8FzmMOStuCKr9qDp8+S + t9uUu+GOtuCKsd2YveejyO+jxOulxeioyeecvtuixd+kxeGewN2hxOOgxOeYvuWWu+eSuumFr91/rteN + wOWVx+6Pv+iNvuiVxfGXx/OQv+2ItueJt+mOvO6JuOmJt+mPvu+NvO2GtOWCsuKKuemOvO2Mu+uPveyS + we6Rv+yLuuaNveaVxeyQv+WRv+WVwumUwuiSv+eXxOyfy/OYxO+Ru+mVve+Ot+19puJ4oeKAqu57petw + neJ7rO14quR8sOOLwe2IwOaEut2IvN6MwOKLvOGIud4AAG+W4HKa4XCa3HCa2Xej3Xml33ei3nyn5YGs + 6H+s5Iey8Iuz+4qw/4ep/36c/XCL92J78VNq5UBW2TxS2URd3Uxs3V2D4W2Z43Ol3Hux33Go2XGo2muk + 1Wql1Haw3Xix3nKm1Xip2Xyr3nWl2Xiq3XWq23as2Xao0nWhx4Coypu608/c4uLp56rG13KhxXilwKnJ + 0tzz89zu67fO14uy1Iu75Ymy1oqvzafN65C314iuzJvB3pW52pS33Je53KDB4avL6LHQ6rTS6bDP46fG + 2afF2KrH3J680pWzzJ+92aTD46DA4p7A45W73ZXD45HD4pHD4o7A4Ie42YKy1IOy14a124i33Ym44Iq5 + 4oq544a034Ox3Ia034m24YCv2X+u14a24Ie34IOy2Ie124+/45HA5JDA4ZfF5Z7M65TC4JbE4JnH45C7 + 2I+716HM6KbS7pvI4Z7L4qjW8KHP7pnH6pjH75DA64S14oW444e844S734K624K72IW82Yi93IzA4I2+ + 4Yi63QAAdJvafKThfaXfdqDYdp7Ye6PffaTjeqDkfJ/repzwaIfmW3feUm3aRmDSO1XIPlrJSmfSWnrf + Y4XjbpLrdZvvcpzndKLkd6jid6vce7Dedqvcdq7fd7HhdK/dcqvYebHcgbbjf6/fd6bXdqbXdqnZc6rZ + dKjUd6nTeabNg6vOp8Xg097l4OXjrcfXd6TGfKW8q8XI2+/s2+7zrMPVep7Cc5zGfKLFlLfRqM7ok7vX + j7TQocTgosTipcbkq8rms9HptdTrttXouNfnudbltNHfnrvKob3OsMzfsc/krszkqMbfpsTepsbgm8Hd + l8TjkcLjiLnZhLXWjb3fj7/jibndirvfjbzig7LYg7LZi7rijLvkgrDagrDbjLnki7nkg7PciLrgjb7l + hrbeirnflsXqlsXqjrzfi7rblMDjksDhmMXkncnomcXlmMPhm8bkn8rmm8fflMHUmsfaoM3joc7oos7q + p9PypNLxk8DgjbzckMHejL3biLvZibzcjL7ijb7lkL/qlcTwAAB5oNN3ntJ3ndN6ntp6muFyjuBngNtf + ddlXa9pNYddIXNZNYdpZb+Jlf+dtjeh7oO2LtfOLt/CFtOh/ruB4ptp0otdzo9Z2p9h9sN2BtOF2p9l1 + pth5sd55sNxto851qtOIvOaCs952ptJ3qdZwpdFyq9V5r9mDt95/rtN+p8msy+bc5vDk5ue0yt5+qc6E + pr61x8je7O3X6PejudaAoMtzlsWDpsqkxeKbv959pMSBpsaYvNyhw+OcvducvtqmyOGrzuWpzOCqzN+q + y92hxNObvMycvc6jxNajxNmZvNKXudCgwtujxuCawN6Brc2Ft9eDttaBtNSNwOCTxeaHutp/stKFuNiI + u9uBs9WDttiIud6Gt9yFttqJueCRwOaFuNuCtteFuduAs9aCtNiLveCOweSNv+KLu96It9uRwOOSv+OO + vN6TweOWw+WSv+CWwuKdyemZxOOaw+Gex+ShyOWcw+Cix+Wqz+2nzOiiyeSky+eexuSRutqNudyTvueO + uuaLteWPu+wAAIKm3Xmc13iZ24Kg6X6X7GJ22kVTyDpGxDxMw0lfyl953HKO7Hub7oaq8JC68pTA7Iu8 + 4YW424K12n+y2Xqq13Wm1HOk03ao03qu1H+y2oCr2Xagznek0ICx2YCx2H6v1YW02Yi124e02oa23IG1 + 24C33YC33Ii93oS004KsyqnG39vk7Ojn6q/C2nOcxYemv8jU1ufx98jc84+o0H+e0HSYy5K03p2/44Sr + 0HSgx3umzI+22Ze+3o611I+205W92ZnB3pe/2pnA2pnA2Y+5zpC6zprE15vE2ZfA1pnC2p7H4ZzE4ZnA + 35rD5I2724W01Ya3146/3ZDB3o3A2ou+14K1zoS3z5PG3o/D2oi81Ii71Y/C3Y/B3Yu82Y/C3YvB2oK6 + 0oS704u/2Ym+2oW51oi72Yq+3Ia414e52Y2/3o7A3ou924u82Yy/2o/C3JLE3pjG5pvF7Ja+5ZrA5Z/F + 55/F5Z/D36PF4KjK46PI4KPJ4KXL5KLK5aDI6J7G6pbA5o244Iq33gAAeaLMeKHLeqLPgKfYgKPed5fb + bInXboffY3ncUGXQT2LTRlfNQFHIRljLVmvaaoTmdpXqgqfuha7qgq3hf63cfa7YfbDWfbLUfbPQf7LR + gavRfafNfKjMfKrMe6zKf7DLhbTQg7LPgK/MfbDNeK/MdLHNc6/KfbfQfbTKfK3Dn8XV2efm7vHqssnZ + bZm+hKW4y9fT3uztsc7le5/DgajTeaLOha/Vgq3Pb6DFb6XLdKjMe63MhrXRiLXOjrnRj7nUirPRh6/O + jrfWkbvXg67GfqzBj7zPnsvdn8vencjencfhmMHelr7fm8LllLnfiKzVjLDXmb/jnMHjmL/dmcDdk7vX + kbnUm8Xdm8Xdk73VkbrTl8HZl7/akLnUj7jTlsDbkLvXjbfSmMHdm8Thk7zckrvdlb7glL7fi7XWkLrb + lcHhlMDfkLzZj73Ykr/YjrzUjbnWlb7gkrzelb7fnMXin8nkm8bdmcLYoMncm8bXmMLUn8ncptDlqdHo + pdDmos7loMrknMfgAACBsNGCstKEtNGEtdGCss+DstOFs9iGstyKteOMs+eHq+WAo+R7nONykOBmg9ZX + dctLaMBVcsxZdtJWdM5eftRtkd14oeJ9qd16q9F1qchtoMBtosBspcBvqsJ4tsqGxNWNy9yMytuIx9mD + xdl/yNp5yNl1xNN8ytd8w9BxtcGQxcvN5djy++m+3uJ0q8SLtb7U59be9Oiv1uOCssyBs9OIvNyAs892 + qsV4tNN2t9dztM6EwdWWy9uTv8+Tu86ZwdmexuCYvd2RttaLs8+BrMKEsMKTwM6iztyfytaOusmMt8qU + vdWUuNeOrNaareaMmNmFkdGKmNOLmtOJmc+LnM6Ro9KPos+KncmSpdGVqNSTptKTptKWqNWTptOKnMqT + p9aQpNSClseFmMuQpNeQpNiHnNGModaWreGLotaLpNaRq9uPqteHo86OrNSfvuWhwuSXvNyWwN6YxuGT + w9uSw9qYyd+Yyd+TxtmWyNuYyd2UxdmVw9mbx96bxdyaw9qkzOOu1Oqt0+oAAIC104S51oS504a704m8 + 2YSz1oax3Yu054q05Y245ZO+65W+8Y2y7ZGy95Wz/I+q+4Sd+ml+7Vdp5Etd2ztPzDhRwkxrymWM1nGf + 1nGmzlqYtGClum61yHjA0n/J14TQ3IXQ237J1HnH0HzM1HvP13rT2XfQ13jP1nPHzmm7xIDDxrnezef4 + 3s/q3pzExanFvd3s1Nz146nY2X62woS6zZnQ6IG70nKwxni81nXA13S/zofO15vY4JzN1ZvH0aPQ3bHe + 66/Z66DK3JS+zo66x423w5W+yZ/G06HF1Je4y5Cuxpmy0Ziv1YCQwoOIzYaF03p6x3+AyY2P1oyN04SG + yYeLy4aKx36Dv3+EwImOypKX0oSKxYOIw5ab15OZ05KX05CW04mOzYiNzY2T1JCX14aOzn+Hx4mR0IiR + 0IyV05Cb1pOe2I+b042c0Zal2pOj14yjz5u73qXI6J7F5JK92pPB2pXH3JHF1o7E1JTJ2ZPF2ZPE2JjI + 25nF2ZXB05rG2aLN46XQ5gAAf7XPhLrTgbXOhrjViLXcYom+U3S6WXTGTmzBS27CUHHIWHXSRV/BTWXK + VWzUV27YU2vZTWfXS2XXTmrdQmDQMlS6QWrBXIrSYJTOYJvEW6K5aLXCfMnXg87fe8jWe8rVgtLbfc3U + dsfMec7Pe8/Pec7PdsrNbsPIar7Gar7KcbrAq9bN3vHa5fTZ1eXL0trE5ujW1+3dm87DbqioirvJhrbM + ZqG6bK/Ia7XJa7jIdsLMh87Ukc/VkMfLmMzPm9DRn9TUpNjWotXTm8rLlsPGh7G3i7G7mrrLn7nSl6vL + iJe9kZnHoKbXkpXPg4XIiYrRgoXLfX/Fi43SlpjdjY/TfYDDgITFi4/OfYLBf4TCkpfTg4nEdnu3k5nT + mZ7YiI3Ih4vHlpvWmp/blJrXmqDcnqPgkJbSjZPOlJrVlpzXj5XPlpzWmZ/ajpTNjJPNl57XkJvPi5zK + obbiqMDtosLon8binMnclcfRkMTLjsHLj8HNlMTPl8jTmMvUlMjPj8PQk8fZms7jAACOutKNudCHtsuQ + v9eSwN1olrpYhLRijMRlj8hplMpmkMhxmdVqks90ntp2pNx4qdl4rdh+ueJ5uN9ztN1trtpkpdNlptRk + pdNios1rr9FptMlntsNwv859ydp+zNl9ytZ+z9h90dd7ztJ6z9B70dFyyclpwMJpv8Ntwchov8ljrrWe + zcPc9Nzo+t7Z68/W38bi5NDR5NSby79+tbOazNd/scVhm7Ntrsdss8hnr8B6wMuMzdSQzM+RycqRx8eZ + zcuh1tKf1NCVysWPwr6XxsaSvMKRtsGbu82VrseHmbqSoMihqdqTmMuGh8OEhch4eL+Mi9KJiM98e8GH + h8yKis50dbl7fL+Zm9uSlNR/gcGDhcWMjsyFiMWLjsqWmdeFh8V7fbyIismNj86Ii8qNkM2ZnNmYm9iQ + k8+Tl9KandiXm9Wfotuhpd6Sls2LkMaUm9CVn9CNm8mNoMyYrtyivuWfw9+dyNqezdeczdGWxs6Uws2V + xM6ZyNGay9KWytCTx9KXytye0OYAAJG5z5W90Yq0x4izxZS/0o66zprD3KTN6JjH3JfJ2ZrL3Z/Q5o29 + 1pLF3JbN4ZbS3ZXW2YzU03/LyHrIxnnGzHnE0HS6zmamwGCbuXKxy222x2Gvu2OyvnG+y3LCznDAzHPE + zXfI0HbKznXLzXfNzm7Hx2e/wGrBxXPIzm/Gzme0uZfHvdXu2OL23dbozdTew9jbxMzcyaPNv5nMyZnJ + 04S3yWmguGWjvG+xx3G2xn/Ayo7K0JHJy5PIx5PIxJrQy6HX0J3Sy5LEvo/AvJrJx6LLzpy/ypa0xYSc + tHeJq5GeyKWt3Y2Rxn1/uoyN0Hp6wHNzuIWFyomJz4SEyIuL0H+Aw29wsoWHx5OW1oWHx4GDw4uNzIKE + w31/vYaIx4iLyYGDwoOFxY2PzomLyoKEwo2RzZOX04WJw4iNxpec05ec05yi1qKo3Jmf0pSbzJ6l1qOs + 2pmlz42dx5So0qC636HC26DH2aTQ2aTS16LP16DM15/K05/M06DO1J7N0ZvJ053L3aLR5AAAi7vMjbzN + iLPEjrXGlLjHeZqmcZCZdJGXcoyMepONfZWSgpqecYuSd5SdgqSslL2/otLSmNHOhsjFesPEc8HHcsHN + bbrLWqK2VJqubbbHcb7LaLjBabnDcL7KbLzIaLrGbb7IccPLbcHGaL7CbcTGbMbGasTEasPEa8PIacHH + bbu+jL2zyeLN4vTa4fDU5+zR5eLK1d7Kqcq7qNTPl8nQeK69Z6C2a6nAebzQcrjGfL3Fks3QkMjFjsa/ + mtHIpNjRo9nQms/GkcW8k8S9nsvIn8jKlrvEjau7hJy1g5W3kp3JpKrbm57VgIG9gH/BfX3BcnG2gH/D + j47RhITHfn7Bfn7BeXm7gYHCi4vNgYLDeHi5eHq5fX69gIHAf4C/iIjIfX6/enu8lpfYoKHij5DPk5bS + oKPejpHLhIi/naHWmJ3Rj5XGlZzMmaDPmqHQoqjYoafUmaLKlaLLmKjRoLfbp8bepsvbo83TpNDTn8nO + m8TNn8jQpdDUqtXZp9PWnsvRmMTSl8LUAACFv82BuMeCsMKPuMqTs8ReeoRBV1pMXl1VZV5WYlpVXVhf + aGhNV1lOWl1NW2BPZWdbd3mMsraVxcyBvclxt8hmscVircRTm7NPlKtts8Votr9js7lmtb1otsFksr5k + s79rvMZvwchrvsNpvcFuw8VyyslxyslsxcZnv8Bku8BwvL+IuK/C2cjh8Nnj7dPs7NHq5MjW2MGuxLOw + 1s6Eubxrp7Roprlrq8Bts8Nps72BxcmNy8iCvbSMxLqYz8Kj2Muj2cyZzsGOw7aOwLeXxcGfxsebvsSN + rLqJoLmJmryGkLuPk8SXmM+EhL92drWBgMGMi8yEhMSKismXltaDg8NxcLB+fb6FhMWEg8OIh8eDgsJ6 + ermBgcCGhsV0dLN/fr56ebpwb7CNjMybm9mCg79/gLyRk8yEhr2EiLycn9KVmsuDibiIjruYnsmepNCe + o8+bosqao8eapsyVpcyXq82gvNGlyNWmzdGq09Oiyc2bwsedxcmkzM6p0NKn0NKhzNCcxtKdyNgAAHu2 + xYG5yYO2yoayxpm/0JO1wZKxtpu6upa6toy0sou0tZi8wIanrJSvtJ22uICYl0ZiXl1/fYewso/CyXy3 + xW2qwGynw2KYt2WVtXyzy2y0vWKxtmSyuWi3wGi2wWm3w269x2u7xGi5wG7AxG/CxG3Cwmi/vGi+vmvB + wmi/wW65uoW2rb7Wx+Lx3OXw1e3sz+7lx9XVuLfHsbPWyoK7umittV6ismuuwW64xmq4v3vExYvMxozI + vpPKvpbMv57VxaPZyp3SxJLFuJDBtZbDvKLMyaHFypGuu4OYr4OTs4uWv4mPvouNwpeXz4SFwICAvoaH + xJCRzYyNyZWX0o6Py29xrHV3so2OyoWGwouMyY+Qzn19u3d3t4aHxn19vIODw42Ny4KCv4aHxZeY1Y2O + yYOEv46QyISIvnJ2qYOIupeczI2TwYuRvZuizZuizIyUvJScwqCpzJWewpmnzKG21aK/0qfK1K/V16zU + 0qXLzJ3CxqHHyqnO0afNzabPzaTO0Z7H0afQ3QAAhLfFgbPDeqm7i7rMi7rKhLK/iLe9j8HBiby9g7i+ + jMHMhrbGgau9jq/BqsbVwNriaISGQmVkdKOff7q6ZamwbrXEbrHIUo+tXpKyc6zFcLW/ZLC1Yq60ZK+3 + Yq23ZK66bLbCbLjDZ7W9aLi8a7y9abq7ZLi2Y7e1Z7u6ar6/cLq6mMvFvdvN0eTP5fHW6uvM39q53dy8 + y9e+r9HCf7+5ZbG2XaWyY6m5X6y3Y7O3gMrGiMm/gbyxj8W5lMi7mc7Am9DCk8i6jcCyj8G0mcW8oszI + mr7BhKGseZCkhZWzl6HGlZvGhom5fn6xlZfMi4zCfoC2i43DhYe9h4i+lJXNf4C5dHWuj5DJiIjCfH23 + iInEg4S/eHi0iorGfn25eHizhIS/h4fCjIzGl5jQkZHKgoO6h4i/iozBd3qsiYy9mp7OiY68f4SvkZfC + m6HLjpW+k5rBnqfIjJe4jp29nLHMpcDRpMfOp87NrdXQp87MnMTDocjHqs/Pps/LpM/KoczLmsbKoszW + AACEs7+HtsODsL+SvsyKt8OGs7uRv8KPwMGIvb+GwcSHwsmMw9GFtMaWu8+jwtOZtMFYcnttkJSIs7d5 + sLdsrLlvsMJwrsVdka9eh6h8qsR3t8FqsrVosbRpsbhmrbdnr7pttcJstb9ptL1wvMJ3xMZ3xcZvwL5q + urlqurlsvL1ut7eVzseoz8Oz0LzZ7NHk7MvY17Ti5MLX4serzLpxs6xoubtirLlmrLtuucNwvsF9xb6T + 0Mab0seWysGVyb6f1Mao3dCh1MaOwLKMu7Cey8Gp0syjxsaUsrqLorOMnbaSnb6XnMWWmcWRk8GSlcWO + kcJ5fK2Jjb6VmciNkcKIjL56fa9ydamHib6MjsR8frSEhb2Cg7t0da6Fhr+HiMB6e7N7fLWDhLyGiL+O + kMWTlcuMjsKGibyPk8SFibqHi7qPksOGi7iAhLGOk76XnMiRl8KWncOepsaVob+SocGYrcihwM6ny9Co + z82o0sykzcidxMKiyceq0s2n0cqk0cmgzcmYxcify9MAAH2yuoK1vJC/xJO7wZm6voSeoX+UlYKVlYCX + ln6amXKPkYGdn2qEhXiOj36OjWdzcWZ0cpatrZe7wH+wu3CqvmmlvWulwGGQrmGFoYGrwHy5wG20tWqw + tGuvuGestmesuG2wvmyxvWevuGy0u3fAw3nExXG9vGm2tGe0smi1tmu0s4fGwJPHuJ3FsMXixdvryNje + t+Lnwtfixa/RvXzDuWG4t2q0v3u+zXK5xGy2uIrLxJzTxo7BtYq9tpfJwZ3Rx5rPwpHDtYm7rYy7rpG9 + s6LLxJ3BwImmrX+XpYCSqIqWtJaew5OYwIeIs4+SvZidyJKWwZOXw5CVwJSYxZGVw4eKuX6BsXx/sIyO + wISGuIGDt4SFunx9s3t7somKwH+AtHJ0qIGCtoyOwYyOwJOVx5OVx4WIuYqNvoaJuYeKupiby5eayoiM + uomMuo6RwJGVw5acw5afvpmmwZanw5ivx6DAzqTKzaLMx6PPx6DLxJnBvp/Iw6jRy6bRyaTSyJ/OyJfF + yJ3M0gAAgru9frS3kr/DjLCznbW3anl8S1JUXF1eX2BgWl1eVFhXXmRfUFdNVmBQXGZUXWlXZndnbYh+ + hayqf7K6YJ2uYqK4ZaS8U4yjXo6jdqe2c7G1aq2ta6ywba62aqu1aKm1bK24Z6uzXqWrY6uvcLm8dr++ + b7m4arWybbi0db+7fcS/h8nDi8S6k8Sysdi+yOXE0eW+2erDz+HBudvFdLKnZbCvWJ2mWZilYqixbrS2 + hcO+jcC4hraujL22jb62lMa8l8q9jb+zgrKmhbSomcW7mb+6jrCwiKathZ2rg5SohY+rj5a3lZjAj5G6 + hIixgISsjJC4lJjBh4q1jpG8jpG9dnmmen2qkJPBjY6+iYu6f4GxjI2+kZHDfX2vgIG0hoi4d3mofn+u + j5HAjI29j5HBmJnJh4m4hIW1h4q3ioy5lZjFkZPBgYSxh4m3lZjFlJfDjZS6jZe3jpu5j6G/mbHJoMHP + nsXImMO9ptLJoMzEkr64ncfBp9HLpdHKpdPKodDJmMfFn83QAAB/sbGQv8GOtruQs7qcvMSLq7KKrK+Z + v76QubmMtbiWvL+Ts7SSr7GZubabv7um0cyVxL6Ht7WAtLRvqKxhoKllpbNhobJTjaFZiJ5om6tpp6lm + qaZnqatoqK5qqbB0s7t6vMBtsrFgqKZsuLR/ysh9yMV3wL56wL15vbd3uq+IyL2Fv716r7OAs7SNvrea + y7eu4L2/68TA5sHC48ilxLp8oKNml51moahss7Zjrax0tbSMwcKFtrOFtK2Pv7SUxraUxbaMu7KIta6L + t6+UvbWVvLeWtriMprF+kaaDkqqUobiYn72OkLiGh7OJjrmEi7aEi7WMk72Ah7GCiLOKkLpxd6Jtcp2J + i7eBhLCGiraChbJ+fquEhLGIiLV+gKyGirWAha54f6aRmL+Yn8aHjraTmcGJkLh5f6d9hKuIjraLkbmX + ncWOlLx+haySmL+XncWLkbmaoMmSm8OJl7yWqsiXtsahyc6bx8Om1s2ax8OKtbWcx8aq1dKizsem0smn + 1c2bx8Sj0NAAAIa4so+9u4yyto2xt5e6wYSmrIGnqYu2tIq1tY63u4ywtX6ZnmV8gXuWmI2srZO5uJbA + vo63uIKtsHGhpmico22lsGqhslmJnlyEmnCarWymqGippmqprGypr2+rs3q2voPCxHq8umyyrW64snW+ + unC5tm+1snK0sGmqomqom4bCtn20tH+zu4C1uXuxrYrDsJLPrp3Xr7LjvKnQs6HAtI6trXelqHCrsF6j + o1ihnm6vrIC1tX6urHqqo4e2rI+/r4+/sIm2r4axq4mzq463r461r5Gxs5CptIear4eWrYyar4+Xs42P + toqNtoaMtn+GsIOKtI6Vv3uCrHl/qYiPuXl/qXF2oYiKtoWIs32ArH+CrX1+qXp7p4SFsHh6pXuAqYCG + rXh/poiPt5qgyIqRuY2Uu5OZwYCGroOJsYiPtn6FrIOKsYGIr3l/poiOtYyTu36DrIyOuo+Wv36LsZGl + xJm4x5nAxJvIw6DRyJXCv4izs5bAvqHLyJjEvZ3JwKTQyJrGxKfS0QAAjsG4hreyirKyk7a4l7a6ZYSI + XX59fqGdkrSym7q8i6Gmc4CFRlFUW2hpWmpqWW9ucYuKjKmpkbG0f6SqcJyjdKOucJ+xWYSYWXyUb5ep + cqqtcK2sd7G1eLC3d663fLS8f7q9c7KwYKKeXqKda6+sa6+ta6yrcrKucK2nc6+jjsi8gLi5eq+4fbO4 + dK6pebqmjtSxneG4nNmwlcmph7CjsdrXc6WnY56gb7OvYqiibq2nhLq2fa2oeqiihrSqjbytj72wirav + iLGsibSrjrevjLKsj7Cxkqy3iZyxg5GoiZaskZq1iIyxdnujf4WwhYy3fIKtf4WwgYeygoiyeX+qd3yn + foKtgYSwio25f4GtgoSwgIGtenunhIWxfn+rfoCrh4u2f4OtgYWvkpfBhou1fIGriY64d3ymeH2ni4+6 + hYmzhIiygYWwdHmjfIGrhou1fYGriIy2mJ/Hgo+1kaXEn77Ok7u/mcbCmsvCkb66iLOylb++oMvHlsK7 + mse9n8zDk8C8oMzKAACNv7R/r6aLtLCXurmWtLVXcnJVb2yOqKOjv7qhvbuSp6dzfX9VXV2YoJ+otLGP + oJ1Wa2hrg4OLp6mCpahtl5xomKFrm6ldiZxhh517pLR4rK9zrKt0qq5wpKpsnqd0pq99s7h4sbBvqad2 + s69+vLl2s7JtqqlyrKpyq6Z4sKSUycCBtbdxprB8tLl1s69vtqOE1bCO4LSH06ma3LmKv6yEs62Fublv + qKdkpqBssad5tqyBtq1/rqZ/qqSHsaiLt6mLtqqIsaqGrqmHsamLsaqXu7WQsLCBnKaEmKuKma2GlaiI + kqqPlbWRlryGjLR7gqx6gKqGjLZ6f6pwd6F2eqRwc554e6aOkLyChbB3eKNxcp5+fqqJibWGhrKAgaxy + daB0d6N5fKd6famIi7eIi7d2eaV8fqpzdqJydKCLjbmEh7OChLCJjLiBhK9+ga2DhrJ9gKqFibGXnsaK + l7yKn72gv8+WvcKVwr2YycCPvbiEr66Tvb2gy8eXwruYxbuax72LubOVwr4AAI29r4Gvo464r4+zro+t + qVt0cGV7daC2raO9tZazro6loGx6d1NfWpikn6y6ta3CvHiRi1Nua3GRkIevsHemqnGmrXKptWCSpFqF + mm2YqXisr3atq3eqr3alrHCfqXinsYS1uX+zs3OqqHOsqHewrnKrq3aurnmvrm2kn3Gmm5HFvIa5vH+z + vnSus2Wln3G8p33Ur3/Yq4vhspbivXq2oneropHIw2+no2ysomipnG6om4W3rYSxqIGrpIawp4ezpIWw + o4KrpIKopISrpImuppO2r46trIOdpYGWpoSVpo2drZekuZKZt32DqHh+p4WLtoOJtH6ErnN3oXR3onZ5 + pGhrlnFzn4eItIOEsImKtXV2ond2ooKBrXRznoKCrXh5pW1wnHl8qXt+qn+CromMuXl8qHl8qX+Crmtu + momMuIKFsnx+qoOGsnt+qnh7p4WItYSHsoGFrJOawY6dwIKYs5y8ypnBxJG+uJnKwJC+uIGtq5G8uZ3H + wpTAuJjGuZvIvY67tZjEwgAAi7moibWnlLyzjK+pl7OvbISAVWpjiJuQpL2xmLeslK+jcoJ5WGRbi5qR + oLCnnbWrYX1zY4F6i62qhK2tcqOkcaetZZ2nWIuZWYWYbpuph7q9dKmpcKKndqWsbpijcJmkgq+ze6mr + apqac6ikea6tdaqrfLGxeayrap6ZdqqfjcC1jMDBfrO7a6OnZ6WfdsKqgtuzgt2tgtyriNiweLihZ56T + hbu0isC9eLCpaaSVeK6fi7msibCojK+sjbOshq2hgamdhKqkg6ilgqifiq+kkrWtja2qdZGWcoeWiJmp + j6Cvkp6xiZGtfoSndXujeoCrfoKten2pb3KeeHumeHqmZ2iUbW6ag4SwgYGscnKde3umcXCcenqlfHmm + fHqmg4KubW6acHGdgIGseXqlhYeyhoi0eHqmfoCsbnCbfoCsjI25fH2odnejf4CriIm1hYaxeHukgISs + jpW7jZu+kafBnLzImsPDjLqzk8S4hrWsfKilj7u2l8G7k7+3ncu9lsO3jby0ksC6AACMtqWSvKyTurGJ + q6WaubSFn5tnfXRhdmhmfnCAmYyLoZRve3BdaFuNmo19joFqgnVphnmIqJ6RtK18o6Bum5xsnaNtnqpt + mKdmiZx2m6p+r7Nwo6N3p6x0oqptl6F3nqh/p612oKJwnZ10paR7rayCtbd5rK1+r657rahwpJiTxryD + trV3q7FzqKpinJNyt56O4biN5LOF3aqS4rd1tpxon5J8samRxb+Lwbh1q557q56JsqiHrKWNrquRtK2N + saaFrKCFqaODpqKDqJ+NsqeKraSFpaB2kpZxhpR5jZp+kJyRn7GOmbJ5gKCBhqyDiLJ9gKx6fal+f6uF + h7Jyc59eYItrbJh7eqWDga15d6Nyb5x0cZ12c6CAfapyb5x5d6J0dJ1ycpuFhq+EhK6EhK2Pj7h1dZ97 + e6RwcJl5eqOMjbaBgap5eqN8faaEha2OjreChKt1eqCHkLSKmrqUqcSjxM+hysqWw72bzMGJuLB+qqeS + v7qbx7+YxbugzsCWxLeQv7eYxsAAAIuwoJe8ro6yqYmrpZq7tpOwq4ukm4CXimqAcmB2Zl1uXmJrXF9o + WG15aXWGdYqjkpGvoJW2qYGkmnidmHefn3CZnnigqnaXqGd+knSPn3uqrXerqoCxtnWiqnCZpIKos4Kp + r4Cpq3aiomSTknampXKjpG+io3uurHOmoGqdkoq/s4O2tHmrrnOkommeknm4nZHasI/erIvdp5bgtH+8 + onWrnXGknYK1sJHEvXyuon2nm5C0rIuqpoWjoYuqpoutooWonX6fmnudmX6imoeqn46vpoaln3SPkXeN + mIGVoH+SnJKjsJikuoWMq3uAp31/qoqMuIyPunBxnWprl3FynmlplGxsl3l4pHt6pX57p3Fum357p25r + mH57p3d0n4B/p4SEq3R1nH5+pYSEq319pJSUunh4n3l6oHh5n3V1nISFq35/pXt7on19pH9/po+Qto2P + tnh9ooSMsIOSsoOZs5q7xpnDwpjGvaDSxZbFvYi1r4+7tJO+t5TBtqHPwJfFuI+9tZTCvAAAjK6glLar + f6Obg6ijiq6pe52XjKqhnbaqmrGiobekm62ZoKqZmaORnq6asMawsdC7ocWzlbysgqidf6ahe6Sjc5qf + ep2oc42dcH+VhJuqfautfLKxe62zbp2la5OfdZyneqKnd6Cib5mZcZ+dfa2uapudc6and6uqYZaRaJ6S + e6+khrq1fK6tcqCbe6mai8GjlNOlkNWhjtejk9irh7+mdaiccqKbf66rkMG6h7ashayjja2miaajiaSl + iqijjK6kiayhgJ+bfp6chKWchqqeiKugiqmifpmcd46Yeo6Yf5Obmaq2l6S4fIShfICngIKteXqmcHGc + a2yYd3ikcnKeYWCLbWyXgH+qe3qmd3ShdHGdfnqndXKfgn6qfnulenmhf3+le3yhgYKnhYesenugh4mu + enyhdXabgoSpc3SZfH2idneceXqfgYOogYKniouxio2yeH6jgYqtgpKxfZStmbrDkry6kb+0k8W3kcK3 + jLq0lsK8nMjBmMW6nMu5j72ujLuynMvDAACYt6ubu7F8oJiNsayWubSAoZySsKmct6yMpZWKoo98j3t+ + jnp/j3t/lH+OqZOTuKKlzrqTvayAqp5/q6J0oZ53oaWCprBsh5Zvf5GCmah3paiAt7Z3qa50oql3oKp3 + naeHrrSAqattmZl2pKJzo6J0pqZxpKRvo6BqnphonpKAtKh9sap6rql+q6J8ppaOvqCk3K+e3KiT1p+c + 26+WzLNypZZ0pZ14qKOBsaqLubCQtq6PrqeOqKWLpqWHpKCMrKKMraKCoZyBoJ2IqaGCpZmQs6eaubKC + np93jpiBlqCInKKSo66IlKh1fZp6faR3eKN3d6N6e6Z0dKB0dKBpaZVnZZBxcJx1cp59eqZyb5yBfap4 + dKB+eqWCfamEgKt9fKJ8fqCBg6SFh6mJi62GiKmDhaeFh6lydJaBg6R0dpiChKZ5e514epyChKaAgqSF + h6mKjbF/haiDjK6Dk7F4kKeZvMWSu7mSwbiay72Mu7GCrqiWwbuk0Mej0sSk0sKRv7CNu7KezMQAAJW3 + ppKzo4Ghk5W0poqnmYull4eekG+Fd2h8bmd4a2R0Z26AcWV3aGR3Z2N5aG+Fc4OdjIunmY6uo4Gmnm6X + k3mio3ujqGSGkGyGlGmGkn+nqn2pqXOdnISrrnWanX2fo4KmqXidn3Sbm2qVk3GdmnimoWualH2spHak + mWmWiIe0pIezpoOtpYCrpXiknIe4oZ7VrJ/ap5vWoqHcrZbMrIO6o2ykkW2klHesn4CwpZS9sJS3qIOh + loiknI+tooyrnH+dkIGcl4KemnqakICgk5OyppWxqYadnYWXoI6fp46cpIyXpYKHoGpsjWtrkoB7poF8 + qHh0n21olXVvnXVwnmZgjm5pln96pnJtmW9qlHhxnHZxmX55oYN+pXl2nICAon1/oHp8nn1/oHZ4mnt9 + noGDpHx+oG5wknh6nHl7nX1/oH+AonFzlH6AoouNr4mLrI2OsIOGp4GKqIGTrHmSo46wuI+4t4u2sJO/ + toizq4StpZC7spTBt5bFuaDPwZrHuJXBsqbSwwAAl7yoiq2Yf5+Mmbejkqyado18bYFwdId3jqGTm7Km + kKibm7aokKudk62elKybip+QZXpsaYB0hKGWep6WcJqVe6emdaCja5GYZIaPZYiPhq2tfKaie6Oggail + eJ2bgaOig6WlfqOieJ+dbZaReaSefKiheaachrGldqCSeKGSkbmpkLeqh6+mfaaheKOeiryom9Srl9Gf + ls2cotmrntayjcapd7GZerWed62deKeclr+wmL6pgqOSjaqelbKjjq2cfpyNgJ2WhJ+beJaMgaCUjKqd + iqSbfJKTe4yUjJqjk6Goj5injJCqgIGjdXKadm+Ze3SfhX6qdGyZbWWTdm+db2eWcGiWfXajeXKee3Se + eHKbeXObgX2ihoKld3SXeHmZd3mafH+fh4mpgIKienycenyccnSVcXSUeHubgYSkgIKih4mqdXiYfYCg + jI6uhYioiYqriYqshoypiZuygZyrkbS7lL29j7i0lL23irOsiLGpkb20kb6zksK1nMy/mMW4k7+vqNPD + AACUu6aTuKSLsJyXtqOVsp9mgW9ognCTq5qduKiQr6GFp5iRtaWBpZV7noqRr5yhvKx1kIBceWp1lol2 + nZN4op1/qqhym51xlptae4Npi5CDqql9pqCHrqt9oZ+GqaiJqqmKrKqMsK19op93n5p/qqN9q6GFsqZ8 + qJtpk4V7pJOLsqKKsaSEraR4oZt3opiRwqmj2bCXzJ6QxZei1qui17KZ0K+FvaF6s5txpZZynpWLsqSa + vqqOsJ2IppmLqpuLq5mBopOGpZ2Kp6OBoJaFppiWtaeGo5hpg39vgomElZ2OnqWXobGTmLN1dpdxb5R9 + eJ99d6CBeqR4cZxwaZVsZJFrY5F2b5x6dJ94cpx5c5x5c5t5dZt+ep2CfqGBfqCDhaR/gqB+gZ+HiqiG + iad/gZ99gJ5zdpR9gJ53epiDhqR9gJ6FiKZ3eph5fJqKjayLjquLjKuKi6yFjKiLnrOFoa6StryVv76U + vbiWv7iMta2IsKiOubCQvLOSwLaYx7uQvrGLtqmhy70AAJjBrJK6pYWrl5a6pZm6p22NemiEcZOwnqHA + r4qsm3+hkoOmlX2gjYCgjZCtm5+4pm6HdWuFdn+dj3qcknygm3qhnWyRkmeIjVZxeHGPlH2kooCqo4iw + q3yhnIqtqoqsqomrp4irp3qgm3uknX6poX6qoIe0p3eilG2Xh3qikYuyoYetoYSro3ulm3illJbIq6/k + u5/UqJbGnafWr53QqaneuZHKqHStkHSmlnmjmn6llpa8pZ7BrIeomoSmloOpk3+jkoGim4OjnnqckX2h + koOlloakmXiSjm2Bh3yPlo6fp5CcrIWLpXBylHNxlYB8oYB6ooJ8pHhxm3Nrlm9ok2tkkXVumoB4o3x2 + oHNtlW5pkHZylYF9oYeDpYaEo4WEpIWFpYSFpImKqYqMq4SFpISGpXN1lICBoHd5l4mLqnt9nIeIp36A + nnt9nI+RsI6Rr4iJqYuMq4KIpIqdr4Shq42ytpO8upa/uJfAuIy1rYewp4u2rY66sZK/tpXEuou4q4aw + pKDHuwAAnL+qlrijg6OPm7ikmrWhjaaTepN/gZiFmrKgmbKik6ycjqiWjKaTkqmVhJqHjJ6Leot5j6KS + jaOUgp2SgaGaf5+be5qbZX+EZHl/iqOniKyok720iLGqfqSehKiiiq2njK6oiKulgqehgqujgauhgqyh + hrKkd6KSfKaUdZ2Ki7Ohhamehamhgqqdd6SPkcKisOO5o9SplMCansukotGord+2oNauh7ycf6+efaeg + faOVjK+Ynb+qmLmqhKaWf6SQep2NepySgKKbfKCTgKOUkbKjiqqdepaSgpaciZuhg5WaiJWjjJOqcnWU + fHmbg3yge3OagXmhgHmheHCZamGLaWGLenKcgHmhgHigc22TbmeLeHOVgHubgHuag3+egYCeh4mlh4qm + hYmkhYikg4aijZCscnWRe3+bdXiUjI+rdnmVhomlhIejgIOfkpWwio2phYWjl5a0hoqljp+whaCsi6+z + lLq6m8O9m8O7kbevirGpjbaukby0lsS7m8i+j7muh7Cmpc3CAACKnIiEl4NwgW17i3d9i3iBjnt9ind6 + h3SAjXyCkYF/kH9vgm9qfmlvgWttfmd9iXR9inaImYeKno+En5GFppyJqaSDoqB0j5Jyio6Io6WUubSX + wLaKsamJraaNsKmQsquUta+KrKaEqqKLsqiIsaaOuq1+q5qBrZt1oIxynIaQt6KCp5qBpZmBqJh5pIuX + xaK25bqn0qmTvZegyKOhzaOv3rOs37SZzamGtJ+CqaCJrZ6TtJ+ev6ugwrKRs6KFqZR7n414mpB6mpSB + pJeWuamYuqqQr6J9mJJ4jZCIm6CKnKKGk6B+hZ12eZh2cpWAeZyEfKKCe6B8c5t4b5h1bJRqYop0a5KK + gamCeaB3b5Nxao11b4+GgJ+JhKJ9eJWEg56NjqiKjKeKjKaKi6aIiqSIiqR+gJqAgZx7fZeCg56EhqCI + iaSIiaSAgpyPkKuSk62GhqGRj62Gi6SQobGKpK6TtbmVvLmZwbugx8CXvbWRt6+SurOSvLaZw7uZxLyN + uK+WvLWexLsAAJ6smJimkYaTf5GfipShjpGdiZahjZ+rl5unlJGfjJCfi4KTfoWXgYuehpKji5mokY6f + iImbh42kk4Wlloasn42zq4OopHyennSSlX6enZW8tZa/s4yzp4iro4mro4iooIqro4Omn4CmnIOsoIKt + oJXAsIOwnYiznnOchnuii460n4mtnYqtn4asmYSrkqPNqrvnu6bQpJm8l6nMp53EmrHdr7bouaXZr5PB + pomvoIWmloSkj46tmpu7q5K0onyfim2Oe2+Ng3COhneXio6unZS0pIiomnWNiXeKj4ean4eWnIyWo4GJ + oHN0k3hzk4V/oImCpoV+oYJ6oH51nHlxl3Vsk3tzmYd+pHtzl3hxk3ZvkHRujYB6mI6JpY2JpYyKpIuM + pYqLpImKo4eIoYmKo4SGn3+Bmnd4kYaIoXt8lYSFnoGCm4mKo4iJoZOUrZSVroWFn5STromPppKjs42m + sJa2upO7t5K4spm/uJa7s5K3sJO6tJO9tpjBvJfAuoy0rZzAupe6swAAr8myscqzorqkqcKsp8Cporuk + pr6osMiys8izscSvssWwq8Gqqr+nobadm7GXp7qhpLeglqyWlK6ajbCfi7WmjLisgKmkdpyacpOTgKOh + kLaukbqtiK6igaaZhKeciquhiqyih6ifhqughq2gg62elsGwkLunhbCac5yFfaSLhauUjrKglLeni6+d + iK+Wo8ypuOC0psyfnb6WrcymkbWNqNCmu+q7suO2oM2shq6Yd5eGeJSDgp2NlK+hm7mohqWQcI58dpGG + e5ePgJ2Qkq+fk7GghqKTcomDdYiLiJecjJibkpumhougb2+Ld3GQf3iYhX6gg32efHSYeHCVfHSYe3OX + fnaah3+jgnuegnucdm+Oc26LeHOQiYSfioagiYigkpSrlpiwj5Gog4WdfoCXhYeef4GYe32UhoiffH6V + goScgoSbiYqihIadkJKplZeuioqhlZOsiI2jj6CuiaOrk7a2lLq2k7eymLy0lLixk7axlry2mMC7nsbC + ncXAkLaxnL+5mbq1AACixKumyK6ZuaGgwaihwaifv6eixaypzLKsx7CkuqSWrJWLoYiLo4iDmn6BlnqN + oIWEln6Bln6MpY+PrpyUuqmVu6+Cp6JzlZFph4Z3lpOTt62Qt6mGq59+opaKq6GYuK2QsaaFp5yGqp2E + q5yFrp+RvauUwKqIs5x6ooqFrZOQt52St6GUt6OJrpqCqJKXv5+w2Kus0KClw5mtyaKTtI2myqK/67u1 + 5LSm0quDrI9ukHx9l4p9loh6lYWWsZ2RrZZ8mYZ3kYd7lYyEnpKVsZ6Trp2EnI50iIF9jI6Om56NmJ2Z + oKyQkadyb4xybYuIgJ+Mg6N/dpaBd5mEep56cJR+dJeMgqaEe55/dpeJgaCBeZeBeZd3cIuFf5iNiKGK + iZ+WlqucnbKYma6PkKWDhJmLjaGAgZZ+f5SJip98fZKBgpeFhpqNjqOHiJ2Rk6eZmq+OjqSYla6Ok6aV + prKPp6+YuLiVubaVuLObwLiUt7CRs62UubOWvbmdxb+bw76Ps6+Yu7eVtrIAAKS9pqfAqZexmqG7pKO9 + pqK+p5+8o5CslIafiIKXgHmPd3+VfZCljI6ih5CghqGulJ2okIWTfH2PeXSKeXWQgYSgloSfmYCVk3qK + jICVk4iqn4qzoomuoHufkoCilo6to4amm4WnnImuooivoJO+rZbCr53KtZG8pnyki3mgh4Opj46ympa4 + oouum32gjouvkajOobPVpqvInaS/mJm3k5y+mLLcrqzbqbDetJO8nXaWgnaQg3eOg3yUhoagjoyokoOe + i3uSiYCYkI6nmZOsm4ymlYKZiniKhIaTlZKdoY2WmqCkr5iXrnVxjnBqiYV+nYiAn4N7moF5mXtylHpx + k350mIZ8n4d+n3lwkYV9nIB3loeAm3JrhYN9lpGNo46MopeXrJmarpycsZqbsIaGnIuLoX5/lIaHnImK + n3h5jnx9koCBlo2Oo4eHnJGRppqar42Oo5eUrZGVqZusuJOsspi3uJO4tJS4saDEvJa5so6xq5S4s5W6 + t5rCv5rBvo2wrpm8uJW2sgAArcixr8iyorulpLymrsWvoLagj6OOhZiDiaCKl7Gak66Wnbigrciwobmi + obmhscews8Swq72poLSiip6Re5CHeY6Ig5WTkJ+ghpOWlaWlkayljq6jh6eceZiOg6GXlrSrk7Kom7mv + n7+yk7WmncKwmb+rmsCrlLmigaaNia2Tl7meoL+jpcOnl7WegZ+Kjq6NstKkudalqsSWn7mSmrSWm7id + qsimu9qy0+/FwtqxoLOSipuFg5eFiJ6PhpuMj6KPk6KRgo6ChJKHipmOjqGUkKaZiZ+RfpKIiJmRl6Wf + l6OgnqaqmZ6sfICTeXeOgn6Xj4yliYWggX2Zg36af3qYgXqak4yqjYekdW+Mh4GehH6ahoCadW+GfHaN + j4yhlpinnKCtmp6rl5uplJimio2clJWnioqcioqci4yehYWYhYeai42gjo+jgoWYjI2hlpqtkJiplaKw + k6SwnLO7k6+0lbe3kbSylbq2n8O/nL+6lrmzlrq0m765oMO+nsG8nL63mrq0nry2AACmxrGjwq2fu6ai + vKezyLWZrJmJmoierpynvamfvKeWtaCWtJ+oxbGat6OfvKirx7Wpw7GjvKygt6qasaaTp6GCk5GBkZGR + nqJ5iIuImZyVqaaTqqWRqKOLopyXrqqkvbaXsqmUrqWXsqaPq52Xs6ScuaicuaWat6KHo42Pq5WQqpKn + vqK4zrCiuJ6EmoOSqIq4z6W806Otw5GkupGgtZ2it6efsZ64x67b5MDg5LnGy6CjqoeIlXqBlYWGmYuL + loWXno6JjX6BhXl8hHqKl46RpJqIn5J8k4ODmIaZqpufr6WbqKeYpKuFjpt4fYyChJWJipx/f5N9fpKA + gJZ5eJF/fZaSjqiGgpx2coyMiKGDgJiBe5KAeZB9d4yKh5mRlZ+Yoqifqa+cpKuQl5+HjJSQkp2RkZ+T + k6GQkKCMjJyDg5SLjZ6OkqOKj6CSl6mTm6uRoKuZsriVs7abuLyTsrSYt7iStLSZu7qbv72cwLyavLeX + ubOfvrigwLidu7OjwLeVsaigu7IAAKjEsJ65pZqzoKe+q6m9qo6gjYyciam3prLFsqe/rJ+5pZ64pK3H + s524pKK7p67Hta7EtKG3qJ2ypZ+0qqK0ro6fmnuMiYiXmXuJjISVlZuvraK2s6S3tJmuqpquq5qwqoad + ln+Wjoykm5CpnI+om5WuoJOsnJOtnIKbiYKbiX+WgaG0mr7Nr6Kym36NfomZgbLAnMvZrcjUobvHm6y6 + nai4ppell5yol8PLruHkvt3ctLu5ko2TdX2Oe4qai4CKeZKZiJidjoSLfn+Kfo6dkpmrn5ClmH+Tg4eb + ip6wo6OyqaOysJ2qsJCYpJSZqJOVp5SVqJCSpYmKn4aHnImIn5GNppuXsZeSrYiDnZiUrY6Ko5GLooyG + nIR/lI+Mn5SXpJ6mrqewt6mwuKKnsZKVn5CSnZOToaSksqSjs56crJWVpZucrJ2fsZibrZ+jtqWrvJyq + tZeutZKtspeytpCtsZe1t5CwsJS0tJCysJi5uJm8t5m5tZ6+uZu7tZi2sJq3sJWwqaC7sgAAp8Ctorqn + m7Geq7+sp7qmjp6NkJ6Mq7imuMe1r8KworWim66bpbimlqmWnLCdrsGwsca1o7ioorWopLasobKqh5iT + cYF+hJSTiZiamqmrq7q7qbq5orOylqelmqupoLKvkKKeip2WlamhlKmfkaWal6ygkKWYkaaZgpiKf5WH + e49/pbOaxc2xnaeUdX52gIh5pKqNzNCn09WgyMmYtbuZucGsoayilJ2Wr7Sl1dW65+G6186ipqSBhI94 + jJiGgYl1jpSDo6iZjJKFgIx/j56SqbyuprmqiJyMjqGQpberpbSsp7Wynamtk5ykl5yplJimkJKjj5Cj + h4mcfX+SgoGXj4ylmZavlZCriIOelZGqiYWekYuhjoifgXyRhIGVk5Sko6i0pKq1oqiyoqWvmZumlJWg + jY2bmpqooqKwnJupkpKhl5enmJmqkJKklZiql5yskp6qma20layym7K4la+zm7e8lLG0lrS2krGxmbm4 + mbi3mrm2oL68nLq1nrq1nbiznbaxpsC6AACovqyyxbSjtqWtwK6vv66isJ+appalsJ+1wrK0wrKksqGc + qpijsaCSoI+Zqpivv62zxbSouququ66er6OSo5mLnZWGmJOWp6SNnpyVpaWhrrCms7antbWeqqqhrayn + tbKbqKSYpZ+ir6ibqaCcqqKot66hsKegr6eQopiHmI6CkoaxvKXM07aYno5weHSBhX2en4jJyKLZ1J3R + zJe/v5jEybGps62RnZ+gqKLGyLXj27jg0qO8tYyTmX2Jk3uPlX+OlH+jqZiSmYqAinyToJOqu66mt6mH + mIqRo5SwwbSqubKrubaZpaaOmZ6NlJ2XmqiPkqCKjZ2Ji5x6fI55eI2OjaKbmbGSjaeKhZ+SjqeFgZqV + j6WSjKOAepB/e5CMjqCjp7eprbyfoq+anKmYmaaSkZ+Dg5GMipibmKeVlaONjJyVlaSWmKiNj6GRlKaR + lqiKlKORoKuTp66dsbiZsLaetryWsLSYtLmWtLafvb6auLiaubigvryeuremwb6fubWdtrKhurYAAK3A + r7nLuqq8q62/r7LCsam4p52qmpegkqOtna24qZqllZKejaKtnJqnlaOxn7TBsLXFs6e3pqCwopanmZKj + l5usoqKyq6Ozr46em4+enKe1tKu4uqy4uKWwsKKtrJ+pp4+Yk5SclqeuqKKqo6ewqbfCu6+7tau3sZmn + oo+emIWUjKu3ocXNsJGXiW5zdISIhJ6ejcrHpeDapN/bocTDmMzPtKu2sZCgpp2qq7S6r9XRsN3Pn8G4 + i6mqiZSYfZSYf4+UfqitmqKqmomUg5qnmKKyo5ammIKShZOkl7LDuKy7tKy5t52np4+Zm5CWnZygq5SY + oo2QnIyPnXx+j3R0h46MoaGetZKOp4yIoZaSq4iEnZONpJeRqIJ8k4aCmIyLoZ+gs66xw6ipupubq5OT + opOSoImGlJCOnJeUoZSRn5COnpiYqJybrZWXqZeYq5eZrJCXp4+ap5Cgq5yrt5mrtKG0vZmvtpu0upi0 + uJ+7v5q2uZy5uqTAwJ+6uqS/vp23taG5t562tAAAqbuqrL6tqLmprb+utMW1sMCwr7+vq7mppbCgoayc + jpiJgox9mKOUmaWTm6mXoK6cnKqYlqWUlKSTo7Olr8CzqLmtn7Cnl6efk6Kcnq2prLq5p7W1prKyprCv + qrSypKypjpWPk5qTpq2moamhpq2mtL23sry3rrm1nqyom6imi5mSnKeUwMmvlp6Sb3R2hYmHm5yQv7+g + 29il3tqiyceZ1Ni5sr+4lqmsnbGxnqyjuruf0caZvrOHsq6JoKGBiYtvi493rbOgr7injZmGipaFnKqY + laSUg5KEk6KXrLyxqbixrLm0prGukpybm6GloqivnaOqk5ehi46beHyLb3CBjIqeoqG1kY2kjoqinZqy + kY2lkoylmZOsfniQhoKXjoqikJCmoKC0qKe8mZmrjIqck5CgjIqYmJail5WhlJKelZOhmpmonZ2unJ2u + mJirlZerl52ulqCvlJ+tm6e0lqSworK+na+6n7S8m7K4m7S5mLK2n7q9qMPFo72+obq7nba2qsLCpLy7 + AACsv7CxxLWrvK6uv7GxwrSsva+vwLKwwbOzwbS5xriotqigrp2vva2ksqCfr52isaCfrp2mtqSuvau2 + x7a2x7mnuKujs6ihsKeYqJ6cq6Wquberu7msurimsa2rta+wuLGhqaCorqOrsqaWnZGlrKK6wrq6xL61 + wbyhr6yaqKeKmZWRno3Fzrejqp5udHOGi4mZnJKxspnW1qnW06HR0KPR1bW9y72bsKubsq+dsKigpY+7 + so7Jv5fAuJGvqIaHh2l7f2WhqZSwuqaRnYmKloKfq5icp5aGk4SWpJmxv7avvre0wbqrtbCXoJ2epqap + r7Ojqa+aoKiOkpx1eYVwcYKRkaSop7uXlKqRjaSdmbKQjKWSjKWXkap7dY6AfJSSj6mVkq6bmLOopLyk + obaXlKeWk6ORjZujn6uhnamZlqKXlKKbmaign6+gn7GcnLCYma2Zna+co7WcpLWhqbqeqLeerbqdrrqh + tL+kucOetLuasbeiu8CqwsanwMKkvcCgubqlvL6jurwAAKe6q67Asau9rq/Cs7PGt67Bs7HEtrPGuLTG + t7jJvK2+r6e4p7fIt6y+q6u9qrTGsrjKtrvMurfItrTGtK6/sKi4qrC/srTCt6a0qZ6tp6u8ua2+u629 + tqW0rKy5r7W/s6iypKy0pbG4qaKpm6+3q8DKvrbBuKi2sJemo5ytqqCvq5qll8fPu6yvpXFzcYSIhJOW + jKGjjc7NqdDMoszIoMnJqMfSvqq9sae9tKa3rZaciq2ojMvCnczAmNLJo6yqipSXfrW+qcTPvJ6qlY+b + hZumk5unlJKej6ezqbzKwrK/urG+t6q1sJukn5yko6ivsaSrr6GnrZKXoHR4hHZ3hpybrayrv5mWq42J + oJiUrY2KopKMpZeRqn13j4aAmpiTr5aRsJiUsKaju6ijup2Yq5mVpJOOnaairqWirZ6apZeTopuYp6Kg + sKOitKCfs5qZrpqbr6Kkt6Gmt6CnuKGpuZ2nt56ruaGxvKa5xJ2xu5yxuKO6wKa/xKe/w6W6wKK5vaG3 + u6O5vQAAqb2vrsK0qr2vsMO1tcq7sce5s8m7sce4r8W3tMq8p76vormntMq4qsGtqr+tssmzuc23s8ey + rcGstsm1u868uMm5uci6tsW3rLmurb20tcjCsMW/rcG5q7yxtMO2tsKzo66dpK2cucGuuMGvtb+vusS3 + q7isobCpmKmjorSxqry4pa+jvsGxp6acfnt3jo6ImJqPoJ+Pysaq0Mypz8ejzcem0NW8uMa1rsCypLSn + lpyLp6CLv7KR18eb+e7E19Syp6uOtb+puMWyk5+KhZJ7maSPmqSRjpqLprKovcrEtsS+uMO9sbyzn6ih + n6ilrLSzp6+xqrC1m6GoeX6IfX+NoKCxqqm9l5Wpioeem5ewlpKrnpixn5myf3mSh4GbmpWympS1m5a1 + qKO+p6K7oJmuoJqrlJCepZ+sr6q1o5+pm5ehnZqnpKSyqai5paO4nZyxnp2xpqa6paa6n6O1pKu9n6e4 + prDBorC+pLbBnbC7obW+p73EpLzCp77EprvAprzBn7W6qL7EAACvwravwraou6+swLGyxrevxLWwxbes + wbSrwbSzybqswrKpv625zryxxbKtwa6zx7S0yLWzx7SuwbCyxbW5zLu4ybq2xrmzwrSuvq+2x7i80MSx + xLetwLOxwLG4x7a2wrCfqpicppWnsqCfqpqbp5qntKmnta2quLKhsKycrKmHlpOYoZmws6acm5KGhX6T + ko2dn5ilppjEwqvQy63WzqnVzqrPz7O8w62uuqqYppmMkoWXk4Oon4XQxJ/8+M/i4bmtsY2mrY2pspWQ + l3+QmIOfp5ObpZSCj4COnI+yv7W2w7y9yMK3vrmgpqSkq6yttbiorrSrsbefpKx+gY1/gI+cnK2pqLuf + nrKOjKOZl6+TkaqXlKybl7B/epKKhZ+alrOblrabmLainruloLqhnLGfm6qWk56hm6ayq7ipoa+cl6Wc + mKelpLKqqbqmpbecnLCenLKmprqjpLidobSjqbydpbeksMGisr+gsr6arbmftb6ku8KiusCmvMKjuL6k + ur+ftLmqvsIAALHCt67As6y/rqzArq/BsLDEsrDDtK7AtLPEtrrLvLjJt7TDsrvHtbvGtbO+rbrFt7rI + vLbHu7XFvLXHvrbJv7rOwLzQwLvNurbHsLLErsTVwb3NvMXUwcfWwMDNt7K9qZunlJGcjJ2pnZ2rpJCf + mqKzr6u7uai1tJKgn4+cm4WPjJ2loK61rqClno2Ri4qQi5qhnK+zqLy9qc7KrtfOqObft9TRr8TGq7e/ + rpqlmoeOhIuMgp6djMvKrvb1z+rsvtTVo7CwfrGxhaGhgZ2dh6OomLfCtZSkloSWiLHBs7fDuL/Fwr/A + xaeqsqSptKivu6SotaaptaSks46NnYeHmKGhs6+vwp+htJaarZ6iuZeaspGTq5uasn16lImFoZuZtp6f + vZmaupuauqyqxKurvJucp5+epaWjrLGsvLCpvaSfsp6crKemtK2uuqantpybr6GftaqqwaSlvKWqvqGo + vJqlt56tvqe6yaK5xZu0vp24v6S/xanDyKnDxqjAwqe+v6q+wKu/wAAApbatrb2zscS0rsKvrsKvs8a0 + s8W4qrqwqLqssMGwpbekna2Yqbaisr2qtL6svsm5v82+ucm9t8i9t8q/uM3Cu9HCvdG/vNC6ucy1uMqz + wNK+ucq4vs25xdO+zdvFxdK9q7ilpbOlsL+1qLmypbezq727pba2obGwj56dl6SiqbSxtLu4oqmjmqGZ + k5mPh46GnKOer7Ssrq+fv76j0Mmj6eK43tu3vr+ioamYk5uUkZeOkJKFn6GOy86z6+zH7e/B4OGvu7mH + u7mNsK2Nn5+Jr7Skx9HEqLepmaqbtcW4tsO4ucG9u7zDqqy2nqSvoqu2oKazpai2qKi3l5emkpGipKS2 + rK/An6O1mZ2woaa7mp+0k5WsmpqyfnuVi4ajnpy6oKG/nJ29nZy9p6fAqaq6oKOso6WqrKu0r6u7rai9 + pqK2op+wqKi1rq64qKi2n5+yo6O4q6zEpajAoqm9nKW5mKa4n7HBprzKobvHpL/IqMTLqMXKqsbLrMfK + rcbIrsTGrsTFr8PFAACdrqWqu7Czxbaww7Oww7G2ybi5y72wv7WnuKupuqiktaOdrJeksp2ns56ns5+3 + w7G/z728zL66zL+6z8G80sS+08W/1MG/07y+0bq90Lm3yreou6mmuKevv6y8y7a2xLGYp5WImYmVppuk + t7Crv7qgs7GLn52XqaiVpaSdrKqwvrq0vbqQl5KTmo+dpJWQloulrKezubOnqJ6ysZvIxZ7g3LDa2bK1 + uJqXnY6WnpidpJqXmoiipY/Mz7Pe4Lzm6L3l5LW9u4y+vJK1s5ShoIu2u6vN18q4x7qsv7C6zL66x7+1 + vrqxtrmnqbOfp7Kmr7mjqrSnrLarrbqenayYmKijpLaqrb+jp7qbobSmrMCfpLmXmbKenraAfZaLiaOe + nrygosCdnr6cm7yhoLqmp7ejpa+kqKyur7evrLuwq8Cpp7qmpLWqq7iur7qpqbekpLenqL2ssMaorcWg + qLyYpbiaq7yjtsenv8ymwMyoxs6qyM+px8yryMyryMutyMmvx8itx8atxcUAAK29tbHCuLHEtq3Ar6y+ + rbHEtLnLv7zMw73Pwb/Rv7fHtKe2oaW0naKumKCslrK/q7/Ou7zNvbvOvb3Tw77VxL/Vw8DVwcDVvcLW + vcHWv73RwKC1ppermpirmZ2unKS1o52tnoudj42hlaK2sKi9upmvrJCmpKm9vJaop4ydmay7t7K7uYmO + iZGWiKatl52jk6mwqrG1tK2uqqqpmsK/m9XTpt3dtMHDpZ6jlJWblpyilp+lkK60nMrOtNXYt9nbstzd + sry7kL+9lre0lqemkb7Csc7WysDPwrfJvL3OwsDNx7jAvrC1uKqutaKrtKy0vqmvuqqvuautup+frZub + qqSmtq2wwamuwZ2ktqevwaGovJygt6Klu4KCmomIoZ+gvaKlw6Ciwp2ev52dt6WnuKeps6Omq66wuK6r + u7Gtwq2rvqmouaytuq6xuqqruaipvKutwqywx6uxyKCqvpmnuqCzxKa+zafBzqjEzqTEzKPEyqjIzKzL + zqzKzKvJyqzHyKzHx63IyAAAtMS9tcW9tce5tce3tMe3tMe2tce7uMjAwNLGxdbFscKum6uVl6WPnKmR + o7CZuMewwdK8vM67u869vdLAvdXDv9XDvtO/vtK7wtW+xdjDzOHStsu9us6/s8a1nq+flqeYkqOVfZCE + eY6Dma+ossjFo7q3kaelqL26nK+tlKahs8O+tb67i5GLkpeGqa+ToqiUp6ylq66tsrOyqqqcw8Ogz9Cj + 19iuvL6djJB/dnp0g4l7pauTwMatyc+31Nm70tOw1dSuvbuUv7uZs6+UrayYx8m70NfLw9DEusvAvMzD + wtDKusbFtby/sbe+n6ixrLa+qrO8qK+5p6u4nZ+sm56rp6u6sLXFrLLDnqW2pay/oqm8nqS4p6q+hoad + h4aeoKG9pqnHpafHo6PEnqG7p6u6qq63pKitra+3q6q5sK7Cr63Aq6q7rq+7r7G7qau5qau/q6/Dqa7F + qbHIoKu+m6q8o7fIqcHQpsHOpcPNoMDIn8HHp8nNrs3Rr83QrMrLqcfIrMjIrsrKAAC3x7+6y8K2yLyz + xre5zL29z8G8zsPB0cnG1sy7y76svKytvKmntZ+wvaaxvqfE073J2sTC1cG/08G/1MPB18fD2MjC1sPB + 1cDE18HH2sa+0sa1yb++0ca0x7muwLKhsqSTpZiQoZaVqJ+pv7mxyMShubaUq6mMop+QpKKgs6+uvril + r6mMlIuXnYerr5CorZatsam1uLe1t7ixs6jQ0rLZ27DJyqG+v52io5GLjoWIjX2epIu9xKrK07nV2sHV + 2LnMyqrLxqXGwaK5s5rJxrLS1MbIz8PAzcLC08rE1M3B0MvAzcy8x8mwur+gq7KuucGvucKrs7ukqbOd + oKukqbSssr+ttMKwucimrb6gqrystMagprqprcKRk6eFhp2doLuorMqkp8emqMinqsSprb6rsLqus7iv + srqtrLuzscWyscSurr+ytcG0uMKtsb+rr8OvssaprsWosMelsMSiscSmuMmqwtGpxNGhv8mhwMmixMqk + xcmszNCy0dSxz9Csycqqxsarx8cAALPCvbrKw7vMwrjKvbvNv7nLv7TEu7jIwbzLxKu6sZinmpyqmqez + obfDrbnEr8TSvMfXwsHTwMDTwcHWxr7UxsDVx8jbzMzdzcTVxLjKu7vMw77PyLvMwrLCtrbFubfEubrJ + vrnIva2/t7DEwKq+u5GnpoOYloOXlJCjn6W3saa1rpehmYyThpWbhKmtjrW5orm9tLrAvcLHyLS5r8TJ + q9jas9HSqsTEoq6vmZiajI2SfqCnjLzGrMPNtsnRudTWvMfGqd7avd3WvNjSutvYxtTVyMbMwb/LwsDQ + y8LSzsDQzcLPz73KzLK+wqOwtam2vK23wLC3wKWqtJyeqamtubG4xa22w7C6x6SuvZ6quqq0xaGou6mv + wpCVp4SGnJyeuqWqyKKlxaSmx6aqw6mtvquxu6+1urG2va+vv7OxxbOyxbGwwbO1wbS4wa+ywK6xxK2x + xqesw6uxx6axxaOyxKS2x6e9zajCz6TAy6LAyKLBx6XEya3N0LbU1rbS07DLzKvGxqvFxQAAprWxscG6 + uMm+ucu+vM7Bu8zAtsW9usrFucjErbq2rruzsr+ztcGyusazx9K/zdrHw9K/wNHAwtbGxNjKxtvPyN3Q + ydvPxdbKwtLEv87CucjBusnFxdPMsLy0mKOZnqieoa2kqLavqbeymKmmnbCtnrKwnLCumKuoiZqWmqqk + pbSsmqaaj5aFjpN7oaWIvcCqub+zp62psbi3pq6mo6aPxMal1NWwzcypvb6kqayWn6WMt7+j0dvB0NvF + 0drD2t3FxcWr4d3C5uHH6OHM4d7L19fKytDGw8/HxNPPxdbTw9TTxdbVxNPTusnLq7u+q7m/sbzDt8LJ + qbC6nKGsrbS/ucHNtb3Ktb7MpbG/n6y8rbjJp7DCsbfKlpqsg4ebnaG8qbDNpKnJp6rKqK3GrLLBsbfA + tbvAt73Et7fHuLbKtrfJtbfHtLjEtLjDsrfFsrfJr7PIrK/GsLTLrLbKp7THp7fJq77OrMTSqsbQqsfP + qcbNqMbLrszQt9PWutXWt8/RtMzMtMzMAACsure2xb+5ysC7zb/B08bC08e+zsbE086/zsqlsrCUn5uT + n5auuK25w7TG0cDH08LE08LF1sfE1sjD18vG2tHH2tHA0cm6ycG+zMLG08vF0s66xcO9xsO6wr2rs6yr + s6qgqqGeqKGyvrmuvbqVp6OJmZiMnZugsa6GlZKOnZiksqigrJyNl4KLkXeho4a+v6rBx7mttq6yu7i1 + vra5u6jCw6fLzKrDwp+8wKG5vqLByKvY4cTe6NDV4cza4c3T1sK+vajDvafg2cLr48/v69jf39HM0sfG + 0crG1dLF1tTC1dTF19fG1tW9zM6xwsWywca1wce5xMqvt76gp7Crs725w8y6w863wc2msb+frLuvusqs + tMa2vM6YnbCBhpqepL2stdGmrcynq8yprsarssKxt8C1vMG4vsW7u8u2tsq1t8m3ucmxtsKvtb6yucWx + uMqvs8iwssmxs8ustMepssWqtsiuv8+vxNOqxdCtyNGsx8+nxMmrx8y0ztG50tO50NK5zs65zs8AAL3L + ycPRzsDQx7zOwsDRxcDSxr3Nxr7MysPRz7vIx6KvrZaim6Wwpqy2qcbQwczXx8rXx8vbzcrcz8TXzb7R + ybzOx7/QycLSysDOx77LxMjT0LzGxJKclq62r7rCuaOsoaatpbO7tbnFvsPPzbfFw6Kwr5Wkoqq6t4aU + j4qWj6axp6KtnI6ZgZidgqinjra1oczPwcvRyMTMx8fQx9PXxM3NtdTRssjFo7y8nLe7nMjNr9zkyNHb + xMvXxN7o1tncydLSvru1ouXdyujhzu7o1uTl1dLYzMrVzcvY1MnZ18bX18ja2sjY18DO0LjIy77M0brG + zLnEy7S8xKastaiwurnCy7/J07nD0Km0waGtu7G8zK+4ybnB0pqhs4GGnKKowrO61qqwz6qvzqqwyK21 + w7C5wrW9w7rAx7y/zrW2yba4yri6zLG2w6+1wLO6yLK5y7C1ybW4zbK0yqyyxqqxxa25yrTD1LXI1a7F + 0K3G0KvGzafDya3IzbnS1b7V2L3S1LrN0LjLzQAAt8XExtXTuMfBqbmwo7SqucnBw9LOvcrIvMvJvs/L + w9PMw9LHvcm8xM+/y9XEvce2tL+uztvNzt7SxdXMw9XMvs/KwdPOxNbQvc/IwdHKw9HNp7Kvl6Gapa6k + jpWLjJOJsbitw8rCv8jBwMnFvcfFsLq3pK6rrrexiJCJgId+rbOooqqYi5J6mJmDpaGOtbGfx8W1vb6w + xcu9x86+0NG/x8Gu4tS/3MqyxrWdzMCny8muytO31eTL0+TQ1OLR2eHR2+DOzcy6w7+u6eXT8u/e6uvb + 193QztbL1ODX0+Dby9jWzdva0NzcxtDTvsbKwsrQucDHvsXMsbjApay0sLbAu8LNwMjUvcXTqrLAp7C/ + rbXGtbzOvcTXkJepiI6kqKzItrnYsrXSr7PMrLHGr7bEtb3It8DJtr/IuL/MtLvKsrjJsLfIsLbIsbjJ + sbjKrrTHsbbJt73Qs7nMrrXIq7TGrrvLtMPTtcbTr8DMsMXPscfQrcTLssnOus/UvNDWvM7Tu87TvM/S + AADD0dC+zMqhsaqTpJqYqZ+1xbzD086/zMu9zMm9z8nC0snD0sbAzL7K1MTS2snK1MPJ1MTS3tDN28/I + 2c/D1cy3ysS5y8e+z8u8zcbG1c/C0My7xsOnr6mfp52do5qgpJyiqZ+yurHEzcbDzMjEzsvCzMmvubai + qqV8g3x3fnWxt6ymq5qLkHqamYSkoIyzrJq/u6mrqpm0uafCx7TExbPDvarj1MLkzbzMtqLLuqTHwafG + y6/U4sjX6NLX5dTh69jc4c/Cw7Glo5HNyrjv69vy8uLf4tXQ2MzU39TV39nP2tbS3dzT3d3J0tXHzNLK + 0NfCyM/DydCxuMCpsLm2vMa/xM/ByNS8xNGss8Gor8CqssPAyNrBydqEi56RmK2xtNC4uNi3uNSztcyv + s8ayt8W4vsq7wsu4wMq7ws64vs21usyzuMq0uMu1us21us2zucywtciutMezus2zus2vuMquusqywNC3 + x9W6yte3ytWyx8+xxcy1yc+8ztW+0da8z9S8ztO/0NUAAMXR0cTQzr3MxbnJvrnJvr/PxcTTzsfV08bT + 0cLRzMXUy8jUycrUx8zWxtDXx8/YyM/aytDbz8vZzsXWzb3Ox7rLxcfX08rZ1LzNxcDOyM/Z19be3cTK + x7G1sK6yrKeqpZyim7C3scvSzsTPzbnGxa+9u5mmpJShnoyYkn6IgKKroaGpmo+TgZ6ciKegjLStmc7H + srq3oq2xna60oLS3pLu6qNrOvt/Ovs67qMe2oMa7o8fEp9TZvuLu2eLu2+bu2s7QvbOyoJ+di8K/rvPw + 4P387ejq3dXc0dLc09Tg2NLe2dXg3tPe3czV2M3T2NHW3crQ1sPIz62zu62zvLvCzL/F0LzDzrO6x661 + wq20wq20xMXM3bK6y3yDlaOpv72/2ri417m51ra3z7K1yLW6yLvBy73EzbzCzL/F0b3D0Lq+z7i7zbm9 + zrm90Lm90Li8zrW5zLK4yrS6zbK5zK+3yrG8zbjE1bvK2LrL17nL1bXI0LPFzbfJ0L3P1sDS18DP1b7O + 1MHQ1gAAxNDOws3KyNTNxdPIxdPIw9HIxtPNyNPRvMjGtMC7ucW8w83C0drO1NzO0djK1dzNz9fKytXK + xNDIt8W/p7Wxqrm1w9LOxdPPr723q7ewq7Gwv8PE09bVxcfFrK6ql5mVnqGduL65xc3LuMPDoa6wm6mq + lqWmmaimipmWZXNtoa2jrbSpkZODnpiHqp+Ms6iRzMOqxsKpwsWuwMezrbSisrSlw72v0MOzzr2rzbmk + 0sCny7+h1dG25OrVvcSxrLCdoqSRxsSz39vL5eHT7Ovc9/fq7vDl2+LX1t3V1+Da1uHd1N/c0dzaz9jZ + 0Nba1NjczdPav8XMp6y0sLW9wcbQwcfSu8DMsLbCsbfErbTDtLrKwcjYn6a3jJOls7nNvsHbubrXu7zX + t7nQtLjJt7zJvcLNv8XOvcTNwMbQvcPQur/OuLzOubzPur7Qur7PuLzNub3PvcDTtrvOr7bJrrbIs77P + vMnYvcrYs8TQtsfSt8jRs8XNt8nQv9DWwdHXwM/VwM7UwtDWAAC3vr24wL3J0snF0MTF0MS/yr+7w72r + s7CWnpqUnJaXoJinr6TDyb7N08fP1cjZ4NTT29DDzMTGz8rI1NC6x8S7x8XO2tbEz8ugq6SXn5qWmpuy + trjW19jS0dHMzMrHxsPDxcG6v7yaoqGFkJCRnZ+ToaSRoKOera6WpKNVY2CAi4XEycCioZSRiXmsn4y7 + rZXJvaO+t526u6O6vqq0u6uvtKatrKC9tqnQwLHXw67hyq/ZxabGup60s52coIugoI2hoY/Rzr/n4tPf + 3M318uX8+/Dz8efm6N/e4tve5N7c5N/V3tzQ29nS29vW3N7Z3eLW2t/EyMyorbS2vMPM0trJztfFytS/ + xdC0usaorbu+w9LFy9udpbOyucm9wtW8vda/vdu/vtm7u9G4ucu7vsvBxc7DyNDBx8/Dx9HAw9C9wM67 + vs28vs+9v9G9v9G7vc+6vM67vdG8vtK6vdG1us22vc67xNW+yti7yda7yta5yNK2x8+7y9LC0NfE0tjD + 0NbD0NbG0tgAAL3DwMPJxNHY0L/Ivb7HvMXOw7e9t4ySj3h+en+GgHyDe5OYj8LGu9baz9PWzNHWy8bN + xLK5tKSsqqavrrG8usPNzM7X1MrSzcLIwpygnKeoqru6vc3NzsvJyMTDwLWzr56em62wr7C2toOMjH+L + jaGtsa27vczZ2dDd3ISRj3J7dr3Bt7Swo5uRgauei7ipkse5n7askqeki6qrl6+yoqaonZmYj6ihlbus + nNC7ptvCp9a9nr+ukaSchp+ch5uXhL25p9TPwdvWx9nWyO7q3/j27PTx6evr5OTn4eHk39zk39ni3dTe + 3dTc3Nrf4Nrd4djd4sXJzrO4vcPGzdDU3MzR2s/T3crO2bC0v620wcrQ3cPI17vAz77E0r/E1r+/2MG/ + 3MHA2r2+0ri8zLu/ysHHzsLJ0MHHzsPI0cDFz73Bzru/zby/0L2/0b2/z7y+zru8zru6zr290bu80La6 + zbe9zrzE1b7I1rvG07zI1LvH0bjFzr7L0sTQ2MXT2MTP1cPP1cXP1gAAwcXBuLy2zdLJzdTIzNPH0tjN + y8/Ir7KuhoqEZ2pkYmVedHdtqKigzc7F2tvS1tjQu8G7t726qbCwkpubjpiYq7OzxszKusG6vsC5zM3I + 09PU1dTX1dPUwr29qqajmZeSi4mFj46NlZiXl5ydusLE4ert4Ort0tvb3eXk5Ozox83Gy8zCvrmroZeG + pJeDtaaPwrKZxLaerqWPta+drq6erayeoZ2Qp5+Qs6WTvaiTvqSL1Lmc4s6ywrWfraSQrqaT2tPB4dvL + 29XH2tbK7ung+vfu+PXv8u/q7Ozm6Orl4+nk4Ofh2+Tg2eHf3eLi3+Pk3eDkyc3RvsHGys3S1Nfd09bf + 1drizdLctbrEur/M0dXhxcvYxcvZwcbTwsfYw8TbxMLdxsTcwsLVvsDQwMTNxcnRx8vRxMnPx8vUxcjS + wsPRwMHQwcHRwcHTwMLSwMHQwMDPwMDSwL/Tvr3RurvPvL/RwcjYwsvZvsjUv8rVvsnUvMfQwczUyNTb + ydXbx9HYxtDXyNHYAACam5eUlpCytavDx7vN0cXO0cbKzMTOz8vHyMStrqmcnJWnqJ/LysLd3NTZ2dPM + zcm8wL6wtbWUmpx4gINsdHaFjI2vtLKcoJp1dW+IiYO0s7LKyMnZ1tTHw8CwrKi1sKu3s66Zl5N4eHV4 + enuOkZKprq7V2drl6ejX2tjNz8qys6rCwLPLxredlIKViHavoI23pZHOvam2p5W7sJ7BuajDu6yvqJmp + n465qpjHs5++pY7Rtpzt1bzLuKOxo5DKvqzs4tHs5NXj3c/g29Hq5Nz28uz39O/07+vy7ers7Ojm6uXg + 5+Lc5+Db5eHd4+Hi5ubb3eHKzNHGyM3P0dbV2N7V2eHY2uLO0dq7wMnIy9bQ097FytfFy9jDx9bDxtfF + xNrGw9zGw9rEw9bDxNLExtDGydDHy8/Hys/JzNTGyNLDxdDBw9DCwtDCwtHBwtDBwtDAv9DAvtHBwNPA + vtK7u8+9v9HCx9nDytm/x9TAydXAyNO9x9DBy9TI0trK1NrJ0djHz9bJ0NcAALWzr7Cwqrm6sLu9ss3Q + w8TGu6ipobe2srq4tKOgm767ttnWzuHe1t7b1NjX0cLCv6OnpYmOkHyChYiPkpOZnZCWl6aqqLm6tZaU + j42Mh9TS0dnW1dnW09zX09zVz+Lb0+nj3djUz8XCvszJx8nIyLGysqeoptLSz+Tj37y7s7Gupri1psvG + tKOch42Cb6qbibGfjcu2p8Ctnb6tnb+woce6qMO3pbeqmLank8y4o8uznMevltvBqs65o8Gvm+bYxe/k + 0+3n2O3n2+Tf1trVzvDp5fz18vfx7/Xx7vDv6+nq5+Pq5d/q4t7o4uLn5ujq69fY3MnKzs/R1dfb3tnc + 4djb4tfZ4szN18HCzNLX4c7T3cjL2cnM28nM2sbJ2cjG3cjE38bE28fH2cnK2MnL1MfK0cjM0MrO08vO + 1cjK1MXH0sPF0sTE08TE1MPF08PE0sPB0sS/08TB1cLA1L+90cHB08bJ28bM28LJ2MLK18HK1L/I0sTM + 1cvT3M3V3MvT2srR2MzS2QAA2tfUysfD0tLHzMzByMe8ra2ikY+ImpeTtrOuwL24x8S/29jR2NXO09HL + 1tbQyMjHtrq5nKCimp+kt73Cy9DUtLi6nZ+fp6elj4uGenZyjoyJo6GetrOvzsvE3djQ3dfO4dnR4NjS + 2tXR3NnV1tLQx8TDrKmnraiky8TAzMS9raacoZ2Mwb2oqKGOjIJvpJWEqpiKvKaaxrCju6aXuKWVt6aV + ybqnxriirp6Iwa6Zz7miv6iQz7eg2cKszLij8+PQ69/N7ufY7une39nQ1dLJ7Oji+fLu9vDu9vHu8O/q + 6Ovl4uni3unh3ufi4+nn6uzs0dHTwsTG0tbZ3uHl2t3i19nf09XdxMfQv8HL3N3pzM7ZyMrYy87czM7c + yMraysjeycbfxsTaycjazc3by83Wx8vQyMzRzNDUy8/VycvVxcfTw8XSxMXTxcbVxcbVxMTTxMLTxcDU + xcHWwsDUwL7SwsLVyMrbyc3dxcvYxMzWwcrUwMjRxszVzdPcz9XczdLazNHYzdLZAADV08zZ1tDRzsbX + 1svV0ce+ubG9t6/Ty8a/ubWjnpnEv7rc2dXf3trU1dLLzczJzMzO0dTLztHFx8vExsrR0tbS0tW0tLWg + oZ+lp6SysK+emZqUjpKinJ3Mx8fa1NLEvbrGv7rj3dfc1tG3sa2wqqWwqaSnn5ylnJi8sq7Gu7axpqCX + kIW9t6ezq5mNgG+jkoG0no21nozKsKDFqZrGrZ2/p5fQu6rbxrTFsZ21n4rJs5zCrJO8pY3bw67aw7D1 + 49Hv4NDw5db37+Tm4NfV0Mnn4dz69fD48/Dy7urw7urq6+fi6OLi6uPi6eTs6uvl4OTLx8vHxcrY2d3g + 4+ff4ufZ3OLS09zMy9XFws3X1OHW1ODLy9nKy9nM0d/Fy9jGyNfJyNnIyNjKytjMzdjMzNjKy9bKy9bL + zNjKytfJydbIx9bGxtXFxdTExNTDw9PDw9PEwtPFwdLFwtPCwdLCwdLCxNTEx9XFytjFy9fEzNbEy9XE + y9TIztbO0tvS1d3T1d3R09vP0dkAALWzq83LwtDNxtjUzMzFvsO7tc/Gv+PY0d7U0NHJxdzW0tzY1dbW + 1M3Q0MnOzcnOz8zQ08vN0MbHy9HS1czKzq6sr6Slpqaoqaasq8HDxNXQ1dTM09fQ1uPd4dzV18nCw83H + xtvW0t/Z09XOx7qzrbSuprevqMe9udHHw72ysKOXlZCKgbm0p8e/rpiLe5eFdLKbiK6UgMmvm8uunMuv + n8qvoNe9rePKute/rbSdiL2mj8Cqkbafh9a+qebPvPfj0/np2e/j1e/m2+7n3uDa0trVzu/o4/fx7fHt + 6vPx7O/u6uXn4+Tr5OXo4+/n6uHX3crEydHN0uHf5d/g5tnb4tTV3cfFz8XBy9bQ2trT39XP28zK18vL + 2cnN2cHH1MXI08vL1szL1s3M187N2c7N2c7N2c7N2szL2crI2MrI2MnI2MjH1sbE1sXD1cXC1MXC08TD + 0cXC0MXD0cTE0sTE0sXG08TH1MbK1MbM1sfM1sfN1sjN1svP2NDR29TV3tXW39XU3dHR2gAA2NbOz8zE + 19TM39vTxsC5xLy1wrmxzMO75tzW4dnU2tXP19TQ1dfSztPRxsvKw8jJyM3Oy8/RwsTJzc7SysnNnZ2g + enx9b3FyeH18qausxMHG083T1M/T0s7Q2NPV3djX3NfU2tfT3dnT39zU19HKuLOsk42IlY6JvLOwycG9 + sailhoF5l5KGxb2vpZmKi3losZqIrZSBwKWRvqGPx6uczbGi0beo28Sz2cGuvaeStJyGuqKLuaGKxq+a + 38e06tfF/e/f+O3e6uHV9O3j6uXc0MrE39nU9O/r9O/t9fLu8O/r5ufj5Oni4+Pf6eLl3dPZysLH08/T + 5OLo4N/l2djg2tniy8jRura+zsjQ2tLd29Xf1tLdzczYyszXz9Ldzc/ZzMzWzs3Xz87Y0M/Zz83Yz83X + zsvXzcvWzMnXy8jWysfWycbWyMTUx8TTxsPTxsPTxsLSxcLRxcPRxMXSxcXTxsjSx8nTx8rVx8vVx8zV + x8zVx8vUys3W0NHa09Xc09Xd09Pb0dDYAADa2M7W08ng3dPf2tC7s6rNw7vUysLOxbzg18/e2NHb2dHZ + 2dTS1tHGy8m9w8G8xMPHzc7R1NfN0NTExsrNz9DR09OwsrKQk5OYnJqssbDOz9HU0dXRztDNy8vY1tXh + 3tzb2NTc2dTi39re29be2tXa1tHV0MzLx8LPycbc1dPm39u0rqePin+8s6e0p5mJeWmtl4W5no64m4q7 + nIzCpZbLrp/HrJ3Rt6fVvKnHrpi3n4e5oIi8oou6oY3DrJrGtKLq2srx5tjn39T17+Xs59/PycPf2dT4 + 8u758u/48/Dz8e3q6eTl5uHd3NjZ09TWztHNx8va1Nro5urj4OXY1drOy9HJxszFv8Wyq7LJwsrk3efa + 1d/Jx9HMy9XS093S0drQz9jS0drS0dvS0dvR0NrQz9nPztnPzdnNy9fNy9fMydfLyNfJxtXIxdTIxdTI + xdTHxNPJw9PIxdTIx9PJydXKy9fKzNfKzdbJzdbIzdbIzNbJzNXMz9fR09vU1t7W1t7W1dvU0tgAANjT + y9rVzN7XztPKwpWMg6GWjrqup8O4sNfNxtnSzNzZ0tzZ1tDSzMbMx8PKx8TMy8fPzsrQ0cbKzMjKzMrK + zMrKzNPV1dfb2szT0cvQz87Q0czOz9DQ0c7OzdDRz9na19bX0dDQytjY0tjX0sbFwMnFweHd2uPg3djU + 09zW1uDb2szHxIyHgKihlsO4q4t7bZaCcLWdjKaLe8Gklbicjb+ilLedjsKol8armcmumMKoj7ifhryi + iryhjrukkcWxoOTUxe/m2Ork2PDr4fHu5cS/uc3Hwu/o5PTs6fnx7/fw7ezo5eLg2tDNydDKy9bP0dPN + 0trU2eTe4+Ld4tzY3dXQ1q6prnt1enlzeJKMkbqzu9LM09rW3NnW3MzJ0M/N09XT2dPR19PR2dTR2tLQ + 2dDO19DN1s7L1s7K1c3K1c3J1cvH1MrG0sjF0cjE0MjE0MbDz8bCzsnE0cnH08nJ1cvM1srM1snL1cnL + 1cjL1MjL08jL08vN1c/S2dLV2tXU29XT2dLQ1gAA3dbM4dnP2dDH3tPKn5WMh3tylYl/qZ2UzcK64tvT + 3tnR1tTN0dLNyM3IztXSzdPSytDPyM7Ox8rK0tPU1tTWy8vLzs/O0dXTys/L0NTS0dPT0dPT19fW1tfV + 1NXS2NnW2dnU0dHL2dnT4ODazs3I0M3J3drW3NnY19LT2tTW3NbXx8PAjIiCjoeAtqyimot/inZnr5aH + pIl6u52PuZyOuZ2PtJmKvaGRxqqYz7Sdyq+WuZ+Eu6CHv6WRu6KQ1MGw+uvb+fDi9u/j8+3k9vPq2NLM + 2tTP9/Ds9+3r9u7q/PTx6eLe0MrFxL6729XW5d/h2tTX3NbZ5N3h5+Dk3tfb1c7S0crOzsjMwrzAjIWJ + cmxvjIaJv7i82NDV19DU1M7T1NLX19bb19ba09LX0s/X09DY0tDX0c/W0MzW0MzWz8zVzcrVzcnUzMjU + zMjTy8jTy8fTzcnTzcrVz8vWzszXzM3Xzc7Yy83Xys3Wys3Wys3Wys3Uzc/W0dPZ1tXb2Nbc1tXa1dLX + AADe1cvk2tDd1Mrd0sjAtKqwo5myo5rGuK/d0cff1s3g2tHV0srS0MvFx8PN08/M0c7Kz83O0dDOzs7H + xcXGw8PMycnS0c7U1dHU1dDQ087R1NLS09LS0tDT09HT1NDU08/V1M/X19DX1tDZ2NPm497n5ODc2NbV + 0NDW0NPa1Nbd1tnY1NTIx8PGwbvJvraej4aBbWGqkIOpjn+ylYezloi1l4q4m427oI/BpZPIrZbKrpW+ + oYeylX2vk3+slIHJtqXz5NTv5tj07uLy7uTz8ejf29TY0s3t5uL37On27Or78/Ho29nSyMTTycft5+jr + 5ujb1dfe19ni2dzh2NvMw8W1ra+3rrHEvL7Fv7+YkZKIgIGFfX6TiImrnqDSycng2tvY1tnU09bU09bV + 1NfV09fT0dbT0dbT0dbRztbRztbQzdXPzNTOy9XPytXOytTNydTPytTRy9bQy9bPy9bOy9XMy9XKzNXK + zNTJzNPKzdTLzdXKzdLLz9PR0dbV1NnW1NnW09fV0dUAAODWzN7TydbLwZ+SiIBzanlrYXNjWpODesi4 + r93Rx+Xa0eDZ0dLNxsLBu8fIw83Ny9DQztXS0tPOz83Ix8zHxtHMytjU0drY1NbUz9HSzNfW09bV1NXV + 0dTTz9TUztbUztjW0drY0tzZ09jV0NHNytrV0+Ld3d7X2tfO0c7Fyb21us3Jyt/e3Ovn4+fe2LKknIZy + aJuCd6mNgaOGeK+PgrOShbudj8Sol7yfjLaag8OnjcKlireZgLiahrGXhseyovDh0ffu4Pz57PXz6fPy + 6NbUzMfCveDZ1fvx7v3y8O3f3dbHxuDSzuzg3vHq6+Tf4drU1+Pa3efb3tHEx6KWmIl+gI6FhY+IiI6H + h4iAgLCnpcO4trCkoqCSkLGjodbPz97b3dbT1dnW2NzZ29zZ2tjV2djU2djU2dfS2NbS2NXR19XQ1tTQ + 19PO19PO19PO19LN19DK1dHM1tHM1s/M187N1c3N1cvN1MvN1czP1MzQ08vO0s7Q1NLT19bW2dnV29fU + 2dbS1wAA3dLG4NTI5djMu62hppiMnY2CiHdsmYl+zryy5tXN4NTK39XM2NDJ1tLN1dHN19PS1NDP0czK + 08vK1s3N187O1s/O1s/M2NDN2dXQ29jT1tLO1tPQ2NXQ2dbR2tfQ2tfP2dXO2dXO2NPNvLezmpOPuLGw + 4tna3NTV1cvO08fNsqeuysXJ3dzd1dHQ39XR1Ma/mYR8gWZerZGHqYuAro+ErY2BtZWIzK2dxaeUqo11 + rY92tph9uJmAu52JqY99taCP4dPD9uze/fvu9vPp9PLp5eLb1M/K5NvY/PDu8+bkyrm4sZ6d1MPA8OTi + 7+np3NfZ083Q3NLV7+LmxLa4aFpbSTw9al9ejISBsKmnraaitayowLWxw7ezuKekqZqXta2rysfH2tjZ + 4N7e19XW1NHT2NXX2dbY1dLU1tLX1tLX1dHW1NDV1NDW08/V08/V08/V0s7V0srU0szV0czV0MzVzszV + zczVy83Tys3Sy87Ty8/Sy83Rz8/T09LW19XX2dbY2NTW19LUAADd0cXk2c3h08fg0sbSw7fYxrvdy8Dn + 1cn04Nbp1c3k08vo29Ta0MjOx8G1sKu9trTRysnTy8vVy8zZzs/Zzc7az8/b0M3a0c7a087c19LZ1NHZ + 1NHZ1dDY1NDa18/a1s7a1M3a1c7c1tDJwr6upaPDurri19ne09bd0Nbl1t7c0NjRzNHPzs/h3NvZz83G + uLO5pZ6LcmmMb2WniX6khHmsjICvj4LHqZnNr5uvkHmmhmyrjXCvknnAoo6+pZLItKPj1cXt5Nb79+r0 + 9Ojy8ejr6eHc2NLb0s/o2djl1dTJt7a1oJ7cycb36ef07u/d2dve2NrRx8rWysy+r7J1ZmhAMzRMQUCQ + hoTUzMjRy8a+tbC1qqTEtrHHtK23pqCzqKXCvb3Y1dTf2tvW0tPTz9DY09TY1NXTz9DV0NPU0NLUztLT + zdPSzdLSzdLRzNHRy9HRy9LTytXSy9XRzNXQzNXOzdTNzdTLzdLKzdLLztPLz9LLzdHPz9PT0tbX1dfZ + 1tjZ1NbX0tQAANnNwend0djLv8a5rZ2Pg7mqnuPTx+PSx+DOwuXSyOza0ejYztbIv8K3raedlbitp9LF + wd3RzdHFwNPGwuDTz+DTz+HU0OTZ1eba1tvRzNbQytbQy9rUz9vVz9rTzNrTzN7X0N3Wz9zUz93V0NfO + ytjPzN7U1OPX1+DV1t3Q0tfPz9LNzdXT0tzY1p2VkoB1cce3sKuXkH1mXamPhJuAdKKGeayOgMiqm8+w + n7mZhauLdKSEbJp7ZLGSft7CsubPv+LQwOXXy/fv5Pr17PTw6PDr5eXf3NPKyNjMy+fZ2dfGxcKwr9rG + xfbn5t3W19fS1O3l6N/V1szAwNPExcq7u5yOjoh6e7arquje3Ofd29PJx8e7t8KyrbmmobmnocC1s8bB + wtDLzdnU1drU19fS1NXQ09XQ09TP0tTP0tTP0tTO0tLM0tLM0dLM0dHL0dHK0dLL0dPK1NLM1NLM1NLN + 1dDO1NHO1M/O08/N08/P08/P0s/O0dHQ09XT1tnW2NrX2NnV1tfS0wAA29DE39TI1cm9s6ebfnJmpZmN + 4dXJ5NjM28zA5dTI797R3cy/0sG0rp6Rjn9zrJ2R2su/0MK4rZ+Wtqieva6ls6WcyLuz39PL5tnR3dLK + 0Ma/z8fA2dHK4djR3dTN3NPM4NjR3NPN1c7H2dHK3NTN39fQ4dnS4trT4dnT39jR3tbR19DM29XSz8rF + n5iUsaij9Oriw7SuempijHlwnol9lHtupIl70LKj1bSmwqGRsY19nntplXVjrYx92rys5s2+7dbK8+HW + 8uPb+ezm+/Lv8+vp7+fn4djZ39PV8eXm1cfIp5iXyrm44dHS593f1c3OzcLD18vK287L1sjEv7CurqCf + wra13dHS6Nrd6t3f8OPl3M7Pxre20sG9xLSxxLq5zMbJ0MrO19HV2NLW1dDU083T1M3S1c/U1M7T1M7T + 083R083R0szQ0szQ0cvP0cvP0cvQ0cnQ0svR0svR08zS08zT083U083T1M7T0s3Q0s3P0s3P1M/R2NPU + 29XW2tXW2NPU1dDRAADh1cnbz8PZzcHSxrquopa/tKjo3NDn2s7czcHh0MPo18rs287q2czHtqmunY/J + uK3r28/j1cnXyr7Zy8HAsKmwopnTyL7n2tHcz8fn29Pi19Hd08zd0szh19Dg1s/e1c7f1c7e1M3f1c7j + 2dLk2dPk2tPl29Tk2tPi2NHf1c/e1M3a0s3a0s/MxcGupqG7sazv5N3bzcWRf3d7ZlyeiX2Ve2+agXLP + saLbu6vHppevjHydemekg3Gvj4Cvk4PNs6Ty2s7349jv3db15d/88+/06ufy6Ojx5+fo3t7t4uLKvb2N + f3+8rau3p6j26erk19nJu7u/sK64pqO7qaWrmpWklpSwpKKqn5/HvsDo3uHt4+amnJ+Sh4jdz87g0tDZ + z8/d1tjY0dTX0NPX0NPX0NPY0dTX0NPX0NPWz9LWz9LVztHVztHUzdDUzdDTzM/TzM/TzNHTy9LUzNPU + zNPUzNPUzdLUzdLUzdLUzdPUzdHUzdDVz9HX0dLa1NXc1tfb1dba1NXY0tMAANTHu9nMwNLFudPGutLF + udjLv9zOw9/SxuTVyeTTxubUxuXWxuzcze3cz/Hg0/Tk2NvMv+PTyOfYzOHSyN3Px9vMw+LUy+XXztzO + xeHWzOfc1ePa0d7WzNrRyNnQx9jQx9jPx9vSyd3VzN7Vzd/XzuDXz+HYz+HYz+HYz9/WzuPZ0ci+usG4 + tbmvrIh/e4d8d8y/ud/PyK2bk3ZhWJmDeJN6bZJ3aMepm9OzpMKikqeFdJVyX6GBb6iKe6KFd7qfkePM + wPjn3O/e1+HTzO3h3Pbq5/Xq6O3i4fTp6e7h4sO1trWnp6aWlqKSk7KhocGvr8Syr8Kvq6uYk6KOiY98 + eKeXlNHEwrWsrMK7vN3X2s3HyqKcn62mp9jQ0OTb2+Tc3eLb3NrT1NXOz9TNztbP0NfQ0dfQ0dbP0NXO + z9XOz9TNztTNztPMzdPMzdLLzNLLzNLKzdLJ0NPK0NPK0NPK0NPLztPLztLKzdHJzdHKzdPMzdXOz9jR + 0trT09rT09nS09nS0tnS0gAAtqmc3dDD5djL3c/C4NLF4dTH4tTH5NbK5dXH5tXF6NbG49LD3Mq7zbut + xLSl1MO27t3Q6trO4tPGxrarxret5tfM4NPI3M7E4dPK1cm/0MW94NbO5dvS3NLJ2c/G3dPL3tTL3dPK + 3dPL3tTM3tTL39XN4NbO4dfP4tjQ4dfP5NrT2c7J2c3K1cnGiX15b2FdqJiSlYN9mIV9e2ddk3txlnxv + kHZnwqWWy6qbwaCQqoh3m3lnoH9woIJzq5CCnoR2wqqf/+/k79/Wv7Cp49fQ+e7p8ubj6Nzb7uPj39PT + uqyux7m6sqOkoZGSmoeFt6GevqmkvqiisZqUvKegnoqEh3Vyw7a16d/g6OLl6Obr2NXb2tjd7eru7Onr + 7Ofo5N7f3tbW3dTU2dDQ2M/P2M/Q2dDR2dDR2dDQ2dDQ2dDQ2M/P2M/P187O187O1s3N1szN1szO1szQ + 18zR18zR1szQ1szO1cvO1cvN08nL1MvM1s3N2tHR3dTU3tXU3dTT3NTS3dTT3dXTAADXyrve0cPe0cPe + 0cPg0sTYy7zbzr/j1cbi0sLn1cTn1cXRvq6yno+vnI2/rZ3Nu67fzsHTwrXPv7KtnZGqmo3czL/k1srd + zsPf0MfPwbfFuLDZzsbj2NDc0cnaz8fg1c3g1czb0cnaz8fc0cnc0snd0src0cnd0srg1c3h1s7f1M3i + 1dHq3Nrn2dehkY+GdXG4paCmkoy5pJ2Vf3WIcGWTeGyRdme8n5DBopLBoZG1lIOpiXepiHmhhHa2m46h + iHyQeW3Wwrfv3dK8raTe0cn47efw5uHl2tfg1NPe0tLPwsTNwMLi1dfEtLW+qqevmZTAqaPWvrmtlo6r + lo/ArKagkIyekpLVztDr5+vn5uvm5uzr6/Hl5uzl5uro5+jc1tbXzs7a0M/Zz8/Zzs7Yzs3Zzs3Zzs3Z + zs7Zzs7Zzs7Yzc3Yzc3XzMzXzMzWzMvWy8vWy83Xy87Xy87Xy87Wy8zWyszVysvVycvUycnTycjWy8va + 0c/e1NHd1NDc0s/b0s7d09Df1tEAAOfYyODQwNzNveHSwuTVxeLTw97Pv9/QwODQwOfUw/LezeTRwL6q + mbilltnGt+fUxe7czMy7raqZjZ+Oga2ckM6+seXVyefXy+HRxeDSxuPXzt/Vy93Uyt3TydzTyNzSyNzS + yN7Uyt3TydzSyODWzODWzN3Uyt/Vy+Ta0Obc0uTZ0N/RzeDQz+rZ1829un1saEw5M2tWUKaPiL2lnIBn + XJF2apd7bbuej7ydjbycjMCfjrqZh7eYiZV5a3tgVruil5+IfKOOg9zJvrysoubYzv758fbt59vPytPH + xere3+ve4N7R0+rc4Oja3N/MyrainbCbltvHwd3Lw6+blMGwqdbHwsa7uufi4+nn6uDi5tzf5Ort8unr + 7tfa29fW1trU09zRz93Rz9zQztzQzdvPzNrOy9rOy9rOy9nNy9nNy9jMytjMytnNytnNytnNytnNy9nN + y9fLzNnMzdnMzdnNzNnNzNnNzdjMy9jMytfLydnNy97Sz9/U0N3SztrPy9rPy97UzuLY0QAA39DA3c29 + 3c6+4dLC5dXF5NTE4dLC4dHB386+zruqtKCPsp+O18Oz79vK7NjI69jJ6tjJ6tfI2Me3w7KkxLOn2ci8 + 6djM69rN5tbJ4tPH28/E3dHH3tPJ4dXL4dXL4dXL4NTK39PJ4NTK4dbM39PJ4NTK4tfN4tbN39PJ3dLH + 39LJ5dXR2sfFx7Syoo+MbllWXklEa1NOeGBZpYuDh2ximX5yn4J0vJ+RvqGRt5eHv56NuJmHqo1+pIh+ + pIqAwKicvKaal4J4vquhtaGZ6+Xd/fz09urj3dHL2czJ7N/f4tXW1MjK39TX4tXZ7N3e3s3KwbGtyrmz + 28rD0L643MzG4dPQzsTD4Nzc6ufp4uHl2trf5OXo6unq3NvbzcrK1c3L3dLO3NDM28/M28/M2s7L2s7L + 2s7K2s7K2c3K2c3K2MzJ2MzJ2MzJ2MzJ2MzJ2MzI2MzJ18rJ2MvJ2MvJ2MvK2MvJ2MvJ18vI18vH2M3J + 2s7L3dLN39PN3dHL28/K28/J3tPL4NbOAADg0L/g0MDh0cDh0sHk1MPj08Pg0MDby7rk0sDZxbOeiXeQ + e2nJs6Lv28rs2Mfo1cTUwbDgzb7r2Mjp2Mnr28zr283n1snj0sXl1Mfo2Mvj1cnh1cng1Mnf08je0sbe + 0sfe0sfe0sfg1Mne08fazsPc0MTh1crg1MnZzcLWyr/ZysHp19Pq1tSmkY9nUU9iTElnUUxtVE9kSkN7 + YViMcWaTeGuihni8oJHDppa5m4rAoY/AoY6ojH23nZPlzMLkzsLRvLCPfXDJtqrVwbfz6uL99Oz35+HZ + zMfWycjx4+br3uDh09jbz9bTx8ze1tfs4uLXysnDtrPKvbfYy8T16eTp3tzAuLXUzs7v6uvz8PLl4uXc + 2Nrd2Nnb1dPY0c7a0Mzd0Mzdz8rczsnczsnbzsnazcjazcjazcjazcjazcjZzMjZzMfZzMfZzMfZzMfZ + zMfZy8jYysjZy8nZy8jZy8jZysjZysjZysbYy8Xazcjd0Mre0cve0svc0crcz8jc0Mne0snf08oAAOHR + wOPTwuLSweDQv9/PvuLSweDRwODPv9PBr7KejKCKeKyWhNK8qufTwurWxdrGtbGdjMazpN3LvOHPwOXU + xOTTxOPSxubVyOfWyeXVyeXXzOLWyuDVyd/Tx93Rxd3Rxd7Sxt/Tx9/Tx9/Tx+DUyOHWyeTYzOTYzOPX + yuDVyN/Sx+XSzuLNzIZvbkkzMXFZVolwbJN7doZtZZyBeKKHfIdsYK2QgsWomtK0pMutncipl8qrmLuf + j8GoneXMxOPOw93HvKqWicy5rM++suvbz/Tk2vPk3NvNx9fKx/Ll5fDj5fHk6uHV3MzDyN/Y2+vn59PM + y8e9u9XLx8zDvtfNye/l4dnRz8vExObg4fDr7ejj5NzV19nQ0NrQzNrOyt3Qy97Qyt7Qyd3Pyt3PyNzO + yNvNx9vNx9vNx9vNx9vNx9rMx9rMxtrMxtrMxtrMxtrMxtrLxtnJx9rKyNrKx9rKx9rLxtrLxtrKxdjK + xNzNx+DRy9/Qyd/Ryd7Qyd3Qx97RyN7Rx97RxwAA3s694dHA4NC/3My728u64dG/49PC38++38y63ce1 + 2sSy7djF69bE48+97NjF5tLB18Ky38y76dfH6NbH5NDC4M6/4tLE59bJ5tbJ5NXH4NPF3tPF39PG4NTI + 4NTI4NTI39PH4NTI2M3B0cW63NDE4NPI4NHI4dPJ5NbN5dfN39DI5NDN4svKoImHg21pooyHq5WPtZ6X + noR91buxzbClhmpdpop8vqSV3MGy6My+17qqxqeXvJ6QvaCYzLGq1b2z2MK3u6WZzLerxrOmz7yw387F + 8+Pb4dTO2s7K7eHg6d/h8+rt5t3i0crP3tre8e7wzsrKxL2959/e2tDPwrm41cvKy8HCsqus0MnK49zc + 493a3tbS2dDJ39PL5dbP4NHK3s7H4M/I387H387H3s3G3czF3czF3czF3czF3czF3MvF3MvE3MvE3MvE + 3MvE3MvF3MnF2sjE28nF28nF28nE28nD28nD28nE2sjC383H4tDJ4M7I387I387H38/G4NDH387G3s7F + AADh0L3l1MHl1cLi0b7gz7zk08Dn1sPk08Dk0r7q1cDt1sLs2MPr1sHq1sHr1sHs2Mbx3cvn1cPm1cLl + 1cPfz7/g0MDj1MLg0cHh0sLq28vp3czn28vl2Mjk18jj18ri2Mrg1Mfg1cnWyL7Ku7LczMTk1Mzk0svh + zsnj0Mvm083k0czq19PdysWgi4aUfXeZhH5+bWOUgHWFbmKsj4Xgv7SYd2qmin6ym4/Ktqvm0sbgxrzM + qqHHpJvBopnAo5rlzcPw2s/UvrLUv7Pcw7jHr6bbxLz96eLr29bg1dT17e318PH38vTo4ebZ0tfc2N3k + 4ObIwsjMwsrp3eTk1dvVxszZys/e0NPSx8jEu7vp4d3f18/l3NLd1Mjb0MPg0sXh0cXhz8Xh0Mbg0MXg + z8Xgz8Xgz8Xgz8Xgz8XfzsTfzsTezcTezcPezcPezcPezcPezcPezMPcysPdy8Tdy8Tdy8TezMXfzcbg + zsfhz8ji0Mni0Mni0Mnh0Mnhz8jhz8jiz8jhz8jhz8gAAOHQvdzMudrJt93MuuHRvuLSwOLRvuDQvuLQ + vePQu+PRu+XRvebTvubTvufUv+bSwOTQv+bVwuLRvuPTwevayenXx+PTwuDRwePTw+bYyOLWxOPXxePX + xuLXxeHVxODUxN/UxeLVyODQxtvMw+PTyuTTzOLQyeHNyOLOyeLOyd7KxerV0MGppXpiXHNZU4pya4l0 + aoZwZYNpXqKEebqYi5VyZbGVirehlce2q+XWy+vWzN6/tseon62RiLWbkefSx9zLwN7Mv8q3qt3Gu9K5 + sdzEvPTf2eXW0d/W1PDs7PLt7vfy9Ozl6uPb4N/Z3uDc38G7vq+lq8/CyOnZ4N/P1uLU2OTX2rCkp5mP + juDZ1d7VztXMwtjPw9jNwejazuTUyN7MwuDOw9/Ow9/Nwt/Nwt/Nwt/Nwt/Nwt7Mwd7Mwd3Lwd3LwN3L + wN3LwN3LwN3LwN3LwNzJwdzJwdzJwdzJwd3Kwt7LxODNxeHOxuHOxuHOxuDNxeDNxeDNxd/MxeDNxeDN + xd/MxAAA3cq41cOx0r+t2ce14tC949G+4c694c+849G949K85NO85dS+59bA6dfC6tjD69fE6dbD6tjF + 6tjG6tjG5dLB5NG/7NnI5tPD38u76djI4tPC4tXE5djG5tnH5NbF4tTE49XH59jL59jL5NTI59XL59XN + 6NfP6dbQ59TO5NHM4s3I69HN58rGwaKef19ab1FKn4V8qpCGq46EuZqPqod6lXJltZqOwKyf08a66uDT + 8eDU7NXKxa2inYd9wa+k49LGv7Gly72vu6ue3cm+v6qg1L639ODa5NbR5d3a8+7u7unq+PL18uvw7+bp + 3dbY6eLi59/fxLm7tqmr0cLF6dnd693g3tLVx72/0cnI9O3q3tfT29LL3NLJ49jO28zD3c3C4tHG4s/F + 4dDF4c/E4c/E4c/E4c/E4c/E4M7D4M7D383D383C383C383C383C383C383D3svE38zE38zE38zE4M3F + 4c7G4s/I49DJ4s/I4s/H4c7G4c7G4c7G4c7G4c7H4c7G4c7GAADo08DjzrzhzLnizLvlz73kz73izbvg + zLjfzbjh0rvj1Lzk1b7i07zi0bzj0r3o1cDs2cTo1MHn0sDp1sTcyLbSvKvmz7/z28rr08Ly3s3i08Hi + 1MLk1sPj1cPj1MTj1MTk1MXm1cjl1Mji0MXi0Mbl08zp2dDr2tPn1s7k0szm083m0Mzt0s/12NPFqKKR + dW60mpHmzMLozcLQsKXUsqWyj4Owl4u2pJnZzsHw6dv06Nvx3tPFs6ivn5TXyb22q5+upJiakYOekoPF + tKmql43Sv7f1493k1tLr4uDx6+vk3+Dv6Ovs4+jv5ejl3dzn39zv5OHn2dnEtbazo6XLu73f0tTh1tfr + 4eL17u7v6OXYz8zl29bTyMLbzcXj08vh0MbgzsPhz8Tgz8TgzsPgzsPgzsPgzsPgzsPfzcLfzcLezMLe + zMHezMHezMHezMHezMHezMHezMHfzMPfzMPfzMPgzcThzsXiz8bj0Mfiz8bgzcTgzcTgzcTgzcTfzMPg + zcTfzMPfzMMAAOPNuOfRvOjRveXOuuPNuefRvOnTvubQvOLPuuLUu+TXvuPVv97OuNfHsNfGr93LtufT + v+3Yw93IsuHLuNzEs7OaibGYh9zDsu3Uw+nSwOnZxuTWw+LUweLTwOXUw+fWxefWxeXTxObTxebUx+PQ + xuXSyurXz+fVz+LSzOPUzerc1N/QydfDvtrFwMavqaWPh6aTibKdkp+IfJ+Cd8Wkl7WUh7CYjLOkl9fO + we3m2fbr3/Xl2s++s8i5rdDFuXFqXZyWiXBpWmxkVpuMf6COhNvKwfjo4efa1fHo5vHs7ODa2+ni5ebc + 4u3i5eXb2PLn4uLV0NvMydDBv7ioqcKztNLExtfLy+fd3ezk5Pfw7dbNyeTZ0+LVz9vKxN/NxeLQxuPQ + xOTRxOPQxOPQw+PQw+PQw+PQw+PQw+LPwuLPwuHOwuHOweHOweHOweHOweHOweHNweHOweLPweLPweLP + wePQw+TRxOTSxObTxuPRxOHPwuLPwuLPwuLPweLPweLPweLPweLPwQAA0bmk79fB4sq06tO90rul2sKs + 6dK859C65dG64tK45de95dW83c200sOp0sGn2siw5dC77djD0bqmvqaStp+Lln5rjHJiv6WV8dXE6dG/ + 6dfC6NnE59jF5tTC5dPC6dXF6dTF4s2+4cu97NXK6tfK383C69vP4tPK5tjP59rS3NLJ08vE0svE49rT + 9ejg9eng7uXa08W5o5CDi3NnpYZ5xqmbq5eKzL6w6OHT7+re+/Xo693RvKugy72x+vDksquedW5hf3hp + raWXvK6hoY+E3MrC7t3X6t/a/PTy8Onq6eTl5d3h5Nrg7OHk5dnX9+3mx7u2xLWy69za0MG/wbOy28/P + 3dPS6N/f7+fm3tTR4NbR3M7I4NDK6dXP5c/I487D5dDC5dDB5M/B5M/A5M/A5M/A5M/A5M/A4s2/4s2/ + 4c2/4cy+4cy+4cy+4cy+4cy+4My938q84cy+4s6/5M/A5dHC5tHD5dHC5dDB5M/B5M/B487A486/487A + 4s2/487A486/4s2/AADQtqHv1sHhx7LXvaivloG/pZDlzLfr0r3o0rvn1Lvl1Lnl1Lro1bvp1r3q177p + 1r3o1Lzp073t1sLexrK8pJG2nYrQt6Toz7zw1sTw2MXm07/p2MPr2sXp1sLo08Hr1MPv18bv1sfq0cPq + 08bv2c3gzcLfz8Pl1s3l2tDVy8LX0cjx7+b29u7t6+Hw6eD+9uz48ubFua6cin2wmIy2mYu7nY+4oZXr + 3M/y693x69/57+LQv7SwnZLPv7Pn2c3v5djQx7qooJLbzsHIuKzQv7bey8PezMbx5N/37+zn4uLn4uPh + 2t7g193o3uHx5+Tr4NvRxsHGurXUx8PRxMHaz83r4ODr4+L17+zv5+Tg1tLg1M7fzsfn08vmzcXu1Mnq + 0sXjz8Dkz8Dkz8Dkz8DjzsDkz8DjzsDjzsDizb7izb7hzL7hzL3hzL3hzL3hzL3hzL3gzL3fy7vhzb3j + z7/k0MDl0cHm0sLl0cHk0MDjz7/jz7/jz7/iz7/izr7izr7jz7/izr7izr4AAODFr/DUvt/ErtW5o7ic + hsarlerPue3SvOXOtebRt+bRtufSt+nUuevWvOvXvenVvOfTuubQuerTverTvuzVwe3WwejRvevUwOjQ + vOzVwOzaxOrZw+jWwefUv+vVwvDXxu3UxODGtuTKu+7Uxt7IuerYy+jYy9/Rx9fNwtLKwO3o3u/s4/Ds + 5fLs4+vh2OLWzcO4rI5+c2hTRodrYKmIe7qZjMSqnufVyPXs3/726ePYzLionbKflMOupObTyPbo3My9 + sca4q7Skl9jDuP7r4d7KwtPAuu/h3O7m5OPf3+bh4uHb3t7X3NfO0PDn5vPr57qxrI+DgqyhoNTJx+3i + 4ufd3sS7utPMyf718Oje1t7RyOHNxevSyO/QxO/Qw+nQweXPwOXPwOTPwOTPv+TOv+TPv+TOv+TOv+LN + veLNveHNveHMvOHMvOHMvOHMvOHMvOHMvOPOveTPvuXQv+bSwObSwObSwObRwOTPv+TPvuTPvuPPvePP + vePPveLOvOPPvePOvePOvQAA0bae58uz6My09NjA7NG558uz69C479S87dO66NG369S67Na86tO55tC1 + 5c+16NG57NW969W+5M6448+56NS/xrKcppJ+1cGs7trG5tS/5tS95tW+59O+7NXC8dnH79XE3sKzu5+Q + wKWW0LepspuO28a66tnN1cq+1My/7efc8+7j6+Xb7uPc69zW3MnDwKujoo6EmIJ3g2ZbknFmtI6Cv5uO + vKCU5NDE/ffq7OfarKKWo5SJ0Lyx0riu3MK4+eXa08C1m4l8u6mc28O4+eLZ7dbP5c7I9ejk+/Xz5N7e + xcHCzcjL7eXq29LV1MzN7+jn5d3c2M/PyL6/u7Ky49ra187Ot7Ct7ebi1MvFvLGp2Mi96NDE6czA8M7A + 9NHD68/A5c295M2+5M295M2948y85M2948y948294su84su84cu84cq74cq74cq74cq74cq74cy74868 + 5M+95c++5tC/5tC/5dC+5M+94827482848684s274s274s274sy74s274sy64sy6AADav6fv07zlybHo + zLXx1b7v1Lzny7Tqz7fv07rr0Lbq0bfr0rjr0rjt07rr07rq0rrr07zkzrXp07rq1L3u2MPhzbfQvqjr + 2MLo1b/l0r3r2MLt2cPu2MPs08Ds07/v1cLv0sLnyrvkyLrZv7HFrJ/cxrjm1cfe0cXg1snz7N+7s6i9 + sajbycPcw77bv7nMr6iwk4qhg3qGZVqifnTFnJHDnJHKq6D27OD37+PNxbinnpKmlorNtqvXu7HBpJvj + ysD14NXcyLy3oZXNs6nz3tXr1s7Uvrjn19L++/nn4+OxrK3Ev8H59fna09bb1tfk39/58/T38PLVzc64 + sLHY0NDz7On17enUysRxaF+rnpTq2czjyrv118fxz77wzbzsz7/mzr/lzr7lzr7lzr7kzb3lzr7lzr7k + zb7izLzjzLzizLzjy7vjy7vjy7vjy7viy7vjzLzm0L7n0b/o0b/o0sDo0sDn0b/m0L7kzrzlzr3lzr3k + zrzkzrzkzrzjzbvkzrzjzbvjzbsAAOvQt+3SuenOtebLsunOtOrPtujNtOjOtOnOtufOtubOtujQuOXO + tuPMtOnRuezVveTNteLLs+fQuOjQuenTu+vWvurUvOnTu+bRuevUvOjSuuvVvezWvuzVv+vVv+vTvuvT + vurRvurSv+/Xw/DYx+vUw+bQwOfSwsu3p6uZiWBNPZJ/csGtosSroda5sNu/tcWonZ6Adph6ccWmnbyg + l66Uit/Ivvvx6dzNxL6so9K/tsGpoY51bJB4bbOclO7Xz/ji2/Xf2bahmrilnfPh2ebWzsG1q9nRxPr4 + 7e3t49fUzOvn4fbz79/a2uvk6uHc5Ojg6ePb4NTMztvT0vDo5OTb1tzTyuPYy8C0ptrLvOnZyOfTwenS + v+HItOvTv+jRv+DLuuDMu+DMu+DMu+HLuuHMu+HLuuHLuuTNu+PMuuLLueHJuOHKuOLKuOPLuuXMvOjN + vOnPu+rPvOrPvOrPvOrPvOrPvOnOu+jOuujNuubMuefMuefMuefMuefMuOjNuefNuefNuQAA7dK47NG3 + 7NG36tC26c606c6169C37NG37NG46M635s227NO779a+6dC56dC47NO76M+36dC469K769K76tK66dG5 + 6dC469K67tW979jA6dS769W869a97Ne+7Na/6tO+6NG85M6359C769TA6NG97tbD8NjF5c27vKSSnYRy + ZEw8hnFhzLiq2cK228K2zbGmiWthgGJY0LOq0betrZeMvKqe9efe5tXMtKCZuqWd2L+4wqiip4+HtZ+V + vaig1sG6+eTe++fi48/K2MW/6tvT6dzSvbClwbiq7ubY2dLEu7Wq5d/W+fTt19LR7ubu497o4drj49zh + 5N7f8eno+fDr187EzMK27+HT4dLB4dC+4s+96dXA6dO+4s236NK+5tG+4s274s684s684s6848274868 + 5M275c275s685s285cy75Mq55cu65su758286c6+68++7M677c+87c+87c+87c+87c+87M677M676826 + 6s2668266826682668267M677M677M67AADpzrTpz7Xqz7Xpz7bqz7Xpz7XpzrTnzbPpz7foz7jjybHq + 0Ljv1b7pz7fly7Pozrbq0Lnr0rrr0brr0bnq0Lnq0Lnr0bnt07vu1L3v1r7p0rrq07vq1Lzr1Lzq073q + 073o0bzn0Lrn0Lvp0b3p0b3lzbnp0b3x2cbZwa7IsJ65oZGBbF3Mt6rv2M2kjIB7YFZxVEujhXzu08nE + qqCjjoPVwbb87OPj0snCr6eynZSxmpKvlY25n5fhysDcx7ysl5DXw77z4d3y4d7k1M7g0crg0Me9raK5 + qp3dz8Li1cjf08n37eXy6ePNxcXg2eDo5Ozy7fL38PP17+/z6+js5N3n3dPl2Mvi08Tj0sHk0L7kzbvn + 0Lzr0r/r0rzoz7rlzbnjzbrjzbrjzbrjzbrjzLnkzbrkzLnkzLnky7rly7rkyrnly7nmy7nny7rozLro + zLvpzbvqzbnrzrrrzrrrzrrrzrrrzrrqzbnqzbnpzLjoy7joy7joy7joy7joy7jpzLnpzLnpzLkAAOfM + sejNs+rPtOzRtuzRt+vQtejOs+XKsOnOte3Tu+bMtOnPt+vRuuPJseLIsOrQuO/Wvu7UvOvSuunQuOnP + uOrRuezTu+3UvO7Vve7UvOrTu+vTu+vTvOvTu+vTu+vUu+vTvOvTverSve3Wv/LaxOnPvO3UwPngzNa9 + qcWsms+2pbGajcWxptO+tI52bGtQRquQhvLXzeTJv7SakOPLwfro3fXg1fnk2fHd0rWflK2UitW6sMiu + pNC5rfTf1bWjms28tfjt5/bp5uTX0u/g2dHAuLqnn8GqoMewpdzGvPrm3fnp4eTW0OTa1vPs7/Dr8Ozm + 6+zn6Pbv7frz7fLp4ebb0N/Sw+HRwefTwufPvOjQvOvRvezQvfHTvuzPuufNuebOuebOueXOueXOueTN + uOXOueXNueXNueXMuObNuOjNuejNuejOuunOuerNuerMuerMuerPuevPuuvPuuvPuuvPuuvPuurOuerO + uenNuOnNuOnNuOnNuOnNuOnNuOrOuerOuerOuQAA7NC17NC17dG28NS58dS579K47NC168+16c+06M20 + 69C379S76c+14cas5cqw7tS67NK47NG369C36M6058yz6s+17dK47tO67dO569G469O66tO66tO66tO5 + 6tK66tK769S869S87da/7tbB7NW/7NS/7NS/8tnF6tG98djF38a1u6SXsZyTr5qSeWJZbFRM0bmy9dvT + sJeNzLOp997U6dHH4cm/8tjO7dTKyLCk1Luv7dPIzbOnzLOm9N7T0L+0zsK6/PPs9Ozo8ufj5tfSw6+q + rpSPtZqSx6ui3cC48tfR9t/Y5NLL2MrG3dTV39rc6OLk7+jm8unk9+3l9+vh6NnL3cy84tC/5NC+5My4 + 79PA8dS/68u38c+78dG96s265s255s655s655s655c245s255s2458y45cq16Mu36cy468667M667M66 + 7c2668y568y468y47M257M257M257M257M2568y468y46su36su36su36su36su36su368y468y468y4 + AADt0LTlyKzRtJiukHSniW24nIDWuZ3qzLHrz7Xpz7bs0bfu1Lrt0rjqz7bs0rjv1Lvs0bjv1Lvu1Lrt + 0rnt07nr0Lfqz7Xr0bfv1bvx1r3t1bnr1Lnr07nq0rns07vt1bzt1Lzt07zt1Lznz7fjyrPt07733cjo + zrnnzbnw1sLz2snPuKyrlo6wm5S4opvUv7js1s+3n5e3oJjRuLDAqJ7DqZ/Rt6zNs6izmYyymYvgxrn7 + 49bbwbPLs6Ty3tDh0cbMv7f++PT69PHr4t7m2tfXxcGjioWafHfRsqvuz8bmysHw1s3lz8jZx8LZzczj + 29vy6uj58Ozy5uDl2M7o2szp2cnhz77mz73nz7vozrnu0Lzv0LvtzLjvzbnuzbnqzLfmzbbmzbbnzbbn + zbbnzbbpzbfpzbfqzbfpzbbrzLbrzLfrzbfrzbfrzbfszLfrzLbrzLbszLbszbfszbfszbfszbfszbfs + zLbszLfry7XpyrTqyrTqyrTqyrTqyrXry7Xry7Xry7UAAOvNsOHEp9GzlqmMb6GDZ7qcgOHEp+7QtOrM + sO/SuO3St+7SuO/UufDUuvDUuu/UufHVu+zQtu7TufHWu+zQtunOtOzRtuvQte3Rt+/Vu+LKruHKruHK + r+TLsujPtu3Vuu/WvO7VvO3UvO7Vve/VvevRu/TZw+3SvfDVwOrPuvPZx9vDt6mTjL6oov7s5/bk3bij + nb6ro+XPx8ixqs61rOLIvde8sLickJl9b5J4abWbjOzTxdnAsLSdjOLPwLammsa5seri3ravrNXMy/Xr + 6f7w7sCrpqWMheDCu/HUy97DuefMwuDKwe7b1OfY0/Lm4vjs5/bn4uPTys6+s9fFt+TQv+POu+nRvOnQ + u+vQu+3Puu7Oue/Ouu7Mue3Mt+vNtujOtefOtenOtenOterOtevPtuvPtuzPtu3Ptu3PtuzOtu3Nte3N + te3Nte3Nte3Nte3NtezOte3Otu3Otu3Otu3Otu3OtuzNtezNtuvMtOnLs+rLs+rLs+rLs+rLtOvMtOvM + tOvMtAAA7tCzzrGUwKKFr5J1ooRno4Vox6mN7tCz8dW56s6z7NC17tG27tG27tK379K379K379K37tK3 + 79K47M+079K49tm+5MitxKeNzbCV89a87NK36dG16NC16NC16tO37NW57dS669O56tG36M6258216dC4 + 89nB7NK89drF7dK93cOxvKab0Lm09unk8OPew7GrtqWd1sS93svC69XL3MO56s7Dz7Olt5qMsJOEr5OE + s5mJx66fwKmXs56M28m5wbGmn5OLt66qysTA6uHh8OTl9+zq7t3YybSuw62m3sa+69HH4Me90byx5M/I + 3MnD1cS9yrew0L22zryxy7ep2cO05c+958+758+66s+668+568+67M657c257My468y26s206c2z6M6z + 6c6z6s6z6s6z68+068+07M+0686z686z7M2z7cyy7cyy7cyy7cyy7cyy7Myz7My068207M207M207M20 + 7M2068y068yz6suy6cqy6cqy6cqy6cqy6cqz6suz6suz6suzAADx0rPdvp/XuJnGp4i5mnu6nH3WuJnp + yqzpy67u0Lbs0LXu0bbv0rfv0rjw07jw07nv07jt0bfu0rjt0LXsz7bw1LnjxqvJrZLOsZbt0LX02r3y + 2brw1bvw1brw1brw1bvv1Lvt0rnr0Lbpz7Tu07n328Ps0LjJrZXZvqbmyrLIrZrMs6jXwL3k1NHUwb3D + savl1c7ezcXfzcTZxbviyL3w1MrTs6a/npG4mIrDppfOsqPPt6bHsqDEsZ/n1sb66d3Xy8HVysfx6ej5 + 8fH27e/w5+X78+3XysOsnZW2o5uxnpK6pZnUvrTMtq3dxL7Pta+4n5bQua3ZwbTXva7fxbXq0b/v1cHp + z7vs0bvt0bnt0bnuz7ruz7rtzrnszbfszrXsz7Tsz7Tsz7Tsz7Tsz7Tu0LXu0LXu0LXtzrTuzbTuzbTt + zLPuzLPvzLPvzLPuzLPuzLPty7XuzLTuzLTuzLTuzLTuzLTty7Tty7Pty7Pty7Pty7Pty7Pty7Pty7Tu + zLTuzLTuzLQAAO3OsOPEpurMre/RsvjavPDTtOvNr+7Qsu3PserOsuzQs+zQs+zQsuzQs+3RtO3RtO3R + tOzQs+7Tte/Ut+rOsefLrunNsOzQs+3RtO3RtO/VuO3TtuvRtOrRs+vStu3SuOzSt+rPtejOs+7TuvHX + verOtt/DrMqvl9a7pN/DrOfNudvBuM64tseysc67t+bW0ezh2+TXz+LQx93IvtW8sPPVysemmbmXicam + mNe7q8yxocevnt7Jtt/Pu9/QvvLi1vXp4N3Rzd3Q0fHn6PTt7fTt6/n079TOx7y0quPbz/Tu4t3LvsGt + odW8ssqvqMSoorWakNW5rt3CtuTKuvDVw+rPu+fNuOnPuenQuOvPt+vPt+rNt+rNt+nMt+jLtenNs+rO + sunNsevNsevNsevNsezOsu3Osu3OsuzMsOvMsOzMsOzLr+zLr+zLr+3Kr+7Kr+zKsevJsuzKs+zKs+zK + s+zKs+zKs+vJs+vJsuvJsuvJsuvJsuvJsuvJsuvJs+zKs+zKs+zKswAA7c2v7s6w89K078+x7s2v7cyu + 8M+y8dGz7c6x7tCz7tC0682x8NK28tS479G28tW58dO38NK279K379G279K28NK26s2x5Mer58mu8dS2 + 89i68de48de58ti78te78NO579K38dW68NW68NW48ta77NG38NS78tfB7NO+7dLA6M6/5s/J5tLR2sfG + 5NPR+e3q9+vo+Ork69fQ4czCxq2i38S5za+jt5iJvJ+Pw6eVw6eV5c68+ubW4cu7382/4tDE4tPI4dPL + 697Z8Onj8uzm9PHp+Pbv8u7l7OXY8ejb8uTY5dXIzryw18K3x7Cpz7auuqGW0bis7tPF+ubW+uPR7c+6 + 68y38NG679G58NG58NG479G479C47s+47tC47s617s6z7c6z7s6z7s6y786y8M6z8M6z8M6z782y782y + 782y78yx78yx7syx78yx78yx78yy7suy78yz78yz78yz78yz78yz7suz7suy7suy7suy7suy7suy7suy + 7suz78yz78yz78yzAADz0bPsyq3ty63wzrDsy63vza/107bz0bPpyazszLH01Lrx0Lb01Lrx0LfszLL0 + 1Lry0rjvz7Xx0bjw0bftzbTy0bj21bzx0bfv0Lb01rvv07Xq0rHq0LPu07bw0rntz7bszrXx07j017vy + 1rjx1bjv1bns0rjw18Lt1MP95dfs1cvi0MzRxMPazcz47er98O746OT87+n55+DTv7bBrKHHsaXJsaO4 + n5DEq5vVu6jix7Lz28jv2cvqzcPt1MrZxbrXxbrbzcHZzcHp4NP7+Or///P//PHk3dDTyr3r4NPw4tbe + zcHMua7Lt6zJt6/Sv7W3o5fLtaf14NH96tvs0cDnyLXz073vzrfx0Ljx0bfx0bfx0bfx0bfw0Lfwz7jv + zrTvzbPvzbPuzbPuzLLuzLLuy7Luy7Luy7LvzLLvzLLty7Lty7Hty7Hty7Hty7Hty7Hty7HuyrDvy7Hv + y7Hvy7Hvy7Hvy7HuyrHuyrDuyrDuyrDuyrDuyrDuyrDuyrHvy7Hvy7Hvy7EAAPDPsfHPsfLRs/DOsO7M + rvPStPTStN+9n9OxleTEqfXUuvXUuvXUuvHQtu/OtPXUuuzMsubFrO/PtfTTuu7OtO7NtPXUuvbVu/PT + ufPVuffbve7WtejPsevQtPDUufLUu/HTuvPWuvPWufHWt/TZu/DWuerQt/DXwvPZyP3m1+nTysu+udPN + zPDq6fv08ffu7Pfu6frx7PHk3tzNxcy8srmom6uYirGci9rDsuzVwuHKt9jArdzBsuvPxfXa0fLc0erV + yuHQxePTx+jd0e/n293VyM/GucO6rdDFufPk2PDf09vGvMq1qsu2q93JwdvIvrypntS7rvnt3vXh0dq7 + quLEsPXWv+7OtvHPuPHQt/HQt/HQt/HQt/DPtvDOt/DNtfDOtPDOtO/OtO/Ns+/Ns+/Ns+/Ns+/Ns+/N + s+/Ns+7Ms+7Msu7Msu7Msu7Msu7Msu7Msu/LsfDMsvDMsvDMsvDMsvDMsu/Lsu/Lse/Lse/Lse/Lse/L + se/Lse/LsvDMsvDMsvDMsgAA8M6x8c+x8tGz8c+x7cuu89K099W45cOm27qd68qw89K578618dG39NO5 + 8dC27Muy1rac07KZ5cSr89O589O578+28dC38NC28tG49di8+Ny97dS15syu6c+y8NO489S88tO68dW5 + 8dS48NS28te58Na67NK48NbB7tTD+uDS483D1cvF5OTi9vf19/by8vDs9PDr9O7m8evi7+bdw7muraGV + uamd18q88OXV3827w6+d1L+u4cm62b207dDH+9/W+uHX8NzR7NnO4NLG3M/CsaSZmo2BpJWJz8G1/e3i + 8N3S2MO40Lmu1b+059LK3crBzLit5Mu+/fbp386+waKQ38Gu9tW/7cy18M638M+28M+28M+28M+27862 + 782378218M2z8M2z782z78yy78yy78yy78yy78yy78yy78yy7suy7sux7sux7sux7sux7sux7sux78qx + 8Muy8Muy8Muy8Muy8Muy78qy78qx78qx78qx78qx78qx78qx78qy8Muy8Muy8MuyAADz0rTvza/uzK7r + yazkwqTnxafz0bT62Lvx0LTry7HvzrXpyK7w0Lbz07nwz7bz0rnpyK7nxq3vzrXx0Lbvz7Xy0rjz07nu + zrTuzrT117vw1Lboz6/ky6zpzrHv0rfv0bnsz7bsz7Tx1Lfy17nu07Xy17zy2b/w1sHgxrXs08ThzMLo + 39nx9O/1+PT09fDw8ev39u749e3y7OPs5Nq8s6fHvLDy4tb/9+v67+HVwrHArZzcxrbv1cfjxbvdv7Xs + 0Mby2M3x2c703tPo1cnfzsLQv7OxoJShkITQv7P97eLs2MzVvrLNtarQuK7kz8fbx77eyr7z3dH9++zN + uKmwkYDgwq/01L7sy7TvzbbvzrXvzrXvzrXvzrXuzbXuzLbvzbTwzbPwzbPvzbPvzLLvzLLvzLLvzLLv + zLLvzLLvzLLuy7Luy7Huy7Huy7Huy7Huy7Huy7HvyrDwy7Hwy7Hwy7Hwy7Hwy7HvyrHvyrDvyrDvyrDv + yrDvyrDvyrDvyrHwy7Hwy7Hwy7EAAPDPse7Mr+/Nr+3MrubEp+LAoujGqO/NsPHQs/LRtvHQt+3Ms/HQ + t/DPte7Ns/TTufXUuvjYvvjXvfHQtu3NtPTTuffXvfPSufDQtvLUuPTYuuzUtOzStfDVufHUuvDSuvDT + ufHTuO7Rte7TtPDUtu3St/HXve7VwOTKuezSxNG8sNHHvuzq4/f28PX07Pb17fb06/Tt5O/l3NzQxtPG + uurZzf3z5fzp3OPKu8u0pcasns+1pebLu/TXyebJvt7Dt+bKvvHXyvXd0O/ZzebSxNbDtb+rnaqWiMq2 + qPnp3PXh1OLLveTMv+DJvd3JvtbDuejTx/jt4P346r6klKiLeuTFsfDQuu3Mte/Otu/Pte/Pte/Pte/P + te7Ote7Ntu/NtPDNs/DNs+/Ns+/Msu/Msu/Msu/Msu/Msu/Msu/Msu7Lsu7Lse7Lse7Lse7Lse7Lse7L + sfDLsfDMsvDMsvDMsvDMsvDMsu/Lsu/Lse/Lse/Lse/Lse/Lse/Lse/LsvDMsvDMsvDMsgAA8M6x8dCy + 8tCy786w7cuu68qs6sms7syu7s2w68uw68ux7c2z7s2078618M+18M+17s608NC38M+2786178+18dC3 + 89K589O68dK47tC07tK07NS08tm689i77NC17tC39ti/9de879K28NS279O27NK269G48tjD/OLR7NPE + xK2hvK6j3tbN9+/l+/Pq+/Tq7+Ta3tDF1MS5wK2gxrGl18Gz8tvM8tnKzbKkyayezK2ezq+g4sS27dHD + 8tbI3MK04MW36dDC7tXH9+HS4s2+w66gvKeYqJSFrpmK59HC+eTV7NbG893O5tDE3Me81MG45M7D9/Dj + ++ncsZSFqo596Mq27c2368u07sy17s207s207s207s207cy07cu17cuz7suy7cqy7cqx7cqx7cqx7cqx + 7cqx7cqx7cqx7cqx7Mmx7Mmw7Mmw7Mmw7Mmw7Mmw7cmw78mw78qx78qx78qx78qx78qx7smx7smw7smw + 7smw7smw7smw7smw7smx78qx78qx78qxAADz0bPz0bPy0LLwz7Hvza/uza/vza/xz7Hw0LPtzbLuzrTv + zrXwz7Xwz7Xw0Lbx0Lbwz7Xz07n007nx0Lfw0Lbw0Lbx0bfy0bjy0rfw0rfv07Xq0bHw1rj1277z1rvw + 0rr01bzy1brx1Ljw1Lbs0bL23MDx173s073jyrjLsaPYvrLZxLfOu67gzsHx39HizcDSvK/Ks6W/p5rG + rp/JrZ/MsKDw0sP42svUtaXQsKDkw7Tgvq7fwLHw1Mfs0sTp0MLs0sTiyLrcwrXgyLrErp/Erp/Hs6Sr + loelkYLOuqvr1sfs18jv2svn08bk0cbax73jzcH67uHx3M6vk4O3mojv0b3y0rvtzLTwzrbwz7Xwz7Xw + z7Xwz7XvzrXvzbbvzbTwzbPvzLPvzLLvzLLvzLLvzLLvzLLvzLLvzLLvzLLuy7Luy7Huy7Huy7Huy7Hu + y7Hvy7Hxy7HxzLLxzLLxzLLxzLLxzLLwy7Lwy7Hwy7Hwy7Hwy7Hwy7Hwy7Hwy7LxzLLxzLLxzLIAAPHP + svDOse7Nr+3Mru7Mr+7MsO/NsPDOsu3Mr+jJruvKsOzLsu3Ms+/OtfDPtfHQt/HRt+/Pte/Pte/Pte/P + te/Pte/OtO/OtfDPtu/RtunNr9O6m9G4m+fMsPXZvvLTu+3Qtu/St+3QtO3StPTYuu3TuPHYvt7FsLmf + jruhk9O5rPXby9i+rr6klcuxoc2zo8qvoMeqnMSnmNi7qtu9rNKyoOvKuPDRv9a2pNOzoezMuuXGs9q9 + rOzTw+nSwuTNve3Vxu/YyeDJudnCs9nCsurVxO/bys+8q7CejbupmNvJuOXUxObVxeTUxeLRxtjGvN/K + v/vw4+LPwa+Tg8Onle7PvOzMtuzLtO7MtO7Ns+7Ns+7Ns+7Ns+3Ms+3LtO3Ls+7Lsu3Kse3Kse3Kse3K + se3Kse3Kse3Kse3KsO3KsOzJsOzJsOzJsOzJsOzJsOzJsO3JsO/JsO/KsO/KsO/KsO/KsO/KsO7JsO7J + sO7JsO7JsO7JsO7JsO7JsO7JsO/KsO/KsO/KsAAA89Gz782v7syu7cut782v8c+y8tCy8c+y8M6y7s6z + 78618M+18M+18M+18M+28M+28dC268qx6smw78+18tK489O58tK48tG38tK38NO38da33sWl28Gj6s+y + 89a78NG57tC27tC17tG09Ni689e56tC05syzyrGbrZOCtpyOw6ib6s6/9NfE0LKgxqmW2bqnz7CdwKKP + z7Gdz7Cc3b2pza2Z0rOf0LGezrCd07Wh5May6s245Mq37NbE69bF6NLB6tXE79rJ6tTD5M++48299eHP + /+7c7dvKxrOjuqqY2cm469zL59nH8OHR59XK28i/4Mu//vTn2ce4sJSF0LWj8NK+68u17s2278628M+1 + 8M+178+178+17s617s227s20782z7syz78yy78yy78yy78yy78yy78yy78yy78yy7suy7sux7sux7sux + 7sux7sux7sux8Mux8Myy8Myy8Myy8Myy8Myy78uy78ux78ux78ux78ux78ux78ux78uy8Myy8Myy8Myy + AADrzLDrzLDnyKvnx6vqyq7rzK/szbDszbDuz7Px0bbw0Lbw0bbwz7XuzrPtzbLszLHry7Dnxqznx63t + zbPx0bby0rfy0rjx0bbx0bfx07bw1Lbv07Xx1rjx1rju0bbu0Lbz1Lvz1bvw07ju0bbw07n228LXvKW3 + nIepj36xloi9oZLKq5rpyrfiw6/NrprWtqPIqZbCo4/evqvTs6DWuKTQsZ3HqZbDp5Tdwa3gxLDavarl + yrbr08Hp0sTq1sjw3M/v2s3o1cjt2s3w3dDl08bl0sT15df35tjRv7K8rJ/Xx7nr2szq2cvt3dHo2c3Y + yb3cybz88+TOvKyvk4Pbvqvz077pyrLuzLTvzbXuzrTuzrTvzrTvzbXwzLXwzLXvzLPwzLLwy7Lvy7Hv + y7Hvy7Hvy7Hvy7Hvy7Hvy7Hvy7HuyrHuyrDuyrDuyrDuyrDuyrDvyrDvyrDwy7Hwy7Hwy7Hwy7Hwy7Hv + yrHvyrDvyrDvyrDvyrDvyrDvyrDvyrHwy7Hwy7Hwy7EAAOjKsfHUuufKsOjKsfDTue3PtunNs+nLsuvM + svDQtO/Psu/Qs+/Psu/PsvDQs+/Qs/DRtO7Psu3Ose3Nse7Ose/PsvDQtPLTtvPUt/TUuPPUuPTUuPPU + uPLTuPLUufLTufHSufHSu+/Que7PufXWwe7Ou8ytmsCikK6RgMapmLyejb2djtOyod27q9m3ps+vnsmo + l82tnNOzosysm86xn8yuncGkk8munOrPveTJt9e8qufMu+/WyezTy+3W0PLd1/fh2/He1+jWz+PTzOzc + 1d7Ox+HSyvjn4NrIwLGdl8u2sO7X0fTe2O7a0+bc0cvCtt7Rw/3y5Mmzo7aaiOnKt/bUv+vJsfHNtvDN + tu/Ntu/NtvHNtvHMt/LMt/TMtvTNtfTNs/TOsvPNsvPNsfPNsfPNsfPNsfPNsfHLsPHLsPDMsPDKr/DK + r/DKr/DKr/DKr/HKr/HKr/LLsPLLsPLLsPLLsPLLsPHKsPHKr/HKr/HKr/HKr/HKr/HKr/HKsPLLsPLL + sPLLsAAA5siv7tC448at48at68216cuz6cy07M627tC38dK48M+17c2z7cyy7cyy7s208M+18tK48M+1 + 7cy07s2178+18M+28dC28tG389K489K49NS39NS39NO489K58tO58dK68dK68dK679C77s+779C84sSx + wqSRvJ+OtZeGzrCexKeWupqKyaiY07Kj0K+gy6qbwaCRwaCRzK6dy62dyq6dvqKSxqqa3MCw6M292sCw + 4ci38NbG7tXI8NfR7tfR8NvU8+DZ8+Ha8N7X69vU6tvU69vU28zF79/Y4M7HopCJvaqj8dvV7dXP8d7X + 6uDUxb6w6+DR/e7fwaqawKKQ7My59NO/8M628My18M22782178218cy38cy28sy28sy28s208s2z8s2z + 8c2z8cyy8cyy8cyy8cyy8cyy8cyy8cyy8Muy8Mux8Mux8Mux8Mux8Mux78ux78ux8Myy8Myy8Myy8Myy + 8Myy78uy78ux78ux78ux78ux78ux78ux78uy8Myy8Myy8MyyAADZu6Ldv6fRs5rTtZzixKvnybHrzbTt + 0Lftz7Xu0Lbu0LXv0Lbv0Lbv0Lbv0Lbv0Lbv0LXu0LXuz7Xu0LXv0Lbv0Lbv0bbw0rfx07jx07jy1Lny + 1Lny1Lnx07jx0rnx0rnw0brv0Lrw0rzx1MDw0r7gwrC/oZC+opG9oZDXuqvKrp+5m4vBo5LJq5rLrZzN + rp7DpZS/oJDJrJvMr57MsJ/Krp7Kr57RtqbexLPUuqrZv67v18b03M/v2dHu2dPu2tTx3tf149z35N7z + 4tvs3db25t/h0cvTw7zJuLGwnpe+q6Tjzsj139nu29Tu5dnMw7b17+Dx39C8o5PLrpzszLntzLfvzrbu + zLTvzbXvzbXvzbXvzbbwzLbyy7byzLXyzbTyzbPyzbPxzbPxzLLxzLLxzLLxzLLxzLLxzLLxzLLwy7Lw + y7Hwy7Hwy7Hwy7Hwy7Hwy7Hwy7HxzLLxzLLxzLLxzLLxzLLwy7Lwy7Hwy7Hwy7Hwy7Hwy7Hwy7Hwy7Lx + zLLxzLLxzLIAAOXHruLEq8yulsyuluHDquzOtu/RuOvNtenMsvDRt+/Rt/DSuPHTufHTufDSuPDSuO7Q + tu/Rt/DSt/DSt/DSuPDSuPDSuPHTufHTufHTufLVuvLVuvLUuvHTuvHTuvHRu/DRu+7Ru/DSvfPWwvXX + xeXIt8OmlcKllcGlldu+r8msnbqdjbyfj7udjcKlltK0pM6woMSnl8asm8WqmsmuntS6qtO7qtK6qufN + vd/Gtta/rerTwvPcz+7X0PDb1fDd1vDd1/Ti2/nn4Pfo4fDh2vjp4unb1Ma3sLelnrqnobypos25s/fh + 3O3a0uzg1drOwfz05tjHuL2ik9u9q+7Nue3KtfHOt+7Nte/Otu/Otu/Otu/Ot/DOt/DNt/LMtvLNtfLN + tPLNtPHNtPHMs/HMs/HMs/HMs/HMs/HNtPHNtPDMtPDMs/DMs/DMs/DMs/DMs/DMs/DMs/HNtPHNtPHN + tPHNtPHNtPDMtPDMs/DMs/DMs/DMs/DMs/DMs/DMtPHNtPHNtPHNtAAA7M619Na97M+2686179K56861 + 6sy07M+27c+38NG479C47M216syz6syz7c+279G48NG58NG68NK58NG579G479G48NG479G479G479G4 + 8NO48NO48NK579K579G679G67tG77dG87NC779G/9NfG5cq5wqaXwaWWv6OU1bmrwKSVvKCRv6KUuJuN + wqaX17us3L+xz7amyrGhxaucxq6ey7OkzLOk0bip3se41b+w1r+w5c+/59LG69bP7trU7tzW7tzV7t7X + 8+Pc9ejg8eTc8OPb6NvT2svEyrq0w7OsxrStzru07NbQ6tjQ4tXK4tbJ++3fxrKivaOU5MW0782678u2 + 8s647Mu07cy17M217M217My27My27My27cu17su078y078u07sy07suz7sqz7suz7sqz7sqz78u078u0 + 7sq07sqz7sqz7sqz7sqz7sqz7sqz7sqz78u078u078u078u078u07sq07sqz7sqz7sqz7sqz7sqz7sqz + 7sq078u078u078u0AADtz7bszrbtz7bsz7btz7bt0Lft0Lfv0bnsz7bqzLPw0rrtz7blx67myK/v0bjy + 1Lztz7bt0Lfv0rnv0bjv0bjv0bjx07rx1Lvy1Lvx07rv0bjw0rnx07rz1Lzy1r7y1r/y1cDz1cHv0r/t + 0sDy1sbkx7fDppjGrJ3Cp5nTuKrBppjCp5rEqZvGrJ7JrqDRtqnozcDiyLrSuKrNs6XKtKXPuKrKs6TX + wbLeybrXwrPl0MHs18nizsPr2NDu3NXs2tPz4dr05N3x4dr36uL26eH16ODm2dHSw7zDs6zHt7DcysPb + ycLq19Dx4Njh0sjt39Lp2cvAqZvKrp/rzLruzbnwzLj00LnszLTvzbXtzrXszrXszbbrzbbrzbbszLXv + zbbxzrbxzrbyzrbyzrbxzbXxzrbxzbXxzbXxzbXxzbXwzLXwzLTwzLTwzLTwzLTwzLTwzLTwzLTxzbXx + zbXxzbXxzbXxzbXwzLXwzLTwzLTwzLTwzLTwzLTwzLTwzLXxzbXxzbXxzbUAAO3Pt+zOtevNtOnMs+rM + tOrMtOzOte7QuOvOtufLs+rOtuvPt+vPuOzQuO3RuezQuOrPt+fMtefLtOjMtOnOtuvPuOvQuOvQue7S + uvDUvPDSufHTuvDTu/DUvPDUve/Tvu3RvuvQve3Sv+/Tw+nOvdrAsMCml8iuoL6klsiuor2jl8iuoc60 + ps2zpcqwotC3qeTNvt/IudG6q8avoMizpNO+r8+6q9C9rtC9rtPAsuzZyvnm1uXTyOHOx/He1+nZ0vDg + 2fjr4/Pm3vPn4Pjt5vLn39HHvsC0rc/But7QyN/PyN3LxOvZ0uzc09rKwOHRxdC9sMOrnd3AsezMu+/N + uvTQvPHNtuzLs+vNtOvNtOvNtOvMtevMterMterLtOzMte7Mte7Mte7Mte7Mte3LtO3Mte3LtO3LtO3L + tO3LtOzKtOzKs+zKs+zKs+zKs+zKs+zKs+zKs+3LtO3LtO3LtO3LtO3LtOzKtOzKs+zKs+zKs+zKs+zK + s+zKs+zKtO3LtO3LtO3LtAAA8NK579G47c+27M6168617M627dC37tG47tG57dK669C47NG579O88NS8 + 7tO77tK68NS88dW97tO77tO78dW98ta/79O769C479S89NjA8tW989a+8ta+8ta+8dbA79TA7tO/69G9 + 79TB8dbG58y928Gxw6mb0LWnwqebxKufw6qezLKm0Lirz7eqzbSn1b6x5M7B2cO1zLWowKmczbmr2sa4 + 2MW40b6wybeq1MK18eDS/eve69nP6NbO9uTe6dnS79/Y+u7m9ejg7+Tc+e7m5tvT0MW+2s7G7uHZ5tnR + zr631MO98N7X+ejg4tHH28q+vaiczbSl8dLC782878259tK+78u178627M+27c+268+27M637M636863 + 68227M6378638M638M638M637822786378227822782278227sy27sy17sy17sy17sy17sy17sy17sy1 + 782278227822782278227sy27sy17sy17sy17sy17sy17sy17sy2782278227822AADt0Lft0Lft0Lft + z7btz7bszrbqzbTpzLPqzrXt0bru07vt0brr0Ljs0bnv07zw1b3v07vu07vs0bnqz7jv07vv1L3ozbXi + x6/myrPv07vu0rvv1Lzv1L3w1L3v1L/u07/t0r7s0b7u08Pu1sbs0sPiyLrGq57Uuq7Jr6PIrqLPtanT + uq/Rua7OtqvRua7hyr/l0MTQu6/NuKzLtqrKuKvUwbTYxrnVw7bSwrXj0sX47OD+9en05Nrp2dDy4Nnl + 1c/t3tf36uLx5d3q4Njr4tnSx8DYzsbx5t706ODm2NDXx8Dh0crv3df87eXt3NLXxbm4opbUu63w0sPt + y7rvy7jzzrruyrPuzrbsz7bsz7bq0Lbpz7fqz7fpz7frzbbszbbtzbbuzbbuzbbuzbbtzLXtzbbtzLXt + zLXtzLXtzLXsy7Xsy7Tsy7Tsy7Tsy7Tsy7Tsy7Tsy7TtzLXtzLXtzLXtzLXtzLXsy7Xsy7Tsy7Tsy7Ts + y7Tsy7Tsy7Tsy7XtzLXtzLXtzLUAAO3Ot+7QuO/RuvDSuvDSu+7QuOrNtejKsubIsefMtPHVvfLWvu3R + uu7Su/TYwPPXv+nNtu3Ruu3SuuvQuPHVvfPYwOzRueXKs+vPuPXZwe3RuezRuu7SvfDTv+/UwO/VwPDU + we/Uw+7Swu7UxfTay+zTxciuode9sNK4rNC3q9vBtdnAtM+4rMawpMy2quDKvt7IvMWwpM68r9jFuMe0 + p8q3q9C/stPDttbFuOTTxvPk1/fp3O7e0+XTy+fVzuTTzPLi2/ns5PTo3+zi2t7UzMq/t+PY0PHn39zQ + yM3AuMi6s86+t9fHwPrr4fXj2NfDtrymmNm/r+vLvO/Mu/PQu/PRu/PQue/Otu3Pt+3Pt+vQt+vPuOrP + uOrPuOzOt+3Ot+3Nt+3Nt+3Nt+3Nt+zMtuzNt+zMtuzMtuzMtuzMtuvLtuvLtevLtevLtevLtevLtevL + tevLtezMtuzMtuzMtuzMtuzMtuvLtuvLtevLtevLtevLtevLtevLtevLtuzMtuzMtuzMtgAA8dG78NC7 + 8dC78dG78tK88dG87s646cm05Max5Miz6c657tO+8dbB8NXA79S/7tO+7NG87tO+7tO+7tO+79S/79S/ + 79S/7tO/8NXA8NXA8NXA58y369C889jE79bD69K+7dPC7tPE6dC/69PB9d7M8NrKyrSk07yszLWm0Lmp + 38i63ca5zLWqyLGl28S448zA0Lquz7mt2sS5zrisz7yvzruu1MG01MG018W428u+1cS31sW45dXI5tTK + 28jA3szE797W8+Ha8+Ha9eTe2srE2MjC9eji8+Xf28zF2MvD18vC1cnA6NzR9eXa+eTZ0rmuxKuc1buq + 6s669Ne/79G57c+389O978+58M+78M+879C879C77tC77NC57NC47c+578667s257s257s257cy47s25 + 7s257c257cy47cy47My47Mu37Mu37Mu37Mu37Mu37Mu37Mu37cy47cy47cy47cy47cy47Mu47Mu37Mu3 + 7Mu37Mu37Mu37Mu37Mu37cy47cy47cy4AADuzrvtzbrtzbruzrvw0L3y0r/x0b/v0L3sz7zs0r7s07/t + 1MDs07/r0b3p0Lzp0Lzq0b3s07/s07/s07/s07/s07/s07/s08Dt1MDt1MDu077s0bzv1cHx2MTt1MDs + 07/v1sTt1MTp0cDt1sT2383u18jJs6PTvKzLtKTRuqvdx7fex7rPt6zLs6fdxbngyr7Pua3Ru6/cxbrS + vLDVwrXSv7LSwLPTwrXdzL/k08fdzL/cy77o18vq2M3ezMLgzcbw3dXy39jx3tj14t3dysXXxcDy5d/4 + 6ePo19Hl18/i1szf08nr39Pu3dH44tfJsKTAp5jawa7r0bvu07zs0Ljv0bnx0rzvzrnvz7vvz7zvz7zt + z7zt0Lvt0Lrs0Lntz7ruzrvuzrvtzrvtzbrtzbrtzbrtzbrtzbrtzbrtzbrszLrszLnszLnszLnszLns + zLnszLnszLntzbrtzbrtzbrtzbrtzbrszLrszLnszLnszLnszLnszLnszLnszLntzbrtzbrtzboAAO/Q + ve/Qve/Qve/Qve/QvvDRvvHTwPLTwfDUwO7Tv+3Vwe7Vwe7Vwu3Vwe3UwOvTv+rRvezUwO3Vwe3Vwe3V + we3Vwe3Vwe3Vwu7Wwu7Wwu7Uv/LXw/Laxe/Xw+zTwO3Twe7WxO7XxOzVw+/Yx/fgz+rTw8mzo9W/sMy2 + ptW/sN7Jud3GudC5rc23q9zFud3Hu9G7r9W/s+HMwOPPwvDd0OnWydvLvtjIu+TTxuvazejXyurazO/e + 0uvZzuHPxOLPx/De1vLg2fTh2vrn4unV0c69uOXW0Pfn4OjY0eLTzNvPxdnNw93SxtPEuPTf1MOsoMCm + mOLJt+3Tv+vPue7QuPHTu/LTvPDQu/DRvfDRvvDQv+7Rvu7Rve7RvO3Ru+7QvO/Qve7PvO7PvO7PvO3O + u+3PvO3Ou+3Ou+3Ou+3Ou+zNu+zNuuzNuuzNuuzNuuzNuuzNuuzNuu3Ou+3Ou+3Ou+3Ou+3Ou+zNu+zN + uuzNuuzNuuzNuuzNuuzNuuzNuu3Ou+3Ou+3OuwAA79K/8dPB8dTC8NPA7tG/7M+97M687dC+69C96M+8 + 6dC969K/7tXC8NfE8djF7tXC69O/7NPA7NPA7NPA7NPA7NPA7NPA7NPB7dTB7dTB7dXC79fD7tbC7dTB + 7dTD6c+/5My769TC7tfG7NXG89zN4sy8x7Gh1cCxzLip2MS13sm93Ma60Luv0buw3Ma72cS40ryx2MO3 + 5NLF8uDT/Ozf9uPW3cu/08O228q9387B4NDD5tfK7NvQ6dfM4M7D4c7G79zU8d7X9OHa/Ork8N3Yz765 + 49PO+erk7t7X5dfP39TK5trP69/U18m96tfNx6+kyK+h4sm569G+6tG669G57tG58NK779C88NC978+/ + 78+/7dC+7dG969G869C769C77M686868686868686867686868676867686768676s276s266s266s26 + 6s266s266s266s26686768676867686768676s276s266s266s266s266s266s266s26686768676867 + AADt0cDw1MPz18f02Mfx1cXu08Pt0cDs0cDt1MPv1sXs1MLq0sDr1MLv18Xx2cjx2cfv2Mbu1sXu1sTu + 1sTu1sTu1sTu1sTu1sXv18Xv18Xx18bv1MTp0cDt1sTy2snn0L3aw7Lo0cLy28vr1MXz3M3cx7jFsKHY + w7TQu6zey77hz8Lkz8PcxrvbxrvjzcLbxrvTv7XZxbrl0cb759z97+T76d7h0MXWx7vczMDby7/ezsPn + 18vu3tLv3dLk0sjl0svx39fx39j14dr+7Oby4NvZx8Hs4Nr/9e/15d7l1s7d0sjp3dPx5dnXyb3n0srS + u7HUu67iybjq0r7w18Lv1Lzr0Ljv0r3y0b7x0r/w0sHw0sHu0sHu0sDt0r/t0r7t0b7t0b/s0MDs0L/s + 0L/s0L/s0L/s0L/s0L/s0L/s0L/rz7/rz77rz77rz77rz77rz77rz77rz77s0L/s0L/s0L/s0L/s0L/r + z7/rz77rz77rz77rz77rz77rz77rz77s0L/s0L/s0L8AAOzSwe3Twu3Twu3Twu3TwuzSwezSwezRwezT + wu7WxO3Vw+3Vw+3Vw+3WxO7WxO7WxO3WxO3Vw+3Vw+3Vw+3Vw+3Vw+3Vw+3VxO7WxO7WxPHYx+/XxuvT + wevUwvDZyO7YyOzVxfbi0vnm1uzXyO7Zy+HMvcmzp93Kvc+8rtbDtuDMwOHOwt3Kv9zIvd3JvtvHvNjE + udrHvOLQxfDe0/zz5/Pk193NwdrKvuTWyeXYy97QxN/QxOrZzvHf1OXUyt/MxPLf1/Dd1vnm3/ro4uvY + 0+HRy/Di3Pfo4vbl3/Hi2tnOxNXJv+TYzNPFutnDvM64sNjBtePLvOfOu+/WwO/Uv+nMuOvOuu7Qvu7Q + vu7QwO7QwOzQwOzQwOrQvunQvenPvunPv+nPv+nPv+nPvunPvurQv+rQv+rQv+rQv+rQv+nPv+nPvunP + vunPvunPvunPvunPvunPvurQv+rQv+rQv+rQv+rQv+nPvunPvunPvunPvunPvunPvunPvunPvurQv+rQ + v+rQvwAA7tXF7tXE7tXE7dPD7dTD7dTD7dTD7dPD7dXE7tbG7tfG79jH79jH79jH79jH79jH7tbG7tfG + 7tfG7tfG7tfG7tfG7tfG7tfH79jH79jH8tvK8NnI7tbG7tfG7NXF3se3072u4My979vM7djK7djL5dHF + zrqt3sq/0b6y1MK24c7D49DF4MzC3cnB3MnA3MnA2se+3crB5dTK8N/V/vDl8eHX3M3C2svB6drQ7+DW + 5dbM3tDF5NTK797S79zS5tPL9uPb9+Td+OXd8d7Y4s7K7NzW9OTe8uLb9ufg8+Xd39TK1Mi+1sq+1Ma8 + 3MjB07y038e96NHD6dLB7dbC7tXB7tO+8dTA8NK/8NLC79LD79LD7dLD7dPC7NPA69O/69LA69LB69LB + 69LB69LB69LB7NPC7NPC7NPC7NLC7NLC69HC69HB69HB69HB69HB69HB69HB69HB7NLC7NLC7NLC7NLC + 7NLC69HB69HB69HB69HB69HB69HB69HB69HB7NLC7NLC7NLCAADt1cXt1cXt1cXs1MTs1MTs1MTs1MTr + 08Ts1cXt1sft1sbu18fu18fu18fu18fu18ft1sbt1sbt1sbt1sbt1sbt1sbt1sbt1sbu18fu18fr1MXv + 2Mjv2cnw2cru2MjfybrOuarLt6jcx7nr1srq1snp18rVwbXZxbvSv7TSwLbhz8Tl0snhzMXcyMHayMDa + yMHbyMHfzMTn1s7y4dj76uLx4NfczcXWyL/k1czu4Nfp3NPi08vi0sjq287z4Nbp1s7v3NT14tvt29Tn + 1M/iz8ru3df15d/77eb15t/f0cjh1cvp3dPYzMDRwrnWw7zNuLDdx73s1cfu1sbu1sPs07/v1MDz18Tv + 0cHv0sPu0sTu0sTs08Ps08Ps08Lr08Hq0sLq0sLq0sLq0sLq0sLq0sLr08Pr08Pr08Pq0sLq0sLp0cLp + 0cHp0cHp0cHp0cHp0cHp0cHp0cHq0sLq0sLq0sLq0sLq0sLp0cHp0cHp0cHp0cHp0cHp0cHp0cHp0cHq + 0sLq0sLq0sIAAO3Wxu3Wxu3WxuzVxezVxezVxezVxevVxe3Wxu7XyO7XyO/Yye/Yye/Yye/Yye/Yye7X + yO7XyO7XyO7XyO7XyO7XyO7XyO7XyO/Yye/YyfHayvfg0PHby+rUxO7YyvTg0fLdzu3XyevXyerXyu7b + z/Xh1uHNwtXDuNTCt9PBtuPSxunXzuLPyNvJwdvHv9zKwt7Lw+PQyOzb0vbl3Pjp4PPl3OPUy9fHv9zP + xujd0+re1Ofa0OfYzuvazu/d0ufUzObTzO/c1ebTzOvY0+rW0fbn4ffo4vPi3O/f2efY0One1Ojc0t7R + xufY0NPBusexrNnDue3WyPLbyvHZxuzTv+3UwPLXxPDUw/HUxfHUxvHUxu/Vxe/Vxe7VxO3Vw+zUxOrU + xOvUxOvUxOvUxOvUxOzVxezVxezVxerTxOrTxOnSxOnSw+nSw+nSw+nSw+nSw+nSw+nSw+rTxOrTxOrT + xOrTxOrTxOnSw+nSw+nSw+nSw+nSw+nSw+nSw+nSw+rTxOrTxOrTxAAA69bH69bH69bH6tXG6tXG6tXG + 6tXG6dTG7NbH8NjK79jJ8NnK8NnK8NnK8NnK8NnK79jJ79jJ79jJ79jJ79jJ79jJ79jJ79jK8NnK8NnK + 8tvL9t/P8drM7NXH7tjJ7tnK6dTH69XJ79vP7drN8t/S/Ovg5tXJ08K218W60b+049HH69jQ49DJ3MnC + 2cfA3MnC38zG5dLM7tzV9+Xe8eHa9eXe7NzV3MzF283F5tnR6dzU5NfO6NnQ7d3R59bL6NbN5dLK6dbP + 4M3H8N3X5dLN9Obh++7o7NzV5tXP6trT5drQ28/F39PH8+Tb4tDI0Lq02sS66dTH79rJ8drH69PA7NPA + 89nH8NXE8dbH8tXI8tXH8NbG8NbG79bG7tbF7dXG69XG6dXG6tXG6tXG6tXG69bH69bH69bH6dTF6dTF + 6NPF6NPE6NPE6NPE6NPE6NPE6NPE6NPE6dTF6dTF6dTF6dTF6dTF6NPE6NPE6NPE6NPE6NPE6NPE6NPE + 6NPE6dTF6dTF6dTFAADs1srs1srs18rs1srs1sns18rt18rs1srt18ru2Mvu2Mvv2czv2czv2czv2czv + 2czu2Mvw2czw2c3u2Mvt1srs1snt1sru2Mvw2s3x283t2Mnu2crv2svu2s3u3M7u2s3r2Mzt3NDu3dHt + 3dH15tv87+T26N7Tx7zRxLnVyL3i1s3t39bo2dDdzcXZysHbzMPf0cjl187v4dj26uDu4djy5dzx5Nvh + 1Mvj187p3NPo3NLm2tDm2M/r3NLq3NLj1Mrl1s3q29Lh0cnn18/m2dDv4tn57ePv4tjazsTd0cfs4Nbq + 3tTr39Xi1szv3tfVw73Rvrbjz8Xt2Mzu18nt1sbv2Mfw2Mbu1sTv18Xv1sbt1sbt1sfs1sfr1cfq1cbq + 1Mfr1Mjr1Mjr1Mjr1Mjr1Mjs1cns1cns1cnr1Mfr1Mfq08fq08bq08bq08bq08bq08bq08bq08br1Mfr + 1Mfr1Mfr1Mfr1Mfq08bq08bq08bq08bq08bq08bq08bq08br1Mfr1Mfr1McAAO3YzO3YzO7Zze3Zze3Z + zO3Zzu7azu7aze7aze7Zze7Zze/azu/azu/azu/azu/azu7ZzfDcz/Hc0O7ZzezXy+zXy+zXy+7ZzfHc + 0PLd0fHczvHbzu7azu3azezazevZzOvbzuzc0ObXy+XXy/Ll2fvw5v7z6t3TytLJvtXLw9/UzfDl3O/j + 2eHVzN3RyN/TyeLWzejd0/Hl2/js4/Lm3fHl3fDk2+PYzuzg1vDk2+3g1+3h2Ojc0+ba0ere1eLWzere + 1fDk2+nc0+ba0e3g1+jc0+nd1Ovf1uTYz+jc0vTo3/Lm3fLm3d7SyfLj29zNxtLBueDNxezZz+zYy+7X + ye/Zye7Xxu/Xxu/Yx+7YyO7YyOzYyezYyerXyurWyuvWyu3Wyu7Wyu7Wyu7Wyu7Wyu/Xy+/Xy+/Xy+3V + ye3VyezUyezUyOzUyOzUyOzUyOzUyOzUyOzUyO3Vye3Vye3Vye3Vye3VyezUyOzUyOzUyOzUyOzUyOzU + yOzUyOzUyO3Vye3Vye3VyQAA7NnM7NnM7NnM69nM7NnM7NnM7NnM7drN7drN7drN7drN7tvO7tvO7tvO + 7tvO7tvO7drN7tzP7tzP7drN69jL69jL69jL7drN7tzP793Q7dfM7tjM7drN7tvO7NvP69rN6NnM6NjM + 5NXJ4dPI7eDU+O3j+u/l5t3T1cvB0ci/2c/H7uHa7uLa4tXO39LK4dTM5NfP59rS7uHZ9Off8OPb7uHZ + 697W4dTM7N/X8uXd7uHZ7+La6dzU4dTM4dTN5NfP7eDY8+be7+La6t3V6t3V39LL2czF59rS8OPb7eDY + 7eDY7N/X7eDY3dDI8ODZ6NnS2cnA3czC6djN6tjL6tbI7NbH7NXG7NbH7dfH7dfH7dfI69fI7NfI6tbJ + 6dbJ6tXJ7NXJ7NXJ7NXJ7NXJ7NXJ7dbK7dbK7dbK7NXJ7NXJ7NTJ7NTI7NTI7NTI7NTI7NTI7NTI7NTI + 7NXJ7NXJ7NXJ7NXJ7NXJ7NTI7NTI7NTI7NTI7NTI7NTI7NTI7NTI7NXJ7NXJ7NXJAADv3M/v3M/v3M/u + 287v3M/v3M/v3M/w3dDw3dDw3dDw3dDx3tHx3tHx3tHx3tHx3tHw3dDx3tHw3dDw3dDw3dDw3dDw3dDw + 3dDx3tHy39Ls2czt2s3u287w3dDv3dLv3dPu3tPu3tPt3NPq3NPw4tn37OL37OTv5tzXzsbSyL/a0cjr + 4dns4Njj1s7h1Mzj187n2tLo3NPu4dnz5t7v4trs39fq3dbj1s7t4Njw49vr3tbw49vu4dnj1s7e0cnk + 18/s39fy5d3z5t7u4dnq3dXf0srUx7/e0cnl2NDh1Mzh1Mzh1Mzj1s7bzsbu4Nr26eLh0sraysHq28/u + 3dDr2Mru2crt2cru3Mnv2srv2svv2svt2szt2s3r2c3r2czs2czu2Mzu2Mzu2Mzu2Mzu2Mzv2c3v2c3v + 2c3u2Mzu2Mzt18zt18vt18vt18vt18vt18vt18vt18vu2Mzu2Mzu2Mzu2Mzu2Mzt18vt18vt18vt18vt + 18vt18vt18vt18vu2Mzu2Mzu2MwAAOzaz+zaz+3b0Ozaz+3b0O3b0O3b0O3c0O7c0e7c0e7c0e/d0u/d + 0u/d0u/d0u/d0u7c0e3b0O3b0O3b0O7c0e7c0e7c0e7c0e7c0e7c0fDd0fDc0e7c0e3b0O3c0e3e0e3e + 0+3f1eze1ejb0uve1vLo3/Po4ffu5tzSytLKw9zTzOrf2Ojc1uDUzuDUzuXZ0+fb1end1+7i3PLm4O3h + 2+rf2Ovf2eTY0u3h2+re2OPX0e3h2/Tp4+ve2NjMxuHVz+fb1evf2fPn4e3h2+nd1+TY0tnNx9vPydvP + ytvPyOnd1+fc1uTY0ufb1ejc1fzw6uLVzdTGvuna0O/e0urZy+7cze7azOzZyu3ay+3ay+3azOvazeva + zerZzenYzerYzezYzezYzezYzezYzezYze3Zzu3Zzu3ZzuzYzezYzevXzOvXzOvXzOvXzOvXzOvXzOvX + zOvXzOzYzezYzezYzezYzezYzevXzOvXzOvXzOvXzOvXzOvXzOvXzOvXzOzYzezYzezYzQAA793S8N7T + 8N7T793S793S793S793S797T797T797T797T8N/U8N/U8N/U8N/U8N/U797T8N7T8N7T8N7T8N7T8d/U + 8d/U8N7T8d/U8d/U9OHW8+DV8uDV8N7T797T79/U7t/V7d7W7t/X6t7W6t/X9Ori+vDo/fTt5d3W0cnC + 2tLL5dzV6t7Y5trU4tbQ5trU7eHb8OTe8+fh9+vl8OTe8ubg9Oji7uLc7eLc7ODa69/Z7+Pd8OTe6t/Z + 59zW6NzW5trU69/Z9+vl9enj6t7Y6NzW69/Z6d3X4tbQ6+Db/PLs8+fh8eXf9enj69/b+e/p69/Y1MjA + 5dbO8eLX797S7dzP7dvN7t3N7t3O7t3P793Q7d3Q7dzR7NzQ69vR7NvQ7dvQ7dvQ7dvQ7dvQ7dvQ7tzR + 7tzR7tzR7tzQ7tzQ7dvP7dvP7dvP7dvP7dvP7dvP7NvP69rO7NvP7NvP7NvP7NvP7NvP69rO69rO69rO + 69rO69rO69rO69rO69rO7NvP7NvP7NvPAADw3tTw3tTw3tTv3dPv3dPv3dPv3dPu3dPu3dPu3dPu3dPv + 3tTv3tTv3tTv3tTv3tTu3dLw3tTw39Tw39Tw39Tw39Tw39Tw39Tx4NXx4NXx39Xx39Xx4NXw3tbv39bv + 3tbu3tbr3dXt4Nns4tno3dbw5uD57+j58evq4tzQycPVzcbf1c/n29bn29bg1c/j2NLw5N/06OPy5+H0 + 6OPw5d/16uT36+by5uHq39no3dfn3Nbi1tHf1M7n29bv497q3tni1tHm29X06eP26+Xo3dfj2NPv497w + 5N/h1tDo3Nf06eTr4Nv16eT26+Xr4d3z6eTy5+HXzMTd0snt39bt3dPr287r2s7t3c/t3c/u3dDs3dDs + 3dHr3dHp3NLp29Pr3NLr3NHr3NHr3NHr3NHr3NHs3dLs3dLs3dLs3dLs3dLr3NHr3NHr3NHr3NHr3NHr + 3NHr3NHq2s/r29Dr29Dr29Dr29Dr29Dq2s/q2s/q2s/q2s/q2s/q2s/q2s/q2s/r29Dr29Dr29AAAPHg + 1/Hg1/Hg1/Df1vDf1vDf1vDf1vDf1vDf1vDf1vDf1vHg1/Hg1/Hg1/Hg1/Hg1/Df1vHg1/Hg1/Hg1/Hg + 1/Hg1/Hg1/Hg1/Lh2PLh2PLh2PLh2PLh2PHg1+/f2O/f2O7f2Ozg1+7h2u3i2+jc1uzj3PXr5fjv6+3k + 4NnTztTMx+DV0ufc2OXa1uTZ1ene2vTp5fjt6fTq5vDl4fTp5ffs6Pjt6fTp5e3j3+fd2eTa1uDV0uLY + 1Ozh3e/k4Ozh3eTa1ubb1/Dl4fLo5Ozh3uPZ1e3i3/ju6ufc2NvRzefc2Ozh3fnu6vvw7Ovi3vLp5fju + 6t/VztzRyejc0+ve0uzf0u7g0+7e0e7f0u3f0u3f0+vf0+vf1Ore1ere1Ovd1Ozd1Ozd1Ozd1Ozd1Ozd + 1O3e1e3e1e3e1e3e1e3e1ezd1Ozd1Ozd1Ozd1Ozd1Ozd1Ovd1Orb0uvc0+vc0+vc0+vc0+vc0+rb0urb + 0urb0urb0urb0urb0urb0urb0uvc0+vc0+vc0wAA8+LZ8+LZ8+LZ8uHY8uHY8uHY8uHY8uHY8uHY8uHY + 8uHY8+LZ8+LZ8+LZ8+LZ8+LZ8uHY8+LZ8+LZ8+LZ8+LZ8+LZ8+LZ8+LZ9OPa9OPa8+Pa8+Pa9OLb8+Ha + 8eDa8eHa8OHa7uDb7uLb7eLc6N/Y6eDc8ejk8uvn7efi5d/a1c/K3dbS59zZ59zY6uDc7eLe9Onl+u/r + +e7q8ebi+O3p9+zo9evn9Onl8ebi7+Tg8OTg9erm8+nl7+Tg9Onl8ufj6+Dc6d7a7uPf8ebi8ebh5dnV + 7OHd/fTw8efj3dLO49jU7eLe+e7q+/Ds7eXi8Orl/fTx5dzX29DK5drS6d7U7ODV7uLV7eDS7uHT7uDU + 7uDU7ODU7ODW6t/V6d7W6t7V69/V69/V69/V69/V69/V7ODW7ODW7ODW7ODW7ODW69/V69/V69/V69/V + 69/V69/V69/V6t7U69/V69/V69/V69/V69/V6t7U6t7U6t7U6t7U6t7U6t7U6t7U6t7U69/V69/V69/V + AADy4dry4dry4drx4Nnx4Nnx4Nnx4Nnx4Nnx4Nnx4Nnx4Nny4dry4dry4dry4dry4drx4Nny4dry4dry + 4dry4dry4dry4dry4drz4tvz4tv049r049rz4tvy4drx4trw4trv4dru4dvs4drt49zu5N7q4t7x6OTv + 6eTs5+Hv6OTb1NHf1tPl3Njo39vv5uLu5ODu5OD47ur78e306ub47+v16+fz6ub16+j16+fx6OTx5+P5 + 7+v37urv5eH37en27enx5+Ps4t7s4t7u5ODw5+Ps4t7s4t768+/07enf1dHi2NTr4d347+v89PDw6eXs + 5+T9+PPl3tjZ0Mjm3NTr4Nbr4NTu4tbt39Pt4NTt4NXt4NTr4Nbr4Nbp4Nbp3tbq39br39br39br39br + 39br39bs4Nfs4Nfs4Nfs4Nfs4Nfr39br39br39br39br39br39br39bq3tXr39br39br39br39br39bq + 3tXq3tXq3tXq3tXq3tXq3tXq3tXq3tXr39br39br39YAAPLl3fLl3fLl3fHk3PHk3PHk3PHk3PHk3PHk + 3PHk3PHk3PLl3fLl3fLl3fLl3fLl3fHk3PLk3PLk3PLk3PLk3PLk3PLk3PLk3PPl3fPl3fTm3fTm3fPl + 3fHl3PHk3fDk3e/k3e/k3e7k3ezj3O3k3vHo5Pbt6e7o4+7o4/Pt6d/Z1d7W0uXd2evj3+7n4uvj3+vj + 3/Pr5/jx7Pbu6vfw6/fv6/nx7fry7vjw7PHq5e/n4/Lr5vPs6PLq5/jw7fvz8Pbu6+7n4+7m4+/n5Ozk + 4ejh3e7m4/ny7/Hp5uDY1eLa1+vj4Pbu6/z28/ny7+3o5Pr18Ovm4dvUzuLa0uvi2uvh2Ozh2O3i2O7j + 2O7j2e7j2e3j2e3j2ezj2Ozh2ezh2ezg2e3g2e3g2e3g2e3g2e7h2u7h2u7h2u7h2u7h2u3g2e3g2e3g + 2e3g2e3g2e3g2e3g2ezf2O3g2e3g2e3g2e3g2e3g2ezf2Ozf2Ozf2Ozf2Ozf2Ozf2Ozf2Ozf2O3g2e3g + 2e3g2QAA8Obc8Obc8Obc7+Xb7+Xb7+Xb7+Xb7+Xb7+Xb7+Xb7+Xb8Obc8Obc8Obc8Obc8Obc7+Xb7+Xb + 7+Xb7+Xb7+Xb7+Xb7+Xb7+Xb8Obc8Obc8Obc8Obc8Obc7+Xb7+Tc7+Tc7uTc7uXc7eXd6OHa597Y8+rn + 9+7q7Obh8Orl8+3o5N7Z2NPO4NrV6ePe6uTf5+Hc6OLd6+bh7+nk8evm6uTf7+nk9O7p9O7p8Orl7ujj + 7ujj8evn8uvp8uvq9u7u/PT09/Dv7ubl7eXl8Ojo6eHg4trZ7ebl9e3t6eHh4trZ5t7e6uLi7ebl9e3s + /Pby7ujk9O7p8u3o4NjV3NPP5t3Y6eHa6eHa6+La7OLa7ePa7ePa7ePa7ePa7OPY7OLZ7OHa7ODa7ODa + 7ODa7ODa7ODa7eHb7eHb7eHb7ODa7ODa69/Z69/Z69/Z69/Z69/Z69/Z69/Z69/Z7ODa7ODa7ODa7ODa + 7ODa69/Z69/Z69/Z69/Z69/Z69/Z69/Z69/Z7ODa7ODa7ODaAADz6ODz6ODz6ODy59/y59/y59/y59/y + 59/y59/y59/y59/z6ODz6ODz6ODz6ODz6ODy59/y59/y59/y59/y59/y59/y59/y59/z6ODz6ODz6d/z + 6d/z6N/y59/x6N/x6N/x59/x5+Dw6OHu59/v5uD37ur47+vw6uX17+r58+7w6uXc1tLb1dDo4t3v6eTs + 5uHn4d3q5N/w6uXx6+bw6uXz7ej28Oz38ezz7ejx6+bx6+b17+r17+zz7Ov48PD+9/f99fXy6urw6Oj1 + 7e3x6en07Oz07Ozv5+jr4+Pr4+Pt5eXr4+Tt5eX07Ov58+/z7ej48u338u3o4Nvf1tLl3Nfs5d3v5uDu + 5N3v5d7v5t3v5t3w5d3w5d3v5dzv5dzv5Nzv493v493v493v493v493w5N7w5N7w5N7v493v493u4tzu + 4tzu4tzu4tzu4tzu4tzu4tzu4tzv493v493v493v493v493u4tzu4tzu4tzu4tzu4tzu4tzu4tzu4tzv + 493v493v490AAPHo3/Ho3/Ho3/Dn3vDn3vDn3vDn3vDn3vDn3vDn3vDn3vHo3/Ho3/Ho3/Ho3/Ho3/Dn + 3vDn3vDn3vDn3vDn3vDn3vDn3vDn3vHo3/Ho3/Ln3/Ln3/Hn3/Dn3vDn3vDn3u/m3+3l3vDo4vXr6PXs + 6Pbv6/Pt6O7n5PHq5/Pt6u/q5+Da1dnTzuTe2fDq5e7o4+Xf2unj3u/p5O/p5PLs5/Xv6vfx7Pbw6/Ls + 5/Dq5fHq5vXv6vfw7fPr6vPr7Pvz8/z09PPr6/Hp6ffv7/bu7vr09PXt7eri4uvj4/Do6O/n5+zk5O3l + 5fDo6PPu6/Lt6vbv7Pny7+7n4+Da1OLa1u3k4O/n4uvk3e3l3u/m3e/m3e/m3e/m3e/l3e/k3O7k3e7k + 3e7k3e7k3e7k3e7k3e/l3u/l3u/l3u7k3e7k3e3j3O3j3O3j3O3j3O3j3O3j3O3j3O3j3O7k3e7k3e7k + 3e7k3e7k3e3j3O3j3O3j3O3j3O3j3O3j3O3j3O3j3O7k3e7k3e7k3QAA9Orj9Orj9Orj8+ni8+ni8+ni + 8+ni8+ni8+ni8+ni8+ni9Orj9Orj9Orj9Orj9Orj8+ni8+ni8+ni8+ni8+ni8+ni8+ni8+ni9Orj9Orj + 9Ovi9Ovi9Ori8+ni8uni8uni8eni8eji8enk9e7q+PHs9O7q7+jk6+bj7unm8uzq8u3r6+bh39rV4dzX + 8Ozn8u3o6uXg7unk9vHs8e3o7Ofi7+rl8u3o8u3o8Ovm7+rl8u7p+fTv+vXy8+3s7ujn9O7t+vTz9u/v + 9e/u+vPz+fPz+/b29e/u7ebm8Orp8uvr7+no8uvr8+3s7+no9fDu9/Lw8+3r9/Lv9/Dt5+Hd5N3Z7+jj + 8erl7+bg8Ojh8ejh8ejg8ujh8ujh8ejg8ejf8efg8efh8efh8efh8efh8efh8uji8uji8uji8ebh8ebh + 8OXg8OXg8OXg8OXg8OXg8OXg8OXg8OXg8ebh8ebh8ebh8ebh8ebh8OXg8OXg8OXg8OXg8OXg8OXg8OXg + 8OXg8ebh8ebh8ebhAAD06uP06uP06uPz6eLz6eLz6eLz6eLz6eLz6eLz6eLz6eL06uP06uP06uP06uP0 + 6uPz6eLz6eLz6eLz6eLz6eLz6eLz6eLz6eL06uP06uP06+P06+P06uPz6eLy6ePx6ePx6OTx6eTv5+Pu + 6eTy7Ojw6efr5eLp5eLt6Obw7Or07+7v6+jj39vh3djt6uXy7unu6uXy7+r38+7z7+rx7ejz7+v08Ovz + 7+rw7Ofu6+bw7ej28u749PHy7uzr5+bv6un18O/38vH38/H49PP18e/38vHz7u3u6ejv6+nv6unu6unz + 7+707+7u6un28fD18PDx7Or28u/58/Dr5eLk3trr5uHv6OTv5+Pw6OPw6OLw6OLy6eLy6eLx6OHx6ODx + 5uHw5uLw5uLw5uLw5uLw5uLx5+Px5+Px5+Pw5uPw5uPv5eLv5eLv5eLv5eLv5eLv5eLv5eLv5eLw5uPw + 5uPw5uPw5uPw5uPv5eLv5eLv5eLv5eLv5eLv5eLv5eLv5eLw5uPw5uPw5uMAAPTs5fTs5fTs5fPr5PPr + 5PPr5PPr5PPr5PPr5PPr5PPr5PTs5fTs5fTs5fTs5fTs5fPr5PPr5PPr5PPr5PPr5PPr5PPr5PPr5PTs + 5fTs5fTs5fTs5fTs5fPr5PPq5fPq5vHq5vHr5u/p5e3m4+7o5e3o5ezo5ezn5u3o5+/r6vLv7e/s6Orn + 4+rn4u7s5/bz7vj18Pbz7vXy7ff07/Lv6vLv6vHv6u/s5+3q5e3q5e/s6PTx7PXz7/Pw7vLu7fHt7PTw + 7/r29fv39vj08/Pv7vXx8PXx8O/r6uzo5+/r6vXx8Pby8vTw7/Tw7/by8fHt7PPu7fn08/jz8e3p5uXf + 3ejh3u/p5fDr5fHq5vPq5vPq5vPr5PPr5PLr4/Lq5fHo5fDn5PHo5fHo5fHo5fHo5fLp5vLp5vLp5vLp + 5vLp5vHo5fHo5fHo5fHo5fHo5fHo5fHo5fHo5fLp5vLp5vLp5vLp5vLp5vHo5fHo5fHo5fHo5fHo5fHo + 5fHo5fHo5fLp5vLp5vLp5gAA9ezo9ezo9ezo9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9ezo9ezo9ezo + 9ezo9ezo9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9Ovn9ezo9ezo9ezo9ezo9ezo9Ovn8+zn8uzn8uvn8+vo + 8ern7unl7+rn7urp7Ojn6eXk6ubl7Ofo7+rq8e3q7+vn7erl8e7q+PXw+vfy9/Tv9vPu9/Tv9/Tv9vPu + 9PDs7+zn7enl7enk7+zo9PHs9/Tw+PTy9fHw8+/u9fDv+fX0+/f2+/b1+fX0+PTz9fHw8e3s7+vq8u7t + 9fHw+fX0+fX0+PTz9vHy8+7v9O/u+PTz+PTz8Ozr6eTi6uXi7+rn8+rn8uvn8u3n8u3n9evn9evn9Ovm + 9Orn8urm8ejm8unl8unl8unl8unl8+rm8+rm8+rm8+rm8+rm8unl8unl8unl8unl8unl8unl8unl8unl + 8+rm8+rm8+rm8+rm8+rm8unl8unl8unl8unl8unl8unl8unl8unl8+rm8+rm8+rmAAD17un17un17un0 + 7en07en07en07en07en07en07en07en17un17un17un17un17un07en07en07en07en07en07en07en0 + 7en17un17un17un17un17un07en07en07enz7Onx6+nz7uz48/L28vH08O/x7ezq6Ojp5ubq5+fr6Ojv + 7Ont7Obr6uTv7un09O719O/y8uzx8Orx8ev29fD29e/z8uzw7+ns7Obs6+Xv7ujy8ez19PD29PL08vH0 + 8fD08fD28/L59vX59vX59/b49fT18vHy7+/x7u3y8O/18vH39fT49vX49vX08fHy7+/z8PD28/P49fP0 + 7+7u6unt6Ofu6ujw6+jx7Ojz7Ojz7Ojz7Ojz7Ojy6+fy6+fx6ufx6Ofx6ejx6ejx6ejx6ejy6uny6uny + 6uny6uny6unx6ejx6ejx6ejx6ejx6ejx6ejx6ejx6ejy6uny6uny6uny6uny6unx6ejx6ejx6ejx6ejx + 6ejx6ejx6ejx6ejy6uny6uny6ukAAPbx6/bx6/bx6/Xw6vXw6vXw6vXw6vXw6/Xw6/Xw6/Xw6/bx7Pbx + 7Pbx7Pbx7Pbx7PXw6/Xw6/Xw6/Xw6/Xw6/Xw6/Xw6/Xw6/bx7Pbx7Pbx7Pbx6/bx7PXw6vXu6/Xu6/Tu + 6/Lt6vXx7vn29fj08/fy8vTv7+7s7O3r6+7s7PDu7vHx7u/v6uzt5vDw6vX17/X17/Hx6+/v6fDw6vP0 + 7vX17/X17/P07fHy6/Dw6vHx6/T07/X08PPy8PXz8fX08/b08/f19Pj29fj29fj29fj39vj39vXz8/Ty + 8fPx8PPx8PTz8vb19Pf29fPx8fTy8vTy8vX09Pn29fr09Pby8fHt7PDs6vLt6vPu6/Tu6/Tu6/Xv6vXv + 6vTu6fTu6fPs6vPr6/Pr6/Pr6/Pr6/Pr6/Ts7PTs7PTs7PTs7PTs7PPr6/Pr6/Pr6/Pr6/Pr6/Pr6/Pr + 6/Pr6/Ts7PTs7PTs7PTs7PTs7PPr6/Pr6/Pr6/Pr6/Pr6/Pr6/Pr6/Pr6/Ts7PTs7PTs7AAA9e/r9e/r + 9e/r9O7q9O7q9O7q9O7q9O7q9O/q9O/q9O/q9fDr9fDr9fDr9fDr9fDr9O/q9O/q9O/q9O/q9O/q9O/q + 9O/q9O/q9fDr9fDr9fDr9e/r9e/r9O7r8+7r8u7r8+7r8u3r8e3r8Ozr8u7t8uzu8Ovr7urq7+zs8+7v + 9PHx9fPx8vHt8O/r8vHt9vXx9fTw8fDs7+7q7+/r7+7q8O/r8vHt8/Lu8vHt8fDs8fDs8/Lu8vHt8O7t + 8vDw9PLx9vTz9/X09vTz9vTz9fPy9/X0+Pb19fPy8/Hw8e/u8e/u8e/u8vDw8/Hx8vDw9PDx9PDx9fHx + +PP0+vT2+PPz8+7t8Ovr8e3r8u3s8u3s8u3q9O3q9O3q8+zp8+zp8uzq8urq8urq8urq8urq8urq8+vr + 8+vr8+vr8+vr8+vr8urq8urq8urq8urq8urq8urq8urq8urq8+vr8+vr8+vr8+vr8+vr8urq8urq8urq + 8urq8urq8urq8urq8urq8+vr8+vr8+vrAAD38vD38vD38vD28e/28e/28e/28e/28e/28e728e328u33 + 8+738+738+738+738+728u328u328u328u328u328u328u328u338+738u738vD38vD38u/28fD28fD2 + 8fD28fD28fD28fD38vH59PP48/L28fD07+718fD49PP8+Pf59fX28/P29PT18/Lz8vL08fHy8PDz8fHz + 8PDz8PDz8fHz8PDy8PDz8fHz8fH08fH08vH08vL18/P39fX49vb59/f6+Pj7+fn6+Pj6+Pj49vb29PT3 + 9fX39fX39fX39fX29PT39fX39PT69fb69fb38fL27/D38fP8+Pn++fr69PT17/D07/D28PD28PD28PD1 + 8PD18PD07+/07+/18O/18O/18O/18O/18O/18O/28fD28fD28fD28fD28fD18O/18O/18O/18O/18O/1 + 8O/18O/18O/28fD28fD28fD28fD28fD18O/18O/18O/18O/18O/18O/18O/18O/28fD28fD28fAAAPbx + 8Pbx8Pbx8PXw7/Xw7/Xw7/Xw7/Xw7vXw7fXw7PXx7Pby7fby7fby7fby7fby7fXx7PXx7PXx7PXx7PXx + 7PXx7PXx7PXx7Pby7fbx7fbx7/bx8Pbx8PXw7/Xw7/Xw7/Xw7/Xw7/Xw7/bx8Pbx8Pbx8PXw7/Tv7vXw + 7/fy8fr19PXy8vLw8PPx8fPx8fPx8fPx8fPx8fPx8fPx8fLw8PPx8fPx8fLw8PPx8fPx8fPx8fTy8vTy + 8vTy8vXz8/b09Pf19fj29vn39/n39/n39/j29vj29vf19fb09Pb09PXz8/Ty8vTy8vPx8fjz9Pnz9Pfx + 8vXv8Pbw8fr19vv3+Pjz9PTu7/Tu7/Xv8PXv8PXv8PXv8PXv8PTu7/Tu7/Tu7vTv7vTv7vTv7vTv7vTv + 7vXw7/Xw7/Xw7/Xw7/Xw7/Tv7vTv7vTv7vTv7vTv7vTv7vTv7vTv7vXw7/Xw7/Xw7/Xw7/Xw7/Tv7vTv + 7vTv7vTv7vTv7vTv7vTv7vTv7vXw7/Xw7/Xw7wAA+PTz+PTz+PTz9/Py9/Py9/Py9/Py9/Py9/Px9/Tw + 9/Tw+PXx+PXx+PXx+PXx+PXx9/Tw9/Tw9/Tw9/Tw9/Tw9/Tw9/Tw9/Tw+PXx+PXx+PTz+PTz+PTz9/Py + 9/Py9/Py9/Py9/Py9/Py9/Py9/Lx9/Lx9/Lx+PPy+fX0+fX0+vX09fPz8/Ly9PLy9PLy9fPz9fPz9vT0 + 9/X19/X19vT09vT09vT09vT09/X19/X19/X1+Pb2+Pb2+Pb29/X1+Pb2+Pb2+ff3+vj4+/n5/Pr6/Pr6 + +/n5+vj4+ff39/X19vT09fPz9fPz9PLy+fT1+/b3+vX2+PP0+PLz+vb3/Pj5+vX29/Lz9/Hy+PLz+PLz + +PLz+PLz+PLz9/Hy9/Hy9/Hx9/Lx9/Lx9/Lx9/Lx9/Lx+PPy+PPy+PPy+PPy+PPy9/Lx9/Lx9/Lx9/Lx + 9/Lx9/Lx9/Lx9/Lx+PPy+PPy+PPy+PPy+PPy9/Lx9/Lx9/Lx9/Lx9/Lx9/Lx9/Lx9/Lx+PPy+PPy+PPy + AAD59fT59fT59fT49PP49PP49PP49PP49PP49PL49fH49fH59vL59vL59vL59vL59vL49fH49fH49fH4 + 9fH49fH49fH49fH49fH59vL59vL59fT59fT59fT49PP49PP49PP49PP49PP49PP38/L18vH18vH38/L5 + 9fT69vX59vX48/L28/P29PT18/P18/P18/P18/P08vL18/P18/P49vb49vb39fX49vb49vb49vb59/f5 + 9/f59/f59/f39fX49vb39fX39fX5+Pj8+fn8+/v7+fn59/f59/f49vb39fX39fX29PT29PT19PT38vP6 + 9fb79vf48/T28vP69fb8+Pn69vf48/T28vP38vT38vT38vT38vT38vT28vP28vP28vL28vL28/L28/L2 + 8/L28/L38/P38/P38/P38/P38/P28/L28/L28/L28/L28/L28/L28/L28/L38/P38/P38/P38/P38/P2 + 8/L28/L28/L28/L28/L28/L28/L28/L38/P38/P38/MAAP////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////wAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////AAD///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////8AAP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////wAA//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////AAD///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////8AAP////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////wAA//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////AAD///////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////28u2gk4pLNSpDLCSllZb89vj///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////8AAP////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////r376CKfT4bDj0aDpaFhP/8/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////wAA//////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////+vfspYh6RhoLRRgMl4KD//z+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////AAD///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////89+uriXlPGwlPHA6fiYf/+fv/+/3+/Pz7+/r5/Pv7//76//77///9///7+/v7+/v8 + /Pz8/Pz8/Pz8/Pz8/Pz7+/v+/f38+vr6+fj+/f37+/v+/v7+/f38/Pz8/Pz8/Pz8/Pz7+/v7+/v7+/v7 + +/v7+/v7+/v7+/v7+/v8/Pz8/Pz8/Pz8/Pz8/Pz7+/v+///+/v/+/v/+/v/7+/v7+/v+/v7+/v7+/v7+ + /v79/f79/f79/f79/f7+/v7+/v7+/v7+/v77+/v7+/v+/v/9/v/9/v/+///8/Pz7+/v+/v/+/v/+/v/+ + /v/7+/v///////////////////////////////////////////////////////////////////8AAP// + //////////////////////////////////////////////////////7//P79+v///P//+//79e7i29nM + wcq6rbqpmrKhkriil8avptLAu+PT0frz8f/8+//+/f3//ff//vL9/Pn9+/z48K2Jek4dBVEgCKKJe/Lr + 4tTGv7ylnbKekrSklsa6ruDWzfn07////v/+/v3+/v39/f39/f///v///O3m4tDGwbyqo7egl7qhmMay + qdPJwe7q4//++v/+//z9//79/+3q6c7Evs7Ev+HZ1v78/f38//39//7+///9//76+9bNytHFvdPIwvXz + 8Pj6/9vh98bJ9czP+ubr/fn9//z++/r9+/38/f/9//z9/vX5/9HW8Nbc9vT5//v9/f/9//78/vv9/f39 + /fj7/9nj+MTO+cPM897j9vn6//X5/9ri+MfO98nM9uHf9vv6//////////////////////////////// + /////////////////////////////////////wAA//////////////////////////////////////// + /////////////////v71/v30//z05tfOrpWJelNCZTolVS0SRSMHQx8FSB0GVSERZS4ic0Q7j3BozLqw + /ffs/v/19//48f/++P7++/b1qYZ4SiEETCIDimhNkHBeVi8hRh8NRB4GSSIHTyYPbkc2pYl+8+fj+vr4 + 9fn3+/37+/n3//v2z8C4el5SVjQmRh0OShsJSxoJUycUVjYkfmlWyryy+vDx/Pr//fn9vq6rUS0fVjIj + lHhw+/P1/fv//P3//fz//vv/9+3vc1VNWS4fZT4w3c/G7/T/mabjUFbWV1vfqbbu8Pf//P74+P77/Pv9 + +/f79/v/0Nn8aHLMe4Tb2+T/9Pn8//3//f3++v7+/Pz86/D/iZziRFfcTFvQpa/j7/T/5O3/jZ7kSVjU + T1TTnZfb9fL///////////////////////////////////////////////////////////////////// + AAD////////////////////////////////////////////////////3++///fD7+eu+pJdnRDlFHxFD + HAs/GglGJQ5YOR9dPyddPSlTLR1GGAxNGQ9GFw1YMyecfnHp2879/vX2//z5/Pz69fWnhnpHIARJIgFP + Jg5BHg1SNCRwVUR0WEJVMxpHHQZNHgZFGQ6ghHv6+PD5/vb39u/7+fDFsaJfNydJHAdKHwpaMx55UkCA + V0VuQzFMHwtFGgdcNyW2nJP++fv/9/bCp51JGQVEEgKMZlz69vX//f/8/P/7+f/9+/716+hoRTZHFQBV + KRPax7n1+/+ntOg9Q9ApK8x+ieDk7f/8/v36/f38/P329fns8f+TmesyNsw2Os+iqfbr8f/7+v3+//78 + ///7/v/U2/5aZ9waKM8+S9C4w/D0+P/k7P98ieEiLMomJsWMhdX28f////////////////////////// + //////////////////////////////////////////8AAP////////////////////////////////// + //////////////3/+f7+8vfx46iLd0UbDkQaDkwlGXdZTLmll+HQv/zv3v/77P/26ere1Mu2rZp1blgt + J0caD0MXCmxLPeHazv399/z6+/v09quGfUofCUccAUUhEZd/ce/i1/7/9f397//z4qCEbk0jDU0cCEok + FL+wov3/9f378cm1qFw0I0kYA2MzH7mZgvTs2v/67f798v/67sWqmV86JkYhFotuYfLo4//9+LefkEka + A08fB5BtXfr38/v//vj+//z+//7+/vTt5WpHMkwaAVgtEtrLt/n9/crU+1NV2ign1VVa3M3U/Pn+/v3+ + //r9/PX4/re69UtN1iMk3CMk3FFT27/D+vT4//v+/fr9//L4/rW99DxB2yEn3lhi4NTd//X4/+fr/3uC + 5CUn2Soj1Yh91vbw//////////////////////////////////////////////////////////////// + /////wAA///////////////////////////////////////////////////5+/ftuJ6MWzAZRBYHVCof + p4qB7+Xd///2//71///2//73//75+/36/fz3+O3o0sG5bEc6RRgJQRgHdl5O6OPZ//z6/PP0roaATR4M + SBoEeFpP6d/Y+fv2+P36+/36/fv16uLSa0g0Tx8IRhoIm4l3/P3y+PToeV1ORB0MSBkFr4t4//jn/fzv + +/72+fz0/v/2+vfrybmnwrGf6uDT///6//33uaiYQxoESx8Ih2pY+fbt+P/89v/9+f79+f358u/laEcw + TR0BVS0Q2su2+/375u7/cXLjLCjcNjbYr7Py9fn/+Pv99fv+1t3+Z2bgJyfLNDftMjXtKynOdHHn4Of+ + 9/3/+f7/6vX/lJvtKynYJijbe4Pq6PD/+vv/6uv/fYHkJiTcKR/ahHjX9e////////////////////// + ////////////////////////////////////////////////AAD///////////////////////////// + /////////////////////vni1MpwTjpCFwROJBWxmo738uv//Pj///3///3//v3//v3+/v34/v76/v3/ + +vj//ffWx7ttSTlCGQRLKxiunZD79vH89PGsh4BLHQtLHQiliYP++Pf9/Pz6/P749/79+vz18emUdWJR + IAhUHwqEZ1f18efz5tFJKAxEGwVSJxHowq7449Hx39Dt38/x3s/24NH449L54s733cz14Nj79vX//vu5 + p5w9EQFGGAaMa1369vD5//74//79//z8/vvz8ehnRy9LGwBSKhHZzb38/vvx9vyenfYyLtgsKNyDg+nq + 7v72/P7r9v+RmOkzLdYvLtZzevRrc/MsKtI4Mdqco/Do8//0/P/X5P1mbOMoJNk0NtSstfzx+P76+fvs + 6/+EieMrKtkuJduGfNr28P////////////////////////////////////////////////////////// + //////////8AAP////////////////////////////////////////////////769bmck0IcCUEYAX5h + TvTq3v/8+Pv8/Pr7/P/9///7/v/7/Pz8/vr+//v+//78//n4+P/89MOsmlQpFUQZBHdaSvDn3fv276WH + fUQbBkwfCLCWjv/6+P/8/P/8///7///7//by7JV6aUsaBE4XBJBuYv337dzHrkwoB0kgBEIVAVEpFEQh + D0IhDUUhDU0kDkwgCk0hCU4jDE4kEUYlGrqurv/9+7WflVAeC0oXBolkWvr28/v+/vv///7//vz9+vLu + 5WdGLE8fAVIqE9jFvf78+/n8/c/S/0BA0yUj3VhZ2tvh++rz/7K990JI0ikh3lhX48jS+b7H80tK1iki + 30RJ0bfC+efy/8DO+kBE1ism2VFX09/q//j8/v79/+3r/4GH3iYozC0m1YV81/Xv//////////////// + /////////////////////////////////////////////////////wAA//////////////////////// + ////////////////////////+/fylnZuQRkIQRgDmYRz///0/v/8+Pv9/Pz///3///7//Pz8/v///v// + //z//vf++Pb7//75382+aDsoTxwGZ0Ew3dLG+/jvo4p8QBwESB4Fjm9i+fDo//35//39/vr9//v87Ojh + clhFSh0GSRcHlXpv/vv138y4SSUJSh4GSBgEWiwaUiwZVDIdUS0ZVi4YXC8XYTMYTR8DTB8FRyMS0cG8 + //z2vqSYThsGSxkHfllP+fT0/Pz8/P7+//z9/vz67ubaaEQmUSACTiYW2MXD//39+/775e3/Z2/nHiLX + NTnQuMH5ytX6ZGzeKCrWODXel5jz6u//6O7/lJXyMjDaKCzWanLiyNP7kZ74Ky3RLinUfYTn7Pf/+/79 + //3+7ev/gojeKizNLSrRhX7U9fH///////////////////////////////////////////////////// + ////////////////AAD////////////////////////////////////////////////69/KIaWFBFwZK + Hwijj3/+/vT9/vn7/f76+fv//v/7+/v8//77//7+//7//P/+9f/8+v77+vXj1MZwPyxTGgVkOCfYyr76 + 9+6liXpIIAhOHwRfNyPOv6////D/+/T//vn//vfEtqdIKhRMHwhSJRSwnI/+/fby7OFZNyhIGwxJFgWo + gG/b0cDb08Ha0sTb0sLd07/Gp4xhOx0+GAFcPyz47+n/+fPEq55DFgJHGQVfOy716OP+/Pj+/Pf//fb/ + //bNvq1WLRZRIAJRKx/bzMz//P78/vzt9/+KmfMgKtIjK9KEjPqTm+wxNNQnKNteZdrS1v749/36+v/Q + 1P5bYtgeH9IwMtGMle1rdPkjI9I0LtKqsPXx+v/+/vv//f3q6/+AhuEpKtItKdOFf9L18v////////// + //////////////////////////////////////////////////////////8AAP////////////////// + //////////////////////////////v69JuAdkMZCEQUAZB1Yvv36vv79fz8+v///v///v3//vv//vv/ + /v7//v/9//76/v77/f368866q1sqHE0XA3lPP+nZ0Pv276SEeUcZBlEdA0ocBVYzH6+XhdfOw9jLvqeO + f0gmEkIYBEQUB4RcTfHj2f/++fz69rWdmFcuI0QRAVcnE6aDcNnLvOHbzdrUyL6qmWZELjsTAlAvFbqp + mf/+/P/++rulmkUaA0whCD4ZCWxSScO0qt/Yy+PbzMa4pXNWQEwhBkkcA2xMQuff3v38/Pr8+/D6/rzL + +DlH2B8p2UdN+URG6yck1kRE3LvI/PP4//78//z3+/L3/7K+9UJB3Cgl1kpM7UBF9ykn2VVP39XZ/Pj8 + ///9/P79/ufq/32D5Sgn2C0o1YSA0/Xy//////////////////////////////////////////////// + /////////////////////wAA/////////////////////////////////////////////////v33xbCm + Vy8dTh0FYj0p18S1//3y+vfw//76///8///8/v/9/f/+/P///f3+/Pr7/fv39e3hnXtpUSAMTB0JkHVm + +vLp+/fypYZ+QhcHSxsGeE45aUQ0SCUZSCQZTCUaRx0MQxgDSh0Jd0s828K4//z3//z4//369e3mtJiN + aj8uTR4JQRcFTCsaXkEyVTYoQRoLRxkGbEEssJaC9/Lp//z+//r8t6CaQRkGQxkFbEc4b01EQyIaWjks + YEAuSSoZNhUCQhwBWzcktJyU+fTw+vr3+/v69fv91eD8WGPhICbVJSftJCTiLy7RiInu6fP99Pr9+/z9 + /f3/9fv+5vD+gYLsKynNJSXjJCboLCzVenfm4OT/+vv+/fn9/P7+5Oz/e4LmJibaLSbYhH7V9fH///// + ////////////////////////////////////////////////////////////////AAD///////////// + //////////////////////////////////////nu5NqGYk5RIgVEGQaCY0/k1MX//fP//vf///n///v/ + //3+/v/8/v/8/v7///r+9u2tk4RVKBhGFwJTMRrBtqj9//n69vXEsayHaFuHaFXCsaHi0simjIZ0UkxZ + NitdOih4WESwloXh08j9+vf9/vz6/v34/Pv+/fr69fDg0cerkIV2WU1dPjNVMShdOTJ0U0yjioDdzsP4 + 8+n5+/P4+v7/+/7UxcOGalqDZlW6oJXl2NSwlZJ4X1dMNypQOCxfQjOOb1vRu6307ur8/fT6/vT+/Pv8 + /f7m7P+CiOcsK9UcGOcgH+NRU9zN0fr19/33+/r4/vr4//n2+/n19/3EyPhMTtcgIOMcHOM1NtSipe/p + 8P/9/f3/+f/6/f/h7v95hOQlJ9gtJtmEfNj17/////////////////////////////////////////// + //////////////////////////8AAP/////////////////////////////////////////////////9 + +v/++NXGtW1JMEceB0IaB2lINtO9rO/n2fz36v/+8v//9v//+P379PTv5t/QwZ2CckkiEUQXCFAoFKCM + e/399Pz//Pz9/f38+/z79Pz78fz79Pz8+P37+vz39fr07fr57/v67/799P7/+/n///b+/vT8/Pf///j+ + /vn9/f7//f759fz69/r39vr08/r39Pv28P389vj9+vn9+Pz/+/f6/P79//76+vz79Pz78/38+f/3+P37 + /Pnz8Pn48vr38Pv48f379f/++fz8+fr+9fz/+f/9///+/vX3/7Gy7kRC2ygk5Dk83aOp9e3z//v8/fr9 + +fj++Pf++Pv/+vr6/evw/5Sa7zEz1icm4k1Q2snQ+/X9/vv9+vz5//f9/eHv/3uH4yUo1Csn2YB72PPw + /////////////////////////////////////////////////////////////////////wAA//////// + ///////////////////////////////////////////+///9//721sa4aUc5RRoMRhYGVygVfFVBpYZt + taeOuK2WtqyWqpeBimtXZzsmSBsGQhgIWDMkp4t++/jw///7///9/Pz8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////vz9+Pr/0df/V1nYLSvNdXne2OD/8vr//P/4/v/5/f7++/r8/P/3+v/38/v/09r/am/ZLi/ScXXj + 4+r/+v78+/78+fr/9/385O3/fobiJCXQJyjYenzX7/D///////////////////////////////////// + ////////////////////////////////AAD///////////////////////////////////////////// + ///9/f3///78/Pj++/PbzsSObmNWKx5HFwhGGwpEHQdGIw1FJQ9HJA5FHwtEGghCFQVAGAZxT0PEraP3 + 7eb/+PX//v7//v/8/Pz///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////Pz5+/zl7P97f+BCRcK9wvnt9P/4/v7+ + //f///r8/fz//f/7/vb7/vX4/v/q8f+vtfVER8eUluzy9v/9/v78/P76+f/4+P/p6/+Gh98wMMgwLs2C + gtbx8f////////////////////////////////////////////////////////////////////8AAP// + //////////////////////////////////////////////////7///z+/vr8+f78+Pr38ebTy6aKgHpb + T108L1AvIVEwIlEtH1kzJnBMQpR4b8uyrPfw6/379////P/+/f/+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////Pn8++74/6+59JOb5uzx//f7/vz++///9/3/+fv9+/3//vz++P7+9/3//Pj8/uft/4iP + 2sLF+fn5//79/v38/v37//z5/vLu/6qq529x0HBy1aqr4/X1//////////////////////////////// + /////////////////////////////////////wAA//////////////////////////////////////// + ////////////////+/7+9Pn6+Pr7/v79/vz5//34//n08eTb08W8yLmxzr205tTO/vHu//n6//3+//7+ + /fz+/Pv+/f7///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////f/88/z/2+b/3Of/+fz+/v38 + ///7/v74/f75+//7+//9/v/7///6//76/fz6+v3+3OX86/L//Pv9//76/v/6/f/7/v36/Pv98fX/6fT/ + 5/P/6/H/+fv///////////////////////////////////////////////////////////////////// + AAD////////////////////////////////////////////////////////////6+/36+/36/P77/f37 + /v37/Pv///z//vr///v//vr//fr+/v3//f///f/5+f36/f/5/f70+Pr///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////8AAP////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////+//+//3//vv//vv///z7//77/vv89fb75u324eTt6OHm5+Di4+Lh4eLj4ebl4uzq + 5PHv6vX07/f48/j7+Pn9+/r+/vr///z//////v////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////wAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////vz6+/j/+fz/9/7/7/T93Nr1 + 4N365un44+rh0tfGzcvMycXKxsTGx8PEyMTCy8bBzsjC1M3H3NXQ5ODb6ujm8fHw9/j4+fz8/f7/+/v7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////AAD///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////++/z7+P/6/P33/f/o6/2Xltl4dNOlp/DEyOi9vby9sKm+rKS7qaG4pZ25pZu9 + qJ3EsKTHtavKu7LPxL/Wz83g293p5+rx8PT9+vz//v/+/v7///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////8AAP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/v75/P/8//39+vf6++7v + /4uI4zYxxkFC0nd42IB5nXBZUnNSPHFLMHNMMHdQNH9YPIlkSpVyW6WIdrafkL6spcW4ttTLzOPa2+/o + 6Pv2+P79/v///v///P////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////wAA//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////Pz8//7///3///z+/Pz2/fz97On8kIvoMy3VJCHhMS3MMyiCOyI0Vy4WaTQFbTYD + cDkFczwJdT8PckESc0Ybflgzk3NUrJB4xK2az76y3dLN7+jq9fX3+vz9/v/+///8//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////AAD///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////8/Pz///7///3++/v9+/3//v3h + 3eK0r8SpqOVNTdkhIeIpIuM8K7xNMXRaMCl0PAR7QQCARAKERwKISgKHSwWJTgmFUA6AUBOLXSaqgE65 + nHvEtarY0dHj4+ju8fT6/fz9//v+//7///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////8AAP////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////z8/P///v/9+/79/Pn5+s/Q1YaEibWxueTn94eN6ics0iId5C8h3Us0s1gyWW85 + FX5CAolJAJBNAJNQAJZSAZpXAp1cA5pbA5ZaBZZfDphuMayRcMO0o9PNyOLl5Pb4+Pv9/fz8/Pz//P// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////wAA//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////7+//3//vv9/v3+7vLxrbWx + anBxo6aq7vHz9Pv/0dv8X2jfKSraIx3rLSLcUTWmZjVOfT8MmlMBn1UAl1EDnVgEoVwAqGAAqGIBpGME + oGUDmmQImmsfsI9WyLmW1NHA6+rm+Pb5//z//v79/v/9//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////AAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////7/f3//v/+/P3+/P78+PuzsrBrbWeKionw8fL7+/r0+ffo8P+rsPVCPtImG+EqGupB + K8dbPIB3RS+PUAmhWwGfXAedXAOgYQCqaQCoaAKlaQaibgikcw2cbA2ScSGrmmLFv57g3dDz8O7+/P3/ + /v7///7///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////8AAP////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////r///r+//v8/f78/v36/M3HynRt + bX15ddza2P36+f39+Pv89vb7/+Di/4+J7zgq1DIh6Dkuz05DmmZJS3hLGpBXDZZbE5RfD5pnDahwDKVt + B6JuCZ1yC6J7EaJ7FZZ5HI9+NaigbtHOsOnn3fv59//+/v///v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////wAA//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////+/3/+/7++/7++Pr7/f3+29rbfHp6cXBuvb668/Xz+/7/+Pz+9vz79fz/7fP/3d//dnXm + LSzDOD65SlOVWlZcaFQ8d1c0fVc9flg6gl0vnW8oo3EYqXkUon0QpoYaqYoiqI4plYMrmo1IurOF4N3J + 8vDr/fz8///+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////AAD///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////+/f/+/v/+/f79/P3+/fz9/f308vKuqaht + a2iTk4zk5t39/vf5/fr6/v38/v78/f/5+/3y9v7Gzvt9iN6DjtSJlLqOl5qYmIyhmIqjk5GHdW5uWD2W + cTSneCS2hiWphyCqkCunjyupkSyrljeikkKpn2jTzbPq5t/8+fr//f7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////8AAP// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+///+///+///+///6+//9/v/+/f/9++fe246EgHBmX8e/tvv47/757P3+8f7+9f779v/9+P778v39 + 9/L3+ePu/+jw/+3z++r29ez38fH39PL09KyrpWlfRJd5O6uCK7yQMKeLLaaTOKyaOrGdOLWhPa2cRKaa + W8K7muTe1Pr39//9//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////wAA//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/f38/fr5///9//36+/f08ezn5t7Z3MzGpJGL + aVROclROmHRum3dujnBchW9Ph3FPj3JYlXFcoHlipINoqpV+4NjP//79/f7/+P/9+P/8+//9+/77urio + bGM9m4M6spM0tZcyqZs/pJxCrKJCtKc/uKk/tKRFq6BWq6Z619TA8u7r//z+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + AAD///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+//v7+vb69/T38+7e08+4qKScioSCb2l7ZmBdSEFROTJsSkJ4UEptREFmQjRaPiJUORZSMBJMJAxJ + HgZJIghGKRS2qJn///j//vv8/fv+/v3//f/++vu5saloXT+VfkCvkz+5oEOxpUynokisqEi0rUaxpj+1 + qUirpVWko27Pz7Hv7OL+/P3///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////8AAP////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////v89f//+eHb1aqfmYd5c4l5c5iIgbKfmsGt + qINwam9cVMiwpeDLxt3JzN3Ny9nFt9O7pcerl7qciZh2Z4BjUmpSRr+xqf/8+f/9/f/8/f/8///6///4 + /7Gmp0g5J1xEFnNXF45yKKuXS7KnV6qnT7KuUq+pTLOtVLCsXqSmbMXHouvq2f78+/////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////wAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////529nSjIV+l4yHy8G9+Ozp/PXx/vv48e7rjIF+f3Zx6+nf+Pfx7+vu8Ovy8e3x8e7u8ezp + 8O7r7u7q9/fz+PTx+vf3/vz///n///r///r//vr/+/b+raekPTAdPyUDRiMASyIBYzcRfWAxmo9Soppb + oZpcoZ1doZ9hqKlzv8Ca6erV/f35//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////AAD///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////vi0r6mgmJPv6ub/+vb///v//v3/ + /vzt6up1dHOGhoTt7enb3tm6vsDGxs3Lx8/Kw8rQyczKxsa7vbvo7On6/fz+/v39/P7++////P/8+v/1 + 9//0+P+8uLNaSi9IKQVHHwBLHwBPHQBEHgNvWzmOgWKXjm+dlnKAfFKgn3LAwZzs7dj+/fn///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////8AAP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////9+LGrp7Cppf/++//8+P///P/+/f/+/uvt7W1xco2Rke/w7tHT0MbKye7v8fPw9PLt + 8fb09evq57vAuubr5/z//P39+f7/+/z/+/r8++nv+dXf+c3X+7i5xpGFbZN2Rm9NHFUvBU4jAEcmDq+h + keng2+vm4ubg04yHbKOjfsLCoe/w3P7++/////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////wAA//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////z66ePdo5mR0crA+Pbu//74 + ///8///+7Ozsc3R0kpOT8PDw19fXzMzP+/n8//3///3+//3+9vXwysvG4+bj8PDwvby+u7u4uby2sLW4 + maC7YGuwMT68UF60gIqSpJxgtqdcrZtZkHw7cV81yL6x//r8//z+9vPtiotyp6uHxsqq8fLh//38//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////AAD///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////Pv//vrd1866sqfHwbfx7uf8/Pj///3t7euDgH6LiYbs7enP0c/Ly8z7+vz+ + /f/9/P79/fz09PHCwb3p6efk4+OmpajKycjLzcrJz9G9xd6Fj9otO9I5TMFuf5+gommwq1izq164r2S1 + r3nj4sn//vT//Pb4+Oman36gp3/L0LD09ef//f7///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////8AAP////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////8/f/++v389u3p4dHL + w8PBu9ra1/X39fLy8JGMh4d/eOzr5NXX0MnMyfP29vr9/vj8/fr7/PDx7sfGwuzs6t3c3L++v/v6+/r8 + +/n9/fD3/8LK/EZV2zNFvGBzppyidqysWrGuXLSuZLa2eNDWqN/jwOPmyOHmw7C5jq23itTbuvn57P/9 + /v////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////wAA//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////vz8/P/8+Pv1/v/5/Pv49PLx3t7d4OTg9PTvtKmgemle0sa4vrWpy8fA + /fz6+/7++/7+/v7/8fDvycbD7evo4uHfv8C/9vj49vr5+P769vv95ev/coHqO0/DU2azj5uDp61ht7dg + tLZpr7dyrLh4rbl9rLiAq7iCqraBt8GT4+nK/P3x//3///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////AAD///////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////8 + //3//f3+/P38+/z2+fb9/Pa+sqZEKxxCJRVBKBiZiH759vL7+Pj8+fv/+/738vPMxsXr6efl4+C7vrv1 + +vn7///7//z8/f32+P+mtPZNYc5BV7eBkpKirGuvtVystmeruXGrvHOuvniyw3+ywoOvvYPAyp7x9tv9 + /vL//v7///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////8AAP////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////9/v77/fz9/vn9/P7/+Ma8r0sqG0QaCEQe + DIdpX82+u8rAwse/w8i/w8e9vrmur8O8uru4tLa6t/T6+Pn//fn9+P78+/z6/sva+WV62TtSvHWKnp6s + eq22YKq5aKe5cK3Ad63Ad62/ebTEg7PBi9Lbtfn85/z98/79+v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////wAA//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////+/z99fr5/v74xryxRycZSB0LRRwLkXFo38zI3tLU08vP08nN2M7QvLGx0MfG0tDM + 3+Pf9/z5+v/9/f79//7+/vz+4u7+iqHsQVzEZn+mlaWHqLNmq7xqp7xwrsF5sMR8scKBsMCGvcmb6vHV + /v/z/v/5///8//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////AAD///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////5+/35/v3+/vrazsWQdWlx + UD9aPi29q6D89vP89/j8+Pv++/728PHPxsbt5+T9/Pj6/fn5/vr4/fn9/Pz9+vz49Pbt9v2ovfFXc85f + eq2Mn5Kmsm+svmyswXGsvnewwYCzw4mzv5HU3bz8/+7///j///z///7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////8AAP// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////r+/vf9/fn7+f358/rw6OHRw5CEdsS+t/r49ff5+fn7/P39/vHv7r+8uMjE + wNHPzcrMycXKxcXJxMzJydHJzs3FyfT4+sna+3KO1ll1roWZm6axeqy9bq3Cca3AerDAhK+7i8PMqfD0 + 3///9////f/+///+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////wAA//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////+P39+v//+v39/v77 + //z3/fvzw8O6kJGN4eTk+f39+f3+/P3++vr44uHd3NrY3tzb3+Dg39/f3t/d4t3d3dfawbq/+vj92uf9 + i6fZV3OrfZKdpLCArLlwrb5vrL95qbmCucOe5OrT/P3z/P36/////v7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + AAD///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////5/v75/v/3/Pz6/v3+/v77/Pr7/PvP0NC2trry8fP9/v7+/fz+/vr/ + //z///3//v7+/f///f///////vr28/LCu8L78/3l7v2mwN9cea11i5qfq4OstnKtunCsvXu2xZTh5839 + /vT7+/r///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////8AAP////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////n9/vj9 + //r///r9/vv9/f38/vr4+urn6ufi5v77/P78/P79+f//+//+/f38/P/9/v/9///9/v789/n288G5v/70 + //L2/73U6GWCsnCHmJmngqyzdqy3dbfGjeDrxfn87f7++/79/vz7/P////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////wAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////P///P7+/f///f7//f7//////Pv7/v79/v76 + /v35/v35/v76/v77//79/v7/+/z//f369vDr0cLA9ubn9vj60eHxcYu5aoaYi6GBoq17yM2k6O7V+v3w + ///7/v7+/v3//f3+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////AAD///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////9//78//78//79//79//7///3///z+/vv+/vv6+fbw7er08/H7+fn//Pvl4NuVhX1z + V02NbmTMwL3o8P+Cks5vhamhtq3a4Mj6+ur6+vf+/v7////9/f3+/v7///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////8AAP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////7//v3//v3//v7//v7//v// + /v7//f39/P38/PTy89XT1MfFxczExM7DwbmpolU4Lz8WCkchEaqYlO/y/4+a44mX0dLe6/z7+f/9+v// + //7+/v39/f7+/v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////wAA//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////+///+///+/////////fz++fn7+vn98vP27eru6uLl6dnbzba0 + XDcxQhQIQxwMqZiP7/T+mKTslqXi3en6/f7+//36/////f39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////AAD///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////8+/3+/v/9/f/7+/75+P38+v/++f3//P7s5eWfh4KKbWKRe2fLxb3h7v+Mnd+fsujh8f75/v/+ + //z+/f39/f3///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////8AAP////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////78//z7//P0/Orr9fLz/Pr5+/z9 + /Pn7+v77+f/7+f/89/T6/cvf/oWc2LHG7+j4//T5/P3+/f7+/v7+/v////7+/v////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////wAA//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////fz/+vr+7O3329vm5ufy8/n/7/v+8vv/8fb/8vf+4+//rMDtk6nfzN/87vn/ + +Pz9/v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////AAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////8/f/4+P7r7PbR + 0ePDyOHI2vHT5vjU5vjH1fasu+yYqN7D1PPv+/76//r///n///v///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////8AAP////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////39//39//38//Lw/N3g9bzO6azB5Ke65Ka14K6658bQ9ez1/vn+ + 9/7+7f//8v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////wAA//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////3//v3/ + //7/+vn99Pr+5Pf92/D52uv53+z55ez87vL/+f3+/v71/v7y//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////AAD///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////8AAP// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////wAA//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + AAD///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////8AAP////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////wAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////AAD///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////8AAP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////wAA//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////AAD///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////8AAA== + + + + Oatc Configuration Editor + +Copyright (c) 2005,2006,2007, OpenMI Association +All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +Neither the name of the OpenMI Association nor the +names of its contributors may be used to endorse or promote products +derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/AssemblyInfo.cs new file mode 100644 index 00000000..d6a7dbbf --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("Oatc ConfigurationEditor Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4")] +[assembly: AssemblyCopyright("BSD License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/ConnectionDialog.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/ConnectionDialog.cs new file mode 100644 index 00000000..7693f0ac --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/ConnectionDialog.cs @@ -0,0 +1,948 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Diagnostics; +using System.Text; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; + +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Gui.Core; +using Oatc.OpenMI.Gui.Controls; + + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + /// + /// Summary description for ConnectionDialog. + /// + public class ConnectionDialog : System.Windows.Forms.Form + { + #region Form controls + + private System.Windows.Forms.ListBox listLinks; + private ExchangeItemSelector providerExchangeItemSelector; + private ExchangeItemSelector acceptorExchangeItemSelector; + private System.Windows.Forms.CheckBox DimensionFilterCheckBox; + private System.Windows.Forms.CheckBox ElementTypeFilterCheckBox; + private System.Windows.Forms.PropertyGrid propertyGrid; + private System.Windows.Forms.Label labelInfo; + private System.Windows.Forms.Button buttonApply; + private System.Windows.Forms.Button buttonRemove; + private System.Windows.Forms.Label labelWarning; + private System.Windows.Forms.Button buttonClose; + + private System.Windows.Forms.Button buttonViewElementSet; + private System.Windows.Forms.GroupBox groupBoxOutputExchnageItems; + private System.Windows.Forms.GroupBox groupBoxLinks; + private System.Windows.Forms.GroupBox groupBoxProperties; + private System.Windows.Forms.GroupBox groupBoxTools; + private System.Windows.Forms.GroupBox groupBoxInputExchangeItems; + private System.Windows.Forms.Panel panelBottom; + private System.Windows.Forms.Splitter splitterHorizontal; + private System.Windows.Forms.Splitter splitterVertical2; + private System.Windows.Forms.Splitter splitterVertical1; + + #endregion + + #region Member variables + + /// + /// This Hashtable is used to store already constructed PropertyManagers of + /// selected object. Its key is selected object, value is corresponding PropertyManager + /// or null if it not exists at the time. + /// + private Hashtable _propertyManagerCache; + + private UIConnection _uilink; + private int _startingLinkID; + private bool _shouldBeSaved; + + private ElementSetViewer _elementSetViewer; + + #endregion + + /// + /// Creates a new instance of ConnectionDialog dialog. + /// + public ConnectionDialog() + { + InitializeComponent(); + + _uilink = null; + _propertyManagerCache = new Hashtable(); + _startingLinkID = 0; + + _shouldBeSaved = false; + + _elementSetViewer = new ElementSetViewer(); + } + + + #region Methods + + /// + /// Populates this ConnectionDialog with specific connection. + /// + /// + /// + public void PopulateDialog( UIConnection uilink, int startingLinkID ) + { + _uilink = uilink; + _startingLinkID = startingLinkID; + _propertyManagerCache = new Hashtable(); + + _shouldBeSaved = false; + + ElementTypeFilterCheckBox.Checked = false; + DimensionFilterCheckBox.Checked = false; + + int count; + ILinkableComponent component; + + component = uilink.ProvidingModel.LinkableComponent; + IExchangeItem[] outputExchangeItems = new IExchangeItem[ component.OutputExchangeItemCount ]; + count = component.OutputExchangeItemCount; + for( int i = 0; i < count; i++ ) + outputExchangeItems[i] = component.GetOutputExchangeItem(i); + + providerExchangeItemSelector.PopulateExchangeItemTree( outputExchangeItems, true ); + + component = uilink.AcceptingModel.LinkableComponent; + IExchangeItem[] inputExchangeItems = new IExchangeItem[ component.InputExchangeItemCount ]; + count = component.InputExchangeItemCount; + for( int i = 0; i < count; i++ ) + inputExchangeItems[i] = component.GetInputExchangeItem(i); + + acceptorExchangeItemSelector.PopulateExchangeItemTree( inputExchangeItems, true ); + + UpdateListLinks(); + + labelInfo.Text = "Connection "+uilink.ProvidingModel.ModelID+" => "+uilink.AcceptingModel.ModelID; + } + + + private void UpdateListLinks() + { + int selectedIndex = listLinks.SelectedIndex; + + listLinks.Items.Clear(); + + listLinks.Items.Add( "" ); + + foreach( Link link in _uilink.Links ) + { + StringBuilder str = new StringBuilder( 200 ); + + str.Append( link.SourceQuantity.ID ); + str.Append( ", " ); + str.Append( link.SourceElementSet.ID ); + + if( link.DataOperationsCount > 0 ) + { + str.Append( " (" ); + for( int i=0; i " ); + str.Append( link.TargetQuantity.ID ); + str.Append( ", " ); + str.Append( link.TargetElementSet.ID ); + + listLinks.Items.Add( str.ToString() ); + } + + // select "" link if there isn't any other + // or if no other was selected + if( 0<=selectedIndex && selectedIndex" link is selected + buttonRemove.Enabled = false; + + providerExchangeItemSelector.ClearCheckboxes(); + acceptorExchangeItemSelector.ClearCheckboxes(); + } + else + { + ILink link = (ILink)_uilink.Links[listLinks.SelectedIndex-1]; + + ArrayList dataOperations = new ArrayList( link.DataOperationsCount ); + for( int i=0; i=1 + && listLinks.SelectedIndex==0 ) + { + MessageBox.Show( "Trigger can have only one link.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation ); + return; + } + + if( !CheckIfDataOperationsAreValid() ) + { + switch( MessageBox.Show("Selected combination of DataOperations is invalid. Adding such link to LinkableComponents may\nway to unexpected result, maybe whole application will crash. If you are sure what you do,\nclick 'Yes', but in this case it's STRONGLY recommended to save your project before you proceed.\n\nDo you really want to continue ?", "WARNING", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) ) + { + case DialogResult.Yes: + break; + default: + return; + } + } + + Debug.Assert( providerQuantity!=null && acceptorQuantity!=null ); + Debug.Assert( listLinks.SelectedIndex >= 0 ); + + int linkID; + + // TODO: shouldn't be this functionallity in UIConnection class ??? + // - only problem with unique linkID + + if( listLinks.SelectedIndex==0 ) + { + // Creating new link, so create new ID for it + linkID = ++_startingLinkID; + } + else + { + // Modifying existing link, use its previous ID + string oldLinkID = ((ILink)_uilink.Links[listLinks.SelectedIndex-1]).ID ; + linkID = int.Parse( oldLinkID ); + + // Remove this link from both LinkableComponents + _uilink.AcceptingModel.LinkableComponent.RemoveLink( oldLinkID ); + _uilink.ProvidingModel.LinkableComponent.RemoveLink( oldLinkID ); + } + + // Create a new link even if modifing existing one. + // That's because if some DataOperations were not selected, + // we wouldn't be able to remove them from the link + Link link = new Link( + _uilink.ProvidingModel.LinkableComponent, + providerElementSet, + providerQuantity, + _uilink.AcceptingModel.LinkableComponent, + acceptorElementSet, + acceptorQuantity, + linkID.ToString() ); + + // add DataOperations + foreach( IDataOperation dataOperation in providerDataOperations ) + { + // set all changed writeable Arguments to dataOperation from property box + if( _propertyManagerCache.Contains(dataOperation) ) + for( int i=0; i 0 ) + { + _elementSetViewer.PopulateDialog( elementSets ); + _elementSetViewer.ShowDialog(); + } + else + Debug.Assert(false); + } + + + #endregion + + #region .NET generated members + + private System.ComponentModel.Container components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(ConnectionDialog)); + this.listLinks = new System.Windows.Forms.ListBox(); + this.buttonClose = new System.Windows.Forms.Button(); + this.providerExchangeItemSelector = new Oatc.OpenMI.Gui.Controls.ExchangeItemSelector(); + this.acceptorExchangeItemSelector = new Oatc.OpenMI.Gui.Controls.ExchangeItemSelector(); + this.DimensionFilterCheckBox = new System.Windows.Forms.CheckBox(); + this.ElementTypeFilterCheckBox = new System.Windows.Forms.CheckBox(); + this.propertyGrid = new System.Windows.Forms.PropertyGrid(); + this.groupBoxOutputExchnageItems = new System.Windows.Forms.GroupBox(); + this.labelWarning = new System.Windows.Forms.Label(); + this.labelInfo = new System.Windows.Forms.Label(); + this.groupBoxLinks = new System.Windows.Forms.GroupBox(); + this.buttonApply = new System.Windows.Forms.Button(); + this.buttonRemove = new System.Windows.Forms.Button(); + this.groupBoxProperties = new System.Windows.Forms.GroupBox(); + this.buttonViewElementSet = new System.Windows.Forms.Button(); + this.groupBoxTools = new System.Windows.Forms.GroupBox(); + this.groupBoxInputExchangeItems = new System.Windows.Forms.GroupBox(); + this.panelBottom = new System.Windows.Forms.Panel(); + this.splitterHorizontal = new System.Windows.Forms.Splitter(); + this.splitterVertical2 = new System.Windows.Forms.Splitter(); + this.splitterVertical1 = new System.Windows.Forms.Splitter(); + this.groupBoxOutputExchnageItems.SuspendLayout(); + this.groupBoxLinks.SuspendLayout(); + this.groupBoxProperties.SuspendLayout(); + this.groupBoxTools.SuspendLayout(); + this.groupBoxInputExchangeItems.SuspendLayout(); + this.panelBottom.SuspendLayout(); + this.SuspendLayout(); + // + // listLinks + // + this.listLinks.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.listLinks.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.listLinks.HorizontalExtent = 3000; + this.listLinks.HorizontalScrollbar = true; + this.listLinks.Location = new System.Drawing.Point(8, 16); + this.listLinks.Name = "listLinks"; + this.listLinks.Size = new System.Drawing.Size(444, 106); + this.listLinks.TabIndex = 5; + this.listLinks.SelectedIndexChanged += new System.EventHandler(this.listLinks_SelectedIndexChanged); + // + // buttonClose + // + this.buttonClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClose.Location = new System.Drawing.Point(544, 140); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(84, 28); + this.buttonClose.TabIndex = 8; + this.buttonClose.Text = "&Close"; + this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); + // + // providerExchangeItemSelector + // + this.providerExchangeItemSelector.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.providerExchangeItemSelector.Location = new System.Drawing.Point(8, 16); + this.providerExchangeItemSelector.Name = "providerExchangeItemSelector"; + this.providerExchangeItemSelector.Size = new System.Drawing.Size(188, 112); + this.providerExchangeItemSelector.TabIndex = 0; + this.providerExchangeItemSelector.CheckboxesChanged += new System.EventHandler(this.providerExchangeItemSelector_CheckboxesChanged); + this.providerExchangeItemSelector.SelectionChanged += new System.EventHandler(this.providerExchangeItemSelector_SelectionChanged); + // + // acceptorExchangeItemSelector + // + this.acceptorExchangeItemSelector.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.acceptorExchangeItemSelector.Location = new System.Drawing.Point(8, 16); + this.acceptorExchangeItemSelector.Name = "acceptorExchangeItemSelector"; + this.acceptorExchangeItemSelector.Size = new System.Drawing.Size(188, 112); + this.acceptorExchangeItemSelector.TabIndex = 1; + this.acceptorExchangeItemSelector.CheckboxesChanged += new System.EventHandler(this.acceptorExchangeItemSelector_CheckboxesChanged); + this.acceptorExchangeItemSelector.SelectionChanged += new System.EventHandler(this.acceptorExchangeItemSelector_SelectionChanged); + // + // DimensionFilterCheckBox + // + this.DimensionFilterCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.DimensionFilterCheckBox.Checked = true; + this.DimensionFilterCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; + this.DimensionFilterCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.DimensionFilterCheckBox.Location = new System.Drawing.Point(8, 145); + this.DimensionFilterCheckBox.Name = "DimensionFilterCheckBox"; + this.DimensionFilterCheckBox.Size = new System.Drawing.Size(172, 16); + this.DimensionFilterCheckBox.TabIndex = 2; + this.DimensionFilterCheckBox.Text = "Use &Dimension filter"; + this.DimensionFilterCheckBox.CheckedChanged += new System.EventHandler(this.DimensionFilterCheckBox_CheckedChanged); + // + // ElementTypeFilterCheckBox + // + this.ElementTypeFilterCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.ElementTypeFilterCheckBox.Checked = true; + this.ElementTypeFilterCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; + this.ElementTypeFilterCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.ElementTypeFilterCheckBox.Location = new System.Drawing.Point(8, 129); + this.ElementTypeFilterCheckBox.Name = "ElementTypeFilterCheckBox"; + this.ElementTypeFilterCheckBox.Size = new System.Drawing.Size(172, 16); + this.ElementTypeFilterCheckBox.TabIndex = 3; + this.ElementTypeFilterCheckBox.Text = "Use &ElementType filter"; + this.ElementTypeFilterCheckBox.CheckedChanged += new System.EventHandler(this.ElementTypeFilterCheckBox_CheckedChanged); + // + // propertyGrid + // + this.propertyGrid.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.propertyGrid.CommandsVisibleIfAvailable = true; + this.propertyGrid.Cursor = System.Windows.Forms.Cursors.HSplit; + this.propertyGrid.LargeButtons = false; + this.propertyGrid.LineColor = System.Drawing.SystemColors.ScrollBar; + this.propertyGrid.Location = new System.Drawing.Point(8, 16); + this.propertyGrid.Name = "propertyGrid"; + this.propertyGrid.Size = new System.Drawing.Size(209, 145); + this.propertyGrid.TabIndex = 4; + this.propertyGrid.Text = "propertyGrid1"; + this.propertyGrid.ViewBackColor = System.Drawing.SystemColors.Window; + this.propertyGrid.ViewForeColor = System.Drawing.SystemColors.WindowText; + // + // groupBoxOutputExchnageItems + // + this.groupBoxOutputExchnageItems.Controls.Add(this.labelWarning); + this.groupBoxOutputExchnageItems.Controls.Add(this.providerExchangeItemSelector); + this.groupBoxOutputExchnageItems.Dock = System.Windows.Forms.DockStyle.Left; + this.groupBoxOutputExchnageItems.Location = new System.Drawing.Point(8, 28); + this.groupBoxOutputExchnageItems.Name = "groupBoxOutputExchnageItems"; + this.groupBoxOutputExchnageItems.Size = new System.Drawing.Size(204, 165); + this.groupBoxOutputExchnageItems.TabIndex = 23; + this.groupBoxOutputExchnageItems.TabStop = false; + this.groupBoxOutputExchnageItems.Text = " Output Exchange Items"; + // + // labelWarning + // + this.labelWarning.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.labelWarning.ForeColor = System.Drawing.Color.Red; + this.labelWarning.Location = new System.Drawing.Point(8, 132); + this.labelWarning.Name = "labelWarning"; + this.labelWarning.Size = new System.Drawing.Size(188, 28); + this.labelWarning.TabIndex = 2; + this.labelWarning.Text = "Warning: Selected combination of DataOperations is invalid !"; + this.labelWarning.Visible = false; + // + // labelInfo + // + this.labelInfo.Dock = System.Windows.Forms.DockStyle.Top; + this.labelInfo.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.labelInfo.ForeColor = System.Drawing.SystemColors.Desktop; + this.labelInfo.Location = new System.Drawing.Point(8, 0); + this.labelInfo.Name = "labelInfo"; + this.labelInfo.Size = new System.Drawing.Size(636, 28); + this.labelInfo.TabIndex = 24; + this.labelInfo.Text = "Connection XXX =>\n YYY"; + this.labelInfo.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // groupBoxLinks + // + this.groupBoxLinks.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBoxLinks.Controls.Add(this.buttonApply); + this.groupBoxLinks.Controls.Add(this.buttonRemove); + this.groupBoxLinks.Controls.Add(this.listLinks); + this.groupBoxLinks.Location = new System.Drawing.Point(104, 4); + this.groupBoxLinks.Name = "groupBoxLinks"; + this.groupBoxLinks.Size = new System.Drawing.Size(528, 128); + this.groupBoxLinks.TabIndex = 25; + this.groupBoxLinks.TabStop = false; + this.groupBoxLinks.Text = " Links"; + // + // buttonApply + // + this.buttonApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonApply.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonApply.Location = new System.Drawing.Point(456, 16); + this.buttonApply.Name = "buttonApply"; + this.buttonApply.Size = new System.Drawing.Size(64, 24); + this.buttonApply.TabIndex = 6; + this.buttonApply.Text = "&Apply"; + this.buttonApply.Click += new System.EventHandler(this.buttonApply_Click); + // + // buttonRemove + // + this.buttonRemove.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonRemove.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonRemove.Location = new System.Drawing.Point(456, 48); + this.buttonRemove.Name = "buttonRemove"; + this.buttonRemove.Size = new System.Drawing.Size(64, 24); + this.buttonRemove.TabIndex = 7; + this.buttonRemove.Text = "&Remove"; + this.buttonRemove.Click += new System.EventHandler(this.buttonRemove_Click); + // + // groupBoxProperties + // + this.groupBoxProperties.Controls.Add(this.propertyGrid); + this.groupBoxProperties.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBoxProperties.Location = new System.Drawing.Point(422, 28); + this.groupBoxProperties.Name = "groupBoxProperties"; + this.groupBoxProperties.Size = new System.Drawing.Size(222, 165); + this.groupBoxProperties.TabIndex = 26; + this.groupBoxProperties.TabStop = false; + this.groupBoxProperties.Text = "DataOperation properties"; + // + // buttonViewElementSet + // + this.buttonViewElementSet.Enabled = false; + this.buttonViewElementSet.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonViewElementSet.Location = new System.Drawing.Point(8, 16); + this.buttonViewElementSet.Name = "buttonViewElementSet"; + this.buttonViewElementSet.Size = new System.Drawing.Size(80, 32); + this.buttonViewElementSet.TabIndex = 8; + this.buttonViewElementSet.Text = "ElementSet &viewer"; + this.buttonViewElementSet.Click += new System.EventHandler(this.buttonViewElementSet_Click); + // + // groupBoxTools + // + this.groupBoxTools.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.groupBoxTools.Controls.Add(this.buttonViewElementSet); + this.groupBoxTools.Location = new System.Drawing.Point(4, 4); + this.groupBoxTools.Name = "groupBoxTools"; + this.groupBoxTools.Size = new System.Drawing.Size(96, 128); + this.groupBoxTools.TabIndex = 27; + this.groupBoxTools.TabStop = false; + this.groupBoxTools.Text = "Tools"; + // + // groupBoxInputExchangeItems + // + this.groupBoxInputExchangeItems.Controls.Add(this.acceptorExchangeItemSelector); + this.groupBoxInputExchangeItems.Controls.Add(this.DimensionFilterCheckBox); + this.groupBoxInputExchangeItems.Controls.Add(this.ElementTypeFilterCheckBox); + this.groupBoxInputExchangeItems.Dock = System.Windows.Forms.DockStyle.Left; + this.groupBoxInputExchangeItems.Location = new System.Drawing.Point(215, 28); + this.groupBoxInputExchangeItems.Name = "groupBoxInputExchangeItems"; + this.groupBoxInputExchangeItems.Size = new System.Drawing.Size(204, 165); + this.groupBoxInputExchangeItems.TabIndex = 0; + this.groupBoxInputExchangeItems.TabStop = false; + this.groupBoxInputExchangeItems.Text = " Input Exchange Items"; + // + // panelBottom + // + this.panelBottom.Controls.Add(this.buttonClose); + this.panelBottom.Controls.Add(this.groupBoxLinks); + this.panelBottom.Controls.Add(this.groupBoxTools); + this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panelBottom.Location = new System.Drawing.Point(8, 197); + this.panelBottom.Name = "panelBottom"; + this.panelBottom.Size = new System.Drawing.Size(636, 168); + this.panelBottom.TabIndex = 28; + // + // splitterHorizontal + // + this.splitterHorizontal.Dock = System.Windows.Forms.DockStyle.Bottom; + this.splitterHorizontal.Location = new System.Drawing.Point(8, 193); + this.splitterHorizontal.MinExtra = 150; + this.splitterHorizontal.MinSize = 150; + this.splitterHorizontal.Name = "splitterHorizontal"; + this.splitterHorizontal.Size = new System.Drawing.Size(636, 4); + this.splitterHorizontal.TabIndex = 30; + this.splitterHorizontal.TabStop = false; + // + // splitterVertical2 + // + this.splitterVertical2.Location = new System.Drawing.Point(419, 28); + this.splitterVertical2.MinExtra = 150; + this.splitterVertical2.MinSize = 150; + this.splitterVertical2.Name = "splitterVertical2"; + this.splitterVertical2.Size = new System.Drawing.Size(3, 165); + this.splitterVertical2.TabIndex = 24; + this.splitterVertical2.TabStop = false; + // + // splitterVertical1 + // + this.splitterVertical1.Location = new System.Drawing.Point(212, 28); + this.splitterVertical1.MinExtra = 150; + this.splitterVertical1.MinSize = 150; + this.splitterVertical1.Name = "splitterVertical1"; + this.splitterVertical1.Size = new System.Drawing.Size(3, 165); + this.splitterVertical1.TabIndex = 27; + this.splitterVertical1.TabStop = false; + // + // ConnectionDialog + // + this.AcceptButton = this.buttonClose; + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.CancelButton = this.buttonClose; + this.ClientSize = new System.Drawing.Size(652, 373); + this.Controls.Add(this.groupBoxProperties); + this.Controls.Add(this.splitterVertical2); + this.Controls.Add(this.groupBoxInputExchangeItems); + this.Controls.Add(this.splitterVertical1); + this.Controls.Add(this.groupBoxOutputExchnageItems); + this.Controls.Add(this.splitterHorizontal); + this.Controls.Add(this.labelInfo); + this.Controls.Add(this.panelBottom); + this.DockPadding.Bottom = 8; + this.DockPadding.Left = 8; + this.DockPadding.Right = 8; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(660, 400); + this.Name = "ConnectionDialog"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Connection properties"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.LinkDialog_Closing); + this.groupBoxOutputExchnageItems.ResumeLayout(false); + this.groupBoxLinks.ResumeLayout(false); + this.groupBoxProperties.ResumeLayout(false); + this.groupBoxTools.ResumeLayout(false); + this.groupBoxInputExchangeItems.ResumeLayout(false); + this.panelBottom.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + + + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/ConnectionDialog.resx b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/ConnectionDialog.resx new file mode 100644 index 00000000..e20a80a8 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/ConnectionDialog.resx @@ -0,0 +1,788 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + True + + + Private + + + 4, 4 + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + (Default) + + + False + + + False + + + 4, 4 + + + True + + + ConnectionDialog + + + 80 + + + True + + + Private + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/HelpPage.htm b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/HelpPage.htm new file mode 100644 index 00000000..b438c0b6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/HelpPage.htm @@ -0,0 +1,15 @@ + + + + OmiEd help + + + + You will be automatically redirected to OmiEd help page in 5 seconds.
    + If not, please go to ../Help/Help.html. + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/MainForm.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/MainForm.cs new file mode 100644 index 00000000..7908476a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/MainForm.cs @@ -0,0 +1,1623 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Diagnostics; +using System.Text; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.IO; +using System.Threading; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Gui.Core; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + /// + /// Summary description for MainForm. + /// + public class MainForm : System.Windows.Forms.Form + { + #region Window controls + + private System.Windows.Forms.HScrollBar compositionHScrollBar; + private System.Windows.Forms.PictureBox compositionBox; + private System.Windows.Forms.VScrollBar compositionVScrollBar; + + private System.Windows.Forms.MainMenu mainMenu1; + private System.Windows.Forms.MenuItem menuItem15; + private System.Windows.Forms.MenuItem menuItem17; + private System.Windows.Forms.MenuItem menuItem18; + private System.Windows.Forms.ContextMenu contextMenu; + private System.Windows.Forms.MenuItem menuFileNew; + private System.Windows.Forms.MenuItem menuFileOpen; + private System.Windows.Forms.MenuItem menuFileSave; + private System.Windows.Forms.MenuItem menuFileSaveAs; + private System.Windows.Forms.MenuItem menuFileExit; + private System.Windows.Forms.MenuItem menuEditModelAdd; + private System.Windows.Forms.MenuItem menuEditTriggerAdd; + private System.Windows.Forms.MenuItem menuHelpAbout; + private System.Windows.Forms.MenuItem contextConnectionAdd; + private System.Windows.Forms.MenuItem contextModelProperties; + private System.Windows.Forms.MenuItem contextConnectionProperties; + private System.Windows.Forms.MenuItem contextModelRemove; + private System.Windows.Forms.MenuItem contextConnectionRemove; + private System.Windows.Forms.MenuItem contextModelAdd; + private System.Windows.Forms.MenuItem menuFileReload; + private System.Windows.Forms.MenuItem menuViewModelProperties; + private System.Windows.Forms.MenuItem menuEditConnectionProperties; + private System.Windows.Forms.MenuItem menuEditConnectionAdd; + private System.Windows.Forms.MenuItem menuFile; + private System.Windows.Forms.MenuItem menuEditRunProperties; + private System.Windows.Forms.MenuItem menuHelp; + private System.Windows.Forms.ImageList imageList; + private System.Windows.Forms.MenuItem menuItem1; + private System.Windows.Forms.MenuItem contextRun; + private System.Windows.Forms.MenuItem menuComposition; + + #endregion + + #region Member variables + + // pre-created dialogs + ModelDialog _modelDialog; + ConnectionDialog _connectionDialog; + AboutBox _aboutBox; + RunProperties _runProperties; + RunBox _runBox; + + + Cursor _sourceCursor, _targetCursor; + + bool _isAddingConnection = false; + UIModel _sourceModel = null; + + bool _isMovingModel = false; + Point _prevMouse; + + //Point _prevMouse; + //Point _currentMouse; + //Point _modelMoveOffset; + + object _contextSelectedObject; + + CompositionManager _composition; + + string _compositionFilename = null; + + Point _compositionBoxPositionInArea; + Rectangle _compositionArea; + + const string ApplicationTitle = "Configuration Editor"; + private System.Windows.Forms.MenuItem contextDivider; + private System.Windows.Forms.MenuItem contextAddTrigger; + private System.Windows.Forms.MenuItem menuHelpContents; + private System.Windows.Forms.MenuItem menuItem3; + private System.Windows.Forms.MenuItem menuOptions; + private System.Windows.Forms.MenuItem menuRegisterExtensions; + + const string DefaultFilename = "NewComposition.opr"; + + // record the culture that the application starts in + System.Globalization.CultureInfo _cultureInfo = Application.CurrentCulture; + + #endregion + + /// + /// Creates a new instance of MainForm window. + /// + public MainForm() + { + // + // Required for Windows Form Designer support + // + + _compositionBoxPositionInArea = new Point(0,0); + + InitializeComponent(); + + _composition = new CompositionManager(); + + _prevMouse = new Point(0,0); + + _sourceCursor = new Cursor(GetType(), "Source.cur"); + _targetCursor = new Cursor(GetType(), "Target.cur"); + + // create dialogs + _modelDialog = new ModelDialog(); + _connectionDialog = new ConnectionDialog(); + _aboutBox = new AboutBox(); + _runProperties = new RunProperties(); + _runBox = new RunBox(); + + menuRegisterExtensions.Checked = Utils.AreFileExtensionsRegistered( Application.ExecutablePath ); + } + + + #region Methods and properties + + /// + /// Method is used to start application. + /// + /// Command-line arguments. + /// Method proceeds all command-line args ("/opr %", "/reg", ...) + /// and perform requested actions. + private static void ProceedCommandLineArgs( string[] args ) + { + // read commad-line args + string oprFilename = null; + string omiFilename = null; + bool mta = false; + + for( int i=0; i + /// Opens composition from OPR file. + ///
    + /// Full path to OPR file. + private void OpenOprFile( string fullPath ) + { + try + { + _compositionFilename = null; + _composition.Release(); + _composition.LoadFromFile( fullPath ); + _compositionFilename = fullPath; + } + catch( Exception ex ) + { + MessageBox.Show(ex.ToString(), "Error occured while loading the file...", MessageBoxButtons.OK, MessageBoxIcon.Error); + _composition.Release(); + } + + UpdateControls(); + UpdateTitle(); + + CompositionUpdateArea(); + CompositionCenterView(); + } + + + /// + /// Adds one model to composition. + /// + /// Full path to OMI file. + private void AddModel( string fullPath ) + { + try + { + _composition.AddModel( null, fullPath ); + } + catch( Exception ex ) + { + MessageBox.Show( + "OMI filename: "+fullPath+"\n"+"Exception: "+ ex.ToString(), + "Error occured while adding the model...", + MessageBoxButtons.OK, + MessageBoxIcon.Error ); + } + + // Reset the culture every time a new model is added. + // The new model may be of a different culture, we want to retain the original culture of the application, + // which will be that of the User's computer. + Application.CurrentCulture = _cultureInfo; + + CompositionUpdateArea(); + UpdateControls(); + UpdateTitle(); + Invalidate(); + } + + + /// + /// Method calculates size of composition area and it's scroll-bars according to + /// position of models' rectangles and size of the window. + /// + /// + /// This method is called if some model has moved, main window has resized or if new file was opened. + /// + private void CompositionUpdateArea() + { + Point topLeft = new Point( 0, 0 ), + bottomRight = new Point( 0, 0 ); + + foreach( UIModel model in _composition.Models ) + { + topLeft.X = Math.Min( topLeft.X, model.Rect.X ); + topLeft.Y = Math.Min( topLeft.Y, model.Rect.Y ); + + bottomRight.X = Math.Max( bottomRight.X, model.Rect.X + model.Rect.Width ); + bottomRight.Y = Math.Max( bottomRight.Y, model.Rect.Y + model.Rect.Height ); + } + + // increase size of area + topLeft.X -= compositionBox.Width / 2; + topLeft.Y -= compositionBox.Height / 2; + bottomRight.X += compositionBox.Width - compositionBox.Width / 2; + bottomRight.Y += compositionBox.Height - compositionBox.Height / 2; + + _compositionArea = new Rectangle( topLeft.X, topLeft.Y, bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y ); + + // update scrollbars + + compositionHScrollBar.Minimum = _compositionArea.X; + compositionHScrollBar.Maximum = _compositionArea.X + _compositionArea.Width; + compositionHScrollBar.LargeChange = compositionBox.Width; + //compositionHScrollBar.Value = compositionHScrollBar.Value; // don't change Value, but call ValueChange event + + + compositionVScrollBar.Minimum = _compositionArea.Y; + compositionVScrollBar.Maximum = _compositionArea.Y + _compositionArea.Height; + compositionVScrollBar.LargeChange = compositionBox.Height; + //compositionVScrollBar.Value = compositionVScrollBar.Value; // todo + + compositionScrollBar_ValueChanged(null, null); + + compositionBox.Invalidate(); + } + + + /// + /// Sets composition box to center. + /// + private void CompositionCenterView() + { + // todo... + } + + private Point CompositionWindowPointToAreaPoint( Point point ) + { + return( new Point(_compositionBoxPositionInArea.X+point.X, _compositionBoxPositionInArea.Y+point.Y) ); + } + + private Point CompositionAreaPointToWindowPoint( Point point ) + { + return( new Point(point.X - _compositionBoxPositionInArea.X, point.Y - _compositionBoxPositionInArea.Y) ); + } + + + private void UpdateTitle() + { + this.Text = ApplicationTitle + (_composition.ShouldBeSaved ? " *" : "") ; + } + + + private void UpdateControls() + { + contextConnectionAdd.Enabled = menuEditConnectionAdd.Enabled = _composition.Models.Count > 1 ; + + bool hasTrigger = _composition.HasTrigger(); + + contextAddTrigger.Enabled = menuEditTriggerAdd.Enabled = !hasTrigger; + + contextRun.Enabled = menuEditRunProperties.Enabled = hasTrigger && _composition.Models.Count > 1; + } + + + /// + /// If composition should be saved, this method shows message box, where the user can do it, can + /// ignore it or can cancel current operation. + /// + /// Returns true if current operation can continue, or false + /// if user pressed cancel button. + private bool CheckIfSaved() + { + if( _composition.ShouldBeSaved ) + { + switch( MessageBox.Show("The composition has been changed.\n\nDo you want to save the changes?", "Warning", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) ) + { + case DialogResult.Yes: + menuFileSave_Click(null, null); + return( !_composition.ShouldBeSaved ); + case DialogResult.No: + return( true ); + default: + return( false ); + } + } + return( true ); + } + + + private void ShowLinkDialog( UIConnection link ) + { + // find maximum link ID of all existing links + int maxID = 0; + foreach( UIConnection uiLink in _composition.Connections ) + foreach( ILink iLink in uiLink.Links ) + maxID = Math.Max( int.Parse(iLink.ID), maxID ); + + _connectionDialog.PopulateDialog( link, maxID+1 ); + if( _connectionDialog.ShowDialog(this) == DialogResult.OK ) + _composition.ShouldBeSaved = true; + + UpdateTitle(); + } + + + private UIModel GetModel( int x, int y ) + { + Point areaPoint = CompositionWindowPointToAreaPoint( new Point(x,y) ); + + // search from last model to first for case some models are overlapping + for( int i=_composition.Models.Count-1; i>=0; i-- ) + { + UIModel model = (UIModel)_composition.Models[i]; + + if( model.IsPointInside(areaPoint) ) + return( model ); + } + + return( null ); + } + + + private UIConnection GetConnection( int x, int y ) + { + Point areaPoint = CompositionWindowPointToAreaPoint( new Point(x,y) ); + + for( int i=_composition.Connections.Count-1; i>=0; i-- ) + { + UIConnection connection = (UIConnection)_composition.Connections[i]; + + if( connection.IsOnConnectionLine(areaPoint) ) + return( connection ); + } + + return( null ); + } + + + private void StopAddingConnection() + { + _isAddingConnection = false; + compositionBox.Cursor = Cursors.Default; + _sourceModel = null; + } + + private void StopMovingModel() + { + _isMovingModel = false; + foreach( UIModel model in _composition.Models ) + model.IsMoving = false; + compositionBox.Invalidate(); + } + + + private void StopAllActions() + { + StopAddingConnection(); + StopMovingModel(); + } + + + #endregion + + #region MainForm event handlers + + private void MainForm_Load(object sender, System.EventArgs e) + { + MainForm_SizeChanged(sender, e); + UpdateTitle(); + UpdateControls(); + CompositionUpdateArea(); + } + + + private void MainForm_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) + { + MessageBox.Show("form1, dragDrop"); + + } + + + private void MainForm_SizeChanged(object sender, System.EventArgs e) + { + /*// resize all elements so they fit to window + const int border = 5; + const int scrollBarWidth = 16; + + // listBoxOutput + listBoxOutput.Height = (ClientRectangle.Height * 3) / 10; // 30% + listBoxOutput.Width = ClientRectangle.Width - 2*border; + listBoxOutput.Top = ClientRectangle.Height - (listBoxOutput.Height+border); + listBoxOutput.Left = border; + + //compositionBox.BackColor = Color.Brown; // todo + + // compositionBox + compositionBox.Top = border; + compositionBox.Left = border; + compositionBox.Width = listBoxOutput.Width - scrollBarWidth; + compositionBox.Height = ClientRectangle.Height - listBoxOutput.Height - scrollBarWidth - 3*border; + + // compositionVScrollBar + compositionVScrollBar.Width = scrollBarWidth; + compositionVScrollBar.Height = compositionBox.Height; + compositionVScrollBar.Top = compositionBox.Top; + compositionVScrollBar.Left = border + compositionBox.Width; + + // compositionHScrollBar + compositionHScrollBar.Width = compositionBox.Width; + compositionHScrollBar.Height = scrollBarWidth; + compositionHScrollBar.Top = border + compositionBox.Height; + compositionHScrollBar.Left = border;*/ + + CompositionUpdateArea(); + } + + + private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // if composition isn't saved, show message box, and maybe stop the closing + e.Cancel = !CheckIfSaved(); + + if( !e.Cancel ) + { + _composition.Release(); + } + } + + + private void MainForm_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) + { + // ESC cancels adding connection + if( _isAddingConnection && e.KeyChar == 27 ) + { + StopAddingConnection(); + e.Handled = true; + Invalidate(); + } + } + + + #endregion + + #region Main menu event handlers + + private void menuEditModelAdd_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + OpenFileDialog dlgFile = new OpenFileDialog(); + dlgFile.CheckFileExists = true; + dlgFile.CheckPathExists = true; + dlgFile.Title = "Add model..."; + dlgFile.Filter = "OpenMI models (*.omi)|*.omi|All files|*.*"; + dlgFile.Multiselect = false; + + if( dlgFile.ShowDialog( this ) == DialogResult.OK ) + AddModel( dlgFile.FileName ); + + dlgFile.Dispose(); + } + + + private void menuEditTriggerAdd_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + try + { + _composition.AddModel( null, CompositionManager.TriggerModelID ); + } + catch( Exception ex ) + { + MessageBox.Show( + "Exception: "+ ex.ToString(), + "Error occured while adding the trigger...", + MessageBoxButtons.OK, + MessageBoxIcon.Error ); + } + + UpdateControls(); + UpdateTitle(); + CompositionUpdateArea(); + } + + + private void menuDeployRun_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + _runProperties.PopulateDialog( _composition, _compositionFilename==null ); + DialogResult result = _runProperties.ShowDialog( this ); + + UpdateTitle(); + + if( result == DialogResult.OK ) + { + // user decided to run the composition + + // ### prepare listeners + ArrayList listOfListeners = new ArrayList(); + + // progress bar + ProgressBarListener progressBarListener = new ProgressBarListener( _composition.GetSimulationTimehorizon(), _runBox.ProgressBarRun ); + listOfListeners.Add( progressBarListener ); + + // log file + if( _composition.LogToFile!=null && _composition.LogToFile!="" ) + { + // get composition file's directory to logfile is saved in same directory + string logFileName; + if( _compositionFilename!=null ) + { + FileInfo compositionFileInfo = new FileInfo(_compositionFilename); + FileInfo logFileInfo = Utils.GetFileInfo( compositionFileInfo.DirectoryName, _composition.LogToFile ); + logFileName = logFileInfo.FullName; + } + else + logFileName = _composition.LogToFile; + + LogFileListener logFileListener = new LogFileListener( _composition.ListenedEventTypes, logFileName ); + listOfListeners.Add( logFileListener ); + } + + // list box + if( _composition.ShowEventsInListbox ) + { + ListViewListener listViewListener = new ListViewListener( _composition.ListenedEventTypes, _runBox.ListViewEvents, 400 ); + listOfListeners.Add( listViewListener ); + } + + const uint actionInterval = 200; // in milliseconds + + // ### create proxy listener and register other listeners to it + IListener proxyListener; + if( _composition.RunInSameThread ) + { + // DoEvents listener + DoEventsListener doEventsListener = new DoEventsListener( actionInterval ); + listOfListeners.Add( doEventsListener ); + + ProxyListener proxySingleThreadListener = new ProxyListener(); + proxySingleThreadListener.Initialize( listOfListeners ); + proxyListener = proxySingleThreadListener; + } + else + { + ProxyMultiThreadListener proxyMultiThreadListener = new ProxyMultiThreadListener(); + proxyMultiThreadListener.Initialize( listOfListeners, _runBox.Timer, (int)actionInterval ); + proxyListener = proxyMultiThreadListener; + } + + // ### populate and show run-dialog and run simulation from it + Invalidate(); + _runBox.PopuplateDialog( _composition, proxyListener ); + _runBox.ShowDialog( this ); // this fires simulation + + + } + } + + + private void menuFileNew_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + if( !CheckIfSaved() ) + return; + + _composition.Release(); + + _compositionFilename = null; + UpdateControls(); + UpdateTitle(); + CompositionUpdateArea(); + } + + + private void menuFileOpen_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + if( !CheckIfSaved() ) + return; + + OpenFileDialog dlgFile = new OpenFileDialog(); + dlgFile.Filter = "OmiEd projects (*.opr)|*.opr|All files|*.*"; + dlgFile.Multiselect = false; + dlgFile.CheckFileExists = true; + dlgFile.CheckPathExists = true; + dlgFile.Title = "Open project..."; + + if( dlgFile.ShowDialog( this ) == DialogResult.OK ) + OpenOprFile( dlgFile.FileName ); + + dlgFile.Dispose(); + + } + + + private void menuFileSave_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + string filename; + + if( _compositionFilename == null ) + { + SaveFileDialog dlgFile = new SaveFileDialog(); + dlgFile.Filter = "OmiEd projects (*.opr)|*.opr|All files|*.*"; + dlgFile.ValidateNames = true; + dlgFile.FileName = DefaultFilename; + dlgFile.Title = "Save project..."; + dlgFile.AddExtension = true; + dlgFile.OverwritePrompt = true; + + if( dlgFile.ShowDialog( this ) != DialogResult.OK ) + { + dlgFile.Dispose(); + return; + } + + filename = dlgFile.FileName; + + dlgFile.Dispose(); + } + else + filename = _compositionFilename; + + try + { + _composition.SaveToFile( filename ); + _compositionFilename = filename; + } + catch( System.Exception ex ) + { + MessageBox.Show("Composition cannot be saved, make sure the file is not write-protected. Details: "+ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + UpdateTitle(); + } + + + private void menuFileSaveAs_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + SaveFileDialog dlgFile = new SaveFileDialog(); + dlgFile.Filter = "OmiEd projects (*.opr)|*.opr|All files|*.*"; + dlgFile.ValidateNames = true; + dlgFile.Title = "Save project As..."; + dlgFile.AddExtension = true; + dlgFile.OverwritePrompt = true; + + if( _compositionFilename != null ) + dlgFile.FileName = _compositionFilename; + else + dlgFile.FileName = DefaultFilename; + + if( dlgFile.ShowDialog( this ) != DialogResult.OK ) + { + dlgFile.Dispose(); + return; + } + + try + { + _composition.SaveToFile( dlgFile.FileName ); + _compositionFilename = dlgFile.FileName; + } + catch( System.Exception ex ) + { + MessageBox.Show("Composition cannot be saved, make sure the file is not write-protected. Details: "+ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + dlgFile.Dispose(); + + UpdateTitle(); + } + + + private void menuFileReload_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + _composition.Reload(); + } + + + private void menuFileExit_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + Close(); + } + + + private void menuEditConnectionAdd_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + _isAddingConnection = true; + compositionBox.Cursor = _sourceCursor; + //Cursor.Current = _sourceCursor; + } + + + private void menuViewModelProperties_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + _modelDialog.PopulateDialog( _composition.Models ); + _modelDialog.ShowDialog( this ); + } + + + private void menuRegisterExtensions_Click(object sender, System.EventArgs e) + { + if( menuRegisterExtensions.Checked ) + { + Utils.UnregisterFileExtensions(); + menuRegisterExtensions.Checked = false; + } + else + { + Utils.RegisterFileExtensions( Application.ExecutablePath ); + menuRegisterExtensions.Checked = true; + } + } + + + private void menuHelpAbout_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + _aboutBox.ShowDialog( this ); + } + + + private void menuHelpContents_Click(object sender, System.EventArgs e) + { + StopAllActions(); + + FileInfo fileInfo = new FileInfo( Application.StartupPath + "\\Help.html" ); + + if( !fileInfo.Exists ) + fileInfo = new FileInfo( Application.StartupPath + "\\HelpPage.htm" ); + + // trick to open file in project directory (exe is in "projdir\bin\debug") + // if not found in startup directory + if( !fileInfo.Exists ) + fileInfo = new FileInfo( Application.StartupPath + "\\..\\..\\HelpPage.htm" ); + + if( fileInfo.Exists ) + { + ProcessStartInfo info = new ProcessStartInfo( fileInfo.FullName ); + Process.Start( info ); + } + } + + + #endregion + + #region Context menu event handlers + + private void contextMenu_Popup(object sender, System.EventArgs e) + { + StopAllActions(); + + contextConnectionRemove.Visible = true; + contextConnectionProperties.Visible = true; + contextModelProperties.Visible = true; + contextModelRemove.Visible = true; + contextAddTrigger.Visible = true; + contextRun.Visible = true; + contextConnectionAdd.Visible = true; + + + if( _contextSelectedObject == null ) + { + contextDivider.Visible = false; + contextConnectionRemove.Visible = false; + contextConnectionProperties.Visible = false; + contextModelProperties.Visible = false; + contextModelRemove.Visible = false; + } + else if( _contextSelectedObject is UIConnection ) + { + contextDivider.Visible = true; + contextConnectionRemove.Visible = true; + contextConnectionProperties.Visible = true; + contextModelProperties.Visible = false; + contextModelRemove.Visible = false; + } + else if( _contextSelectedObject is UIModel ) + { + contextDivider.Visible = true; + contextConnectionRemove.Visible = false; + contextConnectionProperties.Visible = false; + contextModelProperties.Visible = true; + contextModelRemove.Visible = true; + } + else + Debug.Assert( false ); + + // Make disabled items invisible + if( !contextConnectionRemove.Enabled ) + contextConnectionRemove.Visible = false; + if( !contextConnectionProperties.Enabled ) + contextConnectionProperties.Visible = false; + if( !contextModelProperties.Enabled ) + contextModelProperties.Visible = false; + if( !contextModelRemove.Enabled ) + contextModelRemove.Visible = false; + if( !contextAddTrigger.Enabled ) + contextAddTrigger.Visible = false; + if( !contextRun.Enabled ) + contextRun.Visible = false; + if( !contextConnectionAdd.Enabled ) + contextConnectionAdd.Visible = false; + } + + + private void contextConnectionAdd_Click(object sender, System.EventArgs e) + { + menuEditConnectionAdd_Click(sender, e); + CompositionUpdateArea(); + UpdateControls(); + UpdateTitle(); + } + + private void contextConnectionRemove_Click(object sender, System.EventArgs e) + { + _composition.RemoveConnection( (UIConnection)_contextSelectedObject ); + CompositionUpdateArea(); + UpdateControls(); + UpdateTitle(); + } + + private void contextConnectionProperties_Click(object sender, System.EventArgs e) + { + ShowLinkDialog( (UIConnection)_contextSelectedObject ); + UpdateTitle(); + } + + private void contextModelAdd_Click(object sender, System.EventArgs e) + { + menuEditModelAdd_Click( sender, e ); + } + + private void contextModelRemove_Click(object sender, System.EventArgs e) + { + _composition.RemoveModel( (UIModel)_contextSelectedObject ); + CompositionUpdateArea(); + UpdateControls(); + UpdateTitle(); + } + + private void contextModelProperties_Click(object sender, System.EventArgs e) + { + _modelDialog.PopulateDialog( _composition.Models, ((UIModel)_contextSelectedObject).ModelID ); + _modelDialog.ShowDialog( this ); + } + + private void contextRun_Click(object sender, System.EventArgs e) + { + menuDeployRun_Click(sender, e); + } + + + private void contextAddTrigger_Click(object sender, System.EventArgs e) + { + menuEditTriggerAdd_Click( sender, e ); + } + + + #endregion + + + + #region Composition box event handlers + + private void compositionScrollBar_ValueChanged(object sender, System.EventArgs e) + { + _compositionBoxPositionInArea.X = compositionHScrollBar.Value; + _compositionBoxPositionInArea.Y = compositionVScrollBar.Value; + compositionBox.Invalidate(); + } + + private void compositionBox_Paint(object sender, System.Windows.Forms.PaintEventArgs e) + { + // draw OpenMI logo + e.Graphics.DrawImage( imageList.Images[0], 0, 0 ); + + foreach (UIConnection link in _composition.Connections) + link.Draw( _compositionBoxPositionInArea, e.Graphics ); + + foreach (UIModel model in _composition.Models) + model.Draw( _compositionBoxPositionInArea, e.Graphics ); + + // Draw link currently being added (if any) + //if( _isAddingLink && _leftMouseButtonIsDown ) + // UIConnection.DrawLink( (float)_prevMouse.X, (float)_prevMouse.Y, (float)_currentMouse.X, (float)_currentMouse.Y, _compositionBoxPositionInArea, e.Graphics); + } + + + private void compositionBox_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) + { + StopMovingModel(); + compositionBox.Invalidate(); + + bool actionFoundOut = false; + + // Left mouse button + if( e.Button == MouseButtons.Left ) + { + // if adding a connection + if( _isAddingConnection ) + { + UIModel model = GetModel( e.X, e.Y ); + + // if some model selected + if( model!=null ) + { + // if source model selected + if( _sourceModel == null ) + { + _sourceModel = model; + compositionBox.Cursor = _targetCursor; + } + else + { + // target model selected => add connection to composition + if( _sourceModel != model ) + _composition.AddConnection( _sourceModel, model ); + StopAddingConnection(); + } + } + else + { + // no model selected + StopAddingConnection(); + } + + actionFoundOut = true; + } + + // move model ? + if( !actionFoundOut ) + { + UIModel model = GetModel( e.X, e.Y ); + + if( model != null ) + { + _prevMouse.X = e.X; + _prevMouse.Y = e.Y; + + _isMovingModel = true; + model.IsMoving = true; + + actionFoundOut = true; + } + } + + // or show link dialog ? + if( !actionFoundOut ) + { + UIConnection connection = GetConnection(e.X,e.Y); + if( connection!=null ) + ShowLinkDialog( connection ); + } + } + else if( e.Button == MouseButtons.Right ) + { + // right button => show context menu + + // stop other actions + StopAddingConnection(); + StopMovingModel(); + + // get model under cursor + _contextSelectedObject = GetModel(e.X,e.Y); + if( _contextSelectedObject == null ) + _contextSelectedObject = GetConnection(e.X,e.Y); + + contextMenu.Show( compositionBox, new Point(e.X,e.Y) ); + } + } + + private void compositionBox_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) + { + // moving model ? + if( _isMovingModel ) + { + foreach( UIModel model in _composition.Models ) + if( model.IsMoving ) + { + model.Rect.X += e.X -_prevMouse.X; + model.Rect.Y += e.Y -_prevMouse.Y; + + _prevMouse.X = e.X; + _prevMouse.Y = e.Y; + + _composition.ShouldBeSaved = true; + CompositionUpdateArea(); + UpdateTitle(); + compositionBox.Invalidate(); + } + } + + } + + private void compositionBox_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) + { + StopMovingModel(); + } + + + #endregion + + #region .NET generated members + + private System.ComponentModel.IContainer components; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + + /// + /// The main entry point for the application. + /// + static void Main( string[] args ) + { + try + { + ProceedCommandLineArgs( args ); + } + catch( Exception e ) + { + MessageBox.Show( e.ToString(), "Error occured while starting the application", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + + + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + this.mainMenu1 = new System.Windows.Forms.MainMenu(this.components); + this.menuFile = new System.Windows.Forms.MenuItem(); + this.menuFileNew = new System.Windows.Forms.MenuItem(); + this.menuItem17 = new System.Windows.Forms.MenuItem(); + this.menuFileReload = new System.Windows.Forms.MenuItem(); + this.menuItem18 = new System.Windows.Forms.MenuItem(); + this.menuFileOpen = new System.Windows.Forms.MenuItem(); + this.menuFileSave = new System.Windows.Forms.MenuItem(); + this.menuFileSaveAs = new System.Windows.Forms.MenuItem(); + this.menuItem15 = new System.Windows.Forms.MenuItem(); + this.menuFileExit = new System.Windows.Forms.MenuItem(); + this.menuComposition = new System.Windows.Forms.MenuItem(); + this.menuEditModelAdd = new System.Windows.Forms.MenuItem(); + this.menuEditConnectionAdd = new System.Windows.Forms.MenuItem(); + this.menuEditTriggerAdd = new System.Windows.Forms.MenuItem(); + this.menuItem1 = new System.Windows.Forms.MenuItem(); + this.menuEditConnectionProperties = new System.Windows.Forms.MenuItem(); + this.menuViewModelProperties = new System.Windows.Forms.MenuItem(); + this.menuEditRunProperties = new System.Windows.Forms.MenuItem(); + this.menuOptions = new System.Windows.Forms.MenuItem(); + this.menuRegisterExtensions = new System.Windows.Forms.MenuItem(); + this.menuHelp = new System.Windows.Forms.MenuItem(); + this.menuHelpContents = new System.Windows.Forms.MenuItem(); + this.menuItem3 = new System.Windows.Forms.MenuItem(); + this.menuHelpAbout = new System.Windows.Forms.MenuItem(); + this.compositionHScrollBar = new System.Windows.Forms.HScrollBar(); + this.compositionBox = new System.Windows.Forms.PictureBox(); + this.compositionVScrollBar = new System.Windows.Forms.VScrollBar(); + this.contextMenu = new System.Windows.Forms.ContextMenu(); + this.contextModelAdd = new System.Windows.Forms.MenuItem(); + this.contextConnectionAdd = new System.Windows.Forms.MenuItem(); + this.contextAddTrigger = new System.Windows.Forms.MenuItem(); + this.contextRun = new System.Windows.Forms.MenuItem(); + this.contextDivider = new System.Windows.Forms.MenuItem(); + this.contextConnectionRemove = new System.Windows.Forms.MenuItem(); + this.contextConnectionProperties = new System.Windows.Forms.MenuItem(); + this.contextModelRemove = new System.Windows.Forms.MenuItem(); + this.contextModelProperties = new System.Windows.Forms.MenuItem(); + this.imageList = new System.Windows.Forms.ImageList(this.components); + ((System.ComponentModel.ISupportInitialize)(this.compositionBox)).BeginInit(); + this.SuspendLayout(); + // + // mainMenu1 + // + this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuFile, + this.menuComposition, + this.menuOptions, + this.menuHelp}); + // + // menuFile + // + this.menuFile.Index = 0; + this.menuFile.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuFileNew, + this.menuItem17, + this.menuFileReload, + this.menuItem18, + this.menuFileOpen, + this.menuFileSave, + this.menuFileSaveAs, + this.menuItem15, + this.menuFileExit}); + this.menuFile.Text = "&File"; + // + // menuFileNew + // + this.menuFileNew.Index = 0; + this.menuFileNew.Shortcut = System.Windows.Forms.Shortcut.CtrlN; + this.menuFileNew.Text = "&New"; + this.menuFileNew.Click += new System.EventHandler(this.menuFileNew_Click); + // + // menuItem17 + // + this.menuItem17.Index = 1; + this.menuItem17.Text = "-"; + // + // menuFileReload + // + this.menuFileReload.Index = 2; + this.menuFileReload.Shortcut = System.Windows.Forms.Shortcut.CtrlR; + this.menuFileReload.Text = "&Reload"; + this.menuFileReload.Click += new System.EventHandler(this.menuFileReload_Click); + // + // menuItem18 + // + this.menuItem18.Index = 3; + this.menuItem18.Text = "-"; + // + // menuFileOpen + // + this.menuFileOpen.Index = 4; + this.menuFileOpen.Shortcut = System.Windows.Forms.Shortcut.CtrlO; + this.menuFileOpen.Text = "&Open..."; + this.menuFileOpen.Click += new System.EventHandler(this.menuFileOpen_Click); + // + // menuFileSave + // + this.menuFileSave.Index = 5; + this.menuFileSave.Shortcut = System.Windows.Forms.Shortcut.CtrlS; + this.menuFileSave.Text = "&Save"; + this.menuFileSave.Click += new System.EventHandler(this.menuFileSave_Click); + // + // menuFileSaveAs + // + this.menuFileSaveAs.Index = 6; + this.menuFileSaveAs.Text = "Save &As..."; + this.menuFileSaveAs.Click += new System.EventHandler(this.menuFileSaveAs_Click); + // + // menuItem15 + // + this.menuItem15.Index = 7; + this.menuItem15.Text = "-"; + // + // menuFileExit + // + this.menuFileExit.Index = 8; + this.menuFileExit.Text = "E&xit"; + this.menuFileExit.Click += new System.EventHandler(this.menuFileExit_Click); + // + // menuComposition + // + this.menuComposition.Index = 1; + this.menuComposition.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuEditModelAdd, + this.menuEditConnectionAdd, + this.menuEditTriggerAdd, + this.menuItem1, + this.menuEditConnectionProperties, + this.menuViewModelProperties, + this.menuEditRunProperties}); + this.menuComposition.Text = "&Composition"; + // + // menuEditModelAdd + // + this.menuEditModelAdd.Index = 0; + this.menuEditModelAdd.Text = "Add &Model"; + this.menuEditModelAdd.Click += new System.EventHandler(this.menuEditModelAdd_Click); + // + // menuEditConnectionAdd + // + this.menuEditConnectionAdd.Enabled = false; + this.menuEditConnectionAdd.Index = 1; + this.menuEditConnectionAdd.Text = "Add &Connection"; + this.menuEditConnectionAdd.Click += new System.EventHandler(this.menuEditConnectionAdd_Click); + // + // menuEditTriggerAdd + // + this.menuEditTriggerAdd.Index = 2; + this.menuEditTriggerAdd.Text = "Add &Trigger"; + this.menuEditTriggerAdd.Click += new System.EventHandler(this.menuEditTriggerAdd_Click); + // + // menuItem1 + // + this.menuItem1.Index = 3; + this.menuItem1.Text = "-"; + // + // menuEditConnectionProperties + // + this.menuEditConnectionProperties.Enabled = false; + this.menuEditConnectionProperties.Index = 4; + this.menuEditConnectionProperties.Text = "Co&nnection properties..."; + // + // menuViewModelProperties + // + this.menuViewModelProperties.Index = 5; + this.menuViewModelProperties.Text = "Model &properties..."; + this.menuViewModelProperties.Click += new System.EventHandler(this.menuViewModelProperties_Click); + // + // menuEditRunProperties + // + this.menuEditRunProperties.Index = 6; + this.menuEditRunProperties.Shortcut = System.Windows.Forms.Shortcut.F5; + this.menuEditRunProperties.Text = "&Run..."; + this.menuEditRunProperties.Click += new System.EventHandler(this.menuDeployRun_Click); + // + // menuOptions + // + this.menuOptions.Index = 2; + this.menuOptions.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuRegisterExtensions}); + this.menuOptions.Text = "&Options"; + // + // menuRegisterExtensions + // + this.menuRegisterExtensions.Checked = true; + this.menuRegisterExtensions.Index = 0; + this.menuRegisterExtensions.Text = "&Register file extensions"; + this.menuRegisterExtensions.Click += new System.EventHandler(this.menuRegisterExtensions_Click); + // + // menuHelp + // + this.menuHelp.Index = 3; + this.menuHelp.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.menuHelpContents, + this.menuItem3, + this.menuHelpAbout}); + this.menuHelp.Text = "&Help"; + // + // menuHelpContents + // + this.menuHelpContents.Index = 0; + this.menuHelpContents.Shortcut = System.Windows.Forms.Shortcut.F1; + this.menuHelpContents.Text = "Help contents"; + this.menuHelpContents.Click += new System.EventHandler(this.menuHelpContents_Click); + // + // menuItem3 + // + this.menuItem3.Index = 1; + this.menuItem3.Text = "-"; + // + // menuHelpAbout + // + this.menuHelpAbout.Index = 2; + this.menuHelpAbout.Text = "&About Configuration Editor ..."; + this.menuHelpAbout.Click += new System.EventHandler(this.menuHelpAbout_Click); + // + // compositionHScrollBar + // + this.compositionHScrollBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.compositionHScrollBar.Location = new System.Drawing.Point(0, 236); + this.compositionHScrollBar.Maximum = 20; + this.compositionHScrollBar.Minimum = -10; + this.compositionHScrollBar.Name = "compositionHScrollBar"; + this.compositionHScrollBar.Size = new System.Drawing.Size(376, 16); + this.compositionHScrollBar.TabIndex = 2; + this.compositionHScrollBar.ValueChanged += new System.EventHandler(this.compositionScrollBar_ValueChanged); + // + // compositionBox + // + this.compositionBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.compositionBox.BackColor = System.Drawing.Color.White; + this.compositionBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.compositionBox.Location = new System.Drawing.Point(0, 0); + this.compositionBox.Name = "compositionBox"; + this.compositionBox.Size = new System.Drawing.Size(376, 236); + this.compositionBox.TabIndex = 3; + this.compositionBox.TabStop = false; + this.compositionBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseMove); + this.compositionBox.MouseDown += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseDown); + this.compositionBox.Paint += new System.Windows.Forms.PaintEventHandler(this.compositionBox_Paint); + this.compositionBox.MouseUp += new System.Windows.Forms.MouseEventHandler(this.compositionBox_MouseUp); + // + // compositionVScrollBar + // + this.compositionVScrollBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.compositionVScrollBar.Location = new System.Drawing.Point(376, 0); + this.compositionVScrollBar.Name = "compositionVScrollBar"; + this.compositionVScrollBar.Size = new System.Drawing.Size(16, 236); + this.compositionVScrollBar.TabIndex = 4; + this.compositionVScrollBar.ValueChanged += new System.EventHandler(this.compositionScrollBar_ValueChanged); + // + // contextMenu + // + this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.contextModelAdd, + this.contextConnectionAdd, + this.contextAddTrigger, + this.contextRun, + this.contextDivider, + this.contextConnectionRemove, + this.contextConnectionProperties, + this.contextModelRemove, + this.contextModelProperties}); + this.contextMenu.Popup += new System.EventHandler(this.contextMenu_Popup); + // + // contextModelAdd + // + this.contextModelAdd.Index = 0; + this.contextModelAdd.Text = "Add Model..."; + this.contextModelAdd.Click += new System.EventHandler(this.contextModelAdd_Click); + // + // contextConnectionAdd + // + this.contextConnectionAdd.Index = 1; + this.contextConnectionAdd.Text = "Add Connection"; + this.contextConnectionAdd.Click += new System.EventHandler(this.contextConnectionAdd_Click); + // + // contextAddTrigger + // + this.contextAddTrigger.Index = 2; + this.contextAddTrigger.Text = "Add Trigger"; + this.contextAddTrigger.Click += new System.EventHandler(this.contextAddTrigger_Click); + // + // contextRun + // + this.contextRun.Index = 3; + this.contextRun.Text = "Run..."; + this.contextRun.Click += new System.EventHandler(this.contextRun_Click); + // + // contextDivider + // + this.contextDivider.Index = 4; + this.contextDivider.Text = "-"; + // + // contextConnectionRemove + // + this.contextConnectionRemove.Index = 5; + this.contextConnectionRemove.Text = "Remove connection"; + this.contextConnectionRemove.Click += new System.EventHandler(this.contextConnectionRemove_Click); + // + // contextConnectionProperties + // + this.contextConnectionProperties.Index = 6; + this.contextConnectionProperties.Text = "Connection properties..."; + this.contextConnectionProperties.Click += new System.EventHandler(this.contextConnectionProperties_Click); + // + // contextModelRemove + // + this.contextModelRemove.Index = 7; + this.contextModelRemove.Text = "Remove model"; + this.contextModelRemove.Click += new System.EventHandler(this.contextModelRemove_Click); + // + // contextModelProperties + // + this.contextModelProperties.Index = 8; + this.contextModelProperties.Text = "Model properties..."; + this.contextModelProperties.Click += new System.EventHandler(this.contextModelProperties_Click); + // + // imageList + // + this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream"))); + this.imageList.TransparentColor = System.Drawing.Color.Transparent; + this.imageList.Images.SetKeyName(0, ""); + // + // MainForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(392, 253); + this.Controls.Add(this.compositionVScrollBar); + this.Controls.Add(this.compositionBox); + this.Controls.Add(this.compositionHScrollBar); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Menu = this.mainMenu1; + this.MinimumSize = new System.Drawing.Size(300, 200); + this.Name = "MainForm"; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; + this.Text = "Configuration Editor"; + this.Load += new System.EventHandler(this.MainForm_Load); + this.SizeChanged += new System.EventHandler(this.MainForm_SizeChanged); + this.DragDrop += new System.Windows.Forms.DragEventHandler(this.MainForm_DragDrop); + this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing); + this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.MainForm_KeyPress); + ((System.ComponentModel.ISupportInitialize)(this.compositionBox)).EndInit(); + this.ResumeLayout(false); + + } + #endregion + + + + #endregion + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/MainForm.resx b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/MainForm.resx new file mode 100644 index 00000000..4cc5aae3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/MainForm.resx @@ -0,0 +1,1185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 17, 17 + + + 126, 17 + + + 241, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABA + lAAAAk1TRnQBSQFMAwEBAAEEAQABBAEAAa0BAAFuAQAE/wEZAQAI/wFCAU0BNgcAATYDAAEoAwABtAEC + AgABbgMAAQEBAAEYBQABCAF8AQMRAP////8J//8A/wD/AP8A/wD/ABsA/////wn//wD/AP8A/wD/AP8A + GwBk/wH+Av8B/gL/Af4C/wH+GP8B/gX/Af4G/wH+Av8B/gL/Af4C/wH+Av8B/v//aP//AP8A/wD/AP8A + /wAbAGH/Af4C/wH+Av8B/QL/Af4C/wH+Av8B/gH/Af4C/wH+B/8B/gL/Af4C/wH+Av8B/QL/Af4C/wH9 + Av8B/gL/Af4B/QL/Af0C/wH9Av8B/QL/Af0C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/ + Af4C/wH+Av8B/v//R///AP8A/wD/AP8A/wAbAGH/Af4C/wH9Av8B/QL/Af4C/wH+Av8B/gH/Af4C/wH+ + B/8B/gL/Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af4B/QL/AfwC/wH9Av8B/QL/Af0C/wH9Av8B/gL/ + Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/v//R///AP8A/wD/AP8A/wAbAGH/Af4C/wH+ + Av8B/gL/Af4C/wH+Av8B/gL/Af4J/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gH9Av8B/QL/ + Af0C/wH9Av8B/QL/Af0C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+//9H//8A + /wD/AP8A/wD/ABsAZP8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Cf8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+ + Av8B/gL/Av4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+ + Av8B/gL/Af7//0f//wD/AP8A/wD/AP8AGwBq/wH+GP8B/gL/Af4C/wH+Av8B/gL/Af4C/wL+Av8B/gL/ + Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/v//Tf//AP8A/wD/AP8A + /wAbAGP/Af4C/wH+Af8B/hr/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gn/Af4C/wH+Av8B/gL/Af4C/wH+ + Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+//9N//8A/wD/AP8A/wD/ABsAY/8B/gH/Av4B/wH9Av8B/gL/ + Af4E/wH+D/8B/gL/Af4C/wH9Av8B/QL/Af0C/wH+Ev8B/gL/Af4C/wH9Av8B/QL/Af4C/wH+Av8B/gL/ + Af7//03//wD/AP8A/wD/AP8AGwBg/wH+Af8B/gH9Af8C/QH/Af0B/gH/Af0C/wH9Af8B/gL/Af4N/wH+ + Af8B/gL/Af4C/wH9Av8B/QL/Af0C/wH9Av8B/gH/Af4C/wH+Cv8B/gL/Af4C/wH9Av8B/QL/Af4C/wH+ + Av8B/gL/Af7//03//wD/AP8A/wD/AP8AGwBg/wH+Af8B/gH9Af8C/QH/Af0B/gH/Af0C/wH9Af8B/gL/ + Af4C/wH+Av8B/gT/AfwC/QL/Af4B/AH7AfoC/wH9Af8B/gH8Av8B/AH/Af0B/AH/Av4B/wL8Af0C/AH/ + Af4H/wT9Av8B/QL/Af0C/wH9Av8B/QL/Af4C/wH+Nf8D/mD/MP6E//8A/wD/AP8A/wD/ABsAS/8G/Qz+ + BP0B/gL9Af8C/QH/Af0C/wH9Av8B/gH/Af4C/wH+Av8B/gL/Af4B/wH9Av4D/AL/Af4C/wH9Av8C/AH5 + AfYC/wH8Av8B/AH+AvoB/wH+Av8B/gL/Av0B/wL9A/8D/QH8Af0B/AH9Av8B/QL/Af0C/wH9Av8B/gL/ + Af4g/wz9A/5p/zD+hP//AP8A/wD/AP8A/wAbAGL/Av4B/wH9Af4B/wH9Av8B/gT/Af4C/wH+Av8B/gL/ + Af4B/wH+Av8B/QH/Af4C/wL9AfwB+gHrAecB5AG+AbgBtAG4Aa8BqwG1AawBqQHRAcsBygH8AfcB+AH/ + Af4C/wH+Av8B/gH/BP4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af4C/wH+IP8D/gz/A/5m/zD+hP//AP8A + /wD/AP8A/wAbAFT/Bv4J/wH+Af8B/gL/Af4E/wH+Av8B/gL/Af4C/wH+Af8C/gH/Af0B/gH/Af0B/wH+ + Av8B/QL/AfwB8QHsAegBvgG1AbABvAGwAawBugGvAawBywHEAcMB/wL9Af8B/gL/Av0B/wH+BP8B/gL/ + AfwB/QH8Af0C/wH9Av8B/QL/Af0C/wH+I/8D/gn/Cf5j/zD+hP//AP8A/wD/AP8A/wAbAEv/GP4K/wH+ + Av8B/gL/Af4B/wL+Af8B/QH+Af8B/QL/Af0B/wH+AvwB+wH/Af4B+wHxAekB5QG8AbABqwHAAa8BqwG+ + Aa8BqwHPAsYB/wH9Av8D/QH6AfsB/wH+BP8B/gL/Af0C/wH9Av8B/QL/Af0C/wH9Av8B/iP/DP0G/mb/ + MP6E//8A/wD/AP8A/wD/ABsAS/8D/hL/A/4H/wH+Av8B/gL/Af4C/wH+Af8C/gH/Af0C/wH7Av0B/AH9 + AfwB/gH9AfsC/wH7AfUB7AHnAcABsgGtAcMBsQGrAb8BrgGpAcwCwQH/Af0C/wH+Av8B/gL/Af4C/wL+ + A/wB/QL/Af0C/wH9Av8B/QL/Af0C/wH+OP8D/WD/MP6E//8A/wD/AP8A/wD/ABsAUf8D/gb9A/4H/wH+ + Av8B/gL/Af4C/wH+Av8B/gL/Af0B/wH9Af4B/wH9Av8B/AL/Af0B/wH+Av8B/AH/Af0B+gH1AesB5gHB + AbEBrAHGAbEBqwHCAa8BqwHSAcgBxwH/Af0C/wH7AfwB/wH9Af4B/wH+BP8B/QL+Af0C/wH9Av8B/AL/ + Af0C/wH9Av8B/ib/A/4G/Qn/A/1g/zD+hP//AP8A/wD/AP8A/wAbAAP/Af4C/wH+Av8B/gL/Af4U/wH+ + Av8B/QL/Af0C/wH9Af8C/gH/Av4B/wH9Av8B/gL/Af4C/wH+Av8B/QL/Af0C/wH9Av8B/QL/AfwC/wH8 + Af8B/AH5AfwB9wH1AfgB9QHyAfgB9QHyAfwB9wH2Af8B/AH6Af8B/gH9Af8B/gH9Af8C/gH/Av4B/wH+ + Av8B/gL/Af4B/wH9Av8B/AL/AfsC/wH5AvwC/wH9Av8B/AH2AewB5wHBAbIBqwHEAbEBqAHEAbEBqgHR + AcYBwgH/Af4B/AH/Af4B/AH/Af4B/QH8AfcB9gH6AfYB8wH2AfMB8AH6AfcB9AL/AfwC/wH8Av8B/QL/ + Af0X/wH+Av8B/gL/Af0C/wH9Av8B/QH6AfYB9AH5AfQB8gH5AfQB8gH8AfcB9gH/AfwB+gL/Af0C/wH9 + Af8B/gH9Av8B/gH/Af4B/wL+Af8C/gL/Af4D/wH+Av8B/QL/Af0C/wH9Av8B/gH/Af4C/wH+Av8B/gL/ + Af4C/wH+Av8B/gL/Af4C/wH+A/8B/QL/Af0C/wH9Av8B/QL/A/4B/wH8Af0B/wH7AfwB/wL7Af8C+wH/ + AvwB/wL9Af8B/gT/Af4B/QH/Af4B/QL+Af8B/gL/Af4B/wP+Af0B/gH/AvwB/wH7AfwB/wH7AfwB/wL8 + Af8B/QH+Af8D/gH/Af4C/wH+Af8B/QL+Af0C/gP/Av4B/wH8Af0B/wH6AfwB/wH5AfwB/wH5AfwB/wH7 + AfwB/wL9Af8C/gH/Af0B/gH/AfwB/QH/AfsB/AH/AfoB/AH/AfsB/AH/AvwB/wL9Af8C/lL//wD/AP8A + /wD/AP8AGwAB/gL/Af0C/wH9Av8B/QH/Af4B/QH/Af4C/wH+Av8B/gH/Av4B/wH+Av8B/gL/Af4B/wH7 + A/wC/wH7Af8B/gH8Af8B/QH8Af8B/AH9Af8B/AL/AfwB/gH9AfoC/wH8Av8B/AL/AfwB/wH6AfYB8QHk + AeAB4QHUAc4B0AHDAbsByAG8AbMBwQG3Aa0BwAG1Aa0BwQG0Aa0BwgG0Aa0ByQG4AbMB0AG/AboB2gHK + AcgB6wHfAd4B/wH8AfkB/wH8AfoC/wH8Av8B/AH+Af8C/AH/Af0B+gL/AfoC/wH+BP8B/QHzAeoB5QHC + AbQBrAHCAbMBqAHBAbIBqAHVAcgBvwL/AfkB5wHbAdYB0AHCAb4BxAG4AbIBvgGxAasBwgG2Aa4BwQG2 + Aa0BxQG5AbEB1wHLAcUB8AHnAeMB/wH8AfkB/wL+Af8C/QH+Av8B/AL9AfwC/QX/Af4C/wH9Av8B/AH0 + Ae4B6wHZAdABzQHIAb4BuQHCAbYBsAHEAbYBsAHCAbIBrgHEAbYBsAHKAb8BuQHRAckBxAHlAeEB2wH/ + Af0B+QH/Af4B/QH/Af4B/wL9Af8C/AL/Af4B/wHpAuQBzgHFAcEB0QHIAcIBzQHDAcEB6gHjAeEB/wH+ + Af8B/gH8Af4C/AH9Av4B/wL+Af8B/gH9Av8B/QH/Af0C+QHPAcYBwwHRAcYBwQHTAccBwgHVAcsByAL/ + A/0B/wHwAfQB/wHRAdUB7wHPAdAB9wHSAdMB+gHjAeYB/AH3AfwB/wH9Af4B/wH8Af0C+wH8AfsB/QL/ + AfwB+wH8Af8B/gH/Af4B/wH+AfsB/QH/AfcB+QH/AdAB0wHrAdcB2gHzAfYB+gH/AfsB/QH/AfwB/QH8 + Af8B/gH/Af4B/AH+Af0C/wH8A/0C/AL9Af8B9gH7Af8B0wHaAfMBzwHVAfsBzAHRAfYB0QHVAesB9AH2 + Af8B/AH9Af8B+gH8Af8B8QH2Af8B0AHXAfEB0AHVAfkB0QHUAfgB1QHUAe8B+wH6Af8C/VL//wD/AP8A + /wD/AP8AGwAB/gL/Af0C/wH9Av8B/QH/Af4B/QH/Af4C/wH9Av8B/QH/Av4B/wL+Af8B/QH/Av4B/wH6 + Av0B+wL/AfoB/wH9AfsB/wH8AfoB/wH6Af4B/wH7Af8B/gH6Av8B/AL/AfwB/wH4AfQB4AHXAdIByQG9 + AbgBvQGuAagBwAGvAagBwgGzAakBwQGzAagBvwGxAagBvwGxAagBvwGxAagBwQGwAagBxAGwAaoBxgGx + AawBxQGxAa4BwAGvAasBwgG0AbEB2QHQAcsB/AH2AfEC/wH7Av8B+wH8Af8C+wH/Af4B+QH+Af0C/gL/ + Av4B9AHqAeYBwQGzAasBwgG0AagBwQGzAagBzwHBAbYB1wHIAcABugGtAagBugGtAagBvwGwAaoBvgGv + AagBwQGyAagBwgGzAagBwQGvAagBvwGvAagBwwG0Aa4B1QHKAcYB/AH1AfMC/wH9AfcB+QH3Af0B/wH9 + Av8B/gH8AfoB+QL/AfwB/wH6AfcB2wHRAc4BvwGzAa4BvgGxAawBvgGvAakBvgGuAagBwQGvAagBwQGv + AagBwgGwAakBwgGyAasBvAGuAagBvAGyAakBxwG/AbgB8gHrAekB/QL5Af8B/QH/Af4B/AL/AfwB/QHe + AdcB1AG7Aa0BqAHBAbEBqwG9Aa8BqwHgAdcB1AH/AvwB/wH+Af8C/gH/Af0B/gH/Af4B/QH/Af0B/AL/ + Af0B/wH5AvMBwQG1AbABvwGuAagBwAGvAagByAG6AbYB/wH6AfYC/QH/Ae0B8gH/AcIByAHoAbgBuQHx + ArgB8AHLAdAB8QHyAfcB/wH8Af4D/wH8Af0B/wL9A/8B/gH/AfwB+gL8Af0B/wH5AfwB/wHaAd4B/AG8 + AcAB5wHBAcMB7AHlAegB/wH5AfwB/wH8Af0B/gH/Af4C/wH+Af8B/QL/Af0F/wL8Af8B6wHxAf8BvAHE + AesBsgG5AfABtAG6Ae0ByAHNAeoB8QH0Af8B+wH8Af8B+AH7Af8B5wHsAf8BvAHCAekBtAG5Ae0BtwG4 + Ae0BwwHBAecB9gH0Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAH+Av8B/QL/Af0C/wH9Af8B/gH9Af8C/gH/ + Af0C/wH9Av8B/gH/Av4B/wH8Af0B/wH+Af8B/AL+AfsB/wH+AfwB/wH9AfwB/wH8AfoB/AH4Av8B+wH/ + Af0B+AL/AfoB8gHoAeQBxwG7AbgBwQG0Aa8BugGtAagBwQGyAa0BvAGvAagBuAGrAagBvgGzAakBwwG5 + Aa8BxQG6AbIBxgG6AbMBxQG5AbMBwAGzAa4BugGsAagBvwGsAagBxAGyAa8BwAGvAasBvgGwAawBygG9 + AbgB6gHhAdwB/wH8AfcC/wL8Af8B/QH7Af8B/gP9Af8C/gHzAeoB5wHAAbEBqwHBAbQBqAHBAbMBqAHE + AbUBqwG6Aa0BqAG7Aa8BqQHEAboBtAHMAcMBvQHTAcoBwwHMAcEBuQG8AbABqAG+Aa8BqAHCAbIBqQHE + AbMBrAG4AakBqAHcAdEBzgH/Af4B+wL/AvwB/wL7AfoB9wL/AfwB/wH9AfkB1wHLAcUBvQGuAagBwwGy + AaoBvwGvAagBwQGzAasBxgG4AbAB0AHEAb0B1wHIAcIB0QHCAb0ByQG5AbMBwAGvAagBvgGuAagBwwG0 + AasBxAG3AbAB6QHfAdwB/wL+Af8C/QH/AfsB+QHmAdsB1wHDAbIBqwHAAa0BqAG+Aa4BqAHjAdcB1AH/ + Af4B/QH/Af4C/wH+Af8C/QH/Af0B/AH/Af0B/AH+Af8B/gH/AfkB9AHxAcIBtgGvAcEBrwGoAcEBrwGo + AcgBuwG0Af8B+gH2Af0B/gH/AfcB+wH/AcsB0AHvArgB7wKyAe0BwAHCAesB7QHxAf8B+gH8Af8B/gH/ + Av0C/wL8Af0C/wH+AfsB+gL8Af0B/wHyAfQB/wHEAcYB8QG0AbUB7AGxAbIB6wHMAc8B+QHyAfQB/wH7 + Af0B/wL8Af0C/wL+Av8B/QL/Af4C/wH6AfwB/wHeAeEB/wG2AboB6wGvAbMB8AGzAbgB7QHWAdkB9QH4 + AfwB/wH8Af0B/wH6AfwB/wHqAe4B/wG5Ab4B6gGwAbMB7gKxAesBwAG9AeYB+gH3Af8B/QH8Uv//AP8A + /wD/AP8A/wAbAAP/Af4C/wH9Av8B/QH/Af4B/QH/Av4B/wH9Av8B/QL/Af4C/wH+Af8B/gL/Af4B/wH9 + Av8B+wL9AfwB/wH9Af4B/wH8Av0B+gL/AfsC/wH6AecB3AHVAcEBswGvAcMBtQGwAbwBrgGpAb4BsAGs + Ab0BsQGtAdMByQHEAeoB4QHbAfQB7AHlAf8B9wHxAf8B/QH3Af8B/QH4Af8B+AH0AfMB7QHqAesB4gHe + AdkBywHIAcYBtgGzAbkBqQGoAcEBsQGuAb0BrQGoAcQBtgGxAd0B1AHPAv8B/AL/AfwB/QH/Af4B/QH8 + Af0B/wL+AfUB6gHoAcABsQGsAcIBtAGpAcEBsgGoAbsBrQGoAcEBtQGvAeQB3AHXAf0B9wHzAv8B+wL/ + AfoB/wH9AfcB/wH3AfAB1wHLAcMBvgGvAagBxgG0Aa0BwAGuAagBvgGxAasB5AHeAdgC/wH8Af0B/wH8 + Av8B/AH/AfsB9gHaAc8ByQHAAbABqQHDAbEBqQHBAa8BqAHMAb0BtQHuAeMB2wL/AfkB/wH8AfYB/wH8 + AfkC/wH6Af8B/AH2AeUB1wHRAcYBtwGvAbwBrQGoAbcCqAHPAcQBvwH2Ae8B7QH/Af4B/QL/AfwB3gHT + Ac4BwAGvAagByAG2Aa0BwgGxAaoB5QHaAdYB/wH+Af0D/wH8Av4B/AH+Af8C/gL/Af4D/wH+AfoB9QHx + AcQBtwGvAcIBsQGoAcQBswGpAckBvQG0Af8B/AH2Af4C/wH4AfwB/wHbAd4B+gG4AbkB7wG2AbQB8QG4 + AboB6wHfAeIB/wH5AfwB/wH9Af8D/gH/Af4C/wH8Af0B/AL9Af8B9wH5Af8B1wHYAfcCuQHvAbIBswHz + AbIBswHzArgB7QHdAd4B/QH3AfkB/wL8Af8C/gL9Av4B/QH+Af8B+gH8Af4B+AH7Af8BzQHPAfYBtgG4 + AfEBswG1AfUBuAG6AfAB4wHmAf8B+QH8Af8C/AH/AfsB/AH/AeoB7AH/AbkBvAHsArQB9AG1AbMB8gG/ + AbsB6AH6AfYB/wH9AfxS//8A/wD/AP8A/wD/ABsACf8B/QH/Af4B/QH/Av4B/wH9Av8B/QL/Af4C/wH+ + Af8B/gL/Af4B/wH9Av8B/AL+Af0B/wH9Av8B/AL/AfwC/wH6Ae4B4wHcAcABsAGpAb0BrQGoAboBqwGo + AcMBtAGwAdEBxQHBAfMB6wHnAf8B/gH7Av8B+gL/AfsC/wH7Af8B/QH6Af8B/gH7Av8B/AL/Af0B/wH+ + AfwB/wH+AfwB9wHrAeoB1QHIAcUBwgG0Aa8BvgGtAagBvAGsAagBuwGvAakB3wHXAdMB/AH6AfYC/wH9 + Af8B/AH9Af8B/QH+AfYB6gHpAcEBsQGtAcQBtAGrAcABsAGoAb0BsAGrAd8B1wHUAfwB+AH1Av8B/AH+ + Af8D/AH6Av8B/AL/AfsB/wH8AfUBywHBAbgBwAGvAagByQG4Aa8BugGtAagBzgHGAb8B/gH/AfsB/QH/ + AfwB/gH8AfgB6wHjAd8BvgGyAa0BvwGvAakBwAGuAagBzAG9AbYB/wH2Ae8B/wH+AfgC/AH3Av8B/AH9 + Af8C/QH/AfwC/wH8Af8B/QH5AeMB3QHXAcABtwGvAd0B0gHMAfIB6wHlAv8B/AL/Af0B/wH8AfkB4gHa + AdQBwQGyAagBwQGvAagBvgGvAagB4AHXAdEB/wH9AfoB/QH/Af0B/AH/Af4B/AL/Af0C/wH+Af8B/gH9 + Af4B/AH3AfQB8AHBAbQBrAHBAa8BqAHBAbABqAHHAboBsAH/AfsB9QH9Af4B/AH6AfwB/wHrAe4B/wG6 + AbkB7gG2AbQB8wK0Ae4BywHNAfYB+QH6Af8B/QH+Af8B/gL/Af0B/gH/AfwC/gH6AfwB/wHiAeMB/wG9 + AbwB6wKzAe8BtAG1AfgBtwG4AfoCsAHsAcMBwgHxAeUB5gH/AfoB/AH/AfwC/wH9Av4B/AH+Af8B+gH9 + Af8B8wH3Af8BvgG/Ae8CtAHzAbMBtAH0AbwBvwHxAe4B8QH/AfgB+wH/Av0B/wL8Af8B6AHqAf8BtwG4 + AesBsgGxAfUBtAGwAfQBuwG3AeYB9wH0Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAn/Af4B/wH+Af0B/wL+ + Af8B/QL/Af0C/wH+Av8B/gH/Af4B/wL9Af4B/QP+BP8B/QL/AfwC/wH8AfcB7wHqAcEBtAGsAcYBtgGu + AcEBsQGrAcMBtAGvAdIBxgHCAf8B+QH2Av8B/AL/AfwC/wH8Af8B/gH8Av8B/AL/Af0C/wH9Af8B/gL8 + Af0B/AH9Af4C/QH5AfgB/wH+AfwB/wH+AfwB3gHUAdABwQGxAa0BxQG1Aa8BwAGxAaoBuQGvAagB6gHl + AeAC/wH8Af8C/QH/AfwB/QH2AesB6QHBAbEBrQHEAbMBqwHAAa8BqAHKAb4BugH/AfsB+QL/Af0B/AH9 + AfwB+wP9Av8B/gL/Af0B/AH6Av8B+wHhAdkB0gG9Aa4BqAHEAbIBqQHBAa8BqAHIAb4BtwL8AfcB/gH/ + AfwC/wH6AcwBwwK+AbABqgHEAbUBrgHBAbEBqgHoAdkB0wL/AfoB/wH+AfkC/wH8Af0B/wH8AfsB/AH5 + Af0B/gH8Av8B/AL/AfsB/wH8AfYB/wH5AfMC/wH5Av8B+wL/Af0B/wH+Af0C/wH8Ad8B2AHTAbsBrQGo + AcgBuAGvAcABsQGqAeEB2AHTAf8B/QH6Af0B/wH9AfsB/wH9AfwB/wH9AfwB/gH9AfwB/QH8Af0B/wH9 + AfkB9gHxAcQBtwGuAcQBswGoAcQBtAGpAcgBvQGzAf8B/AH2Av8B/QH8Af0B/wH3AfkB/wHGAcUB9AG4 + AbcB9AG1AbQB9AK+AfAB8gHzAf8B+wH9Af8B+wH8Af0B+wH8Af0B+gH9Af8B6wHtAf8ByAHHAfMBtQG0 + AewBswG0Ae8BwgHEAf8BwAHBAfwCtgHxAbQBsQHrAc0BywH3AfEB8wH/AfoB/QH/Af0B/gH/AfwB/gH/ + AfcB/AH/AecB6wH/AbgBtwHtAbUBswH1AbUBtgHxAcoBzQH4AfcB+gH/AfwB/gH/Av4B/wL8Af8B7AHu + Af8BugG7Ae0BtQGzAfYBtgGzAfYBvAG4AekB+QH2Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAv/Av4B/wH+ + Af0B/wH9Af4B/wH9Av8B/gL/Af4B/wH+Af8B/gH9Av4B/QH+BP8B/gH9Av8B/AH/AfwB+QHYAc8ByQHB + AbMBqwG8Aa0BqAG7Aa0BqAHYAc0ByAL/AfwC/wH8Af8B/QH8Av8B/gL/Af4C/wH+Af8C/gH/Av4B/wH+ + Af8D/gH8Av8B/Ab/AvwC/wH8Af8B/QH5AeAB1gHQAb0BrwGoAb8BrwGoAcABswGtAc4BxgHBAfsB9gHz + Af8B/gH9Af8B/QH8AfYB6wHqAcABsAGsAcQBswGrAcEBrwGoAdcByQHHAf8C/AH+AvwB/wH+Af8C/gH/ + AvwB/gH8AfsB/gH/Af4D/wH8AfAB6AHkAcEBswGrAccBtAGrAccBswGsAcEBsgGsAfUB8QHtAv8B/AH/ + AfkB8QG/AbQBqQHBAbQBqgG9Aa4BqAHIAbgBsAH7Ae0B5QH/AfYB8AH+AfYB8AH6AfQB7gH6AfQB7gH8 + AfQB7wH8AfQB7wH+AfUB7wH/AfYB8AH/AfYB8AH/AfYB8AH9AfIB7QH9AfUB8gH9AvsB/wL9Av8B/QHh + AdkB1QG8Aa0BqAG+Aa0BqAHBAbEBqwHjAdgB1QH/Af0B+wH9Af8B/gH8Af8B/gH9Af8B/gL/Af0C/wL9 + Af8B/QH5AfcB8wHBAbUBrAHBAbABqAHBAbEBqAHGAboBsgH/Af0B+QL/Af0B+wL8AfkB+wH/AdYB1QH8 + AbgBtwHwAbcBtAH2AbgBtgHuAeEB4gH8AfkB+wH/AfwB/gH/AfsB/QH/AfYB+wH/AdEB1AH1AbgBtgHw + AbcBtAH0AbsBvQHwAdkB3QH/AdcB2gH/AbwBvQHwAbMBrwHxAbsBuAHyAdYB1wH4AfMB9wH/AfsB/QH/ + AfsB/QH/AfMB+AH/AdMB1wH4AbYBtQHvAbYBtAH0AbgBugHuAd0B4AH/AfkB/AH/AfwB/QH+Af0D/AH7 + Af8B7QHuAf8BvAG+AesBtQG0AfQBtwG0AfUBvQG5AeoB+QH2Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAT/ + Af4G/wL+Af8B/gH9Af8B/QH+Af8B/QL/Af4C/wH+Af8B/gL/Af4C/wH+Av8B/gL/Af0B/AH/Af0B/AH9 + AfQB8gG+AbIBrQHAAbEBqQG/AbABqAHFAbkBsgH1Ae0B5wL/AfwB/wH9AfwD/wP8Af8B/gL/Af4C/wH9 + Af4B/wL9Af4E/QH+AfwB/gH/Af0C/wL9Av8B/gH/AfwC+wL/AfwB/wH6AfUBzQHBAboBvwGvAagBwAGw + AakBuQGvAagB9gHuAeoB/wH+AfwB/wH9AfwB9QHrAekBvQGwAasBwgGyAaoBwQGwAakB3QHQAc0B/wH+ + Af0B/wL8Af8B/gL/Af0C/wH9Av8B/QL/Af0C/wH+Af0B8QHrAecBwgG0AawBwgGvAagBwgGuAagBxgG2 + AbAB/AH3AfUC/wH7AfQB7AHjAcQBuAGsAcABsQGoAcIBtAGpAb0BrgGoAcYBuAGvAcIBtwGvAb8BswGt + AcABtQGuAcEBtQGuAcQBtgGvAcQBtgGvAcIBtAGsAcEBswGrAcMBtAGtAcQBtgGvAcMBtQGvAb0BsgGv + Ad4B2AHZAf8B/gL/Af4B/QHeAdYB0QHDAbIBrAHGAbQBrQG+Aa4BqAHiAdcB1AH/Af4B/AH+Av8B/QL/ + Af0E/wH+Av8B/gH8Af0B/AH3AfYB8QHCAbUBqwHDAbIBqAHDAbMBqQHGAboBswH/AfsB+AH+Af0B/AH+ + Af8B/QH7AfwB/wLmAf8CuAHrAbYBtAH2AbUBtAHxAtUB9gH4AfoB/wH5AfwB/wH4AfwB/wHjAeYB/wG8 + Ab4B7AGzAa8B8gG5AbYB9gHJAcsC8wH2Af8B8QH1Af8BvwHBAegBuQG2AfYBtQGyAfQBugG8AeoB5AHo + Af8B+AH8Af8B9wH7Af8B8wH4Af8BxgHIAfEBtgG1AfEBtwG1AfIBvwHBAewB7wHzAf8B+wH8Af8B/QL+ + Af8B/gH/AfwB+wH/AesB7gH/AbkBvAHnArMB8AG2AbQB8wG9AbkB6AH3AfUB/wH9AfxS//8A/wD/AP8A + /wD/ABsABP8B/gL/Af4D/wL+Af8B/gH9Af8B/QH+Af8B/QL/Af4C/wH+AvwB/QH/Af4B/wP8Af8B/gL/ + Av0B/wH+AfwB7AHjAeABvgGxAa0BvwGvAagBvAGuAagB0AHHAcEC/wH6Af8B/QH8Av8B/gH7AvwB/QH+ + Av8B/gL/Af4C/wH+Av8B/gf/Af4D/wH+Av8B/AL/Af0B/wP9Av8B/QH/AfsB9gHlAdsB1AG/Aa4BqAHE + AbIBqwG+Aa8BqQHjAdoB1QH/Af0B+gH/Af4B/AH0Ae0B6gG4Aa4BqAHBAbMBqQHAAbEBqAHQAcUBwQH/ + Af4B/AH/AfwB+gH/Af4B/QH/Af4C/wH9Av8B/AL/Af4D/wH9AeQB3gHZAb8BsQGqAcIBsQGpAcIBsAGp + AcUBtgGxAf0B+QH3Av8B/AHzAesB4wHBAbQBqAHCAbMBqQHDAbQBqgG+Aa4BqAHFAbYBrgG6Aa0BqAHA + AbIBqwG9Aa8BqAG7Aa4BqAHBAbEBqAG/Aa4BqAHBAbABqAHFAbQBqwHBAa8BqAHFAbYBrAHBAbABqQG/ + AbIBrQHfAdkB1wH/AvwC/wH8Ad8B1QHQAcQBsgGrAcIBrwGoAbwBrAGoAeAB1QHSAf8F/AH9Av8B/QP/ + Af4B/wH9AvwB/gH9AfwB+wH3AfMBwgG1AasBxAGyAagBxAG0AawBxAG4AbMB/gL4Af8B/gH/Av4C/AH9 + Af8B8gH0Af8BygHMAfYBsQGyAfEBtQG2AfQBwgHDAewB8gH1Af8B9gH6Af8B8QH1Af8BwQHEAe8BtQG2 + AfABuAG3AfcBvAG6AfEB5QHnAf8B+AH8Af8B9wH6Af8B5QHnAf8BugG5AfABtQGzAfQBtwG4AfEBxAHI + AfIB8QH2Af8B9gH6Af8B4wHnAf8BuAG7AewBuQG4AfYBuAG2Ae8BzwHSAfUB9gH6Af8B+wH8A/8B/QH/ + Af0B/wH9AfwB/wHsAe4B/wG6Ab0B5wK1AfEBtwG2AfEBvAG5AecB+QH2Af8B/QH8Uv//AP8A/wD/AP8A + /wAbAAT/Af4C/wH+A/8C/gH/Af4B/QH/Af0B/gH/Af0C/wH+Av8B/gH/Af4C/wH+Af8C/gL/Af4C/wH+ + Af0B/wH9AfwB5AHaAdcBvAGvAasBwQGxAakBwAGxAakB0wHKAcQC/wH7Av8B/AH9Af8B/gH9Af4B/wL9 + Av8B/gL/Af4C/wH+B/8B/gb/Af4C/wH9Af8B/QH6Af4C+wH8Av8B/QL/AfwB6wHgAdkBwQGvAagBxgGy + AasBvgGuAagB2wHQAcoC/wH7Av8B/AHzAesB6AG+AbQBrQHBAbIBqAHBAbIBqQHEAbcBsAH3Ae4B6gL/ + AfwC/wH8Av8B/QH+AvwB/wH+Av8B/QH8Av8B/AHTAc0BxwG+AbEBqQHEAbQBqwG9AawBqAHKAb4BuQH/ + Af4B/AL/AfwB+AHxAeoBxAG4Aa8BvAGuAagBxAG0Aa0BwQGvAakBygG5AbMBzQG/AbgByQG+AbcBzQHC + AbsBygHAAbgBzAHBAbgBygG+AbUB0AHBAbgB0AHBAbgBxAG0AakBwwGzAagBwQGyAaoBvAGvAakB8QHq + AegB/wH+Af0B/wH8AfoB5gHbAdYBwQGwAakBxgG0AawBwgGyAa0B1wHMAcgB/wH+Af0B/wH+Af8D/QT/ + Av0C/wH9Av8B/AHwAesB5AHDAbUBqQHHAbUBqAG/Aa4BqAHGAbkBtgH/AvwB/wH+A/8C/AH+Af8B9gH5 + Af8B0wHXAfkBsgG1Ae8BsQGzAfIBugG9Ae0B5AHnAf8B8wH2Af8B0AHTAfUBuAG5AfABtAG1AfMCtQHv + AtAB+gH2AfcB/wH8Af0B/wH8Af0B/wH1AfYB/wLQAfoCtAHuAbEBsgHxAbgBuQHxAdEB1QH2AfAB8wH/ + AdcB2wH/AbQBtgHtAbgBtgH0AbgBtgHsAdwB3wH8AfcB/AH/Af0E/wH9Af8B/QH/AvwB/wHsAe4B/wG6 + Ab0B6AK1AfEBtwG2AfEBvAG5AeUB+AH2Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAT/Af4E/wH+Af8B/gH9 + Af8B/gH9Af8B/QH+Af8B/QL/Af4C/wH+Af8B/gH/Af0B/AH9Af8B/gL/Av4C/wH9Af8B/gH8AeEB1wHV + Ab0BrwGrAcABrwGoAcMBtAGsAdcBzwHIAv8B+wL9AfoB/gH/Af0B/gL/AfwB+wH8Af8B/gL/Af4E/wH9 + Af8B/gH9Af8B/gH9Af8B/gL/Af4B/wH+Av8B/AL/AfwB/wL+Af8C/AH7Av8B/AHrAeAB2gHDAa8BqAHG + AbEBqQHBAa8BqQHZAcsBxwH/Af4B+wL/AfwB8QHpAeQBwQG2Aa8BwQGxAagBxAGzAakBwAGwAagB0wHI + AcEC/wH6Av8B+QH/Af0B+gL/AfwC/wH8Av8B/AHvAeoB5AG+AbYBrgG+Aa8BqAHFAbQBrAHDAbMBrQHa + AdABywL9AfoC/wH8Av8B/AHNAcIBvwG9Aa4BqgHFAbQBrwHAAa4BqAHiAdEBywL/AfkC/wH5Av8B+QL/ + AfoC/wH6Av8B+gL/AvkB7wHmAdMByAG8Ab4BsAGoAboBrwGoAckBwAG5Af8B/AH5Av8B/QH/AfoB9wHl + AdwB1wG9Aa4BqAHDAbMBqQG6AawBqAHKAcABuwH9AfcB9gL/Af0B/gH8AfoB/wH+AfwB/wH+AfwC/wH8 + Av8B+wHeAdUBzQG+Aa4BqAHIAbYBqQG8Aa0BqAHMAcEBvgH/AvwB/wH9A/8B/QH8Af4B/wH3AfwB/wHh + AeYB/wG2AboB7wGvAbMB8QG1AbgB8AHSAdUB/wHnAeoB/wG5AbsB6wK0AfMCtQHzAcABwgHtAeoB7AH/ + AvwB/wH9AfwB/gH/Af4B/wL8Af8B6QHrAf8BvwHBAe0CsQHwArIB8QG5AbsB6wHjAeUB/wHKAc4B/wGz + AbQB7wG2AbMB8QG+AbwB7wHsAe8B/wH5AfwB/wH+A/8B/gH8Af8B/gH/AvwB/wHrAe0B/wG5AbwB6wG1 + AbQB8gG3AbYB8gG8AbkB5QH4AfcB/wH9AfxS//8A/wD/AP8A/wD/ABsACf8B/gH/Af4B/QH/Af4B/QH/ + Af0B/gH/Af0C/wH+Av8B/gH/Af4B/wH9AvwB/gH9Af4B/wL+Av8B/QL/AfwB6AHfAd0BvAGvAasBwQGv + AagBvwGuAagB0QHHAcEB/wH9AfgC/wP8AfsC/wH+BP8B/gT/Af4B/wH+Af0B/wH+Af0B/wH+Af0B/wH+ + Av8B/gH/Af4C/wH9Av8B/QL/Af4B/wH+AfwB+wL/AfsB4AHUAc4BvwGrAagBxAGvAagBwgGxAasB5gHZ + AdUB/wH9AfsB/wH+AfwB8QHoAeUBwQGzAa4BwQGvAagBxQGyAakBwgGyAakBvQGvAagB0gHJAcIB9wHx + AesC/wH7Af8B/QH5Af8B/AH4AeQB2wHWAcEBtwGvAboBrwGoAcQBtAGsAboBqQGoAcsBvQG3AfUB7AHn + Av8B/AL/Af0C/wH9AesB4wHhAccBugG4Ab4BrQGpAcABrgGoAcEBrwGoAdsBzgHHAf0B9AHuAv8B+gL/ + AfoC/wH8Av8B+wHxAesB5AHOAcMBugG4AaoBqAHBAbQBqgG9AbIBqQHoAeEB2wL/Af0B/wH+Af0C/wH8 + AeIB2QHUAcABsAGoAcQBtAGrAcEBswGrAbkBrQGoAc0BxgHCAfMB7QHrAv8B/AL/AfoC/wH6Av8B+QHn + Ad8B2QHKAcABtwHBAbEBqAHEAbQBqAG6AawBqAHWAcsByQH/Af4C/wH+A/8B/QL8Af0B+QH9Af8B7gH0 + Af8BwAHFAfEBsgG2AfEBswG3AfMBxQHHAf8ByQHKAf8CuAHwAbQBsgHzAroB8QHcAd8B/QH3AfsB/wL9 + Av8B/gH/Af0E/AH/AfcB+wH/AdcB2wH5AroB8QG0AbMB8wK4AfABzQHOAf8BwQHCAf4CtwH1AbUBswHu + AcwBygH3AfYB+AH/AfsB/QX/Af4B/AL+Af8B+wH8Af8B6wHtAf8BuQG6AewBtQGzAfQBtwG1AfMBuwG6 + AeUB+AH3Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAn/Af4B/wH+Af0B/wH+Af0B/wH9Af4B/wH9Av8B/gL/ + Af4B/wH+Av8B/gH/Av4F/wH+Af0C/wH8AfMB7AHqAcEBtQGvAcUBtAGsAcEBrwGoAcUBuAGwAfUB7AHn + Av8B+wL/AfwB+gH5AfcC/wH9Av8B/QL/Af0C/wH9Af4B/wH9Af4B/wL+Af8C/gP/Af4C/wH+Af8B/AH7 + AfwB/QL8Av8B/AH/AfgB8wHQAcIBuwHAAa4BqAHEAbIBqwG7Aa4BqAH2AesB5wH/AfwB+gH/Af4B/AH0 + AesB6AG8Aa8BqgHCAbABqQHEAbEBqQHFAbMBrAHBAbEBqgG6Aa0BqAHEAbgBswHHAboBtgHKAb4BuQHG + AbgBswHAAbEBqwG/Aa8BqAHAAa8BqAHBAa8BqAHIAbcBsQHsAd4B2gH/Af0B/AL/AfwB/wH9AfwB/wH9 + AfwC/wH8AegB3gHaAcEBsgGtAcABrgGoAcUBswGrAcABrwGoAcIBtQGuAc8BxQG/AdcBzgHIAdMBygHG + AcIBuAGyAb0BrwGoAcABrwGoAcEBrwGoAcMBswGqAd8B1wHQAf8B/QH6Af8B/gL/AfwB/QH/Af4B/QHe + AdQB0QG+Aa8BqAHBAbABqAHCAbQBrQHGAbgBswG6Aa4BqwG5Aa8BqwHMAcEBvQHXAcsBxgHZAc8ByAHR + AccBwAG8AbEBqwG7Aa8BqAHBAbIBqAG+Aa8BqAHGAboBtQHtAeUB5AL/Af0B/AH7AfoC/wH9A/wB+wH+ + Af8B9gH6Af8BywHQAfYBtAG4Ae4BsgG0AfMBuQG6AfwCtQH1ArgB9AG2AbQB7QLOAfcB8wH3Af8B+gH9 + Af8C/AL/Af4C/wH9Af8B/AH9Af8B+gH9Af8B8QH1Af8CzgH3AbYBtAHtArYB8wK4AfgCuAH5ArgB9gG1 + AbMB6gHdAdwB/wH4AfoB/wH8Af4B/wH9AfwB/QH/Af4B/wH9Av4B+gH8Af8B6gHtAf8BuAG6Ae0BtAGz + AfUBtwG0AfQBuwG5AeYB+AH3Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAb/Af4C/wH9Af8B/gH9Af8B/gH9 + Af8B/QH+Af8B/QL/Af4C/wL+Af0B/gH/Af4B/wH8Av0F/wH9Av8B/AH/AfsB+AHVAcsBxgHAAa8BqAHH + AbUBqwG9Aa8BqAHWAcoBwwH/AfkB9AL/AfwB/wH9AfsB/wH+AfwC/wH8Av8B/QL/Af0C/wH9Av8C/gL/ + Af0C/wH9Av8D/QL/Af0C/wH8Af8B/AH4AeIB1wHRAcEBsQGpAcQBswGrAcABsAGoAckBwAG5Af8B/gH6 + Av8B/QH/Af4B/QHzAesB6gG9AbEBrgHAAa8BqgG+Aa8BqAHXAcoBwwH1AeoB5AHHAboBtgG+AbIBrwG7 + Aa4BqwG3AakBqAHCAbMBrgG/Aa8BqQHAAbEBqQG/Aa8BqAHKAbwBtwHoAd0B1wH/AfsB+QH/Af4B/AH9 + AfwB+gL/Af0C/wH9Af8B/AH6Af8B/gH8AfQB6gHlAdEBxAG+AcIBswGtAb4BrwGpAbkBrAGoAbkBrgGo + AboBrwGqAb4BsQGuAcABsgGuAb4BrwGqAcABsAGqAdEBwwG8AekB3gHXAf8B/AH3Av8B/AH/Af4C/wH9 + Av8B/AH9AeEB2AHXAb8BsgGtAb8BsQGpAboBrQGoAeMB1wHSAesB3wHdAcIBtwK0AqgBvgGyAa0BuAGu + AagBtwGsAagBuQGuAagBuQGuAagBvwGxAagBxwG7AbMB4QHXAdUB/wH6AfkC/wH8Af4B/wH8Av8B/QT8 + Af4B/wH4AfwB/wHbAd4B/gG3AbkB6wGxAbIB8gKxAfcCswH4AbMBsgHwAsAB7gHnAegB/wH5AfwB/wH5 + AvwB/QL/AfwC/QH+Av8B/QL/AfoC/AH5AfwB/wHkAeUB/wK8AeoBsgGxAfACsgH2ArEB9QK2AfMBuwG6 + AesB6gHrAf8B9gH4Af8B/QH+Af8B/QH7Af0B/wH9Af8B/QH/Af4B+QH8Af8B6gHtAf8BuAG6Ae0CswH1 + AbcBtAH1AbsBuQHnAfgB9gH/Af0B/FL//wD/AP8A/wD/AP8AGwAD/wH+Av8B/gL/Af0B/wH+Af0B/wH+ + Af0B/wH9Av8B/QL/Af4C/wL+Av0B/wH+Af8C/QH+A/0C/wH9Av8B/AL/AfwB9AHrAeYBxAG2AawBxAGz + AagBvgGuAagBwAGyAaoB3AHSAc0B/AH2AfEC/wH8Av8B/AL/AfwC/wH8Av8B/QL/Af0B/wH+Av8B/gH/ + Af0B/gH/Af0B/gP/Af0C/wH8Af4B+QH2AeQB2gHWAcMBtAGuAb4BrAGoAcEBsAGoAcABtAGrAeIB3gHX + Av8B/AH9Af8C/QL8AfgB9AHzAd4B1wHUAeAB1gHQAd4B1gHPAecB4wHeAv8B/AH+AfcB9gHoAeAB3gHb + AdACzwHDAcEBxwG7AbYBzQHCAbwB1QHLAcQB6AHhAdsB/AH2AfEC/wH8Av8C/gL/Af0C/wH8Av8B+wH9 + AfwB/QH/Af4C/wH9Av8B/QH/AfwB+QH0Ae0B6wHfAdcB0wHRAcgBxAHMAcEBvwHIAbwBuQHJAbwBugHQ + AcQBwQHbAdEB0AHrAeUB4wH8AfkB9gL/AfwC/wP8AfoB+wH8Af0B/gH9Av8B/QH/AfEC6wHeAdcB0QHe + AdUB0AHeAdcB0QH0Ae0B6wH/Af4B/QH8AfQB8wHnAd4B3QHTAcwByQHDAb4BuQHHAcEBvQHJAcEBvAHS + AcgBwwHkAdsB1AH6AfEB7AH/Af4B/QL/Af0B/AH+AfoB/AH+AfoC/wH9Af8C/QH+Av8B+gH8Af8B6wHt + Af8BvgG/AewBtgG0AfMBsQGvAfYBswGxAfkCtAHvAdUB1wH5AfgB+gH/AvwB/wP8Af0B/wH9AfwB/wL8 + Af8C/AH/Af0B+wT8Af8B9gH3Af8B0gHUAfYCtQHxArMB+QKxAfYCswHvAcoBywL0AfYB/wH5AfwB/wH+ + Af8B/QH/AfwC/wH9Af8B/AH+Af8B+AH8Af8B6QHtAf8BuAG7AesBswG0AfQBtwG0AfQBuwG4AegB+AH2 + Af8B/QH8Uv//AP8A/wD/AP8A/wAbAAP/Af4C/wH+Av8B/QH/Af4B/QH/Av4B/wH+Av8B/gL/Af4B/wH+ + Bf8B/gH/Af4C/wH8Av0C/wH+Af8B/QH8Av8B/AL/AfsB3gHTAcsBwAGyAagBwQGzAasBwQGzAasBugGu + AagB1wHNAccB/AH1AfAC/wH6Av8B+wL/AfsC/wH8Av8B/AL/AfwC/wH9Av8B/QL/Af0C/wH8AfoB9QHw + Ad4B1gHQAcEBtQGvAbwBrAGoAcYBtgGvAb4BrwGoAdABxwHAAv8B+gL/AfwB/QH/Af4B/QL+Af8C/gH/ + Af4B/QL/AfwC/wH7Av8D/AH6Av8B/QH/Af0B/gH/Af4B/QH/AfsB+QL/AfwC/wH6Av8B+gL/AfoC/wH8 + Af4B/wH9AfwC/wH8Av8B+gL9AfsC/gH8Av8B/AL/AfsB/AH9Af4E/wH9Af8B/AH7Av8B/QH/Af4B/QH/ + Af4B/QH/AvwB/wH+AfwB/wH+AfwB/wH8AfoC/wL9Af8B/gH6Af0B+wH9Af8B/AH9Af8B/QH6AfwC/QH+ + Av8B/gL/Av0C/wH8Av8B/AL/AfwC/wH9Af8C+wH/Af4C/wL+Af0B+gH4Av8B/AH/Af4B+wH/Af0B+wH/ + Af4B/AL/AfwC/wH8Av8C/QL8Af0B/wH8Af0B/wH8BP8B/gP/Af4C/AH/AfcB+AH/AsYB7QG8AbkB9gG1 + AbMB9wKzAfMBxAHFAfYB7gHxAf8B+wH8Af8B/QH8A/8B/gH7Af0B+wH8Af8C/AH/AvwB/wH8Av8B/gL8 + Af8B+wH8Af8B6QHrAf8BvQG+Ae8CsgHyArYB+AGzAbQB7QHYAdsB+wH4AfsB/wH8Av8B/QH+AfwB/wH9 + Af8B/QH8Af8B/AH/Af4B+AH9Af8B6gHuAf8BuAG8AesBswG0AfMBtwG1AfQBugG4AegB9wH2Af8C/FL/ + /wD/AP8A/wD/AP8AGwAJ/wH+Av8B/h//Af4C/wH+Av8B/AH/Af4B+QHeAdUBzwG8Aa8BqQG7Aa0BqAHC + AbIBrQG/Aa4BqAHGAbcBrwHZAcwBxQH0AeoB4wH9AfYB7QL/AfYC/wH4Av8B+QL/AfkB/AH3AfEB9AHt + AeUB3wHTAcsByQG6AbIBvQGuAagBwgGzAawBvgGvAakBuwGuAagB2QHQAcoB/wH9AfoC/wH8Av8B/QL/ + Af4E/wH+Av8B/gP/Af0C/wH9Av8B/QL/Af4C/wH+Af8B/gP/Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/ + Af4C/wL+Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH8Av8B/AL/AfwB/wH9Af4B/wH9Av8B/QH/Af4C/wH8 + Av8B/AL/Af0B/gL/AfwC/wH7Av8B+wH+Af8B/QL/Af4C/wH9Av8B/QT/Af4F/wH+A/8B/gL/Af0C/wH+ + Bv8C/gH/Bv4B/QH/Av4B/wH+Av8B/QL/Af0B/wH+Av8B/gH/Af4B/wL9Af8C/AH/AfwB/QH/AfwB/wH+ + Af8B/gH8Af4C/wH+Av0B/wH2AfcB/wHfAeEB/wKzAesBuAG3AfQCuAHoAeQB5gH/AfYB+AH/AfoB/AH/ + Af0B/wL9Af8B/AH+Af8B/QH+Av8D/AL/Av0B/gH7Af0B/wH9AfsB/QH/AfYB+QH/Ad8B4gH/AbYBuAHo + AbUBtAHyAbgBuQHuAekB6wH/AfkB/AH/Af0B/wL9Af8B/AL9Af8C/AH/AfsB/gH8AfgB/AH/AeoB7gH/ + AbwBvgHtArEB8gK1AfYBuAG5AekC9gH/AvxS//8A/wD/AP8A/wD/ABsAMv8B/QL/AfwB/wH7AfcB5wHe + AdsBxgG5AbUBuwGsAagBwgGxAasBxAGyAasBvgGtAagBvAGuAagBwgG3Aa0ByAG/AbUBygHBAbgByQHC + AbgByAHAAbYBwQG4Aa8BuwGvAagBvgGtAagBxQGzAasBwQGxAakBuQGrAagBwwG4AbIB4gHYAdUB/QH2 + AfMC/wH8Af8B/gH9Af8C/gH/Af4C/wH+Av8B/gL/Af4C/wH+Nf8B/gH/Af4C/wH9Av8B/AL/AfwB/wH+ + Af0B/wH9BP8B/gL/AfwC/wH9Bv8B/QL/AfwC/wH8Av8B/QH/Af4C/wL9Af8C/QH+Av0B/wP+Af0B/gL9 + Af4C/QH+AfwD/QH+Af8B/QH+Af8B/QH+Af8B/QL/Af0C/wH9Av8B/QL/Af4C/wH+Af8B/gP/Af4B/QH/ + Af0B/gH/AfwB/wH9AfwB/wL8Af8B/AH9Af8B/QH/Af4B/wH9AfwB/QL/A/0B/wH6AfwB/wHqAesB/wK5 + AesCswHoAtAB9AHxAfMB/wH5AfwB/wH8Av8B/gH/AfwB/gH/AfsC/wP+Af8B/gH9A/8B/gH8Af4B+QH9 + Af8C/AL/AfkB/AH/AesB7gH/AcsBzAHwArgB7QHDAcQC8wH1Af8B/AL/Af4B/wL9Af8B/gL9Af8B/AH9 + Af8B/QL/AfsB/QH/AeoB6wH/AboBvAHoAbMBsgHwArYB8wK4AeYB9AH1Af8C/FL//wD/AP8A/wD/AP8A + GwAy/wH+AvwB+gL/AfwC/wH8AfAB5wHkAdYByQHGAcIBtAGvAb4BrwGpAcIBswGuAcEBsgGsAb8BsQGp + AbwBrwGoAbsBrwGoAbwBrwGoAb0BrwGoAcABsAGqAcEBsgGsAcEBsQGrAbsBrQGoAb0BsAGrAdABxQHB + Ae4B5QHiAf8B/AH5Av8B/AH/AfsB+gH/Av4B/wH+Av8B/kH/Af4C/wH+Af8B/gL/Af4J/wH+Av8B/gL/ + Af4B/wL+Af8B/QL/Af0B/wH9Af4B/wH9Av8B/gH/Af0C/wH9Av8B/QH/Af4B/QH/Af4B/QH/Af4B/QH/ + Av4B/wL+Af8C/gH/Av4B/wL+Af8C/gz/Af4C/wH+Av8B/gL/Af0B/gL/Av4B/wH9Af4B/wH9Af8B/QH8 + Af8B/AH9Af8B/AH9Af8B/QH/Af4C/wH8Af4B/wH+Af0B/AL9AfsB/QH/AfIB9QH/AccByAHwAboBvAHm + AekB6wH/AfkB+wH/AfsB/QH/Af0E/wH8Av8B/AL/Af0B/AL9Af8B/gP/Af0B/AH9AfkB/QH/AfwB/QL/ + AfsB/QH/AfcB+gH/AeMB5QH+AboBvAHnAs8B9gH4AfkB/wH9Af4B/wL+Af8B/gH9Af8B/QH8Af8B/QH8 + Af8C/AH/AvwB/wLsAf8CwQHpArgB7QK4Ae4CvgHnAvcB/wL8Uv//AP8A/wD/AP8A/wAbADD/Af4C/wH+ + Af8B/gL9AfwB/wH+AfwC/wH8Av8B/AH2AewB6QHeAdMC0AHDAb8BwQG0Aa8BvQGwAawBvAGvAasBvwGy + Aa4BvwGyAa0BvQGvAaoBvgGvAasBwQGzAa8BzgHBAb4B3AHRAc8B8wHqAecB/wH8AfoB/wH+AfwC/wH9 + Av8B/QL/Af4B/wH+D/8B/gL/Af4C/wH+Mf8B/gL/Af4G/wH+Av8B/gL/Af4B/wH+Av8B/gH/Af4C/wH9 + Av8B/AL/AfwC/wH9Af8C/gH9Af4B/wH9Av8B/AL/Af4B/wL+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+ + Av8B/gL/Af4J/wH+Av8B/gL/Af4C/wH9Af4B/wH9Af4B/wP+Af8C/gH/Af0B/wL9Af8C/QH/Af0B/gH/ + Af4B/wH+Av8B/gP/Af0B/AL9AfsB/gH/AfYB+QH/AdgB3AH5AdMB1gH0AfYB+QH/AfsB/QH/AfwB/QH/ + Af0B/wH9Av8B/AL/AfwB/gH/Av0B/gH9Af4C/wH+Af8D/QH6Av8B/AH+Af8C/QH+Af8B+wH9Af8B9AH2 + Af8BzQHQAe0B3gHfAfwB+wH8Af8C/QL/Af0C/gH9Af8B/gH9Af8B/gH9Af8B/QH8Af8B/QH8Af8C7gH/ + AswB6wLFAewCxwHuAs0B6wL3Af8B/QH8Uv//AP8A/wD/AP8A/wAbADD/Af4C/wH8Af0B/gH8Bf0B/wL+ + Af8B/QH8Af8B/QH8Af8B/QH8Af8B/gH8Af8B9wH1AfIB6wHnAeQB3QHZAd8B1wHTAd8B1wHTAeQB3AHY + AfIB6QHmAf4B9gH0Af8B+gH5Af8C/QH/Av4B/wL+Af8B/QH+Af8B/gL/Af4C/wH+Af8B/gL/Af4D/wH+ + Cf8B/gL/Af4C/wH+Mf8B/gb/Af0C/wH8Av8B/AL/Af0C/wH+A/8B/gL/Af0C/wH9Av8B/QL/Af0G/wL+ + Af8C/gH/Af0C/gH9Af8B/gH9Av4B/QL+Af0B/gH/Af4C/wH+E/8G/gH9Af8C/gH/Af0B/gH/Av4D/wH+ + Af8B/gH/Av4B/wH9Af4B/wH+BP8B/gL/Af4D/wH9Av8B/QH7Af0B/wH4AfwB/wHqAe4B/wHtAfEB/wH7 + AfwB/wH9Af4B/wH+Av0C/wH9Af8B/gH8Af0B/gH7Af4B/wL9Af8C/QH/Av4B/wH9Av8B/AL/AfwC/wH9 + Af4C/QH+Av8B/AH9Af8B6wHuAfwB8QH1Af8C/QL/Av4C/wH9Av8C/QH+Af0D/wH+AfwB/QH+Af0B/wL8 + Af8B9gH4Af8B9gH6Af8B9gH6Af8B8gH0Af8B+wH8Af8C/VL//wD/AP8A/wD/AP8AGwAw/wH+Av8B/QH+ + Af8B+gL8AfoB+wH8Af4F/wH+Av0B/wH+Af0C/wH9Av8B/QH/Af4B/AH/Af0B/AL/AfwC/wH8Af8B/QH7 + Af8C/AH/Af4B/QH/Af4C/wH+Av8B/gL/Af4C/wH+Af8C/AH9AvwC/QH+Af8B/QH+Af8B/QL/Af4H/wH+ + Av8B/gL/Af0C/wH+Nf8B/gL/Af0C/wH8Av8B/AL/AfwC/wH9BP8B/gH/Af4C/wH+Av8B/gH/Af0B/gH/ + Af0B/gH/Af0B/gH/Af0B/gH/Af0E/wL+Af8D/gL9Af8C/gL/Af4C/wH+Av8B/gL/Af4C/wL+Af8B/gH9 + Av4B/QL+Af0B/wH+Af0B/wH+AfwC/gH9Af8B/gH9Af8B/gj/Af4C/wH+B/8B/QH+Af8B/QH+Av8B/QL/ + Av0B/wH+AfsB/gH/AfYB+QH/AfkB/AH/Af0B/gP/Af0C/wH9Av8B/QL/Af0B/gH9AfwB/gH/Av0B/wL9 + Af8B/QH+Af8B/QL/Af0C/wH9Af8B/gH9Af4C/AH/Af4B/AH9Av8B+gH9Af8B+gH9Af8C/AH/Af4C/AL/ + AfwC/wH8Af0B/wH8Af4B/wH8Av8B/QH/Av0B/AH9Af8B+gH9Af8B+QH+Af8B+QH+Af8B+wH+Af8C/AL+ + U///AP8A/wD/AP8A/wAbADH/Af4B/wH+Af0C/wH+Af8C/gH/Af0B/gH/AvwC/QL/Af0C/wP8Av8B/gL/ + Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QH+Af8C/gH9Af4B/wH+Av8B/gH/AvwB/QH8Af0B/wH9Af4B/wH9 + Av8B+QH6AfwB/QL/Af0C/wH+B/8B/gL/Af4B/wL+Av8B/i//Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/ + Af0C/wH9Av8B/gH/Af4C/wH+A/8B/AL/AfsB/gH/AfoB/QH/AfoB+wH/AfwB+wH+Af0B+wj8AfsB/AH7 + BvwB/gH9AfwB/wH+A/0B/AL9AfwC/QH8Af0B/gH9AfwB/gL9Af8B/gH9Av8B/QL/Af0C/wH9Af8B/gX/ + Af4C/wH+Av8B/gH/Af4C/wH+Av8C/gH/Av0B/gL9Av8B/QH8Af4B/QH8Av8B+gH+Af8B/AH+Bf8B/gH9 + Av8B/gH/Af4C/wH+Af8B/gH/Av4B/wH+Af0B/wL9Af8B/QH+Af8B/QT/Af4C/wH+Av8C/QH/Af4B/QL/ + Af4B+wH9Af8B/AL/AvwB/QH+AfwB/QL/Af4B/QH/AfwB/QH/AfwB/gH/Af0B/wH+Af0B/wH+Af0B/wH+ + Av0B/wH9AfkB/QH8AfkB/gH8Af0B/wH9Af4B/wH9Av8B/lH//wD/AP8A/wD/AP8AGwAx/wH+Av8B/gH/ + Af4B/AH9Af8B/gH/Av4B/wH8Af4B/wH6A/wB/QH+Af0C/wH9Af4H/wH9Af4C/QH+Av0B/wH+Af0B/wH+ + AfwB/wH+Af0C/wH8Af0B/gH7AfwC/QH+Af8B/QL/AfoB/AH9AfsB/AL9Av8B/QL/Af0C/wH+B/8B/gL/ + Af4C/wH+Av8B/i//Af4C/wH8Av8B/AT/Af4B/wH+Af8B/gH9Af8B/gH9Av8B/QH+Av8B/QL/Af0C/wH+ + A/0B+QH8Af0B9gH5AfwB9QH2AfoB9wH2AvgB9QL2AfUF9gH1AfYB9QL2AfUB9wL2AvgB9gH6AfkB9wL8 + AfoC/AH6BPwB/gL8Af4C/QH/Af4B/QL/Af0C/wH9Av8B/gT/Af4C/wH+Av8B/gL/Af4C/wH+Af8B/gL/ + Av4D/wP9Af4C/wH7A/wB/wH9AfwB/gL8Af4B/AL/Af0B/gH9AfwB/gL8Af8B/QH+Af8B/gT/Af4B/wH+ + AfwB/wH9Af4B/wL+Af8E/gH/Af4C/wH+Av8B/gP/Af4C/wH+AfwD/QP/Af4C/wH+Af8B/gL/Af0B/wH+ + Af0B/wH9Af4B/wH9Af8C/QH/Af4B/wH+AvwC/wL9Af8C/AH/AfwB/gH/Af0C/wH9Av8B/lH//wD/AP8A + /wD/AP8AGwA0/wH+Av8B/gL/Af4C/wH+Af8B/QH+Af8B/QH+Af8B/QH+Af8B/gP/Af4C/wH+Av8B/gL/ + Af4C/wH+Av8B/gP/Av4B/wH+A/8B/gL/Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9Af8C/gH/ + Af4C/wH+BP8B/gL/Af4C/wH+MP8B/QH+Af8B/AL/Af0B/wH+Af8B/gH9Af8B/AH9Af8B/AL/AfwB/gH/ + AfwB/QH/AfsB+gH/Af0B/AH/AfoB+wH+AfcB+AH2AfgB+wLzAfYB7gHwAvEC7gHwAu0B7wLtAu4B7QHv + A+4B7wLuAfEB8AHuAfEB8AHuAfEB8AHuAfQB8gHxAfYB9QHzAfkB+AH2AfoB+QH4AvoB+QL7AfoB/AP9 + Av8B/QL+Af0B/gb/Af4B/wL+Af8B/gH9Af8C/gL/Af4C/wH+BP8B/gH/Av4B/wH+BP8B/gL/AfwC/wH8 + Av8B/gz/Af4F/wH+Af8B/gP/Af4U/wH9Av8B/QP/Af4C/wH+Af8B/QL/Af0C/wH8Av8B/QP/Af0C/wH9 + Av8B/QL/Af4B/wL+Af8C/gL/Af4C/wH+Av8B/lL//wD/AP8A/wD/AP8AGwAx/wH+Av8B/gL/Af4C/wH+ + Av8B/gH/Af4C/wH9Af4B/wL+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gP/Af4C/wH+Av8B/gL/ + Af4C/wL+Af8B/QH+Af8B/QH+Af8B/QH+Af8B/QH+Af8B/QH+Af8B/QH+Af8B/gL/Af4C/wH+O/8B/gL/ + AfwB/gH9AvwB+gH+AfwB+gH/Af0B/gH/AfwB/gH/AfkB/AH/AfAB8QH7AeEB3wH0AeUB5AH6AvAB/wH2 + AfgB/wHwAfIB8QHpAesB5QHrAeoB6QHtAekB6gHrAukB6wLoAeoC5gHpAeUB5AHpAeUB5AHqAeUB5AHr + AecB5AHrAecB5AHvAesB6QHvAesB6QHwAe0B6wHzAfEB8AH3AvYB+wL6AfwB+wH8AfoB+wH8Av4C/wH+ + Bv8B/gL/Af4B/wL+Af8B/gH9Av8B/QL/Af4D/wL+Af8C/gL/Af4D/wH+Av8B/AL/AfwC/wH9Af4C/wH+ + Af8B/gH9Af8C/gH/Av4J/wH+BP8B/gL/Af4B/wH+Af0B/wH+Af0B/wL+Av8B/gL/Af0B/gH/Av4C/wH+ + Af8B/gL/Af0C/wH8Av8B/AL/Af0D/wH+Av8B/QL/Af0C/wH9Av8B/QH/Af4B/QL/Af0C/wH9Av8B/lL/ + /wD/AP8A/wD/AP8AGwA0/wH+Av8C/gH/Af4E/wH9Av8B/QL/Af0C/wH+A/8B/gL/Af4C/wH+Av8B/gL/ + Af4C/wH+A/8B/gL/Af4C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9Av8B/gL/ + Af4E/wH+Av8B/gL/Af4w/wH+Av8B/QH/Af0B/gH/Af0C/wH9Af8E/QL/AfsB/AH/AfUB9gH/AckByAHq + AcEBwAHoAs0B8QHhAeMB/QHpAesB9gLoAekB5wHiAd8B5wHgAdsB5wHfAdsB5gHeAdoB5gHeAdkB5QHd + AdgB5wHeAdkB6QHgAdsB6wHjAd4B7AHkAeAB6wHkAeEB7AHnAeQB7gHpAecB7gLrAfAB7QHuAfIB8AHx + AfUB9AH2AfcB9gH5AfwB+wH8Af8C/QH/Af4J/wH+Av8B/QH/Af4B/AL/Af0C/wP+Af8C/gL/Af4C/wH+ + A/8B/QL/AfwB/gH/Av0B/wL9Af8C/QH/Av0B/wH9Af4B/wH+Af8B/gL/Af4C/wH+Av8B/gH/Af4B/wH+ + Af0B/wL9Af8C/QH/Av0B/wL9Af8B/gH9Af4B/wH9Af4B/wH+Af8B/QH+Af8C/QH/Av0B/wH9AfwB/wL9 + Af8B/QL/Af0C/wH+Af8B/gL/Af4B/wH+Af0B/wH+Af0C/wH+Av8B/lX//wD/AP8A/wD/AP8AGwA1/wH+ + Av8B/gL/Af4C/wH+Af0C/wH9Av8B/QL/Af4D/wH+Av8B/gL/Af4C/wH+BP8B/gL/Af0B/wH+Af0B/wH+ + Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH8Av8B/AL/AfwC/wH9Av8B/QL/Af0C/wH+BP8B/gL/Af4C/wH+ + Av8B/i//Af4B/wH+AfwB/QH/Af0C/wH+Af8C/gH9AfwB/QH8AfsB/AH/AvYB/wHLAcoB8wG4AbcB6wK2 + AesBxQHGAfIC1wHxAdUB0wHfAcsCxAHQAcYBvwHKAb4BtgHLAb4BtAHMAb4BtAHNAcABtgHPAcEBuAHR + AcQBugHUAcgBvwHWAckBwQHeAdQBzAHjAdkB0wHnAd8B2gHpAeMB4AHqAuQB7ALoAfAB7QHuAfQB8QHy + AfcB9AH1AfoB+AH5Af4B/AH9Af8B/gL/Af4D/wH+Av8B/QL/Af0C/wH9Av8C/gL/Af0B/gH/Av4C/wH+ + A/8B/gL/Af0B/gH/Av0B/wH9AfwB/wH9AfwB/wL9Af8B/QH+Af8B/gH/Af4C/wH+Av8B/gL/Af4B/wH+ + Af8B/gH9Af8B/QH8Af8B/QH8Af8C/QH/Av0B/wH+Af0B/gH/Af0B/gH/Af4B/wL+Af8C/QH/Av0B/wL9 + Af8C/QH/Af0B/gH/AfwC/wH9BP8B/gH/Av4B/wL+Bv8B/lT//wD/AP8A/wD/AP8AGwA1/wH+Av8B/QL/ + Av4B/wH+Af0C/wH9Av8B/QL/Af0B/gH/Av4B/wL+Af8C/gH/Af0C/wH9Av8B/AL/AfsB/wH+AfwB/wL+ + Af8B/gL/Af4C/wH+Av8B/QL/Af0C/wH9Av8B/AL/AfwC/wH9Av8B/QL/Af0C/wH+BP8B/gH/Av4B/wH+ + A/8B/i//Af4C/wH9Av8B/gL/Av0B/AH9AfoC/wL9AfwB/wH5AfgB/wHMAcoB9AG5AbgB8QGzAbIB9AG4 + AbYB8wG9AbsB5wG5AbYB0AG2Aa8BtwHCAbcBsQHIAbgBrQHLAbkBqQHLAbkBqQHMAboBqQHNAbsBqwHP + AbwBrQHPAb4BrwHPAb8BrwHOAb8BsQHQAcIBtgHUAcgBvgHbAdEByAHjAdoB0wHpAeIB3QHtAecB5AHv + AeoB5wHyAe4B7AH3AfQB8wH8AvoD/AL9Av4E/wH+Av8B/QL/Av4B/wH+Af0C/wH9Av8B/QH/Af4C/wH+ + Af8B/gP/Af4C/wL9Af8C/QH/Af0B/AH/Av0B/wH+Af0D/wH+Av8B/gL/Af4C/wH+Af8B/QL/Af0B/wH+ + AfwB/wL9Af8C/QH/Av0B/wH+Av0B/wL9Af8C/gH/Af4C/wH+Av8B/gL/Af4C/wH+Af8B/gL/Af0C/wH9 + Af4C/wH+Av8C/gH/Af4C/wH+Af8B/QH+Af8B/QL/Af5R//8A/wD/AP8A/wD/ABsAMv8B/gL/Av4B/wH9 + Af4B/wL+Av8B/gL/Af0B/gH/Af0B/gH/Av4B/wL+Af8C/gH/Av4B/wH9Af4B/wH9Av8B/AL/AfwC/wH8 + Av8B/gP/Af4G/wH+Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Af0G/wH+Av8B/jP/Af4C/wH+ + Av8B/gL/Av4C/wH9Av8B/gH6AfgB/AHrAeoB+gHTAdEB9gG5AbgB7QKxAfUBtgG0AfkBtgGzAe0BugG1 + Ad4BwAG4AcsBwgG3AbgBywG6Aa4B0AG8AagB0AG9AagB0gG+AagB0gG+AagB0wG/AakB0wG/AakB0gG/ + AakB0AG+AakB0AG/AasB0AHAAa4B0QHDAbMB1gHIAbsB3gHRAcYB5wHdAdEB6wHjAdoB7gHoAeQB8gHv + Ae0B9wL2AfkB+AL6AfsC/AP+Af8C/gH/Af0C/wL+Af8B/gH9Af8C/QH/Av0B/wH9Af4B/wH9BP8B/gP/ + Af0B/gH/Av0B/wH+Af0C/wH9Av8B/Qb/Af4C/wH+BP8B/QL/Af0C/wH9Av8B/QH/Av4B/wH9Av8D/gH/ + Af4B/QH/Av4C/wH+Av8B/gL/Af4C/wH+Bv8B/gL/Av4C/wH+Av8B/gL/Af4B/wL+Af8B/QH+Af8B/QL/ + Af5R//8A/wD/AP8A/wD/ABsAMv8C/gH/Av4B/wH9Af4B/wH+BP8B/gL/Af4C/wH+Av8B/QL/Af0C/wH9 + Av8B/QL/Af4C/wH+Af8B/gL/Af4C/wH9Av8C/gH/Av4C/wH+Av8B/gb/Af4C/wH9Av8B/QL/Af0C/wH9 + Av8B/QL/Af0H/wH+Av8B/jD/Af4C/wH9Af8B/QL8AfsB/AH/Af4C/wH+Af8B8wHxAfMB4QHfAeEC1wHe + Ae4B7wH/AcsBzAH0AbMBtAHwArQB+QG4AbQB+AG+AbgB8QHGAb0B4gHCAbYBxQHKAboBsAHRAb4BqAHT + Ab8BqAHVAcEBqAHXAcEBqAHXAcIBqAHZAcMBqAHZAcQBqAHcAcYBqwHcAccBrAHaAccBrAHXAcMBqgHU + AcEBqQHXAcUBrgHfAc8BuQHkAdYBxQHlAd4B1QHpAeUB4wHvAu0B8gHxAfMB9QH2AfcB+gL8Af0B/wH+ + Af0B/wH9Av8C/gH/Af4B/QH/Av0B/wH8Af0B/wH8Af0B/wH8BP8B/gL/Af4C/wH+Af8C/gH/Af0B/gH/ + Af0B/gH/Av4D/wH+Av8B/QL/Af0C/wP+Af8B/QH+Af8B/QH+Af8C/gL/Af4D/wH+Av8B/QH+Af8B/QL/ + Af4C/wH+Af8B/gL/Af4C/wH+Av8B/gf/Af4C/wH9Af8C/gH/Af0B/gH/Af0B/gH/Af0B/gH/Af0C/wH+ + Uf//AP8A/wD/AP8A/wAbADP/Af4B/wL+Af8B/gf/Af4C/wH+Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9 + Av8B/gL/Af4C/wH+Av8B/gH/Av4B/wL+Af8C/gH/Av4C/wH+Bv8B/gL/Af0C/wH9Av8B/QL/Af0C/wH+ + B/8B/gb/Af4C/wH+Av8B/gL/Af4C/wL+Af8C/gH/Av4C/wH+Fv8B/gH/Af0B/AL/Af0B/wH+Af8B/QH+ + Af8C6gHtAc8BzgHQAdcB1gHXAfcB9gH6AfkB+wH/AdwB3gH7AbgBugHtAbABsQHxAbQBsQH3AbcBsQH0 + AcEBuQHuAccBvQHcAccBuAG5AdABvAGtAdMBvwGpAdYBwQGoAdgBwQGoAdoBwwGoAdsBwwGoAdsBxAGo + AdwBxAGoAd4BxwGoAd8ByAGoAd4ByAGoAd4ByAGpAdwBxwGpAdsByAGqAdgBxwGuAeAB1QHFAeQB3QHU + AesB5gHhAe4B6wHqAfEB8gHxAfcC+QH8Bf0G/wH9Af8C/QH/AfwB/QH/AfwB/QH/AfwE/wH+Av8B/gL/ + Af4B/wH+Af0B/wH9Af4B/wL+Af8C/gP/Af4C/wH9Av8B/QL/A/4B/wH9Af4B/wH+Af0B/wH+Af0C/wH+ + A/8B/gL/Af0C/wH8Av8B/QL/Af4C/wH+Av8B/gH/Af4C/wH+Av8B/gT/Af4C/wH+Af8C/gH/Af0B/gH/ + Af0B/gH/Af0B/gH/Af0C/wH+Uf//AP8A/wD/AP8A/wAbAEP/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/ + Af4C/wH+C/8B/gL/Af4C/wH+Av8B/gz/Af4C/wH+Av8B/gL/Af4O/wH+Av8B/QL/Af0B/gH/Af0B/gH/ + Af0B/gH/Av0B/wL9Af8C/QH/Af4B/AH+Af0B/AH9AfwH/wL+Af8B/gL/Af4B/wH+AfwB/QP/Af4C/wH7 + Af0B/AHdAeAB3wHIAcsBzAHOAdAB0QLyAfQC/QH/AfoB/AH/AfQB9wH/AcwB0AH2AbQBtwHtAbgBtwH5 + AbQBsQH5AbUBsgH1AcABuQHrAcoBvAHUAcsBuQG6AdABugGpAdoBwgGoAd8BxwGoAd4BxAGoAdoBwgGo + Ad0BxgGqAd8BxwGoAd8ByAGoAeEByAGoAeIByQGoAeEByQGpAd8BygGpAd4BygGoAdwByQGpAdoByAGu + Ad4B0AG6AegB3gHOAe4B6AHeAe8B7QHmAfMB9AHxA/oC/AH9Af8B/QH/Af4B/QL+Af8C/gH/Af0B/gH/ + Af0B/gH/Af0B/wH+Av8B/gL/Af4C/wH+Av8B/gH/Af4D/wH+Av8B/gb/Af4C/wH+BP8B/gH/Af4D/wH+ + Av8B/gL/Af4G/wH+Av8B/gL/Af4d/wH+Av8B/gL/Af4C/wH+VP//AP8A/wD/AP8A/wAbAJL/Af4C/wH9 + Av8B/QL/Af0B/gH/Av0B/wL9Af8C/QH/Av0B/wH+Af0B/wH+Af0B/wH+A/0D/gT/Af4C/wH9Af4B/wH+ + Av8B/QH/AfkC+gHaAdwB2gHLAc4BywHKAswC8QHzAf4C/wH9Af4B/wH7Af4B/wH3AfsB/wHmAeoB/wHC + AcQB8AGwAa8B7AG0AbIB+AGyAa8B+QG6AbUB9AHGAbsB4gHLAbwBywHRAb8BtgHZAcMBqwHgAccBqAHh + AcgBqAHeAccBqgHeAccBqwHeAcgBqAHfAcgBqAHiAcoBqAHjAcsBqAHiAcoBqQHhAcsBqQHhAc0BqQHg + Ac4BqgHhAc4BrQHcAcsBrgHeAdMBuQHnAeABzQHsAeoB3gLxAesB+AH3AfYB+wL6Af8B/QL/Af4B/wP+ + Av8C/gH/Af4E/wH+Av8B/rX//wD/AP8A/wD/AP8AGwCV/wH+Av8B/QL/Av4B/wH+Af0B/wH+Af0B/wH+ + Af0B/wH+Af0C/wH8Av4B/QL/AfwC/gL9Af4B/wH+Av8B/QH+Af0B/AH9Af8B/gL/AfwB/gHlAeMB5ALI + AcYByQHIAccB6QLnAf8C/gL/Af0B+wH6AfkB+wH8AfoB+QH8Af8B9wH5Af8C2wH9AboBtgHrAbYBsAHz + AbcBrwH6AbgBsQH1AcABuQHqAcYBvgHXAc4BwAHBAdIBwQGwAdkBxAGoAeAByAGoAd8ByAGqAd0BxwGo + Ad4ByQGoAd8BywGoAeMBzgGoAeIBzQGoAeABzAGpAeABzQGrAd8BzwGrAd8B0QGuAeIB0QGuAdoBywGq + AdYBywGvAdsB1QG+AeQB4AHQAewB6wHhAfUB9AHvAfgB9wH2Af4C/QH/Av4C/wH+Av8B/gL/Af4E/wH+ + Av8B/rX//wD/AP8A/wD/AP8AGwCa/wH+Av8B/gH/Af4C/wH9Av8B/QL/Af0C/wH8A/0C/wH9Av8B/QH+ + Af8C/QP+Av8B/QH+Af8C/QHqAecB6AHOAssBygHIAccC3gHcAv8B/gH9AvwC/wP9AfwC/wH8Af0B/gH/ + AfoB/AH/AvEB/wHSAdAB+QG5AbQB7QG6AbQB+AG5AbQB9QG9AbsB6wHDAcEB3QHJAcIByAHNAcEBtgHT + AcIBrQHaAccBrQHcAcgBrwHZAccBrQHdAcsBrwHdAcwBrQHiAdABrQHhAc8BqwHfAc0BqgHfAc8BqwHd + Ac8BqwHfAdMBrgHgAdMBrgHgAdQBsQHcAdIBsgHXAdABtQHZAdYBwQHmAeQB1QLxAecC9QHwAvwB+gH+ + Av0F/wL+Af8B/gL/Af4E/wH+tf//AP8A/wD/AP8A/wAbAJT/Af4C/wH+Av8B/gL/Af4B/wL+Af8B/QL/ + Af0B/gH/Af0B/gH/Af0B/gH/Af0B/gH/Af0C/wH9Av8D/AH+A/8B/gH/AfEB8AHxA88ByQLIAtMB0gH1 + AfYB9AH7AvwB/gL/AvwB/gH9Av8B+gP8Af4B/wH3AfkB/wH5AfoB/wLtAf8ByQHIAfMBtwG1Ae0BtAGz + AeoBwQHCAeoBxAHHAd4CyAHNAcsBxgHBAdEBxgG5AdYByAG5AdcByAG8AdcByAG8AdYByAG5AdcByQG2 + Ad8BzwG2Ad8BzwGwAeABzwGuAeIB0QGuAd4B0QGsAeAB1QGvAeAB1QGvAeQB2QG2AeIB2QG3AdoB1AG0 + AdgB0wG5AeAB3gHJAewB6wHeAfQB8wHsAfoB+QH2A/wG/wL+Af0C/wL+Av8B/rb//wD/AP8A/wD/AP8A + GwCR/wH+Av8B/gL/Af0C/wH+Av8B/gL/Af4B/wL+Af8C/gH/Av4B/wL+Af8B/AL9Af4C/wb9A/8B+gL5 + A94ByQHKAckBzgHPAc0B5QHmAeQB/AH9AfsB/QH/Av0C/wH9Av8B/AH+Af8B/QL/AfwB/gH/AfwB/gH/ + AfsB/AH/AfgB+gH/AeEB4wH/Ab0BwAHoAbwBvwHnAbwBwQHdAb4BwQHSAcABwgHHAsMBwAHIAcIBvAHK + AcIBvAHLAcEBvwHLAcEBwAHOAcUBwAHQAccBugHcAc8BugHfAc8BtAHjAdEBsQHlAdcBswHgAdUBrwHj + AdkBtAHhAdgBtAHhAdgBtgHiAdkBtgHhAdkBuAHeAdkBuwHeAdkBwQHlAeMB0gHxAfAB5gL2AfEB/AL6 + Af8B/gL/Af4B/wH+Av0C/wH+Af0C/wH9Av8B/rP//wD/AP8A/wD/AP8AGwCR/wH+Av8B/gL/Af4C/wH+ + Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8C/QH/Av4B/wL9Av8B/gH/Av4B8ALtAdABzwHOAcwBywHJ + AdYB1wHTAvYB8wL9AfoC/wL8Af0B+wH9Af8B/QH8Af4B/QH/Af4C/wH+A/8B/gT8Af0B/wH4AfwB/wHn + AesB/wHpAe4B/wHuAfEB/wHuAfEB+gHuAfIB9AHwAfMC8QHzAfAC8wHxAfMB8QHyAfMC8QHKAccBwwHN + AccBvAHbAdABvAHfAdEBtwHlAdUBtQHqAdkBuAHiAdcBtQHjAdoBuQHjAdsBuQHhAdoBuAHiAdoBuAHl + Ad4BuwHkAd4BvwHeAdkBwAHhAd4BzAHrAeoB3gH0AfEB7QH6AvgB/wH+Av8B/gH/Af4C/QP/Af0B/wH+ + Af0B/wL+s///AP8A/wD/AP8A/wAbAJH/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/ + AvwB/wL+Af8C/gH/Af4B/QH/Af4B/QH+AfoB+QHoAeQB4wHMAcgBxwHNAckBxwHqAeYB5AH/AfwB+QL/ + AfwB/gH8AfYC/wH6Av8B+gL/AfwB/wH8AfsC/wH8Af8B/AH5Av8B+wL/BPwB+gH9Af8B+QH8Af8B/AH9 + Af8B/AH9Af8B+wL/AfoB/wL8Af8B/QH8Af8B/gH9Af4B/wP8AcoByQHGAc0ByQG+Ad0B0wG+AeEB1AG4 + AeYB1wG3AeoB3AG6AeAB1wG4AeAB2gG7AeIB3AG9AeQB3gG+AeUB3wG8AeYB4AG9AeYB4AG/AeIB3QHB + AeEB3gHIAeYB5AHXAfIB8AHrAfkB9wH2Af8B/QH+Af8B/gH/Af4B/QH+A/8B/QL/AfwB/gH9Af6z//8A + /wD/AP8A/wD/ABsAlP8B/gH/A/0H/wH+Af0C/wH+Af8C/gL/Af0B/wH+Af0C/wH9Af8B/gH9Af8B/QH7 + Af8B+QH3AfEB6wHqAdcB0AHPAcsBxAHBAdMByQHHAeAB1QHSAecB2wHZAeMB1wHTAd8B1wHPAd4B1wHL + Ad4B1wHLAd8B1wHNAeIB1wHQAeMB1wHRAegB2wHTAeoB3gHWAekB4AHXAesB5AHdAfQB8QHuAv8B/gH/ + Af4B/wL+Af8B/AH/Af4B/AH/Af0B/AH/Av0B/wH9AfwC/gL/AfwCzQHEAcwByAG5Ad0B1QG8AeQB2QG6 + AecB2wG4AeUB2wG4AeIB3QG9Ad8B3QG+AeEB3gG/AeQB3wG+AeUB4QG9AegB4wG+AeYB4AG+AeUB3wHB + AeIB3gHHAd8B3gHOAe0B6wHkAvYB8wH8AfoB+wH/Af4C/wH+Af8C/AL9Av4B/QL/Af6z//8A/wD/AP8A + /wD/ABsAk/8C/QH8Av8B/gL/Af4B/AH6AfkB+wH5AfgC/wH9Af8B/gH9Af8B/AH6AfsB9gH1AfEB6wHq + AeQB3gHcAdgB0QHQAdUBzgHLAc0BxgHEAcEBuQG4AcIBuQG3AccBugG4AcsBvQG6AcgBugG5AcMBtQGy + AcEBtgGuAcABtQGqAb4BtQGoAcABtQGoAcEBtQGqAcABsQGpAcABrwGoAcQBtAGrAcMBtgGrAcIBuAGu + AdwB1gHPAv8B+wL/Af0C/wH+Af0B/wL9Af8B/QH+Af8B/gP/Af4C/QH+Af0B+wHQAc4BxgHPAcsBvAHe + AdcBwAHkAdsBvQHnAd4BvAHmAd4BvQHkAeABwQHgAd8BwQHjAeEBwQHkAeMBwQHnAeQBwAHlAeEBvQHo + AeMBwAHlAeEBwQHiAeABxwLeAcoC6wHfAfYB9QHwAfwB+gH5Af8B/gL/Af4B/wH9AfwB/gH9Af4B/wH+ + tv//AP8A/wD/AP8A/wAbAJL/A/4D/QH8Av8B/AL/Af0C/wH9Af8B/AH6AfMB8AHuAeMB3gHdAdMBzgHM + AdABygHIAcwBxgHEAc0BxwHEAdIBygHIAcoBwwHBAcIBuwG4AckBwQG+AdcBzAHIAdkBzQHKAdYCyAHV + AcgBxwHVAcgBxgHQAccBwAHMAcMBuQHLAcIBtgHHAboBsQHGAbgBsAHBAbIBqwHBAbMBrAG9AbEBqQG3 + Aa0BqAHVAc0ByAL/AfwB/wH+AfwB/wH9AfwB/gH9AfwB/wL9Af8B/QL/Af0C/wH8Av8C/AHLAccBxAHI + AcMBuQHXAdABvgHfAdcBvgHnAd4BwQHoAeEBwwHmAeIBxQHiAd8BwQHhAeABwQHjAeIBwQHlAeQBwQHi + Ad8BvAHnAeQBwQHkAeIBwgHjAeEBxwLdAcgC6AHaAvQB6wH7AfoB9gH/Af0B/gH/Af4B/wH+AfwB/gH/ + Af4C/wH+tf//AP8A/wD/AP8A/wAbAJL/Af4C/wH9AvwB+gL/AfwC/wH8AfYB9AHyAeAB3QHaAdIBzgHM + Ac8BygHIAdgB0wHQAd4B2AHWAecB4QHfAfEB6wHqAfYB8AHuAeEB2gHYAc8ByAHHAdMBzQHKAfwB9QHx + Af8B+gH3Af8B+AH5Af8B/AH9Af8C/AH/AfoB9wH+AfYB8QH8AfUB7gH3Ae8B6gH3Ae4B6AHqAd8B2wHh + AdcB0gHZAdABywHQAcgBxAHhAdsB2AH/AfwB+wH/Av4B/wH+Av8C/gH/Af4C/wH9Av8B/QL/AfwC/wH8 + Af8BxgHBAcABuwG1Aa4BwQG5AasBxgG8AagBzQHCAawB1wHNAbQB4wHaAcIB6AHjAckB5AHhAcUB4wHi + AcQB5gHkAccB4wHhAcIB5wHlAccB5AHjAcYB5QHkAcsC4AHLAuQB1QHxAfIB6AL6AfUB/wL9Af8B/gH/ + Af4B/QL/Af4C/wH+tf//AP8A/wD/AP8A/wAbAJL/Af4C/wH9Av8B/AL/AfwB8wHxAe8B2QHXAdUB0AHM + AckB2wHXAdYB8ALrAf0B+QH3Af8B+wH5Af8B/QH8Af8B/gH9Af8B/gH9AeAB3AHbAc4BygHIAdcB1AHR + Av8B+wL/AfwB/QH7AfwB/wH9Av8B/AL/Af0C/wL+Af8B/gH9Af8B/QH8Av8B/QL/Af0C/wH9Av8B/QH+ + AfwB+wH8AvsB/wH+Av8B/QL/Af0C/wH9Av8B/QL/Af0C/wH9Af8B/QH8Af8B/QH8Af0BxgHCAcABuQG0 + Aa0BvgG2AakBwAG0AagBwAGzAagBwQGzAagBywG8Aa4B0QHGAbYB5AHeAckB4wHhAckB5QHjAcsB4wHh + AcoB4wHhAcoB4QHgAckC4wHNAeMB5AHQAeIB4wHTAvEB5wL6AfUC/gH8Af8B/gL/Af0C/wH+Av8C/rT/ + /wD/AP8A/wD/AP8AGwCS/wL+Af0B/AL/AfwC/wH8AeIB3wHeAdUB0gHQAe0B6gHoAf4B+gH5Av8B/QL/ + Af0B/wH+Af0B/wH+Af0B/wH+Av0C+wHWAtQBygLIAd0B3AHbAv8B/AH7AfwB+QHnAukB6AHpAesC5wHq + AekB5wHrAekB5gHqAekB5gHoAeoB6AHpAeoB6AHpA+QC7wHuA/wD/QH+A/8B/gH/Af0B/AL/AfwC/wH8 + Av8B/AH/Af4B/AH/AvwB/wL8Af8D/QHIAcYBwQG5AbQBqgG8AbMBqAHAAbMBqAHEAbUBqAHDAbMBqAHE + AbEBqAHAAbABqAG9AbUBqAHMAcgBuAHNAcoBuwHQAc4BwAHTAdEBwgHXAdUBxAHTAdEBwQHeAd0BzALi + AdMC8gHoAfoB+wH2Av4B/AH/Af4C/wH9Av8B/gL/Av60//8A/wD/AP8A/wD/ABsAkv8B/gL/Af0C/wH8 + Af8B/QH8AdsB2AHXAdwB2QHXAv8B/QL/Af0B/wH8AfsC/wH9Af8C/gH/Av4C/wT+AdIC0wHIAsoB4QHi + AeEC/wH9AvYB9QHhAuMB7QHuAe8B8QHyAvMB8gH0AfEB8AHxAfMB8QHyAfYB9AH1AfQC8wHkAeYB5AHs + Ae4B7AH9Af8C/QH/Av0B/gH8Av8B/QH+Af8B/QH+Af8B/gL/A/4B/wL8Af8B+QH8Af8B+QH8Af8B/AH9 + Af4B3gHaAdQBzQHGAbkBxwG7AawBwAGyAagBwAGwAagBwQGxAagBxAGzAagBwAGwAagBwQG2Aa4B6AHi + AdsB5gHhAdwB6AHkAd4B6gHnAeEB5wHkAdwB0AHOAcIB3wHeAdAC4gHVAvMB6QL8AfYC/gH9Af8B/gL/ + Af0C/wH+Av8C/rT//wD/AP8A/wD/AP8AGwCS/wH+Av8B/QH/Af0B/AL/Af0B3gHbAdkB3AHZAdcB/wH+ + Af0B/wH+AfwB/wH+AfwC/wH9Av8C/gL9A/8C/QH+AdAC0QHIAsoB5AHmAeUC/wH+A/QD5AH2AvgB/wH+ + Av8B/gH/Af0B/AH9Af8B/gL/Af4D/wH9AegB6QHnAekB6wHpAf0B/wH9Af4B/wP9AfwC/wH9Af4B/wH8 + Af0B/wH8Af0B/wH9AfkB+wH8AfEB9AH8AesB7wH8AegB7AH9AesB7QH7Ad0B3AHdAd4B2QHQAeYB3QHL + AdsB0AG7Ac0BwQGvAcQBuAGoAcMBtQGoAb0BsAGoAckBwQG5Af8B/gH8Af8C/AH/Af4D/wH9AfoB9wHz + AdABzwHFAt8B0wLjAdcB8wH0AeoC/AH3Av8B/QH/Af4C/wH+A/8B/QL/Af0C/wH+sf//AP8A/wD/AP8A + /wAbAJT/Af4C/wL8Av8B/QH1AfEB8AHaAdcB1AHkAeEB3gH/Af0B+gL/AfwC/wH8Av8B/QL/Af4C/wH+ + A/0B0gLTAcgCyQHnAugD/gP5A+EC+QH6Af8B/QL/Af4C/wH+Av8B/gL/Af4B/QH/Af0B/ALwAe4B7AHt + AesB+gH7AfoD/AbqAeYB5wHkAecB6AHmAeQC5QHgAeIB5gHVAdcB5QHBAcUB3wG1AbkB5QG4Ab0B5QHO + AdIB4wHXAdkB1gHfAd0ByAHnAeMByAHpAeQBzAHjAd0BxgHZAdEBuwHJAcIBsAHPAckBwQH+AfsB+QH/ + Af0C/wH9Av8B/gH/AfkB9wH1As0BwwHiAeMB1wHkAeUB2QH0AfYB7AL8AfgB/wH+Af0B/wH+Av8C/gL/ + AfwC/wH8Av8B/bH//wD/AP8A/wD/AP8AGwCT/wH+AfwB/QH/Af0B/gL/Af0C/wH8AfEB7gHrAd8B3QHY + AeUB4wHfAfYB9AHxAf8B/QH7Av8B/QL/Af0C/wH+AfwB/QH8AdkC2AHKAskB4QLgAf4B/wH+A/YB3wHe + Ad8B/AH6AfwB/wH+Av8B/gH/Af4B/AH9Af8B/gP/Af4C/wH9AuoB6AHqAekB6AL/Af4D+gLaAdsB4QHg + AeEB4wHiAeEB4gHjAeEB4gHkAeMB4gHkAeoB3AHfAe4ByAHMAesBtQG5Ae8BtgG8AfABxAHMAeYB1AHZ + AdsB3gHfAcsB5QHjAcYB5wHkAcoB5wHkAcoB6AHkAcoB5AHhAcsB5AHjAdcC/wH8Af8B/gH9Af8C/AL/ + Af0B+AH3AfIBzwHQAcYB3QHfAdEB5AHnAdsB9QH2Ae0B/QH8AfkB/wH+Av8B/QL/Af0B/gL/AfwC/wH8 + Av8B/bH//wD/AP8A/wD/AP8AGwCU/wH+Av8C/gH/AvwC/wH9Av8B/AH2AfQB8QHnAeQB4QHkAeMB3wH0 + AfMB8AL7AfkC/wH9Av8B/gP8Ad0B3AHbAcsByQHIAeEB4AHeAv0B/AH1AfYB9APeA/oC/gH/Av4B/wH9 + Af4B/wH+Av8D/AL/Af0C6wHqAesB6gHpAv8B/gH2AvUD3gH5AfgB+QP/Af0B/gH9AfwB/gH9AfoB/AH/ + AfQB9wH/Ad0B4AH7AbwBwQHxAbYBuwHtAb4BxQHjAdEB1wLeAd8BzwHjAeIBxQHjAeEBxgHkAeIBxwHn + AeQBywHnAeUB0AHsAe0B3gL/AfYC/wH4Av8B+gL/AfoB/QH+AfQB2wHeAdAB3QHgAdEB5wHqAd0B9gH4 + AfAB/gH9AfsB/wH+Av8B/QH/Af4B/AP/Af4C/wH9Av8B/rH//wD/AP8A/wD/AP8AGwCU/wL9Af8C/gL/ + Af4B/wH+AfwC/wH8Av8B/AH9AfsB+QHxAfAB7QLkAeIC6QHnAfMB9AHzAf0B/gH9Av8B/QHlAeQB4gHK + AccBxQHdAdoB1wL/AfwC+gH2AuEB3wH3AfkB+AH6A/wC/gH8Af0B/gH7AvwB/QL+A/wC6wHqAe4B7QHs + Av8B/gH1AvQD4AP8Af8B/gH/AfwD/QH/Af0B/AH+Af8B+gH8Af8B6wHuAf8BxwHLAfYBuAG/Ae0BugHB + AeQBzgHUAeIB3gHgAdMB4gHjAcgB5QHkAcgB5gHkAcgB5QHkAcoC5AHNAeYB6AHVAe4B8QHgAe4B8QHj + AfEB8wHlAe8B8QHkAfEB8wHlAeIB5QHVAeQB5wHXAesB7gHgAfkB+gHxAf8B/gH8Af8B/gL/Af0B/wH+ + AfwC/wH+Av8C/rT//wD/AP8A/wD/AP8AGwCU/wH+Af8B/gH8Af0C/wL+Af8B/QH7AfwB+gH+Af8B/AL/ + Af0C/wH9Af8B/gH9AfYB9QH0AfAB8QHwAfQB9gH0Av0B+wHyAfAB7QHQAcoByAHYAdIBzwH/AfsC9gHz + Ae4B4QHfAd0B/wH+AfwC/wH+Af0C/wH9Av8B/gX/Af0C/AHtAusB7QHsAesC/wH9AfcC9gLgAd8B+gL7 + AvwB/QH7A/wB/wH9AfwC/QH8Af0B/wH1AfcB/wHUAdgB+wG+AcQB7QG6AcEB5wHJAdAB5AHZAd0B1wHf + AeIBygHkAeUByALoAcoB5gHnAc0B5QHnAdAB4wHlAdAB4gHmAdAB4gHlAdEB4wHmAdMB3gHiAc8B5AHo + AdYB4QHlAdMB5AHoAdcB8AHyAeYC/AH0Av8B/AH/Af4C/wH9Af8B/gH8Av8B/gL/Af61//8A/wD/AP8A + /wD/ABsAlP8B/gH/Af4B/QH+BPwB/gL9Af8C/QH/Af0C/wH+Af8B/gH9Af8B/gL/Av4B+wL8AfoB/AH6 + Av8B/AH6AfcB9AHGAb8BugG7AbIBrQHCAboBtAG/AbgBsgG+AbgBtAH0AfEB7gL/Av0F/AH/Af4C/wH9 + Af4B/wH+Af8B7gLsAesB6QHoAv8B/QL3AfYD3gH7AvwB/QH+Af8B/QL/Af0B/wH9AfwB/gL9Af4B/wH6 + AfwB/wHjAecB/wHHAc0B8QG5AcEB6QHCAcoB5QHVAtoB3gHhAc4B4gHkAccB5AHmAccB4wHlAcsB4wHm + Ac4B4wHoAdAB4gHoAc8B5AHpAdIB5gHrAdUB5AHqAdUB5QHqAdUB4wHnAdQB4wHnAdcB9QH3AesB/QH/ + AfcB/gH/AfwB/wH+Av8B/gH/Af4B/AL/Af4C/wH+tf//AP8A/wD/AP8A/wAbAJP/AfoB+AH5Af8B/gH/ + Af0C/wH7Af4B/QH7Af8C/QH/BP4B/wL9Af4B/AH9Af8B/gH/Af0C/wH9Af8B/QL/AfwB/wH9AfkByAHA + AroBrwGpAbwBrwGoAb0BsAGqAcEBuAGyAfkB8gHwAf8B/gH9Af8C/AH9AfsB/AH/Af0C/wH8Af0B/gL8 + AfEC7gHvAusC/wH9AfkB+AH2Ad4B3wHeAfYC9wH9Av8B/QL/Af0B/wH9Af4B/wH9Af4C/QL8Af8B7wH0 + Af8B0QHXAfUBugHBAesBvgHFAeUB0QHYAd4B3wHkAdYB4wHlAcoB5QHoAcgB5AHoAc0B4wHoAdAB5AHq + AdAB4wHqAdAB4wHqAdAB4wHpAdEB5wHtAdYB5QHrAdYB5QHrAdcB6gHtAd4B+QH8AfEC/wH6Af0B/gH7 + Af8B/gH9Af8B/gH/Af4B/QH+A/8D/rT//wD/AP8A/wD/AP8AGwCU/wH+Av8B/gH/AfwC/wH7Av8B+gH+ + Af0B/AP/Af4C/wH+Av8B/gH/Av0B/gH8Af4B/wH8Av0C/wH8Av8B/AHJAcEBuwG+AbEBqwHCAbIBrAHC + AbMBrQG8Aa8BqwHkAdoB1wHlAd8B3gHjAd4B3wHiAd8C4AHeAd8B4gHeAd8B4wHeAd8B5ALfAeEC3gHj + AeAC3wLeAdsB3AHaAfsD/AH+Av0B/wH+AfwB/QH8Av8B/QH/AfwB/QH+Af0B/wH3AfwB/wHbAeIB+AG/ + AccB7gG7AcQB5wHNAdUB4AHbAeEB2QHfAeQBywHkAecByAHiAecBzAHgAecBzQHiAegB0AHkAesB0gHk + AeoB0QHiAegB0AHnAe0B1wHkAekB1QHmAeoB2QHuAfEB5AH8Af0B9QL/AfsC/QH7Af4B/QH8Av8C/gH/ + Af4C/wP+Af20//8A/wD/AP8A/wD/ABsAlP8B/gL/Af4B/wH8Av8B+wL/AfsC/wH8Av8B/gP/Af4C/wH+ + Af8E/QL/AfoB/AH7Av8B/AL/AfwByAHAAboBuQGtAagBwgGzAa0BwAGwAakBwQG0Aa8B8AHmAeQB9wHx + AfAB9gHyAfMB8QHuAvAB7QHvAfEB7QHuAfYB8gHzAegC5AHpAuUB8wHxAvAB7wHuAfIB9AHyAfoB/AH6 + Af0B/wH+Af0B/wH+Af0B/wH+Av8B/gH/Af4C/wH+Af8B+gH9Af8B6AHuAf4ByAHQAfQBugHEAecByAHR + AeIB2AHfAd0B3wHjAc4B5AHnAcoB4wHpAc0B4QHoAc4B4wHpAdAB5QHrAdMB5AHrAdMB5AHrAdQB5QHr + AdYB5AHpAdcB6gHtAd8B9gH5Ae4C/wH6Av8B/AL/Af0C/wH9Av8B/QL/Af4C/wH+Av8B/rT//wD/AP8A + /wD/AP8AGwCR/wH+Av8B/gL/Af4B/wH8Av8B+wL/AfsC/wH8Av8B/gP/Af4B/wH9AfwB/QL8Av0C/wH9 + Af8B/gL/Av0B+wH3Ac4BxgHBAcIBuAGyAcEBswGtAbwBrwGpAccBvAG4AfwB9QHyAf8B/gL9AvsB/gL8 + Af8B/gL/Af0B/gH/Av0B7wLrAfEC7QH+AvwB/gH9AvwB/QH8Af0B/wL9Af8B/QH8Af8B/QT/Af4C/wH+ + Af8B/QL8AfsB/QH/AeoB8AH7AdAB2AH2Ab8ByAHqAccB0AHkAdYB3QHfAd4B4gHQAeMB5wHLAeMB6gHN + AeMB6gHOAeQB6gHRAeMB6AHRAeQB6wHUAeYB7AHXAeQB6QHXAeUB6QHZAfAB8wHoAfwB/wH2Av8B/AL/ + AfwC/wH9Av8B/gL/Af4C/wH+uv//AP8A/wD/AP8A/wAbAJH/Af4C/wH+Av8B/gH/Af0C/wH8Av8B/AL/ + Af0B/wH+B/8B/gH/Av0B/gH8Af4B/wH8Av0C/wH9Av8B/AH5AfIB8AH8AfQB8AHmAd4B2AHPAcgBwQHm + AeEB3QL/AvwB+wH6A/8B/QH8Af0B/AH7AfwB/wH+Av8C/QHtAusB7QHrAeoB/AH7AfoC/wH9Af4B/wH+ + AfwB/QL8Af0C/AH9BPwB/QL8Af0B+gH7AfkB9wH4Af0C/wH4AfwB/wHaAeMB+gHFAc8B6wHFAc8B5AHS + AdsB4QHeAeIB1QHjAeYBzgHkAekBzgHjAesBzwHkAesB0QHiAegB0QHlAesB1gHlAesB1wHjAecB1wHr + Ae4B4gH5AfsB8wL/AfsC/wH8Av8B/gT/Af4B/wH+Av8B/gL/Av4B/wH+A/8B/rL//wD/AP8A/wD/AP8A + GwCR/wH+Av8B/gL/Af4B/wH9Av8B/QL/Af0B/wH+Af0B/wH+Av8B/gb/Af4C/wH8Av4B/AL+AfsC/AL/ + Af0B/wH9AfwC/wH8Af4B+wH2AeIB3wHbAdABzgHLAfgB9wH2Av8B/gH5AvsB/QL/AfwC/QP/A/wB6wHq + AegB4wHhAeAB5gHlAeQB5QLkA+MB4AHhAuAB4gLgAeIB4AHiAuEB5QHjAeQB5wHkAuUB4wHkA/sB+QH8 + Af8B4wHrAf0BywHVAe0BxAHNAeMB0AHXAeIB3QHiAdgB4wHmAdAB4wHoAc4B5AHqAc4B4wHqAdAB5AHr + AdQB5AHqAdcB4wHmAdcB5QHpAd0B9AH2Ae4C/wH6Av8B/AL/Af0E/wH+Av8B/gH/Av4B/wL+Af8C/gH/ + Av4C/wH+sv//AP8A/wD/AP8A/wAbAJH/Af4C/wH+Av8B/gH/Af4C/wH+BP8B/QL/Af0C/wH9Av8B/gP9 + AfwD/QL/Af0C/wH9Av8B/gH/Af4B/wH9AfwB/wH9AfwC/wH8AvgB9QLQAc4B2wHcAdsB/AH9Af4B/QL/ + AfwD/QL/Af0C/gL/Af4C+QH3AvQB8wH2AfUB9AH2AvUD9wP4A/YC9wH2AfcC9gH4AvYB8wHxAfMB6AHm + AegB/gH8Af4B/AH9Af8B6gHxAf0B0QHcAe4BxAHOAeMBzAHVAeEB3QHiAdoB4wHlAdEB4wHnAc8B5AHp + Ac4B4wHpAdAB5AHqAdMB4QHmAdQB5AHnAdkB8QHzAeoB/AH9AfgB/gH/AfwC/QH8BP8B/gH/Av4B/wL+ + Af8C/gH/Av4B/wL+Af8C/gL/Af6y//8A/wD/AP8A/wD/ABsAkf8B/gL/Af4C/wH+Av8B/gP/Af4C/wH9 + Av8B/QL/Af0C/wH9Av8B/gH9Af8B/gH8Af0B/gH9Av8B+wH8Af0B/AL9BP8C/gL9AfwB/gH/Af0B+gH8 + AfsB2QLaAuUB5wL+Af8B/QH+Af8B/gT/Af4C/wH9Av8B/QL/Af0C/wH+Af8E/gH/Af4B/QL/Af4G/wH9 + Av8B/QH5AfcB+AHmAeQB5gH9AfoB/QL8Af8B7gH1Af0B2AHjAfABxQHQAeMBygHTAd8B2wHgAdoB4QHk + AdMB4wHmAc8B5AHnAc4B4wHpAdAB4gHoAdIB4wHnAdcB7QHwAeUB/AH9AfcC/wL8Af0B/Af/Af4B/wH+ + Av8B/gL/Av4B/wL+Af8B/gL/Af62//8A/wD/AP8A/wD/ABsAkf8B/gL/Af4C/wH+Av8B/gP/Af4C/wH9 + Av8B/AL/AfwC/wH9Av8B/gH9Av8B/QL/Af0C/wH9Av8B/QL/Af0B/gH/Af4C/wH8Av0D/gH/Af4B/wH4 + AfYB+AHsAesB7AHvAe0B7gH/Af4B/wH+AfwC/QL8Av0B/AL/Af0C/wH9Av8B/gT/Af4C/wH+Av8B/QL/ + Af4C/wH9AfwC/wH8AfkB9wH4AeQB4gHlAf4B+gH/Af0B/AH/AfMB+QH+Ad8B6gHyAcgB0wHkAcgB0QHf + AdgB3gHZAeEB5AHSAeQB5gHQAeQB5wHPAeMB6AHQAeUB6wHXAe8B8wHkAfkB/AHzAv8B/AP/Av0B/gH/ + Af4H/wH+Av8B/gL/Af0C/wH9Av8B/QH/Av4B/wH+tP//AP8A/wD/AP8A/wAbAJH/Af4C/wH+Av8B/gL/ + Af4D/wH+Av8B/QL/Af0C/wH9Av8B/QL/Af4B/QL+Af0C/wH8Af0B/gH8Af0B/wH9Av8B/QH+Af8B/AL9 + Af4C/wH+Af0D/gL/Af0B/gH/Af4B/wH5AfcB+QH9AvwB/wH+A/8B/gH/Af4B/QL/AfwC/wH9Af8B/gT9 + Af8B/QH+Af8B/gL/Af0C/wH+Af8B/gH9AfwC/wL8AvoB5QHiAeQB/wH7Av8B/AH/AfgB/AH/AeYB7gH2 + AcsB1QHmAcgB0AHeAdcB3gHZAd4B4wHTAeQB5QHRAeQB5gHQAeIB5gHTAe0B8QHjAfwB/wH0Av8B+wL9 + AfwB/wH+Av8B/gH/A/wF/wL+Af8C/gH/Av4C/wH9Av8B/gH/Av4B/wH+tP//AP8A/wD/AP8A/wAbAJT/ + Af4C/wH+Cf8B/gL/Af4C/wH+Av8B/gb/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gL/ + Af4K/wH+Av8C/gH9AfwC/gH8Av4B/AH+Af0B/AH/Af4B/QL/Af0C/wH9A/8C/gH/Av0B/wH+Af8B/QL/ + AfwB+wH3AfYB7wHpAegB/AL0Af8C/gH6AfwB/QHsAfIB+QHQAdcB6QHHAdEB3gHUAd4B2QHXAd8B0QHe + AeEB0AHoAeoB2gH5AfsB8gH7AfwB9wL/AfwC/wH9Av8G/hP/Af68//8A/wD/AP8A/wD/ABsAw/8B/gH/ + Af4B/QH/Af4B/QH/Af4B/QH/Av4B/wL+Af8B/gL/Af0C/wH9Av8B/QL/Af0C/wH9Av8B/QL/Av0B/AH7 + Af8B/gH9Av8B/gH/Af4C/wH+Af8C/QH8AeoB6AHlAd0B1gHTAdcBzgHKAeEB1wHTAegB4QHfAf4C/wHz + AfcB/wHVAdsB7gHHAc8B4AHTAt0B3gHmAd4B7gHxAeYC/AH0AvwB+QP8Cf8G/s///wD/AP8A/wD/AP8A + GwDD/wH+Af8C/gH/Av4B/wL+Af8C/gH/Av4B/wH+Av8B/gL/Av4B/wH+A/0B/gL9A/wC9gH1Ae8C7gHw + Au8B9gL0Af0C+wH/AfwB+wH9AfoB9wHXAdEBzwG9AbEBrgG5AasBqAG8Aa8BqQHGAbwBuQH/Af4B/wH2 + AfkB/wHXAdwB9AHLAdAB6AHeAeQB7QHxAfUB9gH+Af0B+wL/AfwC/wH9A/8S/sz//wD/AP8A/wD/AP8A + GwDF/wL+Af8B/gL/Av4B/wH+Av8B/gL/Af4C/wH+Av8C/gH/BP4E/wH+Af8D/APxAegB5wHoAeUC5AHg + AtwB3wHbAdoB5QHgAd4BygHBAb8BvAGuAaoBwgGzAa4BwQGxAasByQHAAboB/wH9Af8B9wH5Af8B2wHe + AfkB0QHWAfAB6AHsAfoB+wH9Av8B/gL/Af0B/Ab/Cf4G/wP+zP//AP8A/wD/AP8A/wAbAMX/Af4C/wH9 + Av8B/gL/Af4C/wH+Av8B/gn/Av4B/wX8A/0B/gL9Af8C/QH/Af4B/AH+Af8B+wH8Af8B+QH6Af4C9wHX + Ac4BzQG8Aa0BqwG/Aa4BqQG7Aa0BqAHHAb4BtwH/Av0B9wH7Af8B3QHhAfoB0wHYAfEB6AHtAfoB+QH8 + Bf8B/gH8Av8B/gP/Bv4J/wP+zP//AP8A/wD/AP8A/wAbAML/Af4C/wH+Av8B/QL/Af4C/wH+Av8B/gL/ + Af4E/wH+Af8B/QH8Af0B/wH+Af8C/gH/Av4B/wL+Af8B/gH9Af8B/gH9Av8B/QL/Af0C/wH+Av8C/gHi + AdoB2QHIAbsBuQHLAb4BuQHLAcEBuAHUAc4ByAL+Af8B8wH4Af8B2AHeAfUB1AHaAfEB6wHxAf0B+QH9 + Af8B/QT/Af0B/wj+DP8D/sz//wD/AP8A/wD/AP8AGwDC/wH+Av8B/gL/Af0C/wH9Av8B/QL/Af4C/wH+ + BP8B/gL/Af4C/wH+Af8C/gH/Af0B/AH/AfkB+gH8AfgB+QH8AfsB/AH/Av4B/wH8AfoB+wL/Af0C/wH9 + Af8B/gH8Af8B/AH6Av8B/AL/AfoB/wH+AfwB+wH9Af8B6wHzAf8B0wHaAfAB1wHeAfQB8gH5Af8B+QH9 + Af8B/AH9Af8B/QH+Af0J/gz/A/7M//8A/wD/AP8A/wD/ABsAwv8B/gL/Af4C/wH9Av8B/QL/Af0C/wH+ + Av8B/gH/Af4C/wH+Av8B/gH/Af4B/QH/Av0B/wH+Af0B/wL6Af0C9gH5AvcB+wL8Af8C/gH/Af0C/wH6 + AvwB/QP/Af4C/wH8Av4B/AP9Af8B9QH6Af8B5wHvAf0B1AHdAfEB3QHlAfcB9QH7Af8B+QH9Af8B+QH7 + AfwB/gj/D/7P//8A/wD/AP8A/wD/ABsAwv8B/gL/Af4C/wH9Av8B/QL/Af0C/wH+Av8B/gH/Af4C/wH+ + Av8B/gL/Af4B/wH+Af0B/wH+Af0B/wL9Af8C+gH9AvMB9gLtAfEC+QH+AfoB/AH/AfkB/QH/AfgB/QH/ + AfkB/AH/AfgB+wH/AfkB/AH/AfgB/AH/Ae8B9QH/AdoB4QHzAdgB3wHyAesB8QH/AfcB/AH/AfoB/QH/ + Af3p//8A/wD/AP8A/wD/ABsAwv8B/gL/Af4C/wH9Av8B/QL/Af0C/wH+Av8B/gT/Af4B/wL9Af8B/QH8 + Af8C/QH/Af4B/QH/Af0B/gH/AvwB/wH4AfkB/AL1AfoB5wHoAe8B6gHrAfQB7QHzAfoB8wH6Af8B9gH8 + Af8B9gH7Af8B8QH2Af8B7AHxAf8B3AHiAfUB2QHfAfEB5QHrAfkB9wH8Af8B+wL/Af0B/wH9Av8B/QL/ + Af0C/wH+4f//AP8A/wD/AP8A/wAbAML/Af4C/wH+Av8B/QL/Af4C/wH+Av8B/gL/Af4E/wH+Af8C/QH+ + Av0B/gL9Af8C/QH/Av4B/wH+Af0B/wH+Af0B/wL8Af8B9AHzAfwB7QHuAfgB5AHqAfMB3wHnAfEB3wHl + AfQB3gHkAfQB3QHiAfEB2gHfAfAB3gHjAfYB5gHqAfoB9gH6Af8B+wL/Af4B/wH8Av8B+QL/AfoC/wH7 + Av8B/eH//wD/AP8A/wD/AP8AGwDF/wH+Av8B/QL/Af4C/wH+Av8B/gL/Af4K/wH+Av8B/gH/Av4C/wH+ + Af8C/gL/Af4B/wH+Af0B/wH9AfwB/wH6AfwB/wHxAfYB/QHqAfEB+gHlAewB+AHkAesB9wHnAewB+AHo + AewB+gHxAfQB/wH3AfkB/wH7Af0B/wH+Af8B/QL8AfYC/wH4Av8B+gL/AfsC/wH94f//AP8A/wD/AP8A + /wAbAMX/Av4B/wH+Av8C/gH/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gf/Af4C/wH+Af8C/gL/Af4C/wH+ + Af8C/AH9AfwB/gH/AfkC/wH3Av8B9wH+Af8B+AH9Af8B+QH9Af8B+gH9Af8B+gH8Af8B+wH8Af8B/QH+ + A/8B/AH/Af4B+wL/AfwC/wH8Af8B/gH8Av8B/uH//wD/AP8A/wD/AP8AGwDD/wH+Af8C/gH/Av4B/wL+ + Af8C/gH/Av4B/wH+Av8B/gL/Af4C/wH+Av8B/gL/Af4C/wH+Av8B/gH/Av4B/wL+Av8B/gP9AfwB/gH9 + AfoB/wH9AfgB/gH9AfkB/AH+AfkC/QH8Af4B/QH8Af4B/wH6AfsB/wL8Af8B/QH+A/8B/QL/Af0B/wL+ + Af8B/uj//wD/AP8A/wD/AP8AGwDD/wH+Af8B/gH9Af8B/gH9Af8B/gH9Af8C/gH/Av4B/wH+Av8B/QL/ + Af0C/wH9Af4B/wH9Af8B/gH9Af8B/gH9Av8B/QL/Af0C/wH9Af8C/gH/Af4B/wH9Af4B/wH8Av8B/AL/ + Af0C/wH+Af8B/gL/AfwC/wH9AvwB/wL8Af8B/gT/Af4B/wH9Av8B/AH/Av0B/wH9Af4B/wH+4///AP8A + /wD/AP8A/wAbAMP/Af4B/wH+Af0B/wL+Af8C/gH/Av4B/wL+Af8B/gL/Af4C/wH9Av8B/gL/Af0B/wH+ + Af0C/gH8Av8B/QL/Af0C/wH9Af8B/gH9Af4B/QH+Av0B/wH8Af0B/wH9Af4G/wH9Av8B/AL/AfwC/QH/ + Av0B/wH+Bv8B/QL/Af0B/wH9Af4B/wH9Af4B/wH+4///AP8A/wD/AP8A/wAbAMb/Af4T/wH+Bf8B/gX/ + Af4C/wH+Av8B/gL/Af4H/wH+Af8B/gL/Af4H/wH+Av8B/QL/Af0B/wH+Af8C/gj/Af4C/wH+Af8B/gL/ + Af7m//8A/wD/AP8A/wD/ABsA/////wn//wD/AP8A/wD/AP8AGwD/////Cf//AP8A/wD/AP8A/wAbAP// + //8J//8A/wD/AP8A/wD/ABsA/////wn//wD/AP8A/wD/AP8AGwD/////Cf//AP8A/wD/AP8A/wAbAP// + //8J//8A/wD/AP8A/wD/ABsA/////wn//wD/AP8A/wD/AP8AGwD/////Cf//AP8A/wD/AP8A/wAbAP// + //8J//8A/wD/AP8A/wD/ABsA/////wn//wD/AP8A/wD/AP8AGwABQgFNAT4HAAE+AwABKAMAAbQBAgIA + AW4DAAEBAQABAQUAAdABJRYAA///AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A + /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/APYACw== + + + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/ModelDialog.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/ModelDialog.cs new file mode 100644 index 00000000..bd7154fd --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/ModelDialog.cs @@ -0,0 +1,520 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Diagnostics; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +using Oatc.OpenMI.Gui.Core; +using Oatc.OpenMI.Gui.Controls; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + /// + /// Summary description for ModelDialog. + /// + public class ModelDialog : System.Windows.Forms.Form + { + private System.Windows.Forms.ComboBox comboBoxModel; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.PropertyGrid propertyGrid; + private System.Windows.Forms.Button buttonClose; + private ExchangeItemSelector outputExchangeItemSelector; + private ExchangeItemSelector inputExchangeItemSelector; + private System.Windows.Forms.GroupBox groupBoxProperties; + private System.Windows.Forms.Button buttonViewElementSet; + private System.Windows.Forms.GroupBox groupBoxOutputExchnageItems; + private System.Windows.Forms.Panel panelTop; + private System.Windows.Forms.Panel panelBottom; + private System.Windows.Forms.GroupBox groupBoxInputExchangeItems; + private System.Windows.Forms.Splitter splitterVertical; + private System.Windows.Forms.Splitter splitterHorizontal; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + /// + /// Creates a new instance of ModelDialog dialog. + /// + public ModelDialog() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // + // TODO: Add any constructor code after InitializeComponent call + // + + _elementSetViewer = new ElementSetViewer(); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(ModelDialog)); + this.comboBoxModel = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.propertyGrid = new System.Windows.Forms.PropertyGrid(); + this.outputExchangeItemSelector = new Oatc.OpenMI.Gui.Controls.ExchangeItemSelector(); + this.groupBoxOutputExchnageItems = new System.Windows.Forms.GroupBox(); + this.inputExchangeItemSelector = new Oatc.OpenMI.Gui.Controls.ExchangeItemSelector(); + this.groupBoxProperties = new System.Windows.Forms.GroupBox(); + this.buttonViewElementSet = new System.Windows.Forms.Button(); + this.buttonClose = new System.Windows.Forms.Button(); + this.panelTop = new System.Windows.Forms.Panel(); + this.panelBottom = new System.Windows.Forms.Panel(); + this.groupBoxInputExchangeItems = new System.Windows.Forms.GroupBox(); + this.splitterVertical = new System.Windows.Forms.Splitter(); + this.splitterHorizontal = new System.Windows.Forms.Splitter(); + this.groupBoxOutputExchnageItems.SuspendLayout(); + this.groupBoxProperties.SuspendLayout(); + this.panelTop.SuspendLayout(); + this.panelBottom.SuspendLayout(); + this.groupBoxInputExchangeItems.SuspendLayout(); + this.SuspendLayout(); + // + // comboBoxModel + // + this.comboBoxModel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.comboBoxModel.Location = new System.Drawing.Point(60, 4); + this.comboBoxModel.Name = "comboBoxModel"; + this.comboBoxModel.Size = new System.Drawing.Size(460, 21); + this.comboBoxModel.TabIndex = 0; + this.comboBoxModel.SelectedIndexChanged += new System.EventHandler(this.comboBoxModel_SelectedIndexChanged); + this.comboBoxModel.Enter += new System.EventHandler(this.comboBoxModel_Enter); + // + // label1 + // + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.label1.Location = new System.Drawing.Point(8, 8); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(48, 12); + this.label1.TabIndex = 3; + this.label1.Text = "Model:"; + // + // propertyGrid + // + this.propertyGrid.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.propertyGrid.CommandsVisibleIfAvailable = true; + this.propertyGrid.Cursor = System.Windows.Forms.Cursors.HSplit; + this.propertyGrid.LargeButtons = false; + this.propertyGrid.LineColor = System.Drawing.SystemColors.ScrollBar; + this.propertyGrid.Location = new System.Drawing.Point(8, 16); + this.propertyGrid.Name = "propertyGrid"; + this.propertyGrid.Size = new System.Drawing.Size(258, 272); + this.propertyGrid.TabIndex = 28; + this.propertyGrid.Text = "propertyGrid1"; + this.propertyGrid.ViewBackColor = System.Drawing.SystemColors.Window; + this.propertyGrid.ViewForeColor = System.Drawing.SystemColors.WindowText; + // + // outputExchangeItemSelector + // + this.outputExchangeItemSelector.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.outputExchangeItemSelector.Location = new System.Drawing.Point(8, 16); + this.outputExchangeItemSelector.Name = "outputExchangeItemSelector"; + this.outputExchangeItemSelector.Size = new System.Drawing.Size(232, 136); + this.outputExchangeItemSelector.TabIndex = 27; + this.outputExchangeItemSelector.SelectionChanged += new System.EventHandler(this.outputExchangeItemSelector_SelectionChanged); + // + // groupBoxOutputExchnageItems + // + this.groupBoxOutputExchnageItems.Controls.Add(this.outputExchangeItemSelector); + this.groupBoxOutputExchnageItems.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBoxOutputExchnageItems.Location = new System.Drawing.Point(8, 28); + this.groupBoxOutputExchnageItems.Name = "groupBoxOutputExchnageItems"; + this.groupBoxOutputExchnageItems.Size = new System.Drawing.Size(248, 157); + this.groupBoxOutputExchnageItems.TabIndex = 29; + this.groupBoxOutputExchnageItems.TabStop = false; + this.groupBoxOutputExchnageItems.Text = " Output Exchange Items"; + // + // inputExchangeItemSelector + // + this.inputExchangeItemSelector.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.inputExchangeItemSelector.Location = new System.Drawing.Point(8, 16); + this.inputExchangeItemSelector.Name = "inputExchangeItemSelector"; + this.inputExchangeItemSelector.Size = new System.Drawing.Size(232, 144); + this.inputExchangeItemSelector.TabIndex = 1; + this.inputExchangeItemSelector.SelectionChanged += new System.EventHandler(this.inputExchangeItemSelector_SelectionChanged); + // + // groupBoxProperties + // + this.groupBoxProperties.Controls.Add(this.propertyGrid); + this.groupBoxProperties.Controls.Add(this.buttonViewElementSet); + this.groupBoxProperties.Dock = System.Windows.Forms.DockStyle.Right; + this.groupBoxProperties.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.groupBoxProperties.Location = new System.Drawing.Point(260, 28); + this.groupBoxProperties.Name = "groupBoxProperties"; + this.groupBoxProperties.Size = new System.Drawing.Size(272, 325); + this.groupBoxProperties.TabIndex = 30; + this.groupBoxProperties.TabStop = false; + this.groupBoxProperties.Text = "ElementSet properties"; + // + // buttonViewElementSet + // + this.buttonViewElementSet.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonViewElementSet.Enabled = false; + this.buttonViewElementSet.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonViewElementSet.Location = new System.Drawing.Point(12, 293); + this.buttonViewElementSet.Name = "buttonViewElementSet"; + this.buttonViewElementSet.Size = new System.Drawing.Size(108, 24); + this.buttonViewElementSet.TabIndex = 33; + this.buttonViewElementSet.Text = "ElementSet viewer"; + this.buttonViewElementSet.Click += new System.EventHandler(this.buttonViewElementSet_Click); + // + // buttonClose + // + this.buttonClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClose.Location = new System.Drawing.Point(428, 4); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(88, 28); + this.buttonClose.TabIndex = 31; + this.buttonClose.Text = "Close"; + this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); + // + // panelTop + // + this.panelTop.Controls.Add(this.label1); + this.panelTop.Controls.Add(this.comboBoxModel); + this.panelTop.Dock = System.Windows.Forms.DockStyle.Top; + this.panelTop.Location = new System.Drawing.Point(8, 0); + this.panelTop.Name = "panelTop"; + this.panelTop.Size = new System.Drawing.Size(524, 28); + this.panelTop.TabIndex = 32; + // + // panelBottom + // + this.panelBottom.Controls.Add(this.buttonClose); + this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panelBottom.Location = new System.Drawing.Point(8, 353); + this.panelBottom.Name = "panelBottom"; + this.panelBottom.Size = new System.Drawing.Size(524, 36); + this.panelBottom.TabIndex = 33; + // + // groupBoxInputExchangeItems + // + this.groupBoxInputExchangeItems.Controls.Add(this.inputExchangeItemSelector); + this.groupBoxInputExchangeItems.Dock = System.Windows.Forms.DockStyle.Bottom; + this.groupBoxInputExchangeItems.Location = new System.Drawing.Point(8, 189); + this.groupBoxInputExchangeItems.Name = "groupBoxInputExchangeItems"; + this.groupBoxInputExchangeItems.Size = new System.Drawing.Size(248, 164); + this.groupBoxInputExchangeItems.TabIndex = 0; + this.groupBoxInputExchangeItems.TabStop = false; + this.groupBoxInputExchangeItems.Text = " Input Exchange Items"; + // + // splitterVertical + // + this.splitterVertical.Dock = System.Windows.Forms.DockStyle.Right; + this.splitterVertical.Location = new System.Drawing.Point(256, 28); + this.splitterVertical.MinExtra = 150; + this.splitterVertical.MinSize = 150; + this.splitterVertical.Name = "splitterVertical"; + this.splitterVertical.Size = new System.Drawing.Size(4, 325); + this.splitterVertical.TabIndex = 34; + this.splitterVertical.TabStop = false; + // + // splitterHorizontal + // + this.splitterHorizontal.Dock = System.Windows.Forms.DockStyle.Bottom; + this.splitterHorizontal.Location = new System.Drawing.Point(8, 185); + this.splitterHorizontal.MinExtra = 150; + this.splitterHorizontal.MinSize = 150; + this.splitterHorizontal.Name = "splitterHorizontal"; + this.splitterHorizontal.Size = new System.Drawing.Size(248, 4); + this.splitterHorizontal.TabIndex = 35; + this.splitterHorizontal.TabStop = false; + // + // ModelDialog + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.ClientSize = new System.Drawing.Size(540, 397); + this.Controls.Add(this.groupBoxOutputExchnageItems); + this.Controls.Add(this.splitterHorizontal); + this.Controls.Add(this.groupBoxInputExchangeItems); + this.Controls.Add(this.splitterVertical); + this.Controls.Add(this.groupBoxProperties); + this.Controls.Add(this.panelTop); + this.Controls.Add(this.panelBottom); + this.DockPadding.Bottom = 8; + this.DockPadding.Left = 8; + this.DockPadding.Right = 8; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(500, 400); + this.Name = "ModelDialog"; + this.ShowInTaskbar = false; + this.Text = "Model properties"; + this.Resize += new System.EventHandler(this.ModelDialog_Resize); + this.groupBoxOutputExchnageItems.ResumeLayout(false); + this.groupBoxProperties.ResumeLayout(false); + this.panelTop.ResumeLayout(false); + this.panelBottom.ResumeLayout(false); + this.groupBoxInputExchangeItems.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + + private ArrayList _uiModels; + private string _loadedModelID; + + private ElementSetViewer _elementSetViewer; + + /// + /// Populates this dialog with models. + /// + /// List of models, ie. UIModel objects. + /// ID of the model to be selected. + public void PopulateDialog( ArrayList uiModels, string modelID ) + { + _uiModels = uiModels; + _loadedModelID = null; + + string modelIdToSelect = null; + + comboBoxModel.Items.Clear(); + + for( int i=0; i + /// Populates this dialog with models. + ///
    + /// List of models, ie. UIModel objects. + public void PopulateDialog( ArrayList uiModels ) + { + PopulateDialog( uiModels, null ); + } + + + /// + /// Selects one model to be shown in dialog. + /// + /// ID of model to be selected. + public void SelectModel( string modelID ) + { + if( modelID == null ) + { + outputExchangeItemSelector.PopulateExchangeItemTree( new OutputExchangeItem[0], false ); + inputExchangeItemSelector.PopulateExchangeItemTree( new InputExchangeItem[0], false ); + _loadedModelID = null; + } + else + { + // find model by ID + int modelIndex = -1; + for( int i=0; i=_uiModels.Count ) + { + // model with modelID wasn't found + Debug.Assert( false ); + SelectModel( null ); + return; + } + + UIModel selectedModel = (UIModel)_uiModels[ modelIndex ]; + + Debug.Assert( selectedModel.ModelID == modelID ); + + // load exchange items (if they aren't already loaded) + if( modelID != _loadedModelID ) + { + IExchangeItem[] outputExchangeItems = new IExchangeItem[ selectedModel.LinkableComponent.OutputExchangeItemCount ]; + for (int i = 0; i < selectedModel.LinkableComponent.OutputExchangeItemCount; i++) + outputExchangeItems[i] = selectedModel.LinkableComponent.GetOutputExchangeItem( i ); + outputExchangeItemSelector.PopulateExchangeItemTree( outputExchangeItems, false ); + + IExchangeItem[] inputExchangeItems = new IExchangeItem[ selectedModel.LinkableComponent.InputExchangeItemCount ]; + for (int i = 0; i < selectedModel.LinkableComponent.InputExchangeItemCount; i++) + inputExchangeItems[i] = selectedModel.LinkableComponent.GetInputExchangeItem(i); + inputExchangeItemSelector.PopulateExchangeItemTree( inputExchangeItems, false ); + + _loadedModelID = selectedModel.ModelID; + } + + // select model also in comboBox + // this can cause this method is reentered + comboBoxModel.SelectedIndex = modelIndex; + + //labelInfo.Text = "Model " + selectedModel.ModelID; + + // show properties of this model + PropertyGridSelectObject( selectedModel.LinkableComponent ); + } + } + + private void PropertyGridSelectObject( object obj ) + { + buttonViewElementSet.Enabled = false; + + // show properties of selected object (if any) + if( obj!=null ) + { + propertyGrid.SelectedObject = Oatc.OpenMI.Gui.Controls.PropertyManager.ConstructPropertyManager( obj, true ); + + // Modify text in groupBoxProperties + if( obj is IQuantity ) + groupBoxProperties.Text = " Quantity properties"; + else if( obj is IElementSet ) + { + buttonViewElementSet.Enabled = true; + groupBoxProperties.Text = " ElementSet properties"; + } + else if( obj is IDataOperation ) + groupBoxProperties.Text = " DataOperation properties"; + else if( obj is ILinkableComponent ) + groupBoxProperties.Text = " LinkableComponent properties"; + else + { + groupBoxProperties.Text = " Properties"; + Debug.Assert( false ); + } + } + else + { + // no object is selected + propertyGrid.SelectedObject = null; + groupBoxProperties.Text = " Properties"; + } + + } + + + private void comboBoxModel_SelectedIndexChanged(object sender, System.EventArgs e) + { + if( comboBoxModel.SelectedIndex < 0 ) + SelectModel( null ); + else + SelectModel( (string)comboBoxModel.Items[comboBoxModel.SelectedIndex] ); + } + + private void comboBoxModel_Enter(object sender, System.EventArgs e) + { + comboBoxModel_SelectedIndexChanged( sender, e ); + } + + + private void outputExchangeItemSelector_SelectionChanged(object sender, System.EventArgs e) + { + PropertyGridSelectObject( outputExchangeItemSelector.GetSelectedObject() ); + } + + private void inputExchangeItemSelector_SelectionChanged(object sender, System.EventArgs e) + { + PropertyGridSelectObject( inputExchangeItemSelector.GetSelectedObject() ); + } + + private void buttonClose_Click(object sender, System.EventArgs e) + { + Close(); + } + + private void buttonViewElementSet_Click(object sender, System.EventArgs e) + { + Debug.Assert( buttonViewElementSet.Enabled ); + + if( propertyGrid.SelectedObject!=null ) + if( ((Oatc.OpenMI.Gui.Controls.PropertyManager)propertyGrid.SelectedObject).Tag is IElementSet ) + { + ArrayList elementSets = new ArrayList(); + elementSets.Add( ((Oatc.OpenMI.Gui.Controls.PropertyManager)propertyGrid.SelectedObject).Tag ); + _elementSetViewer.PopulateDialog( elementSets ); + + _elementSetViewer.ShowDialog(); + } + } + + + private void ModelDialog_Resize(object sender, System.EventArgs e) + { + if( groupBoxInputExchangeItems.Width < 100 ) + groupBoxInputExchangeItems.Width = 100; + if( groupBoxInputExchangeItems.Height < 100 ) + groupBoxInputExchangeItems.Height = 100; + + if( groupBoxOutputExchnageItems.Width < 100 ) + groupBoxOutputExchnageItems.Width = 100; + if( groupBoxOutputExchnageItems.Height < 100 ) + groupBoxOutputExchnageItems.Height = 100; + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/ModelDialog.resx b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/ModelDialog.resx new file mode 100644 index 00000000..67b65921 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/ModelDialog.resx @@ -0,0 +1,716 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + True + + + Private + + + 4, 4 + + + True + + + Private + + + False + + + True + + + Private + + + 4, 4 + + + True + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + (Default) + + + False + + + False + + + 4, 4 + + + True + + + 80 + + + True + + + ModelDialog + + + Private + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/Oatc.OpenMI.Gui.ConfigurationEditor.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/Oatc.OpenMI.Gui.ConfigurationEditor.csproj new file mode 100644 index 00000000..07e1bc70 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/Oatc.OpenMI.Gui.ConfigurationEditor.csproj @@ -0,0 +1,177 @@ + + + + Local + 8.0.50727 + 2.0 + {5990D533-2648-49CB-A3F2-A31EC8F03D59} + Debug + AnyCPU + OmiEd.ico + + + Oatc.OpenMI.Gui.ConfigurationEditor + + + JScript + Grid + IE50 + false + WinExe + Oatc.OpenMI.Gui.ConfigurationEditor + OnBuildSuccess + + + + + + + v2.0 + 2.0 + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + bin/Release/Oatc.OpenMI.Gui.xml + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + Form + + + Code + + + Form + + + Form + + + Form + + + Form + + + Form + + + AboutBox.cs + Designer + + + ConnectionDialog.cs + Designer + + + MainForm.cs + Designer + + + ModelDialog.cs + Designer + + + RunBox.cs + Designer + + + RunProperties.cs + Designer + + + org.OpenMI.Tools.GUI.ConfigurationEditor + + + org.OpenMI.Tools.GUI.ConfigurationEditor + + + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + + + {B7BE8C7F-0679-4022-81A5-6A314C058429} + Oatc.OpenMI.Sdk.DevelopmentSupport + + + {FC8850E1-3C5A-4B6D-8012-A7411B06F863} + Oatc.OpenMI.Gui.Controls + + + {5ED7C71D-E89A-41F7-8B34-54C0C099412C} + Oatc.OpenMI.Gui.Core + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/OmiEd.ico b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/OmiEd.ico new file mode 100644 index 00000000..5ef2c3dc Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/OmiEd.ico differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/RunBox.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/RunBox.cs new file mode 100644 index 00000000..57a0fc7e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/RunBox.cs @@ -0,0 +1,414 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using Oatc.OpenMI.Gui.Core; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + /// + /// Summary description for RunBox. + /// + public class RunBox : System.Windows.Forms.Form + { + CompositionManager _composition; + + + private System.Windows.Forms.Button buttonStop; + private System.Windows.Forms.ProgressBar progressBarRun; + private System.Windows.Forms.Button buttonClose; + private System.Windows.Forms.Label labelInfo; + private System.ComponentModel.IContainer components; + + private bool _finished; + private bool _started; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Timer timerProgress; + private System.Windows.Forms.ColumnHeader _colType; + private System.Windows.Forms.ColumnHeader _colDescription; + private System.Windows.Forms.ColumnHeader _colSender; + private System.Windows.Forms.ColumnHeader _colSimulationTime; + private System.Windows.Forms.ListView listViewEvents; + private System.Windows.Forms.ColumnHeader _colOrder; + IListener _listener; + + + /// + /// Creates a new instance of RunBox dialog. + /// + public RunBox() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // + // TODO: Add any constructor code after InitializeComponent call + // + } + + + /// + /// Progress bar showing simulation progress. + /// + /// This property is used to initialize ProgressBarListener. + public ProgressBar ProgressBarRun + { + get { return(progressBarRun); } + } + + + /// + /// Listview showing events during simulation. + /// + /// This property is used to initialize ListViewListener. + public ListView ListViewEvents + { + get { return(listViewEvents); } + } + + + /// + /// Timer used to initiate sending of events to UI listeners. + /// + public Timer Timer + { + get { return(timerProgress); } + } + + /// + /// Populates this dialog with specified composition and proxy listener. + /// + /// Composition which simulation is to be run. + /// Listener which is used for monitoring simulation. + /// + /// Simulation is fired after this dialog is showed. That's because if + /// simulation runs in same thread we won't be able to show it another way. + /// We determine whether simulation runs in same thread using + /// CompositionManager.RunInSameThread property. + /// + public void PopuplateDialog( CompositionManager composition, IListener listener ) + { + _composition = composition; + _listener = listener; + _finished = false; + _started = false; + buttonClose.Enabled = !composition.RunInSameThread; + buttonStop.Enabled = !composition.RunInSameThread; + + progressBarRun.Value = 0; + progressBarRun.Enabled = true; + + labelInfo.Text = "Running..."; + + listViewEvents.Items.Clear(); + } + + + private void RunBox_Paint(object sender, System.Windows.Forms.PaintEventArgs e) + { + // this event is fired when this dialog is shown + StartSimulation(); + } + + + /// + /// Method fires simulation if not already running. + /// + private void StartSimulation() + { + // this method is called from repaint handler + + // we start simulation here because now we are sure, + // dialog is already visible on the screen. + // Thats because if running in same thread, we won't be able to show it another way. + if( !_started ) + { + _started = true; + Invalidate(); // next call may block this repaint handler, so another repaint event should be generated + _composition.Run( _listener, _composition.RunInSameThread ); + } + } + + + private void buttonStop_Click(object sender, System.EventArgs e) + { + if( buttonStop.Enabled ) + { + _composition.Stop(); + buttonStop.Enabled = false; + } + } + + + private void progressBarRun_EnabledChanged(object sender, System.EventArgs e) + { + // This event is fired by ProgressBarListener ( called from Proxy(MultiThread)Listener ) + // when simulation finishes + if( !progressBarRun.Enabled ) + { + progressBarRun.Value = progressBarRun.Maximum; + buttonStop.Enabled = false; + buttonClose.Enabled = true; + labelInfo.Text = "Finished..."; + _finished = true; + } + } + + + private void buttonClose_Click(object sender, System.EventArgs e) + { + Close(); + } + + + private void RunBox_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // if running in same thread and simulation hasn't finished yet, + // we cannot close dialog + if( !_finished ) + { + if( _composition.RunInSameThread ) + { + e.Cancel = true; + return; + } + + switch( MessageBox.Show("Simulation hasn't finished yet, do you want to stop it?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) ) + { + case DialogResult.Yes: + buttonStop_Click( null, null ); + break; + + default: + e.Cancel = true; + return; + } + } + + switch( MessageBox.Show("All models have been finished (i.e. Finish() method was called on them). Do you want to reload project?\n\nHint: Some models aren't able to run simulation again unless they are reloaded and maybe they can have\nmalformed properties (like exchange items, model ID, etc...). However, some models can delete result\nfiles of their simulation if you reload them.", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) ) + { + case DialogResult.Yes: + _composition.Reload(); + break; + + default: + break; + } + + // clean-up + listViewEvents.Items.Clear(); + } + + + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem(""); + System.Windows.Forms.ListViewItem listViewItem2 = new System.Windows.Forms.ListViewItem(""); + System.Windows.Forms.ListViewItem listViewItem3 = new System.Windows.Forms.ListViewItem(""); + System.Windows.Forms.ListViewItem listViewItem4 = new System.Windows.Forms.ListViewItem(""); + System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(RunBox)); + this.labelInfo = new System.Windows.Forms.Label(); + this.buttonStop = new System.Windows.Forms.Button(); + this.progressBarRun = new System.Windows.Forms.ProgressBar(); + this.buttonClose = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.timerProgress = new System.Windows.Forms.Timer(this.components); + this.listViewEvents = new System.Windows.Forms.ListView(); + this._colType = new System.Windows.Forms.ColumnHeader(); + this._colDescription = new System.Windows.Forms.ColumnHeader(); + this._colSender = new System.Windows.Forms.ColumnHeader(); + this._colSimulationTime = new System.Windows.Forms.ColumnHeader(); + this._colOrder = new System.Windows.Forms.ColumnHeader(); + this.SuspendLayout(); + // + // labelInfo + // + this.labelInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.labelInfo.Location = new System.Drawing.Point(4, 4); + this.labelInfo.Name = "labelInfo"; + this.labelInfo.Size = new System.Drawing.Size(460, 16); + this.labelInfo.TabIndex = 0; + this.labelInfo.Text = "Running..."; + // + // buttonStop + // + this.buttonStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonStop.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonStop.Location = new System.Drawing.Point(280, 202); + this.buttonStop.Name = "buttonStop"; + this.buttonStop.Size = new System.Drawing.Size(84, 24); + this.buttonStop.TabIndex = 1; + this.buttonStop.Text = "Stop !!!"; + this.buttonStop.Click += new System.EventHandler(this.buttonStop_Click); + // + // progressBarRun + // + this.progressBarRun.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.progressBarRun.Location = new System.Drawing.Point(4, 24); + this.progressBarRun.Maximum = 256; + this.progressBarRun.Name = "progressBarRun"; + this.progressBarRun.Size = new System.Drawing.Size(464, 24); + this.progressBarRun.TabIndex = 2; + this.progressBarRun.EnabledChanged += new System.EventHandler(this.progressBarRun_EnabledChanged); + // + // buttonClose + // + this.buttonClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.Enabled = false; + this.buttonClose.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClose.Location = new System.Drawing.Point(372, 202); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(84, 24); + this.buttonClose.TabIndex = 3; + this.buttonClose.Text = "Close"; + this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label1.Location = new System.Drawing.Point(4, 56); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(464, 16); + this.label1.TabIndex = 5; + this.label1.Text = "Events:"; + // + // listViewEvents + // + this.listViewEvents.AllowColumnReorder = true; + this.listViewEvents.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.listViewEvents.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.listViewEvents.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this._colOrder, + this._colType, + this._colDescription, + this._colSender, + this._colSimulationTime}); + this.listViewEvents.FullRowSelect = true; + this.listViewEvents.GridLines = true; + this.listViewEvents.Items.AddRange(new System.Windows.Forms.ListViewItem[] { + listViewItem1, + listViewItem2, + listViewItem3, + listViewItem4}); + this.listViewEvents.Location = new System.Drawing.Point(4, 76); + this.listViewEvents.Name = "listViewEvents"; + this.listViewEvents.Size = new System.Drawing.Size(464, 116); + this.listViewEvents.TabIndex = 6; + this.listViewEvents.View = System.Windows.Forms.View.Details; + // + // _colType + // + this._colType.Text = "Type"; + this._colType.Width = 82; + // + // _colDescription + // + this._colDescription.Text = "Description"; + this._colDescription.Width = 147; + // + // _colSender + // + this._colSender.Text = "Sender"; + this._colSender.Width = 82; + // + // _colSimulationTime + // + this._colSimulationTime.Text = "Simulation Time"; + this._colSimulationTime.Width = 102; + // + // _colOrder + // + this._colOrder.Text = "Order"; + this._colOrder.Width = 48; + // + // RunBox + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.CancelButton = this.buttonClose; + this.ClientSize = new System.Drawing.Size(472, 233); + this.Controls.Add(this.listViewEvents); + this.Controls.Add(this.label1); + this.Controls.Add(this.buttonClose); + this.Controls.Add(this.progressBarRun); + this.Controls.Add(this.buttonStop); + this.Controls.Add(this.labelInfo); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(440, 200); + this.Name = "RunBox"; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; + this.Text = "Simulation progress"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.RunBox_Closing); + this.Paint += new System.Windows.Forms.PaintEventHandler(this.RunBox_Paint); + this.ResumeLayout(false); + + } + #endregion + + + + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/RunBox.resx b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/RunBox.resx new file mode 100644 index 00000000..24da9bd9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/RunBox.resx @@ -0,0 +1,638 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 17, 17 + + + Private + + + False + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + False + + + (Default) + + + False + + + False + + + 4, 4 + + + True + + + RunBox + + + 80 + + + True + + + Private + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/RunProperties.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/RunProperties.cs new file mode 100644 index 00000000..62809ac7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/RunProperties.cs @@ -0,0 +1,672 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Diagnostics; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Gui.Core; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + /// + /// Summary description for RunProperties. + /// + public class RunProperties : System.Windows.Forms.Form + { + #region Window controls + + private System.Windows.Forms.CheckBox cbEventTypeWarning; + private System.Windows.Forms.CheckBox cbEventTypeValOutOfRange; + private System.Windows.Forms.CheckBox cbEventTypeTimeStepProgress; + private System.Windows.Forms.CheckBox cbEventTypeTargetBefore; + private System.Windows.Forms.CheckBox cbEventTypeTargetAfter; + private System.Windows.Forms.CheckBox cbEventTypeSourceBefore; + private System.Windows.Forms.CheckBox cbEventTypeSourceAfter; + private System.Windows.Forms.CheckBox cbEventTypeOther; + private System.Windows.Forms.CheckBox cbEventTypeInformative; + private System.Windows.Forms.CheckBox cbEventTypeGlobalProgress; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.CheckBox cbEventTypeDataChanged; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button buttonTimeLatestOverlapping; + private System.Windows.Forms.Button buttonRun; + private System.Windows.Forms.TextBox textTriggerInvokeTime; + private System.Windows.Forms.Button buttonClose; + private System.Windows.Forms.TextBox textLogToFile; + private System.Windows.Forms.CheckBox checkBoxLogToFile; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + #endregion + + CheckBox[] checkboxesEventTypes; + CompositionManager _composition; + private System.Windows.Forms.Button buttonSetAll; + private System.Windows.Forms.Button buttonClearAll; + private System.Windows.Forms.Button buttonBrowseLogFile; + private System.Windows.Forms.CheckBox checkBoxNoMultithreading; + private System.Windows.Forms.CheckBox checkBoxEventsToListbox; + bool runIt; + + /// + /// Creates a new instance of RunProperties dialog. + /// + public RunProperties() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + checkboxesEventTypes = new CheckBox[ (int)EventType.NUM_OF_EVENT_TYPES ]; + checkboxesEventTypes[0] = cbEventTypeWarning; + checkboxesEventTypes[1] = cbEventTypeInformative; + checkboxesEventTypes[2] = cbEventTypeValOutOfRange; + checkboxesEventTypes[3] = cbEventTypeGlobalProgress; + checkboxesEventTypes[4] = cbEventTypeTimeStepProgress; + checkboxesEventTypes[5] = cbEventTypeDataChanged; + checkboxesEventTypes[6] = cbEventTypeTargetBefore; + checkboxesEventTypes[7] = cbEventTypeSourceAfter; + checkboxesEventTypes[8] = cbEventTypeSourceBefore; + checkboxesEventTypes[9] = cbEventTypeTargetAfter; + checkboxesEventTypes[10] = cbEventTypeOther; + + this.DialogResult = DialogResult.OK; + } + + + /// + /// Populates this dialog with specific composition. + /// + /// Composition to be used for dialog. + /// + /// If true, the CompositionManager.TriggerInvokeTime + /// is set to latest overlapping time of time horizons of all models. Typically this is used + /// when this dialog is showed for the first time. + public void PopulateDialog( CompositionManager composition, bool initialTriggerInvokeTime ) + { + _composition = composition; + + Debug.Assert( _composition.HasTrigger() ); + Debug.Assert( _composition.Models.Count > 1 ); + + // fill dialog according to composition + if( _composition.LogToFile == null ) + { + checkBoxLogToFile.Checked = false; + textLogToFile.Text = "CompositionRun.log"; + } + else + { + checkBoxLogToFile.Checked = true; + textLogToFile.Text = _composition.LogToFile; + } + + for( int i=0; i<(int)EventType.NUM_OF_EVENT_TYPES; i++ ) + checkboxesEventTypes[i].Checked = _composition.ListenedEventTypes[i]; + + if( initialTriggerInvokeTime ) + { + buttonTimeLatestOverlapping_Click(null, null); + } + else + { + textTriggerInvokeTime.Text = _composition.TriggerInvokeTime.ToString( ); + } + + checkBoxEventsToListbox.Checked = _composition.ShowEventsInListbox; + + checkBoxNoMultithreading.Checked = _composition.RunInSameThread; + + runIt = false; + } + + + private void SaveStateToComposition() + { + _composition.LogToFile = checkBoxLogToFile.Checked ? textLogToFile.Text : null; + + for( int i=0; i<(int)EventType.NUM_OF_EVENT_TYPES; i++ ) + if( _composition.ListenedEventTypes[i] != checkboxesEventTypes[i].Checked ) + { + _composition.ListenedEventTypes[i] = checkboxesEventTypes[i].Checked; + _composition.ShouldBeSaved = true; + } + + _composition.TriggerInvokeTime = DateTime.Parse( textTriggerInvokeTime.Text ); + + _composition.RunInSameThread = checkBoxNoMultithreading.Checked; + + _composition.ShowEventsInListbox = checkBoxEventsToListbox.Checked; + } + + + private bool CheckControlsFormat() + { + // check format of date and time + try + { + DateTime.Parse(textTriggerInvokeTime.Text); + } + catch( FormatException ) + { + switch (MessageBox.Show("Text you have entered is not valid date and time, please use format specific for " + Application.CurrentCulture.Name + " culture, i.e. " + Application.CurrentCulture.DateTimeFormat.ShortDatePattern + " " + Application.CurrentCulture.DateTimeFormat.LongTimePattern + ", for example " + System.DateTime.Now.ToShortDateString() + " " + System.DateTime.Now.ToLongTimeString(), "Invalid format", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1)) + { + case DialogResult.Cancel: + textTriggerInvokeTime.Text = _composition.TriggerInvokeTime.ToString(); + break; + default: + break; + } + textTriggerInvokeTime.Focus(); + return( false ); + } + + // check log filename + if( checkBoxLogToFile.Checked ) + if( textLogToFile.Text==null || textLogToFile.Text=="" ) + { + switch( MessageBox.Show("Text you have entered is not file name.", "Invalid format", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1) ) + { + case DialogResult.Cancel: + checkBoxLogToFile.Checked = false; + break; + default: + break; + } + textLogToFile.Focus(); + return( false ); + } + + + return( true ); + } + + + private void checkBoxLogToFile_CheckedChanged(object sender, System.EventArgs e) + { + textLogToFile.Enabled = checkBoxLogToFile.Checked; + buttonBrowseLogFile.Enabled = checkBoxLogToFile.Checked; + } + + + private void RunProperties_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + if( CheckControlsFormat() ) + { + SaveStateToComposition(); + DialogResult = runIt ? DialogResult.OK : DialogResult.No; + } + else + { + e.Cancel = true; + } + } + + + private void textTriggerInvokeTime_Leave(object sender, System.EventArgs e) + { + CheckControlsFormat(); + } + + + private void buttonClose_Click(object sender, System.EventArgs e) + { + Close(); + } + + + private void buttonRun_Click(object sender, System.EventArgs e) + { + runIt = true; + Close(); + } + + + private void buttonTimeLatestOverlapping_Click(object sender, System.EventArgs e) + { + double start = double.MinValue, + end = double.MaxValue; + + foreach( UIModel model in _composition.Models ) + { + start = Math.Max( model.LinkableComponent.TimeHorizon.Start.ModifiedJulianDay, start ); + end = Math.Min( model.LinkableComponent.TimeHorizon.End.ModifiedJulianDay, end ); + } + + if( start > end ) + { + MessageBox.Show("Model timehorizons don't overlap.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning ); + } + else + { + textTriggerInvokeTime.Text = CalendarConverter.ModifiedJulian2Gregorian( end ).ToString(); + } + + } + + + private void buttonSetAll_Click(object sender, System.EventArgs e) + { + foreach( CheckBox checkBox in checkboxesEventTypes ) + checkBox.Checked = true; + } + + + private void buttonClearAll_Click(object sender, System.EventArgs e) + { + foreach( CheckBox checkBox in checkboxesEventTypes ) + checkBox.Checked = false; + } + + + private void buttonBrowseLogFile_Click(object sender, System.EventArgs e) + { + SaveFileDialog dlgFile = new SaveFileDialog(); + dlgFile.Filter = "Run log (*.log)|*.log|All files|*.*"; + dlgFile.ValidateNames = true; + dlgFile.Title = "Select log file..."; + dlgFile.AddExtension = true; + dlgFile.OverwritePrompt = true; + + if( textLogToFile.Text.Length>0 ) + dlgFile.FileName = textLogToFile.Text; + + if( dlgFile.ShowDialog() == DialogResult.OK ) + textLogToFile.Text = dlgFile.FileName; + + dlgFile.Dispose(); + } + + #region .NET generated + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(RunProperties)); + this.cbEventTypeWarning = new System.Windows.Forms.CheckBox(); + this.cbEventTypeValOutOfRange = new System.Windows.Forms.CheckBox(); + this.cbEventTypeTimeStepProgress = new System.Windows.Forms.CheckBox(); + this.cbEventTypeTargetBefore = new System.Windows.Forms.CheckBox(); + this.cbEventTypeTargetAfter = new System.Windows.Forms.CheckBox(); + this.cbEventTypeSourceBefore = new System.Windows.Forms.CheckBox(); + this.cbEventTypeSourceAfter = new System.Windows.Forms.CheckBox(); + this.cbEventTypeOther = new System.Windows.Forms.CheckBox(); + this.cbEventTypeInformative = new System.Windows.Forms.CheckBox(); + this.cbEventTypeGlobalProgress = new System.Windows.Forms.CheckBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.buttonClearAll = new System.Windows.Forms.Button(); + this.cbEventTypeDataChanged = new System.Windows.Forms.CheckBox(); + this.buttonSetAll = new System.Windows.Forms.Button(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.checkBoxEventsToListbox = new System.Windows.Forms.CheckBox(); + this.checkBoxNoMultithreading = new System.Windows.Forms.CheckBox(); + this.textTriggerInvokeTime = new System.Windows.Forms.TextBox(); + this.buttonTimeLatestOverlapping = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.buttonBrowseLogFile = new System.Windows.Forms.Button(); + this.textLogToFile = new System.Windows.Forms.TextBox(); + this.checkBoxLogToFile = new System.Windows.Forms.CheckBox(); + this.buttonRun = new System.Windows.Forms.Button(); + this.buttonClose = new System.Windows.Forms.Button(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // cbEventTypeWarning + // + this.cbEventTypeWarning.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeWarning.Location = new System.Drawing.Point(16, 36); + this.cbEventTypeWarning.Name = "cbEventTypeWarning"; + this.cbEventTypeWarning.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeWarning.TabIndex = 23; + this.cbEventTypeWarning.Text = "Warning"; + // + // cbEventTypeValOutOfRange + // + this.cbEventTypeValOutOfRange.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeValOutOfRange.Location = new System.Drawing.Point(16, 84); + this.cbEventTypeValOutOfRange.Name = "cbEventTypeValOutOfRange"; + this.cbEventTypeValOutOfRange.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeValOutOfRange.TabIndex = 22; + this.cbEventTypeValOutOfRange.Text = "Value out of range"; + // + // cbEventTypeTimeStepProgress + // + this.cbEventTypeTimeStepProgress.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeTimeStepProgress.Location = new System.Drawing.Point(16, 52); + this.cbEventTypeTimeStepProgress.Name = "cbEventTypeTimeStepProgress"; + this.cbEventTypeTimeStepProgress.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeTimeStepProgress.TabIndex = 21; + this.cbEventTypeTimeStepProgress.Text = "Time step progress"; + // + // cbEventTypeTargetBefore + // + this.cbEventTypeTargetBefore.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeTargetBefore.Location = new System.Drawing.Point(144, 68); + this.cbEventTypeTargetBefore.Name = "cbEventTypeTargetBefore"; + this.cbEventTypeTargetBefore.Size = new System.Drawing.Size(192, 20); + this.cbEventTypeTargetBefore.TabIndex = 20; + this.cbEventTypeTargetBefore.Text = "Target before GetValues() call"; + // + // cbEventTypeTargetAfter + // + this.cbEventTypeTargetAfter.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeTargetAfter.Location = new System.Drawing.Point(144, 52); + this.cbEventTypeTargetAfter.Name = "cbEventTypeTargetAfter"; + this.cbEventTypeTargetAfter.Size = new System.Drawing.Size(192, 20); + this.cbEventTypeTargetAfter.TabIndex = 19; + this.cbEventTypeTargetAfter.Text = "Target after GetValues() return"; + // + // cbEventTypeSourceBefore + // + this.cbEventTypeSourceBefore.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeSourceBefore.Location = new System.Drawing.Point(144, 36); + this.cbEventTypeSourceBefore.Name = "cbEventTypeSourceBefore"; + this.cbEventTypeSourceBefore.Size = new System.Drawing.Size(192, 20); + this.cbEventTypeSourceBefore.TabIndex = 18; + this.cbEventTypeSourceBefore.Text = "Source before GetValues() return"; + // + // cbEventTypeSourceAfter + // + this.cbEventTypeSourceAfter.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeSourceAfter.Location = new System.Drawing.Point(144, 20); + this.cbEventTypeSourceAfter.Name = "cbEventTypeSourceAfter"; + this.cbEventTypeSourceAfter.Size = new System.Drawing.Size(192, 20); + this.cbEventTypeSourceAfter.TabIndex = 17; + this.cbEventTypeSourceAfter.Text = "Source after GetValues() call"; + // + // cbEventTypeOther + // + this.cbEventTypeOther.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeOther.Location = new System.Drawing.Point(144, 84); + this.cbEventTypeOther.Name = "cbEventTypeOther"; + this.cbEventTypeOther.Size = new System.Drawing.Size(60, 20); + this.cbEventTypeOther.TabIndex = 16; + this.cbEventTypeOther.Text = "Other"; + // + // cbEventTypeInformative + // + this.cbEventTypeInformative.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeInformative.Location = new System.Drawing.Point(16, 20); + this.cbEventTypeInformative.Name = "cbEventTypeInformative"; + this.cbEventTypeInformative.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeInformative.TabIndex = 15; + this.cbEventTypeInformative.Text = "Informative"; + // + // cbEventTypeGlobalProgress + // + this.cbEventTypeGlobalProgress.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeGlobalProgress.Location = new System.Drawing.Point(16, 68); + this.cbEventTypeGlobalProgress.Name = "cbEventTypeGlobalProgress"; + this.cbEventTypeGlobalProgress.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeGlobalProgress.TabIndex = 14; + this.cbEventTypeGlobalProgress.Text = "Global progress"; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.buttonClearAll); + this.groupBox1.Controls.Add(this.cbEventTypeDataChanged); + this.groupBox1.Controls.Add(this.buttonSetAll); + this.groupBox1.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.groupBox1.Location = new System.Drawing.Point(4, 4); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(348, 124); + this.groupBox1.TabIndex = 24; + this.groupBox1.TabStop = false; + this.groupBox1.Text = " Events listened during calculation"; + // + // buttonClearAll + // + this.buttonClearAll.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClearAll.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.buttonClearAll.Location = new System.Drawing.Point(276, 96); + this.buttonClearAll.Name = "buttonClearAll"; + this.buttonClearAll.Size = new System.Drawing.Size(64, 20); + this.buttonClearAll.TabIndex = 29; + this.buttonClearAll.Text = "Clear all"; + this.buttonClearAll.Click += new System.EventHandler(this.buttonClearAll_Click); + // + // cbEventTypeDataChanged + // + this.cbEventTypeDataChanged.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.cbEventTypeDataChanged.Location = new System.Drawing.Point(12, 96); + this.cbEventTypeDataChanged.Name = "cbEventTypeDataChanged"; + this.cbEventTypeDataChanged.Size = new System.Drawing.Size(120, 20); + this.cbEventTypeDataChanged.TabIndex = 0; + this.cbEventTypeDataChanged.Text = "Data changed"; + // + // buttonSetAll + // + this.buttonSetAll.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonSetAll.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.buttonSetAll.Location = new System.Drawing.Point(212, 96); + this.buttonSetAll.Name = "buttonSetAll"; + this.buttonSetAll.Size = new System.Drawing.Size(60, 20); + this.buttonSetAll.TabIndex = 28; + this.buttonSetAll.Text = "Set all"; + this.buttonSetAll.Click += new System.EventHandler(this.buttonSetAll_Click); + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.checkBoxEventsToListbox); + this.groupBox2.Controls.Add(this.checkBoxNoMultithreading); + this.groupBox2.Controls.Add(this.textTriggerInvokeTime); + this.groupBox2.Controls.Add(this.buttonTimeLatestOverlapping); + this.groupBox2.Controls.Add(this.label1); + this.groupBox2.Controls.Add(this.buttonBrowseLogFile); + this.groupBox2.Controls.Add(this.textLogToFile); + this.groupBox2.Controls.Add(this.checkBoxLogToFile); + this.groupBox2.Location = new System.Drawing.Point(4, 132); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(348, 108); + this.groupBox2.TabIndex = 25; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Run properties"; + // + // checkBoxEventsToListbox + // + this.checkBoxEventsToListbox.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.checkBoxEventsToListbox.Location = new System.Drawing.Point(12, 64); + this.checkBoxEventsToListbox.Name = "checkBoxEventsToListbox"; + this.checkBoxEventsToListbox.Size = new System.Drawing.Size(328, 16); + this.checkBoxEventsToListbox.TabIndex = 29; + this.checkBoxEventsToListbox.Text = "Show events in list-box"; + // + // checkBoxNoMultithreading + // + this.checkBoxNoMultithreading.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.checkBoxNoMultithreading.Location = new System.Drawing.Point(12, 84); + this.checkBoxNoMultithreading.Name = "checkBoxNoMultithreading"; + this.checkBoxNoMultithreading.Size = new System.Drawing.Size(328, 16); + this.checkBoxNoMultithreading.TabIndex = 28; + this.checkBoxNoMultithreading.Text = "Don\'t use separate thread"; + // + // textTriggerInvokeTime + // + this.textTriggerInvokeTime.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.textTriggerInvokeTime.Location = new System.Drawing.Point(96, 16); + this.textTriggerInvokeTime.MaxLength = 30; + this.textTriggerInvokeTime.Name = "textTriggerInvokeTime"; + this.textTriggerInvokeTime.Size = new System.Drawing.Size(132, 20); + this.textTriggerInvokeTime.TabIndex = 3; + this.textTriggerInvokeTime.Text = "12/31/1999 11:59:59 PM"; + this.textTriggerInvokeTime.Leave += new System.EventHandler(this.textTriggerInvokeTime_Leave); + // + // buttonTimeLatestOverlapping + // + this.buttonTimeLatestOverlapping.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonTimeLatestOverlapping.Location = new System.Drawing.Point(232, 16); + this.buttonTimeLatestOverlapping.Name = "buttonTimeLatestOverlapping"; + this.buttonTimeLatestOverlapping.Size = new System.Drawing.Size(108, 20); + this.buttonTimeLatestOverlapping.TabIndex = 1; + this.buttonTimeLatestOverlapping.Text = "Latest overlapping"; + this.buttonTimeLatestOverlapping.Click += new System.EventHandler(this.buttonTimeLatestOverlapping_Click); + // + // label1 + // + this.label1.Location = new System.Drawing.Point(8, 20); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(88, 16); + this.label1.TabIndex = 0; + this.label1.Text = "Invoke trigger at:"; + // + // buttonBrowseLogFile + // + this.buttonBrowseLogFile.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonBrowseLogFile.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.buttonBrowseLogFile.Location = new System.Drawing.Point(312, 40); + this.buttonBrowseLogFile.Name = "buttonBrowseLogFile"; + this.buttonBrowseLogFile.Size = new System.Drawing.Size(28, 20); + this.buttonBrowseLogFile.TabIndex = 4; + this.buttonBrowseLogFile.Text = "..."; + this.buttonBrowseLogFile.Click += new System.EventHandler(this.buttonBrowseLogFile_Click); + // + // textLogToFile + // + this.textLogToFile.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.textLogToFile.Enabled = false; + this.textLogToFile.Location = new System.Drawing.Point(96, 40); + this.textLogToFile.Name = "textLogToFile"; + this.textLogToFile.Size = new System.Drawing.Size(212, 20); + this.textLogToFile.TabIndex = 27; + this.textLogToFile.Text = "CompositionRun.log"; + // + // checkBoxLogToFile + // + this.checkBoxLogToFile.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.checkBoxLogToFile.Location = new System.Drawing.Point(12, 40); + this.checkBoxLogToFile.Name = "checkBoxLogToFile"; + this.checkBoxLogToFile.Size = new System.Drawing.Size(80, 20); + this.checkBoxLogToFile.TabIndex = 1; + this.checkBoxLogToFile.Text = "Log to file:"; + this.checkBoxLogToFile.CheckedChanged += new System.EventHandler(this.checkBoxLogToFile_CheckedChanged); + // + // buttonRun + // + this.buttonRun.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonRun.Location = new System.Drawing.Point(168, 248); + this.buttonRun.Name = "buttonRun"; + this.buttonRun.Size = new System.Drawing.Size(84, 24); + this.buttonRun.TabIndex = 4; + this.buttonRun.Text = "RUN !!!"; + this.buttonRun.Click += new System.EventHandler(this.buttonRun_Click); + // + // buttonClose + // + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClose.Location = new System.Drawing.Point(260, 248); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(84, 24); + this.buttonClose.TabIndex = 28; + this.buttonClose.Text = "Close"; + this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); + // + // RunProperties + // + this.AcceptButton = this.buttonRun; + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.CancelButton = this.buttonClose; + this.ClientSize = new System.Drawing.Size(358, 279); + this.Controls.Add(this.buttonClose); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.cbEventTypeWarning); + this.Controls.Add(this.cbEventTypeValOutOfRange); + this.Controls.Add(this.cbEventTypeTimeStepProgress); + this.Controls.Add(this.cbEventTypeTargetBefore); + this.Controls.Add(this.cbEventTypeTargetAfter); + this.Controls.Add(this.cbEventTypeSourceBefore); + this.Controls.Add(this.cbEventTypeSourceAfter); + this.Controls.Add(this.cbEventTypeOther); + this.Controls.Add(this.cbEventTypeInformative); + this.Controls.Add(this.cbEventTypeGlobalProgress); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.buttonRun); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "RunProperties"; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.Text = "Run properties"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.RunProperties_Closing); + this.Load += new System.EventHandler(this.RunProperties_Load); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + private void RunProperties_Load(object sender, System.EventArgs e) + { + + } + + + + + + + + + + #endregion + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/RunProperties.resx b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/RunProperties.resx new file mode 100644 index 00000000..d49e8289 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/RunProperties.resx @@ -0,0 +1,788 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 4, 4 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + RunProperties + + + (Default) + + + False + + + False + + + 4, 4 + + + True + + + 80 + + + True + + + Private + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/Source.cur b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/Source.cur new file mode 100644 index 00000000..fb76976b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/Source.cur differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/Target.cur b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/Target.cur new file mode 100644 index 00000000..b121229d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/ConfigurationEditor/Target.cur differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/AssemblyInfo.cs new file mode 100644 index 00000000..1fbb1a62 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI GUI Controls Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4 Alpha 3")] +[assembly: AssemblyCopyright("GNU Library or Lesser General Public License (LGPL), MIT License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/ElementSetViewer.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/ElementSetViewer.cs new file mode 100644 index 00000000..ba7d5826 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/ElementSetViewer.cs @@ -0,0 +1,665 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Spatial; +using Oatc.OpenMI.Gui.Core; + +namespace Oatc.OpenMI.Gui.ConfigurationEditor +{ + /// + /// Window for ElementSetViewer tool. + /// + public class ElementSetViewer : System.Windows.Forms.Form + { + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + private System.Windows.Forms.Panel panelViewer; + private System.Windows.Forms.Button buttonClose; + + + ArrayList _elementSets; + double _maxX; + double _maxY; + double _minX; + double _minY; + double _scale; + Font _font; + int _margin; + float _lineWidth; + private System.Windows.Forms.NumericUpDown numericMarginWidth; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.NumericUpDown numericLineWidth; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label11; + + + int _penIndex; + private Bitmap _backBuffer; + + /// + /// Creates a new instance of ElementSetViewer dialog. + /// + public ElementSetViewer() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + //this.SetStyle( ControlStyles.AllPaintingInWmPaint | + // ControlStyles.ContainerControl | + // ControlStyles.UserPaint | + // ControlStyles.OptimizedDoubleBuffer, true); + + + // Workarround to handle a bug from Microsoft + // A bug, see http://dturini.blogspot.com/2004_08_01_dturini_archive.html + // or http://support.microsoft.com/default.aspx?scid=KB;EN-US;q326219#appliesto + try + { + _font = new Font("Arial", 11, FontStyle.Bold); + } + catch (ArithmeticException) + { + Utils.ResetFPU(); + _font = new Font("Arial", 11, FontStyle.Bold); + } + } + + + + private Pen GetNextPen(float width) + { + Color color; + switch( _penIndex ) + { + case 0: color = Color.Blue; break; + case 1: color = Color.Red; break; + case 2: color = Color.Green; break; + default: + Random rand = new Random(12345); + color = Color.FromArgb( rand.Next(255), rand.Next(255), rand.Next(255) ); + break; + } + + Pen pen; + if( width<0 ) + pen = new Pen( color ); + else + pen = new Pen( color, width ); + + _penIndex++; + + return( pen ); + } + + private Pen GetNextPen() + { + return( GetNextPen(-1) ); + } + private void InitPenGetter() + { + _penIndex = 0; + } + + + /// + /// Populates dialog with element sets. + /// + /// ArrayList of element sets, ie. + /// IElementSet objects. + public void PopulateDialog( ArrayList elementSets ) + { + _elementSets = elementSets; + + _maxX = double.MinValue; + _maxY = double.MinValue; + _minX = double.MaxValue; + _minY = double.MaxValue; + _scale = 1; + _margin = 10; + _lineWidth = 2; + + // find borders + foreach (IElementSet elementSet in _elementSets) + for (int i = 0; i < elementSet.ElementCount; i++) + for (int n = 0; n < elementSet.GetVertexCount(i); n++) + { + if (_maxX < elementSet.GetXCoordinate(i, n)) + _maxX = elementSet.GetXCoordinate(i, n); + if (_maxY < elementSet.GetYCoordinate(i, n)) + _maxY = elementSet.GetYCoordinate(i, n); + if (_minX > elementSet.GetXCoordinate(i, n)) + _minX = elementSet.GetXCoordinate(i, n); + if (_minY > elementSet.GetYCoordinate(i, n)) + _minY = elementSet.GetYCoordinate(i, n); + } + } + private void panelViewer_Paint(object sender, System.Windows.Forms.PaintEventArgs e) + { + Graphics g; + Bitmap _backBuffer = null; + + //create image buffer + _backBuffer = new Bitmap(e.ClipRectangle.Width, e.ClipRectangle.Height, e.Graphics); + + //create a graphic from the backbuffer + g = Graphics.FromImage(_backBuffer); + g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; + int upperx = e.ClipRectangle.X; + int lefty = e.ClipRectangle.Y; + + // get values from numericUpDowns + _margin = (int)numericMarginWidth.Value; + _lineWidth = (float)numericLineWidth.Value - 1; + + + // calculate scale + double a = double.MaxValue; + double b = double.MaxValue; + if (_maxY > _minY) + a = (panelViewer.ClientSize.Height - 2*_margin) / (_maxY - _minY); + if (_maxX > _minX) + b = (panelViewer.ClientSize.Width - 2*_margin) / (_maxX - _minX); + _scale = Math.Min(a,b); + + InitPenGetter(); + + + int x1,x2,y1,y2; + Pen pen; + + int idBasedCount = 0; + + // draw element sets + foreach (IElementSet elementSet in _elementSets) + { + switch (elementSet.ElementType) + { + case ElementType.IDBased: + pen = GetNextPen(); + e.Graphics.DrawString("ID: " + elementSet.ID, _font, pen.Brush, _margin, _margin + idBasedCount * 20); + idBasedCount++; + break; + + + case ElementType.XYPoint: + pen = GetNextPen(); + for (int i = 0; i < elementSet.ElementCount; i++) + { + x1 = TransX(elementSet.GetXCoordinate(i, 0)); + y1 = TransY(elementSet.GetYCoordinate(i, 0)); + g.FillEllipse(pen.Brush, x1, y1, 5, 5); + } + break; + + case ElementType.XYPolygon: + pen = GetNextPen(_lineWidth); + for (int i = 0; i < elementSet.ElementCount; i++) + { + for (int n = 0; n < elementSet.GetVertexCount(i); n++) + { + if (n == 0) + { + x1 = TransX(elementSet.GetXCoordinate(i, elementSet.GetVertexCount(i) - 1)); + y1 = TransY(elementSet.GetYCoordinate(i, elementSet.GetVertexCount(i) - 1)); + x2 = TransX(elementSet.GetXCoordinate(i, 0)); + y2 = TransY(elementSet.GetYCoordinate(i, 0)); + } + else + { + x1 = TransX(elementSet.GetXCoordinate(i, n - 1)); + y1 = TransY(elementSet.GetYCoordinate(i, n - 1)); + x2 = TransX(elementSet.GetXCoordinate(i, n)); + y2 = TransY(elementSet.GetYCoordinate(i, n)); + } + g.DrawLine(pen, x1, y1, x2, y2); + } + } + + break; + + case ElementType.XYPolyLine: + case ElementType.XYLine: + pen = GetNextPen(_lineWidth); + + for (int i = 0; i < elementSet.ElementCount; i++) + { + for (int n = 1; n < elementSet.GetVertexCount(i); n++) + { + + x1 = TransX(elementSet.GetXCoordinate(i, n - 1)); + y1 = TransY(elementSet.GetYCoordinate(i, n - 1)); + x2 = TransX(elementSet.GetXCoordinate(i, n)); + y2 = TransY(elementSet.GetYCoordinate(i, n)); + + g.DrawLine(pen, x1, y1, x2, y2); + + } + } + + break; + } + } + + //copy backbuffer to screen + e.Graphics.DrawImageUnscaled(_backBuffer, upperx, lefty); + + //dispose of the graphic + g.Dispose(); + } + + private int TransX(double x) + { + int x1 = (int)((x - _minX) * _scale) + _margin; + + return x1; + } + + private int TransY(double y) + { + int y1 = (int)((y - _minY) * _scale); + y1 = panelViewer.ClientSize.Height - y1 - _margin ; + + return y1; + } + + private void buttonClose_Click(object sender, System.EventArgs e) + { + Close(); + } + + private void panelViewer_Resize(object sender, System.EventArgs e) + { + panelViewer.Invalidate(); + } + + + + #region .NET generated code + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(ElementSetViewer)); + this.panelViewer = new System.Windows.Forms.Panel(); + this.buttonClose = new System.Windows.Forms.Button(); + this.numericMarginWidth = new System.Windows.Forms.NumericUpDown(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.numericLineWidth = new System.Windows.Forms.NumericUpDown(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.numericMarginWidth)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericLineWidth)).BeginInit(); + this.SuspendLayout(); + // + // panelViewer + // + this.panelViewer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panelViewer.BackColor = System.Drawing.Color.White; + this.panelViewer.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panelViewer.Location = new System.Drawing.Point(4, 4); + this.panelViewer.Name = "panelViewer"; + this.panelViewer.Size = new System.Drawing.Size(648, 368); + this.panelViewer.TabIndex = 0; + this.panelViewer.Resize += new System.EventHandler(this.panelViewer_Resize); + this.panelViewer.Paint += new System.Windows.Forms.PaintEventHandler(this.panelViewer_Paint); + this.panelViewer.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panelViewer_MouseMove); + + // + // buttonClose + // + this.buttonClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonClose.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.buttonClose.Location = new System.Drawing.Point(544, 404); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.Size = new System.Drawing.Size(92, 28); + this.buttonClose.TabIndex = 1; + this.buttonClose.Text = "Close"; + this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); + // + // numericMarginWidth + // + this.numericMarginWidth.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.numericMarginWidth.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.numericMarginWidth.Increment = new System.Decimal(new int[] { + 2, + 0, + 0, + 0}); + this.numericMarginWidth.Location = new System.Drawing.Point(92, 416); + this.numericMarginWidth.Name = "numericMarginWidth"; + this.numericMarginWidth.Size = new System.Drawing.Size(52, 20); + this.numericMarginWidth.TabIndex = 2; + this.numericMarginWidth.Value = new System.Decimal(new int[] { + 10, + 0, + 0, + 0}); + this.numericMarginWidth.ValueChanged += new System.EventHandler(this.panelViewer_Resize); + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label1.Location = new System.Drawing.Point(8, 416); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(76, 20); + this.label1.TabIndex = 3; + this.label1.Text = "Margin width:"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label2 + // + this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label2.Location = new System.Drawing.Point(8, 388); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(76, 20); + this.label2.TabIndex = 5; + this.label2.Text = "Line width:"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // numericLineWidth + // + this.numericLineWidth.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.numericLineWidth.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.numericLineWidth.DecimalPlaces = 1; + this.numericLineWidth.Increment = new System.Decimal(new int[] { + 25, + 0, + 0, + 131072}); + this.numericLineWidth.Location = new System.Drawing.Point(92, 388); + this.numericLineWidth.Minimum = new System.Decimal(new int[] { + 25, + 0, + 0, + 131072}); + this.numericLineWidth.Name = "numericLineWidth"; + this.numericLineWidth.Size = new System.Drawing.Size(52, 20); + this.numericLineWidth.TabIndex = 4; + this.numericLineWidth.Value = new System.Decimal(new int[] { + 2, + 0, + 0, + 0}); + this.numericLineWidth.ValueChanged += new System.EventHandler(this.panelViewer_Resize); + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label3.Location = new System.Drawing.Point(504, 380); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(144, 16); + this.label3.TabIndex = 6; + // + // label4 + // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label4.Location = new System.Drawing.Point(160, 400); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(160, 16); + this.label4.TabIndex = 7; + // + // label5 + // + this.label5.Location = new System.Drawing.Point(0, 0); + this.label5.Name = "label5"; + this.label5.TabIndex = 0; + // + // label6 + // + this.label6.Location = new System.Drawing.Point(0, 0); + this.label6.Name = "label6"; + this.label6.TabIndex = 0; + // + // label7 + // + this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label7.BackColor = System.Drawing.SystemColors.ActiveBorder; + this.label7.Location = new System.Drawing.Point(160, 380); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(160, 16); + this.label7.TabIndex = 8; + // + // label8 + // + this.label8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label8.Location = new System.Drawing.Point(160, 420); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(160, 16); + this.label8.TabIndex = 9; + // + // label9 + // + this.label9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label9.Location = new System.Drawing.Point(328, 380); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(168, 16); + this.label9.TabIndex = 10; + // + // label10 + // + this.label10.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label10.Location = new System.Drawing.Point(328, 400); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(168, 16); + this.label10.TabIndex = 11; + // + // label11 + // + this.label11.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label11.Location = new System.Drawing.Point(328, 420); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(168, 16); + this.label11.TabIndex = 12; + // + // ElementSetViewer + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.CancelButton = this.buttonClose; + this.ClientSize = new System.Drawing.Size(656, 441); + this.Controls.Add(this.label11); + this.Controls.Add(this.label10); + this.Controls.Add(this.label9); + this.Controls.Add(this.label8); + this.Controls.Add(this.label7); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.numericLineWidth); + this.Controls.Add(this.label1); + this.Controls.Add(this.numericMarginWidth); + this.Controls.Add(this.buttonClose); + this.Controls.Add(this.panelViewer); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(664, 468); + this.Name = "ElementSetViewer"; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; + this.Text = "ElementSetViewer"; + ((System.ComponentModel.ISupportInitialize)(this.numericMarginWidth)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericLineWidth)).EndInit(); + this.ResumeLayout(false); + + + this.ResizeEnd += new EventHandler(ElementSetViewer_ResizeEnd); + } + #endregion + + + + #endregion + + /// + /// Forces the element set viewer to redraw. This is triggered after the form has stopped moving. + /// + /// + /// + private void ElementSetViewer_ResizeEnd(object sender, EventArgs e) + { + //refresh panelViewer + panelViewer.Invalidate(); + } + + private void panelViewer_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) + { + // write x and y coordinates + double x = ((e.X - _margin) / _scale) + _minX; + double y = _minY - (e.Y + _margin - panelViewer.ClientSize.Height) / _scale; + if( _scale != double.MaxValue ) + this.label3.Text = "(" + x.ToString("F3") +", " + y.ToString("F3") + ")"; + else + this.label3.Text = ""; + + + // write elementSet ID and element index + this.label4.Text = " "; + this.label7.Text = " "; + this.label8.Text = " "; + this.label9.Text = " "; + this.label10.Text = " "; + this.label11.Text = " "; + + for (int elementSetNumber = 0; elementSetNumber < this._elementSets.Count; elementSetNumber++) + { + string elementID = " "; + int elementIndex = -9; + double distance = 10e30; + + IElementSet elementSet = (IElementSet) _elementSets[elementSetNumber]; + + if (elementSetNumber == 0) + { + this.label7.Text = elementSet.ID.Substring(0, Math.Min(20, elementSet.ID.Length)); + } + if (elementSetNumber == 1) + { + this.label9.Text = elementSet.ID.Substring(0, Math.Min(20, elementSet.ID.Length)); + } + + for (int index = 0; index < elementSet.ElementCount; index++) + { + if (((IElementSet) _elementSets[elementSetNumber]).ElementType == ElementType.XYPolygon) + { + XYPolygon xyPolygon = new XYPolygon(); + + for (int i = 0; i < elementSet.GetVertexCount(index); i++) + { + xyPolygon.Points.Add(new XYPoint(elementSet.GetXCoordinate(index,i), elementSet.GetYCoordinate(index,i))); + } + + if (XYGeometryTools.IsPointInPolygon(x,y,xyPolygon)) + { + elementID = elementSet.GetElementID(index); + elementIndex = index; + } + } + + + if (((IElementSet) _elementSets[elementSetNumber]).ElementType == ElementType.XYPolyLine) + { + XYPolyline xyPolyline = new XYPolyline(); + for (int i = 0; i < elementSet.GetVertexCount(index); i++) + { + xyPolyline.Points.Add(new XYPoint(elementSet.GetXCoordinate(index,i), elementSet.GetYCoordinate(index,i))); + } + double xx = XYGeometryTools.CalculatePolylineToPointDistance(xyPolyline, new XYPoint(x,y)); + if (xx < distance) + { + distance = xx; + if (xx < 0.3 * xyPolyline.GetLength()) + { + elementIndex = index; + elementID = elementSet.GetElementID(index); + } + } + + } + + if (elementSetNumber == 0 && elementIndex >= 0) + { + this.label4.Text = "Index: " + elementIndex.ToString(); + this.label8.Text = "ID: " + elementID.Substring(0, Math.Min(17, elementID.Length)); + } + if (elementSetNumber == 1 && elementIndex >= 0) + { + this.label10.Text = "Index: " + elementIndex.ToString(); + this.label11.Text = "ID: " + elementID.Substring(0, Math.Min(17, elementID.Length)); + } + } + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/ElementSetViewer.resx b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/ElementSetViewer.resx new file mode 100644 index 00000000..c3f333f5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/ElementSetViewer.resx @@ -0,0 +1,689 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + + True + + + Private + + + 4, 4 + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + (Default) + + + False + + + False + + + 4, 4 + + + ElementSetViewer + + + True + + + 80 + + + True + + + Private + + + + AAABAAIAEBAAAAEAGABoKwAAJgAAACAgAAABABgAqDQAAI4rAAAoAAAAEAAAACAAAAABABgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg2Ymaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4Iaj4I + aj4IVjEKmoEy////////////////UFHGc3jceUIBeUIBeUIBeUIBnYZpzcy1////////aj4ImoEy//// + ////////vLzAW1tkAAD/KSeoYzYCbz0DeUIBhFASnYZp2NvD////aj4ImoEy////////vLzAW1tk+/v7 + horpAAD/KSeof0UAiE0Aj1UElnAomXUr2NvDaj4ImoEy////vLzAW1tkeW9rvLzA9/f+XGHgAAD/KSeo + YUYdjV4UmXUrmnovr6J/aj4ImoEy5+XjQiQLQiQLQiQLQiQLdGdg////////////jV4Ul3ownYg5no8+ + oJVHaj4ImoEyu7WvW1tk////vbOuf3NuQiQL////////////QiQLl3ownYg5nJZGnZlJaj4ImoEy2dbW + W1tk////1dXY1dXY1dXY+Pj49vX2////NCmFQiQL////////prNoaj4ImoEy2dbWW1tk////1dXY//// + 1dXY////1dXYjI/mAAD/n5tL////////prNoaj4ImoEy4+Hgl5ecQiQLQiQL1dXY1dXY1dXY1dXY8fH7 + AAD/cnXboaZbpK1iprNoaj4ImoEy////zMS9QiQLQiQL////1dXY////////////UFHGAAD/oqpepbJn + vcuWaj4ImoEy////////vLzAW1tk////1dXY1dXYQiQLQiQLwMHiAAD/oqpfq7hz2NvDaj4ImoEy//// + ////////vLzA2dbW////////QiQLQiQL////UFHGsbZ32NvD////aj4ImoEy//////////////////// + ////bXLfvLzAvLzAr7HpUFHG2NvD////////aj4ImoEy////////////////////////r7HpbXLfbXLf + r7Hp////////////////aj4InpZJmoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEymoEy + moEyg2YmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAA + AAABABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlnAoQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQLQiQL + QiQLQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEQiQLoqtgkVcE//////////////// + ////////////////////cHPLpafuiWY9fkQHekAEekAEekAEekAEg1gniWY9qahq1dXY//////////// + ////////////////kVcEQiQLoqtgkVcE////////////////////////////////cHPLAAD/AAD/SE7V + fkQHczsBczsBczsBczsBczsBfkQHfEYHl3g91dXY////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXYlZWacHPLAAD/AAD/KSeoVC4MczsBaDgCbTwEcj8DdkEBfEYH + fEYHiWY9qahq////////////////////kVcEQiQLoqtgkVcE////////////////////////1dXYlZWa + hoaN////Nz7cAAD/HCXaNSqNZDYBcD4EdUABe0MAf0YAg0gAhksAilAFlnhQqahq//////////////// + kVcEQiQLoqtgkVcE////////////////////1dXYlZWaa2ty3dnY////pafuISjaAAD/HSXaUjROeEIA + fkUAg0cAhksAilAAj1MAkVYDkVgIlG00qahq////////////kVcEQiQLoqtgkVcE//////////////// + ////k5OZXV1m2trc////////////X2PhHibaAAD/Kiu9gEUAhUkAiU4AjlMAkVcEkFoMj18UkGMZkmge + l3g9qahq////////kVcEQiQLoqtgkVcE////////////////lZWaWlpjqamu////////////////4eL5 + PULbAAD/HCO2dUABf0YAf0YAeE0NjV4UkWYclG0jlnAomHMqmXUroYxcqahq////kVcEQiQLoqtgkVcE + ////////////1dXYWlpjqamu////////////////////////vr/zV1vdSk2OVEMjVEMjVEMjVEMjjWci + l3EomXUrmnsvm34ynIE1nIM2nIM209azkVcEQiQLoqtgkVcE////////////lZWaWlpieW9r//////// + ////////////////////////////////////////VEMjkG4pmnsvnIA0nIU4nYk6no08n489o5hWraNt + kVcEQiQLoqtgkVcE////nZWMWlpiWlpiWlpiVEMjQiQLQiQLQiQLQiQLQiQLgm9njXx1//////////// + ////////VEMjkncwnIU3nos7n5A+n5NBnpRCnpRDnpVDnpVDkVcEQiQLoqtgkVcEmZCHnZWMo5yVWVli + eW9rurOutq6oeW9rVEMjQiQLQiQLQiQLQiQL////////////////////QiQLVEMjloQ6n5NBnpRCnpVE + npdFnphGnphHnpVDkVcEQiQLoqtgkVcEtq6o////g4OKWlpjtra6//////////////////////////// + ////////////////////////QiQLQiQLQiQLXUYjgnQ4m5ZHmpdJmphKnZpMnZpMkVcEQiQLoqtgkVcE + ////////g4OKWlpj3dnY////qqqrs7O0s7O0s7O0pqao////////////////////////////VEMjRCcP + QiQLQiQLTC8ZVEMjXUYjj18UgnQ4nZpMkVcEQiQLoqtgkVcE////////g4OKWVli3dnY////p6eo//// + ////////p6eo////////p6eop6eop6eoAAD/AAD/gHprnplHgnQ4QiQLVEMj////////////XUYjnZpM + kVcEQiQLoqtgkVcE////////g4OKW1tkxcXI////p6eo////////////p6eo////////p6eo/////f3/ + jI/mAAD/YF6VnptKn51OoaBToadb////////////gnQ4oadbkVcEQiQLoqtgkVcEtq6o////k5OZW1tk + iH96oZiQp6eo////////////p6eo////////p6eo////////0dL0AAD/SEmzmJZUoJ9SoaNXoadb//// + ////////pbFmusWNkVcEQiQLoqtgkVcE1dXYtq6og4OKW1tkQiQLQiQLQiQL////////////p6eo//// + ////p6eo////////9vb8cnXbHCXaiolpoaFUoaVZoapdpK1ipbFlpbRoprZrxtCmkVcEQiQLoqtgkVcE + ////////////W1tkQiQLQiQLQiQLuLW3uLa3uLW3qqiqrausp6eop6eo////////////r7HpHCXadneB + oaNXoadboqtgpa9kpbNoprZrprZr1dXYkVcEQiQLoqtgkVcE////////////k5OZQiQLQiQLQiQL//// + ////////p6eo////////////////////////////HCXaNDfLoKNZoahco6xipbFlpbVqprlv09az//// + kVcEQiQLoqtgkVcE////////////////g4OKg4OKycnM////////////p6eop6eop6eop6eop6eopaWm + p6eo////e33JHCXam51eoahco6xipbFmpbVqprlv////////kVcEQiQLoqtgkVcE//////////////// + ////g4OKk5OZvLzA////////////////////////////////p6eo////nZ/RHCXalJZmoahbo6xipbFm + pbVq09az////////kVcEQiQLoqtgkVcE////////////////////////vLzAg4OK1dXY//////////// + ////////////////p6eo////v8DhHCXai41voaZboqtfpbFm09az////////////kVcEQiQLoqtgkVcE + ////////////////////////////1dXY////////////////////////////////p6eo////////HCXa + i4ttpalgoqtf09az////////////////kVcEQiQLoqtgkVcE//////////////////////////////// + ////////////vLzAg4OKubm9////QiQLQiQLQiQL////HCXai4ttpalg09az//////////////////// + kVcEQiQLoqtgkVcE////////////////////////////////////////////////tra6g4OKg4OKQiQL + QiQLQiQL////Nz7cusWN09az////////////////////////kVcEQiQLoqtgkVcE//////////////// + ////////////////////////////r7Hp////////////QiQLQiQLQiQL////Nz7cr7Hp//////////// + ////////////////kVcEQiQLoqtgkVcE//////////////////////////////////////////////// + cHPLnJ7p////////////////1dX3Nz7c////////////////////////////////kVcEQiQLoqtgkVcE + ////////////////////////////////////////////////////cHPLnJ7p////////nJ7pNz7ccHPL + ////////////////////////////////kVcEQiQLoqtgkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcEkVcE + kVcEQiQLoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtg + oqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtgoqtglnAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/ExchangeItemSelector.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/ExchangeItemSelector.cs new file mode 100644 index 00000000..2c03ddb2 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/ExchangeItemSelector.cs @@ -0,0 +1,683 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Diagnostics; +using System.Collections; +using System.ComponentModel; +using System.Drawing; +//using System.Data; +using System.Windows.Forms; +using OpenMI.Standard; +using Oatc.OpenMI.Gui.Core; + +namespace Oatc.OpenMI.Gui.Controls +{ + /// + /// This control represents tree of exchange items. First level nodes represent + /// IQuantity, second level nodes represent + /// IElementSet and + /// third level nodes represent IDataOperations in case of + /// IOutputExchangeItems. + /// + public class ExchangeItemSelector: System.Windows.Forms.UserControl + { + #region Form controls + private System.Windows.Forms.TreeView treeView1; + #endregion + + #region Public events + + /// + /// Occurs when the selection of tree node changes. + /// + public event EventHandler SelectionChanged; + + /// + /// Occurs when the check-state of checkboxes in the tree changes. + /// + public event EventHandler CheckboxesChanged; + + #endregion + + #region Member variables + + private ArrayList _exchangeItems; + + private IQuantity _checkedQuantity; + private IElementSet _checkedElementSet; + private ArrayList _checkedDataOperations; + + /// + /// Hashtable used to find exchange item corresponding to quantity and element set. + /// As key we use strign created with method CreateExchangeItemID. + /// The value is IExchangeItem, if there's no other exchange item with same key, + /// if yes, value is ArrayList of such exchange items. + /// + private Hashtable _exchangeItemsSearcher; + + private IDimension _filterDimension; + private IElementSet _filterElementSet; + + private System.Windows.Forms.ImageList imageList1; + + bool _blockAfterCheckEventHandler; + + #endregion + + /// + /// Creates a new instance of ExchangeItemSelector control. + /// + public ExchangeItemSelector() + { + // This call is required by the Windows.Forms Form Designer. + InitializeComponent(); + } + + + private class ExchangeItemsComparer: IComparer + { + public int Compare(object x, object y) + { + IExchangeItem itemX = (IExchangeItem)x; + IExchangeItem itemY = (IExchangeItem)y; + + int result = string.Compare( itemX.Quantity.ID, itemY.Quantity.ID, false ); + + if( result==0 ) + result = string.Compare( itemX.ElementSet.ID, itemY.ElementSet.ID, false ); + + return( result ); + } + } + + + + #region Methods + + /// + /// Populates this control with exchange items. + /// + /// Exchange items. + /// Determines whether to show check-boxes in the tree. + public void PopulateExchangeItemTree( IExchangeItem[] exchangeItems, bool showCheckboxes ) + { + _checkedQuantity = null; + _checkedElementSet = null; + _checkedDataOperations = new ArrayList(); + + _filterDimension = null; + _filterElementSet = null; + + _blockAfterCheckEventHandler = false; + + _exchangeItems = new ArrayList( exchangeItems ); + + ExchangeItemsComparer comparer = new ExchangeItemsComparer(); + _exchangeItems.Sort( comparer ); + + + // fill _exchangeItemsSearcher + _exchangeItemsSearcher = new Hashtable(); + foreach( IExchangeItem exchangeItem in _exchangeItems ) + { + if( exchangeItem.ElementSet==null || exchangeItem.Quantity==null ) + throw( new Exception("Exchange item cannot have ElementSet or Quantity null.") ); + + string key = CreateExchangeItemID(exchangeItem.Quantity, exchangeItem.ElementSet); + object entry = _exchangeItemsSearcher[ key ]; + + if( entry == null ) + { + // first usage of this key + _exchangeItemsSearcher[key] = exchangeItem; + } + else if( entry is IExchangeItem ) + { + // this key already used once => create ArrayList of exchange items with this key + ArrayList list = new ArrayList(); + list.Add( entry ); + list.Add( exchangeItem ); + + _exchangeItemsSearcher[key] = list; + } + else + { + // key used more times + ((ArrayList)entry).Add( exchangeItem ); + } + } + + treeView1.CheckBoxes = showCheckboxes; + + CreateTree(); + } + + + /// + /// Creates the tree based on element sets and quantities in exchange items + /// passed with PopulateExchangeItemTree method. + /// + public void CreateTree() + { + treeView1.BeginUpdate(); + treeView1.Nodes.Clear(); + + + string lastQuantityID = null; + + // fill tree with exchange items (if there are any because DrawTree could be called + // before _exchangeItems was assigned ) + if( _exchangeItems!=null ) + foreach( IExchangeItem exchangeItem in _exchangeItems ) + { + TreeNode elementSetNode = null; // newly added node (if any) + + // apply filters (if any) + if( _filterDimension != null + && !Utils.CompareDimensions(_filterDimension,exchangeItem.Quantity.Dimension) ) + continue; + + if( _filterElementSet != null + && _filterElementSet.ElementType != ElementType.IDBased + && (exchangeItem.ElementSet.ElementType != ElementType.IDBased + || exchangeItem.ElementSet.ElementCount != _filterElementSet.ElementCount) ) + continue; + + + TreeNode quantityNode; + + if( lastQuantityID != exchangeItem.Quantity.ID ) + { + // adding new quantity node + quantityNode = treeView1.Nodes.Add( exchangeItem.Quantity.ID ); + quantityNode.Tag = exchangeItem.Quantity; + if( exchangeItem.Quantity.ValueType == global::OpenMI.Standard.ValueType.Scalar ) + quantityNode.ImageIndex = quantityNode.SelectedImageIndex = 0; + else + quantityNode.ImageIndex = quantityNode.SelectedImageIndex = 1; + + lastQuantityID = exchangeItem.Quantity.ID; + } + else + { + // last node corresponds to quantity with same ID + quantityNode = treeView1.Nodes[ treeView1.Nodes.Count-1 ]; + } + + // Add ElementSet node + elementSetNode = quantityNode.Nodes.Add( exchangeItem.ElementSet.ID ); + + Debug.Assert( 0<=(int)exchangeItem.ElementSet.ElementType && (int)exchangeItem.ElementSet.ElementType<=9 ); + elementSetNode.ImageIndex = elementSetNode.SelectedImageIndex = (int)exchangeItem.ElementSet.ElementType + 2; + + elementSetNode.Tag = exchangeItem.ElementSet; + + + // add DataOperation subnodes only if newly added node is IOutputExchangeItem + if( exchangeItem is IOutputExchangeItem ) + { + IOutputExchangeItem item = (IOutputExchangeItem)exchangeItem; + for( int j=0; j + /// Sets which one Quantity, one ElementSet and some DataOperations are currently checked. + ///
    + /// ElementSet + /// Quantity + /// Array of DataOperations which will be checked. If null no one will be checked.. + /// Only one Quantity and one ElementSet can be checked at the time. DataOperations + /// corresponding to Quantity->ElementSet exchange item can be checked as needed, + /// all other cannot be checked. + public void SetCheckedExchangeItem( IQuantity quantity, IElementSet elementSet, IDataOperation[] selectedDataOperations ) + { + ClearCheckboxes(); + + if( quantity==null ) + return; + + treeView1.BeginUpdate(); + + // note: we don't have to set _checked... members here, + // because treeView1_AfterCheck event handler will do it + + // check Quantity (if any matching) + for( int i = 0; i < treeView1.Nodes.Count; i++ ) + if( treeView1.Nodes[i].Text == quantity.ID ) + { + treeView1.Nodes[i].Checked = true; + + // check ElementSet (if any matching) + if( elementSet!=null ) + for( int j = 0; j < treeView1.Nodes[i].Nodes.Count; j++ ) + if( treeView1.Nodes[i].Nodes[j].Text == elementSet.ID ) + { + treeView1.Nodes[i].Nodes[j].Checked = true; + + // check selected data operations (if any matching) + if( selectedDataOperations != null ) + { + foreach( IDataOperation dataOperation in selectedDataOperations ) + for( int k=0; k + /// Gets nodes of tree that are currently checked. + ///
    + /// Currently checked quantity or null if not checked. + /// Currently checked elementSet or null if not checked. + /// Currently checked data operations or null if no checked. + public void GetCheckedExchangeItem( out IQuantity quantity, out IElementSet elementSet, out IDataOperation[] selectedDataOperations ) + { + quantity = _checkedQuantity; + elementSet = _checkedElementSet; + if( _checkedDataOperations==null ) + selectedDataOperations = null; + else + selectedDataOperations = (IDataOperation[])_checkedDataOperations.ToArray( typeof(IDataOperation) ); + } + + + /// + /// Gets IExchangeItem corresponding to quantity and elementSet. + /// + /// Quantity of this exchange item. + /// ElementSet of this exchange item. + /// Returns corresponding exchange item or null if not found. + public IExchangeItem GetExchangeItem( IQuantity quantity, IElementSet elementSet ) + { + Debug.Assert( quantity!=null && elementSet!=null ); + + object val = _exchangeItemsSearcher[ CreateExchangeItemID(quantity,elementSet) ]; + + if( val == null ) + return( null ); + + if( val is ArrayList ) + { + // there are more exchange items with this combintaion of quantity ID and elementSet ID + ArrayList list = (ArrayList)val; + + foreach( IExchangeItem item in list ) + if( item.ElementSet == elementSet + && item.Quantity == quantity ) + return( item ); + + return( null ); + } + else + { + return( (IExchangeItem)val ); + } + } + + private string CreateExchangeItemID( IQuantity quantity, IElementSet elementSet ) + { + return( "Oatc.OpenMI.Gui;Q:" + quantity.ID + "E:" + elementSet.ID ); + } + + + /// + /// Gets object corresponding to currently selected node. + /// + /// Returns IOutputExchangeItem, IInputExchangeItem, IDataOperation or null if no node is selected. + public object GetSelectedObject() + { + if( treeView1.SelectedNode!=null ) + return( treeView1.SelectedNode.Tag ); + else + return( null ); + } + + + /// + /// Expands the node of the tree which is currently checked. + /// + public void ExpandChecked() + { + treeView1.BeginUpdate(); + + treeView1.CollapseAll(); + + for( int i = 0; i < treeView1.Nodes.Count; i++ ) + if( treeView1.Nodes[i].Checked ) + for( int j = 0; j < treeView1.Nodes[i].Nodes.Count; j++ ) + if( treeView1.Nodes[i].Nodes[j].Checked ) + { + treeView1.Nodes[i].Nodes[j].Expand(); // expand DataOperations (if any) + treeView1.Nodes[i].Nodes[j].EnsureVisible(); + goto Finish; + } + + Finish: + + treeView1.EndUpdate(); + } + + + /// + /// Sets check-state of all checkboxes in tree to unchecked. + /// + public void ClearCheckboxes() + { + // this method may be called from AfterCheck event handler so + // so we must preserve previous value of _blockAfterCheckEventHandler variable + bool prevValue = _blockAfterCheckEventHandler; + _blockAfterCheckEventHandler = true; + + // tree can be in incorrect state, so we must really uncheck all checkboxes + for( int i = 0; i < treeView1.Nodes.Count; i++ ) + { + treeView1.Nodes[i].Checked = false; + for( int j = 0; j < treeView1.Nodes[i].Nodes.Count; j++ ) + { + treeView1.Nodes[i].Nodes[j].Checked = false; + for( int k = 0; k < treeView1.Nodes[i].Nodes[j].Nodes.Count; k++ ) + treeView1.Nodes[i].Nodes[j].Nodes[k].Checked = false; + } + } + + _checkedQuantity = null; + _checkedElementSet = null; + _checkedDataOperations = new ArrayList(); + + _blockAfterCheckEventHandler = prevValue; + } + + + /// + /// Enables or disables Dimension filter. + /// + /// New Dimension filter or null if no filter should be used. + public void EnableDimensionFilter( IDimension filterDimension ) + { + if( _filterDimension != filterDimension ) // little optimisation + { + _filterDimension = filterDimension; + CreateTree(); + } + } + + + /// + /// Enables or disables ElementSet filter. + /// + /// New ElementSet filter or null if no filter should be used. + public void EnableElementSetFilter( IElementSet filterElementSet ) + { + if( _filterElementSet != filterElementSet ) // little optimisation + { + _filterElementSet = filterElementSet; + CreateTree(); + } + } + + + + #endregion + + #region Event handlers + + private void Properties(object sender, System.EventArgs e) + { + + } + + + private void treeView1_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e) + { + if( _blockAfterCheckEventHandler ) + return; + _blockAfterCheckEventHandler = true; + + //treeView1.BeginUpdate(); + + TreeNode node = e.Node; + bool isChecked = node.Checked; + + + // Make check-state of nodes correct + if( node.Tag is IQuantity ) + { + ClearCheckboxes(); + node.Checked = isChecked; + if( isChecked ) + _checkedQuantity = (IQuantity)node.Tag; + } + else if( node.Tag is IElementSet ) + { + if( isChecked ) + { + if( node.Parent.Checked ) + { + for( int i=0; i + /// Clean up any resources being used. + ///
    + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Component Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(ExchangeItemSelector)); + this.treeView1 = new System.Windows.Forms.TreeView(); + this.imageList1 = new System.Windows.Forms.ImageList(this.components); + this.SuspendLayout(); + // + // treeView1 + // + this.treeView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.treeView1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.treeView1.CheckBoxes = true; + this.treeView1.ImageList = this.imageList1; + this.treeView1.Location = new System.Drawing.Point(0, 0); + this.treeView1.Name = "treeView1"; + this.treeView1.Size = new System.Drawing.Size(256, 328); + this.treeView1.TabIndex = 0; + this.treeView1.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterCheck); + this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); + this.treeView1.Enter += new System.EventHandler(this.treeView1_Enter); + // + // imageList1 + // + this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth24Bit; + this.imageList1.ImageSize = new System.Drawing.Size(16, 16); + this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream"))); + this.imageList1.TransparentColor = System.Drawing.Color.Transparent; + // + // ExchangeItemSelector + // + this.Controls.Add(this.treeView1); + this.Name = "ExchangeItemSelector"; + this.Size = new System.Drawing.Size(256, 328); + this.Load += new System.EventHandler(this.ExchangeItemSelector_Load); + this.SizeChanged += new System.EventHandler(this.ExchangeItemSelector_SizeChanged); + this.ResumeLayout(false); + + } + #endregion + + #endregion + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/ExchangeItemSelector.resx b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/ExchangeItemSelector.resx new file mode 100644 index 00000000..620bba53 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/ExchangeItemSelector.resx @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Private + + + Private + + + False + + + Private + + + Private + + + 17, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFpTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuNTAw + MC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZT + eXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMA + AACMFAAAAk1TRnQBSQFMAgEBDQEAAQ4BAAEEAQABEAEAARABAAT/ARkBEAj/AUIBTQE2BwABNgMAASgD + AAFAAwABQAMAAQEBAAEYBgABMBIAMP+QAA//AYACAAL/AQAB/wIAAYAFAAP/AgABgAH/AQAB/wIAAf8C + AAGAkwAP/wGAAgAC/wEAAf8CAAGABQAD/wIAAYAB/wEAAf8CAAH/AgABgJMAD/8BgAIAA8AC/wEAAf8F + AAP/AgABgAP/A8ACAAH/kwAS/wGAAgABgAIAAYACAAn/AgABgAIAAYACAAGAA/+QABL/AwADwAMACf8D + gAPAAwAD/5AAEv8DAAPAAwAJ/wOAA8ADAAP/kAAD/wPABgAD/wYAA8AGAAb/CQAD/5AAA/8JgAMABoAD + wAaABgADgAYAA/+QAAP/A4AGwAOAD8AGgAP/BgAD/5AAA/8DgAP/A8AD/xLAA/8DAAPAAwAD/5AAA/8D + gAb/A4AS/wMABsADgJMABv8GgAP/FYAGwAOAkwAh/wOAA/8DwAOAkwAh/wyAkwAw/5AAw/8BpAKgAaQC + oAGkAqABpAKgAaQCoAGkAqABpAKgAaQCoAGkAqADsgPqD/8BpAKgAaQCoAGkAqABpAKgAaQCoAGkAqAB + pAKgAaQCoAGkAqADsgPqD/8BpAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgAaQCoAGkAqADsgPqD/8b + oAOsA+8P/wOWA90D6hL/A5kGsgPqCf8DlgPdA+oCzAH/ApkN/wOZBrID6gn/A5YD3QPqA/8B8AHKAaYD + 8Qn/A5kGsgPqCf8DlAPfA+8H/wKvAd8BgAFgAd8BQAEgAe8BQAEwAZgCiAOwA6gD7wn/AaQCoAP/A+oD + 3QPqDP8BpAKgA/8D8QOyA5kD8QP/AaQCoAP/A+oCUAH/AjMB/wPxCf8BpAKgA/8D8QOyA5kD8QP/AaQC + oAP/A+oBzAKZATMBzAEAAoABAAH/ApkD8QP/AaQCoAP/A/EDsgOZA/ED/wOgAf8D7wKAAccBeAFIAoAB + AAEwAc8CAAH/AQABsAFQAQABEAHvAQABgAFQATAB/wLPA/cDsAOcA/cD/wGkAqAJ/wPXDN0DlgndAaQC + oAPdA/8BpAKgA/8CmQH/ApkB/wKZAcwCZgHMCd0DlgndAaQCoAPdA/8BpAKgA/8B8AHKAaYBMwHMAgAB + /wIAAf8CAAH/AQACgAEAAcwCZgOGCd0BpAKgA90D/wOgAf8BvwGwAVABrwIAAf8CAAH/AgAB/wEAATAB + zwEAAZABcAIAAf8BAAEgAaABIAGYAWgBCAHfArAD3wOnA98D/wGkAqAB/wJmAf8CZgH/AewBzAPdDP8B + pAKgCf8DwAPdA/8BpAKgA/ECUAT/A90CUAH/A/EG/wGkAqAJ/wPAA90D/wGkAqAB8AHKAaYBMwHMAgAB + /wIAAf8CAAH/AgAB/wIAAf8CAAH/AQACZgEzAf8CmQPxA/8DwAPdA/8DoAP/Ab8BgAFAAQAB/wIAAf8C + AAH/AQABkAFwAQABIAHfAgAB/wEAASABoAEgAQAB/wEAAaABcAEQAf8BzwS/A98D/wGkAqAD8QH/ApkB + /wIzAf8CMwH/ApkB/wHsAcwG/wGkAqAJ/wPAA90D/wGkAqACZgH/AswE/wPdAswB/wGAAXwH/wGkAqAG + /wLMAf8CmQHMA90D/wGkAqAB/wGZAWYBAAH/AgAB/wIAAf8CAAH/AgAB/wIAAf8CAAH/AQABMwGZATMB + AAH/AQACgAEAAf8CmQOyA90D/wOgBP8CvwFAAb8CAAH/AgAB/wEAAbABUAIAAf8CAAH/AQABIAGgASAB + QAG/AQAB3wFgAUAB/wHPBL8D3wP/AaQCoAn/AfABygGmAf8CZgH/AjMB/wJmAf8FmQn/A8AD3QP/AaQC + oALMB/8D3QP/AlAB/wPxA/8BpAKgAswB/wJmAf8CZgH/A7ID3QP/AaQCoAH/AswBZgGZAgAB/wIAAf8C + AAH/AgAB/wIAAf8CAAH/AQABMwGZATMBAAH/AQABMwHMAQABmQFmAQABzAJmA90D/wOgBv8BzwFwAUAB + AAH/AQABQAG/AQABYAGgAgAB/wEAASAB3wEAAYABUAEwAf8CoAb/A78D3wP/AaQCoAn/A90H/wKZAf8C + ZgGZAjMB/wJmAf8CzAP/A8AD3QP/AaQCoAn/A90D/wLMAf8BgAF8Af8CzAH/AmYBmQJmAf8CzAT/A8AD + 3QP/AaQCoAP/ApkBMwEAAf8CAAH/AgAB/wIAAf8BAAEzAcwBAAFmAZkBAAJmATMB/wKZAf8CzAP/A8AD + 3QP/A6AH/wK/AWABoAEAAaABYAEAASAB3wEAAoABAAH/AmABoAKQCf8DvwPfA/8BpAKgCf8D3Qz/AaQC + oAH/ApkB/wIzAf8CmQPAA90D/wGkAqAJ/wPdBv8CUAH/AmYB/wOZCf8DwAPdA/8BpAKgBP8CmQEzAcwB + AAFmAZkBAAKZATMBzAGZAWYB/wKZA/EBpAKgCf8DwAPdA/8DoAn/Ad8BYAFAAc8BMAEAAd8BUAEwAf8C + vwP/A6AJ/wO/A98D/wOACcABpAKgDMADhgn/A8AD3QP/A4AJwAGkAqAMwAOGCf8DwAPdA/8DgAPAA7IB + zAJmA5YMwAOGCf8DwAPdA/8DeAm/Aa8CgAG/AlAJvwOAA/sG/wO/A98D/wPAA4YDwAPdA8AM3QPXAaQC + oAOyA/8DwAPdA/8DwAOGA8AD3QPADN0D1wGkAqADsgP/A8AD3QP/A8ADhgPAA90DwAzdA9cBpAKgA7ID + /wPAA90D/wPEA4ADwAPfA8cM3wPXA6ADsAP/A78D3wn/A8ABpAKgA8AS/wPqAaQCoAOAA90J/wPAAaQC + oAPAEv8D6gGkAqADgAPdCf8DwAGkAqADwBL/A+oBpAKgA4AD3Qn/A8ADoAO/Ev8D7wOgA3gD3w//A8AB + pAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgAaQCoAGkAqAD8Q//A8ABpAKgAaQCoAGkAqABpAKgAaQC + oAGkAqABpAKgAaQCoAGkAqAD8Q//A8ABpAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgAaQCoAGkAqAD + 8Q//A7wboAPz/////0X/A3cBpAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgAaQC + oAGkAqADgAb/A3cBpAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgAaQCoAGkAqAD + gAb/A3cBpAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgAZkCZgGkAqADgAb/AaQC + oAGkAqABpAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgA7ID6g//AaQCoCT/AaQCoAb/AaQCoAn/AswB + /wKZFv8BpAKgBv8BpAKgFv8CmQHMAZkBZgKAAQACgAEAAf8CzAGkAqAG/wOWA90D6hL/A5kGsgPqCf8B + pAKgJP8BpAKgBv8BpAKgBv8CzAH/AlAB/wIzFv8BpAKgBv8BpAKgCf8D8QH/ApkBzAGZAWYCgAEAATMB + zAIAAf8CAAH/AQABMwHMAQAB/wLMAaQCoAb/AaQCoAP/A+oD3QPqB/8CZgP/AaQCoAP/A/EDsgOZA/ED + /wGkAqACzCL/AaQCoAb/AaQCoAP/A/ECUAH/AswB/wJQFv8BpAKgBv8BpAKgA/EB/wKZAcwBmQJmAZkB + AAEzAcwCAAH/AgAB/wIAAf8CAAH/AgAB/wEAAoABAAP/AaQCoAb/AaQCoAn/A9cG3QH/AjMD3QOWCd0B + pAKgA90D/wGkAqACUAH/AlAB/wLMHP8BpAKgBv8BpAKgA/8CUAH/AswE/wGAAXwB/wLME/8BpAKgBv8B + pAKgAcwBZgEAATMBzAIAAf8CAAH/AgAB/wIAAf8CAAH/AgAB/wIAAf8CAAH/AQACmQEzA/8BpAKgBv8B + pAKgCf8D3Qf/AjMD/wGkAqAJ/wPAA90D/wGkAqAD/wLMAf8CUAH/AlAB/wLMFv8BpAKgBv8BpAKgAYAB + fAH/ApkH/wKZAf8CmRP/AaQCoAb/AaQCoAHMAZkBZgEAAf8CAAH/AgAB/wIAAf8CAAH/AgAB/wIAAf8C + AAH/AgAB/wEAAcwBmQEzA/8BpAKgBv8BpAKgCf8D3QH/AmYB/wKZAf8CMwP/AaQCoAn/A8AD3QP/AaQC + oAn/AswB/wJQAf8CUAH/ApkQ/wGkAqAG/wGkAqAD8Qn/AswB/wJQDf8CmQH/ApkB/wGkAqAG/wGkAqAB + /wLMAWYBmQIAAf8CAAH/AgAB/wIAAf8CAAH/AgAB/wIAAf8CAAH/AQAB/wKZA/8BpAKgBv8BpAKgBP8C + zAH/AjMB/wIzAf8CMwH/AjMB/wIAAf8CAAGZAjMB/wIzAf8CZgP/A8AD3QP/AaQCoA//AswB/wJmAf8C + MwH/ApkK/wGkAqAG/wGkAqAP/wIzCv8CzAH/AlAE/wGkAqAG/wGkAqAD/wKZATMBAAH/AgAB/wIAAf8C + AAH/AgAB/wIAAf8CAAH/AQABMwHMAQAB/wKZA/8BpAKgBv8BpAKgCf8D3Qf/AjMB/wKZA5YJ/wPAA90D + /wGkAqAV/wLMAf8CZgH/AjMB/wKZBP8BpAKgBv8BpAKgD/8CUAH/A/ED/wPxAjMB/wPxA/8BpAKgBv8B + pAKgBP8CmQEAAf8CAAH/AgAB/wIAAf8CAAH/AgAB/wIAAf8BAAEzAcwBAAH/AswD/wGkAqAG/wGkAqAJ + /wPdB/8CMwP/AaQCoAn/A8AD3QP/AaQCoBv/AswB/wJmAf8CZgH/AaQCoAb/AaQCoA//AYABfAH/ApkE + /wJQAf8CzAf/AaQCoAb/AaQCoAT/AewBzAFmAZkCAAH/AgAB/wIAAf8CAAH/AgAB/wIAAf8BAAKAAQAG + /wGkAqAG/wOACcABpAKgBsABzAIzA8ADhgn/A8AD3QP/AaQCoCT/AaQCoAb/AaQCoA//AswB/wGAAXwB + /wJmAf8CmQr/AaQCoAb/AaQCoAb/ApkBMwEAAf8CAAH/AgAB/wIAAf8CAAH/AgAB/wEAApkBMwb/AaQC + oAb/A8ADhgPAA90DwAbdAcwCZgPdA9cBpAKgA7ID/wPAA90D/wGkAqAk/wGkAqAG/wGkAqAP/wPxAgAB + /wGAAXwN/wGkAqAG/wGkAqAH/wKZATMBzAIAAf8CAAH/AQABMwHMAQABZgGZAQACgAEAAf8BmQFmBv8B + pAKgDP8DwAGkAqADwAb/A/EJ/wPqAaQCoAOAA90D/wGkAqAk/wGkAqAG/wGkAqAS/wGAAXwQ/wGkAqAG + /wGkAqAG/wPxAcwBZgEAAcwBmQEzAf8BmQFmAf8CmQH/AewBzAz/AaQCoBL/A8ABpAKgAaQCoAGkAqAB + pAKgAaQCoAGkAqABpAKgAaQCoAGkAqAD8QP/A2YBpAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgAaQC + oAGkAqABpAKgAaQCoAGkAqADdwb/A2YBpAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgAaQCoAGkAqAB + pAKgAaQCoAGkAqADdwb/A2YBpAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgAaQC + oAGkAqADd/////8e/wPxBuoD8QP/A/EP6gPxBv8DdwGkAqABpAKgAaQCoAGkAqABpAKgAaQCoAGkAqAB + pAKgAaQCoAGkAqABpAKgAaQCoAOAQv8D6gMzAxwDMwPqG/8D6gYzA+oD8QPdBikDzAMpAzMD6gb/AaQC + oCT/AaQCoBL/A+oDMwMcAzMD6h7/A/ED1wMcAxYDHAPXA/EY/wPdBhwD1wPdAxwMFgMcA90G/wGkAqAk + /wGkAqAP/wPxA9cDHAMWAxwD1wPxG/8D6gMpAxwDsgMcAykD6hj/A90GHAPMAykDFgMcA8wDHAMWAxwD + 3Qb/AaQCoCT/AaQCoA//A+oDKQMcA7IDHAMpA+ob/wPdBhwDwAYcA90Y/wPdBhwDwAMcAxYD1wPqA9cD + FgMcA90G/wGkAqAN/wIzFf8BpAKgD/8D3QYcA8AGHAPdGP8D8QPXAxwDKQPXAykDHAPXA/EV/wPdBhwD + wAMcAxYD1wPqA9cDFgMcA90G/wGkAqAN/wIAFf8BpAKgDP8D8QPXAxwDKQPXAykDHAPXA/EV/wPqAykD + HAPXA+oD1wMcAykD6hX/A90GHAPMAykDFgMcA8wDHAMWAxwD3Qb/AaQCoA3/AgAV/wGkAqAM/wPqAykD + HAPXA+oD1wMcAykD6hX/A90GHAPdA/8D3QYcA90V/wPdBhwD1wPdAxwMFgMcA90G/wGkAqAB/wHsAcwB + /wIzAf8CMwH/AjMB/wIAAf8CMwH/AjMB/wJmDP8BpAKgDP8D3QYcA90D/wPdBhwD3RX/A+oGMwPqA/8D + 6gYzA+oV/wPqBjMD6gPxA90GKQPAAxYDHAPdBv8BpAKgBP8CzAH/AswB/wLMAf8CAAH/AswB/wLMAf8C + zAz/AaQCoAz/A+oGMwPqA/8D6gYzA+oV/wPxBuoD8QP/A+oDTQPdA/EV/wPqBtcD6gP/A/EG6gPXBhwD + 3Qb/AaQCoA3/AgAV/wGkAqAM/wPxBuoD8QP/A+oG3QPxFf8D8QPqCd0D1wPMAykD3QPxEv8D6gYzA+oM + /wPdBhwD3Qb/AaQCoA3/AgAV/wGkAqA8/wPxA00MOQYpAzMD8RL/A+oGMwPqDP8D6gYzA+oG/wGkAqAN + /wHsAcwV/wGkAqA8/wPxA+oJ3QPXA8wDKQPdA/ES/wPxBuoD8Qz/A/EG6gPxBv8BpAKgJP8BpAKgS/8D + 8QNNA+oD8T//A2YBpAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgAaQCoAGkAqABpAKgAaQCoAGkAqAD + d8P/AUIBTQE+BwABPgMAASgDAAFAAwABQAMAAQEBAAEBBgABAhYAA///AP8AGQAL + + + + False + + + False + + + True + + + True + + + 80 + + + (Default) + + + False + + + Private + + + ExchangeItemSelector + + + 8, 8 + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Oatc.OpenMI.Gui.Controls.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Oatc.OpenMI.Gui.Controls.csproj new file mode 100644 index 00000000..220493fe --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Oatc.OpenMI.Gui.Controls.csproj @@ -0,0 +1,181 @@ + + + + Local + 9.0.30729 + 2.0 + {FC8850E1-3C5A-4B6D-8012-A7411B06F863} + Debug + AnyCPU + + + + + Oatc.OpenMI.Gui.Controls + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Gui.Controls + OnBuildSuccess + + + + + + + false + 3.5 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + v4.0 + Client + + + ..\..\..\..\..\..\..\Binaries\Plugins\HydroModeler\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ..\..\ + false + 285212672 + false + + + TRACE + bin/Release/org.OpenMI.Tools.GUI.Controls.XML + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + False + + + ..\..\Oatc.OpenMI.Sdk.Spatial.dll + False + + + ..\..\OpenMI.Standard.dll + False + + + System + + + System.Drawing + + + System.Windows.Forms + + + + + Code + + + Form + + + UserControl + + + Code + + + ElementSetViewer.cs + Designer + + + ExchangeItemSelector.cs + Designer + + + + + False + .NET Framework Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + true + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + false + + + False + .NET Framework 3.5 SP1 + false + + + + + {5ED7C71D-E89A-41F7-8B34-54C0C099412C} + Oatc.OpenMI.Gui.Core + False + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/DataOperation.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/DataOperation.bmp new file mode 100644 index 00000000..048560f6 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/DataOperation.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetIDBased.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetIDBased.bmp new file mode 100644 index 00000000..d3973114 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetIDBased.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetIDBased_.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetIDBased_.bmp new file mode 100644 index 00000000..aa2c5796 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetIDBased_.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYLine.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYLine.bmp new file mode 100644 index 00000000..a63f6cfe Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYLine.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYLine_.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYLine_.bmp new file mode 100644 index 00000000..d6b17e01 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYLine_.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPoint.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPoint.bmp new file mode 100644 index 00000000..43bab283 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPoint.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPoint_.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPoint_.bmp new file mode 100644 index 00000000..1bdcb453 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPoint_.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPolygon.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPolygon.bmp new file mode 100644 index 00000000..f84bac49 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPolygon.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPolygon_.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPolygon_.bmp new file mode 100644 index 00000000..bf39d92e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPolygon_.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPolyline.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPolyline.bmp new file mode 100644 index 00000000..72d6b7ce Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPolyline.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPolyline_.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPolyline_.bmp new file mode 100644 index 00000000..c01d4832 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYPolyline_.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZLine.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZLine.bmp new file mode 100644 index 00000000..5eda5e37 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZLine.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZLine_.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZLine_.bmp new file mode 100644 index 00000000..4010b55d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZLine_.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPoint.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPoint.bmp new file mode 100644 index 00000000..79927bb3 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPoint.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPoint_.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPoint_.bmp new file mode 100644 index 00000000..d0bcf5a1 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPoint_.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolygon.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolygon.bmp new file mode 100644 index 00000000..a8ef6430 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolygon.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolygon_.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolygon_.bmp new file mode 100644 index 00000000..17d14f2d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolygon_.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolyhedron.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolyhedron.bmp new file mode 100644 index 00000000..3141323c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolyhedron.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolyhedron_.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolyhedron_.bmp new file mode 100644 index 00000000..4e85bb08 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolyhedron_.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolyline.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolyline.bmp new file mode 100644 index 00000000..7cc30f43 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolyline.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolyline_.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolyline_.bmp new file mode 100644 index 00000000..be63e2b5 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/ElementSetXYZPolyline_.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/OpenMI.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/OpenMI.bmp new file mode 100644 index 00000000..3728a12b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/OpenMI.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/OpenMI.ico b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/OpenMI.ico new file mode 100644 index 00000000..5ef2c3dc Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/OpenMI.ico differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/OpenMI_white.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/OpenMI_white.bmp new file mode 100644 index 00000000..48060103 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/OpenMI_white.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/QuantityScalar.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/QuantityScalar.bmp new file mode 100644 index 00000000..a63aaf2c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/QuantityScalar.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/QuantityVector.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/QuantityVector.bmp new file mode 100644 index 00000000..ae5475b0 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/QuantityVector.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/about.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/about.bmp new file mode 100644 index 00000000..23cf0ef1 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/Pictures/about.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/PropertyManager.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/PropertyManager.cs new file mode 100644 index 00000000..b8f65fe1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Controls/PropertyManager.cs @@ -0,0 +1,411 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using System.ComponentModel; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + +namespace Oatc.OpenMI.Gui.Controls +{ + /// + /// This class is used to hold pairs of string key-value pairs. + /// These pairs are than published like typical .NET class properties (ie. { get; set; } ) + /// using overrides of ICustomTypeDescriptor + /// methods. + /// Main goal of this class is to be able to modify properties shown in + /// PropertyGrid + /// in run-time. + /// + public class PropertyManager: ICustomTypeDescriptor + { + Hashtable _properties; + object _tag; + + /// + /// Creates a new instance if PropertyManager class. + /// + public PropertyManager() + { + _properties = new Hashtable(); + _tag = null; + } + + + private class MyPropertyDescriptor: PropertyDescriptor + { + private PropertyManager _enclosingInstance; + private bool _readOnly; + private string _value; + + public MyPropertyDescriptor( + PropertyManager enclosingInstance, + string name, + string value, + bool readOnly, + Attribute[] attrs) : + base(name, attrs) + { + _enclosingInstance = enclosingInstance; + _readOnly = readOnly; + _value = value; + } + + + public override Type ComponentType + { + get { return typeof(PropertyManager); } + } + + public override bool IsReadOnly + { + get { return (_readOnly); } + } + + public override Type PropertyType + { + get { return typeof(string); } + } + + public override bool CanResetValue(object component) + { + return( false ); + } + + public override object GetValue(object component) + { + return( _value ); + } + + public override void ResetValue(object component) + { + } + + public override void SetValue(object component, object value) + { + if( !_readOnly ) + _value = (string)value; + } + + public override bool ShouldSerializeValue(object component) + { + return( false ); + } + } + + + #region ICustomTypeDescriptor explicit interface definitions + + + AttributeCollection ICustomTypeDescriptor.GetAttributes() + { + return TypeDescriptor.GetAttributes(this, true); + } + + string ICustomTypeDescriptor.GetClassName() + { + return TypeDescriptor.GetClassName(this, true); + } + + string ICustomTypeDescriptor.GetComponentName() + { + return TypeDescriptor.GetComponentName(this, true); + } + + TypeConverter ICustomTypeDescriptor.GetConverter() + { + return TypeDescriptor.GetConverter(this, true); + } + + EventDescriptor ICustomTypeDescriptor.GetDefaultEvent() + { + return TypeDescriptor.GetDefaultEvent(this, true); + } + + PropertyDescriptor ICustomTypeDescriptor.GetDefaultProperty() + { + return TypeDescriptor.GetDefaultProperty(this, true); + } + + object ICustomTypeDescriptor.GetEditor(Type editorBaseType) + { + return TypeDescriptor.GetEditor(this, editorBaseType, true); + } + + EventDescriptorCollection ICustomTypeDescriptor.GetEvents() + { + return TypeDescriptor.GetEvents(this, true); + } + + EventDescriptorCollection ICustomTypeDescriptor.GetEvents(Attribute[] attributes) + { + return TypeDescriptor.GetEvents(this, attributes, true); + } + + PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties() + { + return ((ICustomTypeDescriptor)this).GetProperties(new Attribute[0]); + } + + PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties(Attribute[] attributes) + { + MyPropertyDescriptor[] ret = new MyPropertyDescriptor[ _properties.Count ]; + + int i=0; + foreach( MyPropertyDescriptor desc in _properties.Values ) + ret[i++] = desc; + + return( new PropertyDescriptorCollection(ret) ); + } + + object ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor pd) + { + return this; + } + #endregion + + + #region Public members + + /// + /// Creates new or sets existing property of this instance. + /// + /// Name of the property. + /// Value of the property. + /// Determines whether the property is read-only. + public void SetProperty( string Name, string Value, bool ReadOnly ) + { + SetProperty( Name, Value, ReadOnly, null, null ); + } + + /// + /// Creates new or sets existing property of this instance. + /// + /// Name of the property. + /// Value of the property. + /// Determines whether the property is read-only. + /// Description of the property or null if no description is needed. + public void SetProperty( string Name, string Value, bool ReadOnly, string Description ) + { + SetProperty( Name, Value, ReadOnly, Description, null ); + } + + /// + /// Creates new or sets existing property of this instance. + /// + /// Name of the property. + /// Value of the property. + /// Determines whether the property is read-only. + /// Description of the property or null if no description is needed. + /// Category of the property or null if no category is needed. + public void SetProperty( string Name, string Value, bool ReadOnly, string Description, string Category ) + { + // Set attributes of this property + ArrayList attributes = new ArrayList(); + attributes.Add( new ReadOnlyAttribute(ReadOnly) ); + if( Description!= null ) + attributes.Add( new DescriptionAttribute(Description) ); + if( Category!=null ) + attributes.Add( new CategoryAttribute(Category) ); + + MyPropertyDescriptor desc = new MyPropertyDescriptor( this, Name, Value, ReadOnly, (Attribute[])attributes.ToArray(typeof(Attribute)) ); + + _properties[Name] = desc; + } + + /// + /// Gets value of some property. + /// + /// Name of the property. + /// Returns value of the property. + public string GetProperty( string Name ) + { + if( !_properties.Contains(Name) ) + throw( new ArgumentException("There's no property with this name: "+Name) ); + return( (string)((MyPropertyDescriptor)_properties[Name]).GetValue(null) ); + } + + /// + /// Removes property from this instance. + /// + /// Name of the property to be removed. + public void RemoveProperty( string Name ) + { + _properties.Remove(Name); + } + + + /// + /// Gets or sets custom user object. + /// + /// + /// This object can be used by the user for any purpose and all non-static methods of this class + /// ignores it. + /// Static method ConstructPropertyManager sets + /// new value into it. + /// + public object Tag + { + get { return( _tag ); } + set { _tag = value; } + } + + + /// + /// Constructs a new PropertyManager from object + /// of known type. + /// + /// Object of known type. + /// If true, all properties are readonly. + /// Returns new PropertyManager + /// or null if object's type isn't known. + /// A this time this method knowns following types: + /// + /// IQuantity + /// IElementSet + /// IDataOperation + /// ILinkableComponent + /// + /// Method saves obj parameter to Tag property, but you can + /// use it for any purpose. + /// + public static PropertyManager ConstructPropertyManager( object obj, bool allReadOnly ) + { + PropertyManager prop = null; + + if( obj is IQuantity ) + { + IQuantity quantity = (IQuantity)obj; + prop = new PropertyManager(); + + // General + prop.SetProperty("Description", quantity.Description, true, "Description of this Quantity.", "General"); + prop.SetProperty("ID", quantity.ID, true, "ID of this Quantity.", "General"); + prop.SetProperty("ValueType", quantity.ValueType.ToString(), true, "Type of this Quantity's value.", "General" ); + + // Dimensions + prop.SetProperty("AmountOfSubstance", quantity.Dimension.GetPower(DimensionBase.AmountOfSubstance).ToString(), true, "The amount of substance in mole.", "Dimensions"); + prop.SetProperty("Currency", quantity.Dimension.GetPower(DimensionBase.Currency).ToString(), true, "Currency in Euro.", "Dimensions"); + prop.SetProperty("ElectricCurrent", quantity.Dimension.GetPower(DimensionBase.ElectricCurrent).ToString(), true, "Electric current in ampere.", "Dimensions"); + prop.SetProperty("Length", quantity.Dimension.GetPower(DimensionBase.Length).ToString(), true, "Length in meter.", "Dimensions"); + prop.SetProperty("LuminousIntensity", quantity.Dimension.GetPower(DimensionBase.LuminousIntensity).ToString(), true, "Luminous intensity in candela.", "Dimensions"); + prop.SetProperty("Mass", quantity.Dimension.GetPower(DimensionBase.Mass).ToString(), true, "Mass in kilogram.", "Dimensions"); + prop.SetProperty("Temperature", quantity.Dimension.GetPower(DimensionBase.Temperature).ToString(), true, "Temperature in kelvin.", "Dimensions"); + prop.SetProperty("Time", quantity.Dimension.GetPower(DimensionBase.Time).ToString(), true, "Time in second.", "Dimensions"); + + // Unit + prop.SetProperty("ConversionFactorToSI", quantity.Unit.ConversionFactorToSI.ToString(), true, "Multiplicative coefficient used to convert this quantity to SI (SiUnit = Unit*ConversionFactorToSI + OffSetToSI).", "Unit"); + prop.SetProperty("OffSetToSI", quantity.Unit.OffSetToSI.ToString(), true, "Additive coefficient used to convert this quantity to SI (SiUnit = Unit*ConversionFactorToSI + OffSetToSI).", "Unit"); + prop.SetProperty("UnitDescription", quantity.Unit.Description, true, "Description of this unit.", "Unit"); + prop.SetProperty("UnitID", quantity.Unit.ID, true, "ID of this unit.", "Unit"); + } + else if( obj is IElementSet ) + { + IElementSet elementSet = (IElementSet)obj; + prop = new PropertyManager(); + + // General + prop.SetProperty("ID", elementSet.ID, true, "ID of this ElementSet", "General" ); + prop.SetProperty("Version", elementSet.Version.ToString(), true, "Version of this ElementSet.", "General" ); + prop.SetProperty("SpatialReferenceID", elementSet.SpatialReference.ID, true, "ID of this ElementSet's SpatialReference", "General" ); + prop.SetProperty("Description", elementSet.Description, true, "Description of this ElementSet.", "General" ); + prop.SetProperty("ElementCount", elementSet.ElementCount.ToString(), true, "Count of elements of this ElementSet.", "General" ); + prop.SetProperty("ElementType", elementSet.ElementType.ToString(), true, "Type of elements in this ElementSet.", "General" ); + } + else if( obj is IDataOperation ) + { + IDataOperation dataOperation = (IDataOperation)obj; + prop = new PropertyManager(); + + string DataOperationID = "DataOperationID"; + + // small trick to avoid that some argument's name is same as DataOperationID. + // it's not quite pure, but it works:-) + bool conflict; + do + { + conflict = false; + for( int i=0; i + /// This class is globaly used to manage assemblies. + ///
    + public class AssemblySupport + { + /// + /// One element of internal list of assemblies + /// + private class AssemblyItem + { + public Assembly assembly; + public string fullName; + } + + /// + /// Internal list of assemblies. + /// + private static ArrayList _assemblies; + + /// + /// Loads specific assembly into internal list of assemblies. + /// + /// Directory filename is relative to, or null if filename is absolute or relative to current directory. + /// Relative or absolute path to assembly. + /// See Utils.GetFileInfo for more info about how + /// specified file is searched. If file isn't found, method tries to + /// load assembly from global assembly cache (GAC). + public static void LoadAssembly( string directory, string filename ) + { + Assembly assembly; + + FileInfo assemblyFileInfo = Utils.GetFileInfo( directory, filename ); + + // if assemby file exists, try to load it + if( assemblyFileInfo.Exists ) + { + assembly = Assembly.LoadFrom(assemblyFileInfo.FullName); + } + else + { + // if file doesn't exist, try to load assembly from GAC + try + { + assembly = Assembly.Load(filename); + } + catch( Exception e ) + { + throw( new Exception("Assembly cannot be loaded (CurrentDirectory='"+Directory.GetCurrentDirectory()+"', Name='"+filename+"')", e) ); + } + } + + // add assembly to list of assemblies only if not already present + foreach( AssemblyItem assemblyItem in _assemblies ) + if( 0==String.Compare(assemblyItem.fullName, assembly.FullName, true) ) + return; + + AssemblyItem newItem = new AssemblyItem(); + newItem.assembly = assembly; + newItem.fullName = assembly.FullName; + _assemblies.Add( newItem ); + } + + + /// + /// Creates new instance of type contained in one previously loaded assembly, or from application context if + /// not found. + /// + /// Name of the type + /// Returns new instance of specified type. + /// New instance is created with default parameterless constructor, + /// if such constructor doesn't exists an exception is thrown. + public static object GetNewInstance( string typeName ) + { + object result; + Type type = null; + + foreach( AssemblyItem assemblyItem in _assemblies ) + { + type = assemblyItem.assembly.GetType( typeName, false ); + if( type!=null ) + break; + } + + if( type==null ) + type = Type.GetType( typeName, false ); + + if( type==null ) + throw( new Exception("Class type "+typeName+" not found neither in loaded assemblies nor in application context.") ); + + // construct new item with default constructor + ConstructorInfo constructorInfo = type.GetConstructor( Type.EmptyTypes ); + if( constructorInfo==null ) + throw( new Exception("Requested class type has no default parameterless constructor.") ); + + result = constructorInfo.Invoke(null); + return( result ); + } + + + /// + /// Releases all assemblies from internal list. + /// + public static void ReleaseAll() + { + _assemblies = new ArrayList(); + GC.Collect(); + } + + /// + /// Initializes internal list of assemblies. + /// + static AssemblySupport() + { + _assemblies = new ArrayList(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/CompositionManager.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/CompositionManager.cs new file mode 100644 index 00000000..b0ccd56d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/CompositionManager.cs @@ -0,0 +1,1124 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Diagnostics; +using System.Globalization; +using System.Text; +using System.Xml; +using System.IO; +using System.Collections; +using System.Threading; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + + +namespace Oatc.OpenMI.Gui.Core +{ + + /// + /// Summary description for CompositionManager. + /// + public class CompositionManager + { + #region Static members + + private static Event _simulationFinishedEvent; + private static Event _simulationFailedEvent; + + static CompositionManager() + { + _simulationFinishedEvent = new Event(EventType.GlobalProgress); + _simulationFinishedEvent.Description = "Simulation finished successfuly..."; + + _simulationFailedEvent = new Event(EventType.GlobalProgress); + _simulationFailedEvent.Description = "Simulation FAILED..."; + } + + + /// + /// Special event saying that simulation has finished. + /// + public static IEvent SimulationFinishedEvent + { + get { return (_simulationFinishedEvent); } + } + + + /// + /// Special event saying that simulation has failed. + /// + public static IEvent SimulationFailedEvent + { + get { return (_simulationFailedEvent); } + } + + + /// + /// Unique ID of trigger "model". + /// + /// Standard models cannot have this ID. + public const string TriggerModelID = "Oatc.OpenMI.Gui.Trigger"; + + #endregion + + #region Internal members + + bool _shouldBeSaved; + + Thread _runThread; + bool _running; + bool _runPrepareForComputationStarted; + IListener _runListener; + bool _runInSameThread; + + ArrayList _models; + + //public ArrayList ModelList + //{ + // get { return _models; } + //} + + ArrayList _connections; + bool[] _listenedEventTypes; + DateTime _triggerInvokeTime; + string _logFileName; + bool _showEventsInListbox; + + public string _filePath; + + public string FilePath + { + get { return _filePath; } + } + + #endregion + + /// + /// Creates a new empty instance of CompositionManager class. + /// + /// See Initialize for more detail. + public CompositionManager() + { + Initialize(); + } + + + #region Public properties + + /// + /// Gets list of all models (ie. instances of UIModel class) in composition. + /// + public ArrayList Models + { + get { return (_models); } + } + + + /// + /// Gets list of all connections (ie. instances of UIConnection class) in composition. + /// + public ArrayList Connections + { + get { return (_connections); } + } + + + /// + /// Gets array of bool describing which events should be listened during simulation run. + /// + /// Array has EventType.NUM_OF_EVENT_TYPES + /// elements. See EventType, Run for more detail. + /// + public bool[] ListenedEventTypes + { + get { return (_listenedEventTypes); } + /* set + { + Debug.Assert( value.Length == (int)EventType.NUM_OF_EVENT_TYPES ); + _listenedEventTypes = value; + _shouldBeSaved = true; + }*/ + } + + + /// + /// Time when trigger should be invoked. + /// + /// See EventType and Run for more detail. + public DateTime TriggerInvokeTime + { + get { return (_triggerInvokeTime); } + set + { + if (_triggerInvokeTime != value) + { + _triggerInvokeTime = value; + _shouldBeSaved = true; + } + } + } + + + /// + /// Relative or absolute path to text file for logging simulation run. + /// + public string LogToFile + { + get { return (_logFileName); } + set + { + if (_logFileName != value) + { + _logFileName = value; + _shouldBeSaved = true; + } + } + } + + + /// + /// Gets or sets whether simulation should be run in same thread. By default it's false. + /// + /// + /// This is only recommendation of composition author, you can override + /// this setting while calling Run method. For example + /// if running from console, simulation is always executed in same thread. + /// + public bool RunInSameThread + { + get { return (_runInSameThread); } + set + { + if (_runInSameThread != value) + { + _shouldBeSaved = true; + _runInSameThread = value; + } + } + } + + + /// + /// Gets or sets whether events should be showed in list-box during simulation in UI. + /// + public bool ShowEventsInListbox + { + get { return (_showEventsInListbox); } + set + { + if (_showEventsInListbox != value) + { + _showEventsInListbox = value; + _shouldBeSaved = true; + } + } + } + + + /// + /// Gets or sets wheather composition was changed and should be saved to OPR file. + /// + /// See SaveToFile. + public bool ShouldBeSaved + { + get { return (_shouldBeSaved); } + set { _shouldBeSaved = value; } + } + + + #endregion + + #region Public methods + + /// + /// Initializes this composition. + /// + public void Initialize() + { + _models = new ArrayList(); + _connections = new ArrayList(); + _listenedEventTypes = new bool[(int)EventType.NUM_OF_EVENT_TYPES]; + for (int i = 0; i < (int)EventType.NUM_OF_EVENT_TYPES; i++) + _listenedEventTypes[i] = false; + + _triggerInvokeTime = new DateTime(1900, 1, 1); + + _showEventsInListbox = true; + + _logFileName = "CompositionRun.log"; + + _shouldBeSaved = false; + + _runPrepareForComputationStarted = false; + _runThread = null; + _running = false; + _runListener = null; + _runInSameThread = false; + + } + + + /// + /// Releases all models and intializes this composition. + /// + public void Release() + { + RemoveAllModels(); + Initialize(); + } + + + /// + /// Adds new model to this composition. + /// + /// Relative or absolute path to OMI file describing the model. + /// Directory omiFilename is relative to, or null if omiFilename is absolute or relative to current directory. + /// Returns newly added model. + /// See Utils.GetFileInfo for more info about how + /// specified file is searched. + public UIModel AddModel(string directory, string omiFilename) + { + UIModel newUiModel; + + //UIModel temp = new UIModel(); + //temp.ReadOMIFile(directory, omiFilename); + //check to see if model component implements ITrigger + //if (temp.LinkableComponent is ILinkableComponent) + //{ + + //} + //else + if (omiFilename == TriggerModelID) + { + newUiModel = UIModel.NewTrigger(); + newUiModel.Color = System.Drawing.Color.Salmon; + newUiModel.Rect = new System.Drawing.Rectangle(100, 100, 100, 100); + newUiModel.Shape = DotSpatial.Modeling.Forms.ModelShape.Triangle; + } + else + { + newUiModel = new UIModel(); + newUiModel.Color = System.Drawing.Color.LightGreen; + newUiModel.Shape = DotSpatial.Modeling.Forms.ModelShape.Ellipse; + + newUiModel.Rect = new System.Drawing.Rectangle(100, 100, 115, 75); + + newUiModel.ReadOMIFile(directory, omiFilename); + } + + // check whether ModelID is unique and also calculate newUiModel's positon + foreach (UIModel uiModel in _models) + { + if (newUiModel.ModelID == uiModel.ModelID) + throw (new Exception("Composition already contains model with ModelID \"" + newUiModel.ModelID + "\" ")); + + if (newUiModel.Rect.X == uiModel.Rect.X && newUiModel.Rect.Y == uiModel.Rect.Y) + { + newUiModel.Rect.X = newUiModel.Rect.X + newUiModel.Rect.Width / 2; + newUiModel.Rect.Y = newUiModel.Rect.Y + newUiModel.Rect.Height / 2; + } + } + + _models.Add(newUiModel); + + _shouldBeSaved = true; + + return (newUiModel); + } + + + /// + /// Removes specified model from composition. + /// + /// Model to be removed. + /// The Dispose method is called on the model. + public void RemoveModel(UIModel model) + { + // first remove all links from/to this model + UIConnection[] copyOfLinks = (UIConnection[])_connections.ToArray(typeof(UIConnection)); + foreach (UIConnection uiLink in copyOfLinks) + if (uiLink.AcceptingModel == model || uiLink.ProvidingModel == model) + RemoveConnection(uiLink); + + try + { + // We call Finish() after computation finished, + // Dispose() when removing models + model.LinkableComponent.Dispose(); + } + catch + { + // we don't care about just disposed model, so do nothing... + } + + _shouldBeSaved = true; + _models.Remove(model); // remove model itself + } + + + /// + /// Removes all model from composition. + /// + /// See RemoveModel for more detail. + public void RemoveAllModels() + { + UIModel[] copyOfModels = (UIModel[])_models.ToArray(typeof(UIModel)); + foreach (UIModel model in copyOfModels) + RemoveModel(model); + } + + + /// + /// Creates new connection between two models in composition. + /// + /// Source model + /// Target model + /// Connection between two models is just abstraction which can hold links between models. + /// The direction of connection and its links is same. There can be only one connection between two models. + public void AddConnection(UIModel providingModel, UIModel acceptingModel) + { + if (providingModel == acceptingModel) + throw (new Exception("Cannot connect model with itself.")); + + // Check whether both models exist + bool providingFound = false, acceptingFound = false; + foreach (UIModel model in _models) + { + if (model == providingModel) + providingFound = true; + if (model == acceptingModel) + acceptingFound = true; + } + if (!providingFound || !acceptingFound) + throw (new Exception("Cannot find providing or accepting.")); + + // check whether this link isn't already here (if yes, do nothing) + foreach (UIConnection link in _connections) + if (link.ProvidingModel == providingModel && link.AcceptingModel == acceptingModel) + return; + + // if providing model is trigger, do nothing + if (providingModel.ModelID == TriggerModelID) + return; + + // if accepting model is trigger, remove all other trigger connections + if (acceptingModel.ModelID == TriggerModelID) + { + ArrayList connectionsToRemove = new ArrayList(); + foreach (UIConnection uiLink in _connections) + { + if (uiLink.AcceptingModel.ModelID == TriggerModelID + || uiLink.ProvidingModel.ModelID == TriggerModelID) + connectionsToRemove.Add(uiLink); + } + foreach (UIConnection uiLink in connectionsToRemove) + RemoveConnection(uiLink); + } + + _connections.Add(new UIConnection(providingModel, acceptingModel)); + + _shouldBeSaved = true; + } + + + /// + /// Removes connection between two models. + /// + /// Connection to be removed. + public void RemoveConnection(UIConnection connection) + { + // remove ILinks from both connected components + if (!_runPrepareForComputationStarted) + foreach (ILink link in connection.Links) + { + string linkID = link.ID; + ILinkableComponent + sourceComponent = link.SourceComponent, + targetComponent = link.TargetComponent; + + + sourceComponent.RemoveLink(linkID); + targetComponent.RemoveLink(linkID); + } + + _connections.Remove(connection); + + _shouldBeSaved = true; + } + + + /// + /// Determines whether composition has trigger. + /// + /// Returns true if composition has trigger, otherwise returns false. + /// See GetTrigger for more detail. + public bool HasTrigger() + { + return (GetTrigger() != null); + } + + + /// + /// Gets trigger "model". + /// + /// Returns trigger, or null if composition has no trigger. + public Trigger GetTrigger() + { + foreach (UIModel uiModel in _models) + if (uiModel.ModelID == TriggerModelID) + return ((Trigger)uiModel.LinkableComponent); + return (null); + } + + + /// + /// Saves composition to OmiEd Project XML file (OPR). + /// + /// Path to OPR file. + public void SaveToFile(string filePath) + { + _filePath = filePath; + + XmlDocument xmlDocument = new XmlDocument(); + SaveToXmlDocument(xmlDocument); + + xmlDocument.Save(filePath); + + _shouldBeSaved = false; + } + + + /// + /// Loads composition from OmiEd Project XML file (OPR). + /// + /// Path to OPR file. + public void LoadFromFile(string filePath) + { + _filePath = filePath; + + XmlDocument xmlDocument = new XmlDocument(); + FileInfo fileInfo = new FileInfo(filePath); + + xmlDocument.Load(fileInfo.FullName); + + // omi files will be searched relatively from filePath's path + LoadFromXmlDocument(fileInfo.DirectoryName, xmlDocument); + + _shouldBeSaved = false; + } + + + /// + /// Reloads the composition. + /// + /// Reloading is useful if you want to run simulation multiple times in one execution time. + /// Some models aren't able to run simulation after it was already run, and may crash in such case. + /// That's because they need to create new instance of them, on which the Initialize method + /// is called. + /// Reloading is done same way like when you save the composition to OPR file, restarts the application, + /// and open this OPR file again. Of course, it is done only internally in the memory. + public void Reload() + { + XmlDocument xmlDocument = new XmlDocument(); + + SaveToXmlDocument(xmlDocument); + + // preserve members that aren't saved to XML + bool oldShouldBeSaved = _shouldBeSaved; + + Release(); + AssemblySupport.ReleaseAll(); + + LoadFromXmlDocument(Path.GetDirectoryName(_filePath), xmlDocument); + + _shouldBeSaved = oldShouldBeSaved; + } + + + /// + /// Calculates time horizon of the simulation, + /// ie. time between earliest model start and latest model end. + /// + /// Returns simulation time horizon. + public ITimeSpan GetSimulationTimehorizon() + { + TimeStamp start = new TimeStamp(double.MaxValue), + end = new TimeStamp(double.MinValue); + + foreach (UIModel model in _models) + { + if (model.ModelID == CompositionManager.TriggerModelID) + continue; + start.ModifiedJulianDay = Math.Min(start.ModifiedJulianDay, model.LinkableComponent.TimeHorizon.Start.ModifiedJulianDay); + end.ModifiedJulianDay = Math.Max(end.ModifiedJulianDay, model.LinkableComponent.TimeHorizon.End.ModifiedJulianDay); + } + + Debug.Assert(start.ModifiedJulianDay < end.ModifiedJulianDay); + + return (new Oatc.OpenMI.Sdk.Backbone.TimeSpan(start, end)); + } + + + /// + /// Runs simulation. + /// + /// Simulation listener. + /// If true, simulation is run in same thread like caller, + /// ie. method blocks until simulation don't finish. If false, simulation is + /// run in separate thread and method returns immediately. + /// + /// Simulation is run the way that trigger invokes ILinkableComponent.GetValues + /// method of the model it's connected to + /// at the time specified by TriggerInvokeTime property. + /// If you need to use more than one listener you can use ProxyListener + /// class or ProxyMultiThreadListener if runInSameThread is false. + /// + public void Run(IListener runListener, bool runInSameThread) + { + if (!HasTrigger()) + throw (new Exception("Composition has no trigger.")); + if (_running) + throw (new Exception("Simulation is already running.")); + + _running = true; + _runListener = runListener; + + try + { + TimeStamp runToTime = new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(_triggerInvokeTime)); + + // Create informative message + if (_runListener != null) + { + StringBuilder description = new StringBuilder(); + description.Append("Starting simulation at "); + description.Append(DateTime.Now.ToString()); + description.Append(","); + + description.Append(" composition consists from following models:\n"); + foreach (UIModel model in _models) + { + description.Append(model.ModelID); + description.Append(", "); + } + + // todo: add more info? + + Event theEvent = new Event(EventType.Informative); + theEvent.Description = description.ToString(); + _runListener.OnEvent(theEvent); + } + + _runPrepareForComputationStarted = true; + + // prepare for computation + if (_runListener != null) + { + Event theEvent = new Event(EventType.Informative); + theEvent.Description = "Preparing for computation...."; + _runListener.OnEvent(theEvent); + } + foreach (UIModel uimodel in _models) + { + if (_runListener != null) + { + Event theEvent = new Event(EventType.Informative); + theEvent.Description = "Calling Prepare() method of model " + uimodel.ModelID; + _runListener.OnEvent(theEvent); + } + uimodel.LinkableComponent.Prepare(); + } + + // subscribing event listener to all models + if (_runListener != null) + { + Event theEvent = new Event(EventType.Informative); + theEvent.Description = "Subscribing proxy event listener...."; + _runListener.OnEvent(theEvent); + + for (int i = 0; i < _runListener.GetAcceptedEventTypeCount(); i++) + foreach (UIModel uimodel in _models) + { + theEvent = new Event(EventType.Informative); + theEvent.Description = "Calling Subscribe() method with EventType." + ((EventType)i).ToString() + " of model " + uimodel.ModelID; + _runListener.OnEvent(theEvent); + + for (int j = 0; j < uimodel.LinkableComponent.GetPublishedEventTypeCount(); j++) + if (uimodel.LinkableComponent.GetPublishedEventType(j) == _runListener.GetAcceptedEventType(i)) + { + uimodel.LinkableComponent.Subscribe(_runListener, _runListener.GetAcceptedEventType(i)); + break; + } + } + } + + + + if (!runInSameThread) + { + // creating run thread + if (_runListener != null) + { + Event theEvent = new Event(EventType.Informative); + theEvent.Description = "Creating run thread...."; + _runListener.OnEvent(theEvent); + } + + _runThread = new Thread(new ThreadStart(RunThreadFunction)); + + // starting thread... + if (_runListener != null) + { + Event theEvent = new Event(EventType.GlobalProgress); + theEvent.Description = "Starting run thread...."; + _runListener.OnEvent(theEvent); + } + + _runThread.Start(); + } + else + { + // run simulation in same thread (for example when running from console) + if (_runListener != null) + { + Event theEvent = new Event(EventType.Informative); + theEvent.Description = "Running simulation in same thread...."; + _runListener.OnEvent(theEvent); + } + RunThreadFunction(); + } + } + catch (System.Exception e) + { + if (_runListener != null) + { + Event theEvent = new Event(EventType.Informative); + theEvent.Description = "Exception occured while initiating simulation run: " + e.ToString(); + _runListener.OnEvent(theEvent); + _runListener.OnEvent(SimulationFailedEvent); // todo: add info about time to this event + } + } + + } + + + /// + /// Stops the simulation. + /// + /// This method has effect only if simulation is run in separate thread + /// (see Run method). + /// This method calls Abort method on the simulation thread. + public void Stop() + { + if (_running && _runThread != null) + _runThread.Abort(); + _runThread = null; + } + + + #endregion + + #region Private methods + + /// + /// Saves composition to XML document. + /// + /// XML document + private void SaveToXmlDocument(XmlDocument xmlDocument) + { + XmlElement xmlRoot = xmlDocument.CreateElement("guiComposition"); + + xmlRoot.SetAttribute("version", "1.0"); + + // save UIModels + XmlElement models = xmlDocument.CreateElement("models"); + foreach (UIModel model in _models) + { + XmlElement xmlUiModel = xmlDocument.CreateElement("model"); + + string oprDirectory = Path.GetDirectoryName(_filePath); + + xmlUiModel.SetAttribute("omi", FileSupport.GetRelativePath(oprDirectory, model.OmiFilename)); + xmlUiModel.SetAttribute("rect_x", model.Rect.X.ToString()); + xmlUiModel.SetAttribute("rect_y", model.Rect.Y.ToString()); + xmlUiModel.SetAttribute("rect_width", model.Rect.Width.ToString()); + xmlUiModel.SetAttribute("rect_height", model.Rect.Height.ToString()); + + models.AppendChild(xmlUiModel); + } + xmlRoot.AppendChild(models); + + // save UILinks + XmlElement links = xmlDocument.CreateElement("links"); + foreach (UIConnection uiLink in _connections) + { + XmlElement xmlUiLink = xmlDocument.CreateElement("uilink"); + + xmlUiLink.SetAttribute("model_providing", uiLink.ProvidingModel.ModelID); + xmlUiLink.SetAttribute("model_accepting", uiLink.AcceptingModel.ModelID); + + // save OpenMI Links + foreach (Link link in uiLink.Links) + { + XmlElement xmlLink = xmlDocument.CreateElement("link"); + xmlLink.SetAttribute("id", link.ID); + xmlLink.SetAttribute("source_elementset", link.SourceElementSet.ID); + xmlLink.SetAttribute("source_quantity", link.SourceQuantity.ID); + xmlLink.SetAttribute("target_elementset", link.TargetElementSet.ID); + xmlLink.SetAttribute("target_quantity", link.TargetQuantity.ID); + + // save selected DataOperations + for (int i = 0; i < link.DataOperationsCount; i++) + { + XmlElement xmlDataOperation = xmlDocument.CreateElement("dataoperation"); + xmlDataOperation.SetAttribute("id", link.GetDataOperation(i).ID); + + // save DataOperation's writeable arguments + for (int j = 0; j < link.GetDataOperation(i).ArgumentCount; j++) + if (!link.GetDataOperation(i).GetArgument(j).ReadOnly) + { + XmlElement xmlArgument = xmlDocument.CreateElement("argument"); + xmlArgument.SetAttribute("key", link.GetDataOperation(i).GetArgument(j).Key); + xmlArgument.SetAttribute("value", link.GetDataOperation(i).GetArgument(j).Value); + xmlDataOperation.AppendChild(xmlArgument); + } + xmlLink.AppendChild(xmlDataOperation); + } + xmlUiLink.AppendChild(xmlLink); + } + links.AppendChild(xmlUiLink); + } + xmlRoot.AppendChild(links); + + // save run properties + XmlElement runProperties = xmlDocument.CreateElement("runproperties"); + + CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture; + Thread.CurrentThread.CurrentCulture = new CultureInfo(""); + + StringBuilder str = new StringBuilder((int)EventType.NUM_OF_EVENT_TYPES); + for (int i = 0; i < _listenedEventTypes.Length; i++) + str.Append(_listenedEventTypes[i] ? "1" : "0"); + + runProperties.SetAttribute("listenedeventtypes", str.ToString()); + runProperties.SetAttribute("triggerinvoke", _triggerInvokeTime.ToString()); + + runProperties.SetAttribute("runinsamethread", _runInSameThread ? "1" : "0"); + + runProperties.SetAttribute("showeventsinlistbox", _showEventsInListbox ? "1" : "0"); + + runProperties.SetAttribute("logfilename", _logFileName == null ? "" : _logFileName); + + xmlRoot.AppendChild(runProperties); + + xmlDocument.AppendChild(xmlRoot); + + Thread.CurrentThread.CurrentCulture = currentCulture; + } + + + /// + /// Loads composition from XML document. + /// + /// Directory the OMI files are relative to. + /// XML document + private void LoadFromXmlDocument(string omiRelativeDirectory, XmlDocument xmlDocument) + { + // once you choose to load new file, all previously opened models are closed + Release(); + + CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture; + Thread.CurrentThread.CurrentCulture = new CultureInfo(""); + + + XmlElement xmlRoot = (XmlElement)xmlDocument.ChildNodes[0]; + XmlElement xmlModels = (XmlElement)xmlRoot.ChildNodes[0]; + XmlElement xmlLinks = (XmlElement)xmlRoot.ChildNodes[1]; + + // run properties aren't mandatory + XmlElement xmlRunProperties = null; + if (xmlRoot.ChildNodes.Count > 2) + xmlRunProperties = (XmlElement)xmlRoot.ChildNodes[2]; + + // check + if (xmlRoot.GetAttribute("version") != "1.0") + throw (new FormatException("Version of file not supported. Currently supported only version '1.0'")); + if (xmlModels.Name != "models" + || xmlLinks.Name != "links") + throw (new FormatException("Unknown file format ('models' or 'links' tag not present where expected).")); + if (xmlRunProperties != null) + if (xmlRunProperties.Name != "runproperties") + throw (new FormatException("Unknown file format ('runproperties' tag not present where expected).")); + + // read UIModels + foreach (XmlElement xmlUiModel in xmlModels.ChildNodes) + { + try + { + UIModel uiModel = AddModel(omiRelativeDirectory, xmlUiModel.GetAttribute("omi")); + + uiModel.Rect.X = Int32.Parse(xmlUiModel.GetAttribute("rect_x")); + uiModel.Rect.Y = Int32.Parse(xmlUiModel.GetAttribute("rect_y")); + uiModel.Rect.Width = Int32.Parse(xmlUiModel.GetAttribute("rect_width")); + uiModel.Rect.Height = Int32.Parse(xmlUiModel.GetAttribute("rect_height")); + } + catch (Exception e) + { + throw (new Exception( + "Model cannot be added to composition due to exception.\n" + + "OMI filename: " + xmlUiModel.GetAttribute("omi") + "\n" + + "Exception: " + e.ToString())); + } + } + + // read UILinks + foreach (XmlElement xmlUiLink in xmlLinks.ChildNodes) + { + // find models corresponding to this UIConnection + UIModel providingModel = null, acceptingModel = null; + foreach (UIModel uiModel in _models) + if (uiModel.ModelID == xmlUiLink.GetAttribute("model_providing")) + { + providingModel = uiModel; + break; + } + foreach (UIModel uiModel in _models) + if (uiModel.ModelID == xmlUiLink.GetAttribute("model_accepting")) + { + acceptingModel = uiModel; + break; + } + + if (providingModel == null || acceptingModel == null) + { + throw (new Exception( + "One model (or both) corresponding to this link cannot be found...\n" + + "Providing model: " + xmlUiLink.GetAttribute("model_providing") + "\n" + + "Accepting model: " + xmlUiLink.GetAttribute("model_accepting"))); + } + + // construct UIConnection + UIConnection uiLink = new UIConnection(providingModel, acceptingModel); + + // read OpenMI Links + foreach (XmlElement xmlLink in xmlUiLink.ChildNodes) + { + // find corresponding exchange items + IOutputExchangeItem outputExchangeItem = null; + IInputExchangeItem inputExchangeItem = null; + + int count = providingModel.LinkableComponent.OutputExchangeItemCount; + string sourceElementSetID = xmlLink.GetAttribute("source_elementset"); + string sourceQuantityID = xmlLink.GetAttribute("source_quantity"); + for (int i = 0; i < count; i++) + if (sourceElementSetID == providingModel.LinkableComponent.GetOutputExchangeItem(i).ElementSet.ID + && sourceQuantityID == providingModel.LinkableComponent.GetOutputExchangeItem(i).Quantity.ID) + { + outputExchangeItem = providingModel.LinkableComponent.GetOutputExchangeItem(i); + break; + } + + for (int i = 0; i < acceptingModel.LinkableComponent.InputExchangeItemCount; i++) + if (xmlLink.GetAttribute("target_elementset") == acceptingModel.LinkableComponent.GetInputExchangeItem(i).ElementSet.ID + && xmlLink.GetAttribute("target_quantity") == acceptingModel.LinkableComponent.GetInputExchangeItem(i).Quantity.ID) + { + inputExchangeItem = acceptingModel.LinkableComponent.GetInputExchangeItem(i); + break; + } + + if (outputExchangeItem == null || inputExchangeItem == null) + throw (new Exception( + "Cannot find exchange item\n" + + "Providing model: " + providingModel.ModelID + "\n" + + "Accepting model: " + acceptingModel.ModelID + "\n" + + "Source ElementSet: " + xmlLink.GetAttribute("source_elementset") + "\n" + + "Source Quantity: " + xmlLink.GetAttribute("source_quantity") + "\n" + + "Target ElementSet: " + xmlLink.GetAttribute("target_elementset") + "\n" + + "Target Quantity: " + xmlLink.GetAttribute("target_quantity"))); + + + // read selected DataOperation's IDs, find their equivalents + // in outputExchangeItem, and add these to link + ArrayList dataOperationsToAdd = new ArrayList(); + + foreach (XmlElement xmlDataOperation in xmlLink.ChildNodes) + for (int i = 0; i < outputExchangeItem.DataOperationCount; i++) + { + IDataOperation dataOperation = outputExchangeItem.GetDataOperation(i); + if (dataOperation.ID == xmlDataOperation.GetAttribute("id")) + { + // set data operation's arguments if any + foreach (XmlElement xmlArgument in xmlDataOperation.ChildNodes) + { + string argumentKey = xmlArgument.GetAttribute("key"); + for (int j = 0; j < dataOperation.ArgumentCount; j++) + { + IArgument argument = dataOperation.GetArgument(j); + if (argument.Key == argumentKey && !argument.ReadOnly) + argument.Value = xmlArgument.GetAttribute("value"); + } + } + + dataOperationsToAdd.Add(dataOperation); + break; + } + } + + // now construct the Link... + Link link = new Link( + providingModel.LinkableComponent, + outputExchangeItem.ElementSet, + outputExchangeItem.Quantity, + acceptingModel.LinkableComponent, + inputExchangeItem.ElementSet, + inputExchangeItem.Quantity, + "No description available.", + xmlLink.GetAttribute("id"), + dataOperationsToAdd); + + + // ...add the link to the list + uiLink.Links.Add(link); + + // and add it to both LinkableComponents + uiLink.AcceptingModel.LinkableComponent.AddLink(link); + uiLink.ProvidingModel.LinkableComponent.AddLink(link); + } + + // add new UIConnection to list of connections + _connections.Add(uiLink); + } + + // read run properties (if present) + if (xmlRunProperties != null) + { + string str = xmlRunProperties.GetAttribute("listenedeventtypes"); + if (str.Length != (int)EventType.NUM_OF_EVENT_TYPES) + throw (new FormatException("Invalid number of event types in 'runproperties' tag, expected " + EventType.NUM_OF_EVENT_TYPES + ", but only " + str.Length + " found.")); + for (int i = 0; i < (int)EventType.NUM_OF_EVENT_TYPES; i++) + switch (str[i]) + { + case '1': _listenedEventTypes[i] = true; break; + case '0': _listenedEventTypes[i] = false; break; + default: throw (new FormatException("Unknown format of 'listenedeventtypes' attribute in 'runproperties' tag.")); + } + _triggerInvokeTime = DateTime.Parse(xmlRunProperties.GetAttribute("triggerinvoke")); + + _logFileName = xmlRunProperties.GetAttribute("logfilename"); + if (_logFileName != null) + { + _logFileName = _logFileName.Trim(); + if (_logFileName == "") + _logFileName = null; // if not set, logfile isn't used + } + + + str = xmlRunProperties.GetAttribute("showeventsinlistbox"); + if (str == null || str == "" || str == "1") + _showEventsInListbox = true; // if not set, value is true + else + _showEventsInListbox = false; + + str = xmlRunProperties.GetAttribute("runinsamethread"); + if (str == "1") + _runInSameThread = true; + } + + + Thread.CurrentThread.CurrentCulture = currentCulture; + } + + + /// + /// This method is called in Run method. + /// + private void RunThreadFunction() + { + Trigger trigger = GetTrigger(); + + Debug.Assert(trigger != null); + + Thread.Sleep(0); + + try + { + // run it !!! + trigger.Run(new TimeStamp(CalendarConverter.Gregorian2ModifiedJulian(TriggerInvokeTime))); + + // close models down + if (_runListener != null) + { + Event theEvent = new Event(EventType.Informative); + theEvent.Description = "Closing models down..."; + _runListener.OnEvent(theEvent); + } + + foreach (UIModel uimodel in _models) + { + if (_runListener != null) + { + string ModelID = uimodel.ModelID; + Event theEvent = new Event(EventType.Informative); + theEvent.Description = "Calling Finish() on model " + ModelID; + _runListener.OnEvent(theEvent); + } + uimodel.LinkableComponent.Finish(); + } + + // thread finishes - send well known event + if (_runListener != null) + { + _simulationFinishedEvent.Description = "Simulation finished successfuly at " + DateTime.Now.ToString() + "..."; + _runListener.OnEvent(SimulationFinishedEvent); + } + } + catch (Exception e) + { + if (_runListener != null) + { + Event theEvent = new Event(EventType.Informative); + theEvent.Description = "Exception occured during simulation: " + e.ToString(); + _runListener.OnEvent(theEvent); + + _simulationFailedEvent.Description = "Simulation FAILED at " + DateTime.Now.ToString() + "..."; + _runListener.OnEvent(SimulationFailedEvent); + } + } + finally + { + _running = false; + _runListener = null; // release listener + } + } + + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/Listeners.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/Listeners.cs new file mode 100644 index 00000000..5fe08197 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/Listeners.cs @@ -0,0 +1,1061 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Runtime.InteropServices; +using System.Collections; +using System.Threading; +using System.Text; +using System.Diagnostics; +using System.IO; +using System.Windows.Forms; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Gui.Core; + +namespace Oatc.OpenMI.Gui.Core +{ + /// + /// Listener used to log simulation progress to text file. + /// + public class LogFileListener: IListener + { + EventType[] _acceptedEventTypes; + StreamWriter _writer; + + /// + /// Creates new instance of LogFileListener which doesn't listen any + /// event type. + /// + public LogFileListener() + { + _acceptedEventTypes = new EventType[0]; + } + + + /// + /// Creates new instance of LogFileListener. + /// + /// Listened event types. + /// Path to text file for logging. + /// See Initialize for more detail. + public LogFileListener( bool[] listenedEvents, string filename ) + { + Initialize( listenedEvents, filename ); + } + + + /// + /// Closes text file for logging, if any. + /// + ~LogFileListener() + { + if( _writer!=null ) + { + _writer.Close(); + _writer = null; + } + } + + + /// + /// Initializes this listener to log events to text file. + /// + /// bool array describing which event types should be listened. + /// Path to text file for logging. + /// listenedEvents must have exactly + /// EventType.NUM_OF_EVENT_TYPES elements. + /// See EventType for more detail. + public void Initialize( bool[] listenedEvents, string filename ) + { + if( listenedEvents.Length != (int)EventType.NUM_OF_EVENT_TYPES ) + throw( new ArgumentException("Length of this array must be same as EventType.NUM_OF_EVENT_TYPES", "listenedEvents") ); + + ArrayList acceptedEventTypes = new ArrayList(); + for( int i=0; i 0 ) + { + _writer = new StreamWriter( filename, false, Encoding.Unicode ); + _writer.AutoFlush = true; + } + else + { + _writer = null; + } + } + + + /// + /// Get accepted event type. + /// + /// Index of accepted event type. + /// Returns accepted EventType. + /// See IListener.GetAcceptedEventType + /// for more detail. + public EventType GetAcceptedEventType(int acceptedEventTypeIndex) + { + return( _acceptedEventTypes[acceptedEventTypeIndex] ); + } + + + /// + /// Get accepted event type count. + /// + /// Returns number of accepted EventType. + /// See IListener.GetAcceptedEventTypeCount + /// for more detail. + public int GetAcceptedEventTypeCount() + { + return( _acceptedEventTypes.Length ); + } + + + /// + /// Logs one event to text file. + /// + /// Event to be logged. + /// See IListener.OnEvent + /// for more detail. + public void OnEvent(IEvent Event) + { + if( _writer!=null ) + { + _writer.WriteLine( Utils.EventToString(Event) ); + + if( Event==CompositionManager.SimulationFinishedEvent + || Event==CompositionManager.SimulationFailedEvent ) + { + _writer.Close(); + _writer = null; + } + } + } + } + + + /// + /// Listener used to show simulation progress in ListView control. + /// + public class ListViewListener: IListener + { + EventType[] _acceptedEventTypes; + ListView _listView; + uint _maxListViewItems; + uint _eventsCount; + + /// + /// Creates new instance of ListViewListener which doesn't listen any + /// event type. + /// + public ListViewListener() + { + _acceptedEventTypes = new EventType[0]; + } + + + /// + /// Creates new instance of ListViewListener. + /// + /// Listened event types. + /// List-view where event should be added. + /// Maximum number of records in list-view. + /// See Initialize for more detail. + public ListViewListener( bool[] listenedEvents, ListView listView, uint maxListViewItems ) + { + Initialize( listenedEvents, listView, maxListViewItems ); + } + + + /// + /// Initializes this listener to log events to list-box. + /// + /// bool array describing which event types should be listened. + /// List-view where event should be added. + /// Maximum number of records in list-view. Negative value means infinity. + /// listenedEvents must have exactly + /// EventType.NUM_OF_EVENT_TYPES elements. + /// See EventType for more detail. + public void Initialize( bool[] listenedEvents, ListView listView, uint maxListViewItems ) + { + if( listenedEvents.Length != (int)EventType.NUM_OF_EVENT_TYPES ) + throw( new ArgumentException("Length of this array must be same as EventType.NUM_OF_EVENT_TYPES", "listenedEvents") ); + + _maxListViewItems = maxListViewItems; + _listView = listView; + + ArrayList acceptedEventTypes = new ArrayList(); + for( int i=0; i + /// Get accepted event type. + ///
    + /// Index of accepted event type. + /// Returns accepted EventType. + /// See IListener.GetAcceptedEventType + /// for more detail. + public EventType GetAcceptedEventType(int acceptedEventTypeIndex) + { + return( _acceptedEventTypes[acceptedEventTypeIndex] ); + } + + + /// + /// Get accepted event type count. + /// + /// Returns number of accepted EventType. + /// See IListener.GetAcceptedEventTypeCount + /// for more detail. + public int GetAcceptedEventTypeCount() + { + return( _acceptedEventTypes.Length ); + } + + + /// + /// Adds one event to list-box. + /// + /// Event to be added. + /// See IListener.OnEvent + /// for more detail. + public void OnEvent(IEvent Event) + { + // Use BeginInvoke for case this method is called from different thread than + // the _progressBar's owner (otherwise application would hang here). + // Asynchronous version is used for case that thread is blocked. + _listView.BeginInvoke( new UpdateListboxDelegate(UpdateListbox), new object[] {Event} ); + } + + delegate void UpdateListboxDelegate( IEvent Event ); + + private void UpdateListbox( IEvent Event ) + { + _listView.BeginUpdate(); + + //int selectedIndex = _listBox.SelectedIndex; + + int itemsToRemove = (int)_listView.Items.Count - (int)_maxListViewItems; + while( itemsToRemove > 0 ) + { + _listView.Items.RemoveAt(0); + itemsToRemove--; + } + + // add event + + _listView.Items.Add( GetItem(Event) ); + + //_listBox.SelectedIndex = selectedIndex; + //_listView.SelectedIndex = _listBox.Items.Count - 1; TODO + + _listView.EndUpdate(); + } + + private ListViewItem GetItem( IEvent Event ) + { + string[] subItems = new string[5]; + subItems[0] = (_eventsCount++).ToString(); + subItems[1] = Event.Type.ToString(); + subItems[2] = Event.Description; + + ILinkableComponent sender = Event.Sender; + if( sender != null ) + subItems[3] = sender.ModelID; + + ITimeStamp simTime = Event.SimulationTime; + if( simTime != null ) + subItems[4] = CalendarConverter.ModifiedJulian2Gregorian(simTime.ModifiedJulianDay).ToString(); + + return( new ListViewItem(subItems) ); + } + + + /// + /// Method adds events from queue to listbox. + /// + /// Queue with events (i.e. IEvent instances) + /// If one event is + /// SimulationFinishedEvent + /// or SimulationFailedEvent, + /// return true, that means the simulation has finished. + /// Returns false otherwise. + /// + /// + /// This method should be used instead of standard OnEvent + /// method in case there are more events to add. That's because using standard method + /// list-box is repainted once with every item added and there can be + /// much more items than list-box can even hold, but they all are added and later removed. + /// You can see this is very unefficient. This method performs + /// all operations much more effectively and repaints list-box only once. + /// + public bool AddQueuedEvents( Queue queue ) + { + bool finished = false; + IEvent theEvent; + //int selectedIndex; + + if( queue.Count==0 && _listView.Items.Count<=(int)_maxListViewItems ) + return(false); // nothing to add + + _listView.BeginUpdate(); + //selectedIndex = _listBox.SelectedIndex; + + if( queue.Count >= (int)_maxListViewItems ) + { + // there are more events to add than maximum allowed number of items + _listView.Items.Clear(); + + int eventsToRemove = queue.Count - (int)_maxListViewItems; + for( int i=0; i + /// Listener used to write events to console. + /// + public class ConsoleListener: IListener + { + EventType[] _acceptedEventTypes; + + /// + /// Creates new instance of ConsoleListener which doesn't listen any + /// event type. + /// + public ConsoleListener() + { + _acceptedEventTypes = new EventType[0]; + } + + /// + /// Creates new instance of ConsoleListener. + /// + /// Listened event types. + /// See Initialize for more detail. + public ConsoleListener( bool[] listenedEvents ) + { + Initialize( listenedEvents ); + } + + /// + /// Initializes this listener to write events to console. + /// + /// bool array describing which event types should be listened. + /// listenedEvents must have exactly + /// EventType.NUM_OF_EVENT_TYPES elements. + /// See EventType for more detail. + public void Initialize( bool[] listenedEvents ) + { + if( listenedEvents.Length != (int)EventType.NUM_OF_EVENT_TYPES ) + throw( new ArgumentException("Length of this array must be same as EventType.NUM_OF_EVENT_TYPES", "listenedEvents") ); + + ArrayList acceptedEventTypes = new ArrayList(); + for( int i=0; i + /// Get accepted event type. + /// + /// Index of accepted event type. + /// Returns accepted EventType. + /// See IListener.GetAcceptedEventType + /// for more detail. + public EventType GetAcceptedEventType(int acceptedEventTypeIndex) + { + return( _acceptedEventTypes[acceptedEventTypeIndex] ); + } + + /// + /// Get accepted event type count. + /// + /// Returns number of accepted EventType. + /// See IListener.GetAcceptedEventTypeCount + /// for more detail. + public int GetAcceptedEventTypeCount() + { + return( _acceptedEventTypes.Length ); + } + + /// + /// Writes one event to console. + /// + /// Event to write. + /// See IListener.OnEvent + /// for more detail. + public void OnEvent(IEvent Event) + { + Console.WriteLine( Utils.EventToString(Event) ); + } + + } + + + /// + /// Listener used to show simulation progress in progress bar. + /// + /// + /// This listener accepts all events, the only thing which reads from + /// them is the sender model's simulation time. + /// See OnEvent, Initialize + /// for more details. + /// + public class ProgressBarListener: IListener + { + private const int ProgressBarMaximum = 1024; + + private ProgressBar _progressBar; + private ITimeSpan _simulationTimeHorizon; + private double _maximumTime; + + /// + /// Creates a new instance of ProgressBarListener class. + /// + /// Time horizon of whole simulation. + /// Progress bar. + /// See Initialize + /// for more details. + public ProgressBarListener( ITimeSpan simulationTimeHorizon, ProgressBar progressBar ) + { + Initialize( simulationTimeHorizon, progressBar ); + } + + /// + /// Initializes this listener to show progress of simulation using events. + /// + /// Time horizon of whole simulation. + /// Progress bar where simulation progress will be shown. + /// Typically simulationTimeHorizon is defined as time from earliest model start + /// to latest model end. + public void Initialize( ITimeSpan simulationTimeHorizon, ProgressBar progressBar ) + { + _progressBar = progressBar; + _simulationTimeHorizon = simulationTimeHorizon; + + _maximumTime = simulationTimeHorizon.Start.ModifiedJulianDay; + + _progressBar.Minimum = 0; + _progressBar.Maximum = ProgressBarMaximum; + } + + /// + /// Get accepted event type. + /// + /// Index of accepted event type. + /// Returns accepted EventType. + /// See IListener.GetAcceptedEventType + /// for more detail. + public EventType GetAcceptedEventType(int acceptedEventTypeIndex) + { + return( (EventType)acceptedEventTypeIndex ); + } + + /// + /// Get accepted event type count. + /// + /// Returns number of accepted EventType. + /// See IListener.GetAcceptedEventTypeCount + /// for more detail. + public int GetAcceptedEventTypeCount() + { + return( (int)EventType.NUM_OF_EVENT_TYPES ); + } + + /// + /// Advances progress-bar if possible. + /// + /// Event from which sender model's simulation time is read. + /// + /// If Event is + /// CompositionManager.SimulationFinishedEvent + /// or CompositionManager.SimulationFailedEvent, + /// the progress bar value is set to maximum and progress bar is disabled. This way the window + /// hosting progress bar determines that simulation finished. + /// See IListener.OnEvent + /// for more detail. + public void OnEvent(IEvent Event) + { + if( Event==CompositionManager.SimulationFinishedEvent + || Event==CompositionManager.SimulationFailedEvent ) + { + // Simulation has finished, so disable progress bar, + // RunBox form catches this event so it knows, when simulation finished + _progressBar.Maximum = ProgressBarMaximum; + _progressBar.Enabled = false; + } + else + { + if( Event.SimulationTime != null ) + if( Event.SimulationTime.ModifiedJulianDay > _maximumTime ) + { + _maximumTime = Event.SimulationTime.ModifiedJulianDay; + int progressBarValue = (int)( ProgressBarMaximum * (_maximumTime-_simulationTimeHorizon.Start.ModifiedJulianDay) / (_simulationTimeHorizon.End.ModifiedJulianDay-_simulationTimeHorizon.Start.ModifiedJulianDay) ); + + // Use BeginInvoke for case this method is called from different thread than + // the _progressBar's owner (otherwise application would hang here). + // Asynchronous version is used for case that thread is blocked. + _progressBar.BeginInvoke( new UpdateProgressBarDelegate(UpdateProgressBar), new object[] {progressBarValue} ); + } + } + } + + private delegate void UpdateProgressBarDelegate( int progressBarValue ); + + private void UpdateProgressBar( int progressBarValue ) + { + if( _progressBar.Value != progressBarValue ) + { + _progressBar.Value = Math.Min( progressBarValue, ProgressBarMaximum ); + _progressBar.Invalidate(); + } + } + + } + + + /// + /// Listener used to call Application.DoEvents method + /// periodically. + /// + /// This listener is typically used when simulation runs in same thread as GUI to be able + /// to redraw window, etc... + public class DoEventsListener: IListener + { + DateTime _lastDoEventsTime; + long _minDoEventsIntervalTicks; + + /// + /// Creates new instance of DoEventsListener class. + /// + /// Minimum interval between Application.DoEvents call in miliseconds. + /// + /// See Initialize for more details. + /// + public DoEventsListener( uint minDoEventsInterval ) + { + Initialize( minDoEventsInterval ); + } + + /// + /// Initializes this DoEventsListener. + /// + /// Minimum interval between Application.DoEvents call in miliseconds. + public void Initialize( uint minDoEventsInterval ) + { + _lastDoEventsTime = DateTime.MinValue; + _minDoEventsIntervalTicks = System.TimeSpan.TicksPerSecond * minDoEventsInterval / 1000; + } + + /// + /// Get accepted event type. + /// + /// Index of accepted event type. + /// Returns accepted EventType. + /// See IListener.GetAcceptedEventType + /// for more detail. + public EventType GetAcceptedEventType(int acceptedEventTypeIndex) + { + return( (EventType)acceptedEventTypeIndex ); + } + + /// + /// Get accepted event type count. + /// + /// Returns number of accepted EventType. + /// See IListener.GetAcceptedEventTypeCount + /// for more detail. + public int GetAcceptedEventTypeCount() + { + return( (int)EventType.NUM_OF_EVENT_TYPES ); + } + + /// + /// Makes Application.DoEvents call if time elapsed since the last call exceeds minimum interval. + /// + /// Event, isn't used anyway. + /// See Initialize, IListener.OnEvent + /// for more detail. + public void OnEvent(IEvent Event) + { + DateTime actTime = DateTime.Now; + + if( (actTime-_lastDoEventsTime).Ticks >= _minDoEventsIntervalTicks ) + { + Application.DoEvents(); + _lastDoEventsTime = actTime; + } + } + + } + + + /// + /// Simulation listener used to forward events to other listeners. + /// + /// + /// CompositionManager.Run allows + /// only one listener to monitor the simulation, if you need more than one listener, + /// you can use this class. This class should be used only if simulation runs in same thread as UI, + /// in other case use ProxyMultiThreadListener. + /// + public class ProxyListener: IListener + { + InternalListenerRecord[] _internalListeners; + EventType[] _acceptedEventTypes; + + private struct InternalListenerRecord + { + public bool[] listenedEventTypes; + public IListener listener; + } + + /// + /// Initializes this ProxyListener to send events to specific listeners. + /// + /// Listeners to recieve events. + /// + /// All registered listeners may not change content of the event + /// in theit implementation of IListener.OnEvent method. + /// See OnEvent, ProxyListener + /// for more detail. + /// + public void Initialize( ArrayList listeners ) + { + _internalListeners = new InternalListenerRecord[ listeners.Count ]; + + bool[] listenedEventTypes = new bool[ (int)EventType.NUM_OF_EVENT_TYPES ]; + for( int i=0; i + /// Get accepted event type. + /// + /// Index of accepted event type. + /// Returns accepted EventType. + /// See IListener.GetAcceptedEventType + /// for more detail. + public EventType GetAcceptedEventType(int acceptedEventTypeIndex) + { + return( _acceptedEventTypes[acceptedEventTypeIndex] ); + } + + /// + /// Get accepted event type count. + /// + /// Returns number of accepted EventType. + /// See IListener.GetAcceptedEventTypeCount + /// for more detail. + public int GetAcceptedEventTypeCount() + { + return( _acceptedEventTypes.Length ); + } + + /// + /// Sends this event to all registered listeners. + /// + /// Event to send. + /// See IListener.OnEvent + /// for more detail. + public void OnEvent( IEvent Event ) + { + foreach( InternalListenerRecord record in _internalListeners ) + if( record.listenedEventTypes[(int)Event.Type] + || Event==CompositionManager.SimulationFinishedEvent + || Event==CompositionManager.SimulationFailedEvent ) + record.listener.OnEvent( Event ); + } + + } + + + /// + /// Simulation listener used to forward events to other listeners. + /// Moreover, compared to ProxyListener, + /// it's able to synchronize access to events and resources influed by them + /// between simulation thread and UI thread. + /// + /// + /// This class should be used only if simulation runs in other thread than registered listeners should and if + /// application has a message loop (see Application.MessageLoop). + /// During simulation, if some model generates an event, the simulation thread invokes + /// OnEvent method. This method stores events into internal queues. + /// In some interval, timer defined by the user (see Initialize method) + /// generates in UI thread an timer-event which processes all events from + /// internal queues using SendEventsToListeners + /// method. + /// The goal is that OnEvent method is called from simulation thread, + /// and SendEventsToListeners from UI thread + /// (ie. the thread with message loop) and access to internal list of events is synchronized + /// between them by mutex. + /// The next goal is that with this mechanism we don't have to use active waiting + /// to determine when simulation finished. + /// If simulation thread would directly call UI-side listeners + /// (for example ProgressBarListener), the result + /// will depend on race condition (for example progress-bar could be increased while repainting it). + /// The only issue is that we silently expect that listeners won't change content of the event. + /// + public class ProxyMultiThreadListener: IListener + { + EventType[] _acceptedEventTypes; + Mutex _mutex; + InternalListenerRecord[] _internalListeners; + System.Windows.Forms.Timer _timer; + + /// + /// Internal record which is hold for each listener registered + /// with Initialize method. + /// + private struct InternalListenerRecord + { + public Queue eventQueue; + public bool[] listenedEventTypes; + public IListener listener; + } + + + /// + /// Class used to store basic content of any class inherited from IEvent. + /// + /// + /// This class is used in OnEvent + /// to copy content of received event, because sender can change + /// it's content before it's delivered to registered listeners. + /// The usage of backbone's Event + /// isn't effective here because it creates new Hashtable everytime it's created. + /// + private class EventCopy: IEvent + { + private string _description; + private EventType _type; + private ILinkableComponent _sender; + private TimeStamp _simulationTime; + + public object GetAttribute(string key) + { + return null; + } + + public string Description + { + get { return( _description ); } + } + + public EventType Type + { + get { return( _type ); } + } + + public ILinkableComponent Sender + { + get { return( _sender ); } + } + + public ITimeStamp SimulationTime + { + get { return( _simulationTime ); } + } + + public EventCopy( IEvent theEvent ) + { + _description = theEvent.Description; + _type = theEvent.Type; + _sender = theEvent.Sender; + if( theEvent.SimulationTime == null ) + _simulationTime = null; + else + _simulationTime = new TimeStamp( theEvent.SimulationTime ); + } + } + + + /// + /// Initializes this instance to send events to specific listeners. + /// + /// Listeners to recieve events. + /// Timer used to fire sending of events to registered listeners. + /// Time interval in milliseconds between sending of events to registered listeners. + /// + /// All registered listeners may not change content of the event + /// in their implementation of IListener.OnEvent method. + /// See OnEvent, ProxyMultiThreadListener + /// for more detail. + /// + public void Initialize( ArrayList listeners, System.Windows.Forms.Timer timer, int timerInterval ) + { + _internalListeners = new InternalListenerRecord[ listeners.Count ]; + + bool[] listenedEventTypes = new bool[ (int)EventType.NUM_OF_EVENT_TYPES ]; + for( int i=0; i + /// Get accepted event type. + /// + /// Index of accepted event type. + /// Returns accepted EventType. + /// ProxyMultiThreadListener + /// accepts exactly the event types accepted by one of listeners + /// registered with Initialize method. + /// See IListener.GetAcceptedEventType + /// for more detail. + public EventType GetAcceptedEventType(int acceptedEventTypeIndex) + { + return( (EventType)_acceptedEventTypes[acceptedEventTypeIndex] ); + } + + + /// + /// Get accepted event type count. + /// + /// Returns number of accepted EventType. + /// See IListener.GetAcceptedEventTypeCount + /// for more detail. + public int GetAcceptedEventTypeCount() + { + return( _acceptedEventTypes.Length ); + } + + + /// + /// Method stores copy of the event to internal queues so it later can + /// be send to registered listeners. + /// + /// Event to be queued. + /// This method is called from thread where events are created (ie. simulation thread). + /// We must make copy of the event for case caller changes it before it's delivered + /// to registered listeners. + /// Call blocks until event can be stored to internal queues. + /// See ProxyMultiThreadListener, + /// Initialize for more detail. + /// + public void OnEvent( IEvent Event ) + { + _mutex.WaitOne(); + + IEvent eventCopy; + bool finished = false; + + // if event has special meaning, we don't have to copy it + // because in such case we couldn't later determine it's meaning + if( Event==CompositionManager.SimulationFinishedEvent + || Event==CompositionManager.SimulationFailedEvent ) + { + eventCopy = Event; + finished = true; + } + else + eventCopy = new EventCopy( Event ); + + // add this event to registered listener queues + foreach( InternalListenerRecord record in _internalListeners ) + if( record.listenedEventTypes[(int)eventCopy.Type] + || finished ) + record.eventQueue.Enqueue( eventCopy ); + + _mutex.ReleaseMutex(); + } + + + + /// + /// This function sends all queued events to listeners registered using + /// Initialize method. + /// + /// + /// Events are queued by simulation thread using OnEvent method. + /// Call this function from thread, where you want registered listeners to work (ie. from UI thread). + /// Calling thread blocks until all registered listeners have done its work. + /// If simulation finished, the timer is disabled to stop calling it's handler. + /// + public bool SendEventsToListeners() + { + bool finished = false; + + _mutex.WaitOne(); + + try + { + foreach( InternalListenerRecord record in _internalListeners ) + { + ListViewListener listViewListener = record.listener as ListViewListener; + if( listViewListener!=null ) + { + // optimization for case listener is ListBoxListener + finished |= listViewListener.AddQueuedEvents(record.eventQueue); + } + else + { + // send all events separatelly + while( record.eventQueue.Count > 0 ) + { + IEvent theEvent = (IEvent)record.eventQueue.Dequeue(); + + finished |= theEvent==CompositionManager.SimulationFinishedEvent || theEvent==CompositionManager.SimulationFailedEvent; + + record.listener.OnEvent( theEvent ); + } + } + + } + } + finally + { + _mutex.ReleaseMutex(); + } + + if( finished ) + if( _timer.Enabled ) + { + _timer.Enabled = false; + _timer.Tick -= new System.EventHandler( SendEventsToListenersHandler ); + } + + return( finished ); + } + + + /// + /// Handler used by timer. + /// + /// Sender, not used. + /// Event arguments, not used. + private void SendEventsToListenersHandler( object sender, EventArgs e ) + { + SendEventsToListeners(); + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/Oatc.OpenMI.Gui.Core.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/Oatc.OpenMI.Gui.Core.csproj new file mode 100644 index 00000000..e3fa8168 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/Oatc.OpenMI.Gui.Core.csproj @@ -0,0 +1,224 @@ + + + + Local + 9.0.30729 + 2.0 + {5ED7C71D-E89A-41F7-8B34-54C0C099412C} + Debug + AnyCPU + + + + + Oatc.OpenMI.Gui.Core + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Gui.Core + OnBuildSuccess + + + + + + + false + 3.5 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + v4.0 + Client + ..\..\..\..\..\..\Source\ + true + + + ..\..\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\ + false + 285212672 + false + + + TRACE + ..\..\..\..\..\..\Binaries\Plugins\HydroModeler\org.OpenMI.Tools.GUI.Core.XML + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\packages\DotSpatial.Controls.1.1\lib\net40\DotSpatial.Controls.dll + + + ..\..\..\..\..\packages\DotSpatial.Data.1.1\lib\net40-Client\DotSpatial.Data.dll + + + ..\..\..\..\..\packages\DotSpatial.Data.Forms.1.1\lib\net40-Client\DotSpatial.Data.Forms.dll + + + ..\..\..\..\..\packages\DotSpatial.Extensions.1.1\lib\net40-Client\DotSpatial.Extensions.dll + + + ..\..\..\..\..\packages\DotSpatial.Modeling.Forms.1.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + + + ..\..\..\..\..\packages\DotSpatial.Projections.1.1\lib\net40-Client\DotSpatial.Projections.dll + + + ..\..\..\..\..\packages\DotSpatial.Projections.Forms.1.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + + + ..\..\..\..\..\packages\DotSpatial.Serialization.1.1\lib\net40-Client\DotSpatial.Serialization.dll + + + ..\..\..\..\..\packages\DotSpatial.Symbology.1.1\lib\net40-Client\DotSpatial.Symbology.dll + + + ..\..\..\..\..\packages\DotSpatial.Symbology.Forms.1.1\lib\net40\DotSpatial.Symbology.Forms.dll + + + ..\..\..\..\..\packages\DotSpatial.Topology.1.1\lib\net40-Client\DotSpatial.Topology.dll + + + False + ..\..\Oatc.OpenMI.Sdk.Backbone.dll + + + False + ..\..\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\..\OpenMI.Standard.dll + False + + + + 3.5 + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + False + .NET Framework Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + true + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + false + + + False + .NET Framework 3.5 SP1 + false + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/Trigger.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/Trigger.cs new file mode 100644 index 00000000..d5d0682c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/Trigger.cs @@ -0,0 +1,362 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + +namespace Oatc.OpenMI.Gui.Core +{ + + /// + /// Dummy exchange item used by trigger's link. + /// + public class TriggerExchangeItem: IInputExchangeItem + { + IQuantity quantity; + IElementSet elementSet; + + /// + /// Gets dummy quantity. + /// + public IQuantity Quantity + { + get + { + return quantity; + } + } + + /// + /// Gets dummy element-set.. + /// + public IElementSet ElementSet + { + get + { + return elementSet; + } + } + + + /// + /// Creates new instance of TriggerExchangeItem + /// + public TriggerExchangeItem() + { + quantity = new Oatc.OpenMI.Sdk.Backbone.Quantity(new Oatc.OpenMI.Sdk.Backbone.Unit("Dummy",1,0,"dummy"),"Anything","TriggerQuantityID",global::OpenMI.Standard.ValueType.Scalar,new Oatc.OpenMI.Sdk.Backbone.Dimension()); + elementSet = new Oatc.OpenMI.Sdk.Backbone.ElementSet("Dummy Element","TriggerElementID",ElementType.IDBased,new Oatc.OpenMI.Sdk.Backbone.SpatialReference()); + } + } + + + /// + /// Linkable component which can hold only one input link. It's used to fire the simulation. + /// + public class Trigger : ILinkableComponent + { + ILink _link; + TriggerExchangeItem _inputExchangeItem; + Oatc.OpenMI.Sdk.Backbone.TimeSpan _timeHorizon; + TimeStamp _earliestInputTime; + + /// + /// Creates a new instance of Trigger class. + /// + public Trigger() + { + _link = null; + _inputExchangeItem = new TriggerExchangeItem(); + + Oatc.OpenMI.Sdk.Backbone.TimeStamp + start = new TimeStamp( CalendarConverter.Gregorian2ModifiedJulian(new DateTime(1800,1,1)) ), + end = new TimeStamp( CalendarConverter.Gregorian2ModifiedJulian(new DateTime(2200,1,1)) ); + _timeHorizon = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(start, end); + + _earliestInputTime = end; + } + + + + /// + /// Gets input exchange item. + /// + /// Index of input exchange item. + /// If inputExchangeItemIndex is 0, returns + /// the only one available input exchnage item, otherwise returns null. + public IInputExchangeItem GetInputExchangeItem(int inputExchangeItemIndex) + { + if( inputExchangeItemIndex == 0 ) + return( _inputExchangeItem ); + else + return( null ); + } + + /// + /// Gets number of input exchange items, i.e. 1. + /// + public int InputExchangeItemCount + { + get + { + return 1; + } + } + + + /// + /// Default implementation. + /// + /// + /// Returns null. + public IOutputExchangeItem GetOutputExchangeItem(int outputExchangeItemIndex) + { + return null; + } + + /// + /// Gets output exchange items count, i.e. 0. + /// + public int OutputExchangeItemCount + { + get + { + return 0; + } + } + + + /// + /// Stores input link which is used to trigger the simulation. + /// + /// Input link. + /// Trigger can have only one input link, if you call this method + /// more than once, only the last link is used to trigger the simulation. + public void AddLink(ILink link) + { + _link = link; + } + + /// + /// Default implementation. + /// + public void Dispose() + { + } + + /// + /// Not implemented. + /// + /// + /// + /// Returns null. + public IValueSet GetValues(ITime time, string linkID) + { + return null; + } + + + /// + /// Default implementation + /// + public void Initialize( IArgument[] arguments ) + { + } + + /// + /// Default implementation. + /// + public void Prepare() + { + } + + /// + /// Removes the one link from trigger if IDs are corresponding. + /// + /// Link's ID. + public void RemoveLink(string linkID) + { + if( _link!=null ) + if( _link.ID==linkID ) + _link = null; + } + + /// + /// Gets description of trigger. + /// + public string ComponentDescription + { + get + { + return( "Component implementing trigger model." ); + } + } + + /// + /// Preforms validation of the Trigger model. + /// + /// Returns empty string. + public string Validate() + { + if( _link == null ) + return( "Warning: No model is linked to trigger, simulation won't be fired." ); + else + return( "" ); + } + + /// + /// Gets trigger's time horizon. + /// + public ITimeSpan TimeHorizon + { + get + { + return( _timeHorizon ); + } + } + + /// + /// Default implementation. + /// + public void Finish() + { + } + + /// + /// Gets earliest time when next input is needed, typically the trigger invoke time. + /// + public ITimeStamp EarliestInputTime + { + get + { + return( _earliestInputTime ); + } + } + + /// + /// Gets this component's ID, i.e. CompositionManager.TriggerModelID constant. + /// + public string ComponentID + { + get + { + return( CompositionManager.TriggerModelID ); + } + } + + /// + /// Gets model description. + /// + public string ModelDescription + { + get + { + return( "This model is used to trigger whole simulation. It only once invokes GetValues() on one linked model." ); + } + } + + /// + /// Gets this model's ID, i.e. CompositionManager.TriggerModelID constant. + /// + public string ModelID + { + get + { + return( CompositionManager.TriggerModelID ); + } + } + + + /// + /// Default implementation + /// + /// + public void SendEvent(IEvent Event) + { + } + + /// + /// Default implementation. + /// + /// Returns 0. + public int GetPublishedEventTypeCount() + { + return 0; + } + + /// + /// Default implementation. + /// + /// + /// + public void UnSubscribe(IListener listener, EventType eventType) + { + } + + /// + /// Default implementation. + /// + /// + /// Returns EventType.Other. + public EventType GetPublishedEventType(int providedEventTypeIndex) + { + return( EventType.Other ); + } + + /// + /// Default implementation. + /// + /// + /// + public void Subscribe(IListener listener, EventType eventType) + { + } + + + /// + /// Invokes ILinkableComponent.GetValues + /// method on model linked to this trigger, if any. + /// + /// Time for ILinkableComponent.GetValues call. + public void Run(Oatc.OpenMI.Sdk.Backbone.TimeStamp runToTime) + { + if( _link!=null ) + { + _earliestInputTime = runToTime; + _link.SourceComponent.GetValues(runToTime,_link.ID); + } + } + + + } + + + +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/UIConnection.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/UIConnection.cs new file mode 100644 index 00000000..6c792f2e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/UIConnection.cs @@ -0,0 +1,318 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using System.Drawing; +using System.Windows.Forms; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using DotSpatial.Modeling; +using System.Drawing.Drawing2D; +using System.Collections.Generic; + +namespace Oatc.OpenMI.Gui.Core +{ + /// + /// This class describes connection between two OpenMI models in one direction, + /// which consists of many links in same direction. + /// + public class UIConnection + { + UIModel _providingModel; + UIModel _acceptingModel; + Point[] _trianglePoints; + ArrayList _links; + Pen linePen; + GraphicsPath _arrowPath = new GraphicsPath(); + + /// + /// Creates a new instance of UIConnection class. + /// + /// Model providing data. + /// Model accepting data. + public UIConnection(UIModel providingModel, UIModel acceptingModel) + { + _providingModel = providingModel; + _acceptingModel = acceptingModel; + + _links = new ArrayList(); + _trianglePoints = new Point[3]; + + linePen = new Pen(Color.Blue, 2); + } + + /// + /// Gets providing model. + /// + public UIModel ProvidingModel + { + get { return(_providingModel); } + } + + /// + /// Gets accepting model. + /// + public UIModel AcceptingModel + { + get { return(_acceptingModel); } + } + + /// + /// Gets list of all links in this connection. + /// + public ArrayList Links + { + get + { + return _links; + } + } + + /// + /// Draw connection (i.e. line with triangle) to specific graphics object. + /// + /// Position of window described by graphics object in composition area. + /// Graphics where connection should be drawn. + public Point[] Draw(Point windowPosition, Graphics g) + { + + + Pen arrowPen = new Pen(Color.Black, 1.6F); + + float startX = _providingModel.GetMidPoint().X; + float startY = _providingModel.GetMidPoint().Y ; + float endX = _acceptingModel.GetMidPoint().X; + float endY = _acceptingModel.GetMidPoint().Y; + + + + // calculate triangle point in area points and store them internally + _trianglePoints = GetTrianglePoints( startX, startY, endX, endY ); + + // recalculate trinagle points so they correspond to window and can be draw + Point[] windowTrianglePoints = new Point[3]; + for( int i=0; i<3; i++ ) + { + windowTrianglePoints[i].X = _trianglePoints[i].X - windowPosition.X; + windowTrianglePoints[i].Y = _trianglePoints[i].Y - windowPosition.Y; + } + + // modify start and end so they correspond to window + startX -= windowPosition.X; + startY -= windowPosition.Y; + endX -= windowPosition.X; + endY -= windowPosition.Y; + + //draw curved line + Point[] lineArray = new Point[4]; + lineArray[0] = new Point((int)startX, (int)startY); + lineArray[1] = new Point((int)startX - (((int)startX - (int)endX) / 3), (int)startY); + lineArray[2] = new Point((int)endX - (((int)endX - (int)startX) / 3), (int)endY); + lineArray[3] = new Point((int)endX, (int)endY); + + //Point[] lineArray2 = new Point[4]; + //lineArray2[0] = new Point((int)startX, (int)startY); + //lineArray2[1] = new Point((int)startX + (int)((endX - startX) / 4), (int)startY); + //lineArray2[2] = new Point((int)startX + (int)((endX - startX) / 2), (int)startY + (int)((endY - startY)/2)); + //lineArray2[2] = new Point((int)startX + (int)((endX - startX) * 0.75), (int)endY); + //lineArray2[3] = new Point((int)startX + (int)((endX - startX)), (int)endY); + //g.DrawCurve(new Pen(Color.Red, 1.5F), lineArray2); + //_arrowPath.AddCurve(lineArray2); + + LinearGradientBrush brush = new LinearGradientBrush(lineArray[0], lineArray[3], Color.WhiteSmoke, Color.Black); + //Blend blend = new Blend(); + //blend.Factors = new float[] { 0.0f, 0.1f, 0.3f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1f, 1f, 1f }; + //blend.Positions = new float[] { 0, 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f }; + //brush.Blend = blend; + + arrowPen = new Pen(brush, 1.6F); + + g.SmoothingMode = SmoothingMode.AntiAlias; + g.DrawBeziers(arrowPen, lineArray); + _arrowPath.AddBeziers(lineArray); + _arrowPath.Flatten(); + + //g.DrawLine(linePen, startX, startY, endX, endY); + + if (Math.Abs(startX - endX) + Math.Abs(startY - endY) > 10) + { + return windowTrianglePoints; + } + else + return new Point[0]; + + + + } + public void FillArrows(List points, Graphics g) + { + + + for (int i = 0; i <= points.Count - 1; i++) + { + Point[] windowTrianglePoints = points[i]; + Pen arrowPen = new Pen(Color.Gray, 1.5F); + + + g.FillPolygon(Brushes.Black, windowTrianglePoints, System.Drawing.Drawing2D.FillMode.Alternate); + g.DrawPolygon(arrowPen, windowTrianglePoints); + + } + } + //public void Draw(Point windowPosition, Graphics graph, ModelShapes Shape) + //{ + // if (Shape == ModelShapes.Arrow) + // { + // _arrowPath = new GraphicsPath(); + + // //Draws the basic shape + // Pen arrowPen; + // //if (Highlight < 1) + // // arrowPen = new Pen(Color.Cyan, 3F); + // //else + // // arrowPen = new Pen(Color.Black, 3F); + + // arrowPen = new Pen(Color.Black, 1F); + + // int startX = _providingModel.GetMidPoint().X; + // int startY = _providingModel.GetMidPoint().Y; + // int endX = _acceptingModel.GetMidPoint().X; + // int endY = _acceptingModel.GetMidPoint().Y; + + // Point start = new Point(startX, startY); + // Point end = new Point(endX, endY); + + // //Draws the curved arrow + // Point[] lineArray = new Point[4]; + // lineArray[0] = new Point(startX, startY); + // lineArray[1] = new Point(startX - ((startX - endX) / 3), startY); + // lineArray[2] = new Point(endX - ((endX - startX) / 3), endY); + // lineArray[3] = new Point(endX, endY); + // graph.DrawBeziers(arrowPen, lineArray); + // _arrowPath.AddBeziers(lineArray); + // _arrowPath.Flatten(); + + // //Draws the arrow head + // Point midPt = new Point((endX + startX) / 2, (endY + startY) / 2); + // float dx = 10;// endX - startX; + // float dy = 10;// endY - startY; + + // const double cos = 0.866; + // const double sin = 0.500; + // //PointF end1 = new PointF( + // // (float)(midPt.X + (dx * cos + dy * -sin)), + // // (float)(midPt.Y + (dx * sin + dy * cos))); + // //PointF end2 = new PointF( + // // (float)(midPt.X + (dx * cos + dy * sin)), + // // (float)(midPt.Y + (dx * -sin + dy * cos))); + // //graph.DrawLine(arrowPen, midPt, end1); + // //graph.DrawLine(arrowPen, midPt, end2); + // arrowPen.EndCap = LineCap.ArrowAnchor; + + // //Point[] arrowArray = new Point[3]; + + // //arrowArray[0] = midPt; + // //arrowArray[1] = new Point(midPt.X, midPt.Y - 10); + // //arrowArray[2] = new Point(midPt.X - 10, midPt.Y + 10); + // //graph.DrawPolygon(arrowPen, arrowArray); + + // //Garbage collection + // arrowPen.Dispose(); + // } + //} + + private static Point[] GetTrianglePoints(float startX, float startY, float endX, float endY) + { + Point[] trianglePoints = new Point[3]; + + const float size = 10; // size of triangles + + /*float startX = _providingModel.GetMidPoint().X; + float startY = _providingModel.GetMidPoint().Y; + + float endX = _acceptingModel.GetMidPoint().X; + float endY = _acceptingModel.GetMidPoint().Y;*/ + + float midX = (endX + startX) / 2; + float midY = (endY + startY) / 2; + + float length = (float) Math.Sqrt(Math.Pow((startX-midX),2) + Math.Pow((startY-midY),2)); + + float pX = midX + size *(startX - midX)/length; + float pY = midY + size *(startY - midY)/length; + + float vX = midX - pX; + float vY = midY - pY; + + float t1X = pX - vY; + float t1Y = pY + vX; + + float t2X = pX + vY; + float t2Y = pY - vX; + + trianglePoints[0] = new Point((int) midX,(int) midY); + trianglePoints[1] = new Point((int) t1X,(int) t1Y); + trianglePoints[2] = new Point((int) t2X,(int) t2Y); + + return( trianglePoints ); + } + + + /// + /// Determines, whether point is on connection line, i.e. in the triangle. + /// + /// Point + /// Returns true if point is inside the triangle, otherwise returns false. + public bool IsOnConnectionLine( Point point ) + { + bool isOnConnectionLine = true; + int m; + + for (int i = 0; i < 3; i++) + { + m = i + 1; + if (m == 3) + m = 0; + + if(0 < (point.X - _trianglePoints[i].X)*(_trianglePoints[m].Y-_trianglePoints[i].Y) - ( _trianglePoints[m].X - _trianglePoints[i].X )*(point.Y-_trianglePoints[i].Y)) + isOnConnectionLine = false; + } + + return isOnConnectionLine; + } + + /*private Point getMidPoint() + { + return new Point( + (int)( (_providingModel.GetMidPoint().X + _acceptingModel.GetMidPoint().X) / 2 ), + (int)( (_providingModel.GetMidPoint().Y + _acceptingModel.GetMidPoint().Y) / 2) ); + }*/ + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/UIModel.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/UIModel.cs new file mode 100644 index 00000000..e7ba2749 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/UIModel.cs @@ -0,0 +1,580 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.IO; +using System.Xml; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard; +using DotSpatial.Controls; +using DotSpatial.Modeling; +using DotSpatial.Modeling.Forms; +using System.Text.RegularExpressions; + +namespace Oatc.OpenMI.Gui.Core +{ + /// + /// Summary description for Model. + /// + public class UIModel + { + private string _omiFilename; + + //private Font _font; + + /// + /// true if user is moving the model rectangle on the screen + /// + private bool _isMoving; + + private ILinkableComponent _linkableComponent; + + private string _modelID; + + private Pen _rectanglePen; + + private Color _color = Color.LightGreen; + private double _highlight = 1; + private int _width = 100; + private int _height = 100; + private Font _font = SystemFonts.MessageBoxFont; + private ModelShape _shape = ModelShape.Rectangle; + + + + /// + /// Gets or set the base color of the shapes gradient + /// + public Color Color + { + get { return _color; } + set { _color = value; } + } + + /// + /// Returns 1 if the object is not highlighted less than 1 if it is highlighted + /// + public double Highlight + { + get { return _highlight; } + set { _highlight = value; } + } + + /// + /// Gets or sets the width of the element + /// + public int Width + { + get { return _width; } + set { _width = value; } + } + + /// + /// Gets or sets the shape of the element + /// + public int Height + { + get { return _height; } + set { _height = value; } + } + /// + /// Gets or sets the font used to draw the text on the element + /// + public Font Font + { + get { return _font; } + set { _font = value; } + } + + public ModelShape Shape + { + get { return _shape; } + set { _shape = value; } + } + + /// + /// Creates a new instance of UIModel class. + /// + public UIModel() + { + _isMoving = false; + + // Workarround to handle a bug from Microsoft + // A bug, see http://dturini.blogspot.com/2004_08_01_dturini_archive.html + // or http://support.microsoft.com/default.aspx?scid=KB;EN-US;q326219#appliesto + try + { + _font = new Font("Arial", 11); + } + catch (ArithmeticException) + { + Utils.ResetFPU(); + _font = new Font("Arial", 11); + } + + Rect = new Rectangle(100,100,50,3*_font.Height); + + _rectanglePen = new Pen( Color.Blue, 1 ); + } + + + /// + /// Creates a new instance of trigger model. + /// + /// Returns trigger model. + /// See Trigger for more detail. + public static UIModel NewTrigger() + { + UIModel trigger = new UIModel(); + + trigger.LinkableComponent = new Trigger(); + trigger.OmiFilename = CompositionManager.TriggerModelID; + trigger._modelID = CompositionManager.TriggerModelID; + + return( trigger ); + } + + + /// + /// Gets or sets path to OMI file representing this model. + /// + /// Setting of this property has only sense in case this model is trigger, see + /// NewTrigger method. + public string OmiFilename + { + get { return(_omiFilename); } + set { _omiFilename = value; } + } + + /// + /// Gets ID of this model. + /// + /// ID is equivalent to ILinkableComponent.ModelID. + /// It must be unique in the composition. + /// + public string ModelID + { + get { return(_modelID); } + } + + private void MoveModel( Point offset ) + { + Rect.Offset( offset ); + } + + /// + /// Draws this model's rectangle into specified Graphics object. + /// + /// Displacement of composition box in whole composition area. + /// Graphics where rectangle should be drawn. + public void Draw(Point displacement, Graphics g) + { + Rectangle rectToDraw = Rect; + rectToDraw.X -= displacement.X; + rectToDraw.Y -= displacement.Y; + + Region fillRegion = new Region(rectToDraw); + + g.FillRegion( GetFillBrush(), fillRegion ); + g.DrawRectangle( _rectanglePen, rectToDraw); + g.DrawString( _modelID, _font, Brushes.Black,rectToDraw); + } + + /// + /// Draws model elements, using the DotSpatial approach + /// + /// X,Y point + /// graphics + /// Shape: can be rectangle, ellipse, or triangle + public void Draw(Point displacement, Graphics graph, DotSpatial.Modeling.Forms.ModelShape Shape) + { + + Rectangle rectToDraw = Rect; + + //Get x,y + Point topLeft = new Point(); + topLeft.X = Rect.X; + topLeft.Y = Rect.Y; + + //Sets up the colors to use + Pen outlinePen = new Pen(DotSpatial.Symbology.SymbologyGlobal.ColorFromHsl(Color.GetHue(), Color.GetSaturation(), Color.GetBrightness() * 0.6 * Highlight), 1.0F); + Color gradientTop = DotSpatial.Symbology.SymbologyGlobal.ColorFromHsl(Color.GetHue(), Color.GetSaturation(), Color.GetBrightness() * 0.7 * Highlight); + Color gradientBottom = DotSpatial.Symbology.SymbologyGlobal.ColorFromHsl(Color.GetHue(), Color.GetSaturation(), Color.GetBrightness() * 1.0 * Highlight); + + //The path used for drop shadows + GraphicsPath shadowPath = new GraphicsPath(); + ColorBlend colorBlend = new ColorBlend(3); + colorBlend.Colors = new Color[] { Color.Transparent, Color.FromArgb(180, Color.DarkGray), Color.FromArgb(180, Color.DimGray) }; + colorBlend.Positions = new float[] { 0f, 0.125f,1f}; + + RectangleF textRect = new RectangleF(0,0,0,0); + + //stores temporary model name + string modelID = _modelID; + + #region Draw Ellipse Object + //Draws Ellipse Shapes + if (Shape == ModelShape.Ellipse) + { + + //Adjust size of ellipse to fit text + SizeF textSize = graph.MeasureString(_modelID, _font); + + if (!_modelID.Contains(" ")) + { + + string newID = null; + //try splitting model based on Capital Letters + if (Regex.IsMatch(_modelID.Substring(1,_modelID.Length-1), "[A-Z]")) + { + for (int i = 0; i <= _modelID.Length - 1; i++) + { + if (Char.IsUpper(_modelID[i]) && i > 0) + { + newID += " " + _modelID[i]; + } + else + newID += _modelID[i]; + } + modelID = newID; //set the model id equal to the new id + } + else //clip the modelID to fit within the ellipse + { + if (_modelID.Length < 10) + newID = _modelID; + else if(_modelID.Length<=20) + newID = _modelID.Substring(0, 10) + " " + _modelID.Substring(9, _modelID.Length - 9); + else + newID = _modelID.Substring(0, 10) + " " + _modelID.Substring(9, 10); + modelID = newID;//set the model id equal to the new id + } + + + //_modelID = _modelID.Substring(0, 20); + //while ((textSize.Width > Rect.Width) || (textSize.Height > Rect.Height)) + //{ + // Rect.Width++; + // Rect.Height++; + //} + } + textRect = new RectangleF(topLeft.X+1, topLeft.Y + (Rect.Height - textSize.Height) / 2, Rect.Width, textSize.Height); + + + //Draws the shadow + shadowPath.AddEllipse(topLeft.X, topLeft.Y, Rect.Width + 7, Rect.Height + 7); + PathGradientBrush shadowBrush = new PathGradientBrush(shadowPath); + shadowBrush.WrapMode = WrapMode.Clamp; + shadowBrush.InterpolationColors = colorBlend; + graph.FillPath(shadowBrush, shadowPath); + + //Draws the Ellipse + Rectangle fillArea = new Rectangle(topLeft.X, topLeft.Y, Rect.Width, Rect.Height); + LinearGradientBrush myBrush = new LinearGradientBrush(fillArea, gradientBottom, gradientTop, LinearGradientMode.Vertical); + graph.FillEllipse(myBrush, topLeft.X, topLeft.Y, Rect.Width, Rect.Height); + graph.SmoothingMode = SmoothingMode.AntiAlias; + //graph.PixelOffsetMode = PixelOffsetMode.HighQuality; + graph.DrawEllipse(outlinePen, topLeft.X, topLeft.Y, Rect.Width, Rect.Height); + + //update model rectangle + Rect.Height = Convert.ToInt32(Math.Max(textRect.Height, Rect.Height)); + Rect.Width = Convert.ToInt32(Math.Max(textRect.Width, Rect.Width)); + Rect.X = topLeft.X; + Rect.Y = topLeft.Y; + + Rectangle TextRectangle = Rectangle.Ceiling(textRect); + TextRectangle.Width += 2; + + StringFormat strFormat = new StringFormat(); + strFormat.Alignment = StringAlignment.Center; + strFormat.LineAlignment = StringAlignment.Center; + graph.DrawString(modelID, Font, new SolidBrush(Color.FromArgb(250, Color.Black)), Rect,strFormat); + + //Garbage collection + myBrush.Dispose(); + } + #endregion + + #region Draw Triangular Object + //Draws Triangular Shapes + if (Shape == ModelShape.Triangle) + { + //Draws the shadow + Point[] ptShadow = new Point[4]; + ptShadow[0] = new Point(topLeft.X + (Rect.Width / 2), topLeft.Y - 5); + ptShadow[1] = new Point(topLeft.X + Rect.Width + 7, topLeft.Y + (Rect.Height / 2)); + ptShadow[2] = new Point(topLeft.X + (Rect.Width / 2), topLeft.Y + Rect.Height + 5); + ptShadow[3] = new Point(topLeft.X, topLeft.Y + (Rect.Height / 2)); + + shadowPath.AddLines(ptShadow); + PathGradientBrush shadowBrush = new PathGradientBrush(shadowPath); + shadowBrush.WrapMode = WrapMode.Clamp; + shadowBrush.InterpolationColors = colorBlend; + graph.FillPath(shadowBrush, shadowPath); + + //Draws the shape + Point[] pt = new Point[4]; + pt[0] = new Point(topLeft.X + (Rect.Width / 2), topLeft.Y); + pt[1] = new Point(topLeft.X + Rect.Width, topLeft.Y + (Rect.Height / 2)); + pt[2] = new Point(topLeft.X + (Rect.Width / 2), topLeft.Y + Rect.Height); + pt[3] = new Point(topLeft.X, topLeft.Y + (Rect.Height / 2)); + + GraphicsPath myPath = new GraphicsPath(); + myPath.AddLines(pt); + Rectangle fillArea = new Rectangle(topLeft.X - (Rect.Width/2), topLeft.Y, Rect.Width, Rect.Height); + LinearGradientBrush myBrush = new LinearGradientBrush(fillArea, gradientBottom, gradientTop, LinearGradientMode.Vertical); + graph.FillPath(myBrush, myPath); + graph.DrawPath(outlinePen, myPath); + + //Draws the text + SizeF textSize = graph.MeasureString("Trigger", Font, Rect.Width); + + //if ((textSize.Width > Rect.Width) || (textSize.Height > Rect.Height)) + // textRect = new RectangleF(topLeft.X - (Rect.Width - textSize.Width) / 2, topLeft.Y + (Rect.Height - textSize.Height) / 2, textSize.Width, textSize.Height); + //else + textRect = new RectangleF(topLeft.X, topLeft.Y + (Rect.Height - textSize.Height) / 2, Rect.Width, textSize.Height); + + //Update model rectangle + Rect.Height = Convert.ToInt32(Math.Max(textRect.Height, Rect.Height)); + Rect.Width = Convert.ToInt32(Math.Max(textRect.Width, Rect.Width)); + Rect.X = topLeft.X; + Rect.Y = topLeft.Y; + + //draw text + Rectangle TextRectangle = Rectangle.Ceiling(textRect); + TextRectangle.Width += 2; + System.Windows.Forms.TextFormatFlags flags = System.Windows.Forms.TextFormatFlags.HorizontalCenter | + System.Windows.Forms.TextFormatFlags.VerticalCenter | System.Windows.Forms.TextFormatFlags.WordBreak; + System.Windows.Forms.TextRenderer.DrawText(graph, "Trigger", Font, TextRectangle, Color.Black, flags); + + //Garbage collection + myBrush.Dispose(); + } + #endregion + + + //Garbage collection + shadowPath.Dispose(); + outlinePen.Dispose(); + } + private static GraphicsPath GetRoundedRect(RectangleF baseRect, float radius) + { + if ((radius <= 0.0F) || radius >= ((Math.Min(baseRect.Width, baseRect.Height)) / 2.0)) + { + GraphicsPath mPath = new GraphicsPath(); + mPath.AddRectangle(baseRect); + mPath.CloseFigure(); + return mPath; + } + + float diameter = radius * 2.0F; + SizeF sizeF = new SizeF(diameter, diameter); + RectangleF arc = new RectangleF(baseRect.Location, sizeF); + GraphicsPath path = new GraphicsPath(); + + // top left arc + path.AddArc(arc, 180, 90); + + // top right arc + arc.X = baseRect.Right - diameter; + path.AddArc(arc, 270, 90); + + // bottom right arc + arc.Y = baseRect.Bottom - diameter; + path.AddArc(arc, 0, 90); + + // bottom left arc + arc.X = baseRect.Left; + path.AddArc(arc, 90, 90); + + path.CloseFigure(); + return path; + } + private Brush GetFillBrush() + { + if( _modelID == CompositionManager.TriggerModelID ) + { + // trigger has different color + if( _isMoving ) + return( new SolidBrush(Color.SteelBlue) ); + else + return( new SolidBrush(Color.SkyBlue) ); + } + + if( _isMoving ) + return( new SolidBrush(Color.Goldenrod) ); + else + return( new SolidBrush(Color.Yellow) ); + } + + /// + /// Gets middle point of model's rectangle. + /// + /// Returns middle point of model's rectangle. + public Point GetMidPoint() + { + return new Point( Rect.X + Rect.Width/2, Rect.Y + Rect.Height/2 ); + } + + /// + /// Determines whether point is in model's rectangle. + /// + /// Point + /// Returns true if the point is in model's rectangle, otherwise returns false. + public bool IsPointInside( Point point ) + { + return( Rect.X < point.X + && (Rect.X + Rect.Width) > point.X + && Rect.Y < point.Y + && (Rect.Y + Rect.Height) > point.Y ); + } + + + /// + /// Gets or sets whether model's rectangle is currently moving. + /// + /// + /// It's useful for example to draw moving rectangles with different color. + /// + public bool IsMoving + { + get { return _isMoving; } + set { _isMoving = value; } + } + + /// + /// Model's rectangle. + /// + public Rectangle Rect; + + /// + /// Linkable component corresponding to this model. + /// + public ILinkableComponent LinkableComponent + { + get + { + return _linkableComponent; + } + set + { + _linkableComponent = value; + } + } + + + /// + /// Sets this model according to OMI file. + /// + /// Relative or absolute path to OMI file describing the model. + /// Directory filename is relative to, or null if filename is absolute or relative to current directory. + /// See Utils.GetFileInfo for more info about how + /// specified file is searched. + public void ReadOMIFile( string relativeDirectory, string filename ) + { + // Open OMI file as xmlDocument + FileInfo omiFileInfo = Utils.GetFileInfo( relativeDirectory, filename ); + if( !omiFileInfo.Exists ) + throw( new Exception("Omi file not found (CurrentDirectory='"+Directory.GetCurrentDirectory()+"', File='"+filename+"')") ); + + XmlDocument xmlDocument = new XmlDocument(); + xmlDocument.Load( omiFileInfo.FullName ); + + // get 1st LinkableComponent element + XmlElement xmlLinkableComponent = null; + foreach( XmlNode node in xmlDocument.ChildNodes ) + if( node.Name=="LinkableComponent" ) + { + xmlLinkableComponent = (XmlElement)node; + break; + } + + // load assembly if present (from relative location of the OMI file) + if (xmlLinkableComponent == null) + { + throw new Exception("No linkable components found in composition file " + omiFileInfo); + } + else + { + string assemblyFilename = xmlLinkableComponent.GetAttribute("Assembly"); + if (assemblyFilename != null) + AssemblySupport.LoadAssembly(omiFileInfo.DirectoryName, assemblyFilename); + } + + // read arguments + ArrayList linkableComponentArguments = new ArrayList(); + + foreach( XmlElement xmlArguments in xmlLinkableComponent.ChildNodes ) + if( xmlArguments.Name == "Arguments" ) + foreach( XmlElement xmlArgument in xmlArguments.ChildNodes ) + linkableComponentArguments.Add( new Argument(xmlArgument.GetAttribute("Key"), xmlArgument.GetAttribute("Value"), true, "No description")); + + // get new instance of ILinkableComponent type + // for this moment set current directory to omi file's directory + string oldDirectory = Directory.GetCurrentDirectory(); + try + { + Directory.SetCurrentDirectory( omiFileInfo.DirectoryName ); + + string classTypeName = xmlLinkableComponent.GetAttribute("Type"); + object obj = AssemblySupport.GetNewInstance( classTypeName ); + if ( ! ( obj is ILinkableComponent ) ) + { + throw new Exception("\n\nThe class type " + classTypeName + " in\n" + + filename + + "\nis not an OpenMI.Standard.ILinkableComponent (OpenMI.Standard.dll version 1.4.0.0)." + + "\nYou may have specified a wrong class name, " + + "\nor the class implements the ILinkableComponent interface of a previous version of the OpenMI Standard.\n"); + } + _linkableComponent = (ILinkableComponent)obj; + _linkableComponent.Initialize( (IArgument[])linkableComponentArguments.ToArray(typeof(IArgument)) ); + } + finally + { + Directory.SetCurrentDirectory( oldDirectory ); + } + + _omiFilename = omiFileInfo.FullName; + + _modelID = _linkableComponent.ModelID; + + // remote components have rectangle style + string componentDescription = _linkableComponent.ComponentDescription; + if( componentDescription != null ) + if( componentDescription.IndexOf( "OpenMI.Distributed" ) >= 0 ) + _rectanglePen.DashStyle = DashStyle.Dash; + } + + + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/Utils.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/Utils.cs new file mode 100644 index 00000000..fb408f8f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Core/Utils.cs @@ -0,0 +1,327 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Runtime.InteropServices; +using System.Text; +using System.IO; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Microsoft.Win32; + + +namespace Oatc.OpenMI.Gui.Core +{ + /// + /// Class contains support methods. + /// + public class Utils + { + + /// + /// Determines whether two dimensions are equal. + /// + /// Dimension one + /// Dimension two + /// Returns true if powers of all dimension bases are same, otherwise returns false. + public static bool CompareDimensions(IDimension dimension1, IDimension dimension2) + { + for (int i = 0; i < (int)DimensionBase.NUM_BASE_DIMENSIONS; i++) + if (dimension1.GetPower((DimensionBase) i) != dimension2.GetPower((DimensionBase) i)) + return( false ); + + return( true ); + } + + + /// + /// Gets FileInfo of file specified by it's (eventually relative) path. + /// + /// Directory filename is relative to, or null if filename is absolute path or relative path to current directory. + /// Relative or absolute path to file. + /// Returns FileInfo of file specified. + public static FileInfo GetFileInfo( string relativeDir, string filename ) + { + string oldDirectory=null; + if( relativeDir!=null ) + oldDirectory = Directory.GetCurrentDirectory(); + + try + { + if( relativeDir!=null ) + Directory.SetCurrentDirectory( relativeDir ); + return( new FileInfo(filename) ); + } + finally + { + if( oldDirectory!=null ) + Directory.SetCurrentDirectory( oldDirectory ); + } + } + + + /// + /// Converts event to string representation. + /// + /// Event to be converted to string + /// Returns resulting string. + public static string EventToString( IEvent Event ) + { + StringBuilder builder = new StringBuilder( 200 ); + builder.Append( "[Type=" ); + builder.Append( Event.Type.ToString() ); + + if( Event.Description!=null ) + { + builder.Append( "][Message=" ); + builder.Append( Event.Description ); + } + + if( Event.Sender != null ) + { + builder.Append( "][ModelID=" ); + builder.Append( ((ILinkableComponent) Event.Sender).ModelID ); + } + + if( Event.SimulationTime != null ) + { + builder.Append( "][SimTime=" ); + builder.Append( CalendarConverter.ModifiedJulian2Gregorian(Event.SimulationTime.ModifiedJulianDay).ToString() ); + } + + builder.Append( ']' ); + + return( builder.ToString() ); + } + + + private const string regOprExtension = ".opr"; + private const string regOprDescription = "OmiEd project"; + private const string regOprIdentifier = "OmiEdProject"; + + private const string regOmiExtension = ".omi"; + private const string regOmiDescription = "OpenMI model"; + private const string regOmiIdentifier = "OpenMIModel"; + + + /// + /// Registers OPR and OMI file extension in Win32 registry to be opened with specific OmiEd application. + /// + /// Full path to specific OmiEd application executable. + public static void RegisterFileExtensions( string applicationPath ) + { + RegistryKey keyExtension, keyDefaultIcon, keyIdentifier, + subKeyShell, subKeyOpen, subKeyCommand; + + // OPR extension + keyExtension = Registry.ClassesRoot.CreateSubKey(regOprExtension); + keyExtension.SetValue(null, regOprIdentifier); + keyExtension.Close(); + + // OPR description + keyIdentifier = Registry.ClassesRoot.CreateSubKey(regOprIdentifier); + keyIdentifier.SetValue(null, regOprDescription); + + // OPR default icon + keyDefaultIcon = keyIdentifier.CreateSubKey("Defaulticon"); + keyDefaultIcon.SetValue(null, applicationPath + ",0"); + keyDefaultIcon.Close(); + + // OPR open shell command + subKeyShell = keyIdentifier.CreateSubKey("shell"); + subKeyOpen = subKeyShell.CreateSubKey("open"); + subKeyCommand = subKeyOpen.CreateSubKey("command"); + subKeyCommand.SetValue(null, "\"" + applicationPath + "\" /opr \"%1\""); + subKeyShell.Close(); + subKeyCommand.Close(); + subKeyOpen.Close(); + + keyIdentifier.Close(); + + + // OMI extension + keyExtension = Registry.ClassesRoot.CreateSubKey(regOmiExtension); + keyExtension.SetValue(null, regOmiIdentifier); + keyExtension.Close(); + + // OMI description + keyIdentifier = Registry.ClassesRoot.CreateSubKey(regOmiIdentifier); + keyIdentifier.SetValue(null, regOmiDescription); + + // OMI default icon + keyDefaultIcon = keyIdentifier.CreateSubKey("Defaulticon"); + keyDefaultIcon.SetValue(null, applicationPath + ",0"); + keyDefaultIcon.Close(); + + // OMI open shell command + subKeyShell = keyIdentifier.CreateSubKey("shell"); + subKeyOpen = subKeyShell.CreateSubKey("open"); + subKeyCommand = subKeyOpen.CreateSubKey("command"); + subKeyCommand.SetValue(null, "\"" + applicationPath + "\" /omi \"%1\""); + subKeyShell.Close(); + subKeyCommand.Close(); + subKeyOpen.Close(); + + keyIdentifier.Close(); + + Registry.ClassesRoot.Flush(); + } + + /// + /// Determines whether OPR and OMI file extension are registered in Win32 registry + /// to be opened with specific OmiEd application. + /// + /// Path to specific OmiEd application executable. + /// If OPR and OMI extensions are correctly registered, returns true, + /// otherwise returns false. + public static bool AreFileExtensionsRegistered(string applicationPath) + { + RegistryKey keyExtension, keyDefaultIcon, keyIdentifier, + subKeyShell, subKeyOpen, subKeyCommand; + + // OPR extension + keyExtension = Registry.ClassesRoot.OpenSubKey(regOprExtension); + if( keyExtension==null ) + return( false ); + if( (string)keyExtension.GetValue(null) != regOprIdentifier ) + return( false ); + + // OPR description + keyIdentifier = Registry.ClassesRoot.OpenSubKey(regOprIdentifier); + if( keyIdentifier==null ) + return( false ); + if( (string)keyIdentifier.GetValue(null) != regOprDescription ) + return( false ); + + // OPR default icon + keyDefaultIcon = keyIdentifier.OpenSubKey("Defaulticon"); + if( keyDefaultIcon==null ) + return( false ); + if( (string)keyDefaultIcon.GetValue(null) != applicationPath + ",0" ) + return( false ); + + // OPR open shell command + subKeyShell = keyIdentifier.OpenSubKey("shell"); + if( subKeyShell==null ) + return( false ); + + subKeyOpen = subKeyShell.OpenSubKey("open"); + if( subKeyOpen==null ) + return( false ); + + subKeyCommand = subKeyOpen.OpenSubKey("command"); + if( subKeyCommand==null ) + return( false ); + if( (string)subKeyCommand.GetValue(null) != "\"" + applicationPath + "\" /opr \"%1\"" ) + return( false ); + + + // OMI extension + keyExtension = Registry.ClassesRoot.OpenSubKey(regOmiExtension); + if( keyExtension==null ) + return( false ); + if( (string)keyExtension.GetValue(null) != regOmiIdentifier ) + return( false ); + + // OMI description + keyIdentifier = Registry.ClassesRoot.OpenSubKey(regOmiIdentifier); + if( keyIdentifier==null ) + return( false ); + if( (string)keyIdentifier.GetValue(null) != regOmiDescription ) + return( false ); + + // OMI default icon + keyDefaultIcon = keyIdentifier.OpenSubKey("Defaulticon"); + if( keyDefaultIcon==null ) + return( false ); + if( (string)keyDefaultIcon.GetValue(null) != applicationPath + ",0" ) + return( false ); + + // OMI open shell command + subKeyShell = keyIdentifier.OpenSubKey("shell"); + if( subKeyShell==null ) + return( false ); + + subKeyOpen = subKeyShell.OpenSubKey("open"); + if( subKeyOpen==null ) + return( false ); + + subKeyCommand = subKeyOpen.OpenSubKey("command"); + if( subKeyCommand==null ) + return( false ); + if( (string)subKeyCommand.GetValue(null) != "\"" + applicationPath + "\" /omi \"%1\"" ) + return( false ); + + return( true ); + } + + + /// + /// Discards any OPR and OMI file extension registration from Win32 registry. + /// + public static void UnregisterFileExtensions( ) + { + Registry.ClassesRoot.DeleteSubKeyTree( regOprExtension ); + Registry.ClassesRoot.DeleteSubKeyTree( regOprIdentifier ); + Registry.ClassesRoot.DeleteSubKeyTree( regOmiExtension ); + Registry.ClassesRoot.DeleteSubKeyTree( regOmiIdentifier ); + } + + + #region Workarround to handle a bug from Microsoft + // A bug, see http://dturini.blogspot.com/2004_08_01_dturini_archive.html + // or http://support.microsoft.com/default.aspx?scid=KB;EN-US;q326219#appliesto + [DllImport("msvcr71.dll", CallingConvention = CallingConvention.Cdecl)] + private static extern int _controlfp(int n, int mask); + const int _RC_NEAR = 0x00000000; + const int _PC_53 = 0x00010000; + const int _EM_INVALID = 0x00000010; + const int _EM_UNDERFLOW = 0x00000002; + const int _EM_ZERODIVIDE = 0x00000008; + const int _EM_OVERFLOW = 0x00000004; + const int _EM_INEXACT = 0x00000001; + const int _EM_DENORMAL = 0x00080000; + const int _CW_DEFAULT = ( _RC_NEAR + _PC_53 + + _EM_INVALID + + _EM_ZERODIVIDE + + _EM_OVERFLOW + + _EM_UNDERFLOW + + _EM_INEXACT + + _EM_DENORMAL); + + /// + /// Resets floating point unit (FPU). + /// + public static void ResetFPU() + { + _controlfp(_CW_DEFAULT ,0xfffff); + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/Help.html b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/Help.html new file mode 100644 index 00000000..a5569c58 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/Help.html @@ -0,0 +1,298 @@ + + + + + + + Configuration Editor Help + + +

    +

    +
    +

    Configuration Editor Help

    +

    Introduction

    +

    + OpenMI standard provides capability for linking of different computational + models mostly used for water and environment modeling. After this standard was + introduced, the need of user friendly application able to link OpenMI compliant + models arised. Oatc.OpenMI.ConfigurationEditor.exe is such an application

    +

    + If you are new to OpenMI, please take a look at Links section + of this document to find sources of information about OpenMI. +

    +

    Working with Configuration Editor

    +

    Adding models to composition

    +

    + As the first step you have to add models into your composition. In menu click + on Composition > Add Model, in open-file dialog choose + OMI file of the model and click OK. Rectangle describing your model + should now appear in composition area. Same operation can be performed in popup + menu, which you can open by clicking of right mouse button. +
    + +
    + Repeat this procedure for each model which you want to have in your + composition. There's only one limitation: two models cannot have same ModelID. +
    +
    + If you want to show properties of the model, click on Composition > Model properties... + and select requested model. Same operation can also be performed in popup menu + by right-clicking of model rectangle and selecting Model properties.... +
    + +
    + See section Linking of models for more detail about the + exchange items tree. +

    +

    + You should also add Trigger as well, if you want to run simulation of the + composition. In menu click Composition > Add Trigger. + Trigger is special model used to fire simulation, see section Running + simulation for more detail. +

    + +

    Linking of models

    +

    + If you want to make first link between two different models in some direction, + you must create connection between them first. Connection is an abstraction + that collects links between two models, all its links have same direction as + connection itself. In menu click Composition > Add Connection + or in popup menu click Add Connection, click on the source model's + rectangle and afterwards click on target model's rectangle. Source model is + model providing data, target model is model accepting data. Line connecting two + models with small triangle in the middle should now appear in the composition + area. +
    + +
    + Now you can add links to connection. Click on small triangle on the connection + to show Connection properties dialog. Here you can see two trees + describing exchange items of two connected models, Output exchange items + are from source model, Input exchange items from target model. + First-level nodes of this trees correspond to quantities, second-level nodes to + element sets. In case of Output exchange items there are third-level + nodes which show all available Data operations for output exchange item. +
    +
    + If you click on quantity, element set or data operation, it's properties + appears on the grid right. These properties are all read-only, only data + operations can have writeable arguments. +
    +
    + OpenMI link generally consists of one output quantity, output element set, + input quantity and input element set. In the bottom of the window you can see + list of such links in this connection and one item named <New...>. + If you want to add new link, click on this item, check output quantity, element + set and maybe some data operations, check input quantity and element set and + aftewards click Apply button. New link now appears in the list. If you + want to edit existing link, click on it in the list, change it's properties and + click Apply. To remove existing link, click Remove button. +
    + +
    + If you use Use Dimension filter option, there will be shown only input + exchange items with same dimension as the quantity checked in output exchange + items. Similar behaviour has Use ElementType filter, the only difference + is that there are shown input exchange items which have either ID-based element + set or element set of same type (i.e. line, polygon, poly-line, ...) and with + same number of elements like checked output element set. +
    +
    + ElementSet viewer is simple tool used to show spatial properties of one + or two ElementSets. Check output and/or input ElementSet and click + corresponding button. +
    + +
    +

    + +

    Running simulation

    +

    + Before you can run simulation, make sure the Trigger is part of your + composition and is linked to one model. Trigger is special model used to fire + simulation, it just once invokes GetValues() on linked model at + specified time. +
    +
    + In menu click Composition > Run... to show Run properties + dialog. +
    + +
    + Here you can set what types of event do you want to listen during computation, + these events can be stored into log file (check Log to file and type or + browse filename of log-file) and/or shown in list-box (check Show events in + listbox). Remember that handling of events can cause large performance + overheads for models performing fast timesteps, especially showing events in + list-box is relatively slow. +
    +
    + Invoke trigger at defines the time, when trigger invokes GetValues() + on linked model. It can be automatically set to latest overlapping time of all + models by clicking Lastest overlapping button. See Remarks + section about what format of date and time to use. +
    +
    + Don't use separate thread check-box determines whether simulation is run + in same thread as user interface (UI). If simulation runs in separate thread, + UI responds immediately and user can even stop it. However, some components + wrapping for example model using COM single-thread apartments can run in + problems, because model (in this case COM object) is intialized in UI + thread and not in simulation thread. If simulation runs in same thread as user + interface, and timestep of some model takes long time to execute, UI can stop + responding and user isn't able to stop simulation as well. See + Command-line options to see how you can change default + thread apartment state. +
    +
    + To start the simulation, click RUN !!!. +
    + +
    + After simulation finished, message-box asking you whether you want to reload + the project appears. OpenMI standard doesn't include functionallity to + reinitialize models after simulation finished, and model may not be able to run + simulation again and/or have malformed properties (like exchange items, model + ID, etc...) Reloading is just workaround to this behaviour, it's same operation + like if you save the project, restart Configuration Editor and open your project again. + However, some models can delete result files of their simulation if you reload + them. +
    + +
    + If you decide not to reload the composition, you can do it later in menu File > Reload. +

    + +

    Appendix

    +

    Globalization

    +

    + Whole application uses english/US culture for converting (string to DateTime, + DateTime to string, string to int, etc...). For example Trigger invoke at + in Run properties dialog uses MM/dd/yyyy hh:mm:ss AM|PM format. +

    + + +

    Advanced options

    +

    + In menu Options > Register file extensions you can register + OPR and OMI file extension to be opened with this Configuration Editor application, e.g. + from Explorer. In such case or if you open OPR file, Configuration Editor application starts and opens this file, + if you open OMI file, Configuration Editor creates a new composition with just one model from this file. This registartion + can also be performed from command-line, see Command-line options how. +

    + + +

    Command-line options

    +

    + Behaviour of Configuration Editor can be influenced by set of command-line arguments. +
    Syntax: Oatc.OpenMI.ConfigurationEditor.exe [-opr OPRFILE | -omi OMIFILE | -reg | -unreg | -help] [-mta] + + + + + + + + + + + + + + + + + + + + + + + + + +
    -opr OPRFILEOpens Configuration Editor project from specific OPRFILE.
    -omi OMIFILECreates a new composition and adds model from OMIFILE into it.
    -regRegisters OPR and OMI file extensions in Windows registry to be opened with + this Configuration Editor executable.
    -unregDiscards all OPR and OMI file extension registrations from Windows registry.
    -helpShows window with description of command-line options.
    -mtaApplication creates and enters a multi-threaded apartment COM model at startup.
    + Note: -mta option is useful if you are using models wrapping COM objects, + because some of them may require this setting to work properly. By default, single-thread apartment (STA) is used. +

    +

    Command-line execution (Oatc.OpenMI.ComandLine.exe)

    +

    + This utility is used to run OpenMI compositions from the + command-line. If the user installed the Configuration Editor using the msi installer, then this utility can be found in the same place under "Program Files". + Otherwise, it can be downloaded and built from sourceforge. +
    Syntax: Oatc.OpenMI.ComandLine.exe -r OPR_FILE [-v] [-mta] + + + + + + + + + + + + + + + + + +
    -r OPR_FILERuns simulation of specified Configuration Editor project.
    -vVerbose mode off.
    -mtaApplication creates and enters a multi-threaded apartment COM model at startup.
    -helpShows help.
    + Note: -mta option is useful if you are using models wrapping COM objects, + because some of them may require this setting to work properly. By default, single-thread apartment (STA) is used. + + +

    +

    Licence

    +

    +Copyright (c) 2005,2006,2007, OpenMI Association
    +All rights reserved.

    + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met:

    +

    + + +
  • Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer.

  • + +
  • Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution.

  • + +
  • Neither the name of the OpenMI Association nor the names of its contributors may +be used to endorse or promote products derived from this software without specific + prior written permission.
  • +
    + +
    +
    +THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE.

    + +Contact info:

    + URL: www.openmi.org

    +Email: sourcecode@openmi.org

    +Discussion forum available at www.sourceforge.net

    +

    Links

    + + Copyright(c) OpenMI Association, last modified at 12/12/2007. + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/LogoOpenMI.jpg b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/LogoOpenMI.jpg new file mode 100644 index 00000000..d126a04b Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/LogoOpenMI.jpg differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/OpenMI-titleonly.jpg b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/OpenMI-titleonly.jpg new file mode 100644 index 00000000..7b2a5f69 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/OpenMI-titleonly.jpg differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/add_connection.png b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/add_connection.png new file mode 100644 index 00000000..a9453342 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/add_connection.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/add_model.png b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/add_model.png new file mode 100644 index 00000000..d297e9e4 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/add_model.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/connection_added.png b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/connection_added.png new file mode 100644 index 00000000..c9ac28e8 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/connection_added.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/connection_properties.png b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/connection_properties.png new file mode 100644 index 00000000..354a5f62 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/connection_properties.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/elementset_viewer.png b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/elementset_viewer.png new file mode 100644 index 00000000..e0ecebb9 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/elementset_viewer.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/lgpl.html b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/lgpl.html new file mode 100644 index 00000000..81ac5193 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/lgpl.html @@ -0,0 +1,641 @@ + + + +GNU Lesser General Public License - GNU Project - Free Software Foundation (FSF) + + + +

    GNU Lesser General Public License

    + + + [image of a Philosophical Gnu] + + + + + + +[ + English | + Japanese +] + + + + + +

    +

    + +

    +


    +

    +This GNU Lesser General Public License counts as the successor +of the GNU Library General Public License. For an explaination of +why this change was necessary, read the +Why you shouldn't use the +Lesser GPL for your next library article. +

    + +

    Table of Contents

    + + +

    + +


    + +

    + + + +

    GNU LESSER GENERAL PUBLIC LICENSE

    +

    +Version 2.1, February 1999 + +

    +

    +Copyright (C) 1991, 1999 Free Software Foundation, Inc.
    +51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    +Everyone is permitted to copy and distribute verbatim copies
    +of this license document, but changing it is not allowed.
    +
    +[This is the first released version of the Lesser GPL.  It also counts
    + as the successor of the GNU Library Public License, version 2, hence
    + the version number 2.1.]
    +
    + + +

    Preamble

    + +

    + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. +

    + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. +

    + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. +

    + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. +

    + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. +

    + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. +

    + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. +

    + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. +

    + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. +

    + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. +

    + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. +

    + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. +

    + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. +

    + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. +

    + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. +

    + +

    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

    + + +

    +0. +This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". +

    + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. +

    + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) +

    + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. +

    + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. +

    +1. +You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. +

    + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. +

    +2. +You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: +

    +

      +
    • a) + The modified work must itself be a software library. +
    • b) + You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + +
    • c) + You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + +
    • d) + If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. +

      + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) +

      + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Library, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Library, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote + it. +

      + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Library. +

      + In addition, mere aggregation of another work not based on the Library + with the Library (or with a work based on the Library) on a volume of + a storage or distribution medium does not bring the other work under + the scope of this License. +

    +

    +3. +You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. +

    + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. +

    + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. +

    +4. +You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. +

    + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. +

    +5. +A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. +

    + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. +

    + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. +

    + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) +

    + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. +

    +6. +As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. +

    + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: +

    +

      +
    • a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + +
    • b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + +
    • c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + +
    • d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + +
    • e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. +
    +

    + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. +

    + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. +

    +7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: +

    +

      +
    • a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + +
    • b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. +
    +

    +8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. +

    +9. +You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. +

    +10. +Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. +

    +11. +If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. +

    +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. +

    +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. +

    +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. +

    +12. +If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. +

    +13. +The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. +

    +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. +

    +14. +If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. +

    +NO WARRANTY +

    +15. +BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. +

    +16. +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. +

    +

    END OF TERMS AND CONDITIONS

    + +

    How to Apply These Terms to Your New Libraries

    +

    + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). +

    + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. +

    + +

    +one line to give the library's name and an idea of what it does.
    +Copyright (C) year  name of author
    +
    +This library is free software; you can redistribute it and/or
    +modify it under the terms of the GNU Lesser General Public
    +License as published by the Free Software Foundation; either
    +version 2.1 of the License, or (at your option) any later version.
    +
    +This library is distributed in the hope that it will be useful,
    +but WITHOUT ANY WARRANTY; without even the implied warranty of
    +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +Lesser General Public License for more details.
    +
    +You should have received a copy of the GNU Lesser General Public
    +License along with this library; if not, write to the Free Software
    +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    +
    + +

    +Also add information on how to contact you by electronic and paper mail. + +

    +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + +

    +

    +Yoyodyne, Inc., hereby disclaims all copyright interest in
    +the library `Frob' (a library for tweaking knobs) written
    +by James Random Hacker.
    +
    +signature of Ty Coon, 1 April 1990
    +Ty Coon, President of Vice
    +
    + +

    +That's all there is to it! + +


    + +Return to GNU's home page. +

    +FSF & GNU inquiries & questions to +gnu@gnu.org. +Other ways to contact the FSF. +

    +Comments on these web pages to +webmasters@www.gnu.org, +send other questions to +gnu@gnu.org. +

    +Copyright notice above.
    +Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110, USA +

    +Updated: + +$Date: 2006-11-30 09:45:25 +0000 (Thu, 30 Nov 2006) $ $Author: jan_gregersen $ + +


    + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/model_added.png b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/model_added.png new file mode 100644 index 00000000..4a168a27 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/model_added.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/model_properties.png b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/model_properties.png new file mode 100644 index 00000000..328e1354 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/model_properties.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/reload_question.png b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/reload_question.png new file mode 100644 index 00000000..dfdab13d Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/reload_question.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/run.png b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/run.png new file mode 100644 index 00000000..780d228a Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/run.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/run_properties.png b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/run_properties.png new file mode 100644 index 00000000..86da5fa5 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/run_properties.png differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/style.css b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/style.css new file mode 100644 index 00000000..cdde96f7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Help/resources/style.css @@ -0,0 +1,80 @@ +body +{ + background-color: White; + padding: 10px; +} + + + +h1 +{ + font-family: Arial; + font-weight: bold; + font-size: 26px; + text-align: center; + color: black; +} + +h2 +{ + font-family: Arial; + font-weight: bold; + font-size: 18px; + text-align: left; + color: black; +} + +h3 +{ + font-family: Arial; + font-weight: bold; + font-size: 15px; + text-align: left; + color: black; +} + +h4 +{ + font-family: Arial; + font-weight: bold; + font-size: 13px; + text-align: left; + color: black; +} + +.licence +{ + margin-left: 15px; + color: black; +} + +.stdtext +{ + font-family: Arial; + font-size: 12px ; + margin-left: 10px; + text-align: justify; + color: black; +} + +.commandline_table +{ + font-family: Arial; + font-size: 12px ; + margin-left: 5px; + color: black; + border: none; +} + +.pict +{ + margin: 10px; +} + +.endlabel +{ + font-family: Arial; + font-size: 10px; + color: black; + text-align: center; +} \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Oatc.OpenMI.Gui.sln b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Oatc.OpenMI.Gui.sln new file mode 100644 index 00000000..5a67ba8c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/Oatc.OpenMI.Gui.sln @@ -0,0 +1,76 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GUI", "GUI", "{6FF6DEE5-ED09-4A53-816A-F0C52FA54664}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SDK", "SDK", "{886DB789-8B1E-4D23-945B-F25FBD7B674D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Gui.Core", "Core\Oatc.OpenMI.Gui.Core.csproj", "{5ED7C71D-E89A-41F7-8B34-54C0C099412C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Gui.Controls", "Controls\Oatc.OpenMI.Gui.Controls.csproj", "{FC8850E1-3C5A-4B6D-8012-A7411B06F863}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Gui.CommandLine", "CommandLine\Oatc.OpenMI.Gui.CommandLine.csproj", "{46FB499C-4EE5-4D44-8DCA-E55A83437934}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Backbone", "..\sdk\Backbone\Oatc.OpenMI.Sdk.Backbone.csproj", "{23C206AE-CBEF-4FD1-9928-BF04147B62B2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Buffer", "..\sdk\Buffer\Oatc.OpenMI.Sdk.Buffer.csproj", "{C9844E74-074D-46FA-AEF6-371B3481468B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.DevelopmentSupport", "..\sdk\DevelopmentSupport\Oatc.OpenMI.Sdk.DevelopmentSupport.csproj", "{B7BE8C7F-0679-4022-81A5-6A314C058429}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Spatial", "..\sdk\Spatial\Oatc.OpenMI.Sdk.Spatial.csproj", "{4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Wrapper", "..\sdk\Wrapper\Oatc.OpenMI.Sdk.Wrapper.csproj", "{3DF52260-A727-405B-88A8-630BCE9085AC}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5ED7C71D-E89A-41F7-8B34-54C0C099412C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5ED7C71D-E89A-41F7-8B34-54C0C099412C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5ED7C71D-E89A-41F7-8B34-54C0C099412C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5ED7C71D-E89A-41F7-8B34-54C0C099412C}.Release|Any CPU.Build.0 = Release|Any CPU + {FC8850E1-3C5A-4B6D-8012-A7411B06F863}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC8850E1-3C5A-4B6D-8012-A7411B06F863}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC8850E1-3C5A-4B6D-8012-A7411B06F863}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC8850E1-3C5A-4B6D-8012-A7411B06F863}.Release|Any CPU.Build.0 = Release|Any CPU + {46FB499C-4EE5-4D44-8DCA-E55A83437934}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46FB499C-4EE5-4D44-8DCA-E55A83437934}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46FB499C-4EE5-4D44-8DCA-E55A83437934}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46FB499C-4EE5-4D44-8DCA-E55A83437934}.Release|Any CPU.Build.0 = Release|Any CPU + {23C206AE-CBEF-4FD1-9928-BF04147B62B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23C206AE-CBEF-4FD1-9928-BF04147B62B2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23C206AE-CBEF-4FD1-9928-BF04147B62B2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23C206AE-CBEF-4FD1-9928-BF04147B62B2}.Release|Any CPU.Build.0 = Release|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Release|Any CPU.Build.0 = Release|Any CPU + {B7BE8C7F-0679-4022-81A5-6A314C058429}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7BE8C7F-0679-4022-81A5-6A314C058429}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7BE8C7F-0679-4022-81A5-6A314C058429}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7BE8C7F-0679-4022-81A5-6A314C058429}.Release|Any CPU.Build.0 = Release|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Release|Any CPU.Build.0 = Release|Any CPU + {3DF52260-A727-405B-88A8-630BCE9085AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DF52260-A727-405B-88A8-630BCE9085AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DF52260-A727-405B-88A8-630BCE9085AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DF52260-A727-405B-88A8-630BCE9085AC}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {5ED7C71D-E89A-41F7-8B34-54C0C099412C} = {6FF6DEE5-ED09-4A53-816A-F0C52FA54664} + {FC8850E1-3C5A-4B6D-8012-A7411B06F863} = {6FF6DEE5-ED09-4A53-816A-F0C52FA54664} + {46FB499C-4EE5-4D44-8DCA-E55A83437934} = {6FF6DEE5-ED09-4A53-816A-F0C52FA54664} + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} = {886DB789-8B1E-4D23-945B-F25FBD7B674D} + {C9844E74-074D-46FA-AEF6-371B3481468B} = {886DB789-8B1E-4D23-945B-F25FBD7B674D} + {B7BE8C7F-0679-4022-81A5-6A314C058429} = {886DB789-8B1E-4D23-945B-F25FBD7B674D} + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C} = {886DB789-8B1E-4D23-945B-F25FBD7B674D} + {3DF52260-A727-405B-88A8-630BCE9085AC} = {886DB789-8B1E-4D23-945B-F25FBD7B674D} + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Bitmaps/bannrbmp.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Bitmaps/bannrbmp.bmp new file mode 100644 index 00000000..bd150bfa Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Bitmaps/bannrbmp.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Bitmaps/dlgbmp.bmp b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Bitmaps/dlgbmp.bmp new file mode 100644 index 00000000..248ba46c Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Bitmaps/dlgbmp.bmp differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Gui_1.4_Alpha5.wxs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Gui_1.4_Alpha5.wxs new file mode 100644 index 00000000..016c61fb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Gui_1.4_Alpha5.wxs @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = "2.0.50727"]]> + + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Gui_1.4_Beta1.wxs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Gui_1.4_Beta1.wxs new file mode 100644 index 00000000..9383f528 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Gui_1.4_Beta1.wxs @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = "2.0.50727"]]> + + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Gui_1.4_Beta2.wxs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Gui_1.4_Beta2.wxs new file mode 100644 index 00000000..84b69d2b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Gui_1.4_Beta2.wxs @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = "2.0.50727"]]> + + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Gui_1.4_Release.wxs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Gui_1.4_Release.wxs new file mode 100644 index 00000000..a37f4beb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Gui_1.4_Release.wxs @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = "2.0.50727"]]> + + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/License.rtf b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/License.rtf new file mode 100644 index 00000000..be590013 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/License.rtf differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Wix.rb b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Wix.rb new file mode 100644 index 00000000..e2f83883 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/gui/WixGui/Wix.rb @@ -0,0 +1,41 @@ +def make_installer + candle='C:\Program Files\Windows Installer XML\bin\candle' + light='C:\Program Files\Windows Installer XML\bin\light' + wixUI='"C:\Program Files\Windows Installer XML\bin\wixUI.wixlib"' + wixUIenUS='"C:\Program Files\Windows Installer XML\bin\WixUI_en-us.wxl"' + +# product = "Oatc.OpenMI.Gui.ConfigurationEditor 1.4 Alpha 5" +# xmlFiles = ["Gui_1.4_Alpha5"] +# product = "Oatc.OpenMI.Gui.ConfigurationEditor 1.4 Beta 1" +# xmlFiles = ["Gui_1.4_Beta1"] +# product = "Oatc.OpenMI.Gui.ConfigurationEditor 1.4 Beta 2" +# xmlFiles = ["Gui_1.4_Beta2"] + product = "Oatc.OpenMI.Gui.ConfigurationEditor 1.4" + xmlFiles = ["Gui_1.4_Release"] + + wixs = [] + wixobjs = [] + + xmlFiles.each { |f| wixs.push f + ".wxs" } + xmlFiles.each { |f| wixobjs.push f + ".wixobj" } + + return if !system_command("Making Candle", "#{candle} #{wixs.join(" ")}") + return if !system_command("Making Light", "#{light} #{wixobjs.join(" ")} #{wixUI} -loc #{wixUIenUS} -out \"#{product}.msi\"") + + STDOUT.puts "Installer Make completed OK" + STDOUT.flush +end + +def system_command(comment, cmd) + STDOUT.puts "\n#{comment} ...\n" + STDOUT.flush + STDOUT.puts `#{cmd}` + return true if $? == 0 + STDERR.puts "\n===FAILED=== #{comment}\n" + return false +end + +make_installer() + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Argument.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Argument.cs new file mode 100644 index 00000000..62a0c114 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Argument.cs @@ -0,0 +1,168 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// Argument is a class that contains (key,value) pairs. + /// This is a trivial implementation of OpenMI.Standard.IArgument, refer there for further details. + /// + [Serializable] + public class Argument : IArgument + { + private string _key=""; + private string _value=""; + private bool _readOnly = false; + private string _description=""; + + /// + /// Empty constructor + /// + public Argument() + { + } + + /// + /// Copy constructor + /// + /// Source argument to copy + public Argument(IArgument source) + { + Key = source.Key; + Value = source.Value; + ReadOnly = source.ReadOnly; + Description = source.Description; + } + + /// + /// Constructor + /// + /// Key + /// Value + /// Is argument read-only? + /// Description + public Argument(string key,string Value,bool ReadOnly,string Description) + { + _key = key; + _value = Value; + _readOnly = ReadOnly; + _description = Description; + } + #region IArgument Members + + /// + /// TODO: comment + /// + public string Key + { + get + { + return _key; + } + set + { + _key = value; + } + } + + /// + /// TODO: comment + /// + public string Value + { + get + { + return _value; + } + set + { + _value = value; + } + } + + /// + /// TODO: comment + /// + public bool ReadOnly + { + get + { + return _readOnly; + } + set + { + _readOnly = value; + } + } + + /// + /// TODO: comment + /// + public string Description + { + get + { + return _description; + } + set + { + _description = value; + } + } + + #endregion + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Argument d = (Argument)obj; + return (Value.Equals(d.Value)&&Key.Equals(d.Key)); + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_key != null) hashCode += _key.GetHashCode(); + if (_value != null) hashCode += _value.GetHashCode(); + return hashCode; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/AssemblyInfo.cs new file mode 100644 index 00000000..d8761d64 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI SDK Backbone Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4")] +[assembly: AssemblyCopyright("BSD License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/DataOperation.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/DataOperation.cs new file mode 100644 index 00000000..c0f7900f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/DataOperation.cs @@ -0,0 +1,187 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The DataOperation class contains operations the providing component should + /// carry out on the data. + /// This is a trivial implementation of OpenMI.Standard.IDataOperation, refer there for further details. + /// + [Serializable] + public class DataOperation : IDataOperation + { + private string _id; + private ArrayList _arguments = new ArrayList(); + + /// + /// Constructor + /// + public DataOperation() + { + } + + /// + /// Initialize method + /// + /// The arguments for the data operations + public void Initialize(IArgument[] properties) + { + _arguments.AddRange (properties); + } + + /// + /// Copy constructor + /// + /// The Data Operation to copy + public DataOperation(IDataOperation source) + { + ID = source.ID; + for (int i=0;i + /// Constructor with just a string ID + /// + /// The ID + public DataOperation( + string ID) + { + _id = ID; + } + + /// + /// Setter and getter methods for ID + /// + public virtual string ID + { + get + { + return _id; + } + set + { + _id = value; + } + } + + /// + /// Getter method for the argument count + /// + public virtual int ArgumentCount + { + get + { + return _arguments.Count; + } + } + + /// + /// Setter and getter methods for the arguments + /// + public virtual ArrayList Arguments + { + get { + return _arguments; + } + set { + _arguments = value; + } + } + + /// + /// Gets one argument + /// + /// The index of the argument + /// The argument + public virtual IArgument GetArgument(int argumentIndex) + { + return (IArgument) _arguments[argumentIndex]; + } + + + /// + /// Adds an argument + /// + /// The argument to add + public virtual void AddArgument( + IArgument argument + ) + { + _arguments.Add(argument); + } + + /// + /// Checks whether the current data operation is valid for the combination of + /// input and output exchange items + /// + /// The input exchange item + /// The output exchange item + /// The selected data operations + /// True if the data operation is valid + public virtual bool IsValid(IInputExchangeItem inputExchangeItem,IOutputExchangeItem outputExchangeItem, + IDataOperation[] SelectedDataOperations) + { + return true; + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + DataOperation d = (DataOperation)obj; + if (!ID.Equals(d.ID)) return false; + if (!ArgumentCount.Equals(d.ArgumentCount)) return false; + for (int i=0;i + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_id != null) hashCode += _id.GetHashCode(); + return hashCode; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Dimension.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Dimension.cs new file mode 100644 index 00000000..3e73d660 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Dimension.cs @@ -0,0 +1,90 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The Dimension class contains the dimension for a unit. + /// This is a trivial implementation of OpenMI.Standard.IDimension, refer there for further details. + /// + + [Serializable] + public class Dimension : IDimension + { + double[] _count; + + /// + /// Constructor + /// + public Dimension() + { + _count = new double[ (int) DimensionBase.NUM_BASE_DIMENSIONS]; + } + + /// + /// Returns the power of a base quantity + /// + /// The base quantity + /// The power + public double GetPower(DimensionBase baseQuantity) + { + return _count[(int) baseQuantity]; + } + + /// + /// Sets a power for a base quantity + /// + /// The base quantity + /// The power + public void SetPower(DimensionBase baseQuantity,double power) + { + _count[(int) baseQuantity] = power; + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public bool Equals(IDimension obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Dimension d = (Dimension) obj; + for (int i=0;i<(int)DimensionBase.NUM_BASE_DIMENSIONS;i++) + { + if (_count[i]!=d._count[i]) + return false; + } + return true; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Element.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Element.cs new file mode 100644 index 00000000..c5df03f0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Element.cs @@ -0,0 +1,215 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The Element class contains a spatial element. + /// This is a trivial implementation for use with Oatc.OpenMI.Sdk.Backbone.ElementSet, refer there for further details. + /// + [Serializable] + public class Element + { + private ArrayList _vertices = new ArrayList(); + private ArrayList _faces = new ArrayList(); + private string _id=""; + + /// + /// Constructor + /// + public Element() + { + } + + /// + /// Copy constructor + /// + /// The element to copy + public Element(Element source) + { + ID = source.ID; + Vertices = source.Vertices; + } + + /// + /// Setter and getter functions for the vertex list + /// + public virtual Vertex[] Vertices + { + get + { + Vertex[] vertices = new Vertex[_vertices.Count]; + for (int i=0;i<_vertices.Count;i++) + { + vertices[i] = (Vertex) _vertices[i]; + } + return vertices; + } + set + { + _vertices.Clear(); + for (int i=0;i + /// Constructor function + /// + /// The Element ID + public Element(string ID) + { + _id = ID; + } + + /// + /// Returns the vertex count + /// + public virtual int VertexCount + { + get + { + return _vertices.Count; + } + } + + /// + /// Getter and setter functions for the element ID + /// + public string ID + { + get + { + return _id; + } + set + { + _id = value; + } + } + + /// + /// Gets a vertex + /// + /// The vertex index + /// The vertex + public virtual Vertex GetVertex(int Index) + { + return (Vertex) _vertices[Index]; + } + + /// + /// Adds a vertex + /// + /// The vertex to add + public virtual void AddVertex(Vertex vertex) + { + _vertices.Add(vertex); + } + + /// + /// Returns the number of faces + /// + public int FaceCount + { + get {return _faces.Count;} + } + + /// + /// Adds a face + /// + /// The vertex indices for the face + public void AddFace(int[] vertexIndices) + { + _faces.Add(vertexIndices); + } + + /// + /// Returns the face vertex indices for a face + /// + /// The face index + /// The face vertex indices + public int[] GetFaceVertexIndices(int faceIndex) + { + return ((int[]) _faces[faceIndex]); + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Element e = (Element) obj; + if (!ID.Equals(e.ID)) + return false; + if (VertexCount!=e.VertexCount) + return false; + for (int i=0;i + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_id != null) hashCode += _id.GetHashCode(); + if (_vertices != null) hashCode += _vertices.GetHashCode(); + return hashCode; + } + + /// + /// String representation of the element + /// + /// + public override string ToString() + { + if (_id != null) + { + return _id; + } + else + { + return "georef'd element"; + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/ElementSet.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/ElementSet.cs new file mode 100644 index 00000000..33c9b536 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/ElementSet.cs @@ -0,0 +1,368 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The ElementSet class describes a collection of spatial elements. + /// This is a trivial implementation of OpenMI.Standard.IElementSet, refer there for further details. + /// + [Serializable] + public class ElementSet:IElementSet + { + private ArrayList _elements = new ArrayList(); + private string _description=""; + private string _id=""; + private ElementType _elementType = new ElementType(); + private ISpatialReference _spatialReference = new SpatialReference(); + + /// + /// Constructor + /// + public ElementSet() + { + } + + /// + /// Copy constructor + /// + /// The element set to copy + public ElementSet(IElementSet source) + { + _description = source.Description; + _id = source.ID; + _elementType = source.ElementType; + _spatialReference = source.SpatialReference; + + for (int i=0;i + /// ElementSet version + /// + public virtual int Version + { + get { return 0;} + } + + /// + /// Constructor + /// + /// Description + /// ID + /// Element type + /// Spatial reference + public ElementSet(string Description, string ID, + ElementType ElementType,ISpatialReference SpatialReference) + { + _description = Description; + _id = ID; + _elementType = ElementType; + _spatialReference = SpatialReference; + } + + /// + /// Adds an element + /// + /// The element to add + public virtual void AddElement (Element element) + { + _elements.Add(element); + } + + /// + /// Gets an element + /// + /// The element index + /// The element + public virtual Element GetElement(int ElementIndex) + { + return (Element) _elements[ElementIndex]; + + } + + /// + /// Getter and setter functions for the element list + /// + public virtual Element[] Elements + { + get + { + Element[] elements = new Element[_elements.Count]; + for (int i=0;i<_elements.Count;i++) + { + elements[i] = (Element) _elements[i]; + } + return elements; + } + set + { + _elements.Clear(); + for (int i=0;i + /// Returns an element ID for an element + /// + /// The element index + /// The element ID + public virtual string GetElementID(int ElementIndex) + { + Element element = (Element) _elements[ElementIndex]; + return element.ID; + } + + /// + /// Setter and getter for the element set description + /// + public virtual string Description + { + get + { + return _description; + } + set + { + _description = value; + } + } + + /// + /// Setter and getter for the element set ID + /// + public string ID + { + get + { + return _id; + } + set + { + _id = value; + } + } + + /// + /// Setter and getter for the element type + /// + public virtual ElementType ElementType + { + get + { + return _elementType; + } + set + { + _elementType = value; + } + } + + /// + /// Returns the x coordinate for a vertex + /// + /// The element index + /// The vertex index + /// The x coordinate + public virtual double GetXCoordinate(int ElementIndex, int VertexIndex) + { + Element element = (Element) _elements[ElementIndex]; + Vertex vertex = element.GetVertex(VertexIndex); + return vertex.x; + } + + /// + /// Returns the y coordinate for a vertex + /// + /// The element index + /// The vertex index + /// The y coordinate + public virtual double GetYCoordinate(int ElementIndex, int VertexIndex) + { + Element element = (Element) _elements[ElementIndex]; + Vertex vertex = element.GetVertex(VertexIndex); + return vertex.y; + } + + /// + /// Returns the z coordinate for a vertex + /// + /// The element index + /// The vertex index + /// The z coordinate + public virtual double GetZCoordinate(int ElementIndex, int VertexIndex) + { + Element element = (Element) _elements[ElementIndex]; + Vertex vertex = element.GetVertex(VertexIndex); + return vertex.z; + } + + /// + /// Returns the number of elements + /// + public virtual int ElementCount + { + get + { + return _elements.Count; + } + } + + /// + /// Returns the number of vertices for an element + /// + /// The element index + /// The number of vertices for this element + public virtual int GetVertexCount(int ElementIndex) + { + Element element = (Element) _elements[ElementIndex]; + return element.VertexCount; + } + + /// + /// Getter and setter for the spatial reference + /// + public virtual ISpatialReference SpatialReference + { + get + { + return _spatialReference; + } + set + { + _spatialReference = value; + } + } + + /// + /// Returns the element index for a given element ID + /// + /// The element ID + /// The element index + public virtual int GetElementIndex(string ElementID) + { + for (int i=0;i<_elements.Count;i++) + { + Element element = (Element) _elements[i]; + if (element.ID.Equals(ElementID)) + { + return i; + } + } + throw new Exception("Element with ID "+ElementID+ " not found."); + } + + /// + /// Returns the list of face vertex indices for a given element and face + /// + /// The element index + /// The face index + /// List of face vertex indices + public int[] GetFaceVertexIndices(int elementIndex, int faceIndex) + { + return ((Element)_elements[elementIndex]).GetFaceVertexIndices(faceIndex); + } + + /// + /// Returns the face count for a given element + /// + /// The element index + /// The face count for the given element + public int GetFaceCount(int elementIndex) + { + return ((Element)_elements[elementIndex]).FaceCount; + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + ElementSet s = (ElementSet)obj; + if (!Description.Equals(s.Description)) + return false; + if (!ID.Equals(s.ID)) + return false; + if (!SpatialReference.Equals(s.SpatialReference)) + return false; + if (!ElementType.Equals(s.ElementType)) + return false; + if (ElementCount != s.ElementCount) + return false; + for (int i = 0; i < ElementCount; i++) + if (!GetElement(i).Equals(s.GetElement(i))) + return false; + return true; + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_id != null) hashCode += _id.GetHashCode(); + hashCode += _elementType.GetHashCode(); + return hashCode; + } + + /// + /// String representation of the + /// + /// + public override string ToString() + { + return ID; + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Event.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Event.cs new file mode 100644 index 00000000..5834051e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Event.cs @@ -0,0 +1,172 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// Events are used to send informative and warning messages. + /// This is a trivial implementation of OpenMI.Standard.IEvent, refer there for further details. + /// + [Serializable] + public class Event:IEvent + { + private Hashtable _attributeTable = new Hashtable(); + private ILinkableComponent _sender; + private ITimeStamp _simulationTime; + private EventType _type=EventType.Informative; + private string _description=""; + + /// + /// Constructor + /// + public Event() + { + } + + /// + /// Constructor + /// + /// Event type + public Event(EventType type) + { + _type = type; + } + + /// + /// Getter and setter for the event type + /// + public EventType Type + { + get {return _type;} + set {_type = value;} + } + + /// + /// Getter and setter for the sender + /// + public ILinkableComponent Sender + { + get {return _sender;} + set {_sender = value;} + } + + /// + /// Getter and setter for the simulation time + /// + public ITimeStamp SimulationTime + { + get {return _simulationTime;} + set {_simulationTime = value;} + } + + /// + /// Getter and setter for the description + /// + public string Description + { + get {return _description;} + set {_description = value;} + } + + /// + /// Sets an attribute for the event with a (key,value) pair + /// + /// The key + /// The value + public void SetAttribute(string key, object val) + { + _attributeTable.Add(key,val); + + } + /// + /// Gets an attribute for a given key + /// + /// The key + /// The attribute + public object GetAttribute(string key) + { + return (_attributeTable[key]); + + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Event e = (Event) obj; + if (!Description.Equals(e.Description)) + return false; + if (!Type.Equals(e.Type)) + return false; + if (!SimulationTime.Equals(e.SimulationTime)) + return false; + if (Sender!=e.Sender) + return false; + ICollection Keys = _attributeTable.Keys; + ICollection eKeys = e._attributeTable.Keys; + if (Keys.Count!=eKeys.Count) + return false; + IEnumerator enumerator = Keys.GetEnumerator(); + while (enumerator.MoveNext()) + { string key = (string) enumerator.Current; + string val = (string) _attributeTable[key]; + + if (!e._attributeTable.ContainsKey(key)) + return false; + if (!e._attributeTable[key].Equals(val)) + return false; + } + return true; + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_sender != null) hashCode += _sender.GetHashCode(); + hashCode += _type.GetHashCode(); + if (_simulationTime != null) hashCode += _simulationTime.GetHashCode(); + return hashCode; + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/ExchangeItem.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/ExchangeItem.cs new file mode 100644 index 00000000..98296396 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/ExchangeItem.cs @@ -0,0 +1,90 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The exchange item is a combination of a quantity and an element set. + /// This is a trivial implementation of OpenMI.Standard.IExchangeItem, refer there for further details. + /// + [Serializable] + public class ExchangeItem : IExchangeItem + { + private IQuantity _Quantity; + private IElementSet _ElementSet; + + /// + /// Getter and setter for the quantity + /// + public IQuantity Quantity + { + get {return _Quantity;} + set {_Quantity = value;} + } + + /// + /// Getter and setter for the element set. + /// See IExchangeItem.ElementSet. + /// + public IElementSet ElementSet + { + get {return _ElementSet;} + set {_ElementSet = value;} + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + ExchangeItem item = (ExchangeItem) obj; + return (item.Quantity.Equals(Quantity)&& + item.ElementSet.Equals(ElementSet)); + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_Quantity != null) hashCode += _Quantity.GetHashCode(); + if (_ElementSet != null) hashCode += _ElementSet.GetHashCode(); + return hashCode; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/InputExchangeItem.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/InputExchangeItem.cs new file mode 100644 index 00000000..7b577693 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/InputExchangeItem.cs @@ -0,0 +1,43 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The input exchange item is an exchange item used for inputs + /// in the receiving component. + /// This is a trivial implementation of OpenMI.Standard.IInputExchangeItem, refer there for further details. + /// + [Serializable] + public class InputExchangeItem : ExchangeItem, IInputExchangeItem + { + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Link.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Link.cs new file mode 100644 index 00000000..739ac8ec --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Link.cs @@ -0,0 +1,332 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The link is used to describe the data transfer between + /// linkable components. + /// This is a trivial implementation of OpenMI.Standard.ILink, refer there for further details. + /// + [Serializable] + public class Link : ILink + { + private ArrayList _dataOperations = new ArrayList(); + private string _description = ""; + private string _id = ""; + private ILinkableComponent _sourceComponent; + private IElementSet _sourceElementSet; + private IQuantity _sourceQuantity; + private ILinkableComponent _targetComponent; + private IElementSet _targetElementSet; + private IQuantity _targetQuantity; + + /// + /// Constructor + /// + public Link() + { + } + + /// + /// Copy constructor + /// + /// The link to copy + public Link(ILink source) + { + SourceComponent = source.SourceComponent; + SourceElementSet = source.SourceElementSet; + SourceQuantity = source.SourceQuantity; + TargetComponent = source.TargetComponent; + TargetElementSet = source.TargetElementSet; + TargetQuantity = source.TargetQuantity; + Description = source.Description; + ID = source.ID; + for (int i=0;i + /// Constructor + /// + /// The source component + /// The source element set + /// The source quantity + /// The target component + /// The target element set + /// The target quantity + /// The description + /// The ID + /// Data operations to be carried out by the provider + public Link(ILinkableComponent SourceComponent, + IElementSet SourceElementSet, + IQuantity SourceQuantity, + ILinkableComponent TargetComponent, + IElementSet TargetElementSet, + IQuantity TargetQuantity, + string Description, + string ID, + ArrayList DataOperations) + { + _sourceComponent = SourceComponent; + _sourceElementSet = SourceElementSet; + _sourceQuantity = SourceQuantity; + _targetComponent = TargetComponent; + _targetElementSet = TargetElementSet; + _targetQuantity = TargetQuantity; + _description = Description; + _id = ID; + _dataOperations = DataOperations; + } + + /// + /// Constructor + /// + /// The source component + /// The source element set + /// The source quantity + /// The target component + /// The target element set + /// The target quantity + /// The ID + public Link(ILinkableComponent SourceComponent, + IElementSet SourceElementSet, + IQuantity SourceQuantity, + ILinkableComponent TargetComponent, + IElementSet TargetElementSet, + IQuantity TargetQuantity, + string ID) + { + _sourceComponent = SourceComponent; + _sourceElementSet = SourceElementSet; + _sourceQuantity = SourceQuantity; + _targetComponent = TargetComponent; + _targetElementSet = TargetElementSet; + _targetQuantity = TargetQuantity; + _description = Description; + _id = ID; + } + + /// + /// Getter and setter for the link ID + /// + public string ID + { + get + { + return _id; + } + set + { + _id = value; + } + } + + /// + /// Getter and setter for the link description + /// + public string Description + { + get + { + return _description; + } + set + { + _description = value; + } + } + + /// + /// Getter and setter for the source component + /// + public ILinkableComponent SourceComponent + { + get + { + return _sourceComponent; + } + set + { + _sourceComponent = value; + } + } + + /// + /// Getter and setter for the source quantity + /// + public IQuantity SourceQuantity + { + get + { + return _sourceQuantity; + } + set + { + _sourceQuantity = value; + } + } + + /// + /// Getter and setter for the source element set + /// + public IElementSet SourceElementSet + { + get + { + return _sourceElementSet; + } + set + { + _sourceElementSet = value; + } + } + + /// + /// Getter and setter for the target component + /// + public ILinkableComponent TargetComponent + { + get + { + return _targetComponent; + } + set + { + _targetComponent = value; + } + } + + /// + /// Getter and setter for the target quantity + /// + public IQuantity TargetQuantity + { + get + { + return _targetQuantity; + } + set + { + _targetQuantity = value; + } + } + + /// + /// Getter and setter for the target element set + /// + public IElementSet TargetElementSet + { + get + { + return _targetElementSet; + } + set + { + _targetElementSet = value; + } + } + + /// + /// The number of data operations + /// + public int DataOperationsCount + { + get + { + return _dataOperations.Count; + } + } + + /// + /// Adds a data operation + /// + /// The data operation + public void AddDataOperation (IDataOperation dataOperation) + { + if ( ! (dataOperation is ICloneable ) ) + { + // Data Operation can not be cloned, issue warning + Event warning = new Event(EventType.Warning); + warning.Description = "DataOperation " + dataOperation.ID + " can not be cloned yet!"; + warning.Sender = _sourceComponent; + _sourceComponent.SendEvent(warning); + + _dataOperations.Add(dataOperation); + } + else + { + _dataOperations.Add(((ICloneable)dataOperation).Clone()); + } + } + + + /// + /// Gets a data operation + /// + /// The index of the data operation + /// The data operation + public IDataOperation GetDataOperation(int DataOperationIndex) + { + return (IDataOperation) _dataOperations[DataOperationIndex]; + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Link link = (Link) obj; + return (ID.Equals(link.ID)); + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_sourceQuantity != null) hashCode += _sourceQuantity.GetHashCode(); + if (_sourceElementSet != null) hashCode += _sourceElementSet.GetHashCode(); + if (_targetQuantity != null) hashCode += _targetQuantity.GetHashCode(); + if (_targetElementSet != null) hashCode += _targetElementSet.GetHashCode(); + return hashCode; + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/LinkableComponent.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/LinkableComponent.cs new file mode 100644 index 00000000..5108cf14 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/LinkableComponent.cs @@ -0,0 +1,406 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The LinkableComponent provides the OpenMI interface to the wrapped engine. + /// This is a trivial implementation of OpenMI.Standard.ILinkableComponent, refer there for further details. + /// + public abstract class LinkableComponent:MarshalByRefObject,ILinkableComponent + { + private ArrayList _acceptingLinks = new ArrayList(); + private ArrayList _providingLinks = new ArrayList(); + private ArrayList _inputExchangeItems = new ArrayList(); + private ArrayList _outputExchangeItems = new ArrayList(); + private Hashtable _eventTable = new Hashtable(); + + /// + /// Called before computation + /// + public abstract void Prepare(); + + /// + /// Returns computed values + /// + /// The timestamp/timespan for which to return values + /// The linkID describing on which link values to return + /// The computed values + public abstract IValueSet GetValues(ITime time, string LinkID); + + /// + /// Adds a link + /// + /// The link + public virtual void AddLink (ILink NewLink) + { + if (NewLink.SourceComponent==this) + { + for (int iNewDO = 0; iNewDO < NewLink.DataOperationsCount; iNewDO++) + { + IDataOperation newDataOperation = NewLink.GetDataOperation(iNewDO); + foreach (ILink link in _providingLinks) + { + for (int iExistingDO = 0; iExistingDO < link.DataOperationsCount; iExistingDO++) + { + IDataOperation existingDataOperation = link.GetDataOperation(iExistingDO); + if (newDataOperation == existingDataOperation) + { + Event warning = new Event(EventType.Warning); + warning.Description = "DataOperation " + newDataOperation.ID + " has already been used. " + + "It's argument values will overrule the values set previously for this operation."; + warning.Sender = this; + SendEvent(warning); + } + } + } + } + _providingLinks.Add(NewLink); + } + if (NewLink.TargetComponent==this) + { + _acceptingLinks.Add(NewLink); + } + } + + /// + /// Removes a link + /// + /// The link ID + public virtual void RemoveLink(string LinkID) + { + ILink Link = GetLink (LinkID); + if (Link != null) { + _acceptingLinks.Remove (Link); + _providingLinks.Remove (Link); + } + } + + /// + /// Returns the accepting links + /// + /// The accepting links + public virtual ILink[] GetAcceptingLinks() + { + return (ILink[] ) _acceptingLinks.ToArray(typeof(ILink)); + } + + /// + /// Returns the providing links + /// + /// The providing links + public virtual ILink[] GetProvidingLinks() + { + return (ILink[] ) _providingLinks.ToArray(typeof(ILink)); + } + + /// + /// Returns the number of links + /// + public virtual int LinkCount + { + get + { + return _acceptingLinks.Count+_providingLinks.Count; + } + } + + /// + /// Gets a link + /// + /// The link ID + /// The link + public virtual ILink GetLink(string LinkID) + { + for (int i = 0; i < _acceptingLinks.Count; i++) + { + if (((ILink)_acceptingLinks[i]).ID.Equals(LinkID)) + { + return (ILink) _acceptingLinks[i]; + } + } + + for (int i = 0; i < _providingLinks.Count; i++) + { + if (((ILink)_providingLinks[i]).ID.Equals(LinkID)) + { + return (ILink) _providingLinks[i]; + } + } + + return null; + } + + /// + /// Subscribes to an event + /// + /// The listener + /// The event type + public virtual void Subscribe(IListener Listener, EventType EventType) + { + if (!_eventTable.ContainsKey(EventType)) + { + _eventTable[EventType] = new ArrayList(); + } + ((ArrayList)_eventTable[EventType]).Add(Listener); + } + + /// + /// Unsubscribes to an event + /// + /// The listener + /// The event type + public virtual void UnSubscribe(IListener Listener, EventType EventType) + { + if (_eventTable.ContainsKey(EventType)) + { + ArrayList list = (ArrayList) _eventTable[EventType]; + if (list.Contains(Listener)) + list.Remove(Listener); + } + } + + /// + /// Sends an event + /// + /// The event + public virtual void SendEvent(IEvent theEvent) + { + EventType EventType = theEvent.Type; + + if (_eventTable.ContainsKey(EventType)) + { + ArrayList list = (ArrayList) _eventTable[EventType]; + foreach (IListener listener in list) + { + listener.OnEvent(theEvent); + } + } + } + + /// + /// Returns a published event type + /// + /// The event index + /// The published event + public abstract EventType GetPublishedEventType(int providedEventTypeIndex); + + /// + /// Returns the number of published events + /// + /// The number of published events + public abstract int GetPublishedEventTypeCount(); + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object source) + { + if (source is LinkableComponent) + { + LinkableComponent component = (LinkableComponent) source; + return (NullEquals(ComponentID, component.ComponentID) && + NullEquals(ModelID, component.ModelID)); + } + + return base.Equals (source); + } + + private static bool NullEquals (object obj1, object obj2) + { + if ((obj1 != null) && (obj2 != null)) + { + return obj1.Equals (obj2); + } + else + { + return (obj1 == obj2); + } + } + + /// + /// Dispose function + /// + public virtual void Dispose() + { + } + + /// + /// Returns an input exchange item + /// + /// The input exchange item index + /// The input exchange item + public virtual IInputExchangeItem GetInputExchangeItem(int inputExchangeItemIndex) + { + return (IInputExchangeItem) _inputExchangeItems[inputExchangeItemIndex]; + } + + /// + /// Returns the component description + /// + public abstract string ComponentDescription {get;} + + /// + /// Returns if the component is valid (contains valid data) + /// + /// True if the component is valid + public abstract string Validate(); + + /// + /// Returns the number of input exchange items + /// + public virtual int InputExchangeItemCount + { + get + { + return _inputExchangeItems.Count; + } + } + + /// + /// Returns the time horizon, which is the simulation start and stop + /// time for this component + /// + public abstract ITimeSpan TimeHorizon {get;} + + /// + /// Returns the earliest time for which input is needed + /// + public abstract ITimeStamp EarliestInputTime {get;} + + /// + /// Returns the component ID + /// + public abstract string ComponentID {get;} + + + /// + /// Returns an output exchange item + /// + /// The output exchange item index + /// The output exchange item + public virtual IOutputExchangeItem GetOutputExchangeItem(int outputExchangeItemIndex) + { + return (IOutputExchangeItem) _outputExchangeItems[outputExchangeItemIndex]; + } + + /// + /// Adds an input exchange item + /// + /// The input exchange item + public virtual void AddInputExchangeItem(IInputExchangeItem exchangeItem) + { + _inputExchangeItems.Add(exchangeItem); + } + + /// + /// Adds an output exchange item + /// + /// The output exchange item + public virtual void AddOutputExchangeItem(IOutputExchangeItem exchangeItem) + { + _outputExchangeItems.Add(exchangeItem); + } + + /// + /// Initializes the component with the given arguments + /// + /// The arguments + public abstract void Initialize(IArgument[] properties); + + /// + /// The model description + /// + public abstract string ModelDescription {get;} + + /// + /// The model ID + /// + public abstract string ModelID {get;} + + /// + /// The number of output exchange items + /// + public virtual int OutputExchangeItemCount + { + get {return _outputExchangeItems.Count;} + } + + /// + /// Finish clears up allocated memory and closes files + /// After this method is called no other methods should + /// be called on the LinkableComponent + /// + public abstract void Finish(); + + /// + /// Returns a string describing this linkable component + /// + /// The description + public override string ToString() + { + return ComponentID + " - " + ModelID; + } + + /// + /// Returns true if the linkable component has listeners + /// + /// True is linkable component has listeners + public virtual bool HasListeners() + { + foreach (EventType eventType in _eventTable.Keys) + { + ArrayList list = (ArrayList) _eventTable[eventType]; + if (list.Count>0) + return true; + } + return false; + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance + public override int GetHashCode() + { + return _acceptingLinks.GetHashCode() + + _eventTable.GetHashCode() + + _inputExchangeItems.GetHashCode()+ + _outputExchangeItems.GetHashCode() + + _providingLinks.GetHashCode(); + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Oatc.OpenMI.Sdk.Backbone.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Oatc.OpenMI.Sdk.Backbone.csproj new file mode 100644 index 00000000..cfed305e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Oatc.OpenMI.Sdk.Backbone.csproj @@ -0,0 +1,200 @@ + + + + Local + 8.0.50727 + 2.0 + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Backbone + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Backbone + OnBuildSuccess + + + + + + + false + 3.5 + v4.0 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + ..\..\..\..\..\..\..\Binaries\Plugins\HydroModeler\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ..\..\ + false + 285212672 + false + + + TRACE + bin/Release/Oatc.OpenMI.Sdk.Backbone.XML + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + + ..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + False + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/OutputExchangeItem.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/OutputExchangeItem.cs new file mode 100644 index 00000000..129ca71e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/OutputExchangeItem.cs @@ -0,0 +1,78 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The output exchange item is an exchange item used for outputs + /// from the transmitting component. + /// This is a trivial implementation of OpenMI.Standard.IOutputExchangeItem, refer there for further details. + /// + [Serializable] + public class OutputExchangeItem : ExchangeItem, IOutputExchangeItem + { + private ArrayList _dataOperations = new ArrayList(); + + /// + /// Getter for the number of data operations. See . + /// + public int DataOperationCount + { + get {return _dataOperations.Count;} + } + + /// + /// Get a data operation. See + /// + public IDataOperation GetDataOperation(int dataOperationIndex) + { + return (IDataOperation) _dataOperations[dataOperationIndex]; + } + + /// + /// The list of data operations + /// + public ArrayList DataOperations + { + get {return _dataOperations;} + } + + /// + /// Adds a data operation. + /// + /// The data operation to be added + public void AddDataOperation(IDataOperation dataOperation) + { + _dataOperations.Add(dataOperation); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Quantity.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Quantity.cs new file mode 100644 index 00000000..4f1b24b9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Quantity.cs @@ -0,0 +1,229 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; +using ValueType=OpenMI.Standard.ValueType; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// The Quantity class contains a unit, description, id, and dimension. + /// This is a trivial implementation of OpenMI.Standard.IQuantity, refer there for further details. + /// + [Serializable] + public class Quantity : IQuantity + { + private IUnit _unit = new Unit(); + string _description = ""; + private string _id = ""; + private IDimension _dimension=new Dimension(); + private ValueType _valueType=ValueType.Scalar; + + /// + /// Constructor + /// + public Quantity() + { + } + + /// + /// Constructor + /// + /// ID + public Quantity(String id) + { + _id = id; + } + + /// + /// Copy constructor + /// + /// The quantity to copy + public Quantity(IQuantity source) + { + Description = source.Description; + Dimension = source.Dimension; + ID = source.ID; + Unit = source.Unit; + ValueType = source.ValueType; + } + + /// + /// Constructor + /// + /// Unit + /// Description + /// ID + public Quantity(IUnit unit, string Description, string ID) + { _unit = unit; + _description = Description; + _id = ID; + } + + /// + /// Constructor + /// + /// Unit + /// Description + /// ID + /// Value type (vector or scalar) + public Quantity(IUnit unit, string Description, string ID,ValueType valueType) + { + _unit = unit; + _description = Description; + _id = ID; + _valueType = valueType; + } + + /// + /// Constructor + /// + /// Unit + /// Description + /// ID + /// Value type (vector or scalar) + /// Dimension + public Quantity(IUnit unit, string Description, string ID,ValueType valueType, + IDimension Dimension) + { + _unit = unit; + _description = Description; + _id = ID; + _valueType = valueType; + _dimension = Dimension; + } + + /// + /// Getter and setter for ID + /// + public string ID + { + get {return _id;} + set + { + _id = value; + } + } + + /// + /// Getter and setter for Dimension + /// + public IDimension Dimension + { + get {return _dimension;} + set + { + _dimension = value; + } + } + + /// + /// Getter and setter for description + /// + public string Description + { + get {return _description;} + set + { + _description = value; + } + } + + /// + /// Getter and setter for unit + /// + public IUnit Unit + { + get {return _unit;} + set + { + _unit = value; + } + } + + /// + /// Returns the ID + /// + /// ID + public override String ToString() + { + return ID; + } + + /// + /// Getter and setter for value type (scalar/vector) + /// + public ValueType ValueType + { + get { return _valueType;} + set + { + _valueType = value; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Quantity q = (Quantity) obj; + if (!ID.Equals(q.ID)) + return false; + if (!Unit.Equals(q.Unit)) + return false; + if (!ValueType.Equals(q.ValueType)) + return false; + if (!Description.Equals(q.Description)) + return false; + if (!Dimension.Equals(q.Dimension)) + return false; + return true; + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_id != null) hashCode += _id.GetHashCode(); + if (_unit != null) hashCode += _unit.GetHashCode(); + if (_dimension != null) hashCode += _dimension.GetHashCode(); + return hashCode; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/ScalarSet.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/ScalarSet.cs new file mode 100644 index 00000000..6b107ebb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/ScalarSet.cs @@ -0,0 +1,218 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// The ScalarSet class contains a list of scalar values. + /// This is a trivial implementation of OpenMI.Standard.IScalarSet, refer there for further details. + /// + [Serializable] + public class ScalarSet : IScalarSet + { + double[] _values; + double _missingValueDefinition; + private double _compareDoublesEpsilon; + + /// + /// Constructor + /// + public ScalarSet() + { + _values = new double[0]; + _missingValueDefinition = -999.0; + _compareDoublesEpsilon = 0.000001; + } + + /// + /// Constructor + /// + /// The list of values + public ScalarSet(double[] values) + { + _values = values; + _missingValueDefinition = -999.0; // TODO call empty constructor + _compareDoublesEpsilon = 0.000001; + } + + /// + /// Returns if a certain element is valid + /// + /// Element index + /// True if element is valid + public virtual bool IsValid(int elementIndex) + { + return !isEqual(_values[elementIndex], _missingValueDefinition); + } + + /// + /// Copy constructor + /// + /// The scalar set to copy + public ScalarSet(IScalarSet source) + { + if ( source == null ) + { + throw new Exception("ScalarSet Constructor from \"Source\": source == null"); + } + _values = new double[source.Count]; + for (int i = 0; i < source.Count; i++) + { + _values[i] = source.GetScalar(i); + } + } + + /// + /// Gets a value from the list of values + /// + /// The element index + /// The scalar value + public double GetScalar(int ElementIndex) + { + if ( _values == null ) + { + throw new Exception("Values null"); + } + else + { + if ( _values.Length < ElementIndex+1 || ElementIndex < 0 ) + { + throw new Exception("Invalid ElementIndex"); + } + } + return _values[ElementIndex]; + } + + /// + /// Gives direct access to the data + /// + public double[] data + { + get + { + return _values; + } + set + { + _values = value; + } + } + + /// + /// Returns the number of values + /// + public int Count + { + get + { + return _values.Length; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj is ScalarSet) + { + ScalarSet sourceSet = (ScalarSet)obj; + if (sourceSet.Count != Count) + return false; + for (int i = 0; i < Count; i++) + { + if (sourceSet.GetScalar(i) != GetScalar(i)) + return false; + } + return true; + } + + return base.Equals(obj); + } + + + /// + /// Getter and Setter for the missing value definition. + /// + public double MissingValueDefinition + { + get { return _missingValueDefinition; } + set { _missingValueDefinition = value; } + } + + + /// + /// The epsilon (i.e. the small double value) that should be used when + /// checking + /// + /// + public double CompareDoublesEpsilon + { + get { return _compareDoublesEpsilon; } + set { _compareDoublesEpsilon = value; } + } + + /// + /// Will compare two doubles, using _doubleEpsilon. + /// + /// First double + /// Second double + /// True if double1 and double2 are equal. + protected bool isEqual(double double1, double double2) + { + bool isEqual = false; + + if (double1 >= double2 - _compareDoublesEpsilon && + double1 <= double2 + _compareDoublesEpsilon) + { + isEqual = true; + } + + return isEqual; + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_values != null) hashCode += _values.GetHashCode(); + return hashCode; + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/SpatialReference.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/SpatialReference.cs new file mode 100644 index 00000000..97e28bb0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/SpatialReference.cs @@ -0,0 +1,101 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// This class defines a spatial references. + /// This is a trivial implementation of OpenMI.Standard.ISpatialReference, refer there for further details. + /// + [Serializable] + public class SpatialReference : ISpatialReference + { + private string _id; + + /// + /// Constructor + /// + public SpatialReference() + { + } + + /// + /// Constructor + /// + /// Spatial reference ID + public SpatialReference(string ID) + { + _id = ID; + } + + /// + /// Getter and setter for ID + /// + public string ID + { + get + { + return _id; + } + set + { + _id = value; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + SpatialReference s = (SpatialReference)obj; + return (ID == s.ID); + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_id != null) hashCode += _id.GetHashCode(); + return hashCode; + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/TimeSpan.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/TimeSpan.cs new file mode 100644 index 00000000..9e612882 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/TimeSpan.cs @@ -0,0 +1,122 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// The TimeSpan class defines a time span given a + /// start and end time. + /// This is a trivial implementation of OpenMI.Standard.ITimeSpan, refer there for further details. + /// + [Serializable] + public class TimeSpan : ITimeSpan + { + private ITimeStamp _start; + private ITimeStamp _end; + + /// + /// Constructor + /// + /// Start time + /// End time + public TimeSpan(ITimeStamp Start, ITimeStamp End) + { + _start = Start; + _end = End; + } + + /// + /// Copy constructor + /// + /// The time span to copy + public TimeSpan(ITimeSpan source) + { + Start = new TimeStamp(source.Start); + End = new TimeStamp(source.End); + } + + /// + /// Getter and setter for start time + /// + public ITimeStamp Start + { + get { return _start;} + set + { + _start = value; + } + } + + /// + /// Getter and setter for end time + /// + public ITimeStamp End + { + get { return _end;} + set + { + _end = value; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + TimeSpan s = (TimeSpan) obj; + if (!Start.Equals(s.Start)) + return false; + if (!End.Equals(s.End)) + return false; + return true; + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_start != null) hashCode += _start.GetHashCode(); + if (_end != null) hashCode += _end.GetHashCode(); + return hashCode; + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/TimeStamp.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/TimeStamp.cs new file mode 100644 index 00000000..6b2b5e58 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/TimeStamp.cs @@ -0,0 +1,130 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// The TimeStamp class defines a time instant. + /// This is a trivial implementation of OpenMI.Standard.TimeStamp, refer there for further details. + /// + [Serializable] + public class TimeStamp : ITimeStamp, IComparable + { + private double _time = 0; + + /// + /// Constructor + /// + public TimeStamp() + { + } + + /// + /// Copy constructor + /// + /// The time stamp to copy + public TimeStamp(ITimeStamp source) + { + ModifiedJulianDay = source.ModifiedJulianDay; + } + + /// + /// Constructor + /// + /// The modified julian day for the time stamp + public TimeStamp(double ModifiedJulianDay) + { + _time = ModifiedJulianDay; + } + + /// + /// Getter and setter for the modified julian day + /// + public double ModifiedJulianDay + { + get { return _time;} + set { _time = value;} + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + TimeStamp t = (TimeStamp) obj; + if (!ModifiedJulianDay.Equals(t.ModifiedJulianDay)) + return false; + return true; + } + + /// + /// Returns the hash code + /// + /// The hash code + public override int GetHashCode() + { + return _time.GetHashCode(); + } + + /// + /// Compares two timestamps + /// + /// The timestamp to compare with + /// The result of the comparison + public int CompareTo(object obj) + { + if (obj is TimeStamp) + { + TimeStamp ts = (TimeStamp) obj; + return _time.CompareTo (ts._time); +// return ts._time.CompareTo(_time); + } + else + return 0; + } + + /// + /// Converts the time stamp to a string + /// + /// String converted time stamp + public override String ToString() + { + return _time.ToString(); + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Unit.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Unit.cs new file mode 100644 index 00000000..13ad5f20 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Unit.cs @@ -0,0 +1,177 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// The Unit class defines a unit for a quantity. + /// This is a trivial implementation of OpenMI.Standard.IUnit, refer there for further details. + /// + [Serializable] + public class Unit : IUnit + { + private string _description=""; + private string _id=""; + private double _conversionFactor = 1; + private double _conversionOffset = 0; + + /// + /// Constructor + /// + public Unit() + { + } + + /// + /// Copy constructor + /// + /// The unit to copy + public Unit(IUnit source) + { + Description = source.Description; + ID = source.ID; + ConversionFactorToSI = source.ConversionFactorToSI; + OffSetToSI = source.OffSetToSI; + } + + /// + /// Constructor + /// + /// ID + /// Conversion factor to SI + /// Conversion offset to SI + public Unit(string ID, double conversionFactor, double conversionOffset) + { + _id = ID; + _conversionFactor = conversionFactor; + _conversionOffset = conversionOffset; + _description = ""; + } + + /// + /// Constructor + /// + /// ID + /// Conversion factor to SI + /// Conversion offset to SI + /// Description + public Unit(string ID, double conversionFactor, double conversionOffset,string description) + { + _id = ID; + _conversionFactor = conversionFactor; + _conversionOffset = conversionOffset; + _description = description; + } + + /// + /// Getter and setter for description + /// + public string Description + { + get { return _description;} + set + { + _description = value; + } + } + + /// + /// Getter and setter for conversion factor to SI + /// + public double ConversionFactorToSI + { + get {return _conversionFactor;} + set + { + _conversionFactor = value; + } + } + + /// + /// Getter and setter for offset to SI + /// + public double OffSetToSI + { + get {return _conversionOffset;} + set + { + _conversionOffset = value; + } + } + + /// + /// Getter and setter for ID + /// + public string ID + { + get {return _id;} + set + { + _id = value; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Unit u = (Unit) obj; + if (!ID.Equals(u.ID)) + return false; + if (!Description.Equals(u.Description)) + return false; + if (!ConversionFactorToSI.Equals(u.ConversionFactorToSI)) + return false; + if (!OffSetToSI.Equals(u.OffSetToSI)) + return false; + return true; + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_id != null) hashCode += _id.GetHashCode(); + return hashCode; + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/ArgumentTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/ArgumentTest.cs new file mode 100644 index 00000000..1d0dd572 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/ArgumentTest.cs @@ -0,0 +1,106 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class ArgumentTest + { + public ArgumentTest() + { + } + + [Test] + public void Constructor() + { + Argument param = new Argument("key","value",true,"argument1"); + Assert.AreEqual("key",param.Key); + Assert.AreEqual("value",param.Value); + + Argument param2 = new Argument(param); + Assert.AreEqual(param,param2); + } + + [Test] + public void Key() + { + Argument param = new Argument(); + param.Key = "OperationKey"; + Assert.AreEqual("OperationKey",param.Key); + } + + [Test] + public void Value() + { + Argument param = new Argument(); + param.Value = "OperationValue"; + Assert.AreEqual("OperationValue",param.Value); + } + + [Test] + public void ReadOnly() + { + Argument param = new Argument(); + param.ReadOnly = true; + Assert.AreEqual(true,param.ReadOnly); + param.ReadOnly = false; + Assert.AreEqual(false,param.ReadOnly); + } + + [Test] + public void Description() + { + Argument param = new Argument(); + param.Description = "Description"; + Assert.AreEqual("Description",param.Description); + } + + [Test] + public void Equals() + { + Argument param1 = new Argument("key","value",true,"argument1"); + Argument param2 = new Argument("key","value",true,"argument2"); + + Assert.IsTrue(param1.Equals(param2)); + param1.Key = "key1"; + Assert.IsFalse(param1.Equals(param2)); + param1.Key = "key"; + param1.Value ="value1"; + Assert.IsFalse(param1.Equals(param2)); + + Assert.IsFalse(param1.Equals(null)); + Assert.IsFalse(param1.Equals("string")); + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/AssemblyInfo.cs new file mode 100644 index 00000000..b5c8f3f5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Backbone UnitTest Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4 Alpha 3")] +[assembly: AssemblyCopyright("GNU Library or Lesser General Public License (LGPL), MIT License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/DataOperationTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/DataOperationTest.cs new file mode 100644 index 00000000..319eebd6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/DataOperationTest.cs @@ -0,0 +1,129 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class DataOperationTest + { + public DataOperationTest() + { + } + + [Test] + public void Constructor() + { + DataOperation operation = new DataOperation("DataOperationID"); + Argument param1 = new Argument("key1","value1",true,"argument1"); + Argument param2 = new Argument("key2","value2",true,"argument2"); + Argument param3 = new Argument("key3","value3",true,"argument3"); + operation.AddArgument(param1); + operation.AddArgument(param2); + operation.AddArgument(param3); + Assert.AreEqual("DataOperationID",operation.ID); + + DataOperation operation2 = new DataOperation(operation); + + Assert.AreEqual(operation,operation2); + + } + + [Test] + public void ID() + { DataOperation operation = new DataOperation(); + operation.ID = "OperationID"; + Assert.AreEqual("OperationID",operation.ID); + } + + [Test] + public void Arguments() + { + Argument param1 = new Argument("key1","value1",true,"argument1"); + Argument param2 = new Argument("key2","value2",true,"argument2"); + Argument param3 = new Argument("key3","value3",true,"argument3"); + + DataOperation operation = new DataOperation(); + operation.AddArgument(param1); + operation.AddArgument(param2); + operation.AddArgument(param3); + + Assert.AreEqual(3,operation.ArgumentCount); + Assert.AreEqual(param1,operation.GetArgument(0)); + Assert.AreEqual(param2,operation.GetArgument(1)); + Assert.AreEqual(param3,operation.GetArgument(2)); + } + + [Test] + public void Equals() + { + Argument param1 = new Argument("key1","value1",true,"argument1"); + Argument param2 = new Argument("key2","value2",true,"argument2"); + Argument param3 = new Argument("key3","value3",true,"argument3"); + + DataOperation operation1 = new DataOperation("ID"); + + operation1.AddArgument(param1); + operation1.AddArgument(param2); + operation1.AddArgument(param3); + + param1 = new Argument("key1","value1",true,"argument1"); + param2 = new Argument("key2","value2",true,"argument2"); + param3 = new Argument("key3","value3",true,"argument3"); + + DataOperation operation2 = new DataOperation("ID"); + operation2.AddArgument(param1); + operation2.AddArgument(param2); + + Assert.IsFalse(operation1.Equals(operation2)); + + operation2.AddArgument(param3); + + Assert.IsTrue(operation1.Equals(operation2)); + + param1.Key="key"; + + Assert.IsFalse(operation1.Equals(operation2)); + + param1.Key="key1"; + + operation1.ID = "ID1"; + + Assert.IsFalse(operation1.Equals(operation2)); + + operation1.ID = "ID"; + + Assert.IsFalse(operation1.Equals(null)); + Assert.IsFalse(operation1.Equals("string")); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/DimensionTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/DimensionTest.cs new file mode 100644 index 00000000..12cc345a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/DimensionTest.cs @@ -0,0 +1,71 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class DimensionTest + { + Dimension dimension; + + [SetUp] + public void Init() + { + dimension = new Dimension(); + dimension.SetPower(DimensionBase.Length,3); + dimension.SetPower(DimensionBase.Time,-1); + } + + [Test] + public void Power () + { + Assert.AreEqual(3,dimension.GetPower(DimensionBase.Length)); + Assert.AreEqual(-1,dimension.GetPower(DimensionBase.Time)); + } + + [Test] + public void Equals () + { + Dimension dimension = new Dimension(); + dimension.SetPower(DimensionBase.Length,3); + dimension.SetPower(DimensionBase.Time,-1); + + Assert.IsTrue(dimension.Equals(this.dimension)); + dimension.SetPower(DimensionBase.Length,2); + Assert.IsFalse(dimension.Equals(this.dimension)); + + Assert.IsFalse(dimension.Equals("string")); + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/ElementSetTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/ElementSetTest.cs new file mode 100644 index 00000000..4d75ca48 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/ElementSetTest.cs @@ -0,0 +1,347 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class ElementSetTest + { + ElementSet elementSet; + Element element1,element2; + + [SetUp] + public void Init() + { + elementSet = new ElementSet("ElementSet","ElementSetID", + ElementType.XYPolygon,new SpatialReference("ReferenceID")); + element1 = new Element("element1"); + element1.AddVertex(new Vertex(1.0,2.0,3.0)); + element1.AddVertex(new Vertex(2.0,3.0,4.0)); + element1.AddVertex(new Vertex(4.0,5.0,6.0)); + int[] index = {1,2,3,4,5}; + element1.AddFace(index); + elementSet.AddElement(element1); + element2 = new Element("element2"); + element2.AddVertex(new Vertex(6.0,7.0,8.0)); + element2.AddVertex(new Vertex(9.0,10.0,11.0)); + element2.AddVertex(new Vertex(12.0,13.0,14.0)); + int[] index2 = {6,7,8,9}; + element2.AddFace(index2); + elementSet.AddElement(element2); + } + + + [Test] + public void Constructor() + { + Assert.AreEqual("ElementSet",elementSet.Description); + Assert.AreEqual("ElementSetID",elementSet.ID); + Assert.AreEqual(ElementType.XYPolygon,elementSet.ElementType); + Assert.AreEqual(new SpatialReference("ReferenceID"),elementSet.SpatialReference); + + ElementSet elementSet2 = new ElementSet(elementSet); + Assert.AreEqual(elementSet,elementSet2); + } + + [Test] + public void Description() + { + elementSet.Description = "Description"; + Assert.AreEqual("Description",elementSet.Description); + } + + [Test] + public void ID() + { + elementSet.ID = "ID1"; + Assert.AreEqual("ID1",elementSet.ID); + } + + [Test] + public void Elementtype() + { + elementSet.ElementType = ElementType.XYLine; + Assert.AreEqual(ElementType.XYLine,elementSet.ElementType); + } + + [Test] + public void SpatialReference() + { + elementSet.SpatialReference = new SpatialReference("ID"); + Assert.AreEqual(new SpatialReference("ID"),elementSet.SpatialReference); + } + + private bool CompareIntArrays(int[] ar1,int[] ar2) + { + if (ar1.Length!=ar2.Length) + return false; + for (int i=0;i + + + Local + 8.0.50727 + 2.0 + {1EF5387C-0764-4E42-99B9-78356B582281} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Backbone.UnitTest + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Backbone.UnitTest + OnBuildSuccess + + + + + + + 3.5 + v4.0 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + ..\..\..\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\nunit.framework.dll + + + ..\..\..\OpenMI.Standard.dll + False + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + True + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/OutputExchangeItem.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/OutputExchangeItem.cs new file mode 100644 index 00000000..0f75ff2b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/OutputExchangeItem.cs @@ -0,0 +1,55 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class OutputExchangeItemTest + { + OutputExchangeItem exchangeItem; + [SetUp] + public void Init() + { + exchangeItem = new OutputExchangeItem(); + exchangeItem.AddDataOperation(new DataOperation("DataOperation")); + } + + [Test] + public void DataOperations() + { + Assert.AreEqual(1,exchangeItem.DataOperationCount); + Assert.AreEqual(new DataOperation("DataOperation"),exchangeItem.GetDataOperation(0)); + } + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/QuantityTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/QuantityTest.cs new file mode 100644 index 00000000..01b0ed1e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/QuantityTest.cs @@ -0,0 +1,134 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class QuantityTest + { + Quantity quantity; + [SetUp] + public void Init() + { + quantity = new Quantity(new Unit("UnitID",1.0,0.0,"Description"),"Description", + "ID",ValueType.Scalar,new Dimension()); + } + + [Test] + public void Constructor() + { + Quantity quantity2 = new Quantity(quantity); + Assert.AreEqual(quantity,quantity2); + } + + [Test] + public void ID() + { + Assert.AreEqual("ID",quantity.ID); + quantity.ID = "new"; + Assert.AreEqual("new",quantity.ID); + } + + [Test] + public void Description() + { + Assert.AreEqual("Description",quantity.Description); + quantity.Description = "new"; + Assert.AreEqual("new",quantity.Description); + } + + [Test] + public void Unit() + { + Assert.AreEqual(new Unit("UnitID",1.0,0.0,"Description"),quantity.Unit); + quantity.Unit = new Unit("UnitID2",1.0,0.0,"Description"); + Assert.AreEqual(new Unit("UnitID2",1.0,0.0,"Description"),quantity.Unit); + } + + [Test] + public void Valuetype() + { + Assert.AreEqual(ValueType.Scalar,quantity.ValueType); + quantity.ValueType = ValueType.Vector; + Assert.AreEqual(ValueType.Vector,quantity.ValueType); + } + + [Test] + public void Equals() + { + Quantity quantity2 = new Quantity(new Unit("UnitID",1.0,0.0,"Description"),"Description", + "ID",ValueType.Scalar,new Dimension()); + + Assert.IsTrue(quantity.Equals(quantity2)); + + Assert.IsFalse(quantity.Equals(null)); + Assert.IsFalse(quantity.Equals("string")); + + } + + [Test] + public void EqualsUnit() + { + Quantity quantity2 = new Quantity(new Unit("UnitID2",1.0,0.0,"Description"),"Description", + "ID",ValueType.Scalar,new Dimension()); + + Assert.IsFalse(quantity.Equals(quantity2)); + } + + [Test] + public void EqualsDescription() + { + Quantity quantity2 = new Quantity(new Unit("UnitID",1.0,0.0,"Description"),"Description2", + "ID",ValueType.Scalar,new Dimension()); + + Assert.IsFalse(quantity.Equals(quantity2)); + } + + [Test] + public void EqualsID() + { + Quantity quantity2 = new Quantity(new Unit("UnitID",1.0,0.0,"Description"),"Description", + "ID2",ValueType.Scalar,new Dimension()); + + Assert.IsFalse(quantity.Equals(quantity2)); + } + + [Test] + public void EqualsValueType() + { + Quantity quantity2 = new Quantity(new Unit("UnitID",1.0,0.0,"Description"),"Description", + "ID",ValueType.Vector,new Dimension()); + + Assert.IsFalse(quantity.Equals(quantity2)); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/ScalarSetTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/ScalarSetTest.cs new file mode 100644 index 00000000..ab78a283 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/ScalarSetTest.cs @@ -0,0 +1,86 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class ScalarSetTest + { + ScalarSet scalarSet; + + [SetUp] + public void Init() + { + double[] values = {1.0,2.0,3.0}; + scalarSet = new ScalarSet(values); + } + + [Test] + public void Constructor() + { + ScalarSet scalarSet2 = new ScalarSet(scalarSet); + Assert.AreEqual(scalarSet,scalarSet2); + } + + [Test] + public void GetScalar() + { + Assert.AreEqual(1.0,scalarSet.GetScalar(0)); + Assert.AreEqual(2.0,scalarSet.GetScalar(1)); + Assert.AreEqual(3.0,scalarSet.GetScalar(2)); + } + + [Test] + public void Data() + { + Assert.AreEqual(1.0,scalarSet.data[0]); + Assert.AreEqual(2.0,scalarSet.data[1]); + Assert.AreEqual(3.0,scalarSet.data[2]); + } + + [Test] + public void Count() + { + Assert.AreEqual(3,scalarSet.Count); + } + + [Test] + public void Equals() + { + double[] values={1.0,2.0,3.0}; + ScalarSet scalarSet2 = new ScalarSet(values); + Assert.IsTrue(scalarSet.Equals(scalarSet2)); + scalarSet2.data[1] = 2.5; + Assert.IsFalse(scalarSet.Equals(scalarSet2)); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/SpatialReferenceTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/SpatialReferenceTest.cs new file mode 100644 index 00000000..dfe8def3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/SpatialReferenceTest.cs @@ -0,0 +1,62 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class SpatialReferenceTest + { + SpatialReference spatialReference; + [SetUp] + public void Init() + { + spatialReference = new SpatialReference("ID"); + } + + [Test] + public void ID() + { + Assert.AreEqual("ID",spatialReference.ID); + spatialReference.ID = "new"; + Assert.AreEqual("new",spatialReference.ID); + } + + [Test] + public void Equals() + { + Assert.IsTrue(spatialReference.Equals(new SpatialReference("ID"))); + Assert.IsFalse(spatialReference.Equals(new SpatialReference("ID1"))); + Assert.IsFalse(spatialReference.Equals(null)); + Assert.IsFalse(spatialReference.Equals("string")); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/TestComponent.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/TestComponent.cs new file mode 100644 index 00000000..a95de93e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/TestComponent.cs @@ -0,0 +1,129 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + public class TestComponent : LinkableComponent + { + public override string ComponentDescription + { + get + { + return "ComponentDescription"; + } + } + + public override string ComponentID + { + get + { + return "ComponentID"; + } + } + public override string ModelID + { + get + { + return "ModelID"; + } + } + public override string ModelDescription + { + get + { + return "ModelDescription"; + } + } + + public override void Initialize(IArgument[] properties) + { + } + + public override ITimeStamp EarliestInputTime + { + get + { + return null; + } + } + + public override ITimeSpan TimeHorizon + { + get + { + return null; + } + } + + public override EventType GetPublishedEventType(int providedEventTypeIndex) + { + return new EventType (); + } + + public override int GetPublishedEventTypeCount() + { + return 0; + } + + public override IValueSet GetValues(ITime time, string LinkID) + { + return null; + } + + public override string Validate() + { + return ""; + } + + public override void Prepare() + { + } + + + public override void Finish() + { + } + + } + + public class TestComponent2 : TestComponent + { + public override string ComponentID + { + get + { + return "ComponentID2"; + } + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/TimeSpanTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/TimeSpanTest.cs new file mode 100644 index 00000000..f01bdcc0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/TimeSpanTest.cs @@ -0,0 +1,89 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class TimeSpanTest + { + TimeSpan timeSpan; + + [SetUp] + public void Init() + { + timeSpan = new TimeSpan(new TimeStamp(1.0),new TimeStamp(2.0)); + } + + [Test] + public void Constructor () + { + TimeSpan timeSpan2 = new TimeSpan(timeSpan); + Assert.AreEqual(timeSpan,timeSpan2); + } + + [Test] + public void Start() + { + Assert.AreEqual(new TimeStamp(1.0),timeSpan.Start); + timeSpan.Start = new TimeStamp(2.0); + Assert.AreEqual(new TimeStamp(2.0),timeSpan.Start); + } + + [Test] + public void End() + { + Assert.AreEqual(new TimeStamp(2.0),timeSpan.End); + timeSpan.End = new TimeStamp(3.0); + Assert.AreEqual(new TimeStamp(3.0),timeSpan.End); + } + + [Test] + public void Equals() + { + Assert.IsTrue(timeSpan.Equals(new TimeSpan(new TimeStamp(1.0),new TimeStamp(2.0)))); + Assert.IsFalse(timeSpan.Equals(null)); + Assert.IsFalse(timeSpan.Equals("string")); + } + + [Test] + public void EqualsStart() + { + Assert.IsFalse(timeSpan.Equals(new TimeSpan(new TimeStamp(1.1),new TimeStamp(2.0)))); + } + + [Test] + public void EqualsEnd() + { + Assert.IsFalse(timeSpan.Equals(new TimeSpan(new TimeStamp(1.0),new TimeStamp(2.1)))); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/TimeStampTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/TimeStampTest.cs new file mode 100644 index 00000000..eaf7b0e5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/TimeStampTest.cs @@ -0,0 +1,87 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class TimeStampTest + { + TimeStamp timeStamp; + [SetUp] + public void Init() + { + timeStamp = new TimeStamp(12345.3); + } + + [Test] + public void Constructor() + { + TimeStamp timeStamp2 = new TimeStamp(timeStamp); + Assert.AreEqual(timeStamp,timeStamp2); + } + [Test] + public void ModifiedJulianDay() + { + Assert.AreEqual(12345.3,timeStamp.ModifiedJulianDay); + timeStamp.ModifiedJulianDay = 54321.7; + Assert.AreEqual(54321.7,timeStamp.ModifiedJulianDay); + } + [Test] + public void Equals() + { + TimeStamp timeStamp1 = new TimeStamp(12345.3); + Assert.IsTrue(timeStamp.Equals(timeStamp1)); + timeStamp1.ModifiedJulianDay = 34.0; + Assert.IsFalse(timeStamp.Equals(timeStamp1)); + + Assert.IsFalse(timeStamp.Equals(null)); + Assert.IsFalse(timeStamp.Equals("string")); + } + + [Test] + public void CompareTo() + { + TimeStamp timeStamp1 = new TimeStamp(12345.3); + Assert.AreEqual(0.0,timeStamp.CompareTo(timeStamp1)); + timeStamp1.ModifiedJulianDay = 10000; + Assert.IsTrue(timeStamp.CompareTo(timeStamp1)>0.0); + Assert.IsTrue(timeStamp1.CompareTo(timeStamp)<0.0); + } + + [Test] + public void String() + { + Assert.AreEqual("12345.3",timeStamp.ToString()); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/UnitTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/UnitTest.cs new file mode 100644 index 00000000..67dd43cc --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/UnitTest.cs @@ -0,0 +1,105 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class UnitTest + { + Unit unit; + + [SetUp] + public void Init() + { + unit = new Unit("ID",3.4,6.7,"description"); + } + + public void Constructor() + { + Unit unit2 = new Unit(unit); + + Assert.AreEqual(unit,unit2); + } + + [Test] + public void Description () + { + Assert.AreEqual("description",unit.Description); + unit.Description = "new"; + Assert.AreEqual("new",unit.Description); + } + + [Test] + public void ID () + { + Assert.AreEqual("ID",unit.ID); + unit.ID = "new"; + Assert.AreEqual("new",unit.ID); + } + + [Test] + public void ConversionFactorToSI() + { + Assert.AreEqual(3.4,unit.ConversionFactorToSI); + unit.ConversionFactorToSI = 3.5; + Assert.AreEqual(3.5,unit.ConversionFactorToSI); + + } + + [Test] + public void OffsetToSI() + { + Assert.AreEqual(6.7,unit.OffSetToSI); + unit.OffSetToSI = 6.9; + Assert.AreEqual(6.9,unit.OffSetToSI); + } + + [Test] + public void Equals() + { + Unit unit1 = new Unit("ID",3.4,6.7,"description"); + Assert.IsTrue(unit.Equals(unit1)); + unit1 = new Unit("ID1",3.4,6.7,"description"); + Assert.IsFalse(unit.Equals(unit1)); + unit1 = new Unit("ID",3.5,6.7,"description"); + Assert.IsFalse(unit.Equals(unit1)); + unit1 = new Unit("ID",3.4,6.8,"description"); + Assert.IsFalse(unit.Equals(unit1)); + unit1 = new Unit("ID",3.4,6.7,"description1"); + Assert.IsFalse(unit.Equals(unit1)); + + Assert.IsFalse(unit.Equals(null)); + Assert.IsFalse(unit.Equals("string")); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/VectorSetTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/VectorSetTest.cs new file mode 100644 index 00000000..1e03bac9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/VectorSetTest.cs @@ -0,0 +1,101 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class VectorSetTest + { + VectorSet vectorSet; + [SetUp] + public void Init() + { + Vector vector1 = new Vector(1.0,2.0,3.0); + Vector vector2 = new Vector(4.0,5.0,6.0); + Vector vector3 = new Vector(7.0,8.0,9.0); + + Vector[] data = {vector1,vector2,vector3}; + + vectorSet = new VectorSet(data); + } + + [Test] + public void Constructor() + { + VectorSet vectorSet2 = new VectorSet(vectorSet); + Assert.AreEqual(vectorSet,vectorSet2); + } + + [Test] + public void GetVector() + { + Assert.AreEqual(new Vector(1.0,2.0,3.0),vectorSet.GetVector(0)); + Assert.AreEqual(new Vector(4.0,5.0,6.0),vectorSet.GetVector(1)); + Assert.AreEqual(new Vector(7.0,8.0,9.0),vectorSet.GetVector(2)); + } + + [Test] + public void Count() + { + Assert.AreEqual(3,vectorSet.Count); + } + + [Test] + public void Equals() + { + Vector vector1 = new Vector(1.0,2.0,3.0); + Vector vector2 = new Vector(4.0,5.0,6.0); + Vector vector3 = new Vector(7.0,8.0,9.0); + + Vector[] data = {vector1,vector2,vector3}; + + VectorSet vectorSet2 = new VectorSet(data); + + Assert.IsTrue(vectorSet.Equals(vectorSet2)); + } + + [Test] + public void EqualsVector() + { + Vector vector1 = new Vector(1.0,2.0,3.0); + Vector vector2 = new Vector(4.0,6.0,6.0); + Vector vector3 = new Vector(7.0,8.0,9.0); + + Vector[] data = {vector1,vector2,vector3}; + + VectorSet vectorSet2 = new VectorSet(data); + + Assert.IsFalse(vectorSet.Equals(vectorSet2)); + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/VectorTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/VectorTest.cs new file mode 100644 index 00000000..957ca4e7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/VectorTest.cs @@ -0,0 +1,102 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class VectorTest + { + Vector vector; + [SetUp] + public void Init() + { + vector = new Vector(1.0,2.0,3.0); + } + + [Test] + public void Constructor() + { + Vector vector2 = new Vector(vector); + + Assert.AreEqual(vector,vector2); + } + + [Test] + public void Components() + { + Assert.AreEqual(1.0,vector.XComponent); + Assert.AreEqual(2.0,vector.YComponent); + Assert.AreEqual(3.0,vector.ZComponent); + + vector.XComponent = 4.0; + vector.YComponent = 5.0; + vector.ZComponent = 6.0; + + Assert.AreEqual(4.0,vector.XComponent); + Assert.AreEqual(5.0,vector.YComponent); + Assert.AreEqual(6.0,vector.ZComponent); + } + + [Test] + public void Equals() + { + Vector vector1 = new Vector(1.0,2.0,3.0); + Assert.IsTrue(vector.Equals(vector1)); + + Assert.IsFalse(vector.Equals(null)); + Assert.IsFalse(vector.Equals("string")); + } + + [Test] + public void EqualsX() + { + Vector vector1 = new Vector(1.1,2.0,3.0); + Assert.IsFalse(vector.Equals(vector1)); + } + + [Test] + public void EqualsY() + { + Vector vector1 = new Vector(1.0,2.1,3.0); + Assert.IsFalse(vector.Equals(vector1)); + } + + [Test] + public void EqualsZ() + { + Vector vector1 = new Vector(1.0,2.0,3.1); + Assert.IsFalse(vector.Equals(vector1)); + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/VertexTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/VertexTest.cs new file mode 100644 index 00000000..c1b7f7e5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/UnitTest/VertexTest.cs @@ -0,0 +1,97 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class VertexTest + { + public VertexTest() + { + } + + [Test] + public void Constructor() + { + Vertex vertex = new Vertex(3.0,4.0,5.0); + Assert.AreEqual(3.0,vertex.x); + Assert.AreEqual(4.0,vertex.y); + Assert.AreEqual(5.0,vertex.z); + + Vertex vertex2 = new Vertex(vertex); + Assert.AreEqual(vertex,vertex2); + } + + [Test] + public void X() + { + Vertex vertex = new Vertex(); + vertex.x = 8.0; + Assert.AreEqual(8.0,vertex.x); + } + + [Test] + public void Y() + { + Vertex vertex = new Vertex(); + vertex.y = 8.0; + Assert.AreEqual(8.0,vertex.y); + } + + [Test] + public void Z() + { + Vertex vertex = new Vertex(); + vertex.z = 8.0; + Assert.AreEqual(8.0,vertex.z); + } + + [Test] + public void Equals() + { + Vertex vertex1 = new Vertex(2.0,3.0,4.0); + Vertex vertex2 = new Vertex(2.0,3.0,4.0); + Assert.IsTrue(vertex1.Equals(vertex2)); + vertex1.x = 1.0; + Assert.IsFalse(vertex1.Equals(vertex2)); + vertex1.x = 2.0; + vertex1.y = 2.0; + Assert.IsFalse(vertex1.Equals(vertex2)); + vertex1.y = 3.0; + vertex1.z = 5.0; + Assert.IsFalse(vertex1.Equals(vertex2)); + Assert.IsFalse(vertex1.Equals(null)); + Assert.IsFalse(vertex1.Equals("string")); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Vector.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Vector.cs new file mode 100644 index 00000000..8b16100a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Vector.cs @@ -0,0 +1,140 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// The Vector class contains x,y,z components. + /// This is a trivial implementation of OpenMI.Standard.IVector, refer there for further details. + /// + [Serializable] + public class Vector : IVector + { + + private double _x; + private double _y; + private double _z; + + /// + /// Constructor + /// + public Vector() + { + } + + /// + /// Copy constructor + /// + /// The vector to copy + public Vector(IVector source) + { + XComponent = source.XComponent; + YComponent = source.YComponent; + ZComponent = source.ZComponent; + } + + /// + /// Constructor + /// + /// x value + /// y value + /// z value + public Vector (double x, double y, double z) + { + _x = x; + _y = y; + _z = z; + } + + /// + /// Getter and setter for x component + /// + public double XComponent + { + get {return _x;} + set + { + _x = value; + } + } + + /// + /// Getter and setter for y component + /// + public double YComponent + { + get {return _y;} + set + { + _y = value; + } + } + + /// + /// Getter and setter for z component + /// + public double ZComponent + { + get {return _z;} + set + { + _z = value; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Vector v = (Vector) obj; + return (_x==v._x&&_y==v._y&&_z==v._z); + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + return _x.GetHashCode() + + _y.GetHashCode() + + _z.GetHashCode(); + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/VectorSet.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/VectorSet.cs new file mode 100644 index 00000000..e599eb91 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/VectorSet.cs @@ -0,0 +1,144 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// The VectorSet class contains a list of vectors. + /// This is a trivial implementation of OpenMI.Standard.IVectorSet, refer there for further details. + /// + [Serializable] + public class VectorSet : IVectorSet + { + + Vector[] _values; + + /// + /// Constructor + /// + public VectorSet() + { + _values = new Vector[0]; + } + + /// + /// Constructor + /// + /// List of vectors + public VectorSet(Vector[] Values) + { + _values = Values; + } + + /// + /// Copy constructor + /// + /// The VectorSet to copy + public VectorSet(IVectorSet source) + { + _values = new Vector[source.Count]; + for (int i=0;i + /// Returns if a element is valid + /// + /// Element index + /// True if the element is valid + public virtual bool IsValid(int elementIndex) + { + return true; + } + + /// + /// Gets a vector with a given index + /// + /// Index + /// The vector + public IVector GetVector(int index) + { + return _values[index]; + } + + /// + /// The number of elements in the list + /// + public int Count + { + get + { + return _values.Length; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj is VectorSet) + { + VectorSet sourceSet = (VectorSet)obj; + if (sourceSet.Count!=Count) + return false; + for (int i=0;i + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_values != null) hashCode += _values.GetHashCode(); + return hashCode; + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Vertex.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Vertex.cs new file mode 100644 index 00000000..b8607f57 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backbone/Vertex.cs @@ -0,0 +1,148 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The Vertex class contains a (x,y,z) coordinate + /// + [Serializable] + public class Vertex + { + private double _x,_y,_z; + + /// + /// Constructor + /// + public Vertex() + { + } + + /// + /// Constructor + /// + /// X coordinate + /// Y coordinate + /// Z coordinate + public Vertex(double x,double y,double z) + { + _x = x; + _y = y; + _z = z; + } + + /// + /// Copy constructor + /// + /// The vertex to copy + public Vertex(Vertex source) + { + x = source.x; + y = source.y; + z = source.z; + } + + /// + /// Getter and setter for X coordinate + /// + public double x + { + get + { + return _x; + } + set + { + _x = value; + } + } + + /// + /// Getter and setter for X coordinate + /// + public double y + { + get + { + return _y; + } + set + { + _y = value; + } + } + + /// + /// Getter and setter for X coordinate + /// + public double z + { + get + { + return _z; + } + set + { + _z = value; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Vertex v = (Vertex)obj; + return (x == v.x && y == v.y && z == v.z); + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + return _x.GetHashCode() + _y.GetHashCode() + _z.GetHashCode(); + } + + /// + /// String representation of the vertext + /// + /// + public override string ToString() + { + return string.Format("Vertex{0},{1},{2}", _x, _y, _z); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Argument.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Argument.cs new file mode 100644 index 00000000..62a0c114 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Argument.cs @@ -0,0 +1,168 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// Argument is a class that contains (key,value) pairs. + /// This is a trivial implementation of OpenMI.Standard.IArgument, refer there for further details. + /// + [Serializable] + public class Argument : IArgument + { + private string _key=""; + private string _value=""; + private bool _readOnly = false; + private string _description=""; + + /// + /// Empty constructor + /// + public Argument() + { + } + + /// + /// Copy constructor + /// + /// Source argument to copy + public Argument(IArgument source) + { + Key = source.Key; + Value = source.Value; + ReadOnly = source.ReadOnly; + Description = source.Description; + } + + /// + /// Constructor + /// + /// Key + /// Value + /// Is argument read-only? + /// Description + public Argument(string key,string Value,bool ReadOnly,string Description) + { + _key = key; + _value = Value; + _readOnly = ReadOnly; + _description = Description; + } + #region IArgument Members + + /// + /// TODO: comment + /// + public string Key + { + get + { + return _key; + } + set + { + _key = value; + } + } + + /// + /// TODO: comment + /// + public string Value + { + get + { + return _value; + } + set + { + _value = value; + } + } + + /// + /// TODO: comment + /// + public bool ReadOnly + { + get + { + return _readOnly; + } + set + { + _readOnly = value; + } + } + + /// + /// TODO: comment + /// + public string Description + { + get + { + return _description; + } + set + { + _description = value; + } + } + + #endregion + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Argument d = (Argument)obj; + return (Value.Equals(d.Value)&&Key.Equals(d.Key)); + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_key != null) hashCode += _key.GetHashCode(); + if (_value != null) hashCode += _value.GetHashCode(); + return hashCode; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/AssemblyInfo.cs new file mode 100644 index 00000000..d8761d64 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI SDK Backbone Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4")] +[assembly: AssemblyCopyright("BSD License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/DataOperation.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/DataOperation.cs new file mode 100644 index 00000000..c0f7900f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/DataOperation.cs @@ -0,0 +1,187 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The DataOperation class contains operations the providing component should + /// carry out on the data. + /// This is a trivial implementation of OpenMI.Standard.IDataOperation, refer there for further details. + /// + [Serializable] + public class DataOperation : IDataOperation + { + private string _id; + private ArrayList _arguments = new ArrayList(); + + /// + /// Constructor + /// + public DataOperation() + { + } + + /// + /// Initialize method + /// + /// The arguments for the data operations + public void Initialize(IArgument[] properties) + { + _arguments.AddRange (properties); + } + + /// + /// Copy constructor + /// + /// The Data Operation to copy + public DataOperation(IDataOperation source) + { + ID = source.ID; + for (int i=0;i + /// Constructor with just a string ID + /// + /// The ID + public DataOperation( + string ID) + { + _id = ID; + } + + /// + /// Setter and getter methods for ID + /// + public virtual string ID + { + get + { + return _id; + } + set + { + _id = value; + } + } + + /// + /// Getter method for the argument count + /// + public virtual int ArgumentCount + { + get + { + return _arguments.Count; + } + } + + /// + /// Setter and getter methods for the arguments + /// + public virtual ArrayList Arguments + { + get { + return _arguments; + } + set { + _arguments = value; + } + } + + /// + /// Gets one argument + /// + /// The index of the argument + /// The argument + public virtual IArgument GetArgument(int argumentIndex) + { + return (IArgument) _arguments[argumentIndex]; + } + + + /// + /// Adds an argument + /// + /// The argument to add + public virtual void AddArgument( + IArgument argument + ) + { + _arguments.Add(argument); + } + + /// + /// Checks whether the current data operation is valid for the combination of + /// input and output exchange items + /// + /// The input exchange item + /// The output exchange item + /// The selected data operations + /// True if the data operation is valid + public virtual bool IsValid(IInputExchangeItem inputExchangeItem,IOutputExchangeItem outputExchangeItem, + IDataOperation[] SelectedDataOperations) + { + return true; + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + DataOperation d = (DataOperation)obj; + if (!ID.Equals(d.ID)) return false; + if (!ArgumentCount.Equals(d.ArgumentCount)) return false; + for (int i=0;i + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_id != null) hashCode += _id.GetHashCode(); + return hashCode; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Dimension.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Dimension.cs new file mode 100644 index 00000000..3e73d660 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Dimension.cs @@ -0,0 +1,90 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The Dimension class contains the dimension for a unit. + /// This is a trivial implementation of OpenMI.Standard.IDimension, refer there for further details. + /// + + [Serializable] + public class Dimension : IDimension + { + double[] _count; + + /// + /// Constructor + /// + public Dimension() + { + _count = new double[ (int) DimensionBase.NUM_BASE_DIMENSIONS]; + } + + /// + /// Returns the power of a base quantity + /// + /// The base quantity + /// The power + public double GetPower(DimensionBase baseQuantity) + { + return _count[(int) baseQuantity]; + } + + /// + /// Sets a power for a base quantity + /// + /// The base quantity + /// The power + public void SetPower(DimensionBase baseQuantity,double power) + { + _count[(int) baseQuantity] = power; + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public bool Equals(IDimension obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Dimension d = (Dimension) obj; + for (int i=0;i<(int)DimensionBase.NUM_BASE_DIMENSIONS;i++) + { + if (_count[i]!=d._count[i]) + return false; + } + return true; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Element.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Element.cs new file mode 100644 index 00000000..c5df03f0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Element.cs @@ -0,0 +1,215 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The Element class contains a spatial element. + /// This is a trivial implementation for use with Oatc.OpenMI.Sdk.Backbone.ElementSet, refer there for further details. + /// + [Serializable] + public class Element + { + private ArrayList _vertices = new ArrayList(); + private ArrayList _faces = new ArrayList(); + private string _id=""; + + /// + /// Constructor + /// + public Element() + { + } + + /// + /// Copy constructor + /// + /// The element to copy + public Element(Element source) + { + ID = source.ID; + Vertices = source.Vertices; + } + + /// + /// Setter and getter functions for the vertex list + /// + public virtual Vertex[] Vertices + { + get + { + Vertex[] vertices = new Vertex[_vertices.Count]; + for (int i=0;i<_vertices.Count;i++) + { + vertices[i] = (Vertex) _vertices[i]; + } + return vertices; + } + set + { + _vertices.Clear(); + for (int i=0;i + /// Constructor function + /// + /// The Element ID + public Element(string ID) + { + _id = ID; + } + + /// + /// Returns the vertex count + /// + public virtual int VertexCount + { + get + { + return _vertices.Count; + } + } + + /// + /// Getter and setter functions for the element ID + /// + public string ID + { + get + { + return _id; + } + set + { + _id = value; + } + } + + /// + /// Gets a vertex + /// + /// The vertex index + /// The vertex + public virtual Vertex GetVertex(int Index) + { + return (Vertex) _vertices[Index]; + } + + /// + /// Adds a vertex + /// + /// The vertex to add + public virtual void AddVertex(Vertex vertex) + { + _vertices.Add(vertex); + } + + /// + /// Returns the number of faces + /// + public int FaceCount + { + get {return _faces.Count;} + } + + /// + /// Adds a face + /// + /// The vertex indices for the face + public void AddFace(int[] vertexIndices) + { + _faces.Add(vertexIndices); + } + + /// + /// Returns the face vertex indices for a face + /// + /// The face index + /// The face vertex indices + public int[] GetFaceVertexIndices(int faceIndex) + { + return ((int[]) _faces[faceIndex]); + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Element e = (Element) obj; + if (!ID.Equals(e.ID)) + return false; + if (VertexCount!=e.VertexCount) + return false; + for (int i=0;i + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_id != null) hashCode += _id.GetHashCode(); + if (_vertices != null) hashCode += _vertices.GetHashCode(); + return hashCode; + } + + /// + /// String representation of the element + /// + /// + public override string ToString() + { + if (_id != null) + { + return _id; + } + else + { + return "georef'd element"; + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/ElementSet.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/ElementSet.cs new file mode 100644 index 00000000..33c9b536 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/ElementSet.cs @@ -0,0 +1,368 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The ElementSet class describes a collection of spatial elements. + /// This is a trivial implementation of OpenMI.Standard.IElementSet, refer there for further details. + /// + [Serializable] + public class ElementSet:IElementSet + { + private ArrayList _elements = new ArrayList(); + private string _description=""; + private string _id=""; + private ElementType _elementType = new ElementType(); + private ISpatialReference _spatialReference = new SpatialReference(); + + /// + /// Constructor + /// + public ElementSet() + { + } + + /// + /// Copy constructor + /// + /// The element set to copy + public ElementSet(IElementSet source) + { + _description = source.Description; + _id = source.ID; + _elementType = source.ElementType; + _spatialReference = source.SpatialReference; + + for (int i=0;i + /// ElementSet version + /// + public virtual int Version + { + get { return 0;} + } + + /// + /// Constructor + /// + /// Description + /// ID + /// Element type + /// Spatial reference + public ElementSet(string Description, string ID, + ElementType ElementType,ISpatialReference SpatialReference) + { + _description = Description; + _id = ID; + _elementType = ElementType; + _spatialReference = SpatialReference; + } + + /// + /// Adds an element + /// + /// The element to add + public virtual void AddElement (Element element) + { + _elements.Add(element); + } + + /// + /// Gets an element + /// + /// The element index + /// The element + public virtual Element GetElement(int ElementIndex) + { + return (Element) _elements[ElementIndex]; + + } + + /// + /// Getter and setter functions for the element list + /// + public virtual Element[] Elements + { + get + { + Element[] elements = new Element[_elements.Count]; + for (int i=0;i<_elements.Count;i++) + { + elements[i] = (Element) _elements[i]; + } + return elements; + } + set + { + _elements.Clear(); + for (int i=0;i + /// Returns an element ID for an element + /// + /// The element index + /// The element ID + public virtual string GetElementID(int ElementIndex) + { + Element element = (Element) _elements[ElementIndex]; + return element.ID; + } + + /// + /// Setter and getter for the element set description + /// + public virtual string Description + { + get + { + return _description; + } + set + { + _description = value; + } + } + + /// + /// Setter and getter for the element set ID + /// + public string ID + { + get + { + return _id; + } + set + { + _id = value; + } + } + + /// + /// Setter and getter for the element type + /// + public virtual ElementType ElementType + { + get + { + return _elementType; + } + set + { + _elementType = value; + } + } + + /// + /// Returns the x coordinate for a vertex + /// + /// The element index + /// The vertex index + /// The x coordinate + public virtual double GetXCoordinate(int ElementIndex, int VertexIndex) + { + Element element = (Element) _elements[ElementIndex]; + Vertex vertex = element.GetVertex(VertexIndex); + return vertex.x; + } + + /// + /// Returns the y coordinate for a vertex + /// + /// The element index + /// The vertex index + /// The y coordinate + public virtual double GetYCoordinate(int ElementIndex, int VertexIndex) + { + Element element = (Element) _elements[ElementIndex]; + Vertex vertex = element.GetVertex(VertexIndex); + return vertex.y; + } + + /// + /// Returns the z coordinate for a vertex + /// + /// The element index + /// The vertex index + /// The z coordinate + public virtual double GetZCoordinate(int ElementIndex, int VertexIndex) + { + Element element = (Element) _elements[ElementIndex]; + Vertex vertex = element.GetVertex(VertexIndex); + return vertex.z; + } + + /// + /// Returns the number of elements + /// + public virtual int ElementCount + { + get + { + return _elements.Count; + } + } + + /// + /// Returns the number of vertices for an element + /// + /// The element index + /// The number of vertices for this element + public virtual int GetVertexCount(int ElementIndex) + { + Element element = (Element) _elements[ElementIndex]; + return element.VertexCount; + } + + /// + /// Getter and setter for the spatial reference + /// + public virtual ISpatialReference SpatialReference + { + get + { + return _spatialReference; + } + set + { + _spatialReference = value; + } + } + + /// + /// Returns the element index for a given element ID + /// + /// The element ID + /// The element index + public virtual int GetElementIndex(string ElementID) + { + for (int i=0;i<_elements.Count;i++) + { + Element element = (Element) _elements[i]; + if (element.ID.Equals(ElementID)) + { + return i; + } + } + throw new Exception("Element with ID "+ElementID+ " not found."); + } + + /// + /// Returns the list of face vertex indices for a given element and face + /// + /// The element index + /// The face index + /// List of face vertex indices + public int[] GetFaceVertexIndices(int elementIndex, int faceIndex) + { + return ((Element)_elements[elementIndex]).GetFaceVertexIndices(faceIndex); + } + + /// + /// Returns the face count for a given element + /// + /// The element index + /// The face count for the given element + public int GetFaceCount(int elementIndex) + { + return ((Element)_elements[elementIndex]).FaceCount; + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + ElementSet s = (ElementSet)obj; + if (!Description.Equals(s.Description)) + return false; + if (!ID.Equals(s.ID)) + return false; + if (!SpatialReference.Equals(s.SpatialReference)) + return false; + if (!ElementType.Equals(s.ElementType)) + return false; + if (ElementCount != s.ElementCount) + return false; + for (int i = 0; i < ElementCount; i++) + if (!GetElement(i).Equals(s.GetElement(i))) + return false; + return true; + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_id != null) hashCode += _id.GetHashCode(); + hashCode += _elementType.GetHashCode(); + return hashCode; + } + + /// + /// String representation of the + /// + /// + public override string ToString() + { + return ID; + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Event.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Event.cs new file mode 100644 index 00000000..5834051e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Event.cs @@ -0,0 +1,172 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// Events are used to send informative and warning messages. + /// This is a trivial implementation of OpenMI.Standard.IEvent, refer there for further details. + /// + [Serializable] + public class Event:IEvent + { + private Hashtable _attributeTable = new Hashtable(); + private ILinkableComponent _sender; + private ITimeStamp _simulationTime; + private EventType _type=EventType.Informative; + private string _description=""; + + /// + /// Constructor + /// + public Event() + { + } + + /// + /// Constructor + /// + /// Event type + public Event(EventType type) + { + _type = type; + } + + /// + /// Getter and setter for the event type + /// + public EventType Type + { + get {return _type;} + set {_type = value;} + } + + /// + /// Getter and setter for the sender + /// + public ILinkableComponent Sender + { + get {return _sender;} + set {_sender = value;} + } + + /// + /// Getter and setter for the simulation time + /// + public ITimeStamp SimulationTime + { + get {return _simulationTime;} + set {_simulationTime = value;} + } + + /// + /// Getter and setter for the description + /// + public string Description + { + get {return _description;} + set {_description = value;} + } + + /// + /// Sets an attribute for the event with a (key,value) pair + /// + /// The key + /// The value + public void SetAttribute(string key, object val) + { + _attributeTable.Add(key,val); + + } + /// + /// Gets an attribute for a given key + /// + /// The key + /// The attribute + public object GetAttribute(string key) + { + return (_attributeTable[key]); + + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Event e = (Event) obj; + if (!Description.Equals(e.Description)) + return false; + if (!Type.Equals(e.Type)) + return false; + if (!SimulationTime.Equals(e.SimulationTime)) + return false; + if (Sender!=e.Sender) + return false; + ICollection Keys = _attributeTable.Keys; + ICollection eKeys = e._attributeTable.Keys; + if (Keys.Count!=eKeys.Count) + return false; + IEnumerator enumerator = Keys.GetEnumerator(); + while (enumerator.MoveNext()) + { string key = (string) enumerator.Current; + string val = (string) _attributeTable[key]; + + if (!e._attributeTable.ContainsKey(key)) + return false; + if (!e._attributeTable[key].Equals(val)) + return false; + } + return true; + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_sender != null) hashCode += _sender.GetHashCode(); + hashCode += _type.GetHashCode(); + if (_simulationTime != null) hashCode += _simulationTime.GetHashCode(); + return hashCode; + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/ExchangeItem.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/ExchangeItem.cs new file mode 100644 index 00000000..98296396 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/ExchangeItem.cs @@ -0,0 +1,90 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The exchange item is a combination of a quantity and an element set. + /// This is a trivial implementation of OpenMI.Standard.IExchangeItem, refer there for further details. + /// + [Serializable] + public class ExchangeItem : IExchangeItem + { + private IQuantity _Quantity; + private IElementSet _ElementSet; + + /// + /// Getter and setter for the quantity + /// + public IQuantity Quantity + { + get {return _Quantity;} + set {_Quantity = value;} + } + + /// + /// Getter and setter for the element set. + /// See IExchangeItem.ElementSet. + /// + public IElementSet ElementSet + { + get {return _ElementSet;} + set {_ElementSet = value;} + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + ExchangeItem item = (ExchangeItem) obj; + return (item.Quantity.Equals(Quantity)&& + item.ElementSet.Equals(ElementSet)); + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_Quantity != null) hashCode += _Quantity.GetHashCode(); + if (_ElementSet != null) hashCode += _ElementSet.GetHashCode(); + return hashCode; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/InputExchangeItem.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/InputExchangeItem.cs new file mode 100644 index 00000000..7b577693 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/InputExchangeItem.cs @@ -0,0 +1,43 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The input exchange item is an exchange item used for inputs + /// in the receiving component. + /// This is a trivial implementation of OpenMI.Standard.IInputExchangeItem, refer there for further details. + /// + [Serializable] + public class InputExchangeItem : ExchangeItem, IInputExchangeItem + { + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Link.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Link.cs new file mode 100644 index 00000000..739ac8ec --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Link.cs @@ -0,0 +1,332 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The link is used to describe the data transfer between + /// linkable components. + /// This is a trivial implementation of OpenMI.Standard.ILink, refer there for further details. + /// + [Serializable] + public class Link : ILink + { + private ArrayList _dataOperations = new ArrayList(); + private string _description = ""; + private string _id = ""; + private ILinkableComponent _sourceComponent; + private IElementSet _sourceElementSet; + private IQuantity _sourceQuantity; + private ILinkableComponent _targetComponent; + private IElementSet _targetElementSet; + private IQuantity _targetQuantity; + + /// + /// Constructor + /// + public Link() + { + } + + /// + /// Copy constructor + /// + /// The link to copy + public Link(ILink source) + { + SourceComponent = source.SourceComponent; + SourceElementSet = source.SourceElementSet; + SourceQuantity = source.SourceQuantity; + TargetComponent = source.TargetComponent; + TargetElementSet = source.TargetElementSet; + TargetQuantity = source.TargetQuantity; + Description = source.Description; + ID = source.ID; + for (int i=0;i + /// Constructor + /// + /// The source component + /// The source element set + /// The source quantity + /// The target component + /// The target element set + /// The target quantity + /// The description + /// The ID + /// Data operations to be carried out by the provider + public Link(ILinkableComponent SourceComponent, + IElementSet SourceElementSet, + IQuantity SourceQuantity, + ILinkableComponent TargetComponent, + IElementSet TargetElementSet, + IQuantity TargetQuantity, + string Description, + string ID, + ArrayList DataOperations) + { + _sourceComponent = SourceComponent; + _sourceElementSet = SourceElementSet; + _sourceQuantity = SourceQuantity; + _targetComponent = TargetComponent; + _targetElementSet = TargetElementSet; + _targetQuantity = TargetQuantity; + _description = Description; + _id = ID; + _dataOperations = DataOperations; + } + + /// + /// Constructor + /// + /// The source component + /// The source element set + /// The source quantity + /// The target component + /// The target element set + /// The target quantity + /// The ID + public Link(ILinkableComponent SourceComponent, + IElementSet SourceElementSet, + IQuantity SourceQuantity, + ILinkableComponent TargetComponent, + IElementSet TargetElementSet, + IQuantity TargetQuantity, + string ID) + { + _sourceComponent = SourceComponent; + _sourceElementSet = SourceElementSet; + _sourceQuantity = SourceQuantity; + _targetComponent = TargetComponent; + _targetElementSet = TargetElementSet; + _targetQuantity = TargetQuantity; + _description = Description; + _id = ID; + } + + /// + /// Getter and setter for the link ID + /// + public string ID + { + get + { + return _id; + } + set + { + _id = value; + } + } + + /// + /// Getter and setter for the link description + /// + public string Description + { + get + { + return _description; + } + set + { + _description = value; + } + } + + /// + /// Getter and setter for the source component + /// + public ILinkableComponent SourceComponent + { + get + { + return _sourceComponent; + } + set + { + _sourceComponent = value; + } + } + + /// + /// Getter and setter for the source quantity + /// + public IQuantity SourceQuantity + { + get + { + return _sourceQuantity; + } + set + { + _sourceQuantity = value; + } + } + + /// + /// Getter and setter for the source element set + /// + public IElementSet SourceElementSet + { + get + { + return _sourceElementSet; + } + set + { + _sourceElementSet = value; + } + } + + /// + /// Getter and setter for the target component + /// + public ILinkableComponent TargetComponent + { + get + { + return _targetComponent; + } + set + { + _targetComponent = value; + } + } + + /// + /// Getter and setter for the target quantity + /// + public IQuantity TargetQuantity + { + get + { + return _targetQuantity; + } + set + { + _targetQuantity = value; + } + } + + /// + /// Getter and setter for the target element set + /// + public IElementSet TargetElementSet + { + get + { + return _targetElementSet; + } + set + { + _targetElementSet = value; + } + } + + /// + /// The number of data operations + /// + public int DataOperationsCount + { + get + { + return _dataOperations.Count; + } + } + + /// + /// Adds a data operation + /// + /// The data operation + public void AddDataOperation (IDataOperation dataOperation) + { + if ( ! (dataOperation is ICloneable ) ) + { + // Data Operation can not be cloned, issue warning + Event warning = new Event(EventType.Warning); + warning.Description = "DataOperation " + dataOperation.ID + " can not be cloned yet!"; + warning.Sender = _sourceComponent; + _sourceComponent.SendEvent(warning); + + _dataOperations.Add(dataOperation); + } + else + { + _dataOperations.Add(((ICloneable)dataOperation).Clone()); + } + } + + + /// + /// Gets a data operation + /// + /// The index of the data operation + /// The data operation + public IDataOperation GetDataOperation(int DataOperationIndex) + { + return (IDataOperation) _dataOperations[DataOperationIndex]; + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Link link = (Link) obj; + return (ID.Equals(link.ID)); + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_sourceQuantity != null) hashCode += _sourceQuantity.GetHashCode(); + if (_sourceElementSet != null) hashCode += _sourceElementSet.GetHashCode(); + if (_targetQuantity != null) hashCode += _targetQuantity.GetHashCode(); + if (_targetElementSet != null) hashCode += _targetElementSet.GetHashCode(); + return hashCode; + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/LinkableComponent.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/LinkableComponent.cs new file mode 100644 index 00000000..5108cf14 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/LinkableComponent.cs @@ -0,0 +1,406 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The LinkableComponent provides the OpenMI interface to the wrapped engine. + /// This is a trivial implementation of OpenMI.Standard.ILinkableComponent, refer there for further details. + /// + public abstract class LinkableComponent:MarshalByRefObject,ILinkableComponent + { + private ArrayList _acceptingLinks = new ArrayList(); + private ArrayList _providingLinks = new ArrayList(); + private ArrayList _inputExchangeItems = new ArrayList(); + private ArrayList _outputExchangeItems = new ArrayList(); + private Hashtable _eventTable = new Hashtable(); + + /// + /// Called before computation + /// + public abstract void Prepare(); + + /// + /// Returns computed values + /// + /// The timestamp/timespan for which to return values + /// The linkID describing on which link values to return + /// The computed values + public abstract IValueSet GetValues(ITime time, string LinkID); + + /// + /// Adds a link + /// + /// The link + public virtual void AddLink (ILink NewLink) + { + if (NewLink.SourceComponent==this) + { + for (int iNewDO = 0; iNewDO < NewLink.DataOperationsCount; iNewDO++) + { + IDataOperation newDataOperation = NewLink.GetDataOperation(iNewDO); + foreach (ILink link in _providingLinks) + { + for (int iExistingDO = 0; iExistingDO < link.DataOperationsCount; iExistingDO++) + { + IDataOperation existingDataOperation = link.GetDataOperation(iExistingDO); + if (newDataOperation == existingDataOperation) + { + Event warning = new Event(EventType.Warning); + warning.Description = "DataOperation " + newDataOperation.ID + " has already been used. " + + "It's argument values will overrule the values set previously for this operation."; + warning.Sender = this; + SendEvent(warning); + } + } + } + } + _providingLinks.Add(NewLink); + } + if (NewLink.TargetComponent==this) + { + _acceptingLinks.Add(NewLink); + } + } + + /// + /// Removes a link + /// + /// The link ID + public virtual void RemoveLink(string LinkID) + { + ILink Link = GetLink (LinkID); + if (Link != null) { + _acceptingLinks.Remove (Link); + _providingLinks.Remove (Link); + } + } + + /// + /// Returns the accepting links + /// + /// The accepting links + public virtual ILink[] GetAcceptingLinks() + { + return (ILink[] ) _acceptingLinks.ToArray(typeof(ILink)); + } + + /// + /// Returns the providing links + /// + /// The providing links + public virtual ILink[] GetProvidingLinks() + { + return (ILink[] ) _providingLinks.ToArray(typeof(ILink)); + } + + /// + /// Returns the number of links + /// + public virtual int LinkCount + { + get + { + return _acceptingLinks.Count+_providingLinks.Count; + } + } + + /// + /// Gets a link + /// + /// The link ID + /// The link + public virtual ILink GetLink(string LinkID) + { + for (int i = 0; i < _acceptingLinks.Count; i++) + { + if (((ILink)_acceptingLinks[i]).ID.Equals(LinkID)) + { + return (ILink) _acceptingLinks[i]; + } + } + + for (int i = 0; i < _providingLinks.Count; i++) + { + if (((ILink)_providingLinks[i]).ID.Equals(LinkID)) + { + return (ILink) _providingLinks[i]; + } + } + + return null; + } + + /// + /// Subscribes to an event + /// + /// The listener + /// The event type + public virtual void Subscribe(IListener Listener, EventType EventType) + { + if (!_eventTable.ContainsKey(EventType)) + { + _eventTable[EventType] = new ArrayList(); + } + ((ArrayList)_eventTable[EventType]).Add(Listener); + } + + /// + /// Unsubscribes to an event + /// + /// The listener + /// The event type + public virtual void UnSubscribe(IListener Listener, EventType EventType) + { + if (_eventTable.ContainsKey(EventType)) + { + ArrayList list = (ArrayList) _eventTable[EventType]; + if (list.Contains(Listener)) + list.Remove(Listener); + } + } + + /// + /// Sends an event + /// + /// The event + public virtual void SendEvent(IEvent theEvent) + { + EventType EventType = theEvent.Type; + + if (_eventTable.ContainsKey(EventType)) + { + ArrayList list = (ArrayList) _eventTable[EventType]; + foreach (IListener listener in list) + { + listener.OnEvent(theEvent); + } + } + } + + /// + /// Returns a published event type + /// + /// The event index + /// The published event + public abstract EventType GetPublishedEventType(int providedEventTypeIndex); + + /// + /// Returns the number of published events + /// + /// The number of published events + public abstract int GetPublishedEventTypeCount(); + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object source) + { + if (source is LinkableComponent) + { + LinkableComponent component = (LinkableComponent) source; + return (NullEquals(ComponentID, component.ComponentID) && + NullEquals(ModelID, component.ModelID)); + } + + return base.Equals (source); + } + + private static bool NullEquals (object obj1, object obj2) + { + if ((obj1 != null) && (obj2 != null)) + { + return obj1.Equals (obj2); + } + else + { + return (obj1 == obj2); + } + } + + /// + /// Dispose function + /// + public virtual void Dispose() + { + } + + /// + /// Returns an input exchange item + /// + /// The input exchange item index + /// The input exchange item + public virtual IInputExchangeItem GetInputExchangeItem(int inputExchangeItemIndex) + { + return (IInputExchangeItem) _inputExchangeItems[inputExchangeItemIndex]; + } + + /// + /// Returns the component description + /// + public abstract string ComponentDescription {get;} + + /// + /// Returns if the component is valid (contains valid data) + /// + /// True if the component is valid + public abstract string Validate(); + + /// + /// Returns the number of input exchange items + /// + public virtual int InputExchangeItemCount + { + get + { + return _inputExchangeItems.Count; + } + } + + /// + /// Returns the time horizon, which is the simulation start and stop + /// time for this component + /// + public abstract ITimeSpan TimeHorizon {get;} + + /// + /// Returns the earliest time for which input is needed + /// + public abstract ITimeStamp EarliestInputTime {get;} + + /// + /// Returns the component ID + /// + public abstract string ComponentID {get;} + + + /// + /// Returns an output exchange item + /// + /// The output exchange item index + /// The output exchange item + public virtual IOutputExchangeItem GetOutputExchangeItem(int outputExchangeItemIndex) + { + return (IOutputExchangeItem) _outputExchangeItems[outputExchangeItemIndex]; + } + + /// + /// Adds an input exchange item + /// + /// The input exchange item + public virtual void AddInputExchangeItem(IInputExchangeItem exchangeItem) + { + _inputExchangeItems.Add(exchangeItem); + } + + /// + /// Adds an output exchange item + /// + /// The output exchange item + public virtual void AddOutputExchangeItem(IOutputExchangeItem exchangeItem) + { + _outputExchangeItems.Add(exchangeItem); + } + + /// + /// Initializes the component with the given arguments + /// + /// The arguments + public abstract void Initialize(IArgument[] properties); + + /// + /// The model description + /// + public abstract string ModelDescription {get;} + + /// + /// The model ID + /// + public abstract string ModelID {get;} + + /// + /// The number of output exchange items + /// + public virtual int OutputExchangeItemCount + { + get {return _outputExchangeItems.Count;} + } + + /// + /// Finish clears up allocated memory and closes files + /// After this method is called no other methods should + /// be called on the LinkableComponent + /// + public abstract void Finish(); + + /// + /// Returns a string describing this linkable component + /// + /// The description + public override string ToString() + { + return ComponentID + " - " + ModelID; + } + + /// + /// Returns true if the linkable component has listeners + /// + /// True is linkable component has listeners + public virtual bool HasListeners() + { + foreach (EventType eventType in _eventTable.Keys) + { + ArrayList list = (ArrayList) _eventTable[eventType]; + if (list.Count>0) + return true; + } + return false; + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance + public override int GetHashCode() + { + return _acceptingLinks.GetHashCode() + + _eventTable.GetHashCode() + + _inputExchangeItems.GetHashCode()+ + _outputExchangeItems.GetHashCode() + + _providingLinks.GetHashCode(); + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Oatc.OpenMI.Sdk.Backbone.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Oatc.OpenMI.Sdk.Backbone.csproj new file mode 100644 index 00000000..6f46316a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Oatc.OpenMI.Sdk.Backbone.csproj @@ -0,0 +1,166 @@ + + + + Local + 8.0.50727 + 2.0 + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Backbone + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Backbone + OnBuildSuccess + + + + + + + false + 3.5 + v2.0 + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + bin/Release/Oatc.OpenMI.Sdk.Backbone.XML + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + + ..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/OutputExchangeItem.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/OutputExchangeItem.cs new file mode 100644 index 00000000..129ca71e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/OutputExchangeItem.cs @@ -0,0 +1,78 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The output exchange item is an exchange item used for outputs + /// from the transmitting component. + /// This is a trivial implementation of OpenMI.Standard.IOutputExchangeItem, refer there for further details. + /// + [Serializable] + public class OutputExchangeItem : ExchangeItem, IOutputExchangeItem + { + private ArrayList _dataOperations = new ArrayList(); + + /// + /// Getter for the number of data operations. See . + /// + public int DataOperationCount + { + get {return _dataOperations.Count;} + } + + /// + /// Get a data operation. See + /// + public IDataOperation GetDataOperation(int dataOperationIndex) + { + return (IDataOperation) _dataOperations[dataOperationIndex]; + } + + /// + /// The list of data operations + /// + public ArrayList DataOperations + { + get {return _dataOperations;} + } + + /// + /// Adds a data operation. + /// + /// The data operation to be added + public void AddDataOperation(IDataOperation dataOperation) + { + _dataOperations.Add(dataOperation); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Quantity.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Quantity.cs new file mode 100644 index 00000000..4f1b24b9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Quantity.cs @@ -0,0 +1,229 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; +using ValueType=OpenMI.Standard.ValueType; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// The Quantity class contains a unit, description, id, and dimension. + /// This is a trivial implementation of OpenMI.Standard.IQuantity, refer there for further details. + /// + [Serializable] + public class Quantity : IQuantity + { + private IUnit _unit = new Unit(); + string _description = ""; + private string _id = ""; + private IDimension _dimension=new Dimension(); + private ValueType _valueType=ValueType.Scalar; + + /// + /// Constructor + /// + public Quantity() + { + } + + /// + /// Constructor + /// + /// ID + public Quantity(String id) + { + _id = id; + } + + /// + /// Copy constructor + /// + /// The quantity to copy + public Quantity(IQuantity source) + { + Description = source.Description; + Dimension = source.Dimension; + ID = source.ID; + Unit = source.Unit; + ValueType = source.ValueType; + } + + /// + /// Constructor + /// + /// Unit + /// Description + /// ID + public Quantity(IUnit unit, string Description, string ID) + { _unit = unit; + _description = Description; + _id = ID; + } + + /// + /// Constructor + /// + /// Unit + /// Description + /// ID + /// Value type (vector or scalar) + public Quantity(IUnit unit, string Description, string ID,ValueType valueType) + { + _unit = unit; + _description = Description; + _id = ID; + _valueType = valueType; + } + + /// + /// Constructor + /// + /// Unit + /// Description + /// ID + /// Value type (vector or scalar) + /// Dimension + public Quantity(IUnit unit, string Description, string ID,ValueType valueType, + IDimension Dimension) + { + _unit = unit; + _description = Description; + _id = ID; + _valueType = valueType; + _dimension = Dimension; + } + + /// + /// Getter and setter for ID + /// + public string ID + { + get {return _id;} + set + { + _id = value; + } + } + + /// + /// Getter and setter for Dimension + /// + public IDimension Dimension + { + get {return _dimension;} + set + { + _dimension = value; + } + } + + /// + /// Getter and setter for description + /// + public string Description + { + get {return _description;} + set + { + _description = value; + } + } + + /// + /// Getter and setter for unit + /// + public IUnit Unit + { + get {return _unit;} + set + { + _unit = value; + } + } + + /// + /// Returns the ID + /// + /// ID + public override String ToString() + { + return ID; + } + + /// + /// Getter and setter for value type (scalar/vector) + /// + public ValueType ValueType + { + get { return _valueType;} + set + { + _valueType = value; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Quantity q = (Quantity) obj; + if (!ID.Equals(q.ID)) + return false; + if (!Unit.Equals(q.Unit)) + return false; + if (!ValueType.Equals(q.ValueType)) + return false; + if (!Description.Equals(q.Description)) + return false; + if (!Dimension.Equals(q.Dimension)) + return false; + return true; + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_id != null) hashCode += _id.GetHashCode(); + if (_unit != null) hashCode += _unit.GetHashCode(); + if (_dimension != null) hashCode += _dimension.GetHashCode(); + return hashCode; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/ScalarSet.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/ScalarSet.cs new file mode 100644 index 00000000..6b107ebb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/ScalarSet.cs @@ -0,0 +1,218 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// The ScalarSet class contains a list of scalar values. + /// This is a trivial implementation of OpenMI.Standard.IScalarSet, refer there for further details. + /// + [Serializable] + public class ScalarSet : IScalarSet + { + double[] _values; + double _missingValueDefinition; + private double _compareDoublesEpsilon; + + /// + /// Constructor + /// + public ScalarSet() + { + _values = new double[0]; + _missingValueDefinition = -999.0; + _compareDoublesEpsilon = 0.000001; + } + + /// + /// Constructor + /// + /// The list of values + public ScalarSet(double[] values) + { + _values = values; + _missingValueDefinition = -999.0; // TODO call empty constructor + _compareDoublesEpsilon = 0.000001; + } + + /// + /// Returns if a certain element is valid + /// + /// Element index + /// True if element is valid + public virtual bool IsValid(int elementIndex) + { + return !isEqual(_values[elementIndex], _missingValueDefinition); + } + + /// + /// Copy constructor + /// + /// The scalar set to copy + public ScalarSet(IScalarSet source) + { + if ( source == null ) + { + throw new Exception("ScalarSet Constructor from \"Source\": source == null"); + } + _values = new double[source.Count]; + for (int i = 0; i < source.Count; i++) + { + _values[i] = source.GetScalar(i); + } + } + + /// + /// Gets a value from the list of values + /// + /// The element index + /// The scalar value + public double GetScalar(int ElementIndex) + { + if ( _values == null ) + { + throw new Exception("Values null"); + } + else + { + if ( _values.Length < ElementIndex+1 || ElementIndex < 0 ) + { + throw new Exception("Invalid ElementIndex"); + } + } + return _values[ElementIndex]; + } + + /// + /// Gives direct access to the data + /// + public double[] data + { + get + { + return _values; + } + set + { + _values = value; + } + } + + /// + /// Returns the number of values + /// + public int Count + { + get + { + return _values.Length; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj is ScalarSet) + { + ScalarSet sourceSet = (ScalarSet)obj; + if (sourceSet.Count != Count) + return false; + for (int i = 0; i < Count; i++) + { + if (sourceSet.GetScalar(i) != GetScalar(i)) + return false; + } + return true; + } + + return base.Equals(obj); + } + + + /// + /// Getter and Setter for the missing value definition. + /// + public double MissingValueDefinition + { + get { return _missingValueDefinition; } + set { _missingValueDefinition = value; } + } + + + /// + /// The epsilon (i.e. the small double value) that should be used when + /// checking + /// + /// + public double CompareDoublesEpsilon + { + get { return _compareDoublesEpsilon; } + set { _compareDoublesEpsilon = value; } + } + + /// + /// Will compare two doubles, using _doubleEpsilon. + /// + /// First double + /// Second double + /// True if double1 and double2 are equal. + protected bool isEqual(double double1, double double2) + { + bool isEqual = false; + + if (double1 >= double2 - _compareDoublesEpsilon && + double1 <= double2 + _compareDoublesEpsilon) + { + isEqual = true; + } + + return isEqual; + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_values != null) hashCode += _values.GetHashCode(); + return hashCode; + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/SpatialReference.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/SpatialReference.cs new file mode 100644 index 00000000..97e28bb0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/SpatialReference.cs @@ -0,0 +1,101 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// This class defines a spatial references. + /// This is a trivial implementation of OpenMI.Standard.ISpatialReference, refer there for further details. + /// + [Serializable] + public class SpatialReference : ISpatialReference + { + private string _id; + + /// + /// Constructor + /// + public SpatialReference() + { + } + + /// + /// Constructor + /// + /// Spatial reference ID + public SpatialReference(string ID) + { + _id = ID; + } + + /// + /// Getter and setter for ID + /// + public string ID + { + get + { + return _id; + } + set + { + _id = value; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + SpatialReference s = (SpatialReference)obj; + return (ID == s.ID); + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_id != null) hashCode += _id.GetHashCode(); + return hashCode; + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/TimeSpan.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/TimeSpan.cs new file mode 100644 index 00000000..9e612882 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/TimeSpan.cs @@ -0,0 +1,122 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// The TimeSpan class defines a time span given a + /// start and end time. + /// This is a trivial implementation of OpenMI.Standard.ITimeSpan, refer there for further details. + /// + [Serializable] + public class TimeSpan : ITimeSpan + { + private ITimeStamp _start; + private ITimeStamp _end; + + /// + /// Constructor + /// + /// Start time + /// End time + public TimeSpan(ITimeStamp Start, ITimeStamp End) + { + _start = Start; + _end = End; + } + + /// + /// Copy constructor + /// + /// The time span to copy + public TimeSpan(ITimeSpan source) + { + Start = new TimeStamp(source.Start); + End = new TimeStamp(source.End); + } + + /// + /// Getter and setter for start time + /// + public ITimeStamp Start + { + get { return _start;} + set + { + _start = value; + } + } + + /// + /// Getter and setter for end time + /// + public ITimeStamp End + { + get { return _end;} + set + { + _end = value; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + TimeSpan s = (TimeSpan) obj; + if (!Start.Equals(s.Start)) + return false; + if (!End.Equals(s.End)) + return false; + return true; + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_start != null) hashCode += _start.GetHashCode(); + if (_end != null) hashCode += _end.GetHashCode(); + return hashCode; + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/TimeStamp.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/TimeStamp.cs new file mode 100644 index 00000000..6b2b5e58 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/TimeStamp.cs @@ -0,0 +1,130 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// The TimeStamp class defines a time instant. + /// This is a trivial implementation of OpenMI.Standard.TimeStamp, refer there for further details. + /// + [Serializable] + public class TimeStamp : ITimeStamp, IComparable + { + private double _time = 0; + + /// + /// Constructor + /// + public TimeStamp() + { + } + + /// + /// Copy constructor + /// + /// The time stamp to copy + public TimeStamp(ITimeStamp source) + { + ModifiedJulianDay = source.ModifiedJulianDay; + } + + /// + /// Constructor + /// + /// The modified julian day for the time stamp + public TimeStamp(double ModifiedJulianDay) + { + _time = ModifiedJulianDay; + } + + /// + /// Getter and setter for the modified julian day + /// + public double ModifiedJulianDay + { + get { return _time;} + set { _time = value;} + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + TimeStamp t = (TimeStamp) obj; + if (!ModifiedJulianDay.Equals(t.ModifiedJulianDay)) + return false; + return true; + } + + /// + /// Returns the hash code + /// + /// The hash code + public override int GetHashCode() + { + return _time.GetHashCode(); + } + + /// + /// Compares two timestamps + /// + /// The timestamp to compare with + /// The result of the comparison + public int CompareTo(object obj) + { + if (obj is TimeStamp) + { + TimeStamp ts = (TimeStamp) obj; + return _time.CompareTo (ts._time); +// return ts._time.CompareTo(_time); + } + else + return 0; + } + + /// + /// Converts the time stamp to a string + /// + /// String converted time stamp + public override String ToString() + { + return _time.ToString(); + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Unit.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Unit.cs new file mode 100644 index 00000000..13ad5f20 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Unit.cs @@ -0,0 +1,177 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// The Unit class defines a unit for a quantity. + /// This is a trivial implementation of OpenMI.Standard.IUnit, refer there for further details. + /// + [Serializable] + public class Unit : IUnit + { + private string _description=""; + private string _id=""; + private double _conversionFactor = 1; + private double _conversionOffset = 0; + + /// + /// Constructor + /// + public Unit() + { + } + + /// + /// Copy constructor + /// + /// The unit to copy + public Unit(IUnit source) + { + Description = source.Description; + ID = source.ID; + ConversionFactorToSI = source.ConversionFactorToSI; + OffSetToSI = source.OffSetToSI; + } + + /// + /// Constructor + /// + /// ID + /// Conversion factor to SI + /// Conversion offset to SI + public Unit(string ID, double conversionFactor, double conversionOffset) + { + _id = ID; + _conversionFactor = conversionFactor; + _conversionOffset = conversionOffset; + _description = ""; + } + + /// + /// Constructor + /// + /// ID + /// Conversion factor to SI + /// Conversion offset to SI + /// Description + public Unit(string ID, double conversionFactor, double conversionOffset,string description) + { + _id = ID; + _conversionFactor = conversionFactor; + _conversionOffset = conversionOffset; + _description = description; + } + + /// + /// Getter and setter for description + /// + public string Description + { + get { return _description;} + set + { + _description = value; + } + } + + /// + /// Getter and setter for conversion factor to SI + /// + public double ConversionFactorToSI + { + get {return _conversionFactor;} + set + { + _conversionFactor = value; + } + } + + /// + /// Getter and setter for offset to SI + /// + public double OffSetToSI + { + get {return _conversionOffset;} + set + { + _conversionOffset = value; + } + } + + /// + /// Getter and setter for ID + /// + public string ID + { + get {return _id;} + set + { + _id = value; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Unit u = (Unit) obj; + if (!ID.Equals(u.ID)) + return false; + if (!Description.Equals(u.Description)) + return false; + if (!ConversionFactorToSI.Equals(u.ConversionFactorToSI)) + return false; + if (!OffSetToSI.Equals(u.OffSetToSI)) + return false; + return true; + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_id != null) hashCode += _id.GetHashCode(); + return hashCode; + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/ArgumentTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/ArgumentTest.cs new file mode 100644 index 00000000..1d0dd572 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/ArgumentTest.cs @@ -0,0 +1,106 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class ArgumentTest + { + public ArgumentTest() + { + } + + [Test] + public void Constructor() + { + Argument param = new Argument("key","value",true,"argument1"); + Assert.AreEqual("key",param.Key); + Assert.AreEqual("value",param.Value); + + Argument param2 = new Argument(param); + Assert.AreEqual(param,param2); + } + + [Test] + public void Key() + { + Argument param = new Argument(); + param.Key = "OperationKey"; + Assert.AreEqual("OperationKey",param.Key); + } + + [Test] + public void Value() + { + Argument param = new Argument(); + param.Value = "OperationValue"; + Assert.AreEqual("OperationValue",param.Value); + } + + [Test] + public void ReadOnly() + { + Argument param = new Argument(); + param.ReadOnly = true; + Assert.AreEqual(true,param.ReadOnly); + param.ReadOnly = false; + Assert.AreEqual(false,param.ReadOnly); + } + + [Test] + public void Description() + { + Argument param = new Argument(); + param.Description = "Description"; + Assert.AreEqual("Description",param.Description); + } + + [Test] + public void Equals() + { + Argument param1 = new Argument("key","value",true,"argument1"); + Argument param2 = new Argument("key","value",true,"argument2"); + + Assert.IsTrue(param1.Equals(param2)); + param1.Key = "key1"; + Assert.IsFalse(param1.Equals(param2)); + param1.Key = "key"; + param1.Value ="value1"; + Assert.IsFalse(param1.Equals(param2)); + + Assert.IsFalse(param1.Equals(null)); + Assert.IsFalse(param1.Equals("string")); + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/AssemblyInfo.cs new file mode 100644 index 00000000..b5c8f3f5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Backbone UnitTest Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4 Alpha 3")] +[assembly: AssemblyCopyright("GNU Library or Lesser General Public License (LGPL), MIT License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/DataOperationTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/DataOperationTest.cs new file mode 100644 index 00000000..319eebd6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/DataOperationTest.cs @@ -0,0 +1,129 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class DataOperationTest + { + public DataOperationTest() + { + } + + [Test] + public void Constructor() + { + DataOperation operation = new DataOperation("DataOperationID"); + Argument param1 = new Argument("key1","value1",true,"argument1"); + Argument param2 = new Argument("key2","value2",true,"argument2"); + Argument param3 = new Argument("key3","value3",true,"argument3"); + operation.AddArgument(param1); + operation.AddArgument(param2); + operation.AddArgument(param3); + Assert.AreEqual("DataOperationID",operation.ID); + + DataOperation operation2 = new DataOperation(operation); + + Assert.AreEqual(operation,operation2); + + } + + [Test] + public void ID() + { DataOperation operation = new DataOperation(); + operation.ID = "OperationID"; + Assert.AreEqual("OperationID",operation.ID); + } + + [Test] + public void Arguments() + { + Argument param1 = new Argument("key1","value1",true,"argument1"); + Argument param2 = new Argument("key2","value2",true,"argument2"); + Argument param3 = new Argument("key3","value3",true,"argument3"); + + DataOperation operation = new DataOperation(); + operation.AddArgument(param1); + operation.AddArgument(param2); + operation.AddArgument(param3); + + Assert.AreEqual(3,operation.ArgumentCount); + Assert.AreEqual(param1,operation.GetArgument(0)); + Assert.AreEqual(param2,operation.GetArgument(1)); + Assert.AreEqual(param3,operation.GetArgument(2)); + } + + [Test] + public void Equals() + { + Argument param1 = new Argument("key1","value1",true,"argument1"); + Argument param2 = new Argument("key2","value2",true,"argument2"); + Argument param3 = new Argument("key3","value3",true,"argument3"); + + DataOperation operation1 = new DataOperation("ID"); + + operation1.AddArgument(param1); + operation1.AddArgument(param2); + operation1.AddArgument(param3); + + param1 = new Argument("key1","value1",true,"argument1"); + param2 = new Argument("key2","value2",true,"argument2"); + param3 = new Argument("key3","value3",true,"argument3"); + + DataOperation operation2 = new DataOperation("ID"); + operation2.AddArgument(param1); + operation2.AddArgument(param2); + + Assert.IsFalse(operation1.Equals(operation2)); + + operation2.AddArgument(param3); + + Assert.IsTrue(operation1.Equals(operation2)); + + param1.Key="key"; + + Assert.IsFalse(operation1.Equals(operation2)); + + param1.Key="key1"; + + operation1.ID = "ID1"; + + Assert.IsFalse(operation1.Equals(operation2)); + + operation1.ID = "ID"; + + Assert.IsFalse(operation1.Equals(null)); + Assert.IsFalse(operation1.Equals("string")); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/DimensionTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/DimensionTest.cs new file mode 100644 index 00000000..12cc345a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/DimensionTest.cs @@ -0,0 +1,71 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class DimensionTest + { + Dimension dimension; + + [SetUp] + public void Init() + { + dimension = new Dimension(); + dimension.SetPower(DimensionBase.Length,3); + dimension.SetPower(DimensionBase.Time,-1); + } + + [Test] + public void Power () + { + Assert.AreEqual(3,dimension.GetPower(DimensionBase.Length)); + Assert.AreEqual(-1,dimension.GetPower(DimensionBase.Time)); + } + + [Test] + public void Equals () + { + Dimension dimension = new Dimension(); + dimension.SetPower(DimensionBase.Length,3); + dimension.SetPower(DimensionBase.Time,-1); + + Assert.IsTrue(dimension.Equals(this.dimension)); + dimension.SetPower(DimensionBase.Length,2); + Assert.IsFalse(dimension.Equals(this.dimension)); + + Assert.IsFalse(dimension.Equals("string")); + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/ElementSetTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/ElementSetTest.cs new file mode 100644 index 00000000..4d75ca48 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/ElementSetTest.cs @@ -0,0 +1,347 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class ElementSetTest + { + ElementSet elementSet; + Element element1,element2; + + [SetUp] + public void Init() + { + elementSet = new ElementSet("ElementSet","ElementSetID", + ElementType.XYPolygon,new SpatialReference("ReferenceID")); + element1 = new Element("element1"); + element1.AddVertex(new Vertex(1.0,2.0,3.0)); + element1.AddVertex(new Vertex(2.0,3.0,4.0)); + element1.AddVertex(new Vertex(4.0,5.0,6.0)); + int[] index = {1,2,3,4,5}; + element1.AddFace(index); + elementSet.AddElement(element1); + element2 = new Element("element2"); + element2.AddVertex(new Vertex(6.0,7.0,8.0)); + element2.AddVertex(new Vertex(9.0,10.0,11.0)); + element2.AddVertex(new Vertex(12.0,13.0,14.0)); + int[] index2 = {6,7,8,9}; + element2.AddFace(index2); + elementSet.AddElement(element2); + } + + + [Test] + public void Constructor() + { + Assert.AreEqual("ElementSet",elementSet.Description); + Assert.AreEqual("ElementSetID",elementSet.ID); + Assert.AreEqual(ElementType.XYPolygon,elementSet.ElementType); + Assert.AreEqual(new SpatialReference("ReferenceID"),elementSet.SpatialReference); + + ElementSet elementSet2 = new ElementSet(elementSet); + Assert.AreEqual(elementSet,elementSet2); + } + + [Test] + public void Description() + { + elementSet.Description = "Description"; + Assert.AreEqual("Description",elementSet.Description); + } + + [Test] + public void ID() + { + elementSet.ID = "ID1"; + Assert.AreEqual("ID1",elementSet.ID); + } + + [Test] + public void Elementtype() + { + elementSet.ElementType = ElementType.XYLine; + Assert.AreEqual(ElementType.XYLine,elementSet.ElementType); + } + + [Test] + public void SpatialReference() + { + elementSet.SpatialReference = new SpatialReference("ID"); + Assert.AreEqual(new SpatialReference("ID"),elementSet.SpatialReference); + } + + private bool CompareIntArrays(int[] ar1,int[] ar2) + { + if (ar1.Length!=ar2.Length) + return false; + for (int i=0;i + + + Local + 8.0.50727 + 2.0 + {1EF5387C-0764-4E42-99B9-78356B582281} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Backbone.UnitTest + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Backbone.UnitTest + OnBuildSuccess + + + + + + + 3.5 + v2.0 + + + ./bin/Debug + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ./bin/Release + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\..\..\..\..\..\..\_Code\Dev.CSharp\HydroDesktop\Source\Plugins\Modeler\Utilities\NUnit\nunit.framework.dll + + + ..\..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/OutputExchangeItem.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/OutputExchangeItem.cs new file mode 100644 index 00000000..0f75ff2b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/OutputExchangeItem.cs @@ -0,0 +1,55 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class OutputExchangeItemTest + { + OutputExchangeItem exchangeItem; + [SetUp] + public void Init() + { + exchangeItem = new OutputExchangeItem(); + exchangeItem.AddDataOperation(new DataOperation("DataOperation")); + } + + [Test] + public void DataOperations() + { + Assert.AreEqual(1,exchangeItem.DataOperationCount); + Assert.AreEqual(new DataOperation("DataOperation"),exchangeItem.GetDataOperation(0)); + } + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/QuantityTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/QuantityTest.cs new file mode 100644 index 00000000..01b0ed1e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/QuantityTest.cs @@ -0,0 +1,134 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class QuantityTest + { + Quantity quantity; + [SetUp] + public void Init() + { + quantity = new Quantity(new Unit("UnitID",1.0,0.0,"Description"),"Description", + "ID",ValueType.Scalar,new Dimension()); + } + + [Test] + public void Constructor() + { + Quantity quantity2 = new Quantity(quantity); + Assert.AreEqual(quantity,quantity2); + } + + [Test] + public void ID() + { + Assert.AreEqual("ID",quantity.ID); + quantity.ID = "new"; + Assert.AreEqual("new",quantity.ID); + } + + [Test] + public void Description() + { + Assert.AreEqual("Description",quantity.Description); + quantity.Description = "new"; + Assert.AreEqual("new",quantity.Description); + } + + [Test] + public void Unit() + { + Assert.AreEqual(new Unit("UnitID",1.0,0.0,"Description"),quantity.Unit); + quantity.Unit = new Unit("UnitID2",1.0,0.0,"Description"); + Assert.AreEqual(new Unit("UnitID2",1.0,0.0,"Description"),quantity.Unit); + } + + [Test] + public void Valuetype() + { + Assert.AreEqual(ValueType.Scalar,quantity.ValueType); + quantity.ValueType = ValueType.Vector; + Assert.AreEqual(ValueType.Vector,quantity.ValueType); + } + + [Test] + public void Equals() + { + Quantity quantity2 = new Quantity(new Unit("UnitID",1.0,0.0,"Description"),"Description", + "ID",ValueType.Scalar,new Dimension()); + + Assert.IsTrue(quantity.Equals(quantity2)); + + Assert.IsFalse(quantity.Equals(null)); + Assert.IsFalse(quantity.Equals("string")); + + } + + [Test] + public void EqualsUnit() + { + Quantity quantity2 = new Quantity(new Unit("UnitID2",1.0,0.0,"Description"),"Description", + "ID",ValueType.Scalar,new Dimension()); + + Assert.IsFalse(quantity.Equals(quantity2)); + } + + [Test] + public void EqualsDescription() + { + Quantity quantity2 = new Quantity(new Unit("UnitID",1.0,0.0,"Description"),"Description2", + "ID",ValueType.Scalar,new Dimension()); + + Assert.IsFalse(quantity.Equals(quantity2)); + } + + [Test] + public void EqualsID() + { + Quantity quantity2 = new Quantity(new Unit("UnitID",1.0,0.0,"Description"),"Description", + "ID2",ValueType.Scalar,new Dimension()); + + Assert.IsFalse(quantity.Equals(quantity2)); + } + + [Test] + public void EqualsValueType() + { + Quantity quantity2 = new Quantity(new Unit("UnitID",1.0,0.0,"Description"),"Description", + "ID",ValueType.Vector,new Dimension()); + + Assert.IsFalse(quantity.Equals(quantity2)); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/ScalarSetTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/ScalarSetTest.cs new file mode 100644 index 00000000..ab78a283 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/ScalarSetTest.cs @@ -0,0 +1,86 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class ScalarSetTest + { + ScalarSet scalarSet; + + [SetUp] + public void Init() + { + double[] values = {1.0,2.0,3.0}; + scalarSet = new ScalarSet(values); + } + + [Test] + public void Constructor() + { + ScalarSet scalarSet2 = new ScalarSet(scalarSet); + Assert.AreEqual(scalarSet,scalarSet2); + } + + [Test] + public void GetScalar() + { + Assert.AreEqual(1.0,scalarSet.GetScalar(0)); + Assert.AreEqual(2.0,scalarSet.GetScalar(1)); + Assert.AreEqual(3.0,scalarSet.GetScalar(2)); + } + + [Test] + public void Data() + { + Assert.AreEqual(1.0,scalarSet.data[0]); + Assert.AreEqual(2.0,scalarSet.data[1]); + Assert.AreEqual(3.0,scalarSet.data[2]); + } + + [Test] + public void Count() + { + Assert.AreEqual(3,scalarSet.Count); + } + + [Test] + public void Equals() + { + double[] values={1.0,2.0,3.0}; + ScalarSet scalarSet2 = new ScalarSet(values); + Assert.IsTrue(scalarSet.Equals(scalarSet2)); + scalarSet2.data[1] = 2.5; + Assert.IsFalse(scalarSet.Equals(scalarSet2)); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/SpatialReferenceTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/SpatialReferenceTest.cs new file mode 100644 index 00000000..dfe8def3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/SpatialReferenceTest.cs @@ -0,0 +1,62 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class SpatialReferenceTest + { + SpatialReference spatialReference; + [SetUp] + public void Init() + { + spatialReference = new SpatialReference("ID"); + } + + [Test] + public void ID() + { + Assert.AreEqual("ID",spatialReference.ID); + spatialReference.ID = "new"; + Assert.AreEqual("new",spatialReference.ID); + } + + [Test] + public void Equals() + { + Assert.IsTrue(spatialReference.Equals(new SpatialReference("ID"))); + Assert.IsFalse(spatialReference.Equals(new SpatialReference("ID1"))); + Assert.IsFalse(spatialReference.Equals(null)); + Assert.IsFalse(spatialReference.Equals("string")); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/TestComponent.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/TestComponent.cs new file mode 100644 index 00000000..a95de93e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/TestComponent.cs @@ -0,0 +1,129 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + public class TestComponent : LinkableComponent + { + public override string ComponentDescription + { + get + { + return "ComponentDescription"; + } + } + + public override string ComponentID + { + get + { + return "ComponentID"; + } + } + public override string ModelID + { + get + { + return "ModelID"; + } + } + public override string ModelDescription + { + get + { + return "ModelDescription"; + } + } + + public override void Initialize(IArgument[] properties) + { + } + + public override ITimeStamp EarliestInputTime + { + get + { + return null; + } + } + + public override ITimeSpan TimeHorizon + { + get + { + return null; + } + } + + public override EventType GetPublishedEventType(int providedEventTypeIndex) + { + return new EventType (); + } + + public override int GetPublishedEventTypeCount() + { + return 0; + } + + public override IValueSet GetValues(ITime time, string LinkID) + { + return null; + } + + public override string Validate() + { + return ""; + } + + public override void Prepare() + { + } + + + public override void Finish() + { + } + + } + + public class TestComponent2 : TestComponent + { + public override string ComponentID + { + get + { + return "ComponentID2"; + } + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/TimeSpanTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/TimeSpanTest.cs new file mode 100644 index 00000000..f01bdcc0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/TimeSpanTest.cs @@ -0,0 +1,89 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class TimeSpanTest + { + TimeSpan timeSpan; + + [SetUp] + public void Init() + { + timeSpan = new TimeSpan(new TimeStamp(1.0),new TimeStamp(2.0)); + } + + [Test] + public void Constructor () + { + TimeSpan timeSpan2 = new TimeSpan(timeSpan); + Assert.AreEqual(timeSpan,timeSpan2); + } + + [Test] + public void Start() + { + Assert.AreEqual(new TimeStamp(1.0),timeSpan.Start); + timeSpan.Start = new TimeStamp(2.0); + Assert.AreEqual(new TimeStamp(2.0),timeSpan.Start); + } + + [Test] + public void End() + { + Assert.AreEqual(new TimeStamp(2.0),timeSpan.End); + timeSpan.End = new TimeStamp(3.0); + Assert.AreEqual(new TimeStamp(3.0),timeSpan.End); + } + + [Test] + public void Equals() + { + Assert.IsTrue(timeSpan.Equals(new TimeSpan(new TimeStamp(1.0),new TimeStamp(2.0)))); + Assert.IsFalse(timeSpan.Equals(null)); + Assert.IsFalse(timeSpan.Equals("string")); + } + + [Test] + public void EqualsStart() + { + Assert.IsFalse(timeSpan.Equals(new TimeSpan(new TimeStamp(1.1),new TimeStamp(2.0)))); + } + + [Test] + public void EqualsEnd() + { + Assert.IsFalse(timeSpan.Equals(new TimeSpan(new TimeStamp(1.0),new TimeStamp(2.1)))); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/TimeStampTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/TimeStampTest.cs new file mode 100644 index 00000000..eaf7b0e5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/TimeStampTest.cs @@ -0,0 +1,87 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class TimeStampTest + { + TimeStamp timeStamp; + [SetUp] + public void Init() + { + timeStamp = new TimeStamp(12345.3); + } + + [Test] + public void Constructor() + { + TimeStamp timeStamp2 = new TimeStamp(timeStamp); + Assert.AreEqual(timeStamp,timeStamp2); + } + [Test] + public void ModifiedJulianDay() + { + Assert.AreEqual(12345.3,timeStamp.ModifiedJulianDay); + timeStamp.ModifiedJulianDay = 54321.7; + Assert.AreEqual(54321.7,timeStamp.ModifiedJulianDay); + } + [Test] + public void Equals() + { + TimeStamp timeStamp1 = new TimeStamp(12345.3); + Assert.IsTrue(timeStamp.Equals(timeStamp1)); + timeStamp1.ModifiedJulianDay = 34.0; + Assert.IsFalse(timeStamp.Equals(timeStamp1)); + + Assert.IsFalse(timeStamp.Equals(null)); + Assert.IsFalse(timeStamp.Equals("string")); + } + + [Test] + public void CompareTo() + { + TimeStamp timeStamp1 = new TimeStamp(12345.3); + Assert.AreEqual(0.0,timeStamp.CompareTo(timeStamp1)); + timeStamp1.ModifiedJulianDay = 10000; + Assert.IsTrue(timeStamp.CompareTo(timeStamp1)>0.0); + Assert.IsTrue(timeStamp1.CompareTo(timeStamp)<0.0); + } + + [Test] + public void String() + { + Assert.AreEqual("12345.3",timeStamp.ToString()); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/UnitTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/UnitTest.cs new file mode 100644 index 00000000..67dd43cc --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/UnitTest.cs @@ -0,0 +1,105 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class UnitTest + { + Unit unit; + + [SetUp] + public void Init() + { + unit = new Unit("ID",3.4,6.7,"description"); + } + + public void Constructor() + { + Unit unit2 = new Unit(unit); + + Assert.AreEqual(unit,unit2); + } + + [Test] + public void Description () + { + Assert.AreEqual("description",unit.Description); + unit.Description = "new"; + Assert.AreEqual("new",unit.Description); + } + + [Test] + public void ID () + { + Assert.AreEqual("ID",unit.ID); + unit.ID = "new"; + Assert.AreEqual("new",unit.ID); + } + + [Test] + public void ConversionFactorToSI() + { + Assert.AreEqual(3.4,unit.ConversionFactorToSI); + unit.ConversionFactorToSI = 3.5; + Assert.AreEqual(3.5,unit.ConversionFactorToSI); + + } + + [Test] + public void OffsetToSI() + { + Assert.AreEqual(6.7,unit.OffSetToSI); + unit.OffSetToSI = 6.9; + Assert.AreEqual(6.9,unit.OffSetToSI); + } + + [Test] + public void Equals() + { + Unit unit1 = new Unit("ID",3.4,6.7,"description"); + Assert.IsTrue(unit.Equals(unit1)); + unit1 = new Unit("ID1",3.4,6.7,"description"); + Assert.IsFalse(unit.Equals(unit1)); + unit1 = new Unit("ID",3.5,6.7,"description"); + Assert.IsFalse(unit.Equals(unit1)); + unit1 = new Unit("ID",3.4,6.8,"description"); + Assert.IsFalse(unit.Equals(unit1)); + unit1 = new Unit("ID",3.4,6.7,"description1"); + Assert.IsFalse(unit.Equals(unit1)); + + Assert.IsFalse(unit.Equals(null)); + Assert.IsFalse(unit.Equals("string")); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/VectorSetTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/VectorSetTest.cs new file mode 100644 index 00000000..1e03bac9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/VectorSetTest.cs @@ -0,0 +1,101 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class VectorSetTest + { + VectorSet vectorSet; + [SetUp] + public void Init() + { + Vector vector1 = new Vector(1.0,2.0,3.0); + Vector vector2 = new Vector(4.0,5.0,6.0); + Vector vector3 = new Vector(7.0,8.0,9.0); + + Vector[] data = {vector1,vector2,vector3}; + + vectorSet = new VectorSet(data); + } + + [Test] + public void Constructor() + { + VectorSet vectorSet2 = new VectorSet(vectorSet); + Assert.AreEqual(vectorSet,vectorSet2); + } + + [Test] + public void GetVector() + { + Assert.AreEqual(new Vector(1.0,2.0,3.0),vectorSet.GetVector(0)); + Assert.AreEqual(new Vector(4.0,5.0,6.0),vectorSet.GetVector(1)); + Assert.AreEqual(new Vector(7.0,8.0,9.0),vectorSet.GetVector(2)); + } + + [Test] + public void Count() + { + Assert.AreEqual(3,vectorSet.Count); + } + + [Test] + public void Equals() + { + Vector vector1 = new Vector(1.0,2.0,3.0); + Vector vector2 = new Vector(4.0,5.0,6.0); + Vector vector3 = new Vector(7.0,8.0,9.0); + + Vector[] data = {vector1,vector2,vector3}; + + VectorSet vectorSet2 = new VectorSet(data); + + Assert.IsTrue(vectorSet.Equals(vectorSet2)); + } + + [Test] + public void EqualsVector() + { + Vector vector1 = new Vector(1.0,2.0,3.0); + Vector vector2 = new Vector(4.0,6.0,6.0); + Vector vector3 = new Vector(7.0,8.0,9.0); + + Vector[] data = {vector1,vector2,vector3}; + + VectorSet vectorSet2 = new VectorSet(data); + + Assert.IsFalse(vectorSet.Equals(vectorSet2)); + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/VectorTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/VectorTest.cs new file mode 100644 index 00000000..957ca4e7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/VectorTest.cs @@ -0,0 +1,102 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class VectorTest + { + Vector vector; + [SetUp] + public void Init() + { + vector = new Vector(1.0,2.0,3.0); + } + + [Test] + public void Constructor() + { + Vector vector2 = new Vector(vector); + + Assert.AreEqual(vector,vector2); + } + + [Test] + public void Components() + { + Assert.AreEqual(1.0,vector.XComponent); + Assert.AreEqual(2.0,vector.YComponent); + Assert.AreEqual(3.0,vector.ZComponent); + + vector.XComponent = 4.0; + vector.YComponent = 5.0; + vector.ZComponent = 6.0; + + Assert.AreEqual(4.0,vector.XComponent); + Assert.AreEqual(5.0,vector.YComponent); + Assert.AreEqual(6.0,vector.ZComponent); + } + + [Test] + public void Equals() + { + Vector vector1 = new Vector(1.0,2.0,3.0); + Assert.IsTrue(vector.Equals(vector1)); + + Assert.IsFalse(vector.Equals(null)); + Assert.IsFalse(vector.Equals("string")); + } + + [Test] + public void EqualsX() + { + Vector vector1 = new Vector(1.1,2.0,3.0); + Assert.IsFalse(vector.Equals(vector1)); + } + + [Test] + public void EqualsY() + { + Vector vector1 = new Vector(1.0,2.1,3.0); + Assert.IsFalse(vector.Equals(vector1)); + } + + [Test] + public void EqualsZ() + { + Vector vector1 = new Vector(1.0,2.0,3.1); + Assert.IsFalse(vector.Equals(vector1)); + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/VertexTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/VertexTest.cs new file mode 100644 index 00000000..c1b7f7e5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/UnitTest/VertexTest.cs @@ -0,0 +1,97 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Backbone.UnitTest +{ + [TestFixture] + public class VertexTest + { + public VertexTest() + { + } + + [Test] + public void Constructor() + { + Vertex vertex = new Vertex(3.0,4.0,5.0); + Assert.AreEqual(3.0,vertex.x); + Assert.AreEqual(4.0,vertex.y); + Assert.AreEqual(5.0,vertex.z); + + Vertex vertex2 = new Vertex(vertex); + Assert.AreEqual(vertex,vertex2); + } + + [Test] + public void X() + { + Vertex vertex = new Vertex(); + vertex.x = 8.0; + Assert.AreEqual(8.0,vertex.x); + } + + [Test] + public void Y() + { + Vertex vertex = new Vertex(); + vertex.y = 8.0; + Assert.AreEqual(8.0,vertex.y); + } + + [Test] + public void Z() + { + Vertex vertex = new Vertex(); + vertex.z = 8.0; + Assert.AreEqual(8.0,vertex.z); + } + + [Test] + public void Equals() + { + Vertex vertex1 = new Vertex(2.0,3.0,4.0); + Vertex vertex2 = new Vertex(2.0,3.0,4.0); + Assert.IsTrue(vertex1.Equals(vertex2)); + vertex1.x = 1.0; + Assert.IsFalse(vertex1.Equals(vertex2)); + vertex1.x = 2.0; + vertex1.y = 2.0; + Assert.IsFalse(vertex1.Equals(vertex2)); + vertex1.y = 3.0; + vertex1.z = 5.0; + Assert.IsFalse(vertex1.Equals(vertex2)); + Assert.IsFalse(vertex1.Equals(null)); + Assert.IsFalse(vertex1.Equals("string")); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Vector.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Vector.cs new file mode 100644 index 00000000..8b16100a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Vector.cs @@ -0,0 +1,140 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// The Vector class contains x,y,z components. + /// This is a trivial implementation of OpenMI.Standard.IVector, refer there for further details. + /// + [Serializable] + public class Vector : IVector + { + + private double _x; + private double _y; + private double _z; + + /// + /// Constructor + /// + public Vector() + { + } + + /// + /// Copy constructor + /// + /// The vector to copy + public Vector(IVector source) + { + XComponent = source.XComponent; + YComponent = source.YComponent; + ZComponent = source.ZComponent; + } + + /// + /// Constructor + /// + /// x value + /// y value + /// z value + public Vector (double x, double y, double z) + { + _x = x; + _y = y; + _z = z; + } + + /// + /// Getter and setter for x component + /// + public double XComponent + { + get {return _x;} + set + { + _x = value; + } + } + + /// + /// Getter and setter for y component + /// + public double YComponent + { + get {return _y;} + set + { + _y = value; + } + } + + /// + /// Getter and setter for z component + /// + public double ZComponent + { + get {return _z;} + set + { + _z = value; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Vector v = (Vector) obj; + return (_x==v._x&&_y==v._y&&_z==v._z); + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + return _x.GetHashCode() + + _y.GetHashCode() + + _z.GetHashCode(); + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/VectorSet.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/VectorSet.cs new file mode 100644 index 00000000..e599eb91 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/VectorSet.cs @@ -0,0 +1,144 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + + /// + /// The VectorSet class contains a list of vectors. + /// This is a trivial implementation of OpenMI.Standard.IVectorSet, refer there for further details. + /// + [Serializable] + public class VectorSet : IVectorSet + { + + Vector[] _values; + + /// + /// Constructor + /// + public VectorSet() + { + _values = new Vector[0]; + } + + /// + /// Constructor + /// + /// List of vectors + public VectorSet(Vector[] Values) + { + _values = Values; + } + + /// + /// Copy constructor + /// + /// The VectorSet to copy + public VectorSet(IVectorSet source) + { + _values = new Vector[source.Count]; + for (int i=0;i + /// Returns if a element is valid + /// + /// Element index + /// True if the element is valid + public virtual bool IsValid(int elementIndex) + { + return true; + } + + /// + /// Gets a vector with a given index + /// + /// Index + /// The vector + public IVector GetVector(int index) + { + return _values[index]; + } + + /// + /// The number of elements in the list + /// + public int Count + { + get + { + return _values.Length; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj is VectorSet) + { + VectorSet sourceSet = (VectorSet)obj; + if (sourceSet.Count!=Count) + return false; + for (int i=0;i + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + int hashCode = base.GetHashCode(); + if (_values != null) hashCode += _values.GetHashCode(); + return hashCode; + } + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Vertex.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Vertex.cs new file mode 100644 index 00000000..b8607f57 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Backbone/Vertex.cs @@ -0,0 +1,148 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; + +namespace Oatc.OpenMI.Sdk.Backbone +{ + /// + /// The Vertex class contains a (x,y,z) coordinate + /// + [Serializable] + public class Vertex + { + private double _x,_y,_z; + + /// + /// Constructor + /// + public Vertex() + { + } + + /// + /// Constructor + /// + /// X coordinate + /// Y coordinate + /// Z coordinate + public Vertex(double x,double y,double z) + { + _x = x; + _y = y; + _z = z; + } + + /// + /// Copy constructor + /// + /// The vertex to copy + public Vertex(Vertex source) + { + x = source.x; + y = source.y; + z = source.z; + } + + /// + /// Getter and setter for X coordinate + /// + public double x + { + get + { + return _x; + } + set + { + _x = value; + } + } + + /// + /// Getter and setter for X coordinate + /// + public double y + { + get + { + return _y; + } + set + { + _y = value; + } + } + + /// + /// Getter and setter for X coordinate + /// + public double z + { + get + { + return _z; + } + set + { + _z = value; + } + } + + /// + /// Check if the current instance equals another instance of this class. + /// + ///The instance to compare the current instance with. + ///true if the instances are the same instance or have the same content. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + Vertex v = (Vertex)obj; + return (x == v.x && y == v.y && z == v.z); + } + + /// + /// Get Hash Code. + /// + ///Hash Code for the current instance. + public override int GetHashCode() + { + return _x.GetHashCode() + _y.GetHashCode() + _z.GetHashCode(); + } + + /// + /// String representation of the vertext + /// + /// + public override string ToString() + { + return string.Format("Vertex{0},{1},{2}", _x, _y, _z); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/AssemblyInfo.cs new file mode 100644 index 00000000..4a9c8214 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Utilities Buffer Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4")] +[assembly: AssemblyCopyright("BSD License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/Oatc.OpenMI.Sdk.Buffer.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/Oatc.OpenMI.Sdk.Buffer.csproj new file mode 100644 index 00000000..a3b9582c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/Oatc.OpenMI.Sdk.Buffer.csproj @@ -0,0 +1,117 @@ + + + + Local + 8.0.50727 + 2.0 + {C9844E74-074D-46FA-AEF6-371B3481468B} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Buffer + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Buffer + OnBuildSuccess + + + + + + + false + 3.5 + v2.0 + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + bin\Release\Oatc.OpenMI.Sdk.Buffer.XML + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/SmartBuffer.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/SmartBuffer.cs new file mode 100644 index 00000000..d59a08e4 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/SmartBuffer.cs @@ -0,0 +1,1306 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Buffer +{ + /// + /// The SmartBuffer class provides bufferig functionality that will store values needed for a + /// particular link in memory and functionality that will interpolate, extrapolate and aggregate + /// values from these values. + /// + [Serializable] + public class SmartBuffer + { + ArrayList _times; + ArrayList _values; + double _relaxationFactor; //Used for the extrapolation algorithm see also RelaxationFactor property + bool _doExtendedDataVerification; + + /// + /// Short description of the SmartBuffer + /// + /// + ///The content of the SmartBuffer is lists of corresponding times and ValueSets, + ///where times can be TimeStamps or TimeSpans and the ValueSets can be ScalarSets or VectorSets. + ///Or in other words the content of the SmartBuffer is corresponding ScalarSets and TimeStamps, or ScalarSets and TimeSpans, or VectorSets and TimeStamps, or VectorSets and TimeSpans. + /// + ///SmartBuffer objects may not contain mixtures of TimeSpans and TimeStamps and may not contain mixtures of ScalarSets and VectorSets. + ///The number of Times (TimeSpans or TimeStamps) must equal the number of ValueSets ( ScalarSets or VectorSets) in the SmartBuffer. + /// + public SmartBuffer() + { + Create(); + } + + /// + /// Create a new SmartBuffer with values and times copied from another SmartBuffer + /// + /// The SmartBuffer to copy + public SmartBuffer(SmartBuffer smartBuffer) + { + Create(); + + if (smartBuffer.TimesCount > 0) + { + if (smartBuffer.GetTimeAt(0) is ITimeStamp && smartBuffer.GetValuesAt(0) is IScalarSet) + { + for (int i = 0; i < smartBuffer.TimesCount; i++) + { + AddValues(new TimeStamp((ITimeStamp) smartBuffer.GetTimeAt(i)),new ScalarSet((IScalarSet) smartBuffer.GetValuesAt(i))); + } + } + + if (smartBuffer.GetTimeAt(0) is ITimeStamp && smartBuffer.GetValuesAt(0) is IVectorSet) + { + for (int i = 0; i < smartBuffer.TimesCount; i++) + { + AddValues(new TimeStamp((ITimeStamp)smartBuffer.GetTimeAt(i)),new VectorSet((IVectorSet)smartBuffer.GetValuesAt(i))); + } + } + + if (smartBuffer.GetTimeAt(0) is ITimeSpan && smartBuffer.GetValuesAt(0) is IScalarSet) + { + for (int i = 0; i < smartBuffer.TimesCount; i++) + { + AddValues(new Backbone.TimeSpan((ITimeSpan)smartBuffer.GetTimeAt(i)),new ScalarSet((IScalarSet)smartBuffer.GetValuesAt(i))); + } + } + + if (smartBuffer.GetTimeAt(0) is ITimeSpan && smartBuffer.GetValuesAt(0) is IVectorSet) + { + for (int i = 0; i < smartBuffer.TimesCount; i++) + { + AddValues(new Backbone.TimeSpan((ITimeSpan)smartBuffer.GetTimeAt(i)),new VectorSet((IVectorSet)smartBuffer.GetValuesAt(i))); + } + } + + + } + + } + + private void Create() + { + _times = new ArrayList(); + _values = new ArrayList(); + _doExtendedDataVerification = true; + _relaxationFactor = 1.0; + } + + /// + /// Add corresponding values for time and values to the SmartBuffer. + /// + /// Description of the time parameter + /// Description of the values parameter + /// + /// The AddValues method will internally make a copy of the added times and values. The reason for + /// doing this is that the times and values arguments are references, and the correspondign values + /// could be changed by the owner of the classes + /// + public void AddValues(ITime time, IValueSet valueSet) + { + if (time is ITimeStamp) + { + _times.Add(new TimeStamp( ((ITimeStamp) time).ModifiedJulianDay )); + } + else if(time is ITimeSpan) + { + TimeStamp newStartTime = new TimeStamp(((ITimeSpan) time).Start.ModifiedJulianDay); + TimeStamp newEndTime = new TimeStamp(((ITimeSpan) time).End.ModifiedJulianDay); + + Backbone.TimeSpan newTimeSpan = new Backbone.TimeSpan(newStartTime, newEndTime); + _times.Add(newTimeSpan); + } + else + { + throw new Exception("Invalid datatype used for time argument in method AddValues"); + } + + if (valueSet is IScalarSet) + { + double[] x = new double[(valueSet).Count]; + for (int i = 0; i < x.Length; i++) + { + x[i] = ((IScalarSet) valueSet).GetScalar(i); + } + + ScalarSet newScalarSet = new ScalarSet(x); + + if (valueSet is ScalarSet) + { + newScalarSet.MissingValueDefinition = + ((ScalarSet)valueSet).MissingValueDefinition; + newScalarSet.CompareDoublesEpsilon = + ((ScalarSet)valueSet).CompareDoublesEpsilon; + } + + _values.Add(newScalarSet); + } + else if (valueSet is IVectorSet) + { + Vector[] vectors = new Vector[valueSet.Count]; + for (int i = 0; i < vectors.Length; i++) + { + vectors[i] = new Vector(((IVectorSet) valueSet).GetVector(i).XComponent, ((IVectorSet) valueSet).GetVector(i).YComponent, ((IVectorSet) valueSet).GetVector(i).ZComponent); + } + VectorSet newVectorSet = new VectorSet(vectors); + _values.Add(newVectorSet); + } + else + { + throw new Exception("Invalid datatype used for values argument in method AddValues"); + } + + if (_doExtendedDataVerification) + { + CheckBuffer(); + } + } + + /// + /// RelaxationFactor. The relaxation factor must be in the interval [0; 1]. The relaxation + /// parameter is used when doing extrapolation. A value of 1 results in nearest extrapolation + /// whereas a value 0 results in linear extrapolation. + /// + public double RelaxationFactor + { + get + { + return _relaxationFactor; + } + set + { + _relaxationFactor = value; + if (_relaxationFactor < 0 || _relaxationFactor > 1) + { + throw new Exception("ReleaxationFactor is out of range"); + } + } + } + + /// + /// Returns the timeStepth ITime. + /// + /// time step index + /// The timeStepth ITime + public ITime GetTimeAt(int timeStep) + { + if (_doExtendedDataVerification) + { + CheckBuffer(); + } + return (ITime) _times[timeStep]; + } + + //=============================================================================================== + // GetValuesAt(int timeStep) : IValueSet + //=============================================================================================== + /// + /// Returns the timeStepth IValueSet + /// + /// time step index + /// The timeStepth IValueSet + public IValueSet GetValuesAt(int timeStep) + { + if (_doExtendedDataVerification) + { + CheckBuffer(); + } + return (IValueSet) _values[timeStep]; + } + + /// + /// Returns the ValueSet that corresponds to requestTime. The ValueSet may be found by + /// interpolation, extrapolation and/or aggregation. + /// + /// time for which the value is requested + /// valueSet that corresponds to requestTime + public IValueSet GetValues(ITime requestedTime) + { + if (_doExtendedDataVerification) + { + CheckTime(requestedTime); + CheckBuffer(); + } + IValueSet returnValueSet; + if (_values.Count == 0) + { + returnValueSet = new ScalarSet(); + } + else if (_values.Count == 1) + { + returnValueSet = MakeCopyOfValues(); + } + else if (requestedTime is ITimeStamp && _times[0] is ITimeStamp) + { + returnValueSet = MapFromTimeStampsToTimeStamp((ITimeStamp) requestedTime); + } + else if (requestedTime is ITimeSpan && _times[0] is ITimeSpan) + { + returnValueSet = MapFromTimeSpansToTimeSpan((ITimeSpan) requestedTime); + } + else if (requestedTime is ITimeSpan && _times[0] is ITimeStamp) + { + returnValueSet = MapFromTimeStampsToTimeSpan((ITimeSpan) requestedTime); + } + else if (requestedTime is ITimeStamp && _times[0] is ITimeSpan) + { + returnValueSet = MapFromTimeSpansToTimeStamp((ITimeStamp) requestedTime); + } + else + { + throw new Exception("Requested TimeMapping not available in SmartWrapper Class"); + } + return returnValueSet; + } + + /// + /// A ValueSet corresponding to a TimeSpan is calculated using interpolation or + /// extrapolation in corresponding lists of ValueSets and TimeSpans. + /// + /// Time for which the ValueSet is requested + /// ValueSet that corresponds to requestedTime + private IValueSet MapFromTimeSpansToTimeSpan(ITimeSpan requestedTime) + + { + try + { + int m = ((IValueSet)_values[0]).Count; + double[][] xr = new double[m][]; // Values to return + double trb = requestedTime.Start.ModifiedJulianDay; // Begin time in requester time interval + double tre = requestedTime.End.ModifiedJulianDay; // End time in requester time interval + + int nk; // number of components (scalars has only 1 and vectors has 3 (3 axis)) + + if (_values[0] is IVectorSet) + { + nk = 3; + } + else + { + nk = 1; + } + + for (int i = 0; i < m; i++) + { + xr[i] = new double[nk]; + } + + for (int i = 0; i < m; i++) + { + for (int k = 0; k < nk; k++) + { + xr[i][k] = 0; + } + } + + for (int n = 0; n < _times.Count; n++) + { + double tbbn = ((ITimeSpan) _times[n]).Start.ModifiedJulianDay; + double tben = ((ITimeSpan) _times[n]).End.ModifiedJulianDay; + + //--------------------------------------------------------------------------- + // B: <--------------------------> + // R: <-------------------------------------> + // -------------------------------------------------------------------------- + if (trb <= tbbn && tre >= tben ) //Buffered TimeSpan fully included in requested TimeSpan + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + double sbin = Support.GetVal((IValueSet)_values[n], i, k); + xr[i][k-1] += sbin * (tben - tbbn)/(tre - trb); + } + } + } + + //--------------------------------------------------------------------------- + // Times[i] Interval: t1|-----------------------|t2 + // Requested Interval: rt1|--------------|rt2 + // -------------------------------------------------------------------------- + else if (tbbn <= trb && tre <= tben) //cover all + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + xr[i][k-1] += Support.GetVal((IValueSet)_values[n], i, k); + } + } + } + + //--------------------------------------------------------------------------- + // Times[i] Interval: t1|-----------------|t2 + // Requested Interval: rt1|--------------|rt2 + // -------------------------------------------------------------------------- + else if (tbbn < trb && trb < tben && tre > tben) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + double sbin = Support.GetVal((IValueSet)_values[n], i, k); + xr[i][k-1] += sbin * (tben - trb)/(tre - trb); + } + } + } + + //--------------------------------------------------------------------------- + // Times[i] Interval: t1|-----------------|t2 + // Requested Interval: rt1|--------------|rt2 + // -------------------------------------------------------------------------- + else if (trb < tbbn && tre > tbbn && tre < tben) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + double sbin = Support.GetVal((IValueSet)_values[n], i, k); + xr[i][k-1] += sbin * (tre - tbbn)/(tre - trb); + } + } + } + } + + //-------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //--------------------------------------------------------------------------- + double tbb0 = ((ITimeSpan) _times[0]).Start.ModifiedJulianDay; + double tbe0 = ((ITimeSpan) _times[0]).End.ModifiedJulianDay; + //double tbb1 = ((ITimeSpan) _times[1]).Start.ModifiedJulianDay; + double tbe1 = ((ITimeSpan) _times[1]).End.ModifiedJulianDay; + + if (trb < tbb0 && tre > tbb0) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbi0 = Support.GetVal((IValueSet)_values[0], i, k); + double sbi1 = Support.GetVal((IValueSet)_values[1], i, k); + xr[i][k-1] += ((tbb0 - trb)/(tre - trb)) * (sbi0 - (1 - _relaxationFactor) * ((tbb0 - trb)*(sbi1 - sbi0)/(tbe1 - tbe0))); + } + } + } + + //------------------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //------------------------------------------------------------------------------------- + + double tbeN_1 = ((ITimeSpan) _times[_times.Count-1]).End.ModifiedJulianDay; + double tbbN_2 = ((ITimeSpan) _times[_times.Count-2]).Start.ModifiedJulianDay; + + if (tre > tbeN_1 && trb < tbeN_1) + { + //double tbeN_2 = ((ITimeSpan) _times[_times.Count-2]).End.ModifiedJulianDay; + double tbbN_1 = ((ITimeSpan) _times[_times.Count-1]).Start.ModifiedJulianDay; + + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbiN_1 = Support.GetVal((IValueSet)_values[_times.Count-1], i, k); + double sbiN_2 = Support.GetVal((IValueSet)_values[_times.Count-2], i,k); + xr[i][k-1] += ((tre - tbeN_1)/(tre - trb)) * (sbiN_1 + (1 - _relaxationFactor) * ((tre - tbbN_1)*(sbiN_1 - sbiN_2)/(tbeN_1 - tbbN_2))); + } + } + } + //------------------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //------------------------------------------------------------------------------------- + + if (trb >= tbeN_1) + { + double tbeN_2 = ((ITimeSpan) _times[_times.Count-2]).End.ModifiedJulianDay; + //double tbbN_1 = ((ITimeSpan) _times[_times.Count-1]).Start.ModifiedJulianDay; + + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbiN_1 = Support.GetVal((IValueSet)_values[_times.Count-1], i, k); + double sbiN_2 = Support.GetVal((IValueSet)_values[_times.Count-2], i, k); + xr[i][k-1] = sbiN_1 + (1 - _relaxationFactor) * ((sbiN_1 - sbiN_2)/(tbeN_1 - tbbN_2)) * (trb + tre - tbeN_1 - tbeN_2); + } + } + } + + //------------------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //------------------------------------------------------------------------------------- + + if (tre <= tbb0) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbi0 = Support.GetVal((IValueSet)_values[0], i, k); + double sbi1 = Support.GetVal((IValueSet)_values[1], i, k); + xr[i][k-1] = sbi0 - (1 - _relaxationFactor) * ((sbi1 - sbi0)/(tbe1- tbb0))*(tbe0 + tbb0 - tre - trb); + } + } + } + + //------------------------------------------------------------------------------------- + if (_values[0] is IVectorSet) + { + Vector [] vectors = new Vector[m]; + + for (int i = 0; i < m; i++) + { + vectors[i] = new Vector(xr[i][0],xr[i][1],xr[i][2]); + } + + VectorSet vectorSet = new VectorSet(vectors); + + return vectorSet; + } + else + { + double[] xx = new double[m]; + + for (int i = 0; i < m; i++) + { + xx[i] = xr[i][0]; + } + + ScalarSet scalarSet = new ScalarSet(xx); + + return scalarSet; + } + } + catch (Exception e) + { + throw new Exception("MapFromTimeSpansToTimeSpan Failed",e); + } + } + + /// + /// A ValueSet corresponding to a TimeSpan is calculated using interpolation or + /// extrapolation in corresponding lists of ValueSets and TimeStamps. + /// + /// Time for which the ValueSet is requested + /// ValueSet that corresponds to requestedTime + private IValueSet MapFromTimeStampsToTimeSpan(ITimeSpan requestedTime) + { + try + { + int m = ((IValueSet)_values[0]).Count; + //int N = _times.Count; // Number of time steps in buffer + double[][] xr = new double[m][]; // Values to return + double trb = requestedTime.Start.ModifiedJulianDay; // Begin time in requester time interval + double tre = requestedTime.End.ModifiedJulianDay; // End time in requester time interval + + int nk; // number of components (scalars has only 1 and vectors has 3 (3 axis)) + + if (_values[0] is IVectorSet) + { + nk = 3; + } + else + { + nk = 1; + } + + for (int i = 0; i < m; i++) + { + xr[i] = new double[nk]; + } + + for (int i = 0; i < m; i++) + { + for (int k = 0; k < nk; k++) + { + xr[i][k] = 0; + } + } + + + for (int n = 0; n < _times.Count-1; n++) + { + double tbn = ((ITimeStamp) _times[n]).ModifiedJulianDay; + double tbnp1 = ((ITimeStamp) _times[n+1]).ModifiedJulianDay; + + + //--------------------------------------------------------------------------- + // B: <--------------------------> + // R: <-------------------------------------> + // -------------------------------------------------------------------------- + if (trb <= tbn && tre >= tbnp1 ) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + double sbin = Support.GetVal((IValueSet)_values[n], i, k); + double sbinp1 = Support.GetVal((IValueSet)_values[n+1], i, k); + xr[i][k-1] += 0.5 * (sbin + sbinp1) * (tbnp1 - tbn)/(tre - trb); + } + } + } + + //--------------------------------------------------------------------------- + // Times[i] Interval: t1|-----------------------|t2 + // Requested Interval: rt1|--------------|rt2 + // -------------------------------------------------------------------------- + else if (tbn <= trb && tre <= tbnp1) //cover all + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + double sbin = Support.GetVal((IValueSet)_values[n], i, k); + double sbinp1 = Support.GetVal((IValueSet)_values[n+1], i, k); + xr[i][k-1] += sbin + ((sbinp1 - sbin)/(tbnp1 - tbn))*((tre + trb)/2 - tbn); + } + } + } + + //--------------------------------------------------------------------------- + // Times[i] Interval: t1|-----------------|t2 + // Requested Interval: rt1|--------------|rt2 + // -------------------------------------------------------------------------- + else if (tbn < trb && trb < tbnp1 && tre > tbnp1) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + double sbin = Support.GetVal((IValueSet)_values[n], i, k); + double sbinp1 = Support.GetVal((IValueSet)_values[n+1], i, k); + xr[i][k-1] += (sbinp1 - (sbinp1 - sbin)/(tbnp1 - tbn)*((tbnp1 - trb)/2))* (tbnp1 - trb)/(tre - trb); + } + } + } + + //--------------------------------------------------------------------------- + // Times[i] Interval: t1|-----------------|t2 + // Requested Interval: rt1|--------------|rt2 + // -------------------------------------------------------------------------- + else if (trb < tbn && tre > tbn && tre < tbnp1) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + double sbin = Support.GetVal((IValueSet)_values[n], i, k); + double sbinp1 = Support.GetVal((IValueSet)_values[n+1], i, k); + xr[i][k-1] += (sbin + (sbinp1 - sbin)/(tbnp1 - tbn)*((tre - tbn)/2)) * (tre - tbn)/(tre - trb); + } + } + } + } + //-------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //--------------------------------------------------------------------------- + double tb0 = ((ITimeStamp) _times[0]).ModifiedJulianDay; + //double tb1 = ((ITimeStamp) _times[0]).ModifiedJulianDay; + double tb1 = ((ITimeStamp) _times[1]).ModifiedJulianDay; // line above was corrected to this Gregersen Sep 15 2004 + double tbN_1 = ((ITimeStamp) _times[_times.Count-1]).ModifiedJulianDay; + double tbN_2 = ((ITimeStamp) _times[_times.Count-2]).ModifiedJulianDay; + + if (trb < tb0 && tre > tb0) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbi0 = Support.GetVal((IValueSet)_values[0], i, k); + double sbi1 = Support.GetVal((IValueSet)_values[1], i, k); + xr[i][k-1] += ((tb0 - trb)/(tre - trb)) * (sbi0 - (1 - _relaxationFactor) * 0.5 * ((tb0 - trb)*(sbi1 - sbi0)/(tb1 - tb0))); + } + } + } + //------------------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //------------------------------------------------------------------------------------- + if (tre > tbN_1 && trb < tbN_1) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbiN_1 = Support.GetVal((IValueSet)_values[_times.Count-1], i, k); + double sbiN_2 = Support.GetVal((IValueSet)_values[_times.Count-2], i, k); + xr[i][k-1] += ((tre - tbN_1)/(tre - trb)) * (sbiN_1 + (1 - _relaxationFactor) * 0.5 * ((tre - tbN_1)*(sbiN_1 - sbiN_2)/(tbN_1 - tbN_2))); + } + } + } + //------------------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //------------------------------------------------------------------------------------- + if (trb >= tbN_1) + { + + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbiN_1 = Support.GetVal((IValueSet)_values[_times.Count-1], i, k); + double sbiN_2 = Support.GetVal((IValueSet)_values[_times.Count-2], i, k); + + xr[i][k-1] = sbiN_1 + (1 - _relaxationFactor) * ((sbiN_1 - sbiN_2)/(tbN_1 - tbN_2)) * ( 0.5 * (trb + tre) - tbN_1); + } + } + } + //------------------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //------------------------------------------------------------------------------------- + if (tre <= tb0) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbi0 = Support.GetVal((IValueSet)_values[0], i, k); + double sbi1 = Support.GetVal((IValueSet)_values[1], i, k); + xr[i][k-1] = sbi0 - (1 - _relaxationFactor) * ((sbi1 - sbi0)/(tb1- tb0))*(tb0 - 0.5 * (trb + tre)); + } + } + } + //------------------------------------------------------------------------------------- + if (_values[0] is IVectorSet) + { + Vector [] vectors = new Vector[m]; + + for (int i = 0; i < m; i++) + { + vectors[i] = new Vector(xr[i][0],xr[i][1],xr[i][2]); + } + + VectorSet vectorSet = new VectorSet(vectors); + + return vectorSet; + } + else + { + double[] xx = new double[m]; + + for (int i = 0; i < m; i++) + { + xx[i] = xr[i][0]; + } + + ScalarSet scalarSet = new ScalarSet(xx); + + return scalarSet; + } + } + catch (Exception e) + { + throw new Exception("MapFromTimeStampsToTimeSpan Failed",e); + } + } + + + /// + /// Makes a copy of the first ValueSet in the list of valueSets + /// + /// + private IValueSet MakeCopyOfValues() + { + + if (_values[0] is IScalarSet) + { + int NumberOfScalarsInEachScalarSet = ((IScalarSet) _values[0]).Count; + double[] x = new Double[NumberOfScalarsInEachScalarSet]; + for (int i = 0; i < NumberOfScalarsInEachScalarSet; i++) + { + x[i] = ((IScalarSet) _values[0]).GetScalar(i); + } + ScalarSet scalarSet = new ScalarSet(x); + return scalarSet; + } + + else // _values[0] is VectorSet + { + + int NumberOfVectorsInEachVectorSet = ((IVectorSet) _values[0]).Count; + + Vector[] vectors = new Vector[NumberOfVectorsInEachVectorSet]; + + for (int i = 0; i < NumberOfVectorsInEachVectorSet; i++) + { + Vector vector; + double x = ((IVectorSet)_values[0]).GetVector(i).XComponent; + double y = ((IVectorSet) _values[0]).GetVector(i).YComponent; + double z = ((IVectorSet) _values[0]).GetVector(i).ZComponent; + vector = new Vector(x, y, z); + vectors[i] = vector; + + } + VectorSet vectorSet = new VectorSet(vectors); + + return vectorSet; + } + } + + /// + /// A ValueSet corresponding to a TimeStamp is calculated using interpolation or + /// extrapolation in corresponding lists of ValueSets and TimeStamps. + /// + /// TimeStamp for which the values are requested + /// ValueSet that corresponds to the requested time stamp + private IValueSet MapFromTimeStampsToTimeStamp(ITimeStamp requestedTimeStamp) + { + try + { + int m = ((IValueSet)_values[0]).Count; + double[][] xr = new double[m][]; // Values to return + double tr = requestedTimeStamp.ModifiedJulianDay; // Requested TimeStamp + + int nk; // number of components (scalars has only 1 and vectors has 3 (3 axis)) + + if (_values[0] is IVectorSet) + { + nk = 3; + } + else + { + nk = 1; + } + + for (int i = 0; i < m; i++) + { + xr[i] = new double[nk]; + } + + //--------------------------------------------------------------------------- + // Buffered TimesStamps: | >tb0< >tb1< >tb2< >tbN< + // Requested TimeStamp: | >tr< + // -----------------------------------------> t + // -------------------------------------------------------------------------- + if (tr <= ((ITimeStamp)_times[0]).ModifiedJulianDay ) + { + double tb0 = ((ITimeStamp) _times[0]).ModifiedJulianDay; + double tb1 = ((ITimeStamp) _times[1]).ModifiedJulianDay; + + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m ; i++) //For each Vector in buffered VectorSet [0] + { + double sbi0 = Support.GetVal((IValueSet)_values[0], i, k); + double sbi1 = Support.GetVal((IValueSet)_values[1], i, k); + xr[i][k-1] = ((sbi0 - sbi1)/(tb0 - tb1))*(tr - tb0) * (1 - _relaxationFactor) + sbi0; + } + } + } + + //--------------------------------------------------------------------------- + // Buffered TimesStamps: | >tb0< >tb1< >tb2< >tbN_2< >tbN_1< + // Requested TimeStamp: | >tr< + // ---------------------------------------------------> t + // -------------------------------------------------------------------------- + else if (tr > ((ITimeStamp) _times[_times.Count - 1]).ModifiedJulianDay) + { + double tbN_2 = ((ITimeStamp) _times[_times.Count - 2]).ModifiedJulianDay; + double tbN_1 = ((ITimeStamp) _times[_times.Count - 1]).ModifiedJulianDay; + + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) //For each Vector in buffered VectorSet [N-1] + { + double sbiN_2 = Support.GetVal((IValueSet)_values[_times.Count-2], i, k); + double sbiN_1 = Support.GetVal((IValueSet)_values[_times.Count-1], i, k); + + xr[i][k-1] = ((sbiN_1 - sbiN_2)/(tbN_1 - tbN_2))*(tr - tbN_1)*(1 - _relaxationFactor) + sbiN_1; + } + } + } + + //--------------------------------------------------------------------------- + // Availeble TimesStamps: | >tb0< >tb1< >tbna< >tnb< >tbN_1< >tbN_2< + // Requested TimeStamp: | >tr< + // -------------------------------------------------> t + // -------------------------------------------------------------------------- + else + { + for (int n = _times.Count - 2; n >= 0 ; n--) + { + double tbn1 = ((ITimeStamp) _times[n]).ModifiedJulianDay; + double tbn2 = ((ITimeStamp) _times[n+1]).ModifiedJulianDay; + + if ( tbn1 <= tr && tr <= tbn2) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) //For each Vector in buffered VectorSet [n] + { + IValueSet valueSet_n = (IValueSet)_values[n]; + double sbin1 = Support.GetVal(valueSet_n, i, k); + + IValueSet valueSet_nPlus1 = (IValueSet)_values[n+1]; + double sbin2 = Support.GetVal(valueSet_nPlus1, i, k);; + + //BROKEN: + if ( valueSet_n.IsValid(i) && valueSet_nPlus1.IsValid(i)) + { + xr[i][k - 1] = ((sbin2 - sbin1) / (tbn2 - tbn1)) * (tr - tbn1) * (1 - _relaxationFactor) + sbin1; + } + else if ( valueSet_n.IsValid(i) ) + { + xr[i][k-1] = sbin1; + } + else if ( valueSet_nPlus1.IsValid(i) ) + { + xr[i][k-1] = sbin2; + } + else + { + // both invalid, set to one of the (==invalid) values + xr[i][k-1] = sbin1; + } + } + } + break; + } + } + } + //---------------------------------------------------------------------------------------------- + if (_values[0] is IVectorSet) + { + Vector [] vectors = new Vector[m]; + + for (int i = 0; i < m; i++) + { + vectors[i] = new Vector(xr[i][0],xr[i][1],xr[i][2]); + } + + VectorSet vectorSet = new VectorSet(vectors); + + return vectorSet; + } + else + { + double[] xx = new double[m]; + + for (int i = 0; i < m; i++) + { + xx[i] = xr[i][0]; + } + + ScalarSet scalarSet = new ScalarSet(xx); + + return scalarSet; + } + } + catch (Exception e) + { + throw new Exception("MapFromTimeStampsToTimeStamp Failed",e); + } + } + + /// + /// A ValueSet corresponding to a TimeSpan is calculated using interpolation or + /// extrapolation in corresponding lists of ValueSets and TimeSpans. + /// + /// Time for which the ValueSet is requested + /// ValueSet that corresponds to requestedTime + private IValueSet MapFromTimeSpansToTimeStamp(ITimeStamp requestedTimeStamp) + { + try + { + int m = ((IValueSet)_values[0]).Count; + double[][] xr = new double[m][]; // Values to return + double tr = requestedTimeStamp.ModifiedJulianDay; // Requested TimeStamp + + int nk; // number of components (scalars has only 1 and vectors has 3 (3 axis)) + + if (_values[0] is IVectorSet) + { + nk = 3; + } + else + { + nk = 1; + } + + for (int i = 0; i < m; i++) + { + xr[i] = new double[nk]; + } + + //--------------------------------------------------------------------------- + // Buffered TimesSpans: | >tbb0< .......... >tbbN< + // Requested TimeStamp: | >tr< + // -----------------------------------------> t + // -------------------------------------------------------------------------- + if (tr <= ((ITimeSpan)_times[0]).Start.ModifiedJulianDay ) + { + double tbb0 = ((ITimeSpan) _times[0]).Start.ModifiedJulianDay; + double tbb1 = ((ITimeSpan) _times[1]).Start.ModifiedJulianDay; + + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m ; i++) //For each Vector in buffered VectorSet [0] + { + double sbi0 = Support.GetVal((IValueSet)_values[0], i, k); + double sbi1 = Support.GetVal((IValueSet)_values[1], i, k); + xr[i][k-1] = ((sbi0 - sbi1)/(tbb0 - tbb1))*(tr - tbb0) * (1 - _relaxationFactor) + sbi0; + } + } + } + + //--------------------------------------------------------------------------- + // Buffered TimesSpans: | >tbb0< ................. >tbbN_1< + // Requested TimeStamp: | >tr< + // ---------------------------------------------------> t + // -------------------------------------------------------------------------- + else if (tr >= ((ITimeSpan) _times[_times.Count - 1]).End.ModifiedJulianDay) + { + double tbeN_2 = ((ITimeSpan) _times[_times.Count - 2]).End.ModifiedJulianDay; + double tbeN_1 = ((ITimeSpan) _times[_times.Count - 1]).End.ModifiedJulianDay; + + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) //For each Vector in buffered VectorSet [N-1] + { + double sbiN_2 = Support.GetVal((IValueSet)_values[_times.Count-2], i, k); + double sbiN_1 = Support.GetVal((IValueSet)_values[_times.Count-1], i, k); + + xr[i][k-1] = ((sbiN_1 - sbiN_2)/(tbeN_1 - tbeN_2))*(tr - tbeN_1)*(1 - _relaxationFactor) + sbiN_1; + } + } + } + + //--------------------------------------------------------------------------- + // Availeble TimesSpans: | >tbb0< ...................... >tbbN_1< + // Requested TimeStamp: | >tr< + // -------------------------------------------------> t + // -------------------------------------------------------------------------- + else + { + for (int n = _times.Count - 1; n >= 0 ; n--) + { + double tbbn = ((ITimeSpan) _times[n]).Start.ModifiedJulianDay; + double tben = ((ITimeSpan) _times[n]).End.ModifiedJulianDay; + + if ( tbbn <= tr && tr < tben) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) //For each Vector in buffered VectorSet [n] + { + xr[i][k-1] = Support.GetVal((IValueSet)_values[n], i, k); + } + } + break; + } + } + } + + //---------------------------------------------------------------------------------------------- + + + if (_values[0] is IVectorSet) + { + Vector [] vectors = new Vector[m]; + + for (int i = 0; i < m; i++) + { + vectors[i] = new Vector(xr[i][0],xr[i][1],xr[i][2]); + } + + VectorSet vectorSet = new VectorSet(vectors); + + return vectorSet; + } + else + { + double[] xx = new double[m]; + + for (int i = 0; i < m; i++) + { + xx[i] = xr[i][0]; + } + + ScalarSet scalarSet = new ScalarSet(xx); + + return scalarSet; + } + } + catch (Exception e) + { + throw new Exception("MapFromTimeSpansToTimeStamp Failed",e); + } + } + + /// + /// Number of time streps in the buffer. + /// + public int TimesCount + { + get + { + return _times.Count; + } + } + + /// + /// Read only property for the number of values in each of the valuesets contained in the buffer. + /// + public int ValuesCount + { + get + { + return ((IValueSet) _values[0]).Count; + } + } + + /// + /// Checks weather the contents of the buffer is valid. + /// + public void CheckBuffer() + { + if(_times.Count != _values.Count) + { + throw new Exception("Different numbers of values and times in buffer"); + } + + if(_times.Count == 0) + { + throw new Exception("Buffer is empty"); + } + + for (int i = 0; i < _times.Count; i++) + { + if (!(_times[i] is ITimeSpan || _times[i] is ITimeStamp)) + { + throw new Exception("Illegal data type for time in buffer"); + } + } + + for (int i = 0; i < _values.Count; i++) + { + if (!(_values[i] is IScalarSet || _values[i] is IVectorSet)) + { + throw new Exception("Illegal data type for values in buffer"); + } + } + + if (_times[0] is ITimeSpan) + { + foreach ( ITimeSpan t in _times) + { + if (t.Start.ModifiedJulianDay >= t.End.ModifiedJulianDay) + { + throw new Exception("BeginTime is larger than or equal to EndTime in TimeSpan"); + } + } + + for (int i = 1; i < _times.Count; i++) + { + if (1.0e-8 < Math.Abs(((ITimeSpan)_times[i]).Start.ModifiedJulianDay - ((ITimeSpan)_times[i-1]).End.ModifiedJulianDay)) + { + throw new Exception("EndTime is not equal to StartTime for the following time step"); + } + } + } + if (_times[0] is ITimeStamp) + { + for (int i = 1; i < _times.Count; i++) + { + if (((ITimeStamp)_times[i]).ModifiedJulianDay <= ((ITimeStamp) _times[i-1]).ModifiedJulianDay) + throw new Exception("TimeStamps are not increasing in buffer"); + } + } + } + + /// + /// Validates a given time. The check made is for TimeSpan the starting time must be smaller + /// than the end time. Throws exception if the time is not valid. + /// + private static void CheckTime(ITime time) + { + if (time is ITimeSpan) + { + if(((ITimeSpan) time).Start.ModifiedJulianDay >= ((ITimeSpan) time).End.ModifiedJulianDay) + { + throw new Exception("Start Time is larger than or equal to End Time in TimeSpan"); + } + } + } + + /// + /// Read/Write property flag that indicates wheather or not to perform extended data + /// checking. + /// + public bool DoExtendedDataVerification + { + get + { + return _doExtendedDataVerification; + } + set + { + _doExtendedDataVerification = value; + } + } + + + /// + /// Clear all times and values in the buffer at or later than the specified time + /// If the specified time is type ITimeSpan the Start time is used. + /// + /// + public void ClearAfter(ITime time) + { + //TODO: this method can be simplyfied (see implementation of method: ClearBefore + TimeStamp timeStamp = new TimeStamp(); + if (time is ITimeStamp) + { + timeStamp.ModifiedJulianDay = ((ITimeStamp) time).ModifiedJulianDay; + } + else if(time is ITimeSpan) + { + timeStamp.ModifiedJulianDay = ((ITimeSpan) time).Start.ModifiedJulianDay; + } + else + { + throw new Exception("Wrong argument type for call to Oatc.OpenMI.Sdk.Buffer.SmartBuffer.ClearAfter()"); + } + + + if (_times.Count > 0) + { + bool recordWasRemoved; + if(_times[0] is ITimeStamp) + { + do + { + recordWasRemoved = false; + if (((ITimeStamp)_times[_times.Count - 1]).ModifiedJulianDay >= timeStamp.ModifiedJulianDay) + { + _values.RemoveAt(_times.Count - 1); + _times.RemoveAt(_times.Count - 1); + recordWasRemoved = true; + + } + } while (recordWasRemoved && _times.Count > 0); + + } + else if (_times[0] is ITimeSpan) + { + do + { + recordWasRemoved = false; + if (((ITimeSpan)_times[_times.Count - 1]).Start.ModifiedJulianDay >= timeStamp.ModifiedJulianDay) + { + _values.RemoveAt(_times.Count - 1); + _times.RemoveAt(_times.Count - 1); + recordWasRemoved = true; + } + } while (recordWasRemoved && _times.Count > 0); + + } + } + + } + + + /// + /// Clear all records in the buffer assocaited to time that is earlier that the + /// time specified in the argument list. However, one record associated to time + /// before the time in the argument list is left in the buffer. + /// The criteria when comparing TimeSpans is that they may not overlap in order + /// to be regarded as before each other. + /// (see also Oatc.OpenMI.Sdk.Buffer.Support.IsBefore(ITime ta, ITime tb) + /// + /// time before which the records are removed + public void ClearBefore(ITimeStamp time) + { + int numberOfRecordsToRemove = 0; + + foreach (ITime t in _times) + { + if (Support.IsBefore(t, time)) + { + numberOfRecordsToRemove ++; + } + } + + numberOfRecordsToRemove--; // decrease index to ensure that one record before time is left back + + + if (numberOfRecordsToRemove > 0) + { + _times.RemoveRange(0,numberOfRecordsToRemove); + _values.RemoveRange(0,numberOfRecordsToRemove); + } + } + + /// + /// Clears the buffer between start- and end- time of the time (TimeSpan). + /// + public void Clear(ITimeSpan time) + + //TODO: This method may not be used anywhere. Check if this is true and then remove this method + { + if (_times.Count > 0) + { + if(_times[0] is ITimeStamp) + { + for (int i = 0; i < _times.Count; i++) + { + if (((ITimeStamp)_times[i]).ModifiedJulianDay > time.Start.ModifiedJulianDay && ((ITimeStamp)_times[i]).ModifiedJulianDay < time.End.ModifiedJulianDay) + { + _times.RemoveAt(i); + _values.RemoveAt(i); + } + } + } + else if (_times[0] is ITimeSpan) + { + for (int i = 0; i < _times.Count; i++) + { + if (((ITimeSpan)_times[i]).Start.ModifiedJulianDay > time.Start.ModifiedJulianDay && ((ITimeSpan)_times[i]).End.ModifiedJulianDay < time.End.ModifiedJulianDay) + { + _times.RemoveAt(i); + _values.RemoveAt(i); + } + } + } + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/Support.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/Support.cs new file mode 100644 index 00000000..36ef56f4 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/Support.cs @@ -0,0 +1,131 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Buffer +{ + /// + /// Support functions for the Buffer. + /// + public class Support + { + /// + /// return true if ta is before tb (eveluates (ta less than tb) + /// + /// Time ta + /// time tb + /// true if ta is before tb (eveluates (ta less than tb) + public static bool IsBefore(ITime ta, ITime tb) + { + double a; + double b; + bool isTaBeforeTb; + + if (ta is ITimeSpan) + { + a = ((ITimeSpan) ta).End.ModifiedJulianDay; + } + else + { + a = ((ITimeStamp) ta).ModifiedJulianDay; + } + + if (tb is ITimeSpan) + { + b = ((ITimeSpan) tb).Start.ModifiedJulianDay; + } + else + { + b = ((ITimeStamp) tb).ModifiedJulianDay; + } + isTaBeforeTb = (a < b); + + return isTaBeforeTb; + } + + /// + /// GetVal will get the indexth number of the axisNumberth component of the + /// ValueSet. + /// + /// ValueSet to read the value from. + /// Index of the value in the ValueSet. + /// Relevant for VectorSets only. 1: x, 2: y, 3: z. + /// The indexth number of the axisNumberth component + public static double GetVal(IValueSet values, int index, int axisNumber) + { + try + { + double x; + if (index > values.Count-1) + { + throw new System.Exception("Index exceeds dimension of ValueSet."); + } + if (values is IScalarSet) + { + if (axisNumber != 1) + { + throw new System.Exception("Illigal axisNumber for ScalarSet."); + } + + x = ((IScalarSet)values).GetScalar(index); + } + + else if (values is IVectorSet) + { + if (axisNumber == 1) + { + x = ((IVectorSet) values).GetVector(index).XComponent; + } + else if (axisNumber == 2) + { + x = ((IVectorSet) values).GetVector(index).YComponent; + } + else if (axisNumber == 3) + { + x = ((IVectorSet) values).GetVector(index).ZComponent; + } + else + { + throw new System.Exception("Illigal axisNumber for VectorSet."); + } + } + else + { + throw new System.Exception("Illigal value type."); + } + + return x; + } + catch (System.Exception e) + { + throw new System.Exception("GetVal failed",e); + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/UnitTest/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/UnitTest/AssemblyInfo.cs new file mode 100644 index 00000000..4c9d003c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/UnitTest/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Buffer UnitTest Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4 Alpha 3")] +[assembly: AssemblyCopyright("GNU Library or Lesser General Public License (LGPL), MIT License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/UnitTest/Oatc.OpenMI.Sdk.Buffer.UnitTest.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/UnitTest/Oatc.OpenMI.Sdk.Buffer.UnitTest.csproj new file mode 100644 index 00000000..47d12c4c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/UnitTest/Oatc.OpenMI.Sdk.Buffer.UnitTest.csproj @@ -0,0 +1,125 @@ + + + + Local + 8.0.50727 + 2.0 + {606EEBBC-96CF-4A21-9AA6-8B4674FF2996} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Buffer.UnitTest + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Buffer.UnitTest + OnBuildSuccess + + + + + + + 3.5 + v2.0 + + + ./bin/Debug + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ./bin/Release + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\..\..\..\..\..\..\_Code\Dev.CSharp\HydroDesktop\Source\Plugins\Modeler\Utilities\NUnit\nunit.framework.dll + + + ..\..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + + + {C9844E74-074D-46FA-AEF6-371B3481468B} + Oatc.OpenMI.Sdk.Buffer + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/UnitTest/SmartBufferTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/UnitTest/SmartBufferTest.cs new file mode 100644 index 00000000..751feed3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/UnitTest/SmartBufferTest.cs @@ -0,0 +1,705 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.IO; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Buffer; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Buffer.UnitTest +{ + /// + /// The SmartBufferTest class serves as teting of all public methods in the + /// Oatc.OpenMI.Sdk.Buffer.SmartBuffer class. The SmartBufferTest class + /// is used with the NUnit software. + /// + [TestFixture] + public class SmartBufferTest + { + + [Test] + public void SmartBuffer() + { + // Testing the overloaded constructor SmartBuffer.SmartBuffer(SmartBuffer buffer) + // Note: this test does not include testing for buffers containing VectorSets + + SmartBuffer smartBufferA = new SmartBuffer(); + smartBufferA.AddValues(new TimeStamp(1), new ScalarSet(new double[3] { 1, 2, 3 })); + smartBufferA.AddValues(new TimeStamp(3), new ScalarSet(new double[3] { 3, 4, 5 })); + smartBufferA.AddValues(new TimeStamp(6), new ScalarSet(new double[3] { 6, 7, 8 })); + + SmartBuffer buffer1 = new SmartBuffer(smartBufferA); + Assert.AreEqual(smartBufferA.TimesCount, buffer1.TimesCount); + for (int i = 0; i < smartBufferA.TimesCount; i++) + { + Assert.AreEqual(((ITimeStamp)smartBufferA.GetTimeAt(i)).ModifiedJulianDay, ((ITimeStamp)buffer1.GetTimeAt(i)).ModifiedJulianDay); + for (int n = 0; n < smartBufferA.ValuesCount; n++) + { + Assert.AreEqual(((IScalarSet) smartBufferA.GetValuesAt(i)).GetScalar(n),((IScalarSet) buffer1.GetValuesAt(i)).GetScalar(n)); + } + } + + SmartBuffer smartBufferB = new SmartBuffer(); + smartBufferB.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(1),new TimeStamp(2)), new ScalarSet(new double[3] { 11, 12, 13 })); + smartBufferB.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(2),new TimeStamp(3)), new ScalarSet(new double[3] { 13, 14, 15 })); + smartBufferB.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(3),new TimeStamp(5)), new ScalarSet(new double[3] { 16, 17, 18 })); + + SmartBuffer buffer2 = new SmartBuffer(smartBufferB); + Assert.AreEqual(smartBufferB.TimesCount, buffer2.TimesCount); + for (int i = 0; i < smartBufferB.TimesCount; i++) + { + Assert.AreEqual(((ITimeSpan)smartBufferB.GetTimeAt(i)).Start.ModifiedJulianDay, ((ITimeSpan)buffer2.GetTimeAt(i)).Start.ModifiedJulianDay); + Assert.AreEqual(((ITimeSpan)smartBufferB.GetTimeAt(i)).End.ModifiedJulianDay, ((ITimeSpan)buffer2.GetTimeAt(i)).End.ModifiedJulianDay); + + for (int n = 0; n < smartBufferB.ValuesCount; n++) + { + Assert.AreEqual(((IScalarSet) smartBufferB.GetValuesAt(i)).GetScalar(n),((IScalarSet) buffer2.GetValuesAt(i)).GetScalar(n)); + } + } + } + + + [Test] // testing the Initialise method + public void GetValues_TimeStampsToTimeStamp_01() + { + SmartBuffer smartBuffer = new SmartBuffer(); + smartBuffer.AddValues(new TimeStamp(1), new ScalarSet(new double[3] { 1, 2, 3 })); + smartBuffer.AddValues(new TimeStamp(3), new ScalarSet(new double[3] { 3, 4, 5 })); + + //ScalarSet scalarSet = (ScalarSet) smartBuffer.GetValues(new TimeStamp(2)); + double a = smartBuffer.RelaxationFactor; + // Extrapolation + Assert.AreEqual(new ScalarSet(new double[3] { (1-3)/(3-1)*(1-a)+1, (2-4)/(3-1)*(1-a)+2, (3-5)/(3-1)*(1-a)+3 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(0))); + // "Hit" first TimeStamp + Assert.AreEqual(new ScalarSet(new double[3] { 1, 2, 3 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(1))); + // Interpolation + Assert.AreEqual(new ScalarSet(new double[3] { 2, 3, 4 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(2))); + // "Hit" last TimeStamp + Assert.AreEqual(new ScalarSet(new double[3] { 3, 4, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(3))); + // Extrapolation + Assert.AreEqual(new ScalarSet(new double[3] { (3-1)/(3-1)*(1-a)+3, (4-2)/(3-1)*(1-a)+4, (5-3)/(3-1)*(1-a)+5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(4))); + + } + + [Test] // testing the Initialise method + public void GetValues_TimeStampsToTimeStamp_02() + { + // GetValues_TimeStampsToTimeStamp_02()method is teting situation where the Times in + // the buffer is of type ITimeStamp and the requested values is associated to a ITimeStamp + // + // Three different relaxation factors are used + + + // See drawing at the following link. + // http://projects.dhi.dk/harmonIT/WP6/SourceCodeDocumentation/Oatc.OpenMI.Sdk.Buffer.TestCode.htm + + + SmartBuffer smartBuffer = new SmartBuffer(); + + + + // --Populate the SmartBuffer -- + smartBuffer.AddValues(new TimeStamp(10), new ScalarSet(new double[3] { 11, 2, 6})); + smartBuffer.AddValues(new TimeStamp(13), new ScalarSet(new double[3] { 5 , 5, 6})); + smartBuffer.AddValues(new TimeStamp(16), new ScalarSet(new double[3] { 2 ,14, 6})); + smartBuffer.AddValues(new TimeStamp(20), new ScalarSet(new double[3] { 2 , 2, 6})); + smartBuffer.AddValues(new TimeStamp(27), new ScalarSet(new double[3] { 2 , 9, 6})); + smartBuffer.AddValues(new TimeStamp(30), new ScalarSet(new double[3] {-4, 9, 6})); + smartBuffer.AddValues(new TimeStamp(48), new ScalarSet(new double[3] { 8,- 3, 6})); + + smartBuffer.RelaxationFactor = 0.0; + + Assert.AreEqual(new ScalarSet(new double[3] {13,1,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(9))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] {9,3,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] {7,4,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] {5,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] {4,8,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + Assert.AreEqual(new ScalarSet(new double[3] {3,11,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(15))); + Assert.AreEqual(new ScalarSet(new double[3] {2,14,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(16))); + Assert.AreEqual(new ScalarSet(new double[3] {2,11,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(17))); + Assert.AreEqual(new ScalarSet(new double[3] {2,2,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(20))); + Assert.AreEqual(new ScalarSet(new double[3] {2,3,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(21))); + Assert.AreEqual(new ScalarSet(new double[3] {2,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(23))); + Assert.AreEqual(new ScalarSet(new double[3] {2,9,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(27))); + Assert.AreEqual(new ScalarSet(new double[3] {0,9,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(28))); + Assert.AreEqual(new ScalarSet(new double[3] {-2,9,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(29))); + Assert.AreEqual(new ScalarSet(new double[3] {-4,9,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(30))); + Assert.AreEqual(new ScalarSet(new double[3] {-2,7,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(33))); + Assert.AreEqual(new ScalarSet(new double[3] {0,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(36))); + Assert.AreEqual(new ScalarSet(new double[3] {4,1,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(42))); + Assert.AreEqual(new ScalarSet(new double[3] {8,-3,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(48))); + Assert.AreEqual(new ScalarSet(new double[3] {12,-7,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(54))); + + smartBuffer.RelaxationFactor = 1.0; + + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(9))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] {9,3,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] {7,4,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] {5,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] {4,8,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + Assert.AreEqual(new ScalarSet(new double[3] {3,11,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(15))); + Assert.AreEqual(new ScalarSet(new double[3] {2,14,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(16))); + Assert.AreEqual(new ScalarSet(new double[3] {2,11,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(17))); + Assert.AreEqual(new ScalarSet(new double[3] {2,2,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(20))); + Assert.AreEqual(new ScalarSet(new double[3] {2,3,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(21))); + Assert.AreEqual(new ScalarSet(new double[3] {2,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(23))); + Assert.AreEqual(new ScalarSet(new double[3] {2,9,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(27))); + Assert.AreEqual(new ScalarSet(new double[3] {0,9,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(28))); + Assert.AreEqual(new ScalarSet(new double[3] {-2,9,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(29))); + Assert.AreEqual(new ScalarSet(new double[3] {-4,9,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(30))); + Assert.AreEqual(new ScalarSet(new double[3] {-2,7,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(33))); + Assert.AreEqual(new ScalarSet(new double[3] {0,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(36))); + Assert.AreEqual(new ScalarSet(new double[3] {4,1,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(42))); + Assert.AreEqual(new ScalarSet(new double[3] {8,-3,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(48))); + Assert.AreEqual(new ScalarSet(new double[3] {8,-3,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(54))); + + double a = 0.7; + smartBuffer.RelaxationFactor = a; + + Assert.AreEqual(new ScalarSet(new double[3] {11 + (1 - a) * 2,2 - (1 - a)* 1 ,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(9))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] {9,3,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] {7,4,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] {5,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] {4,8,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + Assert.AreEqual(new ScalarSet(new double[3] {3,11,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(15))); + Assert.AreEqual(new ScalarSet(new double[3] {2,14,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(16))); + Assert.AreEqual(new ScalarSet(new double[3] {2,11,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(17))); + Assert.AreEqual(new ScalarSet(new double[3] {2,2,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(20))); + Assert.AreEqual(new ScalarSet(new double[3] {2,3,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(21))); + Assert.AreEqual(new ScalarSet(new double[3] {2,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(23))); + Assert.AreEqual(new ScalarSet(new double[3] {2,9,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(27))); + Assert.AreEqual(new ScalarSet(new double[3] {0,9,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(28))); + Assert.AreEqual(new ScalarSet(new double[3] {-2,9,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(29))); + Assert.AreEqual(new ScalarSet(new double[3] {-4,9,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(30))); + Assert.AreEqual(new ScalarSet(new double[3] {-2,7,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(33))); + Assert.AreEqual(new ScalarSet(new double[3] {0,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(36))); + Assert.AreEqual(new ScalarSet(new double[3] {4,1,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(42))); + Assert.AreEqual(new ScalarSet(new double[3] {8,-3,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(48))); + Assert.AreEqual(new ScalarSet(new double[3] {8 + (1 - a) * 4,-3 - (1 - a) *4, 6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(54))); + } + + + /// + /// + /// +[Test] + + public void GetValues_TimeStampsToTimeStamp_05() + { + //------------------------------------------------------------------------------------------------- + // Only two ValueSets in buffer + //------------------------------------------------------------------------------------------------- + + SmartBuffer smartBuffer = new SmartBuffer(); + + smartBuffer.RelaxationFactor = 0; + + smartBuffer.AddValues(new TimeStamp(10), new ScalarSet(new double[3] { 11, 2, 6})); + smartBuffer.AddValues(new TimeStamp(13), new ScalarSet(new double[3] { 5 , 5, 6})); + + Assert.AreEqual(new ScalarSet(new double[3] {13,1,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(9))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] {9,3,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] {7,4,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] {5,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] {3,6,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + } + + [Test] + public void GetValues_TimeStampsToTimeStamp_06() + { + //------------------------------------------------------------------------------------------------- + // Only one ValueSets in buffer + //------------------------------------------------------------------------------------------------- + + SmartBuffer smartBuffer = new SmartBuffer(); + + smartBuffer.RelaxationFactor = 0; + + smartBuffer.AddValues(new TimeStamp(10), new ScalarSet(new double[3] { 11, 2, 6})); + + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(9))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + } + + [Test] + public void GetValues_TimeSpansToTimeStamp_01() + { + //------------------------------------------------------------------------------------------------- + // Teting Getvalues when buffer contains TimeSpans and the requested value corresponds to a + // TimeStamp. Three different relaxation factors are used. + //------------------------------------------------------------------------------------------------- + + SmartBuffer smartBuffer = new SmartBuffer(); + + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(10),new TimeStamp(13)), new ScalarSet(new double[3] { 5, 12, 5 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(16)), new ScalarSet(new double[3] { 7, 11, 5 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(16),new TimeStamp(20)), new ScalarSet(new double[3] { 9, 10, 5 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(20),new TimeStamp(27)), new ScalarSet(new double[3] { 2, 7, 5 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(27),new TimeStamp(30)), new ScalarSet(new double[3] { -5, 6, 5 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(30),new TimeStamp(48)), new ScalarSet(new double[3] { 7, 3, 5 })); + + smartBuffer.RelaxationFactor = 0.0; + Assert.AreEqual(new ScalarSet(new double[3] { 1, 14, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(4))); + Assert.AreEqual(new ScalarSet(new double[3] { 3, 13, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(7))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(15))); + Assert.AreEqual(new ScalarSet(new double[3] { 9, 10, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(16))); + Assert.AreEqual(new ScalarSet(new double[3] { 9, 10, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(17))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(20))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(21))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(23))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(27))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(28))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(29))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(30))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(33))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(36))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(42))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(48))); + Assert.AreEqual(new ScalarSet(new double[3] {11, 2, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(54))); + Assert.AreEqual(new ScalarSet(new double[3] {15, 1, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(60))); + + smartBuffer.RelaxationFactor = 1.0; + + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(4))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(7))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(15))); + Assert.AreEqual(new ScalarSet(new double[3] { 9, 10, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(16))); + Assert.AreEqual(new ScalarSet(new double[3] { 9, 10, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(17))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(20))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(21))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(23))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(27))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(28))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(29))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(30))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(33))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(36))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(42))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(48))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(54))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(60))); + + double a = 0.7; + smartBuffer.RelaxationFactor = a; + + Assert.AreEqual(new ScalarSet(new double[3] { 5 - (1 - a)*(5 -1), 12 - (1-a)*(12-14), 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(4))); + Assert.AreEqual(new ScalarSet(new double[3] { 5 - (1 - a)*(5 - 3), 12 - (1 -a)* (12-13), 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(7))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(15))); + Assert.AreEqual(new ScalarSet(new double[3] { 9, 10, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(16))); + Assert.AreEqual(new ScalarSet(new double[3] { 9, 10, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(17))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(20))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(21))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(23))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(27))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(28))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(29))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(30))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(33))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(36))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(42))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(48))); + Assert.AreEqual(new ScalarSet(new double[3] { 7+(1-a)*(11-7), 3+(1-a)*(2-3), 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(54))); + Assert.AreEqual(new ScalarSet(new double[3] { 7+(1-a)*(15-7), 3+(1-a)*(1-3), 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(60))); + } + + [Test] + public void GetValues_TimeSpansToTimeSpans() + { + SmartBuffer smartBuffer = new SmartBuffer(); + + smartBuffer.RelaxationFactor = 1.0; + + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(10),new TimeStamp(13)), new ScalarSet(new double[1] { 1 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(16)), new ScalarSet(new double[1] { 2 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(16),new TimeStamp(19)), new ScalarSet(new double[1] { 3 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(19),new TimeStamp(27)), new ScalarSet(new double[1] { 4 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(27),new TimeStamp(30)), new ScalarSet(new double[1] { 5 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(30),new TimeStamp(48)), new ScalarSet(new double[1] { 6 })); + + Assert.AreEqual( 1.0 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(9),new TimeStamp(13)))).GetScalar(0)); + Assert.AreEqual( 1.0 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(10),new TimeStamp(13)))).GetScalar(0)); + Assert.AreEqual( 1.0 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(11),new TimeStamp(12)))).GetScalar(0)); + Assert.AreEqual( 2.5 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(19)))).GetScalar(0)); + Assert.AreEqual( 2.5 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(14.5),new TimeStamp(17.5)))).GetScalar(0)); + + smartBuffer.RelaxationFactor = 1.0; + Assert.AreEqual( 1.0 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(10),new TimeStamp(13)))).GetScalar(0)); + Assert.AreEqual( 1.0 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(11),new TimeStamp(12)))).GetScalar(0)); + Assert.AreEqual( 2.5 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(19)))).GetScalar(0)); + Assert.AreEqual( 2.5 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(14.5),new TimeStamp(17.5)))).GetScalar(0)); + } + + + + + [Test] + public void GetValues_TimeStampsToTimeSpan_01() + { + SmartBuffer smartBuffer = new SmartBuffer(); + smartBuffer.AddValues(new TimeStamp(2), new ScalarSet(new double[1] {2})); + smartBuffer.AddValues(new TimeStamp(4), new ScalarSet(new double[1] {4})); + smartBuffer.AddValues(new TimeStamp(7), new ScalarSet(new double[1] {4})); + smartBuffer.AddValues(new TimeStamp(11), new ScalarSet(new double[1] {6})); + smartBuffer.AddValues(new TimeStamp(13), new ScalarSet(new double[1] {4})); + smartBuffer.AddValues(new TimeStamp(15), new ScalarSet(new double[1] {3})); + + smartBuffer.RelaxationFactor = 1.0; + + Assert.AreEqual( 24.5/6 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(3),new TimeStamp(9)))).GetScalar(0),0.0000000001); + Assert.AreEqual( 49.25/11 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(3),new TimeStamp(14)))).GetScalar(0),0.0000000001); + Assert.AreEqual( 13.0/4.0 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(17)))).GetScalar(0)); + + smartBuffer.RelaxationFactor = 0.0; + Assert.AreEqual( 3 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(17)))).GetScalar(0)); + + smartBuffer.RelaxationFactor = 1.0; + Assert.AreEqual( 3, ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(1),new TimeStamp(5)))).GetScalar(0)); + + + + } + + [Test] + public void AddValues_01() + { + try + { + SmartBuffer smartBuffer = new SmartBuffer(); + smartBuffer.DoExtendedDataVerification = true; + + ScalarSet scalarSet = new ScalarSet(new double[3] { 0, 1, 2 }); + TimeStamp timeStamp = new TimeStamp(1); + + smartBuffer.AddValues(timeStamp, scalarSet); + + timeStamp.ModifiedJulianDay = 2; + scalarSet.data[0] = 10; + scalarSet.data[1] = 11; + scalarSet.data[2] = 12; + + smartBuffer.AddValues(timeStamp, scalarSet); + + smartBuffer.AddValues(new TimeStamp(3), new ScalarSet(new double[3] { 110, 111, 112 })); + smartBuffer.AddValues(new TimeStamp(4), new ScalarSet(new double[3] { 1110, 1111, 1112 })); + + Assert.AreEqual(0,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(1,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(1)); + Assert.AreEqual(2,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(2)); + + Assert.AreEqual(10,((IScalarSet) smartBuffer.GetValuesAt(1)).GetScalar(0)); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(1)).GetScalar(1)); + Assert.AreEqual(12,((IScalarSet) smartBuffer.GetValuesAt(1)).GetScalar(2)); + + Assert.AreEqual(110,((IScalarSet) smartBuffer.GetValuesAt(2)).GetScalar(0)); + Assert.AreEqual(111,((IScalarSet) smartBuffer.GetValuesAt(2)).GetScalar(1)); + Assert.AreEqual(112,((IScalarSet) smartBuffer.GetValuesAt(2)).GetScalar(2)); + + Assert.AreEqual(1110,((IScalarSet) smartBuffer.GetValuesAt(3)).GetScalar(0)); + Assert.AreEqual(1111,((IScalarSet) smartBuffer.GetValuesAt(3)).GetScalar(1)); + Assert.AreEqual(1112,((IScalarSet) smartBuffer.GetValuesAt(3)).GetScalar(2)); + + Assert.AreEqual(4,smartBuffer.TimesCount); + Assert.AreEqual(3,smartBuffer.ValuesCount); + } + catch (System.Exception e) + { + WriteException(e); + throw (e); + } + } + + [Test] + public void ClearAfter() + { + SmartBuffer smartBuffer = new SmartBuffer(); + smartBuffer.DoExtendedDataVerification = true; + + // --Populate the SmartBuffer -- + smartBuffer.AddValues(new TimeStamp(10), new ScalarSet(new double[2] {11, 21})); + smartBuffer.AddValues(new TimeStamp(13), new ScalarSet(new double[2] {12 ,22})); + smartBuffer.AddValues(new TimeStamp(16), new ScalarSet(new double[2] {13 ,23})); + smartBuffer.AddValues(new TimeStamp(20), new ScalarSet(new double[2] {14 ,24})); + smartBuffer.AddValues(new TimeStamp(27), new ScalarSet(new double[2] {15 ,25})); + smartBuffer.AddValues(new TimeStamp(30), new ScalarSet(new double[2] {16, 26})); + smartBuffer.AddValues(new TimeStamp(48), new ScalarSet(new double[2] {17, 27})); + + Oatc.OpenMI.Sdk.Backbone.TimeStamp time = new Oatc.OpenMI.Sdk.Backbone.TimeStamp(); + + time.ModifiedJulianDay = 50; // this time is after the last time in buffer + smartBuffer.ClearAfter(time); + Assert.AreEqual(7,smartBuffer.TimesCount); //nothing removed + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(27,((IScalarSet) smartBuffer.GetValuesAt(6)).GetScalar(1)); + + time.ModifiedJulianDay = 30; + smartBuffer.ClearAfter(time); + Assert.AreEqual(5,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(25,((IScalarSet) smartBuffer.GetValuesAt(4)).GetScalar(1)); + + time.ModifiedJulianDay = 16.5; + smartBuffer.ClearAfter(time); + Assert.AreEqual(3,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(23,((IScalarSet) smartBuffer.GetValuesAt(2)).GetScalar(1)); + + time.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(time); + Assert.AreEqual(0,smartBuffer.TimesCount); + + time.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(time); + Assert.AreEqual(0,smartBuffer.TimesCount); + + smartBuffer.AddValues(new TimeStamp(10), new ScalarSet(new double[2] {11, 21})); + smartBuffer.AddValues(new TimeStamp(13), new ScalarSet(new double[2] {12 ,22})); + smartBuffer.AddValues(new TimeStamp(16), new ScalarSet(new double[2] {13 ,23})); + smartBuffer.AddValues(new TimeStamp(20), new ScalarSet(new double[2] {14 ,24})); + smartBuffer.AddValues(new TimeStamp(27), new ScalarSet(new double[2] {15 ,25})); + smartBuffer.AddValues(new TimeStamp(30), new ScalarSet(new double[2] {16, 26})); + smartBuffer.AddValues(new TimeStamp(48), new ScalarSet(new double[2] {17, 27})); + + Oatc.OpenMI.Sdk.Backbone.TimeStamp start = new Oatc.OpenMI.Sdk.Backbone.TimeStamp(50); + Oatc.OpenMI.Sdk.Backbone.TimeStamp end = new Oatc.OpenMI.Sdk.Backbone.TimeStamp(55); + Oatc.OpenMI.Sdk.Backbone.TimeSpan timeSpan = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(start,end); + + start.ModifiedJulianDay = 50; // this time is after the last time in buffer + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(7,smartBuffer.TimesCount); //nothing removed + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(27,((IScalarSet) smartBuffer.GetValuesAt(6)).GetScalar(1)); + + start.ModifiedJulianDay = 30; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(5,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(25,((IScalarSet) smartBuffer.GetValuesAt(4)).GetScalar(1)); + + start.ModifiedJulianDay = 16.5; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(3,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(23,((IScalarSet) smartBuffer.GetValuesAt(2)).GetScalar(1)); + + start.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(0,smartBuffer.TimesCount); + + start.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(0,smartBuffer.TimesCount); + + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(10),new TimeStamp(13)), new ScalarSet(new double[2] {11, 21})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(16)), new ScalarSet(new double[2] {12, 22})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(16),new TimeStamp(20)), new ScalarSet(new double[2] {13, 23})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(20),new TimeStamp(27)), new ScalarSet(new double[2] {14, 24})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(27),new TimeStamp(30)), new ScalarSet(new double[2] {15, 25})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(30),new TimeStamp(48)), new ScalarSet(new double[2] {16, 26})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(48),new TimeStamp(55)), new ScalarSet(new double[2] {17, 27})); + + + time.ModifiedJulianDay = 50; // this time is after the last time in buffer + smartBuffer.ClearAfter(time); + Assert.AreEqual(7,smartBuffer.TimesCount); //nothing removed + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(27,((IScalarSet) smartBuffer.GetValuesAt(6)).GetScalar(1)); + + time.ModifiedJulianDay = 30; + smartBuffer.ClearAfter(time); + Assert.AreEqual(5,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(25,((IScalarSet) smartBuffer.GetValuesAt(4)).GetScalar(1)); + + time.ModifiedJulianDay = 16.5; + smartBuffer.ClearAfter(time); + Assert.AreEqual(3,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(23,((IScalarSet) smartBuffer.GetValuesAt(2)).GetScalar(1)); + + time.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(time); + Assert.AreEqual(0,smartBuffer.TimesCount); + + time.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(time); + Assert.AreEqual(0,smartBuffer.TimesCount); + + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(10),new TimeStamp(13)), new ScalarSet(new double[2] {11, 21})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(16)), new ScalarSet(new double[2] {12, 22})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(16),new TimeStamp(20)), new ScalarSet(new double[2] {13, 23})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(20),new TimeStamp(27)), new ScalarSet(new double[2] {14, 24})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(27),new TimeStamp(30)), new ScalarSet(new double[2] {15, 25})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(30),new TimeStamp(48)), new ScalarSet(new double[2] {16, 26})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(48),new TimeStamp(55)), new ScalarSet(new double[2] {17, 27})); + + start.ModifiedJulianDay = 50; // this time is after the last time in buffer + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(7,smartBuffer.TimesCount); //nothing removed + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(27,((IScalarSet) smartBuffer.GetValuesAt(6)).GetScalar(1)); + + start.ModifiedJulianDay = 30; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(5,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(25,((IScalarSet) smartBuffer.GetValuesAt(4)).GetScalar(1)); + + start.ModifiedJulianDay = 16.5; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(3,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(23,((IScalarSet) smartBuffer.GetValuesAt(2)).GetScalar(1)); + + start.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(0,smartBuffer.TimesCount); + + start.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(0,smartBuffer.TimesCount); + } + + [Test] + public void ClearBefore() + { + SmartBuffer smartBuffer = new SmartBuffer(); + smartBuffer.AddValues(new TimeStamp(1), new ScalarSet(new double[3] { 1.1, 2.1, 3.1 })); + smartBuffer.AddValues(new TimeStamp(3), new ScalarSet(new double[3] { 4.1, 5.1, 6.1 })); + smartBuffer.AddValues(new TimeStamp(4), new ScalarSet(new double[3] { 7.1, 8.1, 9.1 })); + smartBuffer.AddValues(new TimeStamp(5), new ScalarSet(new double[3] { 10.1, 11.1, 12.1 })); + + smartBuffer.ClearBefore(new TimeStamp(0.5)); + Assert.AreEqual(4,smartBuffer.TimesCount); + smartBuffer.CheckBuffer(); + + smartBuffer.ClearBefore(new TimeStamp(1)); + Assert.AreEqual(4,smartBuffer.TimesCount); + smartBuffer.CheckBuffer(); + + smartBuffer.ClearBefore(new TimeStamp(1.1)); + Assert.AreEqual(4,smartBuffer.TimesCount); + Assert.AreEqual(1.1,((ScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(1, ((ITimeStamp) smartBuffer.GetTimeAt(0)).ModifiedJulianDay); + smartBuffer.CheckBuffer(); + + smartBuffer.ClearBefore(new TimeStamp(4.1)); + Assert.AreEqual(2, smartBuffer.TimesCount); + Assert.AreEqual(7.1,((ScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(4, ((ITimeStamp) smartBuffer.GetTimeAt(0)).ModifiedJulianDay); + smartBuffer.CheckBuffer(); + + smartBuffer.ClearBefore(new TimeStamp(5.1)); + Assert.AreEqual(1, smartBuffer.TimesCount); + Assert.AreEqual(10.1,((ScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(5, ((ITimeStamp) smartBuffer.GetTimeAt(0)).ModifiedJulianDay); + smartBuffer.CheckBuffer(); + + SmartBuffer timeSpanBuffer = new SmartBuffer(); + timeSpanBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(1),new TimeStamp(3)), new ScalarSet(new double[3] { 1.1, 2.1, 3.1 })); + timeSpanBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(3),new TimeStamp(5)), new ScalarSet(new double[3] { 4.1, 5.1, 6.1 })); + timeSpanBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(5),new TimeStamp(7)), new ScalarSet(new double[3] { 7.1, 8.1, 9.1 })); + timeSpanBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(7),new TimeStamp(9)), new ScalarSet(new double[3] { 10.1, 11.1, 12.1 })); + + timeSpanBuffer.ClearBefore(new TimeStamp(0.5)); + Assert.AreEqual(4,timeSpanBuffer.TimesCount); + timeSpanBuffer.CheckBuffer(); + + timeSpanBuffer.ClearBefore(new TimeStamp(1.0)); + Assert.AreEqual(4,timeSpanBuffer.TimesCount); + timeSpanBuffer.CheckBuffer(); + + timeSpanBuffer.ClearBefore(new TimeStamp(2.0)); + Assert.AreEqual(4,timeSpanBuffer.TimesCount); + timeSpanBuffer.CheckBuffer(); + + timeSpanBuffer.ClearBefore(new TimeStamp(3.0)); + Assert.AreEqual(4,timeSpanBuffer.TimesCount); + timeSpanBuffer.CheckBuffer(); + + timeSpanBuffer.ClearBefore(new TimeStamp(4.0)); + Assert.AreEqual(4,timeSpanBuffer.TimesCount); + Assert.AreEqual(1.1,((ScalarSet) timeSpanBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(1, ((ITimeSpan) timeSpanBuffer.GetTimeAt(0)).Start.ModifiedJulianDay); + Assert.AreEqual(3, ((ITimeSpan) timeSpanBuffer.GetTimeAt(0)).End.ModifiedJulianDay); + timeSpanBuffer.CheckBuffer(); + + timeSpanBuffer.ClearBefore(new TimeStamp(7.0)); + Assert.AreEqual(3,timeSpanBuffer.TimesCount); + Assert.AreEqual(4.1,((ScalarSet) timeSpanBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(3, ((ITimeSpan) timeSpanBuffer.GetTimeAt(0)).Start.ModifiedJulianDay); + Assert.AreEqual(5, ((ITimeSpan) timeSpanBuffer.GetTimeAt(0)).End.ModifiedJulianDay); + timeSpanBuffer.CheckBuffer(); + + timeSpanBuffer.ClearBefore(new TimeStamp(10.0)); + Assert.AreEqual(1,timeSpanBuffer.TimesCount); + Assert.AreEqual(10.1,((ScalarSet) timeSpanBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(7, ((ITimeSpan) timeSpanBuffer.GetTimeAt(0)).Start.ModifiedJulianDay); + Assert.AreEqual(9, ((ITimeSpan) timeSpanBuffer.GetTimeAt(0)).End.ModifiedJulianDay); + timeSpanBuffer.CheckBuffer(); + } + + + private void WriteException(System.Exception e) + { + Console.WriteLine(" "); + Console.WriteLine("------- System.Exception ----------------------------- "); + Console.WriteLine("Catched in....: org.OpenMITest.Utilities.Wrapper.GetValues_River_Trigger_IDBased()"); + Console.WriteLine("Message.......: " + e.Message); + Console.WriteLine("Stact trace...: " + e.StackTrace); + Console.WriteLine("TargetSite....: " + e.TargetSite.Name); + Console.WriteLine("Source........: " + e.Source); + Console.WriteLine(" "); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/UnitTest/SupportTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/UnitTest/SupportTest.cs new file mode 100644 index 00000000..b2c2df25 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Buffer/UnitTest/SupportTest.cs @@ -0,0 +1,76 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Buffer; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Buffer.UnitTest +{ + /// + /// Summary description for SupportTest. + /// + [TestFixture] + public class SupportTest + { + [Test] + public void IsBefore() + { + TimeStamp t_4 = new TimeStamp(4); + TimeStamp t_7 = new TimeStamp(7); + Assert.AreEqual(true, Support.IsBefore(t_4,t_7)); + Assert.AreEqual(false, Support.IsBefore(t_7,t_4)); + Assert.AreEqual(false, Support.IsBefore(t_4,t_4)); + + Oatc.OpenMI.Sdk.Backbone.TimeSpan t_3_5 = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(3),new TimeStamp(5)); + Oatc.OpenMI.Sdk.Backbone.TimeSpan t_4_6 = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(4),new TimeStamp(6)); + Oatc.OpenMI.Sdk.Backbone.TimeSpan t_5_7 = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(5),new TimeStamp(7)); + Oatc.OpenMI.Sdk.Backbone.TimeSpan t_6_8 = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(6),new TimeStamp(8)); + + Assert.AreEqual(true, Support.IsBefore(t_3_5,t_6_8)); + Assert.AreEqual(false, Support.IsBefore(t_6_8, t_3_5)); + Assert.AreEqual(false, Support.IsBefore(t_3_5,t_4_6)); + Assert.AreEqual(false, Support.IsBefore(t_3_5,t_5_7)); + Assert.AreEqual(false, Support.IsBefore(t_3_5,t_3_5)); + + Assert.AreEqual(true, Support.IsBefore(t_4, t_5_7)); + Assert.AreEqual(false, Support.IsBefore(t_4, t_3_5)); + Assert.AreEqual(false, Support.IsBefore(t_7, t_3_5)); + Assert.AreEqual(false, Support.IsBefore(t_4, t_4_6)); + Assert.AreEqual(false, Support.IsBefore(t_7, t_5_7)); + + Assert.AreEqual(true, Support.IsBefore(t_3_5,t_7)); + Assert.AreEqual(false, Support.IsBefore(t_3_5, t_4)); + Assert.AreEqual(false, Support.IsBefore(t_6_8, t_4)); + Assert.AreEqual(false, Support.IsBefore(t_5_7, t_7)); + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/AssemblyInfo.cs new file mode 100644 index 00000000..e91c6ff2 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI SDK DevelopmentSupport Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4")] +[assembly: AssemblyCopyright("BSD License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/CalendarConverter.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/CalendarConverter.cs new file mode 100644 index 00000000..a1fa2194 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/CalendarConverter.cs @@ -0,0 +1,65 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// Support class for conversions between DateTime objects and Modified Julian Dates + /// Modified Julian Date is the number of days since November 17, 1858. + /// + public class CalendarConverter + { + private static DateTime _ModifiedJulianDateZero = new DateTime (1858, 11, 17); + private static long _ModifiedJulianDateZeroTicks = new DateTime (1858, 11, 17).Ticks; + + /// + /// Converts a DateTime object to modified julian date + /// + /// DateTime object + /// Modified Julian Date (days since November 17, 1858) + public static double Gregorian2ModifiedJulian(DateTime gregorianDate) + { + long ticks = gregorianDate.Ticks - _ModifiedJulianDateZeroTicks; + double result = ((double) ticks) / ((double) TimeSpan.TicksPerDay); + return result; + } + + /// + /// Converts a modified julian date to a DateTime object + /// + /// Modified Julian Date (days since November 17, 1858) + /// DateTime object + public static DateTime ModifiedJulian2Gregorian(double modifiedJulianDate) + { + return _ModifiedJulianDateZero.AddDays (modifiedJulianDate); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/CollectionSupport.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/CollectionSupport.cs new file mode 100644 index 00000000..f411559e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/CollectionSupport.cs @@ -0,0 +1,75 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// Support class for collections + /// + public class CollectionSupport + { + /// + /// Indicates whether an object is contained by a collection by comparing references. + /// The Equals method is not used, in contrary with the Contains method in the ArrayList. + /// + /// The collection + /// The object which might be in the collection + /// + public static bool ContainsObject (ICollection collection, object target) + { + foreach (object item in collection) + { + if (item == target) + { + return true; + } + } + return false; + } + + /// + /// Converts a collection to an array + /// + /// The collection + /// The array + public static object[] ToArray(IList list) + { + object[] objects = new object[list.Count]; + for (int i = 0; i < list.Count; i++) + { + objects[i] = list[i]; + } + + return objects; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/DefaultAggregate.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/DefaultAggregate.cs new file mode 100644 index 00000000..67ade9ca --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/DefaultAggregate.cs @@ -0,0 +1,202 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.ComponentModel; +using System.Reflection; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// Implementation of IAggregate which is based on reflection. + /// This class is used by XmlFile as default + /// + /// + public class DefaultAggregate : IAggregate + { + private object _source = null; + + /// + /// Constructor which gets the underlying source object + /// + /// The underlying source object + public DefaultAggregate(object source) + { + _source = source; + } + + /// + /// Gets the underlying source object + /// + public virtual object Source + { + get {return _source;} + } + + /// + /// Gets a list of all properties defined in the class type of the source. + /// Reflection is used to get this list. + /// + public virtual string[] Properties + { + get + { + PropertyInfo[] properties = _source.GetType().GetProperties(); + string[] propertyStrings = new string[properties.Length]; + for (int i = 0; i < propertyStrings.Length; i++) + { + propertyStrings[i] = properties[i].Name; + } + return propertyStrings; + } + } + + /// + /// Gets the class type of a property by reflection + /// + /// The property name + /// The type of the property + public virtual Type GetType (string property) + { + PropertyInfo prop = _source.GetType().GetProperty(property); + if (prop != null) + { + return prop.PropertyType; + } + + return null; + } + + /// + /// Indicates whether a property can be written to. Reflection is used. + /// + /// The property name + /// Property is writable, false if property doesn't exist + public virtual bool CanWrite (string property) + { + PropertyInfo prop = _source.GetType().GetProperty(property); + if (prop != null) + { + return prop.CanWrite; + } + + return false; + } + + /// + /// Indicates whether a property can be read. Reflection is used. + /// + /// The property name + /// Property is readable, false if property doesn't exist + public virtual bool CanRead (string property) + { + PropertyInfo prop = _source.GetType().GetProperty(property); + if (prop != null) + { + return prop.CanRead; + } + + return false; + } + + /// + /// Gets a value for a certain property. Reflection is used. + /// + /// The property name + /// The property value, null if the property doesn't exist + /// Internal exception raised by the source object when getting the value + public virtual object GetValue (string property) + { + PropertyInfo prop = _source.GetType().GetProperty(property); + if (prop != null) + { + try + { + return prop.GetValue (_source, null); + } + catch (Exception e) + { + throw new Exception ("Error when getting value of property " + property + " in " + _source.ToString() + "\n" + e.Message, e); + } + } + + return null; + } + + /// + /// Sets a value for a certain property. Reflection is used. + /// + /// The property name + /// The new property value + /// Internal exception raised by the source object when setting the value + public virtual void SetValue (string property, object target) + { + PropertyInfo prop = _source.GetType().GetProperty(property); + if (prop != null) + { + try + { + prop.SetValue (_source, target, null); + } + catch (Exception e) + { + throw new Exception ("Error when setting value " + target.ToString() + " to property " + property + " in " + _source.ToString() + "\n" + e.Message, e); + } + } + } + + /// + /// Gets a referenced value, i.e. a value corresponding with a reference string within the scope of the source. + /// Implementation is delegated to XmlFile.GetRegisteredTarget. + /// + /// Reference + /// The referenced object + public virtual object GetReferencedValue (string reference) + { + return XmlFile.GetRegisteredTarget(this.Source, reference); + } + + /// + /// Intended for updating the source after various SetValue calls. + /// Takes no action, because all SetValue calls are delegated directly to the source object with reflection. + /// + public virtual void UpdateSource() + { + } + + /// + /// Intended for updating the aggregate before various GetValue calls. + /// Takes no action, because all GetValue calls are delegated directly to the source object with reflection. + /// + public virtual void UpdateAggregate() + { + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/FileSupport.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/FileSupport.cs new file mode 100644 index 00000000..2d264351 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/FileSupport.cs @@ -0,0 +1,192 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; +using System.IO; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// This class provides some static methods to handle relative paths to files + /// + public class FileSupport + { + /// + /// Gets the relative path from a starting directory to a file + /// + /// Starting point + /// File to refer to + /// + public static string GetRelativePath(DirectoryInfo baseDirectory, FileInfo targetFile) + { + // When roots are different, the result is the full path of the target. + if (!targetFile.Directory.Root.ToString().Equals (baseDirectory.Root.ToString())) + { + return targetFile.FullName; + } + + // Quick result when the target resides in the base directory. + if (targetFile.Directory.FullName.Equals(baseDirectory.FullName)) + { + return targetFile.Name; + } + + ArrayList baseDir = FileSupport.GetDirectoryArray(baseDirectory); + ArrayList target = FileSupport.GetDirectoryArray(targetFile.Directory); + + // Finally add the target file name + return FileSupport.GetRelativeDir(baseDir, target) + targetFile.Name; + } + + /// + /// Gets the relative path from a starting directory to a directory + /// + /// Starting point + /// Directory to refer to + /// + public static string GetRelativePath(DirectoryInfo baseDirectory, DirectoryInfo targetDir) + { + // When roots are different, the result is the full path of the target. + if (!targetDir.Root.ToString().Equals (baseDirectory.Root.ToString())) + { + return targetDir.FullName; + } + + // Quick result when the target resides in the base directory. + if (targetDir.FullName.Equals(baseDirectory.FullName)) + { + return ""; + } + + ArrayList baseDir = GetDirectoryArray(baseDirectory); + ArrayList target = GetDirectoryArray(targetDir); + + // Finally add the target file name + return GetRelativeDir(baseDir, target).TrimEnd ('\\'); + } + + /// + /// Gets the relative path given the base and target + /// + /// Array of directories for the base directory + /// Array of directories for the target file or directory + /// The relative path + private static string GetRelativeDir (ArrayList baseDir, ArrayList target) + { + // Determine the common part in the full paths of base directory and target file + int common = 0; + while ((common < baseDir.Count) && (common < target.Count) && (baseDir[common].Equals(target[common]))) + { + common++; + } + + // The relative path starts with going up from the base directory file for the uncommon part + string result = ""; + for (int i = common; i < baseDir.Count; i++) + { + result += ".." + Path.DirectorySeparatorChar; + } + + // Then the relative path continues with going down to the target file for the uncommon part + for (int i = common; i < target.Count; i++) + { + result += target[i].ToString() + Path.DirectorySeparatorChar; + } + + return result; + } + + /// + /// Returns an array of all directories in a path. The first directory is the highest directory in the path. + /// + /// Directory from which to generate the array + /// ArrayList containing all directories. Each element is a DirectoryInfo object + private static ArrayList GetDirectoryArray (DirectoryInfo Directory) + { + ArrayList array = new ArrayList(); + DirectoryInfo dir = Directory; + while (dir.Parent != null) + { + array.Insert (0, dir.Name); + dir = dir.Parent; + } + + return array; + } + + /// + /// Expands a relative path to a FileInfo object + /// + /// The directory from which the relative path is defined + /// The relative path + /// FileInfo object corresponding to the base directory and relative path + public static FileInfo ExpandRelativePath(DirectoryInfo baseDirectory, string targetFile) + { + string current = Directory.GetCurrentDirectory(); + Directory.SetCurrentDirectory(baseDirectory.FullName); + FileInfo newFile = new FileInfo(targetFile); + Directory.SetCurrentDirectory(current); + + return newFile; + } + + /// + /// Expands a relative path to a DirectoryInfo object + /// + /// The directory from which the relative path is defined + /// The relative path + /// DirectoryInfo object corresponding to the base directory and relative path + public static DirectoryInfo ExpandRelativeDirectory(DirectoryInfo baseDirectory, string targetDir) + { + if (targetDir.Trim().Equals("")) + { + return new DirectoryInfo(baseDirectory.FullName); + } + + string current = Directory.GetCurrentDirectory(); + Directory.SetCurrentDirectory(baseDirectory.FullName); + DirectoryInfo newFile = new DirectoryInfo(targetDir); + Directory.SetCurrentDirectory(current); + + return newFile; + } + + /// + /// Generates relative path by path. + /// + /// + /// + /// + public static string GetRelativePath(string dirPath, string filePath) + { + return GetRelativePath(new DirectoryInfo(dirPath), new FileInfo(filePath)); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/IAggregate.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/IAggregate.cs new file mode 100644 index 00000000..179dfdae --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/IAggregate.cs @@ -0,0 +1,103 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// This interface allows generic querying of an object's properties. + /// An aggregate serves as an "in between" object between a source (containing the actual information) and a querier (asking for properties, e.g. XmlFile). + /// + public interface IAggregate + { + /// + /// The underlying object which holds the actual information. + /// + object Source {get;} + + /// + /// List of properties which can be queried in a generic way + /// + string[] Properties {get;} + + /// + /// Gets the class type of one of the properties + /// + /// Property name + /// The property type + Type GetType (string property); + + /// + /// Tells whether a value can be assigned to the property + /// + /// Property name + /// Boolean indicating writable + bool CanWrite (string property); + + /// + /// Tells whether a value can be retrieved from the property + /// + /// Property name + /// Boolean indicating readable + bool CanRead (string property); + + /// + /// Gets the value of a property + /// + /// Property name + /// The property value + object GetValue (string property); + + /// + /// Sets the value of a property + /// + /// Property name + /// The new property value + void SetValue (string property, object target); + + /// + /// Gets a property value by reference. + /// A reference isn't necessary a property, but can be any string, as long as it can be interpreted by the aggregate + /// + /// Reference + /// The referenced value + object GetReferencedValue (string reference); + + /// + /// Tells the aggregate to process all information passed with SetValue calls + /// + void UpdateSource(); + + /// + /// Tells the aggregate to prepare for subsequent GetValue calls + /// + void UpdateAggregate(); + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/MetaInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/MetaInfo.cs new file mode 100644 index 00000000..637c55df --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/MetaInfo.cs @@ -0,0 +1,696 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.IO; +using System.Collections; +using System.ComponentModel; +using System.Reflection; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// This class registers extra information about classes and (optionally) properties in your application. + /// For example, information about how to write a property of a class into an xml file can be stored here. + /// This mechanism has great similarities with the attribute mechanism in the .Net framework, but differences are that + /// 1) entries can be set dynamically + /// 2) no code modification is necessary in the target classes (the classes for which information is stored) + /// + /// + /// MetaInfo.SetAttribute (typeof(ILinkableComponent), "XmlFile", true); + /// Tells that the interface ILinkableComponent has subject XmlFile, which has corresponding value true. + /// There must be another class which knows that subject XmlFile exists and uses this information in some way. + /// MetaInfo.SetAttribute (typeof(IElementSet), "ID", "XmlRefName", "RefID"); + /// Tells that the property ID in the interface IElementSet has subject XmlRefName, which has corresponding value "RefID". + /// + public class MetaInfo + { + private static bool _initialized = false; + private static EntryList _targets = new EntryList(); + private static Hashtable _subjectTypes = new Hashtable(); + + /// + /// Writes all metainfo to a file + /// + /// The file + public static void Write (FileInfo file) + { + MetaInfo.Initialize(); + XmlFile.Write (_targets, file); + } + + /// + /// Reads all metainfo from file + /// + /// The file + public static void Read (FileInfo file) + { + MetaInfo.Initialize(); + XmlFile.Read (_targets, file); + } + + /// + /// Sets metainfo about the xml file where meta info is saved in + /// + private static void Initialize() + { + if (!_initialized) + { + MetaInfo.SetAttribute (typeof(EntryList), "XmlItemType", "Oatc.OpenMI.Sdk.DevelopmentSupport.MetaInfoEntry"); + MetaInfo.SetAttribute (typeof(MetaInfoEntry), "Properties", "XmlItemType", "Oatc.OpenMI.Sdk.DevelopmentSupport.MetaInfoClass"); + MetaInfo.SetAttribute (typeof(MetaInfoClass), "ObjectAggregate", "Oatc.OpenMI.Sdk.DevelopmentSupport.MetaInfoClassAggregate"); + _initialized = true; + } + } + + /// + /// Gets all metainfo concerning a given class + /// + /// The class name + /// All metainfo about a class, null if not found + private static MetaInfoEntry GetEntry (string target) + { + foreach (MetaInfoEntry entry in _targets) + { + if (entry.ClassName.Equals (target)) + { + return entry; + } + } + + return null; + } + + /// + /// Gets all metainfo concerning a given class and creates an empty block if not found + /// + /// The class name + /// All metainfo about a class + private static MetaInfoEntry GetEntryForced (string target) + { + MetaInfoEntry entry = MetaInfo.GetEntry (target); + + if (entry == null) + { + entry = new MetaInfoEntry (target); + _targets.Add (entry); + } + + return entry; + } + /// + /// Stores information about a class + /// + /// The class about which information is stored (usually as class type or string) + /// The type of information (e.g. how the class is named in an xml file) + /// The actual value + public static void SetAttribute (object target, string subject, object targetValue) + { + MetaInfo.SetAttribute (target, null, subject, targetValue); + } + + /// + /// Stores information about a class and property + /// + /// The class about which information is stored (usually as class type or string) + /// The property in the class + /// The type of information (e.g. how the property is named in an xml file) + /// The actual value + public static void SetAttribute (object target, string property, string subject, object targetValue) + { + if (target is Type) + { + target = ((Type)target).FullName; + } + else if (target is Assembly) + { + target = ((Assembly)target).GetName().Name; + } + + MetaInfoEntry table = MetaInfo.GetEntryForced (target.ToString()); + table.SetValue (property, subject, targetValue); + } + + /// + /// Gets the stored information for a class. + /// Not only the class is examined, but also all superclasses and implemented interfaces. + /// + /// The class about which information will be retrieved + /// The type of information required + /// The information stored for this object and type of information, null if not found + public static object GetAttribute (Type target, string subject) + { + return MetaInfo.GetAttributeDefault (target, null, subject, null); + } + + /// + /// Gets the stored information for a class and property. + /// Not only the class is examined, but also all superclasses and implemented interfaces. + /// + /// The class type about which information will be retrieved + /// The property for which information is to be required + /// The type of information required + /// The information stored for the class and property, null if not found + public static object GetAttribute (Type target, string property, string subject) + { + return MetaInfo.GetAttributeDefault (target, property, subject, null); + } + + /// + /// Gets the stored information for a class. + /// Not only the class is examined, but also all superclasses and implemented interfaces. + /// + /// The object about which information will be retrieved + /// The type of information required + /// Default value if the information is not found + /// The information stored for this object and type, the default value if not found + public static object GetAttributeDefault (Type targetClass, string subject, object defaultValue) + { + return MetaInfo.GetAttributeDefault (targetClass, null, subject, defaultValue); + } + + /// + /// Gets the stored information for a class and property. + /// Not only the class is examined, but also all superclasses and implemented interfaces. + /// + /// The object about which information will be retrieved + /// The property in the class + /// The type of information required + /// Default value if the information is not found + /// The information stored for this class, property and type, the default value if not found + public static object GetAttributeDefault (Type targetClass, string property, string subject, object defaultValue) + { + // try to find appropriate value in super class + Type targetType = targetClass; + while (targetType != null) + { + string target = targetType.FullName; + MetaInfoEntry table = MetaInfo.GetEntry (target); + + if (table != null) + { + if (table.Contains(property, subject)) + { + return table.GetValue (property, subject); + } + } + + targetType = targetType.BaseType; + } + + // try to find an interface implemented by the target type + foreach (Type implementedInterface in targetClass.GetInterfaces()) + { + object attribute = MetaInfo.GetAttributeDefault (implementedInterface, property, subject, null); + if (attribute != null) + { + return attribute; + } + } + + return defaultValue; + } + + /// + /// Gets the stored information for an assembly. + /// + /// The assembly about which information will be retrieved + /// The type of information required + /// Default value if the information is not found + /// The information stored for this class, property and type, the default value if not found + public static object GetAttributeDefault (Assembly targetAssembly, string subject, object defaultValue) + { + return MetaInfo.GetAttributeDefault (targetAssembly.GetName().Name, subject, defaultValue); + } + + /// + /// Gets the stored information for a string + /// + /// The string about which information will be retrieved + /// The type of information required + /// Default value if the information is not found + /// The information stored for this class, property and type, the default value if not found + public static object GetAttributeDefault (string target, string subject, object defaultValue) + { + MetaInfoEntry table = MetaInfo.GetEntry (target); + + if (table != null) + { + if (table.Contains(null, subject)) + { + return table.GetValue (null, subject); + } + } + + return defaultValue; + } + + /// + /// Gets a list of all properties in a class, for which a value has been stored. + /// All superclasses and implemented interfaces of the class are examined too. + /// + /// The class + /// List of properties + public static string[] GetProperties (Type targetClass) + { + // try to find appropriate value in super class + ArrayList subjects = new ArrayList(); + Type targetType = targetClass; + while (targetType != null) + { + string fullName = targetType.FullName; + MetaInfoEntry entry = MetaInfo.GetEntry (fullName); + if (entry != null) + { + foreach (MetaInfoClass property in entry.Properties) + { + if (!subjects.Contains(property.Name)) + { + subjects.Add (property.Name); + } + } + } + + targetType = targetType.BaseType; + } + + // try to find interfaces implemented by the target type + foreach (Type implementedInterface in targetClass.GetInterfaces()) + { + string[] interfaceProperties = MetaInfo.GetProperties (implementedInterface); + foreach (string interfaceProperty in interfaceProperties) + { + if (!subjects.Contains(interfaceProperty)) + { + subjects.Add (interfaceProperty); + } + } + } + + return (string[]) subjects.ToArray(typeof(string)); + } + } + + /// + /// Special list for all entered information in MetaInfo + /// + internal class EntryList : ArrayList + { + } + + /// + /// Class which groups all information stored for a class in MetaInfo + /// + internal class MetaInfoEntry + { + private string _name; + private ArrayList _properties = new ArrayList(); + private MetaInfoClass _classProperties = new MetaInfoClass(null); + + /// + /// Default constructor + /// + /// The class + public MetaInfoEntry (string className) + { + _name = className; + } + + /// + /// Class for which information is stored + /// + public string ClassName + { + get {return _name;} + set {_name = value;} + } + + /// + /// Group of subjects and stored values directly under the class (so without properties) + /// + public MetaInfoClass Class + { + get {return _classProperties;} + } + + /// + /// List of all properties for which a value is stored + /// + public ArrayList Properties + { + get {return _properties;} + } + + /// + /// Gets a group of subjects and associated values for a property in the class + /// + /// The property + /// Group of subjects and associated values + private MetaInfoClass GetMetaInfo (string property) + { + foreach (MetaInfoClass metaInfo in _properties) + { + if (metaInfo.Name.Equals (property)) + { + return metaInfo; + } + } + + return null; + } + + /// + /// Gets a list of all properties for which a value is stored + /// + /// The list of properties + public string[] GetProperties() + { + ArrayList list = new ArrayList(); + foreach (MetaInfoClass metaInfo in _properties) + { + list.Add (metaInfo.Name); + } + + return (string[]) list.ToArray(typeof(string)); + } + + /// + /// Gets the stored value directly under a class for a certain subject + /// + /// The subject + /// The stored value, null if not found + public object GetValue (string subject) + { + return _classProperties[subject]; + } + + /// + /// Gets the stored value directly under a class for a certain subject + /// + /// The subject + /// The new value + public void SetValue (string subject, object targetValue) + { + _classProperties[subject] = targetValue; + } + + /// + /// Gets the stored value for a subject and property in the class + /// + /// The property + /// The subject + /// The stored value, null if not found + public object GetValue (string property, string subject) + { + if (property == null) + { + return this.GetValue (subject); + } + + MetaInfoClass metaInfo = this.GetMetaInfo (property); + if (metaInfo != null) + { + return metaInfo[subject]; + } + + return null; + } + + /// + /// Stores a new value for a subject and property in the class + /// + /// The property + /// The subject + /// The new value + public void SetValue (string property, string subject, object targetValue) + { + if (property == null) + { + this.SetValue (subject, targetValue); + return; + } + + MetaInfoClass metaInfo = this.GetMetaInfo (property); + if (metaInfo == null) + { + metaInfo = new MetaInfoClass (property); + _properties.Add (metaInfo); + } + + metaInfo[subject] = targetValue; + } + + /// + /// Tells whether a value is stored for a property and subject in the class + /// + /// The property name + /// The subject + /// Indication of presence of the property and subject + public bool Contains (string property, string subject) + { + if (property == null) + { + return _classProperties.Contains (subject); + } + + MetaInfoClass metaInfo = this.GetMetaInfo (property); + if (metaInfo != null) + { + return metaInfo.Contains (subject); + } + + return false; + } + } + + /// + /// Class which groups all information about a property of a class type in MetaInfo + /// + internal class MetaInfoClass + { + private string _name; + private Hashtable _entries = new Hashtable(); + + /// + /// Default constructor + /// + /// Property name + public MetaInfoClass (string property) + { + _name = property; + } + + /// + /// The property name for which information is stored + /// + public string Name + { + get {return _name;} + set {_name = value;} + } + + /// + /// Dictionary of all subjects and stored values. + /// The index specified the subject. + /// + public object this [object index] + { + get {return _entries[index];} + set {_entries[index] = value;} + } + + /// + /// Indication whether a subject is stored + /// + /// The subject + /// Indication whether the subject is stored + public bool Contains (object subject) + { + return CollectionSupport.ContainsObject (_entries.Keys, subject); + } + + /// + /// Gets a list of all subjects stored for this property. + /// + /// List of all subjects + public string[] GetProperties() + { + ArrayList properties = new ArrayList(); + + IDictionaryEnumerator DictionaryEnumerator = _entries.GetEnumerator(); + while (DictionaryEnumerator.MoveNext()) + { + if (DictionaryEnumerator.Key is string) + { + String subject = (string) DictionaryEnumerator.Key; + properties.Add (subject); + } + } + + return (string[]) properties.ToArray(typeof (string)); + } + } + + /// + /// Aggregate class for MetaInfoClass. + /// Used when writing and reading with XmlFile. + /// + public class MetaInfoClassAggregate : IAggregate + { + #region IAggregate Members + + private MetaInfoClass _class; + + /// + /// Aggregate for the meta info class + /// An aggregate is an "in between" object between the element set and XmlFile. + /// /> + /// /> + /// + public MetaInfoClassAggregate (object source) + { + _class = (MetaInfoClass) source; + UpdateAggregate(); + } + + /// + /// Gets the underlying object + /// + public object Source + { + get {return _class;} + } + + /// + /// Gets a list of properties which are accessed in a generic way. + /// + public string[] Properties + { + get + { + ArrayList props = new ArrayList (_class.GetProperties()); + props.Add ("Name"); + return (string[]) props.ToArray (typeof(string)); + } + } + + /// + /// Class type of a property + /// + /// The property name + /// The property type + public Type GetType(string property) + { + if (property.Equals ("Name")) + { + return typeof(string); + } + + return _class[property].GetType(); + } + + /// + /// Tells whether a property can be written + /// + /// The property name + /// Indication of writable + public bool CanWrite(string property) + { + return true; + } + + /// + /// Tells whether a property can be read + /// + /// The property name + /// Indication of readable + public bool CanRead(string property) + { + return true; + } + + /// + /// Gets the value of a property + /// + /// The property name + /// The property value + public object GetValue(string property) + { + if (property.Equals ("Name")) + { + return _class.Name; + } + + return _class[property]; + } + + /// + /// Sets a value for a certain property + /// + /// The property name + /// The new property value + public void SetValue(string property, object target) + { + if (property.Equals ("Name")) + { + _class.Name = (string) target; + return; + } + + _class[property] = target; + } + + /// + /// Updates the underlying source. Takes no action. + /// + public void UpdateSource() + { + } + + /// + /// Prepares the aggregate for subsequent GetValue calls. Takes no action. + /// + public void UpdateAggregate() + { + } + + /// + /// Gets a referenced value, i.e. a value corresponding with a reference string within the scope of the source. + /// Implementation is delegated to XmlFile.GetRegisteredTarget. + /// + /// Reference + /// The referenced object + public object GetReferencedValue (string reference) + { + return XmlFile.GetRegisteredTarget(this.Source, reference); + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/Oatc.OpenMI.Sdk.DevelopmentSupport.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/Oatc.OpenMI.Sdk.DevelopmentSupport.csproj new file mode 100644 index 00000000..68ee78d8 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/Oatc.OpenMI.Sdk.DevelopmentSupport.csproj @@ -0,0 +1,130 @@ + + + + Local + 8.0.50727 + 2.0 + {B7BE8C7F-0679-4022-81A5-6A314C058429} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.DevelopmentSupport + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.DevelopmentSupport + OnBuildSuccess + + + + + + + false + 3.5 + v2.0 + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + bin\Release\Oatc.OpenMI.Sdk.DevelopmentSupport.XML + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/ObjectSupport.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/ObjectSupport.cs new file mode 100644 index 00000000..0665fd31 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/ObjectSupport.cs @@ -0,0 +1,693 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; +using System.ComponentModel; +using System.Reflection; +using System.IO; +using System.Globalization; +using System.Security.Policy; +using System.Configuration.Assemblies; + + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// Number of methods for general operations on objects. They comprise: + /// 1. instantiating objects given a class name + /// 2. deep copy of objects + /// + public class ObjectSupport + { + private static ArrayList _assemblyList = new ArrayList(); + + #region Copy objects + + /// + /// Gets a deep copy of a specified object. + /// Deep copying copies all primitive and enumeration properties and the properties for which MetaInfo "ObjectCopy" is set to true + /// + /// The object to be copied + /// The copied object + public static object GetCopy(object source) + { + object copy = ObjectSupport.GetInstance(source.GetType()); + if (copy != null) + { + ObjectSupport.Copy (source, copy); + } + + return copy; + } + + /// + /// Gets a deep copy of a specified object and copies referenced files + /// Deep copying copies all primitive and enumeration properties and the properties for which MetaInfo "ObjectCopy" is set to true + /// + /// The object to be copied + /// The path in which copied files will be positioned (relative to original position) + /// The copied object + public static object GetCopy(object source, string path) + { + if (source == null) + { + return null; + } + + if (source is FileSystemInfo) + { + if ((path != null) && (!path.Trim().Equals(""))) + { + return CopyFile ((FileSystemInfo) source, path); + } + else + { + return ObjectSupport.GetInstance(source.GetType(), source.ToString()); + } + } + + object copy = ObjectSupport.GetInstance(source.GetType(), source.ToString()); + if (copy != null) + { + ObjectSupport.Copy (source, copy, path); + } + + return copy; + } + + /// + /// Creates an object which is a deep copy fo a source object, including copying of referenced file + /// Deep copying copies all primitive and enumeration properties and the properties for which MetaInfo "ObjectCopy" is set to true + /// + /// The object to be copied + /// Lookup table for already copied objects + /// Path where files are copied to + /// + private static object GetCopy(object source, Hashtable copiedObjects, string path) + { + if (copiedObjects[source] != null) + { + return copiedObjects[source]; + } + else if (source is FileSystemInfo) + { + object copiedFile = CopyFile ((FileSystemInfo) source, path); + copiedObjects.Add (source, copiedFile); + return copiedFile; + } + else + { + object copy = ObjectSupport.GetInstance(source.GetType()); + if (copy != null) + { + copiedObjects.Add (source, copy); + ObjectSupport.Copy (source, copy, copiedObjects, path); + } + return copy; + } + } + + /// + /// Deep copies all properties of source into the properties of target + /// Deep copying copies all primitive and enumeration properties and the properties for which MetaInfo "ObjectCopy" is set to true + /// + /// The source object + /// The target object + public static void Copy(object source, object target) + { + ObjectSupport.Copy (source, target, ""); + } + + /// + /// Deep copies all properties of source into the properties of target, including files + /// Deep copying copies all primitive and enumeration properties and the properties for which MetaInfo "ObjectCopy" is set to true + /// + /// The source object + /// The target object + /// Path where files are copied to + public static void Copy(object source, object target, string path) + { + ObjectSupport.Copy (source, target, new Hashtable(), path); + } + + /// + /// Gets the deep copy + /// + /// The object to be copied + /// The object which will be the copy + /// Collection of objects and their copied equivalents. Will be populated and queried during copy. + /// Relative path to location where copied files will reside + private static void Copy(object source, object target, Hashtable copiedObjects, string path) + { + Copy (source, target, copiedObjects, path, true); + } + + /// + /// Gets the deep copy + /// + /// The object to be copied + /// The object which will be the copy + /// Collection of objects and their copied equivalents. Will be populated and queried during copy. + /// Relative path to location where files will be copied to + /// Indicates whether the new object should refer to a copy or to the same object + private static void Copy(object source, object target, Hashtable copiedObjects, string path, bool copyValue) + { + if (source is IList) + { + IList copiedArray = (IList) target; + copiedArray.Clear(); + for (int j = 0; j < ((IList) source).Count; j++) + { + object copiedArrayValue = ((IList) source)[j]; + if (copyValue) + { + copiedArrayValue = ObjectSupport.GetCopy (copiedArrayValue, copiedObjects, path); + } + copiedArray.Add (copiedArrayValue); + } + } + else if (source is IDictionary) + { + IDictionary copiedArray = (IDictionary) target; + copiedArray.Clear(); + + IDictionaryEnumerator dictionaryEnumerator = ((IDictionary) source).GetEnumerator(); + while (dictionaryEnumerator.MoveNext()) + { + object copiedArrayKey = dictionaryEnumerator.Key; + object copiedArrayValue = dictionaryEnumerator.Value; + if (copyValue) + { + copiedArrayKey = ObjectSupport.GetCopy (copiedArrayKey, copiedObjects, path); + copiedArrayValue = ObjectSupport.GetCopy (copiedArrayValue, copiedObjects, path); + } + + if (!copiedArray.Contains (copiedArrayKey)) + { + copiedArray.Add (copiedArrayKey, copiedArrayValue); + } + } + } + // Special handling for files + else if (source is FileSystemInfo) + { + if (copyValue && (path != null) && (!path.Trim().Equals(""))) + { + object copiedValue = CopyFile ((FileSystemInfo) source, path); + } + } + else + { + PropertyInfo[] property = source.GetType().GetProperties(); + for (int i = 0; i < property.Length; i++) + { + object sourceValue = property[i].GetValue (source, null); + + if (sourceValue != null) + { + // Default copied value. This is just a reference to the original value + object copiedValue = sourceValue; + + // If the value has been copied before, use the same copied equivalent + if (copiedObjects.ContainsKey (sourceValue)) + { + copiedValue = copiedObjects[sourceValue]; + } + else + { + // Determine whether the property is to be copied + bool copyPropertyValue = (Boolean) MetaInfo.GetAttributeDefault (source.GetType(), property[i].Name, "ObjectCopy", false); + + if (copyPropertyValue) + { + if (property[i].CanWrite) + { + copiedValue = ObjectSupport.GetCopy (sourceValue, copiedObjects, path); + } + else + { + object targetValue = property[i].GetValue (target, null); + Copy (sourceValue, targetValue, copiedObjects, path); + } + } + else if ((sourceValue is IList) || (sourceValue is IDictionary)) + { + object targetValue = property[i].GetValue (target, null); + Copy (sourceValue, targetValue, copiedObjects, path, copyPropertyValue); + } + } + + // Populate the target object + if (property[i].CanWrite) + { + property[i].SetValue (target, copiedValue, null); + } + + if (!copiedObjects.Contains(sourceValue)) + { + copiedObjects.Add (sourceValue, copiedValue); + } + } + } + } + } + + /// + /// Gets a copy of a file. + /// If the file doesn't exist, the copied file will not exist neither. + /// + /// The file or directory to be copied + /// The relative path (starting from the location of the original file) to the directory where the file will be copied to + /// The copied file + private static FileSystemInfo CopyFile (FileSystemInfo fileSystem, string path) + { + if ((path != null) && (path.Trim() != "")) + { + if (fileSystem is FileInfo) + { + FileInfo file = (FileInfo) fileSystem; + FileInfo targetFile = FileSupport.ExpandRelativePath(file.Directory, path + "\\" + file.Name); + if (File.Exists(file.FullName)) + { + if (!targetFile.Directory.Exists) + { + targetFile.Directory.Create(); + } + file.CopyTo(targetFile.FullName, true); + } + else + { + if (File.Exists(targetFile.FullName)) + { + targetFile.Delete(); + } + } + + return new FileInfo(targetFile.FullName); + } + + if (fileSystem is DirectoryInfo) + { + DirectoryInfo dir = (DirectoryInfo) fileSystem; + DirectoryInfo targetDir = FileSupport.ExpandRelativeDirectory(dir, path); + + if (Directory.Exists(dir.FullName)) + { + DirCopy (dir.FullName, targetDir.FullName, false); + } + else + { + if (Directory.Exists(targetDir.FullName)) + { + Directory.Delete (targetDir.FullName); + } + } + + return targetDir; + } + + return null; + } + else + { + return fileSystem; + } + } + + private static void DirCopy(string srcdir, string destdir, bool recursive) + { + DirectoryInfo dir; + FileInfo[] files; + DirectoryInfo[] dirs; + string tmppath; + + //determine if the destination directory exists, if not create it + if (! Directory.Exists(destdir)) + { + Directory.CreateDirectory(destdir); + } + + dir = new DirectoryInfo(srcdir); + + //if the source dir doesn't exist, throw + if (! dir.Exists) + { + throw new ArgumentException("source dir doesn't exist -> " + srcdir); + } + + //get all files in the current dir + files = dir.GetFiles(); + + //loop through each file + foreach(FileInfo file in files) + { + //create the path to where this file should be in destdir + tmppath=Path.Combine(destdir, file.Name); + + //copy file to dest dir + file.CopyTo(tmppath, false); + } + + //cleanup + files = null; + + //if not recursive, all work is done + if (! recursive) + { + return; + } + + //otherwise, get dirs + dirs = dir.GetDirectories(); + + //loop through each sub directory in the current dir + foreach(DirectoryInfo subdir in dirs) + { + //create the path to the directory in destdir + tmppath = Path.Combine(destdir, subdir.Name); + + //recursively call this function over and over again + //with each new dir. + DirCopy(subdir.FullName, tmppath, recursive); + } + + //cleanup + dirs = null; + + dir = null; + } + + #endregion + + #region Assembly handling + + /// + /// Loads an assembly. + /// The assembly name can be either a full path to a file or a full or partial name of an assembly registered in the GAC. + /// An empty assembly name is ignored. + /// + /// The assembly name + /// Assembly cannot be found in the GAC + public static void LoadAssembly(string assemblyName) + { + if ((assemblyName == null) || (assemblyName.Trim().Equals(""))) + { + return; + } + + Assembly assembly = null; + + if (File.Exists(assemblyName)) + { + FileInfo assemblyFile = new FileInfo(assemblyName); + + foreach (Assembly loadedAssembly in _assemblyList) + { + if (loadedAssembly.Location.EndsWith(Path.DirectorySeparatorChar + assemblyFile.Name)) + { + return; + } + } + + assembly = Assembly.LoadFrom(assemblyFile.FullName); + } + else + { + try + { + // VS2005 fix + // The line below produces "System.Reflection.Assembly.LoadWithPartialName(string)' is obsolete: + // 'This method has been deprecated. Please use Assembly.Load() instead. " warning + // however for backwards compatibility we need to use this method, + // because some older XML configuration files still may use short assembly names +#pragma warning disable 0618 + assembly = Assembly.LoadWithPartialName(assemblyName); +#pragma warning restore 0618 + } + catch (FileNotFoundException e) + { + // bug in framework; assembly could be found + if (assembly == null) + { + throw e; + } + } + } + + LoadAssembly (assembly); + } + + /// + /// Loads an assembly. + /// + /// The assembly + public static void LoadAssembly (Assembly assembly) + { + if ((assembly != null) && !_assemblyList.Contains(assembly)) + { + _assemblyList.Add (assembly); + } + } + + /// + /// Tells whether an assembly has been loaded already. + /// + /// The assembly + /// Indication of loaded + public static bool IsLoadedAssembly (Assembly assembly) + { + return _assemblyList.Contains (assembly); + } + + #endregion + + #region Object instantiation + + /// + /// Gets the class object given a string describing the class. The following assemblies are queried: + /// 1. All assemblies loaded with ObjectSupport.LoadAssembly + /// 2. All assemblies which reside in the same directory as this assembly + /// + /// The class name, including path with namespaces + /// The class object or null if not found + /// Class cannot be found + public static Type GetType(string ClassType) + { + if (ClassType == null) + { + return null; + } + + Type type = Type.GetType(ClassType); + for (int i = 0; (i < _assemblyList.Count) && (type == null); i++) + { + Assembly assembly = (Assembly) _assemblyList[i]; + if (assembly != null) + { + type = assembly.GetType(ClassType); + } + } + + if (type == null) + { + throw new Exception("Cannot find class " + ClassType); + } + + return type; + } + + /// + /// Creates a new object. + /// Types with an argumentless constructor can be created this way + /// + /// Full class name of the object to be instantiated + /// New object, null if not possible + public static object GetInstance (string classType) + { + return ObjectSupport.GetInstance(ObjectSupport.GetType(classType)); + } + + /// + /// Creates a new object using a base value (e.g. a string with its value). + /// Normally primitives, enumerations and some value types can be instantiated this way. + /// Also types with constructors having one argument can be instantiated. + /// + /// Full class name of the object to be instantiated + /// Value which is passed as argument to the constructor + /// New object, null if not possible + public static object GetInstance (string classType, object baseValue) + { + return ObjectSupport.GetInstance(ObjectSupport.GetType(classType), baseValue, null); + } + + /// + /// Creates a new object. + /// Types with an argumentless constructor can be created this way + /// + /// Class type of the object to be instantiated + /// New object, null if not possible + public static object GetInstance (Type type) + { + if (type == null) + { + return null; + } + + Type[] types = new Type[0]; + + ConstructorInfo constructor = type.GetConstructor(types); + if (constructor != null) + { + return constructor.Invoke(null); + } + + return null; + } + + /// + /// Creates a new object using a base value (e.g. a string with its value). + /// Normally primitives, enumerations and some value types can be instantiated this way. + /// Also types with constructors having one argument can be instantiated. + /// + /// Class type of the object to be instantiated + /// Value which is passed as argument to the constructor + /// New object, null if not possible + public static object GetInstance (Type type, object baseValue) + { + return ObjectSupport.GetInstance (type, baseValue, null); + } + + /// + /// Creates a new object using a base value (e.g. a string with its value). + /// Normally primitives, enumerations and some value types can be instantiated this way. + /// Also types with constructors having one argument can be instantiated. + /// + /// Class type of the object to be instantiated + /// Value which is passed as argument to the constructor + /// Culture info used for parsing the base value + /// New object, null if not possible + public static object GetInstance (Type type, object baseValue, CultureInfo culture) + { + if (type == null) + { + return null; + } + else if (type.IsEnum) + { + return Enum.Parse (type, baseValue.ToString(), true); + } + else if (type.Equals (typeof (String))) + { + return baseValue.ToString(); + } + else if (type.Equals (typeof (Double))) + { + if (culture == null) + { + return Double.Parse (baseValue.ToString()); + } + else + { + return Double.Parse (baseValue.ToString(), culture); + } + } + else if (type.Equals (typeof (Boolean))) + { + return Boolean.Parse (baseValue.ToString()); + } + else if (type.Equals (typeof (Int16))) + { + return Int16.Parse (baseValue.ToString()); + } + else if (type.Equals (typeof (Int32))) + { + return Int32.Parse (baseValue.ToString()); + } + else if (type.Equals (typeof (Int64))) + { + return Int64.Parse (baseValue.ToString()); + } + else if (type.Equals (typeof (DateTime))) + { + return DateTime.Parse (baseValue.ToString(), culture.DateTimeFormat); + } + else + { + Type[] types; + Type classType; + ConstructorInfo constructor; + + if (baseValue != null) + { + types = new Type[1]; + classType = type; + + while (classType != null) + { + types[0] = baseValue.GetType(); + while (types[0] != null) + { + constructor = classType.GetConstructor(types); + if (constructor != null) + { + Object[] arguments = new Object[1]; + arguments[0] = baseValue; + Object instance = constructor.Invoke(arguments); + return instance; + } + else + { + types[0] = types[0].BaseType; + } + } + classType = classType.BaseType; + } + } + + types = new Type[0]; + classType = type; + while (classType != null) + { + constructor = type.GetConstructor(types); + if (constructor != null) + { + object instance = constructor.Invoke(null); + return instance; + } + classType = classType.BaseType; + } + + return null; + } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/AssemblyInfo.cs new file mode 100644 index 00000000..556db2d6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI DevelopmentSupport UnitTest Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4 Alpha 3")] +[assembly: AssemblyCopyright("GNU Library or Lesser General Public License (LGPL), MIT License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/NetworkClasses.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/NetworkClasses.cs new file mode 100644 index 00000000..163e37cd --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/NetworkClasses.cs @@ -0,0 +1,272 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.ComponentModel; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest +{ + /// + /// Summary description for Element. + /// + public class Element + { + private string _name; + private string _id; + + public Element() + { + } + + public string ID + { + get {return _id;} + set {_id = value;} + } + + public string Name + { + get {return _name;} + set {_name = value;} + } + } + + public class Location + { + private double m_x = 0; + private double m_y = 0; + + public Location() + { + } + + public override bool Equals(object obj) + { + if (obj is Location) + { + Location loc = (Location) obj; + return ((loc.X == X) && (loc.Y == Y)); + } + + return base.Equals (obj); + } + + public override int GetHashCode() + { + return base.GetHashCode (); + } + + public Location(double NewX, double NewY) + { + X = NewX; + Y = NewY; + } + + [Category("Location"), + Description("Meters East-West")] + public double X + { + get { return m_x; } + set { m_x = value; } + } + + [Category("Location"), + Description("Meters North-South")] + public double Y + { + get { return m_y; } + set { m_y = value; } + } + + public override String ToString() + { + return "(" + X + "," + Y + ")"; + } + } + + public class Node : Element + { + private Location m_location = new Location(); + private double m_height; + private double m_volume; + + public Node() + { + } + + public Node(String NewName, Location NewLocation, double NewHeight, double NewVolume) + { + Name = NewName; + Location = NewLocation; + Height = NewHeight; + Volume = NewVolume; + } + + [Category("Location"), + Description("Height above sea level")] + public double Height + { + get { return m_height; } + set { m_height = value; } + } + + [Category("Structure"), + Description("Containing water volume")] + // EditorAttribute (typeof(System.Windows.Forms.NumericUpDown), typeof(System.Drawing.Design.UITypeEditor))] + public double Volume + { + get { return m_volume; } + set { m_volume = value; } + } + + [Category("Location"), + Description("Meters from center of network")] + public Location Location + { + get { return m_location; } + set { m_location = value; } + } + } + + public class Branch : Element + { + private Node m_begin; + private Node m_end; + private double m_length; + private double m_width; + + public Branch() + { + } + + public Branch(String NewName, Node NewBegin, Node NewEnd, double NewLength, double NewWidth) + { + Name = NewName; + BeginNode = NewBegin; + EndNode = NewEnd; + Length = NewLength; + Width = NewWidth; + } + + [Category("Location")] + public Node BeginNode + { + get { return m_begin; } + set { m_begin = value; } + } + + [Category("Location")] + public Node EndNode + { + get { return m_end; } + set { m_end = value; } + } + + [Category("Structure")] + public double Length + { + get { return m_length; } + set { m_length = value; } + } + + [Category("Structure")] + public double Width + { + get { return m_width; } + set { m_width = value; } + } + } + + public class Network : Element + { + ArrayList mNodes = new ArrayList(); + ArrayList mBranches = new ArrayList(); + + DateTime _lastModificationTime; + + public Network() + { + } + + public ArrayList Nodes + { + get + { + return mNodes; + } + } + + public ArrayList Branches + { + get + { + return mBranches; + } + } + + public DateTime LastModificationTime + { + get {return _lastModificationTime;} + set {_lastModificationTime = value;} + } + + public static Network GetSampleNetwork() + { + Network network = new Network(); + network.Name = "Rhine"; + network.LastModificationTime = DateTime.Now; + + Node node1 = new Node("Node1", new Location (35, 53), 30.4, 18000); + Node node2 = new Node("Node2", new Location (23, 18), 26.4, 14000); + Node node3 = new Node("Node3", new Location (67, 63), 12.6, 12000); + Node node4 = new Node("Node4", new Location (12, 23), 0.3, 1500); + Node node5 = new Node("Node5", new Location (14, 34), 9.6, 2000); + + Branch branch1 = new Branch ("Nederrijn", node1, node2, 10, 80); + Branch branch2 = new Branch ("IJssel", node2, node3, 60, 30); + Branch branch3 = new Branch ("Rijn", node2, node4, 100, 40); + Branch branch4 = new Branch ("Nederrijn", node1, node5, 110, 50); + + network.Nodes.Add (node1); + network.Nodes.Add (node2); + network.Nodes.Add (node3); + network.Nodes.Add (node4); + network.Nodes.Add (node5); + + network.Branches.Add (branch1); + network.Branches.Add (branch2); + network.Branches.Add (branch3); + network.Branches.Add (branch4); + + return network; + } + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest.csproj new file mode 100644 index 00000000..2a541b0b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest.csproj @@ -0,0 +1,137 @@ + + + + Local + 8.0.50727 + 2.0 + {2E021CD1-94DA-4431-A5D7-1E810A834119} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest + OnBuildSuccess + + + + + + + 3.5 + v2.0 + + + ./bin/Debug + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ./bin/Release + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\..\..\..\..\..\..\_Code\Dev.CSharp\HydroDesktop\Source\Plugins\Modeler\Utilities\NUnit\nunit.framework.dll + + + ..\..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + + + {B7BE8C7F-0679-4022-81A5-6A314C058429} + Oatc.OpenMI.Sdk.DevelopmentSupport + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/TestCalendarConverter.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/TestCalendarConverter.cs new file mode 100644 index 00000000..8c4b6b1a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/TestCalendarConverter.cs @@ -0,0 +1,183 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest +{ + /// + /// TemporalTester tests (gregorian) DateTime to + /// Modified Julian Date(/Time) and vice versa. + /// + [TestFixture] + public class TestCalendarConverter + { + public TestCalendarConverter() + { + } + + [Test] public void TestDates() + { + Evaluate(new DateTime(1985,1,1,1,0,0,0)); + Evaluate(new DateTime(1980,11,29,23,59,59,999)); + Evaluate(new DateTime(1980,11,30,00,00,00,000)); + + DateTime inDateTime_1 = new DateTime(1980,11,30,23,59,59,999); + DateTime inDateTime_2 = inDateTime_1.AddSeconds(1); + + Evaluate(inDateTime_1); + Evaluate(inDateTime_2); + Evaluate(new DateTime(1981,1,28,23,59,59,999)); + } + + [Test] public void TestYears() + { + int nItems = 2000; + DateTime gregDate = new DateTime(1111,12,15,1,0,0,0); + + for ( int i = 0 ; i < nItems ; i++ ) + { + gregDate = gregDate.AddYears(1); + Evaluate(gregDate); + } + } + + [Test] public void TestMonths() + { + int nItems = 200; + DateTime gregDate = new DateTime(1998,11,30,23,59,59,999); + + for ( int i = 0 ; i < nItems ; i++ ) + { + gregDate = gregDate.AddMonths(1); + Evaluate(gregDate); + } + } + + [Test] public void TestDays() + { + int nItems = 1000; + DateTime gregDate = new DateTime(1999,11,30,23,59,59,999); + + for ( int i = 0 ; i < nItems ; i++ ) + { + gregDate = gregDate.AddDays(1); + Evaluate(gregDate); + } + } + + [Test] public void TestHours() + { + int nItems = 500; + DateTime gregDate = new DateTime(1999,12,25,23,59,59,999); + + for ( int i = 0 ; i < nItems ; i++ ) + { + gregDate = gregDate.AddHours(1); + Evaluate (gregDate); + } + } + + [Test] public void TestMinutes() + { + int nItems = 500; + DateTime gregDate = new DateTime(1999,12,31,21,00,59,999); + + for ( int i = 0 ; i < nItems ; i++ ) + { + gregDate = gregDate.AddMinutes(1); + Evaluate(gregDate); + } + } + + [Test] public void TestSeconds() + { + int nItems = 1000; + DateTime gregDate = new DateTime(1999,12,31,23,55,00,499); + + for ( int i = 0 ; i < nItems ; i++ ) + { + gregDate = gregDate.AddSeconds(1); + Evaluate(gregDate); + } + } + + [Test] public void TestMilliSeconds() + { + int nItems = 5000; + DateTime gregDate = new DateTime(1999,12,31,23,59,58,350); + + for ( int i = 0 ; i < nItems ; i++ ) + { + gregDate = gregDate.AddMilliseconds(1); + Evaluate(gregDate); + } + } + + [Test] public void SomeDates() + { + double zero = 0; + DateTime zeroDate = CalendarConverter.ModifiedJulian2Gregorian (zero); + + Assert.AreEqual (1858, zeroDate.Year, "Year of Modified Julian Date Zero"); + Assert.AreEqual (11, zeroDate.Month, "Month of Modified Julian Date Zero"); + Assert.AreEqual (17, zeroDate.Day, "Day of Modified Julian Date Zero"); + + double jan1_1985 = 46066.25; + DateTime jan1_1985Date = CalendarConverter.ModifiedJulian2Gregorian (jan1_1985); + + Assert.AreEqual (1985, jan1_1985Date.Year, "Year of jan 1 1985"); + Assert.AreEqual (1, jan1_1985Date.Month, "Month of jan 1 1985"); + Assert.AreEqual (1, jan1_1985Date.Day, "Day of jan 1 1985"); + Assert.AreEqual (6, jan1_1985Date.Hour, "Hour of jan 1 1985"); + } + + [Test] public void TrickyDates() + { + double julianDate = 46096.999999998196; + DateTime gregorian = CalendarConverter.ModifiedJulian2Gregorian (julianDate); + + Assert.AreEqual (1985, gregorian.Year, "Year expected"); + Assert.AreEqual (2, gregorian.Month, "Month expected"); + Assert.AreEqual (1, gregorian.Day, "Day expected"); + } + + private void Evaluate(DateTime inGregDate) + { + double modJulDate = CalendarConverter.Gregorian2ModifiedJulian(inGregDate); + long mjdInt = (long) modJulDate; + + DateTime outGregDate = CalendarConverter.ModifiedJulian2Gregorian(modJulDate); + + Assert.AreEqual (inGregDate.ToString(), outGregDate.ToString(), modJulDate.ToString()); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/TestCollectionSupport.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/TestCollectionSupport.cs new file mode 100644 index 00000000..44325715 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/TestCollectionSupport.cs @@ -0,0 +1,70 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; +using NUnit.Framework; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest +{ + /// + /// Summary description for TestCollectionSupport. + /// + [TestFixture] + public class TestCollectionSupport + { + private ArrayList list = new ArrayList(); + private Location loc1 = new Location (4, 5); + private Location loc2 = new Location (4, 5); + private Location loc3 = new Location (6, 8); + + public TestCollectionSupport() + { + } + + [SetUp] public void Init() + { + list.Add (loc1); + list.Add (loc3); + } + + [Test] public void Collection() + { + Assert.AreEqual (loc1.Equals(loc2), true); + Assert.AreEqual (loc1.Equals(loc3), false); + + Assert.AreEqual (list.Contains (loc1), true); + Assert.AreEqual (list.Contains (loc2), true); + + Assert.AreEqual (CollectionSupport.ContainsObject (list, loc1), true); + Assert.AreEqual (CollectionSupport.ContainsObject (list, loc2), false); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/TestMetaInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/TestMetaInfo.cs new file mode 100644 index 00000000..48511aec --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/TestMetaInfo.cs @@ -0,0 +1,83 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using NUnit.Framework; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest +{ + /// + /// Summary description for TestMetaInfo. + /// + [TestFixture] + public class TestMetaInfo + { + public TestMetaInfo() + { + } + + [SetUp] public void Init() + { + MetaInfo.SetAttribute (typeof (Element), "subject1", "e1"); + MetaInfo.SetAttribute (typeof (Element), "property1", "subject1", "ep1"); + MetaInfo.SetAttribute (typeof (Element), "property2", "subject1", "ep2"); + MetaInfo.SetAttribute (typeof (Element), "property3", "subject1", "ep3"); + + MetaInfo.SetAttribute (typeof (Node), "subject2", "n1"); + MetaInfo.SetAttribute (typeof (Node), "property1", "subject2", "np1"); + MetaInfo.SetAttribute (typeof (Node), "property2", "subject1", null); + MetaInfo.SetAttribute (typeof (Node), "property3", "subject1", "np3"); + } + + [Test] public void Attribute() + { + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Element), "subject1"), "e1"); + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Element), "property1", "subject1"), "ep1"); + Assert.AreEqual (MetaInfo.GetAttributeDefault (typeof (Element), "property1", "subject1", "def"), "ep1"); + Assert.AreEqual (MetaInfo.GetAttributeDefault (typeof (Element), "property1", "subject2", "def"), "def"); + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Element), "property1", "subject2"), null); + } + + [Test] public void AttributeInheritance() + { + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Node), "subject1"), "e1"); + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Node), "subject2"), "n1"); + + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Node), "property1", "subject1"), "ep1"); + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Node), "property1", "subject2"), "np1"); + + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Element), "property3", "subject1"), "ep3"); + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Node), "property3", "subject1"), "np3"); + + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Element), "property2", "subject1"), "ep2"); + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Node), "property2", "subject1"), null, "null overridden"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/TestObjectSupport.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/TestObjectSupport.cs new file mode 100644 index 00000000..99f4ea64 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/TestObjectSupport.cs @@ -0,0 +1,147 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.ComponentModel; +using System.Reflection; +using System.Globalization; +using NUnit.Framework; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest +{ + /// + /// Summary description for Class1. + /// + [TestFixture] + public class TestObjectSupport + { + private Network network = null; + private Node node1 = null; + private Node node2 = null; + private Location commonLocation = null; + /// + /// + /// + [SetUp] public void Init() + { + node1 = new Node("Node1", new Location (35, 53), 30.4, 18000); + node2 = new Node("Node2", new Location (23, 18), 26.4, 14000); + network = new Network(); + network.Nodes.Add (node1); + network.Nodes.Add (node2); + commonLocation = new Location (12, 37); + } + + /// + /// + /// + /// + [Test] public void SimpleCopy() + { + Location loc = new Location (4, 5); + Location loc2 = new Location(); + ObjectSupport.Copy (loc, loc2); + + Assert.AreEqual(loc2.X, 4, "Copy simple object (1)"); + Assert.AreEqual(loc2.Y, 5, "Copy simple object (2)"); + + Location loc3 = (Location) ObjectSupport.GetCopy (loc); + Assert.AreEqual(loc3.X, 4, "GetCopy simple object (1)"); + Assert.AreEqual(loc3.Y, 5, "GetCopy simple object (2)"); + } + + [Test] public void NestedCopy() + { + MetaInfo.SetAttribute (typeof(Network), "Nodes", "ObjectCopy", false); + + Network copy = (Network) ObjectSupport.GetCopy (network); + + Assert.AreEqual("Node1", ((Node)copy.Nodes[0]).Name, "Name of Node1"); + Assert.AreEqual("Node2", ((Node)copy.Nodes[1]).Name, "Name of Node2"); + + Assert.AreSame(node1, ((Node)copy.Nodes[0]), "No copy of node1"); + Assert.AreEqual(35, ((Node)copy.Nodes[0]).Location.X, "Location X"); + + MetaInfo.SetAttribute (typeof(Network), "Nodes", "ObjectCopy", true); + Network copy2 = (Network) ObjectSupport.GetCopy (network); + Assert.AreEqual("Node1", ((Node)copy2.Nodes[0]).Name, "Name of node1 when node is copied"); + Assert.AreEqual(false, ((Node)copy2.Nodes[0]) == node1, "Copy of node1"); + } + + [Test] public void NonHierarchicalCopy() + { + MetaInfo.SetAttribute (typeof(Network), "Nodes", "ObjectCopy", true); + MetaInfo.SetAttribute (typeof(Node), "Location", "ObjectCopy", true); + + node1.Location = commonLocation; + node2.Location = commonLocation; + + Network copy = (Network) ObjectSupport.GetCopy (network); + + Assert.AreEqual(((Node)copy.Nodes[0]).Location == ((Node)copy.Nodes[1]).Location, true); + Assert.AreEqual(((Node)copy.Nodes[0]).Location == commonLocation, false); + } + + /// + /// + /// + /// + [Test] public void FindType() + { + ObjectSupport.LoadAssembly (Assembly.GetAssembly(this.GetType()).Location); + Type type = ObjectSupport.GetType ("Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest.Location"); + Assert.AreEqual (typeof (Location), type); + } + + [Test] public void Instantiation() + { + object node = ObjectSupport.GetInstance(typeof(Node)); + Assert.AreEqual (node is Node, true); + + object str = ObjectSupport.GetInstance(typeof(string), "hello"); + Assert.AreEqual (str.Equals("hello"), true); + + object d = ObjectSupport.GetInstance(typeof(int), "23"); + Assert.AreEqual (d.Equals (23), true); + + object b = ObjectSupport.GetInstance(typeof(bool), "true"); + Assert.AreEqual (b, true); + } + + [Test] public void InstantiationWithCulture() + { + object d1 = ObjectSupport.GetInstance(typeof(double), "23.4", CultureInfo.CreateSpecificCulture("")); + Assert.AreEqual (true, d1.Equals (23.4), "Neutral culture"); + + object d2 = ObjectSupport.GetInstance(typeof(double), "23,4", CultureInfo.CreateSpecificCulture("nl")); + Assert.AreEqual (true, d2.Equals (23.4), "Dutch culture"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/TestXmlFileSupport.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/TestXmlFileSupport.cs new file mode 100644 index 00000000..a2598702 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/UnitTest/TestXmlFileSupport.cs @@ -0,0 +1,129 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Globalization; +using System.IO; +using NUnit.Framework; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest +{ + /// + /// Summary description for Class1. + /// + [TestFixture] + public class TestXmlFileSupport + { + [SetUp] public void Initialize() + { + File.Delete ("Network.xml"); + File.Delete ("Network1.xml"); + File.Delete ("Network2.xml"); + File.Delete ("Network3.xml"); + + MetaInfo.SetAttribute (typeof(Element), "ID", "XmlKey", true); + MetaInfo.SetAttribute (typeof(Element), "ID", "XmlRefName", "RefID"); + MetaInfo.SetAttribute (typeof(Network), "Nodes", "XmlIndex", 1); + MetaInfo.SetAttribute (typeof(Network), "XmlFile", true); + + ObjectSupport.LoadAssembly(this.GetType().Assembly); + } + + [Test] public void SaveAndOpen() + { + Network network = Network.GetSampleNetwork(); + DateTime date = DateTime.Now; + + FileInfo file = new FileInfo("Network.xml"); + + XmlFile.Write (network, file); + + Assert.IsTrue (File.Exists(file.FullName), "File created"); + Assert.IsTrue (XmlFile.GetRegisteredFile(network).FullName == file.FullName, "Registration correct"); + + Network network1 = (Network) XmlFile.GetRead (file); + Assert.AreSame (network, network1, "Same instance"); + + Network network2 = new Network(); + XmlFile.Read (network2, file); + + Assert.AreEqual (false, network == network2, "New instance is created"); + Assert.AreEqual (network.Nodes.Count, network2.Nodes.Count, "Read file"); + Assert.AreEqual (((Node) network.Nodes[0]).Name, ((Node) network2.Nodes[0]).Name, "Node name"); + Assert.AreSame (((Branch) network2.Branches[0]).BeginNode, (Node) network2.Nodes[0], "Branch refers to node in node list"); + Assert.AreSame (((Branch) network2.Branches[0]).EndNode, ((Branch) network2.Branches[1]).BeginNode, "Branches share same node object"); + Assert.AreEqual (network.LastModificationTime.ToString(), network2.LastModificationTime.ToString(), "Date Time"); + } + + [Test] public void ReferencedFiles() + { + Network network1 = Network.GetSampleNetwork(); + Network network2 = Network.GetSampleNetwork(); + + Network network3 = new Network(); + network3.Nodes.Add (network1); + network3.Nodes.Add (network2); + + FileInfo file = new FileInfo("Network3.xml"); + XmlFile.Write (network3, file); + + Assert.IsTrue (File.Exists(file.FullName), "File written"); + Assert.IsTrue (File.Exists(new FileInfo("Network1.xml").FullName), "Referenced file written"); + + Assert.AreEqual (new FileInfo("Network1.xml").FullName, XmlFile.GetRegisteredFile(network1).FullName, "File registered"); + } + + [Test] public void SameID() + { + Network network1 = Network.GetSampleNetwork(); + Network network2 = Network.GetSampleNetwork(); + + ((Node) network1.Nodes[0]).Location.X = 44; + ((Node) network2.Nodes[0]).Location.X = 55; + + Network network3 = new Network(); + network3.Nodes.Add (network1.Nodes[0]); + network3.Nodes.Add (network2.Nodes[0]); + + XmlFile.Write (network1, new FileInfo("Network1.xml")); + XmlFile.Write (network2, new FileInfo("Network2.xml")); + XmlFile.Write (network3, new FileInfo("Network3.xml")); + + Assert.IsTrue (File.Exists(new FileInfo("Network3.xml").FullName), "File written"); + Assert.IsTrue (File.Exists(new FileInfo("Network1.xml").FullName), "Referenced file written"); + + Network network = new Network(); + XmlFile.Read (network, new FileInfo("Network3.xml")); + + Assert.AreEqual (2, network.Nodes.Count, "Number of nodes read"); + Assert.AreEqual (((Node)network1.Nodes[0]).ID, ((Node)network.Nodes[0]).ID, "Node is the same"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/XmlFile.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/XmlFile.cs new file mode 100644 index 00000000..ee5967eb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/XmlFile.cs @@ -0,0 +1,1650 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.ComponentModel; +using System.Reflection; +using System.Collections; +using System.Globalization; +using System.IO; +using System.Xml; +using System.Xml.Schema; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// Support class for reading and writing objects to xml. + /// Each object to be written or read is accessed in a generic way for the properties to write or read. This is done via an aggregate intermediate object. + /// Objects are written once in an xml file. If they are encountered more than once, references are written. References may refer to other files. + /// Writing and reading strings is always done and expected in neutral culture (English-US) in order to enable exchangability. + /// Needed meta info is retrieved from MetaInfo. + /// MetaInfo used by XmlFile + /// + /// + /// + public class XmlFile + { + private static CultureInfo _culture = CultureInfo.CreateSpecificCulture (""); + + private static Hashtable _fileList = new Hashtable(); + private static ArrayList _readObjectsList = new ArrayList(); + private static ArrayList _unreadObjectsList = new ArrayList(); + private static Hashtable _rootList = new Hashtable(); + private static Hashtable _rootKeyList = new Hashtable(); + private static Hashtable _rootObjectList = new Hashtable(); + private static Hashtable _aggregateTable = new Hashtable(); + + #region Public Read Methods + + /// + /// Reads an object from file + /// The file to read should have been registered with the object earlier by a reqad or write action + /// + /// The object to be read + /// Cannot find file to read + /// Cannot resolve class type when an object for an xml element must be instantiated + /// Cannot find class type + /// Xml element holds a reference, but referenced object cannot be found + /// Schema cannot be found although it has been specified in MetaInfo + /// Validation error when xml file doesn't meet specified schema + public static void Read (object target) + { + string file = (string) _fileList[target]; + if (file != null) + { + XmlFile.Read (target, new FileInfo(file)); + } + } + + /// + /// Reads an object from file + /// + /// The object to be read + /// The file containing the object's information + /// Cannot find file to read + /// Cannot resolve class type when an object for an xml element must be instantiated + /// Cannot find class type + /// Xml element holds a reference, but referenced object cannot be found + /// Schema cannot be found although it has been specified in MetaInfo + /// Validation error when xml file doesn't meet specified schema + public static void Read (object target, FileInfo file) + { + if (file.Exists) + { + XmlFile.CreateRegistration (target); + + XmlReader reader = new XmlTextReader(file.FullName); + + string xmlValidation = (string) MetaInfo.GetAttribute (target.GetType(), "XmlSchema"); + string xmlNameSpace = (string) MetaInfo.GetAttribute (target.GetType(), "XmlNameSpace"); + string xsdPackage = (string) MetaInfo.GetAttribute (target.GetType(), "XsdPackage"); + + if ((xmlValidation != null) && (xmlNameSpace != null)) + { + Stream schemaStream = XmlFile.GetSchema (target.GetType(), xmlValidation, xsdPackage); + if (schemaStream != null) + { + XmlSchema schema = XmlSchema.Read(schemaStream, new ValidationEventHandler (ValidationCallBack)); + + // VS2005 fix - the following code is deprecated and ws replaced by new code - see below + //XmlSchemaCollection xsc = new XmlSchemaCollection(); + //xsc.ValidationEventHandler += new ValidationEventHandler( ValidationCallBack ); + //xsc.Add( schema ); //XSD schema + + //reader = new XmlValidatingReader( reader ); + //( (XmlValidatingReader) reader ).ValidationType = ValidationType.Schema; + //( (XmlValidatingReader) reader ).ValidationEventHandler += new ValidationEventHandler( ValidationCallBack ); + //( (XmlValidatingReader) reader ).Schemas.Add( xsc ); + + XmlSchemaSet xss = new XmlSchemaSet(); + xss.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack); + xss.Add(schema); //XSD schema + + XmlReaderSettings settings = new XmlReaderSettings(); + settings.ValidationType = ValidationType.Schema; + settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack); + settings.Schemas.Add( xss ); + + reader = XmlReader.Create( reader, settings ); + } + else + { + throw new Exception ("Required schema " + xmlValidation + " not found for parsing " + file.FullName); + } + } + else + { + } + + _fileList[target] = file.FullName; + _readObjectsList.Add (target); + _unreadObjectsList.Remove (target); + + reader.MoveToContent(); + XmlFile.Read (reader, target, null, null, target); + reader.Close(); + } + else + { + _fileList[target] = file.FullName; + } + } + + /// + /// Reads and creates an object from a given file + /// + /// The file containig the object to be read + /// Populated object + /// Cannot find file to read + /// Cannot resolve class type when an object for an xml element must be instantiated + /// Cannot find class type + /// Xml element holds a reference, but referenced object cannot be found + /// Schema cannot be found although it has been specified in MetaInfo + /// Validation error when xml file doesn't meet specified schema + public static object GetRead (FileInfo file) + { + return XmlFile.GetRead(file, null); + } + + /// + /// Creates and reads an object from a given file + /// + /// The file containig the object to be read + /// The expected class type of the new object + /// The new populated object + /// Cannot find file to read + /// Cannot resolve class type when an object for an xml element must be instantiated + /// Cannot find class type + /// Xml element holds a reference, but referenced object cannot be found + /// Schema cannot be found although it has been specified in MetaInfo + /// Validation error when xml file doesn't meet specified schema + public static object GetRead (FileInfo file, Type objectType) + { + if (file.Exists) + { + object target = GetFileObject(file.FullName); + + if (target == null) + { + XmlReader reader = new XmlTextReader(file.FullName); + reader.MoveToContent(); + + string classType = (string) MetaInfo.GetAttributeDefault(reader.GetAttribute ("Type"), "XmlTypeAlias", reader.GetAttribute ("Type")); + ObjectSupport.LoadAssembly (reader.GetAttribute ("Assembly")); + + reader.Close(); + + if (classType != null) + { +// classType = (string) MetaInfo.GetAttributeDefault (ObjectSupport.GetType(ClassType), "XmlTypeAlias", classType); + target = ObjectSupport.GetInstance (classType); + } + + if ((target == null) && (objectType != null)) + { + target = ObjectSupport.GetInstance (objectType); + } + + if (target == null) + { + if (classType != null) + { + throw new Exception("Could not find class type " + classType); + } + else if (objectType != null) + { + throw new Exception("Could not find class type " + objectType.FullName); + } + } + } + + + XmlFile.Read (target, file); + + return target; + } + else + { + throw new Exception ("File doesn't exist: " + file.FullName); + } + } + + #endregion + + #region Xml Validation + + /// + /// Callback method used for validation against an xsd file + /// + /// Sender of the method + /// Error details + /// Validation error when xml file doesn't meet specified schema + private static void ValidationCallBack (object sender, ValidationEventArgs args) + { + throw new Exception ("Validation error: " + args.Message); + } + + /// + /// Gets a stream containing an xsd file, which resides within an assembly. + /// + /// If the xsdPackage isn't defined, type in the assembly in which the xsd file should reside + /// Name of the schema + /// The assembly in which the xsd file resides + /// The xsd stream, null if not found + private static Stream GetSchema (Type type, string xmlSchema, string xsdPackage) + { + Assembly assembly = Assembly.GetAssembly(type); + if ((xsdPackage != null) && (!xsdPackage.Trim().Equals(""))) + { + // VS2005 fix + // this fix also needed to include full name to XsdPackage meta-info in XmlConfiguration.cs + //assembly = Assembly.LoadWithPartialName(xsdPackage); + assembly = Assembly.Load( xsdPackage ); + } + + Stream stream = assembly.GetManifestResourceStream(xmlSchema); + if (stream == null) + { + string assemblyName = assembly.GetName().Name; + stream = assembly.GetManifestResourceStream(assemblyName + "." + xmlSchema); + } + + if (stream == null) + { + FileInfo assemblyFile = new FileInfo(assembly.Location); + FileInfo schema = FileSupport.ExpandRelativePath (assemblyFile.Directory, xmlSchema); + if (schema.Exists) + { + stream = schema.OpenRead(); + } + } + + return stream; + } + + #endregion + + #region Internal Read Methods + + /// + /// Reads the current xml element into an object. + /// Then moves the xml stream forward to the next element. + /// If the next element is one level deeper, that element is read by calling this method recursively. + /// Finally the current element is positioned on the first unread element. + /// By calling this method at the top level of an xml file, the whole xml file is read. + /// + /// The xml stream + /// The object which will be populated with data within the current xml element + /// The parent of the object, i.e. the object to which the target will be assigned + /// The property of the parent + /// The root object of the xml file + /// Read only property has null value, but a property of this object should be set according to the xml file + private static void Read (XmlReader reader, object target, object parent, string targetProperty, object root) + { + // If it is a reference, the object has been read already and assigned to its parent + string Reference = XmlFile.GetKeyFromXml(target.GetType(), reader, true); + if (Reference != null) + { + XmlFile.MoveToNextElement(reader); // moves to next element + return; + } + + bool inCurrentXmlFile = (reader.GetAttribute ("File") == null); + + if ((reader.GetAttribute ("File") == null) && (Reference == null)) + { + _rootList[target] = root; + } + + XmlFile.RegisterObject (target, reader, root); + + IAggregate aggregate = XmlFile.GetAggregate(target); + XmlFile.ReadAttributes (aggregate, reader, root); + + string defaultProperty = MetaInfo.GetAttribute (target.GetType(), "XmlDefaultProperty") as string; + if (defaultProperty != null) + { + parent = target; + target = aggregate.GetValue(defaultProperty); + targetProperty = defaultProperty; + + aggregate = XmlFile.GetAggregate(target); + } + + int processLevel = reader.Depth; + + string[] properties = aggregate.Properties; + + // Special handling for lists + if (target is IList) + { + IList List = (IList) target; + List.Clear(); + + string listEntryClass = (string) MetaInfo.GetAttributeDefault (parent.GetType(), targetProperty, "XmlItemType", MetaInfo.GetAttribute (target.GetType(), "XmlItemType")); + + if (!reader.IsEmptyElement) + { + XmlFile.MoveToNextElement(reader); // moves to first element + while ((reader.Depth > processLevel) && (reader.NodeType != XmlNodeType.EndElement)) + { + object targetValue = XmlFile.GetObject (reader, ObjectSupport.GetType(listEntryClass), root); + if (targetValue != null) + { + XmlFile.Read (reader, targetValue, target, null, root); + List.Add (targetValue); + } + else + { + XmlFile.MoveToNextElement (reader); + } + } + } + else + { + XmlFile.MoveToNextElement(reader); // moves to next element + } + } + // Special handling for hashtables + else if (target is IDictionary) + { + IDictionary Dictionary = (IDictionary) target; + Dictionary.Clear(); + + if (!reader.IsEmptyElement) + { + XmlFile.MoveToNextElement(reader); // moves to first dictionary element + while ((reader.Depth > processLevel) && (reader.NodeType != XmlNodeType.EndElement)) + { + XmlFile.MoveToNextElement(reader); // moves to key + object keyValue = XmlFile.GetObject (reader, null, root); + XmlFile.Read (reader, keyValue, target, null, root); + + object targetValue = XmlFile.GetObject (reader, null, root); + if (targetValue != null) + { + XmlFile.Read (reader, targetValue, target, null, root); + } + else + { + XmlFile.MoveToNextElement (reader); + } + + Dictionary.Add (keyValue, targetValue); + } + } + else + { + XmlFile.MoveToNextElement(reader); // moves to next element + } + } + else + { + if (!reader.IsEmptyElement) + { + XmlFile.MoveToNextElement(reader); + + // Read all sub elements + while (!reader.EOF && (reader.Depth > processLevel)) + { + string property = XmlFile.GetProperty(aggregate, reader.Name); + if (property != null) + { + if ((Boolean) MetaInfo.GetAttributeDefault (target.GetType(), property, "XmlSkipElement", false)) + { + XmlFile.MoveToNextElement(reader); + while (reader.Depth > processLevel + 1) + { + XmlFile.MoveToNextElement(reader); + } + } + else + { + object targetValue; + if (!aggregate.CanWrite(property)) + { + targetValue = aggregate.GetValue(property); + if (targetValue == null) + { + throw new Exception ("Cannot access readonly element " + property + " at tag " + reader.Name); + } + } + else + { + Type type = ObjectSupport.GetType((string) MetaInfo.GetAttributeDefault (target.GetType(), property, "XmlType", aggregate.GetType(property).FullName)); + targetValue = XmlFile.GetObject (reader, type, root); + } + + if (targetValue != null) + { + XmlFile.Read (reader, targetValue, target, property, root); + if (aggregate.CanWrite(property)) + { + aggregate.SetValue (property, targetValue); + } + } + else + { + XmlFile.MoveToNextElement (reader); + } + } + } + else + { + XmlFile.MoveToNextElement(reader); // moves to next + } + } + } + else + { + XmlFile.MoveToNextElement(reader); // moves to next + } + } + + // Ensures that UpdateSource is only called once per aggregate + if (inCurrentXmlFile) + { + aggregate.UpdateSource(); + } + } + + /// + /// Gets the object associated with an xml element. + /// Different procedures are followed for the following cases: + /// 1) The file is mentioned. Then that file is read and the top object (a.k.a. the root) of that file is returned + /// 2) The file is mentioned and the xml element is defined as a reference. Then that file is read (if not before) and the root of the file is asked for a property with the specified reference. + /// 3) The file isn't mentioned and the xml element is defined as a reference. Then the object is retrieved from the registration. + /// 4) Otherwise the object is instantiated + /// + /// The xml stream + /// The type to instantiate when no type is specified in the xml element + /// The top object of the xml stream + /// The object associated with the xml element + /// Cannot resolve class type when an object for an xml element must be instantiated + /// Cannot find class type + /// Cannot instantiate object for known class type + /// Xml element holds a reference, but referenced object cannot be found + private static object GetObject (XmlReader reader, Type defaultType, object root) + { + object targetValue = null; + + string file = reader.GetAttribute ("File"); + string classType = (string) MetaInfo.GetAttributeDefault(reader.GetAttribute ("Type"), "XmlTypeAlias", reader.GetAttribute ("Type")); + + ObjectSupport.LoadAssembly (reader.GetAttribute ("Assembly")); + + Type targetType = null; + + if (classType != null) + { +// classType = (string) MetaInfo.GetAttributeDefault (ObjectSupport.GetType(classType), "XmlTypeAlias", classType); + targetType = ObjectSupport.GetType (classType); + } + + if ((classType == null) && (defaultType != null)) + { + targetType = defaultType; + } + + string reference = XmlFile.GetKeyFromXml (targetType, reader, true); + if ((targetType == null) && (reference == null)) + { + if (classType != null) + { + throw new Exception ("Cannot find type " + classType + " when reading element tag " + reader.Name); + } + else + { + throw new Exception ("Cannot resolve element tag " + reader.Name); + } + } + + if (file != null) + { + string fullFile = FileSupport.ExpandRelativePath(XmlFile.GetRegisteredFile(root).Directory, file).FullName; + object targetRoot = GetFileObject (fullFile); + if ((reference != null) && (!reference.Equals(""))) + { + if (File.Exists (fullFile)) + { + if (targetRoot == null) + { + targetRoot = XmlFile.GetRead(new FileInfo(fullFile), targetType); + } + + IAggregate aggregate = XmlFile.GetAggregate(targetRoot); + targetValue = aggregate.GetReferencedValue (reference); + + if (targetValue == null) + { + throw new Exception ("Cannot find referenced element " + reference + " at tag " + reader.Name); + } + } + else + { + if (!((bool) MetaInfo.GetAttributeDefault (targetType, "XmlAllowFileMissing", false))) + { + throw new Exception ("Referenced file does not exist: " + fullFile); + } + } + } + else // File != null && Reference == null + { + targetValue = targetRoot; + if (File.Exists (fullFile)) + { + if (targetValue == null) + { + targetValue = ObjectSupport.GetInstance (targetType); + _fileList[targetValue] = file; + + XmlFile.Read (targetValue, new FileInfo(fullFile)); + } + + if (targetValue == null) + { + throw new Exception ("Cannot find referenced element in " + fullFile + " at tag " + reader.Name); + } + + string identifier = reader.GetAttribute("Identifier"); + if (identifier != null) + { + XmlFile.RegisterKey(root, identifier, targetValue); + } + } + else + { + if (!((bool) MetaInfo.GetAttributeDefault (targetType, "XmlAllowFileMissing", false))) + { + throw new Exception ("Referenced file does not exist: " + fullFile); + } + } + } + } + else // file == null + { + if (reference != null) + { + targetValue = XmlFile.GetRegisteredTarget(root, reference); + if (targetValue == null) + { + throw new Exception ("Cannot find referenced element " + reference + " at tag " + reader.Name); + } + } + else // File == null && Reference == null + { + string attributeValue = reader.GetAttribute ("Value"); + if (attributeValue == null) + { + targetValue = ObjectSupport.GetInstance (targetType); + } + else if (targetType.Equals (typeof (FileInfo))) + { + targetValue = FileSupport.ExpandRelativePath (XmlFile.GetRegisteredFile(root).Directory, attributeValue); + } + else if (targetType.Equals (typeof (DirectoryInfo))) + { + targetValue = FileSupport.ExpandRelativeDirectory (XmlFile.GetRegisteredFile(root).Directory, attributeValue); + } + else + { + targetValue = ObjectSupport.GetInstance (targetType, attributeValue, _culture); + } + + if (targetValue == null) + { + throw new Exception ("Cannot instantiate " + targetType.FullName + " at element tag " + reader.Name); + } + } + } + +// if (targetValue == null) +// { +// throw new Exception ("Cannot resolve element tag " + reader.Name); +// } + + return targetValue; + + } + + /// + /// Reads the attributes of the current xml element and uses them to populute the target with + /// + /// The object which is populated with the xml attributes + /// The xml stream + /// Top object of the xml stream + /// Cannot find class type + /// Cannot instantiate object for known class type + private static void ReadAttributes (IAggregate target, XmlReader reader, object root) + { + // Read all attributes + string[] properties = target.Properties; + for (int i = 0; i < properties.Length; i++) + { + string name = XmlFile.GetElementName (target.Source.GetType(), properties[i], false); + if (name != null) + { + string attributeValue = reader.GetAttribute(name); + if (attributeValue != null) + { + string classType = (string) MetaInfo.GetAttributeDefault (target.Source.GetType(), properties[i], "XmlType", target.GetType(properties[i]).FullName); + Type type = ObjectSupport.GetType(classType); + if (type == null) + { + throw new Exception("Could not find class type " + classType); + } + + if (type.Equals(typeof(FileInfo))) + { + attributeValue = FileSupport.ExpandRelativePath (XmlFile.GetRegisteredFile(root).Directory, attributeValue).FullName; + } + + if (type.Equals(typeof(DirectoryInfo))) + { + attributeValue = FileSupport.ExpandRelativeDirectory (XmlFile.GetRegisteredFile(root).Directory, attributeValue).FullName; + } + + object targetValue = ObjectSupport.GetInstance (type, attributeValue, _culture); + if (targetValue == null) + { + throw new Exception("Could not instantiate class type " + type.FullName); + } + + if (target.CanWrite(properties[i])) + { + target.SetValue(properties[i], targetValue); + } + } + } + } + } + + /// + /// Moves the xml stream forward to the next readable element + /// + /// The xml stream + private static void MoveToNextElement(XmlReader reader) + { + reader.Read(); + while (!reader.EOF && (reader.NodeType != XmlNodeType.Element)) + { + reader.Read(); + } + } + + #endregion + + #region Administration + + /// + /// Sets up registration tables for a root object + /// + /// The root object + private static void CreateRegistration (object root) + { + if (_rootKeyList[root] == null) + { + _rootKeyList[root] = new Hashtable(); + } + + if (_rootObjectList[root] == null) + { + _rootObjectList[root] = new Hashtable(); + } + } + + /// + /// Registers that an object is written to or read from the same file as a root object. + /// This method calls RegisterKey internally. + /// + /// The object to register + /// The xml stream + /// The object at the top of an xml file + private static void RegisterObject (object target, XmlReader reader, object root) + { + string key = XmlFile.GetKeyFromXml (target.GetType(), reader, false); + + // Register the target as being read from this xml file + if (key != null) + { + XmlFile.RegisterKey (root, key, target); + } + } + + /// + /// Registers an object with a unique key within the scope of the root. + /// + /// The root object + /// The unique key + /// The object to register + private static void RegisterKey (object root, object identifier, object target) + { + Hashtable keys = (Hashtable) _rootKeyList[root]; + keys[identifier] = target; + + Hashtable objects = (Hashtable) _rootObjectList[root]; + objects[target] = identifier; + } + + /// + /// Gets a key from registration given the object. + /// The key will only be found if RegisterKey or RegisterObject has been called before. + /// + /// The root object, the scope where is searched for the object + /// The object to search for + /// The key, null if not found + private static object GetRegisteredKey (object root, object target) + { + Hashtable objects = (Hashtable) _rootObjectList[root]; + if (objects != null) + { + return objects[target]; + } + + return null; + } + + /// + /// Gets an object from registration given the key. + /// The object will only be found if RegisterKey or RegisterObject has been called before. + /// + /// The root object, the scope where is searched for the key + /// The key to search for + /// The associated object, null if not found + public static object GetRegisteredTarget (object root, object identifier) + { + Hashtable keys = (Hashtable) _rootKeyList[root]; + if (keys != null) + { + return keys[identifier]; + } + + return null; + } + + /// + /// Gets the file associated with an object. + /// The object should be the root of the file, i.e. associated with the top xml element. + /// + /// + /// The file, null if the object isn't a root of a file + public static FileInfo GetRegisteredFile (object anObject) + { + if (_fileList[anObject] != null) + { + return new FileInfo((string) _fileList[anObject]); + } + + return null; + } + + /// + /// Gets a list of all objects, whcih are known to be the root of a file. + /// The root of a file is the object associated with the top xml element. + /// + /// + public static object[] GetRegisteredObjects() + { + ArrayList list = new ArrayList(_fileList.Keys); + return list.ToArray(); + } + + /// + /// Gets the root object of a file + /// + /// Full name of the file + /// The root object, null if not found + private static object GetFileObject(string File) + { + IDictionaryEnumerator DictionaryEnumerator = _fileList.GetEnumerator(); + while (DictionaryEnumerator.MoveNext()) + { + if (DictionaryEnumerator.Value.Equals (File)) + { + object TargetValue = DictionaryEnumerator.Key; + return TargetValue; + } + } + + return null; + } + + /// + /// Gets the file registered with an object and if not found, a new file is created + /// + /// The object an associated file is searched for + /// Directory in which a new file will be created, if no file exists + /// The associated file + private static FileInfo GetForcedRegisteredFile (object target, DirectoryInfo dir) + { + if (XmlFile.GetRegisteredFile(target) != null) + { + return XmlFile.GetRegisteredFile(target); + } + + FileInfo newFile = new FileInfo(dir + "\\" + target.GetType().Name + "1.xml"); + for (int i = 1; newFile.Exists; i++) + { + newFile = new FileInfo (dir + "\\" + target.GetType().Name + i.ToString() + ".xml"); + } + + _fileList[target] = newFile; + + return newFile; + } + + /// + /// Removes an object of all registrations. + /// To be used for releasing memory + /// + /// The object to be removed from registrations + public static void DisposeObject (object disposeObject) + { + _fileList[disposeObject] = null; + _readObjectsList.Remove(disposeObject); + _unreadObjectsList.Remove(disposeObject); + + _rootList[disposeObject] = null; + + foreach (object o in new ArrayList(_rootList.Keys)) + { + if (_rootList[o] == disposeObject) + { + _rootList[o] = null; + } + } + + _rootKeyList[disposeObject] = null; + _rootObjectList[disposeObject] = null; + } + + #endregion + + #region Aggregate + + /// + /// Gets the aggregate of an object. + /// The aggregate is an object, which can be used for querying the object in a generic way. + /// The MetaInfo attribute "ObjectAggregate" is used to identify the class type of the aggregate, if not present DefaultAggregate is used. + /// The same aggregate object is reused when the same object is passed. + /// + /// + /// + /// The object an aggregate is asked for + /// The aggregate object + /// Cannot find aggregate class type + /// Cannot instantiate aggregate for known class type + private static IAggregate GetAggregate (object target) + { + IAggregate aggregate = (IAggregate) _aggregateTable[target]; + if (aggregate == null) + { + string classType = (string)MetaInfo.GetAttributeDefault (target.GetType(), "ObjectAggregate", typeof (DefaultAggregate).FullName); + aggregate = (IAggregate) ObjectSupport.GetInstance (classType, target); + if (aggregate == null) + { + throw new Exception("Could not find class type " + classType); + } + + _aggregateTable[target] = aggregate; + } + + aggregate.UpdateAggregate(); + + return aggregate; + } + + #endregion + + #region Keys of objects + + /// + /// Gets a string from an xml file which uniquely identifies the object which is currently parsed + /// This string reflects the identification of the object, e.g. the ID of the object + /// + /// + /// The xml file stream + /// Indication whether the current xml element refers to a prior definition of the object + /// The identification string + private static string GetKeyFromXml(Type TargetType, XmlReader reader, bool referenced) + { + string key = null; + + if (referenced) + { + string Reference = reader.GetAttribute ("Reference"); + if (Reference != null) + { + //key = Reference + ";"; + return Reference; + } + + if (TargetType != null) + { + string[] property = MetaInfo.GetProperties(TargetType); + + // Try all properties which are registered as key + for (int i = 0; i < property.Length; i++) + { + if ((Boolean) MetaInfo.GetAttributeDefault (TargetType, property[i], "XmlKey", false)) + { + string KeyValue = reader.GetAttribute ((string) MetaInfo.GetAttributeDefault (TargetType, property[i], "XmlRefName", property[i])); + if (KeyValue != null) + { + key += KeyValue + ";"; + } + } + } + } + } + else + { + string Identifier = reader.GetAttribute("Identifier"); + if (Identifier != null) + { + //key = Identifier + ";"; + return Identifier; + } + + string[] property = MetaInfo.GetProperties(TargetType); + + // Try all properties which are registered as key + for (int i = 0; i < property.Length; i++) + { + if ((Boolean) MetaInfo.GetAttributeDefault (TargetType, property[i], "XmlKey", false)) + { + string KeyValue = reader.GetAttribute ((string) MetaInfo.GetAttributeDefault (TargetType, property[i], "XmlName", property[i])); + if (KeyValue != null) + { + key += KeyValue + ";"; + } + } + } + } + + if (key != null) + { + key += TargetType.FullName; + } + + return key; + } + + /// + /// Gets the key from an object. + /// If the key isn't unique and the property allows for key generation, a unique key is generated. + /// + /// + /// + /// + private static string GetKeyFromObject(IAggregate target, object root) + { + string key = null; + int lastkey = 0; + + string[] property = target.Properties; + int generatedProperty = -1; + + bool generationPossible = true; + while (generationPossible) + { + key = null; + lastkey++; + generationPossible = false; + + for (int i = 0; i < property.Length; i++) + { + if ((Boolean) MetaInfo.GetAttributeDefault (target.Source.GetType(), property[i], "XmlKey", false)) + { + object KeyObject = target.GetValue(property[i]); + if ((KeyObject != null) && (!KeyObject.ToString().Trim().Equals(""))) + { + key += KeyObject.ToString() + ";"; + } + else if ((Boolean) MetaInfo.GetAttributeDefault (target.Source.GetType(), property[i], "XmlAllowGeneration", true)) + { + generationPossible = true; + generatedProperty = i; + key += lastkey + ";"; + } + } + } + + if (key != null) + { + key += target.Source.GetType().FullName; + + object registeredObject = XmlFile.GetRegisteredTarget(root, key); + if ((registeredObject == null) || (registeredObject == target)) + { + if (generatedProperty != -1) + { + Type PropertyType = target.GetType(property[generatedProperty]); + if (PropertyType.Equals(typeof(string))) + { + target.SetValue(property[generatedProperty], Convert.ToString(lastkey)); + } + else if (PropertyType.Equals(typeof(Int16)) || PropertyType.Equals(typeof(Int32)) || PropertyType.Equals(typeof(Int64))) + { + target.SetValue(property[generatedProperty], lastkey); + } + } + return key; + } + } + } + + return key; + } + + #endregion + + #region Public Write Methods + + /// + /// Writes an object to an xml file + /// The registered file of the object will be used as xml file. This is the file + /// to which the object was written to or read from in an earlier stage + /// + /// The object to be written + /// Cannot derive key for object which must be written as a reference. Probably MetaInfo is missing for the class and subject XmlKeyexception> + public static void Write (object target) + { + object fileobj = _fileList[target]; + FileInfo file = null; + + if (fileobj is FileInfo) + { + file = (FileInfo) fileobj; + } + + if (fileobj is string) + { + file = new FileInfo((string)fileobj); + } + + if (file != null) + { + XmlFile.Write (target, file); + } + } + + /// + /// Writes an object to an xml file + /// + /// The object to write + /// The xml file + /// Cannot derive key for object which must be written as a reference. Probably MetaInfo is missing for the class and subject XmlKeyexception> + public static void Write (object target, FileInfo file) + { + XmlFile.CreateRegistration (target); + + FileInfo targetFile = XmlFile.GetTempFile(file.Directory); + + XmlTextWriter writer = new XmlTextWriter(targetFile.FullName, null); + + _fileList[target] = file.FullName; + + //Use automatic indentation for readability. + writer.Formatting = Formatting.Indented; + + writer.WriteStartDocument(); + + string xmlStartElement = (string) MetaInfo.GetAttributeDefault (target.GetType(), "XmlStartElement", target.GetType().Name); + writer.WriteStartElement(xmlStartElement); + + string xmlNameSpace = (string) MetaInfo.GetAttribute (target.GetType(), "XmlNameSpace"); + if (xmlNameSpace != null) + { + writer.WriteAttributeString("xmlns", xmlNameSpace); + } + + // Write the actual values + XmlFile.Write (writer, target, null, null, null, target, null, new ArrayList()); + + // end the root element + //Write the XML to file and close the writer + writer.WriteEndElement(); + writer.Close(); + + file.Delete(); + targetFile.MoveTo (file.FullName); + } + + #endregion + + #region Internal Write Methods + + /// + /// Writes an object to xml. This will write + /// 1) the type and assembly of the object to write + /// 2) xml attributes for all properties of the object which can be written as xml attributes + /// 3) xml elements for all other properties (this this method is called recursively) + /// + /// The xml stream + /// The object to be written + /// The object in the xml stream, which is associated with the xml parent element + /// Type of the object + /// Type expected + /// Object associated with the top of the xml stream + /// Name of the xml parent tag + /// List of all object written so far in this xml stream + /// Cannot derive key for object which must be written as a reference. Probably MetaInfo is missing for the class and subject XmlKeyexception> + private static void Write (XmlTextWriter writer, object target, object parent, string targetProperty, Type expectedType, object root, string parentName, ArrayList writtenObjects) + { + if (target == null) + { + return; + } + + bool reference = false; + + if ((expectedType == null) || (!expectedType.Equals(target.GetType()))) + { + string xmlTypeName = (string) MetaInfo.GetAttributeDefault (target.GetType().FullName, "XmlTypeName", target.GetType().FullName); + writer.WriteAttributeString("Type", xmlTypeName); + if (ObjectSupport.IsLoadedAssembly(target.GetType().Assembly) && !(bool) MetaInfo.GetAttributeDefault(target.GetType().Assembly, "XmlSkipElement", false)) + { + if (target.GetType().Assembly.GlobalAssemblyCache) + { + writer.WriteAttributeString("Assembly", target.GetType().Assembly.FullName); + } + else + { + writer.WriteAttributeString("Assembly", target.GetType().Assembly.Location); + } + } + } + + // Check whether this object has been written in this xml file already + // If so, just write the reference definition + if (CollectionSupport.ContainsObject (writtenObjects, target)) + { + object key = XmlFile.GetRegisteredKey(root, target); + if (key == null) + { + throw new Exception ("Could not derive key for referenced object " + target.ToString()); + } + if ((Boolean) MetaInfo.GetAttributeDefault (target.GetType(), "ObjectIndexAsKey", false)) + { + writer.WriteAttributeString("Reference", key.ToString()); + } + reference = true; + } + + IAggregate aggregate = XmlFile.GetAggregate(target); + aggregate.UpdateAggregate(); + + // Find the parent under which the target will be written +/* string parentProperty = (string) MetaInfo.GetAttributeDefault (target.GetType(), "XmlParent", null); + if (parentProperty != null) + { + object parentValue = aggregate.GetValue (parentProperty); + if (parentValue != null) + { + object rootParent = _rootList[parentValue]; + _rootList[target] = rootParent; + } + }*/ + + // Check whether the object will be written in another file + // This should occur when + // 1. The root of this object isn't the same as the root writing at this moment + // 2. The object is declared that it should be written in it's own file + // The root is the object at the top of the xml file + bool anotherFile = XmlFile.DifferentFiles (target, root); + + if (!anotherFile) + { + if (target != root) + { + anotherFile = (Boolean) MetaInfo.GetAttributeDefault (target.GetType(), "XmlFile", false); + if (anotherFile) + { + _rootList[target] = target; + } + } + } + + if (anotherFile) + { + if (_fileList[_rootList[target]] == null) + { + XmlFile.GetForcedRegisteredFile(_rootList[target], XmlFile.GetRegisteredFile(root).Directory); + XmlFile.Write (_rootList[target]); + } + + writer.WriteAttributeString("File", FileSupport.GetRelativePath (XmlFile.GetRegisteredFile(root).Directory, new FileInfo((string) _fileList[_rootList[target]]))); + if ((Boolean) MetaInfo.GetAttributeDefault (target.GetType(), "ObjectIndexAsKey", false)) + { + writer.WriteAttributeString("Reference", XmlFile.GetRegisteredKey(_rootList[target], target).ToString()); + } + reference = true; + } + + DirectoryInfo baseDirectory = XmlFile.GetRegisteredFile(root).Directory; + + if (XmlFile.IsAttribute(target.GetType())) + { + writer.WriteAttributeString("Value", XmlFile.ToString(target, baseDirectory)); + return; + } + + if (!reference) + { + _rootList[target] = root; + + // Add the object to the written objects list + int identifier = writtenObjects.Count + 1; + writtenObjects.Add(target); + + string identificationString = Convert.ToString(identifier); + if (!((Boolean) MetaInfo.GetAttributeDefault (target.GetType(), "ObjectIndexAsKey", false))) + { + identificationString = XmlFile.GetKeyFromObject(aggregate, root); + } + + if (identificationString != null) + { + XmlFile.RegisterKey(root, identificationString, target); + } + + if ((Boolean) MetaInfo.GetAttributeDefault (target.GetType(), "ObjectIndexAsKey", false)) + { + writer.WriteAttributeString("Identifier", Convert.ToString(identifier)); + } + } + + // Write all xml attributes + if (!(target is IList) && !(target is IDictionary)) + { + string[] property = XmlFile.GetSortedProperties(aggregate); + + // Pass 1: Write all properties which can be represented as an attribute + for (int i = 0; i < property.Length; i++) + { + if (IsAttribute (aggregate.GetType(property[i]))) + { + if (XmlFile.PropertyWrite (target.GetType(), property[i], reference)) + { + bool skipElement = (Boolean) MetaInfo.GetAttributeDefault (target.GetType(), property[i], "XmlSkipElement", false); + if (!skipElement) + { + object targetValue = aggregate.GetValue(property[i]); + if (targetValue != null) + { + string name = XmlFile.GetElementName(target.GetType(), property[i], reference); + writer.WriteAttributeString(name, XmlFile.ToString(targetValue, baseDirectory)); + } + } + } + } + } + } + + // Move the target to the default property if any + string defaultProperty = MetaInfo.GetAttribute (target.GetType(), "XmlDefaultProperty") as string; + if (defaultProperty != null) + { + parent = target; + target = aggregate.GetValue (defaultProperty); + targetProperty = defaultProperty; + aggregate = XmlFile.GetAggregate(target); + aggregate.UpdateAggregate(); + parentName = XmlFile.GetElementName (parent.GetType(), defaultProperty, false); + } + + // Special handling for lists + if (target is IList) + { + if (parent == null) + { + parent = target; + } + + string listEntryClass = (string) MetaInfo.GetAttributeDefault (parent.GetType(), targetProperty, "XmlItemType", MetaInfo.GetAttribute (target.GetType(), "XmlItemType")); + + for (int j = 0; j < ((IList) target).Count; j++) + { + string name = XmlFile.GetSingleName(parentName); + if (CollectionSupport.ContainsObject(writtenObjects, ((IList) target)[j])) + { + name = (string) MetaInfo.GetAttributeDefault (parent.GetType(), targetProperty, "XmlRefItemName", MetaInfo.GetAttributeDefault (parent.GetType(), targetProperty, "XmlItemName", name)); + } + else + { + name = (string) MetaInfo.GetAttributeDefault (parent.GetType(), targetProperty, "XmlItemName", name); + } + + writer.WriteStartElement(name); + XmlFile.Write (writer, ((IList) target)[j], null, null, ObjectSupport.GetType(listEntryClass), root, name, writtenObjects); + writer.WriteEndElement(); // end Name + } + } + // Special handling for hashtables + else if (target is IDictionary) + { + if (parent == null) + { + parent = target; + } + + IDictionaryEnumerator DictionaryEnumerator = ((IDictionary) target).GetEnumerator(); + while (DictionaryEnumerator.MoveNext()) + { + if (DictionaryEnumerator.Value != null) + { + string name = (string) MetaInfo.GetAttributeDefault (parent.GetType(), targetProperty, "XmlItemName", XmlFile.GetSingleName(parentName)); + writer.WriteStartElement(name); + writer.WriteStartElement("Key"); + XmlFile.Write (writer, DictionaryEnumerator.Key, null, null, null, root, null, writtenObjects); + writer.WriteEndElement(); // key + writer.WriteStartElement("Value"); + XmlFile.Write (writer, DictionaryEnumerator.Value, null, null, null, root, null, writtenObjects); + writer.WriteEndElement(); // value + writer.WriteEndElement(); // property + } + } + } + // Normal write procedure + else + { + // Get all properties which must be written + string[] property = XmlFile.GetSortedProperties(aggregate); + + // Pass 2: Write all properties which must be represented as a sub element + for (int i = 0; i < property.Length; i++) + { + if (!IsAttribute (aggregate.GetType(property[i]))) + { + if (XmlFile.PropertyWrite (target.GetType(), property[i], reference)) + { + bool skipElement = (Boolean) MetaInfo.GetAttributeDefault (target.GetType(), property[i], "XmlSkipElement", false); + if (!skipElement) + { + object targetValue = aggregate.GetValue(property[i]); + + if (targetValue != null) + { + string name = XmlFile.GetElementName(target.GetType(), property[i], reference || CollectionSupport.ContainsObject(writtenObjects, targetValue) || XmlFile.DifferentFiles(targetValue, root)); + //Get instance of the attribute. + writer.WriteStartElement(name); + + Type type = ObjectSupport.GetType((string) MetaInfo.GetAttributeDefault (target.GetType(), property[i], "XmlType", aggregate.GetType(property[i]).FullName)); + if (!aggregate.CanWrite(property[i])) + { + type = targetValue.GetType(); // this enforces that no type information is written; it cannot be used anyway, because the property is read only + } + XmlFile.Write (writer, targetValue, target, property[i], type, root, name, writtenObjects); + + writer.WriteEndElement(); // end Name + } + } + } + } + } + } + } + + /// + /// Gets the string representing an object. + /// This string value is used for writing the object in an xml file. + /// + /// The object a string value is requested for + /// Directory, which is used in case of files. Then the relative file path is returned + /// The string representation + private static string ToString (object target, DirectoryInfo directory) + { + if (target is FileInfo) + { + return FileSupport.GetRelativePath(directory, (FileInfo) target); + } + else if (target is DirectoryInfo) + { + return FileSupport.GetRelativePath(directory, (DirectoryInfo) target); + } + else if (target is IFormattable) + { + return ((IFormattable) target).ToString (null, _culture); + } + else if (target is bool) + { + return ((bool) target).ToString().ToLower(); + } + else + { + return target.ToString(); + } + } + + /// + /// Gets all properties of an aggregate in a sorted way. + /// MetaInfo attribute "XmlIndex" is used for the sorting. + /// + /// The aggregate + /// Sorted property names + private static string[] GetSortedProperties (IAggregate aggregate) + { + SortedList list = new SortedList(); + string[] properties = aggregate.Properties; + + for (int i = 0; i < properties.Length; i++) + { + int index = (int)MetaInfo.GetAttributeDefault (aggregate.Source.GetType(), properties[i], "XmlIndex", 1000); + string listIndex = index.ToString("D9") + " " + properties[i].ToLower(); + if (!list.Contains (listIndex)) + { + list.Add (listIndex, properties[i]); + } + } + + /* for (int i = 0; i < list.GetValueList()..Values.Count; i++) + { + propertyList.Add (list.GetByIndex(i)); + }*/ + + ArrayList propertyList = new ArrayList(list.Values); + return (string[]) propertyList.ToArray(typeof(string)); + } + + /// + /// Gets the xml element name for a specific property + /// + /// The class type containing the property + /// The property to write + /// Identifies whether the property is to be written completely or just a reference, because the property has been written before + /// The xml element name + private static string GetElementName(Type type, string property, bool reference) + { + if (reference) + { + return (string) MetaInfo.GetAttributeDefault (type, property, "XmlRefName", MetaInfo.GetAttributeDefault (type, property, "XmlName", property)); + } + else + { + return (string) MetaInfo.GetAttributeDefault (type, property, "XmlName", property); + } + } + + /// + /// Indicates whether two objects are written in the same file. + /// This should occur when 1) the root of this object isn't the same as the root writing at this moment + /// or 2) the object is declared that it should be written in it's own file. + /// The root is the object at the top of the xml file + /// + /// First object + /// Second object + /// Indication same file + private static bool DifferentFiles (object target, object root) + { + // Find the parent under which the target will be written + IAggregate aggregate = XmlFile.GetAggregate(target); + + if (_rootList[target] == null) + { + string parentProperty = (string) MetaInfo.GetAttributeDefault (target.GetType(), "XmlParent", null); + if (parentProperty != null) + { + object parentValue = aggregate.GetValue (parentProperty); + if (parentValue != null) + { + object rootParent = _rootList[parentValue]; + _rootList[target] = rootParent; + } + } + } + + return (_rootList[target] != null) && (_rootList[target] != root); + } + + /// + /// Indicates whether a property should be written + /// + /// The class type of the object containing the property + /// The property to write + /// Identifies whether the property is to be written completely or just a reference, because the property has been written before + /// Boolean indicating whether the property is to be written + private static bool PropertyWrite (Type type, string property, bool reference) + { + bool allowed = !reference && ((Boolean) MetaInfo.GetAttributeDefault (type, property, "XmlElement", true)); + allowed = allowed || (reference && (((Boolean) MetaInfo.GetAttributeDefault (type, property, "XmlRefElement", false)) || ((Boolean) MetaInfo.GetAttributeDefault (type, property, "XmlKey", false)))); + + return allowed; + } + + /// + /// Gets the single word given a plural word. + /// For example, plural word "variables" would return "variable". + /// + /// The plural word + /// The single word, "Item" if nothing specific can be derived + private static string GetSingleName(string parentName) + { + if (parentName == null) + { + return "Item"; + } + + string singleName = ""; + + if (parentName.EndsWith("List") || parentName.EndsWith("list")) + { + singleName = parentName.Substring (0, parentName.Length - 4); + } + + if (parentName.EndsWith("Set") || parentName.EndsWith("set")) + { + singleName = parentName.Substring (0, parentName.Length - 3); + } + + if (parentName.EndsWith("Collection") || parentName.EndsWith("collection")) + { + singleName = parentName.Substring (0, parentName.Length - 10); + } + + if (parentName.EndsWith("s")) + { + singleName = parentName.Substring (0, parentName.Length - 1); + } + + if (parentName.EndsWith("ies")) + { + singleName = parentName.Substring (0, parentName.Length - 3) + "y"; + } + + if (singleName.Trim().Equals("")) + { + singleName = "Item"; + } + + return singleName; + } + + /// + /// Gets the property given a specific xml element name + /// + /// The object which will contain the property + /// The xml element name + /// The property name, null if not found + private static string GetProperty (IAggregate target, string name) + { + string[] properties = target.Properties; + for (int i = 0; i < properties.Length; i++) + { + string elementName = XmlFile.GetElementName (target.Source.GetType(), properties[i], false); + if ((elementName != null) && (elementName.Equals(name))) + { + return properties[i]; + } + + elementName = XmlFile.GetElementName (target.Source.GetType(), properties[i], true); + if ((elementName != null) && (elementName.Equals(name))) + { + return properties[i]; + } + } + + return null; + } + + /// + /// Indicates whether an object can be written as an xml attribute (instead of an xml element) + /// + /// The class type of the object which should be written + /// Indication of writable as xml attribute + private static bool IsAttribute (Type targetType) + { + return (targetType.IsPrimitive) || (targetType.IsEnum) || (targetType.Equals (typeof(string))) || (targetType.Equals (typeof(FileInfo))) || (targetType.Equals (typeof(DirectoryInfo))) || (targetType.Equals(typeof(DateTime))); + } + + /// + /// Gets a temporary file. + /// When writing an xml file, first a temporary file is used and later it is moved to the actually intended file. + /// In this way the original file is left untouched when an exception occurs. + /// + /// The directory where the temp file should be located + /// The temporary file + private static FileInfo GetTempFile(DirectoryInfo TempDirectory) + { + int index = 0; + while (true) + { + FileInfo file = new FileInfo(TempDirectory.FullName + "\\temp" + index + ".xml"); + if (!file.Exists) + { + return file; + } + + index++; + } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/XmlFileMetaInfo.htm b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/XmlFileMetaInfo.htm new file mode 100644 index 00000000..cf91b7a2 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/DevelopmentSupport/XmlFileMetaInfo.htm @@ -0,0 +1,170 @@ + + + New Page 1 + + + + + +

    Oatc.OpenMI.Sdk.DevelopmentSupport
    +
    +
    MetaInfo used by XmlFile
    +
    +
    +


    + +

    +

    This list explains how MetaInfo is used by XmlFile

    +

    tag: ObjectAggregate
    +queried for: each class type encountered during reading and +writing
    +expected type: string
    +default value: DefaultAggregate
    +meaning: Specifies the class type of an aggregate. +For each object identified by an xml element an aggregate is instantiated. The aggregate serves as an "in +between" object between the object and XmlFile. NOTE: XmlFile expects that +the aggregate has a constructor with one argument, the underlying object.

    +

    tag: XmlFile
    +queried for: each class type encountered during writing
    +expected type: bool
    +default value: false
    +meaning: Indicates whether an object of the specified type should be +written as a separate XML file. An XML file and file name can be generated if +not known to the XmlFile object. A relative path to this XML file is written in +the parent XML file. On reading, if a reference is encountered to such an XML +file, this referred file is read immediately.

    + +

    tag: +XmlSchema
    queried for: the class type encountered at +the top of an xml file during reading
    expected type: +string
    default value: null
    meaning: The +name of the xsd file against which xml validation is performed. When this value +is null, no xml validation is performed.

    + +

    tag: +XmlNameSpace
    queried for: the class type encountered at the +top of an xml file during writing
    expected type: +string
    default value: null
    meaning: The +xml namespace. When validation is performed against a schema (xsd file), the xml +file must have an xml namespace. For correct validation the xml namespace +must be the same as the one specified in the xsd file.

    + +

    tag: +XsdPackage
    queried for: the class type encountered at the +top of an xml file during reading
    expected type: +string
    default value: null
    meaning: +Indicates the assembly which contains the xsd file (denoted with +XmlSchema).

    +
    +
    +

    tag:XmlSkipElement
    + queried for: each property in an object during writing
    + expected type: bool
    + default value: false
    + meaning: Indicates whether a property should be skipped when written to + XML. Also assemblies can be skipped. In that case one must make sure that the + assembly has been loaded in another way when reading the xml file.

    +

    + tag: XmlKey
    + queried for: each property in an object during writing
    + expected type: bool
    + default value: false
    + meaning: Indicates whether a property should be written to XML if the + corresponding object has been written to the XML file before. This occurs when + the data structure isn't hierarchical. Only the first time it is encountered on + writing, it is written out completely. Next times only a reference is written + to the first occurrence. The key of the object is used as reference.
    + The key of the entire object is the combination of all +properties denoted as XML key. This key should be unique per class type per XML +file.

    + +

    tag: XmlAllowGeneration
    + queried for: each property in an object during writing, which + is denoted as an xml key.
    + expected type: bool
    + default value: true
    + meaning: Indicates whether generation of a key value is + allowed if the property value is empty (i.e. null or a string of length zero or + a string only containing spaces). If generation is to be carried out, a unique + number is assigned to the property value. The property type is expected to be + an integer or a string. +

    +

    tag: XmlName
    + queried for: each property in an object during writing and + reading
    + expected type: string
    + default value: the property name as defined in the class
    + meaning: Provides the name for the XML element or XML attribute in the + XML file for a property. +

    +

    tag: XmlRefName
    + queried for: each property in an object during writing and + reading, if the object is or will be written as a reference to a prior object + in the XML file.
    + expected type: string
    + default value: the XML name
    + meaning: Provides the name for the XML element or XML attribute in the + XML file for a property.

    +

    tag: XmlItemName
    + queried for: each member of a collection during writing
    + expected type: string
    + default value: the single name derived from the XML name of the + collection object, e.g. the single name of the collection name "nodes", "node + list", "node set" or "node collection" will be "node".
    + meaning: Provides the name for the xml element in the xml file for a + collection member.

    +

    tag: XmlRefItemName
    + queried for: each member of a collection during writing, if + the member will be written as a reference to a prior object in the XML file.
    + expected type: string
    + default value: the single name derived from the XML name of the + collection.
    + meaning: Provides the name for the XML element in the XML file for a + collection member. +

    +

    tag: XmlItemType
    + queried for: each collection property in an object during + reading and writing
    + expected type: string
    + default value: null
    + meaning: Defines the class type of  collection members. + If set, class type information can be omitted during writing. +

    +

    tag: XmlTypeAlias
    + queried for: each type definition encountered in the XML file + during reading
    + expected type: string
    + default value: the same type definition.
    + meaning: Defines the class name (including namespaces) to be + instantiated for a type definition in the XML file. This is useful if a class + has been renamed and XML files still contain the old class name.

    +

    tag: XmlTypeName
    + queried for: each type definition encountered in the XML file + during writing
    + expected type: string
    + default value: the same type definition.
    + meaning: Defines the way the class name is written in xml for + the type attribute. This is useful if a readable class name is desired in + the xml file. When setting a value for XmlTypeName, a corresponding value for + XmlTypeAlias is needed.

    +

    tag:XmlParent
    + queried for: each property in an object during writing
    + expected type: object
    + default value: null
    + meaning: Defines the property of an object, which functions as its + parent, i.e. the xml parent element in the xml file. For example, the + IElementSet has Parent for this value. When the aggregate of the element set + is asked for the property Parent, it searches for the linkable component + which owns the element set.
    + If the value is null, XmlFile assumes that the object which has this object as + a property is the parent.

    +

    tag: XmlIndex
    + queried for: each property in an object during writing
    + expected type: integer
    + default value: 1000
    + meaning: Defines a sorting number of the XML element. During write, XML + child elements are sorted according to this sorting number, if equal + alphabetically.

    +
    + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Oatc.OpenMI.Sdk.sln b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Oatc.OpenMI.Sdk.sln new file mode 100644 index 00000000..4c5f304c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Oatc.OpenMI.Sdk.sln @@ -0,0 +1,74 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Backbone", "Backbone\Oatc.OpenMI.Sdk.Backbone.csproj", "{23C206AE-CBEF-4FD1-9928-BF04147B62B2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Backbone.UnitTest", "Backbone\UnitTest\Oatc.OpenMI.Sdk.Backbone.UnitTest.csproj", "{1EF5387C-0764-4E42-99B9-78356B582281}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.DevelopmentSupport", "DevelopmentSupport\Oatc.OpenMI.Sdk.DevelopmentSupport.csproj", "{B7BE8C7F-0679-4022-81A5-6A314C058429}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest", "DevelopmentSupport\UnitTest\Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest.csproj", "{2E021CD1-94DA-4431-A5D7-1E810A834119}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Buffer", "Buffer\Oatc.OpenMI.Sdk.Buffer.csproj", "{C9844E74-074D-46FA-AEF6-371B3481468B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Buffer.UnitTest", "Buffer\UnitTest\Oatc.OpenMI.Sdk.Buffer.UnitTest.csproj", "{606EEBBC-96CF-4A21-9AA6-8B4674FF2996}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Spatial", "Spatial\Oatc.OpenMI.Sdk.Spatial.csproj", "{4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Spatial.UnitTest", "Spatial\UnitTest\Oatc.OpenMI.Sdk.Spatial.UnitTest.csproj", "{9020FF67-3C7C-4CC2-9595-53C6BAD2F66E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Wrapper", "Wrapper\Oatc.OpenMI.Sdk.Wrapper.csproj", "{3DF52260-A727-405B-88A8-630BCE9085AC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Wrapper.UnitTest", "Wrapper\UnitTest\Oatc.OpenMI.Sdk.Wrapper.UnitTest.csproj", "{D1CF8C4C-2941-49A6-A212-DCDBBF71E088}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {23C206AE-CBEF-4FD1-9928-BF04147B62B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23C206AE-CBEF-4FD1-9928-BF04147B62B2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23C206AE-CBEF-4FD1-9928-BF04147B62B2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23C206AE-CBEF-4FD1-9928-BF04147B62B2}.Release|Any CPU.Build.0 = Release|Any CPU + {1EF5387C-0764-4E42-99B9-78356B582281}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1EF5387C-0764-4E42-99B9-78356B582281}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1EF5387C-0764-4E42-99B9-78356B582281}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1EF5387C-0764-4E42-99B9-78356B582281}.Release|Any CPU.Build.0 = Release|Any CPU + {B7BE8C7F-0679-4022-81A5-6A314C058429}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7BE8C7F-0679-4022-81A5-6A314C058429}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7BE8C7F-0679-4022-81A5-6A314C058429}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7BE8C7F-0679-4022-81A5-6A314C058429}.Release|Any CPU.Build.0 = Release|Any CPU + {2E021CD1-94DA-4431-A5D7-1E810A834119}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E021CD1-94DA-4431-A5D7-1E810A834119}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E021CD1-94DA-4431-A5D7-1E810A834119}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E021CD1-94DA-4431-A5D7-1E810A834119}.Release|Any CPU.Build.0 = Release|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Release|Any CPU.Build.0 = Release|Any CPU + {606EEBBC-96CF-4A21-9AA6-8B4674FF2996}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {606EEBBC-96CF-4A21-9AA6-8B4674FF2996}.Debug|Any CPU.Build.0 = Debug|Any CPU + {606EEBBC-96CF-4A21-9AA6-8B4674FF2996}.Release|Any CPU.ActiveCfg = Release|Any CPU + {606EEBBC-96CF-4A21-9AA6-8B4674FF2996}.Release|Any CPU.Build.0 = Release|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Release|Any CPU.Build.0 = Release|Any CPU + {9020FF67-3C7C-4CC2-9595-53C6BAD2F66E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9020FF67-3C7C-4CC2-9595-53C6BAD2F66E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9020FF67-3C7C-4CC2-9595-53C6BAD2F66E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9020FF67-3C7C-4CC2-9595-53C6BAD2F66E}.Release|Any CPU.Build.0 = Release|Any CPU + {3DF52260-A727-405B-88A8-630BCE9085AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DF52260-A727-405B-88A8-630BCE9085AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DF52260-A727-405B-88A8-630BCE9085AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DF52260-A727-405B-88A8-630BCE9085AC}.Release|Any CPU.Build.0 = Release|Any CPU + {D1CF8C4C-2941-49A6-A212-DCDBBF71E088}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1CF8C4C-2941-49A6-A212-DCDBBF71E088}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1CF8C4C-2941-49A6-A212-DCDBBF71E088}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1CF8C4C-2941-49A6-A212-DCDBBF71E088}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/AssemblyInfo.cs new file mode 100644 index 00000000..44e5c760 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Utilities Spatial Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4")] +[assembly: AssemblyCopyright("BSD License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/DataOperation.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/DataOperation.cs new file mode 100644 index 00000000..2608bbbb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/DataOperation.cs @@ -0,0 +1,122 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// Summary description for DataOperation. + /// + [Serializable] + public class DataOperation : Backbone.DataOperation + { + /// + /// Redecalration of the overloaded constructor from the base class. + /// The redeclaration is probably needed since constructors can not be + /// marked as virtual. + /// + public DataOperation() + { + } + + /// + /// Redecalration of the overloaded constructor from the base class. + /// The redeclaration is probably needed since constructors can not be + /// marked as virtual. + /// + public DataOperation(IDataOperation source) : base(source) + { + } + + /// + /// Redecalration of the overloaded constructor from the base class. + /// The redeclaration is probably needed since constructors can not be + /// marked as virtual. + /// + public DataOperation(string ID) : base(ID) + { + } + + /// + /// For a given combination of inputExchangeItem, outputExchangeItem and list of dataOperation + /// it is decided if the dataOperations constitutes a valid set seen from a spatial settings + /// point of view. + /// + /// The input exchange item + /// The output exchange item + /// List of selected dataOperations + public override bool IsValid(IInputExchangeItem inputExchangeItem, IOutputExchangeItem outputExchangeItem, IDataOperation[] SelectedDataOperations) + { + bool returnValue = true; + bool methodAvaileble = false; + ElementMapper elementMapper = new ElementMapper(); + + foreach (string idString in elementMapper.GetIDsForAvailableDataOperations(outputExchangeItem.ElementSet.ElementType,inputExchangeItem.ElementSet.ElementType)) + { + if (ID == idString) + { + methodAvaileble = true; + } + } + if (!methodAvaileble) + { + return false; + } + + // --- check that only one SpatialMapping dataoperation is selected. --- + int numberOfSelectedSpatialMappingDataOperations = 0; + foreach (IDataOperation dataOperation in SelectedDataOperations) + { + for (int i = 0; i < dataOperation.ArgumentCount; i++) + { + if (dataOperation.GetArgument(i).Key == "Type") + { + if (dataOperation.GetArgument(i).Value == "SpatialMapping") + { + numberOfSelectedSpatialMappingDataOperations++; //this counting is done to check if the same dataOpertion is added twise + + if (dataOperation.ID != ID) //the selected dataoperation must be this dataOperation + { + returnValue = false; //the selected dataoperation must be this + } + } + } + } + } + + if (numberOfSelectedSpatialMappingDataOperations > 1) + { + returnValue = false; + } + + return returnValue; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/ElementMapper.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/ElementMapper.cs new file mode 100644 index 00000000..b55c5738 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/ElementMapper.cs @@ -0,0 +1,1101 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// The ElementMapper converts one ValueSet (inputValues) associated one ElementSet (fromElements) + /// to a new ValuesSet (return value of MapValue) that corresponds to another ElementSet + /// (toElements). The conversion is a two step procedure where the first step (Initialize) is + /// executed at initialisation time only, whereas the MapValues is executed during time stepping. + /// + ///

    The Initialize method will create a conversion matrix with the same number of rows as the + /// number of elements in the ElementSet associated to the accepting component (i.e. the toElements) + /// and the same number of columns as the number of elements in the ElementSet associated to the + /// providing component (i.e. the fromElements).

    + /// + ///

    Mapping is possible for any zero-, one- and two-dimensional elemets. Zero dimensional + /// elements will always be points, one-dimensional elements will allways be polylines and two- + /// dimensional elements will allways be polygons.

    + /// + ///

    The ElementMapper contains a number of methods for mapping between the different element types. + /// As an example polyline to polygon mapping may be done either as Weighted Mean or as Weighted Sum. + /// Typically the method choice will depend on the quantity mapped. Such that state variables such as + /// water level will be mapped using Weighted Mean whereas flux variables such as seepage from river + /// to groundwater will be mapped using Weighted Sum. The list of available methods for a given + /// combination of from and to element types is obtained using the GetAvailableMethods method.

    + ///
    + public class ElementMapper + { + + private const int NUMBER_OF_AVAILABLE_METHODS = 15; + private struct eMethods + { + public enum PointToPoint : int + { + Nearest = 100, + Inverse = 101 + } + + public enum PointToPolyline : int + { + Nearest = 200, + Inverse = 201, + } + + public enum PointToPolygon : int + { + Mean = 300, + Sum = 301, + } + + public enum PolylineToPoint : int + { + Nearest = 400, + Inverse = 401, + } + + public enum PolylineToPolygon : int + { + WeightedMean = 500, + WeightedSum = 501, + } + + public enum PolygonToPoint : int + { + Value = 600, + } + + public enum PolygonToPolyline : int + { + WeightedMean = 700, + WeightedSum = 701, + } + + public enum PolygonToPolygon : int + { + WeightedMean = 800, + WeightedSum = 801, + } + } + + private struct sMethod + { + public int ID; + public string Description; + public ElementType fromElementsShapeType; + public ElementType toElementsShapeType; + } + private double[ , ] _mappingMatrix; // the mapping matrix + private int _numberOfRows; + private int _numberOfColumns; + private int _methodID; + private bool _isInitialised; + sMethod[] _availableMethods; + + /// + /// Constructor. + /// + public ElementMapper() + { + _numberOfRows = 0; + _numberOfColumns = 0; + _isInitialised = false; + + _availableMethods = new sMethod[NUMBER_OF_AVAILABLE_METHODS]; + + _availableMethods[0].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[0].toElementsShapeType = ElementType.XYPoint; + _availableMethods[0].Description = "Nearest"; + _availableMethods[0].ID = (int) eMethods.PointToPoint.Nearest; + + _availableMethods[1].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[1].toElementsShapeType = ElementType.XYPoint; + _availableMethods[1].Description = "Inverse"; + _availableMethods[1].ID = (int) eMethods.PointToPoint.Inverse; + + _availableMethods[2].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[2].toElementsShapeType = ElementType.XYPolyLine; + _availableMethods[2].Description = "Nearest"; + _availableMethods[2].ID = (int) eMethods.PointToPolyline.Nearest; + + _availableMethods[3].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[3].toElementsShapeType = ElementType.XYPolyLine; + _availableMethods[3].Description = "Inverse"; + _availableMethods[3].ID = (int) eMethods.PointToPolyline.Inverse; + + _availableMethods[4].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[4].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[4].Description = "Mean"; + _availableMethods[4].ID = (int) eMethods.PointToPolygon.Mean; + + _availableMethods[5].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[5].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[5].Description = "Sum"; + _availableMethods[5].ID = (int) eMethods.PointToPolygon.Sum; + + _availableMethods[6].fromElementsShapeType = ElementType.XYPolyLine; + _availableMethods[6].toElementsShapeType = ElementType.XYPoint; + _availableMethods[6].Description = "Nearest"; + _availableMethods[6].ID = (int) eMethods.PolylineToPoint.Nearest; + + _availableMethods[7].fromElementsShapeType = ElementType.XYPolyLine; + _availableMethods[7].toElementsShapeType = ElementType.XYPoint; + _availableMethods[7].Description = "Inverse"; + _availableMethods[7].ID = (int) eMethods.PolylineToPoint.Inverse; + + _availableMethods[8].fromElementsShapeType = ElementType.XYPolyLine; + _availableMethods[8].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[8].Description = "Weighted Mean"; + _availableMethods[8].ID = (int) eMethods.PolylineToPolygon.WeightedMean; + + _availableMethods[9].fromElementsShapeType = ElementType.XYPolyLine; + _availableMethods[9].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[9].Description = "Weighted Sum"; + _availableMethods[9].ID = (int) eMethods.PolylineToPolygon.WeightedSum; + + _availableMethods[10].fromElementsShapeType = ElementType.XYPolygon; + _availableMethods[10].toElementsShapeType = ElementType.XYPoint; + _availableMethods[10].Description = "Value"; + _availableMethods[10].ID = (int) eMethods.PolygonToPoint.Value; + + _availableMethods[11].fromElementsShapeType = ElementType.XYPolygon; + _availableMethods[11].toElementsShapeType = ElementType.XYPolyLine; + _availableMethods[11].Description = "Weighted Mean"; + _availableMethods[11].ID = (int) eMethods.PolygonToPolyline.WeightedMean; + + _availableMethods[12].fromElementsShapeType = ElementType.XYPolygon; + _availableMethods[12].toElementsShapeType = ElementType.XYPolyLine; + _availableMethods[12].Description = "Weighted Sum"; + _availableMethods[12].ID = (int) eMethods.PolygonToPolyline.WeightedSum; + + _availableMethods[13].fromElementsShapeType = ElementType.XYPolygon; + _availableMethods[13].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[13].Description = "Weighted Mean"; + _availableMethods[13].ID = (int) eMethods.PolygonToPolygon.WeightedMean; + + _availableMethods[14].fromElementsShapeType = ElementType.XYPolygon; + _availableMethods[14].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[14].Description = "Weighted Sum"; + _availableMethods[14].ID = (int) eMethods.PolygonToPolygon.WeightedSum; + } + + /// + /// Initialises the ElementMapper. The initialisation includes setting the _isInitialised + /// flag and calls UpdateMappingMatrix for claculation of the mapping matrix. + /// + /// + /// String description of mapping method + /// The IElementSet to map from. + /// The IElementSet to map to + /// + /// + /// The method has no return value. + /// + public void Initialise(string methodDescription, IElementSet fromElements, IElementSet toElements) + { + UpdateMappingMatrix(methodDescription, fromElements, toElements); + _isInitialised = true; + } + + /// + /// MapValues calculates a IValueSet through multiplication of an inputValues IValueSet + /// vector or matrix (ScalarSet or VectorSet) on to the mapping maprix. IScalarSets maps + /// to IScalarSets and IVectorSets maps to IVectorSets. + /// + /// + /// + /// Mapvalues is called every time a georeferenced link is evaluated. + /// + /// + /// IValueSet of values to be mapped. + /// + /// + /// A IValueSet found by mapping of the inputValues on to the toElementSet. + /// + public IValueSet MapValues(IValueSet inputValues) + { + if (!_isInitialised) + { + throw new System.Exception("ElementMapper objects needs to be initialised before the MapValue method can be used"); + } + if (!inputValues.Count.Equals(_numberOfColumns)) + { + throw new System.Exception("Dimension mismatch between inputValues and mapping matrix"); + } + if (inputValues is IScalarSet) + { + double[] outValues = new double[_numberOfRows]; + //--- Multiply the Values vector with the MappingMatrix --- + for (int i = 0; i < _numberOfRows; i++) + { + outValues[i] = 0; + for (int n = 0; n < _numberOfColumns; n++) + { + outValues[i] += _mappingMatrix[i,n] * ((IScalarSet) inputValues).GetScalar(n); //(remove)inValues[n]; + } + } + ScalarSet outputValues = new ScalarSet(outValues); + return outputValues; + } + else if (inputValues is IVectorSet) + { + Vector[] outValues = new Vector[_numberOfRows]; + //--- Multiply the Values vector with the MappingMatrix --- + for (int i = 0; i < _numberOfRows; i++) + { + outValues[i].XComponent = 0; + outValues[i].YComponent = 0; + outValues[i].ZComponent = 0; + for (int n = 0; n < _numberOfColumns; n++) + { + outValues[i].XComponent += _mappingMatrix[i,n] * ((IVectorSet) inputValues).GetVector(n).XComponent; + outValues[i].YComponent += _mappingMatrix[i,n] * ((IVectorSet) inputValues).GetVector(n).YComponent; + outValues[i].ZComponent += _mappingMatrix[i,n] * ((IVectorSet) inputValues).GetVector(n).ZComponent; + } + } + VectorSet outputValues = new VectorSet(outValues); + return outputValues; + } + else + { + throw new System.Exception("Invalid datatype used for inputValues parameter. MapValues failed"); + } + } + + /// + /// Calculates the mapping matrix between fromElements and toElements. The mapping method + /// is decided from the combination of methodDescription, fromElements.ElementType and + /// toElements.ElementType. + /// The valid values for methodDescription is obtained through use of the + /// GetAvailableMethods method. + /// + /// + /// + /// UpdateMappingMatrix is called during initialisation. UpdateMappingMatrix must be called prior + /// to Mapvalues. + /// + /// + /// String description of mapping method + /// The IElementset to map from. + /// The IElementset to map to + /// + /// + /// The method has no return value. + /// + public void UpdateMappingMatrix(string methodDescription, IElementSet fromElements, IElementSet toElements) + { + try + { + ElementSetChecker.CheckElementSet(fromElements); + ElementSetChecker.CheckElementSet(toElements); + + _methodID = GetMethodID(methodDescription, fromElements.ElementType, toElements.ElementType); + _numberOfRows = toElements.ElementCount; + _numberOfColumns = fromElements.ElementCount; + _mappingMatrix = new double[_numberOfRows, _numberOfColumns]; + + if (fromElements.ElementType == ElementType.XYPoint && toElements.ElementType == ElementType.XYPoint) + // Point to Point + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPoint ToPoint = CreateXYPoint(toElements,i); + for (int j = 0; j < _numberOfColumns; j++) + { + XYPoint FromPoint = CreateXYPoint(fromElements,j); + _mappingMatrix[i,j] = XYGeometryTools.CalculatePointToPointDistance(ToPoint, FromPoint); + } + } + + if (_methodID.Equals((int) eMethods.PointToPoint.Nearest)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double MinDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < MinDist) + { + MinDist = _mappingMatrix[i,j]; + } + } + int Denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == MinDist) + { + _mappingMatrix[i,j] = 1; + Denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/Denominator; + } + } + } // if (_methodID.Equals((int) eMethods.PointToPoint.Nearest)) + else if (_methodID.Equals((int) eMethods.PointToPoint.Inverse)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double MinDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < MinDist) + { + MinDist = _mappingMatrix[i,j]; + } + } + if (MinDist == 0) + { + int Denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == MinDist) + { + _mappingMatrix[i,j] = 1; + Denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/Denominator; + } + } + else + { + double Denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = 1/_mappingMatrix[i,j]; + Denominator = Denominator + _mappingMatrix[i,j]; + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/Denominator; + } + } + } + } // else if (_methodID.Equals((int) eMethods.PointToPoint.Inverse)) + else + { + throw new System.Exception("methodDescription unknown for point point mapping"); + } // else if (_methodID.Equals((int) eMethods.PointToPoint.Nearest)) and else if (_methodID.Equals((int) eMethods.PointToPoint.Inverse)) + } + catch (System.Exception e) // Catch for all of the Point to Point part + { + throw new System.Exception("Point to point mapping failed",e); + } + #endregion + } + else if (fromElements.ElementType == ElementType.XYPoint && toElements.ElementType == ElementType.XYPolyLine) + // Point to PolyLine + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPolyline toPolyLine = CreateXYPolyline(toElements,i); + for (int j = 0; j < _numberOfColumns; j++) + { + XYPoint fromPoint = CreateXYPoint(fromElements,j); + _mappingMatrix[i,j] = XYGeometryTools.CalculatePolylineToPointDistance(toPolyLine, fromPoint); + } + } + + if (_methodID.Equals((int) eMethods.PointToPolyline.Nearest)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double MinDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < MinDist) + { + MinDist = _mappingMatrix[i,j]; + } + } + int denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == MinDist) + { + _mappingMatrix[i,j] = 1; + denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + } // if (_methodID.Equals((int) eMethods.PointToPolyline.Nearest)) + else if (_methodID.Equals((int) eMethods.PointToPolyline.Inverse)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double minDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < minDist) + { + minDist = _mappingMatrix[i,j]; + } + } + if (minDist == 0) + { + int denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == minDist) + { + _mappingMatrix[i,j] = 1; + denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + else + { + double denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = 1/_mappingMatrix[i,j]; + denominator = denominator + _mappingMatrix[i,j]; + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + } + } // else if (_methodID.Equals((int) eMethods.PointToPolyline.Inverse)) + else // if _methodID != Nearest and Inverse + { + throw new System.Exception("methodDescription unknown for point to polyline mapping"); + } + } + catch (System.Exception e)// Catch for all of the Point to Polyline part + { + throw new System.Exception("Point to polyline mapping failed",e); + } + #endregion + } + else if(fromElements.ElementType == ElementType.XYPoint && toElements.ElementType == ElementType.XYPolygon) + // Point to Polygon + { + #region + try + { + XYPolygon polygon; + XYPoint point; + int count; + for (int i = 0; i < _numberOfRows; i++) + { + polygon = CreateXYPolygon(toElements,i); + count = 0; + for (int n = 0; n < _numberOfColumns; n++) + { + point = CreateXYPoint(fromElements, n); + if(XYGeometryTools.IsPointInPolygon(point, polygon)) + { + if (_methodID.Equals((int) eMethods.PointToPolygon.Mean)) + { + count = count+1; + } + else if (_methodID.Equals((int) eMethods.PointToPolygon.Sum)) + { + count = 1; + } + else + { + throw new System.Exception("methodDescription unknown for point to polygon mapping"); + } + + } + } + for (int n = 0; n < _numberOfColumns; n++) + { + point = CreateXYPoint(fromElements,n); + + if(XYGeometryTools.IsPointInPolygon(point, polygon)) + { + _mappingMatrix[i,n]=1.0/count; + } + } + } + } + catch (System.Exception e)// Catch for all of the Point to Polyline part + { + throw new System.Exception("Point to polygon mapping failed",e); + } + #endregion + } + else if(fromElements.ElementType == ElementType.XYPolyLine && toElements.ElementType == ElementType.XYPoint) + // Polyline to Point + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPoint toPoint = CreateXYPoint(toElements,i); + for (int j = 0; j < _numberOfColumns; j++) + { + XYPolyline fromPolyLine = CreateXYPolyline(fromElements,j); + _mappingMatrix[i,j] = XYGeometryTools.CalculatePolylineToPointDistance(fromPolyLine, toPoint); + } + } + + if (_methodID.Equals((int) eMethods.PolylineToPoint.Nearest)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double minDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < minDist) + { + minDist = _mappingMatrix[i,j]; + } + } + int denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == minDist) + { + _mappingMatrix[i,j] = 1; + denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + } // if (_methodID.Equals((int) eMethods.PolylineToPoint.Nearest)) + else if (_methodID.Equals((int) eMethods.PolylineToPoint.Inverse)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double minDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < minDist) + { + minDist = _mappingMatrix[i,j]; + } + } + if (minDist == 0) + { + int denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == minDist) + { + _mappingMatrix[i,j] = 1; + denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + else + { + double denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = 1/_mappingMatrix[i,j]; + denominator = denominator + _mappingMatrix[i,j]; + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + } + } // if (_methodID.Equals((int) eMethods.PolylineToPoint.Inverse)) + else // MethodID != Nearest and Inverse + { + throw new System.Exception("methodDescription unknown for polyline to point mapping"); + } + } + catch (System.Exception e)// Catch for all of the Point to Polyline part + { + throw new System.Exception("Polyline to point mapping failed",e); + } + #endregion + } + else if (fromElements.ElementType == ElementType.XYPolyLine && toElements.ElementType == ElementType.XYPolygon) + // PolyLine to Polygon + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPolygon polygon = CreateXYPolygon(toElements,i); + + if (_methodID.Equals((int) eMethods.PolylineToPolygon.WeightedMean)) + { + double totalLineLengthInPolygon = 0; + for (int n = 0; n < _numberOfColumns; n++) + { + XYPolyline polyline = CreateXYPolyline(fromElements,n); + _mappingMatrix[i,n] = XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(polyline,polygon); + totalLineLengthInPolygon += _mappingMatrix[i,n]; + } + if (totalLineLengthInPolygon > 0) + { + for (int n = 0; n < _numberOfColumns; n++) + { + _mappingMatrix[i,n] = _mappingMatrix[i,n]/totalLineLengthInPolygon; + } + } + } // if (_methodID.Equals((int) eMethods.PolylineToPolygon.WeightedMean)) + else if (_methodID.Equals((int) eMethods.PolylineToPolygon.WeightedSum)) + { + for (int n = 0; n < _numberOfColumns; n++) + { + XYPolyline polyline = CreateXYPolyline(fromElements,n); + _mappingMatrix[i,n] = XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(polyline,polygon)/polyline.GetLength(); + } // for (int n = 0; n < _numberOfColumns; n++) + } // else if (_methodID.Equals((int) eMethods.PolylineToPolygon.WeightedSum)) + else // if MethodID != WeightedMean and WeigthedSum + { + throw new System.Exception("methodDescription unknown for polyline to polygon mapping"); + } + } // for (int i = 0; i < _numberOfRows; i++) + } + catch (System.Exception e) // Catch for all of polyLine to polygon + { + throw new System.Exception("Polyline to polygon mapping failed",e); + } + #endregion + } + else if (fromElements.ElementType == ElementType.XYPolygon && toElements.ElementType == ElementType.XYPoint) + // Polygon to Point + { + #region + try + { + for (int n = 0; n < _numberOfRows; n++) + { + XYPoint point = CreateXYPoint(toElements,n); + for (int i = 0; i < _numberOfColumns; i++) + { + XYPolygon polygon = CreateXYPolygon(fromElements,i); + if(XYGeometryTools.IsPointInPolygon(point, polygon)) + { + if (_methodID.Equals((int) eMethods.PolygonToPoint.Value)) + { + _mappingMatrix[n,i]=1.0; + } + else // if _methodID != Value + { + throw new System.Exception("methodDescription unknown for polygon to point mapping"); + } + } + } + } + } + catch (System.Exception e) // catch for all of Polygon to Point + { + throw new System.Exception("Polygon to point mapping failed",e); + } + #endregion + } + else if(fromElements.ElementType == ElementType.XYPolygon && toElements.ElementType == ElementType.XYPolyLine) + // Polygon to PolyLine + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPolyline polyline = CreateXYPolyline(toElements,i); + if (_methodID.Equals((int) eMethods.PolygonToPolyline.WeightedMean)) + { + for (int n = 0; n < _numberOfColumns; n++) + { + XYPolygon polygon = CreateXYPolygon(fromElements,n); + _mappingMatrix[i,n] = XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(polyline,polygon)/polyline.GetLength(); + } + double sum = 0; + for (int n = 0; n < _numberOfColumns; n++) + { + sum += _mappingMatrix[i,n]; + } + for (int n = 0; n < _numberOfColumns; n++) + { + _mappingMatrix[i,n] = _mappingMatrix[i,n]/sum; + } + } // if (_methodID.Equals((int) eMethods.PolygonToPolyline.WeightedMean)) + else if (_methodID.Equals((int) eMethods.PolygonToPolyline.WeightedSum)) + { + for (int n = 0; n < _numberOfColumns; n++) + { + XYPolygon polygon = CreateXYPolygon(fromElements,n); + _mappingMatrix[i,n] = XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(polyline,polygon)/polyline.GetLength(); + } + } // else if (_methodID.Equals((int) eMethods.PolygonToPolyline.WeightedSum)) + else // _methodID != WeightedMean and WeightedSum + { + throw new System.Exception("methodDescription unknown for polygon to polyline mapping"); + } + } + } + catch (System.Exception e) // catch for all of Polygon to PolyLine + { + throw new System.Exception("Polygon to polyline mapping failed",e); + } + #endregion + } + else if(fromElements.ElementType == ElementType.XYPolygon && toElements.ElementType == ElementType.XYPolygon) + // Polygon to Polygon + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPolygon toPolygon = CreateXYPolygon(toElements,i); + for (int j = 0; j < _numberOfColumns; j++) + { + XYPolygon fromPolygon = CreateXYPolygon(fromElements,j); + _mappingMatrix[i,j] = XYGeometryTools.CalculateSharedArea(toPolygon, fromPolygon); + } + if (_methodID.Equals((int) eMethods.PolygonToPolygon.WeightedMean)) + { + double denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + denominator = denominator + _mappingMatrix[i,j]; + } + for (int j = 0; j < _numberOfColumns; j++) + { + if (denominator != 0) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + } // if (_methodID.Equals((int) eMethods.PolygonToPolygon.WeightedMean)) + else if (_methodID.Equals((int) eMethods.PolygonToPolygon.WeightedSum)) + { + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/toPolygon.GetArea(); + } + } // else if (_methodID.Equals((int) eMethods.PolygonToPolygon.WeightedSum)) + else // _methodID != WeightedMean and WeightedSum + { + throw new System.Exception("methodDescription unknown for polygon to polygon mapping"); + } + } + } + catch (System.Exception e) // catch for all of Polygon to Polygon + { + throw new System.Exception("Polygon to polygon mapping failed",e); + } + #endregion + } + else // if the fromElementType, toElementType combination is no implemented + { + throw new System.Exception("Mapping of specified ElementTypes not included in ElementMapper"); + } + } + catch (System.Exception e) + { + throw new System.Exception("UpdateMappingMatrix failed to update mapping matrix",e); + } + } + + /// + /// Extracts the (row, column) element from the MappingMatrix. + /// + /// + /// Zero based row index + /// Zero based column index + /// + /// Element(row, column) from the mapping matrix. + /// + public double GetValueFromMappingMatrix(int row, int column) + { + try + { + ValidateIndicies(row, column); + } + catch (System.Exception e) + { + throw new System.Exception("GetValueFromMappingMatrix failed.",e); + } + return _mappingMatrix[row, column]; + } + + /// + /// Sets individual the (row, column) element in the MappingMatrix. + /// + /// + /// Element value to set + /// Zero based row index + /// Zero based column index + /// + /// No value is returned. + /// + public void SetValueInMappingMatrix(double value, int row, int column) + { + try + { + ValidateIndicies(row, column); + } + catch (System.Exception e) + { + throw new System.Exception("SetValueInMappingMatrix failed.",e); + } + _mappingMatrix[row, column] = value; + } + + private void ValidateIndicies(int row, int column) + { + if(row < 0) + { + throw new System.Exception("Negative row index not allowed. GetValueFromMappingMatrix failed."); + } + else if(row >= _numberOfRows) + { + throw new System.Exception("Row index exceeds mapping matrix dimension. GetValueFromMappingMatrix failed."); + } + else if(column < 0) + { + throw new System.Exception("Negative column index not allowed. GetValueFromMappingMatrix failed."); + } + else if(column >= _numberOfColumns) + { + throw new System.Exception("Column index exceeds mapping matrix dimension. GetValueFromMappingMatrix failed."); + } + } + + /// + /// Gives a list of descriptions (strings) for available mapping methods + /// given the combination of fromElementType and toElementType + /// + /// + /// Element type of the elements in + /// the fromElementset + /// Element type of the elements in + /// the toElementset + /// + /// + ///

    ArrayList of method descriptions

    + ///
    + public ArrayList GetAvailableMethods(ElementType fromElementsElementType, ElementType toElementsElementType) + { + ArrayList methodDescriptions = new ArrayList(); + + for ( int i = 0; i < _availableMethods.Length; i++) + { + if( fromElementsElementType == _availableMethods[i].fromElementsShapeType) + { + if (toElementsElementType == _availableMethods[i].toElementsShapeType) + { + methodDescriptions.Add(_availableMethods[i].Description); + } + } + } + return methodDescriptions; + } + + /// + /// Gives a list of ID's (strings) for available mapping methods + /// given the combination of fromElementType and toElementType + /// + /// + /// Element type of the elements in + /// the fromElementset + /// Element type of the elements in + /// the toElementset + /// + /// + ///

    ArrayList of method ID's

    + ///
    + public ArrayList GetIDsForAvailableDataOperations(ElementType fromElementsElementType, ElementType toElementsElementType) + { + ArrayList methodIDs = new ArrayList(); + + for ( int i = 0; i < _availableMethods.Length; i++) + { + if( fromElementsElementType == _availableMethods[i].fromElementsShapeType) + { + if (toElementsElementType == _availableMethods[i].toElementsShapeType) + { + methodIDs.Add("ElementMapper" + _availableMethods[i].ID); + } + } + } + return methodIDs; + } + + /// + /// This method will return an ArrayList of IDataOperations that the ElementMapper provides when + /// mapping from the ElementType specified in the method argument. + /// + /// + /// Each IDataOperation object will contain 3 IArguments: + ///

    [Key] [Value] [ReadOnly] [Description]-----------------

    + ///

    ["Type"] ["SpatialMapping"] [true] ["Using the ElementMapper"]

    + ///

    ["ID"] [The Operation ID] [true] ["Internal ElementMapper dataoperation ID"]

    + ///

    ["Description"] [The Operation Description] [true] ["Using the ElementMapper"]

    + ///

    ["ToElementType"] [ElementType] [true] ["Valid To-Element Types"]

    + ///
    + /// + /// + /// ArrayList which contains the available dataOperations (IDataOperation). + /// + public ArrayList GetAvailableDataOperations(ElementType fromElementsElementType) + { + ArrayList availableDataOperations = new ArrayList(); + + for ( int i = 0; i < _availableMethods.Length; i++) + { + if( fromElementsElementType == _availableMethods[i].fromElementsShapeType) + { + DataOperation dataOperation = new DataOperation("ElementMapper" + _availableMethods[i].ID); + dataOperation.AddArgument(new Argument("ID",_availableMethods[i].ID.ToString(),true,"Internal ElementMapper dataoperation ID")); + dataOperation.AddArgument(new Argument("Description",_availableMethods[i].Description,true,"Operation description")); + dataOperation.AddArgument(new Argument("Type","SpatialMapping",true,"Using the ElementMapper")); + dataOperation.AddArgument(new Argument("FromElementType",_availableMethods[i].fromElementsShapeType.ToString(),true,"Valid From-Element Types")); + dataOperation.AddArgument(new Argument("ToElementType",_availableMethods[i].toElementsShapeType.ToString(),true,"Valid To-Element Types")); + availableDataOperations.Add(dataOperation); + } + } + return availableDataOperations; + } + + private int GetMethodID(string methodDescription, ElementType fromElementsElementType, ElementType toElementsElementType) + { + for ( int i = 0; i < _availableMethods.Length; i++) + { + if( fromElementsElementType == _availableMethods[i].fromElementsShapeType) + { + if (toElementsElementType == _availableMethods[i].toElementsShapeType) + { + if (methodDescription == _availableMethods[i].Description) + return _availableMethods[i].ID; + } + } + } + throw new System.Exception("methodDescription: "+methodDescription+ + " not known for fromElementType: "+fromElementsElementType+ + " and to ElementType: "+toElementsElementType); + } + + private XYPoint CreateXYPoint(IElementSet elementSet, int index) + { + if (elementSet.ElementType != ElementType.XYPoint) + { + throw new System.Exception("Cannot create XYPoint"); + } + + XYPoint xyPoint = new XYPoint(); + xyPoint.X = elementSet.GetXCoordinate(index,0); + xyPoint.Y = elementSet.GetYCoordinate(index,0); + return xyPoint; + } + + private XYPolyline CreateXYPolyline(IElementSet elementSet, int index) + { + if (!(elementSet.ElementType == ElementType.XYPolyLine || elementSet.ElementType == ElementType.XYLine)) + { + throw new System.Exception("Cannot create XYPolyline"); + } + + XYPolyline xyPolyline = new XYPolyline(); + for (int i = 0; i < elementSet.GetVertexCount(index); i++) + { + xyPolyline.Points.Add(new XYPoint(elementSet.GetXCoordinate(index,i), elementSet.GetYCoordinate(index,i))); + } + + return xyPolyline; + } + + private XYPolygon CreateXYPolygon(IElementSet elementSet, int index) + { + if (elementSet.ElementType != ElementType.XYPolygon) + { + throw new System.Exception("Cannot create XYPolyline"); + } + + XYPolygon xyPolygon = new XYPolygon(); + + for (int i = 0; i < elementSet.GetVertexCount(index); i++) + { + xyPolygon.Points.Add(new XYPoint(elementSet.GetXCoordinate(index,i), elementSet.GetYCoordinate(index,i))); + } + + return xyPolygon; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/ElementSetChecker.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/ElementSetChecker.cs new file mode 100644 index 00000000..7c4b1254 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/ElementSetChecker.cs @@ -0,0 +1,125 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// Summary description for ElementSetChecker. + /// + public class ElementSetChecker + { + /// + /// Static method that validates an object with an IElementSet interface. The method + /// raises an Exception in case IElementSet does not describe a valid ElementSet. + /// The checks made are: + ///

    ElementType: Check

    + ///

    XYPoint: Only one vertex in each element.

    + ///

    XYPolyline: At least two vertices in each element.

    + ///

    All line segments in each element has length > 0

    + ///

    XYPolygon: At least three vertices in each element.

    + ///

    Area of each element is larger than 0

    + ///

    All line segments in each element has length > 0

    + ///

    No line segments within an element crosses.

    + ///
    + /// + /// Object that implement the IElementSet interface + /// + /// + /// The method has no return value. + /// + public static void CheckElementSet(IElementSet elementSet) + { + try + { + if(elementSet.ElementType == ElementType.XYPoint) + { + for (int i = 0; i < elementSet.ElementCount; i++) + { + try + { + if(elementSet.GetVertexCount(i) != 1) + { + throw new System.Exception("Number of vertices in point element is different from 1."); + } + } + catch (System.Exception e) + { + throw new System.Exception("ElementID = "+elementSet.GetElementID(i),e); + } + } + } + else if(elementSet.ElementType == ElementType.XYPolyLine) + { + for (int i = 0; i < elementSet.ElementCount; i++) + { + try + { + XYPolyline xypolyline = new XYPolyline(); + for (int j = 0; j < elementSet.GetVertexCount(i); j++) + { + XYPoint xypoint = new XYPoint(elementSet.GetXCoordinate(i,j),elementSet.GetYCoordinate(i,j)); + xypolyline.Points.Add(xypoint); + } + xypolyline.Validate(); + } + catch (System.Exception e) + { + throw new System.Exception("ElementID = "+elementSet.GetElementID(i),e); + } + } + } + else if(elementSet.ElementType == ElementType.XYPolygon) + { + for (int i = 0; i < elementSet.ElementCount; i++) + { + try + { + XYPolygon xypolygon = new XYPolygon(); + for (int j = 0; j < elementSet.GetVertexCount(i); j++) + { + XYPoint xypoint = new XYPoint(elementSet.GetXCoordinate(i,j),elementSet.GetYCoordinate(i,j)); + xypolygon.Points.Add(xypoint); + } + xypolygon.Validate(); + } + catch (System.Exception e) + { + throw new System.Exception("ElementID = "+elementSet.GetElementID(i),e); + } + } + } + } + catch (System.Exception e) + { + throw new System.Exception("ElementSet with ID = "+elementSet.ID+" is invalid",e); + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/Oatc.OpenMI.Sdk.Spatial.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/Oatc.OpenMI.Sdk.Spatial.csproj new file mode 100644 index 00000000..a81c1a2e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/Oatc.OpenMI.Sdk.Spatial.csproj @@ -0,0 +1,134 @@ + + + + Local + 9.0.30729 + 2.0 + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Spatial + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Spatial + OnBuildSuccess + + + + + + + false + 3.5 + v2.0 + + + ..\..\..\..\..\..\..\..\_Code\Dev.CSharp\Test DbReader Mapping\DbReader\Source\bin\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + false + + + bin\Release\ + false + 285212672 + false + + + TRACE + bin\Release\Oatc.OpenMI.Sdk.Spatial.XML + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\..\..\..\..\..\_Code\Dev.CSharp\HydroDesktop\Binaries\Plugins\HydroModeler\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/AssemblyInfo.cs new file mode 100644 index 00000000..1bbcfd44 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Spatial UnitTest Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4 Alpha 3")] +[assembly: AssemblyCopyright("GNU Library or Lesser General Public License (LGPL), MIT License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/ElementCheckerTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/ElementCheckerTest.cs new file mode 100644 index 00000000..cfb47d3b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/ElementCheckerTest.cs @@ -0,0 +1,145 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Spatial; +using NUnit.Framework; + + +namespace Oatc.OpenMI.Sdk.Spatial.UnitTest +{ + /// + /// Summary description for ElementCheckerTest. + /// + [TestFixture] + public class ElementSetCheckerTest + { + public ElementSetCheckerTest() + { + // + // TODO: Add constructor logic here + // + } + + [Test] + [ExpectedException(typeof(System.Exception))] + public void ExpectedException_2_Vertices_in_PointElement() + { + //Two Vertices in point element error + ElementSet elementSet = new ElementSet("test","test",ElementType.XYPoint,new SpatialReference("DummyID")); + Oatc.OpenMI.Sdk.Backbone.Element e1 = new Oatc.OpenMI.Sdk.Backbone.Element("e1"); + e1.AddVertex(new Vertex(1,1,1)); + e1.AddVertex(new Vertex(2,2,2)); //here the error is introduced on purpose + + elementSet.AddElement(e1); + + ElementSetChecker.CheckElementSet(elementSet); + + } + + [Test] + [ExpectedException(typeof(System.Exception))] + public void ExpectedException_1_Vertex_in_PolylineElement() + { + //One Vertex in polyline element error + ElementSet elementSet = new ElementSet("test","test",ElementType.XYPolyLine,new SpatialReference("DummyID")); + Oatc.OpenMI.Sdk.Backbone.Element e1 = new Oatc.OpenMI.Sdk.Backbone.Element("e1"); + e1.AddVertex(new Vertex(1,1,1)); + + elementSet.AddElement(e1); + + ElementSetChecker.CheckElementSet(elementSet); + } + + [Test] + [ExpectedException(typeof(System.Exception))] + public void ExpectedException_0_Length_in_PolylineElement() + { + //One Vertex in polyline element error + ElementSet elementSet = new ElementSet("test","test",ElementType.XYPolyLine,new SpatialReference("DummyID")); + Oatc.OpenMI.Sdk.Backbone.Element e1 = new Oatc.OpenMI.Sdk.Backbone.Element("e1"); + e1.AddVertex(new Vertex(1,1,1)); + e1.AddVertex(new Vertex(1,1,1)); + + elementSet.AddElement(e1); + + ElementSetChecker.CheckElementSet(elementSet); + } + + [Test] + [ExpectedException(typeof(System.Exception))] + public void ExpectedException_2_Vertices_in_PolygonElement() + { + //Two Vertices in polygon element error + ElementSet elementSet = new ElementSet("test","test",ElementType.XYPolygon,new SpatialReference("DummyID")); + Oatc.OpenMI.Sdk.Backbone.Element e1 = new Oatc.OpenMI.Sdk.Backbone.Element("e1"); + e1.AddVertex(new Vertex(1,1,1)); + e1.AddVertex(new Vertex(2,2,2)); + + elementSet.AddElement(e1); + + ElementSetChecker.CheckElementSet(elementSet); + } + [Test] + [ExpectedException(typeof(System.Exception))] + public void ExpectedException_WrongOrderingOfPoint_in_PolygonElement() + { + //Wrong ordering of vertices in polygon element error + ElementSet elementSet = new ElementSet("test","test",ElementType.XYPolygon,new SpatialReference("DummyID")); + Oatc.OpenMI.Sdk.Backbone.Element e1 = new Oatc.OpenMI.Sdk.Backbone.Element("e1"); + e1.AddVertex(new Vertex(0,0,0)); + e1.AddVertex(new Vertex(0,1,0)); + e1.AddVertex(new Vertex(1,1,0)); + e1.AddVertex(new Vertex(1,0,0)); + + elementSet.AddElement(e1); + + ElementSetChecker.CheckElementSet(elementSet); + } + + [Test] + [ExpectedException(typeof(System.Exception))] + public void ExpectedException_Crossing_lines_in_PolygonElement() + { + //Crossing lines in polygon element error + ElementSet elementSet = new ElementSet("test","test",ElementType.XYPolygon,new SpatialReference("DummyID")); + Oatc.OpenMI.Sdk.Backbone.Element e1 = new Oatc.OpenMI.Sdk.Backbone.Element("e1"); + e1.AddVertex(new Vertex(0,1,0)); + e1.AddVertex(new Vertex(0,0,0)); + e1.AddVertex(new Vertex(1,0,0)); + e1.AddVertex(new Vertex(0.9,1.1,0)); + e1.AddVertex(new Vertex(1.1,0.9,0)); + + elementSet.AddElement(e1); + + ElementSetChecker.CheckElementSet(elementSet); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/ElementMapperTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/ElementMapperTest.cs new file mode 100644 index 00000000..f9b9b739 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/ElementMapperTest.cs @@ -0,0 +1,753 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.IO; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Spatial; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Spatial.UnitTest +{ + /// + /// Summary description for Class1. + /// + [TestFixture] + public class ElementMapperTest + { + private ElementSet CreateElementSet(string ElementSetID) + { + if (ElementSetID == "4 Points") + { + ElementSet fourPointsElementSet = new ElementSet("4 points","4 Points",ElementType.XYPoint,new SpatialReference("DummyID")); + + Element e0 = new Element("e0"); + Element e1 = new Element("e1"); + Element e2 = new Element("e2"); + Element e3 = new Element("e3"); + + e0.AddVertex(new Vertex( 0,100,0)); + e1.AddVertex(new Vertex( 0,0,0)); + e2.AddVertex(new Vertex( 100,0,0)); + e3.AddVertex(new Vertex(100,100,0)); + + fourPointsElementSet.AddElement(e0); + fourPointsElementSet.AddElement(e1); + fourPointsElementSet.AddElement(e2); + fourPointsElementSet.AddElement(e3); + + return fourPointsElementSet; + } + else if (ElementSetID == "2 Points") + { + ElementSet twoPointsElementSet = new ElementSet("2 points","2 Points",ElementType.XYPoint,new SpatialReference("dumID")); + + Element k0 = new Element("k0"); + Element k1 = new Element("k1"); + + k0.AddVertex(new Vertex( 0,75,0)); + k1.AddVertex(new Vertex( 200, 50, 0)); + + twoPointsElementSet.AddElement(k0); + twoPointsElementSet.AddElement(k1); + + return twoPointsElementSet; + + } + else if (ElementSetID == "4 Other Points") + { + ElementSet fourPointsElementSet = new ElementSet("4 Other points","4 Other Points",ElementType.XYPoint,new SpatialReference("DummyID")); + + Element e0 = new Element("e0"); + Element e1 = new Element("e1"); + Element e2 = new Element("e2"); + Element e3 = new Element("e3"); + + e0.AddVertex(new Vertex( 0,15,0)); + e1.AddVertex(new Vertex( 5,15,0)); + e2.AddVertex(new Vertex( 0,10,0)); + e3.AddVertex(new Vertex(10,10,0)); + + fourPointsElementSet.AddElement(e0); + fourPointsElementSet.AddElement(e1); + fourPointsElementSet.AddElement(e2); + fourPointsElementSet.AddElement(e3); + + return fourPointsElementSet; + } + else if(ElementSetID == "3 points polyline") + { + ElementSet lineElementSet = new ElementSet("3 points polyline","3 points polyline",ElementType.XYPolyLine,new SpatialReference("dumID")); + + Element l0 = new Element("k0"); + Element l1 = new Element("k1"); + + Vertex v0 = new Vertex(0 ,20, 0); + Vertex v1 = new Vertex(0 ,10, 0); + Vertex v2 = new Vertex(0 , 0, 0); + + l0.AddVertex(v0); + l0.AddVertex(v2); + + l1.AddVertex(v1); + l1.AddVertex(v2); + + lineElementSet.AddElement(l0); + lineElementSet.AddElement(l1); + return lineElementSet; + } + else + { + throw new Exception("Cound not find specified elementset"); + + } + } + + [Test] // testing the Initialise method + public void Initialise() + { + ElementSet fourPointsElementSet = CreateElementSet("4 Points"); + ElementSet twoPointsElementSet = CreateElementSet("2 Points"); + + ElementMapper elementMapper = new ElementMapper(); + + ArrayList methodDescriptions = elementMapper.GetAvailableMethods(fourPointsElementSet.ElementType, twoPointsElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, twoPointsElementSet); + + double Calculated = elementMapper.GetValueFromMappingMatrix(0, 0); + double Expected = 1; + + Assert.AreEqual(Expected,Calculated); + } + + [Test] // testing the Initialise method + public void UpdateMappingMatrix_PointPoint() + { + ElementSet fourPointsElementSet = CreateElementSet("4 Points"); + ElementSet twoPointsElementSet = CreateElementSet("2 Points"); + + ElementMapper elementMapper = new ElementMapper(); + + ArrayList methodDescriptions = elementMapper.GetAvailableMethods(fourPointsElementSet.ElementType, twoPointsElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, twoPointsElementSet); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0) + +elementMapper.GetValueFromMappingMatrix(0, 1) + +elementMapper.GetValueFromMappingMatrix(0, 2) + +elementMapper.GetValueFromMappingMatrix(0, 3)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(1, 2)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0) + +elementMapper.GetValueFromMappingMatrix(1, 1) + +elementMapper.GetValueFromMappingMatrix(1, 2) + +elementMapper.GetValueFromMappingMatrix(1, 3)); + + elementMapper.Initialise(methodDescriptions[1].ToString(), fourPointsElementSet, twoPointsElementSet); + Assert.AreEqual(0.56310461156889, elementMapper.GetValueFromMappingMatrix(0, 0),0.000000001); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0) + +elementMapper.GetValueFromMappingMatrix(0, 1) + +elementMapper.GetValueFromMappingMatrix(0, 2) + +elementMapper.GetValueFromMappingMatrix(0, 3)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0) + +elementMapper.GetValueFromMappingMatrix(1, 1) + +elementMapper.GetValueFromMappingMatrix(1, 2) + +elementMapper.GetValueFromMappingMatrix(1, 3),0.000000001); + } + [Test] // testing the Initialise method + public void UpdateMappingMatrix_PointPolyline() + { + ElementSet fourPointsElementSet = CreateElementSet("4 Other Points"); + ElementSet lineElementSet = CreateElementSet("3 points polyline"); + + ElementMapper elementMapper = new ElementMapper(); + + // point to polyline + ArrayList methodDescriptions = elementMapper.GetAvailableMethods(fourPointsElementSet.ElementType, lineElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, lineElementSet); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 3)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 3)); + + elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, lineElementSet); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 3)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 3)); + + // polyline to point + methodDescriptions = elementMapper.GetAvailableMethods(lineElementSet.ElementType, fourPointsElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), lineElementSet, fourPointsElementSet); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 0)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 1)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 0)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 1)); + + elementMapper.Initialise(methodDescriptions[1].ToString(), lineElementSet, fourPointsElementSet); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); + Assert.AreEqual(0.585786437626905, elementMapper.GetValueFromMappingMatrix(1, 0)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0) + + elementMapper.GetValueFromMappingMatrix(1, 1)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 0)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 1)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 0)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 1)); + } + [Test] // testing the Initialise method + public void UpdateMappingMatrix_PointPolygon() + { + ElementSet gridElementSet = new ElementSet("gridElm","G1",ElementType.XYPolygon, new SpatialReference("ref")); + ElementSet fourPointsElementSet = new ElementSet("4 points","4P",ElementType.XYPoint,new SpatialReference("DummyID")); + + Vertex v_0_20 = new Vertex(0,20,0); + Vertex v_0_10 = new Vertex(0,10,0); + Vertex v_0_0 = new Vertex(0, 0,0); + Vertex v_0_15 = new Vertex(0,15,0); + Vertex v_5_15 = new Vertex(5,15,0); + Vertex v_10_20 = new Vertex(10,20,0); + Vertex v_10_15 = new Vertex(10,15,0); + Vertex v_10_10 = new Vertex(10,10,0); + Vertex v_10_0 = new Vertex(10, 0,0); + Vertex v_15_15 = new Vertex(15,15,0); + Vertex v_15_5 = new Vertex(15,5,0); + Vertex v_20_20 = new Vertex(20,20,0); + Vertex v_20_10 = new Vertex(20,10,0); + + Element square1 = new Element("square1"); + Element square2 = new Element("square2"); + Element square3 = new Element("square3"); + + square1.AddVertex(v_0_20); + square1.AddVertex(v_0_10); + square1.AddVertex(v_10_10); + square1.AddVertex(v_10_20); + + square2.AddVertex(v_10_20); + square2.AddVertex(v_10_10); + square2.AddVertex(v_20_10); + square2.AddVertex(v_20_20); + + square3.AddVertex(v_0_10); + square3.AddVertex(v_0_0); + square3.AddVertex(v_10_0); + square3.AddVertex(v_10_10); + + gridElementSet.AddElement(square1); + gridElementSet.AddElement(square2); + gridElementSet.AddElement(square3); + + Element point_5_15 = new Element("point 5, 15"); + Element point_10_15 = new Element("point 10, 15"); + Element point_15_15 = new Element("point 15, 15"); + Element point_15_5 = new Element("point 15, 5"); + + point_5_15.AddVertex(v_5_15); + point_10_15.AddVertex(v_10_15); + point_15_15.AddVertex(v_15_15); + point_15_5.AddVertex(v_15_5); + + fourPointsElementSet.AddElement(point_5_15); + fourPointsElementSet.AddElement(point_10_15); + fourPointsElementSet.AddElement(point_15_15); + fourPointsElementSet.AddElement(point_15_5); + + ElementMapper elementMapper = new ElementMapper(); + + // point to polygon + + ArrayList methodDescriptions = elementMapper.GetAvailableMethods(fourPointsElementSet.ElementType, gridElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, gridElementSet); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 0)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 1)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 3)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 3)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 1)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 3)); + + // polygon to point + methodDescriptions = elementMapper.GetAvailableMethods(gridElementSet.ElementType, fourPointsElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), gridElementSet, fourPointsElementSet); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 2)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 0)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(2, 1)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(3, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(3, 1)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(3, 2)); + } + [Test] // testing the Initialise method + public void UpdateMappingMatrix_PolylinePolygon() + { + ElementSet twoSquaresGrid = new ElementSet("TwoSquaresGrid","TwoSquaresGrid",ElementType.XYPolygon,new SpatialReference("ref")); + + Element e1 = new Element("e1"); + Element e2 = new Element("e2"); + + e1.AddVertex(new Vertex(1,1,0)); + e1.AddVertex(new Vertex(3,1,0)); + e1.AddVertex(new Vertex(3,3,0)); + e1.AddVertex(new Vertex(1,3,0)); + + e2.AddVertex(new Vertex(3,1,0)); + e2.AddVertex(new Vertex(5,1,0)); + e2.AddVertex(new Vertex(5,3,0)); + e2.AddVertex(new Vertex(3,3,0)); + + twoSquaresGrid.AddElement(e1); + twoSquaresGrid.AddElement(e2); + + ElementSet twoLines = new ElementSet("TwoLines","TwoLines",ElementType.XYPolyLine,new SpatialReference("ref")); + + Element l1 = new Element("l1"); + Element l2 = new Element("l2"); + + l1.AddVertex(new Vertex(0,2.5,0)); + l1.AddVertex(new Vertex(2,2.5,0)); + l2.AddVertex(new Vertex(2,2.5,0)); + l2.AddVertex(new Vertex(4,1.5,0)); + + twoLines.AddElement(l1); + twoLines.AddElement(l2); + + // Line to Polygon + ElementMapper elementMapper = new ElementMapper(); + ArrayList methodDescriptions = elementMapper.GetAvailableMethods(twoLines.ElementType, twoSquaresGrid.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), twoLines,twoSquaresGrid); + Assert.AreEqual(1/(1+Math.Sqrt(1+Math.Pow(0.5,2))),elementMapper.GetValueFromMappingMatrix(0,0),"Test1"); + Assert.AreEqual(1-1/(1+Math.Sqrt(1+Math.Pow(0.5,2))),elementMapper.GetValueFromMappingMatrix(0,1),"Test2"); + Assert.AreEqual(0.0,elementMapper.GetValueFromMappingMatrix(1,0),"Test3"); + Assert.AreEqual(1,elementMapper.GetValueFromMappingMatrix(1,1),"Test4"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), twoLines,twoSquaresGrid); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(0,0),"Test5"); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(0,1),"Test6"); + Assert.AreEqual(0.0,elementMapper.GetValueFromMappingMatrix(1,0),"Test7"); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(1,1),"Test8"); + + // Polygon To PolyLine + methodDescriptions = elementMapper.GetAvailableMethods(twoSquaresGrid.ElementType, twoLines.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), twoSquaresGrid, twoLines); + Assert.AreEqual(1.0,elementMapper.GetValueFromMappingMatrix(0,0),"Test9"); + Assert.AreEqual(0.0,elementMapper.GetValueFromMappingMatrix(0,1),"Test10"); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(1,0),"Test11"); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(1,1),"Test12"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), twoSquaresGrid, twoLines); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(0,0),"Test13"); + Assert.AreEqual(0.0,elementMapper.GetValueFromMappingMatrix(0,1),"Test14"); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(1,0),"Test15"); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(1,1),"Test16"); + } + [Test] // testing the Initialise method + public void UpdateMappingMatrix_PolygonPolygon() + { + Vertex v1_0_10 = new Vertex(0,10,0); + Vertex v1_0_0 = new Vertex(0,0,0); + Vertex v1_10_0 = new Vertex(10,0,0); + Vertex v1_10_10 = new Vertex(10,10,0); + Vertex v1_20_0 = new Vertex(20,0,0); + Vertex v1_20_10 = new Vertex(20,10,0); + Vertex v1_5_9 = new Vertex(5,9,0); + Vertex v1_5_1 = new Vertex(5,1,0); + Vertex v1_15_5 = new Vertex(15,5,0); + + Element LeftSquare = new Element("LeftSquare"); + LeftSquare.AddVertex(v1_0_10); + LeftSquare.AddVertex(v1_0_0); + LeftSquare.AddVertex(v1_10_0); + LeftSquare.AddVertex(v1_10_10); + + Element RightSquare = new Element("RightSquare"); + RightSquare.AddVertex(v1_10_10); + RightSquare.AddVertex(v1_10_0); + RightSquare.AddVertex(v1_20_0); + RightSquare.AddVertex(v1_20_10); + + Element Triangle = new Element("Triangle"); + Triangle.AddVertex(v1_5_9); + Triangle.AddVertex(v1_5_1); + Triangle.AddVertex(v1_15_5); + + ElementSet TwoSquareElementSet = new ElementSet("TwoSquareElementSet","TwoSquareElementSet",ElementType.XYPolygon,new SpatialReference("ref")); + ElementSet TriangleElementSet = new ElementSet("TriangleElementSet","TriangleElementSet",ElementType.XYPolygon,new SpatialReference("ref")); + TwoSquareElementSet.AddElement(LeftSquare); + TwoSquareElementSet.AddElement(RightSquare); + TriangleElementSet.AddElement(Triangle); + + ElementMapper elementMapper = new ElementMapper(); + ArrayList methodDescriptions = elementMapper.GetAvailableMethods(TwoSquareElementSet.ElementType, TriangleElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), TriangleElementSet, TwoSquareElementSet); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0),"Test1"); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0),"Test2"); + + elementMapper.Initialise(methodDescriptions[0].ToString(), TwoSquareElementSet, TriangleElementSet); + Assert.AreEqual(0.75, elementMapper.GetValueFromMappingMatrix(0, 0),0.000000001,"Test3"); + Assert.AreEqual(0.25, elementMapper.GetValueFromMappingMatrix(0, 1),"Test4"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), TriangleElementSet, TwoSquareElementSet); + Assert.AreEqual(0.3, elementMapper.GetValueFromMappingMatrix(0, 0),"Test5"); + Assert.AreEqual(0.1, elementMapper.GetValueFromMappingMatrix(1, 0),"Test6"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), TwoSquareElementSet, TriangleElementSet); + Assert.AreEqual(0.75, elementMapper.GetValueFromMappingMatrix(0, 0),0.0000000001,"Test7"); + Assert.AreEqual(0.25, elementMapper.GetValueFromMappingMatrix(0, 1),"Test8"); + + Vertex v2_0_2 = new Vertex(0,2,0); + Vertex v2_0_0 = new Vertex(0,0,0); + Vertex v2_2_0 = new Vertex(2,0,0); + Vertex v2_1_2 = new Vertex(1,2,0); + Vertex v2_1_0 = new Vertex(1,0,0); + Vertex v2_3_0 = new Vertex(3,0,0); + + Element LeftTriangle2 = new Element("LeftTriangle"); + LeftTriangle2.AddVertex(v2_0_2); + LeftTriangle2.AddVertex(v2_0_0); + LeftTriangle2.AddVertex(v2_2_0); + + Element RightTriangle2 = new Element("RightTriangle"); + RightTriangle2.AddVertex(v2_1_2); + RightTriangle2.AddVertex(v2_1_0); + RightTriangle2.AddVertex(v2_3_0); + + ElementSet LeftTriangleElementSet2 = new ElementSet("TwoSquareElementSet","TwoSquareElementSet",ElementType.XYPolygon,new SpatialReference("ref")); + ElementSet RightTriangleElementSet2 = new ElementSet("TriangleElementSet","TriangleElementSet",ElementType.XYPolygon,new SpatialReference("ref")); + LeftTriangleElementSet2.AddElement(LeftTriangle2); + RightTriangleElementSet2.AddElement(RightTriangle2); + + + elementMapper.Initialise(methodDescriptions[0].ToString(), LeftTriangleElementSet2, RightTriangleElementSet2); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0),"Test9"); + + elementMapper.Initialise(methodDescriptions[0].ToString(), RightTriangleElementSet2, LeftTriangleElementSet2); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0),"Test10"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), LeftTriangleElementSet2, RightTriangleElementSet2); + Assert.AreEqual(0.25, elementMapper.GetValueFromMappingMatrix(0, 0),"Test11"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), RightTriangleElementSet2, LeftTriangleElementSet2); + Assert.AreEqual(0.25, elementMapper.GetValueFromMappingMatrix(0, 0),"Test12"); + + Vertex v3_0_2 = new Vertex(0,2,0); + Vertex v3_0_0 = new Vertex(0,0,0); + Vertex v3_2_0 = new Vertex(2,0,0); + Vertex v3_1_2 = new Vertex(1,2,0); + Vertex v3_1_0 = new Vertex(1,0,0); + Vertex v3_3_2 = new Vertex(3,2,0); + + Element LeftTriangle3 = new Element("LeftTriangle"); + LeftTriangle3.AddVertex(v3_0_2); + LeftTriangle3.AddVertex(v3_0_0); + LeftTriangle3.AddVertex(v3_2_0); + + Element RightTriangle3 = new Element("RightTriangle"); + RightTriangle3.AddVertex(v3_1_2); + RightTriangle3.AddVertex(v3_1_0); + RightTriangle3.AddVertex(v3_3_2); + + ElementSet LeftTriangleElementSet3 = new ElementSet("TwoSquareElementSet","TwoSquareElementSet",ElementType.XYPolygon,new SpatialReference("ref")); + ElementSet RightTriangleElementSet3 = new ElementSet("TriangleElementSet","TriangleElementSet",ElementType.XYPolygon,new SpatialReference("ref")); + LeftTriangleElementSet3.AddElement(LeftTriangle3); + RightTriangleElementSet3.AddElement(RightTriangle3); + + elementMapper.Initialise(methodDescriptions[0].ToString(), LeftTriangleElementSet3, RightTriangleElementSet3); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0),"Test13"); + + elementMapper.Initialise(methodDescriptions[0].ToString(), RightTriangleElementSet3, LeftTriangleElementSet3); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0),"Test14"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), LeftTriangleElementSet3, RightTriangleElementSet3); + Assert.AreEqual(0.125, elementMapper.GetValueFromMappingMatrix(0, 0),"Test15"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), RightTriangleElementSet3, LeftTriangleElementSet3); + Assert.AreEqual(0.125, elementMapper.GetValueFromMappingMatrix(0, 0),"Test16"); + } + [Test] // testing the Initialise method + public void MapValues() + { + ElementSet gridElementSet = new ElementSet("RegularGrid","RegularGrid",ElementType.XYPolygon, new SpatialReference("ref")); + ElementSet fourPointsElementSet = new ElementSet("4 points","4P",ElementType.XYPoint,new SpatialReference("DummyID")); + + Vertex v_0_20 = new Vertex(0,20,0); + Vertex v_0_10 = new Vertex(0,10,0); + Vertex v_0_0 = new Vertex(0, 0,0); + Vertex v_0_15 = new Vertex(0,15,0); + Vertex v_5_15 = new Vertex(5,15,0); + Vertex v_10_20 = new Vertex(10,20,0); + Vertex v_10_15 = new Vertex(10,15,0); + Vertex v_10_10 = new Vertex(10,10,0); + Vertex v_10_0 = new Vertex(10, 0,0); + Vertex v_15_15 = new Vertex(15,15,0); + Vertex v_15_5 = new Vertex(15,5,0); + Vertex v_20_20 = new Vertex(20,20,0); + Vertex v_20_10 = new Vertex(20,10,0); + + Element square1 = new Element("square1"); + Element square2 = new Element("square2"); + Element square3 = new Element("square3"); + + square1.AddVertex(v_0_20); + square1.AddVertex(v_0_10); + square1.AddVertex(v_10_10); + square1.AddVertex(v_10_20); + + square2.AddVertex(v_10_20); + square2.AddVertex(v_10_10); + square2.AddVertex(v_20_10); + square2.AddVertex(v_20_20); + + square3.AddVertex(v_0_10); + square3.AddVertex(v_0_0); + square3.AddVertex(v_10_0); + square3.AddVertex(v_10_10); + + gridElementSet.AddElement(square1); + gridElementSet.AddElement(square2); + gridElementSet.AddElement(square3); + + Element point_5_15 = new Element("point 5, 15"); + Element point_10_15 = new Element("point 10, 15"); + Element point_15_15 = new Element("point 15, 15"); + Element point_15_5 = new Element("point 15, 5"); + + point_5_15.AddVertex(v_5_15); + point_10_15.AddVertex(v_10_15); + point_15_15.AddVertex(v_15_15); + point_15_5.AddVertex(v_15_5); + + fourPointsElementSet.AddElement(point_5_15); + fourPointsElementSet.AddElement(point_10_15); + fourPointsElementSet.AddElement(point_15_15); + fourPointsElementSet.AddElement(point_15_5); + ScalarSet fourPointsScalarSet = new ScalarSet(); + ScalarSet gridScalarSet = new ScalarSet(); + + ElementMapper elementMapper = new ElementMapper(); + + // point to polygon + + ArrayList methodDescriptions = elementMapper.GetAvailableMethods(fourPointsElementSet.ElementType, gridElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, gridElementSet); + fourPointsScalarSet.data = new double[4] { 0, 10, 20, 30 }; + gridScalarSet = (ScalarSet)elementMapper.MapValues(fourPointsScalarSet); + Assert.AreEqual(5, gridScalarSet.data[0]); + Assert.AreEqual(20, gridScalarSet.data[1]); + Assert.AreEqual(0, gridScalarSet.data[2]); + // polygon to point + methodDescriptions = elementMapper.GetAvailableMethods(gridElementSet.ElementType, fourPointsElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), gridElementSet, fourPointsElementSet); + fourPointsScalarSet = (ScalarSet)elementMapper.MapValues(gridScalarSet); + Assert.AreEqual(5, fourPointsScalarSet.data[0]); + Assert.AreEqual(5, fourPointsScalarSet.data[1]); + Assert.AreEqual(20, fourPointsScalarSet.data[2]); + Assert.AreEqual(0, fourPointsScalarSet.data[3]); + } + + [Test] + public void GetAvailableMethods() + { + ElementMapper elementMapper = new ElementMapper(); + ElementType fromElementType = ElementType.XYPolygon; + ElementType toElementType = ElementType.XYPolygon; + + ArrayList availableMethods = elementMapper.GetAvailableMethods(fromElementType, toElementType); + Assert.AreEqual("Weighted Mean", availableMethods[0]); + Assert.AreEqual("Weighted Sum", availableMethods[1]); + } + + [Test] + [ExpectedException(typeof(System.Exception))] + public void ExpectexException_UpdateMappingMatrix_ElementChecker() + { + //Two Vertices in point element error + ElementSet elementSet = new ElementSet("test","test",ElementType.XYPoint,new SpatialReference("DummyID")); + Element e1 = new Element("e1"); + e1.AddVertex(new Vertex(1,1,1)); + e1.AddVertex(new Vertex(2,2,2)); //here the error is introduced on purpose + + elementSet.AddElement(e1); + + ElementMapper elementMapper = new ElementMapper(); + string method = (string) elementMapper.GetAvailableMethods(ElementType.XYPolyLine,ElementType.XYPolygon)[0]; + elementMapper.UpdateMappingMatrix(method,elementSet,elementSet); + } + + [Test] + public void GetAvailableDataOperations() + { + ElementMapper elementMapper = new ElementMapper(); + + Console.WriteLine("=========================FROM XYPoint===================================="); + ArrayList dataOperationsXYPoint = elementMapper.GetAvailableDataOperations(ElementType.XYPoint); + foreach (IDataOperation operation in dataOperationsXYPoint) + { + Console.WriteLine(" "); + Console.WriteLine("------------------------------------"); + Console.WriteLine("DataOperationID: " + operation.ID); + for (int i = 0; i < operation.ArgumentCount; i++) + { + Console.WriteLine(" "); + Console.WriteLine("Key: " + operation.GetArgument(i).Key); + Console.WriteLine("Value: " + operation.GetArgument(i).Value); + Console.WriteLine("ReadOnly: " + operation.GetArgument(i).ReadOnly.ToString()); + Console.WriteLine("Description: " + operation.GetArgument(i).Description); + } + } + + Console.WriteLine(" "); + Console.WriteLine("========================= FROM XYLine ===================================="); + ArrayList dataOperationsXYLine = elementMapper.GetAvailableDataOperations(ElementType.XYLine); + foreach (IDataOperation operation in dataOperationsXYLine) + { + Console.WriteLine(" "); + Console.WriteLine("------------------------------------"); + Console.WriteLine("DataOperationID: " + operation.ID); + for (int i = 0; i < operation.ArgumentCount; i++) + { + Console.WriteLine(" "); + Console.WriteLine("Key: " + operation.GetArgument(i).Key); + Console.WriteLine("Value: " + operation.GetArgument(i).Value); + Console.WriteLine("ReadOnly: " + operation.GetArgument(i).ReadOnly.ToString()); + Console.WriteLine("Description: " + operation.GetArgument(i).Description); + } + } + + Console.WriteLine(" "); + Console.WriteLine("========================= FROM XYPolyLine ===================================="); + ArrayList dataOperationsXYPolyLine = elementMapper.GetAvailableDataOperations(ElementType.XYPolyLine); + foreach (IDataOperation operation in dataOperationsXYPolyLine) + { + Console.WriteLine(" "); + Console.WriteLine("------------------------------------"); + Console.WriteLine("DataOperationID: " + operation.ID); + for (int i = 0; i < operation.ArgumentCount; i++) + { + Console.WriteLine(" "); + Console.WriteLine("Key: " + operation.GetArgument(i).Key); + Console.WriteLine("Value: " + operation.GetArgument(i).Value); + Console.WriteLine("ReadOnly: " + operation.GetArgument(i).ReadOnly.ToString()); + Console.WriteLine("Description: " + operation.GetArgument(i).Description); + } + } + + Console.WriteLine(" "); + Console.WriteLine("=========================FROM XYPolygon===================================="); + ArrayList dataOperationsXYPolygon = elementMapper.GetAvailableDataOperations(ElementType.XYPolygon); + foreach (IDataOperation operation in dataOperationsXYPolygon) + { + Console.WriteLine(" "); + Console.WriteLine("------------------------------------"); + Console.WriteLine("DataOperationID: " + operation.ID); + for (int i = 0; i < operation.ArgumentCount; i++) + { + Console.WriteLine(" "); + Console.WriteLine("Key: " + operation.GetArgument(i).Key); + Console.WriteLine("Value: " + operation.GetArgument(i).Value); + Console.WriteLine("ReadOnly: " + operation.GetArgument(i).ReadOnly.ToString()); + Console.WriteLine("Description: " + operation.GetArgument(i).Description); + } + } + + bool operationWasFound = false; + bool IDWasFound = false; + bool descriptionWasFound = false; + bool typeWasFound = false; + bool fromElementTypeWasFound = false; + bool toElementTypeWasFound = false; + + foreach (IDataOperation operation in dataOperationsXYPolygon) + { + if (operation.ID == "ElementMapper801") + { + operationWasFound = true; + + for (int i = 0; i < operation.ArgumentCount; i++) + { + if (operation.GetArgument(i).Key == "ID") + { + Assert.AreEqual("801",operation.GetArgument(i).Value); + IDWasFound = true; + } + if (operation.GetArgument(i).Key == "Description") + { + Assert.AreEqual("Weighted Sum",operation.GetArgument(i).Value); + descriptionWasFound = true; + } + if (operation.GetArgument(i).Key == "Type") + { + Assert.AreEqual("SpatialMapping",operation.GetArgument(i).Value); + typeWasFound = true; + } + if (operation.GetArgument(i).Key == "FromElementType") + { + Assert.AreEqual("XYPolygon",operation.GetArgument(i).Value); + fromElementTypeWasFound = true; + } + if (operation.GetArgument(i).Key == "ToElementType") + { + Assert.AreEqual("XYPolygon",operation.GetArgument(i).Value); + toElementTypeWasFound = true; + } + } + } + } + + Assert.AreEqual(true,operationWasFound); + Assert.AreEqual(true,IDWasFound); + Assert.AreEqual(true,descriptionWasFound); + Assert.AreEqual(true,typeWasFound); + Assert.AreEqual(true,fromElementTypeWasFound); + Assert.AreEqual(true,toElementTypeWasFound); + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/Oatc.OpenMI.Sdk.Spatial.UnitTest.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/Oatc.OpenMI.Sdk.Spatial.UnitTest.csproj new file mode 100644 index 00000000..8e7b1cc5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/Oatc.OpenMI.Sdk.Spatial.UnitTest.csproj @@ -0,0 +1,140 @@ + + + + Local + 8.0.50727 + 2.0 + {9020FF67-3C7C-4CC2-9595-53C6BAD2F66E} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Spatial.UnitTest + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Spatial.UnitTest + OnBuildSuccess + + + + + + + 3.5 + v2.0 + + + ./bin/Debug + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ./bin/Release + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\..\..\..\..\..\..\_Code\Dev.CSharp\HydroDesktop\Source\Plugins\Modeler\Utilities\NUnit\nunit.framework.dll + + + ..\..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + + + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C} + Oatc.OpenMI.Sdk.Spatial + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/XYGeometryToolsTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/XYGeometryToolsTest.cs new file mode 100644 index 00000000..6f0c98a5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/XYGeometryToolsTest.cs @@ -0,0 +1,483 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.IO; +using Oatc.OpenMI.Sdk.Spatial; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Spatial.UnitTest + +{ + /// + /// Summary description for XYGeometryToolsTest. + /// + public class AXYGeometryTools: XYGeometryTools + { + public static double ACalculateLengthOfLineInsidePolygon(XYLine line, XYPolygon polygon) + { + return CalculateLengthOfLineInsidePolygon(line, polygon); + } + + public static double ACalculateLineToPointDistance(XYLine line, XYPoint point) + { + return CalculateLineToPointDistance(line, point); + } + + public static double ACalculateSharedLength(XYLine lineA, XYLine lineB) + { + return CalculateSharedLength(lineA, lineB); + } + + public static bool AIntersectionPoint(XYLine lineA, XYLine lineB, ref XYPoint intersectionPoint) + { + return IntersectionPoint(lineA, lineB, ref intersectionPoint); + } + + public static bool AIsPointInLine(XYPoint point, XYLine line) + { + return IsPointInLine(point, line); + } + + public static bool AIsPointInLineInterior(XYPoint point, XYLine line) + { + return IsPointInLineInterior(point, line); + } + + public static bool AIsPointInPolygonOrOnEdge(double x, double y, XYPolygon polygon) + { + return IsPointInPolygonOrOnEdge(x, y, polygon); + } + + public static double ATriangleIntersectionArea(XYPolygon triangleA, XYPolygon triangleB) + { + return TriangleIntersectionArea(triangleA, triangleB); + } + } + + [TestFixture] + public class XYGeometryToolsTest + { + [Test] + public void CalculateIntersectionPoint() + { + // Testing two overloaded methods with the same lines. + Assert.AreEqual(new XYPoint(5,2.5),XYGeometryTools.CalculateIntersectionPoint(new XYPoint(2,3.5), new XYPoint(8,1.5), new XYPoint(2,1), new XYPoint(8,4))); + Assert.AreEqual(new XYPoint(5,2.5),XYGeometryTools.CalculateIntersectionPoint(new XYLine(2, 3.5, 8, 1.5), new XYLine (2, 1, 8, 4))); + + // Intersection between horizontal and vertical lines + Assert.AreEqual(new XYPoint(5,1),XYGeometryTools.CalculateIntersectionPoint(new XYPoint(1,1),new XYPoint(9,1), new XYPoint(5,5),new XYPoint(5,0))); + } + + [Test] + [ExpectedException(typeof(System.Exception))] + public void CalculateIntersectionPoint_Exception_1() + { + XYGeometryTools.CalculateIntersectionPoint(new XYPoint(2,3.5), new XYPoint(8,1.5), new XYPoint(2,2.5), new XYPoint(8,0.5)); + } + [Test] + [ExpectedException(typeof(System.Exception))] + public void CalculateIntersectionPoint_Exception_2() + { + XYGeometryTools.CalculateIntersectionPoint(new XYPoint(0,1), new XYPoint(1,1.5), new XYPoint(1,1.5), new XYPoint(8,0.5)); + } + + [Test] + public void Protected_CalculateLengthOfLineInsidePolygon() + { + XYPolygon xypolygon = new XYPolygon(); + xypolygon.Points.Add(new XYPoint(1,1)); + xypolygon.Points.Add(new XYPoint(9,1)); + xypolygon.Points.Add(new XYPoint(5,5)); + xypolygon.Points.Add(new XYPoint(5,3)); + xypolygon.Points.Add(new XYPoint(3,3)); + xypolygon.Points.Add(new XYPoint(3,8)); + xypolygon.Points.Add(new XYPoint(9,8)); + xypolygon.Points.Add(new XYPoint(9,11)); + xypolygon.Points.Add(new XYPoint(1,11)); + + Assert.AreEqual(0, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,12,11,12),xypolygon),"Test1"); + Assert.AreEqual(4, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,11,11,11),xypolygon),"Test2"); + Assert.AreEqual(8, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,10,11,10),xypolygon),"Test3"); + Assert.AreEqual(8, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,9,11,9),xypolygon),"Test4"); + + Assert.AreEqual(5, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,8,11,8),xypolygon),"Test5"); + Assert.AreEqual(2, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,7,11,7),xypolygon),"Test6"); + Assert.AreEqual(2, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,5,11,5),xypolygon),"Test7"); + Assert.AreEqual(3, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,4,11,4),xypolygon),"Test8"); + + Assert.AreEqual(3, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,4,11,4),xypolygon),"Test9"); + Assert.AreEqual(5, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,3,11,3),xypolygon),"Test10"); + Assert.AreEqual(7, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,2,11,2),xypolygon),"Test11"); + Assert.AreEqual(4, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,1,11,1),xypolygon),"Test12"); + Assert.AreEqual(0, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,0,11,0),xypolygon),"Test13"); + + Assert.AreEqual(10, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(2,12,2,0),xypolygon),"Test14"); + Assert.AreEqual(6, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(6,12,6,0),xypolygon),"Test15"); + Assert.AreEqual(Math.Sqrt(8)+1.5*Math.Sqrt(0.5),AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(1,0.5,10,9.5),xypolygon),"Test16"); + Assert.AreEqual(1, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,4,2,4),xypolygon),"Test17"); + Assert.AreEqual(5, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(4,12,4,0),xypolygon),"Test18"); + } + + [Test] + public void CalculateLengthOfPolylineInsidePolygon() + { + XYPolygon xypolygon = new XYPolygon(); + xypolygon.Points.Add(new XYPoint(1,1)); + xypolygon.Points.Add(new XYPoint(9,1)); + xypolygon.Points.Add(new XYPoint(5,5)); + xypolygon.Points.Add(new XYPoint(5,3)); + xypolygon.Points.Add(new XYPoint(3,3)); + xypolygon.Points.Add(new XYPoint(3,8)); + xypolygon.Points.Add(new XYPoint(9,8)); + xypolygon.Points.Add(new XYPoint(9,11)); + xypolygon.Points.Add(new XYPoint(1,11)); + + XYPolyline xypolyline = new XYPolyline(); + xypolyline.Points.Add(new XYPoint(9,13)); + xypolyline.Points.Add(new XYPoint(7,12)); + xypolyline.Points.Add(new XYPoint(7,10)); + xypolyline.Points.Add(new XYPoint(2,10)); + xypolyline.Points.Add(new XYPoint(2,3)); + + Assert.AreEqual(13,XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(xypolyline, xypolygon)); + + XYPolygon rectangle = new XYPolygon(); + rectangle.Points.Add(new XYPoint(10,10)); + rectangle.Points.Add(new XYPoint(20,10)); + rectangle.Points.Add(new XYPoint(20,40)); + rectangle.Points.Add(new XYPoint(10,40)); + + XYPolyline line1 = new XYPolyline(); + line1.Points.Add(new XYPoint(0,20)); + line1.Points.Add(new XYPoint(30,20)); + Assert.AreEqual(10, XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(line1, rectangle)); // horizontal line crossing + + XYPolyline line2 = new XYPolyline(); + line2.Points.Add(new XYPoint(10,20)); + line2.Points.Add(new XYPoint(20,20)); + Assert.AreEqual(10, XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(line2, rectangle)); // fits inside + + XYPolyline line3 = new XYPolyline(); + line3.Points.Add(new XYPoint(0,40)); + line3.Points.Add(new XYPoint(30,40)); + Assert.AreEqual(5, XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(line3, rectangle)); + + XYPolyline line4 = new XYPolyline(); + line4.Points.Add(new XYPoint(20,40)); + line4.Points.Add(new XYPoint(20,0)); + + Assert.AreEqual(15, XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(line4, rectangle)); + + XYPolyline line5 = new XYPolyline(); + line5.Points.Add(new XYPoint(20,40)); + line5.Points.Add(new XYPoint(20,10)); + Assert.AreEqual(15, XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(line5, rectangle)); + + XYPolyline line6 = new XYPolyline(); + line6.Points.Add(new XYPoint(10,40)); + line6.Points.Add(new XYPoint(30,40)); + Assert.AreEqual(5, XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(line6, rectangle)); + + XYPolyline line7 = new XYPolyline(); + line7.Points.Add(new XYPoint(10,20)); + line7.Points.Add(new XYPoint(30,20)); + Assert.AreEqual(10, XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(line7, rectangle)); + + + + + + + } + + [Test] + public void Protected_CalculateLineToPointDistance() + { + Assert.AreEqual(Math.Sqrt(2),AXYGeometryTools.ACalculateLineToPointDistance(new XYLine(0,2,2,0),new XYPoint(2,2)),1e-12,"Test1"); + Assert.AreEqual(0,AXYGeometryTools.ACalculateLineToPointDistance(new XYLine(0,2,2,0),new XYPoint(1,1)),1e-12,"Test2"); + Assert.AreEqual(Math.Sqrt(2),AXYGeometryTools.ACalculateLineToPointDistance(new XYLine(0,2,2,0),new XYPoint(3,1)),1e-12,"Test3"); + Assert.AreEqual(1,AXYGeometryTools.ACalculateLineToPointDistance(new XYLine(0,2,2,0),new XYPoint(3,0)),1e-12,"Test4"); + Assert.AreEqual(Math.Sqrt(2),AXYGeometryTools.ACalculateLineToPointDistance(new XYLine(0,2,2,0),new XYPoint(3,-1)),1e-12,"Test5"); + Assert.AreEqual(1,AXYGeometryTools.ACalculateLineToPointDistance(new XYLine(0,2,2,0),new XYPoint(2,-1)),1e-12,"Test6"); + Assert.AreEqual(Math.Sqrt(2),AXYGeometryTools.ACalculateLineToPointDistance(new XYLine(0,2,2,0),new XYPoint(1,-1)),1e-12,"Test1"); + } + + [Test] + public void CalculatePointToPointDistance() + { + Assert.AreEqual((double) 5, XYGeometryTools.CalculatePointToPointDistance(new XYPoint(1,1),new XYPoint(4,5))); + Assert.AreEqual((double) 5, XYGeometryTools.CalculatePointToPointDistance(new XYPoint(4,5),new XYPoint(1,1))); + Assert.AreEqual((double) 9, XYGeometryTools.CalculatePointToPointDistance(new XYPoint(1,5),new XYPoint(10,5))); + Assert.AreEqual((double) 6, XYGeometryTools.CalculatePointToPointDistance(new XYPoint(4,2),new XYPoint(4,8))); + } + + [Test] + public void CalculatePolylineToPointDistance() + { + XYPolyline polyline = new XYPolyline(); + polyline.Points.Add(new XYPoint(0,0)); + polyline.Points.Add(new XYPoint(1,1)); + polyline.Points.Add(new XYPoint(2,2)); + polyline.Points.Add(new XYPoint(4,2)); + polyline.Points.Add(new XYPoint(6,0)); + Assert.AreEqual(Math.Sqrt(2),XYGeometryTools.CalculatePolylineToPointDistance(polyline, new XYPoint(-1,-1)),1e-12,"Test1"); + Assert.AreEqual(Math.Sqrt(2),XYGeometryTools.CalculatePolylineToPointDistance(polyline, new XYPoint(2,0)),1e-12,"Test2"); + Assert.AreEqual(0,XYGeometryTools.CalculatePolylineToPointDistance(polyline, new XYPoint(2,2)),1e-12,"Test3"); + Assert.AreEqual(1,XYGeometryTools.CalculatePolylineToPointDistance(polyline, new XYPoint(3,1)),1e-12,"Test4"); + Assert.AreEqual(1,XYGeometryTools.CalculatePolylineToPointDistance(polyline, new XYPoint(3,3)),1e-12,"Test5"); + Assert.AreEqual(2,XYGeometryTools.CalculatePolylineToPointDistance(polyline, new XYPoint(3,4)),1e-12,"Test6"); + Assert.AreEqual(0,XYGeometryTools.CalculatePolylineToPointDistance(polyline, new XYPoint(6,0)),1e-12,"Test7"); + } + + [Test] + public void CalculateSharedArea() + { + XYPolygon p1 = new XYPolygon(); + p1.Points.Add(new XYPoint(0, 3)); + p1.Points.Add(new XYPoint(3, 0)); + p1.Points.Add(new XYPoint(8, 0)); + p1.Points.Add(new XYPoint(8, 2)); + p1.Points.Add(new XYPoint(3, 1)); + p1.Points.Add(new XYPoint(3, 3)); + p1.Points.Add(new XYPoint(8, 3)); + p1.Points.Add(new XYPoint(4, 7)); + + XYPolygon p2 = new XYPolygon(); + p2.Points.Add(new XYPoint(3, 3)); + p2.Points.Add(new XYPoint(4, 3)); + p2.Points.Add(new XYPoint(4, 4)); + p2.Points.Add(new XYPoint(3, 4)); + + XYPolygon p3 = new XYPolygon(); + p3.Points.Add(new XYPoint(0, 0)); + p3.Points.Add(new XYPoint(8, 0)); + p3.Points.Add(new XYPoint(8, 8)); + p3.Points.Add(new XYPoint(0, 8)); + + XYPolygon p4 = new XYPolygon(); + p4.Points.Add(new XYPoint(-2, 0)); + p4.Points.Add(new XYPoint(3, 0)); + p4.Points.Add(new XYPoint(3, 2)); + p4.Points.Add(new XYPoint(0, 2)); + p4.Points.Add(new XYPoint(0, 5)); + p4.Points.Add(new XYPoint(4, 5)); + p4.Points.Add(new XYPoint(4, 7)); + p4.Points.Add(new XYPoint(-2, 7)); + + Assert.AreEqual(p1.GetArea(),XYGeometryTools.CalculateSharedArea(p1,p1),1e-12,"Test1 - Polygon1 in Polygon1"); + Assert.AreEqual(p2.GetArea(),XYGeometryTools.CalculateSharedArea(p2,p2),1e-12,"Test2 - Polygon1 in Polygon1"); + Assert.AreEqual(p4.GetArea(),XYGeometryTools.CalculateSharedArea(p4,p4),1e-12,"Test3 - Polygon1 in Polygon1"); + Assert.AreEqual(p2.GetArea(),XYGeometryTools.CalculateSharedArea(p1,p2),1e-12,"Test4 - Polygon2 in Polygon1"); + Assert.AreEqual(p1.GetArea(),XYGeometryTools.CalculateSharedArea(p1,p3),1e-12,"Test5 - Polygon1 in Polygon2"); + Assert.AreEqual(4,XYGeometryTools.CalculateSharedArea(p1,p4),1e-12,"Test6 - Polygon1 in Polygon3"); + } + + [Test] + public void Protected_CalculateSharedLength() + { + Assert.AreEqual(Math.Sqrt(2),AXYGeometryTools.ACalculateSharedLength(new XYLine(0, 0, 1, 1), new XYLine(0, 0, 1, 1)),"Test1"); + Assert.AreEqual(0,AXYGeometryTools.ACalculateSharedLength(new XYLine(0, 0, 1, 1), new XYLine(10, 10, 11, 11)),"Test2"); + Assert.AreEqual(Math.Sqrt(2)/2,AXYGeometryTools.ACalculateSharedLength(new XYLine(0, 0, 1, 1), new XYLine(0.5, 0.5, 10, 10)),"Test3"); + Assert.AreEqual(0,AXYGeometryTools.ACalculateSharedLength(new XYLine(1, 1, 1, 3), new XYLine(1, 4, 1, 5)),"Test4 vertical lines"); + Assert.AreEqual(1,AXYGeometryTools.ACalculateSharedLength(new XYLine(1, 1, 1, 3), new XYLine(1, 2, 1, 5)),"Test4"); + Assert.AreEqual(0,AXYGeometryTools.ACalculateSharedLength(new XYLine(1, 1, 1, 3), new XYLine(2, 1, 2, 5)),"Test5"); + Assert.AreEqual(2,AXYGeometryTools.ACalculateSharedLength(new XYLine(7, 3, 10, 3), new XYLine(8, 3, 11, 3)),"Test5"); + Assert.AreEqual(0,AXYGeometryTools.ACalculateSharedLength(new XYLine(7, 3, 10, 3), new XYLine(11, 3, 13, 3)),"Test6"); + Assert.AreEqual(30,AXYGeometryTools.ACalculateSharedLength(new XYLine(20, 40, 20, 0), new XYLine(20, 40, 20, 10)),"Test7"); + Assert.AreEqual(30,AXYGeometryTools.ACalculateSharedLength(new XYLine(20, 40, 20, 10), new XYLine(20, 40, 20, 10)),"Test8"); + Assert.AreEqual(30,AXYGeometryTools.ACalculateSharedLength(new XYLine(20, 10, 20, 40), new XYLine(20, 10, 20, 40)),"Test9"); + Assert.AreEqual(0,AXYGeometryTools.ACalculateSharedLength(new XYLine(10, 40, 20, 40), new XYLine(20, 40, 20, 10)),"Test10"); + } + + [Test] + public void DoLineSegmentsIntersect() + { + // crossing (using three overloaded methods for the same lines) + Assert.AreEqual(true, XYGeometryTools.DoLineSegmentsIntersect(2,1,5,2,3,4,4,1)); + Assert.AreEqual(true, XYGeometryTools.DoLineSegmentsIntersect(new XYPoint(2,1), new XYPoint(5,2), new XYPoint(3,4), new XYPoint(4,1))); + Assert.AreEqual(true, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,5,2),new XYLine(3,4,4,1))); + + // too short to cross( using three overloaded methods for the same lines) + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(2,1,5,2,3,4,4,2)); + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYPoint(2,1), new XYPoint(5,2), new XYPoint(3,4), new XYPoint(4,2))); + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,5,2), new XYLine(3,4,4,2))); + + // Long enough but wrong direction to cross (using three overloaded methods for the same lines) + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(2,1,5,2,3,4,9,1)); + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYPoint(2,1), new XYPoint(5,2), new XYPoint(3,4), new XYPoint(9,1))); + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,5,2), new XYLine(3,4,9,1))); + + // parallel lines (using three overloaded methods for the same lines) + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(2,1,4,1,2,2,4,2)); + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYPoint(2,1), new XYPoint(4,1), new XYPoint(2,2), new XYPoint(4,2))); + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,4,1), new XYLine(2,2,4,2))); + + // Two identical lines + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,4,1), new XYLine(2,1,4,1))); //horizontal lines + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,10,2,3), new XYLine(2,10,2,3))); // vertical lines + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,2,10,10), new XYLine(2,2,10,10))); + + + // Two line on top of each other but with different length + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(0,1,5,1), new XYLine(2,1,4,1))); //Horizontal lines + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,4,1),new XYLine(0,1,5,1))); //Horizontal lines + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,3,4),new XYLine(2,1,3,3))); //Vertical lines + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,3,3),new XYLine(2,1,3,4))); //Vertical lines + } + + [Test] + public void Protected_IsPointInLine() + { + XYPoint point = new XYPoint(); + Assert.AreEqual(true,AXYGeometryTools.AIsPointInLine(new XYPoint(0,0), new XYLine(0, 0, 1, 1)),"Test1"); + Assert.AreEqual(true,AXYGeometryTools.AIsPointInLine(new XYPoint(0.5,0.5), new XYLine(0, 0, 1, 1)),"Test2"); + Assert.AreEqual(true,AXYGeometryTools.AIsPointInLine(new XYPoint(1,1), new XYLine(0, 0, 1, 1)),"Test3"); + Assert.AreEqual(false,AXYGeometryTools.AIsPointInLine(new XYPoint(0.5,0), new XYLine(0, 0, 1, 1)),"Test4"); + } + + [Test] + public void Protected_IsPointInLineInterior() + { + XYPoint point = new XYPoint(); + Assert.AreEqual(false,AXYGeometryTools.AIsPointInLineInterior(new XYPoint(0,0), new XYLine(0, 0, 1, 1)),"Test1"); + Assert.AreEqual(true,AXYGeometryTools.AIsPointInLineInterior(new XYPoint(0.5,0.5), new XYLine(0, 0, 1, 1)),"Test2"); + Assert.AreEqual(false,AXYGeometryTools.AIsPointInLineInterior(new XYPoint(1,1), new XYLine(0, 0, 1, 1)),"Test3"); + Assert.AreEqual(false,AXYGeometryTools.AIsPointInLineInterior(new XYPoint(0.5,0), new XYLine(0, 0, 1, 1)),"Test4"); + Assert.AreEqual(false,AXYGeometryTools.AIsPointInLineInterior(new XYPoint(20,40), new XYLine(20, 40, 20, 0)),"Test5"); + } + + [Test] + public void IsPointInPolygon() + { + XYPolygon xypolygon = new XYPolygon(); + xypolygon.Points.Add(new XYPoint(1,1)); + xypolygon.Points.Add(new XYPoint(9,1)); + xypolygon.Points.Add(new XYPoint(5,5)); + xypolygon.Points.Add(new XYPoint(5,3)); + xypolygon.Points.Add(new XYPoint(3,3)); + xypolygon.Points.Add(new XYPoint(3,8)); + xypolygon.Points.Add(new XYPoint(9,8)); + xypolygon.Points.Add(new XYPoint(9,11)); + xypolygon.Points.Add(new XYPoint(1,11)); + + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(2,2,xypolygon)); + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(2,4,xypolygon)); + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(2,10,xypolygon)); + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(7,10,xypolygon)); + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(4,2,xypolygon)); + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(7,2,xypolygon)); + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(6,3.5,xypolygon)); + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(7.5,2,xypolygon)); + + Assert.AreEqual(false, XYGeometryTools.IsPointInPolygon(0,0,xypolygon)); + Assert.AreEqual(false, XYGeometryTools.IsPointInPolygon(4,4,xypolygon)); + Assert.AreEqual(false, XYGeometryTools.IsPointInPolygon(4,5,xypolygon)); + Assert.AreEqual(false, XYGeometryTools.IsPointInPolygon(10,8,xypolygon)); + Assert.AreEqual(false, XYGeometryTools.IsPointInPolygon(9,12,xypolygon)); + + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(new XYPoint(7.5,2),xypolygon)); + Assert.AreEqual(false, XYGeometryTools.IsPointInPolygon(new XYPoint(0,0),xypolygon)); + } + + [Test] + public void Protected_IsPointInPolygonOrOnEdge() + { + XYPolygon p1 = new XYPolygon(); + p1.Points.Add(new XYPoint(0, 3)); + p1.Points.Add(new XYPoint(3, 0)); + p1.Points.Add(new XYPoint(8, 0)); + p1.Points.Add(new XYPoint(8, 2)); + p1.Points.Add(new XYPoint(3, 1)); + p1.Points.Add(new XYPoint(3, 3)); + p1.Points.Add(new XYPoint(8, 3)); + p1.Points.Add(new XYPoint(4, 7)); + Assert.AreEqual(true, AXYGeometryTools.AIsPointInPolygonOrOnEdge(0,3,p1),"Test1"); + Assert.AreEqual(true, AXYGeometryTools.AIsPointInPolygonOrOnEdge(1,3,p1),"Test2"); + Assert.AreEqual(false, AXYGeometryTools.AIsPointInPolygonOrOnEdge(1,5,p1),"Test3"); + Assert.AreEqual(true, AXYGeometryTools.AIsPointInPolygonOrOnEdge(3,2,p1),"Test4"); + Assert.AreEqual(true, AXYGeometryTools.AIsPointInPolygonOrOnEdge(3,3,p1),"Test5"); + Assert.AreEqual(true, AXYGeometryTools.AIsPointInPolygonOrOnEdge(6,1,p1),"Test6"); + Assert.AreEqual(false, AXYGeometryTools.AIsPointInPolygonOrOnEdge(6,2,p1),"Test7"); + Assert.AreEqual(false, AXYGeometryTools.AIsPointInPolygonOrOnEdge(6,7,p1),"Test8"); + } + + [Test] + public void Protected_TriangleIntersectionArea() + { + XYPolygon t1 = new XYPolygon(); + t1.Points.Add(new XYPoint(0.0, 0.5)); + t1.Points.Add(new XYPoint(6.0, 0.5)); + t1.Points.Add(new XYPoint(1.0, 7.0)); + + XYPolygon t2 = new XYPolygon(); + t2.Points.Add(new XYPoint(1,1)); + t2.Points.Add(new XYPoint(5,1)); + t2.Points.Add(new XYPoint(1,5)); + + XYPolygon t3 = new XYPolygon(); + t3.Points.Add(new XYPoint(1,1)); + t3.Points.Add(new XYPoint(3,1)); + t3.Points.Add(new XYPoint(1,3)); + + XYPolygon t4 = new XYPolygon(); + t4.Points.Add(new XYPoint(1,2)); + t4.Points.Add(new XYPoint(3,2)); + t4.Points.Add(new XYPoint(3,4)); + + XYPolygon t5 = new XYPolygon(); + t5.Points.Add(new XYPoint(6.5,3.5)); + t5.Points.Add(new XYPoint(9.5,3.4)); + t5.Points.Add(new XYPoint(7,5)); + + XYPolygon t6 = new XYPolygon(); + t6.Points.Add(new XYPoint(-2,0)); + t6.Points.Add(new XYPoint(3,0)); + t6.Points.Add(new XYPoint(3,2)); + + //t2 is fully inside t1 + Assert.AreEqual(8,AXYGeometryTools.ATriangleIntersectionArea(t2,t1),"t2, t1"); + Assert.AreEqual(8,AXYGeometryTools.ATriangleIntersectionArea(t1,t2),"t1, t2"); + + // t4 is partly inside t2 + Assert.AreEqual((double)7/ (double) 4, AXYGeometryTools.ATriangleIntersectionArea(t2,t4),"t2, t4"); + Assert.AreEqual((double)7/ (double) 4, AXYGeometryTools.ATriangleIntersectionArea(t4,t2),"t4, t2"); + + // t3 is inside t2 but is sharing two edges + Assert.AreEqual(2, AXYGeometryTools.ATriangleIntersectionArea(t2,t3),"t2, t3"); + Assert.AreEqual(2, AXYGeometryTools.ATriangleIntersectionArea(t3,t2),"t3, t2"); + + // t1 and t5 has no overlap + Assert.AreEqual(0, AXYGeometryTools.ATriangleIntersectionArea(t1,t5),"t1, t5"); + Assert.AreEqual(0, AXYGeometryTools.ATriangleIntersectionArea(t5,t1),"t5, t1"); + + // two times t6 + Assert.AreEqual(t6.GetArea(), AXYGeometryTools.ATriangleIntersectionArea(t6,t6),"t6, t6"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/XYLineTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/XYLineTest.cs new file mode 100644 index 00000000..1f4ef2ee --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/XYLineTest.cs @@ -0,0 +1,105 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using Oatc.OpenMI.Sdk.Spatial; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Spatial.UnitTest +{ + /// + /// Summary description for XYLineTest. + /// + [TestFixture] + public class XYLineTest + { + public XYLineTest() + { + // + // TODO: Add constructor logic here + // + } + + [Test] + public void ConstructionTest() + { + XYLine xyLine1 = new XYLine(1,2,3,4); + Assert.AreEqual((double) 1, xyLine1.P1.X); + Assert.AreEqual((double) 2, xyLine1.P1.Y); + Assert.AreEqual((double) 3, xyLine1.P2.X); + Assert.AreEqual((double) 4, xyLine1.P2.Y); + + XYLine xyLine2 = new XYLine(xyLine1); + Assert.AreEqual(xyLine1.P1.X, xyLine2.P1.X); + Assert.AreEqual(xyLine1.P1.Y, xyLine2.P1.Y); + Assert.AreEqual(xyLine1.P2.X, xyLine2.P2.X); + Assert.AreEqual(xyLine1.P2.Y, xyLine2.P2.Y); + + XYLine xyLine3 = new XYLine(new XYPoint(1,2),new XYPoint(3,4)); + Assert.AreEqual((double) 1, xyLine3.P1.X); + Assert.AreEqual((double) 2, xyLine3.P1.Y); + Assert.AreEqual((double) 3, xyLine3.P2.X); + Assert.AreEqual((double) 4, xyLine3.P2.Y); + } + + + [Test] + public void GetLength() + { + Assert.AreEqual((double) 5, (new XYLine(1,1,4,5)).GetLength()); + Assert.AreEqual((double) 5, (new XYLine(4,5,1,1)).GetLength()); + Assert.AreEqual((double) 9, (new XYLine(1,5,10,5)).GetLength()); + Assert.AreEqual((double) 6, (new XYLine(4,2,4,8)).GetLength()); + } + + [Test] + public void GetMidpoint() + { + Assert.AreEqual(new XYPoint(4,4),new XYLine(2,3,6,5).GetMidpoint()); + Assert.AreEqual(new XYPoint(4,4),new XYLine(6,5,2,3).GetMidpoint()); + Assert.AreEqual(new XYPoint(4,4),new XYLine(2,4,6,4).GetMidpoint()); + Assert.AreEqual(new XYPoint(4,4),new XYLine(4,2,4,6).GetMidpoint()); + } + + [Test] + public void Equals() + { + XYLine l1 = new XYLine(0, 3, 3, 0); + XYLine l2 = new XYLine(0, 3, 3, 0); + XYLine l3 = new XYLine(3, 3, 3, 0); + XYPolyline pl1 = new XYPolyline(); + pl1.Points.Add(new XYPoint(0, 3)); + pl1.Points.Add(new XYPoint(3, 0)); + + Assert.AreEqual(true, l1.Equals(l1),"Test1"); + Assert.AreEqual(true, l1.Equals(l2),"Test2"); + Assert.AreEqual(false, l1.Equals(l3),"Test3"); + Assert.AreEqual(false, l1.Equals(pl1),"Test4"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/XYPointTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/XYPointTest.cs new file mode 100644 index 00000000..7d2ff1ae --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/XYPointTest.cs @@ -0,0 +1,68 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using Oatc.OpenMI.Sdk.Spatial; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Spatial.UnitTest +{ + /// + /// Summary description for XYPointTest. + /// + [TestFixture] + public class XYPointTest + { + [Test] + public void Equals() + { + XYPoint p1 = new XYPoint(2,3); + XYPoint p2 = new XYPoint(2,3); + XYPoint p3 = new XYPoint(2,-3); + XYLine l1 = new XYLine(2,3,3,4); + Assert.AreEqual(true, p1.Equals(p1),"Test1"); + Assert.AreEqual(true, p1.Equals(p2),"Test2"); + Assert.AreEqual(false, p1.Equals(p3),"Test3"); + Assert.AreEqual(false, p1.Equals(l1),"Test4"); + } + + [Test] + public void PropertyTest() + { + XYPoint xypoint = new XYPoint(2,3); + Assert.AreEqual((double) 2, xypoint.X); + Assert.AreEqual((double) 3, xypoint.Y); + + xypoint.X = 6; + xypoint.Y = 7; + Assert.AreEqual((double) 6, xypoint.X); + Assert.AreEqual((double) 7, xypoint.Y); + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/XYPolygonTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/XYPolygonTest.cs new file mode 100644 index 00000000..ebfee7e6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/XYPolygonTest.cs @@ -0,0 +1,298 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using Oatc.OpenMI.Sdk.Spatial; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Spatial.UnitTest +{ + /// + /// Summary description for XYPolygonTest. + /// + public class AXYPolygon: XYPolygon + { + public int AFindEar() + { + return FindEar(); + } + + public bool AIsIntersected(int i) + { + return IsIntersected(i); + } + + public bool AIsConvex(int i) + { + return IsConvex(i); + } + } + + [TestFixture] + public class XYPolygonTest + { + [Test] + public void GetArea() + { + // -- Rectangle -- + XYPolygon xypolygon = new XYPolygon(); + xypolygon.Points.Add(new XYPoint(1,1)); + xypolygon.Points.Add(new XYPoint(9,1)); + xypolygon.Points.Add(new XYPoint(9,6)); + xypolygon.Points.Add(new XYPoint(1,6)); + Assert.AreEqual((double) 40, xypolygon.GetArea()); + + // -- Triangle -- + XYPolygon xypolygon2 = new XYPolygon(); + xypolygon2.Points.Add(new XYPoint(1,1)); + xypolygon2.Points.Add(new XYPoint(9,1)); + xypolygon2.Points.Add(new XYPoint(9,6)); + Assert.AreEqual((double) 20, xypolygon2.GetArea()); + + // -- concave -- + XYPolygon xypolygon3 = new XYPolygon(); + xypolygon3.Points.Add(new XYPoint(1,1)); + xypolygon3.Points.Add(new XYPoint(5,3)); + xypolygon3.Points.Add(new XYPoint(9,1)); + xypolygon3.Points.Add(new XYPoint(9,6)); + xypolygon3.Points.Add(new XYPoint(1,6)); + Assert.AreEqual((double) 32, xypolygon3.GetArea()); + + // -- concave -- + XYPolygon xypolygon4 = new XYPolygon(); + xypolygon4.Points.Add(new XYPoint(1,1)); + xypolygon4.Points.Add(new XYPoint(9,1)); + xypolygon4.Points.Add(new XYPoint(5,5)); + xypolygon4.Points.Add(new XYPoint(5,3)); + xypolygon4.Points.Add(new XYPoint(3,3)); + xypolygon4.Points.Add(new XYPoint(3,8)); + xypolygon4.Points.Add(new XYPoint(9,8)); + xypolygon4.Points.Add(new XYPoint(9,11)); + xypolygon4.Points.Add(new XYPoint(1,11)); + Assert.AreEqual((double) 50, xypolygon4.GetArea()); + } + + [Test] public void GetLine() + { + // -- Triangle -- + XYPolygon xypolygon = new XYPolygon(); + xypolygon.Points.Add(new XYPoint(1,2)); + xypolygon.Points.Add(new XYPoint(4,3)); + xypolygon.Points.Add(new XYPoint(2,5)); + + Assert.AreEqual(new XYLine(1,2,4,3),xypolygon.GetLine(0)); + Assert.AreEqual(new XYLine(4,3,2,5),xypolygon.GetLine(1)); + Assert.AreEqual(new XYLine(2,5,1,2),xypolygon.GetLine(2)); + + + // -- concave polygon -- + XYPolygon xypolygon4 = new XYPolygon(); + xypolygon4.Points.Add(new XYPoint(1,1)); + xypolygon4.Points.Add(new XYPoint(9,1)); + xypolygon4.Points.Add(new XYPoint(5,5)); + xypolygon4.Points.Add(new XYPoint(5,3)); + xypolygon4.Points.Add(new XYPoint(3,3)); + xypolygon4.Points.Add(new XYPoint(3,8)); + xypolygon4.Points.Add(new XYPoint(9,8)); + xypolygon4.Points.Add(new XYPoint(9,11)); + xypolygon4.Points.Add(new XYPoint(1,11)); + + Assert.AreEqual(new XYLine(1, 1, 9, 1),xypolygon4.GetLine(0)); + Assert.AreEqual(new XYLine(9, 1, 5, 5),xypolygon4.GetLine(1)); + Assert.AreEqual(new XYLine(5, 5, 5, 3),xypolygon4.GetLine(2)); + Assert.AreEqual(new XYLine(5, 3, 3, 3),xypolygon4.GetLine(3)); + Assert.AreEqual(new XYLine(3, 3, 3, 8),xypolygon4.GetLine(4)); + Assert.AreEqual(new XYLine(3, 8, 9, 8),xypolygon4.GetLine(5)); + Assert.AreEqual(new XYLine(9, 8, 9, 11),xypolygon4.GetLine(6)); + Assert.AreEqual(new XYLine(9,11, 1 ,11),xypolygon4.GetLine(7)); + Assert.AreEqual(new XYLine(1,11, 1 , 1),xypolygon4.GetLine(8)); + } + + [Test] + public void Protected_FindEar() + { + AXYPolygon p1 = new AXYPolygon(); + p1.Points.Add(new XYPoint(0, 3)); + p1.Points.Add(new XYPoint(3, 0)); + p1.Points.Add(new XYPoint(8, 0)); + p1.Points.Add(new XYPoint(8, 2)); + p1.Points.Add(new XYPoint(3, 1)); + p1.Points.Add(new XYPoint(3, 3)); + p1.Points.Add(new XYPoint(8, 3)); + p1.Points.Add(new XYPoint(4, 7)); + Assert.AreEqual(2, p1.AFindEar(),"Test1"); + } + + [Test] + public void Protected_IsIntersected() + { + AXYPolygon p1 = new AXYPolygon(); + p1.Points.Add(new XYPoint(0, 3)); + p1.Points.Add(new XYPoint(3, 0)); + p1.Points.Add(new XYPoint(8, 0)); + p1.Points.Add(new XYPoint(8, 2)); + p1.Points.Add(new XYPoint(3, 1)); + p1.Points.Add(new XYPoint(3, 3)); + p1.Points.Add(new XYPoint(8, 3)); + p1.Points.Add(new XYPoint(4, 7)); + Assert.AreEqual(true, p1.AIsIntersected(0),"Test1"); + Assert.AreEqual(true, p1.AIsIntersected(1),"Test2"); + Assert.AreEqual(false, p1.AIsIntersected(2),"Test3"); + } + + [Test] + public void Protected_IsConvex() + { + AXYPolygon xypolygon4 = new AXYPolygon(); + xypolygon4.Points.Add(new XYPoint(1,1)); + xypolygon4.Points.Add(new XYPoint(9,1)); + xypolygon4.Points.Add(new XYPoint(5,5)); + xypolygon4.Points.Add(new XYPoint(5,3)); + xypolygon4.Points.Add(new XYPoint(3,3)); + xypolygon4.Points.Add(new XYPoint(3,8)); + xypolygon4.Points.Add(new XYPoint(9,8)); + xypolygon4.Points.Add(new XYPoint(9,11)); + xypolygon4.Points.Add(new XYPoint(1,11)); + + Assert.AreEqual( true, xypolygon4.AIsConvex(0)); + Assert.AreEqual( true, xypolygon4.AIsConvex(1)); + Assert.AreEqual( true, xypolygon4.AIsConvex(2)); + Assert.AreEqual( false, xypolygon4.AIsConvex(3)); + Assert.AreEqual( false, xypolygon4.AIsConvex(4)); + Assert.AreEqual( false, xypolygon4.AIsConvex(5)); + Assert.AreEqual( true, xypolygon4.AIsConvex(6)); + Assert.AreEqual( true, xypolygon4.AIsConvex(7)); + Assert.AreEqual( true, xypolygon4.AIsConvex(8)); + } + + [Test] + public void GetTriangulation() + { + XYPolygon p1 = new XYPolygon(); + p1.Points.Add(new XYPoint(0, 3)); + p1.Points.Add(new XYPoint(3, 0)); + p1.Points.Add(new XYPoint(8, 0)); + p1.Points.Add(new XYPoint(8, 2)); + p1.Points.Add(new XYPoint(3, 1)); + p1.Points.Add(new XYPoint(3, 3)); + p1.Points.Add(new XYPoint(8, 3)); + p1.Points.Add(new XYPoint(4, 7)); + ArrayList triangleList = p1.GetTriangulation(); + XYPolygon refTriangle1 = new XYPolygon(); + refTriangle1.Points.Add(new XYPoint(3,0)); + refTriangle1.Points.Add(new XYPoint(8,0)); + refTriangle1.Points.Add(new XYPoint(8,2)); + XYPolygon refTriangle2 = new XYPolygon(); + refTriangle2.Points.Add(new XYPoint(3,0)); + refTriangle2.Points.Add(new XYPoint(8,2)); + refTriangle2.Points.Add(new XYPoint(3,1)); + XYPolygon refTriangle3 = new XYPolygon(); + refTriangle3.Points.Add(new XYPoint(0,3)); + refTriangle3.Points.Add(new XYPoint(3,0)); + refTriangle3.Points.Add(new XYPoint(3,1)); + XYPolygon refTriangle4 = new XYPolygon(); + refTriangle4.Points.Add(new XYPoint(0,3)); + refTriangle4.Points.Add(new XYPoint(3,1)); + refTriangle4.Points.Add(new XYPoint(3,3)); + XYPolygon refTriangle5 = new XYPolygon(); + refTriangle5.Points.Add(new XYPoint(4,7)); + refTriangle5.Points.Add(new XYPoint(0,3)); + refTriangle5.Points.Add(new XYPoint(3,3)); + XYPolygon refTriangle6 = new XYPolygon(); + refTriangle6.Points.Add(new XYPoint(3,3)); + refTriangle6.Points.Add(new XYPoint(8,3)); + refTriangle6.Points.Add(new XYPoint(4,7)); + Assert.AreEqual(refTriangle1 ,(XYPolygon) triangleList[0]); + Assert.AreEqual(refTriangle2 ,(XYPolygon) triangleList[1]); + Assert.AreEqual(refTriangle3 ,(XYPolygon) triangleList[2]); + Assert.AreEqual(refTriangle4 ,(XYPolygon) triangleList[3]); + Assert.AreEqual(refTriangle5 ,(XYPolygon) triangleList[4]); + Assert.AreEqual(refTriangle6 ,(XYPolygon) triangleList[5]); + } + + [Test] + public void Equals() + { + XYPolygon p1 = new XYPolygon(); + p1.Points.Add(new XYPoint(0, 3)); + p1.Points.Add(new XYPoint(3, 0)); + p1.Points.Add(new XYPoint(8, 0)); + p1.Points.Add(new XYPoint(8, 2)); + p1.Points.Add(new XYPoint(3, 1)); + p1.Points.Add(new XYPoint(3, 3)); + p1.Points.Add(new XYPoint(8, 3)); + p1.Points.Add(new XYPoint(4, 7)); + + XYPolygon p2 = new XYPolygon(); + p2.Points.Add(new XYPoint(0, 3)); + p2.Points.Add(new XYPoint(3, 0)); + p2.Points.Add(new XYPoint(8, 0)); + p2.Points.Add(new XYPoint(8, 2)); + p2.Points.Add(new XYPoint(3, 1)); + p2.Points.Add(new XYPoint(3, 3)); + p2.Points.Add(new XYPoint(8, 3)); + p2.Points.Add(new XYPoint(4, 7)); + + XYPolygon p3 = new XYPolygon(); + p3.Points.Add(new XYPoint(0, 3)); + p3.Points.Add(new XYPoint(3, 0)); + p3.Points.Add(new XYPoint(8, 0)); + p3.Points.Add(new XYPoint(8, 2)); + p3.Points.Add(new XYPoint(3, 1.1)); + p3.Points.Add(new XYPoint(3, 3)); + p3.Points.Add(new XYPoint(8, 3)); + p3.Points.Add(new XYPoint(4, 7)); + + XYPolygon p4 = new XYPolygon(); + p4.Points.Add(new XYPoint(0, 3)); + p4.Points.Add(new XYPoint(3, 0)); + p4.Points.Add(new XYPoint(8, 0)); + p4.Points.Add(new XYPoint(8, 2)); + p4.Points.Add(new XYPoint(3, 1)); + p4.Points.Add(new XYPoint(3, 3)); + p4.Points.Add(new XYPoint(8, 3)); + + XYPolyline p5 = new XYPolyline(); + p5.Points.Add(new XYPoint(0, 3)); + p5.Points.Add(new XYPoint(3, 0)); + p5.Points.Add(new XYPoint(8, 0)); + p5.Points.Add(new XYPoint(8, 2)); + p5.Points.Add(new XYPoint(3, 1.1)); + p5.Points.Add(new XYPoint(3, 3)); + p5.Points.Add(new XYPoint(8, 3)); + p5.Points.Add(new XYPoint(4, 7)); + + Assert.AreEqual(true, p1.Equals(p1),"Test1"); + Assert.AreEqual(true, p1.Equals(p2),"Test2"); + Assert.AreEqual(false, p1.Equals(p3),"Test3"); + Assert.AreEqual(false, p1.Equals(p4),"Test4"); + Assert.AreEqual(false, p1.Equals(p5),"Test5"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/XYPolylineTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/XYPolylineTest.cs new file mode 100644 index 00000000..3ff0ab04 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/UnitTest/XYPolylineTest.cs @@ -0,0 +1,139 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using Oatc.OpenMI.Sdk.Spatial; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Spatial.UnitTest +{ + /// + /// Summary description for XYPolylineTest. + /// + [TestFixture] + public class XYPolylineTest + { + public XYPolylineTest() + { + // + // TODO: Add constructor logic here + // + } + + [Test] + public void GetLength() + { + XYPolyline xyPolyline = new XYPolyline(); + xyPolyline.Points.Add(new XYPoint(6,2)); + xyPolyline.Points.Add(new XYPoint(2,2)); + xyPolyline.Points.Add(new XYPoint(8,2)); + xyPolyline.Points.Add(new XYPoint(8,4)); + xyPolyline.Points.Add(new XYPoint(5,4)); + xyPolyline.Points.Add(new XYPoint(9,7)); + + Assert.AreEqual((double) 20, xyPolyline.GetLength()); + } + + [Test] + public void GetLine() + { + XYPolyline xyPolyline = new XYPolyline(); + xyPolyline.Points.Add(new XYPoint(6,2)); + xyPolyline.Points.Add(new XYPoint(2,2)); + xyPolyline.Points.Add(new XYPoint(8,2)); + xyPolyline.Points.Add(new XYPoint(8,4)); + xyPolyline.Points.Add(new XYPoint(5,4)); + xyPolyline.Points.Add(new XYPoint(9,7)); + + Assert.AreEqual(new XYLine(6,2,2,2),xyPolyline.GetLine(0)); + Assert.AreEqual(new XYLine(2,2,8,2),xyPolyline.GetLine(1)); + Assert.AreEqual(new XYLine(8,2,8,4),xyPolyline.GetLine(2)); + Assert.AreEqual(new XYLine(8,4,5,4),xyPolyline.GetLine(3)); + Assert.AreEqual(new XYLine(5,4,9,7),xyPolyline.GetLine(4)); + } + + [Test] + public void Equals() + { + XYPolyline p1 = new XYPolyline(); + p1.Points.Add(new XYPoint(0, 3)); + p1.Points.Add(new XYPoint(3, 0)); + p1.Points.Add(new XYPoint(8, 0)); + p1.Points.Add(new XYPoint(8, 2)); + p1.Points.Add(new XYPoint(3, 1)); + p1.Points.Add(new XYPoint(3, 3)); + p1.Points.Add(new XYPoint(8, 3)); + p1.Points.Add(new XYPoint(4, 7)); + + XYPolyline p2 = new XYPolyline(); + p2.Points.Add(new XYPoint(0, 3)); + p2.Points.Add(new XYPoint(3, 0)); + p2.Points.Add(new XYPoint(8, 0)); + p2.Points.Add(new XYPoint(8, 2)); + p2.Points.Add(new XYPoint(3, 1)); + p2.Points.Add(new XYPoint(3, 3)); + p2.Points.Add(new XYPoint(8, 3)); + p2.Points.Add(new XYPoint(4, 7)); + + XYPolyline p3 = new XYPolyline(); + p3.Points.Add(new XYPoint(0, 3)); + p3.Points.Add(new XYPoint(3, 0)); + p3.Points.Add(new XYPoint(8, 0)); + p3.Points.Add(new XYPoint(8, 2)); + p3.Points.Add(new XYPoint(3, 1.1)); + p3.Points.Add(new XYPoint(3, 3)); + p3.Points.Add(new XYPoint(8, 3)); + p3.Points.Add(new XYPoint(4, 7)); + + XYPolyline p4 = new XYPolyline(); + p4.Points.Add(new XYPoint(0, 3)); + p4.Points.Add(new XYPoint(3, 0)); + p4.Points.Add(new XYPoint(8, 0)); + p4.Points.Add(new XYPoint(8, 2)); + p4.Points.Add(new XYPoint(3, 1)); + p4.Points.Add(new XYPoint(3, 3)); + p4.Points.Add(new XYPoint(8, 3)); + + XYPolygon p5 = new XYPolygon(); + p5.Points.Add(new XYPoint(0, 3)); + p5.Points.Add(new XYPoint(3, 0)); + p5.Points.Add(new XYPoint(8, 0)); + p5.Points.Add(new XYPoint(8, 2)); + p5.Points.Add(new XYPoint(3, 1.1)); + p5.Points.Add(new XYPoint(3, 3)); + p5.Points.Add(new XYPoint(8, 3)); + p5.Points.Add(new XYPoint(4, 7)); + + Assert.AreEqual(true, p1.Equals(p1),"Test1"); + Assert.AreEqual(true, p1.Equals(p2),"Test2"); + Assert.AreEqual(false, p1.Equals(p3),"Test3"); + Assert.AreEqual(false, p1.Equals(p4),"Test4"); + Assert.AreEqual(false, p1.Equals(p5),"Test5"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/XYGeometryTools.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/XYGeometryTools.cs new file mode 100644 index 00000000..100b8adb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/XYGeometryTools.cs @@ -0,0 +1,898 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// The XYGeometryTools class is a collection of general geometry functions. All functions are + /// static methods that performs calculations on input given as parameters and returns a result. + /// + /// The parameters passed to the XYGeometryTools methods are typically of type XYPoint, XYLine, + /// XYPolyline or XYPolygon. + /// + public class XYGeometryTools + { + private const double EPSILON = 1e-5; + + /// + /// Returns the distance between the two points. + /// + /// Point + /// Point + /// Point to point distance + public static double CalculatePointToPointDistance(XYPoint p1, XYPoint p2) + { + return Math.Sqrt( (p1.X-p2.X)*(p1.X-p2.X)+(p1.Y -p2.Y )*(p1.Y -p2.Y ) ); + } + + /// + /// Returns true if two line segments intersects. The lines are said to intersect if the lines + /// axctually crosses and not if they only share a point. + /// + /// x-coordiante for first point in first line segment + /// y-coordinate for first point in first line segment + /// x-cooedinate for second point in first line segment + /// y-coordinate for second point in first line segment + /// x-coordinate for the first point in second line segment + /// y-coordinate for the first point in second line segment + /// x-coordinate for the second point in the second line segment + /// y-coordinate for the second point in the second line segment + /// True if the line segments intersects otherwise false. + public static bool DoLineSegmentsIntersect(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) + { + double detP1P2P3, detP1P2P4, detP3P4P1, detP3P4P2; + bool intersect = false; + + detP1P2P3 = (x2 - x1)*(y3 - y1) - (x3 - x1)*(y2 - y1); + detP1P2P4 = (x2 - x1)*(y4 - y1) - (x4 - x1)*(y2 - y1); + detP3P4P1 = (x3 - x1)*(y4 - y1) - (x4 - x1)*(y3 - y1); + detP3P4P2 = detP1P2P3 - detP1P2P4 + detP3P4P1; + + if ((detP1P2P3 * detP1P2P4 < 0) && (detP3P4P1 * detP3P4P2 < 0)) + { + intersect = true; + } + return intersect; + } + + /// + /// OverLoad of DoLineSegmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4) + /// + /// First point in first line + /// Second point in first line + /// First point in second line + /// Second point in second line + /// true if the line segmenst intersects otherwise false + public static bool DoLineSegmentsIntersect(XYPoint p1, XYPoint p2, XYPoint p3, XYPoint p4) + { + return DoLineSegmentsIntersect(p1.X, p1.Y, p2.X, p2.Y, p3.X, p3.Y, p4.X, p4.Y); + } + + /// + /// OverLoad of DoLineSegmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4) + /// + /// First line + /// Second line + /// true if the line segmenst intersects otherwise false + public static bool DoLineSegmentsIntersect(XYLine line1, XYLine line2) + { + return DoLineSegmentsIntersect(line1.P1.X, line1.P1.Y, line1.P2.X, line1.P2.Y, line2.P1.X, line2.P1.Y, line2.P2.X, line2.P2.Y); + } + + /// + /// Calculate intersection point between two line segments. + /// + /// First point in first line + /// Second point in first line + /// First point in second line + /// Second point in second line + /// Intersection point + public static XYPoint CalculateIntersectionPoint(XYPoint p1, XYPoint p2, XYPoint p3, XYPoint p4) + { + if (!DoLineSegmentsIntersect(p1,p2,p3,p4)) + { + throw new System.Exception("Attempt to calculate intersection point between non intersecting lines. CalculateIntersectionPoint failed."); + } + + XYPoint interSectionPoint = new XYPoint(); + + double a = p1.X * p2.Y - p2.X * p1.Y; + double b = p3.X * p4.Y - p4.X * p3.Y; + double c = (p1.X - p2.X) * (p3.Y - p4.Y) - (p3.X - p4.X) * (p1.Y - p2.Y); + + interSectionPoint.X = (a * (p3.X - p4.X) - (b * (p1.X - p2.X))) / c; + interSectionPoint.Y = (a * (p3.Y - p4.Y) - (b * (p1.Y - p2.Y))) / c; + + return interSectionPoint; + } + + /// + /// OverLoad of CalculateIntersectionPoint(XYPoint p1, XYPoint p2, XYPoint p3, XYPoint p4) + /// + /// First line + /// Second line + /// Intersection point + public static XYPoint CalculateIntersectionPoint(XYLine line1, XYLine line2) + { + return CalculateIntersectionPoint(line1.P1, line1.P2, line2.P1, line2.P2); + } + + /// + /// Calculates the length of polyline inside polygon. Lines segments on the edges of + /// polygons are included with half their length. + /// + /// Polyline + /// Polygon + /// + /// Length of polyline inside polygon. + /// + public static double CalculateLengthOfPolylineInsidePolygon(XYPolyline polyline, XYPolygon polygon) + { + double lengthInside = 0; + int numberOfLineSegments = polyline.Points.Count - 1; + for (int i = 0; i < numberOfLineSegments; i++) + { + XYLine line = new XYLine(polyline.GetLine(i)); + lengthInside += CalculateLengthOfLineInsidePolygon(line,polygon); + } + return lengthInside; + } + + /// + /// Calculates the length that two lines overlap. + /// + /// Line + /// Line + /// + /// Length of shared line segment. + /// + protected static double CalculateSharedLength(XYLine lineA, XYLine lineB) + { + if ( Math.Abs(lineA.P2.X-lineA.P1.X) + /// Calculates length of line inside polygon. Parts of the line that is on the edge of + /// the polygon only counts with half their length. + /// + /// Line + /// Polygon + /// + /// Length of line inside polygon. + /// + protected static double CalculateLengthOfLineInsidePolygon(XYLine line, XYPolygon polygon) + { + ArrayList lineList = new ArrayList(); + lineList.Add(new XYLine(line)); + + for (int i = 0; i < polygon.Points.Count; i++) // For all lines in the polygon + { + for (int n = 0; n < lineList.Count; n++) + { + if (lineList.Count > 1000) + { + throw new Exception("Problems in ElementMapper, line has been cut in more than 1000 pieces !!!"); + } + + if (DoLineSegmentsIntersect((XYLine)lineList[n], polygon.GetLine(i))) + { + // Split the intersecting line into two lines + XYPoint IntersectionPoint = new XYPoint(CalculateIntersectionPoint((XYLine)lineList[n], polygon.GetLine(i))); + lineList.Add(new XYLine(IntersectionPoint, ((XYLine) lineList[n]).P2)); + ((XYLine) lineList[n]).P2.X = IntersectionPoint.X; + ((XYLine) lineList[n]).P2.Y = IntersectionPoint.Y; + break; + } + } + } + + for (int i = 0; i < lineList.Count; i++) + { + if (lineList.Count > 1000) + { + throw new Exception("Problems in ElementMapper, line has been cuttes in more than 100 pieces !!!"); + } + for (int j = 0; j < polygon.Points.Count; j++) + { + if (IsPointInLineInterior( polygon.GetLine(j).P1, ((XYLine) lineList[i]))) + { + lineList.Add(new XYLine(polygon.GetLine(j).P1, ((XYLine) lineList[i]).P2)); + ((XYLine) lineList[i]).P2.X = polygon.GetLine(j).P1.X; + ((XYLine) lineList[i]).P2.Y = polygon.GetLine(j).P1.Y; + } + } + } + + double lengthInside = 0; + for (int i = 0; i < lineList.Count; i++) + { + double sharedLength = 0; + for (int j = 0; j < polygon.Points.Count; j++) + { + sharedLength += CalculateSharedLength(((XYLine) lineList[i]), polygon.GetLine(j)); + } + if (sharedLength > EPSILON) + { + lengthInside += sharedLength/2; + } + else if (IsPointInPolygon(((XYLine) lineList[i]).GetMidpoint(), polygon)) + { + lengthInside += ((XYLine) lineList[i]).GetLength(); + } + } + return lengthInside; + } + + /// + /// The method calculates the intersection area of triangle a and b both + /// of type XYPolygon. + /// + /// Triangle of type XYPolygon + /// Triangle of type XYPolygon + /// + /// Intersection area between the triangles triangleA and triAngleB. + /// + protected static double TriangleIntersectionArea(XYPolygon triangleA, XYPolygon triangleB) + { + try + { + if (triangleA.Points.Count != 3 || triangleB.Points.Count != 3) + { + throw new System.Exception("Argument must be a polygon with 3 points"); + } + int i = 1; // Index for "next" node in polygon a. + int j = -1; // Index for "next" node in polygon b. + // -1 indicates that the first has not yet been found. + double area = 0; // Intersection area. Returned. + XYPolygon intersectionPolygon = new XYPolygon(); // Intersection polygon. + XYPoint pFirst = new XYPoint(); // First intersection point between triangles + XYPoint p = new XYPoint(); // Latest intersection node found + + p.X = ((XYPoint) triangleA.Points[0]).X; + p.Y = ((XYPoint) triangleA.Points[0]).Y; + Intersect(triangleA, triangleB, ref p, ref i, ref j, ref intersectionPolygon); + pFirst = p; + + if (j != -1) + { + int jStop = Increase(j, 2); + bool complete = false; + int count = 0; + while (!complete) + { + // coordinates for vectors pointing to next triangleA and triangleB point respectively + double vax= ((XYPoint) triangleA.Points[i]).X - p.X; + double vay= ((XYPoint) triangleA.Points[i]).Y - p.Y; + double vbx= ((XYPoint) triangleB.Points[j]).X - p.X; + double vby= ((XYPoint) triangleB.Points[j]).Y - p.Y; + + if(IsPointInPolygonOrOnEdge(p.X + EPSILON*vax, p.Y + EPSILON*vay, triangleB)) + { + Intersect(triangleA, triangleB, ref p, ref i, ref j, ref intersectionPolygon); + } + else if(IsPointInPolygonOrOnEdge(p.X + EPSILON*vbx, p.Y + EPSILON*vby, triangleA)) + { + Intersect(triangleB, triangleA, ref p, ref j, ref i, ref intersectionPolygon); + } + else // triangleA and triangleB only touches one another but do not intersect + { + area = 0; + return area; + } + if (intersectionPolygon.Points.Count > 1) + { + complete = (CalculatePointToPointDistance(p, pFirst) < EPSILON); + } + count++; + if ( count > 20 ) + { + throw new System.Exception("Failed to find intersection polygon"); + } + } + area = intersectionPolygon.GetArea(); + } + else + { + XYPoint pa = new XYPoint(); // internal point in triangle a + XYPoint pb = new XYPoint(); // internal point in triangle b + + pa.X = (triangleA.GetX(0)+triangleA.GetX(1)+triangleA.GetX(2))/3; + pa.Y = (triangleA.GetY(0)+triangleA.GetY(1)+triangleA.GetY(2))/3; + pb.X = (triangleB.GetX(0)+triangleB.GetX(1)+triangleB.GetX(2))/3; + pb.Y = (triangleB.GetY(0)+triangleB.GetY(1)+triangleB.GetY(2))/3; + + if (IsPointInPolygon(pa,triangleB) || IsPointInPolygon(pb,triangleA)) // triangleA is completely inside triangleB + { + area = Math.Min(triangleA.GetArea(),triangleB.GetArea()); + } + else // triangleA and triangleB do dot intersect + { + area = 0; + } + } + return area; + } + catch (System.Exception e) + { + throw new System.Exception("TriangleIntersectionArea failed",e); + } + } + + /// + /// The method calculates the intersection points of triangle a and b both + /// of type XYPolygon. + /// + /// triangle. The search is started along triangleA. + /// triangle. Intersection with this triangle are sought. + /// Starting point for the search. p must be part of triangleA. + /// on input: End index for the first line segment of triangleA in the search. + /// on output: End index for the last intersected line segment in triangleA. + /// on input: -1 if vertices before intersection is not to be added to list. + /// on output: End index for last intersected line segment of triangleB. + /// polygon eventuallu describing the + /// intersection area between triangleA and triangleB + /// + /// The p, i, j and intersectionPolygon are called by reference and modified in the method. + /// + private static void Intersect (XYPolygon triangleA, XYPolygon triangleB, + ref XYPoint p, ref int i, ref int j, + ref XYPolygon intersectionPolygon) + { + XYLine lineA; + XYLine lineB; + int im1 = Decrease(i, 2); // "i-1" + int count1 = 0; + bool found = false; + + while ((count1 < 3) && (!found)) + { + lineA = triangleA.GetLine(im1); + if (count1 == 0) + { + lineA.P1.X = p.X; + lineA.P1.Y = p.Y; + } + double MinDist = -1; // Distance used when a line is crossed more than once + int jm1 = 0; // "j-1" + int jm1Store = -1; + while (jm1 < 3) + { + lineB = triangleB.GetLine(jm1); + found = IntersectionPoint(lineA, lineB, ref p); + double Dist = CalculatePointToPointDistance(lineA.P1,p); + if (Dist < EPSILON) + { + found = false; + } + if (found) + { + if ((MinDist < 0) || (Dist < MinDist)) + { + MinDist = Dist; + jm1Store = jm1; + } + } + jm1++; + } + if ( jm1Store > -1 ) + { + lineB = triangleB.GetLine(jm1Store); + found = IntersectionPoint(lineA, lineB, ref p); + XYPoint HelpCoordinate = new XYPoint(p.X, p.Y); + XYPoint HelpNode = new XYPoint(HelpCoordinate); + + intersectionPolygon.Points.Add(HelpNode); + + j = Increase(jm1Store,2); + } + if (!found) + { + count1++; + im1 = Increase(im1,2); + i = Increase(i,2); + if (j!=-1) + { + XYPoint HelpCoordinate = new XYPoint(lineA.P2.X, lineA.P2.Y); + XYPoint HelpNode = new XYPoint(HelpCoordinate); + intersectionPolygon.Points.Add(HelpNode); + } + } + } + lineA = triangleA.GetLine(Decrease(i, 2)); + if ( CalculatePointToPointDistance(p, lineA.P2) + /// The method steps to the next index in a circular list 0, 1 ..., n. + /// + /// Index to increase. + /// Largest index + /// + ///

    The increased index.

    + ///
    + private static int Increase(int i, int n) + { + i++; + if (i>n) + { + i = 0; + } + return i; + } + + /// + /// The method steps to the previous index in a circular list 0, 1 ..., n. + /// + /// Index to decrease. + /// Largest index + /// + ///

    The decreased index.

    + ///
    + private static int Decrease(int i, int n) + { + i--; + if (i < 0) + { + i = n; + } + return i; + } + + /// + /// Checks if the lines lineA and lineB shares a point either as a real + /// crossing point or as a shared end point or a end point of the one + /// line being in the other line. + /// + /// Line. + /// Line. + /// Point. + /// + ///

    True if lineA and lineB has shared point. False otherwise

    + ///

    The shared point if any is returned in the intersectionPoint + /// parameter that is called by reference

    + ///
    + protected static bool IntersectionPoint(XYLine Linea, XYLine Lineb, ref XYPoint intersectionPoint) + { + if( DoLineSegmentsIntersect(Linea, Lineb)) + { + intersectionPoint = CalculateIntersectionPoint(Linea, Lineb); + return true; + } + if( IsPointInLine(Linea.P2, Lineb)) + { + intersectionPoint = Linea.P2; + return true; + } + if( IsPointInLine(Lineb.P2, Linea)) + { + intersectionPoint = Lineb.P2; + return true; + } + if( IsPointInLine(Lineb.P1, Linea)) + { + intersectionPoint = Lineb.P1; + return true; + } + if( IsPointInLine(Linea.P1, Lineb)) + { + intersectionPoint = Linea.P1; + return true; + } + return false; + } + + /// + /// Determines if a point is included in a line either in the interior + /// or as one of the end points. + /// + /// x-coordinate + /// y-coordinate + /// Line. + /// + ///

    Determines if a point is included in a line.

    + ///
    + protected static bool IsPointInLine(double x, double y, XYLine line) + { + bool result = false; + if( line.P1.X-line.P2.X != 0 ) + { + if ((x >= Math.Min(line.P1.X, line.P2.X)) && (x <= Math.Max(line.P1.X, line.P2.X))) + { + if( Math.Abs(y-line.P1.Y-(line.P2.Y-line.P1.Y)/(line.P1.X-line.P2.X)*(line.P1.X-x)) < EPSILON*EPSILON) + { + result = true; + } + } + } + else + { + if (line.P1.X == x) + { + if ( (y >= Math.Min(line.P1.Y, line.P2.Y)) && (y <= Math.Max(line.P1.Y, line.P2.Y)) ) + { + result = true; + } + } + } + return result; + } + + /// + /// Determines if a point is included in a line either in the interior + /// or as one of the end points. + ///

    Overload to: IsPointInLine(double x, double y, XYLine line)

    + ///
    + /// + /// Point + /// Line. + /// + /// + ///

    Determines if a point is included in a line.

    + ///
    + protected static bool IsPointInLine(XYPoint point, XYLine line) + { + return IsPointInLine( point.X, point.Y, line); + } + + /// + /// Determines if a point is included in a lines interior. I.e. included + /// in the line and not an endpoint. + /// + /// x-coordinate + /// y-coordinate + /// Line. + /// + ///

    Determines if a point is included in a line.

    + ///
    + protected static bool IsPointInLineInterior(double x, double y, XYLine line) + { + bool result = false; + if( line.P1.X-line.P2.X != 0 ) //line is not vertical + { + if ((x > Math.Min(line.P1.X, line.P2.X)) && (x < Math.Max(line.P1.X, line.P2.X))) + { + if( Math.Abs(y-line.P1.Y-(line.P2.Y-line.P1.Y)/(line.P1.X-line.P2.X)*(line.P1.X-x)) < EPSILON*EPSILON) + { + result = true; + } + } + } + else //line is vertical + { + if (line.P1.X == x) + { + if ( (y > Math.Min(line.P1.Y, line.P2.Y)) && (y < Math.Max(line.P1.Y, line.P2.Y)) ) + { + result = true; + } + } + } + return result; + } + + /// + /// Determines if a point is included in a lines interior. I.e. included + /// in the line and not an endpoint. + ///

    Overload to:IsPointInLineInterior(double x, double y, XYLine line)

    + ///
    + /// Point. + /// Line. + /// + ///

    Determines if a point is included in a line.

    + ///
    + protected static bool IsPointInLineInterior(XYPoint point, XYLine line) + { + return IsPointInLineInterior( point.X, point.Y, line); + } + + /// + /// Calculates the distance from a polyline to a point in the plane. + /// The algorithm decides weather the point lies besides the line + /// segment in which case the distance is the length along a line + /// perpendicular to the line. Alternatively the distance is the + /// smallest of the distances to either endpoint. + /// + /// Line + /// Point + /// + ///

    Length of the shortest path between the line and the point.

    + ///
    + protected static double CalculateLineToPointDistance (XYLine line, XYPoint point) + { + double dist = 0; + double a = Math.Sqrt((line.P2.X-point.X)*(line.P2.X-point.X) + (line.P2.Y-point.Y)*(line.P2.Y-point.Y)); + double b = Math.Sqrt((line.P2.X-line.P1.X)*(line.P2.X-line.P1.X)+(line.P2.Y-line.P1.Y)*(line.P2.Y-line.P1.Y)); + double c = Math.Sqrt((line.P1.X-point.X)*(line.P1.X-point.X)+(line.P1.Y-point.Y)*(line.P1.Y-point.Y)); + if ((a == 0) || (c == 0)) + { + dist = 0; + } + else if (b == 0) + { + dist = a; + } + else + { + double alpha = Math.Acos((b*b+c*c-a*a)/(2*b*c)); + double beta = Math.Acos((a*a+b*b-c*c)/(2*a*b)); + if (Math.Max(alpha,beta) + /// Finds the shortest distance between any line segment of the polyline + /// and the point. + /// + /// PolyLine. + /// Point + /// + ///

    Length of the shortest path between the polyline and the point.

    + ///
    + public static double CalculatePolylineToPointDistance (XYPolyline polyLine, XYPoint point) + { + double dist = 0; + int i = 0; + while (i < polyLine.Points.Count - 1) + { + if (i == 0) + { + dist = CalculateLineToPointDistance (polyLine.GetLine(0), point); + } + else + { + dist = Math.Min(dist, CalculateLineToPointDistance (polyLine.GetLine(i), point)); + } + i++; + } + return dist; + } + + /// + /// Determines if a point in inside or outside a polygon. + /// Works for both convex and concave polygons (Winding number test) + /// + /// Point + /// Polygon + /// + ///

    true: If the point is inside the polygon

    + ///

    false: Otherwise.

    + ///
    + public static bool IsPointInPolygon(XYPoint point, XYPolygon polygon) + { + return IsPointInPolygon(point.X, point.Y, polygon); + } + + /// + /// Determines if a point in inside or outside a polygon. + /// Works for both convex and concave polygons (Winding number test) + /// + /// x-coordinate for the point + /// y-coordiante for the point + /// Polygon + /// + ///

    true: If the point is inside the polygon

    + ///

    false: If the point is outside the polygon.

    + ///
    + public static bool IsPointInPolygon(double x, double y, XYPolygon polygon) + { + double x1,x2,y1,y2; + double xinters; + bool isInside = false; + int n = polygon.Points.Count; + + for (int i = 0; i < n; i++) + { + if (i < n - 1) + { + x1 = ((XYPoint)polygon.Points[i]).X; + x2 = ((XYPoint)polygon.Points[i+1]).X; + y1 = ((XYPoint)polygon.Points[i]).Y; + y2 = ((XYPoint)polygon.Points[i+1]).Y; + } + else + { + x1 = ((XYPoint)polygon.Points[n-1]).X; + x2 = ((XYPoint)polygon.Points[0]).X; + y1 = ((XYPoint)polygon.Points[n-1]).Y; + y2 = ((XYPoint)polygon.Points[0]).Y; + } + + if (y > Math.Min(y1,y2)) + { + if (y <= Math.Max(y1,y2)) + { + if ( x <= Math.Max(x1,x2)) + { + if (y1 != y2) + { + xinters = (y - y1)*(x2 - x1)/(y2 - y1) + x1; + + if (x1 == x2 || x <= xinters) + { + isInside = !isInside; + } + } + } + } + } + } + return isInside; + } + + /// + /// Determines if a point in inside or outside a polygon. Inside + /// includes on the edge for this method. + /// Works for both convex and concave polygons (Winding number test) + /// + /// x-coordinate for the point + /// y-coordiante for the point + /// Polygon + /// + ///

    true: If the point is inside the polygon

    + ///

    false: If the point is outside the polygon.

    + ///
    + protected static bool IsPointInPolygonOrOnEdge(double x, double y, XYPolygon polygon) + { + bool result = IsPointInPolygon(x, y, polygon); + if( result ) + { + return result; + } + else + { + int iLine = 0; + while( (!result) && (iLine < polygon.Points.Count) ) + { + XYLine line = new XYLine(); + line = polygon.GetLine(iLine); + result = IsPointInLine(x, y, line); + iLine++; + } + } + return result; + } + + /// + /// The methods calculates the shared area of two arbitrarily shaped + /// polygons. + /// + /// Polygon + /// Polygon + /// + ///

    The shared area.

    + ///
    + public static double CalculateSharedArea (XYPolygon polygonA, XYPolygon polygonB) + { + ArrayList triangleListA = polygonA.GetTriangulation(); + ArrayList triangleListB = polygonB.GetTriangulation(); + + double area = 0; + for (int ia = 0; ia < triangleListA.Count; ia++) + { + XYPolygon triangleA = new XYPolygon((XYPolygon)triangleListA[ia]); + for (int ib = 0; ib < triangleListB.Count; ib++) + { + XYPolygon triangleB = new XYPolygon((XYPolygon)triangleListB[ib]); + area = area + TriangleIntersectionArea(triangleA, triangleB); + } + } + return area; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/XYLine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/XYLine.cs new file mode 100644 index 00000000..94baf890 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/XYLine.cs @@ -0,0 +1,167 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// The XYline class is used for representing line segments. XYPolylines + /// and XYPolygons are composed of XYLines. + /// + public class XYLine + { + private XYPoint _p1; + private XYPoint _p2; + + /// + /// Constructor. + /// + /// None + public XYLine() + { + _p1 = new XYPoint(); + _p2 = new XYPoint(); + } + + /// + /// Constructor. + /// + /// x-coordinate for line start point + /// y-coordinate for line start point + /// x-coordinate for line end point + /// y-coordinate for line end point + /// None + public XYLine(double x1, double y1, double x2, double y2) + { + _p1 = new XYPoint(); + _p2 = new XYPoint(); + _p1.X = x1; + _p1.Y = y1; + _p2.X = x2; + _p2.Y = y2; + } + + /// + /// Constructor. + /// + /// Line start point + /// Line end point + /// None + public XYLine(XYPoint point1, XYPoint point2) + { + _p1 = new XYPoint(); + _p2 = new XYPoint(); + + _p1.X = point1.X; + _p1.Y = point1.Y;; + _p2.X = point2.X; + _p2.Y = point2.Y; + } + + /// + /// Constructor. Copies input line. + /// + /// Line to copy + public XYLine(XYLine line) + { + _p1 = new XYPoint(); + _p2 = new XYPoint(); + + _p1.X = line.P1.X; + _p1.Y = line.P1.Y; + _p2.X = line.P2.X; + _p2.Y = line.P2.Y; + } + + /// + /// Read only property describing the one end-point. + /// + public XYPoint P1 + { + get + { + return _p1; + } + } + + /// + /// Read only property describing the one end-point. + /// + public XYPoint P2 + { + get + { + return _p2; + } + } + + /// + /// Calculates the length of line. + /// + /// Line length + public double GetLength() + { + return Math.Sqrt((_p1.X-_p2.X)*(_p1.X-_p2.X)+ (_p1.Y-_p2.Y)*(_p1.Y-_p2.Y)); + } + + /// + /// Calculates the mid point of the line. + /// + /// Returns the line mid point as a XYPoint + public XYPoint GetMidpoint() + { + return new XYPoint(( _p1.X + _p2.X ) / 2, ( _p1.Y + _p2.Y ) / 2); + } + + /// + /// Compares the object type and the coordinates of the object and the + /// object passed as parameter. + /// + /// True if object type is XYLine and the coordinates are + /// equal to to the coordinates of the current object. False otherwise. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + { + return false; + } + return P1.Equals(((XYLine) obj).P1) && this.P2.Equals(((XYLine) obj).P2); + } + + /// + /// Get Hash Code. + /// + /// Hash Code for the current instance. + public override int GetHashCode() + { + return base.GetHashCode(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/XYPoint.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/XYPoint.cs new file mode 100644 index 00000000..ad8a52db --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/XYPoint.cs @@ -0,0 +1,124 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// XYPoint is simply a x and a y coordinate. + /// + public class XYPoint + { + private double _x; + private double _y; + + /// + /// Constructor. + /// + /// None + public XYPoint() + { + _x = -9999; + _y = -9999; + } + + /// + /// Constructor. + /// + /// None + public XYPoint(double x, double y) + { + _x = x; + _y = y; + } + + /// + /// Constructor. + /// + /// None + public XYPoint(XYPoint xypoint) + { + _x = xypoint.X; + _y = xypoint.Y; + } + + /// + /// Read/Write property describing the x-coordinate of the point. + /// + public double X + { + get + { + return _x; + } + set + { + _x = value; + } + } + + /// + /// Read/Write property describing the y-coordinate of the point. + /// + public double Y + { + get + { + return _y; + } + set + { + _y = value; + } + } + + /// + /// Compares the object type and the coordinates of the object and the + /// object passed as parameter. + /// + /// True if object type is XYPolyline and the coordinates are + /// equal to to the coordinates of the current object. False otherwise. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + else + return ((XYPoint) obj).X == this.X && ((XYPoint) obj).Y == this.Y; + } + + /// + /// Get Hash Code. + /// + /// Hash Code for the current instance. + public override int GetHashCode() + { + return base.GetHashCode(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/XYPolygon.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/XYPolygon.cs new file mode 100644 index 00000000..b9497bdb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/XYPolygon.cs @@ -0,0 +1,359 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + ///

    The XYPolygon class defines a polygon in the XY plane (no z coordinate)

    + ///

    + ///

    The XYPolygon class has a number of usefull methods and XYPolygon objects + /// are used as argument in a number of the methods in the Oatc.OpenMI.Sdk.Spatial + /// namespace.

    + ///

    + ///

    The XYPolygon class is inhereted from the org.OpenMI.Utilities.BackBone.Element class.

    + ///

    + ///

    It is possible to upcaste the XYPoint objects to Element objects.

    + ///

    + ///

    If you already have a Element object that defines a polygon you can construct + /// a new XYPoint using the Element objects as argument in the constructor.

    + /// + ///
    + public class XYPolygon : XYPolyline + { + /// + /// Constructor. + /// + public XYPolygon() + { + } + + /// + /// Constructor. Copies the contents of the xyPolygon parameter. + /// + /// Polygon to copy. + /// None + public XYPolygon(XYPolygon xyPolygon) + { + // Points = new ArrayList(); + foreach (XYPoint xypoint in xyPolygon.Points) + { + Points.Add(new XYPoint(xypoint.X, xypoint.Y)); + } + } + + /// + /// Calcualtes area of polygon. + /// + /// Polygon area. + public double GetArea() + { + double x1, x2, y1, y2, xN, x0, yN, y0, area; + area = 0; + for (int i = 0; i < Points.Count - 1; i++) + { + x1 = ((XYPoint) Points[i]).X; + x2 = ((XYPoint) Points[i+1]).X; + y1 = ((XYPoint) Points[i]).Y; + y2 = ((XYPoint) Points[i+1]).Y; + area += x1*y2 - x2*y1; + } + xN = ((XYPoint) Points[Points.Count - 1]).X; + x0 = ((XYPoint) Points[0]).X; + yN = ((XYPoint) Points[Points.Count - 1]).Y; + y0 = ((XYPoint) Points[0]).Y; + + area += xN * y0 - x0 * yN; + area = 0.5 * area; + + return area; + } + + /// + /// Returns the XYline that connects XYPoint LineNumber and the next + /// number (i.e. LineNumber+1 or 0). + /// 0-based line number. + /// + /// The XYLine starting at node lineNumber. + /// + public new XYLine GetLine(int lineNumber) + { + int index2; + + if (lineNumber == Points.Count - 1) + { + index2 = 0; + } + else + { + index2 = lineNumber + 1; + } + return new XYLine(((XYPoint) Points[lineNumber]).X, ((XYPoint) Points[lineNumber]).Y, ((XYPoint) Points[index2]).X, ((XYPoint) Points[index2]).Y); + } + + /// + /// Finds a set of three concecutive points that form a triangle, that + /// is not intersected by other parts of the polygon. + /// + /// + /// + ///

    i: Index for the "midlle" point of triangle that forms an ear. + /// The ear is formed by P(i-1), P(i) and P(i+1), where P are points + /// included in the polygon.

    + ///
    + protected int FindEar() + { + int i = 0; + int n = Points.Count - 1; + bool found = false; + while ((i < n-1) && (!found)) + { + if ((IsConvex(i) == true) && (IsIntersected(i) == false)) + { + found = true; + } + else + { + i++; + } + } + return i; + } + + /// + /// The method decides if the triangle formed by P(i-1), P(i) and + /// P(i+1) from Polygon are intersected by any of the other points + /// of the polygon. + /// + /// Middle index for the three points that forms the triangle + /// + ///

    true: If the triangle P(i-1), P(i), P(i+1) is intersected by other parts of Polygon

    + ///

    false: otherwise

    + ///
    + protected bool IsIntersected(int i) + { + double x = 0; + double y = 0; + int n = Points.Count; + + int im1 = i-1; + int ip1 = i+1; + if (i == 0) + { + im1 = n-1; + } + else if (i == n-1) + { + ip1 = 0; + } + + XYPoint nodeim1 = new XYPoint((XYPoint) Points[im1]); + XYPoint nodei = new XYPoint((XYPoint) Points[i]); + XYPoint nodeip1 = new XYPoint((XYPoint) Points[ip1]); + XYPolygon localPolygon = new XYPolygon(); + localPolygon.Points.Add(nodeim1); + localPolygon.Points.Add(nodei); + localPolygon.Points.Add(nodeip1); + + int j = 0; + bool intersected = false; + while (((j < n-1) && (!intersected))) + { + x = ((XYPoint) Points[j]).X; + y = ((XYPoint) Points[j]).Y; + + if (((((j!=im1) && (j!=i)) && (j!=ip1)) && XYGeometryTools.IsPointInPolygon(x,y,localPolygon))) + { + return true; + } + else + { + j++; + } + } + return false; + } + + /// + /// Returns an ArrayList of triangles of type XYPolygon describing the + /// triangalation of the polygon. + /// + /// + /// + /// A triangulation of the polygon. + /// + public ArrayList GetTriangulation() + { + int i = 0; + int im1 = 0; + int ip1 = 0; + int n = 0; + + XYPolygon LocalPolygon = new XYPolygon(this); + ArrayList TriangleList = new ArrayList(); + while (LocalPolygon.Points.Count > 3) + { + i = LocalPolygon.FindEar(); + n = LocalPolygon.Points.Count; + im1 = i-1; + ip1 = i+1; + if (i == 0) + { + im1 = n-1; + } + else if (i == n-1) + { + ip1 = 0; + } + XYPoint Nodeim1 = new XYPoint((XYPoint)LocalPolygon.Points[im1]); + XYPoint Nodei = new XYPoint((XYPoint)LocalPolygon.Points[i]); + XYPoint Nodeip1 = new XYPoint((XYPoint)LocalPolygon.Points[ip1]); + XYPolygon Triangle = new XYPolygon(); + Triangle.Points.Add(Nodeim1); + Triangle.Points.Add(Nodei); + Triangle.Points.Add(Nodeip1); + TriangleList.Add(Triangle); + LocalPolygon.Points.RemoveAt(i); + } + TriangleList.Add(LocalPolygon); + return TriangleList; + } + + /// + /// Decides if the angle at ith point is convex or concave. + /// + /// Index + /// + ///

    True if angle at the ith point is convex.

    + ///

    False if angle at the ith point is concave.

    + ///
    + protected bool IsConvex(int pointIndex) + { + bool isConvex = true; + int im1 = pointIndex - 1 < 0 ? Points.Count - 1 : pointIndex - 1; //previous point index + int ip1 = pointIndex + 1 > Points.Count - 1 ? 0 : pointIndex + 1; //next point index + + double xim1 = ((XYPoint) Points[im1]).X; + double yim1 = ((XYPoint) Points[im1]).Y; + + double xi = ((XYPoint) Points[pointIndex]).X; + double yi = ((XYPoint) Points[pointIndex]).Y; + + double xip1 = ((XYPoint) Points[ip1]).X; + double yip1 = ((XYPoint) Points[ip1]).Y; + + if ((xip1-xim1)*(yi-yim1)-(xi-xim1)*(yip1-yim1)>0) + { + isConvex = false; + } + else + { + isConvex = true; + } + return isConvex; + } + + /// + /// Compares the object type and the coordinates of the object and the + /// object passed as parameter. + /// + /// True if object type is XYPolygon and the coordinates are + /// equal to to the coordinates of the current object. False otherwise. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + { + return false; + } + XYPolyline e = (XYPolygon) obj; + if (Points.Count!=e.Points.Count) + { + return false; + } + for (int i=0;i + /// Get hash code. + /// + /// Hash Code for the current instance. + public override int GetHashCode() + { + return base.GetHashCode(); + } + + /// + /// The validate method check if the XYPolyline is valid. The checks + /// made are: + /// - is number of points >= 3 + /// - is the length of all line segments positiv + /// - do any lines cross + /// - is the area positiv + /// Exception is raised if the constraints are not met. + /// + public new void Validate() + { + if(Points.Count < 3) + { + throw new System.Exception("Number of vertices in polygon element is less than 3."); + } + if (GetArea() <= 0) + { + throw new System.Exception("Area of polygon is negative or zero. XYPolygons must be ordered counter clockwise."); + } + for (int j = 0; j < Points.Count; j++) + { + if (GetLine(j).GetLength() == 0) + { + throw new System.Exception("Length of line segment no: "+ + j.ToString()+" (0-based) of XYPolygon is zero."); + } + } + for (int j = 0; j < Points.Count; j++) + { + for (int m = 0; m < j; m++) + { + if (XYGeometryTools.DoLineSegmentsIntersect(GetLine(j),GetLine(m))) + { + throw new System.Exception("Line no: "+j.ToString()+" and line no: "+ + m.ToString()+" of XYPolygon crosses."); + } + } + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/XYPolyline.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/XYPolyline.cs new file mode 100644 index 00000000..c058b0b1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Spatial/XYPolyline.cs @@ -0,0 +1,183 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// XYPolyline is a collection of points (at least 2) connected with straigth lines. + /// Polylines are typically used for presentation of 1D data, river networks e.t.c. + /// + public class XYPolyline + { + private ArrayList _points; + + + /// + /// Constructor. + /// + public XYPolyline() + { + _points = new ArrayList(); + } + + /// + /// Constructor. Copies the contents of the xyPolyline parameter. + /// + /// Polyline to copy. + /// None + public XYPolyline(XYPolyline xyPolyline) + { + _points = new ArrayList(); + + foreach (XYPoint xypoint in xyPolyline.Points) + { + _points.Add(new XYPoint(xypoint.X, xypoint.Y)); + } + + } + + /// + /// Read only property holding the list of points. + /// + public ArrayList Points + { + get + { + return _points; + } + } + + /// + /// Retrieves the x-coordinate of the indexth line point. + /// + /// Index number of the point. + /// X-coordinate of the indexth point in the polyline. + public double GetX(int index) + { + return ((XYPoint) _points[index]).X; + } + + /// + /// Retrieves the y-coordinate of the indexth line point. + /// + /// Index number of the point. + /// Y-coordinate of the indexth point in the polyline. + public double GetY(int index) + { + return ((XYPoint) _points[index]).Y; + } + + /// + /// Retrieves the lineNumberth line segment of the polyline. The index + /// list is zero based. + /// + /// Index number of the line to retrieve. + /// The lineNumberth line segment of the polyline. + public XYLine GetLine(int lineNumber) + { + return new XYLine((XYPoint)_points[lineNumber], (XYPoint)_points[lineNumber+1]); + } + + /// + /// Calculates the length of the polyline. + /// + /// Length of the polyline. + public double GetLength() + { + double length = 0; + for (int i = 0; i < _points.Count - 1; i++) + { + length += GetLine(i).GetLength(); + } + return length; + } + + /// + /// Compares the object type and the coordinates of the object and the + /// object passed as parameter. + /// + /// True if object type is XYPolyline and the coordinates are + /// equal to to the coordinates of the current object. False otherwise. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + { + return false; + } + XYPolyline e = (XYPolyline) obj; + if (_points.Count!=e.Points.Count) + { + return false; + } + for (int i=0;i<_points.Count;i++) + { + if (!((XYPoint) _points[i]).Equals(e.Points[i])) + { + return false; + } + } + return true; + } + + /// + /// Get hash code. + /// + /// Hash Code for the current instance. + public override int GetHashCode() + { + return base.GetHashCode(); + } + + /// + /// The validate method check if the XYPolyline is valid. The checks + /// made are: + /// - is number of points >= 2 + /// - is the length of all line segments positiv + /// Exception is raised if the constraints are not met. + /// + public void Validate() + { + if(_points.Count < 2) + { + throw new System.Exception("Number of vertices in polyline element is less than 2."); + } + for (int j = 0; j < _points.Count-1; j++) + { + if (GetLine(j).GetLength() == 0) + { + throw new System.Exception("Length of line segment no: "+ + j.ToString()+" (0-based) of XYPolyline is zero."); + } + } + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/AssemblyInfo.cs new file mode 100644 index 00000000..9ff13181 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Utilities Wrapper Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4")] +[assembly: AssemblyCopyright("BSD License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/IAdvancedEngine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/IAdvancedEngine.cs new file mode 100644 index 00000000..e42faa26 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/IAdvancedEngine.cs @@ -0,0 +1,62 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The IAdvancedEngine interface is introduced in order to facilitate models + /// where different quantities are calculated base on different time step lengths. + /// One example of such model could be a multi-domain model such a models for combined + /// ground water and surface water. Typically the time step length for the ground + /// water calculations will be much longer that the time step length for the surface + /// water calculations. In the IEngine interface values are pulled from the engine + /// through the GetValues method, which returns a IValueSet. In this cases it will + /// be assumed that the accociated time is the current time which is obtained through + /// the IEngine interface through the GetCurrentTime. By use of the IAdvanceEngine + /// interface accociated values can be pulled from the engine through the + /// GetValues method that will return an instance of the TimeValues class, + /// which contains a IValueSet and the associated ITime. The IAdvanced i + /// nterface is implemented as a separate interface in order to facilitate + /// backward compatibility. + /// Summary description for IAdvancedEngine. + /// + public interface IAdvancedEngine : IEngine + { + /// + /// The GetValues method will return an instance of the TimeValues class, + /// which is the currently calculated values as IValueSet and the associated time as ITime. + /// + /// The Quantity ID for the requested values + /// The ElementSet ID for the requested values + /// TimeValueSet which is the calculated values and the associated time + new TimeValueSet GetValues(string quantityID, string ElementSetID); + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/IEngine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/IEngine.cs new file mode 100644 index 00000000..bc480d45 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/IEngine.cs @@ -0,0 +1,91 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The class Oatc.OpenMI.Sdk.Wrapper.LinkableEngine will access the model engine through + /// this interface. + /// + public interface IEngine : IRunEngine + { + + /// + /// Returns the ModelID. The ModelID identifies the populated model component. + /// Example: "River Rhine" + /// + /// ModelID + string GetModelID(); + + /// + /// Return the Model Description. The Model Description is a description of the populated + /// model component. + /// + /// Model description + string GetModelDescription(); + + /// + /// Return the time horison for the populated model compoent. The Time Horizon for a model i typically + /// the same as the simulation period, which normally depend on de available input data. When you model + /// is running in the OpenMI environment, the model component must be able to return values within the + /// TimeHorizon + /// + /// TimeHorizon + ITimeSpan GetTimeHorizon(); + + /// + /// Returns the number of input exchange items for the populated model component. + /// + /// InputExchangeItemCount + int GetInputExchangeItemCount(); + + /// + /// Returns the number of output exchange items for the populated model component. + /// + /// OutputExchangeItemCount + int GetOutputExchangeItemCount(); + + /// + /// Returns a specific output exchange item from the populated model component. + /// + /// index number + /// OutputExchangeItem according the the index number + OutputExchangeItem GetOutputExchangeItem(int exchangeItemIndex); + + /// + /// Returns a specific input exchange item from the populated model component. + /// + /// index number + /// InputExchangeItem according the the index number + InputExchangeItem GetInputExchangeItem(int exchangeItemIndex); + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/IRunEngine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/IRunEngine.cs new file mode 100644 index 00000000..90fb1d09 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/IRunEngine.cs @@ -0,0 +1,142 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; +using System.Runtime.Remoting; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The IRunEngine is the interface the ModelEngine component + /// The Class Oatc.OpenMI.Sdk.Wrapper.LinkableRunEngine will access the + /// model engine component through this interface. + /// + /// + /// None + /// + public interface IRunEngine + { + /// + /// Initialize will typically be invoked just after creation of the object + /// that implements the IRunEngine interface. + /// + /// + /// Hashtable with the same contents as the Component arguments + /// in the ILinkableComponent interface. Typically any information + /// needed for initialization of the model will be included in this table. + /// This could be path and file names for input files. + /// + void Initialize(Hashtable properties); + + /// + /// This method will be invoked after all computations are completed. Deallocation of memory + /// and closing files could be implemented in this method + /// + void Finish(); + + /// + /// This method will be invoked after all computations are completed + /// and after the Finish method has been invoked + /// + void Dispose(); + + /// + /// This method will make the model engine perform one time step. + /// + /// Returns true if the time step was completed, + /// otherwise it will return false + /// + bool PerformTimeStep(); + + /// + /// Get the current time of the model engine + /// + /// The current time for the model engine + ITime GetCurrentTime(); + + /// + /// Get the time for which the next input is needed for + /// a specific Quantity and ElementSet combination + /// + /// ID for the quantity + /// ID for the ElementSet + /// ITimeSpan or ITimeStamp + ITime GetInputTime(string QuantityID, string ElementSetID); + + /// + /// Get earlist needed time, which can be used + /// to clear the buffer. For most time stepping model engines this + /// time will be the time for the previous time step. + /// + /// TimeStamp + ITimeStamp GetEarliestNeededTime(); + + /// + /// Sets values in the model engine + /// + /// quantityID associated to the values + /// elementSetID associated to the values + /// The values + void SetValues(string QuantityID, string ElementSetID, IValueSet values); + + /// + /// Gets values from the model engine + /// + /// quantityID associated to the requested values + /// elementSetID associated to the requested values + /// The requested values + IValueSet GetValues(string QuantityID, string ElementSetID); + + /// + /// In some situations a valied values cannot be return when the + /// Oatc.OpenMI.Sdk.Wrapper.IRunEngine.GetValues is invoked. In such case a missing values + /// can be returned. The GetMissingValeusDefinition method can be used to query which definition + /// of a missing value that applies to this particular model component. Example of missing value + /// definition could be: -999.99 + /// + /// Missing value definition + double GetMissingValueDefinition(); + + /// + /// Get the ComponentID. The component ID is the name of the non-populated component. This is typically + /// the product name of your model engine. + /// + /// Component ID + string GetComponentID(); + + /// + /// Get a description of your component. This description refers to the non-populated component. This is + /// typically a description of what your component does and which methods that are used. E.g. "Finite element + /// based ground water model". + /// + /// Component description + string GetComponentDescription(); + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/LinearConversionDataOperation.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/LinearConversionDataOperation.cs new file mode 100644 index 00000000..d008533b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/LinearConversionDataOperation.cs @@ -0,0 +1,224 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The LinearDataOperation class is an implementation of the IDataOperation interface. + /// The LinearDataOperation can make linear conversion on ScalarSets. The ax+b type of operations. + /// + public class LinearConversionDataOperation : IDataOperation, ICloneable + { + Oatc.OpenMI.Sdk.Backbone.Argument[] _arguments; + bool _isActivated; + double _a; + double _b; + + /// + /// Constructor + /// + public LinearConversionDataOperation() + { + _arguments = new Oatc.OpenMI.Sdk.Backbone.Argument[3]; + + _arguments[0] = new Oatc.OpenMI.Sdk.Backbone.Argument(); + _arguments[0].Description = "Parameter A. Used in conversion: A*x + B"; + _arguments[0].Key = "Type"; + _arguments[0].Value = "Linear Conversion"; + _arguments[0].ReadOnly = true; + + _arguments[1] = new Oatc.OpenMI.Sdk.Backbone.Argument(); + _arguments[1].Description = "Parameter A. Used in conversion: A*x + B"; + _arguments[1].Key = "A"; + _arguments[1].Value = "1.0"; + _arguments[1].ReadOnly = false; + + _arguments[2] = new Oatc.OpenMI.Sdk.Backbone.Argument(); + _arguments[2].Description = "Parameter B. Used in conversion: A*x + B"; + _arguments[2].Key = "B"; + _arguments[2].Value = "0.0"; + _arguments[2].ReadOnly = false; + + _isActivated = false; + } + + #region IDataOperation Members + + /// + /// DataOperation ID. In this class always "Linear Conversions" (is hardcoded) + /// + public string ID + { + get + { + return "Linear Conversion"; + } + } + + /// + /// The linear dataoperation is valid for any input and output exchange items and can be combined with any other + /// dataopertion, consequently this method always return true. + /// See also documentation for : OpenMI.Standard.IDataOperation for details + /// + /// inputExchangeItem + /// outputExchangeItem + /// SelectedDataOperations + /// + public bool IsValid(IInputExchangeItem inputExchangeItem, IOutputExchangeItem outputExchangeItem, IDataOperation[] SelectedDataOperations) + { + return true; + } + + /// + /// Number of dataoperation arguments. For the Linear dataoperation this number is always 3 (coefficient a, offset b and description text) + /// + public int ArgumentCount + { + get + { + return _arguments.Length; + } + } + + /// + /// Initialises the data operation. Nothing is done for the Linear dataoperation + /// + /// arguments + public void Initialize(IArgument[] properties) + { + + } + + /// + /// Returns the arguments for the Linear Dataoperation + /// + /// Argument index + /// + public IArgument GetArgument(int argumentIndex) + { + + return (IArgument) _arguments[argumentIndex]; + } + + #endregion + + /// + /// The prepare method should be called before the PerformDataOperation. This method is + /// not part of the OpenMI.Standard.IDataOperation interface. This method will convert + /// the arguments which originally are defined as strings to doubles and subsequently assign + /// these values to private field variables. The prepare method is introduced for performance + /// reasons. + /// + public void Prepare() + { + + bool argumentAWasFound = false; + bool argumentBWasFound = false; + + _isActivated = true; + + for (int i = 0; i < this._arguments.Length; i++) + { + if (_arguments[i].Key == "A") + { + _a = Convert.ToDouble(_arguments[i].Value); + argumentAWasFound = true; + } + + if (_arguments[i].Key == "B") + { + _b = Convert.ToDouble(_arguments[i].Value); + argumentBWasFound = true; + } + } + if (!argumentAWasFound || !argumentBWasFound) + { + throw new Exception("Missing argument in data operation: \"Linear Conversion\""); + } + } + + /// + /// The ValueSet is converted. This method does not support VectorSet, so if the ValueSet is a Vectorset + /// an exception will be thrown. The parameters passed in this method is not used, since all needed information + /// is already assigned in the Prepare method. + /// + /// argumens but not used in this method + /// The converted ValueSet + public IValueSet PerformDataOperation(IValueSet values) + { + if (_isActivated) + { + if (!(values is IScalarSet)) + { + throw new Exception("The Oatc.OpenMI.Sdk.Wrapper packages only supports ScalarSets (Not VectorSets)"); + } + + double[] x = new double[values.Count]; + + for (int i = 0; i < values.Count; i++) + { + x[i] = ((IScalarSet) values).GetScalar(i) * _a + _b; + } + + return ((IValueSet) new ScalarSet(x)); + } + + return values; // return the values unchanged. + } + + #region ICloneable Members + + /// + /// Creates a copy of the current instance. + /// + /// Copy of the instance + public object Clone() + { + LinearConversionDataOperation clone = new LinearConversionDataOperation(); + clone._a = _a; + clone._b = _b; + clone._isActivated = _isActivated; + clone._arguments = new Argument[ArgumentCount]; + for(int i=0; i + /// The LinkableEngine class inplements the ILinkableComponent interface. + /// In normal usage of the Wrapper package, the person migrating a model will inherit + /// his own class from this class. The LinkableEngine class is an abstract class due to the + /// abstract method SetEngineApiAccess. This method must be overridden in the derived class. + /// + /// Implementation of the ILinkableComponent methods are done partly in this class (LinkebleEngine class) + /// and partly in the parent class LinkableRunEngine class. There are historical reasons for + /// dividing the implementation into two classes, and basically the LinkebleEngine class and the + /// LinkebleRunEngine class could be merged. However, in order to keep the backward compatibility + /// the two classes still exists. + /// + public abstract class LinkableEngine : LinkableRunEngine + { + /// + /// constructor + /// + public LinkableEngine() + { + } + + #region IExchangeModel Members + + /// + /// Number of input exchange items + /// + public override int InputExchangeItemCount + { + get + { + return ((IEngine)_engineApiAccess).GetInputExchangeItemCount(); + } + } + + /// + /// Get an input exchange item + /// + /// index of the requested input exchange item + /// The input exchange item + public override IInputExchangeItem GetInputExchangeItem(int index) + { + return (IInputExchangeItem) ((IEngine)_engineApiAccess).GetInputExchangeItem(index); + } + + /// + /// Number of output exchange items + /// + public override int OutputExchangeItemCount + { + get + { + return ((IEngine)_engineApiAccess).GetOutputExchangeItemCount(); + } + } + + /// + /// get a output exchange item + /// + /// index number of the requested output exchange item + /// The requested exchange item + public override IOutputExchangeItem GetOutputExchangeItem(int index) + { + OutputExchangeItem outputExchangeItem = ((IEngine)_engineApiAccess).GetOutputExchangeItem(index); + + //Add dataoperations to outputExchangeItems + ElementMapper elementMapper = new ElementMapper(); + ArrayList dataOperations = new ArrayList(); + dataOperations = elementMapper.GetAvailableDataOperations(outputExchangeItem.ElementSet.ElementType); + bool spatialDataOperationExists; + bool linearConversionDataOperationExists; + bool smartBufferDataOperationExists; + foreach (IDataOperation dataOperation in dataOperations) + { + spatialDataOperationExists = false; + foreach (IDataOperation existingDataOperation in outputExchangeItem.DataOperations) + { + if (dataOperation.ID == existingDataOperation.ID) + { + spatialDataOperationExists = true; + } + } + + if (!spatialDataOperationExists) + { + outputExchangeItem.AddDataOperation(dataOperation); + } + } + + IDataOperation linearConversionDataOperation = new LinearConversionDataOperation(); + linearConversionDataOperationExists = false; + foreach (IDataOperation existingDataOperation in outputExchangeItem.DataOperations) + { + if (linearConversionDataOperation.ID == existingDataOperation.ID) + { + linearConversionDataOperationExists = true; + } + } + + if (!linearConversionDataOperationExists) + { + outputExchangeItem.AddDataOperation(new LinearConversionDataOperation()); + } + + IDataOperation smartBufferDataOperaion = new SmartBufferDataOperation(); + smartBufferDataOperationExists = false; + foreach (IDataOperation existingDataOperation in outputExchangeItem.DataOperations) + { + if (smartBufferDataOperaion.ID == existingDataOperation.ID) + { + smartBufferDataOperationExists = true; + } + } + + if (!smartBufferDataOperationExists) + { + outputExchangeItem.AddDataOperation(new SmartBufferDataOperation()); + } + + return (IOutputExchangeItem) outputExchangeItem; + } + + + /// + /// Model description + /// + public override string ModelDescription + { + get + { + return ((Oatc.OpenMI.Sdk.Wrapper.IEngine) _engineApiAccess).GetModelDescription(); + } + } + + /// + /// Model ID + /// + public override string ModelID + { + get + { + if (_engineApiAccess != null) + { + return ((Oatc.OpenMI.Sdk.Wrapper.IEngine) _engineApiAccess).GetModelID(); + } + else + { + return null; + } + } + } + + /// + /// Time TimeHorizon for the model, which is the time period in which the model can be requested + /// for values + /// + public override ITimeSpan TimeHorizon + { + get + { + return ((IEngine) _engineApiAccess).GetTimeHorizon(); + } + } + + /// + /// The SetEngineApiAccess() method is abstract and as such should be overridden in the derived class. + /// This method should set the reference to the class that implements the IEngine interface. + /// The property EngineApiAccess, which is implemented in the LinkableRunEngine class is used + /// to assign this reference. + /// + protected override abstract void SetEngineApiAccess(); + + #endregion + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/LinkableRunEngine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/LinkableRunEngine.cs new file mode 100644 index 00000000..82ea2d3a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/LinkableRunEngine.cs @@ -0,0 +1,848 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using System.Runtime.Remoting; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The LinkableRunEngine implements the run time part of the ILinkableComponent interface. + /// The remaining methods are implemented in the derived LinkableEngine class. There are + /// historical reasons for splitting the functionality between the two classes. + /// The LinkableRunEngine class and the LinkableEngine class could be merged, + /// but for the time being these are keeps as they are in order to support backward compatibility. + /// + [Serializable] + public abstract class LinkableRunEngine : LinkableComponent + { + + //TODO: The elementset version number should be checked and the elementmapper + //called in order to update the mapping a matrix when the version has changed + + /// + /// List of SmartInputLinks + /// + protected ArrayList _smartInputLinks; + + /// + /// List of SmartOutput Links + /// + protected ArrayList _smartOutputLinks; + + /// + /// Reference to the engine. Must be assigned in the derived class + /// + protected IRunEngine _engineApiAccess; + + /// + /// True if the _engineApiAccess was assigned + /// + protected bool _engineWasAssigned; + + /// + /// True if the Initialize method was invoked + /// + protected bool _initializeWasInvoked; + + /// + /// True if the Prepare method was invoked + /// + protected bool _prepareForCompotationWasInvoked; + + /// + /// True if the component is gathering data from other LinkableComponents + /// + protected bool _isBusy; + + /// + /// Arraylist of published event types + /// + protected ArrayList _publishedEventTypes; + + /// + /// used when comparing time in the IsLater method (see property TimeEpsilon) + /// + protected double _timeEpsilon; // used when comparing time in the IsLater method (see property TimeEpsilon) + + /// + /// Current validation string from the Validate method + /// + protected ArrayList _validationWarningMessages; + + /// + /// The current validateion error message + /// + protected ArrayList _validationErrorMessages; + + + /// + /// Constructor method for the LinkableRunEngine class + /// + public LinkableRunEngine() + { + _engineWasAssigned = false; + _initializeWasInvoked = false; + _prepareForCompotationWasInvoked = false; + _timeEpsilon = 0.10 * 1.0 / (3600.0 * 24.0); + + + _publishedEventTypes = new ArrayList(); + _publishedEventTypes.Add(EventType.DataChanged); + _publishedEventTypes.Add(EventType.Informative); + _publishedEventTypes.Add(EventType.SourceAfterGetValuesCall); + _publishedEventTypes.Add(EventType.SourceBeforeGetValuesReturn); + _publishedEventTypes.Add(EventType.TargetAfterGetValuesReturn); + _publishedEventTypes.Add(EventType.TargetBeforeGetValuesCall); + + _validationWarningMessages = new ArrayList(); + _validationErrorMessages = new ArrayList(); + + _smartInputLinks = new ArrayList(); + _smartOutputLinks = new ArrayList(); + + } + + /// + /// Implementation of the same method in the + /// OpenMI.Standard.ILinkableComponent interface + /// + public override ITimeStamp EarliestInputTime + { + get + { + return (_engineApiAccess.GetEarliestNeededTime()); + } + } + + /// + /// This _timeEpsilon variable is used when comparing the current time in the engine with + /// the time specified in the parameters for the GetValue method. + /// if ( requestedTime > engineTime + _timeEpsilon) then PerformTimestep().. + /// The default values for _timeEpsilon is double.Epsilon = 4.94065645841247E-324 + /// The default value may be too small for some engines, in which case the _timeEpsilon can + /// be changed the class that you have inherited from LinkableRunEngine og LinkableEngine. + /// + public double TimeEpsilon + { + get + { + return _timeEpsilon; + } + set + { + _timeEpsilon = value; + } + } + + /// + /// Add a link to the LinkableComponent + /// + /// The Link + public override void AddLink(ILink newLink) + { + try + { + if (!_initializeWasInvoked) + { + throw new System.Exception("AddLink method in the SmartWrapper cannot be invoked before the Initialize method has been invoked"); + } + if (_prepareForCompotationWasInvoked) + { + throw new System.Exception("AddLink method in the SmartWrapper cannot be invoked after the PrepareForComputation method has been invoked"); + } + + if(newLink.TargetComponent == this) + { + _smartInputLinks.Add (this.CreateInputLink(this._engineApiAccess, newLink)); + } + else if(newLink.SourceComponent == this) + { + this._smartOutputLinks.Add (this.CreateOutputLink(this._engineApiAccess, newLink)); + } + else + { + throw new System.Exception("SourceComponent.ID or TargetComponent.ID in Link does not match the Component ID for the component to which the Link was added"); + } + } + catch (System.Exception e) + { + string message = "Exception in LinkableComponent. "; + message += "ComponentID: " + this.ComponentID + "\n"; + throw new System.Exception(message,e); + } + } + + /// + /// Creates a new input link + /// + /// The engine + /// The link + /// The new input link + public virtual SmartInputLink CreateInputLink(IRunEngine engine, ILink link) + { + return new SmartInputLink (engine, link); + } + + /// + /// Creates a new output link + /// + /// The engine + /// The link + /// The new output link + public virtual SmartOutputLink CreateOutputLink(IRunEngine engine, ILink link) + { + SmartOutputLink smartOutputLink = new SmartOutputLink (engine, link); + smartOutputLink.Initialize(); + return smartOutputLink; + } + + /// + /// Implementaion of the same method in the + /// OpenMI.Standard.ILinkableComponent + /// + public override void Dispose() + { + _engineApiAccess.Dispose(); + } + + /// + /// Implementation of the same method in + /// OpenMI.Standard.ILInkableComponent + /// + /// Time (ITimeSpan or ITimeStamp) for which values are requested + /// LinkID associated to the requested values + /// The values + public override IValueSet GetValues(ITime time, string LinkID) + { + try + { + CheckTimeArgumentInGetvaluesMethod(time); + SendSourceAfterGetValuesCallEvent(time, LinkID); + IValueSet engineResult = new ScalarSet(); + + int outputLinkIndex = -999; + for (int i = 0; i < _smartOutputLinks.Count; i++) + { + if ( ((SmartOutputLink) _smartOutputLinks[i]).link.ID == LinkID) + { + outputLinkIndex = i; + break; + } + } + + if (_isBusy==false) + { + //while(IsLater(time,_engineApiAccess.GetCurrentTime())) + while(IsLater(time, ((SmartOutputLink) _smartOutputLinks[outputLinkIndex]).GetLastBufferedTime())) + { + _isBusy=true; + + //Update input links + foreach(SmartInputLink smartInputLink in _smartInputLinks) + { + smartInputLink.UpdateInput(); + } + _isBusy=false; + + //Perform Timestep + if(_engineApiAccess.PerformTimeStep()) + { + //Update buffer with engine values, Time is timestamp + foreach (SmartOutputLink smartOutputLink in _smartOutputLinks) + { + smartOutputLink.UpdateBuffer(); + } + + SendEvent(EventType.DataChanged); + } + } + } + + engineResult = ((SmartOutputLink)_smartOutputLinks[outputLinkIndex]).GetValue(time); + + SendEvent(EventType.SourceBeforeGetValuesReturn); + return engineResult; + + } + catch (System.Exception e) + { + string message = "Exception in LinkableComponent. ComponentID: "; + message += this.ComponentID; + throw new System.Exception(message,e); + } + } + + + /// + /// Description of the component + /// + public override string ComponentDescription + { + get + { + return _engineApiAccess.GetComponentDescription(); + } + } + + + /// + /// ID for the component + /// + public override string ComponentID + { + get + { + if (_engineApiAccess != null) + { + return _engineApiAccess.GetComponentID(); + } + else + { + return null; + } + } + } + + /// + /// Finish + /// + public override void Finish() + { + _engineApiAccess.Finish(); + + } + + /// + /// Initialize + /// + /// Initialization parameters + public override void Initialize(IArgument[] properties) + { + System.Collections.Hashtable hashtable =new Hashtable(); + for(int i = 0; i < properties.Length;i++) + { + hashtable.Add(properties[i].Key,properties[i].Value); + } + + SetEngineApiAccess(); + this._engineWasAssigned = true; + _engineApiAccess.Initialize(hashtable); + + if (!_engineWasAssigned) + { + throw new System.Exception("The Initialize method in the SmartWrapper cannot be invoked before the EngineApiAccess is assigned" ); + } + + _initializeWasInvoked = true; + } + + /// + /// Prepare. This method will be invoked after end of configuration and before the first GetValues call + /// + public override void Prepare() + { + try + { + if (!_engineWasAssigned) + { + throw new System.Exception("PrepareForComputation method in SmartWrapper cannot be invoked before the EngineApiAccess has been assigned"); + } + + if (!_initializeWasInvoked) + { + throw new System.Exception("PrepareForComputation method in SmartWrapper cannot be invoked before the Initialize method has been invoked"); + } + + Validate(); + + if (_validationErrorMessages.Count > 0) + { + string errorMessage = ""; + foreach (string str in _validationErrorMessages) + { + errorMessage += "Error: " + str + ". "; + } + + throw new Exception(errorMessage); + + } + + foreach (SmartOutputLink smartOutputLink in _smartOutputLinks) + { + smartOutputLink.UpdateBuffer(); + } + + _prepareForCompotationWasInvoked = true; + } + catch (System.Exception e) + { + string message = "Exception in LinkableComponent. "; + message += "ComponentID: " + this.ComponentID + "\n"; + throw new System.Exception(message,e); + } + } + + /// + /// Remove a link + /// + /// Link ID for the link to be removed + public override void RemoveLink(string LinkID) + { + try + { + if (!_initializeWasInvoked) + { + throw new Exception("Illegal invocation of RemoveLink method before invocation of Initialize method"); + } + + if (_prepareForCompotationWasInvoked) + { + throw new Exception("Illegal invocation of RemoveLink method after invocation of Prepare method"); + } + + + int index = -999; + for (int i = 0; i < _smartInputLinks.Count; i++) + { + if (((SmartInputLink)_smartInputLinks[i]).link.ID == LinkID) + { + index = i; + break; + } + } + + if (index != -999) + { + _smartInputLinks.RemoveAt(index); + } + else + { + for (int i = 0; i < _smartOutputLinks.Count; i++) + { + if(((SmartOutputLink) _smartOutputLinks[i]).link.ID == LinkID) + { + index = i; + break; + } + } + _smartOutputLinks.RemoveAt(index); + } + + if (index == -999) + { + throw new Exception("Failed to find link.ID in internal link lists in method RemoveLink()"); + } + + } + catch (System.Exception e) + { + string message = "Exception in LinkableComponent. "; + message += "ComponentID: " + this.ComponentID + "\n"; + throw new System.Exception(message,e); + } + } + + /// + /// Returns an array of input ILink which contains links already added to this component. + /// + /// Returns an array of ILink which contains links already added to this component + public override ILink[] GetAcceptingLinks() + { + ArrayList links = new ArrayList(); + + foreach (SmartInputLink smartLink in _smartInputLinks) + { + links.Add (smartLink.link); + } + + return (ILink[]) links.ToArray(typeof(ILink)); + } + + /// + /// Returns an array of output ILink which contains links already added to this component. + /// + /// Returns an array of output ILink which contains links already added to this component. + public override ILink[] GetProvidingLinks() + { + ArrayList links = new ArrayList(); + + foreach (SmartOutputLink smartLink in _smartOutputLinks) + { + links.Add (smartLink.link); + } + + return (ILink[]) links.ToArray(typeof(ILink)); + } + + + /// + /// Get the reference to the engine + /// + public IRunEngine EngineApiAccess + { + get + { + return _engineApiAccess; + } + } + + /// + /// Set reference to the engine + /// + protected abstract void SetEngineApiAccess(); + + /// + /// Keep Curren state + /// + /// ID for the state keept + public virtual string KeepCurrentState() + { + if (_engineApiAccess is IManageState) + { + string stateID; + stateID = ((IManageState) _engineApiAccess).KeepCurrentState(); + foreach (SmartOutputLink smartOutputLink in _smartOutputLinks) + { + smartOutputLink.KeepCurrentBufferState(stateID); + } + return stateID; + } + else + { + throw new Exception("KeepCurrentState was called but the engine does not implement IManageState"); + } + } + + /// + /// Restore a state + /// + /// ID for the state to restore + public virtual void RestoreState(string stateID) + { + if (_engineApiAccess is IManageState) + { + ((IManageState) _engineApiAccess).RestoreState(stateID); + + foreach (SmartOutputLink smartOutputLink in _smartOutputLinks) + { + smartOutputLink.RestoreBufferState(stateID); + } + } + else + { + throw new Exception("RestoreState was called but the engine does not implement IManageState"); + } + + } + + /// + /// Clear a state + /// + /// ID for the state to clear + public virtual void ClearState(string stateID) + { + if (_engineApiAccess is IManageState) + { + ((IManageState) _engineApiAccess).ClearState(stateID); + + foreach (SmartOutputLink smartOutputLink in _smartOutputLinks) + { + smartOutputLink.ClearBufferState(stateID); + } + } + else + { + throw new Exception("ClearState was called but the engine does not implement IManageState"); + } + } + + + /// + /// Get the published event types. + /// + /// index for the requested event type + /// the requested event type + public override EventType GetPublishedEventType(int providedEventTypeIndex) + { + return (EventType) _publishedEventTypes[providedEventTypeIndex]; + } + + /// + /// Get the number of published event types + /// + /// Number of published event types + public override int GetPublishedEventTypeCount() + { + return _publishedEventTypes.Count; + } + + /// + /// Convert a ITime object to a ITimeStamp. + /// + /// The ITime object to convert + /// The converted time + public static Oatc.OpenMI.Sdk.Backbone.TimeStamp TimeToTimeStamp(ITime time) + { + Oatc.OpenMI.Sdk.Backbone.TimeStamp t; + + if (time is ITimeStamp) + { + t = new Oatc.OpenMI.Sdk.Backbone.TimeStamp(((ITimeStamp) time).ModifiedJulianDay); + } + else + { + t = new Oatc.OpenMI.Sdk.Backbone.TimeStamp(((ITimeSpan) time).End.ModifiedJulianDay); + } + + return t; + } + + /// + /// Will compare two times. If the first argument t1, is later than the second argument t2 + /// the method will return true. Otherwise false will be returned. t1 and t2 can be of types + /// ITimeSpan or ITimeStamp. + /// + /// First time + /// Second time + /// isLater + protected bool IsLater(ITime t1, ITime t2) + { + double mt1, mt2; + bool isLater = false; + + mt1 = TimeToTimeStamp(t1).ModifiedJulianDay; + mt2 = TimeToTimeStamp(t2).ModifiedJulianDay; + + if (mt1 > mt2 + _timeEpsilon) + { + isLater = true; + } + else + { + isLater = false; + } + + return isLater; + + } + + /// + /// Converts a ITime object to a formatted string + /// + /// The time to convert + /// The formatted string + public static string ITimeToString(ITime time) + { + string timeString; + + if (time is ITimeStamp) + { + timeString = (CalendarConverter.ModifiedJulian2Gregorian(((ITimeStamp) time).ModifiedJulianDay)).ToString(); + } + else if (time is ITimeSpan) + { + timeString = "[" + (CalendarConverter.ModifiedJulian2Gregorian(((ITimeSpan) time).Start.ModifiedJulianDay)).ToString() + ", " + (CalendarConverter.ModifiedJulian2Gregorian(((ITimeSpan) time).End.ModifiedJulianDay)).ToString() + "]"; + } + else + { + throw new System.Exception("Illigal type used for time, must be OpenMI.Standard.ITimeStamp or OpenMI.Standard.TimeSpan"); + } + + return timeString; + } + + /// + /// Model descscription + /// + public override abstract string ModelDescription + { + get; + } + + /// + /// Model ID + /// + public override abstract string ModelID + { + get; + } + + /// + /// Time Horizon + /// + public override abstract ITimeSpan TimeHorizon + { + get; + } + + /// + /// Number of input exchange items + /// + public override abstract int InputExchangeItemCount + { + get; + } + + /// + /// number of output exchange items + /// + public override abstract int OutputExchangeItemCount + { + get; + } + + /// + /// get an input exchange item + /// + /// index number for the requested input exchange item + /// the requested input exchange item + public override abstract IInputExchangeItem GetInputExchangeItem(int index); + + + /// + /// get an output exchange item. + /// + /// index number for the requested exchange item + /// the requested exchange item + public override abstract IOutputExchangeItem GetOutputExchangeItem(int index); + + private ArrayList GetAllLinks() + { + ArrayList links = new ArrayList(); + + foreach (SmartInputLink inputLink in _smartInputLinks) + { + links.Add(inputLink.link); + } + + foreach (SmartOutputLink outputLink in _smartOutputLinks) + { + links.Add(outputLink.link); + } + return links; + } + + /// + /// Validate the component + /// + /// Empty string if no warnings were issued, or a description if there were warnings + public override string Validate() + { + _validationErrorMessages.Clear(); + _validationWarningMessages.Clear(); + + foreach (SmartLink link in _smartInputLinks) + { + _validationErrorMessages.AddRange (link.GetErrors()); + _validationWarningMessages.AddRange (link.GetWarnings()); + } + + foreach (SmartLink link in _smartOutputLinks) + { + _validationErrorMessages.AddRange (link.GetErrors()); + _validationWarningMessages.AddRange (link.GetWarnings()); + } + + string validationString = ""; + foreach (string str in _validationErrorMessages) + { + validationString += "Error: " + str + " "; + } + + foreach (string str in _validationWarningMessages) + { + validationString += "Warning: " + str + ". "; + } + + return validationString; + } + + private void CheckTimeArgumentInGetvaluesMethod(ITime time) + { + if (time is ITimeSpan) + { + if (this._engineApiAccess is IEngine) + { + if (IsLater(((IEngine)this._engineApiAccess).GetTimeHorizon().Start, ((ITimeSpan)time).Start)) + { + throw new Exception("GetValues method was invoked using a time argument that representes a time before the allowed time horizon"); + } + if (IsLater(((ITimeSpan)time).End, ((IEngine)this._engineApiAccess).GetTimeHorizon().End)) + { + throw new Exception("GetValues method was invoked using a time argument that representes a time that is after the allowed time horizon"); + } + } + } + else if (time is ITimeStamp) + { + if (this._engineApiAccess is IEngine) + { + if (IsLater(((IEngine)this._engineApiAccess).GetTimeHorizon().Start, (ITimeStamp)time)) + { + throw new Exception("GetValues method was invoked using a time argument that representes a time before the allowed time horizon"); + } + if (IsLater((ITimeStamp)time, ((IEngine)this._engineApiAccess).GetTimeHorizon().End)) + { + throw new Exception("GetValues method was invoked using a time argument that representes a time that is after the allowed time horizon"); + } + } + } + else + { + throw new Exception("Illegal data type for time was used in argument to GetValues method. Type must be OpenMI.Standard.ITimeStamp or ITimeSpan"); + } + } + + private void SendSourceAfterGetValuesCallEvent(ITime time, string LinkID) + { + Oatc.OpenMI.Sdk.Backbone.Event eventA = new Oatc.OpenMI.Sdk.Backbone.Event(EventType.SourceAfterGetValuesCall); + eventA.Description = "GetValues(t = " + ITimeToString(time) + ", "; + eventA.Description += "LinkID: " + LinkID; //TODO: QS = " + _smartOutputLinkSet.GetLink(LinkID).SourceQuantity.ID + " ,QT = " + _smartOutputLinkSet.GetLink(LinkID).TargetQuantity.ID; + eventA.Description += ") <<<==="; + eventA.Sender = this; + eventA.SimulationTime = TimeToTimeStamp(_engineApiAccess.GetCurrentTime()); + eventA.SetAttribute("GetValues time argument : ",ITimeToString(time)); + SendEvent(eventA); + } + + private void SendEvent( EventType eventType) + { + Oatc.OpenMI.Sdk.Backbone.Event eventD = new Oatc.OpenMI.Sdk.Backbone.Event(eventType); + eventD.Description = eventType.ToString(); + eventD.Sender = this; + eventD.SimulationTime = TimeToTimeStamp(_engineApiAccess.GetCurrentTime()); + SendEvent(eventD); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/Oatc.OpenMI.Sdk.Wrapper.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/Oatc.OpenMI.Sdk.Wrapper.csproj new file mode 100644 index 00000000..a58bd44b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/Oatc.OpenMI.Sdk.Wrapper.csproj @@ -0,0 +1,159 @@ + + + + Local + 8.0.50727 + 2.0 + {3DF52260-A727-405B-88A8-630BCE9085AC} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Wrapper + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Wrapper + OnBuildSuccess + + + + + + + false + 3.5 + v2.0 + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + bin\Release\Oatc.OpenMI.Sdk.Wrapper.XML + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + + + System + + + System.Data + + + System.Runtime.Remoting + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + + + {C9844E74-074D-46FA-AEF6-371B3481468B} + Oatc.OpenMI.Sdk.Buffer + + + {B7BE8C7F-0679-4022-81A5-6A314C058429} + Oatc.OpenMI.Sdk.DevelopmentSupport + + + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C} + Oatc.OpenMI.Sdk.Spatial + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/SmartBufferDataOperation.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/SmartBufferDataOperation.cs new file mode 100644 index 00000000..02d98593 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/SmartBufferDataOperation.cs @@ -0,0 +1,215 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The SmartBuffer data operation class is used to define the temporal relaxations factors and to define the level of validation + /// + public class SmartBufferDataOperation : IDataOperation, ICloneable + { + Oatc.OpenMI.Sdk.Backbone.Argument[] _arguments; + double _relaxationFactor; + bool _doExtendedValidation; + bool _isActivated; + + /// + /// Constructor + /// + public SmartBufferDataOperation() + { + _arguments = new Oatc.OpenMI.Sdk.Backbone.Argument[3]; + + _arguments[0] = new Oatc.OpenMI.Sdk.Backbone.Argument(); + _arguments[0].Description = "Arguments associated the buffering and extrapolation"; + _arguments[0].Key = "Type"; + _arguments[0].Value = "SmartBuffer Arguments"; + _arguments[0].ReadOnly = true; + + _arguments[1] = new Oatc.OpenMI.Sdk.Backbone.Argument(); + _arguments[1].Description = "Relaxation factor used for temporal extrapolation must be in the interval [0.0,1.0]"; + _arguments[1].Key = "Relaxation Factor"; + _arguments[1].Value = "0.0"; + _arguments[1].ReadOnly = false; + + _arguments[2] = new Oatc.OpenMI.Sdk.Backbone.Argument(); + _arguments[2].Description = "Do extended validation. Must be \"true\" or \"false\""; + _arguments[2].Key = "Do Extended Data Validation"; + _arguments[2].Value = "true"; + _arguments[2].ReadOnly = false; + + _isActivated = false; + } + #region IDataOperation Members: + + /// + /// Data operation ID + /// + public string ID + { + get + { + return "Buffering and temporal extrapolation"; + } + } + + /// + /// This data operation can be combined with any other data operation, so this method always return true + /// + /// input exchange items + /// output exchange items + /// the selected data operations + /// true if valid, false if invalid + public bool IsValid(IInputExchangeItem inputExchangeItem, IOutputExchangeItem outputExchangeItem, IDataOperation[] SelectedDataOperations) + { + return true; + } + + /// + /// Number of arguments + /// + public int ArgumentCount + { + get + { + return _arguments.Length; + } + } + + /// + /// Initialize + /// + /// parameters + public void Initialize(IArgument[] properties) + { + + } + + /// + /// get argument + /// + /// index for the requested argument + /// the requested argument + public IArgument GetArgument(int argumentIndex) + { + return _arguments[argumentIndex]; + } + + #endregion + + /// + /// prepare + /// + public void Prepare() + { + bool argumentRelaxationFactorWasFound = false; + bool argumentDoExtendedValidationWasFound = false; + + _isActivated = true; + + for (int i = 0; i < this._arguments.Length; i++) + { + if (_arguments[i].Key == _arguments[1].Key) //Relaxation Factor + { + _relaxationFactor = Convert.ToDouble(_arguments[i].Value); + argumentRelaxationFactorWasFound = true; + } + + if (_arguments[i].Key == _arguments[2].Key) //Do extended validation + { + _doExtendedValidation = Convert.ToBoolean(_arguments[i].Value); + argumentDoExtendedValidationWasFound = true; + } + } + if (!argumentRelaxationFactorWasFound || !argumentDoExtendedValidationWasFound) + { + throw new Exception("Missing argument in data operation: \"Linear Conversion\""); + } + } + + /// + /// If true the component will do extended data validation + /// + public bool DoExtendedValidation + { + get + { + if (!_isActivated) + { + throw new Exception("Attemt to use DoExtendedValidation property in SmartBufferDataOperation before the prepare() method was invoked"); + } + return _doExtendedValidation; + } + } + + /// + /// Relaxation factor for temporal extrapolation + /// + public double RelaxationFactor + { + get + { + if (!_isActivated) + { + throw new Exception("Attemt to use Relaxation property in SmartBufferDataOperation before the prepare() method was invoked"); + } + return _relaxationFactor; + } + } + + #region ICloneable Members + + /// + /// Creates a copy of the current instance. + /// + /// Copy of the instance + public object Clone() + { + SmartBufferDataOperation clone = new SmartBufferDataOperation(); + clone._relaxationFactor = _relaxationFactor; + clone._doExtendedValidation = _doExtendedValidation; + clone._isActivated = _isActivated; + clone._arguments = new Argument[ArgumentCount]; + for (int i = 0; i < ArgumentCount; i++) + { + clone._arguments[i] = new Oatc.OpenMI.Sdk.Backbone.Argument(); + clone._arguments[i].Description = _arguments[i].Description; + clone._arguments[i].Key = _arguments[i].Key; + clone._arguments[i].ReadOnly = _arguments[i].ReadOnly; + clone._arguments[i].Value = _arguments[i].Value; + } + return clone; + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/SmartInputLink.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/SmartInputLink.cs new file mode 100644 index 00000000..711de4c5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/SmartInputLink.cs @@ -0,0 +1,112 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Runtime.Remoting; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The SmartInputLink contains the ILink object. The smart input link + /// has a reference to the engine, which enables the SmartInputLink to update input. + /// + [Serializable] + public class SmartInputLink : SmartLink + { + + /// + /// Constructor + /// + /// Reference to the engine + /// Reference to the link + public SmartInputLink(IRunEngine engine, ILink link) + { + this._link = link; + this._engine = engine; + } + + /// + /// Retrieves data from the providing LinkableComponent as defined + /// in the Link and sets this data in the engine + /// + public virtual void UpdateInput() + { + ITime inputTime = this._engine.GetInputTime(link.TargetQuantity.ID, link.TargetElementSet.ID); + + if (inputTime != null) + { + SendEvent(EventType.TargetBeforeGetValuesCall, this.link.TargetComponent); + IScalarSet sourceValueSet = (IScalarSet)link.SourceComponent.GetValues(inputTime, link.ID); + + //The input values set is copied in ordet to avoid the risk that it is changed be the provider. + + double targetMissValDef = this._engine.GetMissingValueDefinition(); + ScalarSet targetValueSet = new ScalarSet(sourceValueSet); + + for (int i = 0; i < sourceValueSet.Count; i++) + { + if (!sourceValueSet.IsValid(i)) + { + targetValueSet.data[i] = targetMissValDef; + } + } + + targetValueSet.MissingValueDefinition = targetMissValDef; + targetValueSet.CompareDoublesEpsilon = targetMissValDef / 1.0e+10; + SendEvent(EventType.TargetAfterGetValuesReturn, this.link.TargetComponent); + this.Engine.SetValues(link.TargetQuantity.ID, link.TargetElementSet.ID, targetValueSet); + } + } + + /// + /// Send event + /// + /// the event type to send + /// reference to the sender (this) + public void SendEvent( EventType eventType, ILinkableComponent sender) + { + if (((Oatc.OpenMI.Sdk.Backbone.LinkableComponent)this.link.TargetComponent).HasListeners()) + { + Oatc.OpenMI.Sdk.Backbone.Event eventD = new Oatc.OpenMI.Sdk.Backbone.Event(eventType); + eventD.Description = eventType.ToString(); + eventD.Sender = sender; + ITime t = this._engine.GetCurrentTime(); + if (t is ITimeStamp) + { + eventD.SimulationTime = t as ITimeStamp; + } + else + { + eventD.SimulationTime = ((ITimeSpan)this._engine.GetCurrentTime()).End; + } + this.link.TargetComponent.SendEvent(eventD); + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/SmartLink.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/SmartLink.cs new file mode 100644 index 00000000..3a0bea28 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/SmartLink.cs @@ -0,0 +1,144 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using System.Runtime.Remoting; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The SmartLink contains the link and a reference to the engine + /// + [Serializable] + public abstract class SmartLink + { + + /// + /// Reference to the Link + /// + protected ILink _link; + + /// + /// Reference to the engine + /// + protected IRunEngine _engine; + + + /// + /// The ILink object contained in the SmartLink + /// + public ILink link + { + get + { + return _link; + } + } + + /// + /// Reference to the engine + /// + public IRunEngine Engine + { + get + { + return _engine; + } + } + + /// + /// Error messages + /// + /// Error Messages + public virtual string[] GetErrors() + { + ILink link = this.link; + ArrayList messages = new ArrayList(); + + // check valuetype + if (link.SourceQuantity.ValueType != global::OpenMI.Standard.ValueType.Scalar || link.TargetQuantity.ValueType != global::OpenMI.Standard.ValueType.Scalar) + { + if (this is SmartInputLink) + { + messages.Add("Component " + link.TargetComponent.ComponentID + "does not support VectorSets"); + } + else + { + messages.Add("Component " + link.SourceComponent.ComponentID + "does not support VectorSets"); + } + } + + // check unit + if (link.SourceQuantity.Unit == null || link.TargetQuantity.Unit == null) + { + messages.Add("Unit equals null in link from " + link.SourceComponent.ModelID + " to " + link.TargetComponent.ModelID); + } + else if (link.SourceQuantity.Unit.ConversionFactorToSI == 0.0 || link.TargetQuantity.Unit.ConversionFactorToSI == 0) + { + messages.Add("Unit conversion factor equals zero in link from " + link.SourceComponent.ModelID + " to " + link.TargetComponent.ModelID); + } + + return (string[]) messages.ToArray(typeof(string)); + } + + /// + /// Warining + /// + /// warnings + public virtual string[] GetWarnings() + { + ILink link = this.link; + ArrayList messages = new ArrayList(); + + // check dimension + if( ! CompareDimensions(link.SourceQuantity.Dimension, link.TargetQuantity.Dimension)) + { + messages.Add("Different dimensions used in link from " + link.SourceComponent.ModelID + " to " + link.TargetComponent.ModelID); + } + + return (string[]) messages.ToArray(typeof(string)); + } + + private bool CompareDimensions(IDimension dimension1, IDimension dimension2) + { + bool isSameDimension = true; + + for (int i = 0; i < (int)DimensionBase.NUM_BASE_DIMENSIONS; i++) + { + if (dimension1.GetPower((DimensionBase) i) != dimension2.GetPower((DimensionBase) i)) + { + isSameDimension = false; + } + } + return isSameDimension; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/SmartOutputLink.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/SmartOutputLink.cs new file mode 100644 index 00000000..eeec963c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/SmartOutputLink.cs @@ -0,0 +1,316 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using System.Runtime.Remoting; + +using Oatc.OpenMI.Sdk.Spatial; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +using Oatc.OpenMI.Sdk.Buffer; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// Smart output link + /// + [Serializable] + public class SmartOutputLink : SmartLink + { + private SmartBuffer smartBuffer; + private ElementMapper elementMapper; + private bool _useSpatialMapping; + LinearConversionDataOperation _linearDataOperation; + private Hashtable _bufferStates; + + + + /// + /// Constructor + /// + /// reference to the engine + /// The ILink object + public SmartOutputLink(IRunEngine engine, ILink link) + { + this._link = link; + this._engine = engine; + } + + /// + /// Initialize will create buffers, prepare data operations and create the mapping matrice when georeferenced links are used. + /// The initialize method should be invoked in the ILinkableComponent prepare method (is done from the LinkableRunEngine). + /// + public void Initialize() + { + _bufferStates = new Hashtable(); + + smartBuffer = new SmartBuffer(); + _useSpatialMapping = false; + _linearDataOperation = null; + + + + //Setup Spatial mapper - mapping method is set to default for now! + int index = -1; + string description = " "; + for (int i = 0; i < link.DataOperationsCount; i++) + { + for (int n = 0; n < link.GetDataOperation(i).ArgumentCount; n++) + { + if (link.GetDataOperation(i).GetArgument(n).Key == "Type" && link.GetDataOperation(i).GetArgument(n).Value == "SpatialMapping") + { + for (int m = 0; m < link.GetDataOperation(i).ArgumentCount; m++) + { + if (link.GetDataOperation(i).GetArgument(m).Key == "Description") + { + description = link.GetDataOperation(i).GetArgument(m).Value; + break; + } + } + index = i; + break; + } + } + if (index == i) + { + break; + } + } + + if (index >= 0) + { + if (description == " ") + { + throw new Exception("Missing key: \"Description\" in spatial dataoperation arguments"); + } + _useSpatialMapping = true; + elementMapper =new ElementMapper(); + elementMapper.Initialise(description,link.SourceElementSet, link.TargetElementSet); + } + + //Prepare linear data operation + for(int i = 0; i < link.DataOperationsCount; i++) + { + if (link.GetDataOperation(i).ID == (new LinearConversionDataOperation()).ID) + { + _linearDataOperation = (LinearConversionDataOperation) link.GetDataOperation(i); + _linearDataOperation.Prepare(); + break; + } + } + + //prepare SmartBufferDataOperation + for(int i = 0; i < link.DataOperationsCount; i++) + { + if (link.GetDataOperation(i).ID == (new SmartBufferDataOperation()).ID) + { + ((SmartBufferDataOperation)link.GetDataOperation(i)).Prepare(); + smartBuffer.DoExtendedDataVerification = ((SmartBufferDataOperation)link.GetDataOperation(i)).DoExtendedValidation; + smartBuffer.RelaxationFactor = ((SmartBufferDataOperation)link.GetDataOperation(i)).RelaxationFactor; + break; + } + } + + } + + /// + /// The last time in the buffer + /// + /// the latest time in the buffer + public ITimeStamp GetLastBufferedTime() + { + ITime time = SmartBuffer.GetTimeAt(SmartBuffer.TimesCount - 1); + if (time is ITimeSpan) + { + return new TimeStamp( ((ITimeSpan)time).End); + } + else + { + return (ITimeStamp) time; + } + } + + /// + /// The SmartBuffer associated to the SmartOutputLink + /// + public SmartBuffer SmartBuffer + { + get + { + return smartBuffer; + } + } + + /// + /// Update the associated buffer with the last values calculated by the engine + /// + public virtual void UpdateBuffer() + { + if ((link.SourceQuantity != null) && (link.SourceElementSet != null)) + { + + if (this.Engine is Oatc.OpenMI.Sdk.Wrapper.IAdvancedEngine) + { + TimeValueSet timeValueSet = ((IAdvancedEngine) this.Engine).GetValues(link.SourceQuantity.ID, link.SourceElementSet.ID); + + if (timeValueSet.Time != null) + { + if (_useSpatialMapping) + { + this.smartBuffer.AddValues(timeValueSet.Time, elementMapper.MapValues(timeValueSet.ValueSet)); + } + else + { + this.smartBuffer.AddValues(timeValueSet.Time, timeValueSet.ValueSet); + } + } + } + else // the engine is IEngine or IRunEngine + { + + ITime time = this.Engine.GetCurrentTime(); + + + IValueSet valueSet = this.Engine.GetValues(link.SourceQuantity.ID,link.SourceElementSet.ID); + + + if (_useSpatialMapping) + { + this.smartBuffer.AddValues(time,elementMapper.MapValues(valueSet)); + } + else + { + this.smartBuffer.AddValues(time,valueSet); + } + + } + } + + SmartBuffer.ClearBefore(link.TargetComponent.EarliestInputTime); + + } + + /// + /// Retrieves a value from the buffer that applies to the time passes as argument. + /// During this process the buffer will do temporal operations, + /// such as extrapolations, interpolations, or aggregation + /// + /// The time for which the values should apply + /// The values + public virtual IValueSet GetValue(ITime time) + { + IValueSet values = this.SmartBuffer.GetValues(time); + + if (_linearDataOperation != null) + { + values = _linearDataOperation.PerformDataOperation(values); + } + + return ConvertUnit(values); + } + + /// + /// Convert the units according the what is specified in the link + /// + /// The values + /// The unit converted values + private IValueSet ConvertUnit(IValueSet values) + { + double aSource = link.SourceQuantity.Unit.ConversionFactorToSI; + double bSource = link.SourceQuantity.Unit.OffSetToSI; + double aTarget = link.TargetQuantity.Unit.ConversionFactorToSI; + double bTarget = link.TargetQuantity.Unit.OffSetToSI; + + if (aSource != aTarget || bSource != bTarget) + { + if (values is IScalarSet) + { + double[] x = new double[values.Count]; + + for (int i = 0; i < values.Count; i++) + { + x[i] = (((IScalarSet) values).GetScalar(i) * aSource + bSource - bTarget) / aTarget; + } + + return new ScalarSet(x); + } + else if (values is IVectorSet) + { + ArrayList vectors = new ArrayList(); + + for (int i = 0; i < values.Count; i++) + { + double x = (((IVectorSet) values).GetVector(i).XComponent * aSource + bSource - bTarget) / aTarget; + double y = (((IVectorSet) values).GetVector(i).YComponent * aSource + bSource - bTarget) / aTarget; + double z = (((IVectorSet) values).GetVector(i).ZComponent * aSource + bSource - bTarget) / aTarget; + + Vector newVector = new Vector(x, y, z); + vectors.Add (newVector); + } + + return new VectorSet((Vector[]) vectors.ToArray(typeof(Vector))); + } + else + { + throw new Exception ("Type " + values.GetType().FullName + " not suppported for unit conversion"); + } + } + + return values; + } + + /// + /// Saves a copy of the buffer + /// + /// ID for the saved buffer state + public void KeepCurrentBufferState(string bufferStateID) + { + _bufferStates.Add(bufferStateID, new SmartBuffer(this.SmartBuffer)); + } + + /// + /// Clears a buffer state + /// + /// ID for the state to clear + public void ClearBufferState(string bufferStateID) + { + _bufferStates.Remove(bufferStateID); + } + + /// + /// Restores the buffer with a previously saved buffer state + /// + /// ID for the state to restore + public void RestoreBufferState(string bufferStateID) + { + this.smartBuffer = new SmartBuffer((SmartBuffer) _bufferStates[bufferStateID]); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/TimeValueSet.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/TimeValueSet.cs new file mode 100644 index 00000000..5afb0936 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/TimeValueSet.cs @@ -0,0 +1,76 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// Combined ITime and IValueSet. Used in connection with the IAdvancedEngine interface + /// + public class TimeValueSet + { + ITime _time; + IValueSet _valueSet; + + /// + /// Constructor + /// + /// ITime object + /// IValuesSet object + public TimeValueSet(ITime time, IValueSet valueSet) + { + _time = time; + _valueSet = valueSet; + } + + /// + /// The time + /// + public ITime Time + { + get + { + return _time; + } + } + + /// + /// The values + /// + public IValueSet ValueSet + { + get + { + return _valueSet; + } + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/AssemblyInfo.cs new file mode 100644 index 00000000..f0bc98e3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Wrapper UnitTest Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4 Alpha 3")] +[assembly: AssemblyCopyright("GNU Library or Lesser General Public License (LGPL), MIT License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/EventListener.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/EventListener.cs new file mode 100644 index 00000000..b543950e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/EventListener.cs @@ -0,0 +1,180 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using System.IO; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for EventListener. + /// + public class EventListener : IListener + { + private ArrayList _acceptenEventTypes; + public bool _isSilent; + + public bool _dataChanged; + public bool _globalProgress; + public bool _informative; + public bool _other; + public bool _sourceAfterGetValuesCall; + public bool _sourceBeforeGetValuesReturn; + public bool _targetAfterGetValuesReturn; + public bool _targetBeforeGetValuesCall; + public bool _timeStepProgres; + public bool _valueOutOfRange; + public bool _warning; + + + public EventListener() + { + _isSilent = false; + _acceptenEventTypes = new ArrayList(); + _acceptenEventTypes.Add(EventType.DataChanged); + _acceptenEventTypes.Add(EventType.GlobalProgress); + _acceptenEventTypes.Add(EventType.Informative); + _acceptenEventTypes.Add(EventType.Other); + _acceptenEventTypes.Add(EventType.SourceAfterGetValuesCall); + _acceptenEventTypes.Add(EventType.SourceBeforeGetValuesReturn); + _acceptenEventTypes.Add(EventType.TargetAfterGetValuesReturn); + _acceptenEventTypes.Add(EventType.TargetBeforeGetValuesCall); + _acceptenEventTypes.Add(EventType.TimeStepProgres); + _acceptenEventTypes.Add(EventType.ValueOutOfRange); + _acceptenEventTypes.Add(EventType.Warning); + + _dataChanged = false; + _globalProgress = false; + _informative = false; + _other = false; + _sourceAfterGetValuesCall = false; + _sourceBeforeGetValuesReturn = false; + _targetAfterGetValuesReturn = false; + _targetBeforeGetValuesCall = false; + _timeStepProgres = false; + _valueOutOfRange = false; + _warning = false; + + } + #region IListener Members + + public EventType GetAcceptedEventType(int acceptedEventTypeIndex) + { + return (EventType) _acceptenEventTypes[acceptedEventTypeIndex]; + + } + + public int GetAcceptedEventTypeCount() + { + return _acceptenEventTypes.Count; + } + + public void OnEvent(IEvent Event) + { + + if (Event.Type == EventType.DataChanged) + { + _dataChanged = true; + } + if (Event.Type == EventType.GlobalProgress) + { + _globalProgress = true; + } + if (Event.Type == EventType.Informative) + { + _informative = true; + } + if (Event.Type == EventType.Other) + { + _other = true; + } + if (Event.Type == EventType.SourceAfterGetValuesCall) + { + _sourceAfterGetValuesCall = true; + } + if (Event.Type == EventType.SourceBeforeGetValuesReturn) + { + _sourceBeforeGetValuesReturn = true; + } + if (Event.Type == EventType.TargetAfterGetValuesReturn) + { + _targetAfterGetValuesReturn = true; + } + if (Event.Type == EventType.TargetBeforeGetValuesCall) + { + _targetBeforeGetValuesCall = true; + } + if (Event.Type == EventType.TimeStepProgres) + { + _timeStepProgres = true; + } + if (Event.Type == EventType.ValueOutOfRange) + { + _valueOutOfRange = true; + } + if (Event.Type == EventType.Warning) + { + _warning = true; + } + + + + if (Event.Type == EventType.DataChanged) + { + if (!_isSilent) + { + Console.WriteLine(" "); + Console.WriteLine(" Event Type : " + Event.Type.ToString()); + Console.WriteLine(" Event Message : " + Event.Description); + Console.WriteLine(" Component ID : " + ((ILinkableComponent) Event.Sender).ComponentID); + Console.WriteLine(" Simulation time : " + CalendarConverter.ModifiedJulian2Gregorian(Event.SimulationTime.ModifiedJulianDay).ToString()); + Console.WriteLine(" "); + } + } + else + { + if (!_isSilent) + { + Console.WriteLine(" "); + + Console.WriteLine("Event Type : " + Event.Type.ToString()); + Console.WriteLine("Event Message : " + Event.Description); + Console.WriteLine("Component ID : " + ((ILinkableComponent) Event.Sender).ComponentID); + Console.WriteLine("Simulation time : " + CalendarConverter.ModifiedJulian2Gregorian(Event.SimulationTime.ModifiedJulianDay).ToString()); + Console.WriteLine(" "); + } + } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/ExceptionHandler.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/ExceptionHandler.cs new file mode 100644 index 00000000..0cdcb131 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/ExceptionHandler.cs @@ -0,0 +1,72 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for ExceptionHandler. + /// + public class ExceptionHandler + { + public ExceptionHandler() + { + } + + public static void WriteException(System.Exception e) + { + ArrayList messages = new ArrayList(); + while (e != null) + { + messages.Add(e); + e = e.InnerException; + } + Console.WriteLine(" "); + Console.WriteLine("------- System.Exception ----------------------------- "); + messages.Reverse(); + + foreach (System.Exception ex in messages) + { + Console.WriteLine(ex.Message); + } + + Console.WriteLine(" "); + Console.WriteLine("----- Details -----"); + foreach (System.Exception ex in messages) + { + Console.WriteLine("Message..........: " + ex.Message); + Console.WriteLine("Stact trace......: " + ex.StackTrace); + Console.WriteLine("TargetSite.......: " + ex.TargetSite.Name); + Console.WriteLine("Source...........: " + ex.Source); + Console.WriteLine(" "); + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/GWModelEngine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/GWModelEngine.cs new file mode 100644 index 00000000..60f40ea6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/GWModelEngine.cs @@ -0,0 +1,232 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for GWModelEngine. + /// + public class GWModelEngine : IEngine + { + + DateTime _simulationStart; + DateTime _simulationEnd; + double _timeStepLength; //[seconds] + ArrayList _inputExchangeItems; + ArrayList _outputExchangeItems; + int _currentTimeStepNumber; + int _numberOfElements; + double[] _storage; + + public GWModelEngine() + { + _numberOfElements = 4; + _simulationStart = new DateTime(2005,1,1,0,0,0); + _simulationEnd = new DateTime(2005,2,10,0,0,0); + _timeStepLength = 3600*24; //one day + + _inputExchangeItems = new ArrayList(); + _outputExchangeItems = new ArrayList(); + + _storage = new double[_numberOfElements]; + + for ( int i = 0; i < _numberOfElements; i++) + { + _storage[i] = 0; + } + + _currentTimeStepNumber = 0; + } + + #region IEngine Members + + public InputExchangeItem GetInputExchangeItem(int exchangeItemIndex) + { + return (InputExchangeItem) _inputExchangeItems[exchangeItemIndex]; + } + + public ITimeSpan GetTimeHorizon() + { + TimeStamp startTime = new TimeStamp(Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(_simulationStart)); + TimeStamp endTime = new TimeStamp(Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(_simulationEnd)); + Oatc.OpenMI.Sdk.Backbone.TimeSpan timeHorizon = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(startTime,endTime); + return timeHorizon; + } + + public string GetModelID() + { + return "GWModelEngineModelID"; + } + + public int GetInputExchangeItemCount() + { + return _inputExchangeItems.Count; + } + + public OutputExchangeItem GetOutputExchangeItem(int exchangeItemIndex) + { + return (OutputExchangeItem) _outputExchangeItems[exchangeItemIndex]; + } + + public string GetModelDescription() + { + return "GWModelEngineModelDescription"; + } + + public int GetOutputExchangeItemCount() + { + return _outputExchangeItems.Count; + } + + #endregion + + #region IRunEngine Members + + public void SetValues(string QuantityID, string ElementSetID, IValueSet values) + { + for (int i = 0; i < _storage.Length; i++) + { + _storage[i] = ((IScalarSet) values).GetScalar(i); + } + } + + public string GetComponentID() + { + return "GWModelEngineComponentID"; + } + + public void Finish() + { + + } + + public ITime GetCurrentTime() + { + double t = Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(_simulationStart); + t += _currentTimeStepNumber * _timeStepLength / (24.0*3600.0); + Oatc.OpenMI.Sdk.Backbone.TimeSpan currentTime = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(t - _timeStepLength / (24.0*3600.0)),new TimeStamp(t)); + return currentTime; + } + + public IValueSet GetValues(string QuantityID, string ElementSetID) + { + return new ScalarSet(_storage); + } + + public void Dispose() + { + } + + public string GetComponentDescription() + { + return "GWModelEngineComponentDescription"; + } + + public ITimeStamp GetEarliestNeededTime() + { + return (ITimeStamp) ((ITimeSpan)GetCurrentTime()).Start; + } + + public void Initialize(System.Collections.Hashtable properties) + { + double ox = 2.0; + double oy = 2.0; + double dx = 4.0; + double dy = 4.0; + + // -- Populate Input Exchange Items --- + Element element0 = new Element("element:0"); + element0.AddVertex(new Vertex(ox ,oy ,0)); + element0.AddVertex(new Vertex(ox+dx ,oy ,0)); + element0.AddVertex(new Vertex(ox+dx ,oy+dy ,0)); + element0.AddVertex(new Vertex(ox ,oy+dy ,0)); + + Element element1 = new Element("element:1"); + element1.AddVertex(new Vertex(ox + dx ,oy ,0)); + element1.AddVertex(new Vertex(ox+2*dx ,oy ,0)); + element1.AddVertex(new Vertex(ox+2*dx ,oy+dy ,0)); + element1.AddVertex(new Vertex(ox+dx ,oy+dy ,0)); + + Element element2 = new Element("element:2"); + element2.AddVertex(new Vertex(ox ,oy+dy ,0)); + element2.AddVertex(new Vertex(ox+dx ,oy+dy ,0)); + element2.AddVertex(new Vertex(ox+dx ,oy+2*dy ,0)); + element2.AddVertex(new Vertex(ox ,oy+2*dy ,0)); + + Element element3 = new Element("element:3"); + element3.AddVertex(new Vertex(ox + dx ,oy+dy ,0)); + element3.AddVertex(new Vertex(ox+2*dx ,oy+dy ,0)); + element3.AddVertex(new Vertex(ox+2*dx ,oy+2*dy ,0)); + element3.AddVertex(new Vertex(ox+dx ,oy+2*dy ,0)); + + ElementSet elementSet = new ElementSet("RegularGrid","RegularGrid",ElementType.XYPolygon,new SpatialReference(" ")); + elementSet.AddElement(element0); + elementSet.AddElement(element1); + elementSet.AddElement(element2); + elementSet.AddElement(element3); + + Quantity storageQuantity = new Quantity(new Unit("Storage",1.0,0.0,"Storage"),"Storage","Storage",global::OpenMI.Standard.ValueType.Scalar,new Dimension()); + InputExchangeItem inputExchangeItem = new InputExchangeItem(); + inputExchangeItem.ElementSet = elementSet; + inputExchangeItem.Quantity = storageQuantity; + _inputExchangeItems.Add(inputExchangeItem); + + OutputExchangeItem outputExchangeItem = new OutputExchangeItem(); + outputExchangeItem.ElementSet = elementSet; + outputExchangeItem.Quantity = storageQuantity; + _outputExchangeItems.Add(outputExchangeItem); + + } + + public bool PerformTimeStep() + { + _currentTimeStepNumber++; + return true; + } + + public double GetMissingValueDefinition() + { + return -999.99; + } + + public ITime GetInputTime(string QuantityID, string ElementSetID) + { + Oatc.OpenMI.Sdk.Backbone.TimeStamp inputStart = new TimeStamp(((ITimeSpan)GetCurrentTime()).End.ModifiedJulianDay); + Oatc.OpenMI.Sdk.Backbone.TimeStamp inputEnd = new TimeStamp(((ITimeSpan) GetCurrentTime()).End.ModifiedJulianDay + _timeStepLength/(24.0 * 3600.0)); + return new Oatc.OpenMI.Sdk.Backbone.TimeSpan(inputStart, inputEnd); + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/GWModelLC.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/GWModelLC.cs new file mode 100644 index 00000000..3055bb8c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/GWModelLC.cs @@ -0,0 +1,53 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for GWModelEngineLC. + /// + public class GWModelLC : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + private GWModelEngine _gWModelEngine; + + public GWModelLC() + { + _gWModelEngine = new GWModelEngine(); + } + + protected override void SetEngineApiAccess() + { + _engineApiAccess = _gWModelEngine; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/LinkableEngineTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/LinkableEngineTest.cs new file mode 100644 index 00000000..cda7a5ae --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/LinkableEngineTest.cs @@ -0,0 +1,1584 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.IO; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Wrapper; +//using Oatc.OpenMI.Sdk.Spatial; +using Oatc.OpenMI.Sdk.Buffer; +//using org.OpenMI.Examples.ExeptionHandlers.SimpleExceptionHandler; +//using org.OpenMI.Examples.TriggerComponents.SimpleTrigger; +//using org.OpenMI.Examples.EventListeners.SimpleEventListener; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for LinkableComponentTest. + /// + [TestFixture] + public class LinkableEngineTest + { + [Test] + public void ComponentID() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual("Test River Model Component ID", riverModelLC.ComponentID); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void ComponentDescription() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual("Test River model component description", riverModelLC.ComponentDescription); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void ModelID() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual("TestRiverModel Model ID", riverModelLC.ModelID); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void ModelModelDescription() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual("Test River model - Model description", riverModelLC.ModelDescription); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void TimeHorison() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + double simulationStart = CalendarConverter.Gregorian2ModifiedJulian(new DateTime(2005,1,1,0,0,0)); + double simulationEnd = CalendarConverter.Gregorian2ModifiedJulian(new DateTime(2005,2,10,0,0,0)); + Assert.AreEqual(simulationStart,riverModelLC.TimeHorizon.Start.ModifiedJulianDay); + Assert.AreEqual(simulationEnd, riverModelLC.TimeHorizon.End.ModifiedJulianDay); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void InputExchangeItemCount() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual(5, riverModelLC.InputExchangeItemCount); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void OutputExchangeItemCount() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual(7, riverModelLC.OutputExchangeItemCount); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void InputExchangeItem() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + + IInputExchangeItem exchangeItem0 = riverModelLC.GetInputExchangeItem(0); + Assert.AreEqual("Node:0",exchangeItem0.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem0.Quantity.ID); + Assert.AreEqual("LiterPrSecond",exchangeItem0.Quantity.Unit.ID); + Assert.AreEqual(0.001,exchangeItem0.Quantity.Unit.ConversionFactorToSI); + Assert.AreEqual(0.0,exchangeItem0.Quantity.Unit.OffSetToSI); + Assert.AreEqual(3,exchangeItem0.Quantity.Dimension.GetPower(DimensionBase.Length)); + Assert.AreEqual(-1,exchangeItem0.Quantity.Dimension.GetPower(DimensionBase.Time)); + Assert.AreEqual(1,exchangeItem0.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem0.ElementSet.ElementType); + + IInputExchangeItem exchangeItem1 = riverModelLC.GetInputExchangeItem(1); + Assert.AreEqual("Node:1",exchangeItem1.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem1.Quantity.ID); + Assert.AreEqual(1,exchangeItem1.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem1.ElementSet.ElementType); + + IInputExchangeItem exchangeItem2 = riverModelLC.GetInputExchangeItem(2); + Assert.AreEqual("Node:2",exchangeItem2.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem2.Quantity.ID); + Assert.AreEqual(1,exchangeItem2.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem2.ElementSet.ElementType); + + IInputExchangeItem exchangeItem3 = riverModelLC.GetInputExchangeItem(3); + Assert.AreEqual("Node:3",exchangeItem3.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem3.Quantity.ID); + Assert.AreEqual(1,exchangeItem3.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem3.ElementSet.ElementType); + + IInputExchangeItem exchangeItem4 = riverModelLC.GetInputExchangeItem(4); + Assert.AreEqual("WholeRiver",exchangeItem4.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem4.Quantity.ID); + Assert.AreEqual(3,exchangeItem4.ElementSet.ElementCount); + Assert.AreEqual(ElementType.XYPolyLine,exchangeItem4.ElementSet.ElementType); + Assert.AreEqual(2,exchangeItem4.ElementSet.GetVertexCount(0)); + Assert.AreEqual(2,exchangeItem4.ElementSet.GetVertexCount(1)); + Assert.AreEqual(2,exchangeItem4.ElementSet.GetVertexCount(2)); + Assert.AreEqual(3.0,exchangeItem4.ElementSet.GetXCoordinate(0,0)); + Assert.AreEqual(5.0,exchangeItem4.ElementSet.GetXCoordinate(0,1)); + Assert.AreEqual(5.0,exchangeItem4.ElementSet.GetXCoordinate(1,0)); + Assert.AreEqual(8.0,exchangeItem4.ElementSet.GetXCoordinate(1,1)); + Assert.AreEqual(8.0,exchangeItem4.ElementSet.GetXCoordinate(2,0)); + Assert.AreEqual(8.0,exchangeItem4.ElementSet.GetXCoordinate(2,1)); + Assert.AreEqual(9.0,exchangeItem4.ElementSet.GetYCoordinate(0,0)); + Assert.AreEqual(7.0,exchangeItem4.ElementSet.GetYCoordinate(0,1)); + Assert.AreEqual(7.0,exchangeItem4.ElementSet.GetYCoordinate(1,0)); + Assert.AreEqual(7.0,exchangeItem4.ElementSet.GetYCoordinate(1,1)); + Assert.AreEqual(7.0,exchangeItem4.ElementSet.GetYCoordinate(2,0)); + Assert.AreEqual(3.0,exchangeItem4.ElementSet.GetYCoordinate(2,1)); + } + + [Test] + public void GetOutputExchangeItem() + { + try + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + + IOutputExchangeItem exchangeItem0 = riverModelLC.GetOutputExchangeItem(0); + Assert.AreEqual("Branch:0",exchangeItem0.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem0.Quantity.ID); + Assert.AreEqual(1,exchangeItem0.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem0.ElementSet.ElementType); + + IOutputExchangeItem exchangeItem1 = riverModelLC.GetOutputExchangeItem(1); + Assert.AreEqual("Branch:1",exchangeItem1.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem1.Quantity.ID); + Assert.AreEqual(1,exchangeItem1.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem0.ElementSet.ElementType); + + IOutputExchangeItem exchangeItem2 = riverModelLC.GetOutputExchangeItem(2); + Assert.AreEqual("Branch:2",exchangeItem2.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem2.Quantity.ID); + Assert.AreEqual(1,exchangeItem2.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem0.ElementSet.ElementType); + + IOutputExchangeItem exchangeItem3 = riverModelLC.GetOutputExchangeItem(3); + Assert.AreEqual("Branch:0",exchangeItem3.ElementSet.ID); + Assert.AreEqual("Leakage",exchangeItem3.Quantity.ID); + Assert.AreEqual(1,exchangeItem3.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem0.ElementSet.ElementType); + + IOutputExchangeItem exchangeItem4 = riverModelLC.GetOutputExchangeItem(4); + Assert.AreEqual("Branch:1",exchangeItem4.ElementSet.ID); + Assert.AreEqual("Leakage",exchangeItem4.Quantity.ID); + Assert.AreEqual(1,exchangeItem4.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem0.ElementSet.ElementType); + + IOutputExchangeItem exchangeItem5 = riverModelLC.GetOutputExchangeItem(5); + Assert.AreEqual("Branch:2",exchangeItem5.ElementSet.ID); + Assert.AreEqual("Leakage",exchangeItem5.Quantity.ID); + Assert.AreEqual(1,exchangeItem5.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem0.ElementSet.ElementType); + + IOutputExchangeItem exchangeItem6 = riverModelLC.GetOutputExchangeItem(6); + Assert.AreEqual("WholeRiver",exchangeItem6.ElementSet.ID); + Assert.AreEqual("Leakage",exchangeItem6.Quantity.ID); + Assert.AreEqual(3,exchangeItem6.ElementSet.ElementCount); + Assert.AreEqual(ElementType.XYPolyLine,exchangeItem6.ElementSet.ElementType); + Assert.AreEqual(3,exchangeItem6.ElementSet.ElementCount); + Assert.AreEqual(2,exchangeItem6.ElementSet.GetVertexCount(0)); + Assert.AreEqual(2,exchangeItem6.ElementSet.GetVertexCount(1)); + Assert.AreEqual(2,exchangeItem6.ElementSet.GetVertexCount(2)); + Assert.AreEqual(3.0,exchangeItem6.ElementSet.GetXCoordinate(0,0)); + Assert.AreEqual(5.0,exchangeItem6.ElementSet.GetXCoordinate(0,1)); + Assert.AreEqual(5.0,exchangeItem6.ElementSet.GetXCoordinate(1,0)); + Assert.AreEqual(8.0,exchangeItem6.ElementSet.GetXCoordinate(1,1)); + Assert.AreEqual(8.0,exchangeItem6.ElementSet.GetXCoordinate(2,0)); + Assert.AreEqual(8.0,exchangeItem6.ElementSet.GetXCoordinate(2,1)); + Assert.AreEqual(9.0,exchangeItem6.ElementSet.GetYCoordinate(0,0)); + Assert.AreEqual(7.0,exchangeItem6.ElementSet.GetYCoordinate(0,1)); + Assert.AreEqual(7.0,exchangeItem6.ElementSet.GetYCoordinate(1,0)); + Assert.AreEqual(7.0,exchangeItem6.ElementSet.GetYCoordinate(1,1)); + Assert.AreEqual(7.0,exchangeItem6.ElementSet.GetYCoordinate(2,0)); + Assert.AreEqual(3.0,exchangeItem6.ElementSet.GetYCoordinate(2,1)); + + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + + [Test] + public void Initialize() + { + //----- Testing ----------------------------------------------------------- + // 1: That the Initialize method is called on the engine + // 2: That the initializeMethodWasInvoked flas is altered from false to true + // 3: That the Argument are correctly changed to a Hashtable + // ------------------------------------------------------------------------- + + ILinkableComponent riverModelLC = new RiverModelLC(); + Argument[] arguments = new Argument[1]; + arguments[0] = new Argument("ModelID","TestRiverModelID",true,"ID for the model"); + Assert.AreEqual(false,((RiverModelLC)riverModelLC)._riverModelEngine._initializeMethodWasInvoked); + riverModelLC.Initialize(arguments); + Assert.AreEqual(true,((RiverModelLC)riverModelLC)._riverModelEngine._initializeMethodWasInvoked); + Assert.AreEqual("TestRiverModelID",riverModelLC.ModelID); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + + + + [Test] + public void TimeEpsilon() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + Assert.AreEqual(false,((RiverModelLC)riverModelLC)._riverModelEngine._initializeMethodWasInvoked); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual(0.10 * 1.0 / (3600.0 * 24.0), ((RiverModelLC)riverModelLC).TimeEpsilon); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void EngineApiAccess() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + Assert.AreEqual(false,((RiverModelLC)riverModelLC)._riverModelEngine._initializeMethodWasInvoked); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual("Test River Model Component ID",((RiverModelLC) riverModelLC).EngineApiAccess.GetComponentID()); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void AddLink() + { + TestEngineLC sourceModel = new TestEngineLC(); + TestEngineLC targetModel = new TestEngineLC(); + + sourceModel.Initialize(new Argument[0]); + targetModel.Initialize(new Argument[0]); + + Link link = new Link(); + link.ID = "SourceToTargetLink"; + link.SourceComponent = sourceModel; + link.SourceElementSet = sourceModel.GetOutputExchangeItem(0).ElementSet; //last branch in the river + link.SourceQuantity = sourceModel.GetOutputExchangeItem(0).Quantity; + link.TargetComponent = targetModel; + link.TargetElementSet = targetModel.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = targetModel.GetInputExchangeItem(0).Quantity; + + Assert.AreEqual(0,sourceModel.SmartOutputLinks.Count); + Assert.AreEqual(0,sourceModel.SmartInputLinks.Count); + Assert.AreEqual(0,targetModel.SmartOutputLinks.Count); + Assert.AreEqual(0,targetModel.SmartInputLinks.Count); + + sourceModel.AddLink(link); + targetModel.AddLink(link); + + Assert.AreEqual(1,sourceModel.SmartOutputLinks.Count); + Assert.AreEqual(0,sourceModel.SmartInputLinks.Count); + Assert.AreEqual(0,targetModel.SmartOutputLinks.Count); + Assert.AreEqual(1,targetModel.SmartInputLinks.Count); + + sourceModel.Prepare(); // create the buffer + + Assert.AreEqual(1,((SmartOutputLink)sourceModel.SmartOutputLinks[0]).SmartBuffer.TimesCount); + } + + [Test] + public void RemoveLink() + { + TestEngineLC sourceModel = new TestEngineLC(); + TestEngineLC targetModel = new TestEngineLC(); + + sourceModel.Initialize(new Argument[0]); + targetModel.Initialize(new Argument[0]); + + Link link = new Link(); + link.ID = "SourceToTargetLink"; + link.SourceComponent = sourceModel; + link.SourceElementSet = sourceModel.GetOutputExchangeItem(0).ElementSet; //last branch in the river + link.SourceQuantity = sourceModel.GetOutputExchangeItem(0).Quantity; + link.TargetComponent = targetModel; + link.TargetElementSet = targetModel.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = targetModel.GetInputExchangeItem(0).Quantity; + + Assert.AreEqual(0,sourceModel.SmartOutputLinks.Count); + Assert.AreEqual(0,sourceModel.SmartOutputLinks.Count); + Assert.AreEqual(0,targetModel.SmartOutputLinks.Count); + Assert.AreEqual(0,targetModel.SmartOutputLinks.Count); + + sourceModel.AddLink(link); + targetModel.AddLink(link); + + Assert.AreEqual(1,sourceModel.SmartOutputLinks.Count); + Assert.AreEqual(0,sourceModel.SmartInputLinks.Count); + Assert.AreEqual(0,targetModel.SmartOutputLinks.Count); + Assert.AreEqual(1,targetModel.SmartInputLinks.Count); + + sourceModel.RemoveLink(link.ID); + targetModel.RemoveLink(link.ID); + + Assert.AreEqual(0,sourceModel.SmartOutputLinks.Count); + Assert.AreEqual(0,sourceModel.SmartOutputLinks.Count); + Assert.AreEqual(0,targetModel.SmartOutputLinks.Count); + Assert.AreEqual(0,targetModel.SmartOutputLinks.Count); + + } + + [Test] + public void Validate() + { + ILinkableComponent upperRiver = new RiverModelLC(); + ILinkableComponent lowerRiver = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] upperRiverArguments = new Argument[1]; + upperRiverArguments[0] = new Argument("ModelID","upperRiverModel",true,"argument"); + upperRiver.Initialize(upperRiverArguments); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] lowerRiverArguments = new Argument[1]; + lowerRiverArguments[0] = new Argument("ModelID","lowerRiverModel",true,"argument"); + lowerRiver.Initialize(lowerRiverArguments); + trigger.Initialize(new Argument[0]); + + Assert.AreEqual("upperRiverModel",upperRiver.ModelID); + Assert.AreEqual("lowerRiverModel",lowerRiver.ModelID); + + Dimension wrongDimension = new Dimension(); + wrongDimension.SetPower(DimensionBase.Mass,1); + Quantity wrongQuantity = new Quantity(new Unit("dummy",0.0,0.0,"dummy"),"test","qid",global::OpenMI.Standard.ValueType.Vector,wrongDimension); + ElementSet wrongElementSet = new ElementSet("Wrong ElementSet","BadID",ElementType.XYPolyLine,new SpatialReference("no ref")); + Element element = new Element("dum Element"); + element.AddVertex(new Vertex(4,5,0)); + wrongElementSet.AddElement(element); + + Link link = new Link(); + link.ID = "RiverToRiverLink"; + link.SourceComponent = upperRiver; + link.SourceElementSet = upperRiver.GetOutputExchangeItem(2).ElementSet; //last branch in the river + link.SourceQuantity = upperRiver.GetOutputExchangeItem(2).Quantity; + link.TargetComponent = lowerRiver; + link.TargetElementSet = lowerRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = wrongQuantity; +// link.AddDataOperation(upperRiver.GetOutputExchangeItem(6).GetDataOperation(0)); // bad data Operation + + Link triggerLink = new Link(); + + triggerLink.ID = "TriggerLink"; + triggerLink.SourceComponent = lowerRiver; + triggerLink.SourceElementSet = wrongElementSet; + triggerLink.SourceQuantity = wrongQuantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + upperRiver.AddLink(link); + lowerRiver.AddLink(link); + + lowerRiver.AddLink(triggerLink); + trigger.AddLink(triggerLink); + + bool isSilent = false; + if (!isSilent) + { + Console.WriteLine(lowerRiver.Validate()); + + foreach (string str in ((RiverModelLC) upperRiver).ValidationErrorMessages) + { + Console.WriteLine("Error upperRiver: " + str); + } + foreach (string str in ((RiverModelLC) lowerRiver).ValidationErrorMessages) + { + Console.WriteLine("Error lowerRiver: " + str); + } + foreach (string str in ((RiverModelLC) upperRiver).ValidationWarningMessages) + { + Console.WriteLine("Warning upperRiver: " + str); + } + foreach (string str in ((RiverModelLC) lowerRiver).ValidationWarningMessages) + { + Console.WriteLine("Warning lowerRiver: " + str); + } + } + + Assert.AreEqual(0,((RiverModelLC) upperRiver).ValidationErrorMessages.Count); + Assert.AreEqual(4,((RiverModelLC) lowerRiver).ValidationErrorMessages.Count); + + Assert.AreEqual(0,((RiverModelLC) upperRiver).ValidationWarningMessages.Count); + Assert.AreEqual(2,((RiverModelLC) lowerRiver).ValidationWarningMessages.Count); + + + } + + [Test] + public void Prepare() + { + try + { + ILinkableComponent riverModelLC = new RiverModelLC(); + ILinkableComponent trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + riverModelLC.Initialize(new Argument[0]); + trigger.Initialize(new Argument[0]); + + Link link = new Link(riverModelLC, riverModelLC.GetOutputExchangeItem(0).ElementSet,riverModelLC.GetOutputExchangeItem(0).Quantity,trigger,trigger.GetInputExchangeItem(0).ElementSet,trigger.GetInputExchangeItem(0).Quantity,"LinkID"); + riverModelLC.AddLink(link); + trigger.AddLink(link); + + Assert.AreEqual(false, ((RiverModelLC) riverModelLC).PrepareForCompotationWasInvoked); + riverModelLC.Prepare(); + Assert.AreEqual(true, ((RiverModelLC) riverModelLC).PrepareForCompotationWasInvoked); + + double x = ((IScalarSet)((SmartOutputLink)((RiverModelLC) riverModelLC).SmartOutputLinks[0]).SmartBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(7,x); //test if the initial state variables (e.g. flow) is copied to the buffer. + + double t = ((ITimeSpan)((SmartOutputLink)((RiverModelLC) riverModelLC).SmartOutputLinks[0]).SmartBuffer.GetTimeAt(0)).Start.ModifiedJulianDay; + Assert.AreEqual(riverModelLC.TimeHorizon.Start.ModifiedJulianDay, t); //test if the initial time is copied to the buffer + + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + [Test] + public void GetValues1A() + { + // Running with one instances of riverModelLC linked ID-based to trigger + + try + { + ILinkableComponent riverModelLC = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + Argument[] riverArguments = new Argument[2]; + riverArguments[0] = new Argument("ModelID","RiverModel",true,"argument"); + riverArguments[1] = new Argument("TimeStepLength","3600",true,"A time step length of 1 hour"); + + riverModelLC.Initialize(riverArguments); + trigger.Initialize(new Argument[0]); + + Link link = new Link(riverModelLC, riverModelLC.GetOutputExchangeItem(2).ElementSet,riverModelLC.GetOutputExchangeItem(2).Quantity,trigger,trigger.GetInputExchangeItem(0).ElementSet,trigger.GetInputExchangeItem(0).Quantity,"LinkID"); + riverModelLC.AddLink(link); + trigger.AddLink(link); + + riverModelLC.Prepare(); + + double firstTriggerGetValuesTime = riverModelLC.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[2]; + triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 2); + triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 4.3); + + trigger.Run(triggerTimes); + double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(35.0/4.0,x1); + + double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0); + Assert.AreEqual(35.0/4.0,x2); + + riverModelLC.Finish(); + riverModelLC.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + [Test] + public void GetValues1B() + { + // Running with one instances of riverModelLC linked ID-based to trigger and to + // an instance of the TimeSeriesComponent. + try + { + ILinkableComponent timeSeries = new TimeSeriesComponent(); + ILinkableComponent riverModelLC = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + timeSeries.Initialize(new Argument[0]); + + Argument[] riverArguments = new Argument[2]; + riverArguments[0] = new Argument("ModelID","upperRiverModel",true,"argument"); + riverArguments[1] = new Argument("TimeStepLength","3600",true,"A time step length of 1 day"); + + riverModelLC.Initialize(riverArguments); + trigger.Initialize(new Argument[0]); + + Link timeSeriesToRiverLink = new Link(); + timeSeriesToRiverLink.ID = "timeSeriesToUpperRiverLink"; + timeSeriesToRiverLink.SourceComponent = timeSeries; + timeSeriesToRiverLink.SourceElementSet = timeSeries.GetOutputExchangeItem(0).ElementSet; //last branch in the river + timeSeriesToRiverLink.SourceQuantity = timeSeries.GetOutputExchangeItem(0).Quantity; + timeSeriesToRiverLink.TargetComponent = riverModelLC; + timeSeriesToRiverLink.TargetElementSet = riverModelLC.GetInputExchangeItem(0).ElementSet; //first node in the river + timeSeriesToRiverLink.TargetQuantity = riverModelLC.GetInputExchangeItem(0).Quantity; + + + Link link = new Link(riverModelLC, riverModelLC.GetOutputExchangeItem(2).ElementSet,riverModelLC.GetOutputExchangeItem(2).Quantity,trigger,trigger.GetInputExchangeItem(0).ElementSet,trigger.GetInputExchangeItem(0).Quantity,"LinkID"); + + timeSeries.AddLink(timeSeriesToRiverLink); + riverModelLC.AddLink(timeSeriesToRiverLink); + + riverModelLC.AddLink(link); + trigger.AddLink(link); + + riverModelLC.Prepare(); + + double firstTriggerGetValuesTime = riverModelLC.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[2]; + triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 12.1); + triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 16.7); + + trigger.Run(triggerTimes); + double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(35.0/4.0 + 13.0/8.0,x1); + + double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0); + Assert.AreEqual(35.0/4.0 + 17.0/8.0,x2); + + riverModelLC.Finish(); + riverModelLC.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + + [Test] + public void GetValues2A() + { + // == Running with two instances of riverModelLC == + // + // - The Two river are running with the same timestepping. + // + // - The link is ID Based link with flow from last branch of the source river to the top + // node of the target river. + // + // - The time argument in the GetValues from rive to river is of type ITimeSpan + // + //TODO: 1: The RiverModelEngine should change the inflow over time. As it is now the inflow is the same + // in all time steps. Another idea would be to have a output exchange item that hold the accumulated + // inflow, this could be useful when testing the manage state interface. + // + // 2: Make this test run with the two river using different timesteps and with the source river + // starting ealier that the target river. + // + // 3: In this test also events could be tested. Simply test if all the required events are + // thrown during the simulations. + try + { + ILinkableComponent upperRiver = new RiverModelLC(); + ILinkableComponent lowerRiver = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] upperRiverArguments = new Argument[1]; + upperRiverArguments[0] = new Argument("ModelID","upperRiverModel",true,"argument"); + upperRiver.Initialize(upperRiverArguments); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] lowerRiverArguments = new Argument[1]; + lowerRiverArguments[0] = new Argument("ModelID","lowerRiverModel",true,"argument"); + lowerRiver.Initialize(lowerRiverArguments); + trigger.Initialize(new Argument[0]); + + Assert.AreEqual("upperRiverModel",upperRiver.ModelID); + Assert.AreEqual("lowerRiverModel",lowerRiver.ModelID); + + Link link = new Link(); + link.ID = "RiverToRiverLink"; + link.SourceComponent = upperRiver; + link.SourceElementSet = upperRiver.GetOutputExchangeItem(2).ElementSet; //last branch in the river + link.SourceQuantity = upperRiver.GetOutputExchangeItem(2).Quantity; + link.TargetComponent = lowerRiver; + link.TargetElementSet = lowerRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = lowerRiver.GetInputExchangeItem(0).Quantity; + + Link triggerLink = new Link(); + + triggerLink.ID = "TriggerLink"; + triggerLink.SourceComponent = lowerRiver; + triggerLink.SourceElementSet = lowerRiver.GetOutputExchangeItem(2).ElementSet; + triggerLink.SourceQuantity = lowerRiver.GetOutputExchangeItem(2).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + upperRiver.AddLink(link); + lowerRiver.AddLink(link); + + lowerRiver.AddLink(triggerLink); + trigger.AddLink(triggerLink); + + upperRiver.Prepare(); + lowerRiver.Prepare(); + trigger.Prepare(); + + double firstTriggerGetValuesTime = lowerRiver.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[2]; + triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 3); + triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 4.3); + + trigger.Run(triggerTimes); + + double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(315.0/32.0,x1); + + double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0); + Assert.AreEqual(315.0/32.0,x2); + + upperRiver.Finish(); + lowerRiver.Finish(); + + upperRiver.Dispose(); + lowerRiver.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + [Test] + public void GetValues2B() + { + // This is a variation of GetValues2A. In this test the timeSeries is linked ID based to the + // top node of the upperRiver. The last upperRiver branch of the upperRiver is ID based connected + // to the top node of the lowerRiver. The last branch in the lowerRiver is linked to the trigger. + // The timeSeries provides data that changes over time. This is what makes this test different from + // GetValues2A, where everytning is the same for every time step. + + try + { + ILinkableComponent timeSeries = new TimeSeriesComponent(); + ILinkableComponent upperRiver = new RiverModelLC(); + ILinkableComponent lowerRiver = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + timeSeries.Initialize(new Argument[0]); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] upperRiverArguments = new Argument[1]; + upperRiverArguments[0] = new Argument("ModelID","upperRiverModel",true,"argument"); + upperRiver.Initialize(upperRiverArguments); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] lowerRiverArguments = new Argument[1]; + lowerRiverArguments[0] = new Argument("ModelID","lowerRiverModel",true,"argument"); + lowerRiver.Initialize(lowerRiverArguments); + trigger.Initialize(new Argument[0]); + + Assert.AreEqual("upperRiverModel",upperRiver.ModelID); + Assert.AreEqual("lowerRiverModel",lowerRiver.ModelID); + + Link timeSeriesToUpperRiverLink = new Link(); + timeSeriesToUpperRiverLink.ID = "timeSeriesToUpperRiverLink"; + timeSeriesToUpperRiverLink.SourceComponent = timeSeries; + timeSeriesToUpperRiverLink.SourceElementSet = timeSeries.GetOutputExchangeItem(0).ElementSet; //last branch in the river + timeSeriesToUpperRiverLink.SourceQuantity = timeSeries.GetOutputExchangeItem(0).Quantity; + timeSeriesToUpperRiverLink.TargetComponent = upperRiver; + timeSeriesToUpperRiverLink.TargetElementSet = upperRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + timeSeriesToUpperRiverLink.TargetQuantity = upperRiver.GetInputExchangeItem(0).Quantity; + + Link link = new Link(); + link.ID = "RiverToRiverLink"; + link.SourceComponent = upperRiver; + link.SourceElementSet = upperRiver.GetOutputExchangeItem(2).ElementSet; //last branch in the river + link.SourceQuantity = upperRiver.GetOutputExchangeItem(2).Quantity; + link.TargetComponent = lowerRiver; + link.TargetElementSet = lowerRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = lowerRiver.GetInputExchangeItem(0).Quantity; + + Link triggerLink = new Link(); + + triggerLink.ID = "TriggerLink"; + triggerLink.SourceComponent = lowerRiver; + triggerLink.SourceElementSet = lowerRiver.GetOutputExchangeItem(2).ElementSet; + triggerLink.SourceQuantity = lowerRiver.GetOutputExchangeItem(2).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + timeSeries.AddLink(timeSeriesToUpperRiverLink); + upperRiver.AddLink(timeSeriesToUpperRiverLink); + + upperRiver.AddLink(link); + lowerRiver.AddLink(link); + + lowerRiver.AddLink(triggerLink); + trigger.AddLink(triggerLink); + + timeSeries.Prepare(); + upperRiver.Prepare(); + lowerRiver.Prepare(); + trigger.Prepare(); + + double firstTriggerGetValuesTime = lowerRiver.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[2]; + triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 12.5); + triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 16.2); + + trigger.Run(triggerTimes); + + double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(315.0/32.0 + 13.0/64.0,x1); + + double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0); + Assert.AreEqual(315.0/32.0 + 17.0/64.0,x2); + + upperRiver.Finish(); + lowerRiver.Finish(); + + upperRiver.Dispose(); + lowerRiver.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + + [Test] +// [Ignore ("This test fails when dt = 1 hour but works for dt = 0.5 day")] + public void GetValues2C() + { + // This test is a variation of GetValues 2B. What makes this test different is that the the two + // connected river models are not using the same timesteps. + // This test will test: + // - is the buffer working correcly with respect to interpolations and buffering + // - is the buffer working correctly with respect to clearing the buffer. + + try + { + ILinkableComponent timeSeries = new TimeSeriesComponent(); + ILinkableComponent upperRiver = new RiverModelLC(); + ILinkableComponent lowerRiver = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + timeSeries.Initialize(new Argument[0]); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] upperRiverArguments = new Argument[2]; + upperRiverArguments[0] = new Argument("ModelID","upperRiverModel",true,"argument"); + upperRiverArguments[1] = new Argument("TimeStepLength","21600",true,"A time step length of 1 day"); + upperRiver.Initialize(upperRiverArguments); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] lowerRiverArguments = new Argument[2]; + lowerRiverArguments[0] = new Argument("ModelID","lowerRiverModel",true,"argument"); + lowerRiverArguments[1] = new Argument("TimeStepLength","86400",true,"xx"); + lowerRiver.Initialize(lowerRiverArguments); + trigger.Initialize(new Argument[0]); + + Assert.AreEqual("upperRiverModel",upperRiver.ModelID); + Assert.AreEqual("lowerRiverModel",lowerRiver.ModelID); + + Link timeSeriesToUpperRiverLink = new Link(); + timeSeriesToUpperRiverLink.ID = "timeSeriesToUpperRiverLink"; + timeSeriesToUpperRiverLink.SourceComponent = timeSeries; + timeSeriesToUpperRiverLink.SourceElementSet = timeSeries.GetOutputExchangeItem(0).ElementSet; //last branch in the river + timeSeriesToUpperRiverLink.SourceQuantity = timeSeries.GetOutputExchangeItem(0).Quantity; + timeSeriesToUpperRiverLink.TargetComponent = upperRiver; + timeSeriesToUpperRiverLink.TargetElementSet = upperRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + timeSeriesToUpperRiverLink.TargetQuantity = upperRiver.GetInputExchangeItem(0).Quantity; + + Link link = new Link(); + link.ID = "RiverToRiverLink"; + link.SourceComponent = upperRiver; + link.SourceElementSet = upperRiver.GetOutputExchangeItem(2).ElementSet; //last branch in the river + link.SourceQuantity = upperRiver.GetOutputExchangeItem(2).Quantity; + link.TargetComponent = lowerRiver; + link.TargetElementSet = lowerRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = lowerRiver.GetInputExchangeItem(0).Quantity; + + Link triggerLink = new Link(); + + triggerLink.ID = "TriggerLink"; + triggerLink.SourceComponent = lowerRiver; + triggerLink.SourceElementSet = lowerRiver.GetOutputExchangeItem(2).ElementSet; + triggerLink.SourceQuantity = lowerRiver.GetOutputExchangeItem(2).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + timeSeries.AddLink(timeSeriesToUpperRiverLink); + upperRiver.AddLink(timeSeriesToUpperRiverLink); + + upperRiver.AddLink(link); + lowerRiver.AddLink(link); + + lowerRiver.AddLink(triggerLink); + trigger.AddLink(triggerLink); + + timeSeries.Prepare(); + upperRiver.Prepare(); + lowerRiver.Prepare(); + trigger.Prepare(); + + double firstTriggerGetValuesTime = lowerRiver.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[2]; + triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 12.5); + triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 16.2); + + trigger.Run(triggerTimes); + + double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(315.0/32.0 + 13.0/64.0,x1); + + double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0); + Assert.AreEqual(315.0/32.0 + 17.0/64.0,x2); + + Assert.AreEqual(10,((RiverModelLC) upperRiver)._maxBufferSize); //Test that the buffer is cleared + + upperRiver.Finish(); + lowerRiver.Finish(); + + upperRiver.Dispose(); + lowerRiver.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + [Test] + [Ignore ("Test code is not implemented")] + public void GetValues3A() + { + //TODO: implement a test for bi-directional link + } + + [Test] + public void GetValues4A() + { + //This test is: RiverModel --> GWModel --> Trigger + //Testing: Georeferenced links + RiverModelLC riverModel = new RiverModelLC(); + GWModelLC gWModel = new GWModelLC(); + Trigger trigger = new Trigger(); + + riverModel.Initialize(new Argument[0]); + gWModel.Initialize(new Argument[0]); + + Link riverGWLink = new Link(); + riverGWLink.ID = "RiverGWLink"; + riverGWLink.SourceComponent = riverModel; + riverGWLink.SourceElementSet = riverModel.GetOutputExchangeItem(6).ElementSet; + riverGWLink.SourceQuantity = riverModel.GetOutputExchangeItem(0).Quantity; + riverGWLink.TargetComponent = gWModel; + riverGWLink.TargetElementSet = gWModel.GetInputExchangeItem(0).ElementSet; + riverGWLink.TargetQuantity = gWModel.GetInputExchangeItem(0).Quantity; + + int dataOperationIndex = -9; + for (int i = 0; i < riverModel.GetOutputExchangeItem(6).DataOperationCount; i++) + { + if (riverModel.GetOutputExchangeItem(6).GetDataOperation(i).ID == "ElementMapper501") + { + dataOperationIndex = i; + } + } + + if (dataOperationIndex < 0) + { + throw new Exception("failed to find dataOperation"); + } + + riverGWLink.AddDataOperation(riverModel.GetOutputExchangeItem(6).GetDataOperation(dataOperationIndex)); + + Link triggerLink = new Link(); + triggerLink.ID = "RiverGWLink"; + triggerLink.SourceComponent = gWModel; + triggerLink.SourceElementSet = gWModel.GetOutputExchangeItem(0).ElementSet; + triggerLink.SourceQuantity = gWModel.GetOutputExchangeItem(0).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + riverModel.AddLink(riverGWLink); + gWModel.AddLink(riverGWLink); + gWModel.AddLink(triggerLink); + trigger.AddLink(triggerLink); + + riverModel.Prepare(); + gWModel.Prepare(); + + double firstTriggerGetValuesTime = riverModel.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[2]; + triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 12.1); + triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 16.7); + + trigger.Run(triggerTimes); + + double x0 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(0.0,x0); + + double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(1); + Assert.AreEqual(105.0/16.0,x1); + + double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(2); + Assert.AreEqual(7.5,x2); + + double x3 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(3); + Assert.AreEqual(5.0+35.0/16.0,x3); + + riverModel.Finish(); + gWModel.Finish(); + + riverModel.Dispose(); + gWModel.Dispose(); + + } + + [Test] + public void LinearConvertionDataOperation() + { + // Running with one instances of riverModelLC linked ID-based to trigger + // using the linearConversionDataOperation. + + try + { + ILinkableComponent riverModelLC = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + Argument[] riverArguments = new Argument[2]; + riverArguments[0] = new Argument("ModelID","RiverModel",true,"argument"); + riverArguments[1] = new Argument("TimeStepLength","3600",true,"A time step length of 1 hour"); + + riverModelLC.Initialize(riverArguments); + trigger.Initialize(new Argument[0]); + + Link link = new Link(riverModelLC, riverModelLC.GetOutputExchangeItem(2).ElementSet,riverModelLC.GetOutputExchangeItem(2).Quantity,trigger,trigger.GetInputExchangeItem(0).ElementSet,trigger.GetInputExchangeItem(0).Quantity,"LinkID"); + + //add linear conversion data operation + bool dataOperationWasFound = false; + int dataOperationIndex = -9; + for (int i = 0; i < riverModelLC.GetOutputExchangeItem(2).DataOperationCount; i++) + { + if (riverModelLC.GetOutputExchangeItem(2).GetDataOperation(i).ID == "Linear Conversion") + { + dataOperationWasFound = true; + dataOperationIndex = i; + } + } + Assert.AreEqual(true,dataOperationWasFound); + IDataOperation linearConvertionDataOperation = riverModelLC.GetOutputExchangeItem(2).GetDataOperation(dataOperationIndex); + bool key_A_WasFound = false; + bool key_B_WasFound = false; + bool key_Type_WasFound = false; + + for (int i = 0; i < linearConvertionDataOperation.ArgumentCount; i++) + { + if ( linearConvertionDataOperation.GetArgument(i).Key == "A") + { + linearConvertionDataOperation.GetArgument(i).Value = "2.5"; + key_A_WasFound = true; + Assert.AreEqual(false,linearConvertionDataOperation.GetArgument(i).ReadOnly); + } + if ( linearConvertionDataOperation.GetArgument(i).Key == "B") + { + linearConvertionDataOperation.GetArgument(i).Value = "3.5"; + key_B_WasFound = true; + Assert.AreEqual(false,linearConvertionDataOperation.GetArgument(i).ReadOnly); + } + + if ( linearConvertionDataOperation.GetArgument(i).Key == "Type") + { + key_Type_WasFound = true; + Assert.AreEqual(true,linearConvertionDataOperation.GetArgument(i).ReadOnly); + } + } + + Assert.AreEqual(true,key_A_WasFound); + Assert.AreEqual(true,key_B_WasFound); + Assert.AreEqual(true,key_Type_WasFound); + Assert.AreEqual("Linear Conversion",linearConvertionDataOperation.ID); + + link.AddDataOperation(linearConvertionDataOperation); + + riverModelLC.AddLink(link); + trigger.AddLink(link); + + riverModelLC.Prepare(); + + double firstTriggerGetValuesTime = riverModelLC.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[2]; + triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 2); + triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 4.3); + + trigger.Run(triggerTimes); + double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(2.5*(35.0/4.0) + 3.5, x1); + + double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0); + Assert.AreEqual(2.5 * (35.0/4.0) + 3.5, x2); + + riverModelLC.Finish(); + riverModelLC.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + [Test] + public void SmartBufferDataOperationTest() + { + // Running with one instances of riverModelLC linked ID-based to trigger + // using the SmartBufferDataOperation. + + try + { + ILinkableComponent riverModelLC = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + Argument[] riverArguments = new Argument[2]; + riverArguments[0] = new Argument("ModelID","RiverModel",true,"argument"); + riverArguments[1] = new Argument("TimeStepLength","3600",true,"A time step length of 1 hour"); + + riverModelLC.Initialize(riverArguments); + trigger.Initialize(new Argument[0]); + + Link link = new Link(riverModelLC, riverModelLC.GetOutputExchangeItem(2).ElementSet,riverModelLC.GetOutputExchangeItem(2).Quantity,trigger,trigger.GetInputExchangeItem(0).ElementSet,trigger.GetInputExchangeItem(0).Quantity,"LinkID"); + + //add linear conversion data operation + bool dataOperationWasFound = false; + int dataOperationIndex = -9; + for (int i = 0; i < riverModelLC.GetOutputExchangeItem(2).DataOperationCount; i++) + { + if (riverModelLC.GetOutputExchangeItem(2).GetDataOperation(i).ID == new SmartBufferDataOperation().ID) + { + dataOperationWasFound = true; + dataOperationIndex = i; + } + } + Assert.AreEqual(true,dataOperationWasFound); + IDataOperation smartBufferDataOperation = riverModelLC.GetOutputExchangeItem(2).GetDataOperation(dataOperationIndex); + bool key_A_WasFound = false; + bool key_B_WasFound = false; + bool key_Type_WasFound = false; + + for (int i = 0; i < smartBufferDataOperation.ArgumentCount; i++) + { + if ( smartBufferDataOperation.GetArgument(i).Key == "Relaxation Factor") + { + smartBufferDataOperation.GetArgument(i).Value = "0.7"; + key_A_WasFound = true; + Assert.AreEqual(false,smartBufferDataOperation.GetArgument(i).ReadOnly); + } + if ( smartBufferDataOperation.GetArgument(i).Key == "Do Extended Data Validation") + { + smartBufferDataOperation.GetArgument(i).Value = "False"; + key_B_WasFound = true; + Assert.AreEqual(false,smartBufferDataOperation.GetArgument(i).ReadOnly); + } + + if ( smartBufferDataOperation.GetArgument(i).Key == "Type") + { + key_Type_WasFound = true; + Assert.AreEqual(true,smartBufferDataOperation.GetArgument(i).ReadOnly); + } + } + + Assert.AreEqual(true,key_A_WasFound); + Assert.AreEqual(true,key_B_WasFound); + Assert.AreEqual(true,key_Type_WasFound); + Assert.AreEqual("Buffering and temporal extrapolation",smartBufferDataOperation.ID); + + link.AddDataOperation(smartBufferDataOperation); + + riverModelLC.AddLink(link); + trigger.AddLink(link); + + riverModelLC.Prepare(); + + Assert.AreEqual(0.7,((SmartOutputLink)((RiverModelLC) riverModelLC).SmartOutputLinks[0]).SmartBuffer.RelaxationFactor); + Assert.AreEqual(false,((SmartOutputLink)((RiverModelLC) riverModelLC).SmartOutputLinks[0]).SmartBuffer.DoExtendedDataVerification); + + riverModelLC.Finish(); + riverModelLC.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + + + + [Test] + public void EarliestInputTime() + { + TestEngineLC testEngineLC = new TestEngineLC(); + Trigger trigger = new Trigger(); + + testEngineLC.Initialize(new Argument[0]); + + Link triggerLink = new Link(); + triggerLink.ID = "TargetToTriggerLink"; + triggerLink.SourceComponent = testEngineLC; + triggerLink.SourceElementSet = testEngineLC.GetOutputExchangeItem(0).ElementSet; //last branch in the river + triggerLink.SourceQuantity = testEngineLC.GetOutputExchangeItem(0).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + testEngineLC.AddLink(triggerLink); + testEngineLC.Prepare(); + Assert.AreEqual(testEngineLC.TimeHorizon.Start,testEngineLC.EarliestInputTime); + + } + + [Test] + public void GetPublishedEventTypeCount() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual(6, riverModelLC.GetPublishedEventTypeCount()); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void GetPublishedEventType() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual(EventType.DataChanged, riverModelLC.GetPublishedEventType(0)); + Assert.AreEqual(EventType.Informative, riverModelLC.GetPublishedEventType(1)); + Assert.AreEqual(EventType.SourceAfterGetValuesCall, riverModelLC.GetPublishedEventType(2)); + Assert.AreEqual(EventType.SourceBeforeGetValuesReturn, riverModelLC.GetPublishedEventType(3)); + Assert.AreEqual(EventType.TargetAfterGetValuesReturn, riverModelLC.GetPublishedEventType(4)); + Assert.AreEqual(EventType.TargetBeforeGetValuesCall, riverModelLC.GetPublishedEventType(5)); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void KeepCurrentState() + { + RiverModelLC riverModelLC = new RiverModelLC(); + Trigger trigger = new Trigger(); + + riverModelLC.Initialize(new Argument[0]); + + Link triggerLink = new Link(); + triggerLink.ID = "TargetToTriggerLink"; + triggerLink.SourceComponent = riverModelLC; + triggerLink.SourceElementSet = riverModelLC.GetOutputExchangeItem(0).ElementSet; //last branch in the river + triggerLink.SourceQuantity = riverModelLC.GetOutputExchangeItem(0).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + riverModelLC.AddLink(triggerLink); + riverModelLC.Prepare(); + string stateID = riverModelLC.KeepCurrentState(); + Assert.AreEqual("state:1",stateID); + } + + [Test] + public void RestoreState() + { + // This test is based on GetValues2C + try + { + ILinkableComponent timeSeries = new TimeSeriesComponent(); + ILinkableComponent upperRiver = new RiverModelLC(); + ILinkableComponent lowerRiver = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + timeSeries.Initialize(new Argument[0]); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] upperRiverArguments = new Argument[2]; + upperRiverArguments[0] = new Argument("ModelID","upperRiverModel",true,"argument"); + upperRiverArguments[1] = new Argument("TimeStepLength","21600",true,"xx"); + upperRiver.Initialize(upperRiverArguments); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] lowerRiverArguments = new Argument[2]; + lowerRiverArguments[0] = new Argument("ModelID","lowerRiverModel",true,"argument"); + lowerRiverArguments[1] = new Argument("TimeStepLength","86400",true,"xx"); + lowerRiver.Initialize(lowerRiverArguments); + trigger.Initialize(new Argument[0]); + + Assert.AreEqual("upperRiverModel",upperRiver.ModelID); + Assert.AreEqual("lowerRiverModel",lowerRiver.ModelID); + + Link timeSeriesToUpperRiverLink = new Link(); + timeSeriesToUpperRiverLink.ID = "timeSeriesToUpperRiverLink"; + timeSeriesToUpperRiverLink.SourceComponent = timeSeries; + timeSeriesToUpperRiverLink.SourceElementSet = timeSeries.GetOutputExchangeItem(0).ElementSet; //last branch in the river + timeSeriesToUpperRiverLink.SourceQuantity = timeSeries.GetOutputExchangeItem(0).Quantity; + timeSeriesToUpperRiverLink.TargetComponent = upperRiver; + timeSeriesToUpperRiverLink.TargetElementSet = upperRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + timeSeriesToUpperRiverLink.TargetQuantity = upperRiver.GetInputExchangeItem(0).Quantity; + + Link link = new Link(); + link.ID = "RiverToRiverLink"; + link.SourceComponent = upperRiver; + link.SourceElementSet = upperRiver.GetOutputExchangeItem(2).ElementSet; //last branch in the river + link.SourceQuantity = upperRiver.GetOutputExchangeItem(2).Quantity; + link.TargetComponent = lowerRiver; + link.TargetElementSet = lowerRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = lowerRiver.GetInputExchangeItem(0).Quantity; + + Link triggerLink = new Link(); + + triggerLink.ID = "TriggerLink"; + triggerLink.SourceComponent = lowerRiver; + triggerLink.SourceElementSet = lowerRiver.GetOutputExchangeItem(2).ElementSet; + triggerLink.SourceQuantity = lowerRiver.GetOutputExchangeItem(2).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + timeSeries.AddLink(timeSeriesToUpperRiverLink); + upperRiver.AddLink(timeSeriesToUpperRiverLink); + + upperRiver.AddLink(link); + lowerRiver.AddLink(link); + + lowerRiver.AddLink(triggerLink); + trigger.AddLink(triggerLink); + + timeSeries.Prepare(); + upperRiver.Prepare(); + lowerRiver.Prepare(); + trigger.Prepare(); + +// double firstTriggerGetValuesTime = lowerRiver.TimeHorizon.Start.ModifiedJulianDay; +// TimeStamp[] triggerTimes = new TimeStamp[2]; +// triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 12.5); +// triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 16.2); + + double t = lowerRiver.TimeHorizon.Start.ModifiedJulianDay; + Assert.AreEqual(315.0/32.0 + 13.0/64.0, ((ScalarSet)lowerRiver.GetValues(new TimeStamp(t+12.5),"TriggerLink")).GetScalar(0)); + string lowerRiverStateID = ((IManageState) lowerRiver).KeepCurrentState(); + string upperRiverStateID = ((IManageState) upperRiver).KeepCurrentState(); + Assert.AreEqual(315.0/32.0 + 17.0/64.0, ((ScalarSet)lowerRiver.GetValues(new TimeStamp(t+16.2),"TriggerLink")).GetScalar(0)); + ((IManageState) lowerRiver).RestoreState(lowerRiverStateID); + ((IManageState) upperRiver).RestoreState(upperRiverStateID); + lowerRiver.GetValues(new TimeStamp(t + 14.0),"TriggerLink"); + Assert.AreEqual(315.0/32.0 + 17.0/64.0, ((ScalarSet)lowerRiver.GetValues(new TimeStamp(t+16.2),"TriggerLink")).GetScalar(0)); + + + + + +// double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); +// Assert.AreEqual(315.0/32.0 + 13.0/64.0,x1); +// +// double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0); +// Assert.AreEqual(315.0/32.0 + 17.0/64.0,x2); +// +// Assert.AreEqual(2,((RiverModelLC) upperRiver)._maxBufferSize); //Test that the buffer is cleared + + upperRiver.Finish(); + lowerRiver.Finish(); + + upperRiver.Dispose(); + lowerRiver.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + [Test] + public void ClearState() + { + RiverModelLC riverModelLC = new RiverModelLC(); + Trigger trigger = new Trigger(); + + riverModelLC.Initialize(new Argument[0]); + + Link triggerLink = new Link(); + triggerLink.ID = "TargetToTriggerLink"; + triggerLink.SourceComponent = riverModelLC; + triggerLink.SourceElementSet = riverModelLC.GetOutputExchangeItem(0).ElementSet; //last branch in the river + triggerLink.SourceQuantity = riverModelLC.GetOutputExchangeItem(0).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + riverModelLC.AddLink(triggerLink); + riverModelLC.Prepare(); + string stateID = riverModelLC.KeepCurrentState(); + Assert.AreEqual("state:1",stateID); + Assert.AreEqual(1,riverModelLC._riverModelEngine._states.Count); + riverModelLC.ClearState("state:1"); + Assert.AreEqual(0,riverModelLC._riverModelEngine._states.Count); + } + + [Test] + public void TimeToTimeStamp() + { + Oatc.OpenMI.Sdk.Backbone.TimeSpan timeSpan = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(10.0),new TimeStamp(20.0)); + Oatc.OpenMI.Sdk.Backbone.TimeStamp timeStamp = new TimeStamp(15.0); + + Assert.AreEqual(20.0, LinkableRunEngine.TimeToTimeStamp(timeSpan).ModifiedJulianDay); + Assert.AreEqual(15.0, LinkableRunEngine.TimeToTimeStamp(timeStamp).ModifiedJulianDay); + } + + [Test] + public void ITimeToString() + { + System.DateTime t1 = new DateTime(2004,7,12,10,25,34); + System.DateTime t2 = new DateTime(2004,8,15,13,15,14); + TimeStamp timeStamp1 = new TimeStamp(Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(t1)); + TimeStamp timeStamp2 = new TimeStamp(Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(t2)); + Oatc.OpenMI.Sdk.Backbone.TimeSpan timeSpan = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(timeStamp1,timeStamp2); + + Assert.AreEqual(t1.ToString(),LinkableRunEngine.ITimeToString(timeStamp1)); + string str = "[" + t1.ToString()+", "+t2.ToString()+"]"; + Assert.AreEqual(str, LinkableRunEngine.ITimeToString(timeSpan)); + + } + + [Test] + public void Dispose() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + riverModelLC.Prepare(); + riverModelLC.Finish(); + Assert.AreEqual(false,((RiverModelLC)riverModelLC)._riverModelEngine._disposeMethodWasInvoked); + riverModelLC.Dispose(); + Assert.AreEqual(true,((RiverModelLC)riverModelLC)._riverModelEngine._disposeMethodWasInvoked); + } + + [Test] + public void Finish() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + riverModelLC.Prepare(); + Assert.AreEqual(false,((RiverModelLC)riverModelLC)._riverModelEngine._finishMethodWasInvoked); + riverModelLC.Finish(); + Assert.AreEqual(true,((RiverModelLC)riverModelLC)._riverModelEngine._finishMethodWasInvoked); + riverModelLC.Dispose(); + } + + [Test] + [Ignore ("Test code is not implemented")] + public void ExpectedException01() + { + // TODO:This test should test methods are callen in correct order + } + + [Test] + public void XEvent() + { + // Event Test + // Testing : 1) That all events are actually thrown during calculations + + TestEngineLC sourceModel = new TestEngineLC(); + TestEngineLC targetModel = new TestEngineLC(); + Trigger trigger = new Trigger(); + + sourceModel.Initialize(new Argument[0]); + targetModel.Initialize(new Argument[0]); + trigger.Initialize(new Argument[0]); + + Link link = new Link(); + link.ID = "SourceToTargetLink"; + link.SourceComponent = sourceModel; + link.SourceElementSet = sourceModel.GetOutputExchangeItem(0).ElementSet; //last branch in the river + link.SourceQuantity = sourceModel.GetOutputExchangeItem(0).Quantity; + link.TargetComponent = targetModel; + link.TargetElementSet = targetModel.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = targetModel.GetInputExchangeItem(0).Quantity; + + Link triggerLink = new Link(); + triggerLink.ID = "TargetToTriggerLink"; + triggerLink.SourceComponent = targetModel; + triggerLink.SourceElementSet = targetModel.GetOutputExchangeItem(0).ElementSet; //last branch in the river + triggerLink.SourceQuantity = targetModel.GetOutputExchangeItem(0).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + sourceModel.AddLink(link); + targetModel.AddLink(link); + + targetModel.AddLink(triggerLink); + trigger.AddLink(triggerLink); + + EventListener eventListener = new EventListener(); + eventListener._isSilent = true; + + for (int i = 0; i < eventListener.GetAcceptedEventTypeCount(); i++) + { + for (int n = 0; n < sourceModel.GetPublishedEventTypeCount(); n++) + { + if (eventListener.GetAcceptedEventType(i) == sourceModel.GetPublishedEventType(n)) + { + sourceModel.Subscribe(eventListener, eventListener.GetAcceptedEventType(i)); + } + } + + for (int n = 0; n < targetModel.GetPublishedEventTypeCount(); n++) + { + if (eventListener.GetAcceptedEventType(i) == targetModel.GetPublishedEventType(n)) + { + targetModel.Subscribe(eventListener, eventListener.GetAcceptedEventType(i)); + } + } + } + + sourceModel.Prepare(); + targetModel.Prepare(); + trigger.Prepare(); + + trigger.Run(new TimeStamp(sourceModel.TimeHorizon.Start.ModifiedJulianDay + 10)); + + Assert.AreEqual(true , eventListener._dataChanged); + Assert.AreEqual(false, eventListener._globalProgress); +// Assert.AreEqual(true , eventListener._informative); //TODO This test was out commented, because it fails, further investigation needed + Assert.AreEqual(false, eventListener._other); + Assert.AreEqual(true, eventListener._sourceAfterGetValuesCall); + Assert.AreEqual(true, eventListener._sourceBeforeGetValuesReturn); + Assert.AreEqual(true, eventListener._targetAfterGetValuesReturn); + Assert.AreEqual(true, eventListener._targetBeforeGetValuesCall); + Assert.AreEqual(false, eventListener._timeStepProgres); + Assert.AreEqual(false, eventListener._valueOutOfRange); + Assert.AreEqual(false, eventListener._warning); + } + + + [Test] + public void XUnitConvertion() + { + // Unit conversion. Converting Fahrenheit to Celcius + + double x; + double y; + + TestEngineLC sourceModel = new TestEngineLC(); + TestEngineLC targetModel = new TestEngineLC(); + + sourceModel.Initialize(new Argument[0]); + targetModel.Initialize(new Argument[0]); + + Link link = new Link(); + link.ID = "SourcToTargetLink"; + link.SourceComponent = sourceModel; + link.SourceElementSet = sourceModel.GetOutputExchangeItem(0).ElementSet; //last branch in the river + link.SourceQuantity = new Quantity(new Unit("Deg. Fahrenheit",5.0/9.0, 273.16 - 32.0 * (5.0/9.0) ,"Fahrenheit"),"temperature","Temperature",global::OpenMI.Standard.ValueType.Scalar,new Dimension()); + link.TargetComponent = targetModel; + link.TargetElementSet = targetModel.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = new Quantity(new Unit("Deg. Celcius",1.0, 273.16,"Celcius"),"temperature","Temperature",global::OpenMI.Standard.ValueType.Scalar,new Dimension()); + + sourceModel.AddLink(link); + targetModel.AddLink(link); + + sourceModel.Prepare(); + targetModel.Prepare(); + + for (int i = 0; i < ((ScalarSet)sourceModel.GetValues(new TimeStamp(sourceModel.TimeHorizon.Start.ModifiedJulianDay + 10),"SourcToTargetLink")).Count; i++) + { + x = ((ScalarSet)sourceModel.GetValues(new TimeStamp(sourceModel.TimeHorizon.Start.ModifiedJulianDay + 10),"SourcToTargetLink")).GetScalar(i); + y = (100.0 - 32.0) * (5.0/9.0); // = 37.7778 (100 deg. F = 37.7778 deg.C) + Assert.AreEqual(y,x,0.0000000001); //internal value is 80 deg Fahrenheit + } + } + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/Oatc.OpenMI.Sdk.Wrapper.UnitTest.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/Oatc.OpenMI.Sdk.Wrapper.UnitTest.csproj new file mode 100644 index 00000000..285e6230 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/Oatc.OpenMI.Sdk.Wrapper.UnitTest.csproj @@ -0,0 +1,171 @@ + + + + Local + 8.0.50727 + 2.0 + {D1CF8C4C-2941-49A6-A212-DCDBBF71E088} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Wrapper.UnitTest + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Wrapper.UnitTest + OnBuildSuccess + + + + + + + false + 3.5 + v2.0 + + + ./bin/Debug + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ./bin/Release + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\..\..\..\..\..\..\_Code\Dev.CSharp\HydroDesktop\Source\Plugins\Modeler\Utilities\NUnit\nunit.framework.dll + + + ..\..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + + + {C9844E74-074D-46FA-AEF6-371B3481468B} + Oatc.OpenMI.Sdk.Buffer + + + {B7BE8C7F-0679-4022-81A5-6A314C058429} + Oatc.OpenMI.Sdk.DevelopmentSupport + + + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C} + Oatc.OpenMI.Sdk.Spatial + + + {3DF52260-A727-405B-88A8-630BCE9085AC} + Oatc.OpenMI.Sdk.Wrapper + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/RiverModelEngine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/RiverModelEngine.cs new file mode 100644 index 00000000..be50ec62 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/RiverModelEngine.cs @@ -0,0 +1,462 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.IO; +using System.Collections; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for RiverModelEngine. + /// + public class RiverModelEngine : IEngine, IManageState + { + double[] _xCoordinate; // x-coordinates for the nodes + double[] _yCoordinate; // y-coordinates for the nodes + int _numberOfNodes; + DateTime _simulationStart; + DateTime _simulationEnd; + double _timeStepLength; //[seconds] + ArrayList _inputExchangeItems; + ArrayList _outputExchangeItems; + double[] _storage; //[liters] + double[] _flow; //[liter pr second] + double[] _leakage; //[liter pr second] + double _runoff; //[liter pr second] + int _currentTimeStepNumber; + string _modelID; + + public bool _initializeMethodWasInvoked; + public bool _finishMethodWasInvoked; + public bool _disposeMethodWasInvoked; + + public ArrayList _states; + int _stateIdCreator; + + + + public RiverModelEngine() + { + _modelID = "TestRiverModel Model ID"; + _xCoordinate = new double[]{3,5,8,8}; + _yCoordinate = new double[]{9,7,7,3}; + + _numberOfNodes = _xCoordinate.Length; + + _simulationStart = new DateTime(2005,1,1,0,0,0); + _simulationEnd = new DateTime(2005,2,10,0,0,0); + _timeStepLength = 3600*24; //one day + + _inputExchangeItems = new ArrayList(); + _outputExchangeItems = new ArrayList(); + + _storage = new double[_numberOfNodes]; + for ( int i = 0; i < _numberOfNodes; i++) + { + _storage[i] = 0; + } + _flow = new double[_numberOfNodes - 1]; + _leakage = new double[_numberOfNodes - 1]; + _runoff = 10; + _currentTimeStepNumber = 0; + + _initializeMethodWasInvoked = false; + _finishMethodWasInvoked = false; + _disposeMethodWasInvoked = false; + + _states = new ArrayList(); + _stateIdCreator = 0; + } + #region IEngine Members + + public InputExchangeItem GetInputExchangeItem(int exchangeItemIndex) + { + return (InputExchangeItem) _inputExchangeItems[exchangeItemIndex]; + } + + public ITimeSpan GetTimeHorizon() + { + TimeStamp startTime = new TimeStamp(Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(_simulationStart)); + TimeStamp endTime = new TimeStamp(Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(_simulationEnd)); + Oatc.OpenMI.Sdk.Backbone.TimeSpan timeHorizon = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(startTime,endTime); + return timeHorizon; + } + + public string GetModelID() + { + return _modelID; + } + + public int GetInputExchangeItemCount() + { + return _inputExchangeItems.Count; + } + + public OutputExchangeItem GetOutputExchangeItem(int exchangeItemIndex) + { + return (OutputExchangeItem) _outputExchangeItems[exchangeItemIndex]; + } + + public string GetModelDescription() + { + return "Test River model - Model description"; + } + + public int GetOutputExchangeItemCount() + { + return _outputExchangeItems.Count; + } + + #endregion + + #region IRunEngine Members + + public void SetValues(string QuantityID, string ElementSetID, IValueSet values) + { + char[] separator = new char[]{':'}; + + if (!(values is IScalarSet)) + { + throw new Exception("Illigal data type for values argument in method SetValues"); + } + + if (ElementSetID == "WholeRiver") + { + if (values.Count != _numberOfNodes - 1) + { + throw new Exception("Illigal number of values in ValueSet in argument to SetValues method"); + } + for ( int i = 1; i < _numberOfNodes; i++) + { + _storage[i] += ((IScalarSet) values).GetScalar(i) * _timeStepLength; + } + } + else if(ElementSetID.Split(separator)[0] == "Node") + { + if (values.Count != 1) + { + throw new Exception("illigal number of values in ValueSet in argument to SetValues method"); + } + int nodeIndex = Convert.ToInt32(ElementSetID.Split(separator)[1]); + _storage[nodeIndex] += ((IScalarSet) values).GetScalar(0) * _timeStepLength; + } + else + { + throw new Exception("Failed to recognize ElementSetID in method SetValues"); + } + } + + public string GetComponentID() + { + return "Test River Model Component ID"; + } + + public void Finish() + { + _finishMethodWasInvoked = true; + } + + public ITime GetCurrentTime() + { + double t = Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(_simulationStart); + t += _currentTimeStepNumber * _timeStepLength / (24.0*3600.0); + Oatc.OpenMI.Sdk.Backbone.TimeSpan currentTime = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(t - _timeStepLength / (24.0*3600.0)),new TimeStamp(t)); + return currentTime; + } + + public IValueSet GetValues(string QuantityID, string ElementSetID) + { + char[] separator = new char[]{':'}; + double[] x; + + if(ElementSetID.Split(separator)[0] == "Branch") + { + x = new double[1]; + int branchIndex = Convert.ToInt32(ElementSetID.Split(separator)[1]); + if (QuantityID == "Flow") + { + x[0] = _flow[branchIndex]; + } + else if (QuantityID == "Leakage") + { + x[0] = _leakage[branchIndex]; + } + else + { + throw new Exception("Quanity ID not recognized in GetValues method"); + } + + } + else if(ElementSetID.Split(separator)[0] == "WholeRiver") + { + x = new double[_leakage.Length]; + for (int i = 0; i < _leakage.Length; i++) + { + x[i] = _leakage[i]; + } + } + else + { + throw new Exception("Failed to recognize ElementSetID in method GetValues"); + } + + ScalarSet scalarSet = new ScalarSet(x); + return scalarSet; + } + + public void Dispose() + { + _disposeMethodWasInvoked = true; + } + + public string GetComponentDescription() + { + return "Test River model component description"; + } + + public ITimeStamp GetEarliestNeededTime() + { + return (ITimeStamp) ((ITimeSpan)GetCurrentTime()).Start; + } + + public void Initialize(System.Collections.Hashtable properties) + { + + if (properties.ContainsKey("ModelID")) + { + _modelID = (string) properties["ModelID"]; + } + + if (properties.ContainsKey("TimeStepLength")) + { + _timeStepLength = Convert.ToDouble((string) properties["TimeStepLength"]); + } + + // -- create a flow quanitity -- + Dimension flowDimension = new Dimension(); + flowDimension.SetPower(DimensionBase.Length,3); + flowDimension.SetPower(DimensionBase.Time,-1); + Unit literPrSecUnit = new Unit("LiterPrSecond",0.001,0,"Liters pr Second"); + Quantity flowQuantity = new Quantity(literPrSecUnit,"Flow","Flow",global::OpenMI.Standard.ValueType.Scalar,flowDimension); + + // -- create leakage quantity -- + Quantity leakageQuantity = new Quantity(literPrSecUnit,"Leakage","Leakage",global::OpenMI.Standard.ValueType.Scalar,flowDimension); + + // -- create and populate elementset to represente the whole river network -- + ElementSet fullRiverElementSet = new ElementSet("WholeRiver","WholeRiver",ElementType.XYPolyLine,new SpatialReference("no reference")); + for (int i = 0; i < _numberOfNodes -1; i++) + { + Element element = new Element(); + element.ID = "Branch:" + i.ToString(); + element.AddVertex(new Vertex(_xCoordinate[i],_yCoordinate[i],-999)); + element.AddVertex(new Vertex(_xCoordinate[i+1],_yCoordinate[i+1],-999)); + fullRiverElementSet.AddElement(element); + } + + // --- populate input exchange items for flow to individual nodes --- + for ( int i = 0; i < _numberOfNodes; i++) + { + Element element = new Element(); + element.ID = "Node:" + i.ToString(); + ElementSet elementSet = new ElementSet("Individual nodes","Node:" + i.ToString(), ElementType.IDBased,new SpatialReference("no reference")); + elementSet.AddElement(element); + InputExchangeItem inputExchangeItem = new InputExchangeItem(); + inputExchangeItem.ElementSet = elementSet; + inputExchangeItem.Quantity = flowQuantity; + + _inputExchangeItems.Add(inputExchangeItem); + } + + // --- Populate input exchange item for flow to the whole georeferenced river --- + InputExchangeItem wholeRiverInputExchangeItem = new InputExchangeItem(); + wholeRiverInputExchangeItem.ElementSet = fullRiverElementSet; + wholeRiverInputExchangeItem.Quantity = flowQuantity; + _inputExchangeItems.Add(wholeRiverInputExchangeItem); + + // --- Populate output exchange items for flow in river branches --- + for (int i = 0; i < _numberOfNodes - 1; i++) + { + Element element = new Element(); + element.ID = "Branch:" + i.ToString(); + ElementSet elementSet = new ElementSet("Individual nodes","Branch:" + i.ToString(),ElementType.IDBased,new SpatialReference("no reference")); + elementSet.AddElement(element); + OutputExchangeItem outputExchangeItem = new OutputExchangeItem(); + outputExchangeItem.ElementSet = elementSet; + outputExchangeItem.Quantity = flowQuantity; + + _outputExchangeItems.Add(outputExchangeItem); + } + + // --- polulate output exchange items for leakage for individual branches -- + for (int i = 0; i < _numberOfNodes - 1; i++) + { + Element element = new Element(); + element.ID = "Branch:" + i.ToString(); + ElementSet elementSet = new ElementSet("Individual nodes","Branch:" + i.ToString(),ElementType.IDBased,new SpatialReference("no reference")); + elementSet.AddElement(element); + OutputExchangeItem outputExchangeItem = new OutputExchangeItem(); + outputExchangeItem.ElementSet = elementSet; + outputExchangeItem.Quantity = leakageQuantity; + _outputExchangeItems.Add(outputExchangeItem); + } + + // --- Populate output exchange item for leakage from the whole georeferenced river --- + OutputExchangeItem wholeRiverOutputExchangeItem = new OutputExchangeItem(); + wholeRiverOutputExchangeItem.ElementSet = fullRiverElementSet; + wholeRiverOutputExchangeItem.Quantity = leakageQuantity; + _outputExchangeItems.Add(wholeRiverOutputExchangeItem); + + // --- populate with initial state variables --- + for (int i = 0; i < _numberOfNodes -1; i++) + { + _flow[i] = 7; + } + + _currentTimeStepNumber = 1; + _initializeMethodWasInvoked = true; + } + + public bool PerformTimeStep() + { + + for (int i = 0; i < _numberOfNodes; i++) + { + _storage[i] += _runoff * _timeStepLength; + } + + for (int i = 0; i < _numberOfNodes -1; i++) + { + _flow[i] = 0.5 * _storage[i] / _timeStepLength; + _leakage[i] = _flow[i]; + _storage[i+1] += 0.5* _storage[i]; + } + + for (int i = 0; i < _numberOfNodes; i++) + { + _storage[i] = 0; + } + + _currentTimeStepNumber++; + + // -- debug output writing ---- +// string outstring; +// outstring = "TsNo:" + _currentTimeStepNumber.ToString() + " "; +// outstring += Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.ModifiedJulian2Gregorian(((ITimeSpan)GetCurrentTime()).Start.ModifiedJulianDay).ToString() + " - "; +// outstring += Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.ModifiedJulian2Gregorian(((ITimeSpan)GetCurrentTime()).End.ModifiedJulianDay).ToString() + " - "; +// for (int n = 0; n < _numberOfNodes -1; n++) +// { +// outstring += " F" + n.ToString() + ": " + _flow[n].ToString(); +// +// } +// +// System.Console.WriteLine(outstring); + + + // ---------------------------- + + return true; + } + + public double GetMissingValueDefinition() + { + return -999; + } + + public ITime GetInputTime(string QuantityID, string ElementSetID) + { + Oatc.OpenMI.Sdk.Backbone.TimeStamp inputStart = new TimeStamp(((ITimeSpan)GetCurrentTime()).End.ModifiedJulianDay); + Oatc.OpenMI.Sdk.Backbone.TimeStamp inputEnd = new TimeStamp(((ITimeSpan) GetCurrentTime()).End.ModifiedJulianDay + _timeStepLength/(24.0 * 3600.0)); + return new Oatc.OpenMI.Sdk.Backbone.TimeSpan(inputStart, inputEnd); + + } + + #endregion + + #region IManageState Members + + public string KeepCurrentState() + { + _stateIdCreator++; + + string stateID = "state:" + _stateIdCreator.ToString(); + _states.Add(new RiverModelState(stateID, this._currentTimeStepNumber)); + + return stateID; + } + + public void RestoreState(string stateID) + { + int index = -999; + + for (int i = 0; i < _states.Count; i++) + { + if (((RiverModelState)_states[i]).StateId == stateID) + { + index = i; + } + } + + if (index < 0) + { + throw new Exception("Failed to find stateID in RestoreState method"); + } + else + { + _currentTimeStepNumber = ((RiverModelState)_states[index]).TimeStepNumber; + } + } + + public void ClearState(string stateID) + { + int index = -999; + + for (int i = 0; i < _states.Count; i++) + { + if (((RiverModelState)_states[i]).StateId == stateID) + { + index = i; + } + } + + if (index < 0) + { + throw new Exception("Failed to find stateID in RemoveState method"); + } + else + { + _states.RemoveAt(index); + } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/RiverModelLC.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/RiverModelLC.cs new file mode 100644 index 00000000..94403f07 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/RiverModelLC.cs @@ -0,0 +1,116 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for RiverModelLC. + /// + public class RiverModelLC : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine, IManageState + { + + public RiverModelEngine _riverModelEngine; + public int _maxBufferSize; + + public RiverModelLC() + { + _riverModelEngine = new RiverModelEngine(); + _maxBufferSize = 0; + } + + public override IValueSet GetValues(ITime time, string linkID) + { + int timesCount = ((SmartOutputLink)this.SmartOutputLinks[0]).SmartBuffer.TimesCount; + if (timesCount > _maxBufferSize) + { + _maxBufferSize = timesCount; + } + + return base.GetValues(time, linkID); + + } + + protected override void SetEngineApiAccess() + { + _engineApiAccess = _riverModelEngine; + } + + // used for testing only + public bool PrepareForCompotationWasInvoked + { + get + { + return (this._prepareForCompotationWasInvoked); + } + } + + // used for testing only + public ArrayList SmartInputLinks + { + get + { + return (this._smartInputLinks); + } + } + + // used for testing only + public ArrayList SmartOutputLinks + { + get + { + return (this._smartOutputLinks); + } + } + + // used for testing only + public ArrayList ValidationErrorMessages + { + get + { + return (this._validationErrorMessages); + } + } + + // used for testing only + public ArrayList ValidationWarningMessages + { + get + { + return (this._validationWarningMessages ); + } + } + } + + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/RiverModelState.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/RiverModelState.cs new file mode 100644 index 00000000..a87eada0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/RiverModelState.cs @@ -0,0 +1,63 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for RiverModelState. + /// + public class RiverModelState + { + string _stateID; + int _timeStepNumber; + + public RiverModelState(string stateID, int timeStepNumber) + { + _stateID = stateID; + _timeStepNumber = timeStepNumber; + } + + public int TimeStepNumber + { + get + { + return (this._timeStepNumber); + } + } + + public string StateId + { + get + { + return (this._stateID); + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/TestEngine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/TestEngine.cs new file mode 100644 index 00000000..fdabcc98 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/TestEngine.cs @@ -0,0 +1,213 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for TestEngine. + /// + public class TestEngine : Oatc.OpenMI.Sdk.Wrapper.IEngine + { + InputExchangeItem _inputExchangeItem; + OutputExchangeItem _outputExchangeItem; + double[] _values; + double _startTime; + double _currentTime; + double _initialValue; + double _dt; //time step length [days] + double _dx; //values are incremented by _dx in each time step + string _modelID; //used for debugging in ordet see the difference between two instances of TestEngineLC + + public TestEngine() + { + _modelID = "TestEngineComponentID"; + + } + #region IEngine Members + + public InputExchangeItem GetInputExchangeItem(int exchangeItemIndex) + { + return _inputExchangeItem; + } + + public ITimeSpan GetTimeHorizon() + { + return new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(_startTime),new TimeStamp(_startTime + 100.0)); + } + + public string GetModelID() + { + return _modelID; + } + + public int GetInputExchangeItemCount() + { + return 1; + } + + public OutputExchangeItem GetOutputExchangeItem(int exchangeItemIndex) + { + return _outputExchangeItem; + } + + public string GetModelDescription() + { + return "TestModelDescription"; + } + + public int GetOutputExchangeItemCount() + { + return 1; + } + + #endregion + + #region IRunEngine Members + + public void SetValues(string QuantityID, string ElementSetID, IValueSet values) + { + for (int i = 0; i < _values.Length; i++) + { + _values[i] = ((ScalarSet)values).GetScalar(0); + } + } + + public string GetComponentID() + { + return "testEngineCompoentID"; + } + + public void Finish() + { + + } + + public ITime GetCurrentTime() + { + return new TimeStamp(_currentTime); + } + + public IValueSet GetValues(string QuantityID, string ElementSetID) + { + return new ScalarSet(_values); + } + + public void Dispose() + { + + } + + public string GetComponentDescription() + { + return "TestEngineComponentDescription"; + } + + public ITimeStamp GetEarliestNeededTime() + { + return new TimeStamp(_currentTime); + } + + public void Initialize(System.Collections.Hashtable properties) + { + + _dt = 1.0; + _dx = 0.0; + _initialValue = 100; + + if (properties.ContainsKey("modelID")) + { + _modelID = (string) properties["ModelID"]; + } + + if (properties.ContainsKey("dt")) + { + _dt = (double) properties["dt"]; + } + + if (properties.ContainsKey("dx")) + { + _dx = (double) properties["dx"]; + } + + _values = new double[3]; + + for (int i = 0; i < _values.Length; i++) + { + _values[i] = _initialValue; + } + + _startTime = 4000; + _currentTime = _startTime; + + Element element = new Element("ElementID"); + ElementSet elementSet = new ElementSet("Description","ID",ElementType.IDBased,new SpatialReference(" no ")); + elementSet.AddElement(element); + Quantity quantity = new Quantity(new Unit("Flow",1,0,"flow"),"Flow","ID",global::OpenMI.Standard.ValueType.Scalar,new Dimension()); + + _outputExchangeItem = new OutputExchangeItem(); + _inputExchangeItem = new InputExchangeItem(); + + _outputExchangeItem.Quantity = quantity; + _outputExchangeItem.ElementSet = elementSet; + + _inputExchangeItem.Quantity = quantity; + _inputExchangeItem.ElementSet = elementSet; + } + + public bool PerformTimeStep() + { + for (int i = 0; i < _values.Length; i++) + { + _values[i] += _dx; + } + + _currentTime += _dt; + + + return true; + } + + public double GetMissingValueDefinition() + { + return -999.0; + } + + public ITime GetInputTime(string QuantityID, string ElementSetID) + { + return new TimeStamp(_currentTime); + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/TestEngineLC.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/TestEngineLC.cs new file mode 100644 index 00000000..24acdbd7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/TestEngineLC.cs @@ -0,0 +1,67 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for TestEngineLC. + /// + public class TestEngineLC : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + protected override void SetEngineApiAccess() + { + _engineApiAccess = new TestEngine(); + } + + // used for testing only + public ArrayList SmartInputLinks + { + get + { + return (this._smartInputLinks); + } + } + + // used for testing only + public ArrayList SmartOutputLinks + { + get + { + return (this._smartOutputLinks); + } + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/TimeSeriesComponent.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/TimeSeriesComponent.cs new file mode 100644 index 00000000..ad396a82 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/TimeSeriesComponent.cs @@ -0,0 +1,171 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Buffer; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for TimeSeriesComponent. + /// + public class TimeSeriesComponent : Oatc.OpenMI.Sdk.Backbone.LinkableComponent + { + Oatc.OpenMI.Sdk.Buffer.SmartBuffer buffer = new SmartBuffer(); + + public TimeSeriesComponent() + { + // + // TODO: Add constructor logic here + // + } + + public override IOutputExchangeItem GetOutputExchangeItem(int outputExchangeItemIndex) + { + Quantity quantity = new Quantity(new Unit("literprSecond",0.001,0,"lprsec"),"flow","flow", global::OpenMI.Standard.ValueType.Scalar,new Dimension()); + ElementSet elementSet = new ElementSet("oo","ID",ElementType.IDBased,new SpatialReference("no")); + Element element = new Element("ElementID"); + elementSet.AddElement(element); + OutputExchangeItem outputExchangeItem = new OutputExchangeItem(); + outputExchangeItem.ElementSet = elementSet; + outputExchangeItem.Quantity = quantity; + + return outputExchangeItem; + } + + public override IValueSet GetValues(ITime time, string LinkID) + { + return buffer.GetValues(time); + } + + public override string ComponentDescription + { + get + { + return "ComponentDescription"; + } + } + + public override string ComponentID + { + get + { + return "TimeSeriesComponentID"; + } + } + + public override ITimeStamp EarliestInputTime + { + get + { + return null; + } + } + + public override int InputExchangeItemCount + { + get + { + return 0; + } + } + + public override string ModelDescription + { + get + { + return "TimeSeriesCompnent used for testing"; + } + } + + public override string ModelID + { + get + { + return "TimeSeriesComponentID"; + } + } + + public override int OutputExchangeItemCount + { + get + { + return 1; + } + } + + public override ITimeSpan TimeHorizon + { + get + { + TimeStamp start = new TimeStamp( ((ITimeSpan)(buffer.GetTimeAt(0))).Start ); + TimeStamp end = new TimeStamp( ((ITimeSpan)(buffer.GetTimeAt(buffer.TimesCount - 1))).End); + return new Oatc.OpenMI.Sdk.Backbone.TimeSpan(start, end); + } + } + + public override EventType GetPublishedEventType(int providedEventTypeIndex) + { + return EventType.Other; + } + + public override int GetPublishedEventTypeCount() + { + return 0; + } + + public override void Initialize(IArgument[] properties) + { + double start = CalendarConverter.Gregorian2ModifiedJulian(new DateTime(2004,12,31,0,0,0)); + + for (int i = 0; i < 30; i++) + { + buffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(start + i),new TimeStamp(start + i + 1)), new ScalarSet(new double[] {(double)i})); + } + } + + public override string Validate() + { + return null; + } + + public override void Finish() + { + + } + + public override void Prepare() + { + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/TimeSeriesComponentTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/TimeSeriesComponentTest.cs new file mode 100644 index 00000000..e53b59ac --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/TimeSeriesComponentTest.cs @@ -0,0 +1,97 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.IO; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Buffer; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for TimeSeriesComponentTest. + /// + [TestFixture] + public class TimeSeriesComponentTest + { + [Test] + public void ComponentID() + { + TimeSeriesComponent ts = new TimeSeriesComponent(); + Assert.AreEqual("TimeSeriesComponentID",ts.ComponentID); + } + + [Test] + public void GetValues() + { + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + TimeSeriesComponent ts = new TimeSeriesComponent(); + + ts.Initialize(new Argument[0]); + Link triggerLink = new Link(); + + triggerLink.ID = "TriggerLink"; + triggerLink.SourceComponent = ts; + triggerLink.SourceElementSet = ts.GetOutputExchangeItem(0).ElementSet; + triggerLink.SourceQuantity = ts.GetOutputExchangeItem(0).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + trigger.AddLink(triggerLink); + ts.AddLink(triggerLink); + + double tt = ts.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[4]; + triggerTimes[0] = new TimeStamp(tt + 0.5); + triggerTimes[1] = new TimeStamp(tt + 1.5); + triggerTimes[2] = new TimeStamp(tt + 1.9); + triggerTimes[3] = new TimeStamp(tt + 2.1); + + trigger.Run(triggerTimes); + Assert.AreEqual(0,((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(1,((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0)); + Assert.AreEqual(1,((IScalarSet)trigger.ResultsBuffer.GetValuesAt(2)).GetScalar(0)); + Assert.AreEqual(2,((IScalarSet)trigger.ResultsBuffer.GetValuesAt(3)).GetScalar(0)); + + //Teting with timespans + Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt+2),new TimeStamp(tt + 2.0 + 1.0/24.0)),"TriggerLink")).GetScalar(0)); + Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 1.0/24.0),new TimeStamp(tt + 2.0 + 2.0/24.0)),"TriggerLink")).GetScalar(0)); + Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 2.0/24.0),new TimeStamp(tt + 2.0 + 3.0/24.0)),"TriggerLink")).GetScalar(0)); + Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 5.0/24.0),new TimeStamp(tt + 2.0 + 6.0/24.0)),"TriggerLink")).GetScalar(0)); + Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 15.0/24.0),new TimeStamp(tt + 2.0 + 16.0/24.0)),"TriggerLink")).GetScalar(0)); + Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 23.0/24.0),new TimeStamp(tt + 2.0 + 24.0/24.0)),"TriggerLink")).GetScalar(0)); + Assert.AreEqual(3.0,((ScalarSet) ts.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 3.0 ),new TimeStamp(tt + 3.0 + 1.0/24.0)),"TriggerLink")).GetScalar(0)); + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/Trigger.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/Trigger.cs new file mode 100644 index 00000000..486389a5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Backup/Wrapper/UnitTest/Trigger.cs @@ -0,0 +1,263 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Buffer; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for Trigger. + /// + public class Trigger : ILinkableComponent + { + private ILink _link; + private Oatc.OpenMI.Sdk.Buffer.SmartBuffer _resultsBuffer; + private TimeStamp _earliestInputTime; + + public Trigger() + { + _resultsBuffer = new SmartBuffer(); + _earliestInputTime = new TimeStamp(0); + } + + public SmartBuffer ResultsBuffer + { + get + { + return _resultsBuffer; + } + } + + public void Finish() + { + } + + public ITimeStamp EarliestInputTime + { + get + { + return _earliestInputTime; + } + } + + public void AddLink(ILink link) + { + _link = link; + } + + public void Dispose() + { + // TODO: Add Trigger.Dispose implementation + } + + public IValueSet GetValues(ITime time, string linkID) + { + // TODO: Add Trigger.GetValues implementation + return null; + } + + public string ComponentDescription + { + get + { + // TODO: Add Trigger.Description getter implementation + return null; + } + } + + + public string ComponentID + { + get + { + // TODO: Add Trigger.ID getter implementation + return null; + } + } + + + public void Initialize(IArgument[] properties) + { + // TODO: Add Trigger.Initialize implementation + } + + public string ModelID + { + get + { + // TODO: Add Trigger.ID getter implementation + return "Trigger"; + } + } + + public string ModelDescription + { + get + { + // TODO: Add Trigger.ID getter implementation + return null; + } + } + + + public void Prepare() + { + // TODO: Add Trigger.PrepareForComputation implementation + } + + public void RemoveLink(string linkID) + { + // TODO: Add Trigger.RemoveLink implementation + } + + public int InputExchangeItemCount + { + get + { + return 1; + } + } + + public int OutputExchangeItemCount + { + get + { + return 0; + } + } + + public IInputExchangeItem GetInputExchangeItem(int index) + { + + // -- create a flow quanitity -- + Dimension flowDimension = new Dimension(); + flowDimension.SetPower(DimensionBase.Length,3); + flowDimension.SetPower(DimensionBase.Time,-1); + Unit literPrSecUnit = new Unit("LiterPrSecond",0.001,0,"Liters pr Second"); + Quantity flowQuantity = new Quantity(literPrSecUnit,"Flow","Flow",global::OpenMI.Standard.ValueType.Scalar,flowDimension); + + Element element = new Element(); + element.ID = "DummyElement"; + ElementSet elementSet = new ElementSet("Dummy ElementSet","DummyElementSet",ElementType.IDBased,new SpatialReference("no reference")); + elementSet.AddElement(element); + + InputExchangeItem inputExchangeItem = new InputExchangeItem(); + inputExchangeItem.ElementSet = elementSet; + inputExchangeItem.Quantity = flowQuantity; + + return inputExchangeItem; + } + + + public IOutputExchangeItem GetOutputExchangeItem(int index) + { + + return null; + + + } + + public ITimeSpan TimeHorizon + { + get + { + return null; + } + } + + public string Validate() + { + //TODO: Inplement this method correctly + return ""; + } + + public void Run(ITime[] GetValuesTimes) + { + for (int i = 0; i < GetValuesTimes.Length; i++) + { + _resultsBuffer.AddValues(GetValuesTimes[i],(IScalarSet) _link.SourceComponent.GetValues(GetValuesTimes[i],_link.ID)); + _earliestInputTime.ModifiedJulianDay = ((ITimeStamp) GetValuesTimes[i]).ModifiedJulianDay; + } + } + + public void Run(ITimeStamp time) + { + //IScalarSet scalarSet = new ScalarSet(); + + ScalarSet scalarSet = new ScalarSet((IScalarSet) _link.SourceComponent.GetValues(time,_link.ID)); + _earliestInputTime.ModifiedJulianDay = time.ModifiedJulianDay; + _resultsBuffer.AddValues(time,scalarSet); + } + + public int GetResultsCount() + { + return _resultsBuffer.ValuesCount; + } + + public double GetResult(int index) + { + return ((ScalarSet)_resultsBuffer.GetValuesAt(_resultsBuffer.TimesCount - 1)).GetScalar(index); + } + + + #region IPublisher Members + + public void SendEvent(IEvent Event) + { + // TODO: Add Trigger.SendEvent implementation + } + + public void UnSubscribe(IListener listener, EventType eventType) + { + // TODO: Add Trigger.UnSubscribe implementation + } + + public EventType GetPublishedEventType(int providedEventTypeIndex) + { + // TODO: Add Trigger.GetPublishedEventType implementation + return EventType.Informative; + } + + public void Subscribe(IListener listener, EventType eventType) + { + // TODO: Add Trigger.Subscribe implementation + } + + public int GetPublishedEventTypeCount() + { + // TODO: Add Trigger.GetPublishedEventTypeCount implementation + return 0; + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/AssemblyInfo.cs new file mode 100644 index 00000000..4a9c8214 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Utilities Buffer Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4")] +[assembly: AssemblyCopyright("BSD License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/Oatc.OpenMI.Sdk.Buffer.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/Oatc.OpenMI.Sdk.Buffer.csproj new file mode 100644 index 00000000..a2418de0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/Oatc.OpenMI.Sdk.Buffer.csproj @@ -0,0 +1,152 @@ + + + + Local + 8.0.50727 + 2.0 + {C9844E74-074D-46FA-AEF6-371B3481468B} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Buffer + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Buffer + OnBuildSuccess + + + + + + + false + 3.5 + v4.0 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + ..\..\..\..\..\..\..\Binaries\Plugins\HydroModeler\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ..\..\ + false + 285212672 + false + + + TRACE + bin\Release\Oatc.OpenMI.Sdk.Buffer.XML + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + False + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + False + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/ReadMe.txt b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/ReadMe.txt new file mode 100644 index 00000000..a49bbdb0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/ReadMe.txt @@ -0,0 +1 @@ +Default HarmonIT ReadMe file \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/SmartBuffer.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/SmartBuffer.cs new file mode 100644 index 00000000..d59a08e4 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/SmartBuffer.cs @@ -0,0 +1,1306 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Buffer +{ + /// + /// The SmartBuffer class provides bufferig functionality that will store values needed for a + /// particular link in memory and functionality that will interpolate, extrapolate and aggregate + /// values from these values. + /// + [Serializable] + public class SmartBuffer + { + ArrayList _times; + ArrayList _values; + double _relaxationFactor; //Used for the extrapolation algorithm see also RelaxationFactor property + bool _doExtendedDataVerification; + + /// + /// Short description of the SmartBuffer + /// + /// + ///The content of the SmartBuffer is lists of corresponding times and ValueSets, + ///where times can be TimeStamps or TimeSpans and the ValueSets can be ScalarSets or VectorSets. + ///Or in other words the content of the SmartBuffer is corresponding ScalarSets and TimeStamps, or ScalarSets and TimeSpans, or VectorSets and TimeStamps, or VectorSets and TimeSpans. + /// + ///SmartBuffer objects may not contain mixtures of TimeSpans and TimeStamps and may not contain mixtures of ScalarSets and VectorSets. + ///The number of Times (TimeSpans or TimeStamps) must equal the number of ValueSets ( ScalarSets or VectorSets) in the SmartBuffer. + /// + public SmartBuffer() + { + Create(); + } + + /// + /// Create a new SmartBuffer with values and times copied from another SmartBuffer + /// + /// The SmartBuffer to copy + public SmartBuffer(SmartBuffer smartBuffer) + { + Create(); + + if (smartBuffer.TimesCount > 0) + { + if (smartBuffer.GetTimeAt(0) is ITimeStamp && smartBuffer.GetValuesAt(0) is IScalarSet) + { + for (int i = 0; i < smartBuffer.TimesCount; i++) + { + AddValues(new TimeStamp((ITimeStamp) smartBuffer.GetTimeAt(i)),new ScalarSet((IScalarSet) smartBuffer.GetValuesAt(i))); + } + } + + if (smartBuffer.GetTimeAt(0) is ITimeStamp && smartBuffer.GetValuesAt(0) is IVectorSet) + { + for (int i = 0; i < smartBuffer.TimesCount; i++) + { + AddValues(new TimeStamp((ITimeStamp)smartBuffer.GetTimeAt(i)),new VectorSet((IVectorSet)smartBuffer.GetValuesAt(i))); + } + } + + if (smartBuffer.GetTimeAt(0) is ITimeSpan && smartBuffer.GetValuesAt(0) is IScalarSet) + { + for (int i = 0; i < smartBuffer.TimesCount; i++) + { + AddValues(new Backbone.TimeSpan((ITimeSpan)smartBuffer.GetTimeAt(i)),new ScalarSet((IScalarSet)smartBuffer.GetValuesAt(i))); + } + } + + if (smartBuffer.GetTimeAt(0) is ITimeSpan && smartBuffer.GetValuesAt(0) is IVectorSet) + { + for (int i = 0; i < smartBuffer.TimesCount; i++) + { + AddValues(new Backbone.TimeSpan((ITimeSpan)smartBuffer.GetTimeAt(i)),new VectorSet((IVectorSet)smartBuffer.GetValuesAt(i))); + } + } + + + } + + } + + private void Create() + { + _times = new ArrayList(); + _values = new ArrayList(); + _doExtendedDataVerification = true; + _relaxationFactor = 1.0; + } + + /// + /// Add corresponding values for time and values to the SmartBuffer. + /// + /// Description of the time parameter + /// Description of the values parameter + /// + /// The AddValues method will internally make a copy of the added times and values. The reason for + /// doing this is that the times and values arguments are references, and the correspondign values + /// could be changed by the owner of the classes + /// + public void AddValues(ITime time, IValueSet valueSet) + { + if (time is ITimeStamp) + { + _times.Add(new TimeStamp( ((ITimeStamp) time).ModifiedJulianDay )); + } + else if(time is ITimeSpan) + { + TimeStamp newStartTime = new TimeStamp(((ITimeSpan) time).Start.ModifiedJulianDay); + TimeStamp newEndTime = new TimeStamp(((ITimeSpan) time).End.ModifiedJulianDay); + + Backbone.TimeSpan newTimeSpan = new Backbone.TimeSpan(newStartTime, newEndTime); + _times.Add(newTimeSpan); + } + else + { + throw new Exception("Invalid datatype used for time argument in method AddValues"); + } + + if (valueSet is IScalarSet) + { + double[] x = new double[(valueSet).Count]; + for (int i = 0; i < x.Length; i++) + { + x[i] = ((IScalarSet) valueSet).GetScalar(i); + } + + ScalarSet newScalarSet = new ScalarSet(x); + + if (valueSet is ScalarSet) + { + newScalarSet.MissingValueDefinition = + ((ScalarSet)valueSet).MissingValueDefinition; + newScalarSet.CompareDoublesEpsilon = + ((ScalarSet)valueSet).CompareDoublesEpsilon; + } + + _values.Add(newScalarSet); + } + else if (valueSet is IVectorSet) + { + Vector[] vectors = new Vector[valueSet.Count]; + for (int i = 0; i < vectors.Length; i++) + { + vectors[i] = new Vector(((IVectorSet) valueSet).GetVector(i).XComponent, ((IVectorSet) valueSet).GetVector(i).YComponent, ((IVectorSet) valueSet).GetVector(i).ZComponent); + } + VectorSet newVectorSet = new VectorSet(vectors); + _values.Add(newVectorSet); + } + else + { + throw new Exception("Invalid datatype used for values argument in method AddValues"); + } + + if (_doExtendedDataVerification) + { + CheckBuffer(); + } + } + + /// + /// RelaxationFactor. The relaxation factor must be in the interval [0; 1]. The relaxation + /// parameter is used when doing extrapolation. A value of 1 results in nearest extrapolation + /// whereas a value 0 results in linear extrapolation. + /// + public double RelaxationFactor + { + get + { + return _relaxationFactor; + } + set + { + _relaxationFactor = value; + if (_relaxationFactor < 0 || _relaxationFactor > 1) + { + throw new Exception("ReleaxationFactor is out of range"); + } + } + } + + /// + /// Returns the timeStepth ITime. + /// + /// time step index + /// The timeStepth ITime + public ITime GetTimeAt(int timeStep) + { + if (_doExtendedDataVerification) + { + CheckBuffer(); + } + return (ITime) _times[timeStep]; + } + + //=============================================================================================== + // GetValuesAt(int timeStep) : IValueSet + //=============================================================================================== + /// + /// Returns the timeStepth IValueSet + /// + /// time step index + /// The timeStepth IValueSet + public IValueSet GetValuesAt(int timeStep) + { + if (_doExtendedDataVerification) + { + CheckBuffer(); + } + return (IValueSet) _values[timeStep]; + } + + /// + /// Returns the ValueSet that corresponds to requestTime. The ValueSet may be found by + /// interpolation, extrapolation and/or aggregation. + /// + /// time for which the value is requested + /// valueSet that corresponds to requestTime + public IValueSet GetValues(ITime requestedTime) + { + if (_doExtendedDataVerification) + { + CheckTime(requestedTime); + CheckBuffer(); + } + IValueSet returnValueSet; + if (_values.Count == 0) + { + returnValueSet = new ScalarSet(); + } + else if (_values.Count == 1) + { + returnValueSet = MakeCopyOfValues(); + } + else if (requestedTime is ITimeStamp && _times[0] is ITimeStamp) + { + returnValueSet = MapFromTimeStampsToTimeStamp((ITimeStamp) requestedTime); + } + else if (requestedTime is ITimeSpan && _times[0] is ITimeSpan) + { + returnValueSet = MapFromTimeSpansToTimeSpan((ITimeSpan) requestedTime); + } + else if (requestedTime is ITimeSpan && _times[0] is ITimeStamp) + { + returnValueSet = MapFromTimeStampsToTimeSpan((ITimeSpan) requestedTime); + } + else if (requestedTime is ITimeStamp && _times[0] is ITimeSpan) + { + returnValueSet = MapFromTimeSpansToTimeStamp((ITimeStamp) requestedTime); + } + else + { + throw new Exception("Requested TimeMapping not available in SmartWrapper Class"); + } + return returnValueSet; + } + + /// + /// A ValueSet corresponding to a TimeSpan is calculated using interpolation or + /// extrapolation in corresponding lists of ValueSets and TimeSpans. + /// + /// Time for which the ValueSet is requested + /// ValueSet that corresponds to requestedTime + private IValueSet MapFromTimeSpansToTimeSpan(ITimeSpan requestedTime) + + { + try + { + int m = ((IValueSet)_values[0]).Count; + double[][] xr = new double[m][]; // Values to return + double trb = requestedTime.Start.ModifiedJulianDay; // Begin time in requester time interval + double tre = requestedTime.End.ModifiedJulianDay; // End time in requester time interval + + int nk; // number of components (scalars has only 1 and vectors has 3 (3 axis)) + + if (_values[0] is IVectorSet) + { + nk = 3; + } + else + { + nk = 1; + } + + for (int i = 0; i < m; i++) + { + xr[i] = new double[nk]; + } + + for (int i = 0; i < m; i++) + { + for (int k = 0; k < nk; k++) + { + xr[i][k] = 0; + } + } + + for (int n = 0; n < _times.Count; n++) + { + double tbbn = ((ITimeSpan) _times[n]).Start.ModifiedJulianDay; + double tben = ((ITimeSpan) _times[n]).End.ModifiedJulianDay; + + //--------------------------------------------------------------------------- + // B: <--------------------------> + // R: <-------------------------------------> + // -------------------------------------------------------------------------- + if (trb <= tbbn && tre >= tben ) //Buffered TimeSpan fully included in requested TimeSpan + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + double sbin = Support.GetVal((IValueSet)_values[n], i, k); + xr[i][k-1] += sbin * (tben - tbbn)/(tre - trb); + } + } + } + + //--------------------------------------------------------------------------- + // Times[i] Interval: t1|-----------------------|t2 + // Requested Interval: rt1|--------------|rt2 + // -------------------------------------------------------------------------- + else if (tbbn <= trb && tre <= tben) //cover all + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + xr[i][k-1] += Support.GetVal((IValueSet)_values[n], i, k); + } + } + } + + //--------------------------------------------------------------------------- + // Times[i] Interval: t1|-----------------|t2 + // Requested Interval: rt1|--------------|rt2 + // -------------------------------------------------------------------------- + else if (tbbn < trb && trb < tben && tre > tben) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + double sbin = Support.GetVal((IValueSet)_values[n], i, k); + xr[i][k-1] += sbin * (tben - trb)/(tre - trb); + } + } + } + + //--------------------------------------------------------------------------- + // Times[i] Interval: t1|-----------------|t2 + // Requested Interval: rt1|--------------|rt2 + // -------------------------------------------------------------------------- + else if (trb < tbbn && tre > tbbn && tre < tben) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + double sbin = Support.GetVal((IValueSet)_values[n], i, k); + xr[i][k-1] += sbin * (tre - tbbn)/(tre - trb); + } + } + } + } + + //-------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //--------------------------------------------------------------------------- + double tbb0 = ((ITimeSpan) _times[0]).Start.ModifiedJulianDay; + double tbe0 = ((ITimeSpan) _times[0]).End.ModifiedJulianDay; + //double tbb1 = ((ITimeSpan) _times[1]).Start.ModifiedJulianDay; + double tbe1 = ((ITimeSpan) _times[1]).End.ModifiedJulianDay; + + if (trb < tbb0 && tre > tbb0) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbi0 = Support.GetVal((IValueSet)_values[0], i, k); + double sbi1 = Support.GetVal((IValueSet)_values[1], i, k); + xr[i][k-1] += ((tbb0 - trb)/(tre - trb)) * (sbi0 - (1 - _relaxationFactor) * ((tbb0 - trb)*(sbi1 - sbi0)/(tbe1 - tbe0))); + } + } + } + + //------------------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //------------------------------------------------------------------------------------- + + double tbeN_1 = ((ITimeSpan) _times[_times.Count-1]).End.ModifiedJulianDay; + double tbbN_2 = ((ITimeSpan) _times[_times.Count-2]).Start.ModifiedJulianDay; + + if (tre > tbeN_1 && trb < tbeN_1) + { + //double tbeN_2 = ((ITimeSpan) _times[_times.Count-2]).End.ModifiedJulianDay; + double tbbN_1 = ((ITimeSpan) _times[_times.Count-1]).Start.ModifiedJulianDay; + + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbiN_1 = Support.GetVal((IValueSet)_values[_times.Count-1], i, k); + double sbiN_2 = Support.GetVal((IValueSet)_values[_times.Count-2], i,k); + xr[i][k-1] += ((tre - tbeN_1)/(tre - trb)) * (sbiN_1 + (1 - _relaxationFactor) * ((tre - tbbN_1)*(sbiN_1 - sbiN_2)/(tbeN_1 - tbbN_2))); + } + } + } + //------------------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //------------------------------------------------------------------------------------- + + if (trb >= tbeN_1) + { + double tbeN_2 = ((ITimeSpan) _times[_times.Count-2]).End.ModifiedJulianDay; + //double tbbN_1 = ((ITimeSpan) _times[_times.Count-1]).Start.ModifiedJulianDay; + + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbiN_1 = Support.GetVal((IValueSet)_values[_times.Count-1], i, k); + double sbiN_2 = Support.GetVal((IValueSet)_values[_times.Count-2], i, k); + xr[i][k-1] = sbiN_1 + (1 - _relaxationFactor) * ((sbiN_1 - sbiN_2)/(tbeN_1 - tbbN_2)) * (trb + tre - tbeN_1 - tbeN_2); + } + } + } + + //------------------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //------------------------------------------------------------------------------------- + + if (tre <= tbb0) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbi0 = Support.GetVal((IValueSet)_values[0], i, k); + double sbi1 = Support.GetVal((IValueSet)_values[1], i, k); + xr[i][k-1] = sbi0 - (1 - _relaxationFactor) * ((sbi1 - sbi0)/(tbe1- tbb0))*(tbe0 + tbb0 - tre - trb); + } + } + } + + //------------------------------------------------------------------------------------- + if (_values[0] is IVectorSet) + { + Vector [] vectors = new Vector[m]; + + for (int i = 0; i < m; i++) + { + vectors[i] = new Vector(xr[i][0],xr[i][1],xr[i][2]); + } + + VectorSet vectorSet = new VectorSet(vectors); + + return vectorSet; + } + else + { + double[] xx = new double[m]; + + for (int i = 0; i < m; i++) + { + xx[i] = xr[i][0]; + } + + ScalarSet scalarSet = new ScalarSet(xx); + + return scalarSet; + } + } + catch (Exception e) + { + throw new Exception("MapFromTimeSpansToTimeSpan Failed",e); + } + } + + /// + /// A ValueSet corresponding to a TimeSpan is calculated using interpolation or + /// extrapolation in corresponding lists of ValueSets and TimeStamps. + /// + /// Time for which the ValueSet is requested + /// ValueSet that corresponds to requestedTime + private IValueSet MapFromTimeStampsToTimeSpan(ITimeSpan requestedTime) + { + try + { + int m = ((IValueSet)_values[0]).Count; + //int N = _times.Count; // Number of time steps in buffer + double[][] xr = new double[m][]; // Values to return + double trb = requestedTime.Start.ModifiedJulianDay; // Begin time in requester time interval + double tre = requestedTime.End.ModifiedJulianDay; // End time in requester time interval + + int nk; // number of components (scalars has only 1 and vectors has 3 (3 axis)) + + if (_values[0] is IVectorSet) + { + nk = 3; + } + else + { + nk = 1; + } + + for (int i = 0; i < m; i++) + { + xr[i] = new double[nk]; + } + + for (int i = 0; i < m; i++) + { + for (int k = 0; k < nk; k++) + { + xr[i][k] = 0; + } + } + + + for (int n = 0; n < _times.Count-1; n++) + { + double tbn = ((ITimeStamp) _times[n]).ModifiedJulianDay; + double tbnp1 = ((ITimeStamp) _times[n+1]).ModifiedJulianDay; + + + //--------------------------------------------------------------------------- + // B: <--------------------------> + // R: <-------------------------------------> + // -------------------------------------------------------------------------- + if (trb <= tbn && tre >= tbnp1 ) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + double sbin = Support.GetVal((IValueSet)_values[n], i, k); + double sbinp1 = Support.GetVal((IValueSet)_values[n+1], i, k); + xr[i][k-1] += 0.5 * (sbin + sbinp1) * (tbnp1 - tbn)/(tre - trb); + } + } + } + + //--------------------------------------------------------------------------- + // Times[i] Interval: t1|-----------------------|t2 + // Requested Interval: rt1|--------------|rt2 + // -------------------------------------------------------------------------- + else if (tbn <= trb && tre <= tbnp1) //cover all + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + double sbin = Support.GetVal((IValueSet)_values[n], i, k); + double sbinp1 = Support.GetVal((IValueSet)_values[n+1], i, k); + xr[i][k-1] += sbin + ((sbinp1 - sbin)/(tbnp1 - tbn))*((tre + trb)/2 - tbn); + } + } + } + + //--------------------------------------------------------------------------- + // Times[i] Interval: t1|-----------------|t2 + // Requested Interval: rt1|--------------|rt2 + // -------------------------------------------------------------------------- + else if (tbn < trb && trb < tbnp1 && tre > tbnp1) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + double sbin = Support.GetVal((IValueSet)_values[n], i, k); + double sbinp1 = Support.GetVal((IValueSet)_values[n+1], i, k); + xr[i][k-1] += (sbinp1 - (sbinp1 - sbin)/(tbnp1 - tbn)*((tbnp1 - trb)/2))* (tbnp1 - trb)/(tre - trb); + } + } + } + + //--------------------------------------------------------------------------- + // Times[i] Interval: t1|-----------------|t2 + // Requested Interval: rt1|--------------|rt2 + // -------------------------------------------------------------------------- + else if (trb < tbn && tre > tbn && tre < tbnp1) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) // for all values coorsponding to the same time interval + { + double sbin = Support.GetVal((IValueSet)_values[n], i, k); + double sbinp1 = Support.GetVal((IValueSet)_values[n+1], i, k); + xr[i][k-1] += (sbin + (sbinp1 - sbin)/(tbnp1 - tbn)*((tre - tbn)/2)) * (tre - tbn)/(tre - trb); + } + } + } + } + //-------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //--------------------------------------------------------------------------- + double tb0 = ((ITimeStamp) _times[0]).ModifiedJulianDay; + //double tb1 = ((ITimeStamp) _times[0]).ModifiedJulianDay; + double tb1 = ((ITimeStamp) _times[1]).ModifiedJulianDay; // line above was corrected to this Gregersen Sep 15 2004 + double tbN_1 = ((ITimeStamp) _times[_times.Count-1]).ModifiedJulianDay; + double tbN_2 = ((ITimeStamp) _times[_times.Count-2]).ModifiedJulianDay; + + if (trb < tb0 && tre > tb0) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbi0 = Support.GetVal((IValueSet)_values[0], i, k); + double sbi1 = Support.GetVal((IValueSet)_values[1], i, k); + xr[i][k-1] += ((tb0 - trb)/(tre - trb)) * (sbi0 - (1 - _relaxationFactor) * 0.5 * ((tb0 - trb)*(sbi1 - sbi0)/(tb1 - tb0))); + } + } + } + //------------------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //------------------------------------------------------------------------------------- + if (tre > tbN_1 && trb < tbN_1) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbiN_1 = Support.GetVal((IValueSet)_values[_times.Count-1], i, k); + double sbiN_2 = Support.GetVal((IValueSet)_values[_times.Count-2], i, k); + xr[i][k-1] += ((tre - tbN_1)/(tre - trb)) * (sbiN_1 + (1 - _relaxationFactor) * 0.5 * ((tre - tbN_1)*(sbiN_1 - sbiN_2)/(tbN_1 - tbN_2))); + } + } + } + //------------------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //------------------------------------------------------------------------------------- + if (trb >= tbN_1) + { + + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbiN_1 = Support.GetVal((IValueSet)_values[_times.Count-1], i, k); + double sbiN_2 = Support.GetVal((IValueSet)_values[_times.Count-2], i, k); + + xr[i][k-1] = sbiN_1 + (1 - _relaxationFactor) * ((sbiN_1 - sbiN_2)/(tbN_1 - tbN_2)) * ( 0.5 * (trb + tre) - tbN_1); + } + } + } + //------------------------------------------------------------------------------------- + // |--------|---------|--------| B + // |----------------| R + //------------------------------------------------------------------------------------- + if (tre <= tb0) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) + { + double sbi0 = Support.GetVal((IValueSet)_values[0], i, k); + double sbi1 = Support.GetVal((IValueSet)_values[1], i, k); + xr[i][k-1] = sbi0 - (1 - _relaxationFactor) * ((sbi1 - sbi0)/(tb1- tb0))*(tb0 - 0.5 * (trb + tre)); + } + } + } + //------------------------------------------------------------------------------------- + if (_values[0] is IVectorSet) + { + Vector [] vectors = new Vector[m]; + + for (int i = 0; i < m; i++) + { + vectors[i] = new Vector(xr[i][0],xr[i][1],xr[i][2]); + } + + VectorSet vectorSet = new VectorSet(vectors); + + return vectorSet; + } + else + { + double[] xx = new double[m]; + + for (int i = 0; i < m; i++) + { + xx[i] = xr[i][0]; + } + + ScalarSet scalarSet = new ScalarSet(xx); + + return scalarSet; + } + } + catch (Exception e) + { + throw new Exception("MapFromTimeStampsToTimeSpan Failed",e); + } + } + + + /// + /// Makes a copy of the first ValueSet in the list of valueSets + /// + /// + private IValueSet MakeCopyOfValues() + { + + if (_values[0] is IScalarSet) + { + int NumberOfScalarsInEachScalarSet = ((IScalarSet) _values[0]).Count; + double[] x = new Double[NumberOfScalarsInEachScalarSet]; + for (int i = 0; i < NumberOfScalarsInEachScalarSet; i++) + { + x[i] = ((IScalarSet) _values[0]).GetScalar(i); + } + ScalarSet scalarSet = new ScalarSet(x); + return scalarSet; + } + + else // _values[0] is VectorSet + { + + int NumberOfVectorsInEachVectorSet = ((IVectorSet) _values[0]).Count; + + Vector[] vectors = new Vector[NumberOfVectorsInEachVectorSet]; + + for (int i = 0; i < NumberOfVectorsInEachVectorSet; i++) + { + Vector vector; + double x = ((IVectorSet)_values[0]).GetVector(i).XComponent; + double y = ((IVectorSet) _values[0]).GetVector(i).YComponent; + double z = ((IVectorSet) _values[0]).GetVector(i).ZComponent; + vector = new Vector(x, y, z); + vectors[i] = vector; + + } + VectorSet vectorSet = new VectorSet(vectors); + + return vectorSet; + } + } + + /// + /// A ValueSet corresponding to a TimeStamp is calculated using interpolation or + /// extrapolation in corresponding lists of ValueSets and TimeStamps. + /// + /// TimeStamp for which the values are requested + /// ValueSet that corresponds to the requested time stamp + private IValueSet MapFromTimeStampsToTimeStamp(ITimeStamp requestedTimeStamp) + { + try + { + int m = ((IValueSet)_values[0]).Count; + double[][] xr = new double[m][]; // Values to return + double tr = requestedTimeStamp.ModifiedJulianDay; // Requested TimeStamp + + int nk; // number of components (scalars has only 1 and vectors has 3 (3 axis)) + + if (_values[0] is IVectorSet) + { + nk = 3; + } + else + { + nk = 1; + } + + for (int i = 0; i < m; i++) + { + xr[i] = new double[nk]; + } + + //--------------------------------------------------------------------------- + // Buffered TimesStamps: | >tb0< >tb1< >tb2< >tbN< + // Requested TimeStamp: | >tr< + // -----------------------------------------> t + // -------------------------------------------------------------------------- + if (tr <= ((ITimeStamp)_times[0]).ModifiedJulianDay ) + { + double tb0 = ((ITimeStamp) _times[0]).ModifiedJulianDay; + double tb1 = ((ITimeStamp) _times[1]).ModifiedJulianDay; + + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m ; i++) //For each Vector in buffered VectorSet [0] + { + double sbi0 = Support.GetVal((IValueSet)_values[0], i, k); + double sbi1 = Support.GetVal((IValueSet)_values[1], i, k); + xr[i][k-1] = ((sbi0 - sbi1)/(tb0 - tb1))*(tr - tb0) * (1 - _relaxationFactor) + sbi0; + } + } + } + + //--------------------------------------------------------------------------- + // Buffered TimesStamps: | >tb0< >tb1< >tb2< >tbN_2< >tbN_1< + // Requested TimeStamp: | >tr< + // ---------------------------------------------------> t + // -------------------------------------------------------------------------- + else if (tr > ((ITimeStamp) _times[_times.Count - 1]).ModifiedJulianDay) + { + double tbN_2 = ((ITimeStamp) _times[_times.Count - 2]).ModifiedJulianDay; + double tbN_1 = ((ITimeStamp) _times[_times.Count - 1]).ModifiedJulianDay; + + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) //For each Vector in buffered VectorSet [N-1] + { + double sbiN_2 = Support.GetVal((IValueSet)_values[_times.Count-2], i, k); + double sbiN_1 = Support.GetVal((IValueSet)_values[_times.Count-1], i, k); + + xr[i][k-1] = ((sbiN_1 - sbiN_2)/(tbN_1 - tbN_2))*(tr - tbN_1)*(1 - _relaxationFactor) + sbiN_1; + } + } + } + + //--------------------------------------------------------------------------- + // Availeble TimesStamps: | >tb0< >tb1< >tbna< >tnb< >tbN_1< >tbN_2< + // Requested TimeStamp: | >tr< + // -------------------------------------------------> t + // -------------------------------------------------------------------------- + else + { + for (int n = _times.Count - 2; n >= 0 ; n--) + { + double tbn1 = ((ITimeStamp) _times[n]).ModifiedJulianDay; + double tbn2 = ((ITimeStamp) _times[n+1]).ModifiedJulianDay; + + if ( tbn1 <= tr && tr <= tbn2) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) //For each Vector in buffered VectorSet [n] + { + IValueSet valueSet_n = (IValueSet)_values[n]; + double sbin1 = Support.GetVal(valueSet_n, i, k); + + IValueSet valueSet_nPlus1 = (IValueSet)_values[n+1]; + double sbin2 = Support.GetVal(valueSet_nPlus1, i, k);; + + //BROKEN: + if ( valueSet_n.IsValid(i) && valueSet_nPlus1.IsValid(i)) + { + xr[i][k - 1] = ((sbin2 - sbin1) / (tbn2 - tbn1)) * (tr - tbn1) * (1 - _relaxationFactor) + sbin1; + } + else if ( valueSet_n.IsValid(i) ) + { + xr[i][k-1] = sbin1; + } + else if ( valueSet_nPlus1.IsValid(i) ) + { + xr[i][k-1] = sbin2; + } + else + { + // both invalid, set to one of the (==invalid) values + xr[i][k-1] = sbin1; + } + } + } + break; + } + } + } + //---------------------------------------------------------------------------------------------- + if (_values[0] is IVectorSet) + { + Vector [] vectors = new Vector[m]; + + for (int i = 0; i < m; i++) + { + vectors[i] = new Vector(xr[i][0],xr[i][1],xr[i][2]); + } + + VectorSet vectorSet = new VectorSet(vectors); + + return vectorSet; + } + else + { + double[] xx = new double[m]; + + for (int i = 0; i < m; i++) + { + xx[i] = xr[i][0]; + } + + ScalarSet scalarSet = new ScalarSet(xx); + + return scalarSet; + } + } + catch (Exception e) + { + throw new Exception("MapFromTimeStampsToTimeStamp Failed",e); + } + } + + /// + /// A ValueSet corresponding to a TimeSpan is calculated using interpolation or + /// extrapolation in corresponding lists of ValueSets and TimeSpans. + /// + /// Time for which the ValueSet is requested + /// ValueSet that corresponds to requestedTime + private IValueSet MapFromTimeSpansToTimeStamp(ITimeStamp requestedTimeStamp) + { + try + { + int m = ((IValueSet)_values[0]).Count; + double[][] xr = new double[m][]; // Values to return + double tr = requestedTimeStamp.ModifiedJulianDay; // Requested TimeStamp + + int nk; // number of components (scalars has only 1 and vectors has 3 (3 axis)) + + if (_values[0] is IVectorSet) + { + nk = 3; + } + else + { + nk = 1; + } + + for (int i = 0; i < m; i++) + { + xr[i] = new double[nk]; + } + + //--------------------------------------------------------------------------- + // Buffered TimesSpans: | >tbb0< .......... >tbbN< + // Requested TimeStamp: | >tr< + // -----------------------------------------> t + // -------------------------------------------------------------------------- + if (tr <= ((ITimeSpan)_times[0]).Start.ModifiedJulianDay ) + { + double tbb0 = ((ITimeSpan) _times[0]).Start.ModifiedJulianDay; + double tbb1 = ((ITimeSpan) _times[1]).Start.ModifiedJulianDay; + + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m ; i++) //For each Vector in buffered VectorSet [0] + { + double sbi0 = Support.GetVal((IValueSet)_values[0], i, k); + double sbi1 = Support.GetVal((IValueSet)_values[1], i, k); + xr[i][k-1] = ((sbi0 - sbi1)/(tbb0 - tbb1))*(tr - tbb0) * (1 - _relaxationFactor) + sbi0; + } + } + } + + //--------------------------------------------------------------------------- + // Buffered TimesSpans: | >tbb0< ................. >tbbN_1< + // Requested TimeStamp: | >tr< + // ---------------------------------------------------> t + // -------------------------------------------------------------------------- + else if (tr >= ((ITimeSpan) _times[_times.Count - 1]).End.ModifiedJulianDay) + { + double tbeN_2 = ((ITimeSpan) _times[_times.Count - 2]).End.ModifiedJulianDay; + double tbeN_1 = ((ITimeSpan) _times[_times.Count - 1]).End.ModifiedJulianDay; + + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) //For each Vector in buffered VectorSet [N-1] + { + double sbiN_2 = Support.GetVal((IValueSet)_values[_times.Count-2], i, k); + double sbiN_1 = Support.GetVal((IValueSet)_values[_times.Count-1], i, k); + + xr[i][k-1] = ((sbiN_1 - sbiN_2)/(tbeN_1 - tbeN_2))*(tr - tbeN_1)*(1 - _relaxationFactor) + sbiN_1; + } + } + } + + //--------------------------------------------------------------------------- + // Availeble TimesSpans: | >tbb0< ...................... >tbbN_1< + // Requested TimeStamp: | >tr< + // -------------------------------------------------> t + // -------------------------------------------------------------------------- + else + { + for (int n = _times.Count - 1; n >= 0 ; n--) + { + double tbbn = ((ITimeSpan) _times[n]).Start.ModifiedJulianDay; + double tben = ((ITimeSpan) _times[n]).End.ModifiedJulianDay; + + if ( tbbn <= tr && tr < tben) + { + for (int k = 1; k <= nk; k++) + { + for (int i = 0; i < m; i++) //For each Vector in buffered VectorSet [n] + { + xr[i][k-1] = Support.GetVal((IValueSet)_values[n], i, k); + } + } + break; + } + } + } + + //---------------------------------------------------------------------------------------------- + + + if (_values[0] is IVectorSet) + { + Vector [] vectors = new Vector[m]; + + for (int i = 0; i < m; i++) + { + vectors[i] = new Vector(xr[i][0],xr[i][1],xr[i][2]); + } + + VectorSet vectorSet = new VectorSet(vectors); + + return vectorSet; + } + else + { + double[] xx = new double[m]; + + for (int i = 0; i < m; i++) + { + xx[i] = xr[i][0]; + } + + ScalarSet scalarSet = new ScalarSet(xx); + + return scalarSet; + } + } + catch (Exception e) + { + throw new Exception("MapFromTimeSpansToTimeStamp Failed",e); + } + } + + /// + /// Number of time streps in the buffer. + /// + public int TimesCount + { + get + { + return _times.Count; + } + } + + /// + /// Read only property for the number of values in each of the valuesets contained in the buffer. + /// + public int ValuesCount + { + get + { + return ((IValueSet) _values[0]).Count; + } + } + + /// + /// Checks weather the contents of the buffer is valid. + /// + public void CheckBuffer() + { + if(_times.Count != _values.Count) + { + throw new Exception("Different numbers of values and times in buffer"); + } + + if(_times.Count == 0) + { + throw new Exception("Buffer is empty"); + } + + for (int i = 0; i < _times.Count; i++) + { + if (!(_times[i] is ITimeSpan || _times[i] is ITimeStamp)) + { + throw new Exception("Illegal data type for time in buffer"); + } + } + + for (int i = 0; i < _values.Count; i++) + { + if (!(_values[i] is IScalarSet || _values[i] is IVectorSet)) + { + throw new Exception("Illegal data type for values in buffer"); + } + } + + if (_times[0] is ITimeSpan) + { + foreach ( ITimeSpan t in _times) + { + if (t.Start.ModifiedJulianDay >= t.End.ModifiedJulianDay) + { + throw new Exception("BeginTime is larger than or equal to EndTime in TimeSpan"); + } + } + + for (int i = 1; i < _times.Count; i++) + { + if (1.0e-8 < Math.Abs(((ITimeSpan)_times[i]).Start.ModifiedJulianDay - ((ITimeSpan)_times[i-1]).End.ModifiedJulianDay)) + { + throw new Exception("EndTime is not equal to StartTime for the following time step"); + } + } + } + if (_times[0] is ITimeStamp) + { + for (int i = 1; i < _times.Count; i++) + { + if (((ITimeStamp)_times[i]).ModifiedJulianDay <= ((ITimeStamp) _times[i-1]).ModifiedJulianDay) + throw new Exception("TimeStamps are not increasing in buffer"); + } + } + } + + /// + /// Validates a given time. The check made is for TimeSpan the starting time must be smaller + /// than the end time. Throws exception if the time is not valid. + /// + private static void CheckTime(ITime time) + { + if (time is ITimeSpan) + { + if(((ITimeSpan) time).Start.ModifiedJulianDay >= ((ITimeSpan) time).End.ModifiedJulianDay) + { + throw new Exception("Start Time is larger than or equal to End Time in TimeSpan"); + } + } + } + + /// + /// Read/Write property flag that indicates wheather or not to perform extended data + /// checking. + /// + public bool DoExtendedDataVerification + { + get + { + return _doExtendedDataVerification; + } + set + { + _doExtendedDataVerification = value; + } + } + + + /// + /// Clear all times and values in the buffer at or later than the specified time + /// If the specified time is type ITimeSpan the Start time is used. + /// + /// + public void ClearAfter(ITime time) + { + //TODO: this method can be simplyfied (see implementation of method: ClearBefore + TimeStamp timeStamp = new TimeStamp(); + if (time is ITimeStamp) + { + timeStamp.ModifiedJulianDay = ((ITimeStamp) time).ModifiedJulianDay; + } + else if(time is ITimeSpan) + { + timeStamp.ModifiedJulianDay = ((ITimeSpan) time).Start.ModifiedJulianDay; + } + else + { + throw new Exception("Wrong argument type for call to Oatc.OpenMI.Sdk.Buffer.SmartBuffer.ClearAfter()"); + } + + + if (_times.Count > 0) + { + bool recordWasRemoved; + if(_times[0] is ITimeStamp) + { + do + { + recordWasRemoved = false; + if (((ITimeStamp)_times[_times.Count - 1]).ModifiedJulianDay >= timeStamp.ModifiedJulianDay) + { + _values.RemoveAt(_times.Count - 1); + _times.RemoveAt(_times.Count - 1); + recordWasRemoved = true; + + } + } while (recordWasRemoved && _times.Count > 0); + + } + else if (_times[0] is ITimeSpan) + { + do + { + recordWasRemoved = false; + if (((ITimeSpan)_times[_times.Count - 1]).Start.ModifiedJulianDay >= timeStamp.ModifiedJulianDay) + { + _values.RemoveAt(_times.Count - 1); + _times.RemoveAt(_times.Count - 1); + recordWasRemoved = true; + } + } while (recordWasRemoved && _times.Count > 0); + + } + } + + } + + + /// + /// Clear all records in the buffer assocaited to time that is earlier that the + /// time specified in the argument list. However, one record associated to time + /// before the time in the argument list is left in the buffer. + /// The criteria when comparing TimeSpans is that they may not overlap in order + /// to be regarded as before each other. + /// (see also Oatc.OpenMI.Sdk.Buffer.Support.IsBefore(ITime ta, ITime tb) + /// + /// time before which the records are removed + public void ClearBefore(ITimeStamp time) + { + int numberOfRecordsToRemove = 0; + + foreach (ITime t in _times) + { + if (Support.IsBefore(t, time)) + { + numberOfRecordsToRemove ++; + } + } + + numberOfRecordsToRemove--; // decrease index to ensure that one record before time is left back + + + if (numberOfRecordsToRemove > 0) + { + _times.RemoveRange(0,numberOfRecordsToRemove); + _values.RemoveRange(0,numberOfRecordsToRemove); + } + } + + /// + /// Clears the buffer between start- and end- time of the time (TimeSpan). + /// + public void Clear(ITimeSpan time) + + //TODO: This method may not be used anywhere. Check if this is true and then remove this method + { + if (_times.Count > 0) + { + if(_times[0] is ITimeStamp) + { + for (int i = 0; i < _times.Count; i++) + { + if (((ITimeStamp)_times[i]).ModifiedJulianDay > time.Start.ModifiedJulianDay && ((ITimeStamp)_times[i]).ModifiedJulianDay < time.End.ModifiedJulianDay) + { + _times.RemoveAt(i); + _values.RemoveAt(i); + } + } + } + else if (_times[0] is ITimeSpan) + { + for (int i = 0; i < _times.Count; i++) + { + if (((ITimeSpan)_times[i]).Start.ModifiedJulianDay > time.Start.ModifiedJulianDay && ((ITimeSpan)_times[i]).End.ModifiedJulianDay < time.End.ModifiedJulianDay) + { + _times.RemoveAt(i); + _values.RemoveAt(i); + } + } + } + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/Support.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/Support.cs new file mode 100644 index 00000000..36ef56f4 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/Support.cs @@ -0,0 +1,131 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Buffer +{ + /// + /// Support functions for the Buffer. + /// + public class Support + { + /// + /// return true if ta is before tb (eveluates (ta less than tb) + /// + /// Time ta + /// time tb + /// true if ta is before tb (eveluates (ta less than tb) + public static bool IsBefore(ITime ta, ITime tb) + { + double a; + double b; + bool isTaBeforeTb; + + if (ta is ITimeSpan) + { + a = ((ITimeSpan) ta).End.ModifiedJulianDay; + } + else + { + a = ((ITimeStamp) ta).ModifiedJulianDay; + } + + if (tb is ITimeSpan) + { + b = ((ITimeSpan) tb).Start.ModifiedJulianDay; + } + else + { + b = ((ITimeStamp) tb).ModifiedJulianDay; + } + isTaBeforeTb = (a < b); + + return isTaBeforeTb; + } + + /// + /// GetVal will get the indexth number of the axisNumberth component of the + /// ValueSet. + /// + /// ValueSet to read the value from. + /// Index of the value in the ValueSet. + /// Relevant for VectorSets only. 1: x, 2: y, 3: z. + /// The indexth number of the axisNumberth component + public static double GetVal(IValueSet values, int index, int axisNumber) + { + try + { + double x; + if (index > values.Count-1) + { + throw new System.Exception("Index exceeds dimension of ValueSet."); + } + if (values is IScalarSet) + { + if (axisNumber != 1) + { + throw new System.Exception("Illigal axisNumber for ScalarSet."); + } + + x = ((IScalarSet)values).GetScalar(index); + } + + else if (values is IVectorSet) + { + if (axisNumber == 1) + { + x = ((IVectorSet) values).GetVector(index).XComponent; + } + else if (axisNumber == 2) + { + x = ((IVectorSet) values).GetVector(index).YComponent; + } + else if (axisNumber == 3) + { + x = ((IVectorSet) values).GetVector(index).ZComponent; + } + else + { + throw new System.Exception("Illigal axisNumber for VectorSet."); + } + } + else + { + throw new System.Exception("Illigal value type."); + } + + return x; + } + catch (System.Exception e) + { + throw new System.Exception("GetVal failed",e); + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/UnitTest/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/UnitTest/AssemblyInfo.cs new file mode 100644 index 00000000..4c9d003c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/UnitTest/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Buffer UnitTest Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4 Alpha 3")] +[assembly: AssemblyCopyright("GNU Library or Lesser General Public License (LGPL), MIT License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/UnitTest/Oatc.OpenMI.Sdk.Buffer.UnitTest.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/UnitTest/Oatc.OpenMI.Sdk.Buffer.UnitTest.csproj new file mode 100644 index 00000000..9235f3df --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/UnitTest/Oatc.OpenMI.Sdk.Buffer.UnitTest.csproj @@ -0,0 +1,158 @@ + + + + Local + 8.0.50727 + 2.0 + {606EEBBC-96CF-4A21-9AA6-8B4674FF2996} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Buffer.UnitTest + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Buffer.UnitTest + OnBuildSuccess + + + + + + + 3.5 + v4.0 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + ./bin/Debug + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ./bin/Release + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\nunit.framework.dll + + + ..\..\..\OpenMI.Standard.dll + False + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + + + {C9844E74-074D-46FA-AEF6-371B3481468B} + Oatc.OpenMI.Sdk.Buffer + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/UnitTest/ReadMe.txt b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/UnitTest/ReadMe.txt new file mode 100644 index 00000000..eb8a48ae --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/UnitTest/ReadMe.txt @@ -0,0 +1,3 @@ +Default HarmonIT ReadMe file + +This file is on the version_1_1_VS2005 \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/UnitTest/SmartBufferTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/UnitTest/SmartBufferTest.cs new file mode 100644 index 00000000..751feed3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/UnitTest/SmartBufferTest.cs @@ -0,0 +1,705 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.IO; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Buffer; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Buffer.UnitTest +{ + /// + /// The SmartBufferTest class serves as teting of all public methods in the + /// Oatc.OpenMI.Sdk.Buffer.SmartBuffer class. The SmartBufferTest class + /// is used with the NUnit software. + /// + [TestFixture] + public class SmartBufferTest + { + + [Test] + public void SmartBuffer() + { + // Testing the overloaded constructor SmartBuffer.SmartBuffer(SmartBuffer buffer) + // Note: this test does not include testing for buffers containing VectorSets + + SmartBuffer smartBufferA = new SmartBuffer(); + smartBufferA.AddValues(new TimeStamp(1), new ScalarSet(new double[3] { 1, 2, 3 })); + smartBufferA.AddValues(new TimeStamp(3), new ScalarSet(new double[3] { 3, 4, 5 })); + smartBufferA.AddValues(new TimeStamp(6), new ScalarSet(new double[3] { 6, 7, 8 })); + + SmartBuffer buffer1 = new SmartBuffer(smartBufferA); + Assert.AreEqual(smartBufferA.TimesCount, buffer1.TimesCount); + for (int i = 0; i < smartBufferA.TimesCount; i++) + { + Assert.AreEqual(((ITimeStamp)smartBufferA.GetTimeAt(i)).ModifiedJulianDay, ((ITimeStamp)buffer1.GetTimeAt(i)).ModifiedJulianDay); + for (int n = 0; n < smartBufferA.ValuesCount; n++) + { + Assert.AreEqual(((IScalarSet) smartBufferA.GetValuesAt(i)).GetScalar(n),((IScalarSet) buffer1.GetValuesAt(i)).GetScalar(n)); + } + } + + SmartBuffer smartBufferB = new SmartBuffer(); + smartBufferB.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(1),new TimeStamp(2)), new ScalarSet(new double[3] { 11, 12, 13 })); + smartBufferB.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(2),new TimeStamp(3)), new ScalarSet(new double[3] { 13, 14, 15 })); + smartBufferB.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(3),new TimeStamp(5)), new ScalarSet(new double[3] { 16, 17, 18 })); + + SmartBuffer buffer2 = new SmartBuffer(smartBufferB); + Assert.AreEqual(smartBufferB.TimesCount, buffer2.TimesCount); + for (int i = 0; i < smartBufferB.TimesCount; i++) + { + Assert.AreEqual(((ITimeSpan)smartBufferB.GetTimeAt(i)).Start.ModifiedJulianDay, ((ITimeSpan)buffer2.GetTimeAt(i)).Start.ModifiedJulianDay); + Assert.AreEqual(((ITimeSpan)smartBufferB.GetTimeAt(i)).End.ModifiedJulianDay, ((ITimeSpan)buffer2.GetTimeAt(i)).End.ModifiedJulianDay); + + for (int n = 0; n < smartBufferB.ValuesCount; n++) + { + Assert.AreEqual(((IScalarSet) smartBufferB.GetValuesAt(i)).GetScalar(n),((IScalarSet) buffer2.GetValuesAt(i)).GetScalar(n)); + } + } + } + + + [Test] // testing the Initialise method + public void GetValues_TimeStampsToTimeStamp_01() + { + SmartBuffer smartBuffer = new SmartBuffer(); + smartBuffer.AddValues(new TimeStamp(1), new ScalarSet(new double[3] { 1, 2, 3 })); + smartBuffer.AddValues(new TimeStamp(3), new ScalarSet(new double[3] { 3, 4, 5 })); + + //ScalarSet scalarSet = (ScalarSet) smartBuffer.GetValues(new TimeStamp(2)); + double a = smartBuffer.RelaxationFactor; + // Extrapolation + Assert.AreEqual(new ScalarSet(new double[3] { (1-3)/(3-1)*(1-a)+1, (2-4)/(3-1)*(1-a)+2, (3-5)/(3-1)*(1-a)+3 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(0))); + // "Hit" first TimeStamp + Assert.AreEqual(new ScalarSet(new double[3] { 1, 2, 3 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(1))); + // Interpolation + Assert.AreEqual(new ScalarSet(new double[3] { 2, 3, 4 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(2))); + // "Hit" last TimeStamp + Assert.AreEqual(new ScalarSet(new double[3] { 3, 4, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(3))); + // Extrapolation + Assert.AreEqual(new ScalarSet(new double[3] { (3-1)/(3-1)*(1-a)+3, (4-2)/(3-1)*(1-a)+4, (5-3)/(3-1)*(1-a)+5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(4))); + + } + + [Test] // testing the Initialise method + public void GetValues_TimeStampsToTimeStamp_02() + { + // GetValues_TimeStampsToTimeStamp_02()method is teting situation where the Times in + // the buffer is of type ITimeStamp and the requested values is associated to a ITimeStamp + // + // Three different relaxation factors are used + + + // See drawing at the following link. + // http://projects.dhi.dk/harmonIT/WP6/SourceCodeDocumentation/Oatc.OpenMI.Sdk.Buffer.TestCode.htm + + + SmartBuffer smartBuffer = new SmartBuffer(); + + + + // --Populate the SmartBuffer -- + smartBuffer.AddValues(new TimeStamp(10), new ScalarSet(new double[3] { 11, 2, 6})); + smartBuffer.AddValues(new TimeStamp(13), new ScalarSet(new double[3] { 5 , 5, 6})); + smartBuffer.AddValues(new TimeStamp(16), new ScalarSet(new double[3] { 2 ,14, 6})); + smartBuffer.AddValues(new TimeStamp(20), new ScalarSet(new double[3] { 2 , 2, 6})); + smartBuffer.AddValues(new TimeStamp(27), new ScalarSet(new double[3] { 2 , 9, 6})); + smartBuffer.AddValues(new TimeStamp(30), new ScalarSet(new double[3] {-4, 9, 6})); + smartBuffer.AddValues(new TimeStamp(48), new ScalarSet(new double[3] { 8,- 3, 6})); + + smartBuffer.RelaxationFactor = 0.0; + + Assert.AreEqual(new ScalarSet(new double[3] {13,1,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(9))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] {9,3,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] {7,4,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] {5,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] {4,8,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + Assert.AreEqual(new ScalarSet(new double[3] {3,11,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(15))); + Assert.AreEqual(new ScalarSet(new double[3] {2,14,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(16))); + Assert.AreEqual(new ScalarSet(new double[3] {2,11,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(17))); + Assert.AreEqual(new ScalarSet(new double[3] {2,2,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(20))); + Assert.AreEqual(new ScalarSet(new double[3] {2,3,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(21))); + Assert.AreEqual(new ScalarSet(new double[3] {2,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(23))); + Assert.AreEqual(new ScalarSet(new double[3] {2,9,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(27))); + Assert.AreEqual(new ScalarSet(new double[3] {0,9,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(28))); + Assert.AreEqual(new ScalarSet(new double[3] {-2,9,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(29))); + Assert.AreEqual(new ScalarSet(new double[3] {-4,9,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(30))); + Assert.AreEqual(new ScalarSet(new double[3] {-2,7,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(33))); + Assert.AreEqual(new ScalarSet(new double[3] {0,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(36))); + Assert.AreEqual(new ScalarSet(new double[3] {4,1,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(42))); + Assert.AreEqual(new ScalarSet(new double[3] {8,-3,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(48))); + Assert.AreEqual(new ScalarSet(new double[3] {12,-7,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(54))); + + smartBuffer.RelaxationFactor = 1.0; + + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(9))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] {9,3,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] {7,4,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] {5,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] {4,8,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + Assert.AreEqual(new ScalarSet(new double[3] {3,11,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(15))); + Assert.AreEqual(new ScalarSet(new double[3] {2,14,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(16))); + Assert.AreEqual(new ScalarSet(new double[3] {2,11,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(17))); + Assert.AreEqual(new ScalarSet(new double[3] {2,2,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(20))); + Assert.AreEqual(new ScalarSet(new double[3] {2,3,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(21))); + Assert.AreEqual(new ScalarSet(new double[3] {2,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(23))); + Assert.AreEqual(new ScalarSet(new double[3] {2,9,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(27))); + Assert.AreEqual(new ScalarSet(new double[3] {0,9,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(28))); + Assert.AreEqual(new ScalarSet(new double[3] {-2,9,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(29))); + Assert.AreEqual(new ScalarSet(new double[3] {-4,9,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(30))); + Assert.AreEqual(new ScalarSet(new double[3] {-2,7,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(33))); + Assert.AreEqual(new ScalarSet(new double[3] {0,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(36))); + Assert.AreEqual(new ScalarSet(new double[3] {4,1,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(42))); + Assert.AreEqual(new ScalarSet(new double[3] {8,-3,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(48))); + Assert.AreEqual(new ScalarSet(new double[3] {8,-3,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(54))); + + double a = 0.7; + smartBuffer.RelaxationFactor = a; + + Assert.AreEqual(new ScalarSet(new double[3] {11 + (1 - a) * 2,2 - (1 - a)* 1 ,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(9))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] {9,3,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] {7,4,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] {5,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] {4,8,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + Assert.AreEqual(new ScalarSet(new double[3] {3,11,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(15))); + Assert.AreEqual(new ScalarSet(new double[3] {2,14,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(16))); + Assert.AreEqual(new ScalarSet(new double[3] {2,11,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(17))); + Assert.AreEqual(new ScalarSet(new double[3] {2,2,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(20))); + Assert.AreEqual(new ScalarSet(new double[3] {2,3,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(21))); + Assert.AreEqual(new ScalarSet(new double[3] {2,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(23))); + Assert.AreEqual(new ScalarSet(new double[3] {2,9,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(27))); + Assert.AreEqual(new ScalarSet(new double[3] {0,9,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(28))); + Assert.AreEqual(new ScalarSet(new double[3] {-2,9,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(29))); + Assert.AreEqual(new ScalarSet(new double[3] {-4,9,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(30))); + Assert.AreEqual(new ScalarSet(new double[3] {-2,7,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(33))); + Assert.AreEqual(new ScalarSet(new double[3] {0,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(36))); + Assert.AreEqual(new ScalarSet(new double[3] {4,1,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(42))); + Assert.AreEqual(new ScalarSet(new double[3] {8,-3,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(48))); + Assert.AreEqual(new ScalarSet(new double[3] {8 + (1 - a) * 4,-3 - (1 - a) *4, 6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(54))); + } + + + /// + /// + /// +[Test] + + public void GetValues_TimeStampsToTimeStamp_05() + { + //------------------------------------------------------------------------------------------------- + // Only two ValueSets in buffer + //------------------------------------------------------------------------------------------------- + + SmartBuffer smartBuffer = new SmartBuffer(); + + smartBuffer.RelaxationFactor = 0; + + smartBuffer.AddValues(new TimeStamp(10), new ScalarSet(new double[3] { 11, 2, 6})); + smartBuffer.AddValues(new TimeStamp(13), new ScalarSet(new double[3] { 5 , 5, 6})); + + Assert.AreEqual(new ScalarSet(new double[3] {13,1,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(9))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] {9,3,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] {7,4,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] {5,5,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] {3,6,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + } + + [Test] + public void GetValues_TimeStampsToTimeStamp_06() + { + //------------------------------------------------------------------------------------------------- + // Only one ValueSets in buffer + //------------------------------------------------------------------------------------------------- + + SmartBuffer smartBuffer = new SmartBuffer(); + + smartBuffer.RelaxationFactor = 0; + + smartBuffer.AddValues(new TimeStamp(10), new ScalarSet(new double[3] { 11, 2, 6})); + + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(9))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}),(ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] {11,2,6}), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + } + + [Test] + public void GetValues_TimeSpansToTimeStamp_01() + { + //------------------------------------------------------------------------------------------------- + // Teting Getvalues when buffer contains TimeSpans and the requested value corresponds to a + // TimeStamp. Three different relaxation factors are used. + //------------------------------------------------------------------------------------------------- + + SmartBuffer smartBuffer = new SmartBuffer(); + + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(10),new TimeStamp(13)), new ScalarSet(new double[3] { 5, 12, 5 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(16)), new ScalarSet(new double[3] { 7, 11, 5 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(16),new TimeStamp(20)), new ScalarSet(new double[3] { 9, 10, 5 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(20),new TimeStamp(27)), new ScalarSet(new double[3] { 2, 7, 5 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(27),new TimeStamp(30)), new ScalarSet(new double[3] { -5, 6, 5 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(30),new TimeStamp(48)), new ScalarSet(new double[3] { 7, 3, 5 })); + + smartBuffer.RelaxationFactor = 0.0; + Assert.AreEqual(new ScalarSet(new double[3] { 1, 14, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(4))); + Assert.AreEqual(new ScalarSet(new double[3] { 3, 13, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(7))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(15))); + Assert.AreEqual(new ScalarSet(new double[3] { 9, 10, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(16))); + Assert.AreEqual(new ScalarSet(new double[3] { 9, 10, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(17))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(20))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(21))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(23))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(27))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(28))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(29))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(30))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(33))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(36))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(42))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(48))); + Assert.AreEqual(new ScalarSet(new double[3] {11, 2, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(54))); + Assert.AreEqual(new ScalarSet(new double[3] {15, 1, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(60))); + + smartBuffer.RelaxationFactor = 1.0; + + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(4))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(7))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(15))); + Assert.AreEqual(new ScalarSet(new double[3] { 9, 10, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(16))); + Assert.AreEqual(new ScalarSet(new double[3] { 9, 10, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(17))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(20))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(21))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(23))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(27))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(28))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(29))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(30))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(33))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(36))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(42))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(48))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(54))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(60))); + + double a = 0.7; + smartBuffer.RelaxationFactor = a; + + Assert.AreEqual(new ScalarSet(new double[3] { 5 - (1 - a)*(5 -1), 12 - (1-a)*(12-14), 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(4))); + Assert.AreEqual(new ScalarSet(new double[3] { 5 - (1 - a)*(5 - 3), 12 - (1 -a)* (12-13), 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(7))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(10))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(11))); + Assert.AreEqual(new ScalarSet(new double[3] { 5, 12, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(12))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(13))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(14))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 11, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(15))); + Assert.AreEqual(new ScalarSet(new double[3] { 9, 10, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(16))); + Assert.AreEqual(new ScalarSet(new double[3] { 9, 10, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(17))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(20))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(21))); + Assert.AreEqual(new ScalarSet(new double[3] { 2, 7, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(23))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(27))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(28))); + Assert.AreEqual(new ScalarSet(new double[3] {-5, 6, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(29))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(30))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(33))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(36))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(42))); + Assert.AreEqual(new ScalarSet(new double[3] { 7, 3, 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(48))); + Assert.AreEqual(new ScalarSet(new double[3] { 7+(1-a)*(11-7), 3+(1-a)*(2-3), 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(54))); + Assert.AreEqual(new ScalarSet(new double[3] { 7+(1-a)*(15-7), 3+(1-a)*(1-3), 5 }), (ScalarSet) smartBuffer.GetValues(new TimeStamp(60))); + } + + [Test] + public void GetValues_TimeSpansToTimeSpans() + { + SmartBuffer smartBuffer = new SmartBuffer(); + + smartBuffer.RelaxationFactor = 1.0; + + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(10),new TimeStamp(13)), new ScalarSet(new double[1] { 1 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(16)), new ScalarSet(new double[1] { 2 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(16),new TimeStamp(19)), new ScalarSet(new double[1] { 3 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(19),new TimeStamp(27)), new ScalarSet(new double[1] { 4 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(27),new TimeStamp(30)), new ScalarSet(new double[1] { 5 })); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(30),new TimeStamp(48)), new ScalarSet(new double[1] { 6 })); + + Assert.AreEqual( 1.0 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(9),new TimeStamp(13)))).GetScalar(0)); + Assert.AreEqual( 1.0 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(10),new TimeStamp(13)))).GetScalar(0)); + Assert.AreEqual( 1.0 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(11),new TimeStamp(12)))).GetScalar(0)); + Assert.AreEqual( 2.5 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(19)))).GetScalar(0)); + Assert.AreEqual( 2.5 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(14.5),new TimeStamp(17.5)))).GetScalar(0)); + + smartBuffer.RelaxationFactor = 1.0; + Assert.AreEqual( 1.0 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(10),new TimeStamp(13)))).GetScalar(0)); + Assert.AreEqual( 1.0 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(11),new TimeStamp(12)))).GetScalar(0)); + Assert.AreEqual( 2.5 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(19)))).GetScalar(0)); + Assert.AreEqual( 2.5 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(14.5),new TimeStamp(17.5)))).GetScalar(0)); + } + + + + + [Test] + public void GetValues_TimeStampsToTimeSpan_01() + { + SmartBuffer smartBuffer = new SmartBuffer(); + smartBuffer.AddValues(new TimeStamp(2), new ScalarSet(new double[1] {2})); + smartBuffer.AddValues(new TimeStamp(4), new ScalarSet(new double[1] {4})); + smartBuffer.AddValues(new TimeStamp(7), new ScalarSet(new double[1] {4})); + smartBuffer.AddValues(new TimeStamp(11), new ScalarSet(new double[1] {6})); + smartBuffer.AddValues(new TimeStamp(13), new ScalarSet(new double[1] {4})); + smartBuffer.AddValues(new TimeStamp(15), new ScalarSet(new double[1] {3})); + + smartBuffer.RelaxationFactor = 1.0; + + Assert.AreEqual( 24.5/6 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(3),new TimeStamp(9)))).GetScalar(0),0.0000000001); + Assert.AreEqual( 49.25/11 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(3),new TimeStamp(14)))).GetScalar(0),0.0000000001); + Assert.AreEqual( 13.0/4.0 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(17)))).GetScalar(0)); + + smartBuffer.RelaxationFactor = 0.0; + Assert.AreEqual( 3 , ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(17)))).GetScalar(0)); + + smartBuffer.RelaxationFactor = 1.0; + Assert.AreEqual( 3, ((ScalarSet) smartBuffer.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(1),new TimeStamp(5)))).GetScalar(0)); + + + + } + + [Test] + public void AddValues_01() + { + try + { + SmartBuffer smartBuffer = new SmartBuffer(); + smartBuffer.DoExtendedDataVerification = true; + + ScalarSet scalarSet = new ScalarSet(new double[3] { 0, 1, 2 }); + TimeStamp timeStamp = new TimeStamp(1); + + smartBuffer.AddValues(timeStamp, scalarSet); + + timeStamp.ModifiedJulianDay = 2; + scalarSet.data[0] = 10; + scalarSet.data[1] = 11; + scalarSet.data[2] = 12; + + smartBuffer.AddValues(timeStamp, scalarSet); + + smartBuffer.AddValues(new TimeStamp(3), new ScalarSet(new double[3] { 110, 111, 112 })); + smartBuffer.AddValues(new TimeStamp(4), new ScalarSet(new double[3] { 1110, 1111, 1112 })); + + Assert.AreEqual(0,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(1,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(1)); + Assert.AreEqual(2,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(2)); + + Assert.AreEqual(10,((IScalarSet) smartBuffer.GetValuesAt(1)).GetScalar(0)); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(1)).GetScalar(1)); + Assert.AreEqual(12,((IScalarSet) smartBuffer.GetValuesAt(1)).GetScalar(2)); + + Assert.AreEqual(110,((IScalarSet) smartBuffer.GetValuesAt(2)).GetScalar(0)); + Assert.AreEqual(111,((IScalarSet) smartBuffer.GetValuesAt(2)).GetScalar(1)); + Assert.AreEqual(112,((IScalarSet) smartBuffer.GetValuesAt(2)).GetScalar(2)); + + Assert.AreEqual(1110,((IScalarSet) smartBuffer.GetValuesAt(3)).GetScalar(0)); + Assert.AreEqual(1111,((IScalarSet) smartBuffer.GetValuesAt(3)).GetScalar(1)); + Assert.AreEqual(1112,((IScalarSet) smartBuffer.GetValuesAt(3)).GetScalar(2)); + + Assert.AreEqual(4,smartBuffer.TimesCount); + Assert.AreEqual(3,smartBuffer.ValuesCount); + } + catch (System.Exception e) + { + WriteException(e); + throw (e); + } + } + + [Test] + public void ClearAfter() + { + SmartBuffer smartBuffer = new SmartBuffer(); + smartBuffer.DoExtendedDataVerification = true; + + // --Populate the SmartBuffer -- + smartBuffer.AddValues(new TimeStamp(10), new ScalarSet(new double[2] {11, 21})); + smartBuffer.AddValues(new TimeStamp(13), new ScalarSet(new double[2] {12 ,22})); + smartBuffer.AddValues(new TimeStamp(16), new ScalarSet(new double[2] {13 ,23})); + smartBuffer.AddValues(new TimeStamp(20), new ScalarSet(new double[2] {14 ,24})); + smartBuffer.AddValues(new TimeStamp(27), new ScalarSet(new double[2] {15 ,25})); + smartBuffer.AddValues(new TimeStamp(30), new ScalarSet(new double[2] {16, 26})); + smartBuffer.AddValues(new TimeStamp(48), new ScalarSet(new double[2] {17, 27})); + + Oatc.OpenMI.Sdk.Backbone.TimeStamp time = new Oatc.OpenMI.Sdk.Backbone.TimeStamp(); + + time.ModifiedJulianDay = 50; // this time is after the last time in buffer + smartBuffer.ClearAfter(time); + Assert.AreEqual(7,smartBuffer.TimesCount); //nothing removed + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(27,((IScalarSet) smartBuffer.GetValuesAt(6)).GetScalar(1)); + + time.ModifiedJulianDay = 30; + smartBuffer.ClearAfter(time); + Assert.AreEqual(5,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(25,((IScalarSet) smartBuffer.GetValuesAt(4)).GetScalar(1)); + + time.ModifiedJulianDay = 16.5; + smartBuffer.ClearAfter(time); + Assert.AreEqual(3,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(23,((IScalarSet) smartBuffer.GetValuesAt(2)).GetScalar(1)); + + time.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(time); + Assert.AreEqual(0,smartBuffer.TimesCount); + + time.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(time); + Assert.AreEqual(0,smartBuffer.TimesCount); + + smartBuffer.AddValues(new TimeStamp(10), new ScalarSet(new double[2] {11, 21})); + smartBuffer.AddValues(new TimeStamp(13), new ScalarSet(new double[2] {12 ,22})); + smartBuffer.AddValues(new TimeStamp(16), new ScalarSet(new double[2] {13 ,23})); + smartBuffer.AddValues(new TimeStamp(20), new ScalarSet(new double[2] {14 ,24})); + smartBuffer.AddValues(new TimeStamp(27), new ScalarSet(new double[2] {15 ,25})); + smartBuffer.AddValues(new TimeStamp(30), new ScalarSet(new double[2] {16, 26})); + smartBuffer.AddValues(new TimeStamp(48), new ScalarSet(new double[2] {17, 27})); + + Oatc.OpenMI.Sdk.Backbone.TimeStamp start = new Oatc.OpenMI.Sdk.Backbone.TimeStamp(50); + Oatc.OpenMI.Sdk.Backbone.TimeStamp end = new Oatc.OpenMI.Sdk.Backbone.TimeStamp(55); + Oatc.OpenMI.Sdk.Backbone.TimeSpan timeSpan = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(start,end); + + start.ModifiedJulianDay = 50; // this time is after the last time in buffer + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(7,smartBuffer.TimesCount); //nothing removed + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(27,((IScalarSet) smartBuffer.GetValuesAt(6)).GetScalar(1)); + + start.ModifiedJulianDay = 30; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(5,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(25,((IScalarSet) smartBuffer.GetValuesAt(4)).GetScalar(1)); + + start.ModifiedJulianDay = 16.5; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(3,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(23,((IScalarSet) smartBuffer.GetValuesAt(2)).GetScalar(1)); + + start.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(0,smartBuffer.TimesCount); + + start.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(0,smartBuffer.TimesCount); + + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(10),new TimeStamp(13)), new ScalarSet(new double[2] {11, 21})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(16)), new ScalarSet(new double[2] {12, 22})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(16),new TimeStamp(20)), new ScalarSet(new double[2] {13, 23})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(20),new TimeStamp(27)), new ScalarSet(new double[2] {14, 24})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(27),new TimeStamp(30)), new ScalarSet(new double[2] {15, 25})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(30),new TimeStamp(48)), new ScalarSet(new double[2] {16, 26})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(48),new TimeStamp(55)), new ScalarSet(new double[2] {17, 27})); + + + time.ModifiedJulianDay = 50; // this time is after the last time in buffer + smartBuffer.ClearAfter(time); + Assert.AreEqual(7,smartBuffer.TimesCount); //nothing removed + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(27,((IScalarSet) smartBuffer.GetValuesAt(6)).GetScalar(1)); + + time.ModifiedJulianDay = 30; + smartBuffer.ClearAfter(time); + Assert.AreEqual(5,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(25,((IScalarSet) smartBuffer.GetValuesAt(4)).GetScalar(1)); + + time.ModifiedJulianDay = 16.5; + smartBuffer.ClearAfter(time); + Assert.AreEqual(3,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(23,((IScalarSet) smartBuffer.GetValuesAt(2)).GetScalar(1)); + + time.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(time); + Assert.AreEqual(0,smartBuffer.TimesCount); + + time.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(time); + Assert.AreEqual(0,smartBuffer.TimesCount); + + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(10),new TimeStamp(13)), new ScalarSet(new double[2] {11, 21})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(13),new TimeStamp(16)), new ScalarSet(new double[2] {12, 22})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(16),new TimeStamp(20)), new ScalarSet(new double[2] {13, 23})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(20),new TimeStamp(27)), new ScalarSet(new double[2] {14, 24})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(27),new TimeStamp(30)), new ScalarSet(new double[2] {15, 25})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(30),new TimeStamp(48)), new ScalarSet(new double[2] {16, 26})); + smartBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(48),new TimeStamp(55)), new ScalarSet(new double[2] {17, 27})); + + start.ModifiedJulianDay = 50; // this time is after the last time in buffer + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(7,smartBuffer.TimesCount); //nothing removed + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(27,((IScalarSet) smartBuffer.GetValuesAt(6)).GetScalar(1)); + + start.ModifiedJulianDay = 30; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(5,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(25,((IScalarSet) smartBuffer.GetValuesAt(4)).GetScalar(1)); + + start.ModifiedJulianDay = 16.5; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(3,smartBuffer.TimesCount); + Assert.AreEqual(11,((IScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(23,((IScalarSet) smartBuffer.GetValuesAt(2)).GetScalar(1)); + + start.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(0,smartBuffer.TimesCount); + + start.ModifiedJulianDay = 9; + smartBuffer.ClearAfter(timeSpan); + Assert.AreEqual(0,smartBuffer.TimesCount); + } + + [Test] + public void ClearBefore() + { + SmartBuffer smartBuffer = new SmartBuffer(); + smartBuffer.AddValues(new TimeStamp(1), new ScalarSet(new double[3] { 1.1, 2.1, 3.1 })); + smartBuffer.AddValues(new TimeStamp(3), new ScalarSet(new double[3] { 4.1, 5.1, 6.1 })); + smartBuffer.AddValues(new TimeStamp(4), new ScalarSet(new double[3] { 7.1, 8.1, 9.1 })); + smartBuffer.AddValues(new TimeStamp(5), new ScalarSet(new double[3] { 10.1, 11.1, 12.1 })); + + smartBuffer.ClearBefore(new TimeStamp(0.5)); + Assert.AreEqual(4,smartBuffer.TimesCount); + smartBuffer.CheckBuffer(); + + smartBuffer.ClearBefore(new TimeStamp(1)); + Assert.AreEqual(4,smartBuffer.TimesCount); + smartBuffer.CheckBuffer(); + + smartBuffer.ClearBefore(new TimeStamp(1.1)); + Assert.AreEqual(4,smartBuffer.TimesCount); + Assert.AreEqual(1.1,((ScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(1, ((ITimeStamp) smartBuffer.GetTimeAt(0)).ModifiedJulianDay); + smartBuffer.CheckBuffer(); + + smartBuffer.ClearBefore(new TimeStamp(4.1)); + Assert.AreEqual(2, smartBuffer.TimesCount); + Assert.AreEqual(7.1,((ScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(4, ((ITimeStamp) smartBuffer.GetTimeAt(0)).ModifiedJulianDay); + smartBuffer.CheckBuffer(); + + smartBuffer.ClearBefore(new TimeStamp(5.1)); + Assert.AreEqual(1, smartBuffer.TimesCount); + Assert.AreEqual(10.1,((ScalarSet) smartBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(5, ((ITimeStamp) smartBuffer.GetTimeAt(0)).ModifiedJulianDay); + smartBuffer.CheckBuffer(); + + SmartBuffer timeSpanBuffer = new SmartBuffer(); + timeSpanBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(1),new TimeStamp(3)), new ScalarSet(new double[3] { 1.1, 2.1, 3.1 })); + timeSpanBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(3),new TimeStamp(5)), new ScalarSet(new double[3] { 4.1, 5.1, 6.1 })); + timeSpanBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(5),new TimeStamp(7)), new ScalarSet(new double[3] { 7.1, 8.1, 9.1 })); + timeSpanBuffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(7),new TimeStamp(9)), new ScalarSet(new double[3] { 10.1, 11.1, 12.1 })); + + timeSpanBuffer.ClearBefore(new TimeStamp(0.5)); + Assert.AreEqual(4,timeSpanBuffer.TimesCount); + timeSpanBuffer.CheckBuffer(); + + timeSpanBuffer.ClearBefore(new TimeStamp(1.0)); + Assert.AreEqual(4,timeSpanBuffer.TimesCount); + timeSpanBuffer.CheckBuffer(); + + timeSpanBuffer.ClearBefore(new TimeStamp(2.0)); + Assert.AreEqual(4,timeSpanBuffer.TimesCount); + timeSpanBuffer.CheckBuffer(); + + timeSpanBuffer.ClearBefore(new TimeStamp(3.0)); + Assert.AreEqual(4,timeSpanBuffer.TimesCount); + timeSpanBuffer.CheckBuffer(); + + timeSpanBuffer.ClearBefore(new TimeStamp(4.0)); + Assert.AreEqual(4,timeSpanBuffer.TimesCount); + Assert.AreEqual(1.1,((ScalarSet) timeSpanBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(1, ((ITimeSpan) timeSpanBuffer.GetTimeAt(0)).Start.ModifiedJulianDay); + Assert.AreEqual(3, ((ITimeSpan) timeSpanBuffer.GetTimeAt(0)).End.ModifiedJulianDay); + timeSpanBuffer.CheckBuffer(); + + timeSpanBuffer.ClearBefore(new TimeStamp(7.0)); + Assert.AreEqual(3,timeSpanBuffer.TimesCount); + Assert.AreEqual(4.1,((ScalarSet) timeSpanBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(3, ((ITimeSpan) timeSpanBuffer.GetTimeAt(0)).Start.ModifiedJulianDay); + Assert.AreEqual(5, ((ITimeSpan) timeSpanBuffer.GetTimeAt(0)).End.ModifiedJulianDay); + timeSpanBuffer.CheckBuffer(); + + timeSpanBuffer.ClearBefore(new TimeStamp(10.0)); + Assert.AreEqual(1,timeSpanBuffer.TimesCount); + Assert.AreEqual(10.1,((ScalarSet) timeSpanBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(7, ((ITimeSpan) timeSpanBuffer.GetTimeAt(0)).Start.ModifiedJulianDay); + Assert.AreEqual(9, ((ITimeSpan) timeSpanBuffer.GetTimeAt(0)).End.ModifiedJulianDay); + timeSpanBuffer.CheckBuffer(); + } + + + private void WriteException(System.Exception e) + { + Console.WriteLine(" "); + Console.WriteLine("------- System.Exception ----------------------------- "); + Console.WriteLine("Catched in....: org.OpenMITest.Utilities.Wrapper.GetValues_River_Trigger_IDBased()"); + Console.WriteLine("Message.......: " + e.Message); + Console.WriteLine("Stact trace...: " + e.StackTrace); + Console.WriteLine("TargetSite....: " + e.TargetSite.Name); + Console.WriteLine("Source........: " + e.Source); + Console.WriteLine(" "); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/UnitTest/SupportTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/UnitTest/SupportTest.cs new file mode 100644 index 00000000..b2c2df25 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Buffer/UnitTest/SupportTest.cs @@ -0,0 +1,76 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Buffer; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Buffer.UnitTest +{ + /// + /// Summary description for SupportTest. + /// + [TestFixture] + public class SupportTest + { + [Test] + public void IsBefore() + { + TimeStamp t_4 = new TimeStamp(4); + TimeStamp t_7 = new TimeStamp(7); + Assert.AreEqual(true, Support.IsBefore(t_4,t_7)); + Assert.AreEqual(false, Support.IsBefore(t_7,t_4)); + Assert.AreEqual(false, Support.IsBefore(t_4,t_4)); + + Oatc.OpenMI.Sdk.Backbone.TimeSpan t_3_5 = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(3),new TimeStamp(5)); + Oatc.OpenMI.Sdk.Backbone.TimeSpan t_4_6 = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(4),new TimeStamp(6)); + Oatc.OpenMI.Sdk.Backbone.TimeSpan t_5_7 = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(5),new TimeStamp(7)); + Oatc.OpenMI.Sdk.Backbone.TimeSpan t_6_8 = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(6),new TimeStamp(8)); + + Assert.AreEqual(true, Support.IsBefore(t_3_5,t_6_8)); + Assert.AreEqual(false, Support.IsBefore(t_6_8, t_3_5)); + Assert.AreEqual(false, Support.IsBefore(t_3_5,t_4_6)); + Assert.AreEqual(false, Support.IsBefore(t_3_5,t_5_7)); + Assert.AreEqual(false, Support.IsBefore(t_3_5,t_3_5)); + + Assert.AreEqual(true, Support.IsBefore(t_4, t_5_7)); + Assert.AreEqual(false, Support.IsBefore(t_4, t_3_5)); + Assert.AreEqual(false, Support.IsBefore(t_7, t_3_5)); + Assert.AreEqual(false, Support.IsBefore(t_4, t_4_6)); + Assert.AreEqual(false, Support.IsBefore(t_7, t_5_7)); + + Assert.AreEqual(true, Support.IsBefore(t_3_5,t_7)); + Assert.AreEqual(false, Support.IsBefore(t_3_5, t_4)); + Assert.AreEqual(false, Support.IsBefore(t_6_8, t_4)); + Assert.AreEqual(false, Support.IsBefore(t_5_7, t_7)); + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/AssemblyInfo.cs new file mode 100644 index 00000000..e91c6ff2 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI SDK DevelopmentSupport Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4")] +[assembly: AssemblyCopyright("BSD License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/CalendarConverter.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/CalendarConverter.cs new file mode 100644 index 00000000..a1fa2194 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/CalendarConverter.cs @@ -0,0 +1,65 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// Support class for conversions between DateTime objects and Modified Julian Dates + /// Modified Julian Date is the number of days since November 17, 1858. + /// + public class CalendarConverter + { + private static DateTime _ModifiedJulianDateZero = new DateTime (1858, 11, 17); + private static long _ModifiedJulianDateZeroTicks = new DateTime (1858, 11, 17).Ticks; + + /// + /// Converts a DateTime object to modified julian date + /// + /// DateTime object + /// Modified Julian Date (days since November 17, 1858) + public static double Gregorian2ModifiedJulian(DateTime gregorianDate) + { + long ticks = gregorianDate.Ticks - _ModifiedJulianDateZeroTicks; + double result = ((double) ticks) / ((double) TimeSpan.TicksPerDay); + return result; + } + + /// + /// Converts a modified julian date to a DateTime object + /// + /// Modified Julian Date (days since November 17, 1858) + /// DateTime object + public static DateTime ModifiedJulian2Gregorian(double modifiedJulianDate) + { + return _ModifiedJulianDateZero.AddDays (modifiedJulianDate); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/CollectionSupport.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/CollectionSupport.cs new file mode 100644 index 00000000..f411559e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/CollectionSupport.cs @@ -0,0 +1,75 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// Support class for collections + /// + public class CollectionSupport + { + /// + /// Indicates whether an object is contained by a collection by comparing references. + /// The Equals method is not used, in contrary with the Contains method in the ArrayList. + /// + /// The collection + /// The object which might be in the collection + /// + public static bool ContainsObject (ICollection collection, object target) + { + foreach (object item in collection) + { + if (item == target) + { + return true; + } + } + return false; + } + + /// + /// Converts a collection to an array + /// + /// The collection + /// The array + public static object[] ToArray(IList list) + { + object[] objects = new object[list.Count]; + for (int i = 0; i < list.Count; i++) + { + objects[i] = list[i]; + } + + return objects; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/DefaultAggregate.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/DefaultAggregate.cs new file mode 100644 index 00000000..67ade9ca --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/DefaultAggregate.cs @@ -0,0 +1,202 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.ComponentModel; +using System.Reflection; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// Implementation of IAggregate which is based on reflection. + /// This class is used by XmlFile as default + /// + /// + public class DefaultAggregate : IAggregate + { + private object _source = null; + + /// + /// Constructor which gets the underlying source object + /// + /// The underlying source object + public DefaultAggregate(object source) + { + _source = source; + } + + /// + /// Gets the underlying source object + /// + public virtual object Source + { + get {return _source;} + } + + /// + /// Gets a list of all properties defined in the class type of the source. + /// Reflection is used to get this list. + /// + public virtual string[] Properties + { + get + { + PropertyInfo[] properties = _source.GetType().GetProperties(); + string[] propertyStrings = new string[properties.Length]; + for (int i = 0; i < propertyStrings.Length; i++) + { + propertyStrings[i] = properties[i].Name; + } + return propertyStrings; + } + } + + /// + /// Gets the class type of a property by reflection + /// + /// The property name + /// The type of the property + public virtual Type GetType (string property) + { + PropertyInfo prop = _source.GetType().GetProperty(property); + if (prop != null) + { + return prop.PropertyType; + } + + return null; + } + + /// + /// Indicates whether a property can be written to. Reflection is used. + /// + /// The property name + /// Property is writable, false if property doesn't exist + public virtual bool CanWrite (string property) + { + PropertyInfo prop = _source.GetType().GetProperty(property); + if (prop != null) + { + return prop.CanWrite; + } + + return false; + } + + /// + /// Indicates whether a property can be read. Reflection is used. + /// + /// The property name + /// Property is readable, false if property doesn't exist + public virtual bool CanRead (string property) + { + PropertyInfo prop = _source.GetType().GetProperty(property); + if (prop != null) + { + return prop.CanRead; + } + + return false; + } + + /// + /// Gets a value for a certain property. Reflection is used. + /// + /// The property name + /// The property value, null if the property doesn't exist + /// Internal exception raised by the source object when getting the value + public virtual object GetValue (string property) + { + PropertyInfo prop = _source.GetType().GetProperty(property); + if (prop != null) + { + try + { + return prop.GetValue (_source, null); + } + catch (Exception e) + { + throw new Exception ("Error when getting value of property " + property + " in " + _source.ToString() + "\n" + e.Message, e); + } + } + + return null; + } + + /// + /// Sets a value for a certain property. Reflection is used. + /// + /// The property name + /// The new property value + /// Internal exception raised by the source object when setting the value + public virtual void SetValue (string property, object target) + { + PropertyInfo prop = _source.GetType().GetProperty(property); + if (prop != null) + { + try + { + prop.SetValue (_source, target, null); + } + catch (Exception e) + { + throw new Exception ("Error when setting value " + target.ToString() + " to property " + property + " in " + _source.ToString() + "\n" + e.Message, e); + } + } + } + + /// + /// Gets a referenced value, i.e. a value corresponding with a reference string within the scope of the source. + /// Implementation is delegated to XmlFile.GetRegisteredTarget. + /// + /// Reference + /// The referenced object + public virtual object GetReferencedValue (string reference) + { + return XmlFile.GetRegisteredTarget(this.Source, reference); + } + + /// + /// Intended for updating the source after various SetValue calls. + /// Takes no action, because all SetValue calls are delegated directly to the source object with reflection. + /// + public virtual void UpdateSource() + { + } + + /// + /// Intended for updating the aggregate before various GetValue calls. + /// Takes no action, because all GetValue calls are delegated directly to the source object with reflection. + /// + public virtual void UpdateAggregate() + { + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/FileSupport.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/FileSupport.cs new file mode 100644 index 00000000..2d264351 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/FileSupport.cs @@ -0,0 +1,192 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; +using System.IO; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// This class provides some static methods to handle relative paths to files + /// + public class FileSupport + { + /// + /// Gets the relative path from a starting directory to a file + /// + /// Starting point + /// File to refer to + /// + public static string GetRelativePath(DirectoryInfo baseDirectory, FileInfo targetFile) + { + // When roots are different, the result is the full path of the target. + if (!targetFile.Directory.Root.ToString().Equals (baseDirectory.Root.ToString())) + { + return targetFile.FullName; + } + + // Quick result when the target resides in the base directory. + if (targetFile.Directory.FullName.Equals(baseDirectory.FullName)) + { + return targetFile.Name; + } + + ArrayList baseDir = FileSupport.GetDirectoryArray(baseDirectory); + ArrayList target = FileSupport.GetDirectoryArray(targetFile.Directory); + + // Finally add the target file name + return FileSupport.GetRelativeDir(baseDir, target) + targetFile.Name; + } + + /// + /// Gets the relative path from a starting directory to a directory + /// + /// Starting point + /// Directory to refer to + /// + public static string GetRelativePath(DirectoryInfo baseDirectory, DirectoryInfo targetDir) + { + // When roots are different, the result is the full path of the target. + if (!targetDir.Root.ToString().Equals (baseDirectory.Root.ToString())) + { + return targetDir.FullName; + } + + // Quick result when the target resides in the base directory. + if (targetDir.FullName.Equals(baseDirectory.FullName)) + { + return ""; + } + + ArrayList baseDir = GetDirectoryArray(baseDirectory); + ArrayList target = GetDirectoryArray(targetDir); + + // Finally add the target file name + return GetRelativeDir(baseDir, target).TrimEnd ('\\'); + } + + /// + /// Gets the relative path given the base and target + /// + /// Array of directories for the base directory + /// Array of directories for the target file or directory + /// The relative path + private static string GetRelativeDir (ArrayList baseDir, ArrayList target) + { + // Determine the common part in the full paths of base directory and target file + int common = 0; + while ((common < baseDir.Count) && (common < target.Count) && (baseDir[common].Equals(target[common]))) + { + common++; + } + + // The relative path starts with going up from the base directory file for the uncommon part + string result = ""; + for (int i = common; i < baseDir.Count; i++) + { + result += ".." + Path.DirectorySeparatorChar; + } + + // Then the relative path continues with going down to the target file for the uncommon part + for (int i = common; i < target.Count; i++) + { + result += target[i].ToString() + Path.DirectorySeparatorChar; + } + + return result; + } + + /// + /// Returns an array of all directories in a path. The first directory is the highest directory in the path. + /// + /// Directory from which to generate the array + /// ArrayList containing all directories. Each element is a DirectoryInfo object + private static ArrayList GetDirectoryArray (DirectoryInfo Directory) + { + ArrayList array = new ArrayList(); + DirectoryInfo dir = Directory; + while (dir.Parent != null) + { + array.Insert (0, dir.Name); + dir = dir.Parent; + } + + return array; + } + + /// + /// Expands a relative path to a FileInfo object + /// + /// The directory from which the relative path is defined + /// The relative path + /// FileInfo object corresponding to the base directory and relative path + public static FileInfo ExpandRelativePath(DirectoryInfo baseDirectory, string targetFile) + { + string current = Directory.GetCurrentDirectory(); + Directory.SetCurrentDirectory(baseDirectory.FullName); + FileInfo newFile = new FileInfo(targetFile); + Directory.SetCurrentDirectory(current); + + return newFile; + } + + /// + /// Expands a relative path to a DirectoryInfo object + /// + /// The directory from which the relative path is defined + /// The relative path + /// DirectoryInfo object corresponding to the base directory and relative path + public static DirectoryInfo ExpandRelativeDirectory(DirectoryInfo baseDirectory, string targetDir) + { + if (targetDir.Trim().Equals("")) + { + return new DirectoryInfo(baseDirectory.FullName); + } + + string current = Directory.GetCurrentDirectory(); + Directory.SetCurrentDirectory(baseDirectory.FullName); + DirectoryInfo newFile = new DirectoryInfo(targetDir); + Directory.SetCurrentDirectory(current); + + return newFile; + } + + /// + /// Generates relative path by path. + /// + /// + /// + /// + public static string GetRelativePath(string dirPath, string filePath) + { + return GetRelativePath(new DirectoryInfo(dirPath), new FileInfo(filePath)); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/IAggregate.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/IAggregate.cs new file mode 100644 index 00000000..179dfdae --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/IAggregate.cs @@ -0,0 +1,103 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// This interface allows generic querying of an object's properties. + /// An aggregate serves as an "in between" object between a source (containing the actual information) and a querier (asking for properties, e.g. XmlFile). + /// + public interface IAggregate + { + /// + /// The underlying object which holds the actual information. + /// + object Source {get;} + + /// + /// List of properties which can be queried in a generic way + /// + string[] Properties {get;} + + /// + /// Gets the class type of one of the properties + /// + /// Property name + /// The property type + Type GetType (string property); + + /// + /// Tells whether a value can be assigned to the property + /// + /// Property name + /// Boolean indicating writable + bool CanWrite (string property); + + /// + /// Tells whether a value can be retrieved from the property + /// + /// Property name + /// Boolean indicating readable + bool CanRead (string property); + + /// + /// Gets the value of a property + /// + /// Property name + /// The property value + object GetValue (string property); + + /// + /// Sets the value of a property + /// + /// Property name + /// The new property value + void SetValue (string property, object target); + + /// + /// Gets a property value by reference. + /// A reference isn't necessary a property, but can be any string, as long as it can be interpreted by the aggregate + /// + /// Reference + /// The referenced value + object GetReferencedValue (string reference); + + /// + /// Tells the aggregate to process all information passed with SetValue calls + /// + void UpdateSource(); + + /// + /// Tells the aggregate to prepare for subsequent GetValue calls + /// + void UpdateAggregate(); + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/MetaInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/MetaInfo.cs new file mode 100644 index 00000000..637c55df --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/MetaInfo.cs @@ -0,0 +1,696 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.IO; +using System.Collections; +using System.ComponentModel; +using System.Reflection; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// This class registers extra information about classes and (optionally) properties in your application. + /// For example, information about how to write a property of a class into an xml file can be stored here. + /// This mechanism has great similarities with the attribute mechanism in the .Net framework, but differences are that + /// 1) entries can be set dynamically + /// 2) no code modification is necessary in the target classes (the classes for which information is stored) + /// + /// + /// MetaInfo.SetAttribute (typeof(ILinkableComponent), "XmlFile", true); + /// Tells that the interface ILinkableComponent has subject XmlFile, which has corresponding value true. + /// There must be another class which knows that subject XmlFile exists and uses this information in some way. + /// MetaInfo.SetAttribute (typeof(IElementSet), "ID", "XmlRefName", "RefID"); + /// Tells that the property ID in the interface IElementSet has subject XmlRefName, which has corresponding value "RefID". + /// + public class MetaInfo + { + private static bool _initialized = false; + private static EntryList _targets = new EntryList(); + private static Hashtable _subjectTypes = new Hashtable(); + + /// + /// Writes all metainfo to a file + /// + /// The file + public static void Write (FileInfo file) + { + MetaInfo.Initialize(); + XmlFile.Write (_targets, file); + } + + /// + /// Reads all metainfo from file + /// + /// The file + public static void Read (FileInfo file) + { + MetaInfo.Initialize(); + XmlFile.Read (_targets, file); + } + + /// + /// Sets metainfo about the xml file where meta info is saved in + /// + private static void Initialize() + { + if (!_initialized) + { + MetaInfo.SetAttribute (typeof(EntryList), "XmlItemType", "Oatc.OpenMI.Sdk.DevelopmentSupport.MetaInfoEntry"); + MetaInfo.SetAttribute (typeof(MetaInfoEntry), "Properties", "XmlItemType", "Oatc.OpenMI.Sdk.DevelopmentSupport.MetaInfoClass"); + MetaInfo.SetAttribute (typeof(MetaInfoClass), "ObjectAggregate", "Oatc.OpenMI.Sdk.DevelopmentSupport.MetaInfoClassAggregate"); + _initialized = true; + } + } + + /// + /// Gets all metainfo concerning a given class + /// + /// The class name + /// All metainfo about a class, null if not found + private static MetaInfoEntry GetEntry (string target) + { + foreach (MetaInfoEntry entry in _targets) + { + if (entry.ClassName.Equals (target)) + { + return entry; + } + } + + return null; + } + + /// + /// Gets all metainfo concerning a given class and creates an empty block if not found + /// + /// The class name + /// All metainfo about a class + private static MetaInfoEntry GetEntryForced (string target) + { + MetaInfoEntry entry = MetaInfo.GetEntry (target); + + if (entry == null) + { + entry = new MetaInfoEntry (target); + _targets.Add (entry); + } + + return entry; + } + /// + /// Stores information about a class + /// + /// The class about which information is stored (usually as class type or string) + /// The type of information (e.g. how the class is named in an xml file) + /// The actual value + public static void SetAttribute (object target, string subject, object targetValue) + { + MetaInfo.SetAttribute (target, null, subject, targetValue); + } + + /// + /// Stores information about a class and property + /// + /// The class about which information is stored (usually as class type or string) + /// The property in the class + /// The type of information (e.g. how the property is named in an xml file) + /// The actual value + public static void SetAttribute (object target, string property, string subject, object targetValue) + { + if (target is Type) + { + target = ((Type)target).FullName; + } + else if (target is Assembly) + { + target = ((Assembly)target).GetName().Name; + } + + MetaInfoEntry table = MetaInfo.GetEntryForced (target.ToString()); + table.SetValue (property, subject, targetValue); + } + + /// + /// Gets the stored information for a class. + /// Not only the class is examined, but also all superclasses and implemented interfaces. + /// + /// The class about which information will be retrieved + /// The type of information required + /// The information stored for this object and type of information, null if not found + public static object GetAttribute (Type target, string subject) + { + return MetaInfo.GetAttributeDefault (target, null, subject, null); + } + + /// + /// Gets the stored information for a class and property. + /// Not only the class is examined, but also all superclasses and implemented interfaces. + /// + /// The class type about which information will be retrieved + /// The property for which information is to be required + /// The type of information required + /// The information stored for the class and property, null if not found + public static object GetAttribute (Type target, string property, string subject) + { + return MetaInfo.GetAttributeDefault (target, property, subject, null); + } + + /// + /// Gets the stored information for a class. + /// Not only the class is examined, but also all superclasses and implemented interfaces. + /// + /// The object about which information will be retrieved + /// The type of information required + /// Default value if the information is not found + /// The information stored for this object and type, the default value if not found + public static object GetAttributeDefault (Type targetClass, string subject, object defaultValue) + { + return MetaInfo.GetAttributeDefault (targetClass, null, subject, defaultValue); + } + + /// + /// Gets the stored information for a class and property. + /// Not only the class is examined, but also all superclasses and implemented interfaces. + /// + /// The object about which information will be retrieved + /// The property in the class + /// The type of information required + /// Default value if the information is not found + /// The information stored for this class, property and type, the default value if not found + public static object GetAttributeDefault (Type targetClass, string property, string subject, object defaultValue) + { + // try to find appropriate value in super class + Type targetType = targetClass; + while (targetType != null) + { + string target = targetType.FullName; + MetaInfoEntry table = MetaInfo.GetEntry (target); + + if (table != null) + { + if (table.Contains(property, subject)) + { + return table.GetValue (property, subject); + } + } + + targetType = targetType.BaseType; + } + + // try to find an interface implemented by the target type + foreach (Type implementedInterface in targetClass.GetInterfaces()) + { + object attribute = MetaInfo.GetAttributeDefault (implementedInterface, property, subject, null); + if (attribute != null) + { + return attribute; + } + } + + return defaultValue; + } + + /// + /// Gets the stored information for an assembly. + /// + /// The assembly about which information will be retrieved + /// The type of information required + /// Default value if the information is not found + /// The information stored for this class, property and type, the default value if not found + public static object GetAttributeDefault (Assembly targetAssembly, string subject, object defaultValue) + { + return MetaInfo.GetAttributeDefault (targetAssembly.GetName().Name, subject, defaultValue); + } + + /// + /// Gets the stored information for a string + /// + /// The string about which information will be retrieved + /// The type of information required + /// Default value if the information is not found + /// The information stored for this class, property and type, the default value if not found + public static object GetAttributeDefault (string target, string subject, object defaultValue) + { + MetaInfoEntry table = MetaInfo.GetEntry (target); + + if (table != null) + { + if (table.Contains(null, subject)) + { + return table.GetValue (null, subject); + } + } + + return defaultValue; + } + + /// + /// Gets a list of all properties in a class, for which a value has been stored. + /// All superclasses and implemented interfaces of the class are examined too. + /// + /// The class + /// List of properties + public static string[] GetProperties (Type targetClass) + { + // try to find appropriate value in super class + ArrayList subjects = new ArrayList(); + Type targetType = targetClass; + while (targetType != null) + { + string fullName = targetType.FullName; + MetaInfoEntry entry = MetaInfo.GetEntry (fullName); + if (entry != null) + { + foreach (MetaInfoClass property in entry.Properties) + { + if (!subjects.Contains(property.Name)) + { + subjects.Add (property.Name); + } + } + } + + targetType = targetType.BaseType; + } + + // try to find interfaces implemented by the target type + foreach (Type implementedInterface in targetClass.GetInterfaces()) + { + string[] interfaceProperties = MetaInfo.GetProperties (implementedInterface); + foreach (string interfaceProperty in interfaceProperties) + { + if (!subjects.Contains(interfaceProperty)) + { + subjects.Add (interfaceProperty); + } + } + } + + return (string[]) subjects.ToArray(typeof(string)); + } + } + + /// + /// Special list for all entered information in MetaInfo + /// + internal class EntryList : ArrayList + { + } + + /// + /// Class which groups all information stored for a class in MetaInfo + /// + internal class MetaInfoEntry + { + private string _name; + private ArrayList _properties = new ArrayList(); + private MetaInfoClass _classProperties = new MetaInfoClass(null); + + /// + /// Default constructor + /// + /// The class + public MetaInfoEntry (string className) + { + _name = className; + } + + /// + /// Class for which information is stored + /// + public string ClassName + { + get {return _name;} + set {_name = value;} + } + + /// + /// Group of subjects and stored values directly under the class (so without properties) + /// + public MetaInfoClass Class + { + get {return _classProperties;} + } + + /// + /// List of all properties for which a value is stored + /// + public ArrayList Properties + { + get {return _properties;} + } + + /// + /// Gets a group of subjects and associated values for a property in the class + /// + /// The property + /// Group of subjects and associated values + private MetaInfoClass GetMetaInfo (string property) + { + foreach (MetaInfoClass metaInfo in _properties) + { + if (metaInfo.Name.Equals (property)) + { + return metaInfo; + } + } + + return null; + } + + /// + /// Gets a list of all properties for which a value is stored + /// + /// The list of properties + public string[] GetProperties() + { + ArrayList list = new ArrayList(); + foreach (MetaInfoClass metaInfo in _properties) + { + list.Add (metaInfo.Name); + } + + return (string[]) list.ToArray(typeof(string)); + } + + /// + /// Gets the stored value directly under a class for a certain subject + /// + /// The subject + /// The stored value, null if not found + public object GetValue (string subject) + { + return _classProperties[subject]; + } + + /// + /// Gets the stored value directly under a class for a certain subject + /// + /// The subject + /// The new value + public void SetValue (string subject, object targetValue) + { + _classProperties[subject] = targetValue; + } + + /// + /// Gets the stored value for a subject and property in the class + /// + /// The property + /// The subject + /// The stored value, null if not found + public object GetValue (string property, string subject) + { + if (property == null) + { + return this.GetValue (subject); + } + + MetaInfoClass metaInfo = this.GetMetaInfo (property); + if (metaInfo != null) + { + return metaInfo[subject]; + } + + return null; + } + + /// + /// Stores a new value for a subject and property in the class + /// + /// The property + /// The subject + /// The new value + public void SetValue (string property, string subject, object targetValue) + { + if (property == null) + { + this.SetValue (subject, targetValue); + return; + } + + MetaInfoClass metaInfo = this.GetMetaInfo (property); + if (metaInfo == null) + { + metaInfo = new MetaInfoClass (property); + _properties.Add (metaInfo); + } + + metaInfo[subject] = targetValue; + } + + /// + /// Tells whether a value is stored for a property and subject in the class + /// + /// The property name + /// The subject + /// Indication of presence of the property and subject + public bool Contains (string property, string subject) + { + if (property == null) + { + return _classProperties.Contains (subject); + } + + MetaInfoClass metaInfo = this.GetMetaInfo (property); + if (metaInfo != null) + { + return metaInfo.Contains (subject); + } + + return false; + } + } + + /// + /// Class which groups all information about a property of a class type in MetaInfo + /// + internal class MetaInfoClass + { + private string _name; + private Hashtable _entries = new Hashtable(); + + /// + /// Default constructor + /// + /// Property name + public MetaInfoClass (string property) + { + _name = property; + } + + /// + /// The property name for which information is stored + /// + public string Name + { + get {return _name;} + set {_name = value;} + } + + /// + /// Dictionary of all subjects and stored values. + /// The index specified the subject. + /// + public object this [object index] + { + get {return _entries[index];} + set {_entries[index] = value;} + } + + /// + /// Indication whether a subject is stored + /// + /// The subject + /// Indication whether the subject is stored + public bool Contains (object subject) + { + return CollectionSupport.ContainsObject (_entries.Keys, subject); + } + + /// + /// Gets a list of all subjects stored for this property. + /// + /// List of all subjects + public string[] GetProperties() + { + ArrayList properties = new ArrayList(); + + IDictionaryEnumerator DictionaryEnumerator = _entries.GetEnumerator(); + while (DictionaryEnumerator.MoveNext()) + { + if (DictionaryEnumerator.Key is string) + { + String subject = (string) DictionaryEnumerator.Key; + properties.Add (subject); + } + } + + return (string[]) properties.ToArray(typeof (string)); + } + } + + /// + /// Aggregate class for MetaInfoClass. + /// Used when writing and reading with XmlFile. + /// + public class MetaInfoClassAggregate : IAggregate + { + #region IAggregate Members + + private MetaInfoClass _class; + + /// + /// Aggregate for the meta info class + /// An aggregate is an "in between" object between the element set and XmlFile. + /// /> + /// /> + /// + public MetaInfoClassAggregate (object source) + { + _class = (MetaInfoClass) source; + UpdateAggregate(); + } + + /// + /// Gets the underlying object + /// + public object Source + { + get {return _class;} + } + + /// + /// Gets a list of properties which are accessed in a generic way. + /// + public string[] Properties + { + get + { + ArrayList props = new ArrayList (_class.GetProperties()); + props.Add ("Name"); + return (string[]) props.ToArray (typeof(string)); + } + } + + /// + /// Class type of a property + /// + /// The property name + /// The property type + public Type GetType(string property) + { + if (property.Equals ("Name")) + { + return typeof(string); + } + + return _class[property].GetType(); + } + + /// + /// Tells whether a property can be written + /// + /// The property name + /// Indication of writable + public bool CanWrite(string property) + { + return true; + } + + /// + /// Tells whether a property can be read + /// + /// The property name + /// Indication of readable + public bool CanRead(string property) + { + return true; + } + + /// + /// Gets the value of a property + /// + /// The property name + /// The property value + public object GetValue(string property) + { + if (property.Equals ("Name")) + { + return _class.Name; + } + + return _class[property]; + } + + /// + /// Sets a value for a certain property + /// + /// The property name + /// The new property value + public void SetValue(string property, object target) + { + if (property.Equals ("Name")) + { + _class.Name = (string) target; + return; + } + + _class[property] = target; + } + + /// + /// Updates the underlying source. Takes no action. + /// + public void UpdateSource() + { + } + + /// + /// Prepares the aggregate for subsequent GetValue calls. Takes no action. + /// + public void UpdateAggregate() + { + } + + /// + /// Gets a referenced value, i.e. a value corresponding with a reference string within the scope of the source. + /// Implementation is delegated to XmlFile.GetRegisteredTarget. + /// + /// Reference + /// The referenced object + public object GetReferencedValue (string reference) + { + return XmlFile.GetRegisteredTarget(this.Source, reference); + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/Oatc.OpenMI.Sdk.DevelopmentSupport.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/Oatc.OpenMI.Sdk.DevelopmentSupport.csproj new file mode 100644 index 00000000..e9338701 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/Oatc.OpenMI.Sdk.DevelopmentSupport.csproj @@ -0,0 +1,164 @@ + + + + Local + 8.0.50727 + 2.0 + {B7BE8C7F-0679-4022-81A5-6A314C058429} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.DevelopmentSupport + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.DevelopmentSupport + OnBuildSuccess + + + + + + + false + 3.5 + v4.0 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + ..\..\..\..\..\..\..\Binaries\Plugins\HydroModeler\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ..\..\ + false + 285212672 + false + + + TRACE + bin\Release\Oatc.OpenMI.Sdk.DevelopmentSupport.XML + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + False + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/ObjectSupport.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/ObjectSupport.cs new file mode 100644 index 00000000..0665fd31 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/ObjectSupport.cs @@ -0,0 +1,693 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; +using System.ComponentModel; +using System.Reflection; +using System.IO; +using System.Globalization; +using System.Security.Policy; +using System.Configuration.Assemblies; + + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// Number of methods for general operations on objects. They comprise: + /// 1. instantiating objects given a class name + /// 2. deep copy of objects + /// + public class ObjectSupport + { + private static ArrayList _assemblyList = new ArrayList(); + + #region Copy objects + + /// + /// Gets a deep copy of a specified object. + /// Deep copying copies all primitive and enumeration properties and the properties for which MetaInfo "ObjectCopy" is set to true + /// + /// The object to be copied + /// The copied object + public static object GetCopy(object source) + { + object copy = ObjectSupport.GetInstance(source.GetType()); + if (copy != null) + { + ObjectSupport.Copy (source, copy); + } + + return copy; + } + + /// + /// Gets a deep copy of a specified object and copies referenced files + /// Deep copying copies all primitive and enumeration properties and the properties for which MetaInfo "ObjectCopy" is set to true + /// + /// The object to be copied + /// The path in which copied files will be positioned (relative to original position) + /// The copied object + public static object GetCopy(object source, string path) + { + if (source == null) + { + return null; + } + + if (source is FileSystemInfo) + { + if ((path != null) && (!path.Trim().Equals(""))) + { + return CopyFile ((FileSystemInfo) source, path); + } + else + { + return ObjectSupport.GetInstance(source.GetType(), source.ToString()); + } + } + + object copy = ObjectSupport.GetInstance(source.GetType(), source.ToString()); + if (copy != null) + { + ObjectSupport.Copy (source, copy, path); + } + + return copy; + } + + /// + /// Creates an object which is a deep copy fo a source object, including copying of referenced file + /// Deep copying copies all primitive and enumeration properties and the properties for which MetaInfo "ObjectCopy" is set to true + /// + /// The object to be copied + /// Lookup table for already copied objects + /// Path where files are copied to + /// + private static object GetCopy(object source, Hashtable copiedObjects, string path) + { + if (copiedObjects[source] != null) + { + return copiedObjects[source]; + } + else if (source is FileSystemInfo) + { + object copiedFile = CopyFile ((FileSystemInfo) source, path); + copiedObjects.Add (source, copiedFile); + return copiedFile; + } + else + { + object copy = ObjectSupport.GetInstance(source.GetType()); + if (copy != null) + { + copiedObjects.Add (source, copy); + ObjectSupport.Copy (source, copy, copiedObjects, path); + } + return copy; + } + } + + /// + /// Deep copies all properties of source into the properties of target + /// Deep copying copies all primitive and enumeration properties and the properties for which MetaInfo "ObjectCopy" is set to true + /// + /// The source object + /// The target object + public static void Copy(object source, object target) + { + ObjectSupport.Copy (source, target, ""); + } + + /// + /// Deep copies all properties of source into the properties of target, including files + /// Deep copying copies all primitive and enumeration properties and the properties for which MetaInfo "ObjectCopy" is set to true + /// + /// The source object + /// The target object + /// Path where files are copied to + public static void Copy(object source, object target, string path) + { + ObjectSupport.Copy (source, target, new Hashtable(), path); + } + + /// + /// Gets the deep copy + /// + /// The object to be copied + /// The object which will be the copy + /// Collection of objects and their copied equivalents. Will be populated and queried during copy. + /// Relative path to location where copied files will reside + private static void Copy(object source, object target, Hashtable copiedObjects, string path) + { + Copy (source, target, copiedObjects, path, true); + } + + /// + /// Gets the deep copy + /// + /// The object to be copied + /// The object which will be the copy + /// Collection of objects and their copied equivalents. Will be populated and queried during copy. + /// Relative path to location where files will be copied to + /// Indicates whether the new object should refer to a copy or to the same object + private static void Copy(object source, object target, Hashtable copiedObjects, string path, bool copyValue) + { + if (source is IList) + { + IList copiedArray = (IList) target; + copiedArray.Clear(); + for (int j = 0; j < ((IList) source).Count; j++) + { + object copiedArrayValue = ((IList) source)[j]; + if (copyValue) + { + copiedArrayValue = ObjectSupport.GetCopy (copiedArrayValue, copiedObjects, path); + } + copiedArray.Add (copiedArrayValue); + } + } + else if (source is IDictionary) + { + IDictionary copiedArray = (IDictionary) target; + copiedArray.Clear(); + + IDictionaryEnumerator dictionaryEnumerator = ((IDictionary) source).GetEnumerator(); + while (dictionaryEnumerator.MoveNext()) + { + object copiedArrayKey = dictionaryEnumerator.Key; + object copiedArrayValue = dictionaryEnumerator.Value; + if (copyValue) + { + copiedArrayKey = ObjectSupport.GetCopy (copiedArrayKey, copiedObjects, path); + copiedArrayValue = ObjectSupport.GetCopy (copiedArrayValue, copiedObjects, path); + } + + if (!copiedArray.Contains (copiedArrayKey)) + { + copiedArray.Add (copiedArrayKey, copiedArrayValue); + } + } + } + // Special handling for files + else if (source is FileSystemInfo) + { + if (copyValue && (path != null) && (!path.Trim().Equals(""))) + { + object copiedValue = CopyFile ((FileSystemInfo) source, path); + } + } + else + { + PropertyInfo[] property = source.GetType().GetProperties(); + for (int i = 0; i < property.Length; i++) + { + object sourceValue = property[i].GetValue (source, null); + + if (sourceValue != null) + { + // Default copied value. This is just a reference to the original value + object copiedValue = sourceValue; + + // If the value has been copied before, use the same copied equivalent + if (copiedObjects.ContainsKey (sourceValue)) + { + copiedValue = copiedObjects[sourceValue]; + } + else + { + // Determine whether the property is to be copied + bool copyPropertyValue = (Boolean) MetaInfo.GetAttributeDefault (source.GetType(), property[i].Name, "ObjectCopy", false); + + if (copyPropertyValue) + { + if (property[i].CanWrite) + { + copiedValue = ObjectSupport.GetCopy (sourceValue, copiedObjects, path); + } + else + { + object targetValue = property[i].GetValue (target, null); + Copy (sourceValue, targetValue, copiedObjects, path); + } + } + else if ((sourceValue is IList) || (sourceValue is IDictionary)) + { + object targetValue = property[i].GetValue (target, null); + Copy (sourceValue, targetValue, copiedObjects, path, copyPropertyValue); + } + } + + // Populate the target object + if (property[i].CanWrite) + { + property[i].SetValue (target, copiedValue, null); + } + + if (!copiedObjects.Contains(sourceValue)) + { + copiedObjects.Add (sourceValue, copiedValue); + } + } + } + } + } + + /// + /// Gets a copy of a file. + /// If the file doesn't exist, the copied file will not exist neither. + /// + /// The file or directory to be copied + /// The relative path (starting from the location of the original file) to the directory where the file will be copied to + /// The copied file + private static FileSystemInfo CopyFile (FileSystemInfo fileSystem, string path) + { + if ((path != null) && (path.Trim() != "")) + { + if (fileSystem is FileInfo) + { + FileInfo file = (FileInfo) fileSystem; + FileInfo targetFile = FileSupport.ExpandRelativePath(file.Directory, path + "\\" + file.Name); + if (File.Exists(file.FullName)) + { + if (!targetFile.Directory.Exists) + { + targetFile.Directory.Create(); + } + file.CopyTo(targetFile.FullName, true); + } + else + { + if (File.Exists(targetFile.FullName)) + { + targetFile.Delete(); + } + } + + return new FileInfo(targetFile.FullName); + } + + if (fileSystem is DirectoryInfo) + { + DirectoryInfo dir = (DirectoryInfo) fileSystem; + DirectoryInfo targetDir = FileSupport.ExpandRelativeDirectory(dir, path); + + if (Directory.Exists(dir.FullName)) + { + DirCopy (dir.FullName, targetDir.FullName, false); + } + else + { + if (Directory.Exists(targetDir.FullName)) + { + Directory.Delete (targetDir.FullName); + } + } + + return targetDir; + } + + return null; + } + else + { + return fileSystem; + } + } + + private static void DirCopy(string srcdir, string destdir, bool recursive) + { + DirectoryInfo dir; + FileInfo[] files; + DirectoryInfo[] dirs; + string tmppath; + + //determine if the destination directory exists, if not create it + if (! Directory.Exists(destdir)) + { + Directory.CreateDirectory(destdir); + } + + dir = new DirectoryInfo(srcdir); + + //if the source dir doesn't exist, throw + if (! dir.Exists) + { + throw new ArgumentException("source dir doesn't exist -> " + srcdir); + } + + //get all files in the current dir + files = dir.GetFiles(); + + //loop through each file + foreach(FileInfo file in files) + { + //create the path to where this file should be in destdir + tmppath=Path.Combine(destdir, file.Name); + + //copy file to dest dir + file.CopyTo(tmppath, false); + } + + //cleanup + files = null; + + //if not recursive, all work is done + if (! recursive) + { + return; + } + + //otherwise, get dirs + dirs = dir.GetDirectories(); + + //loop through each sub directory in the current dir + foreach(DirectoryInfo subdir in dirs) + { + //create the path to the directory in destdir + tmppath = Path.Combine(destdir, subdir.Name); + + //recursively call this function over and over again + //with each new dir. + DirCopy(subdir.FullName, tmppath, recursive); + } + + //cleanup + dirs = null; + + dir = null; + } + + #endregion + + #region Assembly handling + + /// + /// Loads an assembly. + /// The assembly name can be either a full path to a file or a full or partial name of an assembly registered in the GAC. + /// An empty assembly name is ignored. + /// + /// The assembly name + /// Assembly cannot be found in the GAC + public static void LoadAssembly(string assemblyName) + { + if ((assemblyName == null) || (assemblyName.Trim().Equals(""))) + { + return; + } + + Assembly assembly = null; + + if (File.Exists(assemblyName)) + { + FileInfo assemblyFile = new FileInfo(assemblyName); + + foreach (Assembly loadedAssembly in _assemblyList) + { + if (loadedAssembly.Location.EndsWith(Path.DirectorySeparatorChar + assemblyFile.Name)) + { + return; + } + } + + assembly = Assembly.LoadFrom(assemblyFile.FullName); + } + else + { + try + { + // VS2005 fix + // The line below produces "System.Reflection.Assembly.LoadWithPartialName(string)' is obsolete: + // 'This method has been deprecated. Please use Assembly.Load() instead. " warning + // however for backwards compatibility we need to use this method, + // because some older XML configuration files still may use short assembly names +#pragma warning disable 0618 + assembly = Assembly.LoadWithPartialName(assemblyName); +#pragma warning restore 0618 + } + catch (FileNotFoundException e) + { + // bug in framework; assembly could be found + if (assembly == null) + { + throw e; + } + } + } + + LoadAssembly (assembly); + } + + /// + /// Loads an assembly. + /// + /// The assembly + public static void LoadAssembly (Assembly assembly) + { + if ((assembly != null) && !_assemblyList.Contains(assembly)) + { + _assemblyList.Add (assembly); + } + } + + /// + /// Tells whether an assembly has been loaded already. + /// + /// The assembly + /// Indication of loaded + public static bool IsLoadedAssembly (Assembly assembly) + { + return _assemblyList.Contains (assembly); + } + + #endregion + + #region Object instantiation + + /// + /// Gets the class object given a string describing the class. The following assemblies are queried: + /// 1. All assemblies loaded with ObjectSupport.LoadAssembly + /// 2. All assemblies which reside in the same directory as this assembly + /// + /// The class name, including path with namespaces + /// The class object or null if not found + /// Class cannot be found + public static Type GetType(string ClassType) + { + if (ClassType == null) + { + return null; + } + + Type type = Type.GetType(ClassType); + for (int i = 0; (i < _assemblyList.Count) && (type == null); i++) + { + Assembly assembly = (Assembly) _assemblyList[i]; + if (assembly != null) + { + type = assembly.GetType(ClassType); + } + } + + if (type == null) + { + throw new Exception("Cannot find class " + ClassType); + } + + return type; + } + + /// + /// Creates a new object. + /// Types with an argumentless constructor can be created this way + /// + /// Full class name of the object to be instantiated + /// New object, null if not possible + public static object GetInstance (string classType) + { + return ObjectSupport.GetInstance(ObjectSupport.GetType(classType)); + } + + /// + /// Creates a new object using a base value (e.g. a string with its value). + /// Normally primitives, enumerations and some value types can be instantiated this way. + /// Also types with constructors having one argument can be instantiated. + /// + /// Full class name of the object to be instantiated + /// Value which is passed as argument to the constructor + /// New object, null if not possible + public static object GetInstance (string classType, object baseValue) + { + return ObjectSupport.GetInstance(ObjectSupport.GetType(classType), baseValue, null); + } + + /// + /// Creates a new object. + /// Types with an argumentless constructor can be created this way + /// + /// Class type of the object to be instantiated + /// New object, null if not possible + public static object GetInstance (Type type) + { + if (type == null) + { + return null; + } + + Type[] types = new Type[0]; + + ConstructorInfo constructor = type.GetConstructor(types); + if (constructor != null) + { + return constructor.Invoke(null); + } + + return null; + } + + /// + /// Creates a new object using a base value (e.g. a string with its value). + /// Normally primitives, enumerations and some value types can be instantiated this way. + /// Also types with constructors having one argument can be instantiated. + /// + /// Class type of the object to be instantiated + /// Value which is passed as argument to the constructor + /// New object, null if not possible + public static object GetInstance (Type type, object baseValue) + { + return ObjectSupport.GetInstance (type, baseValue, null); + } + + /// + /// Creates a new object using a base value (e.g. a string with its value). + /// Normally primitives, enumerations and some value types can be instantiated this way. + /// Also types with constructors having one argument can be instantiated. + /// + /// Class type of the object to be instantiated + /// Value which is passed as argument to the constructor + /// Culture info used for parsing the base value + /// New object, null if not possible + public static object GetInstance (Type type, object baseValue, CultureInfo culture) + { + if (type == null) + { + return null; + } + else if (type.IsEnum) + { + return Enum.Parse (type, baseValue.ToString(), true); + } + else if (type.Equals (typeof (String))) + { + return baseValue.ToString(); + } + else if (type.Equals (typeof (Double))) + { + if (culture == null) + { + return Double.Parse (baseValue.ToString()); + } + else + { + return Double.Parse (baseValue.ToString(), culture); + } + } + else if (type.Equals (typeof (Boolean))) + { + return Boolean.Parse (baseValue.ToString()); + } + else if (type.Equals (typeof (Int16))) + { + return Int16.Parse (baseValue.ToString()); + } + else if (type.Equals (typeof (Int32))) + { + return Int32.Parse (baseValue.ToString()); + } + else if (type.Equals (typeof (Int64))) + { + return Int64.Parse (baseValue.ToString()); + } + else if (type.Equals (typeof (DateTime))) + { + return DateTime.Parse (baseValue.ToString(), culture.DateTimeFormat); + } + else + { + Type[] types; + Type classType; + ConstructorInfo constructor; + + if (baseValue != null) + { + types = new Type[1]; + classType = type; + + while (classType != null) + { + types[0] = baseValue.GetType(); + while (types[0] != null) + { + constructor = classType.GetConstructor(types); + if (constructor != null) + { + Object[] arguments = new Object[1]; + arguments[0] = baseValue; + Object instance = constructor.Invoke(arguments); + return instance; + } + else + { + types[0] = types[0].BaseType; + } + } + classType = classType.BaseType; + } + } + + types = new Type[0]; + classType = type; + while (classType != null) + { + constructor = type.GetConstructor(types); + if (constructor != null) + { + object instance = constructor.Invoke(null); + return instance; + } + classType = classType.BaseType; + } + + return null; + } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/ReadMe.txt b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/ReadMe.txt new file mode 100644 index 00000000..3e1e3eeb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/ReadMe.txt @@ -0,0 +1,3 @@ +This dir. will contain general support functions, like: + StringArrayToBuf + TimeEquals, TimeGreaterThen, etc. diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/AssemblyInfo.cs new file mode 100644 index 00000000..556db2d6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI DevelopmentSupport UnitTest Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4 Alpha 3")] +[assembly: AssemblyCopyright("GNU Library or Lesser General Public License (LGPL), MIT License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/Element.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/Element.cs new file mode 100644 index 00000000..4bb73732 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/Element.cs @@ -0,0 +1,57 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; + +namespace org.OpenMI.DevelopmentSupport.UnitTest +{ + /// + /// Summary description for Element. + /// + public class Element + { + private string _name; + private string _id; + + public Element() + { + } + + public string ID + { + get {return _id;} + set {_id = value;} + } + + public string Name + { + get {return _name;} + set {_name = value;} + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/NetworkClasses.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/NetworkClasses.cs new file mode 100644 index 00000000..163e37cd --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/NetworkClasses.cs @@ -0,0 +1,272 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.ComponentModel; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest +{ + /// + /// Summary description for Element. + /// + public class Element + { + private string _name; + private string _id; + + public Element() + { + } + + public string ID + { + get {return _id;} + set {_id = value;} + } + + public string Name + { + get {return _name;} + set {_name = value;} + } + } + + public class Location + { + private double m_x = 0; + private double m_y = 0; + + public Location() + { + } + + public override bool Equals(object obj) + { + if (obj is Location) + { + Location loc = (Location) obj; + return ((loc.X == X) && (loc.Y == Y)); + } + + return base.Equals (obj); + } + + public override int GetHashCode() + { + return base.GetHashCode (); + } + + public Location(double NewX, double NewY) + { + X = NewX; + Y = NewY; + } + + [Category("Location"), + Description("Meters East-West")] + public double X + { + get { return m_x; } + set { m_x = value; } + } + + [Category("Location"), + Description("Meters North-South")] + public double Y + { + get { return m_y; } + set { m_y = value; } + } + + public override String ToString() + { + return "(" + X + "," + Y + ")"; + } + } + + public class Node : Element + { + private Location m_location = new Location(); + private double m_height; + private double m_volume; + + public Node() + { + } + + public Node(String NewName, Location NewLocation, double NewHeight, double NewVolume) + { + Name = NewName; + Location = NewLocation; + Height = NewHeight; + Volume = NewVolume; + } + + [Category("Location"), + Description("Height above sea level")] + public double Height + { + get { return m_height; } + set { m_height = value; } + } + + [Category("Structure"), + Description("Containing water volume")] + // EditorAttribute (typeof(System.Windows.Forms.NumericUpDown), typeof(System.Drawing.Design.UITypeEditor))] + public double Volume + { + get { return m_volume; } + set { m_volume = value; } + } + + [Category("Location"), + Description("Meters from center of network")] + public Location Location + { + get { return m_location; } + set { m_location = value; } + } + } + + public class Branch : Element + { + private Node m_begin; + private Node m_end; + private double m_length; + private double m_width; + + public Branch() + { + } + + public Branch(String NewName, Node NewBegin, Node NewEnd, double NewLength, double NewWidth) + { + Name = NewName; + BeginNode = NewBegin; + EndNode = NewEnd; + Length = NewLength; + Width = NewWidth; + } + + [Category("Location")] + public Node BeginNode + { + get { return m_begin; } + set { m_begin = value; } + } + + [Category("Location")] + public Node EndNode + { + get { return m_end; } + set { m_end = value; } + } + + [Category("Structure")] + public double Length + { + get { return m_length; } + set { m_length = value; } + } + + [Category("Structure")] + public double Width + { + get { return m_width; } + set { m_width = value; } + } + } + + public class Network : Element + { + ArrayList mNodes = new ArrayList(); + ArrayList mBranches = new ArrayList(); + + DateTime _lastModificationTime; + + public Network() + { + } + + public ArrayList Nodes + { + get + { + return mNodes; + } + } + + public ArrayList Branches + { + get + { + return mBranches; + } + } + + public DateTime LastModificationTime + { + get {return _lastModificationTime;} + set {_lastModificationTime = value;} + } + + public static Network GetSampleNetwork() + { + Network network = new Network(); + network.Name = "Rhine"; + network.LastModificationTime = DateTime.Now; + + Node node1 = new Node("Node1", new Location (35, 53), 30.4, 18000); + Node node2 = new Node("Node2", new Location (23, 18), 26.4, 14000); + Node node3 = new Node("Node3", new Location (67, 63), 12.6, 12000); + Node node4 = new Node("Node4", new Location (12, 23), 0.3, 1500); + Node node5 = new Node("Node5", new Location (14, 34), 9.6, 2000); + + Branch branch1 = new Branch ("Nederrijn", node1, node2, 10, 80); + Branch branch2 = new Branch ("IJssel", node2, node3, 60, 30); + Branch branch3 = new Branch ("Rijn", node2, node4, 100, 40); + Branch branch4 = new Branch ("Nederrijn", node1, node5, 110, 50); + + network.Nodes.Add (node1); + network.Nodes.Add (node2); + network.Nodes.Add (node3); + network.Nodes.Add (node4); + network.Nodes.Add (node5); + + network.Branches.Add (branch1); + network.Branches.Add (branch2); + network.Branches.Add (branch3); + network.Branches.Add (branch4); + + return network; + } + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest.csproj new file mode 100644 index 00000000..195c9ca1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest.csproj @@ -0,0 +1,168 @@ + + + + Local + 8.0.50727 + 2.0 + {2E021CD1-94DA-4431-A5D7-1E810A834119} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest + OnBuildSuccess + + + + + + + 3.5 + v4.0 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + ./bin/Debug + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ./bin/Release + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\nunit.framework.dll + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + False + + + {B7BE8C7F-0679-4022-81A5-6A314C058429} + Oatc.OpenMI.Sdk.DevelopmentSupport + False + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/TestCalendarConverter.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/TestCalendarConverter.cs new file mode 100644 index 00000000..8c4b6b1a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/TestCalendarConverter.cs @@ -0,0 +1,183 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest +{ + /// + /// TemporalTester tests (gregorian) DateTime to + /// Modified Julian Date(/Time) and vice versa. + /// + [TestFixture] + public class TestCalendarConverter + { + public TestCalendarConverter() + { + } + + [Test] public void TestDates() + { + Evaluate(new DateTime(1985,1,1,1,0,0,0)); + Evaluate(new DateTime(1980,11,29,23,59,59,999)); + Evaluate(new DateTime(1980,11,30,00,00,00,000)); + + DateTime inDateTime_1 = new DateTime(1980,11,30,23,59,59,999); + DateTime inDateTime_2 = inDateTime_1.AddSeconds(1); + + Evaluate(inDateTime_1); + Evaluate(inDateTime_2); + Evaluate(new DateTime(1981,1,28,23,59,59,999)); + } + + [Test] public void TestYears() + { + int nItems = 2000; + DateTime gregDate = new DateTime(1111,12,15,1,0,0,0); + + for ( int i = 0 ; i < nItems ; i++ ) + { + gregDate = gregDate.AddYears(1); + Evaluate(gregDate); + } + } + + [Test] public void TestMonths() + { + int nItems = 200; + DateTime gregDate = new DateTime(1998,11,30,23,59,59,999); + + for ( int i = 0 ; i < nItems ; i++ ) + { + gregDate = gregDate.AddMonths(1); + Evaluate(gregDate); + } + } + + [Test] public void TestDays() + { + int nItems = 1000; + DateTime gregDate = new DateTime(1999,11,30,23,59,59,999); + + for ( int i = 0 ; i < nItems ; i++ ) + { + gregDate = gregDate.AddDays(1); + Evaluate(gregDate); + } + } + + [Test] public void TestHours() + { + int nItems = 500; + DateTime gregDate = new DateTime(1999,12,25,23,59,59,999); + + for ( int i = 0 ; i < nItems ; i++ ) + { + gregDate = gregDate.AddHours(1); + Evaluate (gregDate); + } + } + + [Test] public void TestMinutes() + { + int nItems = 500; + DateTime gregDate = new DateTime(1999,12,31,21,00,59,999); + + for ( int i = 0 ; i < nItems ; i++ ) + { + gregDate = gregDate.AddMinutes(1); + Evaluate(gregDate); + } + } + + [Test] public void TestSeconds() + { + int nItems = 1000; + DateTime gregDate = new DateTime(1999,12,31,23,55,00,499); + + for ( int i = 0 ; i < nItems ; i++ ) + { + gregDate = gregDate.AddSeconds(1); + Evaluate(gregDate); + } + } + + [Test] public void TestMilliSeconds() + { + int nItems = 5000; + DateTime gregDate = new DateTime(1999,12,31,23,59,58,350); + + for ( int i = 0 ; i < nItems ; i++ ) + { + gregDate = gregDate.AddMilliseconds(1); + Evaluate(gregDate); + } + } + + [Test] public void SomeDates() + { + double zero = 0; + DateTime zeroDate = CalendarConverter.ModifiedJulian2Gregorian (zero); + + Assert.AreEqual (1858, zeroDate.Year, "Year of Modified Julian Date Zero"); + Assert.AreEqual (11, zeroDate.Month, "Month of Modified Julian Date Zero"); + Assert.AreEqual (17, zeroDate.Day, "Day of Modified Julian Date Zero"); + + double jan1_1985 = 46066.25; + DateTime jan1_1985Date = CalendarConverter.ModifiedJulian2Gregorian (jan1_1985); + + Assert.AreEqual (1985, jan1_1985Date.Year, "Year of jan 1 1985"); + Assert.AreEqual (1, jan1_1985Date.Month, "Month of jan 1 1985"); + Assert.AreEqual (1, jan1_1985Date.Day, "Day of jan 1 1985"); + Assert.AreEqual (6, jan1_1985Date.Hour, "Hour of jan 1 1985"); + } + + [Test] public void TrickyDates() + { + double julianDate = 46096.999999998196; + DateTime gregorian = CalendarConverter.ModifiedJulian2Gregorian (julianDate); + + Assert.AreEqual (1985, gregorian.Year, "Year expected"); + Assert.AreEqual (2, gregorian.Month, "Month expected"); + Assert.AreEqual (1, gregorian.Day, "Day expected"); + } + + private void Evaluate(DateTime inGregDate) + { + double modJulDate = CalendarConverter.Gregorian2ModifiedJulian(inGregDate); + long mjdInt = (long) modJulDate; + + DateTime outGregDate = CalendarConverter.ModifiedJulian2Gregorian(modJulDate); + + Assert.AreEqual (inGregDate.ToString(), outGregDate.ToString(), modJulDate.ToString()); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/TestCollectionSupport.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/TestCollectionSupport.cs new file mode 100644 index 00000000..44325715 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/TestCollectionSupport.cs @@ -0,0 +1,70 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Collections; +using NUnit.Framework; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest +{ + /// + /// Summary description for TestCollectionSupport. + /// + [TestFixture] + public class TestCollectionSupport + { + private ArrayList list = new ArrayList(); + private Location loc1 = new Location (4, 5); + private Location loc2 = new Location (4, 5); + private Location loc3 = new Location (6, 8); + + public TestCollectionSupport() + { + } + + [SetUp] public void Init() + { + list.Add (loc1); + list.Add (loc3); + } + + [Test] public void Collection() + { + Assert.AreEqual (loc1.Equals(loc2), true); + Assert.AreEqual (loc1.Equals(loc3), false); + + Assert.AreEqual (list.Contains (loc1), true); + Assert.AreEqual (list.Contains (loc2), true); + + Assert.AreEqual (CollectionSupport.ContainsObject (list, loc1), true); + Assert.AreEqual (CollectionSupport.ContainsObject (list, loc2), false); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/TestMetaInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/TestMetaInfo.cs new file mode 100644 index 00000000..48511aec --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/TestMetaInfo.cs @@ -0,0 +1,83 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using NUnit.Framework; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest +{ + /// + /// Summary description for TestMetaInfo. + /// + [TestFixture] + public class TestMetaInfo + { + public TestMetaInfo() + { + } + + [SetUp] public void Init() + { + MetaInfo.SetAttribute (typeof (Element), "subject1", "e1"); + MetaInfo.SetAttribute (typeof (Element), "property1", "subject1", "ep1"); + MetaInfo.SetAttribute (typeof (Element), "property2", "subject1", "ep2"); + MetaInfo.SetAttribute (typeof (Element), "property3", "subject1", "ep3"); + + MetaInfo.SetAttribute (typeof (Node), "subject2", "n1"); + MetaInfo.SetAttribute (typeof (Node), "property1", "subject2", "np1"); + MetaInfo.SetAttribute (typeof (Node), "property2", "subject1", null); + MetaInfo.SetAttribute (typeof (Node), "property3", "subject1", "np3"); + } + + [Test] public void Attribute() + { + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Element), "subject1"), "e1"); + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Element), "property1", "subject1"), "ep1"); + Assert.AreEqual (MetaInfo.GetAttributeDefault (typeof (Element), "property1", "subject1", "def"), "ep1"); + Assert.AreEqual (MetaInfo.GetAttributeDefault (typeof (Element), "property1", "subject2", "def"), "def"); + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Element), "property1", "subject2"), null); + } + + [Test] public void AttributeInheritance() + { + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Node), "subject1"), "e1"); + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Node), "subject2"), "n1"); + + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Node), "property1", "subject1"), "ep1"); + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Node), "property1", "subject2"), "np1"); + + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Element), "property3", "subject1"), "ep3"); + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Node), "property3", "subject1"), "np3"); + + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Element), "property2", "subject1"), "ep2"); + Assert.AreEqual (MetaInfo.GetAttribute (typeof (Node), "property2", "subject1"), null, "null overridden"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/TestObjectSupport.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/TestObjectSupport.cs new file mode 100644 index 00000000..99f4ea64 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/TestObjectSupport.cs @@ -0,0 +1,147 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.ComponentModel; +using System.Reflection; +using System.Globalization; +using NUnit.Framework; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest +{ + /// + /// Summary description for Class1. + /// + [TestFixture] + public class TestObjectSupport + { + private Network network = null; + private Node node1 = null; + private Node node2 = null; + private Location commonLocation = null; + /// + /// + /// + [SetUp] public void Init() + { + node1 = new Node("Node1", new Location (35, 53), 30.4, 18000); + node2 = new Node("Node2", new Location (23, 18), 26.4, 14000); + network = new Network(); + network.Nodes.Add (node1); + network.Nodes.Add (node2); + commonLocation = new Location (12, 37); + } + + /// + /// + /// + /// + [Test] public void SimpleCopy() + { + Location loc = new Location (4, 5); + Location loc2 = new Location(); + ObjectSupport.Copy (loc, loc2); + + Assert.AreEqual(loc2.X, 4, "Copy simple object (1)"); + Assert.AreEqual(loc2.Y, 5, "Copy simple object (2)"); + + Location loc3 = (Location) ObjectSupport.GetCopy (loc); + Assert.AreEqual(loc3.X, 4, "GetCopy simple object (1)"); + Assert.AreEqual(loc3.Y, 5, "GetCopy simple object (2)"); + } + + [Test] public void NestedCopy() + { + MetaInfo.SetAttribute (typeof(Network), "Nodes", "ObjectCopy", false); + + Network copy = (Network) ObjectSupport.GetCopy (network); + + Assert.AreEqual("Node1", ((Node)copy.Nodes[0]).Name, "Name of Node1"); + Assert.AreEqual("Node2", ((Node)copy.Nodes[1]).Name, "Name of Node2"); + + Assert.AreSame(node1, ((Node)copy.Nodes[0]), "No copy of node1"); + Assert.AreEqual(35, ((Node)copy.Nodes[0]).Location.X, "Location X"); + + MetaInfo.SetAttribute (typeof(Network), "Nodes", "ObjectCopy", true); + Network copy2 = (Network) ObjectSupport.GetCopy (network); + Assert.AreEqual("Node1", ((Node)copy2.Nodes[0]).Name, "Name of node1 when node is copied"); + Assert.AreEqual(false, ((Node)copy2.Nodes[0]) == node1, "Copy of node1"); + } + + [Test] public void NonHierarchicalCopy() + { + MetaInfo.SetAttribute (typeof(Network), "Nodes", "ObjectCopy", true); + MetaInfo.SetAttribute (typeof(Node), "Location", "ObjectCopy", true); + + node1.Location = commonLocation; + node2.Location = commonLocation; + + Network copy = (Network) ObjectSupport.GetCopy (network); + + Assert.AreEqual(((Node)copy.Nodes[0]).Location == ((Node)copy.Nodes[1]).Location, true); + Assert.AreEqual(((Node)copy.Nodes[0]).Location == commonLocation, false); + } + + /// + /// + /// + /// + [Test] public void FindType() + { + ObjectSupport.LoadAssembly (Assembly.GetAssembly(this.GetType()).Location); + Type type = ObjectSupport.GetType ("Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest.Location"); + Assert.AreEqual (typeof (Location), type); + } + + [Test] public void Instantiation() + { + object node = ObjectSupport.GetInstance(typeof(Node)); + Assert.AreEqual (node is Node, true); + + object str = ObjectSupport.GetInstance(typeof(string), "hello"); + Assert.AreEqual (str.Equals("hello"), true); + + object d = ObjectSupport.GetInstance(typeof(int), "23"); + Assert.AreEqual (d.Equals (23), true); + + object b = ObjectSupport.GetInstance(typeof(bool), "true"); + Assert.AreEqual (b, true); + } + + [Test] public void InstantiationWithCulture() + { + object d1 = ObjectSupport.GetInstance(typeof(double), "23.4", CultureInfo.CreateSpecificCulture("")); + Assert.AreEqual (true, d1.Equals (23.4), "Neutral culture"); + + object d2 = ObjectSupport.GetInstance(typeof(double), "23,4", CultureInfo.CreateSpecificCulture("nl")); + Assert.AreEqual (true, d2.Equals (23.4), "Dutch culture"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/TestXmlFileSupport.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/TestXmlFileSupport.cs new file mode 100644 index 00000000..a2598702 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/UnitTest/TestXmlFileSupport.cs @@ -0,0 +1,129 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.Globalization; +using System.IO; +using NUnit.Framework; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest +{ + /// + /// Summary description for Class1. + /// + [TestFixture] + public class TestXmlFileSupport + { + [SetUp] public void Initialize() + { + File.Delete ("Network.xml"); + File.Delete ("Network1.xml"); + File.Delete ("Network2.xml"); + File.Delete ("Network3.xml"); + + MetaInfo.SetAttribute (typeof(Element), "ID", "XmlKey", true); + MetaInfo.SetAttribute (typeof(Element), "ID", "XmlRefName", "RefID"); + MetaInfo.SetAttribute (typeof(Network), "Nodes", "XmlIndex", 1); + MetaInfo.SetAttribute (typeof(Network), "XmlFile", true); + + ObjectSupport.LoadAssembly(this.GetType().Assembly); + } + + [Test] public void SaveAndOpen() + { + Network network = Network.GetSampleNetwork(); + DateTime date = DateTime.Now; + + FileInfo file = new FileInfo("Network.xml"); + + XmlFile.Write (network, file); + + Assert.IsTrue (File.Exists(file.FullName), "File created"); + Assert.IsTrue (XmlFile.GetRegisteredFile(network).FullName == file.FullName, "Registration correct"); + + Network network1 = (Network) XmlFile.GetRead (file); + Assert.AreSame (network, network1, "Same instance"); + + Network network2 = new Network(); + XmlFile.Read (network2, file); + + Assert.AreEqual (false, network == network2, "New instance is created"); + Assert.AreEqual (network.Nodes.Count, network2.Nodes.Count, "Read file"); + Assert.AreEqual (((Node) network.Nodes[0]).Name, ((Node) network2.Nodes[0]).Name, "Node name"); + Assert.AreSame (((Branch) network2.Branches[0]).BeginNode, (Node) network2.Nodes[0], "Branch refers to node in node list"); + Assert.AreSame (((Branch) network2.Branches[0]).EndNode, ((Branch) network2.Branches[1]).BeginNode, "Branches share same node object"); + Assert.AreEqual (network.LastModificationTime.ToString(), network2.LastModificationTime.ToString(), "Date Time"); + } + + [Test] public void ReferencedFiles() + { + Network network1 = Network.GetSampleNetwork(); + Network network2 = Network.GetSampleNetwork(); + + Network network3 = new Network(); + network3.Nodes.Add (network1); + network3.Nodes.Add (network2); + + FileInfo file = new FileInfo("Network3.xml"); + XmlFile.Write (network3, file); + + Assert.IsTrue (File.Exists(file.FullName), "File written"); + Assert.IsTrue (File.Exists(new FileInfo("Network1.xml").FullName), "Referenced file written"); + + Assert.AreEqual (new FileInfo("Network1.xml").FullName, XmlFile.GetRegisteredFile(network1).FullName, "File registered"); + } + + [Test] public void SameID() + { + Network network1 = Network.GetSampleNetwork(); + Network network2 = Network.GetSampleNetwork(); + + ((Node) network1.Nodes[0]).Location.X = 44; + ((Node) network2.Nodes[0]).Location.X = 55; + + Network network3 = new Network(); + network3.Nodes.Add (network1.Nodes[0]); + network3.Nodes.Add (network2.Nodes[0]); + + XmlFile.Write (network1, new FileInfo("Network1.xml")); + XmlFile.Write (network2, new FileInfo("Network2.xml")); + XmlFile.Write (network3, new FileInfo("Network3.xml")); + + Assert.IsTrue (File.Exists(new FileInfo("Network3.xml").FullName), "File written"); + Assert.IsTrue (File.Exists(new FileInfo("Network1.xml").FullName), "Referenced file written"); + + Network network = new Network(); + XmlFile.Read (network, new FileInfo("Network3.xml")); + + Assert.AreEqual (2, network.Nodes.Count, "Number of nodes read"); + Assert.AreEqual (((Node)network1.Nodes[0]).ID, ((Node)network.Nodes[0]).ID, "Node is the same"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/XmlFile.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/XmlFile.cs new file mode 100644 index 00000000..ee5967eb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/XmlFile.cs @@ -0,0 +1,1650 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; +using System.ComponentModel; +using System.Reflection; +using System.Collections; +using System.Globalization; +using System.IO; +using System.Xml; +using System.Xml.Schema; + +namespace Oatc.OpenMI.Sdk.DevelopmentSupport +{ + /// + /// Support class for reading and writing objects to xml. + /// Each object to be written or read is accessed in a generic way for the properties to write or read. This is done via an aggregate intermediate object. + /// Objects are written once in an xml file. If they are encountered more than once, references are written. References may refer to other files. + /// Writing and reading strings is always done and expected in neutral culture (English-US) in order to enable exchangability. + /// Needed meta info is retrieved from MetaInfo. + /// MetaInfo used by XmlFile + /// + /// + /// + public class XmlFile + { + private static CultureInfo _culture = CultureInfo.CreateSpecificCulture (""); + + private static Hashtable _fileList = new Hashtable(); + private static ArrayList _readObjectsList = new ArrayList(); + private static ArrayList _unreadObjectsList = new ArrayList(); + private static Hashtable _rootList = new Hashtable(); + private static Hashtable _rootKeyList = new Hashtable(); + private static Hashtable _rootObjectList = new Hashtable(); + private static Hashtable _aggregateTable = new Hashtable(); + + #region Public Read Methods + + /// + /// Reads an object from file + /// The file to read should have been registered with the object earlier by a reqad or write action + /// + /// The object to be read + /// Cannot find file to read + /// Cannot resolve class type when an object for an xml element must be instantiated + /// Cannot find class type + /// Xml element holds a reference, but referenced object cannot be found + /// Schema cannot be found although it has been specified in MetaInfo + /// Validation error when xml file doesn't meet specified schema + public static void Read (object target) + { + string file = (string) _fileList[target]; + if (file != null) + { + XmlFile.Read (target, new FileInfo(file)); + } + } + + /// + /// Reads an object from file + /// + /// The object to be read + /// The file containing the object's information + /// Cannot find file to read + /// Cannot resolve class type when an object for an xml element must be instantiated + /// Cannot find class type + /// Xml element holds a reference, but referenced object cannot be found + /// Schema cannot be found although it has been specified in MetaInfo + /// Validation error when xml file doesn't meet specified schema + public static void Read (object target, FileInfo file) + { + if (file.Exists) + { + XmlFile.CreateRegistration (target); + + XmlReader reader = new XmlTextReader(file.FullName); + + string xmlValidation = (string) MetaInfo.GetAttribute (target.GetType(), "XmlSchema"); + string xmlNameSpace = (string) MetaInfo.GetAttribute (target.GetType(), "XmlNameSpace"); + string xsdPackage = (string) MetaInfo.GetAttribute (target.GetType(), "XsdPackage"); + + if ((xmlValidation != null) && (xmlNameSpace != null)) + { + Stream schemaStream = XmlFile.GetSchema (target.GetType(), xmlValidation, xsdPackage); + if (schemaStream != null) + { + XmlSchema schema = XmlSchema.Read(schemaStream, new ValidationEventHandler (ValidationCallBack)); + + // VS2005 fix - the following code is deprecated and ws replaced by new code - see below + //XmlSchemaCollection xsc = new XmlSchemaCollection(); + //xsc.ValidationEventHandler += new ValidationEventHandler( ValidationCallBack ); + //xsc.Add( schema ); //XSD schema + + //reader = new XmlValidatingReader( reader ); + //( (XmlValidatingReader) reader ).ValidationType = ValidationType.Schema; + //( (XmlValidatingReader) reader ).ValidationEventHandler += new ValidationEventHandler( ValidationCallBack ); + //( (XmlValidatingReader) reader ).Schemas.Add( xsc ); + + XmlSchemaSet xss = new XmlSchemaSet(); + xss.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack); + xss.Add(schema); //XSD schema + + XmlReaderSettings settings = new XmlReaderSettings(); + settings.ValidationType = ValidationType.Schema; + settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack); + settings.Schemas.Add( xss ); + + reader = XmlReader.Create( reader, settings ); + } + else + { + throw new Exception ("Required schema " + xmlValidation + " not found for parsing " + file.FullName); + } + } + else + { + } + + _fileList[target] = file.FullName; + _readObjectsList.Add (target); + _unreadObjectsList.Remove (target); + + reader.MoveToContent(); + XmlFile.Read (reader, target, null, null, target); + reader.Close(); + } + else + { + _fileList[target] = file.FullName; + } + } + + /// + /// Reads and creates an object from a given file + /// + /// The file containig the object to be read + /// Populated object + /// Cannot find file to read + /// Cannot resolve class type when an object for an xml element must be instantiated + /// Cannot find class type + /// Xml element holds a reference, but referenced object cannot be found + /// Schema cannot be found although it has been specified in MetaInfo + /// Validation error when xml file doesn't meet specified schema + public static object GetRead (FileInfo file) + { + return XmlFile.GetRead(file, null); + } + + /// + /// Creates and reads an object from a given file + /// + /// The file containig the object to be read + /// The expected class type of the new object + /// The new populated object + /// Cannot find file to read + /// Cannot resolve class type when an object for an xml element must be instantiated + /// Cannot find class type + /// Xml element holds a reference, but referenced object cannot be found + /// Schema cannot be found although it has been specified in MetaInfo + /// Validation error when xml file doesn't meet specified schema + public static object GetRead (FileInfo file, Type objectType) + { + if (file.Exists) + { + object target = GetFileObject(file.FullName); + + if (target == null) + { + XmlReader reader = new XmlTextReader(file.FullName); + reader.MoveToContent(); + + string classType = (string) MetaInfo.GetAttributeDefault(reader.GetAttribute ("Type"), "XmlTypeAlias", reader.GetAttribute ("Type")); + ObjectSupport.LoadAssembly (reader.GetAttribute ("Assembly")); + + reader.Close(); + + if (classType != null) + { +// classType = (string) MetaInfo.GetAttributeDefault (ObjectSupport.GetType(ClassType), "XmlTypeAlias", classType); + target = ObjectSupport.GetInstance (classType); + } + + if ((target == null) && (objectType != null)) + { + target = ObjectSupport.GetInstance (objectType); + } + + if (target == null) + { + if (classType != null) + { + throw new Exception("Could not find class type " + classType); + } + else if (objectType != null) + { + throw new Exception("Could not find class type " + objectType.FullName); + } + } + } + + + XmlFile.Read (target, file); + + return target; + } + else + { + throw new Exception ("File doesn't exist: " + file.FullName); + } + } + + #endregion + + #region Xml Validation + + /// + /// Callback method used for validation against an xsd file + /// + /// Sender of the method + /// Error details + /// Validation error when xml file doesn't meet specified schema + private static void ValidationCallBack (object sender, ValidationEventArgs args) + { + throw new Exception ("Validation error: " + args.Message); + } + + /// + /// Gets a stream containing an xsd file, which resides within an assembly. + /// + /// If the xsdPackage isn't defined, type in the assembly in which the xsd file should reside + /// Name of the schema + /// The assembly in which the xsd file resides + /// The xsd stream, null if not found + private static Stream GetSchema (Type type, string xmlSchema, string xsdPackage) + { + Assembly assembly = Assembly.GetAssembly(type); + if ((xsdPackage != null) && (!xsdPackage.Trim().Equals(""))) + { + // VS2005 fix + // this fix also needed to include full name to XsdPackage meta-info in XmlConfiguration.cs + //assembly = Assembly.LoadWithPartialName(xsdPackage); + assembly = Assembly.Load( xsdPackage ); + } + + Stream stream = assembly.GetManifestResourceStream(xmlSchema); + if (stream == null) + { + string assemblyName = assembly.GetName().Name; + stream = assembly.GetManifestResourceStream(assemblyName + "." + xmlSchema); + } + + if (stream == null) + { + FileInfo assemblyFile = new FileInfo(assembly.Location); + FileInfo schema = FileSupport.ExpandRelativePath (assemblyFile.Directory, xmlSchema); + if (schema.Exists) + { + stream = schema.OpenRead(); + } + } + + return stream; + } + + #endregion + + #region Internal Read Methods + + /// + /// Reads the current xml element into an object. + /// Then moves the xml stream forward to the next element. + /// If the next element is one level deeper, that element is read by calling this method recursively. + /// Finally the current element is positioned on the first unread element. + /// By calling this method at the top level of an xml file, the whole xml file is read. + /// + /// The xml stream + /// The object which will be populated with data within the current xml element + /// The parent of the object, i.e. the object to which the target will be assigned + /// The property of the parent + /// The root object of the xml file + /// Read only property has null value, but a property of this object should be set according to the xml file + private static void Read (XmlReader reader, object target, object parent, string targetProperty, object root) + { + // If it is a reference, the object has been read already and assigned to its parent + string Reference = XmlFile.GetKeyFromXml(target.GetType(), reader, true); + if (Reference != null) + { + XmlFile.MoveToNextElement(reader); // moves to next element + return; + } + + bool inCurrentXmlFile = (reader.GetAttribute ("File") == null); + + if ((reader.GetAttribute ("File") == null) && (Reference == null)) + { + _rootList[target] = root; + } + + XmlFile.RegisterObject (target, reader, root); + + IAggregate aggregate = XmlFile.GetAggregate(target); + XmlFile.ReadAttributes (aggregate, reader, root); + + string defaultProperty = MetaInfo.GetAttribute (target.GetType(), "XmlDefaultProperty") as string; + if (defaultProperty != null) + { + parent = target; + target = aggregate.GetValue(defaultProperty); + targetProperty = defaultProperty; + + aggregate = XmlFile.GetAggregate(target); + } + + int processLevel = reader.Depth; + + string[] properties = aggregate.Properties; + + // Special handling for lists + if (target is IList) + { + IList List = (IList) target; + List.Clear(); + + string listEntryClass = (string) MetaInfo.GetAttributeDefault (parent.GetType(), targetProperty, "XmlItemType", MetaInfo.GetAttribute (target.GetType(), "XmlItemType")); + + if (!reader.IsEmptyElement) + { + XmlFile.MoveToNextElement(reader); // moves to first element + while ((reader.Depth > processLevel) && (reader.NodeType != XmlNodeType.EndElement)) + { + object targetValue = XmlFile.GetObject (reader, ObjectSupport.GetType(listEntryClass), root); + if (targetValue != null) + { + XmlFile.Read (reader, targetValue, target, null, root); + List.Add (targetValue); + } + else + { + XmlFile.MoveToNextElement (reader); + } + } + } + else + { + XmlFile.MoveToNextElement(reader); // moves to next element + } + } + // Special handling for hashtables + else if (target is IDictionary) + { + IDictionary Dictionary = (IDictionary) target; + Dictionary.Clear(); + + if (!reader.IsEmptyElement) + { + XmlFile.MoveToNextElement(reader); // moves to first dictionary element + while ((reader.Depth > processLevel) && (reader.NodeType != XmlNodeType.EndElement)) + { + XmlFile.MoveToNextElement(reader); // moves to key + object keyValue = XmlFile.GetObject (reader, null, root); + XmlFile.Read (reader, keyValue, target, null, root); + + object targetValue = XmlFile.GetObject (reader, null, root); + if (targetValue != null) + { + XmlFile.Read (reader, targetValue, target, null, root); + } + else + { + XmlFile.MoveToNextElement (reader); + } + + Dictionary.Add (keyValue, targetValue); + } + } + else + { + XmlFile.MoveToNextElement(reader); // moves to next element + } + } + else + { + if (!reader.IsEmptyElement) + { + XmlFile.MoveToNextElement(reader); + + // Read all sub elements + while (!reader.EOF && (reader.Depth > processLevel)) + { + string property = XmlFile.GetProperty(aggregate, reader.Name); + if (property != null) + { + if ((Boolean) MetaInfo.GetAttributeDefault (target.GetType(), property, "XmlSkipElement", false)) + { + XmlFile.MoveToNextElement(reader); + while (reader.Depth > processLevel + 1) + { + XmlFile.MoveToNextElement(reader); + } + } + else + { + object targetValue; + if (!aggregate.CanWrite(property)) + { + targetValue = aggregate.GetValue(property); + if (targetValue == null) + { + throw new Exception ("Cannot access readonly element " + property + " at tag " + reader.Name); + } + } + else + { + Type type = ObjectSupport.GetType((string) MetaInfo.GetAttributeDefault (target.GetType(), property, "XmlType", aggregate.GetType(property).FullName)); + targetValue = XmlFile.GetObject (reader, type, root); + } + + if (targetValue != null) + { + XmlFile.Read (reader, targetValue, target, property, root); + if (aggregate.CanWrite(property)) + { + aggregate.SetValue (property, targetValue); + } + } + else + { + XmlFile.MoveToNextElement (reader); + } + } + } + else + { + XmlFile.MoveToNextElement(reader); // moves to next + } + } + } + else + { + XmlFile.MoveToNextElement(reader); // moves to next + } + } + + // Ensures that UpdateSource is only called once per aggregate + if (inCurrentXmlFile) + { + aggregate.UpdateSource(); + } + } + + /// + /// Gets the object associated with an xml element. + /// Different procedures are followed for the following cases: + /// 1) The file is mentioned. Then that file is read and the top object (a.k.a. the root) of that file is returned + /// 2) The file is mentioned and the xml element is defined as a reference. Then that file is read (if not before) and the root of the file is asked for a property with the specified reference. + /// 3) The file isn't mentioned and the xml element is defined as a reference. Then the object is retrieved from the registration. + /// 4) Otherwise the object is instantiated + /// + /// The xml stream + /// The type to instantiate when no type is specified in the xml element + /// The top object of the xml stream + /// The object associated with the xml element + /// Cannot resolve class type when an object for an xml element must be instantiated + /// Cannot find class type + /// Cannot instantiate object for known class type + /// Xml element holds a reference, but referenced object cannot be found + private static object GetObject (XmlReader reader, Type defaultType, object root) + { + object targetValue = null; + + string file = reader.GetAttribute ("File"); + string classType = (string) MetaInfo.GetAttributeDefault(reader.GetAttribute ("Type"), "XmlTypeAlias", reader.GetAttribute ("Type")); + + ObjectSupport.LoadAssembly (reader.GetAttribute ("Assembly")); + + Type targetType = null; + + if (classType != null) + { +// classType = (string) MetaInfo.GetAttributeDefault (ObjectSupport.GetType(classType), "XmlTypeAlias", classType); + targetType = ObjectSupport.GetType (classType); + } + + if ((classType == null) && (defaultType != null)) + { + targetType = defaultType; + } + + string reference = XmlFile.GetKeyFromXml (targetType, reader, true); + if ((targetType == null) && (reference == null)) + { + if (classType != null) + { + throw new Exception ("Cannot find type " + classType + " when reading element tag " + reader.Name); + } + else + { + throw new Exception ("Cannot resolve element tag " + reader.Name); + } + } + + if (file != null) + { + string fullFile = FileSupport.ExpandRelativePath(XmlFile.GetRegisteredFile(root).Directory, file).FullName; + object targetRoot = GetFileObject (fullFile); + if ((reference != null) && (!reference.Equals(""))) + { + if (File.Exists (fullFile)) + { + if (targetRoot == null) + { + targetRoot = XmlFile.GetRead(new FileInfo(fullFile), targetType); + } + + IAggregate aggregate = XmlFile.GetAggregate(targetRoot); + targetValue = aggregate.GetReferencedValue (reference); + + if (targetValue == null) + { + throw new Exception ("Cannot find referenced element " + reference + " at tag " + reader.Name); + } + } + else + { + if (!((bool) MetaInfo.GetAttributeDefault (targetType, "XmlAllowFileMissing", false))) + { + throw new Exception ("Referenced file does not exist: " + fullFile); + } + } + } + else // File != null && Reference == null + { + targetValue = targetRoot; + if (File.Exists (fullFile)) + { + if (targetValue == null) + { + targetValue = ObjectSupport.GetInstance (targetType); + _fileList[targetValue] = file; + + XmlFile.Read (targetValue, new FileInfo(fullFile)); + } + + if (targetValue == null) + { + throw new Exception ("Cannot find referenced element in " + fullFile + " at tag " + reader.Name); + } + + string identifier = reader.GetAttribute("Identifier"); + if (identifier != null) + { + XmlFile.RegisterKey(root, identifier, targetValue); + } + } + else + { + if (!((bool) MetaInfo.GetAttributeDefault (targetType, "XmlAllowFileMissing", false))) + { + throw new Exception ("Referenced file does not exist: " + fullFile); + } + } + } + } + else // file == null + { + if (reference != null) + { + targetValue = XmlFile.GetRegisteredTarget(root, reference); + if (targetValue == null) + { + throw new Exception ("Cannot find referenced element " + reference + " at tag " + reader.Name); + } + } + else // File == null && Reference == null + { + string attributeValue = reader.GetAttribute ("Value"); + if (attributeValue == null) + { + targetValue = ObjectSupport.GetInstance (targetType); + } + else if (targetType.Equals (typeof (FileInfo))) + { + targetValue = FileSupport.ExpandRelativePath (XmlFile.GetRegisteredFile(root).Directory, attributeValue); + } + else if (targetType.Equals (typeof (DirectoryInfo))) + { + targetValue = FileSupport.ExpandRelativeDirectory (XmlFile.GetRegisteredFile(root).Directory, attributeValue); + } + else + { + targetValue = ObjectSupport.GetInstance (targetType, attributeValue, _culture); + } + + if (targetValue == null) + { + throw new Exception ("Cannot instantiate " + targetType.FullName + " at element tag " + reader.Name); + } + } + } + +// if (targetValue == null) +// { +// throw new Exception ("Cannot resolve element tag " + reader.Name); +// } + + return targetValue; + + } + + /// + /// Reads the attributes of the current xml element and uses them to populute the target with + /// + /// The object which is populated with the xml attributes + /// The xml stream + /// Top object of the xml stream + /// Cannot find class type + /// Cannot instantiate object for known class type + private static void ReadAttributes (IAggregate target, XmlReader reader, object root) + { + // Read all attributes + string[] properties = target.Properties; + for (int i = 0; i < properties.Length; i++) + { + string name = XmlFile.GetElementName (target.Source.GetType(), properties[i], false); + if (name != null) + { + string attributeValue = reader.GetAttribute(name); + if (attributeValue != null) + { + string classType = (string) MetaInfo.GetAttributeDefault (target.Source.GetType(), properties[i], "XmlType", target.GetType(properties[i]).FullName); + Type type = ObjectSupport.GetType(classType); + if (type == null) + { + throw new Exception("Could not find class type " + classType); + } + + if (type.Equals(typeof(FileInfo))) + { + attributeValue = FileSupport.ExpandRelativePath (XmlFile.GetRegisteredFile(root).Directory, attributeValue).FullName; + } + + if (type.Equals(typeof(DirectoryInfo))) + { + attributeValue = FileSupport.ExpandRelativeDirectory (XmlFile.GetRegisteredFile(root).Directory, attributeValue).FullName; + } + + object targetValue = ObjectSupport.GetInstance (type, attributeValue, _culture); + if (targetValue == null) + { + throw new Exception("Could not instantiate class type " + type.FullName); + } + + if (target.CanWrite(properties[i])) + { + target.SetValue(properties[i], targetValue); + } + } + } + } + } + + /// + /// Moves the xml stream forward to the next readable element + /// + /// The xml stream + private static void MoveToNextElement(XmlReader reader) + { + reader.Read(); + while (!reader.EOF && (reader.NodeType != XmlNodeType.Element)) + { + reader.Read(); + } + } + + #endregion + + #region Administration + + /// + /// Sets up registration tables for a root object + /// + /// The root object + private static void CreateRegistration (object root) + { + if (_rootKeyList[root] == null) + { + _rootKeyList[root] = new Hashtable(); + } + + if (_rootObjectList[root] == null) + { + _rootObjectList[root] = new Hashtable(); + } + } + + /// + /// Registers that an object is written to or read from the same file as a root object. + /// This method calls RegisterKey internally. + /// + /// The object to register + /// The xml stream + /// The object at the top of an xml file + private static void RegisterObject (object target, XmlReader reader, object root) + { + string key = XmlFile.GetKeyFromXml (target.GetType(), reader, false); + + // Register the target as being read from this xml file + if (key != null) + { + XmlFile.RegisterKey (root, key, target); + } + } + + /// + /// Registers an object with a unique key within the scope of the root. + /// + /// The root object + /// The unique key + /// The object to register + private static void RegisterKey (object root, object identifier, object target) + { + Hashtable keys = (Hashtable) _rootKeyList[root]; + keys[identifier] = target; + + Hashtable objects = (Hashtable) _rootObjectList[root]; + objects[target] = identifier; + } + + /// + /// Gets a key from registration given the object. + /// The key will only be found if RegisterKey or RegisterObject has been called before. + /// + /// The root object, the scope where is searched for the object + /// The object to search for + /// The key, null if not found + private static object GetRegisteredKey (object root, object target) + { + Hashtable objects = (Hashtable) _rootObjectList[root]; + if (objects != null) + { + return objects[target]; + } + + return null; + } + + /// + /// Gets an object from registration given the key. + /// The object will only be found if RegisterKey or RegisterObject has been called before. + /// + /// The root object, the scope where is searched for the key + /// The key to search for + /// The associated object, null if not found + public static object GetRegisteredTarget (object root, object identifier) + { + Hashtable keys = (Hashtable) _rootKeyList[root]; + if (keys != null) + { + return keys[identifier]; + } + + return null; + } + + /// + /// Gets the file associated with an object. + /// The object should be the root of the file, i.e. associated with the top xml element. + /// + /// + /// The file, null if the object isn't a root of a file + public static FileInfo GetRegisteredFile (object anObject) + { + if (_fileList[anObject] != null) + { + return new FileInfo((string) _fileList[anObject]); + } + + return null; + } + + /// + /// Gets a list of all objects, whcih are known to be the root of a file. + /// The root of a file is the object associated with the top xml element. + /// + /// + public static object[] GetRegisteredObjects() + { + ArrayList list = new ArrayList(_fileList.Keys); + return list.ToArray(); + } + + /// + /// Gets the root object of a file + /// + /// Full name of the file + /// The root object, null if not found + private static object GetFileObject(string File) + { + IDictionaryEnumerator DictionaryEnumerator = _fileList.GetEnumerator(); + while (DictionaryEnumerator.MoveNext()) + { + if (DictionaryEnumerator.Value.Equals (File)) + { + object TargetValue = DictionaryEnumerator.Key; + return TargetValue; + } + } + + return null; + } + + /// + /// Gets the file registered with an object and if not found, a new file is created + /// + /// The object an associated file is searched for + /// Directory in which a new file will be created, if no file exists + /// The associated file + private static FileInfo GetForcedRegisteredFile (object target, DirectoryInfo dir) + { + if (XmlFile.GetRegisteredFile(target) != null) + { + return XmlFile.GetRegisteredFile(target); + } + + FileInfo newFile = new FileInfo(dir + "\\" + target.GetType().Name + "1.xml"); + for (int i = 1; newFile.Exists; i++) + { + newFile = new FileInfo (dir + "\\" + target.GetType().Name + i.ToString() + ".xml"); + } + + _fileList[target] = newFile; + + return newFile; + } + + /// + /// Removes an object of all registrations. + /// To be used for releasing memory + /// + /// The object to be removed from registrations + public static void DisposeObject (object disposeObject) + { + _fileList[disposeObject] = null; + _readObjectsList.Remove(disposeObject); + _unreadObjectsList.Remove(disposeObject); + + _rootList[disposeObject] = null; + + foreach (object o in new ArrayList(_rootList.Keys)) + { + if (_rootList[o] == disposeObject) + { + _rootList[o] = null; + } + } + + _rootKeyList[disposeObject] = null; + _rootObjectList[disposeObject] = null; + } + + #endregion + + #region Aggregate + + /// + /// Gets the aggregate of an object. + /// The aggregate is an object, which can be used for querying the object in a generic way. + /// The MetaInfo attribute "ObjectAggregate" is used to identify the class type of the aggregate, if not present DefaultAggregate is used. + /// The same aggregate object is reused when the same object is passed. + /// + /// + /// + /// The object an aggregate is asked for + /// The aggregate object + /// Cannot find aggregate class type + /// Cannot instantiate aggregate for known class type + private static IAggregate GetAggregate (object target) + { + IAggregate aggregate = (IAggregate) _aggregateTable[target]; + if (aggregate == null) + { + string classType = (string)MetaInfo.GetAttributeDefault (target.GetType(), "ObjectAggregate", typeof (DefaultAggregate).FullName); + aggregate = (IAggregate) ObjectSupport.GetInstance (classType, target); + if (aggregate == null) + { + throw new Exception("Could not find class type " + classType); + } + + _aggregateTable[target] = aggregate; + } + + aggregate.UpdateAggregate(); + + return aggregate; + } + + #endregion + + #region Keys of objects + + /// + /// Gets a string from an xml file which uniquely identifies the object which is currently parsed + /// This string reflects the identification of the object, e.g. the ID of the object + /// + /// + /// The xml file stream + /// Indication whether the current xml element refers to a prior definition of the object + /// The identification string + private static string GetKeyFromXml(Type TargetType, XmlReader reader, bool referenced) + { + string key = null; + + if (referenced) + { + string Reference = reader.GetAttribute ("Reference"); + if (Reference != null) + { + //key = Reference + ";"; + return Reference; + } + + if (TargetType != null) + { + string[] property = MetaInfo.GetProperties(TargetType); + + // Try all properties which are registered as key + for (int i = 0; i < property.Length; i++) + { + if ((Boolean) MetaInfo.GetAttributeDefault (TargetType, property[i], "XmlKey", false)) + { + string KeyValue = reader.GetAttribute ((string) MetaInfo.GetAttributeDefault (TargetType, property[i], "XmlRefName", property[i])); + if (KeyValue != null) + { + key += KeyValue + ";"; + } + } + } + } + } + else + { + string Identifier = reader.GetAttribute("Identifier"); + if (Identifier != null) + { + //key = Identifier + ";"; + return Identifier; + } + + string[] property = MetaInfo.GetProperties(TargetType); + + // Try all properties which are registered as key + for (int i = 0; i < property.Length; i++) + { + if ((Boolean) MetaInfo.GetAttributeDefault (TargetType, property[i], "XmlKey", false)) + { + string KeyValue = reader.GetAttribute ((string) MetaInfo.GetAttributeDefault (TargetType, property[i], "XmlName", property[i])); + if (KeyValue != null) + { + key += KeyValue + ";"; + } + } + } + } + + if (key != null) + { + key += TargetType.FullName; + } + + return key; + } + + /// + /// Gets the key from an object. + /// If the key isn't unique and the property allows for key generation, a unique key is generated. + /// + /// + /// + /// + private static string GetKeyFromObject(IAggregate target, object root) + { + string key = null; + int lastkey = 0; + + string[] property = target.Properties; + int generatedProperty = -1; + + bool generationPossible = true; + while (generationPossible) + { + key = null; + lastkey++; + generationPossible = false; + + for (int i = 0; i < property.Length; i++) + { + if ((Boolean) MetaInfo.GetAttributeDefault (target.Source.GetType(), property[i], "XmlKey", false)) + { + object KeyObject = target.GetValue(property[i]); + if ((KeyObject != null) && (!KeyObject.ToString().Trim().Equals(""))) + { + key += KeyObject.ToString() + ";"; + } + else if ((Boolean) MetaInfo.GetAttributeDefault (target.Source.GetType(), property[i], "XmlAllowGeneration", true)) + { + generationPossible = true; + generatedProperty = i; + key += lastkey + ";"; + } + } + } + + if (key != null) + { + key += target.Source.GetType().FullName; + + object registeredObject = XmlFile.GetRegisteredTarget(root, key); + if ((registeredObject == null) || (registeredObject == target)) + { + if (generatedProperty != -1) + { + Type PropertyType = target.GetType(property[generatedProperty]); + if (PropertyType.Equals(typeof(string))) + { + target.SetValue(property[generatedProperty], Convert.ToString(lastkey)); + } + else if (PropertyType.Equals(typeof(Int16)) || PropertyType.Equals(typeof(Int32)) || PropertyType.Equals(typeof(Int64))) + { + target.SetValue(property[generatedProperty], lastkey); + } + } + return key; + } + } + } + + return key; + } + + #endregion + + #region Public Write Methods + + /// + /// Writes an object to an xml file + /// The registered file of the object will be used as xml file. This is the file + /// to which the object was written to or read from in an earlier stage + /// + /// The object to be written + /// Cannot derive key for object which must be written as a reference. Probably MetaInfo is missing for the class and subject XmlKeyexception> + public static void Write (object target) + { + object fileobj = _fileList[target]; + FileInfo file = null; + + if (fileobj is FileInfo) + { + file = (FileInfo) fileobj; + } + + if (fileobj is string) + { + file = new FileInfo((string)fileobj); + } + + if (file != null) + { + XmlFile.Write (target, file); + } + } + + /// + /// Writes an object to an xml file + /// + /// The object to write + /// The xml file + /// Cannot derive key for object which must be written as a reference. Probably MetaInfo is missing for the class and subject XmlKeyexception> + public static void Write (object target, FileInfo file) + { + XmlFile.CreateRegistration (target); + + FileInfo targetFile = XmlFile.GetTempFile(file.Directory); + + XmlTextWriter writer = new XmlTextWriter(targetFile.FullName, null); + + _fileList[target] = file.FullName; + + //Use automatic indentation for readability. + writer.Formatting = Formatting.Indented; + + writer.WriteStartDocument(); + + string xmlStartElement = (string) MetaInfo.GetAttributeDefault (target.GetType(), "XmlStartElement", target.GetType().Name); + writer.WriteStartElement(xmlStartElement); + + string xmlNameSpace = (string) MetaInfo.GetAttribute (target.GetType(), "XmlNameSpace"); + if (xmlNameSpace != null) + { + writer.WriteAttributeString("xmlns", xmlNameSpace); + } + + // Write the actual values + XmlFile.Write (writer, target, null, null, null, target, null, new ArrayList()); + + // end the root element + //Write the XML to file and close the writer + writer.WriteEndElement(); + writer.Close(); + + file.Delete(); + targetFile.MoveTo (file.FullName); + } + + #endregion + + #region Internal Write Methods + + /// + /// Writes an object to xml. This will write + /// 1) the type and assembly of the object to write + /// 2) xml attributes for all properties of the object which can be written as xml attributes + /// 3) xml elements for all other properties (this this method is called recursively) + /// + /// The xml stream + /// The object to be written + /// The object in the xml stream, which is associated with the xml parent element + /// Type of the object + /// Type expected + /// Object associated with the top of the xml stream + /// Name of the xml parent tag + /// List of all object written so far in this xml stream + /// Cannot derive key for object which must be written as a reference. Probably MetaInfo is missing for the class and subject XmlKeyexception> + private static void Write (XmlTextWriter writer, object target, object parent, string targetProperty, Type expectedType, object root, string parentName, ArrayList writtenObjects) + { + if (target == null) + { + return; + } + + bool reference = false; + + if ((expectedType == null) || (!expectedType.Equals(target.GetType()))) + { + string xmlTypeName = (string) MetaInfo.GetAttributeDefault (target.GetType().FullName, "XmlTypeName", target.GetType().FullName); + writer.WriteAttributeString("Type", xmlTypeName); + if (ObjectSupport.IsLoadedAssembly(target.GetType().Assembly) && !(bool) MetaInfo.GetAttributeDefault(target.GetType().Assembly, "XmlSkipElement", false)) + { + if (target.GetType().Assembly.GlobalAssemblyCache) + { + writer.WriteAttributeString("Assembly", target.GetType().Assembly.FullName); + } + else + { + writer.WriteAttributeString("Assembly", target.GetType().Assembly.Location); + } + } + } + + // Check whether this object has been written in this xml file already + // If so, just write the reference definition + if (CollectionSupport.ContainsObject (writtenObjects, target)) + { + object key = XmlFile.GetRegisteredKey(root, target); + if (key == null) + { + throw new Exception ("Could not derive key for referenced object " + target.ToString()); + } + if ((Boolean) MetaInfo.GetAttributeDefault (target.GetType(), "ObjectIndexAsKey", false)) + { + writer.WriteAttributeString("Reference", key.ToString()); + } + reference = true; + } + + IAggregate aggregate = XmlFile.GetAggregate(target); + aggregate.UpdateAggregate(); + + // Find the parent under which the target will be written +/* string parentProperty = (string) MetaInfo.GetAttributeDefault (target.GetType(), "XmlParent", null); + if (parentProperty != null) + { + object parentValue = aggregate.GetValue (parentProperty); + if (parentValue != null) + { + object rootParent = _rootList[parentValue]; + _rootList[target] = rootParent; + } + }*/ + + // Check whether the object will be written in another file + // This should occur when + // 1. The root of this object isn't the same as the root writing at this moment + // 2. The object is declared that it should be written in it's own file + // The root is the object at the top of the xml file + bool anotherFile = XmlFile.DifferentFiles (target, root); + + if (!anotherFile) + { + if (target != root) + { + anotherFile = (Boolean) MetaInfo.GetAttributeDefault (target.GetType(), "XmlFile", false); + if (anotherFile) + { + _rootList[target] = target; + } + } + } + + if (anotherFile) + { + if (_fileList[_rootList[target]] == null) + { + XmlFile.GetForcedRegisteredFile(_rootList[target], XmlFile.GetRegisteredFile(root).Directory); + XmlFile.Write (_rootList[target]); + } + + writer.WriteAttributeString("File", FileSupport.GetRelativePath (XmlFile.GetRegisteredFile(root).Directory, new FileInfo((string) _fileList[_rootList[target]]))); + if ((Boolean) MetaInfo.GetAttributeDefault (target.GetType(), "ObjectIndexAsKey", false)) + { + writer.WriteAttributeString("Reference", XmlFile.GetRegisteredKey(_rootList[target], target).ToString()); + } + reference = true; + } + + DirectoryInfo baseDirectory = XmlFile.GetRegisteredFile(root).Directory; + + if (XmlFile.IsAttribute(target.GetType())) + { + writer.WriteAttributeString("Value", XmlFile.ToString(target, baseDirectory)); + return; + } + + if (!reference) + { + _rootList[target] = root; + + // Add the object to the written objects list + int identifier = writtenObjects.Count + 1; + writtenObjects.Add(target); + + string identificationString = Convert.ToString(identifier); + if (!((Boolean) MetaInfo.GetAttributeDefault (target.GetType(), "ObjectIndexAsKey", false))) + { + identificationString = XmlFile.GetKeyFromObject(aggregate, root); + } + + if (identificationString != null) + { + XmlFile.RegisterKey(root, identificationString, target); + } + + if ((Boolean) MetaInfo.GetAttributeDefault (target.GetType(), "ObjectIndexAsKey", false)) + { + writer.WriteAttributeString("Identifier", Convert.ToString(identifier)); + } + } + + // Write all xml attributes + if (!(target is IList) && !(target is IDictionary)) + { + string[] property = XmlFile.GetSortedProperties(aggregate); + + // Pass 1: Write all properties which can be represented as an attribute + for (int i = 0; i < property.Length; i++) + { + if (IsAttribute (aggregate.GetType(property[i]))) + { + if (XmlFile.PropertyWrite (target.GetType(), property[i], reference)) + { + bool skipElement = (Boolean) MetaInfo.GetAttributeDefault (target.GetType(), property[i], "XmlSkipElement", false); + if (!skipElement) + { + object targetValue = aggregate.GetValue(property[i]); + if (targetValue != null) + { + string name = XmlFile.GetElementName(target.GetType(), property[i], reference); + writer.WriteAttributeString(name, XmlFile.ToString(targetValue, baseDirectory)); + } + } + } + } + } + } + + // Move the target to the default property if any + string defaultProperty = MetaInfo.GetAttribute (target.GetType(), "XmlDefaultProperty") as string; + if (defaultProperty != null) + { + parent = target; + target = aggregate.GetValue (defaultProperty); + targetProperty = defaultProperty; + aggregate = XmlFile.GetAggregate(target); + aggregate.UpdateAggregate(); + parentName = XmlFile.GetElementName (parent.GetType(), defaultProperty, false); + } + + // Special handling for lists + if (target is IList) + { + if (parent == null) + { + parent = target; + } + + string listEntryClass = (string) MetaInfo.GetAttributeDefault (parent.GetType(), targetProperty, "XmlItemType", MetaInfo.GetAttribute (target.GetType(), "XmlItemType")); + + for (int j = 0; j < ((IList) target).Count; j++) + { + string name = XmlFile.GetSingleName(parentName); + if (CollectionSupport.ContainsObject(writtenObjects, ((IList) target)[j])) + { + name = (string) MetaInfo.GetAttributeDefault (parent.GetType(), targetProperty, "XmlRefItemName", MetaInfo.GetAttributeDefault (parent.GetType(), targetProperty, "XmlItemName", name)); + } + else + { + name = (string) MetaInfo.GetAttributeDefault (parent.GetType(), targetProperty, "XmlItemName", name); + } + + writer.WriteStartElement(name); + XmlFile.Write (writer, ((IList) target)[j], null, null, ObjectSupport.GetType(listEntryClass), root, name, writtenObjects); + writer.WriteEndElement(); // end Name + } + } + // Special handling for hashtables + else if (target is IDictionary) + { + if (parent == null) + { + parent = target; + } + + IDictionaryEnumerator DictionaryEnumerator = ((IDictionary) target).GetEnumerator(); + while (DictionaryEnumerator.MoveNext()) + { + if (DictionaryEnumerator.Value != null) + { + string name = (string) MetaInfo.GetAttributeDefault (parent.GetType(), targetProperty, "XmlItemName", XmlFile.GetSingleName(parentName)); + writer.WriteStartElement(name); + writer.WriteStartElement("Key"); + XmlFile.Write (writer, DictionaryEnumerator.Key, null, null, null, root, null, writtenObjects); + writer.WriteEndElement(); // key + writer.WriteStartElement("Value"); + XmlFile.Write (writer, DictionaryEnumerator.Value, null, null, null, root, null, writtenObjects); + writer.WriteEndElement(); // value + writer.WriteEndElement(); // property + } + } + } + // Normal write procedure + else + { + // Get all properties which must be written + string[] property = XmlFile.GetSortedProperties(aggregate); + + // Pass 2: Write all properties which must be represented as a sub element + for (int i = 0; i < property.Length; i++) + { + if (!IsAttribute (aggregate.GetType(property[i]))) + { + if (XmlFile.PropertyWrite (target.GetType(), property[i], reference)) + { + bool skipElement = (Boolean) MetaInfo.GetAttributeDefault (target.GetType(), property[i], "XmlSkipElement", false); + if (!skipElement) + { + object targetValue = aggregate.GetValue(property[i]); + + if (targetValue != null) + { + string name = XmlFile.GetElementName(target.GetType(), property[i], reference || CollectionSupport.ContainsObject(writtenObjects, targetValue) || XmlFile.DifferentFiles(targetValue, root)); + //Get instance of the attribute. + writer.WriteStartElement(name); + + Type type = ObjectSupport.GetType((string) MetaInfo.GetAttributeDefault (target.GetType(), property[i], "XmlType", aggregate.GetType(property[i]).FullName)); + if (!aggregate.CanWrite(property[i])) + { + type = targetValue.GetType(); // this enforces that no type information is written; it cannot be used anyway, because the property is read only + } + XmlFile.Write (writer, targetValue, target, property[i], type, root, name, writtenObjects); + + writer.WriteEndElement(); // end Name + } + } + } + } + } + } + } + + /// + /// Gets the string representing an object. + /// This string value is used for writing the object in an xml file. + /// + /// The object a string value is requested for + /// Directory, which is used in case of files. Then the relative file path is returned + /// The string representation + private static string ToString (object target, DirectoryInfo directory) + { + if (target is FileInfo) + { + return FileSupport.GetRelativePath(directory, (FileInfo) target); + } + else if (target is DirectoryInfo) + { + return FileSupport.GetRelativePath(directory, (DirectoryInfo) target); + } + else if (target is IFormattable) + { + return ((IFormattable) target).ToString (null, _culture); + } + else if (target is bool) + { + return ((bool) target).ToString().ToLower(); + } + else + { + return target.ToString(); + } + } + + /// + /// Gets all properties of an aggregate in a sorted way. + /// MetaInfo attribute "XmlIndex" is used for the sorting. + /// + /// The aggregate + /// Sorted property names + private static string[] GetSortedProperties (IAggregate aggregate) + { + SortedList list = new SortedList(); + string[] properties = aggregate.Properties; + + for (int i = 0; i < properties.Length; i++) + { + int index = (int)MetaInfo.GetAttributeDefault (aggregate.Source.GetType(), properties[i], "XmlIndex", 1000); + string listIndex = index.ToString("D9") + " " + properties[i].ToLower(); + if (!list.Contains (listIndex)) + { + list.Add (listIndex, properties[i]); + } + } + + /* for (int i = 0; i < list.GetValueList()..Values.Count; i++) + { + propertyList.Add (list.GetByIndex(i)); + }*/ + + ArrayList propertyList = new ArrayList(list.Values); + return (string[]) propertyList.ToArray(typeof(string)); + } + + /// + /// Gets the xml element name for a specific property + /// + /// The class type containing the property + /// The property to write + /// Identifies whether the property is to be written completely or just a reference, because the property has been written before + /// The xml element name + private static string GetElementName(Type type, string property, bool reference) + { + if (reference) + { + return (string) MetaInfo.GetAttributeDefault (type, property, "XmlRefName", MetaInfo.GetAttributeDefault (type, property, "XmlName", property)); + } + else + { + return (string) MetaInfo.GetAttributeDefault (type, property, "XmlName", property); + } + } + + /// + /// Indicates whether two objects are written in the same file. + /// This should occur when 1) the root of this object isn't the same as the root writing at this moment + /// or 2) the object is declared that it should be written in it's own file. + /// The root is the object at the top of the xml file + /// + /// First object + /// Second object + /// Indication same file + private static bool DifferentFiles (object target, object root) + { + // Find the parent under which the target will be written + IAggregate aggregate = XmlFile.GetAggregate(target); + + if (_rootList[target] == null) + { + string parentProperty = (string) MetaInfo.GetAttributeDefault (target.GetType(), "XmlParent", null); + if (parentProperty != null) + { + object parentValue = aggregate.GetValue (parentProperty); + if (parentValue != null) + { + object rootParent = _rootList[parentValue]; + _rootList[target] = rootParent; + } + } + } + + return (_rootList[target] != null) && (_rootList[target] != root); + } + + /// + /// Indicates whether a property should be written + /// + /// The class type of the object containing the property + /// The property to write + /// Identifies whether the property is to be written completely or just a reference, because the property has been written before + /// Boolean indicating whether the property is to be written + private static bool PropertyWrite (Type type, string property, bool reference) + { + bool allowed = !reference && ((Boolean) MetaInfo.GetAttributeDefault (type, property, "XmlElement", true)); + allowed = allowed || (reference && (((Boolean) MetaInfo.GetAttributeDefault (type, property, "XmlRefElement", false)) || ((Boolean) MetaInfo.GetAttributeDefault (type, property, "XmlKey", false)))); + + return allowed; + } + + /// + /// Gets the single word given a plural word. + /// For example, plural word "variables" would return "variable". + /// + /// The plural word + /// The single word, "Item" if nothing specific can be derived + private static string GetSingleName(string parentName) + { + if (parentName == null) + { + return "Item"; + } + + string singleName = ""; + + if (parentName.EndsWith("List") || parentName.EndsWith("list")) + { + singleName = parentName.Substring (0, parentName.Length - 4); + } + + if (parentName.EndsWith("Set") || parentName.EndsWith("set")) + { + singleName = parentName.Substring (0, parentName.Length - 3); + } + + if (parentName.EndsWith("Collection") || parentName.EndsWith("collection")) + { + singleName = parentName.Substring (0, parentName.Length - 10); + } + + if (parentName.EndsWith("s")) + { + singleName = parentName.Substring (0, parentName.Length - 1); + } + + if (parentName.EndsWith("ies")) + { + singleName = parentName.Substring (0, parentName.Length - 3) + "y"; + } + + if (singleName.Trim().Equals("")) + { + singleName = "Item"; + } + + return singleName; + } + + /// + /// Gets the property given a specific xml element name + /// + /// The object which will contain the property + /// The xml element name + /// The property name, null if not found + private static string GetProperty (IAggregate target, string name) + { + string[] properties = target.Properties; + for (int i = 0; i < properties.Length; i++) + { + string elementName = XmlFile.GetElementName (target.Source.GetType(), properties[i], false); + if ((elementName != null) && (elementName.Equals(name))) + { + return properties[i]; + } + + elementName = XmlFile.GetElementName (target.Source.GetType(), properties[i], true); + if ((elementName != null) && (elementName.Equals(name))) + { + return properties[i]; + } + } + + return null; + } + + /// + /// Indicates whether an object can be written as an xml attribute (instead of an xml element) + /// + /// The class type of the object which should be written + /// Indication of writable as xml attribute + private static bool IsAttribute (Type targetType) + { + return (targetType.IsPrimitive) || (targetType.IsEnum) || (targetType.Equals (typeof(string))) || (targetType.Equals (typeof(FileInfo))) || (targetType.Equals (typeof(DirectoryInfo))) || (targetType.Equals(typeof(DateTime))); + } + + /// + /// Gets a temporary file. + /// When writing an xml file, first a temporary file is used and later it is moved to the actually intended file. + /// In this way the original file is left untouched when an exception occurs. + /// + /// The directory where the temp file should be located + /// The temporary file + private static FileInfo GetTempFile(DirectoryInfo TempDirectory) + { + int index = 0; + while (true) + { + FileInfo file = new FileInfo(TempDirectory.FullName + "\\temp" + index + ".xml"); + if (!file.Exists) + { + return file; + } + + index++; + } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/XmlFileMetaInfo.htm b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/XmlFileMetaInfo.htm new file mode 100644 index 00000000..cf91b7a2 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/DevelopmentSupport/XmlFileMetaInfo.htm @@ -0,0 +1,170 @@ + + + New Page 1 + + + + + +

    Oatc.OpenMI.Sdk.DevelopmentSupport
    +
    +
    MetaInfo used by XmlFile
    +
    +
    +


    +
    +

    +

    This list explains how MetaInfo is used by XmlFile

    +

    tag: ObjectAggregate
    +queried for: each class type encountered during reading and +writing
    +expected type: string
    +default value: DefaultAggregate
    +meaning: Specifies the class type of an aggregate. +For each object identified by an xml element an aggregate is instantiated. The aggregate serves as an "in +between" object between the object and XmlFile. NOTE: XmlFile expects that +the aggregate has a constructor with one argument, the underlying object.

    +

    tag: XmlFile
    +queried for: each class type encountered during writing
    +expected type: bool
    +default value: false
    +meaning: Indicates whether an object of the specified type should be +written as a separate XML file. An XML file and file name can be generated if +not known to the XmlFile object. A relative path to this XML file is written in +the parent XML file. On reading, if a reference is encountered to such an XML +file, this referred file is read immediately.

    + +

    tag: +XmlSchema
    queried for: the class type encountered at +the top of an xml file during reading
    expected type: +string
    default value: null
    meaning: The +name of the xsd file against which xml validation is performed. When this value +is null, no xml validation is performed.

    + +

    tag: +XmlNameSpace
    queried for: the class type encountered at the +top of an xml file during writing
    expected type: +string
    default value: null
    meaning: The +xml namespace. When validation is performed against a schema (xsd file), the xml +file must have an xml namespace. For correct validation the xml namespace +must be the same as the one specified in the xsd file.

    + +

    tag: +XsdPackage
    queried for: the class type encountered at the +top of an xml file during reading
    expected type: +string
    default value: null
    meaning: +Indicates the assembly which contains the xsd file (denoted with +XmlSchema).

    +
    +
    +

    tag:XmlSkipElement
    + queried for: each property in an object during writing
    + expected type: bool
    + default value: false
    + meaning: Indicates whether a property should be skipped when written to + XML. Also assemblies can be skipped. In that case one must make sure that the + assembly has been loaded in another way when reading the xml file.

    +

    + tag: XmlKey
    + queried for: each property in an object during writing
    + expected type: bool
    + default value: false
    + meaning: Indicates whether a property should be written to XML if the + corresponding object has been written to the XML file before. This occurs when + the data structure isn't hierarchical. Only the first time it is encountered on + writing, it is written out completely. Next times only a reference is written + to the first occurrence. The key of the object is used as reference.
    + The key of the entire object is the combination of all +properties denoted as XML key. This key should be unique per class type per XML +file.

    + +

    tag: XmlAllowGeneration
    + queried for: each property in an object during writing, which + is denoted as an xml key.
    + expected type: bool
    + default value: true
    + meaning: Indicates whether generation of a key value is + allowed if the property value is empty (i.e. null or a string of length zero or + a string only containing spaces). If generation is to be carried out, a unique + number is assigned to the property value. The property type is expected to be + an integer or a string. +

    +

    tag: XmlName
    + queried for: each property in an object during writing and + reading
    + expected type: string
    + default value: the property name as defined in the class
    + meaning: Provides the name for the XML element or XML attribute in the + XML file for a property. +

    +

    tag: XmlRefName
    + queried for: each property in an object during writing and + reading, if the object is or will be written as a reference to a prior object + in the XML file.
    + expected type: string
    + default value: the XML name
    + meaning: Provides the name for the XML element or XML attribute in the + XML file for a property.

    +

    tag: XmlItemName
    + queried for: each member of a collection during writing
    + expected type: string
    + default value: the single name derived from the XML name of the + collection object, e.g. the single name of the collection name "nodes", "node + list", "node set" or "node collection" will be "node".
    + meaning: Provides the name for the xml element in the xml file for a + collection member.

    +

    tag: XmlRefItemName
    + queried for: each member of a collection during writing, if + the member will be written as a reference to a prior object in the XML file.
    + expected type: string
    + default value: the single name derived from the XML name of the + collection.
    + meaning: Provides the name for the XML element in the XML file for a + collection member. +

    +

    tag: XmlItemType
    + queried for: each collection property in an object during + reading and writing
    + expected type: string
    + default value: null
    + meaning: Defines the class type of  collection members. + If set, class type information can be omitted during writing. +

    +

    tag: XmlTypeAlias
    + queried for: each type definition encountered in the XML file + during reading
    + expected type: string
    + default value: the same type definition.
    + meaning: Defines the class name (including namespaces) to be + instantiated for a type definition in the XML file. This is useful if a class + has been renamed and XML files still contain the old class name.

    +

    tag: XmlTypeName
    + queried for: each type definition encountered in the XML file + during writing
    + expected type: string
    + default value: the same type definition.
    + meaning: Defines the way the class name is written in xml for + the type attribute. This is useful if a readable class name is desired in + the xml file. When setting a value for XmlTypeName, a corresponding value for + XmlTypeAlias is needed.

    +

    tag:XmlParent
    + queried for: each property in an object during writing
    + expected type: object
    + default value: null
    + meaning: Defines the property of an object, which functions as its + parent, i.e. the xml parent element in the xml file. For example, the + IElementSet has Parent for this value. When the aggregate of the element set + is asked for the property Parent, it searches for the linkable component + which owns the element set.
    + If the value is null, XmlFile assumes that the object which has this object as + a property is the parent.

    +

    tag: XmlIndex
    + queried for: each property in an object during writing
    + expected type: integer
    + default value: 1000
    + meaning: Defines a sorting number of the XML element. During write, XML + child elements are sorted according to this sorting number, if equal + alphabetically.

    +
    + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Oatc.OpenMI.Sdk.sln b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Oatc.OpenMI.Sdk.sln new file mode 100644 index 00000000..09ff1543 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Oatc.OpenMI.Sdk.sln @@ -0,0 +1,74 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Backbone", "Backbone\Oatc.OpenMI.Sdk.Backbone.csproj", "{23C206AE-CBEF-4FD1-9928-BF04147B62B2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Backbone.UnitTest", "Backbone\UnitTest\Oatc.OpenMI.Sdk.Backbone.UnitTest.csproj", "{1EF5387C-0764-4E42-99B9-78356B582281}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.DevelopmentSupport", "DevelopmentSupport\Oatc.OpenMI.Sdk.DevelopmentSupport.csproj", "{B7BE8C7F-0679-4022-81A5-6A314C058429}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest", "DevelopmentSupport\UnitTest\Oatc.OpenMI.Sdk.DevelopmentSupport.UnitTest.csproj", "{2E021CD1-94DA-4431-A5D7-1E810A834119}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Buffer", "Buffer\Oatc.OpenMI.Sdk.Buffer.csproj", "{C9844E74-074D-46FA-AEF6-371B3481468B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Buffer.UnitTest", "Buffer\UnitTest\Oatc.OpenMI.Sdk.Buffer.UnitTest.csproj", "{606EEBBC-96CF-4A21-9AA6-8B4674FF2996}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Spatial", "Spatial\Oatc.OpenMI.Sdk.Spatial.csproj", "{4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Spatial.UnitTest", "Spatial\UnitTest\Oatc.OpenMI.Sdk.Spatial.UnitTest.csproj", "{9020FF67-3C7C-4CC2-9595-53C6BAD2F66E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Wrapper", "Wrapper\Oatc.OpenMI.Sdk.Wrapper.csproj", "{3DF52260-A727-405B-88A8-630BCE9085AC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Oatc.OpenMI.Sdk.Wrapper.UnitTest", "Wrapper\UnitTest\Oatc.OpenMI.Sdk.Wrapper.UnitTest.csproj", "{D1CF8C4C-2941-49A6-A212-DCDBBF71E088}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {23C206AE-CBEF-4FD1-9928-BF04147B62B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23C206AE-CBEF-4FD1-9928-BF04147B62B2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23C206AE-CBEF-4FD1-9928-BF04147B62B2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23C206AE-CBEF-4FD1-9928-BF04147B62B2}.Release|Any CPU.Build.0 = Release|Any CPU + {1EF5387C-0764-4E42-99B9-78356B582281}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1EF5387C-0764-4E42-99B9-78356B582281}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1EF5387C-0764-4E42-99B9-78356B582281}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1EF5387C-0764-4E42-99B9-78356B582281}.Release|Any CPU.Build.0 = Release|Any CPU + {B7BE8C7F-0679-4022-81A5-6A314C058429}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7BE8C7F-0679-4022-81A5-6A314C058429}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7BE8C7F-0679-4022-81A5-6A314C058429}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7BE8C7F-0679-4022-81A5-6A314C058429}.Release|Any CPU.Build.0 = Release|Any CPU + {2E021CD1-94DA-4431-A5D7-1E810A834119}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E021CD1-94DA-4431-A5D7-1E810A834119}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E021CD1-94DA-4431-A5D7-1E810A834119}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E021CD1-94DA-4431-A5D7-1E810A834119}.Release|Any CPU.Build.0 = Release|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C9844E74-074D-46FA-AEF6-371B3481468B}.Release|Any CPU.Build.0 = Release|Any CPU + {606EEBBC-96CF-4A21-9AA6-8B4674FF2996}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {606EEBBC-96CF-4A21-9AA6-8B4674FF2996}.Debug|Any CPU.Build.0 = Debug|Any CPU + {606EEBBC-96CF-4A21-9AA6-8B4674FF2996}.Release|Any CPU.ActiveCfg = Release|Any CPU + {606EEBBC-96CF-4A21-9AA6-8B4674FF2996}.Release|Any CPU.Build.0 = Release|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Release|Any CPU.Build.0 = Release|Any CPU + {9020FF67-3C7C-4CC2-9595-53C6BAD2F66E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9020FF67-3C7C-4CC2-9595-53C6BAD2F66E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9020FF67-3C7C-4CC2-9595-53C6BAD2F66E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9020FF67-3C7C-4CC2-9595-53C6BAD2F66E}.Release|Any CPU.Build.0 = Release|Any CPU + {3DF52260-A727-405B-88A8-630BCE9085AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DF52260-A727-405B-88A8-630BCE9085AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DF52260-A727-405B-88A8-630BCE9085AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DF52260-A727-405B-88A8-630BCE9085AC}.Release|Any CPU.Build.0 = Release|Any CPU + {D1CF8C4C-2941-49A6-A212-DCDBBF71E088}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1CF8C4C-2941-49A6-A212-DCDBBF71E088}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1CF8C4C-2941-49A6-A212-DCDBBF71E088}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1CF8C4C-2941-49A6-A212-DCDBBF71E088}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/AssemblyInfo.cs new file mode 100644 index 00000000..44e5c760 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Utilities Spatial Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4")] +[assembly: AssemblyCopyright("BSD License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup/Spatial.sln b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup/Spatial.sln new file mode 100644 index 00000000..c76428eb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup/Spatial.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "org.OpenMI.Utilities.Spatial", "org.OpenMI.Utilities.Spatial.csproj", "{4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Debug.ActiveCfg = Debug|.NET + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Debug.Build.0 = Debug|.NET + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Release.ActiveCfg = Release|.NET + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/AssemblyInfo.cs new file mode 100644 index 00000000..44e5c760 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Utilities Spatial Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4")] +[assembly: AssemblyCopyright("BSD License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/DataOperation.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/DataOperation.cs new file mode 100644 index 00000000..2608bbbb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/DataOperation.cs @@ -0,0 +1,122 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// Summary description for DataOperation. + /// + [Serializable] + public class DataOperation : Backbone.DataOperation + { + /// + /// Redecalration of the overloaded constructor from the base class. + /// The redeclaration is probably needed since constructors can not be + /// marked as virtual. + /// + public DataOperation() + { + } + + /// + /// Redecalration of the overloaded constructor from the base class. + /// The redeclaration is probably needed since constructors can not be + /// marked as virtual. + /// + public DataOperation(IDataOperation source) : base(source) + { + } + + /// + /// Redecalration of the overloaded constructor from the base class. + /// The redeclaration is probably needed since constructors can not be + /// marked as virtual. + /// + public DataOperation(string ID) : base(ID) + { + } + + /// + /// For a given combination of inputExchangeItem, outputExchangeItem and list of dataOperation + /// it is decided if the dataOperations constitutes a valid set seen from a spatial settings + /// point of view. + /// + /// The input exchange item + /// The output exchange item + /// List of selected dataOperations + public override bool IsValid(IInputExchangeItem inputExchangeItem, IOutputExchangeItem outputExchangeItem, IDataOperation[] SelectedDataOperations) + { + bool returnValue = true; + bool methodAvaileble = false; + ElementMapper elementMapper = new ElementMapper(); + + foreach (string idString in elementMapper.GetIDsForAvailableDataOperations(outputExchangeItem.ElementSet.ElementType,inputExchangeItem.ElementSet.ElementType)) + { + if (ID == idString) + { + methodAvaileble = true; + } + } + if (!methodAvaileble) + { + return false; + } + + // --- check that only one SpatialMapping dataoperation is selected. --- + int numberOfSelectedSpatialMappingDataOperations = 0; + foreach (IDataOperation dataOperation in SelectedDataOperations) + { + for (int i = 0; i < dataOperation.ArgumentCount; i++) + { + if (dataOperation.GetArgument(i).Key == "Type") + { + if (dataOperation.GetArgument(i).Value == "SpatialMapping") + { + numberOfSelectedSpatialMappingDataOperations++; //this counting is done to check if the same dataOpertion is added twise + + if (dataOperation.ID != ID) //the selected dataoperation must be this dataOperation + { + returnValue = false; //the selected dataoperation must be this + } + } + } + } + } + + if (numberOfSelectedSpatialMappingDataOperations > 1) + { + returnValue = false; + } + + return returnValue; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/ElementMapper.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/ElementMapper.cs new file mode 100644 index 00000000..b55c5738 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/ElementMapper.cs @@ -0,0 +1,1101 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// The ElementMapper converts one ValueSet (inputValues) associated one ElementSet (fromElements) + /// to a new ValuesSet (return value of MapValue) that corresponds to another ElementSet + /// (toElements). The conversion is a two step procedure where the first step (Initialize) is + /// executed at initialisation time only, whereas the MapValues is executed during time stepping. + /// + ///

    The Initialize method will create a conversion matrix with the same number of rows as the + /// number of elements in the ElementSet associated to the accepting component (i.e. the toElements) + /// and the same number of columns as the number of elements in the ElementSet associated to the + /// providing component (i.e. the fromElements).

    + /// + ///

    Mapping is possible for any zero-, one- and two-dimensional elemets. Zero dimensional + /// elements will always be points, one-dimensional elements will allways be polylines and two- + /// dimensional elements will allways be polygons.

    + /// + ///

    The ElementMapper contains a number of methods for mapping between the different element types. + /// As an example polyline to polygon mapping may be done either as Weighted Mean or as Weighted Sum. + /// Typically the method choice will depend on the quantity mapped. Such that state variables such as + /// water level will be mapped using Weighted Mean whereas flux variables such as seepage from river + /// to groundwater will be mapped using Weighted Sum. The list of available methods for a given + /// combination of from and to element types is obtained using the GetAvailableMethods method.

    + ///
    + public class ElementMapper + { + + private const int NUMBER_OF_AVAILABLE_METHODS = 15; + private struct eMethods + { + public enum PointToPoint : int + { + Nearest = 100, + Inverse = 101 + } + + public enum PointToPolyline : int + { + Nearest = 200, + Inverse = 201, + } + + public enum PointToPolygon : int + { + Mean = 300, + Sum = 301, + } + + public enum PolylineToPoint : int + { + Nearest = 400, + Inverse = 401, + } + + public enum PolylineToPolygon : int + { + WeightedMean = 500, + WeightedSum = 501, + } + + public enum PolygonToPoint : int + { + Value = 600, + } + + public enum PolygonToPolyline : int + { + WeightedMean = 700, + WeightedSum = 701, + } + + public enum PolygonToPolygon : int + { + WeightedMean = 800, + WeightedSum = 801, + } + } + + private struct sMethod + { + public int ID; + public string Description; + public ElementType fromElementsShapeType; + public ElementType toElementsShapeType; + } + private double[ , ] _mappingMatrix; // the mapping matrix + private int _numberOfRows; + private int _numberOfColumns; + private int _methodID; + private bool _isInitialised; + sMethod[] _availableMethods; + + /// + /// Constructor. + /// + public ElementMapper() + { + _numberOfRows = 0; + _numberOfColumns = 0; + _isInitialised = false; + + _availableMethods = new sMethod[NUMBER_OF_AVAILABLE_METHODS]; + + _availableMethods[0].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[0].toElementsShapeType = ElementType.XYPoint; + _availableMethods[0].Description = "Nearest"; + _availableMethods[0].ID = (int) eMethods.PointToPoint.Nearest; + + _availableMethods[1].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[1].toElementsShapeType = ElementType.XYPoint; + _availableMethods[1].Description = "Inverse"; + _availableMethods[1].ID = (int) eMethods.PointToPoint.Inverse; + + _availableMethods[2].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[2].toElementsShapeType = ElementType.XYPolyLine; + _availableMethods[2].Description = "Nearest"; + _availableMethods[2].ID = (int) eMethods.PointToPolyline.Nearest; + + _availableMethods[3].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[3].toElementsShapeType = ElementType.XYPolyLine; + _availableMethods[3].Description = "Inverse"; + _availableMethods[3].ID = (int) eMethods.PointToPolyline.Inverse; + + _availableMethods[4].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[4].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[4].Description = "Mean"; + _availableMethods[4].ID = (int) eMethods.PointToPolygon.Mean; + + _availableMethods[5].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[5].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[5].Description = "Sum"; + _availableMethods[5].ID = (int) eMethods.PointToPolygon.Sum; + + _availableMethods[6].fromElementsShapeType = ElementType.XYPolyLine; + _availableMethods[6].toElementsShapeType = ElementType.XYPoint; + _availableMethods[6].Description = "Nearest"; + _availableMethods[6].ID = (int) eMethods.PolylineToPoint.Nearest; + + _availableMethods[7].fromElementsShapeType = ElementType.XYPolyLine; + _availableMethods[7].toElementsShapeType = ElementType.XYPoint; + _availableMethods[7].Description = "Inverse"; + _availableMethods[7].ID = (int) eMethods.PolylineToPoint.Inverse; + + _availableMethods[8].fromElementsShapeType = ElementType.XYPolyLine; + _availableMethods[8].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[8].Description = "Weighted Mean"; + _availableMethods[8].ID = (int) eMethods.PolylineToPolygon.WeightedMean; + + _availableMethods[9].fromElementsShapeType = ElementType.XYPolyLine; + _availableMethods[9].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[9].Description = "Weighted Sum"; + _availableMethods[9].ID = (int) eMethods.PolylineToPolygon.WeightedSum; + + _availableMethods[10].fromElementsShapeType = ElementType.XYPolygon; + _availableMethods[10].toElementsShapeType = ElementType.XYPoint; + _availableMethods[10].Description = "Value"; + _availableMethods[10].ID = (int) eMethods.PolygonToPoint.Value; + + _availableMethods[11].fromElementsShapeType = ElementType.XYPolygon; + _availableMethods[11].toElementsShapeType = ElementType.XYPolyLine; + _availableMethods[11].Description = "Weighted Mean"; + _availableMethods[11].ID = (int) eMethods.PolygonToPolyline.WeightedMean; + + _availableMethods[12].fromElementsShapeType = ElementType.XYPolygon; + _availableMethods[12].toElementsShapeType = ElementType.XYPolyLine; + _availableMethods[12].Description = "Weighted Sum"; + _availableMethods[12].ID = (int) eMethods.PolygonToPolyline.WeightedSum; + + _availableMethods[13].fromElementsShapeType = ElementType.XYPolygon; + _availableMethods[13].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[13].Description = "Weighted Mean"; + _availableMethods[13].ID = (int) eMethods.PolygonToPolygon.WeightedMean; + + _availableMethods[14].fromElementsShapeType = ElementType.XYPolygon; + _availableMethods[14].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[14].Description = "Weighted Sum"; + _availableMethods[14].ID = (int) eMethods.PolygonToPolygon.WeightedSum; + } + + /// + /// Initialises the ElementMapper. The initialisation includes setting the _isInitialised + /// flag and calls UpdateMappingMatrix for claculation of the mapping matrix. + /// + /// + /// String description of mapping method + /// The IElementSet to map from. + /// The IElementSet to map to + /// + /// + /// The method has no return value. + /// + public void Initialise(string methodDescription, IElementSet fromElements, IElementSet toElements) + { + UpdateMappingMatrix(methodDescription, fromElements, toElements); + _isInitialised = true; + } + + /// + /// MapValues calculates a IValueSet through multiplication of an inputValues IValueSet + /// vector or matrix (ScalarSet or VectorSet) on to the mapping maprix. IScalarSets maps + /// to IScalarSets and IVectorSets maps to IVectorSets. + /// + /// + /// + /// Mapvalues is called every time a georeferenced link is evaluated. + /// + /// + /// IValueSet of values to be mapped. + /// + /// + /// A IValueSet found by mapping of the inputValues on to the toElementSet. + /// + public IValueSet MapValues(IValueSet inputValues) + { + if (!_isInitialised) + { + throw new System.Exception("ElementMapper objects needs to be initialised before the MapValue method can be used"); + } + if (!inputValues.Count.Equals(_numberOfColumns)) + { + throw new System.Exception("Dimension mismatch between inputValues and mapping matrix"); + } + if (inputValues is IScalarSet) + { + double[] outValues = new double[_numberOfRows]; + //--- Multiply the Values vector with the MappingMatrix --- + for (int i = 0; i < _numberOfRows; i++) + { + outValues[i] = 0; + for (int n = 0; n < _numberOfColumns; n++) + { + outValues[i] += _mappingMatrix[i,n] * ((IScalarSet) inputValues).GetScalar(n); //(remove)inValues[n]; + } + } + ScalarSet outputValues = new ScalarSet(outValues); + return outputValues; + } + else if (inputValues is IVectorSet) + { + Vector[] outValues = new Vector[_numberOfRows]; + //--- Multiply the Values vector with the MappingMatrix --- + for (int i = 0; i < _numberOfRows; i++) + { + outValues[i].XComponent = 0; + outValues[i].YComponent = 0; + outValues[i].ZComponent = 0; + for (int n = 0; n < _numberOfColumns; n++) + { + outValues[i].XComponent += _mappingMatrix[i,n] * ((IVectorSet) inputValues).GetVector(n).XComponent; + outValues[i].YComponent += _mappingMatrix[i,n] * ((IVectorSet) inputValues).GetVector(n).YComponent; + outValues[i].ZComponent += _mappingMatrix[i,n] * ((IVectorSet) inputValues).GetVector(n).ZComponent; + } + } + VectorSet outputValues = new VectorSet(outValues); + return outputValues; + } + else + { + throw new System.Exception("Invalid datatype used for inputValues parameter. MapValues failed"); + } + } + + /// + /// Calculates the mapping matrix between fromElements and toElements. The mapping method + /// is decided from the combination of methodDescription, fromElements.ElementType and + /// toElements.ElementType. + /// The valid values for methodDescription is obtained through use of the + /// GetAvailableMethods method. + /// + /// + /// + /// UpdateMappingMatrix is called during initialisation. UpdateMappingMatrix must be called prior + /// to Mapvalues. + /// + /// + /// String description of mapping method + /// The IElementset to map from. + /// The IElementset to map to + /// + /// + /// The method has no return value. + /// + public void UpdateMappingMatrix(string methodDescription, IElementSet fromElements, IElementSet toElements) + { + try + { + ElementSetChecker.CheckElementSet(fromElements); + ElementSetChecker.CheckElementSet(toElements); + + _methodID = GetMethodID(methodDescription, fromElements.ElementType, toElements.ElementType); + _numberOfRows = toElements.ElementCount; + _numberOfColumns = fromElements.ElementCount; + _mappingMatrix = new double[_numberOfRows, _numberOfColumns]; + + if (fromElements.ElementType == ElementType.XYPoint && toElements.ElementType == ElementType.XYPoint) + // Point to Point + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPoint ToPoint = CreateXYPoint(toElements,i); + for (int j = 0; j < _numberOfColumns; j++) + { + XYPoint FromPoint = CreateXYPoint(fromElements,j); + _mappingMatrix[i,j] = XYGeometryTools.CalculatePointToPointDistance(ToPoint, FromPoint); + } + } + + if (_methodID.Equals((int) eMethods.PointToPoint.Nearest)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double MinDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < MinDist) + { + MinDist = _mappingMatrix[i,j]; + } + } + int Denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == MinDist) + { + _mappingMatrix[i,j] = 1; + Denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/Denominator; + } + } + } // if (_methodID.Equals((int) eMethods.PointToPoint.Nearest)) + else if (_methodID.Equals((int) eMethods.PointToPoint.Inverse)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double MinDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < MinDist) + { + MinDist = _mappingMatrix[i,j]; + } + } + if (MinDist == 0) + { + int Denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == MinDist) + { + _mappingMatrix[i,j] = 1; + Denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/Denominator; + } + } + else + { + double Denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = 1/_mappingMatrix[i,j]; + Denominator = Denominator + _mappingMatrix[i,j]; + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/Denominator; + } + } + } + } // else if (_methodID.Equals((int) eMethods.PointToPoint.Inverse)) + else + { + throw new System.Exception("methodDescription unknown for point point mapping"); + } // else if (_methodID.Equals((int) eMethods.PointToPoint.Nearest)) and else if (_methodID.Equals((int) eMethods.PointToPoint.Inverse)) + } + catch (System.Exception e) // Catch for all of the Point to Point part + { + throw new System.Exception("Point to point mapping failed",e); + } + #endregion + } + else if (fromElements.ElementType == ElementType.XYPoint && toElements.ElementType == ElementType.XYPolyLine) + // Point to PolyLine + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPolyline toPolyLine = CreateXYPolyline(toElements,i); + for (int j = 0; j < _numberOfColumns; j++) + { + XYPoint fromPoint = CreateXYPoint(fromElements,j); + _mappingMatrix[i,j] = XYGeometryTools.CalculatePolylineToPointDistance(toPolyLine, fromPoint); + } + } + + if (_methodID.Equals((int) eMethods.PointToPolyline.Nearest)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double MinDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < MinDist) + { + MinDist = _mappingMatrix[i,j]; + } + } + int denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == MinDist) + { + _mappingMatrix[i,j] = 1; + denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + } // if (_methodID.Equals((int) eMethods.PointToPolyline.Nearest)) + else if (_methodID.Equals((int) eMethods.PointToPolyline.Inverse)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double minDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < minDist) + { + minDist = _mappingMatrix[i,j]; + } + } + if (minDist == 0) + { + int denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == minDist) + { + _mappingMatrix[i,j] = 1; + denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + else + { + double denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = 1/_mappingMatrix[i,j]; + denominator = denominator + _mappingMatrix[i,j]; + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + } + } // else if (_methodID.Equals((int) eMethods.PointToPolyline.Inverse)) + else // if _methodID != Nearest and Inverse + { + throw new System.Exception("methodDescription unknown for point to polyline mapping"); + } + } + catch (System.Exception e)// Catch for all of the Point to Polyline part + { + throw new System.Exception("Point to polyline mapping failed",e); + } + #endregion + } + else if(fromElements.ElementType == ElementType.XYPoint && toElements.ElementType == ElementType.XYPolygon) + // Point to Polygon + { + #region + try + { + XYPolygon polygon; + XYPoint point; + int count; + for (int i = 0; i < _numberOfRows; i++) + { + polygon = CreateXYPolygon(toElements,i); + count = 0; + for (int n = 0; n < _numberOfColumns; n++) + { + point = CreateXYPoint(fromElements, n); + if(XYGeometryTools.IsPointInPolygon(point, polygon)) + { + if (_methodID.Equals((int) eMethods.PointToPolygon.Mean)) + { + count = count+1; + } + else if (_methodID.Equals((int) eMethods.PointToPolygon.Sum)) + { + count = 1; + } + else + { + throw new System.Exception("methodDescription unknown for point to polygon mapping"); + } + + } + } + for (int n = 0; n < _numberOfColumns; n++) + { + point = CreateXYPoint(fromElements,n); + + if(XYGeometryTools.IsPointInPolygon(point, polygon)) + { + _mappingMatrix[i,n]=1.0/count; + } + } + } + } + catch (System.Exception e)// Catch for all of the Point to Polyline part + { + throw new System.Exception("Point to polygon mapping failed",e); + } + #endregion + } + else if(fromElements.ElementType == ElementType.XYPolyLine && toElements.ElementType == ElementType.XYPoint) + // Polyline to Point + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPoint toPoint = CreateXYPoint(toElements,i); + for (int j = 0; j < _numberOfColumns; j++) + { + XYPolyline fromPolyLine = CreateXYPolyline(fromElements,j); + _mappingMatrix[i,j] = XYGeometryTools.CalculatePolylineToPointDistance(fromPolyLine, toPoint); + } + } + + if (_methodID.Equals((int) eMethods.PolylineToPoint.Nearest)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double minDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < minDist) + { + minDist = _mappingMatrix[i,j]; + } + } + int denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == minDist) + { + _mappingMatrix[i,j] = 1; + denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + } // if (_methodID.Equals((int) eMethods.PolylineToPoint.Nearest)) + else if (_methodID.Equals((int) eMethods.PolylineToPoint.Inverse)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double minDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < minDist) + { + minDist = _mappingMatrix[i,j]; + } + } + if (minDist == 0) + { + int denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == minDist) + { + _mappingMatrix[i,j] = 1; + denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + else + { + double denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = 1/_mappingMatrix[i,j]; + denominator = denominator + _mappingMatrix[i,j]; + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + } + } // if (_methodID.Equals((int) eMethods.PolylineToPoint.Inverse)) + else // MethodID != Nearest and Inverse + { + throw new System.Exception("methodDescription unknown for polyline to point mapping"); + } + } + catch (System.Exception e)// Catch for all of the Point to Polyline part + { + throw new System.Exception("Polyline to point mapping failed",e); + } + #endregion + } + else if (fromElements.ElementType == ElementType.XYPolyLine && toElements.ElementType == ElementType.XYPolygon) + // PolyLine to Polygon + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPolygon polygon = CreateXYPolygon(toElements,i); + + if (_methodID.Equals((int) eMethods.PolylineToPolygon.WeightedMean)) + { + double totalLineLengthInPolygon = 0; + for (int n = 0; n < _numberOfColumns; n++) + { + XYPolyline polyline = CreateXYPolyline(fromElements,n); + _mappingMatrix[i,n] = XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(polyline,polygon); + totalLineLengthInPolygon += _mappingMatrix[i,n]; + } + if (totalLineLengthInPolygon > 0) + { + for (int n = 0; n < _numberOfColumns; n++) + { + _mappingMatrix[i,n] = _mappingMatrix[i,n]/totalLineLengthInPolygon; + } + } + } // if (_methodID.Equals((int) eMethods.PolylineToPolygon.WeightedMean)) + else if (_methodID.Equals((int) eMethods.PolylineToPolygon.WeightedSum)) + { + for (int n = 0; n < _numberOfColumns; n++) + { + XYPolyline polyline = CreateXYPolyline(fromElements,n); + _mappingMatrix[i,n] = XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(polyline,polygon)/polyline.GetLength(); + } // for (int n = 0; n < _numberOfColumns; n++) + } // else if (_methodID.Equals((int) eMethods.PolylineToPolygon.WeightedSum)) + else // if MethodID != WeightedMean and WeigthedSum + { + throw new System.Exception("methodDescription unknown for polyline to polygon mapping"); + } + } // for (int i = 0; i < _numberOfRows; i++) + } + catch (System.Exception e) // Catch for all of polyLine to polygon + { + throw new System.Exception("Polyline to polygon mapping failed",e); + } + #endregion + } + else if (fromElements.ElementType == ElementType.XYPolygon && toElements.ElementType == ElementType.XYPoint) + // Polygon to Point + { + #region + try + { + for (int n = 0; n < _numberOfRows; n++) + { + XYPoint point = CreateXYPoint(toElements,n); + for (int i = 0; i < _numberOfColumns; i++) + { + XYPolygon polygon = CreateXYPolygon(fromElements,i); + if(XYGeometryTools.IsPointInPolygon(point, polygon)) + { + if (_methodID.Equals((int) eMethods.PolygonToPoint.Value)) + { + _mappingMatrix[n,i]=1.0; + } + else // if _methodID != Value + { + throw new System.Exception("methodDescription unknown for polygon to point mapping"); + } + } + } + } + } + catch (System.Exception e) // catch for all of Polygon to Point + { + throw new System.Exception("Polygon to point mapping failed",e); + } + #endregion + } + else if(fromElements.ElementType == ElementType.XYPolygon && toElements.ElementType == ElementType.XYPolyLine) + // Polygon to PolyLine + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPolyline polyline = CreateXYPolyline(toElements,i); + if (_methodID.Equals((int) eMethods.PolygonToPolyline.WeightedMean)) + { + for (int n = 0; n < _numberOfColumns; n++) + { + XYPolygon polygon = CreateXYPolygon(fromElements,n); + _mappingMatrix[i,n] = XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(polyline,polygon)/polyline.GetLength(); + } + double sum = 0; + for (int n = 0; n < _numberOfColumns; n++) + { + sum += _mappingMatrix[i,n]; + } + for (int n = 0; n < _numberOfColumns; n++) + { + _mappingMatrix[i,n] = _mappingMatrix[i,n]/sum; + } + } // if (_methodID.Equals((int) eMethods.PolygonToPolyline.WeightedMean)) + else if (_methodID.Equals((int) eMethods.PolygonToPolyline.WeightedSum)) + { + for (int n = 0; n < _numberOfColumns; n++) + { + XYPolygon polygon = CreateXYPolygon(fromElements,n); + _mappingMatrix[i,n] = XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(polyline,polygon)/polyline.GetLength(); + } + } // else if (_methodID.Equals((int) eMethods.PolygonToPolyline.WeightedSum)) + else // _methodID != WeightedMean and WeightedSum + { + throw new System.Exception("methodDescription unknown for polygon to polyline mapping"); + } + } + } + catch (System.Exception e) // catch for all of Polygon to PolyLine + { + throw new System.Exception("Polygon to polyline mapping failed",e); + } + #endregion + } + else if(fromElements.ElementType == ElementType.XYPolygon && toElements.ElementType == ElementType.XYPolygon) + // Polygon to Polygon + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPolygon toPolygon = CreateXYPolygon(toElements,i); + for (int j = 0; j < _numberOfColumns; j++) + { + XYPolygon fromPolygon = CreateXYPolygon(fromElements,j); + _mappingMatrix[i,j] = XYGeometryTools.CalculateSharedArea(toPolygon, fromPolygon); + } + if (_methodID.Equals((int) eMethods.PolygonToPolygon.WeightedMean)) + { + double denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + denominator = denominator + _mappingMatrix[i,j]; + } + for (int j = 0; j < _numberOfColumns; j++) + { + if (denominator != 0) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + } // if (_methodID.Equals((int) eMethods.PolygonToPolygon.WeightedMean)) + else if (_methodID.Equals((int) eMethods.PolygonToPolygon.WeightedSum)) + { + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/toPolygon.GetArea(); + } + } // else if (_methodID.Equals((int) eMethods.PolygonToPolygon.WeightedSum)) + else // _methodID != WeightedMean and WeightedSum + { + throw new System.Exception("methodDescription unknown for polygon to polygon mapping"); + } + } + } + catch (System.Exception e) // catch for all of Polygon to Polygon + { + throw new System.Exception("Polygon to polygon mapping failed",e); + } + #endregion + } + else // if the fromElementType, toElementType combination is no implemented + { + throw new System.Exception("Mapping of specified ElementTypes not included in ElementMapper"); + } + } + catch (System.Exception e) + { + throw new System.Exception("UpdateMappingMatrix failed to update mapping matrix",e); + } + } + + /// + /// Extracts the (row, column) element from the MappingMatrix. + /// + /// + /// Zero based row index + /// Zero based column index + /// + /// Element(row, column) from the mapping matrix. + /// + public double GetValueFromMappingMatrix(int row, int column) + { + try + { + ValidateIndicies(row, column); + } + catch (System.Exception e) + { + throw new System.Exception("GetValueFromMappingMatrix failed.",e); + } + return _mappingMatrix[row, column]; + } + + /// + /// Sets individual the (row, column) element in the MappingMatrix. + /// + /// + /// Element value to set + /// Zero based row index + /// Zero based column index + /// + /// No value is returned. + /// + public void SetValueInMappingMatrix(double value, int row, int column) + { + try + { + ValidateIndicies(row, column); + } + catch (System.Exception e) + { + throw new System.Exception("SetValueInMappingMatrix failed.",e); + } + _mappingMatrix[row, column] = value; + } + + private void ValidateIndicies(int row, int column) + { + if(row < 0) + { + throw new System.Exception("Negative row index not allowed. GetValueFromMappingMatrix failed."); + } + else if(row >= _numberOfRows) + { + throw new System.Exception("Row index exceeds mapping matrix dimension. GetValueFromMappingMatrix failed."); + } + else if(column < 0) + { + throw new System.Exception("Negative column index not allowed. GetValueFromMappingMatrix failed."); + } + else if(column >= _numberOfColumns) + { + throw new System.Exception("Column index exceeds mapping matrix dimension. GetValueFromMappingMatrix failed."); + } + } + + /// + /// Gives a list of descriptions (strings) for available mapping methods + /// given the combination of fromElementType and toElementType + /// + /// + /// Element type of the elements in + /// the fromElementset + /// Element type of the elements in + /// the toElementset + /// + /// + ///

    ArrayList of method descriptions

    + ///
    + public ArrayList GetAvailableMethods(ElementType fromElementsElementType, ElementType toElementsElementType) + { + ArrayList methodDescriptions = new ArrayList(); + + for ( int i = 0; i < _availableMethods.Length; i++) + { + if( fromElementsElementType == _availableMethods[i].fromElementsShapeType) + { + if (toElementsElementType == _availableMethods[i].toElementsShapeType) + { + methodDescriptions.Add(_availableMethods[i].Description); + } + } + } + return methodDescriptions; + } + + /// + /// Gives a list of ID's (strings) for available mapping methods + /// given the combination of fromElementType and toElementType + /// + /// + /// Element type of the elements in + /// the fromElementset + /// Element type of the elements in + /// the toElementset + /// + /// + ///

    ArrayList of method ID's

    + ///
    + public ArrayList GetIDsForAvailableDataOperations(ElementType fromElementsElementType, ElementType toElementsElementType) + { + ArrayList methodIDs = new ArrayList(); + + for ( int i = 0; i < _availableMethods.Length; i++) + { + if( fromElementsElementType == _availableMethods[i].fromElementsShapeType) + { + if (toElementsElementType == _availableMethods[i].toElementsShapeType) + { + methodIDs.Add("ElementMapper" + _availableMethods[i].ID); + } + } + } + return methodIDs; + } + + /// + /// This method will return an ArrayList of IDataOperations that the ElementMapper provides when + /// mapping from the ElementType specified in the method argument. + /// + /// + /// Each IDataOperation object will contain 3 IArguments: + ///

    [Key] [Value] [ReadOnly] [Description]-----------------

    + ///

    ["Type"] ["SpatialMapping"] [true] ["Using the ElementMapper"]

    + ///

    ["ID"] [The Operation ID] [true] ["Internal ElementMapper dataoperation ID"]

    + ///

    ["Description"] [The Operation Description] [true] ["Using the ElementMapper"]

    + ///

    ["ToElementType"] [ElementType] [true] ["Valid To-Element Types"]

    + ///
    + /// + /// + /// ArrayList which contains the available dataOperations (IDataOperation). + /// + public ArrayList GetAvailableDataOperations(ElementType fromElementsElementType) + { + ArrayList availableDataOperations = new ArrayList(); + + for ( int i = 0; i < _availableMethods.Length; i++) + { + if( fromElementsElementType == _availableMethods[i].fromElementsShapeType) + { + DataOperation dataOperation = new DataOperation("ElementMapper" + _availableMethods[i].ID); + dataOperation.AddArgument(new Argument("ID",_availableMethods[i].ID.ToString(),true,"Internal ElementMapper dataoperation ID")); + dataOperation.AddArgument(new Argument("Description",_availableMethods[i].Description,true,"Operation description")); + dataOperation.AddArgument(new Argument("Type","SpatialMapping",true,"Using the ElementMapper")); + dataOperation.AddArgument(new Argument("FromElementType",_availableMethods[i].fromElementsShapeType.ToString(),true,"Valid From-Element Types")); + dataOperation.AddArgument(new Argument("ToElementType",_availableMethods[i].toElementsShapeType.ToString(),true,"Valid To-Element Types")); + availableDataOperations.Add(dataOperation); + } + } + return availableDataOperations; + } + + private int GetMethodID(string methodDescription, ElementType fromElementsElementType, ElementType toElementsElementType) + { + for ( int i = 0; i < _availableMethods.Length; i++) + { + if( fromElementsElementType == _availableMethods[i].fromElementsShapeType) + { + if (toElementsElementType == _availableMethods[i].toElementsShapeType) + { + if (methodDescription == _availableMethods[i].Description) + return _availableMethods[i].ID; + } + } + } + throw new System.Exception("methodDescription: "+methodDescription+ + " not known for fromElementType: "+fromElementsElementType+ + " and to ElementType: "+toElementsElementType); + } + + private XYPoint CreateXYPoint(IElementSet elementSet, int index) + { + if (elementSet.ElementType != ElementType.XYPoint) + { + throw new System.Exception("Cannot create XYPoint"); + } + + XYPoint xyPoint = new XYPoint(); + xyPoint.X = elementSet.GetXCoordinate(index,0); + xyPoint.Y = elementSet.GetYCoordinate(index,0); + return xyPoint; + } + + private XYPolyline CreateXYPolyline(IElementSet elementSet, int index) + { + if (!(elementSet.ElementType == ElementType.XYPolyLine || elementSet.ElementType == ElementType.XYLine)) + { + throw new System.Exception("Cannot create XYPolyline"); + } + + XYPolyline xyPolyline = new XYPolyline(); + for (int i = 0; i < elementSet.GetVertexCount(index); i++) + { + xyPolyline.Points.Add(new XYPoint(elementSet.GetXCoordinate(index,i), elementSet.GetYCoordinate(index,i))); + } + + return xyPolyline; + } + + private XYPolygon CreateXYPolygon(IElementSet elementSet, int index) + { + if (elementSet.ElementType != ElementType.XYPolygon) + { + throw new System.Exception("Cannot create XYPolyline"); + } + + XYPolygon xyPolygon = new XYPolygon(); + + for (int i = 0; i < elementSet.GetVertexCount(index); i++) + { + xyPolygon.Points.Add(new XYPoint(elementSet.GetXCoordinate(index,i), elementSet.GetYCoordinate(index,i))); + } + + return xyPolygon; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/ElementSetChecker.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/ElementSetChecker.cs new file mode 100644 index 00000000..7c4b1254 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/ElementSetChecker.cs @@ -0,0 +1,125 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// Summary description for ElementSetChecker. + /// + public class ElementSetChecker + { + /// + /// Static method that validates an object with an IElementSet interface. The method + /// raises an Exception in case IElementSet does not describe a valid ElementSet. + /// The checks made are: + ///

    ElementType: Check

    + ///

    XYPoint: Only one vertex in each element.

    + ///

    XYPolyline: At least two vertices in each element.

    + ///

    All line segments in each element has length > 0

    + ///

    XYPolygon: At least three vertices in each element.

    + ///

    Area of each element is larger than 0

    + ///

    All line segments in each element has length > 0

    + ///

    No line segments within an element crosses.

    + ///
    + /// + /// Object that implement the IElementSet interface + /// + /// + /// The method has no return value. + /// + public static void CheckElementSet(IElementSet elementSet) + { + try + { + if(elementSet.ElementType == ElementType.XYPoint) + { + for (int i = 0; i < elementSet.ElementCount; i++) + { + try + { + if(elementSet.GetVertexCount(i) != 1) + { + throw new System.Exception("Number of vertices in point element is different from 1."); + } + } + catch (System.Exception e) + { + throw new System.Exception("ElementID = "+elementSet.GetElementID(i),e); + } + } + } + else if(elementSet.ElementType == ElementType.XYPolyLine) + { + for (int i = 0; i < elementSet.ElementCount; i++) + { + try + { + XYPolyline xypolyline = new XYPolyline(); + for (int j = 0; j < elementSet.GetVertexCount(i); j++) + { + XYPoint xypoint = new XYPoint(elementSet.GetXCoordinate(i,j),elementSet.GetYCoordinate(i,j)); + xypolyline.Points.Add(xypoint); + } + xypolyline.Validate(); + } + catch (System.Exception e) + { + throw new System.Exception("ElementID = "+elementSet.GetElementID(i),e); + } + } + } + else if(elementSet.ElementType == ElementType.XYPolygon) + { + for (int i = 0; i < elementSet.ElementCount; i++) + { + try + { + XYPolygon xypolygon = new XYPolygon(); + for (int j = 0; j < elementSet.GetVertexCount(i); j++) + { + XYPoint xypoint = new XYPoint(elementSet.GetXCoordinate(i,j),elementSet.GetYCoordinate(i,j)); + xypolygon.Points.Add(xypoint); + } + xypolygon.Validate(); + } + catch (System.Exception e) + { + throw new System.Exception("ElementID = "+elementSet.GetElementID(i),e); + } + } + } + } + catch (System.Exception e) + { + throw new System.Exception("ElementSet with ID = "+elementSet.ID+" is invalid",e); + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/Oatc.OpenMI.Sdk.Spatial.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/Oatc.OpenMI.Sdk.Spatial.csproj new file mode 100644 index 00000000..3983193c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/Oatc.OpenMI.Sdk.Spatial.csproj @@ -0,0 +1,132 @@ + + + Local + 8.0.50727 + 2.0 + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Spatial + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Spatial + OnBuildSuccess + + + + + + + false + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + bin\Release\Oatc.OpenMI.Sdk.Spatial.XML + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/XYGeometryTools.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/XYGeometryTools.cs new file mode 100644 index 00000000..100b8adb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/XYGeometryTools.cs @@ -0,0 +1,898 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// The XYGeometryTools class is a collection of general geometry functions. All functions are + /// static methods that performs calculations on input given as parameters and returns a result. + /// + /// The parameters passed to the XYGeometryTools methods are typically of type XYPoint, XYLine, + /// XYPolyline or XYPolygon. + /// + public class XYGeometryTools + { + private const double EPSILON = 1e-5; + + /// + /// Returns the distance between the two points. + /// + /// Point + /// Point + /// Point to point distance + public static double CalculatePointToPointDistance(XYPoint p1, XYPoint p2) + { + return Math.Sqrt( (p1.X-p2.X)*(p1.X-p2.X)+(p1.Y -p2.Y )*(p1.Y -p2.Y ) ); + } + + /// + /// Returns true if two line segments intersects. The lines are said to intersect if the lines + /// axctually crosses and not if they only share a point. + /// + /// x-coordiante for first point in first line segment + /// y-coordinate for first point in first line segment + /// x-cooedinate for second point in first line segment + /// y-coordinate for second point in first line segment + /// x-coordinate for the first point in second line segment + /// y-coordinate for the first point in second line segment + /// x-coordinate for the second point in the second line segment + /// y-coordinate for the second point in the second line segment + /// True if the line segments intersects otherwise false. + public static bool DoLineSegmentsIntersect(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) + { + double detP1P2P3, detP1P2P4, detP3P4P1, detP3P4P2; + bool intersect = false; + + detP1P2P3 = (x2 - x1)*(y3 - y1) - (x3 - x1)*(y2 - y1); + detP1P2P4 = (x2 - x1)*(y4 - y1) - (x4 - x1)*(y2 - y1); + detP3P4P1 = (x3 - x1)*(y4 - y1) - (x4 - x1)*(y3 - y1); + detP3P4P2 = detP1P2P3 - detP1P2P4 + detP3P4P1; + + if ((detP1P2P3 * detP1P2P4 < 0) && (detP3P4P1 * detP3P4P2 < 0)) + { + intersect = true; + } + return intersect; + } + + /// + /// OverLoad of DoLineSegmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4) + /// + /// First point in first line + /// Second point in first line + /// First point in second line + /// Second point in second line + /// true if the line segmenst intersects otherwise false + public static bool DoLineSegmentsIntersect(XYPoint p1, XYPoint p2, XYPoint p3, XYPoint p4) + { + return DoLineSegmentsIntersect(p1.X, p1.Y, p2.X, p2.Y, p3.X, p3.Y, p4.X, p4.Y); + } + + /// + /// OverLoad of DoLineSegmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4) + /// + /// First line + /// Second line + /// true if the line segmenst intersects otherwise false + public static bool DoLineSegmentsIntersect(XYLine line1, XYLine line2) + { + return DoLineSegmentsIntersect(line1.P1.X, line1.P1.Y, line1.P2.X, line1.P2.Y, line2.P1.X, line2.P1.Y, line2.P2.X, line2.P2.Y); + } + + /// + /// Calculate intersection point between two line segments. + /// + /// First point in first line + /// Second point in first line + /// First point in second line + /// Second point in second line + /// Intersection point + public static XYPoint CalculateIntersectionPoint(XYPoint p1, XYPoint p2, XYPoint p3, XYPoint p4) + { + if (!DoLineSegmentsIntersect(p1,p2,p3,p4)) + { + throw new System.Exception("Attempt to calculate intersection point between non intersecting lines. CalculateIntersectionPoint failed."); + } + + XYPoint interSectionPoint = new XYPoint(); + + double a = p1.X * p2.Y - p2.X * p1.Y; + double b = p3.X * p4.Y - p4.X * p3.Y; + double c = (p1.X - p2.X) * (p3.Y - p4.Y) - (p3.X - p4.X) * (p1.Y - p2.Y); + + interSectionPoint.X = (a * (p3.X - p4.X) - (b * (p1.X - p2.X))) / c; + interSectionPoint.Y = (a * (p3.Y - p4.Y) - (b * (p1.Y - p2.Y))) / c; + + return interSectionPoint; + } + + /// + /// OverLoad of CalculateIntersectionPoint(XYPoint p1, XYPoint p2, XYPoint p3, XYPoint p4) + /// + /// First line + /// Second line + /// Intersection point + public static XYPoint CalculateIntersectionPoint(XYLine line1, XYLine line2) + { + return CalculateIntersectionPoint(line1.P1, line1.P2, line2.P1, line2.P2); + } + + /// + /// Calculates the length of polyline inside polygon. Lines segments on the edges of + /// polygons are included with half their length. + /// + /// Polyline + /// Polygon + /// + /// Length of polyline inside polygon. + /// + public static double CalculateLengthOfPolylineInsidePolygon(XYPolyline polyline, XYPolygon polygon) + { + double lengthInside = 0; + int numberOfLineSegments = polyline.Points.Count - 1; + for (int i = 0; i < numberOfLineSegments; i++) + { + XYLine line = new XYLine(polyline.GetLine(i)); + lengthInside += CalculateLengthOfLineInsidePolygon(line,polygon); + } + return lengthInside; + } + + /// + /// Calculates the length that two lines overlap. + /// + /// Line + /// Line + /// + /// Length of shared line segment. + /// + protected static double CalculateSharedLength(XYLine lineA, XYLine lineB) + { + if ( Math.Abs(lineA.P2.X-lineA.P1.X) + /// Calculates length of line inside polygon. Parts of the line that is on the edge of + /// the polygon only counts with half their length. + /// + /// Line + /// Polygon + /// + /// Length of line inside polygon. + /// + protected static double CalculateLengthOfLineInsidePolygon(XYLine line, XYPolygon polygon) + { + ArrayList lineList = new ArrayList(); + lineList.Add(new XYLine(line)); + + for (int i = 0; i < polygon.Points.Count; i++) // For all lines in the polygon + { + for (int n = 0; n < lineList.Count; n++) + { + if (lineList.Count > 1000) + { + throw new Exception("Problems in ElementMapper, line has been cut in more than 1000 pieces !!!"); + } + + if (DoLineSegmentsIntersect((XYLine)lineList[n], polygon.GetLine(i))) + { + // Split the intersecting line into two lines + XYPoint IntersectionPoint = new XYPoint(CalculateIntersectionPoint((XYLine)lineList[n], polygon.GetLine(i))); + lineList.Add(new XYLine(IntersectionPoint, ((XYLine) lineList[n]).P2)); + ((XYLine) lineList[n]).P2.X = IntersectionPoint.X; + ((XYLine) lineList[n]).P2.Y = IntersectionPoint.Y; + break; + } + } + } + + for (int i = 0; i < lineList.Count; i++) + { + if (lineList.Count > 1000) + { + throw new Exception("Problems in ElementMapper, line has been cuttes in more than 100 pieces !!!"); + } + for (int j = 0; j < polygon.Points.Count; j++) + { + if (IsPointInLineInterior( polygon.GetLine(j).P1, ((XYLine) lineList[i]))) + { + lineList.Add(new XYLine(polygon.GetLine(j).P1, ((XYLine) lineList[i]).P2)); + ((XYLine) lineList[i]).P2.X = polygon.GetLine(j).P1.X; + ((XYLine) lineList[i]).P2.Y = polygon.GetLine(j).P1.Y; + } + } + } + + double lengthInside = 0; + for (int i = 0; i < lineList.Count; i++) + { + double sharedLength = 0; + for (int j = 0; j < polygon.Points.Count; j++) + { + sharedLength += CalculateSharedLength(((XYLine) lineList[i]), polygon.GetLine(j)); + } + if (sharedLength > EPSILON) + { + lengthInside += sharedLength/2; + } + else if (IsPointInPolygon(((XYLine) lineList[i]).GetMidpoint(), polygon)) + { + lengthInside += ((XYLine) lineList[i]).GetLength(); + } + } + return lengthInside; + } + + /// + /// The method calculates the intersection area of triangle a and b both + /// of type XYPolygon. + /// + /// Triangle of type XYPolygon + /// Triangle of type XYPolygon + /// + /// Intersection area between the triangles triangleA and triAngleB. + /// + protected static double TriangleIntersectionArea(XYPolygon triangleA, XYPolygon triangleB) + { + try + { + if (triangleA.Points.Count != 3 || triangleB.Points.Count != 3) + { + throw new System.Exception("Argument must be a polygon with 3 points"); + } + int i = 1; // Index for "next" node in polygon a. + int j = -1; // Index for "next" node in polygon b. + // -1 indicates that the first has not yet been found. + double area = 0; // Intersection area. Returned. + XYPolygon intersectionPolygon = new XYPolygon(); // Intersection polygon. + XYPoint pFirst = new XYPoint(); // First intersection point between triangles + XYPoint p = new XYPoint(); // Latest intersection node found + + p.X = ((XYPoint) triangleA.Points[0]).X; + p.Y = ((XYPoint) triangleA.Points[0]).Y; + Intersect(triangleA, triangleB, ref p, ref i, ref j, ref intersectionPolygon); + pFirst = p; + + if (j != -1) + { + int jStop = Increase(j, 2); + bool complete = false; + int count = 0; + while (!complete) + { + // coordinates for vectors pointing to next triangleA and triangleB point respectively + double vax= ((XYPoint) triangleA.Points[i]).X - p.X; + double vay= ((XYPoint) triangleA.Points[i]).Y - p.Y; + double vbx= ((XYPoint) triangleB.Points[j]).X - p.X; + double vby= ((XYPoint) triangleB.Points[j]).Y - p.Y; + + if(IsPointInPolygonOrOnEdge(p.X + EPSILON*vax, p.Y + EPSILON*vay, triangleB)) + { + Intersect(triangleA, triangleB, ref p, ref i, ref j, ref intersectionPolygon); + } + else if(IsPointInPolygonOrOnEdge(p.X + EPSILON*vbx, p.Y + EPSILON*vby, triangleA)) + { + Intersect(triangleB, triangleA, ref p, ref j, ref i, ref intersectionPolygon); + } + else // triangleA and triangleB only touches one another but do not intersect + { + area = 0; + return area; + } + if (intersectionPolygon.Points.Count > 1) + { + complete = (CalculatePointToPointDistance(p, pFirst) < EPSILON); + } + count++; + if ( count > 20 ) + { + throw new System.Exception("Failed to find intersection polygon"); + } + } + area = intersectionPolygon.GetArea(); + } + else + { + XYPoint pa = new XYPoint(); // internal point in triangle a + XYPoint pb = new XYPoint(); // internal point in triangle b + + pa.X = (triangleA.GetX(0)+triangleA.GetX(1)+triangleA.GetX(2))/3; + pa.Y = (triangleA.GetY(0)+triangleA.GetY(1)+triangleA.GetY(2))/3; + pb.X = (triangleB.GetX(0)+triangleB.GetX(1)+triangleB.GetX(2))/3; + pb.Y = (triangleB.GetY(0)+triangleB.GetY(1)+triangleB.GetY(2))/3; + + if (IsPointInPolygon(pa,triangleB) || IsPointInPolygon(pb,triangleA)) // triangleA is completely inside triangleB + { + area = Math.Min(triangleA.GetArea(),triangleB.GetArea()); + } + else // triangleA and triangleB do dot intersect + { + area = 0; + } + } + return area; + } + catch (System.Exception e) + { + throw new System.Exception("TriangleIntersectionArea failed",e); + } + } + + /// + /// The method calculates the intersection points of triangle a and b both + /// of type XYPolygon. + /// + /// triangle. The search is started along triangleA. + /// triangle. Intersection with this triangle are sought. + /// Starting point for the search. p must be part of triangleA. + /// on input: End index for the first line segment of triangleA in the search. + /// on output: End index for the last intersected line segment in triangleA. + /// on input: -1 if vertices before intersection is not to be added to list. + /// on output: End index for last intersected line segment of triangleB. + /// polygon eventuallu describing the + /// intersection area between triangleA and triangleB + /// + /// The p, i, j and intersectionPolygon are called by reference and modified in the method. + /// + private static void Intersect (XYPolygon triangleA, XYPolygon triangleB, + ref XYPoint p, ref int i, ref int j, + ref XYPolygon intersectionPolygon) + { + XYLine lineA; + XYLine lineB; + int im1 = Decrease(i, 2); // "i-1" + int count1 = 0; + bool found = false; + + while ((count1 < 3) && (!found)) + { + lineA = triangleA.GetLine(im1); + if (count1 == 0) + { + lineA.P1.X = p.X; + lineA.P1.Y = p.Y; + } + double MinDist = -1; // Distance used when a line is crossed more than once + int jm1 = 0; // "j-1" + int jm1Store = -1; + while (jm1 < 3) + { + lineB = triangleB.GetLine(jm1); + found = IntersectionPoint(lineA, lineB, ref p); + double Dist = CalculatePointToPointDistance(lineA.P1,p); + if (Dist < EPSILON) + { + found = false; + } + if (found) + { + if ((MinDist < 0) || (Dist < MinDist)) + { + MinDist = Dist; + jm1Store = jm1; + } + } + jm1++; + } + if ( jm1Store > -1 ) + { + lineB = triangleB.GetLine(jm1Store); + found = IntersectionPoint(lineA, lineB, ref p); + XYPoint HelpCoordinate = new XYPoint(p.X, p.Y); + XYPoint HelpNode = new XYPoint(HelpCoordinate); + + intersectionPolygon.Points.Add(HelpNode); + + j = Increase(jm1Store,2); + } + if (!found) + { + count1++; + im1 = Increase(im1,2); + i = Increase(i,2); + if (j!=-1) + { + XYPoint HelpCoordinate = new XYPoint(lineA.P2.X, lineA.P2.Y); + XYPoint HelpNode = new XYPoint(HelpCoordinate); + intersectionPolygon.Points.Add(HelpNode); + } + } + } + lineA = triangleA.GetLine(Decrease(i, 2)); + if ( CalculatePointToPointDistance(p, lineA.P2) + /// The method steps to the next index in a circular list 0, 1 ..., n. + /// + /// Index to increase. + /// Largest index + /// + ///

    The increased index.

    + ///
    + private static int Increase(int i, int n) + { + i++; + if (i>n) + { + i = 0; + } + return i; + } + + /// + /// The method steps to the previous index in a circular list 0, 1 ..., n. + /// + /// Index to decrease. + /// Largest index + /// + ///

    The decreased index.

    + ///
    + private static int Decrease(int i, int n) + { + i--; + if (i < 0) + { + i = n; + } + return i; + } + + /// + /// Checks if the lines lineA and lineB shares a point either as a real + /// crossing point or as a shared end point or a end point of the one + /// line being in the other line. + /// + /// Line. + /// Line. + /// Point. + /// + ///

    True if lineA and lineB has shared point. False otherwise

    + ///

    The shared point if any is returned in the intersectionPoint + /// parameter that is called by reference

    + ///
    + protected static bool IntersectionPoint(XYLine Linea, XYLine Lineb, ref XYPoint intersectionPoint) + { + if( DoLineSegmentsIntersect(Linea, Lineb)) + { + intersectionPoint = CalculateIntersectionPoint(Linea, Lineb); + return true; + } + if( IsPointInLine(Linea.P2, Lineb)) + { + intersectionPoint = Linea.P2; + return true; + } + if( IsPointInLine(Lineb.P2, Linea)) + { + intersectionPoint = Lineb.P2; + return true; + } + if( IsPointInLine(Lineb.P1, Linea)) + { + intersectionPoint = Lineb.P1; + return true; + } + if( IsPointInLine(Linea.P1, Lineb)) + { + intersectionPoint = Linea.P1; + return true; + } + return false; + } + + /// + /// Determines if a point is included in a line either in the interior + /// or as one of the end points. + /// + /// x-coordinate + /// y-coordinate + /// Line. + /// + ///

    Determines if a point is included in a line.

    + ///
    + protected static bool IsPointInLine(double x, double y, XYLine line) + { + bool result = false; + if( line.P1.X-line.P2.X != 0 ) + { + if ((x >= Math.Min(line.P1.X, line.P2.X)) && (x <= Math.Max(line.P1.X, line.P2.X))) + { + if( Math.Abs(y-line.P1.Y-(line.P2.Y-line.P1.Y)/(line.P1.X-line.P2.X)*(line.P1.X-x)) < EPSILON*EPSILON) + { + result = true; + } + } + } + else + { + if (line.P1.X == x) + { + if ( (y >= Math.Min(line.P1.Y, line.P2.Y)) && (y <= Math.Max(line.P1.Y, line.P2.Y)) ) + { + result = true; + } + } + } + return result; + } + + /// + /// Determines if a point is included in a line either in the interior + /// or as one of the end points. + ///

    Overload to: IsPointInLine(double x, double y, XYLine line)

    + ///
    + /// + /// Point + /// Line. + /// + /// + ///

    Determines if a point is included in a line.

    + ///
    + protected static bool IsPointInLine(XYPoint point, XYLine line) + { + return IsPointInLine( point.X, point.Y, line); + } + + /// + /// Determines if a point is included in a lines interior. I.e. included + /// in the line and not an endpoint. + /// + /// x-coordinate + /// y-coordinate + /// Line. + /// + ///

    Determines if a point is included in a line.

    + ///
    + protected static bool IsPointInLineInterior(double x, double y, XYLine line) + { + bool result = false; + if( line.P1.X-line.P2.X != 0 ) //line is not vertical + { + if ((x > Math.Min(line.P1.X, line.P2.X)) && (x < Math.Max(line.P1.X, line.P2.X))) + { + if( Math.Abs(y-line.P1.Y-(line.P2.Y-line.P1.Y)/(line.P1.X-line.P2.X)*(line.P1.X-x)) < EPSILON*EPSILON) + { + result = true; + } + } + } + else //line is vertical + { + if (line.P1.X == x) + { + if ( (y > Math.Min(line.P1.Y, line.P2.Y)) && (y < Math.Max(line.P1.Y, line.P2.Y)) ) + { + result = true; + } + } + } + return result; + } + + /// + /// Determines if a point is included in a lines interior. I.e. included + /// in the line and not an endpoint. + ///

    Overload to:IsPointInLineInterior(double x, double y, XYLine line)

    + ///
    + /// Point. + /// Line. + /// + ///

    Determines if a point is included in a line.

    + ///
    + protected static bool IsPointInLineInterior(XYPoint point, XYLine line) + { + return IsPointInLineInterior( point.X, point.Y, line); + } + + /// + /// Calculates the distance from a polyline to a point in the plane. + /// The algorithm decides weather the point lies besides the line + /// segment in which case the distance is the length along a line + /// perpendicular to the line. Alternatively the distance is the + /// smallest of the distances to either endpoint. + /// + /// Line + /// Point + /// + ///

    Length of the shortest path between the line and the point.

    + ///
    + protected static double CalculateLineToPointDistance (XYLine line, XYPoint point) + { + double dist = 0; + double a = Math.Sqrt((line.P2.X-point.X)*(line.P2.X-point.X) + (line.P2.Y-point.Y)*(line.P2.Y-point.Y)); + double b = Math.Sqrt((line.P2.X-line.P1.X)*(line.P2.X-line.P1.X)+(line.P2.Y-line.P1.Y)*(line.P2.Y-line.P1.Y)); + double c = Math.Sqrt((line.P1.X-point.X)*(line.P1.X-point.X)+(line.P1.Y-point.Y)*(line.P1.Y-point.Y)); + if ((a == 0) || (c == 0)) + { + dist = 0; + } + else if (b == 0) + { + dist = a; + } + else + { + double alpha = Math.Acos((b*b+c*c-a*a)/(2*b*c)); + double beta = Math.Acos((a*a+b*b-c*c)/(2*a*b)); + if (Math.Max(alpha,beta) + /// Finds the shortest distance between any line segment of the polyline + /// and the point. + /// + /// PolyLine. + /// Point + /// + ///

    Length of the shortest path between the polyline and the point.

    + ///
    + public static double CalculatePolylineToPointDistance (XYPolyline polyLine, XYPoint point) + { + double dist = 0; + int i = 0; + while (i < polyLine.Points.Count - 1) + { + if (i == 0) + { + dist = CalculateLineToPointDistance (polyLine.GetLine(0), point); + } + else + { + dist = Math.Min(dist, CalculateLineToPointDistance (polyLine.GetLine(i), point)); + } + i++; + } + return dist; + } + + /// + /// Determines if a point in inside or outside a polygon. + /// Works for both convex and concave polygons (Winding number test) + /// + /// Point + /// Polygon + /// + ///

    true: If the point is inside the polygon

    + ///

    false: Otherwise.

    + ///
    + public static bool IsPointInPolygon(XYPoint point, XYPolygon polygon) + { + return IsPointInPolygon(point.X, point.Y, polygon); + } + + /// + /// Determines if a point in inside or outside a polygon. + /// Works for both convex and concave polygons (Winding number test) + /// + /// x-coordinate for the point + /// y-coordiante for the point + /// Polygon + /// + ///

    true: If the point is inside the polygon

    + ///

    false: If the point is outside the polygon.

    + ///
    + public static bool IsPointInPolygon(double x, double y, XYPolygon polygon) + { + double x1,x2,y1,y2; + double xinters; + bool isInside = false; + int n = polygon.Points.Count; + + for (int i = 0; i < n; i++) + { + if (i < n - 1) + { + x1 = ((XYPoint)polygon.Points[i]).X; + x2 = ((XYPoint)polygon.Points[i+1]).X; + y1 = ((XYPoint)polygon.Points[i]).Y; + y2 = ((XYPoint)polygon.Points[i+1]).Y; + } + else + { + x1 = ((XYPoint)polygon.Points[n-1]).X; + x2 = ((XYPoint)polygon.Points[0]).X; + y1 = ((XYPoint)polygon.Points[n-1]).Y; + y2 = ((XYPoint)polygon.Points[0]).Y; + } + + if (y > Math.Min(y1,y2)) + { + if (y <= Math.Max(y1,y2)) + { + if ( x <= Math.Max(x1,x2)) + { + if (y1 != y2) + { + xinters = (y - y1)*(x2 - x1)/(y2 - y1) + x1; + + if (x1 == x2 || x <= xinters) + { + isInside = !isInside; + } + } + } + } + } + } + return isInside; + } + + /// + /// Determines if a point in inside or outside a polygon. Inside + /// includes on the edge for this method. + /// Works for both convex and concave polygons (Winding number test) + /// + /// x-coordinate for the point + /// y-coordiante for the point + /// Polygon + /// + ///

    true: If the point is inside the polygon

    + ///

    false: If the point is outside the polygon.

    + ///
    + protected static bool IsPointInPolygonOrOnEdge(double x, double y, XYPolygon polygon) + { + bool result = IsPointInPolygon(x, y, polygon); + if( result ) + { + return result; + } + else + { + int iLine = 0; + while( (!result) && (iLine < polygon.Points.Count) ) + { + XYLine line = new XYLine(); + line = polygon.GetLine(iLine); + result = IsPointInLine(x, y, line); + iLine++; + } + } + return result; + } + + /// + /// The methods calculates the shared area of two arbitrarily shaped + /// polygons. + /// + /// Polygon + /// Polygon + /// + ///

    The shared area.

    + ///
    + public static double CalculateSharedArea (XYPolygon polygonA, XYPolygon polygonB) + { + ArrayList triangleListA = polygonA.GetTriangulation(); + ArrayList triangleListB = polygonB.GetTriangulation(); + + double area = 0; + for (int ia = 0; ia < triangleListA.Count; ia++) + { + XYPolygon triangleA = new XYPolygon((XYPolygon)triangleListA[ia]); + for (int ib = 0; ib < triangleListB.Count; ib++) + { + XYPolygon triangleB = new XYPolygon((XYPolygon)triangleListB[ib]); + area = area + TriangleIntersectionArea(triangleA, triangleB); + } + } + return area; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/XYLine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/XYLine.cs new file mode 100644 index 00000000..94baf890 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/XYLine.cs @@ -0,0 +1,167 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// The XYline class is used for representing line segments. XYPolylines + /// and XYPolygons are composed of XYLines. + /// + public class XYLine + { + private XYPoint _p1; + private XYPoint _p2; + + /// + /// Constructor. + /// + /// None + public XYLine() + { + _p1 = new XYPoint(); + _p2 = new XYPoint(); + } + + /// + /// Constructor. + /// + /// x-coordinate for line start point + /// y-coordinate for line start point + /// x-coordinate for line end point + /// y-coordinate for line end point + /// None + public XYLine(double x1, double y1, double x2, double y2) + { + _p1 = new XYPoint(); + _p2 = new XYPoint(); + _p1.X = x1; + _p1.Y = y1; + _p2.X = x2; + _p2.Y = y2; + } + + /// + /// Constructor. + /// + /// Line start point + /// Line end point + /// None + public XYLine(XYPoint point1, XYPoint point2) + { + _p1 = new XYPoint(); + _p2 = new XYPoint(); + + _p1.X = point1.X; + _p1.Y = point1.Y;; + _p2.X = point2.X; + _p2.Y = point2.Y; + } + + /// + /// Constructor. Copies input line. + /// + /// Line to copy + public XYLine(XYLine line) + { + _p1 = new XYPoint(); + _p2 = new XYPoint(); + + _p1.X = line.P1.X; + _p1.Y = line.P1.Y; + _p2.X = line.P2.X; + _p2.Y = line.P2.Y; + } + + /// + /// Read only property describing the one end-point. + /// + public XYPoint P1 + { + get + { + return _p1; + } + } + + /// + /// Read only property describing the one end-point. + /// + public XYPoint P2 + { + get + { + return _p2; + } + } + + /// + /// Calculates the length of line. + /// + /// Line length + public double GetLength() + { + return Math.Sqrt((_p1.X-_p2.X)*(_p1.X-_p2.X)+ (_p1.Y-_p2.Y)*(_p1.Y-_p2.Y)); + } + + /// + /// Calculates the mid point of the line. + /// + /// Returns the line mid point as a XYPoint + public XYPoint GetMidpoint() + { + return new XYPoint(( _p1.X + _p2.X ) / 2, ( _p1.Y + _p2.Y ) / 2); + } + + /// + /// Compares the object type and the coordinates of the object and the + /// object passed as parameter. + /// + /// True if object type is XYLine and the coordinates are + /// equal to to the coordinates of the current object. False otherwise. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + { + return false; + } + return P1.Equals(((XYLine) obj).P1) && this.P2.Equals(((XYLine) obj).P2); + } + + /// + /// Get Hash Code. + /// + /// Hash Code for the current instance. + public override int GetHashCode() + { + return base.GetHashCode(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/XYPoint.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/XYPoint.cs new file mode 100644 index 00000000..ad8a52db --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/XYPoint.cs @@ -0,0 +1,124 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// XYPoint is simply a x and a y coordinate. + /// + public class XYPoint + { + private double _x; + private double _y; + + /// + /// Constructor. + /// + /// None + public XYPoint() + { + _x = -9999; + _y = -9999; + } + + /// + /// Constructor. + /// + /// None + public XYPoint(double x, double y) + { + _x = x; + _y = y; + } + + /// + /// Constructor. + /// + /// None + public XYPoint(XYPoint xypoint) + { + _x = xypoint.X; + _y = xypoint.Y; + } + + /// + /// Read/Write property describing the x-coordinate of the point. + /// + public double X + { + get + { + return _x; + } + set + { + _x = value; + } + } + + /// + /// Read/Write property describing the y-coordinate of the point. + /// + public double Y + { + get + { + return _y; + } + set + { + _y = value; + } + } + + /// + /// Compares the object type and the coordinates of the object and the + /// object passed as parameter. + /// + /// True if object type is XYPolyline and the coordinates are + /// equal to to the coordinates of the current object. False otherwise. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + else + return ((XYPoint) obj).X == this.X && ((XYPoint) obj).Y == this.Y; + } + + /// + /// Get Hash Code. + /// + /// Hash Code for the current instance. + public override int GetHashCode() + { + return base.GetHashCode(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/XYPolygon.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/XYPolygon.cs new file mode 100644 index 00000000..b9497bdb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/XYPolygon.cs @@ -0,0 +1,359 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + ///

    The XYPolygon class defines a polygon in the XY plane (no z coordinate)

    + ///

    + ///

    The XYPolygon class has a number of usefull methods and XYPolygon objects + /// are used as argument in a number of the methods in the Oatc.OpenMI.Sdk.Spatial + /// namespace.

    + ///

    + ///

    The XYPolygon class is inhereted from the org.OpenMI.Utilities.BackBone.Element class.

    + ///

    + ///

    It is possible to upcaste the XYPoint objects to Element objects.

    + ///

    + ///

    If you already have a Element object that defines a polygon you can construct + /// a new XYPoint using the Element objects as argument in the constructor.

    + /// + ///
    + public class XYPolygon : XYPolyline + { + /// + /// Constructor. + /// + public XYPolygon() + { + } + + /// + /// Constructor. Copies the contents of the xyPolygon parameter. + /// + /// Polygon to copy. + /// None + public XYPolygon(XYPolygon xyPolygon) + { + // Points = new ArrayList(); + foreach (XYPoint xypoint in xyPolygon.Points) + { + Points.Add(new XYPoint(xypoint.X, xypoint.Y)); + } + } + + /// + /// Calcualtes area of polygon. + /// + /// Polygon area. + public double GetArea() + { + double x1, x2, y1, y2, xN, x0, yN, y0, area; + area = 0; + for (int i = 0; i < Points.Count - 1; i++) + { + x1 = ((XYPoint) Points[i]).X; + x2 = ((XYPoint) Points[i+1]).X; + y1 = ((XYPoint) Points[i]).Y; + y2 = ((XYPoint) Points[i+1]).Y; + area += x1*y2 - x2*y1; + } + xN = ((XYPoint) Points[Points.Count - 1]).X; + x0 = ((XYPoint) Points[0]).X; + yN = ((XYPoint) Points[Points.Count - 1]).Y; + y0 = ((XYPoint) Points[0]).Y; + + area += xN * y0 - x0 * yN; + area = 0.5 * area; + + return area; + } + + /// + /// Returns the XYline that connects XYPoint LineNumber and the next + /// number (i.e. LineNumber+1 or 0). + /// 0-based line number. + /// + /// The XYLine starting at node lineNumber. + /// + public new XYLine GetLine(int lineNumber) + { + int index2; + + if (lineNumber == Points.Count - 1) + { + index2 = 0; + } + else + { + index2 = lineNumber + 1; + } + return new XYLine(((XYPoint) Points[lineNumber]).X, ((XYPoint) Points[lineNumber]).Y, ((XYPoint) Points[index2]).X, ((XYPoint) Points[index2]).Y); + } + + /// + /// Finds a set of three concecutive points that form a triangle, that + /// is not intersected by other parts of the polygon. + /// + /// + /// + ///

    i: Index for the "midlle" point of triangle that forms an ear. + /// The ear is formed by P(i-1), P(i) and P(i+1), where P are points + /// included in the polygon.

    + ///
    + protected int FindEar() + { + int i = 0; + int n = Points.Count - 1; + bool found = false; + while ((i < n-1) && (!found)) + { + if ((IsConvex(i) == true) && (IsIntersected(i) == false)) + { + found = true; + } + else + { + i++; + } + } + return i; + } + + /// + /// The method decides if the triangle formed by P(i-1), P(i) and + /// P(i+1) from Polygon are intersected by any of the other points + /// of the polygon. + /// + /// Middle index for the three points that forms the triangle + /// + ///

    true: If the triangle P(i-1), P(i), P(i+1) is intersected by other parts of Polygon

    + ///

    false: otherwise

    + ///
    + protected bool IsIntersected(int i) + { + double x = 0; + double y = 0; + int n = Points.Count; + + int im1 = i-1; + int ip1 = i+1; + if (i == 0) + { + im1 = n-1; + } + else if (i == n-1) + { + ip1 = 0; + } + + XYPoint nodeim1 = new XYPoint((XYPoint) Points[im1]); + XYPoint nodei = new XYPoint((XYPoint) Points[i]); + XYPoint nodeip1 = new XYPoint((XYPoint) Points[ip1]); + XYPolygon localPolygon = new XYPolygon(); + localPolygon.Points.Add(nodeim1); + localPolygon.Points.Add(nodei); + localPolygon.Points.Add(nodeip1); + + int j = 0; + bool intersected = false; + while (((j < n-1) && (!intersected))) + { + x = ((XYPoint) Points[j]).X; + y = ((XYPoint) Points[j]).Y; + + if (((((j!=im1) && (j!=i)) && (j!=ip1)) && XYGeometryTools.IsPointInPolygon(x,y,localPolygon))) + { + return true; + } + else + { + j++; + } + } + return false; + } + + /// + /// Returns an ArrayList of triangles of type XYPolygon describing the + /// triangalation of the polygon. + /// + /// + /// + /// A triangulation of the polygon. + /// + public ArrayList GetTriangulation() + { + int i = 0; + int im1 = 0; + int ip1 = 0; + int n = 0; + + XYPolygon LocalPolygon = new XYPolygon(this); + ArrayList TriangleList = new ArrayList(); + while (LocalPolygon.Points.Count > 3) + { + i = LocalPolygon.FindEar(); + n = LocalPolygon.Points.Count; + im1 = i-1; + ip1 = i+1; + if (i == 0) + { + im1 = n-1; + } + else if (i == n-1) + { + ip1 = 0; + } + XYPoint Nodeim1 = new XYPoint((XYPoint)LocalPolygon.Points[im1]); + XYPoint Nodei = new XYPoint((XYPoint)LocalPolygon.Points[i]); + XYPoint Nodeip1 = new XYPoint((XYPoint)LocalPolygon.Points[ip1]); + XYPolygon Triangle = new XYPolygon(); + Triangle.Points.Add(Nodeim1); + Triangle.Points.Add(Nodei); + Triangle.Points.Add(Nodeip1); + TriangleList.Add(Triangle); + LocalPolygon.Points.RemoveAt(i); + } + TriangleList.Add(LocalPolygon); + return TriangleList; + } + + /// + /// Decides if the angle at ith point is convex or concave. + /// + /// Index + /// + ///

    True if angle at the ith point is convex.

    + ///

    False if angle at the ith point is concave.

    + ///
    + protected bool IsConvex(int pointIndex) + { + bool isConvex = true; + int im1 = pointIndex - 1 < 0 ? Points.Count - 1 : pointIndex - 1; //previous point index + int ip1 = pointIndex + 1 > Points.Count - 1 ? 0 : pointIndex + 1; //next point index + + double xim1 = ((XYPoint) Points[im1]).X; + double yim1 = ((XYPoint) Points[im1]).Y; + + double xi = ((XYPoint) Points[pointIndex]).X; + double yi = ((XYPoint) Points[pointIndex]).Y; + + double xip1 = ((XYPoint) Points[ip1]).X; + double yip1 = ((XYPoint) Points[ip1]).Y; + + if ((xip1-xim1)*(yi-yim1)-(xi-xim1)*(yip1-yim1)>0) + { + isConvex = false; + } + else + { + isConvex = true; + } + return isConvex; + } + + /// + /// Compares the object type and the coordinates of the object and the + /// object passed as parameter. + /// + /// True if object type is XYPolygon and the coordinates are + /// equal to to the coordinates of the current object. False otherwise. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + { + return false; + } + XYPolyline e = (XYPolygon) obj; + if (Points.Count!=e.Points.Count) + { + return false; + } + for (int i=0;i + /// Get hash code. + /// + /// Hash Code for the current instance. + public override int GetHashCode() + { + return base.GetHashCode(); + } + + /// + /// The validate method check if the XYPolyline is valid. The checks + /// made are: + /// - is number of points >= 3 + /// - is the length of all line segments positiv + /// - do any lines cross + /// - is the area positiv + /// Exception is raised if the constraints are not met. + /// + public new void Validate() + { + if(Points.Count < 3) + { + throw new System.Exception("Number of vertices in polygon element is less than 3."); + } + if (GetArea() <= 0) + { + throw new System.Exception("Area of polygon is negative or zero. XYPolygons must be ordered counter clockwise."); + } + for (int j = 0; j < Points.Count; j++) + { + if (GetLine(j).GetLength() == 0) + { + throw new System.Exception("Length of line segment no: "+ + j.ToString()+" (0-based) of XYPolygon is zero."); + } + } + for (int j = 0; j < Points.Count; j++) + { + for (int m = 0; m < j; m++) + { + if (XYGeometryTools.DoLineSegmentsIntersect(GetLine(j),GetLine(m))) + { + throw new System.Exception("Line no: "+j.ToString()+" and line no: "+ + m.ToString()+" of XYPolygon crosses."); + } + } + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/XYPolyline.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/XYPolyline.cs new file mode 100644 index 00000000..c058b0b1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Backup1/XYPolyline.cs @@ -0,0 +1,183 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// XYPolyline is a collection of points (at least 2) connected with straigth lines. + /// Polylines are typically used for presentation of 1D data, river networks e.t.c. + /// + public class XYPolyline + { + private ArrayList _points; + + + /// + /// Constructor. + /// + public XYPolyline() + { + _points = new ArrayList(); + } + + /// + /// Constructor. Copies the contents of the xyPolyline parameter. + /// + /// Polyline to copy. + /// None + public XYPolyline(XYPolyline xyPolyline) + { + _points = new ArrayList(); + + foreach (XYPoint xypoint in xyPolyline.Points) + { + _points.Add(new XYPoint(xypoint.X, xypoint.Y)); + } + + } + + /// + /// Read only property holding the list of points. + /// + public ArrayList Points + { + get + { + return _points; + } + } + + /// + /// Retrieves the x-coordinate of the indexth line point. + /// + /// Index number of the point. + /// X-coordinate of the indexth point in the polyline. + public double GetX(int index) + { + return ((XYPoint) _points[index]).X; + } + + /// + /// Retrieves the y-coordinate of the indexth line point. + /// + /// Index number of the point. + /// Y-coordinate of the indexth point in the polyline. + public double GetY(int index) + { + return ((XYPoint) _points[index]).Y; + } + + /// + /// Retrieves the lineNumberth line segment of the polyline. The index + /// list is zero based. + /// + /// Index number of the line to retrieve. + /// The lineNumberth line segment of the polyline. + public XYLine GetLine(int lineNumber) + { + return new XYLine((XYPoint)_points[lineNumber], (XYPoint)_points[lineNumber+1]); + } + + /// + /// Calculates the length of the polyline. + /// + /// Length of the polyline. + public double GetLength() + { + double length = 0; + for (int i = 0; i < _points.Count - 1; i++) + { + length += GetLine(i).GetLength(); + } + return length; + } + + /// + /// Compares the object type and the coordinates of the object and the + /// object passed as parameter. + /// + /// True if object type is XYPolyline and the coordinates are + /// equal to to the coordinates of the current object. False otherwise. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + { + return false; + } + XYPolyline e = (XYPolyline) obj; + if (_points.Count!=e.Points.Count) + { + return false; + } + for (int i=0;i<_points.Count;i++) + { + if (!((XYPoint) _points[i]).Equals(e.Points[i])) + { + return false; + } + } + return true; + } + + /// + /// Get hash code. + /// + /// Hash Code for the current instance. + public override int GetHashCode() + { + return base.GetHashCode(); + } + + /// + /// The validate method check if the XYPolyline is valid. The checks + /// made are: + /// - is number of points >= 2 + /// - is the length of all line segments positiv + /// Exception is raised if the constraints are not met. + /// + public void Validate() + { + if(_points.Count < 2) + { + throw new System.Exception("Number of vertices in polyline element is less than 2."); + } + for (int j = 0; j < _points.Count-1; j++) + { + if (GetLine(j).GetLength() == 0) + { + throw new System.Exception("Length of line segment no: "+ + j.ToString()+" (0-based) of XYPolyline is zero."); + } + } + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/DataOperation.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/DataOperation.cs new file mode 100644 index 00000000..2608bbbb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/DataOperation.cs @@ -0,0 +1,122 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// Summary description for DataOperation. + /// + [Serializable] + public class DataOperation : Backbone.DataOperation + { + /// + /// Redecalration of the overloaded constructor from the base class. + /// The redeclaration is probably needed since constructors can not be + /// marked as virtual. + /// + public DataOperation() + { + } + + /// + /// Redecalration of the overloaded constructor from the base class. + /// The redeclaration is probably needed since constructors can not be + /// marked as virtual. + /// + public DataOperation(IDataOperation source) : base(source) + { + } + + /// + /// Redecalration of the overloaded constructor from the base class. + /// The redeclaration is probably needed since constructors can not be + /// marked as virtual. + /// + public DataOperation(string ID) : base(ID) + { + } + + /// + /// For a given combination of inputExchangeItem, outputExchangeItem and list of dataOperation + /// it is decided if the dataOperations constitutes a valid set seen from a spatial settings + /// point of view. + /// + /// The input exchange item + /// The output exchange item + /// List of selected dataOperations + public override bool IsValid(IInputExchangeItem inputExchangeItem, IOutputExchangeItem outputExchangeItem, IDataOperation[] SelectedDataOperations) + { + bool returnValue = true; + bool methodAvaileble = false; + ElementMapper elementMapper = new ElementMapper(); + + foreach (string idString in elementMapper.GetIDsForAvailableDataOperations(outputExchangeItem.ElementSet.ElementType,inputExchangeItem.ElementSet.ElementType)) + { + if (ID == idString) + { + methodAvaileble = true; + } + } + if (!methodAvaileble) + { + return false; + } + + // --- check that only one SpatialMapping dataoperation is selected. --- + int numberOfSelectedSpatialMappingDataOperations = 0; + foreach (IDataOperation dataOperation in SelectedDataOperations) + { + for (int i = 0; i < dataOperation.ArgumentCount; i++) + { + if (dataOperation.GetArgument(i).Key == "Type") + { + if (dataOperation.GetArgument(i).Value == "SpatialMapping") + { + numberOfSelectedSpatialMappingDataOperations++; //this counting is done to check if the same dataOpertion is added twise + + if (dataOperation.ID != ID) //the selected dataoperation must be this dataOperation + { + returnValue = false; //the selected dataoperation must be this + } + } + } + } + } + + if (numberOfSelectedSpatialMappingDataOperations > 1) + { + returnValue = false; + } + + return returnValue; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/ElementMapper.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/ElementMapper.cs new file mode 100644 index 00000000..b55c5738 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/ElementMapper.cs @@ -0,0 +1,1101 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// The ElementMapper converts one ValueSet (inputValues) associated one ElementSet (fromElements) + /// to a new ValuesSet (return value of MapValue) that corresponds to another ElementSet + /// (toElements). The conversion is a two step procedure where the first step (Initialize) is + /// executed at initialisation time only, whereas the MapValues is executed during time stepping. + /// + ///

    The Initialize method will create a conversion matrix with the same number of rows as the + /// number of elements in the ElementSet associated to the accepting component (i.e. the toElements) + /// and the same number of columns as the number of elements in the ElementSet associated to the + /// providing component (i.e. the fromElements).

    + /// + ///

    Mapping is possible for any zero-, one- and two-dimensional elemets. Zero dimensional + /// elements will always be points, one-dimensional elements will allways be polylines and two- + /// dimensional elements will allways be polygons.

    + /// + ///

    The ElementMapper contains a number of methods for mapping between the different element types. + /// As an example polyline to polygon mapping may be done either as Weighted Mean or as Weighted Sum. + /// Typically the method choice will depend on the quantity mapped. Such that state variables such as + /// water level will be mapped using Weighted Mean whereas flux variables such as seepage from river + /// to groundwater will be mapped using Weighted Sum. The list of available methods for a given + /// combination of from and to element types is obtained using the GetAvailableMethods method.

    + ///
    + public class ElementMapper + { + + private const int NUMBER_OF_AVAILABLE_METHODS = 15; + private struct eMethods + { + public enum PointToPoint : int + { + Nearest = 100, + Inverse = 101 + } + + public enum PointToPolyline : int + { + Nearest = 200, + Inverse = 201, + } + + public enum PointToPolygon : int + { + Mean = 300, + Sum = 301, + } + + public enum PolylineToPoint : int + { + Nearest = 400, + Inverse = 401, + } + + public enum PolylineToPolygon : int + { + WeightedMean = 500, + WeightedSum = 501, + } + + public enum PolygonToPoint : int + { + Value = 600, + } + + public enum PolygonToPolyline : int + { + WeightedMean = 700, + WeightedSum = 701, + } + + public enum PolygonToPolygon : int + { + WeightedMean = 800, + WeightedSum = 801, + } + } + + private struct sMethod + { + public int ID; + public string Description; + public ElementType fromElementsShapeType; + public ElementType toElementsShapeType; + } + private double[ , ] _mappingMatrix; // the mapping matrix + private int _numberOfRows; + private int _numberOfColumns; + private int _methodID; + private bool _isInitialised; + sMethod[] _availableMethods; + + /// + /// Constructor. + /// + public ElementMapper() + { + _numberOfRows = 0; + _numberOfColumns = 0; + _isInitialised = false; + + _availableMethods = new sMethod[NUMBER_OF_AVAILABLE_METHODS]; + + _availableMethods[0].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[0].toElementsShapeType = ElementType.XYPoint; + _availableMethods[0].Description = "Nearest"; + _availableMethods[0].ID = (int) eMethods.PointToPoint.Nearest; + + _availableMethods[1].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[1].toElementsShapeType = ElementType.XYPoint; + _availableMethods[1].Description = "Inverse"; + _availableMethods[1].ID = (int) eMethods.PointToPoint.Inverse; + + _availableMethods[2].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[2].toElementsShapeType = ElementType.XYPolyLine; + _availableMethods[2].Description = "Nearest"; + _availableMethods[2].ID = (int) eMethods.PointToPolyline.Nearest; + + _availableMethods[3].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[3].toElementsShapeType = ElementType.XYPolyLine; + _availableMethods[3].Description = "Inverse"; + _availableMethods[3].ID = (int) eMethods.PointToPolyline.Inverse; + + _availableMethods[4].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[4].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[4].Description = "Mean"; + _availableMethods[4].ID = (int) eMethods.PointToPolygon.Mean; + + _availableMethods[5].fromElementsShapeType = ElementType.XYPoint; + _availableMethods[5].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[5].Description = "Sum"; + _availableMethods[5].ID = (int) eMethods.PointToPolygon.Sum; + + _availableMethods[6].fromElementsShapeType = ElementType.XYPolyLine; + _availableMethods[6].toElementsShapeType = ElementType.XYPoint; + _availableMethods[6].Description = "Nearest"; + _availableMethods[6].ID = (int) eMethods.PolylineToPoint.Nearest; + + _availableMethods[7].fromElementsShapeType = ElementType.XYPolyLine; + _availableMethods[7].toElementsShapeType = ElementType.XYPoint; + _availableMethods[7].Description = "Inverse"; + _availableMethods[7].ID = (int) eMethods.PolylineToPoint.Inverse; + + _availableMethods[8].fromElementsShapeType = ElementType.XYPolyLine; + _availableMethods[8].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[8].Description = "Weighted Mean"; + _availableMethods[8].ID = (int) eMethods.PolylineToPolygon.WeightedMean; + + _availableMethods[9].fromElementsShapeType = ElementType.XYPolyLine; + _availableMethods[9].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[9].Description = "Weighted Sum"; + _availableMethods[9].ID = (int) eMethods.PolylineToPolygon.WeightedSum; + + _availableMethods[10].fromElementsShapeType = ElementType.XYPolygon; + _availableMethods[10].toElementsShapeType = ElementType.XYPoint; + _availableMethods[10].Description = "Value"; + _availableMethods[10].ID = (int) eMethods.PolygonToPoint.Value; + + _availableMethods[11].fromElementsShapeType = ElementType.XYPolygon; + _availableMethods[11].toElementsShapeType = ElementType.XYPolyLine; + _availableMethods[11].Description = "Weighted Mean"; + _availableMethods[11].ID = (int) eMethods.PolygonToPolyline.WeightedMean; + + _availableMethods[12].fromElementsShapeType = ElementType.XYPolygon; + _availableMethods[12].toElementsShapeType = ElementType.XYPolyLine; + _availableMethods[12].Description = "Weighted Sum"; + _availableMethods[12].ID = (int) eMethods.PolygonToPolyline.WeightedSum; + + _availableMethods[13].fromElementsShapeType = ElementType.XYPolygon; + _availableMethods[13].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[13].Description = "Weighted Mean"; + _availableMethods[13].ID = (int) eMethods.PolygonToPolygon.WeightedMean; + + _availableMethods[14].fromElementsShapeType = ElementType.XYPolygon; + _availableMethods[14].toElementsShapeType = ElementType.XYPolygon; + _availableMethods[14].Description = "Weighted Sum"; + _availableMethods[14].ID = (int) eMethods.PolygonToPolygon.WeightedSum; + } + + /// + /// Initialises the ElementMapper. The initialisation includes setting the _isInitialised + /// flag and calls UpdateMappingMatrix for claculation of the mapping matrix. + /// + /// + /// String description of mapping method + /// The IElementSet to map from. + /// The IElementSet to map to + /// + /// + /// The method has no return value. + /// + public void Initialise(string methodDescription, IElementSet fromElements, IElementSet toElements) + { + UpdateMappingMatrix(methodDescription, fromElements, toElements); + _isInitialised = true; + } + + /// + /// MapValues calculates a IValueSet through multiplication of an inputValues IValueSet + /// vector or matrix (ScalarSet or VectorSet) on to the mapping maprix. IScalarSets maps + /// to IScalarSets and IVectorSets maps to IVectorSets. + /// + /// + /// + /// Mapvalues is called every time a georeferenced link is evaluated. + /// + /// + /// IValueSet of values to be mapped. + /// + /// + /// A IValueSet found by mapping of the inputValues on to the toElementSet. + /// + public IValueSet MapValues(IValueSet inputValues) + { + if (!_isInitialised) + { + throw new System.Exception("ElementMapper objects needs to be initialised before the MapValue method can be used"); + } + if (!inputValues.Count.Equals(_numberOfColumns)) + { + throw new System.Exception("Dimension mismatch between inputValues and mapping matrix"); + } + if (inputValues is IScalarSet) + { + double[] outValues = new double[_numberOfRows]; + //--- Multiply the Values vector with the MappingMatrix --- + for (int i = 0; i < _numberOfRows; i++) + { + outValues[i] = 0; + for (int n = 0; n < _numberOfColumns; n++) + { + outValues[i] += _mappingMatrix[i,n] * ((IScalarSet) inputValues).GetScalar(n); //(remove)inValues[n]; + } + } + ScalarSet outputValues = new ScalarSet(outValues); + return outputValues; + } + else if (inputValues is IVectorSet) + { + Vector[] outValues = new Vector[_numberOfRows]; + //--- Multiply the Values vector with the MappingMatrix --- + for (int i = 0; i < _numberOfRows; i++) + { + outValues[i].XComponent = 0; + outValues[i].YComponent = 0; + outValues[i].ZComponent = 0; + for (int n = 0; n < _numberOfColumns; n++) + { + outValues[i].XComponent += _mappingMatrix[i,n] * ((IVectorSet) inputValues).GetVector(n).XComponent; + outValues[i].YComponent += _mappingMatrix[i,n] * ((IVectorSet) inputValues).GetVector(n).YComponent; + outValues[i].ZComponent += _mappingMatrix[i,n] * ((IVectorSet) inputValues).GetVector(n).ZComponent; + } + } + VectorSet outputValues = new VectorSet(outValues); + return outputValues; + } + else + { + throw new System.Exception("Invalid datatype used for inputValues parameter. MapValues failed"); + } + } + + /// + /// Calculates the mapping matrix between fromElements and toElements. The mapping method + /// is decided from the combination of methodDescription, fromElements.ElementType and + /// toElements.ElementType. + /// The valid values for methodDescription is obtained through use of the + /// GetAvailableMethods method. + /// + /// + /// + /// UpdateMappingMatrix is called during initialisation. UpdateMappingMatrix must be called prior + /// to Mapvalues. + /// + /// + /// String description of mapping method + /// The IElementset to map from. + /// The IElementset to map to + /// + /// + /// The method has no return value. + /// + public void UpdateMappingMatrix(string methodDescription, IElementSet fromElements, IElementSet toElements) + { + try + { + ElementSetChecker.CheckElementSet(fromElements); + ElementSetChecker.CheckElementSet(toElements); + + _methodID = GetMethodID(methodDescription, fromElements.ElementType, toElements.ElementType); + _numberOfRows = toElements.ElementCount; + _numberOfColumns = fromElements.ElementCount; + _mappingMatrix = new double[_numberOfRows, _numberOfColumns]; + + if (fromElements.ElementType == ElementType.XYPoint && toElements.ElementType == ElementType.XYPoint) + // Point to Point + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPoint ToPoint = CreateXYPoint(toElements,i); + for (int j = 0; j < _numberOfColumns; j++) + { + XYPoint FromPoint = CreateXYPoint(fromElements,j); + _mappingMatrix[i,j] = XYGeometryTools.CalculatePointToPointDistance(ToPoint, FromPoint); + } + } + + if (_methodID.Equals((int) eMethods.PointToPoint.Nearest)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double MinDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < MinDist) + { + MinDist = _mappingMatrix[i,j]; + } + } + int Denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == MinDist) + { + _mappingMatrix[i,j] = 1; + Denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/Denominator; + } + } + } // if (_methodID.Equals((int) eMethods.PointToPoint.Nearest)) + else if (_methodID.Equals((int) eMethods.PointToPoint.Inverse)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double MinDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < MinDist) + { + MinDist = _mappingMatrix[i,j]; + } + } + if (MinDist == 0) + { + int Denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == MinDist) + { + _mappingMatrix[i,j] = 1; + Denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/Denominator; + } + } + else + { + double Denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = 1/_mappingMatrix[i,j]; + Denominator = Denominator + _mappingMatrix[i,j]; + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/Denominator; + } + } + } + } // else if (_methodID.Equals((int) eMethods.PointToPoint.Inverse)) + else + { + throw new System.Exception("methodDescription unknown for point point mapping"); + } // else if (_methodID.Equals((int) eMethods.PointToPoint.Nearest)) and else if (_methodID.Equals((int) eMethods.PointToPoint.Inverse)) + } + catch (System.Exception e) // Catch for all of the Point to Point part + { + throw new System.Exception("Point to point mapping failed",e); + } + #endregion + } + else if (fromElements.ElementType == ElementType.XYPoint && toElements.ElementType == ElementType.XYPolyLine) + // Point to PolyLine + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPolyline toPolyLine = CreateXYPolyline(toElements,i); + for (int j = 0; j < _numberOfColumns; j++) + { + XYPoint fromPoint = CreateXYPoint(fromElements,j); + _mappingMatrix[i,j] = XYGeometryTools.CalculatePolylineToPointDistance(toPolyLine, fromPoint); + } + } + + if (_methodID.Equals((int) eMethods.PointToPolyline.Nearest)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double MinDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < MinDist) + { + MinDist = _mappingMatrix[i,j]; + } + } + int denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == MinDist) + { + _mappingMatrix[i,j] = 1; + denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + } // if (_methodID.Equals((int) eMethods.PointToPolyline.Nearest)) + else if (_methodID.Equals((int) eMethods.PointToPolyline.Inverse)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double minDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < minDist) + { + minDist = _mappingMatrix[i,j]; + } + } + if (minDist == 0) + { + int denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == minDist) + { + _mappingMatrix[i,j] = 1; + denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + else + { + double denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = 1/_mappingMatrix[i,j]; + denominator = denominator + _mappingMatrix[i,j]; + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + } + } // else if (_methodID.Equals((int) eMethods.PointToPolyline.Inverse)) + else // if _methodID != Nearest and Inverse + { + throw new System.Exception("methodDescription unknown for point to polyline mapping"); + } + } + catch (System.Exception e)// Catch for all of the Point to Polyline part + { + throw new System.Exception("Point to polyline mapping failed",e); + } + #endregion + } + else if(fromElements.ElementType == ElementType.XYPoint && toElements.ElementType == ElementType.XYPolygon) + // Point to Polygon + { + #region + try + { + XYPolygon polygon; + XYPoint point; + int count; + for (int i = 0; i < _numberOfRows; i++) + { + polygon = CreateXYPolygon(toElements,i); + count = 0; + for (int n = 0; n < _numberOfColumns; n++) + { + point = CreateXYPoint(fromElements, n); + if(XYGeometryTools.IsPointInPolygon(point, polygon)) + { + if (_methodID.Equals((int) eMethods.PointToPolygon.Mean)) + { + count = count+1; + } + else if (_methodID.Equals((int) eMethods.PointToPolygon.Sum)) + { + count = 1; + } + else + { + throw new System.Exception("methodDescription unknown for point to polygon mapping"); + } + + } + } + for (int n = 0; n < _numberOfColumns; n++) + { + point = CreateXYPoint(fromElements,n); + + if(XYGeometryTools.IsPointInPolygon(point, polygon)) + { + _mappingMatrix[i,n]=1.0/count; + } + } + } + } + catch (System.Exception e)// Catch for all of the Point to Polyline part + { + throw new System.Exception("Point to polygon mapping failed",e); + } + #endregion + } + else if(fromElements.ElementType == ElementType.XYPolyLine && toElements.ElementType == ElementType.XYPoint) + // Polyline to Point + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPoint toPoint = CreateXYPoint(toElements,i); + for (int j = 0; j < _numberOfColumns; j++) + { + XYPolyline fromPolyLine = CreateXYPolyline(fromElements,j); + _mappingMatrix[i,j] = XYGeometryTools.CalculatePolylineToPointDistance(fromPolyLine, toPoint); + } + } + + if (_methodID.Equals((int) eMethods.PolylineToPoint.Nearest)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double minDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < minDist) + { + minDist = _mappingMatrix[i,j]; + } + } + int denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == minDist) + { + _mappingMatrix[i,j] = 1; + denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + } // if (_methodID.Equals((int) eMethods.PolylineToPoint.Nearest)) + else if (_methodID.Equals((int) eMethods.PolylineToPoint.Inverse)) + { + for (int i = 0; i < _numberOfRows; i++) + { + double minDist = _mappingMatrix[i,0]; + for (int j = 1; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] < minDist) + { + minDist = _mappingMatrix[i,j]; + } + } + if (minDist == 0) + { + int denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + if (_mappingMatrix[i,j] == minDist) + { + _mappingMatrix[i,j] = 1; + denominator++; + } + else + { + _mappingMatrix[i,j] = 0; + } + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + else + { + double denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = 1/_mappingMatrix[i,j]; + denominator = denominator + _mappingMatrix[i,j]; + } + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + } + } // if (_methodID.Equals((int) eMethods.PolylineToPoint.Inverse)) + else // MethodID != Nearest and Inverse + { + throw new System.Exception("methodDescription unknown for polyline to point mapping"); + } + } + catch (System.Exception e)// Catch for all of the Point to Polyline part + { + throw new System.Exception("Polyline to point mapping failed",e); + } + #endregion + } + else if (fromElements.ElementType == ElementType.XYPolyLine && toElements.ElementType == ElementType.XYPolygon) + // PolyLine to Polygon + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPolygon polygon = CreateXYPolygon(toElements,i); + + if (_methodID.Equals((int) eMethods.PolylineToPolygon.WeightedMean)) + { + double totalLineLengthInPolygon = 0; + for (int n = 0; n < _numberOfColumns; n++) + { + XYPolyline polyline = CreateXYPolyline(fromElements,n); + _mappingMatrix[i,n] = XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(polyline,polygon); + totalLineLengthInPolygon += _mappingMatrix[i,n]; + } + if (totalLineLengthInPolygon > 0) + { + for (int n = 0; n < _numberOfColumns; n++) + { + _mappingMatrix[i,n] = _mappingMatrix[i,n]/totalLineLengthInPolygon; + } + } + } // if (_methodID.Equals((int) eMethods.PolylineToPolygon.WeightedMean)) + else if (_methodID.Equals((int) eMethods.PolylineToPolygon.WeightedSum)) + { + for (int n = 0; n < _numberOfColumns; n++) + { + XYPolyline polyline = CreateXYPolyline(fromElements,n); + _mappingMatrix[i,n] = XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(polyline,polygon)/polyline.GetLength(); + } // for (int n = 0; n < _numberOfColumns; n++) + } // else if (_methodID.Equals((int) eMethods.PolylineToPolygon.WeightedSum)) + else // if MethodID != WeightedMean and WeigthedSum + { + throw new System.Exception("methodDescription unknown for polyline to polygon mapping"); + } + } // for (int i = 0; i < _numberOfRows; i++) + } + catch (System.Exception e) // Catch for all of polyLine to polygon + { + throw new System.Exception("Polyline to polygon mapping failed",e); + } + #endregion + } + else if (fromElements.ElementType == ElementType.XYPolygon && toElements.ElementType == ElementType.XYPoint) + // Polygon to Point + { + #region + try + { + for (int n = 0; n < _numberOfRows; n++) + { + XYPoint point = CreateXYPoint(toElements,n); + for (int i = 0; i < _numberOfColumns; i++) + { + XYPolygon polygon = CreateXYPolygon(fromElements,i); + if(XYGeometryTools.IsPointInPolygon(point, polygon)) + { + if (_methodID.Equals((int) eMethods.PolygonToPoint.Value)) + { + _mappingMatrix[n,i]=1.0; + } + else // if _methodID != Value + { + throw new System.Exception("methodDescription unknown for polygon to point mapping"); + } + } + } + } + } + catch (System.Exception e) // catch for all of Polygon to Point + { + throw new System.Exception("Polygon to point mapping failed",e); + } + #endregion + } + else if(fromElements.ElementType == ElementType.XYPolygon && toElements.ElementType == ElementType.XYPolyLine) + // Polygon to PolyLine + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPolyline polyline = CreateXYPolyline(toElements,i); + if (_methodID.Equals((int) eMethods.PolygonToPolyline.WeightedMean)) + { + for (int n = 0; n < _numberOfColumns; n++) + { + XYPolygon polygon = CreateXYPolygon(fromElements,n); + _mappingMatrix[i,n] = XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(polyline,polygon)/polyline.GetLength(); + } + double sum = 0; + for (int n = 0; n < _numberOfColumns; n++) + { + sum += _mappingMatrix[i,n]; + } + for (int n = 0; n < _numberOfColumns; n++) + { + _mappingMatrix[i,n] = _mappingMatrix[i,n]/sum; + } + } // if (_methodID.Equals((int) eMethods.PolygonToPolyline.WeightedMean)) + else if (_methodID.Equals((int) eMethods.PolygonToPolyline.WeightedSum)) + { + for (int n = 0; n < _numberOfColumns; n++) + { + XYPolygon polygon = CreateXYPolygon(fromElements,n); + _mappingMatrix[i,n] = XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(polyline,polygon)/polyline.GetLength(); + } + } // else if (_methodID.Equals((int) eMethods.PolygonToPolyline.WeightedSum)) + else // _methodID != WeightedMean and WeightedSum + { + throw new System.Exception("methodDescription unknown for polygon to polyline mapping"); + } + } + } + catch (System.Exception e) // catch for all of Polygon to PolyLine + { + throw new System.Exception("Polygon to polyline mapping failed",e); + } + #endregion + } + else if(fromElements.ElementType == ElementType.XYPolygon && toElements.ElementType == ElementType.XYPolygon) + // Polygon to Polygon + { + #region + try + { + for (int i = 0; i < _numberOfRows; i++) + { + XYPolygon toPolygon = CreateXYPolygon(toElements,i); + for (int j = 0; j < _numberOfColumns; j++) + { + XYPolygon fromPolygon = CreateXYPolygon(fromElements,j); + _mappingMatrix[i,j] = XYGeometryTools.CalculateSharedArea(toPolygon, fromPolygon); + } + if (_methodID.Equals((int) eMethods.PolygonToPolygon.WeightedMean)) + { + double denominator = 0; + for (int j = 0; j < _numberOfColumns; j++) + { + denominator = denominator + _mappingMatrix[i,j]; + } + for (int j = 0; j < _numberOfColumns; j++) + { + if (denominator != 0) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/denominator; + } + } + } // if (_methodID.Equals((int) eMethods.PolygonToPolygon.WeightedMean)) + else if (_methodID.Equals((int) eMethods.PolygonToPolygon.WeightedSum)) + { + for (int j = 0; j < _numberOfColumns; j++) + { + _mappingMatrix[i,j] = _mappingMatrix[i,j]/toPolygon.GetArea(); + } + } // else if (_methodID.Equals((int) eMethods.PolygonToPolygon.WeightedSum)) + else // _methodID != WeightedMean and WeightedSum + { + throw new System.Exception("methodDescription unknown for polygon to polygon mapping"); + } + } + } + catch (System.Exception e) // catch for all of Polygon to Polygon + { + throw new System.Exception("Polygon to polygon mapping failed",e); + } + #endregion + } + else // if the fromElementType, toElementType combination is no implemented + { + throw new System.Exception("Mapping of specified ElementTypes not included in ElementMapper"); + } + } + catch (System.Exception e) + { + throw new System.Exception("UpdateMappingMatrix failed to update mapping matrix",e); + } + } + + /// + /// Extracts the (row, column) element from the MappingMatrix. + /// + /// + /// Zero based row index + /// Zero based column index + /// + /// Element(row, column) from the mapping matrix. + /// + public double GetValueFromMappingMatrix(int row, int column) + { + try + { + ValidateIndicies(row, column); + } + catch (System.Exception e) + { + throw new System.Exception("GetValueFromMappingMatrix failed.",e); + } + return _mappingMatrix[row, column]; + } + + /// + /// Sets individual the (row, column) element in the MappingMatrix. + /// + /// + /// Element value to set + /// Zero based row index + /// Zero based column index + /// + /// No value is returned. + /// + public void SetValueInMappingMatrix(double value, int row, int column) + { + try + { + ValidateIndicies(row, column); + } + catch (System.Exception e) + { + throw new System.Exception("SetValueInMappingMatrix failed.",e); + } + _mappingMatrix[row, column] = value; + } + + private void ValidateIndicies(int row, int column) + { + if(row < 0) + { + throw new System.Exception("Negative row index not allowed. GetValueFromMappingMatrix failed."); + } + else if(row >= _numberOfRows) + { + throw new System.Exception("Row index exceeds mapping matrix dimension. GetValueFromMappingMatrix failed."); + } + else if(column < 0) + { + throw new System.Exception("Negative column index not allowed. GetValueFromMappingMatrix failed."); + } + else if(column >= _numberOfColumns) + { + throw new System.Exception("Column index exceeds mapping matrix dimension. GetValueFromMappingMatrix failed."); + } + } + + /// + /// Gives a list of descriptions (strings) for available mapping methods + /// given the combination of fromElementType and toElementType + /// + /// + /// Element type of the elements in + /// the fromElementset + /// Element type of the elements in + /// the toElementset + /// + /// + ///

    ArrayList of method descriptions

    + ///
    + public ArrayList GetAvailableMethods(ElementType fromElementsElementType, ElementType toElementsElementType) + { + ArrayList methodDescriptions = new ArrayList(); + + for ( int i = 0; i < _availableMethods.Length; i++) + { + if( fromElementsElementType == _availableMethods[i].fromElementsShapeType) + { + if (toElementsElementType == _availableMethods[i].toElementsShapeType) + { + methodDescriptions.Add(_availableMethods[i].Description); + } + } + } + return methodDescriptions; + } + + /// + /// Gives a list of ID's (strings) for available mapping methods + /// given the combination of fromElementType and toElementType + /// + /// + /// Element type of the elements in + /// the fromElementset + /// Element type of the elements in + /// the toElementset + /// + /// + ///

    ArrayList of method ID's

    + ///
    + public ArrayList GetIDsForAvailableDataOperations(ElementType fromElementsElementType, ElementType toElementsElementType) + { + ArrayList methodIDs = new ArrayList(); + + for ( int i = 0; i < _availableMethods.Length; i++) + { + if( fromElementsElementType == _availableMethods[i].fromElementsShapeType) + { + if (toElementsElementType == _availableMethods[i].toElementsShapeType) + { + methodIDs.Add("ElementMapper" + _availableMethods[i].ID); + } + } + } + return methodIDs; + } + + /// + /// This method will return an ArrayList of IDataOperations that the ElementMapper provides when + /// mapping from the ElementType specified in the method argument. + /// + /// + /// Each IDataOperation object will contain 3 IArguments: + ///

    [Key] [Value] [ReadOnly] [Description]-----------------

    + ///

    ["Type"] ["SpatialMapping"] [true] ["Using the ElementMapper"]

    + ///

    ["ID"] [The Operation ID] [true] ["Internal ElementMapper dataoperation ID"]

    + ///

    ["Description"] [The Operation Description] [true] ["Using the ElementMapper"]

    + ///

    ["ToElementType"] [ElementType] [true] ["Valid To-Element Types"]

    + ///
    + /// + /// + /// ArrayList which contains the available dataOperations (IDataOperation). + /// + public ArrayList GetAvailableDataOperations(ElementType fromElementsElementType) + { + ArrayList availableDataOperations = new ArrayList(); + + for ( int i = 0; i < _availableMethods.Length; i++) + { + if( fromElementsElementType == _availableMethods[i].fromElementsShapeType) + { + DataOperation dataOperation = new DataOperation("ElementMapper" + _availableMethods[i].ID); + dataOperation.AddArgument(new Argument("ID",_availableMethods[i].ID.ToString(),true,"Internal ElementMapper dataoperation ID")); + dataOperation.AddArgument(new Argument("Description",_availableMethods[i].Description,true,"Operation description")); + dataOperation.AddArgument(new Argument("Type","SpatialMapping",true,"Using the ElementMapper")); + dataOperation.AddArgument(new Argument("FromElementType",_availableMethods[i].fromElementsShapeType.ToString(),true,"Valid From-Element Types")); + dataOperation.AddArgument(new Argument("ToElementType",_availableMethods[i].toElementsShapeType.ToString(),true,"Valid To-Element Types")); + availableDataOperations.Add(dataOperation); + } + } + return availableDataOperations; + } + + private int GetMethodID(string methodDescription, ElementType fromElementsElementType, ElementType toElementsElementType) + { + for ( int i = 0; i < _availableMethods.Length; i++) + { + if( fromElementsElementType == _availableMethods[i].fromElementsShapeType) + { + if (toElementsElementType == _availableMethods[i].toElementsShapeType) + { + if (methodDescription == _availableMethods[i].Description) + return _availableMethods[i].ID; + } + } + } + throw new System.Exception("methodDescription: "+methodDescription+ + " not known for fromElementType: "+fromElementsElementType+ + " and to ElementType: "+toElementsElementType); + } + + private XYPoint CreateXYPoint(IElementSet elementSet, int index) + { + if (elementSet.ElementType != ElementType.XYPoint) + { + throw new System.Exception("Cannot create XYPoint"); + } + + XYPoint xyPoint = new XYPoint(); + xyPoint.X = elementSet.GetXCoordinate(index,0); + xyPoint.Y = elementSet.GetYCoordinate(index,0); + return xyPoint; + } + + private XYPolyline CreateXYPolyline(IElementSet elementSet, int index) + { + if (!(elementSet.ElementType == ElementType.XYPolyLine || elementSet.ElementType == ElementType.XYLine)) + { + throw new System.Exception("Cannot create XYPolyline"); + } + + XYPolyline xyPolyline = new XYPolyline(); + for (int i = 0; i < elementSet.GetVertexCount(index); i++) + { + xyPolyline.Points.Add(new XYPoint(elementSet.GetXCoordinate(index,i), elementSet.GetYCoordinate(index,i))); + } + + return xyPolyline; + } + + private XYPolygon CreateXYPolygon(IElementSet elementSet, int index) + { + if (elementSet.ElementType != ElementType.XYPolygon) + { + throw new System.Exception("Cannot create XYPolyline"); + } + + XYPolygon xyPolygon = new XYPolygon(); + + for (int i = 0; i < elementSet.GetVertexCount(index); i++) + { + xyPolygon.Points.Add(new XYPoint(elementSet.GetXCoordinate(index,i), elementSet.GetYCoordinate(index,i))); + } + + return xyPolygon; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/ElementSetChecker.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/ElementSetChecker.cs new file mode 100644 index 00000000..7c4b1254 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/ElementSetChecker.cs @@ -0,0 +1,125 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// Summary description for ElementSetChecker. + /// + public class ElementSetChecker + { + /// + /// Static method that validates an object with an IElementSet interface. The method + /// raises an Exception in case IElementSet does not describe a valid ElementSet. + /// The checks made are: + ///

    ElementType: Check

    + ///

    XYPoint: Only one vertex in each element.

    + ///

    XYPolyline: At least two vertices in each element.

    + ///

    All line segments in each element has length > 0

    + ///

    XYPolygon: At least three vertices in each element.

    + ///

    Area of each element is larger than 0

    + ///

    All line segments in each element has length > 0

    + ///

    No line segments within an element crosses.

    + ///
    + /// + /// Object that implement the IElementSet interface + /// + /// + /// The method has no return value. + /// + public static void CheckElementSet(IElementSet elementSet) + { + try + { + if(elementSet.ElementType == ElementType.XYPoint) + { + for (int i = 0; i < elementSet.ElementCount; i++) + { + try + { + if(elementSet.GetVertexCount(i) != 1) + { + throw new System.Exception("Number of vertices in point element is different from 1."); + } + } + catch (System.Exception e) + { + throw new System.Exception("ElementID = "+elementSet.GetElementID(i),e); + } + } + } + else if(elementSet.ElementType == ElementType.XYPolyLine) + { + for (int i = 0; i < elementSet.ElementCount; i++) + { + try + { + XYPolyline xypolyline = new XYPolyline(); + for (int j = 0; j < elementSet.GetVertexCount(i); j++) + { + XYPoint xypoint = new XYPoint(elementSet.GetXCoordinate(i,j),elementSet.GetYCoordinate(i,j)); + xypolyline.Points.Add(xypoint); + } + xypolyline.Validate(); + } + catch (System.Exception e) + { + throw new System.Exception("ElementID = "+elementSet.GetElementID(i),e); + } + } + } + else if(elementSet.ElementType == ElementType.XYPolygon) + { + for (int i = 0; i < elementSet.ElementCount; i++) + { + try + { + XYPolygon xypolygon = new XYPolygon(); + for (int j = 0; j < elementSet.GetVertexCount(i); j++) + { + XYPoint xypoint = new XYPoint(elementSet.GetXCoordinate(i,j),elementSet.GetYCoordinate(i,j)); + xypolygon.Points.Add(xypoint); + } + xypolygon.Validate(); + } + catch (System.Exception e) + { + throw new System.Exception("ElementID = "+elementSet.GetElementID(i),e); + } + } + } + } + catch (System.Exception e) + { + throw new System.Exception("ElementSet with ID = "+elementSet.ID+" is invalid",e); + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Oatc.OpenMI.Sdk.Spatial.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Oatc.OpenMI.Sdk.Spatial.csproj new file mode 100644 index 00000000..e371a863 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Oatc.OpenMI.Sdk.Spatial.csproj @@ -0,0 +1,169 @@ + + + + Local + 9.0.30729 + 2.0 + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Spatial + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Spatial + OnBuildSuccess + + + + + + + false + 3.5 + v4.0 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + ..\..\..\..\..\..\..\Binaries\Plugins\HydroModeler\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + false + + + ..\..\ + false + 285212672 + false + + + TRACE + bin\Release\Oatc.OpenMI.Sdk.Spatial.XML + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\Backbone\bin\Debug\Oatc.OpenMI.Sdk.Backbone.dll + False + + + ..\..\OpenMI.Standard.dll + False + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/ReadMe.txt b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/ReadMe.txt new file mode 100644 index 00000000..a49bbdb0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/ReadMe.txt @@ -0,0 +1 @@ +Default HarmonIT ReadMe file \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Spatial.sln b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Spatial.sln new file mode 100644 index 00000000..0217d114 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/Spatial.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "org.OpenMI.Utilities.Spatial", "org.OpenMI.Utilities.Spatial.csproj", "{4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Default = Debug|Default + Release|Default = Release|Default + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Debug|Default.ActiveCfg = Debug|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Debug|Default.Build.0 = Debug|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Release|Default.ActiveCfg = Release|Any CPU + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C}.Release|Default.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/AssemblyInfo.cs new file mode 100644 index 00000000..1bbcfd44 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Spatial UnitTest Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4 Alpha 3")] +[assembly: AssemblyCopyright("GNU Library or Lesser General Public License (LGPL), MIT License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/ElementCheckerTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/ElementCheckerTest.cs new file mode 100644 index 00000000..cfb47d3b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/ElementCheckerTest.cs @@ -0,0 +1,145 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Spatial; +using NUnit.Framework; + + +namespace Oatc.OpenMI.Sdk.Spatial.UnitTest +{ + /// + /// Summary description for ElementCheckerTest. + /// + [TestFixture] + public class ElementSetCheckerTest + { + public ElementSetCheckerTest() + { + // + // TODO: Add constructor logic here + // + } + + [Test] + [ExpectedException(typeof(System.Exception))] + public void ExpectedException_2_Vertices_in_PointElement() + { + //Two Vertices in point element error + ElementSet elementSet = new ElementSet("test","test",ElementType.XYPoint,new SpatialReference("DummyID")); + Oatc.OpenMI.Sdk.Backbone.Element e1 = new Oatc.OpenMI.Sdk.Backbone.Element("e1"); + e1.AddVertex(new Vertex(1,1,1)); + e1.AddVertex(new Vertex(2,2,2)); //here the error is introduced on purpose + + elementSet.AddElement(e1); + + ElementSetChecker.CheckElementSet(elementSet); + + } + + [Test] + [ExpectedException(typeof(System.Exception))] + public void ExpectedException_1_Vertex_in_PolylineElement() + { + //One Vertex in polyline element error + ElementSet elementSet = new ElementSet("test","test",ElementType.XYPolyLine,new SpatialReference("DummyID")); + Oatc.OpenMI.Sdk.Backbone.Element e1 = new Oatc.OpenMI.Sdk.Backbone.Element("e1"); + e1.AddVertex(new Vertex(1,1,1)); + + elementSet.AddElement(e1); + + ElementSetChecker.CheckElementSet(elementSet); + } + + [Test] + [ExpectedException(typeof(System.Exception))] + public void ExpectedException_0_Length_in_PolylineElement() + { + //One Vertex in polyline element error + ElementSet elementSet = new ElementSet("test","test",ElementType.XYPolyLine,new SpatialReference("DummyID")); + Oatc.OpenMI.Sdk.Backbone.Element e1 = new Oatc.OpenMI.Sdk.Backbone.Element("e1"); + e1.AddVertex(new Vertex(1,1,1)); + e1.AddVertex(new Vertex(1,1,1)); + + elementSet.AddElement(e1); + + ElementSetChecker.CheckElementSet(elementSet); + } + + [Test] + [ExpectedException(typeof(System.Exception))] + public void ExpectedException_2_Vertices_in_PolygonElement() + { + //Two Vertices in polygon element error + ElementSet elementSet = new ElementSet("test","test",ElementType.XYPolygon,new SpatialReference("DummyID")); + Oatc.OpenMI.Sdk.Backbone.Element e1 = new Oatc.OpenMI.Sdk.Backbone.Element("e1"); + e1.AddVertex(new Vertex(1,1,1)); + e1.AddVertex(new Vertex(2,2,2)); + + elementSet.AddElement(e1); + + ElementSetChecker.CheckElementSet(elementSet); + } + [Test] + [ExpectedException(typeof(System.Exception))] + public void ExpectedException_WrongOrderingOfPoint_in_PolygonElement() + { + //Wrong ordering of vertices in polygon element error + ElementSet elementSet = new ElementSet("test","test",ElementType.XYPolygon,new SpatialReference("DummyID")); + Oatc.OpenMI.Sdk.Backbone.Element e1 = new Oatc.OpenMI.Sdk.Backbone.Element("e1"); + e1.AddVertex(new Vertex(0,0,0)); + e1.AddVertex(new Vertex(0,1,0)); + e1.AddVertex(new Vertex(1,1,0)); + e1.AddVertex(new Vertex(1,0,0)); + + elementSet.AddElement(e1); + + ElementSetChecker.CheckElementSet(elementSet); + } + + [Test] + [ExpectedException(typeof(System.Exception))] + public void ExpectedException_Crossing_lines_in_PolygonElement() + { + //Crossing lines in polygon element error + ElementSet elementSet = new ElementSet("test","test",ElementType.XYPolygon,new SpatialReference("DummyID")); + Oatc.OpenMI.Sdk.Backbone.Element e1 = new Oatc.OpenMI.Sdk.Backbone.Element("e1"); + e1.AddVertex(new Vertex(0,1,0)); + e1.AddVertex(new Vertex(0,0,0)); + e1.AddVertex(new Vertex(1,0,0)); + e1.AddVertex(new Vertex(0.9,1.1,0)); + e1.AddVertex(new Vertex(1.1,0.9,0)); + + elementSet.AddElement(e1); + + ElementSetChecker.CheckElementSet(elementSet); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/ElementMapperTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/ElementMapperTest.cs new file mode 100644 index 00000000..f9b9b739 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/ElementMapperTest.cs @@ -0,0 +1,753 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.IO; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Spatial; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Spatial.UnitTest +{ + /// + /// Summary description for Class1. + /// + [TestFixture] + public class ElementMapperTest + { + private ElementSet CreateElementSet(string ElementSetID) + { + if (ElementSetID == "4 Points") + { + ElementSet fourPointsElementSet = new ElementSet("4 points","4 Points",ElementType.XYPoint,new SpatialReference("DummyID")); + + Element e0 = new Element("e0"); + Element e1 = new Element("e1"); + Element e2 = new Element("e2"); + Element e3 = new Element("e3"); + + e0.AddVertex(new Vertex( 0,100,0)); + e1.AddVertex(new Vertex( 0,0,0)); + e2.AddVertex(new Vertex( 100,0,0)); + e3.AddVertex(new Vertex(100,100,0)); + + fourPointsElementSet.AddElement(e0); + fourPointsElementSet.AddElement(e1); + fourPointsElementSet.AddElement(e2); + fourPointsElementSet.AddElement(e3); + + return fourPointsElementSet; + } + else if (ElementSetID == "2 Points") + { + ElementSet twoPointsElementSet = new ElementSet("2 points","2 Points",ElementType.XYPoint,new SpatialReference("dumID")); + + Element k0 = new Element("k0"); + Element k1 = new Element("k1"); + + k0.AddVertex(new Vertex( 0,75,0)); + k1.AddVertex(new Vertex( 200, 50, 0)); + + twoPointsElementSet.AddElement(k0); + twoPointsElementSet.AddElement(k1); + + return twoPointsElementSet; + + } + else if (ElementSetID == "4 Other Points") + { + ElementSet fourPointsElementSet = new ElementSet("4 Other points","4 Other Points",ElementType.XYPoint,new SpatialReference("DummyID")); + + Element e0 = new Element("e0"); + Element e1 = new Element("e1"); + Element e2 = new Element("e2"); + Element e3 = new Element("e3"); + + e0.AddVertex(new Vertex( 0,15,0)); + e1.AddVertex(new Vertex( 5,15,0)); + e2.AddVertex(new Vertex( 0,10,0)); + e3.AddVertex(new Vertex(10,10,0)); + + fourPointsElementSet.AddElement(e0); + fourPointsElementSet.AddElement(e1); + fourPointsElementSet.AddElement(e2); + fourPointsElementSet.AddElement(e3); + + return fourPointsElementSet; + } + else if(ElementSetID == "3 points polyline") + { + ElementSet lineElementSet = new ElementSet("3 points polyline","3 points polyline",ElementType.XYPolyLine,new SpatialReference("dumID")); + + Element l0 = new Element("k0"); + Element l1 = new Element("k1"); + + Vertex v0 = new Vertex(0 ,20, 0); + Vertex v1 = new Vertex(0 ,10, 0); + Vertex v2 = new Vertex(0 , 0, 0); + + l0.AddVertex(v0); + l0.AddVertex(v2); + + l1.AddVertex(v1); + l1.AddVertex(v2); + + lineElementSet.AddElement(l0); + lineElementSet.AddElement(l1); + return lineElementSet; + } + else + { + throw new Exception("Cound not find specified elementset"); + + } + } + + [Test] // testing the Initialise method + public void Initialise() + { + ElementSet fourPointsElementSet = CreateElementSet("4 Points"); + ElementSet twoPointsElementSet = CreateElementSet("2 Points"); + + ElementMapper elementMapper = new ElementMapper(); + + ArrayList methodDescriptions = elementMapper.GetAvailableMethods(fourPointsElementSet.ElementType, twoPointsElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, twoPointsElementSet); + + double Calculated = elementMapper.GetValueFromMappingMatrix(0, 0); + double Expected = 1; + + Assert.AreEqual(Expected,Calculated); + } + + [Test] // testing the Initialise method + public void UpdateMappingMatrix_PointPoint() + { + ElementSet fourPointsElementSet = CreateElementSet("4 Points"); + ElementSet twoPointsElementSet = CreateElementSet("2 Points"); + + ElementMapper elementMapper = new ElementMapper(); + + ArrayList methodDescriptions = elementMapper.GetAvailableMethods(fourPointsElementSet.ElementType, twoPointsElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, twoPointsElementSet); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0) + +elementMapper.GetValueFromMappingMatrix(0, 1) + +elementMapper.GetValueFromMappingMatrix(0, 2) + +elementMapper.GetValueFromMappingMatrix(0, 3)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(1, 2)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0) + +elementMapper.GetValueFromMappingMatrix(1, 1) + +elementMapper.GetValueFromMappingMatrix(1, 2) + +elementMapper.GetValueFromMappingMatrix(1, 3)); + + elementMapper.Initialise(methodDescriptions[1].ToString(), fourPointsElementSet, twoPointsElementSet); + Assert.AreEqual(0.56310461156889, elementMapper.GetValueFromMappingMatrix(0, 0),0.000000001); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0) + +elementMapper.GetValueFromMappingMatrix(0, 1) + +elementMapper.GetValueFromMappingMatrix(0, 2) + +elementMapper.GetValueFromMappingMatrix(0, 3)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0) + +elementMapper.GetValueFromMappingMatrix(1, 1) + +elementMapper.GetValueFromMappingMatrix(1, 2) + +elementMapper.GetValueFromMappingMatrix(1, 3),0.000000001); + } + [Test] // testing the Initialise method + public void UpdateMappingMatrix_PointPolyline() + { + ElementSet fourPointsElementSet = CreateElementSet("4 Other Points"); + ElementSet lineElementSet = CreateElementSet("3 points polyline"); + + ElementMapper elementMapper = new ElementMapper(); + + // point to polyline + ArrayList methodDescriptions = elementMapper.GetAvailableMethods(fourPointsElementSet.ElementType, lineElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, lineElementSet); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 3)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 3)); + + elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, lineElementSet); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 3)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 3)); + + // polyline to point + methodDescriptions = elementMapper.GetAvailableMethods(lineElementSet.ElementType, fourPointsElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), lineElementSet, fourPointsElementSet); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 0)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 1)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 0)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 1)); + + elementMapper.Initialise(methodDescriptions[1].ToString(), lineElementSet, fourPointsElementSet); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); + Assert.AreEqual(0.585786437626905, elementMapper.GetValueFromMappingMatrix(1, 0)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0) + + elementMapper.GetValueFromMappingMatrix(1, 1)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 0)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(2, 1)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 0)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(3, 1)); + } + [Test] // testing the Initialise method + public void UpdateMappingMatrix_PointPolygon() + { + ElementSet gridElementSet = new ElementSet("gridElm","G1",ElementType.XYPolygon, new SpatialReference("ref")); + ElementSet fourPointsElementSet = new ElementSet("4 points","4P",ElementType.XYPoint,new SpatialReference("DummyID")); + + Vertex v_0_20 = new Vertex(0,20,0); + Vertex v_0_10 = new Vertex(0,10,0); + Vertex v_0_0 = new Vertex(0, 0,0); + Vertex v_0_15 = new Vertex(0,15,0); + Vertex v_5_15 = new Vertex(5,15,0); + Vertex v_10_20 = new Vertex(10,20,0); + Vertex v_10_15 = new Vertex(10,15,0); + Vertex v_10_10 = new Vertex(10,10,0); + Vertex v_10_0 = new Vertex(10, 0,0); + Vertex v_15_15 = new Vertex(15,15,0); + Vertex v_15_5 = new Vertex(15,5,0); + Vertex v_20_20 = new Vertex(20,20,0); + Vertex v_20_10 = new Vertex(20,10,0); + + Element square1 = new Element("square1"); + Element square2 = new Element("square2"); + Element square3 = new Element("square3"); + + square1.AddVertex(v_0_20); + square1.AddVertex(v_0_10); + square1.AddVertex(v_10_10); + square1.AddVertex(v_10_20); + + square2.AddVertex(v_10_20); + square2.AddVertex(v_10_10); + square2.AddVertex(v_20_10); + square2.AddVertex(v_20_20); + + square3.AddVertex(v_0_10); + square3.AddVertex(v_0_0); + square3.AddVertex(v_10_0); + square3.AddVertex(v_10_10); + + gridElementSet.AddElement(square1); + gridElementSet.AddElement(square2); + gridElementSet.AddElement(square3); + + Element point_5_15 = new Element("point 5, 15"); + Element point_10_15 = new Element("point 10, 15"); + Element point_15_15 = new Element("point 15, 15"); + Element point_15_5 = new Element("point 15, 5"); + + point_5_15.AddVertex(v_5_15); + point_10_15.AddVertex(v_10_15); + point_15_15.AddVertex(v_15_15); + point_15_5.AddVertex(v_15_5); + + fourPointsElementSet.AddElement(point_5_15); + fourPointsElementSet.AddElement(point_10_15); + fourPointsElementSet.AddElement(point_15_15); + fourPointsElementSet.AddElement(point_15_5); + + ElementMapper elementMapper = new ElementMapper(); + + // point to polygon + + ArrayList methodDescriptions = elementMapper.GetAvailableMethods(fourPointsElementSet.ElementType, gridElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, gridElementSet); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 0)); + Assert.AreEqual(0.5, elementMapper.GetValueFromMappingMatrix(0, 1)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 3)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 3)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 1)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 3)); + + // polygon to point + methodDescriptions = elementMapper.GetAvailableMethods(gridElementSet.ElementType, fourPointsElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), gridElementSet, fourPointsElementSet); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 1)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(0, 2)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 1)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(1, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 0)); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(2, 1)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(2, 2)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(3, 0)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(3, 1)); + Assert.AreEqual(0, elementMapper.GetValueFromMappingMatrix(3, 2)); + } + [Test] // testing the Initialise method + public void UpdateMappingMatrix_PolylinePolygon() + { + ElementSet twoSquaresGrid = new ElementSet("TwoSquaresGrid","TwoSquaresGrid",ElementType.XYPolygon,new SpatialReference("ref")); + + Element e1 = new Element("e1"); + Element e2 = new Element("e2"); + + e1.AddVertex(new Vertex(1,1,0)); + e1.AddVertex(new Vertex(3,1,0)); + e1.AddVertex(new Vertex(3,3,0)); + e1.AddVertex(new Vertex(1,3,0)); + + e2.AddVertex(new Vertex(3,1,0)); + e2.AddVertex(new Vertex(5,1,0)); + e2.AddVertex(new Vertex(5,3,0)); + e2.AddVertex(new Vertex(3,3,0)); + + twoSquaresGrid.AddElement(e1); + twoSquaresGrid.AddElement(e2); + + ElementSet twoLines = new ElementSet("TwoLines","TwoLines",ElementType.XYPolyLine,new SpatialReference("ref")); + + Element l1 = new Element("l1"); + Element l2 = new Element("l2"); + + l1.AddVertex(new Vertex(0,2.5,0)); + l1.AddVertex(new Vertex(2,2.5,0)); + l2.AddVertex(new Vertex(2,2.5,0)); + l2.AddVertex(new Vertex(4,1.5,0)); + + twoLines.AddElement(l1); + twoLines.AddElement(l2); + + // Line to Polygon + ElementMapper elementMapper = new ElementMapper(); + ArrayList methodDescriptions = elementMapper.GetAvailableMethods(twoLines.ElementType, twoSquaresGrid.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), twoLines,twoSquaresGrid); + Assert.AreEqual(1/(1+Math.Sqrt(1+Math.Pow(0.5,2))),elementMapper.GetValueFromMappingMatrix(0,0),"Test1"); + Assert.AreEqual(1-1/(1+Math.Sqrt(1+Math.Pow(0.5,2))),elementMapper.GetValueFromMappingMatrix(0,1),"Test2"); + Assert.AreEqual(0.0,elementMapper.GetValueFromMappingMatrix(1,0),"Test3"); + Assert.AreEqual(1,elementMapper.GetValueFromMappingMatrix(1,1),"Test4"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), twoLines,twoSquaresGrid); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(0,0),"Test5"); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(0,1),"Test6"); + Assert.AreEqual(0.0,elementMapper.GetValueFromMappingMatrix(1,0),"Test7"); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(1,1),"Test8"); + + // Polygon To PolyLine + methodDescriptions = elementMapper.GetAvailableMethods(twoSquaresGrid.ElementType, twoLines.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), twoSquaresGrid, twoLines); + Assert.AreEqual(1.0,elementMapper.GetValueFromMappingMatrix(0,0),"Test9"); + Assert.AreEqual(0.0,elementMapper.GetValueFromMappingMatrix(0,1),"Test10"); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(1,0),"Test11"); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(1,1),"Test12"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), twoSquaresGrid, twoLines); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(0,0),"Test13"); + Assert.AreEqual(0.0,elementMapper.GetValueFromMappingMatrix(0,1),"Test14"); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(1,0),"Test15"); + Assert.AreEqual(0.5,elementMapper.GetValueFromMappingMatrix(1,1),"Test16"); + } + [Test] // testing the Initialise method + public void UpdateMappingMatrix_PolygonPolygon() + { + Vertex v1_0_10 = new Vertex(0,10,0); + Vertex v1_0_0 = new Vertex(0,0,0); + Vertex v1_10_0 = new Vertex(10,0,0); + Vertex v1_10_10 = new Vertex(10,10,0); + Vertex v1_20_0 = new Vertex(20,0,0); + Vertex v1_20_10 = new Vertex(20,10,0); + Vertex v1_5_9 = new Vertex(5,9,0); + Vertex v1_5_1 = new Vertex(5,1,0); + Vertex v1_15_5 = new Vertex(15,5,0); + + Element LeftSquare = new Element("LeftSquare"); + LeftSquare.AddVertex(v1_0_10); + LeftSquare.AddVertex(v1_0_0); + LeftSquare.AddVertex(v1_10_0); + LeftSquare.AddVertex(v1_10_10); + + Element RightSquare = new Element("RightSquare"); + RightSquare.AddVertex(v1_10_10); + RightSquare.AddVertex(v1_10_0); + RightSquare.AddVertex(v1_20_0); + RightSquare.AddVertex(v1_20_10); + + Element Triangle = new Element("Triangle"); + Triangle.AddVertex(v1_5_9); + Triangle.AddVertex(v1_5_1); + Triangle.AddVertex(v1_15_5); + + ElementSet TwoSquareElementSet = new ElementSet("TwoSquareElementSet","TwoSquareElementSet",ElementType.XYPolygon,new SpatialReference("ref")); + ElementSet TriangleElementSet = new ElementSet("TriangleElementSet","TriangleElementSet",ElementType.XYPolygon,new SpatialReference("ref")); + TwoSquareElementSet.AddElement(LeftSquare); + TwoSquareElementSet.AddElement(RightSquare); + TriangleElementSet.AddElement(Triangle); + + ElementMapper elementMapper = new ElementMapper(); + ArrayList methodDescriptions = elementMapper.GetAvailableMethods(TwoSquareElementSet.ElementType, TriangleElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), TriangleElementSet, TwoSquareElementSet); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0),"Test1"); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(1, 0),"Test2"); + + elementMapper.Initialise(methodDescriptions[0].ToString(), TwoSquareElementSet, TriangleElementSet); + Assert.AreEqual(0.75, elementMapper.GetValueFromMappingMatrix(0, 0),0.000000001,"Test3"); + Assert.AreEqual(0.25, elementMapper.GetValueFromMappingMatrix(0, 1),"Test4"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), TriangleElementSet, TwoSquareElementSet); + Assert.AreEqual(0.3, elementMapper.GetValueFromMappingMatrix(0, 0),"Test5"); + Assert.AreEqual(0.1, elementMapper.GetValueFromMappingMatrix(1, 0),"Test6"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), TwoSquareElementSet, TriangleElementSet); + Assert.AreEqual(0.75, elementMapper.GetValueFromMappingMatrix(0, 0),0.0000000001,"Test7"); + Assert.AreEqual(0.25, elementMapper.GetValueFromMappingMatrix(0, 1),"Test8"); + + Vertex v2_0_2 = new Vertex(0,2,0); + Vertex v2_0_0 = new Vertex(0,0,0); + Vertex v2_2_0 = new Vertex(2,0,0); + Vertex v2_1_2 = new Vertex(1,2,0); + Vertex v2_1_0 = new Vertex(1,0,0); + Vertex v2_3_0 = new Vertex(3,0,0); + + Element LeftTriangle2 = new Element("LeftTriangle"); + LeftTriangle2.AddVertex(v2_0_2); + LeftTriangle2.AddVertex(v2_0_0); + LeftTriangle2.AddVertex(v2_2_0); + + Element RightTriangle2 = new Element("RightTriangle"); + RightTriangle2.AddVertex(v2_1_2); + RightTriangle2.AddVertex(v2_1_0); + RightTriangle2.AddVertex(v2_3_0); + + ElementSet LeftTriangleElementSet2 = new ElementSet("TwoSquareElementSet","TwoSquareElementSet",ElementType.XYPolygon,new SpatialReference("ref")); + ElementSet RightTriangleElementSet2 = new ElementSet("TriangleElementSet","TriangleElementSet",ElementType.XYPolygon,new SpatialReference("ref")); + LeftTriangleElementSet2.AddElement(LeftTriangle2); + RightTriangleElementSet2.AddElement(RightTriangle2); + + + elementMapper.Initialise(methodDescriptions[0].ToString(), LeftTriangleElementSet2, RightTriangleElementSet2); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0),"Test9"); + + elementMapper.Initialise(methodDescriptions[0].ToString(), RightTriangleElementSet2, LeftTriangleElementSet2); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0),"Test10"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), LeftTriangleElementSet2, RightTriangleElementSet2); + Assert.AreEqual(0.25, elementMapper.GetValueFromMappingMatrix(0, 0),"Test11"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), RightTriangleElementSet2, LeftTriangleElementSet2); + Assert.AreEqual(0.25, elementMapper.GetValueFromMappingMatrix(0, 0),"Test12"); + + Vertex v3_0_2 = new Vertex(0,2,0); + Vertex v3_0_0 = new Vertex(0,0,0); + Vertex v3_2_0 = new Vertex(2,0,0); + Vertex v3_1_2 = new Vertex(1,2,0); + Vertex v3_1_0 = new Vertex(1,0,0); + Vertex v3_3_2 = new Vertex(3,2,0); + + Element LeftTriangle3 = new Element("LeftTriangle"); + LeftTriangle3.AddVertex(v3_0_2); + LeftTriangle3.AddVertex(v3_0_0); + LeftTriangle3.AddVertex(v3_2_0); + + Element RightTriangle3 = new Element("RightTriangle"); + RightTriangle3.AddVertex(v3_1_2); + RightTriangle3.AddVertex(v3_1_0); + RightTriangle3.AddVertex(v3_3_2); + + ElementSet LeftTriangleElementSet3 = new ElementSet("TwoSquareElementSet","TwoSquareElementSet",ElementType.XYPolygon,new SpatialReference("ref")); + ElementSet RightTriangleElementSet3 = new ElementSet("TriangleElementSet","TriangleElementSet",ElementType.XYPolygon,new SpatialReference("ref")); + LeftTriangleElementSet3.AddElement(LeftTriangle3); + RightTriangleElementSet3.AddElement(RightTriangle3); + + elementMapper.Initialise(methodDescriptions[0].ToString(), LeftTriangleElementSet3, RightTriangleElementSet3); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0),"Test13"); + + elementMapper.Initialise(methodDescriptions[0].ToString(), RightTriangleElementSet3, LeftTriangleElementSet3); + Assert.AreEqual(1, elementMapper.GetValueFromMappingMatrix(0, 0),"Test14"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), LeftTriangleElementSet3, RightTriangleElementSet3); + Assert.AreEqual(0.125, elementMapper.GetValueFromMappingMatrix(0, 0),"Test15"); + + elementMapper.Initialise(methodDescriptions[1].ToString(), RightTriangleElementSet3, LeftTriangleElementSet3); + Assert.AreEqual(0.125, elementMapper.GetValueFromMappingMatrix(0, 0),"Test16"); + } + [Test] // testing the Initialise method + public void MapValues() + { + ElementSet gridElementSet = new ElementSet("RegularGrid","RegularGrid",ElementType.XYPolygon, new SpatialReference("ref")); + ElementSet fourPointsElementSet = new ElementSet("4 points","4P",ElementType.XYPoint,new SpatialReference("DummyID")); + + Vertex v_0_20 = new Vertex(0,20,0); + Vertex v_0_10 = new Vertex(0,10,0); + Vertex v_0_0 = new Vertex(0, 0,0); + Vertex v_0_15 = new Vertex(0,15,0); + Vertex v_5_15 = new Vertex(5,15,0); + Vertex v_10_20 = new Vertex(10,20,0); + Vertex v_10_15 = new Vertex(10,15,0); + Vertex v_10_10 = new Vertex(10,10,0); + Vertex v_10_0 = new Vertex(10, 0,0); + Vertex v_15_15 = new Vertex(15,15,0); + Vertex v_15_5 = new Vertex(15,5,0); + Vertex v_20_20 = new Vertex(20,20,0); + Vertex v_20_10 = new Vertex(20,10,0); + + Element square1 = new Element("square1"); + Element square2 = new Element("square2"); + Element square3 = new Element("square3"); + + square1.AddVertex(v_0_20); + square1.AddVertex(v_0_10); + square1.AddVertex(v_10_10); + square1.AddVertex(v_10_20); + + square2.AddVertex(v_10_20); + square2.AddVertex(v_10_10); + square2.AddVertex(v_20_10); + square2.AddVertex(v_20_20); + + square3.AddVertex(v_0_10); + square3.AddVertex(v_0_0); + square3.AddVertex(v_10_0); + square3.AddVertex(v_10_10); + + gridElementSet.AddElement(square1); + gridElementSet.AddElement(square2); + gridElementSet.AddElement(square3); + + Element point_5_15 = new Element("point 5, 15"); + Element point_10_15 = new Element("point 10, 15"); + Element point_15_15 = new Element("point 15, 15"); + Element point_15_5 = new Element("point 15, 5"); + + point_5_15.AddVertex(v_5_15); + point_10_15.AddVertex(v_10_15); + point_15_15.AddVertex(v_15_15); + point_15_5.AddVertex(v_15_5); + + fourPointsElementSet.AddElement(point_5_15); + fourPointsElementSet.AddElement(point_10_15); + fourPointsElementSet.AddElement(point_15_15); + fourPointsElementSet.AddElement(point_15_5); + ScalarSet fourPointsScalarSet = new ScalarSet(); + ScalarSet gridScalarSet = new ScalarSet(); + + ElementMapper elementMapper = new ElementMapper(); + + // point to polygon + + ArrayList methodDescriptions = elementMapper.GetAvailableMethods(fourPointsElementSet.ElementType, gridElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), fourPointsElementSet, gridElementSet); + fourPointsScalarSet.data = new double[4] { 0, 10, 20, 30 }; + gridScalarSet = (ScalarSet)elementMapper.MapValues(fourPointsScalarSet); + Assert.AreEqual(5, gridScalarSet.data[0]); + Assert.AreEqual(20, gridScalarSet.data[1]); + Assert.AreEqual(0, gridScalarSet.data[2]); + // polygon to point + methodDescriptions = elementMapper.GetAvailableMethods(gridElementSet.ElementType, fourPointsElementSet.ElementType); + elementMapper.Initialise(methodDescriptions[0].ToString(), gridElementSet, fourPointsElementSet); + fourPointsScalarSet = (ScalarSet)elementMapper.MapValues(gridScalarSet); + Assert.AreEqual(5, fourPointsScalarSet.data[0]); + Assert.AreEqual(5, fourPointsScalarSet.data[1]); + Assert.AreEqual(20, fourPointsScalarSet.data[2]); + Assert.AreEqual(0, fourPointsScalarSet.data[3]); + } + + [Test] + public void GetAvailableMethods() + { + ElementMapper elementMapper = new ElementMapper(); + ElementType fromElementType = ElementType.XYPolygon; + ElementType toElementType = ElementType.XYPolygon; + + ArrayList availableMethods = elementMapper.GetAvailableMethods(fromElementType, toElementType); + Assert.AreEqual("Weighted Mean", availableMethods[0]); + Assert.AreEqual("Weighted Sum", availableMethods[1]); + } + + [Test] + [ExpectedException(typeof(System.Exception))] + public void ExpectexException_UpdateMappingMatrix_ElementChecker() + { + //Two Vertices in point element error + ElementSet elementSet = new ElementSet("test","test",ElementType.XYPoint,new SpatialReference("DummyID")); + Element e1 = new Element("e1"); + e1.AddVertex(new Vertex(1,1,1)); + e1.AddVertex(new Vertex(2,2,2)); //here the error is introduced on purpose + + elementSet.AddElement(e1); + + ElementMapper elementMapper = new ElementMapper(); + string method = (string) elementMapper.GetAvailableMethods(ElementType.XYPolyLine,ElementType.XYPolygon)[0]; + elementMapper.UpdateMappingMatrix(method,elementSet,elementSet); + } + + [Test] + public void GetAvailableDataOperations() + { + ElementMapper elementMapper = new ElementMapper(); + + Console.WriteLine("=========================FROM XYPoint===================================="); + ArrayList dataOperationsXYPoint = elementMapper.GetAvailableDataOperations(ElementType.XYPoint); + foreach (IDataOperation operation in dataOperationsXYPoint) + { + Console.WriteLine(" "); + Console.WriteLine("------------------------------------"); + Console.WriteLine("DataOperationID: " + operation.ID); + for (int i = 0; i < operation.ArgumentCount; i++) + { + Console.WriteLine(" "); + Console.WriteLine("Key: " + operation.GetArgument(i).Key); + Console.WriteLine("Value: " + operation.GetArgument(i).Value); + Console.WriteLine("ReadOnly: " + operation.GetArgument(i).ReadOnly.ToString()); + Console.WriteLine("Description: " + operation.GetArgument(i).Description); + } + } + + Console.WriteLine(" "); + Console.WriteLine("========================= FROM XYLine ===================================="); + ArrayList dataOperationsXYLine = elementMapper.GetAvailableDataOperations(ElementType.XYLine); + foreach (IDataOperation operation in dataOperationsXYLine) + { + Console.WriteLine(" "); + Console.WriteLine("------------------------------------"); + Console.WriteLine("DataOperationID: " + operation.ID); + for (int i = 0; i < operation.ArgumentCount; i++) + { + Console.WriteLine(" "); + Console.WriteLine("Key: " + operation.GetArgument(i).Key); + Console.WriteLine("Value: " + operation.GetArgument(i).Value); + Console.WriteLine("ReadOnly: " + operation.GetArgument(i).ReadOnly.ToString()); + Console.WriteLine("Description: " + operation.GetArgument(i).Description); + } + } + + Console.WriteLine(" "); + Console.WriteLine("========================= FROM XYPolyLine ===================================="); + ArrayList dataOperationsXYPolyLine = elementMapper.GetAvailableDataOperations(ElementType.XYPolyLine); + foreach (IDataOperation operation in dataOperationsXYPolyLine) + { + Console.WriteLine(" "); + Console.WriteLine("------------------------------------"); + Console.WriteLine("DataOperationID: " + operation.ID); + for (int i = 0; i < operation.ArgumentCount; i++) + { + Console.WriteLine(" "); + Console.WriteLine("Key: " + operation.GetArgument(i).Key); + Console.WriteLine("Value: " + operation.GetArgument(i).Value); + Console.WriteLine("ReadOnly: " + operation.GetArgument(i).ReadOnly.ToString()); + Console.WriteLine("Description: " + operation.GetArgument(i).Description); + } + } + + Console.WriteLine(" "); + Console.WriteLine("=========================FROM XYPolygon===================================="); + ArrayList dataOperationsXYPolygon = elementMapper.GetAvailableDataOperations(ElementType.XYPolygon); + foreach (IDataOperation operation in dataOperationsXYPolygon) + { + Console.WriteLine(" "); + Console.WriteLine("------------------------------------"); + Console.WriteLine("DataOperationID: " + operation.ID); + for (int i = 0; i < operation.ArgumentCount; i++) + { + Console.WriteLine(" "); + Console.WriteLine("Key: " + operation.GetArgument(i).Key); + Console.WriteLine("Value: " + operation.GetArgument(i).Value); + Console.WriteLine("ReadOnly: " + operation.GetArgument(i).ReadOnly.ToString()); + Console.WriteLine("Description: " + operation.GetArgument(i).Description); + } + } + + bool operationWasFound = false; + bool IDWasFound = false; + bool descriptionWasFound = false; + bool typeWasFound = false; + bool fromElementTypeWasFound = false; + bool toElementTypeWasFound = false; + + foreach (IDataOperation operation in dataOperationsXYPolygon) + { + if (operation.ID == "ElementMapper801") + { + operationWasFound = true; + + for (int i = 0; i < operation.ArgumentCount; i++) + { + if (operation.GetArgument(i).Key == "ID") + { + Assert.AreEqual("801",operation.GetArgument(i).Value); + IDWasFound = true; + } + if (operation.GetArgument(i).Key == "Description") + { + Assert.AreEqual("Weighted Sum",operation.GetArgument(i).Value); + descriptionWasFound = true; + } + if (operation.GetArgument(i).Key == "Type") + { + Assert.AreEqual("SpatialMapping",operation.GetArgument(i).Value); + typeWasFound = true; + } + if (operation.GetArgument(i).Key == "FromElementType") + { + Assert.AreEqual("XYPolygon",operation.GetArgument(i).Value); + fromElementTypeWasFound = true; + } + if (operation.GetArgument(i).Key == "ToElementType") + { + Assert.AreEqual("XYPolygon",operation.GetArgument(i).Value); + toElementTypeWasFound = true; + } + } + } + } + + Assert.AreEqual(true,operationWasFound); + Assert.AreEqual(true,IDWasFound); + Assert.AreEqual(true,descriptionWasFound); + Assert.AreEqual(true,typeWasFound); + Assert.AreEqual(true,fromElementTypeWasFound); + Assert.AreEqual(true,toElementTypeWasFound); + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/Oatc.OpenMI.Sdk.Spatial.UnitTest.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/Oatc.OpenMI.Sdk.Spatial.UnitTest.csproj new file mode 100644 index 00000000..3b16a801 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/Oatc.OpenMI.Sdk.Spatial.UnitTest.csproj @@ -0,0 +1,173 @@ + + + + Local + 8.0.50727 + 2.0 + {9020FF67-3C7C-4CC2-9595-53C6BAD2F66E} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Spatial.UnitTest + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Spatial.UnitTest + OnBuildSuccess + + + + + + + 3.5 + v4.0 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + ./bin/Debug + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ./bin/Release + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\nunit.framework.dll + + + ..\..\..\OpenMI.Standard.dll + False + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + + + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C} + Oatc.OpenMI.Sdk.Spatial + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/ReadMe.txt b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/ReadMe.txt new file mode 100644 index 00000000..a49bbdb0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/ReadMe.txt @@ -0,0 +1 @@ +Default HarmonIT ReadMe file \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/XYGeometryToolsTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/XYGeometryToolsTest.cs new file mode 100644 index 00000000..6f0c98a5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/XYGeometryToolsTest.cs @@ -0,0 +1,483 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.IO; +using Oatc.OpenMI.Sdk.Spatial; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Spatial.UnitTest + +{ + /// + /// Summary description for XYGeometryToolsTest. + /// + public class AXYGeometryTools: XYGeometryTools + { + public static double ACalculateLengthOfLineInsidePolygon(XYLine line, XYPolygon polygon) + { + return CalculateLengthOfLineInsidePolygon(line, polygon); + } + + public static double ACalculateLineToPointDistance(XYLine line, XYPoint point) + { + return CalculateLineToPointDistance(line, point); + } + + public static double ACalculateSharedLength(XYLine lineA, XYLine lineB) + { + return CalculateSharedLength(lineA, lineB); + } + + public static bool AIntersectionPoint(XYLine lineA, XYLine lineB, ref XYPoint intersectionPoint) + { + return IntersectionPoint(lineA, lineB, ref intersectionPoint); + } + + public static bool AIsPointInLine(XYPoint point, XYLine line) + { + return IsPointInLine(point, line); + } + + public static bool AIsPointInLineInterior(XYPoint point, XYLine line) + { + return IsPointInLineInterior(point, line); + } + + public static bool AIsPointInPolygonOrOnEdge(double x, double y, XYPolygon polygon) + { + return IsPointInPolygonOrOnEdge(x, y, polygon); + } + + public static double ATriangleIntersectionArea(XYPolygon triangleA, XYPolygon triangleB) + { + return TriangleIntersectionArea(triangleA, triangleB); + } + } + + [TestFixture] + public class XYGeometryToolsTest + { + [Test] + public void CalculateIntersectionPoint() + { + // Testing two overloaded methods with the same lines. + Assert.AreEqual(new XYPoint(5,2.5),XYGeometryTools.CalculateIntersectionPoint(new XYPoint(2,3.5), new XYPoint(8,1.5), new XYPoint(2,1), new XYPoint(8,4))); + Assert.AreEqual(new XYPoint(5,2.5),XYGeometryTools.CalculateIntersectionPoint(new XYLine(2, 3.5, 8, 1.5), new XYLine (2, 1, 8, 4))); + + // Intersection between horizontal and vertical lines + Assert.AreEqual(new XYPoint(5,1),XYGeometryTools.CalculateIntersectionPoint(new XYPoint(1,1),new XYPoint(9,1), new XYPoint(5,5),new XYPoint(5,0))); + } + + [Test] + [ExpectedException(typeof(System.Exception))] + public void CalculateIntersectionPoint_Exception_1() + { + XYGeometryTools.CalculateIntersectionPoint(new XYPoint(2,3.5), new XYPoint(8,1.5), new XYPoint(2,2.5), new XYPoint(8,0.5)); + } + [Test] + [ExpectedException(typeof(System.Exception))] + public void CalculateIntersectionPoint_Exception_2() + { + XYGeometryTools.CalculateIntersectionPoint(new XYPoint(0,1), new XYPoint(1,1.5), new XYPoint(1,1.5), new XYPoint(8,0.5)); + } + + [Test] + public void Protected_CalculateLengthOfLineInsidePolygon() + { + XYPolygon xypolygon = new XYPolygon(); + xypolygon.Points.Add(new XYPoint(1,1)); + xypolygon.Points.Add(new XYPoint(9,1)); + xypolygon.Points.Add(new XYPoint(5,5)); + xypolygon.Points.Add(new XYPoint(5,3)); + xypolygon.Points.Add(new XYPoint(3,3)); + xypolygon.Points.Add(new XYPoint(3,8)); + xypolygon.Points.Add(new XYPoint(9,8)); + xypolygon.Points.Add(new XYPoint(9,11)); + xypolygon.Points.Add(new XYPoint(1,11)); + + Assert.AreEqual(0, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,12,11,12),xypolygon),"Test1"); + Assert.AreEqual(4, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,11,11,11),xypolygon),"Test2"); + Assert.AreEqual(8, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,10,11,10),xypolygon),"Test3"); + Assert.AreEqual(8, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,9,11,9),xypolygon),"Test4"); + + Assert.AreEqual(5, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,8,11,8),xypolygon),"Test5"); + Assert.AreEqual(2, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,7,11,7),xypolygon),"Test6"); + Assert.AreEqual(2, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,5,11,5),xypolygon),"Test7"); + Assert.AreEqual(3, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,4,11,4),xypolygon),"Test8"); + + Assert.AreEqual(3, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,4,11,4),xypolygon),"Test9"); + Assert.AreEqual(5, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,3,11,3),xypolygon),"Test10"); + Assert.AreEqual(7, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,2,11,2),xypolygon),"Test11"); + Assert.AreEqual(4, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,1,11,1),xypolygon),"Test12"); + Assert.AreEqual(0, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,0,11,0),xypolygon),"Test13"); + + Assert.AreEqual(10, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(2,12,2,0),xypolygon),"Test14"); + Assert.AreEqual(6, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(6,12,6,0),xypolygon),"Test15"); + Assert.AreEqual(Math.Sqrt(8)+1.5*Math.Sqrt(0.5),AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(1,0.5,10,9.5),xypolygon),"Test16"); + Assert.AreEqual(1, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(-2,4,2,4),xypolygon),"Test17"); + Assert.AreEqual(5, AXYGeometryTools.ACalculateLengthOfLineInsidePolygon(new XYLine(4,12,4,0),xypolygon),"Test18"); + } + + [Test] + public void CalculateLengthOfPolylineInsidePolygon() + { + XYPolygon xypolygon = new XYPolygon(); + xypolygon.Points.Add(new XYPoint(1,1)); + xypolygon.Points.Add(new XYPoint(9,1)); + xypolygon.Points.Add(new XYPoint(5,5)); + xypolygon.Points.Add(new XYPoint(5,3)); + xypolygon.Points.Add(new XYPoint(3,3)); + xypolygon.Points.Add(new XYPoint(3,8)); + xypolygon.Points.Add(new XYPoint(9,8)); + xypolygon.Points.Add(new XYPoint(9,11)); + xypolygon.Points.Add(new XYPoint(1,11)); + + XYPolyline xypolyline = new XYPolyline(); + xypolyline.Points.Add(new XYPoint(9,13)); + xypolyline.Points.Add(new XYPoint(7,12)); + xypolyline.Points.Add(new XYPoint(7,10)); + xypolyline.Points.Add(new XYPoint(2,10)); + xypolyline.Points.Add(new XYPoint(2,3)); + + Assert.AreEqual(13,XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(xypolyline, xypolygon)); + + XYPolygon rectangle = new XYPolygon(); + rectangle.Points.Add(new XYPoint(10,10)); + rectangle.Points.Add(new XYPoint(20,10)); + rectangle.Points.Add(new XYPoint(20,40)); + rectangle.Points.Add(new XYPoint(10,40)); + + XYPolyline line1 = new XYPolyline(); + line1.Points.Add(new XYPoint(0,20)); + line1.Points.Add(new XYPoint(30,20)); + Assert.AreEqual(10, XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(line1, rectangle)); // horizontal line crossing + + XYPolyline line2 = new XYPolyline(); + line2.Points.Add(new XYPoint(10,20)); + line2.Points.Add(new XYPoint(20,20)); + Assert.AreEqual(10, XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(line2, rectangle)); // fits inside + + XYPolyline line3 = new XYPolyline(); + line3.Points.Add(new XYPoint(0,40)); + line3.Points.Add(new XYPoint(30,40)); + Assert.AreEqual(5, XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(line3, rectangle)); + + XYPolyline line4 = new XYPolyline(); + line4.Points.Add(new XYPoint(20,40)); + line4.Points.Add(new XYPoint(20,0)); + + Assert.AreEqual(15, XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(line4, rectangle)); + + XYPolyline line5 = new XYPolyline(); + line5.Points.Add(new XYPoint(20,40)); + line5.Points.Add(new XYPoint(20,10)); + Assert.AreEqual(15, XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(line5, rectangle)); + + XYPolyline line6 = new XYPolyline(); + line6.Points.Add(new XYPoint(10,40)); + line6.Points.Add(new XYPoint(30,40)); + Assert.AreEqual(5, XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(line6, rectangle)); + + XYPolyline line7 = new XYPolyline(); + line7.Points.Add(new XYPoint(10,20)); + line7.Points.Add(new XYPoint(30,20)); + Assert.AreEqual(10, XYGeometryTools.CalculateLengthOfPolylineInsidePolygon(line7, rectangle)); + + + + + + + } + + [Test] + public void Protected_CalculateLineToPointDistance() + { + Assert.AreEqual(Math.Sqrt(2),AXYGeometryTools.ACalculateLineToPointDistance(new XYLine(0,2,2,0),new XYPoint(2,2)),1e-12,"Test1"); + Assert.AreEqual(0,AXYGeometryTools.ACalculateLineToPointDistance(new XYLine(0,2,2,0),new XYPoint(1,1)),1e-12,"Test2"); + Assert.AreEqual(Math.Sqrt(2),AXYGeometryTools.ACalculateLineToPointDistance(new XYLine(0,2,2,0),new XYPoint(3,1)),1e-12,"Test3"); + Assert.AreEqual(1,AXYGeometryTools.ACalculateLineToPointDistance(new XYLine(0,2,2,0),new XYPoint(3,0)),1e-12,"Test4"); + Assert.AreEqual(Math.Sqrt(2),AXYGeometryTools.ACalculateLineToPointDistance(new XYLine(0,2,2,0),new XYPoint(3,-1)),1e-12,"Test5"); + Assert.AreEqual(1,AXYGeometryTools.ACalculateLineToPointDistance(new XYLine(0,2,2,0),new XYPoint(2,-1)),1e-12,"Test6"); + Assert.AreEqual(Math.Sqrt(2),AXYGeometryTools.ACalculateLineToPointDistance(new XYLine(0,2,2,0),new XYPoint(1,-1)),1e-12,"Test1"); + } + + [Test] + public void CalculatePointToPointDistance() + { + Assert.AreEqual((double) 5, XYGeometryTools.CalculatePointToPointDistance(new XYPoint(1,1),new XYPoint(4,5))); + Assert.AreEqual((double) 5, XYGeometryTools.CalculatePointToPointDistance(new XYPoint(4,5),new XYPoint(1,1))); + Assert.AreEqual((double) 9, XYGeometryTools.CalculatePointToPointDistance(new XYPoint(1,5),new XYPoint(10,5))); + Assert.AreEqual((double) 6, XYGeometryTools.CalculatePointToPointDistance(new XYPoint(4,2),new XYPoint(4,8))); + } + + [Test] + public void CalculatePolylineToPointDistance() + { + XYPolyline polyline = new XYPolyline(); + polyline.Points.Add(new XYPoint(0,0)); + polyline.Points.Add(new XYPoint(1,1)); + polyline.Points.Add(new XYPoint(2,2)); + polyline.Points.Add(new XYPoint(4,2)); + polyline.Points.Add(new XYPoint(6,0)); + Assert.AreEqual(Math.Sqrt(2),XYGeometryTools.CalculatePolylineToPointDistance(polyline, new XYPoint(-1,-1)),1e-12,"Test1"); + Assert.AreEqual(Math.Sqrt(2),XYGeometryTools.CalculatePolylineToPointDistance(polyline, new XYPoint(2,0)),1e-12,"Test2"); + Assert.AreEqual(0,XYGeometryTools.CalculatePolylineToPointDistance(polyline, new XYPoint(2,2)),1e-12,"Test3"); + Assert.AreEqual(1,XYGeometryTools.CalculatePolylineToPointDistance(polyline, new XYPoint(3,1)),1e-12,"Test4"); + Assert.AreEqual(1,XYGeometryTools.CalculatePolylineToPointDistance(polyline, new XYPoint(3,3)),1e-12,"Test5"); + Assert.AreEqual(2,XYGeometryTools.CalculatePolylineToPointDistance(polyline, new XYPoint(3,4)),1e-12,"Test6"); + Assert.AreEqual(0,XYGeometryTools.CalculatePolylineToPointDistance(polyline, new XYPoint(6,0)),1e-12,"Test7"); + } + + [Test] + public void CalculateSharedArea() + { + XYPolygon p1 = new XYPolygon(); + p1.Points.Add(new XYPoint(0, 3)); + p1.Points.Add(new XYPoint(3, 0)); + p1.Points.Add(new XYPoint(8, 0)); + p1.Points.Add(new XYPoint(8, 2)); + p1.Points.Add(new XYPoint(3, 1)); + p1.Points.Add(new XYPoint(3, 3)); + p1.Points.Add(new XYPoint(8, 3)); + p1.Points.Add(new XYPoint(4, 7)); + + XYPolygon p2 = new XYPolygon(); + p2.Points.Add(new XYPoint(3, 3)); + p2.Points.Add(new XYPoint(4, 3)); + p2.Points.Add(new XYPoint(4, 4)); + p2.Points.Add(new XYPoint(3, 4)); + + XYPolygon p3 = new XYPolygon(); + p3.Points.Add(new XYPoint(0, 0)); + p3.Points.Add(new XYPoint(8, 0)); + p3.Points.Add(new XYPoint(8, 8)); + p3.Points.Add(new XYPoint(0, 8)); + + XYPolygon p4 = new XYPolygon(); + p4.Points.Add(new XYPoint(-2, 0)); + p4.Points.Add(new XYPoint(3, 0)); + p4.Points.Add(new XYPoint(3, 2)); + p4.Points.Add(new XYPoint(0, 2)); + p4.Points.Add(new XYPoint(0, 5)); + p4.Points.Add(new XYPoint(4, 5)); + p4.Points.Add(new XYPoint(4, 7)); + p4.Points.Add(new XYPoint(-2, 7)); + + Assert.AreEqual(p1.GetArea(),XYGeometryTools.CalculateSharedArea(p1,p1),1e-12,"Test1 - Polygon1 in Polygon1"); + Assert.AreEqual(p2.GetArea(),XYGeometryTools.CalculateSharedArea(p2,p2),1e-12,"Test2 - Polygon1 in Polygon1"); + Assert.AreEqual(p4.GetArea(),XYGeometryTools.CalculateSharedArea(p4,p4),1e-12,"Test3 - Polygon1 in Polygon1"); + Assert.AreEqual(p2.GetArea(),XYGeometryTools.CalculateSharedArea(p1,p2),1e-12,"Test4 - Polygon2 in Polygon1"); + Assert.AreEqual(p1.GetArea(),XYGeometryTools.CalculateSharedArea(p1,p3),1e-12,"Test5 - Polygon1 in Polygon2"); + Assert.AreEqual(4,XYGeometryTools.CalculateSharedArea(p1,p4),1e-12,"Test6 - Polygon1 in Polygon3"); + } + + [Test] + public void Protected_CalculateSharedLength() + { + Assert.AreEqual(Math.Sqrt(2),AXYGeometryTools.ACalculateSharedLength(new XYLine(0, 0, 1, 1), new XYLine(0, 0, 1, 1)),"Test1"); + Assert.AreEqual(0,AXYGeometryTools.ACalculateSharedLength(new XYLine(0, 0, 1, 1), new XYLine(10, 10, 11, 11)),"Test2"); + Assert.AreEqual(Math.Sqrt(2)/2,AXYGeometryTools.ACalculateSharedLength(new XYLine(0, 0, 1, 1), new XYLine(0.5, 0.5, 10, 10)),"Test3"); + Assert.AreEqual(0,AXYGeometryTools.ACalculateSharedLength(new XYLine(1, 1, 1, 3), new XYLine(1, 4, 1, 5)),"Test4 vertical lines"); + Assert.AreEqual(1,AXYGeometryTools.ACalculateSharedLength(new XYLine(1, 1, 1, 3), new XYLine(1, 2, 1, 5)),"Test4"); + Assert.AreEqual(0,AXYGeometryTools.ACalculateSharedLength(new XYLine(1, 1, 1, 3), new XYLine(2, 1, 2, 5)),"Test5"); + Assert.AreEqual(2,AXYGeometryTools.ACalculateSharedLength(new XYLine(7, 3, 10, 3), new XYLine(8, 3, 11, 3)),"Test5"); + Assert.AreEqual(0,AXYGeometryTools.ACalculateSharedLength(new XYLine(7, 3, 10, 3), new XYLine(11, 3, 13, 3)),"Test6"); + Assert.AreEqual(30,AXYGeometryTools.ACalculateSharedLength(new XYLine(20, 40, 20, 0), new XYLine(20, 40, 20, 10)),"Test7"); + Assert.AreEqual(30,AXYGeometryTools.ACalculateSharedLength(new XYLine(20, 40, 20, 10), new XYLine(20, 40, 20, 10)),"Test8"); + Assert.AreEqual(30,AXYGeometryTools.ACalculateSharedLength(new XYLine(20, 10, 20, 40), new XYLine(20, 10, 20, 40)),"Test9"); + Assert.AreEqual(0,AXYGeometryTools.ACalculateSharedLength(new XYLine(10, 40, 20, 40), new XYLine(20, 40, 20, 10)),"Test10"); + } + + [Test] + public void DoLineSegmentsIntersect() + { + // crossing (using three overloaded methods for the same lines) + Assert.AreEqual(true, XYGeometryTools.DoLineSegmentsIntersect(2,1,5,2,3,4,4,1)); + Assert.AreEqual(true, XYGeometryTools.DoLineSegmentsIntersect(new XYPoint(2,1), new XYPoint(5,2), new XYPoint(3,4), new XYPoint(4,1))); + Assert.AreEqual(true, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,5,2),new XYLine(3,4,4,1))); + + // too short to cross( using three overloaded methods for the same lines) + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(2,1,5,2,3,4,4,2)); + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYPoint(2,1), new XYPoint(5,2), new XYPoint(3,4), new XYPoint(4,2))); + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,5,2), new XYLine(3,4,4,2))); + + // Long enough but wrong direction to cross (using three overloaded methods for the same lines) + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(2,1,5,2,3,4,9,1)); + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYPoint(2,1), new XYPoint(5,2), new XYPoint(3,4), new XYPoint(9,1))); + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,5,2), new XYLine(3,4,9,1))); + + // parallel lines (using three overloaded methods for the same lines) + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(2,1,4,1,2,2,4,2)); + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYPoint(2,1), new XYPoint(4,1), new XYPoint(2,2), new XYPoint(4,2))); + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,4,1), new XYLine(2,2,4,2))); + + // Two identical lines + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,4,1), new XYLine(2,1,4,1))); //horizontal lines + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,10,2,3), new XYLine(2,10,2,3))); // vertical lines + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,2,10,10), new XYLine(2,2,10,10))); + + + // Two line on top of each other but with different length + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(0,1,5,1), new XYLine(2,1,4,1))); //Horizontal lines + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,4,1),new XYLine(0,1,5,1))); //Horizontal lines + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,3,4),new XYLine(2,1,3,3))); //Vertical lines + Assert.AreEqual(false, XYGeometryTools.DoLineSegmentsIntersect(new XYLine(2,1,3,3),new XYLine(2,1,3,4))); //Vertical lines + } + + [Test] + public void Protected_IsPointInLine() + { + XYPoint point = new XYPoint(); + Assert.AreEqual(true,AXYGeometryTools.AIsPointInLine(new XYPoint(0,0), new XYLine(0, 0, 1, 1)),"Test1"); + Assert.AreEqual(true,AXYGeometryTools.AIsPointInLine(new XYPoint(0.5,0.5), new XYLine(0, 0, 1, 1)),"Test2"); + Assert.AreEqual(true,AXYGeometryTools.AIsPointInLine(new XYPoint(1,1), new XYLine(0, 0, 1, 1)),"Test3"); + Assert.AreEqual(false,AXYGeometryTools.AIsPointInLine(new XYPoint(0.5,0), new XYLine(0, 0, 1, 1)),"Test4"); + } + + [Test] + public void Protected_IsPointInLineInterior() + { + XYPoint point = new XYPoint(); + Assert.AreEqual(false,AXYGeometryTools.AIsPointInLineInterior(new XYPoint(0,0), new XYLine(0, 0, 1, 1)),"Test1"); + Assert.AreEqual(true,AXYGeometryTools.AIsPointInLineInterior(new XYPoint(0.5,0.5), new XYLine(0, 0, 1, 1)),"Test2"); + Assert.AreEqual(false,AXYGeometryTools.AIsPointInLineInterior(new XYPoint(1,1), new XYLine(0, 0, 1, 1)),"Test3"); + Assert.AreEqual(false,AXYGeometryTools.AIsPointInLineInterior(new XYPoint(0.5,0), new XYLine(0, 0, 1, 1)),"Test4"); + Assert.AreEqual(false,AXYGeometryTools.AIsPointInLineInterior(new XYPoint(20,40), new XYLine(20, 40, 20, 0)),"Test5"); + } + + [Test] + public void IsPointInPolygon() + { + XYPolygon xypolygon = new XYPolygon(); + xypolygon.Points.Add(new XYPoint(1,1)); + xypolygon.Points.Add(new XYPoint(9,1)); + xypolygon.Points.Add(new XYPoint(5,5)); + xypolygon.Points.Add(new XYPoint(5,3)); + xypolygon.Points.Add(new XYPoint(3,3)); + xypolygon.Points.Add(new XYPoint(3,8)); + xypolygon.Points.Add(new XYPoint(9,8)); + xypolygon.Points.Add(new XYPoint(9,11)); + xypolygon.Points.Add(new XYPoint(1,11)); + + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(2,2,xypolygon)); + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(2,4,xypolygon)); + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(2,10,xypolygon)); + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(7,10,xypolygon)); + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(4,2,xypolygon)); + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(7,2,xypolygon)); + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(6,3.5,xypolygon)); + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(7.5,2,xypolygon)); + + Assert.AreEqual(false, XYGeometryTools.IsPointInPolygon(0,0,xypolygon)); + Assert.AreEqual(false, XYGeometryTools.IsPointInPolygon(4,4,xypolygon)); + Assert.AreEqual(false, XYGeometryTools.IsPointInPolygon(4,5,xypolygon)); + Assert.AreEqual(false, XYGeometryTools.IsPointInPolygon(10,8,xypolygon)); + Assert.AreEqual(false, XYGeometryTools.IsPointInPolygon(9,12,xypolygon)); + + Assert.AreEqual(true, XYGeometryTools.IsPointInPolygon(new XYPoint(7.5,2),xypolygon)); + Assert.AreEqual(false, XYGeometryTools.IsPointInPolygon(new XYPoint(0,0),xypolygon)); + } + + [Test] + public void Protected_IsPointInPolygonOrOnEdge() + { + XYPolygon p1 = new XYPolygon(); + p1.Points.Add(new XYPoint(0, 3)); + p1.Points.Add(new XYPoint(3, 0)); + p1.Points.Add(new XYPoint(8, 0)); + p1.Points.Add(new XYPoint(8, 2)); + p1.Points.Add(new XYPoint(3, 1)); + p1.Points.Add(new XYPoint(3, 3)); + p1.Points.Add(new XYPoint(8, 3)); + p1.Points.Add(new XYPoint(4, 7)); + Assert.AreEqual(true, AXYGeometryTools.AIsPointInPolygonOrOnEdge(0,3,p1),"Test1"); + Assert.AreEqual(true, AXYGeometryTools.AIsPointInPolygonOrOnEdge(1,3,p1),"Test2"); + Assert.AreEqual(false, AXYGeometryTools.AIsPointInPolygonOrOnEdge(1,5,p1),"Test3"); + Assert.AreEqual(true, AXYGeometryTools.AIsPointInPolygonOrOnEdge(3,2,p1),"Test4"); + Assert.AreEqual(true, AXYGeometryTools.AIsPointInPolygonOrOnEdge(3,3,p1),"Test5"); + Assert.AreEqual(true, AXYGeometryTools.AIsPointInPolygonOrOnEdge(6,1,p1),"Test6"); + Assert.AreEqual(false, AXYGeometryTools.AIsPointInPolygonOrOnEdge(6,2,p1),"Test7"); + Assert.AreEqual(false, AXYGeometryTools.AIsPointInPolygonOrOnEdge(6,7,p1),"Test8"); + } + + [Test] + public void Protected_TriangleIntersectionArea() + { + XYPolygon t1 = new XYPolygon(); + t1.Points.Add(new XYPoint(0.0, 0.5)); + t1.Points.Add(new XYPoint(6.0, 0.5)); + t1.Points.Add(new XYPoint(1.0, 7.0)); + + XYPolygon t2 = new XYPolygon(); + t2.Points.Add(new XYPoint(1,1)); + t2.Points.Add(new XYPoint(5,1)); + t2.Points.Add(new XYPoint(1,5)); + + XYPolygon t3 = new XYPolygon(); + t3.Points.Add(new XYPoint(1,1)); + t3.Points.Add(new XYPoint(3,1)); + t3.Points.Add(new XYPoint(1,3)); + + XYPolygon t4 = new XYPolygon(); + t4.Points.Add(new XYPoint(1,2)); + t4.Points.Add(new XYPoint(3,2)); + t4.Points.Add(new XYPoint(3,4)); + + XYPolygon t5 = new XYPolygon(); + t5.Points.Add(new XYPoint(6.5,3.5)); + t5.Points.Add(new XYPoint(9.5,3.4)); + t5.Points.Add(new XYPoint(7,5)); + + XYPolygon t6 = new XYPolygon(); + t6.Points.Add(new XYPoint(-2,0)); + t6.Points.Add(new XYPoint(3,0)); + t6.Points.Add(new XYPoint(3,2)); + + //t2 is fully inside t1 + Assert.AreEqual(8,AXYGeometryTools.ATriangleIntersectionArea(t2,t1),"t2, t1"); + Assert.AreEqual(8,AXYGeometryTools.ATriangleIntersectionArea(t1,t2),"t1, t2"); + + // t4 is partly inside t2 + Assert.AreEqual((double)7/ (double) 4, AXYGeometryTools.ATriangleIntersectionArea(t2,t4),"t2, t4"); + Assert.AreEqual((double)7/ (double) 4, AXYGeometryTools.ATriangleIntersectionArea(t4,t2),"t4, t2"); + + // t3 is inside t2 but is sharing two edges + Assert.AreEqual(2, AXYGeometryTools.ATriangleIntersectionArea(t2,t3),"t2, t3"); + Assert.AreEqual(2, AXYGeometryTools.ATriangleIntersectionArea(t3,t2),"t3, t2"); + + // t1 and t5 has no overlap + Assert.AreEqual(0, AXYGeometryTools.ATriangleIntersectionArea(t1,t5),"t1, t5"); + Assert.AreEqual(0, AXYGeometryTools.ATriangleIntersectionArea(t5,t1),"t5, t1"); + + // two times t6 + Assert.AreEqual(t6.GetArea(), AXYGeometryTools.ATriangleIntersectionArea(t6,t6),"t6, t6"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/XYLineTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/XYLineTest.cs new file mode 100644 index 00000000..1f4ef2ee --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/XYLineTest.cs @@ -0,0 +1,105 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using Oatc.OpenMI.Sdk.Spatial; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Spatial.UnitTest +{ + /// + /// Summary description for XYLineTest. + /// + [TestFixture] + public class XYLineTest + { + public XYLineTest() + { + // + // TODO: Add constructor logic here + // + } + + [Test] + public void ConstructionTest() + { + XYLine xyLine1 = new XYLine(1,2,3,4); + Assert.AreEqual((double) 1, xyLine1.P1.X); + Assert.AreEqual((double) 2, xyLine1.P1.Y); + Assert.AreEqual((double) 3, xyLine1.P2.X); + Assert.AreEqual((double) 4, xyLine1.P2.Y); + + XYLine xyLine2 = new XYLine(xyLine1); + Assert.AreEqual(xyLine1.P1.X, xyLine2.P1.X); + Assert.AreEqual(xyLine1.P1.Y, xyLine2.P1.Y); + Assert.AreEqual(xyLine1.P2.X, xyLine2.P2.X); + Assert.AreEqual(xyLine1.P2.Y, xyLine2.P2.Y); + + XYLine xyLine3 = new XYLine(new XYPoint(1,2),new XYPoint(3,4)); + Assert.AreEqual((double) 1, xyLine3.P1.X); + Assert.AreEqual((double) 2, xyLine3.P1.Y); + Assert.AreEqual((double) 3, xyLine3.P2.X); + Assert.AreEqual((double) 4, xyLine3.P2.Y); + } + + + [Test] + public void GetLength() + { + Assert.AreEqual((double) 5, (new XYLine(1,1,4,5)).GetLength()); + Assert.AreEqual((double) 5, (new XYLine(4,5,1,1)).GetLength()); + Assert.AreEqual((double) 9, (new XYLine(1,5,10,5)).GetLength()); + Assert.AreEqual((double) 6, (new XYLine(4,2,4,8)).GetLength()); + } + + [Test] + public void GetMidpoint() + { + Assert.AreEqual(new XYPoint(4,4),new XYLine(2,3,6,5).GetMidpoint()); + Assert.AreEqual(new XYPoint(4,4),new XYLine(6,5,2,3).GetMidpoint()); + Assert.AreEqual(new XYPoint(4,4),new XYLine(2,4,6,4).GetMidpoint()); + Assert.AreEqual(new XYPoint(4,4),new XYLine(4,2,4,6).GetMidpoint()); + } + + [Test] + public void Equals() + { + XYLine l1 = new XYLine(0, 3, 3, 0); + XYLine l2 = new XYLine(0, 3, 3, 0); + XYLine l3 = new XYLine(3, 3, 3, 0); + XYPolyline pl1 = new XYPolyline(); + pl1.Points.Add(new XYPoint(0, 3)); + pl1.Points.Add(new XYPoint(3, 0)); + + Assert.AreEqual(true, l1.Equals(l1),"Test1"); + Assert.AreEqual(true, l1.Equals(l2),"Test2"); + Assert.AreEqual(false, l1.Equals(l3),"Test3"); + Assert.AreEqual(false, l1.Equals(pl1),"Test4"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/XYPointTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/XYPointTest.cs new file mode 100644 index 00000000..7d2ff1ae --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/XYPointTest.cs @@ -0,0 +1,68 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using Oatc.OpenMI.Sdk.Spatial; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Spatial.UnitTest +{ + /// + /// Summary description for XYPointTest. + /// + [TestFixture] + public class XYPointTest + { + [Test] + public void Equals() + { + XYPoint p1 = new XYPoint(2,3); + XYPoint p2 = new XYPoint(2,3); + XYPoint p3 = new XYPoint(2,-3); + XYLine l1 = new XYLine(2,3,3,4); + Assert.AreEqual(true, p1.Equals(p1),"Test1"); + Assert.AreEqual(true, p1.Equals(p2),"Test2"); + Assert.AreEqual(false, p1.Equals(p3),"Test3"); + Assert.AreEqual(false, p1.Equals(l1),"Test4"); + } + + [Test] + public void PropertyTest() + { + XYPoint xypoint = new XYPoint(2,3); + Assert.AreEqual((double) 2, xypoint.X); + Assert.AreEqual((double) 3, xypoint.Y); + + xypoint.X = 6; + xypoint.Y = 7; + Assert.AreEqual((double) 6, xypoint.X); + Assert.AreEqual((double) 7, xypoint.Y); + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/XYPolygonTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/XYPolygonTest.cs new file mode 100644 index 00000000..ebfee7e6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/XYPolygonTest.cs @@ -0,0 +1,298 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using Oatc.OpenMI.Sdk.Spatial; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Spatial.UnitTest +{ + /// + /// Summary description for XYPolygonTest. + /// + public class AXYPolygon: XYPolygon + { + public int AFindEar() + { + return FindEar(); + } + + public bool AIsIntersected(int i) + { + return IsIntersected(i); + } + + public bool AIsConvex(int i) + { + return IsConvex(i); + } + } + + [TestFixture] + public class XYPolygonTest + { + [Test] + public void GetArea() + { + // -- Rectangle -- + XYPolygon xypolygon = new XYPolygon(); + xypolygon.Points.Add(new XYPoint(1,1)); + xypolygon.Points.Add(new XYPoint(9,1)); + xypolygon.Points.Add(new XYPoint(9,6)); + xypolygon.Points.Add(new XYPoint(1,6)); + Assert.AreEqual((double) 40, xypolygon.GetArea()); + + // -- Triangle -- + XYPolygon xypolygon2 = new XYPolygon(); + xypolygon2.Points.Add(new XYPoint(1,1)); + xypolygon2.Points.Add(new XYPoint(9,1)); + xypolygon2.Points.Add(new XYPoint(9,6)); + Assert.AreEqual((double) 20, xypolygon2.GetArea()); + + // -- concave -- + XYPolygon xypolygon3 = new XYPolygon(); + xypolygon3.Points.Add(new XYPoint(1,1)); + xypolygon3.Points.Add(new XYPoint(5,3)); + xypolygon3.Points.Add(new XYPoint(9,1)); + xypolygon3.Points.Add(new XYPoint(9,6)); + xypolygon3.Points.Add(new XYPoint(1,6)); + Assert.AreEqual((double) 32, xypolygon3.GetArea()); + + // -- concave -- + XYPolygon xypolygon4 = new XYPolygon(); + xypolygon4.Points.Add(new XYPoint(1,1)); + xypolygon4.Points.Add(new XYPoint(9,1)); + xypolygon4.Points.Add(new XYPoint(5,5)); + xypolygon4.Points.Add(new XYPoint(5,3)); + xypolygon4.Points.Add(new XYPoint(3,3)); + xypolygon4.Points.Add(new XYPoint(3,8)); + xypolygon4.Points.Add(new XYPoint(9,8)); + xypolygon4.Points.Add(new XYPoint(9,11)); + xypolygon4.Points.Add(new XYPoint(1,11)); + Assert.AreEqual((double) 50, xypolygon4.GetArea()); + } + + [Test] public void GetLine() + { + // -- Triangle -- + XYPolygon xypolygon = new XYPolygon(); + xypolygon.Points.Add(new XYPoint(1,2)); + xypolygon.Points.Add(new XYPoint(4,3)); + xypolygon.Points.Add(new XYPoint(2,5)); + + Assert.AreEqual(new XYLine(1,2,4,3),xypolygon.GetLine(0)); + Assert.AreEqual(new XYLine(4,3,2,5),xypolygon.GetLine(1)); + Assert.AreEqual(new XYLine(2,5,1,2),xypolygon.GetLine(2)); + + + // -- concave polygon -- + XYPolygon xypolygon4 = new XYPolygon(); + xypolygon4.Points.Add(new XYPoint(1,1)); + xypolygon4.Points.Add(new XYPoint(9,1)); + xypolygon4.Points.Add(new XYPoint(5,5)); + xypolygon4.Points.Add(new XYPoint(5,3)); + xypolygon4.Points.Add(new XYPoint(3,3)); + xypolygon4.Points.Add(new XYPoint(3,8)); + xypolygon4.Points.Add(new XYPoint(9,8)); + xypolygon4.Points.Add(new XYPoint(9,11)); + xypolygon4.Points.Add(new XYPoint(1,11)); + + Assert.AreEqual(new XYLine(1, 1, 9, 1),xypolygon4.GetLine(0)); + Assert.AreEqual(new XYLine(9, 1, 5, 5),xypolygon4.GetLine(1)); + Assert.AreEqual(new XYLine(5, 5, 5, 3),xypolygon4.GetLine(2)); + Assert.AreEqual(new XYLine(5, 3, 3, 3),xypolygon4.GetLine(3)); + Assert.AreEqual(new XYLine(3, 3, 3, 8),xypolygon4.GetLine(4)); + Assert.AreEqual(new XYLine(3, 8, 9, 8),xypolygon4.GetLine(5)); + Assert.AreEqual(new XYLine(9, 8, 9, 11),xypolygon4.GetLine(6)); + Assert.AreEqual(new XYLine(9,11, 1 ,11),xypolygon4.GetLine(7)); + Assert.AreEqual(new XYLine(1,11, 1 , 1),xypolygon4.GetLine(8)); + } + + [Test] + public void Protected_FindEar() + { + AXYPolygon p1 = new AXYPolygon(); + p1.Points.Add(new XYPoint(0, 3)); + p1.Points.Add(new XYPoint(3, 0)); + p1.Points.Add(new XYPoint(8, 0)); + p1.Points.Add(new XYPoint(8, 2)); + p1.Points.Add(new XYPoint(3, 1)); + p1.Points.Add(new XYPoint(3, 3)); + p1.Points.Add(new XYPoint(8, 3)); + p1.Points.Add(new XYPoint(4, 7)); + Assert.AreEqual(2, p1.AFindEar(),"Test1"); + } + + [Test] + public void Protected_IsIntersected() + { + AXYPolygon p1 = new AXYPolygon(); + p1.Points.Add(new XYPoint(0, 3)); + p1.Points.Add(new XYPoint(3, 0)); + p1.Points.Add(new XYPoint(8, 0)); + p1.Points.Add(new XYPoint(8, 2)); + p1.Points.Add(new XYPoint(3, 1)); + p1.Points.Add(new XYPoint(3, 3)); + p1.Points.Add(new XYPoint(8, 3)); + p1.Points.Add(new XYPoint(4, 7)); + Assert.AreEqual(true, p1.AIsIntersected(0),"Test1"); + Assert.AreEqual(true, p1.AIsIntersected(1),"Test2"); + Assert.AreEqual(false, p1.AIsIntersected(2),"Test3"); + } + + [Test] + public void Protected_IsConvex() + { + AXYPolygon xypolygon4 = new AXYPolygon(); + xypolygon4.Points.Add(new XYPoint(1,1)); + xypolygon4.Points.Add(new XYPoint(9,1)); + xypolygon4.Points.Add(new XYPoint(5,5)); + xypolygon4.Points.Add(new XYPoint(5,3)); + xypolygon4.Points.Add(new XYPoint(3,3)); + xypolygon4.Points.Add(new XYPoint(3,8)); + xypolygon4.Points.Add(new XYPoint(9,8)); + xypolygon4.Points.Add(new XYPoint(9,11)); + xypolygon4.Points.Add(new XYPoint(1,11)); + + Assert.AreEqual( true, xypolygon4.AIsConvex(0)); + Assert.AreEqual( true, xypolygon4.AIsConvex(1)); + Assert.AreEqual( true, xypolygon4.AIsConvex(2)); + Assert.AreEqual( false, xypolygon4.AIsConvex(3)); + Assert.AreEqual( false, xypolygon4.AIsConvex(4)); + Assert.AreEqual( false, xypolygon4.AIsConvex(5)); + Assert.AreEqual( true, xypolygon4.AIsConvex(6)); + Assert.AreEqual( true, xypolygon4.AIsConvex(7)); + Assert.AreEqual( true, xypolygon4.AIsConvex(8)); + } + + [Test] + public void GetTriangulation() + { + XYPolygon p1 = new XYPolygon(); + p1.Points.Add(new XYPoint(0, 3)); + p1.Points.Add(new XYPoint(3, 0)); + p1.Points.Add(new XYPoint(8, 0)); + p1.Points.Add(new XYPoint(8, 2)); + p1.Points.Add(new XYPoint(3, 1)); + p1.Points.Add(new XYPoint(3, 3)); + p1.Points.Add(new XYPoint(8, 3)); + p1.Points.Add(new XYPoint(4, 7)); + ArrayList triangleList = p1.GetTriangulation(); + XYPolygon refTriangle1 = new XYPolygon(); + refTriangle1.Points.Add(new XYPoint(3,0)); + refTriangle1.Points.Add(new XYPoint(8,0)); + refTriangle1.Points.Add(new XYPoint(8,2)); + XYPolygon refTriangle2 = new XYPolygon(); + refTriangle2.Points.Add(new XYPoint(3,0)); + refTriangle2.Points.Add(new XYPoint(8,2)); + refTriangle2.Points.Add(new XYPoint(3,1)); + XYPolygon refTriangle3 = new XYPolygon(); + refTriangle3.Points.Add(new XYPoint(0,3)); + refTriangle3.Points.Add(new XYPoint(3,0)); + refTriangle3.Points.Add(new XYPoint(3,1)); + XYPolygon refTriangle4 = new XYPolygon(); + refTriangle4.Points.Add(new XYPoint(0,3)); + refTriangle4.Points.Add(new XYPoint(3,1)); + refTriangle4.Points.Add(new XYPoint(3,3)); + XYPolygon refTriangle5 = new XYPolygon(); + refTriangle5.Points.Add(new XYPoint(4,7)); + refTriangle5.Points.Add(new XYPoint(0,3)); + refTriangle5.Points.Add(new XYPoint(3,3)); + XYPolygon refTriangle6 = new XYPolygon(); + refTriangle6.Points.Add(new XYPoint(3,3)); + refTriangle6.Points.Add(new XYPoint(8,3)); + refTriangle6.Points.Add(new XYPoint(4,7)); + Assert.AreEqual(refTriangle1 ,(XYPolygon) triangleList[0]); + Assert.AreEqual(refTriangle2 ,(XYPolygon) triangleList[1]); + Assert.AreEqual(refTriangle3 ,(XYPolygon) triangleList[2]); + Assert.AreEqual(refTriangle4 ,(XYPolygon) triangleList[3]); + Assert.AreEqual(refTriangle5 ,(XYPolygon) triangleList[4]); + Assert.AreEqual(refTriangle6 ,(XYPolygon) triangleList[5]); + } + + [Test] + public void Equals() + { + XYPolygon p1 = new XYPolygon(); + p1.Points.Add(new XYPoint(0, 3)); + p1.Points.Add(new XYPoint(3, 0)); + p1.Points.Add(new XYPoint(8, 0)); + p1.Points.Add(new XYPoint(8, 2)); + p1.Points.Add(new XYPoint(3, 1)); + p1.Points.Add(new XYPoint(3, 3)); + p1.Points.Add(new XYPoint(8, 3)); + p1.Points.Add(new XYPoint(4, 7)); + + XYPolygon p2 = new XYPolygon(); + p2.Points.Add(new XYPoint(0, 3)); + p2.Points.Add(new XYPoint(3, 0)); + p2.Points.Add(new XYPoint(8, 0)); + p2.Points.Add(new XYPoint(8, 2)); + p2.Points.Add(new XYPoint(3, 1)); + p2.Points.Add(new XYPoint(3, 3)); + p2.Points.Add(new XYPoint(8, 3)); + p2.Points.Add(new XYPoint(4, 7)); + + XYPolygon p3 = new XYPolygon(); + p3.Points.Add(new XYPoint(0, 3)); + p3.Points.Add(new XYPoint(3, 0)); + p3.Points.Add(new XYPoint(8, 0)); + p3.Points.Add(new XYPoint(8, 2)); + p3.Points.Add(new XYPoint(3, 1.1)); + p3.Points.Add(new XYPoint(3, 3)); + p3.Points.Add(new XYPoint(8, 3)); + p3.Points.Add(new XYPoint(4, 7)); + + XYPolygon p4 = new XYPolygon(); + p4.Points.Add(new XYPoint(0, 3)); + p4.Points.Add(new XYPoint(3, 0)); + p4.Points.Add(new XYPoint(8, 0)); + p4.Points.Add(new XYPoint(8, 2)); + p4.Points.Add(new XYPoint(3, 1)); + p4.Points.Add(new XYPoint(3, 3)); + p4.Points.Add(new XYPoint(8, 3)); + + XYPolyline p5 = new XYPolyline(); + p5.Points.Add(new XYPoint(0, 3)); + p5.Points.Add(new XYPoint(3, 0)); + p5.Points.Add(new XYPoint(8, 0)); + p5.Points.Add(new XYPoint(8, 2)); + p5.Points.Add(new XYPoint(3, 1.1)); + p5.Points.Add(new XYPoint(3, 3)); + p5.Points.Add(new XYPoint(8, 3)); + p5.Points.Add(new XYPoint(4, 7)); + + Assert.AreEqual(true, p1.Equals(p1),"Test1"); + Assert.AreEqual(true, p1.Equals(p2),"Test2"); + Assert.AreEqual(false, p1.Equals(p3),"Test3"); + Assert.AreEqual(false, p1.Equals(p4),"Test4"); + Assert.AreEqual(false, p1.Equals(p5),"Test5"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/XYPolylineTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/XYPolylineTest.cs new file mode 100644 index 00000000..3ff0ab04 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UnitTest/XYPolylineTest.cs @@ -0,0 +1,139 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using Oatc.OpenMI.Sdk.Spatial; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Spatial.UnitTest +{ + /// + /// Summary description for XYPolylineTest. + /// + [TestFixture] + public class XYPolylineTest + { + public XYPolylineTest() + { + // + // TODO: Add constructor logic here + // + } + + [Test] + public void GetLength() + { + XYPolyline xyPolyline = new XYPolyline(); + xyPolyline.Points.Add(new XYPoint(6,2)); + xyPolyline.Points.Add(new XYPoint(2,2)); + xyPolyline.Points.Add(new XYPoint(8,2)); + xyPolyline.Points.Add(new XYPoint(8,4)); + xyPolyline.Points.Add(new XYPoint(5,4)); + xyPolyline.Points.Add(new XYPoint(9,7)); + + Assert.AreEqual((double) 20, xyPolyline.GetLength()); + } + + [Test] + public void GetLine() + { + XYPolyline xyPolyline = new XYPolyline(); + xyPolyline.Points.Add(new XYPoint(6,2)); + xyPolyline.Points.Add(new XYPoint(2,2)); + xyPolyline.Points.Add(new XYPoint(8,2)); + xyPolyline.Points.Add(new XYPoint(8,4)); + xyPolyline.Points.Add(new XYPoint(5,4)); + xyPolyline.Points.Add(new XYPoint(9,7)); + + Assert.AreEqual(new XYLine(6,2,2,2),xyPolyline.GetLine(0)); + Assert.AreEqual(new XYLine(2,2,8,2),xyPolyline.GetLine(1)); + Assert.AreEqual(new XYLine(8,2,8,4),xyPolyline.GetLine(2)); + Assert.AreEqual(new XYLine(8,4,5,4),xyPolyline.GetLine(3)); + Assert.AreEqual(new XYLine(5,4,9,7),xyPolyline.GetLine(4)); + } + + [Test] + public void Equals() + { + XYPolyline p1 = new XYPolyline(); + p1.Points.Add(new XYPoint(0, 3)); + p1.Points.Add(new XYPoint(3, 0)); + p1.Points.Add(new XYPoint(8, 0)); + p1.Points.Add(new XYPoint(8, 2)); + p1.Points.Add(new XYPoint(3, 1)); + p1.Points.Add(new XYPoint(3, 3)); + p1.Points.Add(new XYPoint(8, 3)); + p1.Points.Add(new XYPoint(4, 7)); + + XYPolyline p2 = new XYPolyline(); + p2.Points.Add(new XYPoint(0, 3)); + p2.Points.Add(new XYPoint(3, 0)); + p2.Points.Add(new XYPoint(8, 0)); + p2.Points.Add(new XYPoint(8, 2)); + p2.Points.Add(new XYPoint(3, 1)); + p2.Points.Add(new XYPoint(3, 3)); + p2.Points.Add(new XYPoint(8, 3)); + p2.Points.Add(new XYPoint(4, 7)); + + XYPolyline p3 = new XYPolyline(); + p3.Points.Add(new XYPoint(0, 3)); + p3.Points.Add(new XYPoint(3, 0)); + p3.Points.Add(new XYPoint(8, 0)); + p3.Points.Add(new XYPoint(8, 2)); + p3.Points.Add(new XYPoint(3, 1.1)); + p3.Points.Add(new XYPoint(3, 3)); + p3.Points.Add(new XYPoint(8, 3)); + p3.Points.Add(new XYPoint(4, 7)); + + XYPolyline p4 = new XYPolyline(); + p4.Points.Add(new XYPoint(0, 3)); + p4.Points.Add(new XYPoint(3, 0)); + p4.Points.Add(new XYPoint(8, 0)); + p4.Points.Add(new XYPoint(8, 2)); + p4.Points.Add(new XYPoint(3, 1)); + p4.Points.Add(new XYPoint(3, 3)); + p4.Points.Add(new XYPoint(8, 3)); + + XYPolygon p5 = new XYPolygon(); + p5.Points.Add(new XYPoint(0, 3)); + p5.Points.Add(new XYPoint(3, 0)); + p5.Points.Add(new XYPoint(8, 0)); + p5.Points.Add(new XYPoint(8, 2)); + p5.Points.Add(new XYPoint(3, 1.1)); + p5.Points.Add(new XYPoint(3, 3)); + p5.Points.Add(new XYPoint(8, 3)); + p5.Points.Add(new XYPoint(4, 7)); + + Assert.AreEqual(true, p1.Equals(p1),"Test1"); + Assert.AreEqual(true, p1.Equals(p2),"Test2"); + Assert.AreEqual(false, p1.Equals(p3),"Test3"); + Assert.AreEqual(false, p1.Equals(p4),"Test4"); + Assert.AreEqual(false, p1.Equals(p5),"Test5"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UpgradeLog.XML b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UpgradeLog.XML new file mode 100644 index 00000000..7bf3f2f1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UpgradeLog.XML @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UpgradeLog2.XML b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UpgradeLog2.XML new file mode 100644 index 00000000..26fe88c5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/UpgradeLog2.XML @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/XYGeometryTools.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/XYGeometryTools.cs new file mode 100644 index 00000000..100b8adb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/XYGeometryTools.cs @@ -0,0 +1,898 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// The XYGeometryTools class is a collection of general geometry functions. All functions are + /// static methods that performs calculations on input given as parameters and returns a result. + /// + /// The parameters passed to the XYGeometryTools methods are typically of type XYPoint, XYLine, + /// XYPolyline or XYPolygon. + /// + public class XYGeometryTools + { + private const double EPSILON = 1e-5; + + /// + /// Returns the distance between the two points. + /// + /// Point + /// Point + /// Point to point distance + public static double CalculatePointToPointDistance(XYPoint p1, XYPoint p2) + { + return Math.Sqrt( (p1.X-p2.X)*(p1.X-p2.X)+(p1.Y -p2.Y )*(p1.Y -p2.Y ) ); + } + + /// + /// Returns true if two line segments intersects. The lines are said to intersect if the lines + /// axctually crosses and not if they only share a point. + /// + /// x-coordiante for first point in first line segment + /// y-coordinate for first point in first line segment + /// x-cooedinate for second point in first line segment + /// y-coordinate for second point in first line segment + /// x-coordinate for the first point in second line segment + /// y-coordinate for the first point in second line segment + /// x-coordinate for the second point in the second line segment + /// y-coordinate for the second point in the second line segment + /// True if the line segments intersects otherwise false. + public static bool DoLineSegmentsIntersect(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) + { + double detP1P2P3, detP1P2P4, detP3P4P1, detP3P4P2; + bool intersect = false; + + detP1P2P3 = (x2 - x1)*(y3 - y1) - (x3 - x1)*(y2 - y1); + detP1P2P4 = (x2 - x1)*(y4 - y1) - (x4 - x1)*(y2 - y1); + detP3P4P1 = (x3 - x1)*(y4 - y1) - (x4 - x1)*(y3 - y1); + detP3P4P2 = detP1P2P3 - detP1P2P4 + detP3P4P1; + + if ((detP1P2P3 * detP1P2P4 < 0) && (detP3P4P1 * detP3P4P2 < 0)) + { + intersect = true; + } + return intersect; + } + + /// + /// OverLoad of DoLineSegmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4) + /// + /// First point in first line + /// Second point in first line + /// First point in second line + /// Second point in second line + /// true if the line segmenst intersects otherwise false + public static bool DoLineSegmentsIntersect(XYPoint p1, XYPoint p2, XYPoint p3, XYPoint p4) + { + return DoLineSegmentsIntersect(p1.X, p1.Y, p2.X, p2.Y, p3.X, p3.Y, p4.X, p4.Y); + } + + /// + /// OverLoad of DoLineSegmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4) + /// + /// First line + /// Second line + /// true if the line segmenst intersects otherwise false + public static bool DoLineSegmentsIntersect(XYLine line1, XYLine line2) + { + return DoLineSegmentsIntersect(line1.P1.X, line1.P1.Y, line1.P2.X, line1.P2.Y, line2.P1.X, line2.P1.Y, line2.P2.X, line2.P2.Y); + } + + /// + /// Calculate intersection point between two line segments. + /// + /// First point in first line + /// Second point in first line + /// First point in second line + /// Second point in second line + /// Intersection point + public static XYPoint CalculateIntersectionPoint(XYPoint p1, XYPoint p2, XYPoint p3, XYPoint p4) + { + if (!DoLineSegmentsIntersect(p1,p2,p3,p4)) + { + throw new System.Exception("Attempt to calculate intersection point between non intersecting lines. CalculateIntersectionPoint failed."); + } + + XYPoint interSectionPoint = new XYPoint(); + + double a = p1.X * p2.Y - p2.X * p1.Y; + double b = p3.X * p4.Y - p4.X * p3.Y; + double c = (p1.X - p2.X) * (p3.Y - p4.Y) - (p3.X - p4.X) * (p1.Y - p2.Y); + + interSectionPoint.X = (a * (p3.X - p4.X) - (b * (p1.X - p2.X))) / c; + interSectionPoint.Y = (a * (p3.Y - p4.Y) - (b * (p1.Y - p2.Y))) / c; + + return interSectionPoint; + } + + /// + /// OverLoad of CalculateIntersectionPoint(XYPoint p1, XYPoint p2, XYPoint p3, XYPoint p4) + /// + /// First line + /// Second line + /// Intersection point + public static XYPoint CalculateIntersectionPoint(XYLine line1, XYLine line2) + { + return CalculateIntersectionPoint(line1.P1, line1.P2, line2.P1, line2.P2); + } + + /// + /// Calculates the length of polyline inside polygon. Lines segments on the edges of + /// polygons are included with half their length. + /// + /// Polyline + /// Polygon + /// + /// Length of polyline inside polygon. + /// + public static double CalculateLengthOfPolylineInsidePolygon(XYPolyline polyline, XYPolygon polygon) + { + double lengthInside = 0; + int numberOfLineSegments = polyline.Points.Count - 1; + for (int i = 0; i < numberOfLineSegments; i++) + { + XYLine line = new XYLine(polyline.GetLine(i)); + lengthInside += CalculateLengthOfLineInsidePolygon(line,polygon); + } + return lengthInside; + } + + /// + /// Calculates the length that two lines overlap. + /// + /// Line + /// Line + /// + /// Length of shared line segment. + /// + protected static double CalculateSharedLength(XYLine lineA, XYLine lineB) + { + if ( Math.Abs(lineA.P2.X-lineA.P1.X) + /// Calculates length of line inside polygon. Parts of the line that is on the edge of + /// the polygon only counts with half their length. + /// + /// Line + /// Polygon + /// + /// Length of line inside polygon. + /// + protected static double CalculateLengthOfLineInsidePolygon(XYLine line, XYPolygon polygon) + { + ArrayList lineList = new ArrayList(); + lineList.Add(new XYLine(line)); + + for (int i = 0; i < polygon.Points.Count; i++) // For all lines in the polygon + { + for (int n = 0; n < lineList.Count; n++) + { + if (lineList.Count > 1000) + { + throw new Exception("Problems in ElementMapper, line has been cut in more than 1000 pieces !!!"); + } + + if (DoLineSegmentsIntersect((XYLine)lineList[n], polygon.GetLine(i))) + { + // Split the intersecting line into two lines + XYPoint IntersectionPoint = new XYPoint(CalculateIntersectionPoint((XYLine)lineList[n], polygon.GetLine(i))); + lineList.Add(new XYLine(IntersectionPoint, ((XYLine) lineList[n]).P2)); + ((XYLine) lineList[n]).P2.X = IntersectionPoint.X; + ((XYLine) lineList[n]).P2.Y = IntersectionPoint.Y; + break; + } + } + } + + for (int i = 0; i < lineList.Count; i++) + { + if (lineList.Count > 1000) + { + throw new Exception("Problems in ElementMapper, line has been cuttes in more than 100 pieces !!!"); + } + for (int j = 0; j < polygon.Points.Count; j++) + { + if (IsPointInLineInterior( polygon.GetLine(j).P1, ((XYLine) lineList[i]))) + { + lineList.Add(new XYLine(polygon.GetLine(j).P1, ((XYLine) lineList[i]).P2)); + ((XYLine) lineList[i]).P2.X = polygon.GetLine(j).P1.X; + ((XYLine) lineList[i]).P2.Y = polygon.GetLine(j).P1.Y; + } + } + } + + double lengthInside = 0; + for (int i = 0; i < lineList.Count; i++) + { + double sharedLength = 0; + for (int j = 0; j < polygon.Points.Count; j++) + { + sharedLength += CalculateSharedLength(((XYLine) lineList[i]), polygon.GetLine(j)); + } + if (sharedLength > EPSILON) + { + lengthInside += sharedLength/2; + } + else if (IsPointInPolygon(((XYLine) lineList[i]).GetMidpoint(), polygon)) + { + lengthInside += ((XYLine) lineList[i]).GetLength(); + } + } + return lengthInside; + } + + /// + /// The method calculates the intersection area of triangle a and b both + /// of type XYPolygon. + /// + /// Triangle of type XYPolygon + /// Triangle of type XYPolygon + /// + /// Intersection area between the triangles triangleA and triAngleB. + /// + protected static double TriangleIntersectionArea(XYPolygon triangleA, XYPolygon triangleB) + { + try + { + if (triangleA.Points.Count != 3 || triangleB.Points.Count != 3) + { + throw new System.Exception("Argument must be a polygon with 3 points"); + } + int i = 1; // Index for "next" node in polygon a. + int j = -1; // Index for "next" node in polygon b. + // -1 indicates that the first has not yet been found. + double area = 0; // Intersection area. Returned. + XYPolygon intersectionPolygon = new XYPolygon(); // Intersection polygon. + XYPoint pFirst = new XYPoint(); // First intersection point between triangles + XYPoint p = new XYPoint(); // Latest intersection node found + + p.X = ((XYPoint) triangleA.Points[0]).X; + p.Y = ((XYPoint) triangleA.Points[0]).Y; + Intersect(triangleA, triangleB, ref p, ref i, ref j, ref intersectionPolygon); + pFirst = p; + + if (j != -1) + { + int jStop = Increase(j, 2); + bool complete = false; + int count = 0; + while (!complete) + { + // coordinates for vectors pointing to next triangleA and triangleB point respectively + double vax= ((XYPoint) triangleA.Points[i]).X - p.X; + double vay= ((XYPoint) triangleA.Points[i]).Y - p.Y; + double vbx= ((XYPoint) triangleB.Points[j]).X - p.X; + double vby= ((XYPoint) triangleB.Points[j]).Y - p.Y; + + if(IsPointInPolygonOrOnEdge(p.X + EPSILON*vax, p.Y + EPSILON*vay, triangleB)) + { + Intersect(triangleA, triangleB, ref p, ref i, ref j, ref intersectionPolygon); + } + else if(IsPointInPolygonOrOnEdge(p.X + EPSILON*vbx, p.Y + EPSILON*vby, triangleA)) + { + Intersect(triangleB, triangleA, ref p, ref j, ref i, ref intersectionPolygon); + } + else // triangleA and triangleB only touches one another but do not intersect + { + area = 0; + return area; + } + if (intersectionPolygon.Points.Count > 1) + { + complete = (CalculatePointToPointDistance(p, pFirst) < EPSILON); + } + count++; + if ( count > 20 ) + { + throw new System.Exception("Failed to find intersection polygon"); + } + } + area = intersectionPolygon.GetArea(); + } + else + { + XYPoint pa = new XYPoint(); // internal point in triangle a + XYPoint pb = new XYPoint(); // internal point in triangle b + + pa.X = (triangleA.GetX(0)+triangleA.GetX(1)+triangleA.GetX(2))/3; + pa.Y = (triangleA.GetY(0)+triangleA.GetY(1)+triangleA.GetY(2))/3; + pb.X = (triangleB.GetX(0)+triangleB.GetX(1)+triangleB.GetX(2))/3; + pb.Y = (triangleB.GetY(0)+triangleB.GetY(1)+triangleB.GetY(2))/3; + + if (IsPointInPolygon(pa,triangleB) || IsPointInPolygon(pb,triangleA)) // triangleA is completely inside triangleB + { + area = Math.Min(triangleA.GetArea(),triangleB.GetArea()); + } + else // triangleA and triangleB do dot intersect + { + area = 0; + } + } + return area; + } + catch (System.Exception e) + { + throw new System.Exception("TriangleIntersectionArea failed",e); + } + } + + /// + /// The method calculates the intersection points of triangle a and b both + /// of type XYPolygon. + /// + /// triangle. The search is started along triangleA. + /// triangle. Intersection with this triangle are sought. + /// Starting point for the search. p must be part of triangleA. + /// on input: End index for the first line segment of triangleA in the search. + /// on output: End index for the last intersected line segment in triangleA. + /// on input: -1 if vertices before intersection is not to be added to list. + /// on output: End index for last intersected line segment of triangleB. + /// polygon eventuallu describing the + /// intersection area between triangleA and triangleB + /// + /// The p, i, j and intersectionPolygon are called by reference and modified in the method. + /// + private static void Intersect (XYPolygon triangleA, XYPolygon triangleB, + ref XYPoint p, ref int i, ref int j, + ref XYPolygon intersectionPolygon) + { + XYLine lineA; + XYLine lineB; + int im1 = Decrease(i, 2); // "i-1" + int count1 = 0; + bool found = false; + + while ((count1 < 3) && (!found)) + { + lineA = triangleA.GetLine(im1); + if (count1 == 0) + { + lineA.P1.X = p.X; + lineA.P1.Y = p.Y; + } + double MinDist = -1; // Distance used when a line is crossed more than once + int jm1 = 0; // "j-1" + int jm1Store = -1; + while (jm1 < 3) + { + lineB = triangleB.GetLine(jm1); + found = IntersectionPoint(lineA, lineB, ref p); + double Dist = CalculatePointToPointDistance(lineA.P1,p); + if (Dist < EPSILON) + { + found = false; + } + if (found) + { + if ((MinDist < 0) || (Dist < MinDist)) + { + MinDist = Dist; + jm1Store = jm1; + } + } + jm1++; + } + if ( jm1Store > -1 ) + { + lineB = triangleB.GetLine(jm1Store); + found = IntersectionPoint(lineA, lineB, ref p); + XYPoint HelpCoordinate = new XYPoint(p.X, p.Y); + XYPoint HelpNode = new XYPoint(HelpCoordinate); + + intersectionPolygon.Points.Add(HelpNode); + + j = Increase(jm1Store,2); + } + if (!found) + { + count1++; + im1 = Increase(im1,2); + i = Increase(i,2); + if (j!=-1) + { + XYPoint HelpCoordinate = new XYPoint(lineA.P2.X, lineA.P2.Y); + XYPoint HelpNode = new XYPoint(HelpCoordinate); + intersectionPolygon.Points.Add(HelpNode); + } + } + } + lineA = triangleA.GetLine(Decrease(i, 2)); + if ( CalculatePointToPointDistance(p, lineA.P2) + /// The method steps to the next index in a circular list 0, 1 ..., n. + /// + /// Index to increase. + /// Largest index + /// + ///

    The increased index.

    + ///
    + private static int Increase(int i, int n) + { + i++; + if (i>n) + { + i = 0; + } + return i; + } + + /// + /// The method steps to the previous index in a circular list 0, 1 ..., n. + /// + /// Index to decrease. + /// Largest index + /// + ///

    The decreased index.

    + ///
    + private static int Decrease(int i, int n) + { + i--; + if (i < 0) + { + i = n; + } + return i; + } + + /// + /// Checks if the lines lineA and lineB shares a point either as a real + /// crossing point or as a shared end point or a end point of the one + /// line being in the other line. + /// + /// Line. + /// Line. + /// Point. + /// + ///

    True if lineA and lineB has shared point. False otherwise

    + ///

    The shared point if any is returned in the intersectionPoint + /// parameter that is called by reference

    + ///
    + protected static bool IntersectionPoint(XYLine Linea, XYLine Lineb, ref XYPoint intersectionPoint) + { + if( DoLineSegmentsIntersect(Linea, Lineb)) + { + intersectionPoint = CalculateIntersectionPoint(Linea, Lineb); + return true; + } + if( IsPointInLine(Linea.P2, Lineb)) + { + intersectionPoint = Linea.P2; + return true; + } + if( IsPointInLine(Lineb.P2, Linea)) + { + intersectionPoint = Lineb.P2; + return true; + } + if( IsPointInLine(Lineb.P1, Linea)) + { + intersectionPoint = Lineb.P1; + return true; + } + if( IsPointInLine(Linea.P1, Lineb)) + { + intersectionPoint = Linea.P1; + return true; + } + return false; + } + + /// + /// Determines if a point is included in a line either in the interior + /// or as one of the end points. + /// + /// x-coordinate + /// y-coordinate + /// Line. + /// + ///

    Determines if a point is included in a line.

    + ///
    + protected static bool IsPointInLine(double x, double y, XYLine line) + { + bool result = false; + if( line.P1.X-line.P2.X != 0 ) + { + if ((x >= Math.Min(line.P1.X, line.P2.X)) && (x <= Math.Max(line.P1.X, line.P2.X))) + { + if( Math.Abs(y-line.P1.Y-(line.P2.Y-line.P1.Y)/(line.P1.X-line.P2.X)*(line.P1.X-x)) < EPSILON*EPSILON) + { + result = true; + } + } + } + else + { + if (line.P1.X == x) + { + if ( (y >= Math.Min(line.P1.Y, line.P2.Y)) && (y <= Math.Max(line.P1.Y, line.P2.Y)) ) + { + result = true; + } + } + } + return result; + } + + /// + /// Determines if a point is included in a line either in the interior + /// or as one of the end points. + ///

    Overload to: IsPointInLine(double x, double y, XYLine line)

    + ///
    + /// + /// Point + /// Line. + /// + /// + ///

    Determines if a point is included in a line.

    + ///
    + protected static bool IsPointInLine(XYPoint point, XYLine line) + { + return IsPointInLine( point.X, point.Y, line); + } + + /// + /// Determines if a point is included in a lines interior. I.e. included + /// in the line and not an endpoint. + /// + /// x-coordinate + /// y-coordinate + /// Line. + /// + ///

    Determines if a point is included in a line.

    + ///
    + protected static bool IsPointInLineInterior(double x, double y, XYLine line) + { + bool result = false; + if( line.P1.X-line.P2.X != 0 ) //line is not vertical + { + if ((x > Math.Min(line.P1.X, line.P2.X)) && (x < Math.Max(line.P1.X, line.P2.X))) + { + if( Math.Abs(y-line.P1.Y-(line.P2.Y-line.P1.Y)/(line.P1.X-line.P2.X)*(line.P1.X-x)) < EPSILON*EPSILON) + { + result = true; + } + } + } + else //line is vertical + { + if (line.P1.X == x) + { + if ( (y > Math.Min(line.P1.Y, line.P2.Y)) && (y < Math.Max(line.P1.Y, line.P2.Y)) ) + { + result = true; + } + } + } + return result; + } + + /// + /// Determines if a point is included in a lines interior. I.e. included + /// in the line and not an endpoint. + ///

    Overload to:IsPointInLineInterior(double x, double y, XYLine line)

    + ///
    + /// Point. + /// Line. + /// + ///

    Determines if a point is included in a line.

    + ///
    + protected static bool IsPointInLineInterior(XYPoint point, XYLine line) + { + return IsPointInLineInterior( point.X, point.Y, line); + } + + /// + /// Calculates the distance from a polyline to a point in the plane. + /// The algorithm decides weather the point lies besides the line + /// segment in which case the distance is the length along a line + /// perpendicular to the line. Alternatively the distance is the + /// smallest of the distances to either endpoint. + /// + /// Line + /// Point + /// + ///

    Length of the shortest path between the line and the point.

    + ///
    + protected static double CalculateLineToPointDistance (XYLine line, XYPoint point) + { + double dist = 0; + double a = Math.Sqrt((line.P2.X-point.X)*(line.P2.X-point.X) + (line.P2.Y-point.Y)*(line.P2.Y-point.Y)); + double b = Math.Sqrt((line.P2.X-line.P1.X)*(line.P2.X-line.P1.X)+(line.P2.Y-line.P1.Y)*(line.P2.Y-line.P1.Y)); + double c = Math.Sqrt((line.P1.X-point.X)*(line.P1.X-point.X)+(line.P1.Y-point.Y)*(line.P1.Y-point.Y)); + if ((a == 0) || (c == 0)) + { + dist = 0; + } + else if (b == 0) + { + dist = a; + } + else + { + double alpha = Math.Acos((b*b+c*c-a*a)/(2*b*c)); + double beta = Math.Acos((a*a+b*b-c*c)/(2*a*b)); + if (Math.Max(alpha,beta) + /// Finds the shortest distance between any line segment of the polyline + /// and the point. + /// + /// PolyLine. + /// Point + /// + ///

    Length of the shortest path between the polyline and the point.

    + ///
    + public static double CalculatePolylineToPointDistance (XYPolyline polyLine, XYPoint point) + { + double dist = 0; + int i = 0; + while (i < polyLine.Points.Count - 1) + { + if (i == 0) + { + dist = CalculateLineToPointDistance (polyLine.GetLine(0), point); + } + else + { + dist = Math.Min(dist, CalculateLineToPointDistance (polyLine.GetLine(i), point)); + } + i++; + } + return dist; + } + + /// + /// Determines if a point in inside or outside a polygon. + /// Works for both convex and concave polygons (Winding number test) + /// + /// Point + /// Polygon + /// + ///

    true: If the point is inside the polygon

    + ///

    false: Otherwise.

    + ///
    + public static bool IsPointInPolygon(XYPoint point, XYPolygon polygon) + { + return IsPointInPolygon(point.X, point.Y, polygon); + } + + /// + /// Determines if a point in inside or outside a polygon. + /// Works for both convex and concave polygons (Winding number test) + /// + /// x-coordinate for the point + /// y-coordiante for the point + /// Polygon + /// + ///

    true: If the point is inside the polygon

    + ///

    false: If the point is outside the polygon.

    + ///
    + public static bool IsPointInPolygon(double x, double y, XYPolygon polygon) + { + double x1,x2,y1,y2; + double xinters; + bool isInside = false; + int n = polygon.Points.Count; + + for (int i = 0; i < n; i++) + { + if (i < n - 1) + { + x1 = ((XYPoint)polygon.Points[i]).X; + x2 = ((XYPoint)polygon.Points[i+1]).X; + y1 = ((XYPoint)polygon.Points[i]).Y; + y2 = ((XYPoint)polygon.Points[i+1]).Y; + } + else + { + x1 = ((XYPoint)polygon.Points[n-1]).X; + x2 = ((XYPoint)polygon.Points[0]).X; + y1 = ((XYPoint)polygon.Points[n-1]).Y; + y2 = ((XYPoint)polygon.Points[0]).Y; + } + + if (y > Math.Min(y1,y2)) + { + if (y <= Math.Max(y1,y2)) + { + if ( x <= Math.Max(x1,x2)) + { + if (y1 != y2) + { + xinters = (y - y1)*(x2 - x1)/(y2 - y1) + x1; + + if (x1 == x2 || x <= xinters) + { + isInside = !isInside; + } + } + } + } + } + } + return isInside; + } + + /// + /// Determines if a point in inside or outside a polygon. Inside + /// includes on the edge for this method. + /// Works for both convex and concave polygons (Winding number test) + /// + /// x-coordinate for the point + /// y-coordiante for the point + /// Polygon + /// + ///

    true: If the point is inside the polygon

    + ///

    false: If the point is outside the polygon.

    + ///
    + protected static bool IsPointInPolygonOrOnEdge(double x, double y, XYPolygon polygon) + { + bool result = IsPointInPolygon(x, y, polygon); + if( result ) + { + return result; + } + else + { + int iLine = 0; + while( (!result) && (iLine < polygon.Points.Count) ) + { + XYLine line = new XYLine(); + line = polygon.GetLine(iLine); + result = IsPointInLine(x, y, line); + iLine++; + } + } + return result; + } + + /// + /// The methods calculates the shared area of two arbitrarily shaped + /// polygons. + /// + /// Polygon + /// Polygon + /// + ///

    The shared area.

    + ///
    + public static double CalculateSharedArea (XYPolygon polygonA, XYPolygon polygonB) + { + ArrayList triangleListA = polygonA.GetTriangulation(); + ArrayList triangleListB = polygonB.GetTriangulation(); + + double area = 0; + for (int ia = 0; ia < triangleListA.Count; ia++) + { + XYPolygon triangleA = new XYPolygon((XYPolygon)triangleListA[ia]); + for (int ib = 0; ib < triangleListB.Count; ib++) + { + XYPolygon triangleB = new XYPolygon((XYPolygon)triangleListB[ib]); + area = area + TriangleIntersectionArea(triangleA, triangleB); + } + } + return area; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/XYLine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/XYLine.cs new file mode 100644 index 00000000..94baf890 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/XYLine.cs @@ -0,0 +1,167 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion + +using System; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// The XYline class is used for representing line segments. XYPolylines + /// and XYPolygons are composed of XYLines. + /// + public class XYLine + { + private XYPoint _p1; + private XYPoint _p2; + + /// + /// Constructor. + /// + /// None + public XYLine() + { + _p1 = new XYPoint(); + _p2 = new XYPoint(); + } + + /// + /// Constructor. + /// + /// x-coordinate for line start point + /// y-coordinate for line start point + /// x-coordinate for line end point + /// y-coordinate for line end point + /// None + public XYLine(double x1, double y1, double x2, double y2) + { + _p1 = new XYPoint(); + _p2 = new XYPoint(); + _p1.X = x1; + _p1.Y = y1; + _p2.X = x2; + _p2.Y = y2; + } + + /// + /// Constructor. + /// + /// Line start point + /// Line end point + /// None + public XYLine(XYPoint point1, XYPoint point2) + { + _p1 = new XYPoint(); + _p2 = new XYPoint(); + + _p1.X = point1.X; + _p1.Y = point1.Y;; + _p2.X = point2.X; + _p2.Y = point2.Y; + } + + /// + /// Constructor. Copies input line. + /// + /// Line to copy + public XYLine(XYLine line) + { + _p1 = new XYPoint(); + _p2 = new XYPoint(); + + _p1.X = line.P1.X; + _p1.Y = line.P1.Y; + _p2.X = line.P2.X; + _p2.Y = line.P2.Y; + } + + /// + /// Read only property describing the one end-point. + /// + public XYPoint P1 + { + get + { + return _p1; + } + } + + /// + /// Read only property describing the one end-point. + /// + public XYPoint P2 + { + get + { + return _p2; + } + } + + /// + /// Calculates the length of line. + /// + /// Line length + public double GetLength() + { + return Math.Sqrt((_p1.X-_p2.X)*(_p1.X-_p2.X)+ (_p1.Y-_p2.Y)*(_p1.Y-_p2.Y)); + } + + /// + /// Calculates the mid point of the line. + /// + /// Returns the line mid point as a XYPoint + public XYPoint GetMidpoint() + { + return new XYPoint(( _p1.X + _p2.X ) / 2, ( _p1.Y + _p2.Y ) / 2); + } + + /// + /// Compares the object type and the coordinates of the object and the + /// object passed as parameter. + /// + /// True if object type is XYLine and the coordinates are + /// equal to to the coordinates of the current object. False otherwise. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + { + return false; + } + return P1.Equals(((XYLine) obj).P1) && this.P2.Equals(((XYLine) obj).P2); + } + + /// + /// Get Hash Code. + /// + /// Hash Code for the current instance. + public override int GetHashCode() + { + return base.GetHashCode(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/XYPoint.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/XYPoint.cs new file mode 100644 index 00000000..ad8a52db --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/XYPoint.cs @@ -0,0 +1,124 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// XYPoint is simply a x and a y coordinate. + /// + public class XYPoint + { + private double _x; + private double _y; + + /// + /// Constructor. + /// + /// None + public XYPoint() + { + _x = -9999; + _y = -9999; + } + + /// + /// Constructor. + /// + /// None + public XYPoint(double x, double y) + { + _x = x; + _y = y; + } + + /// + /// Constructor. + /// + /// None + public XYPoint(XYPoint xypoint) + { + _x = xypoint.X; + _y = xypoint.Y; + } + + /// + /// Read/Write property describing the x-coordinate of the point. + /// + public double X + { + get + { + return _x; + } + set + { + _x = value; + } + } + + /// + /// Read/Write property describing the y-coordinate of the point. + /// + public double Y + { + get + { + return _y; + } + set + { + _y = value; + } + } + + /// + /// Compares the object type and the coordinates of the object and the + /// object passed as parameter. + /// + /// True if object type is XYPolyline and the coordinates are + /// equal to to the coordinates of the current object. False otherwise. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + return false; + else + return ((XYPoint) obj).X == this.X && ((XYPoint) obj).Y == this.Y; + } + + /// + /// Get Hash Code. + /// + /// Hash Code for the current instance. + public override int GetHashCode() + { + return base.GetHashCode(); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/XYPolygon.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/XYPolygon.cs new file mode 100644 index 00000000..b9497bdb --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/XYPolygon.cs @@ -0,0 +1,359 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + ///

    The XYPolygon class defines a polygon in the XY plane (no z coordinate)

    + ///

    + ///

    The XYPolygon class has a number of usefull methods and XYPolygon objects + /// are used as argument in a number of the methods in the Oatc.OpenMI.Sdk.Spatial + /// namespace.

    + ///

    + ///

    The XYPolygon class is inhereted from the org.OpenMI.Utilities.BackBone.Element class.

    + ///

    + ///

    It is possible to upcaste the XYPoint objects to Element objects.

    + ///

    + ///

    If you already have a Element object that defines a polygon you can construct + /// a new XYPoint using the Element objects as argument in the constructor.

    + /// + ///
    + public class XYPolygon : XYPolyline + { + /// + /// Constructor. + /// + public XYPolygon() + { + } + + /// + /// Constructor. Copies the contents of the xyPolygon parameter. + /// + /// Polygon to copy. + /// None + public XYPolygon(XYPolygon xyPolygon) + { + // Points = new ArrayList(); + foreach (XYPoint xypoint in xyPolygon.Points) + { + Points.Add(new XYPoint(xypoint.X, xypoint.Y)); + } + } + + /// + /// Calcualtes area of polygon. + /// + /// Polygon area. + public double GetArea() + { + double x1, x2, y1, y2, xN, x0, yN, y0, area; + area = 0; + for (int i = 0; i < Points.Count - 1; i++) + { + x1 = ((XYPoint) Points[i]).X; + x2 = ((XYPoint) Points[i+1]).X; + y1 = ((XYPoint) Points[i]).Y; + y2 = ((XYPoint) Points[i+1]).Y; + area += x1*y2 - x2*y1; + } + xN = ((XYPoint) Points[Points.Count - 1]).X; + x0 = ((XYPoint) Points[0]).X; + yN = ((XYPoint) Points[Points.Count - 1]).Y; + y0 = ((XYPoint) Points[0]).Y; + + area += xN * y0 - x0 * yN; + area = 0.5 * area; + + return area; + } + + /// + /// Returns the XYline that connects XYPoint LineNumber and the next + /// number (i.e. LineNumber+1 or 0). + /// 0-based line number. + /// + /// The XYLine starting at node lineNumber. + /// + public new XYLine GetLine(int lineNumber) + { + int index2; + + if (lineNumber == Points.Count - 1) + { + index2 = 0; + } + else + { + index2 = lineNumber + 1; + } + return new XYLine(((XYPoint) Points[lineNumber]).X, ((XYPoint) Points[lineNumber]).Y, ((XYPoint) Points[index2]).X, ((XYPoint) Points[index2]).Y); + } + + /// + /// Finds a set of three concecutive points that form a triangle, that + /// is not intersected by other parts of the polygon. + /// + /// + /// + ///

    i: Index for the "midlle" point of triangle that forms an ear. + /// The ear is formed by P(i-1), P(i) and P(i+1), where P are points + /// included in the polygon.

    + ///
    + protected int FindEar() + { + int i = 0; + int n = Points.Count - 1; + bool found = false; + while ((i < n-1) && (!found)) + { + if ((IsConvex(i) == true) && (IsIntersected(i) == false)) + { + found = true; + } + else + { + i++; + } + } + return i; + } + + /// + /// The method decides if the triangle formed by P(i-1), P(i) and + /// P(i+1) from Polygon are intersected by any of the other points + /// of the polygon. + /// + /// Middle index for the three points that forms the triangle + /// + ///

    true: If the triangle P(i-1), P(i), P(i+1) is intersected by other parts of Polygon

    + ///

    false: otherwise

    + ///
    + protected bool IsIntersected(int i) + { + double x = 0; + double y = 0; + int n = Points.Count; + + int im1 = i-1; + int ip1 = i+1; + if (i == 0) + { + im1 = n-1; + } + else if (i == n-1) + { + ip1 = 0; + } + + XYPoint nodeim1 = new XYPoint((XYPoint) Points[im1]); + XYPoint nodei = new XYPoint((XYPoint) Points[i]); + XYPoint nodeip1 = new XYPoint((XYPoint) Points[ip1]); + XYPolygon localPolygon = new XYPolygon(); + localPolygon.Points.Add(nodeim1); + localPolygon.Points.Add(nodei); + localPolygon.Points.Add(nodeip1); + + int j = 0; + bool intersected = false; + while (((j < n-1) && (!intersected))) + { + x = ((XYPoint) Points[j]).X; + y = ((XYPoint) Points[j]).Y; + + if (((((j!=im1) && (j!=i)) && (j!=ip1)) && XYGeometryTools.IsPointInPolygon(x,y,localPolygon))) + { + return true; + } + else + { + j++; + } + } + return false; + } + + /// + /// Returns an ArrayList of triangles of type XYPolygon describing the + /// triangalation of the polygon. + /// + /// + /// + /// A triangulation of the polygon. + /// + public ArrayList GetTriangulation() + { + int i = 0; + int im1 = 0; + int ip1 = 0; + int n = 0; + + XYPolygon LocalPolygon = new XYPolygon(this); + ArrayList TriangleList = new ArrayList(); + while (LocalPolygon.Points.Count > 3) + { + i = LocalPolygon.FindEar(); + n = LocalPolygon.Points.Count; + im1 = i-1; + ip1 = i+1; + if (i == 0) + { + im1 = n-1; + } + else if (i == n-1) + { + ip1 = 0; + } + XYPoint Nodeim1 = new XYPoint((XYPoint)LocalPolygon.Points[im1]); + XYPoint Nodei = new XYPoint((XYPoint)LocalPolygon.Points[i]); + XYPoint Nodeip1 = new XYPoint((XYPoint)LocalPolygon.Points[ip1]); + XYPolygon Triangle = new XYPolygon(); + Triangle.Points.Add(Nodeim1); + Triangle.Points.Add(Nodei); + Triangle.Points.Add(Nodeip1); + TriangleList.Add(Triangle); + LocalPolygon.Points.RemoveAt(i); + } + TriangleList.Add(LocalPolygon); + return TriangleList; + } + + /// + /// Decides if the angle at ith point is convex or concave. + /// + /// Index + /// + ///

    True if angle at the ith point is convex.

    + ///

    False if angle at the ith point is concave.

    + ///
    + protected bool IsConvex(int pointIndex) + { + bool isConvex = true; + int im1 = pointIndex - 1 < 0 ? Points.Count - 1 : pointIndex - 1; //previous point index + int ip1 = pointIndex + 1 > Points.Count - 1 ? 0 : pointIndex + 1; //next point index + + double xim1 = ((XYPoint) Points[im1]).X; + double yim1 = ((XYPoint) Points[im1]).Y; + + double xi = ((XYPoint) Points[pointIndex]).X; + double yi = ((XYPoint) Points[pointIndex]).Y; + + double xip1 = ((XYPoint) Points[ip1]).X; + double yip1 = ((XYPoint) Points[ip1]).Y; + + if ((xip1-xim1)*(yi-yim1)-(xi-xim1)*(yip1-yim1)>0) + { + isConvex = false; + } + else + { + isConvex = true; + } + return isConvex; + } + + /// + /// Compares the object type and the coordinates of the object and the + /// object passed as parameter. + /// + /// True if object type is XYPolygon and the coordinates are + /// equal to to the coordinates of the current object. False otherwise. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + { + return false; + } + XYPolyline e = (XYPolygon) obj; + if (Points.Count!=e.Points.Count) + { + return false; + } + for (int i=0;i + /// Get hash code. + /// + /// Hash Code for the current instance. + public override int GetHashCode() + { + return base.GetHashCode(); + } + + /// + /// The validate method check if the XYPolyline is valid. The checks + /// made are: + /// - is number of points >= 3 + /// - is the length of all line segments positiv + /// - do any lines cross + /// - is the area positiv + /// Exception is raised if the constraints are not met. + /// + public new void Validate() + { + if(Points.Count < 3) + { + throw new System.Exception("Number of vertices in polygon element is less than 3."); + } + if (GetArea() <= 0) + { + throw new System.Exception("Area of polygon is negative or zero. XYPolygons must be ordered counter clockwise."); + } + for (int j = 0; j < Points.Count; j++) + { + if (GetLine(j).GetLength() == 0) + { + throw new System.Exception("Length of line segment no: "+ + j.ToString()+" (0-based) of XYPolygon is zero."); + } + } + for (int j = 0; j < Points.Count; j++) + { + for (int m = 0; m < j; m++) + { + if (XYGeometryTools.DoLineSegmentsIntersect(GetLine(j),GetLine(m))) + { + throw new System.Exception("Line no: "+j.ToString()+" and line no: "+ + m.ToString()+" of XYPolygon crosses."); + } + } + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/XYPolyline.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/XYPolyline.cs new file mode 100644 index 00000000..c058b0b1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/XYPolyline.cs @@ -0,0 +1,183 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.Spatial +{ + /// + /// XYPolyline is a collection of points (at least 2) connected with straigth lines. + /// Polylines are typically used for presentation of 1D data, river networks e.t.c. + /// + public class XYPolyline + { + private ArrayList _points; + + + /// + /// Constructor. + /// + public XYPolyline() + { + _points = new ArrayList(); + } + + /// + /// Constructor. Copies the contents of the xyPolyline parameter. + /// + /// Polyline to copy. + /// None + public XYPolyline(XYPolyline xyPolyline) + { + _points = new ArrayList(); + + foreach (XYPoint xypoint in xyPolyline.Points) + { + _points.Add(new XYPoint(xypoint.X, xypoint.Y)); + } + + } + + /// + /// Read only property holding the list of points. + /// + public ArrayList Points + { + get + { + return _points; + } + } + + /// + /// Retrieves the x-coordinate of the indexth line point. + /// + /// Index number of the point. + /// X-coordinate of the indexth point in the polyline. + public double GetX(int index) + { + return ((XYPoint) _points[index]).X; + } + + /// + /// Retrieves the y-coordinate of the indexth line point. + /// + /// Index number of the point. + /// Y-coordinate of the indexth point in the polyline. + public double GetY(int index) + { + return ((XYPoint) _points[index]).Y; + } + + /// + /// Retrieves the lineNumberth line segment of the polyline. The index + /// list is zero based. + /// + /// Index number of the line to retrieve. + /// The lineNumberth line segment of the polyline. + public XYLine GetLine(int lineNumber) + { + return new XYLine((XYPoint)_points[lineNumber], (XYPoint)_points[lineNumber+1]); + } + + /// + /// Calculates the length of the polyline. + /// + /// Length of the polyline. + public double GetLength() + { + double length = 0; + for (int i = 0; i < _points.Count - 1; i++) + { + length += GetLine(i).GetLength(); + } + return length; + } + + /// + /// Compares the object type and the coordinates of the object and the + /// object passed as parameter. + /// + /// True if object type is XYPolyline and the coordinates are + /// equal to to the coordinates of the current object. False otherwise. + public override bool Equals(Object obj) + { + if (obj == null || GetType() != obj.GetType()) + { + return false; + } + XYPolyline e = (XYPolyline) obj; + if (_points.Count!=e.Points.Count) + { + return false; + } + for (int i=0;i<_points.Count;i++) + { + if (!((XYPoint) _points[i]).Equals(e.Points[i])) + { + return false; + } + } + return true; + } + + /// + /// Get hash code. + /// + /// Hash Code for the current instance. + public override int GetHashCode() + { + return base.GetHashCode(); + } + + /// + /// The validate method check if the XYPolyline is valid. The checks + /// made are: + /// - is number of points >= 2 + /// - is the length of all line segments positiv + /// Exception is raised if the constraints are not met. + /// + public void Validate() + { + if(_points.Count < 2) + { + throw new System.Exception("Number of vertices in polyline element is less than 2."); + } + for (int j = 0; j < _points.Count-1; j++) + { + if (GetLine(j).GetLength() == 0) + { + throw new System.Exception("Length of line segment no: "+ + j.ToString()+" (0-based) of XYPolyline is zero."); + } + } + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/_UpgradeReport_Files/UpgradeReport.css b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/_UpgradeReport_Files/UpgradeReport.css new file mode 100644 index 00000000..3411f632 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/_UpgradeReport_Files/UpgradeReport.css @@ -0,0 +1,207 @@ +BODY +{ + BACKGROUND-COLOR: white; + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 100%; + MARGIN-LEFT: 0px; + MARGIN-TOP: 0px +} +P +{ + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 70%; + LINE-HEIGHT: 12pt; + MARGIN-BOTTOM: 0px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 10px +} +.note +{ + BACKGROUND-COLOR: #ffffff; + COLOR: #336699; + FONT-FAMILY: "Verdana", sans-serif; + FONT-SIZE: 100%; + MARGIN-BOTTOM: 0px; + MARGIN-LEFT: 0px; + MARGIN-TOP: 0px; + PADDING-RIGHT: 10px +} +.infotable +{ + BACKGROUND-COLOR: #f0f0e0; + BORDER-BOTTOM: #ffffff 0px solid; + BORDER-COLLAPSE: collapse; + BORDER-LEFT: #ffffff 0px solid; + BORDER-RIGHT: #ffffff 0px solid; + BORDER-TOP: #ffffff 0px solid; + FONT-SIZE: 70%; + MARGIN-LEFT: 10px +} +.issuetable +{ + BACKGROUND-COLOR: #ffffe8; + BORDER-COLLAPSE: collapse; + COLOR: #000000; + FONT-SIZE: 100%; + MARGIN-BOTTOM: 10px; + MARGIN-LEFT: 13px; + MARGIN-TOP: 0px +} +.issuetitle +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px; + COLOR: #003366; + FONT-WEIGHT: normal +} +.header +{ + BACKGROUND-COLOR: #cecf9c; + BORDER-BOTTOM: #ffffff 1px solid; + BORDER-LEFT: #ffffff 1px solid; + BORDER-RIGHT: #ffffff 1px solid; + BORDER-TOP: #ffffff 1px solid; + COLOR: #000000; + FONT-WEIGHT: bold +} +.issuehdr +{ + BACKGROUND-COLOR: #E0EBF5; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px solid; + COLOR: #000000; + FONT-WEIGHT: normal +} +.issuenone +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: 0px; + BORDER-LEFT: 0px; + BORDER-RIGHT: 0px; + BORDER-TOP: 0px; + COLOR: #000000; + FONT-WEIGHT: normal +} +.content +{ + BACKGROUND-COLOR: #e7e7ce; + BORDER-BOTTOM: #ffffff 1px solid; + BORDER-LEFT: #ffffff 1px solid; + BORDER-RIGHT: #ffffff 1px solid; + BORDER-TOP: #ffffff 1px solid; + PADDING-LEFT: 3px +} +.issuecontent +{ + BACKGROUND-COLOR: #ffffff; + BORDER-BOTTOM: #dcdcdc 1px solid; + BORDER-TOP: #dcdcdc 1px solid; + PADDING-LEFT: 3px +} +A:link +{ + COLOR: #cc6633; + TEXT-DECORATION: underline +} +A:visited +{ + COLOR: #cc6633; +} +A:active +{ + COLOR: #cc6633; +} +A:hover +{ + COLOR: #cc3300; + TEXT-DECORATION: underline +} +H1 +{ + BACKGROUND-COLOR: #003366; + BORDER-BOTTOM: #336699 6px solid; + COLOR: #ffffff; + FONT-SIZE: 130%; + FONT-WEIGHT: normal; + MARGIN: 0em 0em 0em -20px; + PADDING-BOTTOM: 8px; + PADDING-LEFT: 30px; + PADDING-TOP: 16px +} +H2 +{ + COLOR: #000000; + FONT-SIZE: 80%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: 3px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 20px; + PADDING-LEFT: 0px +} +H3 +{ + COLOR: #000000; + FONT-SIZE: 80%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: -5px; + MARGIN-LEFT: 10px; + MARGIN-TOP: 20px +} +H4 +{ + COLOR: #000000; + FONT-SIZE: 70%; + FONT-WEIGHT: bold; + MARGIN-BOTTOM: 0px; + MARGIN-TOP: 15px; + PADDING-BOTTOM: 0px +} +UL +{ + COLOR: #000000; + FONT-SIZE: 70%; + LIST-STYLE: square; + MARGIN-BOTTOM: 0pt; + MARGIN-TOP: 0pt +} +OL +{ + COLOR: #000000; + FONT-SIZE: 70%; + LIST-STYLE: square; + MARGIN-BOTTOM: 0pt; + MARGIN-TOP: 0pt +} +LI +{ + LIST-STYLE: square; + MARGIN-LEFT: 0px +} +.expandable +{ + CURSOR: hand +} +.expanded +{ + color: black +} +.collapsed +{ + DISPLAY: none +} +.foot +{ +BACKGROUND-COLOR: #ffffff; +BORDER-BOTTOM: #cecf9c 1px solid; +BORDER-TOP: #cecf9c 2px solid +} +.settings +{ +MARGIN-LEFT: 25PX; +} +.help +{ +TEXT-ALIGN: right; +margin-right: 10px; +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/_UpgradeReport_Files/UpgradeReport.xslt b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/_UpgradeReport_Files/UpgradeReport.xslt new file mode 100644 index 00000000..2d033c54 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/_UpgradeReport_Files/UpgradeReport.xslt @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + Solution: + Project: + + + + + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + src + + + + + + + + + + + + +
    FilenameStatusErrorsWarnings
    + javascript:document.images[''].click()src + + + + Converted + + + + Converted + +
    + + files + + + 1 file + + + Converted:
    + Not converted: +
    +
    +
    + + + + : + + + + + + + + + Conversion Report + <xsl:if test="Properties/Property[@Name='LogNumber']"> + <xsl:value-of select="Properties/Property[@Name='LogNumber']/@Value"/> + </xsl:if> + + + + +

    Conversion Report -

    + +

    + Time of Conversion:
    +

    + + + + + + + + + + + + + + + + + + + + + + + + +

    + + + + + +
    + Conversion Settings +

    + + +
    +
    diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/_UpgradeReport_Files/UpgradeReport_Minus.gif b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/_UpgradeReport_Files/UpgradeReport_Minus.gif new file mode 100644 index 00000000..17751cb2 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/_UpgradeReport_Files/UpgradeReport_Minus.gif differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/_UpgradeReport_Files/UpgradeReport_Plus.gif b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/_UpgradeReport_Files/UpgradeReport_Plus.gif new file mode 100644 index 00000000..f6009ca3 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Spatial/_UpgradeReport_Files/UpgradeReport_Plus.gif differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/AssemblyInfo.cs new file mode 100644 index 00000000..9ff13181 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Utilities Wrapper Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4")] +[assembly: AssemblyCopyright("BSD License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/IAdvancedEngine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/IAdvancedEngine.cs new file mode 100644 index 00000000..e42faa26 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/IAdvancedEngine.cs @@ -0,0 +1,62 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The IAdvancedEngine interface is introduced in order to facilitate models + /// where different quantities are calculated base on different time step lengths. + /// One example of such model could be a multi-domain model such a models for combined + /// ground water and surface water. Typically the time step length for the ground + /// water calculations will be much longer that the time step length for the surface + /// water calculations. In the IEngine interface values are pulled from the engine + /// through the GetValues method, which returns a IValueSet. In this cases it will + /// be assumed that the accociated time is the current time which is obtained through + /// the IEngine interface through the GetCurrentTime. By use of the IAdvanceEngine + /// interface accociated values can be pulled from the engine through the + /// GetValues method that will return an instance of the TimeValues class, + /// which contains a IValueSet and the associated ITime. The IAdvanced i + /// nterface is implemented as a separate interface in order to facilitate + /// backward compatibility. + /// Summary description for IAdvancedEngine. + /// + public interface IAdvancedEngine : IEngine + { + /// + /// The GetValues method will return an instance of the TimeValues class, + /// which is the currently calculated values as IValueSet and the associated time as ITime. + /// + /// The Quantity ID for the requested values + /// The ElementSet ID for the requested values + /// TimeValueSet which is the calculated values and the associated time + new TimeValueSet GetValues(string quantityID, string ElementSetID); + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/IEngine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/IEngine.cs new file mode 100644 index 00000000..bc480d45 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/IEngine.cs @@ -0,0 +1,91 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The class Oatc.OpenMI.Sdk.Wrapper.LinkableEngine will access the model engine through + /// this interface. + /// + public interface IEngine : IRunEngine + { + + /// + /// Returns the ModelID. The ModelID identifies the populated model component. + /// Example: "River Rhine" + /// + /// ModelID + string GetModelID(); + + /// + /// Return the Model Description. The Model Description is a description of the populated + /// model component. + /// + /// Model description + string GetModelDescription(); + + /// + /// Return the time horison for the populated model compoent. The Time Horizon for a model i typically + /// the same as the simulation period, which normally depend on de available input data. When you model + /// is running in the OpenMI environment, the model component must be able to return values within the + /// TimeHorizon + /// + /// TimeHorizon + ITimeSpan GetTimeHorizon(); + + /// + /// Returns the number of input exchange items for the populated model component. + /// + /// InputExchangeItemCount + int GetInputExchangeItemCount(); + + /// + /// Returns the number of output exchange items for the populated model component. + /// + /// OutputExchangeItemCount + int GetOutputExchangeItemCount(); + + /// + /// Returns a specific output exchange item from the populated model component. + /// + /// index number + /// OutputExchangeItem according the the index number + OutputExchangeItem GetOutputExchangeItem(int exchangeItemIndex); + + /// + /// Returns a specific input exchange item from the populated model component. + /// + /// index number + /// InputExchangeItem according the the index number + InputExchangeItem GetInputExchangeItem(int exchangeItemIndex); + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/IRunEngine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/IRunEngine.cs new file mode 100644 index 00000000..90fb1d09 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/IRunEngine.cs @@ -0,0 +1,142 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; +using System.Runtime.Remoting; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The IRunEngine is the interface the ModelEngine component + /// The Class Oatc.OpenMI.Sdk.Wrapper.LinkableRunEngine will access the + /// model engine component through this interface. + /// + /// + /// None + /// + public interface IRunEngine + { + /// + /// Initialize will typically be invoked just after creation of the object + /// that implements the IRunEngine interface. + /// + /// + /// Hashtable with the same contents as the Component arguments + /// in the ILinkableComponent interface. Typically any information + /// needed for initialization of the model will be included in this table. + /// This could be path and file names for input files. + /// + void Initialize(Hashtable properties); + + /// + /// This method will be invoked after all computations are completed. Deallocation of memory + /// and closing files could be implemented in this method + /// + void Finish(); + + /// + /// This method will be invoked after all computations are completed + /// and after the Finish method has been invoked + /// + void Dispose(); + + /// + /// This method will make the model engine perform one time step. + /// + /// Returns true if the time step was completed, + /// otherwise it will return false + /// + bool PerformTimeStep(); + + /// + /// Get the current time of the model engine + /// + /// The current time for the model engine + ITime GetCurrentTime(); + + /// + /// Get the time for which the next input is needed for + /// a specific Quantity and ElementSet combination + /// + /// ID for the quantity + /// ID for the ElementSet + /// ITimeSpan or ITimeStamp + ITime GetInputTime(string QuantityID, string ElementSetID); + + /// + /// Get earlist needed time, which can be used + /// to clear the buffer. For most time stepping model engines this + /// time will be the time for the previous time step. + /// + /// TimeStamp + ITimeStamp GetEarliestNeededTime(); + + /// + /// Sets values in the model engine + /// + /// quantityID associated to the values + /// elementSetID associated to the values + /// The values + void SetValues(string QuantityID, string ElementSetID, IValueSet values); + + /// + /// Gets values from the model engine + /// + /// quantityID associated to the requested values + /// elementSetID associated to the requested values + /// The requested values + IValueSet GetValues(string QuantityID, string ElementSetID); + + /// + /// In some situations a valied values cannot be return when the + /// Oatc.OpenMI.Sdk.Wrapper.IRunEngine.GetValues is invoked. In such case a missing values + /// can be returned. The GetMissingValeusDefinition method can be used to query which definition + /// of a missing value that applies to this particular model component. Example of missing value + /// definition could be: -999.99 + /// + /// Missing value definition + double GetMissingValueDefinition(); + + /// + /// Get the ComponentID. The component ID is the name of the non-populated component. This is typically + /// the product name of your model engine. + /// + /// Component ID + string GetComponentID(); + + /// + /// Get a description of your component. This description refers to the non-populated component. This is + /// typically a description of what your component does and which methods that are used. E.g. "Finite element + /// based ground water model". + /// + /// Component description + string GetComponentDescription(); + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/LinearConversionDataOperation.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/LinearConversionDataOperation.cs new file mode 100644 index 00000000..d008533b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/LinearConversionDataOperation.cs @@ -0,0 +1,224 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The LinearDataOperation class is an implementation of the IDataOperation interface. + /// The LinearDataOperation can make linear conversion on ScalarSets. The ax+b type of operations. + /// + public class LinearConversionDataOperation : IDataOperation, ICloneable + { + Oatc.OpenMI.Sdk.Backbone.Argument[] _arguments; + bool _isActivated; + double _a; + double _b; + + /// + /// Constructor + /// + public LinearConversionDataOperation() + { + _arguments = new Oatc.OpenMI.Sdk.Backbone.Argument[3]; + + _arguments[0] = new Oatc.OpenMI.Sdk.Backbone.Argument(); + _arguments[0].Description = "Parameter A. Used in conversion: A*x + B"; + _arguments[0].Key = "Type"; + _arguments[0].Value = "Linear Conversion"; + _arguments[0].ReadOnly = true; + + _arguments[1] = new Oatc.OpenMI.Sdk.Backbone.Argument(); + _arguments[1].Description = "Parameter A. Used in conversion: A*x + B"; + _arguments[1].Key = "A"; + _arguments[1].Value = "1.0"; + _arguments[1].ReadOnly = false; + + _arguments[2] = new Oatc.OpenMI.Sdk.Backbone.Argument(); + _arguments[2].Description = "Parameter B. Used in conversion: A*x + B"; + _arguments[2].Key = "B"; + _arguments[2].Value = "0.0"; + _arguments[2].ReadOnly = false; + + _isActivated = false; + } + + #region IDataOperation Members + + /// + /// DataOperation ID. In this class always "Linear Conversions" (is hardcoded) + /// + public string ID + { + get + { + return "Linear Conversion"; + } + } + + /// + /// The linear dataoperation is valid for any input and output exchange items and can be combined with any other + /// dataopertion, consequently this method always return true. + /// See also documentation for : OpenMI.Standard.IDataOperation for details + /// + /// inputExchangeItem + /// outputExchangeItem + /// SelectedDataOperations + /// + public bool IsValid(IInputExchangeItem inputExchangeItem, IOutputExchangeItem outputExchangeItem, IDataOperation[] SelectedDataOperations) + { + return true; + } + + /// + /// Number of dataoperation arguments. For the Linear dataoperation this number is always 3 (coefficient a, offset b and description text) + /// + public int ArgumentCount + { + get + { + return _arguments.Length; + } + } + + /// + /// Initialises the data operation. Nothing is done for the Linear dataoperation + /// + /// arguments + public void Initialize(IArgument[] properties) + { + + } + + /// + /// Returns the arguments for the Linear Dataoperation + /// + /// Argument index + /// + public IArgument GetArgument(int argumentIndex) + { + + return (IArgument) _arguments[argumentIndex]; + } + + #endregion + + /// + /// The prepare method should be called before the PerformDataOperation. This method is + /// not part of the OpenMI.Standard.IDataOperation interface. This method will convert + /// the arguments which originally are defined as strings to doubles and subsequently assign + /// these values to private field variables. The prepare method is introduced for performance + /// reasons. + /// + public void Prepare() + { + + bool argumentAWasFound = false; + bool argumentBWasFound = false; + + _isActivated = true; + + for (int i = 0; i < this._arguments.Length; i++) + { + if (_arguments[i].Key == "A") + { + _a = Convert.ToDouble(_arguments[i].Value); + argumentAWasFound = true; + } + + if (_arguments[i].Key == "B") + { + _b = Convert.ToDouble(_arguments[i].Value); + argumentBWasFound = true; + } + } + if (!argumentAWasFound || !argumentBWasFound) + { + throw new Exception("Missing argument in data operation: \"Linear Conversion\""); + } + } + + /// + /// The ValueSet is converted. This method does not support VectorSet, so if the ValueSet is a Vectorset + /// an exception will be thrown. The parameters passed in this method is not used, since all needed information + /// is already assigned in the Prepare method. + /// + /// argumens but not used in this method + /// The converted ValueSet + public IValueSet PerformDataOperation(IValueSet values) + { + if (_isActivated) + { + if (!(values is IScalarSet)) + { + throw new Exception("The Oatc.OpenMI.Sdk.Wrapper packages only supports ScalarSets (Not VectorSets)"); + } + + double[] x = new double[values.Count]; + + for (int i = 0; i < values.Count; i++) + { + x[i] = ((IScalarSet) values).GetScalar(i) * _a + _b; + } + + return ((IValueSet) new ScalarSet(x)); + } + + return values; // return the values unchanged. + } + + #region ICloneable Members + + /// + /// Creates a copy of the current instance. + /// + /// Copy of the instance + public object Clone() + { + LinearConversionDataOperation clone = new LinearConversionDataOperation(); + clone._a = _a; + clone._b = _b; + clone._isActivated = _isActivated; + clone._arguments = new Argument[ArgumentCount]; + for(int i=0; i + /// The LinkableEngine class inplements the ILinkableComponent interface. + /// In normal usage of the Wrapper package, the person migrating a model will inherit + /// his own class from this class. The LinkableEngine class is an abstract class due to the + /// abstract method SetEngineApiAccess. This method must be overridden in the derived class. + /// + /// Implementation of the ILinkableComponent methods are done partly in this class (LinkebleEngine class) + /// and partly in the parent class LinkableRunEngine class. There are historical reasons for + /// dividing the implementation into two classes, and basically the LinkebleEngine class and the + /// LinkebleRunEngine class could be merged. However, in order to keep the backward compatibility + /// the two classes still exists. + /// + public abstract class LinkableEngine : LinkableRunEngine + { + /// + /// constructor + /// + public LinkableEngine() + { + } + + #region IExchangeModel Members + + /// + /// Number of input exchange items + /// + public override int InputExchangeItemCount + { + get + { + return ((IEngine)_engineApiAccess).GetInputExchangeItemCount(); + } + } + + /// + /// Get an input exchange item + /// + /// index of the requested input exchange item + /// The input exchange item + public override IInputExchangeItem GetInputExchangeItem(int index) + { + return (IInputExchangeItem) ((IEngine)_engineApiAccess).GetInputExchangeItem(index); + } + + /// + /// Number of output exchange items + /// + public override int OutputExchangeItemCount + { + get + { + return ((IEngine)_engineApiAccess).GetOutputExchangeItemCount(); + } + } + + /// + /// get a output exchange item + /// + /// index number of the requested output exchange item + /// The requested exchange item + public override IOutputExchangeItem GetOutputExchangeItem(int index) + { + OutputExchangeItem outputExchangeItem = ((IEngine)_engineApiAccess).GetOutputExchangeItem(index); + + //Add dataoperations to outputExchangeItems + ElementMapper elementMapper = new ElementMapper(); + ArrayList dataOperations = new ArrayList(); + dataOperations = elementMapper.GetAvailableDataOperations(outputExchangeItem.ElementSet.ElementType); + bool spatialDataOperationExists; + bool linearConversionDataOperationExists; + bool smartBufferDataOperationExists; + foreach (IDataOperation dataOperation in dataOperations) + { + spatialDataOperationExists = false; + foreach (IDataOperation existingDataOperation in outputExchangeItem.DataOperations) + { + if (dataOperation.ID == existingDataOperation.ID) + { + spatialDataOperationExists = true; + } + } + + if (!spatialDataOperationExists) + { + outputExchangeItem.AddDataOperation(dataOperation); + } + } + + IDataOperation linearConversionDataOperation = new LinearConversionDataOperation(); + linearConversionDataOperationExists = false; + foreach (IDataOperation existingDataOperation in outputExchangeItem.DataOperations) + { + if (linearConversionDataOperation.ID == existingDataOperation.ID) + { + linearConversionDataOperationExists = true; + } + } + + if (!linearConversionDataOperationExists) + { + outputExchangeItem.AddDataOperation(new LinearConversionDataOperation()); + } + + IDataOperation smartBufferDataOperaion = new SmartBufferDataOperation(); + smartBufferDataOperationExists = false; + foreach (IDataOperation existingDataOperation in outputExchangeItem.DataOperations) + { + if (smartBufferDataOperaion.ID == existingDataOperation.ID) + { + smartBufferDataOperationExists = true; + } + } + + if (!smartBufferDataOperationExists) + { + outputExchangeItem.AddDataOperation(new SmartBufferDataOperation()); + } + + return (IOutputExchangeItem) outputExchangeItem; + } + + + /// + /// Model description + /// + public override string ModelDescription + { + get + { + return ((Oatc.OpenMI.Sdk.Wrapper.IEngine) _engineApiAccess).GetModelDescription(); + } + } + + /// + /// Model ID + /// + public override string ModelID + { + get + { + if (_engineApiAccess != null) + { + return ((Oatc.OpenMI.Sdk.Wrapper.IEngine) _engineApiAccess).GetModelID(); + } + else + { + return null; + } + } + } + + /// + /// Time TimeHorizon for the model, which is the time period in which the model can be requested + /// for values + /// + public override ITimeSpan TimeHorizon + { + get + { + return ((IEngine) _engineApiAccess).GetTimeHorizon(); + } + } + + /// + /// The SetEngineApiAccess() method is abstract and as such should be overridden in the derived class. + /// This method should set the reference to the class that implements the IEngine interface. + /// The property EngineApiAccess, which is implemented in the LinkableRunEngine class is used + /// to assign this reference. + /// + protected override abstract void SetEngineApiAccess(); + + #endregion + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/LinkableRunEngine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/LinkableRunEngine.cs new file mode 100644 index 00000000..82ea2d3a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/LinkableRunEngine.cs @@ -0,0 +1,848 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using System.Runtime.Remoting; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The LinkableRunEngine implements the run time part of the ILinkableComponent interface. + /// The remaining methods are implemented in the derived LinkableEngine class. There are + /// historical reasons for splitting the functionality between the two classes. + /// The LinkableRunEngine class and the LinkableEngine class could be merged, + /// but for the time being these are keeps as they are in order to support backward compatibility. + /// + [Serializable] + public abstract class LinkableRunEngine : LinkableComponent + { + + //TODO: The elementset version number should be checked and the elementmapper + //called in order to update the mapping a matrix when the version has changed + + /// + /// List of SmartInputLinks + /// + protected ArrayList _smartInputLinks; + + /// + /// List of SmartOutput Links + /// + protected ArrayList _smartOutputLinks; + + /// + /// Reference to the engine. Must be assigned in the derived class + /// + protected IRunEngine _engineApiAccess; + + /// + /// True if the _engineApiAccess was assigned + /// + protected bool _engineWasAssigned; + + /// + /// True if the Initialize method was invoked + /// + protected bool _initializeWasInvoked; + + /// + /// True if the Prepare method was invoked + /// + protected bool _prepareForCompotationWasInvoked; + + /// + /// True if the component is gathering data from other LinkableComponents + /// + protected bool _isBusy; + + /// + /// Arraylist of published event types + /// + protected ArrayList _publishedEventTypes; + + /// + /// used when comparing time in the IsLater method (see property TimeEpsilon) + /// + protected double _timeEpsilon; // used when comparing time in the IsLater method (see property TimeEpsilon) + + /// + /// Current validation string from the Validate method + /// + protected ArrayList _validationWarningMessages; + + /// + /// The current validateion error message + /// + protected ArrayList _validationErrorMessages; + + + /// + /// Constructor method for the LinkableRunEngine class + /// + public LinkableRunEngine() + { + _engineWasAssigned = false; + _initializeWasInvoked = false; + _prepareForCompotationWasInvoked = false; + _timeEpsilon = 0.10 * 1.0 / (3600.0 * 24.0); + + + _publishedEventTypes = new ArrayList(); + _publishedEventTypes.Add(EventType.DataChanged); + _publishedEventTypes.Add(EventType.Informative); + _publishedEventTypes.Add(EventType.SourceAfterGetValuesCall); + _publishedEventTypes.Add(EventType.SourceBeforeGetValuesReturn); + _publishedEventTypes.Add(EventType.TargetAfterGetValuesReturn); + _publishedEventTypes.Add(EventType.TargetBeforeGetValuesCall); + + _validationWarningMessages = new ArrayList(); + _validationErrorMessages = new ArrayList(); + + _smartInputLinks = new ArrayList(); + _smartOutputLinks = new ArrayList(); + + } + + /// + /// Implementation of the same method in the + /// OpenMI.Standard.ILinkableComponent interface + /// + public override ITimeStamp EarliestInputTime + { + get + { + return (_engineApiAccess.GetEarliestNeededTime()); + } + } + + /// + /// This _timeEpsilon variable is used when comparing the current time in the engine with + /// the time specified in the parameters for the GetValue method. + /// if ( requestedTime > engineTime + _timeEpsilon) then PerformTimestep().. + /// The default values for _timeEpsilon is double.Epsilon = 4.94065645841247E-324 + /// The default value may be too small for some engines, in which case the _timeEpsilon can + /// be changed the class that you have inherited from LinkableRunEngine og LinkableEngine. + /// + public double TimeEpsilon + { + get + { + return _timeEpsilon; + } + set + { + _timeEpsilon = value; + } + } + + /// + /// Add a link to the LinkableComponent + /// + /// The Link + public override void AddLink(ILink newLink) + { + try + { + if (!_initializeWasInvoked) + { + throw new System.Exception("AddLink method in the SmartWrapper cannot be invoked before the Initialize method has been invoked"); + } + if (_prepareForCompotationWasInvoked) + { + throw new System.Exception("AddLink method in the SmartWrapper cannot be invoked after the PrepareForComputation method has been invoked"); + } + + if(newLink.TargetComponent == this) + { + _smartInputLinks.Add (this.CreateInputLink(this._engineApiAccess, newLink)); + } + else if(newLink.SourceComponent == this) + { + this._smartOutputLinks.Add (this.CreateOutputLink(this._engineApiAccess, newLink)); + } + else + { + throw new System.Exception("SourceComponent.ID or TargetComponent.ID in Link does not match the Component ID for the component to which the Link was added"); + } + } + catch (System.Exception e) + { + string message = "Exception in LinkableComponent. "; + message += "ComponentID: " + this.ComponentID + "\n"; + throw new System.Exception(message,e); + } + } + + /// + /// Creates a new input link + /// + /// The engine + /// The link + /// The new input link + public virtual SmartInputLink CreateInputLink(IRunEngine engine, ILink link) + { + return new SmartInputLink (engine, link); + } + + /// + /// Creates a new output link + /// + /// The engine + /// The link + /// The new output link + public virtual SmartOutputLink CreateOutputLink(IRunEngine engine, ILink link) + { + SmartOutputLink smartOutputLink = new SmartOutputLink (engine, link); + smartOutputLink.Initialize(); + return smartOutputLink; + } + + /// + /// Implementaion of the same method in the + /// OpenMI.Standard.ILinkableComponent + /// + public override void Dispose() + { + _engineApiAccess.Dispose(); + } + + /// + /// Implementation of the same method in + /// OpenMI.Standard.ILInkableComponent + /// + /// Time (ITimeSpan or ITimeStamp) for which values are requested + /// LinkID associated to the requested values + /// The values + public override IValueSet GetValues(ITime time, string LinkID) + { + try + { + CheckTimeArgumentInGetvaluesMethod(time); + SendSourceAfterGetValuesCallEvent(time, LinkID); + IValueSet engineResult = new ScalarSet(); + + int outputLinkIndex = -999; + for (int i = 0; i < _smartOutputLinks.Count; i++) + { + if ( ((SmartOutputLink) _smartOutputLinks[i]).link.ID == LinkID) + { + outputLinkIndex = i; + break; + } + } + + if (_isBusy==false) + { + //while(IsLater(time,_engineApiAccess.GetCurrentTime())) + while(IsLater(time, ((SmartOutputLink) _smartOutputLinks[outputLinkIndex]).GetLastBufferedTime())) + { + _isBusy=true; + + //Update input links + foreach(SmartInputLink smartInputLink in _smartInputLinks) + { + smartInputLink.UpdateInput(); + } + _isBusy=false; + + //Perform Timestep + if(_engineApiAccess.PerformTimeStep()) + { + //Update buffer with engine values, Time is timestamp + foreach (SmartOutputLink smartOutputLink in _smartOutputLinks) + { + smartOutputLink.UpdateBuffer(); + } + + SendEvent(EventType.DataChanged); + } + } + } + + engineResult = ((SmartOutputLink)_smartOutputLinks[outputLinkIndex]).GetValue(time); + + SendEvent(EventType.SourceBeforeGetValuesReturn); + return engineResult; + + } + catch (System.Exception e) + { + string message = "Exception in LinkableComponent. ComponentID: "; + message += this.ComponentID; + throw new System.Exception(message,e); + } + } + + + /// + /// Description of the component + /// + public override string ComponentDescription + { + get + { + return _engineApiAccess.GetComponentDescription(); + } + } + + + /// + /// ID for the component + /// + public override string ComponentID + { + get + { + if (_engineApiAccess != null) + { + return _engineApiAccess.GetComponentID(); + } + else + { + return null; + } + } + } + + /// + /// Finish + /// + public override void Finish() + { + _engineApiAccess.Finish(); + + } + + /// + /// Initialize + /// + /// Initialization parameters + public override void Initialize(IArgument[] properties) + { + System.Collections.Hashtable hashtable =new Hashtable(); + for(int i = 0; i < properties.Length;i++) + { + hashtable.Add(properties[i].Key,properties[i].Value); + } + + SetEngineApiAccess(); + this._engineWasAssigned = true; + _engineApiAccess.Initialize(hashtable); + + if (!_engineWasAssigned) + { + throw new System.Exception("The Initialize method in the SmartWrapper cannot be invoked before the EngineApiAccess is assigned" ); + } + + _initializeWasInvoked = true; + } + + /// + /// Prepare. This method will be invoked after end of configuration and before the first GetValues call + /// + public override void Prepare() + { + try + { + if (!_engineWasAssigned) + { + throw new System.Exception("PrepareForComputation method in SmartWrapper cannot be invoked before the EngineApiAccess has been assigned"); + } + + if (!_initializeWasInvoked) + { + throw new System.Exception("PrepareForComputation method in SmartWrapper cannot be invoked before the Initialize method has been invoked"); + } + + Validate(); + + if (_validationErrorMessages.Count > 0) + { + string errorMessage = ""; + foreach (string str in _validationErrorMessages) + { + errorMessage += "Error: " + str + ". "; + } + + throw new Exception(errorMessage); + + } + + foreach (SmartOutputLink smartOutputLink in _smartOutputLinks) + { + smartOutputLink.UpdateBuffer(); + } + + _prepareForCompotationWasInvoked = true; + } + catch (System.Exception e) + { + string message = "Exception in LinkableComponent. "; + message += "ComponentID: " + this.ComponentID + "\n"; + throw new System.Exception(message,e); + } + } + + /// + /// Remove a link + /// + /// Link ID for the link to be removed + public override void RemoveLink(string LinkID) + { + try + { + if (!_initializeWasInvoked) + { + throw new Exception("Illegal invocation of RemoveLink method before invocation of Initialize method"); + } + + if (_prepareForCompotationWasInvoked) + { + throw new Exception("Illegal invocation of RemoveLink method after invocation of Prepare method"); + } + + + int index = -999; + for (int i = 0; i < _smartInputLinks.Count; i++) + { + if (((SmartInputLink)_smartInputLinks[i]).link.ID == LinkID) + { + index = i; + break; + } + } + + if (index != -999) + { + _smartInputLinks.RemoveAt(index); + } + else + { + for (int i = 0; i < _smartOutputLinks.Count; i++) + { + if(((SmartOutputLink) _smartOutputLinks[i]).link.ID == LinkID) + { + index = i; + break; + } + } + _smartOutputLinks.RemoveAt(index); + } + + if (index == -999) + { + throw new Exception("Failed to find link.ID in internal link lists in method RemoveLink()"); + } + + } + catch (System.Exception e) + { + string message = "Exception in LinkableComponent. "; + message += "ComponentID: " + this.ComponentID + "\n"; + throw new System.Exception(message,e); + } + } + + /// + /// Returns an array of input ILink which contains links already added to this component. + /// + /// Returns an array of ILink which contains links already added to this component + public override ILink[] GetAcceptingLinks() + { + ArrayList links = new ArrayList(); + + foreach (SmartInputLink smartLink in _smartInputLinks) + { + links.Add (smartLink.link); + } + + return (ILink[]) links.ToArray(typeof(ILink)); + } + + /// + /// Returns an array of output ILink which contains links already added to this component. + /// + /// Returns an array of output ILink which contains links already added to this component. + public override ILink[] GetProvidingLinks() + { + ArrayList links = new ArrayList(); + + foreach (SmartOutputLink smartLink in _smartOutputLinks) + { + links.Add (smartLink.link); + } + + return (ILink[]) links.ToArray(typeof(ILink)); + } + + + /// + /// Get the reference to the engine + /// + public IRunEngine EngineApiAccess + { + get + { + return _engineApiAccess; + } + } + + /// + /// Set reference to the engine + /// + protected abstract void SetEngineApiAccess(); + + /// + /// Keep Curren state + /// + /// ID for the state keept + public virtual string KeepCurrentState() + { + if (_engineApiAccess is IManageState) + { + string stateID; + stateID = ((IManageState) _engineApiAccess).KeepCurrentState(); + foreach (SmartOutputLink smartOutputLink in _smartOutputLinks) + { + smartOutputLink.KeepCurrentBufferState(stateID); + } + return stateID; + } + else + { + throw new Exception("KeepCurrentState was called but the engine does not implement IManageState"); + } + } + + /// + /// Restore a state + /// + /// ID for the state to restore + public virtual void RestoreState(string stateID) + { + if (_engineApiAccess is IManageState) + { + ((IManageState) _engineApiAccess).RestoreState(stateID); + + foreach (SmartOutputLink smartOutputLink in _smartOutputLinks) + { + smartOutputLink.RestoreBufferState(stateID); + } + } + else + { + throw new Exception("RestoreState was called but the engine does not implement IManageState"); + } + + } + + /// + /// Clear a state + /// + /// ID for the state to clear + public virtual void ClearState(string stateID) + { + if (_engineApiAccess is IManageState) + { + ((IManageState) _engineApiAccess).ClearState(stateID); + + foreach (SmartOutputLink smartOutputLink in _smartOutputLinks) + { + smartOutputLink.ClearBufferState(stateID); + } + } + else + { + throw new Exception("ClearState was called but the engine does not implement IManageState"); + } + } + + + /// + /// Get the published event types. + /// + /// index for the requested event type + /// the requested event type + public override EventType GetPublishedEventType(int providedEventTypeIndex) + { + return (EventType) _publishedEventTypes[providedEventTypeIndex]; + } + + /// + /// Get the number of published event types + /// + /// Number of published event types + public override int GetPublishedEventTypeCount() + { + return _publishedEventTypes.Count; + } + + /// + /// Convert a ITime object to a ITimeStamp. + /// + /// The ITime object to convert + /// The converted time + public static Oatc.OpenMI.Sdk.Backbone.TimeStamp TimeToTimeStamp(ITime time) + { + Oatc.OpenMI.Sdk.Backbone.TimeStamp t; + + if (time is ITimeStamp) + { + t = new Oatc.OpenMI.Sdk.Backbone.TimeStamp(((ITimeStamp) time).ModifiedJulianDay); + } + else + { + t = new Oatc.OpenMI.Sdk.Backbone.TimeStamp(((ITimeSpan) time).End.ModifiedJulianDay); + } + + return t; + } + + /// + /// Will compare two times. If the first argument t1, is later than the second argument t2 + /// the method will return true. Otherwise false will be returned. t1 and t2 can be of types + /// ITimeSpan or ITimeStamp. + /// + /// First time + /// Second time + /// isLater + protected bool IsLater(ITime t1, ITime t2) + { + double mt1, mt2; + bool isLater = false; + + mt1 = TimeToTimeStamp(t1).ModifiedJulianDay; + mt2 = TimeToTimeStamp(t2).ModifiedJulianDay; + + if (mt1 > mt2 + _timeEpsilon) + { + isLater = true; + } + else + { + isLater = false; + } + + return isLater; + + } + + /// + /// Converts a ITime object to a formatted string + /// + /// The time to convert + /// The formatted string + public static string ITimeToString(ITime time) + { + string timeString; + + if (time is ITimeStamp) + { + timeString = (CalendarConverter.ModifiedJulian2Gregorian(((ITimeStamp) time).ModifiedJulianDay)).ToString(); + } + else if (time is ITimeSpan) + { + timeString = "[" + (CalendarConverter.ModifiedJulian2Gregorian(((ITimeSpan) time).Start.ModifiedJulianDay)).ToString() + ", " + (CalendarConverter.ModifiedJulian2Gregorian(((ITimeSpan) time).End.ModifiedJulianDay)).ToString() + "]"; + } + else + { + throw new System.Exception("Illigal type used for time, must be OpenMI.Standard.ITimeStamp or OpenMI.Standard.TimeSpan"); + } + + return timeString; + } + + /// + /// Model descscription + /// + public override abstract string ModelDescription + { + get; + } + + /// + /// Model ID + /// + public override abstract string ModelID + { + get; + } + + /// + /// Time Horizon + /// + public override abstract ITimeSpan TimeHorizon + { + get; + } + + /// + /// Number of input exchange items + /// + public override abstract int InputExchangeItemCount + { + get; + } + + /// + /// number of output exchange items + /// + public override abstract int OutputExchangeItemCount + { + get; + } + + /// + /// get an input exchange item + /// + /// index number for the requested input exchange item + /// the requested input exchange item + public override abstract IInputExchangeItem GetInputExchangeItem(int index); + + + /// + /// get an output exchange item. + /// + /// index number for the requested exchange item + /// the requested exchange item + public override abstract IOutputExchangeItem GetOutputExchangeItem(int index); + + private ArrayList GetAllLinks() + { + ArrayList links = new ArrayList(); + + foreach (SmartInputLink inputLink in _smartInputLinks) + { + links.Add(inputLink.link); + } + + foreach (SmartOutputLink outputLink in _smartOutputLinks) + { + links.Add(outputLink.link); + } + return links; + } + + /// + /// Validate the component + /// + /// Empty string if no warnings were issued, or a description if there were warnings + public override string Validate() + { + _validationErrorMessages.Clear(); + _validationWarningMessages.Clear(); + + foreach (SmartLink link in _smartInputLinks) + { + _validationErrorMessages.AddRange (link.GetErrors()); + _validationWarningMessages.AddRange (link.GetWarnings()); + } + + foreach (SmartLink link in _smartOutputLinks) + { + _validationErrorMessages.AddRange (link.GetErrors()); + _validationWarningMessages.AddRange (link.GetWarnings()); + } + + string validationString = ""; + foreach (string str in _validationErrorMessages) + { + validationString += "Error: " + str + " "; + } + + foreach (string str in _validationWarningMessages) + { + validationString += "Warning: " + str + ". "; + } + + return validationString; + } + + private void CheckTimeArgumentInGetvaluesMethod(ITime time) + { + if (time is ITimeSpan) + { + if (this._engineApiAccess is IEngine) + { + if (IsLater(((IEngine)this._engineApiAccess).GetTimeHorizon().Start, ((ITimeSpan)time).Start)) + { + throw new Exception("GetValues method was invoked using a time argument that representes a time before the allowed time horizon"); + } + if (IsLater(((ITimeSpan)time).End, ((IEngine)this._engineApiAccess).GetTimeHorizon().End)) + { + throw new Exception("GetValues method was invoked using a time argument that representes a time that is after the allowed time horizon"); + } + } + } + else if (time is ITimeStamp) + { + if (this._engineApiAccess is IEngine) + { + if (IsLater(((IEngine)this._engineApiAccess).GetTimeHorizon().Start, (ITimeStamp)time)) + { + throw new Exception("GetValues method was invoked using a time argument that representes a time before the allowed time horizon"); + } + if (IsLater((ITimeStamp)time, ((IEngine)this._engineApiAccess).GetTimeHorizon().End)) + { + throw new Exception("GetValues method was invoked using a time argument that representes a time that is after the allowed time horizon"); + } + } + } + else + { + throw new Exception("Illegal data type for time was used in argument to GetValues method. Type must be OpenMI.Standard.ITimeStamp or ITimeSpan"); + } + } + + private void SendSourceAfterGetValuesCallEvent(ITime time, string LinkID) + { + Oatc.OpenMI.Sdk.Backbone.Event eventA = new Oatc.OpenMI.Sdk.Backbone.Event(EventType.SourceAfterGetValuesCall); + eventA.Description = "GetValues(t = " + ITimeToString(time) + ", "; + eventA.Description += "LinkID: " + LinkID; //TODO: QS = " + _smartOutputLinkSet.GetLink(LinkID).SourceQuantity.ID + " ,QT = " + _smartOutputLinkSet.GetLink(LinkID).TargetQuantity.ID; + eventA.Description += ") <<<==="; + eventA.Sender = this; + eventA.SimulationTime = TimeToTimeStamp(_engineApiAccess.GetCurrentTime()); + eventA.SetAttribute("GetValues time argument : ",ITimeToString(time)); + SendEvent(eventA); + } + + private void SendEvent( EventType eventType) + { + Oatc.OpenMI.Sdk.Backbone.Event eventD = new Oatc.OpenMI.Sdk.Backbone.Event(eventType); + eventD.Description = eventType.ToString(); + eventD.Sender = this; + eventD.SimulationTime = TimeToTimeStamp(_engineApiAccess.GetCurrentTime()); + SendEvent(eventD); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/Oatc.OpenMI.Sdk.Wrapper.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/Oatc.OpenMI.Sdk.Wrapper.csproj new file mode 100644 index 00000000..a7f81bd8 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/Oatc.OpenMI.Sdk.Wrapper.csproj @@ -0,0 +1,197 @@ + + + + Local + 8.0.50727 + 2.0 + {3DF52260-A727-405B-88A8-630BCE9085AC} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Wrapper + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Wrapper + OnBuildSuccess + + + + + + + false + 3.5 + v4.0 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + ..\..\..\..\..\..\..\Binaries\Plugins\HydroModeler\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ..\..\ + false + 285212672 + false + + + TRACE + bin\Release\Oatc.OpenMI.Sdk.Wrapper.XML + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\OpenMI.Standard\src\csharp\bin\OpenMI.Standard.dll + False + + + System + + + System.Data + + + System.Runtime.Remoting + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + False + + + {C9844E74-074D-46FA-AEF6-371B3481468B} + Oatc.OpenMI.Sdk.Buffer + False + + + {B7BE8C7F-0679-4022-81A5-6A314C058429} + Oatc.OpenMI.Sdk.DevelopmentSupport + False + + + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C} + Oatc.OpenMI.Sdk.Spatial + False + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/SmartBufferDataOperation.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/SmartBufferDataOperation.cs new file mode 100644 index 00000000..02d98593 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/SmartBufferDataOperation.cs @@ -0,0 +1,215 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The SmartBuffer data operation class is used to define the temporal relaxations factors and to define the level of validation + /// + public class SmartBufferDataOperation : IDataOperation, ICloneable + { + Oatc.OpenMI.Sdk.Backbone.Argument[] _arguments; + double _relaxationFactor; + bool _doExtendedValidation; + bool _isActivated; + + /// + /// Constructor + /// + public SmartBufferDataOperation() + { + _arguments = new Oatc.OpenMI.Sdk.Backbone.Argument[3]; + + _arguments[0] = new Oatc.OpenMI.Sdk.Backbone.Argument(); + _arguments[0].Description = "Arguments associated the buffering and extrapolation"; + _arguments[0].Key = "Type"; + _arguments[0].Value = "SmartBuffer Arguments"; + _arguments[0].ReadOnly = true; + + _arguments[1] = new Oatc.OpenMI.Sdk.Backbone.Argument(); + _arguments[1].Description = "Relaxation factor used for temporal extrapolation must be in the interval [0.0,1.0]"; + _arguments[1].Key = "Relaxation Factor"; + _arguments[1].Value = "0.0"; + _arguments[1].ReadOnly = false; + + _arguments[2] = new Oatc.OpenMI.Sdk.Backbone.Argument(); + _arguments[2].Description = "Do extended validation. Must be \"true\" or \"false\""; + _arguments[2].Key = "Do Extended Data Validation"; + _arguments[2].Value = "true"; + _arguments[2].ReadOnly = false; + + _isActivated = false; + } + #region IDataOperation Members: + + /// + /// Data operation ID + /// + public string ID + { + get + { + return "Buffering and temporal extrapolation"; + } + } + + /// + /// This data operation can be combined with any other data operation, so this method always return true + /// + /// input exchange items + /// output exchange items + /// the selected data operations + /// true if valid, false if invalid + public bool IsValid(IInputExchangeItem inputExchangeItem, IOutputExchangeItem outputExchangeItem, IDataOperation[] SelectedDataOperations) + { + return true; + } + + /// + /// Number of arguments + /// + public int ArgumentCount + { + get + { + return _arguments.Length; + } + } + + /// + /// Initialize + /// + /// parameters + public void Initialize(IArgument[] properties) + { + + } + + /// + /// get argument + /// + /// index for the requested argument + /// the requested argument + public IArgument GetArgument(int argumentIndex) + { + return _arguments[argumentIndex]; + } + + #endregion + + /// + /// prepare + /// + public void Prepare() + { + bool argumentRelaxationFactorWasFound = false; + bool argumentDoExtendedValidationWasFound = false; + + _isActivated = true; + + for (int i = 0; i < this._arguments.Length; i++) + { + if (_arguments[i].Key == _arguments[1].Key) //Relaxation Factor + { + _relaxationFactor = Convert.ToDouble(_arguments[i].Value); + argumentRelaxationFactorWasFound = true; + } + + if (_arguments[i].Key == _arguments[2].Key) //Do extended validation + { + _doExtendedValidation = Convert.ToBoolean(_arguments[i].Value); + argumentDoExtendedValidationWasFound = true; + } + } + if (!argumentRelaxationFactorWasFound || !argumentDoExtendedValidationWasFound) + { + throw new Exception("Missing argument in data operation: \"Linear Conversion\""); + } + } + + /// + /// If true the component will do extended data validation + /// + public bool DoExtendedValidation + { + get + { + if (!_isActivated) + { + throw new Exception("Attemt to use DoExtendedValidation property in SmartBufferDataOperation before the prepare() method was invoked"); + } + return _doExtendedValidation; + } + } + + /// + /// Relaxation factor for temporal extrapolation + /// + public double RelaxationFactor + { + get + { + if (!_isActivated) + { + throw new Exception("Attemt to use Relaxation property in SmartBufferDataOperation before the prepare() method was invoked"); + } + return _relaxationFactor; + } + } + + #region ICloneable Members + + /// + /// Creates a copy of the current instance. + /// + /// Copy of the instance + public object Clone() + { + SmartBufferDataOperation clone = new SmartBufferDataOperation(); + clone._relaxationFactor = _relaxationFactor; + clone._doExtendedValidation = _doExtendedValidation; + clone._isActivated = _isActivated; + clone._arguments = new Argument[ArgumentCount]; + for (int i = 0; i < ArgumentCount; i++) + { + clone._arguments[i] = new Oatc.OpenMI.Sdk.Backbone.Argument(); + clone._arguments[i].Description = _arguments[i].Description; + clone._arguments[i].Key = _arguments[i].Key; + clone._arguments[i].ReadOnly = _arguments[i].ReadOnly; + clone._arguments[i].Value = _arguments[i].Value; + } + return clone; + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/SmartInputLink.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/SmartInputLink.cs new file mode 100644 index 00000000..711de4c5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/SmartInputLink.cs @@ -0,0 +1,112 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Runtime.Remoting; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The SmartInputLink contains the ILink object. The smart input link + /// has a reference to the engine, which enables the SmartInputLink to update input. + /// + [Serializable] + public class SmartInputLink : SmartLink + { + + /// + /// Constructor + /// + /// Reference to the engine + /// Reference to the link + public SmartInputLink(IRunEngine engine, ILink link) + { + this._link = link; + this._engine = engine; + } + + /// + /// Retrieves data from the providing LinkableComponent as defined + /// in the Link and sets this data in the engine + /// + public virtual void UpdateInput() + { + ITime inputTime = this._engine.GetInputTime(link.TargetQuantity.ID, link.TargetElementSet.ID); + + if (inputTime != null) + { + SendEvent(EventType.TargetBeforeGetValuesCall, this.link.TargetComponent); + IScalarSet sourceValueSet = (IScalarSet)link.SourceComponent.GetValues(inputTime, link.ID); + + //The input values set is copied in ordet to avoid the risk that it is changed be the provider. + + double targetMissValDef = this._engine.GetMissingValueDefinition(); + ScalarSet targetValueSet = new ScalarSet(sourceValueSet); + + for (int i = 0; i < sourceValueSet.Count; i++) + { + if (!sourceValueSet.IsValid(i)) + { + targetValueSet.data[i] = targetMissValDef; + } + } + + targetValueSet.MissingValueDefinition = targetMissValDef; + targetValueSet.CompareDoublesEpsilon = targetMissValDef / 1.0e+10; + SendEvent(EventType.TargetAfterGetValuesReturn, this.link.TargetComponent); + this.Engine.SetValues(link.TargetQuantity.ID, link.TargetElementSet.ID, targetValueSet); + } + } + + /// + /// Send event + /// + /// the event type to send + /// reference to the sender (this) + public void SendEvent( EventType eventType, ILinkableComponent sender) + { + if (((Oatc.OpenMI.Sdk.Backbone.LinkableComponent)this.link.TargetComponent).HasListeners()) + { + Oatc.OpenMI.Sdk.Backbone.Event eventD = new Oatc.OpenMI.Sdk.Backbone.Event(eventType); + eventD.Description = eventType.ToString(); + eventD.Sender = sender; + ITime t = this._engine.GetCurrentTime(); + if (t is ITimeStamp) + { + eventD.SimulationTime = t as ITimeStamp; + } + else + { + eventD.SimulationTime = ((ITimeSpan)this._engine.GetCurrentTime()).End; + } + this.link.TargetComponent.SendEvent(eventD); + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/SmartLink.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/SmartLink.cs new file mode 100644 index 00000000..3a0bea28 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/SmartLink.cs @@ -0,0 +1,144 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using System.Runtime.Remoting; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// The SmartLink contains the link and a reference to the engine + /// + [Serializable] + public abstract class SmartLink + { + + /// + /// Reference to the Link + /// + protected ILink _link; + + /// + /// Reference to the engine + /// + protected IRunEngine _engine; + + + /// + /// The ILink object contained in the SmartLink + /// + public ILink link + { + get + { + return _link; + } + } + + /// + /// Reference to the engine + /// + public IRunEngine Engine + { + get + { + return _engine; + } + } + + /// + /// Error messages + /// + /// Error Messages + public virtual string[] GetErrors() + { + ILink link = this.link; + ArrayList messages = new ArrayList(); + + // check valuetype + if (link.SourceQuantity.ValueType != global::OpenMI.Standard.ValueType.Scalar || link.TargetQuantity.ValueType != global::OpenMI.Standard.ValueType.Scalar) + { + if (this is SmartInputLink) + { + messages.Add("Component " + link.TargetComponent.ComponentID + "does not support VectorSets"); + } + else + { + messages.Add("Component " + link.SourceComponent.ComponentID + "does not support VectorSets"); + } + } + + // check unit + if (link.SourceQuantity.Unit == null || link.TargetQuantity.Unit == null) + { + messages.Add("Unit equals null in link from " + link.SourceComponent.ModelID + " to " + link.TargetComponent.ModelID); + } + else if (link.SourceQuantity.Unit.ConversionFactorToSI == 0.0 || link.TargetQuantity.Unit.ConversionFactorToSI == 0) + { + messages.Add("Unit conversion factor equals zero in link from " + link.SourceComponent.ModelID + " to " + link.TargetComponent.ModelID); + } + + return (string[]) messages.ToArray(typeof(string)); + } + + /// + /// Warining + /// + /// warnings + public virtual string[] GetWarnings() + { + ILink link = this.link; + ArrayList messages = new ArrayList(); + + // check dimension + if( ! CompareDimensions(link.SourceQuantity.Dimension, link.TargetQuantity.Dimension)) + { + messages.Add("Different dimensions used in link from " + link.SourceComponent.ModelID + " to " + link.TargetComponent.ModelID); + } + + return (string[]) messages.ToArray(typeof(string)); + } + + private bool CompareDimensions(IDimension dimension1, IDimension dimension2) + { + bool isSameDimension = true; + + for (int i = 0; i < (int)DimensionBase.NUM_BASE_DIMENSIONS; i++) + { + if (dimension1.GetPower((DimensionBase) i) != dimension2.GetPower((DimensionBase) i)) + { + isSameDimension = false; + } + } + return isSameDimension; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/SmartOutputLink.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/SmartOutputLink.cs new file mode 100644 index 00000000..eeec963c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/SmartOutputLink.cs @@ -0,0 +1,316 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using System.Runtime.Remoting; + +using Oatc.OpenMI.Sdk.Spatial; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; + +using Oatc.OpenMI.Sdk.Buffer; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// Smart output link + /// + [Serializable] + public class SmartOutputLink : SmartLink + { + private SmartBuffer smartBuffer; + private ElementMapper elementMapper; + private bool _useSpatialMapping; + LinearConversionDataOperation _linearDataOperation; + private Hashtable _bufferStates; + + + + /// + /// Constructor + /// + /// reference to the engine + /// The ILink object + public SmartOutputLink(IRunEngine engine, ILink link) + { + this._link = link; + this._engine = engine; + } + + /// + /// Initialize will create buffers, prepare data operations and create the mapping matrice when georeferenced links are used. + /// The initialize method should be invoked in the ILinkableComponent prepare method (is done from the LinkableRunEngine). + /// + public void Initialize() + { + _bufferStates = new Hashtable(); + + smartBuffer = new SmartBuffer(); + _useSpatialMapping = false; + _linearDataOperation = null; + + + + //Setup Spatial mapper - mapping method is set to default for now! + int index = -1; + string description = " "; + for (int i = 0; i < link.DataOperationsCount; i++) + { + for (int n = 0; n < link.GetDataOperation(i).ArgumentCount; n++) + { + if (link.GetDataOperation(i).GetArgument(n).Key == "Type" && link.GetDataOperation(i).GetArgument(n).Value == "SpatialMapping") + { + for (int m = 0; m < link.GetDataOperation(i).ArgumentCount; m++) + { + if (link.GetDataOperation(i).GetArgument(m).Key == "Description") + { + description = link.GetDataOperation(i).GetArgument(m).Value; + break; + } + } + index = i; + break; + } + } + if (index == i) + { + break; + } + } + + if (index >= 0) + { + if (description == " ") + { + throw new Exception("Missing key: \"Description\" in spatial dataoperation arguments"); + } + _useSpatialMapping = true; + elementMapper =new ElementMapper(); + elementMapper.Initialise(description,link.SourceElementSet, link.TargetElementSet); + } + + //Prepare linear data operation + for(int i = 0; i < link.DataOperationsCount; i++) + { + if (link.GetDataOperation(i).ID == (new LinearConversionDataOperation()).ID) + { + _linearDataOperation = (LinearConversionDataOperation) link.GetDataOperation(i); + _linearDataOperation.Prepare(); + break; + } + } + + //prepare SmartBufferDataOperation + for(int i = 0; i < link.DataOperationsCount; i++) + { + if (link.GetDataOperation(i).ID == (new SmartBufferDataOperation()).ID) + { + ((SmartBufferDataOperation)link.GetDataOperation(i)).Prepare(); + smartBuffer.DoExtendedDataVerification = ((SmartBufferDataOperation)link.GetDataOperation(i)).DoExtendedValidation; + smartBuffer.RelaxationFactor = ((SmartBufferDataOperation)link.GetDataOperation(i)).RelaxationFactor; + break; + } + } + + } + + /// + /// The last time in the buffer + /// + /// the latest time in the buffer + public ITimeStamp GetLastBufferedTime() + { + ITime time = SmartBuffer.GetTimeAt(SmartBuffer.TimesCount - 1); + if (time is ITimeSpan) + { + return new TimeStamp( ((ITimeSpan)time).End); + } + else + { + return (ITimeStamp) time; + } + } + + /// + /// The SmartBuffer associated to the SmartOutputLink + /// + public SmartBuffer SmartBuffer + { + get + { + return smartBuffer; + } + } + + /// + /// Update the associated buffer with the last values calculated by the engine + /// + public virtual void UpdateBuffer() + { + if ((link.SourceQuantity != null) && (link.SourceElementSet != null)) + { + + if (this.Engine is Oatc.OpenMI.Sdk.Wrapper.IAdvancedEngine) + { + TimeValueSet timeValueSet = ((IAdvancedEngine) this.Engine).GetValues(link.SourceQuantity.ID, link.SourceElementSet.ID); + + if (timeValueSet.Time != null) + { + if (_useSpatialMapping) + { + this.smartBuffer.AddValues(timeValueSet.Time, elementMapper.MapValues(timeValueSet.ValueSet)); + } + else + { + this.smartBuffer.AddValues(timeValueSet.Time, timeValueSet.ValueSet); + } + } + } + else // the engine is IEngine or IRunEngine + { + + ITime time = this.Engine.GetCurrentTime(); + + + IValueSet valueSet = this.Engine.GetValues(link.SourceQuantity.ID,link.SourceElementSet.ID); + + + if (_useSpatialMapping) + { + this.smartBuffer.AddValues(time,elementMapper.MapValues(valueSet)); + } + else + { + this.smartBuffer.AddValues(time,valueSet); + } + + } + } + + SmartBuffer.ClearBefore(link.TargetComponent.EarliestInputTime); + + } + + /// + /// Retrieves a value from the buffer that applies to the time passes as argument. + /// During this process the buffer will do temporal operations, + /// such as extrapolations, interpolations, or aggregation + /// + /// The time for which the values should apply + /// The values + public virtual IValueSet GetValue(ITime time) + { + IValueSet values = this.SmartBuffer.GetValues(time); + + if (_linearDataOperation != null) + { + values = _linearDataOperation.PerformDataOperation(values); + } + + return ConvertUnit(values); + } + + /// + /// Convert the units according the what is specified in the link + /// + /// The values + /// The unit converted values + private IValueSet ConvertUnit(IValueSet values) + { + double aSource = link.SourceQuantity.Unit.ConversionFactorToSI; + double bSource = link.SourceQuantity.Unit.OffSetToSI; + double aTarget = link.TargetQuantity.Unit.ConversionFactorToSI; + double bTarget = link.TargetQuantity.Unit.OffSetToSI; + + if (aSource != aTarget || bSource != bTarget) + { + if (values is IScalarSet) + { + double[] x = new double[values.Count]; + + for (int i = 0; i < values.Count; i++) + { + x[i] = (((IScalarSet) values).GetScalar(i) * aSource + bSource - bTarget) / aTarget; + } + + return new ScalarSet(x); + } + else if (values is IVectorSet) + { + ArrayList vectors = new ArrayList(); + + for (int i = 0; i < values.Count; i++) + { + double x = (((IVectorSet) values).GetVector(i).XComponent * aSource + bSource - bTarget) / aTarget; + double y = (((IVectorSet) values).GetVector(i).YComponent * aSource + bSource - bTarget) / aTarget; + double z = (((IVectorSet) values).GetVector(i).ZComponent * aSource + bSource - bTarget) / aTarget; + + Vector newVector = new Vector(x, y, z); + vectors.Add (newVector); + } + + return new VectorSet((Vector[]) vectors.ToArray(typeof(Vector))); + } + else + { + throw new Exception ("Type " + values.GetType().FullName + " not suppported for unit conversion"); + } + } + + return values; + } + + /// + /// Saves a copy of the buffer + /// + /// ID for the saved buffer state + public void KeepCurrentBufferState(string bufferStateID) + { + _bufferStates.Add(bufferStateID, new SmartBuffer(this.SmartBuffer)); + } + + /// + /// Clears a buffer state + /// + /// ID for the state to clear + public void ClearBufferState(string bufferStateID) + { + _bufferStates.Remove(bufferStateID); + } + + /// + /// Restores the buffer with a previously saved buffer state + /// + /// ID for the state to restore + public void RestoreBufferState(string bufferStateID) + { + this.smartBuffer = new SmartBuffer((SmartBuffer) _bufferStates[bufferStateID]); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/TimeValueSet.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/TimeValueSet.cs new file mode 100644 index 00000000..5afb0936 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/TimeValueSet.cs @@ -0,0 +1,76 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; + +namespace Oatc.OpenMI.Sdk.Wrapper +{ + /// + /// Combined ITime and IValueSet. Used in connection with the IAdvancedEngine interface + /// + public class TimeValueSet + { + ITime _time; + IValueSet _valueSet; + + /// + /// Constructor + /// + /// ITime object + /// IValuesSet object + public TimeValueSet(ITime time, IValueSet valueSet) + { + _time = time; + _valueSet = valueSet; + } + + /// + /// The time + /// + public ITime Time + { + get + { + return _time; + } + } + + /// + /// The values + /// + public IValueSet ValueSet + { + get + { + return _valueSet; + } + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/AssemblyInfo.cs new file mode 100644 index 00000000..f0bc98e3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/AssemblyInfo.cs @@ -0,0 +1,35 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Wrapper UnitTest Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4 Alpha 3")] +[assembly: AssemblyCopyright("GNU Library or Lesser General Public License (LGPL), MIT License")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/EventListener.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/EventListener.cs new file mode 100644 index 00000000..b543950e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/EventListener.cs @@ -0,0 +1,180 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using System.IO; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for EventListener. + /// + public class EventListener : IListener + { + private ArrayList _acceptenEventTypes; + public bool _isSilent; + + public bool _dataChanged; + public bool _globalProgress; + public bool _informative; + public bool _other; + public bool _sourceAfterGetValuesCall; + public bool _sourceBeforeGetValuesReturn; + public bool _targetAfterGetValuesReturn; + public bool _targetBeforeGetValuesCall; + public bool _timeStepProgres; + public bool _valueOutOfRange; + public bool _warning; + + + public EventListener() + { + _isSilent = false; + _acceptenEventTypes = new ArrayList(); + _acceptenEventTypes.Add(EventType.DataChanged); + _acceptenEventTypes.Add(EventType.GlobalProgress); + _acceptenEventTypes.Add(EventType.Informative); + _acceptenEventTypes.Add(EventType.Other); + _acceptenEventTypes.Add(EventType.SourceAfterGetValuesCall); + _acceptenEventTypes.Add(EventType.SourceBeforeGetValuesReturn); + _acceptenEventTypes.Add(EventType.TargetAfterGetValuesReturn); + _acceptenEventTypes.Add(EventType.TargetBeforeGetValuesCall); + _acceptenEventTypes.Add(EventType.TimeStepProgres); + _acceptenEventTypes.Add(EventType.ValueOutOfRange); + _acceptenEventTypes.Add(EventType.Warning); + + _dataChanged = false; + _globalProgress = false; + _informative = false; + _other = false; + _sourceAfterGetValuesCall = false; + _sourceBeforeGetValuesReturn = false; + _targetAfterGetValuesReturn = false; + _targetBeforeGetValuesCall = false; + _timeStepProgres = false; + _valueOutOfRange = false; + _warning = false; + + } + #region IListener Members + + public EventType GetAcceptedEventType(int acceptedEventTypeIndex) + { + return (EventType) _acceptenEventTypes[acceptedEventTypeIndex]; + + } + + public int GetAcceptedEventTypeCount() + { + return _acceptenEventTypes.Count; + } + + public void OnEvent(IEvent Event) + { + + if (Event.Type == EventType.DataChanged) + { + _dataChanged = true; + } + if (Event.Type == EventType.GlobalProgress) + { + _globalProgress = true; + } + if (Event.Type == EventType.Informative) + { + _informative = true; + } + if (Event.Type == EventType.Other) + { + _other = true; + } + if (Event.Type == EventType.SourceAfterGetValuesCall) + { + _sourceAfterGetValuesCall = true; + } + if (Event.Type == EventType.SourceBeforeGetValuesReturn) + { + _sourceBeforeGetValuesReturn = true; + } + if (Event.Type == EventType.TargetAfterGetValuesReturn) + { + _targetAfterGetValuesReturn = true; + } + if (Event.Type == EventType.TargetBeforeGetValuesCall) + { + _targetBeforeGetValuesCall = true; + } + if (Event.Type == EventType.TimeStepProgres) + { + _timeStepProgres = true; + } + if (Event.Type == EventType.ValueOutOfRange) + { + _valueOutOfRange = true; + } + if (Event.Type == EventType.Warning) + { + _warning = true; + } + + + + if (Event.Type == EventType.DataChanged) + { + if (!_isSilent) + { + Console.WriteLine(" "); + Console.WriteLine(" Event Type : " + Event.Type.ToString()); + Console.WriteLine(" Event Message : " + Event.Description); + Console.WriteLine(" Component ID : " + ((ILinkableComponent) Event.Sender).ComponentID); + Console.WriteLine(" Simulation time : " + CalendarConverter.ModifiedJulian2Gregorian(Event.SimulationTime.ModifiedJulianDay).ToString()); + Console.WriteLine(" "); + } + } + else + { + if (!_isSilent) + { + Console.WriteLine(" "); + + Console.WriteLine("Event Type : " + Event.Type.ToString()); + Console.WriteLine("Event Message : " + Event.Description); + Console.WriteLine("Component ID : " + ((ILinkableComponent) Event.Sender).ComponentID); + Console.WriteLine("Simulation time : " + CalendarConverter.ModifiedJulian2Gregorian(Event.SimulationTime.ModifiedJulianDay).ToString()); + Console.WriteLine(" "); + } + } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/ExceptionHandler.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/ExceptionHandler.cs new file mode 100644 index 00000000..0cdcb131 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/ExceptionHandler.cs @@ -0,0 +1,72 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for ExceptionHandler. + /// + public class ExceptionHandler + { + public ExceptionHandler() + { + } + + public static void WriteException(System.Exception e) + { + ArrayList messages = new ArrayList(); + while (e != null) + { + messages.Add(e); + e = e.InnerException; + } + Console.WriteLine(" "); + Console.WriteLine("------- System.Exception ----------------------------- "); + messages.Reverse(); + + foreach (System.Exception ex in messages) + { + Console.WriteLine(ex.Message); + } + + Console.WriteLine(" "); + Console.WriteLine("----- Details -----"); + foreach (System.Exception ex in messages) + { + Console.WriteLine("Message..........: " + ex.Message); + Console.WriteLine("Stact trace......: " + ex.StackTrace); + Console.WriteLine("TargetSite.......: " + ex.TargetSite.Name); + Console.WriteLine("Source...........: " + ex.Source); + Console.WriteLine(" "); + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/GWMode2RiverModel.opr b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/GWMode2RiverModel.opr new file mode 100644 index 00000000..673ba9cd --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/GWMode2RiverModel.opr @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/GWModelEngine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/GWModelEngine.cs new file mode 100644 index 00000000..60f40ea6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/GWModelEngine.cs @@ -0,0 +1,232 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for GWModelEngine. + /// + public class GWModelEngine : IEngine + { + + DateTime _simulationStart; + DateTime _simulationEnd; + double _timeStepLength; //[seconds] + ArrayList _inputExchangeItems; + ArrayList _outputExchangeItems; + int _currentTimeStepNumber; + int _numberOfElements; + double[] _storage; + + public GWModelEngine() + { + _numberOfElements = 4; + _simulationStart = new DateTime(2005,1,1,0,0,0); + _simulationEnd = new DateTime(2005,2,10,0,0,0); + _timeStepLength = 3600*24; //one day + + _inputExchangeItems = new ArrayList(); + _outputExchangeItems = new ArrayList(); + + _storage = new double[_numberOfElements]; + + for ( int i = 0; i < _numberOfElements; i++) + { + _storage[i] = 0; + } + + _currentTimeStepNumber = 0; + } + + #region IEngine Members + + public InputExchangeItem GetInputExchangeItem(int exchangeItemIndex) + { + return (InputExchangeItem) _inputExchangeItems[exchangeItemIndex]; + } + + public ITimeSpan GetTimeHorizon() + { + TimeStamp startTime = new TimeStamp(Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(_simulationStart)); + TimeStamp endTime = new TimeStamp(Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(_simulationEnd)); + Oatc.OpenMI.Sdk.Backbone.TimeSpan timeHorizon = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(startTime,endTime); + return timeHorizon; + } + + public string GetModelID() + { + return "GWModelEngineModelID"; + } + + public int GetInputExchangeItemCount() + { + return _inputExchangeItems.Count; + } + + public OutputExchangeItem GetOutputExchangeItem(int exchangeItemIndex) + { + return (OutputExchangeItem) _outputExchangeItems[exchangeItemIndex]; + } + + public string GetModelDescription() + { + return "GWModelEngineModelDescription"; + } + + public int GetOutputExchangeItemCount() + { + return _outputExchangeItems.Count; + } + + #endregion + + #region IRunEngine Members + + public void SetValues(string QuantityID, string ElementSetID, IValueSet values) + { + for (int i = 0; i < _storage.Length; i++) + { + _storage[i] = ((IScalarSet) values).GetScalar(i); + } + } + + public string GetComponentID() + { + return "GWModelEngineComponentID"; + } + + public void Finish() + { + + } + + public ITime GetCurrentTime() + { + double t = Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(_simulationStart); + t += _currentTimeStepNumber * _timeStepLength / (24.0*3600.0); + Oatc.OpenMI.Sdk.Backbone.TimeSpan currentTime = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(t - _timeStepLength / (24.0*3600.0)),new TimeStamp(t)); + return currentTime; + } + + public IValueSet GetValues(string QuantityID, string ElementSetID) + { + return new ScalarSet(_storage); + } + + public void Dispose() + { + } + + public string GetComponentDescription() + { + return "GWModelEngineComponentDescription"; + } + + public ITimeStamp GetEarliestNeededTime() + { + return (ITimeStamp) ((ITimeSpan)GetCurrentTime()).Start; + } + + public void Initialize(System.Collections.Hashtable properties) + { + double ox = 2.0; + double oy = 2.0; + double dx = 4.0; + double dy = 4.0; + + // -- Populate Input Exchange Items --- + Element element0 = new Element("element:0"); + element0.AddVertex(new Vertex(ox ,oy ,0)); + element0.AddVertex(new Vertex(ox+dx ,oy ,0)); + element0.AddVertex(new Vertex(ox+dx ,oy+dy ,0)); + element0.AddVertex(new Vertex(ox ,oy+dy ,0)); + + Element element1 = new Element("element:1"); + element1.AddVertex(new Vertex(ox + dx ,oy ,0)); + element1.AddVertex(new Vertex(ox+2*dx ,oy ,0)); + element1.AddVertex(new Vertex(ox+2*dx ,oy+dy ,0)); + element1.AddVertex(new Vertex(ox+dx ,oy+dy ,0)); + + Element element2 = new Element("element:2"); + element2.AddVertex(new Vertex(ox ,oy+dy ,0)); + element2.AddVertex(new Vertex(ox+dx ,oy+dy ,0)); + element2.AddVertex(new Vertex(ox+dx ,oy+2*dy ,0)); + element2.AddVertex(new Vertex(ox ,oy+2*dy ,0)); + + Element element3 = new Element("element:3"); + element3.AddVertex(new Vertex(ox + dx ,oy+dy ,0)); + element3.AddVertex(new Vertex(ox+2*dx ,oy+dy ,0)); + element3.AddVertex(new Vertex(ox+2*dx ,oy+2*dy ,0)); + element3.AddVertex(new Vertex(ox+dx ,oy+2*dy ,0)); + + ElementSet elementSet = new ElementSet("RegularGrid","RegularGrid",ElementType.XYPolygon,new SpatialReference(" ")); + elementSet.AddElement(element0); + elementSet.AddElement(element1); + elementSet.AddElement(element2); + elementSet.AddElement(element3); + + Quantity storageQuantity = new Quantity(new Unit("Storage",1.0,0.0,"Storage"),"Storage","Storage",global::OpenMI.Standard.ValueType.Scalar,new Dimension()); + InputExchangeItem inputExchangeItem = new InputExchangeItem(); + inputExchangeItem.ElementSet = elementSet; + inputExchangeItem.Quantity = storageQuantity; + _inputExchangeItems.Add(inputExchangeItem); + + OutputExchangeItem outputExchangeItem = new OutputExchangeItem(); + outputExchangeItem.ElementSet = elementSet; + outputExchangeItem.Quantity = storageQuantity; + _outputExchangeItems.Add(outputExchangeItem); + + } + + public bool PerformTimeStep() + { + _currentTimeStepNumber++; + return true; + } + + public double GetMissingValueDefinition() + { + return -999.99; + } + + public ITime GetInputTime(string QuantityID, string ElementSetID) + { + Oatc.OpenMI.Sdk.Backbone.TimeStamp inputStart = new TimeStamp(((ITimeSpan)GetCurrentTime()).End.ModifiedJulianDay); + Oatc.OpenMI.Sdk.Backbone.TimeStamp inputEnd = new TimeStamp(((ITimeSpan) GetCurrentTime()).End.ModifiedJulianDay + _timeStepLength/(24.0 * 3600.0)); + return new Oatc.OpenMI.Sdk.Backbone.TimeSpan(inputStart, inputEnd); + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/GWModelLC.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/GWModelLC.cs new file mode 100644 index 00000000..3055bb8c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/GWModelLC.cs @@ -0,0 +1,53 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for GWModelEngineLC. + /// + public class GWModelLC : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + private GWModelEngine _gWModelEngine; + + public GWModelLC() + { + _gWModelEngine = new GWModelEngine(); + } + + protected override void SetEngineApiAccess() + { + _engineApiAccess = _gWModelEngine; + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/GWModelLC.omi b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/GWModelLC.omi new file mode 100644 index 00000000..7733e9cf --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/GWModelLC.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/LinearConversionDataOperationTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/LinearConversionDataOperationTest.cs new file mode 100644 index 00000000..e2cb61b6 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/LinearConversionDataOperationTest.cs @@ -0,0 +1,40 @@ +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + [TestFixture] + public class LinearConversionDataOperationTest + { + private LinearConversionDataOperation _dataOperation; + + [SetUp] + public void Setup() + { + _dataOperation = new LinearConversionDataOperation(); + _dataOperation.GetArgument(1).Value = "2"; + _dataOperation.GetArgument(2).Value = "0.5"; + } + + [Test] + public void Clone() + { + LinearConversionDataOperation dataOperation = (LinearConversionDataOperation)_dataOperation.Clone(); + Assert.AreEqual(_dataOperation.ArgumentCount, dataOperation.ArgumentCount, "ArgumentCount"); + + Assert.AreEqual(_dataOperation.GetArgument(0).Description, dataOperation.GetArgument(0).Description, "Description 0"); + Assert.AreEqual(_dataOperation.GetArgument(0).Key, dataOperation.GetArgument(0).Key, "Key 0"); + Assert.AreEqual(_dataOperation.GetArgument(0).ReadOnly, dataOperation.GetArgument(0).ReadOnly, "ReadOnly 0"); + Assert.AreEqual(_dataOperation.GetArgument(0).Value, dataOperation.GetArgument(0).Value, "Value 0"); + + Assert.AreEqual(_dataOperation.GetArgument(1).Description, dataOperation.GetArgument(1).Description, "Description 1"); + Assert.AreEqual(_dataOperation.GetArgument(1).Key, dataOperation.GetArgument(1).Key, "Key 1"); + Assert.AreEqual(_dataOperation.GetArgument(1).ReadOnly, dataOperation.GetArgument(1).ReadOnly, "ReadOnly 1"); + Assert.AreEqual(_dataOperation.GetArgument(1).Value, dataOperation.GetArgument(1).Value, "Value 1"); + + Assert.AreEqual(_dataOperation.GetArgument(2).Description, dataOperation.GetArgument(2).Description, "Description 2"); + Assert.AreEqual(_dataOperation.GetArgument(2).Key, dataOperation.GetArgument(2).Key, "Key 2"); + Assert.AreEqual(_dataOperation.GetArgument(2).ReadOnly, dataOperation.GetArgument(2).ReadOnly, "ReadOnly 2"); + Assert.AreEqual(_dataOperation.GetArgument(2).Value, dataOperation.GetArgument(2).Value, "Value 2"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/LinkableEngineTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/LinkableEngineTest.cs new file mode 100644 index 00000000..cda7a5ae --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/LinkableEngineTest.cs @@ -0,0 +1,1584 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.IO; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Wrapper; +//using Oatc.OpenMI.Sdk.Spatial; +using Oatc.OpenMI.Sdk.Buffer; +//using org.OpenMI.Examples.ExeptionHandlers.SimpleExceptionHandler; +//using org.OpenMI.Examples.TriggerComponents.SimpleTrigger; +//using org.OpenMI.Examples.EventListeners.SimpleEventListener; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for LinkableComponentTest. + /// + [TestFixture] + public class LinkableEngineTest + { + [Test] + public void ComponentID() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual("Test River Model Component ID", riverModelLC.ComponentID); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void ComponentDescription() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual("Test River model component description", riverModelLC.ComponentDescription); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void ModelID() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual("TestRiverModel Model ID", riverModelLC.ModelID); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void ModelModelDescription() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual("Test River model - Model description", riverModelLC.ModelDescription); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void TimeHorison() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + double simulationStart = CalendarConverter.Gregorian2ModifiedJulian(new DateTime(2005,1,1,0,0,0)); + double simulationEnd = CalendarConverter.Gregorian2ModifiedJulian(new DateTime(2005,2,10,0,0,0)); + Assert.AreEqual(simulationStart,riverModelLC.TimeHorizon.Start.ModifiedJulianDay); + Assert.AreEqual(simulationEnd, riverModelLC.TimeHorizon.End.ModifiedJulianDay); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void InputExchangeItemCount() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual(5, riverModelLC.InputExchangeItemCount); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void OutputExchangeItemCount() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual(7, riverModelLC.OutputExchangeItemCount); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void InputExchangeItem() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + + IInputExchangeItem exchangeItem0 = riverModelLC.GetInputExchangeItem(0); + Assert.AreEqual("Node:0",exchangeItem0.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem0.Quantity.ID); + Assert.AreEqual("LiterPrSecond",exchangeItem0.Quantity.Unit.ID); + Assert.AreEqual(0.001,exchangeItem0.Quantity.Unit.ConversionFactorToSI); + Assert.AreEqual(0.0,exchangeItem0.Quantity.Unit.OffSetToSI); + Assert.AreEqual(3,exchangeItem0.Quantity.Dimension.GetPower(DimensionBase.Length)); + Assert.AreEqual(-1,exchangeItem0.Quantity.Dimension.GetPower(DimensionBase.Time)); + Assert.AreEqual(1,exchangeItem0.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem0.ElementSet.ElementType); + + IInputExchangeItem exchangeItem1 = riverModelLC.GetInputExchangeItem(1); + Assert.AreEqual("Node:1",exchangeItem1.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem1.Quantity.ID); + Assert.AreEqual(1,exchangeItem1.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem1.ElementSet.ElementType); + + IInputExchangeItem exchangeItem2 = riverModelLC.GetInputExchangeItem(2); + Assert.AreEqual("Node:2",exchangeItem2.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem2.Quantity.ID); + Assert.AreEqual(1,exchangeItem2.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem2.ElementSet.ElementType); + + IInputExchangeItem exchangeItem3 = riverModelLC.GetInputExchangeItem(3); + Assert.AreEqual("Node:3",exchangeItem3.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem3.Quantity.ID); + Assert.AreEqual(1,exchangeItem3.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem3.ElementSet.ElementType); + + IInputExchangeItem exchangeItem4 = riverModelLC.GetInputExchangeItem(4); + Assert.AreEqual("WholeRiver",exchangeItem4.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem4.Quantity.ID); + Assert.AreEqual(3,exchangeItem4.ElementSet.ElementCount); + Assert.AreEqual(ElementType.XYPolyLine,exchangeItem4.ElementSet.ElementType); + Assert.AreEqual(2,exchangeItem4.ElementSet.GetVertexCount(0)); + Assert.AreEqual(2,exchangeItem4.ElementSet.GetVertexCount(1)); + Assert.AreEqual(2,exchangeItem4.ElementSet.GetVertexCount(2)); + Assert.AreEqual(3.0,exchangeItem4.ElementSet.GetXCoordinate(0,0)); + Assert.AreEqual(5.0,exchangeItem4.ElementSet.GetXCoordinate(0,1)); + Assert.AreEqual(5.0,exchangeItem4.ElementSet.GetXCoordinate(1,0)); + Assert.AreEqual(8.0,exchangeItem4.ElementSet.GetXCoordinate(1,1)); + Assert.AreEqual(8.0,exchangeItem4.ElementSet.GetXCoordinate(2,0)); + Assert.AreEqual(8.0,exchangeItem4.ElementSet.GetXCoordinate(2,1)); + Assert.AreEqual(9.0,exchangeItem4.ElementSet.GetYCoordinate(0,0)); + Assert.AreEqual(7.0,exchangeItem4.ElementSet.GetYCoordinate(0,1)); + Assert.AreEqual(7.0,exchangeItem4.ElementSet.GetYCoordinate(1,0)); + Assert.AreEqual(7.0,exchangeItem4.ElementSet.GetYCoordinate(1,1)); + Assert.AreEqual(7.0,exchangeItem4.ElementSet.GetYCoordinate(2,0)); + Assert.AreEqual(3.0,exchangeItem4.ElementSet.GetYCoordinate(2,1)); + } + + [Test] + public void GetOutputExchangeItem() + { + try + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + + IOutputExchangeItem exchangeItem0 = riverModelLC.GetOutputExchangeItem(0); + Assert.AreEqual("Branch:0",exchangeItem0.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem0.Quantity.ID); + Assert.AreEqual(1,exchangeItem0.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem0.ElementSet.ElementType); + + IOutputExchangeItem exchangeItem1 = riverModelLC.GetOutputExchangeItem(1); + Assert.AreEqual("Branch:1",exchangeItem1.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem1.Quantity.ID); + Assert.AreEqual(1,exchangeItem1.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem0.ElementSet.ElementType); + + IOutputExchangeItem exchangeItem2 = riverModelLC.GetOutputExchangeItem(2); + Assert.AreEqual("Branch:2",exchangeItem2.ElementSet.ID); + Assert.AreEqual("Flow",exchangeItem2.Quantity.ID); + Assert.AreEqual(1,exchangeItem2.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem0.ElementSet.ElementType); + + IOutputExchangeItem exchangeItem3 = riverModelLC.GetOutputExchangeItem(3); + Assert.AreEqual("Branch:0",exchangeItem3.ElementSet.ID); + Assert.AreEqual("Leakage",exchangeItem3.Quantity.ID); + Assert.AreEqual(1,exchangeItem3.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem0.ElementSet.ElementType); + + IOutputExchangeItem exchangeItem4 = riverModelLC.GetOutputExchangeItem(4); + Assert.AreEqual("Branch:1",exchangeItem4.ElementSet.ID); + Assert.AreEqual("Leakage",exchangeItem4.Quantity.ID); + Assert.AreEqual(1,exchangeItem4.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem0.ElementSet.ElementType); + + IOutputExchangeItem exchangeItem5 = riverModelLC.GetOutputExchangeItem(5); + Assert.AreEqual("Branch:2",exchangeItem5.ElementSet.ID); + Assert.AreEqual("Leakage",exchangeItem5.Quantity.ID); + Assert.AreEqual(1,exchangeItem5.ElementSet.ElementCount); + Assert.AreEqual(ElementType.IDBased,exchangeItem0.ElementSet.ElementType); + + IOutputExchangeItem exchangeItem6 = riverModelLC.GetOutputExchangeItem(6); + Assert.AreEqual("WholeRiver",exchangeItem6.ElementSet.ID); + Assert.AreEqual("Leakage",exchangeItem6.Quantity.ID); + Assert.AreEqual(3,exchangeItem6.ElementSet.ElementCount); + Assert.AreEqual(ElementType.XYPolyLine,exchangeItem6.ElementSet.ElementType); + Assert.AreEqual(3,exchangeItem6.ElementSet.ElementCount); + Assert.AreEqual(2,exchangeItem6.ElementSet.GetVertexCount(0)); + Assert.AreEqual(2,exchangeItem6.ElementSet.GetVertexCount(1)); + Assert.AreEqual(2,exchangeItem6.ElementSet.GetVertexCount(2)); + Assert.AreEqual(3.0,exchangeItem6.ElementSet.GetXCoordinate(0,0)); + Assert.AreEqual(5.0,exchangeItem6.ElementSet.GetXCoordinate(0,1)); + Assert.AreEqual(5.0,exchangeItem6.ElementSet.GetXCoordinate(1,0)); + Assert.AreEqual(8.0,exchangeItem6.ElementSet.GetXCoordinate(1,1)); + Assert.AreEqual(8.0,exchangeItem6.ElementSet.GetXCoordinate(2,0)); + Assert.AreEqual(8.0,exchangeItem6.ElementSet.GetXCoordinate(2,1)); + Assert.AreEqual(9.0,exchangeItem6.ElementSet.GetYCoordinate(0,0)); + Assert.AreEqual(7.0,exchangeItem6.ElementSet.GetYCoordinate(0,1)); + Assert.AreEqual(7.0,exchangeItem6.ElementSet.GetYCoordinate(1,0)); + Assert.AreEqual(7.0,exchangeItem6.ElementSet.GetYCoordinate(1,1)); + Assert.AreEqual(7.0,exchangeItem6.ElementSet.GetYCoordinate(2,0)); + Assert.AreEqual(3.0,exchangeItem6.ElementSet.GetYCoordinate(2,1)); + + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + + [Test] + public void Initialize() + { + //----- Testing ----------------------------------------------------------- + // 1: That the Initialize method is called on the engine + // 2: That the initializeMethodWasInvoked flas is altered from false to true + // 3: That the Argument are correctly changed to a Hashtable + // ------------------------------------------------------------------------- + + ILinkableComponent riverModelLC = new RiverModelLC(); + Argument[] arguments = new Argument[1]; + arguments[0] = new Argument("ModelID","TestRiverModelID",true,"ID for the model"); + Assert.AreEqual(false,((RiverModelLC)riverModelLC)._riverModelEngine._initializeMethodWasInvoked); + riverModelLC.Initialize(arguments); + Assert.AreEqual(true,((RiverModelLC)riverModelLC)._riverModelEngine._initializeMethodWasInvoked); + Assert.AreEqual("TestRiverModelID",riverModelLC.ModelID); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + + + + [Test] + public void TimeEpsilon() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + Assert.AreEqual(false,((RiverModelLC)riverModelLC)._riverModelEngine._initializeMethodWasInvoked); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual(0.10 * 1.0 / (3600.0 * 24.0), ((RiverModelLC)riverModelLC).TimeEpsilon); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void EngineApiAccess() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + Assert.AreEqual(false,((RiverModelLC)riverModelLC)._riverModelEngine._initializeMethodWasInvoked); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual("Test River Model Component ID",((RiverModelLC) riverModelLC).EngineApiAccess.GetComponentID()); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void AddLink() + { + TestEngineLC sourceModel = new TestEngineLC(); + TestEngineLC targetModel = new TestEngineLC(); + + sourceModel.Initialize(new Argument[0]); + targetModel.Initialize(new Argument[0]); + + Link link = new Link(); + link.ID = "SourceToTargetLink"; + link.SourceComponent = sourceModel; + link.SourceElementSet = sourceModel.GetOutputExchangeItem(0).ElementSet; //last branch in the river + link.SourceQuantity = sourceModel.GetOutputExchangeItem(0).Quantity; + link.TargetComponent = targetModel; + link.TargetElementSet = targetModel.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = targetModel.GetInputExchangeItem(0).Quantity; + + Assert.AreEqual(0,sourceModel.SmartOutputLinks.Count); + Assert.AreEqual(0,sourceModel.SmartInputLinks.Count); + Assert.AreEqual(0,targetModel.SmartOutputLinks.Count); + Assert.AreEqual(0,targetModel.SmartInputLinks.Count); + + sourceModel.AddLink(link); + targetModel.AddLink(link); + + Assert.AreEqual(1,sourceModel.SmartOutputLinks.Count); + Assert.AreEqual(0,sourceModel.SmartInputLinks.Count); + Assert.AreEqual(0,targetModel.SmartOutputLinks.Count); + Assert.AreEqual(1,targetModel.SmartInputLinks.Count); + + sourceModel.Prepare(); // create the buffer + + Assert.AreEqual(1,((SmartOutputLink)sourceModel.SmartOutputLinks[0]).SmartBuffer.TimesCount); + } + + [Test] + public void RemoveLink() + { + TestEngineLC sourceModel = new TestEngineLC(); + TestEngineLC targetModel = new TestEngineLC(); + + sourceModel.Initialize(new Argument[0]); + targetModel.Initialize(new Argument[0]); + + Link link = new Link(); + link.ID = "SourceToTargetLink"; + link.SourceComponent = sourceModel; + link.SourceElementSet = sourceModel.GetOutputExchangeItem(0).ElementSet; //last branch in the river + link.SourceQuantity = sourceModel.GetOutputExchangeItem(0).Quantity; + link.TargetComponent = targetModel; + link.TargetElementSet = targetModel.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = targetModel.GetInputExchangeItem(0).Quantity; + + Assert.AreEqual(0,sourceModel.SmartOutputLinks.Count); + Assert.AreEqual(0,sourceModel.SmartOutputLinks.Count); + Assert.AreEqual(0,targetModel.SmartOutputLinks.Count); + Assert.AreEqual(0,targetModel.SmartOutputLinks.Count); + + sourceModel.AddLink(link); + targetModel.AddLink(link); + + Assert.AreEqual(1,sourceModel.SmartOutputLinks.Count); + Assert.AreEqual(0,sourceModel.SmartInputLinks.Count); + Assert.AreEqual(0,targetModel.SmartOutputLinks.Count); + Assert.AreEqual(1,targetModel.SmartInputLinks.Count); + + sourceModel.RemoveLink(link.ID); + targetModel.RemoveLink(link.ID); + + Assert.AreEqual(0,sourceModel.SmartOutputLinks.Count); + Assert.AreEqual(0,sourceModel.SmartOutputLinks.Count); + Assert.AreEqual(0,targetModel.SmartOutputLinks.Count); + Assert.AreEqual(0,targetModel.SmartOutputLinks.Count); + + } + + [Test] + public void Validate() + { + ILinkableComponent upperRiver = new RiverModelLC(); + ILinkableComponent lowerRiver = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] upperRiverArguments = new Argument[1]; + upperRiverArguments[0] = new Argument("ModelID","upperRiverModel",true,"argument"); + upperRiver.Initialize(upperRiverArguments); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] lowerRiverArguments = new Argument[1]; + lowerRiverArguments[0] = new Argument("ModelID","lowerRiverModel",true,"argument"); + lowerRiver.Initialize(lowerRiverArguments); + trigger.Initialize(new Argument[0]); + + Assert.AreEqual("upperRiverModel",upperRiver.ModelID); + Assert.AreEqual("lowerRiverModel",lowerRiver.ModelID); + + Dimension wrongDimension = new Dimension(); + wrongDimension.SetPower(DimensionBase.Mass,1); + Quantity wrongQuantity = new Quantity(new Unit("dummy",0.0,0.0,"dummy"),"test","qid",global::OpenMI.Standard.ValueType.Vector,wrongDimension); + ElementSet wrongElementSet = new ElementSet("Wrong ElementSet","BadID",ElementType.XYPolyLine,new SpatialReference("no ref")); + Element element = new Element("dum Element"); + element.AddVertex(new Vertex(4,5,0)); + wrongElementSet.AddElement(element); + + Link link = new Link(); + link.ID = "RiverToRiverLink"; + link.SourceComponent = upperRiver; + link.SourceElementSet = upperRiver.GetOutputExchangeItem(2).ElementSet; //last branch in the river + link.SourceQuantity = upperRiver.GetOutputExchangeItem(2).Quantity; + link.TargetComponent = lowerRiver; + link.TargetElementSet = lowerRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = wrongQuantity; +// link.AddDataOperation(upperRiver.GetOutputExchangeItem(6).GetDataOperation(0)); // bad data Operation + + Link triggerLink = new Link(); + + triggerLink.ID = "TriggerLink"; + triggerLink.SourceComponent = lowerRiver; + triggerLink.SourceElementSet = wrongElementSet; + triggerLink.SourceQuantity = wrongQuantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + upperRiver.AddLink(link); + lowerRiver.AddLink(link); + + lowerRiver.AddLink(triggerLink); + trigger.AddLink(triggerLink); + + bool isSilent = false; + if (!isSilent) + { + Console.WriteLine(lowerRiver.Validate()); + + foreach (string str in ((RiverModelLC) upperRiver).ValidationErrorMessages) + { + Console.WriteLine("Error upperRiver: " + str); + } + foreach (string str in ((RiverModelLC) lowerRiver).ValidationErrorMessages) + { + Console.WriteLine("Error lowerRiver: " + str); + } + foreach (string str in ((RiverModelLC) upperRiver).ValidationWarningMessages) + { + Console.WriteLine("Warning upperRiver: " + str); + } + foreach (string str in ((RiverModelLC) lowerRiver).ValidationWarningMessages) + { + Console.WriteLine("Warning lowerRiver: " + str); + } + } + + Assert.AreEqual(0,((RiverModelLC) upperRiver).ValidationErrorMessages.Count); + Assert.AreEqual(4,((RiverModelLC) lowerRiver).ValidationErrorMessages.Count); + + Assert.AreEqual(0,((RiverModelLC) upperRiver).ValidationWarningMessages.Count); + Assert.AreEqual(2,((RiverModelLC) lowerRiver).ValidationWarningMessages.Count); + + + } + + [Test] + public void Prepare() + { + try + { + ILinkableComponent riverModelLC = new RiverModelLC(); + ILinkableComponent trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + riverModelLC.Initialize(new Argument[0]); + trigger.Initialize(new Argument[0]); + + Link link = new Link(riverModelLC, riverModelLC.GetOutputExchangeItem(0).ElementSet,riverModelLC.GetOutputExchangeItem(0).Quantity,trigger,trigger.GetInputExchangeItem(0).ElementSet,trigger.GetInputExchangeItem(0).Quantity,"LinkID"); + riverModelLC.AddLink(link); + trigger.AddLink(link); + + Assert.AreEqual(false, ((RiverModelLC) riverModelLC).PrepareForCompotationWasInvoked); + riverModelLC.Prepare(); + Assert.AreEqual(true, ((RiverModelLC) riverModelLC).PrepareForCompotationWasInvoked); + + double x = ((IScalarSet)((SmartOutputLink)((RiverModelLC) riverModelLC).SmartOutputLinks[0]).SmartBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(7,x); //test if the initial state variables (e.g. flow) is copied to the buffer. + + double t = ((ITimeSpan)((SmartOutputLink)((RiverModelLC) riverModelLC).SmartOutputLinks[0]).SmartBuffer.GetTimeAt(0)).Start.ModifiedJulianDay; + Assert.AreEqual(riverModelLC.TimeHorizon.Start.ModifiedJulianDay, t); //test if the initial time is copied to the buffer + + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + [Test] + public void GetValues1A() + { + // Running with one instances of riverModelLC linked ID-based to trigger + + try + { + ILinkableComponent riverModelLC = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + Argument[] riverArguments = new Argument[2]; + riverArguments[0] = new Argument("ModelID","RiverModel",true,"argument"); + riverArguments[1] = new Argument("TimeStepLength","3600",true,"A time step length of 1 hour"); + + riverModelLC.Initialize(riverArguments); + trigger.Initialize(new Argument[0]); + + Link link = new Link(riverModelLC, riverModelLC.GetOutputExchangeItem(2).ElementSet,riverModelLC.GetOutputExchangeItem(2).Quantity,trigger,trigger.GetInputExchangeItem(0).ElementSet,trigger.GetInputExchangeItem(0).Quantity,"LinkID"); + riverModelLC.AddLink(link); + trigger.AddLink(link); + + riverModelLC.Prepare(); + + double firstTriggerGetValuesTime = riverModelLC.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[2]; + triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 2); + triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 4.3); + + trigger.Run(triggerTimes); + double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(35.0/4.0,x1); + + double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0); + Assert.AreEqual(35.0/4.0,x2); + + riverModelLC.Finish(); + riverModelLC.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + [Test] + public void GetValues1B() + { + // Running with one instances of riverModelLC linked ID-based to trigger and to + // an instance of the TimeSeriesComponent. + try + { + ILinkableComponent timeSeries = new TimeSeriesComponent(); + ILinkableComponent riverModelLC = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + timeSeries.Initialize(new Argument[0]); + + Argument[] riverArguments = new Argument[2]; + riverArguments[0] = new Argument("ModelID","upperRiverModel",true,"argument"); + riverArguments[1] = new Argument("TimeStepLength","3600",true,"A time step length of 1 day"); + + riverModelLC.Initialize(riverArguments); + trigger.Initialize(new Argument[0]); + + Link timeSeriesToRiverLink = new Link(); + timeSeriesToRiverLink.ID = "timeSeriesToUpperRiverLink"; + timeSeriesToRiverLink.SourceComponent = timeSeries; + timeSeriesToRiverLink.SourceElementSet = timeSeries.GetOutputExchangeItem(0).ElementSet; //last branch in the river + timeSeriesToRiverLink.SourceQuantity = timeSeries.GetOutputExchangeItem(0).Quantity; + timeSeriesToRiverLink.TargetComponent = riverModelLC; + timeSeriesToRiverLink.TargetElementSet = riverModelLC.GetInputExchangeItem(0).ElementSet; //first node in the river + timeSeriesToRiverLink.TargetQuantity = riverModelLC.GetInputExchangeItem(0).Quantity; + + + Link link = new Link(riverModelLC, riverModelLC.GetOutputExchangeItem(2).ElementSet,riverModelLC.GetOutputExchangeItem(2).Quantity,trigger,trigger.GetInputExchangeItem(0).ElementSet,trigger.GetInputExchangeItem(0).Quantity,"LinkID"); + + timeSeries.AddLink(timeSeriesToRiverLink); + riverModelLC.AddLink(timeSeriesToRiverLink); + + riverModelLC.AddLink(link); + trigger.AddLink(link); + + riverModelLC.Prepare(); + + double firstTriggerGetValuesTime = riverModelLC.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[2]; + triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 12.1); + triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 16.7); + + trigger.Run(triggerTimes); + double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(35.0/4.0 + 13.0/8.0,x1); + + double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0); + Assert.AreEqual(35.0/4.0 + 17.0/8.0,x2); + + riverModelLC.Finish(); + riverModelLC.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + + [Test] + public void GetValues2A() + { + // == Running with two instances of riverModelLC == + // + // - The Two river are running with the same timestepping. + // + // - The link is ID Based link with flow from last branch of the source river to the top + // node of the target river. + // + // - The time argument in the GetValues from rive to river is of type ITimeSpan + // + //TODO: 1: The RiverModelEngine should change the inflow over time. As it is now the inflow is the same + // in all time steps. Another idea would be to have a output exchange item that hold the accumulated + // inflow, this could be useful when testing the manage state interface. + // + // 2: Make this test run with the two river using different timesteps and with the source river + // starting ealier that the target river. + // + // 3: In this test also events could be tested. Simply test if all the required events are + // thrown during the simulations. + try + { + ILinkableComponent upperRiver = new RiverModelLC(); + ILinkableComponent lowerRiver = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] upperRiverArguments = new Argument[1]; + upperRiverArguments[0] = new Argument("ModelID","upperRiverModel",true,"argument"); + upperRiver.Initialize(upperRiverArguments); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] lowerRiverArguments = new Argument[1]; + lowerRiverArguments[0] = new Argument("ModelID","lowerRiverModel",true,"argument"); + lowerRiver.Initialize(lowerRiverArguments); + trigger.Initialize(new Argument[0]); + + Assert.AreEqual("upperRiverModel",upperRiver.ModelID); + Assert.AreEqual("lowerRiverModel",lowerRiver.ModelID); + + Link link = new Link(); + link.ID = "RiverToRiverLink"; + link.SourceComponent = upperRiver; + link.SourceElementSet = upperRiver.GetOutputExchangeItem(2).ElementSet; //last branch in the river + link.SourceQuantity = upperRiver.GetOutputExchangeItem(2).Quantity; + link.TargetComponent = lowerRiver; + link.TargetElementSet = lowerRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = lowerRiver.GetInputExchangeItem(0).Quantity; + + Link triggerLink = new Link(); + + triggerLink.ID = "TriggerLink"; + triggerLink.SourceComponent = lowerRiver; + triggerLink.SourceElementSet = lowerRiver.GetOutputExchangeItem(2).ElementSet; + triggerLink.SourceQuantity = lowerRiver.GetOutputExchangeItem(2).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + upperRiver.AddLink(link); + lowerRiver.AddLink(link); + + lowerRiver.AddLink(triggerLink); + trigger.AddLink(triggerLink); + + upperRiver.Prepare(); + lowerRiver.Prepare(); + trigger.Prepare(); + + double firstTriggerGetValuesTime = lowerRiver.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[2]; + triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 3); + triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 4.3); + + trigger.Run(triggerTimes); + + double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(315.0/32.0,x1); + + double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0); + Assert.AreEqual(315.0/32.0,x2); + + upperRiver.Finish(); + lowerRiver.Finish(); + + upperRiver.Dispose(); + lowerRiver.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + [Test] + public void GetValues2B() + { + // This is a variation of GetValues2A. In this test the timeSeries is linked ID based to the + // top node of the upperRiver. The last upperRiver branch of the upperRiver is ID based connected + // to the top node of the lowerRiver. The last branch in the lowerRiver is linked to the trigger. + // The timeSeries provides data that changes over time. This is what makes this test different from + // GetValues2A, where everytning is the same for every time step. + + try + { + ILinkableComponent timeSeries = new TimeSeriesComponent(); + ILinkableComponent upperRiver = new RiverModelLC(); + ILinkableComponent lowerRiver = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + timeSeries.Initialize(new Argument[0]); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] upperRiverArguments = new Argument[1]; + upperRiverArguments[0] = new Argument("ModelID","upperRiverModel",true,"argument"); + upperRiver.Initialize(upperRiverArguments); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] lowerRiverArguments = new Argument[1]; + lowerRiverArguments[0] = new Argument("ModelID","lowerRiverModel",true,"argument"); + lowerRiver.Initialize(lowerRiverArguments); + trigger.Initialize(new Argument[0]); + + Assert.AreEqual("upperRiverModel",upperRiver.ModelID); + Assert.AreEqual("lowerRiverModel",lowerRiver.ModelID); + + Link timeSeriesToUpperRiverLink = new Link(); + timeSeriesToUpperRiverLink.ID = "timeSeriesToUpperRiverLink"; + timeSeriesToUpperRiverLink.SourceComponent = timeSeries; + timeSeriesToUpperRiverLink.SourceElementSet = timeSeries.GetOutputExchangeItem(0).ElementSet; //last branch in the river + timeSeriesToUpperRiverLink.SourceQuantity = timeSeries.GetOutputExchangeItem(0).Quantity; + timeSeriesToUpperRiverLink.TargetComponent = upperRiver; + timeSeriesToUpperRiverLink.TargetElementSet = upperRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + timeSeriesToUpperRiverLink.TargetQuantity = upperRiver.GetInputExchangeItem(0).Quantity; + + Link link = new Link(); + link.ID = "RiverToRiverLink"; + link.SourceComponent = upperRiver; + link.SourceElementSet = upperRiver.GetOutputExchangeItem(2).ElementSet; //last branch in the river + link.SourceQuantity = upperRiver.GetOutputExchangeItem(2).Quantity; + link.TargetComponent = lowerRiver; + link.TargetElementSet = lowerRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = lowerRiver.GetInputExchangeItem(0).Quantity; + + Link triggerLink = new Link(); + + triggerLink.ID = "TriggerLink"; + triggerLink.SourceComponent = lowerRiver; + triggerLink.SourceElementSet = lowerRiver.GetOutputExchangeItem(2).ElementSet; + triggerLink.SourceQuantity = lowerRiver.GetOutputExchangeItem(2).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + timeSeries.AddLink(timeSeriesToUpperRiverLink); + upperRiver.AddLink(timeSeriesToUpperRiverLink); + + upperRiver.AddLink(link); + lowerRiver.AddLink(link); + + lowerRiver.AddLink(triggerLink); + trigger.AddLink(triggerLink); + + timeSeries.Prepare(); + upperRiver.Prepare(); + lowerRiver.Prepare(); + trigger.Prepare(); + + double firstTriggerGetValuesTime = lowerRiver.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[2]; + triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 12.5); + triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 16.2); + + trigger.Run(triggerTimes); + + double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(315.0/32.0 + 13.0/64.0,x1); + + double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0); + Assert.AreEqual(315.0/32.0 + 17.0/64.0,x2); + + upperRiver.Finish(); + lowerRiver.Finish(); + + upperRiver.Dispose(); + lowerRiver.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + + [Test] +// [Ignore ("This test fails when dt = 1 hour but works for dt = 0.5 day")] + public void GetValues2C() + { + // This test is a variation of GetValues 2B. What makes this test different is that the the two + // connected river models are not using the same timesteps. + // This test will test: + // - is the buffer working correcly with respect to interpolations and buffering + // - is the buffer working correctly with respect to clearing the buffer. + + try + { + ILinkableComponent timeSeries = new TimeSeriesComponent(); + ILinkableComponent upperRiver = new RiverModelLC(); + ILinkableComponent lowerRiver = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + timeSeries.Initialize(new Argument[0]); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] upperRiverArguments = new Argument[2]; + upperRiverArguments[0] = new Argument("ModelID","upperRiverModel",true,"argument"); + upperRiverArguments[1] = new Argument("TimeStepLength","21600",true,"A time step length of 1 day"); + upperRiver.Initialize(upperRiverArguments); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] lowerRiverArguments = new Argument[2]; + lowerRiverArguments[0] = new Argument("ModelID","lowerRiverModel",true,"argument"); + lowerRiverArguments[1] = new Argument("TimeStepLength","86400",true,"xx"); + lowerRiver.Initialize(lowerRiverArguments); + trigger.Initialize(new Argument[0]); + + Assert.AreEqual("upperRiverModel",upperRiver.ModelID); + Assert.AreEqual("lowerRiverModel",lowerRiver.ModelID); + + Link timeSeriesToUpperRiverLink = new Link(); + timeSeriesToUpperRiverLink.ID = "timeSeriesToUpperRiverLink"; + timeSeriesToUpperRiverLink.SourceComponent = timeSeries; + timeSeriesToUpperRiverLink.SourceElementSet = timeSeries.GetOutputExchangeItem(0).ElementSet; //last branch in the river + timeSeriesToUpperRiverLink.SourceQuantity = timeSeries.GetOutputExchangeItem(0).Quantity; + timeSeriesToUpperRiverLink.TargetComponent = upperRiver; + timeSeriesToUpperRiverLink.TargetElementSet = upperRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + timeSeriesToUpperRiverLink.TargetQuantity = upperRiver.GetInputExchangeItem(0).Quantity; + + Link link = new Link(); + link.ID = "RiverToRiverLink"; + link.SourceComponent = upperRiver; + link.SourceElementSet = upperRiver.GetOutputExchangeItem(2).ElementSet; //last branch in the river + link.SourceQuantity = upperRiver.GetOutputExchangeItem(2).Quantity; + link.TargetComponent = lowerRiver; + link.TargetElementSet = lowerRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = lowerRiver.GetInputExchangeItem(0).Quantity; + + Link triggerLink = new Link(); + + triggerLink.ID = "TriggerLink"; + triggerLink.SourceComponent = lowerRiver; + triggerLink.SourceElementSet = lowerRiver.GetOutputExchangeItem(2).ElementSet; + triggerLink.SourceQuantity = lowerRiver.GetOutputExchangeItem(2).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + timeSeries.AddLink(timeSeriesToUpperRiverLink); + upperRiver.AddLink(timeSeriesToUpperRiverLink); + + upperRiver.AddLink(link); + lowerRiver.AddLink(link); + + lowerRiver.AddLink(triggerLink); + trigger.AddLink(triggerLink); + + timeSeries.Prepare(); + upperRiver.Prepare(); + lowerRiver.Prepare(); + trigger.Prepare(); + + double firstTriggerGetValuesTime = lowerRiver.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[2]; + triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 12.5); + triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 16.2); + + trigger.Run(triggerTimes); + + double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(315.0/32.0 + 13.0/64.0,x1); + + double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0); + Assert.AreEqual(315.0/32.0 + 17.0/64.0,x2); + + Assert.AreEqual(10,((RiverModelLC) upperRiver)._maxBufferSize); //Test that the buffer is cleared + + upperRiver.Finish(); + lowerRiver.Finish(); + + upperRiver.Dispose(); + lowerRiver.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + [Test] + [Ignore ("Test code is not implemented")] + public void GetValues3A() + { + //TODO: implement a test for bi-directional link + } + + [Test] + public void GetValues4A() + { + //This test is: RiverModel --> GWModel --> Trigger + //Testing: Georeferenced links + RiverModelLC riverModel = new RiverModelLC(); + GWModelLC gWModel = new GWModelLC(); + Trigger trigger = new Trigger(); + + riverModel.Initialize(new Argument[0]); + gWModel.Initialize(new Argument[0]); + + Link riverGWLink = new Link(); + riverGWLink.ID = "RiverGWLink"; + riverGWLink.SourceComponent = riverModel; + riverGWLink.SourceElementSet = riverModel.GetOutputExchangeItem(6).ElementSet; + riverGWLink.SourceQuantity = riverModel.GetOutputExchangeItem(0).Quantity; + riverGWLink.TargetComponent = gWModel; + riverGWLink.TargetElementSet = gWModel.GetInputExchangeItem(0).ElementSet; + riverGWLink.TargetQuantity = gWModel.GetInputExchangeItem(0).Quantity; + + int dataOperationIndex = -9; + for (int i = 0; i < riverModel.GetOutputExchangeItem(6).DataOperationCount; i++) + { + if (riverModel.GetOutputExchangeItem(6).GetDataOperation(i).ID == "ElementMapper501") + { + dataOperationIndex = i; + } + } + + if (dataOperationIndex < 0) + { + throw new Exception("failed to find dataOperation"); + } + + riverGWLink.AddDataOperation(riverModel.GetOutputExchangeItem(6).GetDataOperation(dataOperationIndex)); + + Link triggerLink = new Link(); + triggerLink.ID = "RiverGWLink"; + triggerLink.SourceComponent = gWModel; + triggerLink.SourceElementSet = gWModel.GetOutputExchangeItem(0).ElementSet; + triggerLink.SourceQuantity = gWModel.GetOutputExchangeItem(0).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + riverModel.AddLink(riverGWLink); + gWModel.AddLink(riverGWLink); + gWModel.AddLink(triggerLink); + trigger.AddLink(triggerLink); + + riverModel.Prepare(); + gWModel.Prepare(); + + double firstTriggerGetValuesTime = riverModel.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[2]; + triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 12.1); + triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 16.7); + + trigger.Run(triggerTimes); + + double x0 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(0.0,x0); + + double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(1); + Assert.AreEqual(105.0/16.0,x1); + + double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(2); + Assert.AreEqual(7.5,x2); + + double x3 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(3); + Assert.AreEqual(5.0+35.0/16.0,x3); + + riverModel.Finish(); + gWModel.Finish(); + + riverModel.Dispose(); + gWModel.Dispose(); + + } + + [Test] + public void LinearConvertionDataOperation() + { + // Running with one instances of riverModelLC linked ID-based to trigger + // using the linearConversionDataOperation. + + try + { + ILinkableComponent riverModelLC = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + Argument[] riverArguments = new Argument[2]; + riverArguments[0] = new Argument("ModelID","RiverModel",true,"argument"); + riverArguments[1] = new Argument("TimeStepLength","3600",true,"A time step length of 1 hour"); + + riverModelLC.Initialize(riverArguments); + trigger.Initialize(new Argument[0]); + + Link link = new Link(riverModelLC, riverModelLC.GetOutputExchangeItem(2).ElementSet,riverModelLC.GetOutputExchangeItem(2).Quantity,trigger,trigger.GetInputExchangeItem(0).ElementSet,trigger.GetInputExchangeItem(0).Quantity,"LinkID"); + + //add linear conversion data operation + bool dataOperationWasFound = false; + int dataOperationIndex = -9; + for (int i = 0; i < riverModelLC.GetOutputExchangeItem(2).DataOperationCount; i++) + { + if (riverModelLC.GetOutputExchangeItem(2).GetDataOperation(i).ID == "Linear Conversion") + { + dataOperationWasFound = true; + dataOperationIndex = i; + } + } + Assert.AreEqual(true,dataOperationWasFound); + IDataOperation linearConvertionDataOperation = riverModelLC.GetOutputExchangeItem(2).GetDataOperation(dataOperationIndex); + bool key_A_WasFound = false; + bool key_B_WasFound = false; + bool key_Type_WasFound = false; + + for (int i = 0; i < linearConvertionDataOperation.ArgumentCount; i++) + { + if ( linearConvertionDataOperation.GetArgument(i).Key == "A") + { + linearConvertionDataOperation.GetArgument(i).Value = "2.5"; + key_A_WasFound = true; + Assert.AreEqual(false,linearConvertionDataOperation.GetArgument(i).ReadOnly); + } + if ( linearConvertionDataOperation.GetArgument(i).Key == "B") + { + linearConvertionDataOperation.GetArgument(i).Value = "3.5"; + key_B_WasFound = true; + Assert.AreEqual(false,linearConvertionDataOperation.GetArgument(i).ReadOnly); + } + + if ( linearConvertionDataOperation.GetArgument(i).Key == "Type") + { + key_Type_WasFound = true; + Assert.AreEqual(true,linearConvertionDataOperation.GetArgument(i).ReadOnly); + } + } + + Assert.AreEqual(true,key_A_WasFound); + Assert.AreEqual(true,key_B_WasFound); + Assert.AreEqual(true,key_Type_WasFound); + Assert.AreEqual("Linear Conversion",linearConvertionDataOperation.ID); + + link.AddDataOperation(linearConvertionDataOperation); + + riverModelLC.AddLink(link); + trigger.AddLink(link); + + riverModelLC.Prepare(); + + double firstTriggerGetValuesTime = riverModelLC.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[2]; + triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 2); + triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 4.3); + + trigger.Run(triggerTimes); + double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); + Assert.AreEqual(2.5*(35.0/4.0) + 3.5, x1); + + double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0); + Assert.AreEqual(2.5 * (35.0/4.0) + 3.5, x2); + + riverModelLC.Finish(); + riverModelLC.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + [Test] + public void SmartBufferDataOperationTest() + { + // Running with one instances of riverModelLC linked ID-based to trigger + // using the SmartBufferDataOperation. + + try + { + ILinkableComponent riverModelLC = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + Argument[] riverArguments = new Argument[2]; + riverArguments[0] = new Argument("ModelID","RiverModel",true,"argument"); + riverArguments[1] = new Argument("TimeStepLength","3600",true,"A time step length of 1 hour"); + + riverModelLC.Initialize(riverArguments); + trigger.Initialize(new Argument[0]); + + Link link = new Link(riverModelLC, riverModelLC.GetOutputExchangeItem(2).ElementSet,riverModelLC.GetOutputExchangeItem(2).Quantity,trigger,trigger.GetInputExchangeItem(0).ElementSet,trigger.GetInputExchangeItem(0).Quantity,"LinkID"); + + //add linear conversion data operation + bool dataOperationWasFound = false; + int dataOperationIndex = -9; + for (int i = 0; i < riverModelLC.GetOutputExchangeItem(2).DataOperationCount; i++) + { + if (riverModelLC.GetOutputExchangeItem(2).GetDataOperation(i).ID == new SmartBufferDataOperation().ID) + { + dataOperationWasFound = true; + dataOperationIndex = i; + } + } + Assert.AreEqual(true,dataOperationWasFound); + IDataOperation smartBufferDataOperation = riverModelLC.GetOutputExchangeItem(2).GetDataOperation(dataOperationIndex); + bool key_A_WasFound = false; + bool key_B_WasFound = false; + bool key_Type_WasFound = false; + + for (int i = 0; i < smartBufferDataOperation.ArgumentCount; i++) + { + if ( smartBufferDataOperation.GetArgument(i).Key == "Relaxation Factor") + { + smartBufferDataOperation.GetArgument(i).Value = "0.7"; + key_A_WasFound = true; + Assert.AreEqual(false,smartBufferDataOperation.GetArgument(i).ReadOnly); + } + if ( smartBufferDataOperation.GetArgument(i).Key == "Do Extended Data Validation") + { + smartBufferDataOperation.GetArgument(i).Value = "False"; + key_B_WasFound = true; + Assert.AreEqual(false,smartBufferDataOperation.GetArgument(i).ReadOnly); + } + + if ( smartBufferDataOperation.GetArgument(i).Key == "Type") + { + key_Type_WasFound = true; + Assert.AreEqual(true,smartBufferDataOperation.GetArgument(i).ReadOnly); + } + } + + Assert.AreEqual(true,key_A_WasFound); + Assert.AreEqual(true,key_B_WasFound); + Assert.AreEqual(true,key_Type_WasFound); + Assert.AreEqual("Buffering and temporal extrapolation",smartBufferDataOperation.ID); + + link.AddDataOperation(smartBufferDataOperation); + + riverModelLC.AddLink(link); + trigger.AddLink(link); + + riverModelLC.Prepare(); + + Assert.AreEqual(0.7,((SmartOutputLink)((RiverModelLC) riverModelLC).SmartOutputLinks[0]).SmartBuffer.RelaxationFactor); + Assert.AreEqual(false,((SmartOutputLink)((RiverModelLC) riverModelLC).SmartOutputLinks[0]).SmartBuffer.DoExtendedDataVerification); + + riverModelLC.Finish(); + riverModelLC.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + + + + [Test] + public void EarliestInputTime() + { + TestEngineLC testEngineLC = new TestEngineLC(); + Trigger trigger = new Trigger(); + + testEngineLC.Initialize(new Argument[0]); + + Link triggerLink = new Link(); + triggerLink.ID = "TargetToTriggerLink"; + triggerLink.SourceComponent = testEngineLC; + triggerLink.SourceElementSet = testEngineLC.GetOutputExchangeItem(0).ElementSet; //last branch in the river + triggerLink.SourceQuantity = testEngineLC.GetOutputExchangeItem(0).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + testEngineLC.AddLink(triggerLink); + testEngineLC.Prepare(); + Assert.AreEqual(testEngineLC.TimeHorizon.Start,testEngineLC.EarliestInputTime); + + } + + [Test] + public void GetPublishedEventTypeCount() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual(6, riverModelLC.GetPublishedEventTypeCount()); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void GetPublishedEventType() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + Assert.AreEqual(EventType.DataChanged, riverModelLC.GetPublishedEventType(0)); + Assert.AreEqual(EventType.Informative, riverModelLC.GetPublishedEventType(1)); + Assert.AreEqual(EventType.SourceAfterGetValuesCall, riverModelLC.GetPublishedEventType(2)); + Assert.AreEqual(EventType.SourceBeforeGetValuesReturn, riverModelLC.GetPublishedEventType(3)); + Assert.AreEqual(EventType.TargetAfterGetValuesReturn, riverModelLC.GetPublishedEventType(4)); + Assert.AreEqual(EventType.TargetBeforeGetValuesCall, riverModelLC.GetPublishedEventType(5)); + riverModelLC.Prepare(); + riverModelLC.Finish(); + riverModelLC.Dispose(); + } + + [Test] + public void KeepCurrentState() + { + RiverModelLC riverModelLC = new RiverModelLC(); + Trigger trigger = new Trigger(); + + riverModelLC.Initialize(new Argument[0]); + + Link triggerLink = new Link(); + triggerLink.ID = "TargetToTriggerLink"; + triggerLink.SourceComponent = riverModelLC; + triggerLink.SourceElementSet = riverModelLC.GetOutputExchangeItem(0).ElementSet; //last branch in the river + triggerLink.SourceQuantity = riverModelLC.GetOutputExchangeItem(0).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + riverModelLC.AddLink(triggerLink); + riverModelLC.Prepare(); + string stateID = riverModelLC.KeepCurrentState(); + Assert.AreEqual("state:1",stateID); + } + + [Test] + public void RestoreState() + { + // This test is based on GetValues2C + try + { + ILinkableComponent timeSeries = new TimeSeriesComponent(); + ILinkableComponent upperRiver = new RiverModelLC(); + ILinkableComponent lowerRiver = new RiverModelLC(); + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + + timeSeries.Initialize(new Argument[0]); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] upperRiverArguments = new Argument[2]; + upperRiverArguments[0] = new Argument("ModelID","upperRiverModel",true,"argument"); + upperRiverArguments[1] = new Argument("TimeStepLength","21600",true,"xx"); + upperRiver.Initialize(upperRiverArguments); + + // The ModelID is passes in ordet to make it easier to debug, otherwise you cannot se the difference between the two istances of RiverModelLC + Argument[] lowerRiverArguments = new Argument[2]; + lowerRiverArguments[0] = new Argument("ModelID","lowerRiverModel",true,"argument"); + lowerRiverArguments[1] = new Argument("TimeStepLength","86400",true,"xx"); + lowerRiver.Initialize(lowerRiverArguments); + trigger.Initialize(new Argument[0]); + + Assert.AreEqual("upperRiverModel",upperRiver.ModelID); + Assert.AreEqual("lowerRiverModel",lowerRiver.ModelID); + + Link timeSeriesToUpperRiverLink = new Link(); + timeSeriesToUpperRiverLink.ID = "timeSeriesToUpperRiverLink"; + timeSeriesToUpperRiverLink.SourceComponent = timeSeries; + timeSeriesToUpperRiverLink.SourceElementSet = timeSeries.GetOutputExchangeItem(0).ElementSet; //last branch in the river + timeSeriesToUpperRiverLink.SourceQuantity = timeSeries.GetOutputExchangeItem(0).Quantity; + timeSeriesToUpperRiverLink.TargetComponent = upperRiver; + timeSeriesToUpperRiverLink.TargetElementSet = upperRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + timeSeriesToUpperRiverLink.TargetQuantity = upperRiver.GetInputExchangeItem(0).Quantity; + + Link link = new Link(); + link.ID = "RiverToRiverLink"; + link.SourceComponent = upperRiver; + link.SourceElementSet = upperRiver.GetOutputExchangeItem(2).ElementSet; //last branch in the river + link.SourceQuantity = upperRiver.GetOutputExchangeItem(2).Quantity; + link.TargetComponent = lowerRiver; + link.TargetElementSet = lowerRiver.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = lowerRiver.GetInputExchangeItem(0).Quantity; + + Link triggerLink = new Link(); + + triggerLink.ID = "TriggerLink"; + triggerLink.SourceComponent = lowerRiver; + triggerLink.SourceElementSet = lowerRiver.GetOutputExchangeItem(2).ElementSet; + triggerLink.SourceQuantity = lowerRiver.GetOutputExchangeItem(2).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + timeSeries.AddLink(timeSeriesToUpperRiverLink); + upperRiver.AddLink(timeSeriesToUpperRiverLink); + + upperRiver.AddLink(link); + lowerRiver.AddLink(link); + + lowerRiver.AddLink(triggerLink); + trigger.AddLink(triggerLink); + + timeSeries.Prepare(); + upperRiver.Prepare(); + lowerRiver.Prepare(); + trigger.Prepare(); + +// double firstTriggerGetValuesTime = lowerRiver.TimeHorizon.Start.ModifiedJulianDay; +// TimeStamp[] triggerTimes = new TimeStamp[2]; +// triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 12.5); +// triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 16.2); + + double t = lowerRiver.TimeHorizon.Start.ModifiedJulianDay; + Assert.AreEqual(315.0/32.0 + 13.0/64.0, ((ScalarSet)lowerRiver.GetValues(new TimeStamp(t+12.5),"TriggerLink")).GetScalar(0)); + string lowerRiverStateID = ((IManageState) lowerRiver).KeepCurrentState(); + string upperRiverStateID = ((IManageState) upperRiver).KeepCurrentState(); + Assert.AreEqual(315.0/32.0 + 17.0/64.0, ((ScalarSet)lowerRiver.GetValues(new TimeStamp(t+16.2),"TriggerLink")).GetScalar(0)); + ((IManageState) lowerRiver).RestoreState(lowerRiverStateID); + ((IManageState) upperRiver).RestoreState(upperRiverStateID); + lowerRiver.GetValues(new TimeStamp(t + 14.0),"TriggerLink"); + Assert.AreEqual(315.0/32.0 + 17.0/64.0, ((ScalarSet)lowerRiver.GetValues(new TimeStamp(t+16.2),"TriggerLink")).GetScalar(0)); + + + + + +// double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); +// Assert.AreEqual(315.0/32.0 + 13.0/64.0,x1); +// +// double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0); +// Assert.AreEqual(315.0/32.0 + 17.0/64.0,x2); +// +// Assert.AreEqual(2,((RiverModelLC) upperRiver)._maxBufferSize); //Test that the buffer is cleared + + upperRiver.Finish(); + lowerRiver.Finish(); + + upperRiver.Dispose(); + lowerRiver.Dispose(); + + } + catch (System.Exception e) + { + ExceptionHandler.WriteException(e); + throw (e); + } + } + + [Test] + public void ClearState() + { + RiverModelLC riverModelLC = new RiverModelLC(); + Trigger trigger = new Trigger(); + + riverModelLC.Initialize(new Argument[0]); + + Link triggerLink = new Link(); + triggerLink.ID = "TargetToTriggerLink"; + triggerLink.SourceComponent = riverModelLC; + triggerLink.SourceElementSet = riverModelLC.GetOutputExchangeItem(0).ElementSet; //last branch in the river + triggerLink.SourceQuantity = riverModelLC.GetOutputExchangeItem(0).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + riverModelLC.AddLink(triggerLink); + riverModelLC.Prepare(); + string stateID = riverModelLC.KeepCurrentState(); + Assert.AreEqual("state:1",stateID); + Assert.AreEqual(1,riverModelLC._riverModelEngine._states.Count); + riverModelLC.ClearState("state:1"); + Assert.AreEqual(0,riverModelLC._riverModelEngine._states.Count); + } + + [Test] + public void TimeToTimeStamp() + { + Oatc.OpenMI.Sdk.Backbone.TimeSpan timeSpan = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(10.0),new TimeStamp(20.0)); + Oatc.OpenMI.Sdk.Backbone.TimeStamp timeStamp = new TimeStamp(15.0); + + Assert.AreEqual(20.0, LinkableRunEngine.TimeToTimeStamp(timeSpan).ModifiedJulianDay); + Assert.AreEqual(15.0, LinkableRunEngine.TimeToTimeStamp(timeStamp).ModifiedJulianDay); + } + + [Test] + public void ITimeToString() + { + System.DateTime t1 = new DateTime(2004,7,12,10,25,34); + System.DateTime t2 = new DateTime(2004,8,15,13,15,14); + TimeStamp timeStamp1 = new TimeStamp(Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(t1)); + TimeStamp timeStamp2 = new TimeStamp(Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(t2)); + Oatc.OpenMI.Sdk.Backbone.TimeSpan timeSpan = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(timeStamp1,timeStamp2); + + Assert.AreEqual(t1.ToString(),LinkableRunEngine.ITimeToString(timeStamp1)); + string str = "[" + t1.ToString()+", "+t2.ToString()+"]"; + Assert.AreEqual(str, LinkableRunEngine.ITimeToString(timeSpan)); + + } + + [Test] + public void Dispose() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + riverModelLC.Prepare(); + riverModelLC.Finish(); + Assert.AreEqual(false,((RiverModelLC)riverModelLC)._riverModelEngine._disposeMethodWasInvoked); + riverModelLC.Dispose(); + Assert.AreEqual(true,((RiverModelLC)riverModelLC)._riverModelEngine._disposeMethodWasInvoked); + } + + [Test] + public void Finish() + { + ILinkableComponent riverModelLC = new RiverModelLC(); + riverModelLC.Initialize(new Argument[0]); + riverModelLC.Prepare(); + Assert.AreEqual(false,((RiverModelLC)riverModelLC)._riverModelEngine._finishMethodWasInvoked); + riverModelLC.Finish(); + Assert.AreEqual(true,((RiverModelLC)riverModelLC)._riverModelEngine._finishMethodWasInvoked); + riverModelLC.Dispose(); + } + + [Test] + [Ignore ("Test code is not implemented")] + public void ExpectedException01() + { + // TODO:This test should test methods are callen in correct order + } + + [Test] + public void XEvent() + { + // Event Test + // Testing : 1) That all events are actually thrown during calculations + + TestEngineLC sourceModel = new TestEngineLC(); + TestEngineLC targetModel = new TestEngineLC(); + Trigger trigger = new Trigger(); + + sourceModel.Initialize(new Argument[0]); + targetModel.Initialize(new Argument[0]); + trigger.Initialize(new Argument[0]); + + Link link = new Link(); + link.ID = "SourceToTargetLink"; + link.SourceComponent = sourceModel; + link.SourceElementSet = sourceModel.GetOutputExchangeItem(0).ElementSet; //last branch in the river + link.SourceQuantity = sourceModel.GetOutputExchangeItem(0).Quantity; + link.TargetComponent = targetModel; + link.TargetElementSet = targetModel.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = targetModel.GetInputExchangeItem(0).Quantity; + + Link triggerLink = new Link(); + triggerLink.ID = "TargetToTriggerLink"; + triggerLink.SourceComponent = targetModel; + triggerLink.SourceElementSet = targetModel.GetOutputExchangeItem(0).ElementSet; //last branch in the river + triggerLink.SourceQuantity = targetModel.GetOutputExchangeItem(0).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + sourceModel.AddLink(link); + targetModel.AddLink(link); + + targetModel.AddLink(triggerLink); + trigger.AddLink(triggerLink); + + EventListener eventListener = new EventListener(); + eventListener._isSilent = true; + + for (int i = 0; i < eventListener.GetAcceptedEventTypeCount(); i++) + { + for (int n = 0; n < sourceModel.GetPublishedEventTypeCount(); n++) + { + if (eventListener.GetAcceptedEventType(i) == sourceModel.GetPublishedEventType(n)) + { + sourceModel.Subscribe(eventListener, eventListener.GetAcceptedEventType(i)); + } + } + + for (int n = 0; n < targetModel.GetPublishedEventTypeCount(); n++) + { + if (eventListener.GetAcceptedEventType(i) == targetModel.GetPublishedEventType(n)) + { + targetModel.Subscribe(eventListener, eventListener.GetAcceptedEventType(i)); + } + } + } + + sourceModel.Prepare(); + targetModel.Prepare(); + trigger.Prepare(); + + trigger.Run(new TimeStamp(sourceModel.TimeHorizon.Start.ModifiedJulianDay + 10)); + + Assert.AreEqual(true , eventListener._dataChanged); + Assert.AreEqual(false, eventListener._globalProgress); +// Assert.AreEqual(true , eventListener._informative); //TODO This test was out commented, because it fails, further investigation needed + Assert.AreEqual(false, eventListener._other); + Assert.AreEqual(true, eventListener._sourceAfterGetValuesCall); + Assert.AreEqual(true, eventListener._sourceBeforeGetValuesReturn); + Assert.AreEqual(true, eventListener._targetAfterGetValuesReturn); + Assert.AreEqual(true, eventListener._targetBeforeGetValuesCall); + Assert.AreEqual(false, eventListener._timeStepProgres); + Assert.AreEqual(false, eventListener._valueOutOfRange); + Assert.AreEqual(false, eventListener._warning); + } + + + [Test] + public void XUnitConvertion() + { + // Unit conversion. Converting Fahrenheit to Celcius + + double x; + double y; + + TestEngineLC sourceModel = new TestEngineLC(); + TestEngineLC targetModel = new TestEngineLC(); + + sourceModel.Initialize(new Argument[0]); + targetModel.Initialize(new Argument[0]); + + Link link = new Link(); + link.ID = "SourcToTargetLink"; + link.SourceComponent = sourceModel; + link.SourceElementSet = sourceModel.GetOutputExchangeItem(0).ElementSet; //last branch in the river + link.SourceQuantity = new Quantity(new Unit("Deg. Fahrenheit",5.0/9.0, 273.16 - 32.0 * (5.0/9.0) ,"Fahrenheit"),"temperature","Temperature",global::OpenMI.Standard.ValueType.Scalar,new Dimension()); + link.TargetComponent = targetModel; + link.TargetElementSet = targetModel.GetInputExchangeItem(0).ElementSet; //first node in the river + link.TargetQuantity = new Quantity(new Unit("Deg. Celcius",1.0, 273.16,"Celcius"),"temperature","Temperature",global::OpenMI.Standard.ValueType.Scalar,new Dimension()); + + sourceModel.AddLink(link); + targetModel.AddLink(link); + + sourceModel.Prepare(); + targetModel.Prepare(); + + for (int i = 0; i < ((ScalarSet)sourceModel.GetValues(new TimeStamp(sourceModel.TimeHorizon.Start.ModifiedJulianDay + 10),"SourcToTargetLink")).Count; i++) + { + x = ((ScalarSet)sourceModel.GetValues(new TimeStamp(sourceModel.TimeHorizon.Start.ModifiedJulianDay + 10),"SourcToTargetLink")).GetScalar(i); + y = (100.0 - 32.0) * (5.0/9.0); // = 37.7778 (100 deg. F = 37.7778 deg.C) + Assert.AreEqual(y,x,0.0000000001); //internal value is 80 deg Fahrenheit + } + } + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/LinkableRunEngineTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/LinkableRunEngineTest.cs new file mode 100644 index 00000000..e137773b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/LinkableRunEngineTest.cs @@ -0,0 +1,172 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using org.OpenMI.Standard; +using org.OpenMI.Backbone; +using org.OpenMI.Utilities.Wrapper; +using NUnit.Framework; + + +namespace org.OpenMI.Utilities.Wrapper.UnitTest +{ + /// + /// Summary description for Class1. + /// + /// + [TestFixture] + public class LinkableRunEngineTest + { + +// [Test] +// [Ignore ("Test code is not implemented")] +// public void Initialize() +// { +// } +// +// [Test] +// public void ComponentID() +// { +// ILinkableComponent testRiverLC = new TestRiverLC(); +// testRiverLC.Initialize(new Argument[0]); +// Assert.AreEqual("TestRiverLCComponentID", testRiverLC.ComponentID); +// testRiverLC.Prepare(); +// testRiverLC.Finish(); +// testRiverLC.Dispose(); +// } +// +// [Test] +// public void ComponentDescription() +// { +// ILinkableComponent testRiverLC = new TestRiverLC(); +// testRiverLC.Initialize(new Argument[0]); +// Assert.AreEqual("TestRiverLCComponentDescription", testRiverLC.ComponentDescription); +// testRiverLC.Prepare(); +// testRiverLC.Finish(); +// testRiverLC.Dispose(); +// } +// +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void TimeEpsilon() +// { +// } +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void EngineApiAccess() +// { +// } +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void AddLink() +// { +// } +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void RemoveLink() +// { +// } +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void Prepare() +// { +// } +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void GetValues() +// { +// } +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void EarliestInputTime() +// { +// } +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void GetPublishedEventTypeCount() +// { +// } +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void GetPublishedEventType() +// { +// } +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void KeepCurrentState() +// { +// } +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void RestoreState() +// { +// } +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void ClearState() +// { +// } +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void TimeToTimeStamp() +// { +// } +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void ITimeToString() +// { +// } +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void Dispose() +// { +// } +// +// [Test] +// [Ignore ("Test code is not implemented")] +// public void Finish() +// { +// } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/Oatc.OpenMI.Sdk.Wrapper.UnitTest.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/Oatc.OpenMI.Sdk.Wrapper.UnitTest.csproj new file mode 100644 index 00000000..6edc52dd --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/Oatc.OpenMI.Sdk.Wrapper.UnitTest.csproj @@ -0,0 +1,204 @@ + + + + Local + 8.0.50727 + 2.0 + {D1CF8C4C-2941-49A6-A212-DCDBBF71E088} + Debug + AnyCPU + + + + + Oatc.OpenMI.Sdk.Wrapper.UnitTest + + + JScript + Grid + IE50 + false + Library + Oatc.OpenMI.Sdk.Wrapper.UnitTest + OnBuildSuccess + + + + + + + false + 3.5 + v4.0 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + ./bin/Debug + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ./bin/Release + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + ..\..\..\..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\nunit.framework.dll + + + ..\..\..\OpenMI.Standard.dll + False + + + System + + + System.Data + + + System.XML + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + {23C206AE-CBEF-4FD1-9928-BF04147B62B2} + Oatc.OpenMI.Sdk.Backbone + + + {C9844E74-074D-46FA-AEF6-371B3481468B} + Oatc.OpenMI.Sdk.Buffer + + + {B7BE8C7F-0679-4022-81A5-6A314C058429} + Oatc.OpenMI.Sdk.DevelopmentSupport + + + {4EFA1DE2-9C54-4C3F-94B1-89EA6D8E916C} + Oatc.OpenMI.Sdk.Spatial + + + {3DF52260-A727-405B-88A8-630BCE9085AC} + Oatc.OpenMI.Sdk.Wrapper + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/ReadMe.txt b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/ReadMe.txt new file mode 100644 index 00000000..a49bbdb0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/ReadMe.txt @@ -0,0 +1 @@ +Default HarmonIT ReadMe file \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/RiverModelEngine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/RiverModelEngine.cs new file mode 100644 index 00000000..be50ec62 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/RiverModelEngine.cs @@ -0,0 +1,462 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.IO; +using System.Collections; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for RiverModelEngine. + /// + public class RiverModelEngine : IEngine, IManageState + { + double[] _xCoordinate; // x-coordinates for the nodes + double[] _yCoordinate; // y-coordinates for the nodes + int _numberOfNodes; + DateTime _simulationStart; + DateTime _simulationEnd; + double _timeStepLength; //[seconds] + ArrayList _inputExchangeItems; + ArrayList _outputExchangeItems; + double[] _storage; //[liters] + double[] _flow; //[liter pr second] + double[] _leakage; //[liter pr second] + double _runoff; //[liter pr second] + int _currentTimeStepNumber; + string _modelID; + + public bool _initializeMethodWasInvoked; + public bool _finishMethodWasInvoked; + public bool _disposeMethodWasInvoked; + + public ArrayList _states; + int _stateIdCreator; + + + + public RiverModelEngine() + { + _modelID = "TestRiverModel Model ID"; + _xCoordinate = new double[]{3,5,8,8}; + _yCoordinate = new double[]{9,7,7,3}; + + _numberOfNodes = _xCoordinate.Length; + + _simulationStart = new DateTime(2005,1,1,0,0,0); + _simulationEnd = new DateTime(2005,2,10,0,0,0); + _timeStepLength = 3600*24; //one day + + _inputExchangeItems = new ArrayList(); + _outputExchangeItems = new ArrayList(); + + _storage = new double[_numberOfNodes]; + for ( int i = 0; i < _numberOfNodes; i++) + { + _storage[i] = 0; + } + _flow = new double[_numberOfNodes - 1]; + _leakage = new double[_numberOfNodes - 1]; + _runoff = 10; + _currentTimeStepNumber = 0; + + _initializeMethodWasInvoked = false; + _finishMethodWasInvoked = false; + _disposeMethodWasInvoked = false; + + _states = new ArrayList(); + _stateIdCreator = 0; + } + #region IEngine Members + + public InputExchangeItem GetInputExchangeItem(int exchangeItemIndex) + { + return (InputExchangeItem) _inputExchangeItems[exchangeItemIndex]; + } + + public ITimeSpan GetTimeHorizon() + { + TimeStamp startTime = new TimeStamp(Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(_simulationStart)); + TimeStamp endTime = new TimeStamp(Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(_simulationEnd)); + Oatc.OpenMI.Sdk.Backbone.TimeSpan timeHorizon = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(startTime,endTime); + return timeHorizon; + } + + public string GetModelID() + { + return _modelID; + } + + public int GetInputExchangeItemCount() + { + return _inputExchangeItems.Count; + } + + public OutputExchangeItem GetOutputExchangeItem(int exchangeItemIndex) + { + return (OutputExchangeItem) _outputExchangeItems[exchangeItemIndex]; + } + + public string GetModelDescription() + { + return "Test River model - Model description"; + } + + public int GetOutputExchangeItemCount() + { + return _outputExchangeItems.Count; + } + + #endregion + + #region IRunEngine Members + + public void SetValues(string QuantityID, string ElementSetID, IValueSet values) + { + char[] separator = new char[]{':'}; + + if (!(values is IScalarSet)) + { + throw new Exception("Illigal data type for values argument in method SetValues"); + } + + if (ElementSetID == "WholeRiver") + { + if (values.Count != _numberOfNodes - 1) + { + throw new Exception("Illigal number of values in ValueSet in argument to SetValues method"); + } + for ( int i = 1; i < _numberOfNodes; i++) + { + _storage[i] += ((IScalarSet) values).GetScalar(i) * _timeStepLength; + } + } + else if(ElementSetID.Split(separator)[0] == "Node") + { + if (values.Count != 1) + { + throw new Exception("illigal number of values in ValueSet in argument to SetValues method"); + } + int nodeIndex = Convert.ToInt32(ElementSetID.Split(separator)[1]); + _storage[nodeIndex] += ((IScalarSet) values).GetScalar(0) * _timeStepLength; + } + else + { + throw new Exception("Failed to recognize ElementSetID in method SetValues"); + } + } + + public string GetComponentID() + { + return "Test River Model Component ID"; + } + + public void Finish() + { + _finishMethodWasInvoked = true; + } + + public ITime GetCurrentTime() + { + double t = Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.Gregorian2ModifiedJulian(_simulationStart); + t += _currentTimeStepNumber * _timeStepLength / (24.0*3600.0); + Oatc.OpenMI.Sdk.Backbone.TimeSpan currentTime = new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(t - _timeStepLength / (24.0*3600.0)),new TimeStamp(t)); + return currentTime; + } + + public IValueSet GetValues(string QuantityID, string ElementSetID) + { + char[] separator = new char[]{':'}; + double[] x; + + if(ElementSetID.Split(separator)[0] == "Branch") + { + x = new double[1]; + int branchIndex = Convert.ToInt32(ElementSetID.Split(separator)[1]); + if (QuantityID == "Flow") + { + x[0] = _flow[branchIndex]; + } + else if (QuantityID == "Leakage") + { + x[0] = _leakage[branchIndex]; + } + else + { + throw new Exception("Quanity ID not recognized in GetValues method"); + } + + } + else if(ElementSetID.Split(separator)[0] == "WholeRiver") + { + x = new double[_leakage.Length]; + for (int i = 0; i < _leakage.Length; i++) + { + x[i] = _leakage[i]; + } + } + else + { + throw new Exception("Failed to recognize ElementSetID in method GetValues"); + } + + ScalarSet scalarSet = new ScalarSet(x); + return scalarSet; + } + + public void Dispose() + { + _disposeMethodWasInvoked = true; + } + + public string GetComponentDescription() + { + return "Test River model component description"; + } + + public ITimeStamp GetEarliestNeededTime() + { + return (ITimeStamp) ((ITimeSpan)GetCurrentTime()).Start; + } + + public void Initialize(System.Collections.Hashtable properties) + { + + if (properties.ContainsKey("ModelID")) + { + _modelID = (string) properties["ModelID"]; + } + + if (properties.ContainsKey("TimeStepLength")) + { + _timeStepLength = Convert.ToDouble((string) properties["TimeStepLength"]); + } + + // -- create a flow quanitity -- + Dimension flowDimension = new Dimension(); + flowDimension.SetPower(DimensionBase.Length,3); + flowDimension.SetPower(DimensionBase.Time,-1); + Unit literPrSecUnit = new Unit("LiterPrSecond",0.001,0,"Liters pr Second"); + Quantity flowQuantity = new Quantity(literPrSecUnit,"Flow","Flow",global::OpenMI.Standard.ValueType.Scalar,flowDimension); + + // -- create leakage quantity -- + Quantity leakageQuantity = new Quantity(literPrSecUnit,"Leakage","Leakage",global::OpenMI.Standard.ValueType.Scalar,flowDimension); + + // -- create and populate elementset to represente the whole river network -- + ElementSet fullRiverElementSet = new ElementSet("WholeRiver","WholeRiver",ElementType.XYPolyLine,new SpatialReference("no reference")); + for (int i = 0; i < _numberOfNodes -1; i++) + { + Element element = new Element(); + element.ID = "Branch:" + i.ToString(); + element.AddVertex(new Vertex(_xCoordinate[i],_yCoordinate[i],-999)); + element.AddVertex(new Vertex(_xCoordinate[i+1],_yCoordinate[i+1],-999)); + fullRiverElementSet.AddElement(element); + } + + // --- populate input exchange items for flow to individual nodes --- + for ( int i = 0; i < _numberOfNodes; i++) + { + Element element = new Element(); + element.ID = "Node:" + i.ToString(); + ElementSet elementSet = new ElementSet("Individual nodes","Node:" + i.ToString(), ElementType.IDBased,new SpatialReference("no reference")); + elementSet.AddElement(element); + InputExchangeItem inputExchangeItem = new InputExchangeItem(); + inputExchangeItem.ElementSet = elementSet; + inputExchangeItem.Quantity = flowQuantity; + + _inputExchangeItems.Add(inputExchangeItem); + } + + // --- Populate input exchange item for flow to the whole georeferenced river --- + InputExchangeItem wholeRiverInputExchangeItem = new InputExchangeItem(); + wholeRiverInputExchangeItem.ElementSet = fullRiverElementSet; + wholeRiverInputExchangeItem.Quantity = flowQuantity; + _inputExchangeItems.Add(wholeRiverInputExchangeItem); + + // --- Populate output exchange items for flow in river branches --- + for (int i = 0; i < _numberOfNodes - 1; i++) + { + Element element = new Element(); + element.ID = "Branch:" + i.ToString(); + ElementSet elementSet = new ElementSet("Individual nodes","Branch:" + i.ToString(),ElementType.IDBased,new SpatialReference("no reference")); + elementSet.AddElement(element); + OutputExchangeItem outputExchangeItem = new OutputExchangeItem(); + outputExchangeItem.ElementSet = elementSet; + outputExchangeItem.Quantity = flowQuantity; + + _outputExchangeItems.Add(outputExchangeItem); + } + + // --- polulate output exchange items for leakage for individual branches -- + for (int i = 0; i < _numberOfNodes - 1; i++) + { + Element element = new Element(); + element.ID = "Branch:" + i.ToString(); + ElementSet elementSet = new ElementSet("Individual nodes","Branch:" + i.ToString(),ElementType.IDBased,new SpatialReference("no reference")); + elementSet.AddElement(element); + OutputExchangeItem outputExchangeItem = new OutputExchangeItem(); + outputExchangeItem.ElementSet = elementSet; + outputExchangeItem.Quantity = leakageQuantity; + _outputExchangeItems.Add(outputExchangeItem); + } + + // --- Populate output exchange item for leakage from the whole georeferenced river --- + OutputExchangeItem wholeRiverOutputExchangeItem = new OutputExchangeItem(); + wholeRiverOutputExchangeItem.ElementSet = fullRiverElementSet; + wholeRiverOutputExchangeItem.Quantity = leakageQuantity; + _outputExchangeItems.Add(wholeRiverOutputExchangeItem); + + // --- populate with initial state variables --- + for (int i = 0; i < _numberOfNodes -1; i++) + { + _flow[i] = 7; + } + + _currentTimeStepNumber = 1; + _initializeMethodWasInvoked = true; + } + + public bool PerformTimeStep() + { + + for (int i = 0; i < _numberOfNodes; i++) + { + _storage[i] += _runoff * _timeStepLength; + } + + for (int i = 0; i < _numberOfNodes -1; i++) + { + _flow[i] = 0.5 * _storage[i] / _timeStepLength; + _leakage[i] = _flow[i]; + _storage[i+1] += 0.5* _storage[i]; + } + + for (int i = 0; i < _numberOfNodes; i++) + { + _storage[i] = 0; + } + + _currentTimeStepNumber++; + + // -- debug output writing ---- +// string outstring; +// outstring = "TsNo:" + _currentTimeStepNumber.ToString() + " "; +// outstring += Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.ModifiedJulian2Gregorian(((ITimeSpan)GetCurrentTime()).Start.ModifiedJulianDay).ToString() + " - "; +// outstring += Oatc.OpenMI.Sdk.DevelopmentSupport.CalendarConverter.ModifiedJulian2Gregorian(((ITimeSpan)GetCurrentTime()).End.ModifiedJulianDay).ToString() + " - "; +// for (int n = 0; n < _numberOfNodes -1; n++) +// { +// outstring += " F" + n.ToString() + ": " + _flow[n].ToString(); +// +// } +// +// System.Console.WriteLine(outstring); + + + // ---------------------------- + + return true; + } + + public double GetMissingValueDefinition() + { + return -999; + } + + public ITime GetInputTime(string QuantityID, string ElementSetID) + { + Oatc.OpenMI.Sdk.Backbone.TimeStamp inputStart = new TimeStamp(((ITimeSpan)GetCurrentTime()).End.ModifiedJulianDay); + Oatc.OpenMI.Sdk.Backbone.TimeStamp inputEnd = new TimeStamp(((ITimeSpan) GetCurrentTime()).End.ModifiedJulianDay + _timeStepLength/(24.0 * 3600.0)); + return new Oatc.OpenMI.Sdk.Backbone.TimeSpan(inputStart, inputEnd); + + } + + #endregion + + #region IManageState Members + + public string KeepCurrentState() + { + _stateIdCreator++; + + string stateID = "state:" + _stateIdCreator.ToString(); + _states.Add(new RiverModelState(stateID, this._currentTimeStepNumber)); + + return stateID; + } + + public void RestoreState(string stateID) + { + int index = -999; + + for (int i = 0; i < _states.Count; i++) + { + if (((RiverModelState)_states[i]).StateId == stateID) + { + index = i; + } + } + + if (index < 0) + { + throw new Exception("Failed to find stateID in RestoreState method"); + } + else + { + _currentTimeStepNumber = ((RiverModelState)_states[index]).TimeStepNumber; + } + } + + public void ClearState(string stateID) + { + int index = -999; + + for (int i = 0; i < _states.Count; i++) + { + if (((RiverModelState)_states[i]).StateId == stateID) + { + index = i; + } + } + + if (index < 0) + { + throw new Exception("Failed to find stateID in RemoveState method"); + } + else + { + _states.RemoveAt(index); + } + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/RiverModelLC.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/RiverModelLC.cs new file mode 100644 index 00000000..94403f07 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/RiverModelLC.cs @@ -0,0 +1,116 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for RiverModelLC. + /// + public class RiverModelLC : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine, IManageState + { + + public RiverModelEngine _riverModelEngine; + public int _maxBufferSize; + + public RiverModelLC() + { + _riverModelEngine = new RiverModelEngine(); + _maxBufferSize = 0; + } + + public override IValueSet GetValues(ITime time, string linkID) + { + int timesCount = ((SmartOutputLink)this.SmartOutputLinks[0]).SmartBuffer.TimesCount; + if (timesCount > _maxBufferSize) + { + _maxBufferSize = timesCount; + } + + return base.GetValues(time, linkID); + + } + + protected override void SetEngineApiAccess() + { + _engineApiAccess = _riverModelEngine; + } + + // used for testing only + public bool PrepareForCompotationWasInvoked + { + get + { + return (this._prepareForCompotationWasInvoked); + } + } + + // used for testing only + public ArrayList SmartInputLinks + { + get + { + return (this._smartInputLinks); + } + } + + // used for testing only + public ArrayList SmartOutputLinks + { + get + { + return (this._smartOutputLinks); + } + } + + // used for testing only + public ArrayList ValidationErrorMessages + { + get + { + return (this._validationErrorMessages); + } + } + + // used for testing only + public ArrayList ValidationWarningMessages + { + get + { + return (this._validationWarningMessages ); + } + } + } + + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/RiverModelLC.omi b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/RiverModelLC.omi new file mode 100644 index 00000000..3af89632 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/RiverModelLC.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/RiverModelLcLoadingAssemblyFromGAC.omi b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/RiverModelLcLoadingAssemblyFromGAC.omi new file mode 100644 index 00000000..55932e5e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/RiverModelLcLoadingAssemblyFromGAC.omi @@ -0,0 +1,6 @@ + +"> + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/RiverModelState.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/RiverModelState.cs new file mode 100644 index 00000000..a87eada0 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/RiverModelState.cs @@ -0,0 +1,63 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for RiverModelState. + /// + public class RiverModelState + { + string _stateID; + int _timeStepNumber; + + public RiverModelState(string stateID, int timeStepNumber) + { + _stateID = stateID; + _timeStepNumber = timeStepNumber; + } + + public int TimeStepNumber + { + get + { + return (this._timeStepNumber); + } + } + + public string StateId + { + get + { + return (this._stateID); + } + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartBufferDataOperationTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartBufferDataOperationTest.cs new file mode 100644 index 00000000..c47d30fa --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartBufferDataOperationTest.cs @@ -0,0 +1,39 @@ +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + [TestFixture] + public class SmartBufferDataOperationTest + { + private SmartBufferDataOperation _dataOperation; + + [SetUp] + public void Setup() + { + _dataOperation = new SmartBufferDataOperation(); + _dataOperation.GetArgument(1).Value = "2"; + } + + [Test] + public void Clone() + { + SmartBufferDataOperation dataOperation = (SmartBufferDataOperation)_dataOperation.Clone(); + Assert.AreEqual(_dataOperation.ArgumentCount, dataOperation.ArgumentCount, "ArgumentCount"); + + Assert.AreEqual(_dataOperation.GetArgument(0).Description, dataOperation.GetArgument(0).Description, "Description 0"); + Assert.AreEqual(_dataOperation.GetArgument(0).Key, dataOperation.GetArgument(0).Key, "Key 0"); + Assert.AreEqual(_dataOperation.GetArgument(0).ReadOnly, dataOperation.GetArgument(0).ReadOnly, "ReadOnly 0"); + Assert.AreEqual(_dataOperation.GetArgument(0).Value, dataOperation.GetArgument(0).Value, "Value 0"); + + Assert.AreEqual(_dataOperation.GetArgument(1).Description, dataOperation.GetArgument(1).Description, "Description 1"); + Assert.AreEqual(_dataOperation.GetArgument(1).Key, dataOperation.GetArgument(1).Key, "Key 1"); + Assert.AreEqual(_dataOperation.GetArgument(1).ReadOnly, dataOperation.GetArgument(1).ReadOnly, "ReadOnly 1"); + Assert.AreEqual(_dataOperation.GetArgument(1).Value, dataOperation.GetArgument(1).Value, "Value 1"); + + Assert.AreEqual(_dataOperation.GetArgument(2).Description, dataOperation.GetArgument(2).Description, "Description 2"); + Assert.AreEqual(_dataOperation.GetArgument(2).Key, dataOperation.GetArgument(2).Key, "Key 2"); + Assert.AreEqual(_dataOperation.GetArgument(2).ReadOnly, dataOperation.GetArgument(2).ReadOnly, "ReadOnly 2"); + Assert.AreEqual(_dataOperation.GetArgument(2).Value, dataOperation.GetArgument(2).Value, "Value 2"); + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartInputLinkSetTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartInputLinkSetTest.cs new file mode 100644 index 00000000..c9b37c3a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartInputLinkSetTest.cs @@ -0,0 +1,52 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; + +namespace org.OpenMI.Utilities.Wrapper.UnitTest +{ + + [TestFixture] + public class SmartInputLinkSetTest + { + + [Test] + [Ignore ("Test code is not implemented")] + public void AddLink() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void UpdateInput() + { + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartInputLinkTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartInputLinkTest.cs new file mode 100644 index 00000000..afc8ce57 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartInputLinkTest.cs @@ -0,0 +1,51 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; + +namespace org.OpenMI.Utilities.Wrapper.UnitTest +{ + + [TestFixture] + public class SmartInputLinkTest + { + [Test] + [Ignore ("Test code is not implemented")] + public void Initialize() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void UpdateInput() + { + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartLinkSetTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartLinkSetTest.cs new file mode 100644 index 00000000..cac0cb08 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartLinkSetTest.cs @@ -0,0 +1,69 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; + +namespace org.OpenMI.Utilities.Wrapper.UnitTest +{ + + [TestFixture] + public class SmartLinkSetTest + { + + [Test] + [Ignore ("Test code is not implemented")] + public void AddLink() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void getLink() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void Initialize() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void RemoveLink() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void SmartLinkList() + { + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartLinkTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartLinkTest.cs new file mode 100644 index 00000000..9504aeb2 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartLinkTest.cs @@ -0,0 +1,51 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; + +namespace org.OpenMI.Utilities.Wrapper.UnitTest +{ + [TestFixture] + public class SmartLinkTest + { + + [Test] + [Ignore ("Test code is not implemented")] + public void Initialize() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void PropertyLink() + { + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartOutputLinkSetTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartOutputLinkSetTest.cs new file mode 100644 index 00000000..e10b00f7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartOutputLinkSetTest.cs @@ -0,0 +1,69 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; + +namespace org.OpenMI.Utilities.Wrapper.UnitTest +{ + + [TestFixture] + public class SmartOutputLinkSetTest + { + + [Test] + [Ignore ("Test code is not implemented")] + public void AddLink() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void ClearBuffersAfter() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void GetLatestBufferTime() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void GetValue() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void UpdateBuffers() + { + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartOutputLinkTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartOutputLinkTest.cs new file mode 100644 index 00000000..46bee515 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/SmartOutputLinkTest.cs @@ -0,0 +1,88 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using NUnit.Framework; + +namespace org.OpenMI.Utilities.Wrapper.UnitTest +{ + [TestFixture] + public class SmartOutputLinkTest + { + + [Test] + [Ignore ("Test code is not implemented")] + public void GetValue() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void Initialize() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void UpdateBuffer() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void SmartBuffer() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void ClearBufferState() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void KeepCurrentBufferState() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void RestoreBufferState() + { + } + + [Test] + [Ignore ("Test code is not implemented")] + public void ConvertUnit() + { + } + + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TestEngine.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TestEngine.cs new file mode 100644 index 00000000..fdabcc98 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TestEngine.cs @@ -0,0 +1,213 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using Oatc.OpenMI.Sdk.Backbone; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for TestEngine. + /// + public class TestEngine : Oatc.OpenMI.Sdk.Wrapper.IEngine + { + InputExchangeItem _inputExchangeItem; + OutputExchangeItem _outputExchangeItem; + double[] _values; + double _startTime; + double _currentTime; + double _initialValue; + double _dt; //time step length [days] + double _dx; //values are incremented by _dx in each time step + string _modelID; //used for debugging in ordet see the difference between two instances of TestEngineLC + + public TestEngine() + { + _modelID = "TestEngineComponentID"; + + } + #region IEngine Members + + public InputExchangeItem GetInputExchangeItem(int exchangeItemIndex) + { + return _inputExchangeItem; + } + + public ITimeSpan GetTimeHorizon() + { + return new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(_startTime),new TimeStamp(_startTime + 100.0)); + } + + public string GetModelID() + { + return _modelID; + } + + public int GetInputExchangeItemCount() + { + return 1; + } + + public OutputExchangeItem GetOutputExchangeItem(int exchangeItemIndex) + { + return _outputExchangeItem; + } + + public string GetModelDescription() + { + return "TestModelDescription"; + } + + public int GetOutputExchangeItemCount() + { + return 1; + } + + #endregion + + #region IRunEngine Members + + public void SetValues(string QuantityID, string ElementSetID, IValueSet values) + { + for (int i = 0; i < _values.Length; i++) + { + _values[i] = ((ScalarSet)values).GetScalar(0); + } + } + + public string GetComponentID() + { + return "testEngineCompoentID"; + } + + public void Finish() + { + + } + + public ITime GetCurrentTime() + { + return new TimeStamp(_currentTime); + } + + public IValueSet GetValues(string QuantityID, string ElementSetID) + { + return new ScalarSet(_values); + } + + public void Dispose() + { + + } + + public string GetComponentDescription() + { + return "TestEngineComponentDescription"; + } + + public ITimeStamp GetEarliestNeededTime() + { + return new TimeStamp(_currentTime); + } + + public void Initialize(System.Collections.Hashtable properties) + { + + _dt = 1.0; + _dx = 0.0; + _initialValue = 100; + + if (properties.ContainsKey("modelID")) + { + _modelID = (string) properties["ModelID"]; + } + + if (properties.ContainsKey("dt")) + { + _dt = (double) properties["dt"]; + } + + if (properties.ContainsKey("dx")) + { + _dx = (double) properties["dx"]; + } + + _values = new double[3]; + + for (int i = 0; i < _values.Length; i++) + { + _values[i] = _initialValue; + } + + _startTime = 4000; + _currentTime = _startTime; + + Element element = new Element("ElementID"); + ElementSet elementSet = new ElementSet("Description","ID",ElementType.IDBased,new SpatialReference(" no ")); + elementSet.AddElement(element); + Quantity quantity = new Quantity(new Unit("Flow",1,0,"flow"),"Flow","ID",global::OpenMI.Standard.ValueType.Scalar,new Dimension()); + + _outputExchangeItem = new OutputExchangeItem(); + _inputExchangeItem = new InputExchangeItem(); + + _outputExchangeItem.Quantity = quantity; + _outputExchangeItem.ElementSet = elementSet; + + _inputExchangeItem.Quantity = quantity; + _inputExchangeItem.ElementSet = elementSet; + } + + public bool PerformTimeStep() + { + for (int i = 0; i < _values.Length; i++) + { + _values[i] += _dx; + } + + _currentTime += _dt; + + + return true; + } + + public double GetMissingValueDefinition() + { + return -999.0; + } + + public ITime GetInputTime(string QuantityID, string ElementSetID) + { + return new TimeStamp(_currentTime); + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TestEngineLC.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TestEngineLC.cs new file mode 100644 index 00000000..24acdbd7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TestEngineLC.cs @@ -0,0 +1,67 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Wrapper; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for TestEngineLC. + /// + public class TestEngineLC : Oatc.OpenMI.Sdk.Wrapper.LinkableEngine + { + protected override void SetEngineApiAccess() + { + _engineApiAccess = new TestEngine(); + } + + // used for testing only + public ArrayList SmartInputLinks + { + get + { + return (this._smartInputLinks); + } + } + + // used for testing only + public ArrayList SmartOutputLinks + { + get + { + return (this._smartOutputLinks); + } + } + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TestEngineLC.omi b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TestEngineLC.omi new file mode 100644 index 00000000..0e3f0e5d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TestEngineLC.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TimeSeriesComponent.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TimeSeriesComponent.cs new file mode 100644 index 00000000..ad396a82 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TimeSeriesComponent.cs @@ -0,0 +1,171 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Buffer; +using Oatc.OpenMI.Sdk.DevelopmentSupport; + + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for TimeSeriesComponent. + /// + public class TimeSeriesComponent : Oatc.OpenMI.Sdk.Backbone.LinkableComponent + { + Oatc.OpenMI.Sdk.Buffer.SmartBuffer buffer = new SmartBuffer(); + + public TimeSeriesComponent() + { + // + // TODO: Add constructor logic here + // + } + + public override IOutputExchangeItem GetOutputExchangeItem(int outputExchangeItemIndex) + { + Quantity quantity = new Quantity(new Unit("literprSecond",0.001,0,"lprsec"),"flow","flow", global::OpenMI.Standard.ValueType.Scalar,new Dimension()); + ElementSet elementSet = new ElementSet("oo","ID",ElementType.IDBased,new SpatialReference("no")); + Element element = new Element("ElementID"); + elementSet.AddElement(element); + OutputExchangeItem outputExchangeItem = new OutputExchangeItem(); + outputExchangeItem.ElementSet = elementSet; + outputExchangeItem.Quantity = quantity; + + return outputExchangeItem; + } + + public override IValueSet GetValues(ITime time, string LinkID) + { + return buffer.GetValues(time); + } + + public override string ComponentDescription + { + get + { + return "ComponentDescription"; + } + } + + public override string ComponentID + { + get + { + return "TimeSeriesComponentID"; + } + } + + public override ITimeStamp EarliestInputTime + { + get + { + return null; + } + } + + public override int InputExchangeItemCount + { + get + { + return 0; + } + } + + public override string ModelDescription + { + get + { + return "TimeSeriesCompnent used for testing"; + } + } + + public override string ModelID + { + get + { + return "TimeSeriesComponentID"; + } + } + + public override int OutputExchangeItemCount + { + get + { + return 1; + } + } + + public override ITimeSpan TimeHorizon + { + get + { + TimeStamp start = new TimeStamp( ((ITimeSpan)(buffer.GetTimeAt(0))).Start ); + TimeStamp end = new TimeStamp( ((ITimeSpan)(buffer.GetTimeAt(buffer.TimesCount - 1))).End); + return new Oatc.OpenMI.Sdk.Backbone.TimeSpan(start, end); + } + } + + public override EventType GetPublishedEventType(int providedEventTypeIndex) + { + return EventType.Other; + } + + public override int GetPublishedEventTypeCount() + { + return 0; + } + + public override void Initialize(IArgument[] properties) + { + double start = CalendarConverter.Gregorian2ModifiedJulian(new DateTime(2004,12,31,0,0,0)); + + for (int i = 0; i < 30; i++) + { + buffer.AddValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(start + i),new TimeStamp(start + i + 1)), new ScalarSet(new double[] {(double)i})); + } + } + + public override string Validate() + { + return null; + } + + public override void Finish() + { + + } + + public override void Prepare() + { + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TimeSeriesComponent.omi b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TimeSeriesComponent.omi new file mode 100644 index 00000000..fac4bb36 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TimeSeriesComponent.omi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TimeSeriesComponentTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TimeSeriesComponentTest.cs new file mode 100644 index 00000000..e53b59ac --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/TimeSeriesComponentTest.cs @@ -0,0 +1,97 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.IO; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Buffer; +using NUnit.Framework; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for TimeSeriesComponentTest. + /// + [TestFixture] + public class TimeSeriesComponentTest + { + [Test] + public void ComponentID() + { + TimeSeriesComponent ts = new TimeSeriesComponent(); + Assert.AreEqual("TimeSeriesComponentID",ts.ComponentID); + } + + [Test] + public void GetValues() + { + Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new Oatc.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); + TimeSeriesComponent ts = new TimeSeriesComponent(); + + ts.Initialize(new Argument[0]); + Link triggerLink = new Link(); + + triggerLink.ID = "TriggerLink"; + triggerLink.SourceComponent = ts; + triggerLink.SourceElementSet = ts.GetOutputExchangeItem(0).ElementSet; + triggerLink.SourceQuantity = ts.GetOutputExchangeItem(0).Quantity; + triggerLink.TargetComponent = trigger; + triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; + triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; + + trigger.AddLink(triggerLink); + ts.AddLink(triggerLink); + + double tt = ts.TimeHorizon.Start.ModifiedJulianDay; + TimeStamp[] triggerTimes = new TimeStamp[4]; + triggerTimes[0] = new TimeStamp(tt + 0.5); + triggerTimes[1] = new TimeStamp(tt + 1.5); + triggerTimes[2] = new TimeStamp(tt + 1.9); + triggerTimes[3] = new TimeStamp(tt + 2.1); + + trigger.Run(triggerTimes); + Assert.AreEqual(0,((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0)); + Assert.AreEqual(1,((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0)); + Assert.AreEqual(1,((IScalarSet)trigger.ResultsBuffer.GetValuesAt(2)).GetScalar(0)); + Assert.AreEqual(2,((IScalarSet)trigger.ResultsBuffer.GetValuesAt(3)).GetScalar(0)); + + //Teting with timespans + Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt+2),new TimeStamp(tt + 2.0 + 1.0/24.0)),"TriggerLink")).GetScalar(0)); + Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 1.0/24.0),new TimeStamp(tt + 2.0 + 2.0/24.0)),"TriggerLink")).GetScalar(0)); + Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 2.0/24.0),new TimeStamp(tt + 2.0 + 3.0/24.0)),"TriggerLink")).GetScalar(0)); + Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 5.0/24.0),new TimeStamp(tt + 2.0 + 6.0/24.0)),"TriggerLink")).GetScalar(0)); + Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 15.0/24.0),new TimeStamp(tt + 2.0 + 16.0/24.0)),"TriggerLink")).GetScalar(0)); + Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 23.0/24.0),new TimeStamp(tt + 2.0 + 24.0/24.0)),"TriggerLink")).GetScalar(0)); + Assert.AreEqual(3.0,((ScalarSet) ts.GetValues(new Oatc.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 3.0 ),new TimeStamp(tt + 3.0 + 1.0/24.0)),"TriggerLink")).GetScalar(0)); + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/Trigger.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/Trigger.cs new file mode 100644 index 00000000..486389a5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/sdk/Wrapper/UnitTest/Trigger.cs @@ -0,0 +1,263 @@ +#region Copyright +/* +* Copyright (c) 2005,2006,2007, OpenMI Association +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenMI Association nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY "OpenMI Association" ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL "OpenMI Association" BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#endregion +using System; +using System.Collections; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.Buffer; + +namespace Oatc.OpenMI.Sdk.Wrapper.UnitTest +{ + /// + /// Summary description for Trigger. + /// + public class Trigger : ILinkableComponent + { + private ILink _link; + private Oatc.OpenMI.Sdk.Buffer.SmartBuffer _resultsBuffer; + private TimeStamp _earliestInputTime; + + public Trigger() + { + _resultsBuffer = new SmartBuffer(); + _earliestInputTime = new TimeStamp(0); + } + + public SmartBuffer ResultsBuffer + { + get + { + return _resultsBuffer; + } + } + + public void Finish() + { + } + + public ITimeStamp EarliestInputTime + { + get + { + return _earliestInputTime; + } + } + + public void AddLink(ILink link) + { + _link = link; + } + + public void Dispose() + { + // TODO: Add Trigger.Dispose implementation + } + + public IValueSet GetValues(ITime time, string linkID) + { + // TODO: Add Trigger.GetValues implementation + return null; + } + + public string ComponentDescription + { + get + { + // TODO: Add Trigger.Description getter implementation + return null; + } + } + + + public string ComponentID + { + get + { + // TODO: Add Trigger.ID getter implementation + return null; + } + } + + + public void Initialize(IArgument[] properties) + { + // TODO: Add Trigger.Initialize implementation + } + + public string ModelID + { + get + { + // TODO: Add Trigger.ID getter implementation + return "Trigger"; + } + } + + public string ModelDescription + { + get + { + // TODO: Add Trigger.ID getter implementation + return null; + } + } + + + public void Prepare() + { + // TODO: Add Trigger.PrepareForComputation implementation + } + + public void RemoveLink(string linkID) + { + // TODO: Add Trigger.RemoveLink implementation + } + + public int InputExchangeItemCount + { + get + { + return 1; + } + } + + public int OutputExchangeItemCount + { + get + { + return 0; + } + } + + public IInputExchangeItem GetInputExchangeItem(int index) + { + + // -- create a flow quanitity -- + Dimension flowDimension = new Dimension(); + flowDimension.SetPower(DimensionBase.Length,3); + flowDimension.SetPower(DimensionBase.Time,-1); + Unit literPrSecUnit = new Unit("LiterPrSecond",0.001,0,"Liters pr Second"); + Quantity flowQuantity = new Quantity(literPrSecUnit,"Flow","Flow",global::OpenMI.Standard.ValueType.Scalar,flowDimension); + + Element element = new Element(); + element.ID = "DummyElement"; + ElementSet elementSet = new ElementSet("Dummy ElementSet","DummyElementSet",ElementType.IDBased,new SpatialReference("no reference")); + elementSet.AddElement(element); + + InputExchangeItem inputExchangeItem = new InputExchangeItem(); + inputExchangeItem.ElementSet = elementSet; + inputExchangeItem.Quantity = flowQuantity; + + return inputExchangeItem; + } + + + public IOutputExchangeItem GetOutputExchangeItem(int index) + { + + return null; + + + } + + public ITimeSpan TimeHorizon + { + get + { + return null; + } + } + + public string Validate() + { + //TODO: Inplement this method correctly + return ""; + } + + public void Run(ITime[] GetValuesTimes) + { + for (int i = 0; i < GetValuesTimes.Length; i++) + { + _resultsBuffer.AddValues(GetValuesTimes[i],(IScalarSet) _link.SourceComponent.GetValues(GetValuesTimes[i],_link.ID)); + _earliestInputTime.ModifiedJulianDay = ((ITimeStamp) GetValuesTimes[i]).ModifiedJulianDay; + } + } + + public void Run(ITimeStamp time) + { + //IScalarSet scalarSet = new ScalarSet(); + + ScalarSet scalarSet = new ScalarSet((IScalarSet) _link.SourceComponent.GetValues(time,_link.ID)); + _earliestInputTime.ModifiedJulianDay = time.ModifiedJulianDay; + _resultsBuffer.AddValues(time,scalarSet); + } + + public int GetResultsCount() + { + return _resultsBuffer.ValuesCount; + } + + public double GetResult(int index) + { + return ((ScalarSet)_resultsBuffer.GetValuesAt(_resultsBuffer.TimesCount - 1)).GetScalar(index); + } + + + #region IPublisher Members + + public void SendEvent(IEvent Event) + { + // TODO: Add Trigger.SendEvent implementation + } + + public void UnSubscribe(IListener listener, EventType eventType) + { + // TODO: Add Trigger.UnSubscribe implementation + } + + public EventType GetPublishedEventType(int providedEventTypeIndex) + { + // TODO: Add Trigger.GetPublishedEventType implementation + return EventType.Informative; + } + + public void Subscribe(IListener listener, EventType eventType) + { + // TODO: Add Trigger.Subscribe implementation + } + + public int GetPublishedEventTypeCount() + { + // TODO: Add Trigger.GetPublishedEventTypeCount implementation + return 0; + } + + #endregion + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/AssemblyInfo.cs new file mode 100644 index 00000000..6fd1096a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/AssemblyInfo.cs @@ -0,0 +1,28 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion +using System.Reflection; +using System.Runtime.CompilerServices; +[assembly: AssemblyTitle("OpenMI Standard Assembly")] +[assembly: AssemblyVersion("1.4.0.0")] +[assembly: AssemblyCompany("OpenMI Association")] +[assembly: AssemblyProduct("OpenMI 1.4")] +[assembly: AssemblyCopyright("GNU Library or Lesser General Public License (LGPL)")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IArgument.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IArgument.cs new file mode 100644 index 00000000..0163416a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IArgument.cs @@ -0,0 +1,60 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// The IArgument interface defines a key value pair. If the property ReadOnly is + /// false the value is editable otherwise it is read-only. + /// + public interface IArgument + { + /// + /// The key (string) in key-value pair. + /// + string Key {get;} + + /// + /// The value (double) in key-value pair. + /// + /// If the ReadOnly property is true and the property is attempted to be changed + /// from outside an exception must be thrown. + /// + string Value + { + get; + set; + } + + /// + /// Defines whether the Values property may be edited from outside. + /// + bool ReadOnly {get;} + + + /// + /// Description of the key-value pair. + /// + string Description {get;} + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IDataOperation.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IDataOperation.cs new file mode 100644 index 00000000..02651e43 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IDataOperation.cs @@ -0,0 +1,87 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + + /// + /// DataOperation interface + /// + + public interface IDataOperation + { + /// + /// This method should not be a part of the standard since it is not required + /// to be invoked by any outside component. However, in order to avoid changing + /// the standard it will remain in the IDataOperation interface. + /// It is recommended simply to make an empty implementation of this method. + /// + void Initialize(IArgument[] properties); + + /// + /// Identification string for the data operation. + /// + /// Two or more data operations provided by one OutputExchangeItem may not have the same ID. + /// + /// EXAMPLE: + /// "Mean value", "Max value", "Spatially averaged", "Accumulated", "linear conversion" + /// + string ID {get;} + + + /// + /// Number of arguments for this data operation + /// + int ArgumentCount {get;} + + + /// + /// Gets the argument object (instance of class implementing IArgument) as + /// identified by the argumentIndex parameter. + /// + /// + /// + /// The index-number of the requested DataOperation(indexing starts from zero) + /// This method must accept values of argumentIndex in the interval [0, ArgumentCount - 1]. + /// If the argumentIndex is outside this interval an exception must be thrown.. + /// + /// The Argument as identified by argumentIndex. + IArgument GetArgument(int argumentIndex); + + /// + /// Validates a specific combination of InputExchangeItem, OutputExchangeItem and a + /// selection of DataOperations. If this combination is valid true should be + /// returned otherwise false should be returned. + /// + /// + /// The input exchange item. + /// + /// The output exchange item. + /// + /// The already selected data operations. + /// + /// True if the combination of InputExchangeItem, OutputExchangeItem, and the array + /// of dataOperations provided in the methods argument is valid, otherwise false. + bool IsValid(IInputExchangeItem inputExchangeItem,IOutputExchangeItem outputExchangeItem, + IDataOperation[] selectedDataOperations); + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IDimension.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IDimension.cs new file mode 100644 index 00000000..6d14f35f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IDimension.cs @@ -0,0 +1,128 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// Enumeration for base dimensions + /// + + public enum DimensionBase : int + { + /// + /// Base dimension length. + /// + + Length = 0, + + /// + /// Base dimension mass. + /// + + Mass = 1, + + + /// + /// Base dimension time. + /// + + Time = 2, + + + /// + /// Base dimension electric current. + /// + + ElectricCurrent = 3, + + + /// + /// Base dimension temperature. + /// + + Temperature = 4, + + + /// + /// Base dimension amount of substance. + /// + + AmountOfSubstance = 5, + + + /// + /// Base dimension luminous intensity. + /// + + LuminousIntensity = 6, + + + /// + /// Base dimension currency. + /// + + Currency = 7, + + /// + /// Total number of base dimensions. + /// + + NUM_BASE_DIMENSIONS + + } + + /// + /// Dimension interface + /// + + public interface IDimension + { + + /// + /// Returns the power for the requested dimension + /// + /// EXAMPLE: + /// For a quantity such as flow, which may have the unit m3/s, the GetPower method must + /// work as follows: + /// + /// myDimension.GetPower(DimensionBase.AmountOfSubstance) -->returns 0 + /// myDimension.GetPower(DimensionBase.Currency) --> returns 0 + /// myDimension.GetPower(DimensionBase.ElectricCurrent) --> returns 0 + /// myDimension.GetPower(DimensionBase.Length) --> returns 3 + /// myDimension.GetPower(DimensionBase.LuminousIntensity) --> returns 0 + /// myDimension.GetPower(DimensionBase.Mass) --> returns 0 + /// myDimension.GetPower(DimensionBase.Temperature) --> returns 0 + /// myDimension.GetPower(DimensionBase.Time) --> returns -1 + /// + double GetPower(DimensionBase baseQuantity); + + + /// + /// Check if a Dimension instance equals to another Dimension instance. + /// + /// Dimension instance to compare with. + /// True if the dimensions are equal. + bool Equals(IDimension otherDimension); + + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IDiscreteTimes.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IDiscreteTimes.cs new file mode 100644 index 00000000..938a9b3d --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IDiscreteTimes.cs @@ -0,0 +1,66 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// Within and outside modelling exercises, many situations occur where raw data is desired at + /// the (discrete) time stamp as it is available in the source component. A typical example is + /// the comparison of computation results with monitoring data, or a computational core that wants + /// to adhere to the time stepping of its data source. To keep the values fixed to the discrete + /// times as they are available in the source component, the IDiscreteTimes interface has been + /// defined. This interface can provide a list of time stamps for which values of a quantity on + /// an element set are available. + /// + /// Note that the IDiscreteTimes interface is an optional interface to provide more detailed + /// information on the temporal discretization of available data. It is not required to implement + /// the IDiscreteTimes interface in order to claim OpenMI compliance for a Component. However, if + /// the IDiscreteTimes interface is implemented it must be implemented according to the definitions + /// given below. + /// + public interface IDiscreteTimes + { + /// + /// Returns true if the component can provide discrete times for the specific exchange + /// item defined by the arguments quantity and elementSet + /// + bool HasDiscreteTimes(IQuantity quantity, IElementSet elementSet); + + + /// + /// Returns the number of discrete time steps for a specific combination of ElementSet and Quantity + /// + int GetDiscreteTimesCount(IQuantity quantity, IElementSet elementSet); + + + /// + /// Get n-th discrete time stamp or time span for a specific combination of ElementSet and Quantity. + /// This method must accept values of discreteTimeIndex in the interval [0, GetDiscreteTimesCount - 1]. + /// If the discreteTimeIndex is outside this interval an exception must be thrown. + /// + /// The quantity. + /// The element. + /// index of timeStep. + /// Discrete time stamp or time span. + ITime GetDiscreteTime(IQuantity quantity, IElementSet elementSet, int discreteTimeIndex); + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IElementSet.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IElementSet.cs new file mode 100644 index 00000000..9b9aea50 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IElementSet.cs @@ -0,0 +1,247 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// Shape Type of an Elementset + /// + + public enum ElementType : int + { + /// + /// Identifier based + IDBased = 0, + /// + /// Points + XYPoint = 1, + /// + /// Lines + XYLine = 2, + /// + /// Polylines + XYPolyLine = 3, + /// + /// Polygons + XYPolygon = 4, + + + /// + /// 3D Point + /// + XYZPoint = 5, + + /// + /// 3D Line + /// + XYZLine = 6, + + /// + /// 3D Polyline + /// + XYZPolyLine = 7, + + /// + /// 3D Polygon + /// + XYZPolygon = 8, + + /// + /// 3D Polyhedron + /// + XYZPolyhedron = 9 + } + + /// + /// Data exchange between components in OpenMI is always related to one or more elements in a space, + /// either geo-referenced or not. An element set in OpenMI can be anything from a one-dimensional array + /// of points, line segments, poly lines or polygons, through to an array of three-dimensional volumes. + /// As a special case, a cloud of IDBased elements (without co-ordinates) is also supported thus allowing + /// exchange of arbitrary data that is not related to space in any way. + /// + /// The IElementSet interface has been defined to describe, in a finite element sense, the space where + /// the values apply, while preserving a course granularity level of the interface. + /// + /// Conceptually, IElementSet is composed of an ordered list of elements having a common type. + /// The geometry of each element can be described by an ordered list of vertices. The shape of + /// three-dimensional elements (i.e. volumes or polyhedrons) can be queried by face. If the element set + /// is geo-referenced (i.e. the SpatialReference is not Null), co-ordinates (X,Y,Z) can be obtained for + /// each vertex of an element. The ElementType is an enumeration, listed in Table 1. Data not related + /// to spatial representation can be described by composing an element set containing one (or more) + /// IDBased elements, without any geo-reference. + /// + /// Note that IElementSet can be used to query the geometric description of a model schematization, + /// but an implementation does not necessarily provide all topological knowledge on inter-element + /// connections. + /// + /// The interface of a spatial reference (ISpatialReference) only contains a string ID. No other + /// properties and methods have been defined, as the OpenGIS SpatialReferenceSystem + /// specification (OGC 2002) provides an excellent standard for this purpose. + /// + /// The element set and the element are identified by a string ID. The ID is intended to be useful + /// in terms of an end user. This is particularly useful for configuration as well as for providing + /// specific logging information. However, the properties of an element (its vertices and/or faces) + /// are obtained using an integer index (elementIndex, faceIndex and vertexIndex). This functionality + /// is introduced because an element set is basically an ordered list of elements, an element may have + /// faces and an element (or a face) is an ordered list of vertices. The integer index indicates the + /// location of the element/vertex in the array list. + /// + /// While most models encapsulate static element sets, some advanced models might contain dynamic + /// elements (e.g. waves). A version number has been introduced to enable tracking of changes over + /// time. If the version changes, the element set might need to be queried again during the computation + /// process. + /// + + public interface IElementSet + { + + /// + /// Identification string + /// + /// EXAMPLE: + /// "River Branch 34", "Node 34" + /// + string ID {get;} + + + /// + /// Additional descriptive information + /// + string Description {get;} + + + /// + /// The SpatialReference defines the spatial reference to be used in association with + /// the coordinates in the ElementSet. For all ElementSet Types except ElementType.IDBased + /// a spatial reference must be defined. For ElementSets of type ElementType.IDBased the + /// SpatialReference property may be null. + /// + /// EXAMPLE: + /// SpatialReference.ID = "WG84" or "Local coordinate system" + /// + /// + /// + ISpatialReference SpatialReference {get;} + + + /// + /// ElementType of the elementset. + /// + ElementType ElementType {get;} + + + /// + /// Number of elements in the ElementSet + /// + int ElementCount {get;} + + + /// + /// The current version number for the populated ElementSet. + /// The version must be incremented if anything inside the ElementSet is changed. + /// + int Version {get;} + + + /// + /// Index of element 'ElementID' in the elementset. Indexes start from zero. + /// There are not restrictions to how elements are ordered. + /// + /// + /// Identification string for the element for which the element index is requested. + /// If no element in the ElementSet has the specified elementID, an exception must be thrown. + /// . + int GetElementIndex(string elementID); + + + /// + /// Returns ID of 'ElementIndex'-th element in the ElementSet. Indexes start from zero. + /// + /// + /// The element index for which the element ID is requested. If the element index is outside + /// the range [0, number of elements -1], and exception must be thrown. + /// . + string GetElementID(int elementIndex); + + + /// + /// Number of vertices for the element specified by the elementIndex. + /// + /// If the GetVertexCount()method is invoked for ElementSets of type ElementType.IDBased, an exception + /// must be thrown. + /// + /// + /// + /// The element index for the element for which the number of vertices is requested. + /// + /// If the element index is outside the range [0, number of elements -1], and exception + /// must be thrown. + /// . + /// Number of vertices in element defined by the elementIndex. + int GetVertexCount(int elementIndex); + + /// + /// Returns the number of faces in an element. + /// + /// + /// Index for the element + /// + /// If the element index is outside the range [0, number of elements -1], and exception + /// must be thrown. + /// . + /// Number of faces. + int GetFaceCount (int elementIndex); + + + /// + /// Gives an array with the vertex indices for a face. + /// + /// Element index. + /// Face index. + /// The vertex indices for this face. + int[] GetFaceVertexIndices(int elementIndex, int faceIndex); + + /// + /// X-coord for the vertex with VertexIndex of the element with ElementIndex + /// + /// element index. + /// vertex index in the element with index ElementIndex. + + double GetXCoordinate(int elementIndex, int vertexIndex); + /// + /// Y-coord for the vertex with VertexIndex of the element with ElementIndex. + /// + /// element index. + /// vertex index in the element with index ElementIndex. + + double GetYCoordinate(int elementIndex, int vertexIndex); + + /// + /// Z-coord for the vertex with VertexIndex of the element with ElementIndex. + /// + /// element index. + /// vertex index in the element with index ElementIndex. + double GetZCoordinate(int elementIndex, int vertexIndex); + + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IEvent.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IEvent.cs new file mode 100644 index 00000000..89eb3270 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IEvent.cs @@ -0,0 +1,163 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + + /// + /// Enumeration for event types + /// + public enum EventType : int + { + /// + /// Warning. + /// + Warning = 0, + + /// + /// Informative. Any type of information. + /// + Informative = 1, + + /// + /// Value out of range. If a LinkableComponent receives values through the GetValues method, + /// which are detected by the receiving component as out-of-range an OutOfRange event must + /// be send. Alternatively, if the component cannot proceed with the received value or if + /// proceeding with the received value will make the component unstable or make the component + /// generate erroneous results and exception can be thrown. + /// + ValueOutOfRange = 2, + + /// + /// Global progress. Indicates progress as percentage of global time horizon. It + /// is not mandatory for LinkableComponent to provide this event type. + /// + GlobalProgress = 3, + + /// + /// Timestep progress. Indicates progress as % for the current time step. + /// It is not mandatory for LinkableComponent to provide this event type. + /// + TimeStepProgres = 4, + + /// + /// Data changed. Events of this event type must be send at least once + /// during each period when the LinkableComponent hold the thread if the internal + /// state of the component has changed. + /// + DataChanged = 5, + + /// + /// Target before GetValues call. Immediately before a LinkableComponent invokes + /// the GetValues method in another LinkableComponent an event of type + /// TargetBeforeGetValuesCall must be send. + /// + TargetBeforeGetValuesCall = 6, + + /// + /// Source after GetValues call. Immediately when the GetValues method is invoked in + /// a LinkableComponent this component must send an event of type SourceAfterGetValuesCall + /// + SourceAfterGetValuesCall = 7, + + /// + /// Source before GetValues return. Immediately before a LinkableComponent in which the GetValues + /// method has been invoked returns the thread to the calling component an event of type + /// SourceBeforeGetValuesReturn must be send. + /// + SourceBeforeGetValuesReturn = 8, + + /// + /// Target after GetValues return. Immediately after a LinkableComponent which has + /// invoked the GetValues method in another LinkableComponent receives the thread back from + /// this component (after this component returns the values) an event of type + /// TargetAfterGetValuesReturn must be send. + /// + TargetAfterGetValuesReturn = 9, + + /// + /// Other. Any other event that is found useful to implement. + /// + Other = 10, + + /// + /// Number of event types + /// + NUM_OF_EVENT_TYPES // added by Jan Curn (3/10/2005) + } + /// + /// Within modern software systems, events are often applied for all types of messaging. Within + /// OpenMI a lightweight event mechanism is applied, using a generic Event interface and an enumeration + /// of event types (OpenMI.Standard.EventType) to allow the implementation of generic tools that + /// perform monitoring tasks such as logging, tracing, or online visualization. Linkable components + /// must generate events to which other linkable components or tools can subscribe. In this way, it + /// becomes possible to implement these generic tools without requiring any knowledge of the specific + /// tools in the components themselves. By adopting the OpenMI event types, system developers can use + /// those tools without additional effort. Note that the event mechanism should not be used to pass + /// data sets. Data sets should be retrieved through the GetValues() call. + /// + /// The event mechanism is also used to facilitate pausing and resuming of the computation + /// thread, as the computation process of an entire model chain is rather autonomous and not + /// controlled by any master controller. Once a component receives the thread, it must send an + /// event, so listeners (e.g. a GUI) can grab and hold the thread, and thus pause the computation + /// by not returning control. In normal conditions, the control is returned so the component can + /// continue its computation. Of course the computation is also controlled at the level that + /// triggers the first component of the chain by means of a GetValues()-call. Stop firing those + /// calls will also result in a paused system, although it may take a while before an entire call + /// stack completes its processing activity. + /// + + public interface IEvent + { + + /// + /// Type of event + /// + EventType Type {get;} + + + /// + /// Additional descriptive information + /// + string Description {get;} + + + /// + /// Linkable component that generated the event + /// + ILinkableComponent Sender {get;} + + + /// + /// Current SimulationTime + /// + ITimeStamp SimulationTime {get;} + + + /// + /// Get the value of a Key=Value pair, containing additional information on the event. + /// This method must throw an exception if the key is not recognized. + /// + object GetAttribute(string key); + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IExchangeItem.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IExchangeItem.cs new file mode 100644 index 00000000..5ae7403c --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IExchangeItem.cs @@ -0,0 +1,47 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// ExchangeItem interface + /// + + public interface IExchangeItem + { + + /// + /// The Quantity + /// + + IQuantity Quantity {get;} + + + /// + /// The ElementSet + /// + + IElementSet ElementSet {get;} + + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IInputExchangeItem.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IInputExchangeItem.cs new file mode 100644 index 00000000..c9a464aa --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IInputExchangeItem.cs @@ -0,0 +1,34 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// An IInputExchangeItem describes an input item that can be accepted by a LinkableComponent. + /// The item describes a combination of quantity and elementSet that can be accepted. + /// + + public interface IInputExchangeItem : IExchangeItem + { + } +} + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ILink.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ILink.cs new file mode 100644 index 00000000..5365ce33 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ILink.cs @@ -0,0 +1,102 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + //TODO: write some more xml comments.. + /// + /// Link interface + /// + + public interface ILink + { + + /// + /// Identification string + /// + string ID {get;} + + + /// + /// Additional descriptive information + /// + string Description {get;} + + + /// + /// Number of data operations + /// + int DataOperationsCount {get;} + + + /// + /// Get the data operation with index DataOperationIndex. + /// If this method is invoked with a dataOperationIndex, which is outside the interval + /// [0,DataOperationCount] an exception must be thrown. + /// + /// DataOperation according to the argument: dataOperationCount. + IDataOperation GetDataOperation(int dataOperationIndex); + + + /// + /// Target quantity + /// + + IQuantity TargetQuantity {get;} + + + /// + /// Target elementset + /// + + IElementSet TargetElementSet {get;} + + + /// + /// Source elementset + /// + + IElementSet SourceElementSet {get;} + + + /// + /// Souce linkable component + /// + + ILinkableComponent SourceComponent {get;} + + + /// + /// Source quantity + /// + + IQuantity SourceQuantity {get;} + + + /// + /// Target linkable component + /// + + ILinkableComponent TargetComponent {get;} + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ILinkableComponent.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ILinkableComponent.cs new file mode 100644 index 00000000..7684eeb9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ILinkableComponent.cs @@ -0,0 +1,401 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// The ILinkableComponent is the key interface in the OpenMI standard. + /// Any OpenMI compliant component must implement ILinkableComponent. + /// + /// OpenMI compliance definition: + /// + /// 1) An OpenMI compliant component must implement the ILinkableComponent interface according to specifications provided as comments in the OpenMI.Standard interface source code. + /// + /// 2) An OpenMI compliant component must, when compiled, reference the OpenMI.Standard.dll, which is released and compiled by the OpenMI Association. + /// + /// 3) An OpenMI compliant component must be associated with a XML file, which complies to (can be validated with) the LinkableComponent.xsd schema. + /// + /// 4) An OpenMI compliant component must be associated with a XML file, which complies to (can be validated with) the OpenMICompliancyInfo.xsd schema. This file must be submitted to the OpenMI Association. + /// + /// 5) The OpenMI Association provides two additional interfaces which OpenMI compliant components may or may not implement; the IManageState interface and the IDiscreteTimes interface. However, if these interfaces are implemented, each method and property must implemented according to the comments given in the OpenMI.Standard interface source code. + /// + /// 6) The OpenMI Associations downloadable standard zip file provides the only recognized version of source files, xml schemas and assembly file. + /// + + public interface ILinkableComponent : IPublisher + { + /// + /// Initializes the LinkableComponent. + /// + /// The Initialize method will and must be invoked before any other method or property in the + /// ILinkableComponent interface is invoked. + /// + /// When the Initialize methods has been invoked the properties ModelID, ModelDescription, + /// ComponentID, ComponentDescription, InputExchangeItemCount, OutExchangeItemCount, TimeHorizon, + /// and the methods GetInputExchangeItem( ), GetOutputExchangeItem( ), AddLink( ), RemoveLink( ), + /// Validate( ), and Prepare( ) must be prepared for invocation. + /// + /// It is only required that the method Initialize can be invoked once. If the Initialize method + /// is invoked more that once and the LinkableComponent cannot handle this; an exception must be + /// thrown. + /// + /// REMARKS: + /// The properties argument is typically generated based on the information given in the OMI file. + /// The arguments typically contain information about name and location of input files. + /// The Initialize method will typically populate the component by reading input files, allocate memory, + /// and organize the input exchange items and output exchange items. + /// + /// + /// + /// see OpenMI.Standard.IArgument interface + /// . + void Initialize(IArgument[] properties); + + + /// + /// Identifies the specific ILinkableComponent implementation (the class not the instance/object) + /// + /// This property must be accessible after the Initialize( ) method has been + /// invoked and until the Finish( ) method has been invoked. If this property + /// is accessed before the Initialize( ) method has been invoked or after the + /// Finish( ) method has been invoked and the LinkableComponent cannot handle + /// this and exception must be thrown. + /// + /// EXAMPLE: + /// "MODFLOW", "Mike 11", "Hydroworks RS", "Sobek", "HEC RAS" + /// + string ComponentID {get;} + + + /// + /// Describes the ILinkableComponent implementation (the class not the instance/object) + /// + /// This property must be accessible after the Initialize( ) method has been + /// invoked and until the Finish( ) method has been invoked. If this property + /// is accessed before the Initialize( ) method has been invoked or after the + /// Finish( ) method has been invoked and the LinkableComponent cannot handle + /// this an exception must be thrown. + /// + /// EXAMPLE: + /// "MODFLOW Ground water model", "Mike 11 riveer model", "Hydroworks RS river model", "Sobek river model" + /// + string ComponentDescription {get;} + + /// + /// Identifies the instance of the LinkableComponent (the instantiated and populated object) + /// + /// This property must be accessible after the Initialize( ) method has been + /// invoked and until the Finish( ) method has been invoked. If this property + /// is accessed before the Initialize( ) method has been invoked or after the + /// Finish( ) method has been invoked and the LinkableComponent cannot handle + /// this and exception must be thrown. + /// + /// EXAMPLE: + /// "The Rhine river model", "Catchment 23A" + /// + string ModelID {get;} + + + /// + /// Describes the instance of the LinkableComponent (the instantiated and populated object) + /// + /// This property must be accessible after the Initialize( ) method has been + /// invoked and until the Finish( ) method has been invoked. If this property + /// is accessed before the Initialize( ) method has been invoked or after the + /// Finish( ) method has been invoked and the LinkableComponent cannot handle + /// this and exception must be thrown. + /// + /// EXAMPLE: + /// "The Rhine river model hydrodynamic model, wet season scenario" + /// + string ModelDescription {get;} + + /// + /// Defines the number of input exchange items that can be retrieves + /// with the GetInputExchangeItem( ) method. + /// + /// This property must be accessible after the Initialize( ) method has been + /// invoked and until the Prepare( ) method has been invoked. If this property + /// is accessed before the Initialize( ) method has been invoked or after the + /// Prepare( ) method has been invoked and the LinkableComponent cannot handle + /// this an exception must be thrown. + /// + int InputExchangeItemCount {get;} + + /// + /// Returns the InputExchangeItem corresponding to the inputExchangeItemIndex + /// provided in the method arguments. + /// + /// This method must be accessible after the Initialize( ) method has been + /// invoked and until the Prepare( ) method has been invoked. If this property + /// is accessed before the Initialize( ) method has been invoked or after the + /// Prepare( ) method has been invoked and the LinkableComponent cannot handle + /// this an exception must be thrown. + /// + /// This method basically returns a reference to the InputExchangeItem object. + /// There is no guarantee that this object is not altered by other components + /// after it has been returned. It is the responsibility of the LinkableComponent + /// to make sure that such possible alterations does not subsequently corrupt + /// the LinkableComponent. + /// + /// + /// + /// Identifies the index-number of the requested InputExchangeItem (indexing starts from zero) + /// This method must accept values of inputExchangeItemIndex in the interval + /// [0, InputExchangeItemCount - 1]. If the inputExchangeItemIndex is outside this + /// interval an exception must be thrown. + /// + /// + /// The InputExchangeItem as identified by inputExchangeItemIndex. + /// + IInputExchangeItem GetInputExchangeItem(int inputExchangeItemIndex); + + /// + /// Defines the number of output exchange items that can be retrieves + /// from the GetOutputExchangeItem( ) method. + /// + /// This property must be accessible after the Initialize( ) method has been + /// invoked and until the Prepare( ) method has been invoked. If this property + /// is accessed before the Initialize( ) method has been invoked or after the + /// Prepare( ) method has been invoked and the LinkableComponent cannot handle + /// this an exception must be thrown. + /// + int OutputExchangeItemCount {get;} + + + /// + /// Returns the OutputExchangeItem corresponding to the outputExchangeItemIndex + /// provided in the method arguments. + /// + /// This method must be accessible after the Initialize( ) method has been + /// invoked and until the Prepare( ) method has been invoked. If this property + /// is accessed before the Initialize( ) method has been invoked or after the + /// Prepare( ) method has been invoked and the LinkableComponent cannot handle + /// this an exception must be thrown. + /// + /// This method basically returns a reference to the OutputExchangeItem object. + /// There is no guarantee that this object is not altered by other components + /// after it has been returned. It is the responsibility of the LinkableComponent + /// to make sure that such possible alterations does not subsequently corrupt + /// the LinkableComponent. + /// + /// + /// + /// Identifies the index-number of the requested OutputExchangeItem (indexing starts from zero) + /// This method must accept values of outputExchangeItemIndex in the interval + /// [0, OutputExchangeItemCount - 1]. If the outputExchangeItemIndex is outside this + /// interval an exception must be thrown. + /// + /// + /// The OutputExchangeItem as identified by inputExchangeItemIndex. + /// + IOutputExchangeItem GetOutputExchangeItem(int outputExchangeItemIndex); + + /// + /// Defines the time span within which the LinkableComponent can return values without + /// using temporal extrapolation. For numerical models this is typically the time horizon + /// of the available input data. If the LinkableComponent does not know time at all or of + /// the LinkableComponent can provide data at any time null should be returned. + /// + /// Note that the GetValues( ) method may be invoked with time arguments that outside the time + /// horizon defined in this method. In this case the linkable component may return extrapolated + /// values or throw an exception if the sound values cannot be generated by means of extrapolation. + /// + /// This property must be accessible after the Initialize( ) method has been + /// invoked and until the Prepare( ) method has been invoked. If this property + /// is accessed before the Initialize( ) method has been invoked or after the + /// Prepare( ) method has been invoked and the LinkableComponent cannot handle + /// this an exception must be thrown. + /// + ITimeSpan TimeHorizon {get;} + + /// + /// Adds a Link to the LinkableComponent + /// + /// This method must be accessible after the Initialize( ) method has been + /// invoked and until the Prepare( ) method has been invoked. If this property + /// is accessed before the Initialize( ) method has been invoked or after the + /// Prepare method has been invoked and the LinkableComponent cannot handle + /// this an exception must be thrown. + /// + /// + /// Link to be added. + void AddLink (ILink link); + + /// + /// Removes a Link from the LinkableComponent + /// + /// This method must be accessible after the Initialize( ) method has been + /// invoked and until the Prepare( ) method has been invoked. If this property + /// is accessed before the Initialize( ) method has been invoked or after the + /// Prepare( ) method has been invoked and the LinkableComponent cannot handle + /// this an exception must be thrown. + /// + /// If the LinkID is not recognized an exception must be thrown + /// + /// + /// LinkID for the link to be removed. + void RemoveLink(string linkID); + + /// + /// Validates the populated instance of the LinkableComponent + /// + /// This method must be accessible after the Initialize( ) method has been + /// invoked and until the Finish( ) method has been invoked. If this property + /// is accessed before the Initialize( ) method has been invoked or after the + /// Finish( ) method has been invoked and the LinkableComponent cannot handle + /// this an exception must be thrown. + /// + /// + /// + /// Returns an empty string if the component is valid otherwise returns a message + /// + string Validate(); + + + /// + /// Prepare for GetValues invocation + /// + /// This method must be accessible after the Initialize( ) method has been + /// invoked and until the Finish( ) method has been invoked. If this property + /// is accessed before the Initialize( ) method has been invoked or after the + /// Finish( ) method has been invoked and the LinkableComponent cannot handle + /// this an exception must be thrown. + /// + /// It is only required that the Prepare( ) method can be invoked once. If the Prepare method + /// is invoked more that once and the LinkableComponent cannot handle this an exception must be thrown. + /// + void Prepare(); + + + /// + /// Returns a ValuesSet, which is either a ScalarSet or a VectorSet, where the values applies + /// to the time (TimeStamp or TimeSpan) defined in the method arguments and corresponds to the + /// previously added Link, which is identified by the LinkID provided in the method arguments. + /// + /// The number of Scalars or Vectors must match the number of elements in the target ElementSet + /// as defined in Link.TargetElementSet.ElementCount + /// + /// The GetValues method must accept requests for data for any previously added link. + /// If the LinkID is not recognized an exception must be thrown. + /// + /// If the Unit conversion factor and/or the Unit offset of the provided quantity does + /// not match the Unit conversion factor and/or the Unit offset of the accepting quantity, + /// unit conversion must be performed so the provided values corresponds to the unit of the + /// accepting quantity. + /// + /// If the accepting ElementSet is geo-referenced the provided values must be converted to + /// apply to the geometry of the elements in the accepting ElementSet. + /// + /// If the LinkableComponent at the time when the GetValues method is invoked has invoked + /// the GetValues method on the invoking LinkableComponet and this component has not yet return + /// the values, the LinkableComponent may not re-invoke the GetValues method again on that component + /// until it has returned the values. + /// + /// The GetValues method is not required to return values for times outside the TimeHorizon of the + /// LinkableComponent. If the GetValues method is invoked with a time argument that is outside the + /// TimeHorizon of the LinkableComponent and the LinkableComponent cannot handle such invocation + /// an exception must be thrown. + /// + /// The GetValues method is not required to return values before the time defined by the EarliestInputTime + /// property of the accepting component. If the GetValues method is invoked with a time argument that is + /// before this time and the LinkableComponent cannot handle this an exception must be thrown + /// + /// The LinkableComponent must send the SourceAfterGetValuesCall event immediately after the GetValues + /// method is invoked. The LinkableComponent must send the SourceBeforeGetValuesReturn event immediately + /// preceding it returns the values. If the LinkableComponent invokes GetValues in an other + /// LinkableComponent it must send the TargetBeforeGetValuesCall event immediately preceding the + /// GetValues invocation and the TargetAfterGetValuesReturn event immediately after the invoked + /// LinkableComponent has retuned the values. If the LinkableComponent is progressing time steps + /// or changing state the TimeStepProgress event and/or the DataChange event, respectively must + /// be send. + /// + /// The GetValues method must be accessible after the Prepare( ) method has been + /// invoked and until the Finish( ) method has been invoked. If this Method + /// is accessed before the Prepare( ) method has been invoked or after the + /// Finish( ) method has been invoked and the LinkableComponent cannot handle + /// this an exception must be thrown. + /// + /// This method basically returns a reference to the ValueSet object. + /// There is no guarantee that this object is not altered by other components + /// after it has been returned. It is the responsibility of the LinkableComponent + /// to make sure that such possible alterations does not subsequently corrupt + /// the LinkableComponent. + /// + /// + /// + /// The time for which the values are requested. + /// + /// + /// ID for the previously added link object. + /// + /// + /// ValueSet corresponding the the time and LinkID argument (ScalarSet or VectorSet) + /// + IValueSet GetValues(ITime time, string linkID); + + + /// + /// The earliestInputTime property defines earliest time for which the LinkableComponent + /// will invoke the GetValues on other LinkableComponent. The LinkableComponent must + /// ensure that earliestInputTime property always reflects the latest possible time. + /// When the earliestInputTime property is updated the updated time must always be + /// later than any previous times exposed by this property + /// + /// This property must be accessible after the Prepare( ) method has been + /// invoked and until the Finish( ) method has been invoked. If this property + /// is accessed before the Prepare( ) method has been invoked or after the + /// Finish( ) method has been invoked and the LinkableComponent cannot handle + /// this an exception must be thrown. + /// + /// REMARKS: + /// Most time stepping numerical models keeps typically only the calculated values corresponding + /// to the current time step and the previous time step in memery. In order to enable the + /// LinkableComponent to return values before that an internal buffer is typically established + /// for each link added to this component. The earliestInputTime property on the LinkableComponent + /// to which such component is linked is typically used to detect which time related data that + /// can be removed from these buffers. + /// + ITimeStamp EarliestInputTime {get;} + + /// + /// This method is and must be invoked as the second last of any methods in the + /// ILinkableComponent interface. + /// + /// This method must be accessible after the Initialize() method has been invoked + /// and before the Dispose() method has been invoked. If this method is invoked before + /// the Initialize() method has been invoked or after the Dispose() method has + /// been invoked and the LinkableComponent cannot handled this an exception must be thrown. + /// + void Finish(); + + /// + /// This method is and must be invoked as the last of any methods in the ILinkableComponent interface. + /// + /// This method must be accessible after the Finish() method has been invoked. + /// If this method is invoked before the Finish() method has been invoked and the + /// LinkableComponent cannot handled this an exception must be thrown. + /// + void Dispose(); + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IListener.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IListener.cs new file mode 100644 index 00000000..fbfb5bdc --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IListener.cs @@ -0,0 +1,56 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// Listener interface + /// + public interface IListener + { + /// + /// Method called when event is raised + /// + /// Event that has been raised. + void OnEvent(IEvent anEvent); + + /// + /// Get number of accepted event types + /// + /// Number of accepted event types. + int GetAcceptedEventTypeCount(); + + + /// + /// Get accepted event type with index acceptedEventTypeIndex. + /// + /// If this method is invoked with an argument that is outside the interval + /// [0, numberOfAcceptedEventsTypes], where numberOfAcceptedEventsTypes is + /// the values obtained through the method GetAcceptedEventTypeCount(), + /// an exception must be thrown. + /// + /// index in accepted event types. + /// Accepted event type. + EventType GetAcceptedEventType(int acceptedEventTypeIndex); + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IManageState.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IManageState.cs new file mode 100644 index 00000000..d23e0b13 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IManageState.cs @@ -0,0 +1,53 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// Manage State Interface. (To be implemented optionally, in addition to + /// the linkable component interface.) + /// + public interface IManageState + { + + /// + /// Store the linkable component's current State + /// + /// State identifier. + string KeepCurrentState(); + + /// + /// Restores the state identified by the parameter stateID. If the state identifier identified by + /// stateID is not known by the linkable component an exception should be trown. + /// + /// State identifier. + void RestoreState(string stateID); + + /// + /// Clears a state from the linkable component's memory. If the state identifier identified by + /// stateID is not known by the linkable component an exception should be trown. + /// + /// State identifier. + void ClearState(string stateID); + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IOutputExchangeItem.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IOutputExchangeItem.cs new file mode 100644 index 00000000..30b1f430 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IOutputExchangeItem.cs @@ -0,0 +1,48 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// An IOutputExchangeItem describes an output item that can be delivered by a LinkableComponent. + /// The item describes on which elementset a quantity can be provided. + /// An output exchange item may provide data operations (interpolation in time, spatial interpolation etc.) that can + /// be performed on the output exchange item before the values are delivered to the target ILinkableComponent + /// + + public interface IOutputExchangeItem : IExchangeItem + { + /// + /// The number of data operations that can be performed on the output quantity/elemenset. + /// + int DataOperationCount {get;} + + + /// + /// Get one of the data operations that can be performed on the output quantity/elemenset. + /// + /// The index for the data operation [0, DataOperationCount-1]. + /// The data operation for index dataOperationIndex. + IDataOperation GetDataOperation (int dataOperationIndex); + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IPublisher.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IPublisher.cs new file mode 100644 index 00000000..0811452a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IPublisher.cs @@ -0,0 +1,71 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + + /// + /// Publisher interface + /// + + public interface IPublisher + { + + /// + /// Subscribes a listener + /// + /// The listener. + /// The event type. + void Subscribe(IListener listener, EventType eventType); + + + /// + /// Unsubscribes a listener + /// + /// The listener. + /// The event type. + void UnSubscribe(IListener listener, EventType eventType); + + + /// + /// Sends an event to all subscribed listeners + /// + /// The event. + void SendEvent(IEvent Event); + + + /// + /// Get number of published event types + /// + /// Number of provided event types. + int GetPublishedEventTypeCount(); + + + /// + /// Get provided event type with index providedEventTypeIndex + /// + /// index in provided event types. + /// Provided event type. + EventType GetPublishedEventType(int providedEventTypeIndex); + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IQuantity.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IQuantity.cs new file mode 100644 index 00000000..b3878b30 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IQuantity.cs @@ -0,0 +1,76 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + + /// + /// Value(Set)Type for Quantity + /// + + public enum ValueType : int + { + /// + /// Scalar + Scalar = 1, + /// + /// Vector + Vector = 2 + } + + /// + /// Quantity interface + /// + public interface IQuantity + { + /// + /// Identifier + /// + + string ID {get;} + + /// + /// Additional descriptive information + /// + + string Description {get;} + + /// + /// Quantity's value type (vector, scalar or ...) + /// + + ValueType ValueType {get;} + + /// + /// Quantity's Dimension + /// + + IDimension Dimension {get;} + + /// + /// Unit + /// + + IUnit Unit {get;} + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IScalarSet.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IScalarSet.cs new file mode 100644 index 00000000..c98d8187 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IScalarSet.cs @@ -0,0 +1,43 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// ScalarSet interface + /// (Array of doubles for a certain quantity on a certain elementset). + /// + + public interface IScalarSet : IValueSet + { + + /// + /// Value for one of the elements in the set + /// + /// index in the scalar set. + /// double scalar value. + + double GetScalar(int elementIndex); + + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ISpatialReference.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ISpatialReference.cs new file mode 100644 index 00000000..f681c474 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ISpatialReference.cs @@ -0,0 +1,38 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// SpatialReference interface + /// + + public interface ISpatialReference + { + /// + /// Identifier indicating which spatial reference to use + /// + + string ID {get;} + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ITime.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ITime.cs new file mode 100644 index 00000000..9bb90da9 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ITime.cs @@ -0,0 +1,35 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + + /// + /// Time interface + /// ('Abstract' interface, base for TimeStamp and TimeSpan) + /// + + public interface ITime + { + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ITimeSpan.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ITimeSpan.cs new file mode 100644 index 00000000..46b56d92 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ITimeSpan.cs @@ -0,0 +1,43 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// TimeSpan interface + /// + + public interface ITimeSpan : ITime + { + /// + /// Time span's begin time stamp + /// + + ITimeStamp Start {get;} + + /// + /// Time span's end time stamp + /// + + ITimeStamp End {get;} + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ITimeStamp.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ITimeStamp.cs new file mode 100644 index 00000000..af7e4bd1 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/ITimeStamp.cs @@ -0,0 +1,43 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + + /// + /// TimeStamp interface + /// + + public interface ITimeStamp : ITime + { + + /// + /// Get TimeStamp expressed as ModifiedJulianDateAndTime (JulianDateAndTime - 2400000.5) + /// Number of days since 1858/11/17 12:00:00.00, and fraction of 24hr. + /// See for example http://aa.usno.navy.mil/data/docs/JulianDate.html + /// + + double ModifiedJulianDay {get;} + + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IUnit.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IUnit.cs new file mode 100644 index 00000000..2427dd4f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IUnit.cs @@ -0,0 +1,55 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// Unit interface + /// + public interface IUnit + { + /// + /// Identification string + /// + + string ID {get;} + + /// + /// Additional descriptive information + /// + + string Description {get;} + + /// + /// Conversion factor to SI ('A' in: SI-value = A * quant-value + B) + /// + + double ConversionFactorToSI {get;} + + /// + /// OffSet to SI ('B' in: SI-value = A * quant-value + B) + /// + + double OffSetToSI {get;} + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IValueSet.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IValueSet.cs new file mode 100644 index 00000000..219ef4c2 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IValueSet.cs @@ -0,0 +1,48 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// ValueSet interface + /// (Base for VectorSet and ScalarSet) + /// + + public interface IValueSet + { + + /// + /// Number of elements in the set + /// + + int Count {get;} + + /// + /// Is a value valid or missing/deleted? + /// + /// The element index. + /// True if the value is valid. + bool IsValid(int elementIndex); + + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IVector.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IVector.cs new file mode 100644 index 00000000..3a2c5ccd --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IVector.cs @@ -0,0 +1,49 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// Vector interface + /// + + public interface IVector + { + /// + /// Vector component in X-direction + /// + + double XComponent {get;} + + /// + /// Vector component in Y-direction + /// + + double YComponent {get;} + + /// + /// Vector component in Z-direction + /// + + double ZComponent {get;} + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IVectorSet.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IVectorSet.cs new file mode 100644 index 00000000..476b5bc7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/IVectorSet.cs @@ -0,0 +1,43 @@ +#region Copyright +/* + Copyright (c) 2005,2006,2007, OpenMI Association + "http://www.openmi.org/" + + This file is part of OpenMI.Standard.dll + + OpenMI.Standard.dll is free software; you can redistribute it and/or modify + it under the terms of the Lesser GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + OpenMI.Standard.dll is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Lesser GNU General Public License for more details. + + You should have received a copy of the Lesser GNU General Public License + along with this program. If not, see . +*/ +#endregion + +namespace OpenMI.Standard +{ + /// + /// VectorSet interface + /// (Array of vectors for a certain quantity on a certain elementset). + /// + + public interface IVectorSet : IValueSet + { + + /// + /// Vector for one of the elements in the set + /// + /// index in the vector set. + /// vector. + + IVector GetVector(int elementIndex); + + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/OpenMI.Standard.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/OpenMI.Standard.csproj new file mode 100644 index 00000000..08ba3f36 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/OpenMI.Standard.csproj @@ -0,0 +1,196 @@ + + + + Local + 8.0.50727 + 2.0 + {E768C562-3A5A-40C5-ADF1-1957AE4BCD27} + Debug + AnyCPU + + + + + OpenMI.Standard + OpenMI.Standard.snk + JScript + Grid + IE50 + false + Library + OpenMI.Standard + OnBuildSuccess + + + + + + + true + v4.0 + 2.0 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + ..\..\..\..\..\..\..\Binaries\Plugins\HydroModeler\ + false + 285212672 + false + + + DEBUG;TRACE + ..\bin\OpenMI.Standard.XML + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ..\..\ + false + 285212672 + false + + + TRACE + ..\bin\OpenMI.Standard.XML + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/OpenMI.Standard.sln b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/OpenMI.Standard.sln new file mode 100644 index 00000000..726180a7 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/OpenMI.Standard.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenMI.Standard", "OpenMI.Standard.csproj", "{E768C562-3A5A-40C5-ADF1-1957AE4BCD27}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E768C562-3A5A-40C5-ADF1-1957AE4BCD27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E768C562-3A5A-40C5-ADF1-1957AE4BCD27}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E768C562-3A5A-40C5-ADF1-1957AE4BCD27}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E768C562-3A5A-40C5-ADF1-1957AE4BCD27}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/OpenMI.Standard.snk b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/OpenMI.Standard.snk new file mode 100644 index 00000000..75fe2577 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/OpenMI.Standard.snk differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/OpenMIStandard.cd b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/OpenMIStandard.cd new file mode 100644 index 00000000..5ff87f98 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/OpenMI/standard/OpenMI.Standard/OpenMIStandard.cd @@ -0,0 +1,200 @@ + + + + + + + IArgument.cs + AAAAAAAAAAAgAAQAAAAAAAAAAAAAAAAAAAAoAAAAAAA= + + + + + + IDataOperation.cs + AAgAAAAAAAAAgQAAAAgAAAAAAgAAAAAAAAAAAAAAAAA= + + + + + + IDimension.cs + AAAAAAAAAAAAAAAAgAAAAAAAAAAAAQAAAAAAAAAAAAA= + + + + + + IDiscreteTimes.cs + AAAAAAAQAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAA= + + + + + + IElementSet.cs + ICAABAAQAAAkgAAAAAAAAAAIAAAAAAOAABAAAAAEAAA= + + + + + + IEvent.cs + AAAAAAAAAAAgAAAAAAAAAAAAAAAAEAIAAQAAAAAIAAA= + + + + + + IExchangeItem.cs + AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAgAAAAAA= + + + + + + ILink.cs + AAgAEAAAAAAggAAAAAAAAABAIAAACAAIQAAAAAIAAAA= + + + + + + ILinkableComponent.cs + AAQgAAAAICCAQQAEAQIAACAQAADAAAABAAIAAAEAAAg= + + + + + + IListener.cs + AQAAAAAAAAAAAAAAAEAAAAAAAAAAAQAAAAAAAAAAAAA= + + + + + + IManageState.cs + AIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgABAAA= + + + + + + IOutputExchangeItem.cs + AAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAIAAAA= + + + + + + IPublisher.cs + AAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAQAAAAgAABAg= + + + + + + IQuantity.cs + AAAAAAAAAAAggAAAIAAAAAAAAAAAQAAAAAAAAAAAEAA= + + + + + + IScalarSet.cs + AAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAA= + + + + + + ISpatialReference.cs + AAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + + + + ITimeSpan.cs + AAIAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + + + + ITimeStamp.cs + AAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAA= + + + + + + IUnit.cs + AAAAAAAAAAAggAAQAIAAAAAAAAAAAAAAAAAAAAAAAAA= + + + + + + IValueSet.cs + AAAAAAAAAAAAAAAAAAgAAAQAAAAAAAAAAAAAAAAAAAA= + + + + + + IVector.cs + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAABAAAAAgAA= + + + + + + IVectorSet.cs + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA= + + + + + + IInputExchangeItem.cs + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + + + + ITime.cs + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + + + + IDimension.cs + AAAAAAEAAAAAAAAAAAAABABACAAAAAAQAAAAAACEgQA= + + + + + + IElementSet.cs + AEAAEAgAACQAAAAAAAACAAAAAQAAAAAAAAAgQAABAAA= + + + + + + IEvent.cs + BAAAECAAAEEAAAAAAAAABBAAIAAgQAAAAABAAAAAAAA= + + + + + + IQuantity.cs + CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAA= + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Data.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Data.dll new file mode 100644 index 00000000..84ea0406 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Data.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Data.xml b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Data.xml new file mode 100644 index 00000000..88f126a3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Data.xml @@ -0,0 +1,119 @@ + + + + QuickGraph.Data + + + + + Methods to express preconditions, postconditions and invariants. + + + + + In debug builds, perform a runtime test that a condition is true. + (shortcut: cca) + + the asserted condition + + + + In debug builds, perform a runtime test that a condition is true. + + the asserted condition + custom message + + + + In debug builds, instructs code analysis tools to assume a condition is true even if it can not be statically proven to always be true. + (shortcut: ccam) + + the assumed condition + + + + In debug builds with contracts, instructs code analysis tools to assume a condition is true even if it can not be statically proven to always be true. + + the assumed condition + custom message + + + + Identifies the end of a contract block. Place this method call after legacy parameter validations. + + + + + Specifies a public contract such that the conditional expression is true when the enclosing method or property returns normally. + (shortcut: ce) + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + + + + Specifies a public contract such that the conditional expression is true when the enclosing method or property returns normally. + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + custom logging message + + + + Specifies a contract such that if an exception of type TException is thrown then the conditional expression should be true + when the enclosing method or property terminates abnormally. + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + + + + Specifies a contract such that if an exception of type TException is thrown then the conditional expression should be true + when the enclosing method or property terminates abnormally. + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + custom message + + + + Returns true if predicate returns true for any element in collection + + the element type of the collection + the collection + the predicate + true if any element evaluates predicate to true + + + + Returns true if predicate returns true for any integer starting from inclusiveLowerBound to exclusiveUpperBound - 1. + + the inclusive lower bound + the exclusive upper bound + a method that evaluates an index to a boolean value + true if predicate returns true for any integer starting from inclusiveLowerBound to exclusiveUpperBound - 1. + + + + Specifies a contract such that a condition must be true before the enclosing method or property is invoked. + (shortcut: cr, crn, crsn) + + The conditional expression to test for true. + + + + Specifies a contract such that a condition must be true before the enclosing method or property is invoked. + + The conditional expression to test for true. + custom error message + + + + Specifies a contract such that a condition must be true when a particular exception type is raised. + (shortcuts: cre, cren, cresn) + + The conditional expression to test for true. + + + + Ensures that System.Diagnostics.Contracts namespace exists + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Glee.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Glee.dll new file mode 100644 index 00000000..76322b11 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Glee.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Glee.xml b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Glee.xml new file mode 100644 index 00000000..3e6d16b5 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Glee.xml @@ -0,0 +1,119 @@ + + + + QuickGraph.Glee + + + + + Methods to express preconditions, postconditions and invariants. + + + + + In debug builds, perform a runtime test that a condition is true. + (shortcut: cca) + + the asserted condition + + + + In debug builds, perform a runtime test that a condition is true. + + the asserted condition + custom message + + + + In debug builds, instructs code analysis tools to assume a condition is true even if it can not be statically proven to always be true. + (shortcut: ccam) + + the assumed condition + + + + In debug builds with contracts, instructs code analysis tools to assume a condition is true even if it can not be statically proven to always be true. + + the assumed condition + custom message + + + + Identifies the end of a contract block. Place this method call after legacy parameter validations. + + + + + Specifies a public contract such that the conditional expression is true when the enclosing method or property returns normally. + (shortcut: ce) + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + + + + Specifies a public contract such that the conditional expression is true when the enclosing method or property returns normally. + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + custom logging message + + + + Specifies a contract such that if an exception of type TException is thrown then the conditional expression should be true + when the enclosing method or property terminates abnormally. + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + + + + Specifies a contract such that if an exception of type TException is thrown then the conditional expression should be true + when the enclosing method or property terminates abnormally. + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + custom message + + + + Returns true if predicate returns true for any element in collection + + the element type of the collection + the collection + the predicate + true if any element evaluates predicate to true + + + + Returns true if predicate returns true for any integer starting from inclusiveLowerBound to exclusiveUpperBound - 1. + + the inclusive lower bound + the exclusive upper bound + a method that evaluates an index to a boolean value + true if predicate returns true for any integer starting from inclusiveLowerBound to exclusiveUpperBound - 1. + + + + Specifies a contract such that a condition must be true before the enclosing method or property is invoked. + (shortcut: cr, crn, crsn) + + The conditional expression to test for true. + + + + Specifies a contract such that a condition must be true before the enclosing method or property is invoked. + + The conditional expression to test for true. + custom error message + + + + Specifies a contract such that a condition must be true when a particular exception type is raised. + (shortcuts: cre, cren, cresn) + + The conditional expression to test for true. + + + + Ensures that System.Diagnostics.Contracts namespace exists + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Graphviz.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Graphviz.dll new file mode 100644 index 00000000..9462e63f Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Graphviz.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Graphviz.xml b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Graphviz.xml new file mode 100644 index 00000000..8f7e8111 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.Graphviz.xml @@ -0,0 +1,146 @@ + + + + QuickGraph.Graphviz + + + + + Edge formatter + + + + + Methods to express preconditions, postconditions and invariants. + + + + + In debug builds, perform a runtime test that a condition is true. + (shortcut: cca) + + the asserted condition + + + + In debug builds, perform a runtime test that a condition is true. + + the asserted condition + custom message + + + + In debug builds, instructs code analysis tools to assume a condition is true even if it can not be statically proven to always be true. + (shortcut: ccam) + + the assumed condition + + + + In debug builds with contracts, instructs code analysis tools to assume a condition is true even if it can not be statically proven to always be true. + + the assumed condition + custom message + + + + Identifies the end of a contract block. Place this method call after legacy parameter validations. + + + + + Specifies a public contract such that the conditional expression is true when the enclosing method or property returns normally. + (shortcut: ce) + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + + + + Specifies a public contract such that the conditional expression is true when the enclosing method or property returns normally. + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + custom logging message + + + + Specifies a contract such that if an exception of type TException is thrown then the conditional expression should be true + when the enclosing method or property terminates abnormally. + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + + + + Specifies a contract such that if an exception of type TException is thrown then the conditional expression should be true + when the enclosing method or property terminates abnormally. + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + custom message + + + + Returns true if predicate returns true for any element in collection + + the element type of the collection + the collection + the predicate + true if any element evaluates predicate to true + + + + Returns true if predicate returns true for any integer starting from inclusiveLowerBound to exclusiveUpperBound - 1. + + the inclusive lower bound + the exclusive upper bound + a method that evaluates an index to a boolean value + true if predicate returns true for any integer starting from inclusiveLowerBound to exclusiveUpperBound - 1. + + + + Specifies a contract such that a condition must be true before the enclosing method or property is invoked. + (shortcut: cr, crn, crsn) + + The conditional expression to test for true. + + + + Specifies a contract such that a condition must be true before the enclosing method or property is invoked. + + The conditional expression to test for true. + custom error message + + + + Specifies a contract such that a condition must be true when a particular exception type is raised. + (shortcuts: cre, cren, cresn) + + The conditional expression to test for true. + + + + Ensures that System.Diagnostics.Contracts namespace exists + + + + + Creates a HTML file that wraps the SVG and returns the file name + + + + + + + Dot output stream. + + + + + Current image output type + + + + + Default dot engine implementation, writes dot code to disk + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.dll new file mode 100644 index 00000000..7e88cfa9 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.xml b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.xml new file mode 100644 index 00000000..12e57952 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/QuickGraph/QuickGraph.xml @@ -0,0 +1,3264 @@ + + + + QuickGraph + + + + + A graph with vertices of type + and edges of type + + + + + + + Gets a value indicating if the graph is directed + + + + + Gets a value indicating if the graph allows parallel edges + + + + + Underlying filtered graph + + + + + Edge predicate used to filter the edges + + + + + A High Level Petri Graph. + + + + This object is called a Petri Net in honour of Petri's work. In fact, + it should be named High Level Petri Graph. + + + + + + Gets a collection of instances. + + + A collection of instances. + + + + + Gets a collection of instances. + + + A collection of instances. + + + + + Gets a collection of instances. + + + A collection of instances. + + + + + An event involving an edge. + + The type of the vertex. + The type of the edge. + + + + Initializes a new instance of the class. + + The edge. + + + + Gets the edge. + + The edge. + + + + The handler for events involving edges + + + + + + + + A mutable edge list graph. + + the vertex type + the edge type + + + + A mutable graph instance + + + + + + + A set of edges + + The type of the vertex. + The type of the edge. + + + + Determines whether the specified edge contains edge. + + The edge. + + true if the specified edge contains edge; otherwise, false. + + + + + Gets a value indicating whether there are no edges in this set. + + + true if this set is empty; otherwise, false. + + + + + Gets the edge count. + + The edge count. + + + + Gets the edges. + + The edges. + + + + A set of vertices + + + + + + An implicit set of vertices + + + + + + Determines whether the specified vertex contains vertex. + + The vertex. + + true if the specified vertex contains vertex; otherwise, false. + + + + + Gets a value indicating whether there are no vertices in this set. + + + true if the vertex set is empty; otherwise, false. + + + + + Gets the vertex count. + + The vertex count. + + + + Gets the vertices. + + The vertices. + + + + Adds the edge to the graph + + + true if the edge was added, otherwise false. + + + + Adds a set of edges to the graph. + + + the number of edges successfully added to the graph. + + + + Removes from the graph + + + true if was successfully removed; otherwise false. + + + + Removes all edges that match . + + A pure delegate that takes an and returns true if the edge should be removed. + the number of edges removed. + + + + Raised when an edge is added to the graph. + + + + + Raised when an edge has been removed from the graph. + + + + + Adds the vertices and edge to the graph. + + + true if the edge was added, otherwise false. + + + + Adds a set of edges (and it's vertices if necessary) + + + the number of edges added. + + + + A implicit directed graph datastructure + + The type of the vertex. + The type of the edge. + + + + Determines whether there are out-edges associated to . + + The vertex. + + true if has no out-edges; otherwise, false. + + + + + Gets the count of out-edges of + + The vertex. + The count of out-edges of + + + + Gets the out-edges of . + + The vertex. + An enumeration of the out-edges of . + + + + Tries to get the out-edges of + + + + + + + + Gets the out-edge of at position . + + The vertex. + The index. + The out-edge at position + + + + An struct based implementation. + + The type of the vertex. + + + + An undirected edge. Invariant: source must be less or equal to target (using the default comparer) + + + + + + A directed edge + + The vertex type + + + + Gets the source vertex + + + + + Gets the target vertex + + + + + Initializes a new instance of the class. + + The source. + The target. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Indicates whether the current object is equal to another object of the same type. + + An object to compare with this object. + + true if the current object is equal to the parameter; otherwise, false. + + + + + Indicates whether this instance and a specified object are equal. + + Another object to compare to. + + true if and this instance are the same type and represent the same value; otherwise, false. + + + + + Returns the hash code for this instance. + + + A 32-bit signed integer that is the hash code for this instance. + + + + + Gets the source vertex + + + + + + Gets the target vertex + + + + + + A functional implicit undirected graph + + + + + + + Interface implemented by graph services + + + + + A edge depth first search algorithm for directed graphs + + + This is a variant of the classic DFS algorithm where the + edges are color marked instead of the vertices. + + + + + + Creates a new algorithm with an (optional) host. + + if null, host is set to the this reference + + + + + A reversed edge + + + + + + + A directed graph datastructure where out-edges can be traversed, + i.e. a vertex set + implicit graph. + + The type of the vertex. + The type of the edge. + + + + Methods to express preconditions, postconditions and invariants. + + + + + In debug builds, perform a runtime test that a condition is true. + (shortcut: cca) + + the asserted condition + + + + In debug builds, perform a runtime test that a condition is true. + + the asserted condition + custom message + + + + In debug builds, instructs code analysis tools to assume a condition is true even if it can not be statically proven to always be true. + (shortcut: ccam) + + the assumed condition + + + + In debug builds with contracts, instructs code analysis tools to assume a condition is true even if it can not be statically proven to always be true. + + the assumed condition + custom message + + + + Identifies the end of a contract block. Place this method call after legacy parameter validations. + + + + + Specifies a public contract such that the conditional expression is true when the enclosing method or property returns normally. + (shortcut: ce) + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + + + + Specifies a public contract such that the conditional expression is true when the enclosing method or property returns normally. + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + custom logging message + + + + Specifies a contract such that if an exception of type TException is thrown then the conditional expression should be true + when the enclosing method or property terminates abnormally. + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + + + + Specifies a contract such that if an exception of type TException is thrown then the conditional expression should be true + when the enclosing method or property terminates abnormally. + + The conditional expression to test for true. The expression may include OldValue(T) and Result(T). + custom message + + + + Returns true if predicate returns true for any element in collection + + the element type of the collection + the collection + the predicate + true if any element evaluates predicate to true + + + + Returns true if predicate returns true for any integer starting from inclusiveLowerBound to exclusiveUpperBound - 1. + + the inclusive lower bound + the exclusive upper bound + a method that evaluates an index to a boolean value + true if predicate returns true for any integer starting from inclusiveLowerBound to exclusiveUpperBound - 1. + + + + Specifies a contract such that a condition must be true before the enclosing method or property is invoked. + (shortcut: cr, crn, crsn) + + The conditional expression to test for true. + + + + Specifies a contract such that a condition must be true before the enclosing method or property is invoked. + + The conditional expression to test for true. + custom error message + + + + Specifies a contract such that a condition must be true when a particular exception type is raised. + (shortcuts: cre, cren, cresn) + + The conditional expression to test for true. + + + + Ensures that System.Diagnostics.Contracts namespace exists + + + + + An struct based implementation. + + type of the vertex. + type of the tag + + + + An instance holding a tag + + + + + + Gets or sets the tag + + + + + Raised when the tag is changed + + + + + Initializes a new instance of the class. + + The source. + The target. + The tag. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Gets the source vertex + + + + + + Gets the target vertex + + + + + + A disjoint-set data structure + + + + + + Creates a new set for the value + + + + + + Finds the set containing the value + + + + + + + Gets a value indicating if left and right are contained in the same set + + + + + + + + Merges the sets from the two values + + + + true if left and right were unioned, false if they already belong to the same set + + + + Gets a value indicating whether the value is in the data structure + + + + + + + Gets the current number of sets + + + + + Gets the current number of elements. + + + + + A single-source shortest path algorithm for undirected graph + with positive distance. + + + + + + Raises the event. + + edge that raised the event + + + + + Invoked when the distance label for the target vertex is decreased. + The edge that participated in the last relaxation for vertex v is + an edge in the shortest paths tree. + + + + + An algorithm that exposes events to compute a distance map between vertices + + + + + + + A* single-source shortest path algorithm for directed graph + with positive distance. + + type of a vertex + type of an edge + + + + + Raises the event. + + edge that raised the event + + + + Invoked when the distance label for the target vertex is decreased. + The edge that participated in the last relaxation for vertex v is + an edge in the shortest paths tree. + + + + + Wilson-Propp Cycle-Popping Algorithm for Random Tree Generation. + + + + + Gets or sets the random number generator used in RandomTree. + + + number generator + + + + + Serializes the graph to the stream using the .Net serialization binary format. + + + + + + + + + Deserializes a graph instance from a stream that was serialized using the .Net serialization binary format. + + + + + + + + + + Deserializes a graph from a generic xml stream, using an . + + + + + input xml document + xpath expression to the graph node. The first node is considered + xpath expression from the graph node to the vertex nodes. + xpath expression from the graph node to the edge nodes. + delegate that instantiate the empty graph instance, given the graph node + delegate that instantiate a vertex instance, given the vertex node + delegate that instantiate an edge instance, given the edge node + + + + + Deserializes a graph from a generic xml stream, using an . + + + + + input xml document + predicate that returns a value indicating if the current xml node is a graph. The first match is considered + predicate that returns a value indicating if the current xml node is a vertex. + predicate that returns a value indicating if the current xml node is an edge. + delegate that instantiate the empty graph instance, given the graph node + delegate that instantiate a vertex instance, given the vertex node + delegate that instantiate an edge instance, given the edge node + + + + + Deserializes a graph from a generic xml stream, using an . + + + + + input xml document + xml namespace + name of the xml node holding graph information. The first node is considered + name of the xml node holding vertex information + name of the xml node holding edge information + delegate that instantiate the empty graph instance, given the graph node + delegate that instantiate a vertex instance, given the vertex node + delegate that instantiate an edge instance, given the edge node + + + + + Serializes a graph to a generic xml stream, using an . + + The type of the vertex. + The type of the edge. + The type of the graph. + The graph. + The writer. + The vertex identity. + The edge identity. + Name of the graph element. + Name of the vertex element. + Name of the edge element. + The namespace URI. + + + + Serializes a graph to a generic xml stream, using an . + + The type of the vertex. + The type of the edge. + The type of the graph. + The writer. + The graph. + The vertex identity. + The edge identity. + Name of the graph element. + Name of the vertex element. + Name of the edge element. + The namespace URI (optional). + The write graph attributes (optional). + The write vertex attributes (optional). + The write edge attributes (optional). + + + + An struct based implementation. + + The type of the vertex. + + + + Initializes a new instance of the class. + + The source. + The target. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Gets the source vertex + + + + + + Gets the target vertex + + + + + + + + type of a vertex + type of an edge + + + + + An algorithm observer + + type of the algorithm + + + + + Attaches to the algorithm events + and returns a disposable object that can be used + to detach from the events + + + + + + + Edmond and Karp maximum flow algorithm + for directed graph with positive capacities and + flows. + + type of a vertex + type of an edge + + + + Abstract base class for maximum flow algorithms. + + + + + Computes the maximum flow between Source and Sink. + + + + + + The default implementation. + + The type of the vertex. + + + + Initializes a new instance of the class. + + The source. + The target. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Gets the source vertex + + + + + + Gets the target vertex + + + + + + A directed graph data structure efficient for sparse + graph representation where out-edge need to be enumerated only. + + + + + + + A directed graph where vertices and edges can be enumerated efficiently. + + + + + + + An incidence graph whose edges can be enumerated + + + + + + + Gets a value indicating whether this instance is edges empty. + + + true if this instance is edges empty; otherwise, false. + + + + + Gets the edge count. + + The edge count. + + + + Gets the edges. + + The edges. + + + + A mutable bidirectional directed graph + + + + + + + A directed graph datastructure that is efficient + to traverse both in and out edges. + + The type of the vertex. + The type of the edge. + + + + Determines whether has no in-edges. + + The vertex + + true if has no in-edges; otherwise, false. + + + + + Gets the number of in-edges of + + The vertex. + The number of in-edges pointing towards + + + + Gets the collection of in-edges of . + + The vertex + The collection of in-edges of + + + + Tries to get the in-edges of + + + + + + + + Gets the in-edge at location . + + The vertex. + The index. + + + + + Gets the degree of , i.e. + the sum of the out-degree and in-degree of . + + The vertex + The sum of OutDegree and InDegree of + + + + Removes in-edges of that match + predicate . + + + + Number of edges removed + + + + Clears in-edges of + + + + + + Clears in-edges and out-edges of + + + + + + A Place in the HLPN framework + + + + A is characterized by a set of tokens, called the + of the place. + + + Usually represented by an ellipses (often circles). + + + + + + A vertex (node) of a Petri Graph. + + + + + Gets or sets the name of the node + + + A representing the name of the node. + + + + + An struct based implementation. + + The type of the vertex. + + + + Initializes a new instance of the class. + + The source. + The target. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Indicates whether the current object is equal to another object of the same type. + + An object to compare with this object. + + true if the current object is equal to the parameter; otherwise, false. + + + + + Indicates whether this instance and a specified object are equal. + + Another object to compare to. + + true if and this instance are the same type and represent the same value; otherwise, false. + + + + + Returns the hash code for this instance. + + + A 32-bit signed integer that is the hash code for this instance. + + + + + Gets the source vertex + + + + + + Gets the target vertex + + + + + + A edge depth first search algorithm for implicit directed graphs + + + This is a variant of the classic DFS where the edges are color + marked. + + + + + + Triggers the StartVertex event. + + + + + + Triggers the StartEdge event. + + + + + + Triggers DiscoverEdge event + + + + + + + Triggers the TreeEdge event. + + + + + + Triggers the BackEdge event. + + + + + + Triggers the ForwardOrCrossEdge event. + + + + + + Triggers the ForwardOrCrossEdge event. + + + + + + Does a depth first search on the vertex u + + edge to explore + current exploration depth + se cannot be null + + + + Initializes the algorithm before computation. + + + + + Gets the vertex color map + + + Vertex color () dictionary + + + + + Gets or sets the maximum exploration depth, from + the start vertex. + + + Defaulted at int.MaxValue. + + + Maximum exploration depth. + + + + + Invoked on the source vertex once before the start of the search. + + + + + Invoked on the first edge of a test case + + + + + + + + + + Invoked on each edge as it becomes a member of the edges that form + the search tree. If you wish to record predecessors, do so at this + event point. + + + + + Invoked on the back edges in the graph. + + + + + Invoked on forward or cross edges in the graph. + (In an undirected graph this method is never called.) + + + + + Invoked on a edge after all of its out edges have been added to + the search tree and all of the adjacent vertices have been + discovered (but before their out-edges have been examined). + + + + + An edge factory delegate + + + + + Extension methods for populating graph datastructures + + + + + Wraps a dictionary into a vertex and edge list graph + + + + + + + + + + Wraps a dictionary into a vertex and edge list graph + + + + + + + + + + + Creates an instance of DelegateIncidenceGraph. + + + + + + + + + Creates an instance of DelegateIncidenceGraph. + + + + + + + + + + Wraps a dictionary into an undirected list graph + + + + + + + + + + Wraps a dictionary into an undirected graph + + + + + + + + + + + Creates an instance of DelegateIncidenceGraph. + + + + + + + + + + Creates an immutable array adjacency graph from the input graph + + + + + + + + + Creates an immutable array adjacency graph from the input graph + + + + + + + + + Wraps a adjacency graph (out-edge only) into a bidirectional graph. + + + + + + + + + Converts a sequence of edges into an undirected graph + + + + + + + + + Converts a sequence of edges into an undirected graph + + + + + + + + + + Converts a set of edges into a bidirectional graph. + + The type of the vertex. + The type of the edge. + The edges. + if set to true, the graph allows parallel edges. + + + + + Converts a set of edges into a bidirectional graph. + + The type of the vertex. + The type of the edge. + The edges. + + + + + Converts a set of edges into an adjacency graph. + + The type of the vertex. + The type of the edge. + The edges. + if set to true, the graph allows parallel edges. + + + + + Converts a set of edges into an adjacency graph. + + The type of the vertex. + The type of the edge. + The edges. + + + + + Converts a set of vertices into an adjacency graph, + using an edge factory. + + The type of the vertex. + The type of the edge. + The vertices. + The out edges factory. + if set to true, the graph allows parallel edges. + + + + + Converts a set of ver.tices into an adjacency graph, + using an edge factory. + + The type of the vertex. + The type of the edge. + The vertices. + The out edges factory. + + + + + Converts a set of ver.tices into a bidirectional graph, + using an edge factory. + + The type of the vertex. + The type of the edge. + The vertices. + The out edges factory. + if set to true, the graph allows parallel edges. + + + + + Converts a set of ver.tices into a bidirectional graph, + using an edge factory + + The type of the vertex. + The type of the edge. + The vertices. + The out edges factory. + + + + + Converts a sequence of vertex pairs into an adjancency graph + + + + + + + + Converts a sequence of vertex pairs into an bidirectional graph + + + + + + + + Converts a sequence of vertex pairs into an bidirectional graph + + + + + + + + Creates an immutable compressed row graph representation of the visited graph + + + + + + + + + Debug only assertions and assumptions + + + + + A tagged undirected edge. + + The type of the vertex. + Type type of the tag + + + + The default implementation. + + The type of the vertex. + + + + Initializes a new instance of the class. + + The source. + The target. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Gets the source vertex + + + + + + Gets the target vertex + + + + + + Initializes a new instance of the class. + + The source. + The target. + the tag + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Raised when the tag is changed + + + + + Gets or sets the tag + + + + + Binary heap + + + Indexing rules: + + parent index: index ¡ 1)/2 + left child: 2 * index + 1 + right child: 2 * index + 2 + + Reference: + http://dotnetslackers.com/Community/files/folders/data-structures-and-algorithms/entry28722.aspx + + type of the value + type of the priority metric + + + + Floyd-Warshall all shortest path algorith, + + + + + + + Dijkstra single-source shortest path algorithm for directed graph + with positive distance. + + type of a vertex + type of an edge + + + + + Common services available to algorithm instances + + + + + Residual capacities map + + + + + Reversed edges map + + + + + Colors used in vertex coloring algorithms + + + + + Usually initial color, + + + + + Usually intermidiate color, + + + + + Usually finished color + + + + + A delegate-based incidence graph + + + + + + + A delegate-based implicit graph + + + + + + + Specifies the order in which a Heap will Dequeue items. + + + + + Items are Dequeued in Increasing order from least to greatest. + + + + + Items are Dequeued in Decreasing order, from greatest to least. + + + + + Performs an action on each item in a list, used to shortcut a "foreach" loop + + Type contained in List + List to enumerate over + Lambda Function to be performed on all elements in List + + + + Performs an action on each item in a list, used to shortcut a "foreach" loop + + Type contained in List + List to enumerate over + Lambda Function to be performed on all elements in List + + + + Determines of a Node has had a child cut from it before + + + + + Determines the depth of a node + + + + + Updates the degree of a node, cascading to update the degree of the + parents if nessecary + + + + + + Updates the Next pointer, maintaining the heap + by folding duplicate heap degrees into eachother + Takes O(lg(N)) time amortized + + + + + Given two nodes, adds the child node as a child of the parent node + + + + + + + A breath first search algorithm for undirected graphs + + + + + + A GraphML ( http://graphml.graphdrawing.org/ ) format serializer. + + type of a vertex + type of an edge + type of the graph + + + Custom vertex, edge and graph attributes can be specified by + using the + attribute on properties (field not suppored). + + + The serializer uses LCG (lightweight code generation) to generate the + methods that writes the attributes to avoid paying the price of + Reflection on each vertex/edge. Since nothing is for free, the first + time you will use the serializer *on a particular pair of types*, it + will have to bake that method. + + + Hyperedge, nodes, nested graphs not supported. + + + + + + A cloneable edge + + type of the vertex + type of the edge + + + + Clones the edge content to a different pair of + and vertices + + The source vertex of the new edge + The target vertex of the new edge + A clone of the edge with new source and target vertices + + + + A node of a net, taken from the transition kind. + + + + Usually represented by a rectangle. + + + + + + A boolean expression associated with the transition + + + + + Gets the parent of + + + + + is the root of the graph. + + + + + Gets the parent of + + + + + is the root of the graph. + + + + + Gets a value indicating if is + a cross edge. + + + + + + + Gets a value indicating whether + exists really or is just an induced edge. + + + + + + + Gets a value indicating if + is a predecessor of + + + + + true if is a predecessor of + + + + + + Gets the number of edges between + and . + + + + + + is a predecessor of + or the otherway round. + + + + + Gets a value indicating if is + inner node or a leaf. + + + + true if not a leaf + + + + + Gets the collection of children + from + + + + + + + Gets the collection of children + from + + + + + + + Gets the roots of the hierarchy + + + + + Ensures that System.Diagnostics.Contracts namespace exists + + + + + A base class that creates a proxy to a graph that is xml serializable + + + + + + + + A depth and height first search algorithm for directed graphs + + + This is a modified version of the classic DFS algorithm + where the search is performed both in depth and height. + + + + + + Computes the dominator map of a directed graph + + + Thomas Lengauer and Robert Endre Tarjan + A fast algorithm for finding dominators in a flowgraph + ACM Transactions on Programming Language and Systems, 1(1):121-141, 1979. + + + + + + + A GraphML ( http://graphml.graphdrawing.org/ ) format deserializer. + + type of a vertex + type of an edge + type of the graph + + + Custom vertex, edge and graph attributes can be specified by + using the + attribute on properties (field not suppored). + + + The serializer uses LCG (lightweight code generation) to generate the + methods that writes the attributes to avoid paying the price of + Reflection on each vertex/edge. Since nothing is for free, the first + time you will use the serializer *on a particular pair of types*, it + will have to bake that method. + + + Hyperedge, nodes, nested graphs not supported. + + + + + + A functional implicit undirected graph + + + + + + + Directed graph representation using a Compressed Sparse Row representation + (http://www.cs.utk.edu/~dongarra/etemplates/node373.html) + + + + + + + + type of a vertex + type of an edge + + + + + A depth first search algorithm for implicit directed graphs + + + + + + Raises the event. + + vertex that raised the event + + + + Raises the event. + + vertex that raised the event + + + + Raises the event. + + edge that raised the event + + + + Raises the event. + + edge that raised the event + + + + Raises the event. + + edge that raised the event + + + + Raises the event. + + edge that raised the event + + + + Raises the event. + + vertex that raised the event + + + + Gets the vertex color map + + + Vertex color () dictionary + + + + + Gets or sets the maximum exploration depth, from + the start vertex. + + + Defaulted at int.MaxValue. + + + Maximum exploration depth. + + + + + Invoked on the source vertex once before the start of the search. + + + + + Invoked when a vertex is encountered for the first time. + + + + + Invoked on every out-edge of each vertex after it is discovered. + + + + + Invoked on each edge as it becomes a member of the edges that form + the search tree. If you wish to record predecessors, do so at this + event point. + + + + + Invoked on the back edges in the graph. + + + + + Invoked on forward or cross edges in the graph. + (In an undirected graph this method is never called.) + + + + + Invoked on a vertex after all of its out edges have been added to + the search tree and all of the adjacent vertices have been + discovered (but before their out-edges have been examined). + + + + + A depth first search algorithm for directed graph + + type of a vertex + type of an edge + + + + + Initializes a new instance of the algorithm. + + visited graph + + + + Initializes a new instance of the algorithm. + + visited graph + vertex color map + + + + Initializes a new instance of the algorithm. + + algorithm host + visited graph + vertex color map + + + + Initializes a new instance of the algorithm. + + algorithm host + visited graph + vertex color map + + Delegate that takes the enumeration of out-edges and reorders + them. All vertices passed to the method should be enumerated once and only once. + May be null. + + + + + An equatable, tagged, edge + + + + + + + An equatable edge implementation + + + + + + A tagged edge as value type. + + + + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Indicates whether the current object is equal to another object of the same type. + + An object to compare with this object. + + true if the current object is equal to the parameter; otherwise, false. + + + + + Indicates whether this instance and a specified object are equal. + + Another object to compare to. + + true if and this instance are the same type and represent the same value; otherwise, false. + + + + + Returns the hash code for this instance. + + + A 32-bit signed integer that is the hash code for this instance. + + + + + An immutable undirected graph data structure efficient for large sparse + graph. NOT FINISHED + + + + + + + Initializes a new instance of the array adjacency graph. + + The number of vertices + Array containing the edges. This array is stored and modified as is in the graph. No copy is made. + A mapping from vertices to [0, vertexCount) range + + + + Gets the delegate used to map vertices to array indexes + + + + + + + type of a vertex + type of an edge + + + + + Offline least common ancestor in a rooted tre + + + Reference: + Gabow, H. N. and Tarjan, R. E. 1983. A linear-time algorithm for a special case + of disjoint set union. In Proceedings of the Fifteenth Annual ACM Symposium + on theory of Computing STOC '83. ACM, New York, NY, 246-251. + DOI= http://doi.acm.org/10.1145/800061.808753 + + + + + + + A single-source shortest path algorithm for directed acyclic + graph. + + type of a vertex + type of an edge + + + + + Bellman Ford shortest path algorithm. + + + + The Bellman-Ford algorithm solves the single-source shortest paths + problem for a graph with both positive and negative edge weights. + + + If you only need to solve the shortest paths problem for positive + edge weights, Dijkstra's algorithm provides a more efficient + alternative. + + + If all the edge weights are all equal to one then breadth-first search + provides an even more efficient alternative. + + + + + + + Raises the event. + + vertex that raised the event + + + + Raises the event. + + edge that raised the event + + + + Raises the event. + + edge that raised the event + + + + Raises the event. + + edge that raised the event + + + + Raises the event. + + edge that raised the event + + + + Applies the Bellman Ford algorithm + + + Does not initialize the predecessor and distance map. + + true if successful, false if there was a negative cycle. + + + + Invoked on each vertex in the graph before the start of the + algorithm. + + + + + Invoked on every edge in the graph |V| times. + + + + + Invoked if the distance label for the target vertex is not + decreased. + + + + + Invoked during the second stage of the algorithm, + during the test of whether each edge was minimized. + + If the edge is minimized then this function is invoked. + + + + + Invoked during the second stage of the algorithm, + during the test of whether each edge was minimized. + + If the edge was not minimized, this function is invoked. + This happens when there is a negative cycle in the graph. + + + + + Constructed predecessor map + + + + + Requests the component to cancel its computation + + + + + Resets the cancel state + + + + + Raised when the cancel method is called + + + + + Gets a value indicating if a cancellation request is pending. + + + + + + Raised when the cancel state has been reseted + + + + + Resets the cancel state + + + + + Raised when the cancel state has been reseted + + + + + An edge factory + + + + + Disjoint-set implementation with path compression and union-by-rank optimizations. + optimization + + + + + + Adds a new set + + + + + + Finds the parent element, and applies path compression + + + + + + + An immutable directed graph data structure efficient for large sparse + graph representation where out-edge need to be enumerated only. + + + + + + + Returns self since this class is immutable + + + + + + + + type of a vertex + type of an edge + + + + + A factory of identifiable edges. + + + + + A tagged edge as value type. + + + + + + + Returns a that represents the current . + + + A that represents the current . + + + + + An immutable directed graph data structure efficient for large sparse + graph representation where out-edge need to be enumerated only. + + + + + + + Constructs a new ArrayBidirectionalGraph instance from a + IBidirectionalGraph instance + + + + + + Returns self since this class is immutable + + + + + + A depth first search algorithm for directed graph + + type of a vertex + type of an edge + + + + + Initializes a new instance of the algorithm. + + visited graph + + + + Initializes a new instance of the algorithm. + + visited graph + vertex color map + + + + Initializes a new instance of the algorithm. + + algorithm host + visited graph + + + + Initializes a new instance of the algorithm. + + algorithm host + visited graph + vertex color map + + + + Initializes a new instance of the algorithm. + + algorithm host + visited graph + vertex color map + + Delegate that takes the enumeration of out-edges and reorders + them. All vertices passed to the method should be enumerated once and only once. + May be null. + + + + + Construct an eulerian trail builder + + + + + + + Looks for a new path to add to the current vertex. + + true if found a new path, false otherwize + + + + Computes the number of eulerian trail in the graph. + + + number of eulerian trails + + + + Merges the temporary circuit with the current circuit + + true if all the graph edges are in the circuit + + + + Adds temporary edges to the graph to make all vertex even. + + + + + + + Removes temporary edges + + + + + Computes the set of eulerian trails that traverse the edge set. + + + This method returns a set of disjoint eulerian trails. This set + of trails spans the entire set of edges. + + Eulerian trail set + + + + Computes a set of eulerian trail, starting at + that spans the entire graph. + + + + This method computes a set of eulerian trail starting at + that spans the entire graph.The algorithm outline is as follows: + + + The algorithms iterates throught the Eulerian circuit of the augmented + graph (the augmented graph is the graph with additional edges to make + the number of odd vertices even). + + + If the current edge is not temporary, it is added to the current trail. + + + If the current edge is temporary, the current trail is finished and + added to the trail collection. The shortest path between the + start vertex and the target vertex of the + temporary edge is then used to start the new trail. This shortest + path is computed using the BreadthFirstSearchAlgorithm. + + + start vertex + eulerian trail set, all starting at s + s is a null reference. + Eulerian trail not computed yet. + + + + + + type of a vertex + type of an edge + + + + + Returns the method that implement the access indexer. + + + + + + + + + + Returns the method that implement the access indexer. + + + + + + + + + Gets the vertex identity. + + + Returns more efficient methods for primitive types, + otherwise builds a dictionary + + The type of the vertex. + The graph. + + + + + Gets the edge identity. + + The type of the vertex. + The type of the edge. + The graph. + + + + + Computes a depth first tree. + + The type of the vertex. + The type of the edge. + The visited graph. + The root. + + + + + Computes the k-shortest path from + using Hoffman-Pavley algorithm. + + + + + + + + + + + + + Gets the list of sink vertices + + + + + + + + + Gets the list of root vertices + + + + + + + + + Gets the list of isolated vertices (no incoming or outcoming vertices) + + + + + + + + + Gets the list of root vertices + + + + + + + + + Gets the list of roots + + + + + + + + + Creates a topological sort of a undirected + acyclic graph. + + + + + + the input graph + has a cycle + + + + Creates a topological sort of a undirected + acyclic graph. + + + + + + + the input graph + has a cycle + + + + Creates a topological sort of a directed + acyclic graph. + + + + + + the input graph + has a cycle + + + + Creates a topological sort of a directed + acyclic graph. + + + + + + + the input graph + has a cycle + + + + Computes the connected components of a graph + + + + + + number of components + + + + Computes the incremental connected components for a growing graph (edge added only). + Each call to the delegate re-computes the component dictionary. The returned dictionary + is shared accross multiple calls of the method. + + + + + + + + + Computes the weakly connected components of a graph + + + + + + number of components + + + + Computes the strongly connected components of a graph + + + + + + number of components + + + + Clones a graph to another graph + + + + + + + + + + + Condensates the strongly connected components of a directed graph + + + + + + + + + + Condensates the weakly connected components of a graph + + + + + + + + + + Create a collection of odd vertices + + graph to visit + colleciton of odd vertices + g is a null reference + + + + Gets a value indicating whether the graph is acyclic + + + Performs a depth first search to look for cycles. + + + + + + + + + Given a edge cost map, computes + the predecessor cost. + + + + + + + + + + + Computes the minimum spanning tree using Prim's algorithm. + Prim's algorithm is simply implemented by calling Dijkstra shortest path. + + + + + + + + + + Computes the minimum spanning tree using Kruskal's algorithm. + + + + + + + + + + Computes the offline least common ancestor between pairs of vertices in a rooted tree + using Tarjan algorithm. + + + Reference: + Gabow, H. N. and Tarjan, R. E. 1983. A linear-time algorithm for a special case of disjoint set union. In Proceedings of the Fifteenth Annual ACM Symposium on theory of Computing STOC '83. ACM, New York, NY, 246-251. DOI= http://doi.acm.org/10.1145/800061.808753 + + + + + + + + + + + Computes the Edmonds-Karp maximums flow + for a graph with positive capacities and + flows. + + The type of the vertex. + The type of the edge. + The visited graph. + The edge capacities. + The source. + The sink. + The flow predecessors. + + + + + A distance recorder for directed tree builder algorithms + + type of a vertex + type of an edge + + + + The handler for events involving two edges + + + + + Gets a copy of the connected components. Key is the number of components, + Value contains the vertex -> component index map. + + + + + + The computation state of a graph algorithm + + + + + The algorithm is not running + + + + + The algorithm is running + + + + + An abort has been requested. The algorithm is still running and will cancel as soon as it checks + the cancelation state + + + + + The computation is finished succesfully. + + + + + The computation was aborted + + + + + Used internally + + + + + A resolver that loads graphml DTD and XSD schemas + from embedded resources. + + + + + A directed edge of a net which may connect a + to a or a to + a . + + + + Usually represented by an arrow. + + + + + + Gets a value indicating if the + instance is a input arc. + + + + An arc that leads from an input to a + is called an Input Arc of + the transition. + + + + + + Gets the instance attached to the + . + + + The attached to the . + + + + + Gets or sets the instance attached to the + . + + + The attached to the . + + + + + Gets or sets the arc annotation. + + + The annotation instance. + + + + An expression that may involve constans, variables and operators + used to annotate the arc. The expression evaluates over the type + of the arc's associated place. + + + + set property, value is a null reference (Nothing in Visual Basic). + + + + + Gets a value indicating if the edge is a self edge. + + + + + + + + + Given a source vertex, returns the other vertex in the edge + + + + must not be a self-edge + + + + + + Gets a value indicating if is adjacent to + (is the source or target). + + + + + + + + + + Creates a vertex pair (source, target) from the edge + + + + + + + + + Checks that is a predecessor of + + + + + + + + + + + Tries to get the predecessor path, if reachable. + + + + + + + + + + + Returns the most efficient comporer for the particular type of TEdge. + If TEdge implements IUndirectedEdge, then only the (source,target) pair + has to be compared; if not, (source, target) and (target, source) have to be compared. + + + + + + + + Gets a value indicating if the vertices of edge match (source, target) or + (target, source) + + + + + + + + + + + Gets a value indicating if the vertices of edge match (source, target) + + + + + + + + + + + Returns a reversed edge enumeration + + + + + + + Wraps a vertex list graph (out-edges only) and caches the in-edge dictionary. + + + + + + + Hoffman and Pavley K-shortest path algorithm. + + + Reference: + Hoffman, W. and Pavley, R. 1959. A Method for the Solution of the Nth Best Path Problem. + J. ACM 6, 4 (Oct. 1959), 506-514. DOI= http://doi.acm.org/10.1145/320998.321004 + + + + + + + A delegate-based incidence graph + + + + + + + A vertex predicate that detects vertex with no in or out edges. + + + + + + + An struct based implementation. + + The type of the vertex. + + + + Initializes a new instance of the class. + + The source. + The target. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Gets the source vertex + + + + + + Gets the target vertex + + + + + + A breath first search algorithm for directed graphs + + + + + + + + type of a vertex + type of an edge + + + + + A distance recorder for undirected tree builder algorithms + + type of a vertex + type of an edge + + + + Exception raised when an algorithm detects a non-strongly connected graph. + + + + + A factory of identifiable vertices. + + + + + A vertex factory delegate. + + + + + Combines two hashcodes in a strong way. + + + + + + + + Combines three hashcodes in a strong way. + + + + + + + + + + + type of a vertex + type of an edge + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/SharpMap/ProjNET.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/SharpMap/ProjNET.dll new file mode 100644 index 00000000..8a8ac892 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/SharpMap/ProjNET.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/SharpMap/SharpMap.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/SharpMap/SharpMap.dll new file mode 100644 index 00000000..0dba9501 Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/SharpMap/SharpMap.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/WOFSchemas/WofSchemas.dll b/Source/Plugins/Plugins.HydroModeler/Utilities/WOFSchemas/WofSchemas.dll new file mode 100644 index 00000000..d576369e Binary files /dev/null and b/Source/Plugins/Plugins.HydroModeler/Utilities/WOFSchemas/WofSchemas.dll differ diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Numerics.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Numerics.cs new file mode 100644 index 00000000..932de5ba --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Numerics.cs @@ -0,0 +1,1039 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using System.Collections.ObjectModel; +using System.Threading.Tasks; + +namespace Numerics +{ + public class Numerics + { + + public Dictionary SecantMethod(double fx1,double x1, double fx2, double x2) + { + double x3 = x2 - (fx2 * (x1 - x2) / (fx1 - fx2)); + double e = Math.Abs(x2 - x3); + + Dictionary results = new Dictionary(); + results["x2"] = x3; + results["x1"] = x2; + results["error"] = e; + + return results; + + } + + public Dictionary ModifiedSecantMethod(double fx, double x, double fxdel, double delta) + { + double x2 = x - ((delta * x * fx) / (fxdel - fx)); + double e = Math.Abs(x - x2); + + Dictionary results = new Dictionary(); + results["x"] = x2; + results["error"] = e; + results["delta"] = delta; + + return results; + + } + + #region not working + //public NewtonRhapson(Parameter[] parameters, Func[] functions, int numberOfDerivativePoints) + //{ + + // Parameter[] _parameters = parameters; + // Func[] _functions = functions; + // int numberOfFunctions = _functions.Length; + // int numberOfParameters = _parameters.Length; + // Derivatives _derivatives = new Derivatives(numberOfDerivativePoints); + + // Matrix _jacobian = new Matrix(numberOfFunctions, numberOfParameters); + // Matrix _functionMatrix = new Matrix(numberOfFunctions, 1); + // Matrix _x0 = new Matrix(numberOfFunctions, 1); + //} + + //public NewtonRaphson(Parameter[] parameters, Func[] functions): this(parameters, functions, 3) + //{ + //} + + //public void Iterate() + //{ + // int numberOfFunctions = _functions.Length; + // int numberOfParameters = _parameters.Length; + // for (int i = 0; i < numberOfFunctions; i++) + // { + // _functionMatrix[i, 0] = _functions[i](); + // _x0[i, 0] = _parameters[i]; + // } + + // for (int i = 0; i < numberOfFunctions; i++) + // { + // for (int j = 0; j < numberOfParameters; j++) + // { + // _jacobian[i, j] = _derivatives.ComputePartialDerivative(_functions[i], _parameters[j], 1, _functionMatrix[i, 0]); + // } + // } + + // Matrix newXs = _x0 - _jacobian.SolveFor(_functionMatrix); + + // for (int i = 0; i < numberOfFunctions; i++) + // { + // _parameters[i].Value = newXs[i, 0]; + // } + //} +#endregion + } + + //*************************************************************************************** + //**** The classes below were adapted from Trent Guidry http://www.trentfguidry.net/ **** + //*************************************************************************************** + public class NewtonRaphson + { + private Matrix _jacobian; + private Matrix _functionMatrix; + private Matrix _x0; + private Derivatives _derivatives; + private Parameter[] _parameters; + private Func[] _functions; + + public NewtonRaphson(Parameter[] parameters, Func[] functions, int numberOfDerivativePoints) + { + _parameters = parameters; + _functions = functions; + int numberOfFunctions = _functions.Length; + int numberOfParameters = _parameters.Length; + + Debug.Assert(numberOfParameters == numberOfFunctions); + + _derivatives = new Derivatives(numberOfDerivativePoints); + + _jacobian = new Matrix(numberOfFunctions, numberOfParameters); + _functionMatrix = new Matrix(numberOfFunctions, 1); + _x0 = new Matrix(numberOfFunctions, 1); + } + + public NewtonRaphson(Parameter[] parameters, Func[] functions) + : this(parameters, functions, 3) + { + } + + public void Iterate() + { + int numberOfFunctions = _functions.Length; + int numberOfParameters = _parameters.Length; + for (int i = 0; i < numberOfFunctions; i++) + { + _functionMatrix[i, 0] = _functions[i](); + _x0[i, 0] = _parameters[i]; + } + + for (int i = 0; i < numberOfFunctions; i++) + { + for (int j = 0; j < numberOfParameters; j++) + { + _jacobian[i, j] = _derivatives.ComputePartialDerivative(_functions[i], _parameters[j], 1, _functionMatrix[i, 0]); + } + } + + Matrix newXs = _x0 - _jacobian.SolveFor(_functionMatrix); + + for (int i = 0; i < numberOfFunctions; i++) + { + _parameters[i].Value = newXs[i, 0]; + } + } + public Parameter[] parameter + { + get { return _parameters; } + } + public double[] GetResult() + { + + double[] r = new double[_parameters.Length]; + for (int i = 0; i <= _parameters.Length - 1; i++ ) + { + r[i] = _parameters[i].Value; + } + return r; + + } + } + + public class Matrix + { + #region ctor + public Matrix() + { + _values = new double[_rowCount, _columnCount]; + } + + public Matrix(int rowCount, int columnCount) + { + _rowCount = rowCount; + _columnCount = columnCount; + _values = new double[_rowCount, _columnCount]; + } + #endregion + + #region Row Column values + public double this[int row, int column] + { + get { return _values[row, column]; } + set { _values[row, column] = value; } + } + #endregion + + #region F&P + private double[,] _values; + + private int _rowCount = 3; + public int RowCount + { + get { return _rowCount; } + } + + private int _columnCount = 3; + public int ColumnCount + { + get { return _columnCount; } + } + #endregion + + #region basic single matrix stuff + public static Matrix Identity(int size) + { + Matrix resultMatrix = new Matrix(size, size); + Parallel.For(0, size, (i) => + { + for (int j = 0; j < size; j++) + { + resultMatrix[i, j] = (i == j) ? 1.0 : 0.0; + } + } + ); + return resultMatrix; + } + + public Matrix Clone() + { + Matrix resultMatrix = new Matrix(_rowCount, _columnCount); + Parallel.For(0, _rowCount, (i) => + { + for (int j = 0; j < _columnCount; j++) + { + resultMatrix[i, j] = this[i, j]; + } + } + ); + return resultMatrix; + } + + public Matrix Transpose() + { + Matrix resultMatrix = new Matrix(_columnCount, _rowCount); + Parallel.For(0, _rowCount, (i) => + { + for (int j = 0; j < _columnCount; j++) + { + resultMatrix[j, i] = this[i, j]; + } + } + ); + return resultMatrix; + } + + #endregion + + #region Binary Math + public static Matrix Add(Matrix leftMatrix, Matrix rightMatrix) + { + Debug.Assert(leftMatrix.ColumnCount == rightMatrix.ColumnCount); + Debug.Assert(leftMatrix.RowCount == rightMatrix.RowCount); + + Matrix resultMatrix = new Matrix(leftMatrix.RowCount, rightMatrix.ColumnCount); + Parallel.For(0, leftMatrix.RowCount, (i) => + { + for (int j = 0; j < leftMatrix.ColumnCount; j++) + { + resultMatrix[i, j] = leftMatrix[i, j] + rightMatrix[i, j]; + } + } + ); + return resultMatrix; + } + + public static Matrix operator +(Matrix leftMatrix, Matrix rightMatrix) + { + return Matrix.Add(leftMatrix, rightMatrix); + } + + public static Matrix Subtract(Matrix leftMatrix, Matrix rightMatrix) + { + Debug.Assert(leftMatrix.ColumnCount == rightMatrix.ColumnCount); + Debug.Assert(leftMatrix.RowCount == rightMatrix.RowCount); + Matrix resultMatrix = new Matrix(leftMatrix.RowCount, rightMatrix.ColumnCount); + Parallel.For(0, leftMatrix.RowCount, (i) => + { + for (int j = 0; j < leftMatrix.ColumnCount; j++) + { + resultMatrix[i, j] = leftMatrix[i, j] - rightMatrix[i, j]; + } + } + ); + return resultMatrix; + } + + public static Matrix operator -(Matrix leftMatrix, Matrix rightMatrix) + { + return Matrix.Subtract(leftMatrix, rightMatrix); + } + + public static Matrix Multiply(Matrix leftMatrix, Matrix rightMatrix) + { + Debug.Assert(leftMatrix.ColumnCount == rightMatrix.RowCount); + Matrix resultMatrix = new Matrix(leftMatrix.RowCount, rightMatrix.ColumnCount); + Parallel.For(0, resultMatrix.ColumnCount, (i) => + { + for (int j = 0; j < leftMatrix.RowCount; j++) + { + double value = 0.0; + for (int k = 0; k < rightMatrix.RowCount; k++) + { + value += leftMatrix[j, k] * rightMatrix[k, i]; + } + resultMatrix[j, i] = value; + } + } + ); + return resultMatrix; + } + + public static Matrix operator *(Matrix leftMatrix, Matrix rightMatrix) + { + return Matrix.Multiply(leftMatrix, rightMatrix); + } + + public static Matrix Multiply(double left, Matrix rightMatrix) + { + Matrix resultMatrix = new Matrix(rightMatrix.RowCount, rightMatrix.ColumnCount); + Parallel.For(0, resultMatrix.RowCount, (i) => + { + for (int j = 0; j < rightMatrix.ColumnCount; j++) + { + resultMatrix[i, j] = left * rightMatrix[i, j]; + } + } + ); + return resultMatrix; + } + + public static Matrix operator *(double left, Matrix rightMatrix) + { + return Matrix.Multiply(left, rightMatrix); + } + + public static Matrix Multiply(Matrix leftMatrix, double right) + { + Matrix resultMatrix = new Matrix(leftMatrix.RowCount, leftMatrix.ColumnCount); + Parallel.For(0, leftMatrix.RowCount, (i) => + { + for (int j = 0; j < leftMatrix.ColumnCount; j++) + { + resultMatrix[i, j] = leftMatrix[i, j] * right; + } + } + ); + return resultMatrix; + } + + public static Matrix operator *(Matrix leftMatrix, double right) + { + return Matrix.Multiply(leftMatrix, right); + } + + public static Matrix Divide(Matrix leftMatrix, double right) + { + Matrix resultMatrix = new Matrix(leftMatrix.RowCount, leftMatrix.ColumnCount); + Parallel.For(0, leftMatrix.RowCount, (i) => + { + for (int j = 0; j < leftMatrix.ColumnCount; j++) + { + resultMatrix[i, j] = leftMatrix[i, j] / right; + } + } + ); + return resultMatrix; + } + + public static Matrix operator /(Matrix leftMatrix, double right) + { + return Matrix.Divide(leftMatrix, right); + } + #endregion + + #region Assorted Casts + public static Matrix FromArray(double[] left) + { + int length = left.Length; + Matrix resultMatrix = new Matrix(length, 1); + for (int i = 0; i < length; i++) + { + resultMatrix[i, 0] = left[i]; + } + return resultMatrix; + } + + public static implicit operator Matrix(double[] left) + { + return FromArray(left); + } + + public static double[] ToArray(Matrix leftMatrix) + { + Debug.Assert((leftMatrix.ColumnCount == 1 && leftMatrix.RowCount >= 1) || (leftMatrix.RowCount == 1 && leftMatrix.ColumnCount >= 1)); + + double[] result = null; + if (leftMatrix.ColumnCount > 1) + { + int numElements = leftMatrix.ColumnCount; + result = new double[numElements]; + for (int i = 0; i < numElements; i++) + { + result[i] = leftMatrix[0, i]; + } + } + else + { + int numElements = leftMatrix.RowCount; + result = new double[numElements]; + for (int i = 0; i < numElements; i++) + { + result[i] = leftMatrix[i, 0]; + } + } + return result; + } + + public static implicit operator double[](Matrix leftMatrix) + { + return ToArray(leftMatrix); + } + + public static Matrix FromDoubleArray(double[,] left) + { + int length0 = left.GetLength(0); + int length1 = left.GetLength(1); + Matrix resultMatrix = new Matrix(length0, length1); + for (int i = 0; i < length0; i++) + { + for (int j = 0; j < length1; j++) + { + resultMatrix[i, j] = left[i, j]; + } + } + return resultMatrix; + } + + public static implicit operator Matrix(double[,] left) + { + return FromDoubleArray(left); + } + + public static double[,] ToDoubleArray(Matrix leftMatrix) + { + double[,] result = new double[leftMatrix.RowCount, leftMatrix.ColumnCount]; + for (int i = 0; i < leftMatrix.RowCount; i++) + { + for (int j = 0; j < leftMatrix.ColumnCount; j++) + { + result[i, j] = leftMatrix[i, j]; + } + } + return result; + } + + public static implicit operator double[,](Matrix leftMatrix) + { + return ToDoubleArray(leftMatrix); + } + #endregion + public Matrix SolveFor(Matrix rightMatrix) + { + Debug.Assert(rightMatrix.RowCount == _columnCount); + Debug.Assert(_columnCount == _rowCount); + + Matrix resultMatrix = new Matrix(_columnCount, rightMatrix.ColumnCount); + LUDecompositionResults resDecomp = LUDecompose(); + int[] nP = resDecomp.PivotArray; + Matrix lMatrix = resDecomp.L; + Matrix uMatrix = resDecomp.U; + Parallel.For(0, rightMatrix.ColumnCount, k => + { + //Solve for the corresponding d Matrix from Ld=Pb + double sum = 0.0; + Matrix dMatrix = new Matrix(_rowCount, 1); + dMatrix[0, 0] = rightMatrix[nP[0], k] / lMatrix[0, 0]; + for (int i = 1; i < _rowCount; i++) + { + sum = 0.0; + for (int j = 0; j < i; j++) + { + sum += lMatrix[i, j] * dMatrix[j, 0]; + } + dMatrix[i, 0] = (rightMatrix[nP[i], k] - sum) / lMatrix[i, i]; + } + //Solve for x using Ux = d + resultMatrix[_rowCount - 1, k] = dMatrix[_rowCount - 1, 0]; + for (int i = _rowCount - 2; i >= 0; i--) + { + sum = 0.0; + for (int j = i + 1; j < _rowCount; j++) + { + sum += uMatrix[i, j] * resultMatrix[j, k]; + } + resultMatrix[i, k] = dMatrix[i, 0] - sum; + } + } + ); + return resultMatrix; + } + + private LUDecompositionResults LUDecompose() + { + Debug.Assert(_columnCount == _rowCount); + // Using Crout Decomp with P + // + // Ax = b //By definition of problem variables. + // + // LU = PA //By definition of L, U, and P. + // + // LUx = Pb //By substition for PA. + // + // Ux = d //By definition of d + // + // Ld = Pb //By subsitition for d. + // + //For 4x4 with P = I + // [l11 0 0 0 ] [1 u12 u13 u14] [a11 a12 a13 a14] + // [l21 l22 0 0 ] [0 1 u23 u24] = [a21 a22 a23 a24] + // [l31 l32 l33 0 ] [0 0 1 u34] [a31 a32 a33 a34] + // [l41 l42 l43 l44] [0 0 0 1 ] [a41 a42 a43 a44] + LUDecompositionResults result = new LUDecompositionResults(); + try + { + int[] pivotArray = new int[_rowCount]; //Pivot matrix. + Matrix uMatrix = new Matrix(_rowCount, _columnCount); + Matrix lMatrix = new Matrix(_rowCount, _columnCount); + Matrix workingUMatrix = Clone(); + Matrix workingLMatrix = new Matrix(_rowCount, _columnCount); + Parallel.For(0, _rowCount, i => + { + pivotArray[i] = i; + } + ); + //Iterate down the number of rows in the U matrix. + for (int i = 0; i < _rowCount; i++) + { + //Do pivots first. + //I want to make the matrix diagnolaly dominate. + //Initialize the variables used to determine the pivot row. + double maxRowRatio = double.NegativeInfinity; + int maxRow = -1; + int maxPosition = -1; + //Check all of the rows below and including the current row + //to determine which row should be pivoted to the working row position. + //The pivot row will be set to the row with the maximum ratio + //of the absolute value of the first column element divided by the + //sum of the absolute values of the elements in that row. + Parallel.For(i, _rowCount, j => + { + //Store the sum of the absolute values of the row elements in + //dRowSum. Clear it out now because I am checking a new row. + double rowSum = 0.0; + //Go across the columns, add the absolute values of the elements in + //that column to dRowSum. + for (int k = i; k < _columnCount; k++) + { + rowSum += Math.Abs(workingUMatrix[pivotArray[j], k]); + } + //Check to see if the absolute value of the ratio of the lead + //element over the sum of the absolute values of the elements is larger + //that the ratio for preceding rows. If it is, then the current row + //becomes the new pivot candidate. + if (rowSum == 0.0) + { + throw new SingularMatrixException(); + } + double dCurrentRatio = Math.Abs(workingUMatrix[pivotArray[j], i]) / rowSum; + lock (this) + { + if (dCurrentRatio > maxRowRatio) + { + maxRowRatio = Math.Abs(workingUMatrix[pivotArray[j], i] / rowSum); + maxRow = pivotArray[j]; + maxPosition = j; + } + } + } + ); + + //If the pivot candidate isn't the current row, update the + //pivot array to swap the current row with the pivot row. + if (maxRow != pivotArray[i]) + { + int hold = pivotArray[i]; + pivotArray[i] = maxRow; + pivotArray[maxPosition] = hold; + } + //Store the value of the left most element in the working U + //matrix in dRowFirstElementValue. + double rowFirstElementValue = workingUMatrix[pivotArray[i], i]; + //Update the columns of the working row. j is the column index. + Parallel.For(0, _columnCount, j => + { + if (j < i) + { + //If j<1, then the U matrix element value is 0. + workingUMatrix[pivotArray[i], j] = 0.0; + } + else if (j == i) + { + //If i == j, the L matrix value is the value of the + //element in the working U matrix. + workingLMatrix[pivotArray[i], j] = rowFirstElementValue; + //The value of the U matrix for i == j is 1 + workingUMatrix[pivotArray[i], j] = 1.0; + } + else // j>i + { + //Divide each element in the current row of the U matrix by the + //value of the first element in the row + workingUMatrix[pivotArray[i], j] /= rowFirstElementValue; + //The element value of the L matrix for j>i is 0 + workingLMatrix[pivotArray[i], j] = 0.0; + } + } + ); + //For the working U matrix, subtract the ratioed active row from the rows below it. + //Update the columns of the rows below the working row. k is the row index. + for (int k = i + 1; k < _rowCount; k++) + { + //Store the value of the first element in the working row + //of the U matrix. + rowFirstElementValue = workingUMatrix[pivotArray[k], i]; + //Go accross the columns of row k. + Parallel.For(0, _columnCount, j => + { + if (j < i) + { + //If j<1, then the U matrix element value is 0. + workingUMatrix[pivotArray[k], j] = 0.0; + } + else if (j == i) + { + //If i == j, the L matrix value is the value of the + //element in the working U matrix. + workingLMatrix[pivotArray[k], j] = rowFirstElementValue; + //The element value of the L matrix for j>i is 0 + workingUMatrix[pivotArray[k], j] = 0.0; + } + else //j>i + { + workingUMatrix[pivotArray[k], j] = workingUMatrix[pivotArray[k], j] - rowFirstElementValue * workingUMatrix[pivotArray[i], j]; + } + } + ); + } + } + Parallel.For(0, _rowCount, i => + { + for (int j = 0; j < _rowCount; j++) + { + uMatrix[i, j] = workingUMatrix[pivotArray[i], j]; + lMatrix[i, j] = workingLMatrix[pivotArray[i], j]; + } + } + ); + result.U = uMatrix; + result.L = lMatrix; + result.PivotArray = pivotArray; + } + catch (AggregateException ex2) + { + if (ex2.InnerExceptions.Count > 0) + { + throw ex2.InnerExceptions[0]; + } + else + { + throw ex2; + } + } + catch (Exception ex3) + { + throw ex3; + } + return result; + } + + public Matrix Invert() + { + Debug.Assert(_rowCount == _columnCount); + Matrix resultMatrix = SolveFor(Identity(_rowCount)); + Matrix matIdent = this * resultMatrix; + + return SolveFor(Identity(_rowCount)); + } + } + + public class LUDecompositionResults + { + private Matrix _lMatrix; + private Matrix _uMatrix; + private int[] _pivotArray; + + public LUDecompositionResults() + { + } + + public LUDecompositionResults(Matrix matL, Matrix matU, int[] nPivotArray) + { + _lMatrix = matL; + _uMatrix = matU; + _pivotArray = nPivotArray; + } + + public Matrix L + { + get { return _lMatrix; } + set { _lMatrix = value; } + } + + public Matrix U + { + get { return _uMatrix; } + set { _uMatrix = value; } + } + + public int[] PivotArray + { + get { return _pivotArray; } + set { _pivotArray = value; } + } + + } + + public class SingularMatrixException : ArithmeticException + { + public SingularMatrixException() + : base("Invalid operation on a singular matrix.") + { + } + } + + public class Derivatives + { + // _coefficients is the array of differential coefficients matrices. + // The index corresponds to the position from the left edge + // of the points. + // I.e _coefficients[0] is for a matrix with three points in it corresponds to + // the left most point. + // The coefficients of the derivatives go down by row. I.e. the first row + // is the functional value, the second row is for the first derivative of the functional + // value, the third row is the second derivative of the functional value. + // The columns correspond to the points themselves. + private Matrix[] _coefficients; + + private Derivatives() + { + } + + public Derivatives(int numberOfPoints) + : this() + { + SolveCoefs(numberOfPoints); + } + + public void SolveCoefs(int numberOfPoints) + { + _coefficients = new Matrix[numberOfPoints]; + for (int i = 0; i < numberOfPoints; i++) + { + Matrix deltsMatrix = new Matrix(numberOfPoints, numberOfPoints); + for (int j = 0; j < numberOfPoints; j++) + { + double delt = (double)(j - i); + double HTerm = 1.0; + for (int k = 0; k < numberOfPoints; k++) + { + deltsMatrix[j, k] = HTerm / Factorial(k); + HTerm *= delt; + } + } + _coefficients[i] = deltsMatrix.Invert(); + double numPointsFactorial = Factorial(numberOfPoints); + for (int j = 0; j < numberOfPoints; j++) + { + for (int k = 0; k < numberOfPoints; k++) + { + _coefficients[i][j, k] = (Math.Round(_coefficients[i][j, k] * numPointsFactorial)) / numPointsFactorial; + } + } + } + } + + private static double Factorial(int value) + { + double result = 1.0; + for (int i = 1; i <= value; i++) + { + result *= (double)i; + } + return result; + } + + /// + /// Computes the derivative of a function. + /// + /// Equally spaced function value points + /// The order of the derivative to take + /// The position in the array of function values to take the derivative at. + /// The x axis step size. + /// + public double ComputeDerivative(double[] points, int order, int variablePosition, double step) + { + Debug.Assert(points.Length == _coefficients.Length); + Debug.Assert(order < _coefficients.Length); + double result = 0.0; + for (int i = 0; i < _coefficients.Length; i++) + { + result += _coefficients[variablePosition][order, i] * points[i]; + } + result /= Math.Pow(step, order); + return result; + } + + public double ComputePartialDerivative(Func function, Parameter parameter, int order) + { + int numberOfPoints = _coefficients.Length; + double result = 0.0; + double originalValue = parameter; + double[] points = new double[numberOfPoints]; + double derivativeStepSize = parameter.DerivativeStepSize; + int centerPoint = (numberOfPoints - 1) / 2; + + for (int i = 0; i < numberOfPoints; i++) + { + parameter.Value = originalValue + ((double)(i - centerPoint)) * derivativeStepSize; + points[i] = function(); + } + result = ComputeDerivative(points, order, centerPoint, derivativeStepSize); + parameter.Value = originalValue; + return result; + } + + public double ComputePartialDerivative(Func function, Parameter parameter, int order, double currentFunctionValue) + { + int numberOfPoints = _coefficients.Length; + double result = 0.0; + double originalValue = parameter; + double[] points = new double[numberOfPoints]; + double derivativeStepSize = parameter.DerivativeStepSize; + int centerPoint = (numberOfPoints - 1) / 2; + + for (int i = 0; i < numberOfPoints; i++) + { + if (i != centerPoint) + { + parameter.Value = originalValue + ((double)(i - centerPoint)) * derivativeStepSize; + points[i] = function(); + } + else + { + points[i] = currentFunctionValue; + } + } + result = ComputeDerivative(points, order, centerPoint, derivativeStepSize); + parameter.Value = originalValue; + return result; + } + + public double[] ComputePartialDerivatives(Func function, Parameter parameter, int[] derivativeOrders) + { + int numberOfPoints = _coefficients.Length; + double[] result = new double[derivativeOrders.Length]; + double originalValue = parameter; + double[] points = new double[numberOfPoints]; + double derivativeStepSize = parameter.DerivativeStepSize; + int centerPoint = (numberOfPoints - 1) / 2; + + for (int i = 0; i < numberOfPoints; i++) + { + parameter.Value = originalValue + ((double)(i - centerPoint)) * derivativeStepSize; + points[i] = function(); + } + for (int i = 0; i < derivativeOrders.Length; i++) + { + result[i] = ComputeDerivative(points, derivativeOrders[i], centerPoint, derivativeStepSize); + } + parameter.Value = originalValue; + return result; + } + + public double[] ComputePartialDerivatives(Func function, Parameter parameter, int[] derivativeOrders, double currentFunctionValue) + { + int numberOfPoints = _coefficients.Length; + double[] result = new double[derivativeOrders.Length]; + double originalValue = parameter; + double[] points = new double[numberOfPoints]; + double derivativeStepSize = parameter.DerivativeStepSize; + int centerPoint = (numberOfPoints - 1) / 2; + + for (int i = 0; i < numberOfPoints; i++) + { + if (i != centerPoint) + { + parameter.Value = originalValue + ((double)(i - centerPoint)) * derivativeStepSize; + points[i] = function(); + } + else + { + points[i] = currentFunctionValue; + } + } + for (int i = 0; i < derivativeOrders.Length; i++) + { + result[i] = ComputeDerivative(points, derivativeOrders[i], centerPoint, derivativeStepSize); + } + parameter.Value = originalValue; + return result; + } + + } + + public class Parameter + { + private bool _isSolvedFor = true; + private double _value; + private double _derivativeStep = 1e-3; + private DerivativeStepType _derivativeStepType = DerivativeStepType.Relative; + + public Parameter() + : base() + { + } + + public Parameter(double value) + : this() + { + _value = value; + } + + public Parameter(double value, double derivativeStep) + : this(value) + { + _derivativeStep = derivativeStep; + } + + public Parameter(double value, double derivativeStep, DerivativeStepType stepSizeType) + : this(value, derivativeStep) + { + _derivativeStepType = stepSizeType; + } + + public Parameter(double value, double derivativeStep, DerivativeStepType stepSizeType, bool isSolvedFor) + : this(value, derivativeStep, stepSizeType) + { + _isSolvedFor = isSolvedFor; + } + + public Parameter(bool isSolvedFor) + : this() + { + _isSolvedFor = isSolvedFor; + } + + public Parameter(Parameter clone) + { + _isSolvedFor = clone.IsSolvedFor; + _value = clone.Value; + _derivativeStep = clone.DerivativeStep; + _derivativeStepType = clone.DerivativeStepType; + } + + public bool IsSolvedFor + { + get { return _isSolvedFor; } + set { _isSolvedFor = value; } + } + + public double Value + { + get { return _value; } + set { _value = value; } + } + + public double DerivativeStep + { + get { return _derivativeStep; } + set { _derivativeStep = value; } + } + + public double DerivativeStepSize + { + get + { + double derivativeStepSize; + if (_derivativeStepType == DerivativeStepType.Absolute) + { + derivativeStepSize = _derivativeStep; + } + else + { + if (_value != 0.0) + { + derivativeStepSize = _derivativeStep * Math.Abs(_value); + } + else + { + derivativeStepSize = _derivativeStep; + } + } + return derivativeStepSize; + } + } + + public DerivativeStepType DerivativeStepType + { + get { return _derivativeStepType; } + set { _derivativeStepType = value; } + } + + public static implicit operator double(Parameter p) + { + return p.Value; + } + + public override string ToString() + { + return "Parameter: Value:" + Value.ToString() + " IsSolvedFor:" + _isSolvedFor.ToString(); + } + } + + public enum DerivativeStepType + { + Relative, + Absolute + } + + public class ParameterCollection : Collection + { + public ParameterCollection() + : base() + { + } + } + + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Numerics.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Numerics.csproj new file mode 100644 index 00000000..50226775 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Numerics.csproj @@ -0,0 +1,90 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {41D16632-EC8E-4F82-8CB2-0346481959C3} + Library + Properties + Numerics + Numerics + + + + + 3.5 + v4.0 + Client + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + + 3.5 + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Numerics.sln b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Numerics.sln new file mode 100644 index 00000000..c474d61e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Numerics.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Numerics", "Numerics.csproj", "{41D16632-EC8E-4F82-8CB2-0346481959C3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NumericsTest", "Test\NumericsTest.csproj", "{019A2C1E-6694-4C4F-A0DB-A9350ADDDA09}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {41D16632-EC8E-4F82-8CB2-0346481959C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41D16632-EC8E-4F82-8CB2-0346481959C3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41D16632-EC8E-4F82-8CB2-0346481959C3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41D16632-EC8E-4F82-8CB2-0346481959C3}.Release|Any CPU.Build.0 = Release|Any CPU + {019A2C1E-6694-4C4F-A0DB-A9350ADDDA09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {019A2C1E-6694-4C4F-A0DB-A9350ADDDA09}.Debug|Any CPU.Build.0 = Debug|Any CPU + {019A2C1E-6694-4C4F-A0DB-A9350ADDDA09}.Release|Any CPU.ActiveCfg = Release|Any CPU + {019A2C1E-6694-4C4F-A0DB-A9350ADDDA09}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..545c7496 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Numerics")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("Numerics")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("64b1389d-9016-4be6-90f5-0a92ecfc6237")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Test/AuthoringTests.txt b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Test/AuthoringTests.txt new file mode 100644 index 00000000..64bab948 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Test/AuthoringTests.txt @@ -0,0 +1,136 @@ +========================================================================== + Visual Studio Team System: Overview of Authoring and Running Tests +========================================================================== + +This overview describes the features for authoring and running tests in +Visual Studio Team System and Visual Studio Team Edition for Software Testers. + +Opening Tests +------------- +To open a test, open a test project or a test metadata file (a file with +extension .vsmdi) that contains the definition of the test. You can find +test projects and metadata files in Solution Explorer. + +Viewing Tests +------------- +To see which tests are available to you, open the Test View window. Or, +if you have installed Team Edition for Software Testers, you can also open +the Test List Editor window to view tests. + +To open the Test View window, click the Test menu, point to Windows, and +then click Test View. To open the Test List Editor window (if you have +installed Team Edition for Software Testers), click Test, point to Windows, +and then click Test List Editor. + +Running Tests +------------- +You can run tests from the Test View window and the Test List Editor window. +See Viewing Tests to learn how to open these windows. To run one or more +tests displayed in the Test View window, first select the tests in that +window; to select multiple tests, hold either the Shift or CTRL key while +clicking tests. Then click the Run Tests button in the Test View window +toolbar. + +If you have installed Visual Studio Team Edition for Software Testers, you can +also use the Test List Editor window to run tests. To run tests in Test List Editor, +select the check box next to each test that you want to run. Then click the +Run Tests button in the Test List Editor window toolbar. + +Viewing Test Results +-------------------- +When you run a test or a series of tests, the results of the test run will be +shown in the Test Results window. Each individual test in the run is shown on +a separate line so that you can see its status. The window contains an +embedded status bar in the top half of the window that provides you with +summary details of the complete test run. + +To see more detailed results for a particular test result, double-click it in +the Test Results window. This opens a window that provides more information +about the particular test result, such as any specific error messages returned +by the test. + +Changing the way that tests are run +----------------------------------- +Each time you run one or more tests, a collection of settings is used to +determine how those tests are run. These settings are contained in a “test +run configuration” file. + +Here is a partial list of the changes you can make with a test run +configuration file: + + - Change the naming scheme for each test run. + - Change the test controller that the tests are run on so that you can run + tests remotely. + - Gather code coverage data for the code being tested so that you can see + which lines of code are covered by your tests. + - Enable and disable test deployment. + - Specify additional files to deploy before tests are run. + - Select a different host, ASP.NET, for running ASP.NET unit tests. + - Select a different host, the smart device test host, for running smart device unit tests. + - Set various properties for the test agents that run your tests. + - Run custom scripts at the start and end of each test run so that you can + set up the test environment exactly as required each time tests are run. + - Set time limits for tests and test runs. + - Set the browser mix and the number of times to repeat Web tests in the + test run. + +By default, a test run configuration file is created whenever you create a +new test project. You make changes to this file by double-clicking it in +Solution Explorer and then changing its settings. (Test run configuration +files have the extension .testrunconfig.) + +A solution can contain multiple test run configuration files. Only one of +those files, known as the “Active” test run configuration file, is used to +determine the settings that are currently used for test runs. You select +the active test run configuration by clicking Select Active Test Run +Configuration on the Test menu. + +------------------------------------------------------------------------------- + +Test Types +---------- +Using Visual Studio Team Edition for Software Testers, you can create a number +of different test types: + +Unit test: Use a unit test to create a programmatic test in C++, Visual C# or +Visual Basic that exercises source code. A unit test calls the methods of a +class, passing suitable parameters, and verifies that the returned value is +what you expect. +There are three specialized variants of unit tests: + - Data-driven unit tests are created when you configure a unit test to be + called repeatedly for each row of a data source. The data from each row + is used by the unit test as input data. + - ASP.NET unit tests are unit tests that exercise code in an ASP.NET Web + application. + - Smart device unit tests are unit tests that are deployed to a smart device + or emulator and then executed by the smart device test host. + +Web Test: Web tests consist of an ordered series of HTTP requests that you +record in a browser session using Microsoft Internet Explorer. You can have +the test report specific details about the pages or sites it requests, such +as whether a particular page contains a specified string. + +Load Test: You use a load test to encapsulate non-manual tests, such as +unit, Web, and generic tests, and then run them simultaneously by using +virtual users. Running these tests under load generates test results, +including performance and other counters, in tables and in graphs. + +Generic test: A generic test is an existing program wrapped to function as a +test in Visual Studio. The following are examples of tests or programs that +you can turn into generic tests: + - An existing test that uses process exit codes to communicate whether the + test passed or failed. 0 indicates passing and any other value indicates + a failure. + - A general program to obtain specific functionality during a test scenario. + - A test or program that uses a special XML file (called a “summary results + file”), to communicate detailed results. + +Manual test: The manual test type is used when the test tasks are to be +completed by a test engineer as opposed to an automated script. + +Ordered test: Use an ordered test to execute a set of tests in an order you +specify. + +------------------------------------------------------------------------------- + + diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Test/NumericsTest.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Test/NumericsTest.cs new file mode 100644 index 00000000..5ac6dd2e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Test/NumericsTest.cs @@ -0,0 +1,147 @@ +using Numerics; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System.Collections.Generic; +using System; + +namespace Test +{ + + + /// + ///This is a test class for NumericsTest and is intended + ///to contain all NumericsTest Unit Tests + /// + [TestClass()] + public class NumericsTest + { + + + private TestContext testContextInstance; + + /// + ///Gets or sets the test context which provides + ///information about and functionality for the current test run. + /// + public TestContext TestContext + { + get + { + return testContextInstance; + } + set + { + testContextInstance = value; + } + } + + #region Additional test attributes + // + //You can use the following additional attributes as you write your tests: + // + //Use ClassInitialize to run code before running the first test in the class + //[ClassInitialize()] + //public static void MyClassInitialize(TestContext testContext) + //{ + //} + // + //Use ClassCleanup to run code after all tests in a class have run + //[ClassCleanup()] + //public static void MyClassCleanup() + //{ + //} + // + //Use TestInitialize to run code before running each test + //[TestInitialize()] + //public void MyTestInitialize() + //{ + //} + // + //Use TestCleanup to run code after each test has run + //[TestCleanup()] + //public void MyTestCleanup() + //{ + //} + // + #endregion + + + /// + ///A test for SecantMethod + /// + [TestMethod()] + public void SecantMethodTest() + { + Numerics.Numerics target = new Numerics.Numerics(); // TODO: Initialize to an appropriate value + double fx1 = 0F; // TODO: Initialize to an appropriate value + double x1 = 0F; // TODO: Initialize to an appropriate value + double fx2 = 0F; // TODO: Initialize to an appropriate value + double x2 = 0F; // TODO: Initialize to an appropriate value + Dictionary expected = null; // TODO: Initialize to an appropriate value + Dictionary actual; + actual = target.SecantMethod(fx1, x1, fx2, x2); + Assert.AreEqual(expected, actual); + Assert.Inconclusive("Verify the correctness of this test method."); + } + + /// + ///A test for ModifiedSecantMethod + /// + [TestMethod()] + public void ModifiedSecantMethodTest() + { + Numerics.Numerics target = new Numerics.Numerics(); // TODO: Initialize to an appropriate value + double fx = 0F; // TODO: Initialize to an appropriate value + double x = 0F; // TODO: Initialize to an appropriate value + double fxdel = 0F; // TODO: Initialize to an appropriate value + double delta = 0F; // TODO: Initialize to an appropriate value + Dictionary expected = null; // TODO: Initialize to an appropriate value + Dictionary actual; + actual = target.ModifiedSecantMethod(fx, x, fxdel, delta); + Assert.AreEqual(expected, actual); + Assert.Inconclusive("Verify the correctness of this test method."); + } + + /// + ///A test for Numerics Constructor + /// + [TestMethod()] + public void NumericsConstructorTest() + { + Numerics.Numerics target = new Numerics.Numerics(); + Assert.Inconclusive("TODO: Implement code to verify target"); + } + + + /// + /// A test for NewtonRaphson + /// + [TestMethod()] + public void NewtonRaphson() + { + Parameter E1 = new Parameter(0.0); + Parameter E2 = new Parameter(0.0); + Parameter E3 = new Parameter(0.0); + Parameter E4 = new Parameter(0.0); + Func[] functions = new Func[] + { + () => 0.005 * (100.0 - E1 - 2.0 * E2) * (1.0 - E1 - E3) - 100.0 * E1, + () => 500.0 * Math.Pow(100.0 - E1 - 2.0 * E2, 2.0) - 100.0 * E2, + () => 0.5 * (100.0 - E1 - E3 - 2.0 * E4) - 100.0 * E3, + () => 10000.0 * Math.Pow(100.0 * E3 - 2.0 * E4, 2.0) - 100.0 * E4 + }; + + Parameter[] parameters = new Parameter[] { E1, E2, E3, E4 }; + + NewtonRaphson nr = new NewtonRaphson(parameters, functions); + for (int i = 0; i < 15; i++) + { + nr.Iterate(); + } + + double[] result = nr.GetResult(); + for (int i = 0; i <= result.Length - 1; i++) + System.Diagnostics.Debug.WriteLine("E" + i.ToString() + "\t" + result[i].ToString()); + + } + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Test/NumericsTest.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Test/NumericsTest.csproj new file mode 100644 index 00000000..5c69968a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Test/NumericsTest.csproj @@ -0,0 +1,69 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {019A2C1E-6694-4C4F-A0DB-A9350ADDDA09} + Library + Properties + Test + Test + v4.0 + 512 + {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + + + + + 3.5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + 3.5 + + + + + + + + + + + + + + {41D16632-EC8E-4F82-8CB2-0346481959C3} + Numerics + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Test/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..28d91c55 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.Numerics/Test/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Department of Civil Engineering")] +[assembly: AssemblyProduct("Test")] +[assembly: AssemblyCopyright("Copyright © Department of Civil Engineering 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("d2eb3aba-7945-4257-a5ab-9e47bfe44a61")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..1718b99f --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EngineWrapper")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("University of South Carolina")] +[assembly: AssemblyProduct("EngineWrapper")] +[assembly: AssemblyCopyright("Copyright © University of South Carolina 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("350a391b-377e-4786-bb36-40b4d68c7aad")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/SMW.csproj b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/SMW.csproj new file mode 100644 index 00000000..d8a08caf --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/SMW.csproj @@ -0,0 +1,83 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {96C23728-CA20-47F8-A85C-AE76A31085FB} + Library + Properties + SMW + SMW + + + + + 3.5 + v4.0 + Client + + + true + full + false + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\..\..\Binaries\Plugins\HydroModeler\example_configuration\bin\ + TRACE + prompt + 4 + + + + False + ..\NUnit\nunit.framework.dll + + + ..\OpenMI\Oatc.OpenMI.Sdk.Backbone.dll + + + ..\OpenMI\Oatc.OpenMI.Sdk.Buffer.dll + + + ..\OpenMI\Oatc.OpenMI.Sdk.DevelopmentSupport.dll + + + ..\OpenMI\Oatc.OpenMI.Sdk.Wrapper.dll + + + ..\OpenMI\OpenMI.Standard.dll + + + ..\SharpMap\SharpMap.dll + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/SMW.sln b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/SMW.sln new file mode 100644 index 00000000..5f16fa7e --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/SMW.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMW", "SMW.csproj", "{96C23728-CA20-47F8-A85C-AE76A31085FB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {96C23728-CA20-47F8-A85C-AE76A31085FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96C23728-CA20-47F8-A85C-AE76A31085FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96C23728-CA20-47F8-A85C-AE76A31085FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96C23728-CA20-47F8-A85C-AE76A31085FB}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/Source/Utilities.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/Source/Utilities.cs new file mode 100644 index 00000000..74b9e8f3 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/Source/Utilities.cs @@ -0,0 +1,986 @@ +using System; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using SharpMap.Data; +using SharpMap.Data.Providers; +using SharpMap.Layers; +using SharpMap.Geometries; +using System.Data.SqlClient; + +namespace SMW +{ + public class ODM + { + //Define all of the necessary ODM parameters within this class (with default values) and then reference these + // within the Utilities class. The developer can choose to set the parameters they want before calling the + // ODM utiity methods (within their engine class). + + //The developer must enter Values, DateTimes, and StreamWriter object to create the .csv file + + + #region Accessors for CreateODMcsv + + /// + /// Name of the site. Required + /// + /// + private string _SiteName = "unknown"; + public string SiteName + { + get { return _SiteName; } + set + { + //remove spaces from name + _SiteName = value.Replace(" ", String.Empty); + } + } + + /// + /// Corresponding code associated with the SiteName. If one doesn't exist this is can be used to assign one. Required + /// + private string _siteCode = "0"; + public string SiteCode + { + get { return _siteCode; } + set { _siteCode = value; } + } + + /// + /// Site latitude in degrees. + /// + /// 41.7 + private string _Latitude = "41.7"; + public string Latitude + { + get { return _Latitude; } + set { _Latitude = value; } + } + + /// + /// Site longitude in degrees. + /// + /// -111.9 + private string _Longitude = "-111.9"; + public string Longitude + { + get { return _Longitude; } + set { _Longitude = value; } + } + + /// + /// Value accuracy + /// + private string _valAccuracy = "1"; + public string ValAccuracy + { + get { return _valAccuracy; } + set { _valAccuracy = value; } + } + + /// + /// Coordinate datum. + /// + /// 2 + private string _datum = "2"; + public string Datum + { + get { return _datum; } + set { _datum = value; } + } + + /// + /// Site elevation + /// + /// 0 + private string _elevation = "0"; + public string Elevation + { + get { return _elevation; } + set { _elevation = value; } + } + + /// + /// Vertical Datum + /// + /// NGVD29 + private string _verticalDatum = "NGVD29"; + public string VerticalDatum + { + get { return _verticalDatum; } + set { _verticalDatum = value; } + } + + /// + /// Site's 'X' coordinate + /// + /// 421276.323 + private string _localX = "421276.323"; + public string LocalX + { + get { return _localX; } + set { _localX = value; } + } + + /// + /// Sites 'Y' coordinate + /// + /// 4618952.04 + private string _localY = "4618952.04"; + public string LocalY + { + get { return _localY; } + set { _localY = value; } + } + + private string _localProjectionID = "105"; + public string LocalProjectionID + { + get { return _localProjectionID; } + set { _localProjectionID = value; } + } + + private string _PosAccuracy = "1"; + public string PosAccuracy + { + get { return _PosAccuracy; } + set { _PosAccuracy = value; } + } + + /// + /// State in which the site is located + /// + /// SC + private string _siteState = "SC"; + public string SiteState + { + get { return _siteState; } + set { _siteState = value; } + } + + /// + /// County in which the site is located + /// + /// Richland + private string _county = "Richland"; + public string County + { + get { return _county; } + set { _county = value; } + } + + + private string _comment = "none"; + public string Comment + { + get { return _comment; } + set { _comment = value; } + } + + /// + /// Description of modeling technique + /// + private string _methodDesc = "none"; + public string MethodDesc + { + get { return _methodDesc; } + set { _methodDesc = value; } + } + + /// + /// Web link that explains the methods used + /// + private string _methodLink = "none"; + public string MethodLink + { + get { return _methodLink; } + set { _methodLink = value; } + } + + private string _qualifierCode = ""; + public string QualifierCode + { + get { return _qualifierCode; } + set { _qualifierCode = value; } + } + + private string _qualifierDesc = ""; + public string QualifierDesc + { + get { return _qualifierDesc; } + set { _qualifierDesc = value; } + } + + private string _speciation = "Not Applicable"; + public string Speciation + { + get { return _speciation; } + set { _speciation = value; } + } + + private string _sampleMedium = "Other"; + public string SampleMedium + { + get { return _sampleMedium; } + set { _sampleMedium = value; } + } + + private string _valueType = "Field Observation"; + public string ValueType + { + get { return _valueType; } + set { _valueType = value; } + } + + private string _isRegular = "1"; + public string IsRegular + { + get { return _isRegular; } + set { _isRegular = value; } + } + + /// + /// The time increment which is supported + /// + private string _timeSupport = "30"; + public string TimeSupport + { + get { return _timeSupport; } + set { _timeSupport = value; } + } + + /// + /// Units of time support + /// + private string _timeUnitsID = "102"; + public string TimeUnitsID + { + get { return _timeUnitsID; } + set { _timeUnitsID = value; } + } + + /// + /// Type of data used + /// + private string _dataType = "Incremental"; + public string DataType + { + get { return _dataType; } + set { _dataType = value; } + } + + private string _generalCategory = "Hydrology"; + public string GeneralCategory + { + get { return _generalCategory; } + set { _generalCategory = value; } + } + + private string _noDataValue = "-9999"; + public string NoDataValue + { + get { return _noDataValue; } + set { _noDataValue = value; } + } + + private string _offsetUnitsID = ""; + public string OffsetUnitsID + { + get { return _offsetUnitsID; } + set { _offsetUnitsID = value; } + } + + private string _offsetDesc = ""; + public string OffsetDesc + { + get { return _offsetDesc; } + set { _offsetDesc = value; } + } + + private string _qualityControlCode = "0"; + public string QualityControlCode + { + get { return _qualityControlCode; } + set { _qualityControlCode = value; } + } + + private string _definition = "none"; + public string Definition + { + get { return _definition; } + set { _definition = value; } + } + + private string _explaination = "none"; + public string Explaination + { + get { return _explaination; } + set { _explaination = value; } + } + + private string _organization = "University of South Carolina"; + public string Organization + { + get { return _organization; } + set { _organization = value; } + } + + private string _sourceDesc = "Continuous"; + public string SourceDesc + { + get { return _sourceDesc; } + set { _sourceDesc = value; } + } + + private string _sourceLink = "none"; + public string SourceLink + { + get { return _sourceLink; } + set { _sourceLink = value; } + } + + private string _contactName = "unknown"; + public string ContactName + { + get { return _contactName; } + set { _contactName = value; } + } + + private string _phone = "unknown"; + public string Phone + { + get { return _phone; } + set { _phone = value; } + } + + private string _email = "unknown"; + public string Email + { + get { return _email; } + set { _email = value; } + } + + private string _address = "unknown"; + public string Address + { + get { return _address; } + set { _address = value; } + } + + private string _city = "unknown"; + public string City + { + get { return _city; } + set { _city = value; } + } + + private string _sourceState = "unknown"; + public string SourceState + { + get { return _sourceState; } + set { _sourceState = value; } + } + + private string _zipCode = "unknown"; + public string ZipCode + { + get { return _zipCode; } + set { _zipCode = value; } + } + + private string _citation = "none"; + public string Citation + { + get { return _citation; } + set { _citation = value; } + } + + private string _topicCategory = "inlandWaters"; + public string TopicCategory + { + get { return _topicCategory; } + set { _topicCategory = value; } + } + + private string _title = "none"; + public string Title + { + get { return _title; } + set { _title = value; } + } + + private string _abstract = "none"; + public string Abstract + { + get { return _abstract; } + set { _abstract = value; } + } + + private string _profileVersion = "none"; + public string ProfileVersion + { + get { return _profileVersion; } + set { _profileVersion = value; } + } + + private string _metadata = ""; + public string Metadata + { + get { return _metadata; } + set { _metadata = value; } + } + + private string _sampleType = ""; + public string SampleType + { + get { return _sampleType; } + set { _sampleType = value; } + } + + private string _labSampleCode = ""; + public string LabSampleCode + { + get { return _labSampleCode; } + set { _labSampleCode = value; } + } + + private string _labName = ""; + public string LabName + { + get { return _labName; } + set { _labName = value; } + } + + private string _labOrganization = ""; + public string LabOrganization + { + get { return _labOrganization; } + set { _labOrganization = value; } + } + + private string _labMethodName = ""; + public string LabMethodName + { + get { return _labMethodName; } + set { _labMethodName = value; } + } + + private string _labMethodDesc = ""; + public string LabMethodDesc + { + get { return _labMethodDesc; } + set { _labMethodDesc = value; } + } + + private string _labMethodLink = ""; + public string LabMethodLink + { + get { return _labMethodLink; } + set { _labMethodLink = value; } + } + + private string _offsetValue = ""; + public string OffsetValue + { + get { return _offsetValue; } + set { _offsetValue = value; } + } + + private string _censorCode = "nc"; + public string CensorCode + { + get { return _censorCode; } + set { _censorCode = value; } + } + + private string _variableCode = "3"; + public string VariableCode + { + get { return _variableCode; } + set { _variableCode = value; } + } + + private string _variableName = "Streamflow"; + public string VariableName + { + get { return _variableName; } + set { _variableName = value; } + } + + private string _variableUnitsID = "35"; + public string VariableUnitsID + { + get { return _variableUnitsID; } + set { _variableUnitsID = value; } + } + + /// + /// Object that holds all of the values that will be entered into ODM + /// + private System.Collections.ArrayList _values = null; + public System.Collections.ArrayList Values + { + get { return _values; } + set { _values = value; } + } + + /// + /// Object that holds the corresponding times associated with the 'Values' object. Required + /// + private System.Collections.ArrayList _dateTimes = null; + public System.Collections.ArrayList DateTimes + { + get { return _dateTimes; } + set { _dateTimes = value; } + } + + #endregion + + + + + + /// + /// This method is used to add definitions (i.e. units, methods, variabletype, etc...) into ODM database. + /// + /// Full path to ODM database + /// Name of table in which definition will be appended + /// array of parameter names to be entered in database. Must be in same order as existing tables. + /// NOTE: This method will fail if manditory data is omitted, see ODM database for required table entries. + /// /// array of parameter values to be entered in database. Must be in same order as 'parameter_names'. + public void Add_ODM_Definition(string odm_path, string tablename, string[] parameter_names, string[] parameter_values) + { + //C:\\Research\\CUAHSI\\ODM\\Blank Template ODM 1.1\\OD.mdf + + //HACK: The modeler should be responsible for creating the connection to the OD database + //open Sql Connection + SqlConnection myconn = new SqlConnection( + "Data Source=.\\SQLEXPRESS;" + + "Initial Catalog = OD;" + + "User ID = sa" + + "Password = sa"); + //System.Data.SqlClient.SqlConnection myconn = + //new System.Data.SqlClient.SqlConnection("Data Source=.\\SQLEXPRESS;" + + // "AttachDbFilename="+odm_path+";" + + // "Integrated Security=True;" + + // "Connect Timeout=30;" + + // "user id = ODM_Loader"+ + // "Pwd=ODM_Loader"); + + try { myconn.Open(); } + catch (Exception) { }; + + //Create insert string + string insert = "INSERT INTO" + tablename + "("; + foreach (string param in parameter_names) + { + insert += (param + ","); + } + insert += ") Values ("; + foreach (string param in parameter_values) + { + insert += (param + ","); + } + insert += ")"; + + //Create SQL command + System.Data.SqlClient.SqlCommand myCommand = new System.Data.SqlClient.SqlCommand(insert, myconn); + + //Load data into ODM + try { myCommand.ExecuteNonQuery(); } + catch (Exception) { }; + } + + + + + + + /// + /// Writes the header information needed prior to writing data + /// + /// StreamWriter object pointing to the location where the .csv file will be created + public void CreateODMcsv() + { + if(!System.IO.Directory.Exists(CSVPath)) + System.IO.Directory.CreateDirectory(CSVPath); + + + + System.IO.StreamWriter SW = new System.IO.StreamWriter(CSVPath + "\\" + SiteName + ".csv"); + //Write Header Info + SW.WriteLine("DataValue,ValueAccuracy,LocalDateTime,DateTimeUTC,SiteCode,SiteName," + + "Latitude,Longitude,LatLongDatumID,Elevation_m,VerticalDatum,LocalX," + + "LocalY,LocalProjectionID,PosAccuracy_m,SiteState,County,Comments," + + "MethodDescription,MethodLink,QualifierCode,QualifierDescription," + + "VariableCode,VariableName,Speciation,VariableUnitsID,SampleMedium," + + "ValueType,IsRegular,TimeSupport,TimeUnitsID,DataType,GeneralCategory," + + "NoDataValue,OffsetUnitsID,OffsetDescription,QualityControlLevelCode," + + "Definition,Explanation,Organization,SourceDescription,SourceLink,ContactName," + + "Phone,Email,Address,City,SourceState,ZipCode,Citation,TopicCategory,Title," + + "Abstract,ProfileVersion,MetadataLink,SampleType,LabSampleCode,LabName,LabOrganization," + + "LabMethodName,LabMethodDescription,LabMethodLink,OffsetValue,CensorCode"); + + + //Write out values + + + //loop through all the values stored in the Values arraylist + int i = 0; + + foreach (double value in Values) + { + DateTime UTCDateTime = Convert.ToDateTime(DateTimes[i]); + + SW.Write( value.ToString() + "," + //Data Values + ValAccuracy +"," + //Value Accuracy + DateTimes[i] + ", " + //LocalDateTime + UTCDateTime.ToUniversalTime().ToString() + "," + //DateTimeUTC + SiteCode + " ," + //SiteCode + SiteName + "," + //SiteName + Latitude + "," + //Latitude + Longitude + "," + //Longitude + Datum + "," + //Lat Lon Datum + Elevation + "," + //Elevation + VerticalDatum + "," + //Vertical Datum + LocalX + "," + //Local X + LocalY + "," + //Local Y + LocalProjectionID + "," + //Local Projection ID + PosAccuracy + "," + //Pos Accuracy_m + SiteState + "," + //SiteState + County + "," + //County + Comment + "," + //Comment + MethodDesc + "," + //Method Description + MethodLink + "," + //MethodLink + QualifierCode + "," + //Qualifier Code + QualifierDesc +"," + //Qualifier Desc + VariableCode + "," + //Variable Code + VariableName + "," + //Variable Name + Speciation + "," + //Speciation + VariableUnitsID + "," + //VariableUnitsID + SampleMedium + "," + //Sample Medium + ValueType + "," + //ValueType + IsRegular + "," + //IsRegular + TimeSupport + "," + //TimeSupport + TimeUnitsID + "," + //TimeUnitsID + DataType + "," + //DataType + GeneralCategory + "," + //General Category + NoDataValue + "," + //NoDataValue + OffsetUnitsID + "," + //OffsetUnitsID + OffsetDesc + "," + //Offset Desciption + QualityControlCode + "," + //Quality Control Level Code + Definition + "," + //Definition + Explaination + "," + //Explaination + Organization + "," + //Organization + SourceDesc + "," + //Source Desc + SourceLink + "," + //SourceLink + ContactName + "," + //ContactName + Phone + "," + //Phone + Email + "," + //Email + Address + "," + //Address + City + "," + //City + SourceState + "," + //Source State + ZipCode + "," + //Zip Code + Citation + "," + //Citation + TopicCategory + "," + //Topic Category + Title + "," + //Title + Abstract + "," + //Abstract + ProfileVersion + "," + //Profile version + Metadata + "," + //Metadata + SampleType + "," + //SampleType + LabSampleCode + "," + //LabSampleCode + LabName + "," + //LabName + LabOrganization + "," + //LabOrganization + LabMethodName + "," + //LabMethodName + LabMethodDesc + "," + //LabMethodDescription + LabMethodLink + "," + //LabMethodLink + OffsetValue + "," + //Offset Value + CensorCode + "\n"); //Censor Code + + i++; + + } + SW.Close(); + } + + + + + //HACK: Remove this because it has phased out + /// + /// Writes model data to csv file, in a format compatible with ODM.Loader (use Utilites.CreateODMcsv to write header info first) + /// + /// Stream Writer instance + /// Array of DateTimes, UTC format + /// Array of output values, should be organized to match with UTCDateTimes[] + /// integer code corresponding to the Unit ID, from ODM 'Units' table + /// integer code corresponding to the Variable ID, from ODM 'Variables' table + /// Name of variable in string format + /// Name of Site in string format + public void WriteToODMcsv(System.IO.StreamWriter SW, System.Collections.ArrayList DateTimes, System.Collections.ArrayList values, int UnitCode, + int VariableCode, string variableName, string Sitename) + { + ODM Params = new ODM(); + + + int i = 0; + foreach (double value in values) + { + DateTime UTCDateTime = Convert.ToDateTime(DateTimes[i]); + + SW.Write(value.ToString() + "," + //Data Values + "1," + //Value Accuracy + DateTimes[i] + ", " + //LocalDateTime + UTCDateTime.ToUniversalTime().ToString() + "," + //DateTimeUTC + "1 ," + //SiteCode + Sitename + "," + //SiteName + "41.718473," + //Latitude + "-111.946402," + //Longitude + "2," + //Lat Lon Datum + "0," + //Elevation + "NGVD29," + //Vertical Datum + "421276.323," + //Local X + "4618952.04," + //Local Y + "105," + //Local Projection ID + "," + //Pos Accuracy_m + "SC," + //SiteState + "Richland," + //County + "none," + //Comment + "Component Modeling," + //Method Description + "http://www.campbellsci.com," + //MethodLink + "," + //Qualifier Code + "," + //Qualifier Desc + VariableCode.ToString() + "," + //Variable Code + variableName + "," + //Variable Name + "Not Applicable," + //Speciation + UnitCode.ToString() + "," + //VariableUnitsID + "Other," + //Sample Medium + "Field Observation," + //ValueType + "1," + //IsRegular + "30," + //TimeSupport + "102," + //TimeUnitsID + "Incremental," + //DataType + "Hydrology," + //General Category + "-9999," + //NoDataValue + "," + //OffsetUnitsID + "," + //Offset Desciption + "0," + //Quality Control Level Code + "none," + //Definition + "none," + //Explaination + "Universit of South Carolina," + //Organization + "Continuous," + //Source Desc + "none," + //SourceLink + "unknown," + //ContactName + "unknown," + //Phone + "unknown," + //Email + "unknown," + //Address + "unknown," + //City + "unknown," + //Source State + "unknown," + //Zip Code + "none," + //Citation + "inlandWaters," + //Topic Category + "none," + //Title + "none," + //Abstract + "none," + //Profile version + "," + //Metadata + "," + //SampleType + "," + //LabSampleCode + "," + //LabName + "," + //LabOrganization + "," + //LabMethodName + "," + //LabMethodDescription + "," + //LabMethodLink + "," + //Offset Value + "nc" + //Censor Code + "\n"); + i++; + } + + } + + + + + + + + //TODO: accept relative paths + /// + /// This method loads a .csv file into ODM. + /// + /// path to the odm .bat file + public void LoadIntoODM() + { + + System.Diagnostics.Process p = new System.Diagnostics.Process(); + p.EnableRaisingEvents = false; + + p.StartInfo.FileName = CSVPath + "//" + SiteName + ".bat"; + p.Start(); + p.Close(); + + } + + + //TODO: accept relative paths + //HACK: Put into separate class, so that all of the accessors for this method are in the same location + /// + /// This method creates a .bat file is necessary for the LoadODMcsv method. Returns the full path of the bat file. + /// + /// path to save the .bat file + /// + /// Before calling this method, alter the values of Server, database. user, password, file, and log + public void CreateBat() + { + System.IO.StreamWriter sw = new System.IO.StreamWriter(CSVPath + "\\"+SiteName+".bat",false); + + sw.WriteLine("odmloader.exe -server {0} -db {1} -user {2} -password {3} -file {4} -log {5}",Server,Database,User,Password,SiteName+".csv",Log); + //TODO: For debugging only, Remove. + sw.WriteLine("pause"); + sw.Close(); + + } + + + #region Accessors for CreateBAT + + + private string _server = "CE-51\\SQLEXPRESS"; + public string Server + { + get { return _server; } + set { _server = value; } + } + + private string _database = "OD"; + public string Database + { + get { return _database; } + set { _database = value; } + } + + private string _user = "sa"; + public string User + { + get { return _user; } + set { _user = value; } + } + + private string _password = "sa"; + public string Password + { + get { return _password; } + set { _password = value; } + } + + private string _file = ""; + public string CSVPath + { + get { return _file; } + set { _file = value; } + } + + private string _log = "log.txt"; + public string Log + { + get { return _log; } + set { _log = value; } + } + + #endregion + + + } + + + //HACK: change this class name to GIS + public class Utilities + { + + #region GIS Utility Methods + + + /// + /// This method adds vertices to the omiElementSet. It provides the spatial representation for + /// the element set. The vertices are extracted from the components input shapefile. + /// + /// the components element set object + /// path to a shapefile, spatially defining the elementset + /// the elementset with vertices added to it from the shapefile + public ElementSet AddElementsFromShapefile(ElementSet omiElementSet, string shapefilePath) + { + //this uses the free SharpMap API for reading a shapefile + VectorLayer myLayer = new VectorLayer("elements_layer"); + myLayer.DataSource = new ShapeFile(shapefilePath); + myLayer.DataSource.Open(); + + //set spatial reference from shapefile + SpatialReference sprf = new SpatialReference(); + sprf.ID = myLayer.DataSource.SRID.ToString(); + omiElementSet.SpatialReference = sprf; + + //add elements to elementset from shapefile + for (uint i = 0; i < myLayer.DataSource.GetFeatureCount(); ++i) + { + + FeatureDataRow feat = myLayer.DataSource.GetFeature(i); + string GeometryType = Convert.ToString( + feat.Geometry.AsText().Substring( + 0, feat.Geometry.AsText().IndexOf(' '))); + + Element e = new Element(); + + if (feat.Table.Columns.IndexOf("HydroCode") != -1) + e.ID = feat.ItemArray[feat.Table.Columns.IndexOf("HydroCode")].ToString(); + + if (GeometryType == "POINT") + { + omiElementSet.ElementType = ElementType.XYPoint; + Point p = (Point)feat.Geometry; + Vertex v = new Vertex(); + v.x = p.X; + v.y = p.Y; + e.AddVertex(v); + } + if (GeometryType == "POLYGON") + { + omiElementSet.ElementType = ElementType.XYPolygon; + Polygon p = (Polygon)feat.Geometry; + LinearRing lr = p.ExteriorRing; + + //Only loop until lr.Vertices.Count-2 b/c the first element is the same + // as the last element within the exterior ring. This will thrown an error + // within the OATC element mapper, when trying to map elements. Also this + // loop arranges the vertices of the exterior ring in counter clockwise order + // as needed for the element mapping. + for (int j = lr.Vertices.Count-2; j >=0 ; j--) + { + Vertex v = new Vertex(); + v.x = lr.Vertices[j].X; + v.y = lr.Vertices[j].Y; + e.AddVertex(v); + } + } + if (GeometryType == "LINESTRING") + { + omiElementSet.ElementType = ElementType.XYPolyLine; + LineString ls = (LineString)feat.Geometry; + //Point endpt = ls.EndPoint; + //Point startpt = ls.StartPoint; + for(int j=0; j< ls.Vertices.Count;j++) + { + Vertex v = new Vertex(); + v.x = ls.Vertices[j].X; + v.y = ls.Vertices[j].Y; + e.AddVertex(v); + } + + } + omiElementSet.AddElement(e); + } + return omiElementSet; + } + + #endregion + + } +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/Source/Wrapper.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/Source/Wrapper.cs new file mode 100644 index 00000000..6e4f8b8b --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/Source/Wrapper.cs @@ -0,0 +1,404 @@ +using System; +using System.Collections.Generic; +using System.Collections; +using System.Text; +using System.IO; +using System.Xml; +using System.Xml.Serialization; +using System.Reflection; +using System.Diagnostics; +using OpenMI.Standard; +using Oatc.OpenMI.Sdk.Backbone; +using Oatc.OpenMI.Sdk.DevelopmentSupport; +using Oatc.OpenMI.Sdk.Wrapper; +//using Oatc.OpenMI.Gui.Core; +using System.Data; +using SharpMap.Data; +using SharpMap.Data.Providers; +using SharpMap.Layers; +using SharpMap.Geometries; +using System.Text.RegularExpressions; + +namespace SMW +{ + public abstract class Wrapper : Oatc.OpenMI.Sdk.Wrapper.IEngine + { + + #region Global Objects + private string _componentID = "Simple_Model_Component"; + private string _componentDescription = "Simple Model Component"; + private string _modelID; + private string _modelDescription; + private List _inputs = new List(); + private List _outputs = new List(); + private double _simulationStartTime; + private double _simulationEndTime; + private double _currentTime; + private double _timeStep; + private string _shapefilepath; + private Dictionary _quantities = new Dictionary(); + private Dictionary _elementSets = new Dictionary(); + private Dictionary _vals = new Dictionary(); + + private string _path; + + + + + + private DataTable _values = new DataTable(); + Unit _omiUnits; + #endregion + + #region Abstract Methods + /// + /// Used to Initialize the component. Performs routines that must be completed prior to simulation start. + /// + /// properties extracted from the components *.omi file + public abstract void Initialize(System.Collections.Hashtable properties); + public abstract bool PerformTimeStep(); + public abstract void Finish(); + #endregion + + public string PATH + { + get { return _path; } + } + public string GetComponentID() + { + return _componentID; + } + public string GetComponentDescription() + { + return _modelDescription; + } + public string GetModelID() + { + return _modelID; + } + public string GetModelDescription() + { + return _modelDescription; + } + public InputExchangeItem GetInputExchangeItem(int exchangeItemIndex) + { + return _inputs[exchangeItemIndex]; + } + public OutputExchangeItem GetOutputExchangeItem(int exchangeItemIndex) + { + return _outputs[exchangeItemIndex]; + } + public int GetInputExchangeItemCount() + { + if (_inputs == null) return 0; + else return _inputs.Count; + } + public int GetOutputExchangeItemCount() + { + if (_outputs == null) return 0; + else return _outputs.Count; + } + public ITimeSpan GetTimeHorizon() + { + return new Oatc.OpenMI.Sdk.Backbone.TimeSpan( + new TimeStamp(_simulationStartTime), new TimeStamp(_simulationEndTime)); + } + public void Dispose() + { + } + + public ITime GetCurrentTime() + { + if (_currentTime == 0.0) + _currentTime = _simulationStartTime; + return new TimeStamp(_currentTime); + } + public ITimeStamp GetEarliestNeededTime() + { + return (ITimeStamp)this.GetCurrentTime(); + } + public ITime GetInputTime(string QuantityID, string ElementSetID) + { + //This method returns the requested input time to the ILinkableEngine class + return this.GetCurrentTime(); + } + + public double GetMissingValueDefinition() + { + return -999; + } + + /// + /// This method is used to extract values from an upstream component. + /// + /// The input Quantity ID + /// The input Element Set ID + /// the values saved under the matching QuantityID and ElementSetID, from an upstream component + public IValueSet GetValues(string QuantityID, string ElementSetID) + { + string key = QuantityID + "_" + ElementSetID; + if (_vals.ContainsKey(key)) + return new ScalarSet(_vals[key]); + else if (_elementSets.ContainsKey(ElementSetID)) + return new ScalarSet(new double[_elementSets[ElementSetID].ElementCount]); + else + return new ScalarSet(new double[_outputs[0].ElementSet.ElementCount]); + } + + public void SetValues(string QuantityID, string ElementSetID, IValueSet values) + { + string key = QuantityID + "_" + ElementSetID; + if (_vals.ContainsKey(key)) + _vals[key] = ((ScalarSet)values).data; + else + _vals.Add(key,((ScalarSet)values).data); + } + + #region Auxilary Methods + + /// + /// This method will advance the components in time, by a single timestep. + /// + /// + /// This should be called at the end of Perform Time Step. + /// + public void AdvanceTime() + { + TimeStamp ct = (TimeStamp)GetCurrentTime(); + _currentTime = ct.ModifiedJulianDay + _timeStep / 86400.0; + } + + /// + /// Reads the Configuration file, and creates OpenMI exchange items + /// + /// path pointing to the components comfiguration (XML) file + public void SetVariablesFromConfigFile(string configFile) + { + //set output path variable + _path = Path.GetDirectoryName(configFile) + "\\"; + + //Read config file + XmlDocument doc = new XmlDocument(); + doc.Load(configFile); + + XmlElement root = doc.DocumentElement; + + XmlNode ID = root.SelectSingleNode("ModelInfo//ID"); + _modelID = ID.InnerText; + + XmlNode Desc = root.SelectSingleNode("ModelInfo//Description"); + _componentDescription = Desc.InnerText; + + XmlNodeList outputExchangeItems = root.SelectNodes("//OutputExchangeItem"); + int eid = 0; + foreach (XmlNode outputExchangeItem in outputExchangeItems) + { + CreateExchangeItemsFromXMLNode(outputExchangeItem, "OutputExchangeItem",eid); + eid ++; + } + XmlNodeList inputExchangeItems = root.SelectNodes("//InputExchangeItem"); + foreach (XmlNode inputExchangeItem in inputExchangeItems) + { + CreateExchangeItemsFromXMLNode(inputExchangeItem, "InputExchangeItem",eid); + eid++; + } + + XmlNode timeHorizon = root.SelectSingleNode("//TimeHorizon"); + + //Set IEngine properties + this._simulationStartTime = CalendarConverter.Gregorian2ModifiedJulian(Convert.ToDateTime(timeHorizon["StartDateTime"].InnerText)); + this._simulationEndTime = CalendarConverter.Gregorian2ModifiedJulian(Convert.ToDateTime(timeHorizon["EndDateTime"].InnerText)); + this._timeStep = Convert.ToDouble(timeHorizon["TimeStepInSeconds"].InnerText); + } + + private void CreateExchangeItemsFromXMLNode(XmlNode ExchangeItem, string Identifier, int eid) + { + //-- get dimension child nodes + XmlNodeList children = ExchangeItem.ChildNodes; + XmlNode quantityNode = children[1]; //HACK + Dictionary dims = new Dictionary(); + foreach (XmlNode child in quantityNode) + { + if (child.Name == "Dimensions") + { + foreach (XmlNode dimension in child.ChildNodes) + { + //-- get the inner xml for the element + string text = dimension.InnerXml; + + //-- get the start and end indices of "base" and "power" + int[] indices = new int[4] {text.IndexOf("")+6,text.IndexOf("")-1, + text.IndexOf("")+7,text.IndexOf("")-1}; + + //-- build base + string Base = ""; + for (int i = indices[0]; i <= indices[1]; i++) + Base += text[i]; + + //-- build power + string power = ""; + for (int i = indices[2]; i <= indices[3]; i++) + power += text[i]; + + //-- store dimension name and power + dims.Add(Base, Convert.ToDouble(power)); + } + + + } + } + + + //XmlNode dims = ExchangeItem.SelectSingleNode("//Dimensions"); + + //Create Dimensions + Dimension omiDimensions = new Dimension(); + //XmlNodeList dimensions = ExchangeItem.SelectNodes("//Dimensions/Dimension"); // You can filter elements here using XPath + foreach (KeyValuePair dim in dims) + { + if (dim.Key.ToUpper() == "LENGTH") + omiDimensions.SetPower(DimensionBase.Length, dim.Value); + else if (dim.Key.ToUpper() == "TIME") + omiDimensions.SetPower(DimensionBase.Time, dim.Value); + else if (dim.Key.ToUpper() == "AMOUNTOFSUBSTANCE") + omiDimensions.SetPower(DimensionBase.AmountOfSubstance, dim.Value); + else if (dim.Key.ToUpper() == "CURRENCY") + omiDimensions.SetPower(DimensionBase.Currency, dim.Value); + else if (dim.Key.ToUpper() == "ELECTRICCURRENT") + omiDimensions.SetPower(DimensionBase.ElectricCurrent, dim.Value); + else if (dim.Key.ToUpper() == "LUMINOUSINTENSITY") + omiDimensions.SetPower(DimensionBase.LuminousIntensity, dim.Value); + else if (dim.Key.ToUpper() == "MASS") + omiDimensions.SetPower(DimensionBase.Mass, dim.Value); + else if (dim.Key.ToUpper() == "TEMPERATURE") + omiDimensions.SetPower(DimensionBase.Temperature, dim.Value); + } + + //Create Units + _omiUnits = new Unit(); + XmlNode units = ExchangeItem.SelectSingleNode("Quantity/Unit"); + _omiUnits.ID = units["ID"].InnerText; + if (units["Description"] != null) _omiUnits.Description = units["Description"].InnerText; + if (units["ConversionFactorToSI"] != null) _omiUnits.ConversionFactorToSI = Convert.ToDouble(units["ConversionFactorToSI"].InnerText); + if (units["OffSetToSI"] != null) _omiUnits.OffSetToSI = Convert.ToDouble(units["OffSetToSI"].InnerText); + + //Create Quantity + Quantity omiQuantity = new Quantity(); + XmlNode quantity = ExchangeItem.SelectSingleNode("Quantity"); + omiQuantity.ID = quantity["ID"].InnerText; + if (quantity["Description"] != null) omiQuantity.Description = quantity["Description"].InnerText; + omiQuantity.Dimension = omiDimensions; + omiQuantity.Unit = _omiUnits; + if (quantity["ValueType"] != null) + { + if (quantity["ValueType"].InnerText == "Scalar") + { + omiQuantity.ValueType = OpenMI.Standard.ValueType.Scalar; + } + else if (quantity["ValueType"].InnerText == "Vector") + { + omiQuantity.ValueType = OpenMI.Standard.ValueType.Vector; + } + } + + //Create Element Set + ElementSet omiElementSet = new ElementSet(); + XmlNode elementSet = ExchangeItem.SelectSingleNode("ElementSet"); + omiElementSet.ID = elementSet["ID"].InnerText; + if (elementSet["Description"] != null) omiElementSet.Description = elementSet["Description"].InnerText; + + try + { + //add elements from shapefile to element set + SMW.Utilities utils = new SMW.Utilities(); + _shapefilepath = elementSet["ShapefilePath"].InnerText; + omiElementSet = utils.AddElementsFromShapefile(omiElementSet, _shapefilepath); + + } + catch (Exception) + { + Debug.WriteLine("An Element Set has not been declared using AddElementsFromShapefile"); + } + + + + if (Identifier == "OutputExchangeItem") + { + //create exchange item + OutputExchangeItem omiOutputExchangeItem = new OutputExchangeItem(); + omiOutputExchangeItem.Quantity = omiQuantity; + omiOutputExchangeItem.ElementSet = omiElementSet; + + //add the output exchange item to the list of output exchange items for the component + this._outputs.Add(omiOutputExchangeItem); + if (!this._quantities.ContainsKey(omiQuantity.ID)) this._quantities.Add(omiQuantity.ID, omiQuantity); + if (!this._elementSets.ContainsKey(omiElementSet.ID)) this._elementSets.Add(omiElementSet.ID, omiElementSet); + } + else if (Identifier == "InputExchangeItem") + { + //create exchange item + InputExchangeItem omiInputExchangeItem = new InputExchangeItem(); + omiInputExchangeItem.Quantity = omiQuantity; + omiInputExchangeItem.ElementSet = omiElementSet; + + + //add the output exchange item to the list of output exchange items for the component + this._inputs.Add(omiInputExchangeItem); + if (!this._quantities.ContainsKey(omiQuantity.ID)) this._quantities.Add(omiQuantity.ID, omiQuantity); + if (!this._elementSets.ContainsKey(omiElementSet.ID)) this._elementSets.Add(omiElementSet.ID, omiElementSet); + } + } + + /// + /// Adds columns to hold the components input and output the SMW's global data structure to + /// + public void SetValuesTableFields() + { + _values.Columns.Add("QuantityID", typeof(string)); + _values.Columns.Add("ElementSetID", typeof(string)); + _values.Columns.Add("ValueSet", typeof(IValueSet)); + + } + + #endregion + + + /// + /// Gets the model timestep (constant value) + /// + /// Modified Julian DateTime + public double GetTimeStep() + { + return _timeStep; + } + /// + /// Use to get the shapefile path stored in config.xml + /// + /// the absolute path to the elementset shapefile + public string GetShapefilePath() + { + return _shapefilepath; + } + /// + /// Gets the unit value that the component is implemented over + /// + /// unitID from config.xml + public string GetUnits() + { + return _omiUnits.ID; + } + + public List Outputs + { + get { return _outputs; } + set { _outputs = value; } + } + public List Inputs + { + get { return _inputs; } + set { _inputs = value; } + } + + } + +} diff --git a/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/Test/Test.cs b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/Test/Test.cs new file mode 100644 index 00000000..94174798 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/Utilities/edu.SC.SMW/Test/Test.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; +using System.Text; +using NUnit.Framework; + +namespace SMW.Unit_Test +{ + [TestFixture] + public class ODM_Tests + { + SMW.ODM odmUtils = new ODM(); + + [Test] + public void ODM_AddDef() + { + } + + [Test] + public void ODM_CreateCsv() + { + Console.WriteLine("\n Writing ODM .csv file...."); + //Create DateTimes and Values arraylists + System.Collections.ArrayList Dates = new System.Collections.ArrayList(); + System.Collections.ArrayList Vals = new System.Collections.ArrayList(); + DateTime time = DateTime.Now; + for (int i = 0; i <= 10; i++) + { + Dates.Add(time.AddHours((double)i)); + Vals.Add(Math.Pow(2, i)); + + } + //Define ODM Parameters + odmUtils.DateTimes = Dates; + odmUtils.Values = Vals; + odmUtils.SiteName = "TEST"; + odmUtils.SiteCode = "45"; + odmUtils.CSVPath = System.Environment.CurrentDirectory; + odmUtils.CreateODMcsv(); + + Console.WriteLine("ODM .csv has been written"); + + } + + [Test] + public void ODM_CreateBat() + { + Console.WriteLine("\n Writing ODM .bat file...."); + + odmUtils.SiteName = "TEST"; + odmUtils.CSVPath = System.Environment.CurrentDirectory; + + odmUtils.CreateBat(); + + Console.WriteLine("ODM .bat has been written"); + + } + + [Test] + public void ODM_LoadBat() + { + + Console.WriteLine("\n Loading .bat file using ODM_Data_Loader"); + + odmUtils.SiteName = "TEST"; + odmUtils.CSVPath = System.Environment.CurrentDirectory; + + odmUtils.LoadIntoODM(); + + + Console.WriteLine(" Data has been loaded into ODM "); + } + + + } + + [TestFixture] + public class Utilities_Tests + { + + } + + [TestFixture] + public class Wrapper_Tests + { + mock_class mock; + + [Test] + public void Test_Path() + { + //create a new instance of the mock class + mock = new mock_class(); + + //set variables using a faulty config path + string path = System.IO.Directory.GetCurrentDirectory() + "\\some_omi.omi"; + try + { + //this will always fail + mock.SetVariablesFromConfigFile(path); + } + catch (SystemException) { }; + + //get the path name that was set + string p = mock.PATH; + + //remove the omi filename from the end of the "path" string + string[] array = path.Split('\\'); + Array.Resize(ref array, array.Length - 1); + path = null; + foreach (string s in array) + path += s + "\\"; + + Assert.IsTrue(p == path, "The assigned path is different from the saved path!"); + + + + + } + } + public class mock_class : SMW.Wrapper + { + public override void Initialize(System.Collections.Hashtable properties) { } + public override bool PerformTimeStep(){return true;} + public override void Finish(){} + } + +} \ No newline at end of file diff --git a/Source/Plugins/Plugins.HydroModeler/app.config b/Source/Plugins/Plugins.HydroModeler/app.config new file mode 100644 index 00000000..07bb4262 --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/app.config @@ -0,0 +1,28 @@ + + + + +
    + + + + + + extensions\HydroModeler\HydroModeler.html + + + + + + + + + + + + + + + + + diff --git a/Source/Plugins/Plugins.HydroModeler/packages.config b/Source/Plugins/Plugins.HydroModeler/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Plugins/Plugins.HydroModeler/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/Measure/MapFunctionMeasure.cs b/Source/Plugins/Plugins.ShaleNetwork/Measure/MapFunctionMeasure.cs new file mode 100644 index 00000000..789ce16c --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Measure/MapFunctionMeasure.cs @@ -0,0 +1,496 @@ +// ******************************************************************************************************** +// Product Name: DotSpatial.Controls.dll +// Description: The Windows Forms user interface controls like the map, legend, toolbox, ribbon and others. +// ******************************************************************************************************** +// The contents of this file are subject to the MIT License (MIT) +// you may not use this file except in compliance with the License. You may obtain a copy of the License at +// http://dotspatial.codeplex.com/license +// +// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF +// ANY KIND, either expressed or implied. See the License for the specific language governing rights and +// limitations under the License. +// +// The Original Code is from MapWindow.dll version 6.0 +// +// The Initial Developer of this Original Code is Ted Dunsford. Created 11/19/2009 10:59:47 AM +// +// Contributor(s): (Open source contributors should list themselves and their modifications here). +// +// ******************************************************************************************************** + +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Data; +using DotSpatial.Symbology; +using DotSpatial.Topology; +using DotSpatial.Topology.Algorithm; +using Point = System.Drawing.Point; + +namespace Plugins.ShaleNetwork.Measure +{ + /// + /// A MapFunction that allows measuring the distance on the map. + /// + public class MapFunctionMeasure : MapFunction + { + private bool _areaMode; + private List _coordinates; + private double _currentArea; + private double _currentDistance; + private IFeatureSet _featureSet; + private bool _firstPartIsCounterClockwise; + private MeasureDialog _measureDialog; + private Point _mousePosition; + private double _previousDistance; + private List> _previousParts; + + private bool _standBy; + + #region Constructors + + /// + /// Initializes a new instance of the MapFunctionMeasure class. + /// + public MapFunctionMeasure() + { + Configure(); + } + + /// + /// Creates a new instance of AddShapeFunction, but specifies + /// the Map that this function should be applied to. + /// + /// + public MapFunctionMeasure(IMap map) + : base(map) + { + Configure(); + } + + private void Configure() + { + _previousParts = new List>(); + YieldStyle = YieldStyles.LeftButton | YieldStyles.RightButton; + _measureDialog = new MeasureDialog(); + HandleMeasureDialogEvents(); + + Control map = Map as Control; + if (map != null) map.MouseLeave += map_MouseLeave; + this.Name = "MapFunctionMeasure"; + } + + private void map_MouseLeave(object sender, EventArgs e) + { + Map.Invalidate(); + } + + private void HandleMeasureDialogEvents() + { + _measureDialog.MeasureModeChanged += MeasureDialogMeasureModeChanged; + _measureDialog.FormClosing += CoordinateDialogFormClosing; + _measureDialog.MeasurementsCleared += MeasureDialog_MeasurementsCleared; + } + + private void MeasureDialog_MeasurementsCleared(object sender, EventArgs e) + { + _previousParts.Clear(); + if (_coordinates != null) + _coordinates.Clear(); + _previousDistance = 0; + _currentDistance = 0; + _currentArea = 0; + Map.MapFrame.Invalidate(); + Map.Invalidate(); + _measureDialog.Distance = 0; + _measureDialog.TotalDistance = 0; + _measureDialog.TotalArea = 0; + } + + #endregion + + #region Methods + + /// + /// Forces this function to begin collecting points for building a new shape. + /// + protected override void OnActivate() + { + if (_measureDialog == null || _measureDialog.IsDisposed) + { + _measureDialog = new MeasureDialog(); + HandleMeasureDialogEvents(); + } + _measureDialog.Show(); + if (_standBy == false) + { + _previousParts = new List>(); + _coordinates = new List(); + } + + _standBy = false; + base.OnActivate(); + } + + /// + /// Allows for new behavior during deactivation. + /// + protected override void OnDeactivate() + { + if (_standBy) + { + return; + } + // Don't completely deactivate, but rather go into standby mode + // where we draw only the content that we have actually locked in. + _standBy = true; + Map.Invalidate(); + } + + /// + /// Handles drawing of editing features + /// + /// The drawing args + protected override void OnDraw(MapDrawArgs e) + { + Point mouseTest = Map.PointToClient(Control.MousePosition); + + bool hasMouse = Map.ClientRectangle.Contains(mouseTest); + + Pen bluePen = new Pen(Color.Blue, 2F); + Pen redPen = new Pen(Color.Red, 3F); + Brush redBrush = new SolidBrush(Color.Red); + + List points = new List(); + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + Brush blue = new SolidBrush(Color.FromArgb(60, 0, 0, 255)); + + if (_previousParts != null && _previousParts.Count > 0) + { + GraphicsPath previous = new GraphicsPath(); + previous.FillMode = FillMode.Winding; + List allPoints = new List(); + foreach (List part in _previousParts) + { + List prt = new List(); + foreach (Coordinate c in part) + { + prt.Add(Map.ProjToPixel(c)); + } + previous.AddLines(prt.ToArray()); + allPoints.AddRange(prt); + if (_areaMode) previous.CloseFigure(); + previous.StartFigure(); + } + if (_areaMode && _coordinates != null) + { + List fillPts = new List(); + if ((!_standBy && _coordinates.Count > 2) || _coordinates.Count > 3) + { + foreach (Coordinate c in _coordinates) + { + fillPts.Add(Map.ProjToPixel(c)); + } + if (!_standBy && hasMouse) + { + fillPts.Add(_mousePosition); + } + + previous.AddLines(fillPts.ToArray()); + previous.CloseFigure(); + } + } + if (allPoints.Count > 1) + { + e.Graphics.DrawPath(bluePen, previous); + if (_areaMode) + { + e.Graphics.FillPath(blue, previous); + } + } + + foreach (Point pt in allPoints) + { + e.Graphics.FillRectangle(redBrush, new Rectangle(pt.X - 2, pt.Y - 2, 4, 4)); + } + } + + if (_coordinates != null) + { + foreach (Coordinate coord in _coordinates) + { + points.Add(Map.ProjToPixel(coord)); + } + + if (points.Count > 1) + { + e.Graphics.DrawLines(bluePen, points.ToArray()); + foreach (Point pt in points) + { + e.Graphics.FillRectangle(redBrush, new Rectangle(pt.X - 2, pt.Y - 2, 4, 4)); + } + } + + if (points.Count > 0 && _standBy == false && hasMouse) + { + e.Graphics.DrawLine(redPen, points[points.Count - 1], _mousePosition); + if (_areaMode && points.Count > 1) + { + e.Graphics.DrawLine(redPen, points[0], _mousePosition); + } + } + if (points.Count > 1 && _areaMode && (_previousParts == null || _previousParts.Count == 0)) + { + if (hasMouse && !_standBy) + { + points.Add(_mousePosition); + } + + if (points.Count > 2) + { + e.Graphics.FillPolygon(blue, points.ToArray()); + } + } + } + bluePen.Dispose(); + redPen.Dispose(); + redBrush.Dispose(); + blue.Dispose(); + base.OnDraw(e); + } + + private double GetDist(Coordinate c1) + { + Coordinate c2 = _coordinates[_coordinates.Count - 1]; + double dx = Math.Abs(c2.X - c1.X); + double dy = Math.Abs(c2.Y - c1.Y); + double dist; + if (Map.Projection != null) + { + if (Map.Projection.IsLatLon) + { + double y = (c2.Y + c1.Y) / 2; + double factor = Math.Cos(y * Math.PI / 180); + dx *= factor; + dist = Math.Sqrt(dx * dx + dy * dy); + dist = dist * 111319.5; + } + else + { + dist = Math.Sqrt(dx * dx + dy * dy); + dist *= Map.Projection.Unit.Meters; + } + } + else + { + dist = Math.Sqrt(dx * dx + dy * dy); + } + _measureDialog.Distance = dist; + return dist; + } + + private double GetArea(List tempPolygon) + { + double area = Math.Abs(CgAlgorithms.SignedArea(tempPolygon)); + if (_previousParts == null || _previousParts.Count == 0) + { + _firstPartIsCounterClockwise = CgAlgorithms.IsCounterClockwise(tempPolygon); + } + else + { + if (CgAlgorithms.IsCounterClockwise(tempPolygon) != _firstPartIsCounterClockwise) + { + area = -area; + } + } + if (Map.Projection != null) + { + if (Map.Projection.IsLatLon) + { + // this code really assumes the location is near the equator + const double RadiusOfEarth = 111319.5; + area *= RadiusOfEarth * RadiusOfEarth; + } + else + { + area *= Map.Projection.Unit.Meters * Map.Projection.Unit.Meters; + } + } + return area; + } + + /// + /// updates the auto-filling X and Y coordinates + /// + /// + protected override void OnMouseMove(GeoMouseArgs e) + { + if (_standBy) + { + return; + } + if (_coordinates == null || _coordinates.Count == 0) + { + return; + } + Coordinate c1 = e.GeographicLocation; + if (_measureDialog.MeasureMode == MeasureMode.Distance) + { + double dist = GetDist(c1); + _measureDialog.TotalDistance = _previousDistance + _currentDistance + dist; + } + else + { + List tempPolygon = _coordinates.ToList(); + tempPolygon.Add(c1); + if (tempPolygon.Count < 3) + { + if (tempPolygon.Count == 2) + { + Rectangle r = Map.ProjToPixel(new LineString(tempPolygon).Envelope.ToExtent()); + r.Inflate(20, 20); + Map.Invalidate(r); + } + _mousePosition = e.Location; + return; + } + Polygon pg = new Polygon(new LinearRing(tempPolygon)); + + double area = GetArea(tempPolygon); + + _measureDialog.TotalArea = area; + Rectangle rr = Map.ProjToPixel(pg.Envelope.ToExtent()); + rr.Inflate(20, 20); + Map.Invalidate(rr); + _mousePosition = e.Location; + } + + if (_coordinates.Count > 0) + { + List points = _coordinates.Select(coord => Map.ProjToPixel(coord)).ToList(); + Rectangle oldRect = SymbologyGlobal.GetRectangle(_mousePosition, points[points.Count - 1]); + Rectangle newRect = SymbologyGlobal.GetRectangle(e.Location, points[points.Count - 1]); + Rectangle invalid = Rectangle.Union(newRect, oldRect); + invalid.Inflate(20, 20); + Map.Invalidate(invalid); + } + _mousePosition = e.Location; + base.OnMouseMove(e); + } + + /// + /// Handles the Mouse-Up situation + /// + /// + protected override void OnMouseUp(GeoMouseArgs e) + { + if (_standBy) + { + return; + } + // Add the current point to the featureset + + if (e.Button == MouseButtons.Right) + { + if (_coordinates.Count > 1) + { + _previousParts.Add(_coordinates); + if (_areaMode) + { + _measureDialog.TotalArea = _currentArea; + } + else + { + _previousDistance += _currentDistance; + _currentDistance = 0; + _currentArea = 0; + _measureDialog.Distance = 0; + _measureDialog.TotalDistance = _previousDistance; + } + } + + _coordinates = new List(); + Map.Invalidate(); + } + else + { + if (_coordinates == null) + { + _coordinates = new List(); + } + + if (_coordinates.Count > 0) + { + if (_measureDialog.MeasureMode == MeasureMode.Distance) + { + Coordinate c1 = e.GeographicLocation; + double dist = GetDist(c1); + _measureDialog.TotalDistance = _previousDistance + dist; + _currentDistance += dist; + } + } + _coordinates.Add(e.GeographicLocation); + if (_areaMode) + { + if (_coordinates.Count >= 3) + { + double area = GetArea(_coordinates); + _currentArea = area; + } + } + Map.Invalidate(); + } + + base.OnMouseUp(e); + } + + /// + /// Occurs when this function is removed. + /// + protected override void OnUnload() + { + if (Enabled) + { + _coordinates = null; + _previousParts = null; + _measureDialog.Hide(); + } + + Map.Invalidate(); + } + + private void CoordinateDialogFormClosing(object sender, FormClosingEventArgs e1) + { + // This signals that we are done with editing, and should therefore close up shop + Enabled = false; + Map.Invalidate(); + } + + private void MeasureDialogMeasureModeChanged(object sender, EventArgs e) + { + _previousParts.Clear(); + + _areaMode = (_measureDialog.MeasureMode == MeasureMode.Area); + if (_coordinates != null) + { + _coordinates = new List(); + } + Map.Invalidate(); + } + + #endregion + + /// + /// Gets or sets the featureset to modify + /// + public IFeatureSet FeatureSet + { + get { return _featureSet; } + set { _featureSet = value; } + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/Measure/MeasureDialog.cs b/Source/Plugins/Plugins.ShaleNetwork/Measure/MeasureDialog.cs new file mode 100644 index 00000000..a3f40b80 --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Measure/MeasureDialog.cs @@ -0,0 +1,394 @@ +// ******************************************************************************************************** +// Product Name: DotSpatial.Controls.dll +// Description: The Windows Forms user interface controls like the map, legend, toolbox, ribbon and others. +// ******************************************************************************************************** +// The contents of this file are subject to the MIT License (MIT) +// you may not use this file except in compliance with the License. You may obtain a copy of the License at +// http://dotspatial.codeplex.com/license +// +// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF +// ANY KIND, either expressed or implied. See the License for the specific language governing rights and +// limitations under the License. +// +// The Original Code is DotSpatial.dll +// +// The Initial Developer of this Original Code is Ted Dunsford. Created 11/19/2009 11:03:57 AM +// +// Contributor(s): (Open source contributors should list themselves and their modifications here). +// +// ******************************************************************************************************** + +using System; +using System.ComponentModel; +using System.Windows.Forms; + +namespace Plugins.ShaleNetwork.Measure +{ + /// + /// MeasureDialog + /// + public class MeasureDialog : Form + { + private double _areaIntoSquareMeters; + private int _areaUnitIndex; + private double _distIntoMeters; + private double _distance; + private int _distanceUnitIndex; + private MeasureMode _measureMode; + private double _totalArea; + private double _totalDistance; + private ComboBox cmbUnits; + private Label label1; + private Label label2; + private Label label3; + private Label lblMeasure; + private Label lblPartialValue; + private Label lblTotalUnits; + private Label lblTotalValue; + private ToolStrip toolStrip1; + private ToolStripButton tsbArea; + private ToolStripButton tsbDistance; + private ToolTip ttHelp; + + #region Private Variables + + private double[] _areaUnitFactors = new[] + { + 1E-6, 0.0001, 1, .01, 3.86102159E-7, 0.000247105381, 10.7639104, + 1.19599005 + }; + + private string[] _areaUnitNames = new[] + { + "Square Kilometers", "Hectares", "Square Meters", "Ares", "Square Miles", + "Acres", "Square Feet", "Square Yards" }; + + private double[] _distanceUnitFactors = new[] + { + .001, 1, 10, 100, 1000, + 0.000621371192, 0.000539956803, 1.0936133, 3.2808399, 39.3700787, 8.983152098E-6 + }; + + private string[] _distanceUnitNames = new[] + { + "Kilometers", "Meters", "Decimeters", "Centimeters", "Millimeters", + "Miles", "NauticalMiles", "Yards", "Feet", "Inches", "DecimalDegrees" + }; + + /// + /// Required designer variable. + /// + private IContainer components = null; + + private Label label4; + private ToolStripButton tsbClear; + + #endregion + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MeasureDialog)); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.tsbDistance = new System.Windows.Forms.ToolStripButton(); + this.tsbArea = new System.Windows.Forms.ToolStripButton(); + this.tsbClear = new System.Windows.Forms.ToolStripButton(); + this.ttHelp = new System.Windows.Forms.ToolTip(this.components); + this.lblPartialValue = new System.Windows.Forms.Label(); + this.lblTotalValue = new System.Windows.Forms.Label(); + this.cmbUnits = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.lblMeasure = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.lblTotalUnits = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.toolStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // toolStrip1 + // + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.tsbDistance, + this.tsbArea, + this.tsbClear}); + resources.ApplyResources(this.toolStrip1, "toolStrip1"); + this.toolStrip1.Name = "toolStrip1"; + // + // tsbDistance + // + this.tsbDistance.Checked = true; + this.tsbDistance.CheckOnClick = true; + this.tsbDistance.CheckState = System.Windows.Forms.CheckState.Checked; + this.tsbDistance.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.tsbDistance.Image = global::Plugins.ShaleNetwork.Properties.Resources.Line; + resources.ApplyResources(this.tsbDistance, "tsbDistance"); + this.tsbDistance.Name = "tsbDistance"; + this.tsbDistance.Click += new System.EventHandler(this.DistanceButton_Click); + // + // tsbArea + // + this.tsbArea.CheckOnClick = true; + this.tsbArea.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.tsbArea.Image = global::Plugins.ShaleNetwork.Properties.Resources.Area; + resources.ApplyResources(this.tsbArea, "tsbArea"); + this.tsbArea.Name = "tsbArea"; + this.tsbArea.Click += new System.EventHandler(this.AreaButton_Click); + // + // tsbClear + // + this.tsbClear.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + resources.ApplyResources(this.tsbClear, "tsbClear"); + this.tsbClear.Name = "tsbClear"; + this.tsbClear.Click += new System.EventHandler(this.tsbClear_Click); + // + // lblPartialValue + // + resources.ApplyResources(this.lblPartialValue, "lblPartialValue"); + this.lblPartialValue.Name = "lblPartialValue"; + this.ttHelp.SetToolTip(this.lblPartialValue, resources.GetString("lblPartialValue.ToolTip")); + // + // lblTotalValue + // + resources.ApplyResources(this.lblTotalValue, "lblTotalValue"); + this.lblTotalValue.Name = "lblTotalValue"; + this.ttHelp.SetToolTip(this.lblTotalValue, resources.GetString("lblTotalValue.ToolTip")); + // + // cmbUnits + // + this.cmbUnits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbUnits.FormattingEnabled = true; + resources.ApplyResources(this.cmbUnits, "cmbUnits"); + this.cmbUnits.Name = "cmbUnits"; + this.ttHelp.SetToolTip(this.cmbUnits, resources.GetString("cmbUnits.ToolTip")); + this.cmbUnits.SelectedIndexChanged += new System.EventHandler(this.cmbUnits_SelectedIndexChanged); + // + // label1 + // + resources.ApplyResources(this.label1, "label1"); + this.label1.Name = "label1"; + // + // lblMeasure + // + resources.ApplyResources(this.lblMeasure, "lblMeasure"); + this.lblMeasure.Name = "lblMeasure"; + // + // label2 + // + resources.ApplyResources(this.label2, "label2"); + this.label2.Name = "label2"; + // + // label3 + // + resources.ApplyResources(this.label3, "label3"); + this.label3.Name = "label3"; + // + // lblTotalUnits + // + this.lblTotalUnits.BackColor = System.Drawing.SystemColors.Control; + resources.ApplyResources(this.lblTotalUnits, "lblTotalUnits"); + this.lblTotalUnits.Name = "lblTotalUnits"; + // + // label4 + // + resources.ApplyResources(this.label4, "label4"); + this.label4.Name = "label4"; + // + // MeasureDialog + // + resources.ApplyResources(this, "$this"); + this.Controls.Add(this.label4); + this.Controls.Add(this.lblTotalUnits); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.cmbUnits); + this.Controls.Add(this.lblTotalValue); + this.Controls.Add(this.lblPartialValue); + this.Controls.Add(this.lblMeasure); + this.Controls.Add(this.label1); + this.Controls.Add(this.toolStrip1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "MeasureDialog"; + this.ShowIcon = false; + this.TopMost = true; + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + } + + #endregion + + #region Constructors + + /// + /// Creates a new instance of MeasureDialog + /// + public MeasureDialog() + { + InitializeComponent(); + _measureMode = MeasureMode.Distance; + cmbUnits.Items.AddRange(_distanceUnitNames); + cmbUnits.SelectedIndex = 1; + _distanceUnitIndex = 1; + _areaUnitIndex = 2; + _distIntoMeters = 1; + _areaIntoSquareMeters = 1; + } + + #endregion + + #region Properties + + /// + /// Gets the distance in meters of just one segment + /// + public double Distance + { + get { return _distance; } + set + { + _distance = value; + if (_measureMode == MeasureMode.Distance) + { + lblPartialValue.Text = (_distance * _distIntoMeters).ToString("#, ###"); + } + } + } + + /// + /// The total distance across all segments in meters + /// + public double TotalDistance + { + get { return _totalDistance; } + set + { + _totalDistance = value; + if (_measureMode == MeasureMode.Distance) + { + lblTotalValue.Text = (_totalDistance * _distIntoMeters).ToString("#, ###"); + } + } + } + + /// + /// Gets or sets the total area in square meters + /// + public double TotalArea + { + get { return _totalArea; } + set + { + _totalArea = value; + lblTotalValue.Text = (_totalArea * _areaIntoSquareMeters).ToString("#, ###"); + } + } + + #endregion + + /// + /// Gets or sets whether to display the distances or areas. + /// + public MeasureMode MeasureMode + { + get { return _measureMode; } + set + { + _measureMode = value; + } + } + + /// + /// Occurs when the measuring mode has been changed. + /// + public event EventHandler MeasureModeChanged; + + /// + /// Occurs when the clear button has been pressed. + /// + public event EventHandler MeasurementsCleared; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void AreaButton_Click(object sender, EventArgs e) + { + if (_measureMode != MeasureMode.Area) + { + MeasureMode = MeasureMode.Area; + _distanceUnitIndex = cmbUnits.SelectedIndex; + cmbUnits.SuspendLayout(); + cmbUnits.Items.Clear(); + cmbUnits.Items.AddRange(_areaUnitNames); + cmbUnits.SelectedIndex = _areaUnitIndex; + OnMeasureModeChanged(); + cmbUnits.ResumeLayout(); + Text = "Measure Area"; + lblMeasure.Text = "Area"; + tsbDistance.Checked = false; + } + } + + private void OnMeasureModeChanged() + { + if (MeasureModeChanged != null) MeasureModeChanged(this, new EventArgs()); + } + + private void DistanceButton_Click(object sender, EventArgs e) + { + if (_measureMode != MeasureMode.Distance) + { + MeasureMode = MeasureMode.Distance; + _areaUnitIndex = cmbUnits.SelectedIndex; + cmbUnits.SuspendLayout(); + cmbUnits.Items.Clear(); + cmbUnits.Items.AddRange(_distanceUnitNames); + cmbUnits.SelectedIndex = _distanceUnitIndex; + cmbUnits.ResumeLayout(); + OnMeasureModeChanged(); + Text = "Measure Distance"; + lblMeasure.Text = "Distance"; + tsbArea.Checked = false; + } + } + + private void cmbUnits_SelectedIndexChanged(object sender, EventArgs e) + { + if (MeasureMode == MeasureMode.Distance) + { + _distIntoMeters = _distanceUnitFactors[cmbUnits.SelectedIndex]; + } + else + { + _areaIntoSquareMeters = _areaUnitFactors[cmbUnits.SelectedIndex]; + } + lblTotalUnits.Text = cmbUnits.Text; + lblPartialValue.Text = String.Empty; + lblTotalValue.Text = String.Empty; + } + + private void tsbClear_Click(object sender, EventArgs e) + { + if (MeasurementsCleared != null) MeasurementsCleared(this, EventArgs.Empty); + } + } +} \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/Measure/MeasureDialog.resx b/Source/Plugins/Plugins.ShaleNetwork/Measure/MeasureDialog.resx new file mode 100644 index 00000000..5dfaba4f --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Measure/MeasureDialog.resx @@ -0,0 +1,494 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + 0, 0 + + + 451, 25 + + + + 0 + + + toolStrip1 + + + toolStrip1 + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 9 + + + Magenta + + + 23, 22 + + + Distance + + + Measure Distance + + + Magenta + + + 23, 22 + + + Area + + + Measure Area + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAANQSURBVDhPdZNZTBNRFEAHaClF0QiiBmqnrdLYETqVRcvE + LhIpBeQPDISgSIlaE4xCWFKixjSSGv0g4BbcjVvEDxXBBDCKP2oUFdwRgiwW6EgXGtZir7fEEOMyyc28 + ufPOeffOe0P0Z2byX2i1Ve9Vqu4rNH2cDA5eQfzn+sIwm2xJSU87Gebh7mXLlHPTXup05nd79zq7zGYv + azJNHaHp08VS6dI/HZ8TE9XWwsI3rNk8y5aVedrT018Zw8IyiM6EhG99Bw9CPwZrsQBbXj5xSamsCyeI + +UqcGzdutu7Y0WGzWH64Dx+G6cpKGDMYZmvCw+8R1+XyWuvOnTBUUQFWkwkcZjM4iovHK+Xyk7pFi0Ib + ZDKVx2BoHz50yOs+cABmcN600QgXY2MHYni8KsLXczVNn7UVFMD3/fthqKQEJrCanrw8Z7Na3fAxK+uZ + A2EX5jylpTCNi52Xy/siuNwqbFMx1+pKPj+iNjq6zpGbC+49e2B03z5wl5WBG2UuHLtwxdnt22EmJ2du + ZQGXewSxtRic37/VylKh8NRnnY51ZmeDPSMDnFot2GNiYEwshl6S9NSsXt0l5vOPIkRhBPy1WQaKCm1e + v75pcNUqL7tkCdi4XGAJAibw/jwy0sUIBNUICTH8/7nTb/PzMz5Q1KtePz+vDUFf+AR2FHSIxZPHGOaW + TCQi/wlPGI3bPBpNj3PxYhhGyOHvD+MLF8Iojwdf8XkAJd1S6fh1vf4CTZKieYm3qIhn37Urd5hhBqw4 + 2Qe7/PygLzLS+0mpHP8YFeX9inA75js4HOiWy+FmevpFSiLxtUIQo/n5hSzDDI0g7CvZifC0QAD1CkV/ + Xnz8uTMM0zAok022o6QF3z8JCIB3KLmaknJZQ5JrCKdONzgSGAgjv8qeioiAFpXKvoEka9EvUQiF1F29 + /lonSh6j5A7Oe4Dt9SQmQn1q6g2iV69/Mrh8uceBkkmEH6nVo0qR6MT8IcGBSioV30lLu/kaJU1YaWNI + CNyn6UlTXFwrUalSMV3JyR0uipp9qtWOKfEsILPuz63CikQoud0dHz/jg3fHxrYuCAraOvcdLBpNZmNK + SluaRFLH4XB8v+nfhwSTySSpuLtlS2NFXFwbNygoG1MhPwF1WoBqeK4kKgAAAABJRU5ErkJggg== + + + + Magenta + + + 23, 22 + + + toolStripButton1 + + + Clears the existing measurements + + + 122, 17 + + + 62, 49 + + + 237, 22 + + + 4 + + + 0.0 + + + The distance of the segment or polygon being edited. + + + lblPartialValue + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 6 + + + 62, 82 + + + 237, 22 + + + 7 + + + 0.0 + + + The grand total of all segments or parts. + + + lblTotalValue + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 5 + + + 311, 50 + + + 108, 21 + + + 5 + + + Selecting a unit will also convert the measurements into the specified unit. + + + cmbUnits + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 4 + + + True + + + 22, 82 + + + 34, 13 + + + 6 + + + Total: + + + label1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 8 + + + True + + + 81, 25 + + + 49, 13 + + + 1 + + + Distance + + + lblMeasure + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 7 + + + True + + + + NoControl + + + 12, 49 + + + 44, 13 + + + 3 + + + Current: + + + label2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 3 + + + True + + + NoControl + + + 360, 25 + + + 31, 13 + + + 2 + + + Units + + + label3 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 2 + + + 311, 86 + + + 107, 18 + + + 8 + + + Meters + + + lblTotalUnits + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + True + + + 12, 122 + + + 251, 13 + + + 9 + + + Click to add a point. Right click when you are done. + + + label4 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + True + + + 54 + + + 451, 144 + + + Measure Distance + + + tsbDistance + + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbArea + + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbClear + + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ttHelp + + + System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + MeasureDialog + + + System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/Measure/MeasureDialog.zh-CN.resx b/Source/Plugins/Plugins.ShaleNetwork/Measure/MeasureDialog.zh-CN.resx new file mode 100644 index 00000000..ddac701c --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Measure/MeasureDialog.zh-CN.resx @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 距离 + + + 面积 + + + + 110, 22 + + + 千米 + + + 110, 22 + + + + + + 110, 22 + + + 分米 + + + 110, 22 + + + 厘米 + + + 110, 22 + + + 毫米 + + + 107, 6 + + + 110, 22 + + + 英里 + + + 110, 22 + + + 海里 + + + 110, 22 + + + + + + 110, 22 + + + 英尺 + + + 110, 22 + + + 英寸 + + + 107, 6 + + + 110, 22 + + + 十进位 + + + 98, 22 + + + 距离 + + + 98, 22 + + + 公里 + + + 98, 22 + + + 公顷 + + + 98, 22 + + + + + + 98, 22 + + + 面积 + + + 95, 6 + + + 98, 22 + + + 英里 + + + 98, 22 + + + 英亩 + + + 98, 22 + + + 英尺 + + + 98, 22 + + + + + + 98, 22 + + + 面积 + + + 单位 + + + 工具包 + + + + + + 24, 67 + + + 46, 13 + + + 总长度: + + + + + + 34, 13 + + + 距离: + + + + + + + + + + + + 距离测量 + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/Measure/MeasureMode.cs b/Source/Plugins/Plugins.ShaleNetwork/Measure/MeasureMode.cs new file mode 100644 index 00000000..85d96f11 --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Measure/MeasureMode.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Plugins.ShaleNetwork.Measure +{ + /// + /// MeasureModes + /// + public enum MeasureMode + { + /// + /// Measuring linear distance + /// + Distance, + /// + /// Measuring square area + /// + Area, + } +} diff --git a/Source/Plugins/Plugins.ShaleNetwork/MessageStrings.Designer.cs b/Source/Plugins/Plugins.ShaleNetwork/MessageStrings.Designer.cs new file mode 100644 index 00000000..eacbca8c --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/MessageStrings.Designer.cs @@ -0,0 +1,459 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Plugins.ShaleNetwork { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class MessageStrings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal MessageStrings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("Plugins.ShaleNetwork.MessageStrings", typeof(MessageStrings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Select Multiple Keywords. + /// + internal static string Add_More_Keywords { + get { + return ResourceManager.GetString("Add_More_Keywords", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Area. + /// + internal static string Area { + get { + return ResourceManager.GetString("Area", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Continue search. + /// + internal static string Continue_Search { + get { + return ResourceManager.GetString("Continue_Search", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Controls. + /// + internal static string Controls { + get { + return ResourceManager.GetString("Controls", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Current View. + /// + internal static string Current_View { + get { + return ResourceManager.GetString("Current_View", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Current view is too large. Search can take a long time. Do you want to continue?. + /// + internal static string Current_View_Large_Msg { + get { + return ResourceManager.GetString("Current_View_Large_Msg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Use the current ViewExtents of the map as the search area rectangle.. + /// + internal static string Current_View_Tooltip { + get { + return ResourceManager.GetString("Current_View_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Clear Selection. + /// + internal static string Deselect_All { + get { + return ResourceManager.GetString("Deselect_All", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deselect all features. + /// + internal static string Deselect_All_Tooltip { + get { + return ResourceManager.GetString("Deselect_All_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Draw Box. + /// + internal static string Draw_Box { + get { + return ResourceManager.GetString("Draw_Box", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Draw Rectangle. + /// + internal static string Draw_Rectangle { + get { + return ResourceManager.GetString("Draw_Rectangle", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to End Date. + /// + internal static string End_Date { + get { + return ResourceManager.GetString("End_Date", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error. + /// + internal static string Error { + get { + return ResourceManager.GetString("Error", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Information. + /// + internal static string Information { + get { + return ResourceManager.GetString("Information", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Keyword. + /// + internal static string Keyword { + get { + return ResourceManager.GetString("Keyword", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show Keyword Ontology Tree. + /// + internal static string Keyword_Tooltip { + get { + return ResourceManager.GetString("Keyword_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Pan. + /// + internal static string Pan { + get { + return ResourceManager.GetString("Pan", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Run Search. + /// + internal static string Run_Search { + get { + return ResourceManager.GetString("Run_Search", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Run Search based on selected criteria. + /// + internal static string Run_Search_Tooltip { + get { + return ResourceManager.GetString("Run_Search_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search. + /// + internal static string Search { + get { + return ResourceManager.GetString("Search", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select by Attribute. + /// + internal static string Select_By_Attribute { + get { + return ResourceManager.GetString("Select_By_Attribute", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select Data Sources. + /// + internal static string Select_Data_Sources { + get { + return ResourceManager.GetString("Select_Data_Sources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select data sources (All web services selected). + /// + internal static string Select_Data_Sources_Tooltip { + get { + return ResourceManager.GetString("Select_Data_Sources_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select Dates. + /// + internal static string Select_Dates { + get { + return ResourceManager.GetString("Select_Dates", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select Features. + /// + internal static string Select_Features { + get { + return ResourceManager.GetString("Select_Features", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Click in the map to select features. + /// + internal static string Select_Features_Tooltip { + get { + return ResourceManager.GetString("Select_Features_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select Polygons. + /// + internal static string Select_Polygons { + get { + return ResourceManager.GetString("Select_Polygons", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select Region. + /// + internal static string Select_Polygons_Tooltip { + get { + return ResourceManager.GetString("Select_Polygons_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Shale Network. + /// + internal static string Shale { + get { + return ResourceManager.GetString("Shale", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Shale Data. + /// + internal static string Shale_Data { + get { + return ResourceManager.GetString("Shale_Data", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show shale search terms. + /// + internal static string Shale_Tooltip { + get { + return ResourceManager.GetString("Shale_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Start Date. + /// + internal static string Start_Date { + get { + return ResourceManager.GetString("Start_Date", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Start Date validation. + /// + internal static string Start_Date_Validation { + get { + return ResourceManager.GetString("Start_Date_Validation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to End Date must be greater than Start Date.. + /// + internal static string Start_Date_Validation_Msg { + get { + return ResourceManager.GetString("Start_Date_Validation_Msg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Time Range. + /// + internal static string Time_Range { + get { + return ResourceManager.GetString("Time_Range", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to End. + /// + internal static string TimeRange_End { + get { + return ResourceManager.GetString("TimeRange_End", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Start. + /// + internal static string TimeRange_Start { + get { + return ResourceManager.GetString("TimeRange_Start", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Type-in a Keyword. + /// + internal static string Type_In_Keyword { + get { + return ResourceManager.GetString("Type_In_Keyword", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to In. + /// + internal static string Zoom_In { + get { + return ResourceManager.GetString("Zoom_In", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom In. + /// + internal static string Zoom_In_Tooltip { + get { + return ResourceManager.GetString("Zoom_In_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Out. + /// + internal static string Zoom_Out { + get { + return ResourceManager.GetString("Zoom_Out", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom Out. + /// + internal static string Zoom_Out_Tooltip { + get { + return ResourceManager.GetString("Zoom_Out_Tooltip", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom to Selection. + /// + internal static string Zoom_Selected { + get { + return ResourceManager.GetString("Zoom_Selected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Zoom to selected features. + /// + internal static string Zoom_Selected_Tooltip { + get { + return ResourceManager.GetString("Zoom_Selected_Tooltip", resourceCulture); + } + } + } +} diff --git a/Source/Plugins/Plugins.ShaleNetwork/MessageStrings.resx b/Source/Plugins/Plugins.ShaleNetwork/MessageStrings.resx new file mode 100644 index 00000000..b33f0435 --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/MessageStrings.resx @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Select Multiple Keywords + + + Area + + + Continue search + + + Controls + + + Current View + + + Current view is too large. Search can take a long time. Do you want to continue? + + + Use the current ViewExtents of the map as the search area rectangle. + + + Clear Selection + + + Deselect all features + + + Draw Box + + + Draw Rectangle + + + End Date + + + Error + + + Information + + + Keyword + + + Show Keyword Ontology Tree + + + Pan + + + Run Search + + + Run Search based on selected criteria + + + Search + + + Select by Attribute + + + Select Data Sources + + + Select data sources (All web services selected) + + + Select Dates + + + Select Features + + + Click in the map to select features + + + Select Polygons + + + Select Region + + + Shale Network + + + Shale Data + + + Show shale search terms + + + Start Date + + + Start Date validation + + + End Date must be greater than Start Date. + + + End + + + Start + + + Time Range + + + Type-in a Keyword + + + In + + + Zoom In + + + Out + + + Zoom Out + + + Zoom to Selection + + + Zoom to selected features + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/Plugins.ShaleNetwork.csproj b/Source/Plugins/Plugins.ShaleNetwork/Plugins.ShaleNetwork.csproj new file mode 100644 index 00000000..4a2b9424 --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Plugins.ShaleNetwork.csproj @@ -0,0 +1,254 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {B0526359-9A59-42FE-AE66-B0ADED8AB53B} + Library + Properties + Plugins.ShaleNetwork + Plugins.ShaleNetwork + v4.0 + 512 + Client + ..\..\ + true + + + true + full + false + ..\..\..\Binaries\Plugins\Plugins.ShaleNetwork\ + DEBUG;TRACE + prompt + 4 + false + + + + + pdbonly + true + ..\..\..\Binaries\Plugins\Plugins.ShaleNetwork\ + TRACE + prompt + 4 + ..\..\..\Binaries\Plugins\Plugins.ShaleNetwork\Plugins.ShaleNetwork.xml + + + true + ..\..\..\Binaries\Plugins\Plugins.ShaleNetwork\ + DEBUG;TRACE + ..\..\..\Binaries\Plugins\Plugins.ShaleNetwork\Plugins.ShaleNetwork.xml + full + x86 + ..\..\..\Binaries\Plugins\Plugins.ShaleNetwork\Plugins.ShaleNetwork.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + + + ..\..\..\Binaries\Plugins\Plugins.ShaleNetwork\ + TRACE + true + pdbonly + x86 + ..\..\..\Binaries\Plugins\Plugins.ShaleNetwork\Plugins.ShaleNetwork.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + + + + + + + False + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + False + + + False + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + False + + + False + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + False + + + False + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + False + + + False + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + False + + + False + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + False + + + False + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + False + + + False + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + False + + + False + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + False + + + + + + + + + + + + Form + + + + True + True + MessageStrings.resx + + + + True + True + Resources.resx + + + True + True + Settings.settings + + + + + Form + + + ShaleDialog.cs + + + + + MeasureDialog.cs + + + MeasureDialog.cs + + + ResXFileCodeGenerator + MessageStrings.Designer.cs + Designer + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + ShaleDialog.cs + + + + + Designer + + + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + False + + + {F09E70CC-9D65-45C2-A451-D22CFB400C26} + HydroDesktop.Help + False + + + {0B9BA90B-2016-4754-915A-0AD74FD0067A} + HydroDesktop.Interfaces + False + + + {fb01f6ee-89c0-4a64-b023-c8cc566ff803} + HydroDesktop.Plugins.Search + False + + + + + + cd "$(ProjectDir)" +"$(ProjectDir)..\..\.nuget\nuget.exe" pack +move /y "*.nupkg" "$(TargetDir)" + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/Plugins.ShaleNetwork.nuspec b/Source/Plugins/Plugins.ShaleNetwork/Plugins.ShaleNetwork.nuspec new file mode 100644 index 00000000..66e3d233 --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Plugins.ShaleNetwork.nuspec @@ -0,0 +1,18 @@ + + + + $id$ + $version$ + $author$ + + http://hydrodesktop.codeplex.com/ + http://tinyurl.com/kzcjlht + $description$ + + en-US + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/Properties/AssemblyInfo.cs b/Source/Plugins/Plugins.ShaleNetwork/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..9cb477be --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Properties/AssemblyInfo.cs @@ -0,0 +1,25 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ShaleNetwork")] +[assembly: AssemblyDescription("ShaleNetwork Extension for HydroDesktop")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CUAHSI")] +[assembly: AssemblyProduct("ShaleNetwork")] +[assembly: AssemblyCopyright("Copyright © CUAHSI 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a2be5789-cb84-403f-8498-9040ada5bc13")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/Properties/Resources.Designer.cs b/Source/Plugins/Plugins.ShaleNetwork/Properties/Resources.Designer.cs new file mode 100644 index 00000000..1f2d2373 --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Properties/Resources.Designer.cs @@ -0,0 +1,113 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Plugins.ShaleNetwork.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [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("Plugins.ShaleNetwork.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Area { + get { + object obj = ResourceManager.GetObject("Area", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Line { + get { + object obj = ResourceManager.GetObject("Line", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap measure_16x16 { + get { + object obj = ResourceManager.GetObject("measure_16x16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap measure_32x32 { + get { + object obj = ResourceManager.GetObject("measure_32x32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap SN_Logo { + get { + object obj = ResourceManager.GetObject("SN_Logo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Source/Plugins/Plugins.ShaleNetwork/Properties/Resources.resx b/Source/Plugins/Plugins.ShaleNetwork/Properties/Resources.resx new file mode 100644 index 00000000..3181a7e9 --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Properties/Resources.resx @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\SN_Logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Area.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Line.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\measure_16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\measure_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/Properties/Settings.Designer.cs b/Source/Plugins/Plugins.ShaleNetwork/Properties/Settings.Designer.cs new file mode 100644 index 00000000..9edef85c --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Properties/Settings.Designer.cs @@ -0,0 +1,50 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Plugins.ShaleNetwork.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.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; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://www.shalenetwork.org")] + public string SN_Website { + get { + return ((string)(this["SN_Website"])); + } + set { + this["SN_Website"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://www.shalenetwork.org/contact")] + public string Contact_SN { + get { + return ((string)(this["Contact_SN"])); + } + set { + this["Contact_SN"] = value; + } + } + } +} diff --git a/Source/Plugins/Plugins.ShaleNetwork/Properties/Settings.settings b/Source/Plugins/Plugins.ShaleNetwork/Properties/Settings.settings new file mode 100644 index 00000000..9c0f2ef8 --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Properties/Settings.settings @@ -0,0 +1,12 @@ + + + + + + http://www.shalenetwork.org + + + http://www.shalenetwork.org/contact + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/Resources/Area.png b/Source/Plugins/Plugins.ShaleNetwork/Resources/Area.png new file mode 100644 index 00000000..0f2636aa Binary files /dev/null and b/Source/Plugins/Plugins.ShaleNetwork/Resources/Area.png differ diff --git a/Source/Plugins/Plugins.ShaleNetwork/Resources/Line.png b/Source/Plugins/Plugins.ShaleNetwork/Resources/Line.png new file mode 100644 index 00000000..cdc8433a Binary files /dev/null and b/Source/Plugins/Plugins.ShaleNetwork/Resources/Line.png differ diff --git a/Source/Plugins/Plugins.ShaleNetwork/Resources/OntologyTree.xml b/Source/Plugins/Plugins.ShaleNetwork/Resources/OntologyTree.xml new file mode 100644 index 00000000..43438717 --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Resources/OntologyTree.xml @@ -0,0 +1,16591 @@ + + + Hydrosphere + 1 + + + Physical + 2 + + + Level + 3 + + + Level, ice + 4 + + + Ice thickness + 5 + + + + + Level, snow + 6 + + + Snow depth + 9 + + + + + Level, stream + 11 + + + Gage height, stream + 12 + + + Water depth, stream + 13 + + + Water depth, cross-sectional averaged + 14 + + + + + Level, lake + 15 + + + Gage height, lake + 16 + + + Wave height, lake + 17 + + + Water depth, lake + 5021 + + + + + Groundwater level + 19 + + + Level, ocean + 20 + + + Tide stage + 21 + + + Wave height, ocean + 22 + + + + + Unspecified + 5022 + + + + + Area + 23 + + + Area, ice + 24 + + + Ice cover + 25 + + + Ice cover, floating or solid + 127 + + + + + Area, atmosphere + 26 + + + Cloud cover + 27 + + + + + + + Velocity + 28 + + + Velocity, stream + 30 + + + Velocity, groundwater + 32 + + + Velocity, wind + 33 + + + Sustained wind speed + 34 + + + Wind gust + 35 + + + + + + + Density + 36 + + + Water, specific gravity + 38 + + + Density of water + 39 + + + Air, water vapor density + 5032 + + + + + Temperature + 40 + + + Temperature, snow + 45 + + + Temperature, soil + 47 + + + Temperature, air + 49 + + + Temperature, water + 51 + + + Temperature, intragravel water + 5026 + + + Temperature, 1 meter below water surface + 5027 + + + + + Pressure + 52 + + + Pressure, air + 53 + + + Vapor pressure + 54 + + + Atmospheric pressure + 55 + + + Barometric pressure + 56 + + + + + Pressure, water + 57 + + + Partial pressure, inert gases + 58 + + + Osmotic pressure + 59 + + + Partial pressure of dissolved gases + 60 + + + Wellhead pressure + 5030 + + + + + + + Flux + 61 + + + Flux, precipitation + 62 + + + Dry periods + 63 + + + Precipitation duration + 64 + + + Precipitation + 65 + + + + + Flux, wind + 66 + + + Wind direction + 67 + + + Wind gust direction + 68 + + + Wind run + 70 + + + + + Flux, evaporation + 71 + + + Evaporation, actual + 72 + + + Evaporation, potential + 73 + + + Evapotranspiration, actual + 74 + + + Evapotranspiration, potential + 75 + + + Transpiration + 5035 + + + + + Flux, discharge + 76 + + + Discharge, groundwaterflow + 77 + + + Discharge, stream + 78 + + + Discharge, in conduit + 80 + + + Storm water flow + 81 + + + Discharge, unspecified + 5023 + + + Discharge, well flow rate + 5031 + + + + + Flux, dissolved gas + 82 + + + Carbon dioxide flux + 83 + + + + + + + Volume + 84 + + + Volume, lake + 85 + + + Reservoir storage + 86 + + + + + + + Optical + 87 + + + Optical, water + 88 + + + Light attenuation + 89 + + + Light attenuation coefficient + 90 + + + Light attenuation, depth at 50% + 91 + + + Light attenuation, depth at 99% + 92 + + + + + Refractivity + 93 + + + Secchi depth + 94 + + + SUVA 254 + 95 + + + Water transparency, Secchi disc + 96 + + + + + + + Water + 97 + + + Water, suspended solids + 98 + + + Residue, total filterable (dried at 105 C) + 99 + + + Settleable solids + 100 + + + Solids, total + 101 + + + Solids, total suspended + 102 + + + Solids, volatile suspended + 103 + + + Solids, fixed suspended + 104 + + + Turbidity + 105 + + + Suspended sediment + 106 + + + Surface area, suspended sediment + 107 + + + + + Water, dissolved solids + 108 + + + Solids, total dissolved + 110 + + + + + Water, descriptive + 111 + + + Odor threshold number + 114 + + + Odor, atmospheric + 112 + + + Gas bubble severity + 113 + + + Trash, Debris, Floatables + 115 + + + Color + 116 + + + Severity + 117 + + + Severity, turbidity + 118 + + + Severity, detergent + 119 + + + Severity, floating debris + 120 + + + Severity, floating sludge + 121 + + + Severity, flow + 129 + + + + + + + + + Length + 122 + + + Stream width + 124 + + + Distance + 5028 + + + Visibility + 5033 + + + + + Water content + 130 + + + Water content, air + 131 + + + Humidity + 132 + + + Relative humidity + 133 + + + Wet bulb temperature + 134 + + + Dry bulb temperature + 135 + + + Dew point temperature + 136 + + + Vapor pressure deficit + 5034 + + + + + + + Water content, soil + 137 + + + Soil Moisture + 138 + + + + + Water content, snow + 5024 + + + Snow water equivalent + 10 + + + + + + + Energy + 139 + + + Energy, flux + 147 + + + Radiation, net longwave + 5013 + + + Radiation, reflected + 141 + + + Radiation, net + 142 + + + Radiation, incident + 143 + + + Radiation, downward + 144 + + + Radiation, total shortwave + 145 + + + Radiation, incoming PAR + 146 + + + Soil heat flux + 148 + + + Sensible heat flux + 149 + + + Latent heat flux + 150 + + + Radiation, outgoing PAR + 151 + + + Radiation, incoming longwave + 5009 + + + Radiation, incoming shortwave + 5010 + + + Radiation, incoming UV-A + 5011 + + + Radiation, incoming UV-B + 5012 + + + Radiation, net PAR + 5014 + + + Radiation, net shortwave + 5015 + + + Radiation, outgoing longwave + 5016 + + + Radiation, outgoing shortwave + 5017 + + + Sunshine duration + 5036 + + + + + + + + + Chemical + 41 + + + Organic + 42 + + + PCBs + 43 + + + Homolog Groups + 1001 + + + Mono_Chloro_PCB + 1002 + + + Biphenyl + 1003 + + + 2-Chlorobiphenyl + 1004 + + + 3-Chlorobiphenyl + 1005 + + + 4-Chlorobiphenyl + 1006 + + + + + Di_Chloro_PCB + 1007 + + + 2,2'-Dichlorobiphenyl + 1008 + + + 2,3-Dichlorobiphenyl + 1009 + + + 2,3'-Dichlorobiphenyl + 1010 + + + 2,4-Dichlorobiphenyl + 1011 + + + 2,4'-Dichlorobiphenyl + 1012 + + + 2,5-Dichlorobiphenyl + 1013 + + + 2,6-Dichlorobiphenyl + 1014 + + + 3,3'-Dichlorobiphenyl + 1015 + + + 3,4-Dichlorobiphenyl + 1016 + + + 3,4'-Dichlorobiphenyl + 1017 + + + 3,5-Dichlorobiphenyl + 1018 + + + 4,4'-Dichlorobiphenyl + 1019 + + + + + Tri_Chloro_PCB + 1020 + + + 2,3',5'-Trichlorobiphenyl + 1039 + + + 2,2',3-Trichlorobiphenyl + 1021 + + + 2,2',4-Trichlorobiphenyl + 1022 + + + 2,2',5-Trichlorobiphenyl + 1023 + + + 2,2',6-Trichlorobiphenyl + 1024 + + + 2,3,3'-Trichlorobiphenyl + 1025 + + + 2,3,4-Trichlorobiphenyl + 1026 + + + 2,3,4'-Trichlorobiphenyl + 1027 + + + 2,3,5-Trichlorobiphenyl + 1028 + + + 2,3,6-Trichlorobiphenyl + 1029 + + + 2,3',4-Trichlorobiphenyl + 1030 + + + 2,3',5-Trichlorobiphenyl + 1031 + + + 2,3',6-Trichlorobiphenyl + 1032 + + + 2,4,4'-Trichlorobiphenyl + 1033 + + + 2,4,5-Trichlorobiphenyl + 1034 + + + 2,4,6-Trichlorobiphenyl + 1035 + + + 2,4',5-Trichlorobiphenyl + 1036 + + + 2,4',6-Trichlorobiphenyl + 1037 + + + 2,3',4'-Trichlorobiphenyl + 1038 + + + 3,3',4-Trichlorobiphenyl + 1040 + + + 3,3',5-Trichlorobiphenyl + 1041 + + + 3,4,4'-Trichlorobiphenyl + 1042 + + + 3,4,5-Tricholobiphenyl + 1043 + + + 3,4',5-Trichlorobiphenyl + 1044 + + + + + Tetra_Chloro_PCB + 1045 + + + 2,2',3,3'-Tetrachlorobiphenyl + 1046 + + + 2,2',3,4-Tetrachlorobiphenyl + 1047 + + + 2,2',3,4'-Tetrachlorobiphenyl + 1048 + + + 2,2',3,5-Tetrachlorobiphenyl + 1049 + + + 2,2',3,5'-Tetrachlorobiphenyl + 1050 + + + 2,2',3,6-Tetrachlorobiphenyl + 1051 + + + 2,2',3,6'-Tetrachlorobiphenyl + 1052 + + + 2,2',4,4'-Tetrachlorobiphenyl + 1053 + + + 2,2',4,5-Tetrachlorobiphenyl + 1054 + + + 2,2',4,5'-Tetrachlorobiphenyl + 1055 + + + 2,2',4,6-Tetrachlorobiphenyl + 1056 + + + 2,2',4,6'-Tetrachlorobiphenyl + 1057 + + + 2,2',5,5'-Tetrachlorobiphenyl + 1058 + + + 2,2',5,6'-Tetrachlorobiphenyl + 1059 + + + 2,2',6,6'-Tetrachlorobiphenyl + 1060 + + + 2,3,3',4-Tetrachlorobiphenyl + 1061 + + + 2,3,3',4'-Tetrachlorobiphenyl + 1062 + + + 2,3,3',5-Tetrachlorobiphenyl + 1063 + + + 2,3,3',5'-Tetrachlorobiphenyl + 1064 + + + 2,3,3',6-Tetrachlorobiphenyl + 1065 + + + 2,3,4,4'-Tetrachlorobiphenyl + 1066 + + + 2,3,4,5-Tetrachlorobiphenyl + 1067 + + + 2,3,4,6-Tetrachlorobiphenyl + 1068 + + + 2,3,4',5-Tetrachlorobiphenyl + 1069 + + + 2,3,4',6-Tetrachlorobiphenyl + 1070 + + + 2,3,5,6-Tetrachlorobiphenyl + 1071 + + + 2,3',4,4'-Tetrachlorobiphenyl + 1072 + + + 2,3',4,5-Tetrachlorobiphenyl + 1073 + + + 2,3',4,5'-Tetrachlorobiphenyl + 1074 + + + 2,3',4,6-Tetrachlorobiphenyl + 1075 + + + 2,3',4',5-Tetrachlorobiphenyl + 1076 + + + 2,3',4',6-Tetrachlorobiphenyl + 1077 + + + 2,3',5,5'-Tetrachlorobiphenyl + 1078 + + + 2,3',5',6-Tetrachlorobiphenyl + 1079 + + + 2,4,4',5-Tetrachlorobiphenyl + 1080 + + + 2,4,4',6-Tetrachlorobiphenyl + 1081 + + + 2,3',4',5'-Tetrachlorobiphenyl + 1082 + + + 3,3',4,4'-Tetrachlorobiphenyl + 1083 + + + 3,3',4,5-Tetrachlorobiphenyl + 1084 + + + 3,3',4,5'-Tetrachlorobiphenyl + 1085 + + + 3,3',5,5'-Tetrachlorobiphenyl + 1086 + + + 3,4,4',5-Tetrachlorobiphenyl + 1087 + + + + + Penta_Chloro_PCB + 1088 + + + 2,2',3,5',6-Pentachlorobiphenyl + 1102 + + + 2,2',3,3',4-Pentachlorobiphenyl + 1089 + + + 2,2',3,3',5-Pentachlorobiphenyl + 1090 + + + 2,2',3,3',6-Pentachlorobiphenyl + 1091 + + + 2,2',3,4,4'-Pentachlorobiphenyl + 1092 + + + 2,2',3,4,5-Pentachlorobiphenyl + 1093 + + + 2,2',3,4,5'-Pentachlorobiphenyl + 1094 + + + 2,2',3,4,6-Pentachlorobiphenyl + 1095 + + + 2,2',3,4,6'-Pentachlorobiphenyl + 1096 + + + 2,2',3,4',5-Pentachlorobiphenyl + 1097 + + + 2,2',3,4',6-Pentachlorobiphenyl + 1098 + + + 2,2',3,5,5'-Pentachlorobiphenyl + 1099 + + + 2,2',3,5,6-Pentachlorobiphenyl + 1100 + + + 2,2',3,5,6'-Pentachlorobiphenyl + 1101 + + + 2,2',3,6,6'-Pentachlorobiphenyl + 1103 + + + 2,2',3,4',5'-Pentachlorobiphenyl + 1104 + + + 2,2',3,4',6'-Pentachlorobiphenyl + 1105 + + + 2,2',4,4',5-Pentachlorobiphenyl + 1106 + + + 2,2',4,4',6-Pentachlorobiphenyl + 1107 + + + 2,2',4,5,5'-Pentachlorobiphenyl + 1108 + + + 2,2',4,5,6'-Pentachlorobiphenyl + 1109 + + + 2,2',4,5',6-Pentachlorobiphenyl + 1110 + + + 2,2',4,6,6'-Pentachlorobiphenyl + 1111 + + + 2,3,3',4,4'-Pentachlorobiphenyl + 1112 + + + 2,3,3',4,5-Pentachlorobiphenyl + 1113 + + + 2,3,3',4',5-Pentachlorobiphenyl + 1114 + + + 2,3,3',4,5'-Pentachlorobiphenyl + 1115 + + + 2,3,3',4,6-Pentachlorobiphenyl + 1116 + + + 2,3,3',4',6-Pentachlorobiphenyl + 1117 + + + 2,3,3',5,5'-Pentachlorobiphenyl + 1118 + + + 2,3,3',5,6-Pentachlorobiphenyl + 1119 + + + 2,3,3',5',6-Pentachlorobiphenyl + 1120 + + + 2,3,4,4',5-Pentachlorobiphenyl + 1121 + + + 2,3,4,4',6-Pentachlorobiphenyl + 1122 + + + 2,3,4,5,6-Pentachlorobiphenyl + 1123 + + + 2,3,4',5,6-Pentachlorobiphenyl + 1124 + + + 2,3',4,4',5-Pentachlorobiphenyl + 1125 + + + 2,3',4,4',6-Pentachlorobiphenyl + 1126 + + + 2,3',4,5,5'-Pentachlorobiphenyl + 1127 + + + 2,3',4,5',6-Pentachlorobiphenyl + 1128 + + + 2,3,3',4',5'-Pentachlorobiphenyl + 1129 + + + 2,3',4,4',5'-Pentachlorobiphenyl + 1130 + + + 2,3',4',5,5'-Pentachlorobiphenyl + 1131 + + + 2,3',4',5',6-Pentachlorobiphenyl + 1132 + + + 3,3',4,4',5-Pentachlorobiphenyl + 1133 + + + 3,3',4,5,5'-Pentachlorobiphenyl + 1134 + + + + + Hexa_Chloro_PCB + 1135 + + + 2,2',3,4',5,5'-Hexachlorobiphenyl + 1154 + + + 2,2',3,3',4,4'-Hexachlorobiphenyl + 1136 + + + 2,2',3,3',4,5-Hexachlorobiphenyl + 1137 + + + 2,2',3,3',4,5'-Hexachlorobiphenyl + 1138 + + + 2,2',3,3',4,6-Hexachlorobiphenyl + 1139 + + + 2,2',3,3',4,6'-Hexachlorobiphenyl + 1140 + + + 2,2',3,3',5,5'-Hexachlorobiphenyl + 1141 + + + 2,2',3,3',5,6-Hexachlorobiphenyl + 1142 + + + 2,2',3,3',5,6'-Hexachlorobiphenyl + 1143 + + + 2,2',3,3',6,6'-Hexachlorobiphenyl + 1144 + + + 2,2',3,4,4',5-Hexachlorobiphenyl + 1145 + + + 2,2',3,4,4',5'-Hexachlorobiphenyl + 1146 + + + 2,2',3,4,4',6-Hexachlorobiphenyl + 1147 + + + 2,2',3,4,4',6'-Hexachlorobiphenyl + 1148 + + + 2,2',3,4,5,5'-Hexachlorobiphenyl + 1149 + + + 2,2',3,4,5,6-Hexachlorobiphenyl + 1150 + + + 2,2',3,4,5,6'-Hexachlorobiphenyl + 1151 + + + 2,2',3,4,5',6-Hexachlorobiphenyl + 1152 + + + 2,2',3,4,6,6'-Hexachlorobiphenyl + 1153 + + + 2,2',3,4',5,6-Hexachlorobiphenyl + 1155 + + + 2,2',3,4',5,6'-Hexachlorobiphenyl + 1156 + + + 2,2',3,4',5',6-Hexachlorobiphenyl + 1157 + + + 2,2',3,4',6,6'-Hexachlorobiphenyl + 1158 + + + 2,2',3,5,5',6-Hexachlorobiphenyl + 1159 + + + 2,2',3,5,6,6'-Hexachlorobiphenyl + 1160 + + + 2,2',4,4',5,5'-Hexachlorobiphenyl + 1161 + + + 2,2',4,4',5,6'-Hexachlorobiphenyl + 1162 + + + 2,2',4,4',6,6'-Hexachlorobiphenyl + 1163 + + + 2,3,3',4,4',5-Hexachlorobiphenyl + 1164 + + + 2,3,3',4,4',5'-Hexachlorobiphenyl + 1165 + + + 2,3,3',4,4',6-Hexachlorobiphenyl + 1166 + + + 2,3,3',4,5,5'-Hexachlorobiphenyl + 1167 + + + 2,3,3',4,5,6-Hexachlorobiphenyl + 1168 + + + 2,3,3',4,5',6-Hexachlorobiphenyl + 1169 + + + 2,3,3',4',5,5'-Hexachlorobiphenyl + 1170 + + + 2,3,3',4',5,6-Hexachlorobiphenyl + 1171 + + + 2,3,3',4',5',6-Hexachlorobiphenyl + 1172 + + + 2,3,3',5,5',6-Hexachlorobiphenyl + 1173 + + + 2,3,4,4',5,6-Hexachlorobiphenyl + 1174 + + + 2,3',4,4',5,5'-Hexachlorobiphenyl + 1175 + + + 2,3',4,4',5',6-Hexachlorobiphenyl + 1176 + + + 3,3',4,4',5,5'-Hexachlorobiphenyl + 1177 + + + + + Hepta_Chloro_PCB + 1178 + + + 2,2',3,3',4,4',5-Heptachlorobiphenyl + 1179 + + + 2,2',3,3',4,4',6-Heptachlorobiphenyl + 1180 + + + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + 1181 + + + 2,2',3,3',4,5,6-Heptachlorobiphenyl + 1182 + + + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + 1183 + + + 2,2',3,3',4,5',6-Heptachlorobiphenyl + 1184 + + + 2,2',3,3',4,6,6'-Heptachlorobiphenyl + 1185 + + + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + 1186 + + + 2,2',3,3',5,5',6-Heptachlorobiphenyl + 1187 + + + 2,2',3,3',5,6,6'-Heptachlorobiphenyl + 1188 + + + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + 1189 + + + 2,2',3,4,4',5,6-Heptachlorobiphenyl + 1190 + + + 2,2',3,4,4',5,6'-Heptachlorobiphenyl + 1191 + + + 2,2',3,4,4',5',6-Heptachlorobiphenyl + 1192 + + + 2,2',3,4,4',6,6'-Heptachlorobiphenyl + 1193 + + + 2,2',3,4,5,5',6-Heptachlorobiphenyl + 1194 + + + 2,2',3,4,5,6,6'-Heptachlorobiphenyl + 1195 + + + 2,2',3,4',5,5',6-Heptachlorobiphenyl + 1196 + + + 2,2',3,4',5,6,6'-Heptachlorobiphenyl + 1197 + + + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + 1198 + + + 2,3,3',4,4',5,6-Heptachlorobiphenyl + 1199 + + + 2,3,3',4,4',5',6-Heptachlorobiphenyl + 1200 + + + 2,3,3',4,5,5',6-Heptachlorobiphenyl + 1201 + + + 2,3,3',4',5,5',6-Heptachlorobiphenyl + 1202 + + + + + Octa_Chloro_PCB + 1203 + + + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + 1204 + + + 2,2',3,3',4,4',5,6-Octachlorobiphenyl + 1205 + + + 2,2',3,3',4,4',5,6'-Octachlorobiphenyl + 1206 + + + 2,2',3,3',4,4',6,6'-Octachlorobiphenyl + 1207 + + + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + 1208 + + + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + 1209 + + + 2,2',3,3',4,5,6,6'-Octachlorobiphenyl + 1210 + + + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + 1211 + + + 2,2',3,3',5,5',6,6'-Octachlorobiphenyl + 1212 + + + 2,2',3,4,4',5,5',6-Octachlorobiphenyl + 1213 + + + 2,2',3,4,4',5,6,6'-Octachlorobiphenyl + 1214 + + + 2,3,3',4,4',5,5',6-Octachlorobiphenyl + 1215 + + + + + Nona_Chloro_PCB + 1216 + + + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + 1217 + + + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + 1218 + + + 2,2',3,3',4,5,5',6,6'-Nonachlorobiphenyl + 1219 + + + + + Deca_Chloro_PCB + 1220 + + + Decachlorobiphenyl + 1221 + + + + + + + PCB_Mixtures + 1222 + + + Aroclor + 1223 + + + Aroclor 1016 + 1224 + + + Aroclor 1210 + 1225 + + + Aroclor 1221 + 1226 + + + Aroclor 1231 + 1227 + + + Aroclor 1232 + 1228 + + + Aroclor 1240 + 1229 + + + Aroclor 1242 + 1230 + + + Aroclor 1248 + 1231 + + + Aroclor 1250 + 1232 + + + Aroclor 1252 + 1233 + + + Aroclor 1254 + 1234 + + + Aroclor-1260 + 1235 + + + Aroclor-1262 + 1236 + + + Aroclor-1268 + 1237 + + + Aroclor (unspecified) + 1238 + + + + + Other PCB_Mixtures + 1239 + + + PCB-105/132/153 + 1240 + + + PCB-123/149 + 1241 + + + PCB-132/153 + 1242 + + + PCB-135/144 + 1243 + + + PCB-137/176 + 1244 + + + PCB-138/163 + 1245 + + + PCB-15/17 + 1246 + + + PCB-16/32 + 1247 + + + PCB-170/190 + 1248 + + + PCB-171/202 + 1249 + + + PCB-172/197 + 1250 + + + PCB-182/187 + 1251 + + + PCB-195/208 + 1252 + + + PCB-196/203 + 1253 + + + PCB-24/27 + 1254 + + + PCB-28/31 + 1255 + + + PCB-37/42 + 1256 + + + PCB-4/10 + 1257 + + + PCB-41/64/71 + 1258 + + + PCB-47/48 + 1259 + + + PCB-5/8 + 1260 + + + PCB-56/60 + 1261 + + + PCB-66/95 + 1262 + + + PCB-7/9 + 1263 + + + PCB-70/76 + 1264 + + + PCB-77/110 + 1265 + + + PCB-84/92 + 1266 + + + + + + + High-Toxicity TEF + 1267 + + + 3,3',4,4'-Tetrachlorobiphenyl + 1268 + + + 3,4,4',5-Tetrachlorobiphenyl + 1269 + + + 2,3,3',4,4'-Pentachlorobiphenyl + 1270 + + + 2,3,4,4',5-Pentachlorobiphenyl + 1271 + + + 2,3',4,4',5-Pentachlorobiphenyl + 1272 + + + 2,3',4,4',5'-Pentachlorobiphenyl + 1273 + + + 3,3',4,4',5-Pentachlorobiphenyl + 1274 + + + 2,3,3',4,4',5-Hexachlorobiphenyl + 1275 + + + 2,3,3',4,4',5'-Hexachlorobiphenyl + 1276 + + + 2,3',4,4',5,5'-Hexachlorobiphenyl + 1277 + + + 3,3',4,4',5,5'-Hexachlorobiphenyl + 1278 + + + 2,2',3,3',4,4',5-Heptachlorobiphenyl + 1279 + + + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + 1280 + + + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + 1281 + + + + + Total PCB + 1282 + + + + + Other organic chemical + 1283 + + + 1,3,5-Trimethylbenzene + 1329 + + + 3,3'-Dichlorobenzidine + 1391 + + + Benzaldehyde + 1439 + + + Benzyl benzoate + 1474 + + + Cholesterol + 1515 + + + Diethylstilbestrol + 1555 + + + Halocarbons, purgeable + 1602 + + + Methyl ethyl ketone + 1657 + + + N-Nitrosomorpholine + 1688 + + + Stearic acid + 1776 + + + Trichloroacetonitrile + 1811 + + + Acrolein + 1284 + + + Acrylonitrile + 1285 + + + Aldrin + 1286 + + + (+)-Panthenol + 1287 + + + .alpha.,.alpha.-Dimethylphenethylamine + 1288 + + + .alpha.-Methylstyrene + 1289 + + + .alpha.-Pinene + 1290 + + + .alpha.-Terpineol + 1291 + + + 1,1,1,2-Tetrachloroethane + 1292 + + + 1,1,1-Trichloro-2-propanone + 1293 + + + 1,1,1-Trichloroethane + 1294 + + + 1,1,2,2-Tetrachloroethane + 1295 + + + 1,1,2-Trichloroethane + 1296 + + + 1,1'-Biphenyl, 4,4'-dibromo-2,2',3,3',5,5',6,6'-octafluoro- + 1297 + + + 1,1-Dichloroethane + 1298 + + + 1,1-Dichloroethylene + 1299 + + + 1,1-Dichloropropanone + 1300 + + + 1,1-Dichloropropene + 1301 + + + 1,2,3,4,6,7,8,9-Octachlorodibenzofuran + 1302 + + + 1,2,3,4,6,7,8,9-Octachlorodibenzo-p-dioxin + 1303 + + + 1,2,3,4,6,7,8-Heptachlorodibenzofuran + 1304 + + + 1,2,3,4,6,7,8-Heptachlorodibenzo-p-dioxin + 1305 + + + 1,2,3,4,7,8,9-Heptachlorodibenzofuran + 1306 + + + 1,2,3,4,7,8-Hexachlorodibenzofuran + 1307 + + + 1,2,3,4,7,8-Hexachlorodibenzo-p-dioxin + 1308 + + + 1,2,3,4-Tetramethylbenzene + 1309 + + + 1,2,3,5-Tetramethylbenzene + 1310 + + + 1,2,3,6,7,8-Hexachlorodibenzofuran + 1311 + + + 1,2,3,6,7,8-Hexachlorodibenzo-p-dioxin + 1312 + + + 1,2,3,7,8,9-Hexachlorodibenzofuran + 1313 + + + 1,2,3,7,8,9-Hexachlorodibenzo-p-dioxin + 1314 + + + 1,2,3,7,8-Pentachlorodibenzofuran + 1315 + + + 1,2,3,7,8-Pentachlorodibenzo-p-dioxin + 1316 + + + 1,2,3-Trichlorobenzene + 1317 + + + 1,2,3-Trimethylbenzene + 1318 + + + 1,2,4,5-Tetrachlorobenzene + 1319 + + + 1,2,4,5-Tetramethylbenzene + 1320 + + + 1,2,4-Trichlorobenzene + 1321 + + + 1,2,4-Trimethylbenzene + 1322 + + + 1,2-Bis(2,4,6-tribromophenoxy)ethane + 1323 + + + 1,2-Dichloroethylene + 1324 + + + 1,2-Dichloropropene + 1325 + + + 1,2-Dimethylnaphthalene + 1326 + + + 1,2-Diphenylhydrazine + 1327 + + + 1,3,5-Trichlorobenzene + 1328 + + + 1,3,5-Trinitrobenzene + 1330 + + + 1,3-Dioxolo[4,5-g]quinoline-7-carboxylic acid, 5-ethyl-5,8-dihydro-8-oxo- + 1331 + + + 1,3-Isobenzofurandione, 4,5,6,7-tetrabromo- + 1332 + + + 1,3-Propanedione, 1-[4-(1,1-dimethylethyl)phenyl]-3-(4-methoxyphenyl)- + 1333 + + + 1,4-Dioxane + 1334 + + + 1,6-Dimethylnaphthalene + 1335 + + + 1-Bromo-2-chloroethane + 1336 + + + 1H-Benzimidazol-2-amine + 1337 + + + 1H-Benzotriazole, 5-methyl- + 1338 + + + 1-Hexadecen-3-ol, 3,7,11,15-tetramethyl- + 1339 + + + 1-Methylfluorene + 1340 + + + 1-Methylnaphthalene + 1341 + + + 1-Methylphenanthrene + 1342 + + + 1-Methylpyrene + 1343 + + + 1-Naphthalenamine + 1344 + + + 2-(Methylthio)benzothiazole + 1345 + + + 2,2'-Biquinoline + 1346 + + + 2,2-Dichloropropane + 1347 + + + 2,3,4,6,7,8-Hexachlorodibenzofuran + 1348 + + + 2,3,4,7,8-Pentachlorodibenzofuran + 1349 + + + 2,3,6-Trimethylnaphthalene + 1350 + + + 2,3,7,8-Tetrachlorodibenzofuran + 1351 + + + 2,3,7,8-Tetrachlorodibenzo-p-dioxin + 1352 + + + 2,3-Dichloropropene + 1353 + + + 2,4,6-Trimethylphenol + 1354 + + + 2,4-Dinitrophenol + 1355 + + + 2,4-Dinitrotoluene + 1356 + + + 2,4-Pyrimidinediamine, 5-[(3,4,5-trimethoxyphenyl)methyl]- + 1357 + + + 2,6-Dichlorobenzamide + 1358 + + + 2,6-Dichlorophenol + 1359 + + + 2,6-Dimethylnaphthalene + 1360 + + + 2,6-Dinitrotoluene + 1361 + + + 2,6-Di-tert-butyl-p-cresol + 1362 + + + 2,6-Di-tert-butylphenol + 1363 + + + 2-Acetylaminofluorene + 1364 + + + 2-Amino-4,6-dinitrotoluene + 1365 + + + 2-Amino-9H-pyrido[2,3-b]indole + 1366 + + + 2-Butene, 1,4-dichloro-, (2Z)- + 1367 + + + 2-Butene, 2-methyl- + 1368 + + + 2-Chloroethyl vinyl ether + 1369 + + + 2-Chloronaphthalene + 1370 + + + 2-Ethylhexyl p-methoxycinnamate + 1371 + + + 2-Ethylnaphthalene + 1372 + + + 2H-1,2,4-Benzothiadiazine-7-sulfonamide, 6-chloro-3,4-dihydro-, 1,1-dioxide + 1373 + + + 2H-1-Benzopyran-6-ol, 3,4-dihydro-2,5,7,8-tetramethyl-2-[(4R,8R)-4,8,12-trimethyltridecyl]-, (2R)- + 1374 + + + 2-Hexadecen-1-ol, 3,7,11,15-tetramethyl-, (2E,7R,11R)- + 1375 + + + 2-Hexanone + 1376 + + + 2-Hydroxy-4-methoxybenzophenone + 1377 + + + 2-Hydroxy-4-octyloxybenzophenone + 1378 + + + 2-Methyl-2-butanol + 1379 + + + 2-Methyl-5-nitroaniline + 1380 + + + 2-Methylanthracene + 1381 + + + 2-Methylbutane + 1382 + + + 2-Methylnaphthalene + 1383 + + + 2-Methylpyridine + 1384 + + + 2-Naphthacenecarboxamide, 7-chloro-4-(dimethylamino)-1,4,4a,5,5a,6,11,12a-octahydro-3,6,10,12,12a-pentahydroxy-6-methyl-1,11-dioxo-, (4S,4aS,5aS,6S,12aS)- + 1385 + + + 2-Naphthalenamine + 1386 + + + 2-Nitropropane + 1387 + + + 2-Propanol, 1,3-dichloro-, phosphate (3:1) + 1388 + + + 2-Pyrrolidinone, 1-methyl-5-(3-pyridinyl)-, (5S)- + 1389 + + + 3,3,5-Trimethylcyclohexyl salicylate + 1390 + + + 3,3'-Dimethylbenzidine + 1392 + + + 3,4-Dichlorophenyl isocyanate + 1393 + + + 3,5-Dimethylphenol + 1394 + + + 3,5-Dinitroaniline + 1395 + + + 3,7-Dimethyl-1,6-octadien-3-ol + 1396 + + + 3-Buten-2-one, 3-methyl-4-(2,6,6-trimethyl-2-cyclohexen-1-yl)- + 1397 + + + 3-Methylcholanthrene + 1398 + + + 3-Methylindole + 1399 + + + 3-Pyrrolidineacetic acid, 2-carboxy-4-[(1Z,3E,5R)-5-carboxy-1-methyl-1,3-hexadienyl]-, (2S,3S,4S)- + 1400 + + + 3-Quinolinecarboxylic acid, 7-(3-amino-1-pyrrolidinyl)-8-chloro-1-cyclopropyl-6-fluoro-1,4-dihydro-4-oxo- + 1401 + + + 4,4'-Isopropylidenediphenol + 1402 + + + 4-Amino-2,6-dinitrotoluene + 1403 + + + 4-Aminobiphenyl + 1404 + + + 4-Dimethylaminoazobenzene + 1405 + + + 4H-Cyclopenta[def]phenanthrene + 1406 + + + 4-Nitroquinoline 1-oxide + 1407 + + + 4-Thia-1-azabicyclo[3.2.0]heptane-2-carboxylic acid, 3,3-dimethyl-7-oxo-6-[(phenoxyacetyl)amino]-, (2S,5R,6R)- + 1408 + + + 6-Methyl-2-(1-methylethyl)-4(1H)-pyrimidinone + 1409 + + + 7,12-Dimethylbenz[a]anthracene + 1410 + + + 9,10-Secocholesta-5,7,10(19)-trien-3-ol, (3.beta.,5Z,7E)- + 1411 + + + Acenaphthene + 1412 + + + Acenaphthylene + 1413 + + + Acetaldehyde + 1414 + + + Acetamide, 2,2-dichloro-N-[(1R,2R)-2-hydroxy-1-(hydroxymethyl)-2-(4-nitrophenyl)ethyl]- + 1415 + + + Acetaminophen + 1416 + + + Acetic acid + 1417 + + + Acetic acid, (4-nonylphenoxy)- + 1418 + + + Acetone + 1419 + + + Acetonitrile + 1420 + + + Acetonitrile, chloro- + 1421 + + + Acetophenone + 1422 + + + Acridine + 1423 + + + Acrylamide + 1425 + + + Adenosine 5'-(tetrahydrogen triphosphate) + 1426 + + + Alprazolam + 1427 + + + Aluminum, Organic + Inorganic Monomeric (reactive aluminum) + 1428 + + + Aluminum, Organic Monomeric (reactive aluminum) + 1429 + + + Androst-4-en-3-one, 17-hydroxy-, (17.beta.)- + 1430 + + + Androstan-17-one, 3-hydroxy-, (3.alpha.,5.alpha.)- + 1431 + + + Aniline + 1432 + + + Anthracene + 1433 + + + Anthraquinone + 1434 + + + Arsonic acid, (4-hydroxy-3-nitrophenyl)- + 1435 + + + Aspirin + 1436 + + + Benz[a]anthracene + 1437 + + + Benz[a]anthracene mixt. with chrysene + 1438 + + + Benzenamine, 4-(4-chlorophenoxy)- + 1440 + + + Benzene + 1441 + + + Benzene, 1,1'-(1E)-1,2-ethenediylbis- + 1442 + + + Benzene, 1,1'-oxybis[2,4,5-tribromo- + 1443 + + + Benzene, 1,1'-oxybis[2,4-dibromo- + 1444 + + + Benzene, 1,2,3-tribromo-4-(2,4,5-tribromophenoxy)- + 1445 + + + Benzene, 1,2,3-tribromo-4-(2,4-dibromophenoxy)- + 1446 + + + Benzene, 1,2,4-tribromo-5-(2,4-dibromophenoxy)- + 1447 + + + Benzene, 1,2-dibromo-4-(2,4-dibromophenoxy)- + 1448 + + + Benzene, 1,3(and 1,4)-dimethyl- Chemical m(and p)-xylene + 1449 + + + Benzene, 1,3,5-tribromo-2-(2,4,5-tribromophenoxy)- + 1450 + + + Benzene, 1,3,5-tribromo-2-(2,4-dibromophenoxy)- + 1451 + + + Benzene, 2,4-dibromo-1-(4-bromophenoxy)- + 1452 + + + Benzene, pentabromomethyl- + 1453 + + + Benzeneacetic acid, .alpha.-methyl-4-(2-methylpropyl)- + 1454 + + + Benzeneacetic acid, 3-benzoyl-.alpha.-methyl- + 1455 + + + Benzenesulfonamide, 4-amino-N-(2,6-dimethoxy-4-pyrimidinyl)- + 1456 + + + Benzenesulfonamide, 4-amino-N-(4,6-dimethyl-2-pyrimidinyl)- + 1457 + + + Benzenesulfonamide, 4-amino-N-(4-methyl-2-pyrimidinyl)- + 1458 + + + Benzenesulfonamide, 4-amino-N-2-pyrimidinyl- + 1459 + + + Benzenesulfonic acid, decyl-, sodium salt, mixt. with sodium dodecylbenzenesulfonate, sodium tridecylbenzenesulfonate and sodium undecylbenzenesulfonate + 1460 + + + Benzidine + 1461 + + + Benzo(b)fluoranthene + 1462 + + + Benzo[a]pyrene + 1463 + + + Benzo[c]cinnoline + 1464 + + + Benzo[e]pyrene + 1465 + + + Benzo[ghi]perylene + 1466 + + + Benzo[k]fluoranthene + 1467 + + + Benzoic acid + 1468 + + + Benzoic acid, 4-hydroxy-, methyl ester + 1469 + + + Benzoic acid, 4-hydroxy-, propyl ester + 1470 + + + Benzoic acid, 5-(aminosulfonyl)-4-chloro-2-((2-furanylmethyl)amino)- + 1471 + + + Benzophenone + 1472 + + + Benzyl alcohol + 1473 + + + Benzyl chloride + 1475 + + + Benzyl cinnamate + 1476 + + + Benzyl salicylate + 1477 + + + Biphenyl + 1478 + + + Bis(2-chloroethoxy)methane + 1479 + + + Bis(2-chloroethyl) ether + 1480 + + + Bis(2-chloroisopropyl) ether + 1481 + + + Bis(chloromethyl) ether + 1482 + + + Bromoacetic acid + 1483 + + + Bromobenzene + 1484 + + + Bromochloroacetic acid + 1485 + + + Bromochloroacetonitrile + 1486 + + + Butane + 1487 + + + Butane, 1-chloro- + 1488 + + + Butane, 2,3-dimethyl- + 1489 + + + Butyl benzyl phthalate + 1490 + + + Butyric acid + 1491 + + + C.I. Vat Blue 1 + 1492 + + + Caffeine + 1493 + + + Camphene + 1494 + + + Caprolactam + 1495 + + + Carbon tetrachloride + 1496 + + + Carisoprodol + 1497 + + + CFC-11 + 1498 + + + CFC-113 + 1499 + + + CFC-12 + 1500 + + + Chloral + 1501 + + + Chloral hydrate + 1502 + + + Chlorinated naphthalenes + 1503 + + + Chloroacetaldehyde + 1504 + + + Chloroacetic acid + 1505 + + + Chlorobenzene + 1506 + + + Chlorodibromomethane + 1507 + + + Chloroethane + 1508 + + + Chloroform + 1509 + + + Chloromethane + 1510 + + + Chloromethyl methyl ether + 1511 + + + Chloroprene + 1512 + + + Chlorpheniramine + 1513 + + + Cholestan-3-ol, (3.beta.,5.beta.)- + 1514 + + + Chrysene + 1516 + + + Cinnamaldehyde + 1517 + + + cis-1,2-Dichloroethylene + 1518 + + + Citral + 1519 + + + Citronellol + 1520 + + + Coal + 1521 + + + Coronene + 1522 + + + Coumaran + 1523 + + + Coumarin + 1524 + + + Cresol + 1525 + + + Cumene + 1526 + + + Cyclo[L-arginyl-(2S,3S,4E,6E,8S,9S)-3-amino-9-methoxy-2,6,8-trimethyl-10-phenyl-4,6-decadienoyl-D-.gamma.-glutamyl-(2Z)-2-(methylamino)-2-butenoyl-(3S)-3-methyl-D-.beta.-aspartyl] + 1527 + + + Cyclododecane + 1528 + + + Cyclododecane, hexabromo- + 1529 + + + Cyclohexane + 1530 + + + Cyclohexene, 1-methyl-4-(1-methylethenyl)-, (4R)- + 1531 + + + Cyclonite + 1532 + + + Cyclopenta[g]-2-benzopyran, 1,3,4,6,7,8-hexahydro-4,6,6,7,8,8-hexamethyl- + 1533 + + + Cyclotetramethylenetetranitramine + 1534 + + + D-.alpha.-Tocopheryl acetate + 1535 + + + Decabromodiphenyl oxide + 1536 + + + Decane + 1537 + + + D-erythro-.alpha.-D-galacto-Octopyranoside, methyl 6,8-dideoxy-6-[[[(2S,4R)-1-methyl-4-propyl-2-pyrrolidinyl]carbonyl]amino]-1-thio- + 1538 + + + Di(2-ethylhexyl) adipate + 1539 + + + Di(2-ethylhexyl) phthalate + 1540 + + + Diazepam + 1541 + + + Dibenz[a,h]anthracene + 1542 + + + Dibenzofuran + 1543 + + + Dibenzothiophene + 1544 + + + Dibromoacetic acid + 1545 + + + Dibromoacetonitrile + 1546 + + + Dibromomethane + 1547 + + + Dibutyl phthalate + 1548 + + + Dichloroacetic acid + 1549 + + + Dichloroacetonitrile + 1550 + + + Dichlorobromomethane + 1551 + + + Diesel range organics + 1552 + + + Diethyl phthalate + 1553 + + + Diethylene glycol monobutyl ether acetate + 1554 + + + Digoxin + 1556 + + + Dimethoxymethane + 1557 + + + Dimethyl dioctadecyl ammonium chloride + 1558 + + + Dimethyl ether + 1559 + + + Dimethyl phthalate + 1560 + + + Di-n-octyl phthalate + 1561 + + + Diphenylsulfone + 1562 + + + Docosane + 1563 + + + Dodecane + 1564 + + + Doxycycline + 1565 + + + Eicosane + 1566 + + + Erythromycin + 1567 + + + Estra-1,3,5,7,9-pentaen-17-one, 3-hydroxy- + 1568 + + + Estradiol + 1569 + + + Estrone + 1570 + + + Ethanamine, 2-(diphenylmethoxy)-N,N-dimethyl- + 1571 + + + Ethane + 1572 + + + Ethanol + 1573 + + + Ethanol, 2-(4-nonylphenoxy)- + 1574 + + + Ethanol, 2,2'-thiobis- + 1575 + + + Ethanol, 2-[2-(4-nonylphenoxy)ethoxy]- + 1576 + + + Ethanol, 2-[2-[2-[2-(4-nonylphenoxy)ethoxy]ethoxy]ethoxy]- + 1577 + + + Ethanone, 1-(1,2,3,4,5,6,7,8-octahydro-2,3,8,8-tetramethyl-2-naphthalenyl)- + 1578 + + + Ethanone, 1-(2,3-dihydro-1,1,2,3,3,6-hexamethyl-1H-inden-5-yl)- + 1579 + + + Ethanone, 1-[(3R,3aR,7R,8aS)-2,3,4,7,8,8a-hexahydro-3,6,8,8-tetramethyl-1H-3a,7-methanoazulen-5-yl]- + 1580 + + + Ethanone, 1-[6-(1,1-dimethylethyl)-2,3-dihydro-1,1-dimethyl-1H-inden-4-yl]- + 1581 + + + Ethinyl estradiol + 1582 + + + Ethyl acetate + 1583 + + + Ethyl ether + 1584 + + + Ethyl formate + 1585 + + + Ethyl methacrylate + 1586 + + + Ethyl methanesulfonate + 1587 + + + Ethyl nicotinate + 1588 + + + Ethyl tert-butyl ether + 1589 + + + Ethylbenzene + 1590 + + + Ethylene + 1591 + + + Ethylene glycol + 1592 + + + Eugenol + 1593 + + + Farnesol + 1594 + + + Fluoranthene + 1595 + + + Fluorene + 1596 + + + Formaldehyde + 1597 + + + Formic acid + 1598 + + + Formic acid, 1,1-dimethylethyl ester + 1599 + + + Gasoline range organics + 1600 + + + Haloacetic acids + 1601 + + + Halogenated organics + 1603 + + + Halon 1011 + 1604 + + + HCFC-123 + 1605 + + + HCFC-123a + 1606 + + + HCFC-21 + 1607 + + + HCFC-22 + 1608 + + + Heptachlorodibenzofuran + 1609 + + + Heptachlorodibenzo-p-dioxin + 1610 + + + Heptadecanoic acid + 1611 + + + Heptanal, 2-(phenylmethylene)- + 1612 + + + Hexachlorobutadiene + 1613 + + + Hexachlorocyclopentadiene + 1614 + + + Hexachlorodibenzofuran + 1615 + + + Hexachloroethane + 1616 + + + Hexachloropropene + 1617 + + + Hexacosane + 1618 + + + Hexadecane + 1619 + + + Hexadecane, 2,6,10,14-tetramethyl- + 1620 + + + Hexane + 1621 + + + Hexane, 1-chloro- + 1622 + + + Hexatriacontane + 1623 + + + Hydrocarbons, nitrated + 1624 + + + Hydrocarbons, petroleum + 1625 + + + Hydrocarbons, volatile + 1626 + + + Hydrophilic fraction of organic carbon + 1627 + + + Hydrophobic fraction of organic carbon + 1628 + + + Indeno[1,2,3-cd]pyrene + 1629 + + + Indole + 1630 + + + Isoborneol + 1631 + + + Isobutanol + 1632 + + + Isobutene + 1633 + + + Isoeugenol + 1634 + + + Isophorone + 1635 + + + Isopropyl ether + 1636 + + + Isopropyl myristate + 1637 + + + Isoquinoline + 1638 + + + Isosafrole + 1639 + + + Lactic acid + 1640 + + + Lanolin + 1641 + + + Lipids + 1642 + + + L-Tyrosine, O-(4-hydroxy-3,5-diiodophenyl)-3,5-diiodo- + 1643 + + + m-Chlorotoluene + 1644 + + + m-Cresol + 1645 + + + m-Dichlorobenzene + 1646 + + + m-Dinitrobenzene + 1647 + + + Mestranol + 1648 + + + Methacrylonitrile + 1649 + + + Methane + 1650 + + + Methanol + 1651 + + + Methanone, (2,4-dihydroxyphenyl)phenyl- + 1652 + + + Methapyrilene + 1653 + + + Methocarbamol + 1654 + + + Methyl acetate + 1655 + + + Methyl acrylate + 1656 + + + Methyl formate + 1658 + + + Methyl isobutyl ketone + 1659 + + + Methyl methacrylate + 1660 + + + Methyl methanesulfonate + 1661 + + + Methyl salicylate + 1662 + + + Methyl tert-butyl ether + 1663 + + + Methylcyclohexane + 1664 + + + Methylene chloride + 1665 + + + Methylmercury + 1666 + + + m-Ethylphenol + 1667 + + + Microcystin LR + 1668 + + + m-Nitroaniline + 1669 + + + m-Nitrophenol + 1670 + + + m-Nitrotoluene + 1671 + + + Morphinan-6-ol, 7,8-didehydro-4,5-epoxy-3-methoxy-17-methyl-, (5.alpha.,6.alpha.)- + 1672 + + + Mustard gas + 1673 + + + m-Xylene + 1674 + + + Naphthalene + 1675 + + + n-Butylbenzene + 1676 + + + Neutrals + 1677 + + + Nicotine + 1678 + + + Nitrobenzene + 1679 + + + Nitroglycerin + 1680 + + + Nitromethane + 1681 + + + N-Nitrosodiethylamine + 1682 + + + N-Nitrosodimethylamine + 1683 + + + N-Nitrosodi-n-butylamine + 1684 + + + N-Nitrosodi-n-propylamine + 1685 + + + N-Nitrosodiphenylamine + 1686 + + + N-Nitrosomethylethylamine + 1687 + + + N-Nitrosopiperidine + 1689 + + + N-Nitrosopyrrolidine + 1690 + + + Nonadecane + 1691 + + + Nonane + 1692 + + + Norethisterone + 1693 + + + n-Propylbenzene + 1694 + + + o-Benzyl-p-chlorophenol + 1695 + + + o-Chloroaniline + 1696 + + + o-Chlorophenol + 1697 + + + o-Chlorotoluene + 1698 + + + Octachlorostyrene + 1699 + + + Octacosane + 1700 + + + Octadecane + 1701 + + + Octane + 1702 + + + Octanoic acid, pentadecafluoro- + 1703 + + + o-Dichlorobenzene + 1704 + + + o-Ethyltoluene + 1705 + + + Oil and grease -- CWA 304B + 1706 + + + o-Nitroaniline + 1707 + + + o-Nitrophenol + 1708 + + + o-Nitrotoluene + 1709 + + + Organic acids + 1710 + + + Organic compounds + 1711 + + + Organic halides, total -- SWDA NPDWR + 1712 + + + o-Toluidine + 1713 + + + o-Xylene + 1714 + + + Oxytetracycline + 1715 + + + p-(1,1,3,3-Tetramethylbutyl)phenol + 1716 + + + Palmitic acid + 1717 + + + p-Bromophenyl phenyl ether + 1718 + + + p-Chlorophenyl phenyl ether + 1719 + + + p-Chlorotoluene + 1720 + + + p-Cymene + 1721 + + + p-Diethylbenzene + 1722 + + + Pentachlorodibenzofuran + 1723 + + + Pentachlorodibenzo-p-dioxin + 1724 + + + Pentachloroethane + 1725 + + + Pentadecane, 2,6,10,14-tetramethyl- + 1726 + + + Pentaerythritol tetranitrate + 1727 + + + Pentane + 1728 + + + Pentane, 2,3,3-trimethyl- + 1729 + + + Pentane, 2,3,4-trimethyl- + 1730 + + + Pentane, 2,4-dimethyl- + 1731 + + + Pentane, 2-methyl- + 1732 + + + Pentane, 3-methyl- + 1733 + + + Perylene + 1734 + + + Phenacetin + 1735 + + + Phenanthrene + 1736 + + + Phenanthridine + 1737 + + + Phenol + 1738 + + + Phenol, 2-(1,1-dimethylethyl)-4-methoxy- + 1739 + + + Phenol, 2,3,5,6-tetramethyl- + 1740 + + + Phenol, 2,4-bis(1,1-dimethylpropyl)- + 1741 + + + Phenol, 2-amino-5-chloro- + 1742 + + + Phenol, 4-(1-methyl-1-phenylethyl)- + 1743 + + + Phenol, 5-amino-2-chloro- + 1744 + + + Phenols + 1745 + + + Phenols and phenolic compounds + 1746 + + + Phosphonic acid, methyl-, dimethyl ester + 1747 + + + Phthalate esters + 1748 + + + Picric acid + 1749 + + + Plumbane, diethyldimethyl- + 1750 + + + Plumbane, ethyltrimethyl- + 1751 + + + Plumbane, triethylmethyl- + 1752 + + + p-Nitroaniline + 1753 + + + p-Nitrotoluene + 1754 + + + p-Octylphenol + 1755 + + + Progesterone + 1756 + + + Propane + 1757 + + + Propane, 2-bromo-1-chloro- + 1758 + + + Propanenitrile + 1759 + + + Propanoic acid, 2-oxo- + 1760 + + + Propylene glycol + 1761 + + + p-Xylene + 1762 + + + Pyrene + 1763 + + + Pyridine + 1764 + + + Quinoline + 1765 + + + Retinoic acid + 1766 + + + Retinol + 1767 + + + Safrole + 1768 + + + sec-Butylbenzene + 1769 + + + Stannane, bis(acetyloxy)dibutyl- + 1770 + + + Stannane, dibutyl- + 1771 + + + Stannane, tetrabutyl- + 1772 + + + Stannane, tetramethyl- + 1773 + + + Stannane, tetraphenyl- + 1774 + + + Stannanetriylium, butyl- + 1775 + + + Stigmast-5-en-3-ol, (3.beta.)- + 1777 + + + Stigmastan-3-ol, (3.beta.)- + 1778 + + + Styrene + 1779 + + + Sulfamethoxazole + 1780 + + + Sulfathiazole + 1781 + + + Surfactants -- CWA 304B + 1782 + + + Tannin and Lignin + 1783 + + + tert-Amyl methyl ether + 1784 + + + tert-Butanol + 1785 + + + tert-Butyl acetate + 1786 + + + tert-Butylbenzene + 1787 + + + Tetrabromobisphenol A + 1788 + + + Tetrachlorodibenzofuran + 1789 + + + Tetrachlorodibenzo-p-dioxin + 1790 + + + Tetrachloroethylene + 1791 + + + Tetrachlorophenol + 1792 + + + Tetracosane + 1793 + + + Tetradecane + 1794 + + + Tetraethyllead + 1795 + + + Tetrahydrofuran + 1796 + + + Tetramethyllead + 1797 + + + Tetryl + 1798 + + + Theophylline + 1799 + + + Toluene + 1800 + + + Total toxic organics -- CWA 304B + 1801 + + + trans-1,2-Dichloroethylene + 1802 + + + trans-1,4-Dichloro-2-butene + 1803 + + + trans-Geraniol + 1804 + + + Transphilic fraction of organic carbon + 1805 + + + Triacontane + 1806 + + + Tribromomethane + 1807 + + + Tributyl phosphate + 1808 + + + Tributyltin acetate + 1809 + + + Trichloroacetic acid + 1810 + + + Trichlorobenzene + 1812 + + + Trichloroethylene + 1813 + + + Triclocarban + 1814 + + + Triclosan + 1815 + + + Triethyl citrate + 1816 + + + Trinitrotoluene + 1817 + + + Triphenyl phosphate + 1818 + + + Tris(2,3-dibromopropyl) phosphate + 1819 + + + Tris(2-butoxyethyl) phosphate + 1820 + + + Tris(2-chloroethyl) phosphate + 1821 + + + Undecanoic acid + 1822 + + + Valproic acid + 1823 + + + Vanillin + 1824 + + + Vinyl acetate + 1825 + + + Vinyl bromide + 1826 + + + Vinyl chloride + 1827 + + + Vitamin B12 + 1828 + + + Vitamin D + 1829 + + + Warfarin + 1830 + + + Xanthylium, 9-(2,4-dicarboxyphenyl)-3,6-bis(diethylamino)-, chloride, disodium salt + 1831 + + + Xylene + 1832 + + + + + Pesticide + 1833 + + + Benzene, 1-chloro-4-(methylsulfonyl)- + 1915 + + + Chlorthal-dimethyl + 1962 + + + Fluridone + 2046 + + + MCPA + 2075 + + + Metsulfuron-methyl + 2094 + + + p,p'-DDT + 2128 + + + Phosmetoxon + 2155 + + + Ronnel + 2188 + + + Terbutryn + 2211 + + + Tricyclazole + 2240 + + + .alpha.-Endosulfan + 1834 + + + .alpha.-Hexachlorocyclohexane + 1835 + + + .beta.-Endosulfan + 1836 + + + .beta.-Hexachlorocyclohexane + 1837 + + + .delta.-Hexachlorocyclohexane + 1838 + + + .lambda.-Cyhalothrin + 1839 + + + 1,2,3-Trichloropropane + 1840 + + + 1,2-Dibromo-3-chloropropane + 1841 + + + 1,2-Dichloroethane + 1842 + + + 1,2-Dichloropropane + 1843 + + + 1,3,5-Triazin-2(1H)-one, 4-(ethylamino)-6-[(1-methylethyl)amino]- + 1844 + + + 1,3,5-Triazin-2(1H)-one, 4,6-bis(ethylamino)- + 1845 + + + 1,3-Dichloropropane + 1846 + + + 1,3-Dichloropropene + 1847 + + + 1,4-Benzenedicarboxylic acid, 2,3,5,6-tetrachloro-, monomethyl ester + 1848 + + + 1,4-Ethenopentalene, 1,2,3,5,7,8-hexachloro-1,3a,4,5,6,6a-hexahydro-, (1R,3aS,4S,5S,6aS)-rel- + 1849 + + + 1,4-Naphthoquinone + 1850 + + + 1,6-Methano-1H-indene, 2,3,3a,4,5,8-hexachloro-3a,6,7,7a-tetrahydro-, (1R,3aR,6S,7aR,8R)-rel- + 1851 + + + 1H-Isoindole-1,3(2H)-dione, 3a,4,7,7a-tetrahydro-2-[(1,1,2,2-tetrachloroethyl)thio]- + 1852 + + + 1-Naphthol + 1853 + + + cis-Permethrin + 1854 + + + 2(1H)-Pyridinone, 3,5,6-trichloro- + 1855 + + + 2-(Dimethylamino)-N-hydroxy-2-oxoethanimidothioic acid methyl ester + 1856 + + + 2-(p-tert-Butylphenoxy)cyclohexanol + 1857 + + + 2,2,4,5,6,7,8,8-Octachloro-2,3,3a,4,7,7a-hexahydro-4,7-methano-1H-indene + 1858 + + + 2,3,4,5-Tetrachlorophenol + 1859 + + + 2,3,4,6-Tetrachlorophenol + 1860 + + + 2,4,5-T + 1861 + + + 2,4,5-TB + 1862 + + + 2,4,5-Trichlorophenol + 1863 + + + 2,4,6-Trichlorophenol + 1864 + + + 2,4-D + 1865 + + + 2,4-D methyl ester + 1866 + + + 2,4-DB + 1867 + + + 2,4-Dichlorophenol + 1868 + + + 2,4-Dimethylphenol + 1869 + + + 2,5-Dichloroaniline + 1870 + + + 2,6-Diethylaniline + 1871 + + + 2-Chloro-4,6-diamino-s-triazine + 1872 + + + 2-Chloro-4-isopropylamino-6-amino-s-triazine + 1873 + + + 2-Chloro-6-ethylamino-4-amino-s-triazine + 1874 + + + 2-Ethyl-6-methylaniline + 1875 + + + 3(2H)-Pyridazinone, 5-amino-4-chloro-2-[3-(trifluoromethyl)phenyl]- + 1876 + + + 3,4-Dichloroaniline + 1877 + + + 3,5-Dichloroaniline + 1878 + + + 3-Hydroxycarbofuran + 1879 + + + 3-Phenoxybenzenemethanol + 1880 + + + 4,6-Dinitro-o-cresol + 1881 + + + 4-Chloro-2-methylphenol + 1882 + + + 5-Amino-1-[2,6-dichloro-4-(trifluoromethyl)phenyl]-4-[(trifluoromethyl)thio]pyrazole-3-carbonitrile + 1883 + + + Acephate + 1884 + + + Acetochlor + 1885 + + + Acifluorfen + 1886 + + + Acifluorfen, sodium salt + 1887 + + + Acrylonitrile + 1888 + + + Alachlor + 1889 + + + Alachlor ESA + 1890 + + + Aldicarb + 1891 + + + Aldicarb sulfone + 1892 + + + Aldicarb sulfoxide + 1893 + + + Aldrin + 1894 + + + Allethrin + 1895 + + + Allyl chloride + 1896 + + + Ametryn + 1897 + + + Aminocarb + 1898 + + + Aminomethylphosphonic acid + 1899 + + + Aramite + 1900 + + + Asulam + 1901 + + + Atraton + 1902 + + + Atrazine + 1903 + + + Azinphos-ethyl + 1904 + + + Azinphos-methyl + 1905 + + + Azobenzene + 1906 + + + Barban + 1907 + + + Bendiocarb + 1908 + + + Benfluralin + 1909 + + + Benomyl + 1910 + + + Bensulfuron-methyl + 1911 + + + Bentazon + 1912 + + + Benzamide, 2-amino-N-(1-methylethyl)- + 1913 + + + Benzene, 1,1'-(chloroethenylidene)bis(4-chloro- + 1914 + + + Benzene, 1-methoxy-2-[2,2,2-trichloro-1-(4-methoxyphenyl)ethyl]- + 1916 + + + Benzene, pentachloromethoxy- + 1917 + + + Benzoic acid, 2,5-dichloro-3-hydroxy-6-methoxy- + 1918 + + + Benzoic acid, 3,5-dichloro- + 1919 + + + Bifenthrin + 1920 + + + Bromacil + 1921 + + + Bromophos + 1922 + + + Bromophos-ethyl + 1923 + + + Bromoxynil + 1924 + + + Bufencarb + 1925 + + + Bulan mixt. with 2-nitro-1,1-bis(p-chlorophenyl)propane + 1926 + + + Butachlor + 1927 + + + Butoxycarboxim + 1928 + + + Butylamine + 1929 + + + Butylate + 1930 + + + Cacodylic acid + 1931 + + + Cadusafos + 1932 + + + Camphor + 1933 + + + Captan + 1934 + + + Carbamic acid, methyl-, 2-chlorophenyl ester + 1935 + + + Carbaryl + 1936 + + + Carbazole + 1937 + + + Carbofuran + 1938 + + + Carbon disulfide + 1939 + + + Carbophenothion + 1940 + + + Carbophenothion-methyl + 1941 + + + Carboxin + 1942 + + + Chloramben + 1943 + + + Chloramben-methyl + 1944 + + + Chlordane, technical + 1945 + + + Chlordane, technical, and/or chlordane metabolites + 1946 + + + Chlordecone + 1947 + + + Chlorethoxyfos + 1948 + + + Chlorfenvinphos + 1949 + + + Chlorimuron-ethyl + 1950 + + + Chlorinated phenoxy acid group + 1951 + + + Chlorobenzilate + 1952 + + + Chloroneb + 1953 + + + Chloropicrin + 1954 + + + Chlorothalonil + 1955 + + + Chlorotoluron + 1956 + + + Chloroxuron + 1957 + + + Chlorpropham + 1958 + + + Chlorpyrifos + 1959 + + + Chlorpyrifos-methyl + 1960 + + + Chlorsulfuron + 1961 + + + Chlorthion + 1963 + + + Cinerin I + 1964 + + + cis-1,3-Dichloropropene + 1965 + + + cis-Chlordane + 1966 + + + cis-Nonachlor + 1967 + + + Clomazone + 1968 + + + Clopyralid + 1969 + + + Coumaphos + 1970 + + + Cyanazine + 1971 + + + Cybutryne + 1972 + + + Cycloate + 1973 + + + Cyclohexanamine, N-ethyl- + 1974 + + + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl- + 1975 + + + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester + 1976 + + + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester, (1R,3R)-rel- + 1977 + + + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester, (1R,3S)-rel- + 1978 + + + Cyfluthrin + 1979 + + + Cypermethrin + 1980 + + + Cyprazine + 1981 + + + Dalapon + 1982 + + + Deltamethrin + 1983 + + + Demeton + 1984 + + + Demeton-O + 1985 + + + Demeton-S + 1986 + + + Desmedipham + 1987 + + + Diallate + 1988 + + + Diazinon + 1989 + + + Dicamba + 1990 + + + Dichlobenil + 1991 + + + Dichlofenthion + 1992 + + + Dichlorprop + 1993 + + + Dichlorvos + 1994 + + + Diclofop methyl + 1995 + + + Dicofol + 1996 + + + Dicrotophos + 1997 + + + Dieldrin + 1998 + + + Diethatyl ethyl + 1999 + + + Diflubenzuron + 2000 + + + Dimethenamid + 2001 + + + Dimethoate + 2002 + + + Dimethomorph + 2003 + + + Dinex + 2004 + + + Dinoseb + 2005 + + + Dioxacarb + 2006 + + + Dioxathion + 2007 + + + Diphenamid + 2008 + + + Diphenylamine + 2009 + + + Diquat + 2010 + + + Disulfoton + 2011 + + + Disulfoton sulfone + 2012 + + + Diuron + 2013 + + + Endosulfan + 2014 + + + Endosulfan sulfate + 2015 + + + Endothall + 2016 + + + Endrin + 2017 + + + Endrin aldehyde + 2018 + + + Endrin ketone + 2019 + + + Esfenvalerate + 2020 + + + Ethalfluralin + 2021 + + + Ethanimidothioic acid, N-hydroxy-, methyl ester + 2022 + + + Ethene, 1,2-dibromo- + 2023 + + + Ethion + 2024 + + + Ethion monooxon + 2025 + + + Ethoprop + 2026 + + + Ethylan + 2027 + + + Ethylene dibromide + 2028 + + + Ethylene thiourea + 2029 + + + Etridiazole + 2030 + + + Etrimfos + 2031 + + + Famphur + 2032 + + + Fenamiphos + 2033 + + + Fenarimol + 2034 + + + Fenitrothion + 2035 + + + Fenpropathrin + 2036 + + + Fensulfothion + 2037 + + + Fenthion + 2038 + + + Fenuron + 2039 + + + Fipronil + 2040 + + + Fluchloralin + 2041 + + + Flufenacet + 2042 + + + Flumetralin + 2043 + + + Flumetsulam + 2044 + + + Fluometuron + 2045 + + + Fonofos + 2047 + + + Formetanate hydrochloride + 2048 + + + Glyphosate + 2049 + + + Halofenozide + 2050 + + + Halosulfuron-methyl + 2051 + + + Heptachlor + 2052 + + + Heptachlor epoxide + 2053 + + + Hexachlorobenzene + 2054 + + + Hexachlorodibenzo-p-dioxin + 2055 + + + Hexazinone + 2056 + + + Imazapyr + 2057 + + + Imazaquin + 2058 + + + Imazethapyr + 2059 + + + Imidacloprid + 2060 + + + Ioxynil + 2061 + + + Iprodione + 2062 + + + Isodrin + 2063 + + + Isofenphos + 2064 + + + Isoprocarb + 2065 + + + Isoxaflutole + 2066 + + + Leptophos + 2067 + + + Lindane + 2068 + + + Linuron + 2069 + + + m-(Trifluoromethyl)aniline + 2070 + + + Malaoxon + 2071 + + + Malathion + 2072 + + + Mancozeb + 2073 + + + Maneb + 2074 + + + MCPB + 2076 + + + Mecoprop + 2077 + + + Merphos + 2078 + + + Metalaxyl + 2079 + + + Methamidophos + 2080 + + + Methanone, bis(4-chlorophenyl)- + 2081 + + + Methidathion + 2082 + + + Methiocarb + 2083 + + + Methomyl + 2084 + + + Methoprene + 2085 + + + Methoxychlor + 2086 + + + Methyl bromide + 2087 + + + Methyl iodide + 2088 + + + Methyl paraoxon + 2089 + + + Methyl parathion + 2090 + + + Metolachlor + 2091 + + + Metolcarb + 2092 + + + Metribuzin + 2093 + + + Mevinphos + 2095 + + + Mexacarbate + 2096 + + + Mirex + 2097 + + + Mobam + 2098 + + + Molinate + 2099 + + + Monocrotophos + 2100 + + + Monolinuron + 2101 + + + Monosodium methanearsonate + 2102 + + + Monuron + 2103 + + + Myclobutanil + 2104 + + + N,N-Diethyl-m-toluamide + 2105 + + + N-2-Ethylhexylbicycloheptenedicarboximide + 2106 + + + Naled + 2107 + + + Napropamide + 2108 + + + Neburon + 2109 + + + Nicosulfuron + 2110 + + + Nitrapyrin + 2111 + + + Norflurazon + 2112 + + + O,O,O-Triethyl phosphorothioate + 2113 + + + o,p'-DDD + 2114 + + + o,p'-DDE + 2115 + + + o,p'-DDT + 2116 + + + o-Cresol + 2117 + + + O-Ethyl O-(p-nitrophenyl) phenylphosphonothioate + 2118 + + + Omethoate + 2119 + + + Oryzalin + 2120 + + + Oxadiazon + 2121 + + + Oxamyl + 2122 + + + Oxychlordane + 2123 + + + Oxydisulfoton + 2124 + + + Oxyfluorfen + 2125 + + + p,p'-DDD + 2126 + + + p,p'-DDE + 2127 + + + Paraoxon + 2129 + + + Paraquat + 2130 + + + Parathion + 2131 + + + p-Chloroaniline + 2132 + + + p-Chloro-m-cresol + 2133 + + + p-Cresol + 2134 + + + p-Dichlorobenzene + 2135 + + + Pebulate + 2136 + + + Pendimethalin + 2137 + + + Pentachlorobenzene + 2138 + + + Pentachloronitrobenzene + 2139 + + + Pentachlorophenol + 2140 + + + Permethrin + 2141 + + + Phenmedipham + 2142 + + + Phenol, 2-(1-methylpropyl)-, methylcarbamate + 2143 + + + Phenol, 2,6-bis(1,1-dimethylethyl)-4-methyl-, methylcarbamate + 2144 + + + Phenol, 2-[(ethylthio)methyl]-, methylcarbamate + 2145 + + + Phenol, 3,4-dimethyl-, methylcarbamate + 2146 + + + Phenol, 3,5-bis(1,1-dimethylethyl)-, methylcarbamate + 2147 + + + Phenol, 3,5-dimethyl-4-(methylsulfinyl)-, methylcarbamate + 2148 + + + Phenol, 3,5-dimethyl-4-(methylsulfonyl)-, methylcarbamate + 2149 + + + Phenothrin + 2150 + + + Phorate + 2151 + + + Phorate sulfone + 2152 + + + Phorate sulfoxide + 2153 + + + Phosmet + 2154 + + + Phosphamidon + 2156 + + + Phosphoric acid, (1Z)-2-chloro-1-(2,4,5-trichlorophenyl)ethenyl dimethyl ester + 2157 + + + Phosphoric acid, diethyl 6-methyl-2-(1-methylethyl)-4-pyrimidinyl ester + 2158 + + + Phosphorothioic acid, O,O'-(sulfinyldi-4,1-phenylene) O,O,O',O'-tetramethyl ester + 2159 + + + Phosphorothioic acid, O-ethyl O-methyl S-propyl ester + 2160 + + + Phosphorothioic acid, O-ethyl S-propyl ester + 2161 + + + Phostebupirim + 2162 + + + Picloram + 2163 + + + Piperonyl butoxide + 2164 + + + p-Nitrophenol + 2165 + + + Primisulfuron-methyl + 2166 + + + Profenofos + 2167 + + + Profluralin + 2168 + + + Promecarb + 2169 + + + Prometon + 2170 + + + Prometryn + 2171 + + + Pronamide + 2172 + + + Propachlor + 2173 + + + Propanal, 2-methyl-2-(methylthio)-, oxime + 2174 + + + Propanil + 2175 + + + Propargite + 2176 + + + Propazine + 2177 + + + Propetamphos + 2178 + + + Propham + 2179 + + + Propiconazole + 2180 + + + Propionic acid + 2181 + + + Propoxur + 2182 + + + Prosulfuron + 2183 + + + Prothiofos + 2184 + + + Pyrazon + 2185 + + + Pyrethrins + 2186 + + + Resmethrin + 2187 + + + Secbumeton + 2189 + + + S-Ethyl dipropylthiocarbamate + 2190 + + + Siduron + 2191 + + + Silvex + 2192 + + + Simazine + 2193 + + + Simetone + 2194 + + + Simetryn + 2195 + + + Sodium methyldithiocarbamate + 2196 + + + Sulfometuron methyl + 2197 + + + Sulfotep + 2198 + + + Sulprofos + 2199 + + + Swep + 2200 + + + Tau-fluvalinate + 2201 + + + Tebuconazole + 2202 + + + Tebuthiuron + 2203 + + + Tefluthrin + 2204 + + + Temephos + 2205 + + + Terbacil + 2206 + + + Terbufos + 2207 + + + Terbufos sulfone + 2208 + + + Terbufos sulfoxide + 2209 + + + Terbuthylazine + 2210 + + + Tetradifon + 2212 + + + Tetraethyl pyrophosphate + 2213 + + + Tetrapropyl dithiopyrophosphate + 2214 + + + Thiabendazole + 2215 + + + Thiacloprid + 2216 + + + Thiazopyr + 2217 + + + Thidiazuron + 2218 + + + Thifensulfuron-methyl + 2219 + + + Thiobencarb + 2220 + + + Thiodicarb + 2221 + + + Thiofanox + 2222 + + + Thionazin + 2223 + + + Thiophanate-methyl + 2224 + + + Toxaphene + 2225 + + + Tralomethrin + 2226 + + + trans-1,3-Dichloropropene + 2227 + + + trans-Chlordane + 2228 + + + trans-Nonachlor + 2229 + + + Transpermethrin + 2230 + + + Triadimefon + 2231 + + + Triallate + 2232 + + + Triasulfuron + 2233 + + + Triazines mixture, unspecified + 2234 + + + Tribenuron-methyl + 2235 + + + Tribufos + 2236 + + + Trichloronate + 2237 + + + Trichlorophenol + 2238 + + + Triclopyr + 2239 + + + Trifluralin + 2241 + + + Triflusulfuron-methyl + 2242 + + + Trimethacarb + 2243 + + + Urea, (4-chlorophenyl)- + 2244 + + + Urea, [3-(trifluoromethyl)phenyl]- + 2245 + + + Urea, N-[5-(ethylsulfonyl)-1,3,4-thiadiazol-2-yl]-N,N'-dimethyl- + 2246 + + + Urea, phenyl- + 2247 + + + Vernolate + 2248 + + + Ziram + 2249 + + + + + + + Inorganic + 2250 + + + Dissolved Gas + 2251 + + + Oxygen, dissolved + 2252 + + + Oxygen, dissolved percent of saturation + 2253 + + + Carbon dioxide + 2254 + + + Chlorine + 2255 + + + Fluorine + 2256 + + + Hydrogen + 2257 + + + Hydrogen sulfide + 2258 + + + Argon + 2259 + + + Krypton + 2260 + + + Xenon + 2261 + + + Nitrogen, gas + 2262 + + + Nitrous oxide + 2263 + + + Sulfur dioxide + 5049 + + + + + Dissolved Solids + 2264 + + + Solids, fixed dissolved + 2265 + + + Solids, total dissolved + 2266 + + + + + Major + 2267 + + + Major, metals + 2268 + + + Calcium + 2269 + + + Magnesium + 2270 + + + Potassium + 2271 + + + Sodium + 2272 + + + Sodium adsorption ratio + 2273 + + + Sodium plus potassium + 2274 + + + Sodium, fraction of cations + 2275 + + + + + Major, non-metals + 2276 + + + Acidity + 2277 + + + Alkalinity + 2278 + + + Bicarbonate + 2279 + + + Bromide + 2280 + + + Chloride + 2281 + + + Chlorine demand + 2282 + + + Fluoride + 2283 + + + Hydrogen ion + 2284 + + + Hydroxide + 2285 + + + Silica + 2286 + + + Sulfate + 2287 + + + Sulfide + 2288 + + + Sulfur + 2289 + + + Thiosulfate + 2290 + + + + + Major, bulk properties + 2291 + + + Oxidation reduction potential + 2292 + + + pH + 2293 + + + Salinity + 2294 + + + Hardness, carbonate + 2295 + + + Hardness, non-carbonate + 2296 + + + Specific conductance + 2297 + + + Hardness, total + 2298 + + + + + + + Minor + 2299 + + + Minor, metals + 2300 + + + Scandium + 2345 + + + Aluminum + 2301 + + + Barium + 2302 + + + Beryllium + 2303 + + + Bismuth + 2304 + + + Cadmium + 2305 + + + Cerium + 2306 + + + Cesium + 2307 + + + Chromium + 2308 + + + Chromium(III) + 2309 + + + Chromium(VI) + 2310 + + + Cobalt + 2311 + + + Copper + 2312 + + + Dysprosium + 2313 + + + Erbium + 2314 + + + Europium + 2315 + + + Iron, ferric + 2316 + + + Iron, ferrous + 2317 + + + Gadolinium + 2318 + + + Gallium + 2319 + + + Gold + 2320 + + + Hafnium + 2321 + + + Holmium + 2322 + + + Indium + 2323 + + + Iridium + 2324 + + + Iron + 2325 + + + Lanthanum + 2326 + + + Lead + 2327 + + + Lithium + 2328 + + + Lutetium + 2329 + + + Manganese + 2330 + + + Mercury + 2331 + + + Molybdenum + 2332 + + + Neodymium + 2333 + + + Nickel + 2334 + + + Niobium + 2335 + + + Osmium + 2336 + + + Palladium + 2337 + + + Platinum + 2338 + + + Praseodymium + 2339 + + + Rhenium + 2340 + + + Rhodium + 2341 + + + Rubidium + 2342 + + + Ruthenium + 2343 + + + Samarium + 2344 + + + Silver + 2346 + + + Strontium + 2347 + + + Tantalum + 2348 + + + Terbium + 2349 + + + Thallium + 2350 + + + Thulium + 2351 + + + Tin + 2352 + + + Titanium + 2353 + + + Tungsten + 2354 + + + Vanadium + 2355 + + + Ytterbium + 2356 + + + Yttrium + 2357 + + + Zinc + 2358 + + + Zirconium + 2359 + + + Uranium + 5020 + + + + + Minor, non-metals + 2360 + + + Iodide + 2372 + + + Antimony + 2361 + + + Arsenic + 2362 + + + Arsenic acid + 2363 + + + Asbestos + 2364 + + + Boron + 2365 + + + Bromine + 2366 + + + Chlorate + 2367 + + + Cyanide + 2368 + + + Cyanides amenable to chlorination (HCN & CN) + 2369 + + + Germanium + 2370 + + + Helium + 2371 + + + Iodine + 2373 + + + Neon + 2374 + + + Perchlorate + 2375 + + + Selenium + 2376 + + + Sulfite (SO3) + 2377 + + + Sulfur hexafluoride + 2378 + + + Tellurium + 2379 + + + Thiocyanate + 2380 + + + + + + + + + Nutrient + 2381 + + + Nitrogen + 2382 + + + Nitrogen, total inorganic + 2395 + + + Ammonia + 2383 + + + Ammonium + 2384 + + + Total ammonia + 2385 + + + Ammonia + 2386 + + + Ammonium ammonia ratio + 2387 + + + + + N, albuminoid + 2388 + + + Nitrogen, nitrate (NO3) + 2389 + + + Nitrogen, nitrite (NO2) + 2390 + + + Nitrogen, nitrite (NO2) + nitrate (NO3) + 2391 + + + Nitrogen, total organic + 2392 + + + Nitrogen, dissolved organic + 2393 + + + Nitrogen, suspended organic + 2394 + + + Nitrogen, dissolved inorganic + 2396 + + + Nitrogen, suspended inorganic + 2397 + + + Nitrogen, total kjeldahl + 2398 + + + Nitrogen, total + 2399 + + + Nitrogen, total dissolved + 2400 + + + Nitrogen, dissolved kjeldahl + 5018 + + + + + Phosphorus + 2401 + + + Hydrolyzable phopshorus + 2402 + + + Hydrolyzable P plus orthophosphate + 2403 + + + Phosphorus, total organic + 2404 + + + Phosphorus, dissolved organic + 2405 + + + Phosphorus, suspended organic + 2406 + + + Phosphorus, total inorganic + 2407 + + + Phosphorus, dissolved inorganic + 2408 + + + Phosphorus, suspended inorganic + 2409 + + + Phosphorus, ortophosphate + 2410 + + + Phosphorus, polyphosphate + 2411 + + + Phosphorus, total + 2412 + + + Phosphorus, total dissolved + 5008 + + + + + Carbon + 2413 + + + Carbon, suspended inorganic + 2421 + + + Carbonate (CO3) + 2414 + + + Carbon, total + 2415 + + + Carbon, total organic + 2416 + + + Carbon, dissolved organic + 2417 + + + Carbon, suspended organic + 2418 + + + Carbon, total inorganic + 2419 + + + Carbon, dissolved inorganic + 2420 + + + Carbon, total dissolved + 2422 + + + Colored dissolved organic matter + 5037 + + + Carbon, total suspended + 5038 + + + + + + + Oxygen Demand + 2423 + + + Chemical oxygen demand + 2424 + + + Biochemical oxygen demand + 2425 + + + Carbonaceous biochemical oxygen demand + 2426 + + + Nitrogenous biochemical oxygen demand + 2427 + + + + + Radiochemical + 2428 + + + Actinium-228 + 2429 + + + Alpha emitting radium isotopes + 2430 + + + Alpha radiation + 2431 + + + Americium-241 + 2432 + + + Antimony-124 + 2433 + + + Antimony-125 + 2434 + + + Barium-140 + 2435 + + + Beryllium-7 + 2436 + + + Beta radiation + 2437 + + + Bismuth-212 + 2438 + + + Bismuth-214 + 2439 + + + Calcium-45 + 2440 + + + Carbon-14 + 2441 + + + Cerium-141 + 2442 + + + Cerium-144 + 2443 + + + Cesium-134 + 2444 + + + Cesium-137 + 2445 + + + Chlorine-36 + 2446 + + + Chromium-51 + 2447 + + + Cobalt-57 + 2448 + + + Cobalt-58 + 2449 + + + Cobalt-60 + 2450 + + + Curium-242 + 2451 + + + Curium-244 + 2452 + + + Europium-152 + 2453 + + + Europium-155 + 2454 + + + Gamma radiation + 2455 + + + Hafnium-175 + 2456 + + + Hafnium-181 + 2457 + + + Iodine-129 + 2458 + + + Iodine-131 + 2459 + + + Iodine-133 + 2460 + + + Iron-59 + 2461 + + + Lanthanum-140 + 2462 + + + Lead-210 + 2463 + + + Lead-212 + 2464 + + + Lead-214 + 2465 + + + Manganese-54 + 2466 + + + Molybdenum-99 + 2467 + + + Neodymium-147 + 2468 + + + Neptunium-239 + 2469 + + + Nickel-63 + 2470 + + + Niobium-95 + 2471 + + + Plutonium-238 + 2472 + + + Plutonium-239 + 2473 + + + Plutonium-239 and Plutonium-240 combined + 2474 + + + Plutonium-241 + 2475 + + + Polonium-210 + 2476 + + + Potassium-40 + 2477 + + + Radium-224 + 2478 + + + Radium-226 + 2479 + + + Radium-228 + 2480 + + + Radon-222 + 2481 + + + Ruthenium-103 + 2482 + + + Ruthenium-106 + 2483 + + + Scandium-46 + 2484 + + + Selenium-75 + 2485 + + + Silver-108 + 2486 + + + Silver-110 + 2487 + + + Sodium-24 + 2488 + + + Strontium Radionuclides + 2489 + + + Strontium-89 + 2490 + + + Strontium-90 + 2491 + + + Strontium-91 + 2492 + + + Sulfur-35 + 2493 + + + Technetium-99 + 2494 + + + Tellurium-132 + 2495 + + + Thallium-208 + 2496 + + + Thorium-228 + 2497 + + + Thorium-230 + 2498 + + + Thorium-232 + 2499 + + + Tritium + 2500 + + + Uranium 238/234 ratio + 2501 + + + Uranium-234 + 2502 + + + Uranium-234 and/or uranium-235 and/or uranium-238 + 2503 + + + Uranium-235 + 2504 + + + Uranium-238 + 2505 + + + Xenon-135 + 2506 + + + Yttrium-91 + 2507 + + + Zinc-65 + 2508 + + + Zirconium/Niobium-95 + 2509 + + + Zirconium-95 + 2510 + + + + + Stable Isotopes + 5001 + + + Carbon-13 + 5002 + + + Deuterium + 5003 + + + Lithium-7 + 5004 + + + Nitrogen-15 + 5005 + + + Oxygen-18 + 5006 + + + Sulfur-34 + 5007 + + + + + + + Biological + 2511 + + + Biological taxa + 2512 + + + Macrophyte species + 4099 + + + Acnida + 4100 + + + Alisma + 4101 + + + Alternanthera + 4102 + + + Ambrosia + 4103 + + + Anacharis (elodea) + 4104 + + + Azolla + 4105 + + + Bacopa + 4106 + + + Boehmaria + 4107 + + + Ceratophyllum + 4108 + + + Ceratophyllum demersum + 4109 + + + Chara + 4110 + + + Chlorophyta + 4111 + + + Cladium jamaicensis + 4112 + + + Cyperus + 4113 + + + Diversity - macrophytes + 4114 + + + Echinodorus + 4115 + + + Egeria densa + 4116 + + + Eichhornia + 4117 + + + Elatine + 4118 + + + Gramineae + 4119 + + + Heteranthera + 4120 + + + Hydrilla verticillata + 4121 + + + Hydrocotyle + 4122 + + + Lemna + 4123 + + + Ludwigia decurrens + 4124 + + + Ludwigia (jussiaea) + 4125 + + + Lythrum + 4126 + + + Macrophytes sampled - none present + 4127 + + + Marsilea + 4128 + + + Mikania scandens + 4129 + + + Myriophyllum + 4130 + + + Myriophyllum brasiliense + 4131 + + + Najas + 4132 + + + Nuphar + 4133 + + + Phragmites communis + 4134 + + + Phyla + 4135 + + + Polygonum + 4136 + + + Potamogeton + 4137 + + + Potamogeton crispus + 4138 + + + Rorippa nasturtium - aquaticum + 4139 + + + Rotala + 4140 + + + Rotala ramosior + 4141 + + + Sabol + 4142 + + + Sagittaria + 4143 + + + Sagittaria falcata + 4144 + + + Sagittaria lancifolia + 4145 + + + Salix + 4146 + + + Sapium sebiferum + 4147 + + + Saururus + 4148 + + + Saururus cernuus + 4149 + + + Scirpus + 4150 + + + Spirodela + 4151 + + + Utricularia + 4152 + + + Zizaniopsis miliacea + 4153 + + + + + Nekton species + 4154 + + + Alligator mississippiensis + 4155 + + + Amphibia + 4156 + + + Arenaeus cribrarius + 4157 + + + Callinectes sapidus + 4158 + + + Callinectes similis + 4159 + + + Cambarus + 4160 + + + Chrysemys scripta + 4161 + + + Decopoda + 4162 + + + Diversity - nekton + 4163 + + + Equitability - nekton + 4164 + + + Lolliguncula + 4165 + + + Lolliguncula (loligo) brevis + 4166 + + + Machrobrachium + 4167 + + + Machrobrachium acanthurus + 4168 + + + Machrobrachium ohione + 4169 + + + Menippe mercenaria + 4170 + + + Mollusca + 4171 + + + Nekton organisms - none present + 4172 + + + Neopanope texana texana + 4173 + + + Paguridae + 4174 + + + Pagurus politus + 4175 + + + Palaemonetes + 4176 + + + Palaemonetes pugio + 4177 + + + Palaemonetes vulgaris + 4178 + + + Penaeus aztecus + 4179 + + + Penaeus duorarum + 4180 + + + Penaeus setiferus + 4181 + + + Pseudemys + 4182 + + + Rana + 4183 + + + Rhithropanopeus harrissii + 4184 + + + Sicyonia dorsalis + 4185 + + + Squilla + 4186 + + + Stomolophus + 4187 + + + Trachemys scripta elegans + 4188 + + + Trachypenaeus spp. + 4189 + + + Xanthidae + 4190 + + + Xiphopeneus kroyeri + 4191 + + + + + Phytoplankton species + 4192 + + + Agmenellum (merismopoedia) + 4200 + + + Amphipleura + 4201 + + + Amphiprora + 4202 + + + Amphiprora alata + 4203 + + + Amphora + 4204 + + + Anabaena + 4205 + + + Anabaena flos-aquae + 4206 + + + Anabaenopsis + 4207 + + + Anacystis cyanea + 4208 + + + Anacystis dimidiata + 4209 + + + Anacystis (microcystis) + 4210 + + + Anisonema + 4211 + + + Ankistrodesmus + 4212 + + + Ankistrodesmus falcatus + 4213 + + + Anomoeoneis + 4214 + + + Aphanizomenon + 4215 + + + Aphanizomenon holsaticum (flos-aquae) + 4216 + + + Arthrospira + 4217 + + + Astrionella + 4218 + + + Asterionella formosa + 4219 + + + Asterionella japonica + 4220 + + + Asterococcus + 4221 + + + Auliscus coelatus + 4222 + + + Bacillariophyceae + 4223 + + + Bacillariophyceae-centric + 4224 + + + Bacillariophyceae-pennate + 4225 + + + Bacteriastrum + 4226 + + + Bacteriastrum delicatulum + 4227 + + + Bacteriastrum varians + 4228 + + + Biddulphia + 4229 + + + Biddulphia aurita + 4230 + + + Biddulphia mobiliensis + 4231 + + + Biddulphia sinensis + 4232 + + + Botrycoccus + 4233 + + + Caloneis + 4234 + + + Caloneis amphisbaena + 4235 + + + Campylodiscus + 4236 + + + Campylodiscus punctulatus + 4237 + + + Capartogramma + 4238 + + + Carteria + 4239 + + + Centronella + 4240 + + + Cerataulina + 4241 + + + Cerataulina pelagica + 4242 + + + Ceratium + 4243 + + + Ceratium cornutum + 4244 + + + Ceratium furca + 4245 + + + Ceratium fusus + 4246 + + + Ceratium hircus + 4247 + + + Ceratium hirundinella + 4248 + + + Ceratium massiliense + 4249 + + + Ceratium pentagonum + 4250 + + + Ceratium pulchellum + 4251 + + + Ceratium tripos + 4252 + + + Chaetoceros + 4253 + + + Chaetoceros affinis + 4254 + + + Chaetoceros atlanticum + 4255 + + + Chaetoceros brevis + 4256 + + + Chaetoceros compressum + 4257 + + + Chaetoceros constrictum + 4258 + + + Chaetoceros costatum + 4259 + + + Chaetoceros curvisetum + 4260 + + + Chaetoceros danicum + 4261 + + + Chaetoceros decipiens + 4262 + + + Chaetoceros densum + 4263 + + + Chaetoceros didymum + 4264 + + + Chaetoceros difficilis + 4265 + + + Chaetoceros diversum + 4266 + + + Chaetoceros gracilis + 4267 + + + Chaetoceros laciniosum + 4268 + + + Chaetoceros lorenzianum + 4269 + + + Chaetoceros orientalis + 4270 + + + Chaetoceros pelagicum + 4271 + + + Chaetoceros peruvianum + 4272 + + + Chaetoceros simplex + 4273 + + + Chaetoceros tortissimus + 4274 + + + Chaetoceros valve + 4275 + + + Chaetoceros varians + 4276 + + + Chaetosphaeridium globosum + 4277 + + + Chlamydomonas + 4278 + + + Chlorella + 4279 + + + Chlorella vulgaris + 4280 + + + Chilorococcum + 4281 + + + Chilorogonium + 4282 + + + Chloromonadophyta + 4283 + + + Chlorophyta + 4284 + + + Chlorophyta - flamentous + 4285 + + + Chlorophyta - unicellular + 4286 + + + Chroococcus + 4287 + + + Chroococcus dispersus + 4288 + + + Chrysococcus + 4289 + + + Chrysophyta + 4290 + + + Cladophora + 4291 + + + Closteridium + 4292 + + + Closteriopsis + 4293 + + + Closteriopsis longissima + 4294 + + + Closterium + 4295 + + + Coccochloris + 4296 + + + Cocconeis + 4297 + + + Coelastrum + 4298 + + + Coelastrum microporum + 4299 + + + Coelastrum reticulatum + 4300 + + + Coelosphaerium + 4301 + + + Corethron + 4302 + + + Corethron criophylum + 4303 + + + Corethron hystrix + 4304 + + + Coscinodiscus + 4305 + + + Coscinodiscus asteromphalus + 4306 + + + Coscinodiscus centralis + 4307 + + + Coscinodiscus concinnis + 4308 + + + Coscinodiscus denarius + 4309 + + + Coscinodiscus excentricus + 4310 + + + Coscinodiscus granii + 4311 + + + Coscinodiscus radiatus + 4312 + + + Coscinodiscus rothii + 4313 + + + Coscinodiscus wailsii + 4314 + + + Cosmarium + 4315 + + + Crucigenia + 4316 + + + Crucigenia quadrata + 4317 + + + Crucigenia tetrapedia + 4318 + + + Cryptochrysis + 4319 + + + Cryptomonas + 4320 + + + Cyanophyta + 4321 + + + Cyclotella + 4322 + + + Cyclotella stelligera + 4323 + + + Cylindrocystis + 4324 + + + Cymatopleura solea + 4325 + + + Cymbella + 4326 + + + Cymbella mexicanum + 4327 + + + Dactylococcopsis + 4328 + + + Desmidium + 4329 + + + Diatoma + 4330 + + + Diatomella + 4331 + + + Dinobryon + 4332 + + + Dinobryon bavaricum + 4333 + + + Dinoflagellata + 4334 + + + Dinophyceae + 4335 + + + Dinophysis caudata + 4336 + + + Diploneis + 4337 + + + Diploneis crabro + 4338 + + + Diploneis smithii + 4339 + + + Ditylum + 4340 + + + Ditylum brightwelli + 4341 + + + Diversity - phytoplankton + 4342 + + + Elakatothrix + 4343 + + + Epithemia + 4344 + + + Epithemia sorex + 4345 + + + Euastrum + 4346 + + + Eucampia + 4347 + + + Eucampia zoodiacus + 4348 + + + Eudorina + 4349 + + + Euglena + 4350 + + + Achnanthes + 4193 + + + Achnanthes coarctata + 4194 + + + Actinastrum + 4195 + + + Actinocyclus + 4196 + + + Actinocyclus ehrenbergii + 4197 + + + Actinoptychus undulatus + 4198 + + + Agmenellum quadruplicatum + 4199 + + + Hemidiscus hardmanianus + 4383 + + + Oscillatoria granulata + 4440 + + + Rhoicosphenia curvata + 4495 + + + Euglenophyta + 4351 + + + Eunotia + 4352 + + + Eupodiscus radiatus + 4353 + + + Eutreptia + 4354 + + + Exuviaella + 4355 + + + Exuviaella baltica + 4356 + + + Fragilaria + 4357 + + + Fragilaria crotonensis + 4358 + + + Frustulia + 4359 + + + Geminella + 4360 + + + Glenodinium + 4361 + + + Glenodinium armatum + 4362 + + + Gloeocapsa + 4363 + + + Gloeocystis + 4364 + + + Golenkinia + 4365 + + + Golenkiniopsis + 4366 + + + Gomphonema + 4367 + + + Gomphosphaeria + 4368 + + + Gonium + 4369 + + + Gonyaulax + 4370 + + + Gonyaulax monilata + 4371 + + + Guinardia + 4372 + + + Guinardia flaccida + 4373 + + + Gymnodinium + 4374 + + + Gyrosigma + 4375 + + + Gyrosigma balticum + 4376 + + + Haematococcus + 4377 + + + Hapalosiphon + 4378 + + + Hemiaulus + 4379 + + + Hemiaulus hauckii + 4380 + + + Hemiaulus membranaceous + 4381 + + + Hemiaulus sinensis + 4382 + + + Hyalotheca + 4384 + + + Hydrodictyon + 4385 + + + Hydrosera + 4386 + + + Hypnodinium + 4387 + + + Keriochlamys + 4388 + + + Kirchneriella + 4389 + + + Lagerheimia quadriseta + 4390 + + + Lagerheimia (chodatella) + 4391 + + + Lauderia + 4392 + + + Lauderia borealis + 4393 + + + Leptocylindricus + 4394 + + + Leptocylindricus danicus + 4395 + + + Licmophora + 4396 + + + Lithodesmium undulatum + 4397 + + + Lyngbya + 4398 + + + Mallomonas + 4399 + + + Mallomonas pseudocoronata + 4400 + + + Melosira + 4401 + + + Melosira crenulata + 4402 + + + Melosira distans + 4403 + + + Melosira granulata + 4404 + + + Melosira herzogii + 4405 + + + Melosira moniliformis + 4406 + + + Melosira numuloides + 4407 + + + Melosira varians + 4408 + + + Meridion + 4409 + + + Merismopedia + 4410 + + + Micractinium + 4411 + + + Micrasterias + 4412 + + + Microspora + 4413 + + + Mougeotia + 4414 + + + Mougeotia scalaris + 4415 + + + Nanochloris + 4416 + + + Navicula + 4417 + + + Nephrocytium + 4418 + + + Nephrocytium limneticum + 4419 + + + Nitzschia + 4420 + + + Nitzschia closterium + 4421 + + + Nitzschia dubia + 4422 + + + Nitzschia holsatica + 4423 + + + Nitzschia hungarica + 4424 + + + Nitzschia longissima + 4425 + + + Nitzschia lorenziana + 4426 + + + Nitzschia palea + 4427 + + + Nitzschia paradoxa + 4428 + + + Nitzschia pungens + 4429 + + + Nitzschia seriata + 4430 + + + Nitzschia sigma + 4431 + + + Nitzschia sigmoidea + 4432 + + + Nodularia + 4433 + + + Nostoc + 4434 + + + Oedogonium + 4435 + + + Oocystis + 4436 + + + Opephora + 4437 + + + Ophiocytium + 4438 + + + Oscillatoria + 4439 + + + Ourococcus + 4441 + + + Oxytoxum + 4442 + + + Palmella + 4443 + + + Palmellococcus + 4444 + + + Pandorina + 4445 + + + Pectodictyon + 4446 + + + Pediastrum + 4447 + + + Pediastrum biradiatum + 4448 + + + Pediastrum boryanum + 4449 + + + Pediastrum duplex + 4450 + + + Pediastrum integrum + 4451 + + + Pediastrum simplex + 4452 + + + Peridinium + 4453 + + + Peridinium claudicans + 4454 + + + Peridinium tuba + 4455 + + + Peridinium venustum + 4456 + + + Phacus + 4457 + + + Phormidium + 4458 + + + Phyllobium + 4459 + + + Phytoconis + 4460 + + + Phytoplankton - unknown organism + 4461 + + + Pinnularia + 4462 + + + Planktosphaeria + 4463 + + + Planktosphaeria gelatinosa + 4464 + + + Platydorina + 4465 + + + Pleurosigma + 4466 + + + Prorocentrum + 4467 + + + Prorocentrum gracile + 4468 + + + Prorocentrum mariae-lebourae + 4469 + + + Prorocentrum maximum + 4470 + + + Protococcus + 4471 + + + Prymnesium parvum + 4472 + + + Pyrobotrys + 4473 + + + Pyrrophyta + 4474 + + + Quadrigula + 4475 + + + Quadrigula chodatii + 4476 + + + Radiofilum + 4477 + + + Rhabdoderma + 4478 + + + Rhizochrysis limnetica + 4479 + + + Rhizosolenia + 4480 + + + Rhizosolenia alata + 4481 + + + Rhizosolenia alata f. indica + 4482 + + + Rhizosolenia bergonii + 4483 + + + Rhizosolenia calcar avis + 4484 + + + Rhizosolenia castracaneis + 4485 + + + Rhizosolenia curvisetum + 4486 + + + Rhizosolenia delicatala + 4487 + + + Rhizosolenia eriensis + 4488 + + + Rhizosolenia imbricata + 4489 + + + Rhizosolenia robusta + 4490 + + + Rhizosolenia setigera + 4491 + + + Rhizosolenia shrubsolei + 4492 + + + Rhizosolenia stolterfothii + 4493 + + + Rhizosolenia styliformis + 4494 + + + Rhopalodia + 4496 + + + Rhopalodia gibba + 4497 + + + Scenedesmus + 4498 + + + Scenedesmus acuminatus + 4499 + + + Scenedesmus armatus + 4500 + + + Scenedesmus bijuga + 4501 + + + Scenedesmus denticulatus + 4502 + + + Scenedesmus dimorphus + 4503 + + + Scenedesmus quadricauda + 4504 + + + Schizomeris leibleinii + 4505 + + + Schroederia + 4506 + + + Scoliopleura + 4507 + + + Scytonema myochrous + 4508 + + + Selenastrum + 4509 + + + Skeletonema + 4510 + + + Skeletonema costatum + 4511 + + + Sphaerocystis + 4512 + + + Spirogyra + 4513 + + + Spirulina + 4514 + + + Spondylosium + 4515 + + + Staurastrum + 4516 + + + Stephanodiscus + 4517 + + + Stephanodiscus astrea + 4518 + + + Stephanopyxis + 4519 + + + Stephanopyxis palmeriana + 4520 + + + Stephanopyxis turris + 4521 + + + Stipitococcus vasiformis + 4522 + + + Striatella + 4523 + + + Surirella + 4524 + + + Surirella fastuoso + 4525 + + + Surirella striatula + 4526 + + + Synedra + 4527 + + + Synedra acus + 4528 + + + Synedra fasciculata + 4529 + + + Synedra superba + 4530 + + + Synedra ulna + 4531 + + + Synura + 4532 + + + Synura uvella + 4533 + + + Tabellaria + 4534 + + + Terpsinoe + 4535 + + + Terpsinoe americana + 4536 + + + Tetradesmus + 4537 + + + Tetraedron + 4538 + + + Tetraedron minimum + 4539 + + + Tetraedron trigonum + 4540 + + + Tetraspora lacustris + 4541 + + + Tetrastrum + 4542 + + + Thalassionema + 4543 + + + Thalassionema nitzchioides + 4544 + + + Thalassiosira + 4545 + + + Thalassiosira aestivalis + 4546 + + + Thalassiosira decipiens + 4547 + + + Thalassiosira gravida + 4548 + + + Thalassiosira rotula + 4549 + + + Thalassiothrix + 4550 + + + Thalassiothrix frauenfeldii + 4551 + + + Thalassiothrix longissima + 4552 + + + Thalassiothrix mediterranea + 4553 + + + Trachelomonas + 4554 + + + Tribonema + 4555 + + + Ulothrix + 4556 + + + Ulothrix cylindricum + 4557 + + + Ulothrix zonata + 4558 + + + Volvox + 4559 + + + Zygnema + 4560 + + + Zygnemopsis + 4561 + + + + + Fish species + 3806 + + + Percina carbonaria + 4046 + + + Percina macrolepida + 4047 + + + Percina maculata + 4048 + + + Percina sciera + 4049 + + + Percina shumardi + 4050 + + + Phenacobius mirabilis + 4051 + + + Pimephales + 4052 + + + Pimephales notatus + 4053 + + + Pimephales promelas + 4054 + + + Pimephales vigilax + 4055 + + + Plecostomus plecostomus + 4056 + + + Poecilia formosa + 4057 + + + Poecilia latipinna + 4058 + + + Pogonias cromis + 4059 + + + Polydactylus octonemus + 4060 + + + Pomatomus saltatrix + 4061 + + + Pomoxis + 4062 + + + Pomoxis annularis + 4063 + + + Pomoxis nigromaculatus + 4064 + + + Porichthys plectrodon + 4065 + + + Porichthys porosissimus + 4066 + + + Prionotus tribulus + 4067 + + + Psopoeodus emiliae + 4068 + + + Pterygoplichthys multiradiatus + 4069 + + + Pylodictis olivaris + 4070 + + + Sarda sarda + 4071 + + + Sciaenidae #/sample + 4072 + + + Sciaenops ocellata + 4073 + + + Scomberomorus maculatus + 4074 + + + Selene vomer + 4075 + + + Semotilus atromaculatus + 4076 + + + Sphoeroides parvus + 4077 + + + Stellifer lanceolatus + 4078 + + + Stizostedion vitreum + 4079 + + + Strongylura marina + 4080 + + + Symphurus plagiusa + 4081 + + + Syngnathidae + 4082 + + + Syngnathus floridae + 4083 + + + Syngnathus louisianae + 4084 + + + Syngnathus scovelli + 4085 + + + Synodus + 4086 + + + Synodus foetens + 4087 + + + Tilapia aurea, blue tilapia + 4088 + + + Tilapia mossambica + 4089 + + + Tilapia zilli + 4090 + + + Trachinotus falcatus + 4091 + + + Trichiurus lepturus + 4092 + + + Trinectes maculatus + 4093 + + + Trogloglanis pattersoni + 4094 + + + Umbrina coroides + 4095 + + + Urophycis floridanus + 4096 + + + Xiphophorus helleri + 4097 + + + Zygonectes notatus + 4098 + + + Fundulus notatus + 3908 + + + Fundulus olivaceus + 3909 + + + Fundulus pulvereus + 3910 + + + Fundulus similis + 3911 + + + Fundulus zebrinus + 3912 + + + Gambusia affinis + 3913 + + + Gambusia gaigei + 3914 + + + Gambusia geiseri + 3915 + + + Gambusia spp. + 3916 + + + Gerreidae + 3917 + + + Gnathagnus egregus + 3918 + + + Gobiesox punctulatus + 3919 + + + Gobiesox strumosus + 3920 + + + Gobiidae + 3921 + + + Gobiodes broussonneti + 3922 + + + Gobionellus boleosoma + 3923 + + + Gobionellus hastatus + 3924 + + + Gobionellus oceanicus + 3925 + + + Gobionellus shufeldti + 3926 + + + Gobiosoma bosci + 3927 + + + Gobiosoma robustum + 3928 + + + Gymnachirus texae + 3929 + + + Harengula jaguana + 3930 + + + Hemicaranx amblyrhynchus + 3931 + + + Heterandria formosa + 3932 + + + Histrio histrio + 3933 + + + Hybognathus hayi + 3934 + + + Hybognathus nuchalis + 3935 + + + Hybognathus placitus + 3936 + + + Hypleurochilus + 3937 + + + Hypostomus plecostomus + 3938 + + + Hypsoblennius + 3939 + + + Hypsoblennius ionthas + 3940 + + + Ichthyomyzon castaneus + 3941 + + + Ichthyomyzon gagei + 3942 + + + Ictaluridae + 3943 + + + Ictalurus + 3944 + + + Ictalurus furcatus + 3945 + + + Ictalurus lupus + 3946 + + + Ictalurus punctatus + 3947 + + + Ictiobus + 3948 + + + Ictiobus bubalus + 3949 + + + Ictiobus cyprinellus + 3950 + + + Ictiobus niger + 3951 + + + Individuals as non-native species + 3952 + + + Labidesthes + 3953 + + + Labidesthes sicculus + 3954 + + + Lagodon rhomboides + 3955 + + + Leiostomus xanthurus + 3956 + + + Lepisosteus + 3957 + + + Lepisosteus oculatus + 3958 + + + lepisosteus osseus + 3959 + + + Lepisosteus platostomus + 3960 + + + Lepisosteus spatula + 3961 + + + Lepomis + 3962 + + + Lepomis auritus + 3963 + + + Lepomis cyanellus + 3964 + + + Lepomis gulosus + 3965 + + + Lepomis humilis + 3966 + + + Lepomis macrochirus + 3967 + + + Lepomis macrochirus x lepomis cyanellus (#/samp) + 3968 + + + Lepomis marginatus + 3969 + + + Lepomis megalotis + 3970 + + + Lepomis microlophus + 3971 + + + Lepomis punctatus + 3972 + + + Lepomis symmetricus + 3973 + + + Lucania parva + 3974 + + + Luxilus chrysocephalus n.chrysocephal + 3975 + + + Lythrurus fumeus notropis fumeus + 3976 + + + Lythrurus umbratilis notropis umbratil + 3977 + + + Macrhybopsis aestivalis h.aestivalis + 3978 + + + Megalops atlanticus + 3979 + + + Membras martinica + 3980 + + + Menidia audens + 3981 + + + Menidia beryllina + 3982 + + + Menidia peninsulae + 3983 + + + Menticirrhus americanus + 3984 + + + Menticirrhus littoralis + 3985 + + + Microgobius gulosus + 3986 + + + Microgobius thalassinus + 3987 + + + Micropogon + 3988 + + + Micropogon undulatus + 3989 + + + Micropogonias undulatus + 3990 + + + Micropterus + 3991 + + + Micropterus dolomieu m. dolomieui + 3992 + + + Micropterus punctulatus + 3993 + + + Micropterus salmoides + 3994 + + + Micropterus treculi + 3995 + + + Minytrema melanops + 3996 + + + Morone chrysops + 3997 + + + Morone mississippiensis + 3998 + + + Morone saxatilis + 3999 + + + Morone saxatilis x m. chrysops hybrid #/sample + 4000 + + + Moxostoma congestum + 4001 + + + Moxostoma erythurum + 4002 + + + Achirus lineatus + 3807 + + + Adinia xenica + 3808 + + + Alosa chrysochloris + 3809 + + + Ambloplites rupestris + 3810 + + + Ameiurus melas ictaluarus melas + 3811 + + + Ameiurus natalis ictaluarus natalis + 3812 + + + Amia calva + 3813 + + + Ammocrypta clara + 3814 + + + Moxostoma poecilurum + 4003 + + + Mugil + 4004 + + + Mugil cephalus + 4005 + + + Mugil curema + 4006 + + + Myrophis punctatus + 4007 + + + Mystriophis punctifer + 4008 + + + Notemigonus crysoleucas + 4009 + + + Notropis + 4010 + + + Notropis amabilis + 4011 + + + Notropis amnis + 4012 + + + Notropis antherinoides + 4013 + + + Notropis atrocaudalis + 4014 + + + Notropis bairdi + 4015 + + + Notropis blennius + 4016 + + + Notropis braytoni + 4017 + + + Notropis buccula + 4018 + + + Notropis buchanani + 4019 + + + Notropis chalybaeus + 4020 + + + Notropis cornutus + 4021 + + + Notropis oxyrhyncus + 4022 + + + Notropis proserpinus + 4023 + + + Notropis sabinae + 4024 + + + Notropis shumardi + 4025 + + + Notropis stramineus + 4026 + + + Notropis texanus + 4027 + + + Notropis volucellis + 4028 + + + Noturus gyrinus + 4029 + + + Noturus nocturnus + 4030 + + + Oligoplites saurus + 4031 + + + Oncorhynchus mykiss salmo gairdneri + 4032 + + + Ophichthus gomesi + 4033 + + + Opisthonema oglinum + 4034 + + + Opsanus beta + 4035 + + + Opsopoeodus emiliae notropis emiliae + 4036 + + + Orthopristis chrysopterus + 4037 + + + Osteichthyes + 4038 + + + Paralichthys lethostigma + 4039 + + + Parexocoetus brachypterus + 4040 + + + Peprilus alepidotus + 4041 + + + Peprilus burti + 4042 + + + Peprilus paru + 4043 + + + Perca flavescens + 4044 + + + Percina caprodes + 4045 + + + Ammocrypta vivax + 3815 + + + Anchoa hepsetus + 3816 + + + Anchoa mitchilli + 3817 + + + Anguilla rostrata + 3818 + + + Anguilliformes + 3819 + + + Aphredoderus sayanus + 3820 + + + Aplodinotus grunniens + 3821 + + + Archosargus probatocephalus + 3822 + + + Arius felis + 3823 + + + Astroscopus y-graecum + 3824 + + + Astyanax mexicanus + 3825 + + + Atherinidae + 3826 + + + Bagre marinus + 3827 + + + Bairdiella chrysura + 3828 + + + Bascanichthys scuticaris + 3829 + + + Bothidae + 3830 + + + Brevoortia + 3831 + + + Brevoortia gunteri + 3832 + + + Brevoortia patronus + 3833 + + + Campostoma + 3834 + + + Campostoma anomalum + 3835 + + + Campostoma ornatum + 3836 + + + Caranx hippos + 3837 + + + Carassius auratus + 3838 + + + Carcharhinus leucas + 3839 + + + Carcharhinus limbatus + 3840 + + + Carpiodes + 3841 + + + Carpiodes carpio + 3842 + + + Centrarchus macropterus + 3843 + + + Centropomus undecimalis + 3844 + + + Centropristes philadelphicus + 3845 + + + Chaenobryttus gulosus + 3846 + + + Chaetodipterus faber + 3847 + + + Chasmodes bosquianus + 3848 + + + Chloroscombrus chrysurus + 3849 + + + Cichlasoma cyanoguttatum + 3850 + + + Cichlidae + 3851 + + + Citharichthys macrops + 3852 + + + Citharichthys spilopterus + 3853 + + + Clupeidae + 3854 + + + Ctenopharyhgodon idellus + 3855 + + + Cycleptus + 3856 + + + Cycleptus elongatus + 3857 + + + Cynoscion arenarius + 3858 + + + Cynoscion nebulosus + 3859 + + + Cynoscion nothus + 3860 + + + Cyprinella lutrensis notropis lutrensi + 3861 + + + Cyprinella venustus notropis venustus + 3862 + + + Cyprinidae + 3863 + + + Cyprinodon + 3864 + + + Cyprinodon exemius + 3865 + + + Cyprinodon rubrofluviatilis + 3866 + + + Cyprinodon spp. + 3867 + + + Cyprinodon variegatus + 3868 + + + Cyprinus carpio + 3869 + + + Dasyatis americana + 3870 + + + Dasyatis sabina + 3871 + + + Dionda + 3872 + + + Dionda episcola + 3873 + + + Dormitator maculatus + 3874 + + + Dorosoma + 3875 + + + Dorosoma cepedianum + 3876 + + + Dorosoma petenense + 3877 + + + Elassoma zonatum + 3878 + + + Eleotris pisonis + 3879 + + + Elops saurus + 3880 + + + Erimyzon oblongus + 3881 + + + Erimyzon succetta + 3882 + + + Esox americanus + 3883 + + + Esox niger + 3884 + + + Etheostoma + 3885 + + + Etheostoma asprigene + 3886 + + + Etheostoma chlorosomum + 3887 + + + Etheostoma fusiforme + 3888 + + + Etheostoma gracile + 3889 + + + Etheostoma grahmi + 3890 + + + Etheostoma histrio + 3891 + + + Etheostoma lepidum + 3892 + + + Etheostoma parvipinne + 3893 + + + Etheostoma proeliare + 3894 + + + Etheostoma radiosum + 3895 + + + Etheostoma spectabile + 3896 + + + Etheostoma whipplei + 3897 + + + Etropus crossotus + 3898 + + + Eucinostomus + 3899 + + + Eucinostomus argenteus + 3900 + + + Eucinostomus lefroyi + 3901 + + + Fundulus + 3902 + + + Fundulus blairae + 3903 + + + Fundulus chrysotus + 3904 + + + Fundulus grandis + 3905 + + + Fundulus jenkinsi + 3906 + + + Fundulus kansae + 3907 + + + + + Benthic species + 2513 + + + Traverella presidiana + 3758 + + + Trepobates + 3759 + + + Triaenodes + 3760 + + + Triaenodes injustus + 3761 + + + Tribelos + 3762 + + + Trichocladius + 3763 + + + Trichocorixa + 3764 + + + Trichoptera + 3765 + + + Tricorythidae + 3766 + + + Tricorythodes + 3767 + + + Tricorythodes albilineatus + 3768 + + + Tricorythodes albilineatus sp b + 3769 + + + Tricorythodes curvatus + 3770 + + + Trissocladius + 3771 + + + Tritigonia agassiz + 3772 + + + Tropicorbis + 3773 + + + Tropisternus + 3774 + + + Tropisternus lateralis + 3775 + + + Truncilla + 3776 + + + Tubifera (eristalis) + 3777 + + + Tubifex + 3778 + + + Tubificidae + 3779 + + + Tubulanus pellucidus + 3780 + + + Turbellaria + 3781 + + + Turbonilla + 3782 + + + Turbonilla hemphilli + 3783 + + + Turbonilla interrupta + 3784 + + + Unio + 3785 + + + Uniomerus + 3786 + + + Unionidae + 3787 + + + Uvarus + 3788 + + + Valvatidae + 3789 + + + Velia + 3790 + + + Vellidae + 3791 + + + Vioscalba loiuisianae + 3792 + + + Vitrinellidae + 3793 + + + Viviparidae + 3794 + + + Viviparus + 3795 + + + Websterinereis tridentata + 3796 + + + Wormaldia + 3797 + + + Xenochironomus + 3798 + + + Xenochironomus xenolabis + 3799 + + + Xiphocentron + 3800 + + + Zaitzevia + 3801 + + + Zalutschia + 3802 + + + Zavrelia + 3803 + + + Zealeuctra + 3804 + + + Zygoptera + 3805 + + + Psychomyiidae + 3594 + + + Pteronarcys + 3595 + + + Ptilostomis + 3596 + + + Pugesiatigrina + 3597 + + + Pycnogonid + 3598 + + + Pycnopsyche + 3599 + + + Pyralidae + 3600 + + + Pyramidella crenulata + 3601 + + + Pyrgophorus spinosus + 3602 + + + Ranatra + 3603 + + + Rangia + 3604 + + + Rangia cuneata + 3605 + + + Rangia flexuosa + 3606 + + + Redundancy - benthos + 3607 + + + Retusa canaliculata + 3608 + + + Rhagionidae + 3609 + + + Rhagovelia + 3610 + + + Rhantus + 3611 + + + Rheocricotopus + 3612 + + + Rheocricotopus fuscipes + 3613 + + + Rheotanytarsus + 3614 + + + Rheotanytarsus exiguus + 3615 + + + Rheumatobates + 3616 + + + Rhithrogena + 3617 + + + Rhithropanopeus harrisii + 3618 + + + Rhyacodrilus + 3619 + + + Rhyacophila + 3620 + + + Rhyacophilidae + 3621 + + + Rhynchocoela (nemertea) + 3622 + + + Rictaxis punctostriatus + 3623 + + + Sabella + 3624 + + + Sabella melanostigma + 3625 + + + Sabella microphthalma + 3626 + + + Sabellidae + 3627 + + + Saldidae + 3628 + + + Saldula + 3629 + + + Scatella + 3630 + + + Schistomeringos + 3631 + + + Schistomeringos rudolphi + 3632 + + + Sciomyzidae (tetanoceridae) + 3633 + + + Scirtes + 3634 + + + Scolelepis squamata + 3635 + + + Scolelepis texana + 3636 + + + Scoloplos + 3637 + + + Seila adamsi + 3638 + + + Semele proficua + 3639 + + + Serpulidae + 3640 + + + Sialis + 3641 + + + Sialodea (megaloptera) + 3642 + + + Sigambra bassi + 3643 + + + Sigambra tentaculata + 3644 + + + Simuliidae + 3645 + + + Simulium + 3646 + + + Simulium bivittatum + 3647 + + + Simulium venustum + 3648 + + + Simulium vittatum + 3649 + + + Siphlonuridae + 3650 + + + Siphilonurinae + 3651 + + + Siphlonurus + 3652 + + + Sipuncula + 3653 + + + Slavina appendiculata + 3654 + + + Smicridea + 3655 + + + Smittia + 3656 + + + Somatochlora + 3657 + + + Spanglerogyrus + 3658 + + + Sparganophilus tamesis + 3659 + + + Sperchon + 3660 + + + Sperchon texana + 3661 + + + Sphaeriidae + 3662 + + + Sphaerium + 3663 + + + Sphaerium striatinum + 3664 + + + Sphaerium transversum + 3665 + + + Sphaeromidae + 3666 + + + Spiochaetopterus oculatus + 3667 + + + Spionidae + 3668 + + + Spiophanes + 3669 + + + Spiophanes bombyx + 3670 + + + Squilla + 3671 + + + Stactobiella (tascobia) + 3672 + + + Staphylinidae + 3673 + + + Stelechomyia perpulchra + 3674 + + + Stenacron + 3675 + + + Stenelmis + 3676 + + + Stenelmis cheryl (formerly s.bicarinata) + 3677 + + + Stenelmis crenata + 3678 + + + Stenelmis decorata + 3679 + + + Stenelmis new species + 3680 + + + Stenelmis occidentalis (was s. mexicana) + 3681 + + + Stenochironomus + 3682 + + + Stenonema + 3683 + + + Stenonema femoratum + 3684 + + + Stenothoe minuta + 3685 + + + Stenus + 3686 + + + Sthenelais + 3687 + + + Stictochironomus + 3688 + + + Stilobezzia + 3689 + + + Stratiomyia + 3690 + + + Stratiomyidae + 3691 + + + Stratiomys + 3692 + + + Streblospio + 3693 + + + Streblospio benedicti + 3694 + + + Strophitus + 3695 + + + Stylochus ellipticus + 3696 + + + Stylogomphus + 3697 + + + Stylurus + 3698 + + + Suphisellus bicolor + 3699 + + + Suragina + 3700 + + + Paraonis gracilis + 3431 + + + Paraplea + 3432 + + + Parapoynx + 3433 + + + Paraprionospio pinnata + 3434 + + + Parapsyche + 3435 + + + Paratendipes nudisquama + 3436 + + + Paravelia + 3437 + + + Parthenopidae + 3438 + + + Pectinaria gouldi + 3439 + + + Pedicia + 3440 + + + Pedomoecus + 3441 + + + Pelecypoda + 3442 + + + Pelocoris + 3443 + + + Pelonomus + 3444 + + + Peloscolex + 3445 + + + Peloscolex gabriellae + 3446 + + + Peltodytes + 3447 + + + Peltoperla + 3448 + + + Penaeidae + 3449 + + + Penaeus + 3450 + + + Penaeus aztecus + 3451 + + + Penaeus setiferus + 3452 + + + Pentaneura + 3453 + + + Pentaneurini + 3454 + + + Pericoma + 3455 + + + Periploma + 3456 + + + Periploma inequale + 3457 + + + Periploma margaritaceum + 3458 + + + Periploma orbiculare + 3459 + + + Perithemis + 3460 + + + Perithemis domitia + 3461 + + + Perlesta + 3462 + + + Perlesta placida + 3463 + + + Perlidae + 3464 + + + Perlinella + 3465 + + + Perlodidae + 3466 + + + Petricola pholadiformis + 3467 + + + Petrophila + 3468 + + + Phaenopsectra + 3469 + + + Phanocerus + 3470 + + + Phascolion strombi + 3471 + + + Philopotamidae + 3472 + + + Pholas camphechiensis + 3473 + + + Syllidae + 3701 + + + Syllis cornuta + 3702 + + + Sympetrum + 3703 + + + Sympleustes glaber + 3704 + + + Syndiamesa + 3705 + + + Syrphidae + 3706 + + + Tabanidae + 3707 + + + Tabanus + 3708 + + + Tachopteryx thoreyi + 3709 + + + Taeniopterygidae + 3710 + + + Taeniopteryx + 3711 + + + Tagelus divisus + 3712 + + + Talitridae + 3713 + + + Tanaidacea + 3714 + + + Tanypodinae + 3715 + + + Tanypus + 3716 + + + Tanypus neopunctipennis + 3717 + + + Tanytarsini + 3718 + + + Tanytarsus + 3719 + + + Tanytarsus glabrescens + 3720 + + + Taphromysis bowmanii + 3721 + + + Taphromysis louisianae + 3722 + + + Tardigrada + 3723 + + + Tauriphila + 3724 + + + Teinostoma biscaynense + 3725 + + + Telebasis + 3726 + + + Tellina + 3727 + + + Tellina texana + 3728 + + + Tellina versicolor + 3729 + + + Tellinidae + 3730 + + + Telopelopia + 3731 + + + Telopelopia okaboji + 3732 + + + Tenagobia + 3733 + + + Terebella rubra + 3734 + + + Terebellidae + 3735 + + + Tetanocera + 3736 + + + Tetragoneuria + 3737 + + + Texadina baretti + 3738 + + + Texadina sphinctostoma + 3739 + + + Thalassema + 3740 + + + Tharyx + 3741 + + + Tharyx marioni + 3742 + + + Tharyx setigera + 3743 + + + Thaumaleidae + 3744 + + + Thermonectus + 3745 + + + Thiara (melanoides) tuberculata + 3746 + + + Thienemanniella + 3747 + + + Thienemannimyia + 3748 + + + Thoracica + 3749 + + + Thraulodes + 3750 + + + Thraulodes gonzalesi + 3751 + + + Throscinus + 3752 + + + Thyas + 3753 + + + Tipula + 3754 + + + Tipulidae + 3755 + + + Torrenticola + 3756 + + + Traverella + 3757 + + + Phoronis architecta + 3474 + + + Phoxocephalidae + 3475 + + + Phryganea + 3476 + + + Phyllodoce arenae + 3477 + + + Phyllodocidae + 3478 + + + Phyllogomphoides + 3479 + + + Phyllogomphoides allbrighti + 3480 + + + Phyllogomphoidea stigmatus + 3481 + + + Phylloicus ornatus + 3482 + + + Phylocentropus + 3483 + + + Physella + 3484 + + + Physella virgata + 3485 + + + Physidae + 3486 + + + Pilargidae + 3487 + + + Pilargis + 3488 + + + Pilargis berkeleyae + 3489 + + + Pinnixa + 3490 + + + Pinnixa chaetopterana + 3491 + + + Pinnixa cristata + 3492 + + + Pinnixa sayana + 3493 + + + Pinnotheres ostreum + 3494 + + + Piscicolidae + 3495 + + + Pisidium + 3496 + + + Pisidium casertanum + 3497 + + + Pista + 3498 + + + Pista cristata + 3499 + + + Pista palmata + 3500 + + + Placobdella + 3501 + + + Placobdella ornata + 3502 + + + Placobdella parasitica + 3503 + + + Planaria + 3504 + + + Planariidae + 3505 + + + Planorbella + 3506 + + + Planorbidae + 3507 + + + Planorbula + 3508 + + + Plathemis + 3509 + + + Platyhelminthes + 3510 + + + Plauditus + 3511 + + + Plecoptera + 3512 + + + Plesiopora + 3513 + + + Pleurocera + 3514 + + + Pleuroceridae + 3515 + + + Podonominae + 3516 + + + Polinices duplicatus + 3517 + + + Polycentropodidae + 3518 + + + Polycentropus + 3519 + + + Polychaeta + 3520 + + + Polydora + 3521 + + + Polydora aggregata + 3522 + + + Polydora caulleryi + 3523 + + + Polydora ciliata + 3524 + + + Polydora ligni + 3525 + + + Polydora quadrilobata + 3526 + + + Polydora socialis + 3527 + + + Polydora websteri + 3528 + + + Polymeda + 3529 + + + Polymesoda caroliniana + 3530 + + + Polynoidae + 3531 + + + Polypedilum + 3532 + + + Polypedilum digitifer + 3533 + + + Polypedilum flavum + 3534 + + + Polypedilum halterale + 3535 + + + Polypedilum illinoense + 3536 + + + Polypedilum ontario + 3537 + + + Polyplectropus + 3538 + + + Pomatiopsis + 3539 + + + Pomatoceros + 3540 + + + Pomatoceros americanus + 3541 + + + Portunidae + 3542 + + + Potamanthus + 3543 + + + Potamilla reniformis + 3544 + + + Potamothrix + 3545 + + + Potamothrix vejdovsky + 3546 + + + Potamyia + 3547 + + + Potthastia + 3548 + + + Prionospio + 3549 + + + Prionospio cirrifera + 3550 + + + Prionospio heterobranchia + 3551 + + + Prionospio pygmdea + 3552 + + + Pristina + 3553 + + + Pristina americana + 3554 + + + Pristina idrensis + 3555 + + + Pristina leidyi + 3556 + + + Pristina osborni + 3557 + + + Pristina sima + 3558 + + + Pristina synclites + 3559 + + + Probezzia + 3560 + + + Procambarus + 3561 + + + Procambarus clarki + 3562 + + + Procambarus dupratzi + 3563 + + + Procladius + 3564 + + + Procladius (holotanypus) + 3565 + + + Procloeon distinctum + 3566 + + + Procloeon rufostrigatum + 3567 + + + Procloeon, genus of mayfly + 3568 + + + Prodiamesa + 3569 + + + Progomphus + 3570 + + + Progomphus borealis + 3571 + + + Promoresia + 3572 + + + Pronoterus + 3573 + + + Mogula manhattensis + 3261 + + + Mollusca + 3262 + + + Monoculodes + 3263 + + + Monoculodes edwardsi + 3264 + + + Monopylephorus + 3265 + + + Montacuta texasiana + 3266 + + + Mooreobdella microstoma + 3267 + + + Morphocorixa + 3268 + + + Mulinia + 3269 + + + Mulinia lateralis + 3270 + + + Munroessa + 3271 + + + Musculium + 3272 + + + Myrmicinae + 3273 + + + Mysella + 3274 + + + Mysella planulata + 3275 + + + Mysidacea + 3276 + + + Mysidae + 3277 + + + Mysidopsis bahia + 3278 + + + Mysidopsis bigelowi + 3279 + + + Mysidopsis furca + 3280 + + + Mystacides + 3281 + + + Mytilidae + 3282 + + + Mytilis edulis + 3283 + + + Mytilopsis leucophaeta + 3284 + + + Myxosargus + 3285 + + + Myzobdella moorei + 3286 + + + Naididae + 3287 + + + Nadium + 3288 + + + Nais + 3289 + + + Nais communis + 3290 + + + Nais elinguis + 3291 + + + Nais pardalis + 3292 + + + Nais variabilis + 3293 + + + Nanocladius + 3294 + + + Narpus + 3295 + + + Nasiaeschna + 3296 + + + Nasiaeschna pentacantha + 3297 + + + Nassarius + 3298 + + + Nassarius acutus + 3299 + + + Nassarius vibex + 3300 + + + Natica canrema + 3301 + + + Naucoridae + 3302 + + + Neanthes + 3303 + + + Neanthes acuminata + 3304 + + + Neanthes micromma + 3305 + + + Neanthes succinea + 3306 + + + Nebrioporus + 3307 + + + Nectopsyche + 3308 + + + Nectopsyche gracilis + 3309 + + + Nehalennia + 3310 + + + Nemata (Nematoda) + 3311 + + + Nematomorpha (Gordiida) + 3312 + + + Nemertea + 3313 + + + Nemotelus + 3314 + + + Neobidessus + 3315 + + + Neochoroterpes + 3316 + + + Neoclypeodytes + 3317 + + + Neocorixa + 3318 + + + Neoelmis + 3319 + + + Neoelmis caesa + 3320 + + + Neoephemera + 3321 + + + Neogerris + 3322 + + + Neopanope Texana + 3323 + + + Neoperla + 3324 + + + Neoplea + 3325 + + + Neoplea striola + 3326 + + + Neoscatella + 3327 + + + Neotrichia + 3328 + + + Nepa + 3329 + + + Nephtys incisa + 3330 + + + Nepidae + 3331 + + + Nereidae + 3332 + + + Nereis + 3333 + + + Nereis falsa + 3334 + + + Nereis lamellosa + 3335 + + + Nereis pelagica + 3336 + + + Nereis riisei + 3337 + + + Neritidae + 3338 + + + Nerthra + 3339 + + + Neureclipsis + 3340 + + + Prostoma graecens + 3574 + + + Prostoma rubrum + 3575 + + + Protoptila + 3576 + + + Psectrocladius + 3577 + + + Psectrotanypus + 3578 + + + Psephenidae + 3579 + + + Psephenus + 3580 + + + Psephenus texanus + 3581 + + + Pseudesuccinea columella + 3582 + + + Pseudeurythoe ambigua + 3583 + + + Pseudocentroptiloides + 3584 + + + Pseudochironomus + 3585 + + + Pseudocloeon + 3586 + + + Pseudocloeon propinquum + 3587 + + + Pseudoleon + 3588 + + + Pseudolimnophila + 3589 + + + Pseudorthocladius + 3590 + + + Psychoda + 3591 + + + Psychodidae + 3592 + + + Psychomyia + 3593 + + + Hydroporus + 3094 + + + Hydropsyche + 3095 + + + Hydropsyche unid. sp. a + 3096 + + + Hydropsychidae + 3097 + + + Hydroptila + 3098 + + + Hydroptilidae + 3099 + + + Hydroscaphidae + 3100 + + + Hydrovatus + 3101 + + + Hydrozetes + 3102 + + + Hydrozoa + 3103 + + + Neurocordulia + 3341 + + + Neuroptera + 3342 + + + Nilotanypus + 3343 + + + Noctuidae + 3344 + + + Noteridae + 3345 + + + Notomastus lobatus + 3346 + + + Notonecta + 3347 + + + Notonectidae + 3348 + + + Nuculana acuta + 3349 + + + Nuculana concentrica + 3350 + + + Nudibranchia + 3351 + + + Nyctiophylax + 3352 + + + Nymphula + 3353 + + + Ochrotrichia + 3354 + + + Octogomphus + 3355 + + + Odonata + 3356 + + + Odontoceridae + 3357 + + + Odontomyia + 3358 + + + Odostomia + 3359 + + + Odostomia gibossa + 3360 + + + Odostomia impressa + 3361 + + + Odostomia laevigata + 3362 + + + Oecetis + 3363 + + + Oecetis avara + 3364 + + + Oecetis cincerascens + 3365 + + + Oecetis eddlestoni + 3366 + + + Oecetis unid. sp. c + 3367 + + + Ogyrides alphaerostris + 3368 + + + Oligochaeta + 3369 + + + Oligoneuriidae + 3370 + + + Onuphidae + 3371 + + + Onuphis eremita + 3372 + + + Onuphis magna + 3373 + + + Opheliidae + 3374 + + + Ophidonais serpentina + 3375 + + + Ophiogomphus + 3376 + + + Ophiuroidea + 3377 + + + Orbiniidae + 3378 + + + Orconectes + 3379 + + + Ordobrevia + 3380 + + + Oreianthus + 3381 + + + Oreodytes + 3382 + + + Ormosia + 3383 + + + Orthemis + 3384 + + + Orthemis ferruginea + 3385 + + + Orthocladiinae + 3386 + + + Orthocladius + 3387 + + + Orthocladius dentifer + 3388 + + + Orthocladius sobrinus + 3389 + + + Orthopodomyia + 3390 + + + Orthotrichia + 3391 + + + Ostracoda + 3392 + + + Owenia + 3393 + + + Owenia fusiformis + 3394 + + + Oxyethira + 3395 + + + Oxyurostylis smithi + 3396 + + + Pachydiplax + 3397 + + + Palaemonetes + 3398 + + + Palaemonetes intermedius + 3399 + + + Palaemonetes kadiakensis + 3400 + + + Palaemonetes pugia + 3401 + + + Palaemonidae + 3402 + + + Paleanotus heteroseta + 3403 + + + Palingeniidae + 3404 + + + Palpomyia + 3405 + + + Palpomyia tibialis + 3406 + + + Paludestrina + 3407 + + + Pandora trilineata + 3408 + + + Panopeus + 3409 + + + Parachironomus + 3410 + + + Paracladopelma + 3411 + + + Paracloeodes + 3412 + + + Paracymus + 3413 + + + Paracymus subcuprens + 3414 + + + Paraeurythoe americana + 3415 + + + Paragnetina + 3416 + + + Paragyractis + 3417 + + + Paragyractis truckedlis + 3418 + + + Paralauterborniella + 3419 + + + Paraleptophlebia + 3420 + + + Parametriocnemus + 3421 + + + Paramphinome + 3422 + + + Paramphinome sp. b + 3423 + + + Paranais literalis + 3424 + + + Parandalia + 3425 + + + Parandalia americana + 3426 + + + Parandalia fauveli + 3427 + + + Parandalia ocularis + 3428 + + + Paranthus rapiformis + 3429 + + + Paraonidae + 3430 + + + Hydryphantes + 3104 + + + Hygrotus + 3105 + + + Hymenoptara + 3106 + + + Hyponeura + 3107 + + + Hyponeura lucens + 3108 + + + Ilybius + 3109 + + + Ilyodrilus templetoni + 3110 + + + Insecta + 3111 + + + Ischadium recurvum + 3112 + + + Ischnura + 3113 + + + Isogenus (Hydroperla) + 3114 + + + Isonychia + 3115 + + + Isonychia sicca + 3116 + + + Isonychia sicca manca + 3117 + + + Isoperla + 3118 + + + Isopoda + 3119 + + + Isotomidae + 3120 + + + Ithytrichia + 3121 + + + Kiefferulus + 3122 + + + Kurtziella + 3123 + + + Labiobaetis + 3124 + + + Laccobius + 3125 + + + Laccophilus terminalis + 3126 + + + Laeonereis culveri + 3127 + + + Lampsilis + 3128 + + + Lampyridae + 3129 + + + Lauterborniella + 3130 + + + Leitoscoloplos + 3131 + + + Leitoscoloplos foliosus + 3132 + + + Leitoscoloplos fragilis + 3133 + + + Lembos smithi + 3134 + + + Lepidonotus sublevis + 3135 + + + Lepidoptera + 3136 + + + Leptocella + 3137 + + + Leptoceridae + 3138 + + + Leptocerus + 3139 + + + Leptochela serratorbita + 3140 + + + Leptoconops + 3141 + + + Leptohyphes + 3142 + + + Leptohyphes packeri + 3143 + + + Leptohyphes vescus + 3144 + + + Leptophlebia + 3145 + + + Leptophlebiidae + 3146 + + + Lestes + 3147 + + + Lestidae + 3148 + + + Lethocerus + 3149 + + + Leucon americanus + 3150 + + + Leucotricha + 3151 + + + Leucrocuta + 3152 + + + Levinsenia + 3153 + + + Libellula + 3154 + + + Libellulidae + 3155 + + + Limnephilidae + 3156 + + + Limnephilus + 3157 + + + Limnochares + 3158 + + + Limnocoris + 3159 + + + Limnocoris lutzi + 3160 + + + Limnocythere + 3161 + + + Limnodrilus + 3162 + + + Limnodrilus cervix + 3163 + + + Limnodrilus hoffmeisteri + 3164 + + + Limnodrilus udekemianus + 3165 + + + Limnophila + 3166 + + + Limnophora + 3167 + + + Limnophora aequifrons + 3168 + + + Limnoporus + 3169 + + + Limonia + 3170 + + + Lineus pallidus + 3171 + + + Liodessus + 3172 + + + Lipogomphus + 3173 + + + Lirceus + 3174 + + + Lispe + 3175 + + + Listriella + 3176 + + + Listriella barnardi + 3177 + + + Listriella clymenellae + 3178 + + + Littoridina + 3179 + + + Loimia + 3180 + + + Lumbricidae + 3181 + + + Lumbridulidae + 3182 + + + Lumbrineridae + 3183 + + + Lumbrineris + 3184 + + + Lumbrineris parvipedata + 3185 + + + Lumbrineris tenuis + 3186 + + + Lumbrineris verilli + 3187 + + + Lutrochus + 3188 + + + Lutrochus luteus + 3189 + + + Lymnaea + 3190 + + + Lymnaeidae + 3191 + + + Lynceus + 3192 + + + Lyonsia hyalina + 3193 + + + Lype + 3194 + + + Lysidice ninetta + 3195 + + + Macoma + 3196 + + + Macoma constricta + 3197 + + + Macoma mitchelli + 3198 + + + Macrelmis (formerly elsianus) + 3199 + + + Macrelmis texana (formerly elsianus texanus) + 3200 + + + Macrobrachium + 3201 + + + Macrobrachium carcinus + 3202 + + + Macromia + 3203 + + + Macromiidae + 3204 + + + Macronychus + 3205 + + + Macronychus glabratus + 3206 + + + Macrostemum + 3207 + + + Macrostomidae + 3208 + + + Macrothemis + 3209 + + + Macrovelia + 3210 + + + Magelona + 3211 + + + Magelona pettiboneae + 3212 + + + Magelona phyllisae + 3213 + + + Magelona rosea + 3214 + + + Magelona sp. 1 + 3215 + + + Maldane sarsi + 3216 + + + Maldanidae + 3217 + + + Malmgreniella + 3218 + + + Malmgreniella sp. a + 3219 + + + Mangelia plicosa + 3220 + + + Margaritifera + 3221 + + + Margaritiferidae + 3222 + + + Marilia + 3223 + + + Marilia flexuosa + 3224 + + + Marphysa + 3225 + + + Mayatrichia + 3226 + + + Mayatrichia ponta + 3227 + + + Mean point score (% of community) + 3228 + + + Mediomastus + 3229 + + + Mediomastus ambiseta + 3230 + + + Mediomastus californiensis + 3231 + + + Megalomma + 3232 + + + Megalomma bioculatum + 3233 + + + Megalops stage, crab larvae + 3234 + + + Melinna maculata + 3235 + + + Melita + 3236 + + + Melita nitida + 3237 + + + Menippe mercenaria + 3238 + + + Mercenaria campechiensis + 3239 + + + Meropelopia + 3240 + + + Mesovelia + 3241 + + + Mesovelia mulsanti + 3242 + + + Mesoveliidae + 3243 + + + Metrichia + 3244 + + + Metriocnemus + 3245 + + + Metrobates + 3246 + + + Miathyria + 3247 + + + Micrasema + 3248 + + + Microcylloepus + 3249 + + + Microcylloepus pusillis + 3250 + + + Microcylloepus texanus + 3251 + + + Micropanope + 3252 + + + Micropholis atra + 3253 + + + Micropsectra + 3254 + + + Microstoma mooreobdella + 3255 + + + Microtendipes + 3256 + + + Microvelia + 3257 + + + Minuspio cirrifera + 3258 + + + Mitrella lunata + 3259 + + + Molgula + 3260 + + + Ablabesmyia mallochi + 2517 + + + Ancistrosyllis papillosa + 2568 + + + Balanus + 2633 + + + Boyeria + 2658 + + + Caenis amica + 2683 + + + Centroptilum + 2718 + + + Chone + 2753 + + + Claassenia + 2770 + + + Corethrella + 2801 + + + Curicta + 2834 + + + Derovatellus + 2859 + + + Dosinia elegans + 2894 + + + Eudorella + 2952 + + + Gerris + 2981 + + + Graptocorixa + 3004 + + + Helobdella triserialis + 3039 + + + Abedus + 2514 + + + Ablabesmyia + 2515 + + + Ablabesmyia annulata + 2516 + + + Abra aequalis + 2518 + + + Acamptocladius + 2519 + + + Acanthagrion + 2520 + + + Acentrella + 2521 + + + Acerpenna + 2522 + + + Acetes americanus + 2523 + + + Acilius + 2524 + + + Acroneuria + 2525 + + + Acteocina canaliculata + 2526 + + + Actiniaria + 2527 + + + Aedes + 2528 + + + Aelosomatidae + 2529 + + + Aeolosoma + 2530 + + + Aeschna + 2531 + + + Aeschnidae + 2532 + + + Agabinus + 2533 + + + Agabus + 2534 + + + Agapetus + 2535 + + + Agraylea + 2536 + + + Agrion + 2537 + + + Agrionidae (Calopterygidae) + 2538 + + + Aligena texasiana + 2539 + + + Alpheus + 2540 + + + Alpheus heterochaelis + 2541 + + + Amaeana trilobata + 2542 + + + Ambrysus + 2543 + + + Ambrysus circumcinctus + 2544 + + + Ambrysus lunatus + 2545 + + + Ambrysus pulchellus + 2546 + + + Ameletus + 2547 + + + Ametropus + 2548 + + + Amnicola + 2549 + + + Ampelisca + 2550 + + + Ampelisca abdita + 2551 + + + Ampelisca vadorum + 2552 + + + Ampharetidae + 2553 + + + Amphiagrion + 2554 + + + Amphinomidae + 2555 + + + Amphipholis squamata + 2556 + + + Amphipoda + 2557 + + + Ampithoe Longimannia + 2558 + + + Amygdalum papyria + 2559 + + + Anachis avara + 2560 + + + Anachis obesa + 2561 + + + Anacroneuria + 2562 + + + Anadara floridana + 2563 + + + Anadara ovalis + 2564 + + + Anax + 2565 + + + Ancistrosyllis + 2566 + + + Ancistrosyllis jonesi + 2567 + + + Ancistrosyllis sp b + 2569 + + + Ancylidae + 2570 + + + Ancylus + 2571 + + + Ancyronyx + 2572 + + + Ancyronyx variegata + 2573 + + + Anisoptera + 2574 + + + Annelida + 2575 + + + Anodonta + 2576 + + + Anomalocardia auberiana + 2577 + + + Anomia simplex + 2578 + + + Anopheles + 2579 + + + Anoplodactylus + 2580 + + + Anostraca + 2581 + + + Anthomyiidae + 2582 + + + Aphroditacea + 2583 + + + Aphylla + 2584 + + + Aquarius + 2585 + + + Arabella mutans + 2586 + + + Arabellidae + 2587 + + + Archilestes + 2588 + + + Arenicola + 2589 + + + Arenicola cristata + 2590 + + + Argia + 2591 + + + Argia translata + 2592 + + + Argia unid. sp. C + 2593 + + + Argia unidentified species a + 2594 + + + Argia unidentified species b + 2595 + + + Argulus + 2596 + + + Aricidea + 2597 + + + Aricidea catherinae + 2598 + + + Aricidea fragilis + 2599 + + + Aricidea phylbinae + 2600 + + + Aricidea suecica + 2601 + + + Aricidea wassi + 2602 + + + Arigomphus + 2603 + + + Armandia agilis + 2604 + + + Armandia maculata + 2605 + + + Arrenurus + 2606 + + + Arthroplea + 2607 + + + Arthropoda + 2608 + + + Ascidiacea + 2609 + + + Asellidae + 2610 + + + Asellus + 2611 + + + Astacidae + 2612 + + + Asteroidea + 2613 + + + Asychis elongatus + 2614 + + + Athericidae + 2615 + + + Atherix + 2616 + + + Atherix variegeta + 2617 + + + Athripsodes + 2618 + + + Atoperla ephyre + 2619 + + + Atopsyche + 2620 + + + Atrichopogon + 2621 + + + Atyidae + 2622 + + + Atylus + 2623 + + + Aulodrilus + 2624 + + + Aulodrilus pigueti + 2625 + + + Aulodrilus pluriseta + 2626 + + + Axiothella mucosa + 2627 + + + Baetidae + 2628 + + + Baetis + 2629 + + + Baetisca + 2630 + + + Baetodes + 2631 + + + Balanoglossus + 2632 + + + Balanus eburneus + 2634 + + + Balanus truncatus + 2635 + + + Basiaeschna + 2636 + + + Basiaeschna janata + 2637 + + + Batracobdella + 2638 + + + Batracobdella phalera + 2639 + + + Bdellodrilus illuminatus + 2640 + + + Belonia saturata + 2641 + + + Belostoma + 2642 + + + Belostomatidae + 2643 + + + Benthic - unknown organism + 2644 + + + Berosus + 2645 + + + Berosus striatus + 2646 + + + Bezzia + 2647 + + + Bidessonotus + 2648 + + + Bidessus + 2649 + + + Bittacomorpha + 2650 + + + Bittacomorphella + 2651 + + + Boccardia hamata + 2652 + + + Boccardiella + 2653 + + + Boccardiella ligerica + 2654 + + + Bothrioneurum vejdovskyanum + 2655 + + + Bowmaniella + 2656 + + + Bowmaniella floridana + 2657 + + + Boyeria vinosa + 2659 + + + Brachidontes exustus + 2660 + + + Brachycentrus + 2661 + + + Brachycercus + 2662 + + + Brachyptera + 2663 + + + Brachyvatus + 2664 + + + Branchiobdella + 2665 + + + Branchiobdellida + 2666 + + + Branchiobdellidae + 2667 + + + Branchiura + 2668 + + + Branchiura sowerbyi + 2669 + + + Brechmorhoga + 2670 + + + Brechmorhoga mendax + 2671 + + + Brillia + 2672 + + + Brychius + 2673 + + + Bryocamptus zschokkei + 2674 + + + Bryozoa + 2675 + + + Buenoa + 2676 + + + Bulimidae (Amnicolidae) + 2677 + + + Bunodosoma cavernata + 2678 + + + Caecum johnsoni + 2679 + + + Caecum pulchellum + 2680 + + + Caenidae + 2681 + + + Caenis + 2682 + + + Caenis hilaris + 2684 + + + Caenis unid. sp. a + 2685 + + + Callianassa + 2686 + + + Callianassa jamaicense louisianensis + 2687 + + + Callibaetis + 2688 + + + Callibaetis californicus + 2689 + + + Callibaetis floridanus + 2690 + + + Callinectes + 2691 + + + Callinectes sapidus + 2692 + + + Calopsectra + 2693 + + + Calopterygidae + 2694 + + + Calopteryx + 2695 + + + Calphyaryphus + 2696 + + + Cambarellus + 2697 + + + Cambaridae + 2698 + + + Cambarinae + 2699 + + + Cambarus + 2700 + + + Camelobaetidius (Formerly dactylobaetis) + 2701 + + + Camelobaetidius variabilis + 2702 + + + Campeloma + 2703 + + + Campsicnemus + 2704 + + + Campsurus + 2705 + + + Cannacria + 2706 + + + Cantharus cancellarius + 2707 + + + Capitella + 2708 + + + Capitella capitata + 2709 + + + Capitellidae + 2710 + + + Capitellides jonesi + 2711 + + + Capitomastus aciculatus + 2712 + + + Caprella + 2713 + + + Caprellidae + 2714 + + + Carabidae + 2715 + + + Cardiocladius + 2716 + + + Celina + 2717 + + + Ceraclea + 2719 + + + Cerapus tubularius + 2720 + + + Ceratocephale + 2721 + + + Ceratonereis + 2722 + + + Ceratonereis irritabilis + 2723 + + + Ceratonereis tridentata + 2724 + + + Ceratopogonidae (heleidae) + 2725 + + + Ceratopsyche + 2726 + + + Cerebratulus + 2727 + + + Cerebratulus lacteus + 2728 + + + Cernotina + 2729 + + + Chaetogaster + 2730 + + + Chaetognatha + 2731 + + + Chaetozone + 2732 + + + Chaoboridae + 2733 + + + Chaoborus + 2734 + + + Chaoborus punctipennis + 2735 + + + Chauliodes + 2736 + + + Cheumatopsyche + 2737 + + + Chimarra + 2738 + + + Chimarra unidentified species a + 2739 + + + Chione cancelata + 2740 + + + Chione clenchi + 2741 + + + Chiridotea + 2742 + + + Chironomidae + 2743 + + + Chironominae + 2744 + + + Chironomus + 2745 + + + Chironomus attenuatus + 2746 + + + Chironomus decorus + 2747 + + + Chironomus riparius + 2748 + + + Chironomus tentans + 2749 + + + Chlamydotheca + 2750 + + + Chlamydotheca arcuata + 2751 + + + Chlorotabanus + 2752 + + + Chone americana + 2754 + + + Chone duneri + 2755 + + + Choroterpes + 2756 + + + Choroterpes mexicanus + 2757 + + + Chrysomelidae + 2758 + + + Chrysops + 2759 + + + Cicadellidae + 2760 + + + Cincinnatia cincinnatiensis + 2761 + + + Cinygma + 2762 + + + Cinygmula + 2763 + + + Cirratulidae + 2764 + + + Cirripedia + 2765 + + + Cirrophorus + 2766 + + + Cirrophorus americanus + 2767 + + + Cirrophorus furcatus + 2768 + + + Cirrophorus lyra + 2769 + + + Cladocera + 2771 + + + Cladotanytarsus + 2772 + + + Cladotanytarsus mancus + 2773 + + + Clibanarius vittatus + 2774 + + + Climacia areolaris + 2775 + + + Clinotanypus + 2776 + + + Clymenella torquata + 2777 + + + Cnephia + 2778 + + + Cochliopa + 2779 + + + Cochliopa texana + 2780 + + + Coelotanypus + 2781 + + + Coenagrionidae + 2782 + + + Coleoptera + 2783 + + + Collembola + 2784 + + + Conchapelopia + 2785 + + + Conchapelopia fasciata + 2786 + + + Conchostraca + 2787 + + + Congeria leucophaeata + 2788 + + + Constempellina + 2789 + + + Copelatus + 2790 + + + Copepoda + 2791 + + + Cortotomus + 2792 + + + Corbicula + 2793 + + + Corbicula fluminea + 2794 + + + Corbicula manilensis + 2795 + + + Corbiculidae (cyrenidae) + 2796 + + + Corbula + 2797 + + + Corbula swiftiana + 2798 + + + Cordulegaster + 2799 + + + Corduliidae + 2800 + + + Corixidae + 2802 + + + Corophium + 2803 + + + Corophium tuberculatum + 2804 + + + Corydalidae + 2805 + + + Corydalus + 2806 + + + Corydalus cornutus + 2807 + + + Corynoneura + 2808 + + + Coryphella + 2809 + + + Cossura + 2810 + + + Cossura delta + 2811 + + + Crassinella lunulata + 2812 + + + Crassostrea virginica + 2813 + + + Cratena kaoruae + 2814 + + + Crepidula + 2815 + + + Crepidula convexa + 2816 + + + Crepidula fornicata + 2817 + + + Crepidula plana + 2818 + + + Cricotopus + 2819 + + + Cricotopus bicinctus + 2820 + + + Cricotopus tremulus + 2821 + + + Crustacea + 2822 + + + Cryphocricos + 2823 + + + Cryphocricos hungerfordi + 2824 + + + Cryptochironomus + 2825 + + + Cryptochironomus fulvus + 2826 + + + Cryptolabis + 2827 + + + Culex + 2828 + + + Culicidae + 2829 + + + Culicoides + 2830 + + + Cumacea + 2831 + + + Cumulativ abun of benthic from feed grp % of com + 2832 + + + Curculionidae + 2833 + + + Cybister + 2835 + + + Cyclaspis + 2836 + + + Cyclaspis varians + 2837 + + + Cyclopoida + 2838 + + + Cyclops navus + 2839 + + + Cyclorrhapha + 2840 + + + Cylichna Bidentata + 2841 + + + Cylloepus + 2842 + + + Cylloepus abnormis + 2843 + + + Cymatium nicobaricum + 2844 + + + Cymbiodyta + 2845 + + + Cymodoce faxoni + 2846 + + + Cyphon + 2847 + + + Cypridopsis + 2848 + + + Cypridopsis vidua + 2849 + + + Cyrenella + 2850 + + + Dactylobaetis mexicanus + 2851 + + + Daphnia pulex + 2852 + + + Dasyhelea + 2853 + + + Decamastus + 2854 + + + Decapoda + 2855 + + + Dero + 2856 + + + Dero digitata + 2857 + + + Dero trifida + 2858 + + + Diamesa + 2860 + + + Diamesinae + 2861 + + + Diastylis + 2862 + + + Diastylis quadrispinosa + 2863 + + + Diastylis sculpta + 2864 + + + Dicrotendipes + 2865 + + + Dicrotendipes modestus + 2866 + + + Dicrotendipes neomodestus + 2867 + + + Dicrotendipes nervosus + 2868 + + + Didymops + 2869 + + + Dina + 2870 + + + Dineutus + 2871 + + + Diogenidae + 2872 + + + Diopatra + 2873 + + + Diopatra cuprea + 2874 + + + Diplectrona + 2875 + + + Diplocladius + 2876 + + + Diplodonta + 2877 + + + Diplodonta semiaspera + 2878 + + + Diplothyra smythi + 2879 + + + Diptera + 2880 + + + Dispio uncinata + 2881 + + + Diversity - benthos + 2882 + + + Dixa + 2883 + + + Dixella + 2884 + + + Dixidae + 2885 + + + Dolania + 2886 + + + Dolichopodidae + 2887 + + + Dolophilodes + 2888 + + + Dominant benthic func feeding grp, % of communit + 2889 + + + Donacia + 2890 + + + Dorocordulia + 2891 + + + Dorvilleidae + 2892 + + + Dosinia discus + 2893 + + + Drilonereis + 2895 + + + Drilonereis longa + 2896 + + + Drilonereis magna + 2897 + + + Dromogomphus + 2898 + + + Dryopidae + 2899 + + + Dryops + 2900 + + + Dubiraphia + 2901 + + + Dugesia + 2902 + + + Dugesia dorotocephala + 2903 + + + Dugesia tigrina + 2904 + + + Dythemis + 2905 + + + Dytiscidae + 2906 + + + Dytiscus + 2907 + + + Eclipidrilus (mesoporodrilus) + 2908 + + + Edotea montosa + 2909 + + + Edotea triloba + 2910 + + + Ehlersileanira + 2911 + + + Ehlersileanira incisa + 2912 + + + Elimia + 2913 + + + Elimia comalensis + 2914 + + + Ellipes + 2915 + + + Elmidae + 2916 + + + Elodes + 2917 + + + Elophila + 2918 + + + Empididae + 2919 + + + Enallagma + 2920 + + + Enallagma boreale + 2921 + + + Enchytraeidae + 2922 + + + Endochironomus + 2923 + + + Enochrus + 2924 + + + Ensis minor + 2925 + + + Ephemera + 2926 + + + Ephemera varia + 2927 + + + Ephemerella + 2928 + + + Ephemerellidae + 2929 + + + Ephemeridae + 2930 + + + Ephemeroptera + 2931 + + + Ephoron + 2932 + + + Ephydra + 2933 + + + Ephydra riparia + 2934 + + + Ephydridae + 2935 + + + Epicordulia + 2936 + + + Epitheca + 2937 + + + Epitonium + 2938 + + + Epitonium albidum + 2939 + + + Epitonium humphreysi + 2940 + + + Epitonium rupicola + 2941 + + + Ept index + 2942 + + + Equitability - benthos + 2943 + + + Eriocera + 2944 + + + Erioptera + 2945 + + + Erpetogomphus + 2946 + + + Erpobdellidae + 2947 + + + Erythemis + 2948 + + + Eteone heteropoda + 2949 + + + Eteone lactea + 2950 + + + Euclymene + 2951 + + + Eudorella truncatula + 2953 + + + Eukiefferiella + 2954 + + + Eulalia + 2955 + + + Eulimastoma weberi + 2956 + + + Eumida sanguinea + 2957 + + + Eunicidae + 2958 + + + Euparyphus + 2959 + + + Eupera + 2960 + + + Eupera cubensis + 2961 + + + Eurylophella + 2962 + + + Fallceon quilleri (formerly baetis) + 2963 + + + Farrodes texanus + 2964 + + + Ferrissia + 2965 + + + Flabellifera + 2966 + + + Forcipomyia + 2967 + + + Fossaria + 2968 + + + Galerucella + 2969 + + + Gammaridae + 2970 + + + Gammarus + 2971 + + + Gammarus fasciatus + 2972 + + + Gammarus lacustris + 2973 + + + Gammarus limnaeus + 2974 + + + Gastropoda + 2975 + + + Gattyana cirrosa + 2976 + + + Gelastocoridae + 2977 + + + Gelastocoris + 2978 + + + Georyssidae + 2979 + + + Gerridae + 2980 + + + Geukensia + 2982 + + + Geukensia demissa + 2983 + + + Glossiphonia + 2984 + + + Glossiphoniidae + 2985 + + + Glossosomatidae + 2986 + + + Glycera + 2987 + + + Glycera americana + 2988 + + + Glycinde solitaria + 2989 + + + Glyptotendipes + 2990 + + + Glyptotendipes senilis + 2991 + + + Goeldichironomus + 2992 + + + Goeldichironomus holoprasinus + 2993 + + + Goeldichironomus natans gr. + 2994 + + + Goeldichironomus pictus gr. + 2995 + + + Gomphidae + 2996 + + + Gomphoides + 2997 + + + Gomphus + 2998 + + + Gomphus (arigomphus) lentulus + 2999 + + + Gomphus externus + 3000 + + + Gomphus modestus + 3001 + + + Goniadidae + 3002 + + + Gordius + 3003 + + + Gundlachia radiata + 3005 + + + Gyptis brevipalpa + 3006 + + + Gyptis vittata + 3007 + + + Gyraulus + 3008 + + + Gyretes + 3009 + + + Gyrinidae + 3010 + + + Gyrinus + 3011 + + + Habrophlebia + 3012 + + + Habrophlebiodes + 3013 + + + Hagenius + 3014 + + + Hagenius brevistylus + 3015 + + + Haliplidae + 3016 + + + Haliplus + 3017 + + + Halobates + 3018 + + + Haplotaxis + 3019 + + + Harnischia + 3020 + + + Harnischia edwardsi + 3021 + + + Hastaperla brevis + 3022 + + + Haustoriidae + 3023 + + + Hebetancylus excentricus + 3024 + + + Hebrus + 3025 + + + Heleidae + 3026 + + + Helichus + 3027 + + + Helichus immsi + 3028 + + + Helichus lithophilus + 3029 + + + Helichus suturalis + 3030 + + + Helicopsyche + 3031 + + + Helicopsychidae + 3032 + + + Helisoma + 3033 + + + Helisoma anceps + 3034 + + + Helobata + 3035 + + + Helobdella + 3036 + + + Helobdella elongata + 3037 + + + Helobdella stagnalis + 3038 + + + Helochares + 3040 + + + Helocordulia + 3041 + + + Helodidae + 3042 + + + Helophorus + 3043 + + + Hemerodromia + 3044 + + + Hemiaegina minuta + 3045 + + + Hemiptera + 3046 + + + Heptagenia + 3047 + + + Heptageniidae + 3048 + + + Herpetocypris + 3049 + + + Hesionidae + 3050 + + + Hesperocorixa + 3051 + + + Hesperophylax + 3052 + + + Hetaerina + 3053 + + + Heterelmis + 3054 + + + Heterelmis glabra + 3055 + + + Heterelmis vulnerata + 3056 + + + Heteromastus filiformis + 3057 + + + Heterotrissocladius + 3058 + + + Hexacylloepus + 3059 + + + Hexacylloepus ferrugineous + 3060 + + + Hexagenia + 3061 + + + Hexagenia limbata + 3062 + + + Hexagenia rigida + 3063 + + + Hexatoma + 3064 + + + Hilsenhoff biotic index + 3065 + + + Hirudinea + 3066 + + + Hirudinidae (Hirudidae) + 3067 + + + Hobsonia florida + 3068 + + + Holothuroida + 3069 + + + Homoeoneuria + 3070 + + + Homoptera + 3071 + + + Hyalella azteca + 3072 + + + Hydaticus + 3073 + + + Hydra + 3074 + + + Hydra carnea + 3075 + + + Hydracarina + 3076 + + + Hydrachna + 3077 + + + Hydraena + 3078 + + + Hydrobiidae + 3079 + + + Hydrobiomorpha + 3080 + + + Hydrobius + 3081 + + + Hydrocanthus + 3082 + + + Hydrochara + 3083 + + + Hydrochus + 3084 + + + Hydrodroma despiciens + 3085 + + + Hydroides + 3086 + + + Hydroides dianthus + 3087 + + + Hydrometra + 3088 + + + Hydroperla crosbyl + 3089 + + + Hydrophilidae + 3090 + + + Hydrophilus + 3091 + + + Hydrophilus triangularis + 3092 + + + Hydrophorus + 3093 + + + + + Zooplankton species + 4562 + + + Acanthocystis + 4564 + + + Callinectes + 4601 + + + Copepoda + 4634 + + + Difflugia globosa + 4661 + + + Mysidopsis almyra + 4739 + + + Trichocerca multicrinis + 4813 + + + Acanthocyclops + 4563 + + + Acartia tonsa + 4565 + + + Actinopoda + 4566 + + + Actinosphaerium + 4567 + + + Alona guttata + 4568 + + + Amoeba + 4569 + + + Amphipoda + 4570 + + + Anthomedusae + 4571 + + + Anuraeopsis + 4572 + + + Arcella + 4573 + + + Ascomorpha + 4574 + + + Ascomorphella + 4575 + + + Asplanchna + 4576 + + + Asplanchna brightwelli + 4577 + + + Asplanchna priodonta + 4578 + + + Asplanchnopus + 4579 + + + Bdelloidea + 4580 + + + Beroe + 4581 + + + Bosmina + 4582 + + + Bosmina coregoni + 4583 + + + Bosmina longirostris + 4584 + + + Brachionus + 4585 + + + Brachionus angularis + 4586 + + + Brachionus bidentatus + 4587 + + + Brachionus budapestinensis + 4588 + + + Brachionus calyciflorus + 4589 + + + Brachionus caudatus + 4590 + + + Brachionus furculatus + 4591 + + + Brachionus havanaensis + 4592 + + + Brachionus plicatilis + 4593 + + + Brachionus quadridentata + 4594 + + + Brachionus rubens + 4595 + + + Brachionus urceolaris + 4596 + + + Brachionus variabilis + 4597 + + + Brachionus zahniseri + 4598 + + + Branchiura + 4599 + + + Calanoida + 4600 + + + Camptocercus rectirostris + 4602 + + + Canthocamptus + 4603 + + + Carchesium + 4604 + + + Centropages + 4605 + + + Centropyxis + 4606 + + + Cephalodella + 4607 + + + Ceriodaphnia + 4608 + + + Ceriodaphnia lacustris + 4609 + + + Ceriodaphnia reticulata + 4610 + + + Ceriodaphnia rigaudi + 4611 + + + Ceriodaphnia rotunda + 4612 + + + Chaetognatha + 4613 + + + Chaoborus + 4614 + + + Chromogaster + 4615 + + + Chydorus + 4616 + + + Chydorus sphaericus + 4617 + + + Ciliata + 4618 + + + Ciliophora + 4619 + + + Cirripedia + 4620 + + + Cirripedia - cypris + 4621 + + + Cirripedia - nauplius + 4622 + + + Cladocera + 4623 + + + Clytemnestra + 4624 + + + Coelenterata + 4625 + + + Collotheca + 4626 + + + Collotheca pellagica + 4627 + + + Colurella + 4628 + + + Conchostraca + 4629 + + + Conochiloides + 4630 + + + Conochiloides dossuarias + 4631 + + + Conochilus + 4632 + + + Conochilus unicornis + 4633 + + + Copepoda - nauplius + 4635 + + + Crustacea - larva + 4636 + + + Ctenophora + 4637 + + + Cyclopoida + 4638 + + + Cyclops + 4639 + + + Cyclops bicuspidatus + 4640 + + + Cyclops nearcticus + 4641 + + + Cyclops vernalis + 4642 + + + Cypridopsis + 4643 + + + Daphnia + 4644 + + + Daphnia ambigua + 4645 + + + Daphnia dubia + 4646 + + + Daphnia galeata + 4647 + + + Daphnia laevis + 4648 + + + Daphnia longiremis + 4649 + + + Daphnia longispina + 4650 + + + Daphnia parvula + 4651 + + + Daphnia pulex + 4652 + + + Decapoda - zoea + 4653 + + + Diaphanosoma + 4654 + + + Diaphanosoma brachyurum + 4655 + + + Diaphanosoma leuchtenbergianum + 4656 + + + Diaptomus + 4657 + + + Diaptomus siciloides + 4658 + + + Didinium + 4659 + + + Difflugia + 4660 + + + Difflugia urecolata + 4662 + + + Diptera - larva + 4663 + + + Diurella + 4664 + + + Diversity - zooplankton + 4665 + + + Echinodermata + 4666 + + + Ectocyclops phaleratus + 4667 + + + Eggs, fish + 4668 + + + Eggs, invertebrate + 4669 + + + Encentrum + 4670 + + + Enteroplea + 4671 + + + Epiphanes + 4672 + + + Epischura + 4673 + + + Epistylis + 4674 + + + Ergasilus + 4675 + + + Eubranchipus + 4676 + + + Euchaeta + 4677 + + + Euchlanis + 4678 + + + Eucyclops + 4679 + + + Eucyclops agilis + 4680 + + + Euplotes + 4681 + + + Eurytemora + 4682 + + + Eurytemora affinis + 4683 + + + Eutintinnus + 4684 + + + Filina brachiata + 4685 + + + Filinia + 4686 + + + Filinia longiseta + 4687 + + + Filinia opoliensis + 4688 + + + Filinia terminalis + 4689 + + + Flavella + 4690 + + + Flavella panamensis + 4691 + + + Gastropoda larva + 4692 + + + Gastropus + 4693 + + + Gastropus hyptopus + 4694 + + + Gastrotricha + 4695 + + + Halicyclops + 4696 + + + Harpacticoida + 4697 + + + Harpacticus + 4698 + + + Hexarthra + 4699 + + + Hexarthra mira + 4700 + + + Holophrya + 4701 + + + Horaella + 4702 + + + Hydracarina + 4703 + + + Kellicottia + 4704 + + + Kellicottia bostoniensis + 4705 + + + Kellicottia longispina + 4706 + + + Keratella + 4707 + + + Keratella cochlearis + 4708 + + + Keratella cochlearis f. tecta + 4709 + + + Keratella earlinae + 4710 + + + Keratella gracilenta + 4711 + + + Keratella quadrata + 4712 + + + Keratella valga f. tropica + 4713 + + + Labidocera + 4714 + + + Lecane + 4715 + + + Lepadella + 4716 + + + Leydigia + 4717 + + + Leydigia acanthocercoides + 4718 + + + Leydigia quadrangularis + 4719 + + + Limnocalanus + 4720 + + + Lophocharis + 4721 + + + Lucifer faxoni + 4722 + + + Macrocyclops + 4723 + + + Macrosetella + 4724 + + + Macrothrix + 4725 + + + Mesocyclops + 4726 + + + Mesocyclops edax + 4727 + + + Microcyclops + 4728 + + + Microcyclops panamensis + 4729 + + + Moina + 4730 + + + Moina affinis + 4731 + + + Moina micrura + 4732 + + + Mollusca - larva + 4733 + + + Monogononta + 4734 + + + Monommata + 4735 + + + Monostyla + 4736 + + + Monostyla cornuta + 4737 + + + Mysidopsis + 4738 + + + Mytilina + 4740 + + + Nauplius, unknown + 4741 + + + Nebela + 4742 + + + Nemata + 4743 + + + Nemopsis bachei + 4744 + + + Notholca + 4745 + + + Notholca acuminata + 4746 + + + Notholca labis + 4747 + + + Notommata + 4748 + + + Oikopleura + 4749 + + + Oikopleura dioica + 4750 + + + Oithona + 4751 + + + Oligochaete - larvae + 4752 + + + Oncaea + 4753 + + + Orthocyclops + 4754 + + + Ostracoda + 4755 + + + Paracalanus + 4756 + + + Paracyclops + 4757 + + + Paracyclops fimbriatus + 4758 + + + Paramecium + 4759 + + + Parundella + 4760 + + + Philodina + 4761 + + + Platyias + 4762 + + + Platyias patulus + 4763 + + + Platyias quadricornis + 4764 + + + Ploesoma + 4765 + + + Podon + 4766 + + + Polyarthra + 4767 + + + Polyarthra major + 4768 + + + Polyarthra remata + 4769 + + + Polyarthra trigla (#/sq ft) + 4770 + + + Polyarthra vulgaris + 4771 + + + Polychaete - larva + 4772 + + + Polyphemus + 4773 + + + Polyphemus pediculus + 4774 + + + Pompholyx + 4775 + + + Pompholyx sulcata + 4776 + + + Proales + 4777 + + + Proplectella + 4778 + + + Protozoa + 4779 + + + Pseudodiaptomus + 4780 + + + Pseudodiaptomus coronatus + 4781 + + + Pulvinulina + 4782 + + + Rhithropanopeus harrissii + 4783 + + + Rhizopoda + 4784 + + + Rotaria + 4785 + + + Rotifera + 4786 + + + Sagitta + 4787 + + + Saphirella + 4788 + + + Scaridium + 4789 + + + Scyphozoa + 4790 + + + Senecella calanoides + 4791 + + + Sida crystallina + 4792 + + + Simocephalus + 4793 + + + Simocephalus exspinosus + 4794 + + + Stentor + 4795 + + + Stomolophus + 4796 + + + Synchaeta + 4797 + + + Synchaeta oblonga + 4798 + + + Synchaeta styla + 4799 + + + Taphromysis louisianne + 4800 + + + Testudinella + 4801 + + + Thecacineta + 4802 + + + Tintinnidae + 4803 + + + Tintinnidium + 4804 + + + Tintinnopsis + 4805 + + + Tintinnopsis beroidea + 4806 + + + Tintinnopsis kofoidi + 4807 + + + Tintinnopsis mortensis + 4808 + + + Tintinnopsis parvula + 4809 + + + Tintinnopsis tubulosa + 4810 + + + Tortanus + 4811 + + + Trichocerca + 4812 + + + Trichocerca pusilla + 4814 + + + Trichocerca rousseleti + 4815 + + + Trichocerca similis + 4816 + + + Trichotria + 4817 + + + Trochophore, unknown + 4818 + + + Trochosphaera + 4819 + + + Tropocyclops + 4820 + + + Vorticella + 4821 + + + Wierzejskiella + 4822 + + + Zooflagella + 4823 + + + + + + + Biological community + 4824 + + + Dead fish, severity + 4825 + + + Fish standard length + 4826 + + + Algae, floating mats (severity) + 4827 + + + + + Benthic + 4829 + + + Number of diptera taxa + 4838 + + + Benthic filterers (% of community) + 4830 + + + Benthic gatherers (% of community) + 4831 + + + Benthic grazers (% of community) + 4832 + + + Benthic predators (% of community) + 4833 + + + Benthic shredders (% of community) + 4834 + + + Benthos organisms - none present + 4835 + + + Benthos total abundance number per square meter + 4836 + + + Number of benthic functional feeding groups + 4837 + + + Number of ephemeroptera taxa + 4839 + + + Number of non-insect taxa + 4840 + + + Number of total of organisms per sq ft + 4841 + + + Number of total of species in sample + 4842 + + + Percent dominant (3 taxa) + 4843 + + + Percent dominant taxon, benthos + 4844 + + + Percent of individuals as chironomidae + 4845 + + + Percent of individual as ept + 4846 + + + Percent of individuals as tolerants, benthos + 4847 + + + Percent of total number as elmidae + 4848 + + + Percent of total trichoptera as hydropsychidae + 4849 + + + Ratio of intolerant to tolerant taxa, benthos + 4850 + + + Total # of benthic genera in sample + 4851 + + + Total # of families in benthic sample + 4852 + + + Total biomass, benthos grams (dry weight) + 4853 + + + Total number of intolerant taxa, benthos + 4854 + + + Total taxa richness, benthos + 4855 + + + + + Biomass, periphyton + 4857 + + + Biomass, plankton + 4859 + + + Biomass, seston + 4862 + + + Fish + 4873 + + + Fish standard length + 4826 + + + Number of individuals per minute electrofishing + 4874 + + + Number of individuals per seine haul + 4875 + + + Number of species, fish + 4876 + + + Percent of individuals as hybrids + 4877 + + + Percent of individuals as invertivores + 4878 + + + Percent of individuals as omnivores, fish + 4879 + + + Percent of individuals as piscivores, fish + 4880 + + + Percent of individuals as tolerants, fish + 4881 + + + Percent of individuals with disease or anomaly + 4882 + + + Percent tolerant + 4883 + + + Total number of darter species + 4884 + + + Total number of individuals + 4885 + + + Total number of intolerant species, fish + 4886 + + + Total number of native cyprinid species + 4887 + + + Total number of sucker species + 4888 + + + Total number of sunfish species + 4889 + + + + + Nekton + 4890 + + + Redundancy - Nekton + 4891 + + + Total number of benthic invertivore species + 4892 + + + Total number of benthic species + 4893 + + + + + Biomass, phytoplankton + 4894 + + + Phytoplankton sampled - no organisms present + 4895 + + + Phytoplankton, Total + 4896 + + + + + Biomass, zooplankton + 4897 + + + Larva, Unknown + 4898 + + + Larvae, Fish + 4899 + + + Zooplankton sampled - no organisms present + 4900 + + + Zooplankton - unknown organism + 4901 + + + Zooplankton, Total + 5025 + + + + + Algal growth potential + 4902 + + + Respiration + 4903 + + + Pigment + 5039 + + + Chlorophyll + 4864 + + + Chlorophyll a + 4865 + + + Pheophytin + 4866 + + + Chlorophyll a allomer + 4867 + + + Chlorophyll (a+b+c) + 4868 + + + Chlorophyll b + 4869 + + + Chlorophyll c + 4870 + + + Chlorophyll c1 + c2 + 4871 + + + Chlorophyll fluoresence + 4872 + + + + + Non-chlorophyll + 5040 + + + 19-Hexanoyloxyfucoxanthin + 5041 + + + 9 cis-Neoxanthin + 5042 + + + Alloxanthin + 5043 + + + Canthaxanthin + 5044 + + + Diadinoxanthin + 5045 + + + Diatoxanthin + 5046 + + + Peridinin + 5047 + + + Zeaxanthin + 5048 + + + + + + + + + Indicator Organisms + 4904 + + + Coliform, fecal + 4905 + + + Streptococci, fecal + 4906 + + + Coliform, total + 4907 + + + Actinomycetes + 4908 + + + Bacteria mix, unspecified + 4909 + + + Bacteria, nitrifiers + 4910 + + + Caliciviruses + 4911 + + + Clostridium perfringens + 4912 + + + Cryptosporidium + 4913 + + + Enterobacter cloacae + 4914 + + + Enterococci + 4915 + + + Escherichia coli + 4916 + + + Giardia + 4917 + + + Helicobacter pylori + 4918 + + + Heterotrophic bacteria + 4919 + + + Klebsiella pneumoniae + 4920 + + + Pseudomonas + 4921 + + + Pseudomonas aeruginosa + 4922 + + + Salmonella + 4923 + + + Viruses (enteric) + 4924 + + + + + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/Resources/SN_Logo.png b/Source/Plugins/Plugins.ShaleNetwork/Resources/SN_Logo.png new file mode 100644 index 00000000..0bee78a8 Binary files /dev/null and b/Source/Plugins/Plugins.ShaleNetwork/Resources/SN_Logo.png differ diff --git a/Source/Plugins/Plugins.ShaleNetwork/Resources/Synonyms.xml b/Source/Plugins/Plugins.ShaleNetwork/Resources/Synonyms.xml new file mode 100644 index 00000000..5fb6f6de --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Resources/Synonyms.xml @@ -0,0 +1,33927 @@ + + + + 1 + + Hydrosphere + + + + 2 + Physical + Physical + Hydrosphere/ + + + 41 + Chemical + Chemical + Hydrosphere/ + + + 2511 + Biological + Biological + Hydrosphere/ + + + 2512 + Biological taxa + Biological taxa + Hydrosphere/Biological/ + + + 4904 + Indicator Organisms + Indicator Organisms + Hydrosphere/Biological/ + + + 4824 + Biological community + Biological community + Hydrosphere/Biological/ + + + 4825 + Dead fish, severity + Dead fish, severity + Hydrosphere/Biological/Biological community/ + + + 4890 + Nekton + Nekton + Hydrosphere/Biological/Biological community/ + + + 4857 + Biomass, periphyton + Biomass, periphyton + Hydrosphere/Biological/Biological community/ + + + 4859 + Biomass, plankton + Biomass, plankton + Hydrosphere/Biological/Biological community/ + + + 4862 + Biomass, seston + Biomass, seston + Hydrosphere/Biological/Biological community/ + + + 4829 + Benthic + Benthic + Hydrosphere/Biological/Biological community/ + + + 4873 + Fish + Fish + Hydrosphere/Biological/Biological community/ + + + 4894 + Biomass, phytoplankton + Biomass, phytoplankton + Hydrosphere/Biological/Biological community/ + + + 4897 + Biomass, zooplankton + Biomass, zooplankton + Hydrosphere/Biological/Biological community/ + + + 4902 + Algal growth potential + Algal growth potential + Hydrosphere/Biological/Biological community/ + + + 4903 + Respiration + Respiration + Hydrosphere/Biological/Biological community/ + + + 5039 + Pigment + Pigment + Hydrosphere/Biological/Biological community/ + + + 4830 + Benthic filterers (% of community) + Benthic filterers (% of community) + Hydrosphere/Biological/Biological community/Benthic/ + + + 4831 + Benthic gatherers (% of community) + Benthic gatherers (% of community) + Hydrosphere/Biological/Biological community/Benthic/ + + + 4832 + Benthic grazers (% of community) + Benthic grazers (% of community) + Hydrosphere/Biological/Biological community/Benthic/ + + + 4833 + Benthic predators (% of community) + Benthic predators (% of community) + Hydrosphere/Biological/Biological community/Benthic/ + + + 4834 + Benthic shredders (% of community) + Benthic shredders (% of community) + Hydrosphere/Biological/Biological community/Benthic/ + + + 4835 + Benthos organisms - none present + Benthos organisms - none present + Hydrosphere/Biological/Biological community/Benthic/ + + + 4836 + Benthos total abundance number per square meter + Benthos total abundance number per square meter + Hydrosphere/Biological/Biological community/Benthic/ + + + 4837 + Number of benthic functional feeding groups + Number of benthic functional feeding groups + Hydrosphere/Biological/Biological community/Benthic/ + + + 4838 + Number of diptera taxa + Number of diptera taxa + Hydrosphere/Biological/Biological community/Benthic/ + + + 4839 + Number of ephemeroptera taxa + Number of ephemeroptera taxa + Hydrosphere/Biological/Biological community/Benthic/ + + + 4840 + Number of non-insect taxa + Number of non-insect taxa + Hydrosphere/Biological/Biological community/Benthic/ + + + 4841 + Number of total of organisms per sq ft + Number of total of organisms per sq ft + Hydrosphere/Biological/Biological community/Benthic/ + + + 4842 + Number of total of species in sample + Number of total of species in sample + Hydrosphere/Biological/Biological community/Benthic/ + + + 4843 + Percent dominant (3 taxa) + Percent dominant (3 taxa) + Hydrosphere/Biological/Biological community/Benthic/ + + + 4844 + Percent dominant taxon, benthos + Percent dominant taxon, benthos + Hydrosphere/Biological/Biological community/Benthic/ + + + 4845 + Percent of individuals as chironomidae + Percent of individuals as chironomidae + Hydrosphere/Biological/Biological community/Benthic/ + + + 4846 + Percent of individual as ept + Percent of individual as ept + Hydrosphere/Biological/Biological community/Benthic/ + + + 4847 + Percent of individuals as tolerants, benthos + Percent of individuals as tolerants, benthos + Hydrosphere/Biological/Biological community/Benthic/ + + + 4848 + Percent of total number as elmidae + Percent of total number as elmidae + Hydrosphere/Biological/Biological community/Benthic/ + + + 4849 + Percent of total trichoptera as hydropsychidae + Percent of total trichoptera as hydropsychidae + Hydrosphere/Biological/Biological community/Benthic/ + + + 4850 + Ratio of intolerant to tolerant taxa, benthos + Ratio of intolerant to tolerant taxa, benthos + Hydrosphere/Biological/Biological community/Benthic/ + + + 4851 + Total # of benthic genera in sample + Total # of benthic genera in sample + Hydrosphere/Biological/Biological community/Benthic/ + + + 4852 + Total # of families in benthic sample + Total # of families in benthic sample + Hydrosphere/Biological/Biological community/Benthic/ + + + 4853 + Total biomass, benthos grams (dry weight) + Total biomass, benthos grams (dry weight) + Hydrosphere/Biological/Biological community/Benthic/ + + + 4854 + Total number of intolerant taxa, benthos + Total number of intolerant taxa, benthos + Hydrosphere/Biological/Biological community/Benthic/ + + + 4855 + Total taxa richness, benthos + Total taxa richness, benthos + Hydrosphere/Biological/Biological community/Benthic/ + + + 4895 + Phytoplankton sampled - no organisms present + Phytoplankton sampled - no organisms present + Hydrosphere/Biological/Biological community/Biomass, phytoplankton / + + + 4896 + Phytoplankton, Total + Phytoplankton, Total + Hydrosphere/Biological/Biological community/Biomass, phytoplankton / + + + 4898 + Larva, Unknown + Larva, Unknown + Hydrosphere/Biological/Biological community/Biomass, zooplankton/ + + + 4899 + Larvae, Fish + Larvae, Fish + Hydrosphere/Biological/Biological community/Biomass, zooplankton/ + + + 4900 + Zooplankton sampled - no organisms present + Zooplankton sampled - no organisms present + Hydrosphere/Biological/Biological community/Biomass, zooplankton/ + + + 4901 + Zooplankton - unknown organism + Zooplankton - unknown organism + Hydrosphere/Biological/Biological community/Biomass, zooplankton/ + + + 5025 + Zooplankton, Total + Zooplankton, Total + Hydrosphere/Biological/Biological community/Biomass, zooplankton/ + + + 4827 + Floating algae mats + Algae, floating mats (severity) + Hydrosphere/Biological/Biological community/Dead fish, severity/ + + + 4827 + Algae, floating mats (severity) + Algae, floating mats (severity) + Hydrosphere/Biological/Biological community/Dead fish, severity/ + + + 4826 + Fish standard length + Fish standard length + Hydrosphere/Biological/Biological community/Dead fish, severity/ + + + 4826 + Standard fish length + Fish standard length + Hydrosphere/Biological/Biological community/Dead fish, severity/ + + + 4826 + Fish standard length + Fish standard length + Hydrosphere/Biological/Biological community/Fish/ + + + 4826 + Standard fish length + Fish standard length + Hydrosphere/Biological/Biological community/Fish/ + + + 4874 + Number of individuals per minute electrofishing + Number of individuals per minute electrofishing + Hydrosphere/Biological/Biological community/Fish/ + + + 4875 + Number of individuals per seine haul + Number of individuals per seine haul + Hydrosphere/Biological/Biological community/Fish/ + + + 4876 + Number of species, fish + Number of species, fish + Hydrosphere/Biological/Biological community/Fish/ + + + 4877 + Percent of individuals as hybrids + Percent of individuals as hybrids + Hydrosphere/Biological/Biological community/Fish/ + + + 4878 + Percent of individuals as invertivores + Percent of individuals as invertivores + Hydrosphere/Biological/Biological community/Fish/ + + + 4879 + Percent of individuals as omnivores, fish + Percent of individuals as omnivores, fish + Hydrosphere/Biological/Biological community/Fish/ + + + 4880 + Percent of individuals as piscivores, fish + Percent of individuals as piscivores, fish + Hydrosphere/Biological/Biological community/Fish/ + + + 4881 + Percent of individuals as tolerants, fish + Percent of individuals as tolerants, fish + Hydrosphere/Biological/Biological community/Fish/ + + + 4882 + Percent of individuals with disease or anomaly + Percent of individuals with disease or anomaly + Hydrosphere/Biological/Biological community/Fish/ + + + 4883 + Percent tolerant + Percent tolerant + Hydrosphere/Biological/Biological community/Fish/ + + + 4884 + Total number of darter species + Total number of darter species + Hydrosphere/Biological/Biological community/Fish/ + + + 4885 + Total number of individuals + Total number of individuals + Hydrosphere/Biological/Biological community/Fish/ + + + 4886 + Total number of intolerant species, fish + Total number of intolerant species, fish + Hydrosphere/Biological/Biological community/Fish/ + + + 4887 + Total number of native cyprinid species + Total number of native cyprinid species + Hydrosphere/Biological/Biological community/Fish/ + + + 4888 + Total number of sucker species + Total number of sucker species + Hydrosphere/Biological/Biological community/Fish/ + + + 4889 + Total number of sunfish species + Total number of sunfish species + Hydrosphere/Biological/Biological community/Fish/ + + + 4891 + Redundancy - Nekton + Redundancy - Nekton + Hydrosphere/Biological/Biological community/Nekton/ + + + 4892 + Total number of benthic invertivore species + Total number of benthic invertivore species + Hydrosphere/Biological/Biological community/Nekton/ + + + 4893 + Total number of benthic species + Total number of benthic species + Hydrosphere/Biological/Biological community/Nekton/ + + + 4864 + Chlorophyll + Chlorophyll + Hydrosphere/Biological/Biological community/Pigment/ + + + 5040 + Non-chlorophyll + Non-chlorophyll + Hydrosphere/Biological/Biological community/Pigment/ + + + 4865 + Chlorophyll a + Chlorophyll a + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4866 + Pheophytin + Pheophytin + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4867 + Chlorophyll a allomer + Chlorophyll a allomer + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4868 + Chlorophyll (a+b+c) + Chlorophyll (a+b+c) + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4868 + Chlorophylls + Chlorophyll (a+b+c) + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4869 + Chlorophyll b + Chlorophyll b + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4870 + Chlorophyll c + Chlorophyll c + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4871 + Chlorophyll c1 + c2 + Chlorophyll c1 + c2 + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 4872 + Chlorophyll fluoresence + Chlorophyll fluoresence + Hydrosphere/Biological/Biological community/Pigment/Chlorophyll/ + + + 5041 + 19-Hexanoyloxyfucoxanthin + 19-Hexanoyloxyfucoxanthin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 5042 + 9 cis-Neoxanthin + 9 cis-Neoxanthin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 5043 + Alloxanthin + Alloxanthin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 5044 + Canthaxanthin + Canthaxanthin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 5045 + Diadinoxanthin + Diadinoxanthin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 5046 + Diatoxanthin + Diatoxanthin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 5047 + Peridinin + Peridinin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 5048 + Zeaxanthin + Zeaxanthin + Hydrosphere/Biological/Biological community/Pigment/Non-chlorophyll/ + + + 4154 + Nekton species + Nekton species + Hydrosphere/Biological/Biological taxa/ + + + 4099 + Macrophyte species + Macrophyte species + Hydrosphere/Biological/Biological taxa/ + + + 2513 + Benthic species + Benthic species + Hydrosphere/Biological/Biological taxa/ + + + 3806 + Fish species + Fish species + Hydrosphere/Biological/Biological taxa/ + + + 4192 + Phytoplankton species + Phytoplankton species + Hydrosphere/Biological/Biological taxa/ + + + 4562 + Zooplankton species + Zooplankton species + Hydrosphere/Biological/Biological taxa/ + + + 2514 + Abedus + Abedus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2515 + Ablabesmyia + Ablabesmyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2516 + Ablabesmyia annulata + Ablabesmyia annulata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2517 + Ablabesmyia mallochi + Ablabesmyia mallochi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2518 + Abra aequalis + Abra aequalis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2519 + Acamptocladius + Acamptocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2520 + Acanthagrion + Acanthagrion + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2521 + Acentrella + Acentrella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2522 + Acerpenna + Acerpenna + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2523 + Acetes americanus + Acetes americanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2524 + Acilius + Acilius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2525 + Acroneuria + Acroneuria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2526 + Acteocina canaliculata + Acteocina canaliculata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2527 + Actiniaria + Actiniaria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2528 + Aedes + Aedes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2529 + Aelosomatidae + Aelosomatidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2530 + Aeolosoma + Aeolosoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2531 + Aeschna + Aeschna + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2532 + Aeschnidae + Aeschnidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2533 + Agabinus + Agabinus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2534 + Agabus + Agabus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2535 + Agapetus + Agapetus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2536 + Agraylea + Agraylea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2537 + Agrion + Agrion + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2538 + Agrionidae (Calopterygidae) + Agrionidae (Calopterygidae) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2539 + Aligena texasiana + Aligena texasiana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2540 + Alpheus + Alpheus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2541 + Alpheus heterochaelis + Alpheus heterochaelis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2542 + Amaeana trilobata + Amaeana trilobata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2543 + Ambrysus + Ambrysus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2544 + Ambrysus circumcinctus + Ambrysus circumcinctus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2545 + Ambrysus lunatus + Ambrysus lunatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2546 + Ambrysus pulchellus + Ambrysus pulchellus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2547 + Ameletus + Ameletus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2548 + Ametropus + Ametropus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2549 + Amnicola + Amnicola + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2550 + Ampelisca + Ampelisca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2551 + Ampelisca abdita + Ampelisca abdita + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2552 + Ampelisca vadorum + Ampelisca vadorum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2553 + Ampharetidae + Ampharetidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2554 + Amphiagrion + Amphiagrion + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2555 + Amphinomidae + Amphinomidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2556 + Amphipholis squamata + Amphipholis squamata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2557 + Amphipoda + Amphipoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2558 + Ampithoe Longimannia + Ampithoe Longimannia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2559 + Amygdalum papyria + Amygdalum papyria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2560 + Anachis avara + Anachis avara + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2561 + Anachis obesa + Anachis obesa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2562 + Anacroneuria + Anacroneuria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2563 + Anadara floridana + Anadara floridana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2564 + Anadara ovalis + Anadara ovalis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2565 + Anax + Anax + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2566 + Ancistrosyllis + Ancistrosyllis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2567 + Ancistrosyllis jonesi + Ancistrosyllis jonesi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2568 + Ancistrosyllis papillosa + Ancistrosyllis papillosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2569 + Ancistrosyllis sp b + Ancistrosyllis sp b + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2570 + Ancylidae + Ancylidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2571 + Ancylus + Ancylus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2572 + Ancyronyx + Ancyronyx + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2573 + Ancyronyx variegata + Ancyronyx variegata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2574 + Anisoptera + Anisoptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2575 + Annelida + Annelida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2576 + Anodonta + Anodonta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2577 + Anomalocardia auberiana + Anomalocardia auberiana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2578 + Anomia simplex + Anomia simplex + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2579 + Anopheles + Anopheles + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2580 + Anoplodactylus + Anoplodactylus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2581 + Anostraca + Anostraca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2582 + Anthomyiidae + Anthomyiidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2583 + Aphroditacea + Aphroditacea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2584 + Aphylla + Aphylla + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2585 + Aquarius + Aquarius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2586 + Arabella mutans + Arabella mutans + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2587 + Arabellidae + Arabellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2588 + Archilestes + Archilestes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2589 + Arenicola + Arenicola + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2590 + Arenicola cristata + Arenicola cristata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2591 + Argia + Argia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2592 + Argia translata + Argia translata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2593 + Argia unid. sp. C + Argia unid. sp. C + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2594 + Argia unidentified species a + Argia unidentified species a + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2595 + Argia unidentified species b + Argia unidentified species b + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2596 + Argulus + Argulus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2597 + Aricidea + Aricidea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2598 + Aricidea catherinae + Aricidea catherinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2599 + Aricidea fragilis + Aricidea fragilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2600 + Aricidea phylbinae + Aricidea phylbinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2601 + Aricidea suecica + Aricidea suecica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2602 + Aricidea wassi + Aricidea wassi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2603 + Arigomphus + Arigomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2604 + Armandia agilis + Armandia agilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2605 + Armandia maculata + Armandia maculata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2606 + Arrenurus + Arrenurus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2607 + Arthroplea + Arthroplea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2608 + Arthropoda + Arthropoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2609 + Ascidiacea + Ascidiacea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2610 + Asellidae + Asellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2611 + Asellus + Asellus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2612 + Astacidae + Astacidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2613 + Asteroidea + Asteroidea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2614 + Asychis elongatus + Asychis elongatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2615 + Athericidae + Athericidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2616 + Atherix + Atherix + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2617 + Atherix variegeta + Atherix variegeta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2618 + Athripsodes + Athripsodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2619 + Atoperla ephyre + Atoperla ephyre + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2620 + Atopsyche + Atopsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2621 + Atrichopogon + Atrichopogon + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2622 + Atyidae + Atyidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2623 + Atylus + Atylus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2624 + Aulodrilus + Aulodrilus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2625 + Aulodrilus pigueti + Aulodrilus pigueti + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2626 + Aulodrilus pluriseta + Aulodrilus pluriseta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2627 + Axiothella mucosa + Axiothella mucosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2628 + Baetidae + Baetidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2629 + Baetis + Baetis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2630 + Baetisca + Baetisca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2631 + Baetodes + Baetodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2632 + Balanoglossus + Balanoglossus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2633 + Balanus + Balanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2634 + Balanus eburneus + Balanus eburneus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2635 + Balanus truncatus + Balanus truncatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2636 + Basiaeschna + Basiaeschna + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2637 + Basiaeschna janata + Basiaeschna janata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2638 + Batracobdella + Batracobdella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2639 + Batracobdella phalera + Batracobdella phalera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2640 + Bdellodrilus illuminatus + Bdellodrilus illuminatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2641 + Belonia saturata + Belonia saturata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2642 + Belostoma + Belostoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2643 + Belostomatidae + Belostomatidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2644 + Benthic - unknown organism + Benthic - unknown organism + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2645 + Berosus + Berosus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2646 + Berosus striatus + Berosus striatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2647 + Bezzia + Bezzia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2648 + Bidessonotus + Bidessonotus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2649 + Bidessus + Bidessus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2650 + Bittacomorpha + Bittacomorpha + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2651 + Bittacomorphella + Bittacomorphella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2652 + Boccardia hamata + Boccardia hamata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2653 + Boccardiella + Boccardiella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2654 + Boccardiella ligerica + Boccardiella ligerica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2655 + Bothrioneurum vejdovskyanum + Bothrioneurum vejdovskyanum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2656 + Bowmaniella + Bowmaniella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2657 + Bowmaniella floridana + Bowmaniella floridana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2658 + Boyeria + Boyeria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2659 + Boyeria vinosa + Boyeria vinosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2660 + Brachidontes exustus + Brachidontes exustus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2661 + Brachycentrus + Brachycentrus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2662 + Brachycercus + Brachycercus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2663 + Brachyptera + Brachyptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2664 + Brachyvatus + Brachyvatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2665 + Branchiobdella + Branchiobdella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2666 + Branchiobdellida + Branchiobdellida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2667 + Branchiobdellidae + Branchiobdellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2668 + Branchiura + Branchiura + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2669 + Branchiura sowerbyi + Branchiura sowerbyi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2670 + Brechmorhoga + Brechmorhoga + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2671 + Brechmorhoga mendax + Brechmorhoga mendax + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2672 + Brillia + Brillia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2673 + Brychius + Brychius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2674 + Bryocamptus zschokkei + Bryocamptus zschokkei + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2675 + Bryozoa + Bryozoa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2676 + Buenoa + Buenoa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2677 + Bulimidae (Amnicolidae) + Bulimidae (Amnicolidae) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2678 + Bunodosoma cavernata + Bunodosoma cavernata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2679 + Caecum johnsoni + Caecum johnsoni + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2680 + Caecum pulchellum + Caecum pulchellum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2681 + Caenidae + Caenidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2682 + Caenis + Caenis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2683 + Caenis amica + Caenis amica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2684 + Caenis hilaris + Caenis hilaris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2685 + Caenis unid. sp. a + Caenis unid. sp. a + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2686 + Callianassa + Callianassa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2687 + Callianassa jamaicense louisianensis + Callianassa jamaicense louisianensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2688 + Callibaetis + Callibaetis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2689 + Callibaetis californicus + Callibaetis californicus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2690 + Callibaetis floridanus + Callibaetis floridanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2691 + Callinectes + Callinectes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2692 + Callinectes sapidus + Callinectes sapidus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2693 + Calopsectra + Calopsectra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2694 + Calopterygidae + Calopterygidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2695 + Calopteryx + Calopteryx + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2696 + Calphyaryphus + Calphyaryphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2697 + Cambarellus + Cambarellus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2698 + Cambaridae + Cambaridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2699 + Cambarinae + Cambarinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2700 + Cambarus + Cambarus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2701 + Camelobaetidius (Formerly dactylobaetis) + Camelobaetidius (Formerly dactylobaetis) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2702 + Camelobaetidius variabilis + Camelobaetidius variabilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2703 + Campeloma + Campeloma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2704 + Campsicnemus + Campsicnemus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2705 + Campsurus + Campsurus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2706 + Cannacria + Cannacria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2707 + Cantharus cancellarius + Cantharus cancellarius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2708 + Capitella + Capitella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2709 + Capitella capitata + Capitella capitata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2710 + Capitellidae + Capitellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2711 + Capitellides jonesi + Capitellides jonesi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2712 + Capitomastus aciculatus + Capitomastus aciculatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2713 + Caprella + Caprella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2714 + Caprellidae + Caprellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2715 + Carabidae + Carabidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2716 + Cardiocladius + Cardiocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2717 + Celina + Celina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2718 + Centroptilum + Centroptilum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2719 + Ceraclea + Ceraclea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2720 + Cerapus tubularius + Cerapus tubularius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2721 + Ceratocephale + Ceratocephale + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2722 + Ceratonereis + Ceratonereis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2723 + Ceratonereis irritabilis + Ceratonereis irritabilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2724 + Ceratonereis tridentata + Ceratonereis tridentata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2725 + Ceratopogonidae (heleidae) + Ceratopogonidae (heleidae) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2726 + Ceratopsyche + Ceratopsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2727 + Cerebratulus + Cerebratulus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2728 + Cerebratulus lacteus + Cerebratulus lacteus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2729 + Cernotina + Cernotina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2730 + Chaetogaster + Chaetogaster + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2731 + Chaetognatha + Chaetognatha + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2732 + Chaetozone + Chaetozone + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2733 + Chaoboridae + Chaoboridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2734 + Chaoborus + Chaoborus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2735 + Chaoborus punctipennis + Chaoborus punctipennis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2736 + Chauliodes + Chauliodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2737 + Cheumatopsyche + Cheumatopsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2738 + Chimarra + Chimarra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2739 + Chimarra unidentified species a + Chimarra unidentified species a + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2740 + Chione cancelata + Chione cancelata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2741 + Chione clenchi + Chione clenchi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2742 + Chiridotea + Chiridotea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2743 + Chironomidae + Chironomidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2744 + Chironominae + Chironominae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2745 + Chironomus + Chironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2746 + Chironomus attenuatus + Chironomus attenuatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2747 + Chironomus decorus + Chironomus decorus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2748 + Chironomus riparius + Chironomus riparius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2749 + Chironomus tentans + Chironomus tentans + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2750 + Chlamydotheca + Chlamydotheca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2751 + Chlamydotheca arcuata + Chlamydotheca arcuata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2752 + Chlorotabanus + Chlorotabanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2753 + Chone + Chone + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2754 + Chone americana + Chone americana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2755 + Chone duneri + Chone duneri + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2756 + Choroterpes + Choroterpes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2757 + Choroterpes mexicanus + Choroterpes mexicanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2758 + Chrysomelidae + Chrysomelidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2759 + Chrysops + Chrysops + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2760 + Cicadellidae + Cicadellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2761 + Cincinnatia cincinnatiensis + Cincinnatia cincinnatiensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2762 + Cinygma + Cinygma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2763 + Cinygmula + Cinygmula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2764 + Cirratulidae + Cirratulidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2765 + Cirripedia + Cirripedia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2766 + Cirrophorus + Cirrophorus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2767 + Cirrophorus americanus + Cirrophorus americanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2768 + Cirrophorus furcatus + Cirrophorus furcatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2769 + Cirrophorus lyra + Cirrophorus lyra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2770 + Claassenia + Claassenia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2771 + Cladocera + Cladocera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2772 + Cladotanytarsus + Cladotanytarsus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2773 + Cladotanytarsus mancus + Cladotanytarsus mancus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2774 + Clibanarius vittatus + Clibanarius vittatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2775 + Climacia areolaris + Climacia areolaris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2776 + Clinotanypus + Clinotanypus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2777 + Clymenella torquata + Clymenella torquata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2778 + Cnephia + Cnephia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2779 + Cochliopa + Cochliopa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2780 + Cochliopa texana + Cochliopa texana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2781 + Coelotanypus + Coelotanypus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2782 + Coenagrionidae + Coenagrionidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2783 + Coleoptera + Coleoptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2784 + Collembola + Collembola + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2785 + Conchapelopia + Conchapelopia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2786 + Conchapelopia fasciata + Conchapelopia fasciata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2787 + Conchostraca + Conchostraca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2788 + Congeria leucophaeata + Congeria leucophaeata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2789 + Constempellina + Constempellina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2790 + Copelatus + Copelatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2791 + Copepoda + Copepoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2792 + Cortotomus + Cortotomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2793 + Corbicula + Corbicula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2794 + Corbicula fluminea + Corbicula fluminea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2795 + Corbicula manilensis + Corbicula manilensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2796 + Corbiculidae (cyrenidae) + Corbiculidae (cyrenidae) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2797 + Corbula + Corbula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2798 + Corbula swiftiana + Corbula swiftiana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2799 + Cordulegaster + Cordulegaster + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2800 + Corduliidae + Corduliidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2801 + Corethrella + Corethrella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2802 + Corixidae + Corixidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2803 + Corophium + Corophium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2804 + Corophium tuberculatum + Corophium tuberculatum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2805 + Corydalidae + Corydalidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2806 + Corydalus + Corydalus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2807 + Corydalus cornutus + Corydalus cornutus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2808 + Corynoneura + Corynoneura + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2809 + Coryphella + Coryphella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2810 + Cossura + Cossura + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2811 + Cossura delta + Cossura delta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2812 + Crassinella lunulata + Crassinella lunulata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2813 + Crassostrea virginica + Crassostrea virginica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2814 + Cratena kaoruae + Cratena kaoruae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2815 + Crepidula + Crepidula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2816 + Crepidula convexa + Crepidula convexa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2817 + Crepidula fornicata + Crepidula fornicata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2818 + Crepidula plana + Crepidula plana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2819 + Cricotopus + Cricotopus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2820 + Cricotopus bicinctus + Cricotopus bicinctus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2821 + Cricotopus tremulus + Cricotopus tremulus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2822 + Crustacea + Crustacea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2823 + Cryphocricos + Cryphocricos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2824 + Cryphocricos hungerfordi + Cryphocricos hungerfordi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2825 + Cryptochironomus + Cryptochironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2826 + Cryptochironomus fulvus + Cryptochironomus fulvus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2827 + Cryptolabis + Cryptolabis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2828 + Culex + Culex + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2829 + Culicidae + Culicidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2830 + Culicoides + Culicoides + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2831 + Cumacea + Cumacea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2832 + Cumulativ abun of benthic from feed grp % of com + Cumulativ abun of benthic from feed grp % of com + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2833 + Curculionidae + Curculionidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2834 + Curicta + Curicta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2835 + Cybister + Cybister + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2836 + Cyclaspis + Cyclaspis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2837 + Cyclaspis varians + Cyclaspis varians + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2838 + Cyclopoida + Cyclopoida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2839 + Cyclops navus + Cyclops navus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2840 + Cyclorrhapha + Cyclorrhapha + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2841 + Cylichna Bidentata + Cylichna Bidentata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2842 + Cylloepus + Cylloepus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2843 + Cylloepus abnormis + Cylloepus abnormis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2844 + Cymatium nicobaricum + Cymatium nicobaricum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2845 + Cymbiodyta + Cymbiodyta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2846 + Cymodoce faxoni + Cymodoce faxoni + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2847 + Cyphon + Cyphon + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2848 + Cypridopsis + Cypridopsis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2849 + Cypridopsis vidua + Cypridopsis vidua + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2850 + Cyrenella + Cyrenella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2851 + Dactylobaetis mexicanus + Dactylobaetis mexicanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2852 + Daphnia pulex + Daphnia pulex + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2853 + Dasyhelea + Dasyhelea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2854 + Decamastus + Decamastus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2855 + Decapoda + Decapoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2856 + Dero + Dero + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2857 + Dero digitata + Dero digitata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2858 + Dero trifida + Dero trifida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2859 + Derovatellus + Derovatellus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2860 + Diamesa + Diamesa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2861 + Diamesinae + Diamesinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2862 + Diastylis + Diastylis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2863 + Diastylis quadrispinosa + Diastylis quadrispinosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2864 + Diastylis sculpta + Diastylis sculpta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2865 + Dicrotendipes + Dicrotendipes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2866 + Dicrotendipes modestus + Dicrotendipes modestus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2867 + Dicrotendipes neomodestus + Dicrotendipes neomodestus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2868 + Dicrotendipes nervosus + Dicrotendipes nervosus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2869 + Didymops + Didymops + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2870 + Dina + Dina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2871 + Dineutus + Dineutus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2872 + Diogenidae + Diogenidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2873 + Diopatra + Diopatra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2874 + Diopatra cuprea + Diopatra cuprea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2875 + Diplectrona + Diplectrona + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2876 + Diplocladius + Diplocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2877 + Diplodonta + Diplodonta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2878 + Diplodonta semiaspera + Diplodonta semiaspera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2879 + Diplothyra smythi + Diplothyra smythi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2880 + Diptera + Diptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2881 + Dispio uncinata + Dispio uncinata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2882 + Diversity - benthos + Diversity - benthos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2883 + Dixa + Dixa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2884 + Dixella + Dixella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2885 + Dixidae + Dixidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2886 + Dolania + Dolania + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2887 + Dolichopodidae + Dolichopodidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2888 + Dolophilodes + Dolophilodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2889 + Dominant benthic func feeding grp, % of communit + Dominant benthic func feeding grp, % of communit + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2890 + Donacia + Donacia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2891 + Dorocordulia + Dorocordulia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2892 + Dorvilleidae + Dorvilleidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2893 + Dosinia discus + Dosinia discus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2894 + Dosinia elegans + Dosinia elegans + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2895 + Drilonereis + Drilonereis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2896 + Drilonereis longa + Drilonereis longa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2897 + Drilonereis magna + Drilonereis magna + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2898 + Dromogomphus + Dromogomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2899 + Dryopidae + Dryopidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2900 + Dryops + Dryops + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2901 + Dubiraphia + Dubiraphia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2902 + Dugesia + Dugesia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2903 + Dugesia dorotocephala + Dugesia dorotocephala + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2904 + Dugesia tigrina + Dugesia tigrina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2905 + Dythemis + Dythemis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2906 + Dytiscidae + Dytiscidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2907 + Dytiscus + Dytiscus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2908 + Eclipidrilus (mesoporodrilus) + Eclipidrilus (mesoporodrilus) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2909 + Edotea montosa + Edotea montosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2910 + Edotea triloba + Edotea triloba + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2911 + Ehlersileanira + Ehlersileanira + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2912 + Ehlersileanira incisa + Ehlersileanira incisa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2913 + Elimia + Elimia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2914 + Elimia comalensis + Elimia comalensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2915 + Ellipes + Ellipes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2916 + Elmidae + Elmidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2917 + Elodes + Elodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2918 + Elophila + Elophila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2919 + Empididae + Empididae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2920 + Enallagma + Enallagma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2921 + Enallagma boreale + Enallagma boreale + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2922 + Enchytraeidae + Enchytraeidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2923 + Endochironomus + Endochironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2924 + Enochrus + Enochrus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2925 + Ensis minor + Ensis minor + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2926 + Ephemera + Ephemera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2927 + Ephemera varia + Ephemera varia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2928 + Ephemerella + Ephemerella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2929 + Ephemerellidae + Ephemerellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2930 + Ephemeridae + Ephemeridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2931 + Ephemeroptera + Ephemeroptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2932 + Ephoron + Ephoron + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2933 + Ephydra + Ephydra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2934 + Ephydra riparia + Ephydra riparia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2935 + Ephydridae + Ephydridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2936 + Epicordulia + Epicordulia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2937 + Epitheca + Epitheca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2938 + Epitonium + Epitonium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2939 + Epitonium albidum + Epitonium albidum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2940 + Epitonium humphreysi + Epitonium humphreysi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2941 + Epitonium rupicola + Epitonium rupicola + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2942 + Ept index + Ept index + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2943 + Equitability - benthos + Equitability - benthos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2944 + Eriocera + Eriocera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2945 + Erioptera + Erioptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2946 + Erpetogomphus + Erpetogomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2947 + Erpobdellidae + Erpobdellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2948 + Erythemis + Erythemis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2949 + Eteone heteropoda + Eteone heteropoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2950 + Eteone lactea + Eteone lactea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2951 + Euclymene + Euclymene + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2952 + Eudorella + Eudorella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2953 + Eudorella truncatula + Eudorella truncatula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2954 + Eukiefferiella + Eukiefferiella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2955 + Eulalia + Eulalia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2956 + Eulimastoma weberi + Eulimastoma weberi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2957 + Eumida sanguinea + Eumida sanguinea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2958 + Eunicidae + Eunicidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2959 + Euparyphus + Euparyphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2960 + Eupera + Eupera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2961 + Eupera cubensis + Eupera cubensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2962 + Eurylophella + Eurylophella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2963 + Fallceon quilleri (formerly baetis) + Fallceon quilleri (formerly baetis) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2964 + Farrodes texanus + Farrodes texanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2965 + Ferrissia + Ferrissia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2966 + Flabellifera + Flabellifera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2967 + Forcipomyia + Forcipomyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2968 + Fossaria + Fossaria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2969 + Galerucella + Galerucella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2970 + Gammaridae + Gammaridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2971 + Gammarus + Gammarus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2972 + Gammarus fasciatus + Gammarus fasciatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2973 + Gammarus lacustris + Gammarus lacustris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2974 + Gammarus limnaeus + Gammarus limnaeus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2975 + Gastropoda + Gastropoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2976 + Gattyana cirrosa + Gattyana cirrosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2977 + Gelastocoridae + Gelastocoridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2978 + Gelastocoris + Gelastocoris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2979 + Georyssidae + Georyssidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2980 + Gerridae + Gerridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2981 + Gerris + Gerris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2982 + Geukensia + Geukensia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2983 + Geukensia demissa + Geukensia demissa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2984 + Glossiphonia + Glossiphonia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2985 + Glossiphoniidae + Glossiphoniidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2986 + Glossosomatidae + Glossosomatidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2987 + Glycera + Glycera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2988 + Glycera americana + Glycera americana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2989 + Glycinde solitaria + Glycinde solitaria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2990 + Glyptotendipes + Glyptotendipes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2991 + Glyptotendipes senilis + Glyptotendipes senilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2992 + Goeldichironomus + Goeldichironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2993 + Goeldichironomus holoprasinus + Goeldichironomus holoprasinus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2994 + Goeldichironomus natans gr. + Goeldichironomus natans gr. + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2995 + Goeldichironomus pictus gr. + Goeldichironomus pictus gr. + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2996 + Gomphidae + Gomphidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2997 + Gomphoides + Gomphoides + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2998 + Gomphus + Gomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 2999 + Gomphus (arigomphus) lentulus + Gomphus (arigomphus) lentulus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3000 + Gomphus externus + Gomphus externus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3001 + Gomphus modestus + Gomphus modestus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3002 + Goniadidae + Goniadidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3003 + Gordius + Gordius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3004 + Graptocorixa + Graptocorixa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3005 + Gundlachia radiata + Gundlachia radiata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3006 + Gyptis brevipalpa + Gyptis brevipalpa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3007 + Gyptis vittata + Gyptis vittata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3008 + Gyraulus + Gyraulus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3009 + Gyretes + Gyretes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3010 + Gyrinidae + Gyrinidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3011 + Gyrinus + Gyrinus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3012 + Habrophlebia + Habrophlebia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3013 + Habrophlebiodes + Habrophlebiodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3014 + Hagenius + Hagenius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3015 + Hagenius brevistylus + Hagenius brevistylus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3016 + Haliplidae + Haliplidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3017 + Haliplus + Haliplus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3018 + Halobates + Halobates + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3019 + Haplotaxis + Haplotaxis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3020 + Harnischia + Harnischia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3021 + Harnischia edwardsi + Harnischia edwardsi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3022 + Hastaperla brevis + Hastaperla brevis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3023 + Haustoriidae + Haustoriidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3024 + Hebetancylus excentricus + Hebetancylus excentricus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3025 + Hebrus + Hebrus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3026 + Heleidae + Heleidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3027 + Helichus + Helichus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3028 + Helichus immsi + Helichus immsi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3029 + Helichus lithophilus + Helichus lithophilus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3030 + Helichus suturalis + Helichus suturalis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3031 + Helicopsyche + Helicopsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3032 + Helicopsychidae + Helicopsychidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3033 + Helisoma + Helisoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3034 + Helisoma anceps + Helisoma anceps + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3035 + Helobata + Helobata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3036 + Helobdella + Helobdella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3037 + Helobdella elongata + Helobdella elongata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3038 + Helobdella stagnalis + Helobdella stagnalis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3039 + Helobdella triserialis + Helobdella triserialis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3040 + Helochares + Helochares + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3041 + Helocordulia + Helocordulia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3042 + Helodidae + Helodidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3043 + Helophorus + Helophorus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3044 + Hemerodromia + Hemerodromia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3045 + Hemiaegina minuta + Hemiaegina minuta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3046 + Hemiptera + Hemiptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3047 + Heptagenia + Heptagenia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3048 + Heptageniidae + Heptageniidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3049 + Herpetocypris + Herpetocypris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3050 + Hesionidae + Hesionidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3051 + Hesperocorixa + Hesperocorixa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3052 + Hesperophylax + Hesperophylax + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3053 + Hetaerina + Hetaerina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3054 + Heterelmis + Heterelmis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3055 + Heterelmis glabra + Heterelmis glabra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3056 + Heterelmis vulnerata + Heterelmis vulnerata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3057 + Heteromastus filiformis + Heteromastus filiformis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3058 + Heterotrissocladius + Heterotrissocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3059 + Hexacylloepus + Hexacylloepus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3060 + Hexacylloepus ferrugineous + Hexacylloepus ferrugineous + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3061 + Hexagenia + Hexagenia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3062 + Hexagenia limbata + Hexagenia limbata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3063 + Hexagenia rigida + Hexagenia rigida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3064 + Hexatoma + Hexatoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3065 + Hilsenhoff biotic index + Hilsenhoff biotic index + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3066 + Hirudinea + Hirudinea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3067 + Hirudinidae (Hirudidae) + Hirudinidae (Hirudidae) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3068 + Hobsonia florida + Hobsonia florida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3069 + Holothuroida + Holothuroida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3070 + Homoeoneuria + Homoeoneuria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3071 + Homoptera + Homoptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3072 + Hyalella azteca + Hyalella azteca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3073 + Hydaticus + Hydaticus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3074 + Hydra + Hydra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3075 + Hydra carnea + Hydra carnea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3076 + Hydracarina + Hydracarina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3077 + Hydrachna + Hydrachna + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3078 + Hydraena + Hydraena + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3079 + Hydrobiidae + Hydrobiidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3080 + Hydrobiomorpha + Hydrobiomorpha + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3081 + Hydrobius + Hydrobius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3082 + Hydrocanthus + Hydrocanthus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3083 + Hydrochara + Hydrochara + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3084 + Hydrochus + Hydrochus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3085 + Hydrodroma despiciens + Hydrodroma despiciens + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3086 + Hydroides + Hydroides + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3087 + Hydroides dianthus + Hydroides dianthus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3088 + Hydrometra + Hydrometra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3089 + Hydroperla crosbyl + Hydroperla crosbyl + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3090 + Hydrophilidae + Hydrophilidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3091 + Hydrophilus + Hydrophilus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3092 + Hydrophilus triangularis + Hydrophilus triangularis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3093 + Hydrophorus + Hydrophorus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3094 + Hydroporus + Hydroporus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3095 + Hydropsyche + Hydropsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3096 + Hydropsyche unid. sp. a + Hydropsyche unid. sp. a + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3097 + Hydropsychidae + Hydropsychidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3098 + Hydroptila + Hydroptila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3099 + Hydroptilidae + Hydroptilidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3100 + Hydroscaphidae + Hydroscaphidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3101 + Hydrovatus + Hydrovatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3102 + Hydrozetes + Hydrozetes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3103 + Hydrozoa + Hydrozoa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3104 + Hydryphantes + Hydryphantes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3105 + Hygrotus + Hygrotus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3106 + Hymenoptara + Hymenoptara + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3107 + Hyponeura + Hyponeura + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3108 + Hyponeura lucens + Hyponeura lucens + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3109 + Ilybius + Ilybius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3110 + Ilyodrilus templetoni + Ilyodrilus templetoni + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3111 + Insecta + Insecta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3112 + Ischadium recurvum + Ischadium recurvum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3113 + Ischnura + Ischnura + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3114 + Isogenus (Hydroperla) + Isogenus (Hydroperla) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3115 + Isonychia + Isonychia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3116 + Isonychia sicca + Isonychia sicca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3117 + Isonychia sicca manca + Isonychia sicca manca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3118 + Isoperla + Isoperla + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3119 + Isopoda + Isopoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3120 + Isotomidae + Isotomidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3121 + Ithytrichia + Ithytrichia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3122 + Kiefferulus + Kiefferulus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3123 + Kurtziella + Kurtziella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3124 + Labiobaetis + Labiobaetis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3125 + Laccobius + Laccobius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3126 + Laccophilus terminalis + Laccophilus terminalis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3127 + Laeonereis culveri + Laeonereis culveri + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3128 + Lampsilis + Lampsilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3129 + Lampyridae + Lampyridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3130 + Lauterborniella + Lauterborniella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3131 + Leitoscoloplos + Leitoscoloplos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3132 + Leitoscoloplos foliosus + Leitoscoloplos foliosus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3133 + Leitoscoloplos fragilis + Leitoscoloplos fragilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3134 + Lembos smithi + Lembos smithi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3135 + Lepidonotus sublevis + Lepidonotus sublevis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3136 + Lepidoptera + Lepidoptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3137 + Leptocella + Leptocella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3138 + Leptoceridae + Leptoceridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3139 + Leptocerus + Leptocerus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3140 + Leptochela serratorbita + Leptochela serratorbita + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3141 + Leptoconops + Leptoconops + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3142 + Leptohyphes + Leptohyphes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3143 + Leptohyphes packeri + Leptohyphes packeri + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3144 + Leptohyphes vescus + Leptohyphes vescus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3145 + Leptophlebia + Leptophlebia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3146 + Leptophlebiidae + Leptophlebiidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3147 + Lestes + Lestes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3148 + Lestidae + Lestidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3149 + Lethocerus + Lethocerus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3150 + Leucon americanus + Leucon americanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3151 + Leucotricha + Leucotricha + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3152 + Leucrocuta + Leucrocuta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3153 + Levinsenia + Levinsenia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3154 + Libellula + Libellula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3155 + Libellulidae + Libellulidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3156 + Limnephilidae + Limnephilidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3157 + Limnephilus + Limnephilus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3158 + Limnochares + Limnochares + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3159 + Limnocoris + Limnocoris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3160 + Limnocoris lutzi + Limnocoris lutzi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3161 + Limnocythere + Limnocythere + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3162 + Limnodrilus + Limnodrilus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3163 + Limnodrilus cervix + Limnodrilus cervix + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3164 + Limnodrilus hoffmeisteri + Limnodrilus hoffmeisteri + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3165 + Limnodrilus udekemianus + Limnodrilus udekemianus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3166 + Limnophila + Limnophila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3167 + Limnophora + Limnophora + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3168 + Limnophora aequifrons + Limnophora aequifrons + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3169 + Limnoporus + Limnoporus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3170 + Limonia + Limonia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3171 + Lineus pallidus + Lineus pallidus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3172 + Liodessus + Liodessus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3173 + Lipogomphus + Lipogomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3174 + Lirceus + Lirceus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3175 + Lispe + Lispe + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3176 + Listriella + Listriella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3177 + Listriella barnardi + Listriella barnardi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3178 + Listriella clymenellae + Listriella clymenellae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3179 + Littoridina + Littoridina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3180 + Loimia + Loimia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3181 + Lumbricidae + Lumbricidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3182 + Lumbridulidae + Lumbridulidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3183 + Lumbrineridae + Lumbrineridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3184 + Lumbrineris + Lumbrineris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3185 + Lumbrineris parvipedata + Lumbrineris parvipedata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3186 + Lumbrineris tenuis + Lumbrineris tenuis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3187 + Lumbrineris verilli + Lumbrineris verilli + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3188 + Lutrochus + Lutrochus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3189 + Lutrochus luteus + Lutrochus luteus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3190 + Lymnaea + Lymnaea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3191 + Lymnaeidae + Lymnaeidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3192 + Lynceus + Lynceus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3193 + Lyonsia hyalina + Lyonsia hyalina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3194 + Lype + Lype + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3195 + Lysidice ninetta + Lysidice ninetta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3196 + Macoma + Macoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3197 + Macoma constricta + Macoma constricta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3198 + Macoma mitchelli + Macoma mitchelli + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3199 + Macrelmis (formerly elsianus) + Macrelmis (formerly elsianus) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3200 + Macrelmis texana (formerly elsianus texanus) + Macrelmis texana (formerly elsianus texanus) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3201 + Macrobrachium + Macrobrachium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3202 + Macrobrachium carcinus + Macrobrachium carcinus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3203 + Macromia + Macromia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3204 + Macromiidae + Macromiidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3205 + Macronychus + Macronychus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3206 + Macronychus glabratus + Macronychus glabratus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3207 + Macrostemum + Macrostemum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3208 + Macrostomidae + Macrostomidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3209 + Macrothemis + Macrothemis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3210 + Macrovelia + Macrovelia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3211 + Magelona + Magelona + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3212 + Magelona pettiboneae + Magelona pettiboneae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3213 + Magelona phyllisae + Magelona phyllisae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3214 + Magelona rosea + Magelona rosea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3215 + Magelona sp. 1 + Magelona sp. 1 + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3216 + Maldane sarsi + Maldane sarsi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3217 + Maldanidae + Maldanidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3218 + Malmgreniella + Malmgreniella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3219 + Malmgreniella sp. a + Malmgreniella sp. a + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3220 + Mangelia plicosa + Mangelia plicosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3221 + Margaritifera + Margaritifera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3222 + Margaritiferidae + Margaritiferidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3223 + Marilia + Marilia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3224 + Marilia flexuosa + Marilia flexuosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3225 + Marphysa + Marphysa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3226 + Mayatrichia + Mayatrichia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3227 + Mayatrichia ponta + Mayatrichia ponta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3228 + Mean point score (% of community) + Mean point score (% of community) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3229 + Mediomastus + Mediomastus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3230 + Mediomastus ambiseta + Mediomastus ambiseta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3231 + Mediomastus californiensis + Mediomastus californiensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3232 + Megalomma + Megalomma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3233 + Megalomma bioculatum + Megalomma bioculatum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3234 + Megalops stage, crab larvae + Megalops stage, crab larvae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3235 + Melinna maculata + Melinna maculata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3236 + Melita + Melita + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3237 + Melita nitida + Melita nitida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3238 + Menippe mercenaria + Menippe mercenaria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3239 + Mercenaria campechiensis + Mercenaria campechiensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3240 + Meropelopia + Meropelopia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3241 + Mesovelia + Mesovelia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3242 + Mesovelia mulsanti + Mesovelia mulsanti + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3243 + Mesoveliidae + Mesoveliidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3244 + Metrichia + Metrichia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3245 + Metriocnemus + Metriocnemus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3246 + Metrobates + Metrobates + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3247 + Miathyria + Miathyria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3248 + Micrasema + Micrasema + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3249 + Microcylloepus + Microcylloepus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3250 + Microcylloepus pusillis + Microcylloepus pusillis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3251 + Microcylloepus texanus + Microcylloepus texanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3252 + Micropanope + Micropanope + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3253 + Micropholis atra + Micropholis atra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3254 + Micropsectra + Micropsectra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3255 + Microstoma mooreobdella + Microstoma mooreobdella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3256 + Microtendipes + Microtendipes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3257 + Microvelia + Microvelia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3258 + Minuspio cirrifera + Minuspio cirrifera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3259 + Mitrella lunata + Mitrella lunata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3260 + Molgula + Molgula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3261 + Mogula manhattensis + Mogula manhattensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3262 + Mollusca + Mollusca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3263 + Monoculodes + Monoculodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3264 + Monoculodes edwardsi + Monoculodes edwardsi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3265 + Monopylephorus + Monopylephorus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3266 + Montacuta texasiana + Montacuta texasiana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3267 + Mooreobdella microstoma + Mooreobdella microstoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3268 + Morphocorixa + Morphocorixa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3269 + Mulinia + Mulinia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3270 + Mulinia lateralis + Mulinia lateralis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3271 + Munroessa + Munroessa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3272 + Musculium + Musculium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3273 + Myrmicinae + Myrmicinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3274 + Mysella + Mysella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3275 + Mysella planulata + Mysella planulata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3276 + Mysidacea + Mysidacea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3277 + Mysidae + Mysidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3278 + Mysidopsis bahia + Mysidopsis bahia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3279 + Mysidopsis bigelowi + Mysidopsis bigelowi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3280 + Mysidopsis furca + Mysidopsis furca + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3281 + Mystacides + Mystacides + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3282 + Mytilidae + Mytilidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3283 + Mytilis edulis + Mytilis edulis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3284 + Mytilopsis leucophaeta + Mytilopsis leucophaeta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3285 + Myxosargus + Myxosargus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3286 + Myzobdella moorei + Myzobdella moorei + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3287 + Naididae + Naididae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3288 + Nadium + Nadium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3289 + Nais + Nais + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3290 + Nais communis + Nais communis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3291 + Nais elinguis + Nais elinguis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3292 + Nais pardalis + Nais pardalis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3293 + Nais variabilis + Nais variabilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3294 + Nanocladius + Nanocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3295 + Narpus + Narpus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3296 + Nasiaeschna + Nasiaeschna + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3297 + Nasiaeschna pentacantha + Nasiaeschna pentacantha + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3298 + Nassarius + Nassarius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3299 + Nassarius acutus + Nassarius acutus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3300 + Nassarius vibex + Nassarius vibex + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3301 + Natica canrema + Natica canrema + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3302 + Naucoridae + Naucoridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3303 + Neanthes + Neanthes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3304 + Neanthes acuminata + Neanthes acuminata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3305 + Neanthes micromma + Neanthes micromma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3306 + Neanthes succinea + Neanthes succinea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3307 + Nebrioporus + Nebrioporus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3308 + Nectopsyche + Nectopsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3309 + Nectopsyche gracilis + Nectopsyche gracilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3310 + Nehalennia + Nehalennia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3311 + Nemata (Nematoda) + Nemata (Nematoda) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3312 + Nematomorpha (Gordiida) + Nematomorpha (Gordiida) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3313 + Nemertea + Nemertea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3314 + Nemotelus + Nemotelus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3315 + Neobidessus + Neobidessus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3316 + Neochoroterpes + Neochoroterpes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3317 + Neoclypeodytes + Neoclypeodytes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3318 + Neocorixa + Neocorixa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3319 + Neoelmis + Neoelmis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3320 + Neoelmis caesa + Neoelmis caesa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3321 + Neoephemera + Neoephemera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3322 + Neogerris + Neogerris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3323 + Neopanope Texana + Neopanope Texana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3324 + Neoperla + Neoperla + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3325 + Neoplea + Neoplea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3326 + Neoplea striola + Neoplea striola + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3327 + Neoscatella + Neoscatella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3328 + Neotrichia + Neotrichia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3329 + Nepa + Nepa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3330 + Nephtys incisa + Nephtys incisa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3331 + Nepidae + Nepidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3332 + Nereidae + Nereidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3333 + Nereis + Nereis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3334 + Nereis falsa + Nereis falsa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3335 + Nereis lamellosa + Nereis lamellosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3336 + Nereis pelagica + Nereis pelagica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3337 + Nereis riisei + Nereis riisei + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3338 + Neritidae + Neritidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3339 + Nerthra + Nerthra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3340 + Neureclipsis + Neureclipsis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3341 + Neurocordulia + Neurocordulia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3342 + Neuroptera + Neuroptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3343 + Nilotanypus + Nilotanypus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3344 + Noctuidae + Noctuidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3345 + Noteridae + Noteridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3346 + Notomastus lobatus + Notomastus lobatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3347 + Notonecta + Notonecta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3348 + Notonectidae + Notonectidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3349 + Nuculana acuta + Nuculana acuta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3350 + Nuculana concentrica + Nuculana concentrica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3351 + Nudibranchia + Nudibranchia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3352 + Nyctiophylax + Nyctiophylax + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3353 + Nymphula + Nymphula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3354 + Ochrotrichia + Ochrotrichia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3355 + Octogomphus + Octogomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3356 + Odonata + Odonata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3357 + Odontoceridae + Odontoceridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3358 + Odontomyia + Odontomyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3359 + Odostomia + Odostomia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3360 + Odostomia gibossa + Odostomia gibossa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3361 + Odostomia impressa + Odostomia impressa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3362 + Odostomia laevigata + Odostomia laevigata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3363 + Oecetis + Oecetis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3364 + Oecetis avara + Oecetis avara + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3365 + Oecetis cincerascens + Oecetis cincerascens + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3366 + Oecetis eddlestoni + Oecetis eddlestoni + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3367 + Oecetis unid. sp. c + Oecetis unid. sp. c + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3368 + Ogyrides alphaerostris + Ogyrides alphaerostris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3369 + Oligochaeta + Oligochaeta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3370 + Oligoneuriidae + Oligoneuriidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3371 + Onuphidae + Onuphidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3372 + Onuphis eremita + Onuphis eremita + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3373 + Onuphis magna + Onuphis magna + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3374 + Opheliidae + Opheliidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3375 + Ophidonais serpentina + Ophidonais serpentina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3376 + Ophiogomphus + Ophiogomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3377 + Ophiuroidea + Ophiuroidea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3378 + Orbiniidae + Orbiniidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3379 + Orconectes + Orconectes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3380 + Ordobrevia + Ordobrevia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3381 + Oreianthus + Oreianthus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3382 + Oreodytes + Oreodytes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3383 + Ormosia + Ormosia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3384 + Orthemis + Orthemis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3385 + Orthemis ferruginea + Orthemis ferruginea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3386 + Orthocladiinae + Orthocladiinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3387 + Orthocladius + Orthocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3388 + Orthocladius dentifer + Orthocladius dentifer + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3389 + Orthocladius sobrinus + Orthocladius sobrinus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3390 + Orthopodomyia + Orthopodomyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3391 + Orthotrichia + Orthotrichia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3392 + Ostracoda + Ostracoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3393 + Owenia + Owenia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3394 + Owenia fusiformis + Owenia fusiformis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3395 + Oxyethira + Oxyethira + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3396 + Oxyurostylis smithi + Oxyurostylis smithi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3397 + Pachydiplax + Pachydiplax + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3398 + Palaemonetes + Palaemonetes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3399 + Palaemonetes intermedius + Palaemonetes intermedius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3400 + Palaemonetes kadiakensis + Palaemonetes kadiakensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3401 + Palaemonetes pugia + Palaemonetes pugia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3402 + Palaemonidae + Palaemonidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3403 + Paleanotus heteroseta + Paleanotus heteroseta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3404 + Palingeniidae + Palingeniidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3405 + Palpomyia + Palpomyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3406 + Palpomyia tibialis + Palpomyia tibialis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3407 + Paludestrina + Paludestrina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3408 + Pandora trilineata + Pandora trilineata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3409 + Panopeus + Panopeus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3410 + Parachironomus + Parachironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3411 + Paracladopelma + Paracladopelma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3412 + Paracloeodes + Paracloeodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3413 + Paracymus + Paracymus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3414 + Paracymus subcuprens + Paracymus subcuprens + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3415 + Paraeurythoe americana + Paraeurythoe americana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3416 + Paragnetina + Paragnetina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3417 + Paragyractis + Paragyractis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3418 + Paragyractis truckedlis + Paragyractis truckedlis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3419 + Paralauterborniella + Paralauterborniella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3420 + Paraleptophlebia + Paraleptophlebia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3421 + Parametriocnemus + Parametriocnemus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3422 + Paramphinome + Paramphinome + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3423 + Paramphinome sp. b + Paramphinome sp. b + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3424 + Paranais literalis + Paranais literalis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3425 + Parandalia + Parandalia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3426 + Parandalia americana + Parandalia americana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3427 + Parandalia fauveli + Parandalia fauveli + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3428 + Parandalia ocularis + Parandalia ocularis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3429 + Paranthus rapiformis + Paranthus rapiformis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3430 + Paraonidae + Paraonidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3431 + Paraonis gracilis + Paraonis gracilis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3432 + Paraplea + Paraplea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3433 + Parapoynx + Parapoynx + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3434 + Paraprionospio pinnata + Paraprionospio pinnata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3435 + Parapsyche + Parapsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3436 + Paratendipes nudisquama + Paratendipes nudisquama + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3437 + Paravelia + Paravelia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3438 + Parthenopidae + Parthenopidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3439 + Pectinaria gouldi + Pectinaria gouldi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3440 + Pedicia + Pedicia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3441 + Pedomoecus + Pedomoecus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3442 + Pelecypoda + Pelecypoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3443 + Pelocoris + Pelocoris + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3444 + Pelonomus + Pelonomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3445 + Peloscolex + Peloscolex + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3446 + Peloscolex gabriellae + Peloscolex gabriellae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3447 + Peltodytes + Peltodytes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3448 + Peltoperla + Peltoperla + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3449 + Penaeidae + Penaeidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3450 + Penaeus + Penaeus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3451 + Penaeus aztecus + Penaeus aztecus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3452 + Penaeus setiferus + Penaeus setiferus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3453 + Pentaneura + Pentaneura + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3454 + Pentaneurini + Pentaneurini + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3455 + Pericoma + Pericoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3456 + Periploma + Periploma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3457 + Periploma inequale + Periploma inequale + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3458 + Periploma margaritaceum + Periploma margaritaceum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3459 + Periploma orbiculare + Periploma orbiculare + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3460 + Perithemis + Perithemis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3461 + Perithemis domitia + Perithemis domitia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3462 + Perlesta + Perlesta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3463 + Perlesta placida + Perlesta placida + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3464 + Perlidae + Perlidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3465 + Perlinella + Perlinella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3466 + Perlodidae + Perlodidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3467 + Petricola pholadiformis + Petricola pholadiformis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3468 + Petrophila + Petrophila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3469 + Phaenopsectra + Phaenopsectra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3470 + Phanocerus + Phanocerus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3471 + Phascolion strombi + Phascolion strombi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3472 + Philopotamidae + Philopotamidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3473 + Pholas camphechiensis + Pholas camphechiensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3474 + Phoronis architecta + Phoronis architecta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3475 + Phoxocephalidae + Phoxocephalidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3476 + Phryganea + Phryganea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3477 + Phyllodoce arenae + Phyllodoce arenae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3478 + Phyllodocidae + Phyllodocidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3479 + Phyllogomphoides + Phyllogomphoides + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3480 + Phyllogomphoides allbrighti + Phyllogomphoides allbrighti + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3481 + Phyllogomphoidea stigmatus + Phyllogomphoidea stigmatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3482 + Phylloicus ornatus + Phylloicus ornatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3483 + Phylocentropus + Phylocentropus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3484 + Physella + Physella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3485 + Physella virgata + Physella virgata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3486 + Physidae + Physidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3487 + Pilargidae + Pilargidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3488 + Pilargis + Pilargis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3489 + Pilargis berkeleyae + Pilargis berkeleyae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3490 + Pinnixa + Pinnixa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3491 + Pinnixa chaetopterana + Pinnixa chaetopterana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3492 + Pinnixa cristata + Pinnixa cristata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3493 + Pinnixa sayana + Pinnixa sayana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3494 + Pinnotheres ostreum + Pinnotheres ostreum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3495 + Piscicolidae + Piscicolidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3496 + Pisidium + Pisidium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3497 + Pisidium casertanum + Pisidium casertanum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3498 + Pista + Pista + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3499 + Pista cristata + Pista cristata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3500 + Pista palmata + Pista palmata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3501 + Placobdella + Placobdella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3502 + Placobdella ornata + Placobdella ornata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3503 + Placobdella parasitica + Placobdella parasitica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3504 + Planaria + Planaria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3505 + Planariidae + Planariidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3506 + Planorbella + Planorbella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3507 + Planorbidae + Planorbidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3508 + Planorbula + Planorbula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3509 + Plathemis + Plathemis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3510 + Platyhelminthes + Platyhelminthes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3511 + Plauditus + Plauditus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3512 + Plecoptera + Plecoptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3513 + Plesiopora + Plesiopora + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3514 + Pleurocera + Pleurocera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3515 + Pleuroceridae + Pleuroceridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3516 + Podonominae + Podonominae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3517 + Polinices duplicatus + Polinices duplicatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3518 + Polycentropodidae + Polycentropodidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3519 + Polycentropus + Polycentropus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3520 + Polychaeta + Polychaeta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3521 + Polydora + Polydora + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3522 + Polydora aggregata + Polydora aggregata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3523 + Polydora caulleryi + Polydora caulleryi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3524 + Polydora ciliata + Polydora ciliata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3525 + Polydora ligni + Polydora ligni + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3526 + Polydora quadrilobata + Polydora quadrilobata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3527 + Polydora socialis + Polydora socialis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3528 + Polydora websteri + Polydora websteri + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3529 + Polymeda + Polymeda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3530 + Polymesoda caroliniana + Polymesoda caroliniana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3531 + Polynoidae + Polynoidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3532 + Polypedilum + Polypedilum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3533 + Polypedilum digitifer + Polypedilum digitifer + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3534 + Polypedilum flavum + Polypedilum flavum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3535 + Polypedilum halterale + Polypedilum halterale + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3536 + Polypedilum illinoense + Polypedilum illinoense + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3537 + Polypedilum ontario + Polypedilum ontario + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3538 + Polyplectropus + Polyplectropus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3539 + Pomatiopsis + Pomatiopsis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3540 + Pomatoceros + Pomatoceros + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3541 + Pomatoceros americanus + Pomatoceros americanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3542 + Portunidae + Portunidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3543 + Potamanthus + Potamanthus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3544 + Potamilla reniformis + Potamilla reniformis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3545 + Potamothrix + Potamothrix + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3546 + Potamothrix vejdovsky + Potamothrix vejdovsky + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3547 + Potamyia + Potamyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3548 + Potthastia + Potthastia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3549 + Prionospio + Prionospio + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3550 + Prionospio cirrifera + Prionospio cirrifera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3551 + Prionospio heterobranchia + Prionospio heterobranchia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3552 + Prionospio pygmdea + Prionospio pygmdea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3553 + Pristina + Pristina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3554 + Pristina americana + Pristina americana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3555 + Pristina idrensis + Pristina idrensis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3556 + Pristina leidyi + Pristina leidyi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3557 + Pristina osborni + Pristina osborni + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3558 + Pristina sima + Pristina sima + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3559 + Pristina synclites + Pristina synclites + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3560 + Probezzia + Probezzia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3561 + Procambarus + Procambarus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3562 + Procambarus clarki + Procambarus clarki + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3563 + Procambarus dupratzi + Procambarus dupratzi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3564 + Procladius + Procladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3565 + Procladius (holotanypus) + Procladius (holotanypus) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3566 + Procloeon distinctum + Procloeon distinctum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3567 + Procloeon rufostrigatum + Procloeon rufostrigatum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3568 + Procloeon, genus of mayfly + Procloeon, genus of mayfly + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3569 + Prodiamesa + Prodiamesa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3570 + Progomphus + Progomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3571 + Progomphus borealis + Progomphus borealis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3572 + Promoresia + Promoresia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3573 + Pronoterus + Pronoterus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3574 + Prostoma graecens + Prostoma graecens + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3575 + Prostoma rubrum + Prostoma rubrum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3576 + Protoptila + Protoptila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3577 + Psectrocladius + Psectrocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3578 + Psectrotanypus + Psectrotanypus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3579 + Psephenidae + Psephenidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3580 + Psephenus + Psephenus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3581 + Psephenus texanus + Psephenus texanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3582 + Pseudesuccinea columella + Pseudesuccinea columella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3583 + Pseudeurythoe ambigua + Pseudeurythoe ambigua + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3584 + Pseudocentroptiloides + Pseudocentroptiloides + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3585 + Pseudochironomus + Pseudochironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3586 + Pseudocloeon + Pseudocloeon + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3587 + Pseudocloeon propinquum + Pseudocloeon propinquum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3588 + Pseudoleon + Pseudoleon + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3589 + Pseudolimnophila + Pseudolimnophila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3590 + Pseudorthocladius + Pseudorthocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3591 + Psychoda + Psychoda + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3592 + Psychodidae + Psychodidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3593 + Psychomyia + Psychomyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3594 + Psychomyiidae + Psychomyiidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3595 + Pteronarcys + Pteronarcys + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3596 + Ptilostomis + Ptilostomis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3597 + Pugesiatigrina + Pugesiatigrina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3598 + Pycnogonid + Pycnogonid + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3599 + Pycnopsyche + Pycnopsyche + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3600 + Pyralidae + Pyralidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3601 + Pyramidella crenulata + Pyramidella crenulata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3602 + Pyrgophorus spinosus + Pyrgophorus spinosus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3603 + Ranatra + Ranatra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3604 + Rangia + Rangia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3605 + Rangia cuneata + Rangia cuneata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3606 + Rangia flexuosa + Rangia flexuosa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3607 + Redundancy - benthos + Redundancy - benthos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3608 + Retusa canaliculata + Retusa canaliculata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3609 + Rhagionidae + Rhagionidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3610 + Rhagovelia + Rhagovelia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3611 + Rhantus + Rhantus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3612 + Rheocricotopus + Rheocricotopus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3613 + Rheocricotopus fuscipes + Rheocricotopus fuscipes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3614 + Rheotanytarsus + Rheotanytarsus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3615 + Rheotanytarsus exiguus + Rheotanytarsus exiguus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3616 + Rheumatobates + Rheumatobates + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3617 + Rhithrogena + Rhithrogena + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3618 + Rhithropanopeus harrisii + Rhithropanopeus harrisii + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3619 + Rhyacodrilus + Rhyacodrilus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3620 + Rhyacophila + Rhyacophila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3621 + Rhyacophilidae + Rhyacophilidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3622 + Rhynchocoela (nemertea) + Rhynchocoela (nemertea) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3623 + Rictaxis punctostriatus + Rictaxis punctostriatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3624 + Sabella + Sabella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3625 + Sabella melanostigma + Sabella melanostigma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3626 + Sabella microphthalma + Sabella microphthalma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3627 + Sabellidae + Sabellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3628 + Saldidae + Saldidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3629 + Saldula + Saldula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3630 + Scatella + Scatella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3631 + Schistomeringos + Schistomeringos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3632 + Schistomeringos rudolphi + Schistomeringos rudolphi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3633 + Sciomyzidae (tetanoceridae) + Sciomyzidae (tetanoceridae) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3634 + Scirtes + Scirtes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3635 + Scolelepis squamata + Scolelepis squamata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3636 + Scolelepis texana + Scolelepis texana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3637 + Scoloplos + Scoloplos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3638 + Seila adamsi + Seila adamsi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3639 + Semele proficua + Semele proficua + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3640 + Serpulidae + Serpulidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3641 + Sialis + Sialis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3642 + Sialodea (megaloptera) + Sialodea (megaloptera) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3643 + Sigambra bassi + Sigambra bassi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3644 + Sigambra tentaculata + Sigambra tentaculata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3645 + Simuliidae + Simuliidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3646 + Simulium + Simulium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3647 + Simulium bivittatum + Simulium bivittatum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3648 + Simulium venustum + Simulium venustum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3649 + Simulium vittatum + Simulium vittatum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3650 + Siphlonuridae + Siphlonuridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3651 + Siphilonurinae + Siphilonurinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3652 + Siphlonurus + Siphlonurus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3653 + Sipuncula + Sipuncula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3654 + Slavina appendiculata + Slavina appendiculata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3655 + Smicridea + Smicridea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3656 + Smittia + Smittia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3657 + Somatochlora + Somatochlora + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3658 + Spanglerogyrus + Spanglerogyrus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3659 + Sparganophilus tamesis + Sparganophilus tamesis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3660 + Sperchon + Sperchon + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3661 + Sperchon texana + Sperchon texana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3662 + Sphaeriidae + Sphaeriidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3663 + Sphaerium + Sphaerium + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3664 + Sphaerium striatinum + Sphaerium striatinum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3665 + Sphaerium transversum + Sphaerium transversum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3666 + Sphaeromidae + Sphaeromidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3667 + Spiochaetopterus oculatus + Spiochaetopterus oculatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3668 + Spionidae + Spionidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3669 + Spiophanes + Spiophanes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3670 + Spiophanes bombyx + Spiophanes bombyx + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3671 + Squilla + Squilla + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3672 + Stactobiella (tascobia) + Stactobiella (tascobia) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3673 + Staphylinidae + Staphylinidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3674 + Stelechomyia perpulchra + Stelechomyia perpulchra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3675 + Stenacron + Stenacron + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3676 + Stenelmis + Stenelmis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3677 + Stenelmis cheryl (formerly s.bicarinata) + Stenelmis cheryl (formerly s.bicarinata) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3678 + Stenelmis crenata + Stenelmis crenata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3679 + Stenelmis decorata + Stenelmis decorata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3680 + Stenelmis new species + Stenelmis new species + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3681 + Stenelmis occidentalis (was s. mexicana) + Stenelmis occidentalis (was s. mexicana) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3682 + Stenochironomus + Stenochironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3683 + Stenonema + Stenonema + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3684 + Stenonema femoratum + Stenonema femoratum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3685 + Stenothoe minuta + Stenothoe minuta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3686 + Stenus + Stenus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3687 + Sthenelais + Sthenelais + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3688 + Stictochironomus + Stictochironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3689 + Stilobezzia + Stilobezzia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3690 + Stratiomyia + Stratiomyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3691 + Stratiomyidae + Stratiomyidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3692 + Stratiomys + Stratiomys + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3693 + Streblospio + Streblospio + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3694 + Streblospio benedicti + Streblospio benedicti + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3695 + Strophitus + Strophitus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3696 + Stylochus ellipticus + Stylochus ellipticus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3697 + Stylogomphus + Stylogomphus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3698 + Stylurus + Stylurus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3699 + Suphisellus bicolor + Suphisellus bicolor + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3700 + Suragina + Suragina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3701 + Syllidae + Syllidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3702 + Syllis cornuta + Syllis cornuta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3703 + Sympetrum + Sympetrum + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3704 + Sympleustes glaber + Sympleustes glaber + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3705 + Syndiamesa + Syndiamesa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3706 + Syrphidae + Syrphidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3707 + Tabanidae + Tabanidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3708 + Tabanus + Tabanus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3709 + Tachopteryx thoreyi + Tachopteryx thoreyi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3710 + Taeniopterygidae + Taeniopterygidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3711 + Taeniopteryx + Taeniopteryx + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3712 + Tagelus divisus + Tagelus divisus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3713 + Talitridae + Talitridae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3714 + Tanaidacea + Tanaidacea + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3715 + Tanypodinae + Tanypodinae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3716 + Tanypus + Tanypus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3717 + Tanypus neopunctipennis + Tanypus neopunctipennis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3718 + Tanytarsini + Tanytarsini + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3719 + Tanytarsus + Tanytarsus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3720 + Tanytarsus glabrescens + Tanytarsus glabrescens + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3721 + Taphromysis bowmanii + Taphromysis bowmanii + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3722 + Taphromysis louisianae + Taphromysis louisianae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3723 + Tardigrada + Tardigrada + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3724 + Tauriphila + Tauriphila + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3725 + Teinostoma biscaynense + Teinostoma biscaynense + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3726 + Telebasis + Telebasis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3727 + Tellina + Tellina + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3728 + Tellina texana + Tellina texana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3729 + Tellina versicolor + Tellina versicolor + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3730 + Tellinidae + Tellinidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3731 + Telopelopia + Telopelopia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3732 + Telopelopia okaboji + Telopelopia okaboji + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3733 + Tenagobia + Tenagobia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3734 + Terebella rubra + Terebella rubra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3735 + Terebellidae + Terebellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3736 + Tetanocera + Tetanocera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3737 + Tetragoneuria + Tetragoneuria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3738 + Texadina baretti + Texadina baretti + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3739 + Texadina sphinctostoma + Texadina sphinctostoma + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3740 + Thalassema + Thalassema + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3741 + Tharyx + Tharyx + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3742 + Tharyx marioni + Tharyx marioni + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3743 + Tharyx setigera + Tharyx setigera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3744 + Thaumaleidae + Thaumaleidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3745 + Thermonectus + Thermonectus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3746 + Thiara (melanoides) tuberculata + Thiara (melanoides) tuberculata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3747 + Thienemanniella + Thienemanniella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3748 + Thienemannimyia + Thienemannimyia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3749 + Thoracica + Thoracica + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3750 + Thraulodes + Thraulodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3751 + Thraulodes gonzalesi + Thraulodes gonzalesi + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3752 + Throscinus + Throscinus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3753 + Thyas + Thyas + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3754 + Tipula + Tipula + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3755 + Tipulidae + Tipulidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3756 + Torrenticola + Torrenticola + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3757 + Traverella + Traverella + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3758 + Traverella presidiana + Traverella presidiana + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3759 + Trepobates + Trepobates + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3760 + Triaenodes + Triaenodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3761 + Triaenodes injustus + Triaenodes injustus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3762 + Tribelos + Tribelos + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3763 + Trichocladius + Trichocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3764 + Trichocorixa + Trichocorixa + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3765 + Trichoptera + Trichoptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3766 + Tricorythidae + Tricorythidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3767 + Tricorythodes + Tricorythodes + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3768 + Tricorythodes albilineatus + Tricorythodes albilineatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3769 + Tricorythodes albilineatus sp b + Tricorythodes albilineatus sp b + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3770 + Tricorythodes curvatus + Tricorythodes curvatus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3771 + Trissocladius + Trissocladius + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3772 + Tritigonia agassiz + Tritigonia agassiz + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3773 + Tropicorbis + Tropicorbis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3774 + Tropisternus + Tropisternus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3775 + Tropisternus lateralis + Tropisternus lateralis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3776 + Truncilla + Truncilla + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3777 + Tubifera (eristalis) + Tubifera (eristalis) + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3778 + Tubifex + Tubifex + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3779 + Tubificidae + Tubificidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3780 + Tubulanus pellucidus + Tubulanus pellucidus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3781 + Turbellaria + Turbellaria + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3782 + Turbonilla + Turbonilla + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3783 + Turbonilla hemphilli + Turbonilla hemphilli + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3784 + Turbonilla interrupta + Turbonilla interrupta + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3785 + Unio + Unio + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3786 + Uniomerus + Uniomerus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3787 + Unionidae + Unionidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3788 + Uvarus + Uvarus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3789 + Valvatidae + Valvatidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3790 + Velia + Velia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3791 + Vellidae + Vellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3792 + Vioscalba loiuisianae + Vioscalba loiuisianae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3793 + Vitrinellidae + Vitrinellidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3794 + Viviparidae + Viviparidae + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3795 + Viviparus + Viviparus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3796 + Websterinereis tridentata + Websterinereis tridentata + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3797 + Wormaldia + Wormaldia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3798 + Xenochironomus + Xenochironomus + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3799 + Xenochironomus xenolabis + Xenochironomus xenolabis + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3800 + Xiphocentron + Xiphocentron + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3801 + Zaitzevia + Zaitzevia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3802 + Zalutschia + Zalutschia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3803 + Zavrelia + Zavrelia + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3804 + Zealeuctra + Zealeuctra + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3805 + Zygoptera + Zygoptera + Hydrosphere/Biological/Biological taxa/Benthic species/ + + + 3807 + Achirus lineatus + Achirus lineatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3808 + Adinia xenica + Adinia xenica + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3809 + Alosa chrysochloris + Alosa chrysochloris + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3810 + Ambloplites rupestris + Ambloplites rupestris + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3811 + Ameiurus melas ictaluarus melas + Ameiurus melas ictaluarus melas + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3812 + Ameiurus natalis ictaluarus natalis + Ameiurus natalis ictaluarus natalis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3813 + Amia calva + Amia calva + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3814 + Ammocrypta clara + Ammocrypta clara + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3815 + Ammocrypta vivax + Ammocrypta vivax + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3816 + Anchoa hepsetus + Anchoa hepsetus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3817 + Anchoa mitchilli + Anchoa mitchilli + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3818 + Anguilla rostrata + Anguilla rostrata + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3819 + Anguilliformes + Anguilliformes + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3820 + Aphredoderus sayanus + Aphredoderus sayanus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3821 + Aplodinotus grunniens + Aplodinotus grunniens + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3822 + Archosargus probatocephalus + Archosargus probatocephalus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3823 + Arius felis + Arius felis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3824 + Astroscopus y-graecum + Astroscopus y-graecum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3825 + Astyanax mexicanus + Astyanax mexicanus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3826 + Atherinidae + Atherinidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3827 + Bagre marinus + Bagre marinus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3828 + Bairdiella chrysura + Bairdiella chrysura + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3829 + Bascanichthys scuticaris + Bascanichthys scuticaris + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3830 + Bothidae + Bothidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3831 + Brevoortia + Brevoortia + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3832 + Brevoortia gunteri + Brevoortia gunteri + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3833 + Brevoortia patronus + Brevoortia patronus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3834 + Campostoma + Campostoma + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3835 + Campostoma anomalum + Campostoma anomalum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3836 + Campostoma ornatum + Campostoma ornatum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3837 + Caranx hippos + Caranx hippos + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3838 + Carassius auratus + Carassius auratus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3839 + Carcharhinus leucas + Carcharhinus leucas + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3840 + Carcharhinus limbatus + Carcharhinus limbatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3841 + Carpiodes + Carpiodes + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3842 + Carpiodes carpio + Carpiodes carpio + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3843 + Centrarchus macropterus + Centrarchus macropterus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3844 + Centropomus undecimalis + Centropomus undecimalis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3845 + Centropristes philadelphicus + Centropristes philadelphicus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3846 + Chaenobryttus gulosus + Chaenobryttus gulosus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3847 + Chaetodipterus faber + Chaetodipterus faber + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3848 + Chasmodes bosquianus + Chasmodes bosquianus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3849 + Chloroscombrus chrysurus + Chloroscombrus chrysurus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3850 + Cichlasoma cyanoguttatum + Cichlasoma cyanoguttatum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3851 + Cichlidae + Cichlidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3852 + Citharichthys macrops + Citharichthys macrops + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3853 + Citharichthys spilopterus + Citharichthys spilopterus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3854 + Clupeidae + Clupeidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3855 + Ctenopharyhgodon idellus + Ctenopharyhgodon idellus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3856 + Cycleptus + Cycleptus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3857 + Cycleptus elongatus + Cycleptus elongatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3858 + Cynoscion arenarius + Cynoscion arenarius + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3859 + Cynoscion nebulosus + Cynoscion nebulosus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3860 + Cynoscion nothus + Cynoscion nothus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3861 + Cyprinella lutrensis notropis lutrensi + Cyprinella lutrensis notropis lutrensi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3862 + Cyprinella venustus notropis venustus + Cyprinella venustus notropis venustus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3863 + Cyprinidae + Cyprinidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3864 + Cyprinodon + Cyprinodon + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3865 + Cyprinodon exemius + Cyprinodon exemius + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3866 + Cyprinodon rubrofluviatilis + Cyprinodon rubrofluviatilis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3867 + Cyprinodon spp. + Cyprinodon spp. + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3868 + Cyprinodon variegatus + Cyprinodon variegatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3869 + Cyprinus carpio + Cyprinus carpio + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3870 + Dasyatis americana + Dasyatis americana + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3871 + Dasyatis sabina + Dasyatis sabina + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3872 + Dionda + Dionda + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3873 + Dionda episcola + Dionda episcola + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3874 + Dormitator maculatus + Dormitator maculatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3875 + Dorosoma + Dorosoma + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3876 + Dorosoma cepedianum + Dorosoma cepedianum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3877 + Dorosoma petenense + Dorosoma petenense + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3878 + Elassoma zonatum + Elassoma zonatum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3879 + Eleotris pisonis + Eleotris pisonis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3880 + Elops saurus + Elops saurus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3881 + Erimyzon oblongus + Erimyzon oblongus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3882 + Erimyzon succetta + Erimyzon succetta + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3883 + Esox americanus + Esox americanus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3884 + Esox niger + Esox niger + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3885 + Etheostoma + Etheostoma + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3886 + Etheostoma asprigene + Etheostoma asprigene + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3887 + Etheostoma chlorosomum + Etheostoma chlorosomum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3888 + Etheostoma fusiforme + Etheostoma fusiforme + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3889 + Etheostoma gracile + Etheostoma gracile + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3890 + Etheostoma grahmi + Etheostoma grahmi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3891 + Etheostoma histrio + Etheostoma histrio + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3892 + Etheostoma lepidum + Etheostoma lepidum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3893 + Etheostoma parvipinne + Etheostoma parvipinne + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3894 + Etheostoma proeliare + Etheostoma proeliare + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3895 + Etheostoma radiosum + Etheostoma radiosum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3896 + Etheostoma spectabile + Etheostoma spectabile + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3897 + Etheostoma whipplei + Etheostoma whipplei + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3898 + Etropus crossotus + Etropus crossotus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3899 + Eucinostomus + Eucinostomus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3900 + Eucinostomus argenteus + Eucinostomus argenteus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3901 + Eucinostomus lefroyi + Eucinostomus lefroyi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3902 + Fundulus + Fundulus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3903 + Fundulus blairae + Fundulus blairae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3904 + Fundulus chrysotus + Fundulus chrysotus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3905 + Fundulus grandis + Fundulus grandis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3906 + Fundulus jenkinsi + Fundulus jenkinsi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3907 + Fundulus kansae + Fundulus kansae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3908 + Fundulus notatus + Fundulus notatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3909 + Fundulus olivaceus + Fundulus olivaceus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3910 + Fundulus pulvereus + Fundulus pulvereus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3911 + Fundulus similis + Fundulus similis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3912 + Fundulus zebrinus + Fundulus zebrinus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3913 + Gambusia affinis + Gambusia affinis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3914 + Gambusia gaigei + Gambusia gaigei + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3915 + Gambusia geiseri + Gambusia geiseri + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3916 + Gambusia spp. + Gambusia spp. + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3917 + Gerreidae + Gerreidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3918 + Gnathagnus egregus + Gnathagnus egregus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3919 + Gobiesox punctulatus + Gobiesox punctulatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3920 + Gobiesox strumosus + Gobiesox strumosus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3921 + Gobiidae + Gobiidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3922 + Gobiodes broussonneti + Gobiodes broussonneti + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3923 + Gobionellus boleosoma + Gobionellus boleosoma + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3924 + Gobionellus hastatus + Gobionellus hastatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3925 + Gobionellus oceanicus + Gobionellus oceanicus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3926 + Gobionellus shufeldti + Gobionellus shufeldti + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3927 + Gobiosoma bosci + Gobiosoma bosci + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3928 + Gobiosoma robustum + Gobiosoma robustum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3929 + Gymnachirus texae + Gymnachirus texae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3930 + Harengula jaguana + Harengula jaguana + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3931 + Hemicaranx amblyrhynchus + Hemicaranx amblyrhynchus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3932 + Heterandria formosa + Heterandria formosa + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3933 + Histrio histrio + Histrio histrio + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3934 + Hybognathus hayi + Hybognathus hayi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3935 + Hybognathus nuchalis + Hybognathus nuchalis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3936 + Hybognathus placitus + Hybognathus placitus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3937 + Hypleurochilus + Hypleurochilus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3938 + Hypostomus plecostomus + Hypostomus plecostomus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3939 + Hypsoblennius + Hypsoblennius + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3940 + Hypsoblennius ionthas + Hypsoblennius ionthas + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3941 + Ichthyomyzon castaneus + Ichthyomyzon castaneus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3942 + Ichthyomyzon gagei + Ichthyomyzon gagei + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3943 + Ictaluridae + Ictaluridae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3944 + Ictalurus + Ictalurus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3945 + Ictalurus furcatus + Ictalurus furcatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3946 + Ictalurus lupus + Ictalurus lupus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3947 + Ictalurus punctatus + Ictalurus punctatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3948 + Ictiobus + Ictiobus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3949 + Ictiobus bubalus + Ictiobus bubalus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3950 + Ictiobus cyprinellus + Ictiobus cyprinellus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3951 + Ictiobus niger + Ictiobus niger + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3952 + Individuals as non-native species + Individuals as non-native species + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3953 + Labidesthes + Labidesthes + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3954 + Labidesthes sicculus + Labidesthes sicculus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3955 + Lagodon rhomboides + Lagodon rhomboides + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3956 + Leiostomus xanthurus + Leiostomus xanthurus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3957 + Lepisosteus + Lepisosteus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3958 + Lepisosteus oculatus + Lepisosteus oculatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3959 + lepisosteus osseus + lepisosteus osseus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3960 + Lepisosteus platostomus + Lepisosteus platostomus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3961 + Lepisosteus spatula + Lepisosteus spatula + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3962 + Lepomis + Lepomis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3963 + Lepomis auritus + Lepomis auritus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3964 + Lepomis cyanellus + Lepomis cyanellus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3965 + Lepomis gulosus + Lepomis gulosus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3966 + Lepomis humilis + Lepomis humilis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3967 + Lepomis macrochirus + Lepomis macrochirus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3968 + Lepomis macrochirus x lepomis cyanellus (#/samp) + Lepomis macrochirus x lepomis cyanellus (#/samp) + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3969 + Lepomis marginatus + Lepomis marginatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3970 + Lepomis megalotis + Lepomis megalotis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3971 + Lepomis microlophus + Lepomis microlophus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3972 + Lepomis punctatus + Lepomis punctatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3973 + Lepomis symmetricus + Lepomis symmetricus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3974 + Lucania parva + Lucania parva + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3975 + Luxilus chrysocephalus n.chrysocephal + Luxilus chrysocephalus n.chrysocephal + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3976 + Lythrurus fumeus notropis fumeus + Lythrurus fumeus notropis fumeus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3977 + Lythrurus umbratilis notropis umbratil + Lythrurus umbratilis notropis umbratil + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3978 + Macrhybopsis aestivalis h.aestivalis + Macrhybopsis aestivalis h.aestivalis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3979 + Megalops atlanticus + Megalops atlanticus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3980 + Membras martinica + Membras martinica + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3981 + Menidia audens + Menidia audens + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3982 + Menidia beryllina + Menidia beryllina + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3983 + Menidia peninsulae + Menidia peninsulae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3984 + Menticirrhus americanus + Menticirrhus americanus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3985 + Menticirrhus littoralis + Menticirrhus littoralis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3986 + Microgobius gulosus + Microgobius gulosus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3987 + Microgobius thalassinus + Microgobius thalassinus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3988 + Micropogon + Micropogon + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3989 + Micropogon undulatus + Micropogon undulatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3990 + Micropogonias undulatus + Micropogonias undulatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3991 + Micropterus + Micropterus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3992 + Micropterus dolomieu m. dolomieui + Micropterus dolomieu m. dolomieui + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3993 + Micropterus punctulatus + Micropterus punctulatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3994 + Micropterus salmoides + Micropterus salmoides + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3995 + Micropterus treculi + Micropterus treculi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3996 + Minytrema melanops + Minytrema melanops + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3997 + Morone chrysops + Morone chrysops + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3998 + Morone mississippiensis + Morone mississippiensis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 3999 + Morone saxatilis + Morone saxatilis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4000 + Morone saxatilis x m. chrysops hybrid #/sample + Morone saxatilis x m. chrysops hybrid #/sample + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4001 + Moxostoma congestum + Moxostoma congestum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4002 + Moxostoma erythurum + Moxostoma erythurum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4003 + Moxostoma poecilurum + Moxostoma poecilurum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4004 + Mugil + Mugil + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4005 + Mugil cephalus + Mugil cephalus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4006 + Mugil curema + Mugil curema + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4007 + Myrophis punctatus + Myrophis punctatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4008 + Mystriophis punctifer + Mystriophis punctifer + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4009 + Notemigonus crysoleucas + Notemigonus crysoleucas + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4010 + Notropis + Notropis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4011 + Notropis amabilis + Notropis amabilis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4012 + Notropis amnis + Notropis amnis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4013 + Notropis antherinoides + Notropis antherinoides + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4014 + Notropis atrocaudalis + Notropis atrocaudalis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4015 + Notropis bairdi + Notropis bairdi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4016 + Notropis blennius + Notropis blennius + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4017 + Notropis braytoni + Notropis braytoni + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4018 + Notropis buccula + Notropis buccula + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4019 + Notropis buchanani + Notropis buchanani + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4020 + Notropis chalybaeus + Notropis chalybaeus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4021 + Notropis cornutus + Notropis cornutus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4022 + Notropis oxyrhyncus + Notropis oxyrhyncus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4023 + Notropis proserpinus + Notropis proserpinus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4024 + Notropis sabinae + Notropis sabinae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4025 + Notropis shumardi + Notropis shumardi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4026 + Notropis stramineus + Notropis stramineus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4027 + Notropis texanus + Notropis texanus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4028 + Notropis volucellis + Notropis volucellis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4029 + Noturus gyrinus + Noturus gyrinus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4030 + Noturus nocturnus + Noturus nocturnus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4031 + Oligoplites saurus + Oligoplites saurus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4032 + Oncorhynchus mykiss salmo gairdneri + Oncorhynchus mykiss salmo gairdneri + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4033 + Ophichthus gomesi + Ophichthus gomesi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4034 + Opisthonema oglinum + Opisthonema oglinum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4035 + Opsanus beta + Opsanus beta + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4036 + Opsopoeodus emiliae notropis emiliae + Opsopoeodus emiliae notropis emiliae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4037 + Orthopristis chrysopterus + Orthopristis chrysopterus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4038 + Osteichthyes + Osteichthyes + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4039 + Paralichthys lethostigma + Paralichthys lethostigma + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4040 + Parexocoetus brachypterus + Parexocoetus brachypterus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4041 + Peprilus alepidotus + Peprilus alepidotus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4042 + Peprilus burti + Peprilus burti + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4043 + Peprilus paru + Peprilus paru + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4044 + Perca flavescens + Perca flavescens + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4045 + Percina caprodes + Percina caprodes + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4046 + Percina carbonaria + Percina carbonaria + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4047 + Percina macrolepida + Percina macrolepida + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4048 + Percina maculata + Percina maculata + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4049 + Percina sciera + Percina sciera + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4050 + Percina shumardi + Percina shumardi + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4051 + Phenacobius mirabilis + Phenacobius mirabilis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4052 + Pimephales + Pimephales + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4053 + Pimephales notatus + Pimephales notatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4054 + Pimephales promelas + Pimephales promelas + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4055 + Pimephales vigilax + Pimephales vigilax + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4056 + Plecostomus plecostomus + Plecostomus plecostomus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4057 + Poecilia formosa + Poecilia formosa + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4058 + Poecilia latipinna + Poecilia latipinna + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4059 + Pogonias cromis + Pogonias cromis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4060 + Polydactylus octonemus + Polydactylus octonemus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4061 + Pomatomus saltatrix + Pomatomus saltatrix + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4062 + Pomoxis + Pomoxis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4063 + Pomoxis annularis + Pomoxis annularis + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4064 + Pomoxis nigromaculatus + Pomoxis nigromaculatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4065 + Porichthys plectrodon + Porichthys plectrodon + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4066 + Porichthys porosissimus + Porichthys porosissimus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4067 + Prionotus tribulus + Prionotus tribulus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4068 + Psopoeodus emiliae + Psopoeodus emiliae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4069 + Pterygoplichthys multiradiatus + Pterygoplichthys multiradiatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4070 + Pylodictis olivaris + Pylodictis olivaris + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4071 + Sarda sarda + Sarda sarda + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4072 + Sciaenidae #/sample + Sciaenidae #/sample + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4073 + Sciaenops ocellata + Sciaenops ocellata + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4074 + Scomberomorus maculatus + Scomberomorus maculatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4075 + Selene vomer + Selene vomer + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4076 + Semotilus atromaculatus + Semotilus atromaculatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4077 + Sphoeroides parvus + Sphoeroides parvus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4078 + Stellifer lanceolatus + Stellifer lanceolatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4079 + Stizostedion vitreum + Stizostedion vitreum + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4080 + Strongylura marina + Strongylura marina + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4081 + Symphurus plagiusa + Symphurus plagiusa + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4082 + Syngnathidae + Syngnathidae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4083 + Syngnathus floridae + Syngnathus floridae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4084 + Syngnathus louisianae + Syngnathus louisianae + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4085 + Syngnathus scovelli + Syngnathus scovelli + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4086 + Synodus + Synodus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4087 + Synodus foetens + Synodus foetens + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4088 + Tilapia aurea, blue tilapia + Tilapia aurea, blue tilapia + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4089 + Tilapia mossambica + Tilapia mossambica + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4090 + Tilapia zilli + Tilapia zilli + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4091 + Trachinotus falcatus + Trachinotus falcatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4092 + Trichiurus lepturus + Trichiurus lepturus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4093 + Trinectes maculatus + Trinectes maculatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4094 + Trogloglanis pattersoni + Trogloglanis pattersoni + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4095 + Umbrina coroides + Umbrina coroides + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4096 + Urophycis floridanus + Urophycis floridanus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4097 + Xiphophorus helleri + Xiphophorus helleri + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4098 + Zygonectes notatus + Zygonectes notatus + Hydrosphere/Biological/Biological taxa/Fish species/ + + + 4100 + Acnida + Acnida + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4101 + Alisma + Alisma + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4102 + Alternanthera + Alternanthera + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4103 + Ambrosia + Ambrosia + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4104 + Anacharis (elodea) + Anacharis (elodea) + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4105 + Azolla + Azolla + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4106 + Bacopa + Bacopa + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4107 + Boehmaria + Boehmaria + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4108 + Ceratophyllum + Ceratophyllum + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4109 + Ceratophyllum demersum + Ceratophyllum demersum + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4110 + Chara + Chara + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4111 + Chlorophyta + Chlorophyta + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4112 + Cladium jamaicensis + Cladium jamaicensis + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4113 + Cyperus + Cyperus + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4114 + Diversity - macrophytes + Diversity - macrophytes + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4115 + Echinodorus + Echinodorus + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4116 + Egeria densa + Egeria densa + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4117 + Eichhornia + Eichhornia + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4118 + Elatine + Elatine + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4119 + Gramineae + Gramineae + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4120 + Heteranthera + Heteranthera + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4121 + Hydrilla verticillata + Hydrilla verticillata + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4122 + Hydrocotyle + Hydrocotyle + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4123 + Lemna + Lemna + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4124 + Ludwigia decurrens + Ludwigia decurrens + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4125 + Ludwigia (jussiaea) + Ludwigia (jussiaea) + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4126 + Lythrum + Lythrum + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4127 + Macrophytes sampled - none present + Macrophytes sampled - none present + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4128 + Marsilea + Marsilea + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4129 + Mikania scandens + Mikania scandens + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4130 + Myriophyllum + Myriophyllum + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4131 + Myriophyllum brasiliense + Myriophyllum brasiliense + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4132 + Najas + Najas + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4133 + Nuphar + Nuphar + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4134 + Phragmites communis + Phragmites communis + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4135 + Phyla + Phyla + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4136 + Polygonum + Polygonum + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4137 + Potamogeton + Potamogeton + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4138 + Potamogeton crispus + Potamogeton crispus + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4139 + Rorippa nasturtium - aquaticum + Rorippa nasturtium - aquaticum + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4140 + Rotala + Rotala + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4141 + Rotala ramosior + Rotala ramosior + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4142 + Sabol + Sabol + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4143 + Sagittaria + Sagittaria + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4144 + Sagittaria falcata + Sagittaria falcata + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4145 + Sagittaria lancifolia + Sagittaria lancifolia + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4146 + Salix + Salix + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4147 + Sapium sebiferum + Sapium sebiferum + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4148 + Saururus + Saururus + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4149 + Saururus cernuus + Saururus cernuus + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4150 + Scirpus + Scirpus + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4151 + Spirodela + Spirodela + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4152 + Utricularia + Utricularia + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4153 + Zizaniopsis miliacea + Zizaniopsis miliacea + Hydrosphere/Biological/Biological taxa/Macrophyte species/ + + + 4155 + Alligator mississippiensis + Alligator mississippiensis + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4156 + Amphibia + Amphibia + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4157 + Arenaeus cribrarius + Arenaeus cribrarius + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4158 + Callinectes sapidus + Callinectes sapidus + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4159 + Callinectes similis + Callinectes similis + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4160 + Cambarus + Cambarus + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4161 + Chrysemys scripta + Chrysemys scripta + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4162 + Decopoda + Decopoda + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4163 + Diversity - nekton + Diversity - nekton + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4164 + Equitability - nekton + Equitability - nekton + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4165 + Lolliguncula + Lolliguncula + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4166 + Lolliguncula (loligo) brevis + Lolliguncula (loligo) brevis + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4167 + Machrobrachium + Machrobrachium + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4168 + Machrobrachium acanthurus + Machrobrachium acanthurus + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4169 + Machrobrachium ohione + Machrobrachium ohione + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4170 + Menippe mercenaria + Menippe mercenaria + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4171 + Mollusca + Mollusca + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4172 + Nekton organisms - none present + Nekton organisms - none present + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4173 + Neopanope texana texana + Neopanope texana texana + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4174 + Paguridae + Paguridae + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4175 + Pagurus politus + Pagurus politus + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4176 + Palaemonetes + Palaemonetes + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4177 + Palaemonetes pugio + Palaemonetes pugio + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4178 + Palaemonetes vulgaris + Palaemonetes vulgaris + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4179 + Penaeus aztecus + Penaeus aztecus + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4180 + Penaeus duorarum + Penaeus duorarum + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4181 + Penaeus setiferus + Penaeus setiferus + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4182 + Pseudemys + Pseudemys + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4183 + Rana + Rana + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4184 + Rhithropanopeus harrissii + Rhithropanopeus harrissii + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4185 + Sicyonia dorsalis + Sicyonia dorsalis + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4186 + Squilla + Squilla + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4187 + Stomolophus + Stomolophus + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4188 + Trachemys scripta elegans + Trachemys scripta elegans + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4189 + Trachypenaeus spp. + Trachypenaeus spp. + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4190 + Xanthidae + Xanthidae + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4191 + Xiphopeneus kroyeri + Xiphopeneus kroyeri + Hydrosphere/Biological/Biological taxa/Nekton species/ + + + 4193 + Achnanthes + Achnanthes + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4194 + Achnanthes coarctata + Achnanthes coarctata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4195 + Actinastrum + Actinastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4196 + Actinocyclus + Actinocyclus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4197 + Actinocyclus ehrenbergii + Actinocyclus ehrenbergii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4198 + Actinoptychus undulatus + Actinoptychus undulatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4199 + Agmenellum quadruplicatum + Agmenellum quadruplicatum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4200 + Agmenellum (merismopoedia) + Agmenellum (merismopoedia) + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4201 + Amphipleura + Amphipleura + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4202 + Amphiprora + Amphiprora + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4203 + Amphiprora alata + Amphiprora alata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4204 + Amphora + Amphora + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4205 + Anabaena + Anabaena + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4206 + Anabaena flos-aquae + Anabaena flos-aquae + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4207 + Anabaenopsis + Anabaenopsis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4208 + Anacystis cyanea + Anacystis cyanea + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4209 + Anacystis dimidiata + Anacystis dimidiata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4210 + Anacystis (microcystis) + Anacystis (microcystis) + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4211 + Anisonema + Anisonema + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4212 + Ankistrodesmus + Ankistrodesmus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4213 + Ankistrodesmus falcatus + Ankistrodesmus falcatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4214 + Anomoeoneis + Anomoeoneis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4215 + Aphanizomenon + Aphanizomenon + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4216 + Aphanizomenon holsaticum (flos-aquae) + Aphanizomenon holsaticum (flos-aquae) + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4217 + Arthrospira + Arthrospira + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4218 + Astrionella + Astrionella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4219 + Asterionella formosa + Asterionella formosa + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4220 + Asterionella japonica + Asterionella japonica + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4221 + Asterococcus + Asterococcus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4222 + Auliscus coelatus + Auliscus coelatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4223 + Bacillariophyceae + Bacillariophyceae + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4224 + Bacillariophyceae-centric + Bacillariophyceae-centric + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4225 + Bacillariophyceae-pennate + Bacillariophyceae-pennate + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4226 + Bacteriastrum + Bacteriastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4227 + Bacteriastrum delicatulum + Bacteriastrum delicatulum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4228 + Bacteriastrum varians + Bacteriastrum varians + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4229 + Biddulphia + Biddulphia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4230 + Biddulphia aurita + Biddulphia aurita + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4231 + Biddulphia mobiliensis + Biddulphia mobiliensis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4232 + Biddulphia sinensis + Biddulphia sinensis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4233 + Botrycoccus + Botrycoccus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4234 + Caloneis + Caloneis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4235 + Caloneis amphisbaena + Caloneis amphisbaena + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4236 + Campylodiscus + Campylodiscus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4237 + Campylodiscus punctulatus + Campylodiscus punctulatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4238 + Capartogramma + Capartogramma + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4239 + Carteria + Carteria + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4240 + Centronella + Centronella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4241 + Cerataulina + Cerataulina + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4242 + Cerataulina pelagica + Cerataulina pelagica + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4243 + Ceratium + Ceratium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4244 + Ceratium cornutum + Ceratium cornutum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4245 + Ceratium furca + Ceratium furca + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4246 + Ceratium fusus + Ceratium fusus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4247 + Ceratium hircus + Ceratium hircus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4248 + Ceratium hirundinella + Ceratium hirundinella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4249 + Ceratium massiliense + Ceratium massiliense + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4250 + Ceratium pentagonum + Ceratium pentagonum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4251 + Ceratium pulchellum + Ceratium pulchellum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4252 + Ceratium tripos + Ceratium tripos + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4253 + Chaetoceros + Chaetoceros + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4254 + Chaetoceros affinis + Chaetoceros affinis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4255 + Chaetoceros atlanticum + Chaetoceros atlanticum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4256 + Chaetoceros brevis + Chaetoceros brevis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4257 + Chaetoceros compressum + Chaetoceros compressum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4258 + Chaetoceros constrictum + Chaetoceros constrictum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4259 + Chaetoceros costatum + Chaetoceros costatum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4260 + Chaetoceros curvisetum + Chaetoceros curvisetum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4261 + Chaetoceros danicum + Chaetoceros danicum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4262 + Chaetoceros decipiens + Chaetoceros decipiens + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4263 + Chaetoceros densum + Chaetoceros densum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4264 + Chaetoceros didymum + Chaetoceros didymum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4265 + Chaetoceros difficilis + Chaetoceros difficilis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4266 + Chaetoceros diversum + Chaetoceros diversum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4267 + Chaetoceros gracilis + Chaetoceros gracilis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4268 + Chaetoceros laciniosum + Chaetoceros laciniosum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4269 + Chaetoceros lorenzianum + Chaetoceros lorenzianum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4270 + Chaetoceros orientalis + Chaetoceros orientalis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4271 + Chaetoceros pelagicum + Chaetoceros pelagicum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4272 + Chaetoceros peruvianum + Chaetoceros peruvianum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4273 + Chaetoceros simplex + Chaetoceros simplex + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4274 + Chaetoceros tortissimus + Chaetoceros tortissimus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4275 + Chaetoceros valve + Chaetoceros valve + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4276 + Chaetoceros varians + Chaetoceros varians + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4277 + Chaetosphaeridium globosum + Chaetosphaeridium globosum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4278 + Chlamydomonas + Chlamydomonas + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4279 + Chlorella + Chlorella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4280 + Chlorella vulgaris + Chlorella vulgaris + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4281 + Chilorococcum + Chilorococcum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4282 + Chilorogonium + Chilorogonium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4283 + Chloromonadophyta + Chloromonadophyta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4284 + Chlorophyta + Chlorophyta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4285 + Chlorophyta - flamentous + Chlorophyta - flamentous + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4286 + Chlorophyta - unicellular + Chlorophyta - unicellular + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4287 + Chroococcus + Chroococcus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4288 + Chroococcus dispersus + Chroococcus dispersus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4289 + Chrysococcus + Chrysococcus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4290 + Chrysophyta + Chrysophyta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4291 + Cladophora + Cladophora + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4292 + Closteridium + Closteridium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4293 + Closteriopsis + Closteriopsis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4294 + Closteriopsis longissima + Closteriopsis longissima + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4295 + Closterium + Closterium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4296 + Coccochloris + Coccochloris + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4297 + Cocconeis + Cocconeis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4298 + Coelastrum + Coelastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4299 + Coelastrum microporum + Coelastrum microporum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4300 + Coelastrum reticulatum + Coelastrum reticulatum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4301 + Coelosphaerium + Coelosphaerium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4302 + Corethron + Corethron + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4303 + Corethron criophylum + Corethron criophylum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4304 + Corethron hystrix + Corethron hystrix + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4305 + Coscinodiscus + Coscinodiscus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4306 + Coscinodiscus asteromphalus + Coscinodiscus asteromphalus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4307 + Coscinodiscus centralis + Coscinodiscus centralis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4308 + Coscinodiscus concinnis + Coscinodiscus concinnis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4309 + Coscinodiscus denarius + Coscinodiscus denarius + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4310 + Coscinodiscus excentricus + Coscinodiscus excentricus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4311 + Coscinodiscus granii + Coscinodiscus granii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4312 + Coscinodiscus radiatus + Coscinodiscus radiatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4313 + Coscinodiscus rothii + Coscinodiscus rothii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4314 + Coscinodiscus wailsii + Coscinodiscus wailsii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4315 + Cosmarium + Cosmarium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4316 + Crucigenia + Crucigenia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4317 + Crucigenia quadrata + Crucigenia quadrata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4318 + Crucigenia tetrapedia + Crucigenia tetrapedia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4319 + Cryptochrysis + Cryptochrysis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4320 + Cryptomonas + Cryptomonas + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4321 + Cyanophyta + Cyanophyta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4322 + Cyclotella + Cyclotella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4323 + Cyclotella stelligera + Cyclotella stelligera + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4324 + Cylindrocystis + Cylindrocystis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4325 + Cymatopleura solea + Cymatopleura solea + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4326 + Cymbella + Cymbella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4327 + Cymbella mexicanum + Cymbella mexicanum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4328 + Dactylococcopsis + Dactylococcopsis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4329 + Desmidium + Desmidium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4330 + Diatoma + Diatoma + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4331 + Diatomella + Diatomella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4332 + Dinobryon + Dinobryon + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4333 + Dinobryon bavaricum + Dinobryon bavaricum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4334 + Dinoflagellata + Dinoflagellata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4335 + Dinophyceae + Dinophyceae + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4336 + Dinophysis caudata + Dinophysis caudata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4337 + Diploneis + Diploneis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4338 + Diploneis crabro + Diploneis crabro + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4339 + Diploneis smithii + Diploneis smithii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4340 + Ditylum + Ditylum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4341 + Ditylum brightwelli + Ditylum brightwelli + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4342 + Diversity - phytoplankton + Diversity - phytoplankton + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4343 + Elakatothrix + Elakatothrix + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4344 + Epithemia + Epithemia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4345 + Epithemia sorex + Epithemia sorex + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4346 + Euastrum + Euastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4347 + Eucampia + Eucampia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4348 + Eucampia zoodiacus + Eucampia zoodiacus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4349 + Eudorina + Eudorina + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4350 + Euglena + Euglena + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4351 + Euglenophyta + Euglenophyta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4352 + Eunotia + Eunotia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4353 + Eupodiscus radiatus + Eupodiscus radiatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4354 + Eutreptia + Eutreptia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4355 + Exuviaella + Exuviaella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4356 + Exuviaella baltica + Exuviaella baltica + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4357 + Fragilaria + Fragilaria + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4358 + Fragilaria crotonensis + Fragilaria crotonensis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4359 + Frustulia + Frustulia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4360 + Geminella + Geminella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4361 + Glenodinium + Glenodinium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4362 + Glenodinium armatum + Glenodinium armatum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4363 + Gloeocapsa + Gloeocapsa + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4364 + Gloeocystis + Gloeocystis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4365 + Golenkinia + Golenkinia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4366 + Golenkiniopsis + Golenkiniopsis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4367 + Gomphonema + Gomphonema + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4368 + Gomphosphaeria + Gomphosphaeria + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4369 + Gonium + Gonium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4370 + Gonyaulax + Gonyaulax + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4371 + Gonyaulax monilata + Gonyaulax monilata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4372 + Guinardia + Guinardia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4373 + Guinardia flaccida + Guinardia flaccida + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4374 + Gymnodinium + Gymnodinium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4375 + Gyrosigma + Gyrosigma + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4376 + Gyrosigma balticum + Gyrosigma balticum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4377 + Haematococcus + Haematococcus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4378 + Hapalosiphon + Hapalosiphon + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4379 + Hemiaulus + Hemiaulus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4380 + Hemiaulus hauckii + Hemiaulus hauckii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4381 + Hemiaulus membranaceous + Hemiaulus membranaceous + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4382 + Hemiaulus sinensis + Hemiaulus sinensis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4383 + Hemidiscus hardmanianus + Hemidiscus hardmanianus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4384 + Hyalotheca + Hyalotheca + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4385 + Hydrodictyon + Hydrodictyon + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4386 + Hydrosera + Hydrosera + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4387 + Hypnodinium + Hypnodinium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4388 + Keriochlamys + Keriochlamys + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4389 + Kirchneriella + Kirchneriella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4390 + Lagerheimia quadriseta + Lagerheimia quadriseta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4391 + Lagerheimia (chodatella) + Lagerheimia (chodatella) + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4392 + Lauderia + Lauderia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4393 + Lauderia borealis + Lauderia borealis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4394 + Leptocylindricus + Leptocylindricus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4395 + Leptocylindricus danicus + Leptocylindricus danicus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4396 + Licmophora + Licmophora + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4397 + Lithodesmium undulatum + Lithodesmium undulatum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4398 + Lyngbya + Lyngbya + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4399 + Mallomonas + Mallomonas + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4400 + Mallomonas pseudocoronata + Mallomonas pseudocoronata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4401 + Melosira + Melosira + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4402 + Melosira crenulata + Melosira crenulata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4403 + Melosira distans + Melosira distans + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4404 + Melosira granulata + Melosira granulata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4405 + Melosira herzogii + Melosira herzogii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4406 + Melosira moniliformis + Melosira moniliformis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4407 + Melosira numuloides + Melosira numuloides + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4408 + Melosira varians + Melosira varians + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4409 + Meridion + Meridion + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4410 + Merismopedia + Merismopedia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4411 + Micractinium + Micractinium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4412 + Micrasterias + Micrasterias + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4413 + Microspora + Microspora + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4414 + Mougeotia + Mougeotia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4415 + Mougeotia scalaris + Mougeotia scalaris + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4416 + Nanochloris + Nanochloris + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4417 + Navicula + Navicula + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4418 + Nephrocytium + Nephrocytium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4419 + Nephrocytium limneticum + Nephrocytium limneticum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4420 + Nitzschia + Nitzschia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4421 + Nitzschia closterium + Nitzschia closterium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4422 + Nitzschia dubia + Nitzschia dubia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4423 + Nitzschia holsatica + Nitzschia holsatica + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4424 + Nitzschia hungarica + Nitzschia hungarica + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4425 + Nitzschia longissima + Nitzschia longissima + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4426 + Nitzschia lorenziana + Nitzschia lorenziana + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4427 + Nitzschia palea + Nitzschia palea + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4428 + Nitzschia paradoxa + Nitzschia paradoxa + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4429 + Nitzschia pungens + Nitzschia pungens + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4430 + Nitzschia seriata + Nitzschia seriata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4431 + Nitzschia sigma + Nitzschia sigma + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4432 + Nitzschia sigmoidea + Nitzschia sigmoidea + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4433 + Nodularia + Nodularia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4434 + Nostoc + Nostoc + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4435 + Oedogonium + Oedogonium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4436 + Oocystis + Oocystis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4437 + Opephora + Opephora + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4438 + Ophiocytium + Ophiocytium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4439 + Oscillatoria + Oscillatoria + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4440 + Oscillatoria granulata + Oscillatoria granulata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4441 + Ourococcus + Ourococcus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4442 + Oxytoxum + Oxytoxum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4443 + Palmella + Palmella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4444 + Palmellococcus + Palmellococcus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4445 + Pandorina + Pandorina + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4446 + Pectodictyon + Pectodictyon + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4447 + Pediastrum + Pediastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4448 + Pediastrum biradiatum + Pediastrum biradiatum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4449 + Pediastrum boryanum + Pediastrum boryanum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4450 + Pediastrum duplex + Pediastrum duplex + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4451 + Pediastrum integrum + Pediastrum integrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4452 + Pediastrum simplex + Pediastrum simplex + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4453 + Peridinium + Peridinium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4454 + Peridinium claudicans + Peridinium claudicans + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4455 + Peridinium tuba + Peridinium tuba + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4456 + Peridinium venustum + Peridinium venustum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4457 + Phacus + Phacus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4458 + Phormidium + Phormidium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4459 + Phyllobium + Phyllobium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4460 + Phytoconis + Phytoconis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4461 + Phytoplankton - unknown organism + Phytoplankton - unknown organism + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4462 + Pinnularia + Pinnularia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4463 + Planktosphaeria + Planktosphaeria + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4464 + Planktosphaeria gelatinosa + Planktosphaeria gelatinosa + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4465 + Platydorina + Platydorina + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4466 + Pleurosigma + Pleurosigma + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4467 + Prorocentrum + Prorocentrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4468 + Prorocentrum gracile + Prorocentrum gracile + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4469 + Prorocentrum mariae-lebourae + Prorocentrum mariae-lebourae + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4470 + Prorocentrum maximum + Prorocentrum maximum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4471 + Protococcus + Protococcus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4472 + Prymnesium parvum + Prymnesium parvum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4473 + Pyrobotrys + Pyrobotrys + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4474 + Pyrrophyta + Pyrrophyta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4475 + Quadrigula + Quadrigula + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4476 + Quadrigula chodatii + Quadrigula chodatii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4477 + Radiofilum + Radiofilum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4478 + Rhabdoderma + Rhabdoderma + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4479 + Rhizochrysis limnetica + Rhizochrysis limnetica + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4480 + Rhizosolenia + Rhizosolenia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4481 + Rhizosolenia alata + Rhizosolenia alata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4482 + Rhizosolenia alata f. indica + Rhizosolenia alata f. indica + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4483 + Rhizosolenia bergonii + Rhizosolenia bergonii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4484 + Rhizosolenia calcar avis + Rhizosolenia calcar avis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4485 + Rhizosolenia castracaneis + Rhizosolenia castracaneis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4486 + Rhizosolenia curvisetum + Rhizosolenia curvisetum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4487 + Rhizosolenia delicatala + Rhizosolenia delicatala + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4488 + Rhizosolenia eriensis + Rhizosolenia eriensis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4489 + Rhizosolenia imbricata + Rhizosolenia imbricata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4490 + Rhizosolenia robusta + Rhizosolenia robusta + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4491 + Rhizosolenia setigera + Rhizosolenia setigera + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4492 + Rhizosolenia shrubsolei + Rhizosolenia shrubsolei + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4493 + Rhizosolenia stolterfothii + Rhizosolenia stolterfothii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4494 + Rhizosolenia styliformis + Rhizosolenia styliformis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4495 + Rhoicosphenia curvata + Rhoicosphenia curvata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4496 + Rhopalodia + Rhopalodia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4497 + Rhopalodia gibba + Rhopalodia gibba + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4498 + Scenedesmus + Scenedesmus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4499 + Scenedesmus acuminatus + Scenedesmus acuminatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4500 + Scenedesmus armatus + Scenedesmus armatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4501 + Scenedesmus bijuga + Scenedesmus bijuga + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4502 + Scenedesmus denticulatus + Scenedesmus denticulatus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4503 + Scenedesmus dimorphus + Scenedesmus dimorphus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4504 + Scenedesmus quadricauda + Scenedesmus quadricauda + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4505 + Schizomeris leibleinii + Schizomeris leibleinii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4506 + Schroederia + Schroederia + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4507 + Scoliopleura + Scoliopleura + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4508 + Scytonema myochrous + Scytonema myochrous + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4509 + Selenastrum + Selenastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4510 + Skeletonema + Skeletonema + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4511 + Skeletonema costatum + Skeletonema costatum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4512 + Sphaerocystis + Sphaerocystis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4513 + Spirogyra + Spirogyra + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4514 + Spirulina + Spirulina + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4515 + Spondylosium + Spondylosium + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4516 + Staurastrum + Staurastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4517 + Stephanodiscus + Stephanodiscus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4518 + Stephanodiscus astrea + Stephanodiscus astrea + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4519 + Stephanopyxis + Stephanopyxis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4520 + Stephanopyxis palmeriana + Stephanopyxis palmeriana + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4521 + Stephanopyxis turris + Stephanopyxis turris + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4522 + Stipitococcus vasiformis + Stipitococcus vasiformis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4523 + Striatella + Striatella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4524 + Surirella + Surirella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4525 + Surirella fastuoso + Surirella fastuoso + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4526 + Surirella striatula + Surirella striatula + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4527 + Synedra + Synedra + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4528 + Synedra acus + Synedra acus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4529 + Synedra fasciculata + Synedra fasciculata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4530 + Synedra superba + Synedra superba + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4531 + Synedra ulna + Synedra ulna + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4532 + Synura + Synura + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4533 + Synura uvella + Synura uvella + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4534 + Tabellaria + Tabellaria + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4535 + Terpsinoe + Terpsinoe + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4536 + Terpsinoe americana + Terpsinoe americana + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4537 + Tetradesmus + Tetradesmus + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4538 + Tetraedron + Tetraedron + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4539 + Tetraedron minimum + Tetraedron minimum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4540 + Tetraedron trigonum + Tetraedron trigonum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4541 + Tetraspora lacustris + Tetraspora lacustris + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4542 + Tetrastrum + Tetrastrum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4543 + Thalassionema + Thalassionema + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4544 + Thalassionema nitzchioides + Thalassionema nitzchioides + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4545 + Thalassiosira + Thalassiosira + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4546 + Thalassiosira aestivalis + Thalassiosira aestivalis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4547 + Thalassiosira decipiens + Thalassiosira decipiens + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4548 + Thalassiosira gravida + Thalassiosira gravida + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4549 + Thalassiosira rotula + Thalassiosira rotula + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4550 + Thalassiothrix + Thalassiothrix + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4551 + Thalassiothrix frauenfeldii + Thalassiothrix frauenfeldii + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4552 + Thalassiothrix longissima + Thalassiothrix longissima + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4553 + Thalassiothrix mediterranea + Thalassiothrix mediterranea + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4554 + Trachelomonas + Trachelomonas + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4555 + Tribonema + Tribonema + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4556 + Ulothrix + Ulothrix + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4557 + Ulothrix cylindricum + Ulothrix cylindricum + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4558 + Ulothrix zonata + Ulothrix zonata + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4559 + Volvox + Volvox + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4560 + Zygnema + Zygnema + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4561 + Zygnemopsis + Zygnemopsis + Hydrosphere/Biological/Biological taxa/Phytoplankton species/ + + + 4563 + Acanthocyclops + Acanthocyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4564 + Acanthocystis + Acanthocystis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4565 + Acartia tonsa + Acartia tonsa + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4566 + Actinopoda + Actinopoda + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4567 + Actinosphaerium + Actinosphaerium + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4568 + Alona guttata + Alona guttata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4569 + Amoeba + Amoeba + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4570 + Amphipoda + Amphipoda + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4571 + Anthomedusae + Anthomedusae + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4572 + Anuraeopsis + Anuraeopsis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4573 + Arcella + Arcella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4574 + Ascomorpha + Ascomorpha + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4575 + Ascomorphella + Ascomorphella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4576 + Asplanchna + Asplanchna + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4577 + Asplanchna brightwelli + Asplanchna brightwelli + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4578 + Asplanchna priodonta + Asplanchna priodonta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4579 + Asplanchnopus + Asplanchnopus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4580 + Bdelloidea + Bdelloidea + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4581 + Beroe + Beroe + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4582 + Bosmina + Bosmina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4583 + Bosmina coregoni + Bosmina coregoni + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4584 + Bosmina longirostris + Bosmina longirostris + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4585 + Brachionus + Brachionus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4586 + Brachionus angularis + Brachionus angularis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4587 + Brachionus bidentatus + Brachionus bidentatus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4588 + Brachionus budapestinensis + Brachionus budapestinensis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4589 + Brachionus calyciflorus + Brachionus calyciflorus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4590 + Brachionus caudatus + Brachionus caudatus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4591 + Brachionus furculatus + Brachionus furculatus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4592 + Brachionus havanaensis + Brachionus havanaensis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4593 + Brachionus plicatilis + Brachionus plicatilis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4594 + Brachionus quadridentata + Brachionus quadridentata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4595 + Brachionus rubens + Brachionus rubens + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4596 + Brachionus urceolaris + Brachionus urceolaris + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4597 + Brachionus variabilis + Brachionus variabilis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4598 + Brachionus zahniseri + Brachionus zahniseri + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4599 + Branchiura + Branchiura + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4600 + Calanoida + Calanoida + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4601 + Callinectes + Callinectes + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4602 + Camptocercus rectirostris + Camptocercus rectirostris + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4603 + Canthocamptus + Canthocamptus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4604 + Carchesium + Carchesium + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4605 + Centropages + Centropages + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4606 + Centropyxis + Centropyxis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4607 + Cephalodella + Cephalodella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4608 + Ceriodaphnia + Ceriodaphnia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4609 + Ceriodaphnia lacustris + Ceriodaphnia lacustris + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4610 + Ceriodaphnia reticulata + Ceriodaphnia reticulata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4611 + Ceriodaphnia rigaudi + Ceriodaphnia rigaudi + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4612 + Ceriodaphnia rotunda + Ceriodaphnia rotunda + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4613 + Chaetognatha + Chaetognatha + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4614 + Chaoborus + Chaoborus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4615 + Chromogaster + Chromogaster + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4616 + Chydorus + Chydorus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4617 + Chydorus sphaericus + Chydorus sphaericus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4618 + Ciliata + Ciliata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4619 + Ciliophora + Ciliophora + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4620 + Cirripedia + Cirripedia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4621 + Cirripedia - cypris + Cirripedia - cypris + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4622 + Cirripedia - nauplius + Cirripedia - nauplius + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4623 + Cladocera + Cladocera + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4624 + Clytemnestra + Clytemnestra + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4625 + Coelenterata + Coelenterata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4626 + Collotheca + Collotheca + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4627 + Collotheca pellagica + Collotheca pellagica + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4628 + Colurella + Colurella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4629 + Conchostraca + Conchostraca + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4630 + Conochiloides + Conochiloides + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4631 + Conochiloides dossuarias + Conochiloides dossuarias + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4632 + Conochilus + Conochilus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4633 + Conochilus unicornis + Conochilus unicornis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4634 + Copepoda + Copepoda + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4635 + Copepoda - nauplius + Copepoda - nauplius + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4636 + Crustacea - larva + Crustacea - larva + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4637 + Ctenophora + Ctenophora + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4638 + Cyclopoida + Cyclopoida + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4639 + Cyclops + Cyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4640 + Cyclops bicuspidatus + Cyclops bicuspidatus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4641 + Cyclops nearcticus + Cyclops nearcticus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4642 + Cyclops vernalis + Cyclops vernalis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4643 + Cypridopsis + Cypridopsis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4644 + Daphnia + Daphnia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4645 + Daphnia ambigua + Daphnia ambigua + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4646 + Daphnia dubia + Daphnia dubia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4647 + Daphnia galeata + Daphnia galeata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4648 + Daphnia laevis + Daphnia laevis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4649 + Daphnia longiremis + Daphnia longiremis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4650 + Daphnia longispina + Daphnia longispina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4651 + Daphnia parvula + Daphnia parvula + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4652 + Daphnia pulex + Daphnia pulex + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4653 + Decapoda - zoea + Decapoda - zoea + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4654 + Diaphanosoma + Diaphanosoma + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4655 + Diaphanosoma brachyurum + Diaphanosoma brachyurum + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4656 + Diaphanosoma leuchtenbergianum + Diaphanosoma leuchtenbergianum + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4657 + Diaptomus + Diaptomus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4658 + Diaptomus siciloides + Diaptomus siciloides + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4659 + Didinium + Didinium + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4660 + Difflugia + Difflugia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4661 + Difflugia globosa + Difflugia globosa + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4662 + Difflugia urecolata + Difflugia urecolata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4663 + Diptera - larva + Diptera - larva + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4664 + Diurella + Diurella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4665 + Diversity - zooplankton + Diversity - zooplankton + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4666 + Echinodermata + Echinodermata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4667 + Ectocyclops phaleratus + Ectocyclops phaleratus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4668 + Eggs, fish + Eggs, fish + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4669 + Eggs, invertebrate + Eggs, invertebrate + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4670 + Encentrum + Encentrum + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4671 + Enteroplea + Enteroplea + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4672 + Epiphanes + Epiphanes + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4673 + Epischura + Epischura + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4674 + Epistylis + Epistylis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4675 + Ergasilus + Ergasilus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4676 + Eubranchipus + Eubranchipus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4677 + Euchaeta + Euchaeta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4678 + Euchlanis + Euchlanis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4679 + Eucyclops + Eucyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4680 + Eucyclops agilis + Eucyclops agilis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4681 + Euplotes + Euplotes + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4682 + Eurytemora + Eurytemora + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4683 + Eurytemora affinis + Eurytemora affinis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4684 + Eutintinnus + Eutintinnus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4685 + Filina brachiata + Filina brachiata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4686 + Filinia + Filinia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4687 + Filinia longiseta + Filinia longiseta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4688 + Filinia opoliensis + Filinia opoliensis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4689 + Filinia terminalis + Filinia terminalis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4690 + Flavella + Flavella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4691 + Flavella panamensis + Flavella panamensis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4692 + Gastropoda larva + Gastropoda larva + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4693 + Gastropus + Gastropus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4694 + Gastropus hyptopus + Gastropus hyptopus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4695 + Gastrotricha + Gastrotricha + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4696 + Halicyclops + Halicyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4697 + Harpacticoida + Harpacticoida + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4698 + Harpacticus + Harpacticus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4699 + Hexarthra + Hexarthra + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4700 + Hexarthra mira + Hexarthra mira + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4701 + Holophrya + Holophrya + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4702 + Horaella + Horaella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4703 + Hydracarina + Hydracarina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4704 + Kellicottia + Kellicottia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4705 + Kellicottia bostoniensis + Kellicottia bostoniensis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4706 + Kellicottia longispina + Kellicottia longispina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4707 + Keratella + Keratella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4708 + Keratella cochlearis + Keratella cochlearis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4709 + Keratella cochlearis f. tecta + Keratella cochlearis f. tecta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4710 + Keratella earlinae + Keratella earlinae + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4711 + Keratella gracilenta + Keratella gracilenta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4712 + Keratella quadrata + Keratella quadrata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4713 + Keratella valga f. tropica + Keratella valga f. tropica + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4714 + Labidocera + Labidocera + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4715 + Lecane + Lecane + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4716 + Lepadella + Lepadella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4717 + Leydigia + Leydigia + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4718 + Leydigia acanthocercoides + Leydigia acanthocercoides + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4719 + Leydigia quadrangularis + Leydigia quadrangularis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4720 + Limnocalanus + Limnocalanus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4721 + Lophocharis + Lophocharis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4722 + Lucifer faxoni + Lucifer faxoni + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4723 + Macrocyclops + Macrocyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4724 + Macrosetella + Macrosetella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4725 + Macrothrix + Macrothrix + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4726 + Mesocyclops + Mesocyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4727 + Mesocyclops edax + Mesocyclops edax + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4728 + Microcyclops + Microcyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4729 + Microcyclops panamensis + Microcyclops panamensis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4730 + Moina + Moina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4731 + Moina affinis + Moina affinis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4732 + Moina micrura + Moina micrura + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4733 + Mollusca - larva + Mollusca - larva + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4734 + Monogononta + Monogononta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4735 + Monommata + Monommata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4736 + Monostyla + Monostyla + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4737 + Monostyla cornuta + Monostyla cornuta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4738 + Mysidopsis + Mysidopsis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4739 + Mysidopsis almyra + Mysidopsis almyra + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4740 + Mytilina + Mytilina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4741 + Nauplius, unknown + Nauplius, unknown + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4742 + Nebela + Nebela + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4743 + Nemata + Nemata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4744 + Nemopsis bachei + Nemopsis bachei + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4745 + Notholca + Notholca + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4746 + Notholca acuminata + Notholca acuminata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4747 + Notholca labis + Notholca labis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4748 + Notommata + Notommata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4749 + Oikopleura + Oikopleura + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4750 + Oikopleura dioica + Oikopleura dioica + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4751 + Oithona + Oithona + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4752 + Oligochaete - larvae + Oligochaete - larvae + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4753 + Oncaea + Oncaea + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4754 + Orthocyclops + Orthocyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4755 + Ostracoda + Ostracoda + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4756 + Paracalanus + Paracalanus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4757 + Paracyclops + Paracyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4758 + Paracyclops fimbriatus + Paracyclops fimbriatus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4759 + Paramecium + Paramecium + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4760 + Parundella + Parundella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4761 + Philodina + Philodina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4762 + Platyias + Platyias + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4763 + Platyias patulus + Platyias patulus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4764 + Platyias quadricornis + Platyias quadricornis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4765 + Ploesoma + Ploesoma + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4766 + Podon + Podon + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4767 + Polyarthra + Polyarthra + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4768 + Polyarthra major + Polyarthra major + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4769 + Polyarthra remata + Polyarthra remata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4770 + Polyarthra trigla (#/sq ft) + Polyarthra trigla (#/sq ft) + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4771 + Polyarthra vulgaris + Polyarthra vulgaris + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4772 + Polychaete - larva + Polychaete - larva + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4773 + Polyphemus + Polyphemus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4774 + Polyphemus pediculus + Polyphemus pediculus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4775 + Pompholyx + Pompholyx + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4776 + Pompholyx sulcata + Pompholyx sulcata + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4777 + Proales + Proales + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4778 + Proplectella + Proplectella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4779 + Protozoa + Protozoa + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4780 + Pseudodiaptomus + Pseudodiaptomus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4781 + Pseudodiaptomus coronatus + Pseudodiaptomus coronatus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4782 + Pulvinulina + Pulvinulina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4783 + Rhithropanopeus harrissii + Rhithropanopeus harrissii + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4784 + Rhizopoda + Rhizopoda + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4785 + Rotaria + Rotaria + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4786 + Rotifera + Rotifera + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4787 + Sagitta + Sagitta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4788 + Saphirella + Saphirella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4789 + Scaridium + Scaridium + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4790 + Scyphozoa + Scyphozoa + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4791 + Senecella calanoides + Senecella calanoides + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4792 + Sida crystallina + Sida crystallina + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4793 + Simocephalus + Simocephalus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4794 + Simocephalus exspinosus + Simocephalus exspinosus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4795 + Stentor + Stentor + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4796 + Stomolophus + Stomolophus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4797 + Synchaeta + Synchaeta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4798 + Synchaeta oblonga + Synchaeta oblonga + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4799 + Synchaeta styla + Synchaeta styla + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4800 + Taphromysis louisianne + Taphromysis louisianne + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4801 + Testudinella + Testudinella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4802 + Thecacineta + Thecacineta + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4803 + Tintinnidae + Tintinnidae + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4804 + Tintinnidium + Tintinnidium + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4805 + Tintinnopsis + Tintinnopsis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4806 + Tintinnopsis beroidea + Tintinnopsis beroidea + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4807 + Tintinnopsis kofoidi + Tintinnopsis kofoidi + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4808 + Tintinnopsis mortensis + Tintinnopsis mortensis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4809 + Tintinnopsis parvula + Tintinnopsis parvula + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4810 + Tintinnopsis tubulosa + Tintinnopsis tubulosa + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4811 + Tortanus + Tortanus + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4812 + Trichocerca + Trichocerca + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4813 + Trichocerca multicrinis + Trichocerca multicrinis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4814 + Trichocerca pusilla + Trichocerca pusilla + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4815 + Trichocerca rousseleti + Trichocerca rousseleti + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4816 + Trichocerca similis + Trichocerca similis + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4817 + Trichotria + Trichotria + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4818 + Trochophore, unknown + Trochophore, unknown + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4819 + Trochosphaera + Trochosphaera + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4820 + Tropocyclops + Tropocyclops + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4821 + Vorticella + Vorticella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4822 + Wierzejskiella + Wierzejskiella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4823 + Zooflagella + Zooflagella + Hydrosphere/Biological/Biological taxa/Zooplankton species/ + + + 4905 + Coliform, fecal + Coliform, fecal + Hydrosphere/Biological/Indicator Organisms/ + + + 4905 + Fecal coliform + Coliform, fecal + Hydrosphere/Biological/Indicator Organisms/ + + + 4905 + Fecal coliforms + Coliform, fecal + Hydrosphere/Biological/Indicator Organisms/ + + + 4906 + Fecal streptococci + Streptococci, fecal + Hydrosphere/Biological/Indicator Organisms/ + + + 4906 + Fecal Streptococcus + Streptococci, fecal + Hydrosphere/Biological/Indicator Organisms/ + + + 4906 + Streptococci, fecal + Streptococci, fecal + Hydrosphere/Biological/Indicator Organisms/ + + + 4907 + Coliform, total + Coliform, total + Hydrosphere/Biological/Indicator Organisms/ + + + 4907 + Total coliform + Coliform, total + Hydrosphere/Biological/Indicator Organisms/ + + + 4907 + Total coliforms + Coliform, total + Hydrosphere/Biological/Indicator Organisms/ + + + 4908 + Actinomycetes + Actinomycetes + Hydrosphere/Biological/Indicator Organisms/ + + + 4909 + Bacteria + Bacteria mix, unspecified + Hydrosphere/Biological/Indicator Organisms/ + + + 4909 + Bacteria mix, unspecified + Bacteria mix, unspecified + Hydrosphere/Biological/Indicator Organisms/ + + + 4910 + Bacteria, nitrifiers + Bacteria, nitrifiers + Hydrosphere/Biological/Indicator Organisms/ + + + 4910 + Bacteria, nitrifying + Bacteria, nitrifiers + Hydrosphere/Biological/Indicator Organisms/ + + + 4911 + Calicivirus + Caliciviruses + Hydrosphere/Biological/Indicator Organisms/ + + + 4911 + Caliciviruses + Caliciviruses + Hydrosphere/Biological/Indicator Organisms/ + + + 4912 + Clostridium perfringens + Clostridium perfringens + Hydrosphere/Biological/Indicator Organisms/ + + + 4913 + Cryptosporidium + Cryptosporidium + Hydrosphere/Biological/Indicator Organisms/ + + + 4914 + Enterobacter cloacae + Enterobacter cloacae + Hydrosphere/Biological/Indicator Organisms/ + + + 4915 + Enterococci + Enterococci + Hydrosphere/Biological/Indicator Organisms/ + + + 4916 + Escherichia coli + Escherichia coli + Hydrosphere/Biological/Indicator Organisms/ + + + 4917 + Giardia + Giardia + Hydrosphere/Biological/Indicator Organisms/ + + + 4918 + Helicobacter pylori + Helicobacter pylori + Hydrosphere/Biological/Indicator Organisms/ + + + 4919 + Heterotrophic bacteria + Heterotrophic bacteria + Hydrosphere/Biological/Indicator Organisms/ + + + 4920 + Klebsiella pneumoniae + Klebsiella pneumoniae + Hydrosphere/Biological/Indicator Organisms/ + + + 4921 + Pseudomonas + Pseudomonas + Hydrosphere/Biological/Indicator Organisms/ + + + 4922 + Pseudomonas aeruginosa + Pseudomonas aeruginosa + Hydrosphere/Biological/Indicator Organisms/ + + + 4923 + Salmonella + Salmonella + Hydrosphere/Biological/Indicator Organisms/ + + + 4924 + Enteric virus + Viruses (enteric) + Hydrosphere/Biological/Indicator Organisms/ + + + 4924 + Viruses (enteric) + Viruses (enteric) + Hydrosphere/Biological/Indicator Organisms/ + + + 5001 + Stable Isotopes + Stable Isotopes + Hydrosphere/Chemical/ + + + 2381 + Nutrient + Nutrient + Hydrosphere/Chemical/ + + + 2423 + Oxygen Demand + Oxygen Demand + Hydrosphere/Chemical/ + + + 2428 + Radiochemical + Radiochemical + Hydrosphere/Chemical/ + + + 2250 + Inorganic + Inorganic + Hydrosphere/Chemical/ + + + 42 + Organic + Organic + Hydrosphere/Chemical/ + + + 2251 + Dissolved Gas + Dissolved Gas + Hydrosphere/Chemical/Inorganic/ + + + 2264 + Dissolved Solids + Dissolved Solids + Hydrosphere/Chemical/Inorganic/ + + + 2299 + Minor + Minor + Hydrosphere/Chemical/Inorganic/ + + + 2267 + Major + Major + Hydrosphere/Chemical/Inorganic/ + + + 2252 + Dissolved oxygen + Oxygen, dissolved + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2252 + Oxygen, dissolved + Oxygen, dissolved + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2253 + Dissolved oxygen saturation + Oxygen, dissolved percent of saturation + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2253 + Dissolved oxygen, percent of saturation + Oxygen, dissolved percent of saturation + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2253 + Oxygen, dissolved percent of saturation + Oxygen, dissolved percent of saturation + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2254 + Carbon dioxide + Carbon dioxide + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2255 + Chlorine + Chlorine + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2255 + Chlorine (combined available) + Chlorine + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2255 + Chlorine (free available) + Chlorine + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2255 + Chlorine (total residual) + Chlorine + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2256 + Fluorine + Fluorine + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2257 + Hydrogen + Hydrogen + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2258 + Hydrogen sulfide + Hydrogen sulfide + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2259 + Argon + Argon + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2260 + Krypton + Krypton + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2261 + Xenon + Xenon + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2262 + Dissolved nitrogen gas + Nitrogen, gas + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2262 + Nitrogen, gas + Nitrogen, gas + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2263 + Nitrous oxide + Nitrous oxide + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 5049 + Sulfur dioxide + Sulfur dioxide + Hydrosphere/Chemical/Inorganic/Dissolved Gas/ + + + 2265 + Fixed dissolved solids + Solids, fixed dissolved + Hydrosphere/Chemical/Inorganic/Dissolved Solids/ + + + 2265 + Solids, fixed dissolved + Solids, fixed dissolved + Hydrosphere/Chemical/Inorganic/Dissolved Solids/ + + + 2266 + Solids, total dissolved + Solids, total dissolved + Hydrosphere/Chemical/Inorganic/Dissolved Solids/ + + + 2266 + Total dissolved solids + Solids, total dissolved + Hydrosphere/Chemical/Inorganic/Dissolved Solids/ + + + 2276 + Major, non-metals + Major, non-metals + Hydrosphere/Chemical/Inorganic/Major/ + + + 2268 + Major, metals + Major, metals + Hydrosphere/Chemical/Inorganic/Major/ + + + 2291 + Major, bulk properties + Major, bulk properties + Hydrosphere/Chemical/Inorganic/Major/ + + + 2292 + Oxidation reduction potential + Oxidation reduction potential + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2292 + Redox potential + Oxidation reduction potential + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2293 + pH + pH + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2294 + Salinity + Salinity + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2295 + Carbonate hardness + Hardness, carbonate + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2295 + Hardness, carbonate + Hardness, carbonate + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2296 + Hardness, non-carbonate + Hardness, non-carbonate + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2296 + Noncarbonate hardness + Hardness, non-carbonate + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2297 + Specific conductance + Specific conductance + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2297 + Specific conductivity + Specific conductance + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2298 + Hardness + Hardness, total + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2298 + Hardness, total + Hardness, total + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2298 + Total hardness + Hardness, total + Hydrosphere/Chemical/Inorganic/Major/Major, bulk properties/ + + + 2269 + Calcium + Calcium + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2270 + Magnesium + Magnesium + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2271 + Potassium + Potassium + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2272 + Sodium + Sodium + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2273 + Sodium adsorption ratio + Sodium adsorption ratio + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2274 + Sodium plus potassium + Sodium plus potassium + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2275 + Sodium, fraction of cations + Sodium, fraction of cations + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2275 + Sodium, percent total cations + Sodium, fraction of cations + Hydrosphere/Chemical/Inorganic/Major/Major, metals/ + + + 2277 + Acidity + Acidity + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2278 + Acid neutralizing capacity + Alkalinity + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2278 + Alkalinity + Alkalinity + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2279 + Bicarbonate + Bicarbonate + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2280 + Bromide + Bromide + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2281 + Chloride + Chloride + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2282 + Chlorine demand + Chlorine demand + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2283 + Fluoride + Fluoride + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2284 + Hydrogen ion + Hydrogen ion + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2285 + Hydroxide + Hydroxide + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2286 + Silica + Silica + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2287 + Sulfate + Sulfate + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2288 + Sulfide + Sulfide + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2289 + Sulfur + Sulfur + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2290 + Thiosulfate + Thiosulfate + Hydrosphere/Chemical/Inorganic/Major/Major, non-metals/ + + + 2360 + Minor, non-metals + Minor, non-metals + Hydrosphere/Chemical/Inorganic/Minor/ + + + 2300 + Minor, metals + Minor, metals + Hydrosphere/Chemical/Inorganic/Minor/ + + + 2301 + Aluminum + Aluminum + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2302 + Barium + Barium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2303 + Beryllium + Beryllium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2304 + Bismuth + Bismuth + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2305 + Cadmium + Cadmium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2306 + Cerium + Cerium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2307 + Cesium + Cesium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2308 + Chromium + Chromium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2309 + Chromium(III) + Chromium(III) + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2310 + Chromium(VI) + Chromium(VI) + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2311 + Cobalt + Cobalt + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2312 + Copper + Copper + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2313 + Dysprosium + Dysprosium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2314 + Erbium + Erbium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2315 + Europium + Europium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2316 + Iron, ferric + Iron, ferric + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2316 + Ferric ion + Iron, ferric + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2317 + Ferrous ion + Iron, ferrous + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2317 + Iron(II) + Iron, ferrous + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2317 + Iron, ferrous + Iron, ferrous + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2318 + Gadolinium + Gadolinium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2319 + Gallium + Gallium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2320 + Gold + Gold + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2321 + Hafnium + Hafnium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2322 + Holmium + Holmium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2323 + Indium + Indium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2324 + Iridium + Iridium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2325 + Iron + Iron + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2326 + Lanthanum + Lanthanum + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2327 + Lead + Lead + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2328 + Lithium + Lithium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2329 + Lutetium + Lutetium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2330 + Manganese + Manganese + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2331 + Mercury + Mercury + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2332 + Molybdenum + Molybdenum + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2333 + Neodymium + Neodymium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2334 + Nickel + Nickel + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2335 + Niobium + Niobium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2336 + Osmium + Osmium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2337 + Palladium + Palladium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2338 + Platinum + Platinum + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2339 + Praseodymium + Praseodymium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2340 + Rhenium + Rhenium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2341 + Rhodium + Rhodium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2342 + Rubidium + Rubidium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2343 + Ruthenium + Ruthenium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2344 + Samarium + Samarium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2345 + Scandium + Scandium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2346 + Silver + Silver + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2347 + Strontium + Strontium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2348 + Tantalum + Tantalum + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2349 + Terbium + Terbium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2350 + Thallium + Thallium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2351 + Thulium + Thulium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2352 + Tin + Tin + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2353 + Titanium + Titanium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2354 + Tungsten + Tungsten + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2355 + Vanadium + Vanadium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2356 + Ytterbium + Ytterbium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2357 + Yttrium + Yttrium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2358 + Zinc + Zinc + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2359 + Zirconium + Zirconium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 5020 + Uranium + Uranium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 5020 + Uranium (natural) + Uranium + Hydrosphere/Chemical/Inorganic/Minor/Minor, metals/ + + + 2361 + Antimony + Antimony + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2362 + Arsenic + Arsenic + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2363 + Arsenic acid + Arsenic acid + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2364 + Asbestos + Asbestos + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2364 + Asbestos (fibrous) + Asbestos + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2365 + Boron + Boron + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2366 + Bromine + Bromine + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2367 + Chlorate + Chlorate + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2368 + Cyanide + Cyanide + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2369 + Cyanides amenable to chlorination (HCN & CN) + Cyanides amenable to chlorination (HCN & CN) + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2370 + Germanium + Germanium + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2371 + Helium + Helium + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2372 + Iodide + Iodide + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2373 + Iodine + Iodine + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2374 + Neon + Neon + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2375 + Perchlorate + Perchlorate + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2376 + Selenium + Selenium + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2377 + Sulfite + Sulfite (SO3) + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2377 + Sulfite (SO3) + Sulfite (SO3) + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2378 + Sulfur hexafluoride + Sulfur hexafluoride + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2379 + Tellurium + Tellurium + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2380 + Thiocyanate + Thiocyanate + Hydrosphere/Chemical/Inorganic/Minor/Minor, non-metals/ + + + 2401 + Phosphorus + Phosphorus + Hydrosphere/Chemical/Nutrient/ + + + 2382 + Nitrogen + Nitrogen + Hydrosphere/Chemical/Nutrient/ + + + 2413 + Carbon + Carbon + Hydrosphere/Chemical/Nutrient/ + + + 2414 + Carbonate + Carbonate (CO3) + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2414 + Carbonate (CO3) + Carbonate (CO3) + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2415 + Carbon (inorganic plus organic) + Carbon, total + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2415 + Carbon, total + Carbon, total + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2415 + Total Carbon + Carbon, total + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2416 + Carbon, total organic + Carbon, total organic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2416 + Total organic carbon + Carbon, total organic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2417 + Carbon, dissolved organic + Carbon, dissolved organic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2417 + Dissolved organic carbon + Carbon, dissolved organic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2418 + Carbon, suspended organic + Carbon, suspended organic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2418 + Suspended organic carbon + Carbon, suspended organic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2419 + Carbon, total inorganic + Carbon, total inorganic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2419 + Total inorganic carbon + Carbon, total inorganic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2420 + Carbon, dissolved inorganic + Carbon, dissolved inorganic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2420 + Dissolved inorganic carbon + Carbon, dissolved inorganic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2421 + Carbon, suspended inorganic + Carbon, suspended inorganic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2421 + Suspended inorganic carbon + Carbon, suspended inorganic + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2422 + Carbon, total dissolved + Carbon, total dissolved + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 2422 + Total dissolved carbon + Carbon, total dissolved + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 5037 + Colored dissolved organic matter + Colored dissolved organic matter + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 5038 + Carbon, total suspended + Carbon, total suspended + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 5038 + Total suspended carbon + Carbon, total suspended + Hydrosphere/Chemical/Nutrient/Carbon/ + + + 5018 + Dissolved kjeldahl nitrogen + Nitrogen, dissolved kjeldahl + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 5018 + Nitrogen, dissolved kjeldahl + Nitrogen, dissolved kjeldahl + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2383 + Ammonia + Ammonia + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2388 + Albuminoid nitrogen + N, albuminoid + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2388 + N, albuminoid + N, albuminoid + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2389 + Nitrate nitrogen + Nitrogen, nitrate (NO3) + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2389 + Nitrogen, nitrate (NO3) + Nitrogen, nitrate (NO3) + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2390 + Nitrite nitrogen + Nitrogen, nitrite (NO2) + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2390 + Nitrogen, nitrite (NO2) + Nitrogen, nitrite (NO2) + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2391 + Nitrite plus nitrate + Nitrogen, nitrite (NO2) + nitrate (NO3) + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2391 + Nitrogen, nitrite (NO2) + nitrate (NO3) + Nitrogen, nitrite (NO2) + nitrate (NO3) + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2392 + Nitrogen compounds, organic + Nitrogen, total organic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2392 + Nitrogen, total organic + Nitrogen, total organic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2392 + Total organic nitrogen + Nitrogen, total organic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2393 + Dissolved organic nitrogen + Nitrogen, dissolved organic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2393 + Nitrogen, dissolved organic + Nitrogen, dissolved organic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2394 + Nitrogen, suspended organic + Nitrogen, suspended organic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2394 + Suspended organic nitrogen + Nitrogen, suspended organic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2395 + Nitrogen, total inorganic + Nitrogen, total inorganic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2395 + Total inorganic nitrogen + Nitrogen, total inorganic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2396 + Dissolved inorganic nitrogen + Nitrogen, dissolved inorganic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2396 + Nitrogen, dissolved inorganic + Nitrogen, dissolved inorganic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2397 + Nitrogen, suspended inorganic + Nitrogen, suspended inorganic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2397 + Suspended inorganic nitrogen + Nitrogen, suspended inorganic + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2398 + Nitrogen, total kjeldahl + Nitrogen, total kjeldahl + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2398 + Total kjeldahl nitrogen + Nitrogen, total kjeldahl + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2399 + Nitrogen, total + Nitrogen, total + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2399 + Total nitrogen + Nitrogen, total + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2400 + Nitrogen, total dissolved + Nitrogen, total dissolved + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2400 + Total dissolved nitrogen + Nitrogen, total dissolved + Hydrosphere/Chemical/Nutrient/Nitrogen/ + + + 2384 + Ammonium + Ammonium + Hydrosphere/Chemical/Nutrient/Nitrogen/Ammonia/ + + + 2384 + Ionized ammonia + Ammonium + Hydrosphere/Chemical/Nutrient/Nitrogen/Ammonia/ + + + 2385 + Ammonia and ammonium + Total ammonia + Hydrosphere/Chemical/Nutrient/Nitrogen/Ammonia/ + + + 2385 + Total ammonia + Total ammonia + Hydrosphere/Chemical/Nutrient/Nitrogen/Ammonia/ + + + 2386 + Ammonia + Ammonia + Hydrosphere/Chemical/Nutrient/Nitrogen/Ammonia/ + + + 2386 + Free ammonia + Ammonia + Hydrosphere/Chemical/Nutrient/Nitrogen/Ammonia/ + + + 2387 + Ammonium ammonia ratio + Ammonium ammonia ratio + Hydrosphere/Chemical/Nutrient/Nitrogen/Ammonia/ + + + 5008 + Phosphorus, total dissolved + Phosphorus, total dissolved + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 5008 + Total dissolved phosphorus + Phosphorus, total dissolved + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2402 + Hydrolyzable phopshorus + Hydrolyzable phopshorus + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2403 + Hydrolyzable P plus orthophosphate + Hydrolyzable P plus orthophosphate + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2404 + Phosphorus, total organic + Phosphorus, total organic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2404 + Total organic phosphorus + Phosphorus, total organic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2405 + Dissolved organic phosphorus + Phosphorus, dissolved organic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2405 + Phosphorus, dissolved organic + Phosphorus, dissolved organic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2406 + Phosphorus, suspended organic + Phosphorus, suspended organic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2406 + Suspended organic phosphorus + Phosphorus, suspended organic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2407 + Phosphorus, total inorganic + Phosphorus, total inorganic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2407 + Total inorganic phosphorus + Phosphorus, total inorganic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2408 + Dissolved inorganic phosphorus + Phosphorus, dissolved inorganic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2408 + Phosphorus, dissolved inorganic + Phosphorus, dissolved inorganic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2409 + Phosphorus, suspended inorganic + Phosphorus, suspended inorganic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2409 + Suspended inorganic phosphorus + Phosphorus, suspended inorganic + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2410 + Orthophosphate + Phosphorus, ortophosphate + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2410 + Phosphorus, ortophosphate + Phosphorus, ortophosphate + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2411 + Phosphorus, polyphosphate + Phosphorus, polyphosphate + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2411 + Polyphosphate + Phosphorus, polyphosphate + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2412 + Phosphorus, total + Phosphorus, total + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 2412 + Total phosphorus + Phosphorus, total + Hydrosphere/Chemical/Nutrient/Phosphorus/ + + + 43 + PCBs + PCBs + Hydrosphere/Chemical/Organic/ + + + 1283 + Other organic chemical + Other organic chemical + Hydrosphere/Chemical/Organic/ + + + 1833 + Pesticide + Pesticide + Hydrosphere/Chemical/Organic/ + + + 1284 + Acrolein + Acrolein + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1285 + Acrylonitrile + Acrylonitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1286 + Aldrin + Aldrin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1287 + (+)-Panthenol + (+)-Panthenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1288 + .alpha.,.alpha.-Dimethylphenethylamine + .alpha.,.alpha.-Dimethylphenethylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1288 + alpha,alpha-Dimethylphenethylamine + .alpha.,.alpha.-Dimethylphenethylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1289 + .alpha.-Methylstyrene + .alpha.-Methylstyrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1290 + .alpha.-Pinene + .alpha.-Pinene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1290 + alpha-Pinene + .alpha.-Pinene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1291 + .alpha.-Terpineol + .alpha.-Terpineol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1291 + alpha-Terpineol + .alpha.-Terpineol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1292 + 1,1,1,2-Tetrachloroethane + 1,1,1,2-Tetrachloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1293 + 1,1,1-Trichloro-2-propanone + 1,1,1-Trichloro-2-propanone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1294 + 1,1,1-Trichloroethane + 1,1,1-Trichloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1295 + 1,1,2,2-Tetrachloroethane + 1,1,2,2-Tetrachloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1296 + 1,1,2-Trichloroethane + 1,1,2-Trichloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1297 + 1,1'-Biphenyl, 4,4'-dibromo-2,2',3,3',5,5',6,6'-octafluoro- + 1,1'-Biphenyl, 4,4'-dibromo-2,2',3,3',5,5',6,6'-octafluoro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1298 + 1,1-Dichloroethane + 1,1-Dichloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1299 + 1,1-Dichloroethylene + 1,1-Dichloroethylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1300 + 1,1-Dichloropropanone + 1,1-Dichloropropanone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1301 + 1,1-Dichloropropene + 1,1-Dichloropropene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1302 + 1,2,3,4,6,7,8,9-Octachlorodibenzofuran + 1,2,3,4,6,7,8,9-Octachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1303 + 1,2,3,4,6,7,8,9-Octachlorodibenzo-p-dioxin + 1,2,3,4,6,7,8,9-Octachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1304 + 1,2,3,4,6,7,8-Heptachlorodibenzofuran + 1,2,3,4,6,7,8-Heptachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1305 + 1,2,3,4,6,7,8-Heptachlorodibenzo-p-dioxin + 1,2,3,4,6,7,8-Heptachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1306 + 1,2,3,4,7,8,9-Heptachlorodibenzofuran + 1,2,3,4,7,8,9-Heptachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1307 + 1,2,3,4,7,8-Hexachlorodibenzofuran + 1,2,3,4,7,8-Hexachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1308 + 1,2,3,4,7,8-Hexachlorodibenzo-p-dioxin + 1,2,3,4,7,8-Hexachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1309 + 1,2,3,4-Tetramethylbenzene + 1,2,3,4-Tetramethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1310 + 1,2,3,5-Tetramethylbenzene + 1,2,3,5-Tetramethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1311 + 1,2,3,6,7,8-Hexachlorodibenzofuran + 1,2,3,6,7,8-Hexachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1312 + 1,2,3,6,7,8-Hexachlorodibenzo-p-dioxin + 1,2,3,6,7,8-Hexachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1313 + 1,2,3,7,8,9-Hexachlorodibenzofuran + 1,2,3,7,8,9-Hexachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1314 + 1,2,3,7,8,9-Hexachlorodibenzo-p-dioxin + 1,2,3,7,8,9-Hexachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1315 + 1,2,3,7,8-Pentachlorodibenzofuran + 1,2,3,7,8-Pentachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1316 + 1,2,3,7,8-Pentachlorodibenzo-p-dioxin + 1,2,3,7,8-Pentachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1317 + 1,2,3-Trichlorobenzene + 1,2,3-Trichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1318 + 1,2,3-Trimethylbenzene + 1,2,3-Trimethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1319 + 1,2,4,5-Tetrachlorobenzene + 1,2,4,5-Tetrachlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1320 + 1,2,4,5-Tetramethylbenzene + 1,2,4,5-Tetramethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1321 + 1,2,4-Trichlorobenzene + 1,2,4-Trichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1322 + 1,2,4-Trimethylbenzene + 1,2,4-Trimethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1323 + 1,2-Bis(2,4,6-tribromophenoxy)ethane + 1,2-Bis(2,4,6-tribromophenoxy)ethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1324 + 1,2-Dichloroethylene + 1,2-Dichloroethylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1325 + 1,2-Dichloropropene + 1,2-Dichloropropene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1326 + 1,2-Dimethylnaphthalene + 1,2-Dimethylnaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1327 + 1,2-Diphenylhydrazine + 1,2-Diphenylhydrazine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1328 + 1,3,5-Trichlorobenzene + 1,3,5-Trichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1329 + 1,3,5-Trimethylbenzene + 1,3,5-Trimethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1330 + 1,3,5-Trinitrobenzene + 1,3,5-Trinitrobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1331 + 1,3-Dioxolo[4,5-g]quinoline-7-carboxylic acid, 5-ethyl-5,8-dihydro-8-oxo- + 1,3-Dioxolo[4,5-g]quinoline-7-carboxylic acid, 5-ethyl-5,8-dihydro-8-oxo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1332 + 1,3-Isobenzofurandione, 4,5,6,7-tetrabromo- + 1,3-Isobenzofurandione, 4,5,6,7-tetrabromo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1333 + 1,3-Propanedione, 1-[4-(1,1-dimethylethyl)phenyl]-3-(4-methoxyphenyl)- + 1,3-Propanedione, 1-[4-(1,1-dimethylethyl)phenyl]-3-(4-methoxyphenyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1334 + 1,4-Dioxane + 1,4-Dioxane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1335 + 1,6-Dimethylnaphthalene + 1,6-Dimethylnaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1336 + 1-Bromo-2-chloroethane + 1-Bromo-2-chloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1337 + 1H-Benzimidazol-2-amine + 1H-Benzimidazol-2-amine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1338 + 1H-Benzotriazole, 5-methyl- + 1H-Benzotriazole, 5-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1338 + 5-Methyl-1H-benzotriazole + 1H-Benzotriazole, 5-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1339 + 1-Hexadecen-3-ol, 3,7,11,15-tetramethyl- + 1-Hexadecen-3-ol, 3,7,11,15-tetramethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1340 + 1-Methyl-9H-fluorene + 1-Methylfluorene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1340 + 1-Methylfluorene + 1-Methylfluorene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1341 + 1-Methylnaphthalene + 1-Methylnaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1342 + 1-Methylphenanthrene + 1-Methylphenanthrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1343 + 1-Methylpyrene + 1-Methylpyrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1344 + 1-Naphthalenamine + 1-Naphthalenamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1345 + 2-(Methylthio)benzothiazole + 2-(Methylthio)benzothiazole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1346 + 2,2'-Biquinoline + 2,2'-Biquinoline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1347 + 2,2-Dichloropropane + 2,2-Dichloropropane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1348 + 2,3,4,6,7,8-Hexachlorodibenzofuran + 2,3,4,6,7,8-Hexachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1349 + 2,3,4,7,8-Pentachlorodibenzofuran + 2,3,4,7,8-Pentachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1350 + 2,3,6-Trimethylnaphthalene + 2,3,6-Trimethylnaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1351 + 2,3,7,8-Tetrachlorodibenzofuran + 2,3,7,8-Tetrachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1352 + 2,3,7,8-Tetrachlorodibenzo-p-dioxin + 2,3,7,8-Tetrachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1353 + 2,3-Dichloropropene + 2,3-Dichloropropene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1354 + 2,4,6-Trimethylphenol + 2,4,6-Trimethylphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1355 + 2,4-Dinitrophenol + 2,4-Dinitrophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1356 + 2,4-Dinitrotoluene + 2,4-Dinitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1357 + 2,4-Pyrimidinediamine, 5-[(3,4,5-trimethoxyphenyl)methyl]- + 2,4-Pyrimidinediamine, 5-[(3,4,5-trimethoxyphenyl)methyl]- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1358 + 2,6-Dichlorobenzamide + 2,6-Dichlorobenzamide + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1359 + 2,6-Dichlorophenol + 2,6-Dichlorophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1360 + 2,6-Dimethylnaphthalene + 2,6-Dimethylnaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1361 + 2,6-Dinitrotoluene + 2,6-Dinitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1362 + 2,6-Di-tert-butyl-p-cresol + 2,6-Di-tert-butyl-p-cresol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1363 + 2,6-Di-tert-butylphenol + 2,6-Di-tert-butylphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1364 + 2-Acetylaminofluorene + 2-Acetylaminofluorene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1365 + 2-Amino-4,6-dinitrotoluene + 2-Amino-4,6-dinitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1366 + 2-Amino-9H-pyrido[2,3-b]indole + 2-Amino-9H-pyrido[2,3-b]indole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1367 + 2-Butene, 1,4-dichloro-, (2Z)- + 2-Butene, 1,4-dichloro-, (2Z)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1368 + 2-Butene, 2-methyl- + 2-Butene, 2-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1369 + 2-Chloroethyl vinyl ether + 2-Chloroethyl vinyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1370 + 2-Chloronaphthalene + 2-Chloronaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1371 + 2-Ethylhexyl p-methoxycinnamate + 2-Ethylhexyl p-methoxycinnamate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1372 + 2-Ethylnaphthalene + 2-Ethylnaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1373 + 2H-1,2,4-Benzothiadiazine-7-sulfonamide, 6-chloro-3,4-dihydro-, 1,1-dioxide + 2H-1,2,4-Benzothiadiazine-7-sulfonamide, 6-chloro-3,4-dihydro-, 1,1-dioxide + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1374 + 2H-1-Benzopyran-6-ol, 3,4-dihydro-2,5,7,8-tetramethyl-2-[(4R,8R)-4,8,12-trimethyltridecyl]-, (2R)- + 2H-1-Benzopyran-6-ol, 3,4-dihydro-2,5,7,8-tetramethyl-2-[(4R,8R)-4,8,12-trimethyltridecyl]-, (2R)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1375 + 2-Hexadecen-1-ol, 3,7,11,15-tetramethyl-, (2E,7R,11R)- + 2-Hexadecen-1-ol, 3,7,11,15-tetramethyl-, (2E,7R,11R)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1376 + 2-Hexanone + 2-Hexanone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1377 + 2-Hydroxy-4-methoxybenzophenone + 2-Hydroxy-4-methoxybenzophenone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1378 + 2-Hydroxy-4-octyloxybenzophenone + 2-Hydroxy-4-octyloxybenzophenone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1379 + 2-Methyl-2-butanol + 2-Methyl-2-butanol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1380 + 2-Methyl-5-nitroaniline + 2-Methyl-5-nitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1381 + 2-Methylanthracene + 2-Methylanthracene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1382 + 2-Methylbutane + 2-Methylbutane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1383 + 2-Methylnaphthalene + 2-Methylnaphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1384 + 2-Methylpyridine + 2-Methylpyridine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1385 + 2-Naphthacenecarboxamide, 7-chloro-4-(dimethylamino)-1,4,4a,5,5a,6,11,12a-octahydro-3,6,10,12,12a-pentahydroxy-6-methyl-1,11-dioxo-, (4S,4aS,5aS,6S,12aS)- + 2-Naphthacenecarboxamide, 7-chloro-4-(dimethylamino)-1,4,4a,5,5a,6,11,12a-octahydro-3,6,10,12,12a-pentahydroxy-6-methyl-1,11-dioxo-, (4S,4aS,5aS,6S,12aS)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1386 + 2-Naphthalenamine + 2-Naphthalenamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1387 + 2-Nitropropane + 2-Nitropropane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1388 + 2-Propanol, 1,3-dichloro-, phosphate (3:1) + 2-Propanol, 1,3-dichloro-, phosphate (3:1) + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1389 + 2-Pyrrolidinone, 1-methyl-5-(3-pyridinyl)-, (5S)- + 2-Pyrrolidinone, 1-methyl-5-(3-pyridinyl)-, (5S)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1390 + 3,3,5-Trimethylcyclohexyl salicylate + 3,3,5-Trimethylcyclohexyl salicylate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1391 + 3,3'-Dichlorobenzidine + 3,3'-Dichlorobenzidine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1392 + 3,3'-Dimethylbenzidine + 3,3'-Dimethylbenzidine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1393 + 3,4-Dichlorophenyl isocyanate + 3,4-Dichlorophenyl isocyanate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1394 + 3,5-Dimethylphenol + 3,5-Dimethylphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1395 + 3,5-Dinitroaniline + 3,5-Dinitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1396 + 3,7-Dimethyl-1,6-octadien-3-ol + 3,7-Dimethyl-1,6-octadien-3-ol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1397 + 3-Buten-2-one, 3-methyl-4-(2,6,6-trimethyl-2-cyclohexen-1-yl)- + 3-Buten-2-one, 3-methyl-4-(2,6,6-trimethyl-2-cyclohexen-1-yl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1398 + 3-Methylcholanthrene + 3-Methylcholanthrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1399 + 3-Methyl-1H-indole + 3-Methylindole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1399 + 3-Methylindole + 3-Methylindole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1400 + 3-Pyrrolidineacetic acid, 2-carboxy-4-[(1Z,3E,5R)-5-carboxy-1-methyl-1,3-hexadienyl]-, (2S,3S,4S)- + 3-Pyrrolidineacetic acid, 2-carboxy-4-[(1Z,3E,5R)-5-carboxy-1-methyl-1,3-hexadienyl]-, (2S,3S,4S)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1401 + 3-Quinolinecarboxylic acid, 7-(3-amino-1-pyrrolidinyl)-8-chloro-1-cyclopropyl-6-fluoro-1,4-dihydro-4-oxo- + 3-Quinolinecarboxylic acid, 7-(3-amino-1-pyrrolidinyl)-8-chloro-1-cyclopropyl-6-fluoro-1,4-dihydro-4-oxo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1402 + 4,4'-Isopropylidenediphenol + 4,4'-Isopropylidenediphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1403 + 4-Amino-2,6-dinitrotoluene + 4-Amino-2,6-dinitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1404 + 4-Aminobiphenyl + 4-Aminobiphenyl + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1405 + 4-Dimethylaminoazobenzene + 4-Dimethylaminoazobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1406 + 4H-Cyclopenta[def]phenanthrene + 4H-Cyclopenta[def]phenanthrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1407 + 4-Nitroquinoline 1-oxide + 4-Nitroquinoline 1-oxide + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1408 + 4-Thia-1-azabicyclo[3.2.0]heptane-2-carboxylic acid, 3,3-dimethyl-7-oxo-6-[(phenoxyacetyl)amino]-, (2S,5R,6R)- + 4-Thia-1-azabicyclo[3.2.0]heptane-2-carboxylic acid, 3,3-dimethyl-7-oxo-6-[(phenoxyacetyl)amino]-, (2S,5R,6R)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1409 + 6-Methyl-2-(1-methylethyl)-4(1H)-pyrimidinone + 6-Methyl-2-(1-methylethyl)-4(1H)-pyrimidinone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1410 + 7,12-Dimethylbenz[a]anthracene + 7,12-Dimethylbenz[a]anthracene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1411 + 9,10-Secocholesta-5,7,10(19)-trien-3-ol, (3.beta.,5Z,7E)- + 9,10-Secocholesta-5,7,10(19)-trien-3-ol, (3.beta.,5Z,7E)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1412 + Acenaphthene + Acenaphthene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1413 + Acenaphthylene + Acenaphthylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1414 + Acetaldehyde + Acetaldehyde + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1415 + Acetamide, 2,2-dichloro-N-[(1R,2R)-2-hydroxy-1-(hydroxymethyl)-2-(4-nitrophenyl)ethyl]- + Acetamide, 2,2-dichloro-N-[(1R,2R)-2-hydroxy-1-(hydroxymethyl)-2-(4-nitrophenyl)ethyl]- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1416 + Acetaminophen + Acetaminophen + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1417 + Acetic acid + Acetic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1418 + Acetic acid, (4-nonylphenoxy)- + Acetic acid, (4-nonylphenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1418 + Nonylphenoxyacetic acid + Acetic acid, (4-nonylphenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1419 + Acetone + Acetone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1420 + Acetonitrile + Acetonitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1421 + Acetonitrile, chloro- + Acetonitrile, chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1421 + Chloroacetonitrile + Acetonitrile, chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1422 + Acetophenone + Acetophenone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1423 + Acridine + Acridine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1425 + Acrylamide + Acrylamide + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1426 + Adenosine 5'-(tetrahydrogen triphosphate) + Adenosine 5'-(tetrahydrogen triphosphate) + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1427 + Alprazolam + Alprazolam + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1428 + Aluminum, Organic + Inorganic Monomeric (reactive aluminum) + Aluminum, Organic + Inorganic Monomeric (reactive aluminum) + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1428 + Monomeric aluminum + Aluminum, Organic + Inorganic Monomeric (reactive aluminum) + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1429 + Aluminum, Organic Monomeric (reactive aluminum) + Aluminum, Organic Monomeric (reactive aluminum) + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1429 + Organic monomeric aluminum + Aluminum, Organic Monomeric (reactive aluminum) + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1430 + Androst-4-en-3-one, 17-hydroxy-, (17.beta.)- + Androst-4-en-3-one, 17-hydroxy-, (17.beta.)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1431 + Androstan-17-one, 3-hydroxy-, (3.alpha.,5.alpha.)- + Androstan-17-one, 3-hydroxy-, (3.alpha.,5.alpha.)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1432 + Aniline + Aniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1433 + Anthracene + Anthracene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1434 + 9,10-Anthraquinone + Anthraquinone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1434 + Anthraquinone + Anthraquinone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1435 + 3-Nitro-4-hydroxyphenylarsonic acid + Arsonic acid, (4-hydroxy-3-nitrophenyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1435 + Arsonic acid, (4-hydroxy-3-nitrophenyl)- + Arsonic acid, (4-hydroxy-3-nitrophenyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1436 + Aspirin + Aspirin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1437 + Benz[a]anthracene + Benz[a]anthracene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1438 + Benz[a]anthracene mixt. with chrysene + Benz[a]anthracene mixt. with chrysene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1439 + Benzaldehyde + Benzaldehyde + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1440 + Benzenamine, 4-(4-chlorophenoxy)- + Benzenamine, 4-(4-chlorophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1441 + Benzene + Benzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1442 + Benzene, 1,1'-(1E)-1,2-ethenediylbis- + Benzene, 1,1'-(1E)-1,2-ethenediylbis- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1443 + Benzene, 1,1'-oxybis[2,4,5-tribromo- + Benzene, 1,1'-oxybis[2,4,5-tribromo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1444 + Benzene, 1,1'-oxybis[2,4-dibromo- + Benzene, 1,1'-oxybis[2,4-dibromo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1445 + Benzene, 1,2,3-tribromo-4-(2,4,5-tribromophenoxy)- + Benzene, 1,2,3-tribromo-4-(2,4,5-tribromophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1446 + Benzene, 1,2,3-tribromo-4-(2,4-dibromophenoxy)- + Benzene, 1,2,3-tribromo-4-(2,4-dibromophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1447 + Benzene, 1,2,4-tribromo-5-(2,4-dibromophenoxy)- + Benzene, 1,2,4-tribromo-5-(2,4-dibromophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1448 + Benzene, 1,2-dibromo-4-(2,4-dibromophenoxy)- + Benzene, 1,2-dibromo-4-(2,4-dibromophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1449 + Benzene, 1,3(and 1,4)-dimethyl- Chemical m(and p)-xylene + Benzene, 1,3(and 1,4)-dimethyl- Chemical m(and p)-xylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1450 + Benzene, 1,3,5-tribromo-2-(2,4,5-tribromophenoxy)- + Benzene, 1,3,5-tribromo-2-(2,4,5-tribromophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1451 + Benzene, 1,3,5-tribromo-2-(2,4-dibromophenoxy)- + Benzene, 1,3,5-tribromo-2-(2,4-dibromophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1452 + Benzene, 2,4-dibromo-1-(4-bromophenoxy)- + Benzene, 2,4-dibromo-1-(4-bromophenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1453 + Benzene, pentabromomethyl- + Benzene, pentabromomethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1454 + Benzeneacetic acid, .alpha.-methyl-4-(2-methylpropyl)- + Benzeneacetic acid, .alpha.-methyl-4-(2-methylpropyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1455 + Benzeneacetic acid, 3-benzoyl-.alpha.-methyl- + Benzeneacetic acid, 3-benzoyl-.alpha.-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1456 + Benzenesulfonamide, 4-amino-N-(2,6-dimethoxy-4-pyrimidinyl)- + Benzenesulfonamide, 4-amino-N-(2,6-dimethoxy-4-pyrimidinyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1457 + Benzenesulfonamide, 4-amino-N-(4,6-dimethyl-2-pyrimidinyl)- + Benzenesulfonamide, 4-amino-N-(4,6-dimethyl-2-pyrimidinyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1458 + Benzenesulfonamide, 4-amino-N-(4-methyl-2-pyrimidinyl)- + Benzenesulfonamide, 4-amino-N-(4-methyl-2-pyrimidinyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1459 + Benzenesulfonamide, 4-amino-N-2-pyrimidinyl- + Benzenesulfonamide, 4-amino-N-2-pyrimidinyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1460 + Benzenesulfonic acid, decyl-, sodium salt, mixt. with sodium dodecylbenzenesulfonate, sodium tridecylbenzenesulfonate and sodium undecylbenzenesulfonate + Benzenesulfonic acid, decyl-, sodium salt, mixt. with sodium dodecylbenzenesulfonate, sodium tridecylbenzenesulfonate and sodium undecylbenzenesulfonate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1461 + Benzidine + Benzidine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1462 + Benzo(b)fluoranthene + Benzo(b)fluoranthene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1463 + Benzo[a]pyrene + Benzo[a]pyrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1464 + Benzo[c]cinnoline + Benzo[c]cinnoline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1465 + Benzo[e]pyrene + Benzo[e]pyrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1466 + Benzo[ghi]perylene + Benzo[ghi]perylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1467 + Benzo[k]fluoranthene + Benzo[k]fluoranthene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1468 + Benzoic acid + Benzoic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1469 + Benzoic acid, 4-hydroxy-, methyl ester + Benzoic acid, 4-hydroxy-, methyl ester + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1470 + Benzoic acid, 4-hydroxy-, propyl ester + Benzoic acid, 4-hydroxy-, propyl ester + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1471 + Benzoic acid, 5-(aminosulfonyl)-4-chloro-2-((2-furanylmethyl)amino)- + Benzoic acid, 5-(aminosulfonyl)-4-chloro-2-((2-furanylmethyl)amino)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1472 + Benzophenone + Benzophenone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1473 + Benzyl alcohol + Benzyl alcohol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1474 + Benzyl benzoate + Benzyl benzoate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1475 + Benzyl chloride + Benzyl chloride + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1476 + Benzyl cinnamate + Benzyl cinnamate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1477 + Benzyl salicylate + Benzyl salicylate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1478 + Biphenyl + Biphenyl + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1479 + Bis(2-chloroethoxy)methane + Bis(2-chloroethoxy)methane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1480 + Bis(2-chloroethyl) ether + Bis(2-chloroethyl) ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1481 + Bis(2-chloroisopropyl) ether + Bis(2-chloroisopropyl) ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1482 + Bis(chloromethyl) ether + Bis(chloromethyl) ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1483 + Bromoacetic acid + Bromoacetic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1484 + Bromobenzene + Bromobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1485 + Bromochloroacetic acid + Bromochloroacetic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1486 + Bromochloroacetonitrile + Bromochloroacetonitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1487 + Butane + Butane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1488 + 1-Chlorobutane + Butane, 1-chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1488 + Butane, 1-chloro- + Butane, 1-chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1489 + 2,3-Dimethylbutane + Butane, 2,3-dimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1489 + Butane, 2,3-dimethyl- + Butane, 2,3-dimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1490 + Butyl benzyl phthalate + Butyl benzyl phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1490 + Butylbenzyl phthalate + Butyl benzyl phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1491 + Butyric acid + Butyric acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1492 + C.I. Vat Blue 1 + C.I. Vat Blue 1 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1493 + Caffeine + Caffeine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1494 + Camphene + Camphene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1495 + Caprolactam + Caprolactam + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1496 + Carbon tetrachloride + Carbon tetrachloride + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1497 + Carisoprodol + Carisoprodol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1498 + CFC-11 + CFC-11 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1499 + CFC-113 + CFC-113 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1500 + CFC-12 + CFC-12 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1501 + Chloral + Chloral + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1502 + Chloral hydrate + Chloral hydrate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1503 + Chlorinated naphthalenes + Chlorinated naphthalenes + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1504 + Chloroacetaldehyde + Chloroacetaldehyde + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1505 + Chloroacetic acid + Chloroacetic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1506 + Chlorobenzene + Chlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1507 + Chlorodibromomethane + Chlorodibromomethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1508 + Chloroethane + Chloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1509 + Chloroform + Chloroform + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1510 + Chloromethane + Chloromethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1511 + Chloromethyl methyl ether + Chloromethyl methyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1512 + Chloroprene + Chloroprene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1513 + Chlorpheniramine + Chlorpheniramine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1514 + Cholestan-3-ol, (3.beta.,5.beta.)- + Cholestan-3-ol, (3.beta.,5.beta.)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1515 + Cholesterol + Cholesterol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1516 + Chrysene + Chrysene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1517 + Cinnamaldehyde + Cinnamaldehyde + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1518 + cis-1,2-Dichloroethylene + cis-1,2-Dichloroethylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1519 + Citral + Citral + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1520 + Citronellol + Citronellol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1521 + Coal + Coal + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1522 + Coronene + Coronene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1523 + Coumaran + Coumaran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1524 + Coumarin + Coumarin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1525 + Cresol + Cresol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1526 + Cumene + Cumene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1527 + Cyclo[L-arginyl-(2S,3S,4E,6E,8S,9S)-3-amino-9-methoxy-2,6,8-trimethyl-10-phenyl-4,6-decadienoyl-D-.gamma.-glutamyl-(2Z)-2-(methylamino)-2-butenoyl-(3S)-3-methyl-D-.beta.-aspartyl] + Cyclo[L-arginyl-(2S,3S,4E,6E,8S,9S)-3-amino-9-methoxy-2,6,8-trimethyl-10-phenyl-4,6-decadienoyl-D-.gamma.-glutamyl-(2Z)-2-(methylamino)-2-butenoyl-(3S)-3-methyl-D-.beta.-aspartyl] + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1528 + Cyclododecane + Cyclododecane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1529 + Cyclododecane, hexabromo- + Cyclododecane, hexabromo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1529 + Hexabromocyclododecane + Cyclododecane, hexabromo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1530 + Cyclohexane + Cyclohexane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1531 + Cyclohexene, 1-methyl-4-(1-methylethenyl)-, (4R)- + Cyclohexene, 1-methyl-4-(1-methylethenyl)-, (4R)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1532 + Cyclonite + Cyclonite + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1533 + Cyclopenta[g]-2-benzopyran, 1,3,4,6,7,8-hexahydro-4,6,6,7,8,8-hexamethyl- + Cyclopenta[g]-2-benzopyran, 1,3,4,6,7,8-hexahydro-4,6,6,7,8,8-hexamethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1534 + Cyclotetramethylenetetranitramine + Cyclotetramethylenetetranitramine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1535 + D-.alpha.-Tocopheryl acetate + D-.alpha.-Tocopheryl acetate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1536 + Decabromodiphenyl oxide + Decabromodiphenyl oxide + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1537 + Decane + Decane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1538 + D-erythro-.alpha.-D-galacto-Octopyranoside, methyl 6,8-dideoxy-6-[[[(2S,4R)-1-methyl-4-propyl-2-pyrrolidinyl]carbonyl]amino]-1-thio- + D-erythro-.alpha.-D-galacto-Octopyranoside, methyl 6,8-dideoxy-6-[[[(2S,4R)-1-methyl-4-propyl-2-pyrrolidinyl]carbonyl]amino]-1-thio- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1539 + Bis(2-ethylhexyl) adipate + Di(2-ethylhexyl) adipate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1539 + Di(2-ethylhexyl) adipate + Di(2-ethylhexyl) adipate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1540 + Bis(2-ethylhexyl) phthalate + Di(2-ethylhexyl) phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1540 + Di(2-ethylhexyl) phthalate + Di(2-ethylhexyl) phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1541 + Diazepam + Diazepam + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1542 + Dibenz[a,h]anthracene + Dibenz[a,h]anthracene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1542 + Dibenzo[a,h]anthracene + Dibenz[a,h]anthracene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1543 + Dibenzofuran + Dibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1544 + Dibenzothiophene + Dibenzothiophene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1545 + Dibromoacetic acid + Dibromoacetic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1546 + Dibromoacetonitrile + Dibromoacetonitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1547 + Dibromomethane + Dibromomethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1548 + Dibutyl phthalate + Dibutyl phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1548 + Di-n-butyl phthalate + Dibutyl phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1549 + Dichloroacetic acid + Dichloroacetic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1550 + Dichloroacetonitrile + Dichloroacetonitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1551 + Dichlorobromomethane + Dichlorobromomethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1552 + Diesel range organics + Diesel range organics + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1553 + Diethyl phthalate + Diethyl phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1554 + Diethylene glycol monobutyl ether acetate + Diethylene glycol monobutyl ether acetate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1555 + Diethylstilbestrol + Diethylstilbestrol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1555 + trans-Diethylstilbestrol + Diethylstilbestrol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1556 + Digoxin + Digoxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1557 + Dimethoxymethane + Dimethoxymethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1558 + Dimethyl dioctadecyl ammonium chloride + Dimethyl dioctadecyl ammonium chloride + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1559 + Dimethyl ether + Dimethyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1560 + Dimethyl phthalate + Dimethyl phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1561 + Di-n-octyl phthalate + Di-n-octyl phthalate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1562 + Diphenylsulfone + Diphenylsulfone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1563 + Docosane + Docosane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1564 + Dodecane + Dodecane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1565 + Doxycycline + Doxycycline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1566 + Eicosane + Eicosane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1567 + Erythromycin + Erythromycin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1568 + Estra-1,3,5,7,9-pentaen-17-one, 3-hydroxy- + Estra-1,3,5,7,9-pentaen-17-one, 3-hydroxy- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1569 + Estradiol + Estradiol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1570 + Estrone + Estrone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1571 + Ethanamine, 2-(diphenylmethoxy)-N,N-dimethyl- + Ethanamine, 2-(diphenylmethoxy)-N,N-dimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1572 + Ethane + Ethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1573 + Ethanol + Ethanol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1574 + Ethanol, 2-(4-nonylphenoxy)- + Ethanol, 2-(4-nonylphenoxy)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1575 + Ethanol, 2,2'-thiobis- + Ethanol, 2,2'-thiobis- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1576 + Ethanol, 2-[2-(4-nonylphenoxy)ethoxy]- + Ethanol, 2-[2-(4-nonylphenoxy)ethoxy]- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1577 + Ethanol, 2-[2-[2-[2-(4-nonylphenoxy)ethoxy]ethoxy]ethoxy]- + Ethanol, 2-[2-[2-[2-(4-nonylphenoxy)ethoxy]ethoxy]ethoxy]- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1578 + 1-(1,2,3,4,5,6,7,8-Octahydro-2,3,8,8-tetramethyl-2-naphthalenyl)ethanone + Ethanone, 1-(1,2,3,4,5,6,7,8-octahydro-2,3,8,8-tetramethyl-2-naphthalenyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1578 + Ethanone, 1-(1,2,3,4,5,6,7,8-octahydro-2,3,8,8-tetramethyl-2-naphthalenyl)- + Ethanone, 1-(1,2,3,4,5,6,7,8-octahydro-2,3,8,8-tetramethyl-2-naphthalenyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1579 + Ethanone, 1-(2,3-dihydro-1,1,2,3,3,6-hexamethyl-1H-inden-5-yl)- + Ethanone, 1-(2,3-dihydro-1,1,2,3,3,6-hexamethyl-1H-inden-5-yl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1580 + Ethanone, 1-[(3R,3aR,7R,8aS)-2,3,4,7,8,8a-hexahydro-3,6,8,8-tetramethyl-1H-3a,7-methanoazulen-5-yl]- + Ethanone, 1-[(3R,3aR,7R,8aS)-2,3,4,7,8,8a-hexahydro-3,6,8,8-tetramethyl-1H-3a,7-methanoazulen-5-yl]- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1581 + Ethanone, 1-[6-(1,1-dimethylethyl)-2,3-dihydro-1,1-dimethyl-1H-inden-4-yl]- + Ethanone, 1-[6-(1,1-dimethylethyl)-2,3-dihydro-1,1-dimethyl-1H-inden-4-yl]- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1582 + 17-alpha-Ethynyl estradiol + Ethinyl estradiol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1582 + Ethinyl estradiol + Ethinyl estradiol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1583 + Ethyl acetate + Ethyl acetate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1584 + Ethyl ether + Ethyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1585 + Ethyl formate + Ethyl formate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1586 + Ethyl methacrylate + Ethyl methacrylate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1587 + Ethyl methanesulfonate + Ethyl methanesulfonate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1588 + Ethyl nicotinate + Ethyl nicotinate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1589 + Ethyl tert-butyl ether + Ethyl tert-butyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1589 + tert-Butyl ethyl ether + Ethyl tert-butyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1590 + Ethylbenzene + Ethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1591 + Ethylene + Ethylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1592 + Ethylene glycol + Ethylene glycol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1593 + Eugenol + Eugenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1594 + Farnesol + Farnesol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1595 + Fluoranthene + Fluoranthene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1596 + 9H-Fluorene + Fluorene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1596 + Fluorene + Fluorene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1597 + Formaldehyde + Formaldehyde + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1598 + Formic acid + Formic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1599 + Formic acid, 1,1-dimethylethyl ester + Formic acid, 1,1-dimethylethyl ester + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1600 + Gasoline range organic compounds + Gasoline range organics + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1600 + Gasoline range organics + Gasoline range organics + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1601 + Haloacetic acids + Haloacetic acids + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1602 + Halocarbons, purgeable + Halocarbons, purgeable + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1603 + Halogenated organics + Halogenated organics + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1604 + Halon 1011 + Halon 1011 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1605 + HCFC-123 + HCFC-123 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1606 + HCFC-123a + HCFC-123a + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1607 + HCFC-21 + HCFC-21 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1608 + HCFC-22 + HCFC-22 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1609 + Heptachlorodibenzofuran + Heptachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1609 + Heptachlorodibenzofurans (all isomers) + Heptachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1610 + Heptachlorodibenzo-p-dioxin + Heptachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1610 + Heptachlorodibenzo-p-dioxins (all isomers) + Heptachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1611 + Heptadecanoic acid + Heptadecanoic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1612 + Heptanal, 2-(phenylmethylene)- + Heptanal, 2-(phenylmethylene)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1613 + Hexachlorobutadiene + Hexachlorobutadiene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1614 + Hexachlorocyclopentadiene + Hexachlorocyclopentadiene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1615 + Hexachlorodibenzofuran + Hexachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1615 + Hexachlorodibenzofurans (all isomers) + Hexachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1616 + Hexachloroethane + Hexachloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1617 + Hexachloropropene + Hexachloropropene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1618 + Hexacosane + Hexacosane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1619 + Hexadecane + Hexadecane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1620 + Hexadecane, 2,6,10,14-tetramethyl- + Hexadecane, 2,6,10,14-tetramethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1621 + Hexane + Hexane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1622 + 1-Chlorohexane + Hexane, 1-chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1622 + Hexane, 1-chloro- + Hexane, 1-chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1623 + Hexatriacontane + Hexatriacontane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1624 + Hydrocarbons, nitrated + Hydrocarbons, nitrated + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1625 + Hydrocarbons, petroleum + Hydrocarbons, petroleum + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1625 + Petroleum hydrocarbons + Hydrocarbons, petroleum + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1626 + Hydrocarbons, volatile + Hydrocarbons, volatile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1627 + Hydrophilic fraction of organic carbon + Hydrophilic fraction of organic carbon + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1628 + Hydrophobic fraction of organic carbon + Hydrophobic fraction of organic carbon + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1629 + Indeno[1,2,3-cd]pyrene + Indeno[1,2,3-cd]pyrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1630 + Indole + Indole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1631 + Isoborneol + Isoborneol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1632 + Isobutanol + Isobutanol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1633 + Isobutene + Isobutene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1634 + Isoeugenol + Isoeugenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1635 + Isophorone + Isophorone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1636 + Isopropyl ether + Isopropyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1637 + Isopropyl myristate + Isopropyl myristate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1638 + Isoquinoline + Isoquinoline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1639 + Isosafrole + Isosafrole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1640 + Lactic acid + Lactic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1641 + Lanolin + Lanolin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1642 + Lipids + Lipids + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1643 + L-Tyrosine, O-(4-hydroxy-3,5-diiodophenyl)-3,5-diiodo- + L-Tyrosine, O-(4-hydroxy-3,5-diiodophenyl)-3,5-diiodo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1644 + 3-Chlorotoluene + m-Chlorotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1644 + m-Chlorotoluene + m-Chlorotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1645 + m-Cresol + m-Cresol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1646 + 1,3-Dichlorobenzene + m-Dichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1646 + m-Dichlorobenzene + m-Dichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1647 + 1,3-Dinitrobenzene + m-Dinitrobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1647 + m-Dinitrobenzene + m-Dinitrobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1648 + Mestranol + Mestranol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1649 + Methacrylonitrile + Methacrylonitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1650 + Methane + Methane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1651 + Methanol + Methanol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1652 + Methanone, (2,4-dihydroxyphenyl)phenyl- + Methanone, (2,4-dihydroxyphenyl)phenyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1653 + Methapyrilene + Methapyrilene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1654 + Methocarbamol + Methocarbamol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1655 + Methyl acetate + Methyl acetate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1656 + Methyl acrylate + Methyl acrylate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1657 + Ethyl methyl ketone + Methyl ethyl ketone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1657 + Methyl ethyl ketone + Methyl ethyl ketone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1658 + Methyl formate + Methyl formate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1659 + Isobutyl methyl ketone + Methyl isobutyl ketone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1659 + Methyl isobutyl ketone + Methyl isobutyl ketone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1660 + Methyl methacrylate + Methyl methacrylate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1661 + Methyl methanesulfonate + Methyl methanesulfonate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1662 + Methyl salicylate + Methyl salicylate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1663 + Methyl tert-butyl ether + Methyl tert-butyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1664 + Methylcyclohexane + Methylcyclohexane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1665 + Methylene chloride + Methylene chloride + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1666 + Methylmercury + Methylmercury + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1667 + 3-Ethylphenol + m-Ethylphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1667 + m-Ethylphenol + m-Ethylphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1668 + Microcystin LR + Microcystin LR + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1669 + 3-Nitroaniline + m-Nitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1669 + m-Nitroaniline + m-Nitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1670 + 3-Nitrophenol + m-Nitrophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1670 + m-Nitrophenol + m-Nitrophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1671 + 3-Nitrotoluene + m-Nitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1671 + m-Nitrotoluene + m-Nitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1672 + Morphinan-6-ol, 7,8-didehydro-4,5-epoxy-3-methoxy-17-methyl-, (5.alpha.,6.alpha.)- + Morphinan-6-ol, 7,8-didehydro-4,5-epoxy-3-methoxy-17-methyl-, (5.alpha.,6.alpha.)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1673 + Mustard gas + Mustard gas + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1674 + m-Xylene + m-Xylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1675 + Naphthalene + Naphthalene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1676 + n-Butylbenzene + n-Butylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1677 + Neutrals + Neutrals + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1678 + Nicotine + Nicotine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1679 + Nitrobenzene + Nitrobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1680 + Nitroglycerin + Nitroglycerin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1681 + Nitromethane + Nitromethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1682 + N-Nitrosodiethylamine + N-Nitrosodiethylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1683 + N-Nitrosodimethylamine + N-Nitrosodimethylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1684 + N-Nitrosodi-n-butylamine + N-Nitrosodi-n-butylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1685 + N-Nitrosodi-n-propylamine + N-Nitrosodi-n-propylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1686 + N-Nitrosodiphenylamine + N-Nitrosodiphenylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1687 + N-Nitrosomethylethylamine + N-Nitrosomethylethylamine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1688 + N-Nitrosomorpholine + N-Nitrosomorpholine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1689 + N-Nitrosopiperidine + N-Nitrosopiperidine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1690 + N-Nitrosopyrrolidine + N-Nitrosopyrrolidine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1691 + Nonadecane + Nonadecane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1692 + Nonane + Nonane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1693 + Norethisterone + Norethisterone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1694 + n-Propylbenzene + n-Propylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1695 + o-Benzyl-p-chlorophenol + o-Benzyl-p-chlorophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1696 + 2-Chloroaniline + o-Chloroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1696 + o-Chloroaniline + o-Chloroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1697 + 2-Chlorophenol + o-Chlorophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1697 + o-Chlorophenol + o-Chlorophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1698 + 2-Chlorotoluene + o-Chlorotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1698 + o-Chlorotoluene + o-Chlorotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1699 + Octachlorostyrene + Octachlorostyrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1700 + Octacosane + Octacosane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1701 + Octadecane + Octadecane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1702 + Octane + Octane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1703 + Octanoic acid, pentadecafluoro- + Octanoic acid, pentadecafluoro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1704 + 1,2-Dichlorobenzene + o-Dichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1704 + o-Dichlorobenzene + o-Dichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1705 + 2-Ethyltoluene + o-Ethyltoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1705 + o-Ethyltoluene + o-Ethyltoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1706 + Oil and grease + Oil and grease -- CWA 304B + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1706 + Oil and grease -- CWA 304B + Oil and grease -- CWA 304B + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1707 + 2-Nitroaniline + o-Nitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1707 + o-Nitroaniline + o-Nitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1708 + 2-Nitrophenol + o-Nitrophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1708 + o-Nitrophenol + o-Nitrophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1709 + 2-Nitrotoluene + o-Nitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1709 + o-Nitrotoluene + o-Nitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1710 + Organic acids + Organic acids + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1711 + Organic compounds + Organic compounds + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1712 + Organic halides + Organic halides, total -- SWDA NPDWR + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1712 + Organic halides, total -- SWDA NPDWR + Organic halides, total -- SWDA NPDWR + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1713 + o-Toluidine + o-Toluidine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1714 + o-Xylene + o-Xylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1715 + Oxytetracycline + Oxytetracycline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1716 + p-(1,1,3,3-Tetramethylbutyl)phenol + p-(1,1,3,3-Tetramethylbutyl)phenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1717 + Palmitic acid + Palmitic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1718 + 4-Bromophenyl phenyl ether + p-Bromophenyl phenyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1718 + p-Bromophenyl phenyl ether + p-Bromophenyl phenyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1719 + 4-Chlorophenyl phenyl ether + p-Chlorophenyl phenyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1719 + p-Chlorophenyl phenyl ether + p-Chlorophenyl phenyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1720 + 4-Chlorotoluene + p-Chlorotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1720 + p-Chlorotoluene + p-Chlorotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1721 + p-Cymene + p-Cymene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1722 + 1,4-Diethylbenzene + p-Diethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1722 + p-Diethylbenzene + p-Diethylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1723 + Pentachlorodibenzofuran + Pentachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1723 + Pentachlorodibenzofurans (all isomers) + Pentachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1724 + Pentachlorodibenzo-p-dioxin + Pentachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1724 + Pentachlorodibenzo-p-dioxins (all isomers) + Pentachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1725 + Pentachloroethane + Pentachloroethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1726 + Pentadecane, 2,6,10,14-tetramethyl- + Pentadecane, 2,6,10,14-tetramethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1727 + Pentaerythritol tetranitrate + Pentaerythritol tetranitrate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1728 + n-Pentane + Pentane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1728 + Pentane + Pentane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1729 + 2,3,3-Trimethylpentane + Pentane, 2,3,3-trimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1729 + Pentane, 2,3,3-trimethyl- + Pentane, 2,3,3-trimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1730 + 2,3,4-Trimethylpentane + Pentane, 2,3,4-trimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1730 + Pentane, 2,3,4-trimethyl- + Pentane, 2,3,4-trimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1731 + 2,4-Dimethylpentane + Pentane, 2,4-dimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1731 + Pentane, 2,4-dimethyl- + Pentane, 2,4-dimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1732 + 2-Methylpentane + Pentane, 2-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1732 + Pentane, 2-methyl- + Pentane, 2-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1733 + 3-Methylpentane + Pentane, 3-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1733 + Pentane, 3-methyl- + Pentane, 3-methyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1734 + Perylene + Perylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1735 + Phenacetin + Phenacetin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1736 + Phenanthrene + Phenanthrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1737 + Phenanthridine + Phenanthridine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1738 + Phenol + Phenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1739 + Phenol, 2-(1,1-dimethylethyl)-4-methoxy- + Phenol, 2-(1,1-dimethylethyl)-4-methoxy- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1740 + 2,3,5,6-Tetramethylphenol + Phenol, 2,3,5,6-tetramethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1740 + Phenol, 2,3,5,6-tetramethyl- + Phenol, 2,3,5,6-tetramethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1741 + Phenol, 2,4-bis(1,1-dimethylpropyl)- + Phenol, 2,4-bis(1,1-dimethylpropyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1742 + Phenol, 2-amino-5-chloro- + Phenol, 2-amino-5-chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1743 + Phenol, 4-(1-methyl-1-phenylethyl)- + Phenol, 4-(1-methyl-1-phenylethyl)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1744 + Phenol, 5-amino-2-chloro- + Phenol, 5-amino-2-chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1745 + Phenols + Phenols + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1746 + Phenolic compounds + Phenols and phenolic compounds + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1746 + Phenols and phenolic compounds + Phenols and phenolic compounds + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1747 + Phosphonic acid, methyl-, dimethyl ester + Phosphonic acid, methyl-, dimethyl ester + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1748 + Phthalate esters + Phthalate esters + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1749 + Picric acid + Picric acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1750 + Plumbane, diethyldimethyl- + Plumbane, diethyldimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1751 + Plumbane, ethyltrimethyl- + Plumbane, ethyltrimethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1752 + Plumbane, triethylmethyl- + Plumbane, triethylmethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1753 + 4-Nitroaniline + p-Nitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1753 + p-Nitroaniline + p-Nitroaniline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1754 + 4-Nitrotoluene + p-Nitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1754 + p-Nitrotoluene + p-Nitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1755 + 4-n-Octylphenol + p-Octylphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1755 + p-Octylphenol + p-Octylphenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1756 + Progesterone + Progesterone + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1757 + Propane + Propane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1758 + Propane, 2-bromo-1-chloro- + Propane, 2-bromo-1-chloro- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1759 + Propanenitrile + Propanenitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1760 + Propanoic acid, 2-oxo- + Propanoic acid, 2-oxo- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1761 + Propylene glycol + Propylene glycol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1762 + p-Xylene + p-Xylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1763 + Pyrene + Pyrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1764 + Pyridine + Pyridine + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1765 + Quinoline + Quinoline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1766 + Retinoic acid + Retinoic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1767 + Retinol + Retinol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1768 + Safrole + Safrole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1769 + sec-Butylbenzene + sec-Butylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1770 + Stannane, bis(acetyloxy)dibutyl- + Stannane, bis(acetyloxy)dibutyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1771 + Stannane, dibutyl- + Stannane, dibutyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1772 + Stannane, tetrabutyl- + Stannane, tetrabutyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1773 + Stannane, tetramethyl- + Stannane, tetramethyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1774 + Stannane, tetraphenyl- + Stannane, tetraphenyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1775 + Stannanetriylium, butyl- + Stannanetriylium, butyl- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1776 + Stearic acid + Stearic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1777 + Stigmast-5-en-3-ol, (3.beta.)- + Stigmast-5-en-3-ol, (3.beta.)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1778 + Stigmastan-3-ol, (3.beta.)- + Stigmastan-3-ol, (3.beta.)- + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1779 + Styrene + Styrene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1780 + Sulfamethoxazole + Sulfamethoxazole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1781 + Sulfathiazole + Sulfathiazole + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1782 + Surfactants -- CWA 304B + Surfactants -- CWA 304B + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1783 + Tannin and Lignin + Tannin and Lignin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1784 + tert-Amyl methyl ether + tert-Amyl methyl ether + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1785 + tert-Butanol + tert-Butanol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1786 + tert-Butyl acetate + tert-Butyl acetate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1787 + tert-Butylbenzene + tert-Butylbenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1788 + Tetrabromobisphenol A + Tetrabromobisphenol A + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1789 + Tetrachlorodibenzofuran + Tetrachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1789 + Tetrachlorodibenzofurans (all isomers) + Tetrachlorodibenzofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1790 + Tetrachlorodibenzo-p-dioxin + Tetrachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1790 + Tetrachlorodibenzo-p-dioxins (all isomers) + Tetrachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1791 + Tetrachloroethylene + Tetrachloroethylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1792 + Tetrachlorophenol + Tetrachlorophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1792 + Tetrachlorophenols (all isomers) + Tetrachlorophenol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1793 + Tetracosane + Tetracosane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1794 + Tetradecane + Tetradecane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1795 + Tetraethyllead + Tetraethyllead + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1796 + Tetrahydrofuran + Tetrahydrofuran + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1797 + Tetramethyllead + Tetramethyllead + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1798 + Tetryl + Tetryl + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1799 + Theophylline + Theophylline + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1800 + Toluene + Toluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1801 + Total toxic organics -- CWA 304B + Total toxic organics -- CWA 304B + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1802 + trans-1,2-Dichloroethylene + trans-1,2-Dichloroethylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1803 + trans-1,4-Dichloro-2-butene + trans-1,4-Dichloro-2-butene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1804 + trans-Geraniol + trans-Geraniol + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1805 + Transphilic fraction of organic carbon + Transphilic fraction of organic carbon + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1806 + Triacontane + Triacontane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1807 + Tribromomethane + Tribromomethane + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1808 + Tributyl phosphate + Tributyl phosphate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1809 + Tributyltin acetate + Tributyltin acetate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1810 + Trichloroacetic acid + Trichloroacetic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1811 + Trichloroacetonitrile + Trichloroacetonitrile + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1812 + Trichlorobenzene + Trichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1812 + Trichlorobenzenes (all isomers) + Trichlorobenzene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1813 + Trichloroethylene + Trichloroethylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1814 + Triclocarban + Triclocarban + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1815 + Triclosan + Triclosan + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1816 + Triethyl citrate + Triethyl citrate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1817 + Trinitrotoluene + Trinitrotoluene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1818 + Triphenyl phosphate + Triphenyl phosphate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1819 + Tris(2,3-dibromopropyl) phosphate + Tris(2,3-dibromopropyl) phosphate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1820 + Tris(2-butoxyethyl) phosphate + Tris(2-butoxyethyl) phosphate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1821 + Tris(2-chloroethyl) phosphate + Tris(2-chloroethyl) phosphate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1822 + Undecanoic acid + Undecanoic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1823 + Valproic acid + Valproic acid + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1824 + Vanillin + Vanillin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1825 + Vinyl acetate + Vinyl acetate + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1826 + Vinyl bromide + Vinyl bromide + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1827 + Vinyl chloride + Vinyl chloride + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1828 + Vitamin B12 + Vitamin B12 + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1829 + Vitamin D + Vitamin D + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1830 + Warfarin + Warfarin + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1831 + Xanthylium, 9-(2,4-dicarboxyphenyl)-3,6-bis(diethylamino)-, chloride, disodium salt + Xanthylium, 9-(2,4-dicarboxyphenyl)-3,6-bis(diethylamino)-, chloride, disodium salt + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1832 + Xylene + Xylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1832 + Xylene (all isomers) + Xylene + Hydrosphere/Chemical/Organic/Other organic chemical/ + + + 1001 + Homolog Groups + Homolog Groups + Hydrosphere/Chemical/Organic/PCBs/ + + + 1222 + PCB_Mixtures + PCB_Mixtures + Hydrosphere/Chemical/Organic/PCBs/ + + + 1282 + PCBs + Total PCB + Hydrosphere/Chemical/Organic/PCBs/ + + + 1282 + Total PCB + Total PCB + Hydrosphere/Chemical/Organic/PCBs/ + + + 1267 + High-Toxicity TEF + High-Toxicity TEF + Hydrosphere/Chemical/Organic/PCBs/ + + + 1268 + 3,3',4,4'-Tetrachlorobiphenyl + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1268 + BZ congener number 77 + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1268 + CASRN 32598-13-3 + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1268 + PCB congener 77, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1268 + PCB congener 77, solids, recoverable, dry weight, picograms per gram + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1268 + PCB congener 77, water, filtered, recoverable, picograms per liter + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1269 + 3,4,4',5-Tetrachlorobiphenyl + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1269 + BZ congener number 81 + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1269 + CASRN 70362-50-4 + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1269 + PCB congener 81, solids, recoverable, dry weight, picograms per gram + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1269 + PCB congener 81, water, filtered, recoverable, picograms per liter + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1270 + 2,3,3',4,4'-Pentachlorobiphenyl + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1270 + BZ congener number 105 + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1270 + CASRN 32598-14-4 + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1270 + PCB congener 105, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1270 + PCB congener 105, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1270 + PCB congener 105, water, filtered, recoverable, picograms per liter + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1271 + 2,3,4,4',5-Pentachlorobiphenyl + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1271 + BZ congener number 114 + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1271 + CASRN 74472-37-0 + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1271 + PCB congener 114, solids, recoverable, dry weight, picograms per gram + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1271 + PCB congener 114, water, filtered, recoverable, picograms per liter + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + 2,3',4,4',5-Pentachlorobiphenyl + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, suspended sediment, recoverable, nanograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, water, filtered, recoverable, nanograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, water, filtered, recoverable, picograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, water, unfiltered, recoverable, nanograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + BZ congener number 118 + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + CASRN 31508-00-6 + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1272 + PCB congener 118, solids, recoverable, dry weight, micrograms per kilogram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1273 + 2,3',4,4',5'-Pentachlorobiphenyl + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1273 + BZ congener number 123 + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1273 + CASRN 65510-44-3 + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1273 + PCB congener 123, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1273 + PCB congener 123, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1273 + PCB congener 123, water, filtered, recoverable, picograms per liter + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1274 + 3,3',4,4',5-Pentachlorobiphenyl + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1274 + BZ congener number 126 + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1274 + CASRN 57465-28-8 + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1274 + PCB congener 126, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1274 + PCB congener 126, solids, recoverable, dry weight, picograms per gram + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1274 + PCB congener 126, water, filtered, recoverable, picograms per liter + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1275 + 2,3,3',4,4',5-Hexachlorobiphenyl + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1275 + BZ congener number 156 + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1275 + CASRN 38380-08-4 + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1275 + PCB congener 156, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1275 + PCB congener 156, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1275 + PCB congener 156, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1276 + 2,3,3',4,4',5'-Hexachlorobiphenyl + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1276 + BZ congener number 157 + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1276 + CASRN 69782-90-7 + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1276 + PCB congener 157, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1276 + PCB congener 157, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1276 + PCB congener 157, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + 2,3',4,4',5,5'-Hexachlorobiphenyl + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + BZ congener number 167 + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + CASRN 52663-72-6 + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + PCB congener 167, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + PCB congener 167, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + PCB congener 167, suspended sediment, recoverable, nanograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + PCB congener 167, water, filtered, recoverable, nanograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + PCB congener 167, water, filtered, recoverable, picograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1277 + PCB congener 167, water, unfiltered, recoverable, nanograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1278 + 3,3',4,4',5,5'-Hexachlorobiphenyl + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1278 + BZ congener number 169 + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1278 + CASRN 32774-16-6 + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1278 + PCB congener 169, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1278 + PCB congener 169, solids, recoverable, dry weight, picograms per gram + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1278 + PCB congener 169, water, filtered, recoverable, picograms per liter + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + 2,2',3,3',4,4',5-Heptachlorobiphenyl + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + BZ congener number 170 + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + CASRN 35065-30-6 + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + PCB congener 170, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + PCB congener 170, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + PCB congener 170, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + PCB congener 170, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1279 + PCB congener 170, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + BZ congener number 180 + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + CASRN 35065-29-3 + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, water, filtered, recoverable, nanograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1280 + PCB congener 180, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1281 + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1281 + BZ congener number 189 + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1281 + CASRN 39635-31-9 + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1281 + PCB congener 189, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1281 + PCB congener 189, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/High-Toxicity TEF/ + + + 1220 + Deca_Chloro_PCB + Deca_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1002 + Mono_Chloro_PCB + Mono_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1216 + Nona_Chloro_PCB + Nona_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1007 + Di_Chloro_PCB + Di_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1203 + Octa_Chloro_PCB + Octa_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1020 + Tri_Chloro_PCB + Tri_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1045 + Tetra_Chloro_PCB + Tetra_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1088 + Penta_Chloro_PCB + Penta_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1135 + Hexa_Chloro_PCB + Hexa_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1178 + Hepta_Chloro_PCB + Hepta_Chloro_PCB + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/ + + + 1221 + BZ congener number 209 + Decachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Deca_Chloro_PCB/ + + + 1221 + CASRN 2051-24-3 + Decachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Deca_Chloro_PCB/ + + + 1221 + Decachlorobiphenyl + Decachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Deca_Chloro_PCB/ + + + 1221 + PCB congener 209, solids, recoverable, dry weight, picograms per gram + Decachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Deca_Chloro_PCB/ + + + 1221 + PCB congener 209, water, filtered, recoverable, picograms per liter + Decachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Deca_Chloro_PCB/ + + + 1008 + 2,2'-Dichlorobiphenyl + 2,2'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1008 + BZ congener number 4 + 2,2'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1008 + CASRN 13029-08-8 + 2,2'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1008 + PCB congener 4, solids, recoverable, dry weight, picograms per gram + 2,2'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1008 + PCB congener 4, water, filtered, recoverable, picograms per liter + 2,2'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1009 + 2,3-Dichlorobiphenyl + 2,3-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1009 + BZ congener number 5 + 2,3-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1009 + CASRN 16605-91-7 + 2,3-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1009 + PCB congener 5, solids, recoverable, dry weight, picograms per gram + 2,3-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1009 + PCB congener 5, water, filtered, recoverable, picograms per liter + 2,3-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + 2,3'-Dichlorobiphenyl + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + BZ congener number 6 + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + CASRN 25569-80-6 + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + PCB congener 6, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + PCB congener 6, solids, recoverable, dry weight, picograms per gram + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + PCB congener 6, suspended sediment, recoverable, nanograms per liter + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + PCB congener 6, water, filtered, recoverable, nanograms per liter + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + PCB congener 6, water, filtered, recoverable, picograms per liter + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1010 + PCB congener 6, water, unfiltered, recoverable, nanograms per liter + 2,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1011 + 2,4-Dichlorobiphenyl + 2,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1011 + BZ congener number 7 + 2,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1011 + CASRN 33284-50-3 + 2,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1011 + PCB congener 7, solids, recoverable, dry weight, picograms per gram + 2,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1011 + PCB congener 7, suspended sediment, recoverable, nanograms per liter + 2,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1011 + PCB congener 7, water, filtered, recoverable, nanograms per liter + 2,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1011 + PCB congener 7, water, filtered, recoverable, picograms per liter + 2,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1012 + 2,4'-Dichlorobiphenyl + 2,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1012 + BZ congener number 8 + 2,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1012 + CASRN 34883-43-7 + 2,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1012 + PCB congener 8, solids, recoverable, dry weight, micrograms per kilogram + 2,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1012 + PCB congener 8, solids, recoverable, dry weight, picograms per gram + 2,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1012 + PCB congener 8, water, filtered, recoverable, picograms per liter + 2,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1013 + 2,5-Dichlorobiphenyl + 2,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1013 + BZ congener number 9 + 2,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1013 + CASRN 34883-39-1 + 2,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1013 + PCB congener 9, solids, recoverable, dry weight, picograms per gram + 2,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1013 + PCB congener 9, water, filtered, recoverable, picograms per liter + 2,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1014 + 2,6-Dichlorobiphenyl + 2,6-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1014 + BZ congener number 10 + 2,6-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1014 + CASRN 33146-45-1 + 2,6-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1014 + PCB congener 10, solids, recoverable, dry weight, picograms per gram + 2,6-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1014 + PCB congener 10, water, filtered, recoverable, picograms per liter + 2,6-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1015 + 3,3'-Dichlorobiphenyl + 3,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1015 + BZ congener number 11 + 3,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1015 + CASRN 2050-67-1 + 3,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1015 + PCB congener 11, solids, recoverable, dry weight, picograms per gram + 3,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1015 + PCB congener 11, water, filtered, recoverable, picograms per liter + 3,3'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1016 + 3,4-Dichlorobiphenyl + 3,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1016 + BZ congener number 12 + 3,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1016 + CASRN 2974-92-7 + 3,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1016 + PCB congener 12, solids, recoverable, dry weight, picograms per gram + 3,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1016 + PCB congener 12, water, filtered, recoverable, picograms per liter + 3,4-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1017 + 3,4'-Dichlorobiphenyl + 3,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1017 + BZ congener number 13 + 3,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1017 + CASRN 2974-90-5 + 3,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1017 + PCB congener 13, solids, recoverable, dry weight, picograms per gram + 3,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1017 + PCB congener 13, water, filtered, recoverable, picograms per liter + 3,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1018 + 3,5-Dichlorobiphenyl + 3,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1018 + BZ congener number 14 + 3,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1018 + CASRN 34883-41-5 + 3,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1018 + PCB congener 14, solids, recoverable, dry weight, picograms per gram + 3,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1018 + PCB congener 14, water, filtered, recoverable, picograms per liter + 3,5-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1019 + 4,4'-Dichlorobiphenyl + 4,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1019 + BZ congener number 15 + 4,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1019 + CASRN 2050-68-2 + 4,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1019 + PCB congener 15, solids, recoverable, dry weight, picograms per gram + 4,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1019 + PCB congener 15, water, filtered, recoverable, picograms per liter + 4,4'-Dichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Di_Chloro_PCB/ + + + 1179 + 2,2',3,3',4,4',5-Heptachlorobiphenyl + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1179 + BZ congener number 170 + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1179 + CASRN 35065-30-6 + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1179 + PCB congener 170, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1179 + PCB congener 170, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1179 + PCB congener 170, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1179 + PCB congener 170, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1179 + PCB congener 170, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',5-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1180 + 2,2',3,3',4,4',6-Heptachlorobiphenyl + 2,2',3,3',4,4',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1180 + BZ congener number 171 + 2,2',3,3',4,4',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1180 + CASRN 52663-71-5 + 2,2',3,3',4,4',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1180 + PCB congener 171, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1180 + PCB congener 171, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1181 + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1181 + BZ congener number 172 + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1181 + CASRN 52663-74-8 + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1181 + PCB congener 172, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1181 + PCB congener 172, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1181 + PCB congener 172, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1181 + PCB congener 172, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1182 + 2,2',3,3',4,5,6-Heptachlorobiphenyl + 2,2',3,3',4,5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1182 + BZ congener number 173 + 2,2',3,3',4,5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1182 + CASRN 68194-16-1 + 2,2',3,3',4,5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1182 + PCB congener 173, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1182 + PCB congener 173, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + BZ congener number 174 + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + CASRN 38411-25-5 + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1183 + PCB congener 174, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1184 + 2,2',3,3',4,5',6-Heptachlorobiphenyl + 2,2',3,3',4,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1184 + BZ congener number 175 + 2,2',3,3',4,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1184 + CASRN 40186-70-7 + 2,2',3,3',4,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1184 + PCB congener 175, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1184 + PCB congener 175, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1185 + 2,2',3,3',4,6,6'-Heptachlorobiphenyl + 2,2',3,3',4,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1185 + BZ congener number 176 + 2,2',3,3',4,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1185 + CASRN 52663-65-7 + 2,2',3,3',4,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1185 + PCB congener 176, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1185 + PCB congener 176, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + BZ congener number 177 + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + CASRN 52663-70-4 + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1186 + PCB congener 177, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,5',6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + 2,2',3,3',5,5',6-Heptachlorobiphenyl + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + BZ congener number 178 + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + CASRN 52663-67-9 + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + PCB congener 178, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + PCB congener 178, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + PCB congener 178, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + PCB congener 178, water, filtered, recoverable, nanograms per liter + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + PCB congener 178, water, filtered, recoverable, picograms per liter + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1187 + PCB congener 178, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1188 + 2,2',3,3',5,6,6'-Heptachlorobiphenyl + 2,2',3,3',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1188 + BZ congener number 179 + 2,2',3,3',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1188 + CASRN 52663-64-6 + 2,2',3,3',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1188 + PCB congener 179, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1188 + PCB congener 179, water, filtered, recoverable, picograms per liter + 2,2',3,3',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + BZ congener number 180 + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + CASRN 35065-29-3 + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, water, filtered, recoverable, nanograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1189 + PCB congener 180, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1190 + 2,2',3,4,4',5,6-Heptachlorobiphenyl + 2,2',3,4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1190 + BZ congener number 181 + 2,2',3,4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1190 + CASRN 74472-47-2 + 2,2',3,4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1190 + PCB congener 181, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1190 + PCB congener 181, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1191 + 2,2',3,4,4',5,6'-Heptachlorobiphenyl + 2,2',3,4,4',5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1191 + BZ congener number 182 + 2,2',3,4,4',5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1191 + CASRN 60145-23-5 + 2,2',3,4,4',5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1191 + PCB congener 182, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1191 + PCB congener 182, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + 2,2',3,4,4',5',6-Heptachlorobiphenyl + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + BZ congener number 183 + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + CASRN 52663-69-1 + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, water, filtered, recoverable, nanograms per liter + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1192 + PCB congener 183, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1193 + 2,2',3,4,4',6,6'-Heptachlorobiphenyl + 2,2',3,4,4',6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1193 + BZ congener number 184 + 2,2',3,4,4',6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1193 + CASRN 74472-48-3 + 2,2',3,4,4',6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1193 + PCB congener 184, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1193 + PCB congener 184, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + 2,2',3,4,5,5',6-Heptachlorobiphenyl + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + BZ congener number 185 + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + CASRN 52712-05-7 + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + PCB congener 185, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + PCB congener 185, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + PCB congener 185, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + PCB congener 185, water, filtered, recoverable, nanograms per liter + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + PCB congener 185, water, filtered, recoverable, picograms per liter + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1194 + PCB congener 185, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1195 + 2,2',3,4,5,6,6'-Heptachlorobiphenyl + 2,2',3,4,5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1195 + BZ congener number 186 + 2,2',3,4,5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1195 + CASRN 74472-49-4 + 2,2',3,4,5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1195 + PCB congener 186, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1195 + PCB congener 186, water, filtered, recoverable, picograms per liter + 2,2',3,4,5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + 2,2',3,4',5,5',6-Heptachlorobiphenyl + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + BZ congener number 187 + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + CASRN 52663-68-0 + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + PCB congener 187, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + PCB congener 187, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + PCB congener 187, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + PCB congener 187, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1196 + PCB congener 187, water, filtered, recoverable, picograms per liter + 2,2',3,4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1197 + 2,2',3,4',5,6,6'-Heptachlorobiphenyl + 2,2',3,4',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1197 + BZ congener number 188 + 2,2',3,4',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1197 + CASRN 74487-85-7 + 2,2',3,4',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1197 + PCB congener 188, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1197 + PCB congener 188, water, filtered, recoverable, picograms per liter + 2,2',3,4',5,6,6'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1198 + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1198 + BZ congener number 189 + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1198 + CASRN 39635-31-9 + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1198 + PCB congener 189, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1198 + PCB congener 189, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5,5'-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1199 + 2,3,3',4,4',5,6-Heptachlorobiphenyl + 2,3,3',4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1199 + BZ congener number 190 + 2,3,3',4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1199 + CASRN 41411-64-7 + 2,3,3',4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1199 + PCB congener 190, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1199 + PCB congener 190, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5,6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1200 + 2,3,3',4,4',5',6-Heptachlorobiphenyl + 2,3,3',4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1200 + BZ congener number 191 + 2,3,3',4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1200 + CASRN 74472-50-7 + 2,3,3',4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1200 + PCB congener 191, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1200 + PCB congener 191, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1201 + 2,3,3',4,5,5',6-Heptachlorobiphenyl + 2,3,3',4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1201 + BZ congener number 192 + 2,3,3',4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1201 + CASRN 74472-51-8 + 2,3,3',4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1201 + PCB congener 192, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1201 + PCB congener 192, water, filtered, recoverable, picograms per liter + 2,3,3',4,5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + 2,3,3',4',5,5',6-Heptachlorobiphenyl + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + BZ congener number 193 + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + CASRN 69782-91-8 + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + PCB congener 193, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + PCB congener 193, solids, recoverable, dry weight, picograms per gram + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + PCB congener 193, suspended sediment, recoverable, nanograms per liter + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + PCB congener 193, water, filtered, recoverable, nanograms per liter + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + PCB congener 193, water, filtered, recoverable, picograms per liter + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1202 + PCB congener 193, water, unfiltered, recoverable, nanograms per liter + 2,3,3',4',5,5',6-Heptachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hepta_Chloro_PCB/ + + + 1136 + 2,2',3,3',4,4'-Hexachlorobiphenyl + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + BZ congener number 128 + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + CASRN 38380-07-3 + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + PCB congener 128, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + PCB congener 128, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + PCB congener 128, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + PCB congener 128, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + PCB congener 128, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1136 + PCB congener 128, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,4'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1137 + 2,2',3,3',4,5-Hexachlorobiphenyl + 2,2',3,3',4,5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1137 + BZ congener number 129 + 2,2',3,3',4,5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1137 + CASRN 55215-18-4 + 2,2',3,3',4,5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1137 + PCB congener 129, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1137 + PCB congener 129, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1138 + 2,2',3,3',4,5'-Hexachlorobiphenyl + 2,2',3,3',4,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1138 + BZ congener number 130 + 2,2',3,3',4,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1138 + CASRN 52663-66-8 + 2,2',3,3',4,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1138 + PCB congener 130, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1138 + PCB congener 130, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1139 + 2,2',3,3',4,6-Hexachlorobiphenyl + 2,2',3,3',4,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1139 + BZ congener number 131 + 2,2',3,3',4,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1139 + CASRN 61798-70-7 + 2,2',3,3',4,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1139 + PCB congener 131, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1139 + PCB congener 131, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1140 + 2,2',3,3',4,6'-Hexachlorobiphenyl + 2,2',3,3',4,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1140 + BZ congener number 132 + 2,2',3,3',4,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1140 + CASRN 38380-05-1 + 2,2',3,3',4,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1140 + PCB congener 132, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1140 + PCB congener 132, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1141 + 2,2',3,3',5,5'-Hexachlorobiphenyl + 2,2',3,3',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1141 + BZ congener number 133 + 2,2',3,3',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1141 + CASRN 35694-04-3 + 2,2',3,3',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1141 + PCB congener 133, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1141 + PCB congener 133, water, filtered, recoverable, picograms per liter + 2,2',3,3',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1142 + 2,2',3,3',5,6-Hexachlorobiphenyl + 2,2',3,3',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1142 + BZ congener number 134 + 2,2',3,3',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1142 + CASRN 52704-70-8 + 2,2',3,3',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1142 + PCB congener 134, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1142 + PCB congener 134, water, filtered, recoverable, picograms per liter + 2,2',3,3',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1143 + 2,2',3,3',5,6'-Hexachlorobiphenyl + 2,2',3,3',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1143 + BZ congener number 135 + 2,2',3,3',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1143 + CASRN 52744-13-5 + 2,2',3,3',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1143 + PCB congener 135, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1143 + PCB congener 135, water, filtered, recoverable, picograms per liter + 2,2',3,3',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + 2,2',3,3',6,6'-Hexachlorobiphenyl + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + PCB congener 136, water, filtered, recoverable, picograms per liter + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + PCB congener 136, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + BZ congener number 136 + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + CASRN 38411-22-2 + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + PCB congener 136, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + PCB congener 136, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + PCB congener 136, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1144 + PCB congener 136, water, filtered, recoverable, nanograms per liter + 2,2',3,3',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1145 + 2,2',3,4,4',5-Hexachlorobiphenyl + 2,2',3,4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1145 + BZ congener number 137 + 2,2',3,4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1145 + CASRN 35694-06-5 + 2,2',3,4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1145 + PCB congener 137, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1145 + PCB congener 137, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + 2,2',3,4,4',5'-Hexachlorobiphenyl + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + BZ congener number 138 + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + CASRN 35065-28-2 + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + PCB congener 138, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + PCB congener 138, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + PCB congener 138, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + PCB congener 138, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1146 + PCB congener 138, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1147 + 2,2',3,4,4',6-Hexachlorobiphenyl + 2,2',3,4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1147 + BZ congener number 139 + 2,2',3,4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1147 + CASRN 56030-56-9 + 2,2',3,4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1147 + PCB congener 139, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1147 + PCB congener 139, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1148 + 2,2',3,4,4',6'-Hexachlorobiphenyl + 2,2',3,4,4',6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1148 + BZ congener number 140 + 2,2',3,4,4',6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1148 + CASRN 59291-64-4 + 2,2',3,4,4',6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1148 + PCB congener 140, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + 2,2',3,4,5,5'-Hexachlorobiphenyl + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + BZ congener number 141 + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + CASRN 52712-04-6 + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + PCB congener 141, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + PCB congener 141, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + PCB congener 141, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + PCB congener 141, water, filtered, recoverable, nanograms per liter + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + PCB congener 141, water, filtered, recoverable, picograms per liter + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1149 + PCB congener 141, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1150 + 2,2',3,4,5,6-Hexachlorobiphenyl + 2,2',3,4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1150 + BZ congener number 142 + 2,2',3,4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1150 + CASRN 41411-61-4 + 2,2',3,4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1150 + PCB congener 142, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1150 + PCB congener 142, water, filtered, recoverable, picograms per liter + 2,2',3,4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1151 + 2,2',3,4,5,6'-Hexachlorobiphenyl + 2,2',3,4,5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1151 + BZ congener number 143 + 2,2',3,4,5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1151 + CASRN 68194-15-0 + 2,2',3,4,5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1151 + PCB congener 143, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1151 + PCB congener 143, water, filtered, recoverable, picograms per liter + 2,2',3,4,5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1152 + 2,2',3,4,5',6-Hexachlorobiphenyl + 2,2',3,4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1152 + BZ congener number 144 + 2,2',3,4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1152 + CASRN 68194-14-9 + 2,2',3,4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1152 + PCB congener 144, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1152 + PCB congener 144, water, filtered, recoverable, picograms per liter + 2,2',3,4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1153 + 2,2',3,4,6,6'-Hexachlorobiphenyl + 2,2',3,4,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1153 + BZ congener number 145 + 2,2',3,4,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1153 + CASRN 74472-40-5 + 2,2',3,4,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1153 + PCB congener 145, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1153 + PCB congener 145, water, filtered, recoverable, picograms per liter + 2,2',3,4,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + 2,2',3,4',5,5'-Hexachlorobiphenyl + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + BZ congener number 146 + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + CASRN 51908-16-8 + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, suspended sediment, recoverable, nanograms per liter + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, water, filtered, recoverable, nanograms per liter + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, water, filtered, recoverable, picograms per liter + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1154 + PCB congener 146, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1155 + 2,2',3,4',5,6-Hexachlorobiphenyl + 2,2',3,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1155 + BZ congener number 147 + 2,2',3,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1155 + CASRN 68194-13-8 + 2,2',3,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1155 + PCB congener 147, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1155 + PCB congener 147, water, filtered, recoverable, picograms per liter + 2,2',3,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1156 + 2,2',3,4',5,6'-Hexachlorobiphenyl + 2,2',3,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1156 + BZ congener number 148 + 2,2',3,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1156 + CASRN 74472-41-6 + 2,2',3,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1156 + PCB congener 148, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1156 + PCB congener 148, water, filtered, recoverable, picograms per liter + 2,2',3,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + 2,2',3,4',5',6-Hexachlorobiphenyl + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + BZ congener number 149 + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + CASRN 38380-04-0 + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + PCB congener 149, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + PCB congener 149, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + PCB congener 149, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + PCB congener 149, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + PCB congener 149, suspended sediment, recoverable, nanograms per liter + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + PCB congener 149, water, filtered, recoverable, nanograms per liter + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1157 + PCB congener 149, water, filtered, recoverable, picograms per liter + 2,2',3,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1158 + 2,2',3,4',6,6'-Hexachlorobiphenyl + 2,2',3,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1158 + BZ congener number 150 + 2,2',3,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1158 + CASRN 68194-08-1 + 2,2',3,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1158 + PCB congener 150, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1158 + PCB congener 150, water, filtered, recoverable, picograms per liter + 2,2',3,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + 2,2',3,5,5',6-Hexachlorobiphenyl + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + BZ congener number 151 + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + CASRN 52663-63-5 + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, solids, recoverable, dry weight, picograms per gram + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, suspended sediment, recoverable, nanograms per liter + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, water, filtered, recoverable, nanograms per liter + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, water, filtered, recoverable, picograms per liter + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1159 + PCB congener 151, water, unfiltered, recoverable, nanograms per liter + 2,2',3,5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1160 + 2,2',3,5,6,6'-Hexachlorobiphenyl + 2,2',3,5,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1160 + BZ congener number 152 + 2,2',3,5,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1160 + CASRN 68194-09-2 + 2,2',3,5,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1160 + PCB congener 152, solids, recoverable, dry weight, picograms per gram + 2,2',3,5,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1160 + PCB congener 152, water, filtered, recoverable, picograms per liter + 2,2',3,5,6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1161 + 2,2',4,4',5,5'-Hexachlorobiphenyl + 2,2',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1161 + BZ congener number 153 + 2,2',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1161 + CASRN 35065-27-1 + 2,2',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1161 + PCB congener 153, solids, recoverable, dry weight, picograms per gram + 2,2',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1161 + PCB congener 153, water, filtered, recoverable, picograms per liter + 2,2',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1162 + 2,2',4,4',5,6'-Hexachlorobiphenyl + 2,2',4,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1162 + BZ congener number 154 + 2,2',4,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1162 + CASRN 60145-22-4 + 2,2',4,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1162 + PCB congener 154, solids, recoverable, dry weight, picograms per gram + 2,2',4,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1162 + PCB congener 154, water, filtered, recoverable, picograms per liter + 2,2',4,4',5,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1163 + 2,2',4,4',6,6'-Hexachlorobiphenyl + 2,2',4,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1163 + BZ congener number 155 + 2,2',4,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1163 + CASRN 33979-03-2 + 2,2',4,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1163 + PCB congener 155, solids, recoverable, dry weight, picograms per gram + 2,2',4,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1163 + PCB congener 155, water, filtered, recoverable, picograms per liter + 2,2',4,4',6,6'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1164 + 2,3,3',4,4',5-Hexachlorobiphenyl + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1164 + BZ congener number 156 + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1164 + CASRN 38380-08-4 + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1164 + PCB congener 156, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1164 + PCB congener 156, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1164 + PCB congener 156, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1165 + 2,3,3',4,4',5'-Hexachlorobiphenyl + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1165 + BZ congener number 157 + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1165 + CASRN 69782-90-7 + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1165 + PCB congener 157, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1165 + PCB congener 157, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1165 + PCB congener 157, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + 2,3,3',4,4',6-Hexachlorobiphenyl + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + BZ congener number 158 + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + CASRN 74472-42-7 + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + PCB congener 158, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + PCB congener 158, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + PCB congener 158, suspended sediment, recoverable, nanograms per liter + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + PCB congener 158, water, filtered, recoverable, nanograms per liter + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + PCB congener 158, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1166 + PCB congener 158, water, unfiltered, recoverable, nanograms per liter + 2,3,3',4,4',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1167 + 2,3,3',4,5,5'-Hexachlorobiphenyl + 2,3,3',4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1167 + BZ congener number 159 + 2,3,3',4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1167 + CASRN 39635-35-3 + 2,3,3',4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1167 + PCB congener 159, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1167 + PCB congener 159, water, filtered, recoverable, picograms per liter + 2,3,3',4,5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1168 + 2,3,3',4,5,6-Hexachlorobiphenyl + 2,3,3',4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1168 + BZ congener number 160 + 2,3,3',4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1168 + CASRN 41411-62-5 + 2,3,3',4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1168 + PCB congener 160, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1168 + PCB congener 160, water, filtered, recoverable, picograms per liter + 2,3,3',4,5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1169 + 2,3,3',4,5',6-Hexachlorobiphenyl + 2,3,3',4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1169 + BZ congener number 161 + 2,3,3',4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1169 + CASRN 74472-43-8 + 2,3,3',4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1169 + PCB congener 161, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1169 + PCB congener 161, water, filtered, recoverable, picograms per liter + 2,3,3',4,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1170 + 2,3,3',4',5,5'-Hexachlorobiphenyl + 2,3,3',4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1170 + BZ congener number 162 + 2,3,3',4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1170 + CASRN 39635-34-2 + 2,3,3',4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1170 + PCB congener 162, solids, recoverable, dry weight, picograms per gram + 2,3,3',4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1170 + PCB congener 162, water, filtered, recoverable, picograms per liter + 2,3,3',4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1171 + 2,3,3',4',5,6-Hexachlorobiphenyl + 2,3,3',4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1171 + BZ congener number 163 + 2,3,3',4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1171 + CASRN 74472-44-9 + 2,3,3',4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1171 + PCB congener 163, solids, recoverable, dry weight, picograms per gram + 2,3,3',4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1171 + PCB congener 163, water, filtered, recoverable, picograms per liter + 2,3,3',4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1172 + 2,3,3',4',5',6-Hexachlorobiphenyl + 2,3,3',4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1172 + BZ congener number 164 + 2,3,3',4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1172 + CASRN 74472-45-0 + 2,3,3',4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1172 + PCB congener 164, solids, recoverable, dry weight, picograms per gram + 2,3,3',4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1172 + PCB congener 164, water, filtered, recoverable, picograms per liter + 2,3,3',4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1173 + 2,3,3',5,5',6-Hexachlorobiphenyl + 2,3,3',5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1173 + BZ congener number 165 + 2,3,3',5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1173 + CASRN 74472-46-1 + 2,3,3',5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1173 + PCB congener 165, solids, recoverable, dry weight, picograms per gram + 2,3,3',5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1173 + PCB congener 165, water, filtered, recoverable, picograms per liter + 2,3,3',5,5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1174 + 2,3,4,4',5,6-Hexachlorobiphenyl + 2,3,4,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1174 + BZ congener number 166 + 2,3,4,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1174 + CASRN 41411-63-6 + 2,3,4,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1174 + PCB congener 166, solids, recoverable, dry weight, picograms per gram + 2,3,4,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1174 + PCB congener 166, water, filtered, recoverable, picograms per liter + 2,3,4,4',5,6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + 2,3',4,4',5,5'-Hexachlorobiphenyl + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + BZ congener number 167 + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + CASRN 52663-72-6 + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + PCB congener 167, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + PCB congener 167, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + PCB congener 167, suspended sediment, recoverable, nanograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + PCB congener 167, water, filtered, recoverable, nanograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + PCB congener 167, water, filtered, recoverable, picograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1175 + PCB congener 167, water, unfiltered, recoverable, nanograms per liter + 2,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1176 + 2,3',4,4',5',6-Hexachlorobiphenyl + 2,3',4,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1176 + BZ congener number 168 + 2,3',4,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1176 + CASRN 59291-65-5 + 2,3',4,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1176 + PCB congener 168, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1176 + PCB congener 168, water, filtered, recoverable, picograms per liter + 2,3',4,4',5',6-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1177 + 3,3',4,4',5,5'-Hexachlorobiphenyl + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1177 + BZ congener number 169 + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1177 + CASRN 32774-16-6 + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1177 + PCB congener 169, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1177 + PCB congener 169, solids, recoverable, dry weight, picograms per gram + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1177 + PCB congener 169, water, filtered, recoverable, picograms per liter + 3,3',4,4',5,5'-Hexachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Hexa_Chloro_PCB/ + + + 1003 + Biphenyl + Biphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1003 + BZ congener number 0 + Biphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1003 + CASRN 92-52-4 + Biphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1004 + 2-Chlorobiphenyl + 2-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1004 + BZ congener number 1 + 2-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1004 + CASRN 2051-60-7 + 2-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1004 + PCB congener 1, bed sediment smaller than 2 millimeters, wet sieved (native water), field, recoverable, dry weight, micrograms per kilogram + 2-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1004 + PCB congener 1, solids, recoverable, dry weight, picograms per gram + 2-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1004 + PCB congener 1, water, filtered, recoverable, picograms per liter + 2-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1005 + 3-Chlorobiphenyl + 3-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1005 + BZ congener number 2 + 3-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1005 + CASRN 2051-61-8 + 3-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1005 + PCB congener 2, solids, recoverable, dry weight, picograms per gram + 3-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1005 + PCB congener 2, water, filtered, recoverable, picograms per liter + 3-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + 4-Chlorobiphenyl + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + BZ congener number 3 + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + CASRN 2051-62-9 + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + PCB congener 3, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + PCB congener 3, solids, recoverable, dry weight, picograms per gram + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + PCB congener 3, suspended sediment, recoverable, nanograms per liter + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + PCB congener 3, water, filtered, recoverable, nanograms per liter + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + PCB congener 3, water, filtered, recoverable, picograms per liter + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1006 + PCB congener 3, water, unfiltered, recoverable, nanograms per liter + 4-Chlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Mono_Chloro_PCB/ + + + 1217 + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + BZ congener number 206 + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + CASRN 40186-72-9 + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1217 + PCB congener 206, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',5,5',6-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + BZ congener number 207 + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + CASRN 52663-79-3 + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + PCB congener 207, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + PCB congener 207, surrogate, Schedule OCSS, suspended sediment, percent recovery + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + PCB congener 207, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + PCB congener 207, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + PCB congener 207, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1218 + PCB congener 207, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,4',5,6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1219 + 2,2',3,3',4,5,5',6,6'-Nonachlorobiphenyl + 2,2',3,3',4,5,5',6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1219 + BZ congener number 208 + 2,2',3,3',4,5,5',6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1219 + CASRN 52663-77-1 + 2,2',3,3',4,5,5',6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1219 + PCB congener 208, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5,5',6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1219 + PCB congener 208, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5,5',6,6'-Nonachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Nona_Chloro_PCB/ + + + 1204 + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + BZ congener number 194 + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + CASRN 35694-08-7 + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1204 + PCB congener 194, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,4',5,5'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1205 + 2,2',3,3',4,4',5,6-Octachlorobiphenyl + 2,2',3,3',4,4',5,6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1205 + BZ congener number 195 + 2,2',3,3',4,4',5,6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1205 + CASRN 52663-78-2 + 2,2',3,3',4,4',5,6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1205 + PCB congener 195, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',5,6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1205 + PCB congener 195, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',5,6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1206 + 2,2',3,3',4,4',5,6'-Octachlorobiphenyl + 2,2',3,3',4,4',5,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1206 + BZ congener number 196 + 2,2',3,3',4,4',5,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1206 + CASRN 42740-50-1 + 2,2',3,3',4,4',5,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1206 + PCB congener 196, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',5,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1206 + PCB congener 196, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',5,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1207 + 2,2',3,3',4,4',6,6'-Octachlorobiphenyl + 2,2',3,3',4,4',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1207 + BZ congener number 197 + 2,2',3,3',4,4',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1207 + CASRN 33091-17-7 + 2,2',3,3',4,4',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1207 + PCB congener 197, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,4',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1207 + PCB congener 197, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,4',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + BZ congener number 198 + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + CASRN 68194-17-2 + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + PCB congener 198, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + PCB congener 198, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + PCB congener 198, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + PCB congener 198, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + PCB congener 198, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1208 + PCB congener 198, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + BZ congener number 199 + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + CASRN 52663-75-9 + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + PCB congener 199, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + PCB congener 199, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + PCB congener 199, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + PCB congener 199, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + PCB congener 199, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1209 + PCB congener 199, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,5,5',6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1210 + 2,2',3,3',4,5,6,6'-Octachlorobiphenyl + 2,2',3,3',4,5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1210 + BZ congener number 200 + 2,2',3,3',4,5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1210 + CASRN 52663-73-7 + 2,2',3,3',4,5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1210 + PCB congener 200, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1210 + PCB congener 200, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + PCB congener 201, water, filtered, recoverable, picograms per liter + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + PCB congener 201, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + BZ congener number 201 + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + CASRN 40186-71-8 + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + PCB congener 201, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + PCB congener 201, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + PCB congener 201, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1211 + PCB congener 201, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1212 + PCB congener 202, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',5,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1212 + PCB congener 202, water, filtered, recoverable, picograms per liter + 2,2',3,3',5,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1212 + 2,2',3,3',5,5',6,6'-Octachlorobiphenyl + 2,2',3,3',5,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1212 + BZ congener number 202 + 2,2',3,3',5,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1212 + CASRN 2136-99-4 + 2,2',3,3',5,5',6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1213 + 2,2',3,4,4',5,5',6-Octachlorobiphenyl + 2,2',3,4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1213 + BZ congener number 203 + 2,2',3,4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1213 + CASRN 52663-76-0 + 2,2',3,4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1213 + PCB congener 203, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1213 + PCB congener 203, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1214 + 2,2',3,4,4',5,6,6'-Octachlorobiphenyl + 2,2',3,4,4',5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1214 + BZ congener number 204 + 2,2',3,4,4',5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1214 + CASRN 74472-52-9 + 2,2',3,4,4',5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1214 + PCB congener 204, internal standard/surrogate, biota, tissue, percent recovery + 2,2',3,4,4',5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1214 + PCB congener 204, water, filtered, recoverable, picograms per liter + 2,2',3,4,4',5,6,6'-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1215 + 2,3,3',4,4',5,5',6-Octachlorobiphenyl + 2,3,3',4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1215 + BZ congener number 205 + 2,3,3',4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1215 + CASRN 74472-53-0 + 2,3,3',4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1215 + PCB congener 205, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1215 + PCB congener 205, water, filtered, recoverable, picograms per liter + 2,3,3',4,4',5,5',6-Octachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Octa_Chloro_PCB/ + + + 1089 + 2,2',3,3',4-Pentachlorobiphenyl + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + BZ congener number 82 + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + CASRN 52663-62-4 + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + PCB congener 82, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + PCB congener 82, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + PCB congener 82, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + PCB congener 82, water, filtered, recoverable, nanograms per liter + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + PCB congener 82, water, filtered, recoverable, picograms per liter + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1089 + PCB congener 82, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',4-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + 2,2',3,3',5-Pentachlorobiphenyl + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + BZ congener number 83 + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + CASRN 60145-20-2 + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + PCB congener 83, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + PCB congener 83, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + PCB congener 83, suspended sediment, recoverable, nanograms per liter + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + PCB congener 83, water, filtered, recoverable, nanograms per liter + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + PCB congener 83, water, filtered, recoverable, picograms per liter + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1090 + PCB congener 83, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1091 + 2,2',3,3',6-Pentachlorobiphenyl + 2,2',3,3',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1091 + BZ congener number 84 + 2,2',3,3',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1091 + CASRN 52663-60-2 + 2,2',3,3',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1091 + PCB congener 84, solids, recoverable, dry weight, picograms per gram + 2,2',3,3',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1091 + PCB congener 84, water, filtered, recoverable, picograms per liter + 2,2',3,3',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + 2,2',3,4,4'-Pentachlorobiphenyl + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + BZ congener number 85 + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + CASRN 65510-45-4 + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + PCB congener 85, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + PCB congener 85, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + PCB congener 85, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + PCB congener 85, water, filtered, recoverable, nanograms per liter + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + PCB congener 85, water, filtered, recoverable, picograms per liter + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1092 + PCB congener 85, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1093 + 2,2',3,4,5-Pentachlorobiphenyl + 2,2',3,4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1093 + BZ congener number 86 + 2,2',3,4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1093 + CASRN 55312-69-1 + 2,2',3,4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1093 + PCB congener 86, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1093 + PCB congener 86, water, filtered, recoverable, picograms per liter + 2,2',3,4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + 2,2',3,4,5'-Pentachlorobiphenyl + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + BZ congener number 87 + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + CASRN 38380-02-8 + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + PCB congener 87, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + PCB congener 87, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + PCB congener 87, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + PCB congener 87, water, filtered, recoverable, nanograms per liter + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + PCB congener 87, water, filtered, recoverable, picograms per liter + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1094 + PCB congener 87, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1095 + 2,2',3,4,6-Pentachlorobiphenyl + 2,2',3,4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1095 + BZ congener number 88 + 2,2',3,4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1095 + CASRN 55215-17-3 + 2,2',3,4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1095 + PCB congener 88, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1095 + PCB congener 88, water, filtered, recoverable, picograms per liter + 2,2',3,4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + 2,2',3,4,6'-Pentachlorobiphenyl + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + PCB congener 89, water, filtered, recoverable, picograms per liter + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + PCB congener 89, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + BZ congener number 89 + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + CASRN 73575-57-2 + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + PCB congener 89, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + PCB congener 89, solids, recoverable, dry weight, picograms per gram + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + PCB congener 89, suspended sediment, recoverable, nanograms per liter + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1096 + PCB congener 89, water, filtered, recoverable, nanograms per liter + 2,2',3,4,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1097 + 2,2',3,4',5-Pentachlorobiphenyl + 2,2',3,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1097 + BZ congener number 90 + 2,2',3,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1097 + CASRN 68194-07-0 + 2,2',3,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1097 + PCB congener 90, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1097 + PCB congener 90, water, filtered, recoverable, picograms per liter + 2,2',3,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + 2,2',3,4',6-Pentachlorobiphenyl + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + BZ congener number 91 + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + CASRN 68194-05-8 + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + PCB congener 91, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + PCB congener 91, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + PCB congener 91, suspended sediment, recoverable, nanograms per liter + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + PCB congener 91, water, filtered, recoverable, nanograms per liter + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + PCB congener 91, water, filtered, recoverable, picograms per liter + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1098 + PCB congener 91, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1099 + 2,2',3,5,5'-Pentachlorobiphenyl + 2,2',3,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1099 + BZ congener number 92 + 2,2',3,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1099 + CASRN 52663-61-3 + 2,2',3,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1099 + PCB congener 92, solids, recoverable, dry weight, picograms per gram + 2,2',3,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1099 + PCB congener 92, water, filtered, recoverable, picograms per liter + 2,2',3,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1100 + 2,2',3,5,6-Pentachlorobiphenyl + 2,2',3,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1100 + BZ congener number 93 + 2,2',3,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1100 + CASRN 73575-56-1 + 2,2',3,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1100 + PCB congener 93, solids, recoverable, dry weight, picograms per gram + 2,2',3,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1100 + PCB congener 93, water, filtered, recoverable, picograms per liter + 2,2',3,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1101 + 2,2',3,5,6'-Pentachlorobiphenyl + 2,2',3,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1101 + BZ congener number 94 + 2,2',3,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1101 + CASRN 73575-55-0 + 2,2',3,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1101 + PCB congener 94, solids, recoverable, dry weight, picograms per gram + 2,2',3,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1101 + PCB congener 94, water, filtered, recoverable, picograms per liter + 2,2',3,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + 2,2',3,5',6-Pentachlorobiphenyl + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + BZ congener number 95 + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + CASRN 38379-99-6 + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, solids, recoverable, dry weight, picograms per gram + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, suspended sediment, recoverable, nanograms per liter + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, water, filtered, recoverable, nanograms per liter + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, water, filtered, recoverable, picograms per liter + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1102 + PCB congener 95, water, unfiltered, recoverable, nanograms per liter + 2,2',3,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1103 + 2,2',3,6,6'-Pentachlorobiphenyl + 2,2',3,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1103 + BZ congener number 96 + 2,2',3,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1103 + CASRN 73575-54-9 + 2,2',3,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1103 + PCB congener 96, solids, recoverable, dry weight, picograms per gram + 2,2',3,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1103 + PCB congener 96, water, filtered, recoverable, picograms per liter + 2,2',3,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + 2,2',3,4',5'-Pentachlorobiphenyl + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + BZ congener number 97 + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + CASRN 41464-51-1 + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + PCB congener 97, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + PCB congener 97, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + PCB congener 97, suspended sediment, recoverable, nanograms per liter + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + PCB congener 97, water, filtered, recoverable, nanograms per liter + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + PCB congener 97, water, filtered, recoverable, picograms per liter + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1104 + PCB congener 97, water, unfiltered, recoverable, nanograms per liter + 2,2',3,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1105 + 2,2',3,4',6'-Pentachlorobiphenyl + 2,2',3,4',6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1105 + BZ congener number 98 + 2,2',3,4',6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1105 + CASRN 60233-25-2 + 2,2',3,4',6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1105 + PCB congener 98, solids, recoverable, dry weight, picograms per gram + 2,2',3,4',6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1105 + PCB congener 98, water, filtered, recoverable, picograms per liter + 2,2',3,4',6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + 2,2',4,4',5-Pentachlorobiphenyl + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + BZ congener number 99 + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + CASRN 38380-01-7 + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + PCB congener 99, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + PCB congener 99, solids, recoverable, dry weight, picograms per gram + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + PCB congener 99, suspended sediment, recoverable, nanograms per liter + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + PCB congener 99, water, filtered, recoverable, nanograms per liter + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + PCB congener 99, water, filtered, recoverable, picograms per liter + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1106 + PCB congener 99, water, unfiltered, recoverable, nanograms per liter + 2,2',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1107 + 2,2',4,4',6-Pentachlorobiphenyl + 2,2',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1107 + BZ congener number 100 + 2,2',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1107 + CASRN 39485-83-1 + 2,2',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1107 + PCB congener 100, solids, recoverable, dry weight, picograms per gram + 2,2',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1107 + PCB congener 100, water, filtered, recoverable, picograms per liter + 2,2',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + 2,2',4,5,5'-Pentachlorobiphenyl + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + BZ congener number 101 + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + CASRN 37680-73-2 + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, water, unfiltered, recoverable, nanograms per liter + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, solids, recoverable, dry weight, micrograms per kilogram + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, solids, recoverable, dry weight, picograms per gram + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, suspended sediment, recoverable, nanograms per liter + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, water, filtered, recoverable, nanograms per liter + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1108 + PCB congener 101, water, filtered, recoverable, picograms per liter + 2,2',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1109 + 2,2',4,5,6'-Pentachlorobiphenyl + 2,2',4,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1109 + BZ congener number 102 + 2,2',4,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1109 + CASRN 68194-06-9 + 2,2',4,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1109 + PCB congener 102, solids, recoverable, dry weight, picograms per gram + 2,2',4,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1109 + PCB congener 102, water, filtered, recoverable, picograms per liter + 2,2',4,5,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1110 + 2,2',4,5',6-Pentachlorobiphenyl + 2,2',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1110 + BZ congener number 103 + 2,2',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1110 + CASRN 60145-21-3 + 2,2',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1110 + PCB congener 103, solids, recoverable, dry weight, picograms per gram + 2,2',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1110 + PCB congener 103, water, filtered, recoverable, picograms per liter + 2,2',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1111 + 2,2',4,6,6'-Pentachlorobiphenyl + 2,2',4,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1111 + BZ congener number 104 + 2,2',4,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1111 + CASRN 56558-16-8 + 2,2',4,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1111 + PCB congener 104, solids, recoverable, dry weight, picograms per gram + 2,2',4,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1111 + PCB congener 104, water, filtered, recoverable, picograms per liter + 2,2',4,6,6'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1112 + 2,3,3',4,4'-Pentachlorobiphenyl + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1112 + BZ congener number 105 + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1112 + CASRN 32598-14-4 + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1112 + PCB congener 105, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1112 + PCB congener 105, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1112 + PCB congener 105, water, filtered, recoverable, picograms per liter + 2,3,3',4,4'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1113 + 2,3,3',4,5-Pentachlorobiphenyl + 2,3,3',4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1113 + BZ congener number 106 + 2,3,3',4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1113 + CASRN 70424-69-0 + 2,3,3',4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1113 + PCB congener 106, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1113 + PCB congener 106, water, filtered, recoverable, picograms per liter + 2,3,3',4,5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1114 + 2,3,3',4',5-Pentachlorobiphenyl + 2,3,3',4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1114 + BZ congener number 107 + 2,3,3',4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1114 + CASRN 70424-68-9 + 2,3,3',4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1114 + PCB congener 107, solids, recoverable, dry weight, picograms per gram + 2,3,3',4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1114 + PCB congener 107, water, filtered, recoverable, picograms per liter + 2,3,3',4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1115 + 2,3,3',4,5'-Pentachlorobiphenyl + 2,3,3',4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1115 + BZ congener number 108 + 2,3,3',4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1115 + CASRN 70362-41-3 + 2,3,3',4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1115 + PCB congener 108, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1115 + PCB congener 108, water, filtered, recoverable, picograms per liter + 2,3,3',4,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1116 + 2,3,3',4,6-Pentachlorobiphenyl + 2,3,3',4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1116 + BZ congener number 109 + 2,3,3',4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1116 + CASRN 74472-35-8 + 2,3,3',4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1116 + PCB congener 109, solids, recoverable, dry weight, picograms per gram + 2,3,3',4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1116 + PCB congener 109, water, filtered, recoverable, picograms per liter + 2,3,3',4,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + 2,3,3',4',6-Pentachlorobiphenyl + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + BZ congener number 110 + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + CASRN 38380-03-9 + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + PCB congener 110, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + PCB congener 110, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + PCB congener 110, solids, recoverable, dry weight, micrograms per kilogram + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + PCB congener 110, solids, recoverable, dry weight, picograms per gram + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1117 + PCB congener 110, water, filtered, recoverable, picograms per liter + 2,3,3',4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1118 + 2,3,3',5,5'-Pentachlorobiphenyl + 2,3,3',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1118 + BZ congener number 111 + 2,3,3',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1118 + CASRN 39635-32-0 + 2,3,3',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1118 + PCB congener 111, solids, recoverable, dry weight, picograms per gram + 2,3,3',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1118 + PCB congener 111, water, filtered, recoverable, picograms per liter + 2,3,3',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1119 + 2,3,3',5,6-Pentachlorobiphenyl + 2,3,3',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1119 + BZ congener number 112 + 2,3,3',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1119 + CASRN 74472-36-9 + 2,3,3',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1119 + PCB congener 112, solids, recoverable, dry weight, picograms per gram + 2,3,3',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1119 + PCB congener 112, water, filtered, recoverable, picograms per liter + 2,3,3',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1120 + 2,3,3',5',6-Pentachlorobiphenyl + 2,3,3',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1120 + BZ congener number 113 + 2,3,3',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1120 + CASRN 68194-10-5 + 2,3,3',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1120 + PCB congener 113, solids, recoverable, dry weight, picograms per gram + 2,3,3',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1120 + PCB congener 113, water, filtered, recoverable, picograms per liter + 2,3,3',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1121 + 2,3,4,4',5-Pentachlorobiphenyl + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1121 + BZ congener number 114 + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1121 + CASRN 74472-37-0 + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1121 + PCB congener 114, solids, recoverable, dry weight, picograms per gram + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1121 + PCB congener 114, water, filtered, recoverable, picograms per liter + 2,3,4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1122 + 2,3,4,4',6-Pentachlorobiphenyl + 2,3,4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1122 + BZ congener number 115 + 2,3,4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1122 + CASRN 74472-38-1 + 2,3,4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1122 + PCB congener 115, solids, recoverable, dry weight, picograms per gram + 2,3,4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1122 + PCB congener 115, water, filtered, recoverable, picograms per liter + 2,3,4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1123 + 2,3,4,5,6-Pentachlorobiphenyl + 2,3,4,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1123 + BZ congener number 116 + 2,3,4,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1123 + CASRN 18259-05-7 + 2,3,4,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1123 + PCB congener 116, solids, recoverable, dry weight, picograms per gram + 2,3,4,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1123 + PCB congener 116, water, filtered, recoverable, picograms per liter + 2,3,4,5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1124 + 2,3,4',5,6-Pentachlorobiphenyl + 2,3,4',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1124 + BZ congener number 117 + 2,3,4',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1124 + CASRN 68194-11-6 + 2,3,4',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1124 + PCB congener 117, solids, recoverable, dry weight, picograms per gram + 2,3,4',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1124 + PCB congener 117, water, filtered, recoverable, picograms per liter + 2,3,4',5,6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + 2,3',4,4',5-Pentachlorobiphenyl + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + BZ congener number 118 + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + CASRN 31508-00-6 + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, water, filtered, recoverable, picograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, water, unfiltered, recoverable, nanograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, solids, recoverable, dry weight, micrograms per kilogram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, suspended sediment, recoverable, nanograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1125 + PCB congener 118, water, filtered, recoverable, nanograms per liter + 2,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1126 + 2,3',4,4',6-Pentachlorobiphenyl + 2,3',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1126 + BZ congener number 119 + 2,3',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1126 + CASRN 56558-17-9 + 2,3',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1126 + PCB congener 119, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1126 + PCB congener 119, water, filtered, recoverable, picograms per liter + 2,3',4,4',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1127 + 2,3',4,5,5'-Pentachlorobiphenyl + 2,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1127 + BZ congener number 120 + 2,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1127 + CASRN 68194-12-7 + 2,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1127 + PCB congener 120, solids, recoverable, dry weight, picograms per gram + 2,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1127 + PCB congener 120, water, filtered, recoverable, picograms per liter + 2,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1128 + 2,3',4,5',6-Pentachlorobiphenyl + 2,3',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1128 + BZ congener number 121 + 2,3',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1128 + CASRN 56558-18-0 + 2,3',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1128 + PCB congener 121, solids, recoverable, dry weight, picograms per gram + 2,3',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1128 + PCB congener 121, water, filtered, recoverable, picograms per liter + 2,3',4,5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1129 + 2,3,3',4',5'-Pentachlorobiphenyl + 2,3,3',4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1129 + BZ congener number 122 + 2,3,3',4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1129 + CASRN 76842-07-4 + 2,3,3',4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1129 + PCB congener 122, solids, recoverable, dry weight, picograms per gram + 2,3,3',4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1129 + PCB congener 122, water, filtered, recoverable, picograms per liter + 2,3,3',4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1130 + 2,3',4,4',5'-Pentachlorobiphenyl + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1130 + BZ congener number 123 + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1130 + CASRN 65510-44-3 + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1130 + PCB congener 123, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1130 + PCB congener 123, solids, recoverable, dry weight, picograms per gram + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1130 + PCB congener 123, water, filtered, recoverable, picograms per liter + 2,3',4,4',5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1131 + 2,3',4',5,5'-Pentachlorobiphenyl + 2,3',4',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1131 + BZ congener number 124 + 2,3',4',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1131 + CASRN 70424-70-3 + 2,3',4',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1131 + PCB congener 124, solids, recoverable, dry weight, picograms per gram + 2,3',4',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1131 + PCB congener 124, water, filtered, recoverable, picograms per liter + 2,3',4',5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1132 + 2,3',4',5',6-Pentachlorobiphenyl + 2,3',4',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1132 + BZ congener number 125 + 2,3',4',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1132 + CASRN 74472-39-2 + 2,3',4',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1132 + PCB congener 125, solids, recoverable, dry weight, picograms per gram + 2,3',4',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1132 + PCB congener 125, water, filtered, recoverable, picograms per liter + 2,3',4',5',6-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1133 + 3,3',4,4',5-Pentachlorobiphenyl + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1133 + BZ congener number 126 + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1133 + CASRN 57465-28-8 + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1133 + PCB congener 126, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1133 + PCB congener 126, solids, recoverable, dry weight, picograms per gram + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1133 + PCB congener 126, water, filtered, recoverable, picograms per liter + 3,3',4,4',5-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1134 + 3,3',4,5,5'-Pentachlorobiphenyl + 3,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1134 + BZ congener number 127 + 3,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1134 + CASRN 39635-33-1 + 3,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1134 + PCB congener 127, solids, recoverable, dry weight, picograms per gram + 3,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1134 + PCB congener 127, water, filtered, recoverable, picograms per liter + 3,3',4,5,5'-Pentachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Penta_Chloro_PCB/ + + + 1046 + 2,2',3,3'-Tetrachlorobiphenyl + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + BZ congener number 40 + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + CASRN 38444-93-8 + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + PCB congener 40, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + PCB congener 40, solids, recoverable, dry weight, picograms per gram + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + PCB congener 40, suspended sediment, recoverable, nanograms per liter + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + PCB congener 40, water, filtered, recoverable, nanograms per liter + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + PCB congener 40, water, filtered, recoverable, picograms per liter + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1046 + PCB congener 40, water, unfiltered, recoverable, nanograms per liter + 2,2',3,3'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1047 + 2,2',3,4-Tetrachlorobiphenyl + 2,2',3,4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1047 + BZ congener number 41 + 2,2',3,4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1047 + CASRN 52663-59-9 + 2,2',3,4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1047 + PCB congener 41, solids, recoverable, dry weight, picograms per gram + 2,2',3,4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1047 + PCB congener 41, water, filtered, recoverable, picograms per liter + 2,2',3,4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1048 + 2,2',3,4'-Tetrachlorobiphenyl + 2,2',3,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1048 + BZ congener number 42 + 2,2',3,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1048 + CASRN 36559-22-5 + 2,2',3,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1048 + PCB congener 42, solids, recoverable, dry weight, picograms per gram + 2,2',3,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1048 + PCB congener 42, water, filtered, recoverable, picograms per liter + 2,2',3,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1049 + 2,2',3,5-Tetrachlorobiphenyl + 2,2',3,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1049 + BZ congener number 43 + 2,2',3,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1049 + CASRN 70362-46-8 + 2,2',3,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1049 + PCB congener 43, solids, recoverable, dry weight, picograms per gram + 2,2',3,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1049 + PCB congener 43, water, filtered, recoverable, picograms per liter + 2,2',3,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + 2,2',3,5'-Tetrachlorobiphenyl + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + BZ congener number 44 + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + CASRN 41464-39-5 + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, solids, recoverable, dry weight, micrograms per kilogram + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, solids, recoverable, dry weight, picograms per gram + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, suspended sediment, recoverable, nanograms per liter + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, water, filtered, recoverable, nanograms per liter + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, water, filtered, recoverable, picograms per liter + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1050 + PCB congener 44, water, unfiltered, recoverable, nanograms per liter + 2,2',3,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + 2,2',3,6-Tetrachlorobiphenyl + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + BZ congener number 45 + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + CASRN 70362-45-7 + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + PCB congener 45, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + PCB congener 45, solids, recoverable, dry weight, picograms per gram + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + PCB congener 45, suspended sediment, recoverable, nanograms per liter + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + PCB congener 45, water, filtered, recoverable, nanograms per liter + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + PCB congener 45, water, filtered, recoverable, picograms per liter + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1051 + PCB congener 45, water, unfiltered, recoverable, nanograms per liter + 2,2',3,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + 2,2',3,6'-Tetrachlorobiphenyl + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + BZ congener number 46 + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + CASRN 41464-47-5 + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + PCB congener 46, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + PCB congener 46, solids, recoverable, dry weight, picograms per gram + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + PCB congener 46, suspended sediment, recoverable, nanograms per liter + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + PCB congener 46, water, filtered, recoverable, nanograms per liter + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + PCB congener 46, water, filtered, recoverable, picograms per liter + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1052 + PCB congener 46, water, unfiltered, recoverable, nanograms per liter + 2,2',3,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1053 + 2,2',4,4'-Tetrachlorobiphenyl + 2,2',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1053 + BZ congener number 47 + 2,2',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1053 + CASRN 2437-79-8 + 2,2',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1053 + PCB congener 47, solids, recoverable, dry weight, picograms per gram + 2,2',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1053 + PCB congener 47, water, filtered, recoverable, picograms per liter + 2,2',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1054 + 2,2',4,5-Tetrachlorobiphenyl + 2,2',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1054 + BZ congener number 48 + 2,2',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1054 + CASRN 70362-47-9 + 2,2',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1054 + PCB congener 48, solids, recoverable, dry weight, picograms per gram + 2,2',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1054 + PCB congener 48, water, filtered, recoverable, picograms per liter + 2,2',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + 2,2',4,5'-Tetrachlorobiphenyl + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + BZ congener number 49 + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + CASRN 41464-40-8 + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, water, unfiltered, recoverable, nanograms per liter + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, solids, recoverable, dry weight, micrograms per kilogram + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, solids, recoverable, dry weight, picograms per gram + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, suspended sediment, recoverable, nanograms per liter + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, water, filtered, recoverable, nanograms per liter + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1055 + PCB congener 49, water, filtered, recoverable, picograms per liter + 2,2',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1056 + 2,2',4,6-Tetrachlorobiphenyl + 2,2',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1056 + BZ congener number 50 + 2,2',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1056 + CASRN 62796-65-0 + 2,2',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1056 + PCB congener 50, solids, recoverable, dry weight, picograms per gram + 2,2',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1056 + PCB congener 50, water, filtered, recoverable, picograms per liter + 2,2',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + 2,2',4,6'-Tetrachlorobiphenyl + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + BZ congener number 51 + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + CASRN 68194-04-7 + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + PCB congener 51, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + PCB congener 51, solids, recoverable, dry weight, picograms per gram + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + PCB congener 51, suspended sediment, recoverable, nanograms per liter + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + PCB congener 51, water, filtered, recoverable, nanograms per liter + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + PCB congener 51, water, filtered, recoverable, picograms per liter + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1057 + PCB congener 51, water, unfiltered, recoverable, nanograms per liter + 2,2',4,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + 2,2',5,5'-Tetrachlorobiphenyl + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + BZ congener number 52 + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + CASRN 35693-99-3 + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, solids, recoverable, dry weight, micrograms per kilogram + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, solids, recoverable, dry weight, picograms per gram + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, suspended sediment, recoverable, nanograms per liter + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, water, filtered, recoverable, nanograms per liter + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, water, filtered, recoverable, picograms per liter + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1058 + PCB congener 52, water, unfiltered, recoverable, nanograms per liter + 2,2',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + 2,2',5,6'-Tetrachlorobiphenyl + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + BZ congener number 53 + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + CASRN 41464-41-9 + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + PCB congener 53, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + PCB congener 53, solids, recoverable, dry weight, picograms per gram + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + PCB congener 53, suspended sediment, recoverable, nanograms per liter + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + PCB congener 53, water, filtered, recoverable, nanograms per liter + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + PCB congener 53, water, filtered, recoverable, picograms per liter + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1059 + PCB congener 53, water, unfiltered, recoverable, nanograms per liter + 2,2',5,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1060 + 2,2',6,6'-Tetrachlorobiphenyl + 2,2',6,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1060 + BZ congener number 54 + 2,2',6,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1060 + CASRN 15968-05-5 + 2,2',6,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1060 + PCB congener 54, solids, recoverable, dry weight, picograms per gram + 2,2',6,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1060 + PCB congener 54, water, filtered, recoverable, picograms per liter + 2,2',6,6'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1061 + 2,3,3',4-Tetrachlorobiphenyl + 2,3,3',4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1061 + BZ congener number 55 + 2,3,3',4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1061 + CASRN 74338-24-2 + 2,3,3',4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1061 + PCB congener 55, solids, recoverable, dry weight, picograms per gram + 2,3,3',4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1061 + PCB congener 55, water, filtered, recoverable, picograms per liter + 2,3,3',4-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1062 + 2,3,3',4'-Tetrachlorobiphenyl + 2,3,3',4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1062 + BZ congener number 56 + 2,3,3',4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1062 + CASRN 41464-43-1 + 2,3,3',4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1062 + PCB congener 56, solids, recoverable, dry weight, picograms per gram + 2,3,3',4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1062 + PCB congener 56, water, filtered, recoverable, picograms per liter + 2,3,3',4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1063 + 2,3,3',5-Tetrachlorobiphenyl + 2,3,3',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1063 + BZ congener number 57 + 2,3,3',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1063 + CASRN 70424-67-8 + 2,3,3',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1063 + PCB congener 57, solids, recoverable, dry weight, picograms per gram + 2,3,3',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1063 + PCB congener 57, water, filtered, recoverable, picograms per liter + 2,3,3',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1064 + 2,3,3',5'-Tetrachlorobiphenyl + 2,3,3',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1064 + BZ congener number 58 + 2,3,3',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1064 + CASRN 41464-49-7 + 2,3,3',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1064 + PCB congener 58, solids, recoverable, dry weight, picograms per gram + 2,3,3',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1064 + PCB congener 58, water, filtered, recoverable, picograms per liter + 2,3,3',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1065 + 2,3,3',6-Tetrachlorobiphenyl + 2,3,3',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1065 + BZ congener number 59 + 2,3,3',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1065 + CASRN 74472-33-6 + 2,3,3',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1065 + PCB congener 59, solids, recoverable, dry weight, picograms per gram + 2,3,3',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1065 + PCB congener 59, water, filtered, recoverable, picograms per liter + 2,3,3',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1066 + 2,3,4,4'-Tetrachlorobiphenyl + 2,3,4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1066 + BZ congener number 60 + 2,3,4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1066 + CASRN 33025-41-1 + 2,3,4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1066 + PCB congener 60, solids, recoverable, dry weight, picograms per gram + 2,3,4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1066 + PCB congener 60, water, filtered, recoverable, picograms per liter + 2,3,4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1067 + 2,3,4,5-Tetrachlorobiphenyl + 2,3,4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1067 + BZ congener number 61 + 2,3,4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1067 + CASRN 33284-53-6 + 2,3,4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1067 + PCB congener 61, solids, recoverable, dry weight, picograms per gram + 2,3,4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1067 + PCB congener 61, water, filtered, recoverable, picograms per liter + 2,3,4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1068 + 2,3,4,6-Tetrachlorobiphenyl + 2,3,4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1068 + BZ congener number 62 + 2,3,4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1068 + CASRN 54230-22-7 + 2,3,4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1068 + PCB congener 62, solids, recoverable, dry weight, picograms per gram + 2,3,4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1068 + PCB congener 62, water, filtered, recoverable, picograms per liter + 2,3,4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + 2,3,4',5-Tetrachlorobiphenyl + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + BZ congener number 63 + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + CASRN 74472-34-7 + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + PCB congener 63, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + PCB congener 63, solids, recoverable, dry weight, picograms per gram + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + PCB congener 63, suspended sediment, recoverable, nanograms per liter + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + PCB congener 63, water, filtered, recoverable, nanograms per liter + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + PCB congener 63, water, filtered, recoverable, picograms per liter + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1069 + PCB congener 63, water, unfiltered, recoverable, nanograms per liter + 2,3,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1070 + 2,3,4',6-Tetrachlorobiphenyl + 2,3,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1070 + BZ congener number 64 + 2,3,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1070 + CASRN 52663-58-8 + 2,3,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1070 + PCB congener 64, solids, recoverable, dry weight, picograms per gram + 2,3,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1070 + PCB congener 64, water, filtered, recoverable, picograms per liter + 2,3,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1071 + 2,3,5,6-Tetrachlorobiphenyl + 2,3,5,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1071 + BZ congener number 65 + 2,3,5,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1071 + CASRN 33284-54-7 + 2,3,5,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1071 + PCB congener 65, solids, recoverable, dry weight, picograms per gram + 2,3,5,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1071 + PCB congener 65, water, filtered, recoverable, picograms per liter + 2,3,5,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + 2,3',4,4'-Tetrachlorobiphenyl + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + BZ congener number 66 + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + CASRN 32598-10-0 + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + PCB congener 66, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + PCB congener 66, solids, recoverable, dry weight, picograms per gram + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + PCB congener 66, suspended sediment, recoverable, nanograms per liter + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + PCB congener 66, water, filtered, recoverable, nanograms per liter + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + PCB congener 66, water, filtered, recoverable, picograms per liter + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1072 + PCB congener 66, water, unfiltered, recoverable, nanograms per liter + 2,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1073 + 2,3',4,5-Tetrachlorobiphenyl + 2,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1073 + BZ congener number 67 + 2,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1073 + CASRN 73575-53-8 + 2,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1073 + PCB congener 67, solids, recoverable, dry weight, picograms per gram + 2,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1073 + PCB congener 67, water, filtered, recoverable, picograms per liter + 2,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1074 + 2,3',4,5'-Tetrachlorobiphenyl + 2,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1074 + BZ congener number 68 + 2,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1074 + CASRN 73575-52-7 + 2,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1074 + PCB congener 68, solids, recoverable, dry weight, picograms per gram + 2,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1074 + PCB congener 68, water, filtered, recoverable, picograms per liter + 2,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1075 + 2,3',4,6-Tetrachlorobiphenyl + 2,3',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1075 + BZ congener number 69 + 2,3',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1075 + CASRN 60233-24-1 + 2,3',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1075 + PCB congener 69, solids, recoverable, dry weight, picograms per gram + 2,3',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1075 + PCB congener 69, water, filtered, recoverable, picograms per liter + 2,3',4,6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + 2,3',4',5-Tetrachlorobiphenyl + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + BZ congener number 70 + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + CASRN 32598-11-1 + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + PCB congener 70, air, sum of particulate filter plus top and bottom sorbent traps, recoverable, nanograms per cubic meter + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + PCB congener 70, biota, tissue, recoverable, wet weight, micrograms per kilogram + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + PCB congener 70, solids, recoverable, dry weight, micrograms per kilogram + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + PCB congener 70, solids, recoverable, dry weight, picograms per gram + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1076 + PCB congener 70, water, filtered, recoverable, picograms per liter + 2,3',4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1077 + 2,3',4',6-Tetrachlorobiphenyl + 2,3',4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1077 + BZ congener number 71 + 2,3',4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1077 + CASRN 41464-46-4 + 2,3',4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1077 + PCB congener 71, solids, recoverable, dry weight, picograms per gram + 2,3',4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1077 + PCB congener 71, water, filtered, recoverable, picograms per liter + 2,3',4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1078 + 2,3',5,5'-Tetrachlorobiphenyl + 2,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1078 + BZ congener number 72 + 2,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1078 + CASRN 41464-42-0 + 2,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1078 + PCB congener 72, solids, recoverable, dry weight, picograms per gram + 2,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1078 + PCB congener 72, water, filtered, recoverable, picograms per liter + 2,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1079 + 2,3',5',6-Tetrachlorobiphenyl + 2,3',5',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1079 + BZ congener number 73 + 2,3',5',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1079 + CASRN 74338-23-1 + 2,3',5',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1079 + PCB congener 73, solids, recoverable, dry weight, picograms per gram + 2,3',5',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1079 + PCB congener 73, water, filtered, recoverable, picograms per liter + 2,3',5',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + 2,4,4',5-Tetrachlorobiphenyl + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + BZ congener number 74 + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + CASRN 32690-93-0 + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + PCB congener 74, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + PCB congener 74, solids, recoverable, dry weight, picograms per gram + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + PCB congener 74, suspended sediment, recoverable, nanograms per liter + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + PCB congener 74, water, filtered, recoverable, nanograms per liter + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + PCB congener 74, water, filtered, recoverable, picograms per liter + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1080 + PCB congener 74, water, unfiltered, recoverable, nanograms per liter + 2,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1081 + 2,4,4',6-Tetrachlorobiphenyl + 2,4,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1081 + BZ congener number 75 + 2,4,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1081 + CASRN 32598-12-2 + 2,4,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1081 + PCB congener 75, solids, recoverable, dry weight, picograms per gram + 2,4,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1081 + PCB congener 75, water, filtered, recoverable, picograms per liter + 2,4,4',6-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1082 + 2,3',4',5'-Tetrachlorobiphenyl + 2,3',4',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1082 + BZ congener number 76 + 2,3',4',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1082 + CASRN 70362-48-0 + 2,3',4',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1082 + PCB congener 76, solids, recoverable, dry weight, picograms per gram + 2,3',4',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1082 + PCB congener 76, water, filtered, recoverable, picograms per liter + 2,3',4',5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1083 + 3,3',4,4'-Tetrachlorobiphenyl + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1083 + BZ congener number 77 + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1083 + CASRN 32598-13-3 + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1083 + PCB congener 77, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1083 + PCB congener 77, solids, recoverable, dry weight, picograms per gram + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1083 + PCB congener 77, water, filtered, recoverable, picograms per liter + 3,3',4,4'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1084 + 3,3',4,5-Tetrachlorobiphenyl + 3,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1084 + BZ congener number 78 + 3,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1084 + CASRN 70362-49-1 + 3,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1084 + PCB congener 78, solids, recoverable, dry weight, picograms per gram + 3,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1084 + PCB congener 78, water, filtered, recoverable, picograms per liter + 3,3',4,5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1085 + 3,3',4,5'-Tetrachlorobiphenyl + 3,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1085 + BZ congener number 79 + 3,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1085 + CASRN 41464-48-6 + 3,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1085 + PCB congener 79, solids, recoverable, dry weight, picograms per gram + 3,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1085 + PCB congener 79, water, filtered, recoverable, picograms per liter + 3,3',4,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1086 + 3,3',5,5'-Tetrachlorobiphenyl + 3,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1086 + BZ congener number 80 + 3,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1086 + CASRN 33284-52-5 + 3,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1086 + PCB congener 80, solids, recoverable, dry weight, picograms per gram + 3,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1086 + PCB congener 80, water, filtered, recoverable, picograms per liter + 3,3',5,5'-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1087 + 3,4,4',5-Tetrachlorobiphenyl + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1087 + BZ congener number 81 + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1087 + CASRN 70362-50-4 + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1087 + PCB congener 81, solids, recoverable, dry weight, picograms per gram + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1087 + PCB congener 81, water, filtered, recoverable, picograms per liter + 3,4,4',5-Tetrachlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tetra_Chloro_PCB/ + + + 1021 + 2,2',3-Trichlorobiphenyl + 2,2',3-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1021 + BZ congener number 16 + 2,2',3-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1021 + CASRN 38444-78-9 + 2,2',3-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1021 + PCB congener 16, solids, recoverable, dry weight, picograms per gram + 2,2',3-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1021 + PCB congener 16, water, filtered, recoverable, picograms per liter + 2,2',3-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1022 + 2,2',4-Trichlorobiphenyl + 2,2',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1022 + BZ congener number 17 + 2,2',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1022 + CASRN 37680-66-3 + 2,2',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1022 + PCB congener 17, solids, recoverable, dry weight, picograms per gram + 2,2',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1022 + PCB congener 17, suspended sediment, recoverable, nanograms per liter + 2,2',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1022 + PCB congener 17, water, filtered, recoverable, nanograms per liter + 2,2',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1022 + PCB congener 17, water, filtered, recoverable, picograms per liter + 2,2',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + 2,2',5-Trichlorobiphenyl + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + BZ congener number 18 + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + CASRN 37680-65-2 + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + PCB congener 18, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + PCB congener 18, solids, recoverable, dry weight, micrograms per kilogram + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + PCB congener 18, solids, recoverable, dry weight, picograms per gram + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + PCB congener 18, suspended sediment, recoverable, nanograms per liter + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + PCB congener 18, water, filtered, recoverable, nanograms per liter + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + PCB congener 18, water, filtered, recoverable, picograms per liter + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1023 + PCB congener 18, water, unfiltered, recoverable, nanograms per liter + 2,2',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + 2,2',6-Trichlorobiphenyl + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + BZ congener number 19 + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + CASRN 38444-73-4 + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + PCB congener 19, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + PCB congener 19, solids, recoverable, dry weight, picograms per gram + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + PCB congener 19, suspended sediment, recoverable, nanograms per liter + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + PCB congener 19, water, filtered, recoverable, nanograms per liter + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + PCB congener 19, water, filtered, recoverable, picograms per liter + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1024 + PCB congener 19, water, unfiltered, recoverable, nanograms per liter + 2,2',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1025 + 2,3,3'-Trichlorobiphenyl + 2,3,3'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1025 + BZ congener number 20 + 2,3,3'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1025 + CASRN 38444-84-7 + 2,3,3'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1025 + PCB congener 20, solids, recoverable, dry weight, picograms per gram + 2,3,3'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1025 + PCB congener 20, water, filtered, recoverable, picograms per liter + 2,3,3'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1026 + 2,3,4-Trichlorobiphenyl + 2,3,4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1026 + BZ congener number 21 + 2,3,4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1026 + CASRN 55702-46-0 + 2,3,4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1026 + PCB congener 21, solids, recoverable, dry weight, picograms per gram + 2,3,4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1026 + PCB congener 21, water, filtered, recoverable, picograms per liter + 2,3,4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + 2,3,4'-Trichlorobiphenyl + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + BZ congener number 22 + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + CASRN 38444-85-8 + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + PCB congener 22, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + PCB congener 22, solids, recoverable, dry weight, micrograms per kilogram + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + PCB congener 22, solids, recoverable, dry weight, picograms per gram + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + PCB congener 22, suspended sediment, recoverable, nanograms per liter + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + PCB congener 22, water, filtered, recoverable, nanograms per liter + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + PCB congener 22, water, filtered, recoverable, picograms per liter + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1027 + PCB congener 22, water, unfiltered, recoverable, nanograms per liter + 2,3,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1028 + 2,3,5-Trichlorobiphenyl + 2,3,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1028 + BZ congener number 23 + 2,3,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1028 + CASRN 55720-44-0 + 2,3,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1028 + PCB congener 23, solids, recoverable, dry weight, picograms per gram + 2,3,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1028 + PCB congener 23, water, filtered, recoverable, picograms per liter + 2,3,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1029 + 2,3,6-Trichlorobiphenyl + 2,3,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1029 + BZ congener number 24 + 2,3,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1029 + CASRN 55702-45-9 + 2,3,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1029 + PCB congener 24, solids, recoverable, dry weight, picograms per gram + 2,3,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1029 + PCB congener 24, water, filtered, recoverable, picograms per liter + 2,3,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + 2,3',4-Trichlorobiphenyl + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + BZ congener number 25 + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + CASRN 55712-37-3 + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + PCB congener 25, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + PCB congener 25, solids, recoverable, dry weight, picograms per gram + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + PCB congener 25, suspended sediment, recoverable, nanograms per liter + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + PCB congener 25, water, filtered, recoverable, nanograms per liter + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + PCB congener 25, water, filtered, recoverable, picograms per liter + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1030 + PCB congener 25, water, unfiltered, recoverable, nanograms per liter + 2,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + 2,3',5-Trichlorobiphenyl + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + BZ congener number 26 + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + PCB congener 26, water, filtered, recoverable, picograms per liter + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + PCB congener 26, water, unfiltered, recoverable, nanograms per liter + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + CASRN 38444-81-4 + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + PCB congener 26, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + PCB congener 26, solids, recoverable, dry weight, micrograms per kilogram + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + PCB congener 26, solids, recoverable, dry weight, picograms per gram + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + PCB congener 26, suspended sediment, recoverable, nanograms per liter + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1031 + PCB congener 26, water, filtered, recoverable, nanograms per liter + 2,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1032 + 2,3',6-Trichlorobiphenyl + 2,3',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1032 + BZ congener number 27 + 2,3',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1032 + CASRN 38444-76-7 + 2,3',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1032 + PCB congener 27, solids, recoverable, dry weight, picograms per gram + 2,3',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1032 + PCB congener 27, water, filtered, recoverable, picograms per liter + 2,3',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1033 + 2,4,4'-Trichlorobiphenyl + 2,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1033 + BZ congener number 28 + 2,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1033 + CASRN 7012-37-5 + 2,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1033 + PCB congener 28, solids, recoverable, dry weight, micrograms per kilogram + 2,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1033 + PCB congener 28, solids, recoverable, dry weight, picograms per gram + 2,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1033 + PCB congener 28, water, filtered, recoverable, picograms per liter + 2,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1034 + 2,4,5-Trichlorobiphenyl + 2,4,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1034 + BZ congener number 29 + 2,4,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1034 + CASRN 15862-07-4 + 2,4,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1034 + PCB congener 29, solids, recoverable, dry weight, picograms per gram + 2,4,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1034 + PCB congener 29, water, filtered, recoverable, picograms per liter + 2,4,5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1035 + 2,4,6-Trichlorobiphenyl + 2,4,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1035 + BZ congener number 30 + 2,4,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1035 + CASRN 35693-92-6 + 2,4,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1035 + PCB congener 30, surrogate, Schedule 2101, biota, whole organism, percent recovery + 2,4,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1035 + PCB congener 30, water, filtered, recoverable, picograms per liter + 2,4,6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1036 + 2,4',5-Trichlorobiphenyl + 2,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1036 + BZ congener number 31 + 2,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1036 + CASRN 16606-02-3 + 2,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1036 + PCB congener 31, solids, recoverable, dry weight, micrograms per kilogram + 2,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1036 + PCB congener 31, solids, recoverable, dry weight, picograms per gram + 2,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1036 + PCB congener 31, water, filtered, recoverable, picograms per liter + 2,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1037 + 2,4',6-Trichlorobiphenyl + 2,4',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1037 + BZ congener number 32 + 2,4',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1037 + CASRN 38444-77-8 + 2,4',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1037 + PCB congener 32, solids, recoverable, dry weight, picograms per gram + 2,4',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1037 + PCB congener 32, water, filtered, recoverable, picograms per liter + 2,4',6-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + 2,3',4'-Trichlorobiphenyl + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + BZ congener number 33 + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + CASRN 38444-86-9 + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + PCB congener 33, bed sediment smaller than 2 mm, recoverable, dry weight, nanograms per gram + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + PCB congener 33, solids, recoverable, dry weight, micrograms per kilogram + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + PCB congener 33, solids, recoverable, dry weight, picograms per gram + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + PCB congener 33, suspended sediment, recoverable, nanograms per liter + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + PCB congener 33, water, filtered, recoverable, nanograms per liter + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + PCB congener 33, water, filtered, recoverable, picograms per liter + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1038 + PCB congener 33, water, unfiltered, recoverable, nanograms per liter + 2,3',4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1039 + 2,3',5'-Trichlorobiphenyl + 2,3',5'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1039 + BZ congener number 34 + 2,3',5'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1039 + CASRN 37680-68-5 + 2,3',5'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1039 + PCB congener 34, solids, recoverable, dry weight, picograms per gram + 2,3',5'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1039 + PCB congener 34, water, filtered, recoverable, picograms per liter + 2,3',5'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1040 + 3,3',4-Trichlorobiphenyl + 3,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1040 + BZ congener number 35 + 3,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1040 + CASRN 37680-69-6 + 3,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1040 + PCB congener 35, solids, recoverable, dry weight, picograms per gram + 3,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1040 + PCB congener 35, water, filtered, recoverable, picograms per liter + 3,3',4-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1041 + 3,3',5-Trichlorobiphenyl + 3,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1041 + BZ congener number 36 + 3,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1041 + CASRN 38444-87-0 + 3,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1041 + PCB congener 36, solids, recoverable, dry weight, picograms per gram + 3,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1041 + PCB congener 36, water, filtered, recoverable, picograms per liter + 3,3',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1042 + 3,4,4'-Trichlorobiphenyl + 3,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1042 + BZ congener number 37 + 3,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1042 + CASRN 38444-90-5 + 3,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1042 + PCB congener 37, solids, recoverable, dry weight, picograms per gram + 3,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1042 + PCB congener 37, water, filtered, recoverable, picograms per liter + 3,4,4'-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1043 + 3,4,5-Tricholobiphenyl + 3,4,5-Tricholobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1043 + BZ congener number 38 + 3,4,5-Tricholobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1043 + CASRN 53555-66-1 + 3,4,5-Tricholobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1043 + PCB congener 38, solids, recoverable, dry weight, picograms per gram + 3,4,5-Tricholobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1043 + PCB congener 38, water, filtered, recoverable, picograms per liter + 3,4,5-Tricholobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1044 + 3,4',5-Trichlorobiphenyl + 3,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1044 + BZ congener number 39 + 3,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1044 + CASRN 38444-88-1 + 3,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1044 + PCB congener 39, solids, recoverable, dry weight, picograms per gram + 3,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1044 + PCB congener 39, water, filtered, recoverable, picograms per liter + 3,4',5-Trichlorobiphenyl + Hydrosphere/Chemical/Organic/PCBs/Homolog Groups/Tri_Chloro_PCB/ + + + 1223 + Aroclor + Aroclor + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/ + + + 1239 + Other PCB_Mixtures + Other PCB_Mixtures + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/ + + + 1224 + Aroclor 1016 + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + Aroclor 1016, bed sediment, recoverable, dry weight, micrograms per kilogram + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + Aroclor 1016, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + Aroclor 1016, soil, recoverable, dry weight, milligrams per kilogram + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + Aroclor 1016, solids, recoverable, dry weight, micrograms per kilogram + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + Aroclor 1016, suspended sediment, recoverable, micrograms per liter + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + Aroclor 1016, water, filtered, recoverable, micrograms per liter + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + Aroclor 1016, water, unfiltered, recoverable, micrograms per liter + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1224 + CASRN 12674-11-2 + Aroclor 1016 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1225 + Aroclor 1210 + Aroclor 1210 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1225 + CASRN 147601-87-4 + Aroclor 1210 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221 + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221, bed sediment, recoverable, dry weight, micrograms per kilogram + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221, soil, recoverable, dry weight, milligrams per kilogram + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221, solids, recoverable, dry weight, micrograms per kilogram + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221, suspended sediment, recoverable, micrograms per liter + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221, water, filtered, recoverable, micrograms per liter + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + Aroclor 1221, water, unfiltered, recoverable, micrograms per liter + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1226 + CASRN 11104-28-2 + Aroclor 1221 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1227 + Aroclor 1231 + Aroclor 1231 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1227 + CASRN 37234-40-5 + Aroclor 1231 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232 + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232, bed sediment, recoverable, dry weight, micrograms per kilogram + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232, soil, recoverable, dry weight, milligrams per kilogram + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232, solids, recoverable, dry weight, micrograms per kilogram + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232, suspended sediment, recoverable, micrograms per liter + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232, water, filtered, recoverable, micrograms per liter + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + Aroclor 1232, water, unfiltered, recoverable, micrograms per liter + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1228 + CASRN 11141-16-5 + Aroclor 1232 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1229 + Aroclor 1240 + Aroclor 1240 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1229 + CASRN 71328-89-7 + Aroclor 1240 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242 + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242, bed sediment, recoverable, dry weight, micrograms per kilogram + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242, soil, recoverable, dry weight, milligrams per kilogram + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242, solids, recoverable, dry weight, micrograms per kilogram + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242, suspended sediment, recoverable, micrograms per liter + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242, water, filtered, recoverable, micrograms per liter + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + Aroclor 1242, water, unfiltered, recoverable, micrograms per liter + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1230 + CASRN 53469-21-9 + Aroclor 1242 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248 + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248, bed sediment, recoverable, dry weight, micrograms per kilogram + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248, soil, recoverable, dry weight, milligrams per kilogram + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248, solids, recoverable, dry weight, micrograms per kilogram + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248, suspended sediment, recoverable, micrograms per liter + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248, water, filtered, recoverable, micrograms per liter + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + Aroclor 1248, water, unfiltered, recoverable, micrograms per liter + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1231 + CASRN 12672-29-6 + Aroclor 1248 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1232 + Aroclor 1250 + Aroclor 1250 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1232 + CASRN 165245-51-2 + Aroclor 1250 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1233 + Aroclor 1252 + Aroclor 1252 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1233 + CASRN 89577-78-6 + Aroclor 1252 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254 + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254, bed sediment, recoverable, dry weight, micrograms per kilogram + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254, soil, recoverable, dry weight, milligrams per kilogram + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254, solids, recoverable, dry weight, micrograms per kilogram + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254, suspended sediment, recoverable, dry weight, micrograms per kilogram + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254, suspended sediment, recoverable, micrograms per liter + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254, water, filtered, recoverable, micrograms per liter + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + Aroclor 1254, water, unfiltered, recoverable, micrograms per liter + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1234 + CASRN 11097-69-1 + Aroclor 1254 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, water, filtered, recoverable, micrograms per liter + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, water, unfiltered, recoverable, micrograms per liter + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor-1260 + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + CASRN 11096-82-5 + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, bed sediment, recoverable, dry weight, micrograms per kilogram + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, soil, recoverable, dry weight, milligrams per kilogram + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, solids, recoverable, dry weight, micrograms per kilogram + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, suspended sediment, recoverable, dry weight, micrograms per kilogram + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1235 + Aroclor 1260, suspended sediment, recoverable, micrograms per liter + Aroclor-1260 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1236 + Aroclor 1262, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor-1262 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1236 + Aroclor 1262, solids, recoverable, dry weight, micrograms per kilogram + Aroclor-1262 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1236 + Aroclor 1262, water, unfiltered, recoverable, micrograms per liter + Aroclor-1262 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1236 + Aroclor-1262 + Aroclor-1262 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1236 + CASRN 37324-23-5 + Aroclor-1262 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1237 + Aroclor 1268, biota, tissue, recoverable, wet weight, micrograms per kilogram + Aroclor-1268 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1237 + Aroclor 1268, solids, recoverable, dry weight, micrograms per kilogram + Aroclor-1268 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1237 + Aroclor 1268, water, unfiltered, recoverable, micrograms per liter + Aroclor-1268 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1237 + Aroclor-1268 + Aroclor-1268 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1237 + CASRN 11100-14-4 + Aroclor-1268 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1238 + Aroclor (unspecified) + Aroclor (unspecified) + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1238 + CASRN 12767-79-2 + Aroclor (unspecified) + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Aroclor/ + + + 1240 + PCB-105/132/153 + PCB-105/132/153 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1241 + PCB-123/149 + PCB-123/149 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1242 + PCB-132/153 + PCB-132/153 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1243 + PCB-135/144 + PCB-135/144 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1244 + PCB-137/176 + PCB-137/176 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1245 + PCB-138/163 + PCB-138/163 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1246 + PCB-15/17 + PCB-15/17 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1247 + PCB-16/32 + PCB-16/32 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1248 + PCB-170/190 + PCB-170/190 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1249 + PCB-171/202 + PCB-171/202 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1250 + PCB-172/197 + PCB-172/197 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1251 + PCB-182/187 + PCB-182/187 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1252 + PCB-195/208 + PCB-195/208 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1253 + PCB-196/203 + PCB-196/203 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1254 + PCB-24/27 + PCB-24/27 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1255 + PCB-28/31 + PCB-28/31 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1256 + PCB-37/42 + PCB-37/42 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1257 + PCB-4/10 + PCB-4/10 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1258 + PCB-41/64/71 + PCB-41/64/71 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1259 + PCB-47/48 + PCB-47/48 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1260 + PCB-5/8 + PCB-5/8 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1261 + PCB-56/60 + PCB-56/60 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1262 + PCB-66/95 + PCB-66/95 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1263 + PCB-7/9 + PCB-7/9 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1264 + PCB-70/76 + PCB-70/76 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1265 + PCB-77/110 + PCB-77/110 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1266 + PCB-84/92 + PCB-84/92 + Hydrosphere/Chemical/Organic/PCBs/PCB_Mixtures/Other PCB_Mixtures/ + + + 1834 + .alpha.-Endosulfan + .alpha.-Endosulfan + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1834 + alpha-Endosulfan + .alpha.-Endosulfan + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1835 + .alpha.-Hexachlorocyclohexane + .alpha.-Hexachlorocyclohexane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1836 + .beta.-Endosulfan + .beta.-Endosulfan + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1836 + beta-Endosulfan + .beta.-Endosulfan + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1837 + .beta.-Hexachlorocyclohexane + .beta.-Hexachlorocyclohexane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1838 + .delta.-Hexachlorocyclohexane + .delta.-Hexachlorocyclohexane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1839 + .lambda.-Cyhalothrin + .lambda.-Cyhalothrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1839 + lambda-Cyhalothrin + .lambda.-Cyhalothrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1840 + 1,2,3-Trichloropropane + 1,2,3-Trichloropropane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1841 + 1,2-Dibromo-3-chloropropane + 1,2-Dibromo-3-chloropropane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1842 + 1,2-Dichloroethane + 1,2-Dichloroethane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1843 + 1,2-Dichloropropane + 1,2-Dichloropropane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1844 + 1,3,5-Triazin-2(1H)-one, 4-(ethylamino)-6-[(1-methylethyl)amino]- + 1,3,5-Triazin-2(1H)-one, 4-(ethylamino)-6-[(1-methylethyl)amino]- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1845 + 1,3,5-Triazin-2(1H)-one, 4,6-bis(ethylamino)- + 1,3,5-Triazin-2(1H)-one, 4,6-bis(ethylamino)- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1846 + 1,3-Dichloropropane + 1,3-Dichloropropane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1847 + 1,3-Dichloropropene + 1,3-Dichloropropene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1848 + 1,4-Benzenedicarboxylic acid, 2,3,5,6-tetrachloro-, monomethyl ester + 1,4-Benzenedicarboxylic acid, 2,3,5,6-tetrachloro-, monomethyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1849 + 1,4-Ethenopentalene, 1,2,3,5,7,8-hexachloro-1,3a,4,5,6,6a-hexahydro-, (1R,3aS,4S,5S,6aS)-rel- + 1,4-Ethenopentalene, 1,2,3,5,7,8-hexachloro-1,3a,4,5,6,6a-hexahydro-, (1R,3aS,4S,5S,6aS)-rel- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1850 + 1,4-Naphthoquinone + 1,4-Naphthoquinone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1851 + 1,6-Methano-1H-indene, 2,3,3a,4,5,8-hexachloro-3a,6,7,7a-tetrahydro-, (1R,3aR,6S,7aR,8R)-rel- + 1,6-Methano-1H-indene, 2,3,3a,4,5,8-hexachloro-3a,6,7,7a-tetrahydro-, (1R,3aR,6S,7aR,8R)-rel- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1852 + 1H-Isoindole-1,3(2H)-dione, 3a,4,7,7a-tetrahydro-2-[(1,1,2,2-tetrachloroethyl)thio]- + 1H-Isoindole-1,3(2H)-dione, 3a,4,7,7a-tetrahydro-2-[(1,1,2,2-tetrachloroethyl)thio]- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1853 + 1-Naphthol + 1-Naphthol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1854 + cis-Permethrin + cis-Permethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1855 + 2(1H)-Pyridinone, 3,5,6-trichloro- + 2(1H)-Pyridinone, 3,5,6-trichloro- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1856 + 2-(Dimethylamino)-N-hydroxy-2-oxoethanimidothioic acid methyl ester + 2-(Dimethylamino)-N-hydroxy-2-oxoethanimidothioic acid methyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1857 + 2-(p-tert-Butylphenoxy)cyclohexanol + 2-(p-tert-Butylphenoxy)cyclohexanol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1858 + 2,2,4,5,6,7,8,8-Octachloro-2,3,3a,4,7,7a-hexahydro-4,7-methano-1H-indene + 2,2,4,5,6,7,8,8-Octachloro-2,3,3a,4,7,7a-hexahydro-4,7-methano-1H-indene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1859 + 2,3,4,5-Tetrachlorophenol + 2,3,4,5-Tetrachlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1860 + 2,3,4,6-Tetrachlorophenol + 2,3,4,6-Tetrachlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1861 + 2,4,5-T + 2,4,5-T + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1862 + 2,4,5-TB + 2,4,5-TB + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1863 + 2,4,5-Trichlorophenol + 2,4,5-Trichlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1864 + 2,4,6-Trichlorophenol + 2,4,6-Trichlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1865 + 2,4-D + 2,4-D + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1866 + 2,4-D methyl ester + 2,4-D methyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1867 + 2,4-DB + 2,4-DB + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1868 + 2,4-Dichlorophenol + 2,4-Dichlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1869 + 2,4-Dimethylphenol + 2,4-Dimethylphenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1870 + 2,5-Dichloroaniline + 2,5-Dichloroaniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1871 + 2,6-Diethylaniline + 2,6-Diethylaniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1872 + 2-Chloro-4,6-diamino-s-triazine + 2-Chloro-4,6-diamino-s-triazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1873 + 2-Chloro-4-isopropylamino-6-amino-s-triazine + 2-Chloro-4-isopropylamino-6-amino-s-triazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1874 + 2-Chloro-6-ethylamino-4-amino-s-triazine + 2-Chloro-6-ethylamino-4-amino-s-triazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1875 + 2-Ethyl-6-methylaniline + 2-Ethyl-6-methylaniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1876 + 3(2H)-Pyridazinone, 5-amino-4-chloro-2-[3-(trifluoromethyl)phenyl]- + 3(2H)-Pyridazinone, 5-amino-4-chloro-2-[3-(trifluoromethyl)phenyl]- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1877 + 3,4-Dichloroaniline + 3,4-Dichloroaniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1878 + 3,5-Dichloroaniline + 3,5-Dichloroaniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1879 + 3-Hydroxycarbofuran + 3-Hydroxycarbofuran + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1880 + 3-Phenoxybenzenemethanol + 3-Phenoxybenzenemethanol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1881 + 4,6-Dinitro-o-cresol + 4,6-Dinitro-o-cresol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1882 + 4-Chloro-2-methylphenol + 4-Chloro-2-methylphenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1883 + 5-Amino-1-[2,6-dichloro-4-(trifluoromethyl)phenyl]-4-[(trifluoromethyl)thio]pyrazole-3-carbonitrile + 5-Amino-1-[2,6-dichloro-4-(trifluoromethyl)phenyl]-4-[(trifluoromethyl)thio]pyrazole-3-carbonitrile + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1884 + Acephate + Acephate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1885 + Acetochlor + Acetochlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1886 + Acifluorfen + Acifluorfen + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1887 + Acifluorfen, sodium salt + Acifluorfen, sodium salt + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1887 + Sodium acifluorfen + Acifluorfen, sodium salt + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1888 + Acrylonitrile + Acrylonitrile + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1889 + Alachlor + Alachlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1890 + Alachlor ESA + Alachlor ESA + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1890 + Alachlor ethanesulfonic acid + Alachlor ESA + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1891 + Aldicarb + Aldicarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1892 + Aldicarb sulfone + Aldicarb sulfone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1893 + Aldicarb sulfoxide + Aldicarb sulfoxide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1894 + Aldrin + Aldrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1895 + Allethrin + Allethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1896 + Allyl chloride + Allyl chloride + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1897 + Ametryn + Ametryn + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1898 + Aminocarb + Aminocarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1899 + Aminomethylphosphonic acid + Aminomethylphosphonic acid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1900 + Aramite + Aramite + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1901 + Asulam + Asulam + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1902 + Atraton + Atraton + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1903 + Atrazine + Atrazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1904 + Azinphos-ethyl + Azinphos-ethyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1905 + Azinphos-methyl + Azinphos-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1906 + Azobenzene + Azobenzene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1907 + Barban + Barban + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1908 + Bendiocarb + Bendiocarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1909 + Benfluralin + Benfluralin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1910 + Benomyl + Benomyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1911 + Bensulfuron-methyl + Bensulfuron-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1912 + Bentazon + Bentazon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1913 + Benzamide, 2-amino-N-(1-methylethyl)- + Benzamide, 2-amino-N-(1-methylethyl)- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1914 + Benzene, 1,1'-(chloroethenylidene)bis(4-chloro- + Benzene, 1,1'-(chloroethenylidene)bis(4-chloro- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1915 + Benzene, 1-chloro-4-(methylsulfonyl)- + Benzene, 1-chloro-4-(methylsulfonyl)- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1916 + Benzene, 1-methoxy-2-[2,2,2-trichloro-1-(4-methoxyphenyl)ethyl]- + Benzene, 1-methoxy-2-[2,2,2-trichloro-1-(4-methoxyphenyl)ethyl]- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1917 + Benzene, pentachloromethoxy- + Benzene, pentachloromethoxy- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1918 + Benzoic acid, 2,5-dichloro-3-hydroxy-6-methoxy- + Benzoic acid, 2,5-dichloro-3-hydroxy-6-methoxy- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1919 + 3,5-Dichlorobenzoic acid + Benzoic acid, 3,5-dichloro- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1919 + Benzoic acid, 3,5-dichloro- + Benzoic acid, 3,5-dichloro- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1920 + Bifenthrin + Bifenthrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1921 + Bromacil + Bromacil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1922 + Bromophos + Bromophos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1923 + Bromophos-ethyl + Bromophos-ethyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1924 + Bromoxynil + Bromoxynil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1925 + Bufencarb + Bufencarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1926 + Bulan mixt. with 2-nitro-1,1-bis(p-chlorophenyl)propane + Bulan mixt. with 2-nitro-1,1-bis(p-chlorophenyl)propane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1927 + Butachlor + Butachlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1928 + Butoxycarboxim + Butoxycarboxim + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1929 + Butylamine + Butylamine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1930 + Butylate + Butylate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1931 + Cacodylic acid + Cacodylic acid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1932 + Cadusafos + Cadusafos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1933 + Camphor + Camphor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1934 + Captan + Captan + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1935 + Carbamic acid, methyl-, 2-chlorophenyl ester + Carbamic acid, methyl-, 2-chlorophenyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1936 + Carbaryl + Carbaryl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1937 + Carbazole + Carbazole + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1938 + Carbofuran + Carbofuran + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1939 + Carbon disulfide + Carbon disulfide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1940 + Carbophenothion + Carbophenothion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1941 + Carbophenothion-methyl + Carbophenothion-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1942 + Carboxin + Carboxin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1943 + Chloramben + Chloramben + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1944 + Chloramben-methyl + Chloramben-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1945 + Chlordane (technical) + Chlordane, technical + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1945 + Chlordane, technical + Chlordane, technical + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1946 + Chlordane, technical, and/or chlordane metabolites + Chlordane, technical, and/or chlordane metabolites + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1947 + Chlordecone + Chlordecone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1948 + Chlorethoxyfos + Chlorethoxyfos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1949 + Chlorfenvinphos + Chlorfenvinphos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1950 + Chlorimuron-ethyl + Chlorimuron-ethyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1951 + Chlorinated phenoxy acid group + Chlorinated phenoxy acid group + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1952 + Chlorobenzilate + Chlorobenzilate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1953 + Chloroneb + Chloroneb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1954 + Chloropicrin + Chloropicrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1955 + Chlorothalonil + Chlorothalonil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1956 + Chlorotoluron + Chlorotoluron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1957 + Chloroxuron + Chloroxuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1958 + Chlorpropham + Chlorpropham + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1959 + Chlorpyrifos + Chlorpyrifos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1960 + Chlorpyrifos-methyl + Chlorpyrifos-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1961 + Chlorsulfuron + Chlorsulfuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1962 + Chlorthal-dimethyl + Chlorthal-dimethyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1963 + Chlorthion + Chlorthion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1964 + Cinerin I + Cinerin I + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1965 + cis-1,3-Dichloropropene + cis-1,3-Dichloropropene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1966 + cis-Chlordane + cis-Chlordane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1967 + cis-Nonachlor + cis-Nonachlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1968 + Clomazone + Clomazone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1969 + Clopyralid + Clopyralid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1970 + Coumaphos + Coumaphos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1971 + Cyanazine + Cyanazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1972 + Cybutryne + Cybutryne + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1973 + Cycloate + Cycloate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1974 + Cyclohexanamine, N-ethyl- + Cyclohexanamine, N-ethyl- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1975 + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl- + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1976 + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1977 + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester, (1R,3R)-rel- + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester, (1R,3R)-rel- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1978 + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester, (1R,3S)-rel- + Cyclopropanecarboxylic acid, 3-(2,2-dichloroethenyl)-2,2-dimethyl-, methyl ester, (1R,3S)-rel- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1979 + Cyfluthrin + Cyfluthrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1980 + Cypermethrin + Cypermethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1981 + Cyprazine + Cyprazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1982 + Dalapon + Dalapon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1983 + Deltamethrin + Deltamethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1984 + Demeton + Demeton + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1985 + Demeton-O + Demeton-O + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1986 + Demeton-S + Demeton-S + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1987 + Desmedipham + Desmedipham + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1988 + Diallate + Diallate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1989 + Diazinon + Diazinon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1990 + Dicamba + Dicamba + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1991 + Dichlobenil + Dichlobenil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1992 + Dichlofenthion + Dichlofenthion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1993 + Dichlorprop + Dichlorprop + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1994 + Dichlorvos + Dichlorvos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1995 + Diclofop methyl + Diclofop methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1996 + Dicofol + Dicofol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1997 + Dicrotophos + Dicrotophos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1998 + Dieldrin + Dieldrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1999 + Diethatyl ethyl + Diethatyl ethyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 1999 + Diethatyl-ethyl + Diethatyl ethyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2000 + Diflubenzuron + Diflubenzuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2001 + Dimethenamid + Dimethenamid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2002 + Dimethoate + Dimethoate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2003 + (E)-Dimethomorph + Dimethomorph + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2003 + (Z)-Dimethomorph + Dimethomorph + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2003 + Dimethomorph + Dimethomorph + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2004 + Dinex + Dinex + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2005 + Dinoseb + Dinoseb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2006 + Dioxacarb + Dioxacarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2007 + Dioxathion + Dioxathion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2008 + Diphenamid + Diphenamid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2009 + Diphenylamine + Diphenylamine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2010 + Diquat + Diquat + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2011 + Disulfoton + Disulfoton + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2012 + Disulfoton sulfone + Disulfoton sulfone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2013 + Diuron + Diuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2014 + Endosulfan + Endosulfan + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2015 + Endosulfan sulfate + Endosulfan sulfate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2016 + Endothall + Endothall + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2017 + Endrin + Endrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2018 + Endrin aldehyde + Endrin aldehyde + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2019 + Endrin ketone + Endrin ketone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2020 + Esfenvalerate + Esfenvalerate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2021 + Ethalfluralin + Ethalfluralin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2022 + Ethanimidothioic acid, N-hydroxy-, methyl ester + Ethanimidothioic acid, N-hydroxy-, methyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2023 + Ethene, 1,2-dibromo- + Ethene, 1,2-dibromo- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2024 + Ethion + Ethion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2025 + Ethion monooxon + Ethion monooxon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2026 + Ethoprop + Ethoprop + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2027 + Ethylan + Ethylan + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2028 + Ethylene dibromide + Ethylene dibromide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2029 + Ethylene thiourea + Ethylene thiourea + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2030 + Etridiazole + Etridiazole + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2031 + Etrimfos + Etrimfos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2032 + Famphur + Famphur + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2033 + Fenamiphos + Fenamiphos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2034 + Fenarimol + Fenarimol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2035 + Fenitrothion + Fenitrothion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2036 + Fenpropathrin + Fenpropathrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2037 + Fensulfothion + Fensulfothion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2038 + Fenthion + Fenthion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2039 + Fenuron + Fenuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2040 + Fipronil + Fipronil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2041 + Fluchloralin + Fluchloralin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2042 + Flufenacet + Flufenacet + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2043 + Flumetralin + Flumetralin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2044 + Flumetsulam + Flumetsulam + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2045 + Fluometuron + Fluometuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2046 + Fluridone + Fluridone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2047 + Fonofos + Fonofos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2048 + Formetanate hydrochloride + Formetanate hydrochloride + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2049 + Glyphosate + Glyphosate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2050 + Halofenozide + Halofenozide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2051 + Halosulfuron-methyl + Halosulfuron-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2052 + Heptachlor + Heptachlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2053 + Heptachlor epoxide + Heptachlor epoxide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2054 + Hexachlorobenzene + Hexachlorobenzene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2055 + Hexachlorodibenzo-p-dioxin + Hexachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2055 + Hexachlorodibenzo-p-dioxins (all isomers) + Hexachlorodibenzo-p-dioxin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2056 + Hexazinone + Hexazinone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2057 + Imazapyr + Imazapyr + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2058 + Imazaquin + Imazaquin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2059 + Imazethapyr + Imazethapyr + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2060 + Imidacloprid + Imidacloprid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2061 + Ioxynil + Ioxynil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2062 + Iprodione + Iprodione + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2063 + Isodrin + Isodrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2064 + Isofenphos + Isofenphos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2065 + Isoprocarb + Isoprocarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2066 + Isoxaflutole + Isoxaflutole + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2067 + Leptophos + Leptophos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2068 + Lindane + Lindane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2069 + Linuron + Linuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2070 + m-(Trifluoromethyl)aniline + m-(Trifluoromethyl)aniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2071 + Malaoxon + Malaoxon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2072 + Malathion + Malathion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2073 + Mancozeb + Mancozeb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2074 + Maneb + Maneb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2075 + MCPA + MCPA + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2076 + MCPB + MCPB + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2077 + Mecoprop + Mecoprop + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2078 + Merphos + Merphos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2079 + Metalaxyl + Metalaxyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2080 + Methamidophos + Methamidophos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2081 + Methanone, bis(4-chlorophenyl)- + Methanone, bis(4-chlorophenyl)- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2082 + Methidathion + Methidathion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2083 + Methiocarb + Methiocarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2084 + Methomyl + Methomyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2085 + Methoprene + Methoprene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2086 + Methoxychlor + Methoxychlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2086 + o,p'-Methoxychlor + Methoxychlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2086 + p,p'-Methoxychlor + Methoxychlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2087 + Methyl bromide + Methyl bromide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2088 + Methyl iodide + Methyl iodide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2089 + Methyl paraoxon + Methyl paraoxon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2090 + Methyl parathion + Methyl parathion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2091 + Metolachlor + Metolachlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2092 + Metolcarb + Metolcarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2093 + Metribuzin + Metribuzin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2094 + Metsulfuron-methyl + Metsulfuron-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2095 + Mevinphos + Mevinphos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2096 + Mexacarbate + Mexacarbate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2097 + Mirex + Mirex + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2098 + Mobam + Mobam + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2099 + Molinate + Molinate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2100 + Monocrotophos + Monocrotophos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2101 + Monolinuron + Monolinuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2102 + Monosodium methanearsonate + Monosodium methanearsonate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2103 + Monuron + Monuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2104 + Myclobutanil + Myclobutanil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2105 + N,N-Diethyl-m-toluamide + N,N-Diethyl-m-toluamide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2106 + N-2-Ethylhexylbicycloheptenedicarboximide + N-2-Ethylhexylbicycloheptenedicarboximide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2107 + Naled + Naled + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2108 + Napropamide + Napropamide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2109 + Neburon + Neburon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2110 + Nicosulfuron + Nicosulfuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2111 + Nitrapyrin + Nitrapyrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2112 + Norflurazon + Norflurazon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2113 + O,O,O-Triethyl phosphorothioate + O,O,O-Triethyl phosphorothioate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2114 + o,p'-DDD + o,p'-DDD + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2115 + o,p'-DDE + o,p'-DDE + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2116 + o,p'-DDT + o,p'-DDT + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2117 + o-Cresol + o-Cresol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2118 + O-Ethyl O-(p-nitrophenyl) phenylphosphonothioate + O-Ethyl O-(p-nitrophenyl) phenylphosphonothioate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2119 + Omethoate + Omethoate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2120 + Oryzalin + Oryzalin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2121 + Oxadiazon + Oxadiazon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2122 + Oxamyl + Oxamyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2123 + Oxychlordane + Oxychlordane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2124 + Oxydisulfoton + Oxydisulfoton + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2125 + Oxyfluorfen + Oxyfluorfen + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2126 + p,p'-DDD + p,p'-DDD + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2127 + p,p'-DDE + p,p'-DDE + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2128 + p,p'-DDT + p,p'-DDT + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2129 + Paraoxon + Paraoxon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2130 + Paraquat + Paraquat + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2131 + Parathion + Parathion + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2132 + 4-Chloroaniline + p-Chloroaniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2132 + p-Chloroaniline + p-Chloroaniline + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2133 + p-Chloro-m-cresol + p-Chloro-m-cresol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2134 + p-Cresol + p-Cresol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2135 + 1,4-Dichlorobenzene + p-Dichlorobenzene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2135 + p-Dichlorobenzene + p-Dichlorobenzene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2136 + Pebulate + Pebulate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2137 + Pendimethalin + Pendimethalin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2138 + Pentachlorobenzene + Pentachlorobenzene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2139 + Pentachloronitrobenzene + Pentachloronitrobenzene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2140 + Pentachlorophenol + Pentachlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2141 + Permethrin + Permethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2142 + Phenmedipham + Phenmedipham + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2143 + Phenol, 2-(1-methylpropyl)-, methylcarbamate + Phenol, 2-(1-methylpropyl)-, methylcarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2144 + Phenol, 2,6-bis(1,1-dimethylethyl)-4-methyl-, methylcarbamate + Phenol, 2,6-bis(1,1-dimethylethyl)-4-methyl-, methylcarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2145 + Phenol, 2-[(ethylthio)methyl]-, methylcarbamate + Phenol, 2-[(ethylthio)methyl]-, methylcarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2146 + Phenol, 3,4-dimethyl-, methylcarbamate + Phenol, 3,4-dimethyl-, methylcarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2147 + Phenol, 3,5-bis(1,1-dimethylethyl)-, methylcarbamate + Phenol, 3,5-bis(1,1-dimethylethyl)-, methylcarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2148 + Phenol, 3,5-dimethyl-4-(methylsulfinyl)-, methylcarbamate + Phenol, 3,5-dimethyl-4-(methylsulfinyl)-, methylcarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2149 + Phenol, 3,5-dimethyl-4-(methylsulfonyl)-, methylcarbamate + Phenol, 3,5-dimethyl-4-(methylsulfonyl)-, methylcarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2150 + Phenothrin + Phenothrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2151 + Phorate + Phorate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2152 + Phorate sulfone + Phorate sulfone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2153 + Phorate sulfoxide + Phorate sulfoxide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2154 + Phosmet + Phosmet + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2155 + Phosmetoxon + Phosmetoxon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2156 + Phosphamidon + Phosphamidon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2157 + Phosphoric acid, (1Z)-2-chloro-1-(2,4,5-trichlorophenyl)ethenyl dimethyl ester + Phosphoric acid, (1Z)-2-chloro-1-(2,4,5-trichlorophenyl)ethenyl dimethyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2158 + Phosphoric acid, diethyl 6-methyl-2-(1-methylethyl)-4-pyrimidinyl ester + Phosphoric acid, diethyl 6-methyl-2-(1-methylethyl)-4-pyrimidinyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2159 + Phosphorothioic acid, O,O'-(sulfinyldi-4,1-phenylene) O,O,O',O'-tetramethyl ester + Phosphorothioic acid, O,O'-(sulfinyldi-4,1-phenylene) O,O,O',O'-tetramethyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2160 + Phosphorothioic acid, O-ethyl O-methyl S-propyl ester + Phosphorothioic acid, O-ethyl O-methyl S-propyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2161 + Phosphorothioic acid, O-ethyl S-propyl ester + Phosphorothioic acid, O-ethyl S-propyl ester + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2162 + Phostebupirim + Phostebupirim + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2163 + Picloram + Picloram + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2164 + Piperonyl butoxide + Piperonyl butoxide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2165 + 4-Nitrophenol + p-Nitrophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2165 + p-Nitrophenol + p-Nitrophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2166 + Primisulfuron-methyl + Primisulfuron-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2167 + Profenofos + Profenofos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2168 + Profluralin + Profluralin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2169 + Promecarb + Promecarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2170 + Prometon + Prometon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2171 + Prometryn + Prometryn + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2172 + Pronamide + Pronamide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2173 + Propachlor + Propachlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2174 + Propanal, 2-methyl-2-(methylthio)-, oxime + Propanal, 2-methyl-2-(methylthio)-, oxime + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2175 + Propanil + Propanil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2176 + Propargite + Propargite + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2177 + Propazine + Propazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2178 + Propetamphos + Propetamphos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2179 + Propham + Propham + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2180 + Propiconazole + Propiconazole + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2181 + Propionic acid + Propionic acid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2182 + Propoxur + Propoxur + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2183 + Prosulfuron + Prosulfuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2184 + Prothiofos + Prothiofos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2185 + Pyrazon + Pyrazon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2186 + Pyrethrins + Pyrethrins + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2187 + Resmethrin + Resmethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2188 + Ronnel + Ronnel + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2189 + Secbumeton + Secbumeton + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2190 + S-Ethyl dipropylthiocarbamate + S-Ethyl dipropylthiocarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2191 + Siduron + Siduron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2192 + Silvex + Silvex + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2193 + Simazine + Simazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2194 + Simetone + Simetone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2195 + Simetryn + Simetryn + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2196 + Sodium methyldithiocarbamate + Sodium methyldithiocarbamate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2197 + Sulfometuron methyl + Sulfometuron methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2198 + Sulfotep + Sulfotep + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2199 + Sulprofos + Sulprofos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2200 + Swep + Swep + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2201 + Tau-fluvalinate + Tau-fluvalinate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2202 + Tebuconazole + Tebuconazole + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2203 + Tebuthiuron + Tebuthiuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2204 + Tefluthrin + Tefluthrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2205 + Temephos + Temephos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2206 + Terbacil + Terbacil + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2207 + Terbufos + Terbufos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2208 + Terbufos sulfone + Terbufos sulfone + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2209 + Terbufos sulfoxide + Terbufos sulfoxide + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2210 + Terbuthylazine + Terbuthylazine + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2211 + Terbutryn + Terbutryn + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2212 + Tetradifon + Tetradifon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2213 + Tetraethyl pyrophosphate + Tetraethyl pyrophosphate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2214 + Tetrapropyl dithiopyrophosphate + Tetrapropyl dithiopyrophosphate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2215 + Thiabendazole + Thiabendazole + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2216 + Thiacloprid + Thiacloprid + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2217 + Thiazopyr + Thiazopyr + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2218 + Thidiazuron + Thidiazuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2219 + Thifensulfuron-methyl + Thifensulfuron-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2220 + Thiobencarb + Thiobencarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2221 + Thiodicarb + Thiodicarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2222 + Thiofanox + Thiofanox + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2223 + Thionazin + Thionazin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2224 + Thiophanate-methyl + Thiophanate-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2225 + Toxaphene + Toxaphene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2226 + Tralomethrin + Tralomethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2227 + trans-1,3-Dichloropropene + trans-1,3-Dichloropropene + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2228 + trans-Chlordane + trans-Chlordane + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2229 + trans-Nonachlor + trans-Nonachlor + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2230 + Transpermethrin + Transpermethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2230 + trans-Permethrin + Transpermethrin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2231 + Triadimefon + Triadimefon + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2232 + Triallate + Triallate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2233 + Triasulfuron + Triasulfuron + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2234 + Triazine screen + Triazines mixture, unspecified + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2234 + Triazines mixture, unspecified + Triazines mixture, unspecified + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2235 + Tribenuron-methyl + Tribenuron-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2236 + Tribufos + Tribufos + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2237 + Trichloronate + Trichloronate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2238 + Trichlorophenol + Trichlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2238 + Trichlorophenols (all isomers) + Trichlorophenol + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2239 + Triclopyr + Triclopyr + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2240 + Tricyclazole + Tricyclazole + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2241 + Trifluralin + Trifluralin + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2242 + Triflusulfuron-methyl + Triflusulfuron-methyl + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2243 + Trimethacarb + Trimethacarb + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2244 + 4-Chlorophenylurea + Urea, (4-chlorophenyl)- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2244 + Urea, (4-chlorophenyl)- + Urea, (4-chlorophenyl)- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2245 + 3-(Trifluoromethyl)phenylurea + Urea, [3-(trifluoromethyl)phenyl]- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2245 + Urea, [3-(trifluoromethyl)phenyl]- + Urea, [3-(trifluoromethyl)phenyl]- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2246 + Urea, N-[5-(ethylsulfonyl)-1,3,4-thiadiazol-2-yl]-N,N'-dimethyl- + Urea, N-[5-(ethylsulfonyl)-1,3,4-thiadiazol-2-yl]-N,N'-dimethyl- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2247 + Phenylurea + Urea, phenyl- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2247 + Urea, phenyl- + Urea, phenyl- + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2248 + Vernolate + Vernolate + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2249 + Ziram + Ziram + Hydrosphere/Chemical/Organic/Pesticide/ + + + 2424 + Chem O2 demand + Chemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2424 + Chemical oxygen demand + Chemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2425 + Biochemical oxygen demand + Biochemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2425 + Ultimate biochemical oxygen demand + Biochemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2426 + Carbonaceous biochemical oxygen demand + Carbonaceous biochemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2426 + Ultimate carbonaceous biochemical oxygen demand + Carbonaceous biochemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2427 + Nitrogenous biochemical oxygen demand + Nitrogenous biochemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2427 + Ultimate nitrogenous biochemical oxygen demand + Nitrogenous biochemical oxygen demand + Hydrosphere/Chemical/Oxygen Demand/ + + + 2429 + Actinium-228 + Actinium-228 + Hydrosphere/Chemical/Radiochemical / + + + 2430 + Alpha emitting radium isotopes + Alpha emitting radium isotopes + Hydrosphere/Chemical/Radiochemical / + + + 2430 + Alpha-emitting isotopes of radium + Alpha emitting radium isotopes + Hydrosphere/Chemical/Radiochemical / + + + 2431 + Alpha radiation + Alpha radiation + Hydrosphere/Chemical/Radiochemical / + + + 2431 + Alpha radioactivity + Alpha radiation + Hydrosphere/Chemical/Radiochemical / + + + 2432 + Americium-241 + Americium-241 + Hydrosphere/Chemical/Radiochemical / + + + 2433 + Antimony-124 + Antimony-124 + Hydrosphere/Chemical/Radiochemical / + + + 2434 + Antimony-125 + Antimony-125 + Hydrosphere/Chemical/Radiochemical / + + + 2435 + Barium-140 + Barium-140 + Hydrosphere/Chemical/Radiochemical / + + + 2436 + Beryllium-7 + Beryllium-7 + Hydrosphere/Chemical/Radiochemical / + + + 2437 + Beta radiation + Beta radiation + Hydrosphere/Chemical/Radiochemical / + + + 2437 + Beta radioactivity + Beta radiation + Hydrosphere/Chemical/Radiochemical / + + + 2437 + Gross beta radioactivity + Beta radiation + Hydrosphere/Chemical/Radiochemical / + + + 2438 + Bismuth-212 + Bismuth-212 + Hydrosphere/Chemical/Radiochemical / + + + 2439 + Bismuth-214 + Bismuth-214 + Hydrosphere/Chemical/Radiochemical / + + + 2440 + Calcium-45 + Calcium-45 + Hydrosphere/Chemical/Radiochemical / + + + 2441 + Carbon-14 + Carbon-14 + Hydrosphere/Chemical/Radiochemical / + + + 2442 + Cerium-141 + Cerium-141 + Hydrosphere/Chemical/Radiochemical / + + + 2443 + Cerium-144 + Cerium-144 + Hydrosphere/Chemical/Radiochemical / + + + 2444 + Cesium-134 + Cesium-134 + Hydrosphere/Chemical/Radiochemical / + + + 2445 + Cesium-137 + Cesium-137 + Hydrosphere/Chemical/Radiochemical / + + + 2446 + Chlorine-36 + Chlorine-36 + Hydrosphere/Chemical/Radiochemical / + + + 2447 + Chromium-51 + Chromium-51 + Hydrosphere/Chemical/Radiochemical / + + + 2448 + Cobalt-57 + Cobalt-57 + Hydrosphere/Chemical/Radiochemical / + + + 2449 + Cobalt-58 + Cobalt-58 + Hydrosphere/Chemical/Radiochemical / + + + 2450 + Cobalt-60 + Cobalt-60 + Hydrosphere/Chemical/Radiochemical / + + + 2451 + Curium-242 + Curium-242 + Hydrosphere/Chemical/Radiochemical / + + + 2452 + Curium-244 + Curium-244 + Hydrosphere/Chemical/Radiochemical / + + + 2453 + Europium-152 + Europium-152 + Hydrosphere/Chemical/Radiochemical / + + + 2454 + Europium-155 + Europium-155 + Hydrosphere/Chemical/Radiochemical / + + + 2455 + Gamma radiation + Gamma radiation + Hydrosphere/Chemical/Radiochemical / + + + 2455 + Gamma radioactivity scan + Gamma radiation + Hydrosphere/Chemical/Radiochemical / + + + 2455 + Gross gamma radioactivity + Gamma radiation + Hydrosphere/Chemical/Radiochemical / + + + 2456 + Hafnium-175 + Hafnium-175 + Hydrosphere/Chemical/Radiochemical / + + + 2457 + Hafnium-181 + Hafnium-181 + Hydrosphere/Chemical/Radiochemical / + + + 2458 + Iodine-129 + Iodine-129 + Hydrosphere/Chemical/Radiochemical / + + + 2459 + Iodine-131 + Iodine-131 + Hydrosphere/Chemical/Radiochemical / + + + 2460 + Iodine-133 + Iodine-133 + Hydrosphere/Chemical/Radiochemical / + + + 2461 + Iron-59 + Iron-59 + Hydrosphere/Chemical/Radiochemical / + + + 2462 + Lanthanum-140 + Lanthanum-140 + Hydrosphere/Chemical/Radiochemical / + + + 2463 + Lead-210 + Lead-210 + Hydrosphere/Chemical/Radiochemical / + + + 2464 + Lead-212 + Lead-212 + Hydrosphere/Chemical/Radiochemical / + + + 2465 + Lead-214 + Lead-214 + Hydrosphere/Chemical/Radiochemical / + + + 2466 + Manganese-54 + Manganese-54 + Hydrosphere/Chemical/Radiochemical / + + + 2467 + Molybdenum-99 + Molybdenum-99 + Hydrosphere/Chemical/Radiochemical / + + + 2468 + Neodymium-147 + Neodymium-147 + Hydrosphere/Chemical/Radiochemical / + + + 2469 + Neptunium-239 + Neptunium-239 + Hydrosphere/Chemical/Radiochemical / + + + 2470 + Nickel-63 + Nickel-63 + Hydrosphere/Chemical/Radiochemical / + + + 2471 + Niobium-95 + Niobium-95 + Hydrosphere/Chemical/Radiochemical / + + + 2472 + Plutonium-238 + Plutonium-238 + Hydrosphere/Chemical/Radiochemical / + + + 2473 + Plutonium-239 + Plutonium-239 + Hydrosphere/Chemical/Radiochemical / + + + 2474 + Plutonium-239 and Plutonium-240 combined + Plutonium-239 and Plutonium-240 combined + Hydrosphere/Chemical/Radiochemical / + + + 2474 + Plutonium-239 plus plutonium-240 + Plutonium-239 and Plutonium-240 combined + Hydrosphere/Chemical/Radiochemical / + + + 2475 + Plutonium-241 + Plutonium-241 + Hydrosphere/Chemical/Radiochemical / + + + 2476 + Polonium-210 + Polonium-210 + Hydrosphere/Chemical/Radiochemical / + + + 2477 + Potassium-40 + Potassium-40 + Hydrosphere/Chemical/Radiochemical / + + + 2478 + Radium-224 + Radium-224 + Hydrosphere/Chemical/Radiochemical / + + + 2479 + Radium-226 + Radium-226 + Hydrosphere/Chemical/Radiochemical / + + + 2480 + Radium-228 + Radium-228 + Hydrosphere/Chemical/Radiochemical / + + + 2481 + Radon-222 + Radon-222 + Hydrosphere/Chemical/Radiochemical / + + + 2482 + Ruthenium-103 + Ruthenium-103 + Hydrosphere/Chemical/Radiochemical / + + + 2483 + Ruthenium-106 + Ruthenium-106 + Hydrosphere/Chemical/Radiochemical / + + + 2484 + Scandium-46 + Scandium-46 + Hydrosphere/Chemical/Radiochemical / + + + 2485 + Selenium-75 + Selenium-75 + Hydrosphere/Chemical/Radiochemical / + + + 2486 + Silver-108 + Silver-108 + Hydrosphere/Chemical/Radiochemical / + + + 2487 + Silver-110 + Silver-110 + Hydrosphere/Chemical/Radiochemical / + + + 2488 + Sodium-24 + Sodium-24 + Hydrosphere/Chemical/Radiochemical / + + + 2489 + Strontium Radionuclides + Strontium Radionuclides + Hydrosphere/Chemical/Radiochemical / + + + 2490 + Strontium-89 + Strontium-89 + Hydrosphere/Chemical/Radiochemical / + + + 2491 + Strontium-90 + Strontium-90 + Hydrosphere/Chemical/Radiochemical / + + + 2492 + Strontium-91 + Strontium-91 + Hydrosphere/Chemical/Radiochemical / + + + 2493 + Sulfur-35 + Sulfur-35 + Hydrosphere/Chemical/Radiochemical / + + + 2494 + Technetium-99 + Technetium-99 + Hydrosphere/Chemical/Radiochemical / + + + 2494 + Technetium-99 (metastable) + Technetium-99 + Hydrosphere/Chemical/Radiochemical / + + + 2495 + Tellurium-132 + Tellurium-132 + Hydrosphere/Chemical/Radiochemical / + + + 2496 + Thallium-208 + Thallium-208 + Hydrosphere/Chemical/Radiochemical / + + + 2497 + Thorium-228 + Thorium-228 + Hydrosphere/Chemical/Radiochemical / + + + 2498 + Thorium-230 + Thorium-230 + Hydrosphere/Chemical/Radiochemical / + + + 2499 + Thorium-232 + Thorium-232 + Hydrosphere/Chemical/Radiochemical / + + + 2500 + Tritium + Tritium + Hydrosphere/Chemical/Radiochemical / + + + 2501 + Uranium 238/234 ratio + Uranium 238/234 ratio + Hydrosphere/Chemical/Radiochemical / + + + 2501 + Uranium-238/Uranium-234 ratio + Uranium 238/234 ratio + Hydrosphere/Chemical/Radiochemical / + + + 2502 + Uranium-234 + Uranium-234 + Hydrosphere/Chemical/Radiochemical / + + + 2503 + Uranium-234 and/or uranium-235 and/or uranium-238 + Uranium-234 and/or uranium-235 and/or uranium-238 + Hydrosphere/Chemical/Radiochemical / + + + 2504 + Uranium-235 + Uranium-235 + Hydrosphere/Chemical/Radiochemical / + + + 2505 + Uranium-238 + Uranium-238 + Hydrosphere/Chemical/Radiochemical / + + + 2506 + Xenon-135 + Xenon-135 + Hydrosphere/Chemical/Radiochemical / + + + 2507 + Yttrium-91 + Yttrium-91 + Hydrosphere/Chemical/Radiochemical / + + + 2507 + Yttrium-91 (metastable) + Yttrium-91 + Hydrosphere/Chemical/Radiochemical / + + + 2508 + Zinc-65 + Zinc-65 + Hydrosphere/Chemical/Radiochemical / + + + 2509 + Zirconium, niobium-95 + Zirconium/Niobium-95 + Hydrosphere/Chemical/Radiochemical / + + + 2509 + Zirconium/Niobium-95 + Zirconium/Niobium-95 + Hydrosphere/Chemical/Radiochemical / + + + 2510 + Zirconium-95 + Zirconium-95 + Hydrosphere/Chemical/Radiochemical / + + + 5002 + Carbon-13 + Carbon-13 + Hydrosphere/Chemical/Stable Isotopes/ + + + 5003 + Deuterium + Deuterium + Hydrosphere/Chemical/Stable Isotopes/ + + + 5004 + Lithium-7 + Lithium-7 + Hydrosphere/Chemical/Stable Isotopes/ + + + 5005 + Nitrogen-15 + Nitrogen-15 + Hydrosphere/Chemical/Stable Isotopes/ + + + 5006 + Oxygen-18 + Oxygen-18 + Hydrosphere/Chemical/Stable Isotopes/ + + + 5007 + Sulfur-34 + Sulfur-34 + Hydrosphere/Chemical/Stable Isotopes/ + + + 40 + Temperature + Temperature + Hydrosphere/Physical/ + + + 84 + Volume + Volume + Hydrosphere/Physical/ + + + 122 + Length + Length + Hydrosphere/Physical/ + + + 130 + Water content + Water content + Hydrosphere/Physical/ + + + 139 + Energy + Energy + Hydrosphere/Physical/ + + + 23 + Area + Area + Hydrosphere/Physical/ + + + 36 + Density + Density + Hydrosphere/Physical/ + + + 52 + Pressure + Pressure + Hydrosphere/Physical/ + + + 61 + Flux + Flux + Hydrosphere/Physical/ + + + + + Level + Hydrosphere/Physical/ + + + 28 + Velocity + Velocity + Hydrosphere/Physical/ + + + 87 + Optical + Optical + Hydrosphere/Physical/ + + + 97 + Water + Water + Hydrosphere/Physical/ + + + 26 + Area, atmosphere + Area, atmosphere + Hydrosphere/Physical/Area/ + + + 24 + Area, ice + Area, ice + Hydrosphere/Physical/Area/ + + + 27 + Cloud cover + Cloud cover + Hydrosphere/Physical/Area/Area, atmosphere/ + + + 25 + Ice cover + Ice cover + Hydrosphere/Physical/Area/Area, ice/ + + + 127 + Ice cover, floating or solid + Ice cover, floating or solid + Hydrosphere/Physical/Area/Area, ice/ + + + 38 + Water, specific gravity + Water, specific gravity + Hydrosphere/Physical/Density/ + + + 39 + Density of water + Density of water + Hydrosphere/Physical/Density/ + + + 5032 + Air, water vapor density + Air, water vapor density + Hydrosphere/Physical/Density/ + + + 147 + Energy, flux + Energy, flux + Hydrosphere/Physical/Energy/ + + + 148 + Soil heat flux + Soil heat flux + Hydrosphere/Physical/Energy/Energy, flux/ + + + 149 + Sensible heat flux + Sensible heat flux + Hydrosphere/Physical/Energy/Energy, flux/ + + + 150 + Latent heat flux + Latent heat flux + Hydrosphere/Physical/Energy/Energy, flux/ + + + 151 + Outgoing photosynthetically-active radiation + Radiation, outgoing PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 151 + Radiation, outgoing PAR + Radiation, outgoing PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 141 + Radiation, reflected + Radiation, reflected + Hydrosphere/Physical/Energy/Energy, flux/ + + + 141 + Reflected solar radiation + Radiation, reflected + Hydrosphere/Physical/Energy/Energy, flux/ + + + 142 + Net radiation + Radiation, net + Hydrosphere/Physical/Energy/Energy, flux/ + + + 142 + Net solar radiation + Radiation, net + Hydrosphere/Physical/Energy/Energy, flux/ + + + 142 + Radiation, net + Radiation, net + Hydrosphere/Physical/Energy/Energy, flux/ + + + 143 + Incident solar radiation + Radiation, incident + Hydrosphere/Physical/Energy/Energy, flux/ + + + 143 + Radiation, incident + Radiation, incident + Hydrosphere/Physical/Energy/Energy, flux/ + + + 144 + Downward solar radiation + Radiation, downward + Hydrosphere/Physical/Energy/Energy, flux/ + + + 144 + Radiation, downward + Radiation, downward + Hydrosphere/Physical/Energy/Energy, flux/ + + + 144 + Solar irradiation, local + Radiation, downward + Hydrosphere/Physical/Energy/Energy, flux/ + + + 145 + Radiation, total shortwave + Radiation, total shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 145 + Total shortwave radiation + Radiation, total shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 146 + Incoming par + Radiation, incoming PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 146 + Incoming photosynthetically-active radiation + Radiation, incoming PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 146 + Light, photosynthetic active radiation (PAR) + Radiation, incoming PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 146 + Radiation, incoming PAR + Radiation, incoming PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5036 + Sunshine duration + Sunshine duration + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5009 + Incoming longwave radiation + Radiation, incoming longwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5009 + Radiation, incoming longwave + Radiation, incoming longwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5010 + Incoming shortwave radiation + Radiation, incoming shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5010 + Radiation, incoming shortwave + Radiation, incoming shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5011 + Incoming ultraviolet a radiation + Radiation, incoming UV-A + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5011 + Radiation, incoming UV-A + Radiation, incoming UV-A + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5012 + Incoming ultraviolet b radiation + Radiation, incoming UV-B + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5012 + Radiation, incoming UV-B + Radiation, incoming UV-B + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5013 + Net longwave radiation + Radiation, net longwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5013 + Radiation, net longwave + Radiation, net longwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5014 + Net photosynthetically-active radiation + Radiation, net PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5014 + Radiation, net PAR + Radiation, net PAR + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5015 + Net shortwave radiation + Radiation, net shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5015 + Radiation, net shortwave + Radiation, net shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5016 + Outgoing longwave radiation + Radiation, outgoing longwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5016 + Radiation, outgoing longwave + Radiation, outgoing longwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5017 + Outgoing shortwave radiation + Radiation, outgoing shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 5017 + Radiation, outgoing shortwave + Radiation, outgoing shortwave + Hydrosphere/Physical/Energy/Energy, flux/ + + + 82 + Flux, dissolved gas + Flux, dissolved gas + Hydrosphere/Physical/Flux/ + + + 62 + Flux, precipitation + Flux, precipitation + Hydrosphere/Physical/Flux/ + + + 66 + Flux, wind + Flux, wind + Hydrosphere/Physical/Flux/ + + + 71 + Flux, evaporation + Flux, evaporation + Hydrosphere/Physical/Flux/ + + + 76 + Flux, discharge + Flux, discharge + Hydrosphere/Physical/Flux/ + + + 77 + Discharge, groundwaterflow + Discharge, groundwaterflow + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 78 + Discharge, stream + Discharge, stream + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 78 + Streamflow + Discharge, stream + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 80 + Depth of flow in pipe or conduit + Discharge, in conduit + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 80 + Discharge, in conduit + Discharge, in conduit + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 80 + Discharge, per batch + Discharge, in conduit + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 80 + Flow, in conduit pipe or treatment plant + Discharge, in conduit + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 80 + Flow, per batch + Discharge, in conduit + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 81 + Storm water flow + Storm water flow + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 5031 + Discharge, well flow rate + Discharge, well flow rate + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 5023 + Discharge, unspecified + Discharge, unspecified + Hydrosphere/Physical/Flux/Flux, discharge/ + + + 83 + Carbon dioxide + Carbon dioxide flux + Hydrosphere/Physical/Flux/Flux, dissolved gas/ + + + 83 + Carbon dioxide flux + Carbon dioxide flux + Hydrosphere/Physical/Flux/Flux, dissolved gas/ + + + 72 + Evaporation total + Evaporation, actual + Hydrosphere/Physical/Flux/Flux, evaporation/ + + + 72 + Evaporation, actual + Evaporation, actual + Hydrosphere/Physical/Flux/Flux, evaporation/ + + + 73 + Evaporation, potential + Evaporation, potential + Hydrosphere/Physical/Flux/Flux, evaporation/ + + + 74 + Evapotranspiration, actual + Evapotranspiration, actual + Hydrosphere/Physical/Flux/Flux, evaporation/ + + + 75 + Evapotranspiration, potential + Evapotranspiration, potential + Hydrosphere/Physical/Flux/Flux, evaporation/ + + + 5035 + Transpiration + Transpiration + Hydrosphere/Physical/Flux/Flux, evaporation/ + + + 63 + Dry days before precipitation event + Dry periods + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 63 + Dry period preceding precipitation + Dry periods + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 63 + Dry periods + Dry periods + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 64 + Precipitation duration + Precipitation duration + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 64 + Precipitation event duration + Precipitation duration + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 64 + Precipitation, duration of storm event + Precipitation duration + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 65 + Precipitation + Precipitation + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 65 + Precipitation amount + Precipitation + Hydrosphere/Physical/Flux/Flux, precipitation/ + + + 67 + Wind direction + Wind direction + Hydrosphere/Physical/Flux/Flux, wind/ + + + 68 + Wind gust direction + Wind gust direction + Hydrosphere/Physical/Flux/Flux, wind/ + + + 70 + Wind run + Wind run + Hydrosphere/Physical/Flux/Flux, wind/ + + + 124 + Stream width + Stream width + Hydrosphere/Physical/Length/ + + + 5033 + Visibility + Visibility + Hydrosphere/Physical/Length/ + + + 5028 + Distance + Distance + Hydrosphere/Physical/Length/ + + + 5022 + Unspecified + Unspecified + Hydrosphere/Physical/Level/ + + + 15 + Level, lake + Level, lake + Hydrosphere/Physical/Level/ + + + 19 + Depth of hole, below land surface datum + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Depth of well, below land surface datum + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Depth to bottom from water surface, at sampling location + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Depth to water level below land surface + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Depth to water level, below land surface datum (LSD) + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Depth, from ground surface to well water level + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Groundwater level + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Groundwater level other + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Water level groundwater + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Water level in well, depth from a reference point + Groundwater level + Hydrosphere/Physical/Level/ + + + 19 + Water level, depth below measuring point + Groundwater level + Hydrosphere/Physical/Level/ + + + 20 + Level, ocean + Level, ocean + Hydrosphere/Physical/Level/ + + + 4 + Level, ice + Level, ice + Hydrosphere/Physical/Level/ + + + 6 + Level, snow + Level, snow + Hydrosphere/Physical/Level/ + + + 11 + Level, stream + Level, stream + Hydrosphere/Physical/Level/ + + + 5 + Ice thickness + Ice thickness + Hydrosphere/Physical/Level/Level, ice/ + + + 16 + Gage height, lake + Gage height, lake + Hydrosphere/Physical/Level/Level, lake/ + + + 17 + Wave height, lake + Wave height, lake + Hydrosphere/Physical/Level/Level, lake/ + + + 5021 + Depth of pond or reservoir + Water depth, lake + Hydrosphere/Physical/Level/Level, lake/ + + + 5021 + Maximum depth of lake + Water depth, lake + Hydrosphere/Physical/Level/Level, lake/ + + + 5021 + Mean depth of lake + Water depth, lake + Hydrosphere/Physical/Level/Level, lake/ + + + 5021 + Water depth, lake + Water depth, lake + Hydrosphere/Physical/Level/Level, lake/ + + + 5021 + Depth of lake + Water depth, lake + Hydrosphere/Physical/Level/Level, lake/ + + + 21 + Tide stage + Tide stage + Hydrosphere/Physical/Level/Level, ocean/ + + + 22 + Wave height, ocean + Wave height, ocean + Hydrosphere/Physical/Level/Level, ocean/ + + + 9 + Depth, snow cover + Snow depth + Hydrosphere/Physical/Level/Level, snow/ + + + 9 + Snow depth + Snow depth + Hydrosphere/Physical/Level/Level, snow/ + + + 12 + Gage height stream + Gage height, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 12 + Gage height, stream + Gage height, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 12 + Height, gage + Gage height, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 12 + Stage stream + Gage height, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 12 + Stream gage height + Gage height, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 12 + Stream stage + Gage height, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 13 + Mean depth of stream + Water depth, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 13 + Water depth, stream + Water depth, stream + Hydrosphere/Physical/Level/Level, stream/ + + + 14 + Water depth, cross-sectional averaged + Water depth, cross-sectional averaged + Hydrosphere/Physical/Level/Level, stream/ + + + 88 + Optical, water + Optical, water + Hydrosphere/Physical/Optical/ + + + 89 + Light attenuation + Light attenuation + Hydrosphere/Physical/Optical/Optical, water/ + + + 93 + Refractivity + Refractivity + Hydrosphere/Physical/Optical/Optical, water/ + + + 94 + Secchi depth + Secchi depth + Hydrosphere/Physical/Optical/Optical, water/ + + + 95 + Absorbance + SUVA 254 + Hydrosphere/Physical/Optical/Optical, water/ + + + 95 + Specific UV absorbance at 254nm of hydrophilic acid fraction of DOC + SUVA 254 + Hydrosphere/Physical/Optical/Optical, water/ + + + 95 + Specific UV absorbance at 254nm of hydrophobic acid fraction of DOC + SUVA 254 + Hydrosphere/Physical/Optical/Optical, water/ + + + 95 + Specific UV absorbance at 254nm of transphilic organic acid fraction of DOC + SUVA 254 + Hydrosphere/Physical/Optical/Optical, water/ + + + 95 + SUVA 254 + SUVA 254 + Hydrosphere/Physical/Optical/Optical, water/ + + + 96 + Transparency, water, Secchi disc + Water transparency, Secchi disc + Hydrosphere/Physical/Optical/Optical, water/ + + + 96 + Water transparency, Secchi disc + Water transparency, Secchi disc + Hydrosphere/Physical/Optical/Optical, water/ + + + 90 + Light attenuation coefficient + Light attenuation coefficient + Hydrosphere/Physical/Optical/Optical, water/Light attenuation/ + + + 91 + Depth to 50 percent of surface light + Light attenuation, depth at 50% + Hydrosphere/Physical/Optical/Optical, water/Light attenuation/ + + + 91 + Depth to 50 percent surface light + Light attenuation, depth at 50% + Hydrosphere/Physical/Optical/Optical, water/Light attenuation/ + + + 91 + Light attenuation, depth at 50% + Light attenuation, depth at 50% + Hydrosphere/Physical/Optical/Optical, water/Light attenuation/ + + + 92 + Depth to 1 percent of surface light + Light attenuation, depth at 99% + Hydrosphere/Physical/Optical/Optical, water/Light attenuation/ + + + 92 + Light attenuation, depth at 99% + Light attenuation, depth at 99% + Hydrosphere/Physical/Optical/Optical, water/Light attenuation/ + + + 53 + Pressure, air + Pressure, air + Hydrosphere/Physical/Pressure/ + + + 57 + Pressure, water + Pressure, water + Hydrosphere/Physical/Pressure/ + + + 54 + Vapor pressure + Vapor pressure + Hydrosphere/Physical/Pressure/Pressure, air/ + + + 55 + Atmospheric pressure + Atmospheric pressure + Hydrosphere/Physical/Pressure/Pressure, air/ + + + 56 + Barometric pressure + Barometric pressure + Hydrosphere/Physical/Pressure/Pressure, air/ + + + 56 + Barometric pressure corrected + Barometric pressure + Hydrosphere/Physical/Pressure/Pressure, air/ + + + 56 + Barometric pressure uncorrected + Barometric pressure + Hydrosphere/Physical/Pressure/Pressure, air/ + + + 58 + Partial pressure, inert gases + Partial pressure, inert gases + Hydrosphere/Physical/Pressure/Pressure, water/ + + + 59 + Osmotic pressure + Osmotic pressure + Hydrosphere/Physical/Pressure/Pressure, water/ + + + 59 + Pressure, osmotic + Osmotic pressure + Hydrosphere/Physical/Pressure/Pressure, water/ + + + 60 + Partial pressure of dissolved gases + Partial pressure of dissolved gases + Hydrosphere/Physical/Pressure/Pressure, water/ + + + 60 + Total partial pressure of dissolved gases + Partial pressure of dissolved gases + Hydrosphere/Physical/Pressure/Pressure, water/ + + + 5030 + Wellhead pressure + Wellhead pressure + Hydrosphere/Physical/Pressure/Pressure, water/ + + + 5026 + Intragravel water temperature + Temperature, intragravel water + Hydrosphere/Physical/Temperature/ + + + 5026 + Temperature, intragravel water + Temperature, intragravel water + Hydrosphere/Physical/Temperature/ + + + 5027 + 1 meter below water surface temperature + Temperature, 1 meter below water surface + Hydrosphere/Physical/Temperature/ + + + 5027 + Temperature, 1 meter below water surface + Temperature, 1 meter below water surface + Hydrosphere/Physical/Temperature/ + + + 45 + Snow temperature + Temperature, snow + Hydrosphere/Physical/Temperature/ + + + 45 + Temperature, snow + Temperature, snow + Hydrosphere/Physical/Temperature/ + + + 47 + Soil temperature + Temperature, soil + Hydrosphere/Physical/Temperature/ + + + 47 + Temperature, soil + Temperature, soil + Hydrosphere/Physical/Temperature/ + + + 49 + Air temperature + Temperature, air + Hydrosphere/Physical/Temperature/ + + + 49 + Temperature, air + Temperature, air + Hydrosphere/Physical/Temperature/ + + + 51 + Temperature, water + Temperature, water + Hydrosphere/Physical/Temperature/ + + + 51 + Water temperature + Temperature, water + Hydrosphere/Physical/Temperature/ + + + 30 + Discharge velocity + Velocity, stream + Hydrosphere/Physical/Velocity/ + + + 30 + Stream velocity + Velocity, stream + Hydrosphere/Physical/Velocity/ + + + 30 + Velocity at point in stream + Velocity, stream + Hydrosphere/Physical/Velocity/ + + + 30 + Velocity, stream + Velocity, stream + Hydrosphere/Physical/Velocity/ + + + 32 + Velocity, groundwater + Velocity, groundwater + Hydrosphere/Physical/Velocity/ + + + 33 + Velocity, wind + Velocity, wind + Hydrosphere/Physical/Velocity/ + + + 34 + Sustained wind speed + Sustained wind speed + Hydrosphere/Physical/Velocity/Velocity, wind/ + + + 35 + Wind gust + Wind gust + Hydrosphere/Physical/Velocity/Velocity, wind/ + + + 35 + Wind gust velocity absolute + Wind gust + Hydrosphere/Physical/Velocity/Velocity, wind/ + + + 35 + Wind velocity absolute + Wind gust + Hydrosphere/Physical/Velocity/Velocity, wind/ + + + 35 + Wind velocity ordin + Wind gust + Hydrosphere/Physical/Velocity/Velocity, wind/ + + + 85 + Volume, lake + Volume, lake + Hydrosphere/Physical/Volume/ + + + 86 + Reservoir storage + Reservoir storage + Hydrosphere/Physical/Volume/Volume, lake/ + + + 131 + Water content, air + Water content, air + Hydrosphere/Physical/Water content/ + + + 137 + Water content, soil + Water content, soil + Hydrosphere/Physical/Water content/ + + + 5024 + Water content, snow + Water content, snow + Hydrosphere/Physical/Water content/ + + + 132 + Humidity + Humidity + Hydrosphere/Physical/Water content/Water content, air/ + + + 133 + Relative humidity + Relative humidity + Hydrosphere/Physical/Water content/Water content, air/Humidity/ + + + 134 + Wet bulb temperature + Wet bulb temperature + Hydrosphere/Physical/Water content/Water content, air/Humidity/ + + + 135 + Dry bulb temperature + Dry bulb temperature + Hydrosphere/Physical/Water content/Water content, air/Humidity/ + + + 136 + Dew point temperature + Dew point temperature + Hydrosphere/Physical/Water content/Water content, air/Humidity/ + + + 5034 + Vapor pressure deficit + Vapor pressure deficit + Hydrosphere/Physical/Water content/Water content, air/Humidity/ + + + 10 + Snow water content + Snow water equivalent + Hydrosphere/Physical/Water content/Water content, snow/ + + + 10 + Snow water equivalent + Snow water equivalent + Hydrosphere/Physical/Water content/Water content, snow/ + + + 10 + Volumetric water content + Snow water equivalent + Hydrosphere/Physical/Water content/Water content, snow/ + + + 10 + Water content of snow + Snow water equivalent + Hydrosphere/Physical/Water content/Water content, snow/ + + + 138 + Moisture content + Soil Moisture + Hydrosphere/Physical/Water content/Water content, soil/ + + + 138 + Moisture soil + Soil Moisture + Hydrosphere/Physical/Water content/Water content, soil/ + + + 138 + Soil Moisture + Soil Moisture + Hydrosphere/Physical/Water content/Water content, soil/ + + + 108 + Water, dissolved solids + Water, dissolved solids + Hydrosphere/Physical/Water/ + + + 98 + Water, suspended solids + Water, suspended solids + Hydrosphere/Physical/Water/ + + + 111 + Water, descriptive + Water, descriptive + Hydrosphere/Physical/Water/ + + + 112 + Odor, atmospheric + Odor, atmospheric + Hydrosphere/Physical/Water/Water, descriptive/ + + + 113 + Gas bubble severity + Gas bubble severity + Hydrosphere/Physical/Water/Water, descriptive/ + + + 114 + Odor at 60 degrees Celsius, threshold odor number + Odor threshold number + Hydrosphere/Physical/Water/Water, descriptive/ + + + 114 + Odor at room temperature, threshold odor number + Odor threshold number + Hydrosphere/Physical/Water/Water, descriptive/ + + + 114 + Odor threshold number + Odor threshold number + Hydrosphere/Physical/Water/Water, descriptive/ + + + 115 + Trash, Debris, Floatables + Trash, Debris, Floatables + Hydrosphere/Physical/Water/Water, descriptive/ + + + 116 + Apparent color + Color + Hydrosphere/Physical/Water/Water, descriptive/ + + + 116 + Color + Color + Hydrosphere/Physical/Water/Water, descriptive/ + + + 117 + Severity + Severity + Hydrosphere/Physical/Water/Water, descriptive/ + + + 118 + Severity, turbidity + Severity, turbidity + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 119 + Detergent suds, severity + Severity, detergent + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 119 + Severity, detergent + Severity, detergent + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 120 + Floating debris, severity + Severity, floating debris + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 120 + Floating garbage, severity + Severity, floating debris + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 120 + Severity, floating debris + Severity, floating debris + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 120 + Severity, floating garbage + Severity, floating debris + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 121 + Floating sludge, severity + Severity, floating sludge + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 121 + Severity, floating sludge + Severity, floating sludge + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 129 + Severity, flow + Severity, flow + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 129 + Streamflow, severity + Severity, flow + Hydrosphere/Physical/Water/Water, descriptive/Severity/ + + + 110 + Solids, total dissolved + Solids, total dissolved + Hydrosphere/Physical/Water/Water, dissolved solids/ + + + 110 + Total dissolved solids + Solids, total dissolved + Hydrosphere/Physical/Water/Water, dissolved solids/ + + + 99 + Residue on evaporation, dried at 105 degrees Celsius + Residue, total filterable (dried at 105 C) + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 99 + Residue, total filterable (dried at 105 C) + Residue, total filterable (dried at 105 C) + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 99 + Residue, water, filtered + Residue, total filterable (dried at 105 C) + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 100 + Settleable solids + Settleable solids + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 100 + Solids, settleable + Settleable solids + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 101 + Solids, total + Solids, total + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 101 + Total solids + Solids, total + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 102 + Solids, total suspended + Solids, total suspended + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 102 + Total suspended solids + Solids, total suspended + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 103 + Solids, volatile suspended + Solids, volatile suspended + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 103 + Volatile suspended solids + Solids, volatile suspended + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 104 + Fixed suspended solids + Solids, fixed suspended + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 104 + Solids, fixed suspended + Solids, fixed suspended + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 105 + Turbidity + Turbidity + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 106 + Suspended sediment + Suspended sediment + Hydrosphere/Physical/Water/Water, suspended solids/ + + + 107 + Surface area, suspended sediment + Surface area, suspended sediment + Hydrosphere/Physical/Water/Water, suspended solids/ + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/Resources/measure_16x16.png b/Source/Plugins/Plugins.ShaleNetwork/Resources/measure_16x16.png new file mode 100644 index 00000000..d82e568c Binary files /dev/null and b/Source/Plugins/Plugins.ShaleNetwork/Resources/measure_16x16.png differ diff --git a/Source/Plugins/Plugins.ShaleNetwork/Resources/measure_32x32.png b/Source/Plugins/Plugins.ShaleNetwork/Resources/measure_32x32.png new file mode 100644 index 00000000..95cdfd22 Binary files /dev/null and b/Source/Plugins/Plugins.ShaleNetwork/Resources/measure_32x32.png differ diff --git a/Source/Plugins/Plugins.ShaleNetwork/SearchPlugin.cs b/Source/Plugins/Plugins.ShaleNetwork/SearchPlugin.cs new file mode 100644 index 00000000..47d84219 --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/SearchPlugin.cs @@ -0,0 +1,195 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.Composition; +using System.Diagnostics; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Windows.Forms; +using DotSpatial.Controls; +using DotSpatial.Controls.Header; +using DotSpatial.Data; +using DotSpatial.Projections; +using HydroDesktop.Common; +using HydroDesktop.Common.Tools; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.Interfaces.PluginContracts; +using HydroDesktop.Help; +using Msg = Plugins.ShaleNetwork.MessageStrings; +using DotSpatial.Topology; +using DotSpatial.Symbology; +using Plugins.ShaleNetwork.Settings.UI; +using Plugins.ShaleNetwork.Measure; + +namespace Plugins.ShaleNetwork +{ + public class SearchPlugin : Extension + { + #region Fields + + private SimpleActionItem _Shale; + private readonly string _searchKey = SharedConstants.SearchRootkey; + private MapFunctionMeasure _Painter; + private HydroDesktop.Plugins.Search.SearchPlugin searchPlugin; + + [Import("Shell")] + private ContainerControl Shell { get; set; } + + #endregion + + #region Plugin operations + + public override void Activate() + { + AddSearchRibbon(); + base.Activate(); + + App.ExtensionsActivated += AppOnExtensionsActivated; + searchPlugin = (HydroDesktop.Plugins.Search.SearchPlugin)App.GetExtension("HydroDesktop.Plugins.Search"); + + if (searchPlugin != null) + searchPlugin.setSearchTabCaption(MessageStrings.Shale); + } + + public override void Deactivate() + { + App.HeaderControl.RemoveAll(); + base.Deactivate(); + + if (searchPlugin != null) + searchPlugin.setSearchTabCaption("Search"); + } + + #endregion + + #region Private methods + + private void AddSearchRibbon() + { + var head = App.HeaderControl; + + App.HeaderControl.Add(new SimpleActionItem(_searchKey, "Measure", MeasureTool_Click) { GroupCaption = Msg.Controls, SmallImage = ShaleNetwork.Properties.Resources.measure_16x16, LargeImage = ShaleNetwork.Properties.Resources.measure_32x32 }); + + head.Add(new SimpleActionItem(_searchKey, "SN Website", SN_Website_Click) { GroupCaption = Msg.Shale }); + head.Add(new SimpleActionItem(_searchKey, "Contact SN", Contact_SN_Click) { GroupCaption = Msg.Shale }); + + _Shale = new SimpleActionItem(_searchKey, Msg.Shale_Data, Shale_Click) + { + LargeImage = ShaleNetwork.Properties.Resources.SN_Logo, + GroupCaption = Msg.Keyword, + ToolTipText = Msg.Shale_Tooltip + }; + + App.HeaderControl.Add(_Shale); + + } + + private void AppOnExtensionsActivated(object sender, EventArgs eventArgs) + { + searchPlugin = (HydroDesktop.Plugins.Search.SearchPlugin)App.GetExtension("HydroDesktop.Plugins.Search"); + + if (searchPlugin != null) + searchPlugin.setSearchTabCaption(MessageStrings.Shale); + } + + #region Search + + void SN_Website_Click(object sender, EventArgs e) + { + OpenUri(ShaleNetwork.Properties.Settings.Default.SN_Website); + } + + void Contact_SN_Click(object sender, EventArgs e) + { + OpenUri(ShaleNetwork.Properties.Settings.Default.Contact_SN); + } + + private void OpenUri(string uriString) + { + if (WebUtilities.IsInternetAvailable() == false) + { + MessageBox.Show("Internet connection not available.", "Could not open URI", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + try + { + WebUtilities.OpenUri(uriString); + } + catch (NullReferenceException) + { + MessageBox.Show("No URI provided.", "Could not open URI", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (UriFormatException ex) + { + MessageBox.Show("Invalid URI format for '" + uriString + "'.\n(" + ex.Message + ")", "Could not open URI", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (Exception ex) + { + if (ex.Message == "The system cannot find the path specified") + { + MessageBox.Show("Could not find the target at '" + uriString + "'.", "Could not open URI", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + else + { + MessageBox.Show("Could not open target at '" + uriString + "'.\n(" + ex.Message + ")", "Could not open URI", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + #endregion + + #region Keywords + + void Shale_Click(object sender, EventArgs e) + { + if (searchPlugin != null && searchPlugin.IsActive) + { + //ShaleDialog dialog = new ShaleDialog(); + if (ShaleDialog.ShowDialog(searchPlugin._searchSettings.KeywordsSettings) == DialogResult.OK) + { + var selectedKeywords = searchPlugin._searchSettings.KeywordsSettings.SelectedKeywords.ToList(); + + if (selectedKeywords.Count > 1) + { + searchPlugin._dropdownKeywords.MultiSelect = true; + + // This code has no other purpose than to immediately trigger the text to change to Multiple Selected. + // Without it, you have to hover or click on something in the ribbon for the change to occur. + searchPlugin._dropdownKeywords.Enabled = false; + searchPlugin._dropdownKeywords.Enabled = true; + + } + else if (selectedKeywords.Count == 1) + { + searchPlugin._dropdownKeywords.MultiSelect = false; + searchPlugin._dropdownKeywords.SelectedItem = selectedKeywords[0]; + } + else + { + searchPlugin._dropdownKeywords.MultiSelect = false; + searchPlugin._dropdownKeywords.SelectedItem = null; + } + + searchPlugin.UpdateKeywordsCaption(); + } + } + } + + private void MeasureTool_Click(object sender, EventArgs e) + { + if (_Painter == null) + _Painter = new MapFunctionMeasure(App.Map); + + if (!App.Map.MapFunctions.Contains(_Painter)) + App.Map.MapFunctions.Add(_Painter); + + App.Map.FunctionMode = FunctionMode.None; + App.Map.Cursor = Cursors.Cross; + _Painter.Activate(); + } + + #endregion + + #endregion + } +} diff --git a/Source/Plugins/Plugins.ShaleNetwork/Settings.cs b/Source/Plugins/Plugins.ShaleNetwork/Settings.cs new file mode 100644 index 00000000..fe09e69c --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Settings.cs @@ -0,0 +1,33 @@ +namespace Plugins.ShaleNetwork.Properties +{ + + + // This class allows you to handle specific events on the settings class: + // The SettingChanging event is raised before a setting's value is changed. + // The PropertyChanged event is raised after a setting's value is changed. + // The SettingsLoaded event is raised after the setting values are loaded. + // The SettingsSaving event is raised before the setting values are saved. + internal sealed partial class Settings + { + + public Settings() + { + // // To add event handlers for saving and changing settings, uncomment the lines below: + // + // this.SettingChanging += this.SettingChangingEventHandler; + // + // this.SettingsSaving += this.SettingsSavingEventHandler; + // + } + + private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) + { + // Add code to handle the SettingChangingEvent event here. + } + + private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) + { + // Add code to handle the SettingsSaving event here. + } + } +} diff --git a/Source/Plugins/Plugins.ShaleNetwork/Settings/UI/ShaleDialog.Designer.cs b/Source/Plugins/Plugins.ShaleNetwork/Settings/UI/ShaleDialog.Designer.cs new file mode 100644 index 00000000..69979d79 --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Settings/UI/ShaleDialog.Designer.cs @@ -0,0 +1,241 @@ +namespace Plugins.ShaleNetwork.Settings.UI +{ + partial class ShaleDialog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ShaleDialog)); + this.radioButton2 = new System.Windows.Forms.RadioButton(); + this.radioButton1 = new System.Windows.Forms.RadioButton(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.checkBox2 = new System.Windows.Forms.CheckBox(); + this.checkBox3 = new System.Windows.Forms.CheckBox(); + this.checkBox6 = new System.Windows.Forms.CheckBox(); + this.checkBox7 = new System.Windows.Forms.CheckBox(); + this.checkBox8 = new System.Windows.Forms.CheckBox(); + this.checkBox4 = new System.Windows.Forms.CheckBox(); + this.checkBox5 = new System.Windows.Forms.CheckBox(); + this.checkBox9 = new System.Windows.Forms.CheckBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // radioButton2 + // + this.radioButton2.AutoSize = true; + this.radioButton2.Location = new System.Drawing.Point(76, 12); + this.radioButton2.Name = "radioButton2"; + this.radioButton2.Size = new System.Drawing.Size(201, 17); + this.radioButton2.TabIndex = 1; + this.radioButton2.TabStop = true; + this.radioButton2.Text = "Find sites with ALL selected variables"; + this.radioButton2.UseVisualStyleBackColor = true; + this.radioButton2.CheckedChanged += new System.EventHandler(this.radioButton1_CheckedChanged); + // + // radioButton1 + // + this.radioButton1.AutoSize = true; + this.radioButton1.Location = new System.Drawing.Point(76, 35); + this.radioButton1.Name = "radioButton1"; + this.radioButton1.Size = new System.Drawing.Size(204, 17); + this.radioButton1.TabIndex = 0; + this.radioButton1.TabStop = true; + this.radioButton1.Text = "Find sites with ANY selected variables"; + this.radioButton1.UseVisualStyleBackColor = true; + // + // button1 + // + this.button1.DialogResult = System.Windows.Forms.DialogResult.OK; + this.button1.Location = new System.Drawing.Point(76, 270); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(91, 28); + this.button1.TabIndex = 2; + this.button1.Text = "OK"; + this.button1.UseVisualStyleBackColor = true; + // + // button2 + // + this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.button2.Location = new System.Drawing.Point(186, 270); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(91, 28); + this.button2.TabIndex = 3; + this.button2.Text = "Cancel"; + this.button2.UseVisualStyleBackColor = true; + // + // checkBox1 + // + this.checkBox1.AutoSize = true; + this.checkBox1.Location = new System.Drawing.Point(19, 33); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Size = new System.Drawing.Size(58, 17); + this.checkBox1.TabIndex = 4; + this.checkBox1.Text = "Barium"; + this.checkBox1.UseVisualStyleBackColor = true; + // + // checkBox2 + // + this.checkBox2.AutoSize = true; + this.checkBox2.Location = new System.Drawing.Point(19, 81); + this.checkBox2.Name = "checkBox2"; + this.checkBox2.Size = new System.Drawing.Size(64, 17); + this.checkBox2.TabIndex = 5; + this.checkBox2.Text = "Bromide"; + this.checkBox2.UseVisualStyleBackColor = true; + this.checkBox2.CheckedChanged += new System.EventHandler(this.checkBox2_CheckedChanged); + // + // checkBox3 + // + this.checkBox3.AutoSize = true; + this.checkBox3.Location = new System.Drawing.Point(19, 126); + this.checkBox3.Name = "checkBox3"; + this.checkBox3.Size = new System.Drawing.Size(64, 17); + this.checkBox3.TabIndex = 6; + this.checkBox3.Text = "Chloride"; + this.checkBox3.UseVisualStyleBackColor = true; + // + // checkBox6 + // + this.checkBox6.AutoSize = true; + this.checkBox6.Location = new System.Drawing.Point(102, 33); + this.checkBox6.Name = "checkBox6"; + this.checkBox6.Size = new System.Drawing.Size(74, 17); + this.checkBox6.TabIndex = 9; + this.checkBox6.Text = "Discharge"; + this.checkBox6.UseVisualStyleBackColor = true; + // + // checkBox7 + // + this.checkBox7.AutoSize = true; + this.checkBox7.Location = new System.Drawing.Point(102, 126); + this.checkBox7.Name = "checkBox7"; + this.checkBox7.Size = new System.Drawing.Size(61, 17); + this.checkBox7.TabIndex = 10; + this.checkBox7.Text = "Sodium"; + this.checkBox7.UseVisualStyleBackColor = true; + this.checkBox7.CheckedChanged += new System.EventHandler(this.checkBox7_CheckedChanged); + // + // checkBox8 + // + this.checkBox8.AutoSize = true; + this.checkBox8.Location = new System.Drawing.Point(190, 33); + this.checkBox8.Name = "checkBox8"; + this.checkBox8.Size = new System.Drawing.Size(70, 17); + this.checkBox8.TabIndex = 11; + this.checkBox8.Text = "Strontium"; + this.checkBox8.UseVisualStyleBackColor = true; + // + // checkBox4 + // + this.checkBox4.AutoSize = true; + this.checkBox4.Location = new System.Drawing.Point(190, 81); + this.checkBox4.Name = "checkBox4"; + this.checkBox4.Size = new System.Drawing.Size(130, 17); + this.checkBox4.TabIndex = 12; + this.checkBox4.Text = "Total Dissolved Solids"; + this.checkBox4.UseVisualStyleBackColor = true; + // + // checkBox5 + // + this.checkBox5.AutoSize = true; + this.checkBox5.Location = new System.Drawing.Point(190, 126); + this.checkBox5.Name = "checkBox5"; + this.checkBox5.Size = new System.Drawing.Size(141, 17); + this.checkBox5.TabIndex = 13; + this.checkBox5.Text = " Total Suspended Solids"; + this.checkBox5.UseVisualStyleBackColor = true; + // + // checkBox9 + // + this.checkBox9.AutoSize = true; + this.checkBox9.Location = new System.Drawing.Point(102, 81); + this.checkBox9.Name = "checkBox9"; + this.checkBox9.Size = new System.Drawing.Size(68, 17); + this.checkBox9.TabIndex = 14; + this.checkBox9.Text = "Methane"; + this.checkBox9.UseVisualStyleBackColor = true; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.checkBox9); + this.groupBox1.Controls.Add(this.checkBox5); + this.groupBox1.Controls.Add(this.checkBox4); + this.groupBox1.Controls.Add(this.checkBox8); + this.groupBox1.Controls.Add(this.checkBox7); + this.groupBox1.Controls.Add(this.checkBox6); + this.groupBox1.Controls.Add(this.checkBox1); + this.groupBox1.Controls.Add(this.checkBox2); + this.groupBox1.Controls.Add(this.checkBox3); + this.groupBox1.Location = new System.Drawing.Point(12, 69); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(336, 178); + this.groupBox1.TabIndex = 15; + this.groupBox1.TabStop = false; + // + // ShaleDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.ControlLightLight; + this.ClientSize = new System.Drawing.Size(361, 310); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Controls.Add(this.radioButton1); + this.Controls.Add(this.radioButton2); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "ShaleDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Shale Data"; + this.Load += new System.EventHandler(this.ShaleDialog_Load); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.RadioButton radioButton2; + private System.Windows.Forms.RadioButton radioButton1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.CheckBox checkBox2; + private System.Windows.Forms.CheckBox checkBox3; + private System.Windows.Forms.CheckBox checkBox6; + private System.Windows.Forms.CheckBox checkBox7; + private System.Windows.Forms.CheckBox checkBox8; + private System.Windows.Forms.CheckBox checkBox4; + private System.Windows.Forms.CheckBox checkBox5; + private System.Windows.Forms.CheckBox checkBox9; + private System.Windows.Forms.GroupBox groupBox1; + } +} \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/Settings/UI/ShaleDialog.cs b/Source/Plugins/Plugins.ShaleNetwork/Settings/UI/ShaleDialog.cs new file mode 100644 index 00000000..d333c543 --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Settings/UI/ShaleDialog.cs @@ -0,0 +1,142 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using HydroDesktop.Plugins.Search.Settings; +using System.Diagnostics; + +namespace Plugins.ShaleNetwork.Settings.UI +{ + public partial class ShaleDialog : Form + { + #region Constructors + + public ShaleDialog() + { + InitializeComponent(); + } + + #endregion + + #region Public methods + + public static DialogResult ShowDialog(KeywordsSettings settings) + { + if (settings == null) throw new ArgumentNullException("settings"); + + using (var form = new ShaleDialog()) + { + var res = new List(); + + if (SearchSettings.AndSearch == false) + { + form.radioButton1.Checked = true; + } + else if (SearchSettings.AndSearch == true) + { + form.radioButton2.Checked = true; + } + + foreach (Control c in form.groupBox1.Controls) + { + if (c is CheckBox) + { + + if (settings.SelectedKeywords.Contains(c.Text)) + { + ((CheckBox)c).Checked = true; + } + else + { + ((CheckBox)c).Checked = false; + } + + + if (c.Text == "Discharge") + { + if (settings.SelectedKeywords.Contains("Discharge, stream")) + { + ((CheckBox)c).Checked = true; + } + } + if (c.Text == "Total Dissolved Solids") + { + if (settings.SelectedKeywords.Contains("Solids, total dissolved")) + { + ((CheckBox)c).Checked = true; + } + } + if (c.Text == "Total Suspended Solids") + { + if (settings.SelectedKeywords.Contains("Solids, total suspended")) + { + ((CheckBox)c).Checked = true; + } + } + } + } + + if (form.ShowDialog() == DialogResult.OK) + { + foreach (Control c in form.groupBox1.Controls) + { + if (c is CheckBox) + { + if (((CheckBox)c).Checked == true) + { + if (c.Text == "Discharge") + { + res.Add("Discharge, stream"); + } + else + { + res.Add(c.Text); + } + } + } + } + + settings.SelectedKeywords = res; + + if (form.radioButton1.Checked == true) + { + SearchSettings.AndSearch = false; + } + else if (form.radioButton2.Checked == true) + { + SearchSettings.AndSearch = true; + } + + } + + return form.DialogResult; + } + } + + #endregion + + private void checkBox2_CheckedChanged(object sender, EventArgs e) + { + + } + + private void checkBox7_CheckedChanged(object sender, EventArgs e) + { + + } + + private void radioButton1_CheckedChanged(object sender, EventArgs e) + { + + } + + private void ShaleDialog_Load(object sender, EventArgs e) + { + + } + } +} diff --git a/Source/Plugins/Plugins.ShaleNetwork/Settings/UI/ShaleDialog.resx b/Source/Plugins/Plugins.ShaleNetwork/Settings/UI/ShaleDialog.resx new file mode 100644 index 00000000..1ee7847e --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/Settings/UI/ShaleDialog.resx @@ -0,0 +1,1154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAUAAAAAAAEAIABcrAAAVgAAADAwAAABACAAqCUAALKsAAAgIAAAAQAgAKgQAABa0gAAGBgAAAEA + IACICQAAAuMAABAQAAABACAAaAQAAIrsAACJUE5HDQoaCgAAAA1JSERSAAABAAAAAQAIBgAAAFxyqGYA + ACAASURBVHic7L1rsCXXdR72rbV39+lz7rnnPubOE4MBMASGeBEcSCAIPiRCIglTEhWKkvVKWYpTFUVV + caqcVCXl8o/8SyqlclUSV9mVimNXLBdjy3ZiSy7J8YO2ZcVFMTStB01JJIumQIoiKRIAgZn7OKe79175 + sdbe3X1mQIAggMG90ws1OPec04/dfXqvvR7f+hZhlNtGnnzyyRLArJrOFlVVPQUAv/wP/8Ffv8XDGuUW + Ct/qAYwyyii3TvytHsAor5987N9/ZgHgirvjgXPu3kf+nH38t+11CSDempGNcqtkVAC3kcQYGaAqRpkH + 8mfs49EKvI1lVAC3kVRvfnwPwBPx7JXTzeMf3gWA6b/+Gw/b1586euarh7dudKPcChkVwG0kbrpZAbgT + G4tdXLhSAQAxn7Ovf//WjWyUWyWjArgNZMLwAHw4/8AeJrP74/bZeZwVAAC+8vZHbbOP4ev/4NotG+Qo + t0RGBXB7iAdQxa1ze7Q4/aBsLLxsTAAAvHvhqm1T3bLRjXLLZFQAt4H4M5cWAPYEtBe3zlZSzRhBv5Oz + 92kw8BtfXGxOJ3OBLPeP6vbWjXaU11NGBXAbCFcbFwFcbYkeiHc+shAmuEa/kzc9oRbAs1+5SMCSQF8D + sH/LBjvK6yqjAjjBkn/c7fMVCNvw5VyIAGIgCgBAiooBgAlz3jm3APAcjr54awY8yusuowI42cIAQI+8 + 9xEi/mne3tsN8xkQBVwr5ifc+XAJAJ7wp9yF+54B8HfwlS8+d+uGPMrrKSMIZJRRbmMZLYATLMXWzoMA + 9tqLV9+BO+5/TCYbQCMgEUA0ChidpgPloe/7j+Ldj7Zy7Znfnf32R78EYHkYsLx1ox/l9ZBRAZxkIQIB + LAQmYoi+16/sVSh/wiBm5Pej3A4yKoATLJN3/NiTAL67mc0fCXsXAAHQNiAApDFAcKOWQHPp0W3EAPrk + P3oH3fkQA/g0nv69T92akY/yesmoAE6wkJ8sQHQGzDMUJRACKAZAOgsApgik3PD2xYKJdwEZgUG3gYwK + 4ATK9vbiIoBSHnzPQ5hsPELbFxYURYt9JVX8mgqIivmRooCAwNsXrobHfvQMYrjm/vDTvyNAjMAIDDqh + MiqAkynbAFXYOnsO890LqOZMAkAkb5BcfUl4AHYAM6ScXaCtswtp6zMAeIwInGwZFcAJlOIt33cVwHZd + zXdlcw8oKlBoAREIBINJbUqBYoSIgHYuzMQXnp774zsn5y8/COD5w69+4Qu34DJGeR1kVAAnUNz2mbcD + uCDVxpm4dZbRNuAQdILbNuk1OwQhgoiA3TvmtH0WWB1cJuevAngawKgATqiMCuCEyNbWJgBsA0A49+Yz + ID4HP6kgooE+W+ml5waoSPcqAjgGuACV1S5dfuw+QGr/5c8xALQjZdiJk1EBnCy5DADtfe96nIrJJakW + 3J/8nRK4URGQAYNQTgDvQRub9/N9j+9JjAv8xt/5e7ZZ/XpcxCivn4wK4IQIn77EMAsAvmTxpRb9WNQ/ + T3ix/60bAiYiFvd3Jct0USI0VXH64hxAbL/x5VEBnDAZFcAJkfLNTwDAnwOAo9P37MrGDqNegZo6T37p + WftJaP2jugEoIO7evU3bd2zLM1+8ytP5jwC4BuD/es0vZJTXVcZioFFGuY1lTPMec5nO5jMAD2K68OVf + +JX/FwDiHQ94FBXQNoDENX+f0DcBOs9AzDuwtGBR6r9nvrTvfvsffwUSn17+7//lj9lu+6sXcSFGOV4y + ugAnQxgAg51ZdEO9Tje86X/SuQc3rAZEAIGJ2UvsnpVx7p8cGRXAMZf43R/aA/Dz4ILbs1eU3UcEqJc2 + fwnSm9kiAhFBiBr1l6BBQnbO4IE2vdsGEgIwWVTy1g9cxOrAz9/82I/aYT7y7Gc+OaYET4CMCuC4i594 + ABfAjjGZ6Wf1IUgERDSo7h14AjfBBQzsAomqC9gzNnZKkKuIee+1uoxRbo2MCuCYCk03twFcaIjv5bd+ + 4BEQAcsjAIALDQCBcw7EBIBARJAY0baKCGxbZQXtMgPqAzDZ9qzKg5gh5QQIzbx57MM/AAAH//h//eus + oKDDOIKDjrWMCuD4SgXggoDOyem7LwBAtElNEkAAIhNYOLsCEIHEiBgjYjDgj637kQAiQiQCk05vcqJu + gS8BX5SyfV7biEmsoBWCY0PRYy6jAjiewvSW954Dufdg5/wZbOwAIEirOJ2Y5qQIhEj9exbEEBCsKCgJ + 5SBgBIQAIgREMDFEIkgEsjyEtIHj3mX1MXYvPMbz3QjgY/GLnxq7CR1jGRXA8RON+O/ccYGc/wBmixkW + Z3SyL3UuBlg8L0QQsfr53iGEFjFoaT9bcCCXBVulYKILEIpgYSURaVuICDdn7lsAALviPVQiAvgdKEBo + lGMqowI4ZlKeurgAsAizrTPYOruQzb0KNqkprexkeH8IBOalB0DiOibgZgnDPkbAYMQxHVezjHz31UuI + Abj2jUXxH/7dNQB1kzTLKMdKRgVwzIScuwzgYdrYfbs8/P4rYAe0SzPr+3h/ICIAQogxr+K9bWzqZ0vA + MgZkakDioGhIiEClegD0lvd9kCCIn/5XvwiNBXwdYzehYymjAjgmouTdYLd3sQJoWybVLLADsesV+qxD + dMjYP2ltm/R5twsRZb4AuQnUJykFHcyERQTEbkFn7toG8Dy+NlIGHEcZFcAxEQEqAvzGu3/iSSqrn6tP + v2m+OnMRsW3RXv/mjTsYqEcn7nquX3p/JTM/KmgIljEggJkTtbi6E622CYj3vG0GIhSf+9h/wpcffR7A + X1197Qsfe80ufpTXTMZioFFGuY1ltACOifjLj34QwJWjxR3vpzc9fkmIgcMXusDfutm+XgJ8g9xYByaU + eAIIECCmwiAaxgty/cB3/fBTsXk/5Auf/Gz1qY9GAF9Z7r/wpVd2haPcChkVwDERAnkQJgLy5DwnI15S + Fc9LVOi8VNnnyynwueEY7DycB4gK6LM0WpTHTEYF8AaXsijPAPD+ff/Zn6Jy8s64d3EvuAISW8SmBiS1 + AO4CfTlYl5d/KwjqE4Hk2bxGCZJSAf3Nc1bBMgZR/4o7FwAQ/DNPv889+bNXIPIPm1/7K18CgDAiBI+F + jArgDS4iUhGRp9lijyazC/BlCWZINGgvehH8tbncy+jjpWyAQaegm2wqgwMHAATxGyDnAPZ7VE4hErdf + 2VWOcqtkVABvcJm97YNPAdjGqYuXsHW24nLKFBswIqKzlToig38ArQEYegaa/+8TfvTTf2sfdEpA1pOC + yTIgCATcriCBgbP3npHNUws89+W3zi69+Z0Anrv+pc/+/mtyQ0Z5VWVUAG9w4cnsrQDOyHRrDzsXPNoa + FBsIRZDjDsIr3WSWaPM4AoMpLDfL8N8keJg0B61/vxYEDA2IGNg8tcDm7gLL65eI6ApEvgRgVADHQEYF + 8AaUrb2zDOAiALgHv+desDsXq9k8dfVJuXohW41JZ3yMRu6RFAHDJj2rEmBAwpAHgGjd3pc10uB+J6E4 + 2IeiABQAX0KcA23sXOTv/uC7EOO8/PLn/g2AWEcZmYTfwDIqgDeuXAEAd8+jj1BZXWinc1vJDdmnNb6W + BaCbgH2M7YcI0faJUQAWYwVaaxJ6Az0wbpJDTErDlIAo1FiKCTCZgmZbl/niQ3vS1hWAj0A1xqgA3sAy + KoA3kBTQoD6dfZMvTp2/AgA0mZUoKxA7Jfi0bfstviISln/dn9cDDiz63qtuenNGoL4ZsH7OBC1OGEGS + CMQAlFOPrbMVVgfb1ZW3XwZQ15/5+POv7G6M8nrIqADeQCLajdfTxk5Z3vf4zwNA3Dm/wHQTvDwAQmum + PAM9dyBNcXYOABCty09K2yFqjCACcGQMAMYfGlsjBiF0ucEUCFxvIJI7CgdTNqp0KDTgBqDF6Qq75yt8 + /Q/vd4tTPwPgGwA+9SrfplFeRRkVwBtIFnc/wADmDrHEZN79NtJLqa+DfiiF/3tfyHBbsqg90XDFXxcx + HsHuIL3j9c/bTzuu9x4EAGKPzb0ZRDY25otSP6f6cP+Fb+NujPJ6yKgA3kAy2drdA+jPgMTjnT/5IABd + 7dslHEfl54vDSa5VeerXx7SYW6mvAytKyPKEUSIIEUSAI7UWVjB2YLME2Dmwozz9ZV2pAIiZSZhBxCCJ + 6gaIg4BB81MX3Xv/8z8rbf0V/Ntf+b8BgIDfwggOesPJCN0cZZTbWEYL4A0gE+fmAHaby2+/v7z/Hf8t + mNG6CQCAjeyDzEfvELxqelOPybfJR5Rc2w/RmAGJbtcmMI+5Fd7ARG1MVkREDDSE/6S033qqIAZNQUan + a7sEUKgBV3C8+BBjub83fern/wcAaJ/9yofcr3+k1r1GeaPIqADeCKKpPAaRJ+crIe6R9d0ker8e1och + /3phfLLYAFlAL/n/tJ4y7O30UgVDL7ldGgMR4DzAzMTOaIRe7tFHeT1lVABvANn8nh+7H8BPymTj3MHZ + B2YAga4pyUfBDBDgHOtk7ZF56mQG0oocUkQ/dvl6AGAypCAnxUAwPBDYYgFUFGoBxEQFZvyB/QAfdTmH + jD0QMaJRIyCNLhcLQVDGxz78CADEv/nnPzi79EAN4Deuf+kPxtTgG0RGBfAGEHJ+DqLLQrwdJ5seImCj + +Jai0Ch+Xs0T8Ge4qObJun7sbhdACEwa2OPkCrClAw1HkBXKDXUAa8fVk9pYlFJcMw0KMqIYAAhjc29h + AzxHRDVkfObeSDL+GLdQzt99+QKAM8W9j16lC1euxsm8Wpa6IrdLVQCpg4+PTicpM8gmLSL1F2iQrdBM + QzOdSI0CMkugRwmIaFqk8IUqBo6Ioj0EYoYN6/G8N1ZgVwyuw7EpDwgktoo+bHQn8RrLcI9/+IcQmhi+ + /vQnJl/5XAvgcNW2I0rwFsuoAG6t7AK4mzcW9xR33n85kEMslOQzsgXnalUAQQTMDBLJqRsh7tLw6CwC + h27Fz/v24gb90mGyo4nqHQSKYAgCRIsJbPYTgMKbu+B8nvB6DD1+CD23gbQpiRQaAnDb5x8jicC1Z/YA + fF0UIjwqgFssowK4BTJheAG4+K4fukzOfQ9tnr4Syrl28bFUeZ5sqTgnqn8OW52JyMx3AjkHAsCs+zhO + y3sC51gdQAIGUY/ua21snHBFzEA6LtT9KF1SFvoaojoJyR2gNF6g6zTUrvTAe5cqEQF/5bNXq0e+fxvA + J+vf+mdPv4q3dZRXIKMCuDVSEuD53Juucln9iMx25nG2C8QWvj6AEOAmJQCgscm2OlppT7825nhACgwW + rtKDFqoAmHSFjzpD18A86gbYYTOnYMIX6SxmMBGcc2AICrMASksZ1mDz/YNOf0vsJUsgtSAHoD0LAMTz + 982JCPj9f/Venm09B+0l8PSrf2tH+XZkVAC3QE4/+u5zAOaYLU7Lxk4l1byU0CpiL8/VXrmuKOoOsOKf + 2FF5CzHatgGB0Da6Tcrtp+01e2CWxFpUL6cYjVcA6Jv2w9Rjbi2QIMBIY+0mvcQ+HRnl92Tf0/a5XcTg + 5fCFvdnO6V2Aloff/PrhK7yVo3yHMiqAWyCTrd33AXgg7NzxhNzz3RdijJDlEQAxUE83uRyxtuquNJjW + Nq02+WwDmrqBSEBTq5kdVhqcKyclmBm+9CCn3YGdY0REdQVAcDa1ndNz1bHNBUMJ8sPMIBCc09mfcbyJ + gsiASUEEEm3yx2jXkQwOU1Zto4VDlx97nO56K+JnP/ZpgJYAvgDgM6/FfR7lpWVUAK+jnD592oMA2tiu + AJqR82Wus7FgWwfS6VsAnQmfU380BPEA3b4pnx9jzCt3avOVu/8k0pBcU5D2T+k8K/XtRQl6w8iBwfU6 + oeFYeukGQyeCGEIMOF/S1pm5AJX75tcZI0LwlsioAF5HEcgjBCqr9/zMT7qN7SfqjT1uJx6haYAQNNBn + sywF9FKuPc0jzx7FxGuqrtKJvlqtICKoD9XfXi6PdFvv4RxbgY8DiEFsP7mlEhMkuDElkYBAcATHDkkJ + CLo4QW4rCKs0ZI1FRNj4szKRDmq8PNDXjVOA86DtC3/av+PHn5K2/sXV05/+PLTH4PLVv+ujfCsZi4FG + GeU2ltECeI3FAyCgBIC9H/nzfxGgM+HUXffHnTsYoYYPDRwEsWBEETQG521rTZEzU2b9ATR918Xf1Fz3 + tqr7uRGChBYQoGlqtEH7B0Tr/UekOXz2uk9R6KvzDiBC2zQIEkGRgEZjEg5mHaQTO8MHWFYhB/jSfwZZ + 1rJjGzebZdEcQBoCXbx/Dxeu7NIf/fsfmD34jgmAz17//d/8yGvxG4zy4jIqgNdT2M2IaA7SjjoUWwDI + PjdJwvf3POobML9rxxR0/jqZWR+HUMB+Wo6SL34DMUhHKZbz+v33Kd/fG9MAbYgERhrGDoYFSj3cAHsm + RyzEJRHNAFTf4s6N8hrJqABeYynvfMAD+AkAOLjriYeprHYnXFZueWAAG13lJQqYCRCGAGihyiH51CFI + F9yzyZlouVJAz5kCKLxmAxwrG3BTN2iaRhVBCBAAda3HD41mEHyR0H0qxAkEhBuURVIIfSQgYCAirRTq + KMotxuDW+ws6r9VJZy5doff93BmsDj85ffpTHwNRfbR//fPf2V0f5eXKqABecyEmwiUACNXWgquNuRBr + zJsAMuhdgtYyD7v8dFH62AvSKcyWjRtQwb/96j8NylEqGQiaEYghIFgOX2LiDTQgEJGOJSuWNIZu5e/g + w4Ju2ve+6+GRu+wF2ZiGpoBmAhxQVgte7M3l8NqXQbQQjDTir6eMCuA1kslkUgLYi4TKvePHfwAADlup + sGpQhxfATCgKD++95uy9gwBaptvzt0Mb1AKIoQPbmFWQfXJLEQRJYCFnygV5Zorl5xNk17vhT6+FPALH + DCaD/9pEjzEOJ3uCKVsYgDN4aAhAAqGrOkzaKCuRqIGNag7yE6bymQubT/7HPwnBN5tf+98SkWg7pgZf + WxkVwGskIuKJaBfAjE7f/RgALINUoIhmtQJLxGRSoixLVQLTSlNtGMYAEv+evnZmt85lCw3a3Epvo2EE + lGMEthL3WIKAzCCcz5MQe1Yq3KEAu24E6ROd3MnXh32WGpUgbw2QujXokwH2MA2IQDkFbewAodmlzVNP + isjX0D2X7Uvc5lG+QxkVwKssKa9aPfrUgpi/F5N5GbfPeQA2GbqJ3LQtYhQ416I13xzOAQK0ZqK3bZsn + u6SA34C5l5SQEx0QKJKZ6KIEoCEEhNbmkkTNAiQfPbkNNnLHOmmZekqgqze213T6TjX0X3NREHWm/zob + qJYsmxKRAEyqku56yx5CwM5Dj1+1zT7xzO99YiQSfQ1lVACvjbDbPrNHzv+0+Imn8/fqfV5eByQiklgg + rs4sv2xgGl9qERAlAE2TJi4AUAb19JH4iQU4rcehtY5AQedsqGvEtjV4r047lyr7kiIwzeUI8KYAXA+E + 2BetLwACUu1Cr7yYdPKn9F+2ANamMROBzS0gCcB0XtF9b78oq4M5++Ip2+y3MJYMv6YyKoBXWTbuvG8G + YBfkztGpOxfkCg6pWs4Qcl1QjQYVNwJBzIDYNHGS795ffS2ZZqtoPmKaUJkGKKXrUyswyoG6IYi4kxtY + hgYig7+pG0nv/fDIfXhyHn5e/XsWBiEhFb2/+613AkD9uU/OtxbbNQSHL1x/frQEXgMZFcCrLMTubgDv + A7t73NUPPCJArolPprqS83VsPFGiAXwEbaOw3jTVOt9co/MhdOm/BBf2iQfAwD1wlKsIAUBCQAwBjgiO + PUgEPsUNMuQ4nQemJyRDf/NqTsnDV2XCFHNNAEFjD5KUjAUcJZhCC13fASJzM5h752SgKAHi+fRtH/pZ + AFh95hP/B4BDIXwOwFgx+BrIqABeJWFD4Ui1WRJxBT8p+4Gzvgikm5wD7PzNVl2Vdfd7+H5tlZXhWm1f + Dpf3F5H+FsNk35o/sPZ3D2YE6n/9YvXHN4yv2zYpJTffnmH3PCDii2vPGz5ilFdTRgXw6skegG156L1P + 8d6l/05mWyzVJiAC1xjBp0Xe21UNSdV6ObIvg5hakVZzA+hwL3DX+duaMUjWw8oKbpytsrC4Qmhb5JLA + 9LmlAR2G6bmUJuyH91JQj+2TJmhwwdnqH62ngO6jW7ERjEaLYXjvjMTEdSs/JYyAZTTqlZ7t0tUSAOZv + efJ/RLuKcXX089e++JlPk8YSR1fgVZSxGGiUUW5jeWmbcJSXJRvv+vE/C+CH6b633437330VIpz5+TMY + xtbUxOhj+zJ3WQAtziE4K9JJ+zqL3qcsQIgRbRsQQsT1a/sAgNosDe6t6mIrtab3HLwrQMwoJlMAQGmg + Hm/EIW3b5riDphgFDI1RrBolKI1cWCDR7AQjAyXnwQZDZmMhdRZbKCeVGR/Omocgn2P4GFIGGvHyoAYE + q1//W3+l/YN/80UAH/3Sv/v13/+2f5xRXlRGF+DVEuYZAdsgnsGXjBiAsEpf2qsMnnXq/S9h+5N5nF7t + W5089j0zmzXfGer92IH64T2Ofzu2pu+GOn+Qvuvn/m8i+QzJV+/7+32fYXD8zm0hqxDMYxgogbX7AgBl + Vep4aE5Ec1hV5SivnowK4DuU6YV73wngDL/pbe+hUxevYrqoIEFRbjx80NMcZW+r4NrE11dd/VLCQF8F + wqRR9jYgSou2bbFaLpUQxAhAkiSUH9s5nOXcNWYQQeBcC5DqCDIfYQxK90uaXhQRNDFAdKG3E2g8IYYW + IoLQNIhtAHsP5wuwIxRFodfoE56htluR4D8GHjbEIgi5mtHZfaNCadD8/e94qrj0wLL5+pee2/ncb10D + 8Pw3r73w3Cv9zUbpZFQA37mcAXAJk40ztHV2F87nyDmx/ZVWvJQFtDQYDRRAKujh4UKaswUEECGEgBgF + bRPQNG1H/YU1q2FtZU8NRPWQ0tvOJpuhBkm0BkAML6BBRliQr9NkREY1DkFoladQ8vEY8M4UnnEURKMy + NyOoq2MgMCcwVLrkLrdBRODp/CI7F+mFZ/YAzCEjc9CrJaMCeIVSTao9AMyPfeh74IqHZePU5eAmOokM + dpuINyWBeBL4xZp/pnIbCCEGo/JuLT6QJnAKGySikKZFaFuE0Nqqmo8yiC0IEbxlAxwznHNZKxAxiiLV + AlghUQiaPoyaQ1R6r5AVAaGbqCG0eg6zABQ6zPaqhUTJwmjr0F2z3YJ1BZeSE0RseCC7b6saIMDxBtNk + ysFN31498aNTiPym++d/8+uiVzxmBb4DGRXAK5dtAJ527rhK5fTxWG6U4kpQbMHBstW54q7zcRX9xyDi + jos/5e3FJk9vl+S3h6DVgE1do20axBisKSe6UtwUD4iK9yfvNPjnGM77DifADJ/SjGmf0FUZkuX8Uw0g + kYNAchoyJCUVAyDKAMzOqZKgdEGa4kw4IIJaADEPWF+0VFnP45IJkABStrObzFm7EfmHeWP7jMTwLIB/ + NrSrRnklMiqAb0O0D4/K9js++DiAWX3q3K5MNn2oNjgi9oJchA5yu5a/t2WwY+DvyxCmm8p/k5kdQwOJ + bSbdTPvk5H1vjGwrv9J7d5kG6rkKAy0Em/Ri1GMGBUrjltib+OgKfdgpdblaAekc5uknJGO+KOmCiAn8 + k9iHMqBoGNiMsQVJhJufmssd90MOnr9n+82PPgLg2rOf/e3P3eSnGuVlyqgAvg2xZ5gBoNg9/2NEtMdn + Lt0t2+er5mgfoV7qo2stuzKzbwoGDtBzdsx1k9gkuQ+NrYLtaqVKIAbAinA6VKCh9NYyDN55lEUJsswB + M6O09GLaNmaq327SGSwp83mkXgUiOpYE79WeBQz2XtOTrECfNDgRQay7Wp6uNLn/imE9wEBMAbQrjQXs + nt/jUxf25I9+7zF2/huAfAHAqAC+AxkVwLchp688wgDOAYAszm4L0QLMjBiyqZ4CXDdH3faxdb1tunxg + DsqlWv8UaZcY7bN1jF76k7rUwbCiZ/BPco/AtYnYG2Hm+0wjlTiwOLosg1o6edUfXFBKEUq3bQ9l2L/s + 7lW/z8kGSoHApC2VpgRlNec77r9DJO7PvvgHcwDx8OBgrBV4BTIqgG9D2LkSwE8BQLz8xGMoqgV8BWqW + KFhQTMpB7b2V9vd82nQkyaZ4F7k3c5oZIoJ6paCbw/3rNvlTMK3Lp+d9HBtfYHckjehHQKKCeURAUSAh + FeCYGS9DUJKg6w7Ejkz5qK+fHpbJxkwne/Lvk5VAGl/IhnyqZATMzDfzKeESSCe5Y0a05qcigtZ2SUHM + iAjtNswQ9sDWmQf9d//glbjc/wR+85d/A1oynFiERvk2ZFQAL0PmGzMA4AhiV22UgDL3qHQ+bV4ALayd + wTk3tQZuLl1RULzhMz1XWkPJUgS98wzOJ2bGiy3+Ztj3/O18zJccy7DI9wYw0XCv9aP0jod+xLLbW1Im + Y7gvpYDiMCiiuxADxJ7nOxUA9gcHeSzNi17RKOvybTyat69sbMxmBFye3P2WxakP/9f/AgBe2LqnEvZQ + 81/UB/ZeU3RNO7Csy2oGAF2tf4IIM2trb1Ke/hgD2tUSIoLnn/nGcB/qJl4OLXKvkKdP92UmeZpPzJYK + 9B7VdAZAgToAUNgxG0s9NFGLfWNsIVG7FUnQrMJ0YwMA4L11ArLUZB+FyEYsys4hxoCj/ef1ixQ38C6T + knTFTUkhycBi8i51HNKx1W1EEEGAUzjyC39yzf/2//MFEXnmmV/+yz9sQ1iOCuDly1gMNMoot7GMLsC3 + EFYFyZO3/+i95MtfQDn139y8VAHA8voLEBFU1RSux+jbNg3q1dIALQr4ca117rHgmXCyZLWbbowR9Sog + tgEHVvcu1jQkVc5ocU2XItRFMvnvPXcEnfsQUpEO1EhgxwhNo3GGqVolwbAKkRMCkXP6UqClxb6cgJhQ + TNRqCNaNGNnH133YAnoxtFge7RtMOEGArWcBcY8iXMz3DyACPKWCKEj/5wAAIABJREFUp5Q1sUxC7K7D + AWAjGqHZ5pwf/9CDaFf7e3/4//1XdtD/5au/+/ERKfgyZVQAL0eIPbHbFWIfWSdBjB3YxeL2um2KtqOX + 3uofioa8/xr11n2ihPyw5+17/7uhU0+KkvfPn//ufO0clBOlBouyvr2Z8ZSi95SPkPADKXA3lC6OMOgE + JJLP1W3Z3yaZ/L14QHchLx5LGVwrAcxMk2kphJKItuyr0ar9NmRUAN9Cppceugzg8QbuXnf/e64IM8fD + 6wAUDgsRtHUNaVuUsynKksFUKO9viKitSCeBYQoj97CAeReYixEhaMTeG1dXogNPjz7fkP7r9Qi0NNkA + QtRTMhL1XCEGLNtgmABL5TlrT2ZQXU7AISbtLMwMZ2NqrRw4rNQCmBjJh5imqJsadV0jhoCmrm2O6iBK + 7wxTICB0aUVGVwOQ+xuka894aKt1sM3U8AiaFnQF4Mtq4/v+zJ8GgBf+yd/4lZ3trX0AX/jm8y+MqcGX + kFEBfAshom0A9wJ0lyxObwuQ4bc5T58wAACcI4TIcM4jSJsnfmxTHT2sMEd3yN9HdQVEBM46A3Xtu9Pk + HqyX63F0y6PTDd+qlZDScsoeFEWx/7pl2icOTH9K2H7j7hORrJSQeQoZjrRKEaRKr21ahBCUzhxAaW5D + Tl/m6+gyFrmxyFqCYLDy9ywmypkXs1qYvVucvmyb7kLLhr+EUV5SRgVwEynKyTYEC9z7tod58/R7ZbG3 + iKnxpk3m1GCzbQMiCYqmQbtyYHKoqgKhJbRLvb1NbeW6lst3Ft3Wids99fos20pM3cTX7/rpNJ0wUYbb + pL9ypV2C2SJNOMvyi05WAHA6P9G2QbeJEbFttVtwjCBihGY48Se5bE+titWqQRsCVk2DVa0FShKjwoOR + egPGFCBAjJTdJB2vWUW5V0lyFdIHViRkqCHHYrhsQhSjQN88ywCw8Zb3fAhX3rZsD69//fpH//aSgLaR + sV7gxWRUADeXbRDOYGP3Pjpz9xMopxzZ2aRPhfqduRohCE2L6Fu4kjGpSjQ1wRcFRATLI7MaYmtltAbN + pQ4IRFYerA0+Bf1OWikfTuig+4kHcAjbs5ReyhymrwZKQI+Vxp9q7xvRYqMg2kZcYsx+OnFA37n2VakF + SqZMVqslVqsaTWhzQxPnGBCASR8xJisHjrEHRNQgRqI4T70KkqRGo7BeRdmKYDWQYhS7IQTZ2NOxbe4+ + iek8CvHfJ+DLMvIIfksZFUBPyNxMd/87L4PoYVQb92K2YLiCEZpBsK0XyAYgaJsGSwhKEe20KxHlxBTA + oUX/Q7AVywJy1GvbLYMDZipuSnhYG2AqIOo+7vn99qd3qkSYWK0BTkFAreFX68Ni/innnur3RRUHO4vW + J4QfqBuTfZZ0T4gRISg3QapEjDGCCRkVGZ3P51MskzkDuXBKLQG9jGGwkbtNANEaxZi7Jdu11Rr4D1sX + FghtPHr2Gw9OLr+VAXxu/z/87tde/Fe/vWVUAEPxAJh2zz9B7H4c1WwPO+c8YgC3K2QgG9TfB1IxDekq + eCSYtQ2qUst955tTxBixPFBmm+Xhga2yIQN7UnecjiNfj8uJuJ9c9s3VBJbsNaQa++xEJAVgGYPUkCQp + kJhRgcimRAo6gkvYLMyuCVtqUKxOv0wLNKceBToZ27bV9uO9bANs6W3MdfF2vc6aoaaVHSCQ6zVGRU/5 + 2T/HyhqkoCh1L3IvhWhdky1A2Zy+9xxAqD/3W++nYvIQgL8LYFQALyKjAujJ9M437wKoMNveQTGZoZyW + MYYURgfQi1HlPyh/BwiiRDR109XcC6xCDooLiGbe03Cly5177KNorgaLBuCYM3ggF851UOO16JltRL3g + GomuvnoWyYQjKZjJlmfoxyb63H1k32H9VZDbiqf0X38YwRRNNGozXzhDMNrkZ1KactshTfj+ebz35j5Y + bQKiTXxBa3RlGZWYjP3Z9racutRKvdxlXy0A1LFdjviANRkVQE9cNfsAgHtw/sr34ty9V2KMCKsj9GPl + Q5o/Zc3NhjkDy+UK9XIF7z12dvRp3NpeAEjkFxHOa3Rd2X0iYgwZ+EOmLDL/niBjBzo+/S4IDqDX4BPd + TjBgzvqk7ShHVCyrUfhJ5g1koyWTBA5KEzEFJgxq7Oxz5z184dE2DSSRlLASnqwSd4BoDGC2OUVRlhrz + yNfT9QkgAFWlkcnUS8A7vV8pLpFiHyFGrJoGMUZce0HTs8vaMivnH/p+OnUP4h9/9ivAR/cBfBnA51/s + t79dZVQAADbmC30C/YRB8D17PNvWCbzTrXDJG+9pBBl45LbtjUVB61H7fm3ODZ2BeudMaDgLO6R8Xc86 + SfGJoQ/dF1nbNhcy5dNlR/9Fj5GPkyL5cuO4Zd1ielFZOw+t3518wG95jLQbk/4uzIzIDHbO++m8BOBx + qAZAHV78SLebfOtf+TaRjfnmIwD5xX/6l/4qT2bfFTdPe2xsc2hWCPUSIUSsVrU+1L02t7o6GXCG1DqI + PTM49ezb3DaQGjvzrbtaegJhebTE/rV9xBiwspRhAtCk6cl2PjI6MYKVDvfW89JoviZVmVmA0lEImrFI + 8OBotbxTr/GJ6XQO5xyCdAlDoUxvqv8366Q+UnzN4f6BxjjqJdpoKMYoA2WW7sXWfBNEhFOnT6EsSxCr + K5A4C71nbGzoWMpSLYBmZWQiUTsbp/JpscyBSGq2noeYsRUrUe6A1Wc/8bXmi7/3fGybv/eFj/z3vwAg + 1mEkFU0ywiZHGeU2ltvWApgoX70HgLt/4r/5RQDb4ZEPPC7znb3YNMrEY4U6AkEbNOd9dKirH1tkbFKq + BRBjgIhSdsfWAm8pYGCBsOl8M6fmRIDJZIKyKMDOwRUeTdPg2a8/CwA4Wup5YkzIQz2Ucw6OHZxzKEpv + q7y6GouZdvuZTDyYCMFW5CAaYY9RMQJRImqD8y5KXdWn0w0wM9qovIA5eS4dAiD57EcH1wAI9q9d0/Qf + 6YqsFOUGbW7V55+Uuqqfv/OClhRXFZxTtCSzg3NmRRFQ+JRZ0VW8rRPpKeX7ma2gRKM+sJRgOIpkvRCk + WbXSNrH52uc//sI/+Wu/BuBLn/qnv/xLr+ypOXkyxgAAkPN7RLQdvS+pmGilWUCXChOBcykO0IUHEjCF + OXXh0bh7dmOT/x574CFSWq4M0LFzFGVh53HIpB3oNPQgxm/1BBqqEKQYeso2OFYYL0QbiqSeH0LQzuTx + ZhH9dFwBSZeC60U5epJiEn2wUDrGcKwJZ+Ccs8BfvxeCNT1l6vbNeUp0sY2UMbHB9MdERMP36TM7oJQT + j3KC4Ms5Ee0AGBuK9OS2VQCblx4qAXwQAIoH3n0/Ob+g6cZMEIwOO+aVTGCrkgCF5c0TxFViQLB/EtNM + swc39CYKgNXhAUAEP5mAnMNyeYTV4SGqaYXCMxwJtnYWmjos9DyrpRKEaEOQqJObCJ4Zpde/pylqbtfW + rGpAFKCjSTOHCNaV3CL9sBU0pOQ7M8ixNgYRZeghSKfEAKRplgqJvMUM2CYhsxZQRya0nPL+eh3LoyMQ + AXFVazZgNgOXBajwYHIgkQw5TkPKtUBrKqiLayRt0wGCkvbNSsjiLn779OXT7//ZHwn18lPnP/Wb/xIi + 8atf/ZOnX8ajcqLltlUABHgQXQYAWuztcjGZczamu6h7DmRFDbe5nCAwaG5UBSFmbtuxNTSXg2D6edsq + FNiVBZicNuJsWnjvAImWAptARLBq1HQObZvHQERgdK3CvRXrTMx6SGR6rQX6Qio2IlI+PdKUm1BEwhoL + EtdgWp1TOs5Sn9LLGKQJ2WvvzcyGLbAN0kpudGUpoRLs2pugCiNOWkA8IGLtwdM9RpcJGGQiuqBpN5Sk + Kbo/EyFrh9dQq42LauF3zs7paP8agG2A2pfznJx0ue0UgAN5AIuVny7mD73rvQCwWtUlBegKSKTsnRJt + EtiqZBh2stJU53oTRBLEtQMEAQmwQ12E2iZyqFstxhElvwihxfUXritt97QCAJQJ1++cWhCREWNE6T1K + 5+A95xLbFC1PXYWCTaQcxTdzOE9ycAbbLFeGAzg8sj4CnCm7CJRX4YEYIs+JEo2mCSfoUpXeshyJ0uzw + YF+PmZCGEhGaBrONGYrSOiFnQJBKRxxiiiXdbLAifoiy4kzXEwwZmBVvjBC0IPYs8z2A/N6lp376QxAc + PPu3/udPpyuqXzpfeSLltlMA0FLR3Ui8605fejcArOrGUwDKkq2IJXRmJnUPk0C66jYzcTMTrwWppLcq + kaTJb0dLJcRNA2kZzju4wiGGgMPrB3BeA3sQQWkr58qx1sXHACGgKjxmkxLECuONMaKuGyvXtVP3Wo9Z + /szYidhW7JgLbw4NQXd0tIRjwnQ6gXMpuMgaD+g72ABIErinpwRTCtQ2c07TdcHu19Jy8NIoj4LXah54 + 7zCbK08hp/hHcjm4K09G768uGNDFWzgrgLRJqmBURmMpJ8BsixHavcn26adE5HkA/5NtfdsWC912CsDf + 8+gcwHfJxu5CNnY8ADCBgYjYRkgLpLy5s9WSKdXCU15pUoA/c9cbUldLde0Ya6sn97ICyrUPSFCf2pVe + KbuCrmiFbVpYgNF5D0BQePVpRQRt06KjA6fMIUDsbL4MTerk1ytmwT6zMbVtQICRljAhgqw/YHIlKFvN + iReALcIAgxgnt0chwupOlKyPWFnpeWpSd6ltWxwdHKIoC9RHKzjvURRex9sOuwl199SuSZCrFhMuOvUt + zFsmgFSygkS7GAs578/dtycS/eXH3nmvHfXzn/m3H7stXYLbTgHw5qlzAH4G5ayUPeX3c05AFFAva0gU + +KKAL7wGxgqvAbigj/gklaymohxnGQBJJq8gCGVTGBi6skSEprbKuaDNPrhymG1O9cG2yTWr9DzToJOJ + S6/wWqh6Cm2DNgFljKaMJpW9NzbdEHQ17bnwibdPUnMPr6/L/SMgivEbateAaMdomyZnOQDAwzj8EEEs + aG1MqnD0fGwlvBuVjmlSKqz3+v41hBBwuL/EQX0AAqEqKkymJeZbM1NoaS6qEkkKLpprozyCel/tMpAa + HqWfR6K6PTFXJwaE5RGYill579vujU2973zx/XaipwGMCuAky2znbAmgompjQdPNBU1mZaK4is51aTXq + zP6UCkupKn3Xa9CBFKFOrbN1xSFbeXrrlu1D+ZVIVzJlA9JJQ+ghAG8CrZWY8hOU0XA5f9Y/DzDIxaUV + MFkOQxpvnTHOOQsOUkcoYp494UYlBlgwMGZjQ69LYMFE7t2zjqrcOa9R+SJChMwVUYsoNOrKBPtdunth + ytVW/2FgQseay4LTa//6bT+BKTW9dzy7eOU8ABx84yvV1nzWAogv7B/eVu7AbaMABLhIwCPFYufhydWn + vjcKcP2b3wQA+M0ZmAmLnQWKssDqqEbTtHDeY+I9ogi8VzxAKijzPk3kmFfuKAJHgGd96ALFYVQ7RbEF + EGE0dYO6buFcCY6aJ59seAsUGpuuzaG2UevEQpGa5y4menyrtc8MOqI7MhigFBgzBZJdF534G8YO3CTC + Ewha6yjEFuhLncTJrIUAncSOLGXYKmiKo+gKzAw3magrU5QAgOl0otDpooQAWM1WaNsWk7KA5xbSBuw/ + qy5NAgA5Z3gBs34CPAQJBJWoxjSY2tQJa6HxGzEi05igz8lqYAe4CUCo9t7xQ/8FAOz/0//z7wJ4DoJn + oF2Gbhs58QogTz3NXTOI+MaAb1pZbOXt2e5dGu8me72MyHE/dGVnuul2udAnYQh6Bx8U1qS0XAq9906Q + yUXyuF/mIF9k3C/+5bf8NlsIWLOB8pBeZL8bx2zX0Yvq59alIsN7m9ycXtpy/V6K4RvW9yVmdpNKa5Rv + sxaD3/qXPAFCGvX3i/f93E9RMfmLtHV65t78xAWIwEMLb1pLhW0vNlGWBapphXJSomkarKxHHxlZZ8zB + 5QTRTaVlw4dXRMk3NRKu0iYizhDMHjV/mT2KUn3lBJxxRWIRGk6XEBrt1UcO7Cs9KycLoHfdN0zC5KLo + p4wEpbX3PFQcJF2hSLr2FFkP+Xj6muDSqUZfPx2WHScEYCo5njizLKx3Iez4IgJpFaa8OtLfp26101KE + A8hp1NY7AARyyhUw3dgEAMynSldGXpmNQ9DfITGcEQFFoftWU+10dO1X//IvycHzSwC/8PFf+mufwW0k + YzHQKKPcxnLiXYD5XQ+8E8CDtHXqe/iuRy5FEC9feB5EhHJD/chpVYIIaJoajfHat3WtwJxCfeOmto5z + FmRi87fbqCxAYt1tkcAqIghtQuLZYGx1dGRAG+d6OXpdndOamWMArkAPlwdyE2XPJU1RUj6s5OMPavpT + RJC6nL1+l/r62WVFQvpPx6GZAAIZXT/lGEMiAom2YvepwyR2wVMA2tkXPYvEXuogWpdvtyzjDgAwqTXk + N/TxLGKLBByKMaBuApb7LYII6iZZYtpLUYOMSkeulOYuByBzcVa6x6LXU+w88IPYauPB5z75r+cbmxWA + L+8fXH8Gt4GceAUAohkBu8S8oMmsRAiQpTatIKgCYDNPo6Hzcl07C5gJMWP6h11yc44Z1LmtKZYQ0eXh + +7ukfz1k3mDGpPy19PYYBBGR35Oddz3OkM4jvb+x9nfWSej9kedohyCU7qw9tyKNE8NinMExUm6Eert0 + X2bqrnS/QIapkBygBFl2BsZUHNocCBHRNGoM7SB92nKw84ihGkMuREpt1JOuzAzG7OfEDlEwA1DhdpgX + Jif2Qj3zAoAvH3jX26kofzBsbJ9pjD6qbVYgItQrK4UtCxATamPtXR4dYbVcYjIpQVKpz1oWEEGOCSSC + SrZJzt6BSFF8iAEhRBxZOitFtctJkSc+oMi3hLqz4j2rLaDs16fS2DSzlESDbdIA6WkeKAG6SbBRgFzg + M5Dcb0eVXy/F1lUlajZB1gttpJ8x69qQJyVFhEwiklDSN1RH9jRQ+rPNhIVmcdjVkWOAAjy3qHyDGCJo + tYKIYLnUyVxbf4PmsMuiJKumuzIDTFlThMPoGSKIkd9fXHniAQB/H7/9z28LItETqwCgmryk2eYFnsyu + BF+WUcTq9u1hT4g26uPOgTa0kKirv4QSYIYv1RWo03ax45Ui6MRkp8000FvEBx11pFvMU107swNB4KE1 + +MmcT626JHZLZbbm+9O4ZwEMquaGFvf6xzeRG4OYWcloqh6S8/Jpnzg8Xn8fG1RezZGKp1LbrxfPTiQ7 + qzs6ZSXJzoGJUTAhhIAiKgcDc6oktNe2Qd8t6mdDyAKgvtTPIqkr5gV3u7LaBvAvXnRwJ0xOrAKY3/OW + RwCckWpxKS72qkglt/USKd8n1NFmK8Isgol0lRH1XSVGLI+WcN4bFLfXSCOYGVmrVZF59HvR8FRZV0y0 + so8MxhvVZlUQTjDTmKz5RSrTtesIhmVP/5wvbHVlXV0FSAUxgzklXQigX5HYVe6l7VL+bHj/aPg/i/J3 + J0jWfo4/pG3M7BcBejC+DrOf9qe+LZKPpu/6BRbIXgJENC4hYFWZRCBXgFngCt23sARLBnNZUVc0cheA + 4YxqfWqFVymj4O+6co7Ont8OL3zjyvzUufsBPL//7NdOtCVwYhWAK6tHQHQfiulFWZwt42qFmFihbaIm + xFuUCBbr0mOrt8JIBatVDR8iJlOdxIl0I2rJPZqmRQwhWxE5B40OycbFxM6r/2LTwBxXA/qwceMTiM2N + yL0HDWXfahENkboOoK54BnE4ybugWueLdzIk0Miy/iF1RJv5+961AbD4Qy9yadeYS4Jk6HKQoRYJSRH1 + Kij1pg8sg4SoTJ/EfEU6PlUAmt9Lq7lPXdVBpoxaMCL09qlycil1OLPKy0JhynCXziG2WMb2TQCuQCHC + owI4TjIpijkIzOfedCeY7w6+nMeQCCu7Bpi6OHWTTCxolEtms3JQs3K1WgEgeF/kc+ncJa36E922K7kF + JCdZ9VitQV0lBEgUlBWBSFFuqYJPD0w9Pzkh2azrDregRhtsIPrO/E+KCxhMuhviAzdICmN213SjgpDh + toO3a2aHdDaDnj41ErX6CIsTJCWssQPpHa9TWDQYeefgDD9RFocMafYWH5EU8NPMgmOAPIHZo5pMQUyo + rHGp1g8Q2qJSRGO1eWHzzW97GCL18uO/+mkAaE9of8ETpwBAuACA3R1vfoKKydW2nPm2DQhBfX9te+Vs + wlrkOLRgYRQFwzmyQBgrj78IYggI1w8AANMNhc4yGRzWK+lFaCNiUDoun6raBkhCYHVwoEoo4dULresX + chBX9vz6riQ2uRMhJMahCLQ1UJYoy3QeDVDy2gwh6Wr1UxOPfJtS842Bb5xWze6TTvrbDZWK9LbOiiRP + 6th/6WIVZs2ogugCB9JpkDymPJLsEpBOcPsdBIKy6BQ2APDKWIMDARLgWfkCi6LA1u4OAGA608e/tRTv + vp8hioPf+JOr/s77L0qMDPzqR20oowI4DlLsnt8F4MUVHr5gAXHMk0cGS2UHEdU4gDagNNNXOr9UVy+r + KjM0HzkCJEX77LFOufw+dBeC0KZCfX3Qk6XRtcgaztzBit3z/3OQzaBtElpz9Pt4APT3Rl5Hh3b70I5P + Zx0s7UO7oX+MGwOJgoEWuEkEskMImpK5Aa7cN//TiVJVpY0lH89+l1xc1SmY3LhFOdrzzz1Iu+Z9ut8f + 0MsnEaAoS5otKmnrjZ0Ldy0AtN/44y9eu+GyT4CcOAVQnbvnZwDM4ubuJZrvls31fTSHB0COovceJCs7 + rVcNmBh+sYmqKhHbI4RQwxHBFYWWktYtBIL6KBWqqN+YlYbjXJSjpxHAOu4evnBg59MJsLXYRDUpwa4A + u8Jq71Uc1n1286OtQEcatUqUjbcGiFGUUzWmnbICpwrBflAwZRBscL0Vuvf0g7I6GsB4zalww6U5eyxa + idczzEn5AvNYALSp2laGLcvQdwv6YwWA1EMRvXvNqT2YdRr2GgeRmPoceBABKyhBSVMHxFbgnUdZlnDe + wRdK3hCtQ0jSzw4tGAx3+uIZt3fhTPPMHz1WlNX7ADwD4F/iBMoIBR5llNtYToQFMCkKD+ASABRX3/+j + RLw4CFzF/UO0dZ156ZL5l3x/b2vN6lCJKdrNDQRiTCcTzKYzrJZLHB0ewBFQTJWss12qvxiCvlYbc7ii + QBuiFpzEAGkbxBAyDZZ3mgU4fUo58dkXIHYI5BG4AMRCWSIZOuvTq9c1uapm8EzKo++1M29rMYo2LDUc + Jgp+CUjdRz1ATtf13H/PQm8WoWR7FYFF5PsBxC40SEBvuUjknB3oRywboBRiDPLFAPRDg8NaitT4Agg8 + cMv66UY9i4KjJCDnR9k6rDrvzXpIFkbIlp6IwAGIntA2NQ73DxUqHANAhI3NTbvHll9oBSIB4ioEVwKT + a1cXT3z4L4jI79Af/sKvQ+/OiYoFjBbAKKPcxnIiLIDq7ocrAD8FAGFxfgH2VViuOKyONGhnnWmdIcAA + XXeSTyukAJbnnnkWTIy9s2ew2JnDOUbh1Met6xoAoTDwiCuMwZY9QAwnACQiiKBtGsQoaFsNPu0trGef + 8e01rlT0GVJAMnH3Ad584y2LULOtwmzkGCEacMlp3CCEiMP6AAIgHGmH3GAIIBENVCZAErNiB4gZfqKl + sDGRiKTgWY6/Uc7bpw8pVz5bpt/xMIZp2AoSAZoafRxAtiUS4zCnwiNS8k/pzh3dMD4RE3+iBgsgEGNp + FjhRaJBntchqSypEo3ELTY0QGjRNwKpuQcRYWW+C5mjfrtkspkJRn+xLtdLKapvuuTrH6jDunLvjCQDt + c1/740+8xON4rOREKABixwBOAYC4gskVDFn1IvRrz2lKLeW0kk66tm2zKc7WiFKBP6FLR7mOQouIENFF + 8lMRCpCCWrqPdz0efasDgOH5h5KIRAVF2idh662rTsyZDOgxSPH7mio0GCxBt+kzFhNBpJfhGAT/kAP/ + /SQBUe+Dm0oXOMy6LF17Tn9KHkMOMvaCp6D8pSGOJcOyu4Ihysi+tRSJKRjpUqBrY0nX2vV4iNlNCG0i + EFQUJtiWBIkgiQCT57LyEtqKiOYicuJ4A4+1AvBEHkAls63dyfk3fS8AEDuPBMax5naxBwACUbYDEkgl + TYI2BiAC169dh0RCUTDKCWtkOLFO2oPW5jJU/UC7A0U0dYPlUQ0mYD5J5BcWe+BCm3SAkyOuqyQBTEon + Vll/vJQXqIOteC3byqeluxGpEzHgjXarXtnr8kjxC207yLOnNBgzozxS0g1nwKZiMgExw/lCS2j16ky1 + rbm9NrsStZK3+yLcA/WknobJwoAyFTNRVoTZwujd105J6vlzubFom7Modq8bvcfkVQG0Sfkta7WG6qVS + pjc12jagDSE3TDHqZzT1qv/zg7zX+gzvQewU0+Ec6Gi5u7j7LT8A4PC5r/3xicoGHGsFYFKCXcUb23cD + gFXY9IJMyWxEBrl0i8Uw2BQMK1CvVljyETAtMJlOQVAO/36qqlMA+j4VGYU2oG0DPBMmld5eb8tTbUUn + eRTZOhE40lWszCzDdh4bexNEsfCp+1i6AukFwqyCsA1aj6DIw9grKOpM+3Qt3mDKqZhJYcYu3xNAlVPf + kO+/Swu4GiVqx+fVFgB6bleykrIS4FT2a9dkJ0zdl8SafyQFHi2vH9uowVZKmcSuSXpsE3W5/h4xRIQY + EaK6JxK7Wo0m9yDTX4SbxpSkQrOdL1FOpuC2rarJ7F4A+zhhcqwVwGTvwhzA/dSs9mhxZgYAIbQMe/hD + aK3GXyv7XOo8I8PKtAQF9V4bYThHAJSyOzQBiVUWgtxua3l01AO3aD+7pGBmVQHPhKk3YkrSVbbziDWv + 7znCQTntHQmIBE2rRKKtkYk0NuGjJDcjW+t6bkpBbdIWYwDKsjA6bMkTIVk7qcQ3AZqaqLRbEiOIGKFu + 4LyHLzwKX1jevavP1+vVq2gSf39G6UfxYM67AAAgAElEQVRVFpINf0TLPrCx//bJSsRW+JwBQKdidBN9 + 56yOX8TGmVQoAcHGFkJt16fFUzEaitPAk6nU0s5qnkQ6jw44WpUoSQRFhY+HGMGrusL09GUI9r3zu/ab + P98kxpdjLMdaAbAv5gAeRAzbvDg9AxTWC2g5aNu2mS6aQShy8YxOsn7VGQEonDffn0CsK0VotPcfmDNi + EACOjo4UN27+tT6WyiC0MZvAAZh5nSqtU9M8xwusQs2zYOL0AfQsCFGwanV1Who3bQsr/ElNPSmh3RKJ + KDI4JjHltk2BRIAZncvWia580SaIVUK2xlmw0tUvNDW8L1BOJuBpBTDBGXFK5umwa25ttUUMasUgomC7 + t2bppCAjO2vkQQL0Oih1HYY7JZB0BFvRTpIYGpvNoj1QiBDhVVGHBDk2CyBGpVyMgPUvT1XNefJzPzdJ + HalIvrchQNoW3NYVJjv3isRrBOzZRtdwAlKCx1oBuJ3zFYC7aLY9b20VyQU3maBSkOJmLuWdnYMAmU6q + mGiJbVmWhuUvMotMqhhMyLn8QOaFS4/pnVJPlc6hhPq6kT269bFb3RxpVx1nD6BEQR2VvLIJumVOhac4 + lfnx/SBY14YsrbcWTHMOEiOc96AQzOQPEGYlJIVk5Zcag6RYRgwtGptk0bInufqQE5Fo1/BTC3ysV2C6 + poREBAGsiqY0i8OXhbobRtWV7mU2DKDc/fom5gCjjjHoBM/RRjP1ocoT0G7HqXQ5Wxff6l+S5MYMArNG + e06OUW0wSfS0tXfRvnwazx3/QsFjrQD87sVtEJ6Uclqu7LPl4SFgUFkA2UxntjQcMXw5QYwRzXMK755W + MzAzZhszeK+TlsznTCa/T+aoBc1ENKoucCAwpkWBaVWggKAiQSRGW2yoBWCde5ytLFMXoeS/Sh5SB8FR + o4UsbUzdhzulkfxrQVpAKb9PxB0QyfDbsigVBGPFNiGkvgBB/4lkVuPSq3WyahoIBKvlEqGNxpdMg7Fk + eK9x7DVmPaRwPQG5FwG71ELcUqCVMiuV1QTsHIqyhC8KgBhs26R9UjCAQ20wa3N12jpbLMzaFzG0qvCT + y1QneG+uvzD3RMwc6FME90THrn/EwWcC8h68edZLaCre2Hy3ff0JPPe1Y99D4FgqAKfc2T4AFbmyEleU + gwm/jnO3SZJIOhJJpLfIfkr5pf1TNq+fDks17mnlTGlAz87ijpzTW6Ilh0jNOZPPzImYEylwpa9Rbnge + 0Q9QqvTyXNlnzs72oNqvz+GnqT8L+vXM6ZudpbNo1rdR3z0hKEko32fp32cokQqBulJrAw/o70Pg1oEM + iRdjVEvARXSVgb2CHe2wYtToXUm09NOtyZ3LY3iRnggWMOxnG7o+Cr1b3P/dhx/r2CrlHxfpir2PsxxL + BQBgG8CZo4h73e6lq5EIy+ef12/athcgI1C0KFoIiG2An3hsbW9BRDBfLAB0qalodfrJHCQz7bvVNkKM + rXdre0vdhsLSRTHCi0DIIfoSEYTgSwCCiU2CmdeYQd1GtAIsm4imTSAgfZ78OjwgjwU5Rw30Vn50MQCf + moPaqt5AJ1XbtggUEGNQ1yKmqBiQfIwYW4snMFzRU1BRzenY97ObzgQnkLInrf1ANDg6cHhwvfuOjA6N + GN57FEUB5zyq2QxEhGo2BwBM5lMQEZZHWkZNolEUdh6umAAhoF2toHxOKjlYagNyrP0DXWBNw8aIhoPq + huzB26w3iywG6aoLtV0IlIWIvb/j/qcAINarv4TP/+4+jnkc4ERosVFGGeWVybG0AHYuvOluAE9G4M3t + xp5nCGArM1sASoNDwKQoUHiP2XyO+daWgkrMj6ysG09sE7998nEtIBYjQrtCaFocXj8AiDCdqtUwXWwM + gCyhZDVNueMUmCbSe3NPru0bhbVwdg8ApcPuEHnJ4ByuqWzdiV1bg0KrPm2MEHJoKl0xQ0LUWW2N9w4S + laswBEIURksAhME5ladjSyt26bQNeUz/orYh71N/JRqvlFLlxL6DZIpLztH3Inj5WgSahQgA2rDCqtYm + oU27DwKhPlBrjp/RfcvpFOwcfFmCnDe+fwK8z3yLKfvDs6laLzVribAEvU/eIUR15bwFJNtGn5k2pSOj + WjyeGORhMaBWQwchABJ9eeG+hwFg+fF/9Ai0TPjzOMb4gGOpAIjIDDOw+nJr39+4fX6lm3yu+/TC0Ppl + /k5u+GNt/5u+drGEGw/UO2tK6d0QgV6XXrtxAAnL0OW0u/HIYCjdtUM633fA8T+4HiNGQXI7pAcJXttH + ZHC8fs+9DuDXjenmV4WczgR6mQ3gpuMcXpfc9HpyrwIiVaj2jNww1pzRkW6ftXtx83uE/o91rK3oY6kA + 7nn08XMA3hV27jjT3HknQgj46le+CgDYXy4hIphNp2B22NjYQFVV8N7De68rZ6tEE61BQUGJ50/96tXR + EepmhbZuUB+twM6hms5BzKg2dbUlEgCGERBAAkECgZ1GwlM6S0SwWlpuWtJkvEmoTZIRMGw+MiHNscfV + EdC2kNhCQgCToGAoMaaRlDTTLbuexHufwDcM5cOlxPsBK5rNwbrMY2glwW1Qn5+YAJ+0kz70se1apAPQ + tuJIfQF00qeJkqIDOUTXowYDehk5CNom6squIQx4LgACvC+MddkBcGByuXNwQjqjSRmJHmNT4v8HQ4lX + 7frt5MHSwE3bAGI9BSQaYzEhtgFtm6y2CBCjphkDQGjxGDZOPw/gGRx849iyBR1LBVBUVQlg4cpy5qoJ + 2rZF4dbgq1bI432Boig10t/X3pY6yzv1luAYo/IAti3apoETqHtAlFmBb4z99ANjXUQa6Hjq+p8NF7Yb + V+O0AcMKXcRSeGqKwioKEIXAMdwQte6HtjMdlgGK/n/23qzXliS77/utiMjMvfc5595bt2vogZDINqcG + DMg2JD37WTBg+Gv43fCDP47gD2DAsAD7zbAF2IBpSqRoqkl2i80eqqvqTuecPWRmRCw/rBWZuW9VU7Ll + hvsUKwq3zrT3zilixRr+6/9XdKnlt4UaGq0YBrsNVale1QhyLSdy7Tl99fm3UuUW+ddu0PY97++xbadu + 71nPvZGmiidGN+emX9F1KM37WKnAglO+Lw1fLjzSNB6qKlVb54NA0OV+qb9HVwn2OwmxAulvddx+w8eT + MgC3fb9DSPHuw4/TsP9tvXlxqPuOWiOffPISgP5dZ+y8qYcg9H1T41k/ZxGnWDDyNunVOfinaeJyuiAh + sru9I3Udu5uD+6orWmzru1bH36fkWn+IUwbqe4v9y1N/6VLDXVZYSmEpBYJA7CMEJU+V3ODC3uwU6sXe + e/FM+3DABLUs0o8hIq0cSNumvU7vpVAzLAoa3CWOxCAEAhqrpzJsoTT8zrq23eOphr1XnHJ9yWesocAS + 8rgNDjRBFCXnjIgweWy+uzOKs67vCTGZiIqDiFqaxEr6suA1xvOJxj7cjKSIQcFTtNxB7IwkZbdzabi9 + PdvZc0Gtb6BUI11RIPuzfHdyT+PD7/xhORxOwP8wPTxdQNCTMgAICdiFfnebDncvddgnuoTWyrM7Y+ud + 3WXL3ngTQlzKfLZe18aR9/ECjdsue0NP1ye63Y6YEt3gfumviGaXppva4mDZLKaNBfA1cR1h+mxWWxLr + C21njgGIwVz5It6X7zuVVpJ7ANFltUu/M4OGLc5KteRnXTvrWhKweTTZG25sRQki1bER6jG0rmzG26SI + hdiEIJRcEG07ab2K5xtxKeKt1WKLtMp6L6x/YTXQxoEQTJglpgVvQQjL7q4qK+qPxvCryz1ePKgAqgEN + YhQOwN4bobrOIMfWLWgy7pYAVLKagSrRUKEXtSVz2u0/RMvEErA8zfGkDMDdBy+fAS8kxg/S4W6n3S6U + avryrYPsZr+zuHs2LHjVYiKSVcjFDECdbacZnHTDCDcdiKJKPwxIDKSY6FJyAY4tPgzaJFsAL9kaj1KI + RAylNo/ebtqaa0NaQg/PlfsnKVv+fDslb9YpQqnCLiVSF4xOKyg1V8qcbadrJBtOi6XzGSUgaaAG2+2q + L4KmXdDUjbVJF3ufRAUzFMveLKiDmRtEVxYXwBeqVz4I6u91nL3ISse2eAAtoWj3IbDIiLhBk0WJeb4Y + EnC3u4Fo+H+rcChlzu5l2Gem3tZh8K7N3gFaKRnVe4pCHxthqd8DRyD2g6lDd2qxf3EVoVqV2T2aSa25 + aOf04/tnLz+swz5Lzbd/7/u/0wP5X//ox08OE/CkDEDX9y9Avishvuxun++qBJpwRufSXbc3VtqThzOl + VMZSyNXSdQWcJcYNwI0l9Gjut6PK+t3AEA8Gu0XWHZDN8m+AnNKaaoqVihKkkCilMJ2NqSf05spW74nX + bRjhn7VAlpeY08acLQQ47Dv6DiQoMcI8zhRfKAahVVKT/J5OtFg5SE+RgEiEurbarqQbLQ62L4ViDEmL + UWzdfepdk8C2icY/K4RAVgPeVK1Ed5nZGDZxD8O+ZgirOtOCQlRdxFSzGwCqGaAgVi7MuVKzGfj2PFo5 + sLVG9/1ACpFu6MyTCzB0buTdKC0w5aG35KMbjerzoBTzBEutxHmmqnJwkafL3Qcf191NlfF4i+lQXoAn + Bw1+UgZguHl2AF6IsGsPS1p2erOoFFeIEXGyCqXmYruG17UX95aWltpMasVdeWnraPF71+y1HbeqSYnX + WjxxCPMoRsbheIOmQqvSuTFZc+Pqn72U0FqavOUrsXp8qUIuNkljZ0SidbC43bwFWRpipPUv1EwtEEJC + QwsubNWsqbg156DKkvDbinq1xNyivtMIVEpzvc0Nt1yqJRqbzkJTFF7LkWtYgZrLvxUn2Y6cZwSh5GxU + ZrIaY4NceBUAoZH1tE/qUqKLkWFnAipdhD75K5osuL9Won1uk2pvXkpAiASkCr0/q5uD38UPX/aa5xqO + cuhfPLvFTOg3BuDXOW6ef/AxyO8GCR/HYU+tlVha4sZ3ZJ8C3dDRIWa5S6E+Xng4PixcfcFJQ2DdkaX9 + UwjVk0dLdeC6cqC0ppMZrUrx40wK53KBUmC0lprOAUZZEiqBsln4wJVxaSCb6KU8W9TCOBt4aNcP7G/2 + 1HlmNyRKLjzeH1FVptkuqCuZAHTzCakB0g7CjizCFMPVTG274IIsdte8VmcprqtGb+dsRdY8KTweJ8ub + ePJUEFIXnbgjLEayDbFt3A7hCUXLRzT3nyvv53w6WVLwfDbvzDsmLS8QPZcZUK0LN0GznDeHPbuh5+Zu + x34/kGJl6Jpp85br1nPtbdrilaIGLFaNdGqt1XsdUODuud2vMvz+M7Ry+cmff/zws8N3MVriJwcIelIG + IHZDAnppmtNfBWbRZgTeE5oUywALQqE1nzT3c7O7N7eyFcxZv3zV2IpcWCzvfeW1EnQjRsKagFwSZM2g + eMlq64dcJdD8vaVW4/9rHAdBqMFr3KK0cF4lrCrAXiJrGfGW/Gtfl/KZH7wdtVUMvgowZPd2e1s2mU1a + CY7Ve9rcwy2duC7v3EqfX6dZzQgVSsnWRFSyUXureXiy/XC/3ma4ajMaVdHQ1J/UJ8lqnLQ9eH8+C5qx + /dHDIDx5CZYHUWMo6mPX9TyxtdTGkzrp57/1978N/KA/7D+OQ4/ksoBS+uSu2Wg/n+tsEywqIQl7OlK4 + Jc+F08MFJCySMMtSKO3hCsEdxDb/QwsHmivri7oEy1SXDCpwHkdOlzMJeOGEIKF30o0yoRIYL6NPUNs5 + Y0r0O2cbbr32LcdgfjWPZ+fKK4mkiS4Jt89vmObCsRhZydQMQJ0QlL6MRC30UhlioSLsgyvmOHHG2f3g + k5uJ6pp7Va3Fp5aKZK9mNIelqCfTEjFCrpmqazgmioGU1LgPYE2WLos8ZMBblLU6aNpNt9t3rQZXenj7 + 2lqI93tSP7A/HLi7e0YIkW5vrd31we/xZBwF59OFOhdCSmhIzHOlJEtO7jrzAKI/+dk7FecyL+cIm7wE + FkbB2nCl+xt7YYrfCy8//H3gLfDzr565v7njScMYvxnfjG/Gv994Uh7A8NFvfQh8X4bDh8X9R2PBag6u + E1iqIpNBWce5MNeKlEoQoesSN3d7kLCw4Uzni3mA3u4a9zskXWv/td1iBepaMivFZC55Z2CTWSvjZC2q + xzwjQDebQtB5ylSE48Mj8+z0VrXQ7/bc3D1DQqDf7a8v2gVHsye7kiSiJm5vOoZdT0iBvUOB771Nd8Yw + EaXuEK1MAcaiJIEB2/k6v4ydM/bcYfiJWYWiwox/H2F0qHTOzWXOnmj1hFz0xGY1j8FcbEcUtrZ5d807 + 11OoRDQ30JC1SYdgHsDYPDH3TsbpDKqcjo+gwt3z50gupK5DHI6dPDs/5zO1Vt68mk33IQgxJmoKqEZM + M7SRhbSb3PwP9/q8ehFoADLDACgweWK3zbfU7//e8OH3MtYU9OTGkzIAYmiSK69FpMWSm4j0vcyzvZfr + JpCNO/9euP2Vn7GNWZdfeNpwQahuIKzvVw2241cBkf6dxualDdz0PuFHux+6nP965rK89/rr8r2uMfwS + l2/vG9Dow/AcgaVLtqq/6z14v0lne94rWKnlBWQ5/vacVoKPdrvavX0vwXh1n/T6OawZTvuq7+d4ZJsF + ZYtb+Oqnc3VdT9aTfhIG4K/+/F8lEQn/1T/9n+6K6kvpdwfBQC2Xi8VvzrFFTCbucAg7QImXwDTNnIpy + vMxO+TzYrr7Uwo0mK0YDzUSfoLYrQUt6tdfif/MNxhpyUqIGb7PVDKVwORs5yf3oJSrPuHf9nthVap6p + OSMhkOfJaumpgYUaIwVXObazzpRZKDpwOBgk9mawuH13tHObii2O6snAijJVUx3KXp4bon3+4MX9weG1 + XaM3dxhskcCkCQ3CxYlGLqUx8RodVzDEla03qaiYdoHIIuW3VDXiBtuvYonMloOpvtjydF3RIbZla17G + dDny9gvjPJwda3G6uJf17q0lAaUjEHjx/I562BP6jhrtmLOXIoOXXPcGzzDNBbUkYRMh2RCO22uaNEjs + EIRud3jRPX/5Mbjb9cTGkzAAYu1tIaSUtGpCQmq12ur1o2tJK2f5wYhAo0NHW+I3OFZ/3Z1aeaih2tb9 + crujXVUVlm9aF50sDUcxBsv0+4Ru9PNtRwxOM6O1EkLrAfgKEktW52CRzaqVjImDNobiGOUq4bZclV9f + A8wUPxfZ7J2rh7O5bsXJMJWgFRUrjEXvT2hyZcUXecPzLvwIi9ew2Zk3LoeIeJfu+j71e1/1y70TC/8/ + rgtQy0L+ajJslfniMOhsBKWVAOKiMO3eLk97Oanl/0EsELAQ4X2PYtuuvXmvCBJiCqbM8iS9gCdhAIb9 + /gCkm9tnh3EuBx2GpFHQEihqk2f0FHjvG+cuGhothUDoAvMs9EENrgr2/Lze2zkIpus6wweE4LOBTWmq + TYIN2nObJfYfU0zUrkdDQjyncGgtqrvetAEJVISce6PWljXzXZygo9FbL15qqzoAMxC08iYlYgp88HwP + CN47QzkV3822zr/tZSNmTFrCu9F87VPYlErVADBSbXcvFvOrt9xmPOCOToeuupQmS0NMLq3Pvi7CdgG6 + QXOKr7aYqgOQE02zwN6z8DW2Xt5ajcxDK3nqsFyMH8Z3774PRIn0DgWOgnMRmpEQwPld10pPs6Aq3s/Q + 2IUhO5lIbdThyZ7Ps2643d8+e8ET7Ql4EgYgWA2m7/uhr1L6ElOqIRh6DaPQHn3CabZdqZe6YMejBLpg + pakqK3NOs+XR/HhSNIbabcPqEjV6LLpIe7RfbuNFDPmWUkeVgnY9qDK0nbp3YU4HBE1zJKe0JJhqreQ5 + X0FoWY7XXACDII0hcDrNdF1Entv2tOvdzb64412ajVrPuX1qcdBAS272RA+JjKFIEUQKIi60oUpfzQAk + p+ktYg06Naz1c2lbaTOMraS3GIDm8G/SqSJ+PGtcagi9Rj3YErEr70C1/Gn1Dk5WmPLyTKPQRV/8QZyQ + Vd1Y2VmExfy41wh+XcsDt3tW8T6S9uCdE0GEkGLfhd2OJ7KW3h9P4qSrnWcixL5Sk0JoCyKap0fwnbNo + BBXGuTKjJC0EzQjKrhOLaT3TVJ0QYuia8IUvd985rc9gk+xhzcG1kMLyR02ko7HpyBLzIpC8SafTGdFA + Mn+CJJU5VIrabldFKZjrXUpbtD7pN1TWqsoEPD4+0veJcbQduXc8/NALuSijVrKXS1o2uyW/2nVMfn3n + bFWSIeC6BU2MBCQUgvoOCnT1ZM8l7VEJZAI1CKj5QUb5xeqCs4YjDWgcQjBVXqVJG1nHo8oiwIo/00an + XqXl9sxLS8mw/jbsiroheThk+ZwQAiGa1JdbtkVibBVTdXqUTfcjgqE2F9j29fNfG8joK/KNAfj1DklA + TwhJQ+zV/Upx16+qknwxj9UyOue5ErQykOlsinLYRXPlqi2i0SfY4TAQxBaNlaW2yXZ3Q2kLfP3tFXZv + 87cYrCOtzafeXdrBDYC1xAYmgRxh8gMWVeaNth6wSHjVkq9i2Usp1HliN3SMF5P6vvOW6N2QKRXm2Y2G + M6j5PmtLsOkVeplOs7EHaBS6YP9iTCCFKJFaCtENwOBlTUXQECEO1NhRsHi+Sl2ow4UN2Epk8WyM4SdR + S7aMRAjQJdBK9AYl8eRpwtZuxjoSRQIxmnxZvx9A1/bmYW+aCCGbqGsIkZgSOCFIrRX1HoZaWlhV3Jlz + CLOIicdsAEorMXwLE9T/Ql8lfGMAfp1DG//f8tXdy2CY8FAhqCWBgtiurWoJr7xAOR0eiizdXo3afWky + cTdfwXXutzx3LZL+287T/3MJruoqPC0uVj/O6i0oQZWo0GHxa8az6M31989t17AYBlVmLYQMp9MZQRZU + ZMtHrCXA1t235hLez7TZUlWy4ojI9aotH8BCmhrEQwEtaK3UEJeQosXzGqw8uCRA/f7VRa/LfqeNiFWC + Zfs00CjNgudmNp63h2V+jx3mC7oYypZAbRyIjYAUAlrsd8Fd/LBphBRVpCpKQcXcSvFnJNIMpjil+tpN + GSUG0RAQQr6cUKDbPZ2CwJMwAD4jkogkHBFrGXdINwdqqYyP1niTawYRJjW7XTPEotacUzNFhBKDT6jG + o+8yVWq6AAVrNQ0OBrEJaBNgm9S29WW/K21jqJVaMzVnZ7ZRY+IFNEYkBmeYVULNRK0koA+BUpUUq4Nr + bMafihmkourilb5r1cJYZ6Y88tkv7fM/+dYLwOJ5DYGjZLJj4JsRWZdpi82D3zf73GOxHoauKH0MdCFw + 0/eI1AWkpJ5BjNU8gYhSYmaWjjkOVFVfvJWG5qmeMJ0vF69+GLlHAGLy/ITFXQTXUkzJM5WeiAte4alV + TbcvmoCnqpK9CiCbrkSRaHmVkqEGpNrv+97OydHXjC6VTtloSmDzozVySYr2zHzTCA4U6+dLSkov4puT + PZ8nwwvwJAzAWsLx3WMplW1etMmWt921vWzpG192k21czIL8EjWrv+yg12dx9dMCWtkc/kvU2L7gGr3X + tfeoX/p8Wf7hNJ7mFbSylCyXfH0upZigRSmNENPCoFYKNc/7Pd9F3/v5+jYuXlBVq48bILFdR8vwr3x8 + 4jyFonVzT7b5kzWx2q5hTaTK+vyuzsW9ENl+oucDVBcvq3l34D0HChpaBX9t7qFWb3tuJeD1Oq5u6bb2 + 2mqZItd/+9ItvH6aT2U8CQNgsFIgX5A825Yxu25cZxnpfm+7xnR/9LdYqW2qlVIhVKHDYK4lm1t3d2dJ + szRNiBgjjCDMIVBDA9FsH6xuJmqgdfCJCLk1+daKlrJMTIDDrXPbJatcnKdCKZUuWottqI3Wq9KJfU6U + RlphpuGkUCQw12JS5GLxfCmVz13j8O3rNwB8/N1PSF1inCpBApcpL/DaBe635DbUfx02E13I1RKRUzFg + URDlzrfM3pNmdb6AKikbYelMYa6ZLJGxG1AVYtj583CJsGjF15KNdisMA2Hv9wfXYjjZYt55nW7hArAs + AJdxZC4XpmmmvLL73CoG2QFB6RAIqaPMs7VqO+lKjIEUdiCw6yx3EtXmwXQ5e/jmt0oVQkVCpHOmqXKy + zy8NvkEE6Z7q+n+a4IVvxjfjm/H/zXgiHoD5vtP9I+NpRPZKqBFiJFYjatg7V9Po5BiUo9WLXedNEIp0 + WDrAcrtv35kCzQdDTxDhdt/TxYgGSwhOCmePS5uL2HAguWaaB2uOqZOK+C4aQiCJq/54tcG2c6ELxkYT + 3fMVEWuoCZYfEIHoQKAbd917jBnoQmAkUBBmMd3CiYwI/PjfWDfqy09e0A3C7UEYhsj9g3HuXyfTNmEV + uMR3S3Su/njZXPNk1T+ed7ar7/qEoMQuo1oJORPmI10VYjFaMon2XCQaRJtOmYO6LmJFU7acggjVRBUY + Bg/OHdfQibXxXs6VPFtJMgoolTKf/Aq2yUQriQ5dz83tgdu7A/OcmabJkH6zeXzT2Z9lqwZkywEpLSFs + CdGQM1LuQWDf+9G8qWk/nunLZO3ivyKs+k0eT8MAtIhctz9zdcO3TTvvf5X1RZv3fPlhtXi5vXR5bzu8 + /u2e3rbZRTc//8rXttDX3flGdbU9zvpVr86pGY4t7fg1AYr9bw2x3+P2/4q70IIDef8X771Wt/kTDPz0 + PjXHV59/uz+/6qbYQbYxv73em462L5VraPb156xdnNB6D/7257EdenXm22mnm+vW9+bcl+fkUxhPwgCo + UkFzyXOuOedQ5kCegoQIk7frtjhyb0CQ/GCaf51Wa4JRYXaG4PFi2d5ovcQ8BNt1QxS6Uhj6gS4aMi65 + 7l2plodYqlYblNiSaFLLG4XSKl3XNNdazQOIy+L0fxqgFtf7s/h6cFjq5AXBVCtVK/sQ6AmUoMy1UoNy + 8bLaONoW/fnPP6Mfem6eP6ff7Rg6YRoipVSm5o20Cb4ADt9nPbbvtz9ln9yt7VhTJIpBqQOV6NZDSqWO + Trfl+IybT+3ExTgAACAASURBVExN+e3FWpuVStVMrYGaZ1/grfjpkWnXm02ooyUkq7EhW57PyFOLtuYs + e2eKltU4XU6M08jN8ZZh17lX49TecyaIcgx2jqV6urCowybCJklo349ulAfHNezugkEXJOdIzt4uUX+1 + dfvNHE/CAEBravNidsvqeuYerGYMBjBpixEg+GsrJpGF6qIp39CpxRF8RZWolj22rLvVHA3Zer0Y/Fdf + dii2pTbZutosW3vjGcBBLab002A6OIjId5fapqEvuuYFqFqTjqordymzL+JpnEDhcOd99mJw55bQ3lYv + 3h/yFfWP5v20K8n+/qpNNUgXdF5Qb3JqWX4/p5jkagfe7qpoa07aHGS5gYJWQRY6ovbma/fk+p7LUg0o + TteOLJziVjXQFTvQyFQbwSi1tjZQRNZq0vb8gvNFGhOFVqCm/c2vuKu/ueNpGAAlA3ma5jxPc45dTppL + CEGRabT40bmtDH0nIJu6ubbJmK3O33o6mzSg04I/1EwMgYMqO61ISITYLaVFi6FXt9SWii9xdRqtWinF + NPxKroiY0AjA0EWfQ9G6B2HB2qMFca5CEUF8Una+uKu0EmH1fbJS1DyZ5KQhbRHcv74nhMB+v7NavkQO + Q2SaV+LQf9sNt2vS9XtYhUH833m2hX6I1jG4QigDSCJEYe/qO2U+29qaR+pU0GJ5A62FOmdiCvQeOuW6 + AWi5tbKO4w0kWkF0W4nx9zScRJmtR+Ry4fx4IvYdadhRa2Gajahl8Nm/NAGxqfrR7I8ZIbPHVlUCePXK + 8kgi5SJSTkDmCY4nYQDEPICcc86llEypIWwsuMLSqRYajrvVgNvesoACrN8dWDj982yL7uwKOiFFFwaB + IUYqjg3QTVnQJ4m6p1BpzonXp2t1NKEbIljr0ItUZ/tcE+NGXRxTdZnQjnkm0nbvhkysWOsMpJZz8Il8 + eTwDQr6M6M2OGIRd3/nOLMsCBpad9UuRa8M0bO7fkjdwUNTkjMEdSgx2fxfAcYiEIOwOVp49lZPf89mY + l5YeB4ujpJohM9O2nIRBi6/i6xahewtxu09N6ETn5dkqphQ0jxMqQhzsWeRiYVYpvmk0odElUJAVLdg8 + S38uDdV5PhqD0vOh5F2qkz4h8M92PAkDULVOQEXrFNCJqiHn2gcRshryT5yqqQ032Dah1LXuVY2EwkUi + m9bdNJsrEFPyXaeQS6bvu8U9xNF0rR10XpqEkrupbX7axAZzLQXlMtlxbnrLtEt4PwnXPIAVO98WZoPD + NkWcoEYY6o24V0y/LRwp1brlLqcTxxTobu5INz0pQmeANqayUqG3916ZAl2/qr73O4dKFdf+m3JFpRK0 + EMmL18VyNXA5GwkouRDqGrqhlZItVKE0vv6WVovtATqq0JIwQQwFaqGQXcQidCIbMhE1b+9yubCLgd7h + w5otrmqCwqY0vIY+pg+wCVlE3IivSs+jX+LxPF1Ez994AL/OUWuZgEwtlyR6KaqpzGpNJ34FXesgCw3Q + Yg+yFovxi67eQHL5qKZAczo+2O4Vk7HzlMxlNzMMvRFoqJKcS766pPikERBC1yMhYsmiVUJMaQKZyskN + zYu9NQGFID6BZUkkBLUUR6BcTejqLmhZqPWsR1+1Et3DaSWrRtQx5xlVOD08QCncpcT++Q2leEdkVWYv + fbXjtIX6VaQnzXta42xbjNlfdc4mnZU002PudQqgGnBvntPRk4K5EGslqPtA1WnSRRHHUzu5k0UcIsaQ + 7F6RyXkJiXBltBZeoeZseRtPzhOXsxBTtNi+VHB49ewv7jvzvEIQk1kT8b4HWbQUK0bAcvRW6+zAqbcP + l8s03j/yBEVB4IkYAMy6Bq1lotZJIJs+XWV2ma+ub64h4Igv1UjJ9Yojf3kNa1mole3UE4slz8yjwVrP + vtN0viPXhRTDmlSDT8z2z3DqdQk1RHVpO21JrZbEW5KBi+Mpy9m1hdnIMJpkWLhyVf1jfXG2XVWcOCPP + mekyGhJuzgRtyEMQz3+0Df86pdZ+cJe7hQO6+WPzDDw2x5tyDEqt7q0o4zhvD7Nk89vPqpWqhaphYTiS + tou3/E11qO9y/8y1u07CfimIYdUUmK0/wzsqU0qGtYjvv7YZb5b8TnXh0VztXNo5VjHjW0qZcp4vfOMB + /PrG7/zeH0wA/8V/+d88AG9DpE/7gXmaeXw8G4hn5+KQLkq56wdKp45kAa3Fsv1q3PuqEF1QUkbvRnGO + u8vRG1Zi4MGVY4e+u1ohjTUYhw8Haf3zkRg68wSq6cmNHgIQrC89UYmqIBFC8uSimanWNtA7xY14qaJ6 + o4qoEqOsbc1+Pm2XAojB4t/T4wOX44l+P3B3e0NMied3B+a5cjp7L/ziCeAJ8MZ/2Fx0Nw6rHVhk1Zvw + Z/HmJqlKrErQQqczCJzdI2oBci51McqIswlrpZSwxOSD34M5G0AozwbQQYTYd65GtHoraplDuw4/TnED + lecR8szcRcplT4iJu2fPga1mwWnJF1gFJpggrLmRlGLPUHVpBmRyT+18Pt9zfHiNaQM+ufEkDEAb1QLw + HFbP2HZR55KD691dYHHprsqzy07ZXmvehIpsQuC1hTiILI026JoUMq+iEX9YC6lxypmybsO/tyRgqUoo + lRpYFvrixy5Jt7Ybr8lG2+3sHFeQUbsYf/VX1p8be041fT0JS1JxAQ9trdqSY9vu/MqXX7l9z3WSsL1j + Jd1o6sDb823/t6t9P9F4tbA3VRy5/qDlXL7kvbz/Ci/7lZztObXn30qtThL6JTZp3c6D97wgaZUlqtZq + TQpPcDwpA/Du3WdvgZ8/f/7h7m4//FZOgeiMvheX4r7rjXcvdCbEGRHGNHO5jOjZXPKx2KTZO3iouc6X + 84laC+fTkTlPME00xeA2mjS2pRqERjGfgiz/hhSt4cXn2uy98l+8Mtqxbz2/YTcYp31AES1Ovikw7FCg + BG+EwRZrD3SlMM8TJc6EUhFp8ldGIxY3HIcA0zxRFd6+esV8mbn94DnfeXaHxMCzvT36Lx6ahLn9P3rs + 3Djxrt0e/7rYhKbv5/qMBDT05PnCdLqgWsmv7fO/9dGHFqp1kZgCNWejNxPLz9QK02SArM5nZUu45Wwk + rkbt5YYQl0ITX6R+bsEDqRIiSvCmrMrDu3tO90cONzfc7G8REW6/9RyAOjmrUJlAlTzN1FwYc+U8GkPy + ZTavaiES9K7H6XT+VN588WPg/qtn7W/2+KYZ6Jvxzfg7PJ6UB/DTv/rhp8APefG9Z914IQJ3NwO1Kg+P + lmwqebRd5OaGEAOpu6UinB5O3L8RpjwzPj6y9SX3tzeAMF1OlJzptFiKL4VFq6+9vvguW1oGOmwcWU/s + RSAJJCKI8s7LjJ9+7tz15SN2+x0x9sTYkSTQh2g7vUNQe5fuGfrePBnDFMM0IXMmlAJOjV2jJ9ocflvV + dt8UrSQ4ns6MjyN5nrm9vSXEyN2zWwDePNj15LrG0K0PX7futchKTb5g4FtCsn1t3lGH9IPlXc4mmHv/ + 5g2CkA4HUghEtfxDUEMUUpVcrKmpugLRPI4o0PV3iESr9YuAZip5SdpuE4AN5KWetAva+gIsa59z5u1n + nyIizJcHAO5efIiEQEw7JAhpZ6CsrlR2cyaXwsPjBQVchIl9MP1FifVv5PLmh5g24JMbT8oAlFyqlWRX + bm6L71dm3jV/2/4mBMdzL80h65vbN9ugevlT+wy4nuztOG1xWFZaF5vS3huuf73kKRrRhnhdvy6f5uey + +WqNN37eLQu++dqMzla5RzbBsogsi2H5qnWpMnxV5qC9fb2+dh3vxchsXrO5T/Dle611e3+uj/1V5wDX + cf21mtOX3/GlHMgarF8978ZeDLokM7eGbpGDc12BEASpfj16PU38MXg69mmOJ2UA3nz6iy+Av+h+8dlv + P8iPOex3/Na3PwLgZm9tp+fLCAqFMyFG+l1P33foLsKzPeMYuZwNlXb2/tbiHIKxZKAwDB1hMDhKwJJZ + 0ZNvU8OPt3yhyjp91Hb+KEoXAx86Sckzb2/9mzcP5FI5PUyMZ+X5hx9xuPuAiHpRsSL1BArZG3tiqFQJ + pqgTEiEJ0IHMllQMSrfE5G40amtrnU3hRyulZi6XI1/8/FP6Xc/N8zsAdu5plLEBpTbIu+YLtDIjGwSl + Qmyw6LApozpWMhZj4Y2DE7XkbNc1jeCkqQSsbr+URFlUmAFkttzC/iaQuohqQAkEKpN7DiU3BqV2xq5u + HNwoBlvMu13H7c3OFnI0FN/xwQhUcrVmpLvbW7oUOdzu2e0GahFKFkqNDF4ochFizp+/mnIt6Fy+yPfv + fsoTzQE8KQMwPh4vCKfz6TLJ8UTAyTsxcA+wCDksAg6qSzNM10VKDiQJDtNtE9peatIUJiYSvXEk+PJO + rr5z1TMn0GCxbXc3g6HEENh11pkojeXW3dGSrfSlCLHrVzqtmh3I4q4tVnKTAEhaKg0SxJlqAji/nqou + 4UqQgAa1natRnWPQ6XkcFw8FVrWfdV9dt7mlRXkpRfi16+Ye+G4vGJFpq1CEEAwb0Irtc3PNrdy5eDay + abFd3C4/Oef3i8GSp7U6VtITsCua0A0HeGvy5iG5pxRjtI1A63KmTYRlni4GOc49Kp2JkyShiBmPUIAu + UnVV/zjXUimFWvUyns8X1afpBTwpA1Dr/Bb46Xkc3+Y3r2udp/D23TNr4GmEmEMPCtNkABNBjKJLzZ3r + usjN3khE4mQx80Mx5BxdR42RFIQYjBQ0Uoy40ovGyevm2XfJ1ptiG5kZjFArKQaGLiHA8w+eAXCUyFwq + 58tEzjODjqT5REqBXW8Y3VaKnM5eQhwvFl279kRoaicCpWYHydh1tmadGCPV6bW12s9WCqucjkeKFman + zto5r/5xnI0meylJXgdVAA1m1xbsWsp0HF61kqfUFevfjFLnuohzrd6NaZRtqLVDS+PwU5hdG7Af9sv1 + mORatYpJMtrxUoKVWlqMsjm3iD+TWsiamUbl+OD9B7gykPcR5AaLzpkYIrVOlHww5KGTzw6dfXh3Y95c + /jS/rjrVvO/enmp9yzc4gF//0Dw+Aq+ncTrl45EgUk/nS4jRxB/A5L0ALuOZnCtznM21DoHYmYDnbjDu + ePGt/3yZbOdKBspJ4iUnzXS+EFLydlrf0CafcMV7yNvuR62+4wQD84jwwg3Ay8kEN1+/es1YZzqdiXWi + I7LvDAmXHYjTNpQ6m0utXWc4+GChgPHbmQKRuAfQSpQSA1GFkDNRAlUM1KS1Mk0jEoXivRP93iZ0w1Ww + 7O4t+l+/sCz8TbKjPRuESmlte6uH4R5AcjHS7E06dreskyFsDqGw8PWnNCyw3BCCG2PvnkyBTCX7tbfR + EpTBnAuK8yjMszLS+jQ84elAsNm9E+aZGAL9YI1gMZnXIEHovavxcGPveYjlsZScdd/d/+x4fFw+9ImN + p2UAVC/A2xjDu6D5kZrT4/FySCnyeDJ+pyF1gND1iZAUCUYBlkJY3MnOO2Kk2kN9tvc6tmMKFgYZFage + m7rfu3NkXqw2iWcsoef9fDbzquH9x+JgGN+Z94ed4fDPHX3I7GIllAtSOvIcDbAzlxUAw5oc1FIoTN5X + bxUDicHDG1v4C+K4GYSYLKyJ5iJXrZRayKVwfrTs/N2N1cL7GBB1pN57Mf+aEvjKGKA9nOZxr4m6RjS6 + fWv7V9Vir4Dx8G9MjkR7LnEYaOFCqauHtYYZYqEZssCtWy+AiwBRMBBPoRp1GsYRISGsu/k8oSjjlK2+ + /yYwjiPJDUBKgelmb3kCpzjL54fXeTxPaJ02pvLJjadlAObpXuA0pPhayG81T7u3D6dDioF7n9Aff/CC + EMQUYhDyPBkYpJo7KlHZDR2qSu+PrbHvlGIToailskqp5NrZpHCRj4NnmyZf1JdiGgK5tZ9UQC0VdXED + 0PIDt89uQIQwvSP3BVKBcoa5MMdkBmAqS9JtHULNM9Rsbmk0FtrYJbQWpJhHsGjpFTdwCUKwtFmkonUm + a0Zy5vHeclYf/dbfB2AXE4nKY52dQtxyGVd04J5qK6FcnV3b8SWIiYigRp2kdZH5aiFULGY/ZJE6E5uF + 4sZOhNDZIuv2B69iZAcLqRO8rEav7y28cW1YqoOu1Esws2f9c6kWKin0GglBGXZWCh31AUV5vD9R5pnT + 6UyIQkqBYejoUuJbL54hIdDv/T3vfvlpPj+egMtf/OjHT3L3hydmANozppYLcI9a+0ZROB4ta56f3RI0 + EBpVcwgULCnVRCTEE1oNgrr04Hs2W5aYvrmXsqSZxSd/4+hfS1reCe+EJAHbfQIweq6hCe7MpRhJiGZL + 1BGsFVZ12UGb0Whbp27+LX+j1bddw69tf560W3ZbsU8QYWl1nScLAVqyNPpOGqQdbf2yNgFsC3N44UOv + HIJWRMMTaEv04PGFJQxNNi1UDM3n+UXrpRBCSxy6NuMqauL7/5ruWJ7lFVxjc/qtT8NvHDFEhmFnkmFO + CSdj85gCUgzGnUsL6qyZ6/F4JoTAu7fvADg/nt7m8/HJtgG38aQMwGyYa8J8+kLgh9r1H2cJv51r5a8b + I+7zG1KKvLi5o08duRt8Ny8GEtFKjI7v9knTB1tAyamssmf7jzkwtqZbscnWextdnoobAKsctIpCK0mp + KrOXDF+/td227joIwvl4olwuBJkIEojDgV4GgsBu8PbTttY8QFYJVGe81VoxfTwj+dDeOe+bPFeYzAiF + asIiznCl0UIjQXh4Yx5T8e7GYRfpSVzm7MbJj7+FA+t6SrCRAm+/c1owEZfj1kKqjXTDE27RYcaYsGvG + DbQE+q5HRNgfTFrLlJV8CKgkCL1DnwuilS5Y0TL650926bTiYEsg1rmiuTLsB779ne+BCHtPHD9czkit + pKFHonA5n5nnmXopC0vzmzf3CPDq1St7pv/nn/xf+d2rt6CP/7Z5+5s8npQBWIbWqjCB5rb/ts2pNZ80 + Zp6mM7dtnmmvbXiiBg4x2i/ngPNdZynH+f/bHmt+hO0x7jBv4vYNiQbrjl0aT10xklHTAARqpZRidOQq + m0y8ez2bcpclCJVFtWa5LNl8+1UMw2sZD3RNMrZmnSaBtYk9moe0TfVtR9tsr8MV/crXvj+ao7EtAVpj + V+BLoJ72cdvko3rWcnFOdHlZy0dsz6C9dMlRhHUeLMfenEs7y3Z96jdy1SAkq+qTbQJq40kaAH336c+B + /3W4e/mD3eHmPy2l8OZoikA//tHfEETof++3uLs9kPodQ9dTqphSTCnMl0ytyulkYUNqTLzBsv+leg4g + Z2KuFGB2Q/Lg7uko1mw0B6PFZp68jp+JTkuVHIxydBKRt5+/oapyengk5+w1caUbThweR/ou8b2PvwWq + dK2sPMuaoo/RS5pnQuwIvVUtajKF3BhtcvZpQNXkwasoUlyDQNZQ6ORAo7effwrAB9/5HqnvOJ86tBjg + aS5OTvKljISNNnnaCgioJ0srIVg5cGnt9fvXR19U1cRIa+zo+wOp7zl88IF5AK5yrG/MA8jZjHIXTRIc + 6SAEaskUT57OF9+IWzLQE6Wom+kIoYP9ruf5Ry+tgcwhx4fDLahSpokYJqgQJTJNI8ZAp5Qyg1Yu7z6r + AKfT4x/Pr37xGU8UANTGN81A34xvxt/h8SQ9gNMXv/gp8L/cfP8/ygNTrREOz+4CwOdvXpkL+KOfsesT + 3/3OR7x88ZwYO7rUk2KkO+yNtNPZauajqQlVJ5VIfUdMif0u8EG0+vw4WfPJO9eGa2S+oduhIVJDooQE + ZaTMEykIu85CgzCZ1/DsMKAKh6Hzmn+xOnVVcp4pJfOTX3yOADeeNd91plo03EYDrlQTHSipclZPmnnr + c3KwTek6qipD7agFYlKKVooKc1BqDWTnGPvsZ58BcPv8BaFmhgiyS4SLorkRmfiNb262AjQizY2LDK2x + wdWVZaFLUCcdq9nAS8P+htAPpJtb0t0zCwfclejcY3rmhKLjVFwM1GIak4UPaNej+0StlXm0XFzkgmKk + KYipLVELIjNBM8wnPv3xX0AQ0p2VQA83tx5+fMs4BE9H5vHCOF6I50QpxZLMKlXffPYjgHjz/IczfMET + pQJr40kagDLPVYRJRCar1+tCndV4+HIp5CIrkQMe2y11flkBLXy5jru8xqnHYpBVZbh94NV7Zf3jUvte + jwc4nZer9kZZwEMLilRZKacWDsDWqvLe2Ma87x2HBof1eFfa9SzXvr52aYjZIOmaDPeaNlnzG1enIHIV + H8vVS2TJ2H/VaPfWFnNcGpXW+7kCjuxc5OoUFsrwYPiF6wYlr0Js74eHQKghJ9GNspBXRyQIgbicl/jX + Rkdm+VBLREtIlSdeAYAnagBUy6MqP+lj+i73r34kIabD3Xd+G+Cy26NaeftwAZQQIpfTmbvbO16+fGnZ + 89QRRbi9MyBIh+1KIRfTl48gZOsiVCvlxc5YY1KwGvXFM+Xnkik1M6oyV7WadbEyV6PbapjZ1FlHSYpW + p88xkqvRVI+Nc9BVgU9e1C8hIaIwF3qyadiXjOpIuT8SYuD2hTX2hGg7ZmriKKmzppjqNXSMkRcC0ZN+ + 57MBqO7fvGU8D/T7A/uux7uNqegCZLpOBm4WrJdWl0Sq504Dm3vgCVBSj6owEdBc2OVCmgshCP3OqNqq + Q4GDG8YhWJUjSzPwkTIWb+yJBIX9jdXns5OTVC+rtkYvDUINAdXM5e3nAExvXgOwc4KQ3e0tMSW6PrE7 + PEMehMtolHM6F+Nle3jzR3bN9QIuWPOEx5M0AMfH+wnIMcQT8/hISCnFJiUdbIJNI1oL5/PIuYsM/c5b + Uht3PXROPVNSbOl1W2zizTkY8gxPnqm6uAfQXIBSC1nUIafOcLv+2TyPsHoAa6PNunu3Rp66WVht3eRq + +ISiVj6TYsy2pVjlgBQR74EPqfEi+u4cDAKE72ZNgajV3AFmFyHN80wIgX5vPALRa+vbFpcvb+bNMJiP + shKi+191pRFbvANX6CnYLW8em2ClPK16taKELV9h4yKstoOLECSaXXEIeIxetq2NXt0rNp75r0Up84gq + XLKFGrUYsWvqe/eQIl3fEZNDr5sHpFqZL6/9vJ58BQCeqAHwUefjm3sR+VMZDrtdn/5DgF03WG08ThSE + h+OF6TJyPM2cL5ndrueTT4ye6nZvk2b2rj2dM4pz1lffxmpZJo8Nm8kpeYwuybrESiXXSq2BkoPvhG1x + efzbmnXcdY7WzogGKE26y1+TfWGO0xlF6FOgamGIwbrapkI+F2qpnO8fAOHwzFdZTB7TGi2WREMFiuGi + EVGC9wI0Q/PwcCJdJvrdjq7riAGGPpFzpVyap9us2op5aMzAjQa9ga0WRWanNou7Vo617oqa7X7FMXN+ + eCCliNQeZZEHMOLUdgygzMXLvK2TMFBqARHC0Lwfu49V7H3BAUnEzg1AoGZrGa8O0LpcTEiF15Bi4rLv + 6IbE6XTi9O6Bkgsyj6C15vH0L/xmPHn3H56oAWibyfzwxQn4Ubx5ftv1tjP3MaFBGaOVyM6XC6ecmaZC + zpXb2wMvv/Uc46ezECA2nQAL9w3aqmqrY6mTyNVuHoM1+gwxGEgnF4PylkqJwXjkHNa7SGq9H3OqEp03 + MAVZGGdVDVoMKxhmzD0EoesGwtDZR54txzF5YnJ/aEzCNx73BjtOrBYnq9f7a12Qc+1ens8jccrk2bj6 + ggh9FzbwgW0mYnVvzJNZDYN6ZqP5BrUZgNj57pqsXbmO1JKZ50zUSk2RlJpX5MbC/1vyi7lSc0GCGtJY + w+JFRQ9/YjSMQNueA94tGO1+FAGJaYE7b++x5kKUwHxJdH3kMo6MpwtaC8GkzGo+vv2R34RvDMD/3yOP + 5wvwV2F/96KJSXR9T1WlG60VN8dE0cpUC/fHI3PNfPrpZ8QYOLjRIPhUcxcUbfRem6lcbR7NPhuP3kE4 + VdPoEc+Mt1BieafIYjTw3XGcnXhzaY3FQwf1HU6ZfHeavNoQw5lpzJR5YhovRAKdlRkQz9aP3kKsopjy + qUF7owSLf0N8DzO76g7MpZBrZbyMjH2HpI6u66hxpSqv7yUMbefHM/Qe/tTix/Vd2sOS2CUQ6NTagDuT + CCZIpWhFi3I6Wj6iVTPiYB5BXbDGAngDlKjDhC2swSsHsdp9fB+54KaEIEJKkVp1OQ7+tJKY56RiTVGq + gRA6VDVrvpxQfVTVT/1NT979hyduAN79/Mf3wB9/6/bFh4NT4g5769ebx4vz/xeqKJd54uF8pD9F8ngm + pcjzWwOcfPDyOSEESkq24TcRYqzJFVw1WBX1FuI37y5UtWRdUdvhLLkIQ1obYKxt137WeTavZLwY8s8X + lAQhpeTdesbwexltVzehX2EaCyFEjl1g10Vu7275+DufoEXhYobl9GALKARLZPYdpGj5AGKynT921rbr + u2z0c734uZ1OJ7og7G9vOBx2UCtdNCembEhWYM0ArG6/8QA0Ag5ECDu7x2lvrb3iC1+rkkIg54mSC/OU + OR/PVgJ1d37orMxp7L/ieY1EFOjDyv0PFRnt2mOTC1+eniUQmowaEuj7nlqVwcVkUnO9PEdTaqFUU19M + aYfWmst0fK2q93U8f+MB/AaNCpxCTCedp3uA2HXPVAnRF1SMkVINE16KAeunbN1l9++8JfbZLSF6aSwE + dFvfrqsnoCgXxw4cTyO5WsdfqdD1kCqW4feyU/QdshFOzKV1pqllxz1baAKimVorozfpzLmRYhxAAiEk + z2gVpjlzGSdOxxMBYR+tbRYXR9HNNRT3TATb7Y3kYsMf2JaxWNku58I4TvQ7I/UU1UWHb+Xrb56ABwC+ + +JvIBxhLnuUcXEBMBrtW89BdHk3MSIdoO7S2pWqjFCM6qVGWa7Dyod2KKC0dIbTW5cZw1KVIqEqtFloZ + N6TRimcNVgpt/AmKJSLbB7t31lwfjZJLmb9AebJ9/79qPGkD8PrzT0/AX/7H//k/eMvbR6p/XwAAIABJ + REFUX/4ZwM13f/CPCTHkeaabRu8Zj+R5JAUjpHj1eDJ3/k/+AoC7l8/o+45DjHRdYi6WbNJidXJBickm + xaevjEn2X//4c+udx3bYw+0du8MN3TCwu7lBVOl8cWRPuE0OVpmmQq0u8ClWsirZjnkaL6gq82jL4D/4 + /e/SD4NxEAq8/uyXvHr1iofThdPDA7v9jj/8we8C0H3rJQDvXLl21oIUqzCkaKt4GJRaMlo8A14t1Jir + Meo/PpwYHy+mtnQYiFU5DIFcKseTJ+O0JTXtORj3vlK1eBIVX6xYyx8g8eAhgS1mzZEkSqmBWo2gxTqE + K9W9n/Np9M+IIIGh6+n6RIrQJwu39k2TwBuhmqLSbrDd/DwW5mydhFEipRbmaglZt7VMrveXukiIwaTU + PDSzBO30dn732f8scNInDvx5fzxpA9CGl3wm2IBHFkWgLSik8deJY1t8QudCDkLtumu8i0BzdKvXt5c2 + 1BAMM7ABoKjH9LVUJ6TYfhibJp3AImtrf1jPbfm+rsdpjSpiu2p7XfWdNzu3XepWyq4WNqsj6K5EPzfn + /JX3s8X0tVploh1/8/f1++vfreo+zYPyvESxaoq2C+G6Yerqli/n+eXfrtfzVWXJ68+5fpQNVHT9tR1H + tX2zPbBur2sCRr5m42thAD77039+Av4pwO//wT/6xyGmhH6LnDPH+3dM5zPzNNGPF0rJ9OlC1crDyRqI + /uUf/ytiCPzgB7/Ds+e3hBSIYQfTBcpEroXHcSJX5fOz3bLbDz8xF3uafMceOb97x1kiId0TU+TZBwY1 + 3XmuIXjM2TlIpanW1FqoxXadLh8ssVfsOC8/+oh+GJhLNtahUggSuJxPvL5/QzydOP3xvwTgH/7DfwDA + 8/0zgkTuj4VpNjnx6mW5fbczYoz96o0AdDGiIkxz4VIr3fGR+Hllfxj48JMPmLPgmCHeupZA8TC4GQqt + 1cqaNaN1NE2CVxZm1YdXZgD3dxATodsZsQmmpqQomgAV+t6qM14JXVSbay1MpVJFMOoR2CcDaDVyl9nl + gi7F6FxDnIlS6UTYx0BRZcZyAPNs9zj4pt5EVjUF6JVyPqKP91Xz/On4y7/+b/mauf/wTTPQN+Ob8Xd6 + fC08gNef/uQC/PcA/fzmv2aWZ/t08zKnXV8mk4QOKRK7QPEdVFGLLYF35zOg/PAvfsrQJT755EM++OCZ + JalStP6b2ZJChxcfANA36il3F1tJbxpHLqcjtVbefWHkEcd3xj+/v7s1LrrULa68avS9q1jTTwREuP3A + jhMQa8rxuvWu6+Huli4Fl70uvHqwvMSf/B9/AsD3//B3GYaBfb/ndp84P565HC+EGEmttOa7LMm2dSle + 7UiWkLtMmc9fv+Wl3vC9eEsX4Hsf23vevrXjqWf/WxkwaCFqRspMnI/m5TjazjwBJaQ9SCDePEf6PWm3 + R/Y3pq4cIpaA87DBNncwKWBqKdSi1CLkUglBKK7fsPe5EJgB5XJR5gJZcSVBk4lOSXi+T1QVI2gBztHu + yTSPFC2kaqhPSv50/uJnPwT9U+DP/9/Nzt/s8bUwAA+vP4NGy6y1iki9UgQKDogJAanOp69rA5G3hZPn + QsS4ABeYiNeFW1AZ3Gg0qEorHYkUNARCznacVhZjZbldKgqqXo5fGPe/FKPGrXi9vXuTBQ/LP9W6EI7M + G+59VUswxkXF2PAJy/GkcZy1aoAP8Uy8WpdiIxYRDGV3dUZrAuD6HFl7A5ax5AKyIRSrMfq0c2rX3nIO + +OdsA/0VfrDmAb6cRWg5CFfvXWBMy5+dIsxo4sHzRXbhS34IQJRMzRMwnS/Hr0XZ7/3xtTAAeDkQ4Iu/ + /JP/Ebi9/b1/9E+6Xfx2niJCT54DcwiUZOIbRgvupaODlfgmhTxlPnv7wHGa6QLsoguDkFDEauNY1tyq + eA6oEVPpyYee6W5nLaSPj6hWXn/xSwAun1k8nJLFtF2/I3W969Hbo9BqRmvY2Z5muASlaeDFFOl2OyrK + fhzJJTNOZvvunev/x3/116QQ+ejbH3O4OSAqdINAyUyPox3bS4aH3o579Lbklgcrc2WeZuLbIz/58S9I + KfHJt78FwH4w/P30aPkRqQ6fLhOUEa0zZTphBX9bem2x1TpRK+R3M0qku7lDx+d0+z27Dz9i2/04nydA + GWdrm9bi59hcg2oZ/CCgyY4zOP34TRJygHMWJm88yFpMT2C0Y9x6u3HMni/ojcF5Ol/I00QQ/Tfjm0// + O+Dn/z6T8zd5fC0MwMPjERyY8fDpT34B7O9+/z+ZYrQGkxSNNabWuCwiVe/KA4rabah5pqrX+kXoo0Bv + ySZJNklaA1Etvtd5HToGJUVrRgpdIOfMnC2x16jHpsvZJmJKi/dhCyMRVhwsqkJMdpzWzmsLyaoOMUVz + 59OmAUZ1Efh8fDgSJXD7/I7UJ7qYSDFRi6I5m2SX2nu72NSEWHZbFQPZlKpMU+b0eKHvE9H30QXYRPVe + gNY/Yd2KlNy6Zt9ryZWFY6Dk0ToGU6IOO7RL1gy0wfHVMNtJ6UxDZzqKiCZGotU6FmmgTjsUSWxnH3Hv + ym1RrbrAgDsHQc1OS540IaqU0Vq1BR6n+y9+gvL6/+GUfDLja2EAtuP8eP+/A+n8+c/+s7HrP56lS1Vi + Ui1onX3yZK9TNf7A7JOruNtpcNKpVPLJuOQffIXIbPF8g7imNBBCXCZ6LTPjeKTkwng5LgvEDmR5gqZ8 + U3JhPJuGYeo6Qkjc3jwDEWKDKXNNutE6/VJMDMNgAiSdqSE1T8B0+JTPPv+Ct+/uubu55e7mhgj0WA9C + vljs3wxaUKtIWOBdze2PpmT06s2R3dBxfrT33HjPwbs3mTrPyDQ6q3Gm1tniba+Xhqa71oh+m2vuLvx8 + OVFKZjw9kHM2VOTdzXLtDW4swRc11v+gZUJCpOusx6Cl53Nx1Z8YiSLcoHRF7bo0EdCFzDS7x5S6AUHY + ddalWOvlbT69fkzl8iNV/TOeqOrPv8v42hmAv/qjf/6nQPjg+z94G2K6cPfywP7OmXSKQ3m9cbX14HvX + nlDW2r9AzpU8F5S1RbX3hEG3MynpGL3ZxHBmaMnk8ULOmTyP664FjpJT8mwGJ8/zkqNIKdF1Pbc3dwgs + BsDoBdc4XbAYNsVAP/RIELpkQJrsYcQ0m6fx5s07BKF8YE0ufYx0g/EFtk64zqmxA5XaOiHVWABDipS5 + cH+6MM2F8WLv2Q97M1JqTTJMF8izeQRid8vCI0U89q+yqbcDTVMxTxfqeCacT8zjjMTALnwMQOp3NGUg + cYHUIJarydnYepMLdSzowWrg39RFy8VQ6GKlqrWJG1bD7n9xJNAuufpPjKhEpjo9hvPbz0T1Zw+f/6xB + f7+W42tnAHBrPT6++UuRsCtVvl/P47dzVsbJ8PfzPIFC8S6wXGZPNpcFYFJrWTDqtoRtik0tCXg6IsBl + fyLGRIqRFCPzPDFeTtYY4wtdFwz9BijDCrgRVbJ7CZfjIxKE89HyBV3cIRKWnVPbZzjeXlXpe1sEs2MU + QoiOy7fPn+aZ4/FE3e047A6OPvQd2kFEUc35ri6ggUREohFpeEhw/2C4ibvvHhCELppKctZKLdnBSrr+ + Q5cEpZQVUIVCrWEBKBmgaUbHExIC+a15WbHfAeK7fKBL4lBfcedAydlr+G78Gt9BJ+KVBbv1QR04FQK5 + WrhV3KA12HXoBEIhaP5pPj/8GcpPfU597er/bXztDMDxfLkH+OIv/+h/Az6tH/3BP2H37NvTrFxm9VxA + 9t3J3iPJ4lPTrVPyPNH3PfNs7arqK699Bagey3bDQIzmiqZkKkJNvYaYrgxAm/xgrnyDm9ZaKdnUah/l + NSLCo7PV3D3/kBjTSm3mDoU4j34MkcPNLarKeLTyXJ4mNFTKbDyG5/PFWmmfwQcvP7QKQevpd12ApNYs + k8sMpSKpd6ou0BCYtfL5axPF+O7vfoKIsEugCeM2zJkoOP2wLjNr2Zn9fulC0WbNunUxPJl5Hi256PLt + dAOIeKgTGQZj6+mGjmG/QykO5xVac1Ol6RJYniRi2gEm3xYoCIUerUpuAqyXjIhwI1Ym7PLpT+9/9C/+ + GfCj+jVe/PA1NABt1Fq/APqS86OOl6n+3+19WY9k2XHeF+ecu2RW1tLD7mHPcDjgJommCYGwbFjSg2BB + hmH4xTafbfgv+E8IetaDrCfLL/aDZZheAAHeKBC0IBmyOJZHTdIkZ+3p6aW6upasXO6955wIP0Scm1k1 + LWo0HIpSdwbQXV3VefPezMobJ07Et7BzEB+2VX6CqftQKB8eMYy+jexQYLBkZhwbbvpodeXNuNJ7/UMe + phWi8+etLYDh3cqGfvPVgqC0YAJhsP1pnhVlGzeubmILbHkK76+ONckRYNbgYqO8YoySUgJB4K1nkUeK + L8bR5yjsEZNCee31FCJUGiKUN0XwnsYOf1mV9flkk63K99tf7R0Cih9D+SltPVaZgyknZM4g0uSdOavE + GTl4nw1abXoQoQbZap9tOmEARW3IFjjyttKRVXU59iskZmGei8gpbLL0LMczmwDe/fb3fxdAOPiZw58i + 579Ak4OZ33/hiIhRGfPv8IbqyGVj2l0uluaKQ+oIA0JT6545lw64s+YftNz0lRqBNnWNpqowaQIOZy1y + Vm59ZsbjCwUEFems4jRUbhBHJtFFtgIDOHlfJ0/1dIaqrjFt9lCFsNVQhM20HWazFiKC7lKbZ7Ffg1mb + euSAlCJSGuDXDovlXLUQDtWxuF/oFiBnnaAnVmek3HXgtAY8wTcBnDMeHmuFcXnyBI4IbUuo6gb9MmDo + R0PuqxWTxbj3L9iI7RQwYvH1a7bXmGIHEGHRLSEQeAY8yG58TbzNZAJyDoe3tG+wv3+oUmiD9lUKTJmT + JjQQwQdNRKGYoTRKVFq8f++tvDybC/Mf3Hv7zW/+KJ+/vyrxzCaAMbTFPxAhFXkondnTuGLmEXiyDcbZ + mott2CJbIJWirbdRGFZMUKGt2qF6DU+7rg/8aBtmM66JzPYhLlTbzYO3q4unPVG5bLq2Mpd9N7aOvu50 + dPVSZexfAABnVmJP6UtsPVNxLfogSOjq2a58Hb/des/LC7h2qIhoo9GqBq0EZHTs4bLqi71vbFVX6bds + VRibt6u8AkkiPMgVJcRnO57ZBJCBBQDUF+//BwDffeXVX/yVw5de+ic+BMwOD0COcPhJXTX+5M6b2lUW + 1RP0XlcY7QFEXUHMpG92ULTkWy2BDZHX+IzGC2pH2AsOQ844Iy29ndFOR2EbKelFRvRZGSVWRmfNNnk6 + e/gOnPNIL9xC204R6gmqZqKONTZiC8b9n9r4rFsvkHPe0HOVoo8Ue5ydncJ7rz6DABDM7tqwjcmRjkdl + AMRwDItB+xR2o9z5k/dARNi/MYMPHjkNcE6AnCGcbZtTShR7zdduerIagETgAYg4MIJWFhNVOV4nfQ98 + TOMqrj2DVFopoIVW6Ren2jhszcb78PAIVVWjafdQN60maxNHrWzu3870PD53IAAXi4t/9e4ffv01AG9l + ebb3/iV2ZKBd7OI5jme2AtiEvAbQnc+88kJX1cNn9m7Mjm5/8Qtfzsx4/8G5PcYDIEz2FVSSBpWpcs6j + 8g4ueDR7UxCAutEVs2lq3U/abNqJgDlhnROWUVV17t8/hQgjm/gGZVtDrfvv7FjyHj5UcOQwsec3cCJi + r8ee3H8PAGF29AKmh4cIvkJdt9o1j0V0Q/N5005G9dyUE7IfkHOEkEPfD3Dew12opd3UVsF6okSlGnr+ + nCI4DuCcEYcBAkFj/YneRod8sQYR0K875BgVEswZnghNpaM6Z83SWMp5s2LXImFjLQ5ycKEBnEd7Q/sT + cm4aDF5dk2AaCIq4gJmrGrbCcA0X5nm4PL8AkUM7napIy2SK6WwfzrsRX1Akzvp7d/6jpGFIQ/dNKOnn + mcT9Py2e+QTw6NHDAcAwbesVIF0VaKibapTp0ihiHE4/sFfEImicuQMbEc1tR1l13dHHly56ZnUnKkKa + mzNdjSvOPUTGVNxcQpbSpDMIbVZTUXE6lSh77IINKM/pTEjEma24dsppfOxmHyxXjhH9Rrv/hjNQ0pFA + CnQ6be23CTZp0Od1AhUlNRTfNhR460U/xUWIxmt0dp4rxBzS9mnpvZABtjaDFBmvCQCSJJX/SgnOe33f + TBdBCpTY3oPYLVcS+w5Ad//e3WcW9fe0eOYTQImTB/fuAPgN39ZfWh6//6XMwGqFFgDqRgUi+m6N2GXD + i+vKHyZK3KHy4Tdk29rkvThGlQNPAzhFxDhg3a2Qc8blpU2Rtj/EIqh8sMQRQE672SEE7SnYaDIajTbl + NI7xhBl8KugWC7TTPRzeuAk4gmsaXW3ttXpnFNnJBBABy0ThuZkBMwBpGvvVFzv11IPZgaoaRDrSdJBx + vKnjONMrLDP3oddmWwjKH8i6T3dQlWEiYK+AbLKNHUc0k51egMQ2xs96e9fWg6uqGiJAVVXImUbeQsFy + MDPycFWha0NYVA5Gt1qgXy/RLRdYzecIocJ0fx8EcJT75wAQ5xf/hvvlHMBDPGfx3CSA7/2fPzwlou8c + ffLWNK2XKTFcSqbU4z3IKWCHU7Z1RRtGvlbVmkIhLgPksiLHYVAdgKFHThF912FlegCDgWz8tdVP3WZ0 + dk1OiUHeBTXNKbZeZWW37UI29aDYd5Coq1vej4BzcG39wQqAHJx3NgFggKoxWSmEuYDz7YvwRhyTipS5 + evZRuNo552AVgL0+hdspxTeTeR6WaqA0PsvafW3lH721BCAh/YPytFZ1kQqHOnL6unMC8uisaM9J9lj9 + WqYcOUVAFLjFKSNUlcKfReCGRQcAZw/ef+Ps7nefi7n/9XhuEgARdYCcLC4u33h0973/zBRanrz6VQDo + 1ytF2gnrvryqQD6ATEgTkhVdJxuUWrdeQ0QQ42CSXqoFmLJWAWoIovvwUjoHE+GoqsoowJXSgAl6LmHE + obfmufniBW/7CkY2cA8TI8YO87Mn8CFgf/RE0Odvm0ottoxCLKS2YySMOKhjUGEbOjPukJSQIKCskuEj + C5HIFInVQAUAvDmXcvAQJgAVmD2c8/BVDQgr7x+CZKrAtU0FCt8vZiXlRFa6rvdAFXTOHyrFWlSNbSvW + Cm2uvEPwTmnb6tUH2CSlIAyBKwPczQiURKu3yFidnwIiHffnXwOAHPty8z83e/8Sz00CePPt+x2AbrL/ + 3bsAvl7v3zh4+edf/ioADH1n5pk6zw9VUFOKEaZqfnLMWC8UDDO/uFCcfRp0T8mkACLFEwIoJbkAZLTd + qoYjh7pp4IPehCFUegwpdHdYLQEIjKaP4BUBmJmVE2AzxJgHyOUFQqiwN1HtgGAaAjCfvJyibh9IwUaJ + WVdrRyOVuPgJ9suFVhtRqdBkGgWaLCq9ody1BOD1ucgwCV70lTMn5DRo0uoL3jqNwiIE5d1HBoYsGJgQ + AFTQ/6wsAaRUwFdkDEh1K8oJBoiS8dzXY4PpwIhQFGGkyJBuBREezt/43//VHj7vh+GZUvv9sPHcJICt + 6AC8ISKzxcmjN+xnnyGiIKIy3zysgdSDMyMnnW3HoQNEsF4qISaVVd4AQs4HOPIGQLGFxDTyS+MwuGAE + lVIO8yjrFfNg8uBWVpcb1CtK0SuWdYSslGYYiNF3SwAEvzRHnaA4RZQCxhyIORdPvw2gqVybD7U2yUzi + W1iQOIIoA9bsc6E05zAeK8zaaASb+SngSF2ZSGTckxN3Wq2nqJMRESQGhLS/Qt6BHLTCSUVLwOBLoq+d + pGzDNj4N1wFHRd2n/HyzoTAsguQV98u3IDIHnn2yz58Vz10CuPP66+cAvvn5L/+tg/m3fu/3AGD/y7/w + ivMhxKzkmWHZI8eI2EfETm/QwW74svcvcte+qnVcGGqEugXnBM7xymPLitZYBVAkylj0scPQo1utdAUu + H35bzX3T6HiOzKd+CydfXHFWCx1nFq3/vaMb8EV0hBx4nRG7wfgMxRzEkpJVAGj1RkndGpwThhgxxAhV + 09O+QLtnKkWVuuiy8xBygGQ4cSolUMwOWY1APOlYEUu97tSvIVnNUQbWx/uqhvceoXbqSGy9hTK4cCxw + LCrDXpJuARptJwFgBFSJqH07k9skLAKE00l8/PZ/AXDZ98s//uifpGcjnrsEUELUuvcuAKR+PSfnU+Q8 + ZcClOKg5RN7Ab8eGlDPpriInZgKfoaoVe+4IPOr+FbWdzSokEEXLiZbKIgk5pnHVKxp8I1RXMN70W9eO + EQoHmOIQIRm9OfY9ckzwVa1EF+HNyplZx3zbhBtgJDqR83AicJ7hzBTFrH5HuC05wzMUTT+ymmTs8W35 + CJTRI5ngJ7w2CUtPgJzhIQjlhmargtiX1Z3Hkv8D8GfZkLb092Pns7+pjBglD8ipA6dzEXkPz7DIx58n + ntsEcPd7r60A/BoA3BT6m0R01LVHXxZfHSCrJRY5D+crkPOY7ikEeNIqcIaCNspg7EHfVAh1AKc0im3o + 4ECwtsZhFi3hu64Dc0YaOuQ4qGlGVptrX6s5STSYb8UZDg5O1Ok2szL0hATw2vxKVrZ3SwX3LM7nIHI4 + vHkL7XQKjlmBSilB+gjJYbT1KdJdzlkis0QXckLNCZxN2IR5VBFCZ0JbwWzIvQect+me2aIFU142ll6s + zMDUR7AkiEvwJAihUsdjBwQSbbguFNabTKCFUq96BdmBHQEsCDCzFiveq9oqmUq3N71kY3R6OHigWx9j + /vD/QeT14eLxv/gYP0p/peO5TQDXYjDnl2RL4ohg34CENv8GNnvnssJdIf/Y99cdeLb3qxuBj2sNLGPv + XGXSfbDJVX4u10rgKxeDrXHiFqHn6jFPO89TmmpXJnhbFU2pRsS0/Eb2kWALpfPBI7eZSls/J2wdQ/K0 + S7l2rU/7v+vfqA7c+DvexRjXgWnPZRBwG4D7xE//3K+T81/xh5+86aeHR3WoMWn2EOoaN27dVJKJ+QL4 + vX2Qc7h8coLU93CO4RzASUt65x3a/Sk4M97+vvYan5w8sIafio8i6TybaGNqWVJPayO9pp0qUKhq4H1A + 5gSWjGHosV7Z2LoYYtr2ZFa38Kb864NHF9VRJ8eM2CWEEHD79k0AwN4L6ic4JLvXnEppbaMFyUFvJBvp + pZVWAkOnPoZcLLmdh7MtkQ+VVQC68icDBMUymegTJDOqitC02kfwrJMD12ujdW1gKPJTkAuIUBJT162x + Wi8BNoAREZp9pXavzCY8J+0BYHH+kNaLU+H8tct73/51AENKaf6jfmaeldiRgXaxi+c4dlsAjRMAGC5O + fpUIBy+/+Oo/qyv/9/Zv3ZrdeOUzRyIZknoAgrTWxUNkAIgwqQmoW0jWvXl2hORUunsynYKZ0R5p97x7 + b4E4DAjWPwhQjTvvA6pQwxFhWikxaTbVFa3enyqFda+FCx6rOGAdByznC1xezuGcw149BQhoaz3PdNpo + M0wSRCKcZNCQlPJUAw4J87NjAMDRC0VUU2XPY/RI4kbUHQgjOs97E0M50H19NWsBUSBVHgbkmJCWHcgH + cKNyXiiqwwY8DFn3EvsHB6hChWbi0e4F9H2Hi9MnAIv5+wFBkQHoUganAUykKks5wgvgqwqTF/R9GpI1 + XL0KgPjh4hhxGPKw+q3+7OF/B+Qh8OzKe3/U2CUAAGL7wnT55ATAqnJuEYhSFQLXTaONMB5sz16kxFUx + qEB5WVTPn8lm0VuCI65g2KUIe5iACExQBDR2w0sTrvKbr+QdQvDwVYDnDMfeoLoa4yy/TCq8nntU85KN + +44zEk2x3yo8/ZGvP2IbtLtvQDt9zHb/g0pnf/N6y7FF/bhgJOxoAwIpVsAb/8EHj1AFpOS3gE6lv6Ij + vKLHJGNfYYNlUI+Hcacxnkf3JTmRpLM4P34ogvPE6bmd9/9psUsAV+MEQIjr+b/juP5WkJu/gOWTrwpL + HZMcAYAk89Jj9QuYzvbhySGBkAVw5HWFdw5pUHDP/PgxACA4D6oqtMEjOMIkVGh9QNu2OJjNUNcBL946 + BBHh5kvqwpNsFLYcImJmpOMO5/MVYrdG7nogBIjJ6GezBlsvTde/QIEZCFs245kzLk1AdP5Yr212eAjn + gya27BQ+nL0i/exmK4Ig5n0OMvnwup6AfQPvO6SqM+XllSYMu5nrWglK5HTcOG0rTCc12qnHZM9jjYTO + OcAB0VSOsyVOnxnIGcQ60mubCerZgeKHJ622J1j3/tX8/AQiPMThN9N6/g7H+BrU2WfX/HtK7BLAVqxW + Sg6Z3//u9wEcv/K5z75Acb2CEAtXW/h+G40TGdqNoKh/W9XLCskqsR3XOnJ2NjKrvENwDk0ImFQ1pk2N + o9kEdVPhxVtH2pX8lCaAjlUp182X6IcE76Fgo5QhWSHEJUrTLkVl4jkUrz5VLiLSObkIIxruYLDRHh3M + EMjBQRtDbCM9MEZa8NgyEihceHzuoHwgyQASUozAkHQkGAosWgE6bFVAFRyaOqCpHNraI/cO1Ug7to8l + bdB849mEULkKe+0E7BxSVYOZ4Ux2yae0gjBTv76zfvD2HQDHQ07PHcnnw8YuATw9FgJJ/Xr5R+T9vxS4 + l4TCPwLIVdPJbaDcbKILnFNwT4pRKcS+Qs4Jl+cXVyire3UNQLDfVKgC4Whvgv1pg/3ZHm6+eANVFXD0 + ouIMOpvTPz69RMoZx49OsVp1OH50houTCwzdoArCnBGHHgSgNbdbA7+PK753iqNnycg5IrMKlgDA+YX6 + D7SzGaoqAagQyCOzQ+YMIVKg0dZI0/kKhb2nJbd69XkfAKlBIHBSKbW41gSTTWfBmVlpygO6TiDiIOwQ + +wHqhUKorerps+oT9HVAigTnaxAFTCYNJrMpkihPg4jY9csTAOC4/tecc885fR+QE4B2gJ8fErsE8JR4 + /713VwBWy/nXXgdw//M/+7e/+ImXXv1FOBeqw4PbAMDZDCldoAdvAAAL50lEQVScJgEWRs5Z9+veI6eI + 5eVc1XkN2rrXVHCOcDit0VQenzia4sbhBPuHe7j9qRsg79Ec7kNEcLLQY56cLxBjwv37j7G8XOH07BKX + F0sTvtD9djE48cYFKq47zvoRIQBVIMSUEXNC5jQ6Cc8v9QY9WK1RNxmTWszfgCDswVArLhCBTT6dbHy/ + WZmtP+A9iGqAgJArcGYMZiaSJo02PmvtmaQc0Q8JzARJHpKTejFCMBojW2OvCx4OBF+38KFFO20w2Z9i + iBnDqgdLYm8JYH381r9fXzxZiMi9riCwdvGnxi4B/JAQwUCEhTA/zCn+Ljkfcrc6AoCqbV4mkJOUEEW0 + OegU3tt1Swxdh/5yDhFBazZfB3vanb9xMEFTBxwcTjCZNQhNhS4nSM64OFWW4X2T4H54/wQpJszPF+jW + HYZhMC1/g8SKGooAG8EO75vS/YOIIGUVx4gxYrVeIycu0IFxYR+GDJYIT0Y/hod3usor7HdD0kEp0X2p + OMq1FPyPU0y+bCkv9wNAQF0aopnUll1gSiJZcRHASIjaFm0iUppwaFqEpoKrPCjnIS4vTyHccU7/w35p + pwA6ot2e/8PELgH8kJjPzzoA3Ruv//4pEb3zyVc+P/38X/sbrwLAwed+5u87H9plt0ZiBrsAVwfEoccw + X2FYrbB8pAIzN44U1PPyCzME7/HiiweYTGo0kwrNpEaEYBEj+pjw4MkSzIIffE+Jasf3jpFTNvsyRsyM + rNB8eNJpRDLwSx/167RWy3EV+xcMcQBLRLfucXmhiaWAhkwWAKtVD+cSiAXcVGiqgLap9VzZnHX6gtDT + cp683ugsG5Zi2RLUVQt2GaG2azMWJaoAQhhVgOKQ0ZlTkYdi/h3btkGgzyfqgNRM99DMDhFqQph4xDQs + 1g/fvSMi5+++9o1ftV/bybpb77r9HzJ2CeBDhI2/kv15BwBSHO5TTtNh6I9Szi1TUN+5OCijLpZ5P9AY + ub9uKgTvQcFDvENkIA8RQ8pY2dfLuToKDyYGKsJb1FcAI73FFvkN62ZsAuaUII6VYyCMzAk5J3BmG8MR + QhH3KBqHejZjMTI4lHEegUhtw4qdGERn7WKJwS7kyvsl0AnAqO9nkwNhpRyTd4DQeD0AoRQ2aSgVjV1T + aGyaoKNGyXmV+rjgOByLyFuAzLHr8n+k2EGBP2L83N/5lX8OYCbtC/8ULnwuJTjOcEgRSD1CcDi6oY4z + r7yssNtbL96A9x65qSHe4+TsHOfzBS6eXODR3YeIKeNssbK5vZF1nHJic9QEQLb6a0e/OF9qgtmbqcRZ + KaFjUshxGhJyyvDOoa4qeO9ww1yRnHX2VVhY3Y69c5hOKsymum/3lRGUoj52yJZ+6hbkPOq6QQgBWUy3 + n5V1KKKaAgCwPlN3JIi5906m8HWtJKAy2Rh65JRw8uABAKC/1P7d7c//NJrpHtrZHuq2RTd/8ken79z5 + hoj84M7//PpvAQDvEsBHih0U+KNHkbNLou5DfIWFcoUCPPJlRoy9Co+KSZFdI/RcT8vb5JY/V8q+xlD6 + s6IAhrYJRFcuQK79ezMN2ZCCPnjJP+x8P/SRV8hUAgi4vNciGznBXXz02FUAP2K0VfuzRDj69Gd/6h83 + 7fSXDm7euvmJT33qVV8FzD5xqKugaJd+sVhBRPDo+AJdN+D8yQUWF0uF2yoCGM62C+WzzyaL5axcbpsa + k7a2e0d18mOhxJrwCExIo+9Xqk6UdX5e1xUOZnvYvumKD1+OcUT9Oaj0VtMENE2Fw6OZ8umiXtTSTrjm + AIaDr1r1NTB/A2ZW+bEtBCKbWAmn9VgFEBFcVcO3E937QyuViwdaLUwmR1qBNOkeeenmxw9/++H3v/0H + AN56cPeN73ycv8fnNXYVwC528RzHrgn4Iwapk0yIcXgDwG+uV2dfPH5v+ctUNy/6+dE/YBH36OHFAQAs + F0sdx/VJASzmVRcqj6YNYAFSoeAaCq42r/HWe3hyaNoadRu0gcaAEI2Q2emegog4KIBmfkLo1x2atkJT + 1aMcuFhfAMC4BCiPoGgUAEPMSHEApwqTWvsNzb72GCZLqxayQEQh0BwjWCpkyfaaFA8wKhOwNgM5koqF + xg6SIyIz+hjhvUc9mYCcx62jowEAutXJb4tIWi/7f9vF4WFcr44BzAE8lwKeP47YJYAfMdaxGwAMD+69 + OQA4/cLelw6Yq8eOp3Vop8wsvF5r+btaKX8+R+Wqh8qmAqWhJ6JGntjW+De4LSl82JshKdhw9cBoCRbM + VCR7c9hxyujzzo9df7omNrJx7tG/Cn+nCIOKlfIiPDL6nPUAXZbRnovgNiQgYCQrbbbxxVHJXak79TwM + dq5cBCqv+OFehnMID9358b0f3Pnj+wBW3Xq9Q/Z9jLFLAB9fMHRlegPAIg5x1p2efotzDsvjR/8QALIP + Pw9QS65uibyrJzWapoY3th+zIHMEQKhNr7+xUWLt/XgzI2siCJXXeXyre/8yFLicz5GZkdcDXMxopg6z + WY2cVfjDuY3STt7iEhCKzDbA4hTgNDD4yRLOE2aGaGyKv4HXbOFEwEjIqJCzgBAA1msLRiEWpyeMKUCE + 4YN6K2LomPsFZ5Hzy5NH3wHQRbjfAQAK/E3ScchdqIbfrtP/MccuAXxM0Q1KNb3z2uvnAM49qAVwAufr + MNn/6wDgbtz8CjkXnK+ZvHPeO1S16uppCc7jihmMaluFQhN25vfnjJ2nkGM4G9MBYDs49oM6CaUEYuUC + 1HVATILE2rEvzkDj7S+GEYAadnLWWX7KjHWONq7Tm7gyVWBPljA4gyCmKbAR8CQBfLERGzuMDmDzLoQH + i4DSwDwMq/Xp6T0Rnr//4O1v2FXdefj44a7T/2OMXQL48UUCcA4teH8HAJDTE2GaiKy+CHJH7NPthPhi + CFVNdTsLRNg3IZAwIvX0hnfejdoBRFb2B68iowYaGnplKjpWqm61N4EDIVQVBsMROKvfyZ4/DYXdqImB + rHPvHQHegRmIOcEJYbEwsdOg55s0lSr6+gBPgHcM+ARxBKYEBfeYzwGZIWiOHTintF7cz/3qPA/9w2G9 + vCs5PwbwOrSKeu48+n5SsUsAP6bIEE0AnJCXZ/8NAML64jsAQj3b/7tw7tOMG19JeRJcPTkgX82cD5hN + ZzpO3wLrb7v9UhmhOQIqr4Qb0+ZbX+oNWpn34HTSoqoDMshQdYD32iAsIKIhFsSh2NhOUX8ggIJHSoIh + AZkZqSSY0Os1gRC8QwOHEAjOMUJgZEpIpB6LA+wYsevnYSU5p+Hy7I3u7PidoVv938f33vxfAsyfnJ69 + 82P/xeziSuwSwF9srKDv+VsAzgFZisg9YT7KQ/8qKq556G4CcKirmwBAvpoSxBWcfbG4ylkwrNTSrLcm + YzBp7Ma2FaGu1M3HFHQUdatNwGx0Y5LSnCtGnJoERuQSqfEnaKNslKxR2Q8J0ZFKkyeHpmEEDzhiDlgP + DGLu4ykAJHH3IUCKwzsi3Inw9yDyEAqtPqedTv9PJHZAoJ9gEFADCPv7h7eDD1+azPaPbt5+6ZcBcs3N + W78EAKinr5LqjoHIgTlCJKPrOlwuFpAsyJ32xj792c8AAGazFt47MBvG/hrKkDOjX5mJSGdbgGIb5lXd + OOWMlBkpMXqzQi8jycHK+gBlFTYBqDxwMGtw42ACggwBOM+Zu8enq9cA4J033/1PzMLLxfnvLy7P5gDm + q+Vyd9P/hGNXAfxko8BZBwAL+9l9AE5EVEs85yTENdjVAELmGDinkIbBpWGohQWcciAiDF3nACA3pQuv + Kzc2Tf9NFH0/X/gEJiLiCCBt4DlRMU9fHlNsOMxNRCQlVpO0AVk4RTekWCVH6JyjE9Xhl7t28LkdX7T5 + d829vwSxqwD+EkYdAkA0A4D9gxtfJqK6atsvOu9fGJg/nYGXY+KDmORlIqqrqnkRAPZnBzMAuP3yq6iq + GvVsBt/UYx9h2xykQIAb2zYUpeIhJTAzOKrsGGdGSkl1/vqlAnQW5w8BYDk/vcs5dev5/K1hvTr1hPca + j3dE+LwfujcE4PmiO/mLfwd38WFjBwXexS6e4/j/Fo/8evWunzMAAAAASUVORK5CYIIoAAAAMAAAAGAA + AAABACAAAAAAAIAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUEwwQNy8kTk9FMZ1GPSjbQTUi+2NW + QP9mVz//YVE7/1hIM/9JPCr1REE3y1tXSoVWSDU2JSIgBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKy4pCDkzIWYvIg3VQzce/Uo9 + Jf9USDX/XFE6/1RHMP9bTDb/UkUv/0xAMP9WUkP/ZVpF/3xmRf9yXkD1XEw3t1dKPjoICAgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQBhVUUsV0c0x2Rc + SP1talP/TkUq/z4yFf8/Lxb/RzYb/0c3HP9IOSH/TkAp/1xSP/9pV0H/eWA//3VbOv9nUzb/alo8/1pH + MvdrWj6PPzImDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxa + Q0h9aEvjjXRQ/3BZOP9ZTDj/fXxr/358YP9KPR7/Szgb/1lEKf9IOB3/V0kw/29ZPf98Yjz/fWQ9/2dR + L/9wWjn/cmVL/2JVPf9vWj3/XUksszAjFRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAACBAQAMiUSQnFVMvGNb0f/i25G/4BnPv9JNRL/STUa/15KL/9eTCj/UD0b/11KK/9bRCb/emM+/39i + Of96YDn/blQw/3FXL/9tUi3/a1g2/1ZILv9TQSD/VkAc/0IvEr0dFgwMAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABRRzQqY04p4WFIIf9aPhn/Wj8Y/1g+F/9gRR7/VT8Y/1lEH/9XQRv/X0kk/3FX + L/9wVCz/f2E4/3VYMP90WTH/cFQs/2lRK/9RPiP/WkEd/2lSK/9WQx7/SDQP/0gyDv84Jw2XCwYGBAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMwKwaHgGK/fmQ5/3daL/9/Yzb/dV01/1lDHP9NNQ//Vz4W/1dB + Gf9nTSL/gWMz/2tNIv9nSyP/fF4y/31eMf9wUyn/XUUh/1RDJ/9PQCj/VkAk/2ZOIv9UPBT/SjMN/083 + EP9rUCf5Z1I1Vh0cGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwwGmRlTyn/ZU4k/2FHHP9mSR3/clgw/2tU + Lv9MNAn/SzII/29TJf+PbTz/fl4u/1c7EP9yVjH/eVw3/21QJP9xXjj/ZE4x/1hHLP9RQSn/UUAj/1pC + Fv9cRRr/clcr/4xxRf+RdEj/iW5H3TQvJwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUUc1EodvQdd9Xiz/a08g/3dd + Mv+AYjP/jGw5/3FVI/9VOg3/ZUcY/5NwPf+Nazf/ZUcX/2dMI/+BZEX/fmM5/3haLf+NeU//cFQu/15N + Mf9cSjD/dVo2/4tvPf+Mbj3/k3hO/5V5T/+OdUv/lHlI/2VOK2oAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAim9GYJZx + O/1xUB7/fGI4/4x7Yf97YDj/dVIg/3hWJP9+XSn/c1Qj/4VhL/97WiX/c1gs/5Z2S/+OcEX/fF0s/5B2 + Sf+UdED/iWYw/3leNv+Haj3/mHVA/5RyPv+Xd0T/l35S/5V2Q/+OckL/hWEu/29RItMfFw4MAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA5LiAEhWY2u3ZTH/99Yjb/nIdk/417Zv+GdVn/hm1E/4duRf98Yjb/c1ou/2pOH/97XTD/iGpH/5Z1 + SP+AZTj/fl4v/6GBTv+adDz/lXA2/5RxOv+adj7/j203/5R1Qv+TdUP/lndD/41qM/99Xyr/cE8a/2pL + GPk/LA1CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABHNx8cfVol+YVrPf+oj2T/lHtb/5Z9X/+Sd1H/kXE+/4VuQf99YjX/d1sr/39i + OP+Qckn/m3xP/4tvQv92WzD/lndI/6N9Qf+geDz/nHQ4/4tsPf9/Yjn/n31D/6B+Rv+eekD/l3M2/4Zi + J/+BYC3/kW4y/3xeIv9MNQuRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUPRtYhmUw/6WLXv+kil3/l31Y/5N2S/+Pc0j/im48/4lv + Q/+DbEH/inBC/4xzSv+bflH/l3pL/4JlN/93Wi7/rItR/6F5Ov+heTj/nXQ0/4tqOf96XDH/iGIo/5t0 + Nf+Xczb/jWou/35bH/+LZC3/i2kt/3JTHP9xXC/NOjcqBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpTiSVooVW/6eKWv+ae0j/iWUs/31e + LP96Xiv/eVsk/4FmP/+AXSz/n35G/5R6S/+bflH/iGxC/3VaL/+OcUL/qIJB/6V7OP+idzX/m3Iu/4Nj + Mf98Wyn/g14i/4tnLP+TbjD/iWAi/39aG/+IaC7/k3Q6/62UWf+jiE/3ZVc9FgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQeE69ooNU/6aH + Uv+RbC//iGEd/3FOEP9zUxT/d1UY/3pYHv+JbTr/lHlL/5d9Uv+Fbkf/eF81/3dbLf+qik//qn45/6Z7 + Nf+idzD/mW8r/4RjLv+EYyr/hmAj/41pKv+PZiT/iGAd/35ZGv+eeDr/r45N/6iFRv+jejX/bl5AOgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzd + 4QaYfFLXqoxW/5l5Qf+PaSn/i2Mg/6F8Of+kfTn/p3oy/5NrK/+UeUj/knlN/4hxSf9+ZDn/eV0q/5d4 + QP+vhkD/q382/6l9NP+nezP/nnk//5l8Sf+Lai3/kGko/5hzLf+HYB//g1sX/4liIf+pgz3/qIpI/6+R + Tv+sjUv/koVjVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAN/g4gqni1vhtZRV/596Pf+bci//pX0+/7KIQ/+yhTv/r4E2/5pzMf+bfUb/lnpJ/4ls + O/+GYiX/hmIj/7OSTv+vgDX/rYA1/61/Nf+ogUL/nX1L/594Pf+Xbyv/m3An/5ZtJ/+CXx7/e1cR/5ty + Lv+zkEn/s5hU/7OUUP+3nlz/p5t1ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLi5Aq2mF3hs4xH/6qCPv+fejb/rYI2/7GCM/+0hDX/soI0/51z + MP+ee0P/nHY3/5RqIf+NYhn/p4VC/7OJPf+xgTP/r4E2/62FR/+beUX/pHo1/6R1KP+ZbSP/kWkk/4Vf + Gf+CXBj/kGsh/591L/++l0z/uJxW/7iaUv+4l0//ppVrYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN3g5ASsj1XRtI5K/66LSf+ieC3/qHkp/7SE + Mv+2hTP/sIAu/5luJf+dbiP/nG4f/6F0I/+nfjP/t5JJ/7SEM/+whD7/rIZK/6iBQ/+qfDD/pXYl/51u + Hv+VaR//hmAd/4JbEf+HXhT/lWwf/55xKf/Bm07/vKBY/7ibVP+5mU//j4JhUAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZfkqxsY1J/6mE + Of+ZbiH/rHsn/7OBLf+3hS//qXkl/51yMP+qeSj/q3on/7GALf+3kEb/q4M+/6Z9Pv+xhj//rn8w/6h4 + Jf+kdCP/nW0c/5doF/+PYxX/g1sQ/4peEv+qfSv/sYIs/7SJOv+/o1j/u6BW/7ufVf+4mlP/a2RMLAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACIb0F4q4I2/6N1Jf+peyf/soAq/6l2If+6hy//uIUv/7iJNf+6hjD/uYYu/7mJNf+nfzz/o3o6/7WD + Mf+yfif/pnUe/55uGP+XaBP/lGYT/41gDP+JXQz/h1sK/51wH/+3hzL/rH0o/6F1Jf+mgDb/rYhC/6iC + N/+JZB3nRjMTDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABKNxsyiVwJ/YxcB/+sfSb/tIMs/7B/Kf+zgCn/vIky/8GPNf+9izT/vIgu/7yJ + Lv+1gzH/uYUu/7WAJv+mcxv/m2sU/5NkDP+OXwj/i1wG/4pcBv+KXAj/lGYS/6d4I/+ygyv/rXwj/6By + Hf+abBf/k2YQ/5FjDf91UQypCwYAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/LhEGhl4TzY9fBf+XZw//nW4V/7SDKv+wfyX/p3Yf/7OD + MP/CjTP/v483/76KMP/Aii3/uoQn/6NwFf+aaRD/m2sT/6d0Gv+teh//qHgf/6x7Iv+9iSz/xI8x/8iT + N/+8ii//sIIo/55wGP+SYwn/j2AH/5BgCfthQw5SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQQAdFMVbJZlCf+WZAf/n24T/7mI + Lf+xgSf/tIMm/6l2Hv+9ijD/xI4v/72NNP+9jTX/sYAm/6t5Hf+yfiD/vIYm/8GKKv/DjCz/wows/8WO + Lf/Fji7/yJEx/8aQMP/CjCz/uosu/6p+Iv+jcxf/r3wh/6Z2I9c4LRsOAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMycRFJFk + ENmaZwf/rn0e/7B+H/+zgiT/sX4f/7J/H/+seBz/wYss/7qDIP+yfR7/wosp/8WMKf/GjCj/xY0q/8aN + Kv/FjCn/w4so/8aOK//Gjiz/xY0r/8WNKv/Gjiv/uYUk/615Gf+2gyX/v4ws/4RhJmYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGtMEmimbwz/sH4e/7iIKf++jCz/uIUk/7B9Hf+yfx//u4cn/76HJP/CiiX/xosm/8eM + Jv/HjSf/yI8o/8mOKf/KkCr/yI4o/8mQKv/KkSv/yI8r/8aQLf+6iSr/qXcX/6ZyEf+pdBT/mGsZ1y0h + DwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAiCgaUZhLJtYIf/8KQLP+9iyf/t4cj/7SDH/+yfhr/vIYi/8KO + K/+/iSb/xowl/8mOJv/JjiX/xYsj/8OLJf/DiiX/u4Qi/8CII//DjSn/yJU1/8OTNv/JljP/0546/9ik + P//VoT75lng7UA0KDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqSxNCvIgl9b6IHv+3ghv/sn8Y/697 + FP+yexT/wYoi/8OLJP+9hyL/wo0q/8OLJf/IjCH/v4Ug/8aOJv/AhyD/rncV/7B6E/+2fhr/2aM9/9uo + Qf/cqEL/4axE/9+qQv++lUKrOzUoBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlHRICnHIhj76F + F/+zeg7/tHwS/7Z+FP/BiRz/wYcc/7B4DP+zeg//u4Ma/8KMJf++hRv/xown/8uQJv/GiyD/r3YL/61z + CP/NlCn/3KU6/92oP//eqkH/3qk+/82bOe1jVDEeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAALSIMEJ1sDNmyeQr/tnsN/8KIGf+zeQv/tHoM/7d+Ef+5gRX/uYAU/7d/Ev+3fRH/wocZ/8eJ + G//MjyP/uH0P/7J5DP/AiB7/x48j/8yUKf/NlSv/wooh/X5XEWgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBNDkazeg31xYgW/8GDEP/FiBb/wIQS/7V5CP+2egn/tnsJ/7R5 + CP+6fQ7/x4gW/86OGv/RkiD/zY8f/8CFFf/EjB//xI0h/8aPIv/FjR//pHcgrz4xGQgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoLDAKbbhyNzY4X/8uLFP/NjBX/0Y8X/8KC + DP+3eQX/uXsG/8GDD//RkR3/0pEf/86NFv/Pjxn/0ZEc/82QG//HjRr/yI4c/8mOG/+6hBnnVD0VIAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGNRUQrXUN08eH + D//KiRH/zo0U/9CPFv/Hhg3/u3sD/8KCC//Qjxf/1pUf/9GPGf/MihH/xoUO/86PF//QkRr/0ZEa/9CS + HP2OZRpgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAcE0LPsKEEPXIiA7/xYYM/8mKD//NjhT/yIcM/8eGC//NixH/2JUb/9WUHP/WlBr/1pMY/9eU + Gf/dmyD/4Z4j/7qFJKk+Mh4GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAJh0NAp1sD4/LiQ3/0Y8U/9GPEf/QjA7/1I8R/9WSE//Oig3/048Q/9eU + G//dmBr/3JYX/9qWGP/Zlhj/zZAb6WZLGSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACccChDOlSbV6KYm/+GdHf/emRj/3ZcV/9eT + Ev/TjQz/15EQ/9uVGP/fmRj/3JUS/9eSEf/SjxD9i2ERYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUbyRM4p8f++ai + Hv/emRX/3JYT/+KdGv/hmxn/3pgW/96ZFf/gmxn/3JUQ/9iSDv+1ew+5SzQLCAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAsJxkEtYEZn+GaE//mnxj/558X/+ScFv/hmRL/3ZQM/9WNBv/XkAn/3ZUO/9aREO1yTg8uAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbU8XItuZGefqohn/6J8W/+KaEP/elAn/144D/9aOA//XjgT/5poO/6hz + EoUAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAJ9uFG7mnBD/4pgM/96VCP/bkQT/25AD/9uR + A//dkgX/yocM12FEDhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFE4CgzFhQzN4ZQE/96T + A//fkwP/4JMD/+KVBf/elAb7k2MKWgAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + BQCLXAVO3pID+eaYBf/llwT/5ZcE/+eZBv++fgW7Kx4ICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAANCQEGxIIIt/OkDf/woQr/7p8I/+ueDPt9Vw88AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe1gSPPCjDf30pAv/9aQJ/8WFC69BLgsCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATjwVAsiKDrX4pwr/7Z4I9Ypd + CTwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJlq + DEjyowf7zowKuSAYCwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACIbDArYlQbLiV8MUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7WBRiFBAHCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA//+AAf//AAD//gAA//8AAP/8AAA//wAA//gAAB//AAD/8AAAD/8AAP/gAAAH/wAA/8AAAAf/ + AAD/wAAAA/8AAP+AAAAD/wAA/4AAAAH/AAD/AAAAAf8AAP8AAAAB/wAA/wAAAAD/AAD/AAAAAP8AAP8A + AAAA/wAA/gAAAAD/AAD+AAAAAP8AAP4AAAAA/wAA/gAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/ + AAD/AAAAAf8AAP+AAAAB/wAA/4AAAAP/AAD/wAAAA/8AAP/AAAAH/wAA/+AAAAf/AAD/4AAAD/8AAP/w + AAAf/wAA//gAAB//AAD/+AAAP/8AAP/8AAB//wAA//4AAH//AAD//gAA//8AAP//AAH//wAA//+AAf// + AAD//4AD//8AAP//wAf//wAA///gB///AAD//+AP//8AAP//8A///wAA///wH///AAD///gf//8AAP// + +D///wAA///8P///AAD///x///8AAP///n///wAAKAAAACAAAABAAAAAAQAgAAAAAACAEAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAMAIxsMNEU6 + J5VOQy/fT0Mv/WNVPv9bTDb/TEAu+1ZQQtFsWkGDQjguIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYFVEFFhL + OKNaVD35Rjwh/0I0Hf9PQCX/Szwk/1BDLv9iWET/dl8//29ZOv9kUznxZFI5ej8yJgYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpF + MSCDa0vVjHJN/1lILf9zbFf/XVEy/1M/If9QPyP/ZlU4/3thPP90XDf/b1Y0/21gRP9iUDP/V0MjqSIZ + DggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABRRjQSXEYj02lMJf9oTCX/XEIc/1A6Fv9ZQx//Xkgk/2xRK/9+YDf/dVoy/29ULP9eSCf/X0on/1hF + If9KNRH/PioNmwoHBwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAADAHdrTZ93XDL/eFsv/3RdNv9QOBH/VTwU/21SJv95Wy3/Zkoh/3tcMf9vUyr/XEYm/1FC + Kf9bRSP/Vj4U/1U9FP9xViz9d18+UgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABwYD80c1gq+2lOIf9xVSn/fV8w/1g+EP9oShz/kW47/2ZJGv92Wjf/el41/4Fq + Qf9oUC//WUgv/29WMP9/YzP/kHZL/5F2TP+IbkLXJRwSBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAGBUSAJJxP6V1VSL/inNP/39qS/95WCj/fF0s/3BSIv9+XCn/hWc8/45v + RP+BYjP/mHlG/4lnMv+LbT3/k3E8/5Z2Q/+VeUv/jG47/35bJ/9WPRhQAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHNiAOfFoo8ZZ9Uv+Wf2D/knta/45zRv+BZzz/d1wv/4dp + P/+Udkv/fmI3/5Z2RP+feD3/mHI3/4ZoO/+cekL/mnlB/5RwNf+AXyn/g2Io/1pAD6cAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFg+GUSVd0b/pIha/5F1S/+LbkL/hWk5/4du + Q/+QdUf/l3tP/45xRP98XzL/qIRH/6J5OP+YcTP/fF4y/4tlKv+XcjX/iGQo/4NfJv+HZy3/hG075VhP + OAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiG9FeKWHVv+aeD//gVwc/3NT + GP93Vx7/gGEt/5d6Sv+Qdkz/eV80/5V3Qv+ofTn/o3gy/5RtLf+AYCv/h2Mm/49nJv+FXhz/kGwu/6yM + Tf+lgD//a1s/IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACdglmXqYlR/5Nu + MP+YcTD/qYE8/6V4MP+UdUD/kXdL/4JnOv+DZS7/rodC/6t+Nf+ofTX/nHpE/5NyN/+Wbin/i2Yj/4BZ + Fv+ngTz/q45M/7CSUP+YjWs8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALWZ + Y52xikb/oHo4/62BOf+zhDf/rH4x/5t4P/+XdDf/jWQd/6aDP/+xgjX/roI4/6N/Rv+ieTf/nHAm/5Jp + Iv+EXhv/imMc/7iSSP+3m1b/uZlS/6eXbUIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAqIxUibKNSv+iezL/q3wq/7aFMv+meCj/nG8m/6FyIv+qgDL/tItA/7CEPv+shEL/qXsw/6Fy + If+VaRz/hF0W/4tiF/+abyH/vZdL/7qeVv+5m1L/h3xdMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACNc0RaqoE2/6R2Jf+ufCf/tYMs/7ODL/+1gzD/t4Qu/7CGPv+mfDr/s4Ev/6Z1 + IP+cbRj/lWYT/4tfDv+JXQ3/r4At/6p8KP+uiT3/spBI/6B9NPNXSy8MAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEo3GhiJWwn3nm4Y/7B/KP+xfyf/uIUw/7+MNf+9iS//uocv/7iD + Kv+ndBv/mGkR/5NjDP+QYQr/lmYQ/6d2H/+0hCz/qXkh/5lrFf+RYwz/gFgLtwsGAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRQLAItgEq2UYwb/pnUa/7ODKf+tfCH/uYYt/8GP + NP+9jDL/sH0i/6h1Gf+2gCL/wIor/7+LLf/Fji7/yJIy/8ONL/+0hiv/n3AV/6d0Gf9/WhlWAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAak0UNptoCfuvfR7/tYQm/7OA + If+uex3/v4kp/7eBH//Eiyj/xowo/8WNKf/GjSn/xYwp/8iPLP/Gjir/xY4r/7J/Hf+seBn/q3wl0yUf + GQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgQAlGURpbiF + I/+/jSr/t4Ui/7J/HP++iCX/wIon/8eMJf/Jjib/xo0l/8aNJ//BiCT/xY4o/8eTMv/CkTH/xZEv/8mV + Mv2TbipOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABoSRMeu4cj67mCGf+yfhb/tH0V/8SMI/+6ghv/wowo/8WLIv/EiiX/w4kh/611EP+7gx3/26Y//9yo + Qf/hrUT/x5tBrTs1KAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACNYxBisXgL/7h+Ef+7gRP/tHsO/7Z+Ev+4gBT/uIAU/8SJHf/LjiH/s3gL/72E + Gf/Plyv/05wy/8GMJutyVR4eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADooCgSmchGxxokV/8eIFf/ChBH/tnkH/7d7Cf+9gBD/y4wZ/9CR + Hf/Njx3/xIsb/8WOIf/GjR/9l24fXgABBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVVGRy+ghHryooS/86NFf/FhA3/vHwF/86O + F//Tkh3/zowU/8uLFP/Njxn/zpAZ/7V/Gq8LCwoCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhoDl7JiQ/9x4cM/8uL + EP/LiQ3/zIoO/9eUGf/XlRz/2JUY/9qYHf/VliLnhGEiHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMSULBMCH + GrPioCH/25cX/9uVFP/Tjg7/1pAR/92YGv/blRP/1pIT/6NyFV4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAj2wjJN6cHe/gmxf/4JoW/+KcGP/elxL/3pgU/9uUD//Bgw+3SzQLBAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAt38WdOqjGf/nnhX/4JcN/9eOBf/VjQT/3JQP9YddEiYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2KRIG0o4P1eCWCP/dkgT/3JED/96TBf+8fgyBAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkbgpM4JQD/eSWBP/klwX/1Y0G32ZG + ChAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwJAQLUjwu78qML//Gh + Cf+5fg5kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKZ0 + ET7zpAv94JYI12hIDAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAPy4NBN6XCMHBhAtsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAoHEOVkc0CxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4Af//4AB//8AAP/+AAB//gAAf/wAAD/8AAA/+AAAP/gA + AB/4AAAf+AAAH/gAAB/4AAAf+AAAH/gAAD/8AAA//AAAP/4AAH/+AAB//wAA//8AAf//gAH//8AD///A + B///4Af///AP///wH///+B////g////8P////H////5//ygAAAAYAAAAMAAAAAEAIAAAAAAAYAkAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKy4pAjEmE1JHOyW5TkMv9V5Q + Of9WRzP/U0s7729eQ61ZSzg+CQkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABrWUMSd2JGtWZbQ/9hXEP/Rzcb/0w7If9cTTX/d18+/21WNv9mVz79aFQ3kzAj + FQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFGNApiSyfFc1cw/2BH + If9VQCD/WUUg/2ZOK/97Xzj/c1gy/2ZOKv9hTSv/Uj4a/0EuD5kKBwcCAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlaOotvVSr/c1gu/1hAGf9aQRf/fV8w/2dKIf94WjD/aVEt/1ND + Kf9aRCD/W0MZ/3ZbMf18ZEFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgWlEHINj + MfV7Yjr/f2Ax/29RH/98Wyr/eFko/4NlPv+AZDf/hmo7/25YNf+LbDz/k3dI/5F1SP+AYjLPHxcOBAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfFwrdIhsPv+Vf2H/jHNL/4FoPP91WSz/jG1E/4Zp + Pf+WdUL/m3Q5/45tO/+Yd0D/mHY//4RjLP96WSL9RzIMNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAhGc4u6OGV/+MbT//g2Y1/4NoPP+Sd0f/lXhM/39jNf+ngEH/n3Y0/4FhMf+MZyv/kGsu/4Rg + Jf+PcTf/inJAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc3eECnoJT5Zh1O/+JZCL/jWgm/4pq + M/+ReE3/fWQ4/5p5P/+pfTb/oHcz/4trM/+PaSn/iGAe/5RuLP+sjEr/oIBFowAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADg4eMGsZFV8aF6OP+tgjv/soM2/5x4O/+UcTf/kGsp/7KHPf+tgTr/oXxC/51y + Lf+SaiP/hF8a/6uEPf+1mFP/s5pdsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADd4OQArItM36R9 + NP+vfiz/sYAt/59yKP+ndyb/sIlA/6+DPP+qgDn/pHUl/5ZpGv+FXRT/nnIj/7SOQv+7nlb/rpNSnwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkWslq6FyHv+vfij/uIUu/7yKNP+7iDD/roA1/7B9 + Jv+cbBb/kWIN/4tdCf+Yahf/sIEq/6B1JP+edSX/flsWZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAf1kUUJRkCf+qeiD/r34k/7eELP+/jTP/uocs/6d0Gf+wfB//t4Il/72IKv/HkTL/uoks/6Bx + F/+dbBX1WkAQGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMycRBJVlDM+xgCH/t4Ul/7B9 + Hv+9hyb/v4cl/8aMKP/Hjin/x40p/8iPK//Gjiv/uYUk/6x5Gf+kdiORAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIdeEkS8iCP9t4Uf/7J+GP/BiiX/wYom/8eNJP/EiiT/u4Mf/7qD + Hv/QnTr/1qI9/9SiQOmQczoWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUd + EgCndRWftHsO/7uCFf+3fhH/uIAV/7uDGf/GiyD/voMX/7uCF//TnDH/050z/66CLVwAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtSw4SvIIV38iIFP/CgxD/t3oH/8CD + EP/NjRn/z5Ad/8aLGv/Hjh7/tIEdrT4xGQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAmmkNSMeHEP3LixH/xYUM/8qJD//Vkxz/0I4U/9SUG//Rkx/piWEbGgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJh0NAL2E + Fp3bmBr/2JMT/9OPD//XkhX/3ZcX/9eTFP+xfRhaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI9sIxTbmRvl4psW/+KbF//clQ//3JUQ/8iH + D7VLNAsCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAC/hhde5p0T/96VCf/ZjwP/2ZEI9aFuESQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQNwoE0IoGxeKV + BP/jlgX/xIIGhwAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArnYKPvKjDP/omwrrelUPEAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAATjwVAOGZCr/Tjgl8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALV+C05+WAwWAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+AP8A/AA/APgAHwD4AB8A8AAPAPAA + DwDwAA8A4AAPAOAADwDwAA8A8AAPAPAADwDwAB8A+AAfAPwAPwD8AD8A/gB/AP8A/wD/AP8A/4H/AP+D + /wD/w/8A/+f/AP/n/wAoAAAAEAAAACAAAAABACAAAAAAAEAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGBVRARTSjZ0Rzwk3VNFLv9WSjb9alk/1WFQOGI/MiYCAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFFGNARsUzCxalIv/15PMP9bRiX/dVw3/2xTL/9iUDD/SjYVkwoHBwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAB0Xzhyclcr/2ZMIv9vUiT/b1Io/3leNP9bSCv/Z08n/3pgNv+BaEBMAAAAAAAA + AAAAAAAAAAAAAAAAAABGNh8EhWY25Yx2Vf+BZDX/e10u/4lsQP+Ucj//jWs4/5h2Qf+Nbjn/c1QhvQAA + AAAAAAAAAAAAAAAAAAAAAAAAdl01Lp5/Tf+EZDD/gWQy/5R4S/+GaTv/pX07/4pnL/+OaCv/iGMm/5h4 + PfloWT4KAAAAAAAAAAAAAAAAAAAAAKmOXkyjf0D/qH43/6B5OP+ObTb/onw5/6l/Ov+bdTb/jmci/5p0 + Lv+zlVH/oJJsIAAAAAAAAAAAAAAAAAAAAACdgk04qYA2/7GALP+reyv/rX8w/6+DOv+meCv/lmgY/5Jn + Gv+sgzT/sZJJ/X1yUw4AAAAAAAAAAAAAAAAAAAAASTYZBpJjDumufiX/t4Ut/72LMf+teiD/qHYa/6p4 + Hf+6hiv/pXcd/5JlEsMLBgAAAAAAAAAAAAAAAAAAAAAAAAAAAACSZA10t4Uk/7KAH/+9hyX/xown/8aN + KP/FjCj/xZAu/7uHJv+idiZKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaEkTCLJ9F9O2fxT/uoIX/76G + Hf/FiyH/tn0U/9agN//LmTetOzUoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACdbRI0xocT+8OE + D//AgQ3/z48a/8qNGf/FjB3rlGweGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyC + EoXUkhX/0Y0P/9iUGP/ZlRf/wogeWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACPbCMI3ZoZ2eKbFP/akgz/0Y0PtUs0CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAMKEDkrglAX/3ZIF97J4CyQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAMCQEA5ZoMvd+WCpEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMqKCkayeQseAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAP + AADgDwAA4AcAAMAHAADAAwAAwAMAAMADAADABwAA4AcAAOAPAADwDwAA+B8AAPg/AAD8PwAA/n8AAP5/ + AAA= + + + \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/app.config b/Source/Plugins/Plugins.ShaleNetwork/app.config new file mode 100644 index 00000000..bb92cbfe --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/app.config @@ -0,0 +1,23 @@ + + + + +
    + + + + + + + + + + + http://www.shalenetwork.org + + + http://www.shalenetwork.org/contact + + + + diff --git a/Source/Plugins/Plugins.ShaleNetwork/credits.txt b/Source/Plugins/Plugins.ShaleNetwork/credits.txt new file mode 100644 index 00000000..5a14a004 --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/credits.txt @@ -0,0 +1 @@ +http://www.fatcow.com/free-icons provided some of the icons. \ No newline at end of file diff --git a/Source/Plugins/Plugins.ShaleNetwork/packages.config b/Source/Plugins/Plugins.ShaleNetwork/packages.config new file mode 100644 index 00000000..9cb5860a --- /dev/null +++ b/Source/Plugins/Plugins.ShaleNetwork/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.Common.Tests/HydroDesktop.Common.Tests.csproj b/Source/Tests/HydroDesktop.Common.Tests/HydroDesktop.Common.Tests.csproj new file mode 100644 index 00000000..639eb0f3 --- /dev/null +++ b/Source/Tests/HydroDesktop.Common.Tests/HydroDesktop.Common.Tests.csproj @@ -0,0 +1,153 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {233A27C0-65BF-4AB2-A9DF-BFE7460D1B47} + Library + Properties + HydroDesktop.Common.Tests + HydroDesktop.Common.Tests + v4.0 + 512 + ..\..\ + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + bin\Debug\HydroDesktop.Common.Tests.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + bin\Release\HydroDesktop.Common.Tests.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + + + + False + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + + + False + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + + + False + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + + + False + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + + + False + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + + + False + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + + + False + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + + + False + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + + + False + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + + + False + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + + + False + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + + + False + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + + + False + ..\..\packages\NUnit.2.6.1\lib\nunit.framework.dll + + + + + + + + + + + + Properties\AssemblyInfoShared.cs + + + + + + + {882C41F5-6A96-419F-9153-8D277ED91464} + HydroDesktop.Common + + + + + + + + + \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.Common.Tests/Properties/AssemblyInfo.cs b/Source/Tests/HydroDesktop.Common.Tests/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..959d592c --- /dev/null +++ b/Source/Tests/HydroDesktop.Common.Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,23 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Common.Tests")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HydroDesktop.Common.Tests")] +[assembly: AssemblyCopyright("Copyright © 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b76fd7c9-a96c-4cb8-bff7-996034452727")] diff --git a/Source/Tests/HydroDesktop.Common.Tests/Tools/NameHelperTest.cs b/Source/Tests/HydroDesktop.Common.Tests/Tools/NameHelperTest.cs new file mode 100644 index 00000000..25a837fd --- /dev/null +++ b/Source/Tests/HydroDesktop.Common.Tests/Tools/NameHelperTest.cs @@ -0,0 +1,60 @@ +using HydroDesktop.Common.Tools; +using NUnit.Framework; + +namespace HydroDesktop.Common.Tests.Tools +{ + [TestFixture] + public class NameHelperTest + { + private class Class1 + { + public object A { get; set; } + } + + private class Class2 + { + public Class1 B { get; set; } + } + + private Class2 MyProperty { get; set; } + + + [Test] + public void ThisClass() + { + var propertyName = NameHelper.Name(() => MyProperty); + Assert.AreEqual("MyProperty", propertyName); + } + + [Test] + public void OtherClass() + { + var propertyName1 = NameHelper.Name(o => o.A); + Assert.AreEqual("A", propertyName1); + +#pragma warning disable 1720 + var propertyName2 = NameHelper.Name(() => default(Class1).A); +#pragma warning restore 1720 + Assert.AreEqual("A", propertyName2); + } + + [Test] + public void DeepProperty() + { + var propertyName1 = NameHelper.Name(o => o.B.A, true); + Assert.AreEqual("B.A", propertyName1); + + var propertyName2 = NameHelper.Name(o => o.B.A); + Assert.AreEqual("A", propertyName2); + + var propertyName3 = NameHelper.Name(o => o.B, true); + Assert.AreEqual("B", propertyName3); + + var propertyName4 = NameHelper.Name(() => MyProperty.B.A, true); + Assert.AreEqual("MyProperty.B.A", propertyName4); + + var propertyName5 = NameHelper.Name(() => MyProperty.B.A); + Assert.AreEqual("A", propertyName5); + } + } +} diff --git a/Source/Tests/HydroDesktop.Common.Tests/packages.config b/Source/Tests/HydroDesktop.Common.Tests/packages.config new file mode 100644 index 00000000..5d74c4ad --- /dev/null +++ b/Source/Tests/HydroDesktop.Common.Tests/packages.config @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.Data.Tests/AssemblySetup.cs b/Source/Tests/HydroDesktop.Data.Tests/AssemblySetup.cs new file mode 100644 index 00000000..d73c2575 --- /dev/null +++ b/Source/Tests/HydroDesktop.Data.Tests/AssemblySetup.cs @@ -0,0 +1,36 @@ +using System; +using System.IO; +using System.Reflection; +using NUnit.Framework; + +namespace HydroDesktop.Data.Tests +{ + [SetUpFixture] + public class AssemblySetup + { + [SetUp] + public void Setup() + { + AppDomain.CurrentDomain.AssemblyResolve += OnCurrentDomainOnAssemblyResolve ; + } + + [TearDown] + public void TearDown() + { + AppDomain.CurrentDomain.AssemblyResolve -= OnCurrentDomainOnAssemblyResolve; + } + + private static Assembly OnCurrentDomainOnAssemblyResolve(object sender, ResolveEventArgs args) + { + //If this isn't a SQLite DLL we don't want/need to execute this code. + if (!args.Name.Contains("SQLite")) + { + return null; + } + + var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Support", DotSpatial.Mono.Mono.IsRunningOnMono() ? "Mono" : "Windows"); + var assemblyPath = Path.Combine(filePath, new AssemblyName(args.Name).Name + ".dll"); + return !File.Exists(assemblyPath) ? null : Assembly.LoadFrom(assemblyPath); + } + } +} \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.Data.Tests/DatabaseTests/DataManagerSQLTest.cs b/Source/Tests/HydroDesktop.Data.Tests/DatabaseTests/DataManagerSQLTest.cs new file mode 100644 index 00000000..cc51a29b --- /dev/null +++ b/Source/Tests/HydroDesktop.Data.Tests/DatabaseTests/DataManagerSQLTest.cs @@ -0,0 +1,240 @@ +using System; +using HydroDesktop.Interfaces; +using NUnit.Framework; +using HydroDesktop.Database; +using System.Data; +using HydroDesktop.Interfaces.ObjectModel; + +namespace HydroDesktop.Data.Tests.DatabaseTests +{ + [TestFixture] + public class DataManagerSQLTest + { + [Test] + public void TestGetSeriesListTable() + { + var manager = RepositoryFactory.Instance.Get(TestConfig.DbOperations); + var fullSeriesTable = manager.GetDetailedSeriesTable(); + Assert.Greater(fullSeriesTable.Rows.Count, 0); + } + + + [Test] + public void TestGetSeriesTable_twoSeries() + { + var manager = RepositoryFactory.Instance.Get(TestConfig.DbOperations); + + const string sql = "SELECT SeriesID from DataSeries"; + DataTable tbl = TestConfig.DbOperations.LoadTable("tbl", sql); + if (tbl.Rows.Count > 0) + { + int[] idList = new int[tbl.Rows.Count]; + for(int i = 0; i < idList.Length ; i++) + { + idList[i] = Convert.ToInt32(tbl.Rows[i][0]); + } + DataTable seriesTable = manager.GetSeriesTable(idList); + Assert.Greater(seriesTable.Rows.Count, 0); + } + } + + [Test] + public void TestGetSeriesTable_oneSeries() + { + var manager = RepositoryFactory.Instance.Get(TestConfig.DbOperations); + + DataTable seriesTable = manager.GetSeriesTable(1); + Assert.Greater(seriesTable.Rows.Count, 0); + } + + [Test] + public void SaveSeries_Simple() + { + var manager = RepositoryFactory.Instance.Get(TestConfig.DbOperations); + + Site mySite = CreateRandomSite(); + Variable myVariable = CreateRandomVariable(); + Method myMethod = CreateRandomMethod(); + QualityControlLevel myQc = CreateRandomQualityControlLevel(); + Source mySource = Source.Unknown; //TODO Change to a 'Random Source' + + Series mySeries = CreateRandomSeries(mySite, myVariable, myMethod, myQc, mySource); + + Theme myTheme = new Theme("DataManagerSQL-Theme"); + + manager.SaveSeries(mySeries, myTheme, OverwriteOptions.Copy); + } + + [Test] + public void SaveSeries_TwoSeriesOneSite() + { + var manager = RepositoryFactory.Instance.Get(TestConfig.DbOperations); + + Random rnd = new Random(); + int randomNumber = rnd.Next(1000); + + Site mySite = CreateRandomSite(); + + Series mySeries1 = new Series(); + mySeries1.Site = mySite; + mySeries1.Variable = CreateRandomVariable(); + + Series mySeries2 = new Series(); + mySeries2.Variable = CreateRandomVariable(); + mySeries2.Site = mySite; + + Theme myTheme = new Theme("DataManagerSQL-Theme"); + + manager.SaveSeries(mySeries1, myTheme, OverwriteOptions.Copy); + manager.SaveSeries(mySeries2, myTheme, OverwriteOptions.Copy); + } + + private static Series CreateRandomSeries(Site site, Variable variable, Method method, QualityControlLevel qc, Source source) + { + Random rnd = new Random(); + int numDays = rnd.Next(2000); + DateTime start = DateTime.Now.Date.AddDays(-numDays); + const double utcOffset = -7; + + Series newSeries = new Series(site, variable, method, qc, source); + newSeries.IsCategorical = false; + newSeries.LastCheckedDateTime = DateTime.Now; + newSeries.UpdateDateTime = DateTime.Now; + newSeries.BeginDateTime = start; + newSeries.BeginDateTimeUTC = start.AddHours(utcOffset); + newSeries.EndDateTime = DateTime.Now.Date; + newSeries.EndDateTimeUTC = newSeries.EndDateTime.AddHours(utcOffset); + + for (int t = 0; t < numDays; t++) + { + DateTime obsTime = start.AddDays(t); + double val = 100.0 * rnd.NextDouble(); + newSeries.DataValueList.Add(new DataValue(val, obsTime, utcOffset)); + } + + return newSeries; + } + + private static Site CreateRandomSite() + { + Random rnd = new Random(); + int randomNumber = rnd.Next(1000); + + double longitude = rnd.NextDouble() * 360 - 180; + double latitude = rnd.NextDouble() * 180 - 90; + Site mySite = new Site(); + mySite.Name = "TEST SITE " + randomNumber.ToString(); + mySite.Code = "DataManagerSQL:" + randomNumber.ToString(); + mySite.Comments = "TEST SITE"; + mySite.Latitude = latitude; + mySite.Longitude = longitude; + mySite.SpatialReference = new SpatialReference("TEST SRS"); + mySite.LocalProjection = new SpatialReference("TEST LocalProjection"); + mySite.VerticalDatum = "test vertical datum"; + return mySite; + } + + private static Variable CreateRandomVariable() + { + Random rnd = new Random(); + + int id = rnd.Next(); + + Unit variableUnit = CreateUnit(); + Unit timeUnit = CreateTimeUnit(); + + Variable variable = new Variable(); + variable.Code = "DataManagerSQL:" + id; + variable.DataType = "dataType:" + id; + variable.GeneralCategory = "generalCategory:" + id; + variable.IsCategorical = false; + variable.IsRegular = true; + variable.Name = "name:" + id; + variable.NoDataValue = -9999.0; + variable.SampleMedium = "sampleMedium:" + id; + variable.Speciation = "speciation:" + id; + variable.TimeSupport = 1.0; + variable.TimeUnit = timeUnit; + variable.ValueType = "valueType:" + id; + variable.VariableUnit = variableUnit; + + return variable; + } + + public static Unit CreateUnit() + { + Random rnd = new Random(); + + int id = rnd.Next(); + Unit u = new Unit(); + u.Abbreviation = "abbr_" + id; + u.Name = "UnitName" + id; + u.UnitsType = "distance"; + + return u; + } + + public static Unit CreateTimeUnit() + { + Random rnd = new Random(); + + int id = rnd.Next(); + Unit u = new Unit(); + u.Abbreviation = "d"; + u.Name = "day"; + u.UnitsType = "time"; + + return u; + } + + public static Method CreateRandomMethod() + { + Random rnd = new Random(); + + Method method = new Method(); + method.Code = rnd.Next(2); + if (method.Code == 0) + { + method.Description = "Field observation using VURV protocol"; + method.Link = "http://hydrodesktop.org"; + } + else if (method.Code == 1) + { + method.Description = "Automatic Grab Sample"; + } + else + { + method.Description = "new unit test method " + rnd.Next(1000); + method.Link = "new unit test method link " + rnd.Next(1000); + } + return method; + } + + public static QualityControlLevel CreateRandomQualityControlLevel() + { + Random rnd = new Random(); + + QualityControlLevel qc = new QualityControlLevel(); + int codeNumber = rnd.Next(2); + qc.Code = codeNumber.ToString(); + if (codeNumber == 0) + { + qc.Definition = "Raw Data (DataManagerSQL)"; + qc.Explanation = qc.Definition + "explanation.."; + qc.OriginId = codeNumber; + } + else if (codeNumber == 1) + { + qc.Definition = "Quality controlled data (DataManagerSQL)"; + qc.Explanation = qc.Definition + "explanation.."; + qc.OriginId = codeNumber; + } + else + { + qc.Definition = "new unit test QualityControlLevel-" + rnd.Next(1000); + qc.Explanation = qc.Definition + " explanation."; + } + return qc; + } + } +} \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.Data.Tests/DatabaseTests/SqlLiteHelperTest.cs b/Source/Tests/HydroDesktop.Data.Tests/DatabaseTests/SqlLiteHelperTest.cs new file mode 100644 index 00000000..aa752fcf --- /dev/null +++ b/Source/Tests/HydroDesktop.Data.Tests/DatabaseTests/SqlLiteHelperTest.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.IO; +using HydroDesktop.Database; +using NUnit.Framework; + +namespace HydroDesktop.Data.Tests.DatabaseTests +{ + [TestFixture] + class SqlLiteHelperTest + { + private readonly List _tempFiles = new List(); + + [TearDown] + public void Clear() + { + foreach(var file in _tempFiles) + { + try + { + File.Delete(file); + }catch + { + } + } + } + + [Test] + [TestCase(DatabaseType.DefaulDatabase)] + [TestCase(DatabaseType.MetadataCacheDatabase)] + public void CheckDatabaseSchema_ValidDatabases_Test(DatabaseType databaseType) + { + var target = Path.GetTempFileName(); + _tempFiles.Add(target); + + switch(databaseType) + { + case DatabaseType.DefaulDatabase: + SQLiteHelper.CreateSQLiteDatabase(target); + break; + case DatabaseType.MetadataCacheDatabase: + SQLiteHelper.CreateMetadataCacheDb(target); + break; + } + + Assert.DoesNotThrow(() => SQLiteHelper.CheckDatabaseSchema(target, databaseType)); + } + + [Test] + [TestCase("TestDatabases\\defaultDatabase_WithoutSomeTables.sqlite", "Table 'Points' not found")] + [TestCase("TestDatabases\\defaultDatabase_WithoutSomeColumns.sqlite", "Table 'Points': column 'PointType' not found")] + public void CheckDatabaseSchema_NotValidDatabases_Test(string localPathToDb, string exMessage) + { + var target = Path.Combine(Environment.CurrentDirectory, localPathToDb); + + var exceptionThrows = false; + try + { + SQLiteHelper.CheckDatabaseSchema(target, DatabaseType.DefaulDatabase); + } + catch (InvalidDatabaseSchemaException ex) + { + exceptionThrows = true; + Assert.IsTrue(ex.Message.Contains(exMessage)); + } + Assert.IsTrue(exceptionThrows); + } + } +} diff --git a/Source/Tests/HydroDesktop.Data.Tests/HydroDesktop.Data.Tests.csproj b/Source/Tests/HydroDesktop.Data.Tests/HydroDesktop.Data.Tests.csproj new file mode 100644 index 00000000..3eac0b78 --- /dev/null +++ b/Source/Tests/HydroDesktop.Data.Tests/HydroDesktop.Data.Tests.csproj @@ -0,0 +1,189 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {8FC4515D-D5EF-405D-BD8D-E5F481583313} + Library + Properties + HydroDesktop.Data.Tests + HydroDesktop.Data.Tests + v4.0 + 512 + + + + + 3.5 + + + ..\..\..\Source\ + true + + + true + full + false + Bin\Debug\ + DEBUG;TRACE + prompt + 4 + AnyCPU + + + pdbonly + true + Bin\Release\ + TRACE + prompt + 4 + + + true + bin\Debug\ + DEBUG;TRACE + full + AnyCPU + prompt + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + prompt + + + + False + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + + + False + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + + + False + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + + + False + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + + + False + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + + + False + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + + + False + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + + + False + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + + + False + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + + + False + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + + + False + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + + + False + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + + + False + ..\..\packages\NUnit.2.6.1\lib\nunit.framework.dll + + + + 3.5 + + + + Bin\Debug\Support\Windows\System.Data.SQLite.dll + + + + + + Properties\AssemblyInfoShared.cs + + + + + + + + + + + + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB} + HydroDesktop.Configuration + True + + + {CEB869C6-ED48-4846-9040-4E82AB58B86B} + HydroDesktop.Data + True + + + {0B9BA90B-2016-4754-915A-0AD74FD0067A} + HydroDesktop.Interfaces + True + + + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA} + HydroDesktop.WebServices + True + + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.Data.Tests/Properties/AssemblyInfo.cs b/Source/Tests/HydroDesktop.Data.Tests/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..df030680 --- /dev/null +++ b/Source/Tests/HydroDesktop.Data.Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,23 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.Data.Tests")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HydroDesktop.Data.Tests")] +[assembly: AssemblyCopyright("Copyright © 2009")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("c8b42dbd-9d75-4d13-98af-9fa4553f6b6e")] \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.Data.Tests/TestConfig.cs b/Source/Tests/HydroDesktop.Data.Tests/TestConfig.cs new file mode 100644 index 00000000..a82b995f --- /dev/null +++ b/Source/Tests/HydroDesktop.Data.Tests/TestConfig.cs @@ -0,0 +1,77 @@ +using System.IO; +using HydroDesktop.Interfaces; +using HydroDesktop.Database; + +namespace HydroDesktop.Data.Tests +{ + public static class TestConfig + { + private static MetadataCacheManagerSQL _metadataCacheManager; + private static DbOperations _dbOperations; + + /// + /// Get the default 'local cache' database connection string + /// + /// + public static string DefaultLocalCacheConnection + { + get + { + string dbPath = Path.Combine(DefaultDatabaseDirectory, "MetadataCacheTest.sqlite"); + SQLiteHelper.CreateMetadataCacheDb(dbPath); + return SQLiteHelper.GetSQLiteConnectionString(dbPath); + } + } + + /// + /// Get the default 'local cache' database connection string + /// + /// + static string DefaultActualDataConnection + { + get + { + string dbPath = Path.Combine(DefaultDatabaseDirectory, "DataRepositoryTest.sqlite"); + SQLiteHelper.CreateSQLiteDatabase(dbPath); + return SQLiteHelper.GetSQLiteConnectionString(dbPath); + } + } + /// + /// Gets the directory where the default databases used by the system + /// (DataRepository.sqlite and MetadataCache.sqlite) are located. + /// + /// + public static string DefaultDatabaseDirectory + { + get + { + return Configuration.Settings.Instance.TempDirectory; + } + } + + /// + /// Gets the default 'DbOperations' object for SQL-manipulation with the DB + /// + public static DbOperations DbOperations + { + get + { + return _dbOperations ?? + (_dbOperations = new DbOperations(DefaultActualDataConnection, DatabaseTypes.SQLite)); + } + } + + /// + /// Gets the data manager for the default 'MetadataCache' database + /// + /// + public static MetadataCacheManagerSQL MetadataCacheManager + { + get { + return _metadataCacheManager ?? + (_metadataCacheManager = + new MetadataCacheManagerSQL(DatabaseTypes.SQLite, DefaultLocalCacheConnection)); + } + } + } +} diff --git a/Source/Tests/HydroDesktop.Data.Tests/TestDatabases/DataRepository.sqlite b/Source/Tests/HydroDesktop.Data.Tests/TestDatabases/DataRepository.sqlite new file mode 100644 index 00000000..a002f50e Binary files /dev/null and b/Source/Tests/HydroDesktop.Data.Tests/TestDatabases/DataRepository.sqlite differ diff --git a/Source/Tests/HydroDesktop.Data.Tests/TestDatabases/MetadataCache.sqlite b/Source/Tests/HydroDesktop.Data.Tests/TestDatabases/MetadataCache.sqlite new file mode 100644 index 00000000..efd08a59 Binary files /dev/null and b/Source/Tests/HydroDesktop.Data.Tests/TestDatabases/MetadataCache.sqlite differ diff --git a/Source/Tests/HydroDesktop.Data.Tests/TestDatabases/defaultDatabase_WithoutSomeColumns.sqlite b/Source/Tests/HydroDesktop.Data.Tests/TestDatabases/defaultDatabase_WithoutSomeColumns.sqlite new file mode 100644 index 00000000..1e7c82be Binary files /dev/null and b/Source/Tests/HydroDesktop.Data.Tests/TestDatabases/defaultDatabase_WithoutSomeColumns.sqlite differ diff --git a/Source/Tests/HydroDesktop.Data.Tests/TestDatabases/defaultDatabase_WithoutSomeTables.sqlite b/Source/Tests/HydroDesktop.Data.Tests/TestDatabases/defaultDatabase_WithoutSomeTables.sqlite new file mode 100644 index 00000000..a0007537 Binary files /dev/null and b/Source/Tests/HydroDesktop.Data.Tests/TestDatabases/defaultDatabase_WithoutSomeTables.sqlite differ diff --git a/Source/Tests/HydroDesktop.Data.Tests/UnitConversions/UnitConverterTest.cs b/Source/Tests/HydroDesktop.Data.Tests/UnitConversions/UnitConverterTest.cs new file mode 100644 index 00000000..21869d93 --- /dev/null +++ b/Source/Tests/HydroDesktop.Data.Tests/UnitConversions/UnitConverterTest.cs @@ -0,0 +1,6 @@ +namespace HydroDesktop.Data.Tests.UnitConversions +{ + class UnitConverterTest + { + } +} diff --git a/Source/Tests/HydroDesktop.Data.Tests/packages.config b/Source/Tests/HydroDesktop.Data.Tests/packages.config new file mode 100644 index 00000000..5d74c4ad --- /dev/null +++ b/Source/Tests/HydroDesktop.Data.Tests/packages.config @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.Data.Tests/sqlite/SqliteDataRepositoryTest.cs b/Source/Tests/HydroDesktop.Data.Tests/sqlite/SqliteDataRepositoryTest.cs new file mode 100644 index 00000000..e6aedc6f --- /dev/null +++ b/Source/Tests/HydroDesktop.Data.Tests/sqlite/SqliteDataRepositoryTest.cs @@ -0,0 +1,49 @@ +using System.IO; +using HydroDesktop.Database; +using NUnit.Framework; + +namespace HydroDesktop.Data.Tests.sqlite +{ + public class SqlIteDataRepositoryTest + { + private string goodPath = "sqllitetest.sql3"; + //private string badPath = ""; + private string tempDir = ""; + [SetUp] + public void setup() + { + tempDir = + Path.Combine(Configuration.Settings.Instance.TempDirectory, "sqliteUnitTest"); + Directory.CreateDirectory(tempDir); + } + [TearDown] + public void Teardown() + { + Directory.Delete(tempDir, true); + } + + [Test] + public void CanCreateNewDB() + { + string filename = Path.Combine(tempDir, goodPath); + var dr = SQLiteHelper.CreateSQLiteDatabase(filename); + + Assert.That(File.Exists(filename)); + + FileInfo fileInformation = new FileInfo(filename); + Assert.Greater(fileInformation.Length, 0); + } + + //[Test] + //public void FailOnUnwritableCreateNewDB() + //{ + // var ac = new DirectorySecurity(); + // FileSystemAccessRule noWrite = new FileSystemAccessRule(); + // ac.AddAccessRule(); + // Directory.SetAccessControl(); + // var dr = HydroDesktop.Database.sqllite.DataRepository.CreateNewDB( + // DataRepository.TemplateDbPath(), Path.Combine(tempDir,goodPath)); + //} + + } +} diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/HydroDesktop.WebServices.Tests.csproj b/Source/Tests/HydroDesktop.WebServices.Tests/HydroDesktop.WebServices.Tests.csproj new file mode 100644 index 00000000..ad379d39 --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/HydroDesktop.WebServices.Tests.csproj @@ -0,0 +1,213 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {AAC539BD-17E4-4FC0-8A9D-294DDA49104C} + Library + Properties + HydroDesktop.WebServices.Tests + HydroDesktop.WebServices.Tests + v4.0 + 512 + + + + + 3.5 + + + ..\..\..\Source\ + true + + + true + full + false + Bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + Bin\Release\ + TRACE + prompt + 4 + + + true + bin\Debug\ + DEBUG;TRACE + full + x86 + prompt + true + true + + + bin\Release\ + TRACE + true + pdbonly + x86 + prompt + true + true + + + + False + ..\..\packages\DotSpatial.Controls.1.6.1\lib\net40-Client\DotSpatial.Controls.dll + + + False + ..\..\packages\DotSpatial.Data.1.6.1\lib\net40-Client\DotSpatial.Data.dll + + + False + ..\..\packages\DotSpatial.Data.Forms.1.6.1\lib\net40-Client\DotSpatial.Data.Forms.dll + + + False + ..\..\packages\DotSpatial.Extensions.1.6.1\lib\net40-Client\DotSpatial.Extensions.dll + + + False + ..\..\packages\DotSpatial.Modeling.Forms.1.6.1\lib\net40-Client\DotSpatial.Modeling.Forms.dll + + + False + ..\..\packages\DotSpatial.Mono.1.6.1\lib\net40-Client\DotSpatial.Mono.dll + + + False + ..\..\packages\DotSpatial.Projections.1.6.1\lib\net40-Client\DotSpatial.Projections.dll + + + False + ..\..\packages\DotSpatial.Projections.Forms.1.6.1\lib\net40-Client\DotSpatial.Projections.Forms.dll + + + False + ..\..\packages\DotSpatial.Serialization.1.6.1\lib\net40-Client\DotSpatial.Serialization.dll + + + False + ..\..\packages\DotSpatial.Symbology.1.6.1\lib\net40-Client\DotSpatial.Symbology.dll + + + False + ..\..\packages\DotSpatial.Symbology.Forms.1.6.1\lib\net40-Client\DotSpatial.Symbology.Forms.dll + + + False + ..\..\packages\DotSpatial.Topology.1.6.1\lib\net40-Client\DotSpatial.Topology.dll + + + False + ..\..\packages\NUnit.2.6.1\lib\nunit.framework.dll + + + + 3.5 + + + 3.5 + + + 3.5 + + + + + + + Properties\AssemblyInfoShared.cs + + + + + + + + + + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + Designer + + + Always + + + Always + Designer + + + + + {0B9BA90B-2016-4754-915A-0AD74FD0067A} + HydroDesktop.Interfaces + True + + + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA} + HydroDesktop.WebServices + True + + + + + + + + Always + + + + + + + + + + \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/Properties/AssemblyInfo.cs b/Source/Tests/HydroDesktop.WebServices.Tests/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..3c707742 --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,22 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HydroDesktop.WebServices.Tests")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HydroDesktop.WebServices.Tests")] +[assembly: AssemblyCopyright("Copyright © 2009-2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b989b0e0-9827-432f-ba41-4faf838e380d")] \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/SaveValuesTest.cs b/Source/Tests/HydroDesktop.WebServices.Tests/SaveValuesTest.cs new file mode 100644 index 00000000..419642ed --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/SaveValuesTest.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using HydroDesktop.WebServices; +using HydroDesktop.DataModel; +using HydroDesktop.Database; +using NUnit.Framework; + + +namespace WebServiceTest +{ + [TestFixture] + public class SaveValuesTest + { + [Test] + public void TestSaveMultipleSeries() + { + string tempDir = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "hydrodesktop"); + string[] files = System.IO.Directory.GetFiles(tempDir); + Array.Sort(files); + + IWaterOneFlowParser parser = new WaterOneFlow10Parser(); + + Theme theme1 = new Theme("SaveValuesTest1", "Test on Save Values"); + + ActualDataManager manager = HydroDesktop.Database.Config.ActualDataManager(); + + foreach (string fileName in files) + { + IList seriesList = parser.ParseGetValues(fileName); + Series series1 = seriesList[0]; + + manager.SaveSeries(series1, theme1, OverwriteOptions.Copy); + } + } + } +} diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/NWISDV-08157700-NWISDV-00060-DataType-Average-20120603025214538.xml b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/NWISDV-08157700-NWISDV-00060-DataType-Average-20120603025214538.xml new file mode 100644 index 00000000..bc13a65e --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/NWISDV-08157700-NWISDV-00060-DataType-Average-20120603025214538.xml @@ -0,0 +1,899 @@ + + + 2012-06-03T04:52:14 + http://waterservices.usgs.gov/nwis/dv/ + NWISDV:08157700NWISDV:00060/DataType=Average1998-10-01T00:00:00-07:002012-10-31T00:00:00-07:00 + [ALL:08157700] + [mode=RANGE, modifiedSince=null] interval={INTERVAL[1998-10-01T00:00:00.000-04:00/2012-10-31T00:00:00.000-04:00]} + methodIds=[ALL] + 2012-06-03T08:52:14.878Z + 6a863360-ad59-11e1-a8ff-00144f2bdc5f + Provisional data are subject to revision. Go to http://waterdata.usgs.gov/nwis/help/?provisional for more information. + vaas01 +Tranformed from WaterML 1.1 + + + + Blunn Ck nr Little Stacy Pk, Austin, TX + 08157700 + + + + 30.24743158 + -97.7438939 + + + ST + 12090205 + 48 + 48453 + + 00060Discharge, cubic feet per secondStreamflow, ft&#179;/sDerived ValueAverage-999999.0 + + 0.04 + 0.04 + 0.04 + 0.03 + 0.00 + 26 + 0.13 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 96 + 28 + 17 + 10 + 5.0 + 2.4 + 1.6 + 1.2 + 1.0 + 1.1 + 3.4 + 0.89 + 0.64 + 0.65 + 0.78 + 17 + 1.0 + 0.57 + 0.78 + 1.3 + 0.36 + 1.6 + 0.35 + 0.32 + 0.33 + 0.32 + 4.6 + 4.6 + 10 + 2.2 + 0.79 + 0.62 + 0.55 + 0.59 + 0.58 + 0.52 + 0.48 + 0.45 + 0.53 + 0.58 + 0.52 + 0.71 + 0.74 + 0.76 + 0.70 + 0.84 + 0.74 + 1.7 + 1.8 + 0.21 + 0.17 + 0.19 + 0.24 + 0.14 + 8.1 + 5.6 + 0.29 + 0.20 + 0.15 + 0.38 + 0.47 + 0.47 + 0.29 + 0.21 + 0.20 + 0.14 + 0.23 + 0.25 + 0.22 + 0.20 + 0.11 + 0.14 + 0.19 + 0.17 + 0.18 + 0.19 + 0.25 + 0.25 + 0.29 + 0.30 + 0.32 + 0.31 + 0.32 + 0.31 + 0.27 + 0.33 + 0.33 + 0.36 + 0.33 + 0.33 + 0.36 + 0.37 + 0.37 + 0.33 + 0.35 + 0.29 + 0.19 + 0.31 + 0.32 + 0.34 + 0.35 + 0.36 + 0.27 + 0.20 + 0.51 + 0.27 + 0.23 + 0.22 + 0.23 + 0.21 + 0.18 + 0.17 + 0.17 + 0.16 + 0.14 + 0.17 + 0.30 + 0.21 + 0.34 + 0.41 + 0.39 + 0.38 + 0.36 + 0.38 + 0.33 + 0.36 + 0.40 + 0.44 + 0.62 + 0.59 + 0.56 + 0.55 + 0.52 + 0.54 + 0.57 + 0.72 + 0.68 + 1.6 + 3.9 + 4.6 + 4.6 + 7.9 + 12 + 7.3 + 8.0 + 8.9 + 14 + 5.2 + 3.6 + 0.16 + 0.29 + 0.24 + 13 + 6.9 + 0.94 + 0.58 + 0.49 + 0.42 + 0.19 + 0.20 + 0.24 + 2.3 + 5.0 + 0.49 + 0.39 + 0.31 + 0.35 + 0.21 + 0.24 + 0.27 + 0.33 + 0.19 + 0.09 + 0.09 + 0.12 + 0.06 + 0.05 + 0.09 + 0.11 + 0.18 + 0.16 + 0.26 + 0.07 + 0.02 + 0.01 + 0.01 + 0.00 + 0.00 + 0.00 + 0.48 + 0.75 + 4.0 + 0.03 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 5.0 + 0.03 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 8.3 + 4.1 + 0.10 + 0.08 + 0.08 + 0.08 + 0.70 + 0.05 + 0.27 + 9.3 + 2.8 + 11 + 2.5 + 1.2 + 0.93 + 0.90 + 0.79 + 0.70 + 0.61 + 0.61 + 0.65 + 0.47 + 0.52 + 0.47 + 0.44 + 0.43 + 0.41 + 3.3 + 0.74 + 15 + 3.3 + 0.81 + 0.37 + 11 + 16 + 5.0 + 3.1 + 1.6 + 1.4 + 3.3 + 1.5 + 1.0 + 0.92 + 0.89 + 0.83 + 0.77 + 0.82 + 0.73 + 1.0 + 0.90 + 0.86 + 0.78 + 0.80 + 0.77 + 12 + 5.0 + 1.5 + 1.3 + 1.2 + 1.2 + 1.2 + 5.1 + 1.5 + 0.77 + 0.66 + 12 + 1.3 + 0.55 + 0.43 + 0.40 + 0.32 + 0.34 + 0.31 + 0.30 + 0.29 + 0.27 + 0.25 + 0.20 + 0.23 + 0.62 + 0.33 + 0.27 + 0.23 + 0.22 + 0.15 + 0.19 + 0.14 + 0.12 + 0.11 + 0.08 + 0.09 + 0.00 + 0.05 + 0.03 + 0.04 + 0.03 + 0.07 + 0.05 + 0.00 + 0.03 + 0.03 + 0.03 + 0.03 + 0.03 + 0.03 + 0.00 + 0.02 + 0.03 + 0.02 + 0.02 + 0.02 + 0.03 + 0.00 + 0.02 + 0.02 + 0.02 + 0.02 + 0.03 + 0.03 + 1.2 + 0.13 + 0.06 + 0.03 + 0.03 + 0.03 + 0.04 + 0.00 + 0.02 + 0.03 + 0.03 + 0.02 + 0.02 + 0.03 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 1.9 + 0.10 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 4.3 + 0.26 + 0.10 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 3.1 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.06 + 0.55 + 0.11 + 0.09 + 0.09 + 0.08 + 0.07 + 0.07 + 0.05 + 0.04 + 0.01 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 18 + 6.8 + 0.41 + 0.20 + 0.16 + 0.13 + 0.10 + 0.09 + 0.10 + 0.15 + 0.14 + 0.13 + 0.11 + 0.06 + 0.01 + 0.04 + 0.02 + 0.00 + 0.00 + 0.00 + 7.3 + 0.44 + 0.13 + 0.11 + 0.09 + 0.39 + 1.4 + 0.12 + 0.03 + 0.08 + 0.08 + 0.03 + 0.03 + 0.04 + 0.05 + 0.05 + 0.03 + 0.06 + 0.08 + 0.06 + 0.05 + 0.05 + 0.08 + 0.25 + 0.37 + 0.40 + 2.6 + 3.8 + 0.00 + 0.00 + 2.7 + 0.02 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.09 + 0.00 + 0.00 + 0.00 + 0.01 + 0.03 + 0.09 + 0.09 + 0.09 + 5.4 + 0.00 + 0.00 + 0.00 + 0.00 + 0.14 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.57 + 0.00 + 0.00 + 0.00 + 1.2 + 4.2 + 0.02 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.21 + 6.6 + 0.03 + 0.00 + 0.01 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.01 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 12 + 14 + 0.21 + 0.03 + 0.03 + 0.03 + 0.04 + 0.03 + 0.03 + 0.02 + 0.00 + 0.00 + 0.13 + 0.02 + 0.04 + 0.05 + 0.02 + 0.00 + 0.10 + 0.19 + 0.03 + 0.01 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.01 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.01 + 7.4 + 0.34 + 3.1 + 0.40 + 0.24 + 14 + 7.3 + 1.8 + 2.9 + 1.8 + 0.49 + 0.44 + 0.33 + 0.26 + 5.6 + 7.2 + 0.85 + 0.50 + 0.41 + 0.31 + 0.36 + 0.25 + 0.16 + 0.23 + 0.17 + 0.17 + 0.26 + 0.11 + 0.12 + 0.02 + 0.05 + 0.05 + 0.05 + 0.04 + 0.08 + 0.04 + 0.00 + 0.02 + 0.02 + 0.02 + 0.00 + 0.01 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 1.4 + 0.06 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 1.3 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 0.00 + 2.0 + 0.13 + 6.3 + 0.57 + 0.05 + 0.00 + 9.2 + 11 + 2.9 + 3.9 + 1.4 + 0.22 + 0.33 + 0.09 + 0.08 + 0.06 + 0.02 + 0.00 + 29 + 32 + 3.8 + 9.2 + 6.2 + 5.3 + 5.9 + 1.7 + 1.2 + 1.1 + 4.4 + 1.2 + 1.0 + 0.97 + 1.0 + 0.80 + 9.1 + 2.1 + 1.2 + 1.1 + 1.1 + 2.5 + 3.5 + 1.1 + 0.99 + 0.94 + 0.99 + 1.0 + 1.0 + 1.0 + 1.0 + 1.1 + 1.1 + 0.96 + 0.96 + 0.97 + 0.92 + 0.92 + 0.94 + 1.0 + 1.1 + 5.4 + 0.82 + 0.71 + 0.74 + 0.99 + 1.0 + 1.1 + 1.3 + 1.4 + 1.5 + 1.5 + 1.7 + 11 + 15 + 4.0 + 2.1 + 1.5 + 1.3 + 1.3 + 1.2 + 1.1 + 1.1 + 1.1 + 1.0 + 1.0 + 0.96 + 0.96 + 0.96 + 11 + 2.0 + 1.3 + 2.1 + 1.2 + 1.1 + 1.2 + 3.5 + 3.8 + 2.0 + 1.3 + 1.2 + 1.2 + 1.1 + 1.1 + 1.0 + 0.97 + 2.1 + 1.0 + 5.0 + 1.1 + 0.87 + + QualifierCode:e + QualifierDescription:Value has been edited or estimated by USGS personnel and is write protected. + + + QualifierCode:A + QualifierDescription:Approved for publication -- Processing and review completed. + + + + + + \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/RioGrandeET-SEV-RioGrandeET-ET_Penman-20110211055032021.xml b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/RioGrandeET-SEV-RioGrandeET-ET_Penman-20110211055032021.xml new file mode 100644 index 00000000..8f6d229e --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/RioGrandeET-SEV-RioGrandeET-ET_Penman-20110211055032021.xml @@ -0,0 +1,3 @@ +2011-02-12T00:50:37.148951ZRioGrandeET:SEVRioGrandeET:ET_Penman2009-02-112011-02-11OD Web ServiceSevilleta NWRSEV34.265602-106.867761NAVD88SocorroNMET_PenmanEvapotranspirationDerived ValueContinuousHydrologyAirmillimeters per day-999993.336434.781453.278343.773713.21264.354564.464763.834123.294633.491253.81635.015435.055675.301265.569464.99775.474663.972414.508085.095254.668734.685765.731815.629635.727835.00592.841415.160313.486023.599113.315762.79295.149745.209665.505655.104185.835534.08896.447336.636116.837585.497486.308395.352553.094194.887496.087595.196355.840213.969936.023398.461155.708154.961425.218976.69056.011897.616857.567625.589655.089846.035817.059268.118593.32193.46686.419116.2337.064717.297666.49896.805917.685598.998958.194177.428117.857927.170437.825377.741364.756976.741338.723238.536168.774398.891319.748578.167048.079878.669688.306599.485659.217987.905677.692637.837789.331277.568048.471793.871131.858345.87826.175515.80027.022845.123976.960217.142036.018456.849536.084316.966838.195847.034016.757819.183787.669398.610394.453396.474386.360469.085097.032996.323388.815999.070946.793336.668778.260085.833548.417448.940384.964757.992258.666546.4933.526983.317298.34939.184328.540049.409163.579238.541847.106758.091877.193478.969115.541798.720398.788438.888668.78986.535627.57618.399159.353068.386098.480648.82785.951377.882187.84638.094738.612696.496017.851426.52656.931995.499976.997428.29968.14418.26848.600668.630344.845258.628138.248037.562057.26648.795857.437375.140696.138346.824477.701067.573037.260168.20158.098247.869027.687994.745252.886992.499527.348177.235737.09626.962827.552036.349496.732586.79095.882476.790455.527794.038716.386375.678774.96745.797185.729335.611745.741234.361545.681944.920692.482923.208463.759385.16386.313844.391264.940735.212945.483415.510555.928416.041825.752846.880675.308834.847816.003955.527986.163433.303235.106784.375135.102974.865845.05895.358895.392764.845244.92164.459944.49274.493264.862973.345411.625453.394173.557874.356672.862362.608143.73932.210851.352883.00733.028083.393493.834433.725453.706623.939123.754643.446813.288613.283963.420123.352841.045861.768941.853962.542572.330312.317732.545142.724432.624992.691082.811453.202852.150972.405022.599952.778441.740740.6887221.317112.384692.13510.569371.304011.712692.31742.020643.113362.095061.562331.539481.961982.422361.087562.402931.713222.139281.809131.906381.837041.786221.143881.571712.311141.598991.558061.481890.7323121.270132.295441.983471.932861.880961.796881.96862.141951.865891.820071.437291.769252.444982.339071.710482.42932.317322.03232.134461.712142.582542.686812.634912.099191.595772.45136ET (Penman)University of New Mexico, Departments of Biology and Civil EngineeringThis study was conducted in the Middle Rio Grande (MRG) basin, which traverses central New Mexico from north to south. The MRG, as defined in the Rio Grande compact revised in 1948, follows a distance of about 215 river miles, from the USGS gauge at the Otowi Bridge to Elephant Butte Dam. The drainage area between Otowi and Elephant Butte is just over 15,000 square miles. The semi-arid climate within the MRG basin is characterized by average annual precipitation of about 8 inches and about 60 inches of potential ET. The altitude of the Rio Grande in the MRG basin ranges from 5,488 ft above msl at Otowi Bridge to 4,241 ft above msl at Elephant Butte Dam. +Julie Coonrodmain (505) 277-3233jcoonrod@unm.edu
    Dept. of Civil Engineering, 1 University of New Mexico +,Albuquerque, NM 87131-0001
    http://bosque.unm.edu/~cleverly/
    \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/Site-DCEW2-dcew.p1-20110216043840885.xml b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/Site-DCEW2-dcew.p1-20110216043840885.xml new file mode 100644 index 00000000..600e1c55 --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/Site-DCEW2-dcew.p1-20110216043840885.xml @@ -0,0 +1,31 @@ + + + + DCEW2:dcew.p1 + + + + + DCEW_Lower Weather Pit 1 + dcew.p1 + + + 43.6905406 + -116.1708558 + + + 566899 + 4837634 + + + MSL + Ada + Idaho + Comments + + + + SoilMoistVolumetric water contentField ObservationContinuousClimatedimensionless-6999minuteTimemin03679601998-12-22T03:00:002008-12-31T00:00:00Raw data acquired with Campbell Scientific CS-615 water content reflectometers. Data is converted via regression using empirical relationship between raw CS-615 data and Time Domain Reflectometry (TDR) data collected on site during the initial study period using a TRASE soil moisture analyser. Boise State University Hydrological Scienceswebsite provides files processed by BSU Hydrologic Sciences and USDA ARS, Boise, IDSoilTempTemperatureField ObservationContinuousClimatedegree celsius-6999minuteTimemin03850441998-12-22T03:00:002008-12-31T00:00:00Temperature is measured by Type T copper-constantine thermocouples, installed at the given soil profile depth, relative to reference temperature at the datalogger.Boise State University Hydrological Scienceswebsite provides files processed by BSU Hydrologic Sciences and USDA ARS, Boise, ID \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/sites20100211051408633.xml b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/sites20100211051408633.xml new file mode 100644 index 00000000..c17199a4 --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/sites20100211051408633.xml @@ -0,0 +1 @@ +ACTON RANCH Region:641004030.35-101.25CROCKETTTXADAMSVILLE Region:641005031.28333333-98.15LAMPASASTXALICE INTERNATIONAL AP Region:641014527.73333333-98.03333333JIM WELLSTXALLISON RANCH Region:641016030.083333-100.383EDWARDSTXANAHUAC Region:841023529.78333333-94.66666667CHAMBERSTXARANSAS WILDLIFE REFUGE Region:741030528.3-96.8ARANSASTXARLINGTON Region:341033732.73333333-97.13333333TARRANTTXAUSTIN WTR TRTMT PLANT Region:741042730.28333333-97.65TRAVISTXAUSTIN 8SSE Region:741043130.16666667-97.7TRAVISTXAUSTWELL Region:741043628.36666667-96.83333333REFUGIOTXAVALON Region:341044032.2-96.8ELLISTXBAIRD Region:341047832.4-99.4CALLAHANTXBANQUETE Region:741051127.8-97.8NUECESTXBARDWELL DAM Region:341051832.26667-96.63333ELLISTXBEAUMONT CITY Region:841061130.1-94.1JEFFERSONTXBELTON DAM Region:341066531.1-97.48333333BELLTXBRADY Region:641101731.11666667-99.33333333MCCULLOCHTXBRIGGS Region:641106830.88333333-97.93333333BURNETTXBROWNFIELD # 2 Region:141112833.18333333-102.2666667TERRYTXBURKETT Region:241123932-99.21666667COLEMANTXCALDWELL Region:741131430.53333333-96.7BURLESONTXCHARLOTTE 5 NNW Region:941166328.93333333-98.75ATASCOSATXCHEAPSIDE Region:741167129.31666667-97.35GONZALESTXCLARKSVILLE 1W Region:441177333.61666667-95.01666667RED RIVERTXCOLDSPRING 5 SSW Region:441187030.53333333-95.15SAN JACINTOTXCORPUS CHRISTI NWS Region:741201127.78333333-97.5NUECESTXCRANE 2E Region:541208231.4-102.3166667CRANETXCRANE 10N Region:541208431.68333333-102.3333333ECTORTXCRYSTAL CITY Region:941216028.68333333-99.83333333ZAVALATXDACUS Region:441221830.43333333-95.8MONTGOMERYTXDE LONG RANCH Region:541231730.98333333-100.8TXDECATUR Region:341233433.23333333-97.58333333WISETXDECATUR 7 N Region:341233633.33333333-97.58333333TXDECATUR 2 SSW Region:341233833.2-97.6WISETXDE LEON 5SW Region:341235032.08333333-98.6COMANCHETXDEL RIO INTERNATIONAL AP Region:641236029.38333333-100.9333333VAL VERDETXDENTON Region:341240333.23333333-97.13333333DENTONTXDERBY 1 S Region:941241728.75-99.13333333FRIOTXDILLEY Region:941245828.68333333-99.18333333FRIOTXELMAX RANCH Region:641283029.88333333-98.65KENDALLTXENCINAL Region:941290628.01666667-99.35WEBBTXESCOBAS Region:941295027.03333333-98.98333333ZAPATATXFORT DAVIS Region:541326230.66666667-103.8833333JEFF DAVISTXGATESVILLE 4 SSE Region:341348531.38333333-97.71666667CORYELLTXGEORGETOWN Region:341350630.63333333-97.68333333WILLIAMSONTXGLENFAWN Region:341358531.91666667-94.85TXGRANBURY 2 ENE Region:341367332.45-97.75HOODTXGRANGER Region:341368530.71666667-97.45WILLIAMSONTXGRANGER DAM Region:341368630.7-97.35WILLIAMSONTXHASKELL Region:241399233.15-99.75HASKELLTXHAWLEY 3 NE Region:241402632.65-99.73333333JONESTXHEDLEY 2E Region:241406234.85-100.65DONLEYTXHORDS CREEK DAM Region:241427831.85-99.56666667COLEMANTXHUDSPETH RIVER RANCH Region:641434829.98333333-101.1833333VAL VERDETXHURT Region:241439233.21666667-95.96666667TXJARRELL Region:341455630.83333333-97.61666667WILLIAMSONTXJUNO 10 NNE Region:641467430.28333333-101.0833333CROCKETTTXKILLEEN Region:341479131.11666667-97.7BELLTXKNOX CITY Region:241485233.41666667-99.81666667KNOXTXLAKE RAY HUBBARD Region:341491432.8-96.48333333KAUFMANTXLAKE ABILENE 6WNW Region:241496032.23333333-99.88333333TAYLORTXLAKE ALAN HENRY Region:241496733.06666667-101.05GARZATXLAKE BRIDGEPORT DAM Region:341497233.23333333-97.83333333WISETXLAKE COFFEE MILL Region:241497333.73333333-96TXLAKE COLORADO CITY Region:241497432.33333333-100.9166667MITCHELLTXLAKE FORK RESERVOIR Region:441497632.81666667-95.53333333WOODTXLAKE KICKAPOO Region:341497833.66666667-98.78333333ARCHERTXLAKE PALO PINTO Region:341497932.65-98.31666667PALO PINTOTXLAREDO Region:941505627.5-99.51666667WEBBTXLAREDO AIR FORCE BASE Region:941505727.53333333-99.46666667WEBBTXLAREDO 2 Region:941506027.56666667-99.5WEBBTXLATEX Region:341508132.35-94.1TXLORENZO Region:141536333.66666667-101.5333333CROSBYTXLOS ANGELES 4 WSW Region:941536928.45-99.06666667LA SALLETXMANCHACA Region:741553830.13333333-97.83333333TRAVISTXMCALLEN MILLER INTL AP Region:1041570226.18333333-98.23333333HIDALGOTXMEDINA 1NE Region:641574229.8-99.25BANDERATXMONAHANS Region:541599931.533333-102.9166667WardTXMUENSTER Region:341613033.65-97.38333333COOKETXMULESHOE NO 1 Region:141613534.23333333-102.75BAILEYTXMULLIN Region:341614031.58333333-98.66666667MILLSTXNEWPORT 1SW Region:341633133.45-98.03333333JACKTXOAK CREEK LAKE Region:641649532.05-100.3COKETXPIDCOKE Region:341701731.28333333-97.88333333CORYELLTXPIERCE 1 E Region:841702029.23333333-96.2WHARTONTXPILOT POINT ISL DU BOI Region:341702833.36666667-97.01666667DENTONTXPLAINVIEW Region:141707934.2-101.7HALETXPOSSUM KINGDOM DAM Region:341720532.86666667-98.43333333PALO PINTOTXPOTEET Region:941721529.03333333-98.58333333ATASCOSATXPRESIDIO Region:541726229.55-104.3833333PRESIDIOTXPRIDDY 1 NE Region:341727431.66666667-98.48333333MILLSTXRAYMONDVILLE Region:1041745826.48333333-97.81666667WILLACYTXRUSK Region:441784131.81666667-95.15CHEROKEETXSABINAL Region:641787329.36666667-99.48333333UVALDETXSALT FLAT Region:441792231.75-105.0833333TXSAN ANGELO Region:641794331.35-100.5TOM GREENTXSAN MANUEL Region:1041798126.56666667-98.11666667HIDALGOTXSANTA ANA NWR Region:1041805026.08333333-98.15HIDALGOTXSANTA ROSA 3 WNW Region:1041805926.26666667-97.86666667HIDALGOTXSCHULENBURG Region:741812629.68333333-96.85FAYETTETXSEALY Region:741816029.76666667-96.15AUSTINTXSHERMAN Region:341827433.7-96.63333333GRAYSONTXSILVER Region:541831632.03333333-100.7333333TXSIMMS 4 WNW Region:441833533.36666667-94.56666667BOWIETXSMITHVILLE Region:741841530.01666667-97.15BASTROPTXSNYDER Region:241843332.71666667-100.9166667SCURRYTXSOUTH PADRE ISLAND Region:1041848726.06666667-97.15CAMERONTXSTEPHENVILLE 1 N Region:341862332.25-98.2ERATHTXSUGAR LAND Region:841872829.61666667-95.63333333FORT BENDTXSULPHUR SPRINGS Region:441874333.13333333-95.6TXTEXARKANA Region:441894233.41666667-94.08333333BOWIETXTEXARKANA DAM Region:441894433.3-94.1667CASSTXTOLEDO BEND DAM Region:441906831.18333333-93.56666667NEWTONTXUVALDE 9 SW Region:641926429.13333333-99.9UVALDETXVANDERPOOL 4N Region:641931329.8-99.58333333BANDERATXWHARTON Region:841965529.31666667-96.08333333WHARTONTXWHITSETT 3 SW Region:941971628.63333333-98.26666667LIVE OAKTXWHITSETT Region:941971728.666667-98.25LIVE OAKTXWINK WINKLER CO AP Region:541983031.78333333-103.2WINKLERTXWINNSBORO 6 SW Region:441983632.88333333-95.33333333WOODTXWOODVILLE Region:441989830.76666667-94.41666667TYLERTXWORTHAM Region:441991231.78333333-96.45FREESTONETX \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/sites20100828041541653.xml b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/sites20100828041541653.xml new file mode 100644 index 00000000..8a917200 --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/sites20100828041541653.xml @@ -0,0 +1 @@ +Upper Copano BayAransas95_D128.06666667-97.20333333Copano CausewayAransas95_D228.115-97.02666667Mesquite Bay (Malfunctioned)Aransas95_D328.16055556-96.86388889mid Aransas BayAransas95_D427.96944444-97.0225Cold PassChristmas92_D129.07583333-95.13444444Christmas BayChristmas92_D229.04166667-95.175Swan Lake Boat BasinChristmas92_D328.975-95.26666667Port Aransas JettyCopanoAransas88_D127.83805556-97.05055556Morris and Cummings CutCopanoAransas88_D227.88861111-97.10555556Port AransasCopanoAransas88_D327.96944444-97.0225Copano CausewayCopanoAransas88_D427.12055556-97.02333333Dunham PointCopanoAransas88_D528.10083333-96.93805556Corpus Christi Bay SouthCorpusChristi87_D127.70055556-97.22055556Port Aransas JettyCorpusChristi87_D227.83805556-97.05055556Corpus Christi BayCorpusChristi94_D127.74166667-97.21666667JFK CausewayCorpusChristi94_D227.63444444-97.23944444Port Aransas JettyCorpusChristi94_D327.83805556-97.05055556Trinity Bay near Double BayouGalveston89_D129.66111111-94.74583333Upper Galveston near Red BluffGalveston89_D229.58055556-94.94166667 Redfish Reef East of HSCGalveston89_D329.51666667-94.85833333 HSC off Dollar Point Galveston89_D429.47111111-94.84888889West Bay, Carancahua ReefGalveston89_D529.25277778-94.97916667Bolivar RoadsGalveston89_D629.34166667-94.78333333East Bay at Marsh PointGalveston89_D729.53194444-94.57638889JFK CausewayLagunaMadre91_D127.63444444-97.23944444RivieraLagunaMadre91_D227.2825-97.63944444Baffin BayLagunaMadre91_D327.27777778-97.42083333Port MansfieldLagunaMadre91_D427.55833333-97.405Arroyo ColoradoLagunaMadre91_D526.35555556-97.32222222Port IsabelLagunaMadre91_D626.075-97.18055556Brazos Santiago PassLLM97_126.06833333-97.16333333GIW South of Arroyo ColoradoLLM97_1026.31305556-97.30277778GIW North of Arroyo ColoradoLLM97_1126.38027778-97.33361111North LLM West of GIWLLM97_1226.65166667-97.44North LLM East of GIWLLM97_1326.655-97.41166667South Bay PassLLM97_226.05027778-97.18388889Queen Isabella CausewayLLM97_5D26.0725-97.1875Queen Isabella CausewayLLM97_5S26.0725-97.1875Arroyo ColoradoLLM97_626.35666667-97.35666667Arroyo ColoradoLLM97_6D26.35666667-97.35666667Arroyo ColoradoLLM97_6S26.35666667-97.35666667Port Mansfield ChannelLLM97_726.56333333-97.29166667GIW at South Land CutLLM97_826.82444444-97.46833333Lavaca CausewayMatagorda88_D128.65333333-96.59555556Sandy PointMatagorda88_D228.55833333-96.51111111Pass CavalloMatagorda88_D328.39861111-96.39777778Range TowerMatagorda88_D428.4375-96.33472222Culver CutMatagorda88_D528.66583333-96.01166667Lavaca Causewaymatagorda93_D128.65444444-96.59361111Matagorda Bay Rangematagorda93_D228.44305556-96.35277778Magnolia Beachmatagorda93_D328.56444444-96.54722222*Eastern Matagorda Baymatagorda93_D428.60472222-96.01972222*Green's Bayoumatagorda93_D528.52777778-96.22777778Sabine CausewaySabine90_D129.76527778-93.89583333Mid Sabine Lake Sabine90_D229.9375-93.80833333Keith Lake Fish PassSabine96_D129.94166667-93.775GIW at Highway 87Sabine96_D229.82222222-93.96527778Platform ""A""Sabine96_D329.94444444-93.82861111Sabine River Platform (shallow)Sabine96_D430.00416667-93.76666667Sabine River Platform (deep)Sabine96_D530.00416667-93.76666667Black BayouSabine96_D629.99361111-93.76Johnson BayouSabine96_D729.84555556-93.77916667Seadrift ChannelSanAntonio88_D128.38138889-96.7425Mid San Antonio BaySanAntonio88_D228.28583333-96.78055556Mesquite BaySanAntonio88_D328.16-96.85111111Panther ReefSanAntonio88_D428.31055556-96.72166667South PassSanAntonio88_D528.30222222-96.61388889Oso Bay at Ocean Drive (Hwy 181)ULM95_3A27.70333333-97.30833333Oso Bay at Hwy 358 (SPID)ULM95_3B27.68027778-97.31166667Oso Bay at Yorktown BlvdULM95_3C27.64055556-97.34361111Corpus Christi BayULM95_D127.81055556-97.22805556Port Aransas JettyULM95_D227.83805556-97.05055556UTMSI Pier LabULM95_D327.83805556-97.05138889Oso BayULM95_D427.67972222-97.31222222 \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/sites20100831054240254.xml b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/sites20100831054240254.xml new file mode 100644 index 00000000..c24b02f5 --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v10/sites20100831054240254.xml @@ -0,0 +1 @@ +2010-08-31T18:42:36.932625-06:00ALL Sites(empty request)Little Bear River at Mendon Road near Mendon, UtahUSU-LBR-Mendon41.718473-111.946402421276.3234618952.041345NGVD29CacheUtahLocated below county road bridge at Mendon Road crossing10Little Bear River at McMurdy Hollow near Paradise, UtahUSU-LBR-Paradise41.575552-111.855217428703.9174603005.091445NGVD29CacheUtahLocated below bridge at 8700 South (McMurdy Hollow)10Utah State University Experimental Farm near Wellsville, UtahUSU-LBR-ExpFarm41.666993-111.890567425861.7144613186.9291369NGVD29CacheUtahThis is a continuous weather station. Located at the Utah State University Experimental Farm near Wellsville, Utah.10South Fork Little Bear River below Davenport Creek near Avon, UtahUSU-LBR-SFLower41.506518-111.815079431977.8224595308.4711564NGVD29CacheUtahLocated under a private road bridge just below the confluence with Davenport Creek.10East Fork Little Bear River at Paradise Canal Diversion near Avon, UtahUSU-LBR-EFLower41.529212-111.799324433315.8874597815.7071528NGVD29CacheUtahLocated on the Paradise Canal diversion structure.10Little Bear River Upper Weather Station near Avon, UtahUSU-LBR-EFWeather41.535543-111.805946432770.0274598523.7851538NGVD29CacheUtahThis is a continuous weather station. Located in the East Fork of the Little Bear River near Avon, Utah.10South Fork Little Bear River above Davenport Creek near Avon, UtahUSU-LBR-SFUpper41.495409-111.817993431977.8224595308.4711573NGVD29CacheUtahLocated on the downstream side of a private footbridge on the Selman Ranch.10Radio Repeater near Paradise, UtahUSU-LBR-ParadiseRepeater41.556736-111.854455428746.7344600915.4661693NGVD29CacheUtahLocated on high ridge overlooking the Little Bear River.10East Fork Little Bear River Radio Repeater near Avon, UtahUSU-LBR-EFRepeater41.536-111.806432770.0274598523.7851538NGVD29CacheUtahCo-located with the Little Bear River upper weather station in the East Fork.10Little Bear River near Wellsville, UtahUSU-LBR-Wellsville41.643457-111.917649423579.3174610597.5831365NGVD29CacheUtahLocated on the upstream side of State Highway 101 bridge.10Little Bear River below Confluence of South and East Forks near Avon, UtahUSU-LBR-Confluence41.536088-111.830455430726.097244598603.645191493NGVD29CacheUtahLocated on the downstream side of the county bridge over the Little Bear River.10Little Bear River at Paradise, Utah1010590041.5756-111.85441445NGVD29CacheUtahThis is a real time USGS streamflow gage.10Little Bear River Paradise Weather Station near Paradise, UtahUSU-LBR-ParadiseWeather41.5724-111.85511478NGVD29CacheUtahThis is a continuous weather station. Located on a bluff overlooking the Little Bear River.10Little Bear River South Fork Weather Station near Avon, UtahUSU-LBR-SFWeather41.4967-111.81931601NGVD29CacheUtahThis is a continuous weather station.10 \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v11/GetValues_Mendon_usu3.xml b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v11/GetValues_Mendon_usu3.xml new file mode 100644 index 00000000..cf8891db --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v11/GetValues_Mendon_usu3.xml @@ -0,0 +1,145 @@ + + + + 2012-06-06T11:57:42.6435015-07:00 + + + + + + + + + + Little Bear River at Mendon Road near Mendon, Utah + USU-LBR-Mendon + + + 41.718473 + -111.946402 + + + 421276.323 + 4618952.04 + + + 1345 + NGVD29 + Cache + Utah + Located below county road bridge at Mendon Road crossing + + + USU3 + Battery voltage + Field Observation + Minimum + Instrumentation + Other + + volts + Potential Difference + V + 168 + + -9999 + + + minute + Time + min + 102 + + 30 + + Not Applicable + + + 12.91645 + 12.91477 + 12.90721 + 12.90301 + 12.89882 + 12.88874 + 12.88958 + 12.88706 + 12.88706 + 12.87783 + 12.87615 + 12.87531 + 12.86188 + 12.86608 + 12.86608 + 12.87195 + 12.86944 + 12.88455 + 13.12379 + 13.21193 + 13.41339 + 13.38653 + 13.36806 + 13.34372 + 13.30427 + 13.27321 + 13.23963 + 13.21025 + 13.21025 + 13.18758 + 13.18171 + 13.17247 + 13.16996 + 13.16156 + 13.16996 + 13.17499 + 13.18842 + 13.22032 + 13.0751 + 13.04908 + 13.02557 + 13.02222 + 13.00543 + 13.00291 + 12.98864 + 12.9836 + 12.97772 + 12.97437 + 12.95674 + + 0 + Raw data + Raw and unprocessed data and data products that have not undergone quality control. Depending on the variable, data type, and data transmission system, raw data may be available within seconds or minutes after the measurements have been made. Examples include real time precipitation, streamflow and water quality measurements. + + + 4 + Battery voltage measured by Campbell Scientific CR206 datalogger. + http://www.campbellsci.com + + + 1 + Utah State University Utah Water Research Laboratory + Continuous water quality monitoring by Utah State University as part of the USDA CEAP Grant + + inlandWaters + Little Bear River Conservation Effects Assessment Project water quality data. + Abstract + ProfileVersion + MetadataLink + + + Jeff Horsburgh + main + jeff.horsburgh@usu.edu + 1-435-797-2946 +
    8200 Old Main Hill +,Logan, UT 84322-8200
    +
    + http://www.bearriverinfo.org + Continuous water quality monitoring by Jeff Horsburgh, David Stevens, Nancy Mesner and others from Utah State University as part of the USDA Conservation Effects Assessment Grant + + + nc + not censored + +
    +
    +
    \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v11/Site-RCEW2-012-20120604043508874.xml b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v11/Site-RCEW2-012-20120604043508874.xml new file mode 100644 index 00000000..64f51699 --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v11/Site-RCEW2-012-20120604043508874.xml @@ -0,0 +1,99 @@ + + + + http://www.cuahsi.org/his/1.1/ws/GetSiteInfoObjectResponse + urn:uuid:4fd73dbb-6f2d-471a-8c33-ea3039453ab6 + urn:uuid:78daaa65-c332-4ea8-ba03-323f6c8f2814 + http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous + + + 2012-06-04T12:35:08Z + 2012-06-04T12:40:08Z + + + + + + + + 2012-06-04T06:35:08.2788044-06:00 + + + + + + + Little Salmon Creek + 012 + + + 43.296918 + -116.82704 + + + 4793587 + 514030 + + + 1575 + MSL + Owyhee + Idaho + Comments + SiteType + Country + 3.5 + + + + + hourly-precipitation + Precipitation + Field Observation + Incremental + Climate + Not Relevant + + millimeter + Length + mm + 54 + + -9999 + + + hour + Time + hr + 103 + + 1 + + Not Applicable + + 7133 + + 2000-07-18T07:00:00 + 2010-01-01T14:00:00 + 2000-07-18T14:00:00 + 2010-01-01T21:00:00 + + + Precipitation measured using a Belfort Instrument Weighing, Recording Universal Precipitation Gage sheltered by an Alter-type shield with the shield�s baffles individually constrained at an angle of 30� from vertical, 12"" capacity, 8"" orifice at 10' height above ground. Reduced precipitation obtained using APCP and manual pre-processing when needed. + + + Northwest Watershed Research Center + Continuous monitoring of precipitation at Reynolds Creek Experimental Watershed by the United States Department of Agriculture's Agricultural Research Service + Hanson, C. L., Long-term precipitation database, Reynolds Creek Experimental, Watershed, Idaho, USA, Water Resources Research, 37, 2831-2834, 2001. + + + 1 + Quality controlled data + Explanation + + + + hourly-precipitationPrecipitationField ObservationIncrementalClimateNot RelevantmillimeterLengthmm54-9999hourTimehr1031Not Applicable66092000-07-18T08:00:002010-01-01T11:00:002000-07-18T15:00:002010-01-01T18:00:00Precipitation measured using a Belfort Instrument Weighing, Recording Universal Precipitation Gage, 12"" capacity, 8"" orifice at 10' height above ground. Reduced precipitation obtained using APCP and manual pre-processing when needed.Northwest Watershed Research CenterContinuous monitoring of precipitation at Reynolds Creek Experimental Watershed by the United States Department of Agriculture's Agricultural Research ServiceHanson, C. L., Long-term precipitation database, Reynolds Creek Experimental, Watershed, Idaho, USA, Water Resources Research, 37, 2831-2834, 2001.1Quality controlled datahourly-precipitationPrecipitationField ObservationIncrementalClimateNot RelevantmillimeterLengthmm54-9999hourTimehr1031Not Applicable72721968-01-01T11:00:001976-12-23T12:00:001968-01-01T18:00:001976-12-23T19:00:00Precipitation measured using a Belfort Instrument Weighing, Recording Universal Precipitation Gage sheltered by an Alter-type shield with the shield�s baffles individually constrained at an angle of 30� from vertical, 12"" or 6"" capacity, 8"" orifice at 10' height above ground. Reduced precipitation records obtained from digitized charts using FORTRAN reduction routines.Northwest Watershed Research CenterContinuous monitoring of precipitation at Reynolds Creek Experimental Watershed by the United States Department of Agriculture's Agricultural Research ServiceHanson, C. L., Long-term precipitation database, Reynolds Creek Experimental, Watershed, Idaho, USA, Water Resources Research, 37, 2831-2834, 2001.1Quality controlled datahourly-precipitationPrecipitationField ObservationIncrementalClimateNot RelevantmillimeterLengthmm54-9999hourTimehr1031Not Applicable107961962-01-06T05:00:001976-12-23T12:00:001962-01-06T12:00:001976-12-23T19:00:00Precipitation measured using a Belfort Instrument Weighing, Recording Universal Precipitation Gage, 12"" or 6"" capacity, 8"" orifice at 10' height above ground. Reduced precipitation records obtained from digitized charts using FORTRAN reduction programs.Northwest Watershed Research CenterContinuous monitoring of precipitation at Reynolds Creek Experimental Watershed by the United States Department of Agriculture's Agricultural Research ServiceHanson, C. L., Long-term precipitation database, Reynolds Creek Experimental, Watershed, Idaho, USA, Water Resources Research, 37, 2831-2834, 2001.1Quality controlled datahourly-precipitationPrecipitationField ObservationIncrementalClimateNot RelevantmillimeterLengthmm54-9999hourTimehr1031Not Applicable174081962-01-06T05:00:002010-01-01T11:00:001962-01-06T12:00:002010-01-01T18:00:00Wind-corrected precipitation calculated using paired unshielded and Alter-type shielded rainagage values in A=S**b*U**(1-b) where A is wind corrected value, S is precipitation measured using shielded gage, U is precipitation using unshielded gage and b=1.8Northwest Watershed Research CenterContinuous monitoring of precipitation at Reynolds Creek Experimental Watershed by the United States Department of Agriculture's Agricultural Research ServiceHanson, C. L., Long-term precipitation database, Reynolds Creek Experimental, Watershed, Idaho, USA, Water Resources Research, 37, 2831-2834, 2001.1Quality controlled data \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v20/GetValues_Mendon_usu3_wml2.xml b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v20/GetValues_Mendon_usu3_wml2.xml new file mode 100644 index 00000000..49f547a3 --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v20/GetValues_Mendon_usu3_wml2.xml @@ -0,0 +1,549 @@ + + + + + 2011-01-01T00:00:00Z + + XSLT Translation from WaterML1.1 response + document + + + + + phenomena + + + + LBR:USU3 + SampleConcept + + + + + + + + quality + + + 0 + Raw data + Raw and unprocessed data and data products that have not undergone quality control. Depending on the variable, data type, and data transmission system, raw data may be available within seconds or minutes after the measurements have been made. Examples include real time precipitation, streamflow and water quality measurements. + + + + + + + + censorCode + + + nc + not censored + + + + + + + method + + + 4 + Battery voltage measured by Campbell Scientific CR206 datalogger. + + + + + + + USU-LBR-Mendon + Little Bear River at Mendon Road near Mendon, Utah + + + + + 1345 + + + + + + NGVD29 + + + + + 41.718473 + + + + + + + + + + + + Jeff Horsburgh + + + Utah State University Utah Water Research Laboratory + + + + + + + 1-435-797-2946 + + + + + + + 8200 Old Main Hill +,Logan, UT 84322-8200 + + + jeff.horsburgh@usu.edu + + + + + + + http://www.bearriverinfo.org + + + + + + + + + + + + 2006-05-04T18:13:51.0Z + + + + + English-United States + + + UTF 8 + + + + + + + + + Continuous water quality monitoring by Jeff Horsburgh, David Stevens, Nancy Mesner and others from Utah State University as part of the USDA Conservation Effects Assessment Grant + + + + + 2006-05-04T18:13:51.0Z + + + + + + + + + + Continuous water quality monitoring by Utah State University as part of the USDA CEAP Grant + + + EN-US + + + + + + + + + + + + 2005-08-05T00:00:00-07:00 + 2005-08-06T00:00:00-07:00 + + + + + 2005-08-06T00:00:00-07:00 + + + + + + PT30M + + + + + Field Observation + + + + + + -9999 + + + + + + Other + + + + + + Not Applicable + + + + + + + + + + + + + + + true + PT30M + + + + + + + + + + + + + + + + 2005-08-05T00:00:00-07:00 + 12.91645 + + + + + 2005-08-05T00:30:00-07:00 + 12.91477 + + + + + 2005-08-05T01:00:00-07:00 + 12.90721 + + + + + 2005-08-05T01:30:00-07:00 + 12.90301 + + + + + 2005-08-05T02:00:00-07:00 + 12.89882 + + + + + 2005-08-05T02:30:00-07:00 + 12.88874 + + + + + 2005-08-05T03:00:00-07:00 + 12.88958 + + + + + 2005-08-05T03:30:00-07:00 + 12.88706 + + + + + 2005-08-05T04:00:00-07:00 + 12.88706 + + + + + 2005-08-05T04:30:00-07:00 + 12.87783 + + + + + 2005-08-05T05:00:00-07:00 + 12.87615 + + + + + 2005-08-05T05:30:00-07:00 + 12.87531 + + + + + 2005-08-05T06:00:00-07:00 + 12.86188 + + + + + 2005-08-05T06:30:00-07:00 + 12.86608 + + + + + 2005-08-05T07:00:00-07:00 + 12.86608 + + + + + 2005-08-05T07:30:00-07:00 + 12.87195 + + + + + 2005-08-05T08:00:00-07:00 + 12.86944 + + + + + 2005-08-05T08:30:00-07:00 + 12.88455 + + + + + 2005-08-05T09:00:00-07:00 + 13.12379 + + + + + 2005-08-05T09:30:00-07:00 + 13.21193 + + + + + 2005-08-05T10:00:00-07:00 + 13.41339 + + + + + 2005-08-05T10:30:00-07:00 + 13.38653 + + + + + 2005-08-05T11:00:00-07:00 + 13.36806 + + + + + 2005-08-05T11:30:00-07:00 + 13.34372 + + + + + 2005-08-05T12:00:00-07:00 + 13.30427 + + + + + 2005-08-05T12:30:00-07:00 + 13.27321 + + + + + 2005-08-05T13:00:00-07:00 + 13.23963 + + + + + 2005-08-05T13:30:00-07:00 + 13.21025 + + + + + 2005-08-05T14:00:00-07:00 + 13.21025 + + + + + 2005-08-05T14:30:00-07:00 + 13.18758 + + + + + 2005-08-05T15:00:00-07:00 + 13.18171 + + + + + 2005-08-05T15:30:00-07:00 + 13.17247 + + + + + 2005-08-05T16:00:00-07:00 + 13.16996 + + + + + 2005-08-05T16:30:00-07:00 + 13.16156 + + + + + 2005-08-05T17:00:00-07:00 + 13.16996 + + + + + 2005-08-05T17:30:00-07:00 + 13.17499 + + + + + 2005-08-05T18:00:00-07:00 + 13.18842 + + + + + 2005-08-05T18:30:00-07:00 + 13.22032 + + + + + 2005-08-05T19:00:00-07:00 + 13.0751 + + + + + 2005-08-05T19:30:00-07:00 + 13.04908 + + + + + 2005-08-05T20:00:00-07:00 + 13.02557 + + + + + 2005-08-05T20:30:00-07:00 + 13.02222 + + + + + 2005-08-05T21:00:00-07:00 + 13.00543 + + + + + 2005-08-05T21:30:00-07:00 + 13.00291 + + + + + 2005-08-05T22:00:00-07:00 + 12.98864 + + + + + 2005-08-05T22:30:00-07:00 + 12.9836 + + + + + 2005-08-05T23:00:00-07:00 + 12.97772 + + + + + 2005-08-05T23:30:00-07:00 + 12.97437 + + + + + 2005-08-06T00:00:00-07:00 + 12.95674 + + + + + + + \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v20/Kisters_wml2.xml b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v20/Kisters_wml2.xml new file mode 100644 index 00000000..54b61c8b --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v20/Kisters_wml2.xml @@ -0,0 +1 @@ +KISTERS KiWIS WaterML2.02014-03-20T14:58:03.820+00:00KISTERS KiWIS2014-03-06T09:00:00.000-06:002014-03-20T08:15:00.000-06:002014-03-06T09:00:00.000-06:002014-03-20T08:15:00.000-06:002014-03-20T08:15:00.000-06:002014-03-06T09:00:00.000-06:00336.02014-03-06T09:15:00.000-06:00333.02014-03-06T09:30:00.000-06:00331.02014-03-06T09:45:00.000-06:00329.02014-03-06T10:00:00.000-06:00329.02014-03-06T10:15:00.000-06:00327.02014-03-06T10:30:00.000-06:00323.02014-03-06T10:45:00.000-06:00325.02014-03-06T11:00:00.000-06:00321.02014-03-06T11:15:00.000-06:00319.02014-03-06T11:30:00.000-06:00319.02014-03-06T11:45:00.000-06:00316.02014-03-06T12:00:00.000-06:00316.02014-03-06T12:15:00.000-06:00316.02014-03-06T12:30:00.000-06:00314.02014-03-06T12:45:00.000-06:00314.02014-03-06T13:00:00.000-06:00312.02014-03-06T13:15:00.000-06:00310.02014-03-06T13:30:00.000-06:00312.02014-03-06T13:45:00.000-06:00312.02014-03-06T14:00:00.000-06:00312.02014-03-06T14:15:00.000-06:00310.02014-03-06T14:30:00.000-06:00312.02014-03-06T14:45:00.000-06:00310.02014-03-06T15:00:00.000-06:00310.02014-03-06T15:15:00.000-06:00308.02014-03-06T15:30:00.000-06:00306.02014-03-06T15:45:00.000-06:00304.02014-03-06T16:00:00.000-06:00304.02014-03-06T16:15:00.000-06:00304.02014-03-06T16:30:00.000-06:00304.02014-03-06T16:45:00.000-06:00304.02014-03-06T17:00:00.000-06:00306.02014-03-06T17:15:00.000-06:00308.02014-03-06T17:30:00.000-06:00310.02014-03-06T17:45:00.000-06:00310.02014-03-06T18:00:00.000-06:00312.02014-03-06T18:15:00.000-06:00314.02014-03-06T18:30:00.000-06:00316.02014-03-06T18:45:00.000-06:00321.02014-03-06T19:00:00.000-06:00321.02014-03-06T19:15:00.000-06:00325.02014-03-06T19:30:00.000-06:00327.02014-03-06T19:45:00.000-06:00329.02014-03-06T20:00:00.000-06:00331.02014-03-06T20:15:00.000-06:00333.02014-03-06T20:30:00.000-06:00336.02014-03-06T20:45:00.000-06:00336.02014-03-06T21:00:00.000-06:00338.02014-03-06T21:15:00.000-06:00340.02014-03-06T21:30:00.000-06:00340.02014-03-06T21:45:00.000-06:00342.02014-03-06T22:00:00.000-06:00344.02014-03-06T22:15:00.000-06:00344.02014-03-06T22:30:00.000-06:00346.02014-03-06T22:45:00.000-06:00346.02014-03-06T23:00:00.000-06:00346.02014-03-06T23:15:00.000-06:00346.02014-03-06T23:30:00.000-06:00346.02014-03-06T23:45:00.000-06:00349.02014-03-07T00:00:00.000-06:00346.02014-03-07T00:15:00.000-06:00349.02014-03-07T00:30:00.000-06:00346.02014-03-07T00:45:00.000-06:00346.02014-03-07T01:00:00.000-06:00344.02014-03-07T01:15:00.000-06:00344.02014-03-07T01:30:00.000-06:00344.02014-03-07T01:45:00.000-06:00344.02014-03-07T02:00:00.000-06:00342.02014-03-07T02:15:00.000-06:00342.02014-03-07T02:30:00.000-06:00340.02014-03-07T02:45:00.000-06:00340.02014-03-07T03:00:00.000-06:00340.02014-03-07T03:15:00.000-06:00338.02014-03-07T03:30:00.000-06:00338.02014-03-07T03:45:00.000-06:00336.02014-03-07T04:00:00.000-06:00336.02014-03-07T04:15:00.000-06:00333.02014-03-07T04:30:00.000-06:00331.02014-03-07T04:45:00.000-06:00331.02014-03-07T05:00:00.000-06:00329.02014-03-07T05:15:00.000-06:00327.02014-03-07T05:30:00.000-06:00327.02014-03-07T05:45:00.000-06:00325.02014-03-07T06:00:00.000-06:00323.02014-03-07T06:15:00.000-06:00323.02014-03-07T06:30:00.000-06:00321.02014-03-07T06:45:00.000-06:00321.02014-03-07T07:00:00.000-06:00319.02014-03-07T07:15:00.000-06:00316.02014-03-07T07:30:00.000-06:00316.02014-03-07T07:45:00.000-06:00314.02014-03-07T08:00:00.000-06:00314.02014-03-07T08:15:00.000-06:00312.02014-03-07T08:30:00.000-06:00312.02014-03-07T08:45:00.000-06:00310.02014-03-07T09:00:00.000-06:00310.02014-03-07T09:15:00.000-06:00308.02014-03-07T09:30:00.000-06:00308.02014-03-07T09:45:00.000-06:00306.02014-03-07T10:00:00.000-06:00306.02014-03-07T10:15:00.000-06:00304.02014-03-07T10:30:00.000-06:00304.02014-03-07T10:45:00.000-06:00302.02014-03-07T11:00:00.000-06:00302.02014-03-07T11:15:00.000-06:00300.02014-03-07T11:30:00.000-06:00300.02014-03-07T11:45:00.000-06:00300.02014-03-07T12:00:00.000-06:00298.02014-03-07T12:15:00.000-06:00298.02014-03-07T12:30:00.000-06:00298.02014-03-07T12:45:00.000-06:00296.02014-03-07T13:00:00.000-06:00296.02014-03-07T13:15:00.000-06:00296.02014-03-07T13:30:00.000-06:00294.02014-03-07T13:45:00.000-06:00294.02014-03-07T14:00:00.000-06:00294.02014-03-07T14:15:00.000-06:00294.02014-03-07T14:30:00.000-06:00292.02014-03-07T14:45:00.000-06:00290.02014-03-07T15:00:00.000-06:00292.02014-03-07T15:15:00.000-06:00288.02014-03-07T15:30:00.000-06:00290.02014-03-07T15:45:00.000-06:00290.02014-03-07T16:00:00.000-06:00290.02014-03-07T16:15:00.000-06:00290.02014-03-07T16:30:00.000-06:00290.02014-03-07T16:45:00.000-06:00288.02014-03-07T17:00:00.000-06:00288.02014-03-07T17:15:00.000-06:00288.02014-03-07T17:30:00.000-06:00288.02014-03-07T17:45:00.000-06:00288.02014-03-07T18:00:00.000-06:00290.02014-03-07T18:15:00.000-06:00292.02014-03-07T18:30:00.000-06:00292.02014-03-07T18:45:00.000-06:00294.02014-03-07T19:00:00.000-06:00292.02014-03-07T19:15:00.000-06:00294.02014-03-07T19:30:00.000-06:00296.02014-03-07T19:45:00.000-06:00298.02014-03-07T20:00:00.000-06:00300.02014-03-07T20:15:00.000-06:00300.02014-03-07T20:30:00.000-06:00302.02014-03-07T20:45:00.000-06:00304.02014-03-07T21:00:00.000-06:00306.02014-03-07T21:15:00.000-06:00310.02014-03-07T21:30:00.000-06:00312.02014-03-07T21:45:00.000-06:00314.02014-03-07T22:00:00.000-06:00316.02014-03-07T22:15:00.000-06:00319.02014-03-07T22:30:00.000-06:00321.02014-03-07T22:45:00.000-06:00323.02014-03-07T23:00:00.000-06:00325.02014-03-07T23:15:00.000-06:00329.02014-03-07T23:30:00.000-06:00331.02014-03-07T23:45:00.000-06:00333.02014-03-08T00:00:00.000-06:00336.02014-03-08T00:15:00.000-06:00338.02014-03-08T00:30:00.000-06:00338.02014-03-08T00:45:00.000-06:00340.02014-03-08T01:00:00.000-06:00342.02014-03-08T01:15:00.000-06:00344.02014-03-08T01:30:00.000-06:00344.02014-03-08T01:45:00.000-06:00346.02014-03-08T02:00:00.000-06:00346.02014-03-08T02:15:00.000-06:00349.02014-03-08T02:30:00.000-06:00349.02014-03-08T02:45:00.000-06:00349.02014-03-08T03:00:00.000-06:00349.02014-03-08T03:15:00.000-06:00349.02014-03-08T03:30:00.000-06:00349.02014-03-08T03:45:00.000-06:00351.02014-03-08T04:00:00.000-06:00351.02014-03-08T04:15:00.000-06:00349.02014-03-08T04:30:00.000-06:00349.02014-03-08T04:45:00.000-06:00349.02014-03-08T05:00:00.000-06:00349.02014-03-08T05:15:00.000-06:00346.02014-03-08T05:30:00.000-06:00346.02014-03-08T05:45:00.000-06:00346.02014-03-08T06:00:00.000-06:00344.02014-03-08T06:15:00.000-06:00344.02014-03-08T06:30:00.000-06:00342.02014-03-08T06:45:00.000-06:00342.02014-03-08T07:00:00.000-06:00340.02014-03-08T07:15:00.000-06:00338.02014-03-08T07:30:00.000-06:00338.02014-03-08T07:45:00.000-06:00336.02014-03-08T08:00:00.000-06:00336.02014-03-08T08:15:00.000-06:00333.02014-03-08T08:30:00.000-06:00331.02014-03-08T08:45:00.000-06:00331.02014-03-08T09:00:00.000-06:00329.02014-03-08T09:15:00.000-06:00329.02014-03-08T09:30:00.000-06:00327.02014-03-08T09:45:00.000-06:00325.02014-03-08T10:00:00.000-06:00325.02014-03-08T10:15:00.000-06:00323.02014-03-08T10:30:00.000-06:00323.02014-03-08T10:45:00.000-06:00321.02014-03-08T11:00:00.000-06:00321.02014-03-08T11:15:00.000-06:00319.02014-03-08T11:30:00.000-06:00316.02014-03-08T11:45:00.000-06:00316.02014-03-08T12:00:00.000-06:00316.02014-03-08T12:15:00.000-06:00314.02014-03-08T12:30:00.000-06:00314.02014-03-08T12:45:00.000-06:00314.02014-03-08T13:00:00.000-06:00314.02014-03-08T13:15:00.000-06:00312.02014-03-08T13:30:00.000-06:00312.02014-03-08T13:45:00.000-06:00312.02014-03-08T14:00:00.000-06:00312.02014-03-08T14:15:00.000-06:00312.02014-03-08T14:30:00.000-06:00312.02014-03-08T14:45:00.000-06:00312.02014-03-08T15:00:00.000-06:00312.02014-03-08T15:15:00.000-06:00314.02014-03-08T15:30:00.000-06:00314.02014-03-08T15:45:00.000-06:00316.02014-03-08T16:00:00.000-06:00316.02014-03-08T16:15:00.000-06:00319.02014-03-08T16:30:00.000-06:00316.02014-03-08T16:45:00.000-06:00319.02014-03-08T17:00:00.000-06:00321.02014-03-08T17:15:00.000-06:00321.02014-03-08T17:30:00.000-06:00323.02014-03-08T17:45:00.000-06:00323.02014-03-08T18:00:00.000-06:00323.02014-03-08T18:15:00.000-06:00325.02014-03-08T18:30:00.000-06:00327.02014-03-08T18:45:00.000-06:00327.02014-03-08T19:00:00.000-06:00329.02014-03-08T19:15:00.000-06:00329.02014-03-08T19:30:00.000-06:00331.02014-03-08T19:45:00.000-06:00331.02014-03-08T20:00:00.000-06:00333.02014-03-08T20:15:00.000-06:00336.02014-03-08T20:30:00.000-06:00338.02014-03-08T20:45:00.000-06:00342.02014-03-08T21:00:00.000-06:00344.02014-03-08T21:15:00.000-06:00344.02014-03-08T21:30:00.000-06:00344.02014-03-08T21:45:00.000-06:00344.02014-03-08T22:00:00.000-06:00342.02014-03-08T22:15:00.000-06:00342.02014-03-08T22:30:00.000-06:00342.02014-03-08T22:45:00.000-06:00344.02014-03-08T23:00:00.000-06:00342.02014-03-08T23:15:00.000-06:00344.02014-03-08T23:30:00.000-06:00342.02014-03-08T23:45:00.000-06:00344.02014-03-09T00:00:00.000-06:00340.02014-03-09T00:15:00.000-06:00342.02014-03-09T00:30:00.000-06:00344.02014-03-09T00:45:00.000-06:00342.02014-03-09T01:00:00.000-06:00344.02014-03-09T01:15:00.000-06:00344.02014-03-09T01:30:00.000-06:00344.02014-03-09T01:45:00.000-06:00346.02014-03-09T03:00:00.000-06:00344.02014-03-09T03:15:00.000-06:00346.02014-03-09T03:30:00.000-06:00346.02014-03-09T03:45:00.000-06:00344.02014-03-09T04:00:00.000-06:00344.02014-03-09T04:15:00.000-06:00346.02014-03-09T04:30:00.000-06:00346.02014-03-09T04:45:00.000-06:00346.02014-03-09T05:00:00.000-06:00349.02014-03-09T05:15:00.000-06:00349.02014-03-09T05:30:00.000-06:00351.02014-03-09T05:45:00.000-06:00353.02014-03-09T06:00:00.000-06:00355.02014-03-09T06:15:00.000-06:00355.02014-03-09T06:30:00.000-06:00355.02014-03-09T06:45:00.000-06:00355.02014-03-09T07:00:00.000-06:00357.02014-03-09T07:15:00.000-06:00360.02014-03-09T07:30:00.000-06:00360.02014-03-09T07:45:00.000-06:00360.02014-03-09T08:00:00.000-06:00360.02014-03-09T08:15:00.000-06:00361.999999999999942014-03-09T08:30:00.000-06:00361.999999999999942014-03-09T08:45:00.000-06:00361.999999999999942014-03-09T09:00:00.000-06:00364.02014-03-09T09:15:00.000-06:00364.02014-03-09T09:30:00.000-06:00364.02014-03-09T09:45:00.000-06:00361.999999999999942014-03-09T10:00:00.000-06:00361.999999999999942014-03-09T10:15:00.000-06:00361.999999999999942014-03-09T10:30:00.000-06:00360.02014-03-09T10:45:00.000-06:00360.02014-03-09T11:00:00.000-06:00360.02014-03-09T11:15:00.000-06:00357.02014-03-09T11:30:00.000-06:00357.02014-03-09T11:45:00.000-06:00355.02014-03-09T12:00:00.000-06:00353.02014-03-09T12:15:00.000-06:00355.02014-03-09T12:30:00.000-06:00353.02014-03-09T12:45:00.000-06:00353.02014-03-09T13:00:00.000-06:00353.02014-03-09T13:15:00.000-06:00353.02014-03-09T13:30:00.000-06:00353.02014-03-09T13:45:00.000-06:00353.02014-03-09T14:00:00.000-06:00353.02014-03-09T14:15:00.000-06:00353.02014-03-09T14:30:00.000-06:00355.02014-03-09T14:45:00.000-06:00355.02014-03-09T15:00:00.000-06:00355.02014-03-09T15:15:00.000-06:00355.02014-03-09T15:30:00.000-06:00360.02014-03-09T15:45:00.000-06:00361.999999999999942014-03-09T16:00:00.000-06:00361.999999999999942014-03-09T16:15:00.000-06:00364.02014-03-09T16:30:00.000-06:00366.02014-03-09T16:45:00.000-06:00368.999999999999942014-03-09T17:00:00.000-06:00371.02014-03-09T17:15:00.000-06:00372.999999999999942014-03-09T17:30:00.000-06:00376.000000000000062014-03-09T17:45:00.000-06:00378.02014-03-09T18:00:00.000-06:00379.999999999999942014-03-09T18:15:00.000-06:00382.02014-03-09T18:30:00.000-06:00385.02014-03-09T18:45:00.000-06:00386.999999999999942014-03-09T19:00:00.000-06:00389.02014-03-09T19:15:00.000-06:00392.02014-03-09T19:30:00.000-06:00393.999999999999942014-03-09T19:45:00.000-06:00397.000000000000062014-03-09T20:00:00.000-06:00397.000000000000062014-03-09T20:15:00.000-06:00399.02014-03-09T20:30:00.000-06:00399.02014-03-09T20:45:00.000-06:00400.999999999999942014-03-09T21:00:00.000-06:00404.000000000000062014-03-09T21:15:00.000-06:00404.000000000000062014-03-09T21:30:00.000-06:00406.02014-03-09T21:45:00.000-06:00406.02014-03-09T22:00:00.000-06:00406.02014-03-09T22:15:00.000-06:00407.999999999999942014-03-09T22:30:00.000-06:00411.000000000000062014-03-09T22:45:00.000-06:00411.000000000000062014-03-09T23:00:00.000-06:00411.000000000000062014-03-09T23:15:00.000-06:00413.02014-03-09T23:30:00.000-06:00413.02014-03-09T23:45:00.000-06:00416.02014-03-10T00:00:00.000-06:00416.02014-03-10T00:15:00.000-06:00416.02014-03-10T00:30:00.000-06:00418.000000000000062014-03-10T00:45:00.000-06:00418.000000000000062014-03-10T01:00:00.000-06:00421.02014-03-10T01:15:00.000-06:00421.02014-03-10T01:30:00.000-06:00421.02014-03-10T01:45:00.000-06:00423.02014-03-10T02:00:00.000-06:00425.999999999999942014-03-10T02:15:00.000-06:00425.999999999999942014-03-10T02:30:00.000-06:00428.02014-03-10T02:45:00.000-06:00428.02014-03-10T03:00:00.000-06:00428.02014-03-10T03:15:00.000-06:00430.02014-03-10T03:30:00.000-06:00430.02014-03-10T03:45:00.000-06:00430.02014-03-10T04:00:00.000-06:00432.999999999999942014-03-10T04:15:00.000-06:00432.999999999999942014-03-10T04:30:00.000-06:00432.999999999999942014-03-10T04:45:00.000-06:00432.999999999999942014-03-10T05:00:00.000-06:00432.999999999999942014-03-10T05:15:00.000-06:00432.999999999999942014-03-10T05:30:00.000-06:00432.999999999999942014-03-10T05:45:00.000-06:00432.999999999999942014-03-10T06:00:00.000-06:00432.999999999999942014-03-10T06:15:00.000-06:00432.999999999999942014-03-10T06:30:00.000-06:00432.999999999999942014-03-10T06:45:00.000-06:00430.02014-03-10T07:00:00.000-06:00430.02014-03-10T07:15:00.000-06:00430.02014-03-10T07:30:00.000-06:00430.02014-03-10T07:45:00.000-06:00430.02014-03-10T08:00:00.000-06:00428.02014-03-10T08:15:00.000-06:00428.02014-03-10T08:30:00.000-06:00428.02014-03-10T08:45:00.000-06:00428.02014-03-10T09:00:00.000-06:00425.999999999999942014-03-10T09:15:00.000-06:00425.999999999999942014-03-10T09:30:00.000-06:00425.999999999999942014-03-10T09:45:00.000-06:00423.02014-03-10T10:00:00.000-06:00423.02014-03-10T10:15:00.000-06:00421.02014-03-10T10:30:00.000-06:00421.02014-03-10T10:45:00.000-06:00421.02014-03-10T11:00:00.000-06:00418.000000000000062014-03-10T11:15:00.000-06:00418.000000000000062014-03-10T11:30:00.000-06:00418.000000000000062014-03-10T11:45:00.000-06:00416.02014-03-10T12:00:00.000-06:00416.02014-03-10T12:15:00.000-06:00413.02014-03-10T12:30:00.000-06:00413.02014-03-10T12:45:00.000-06:00413.02014-03-10T13:00:00.000-06:00413.02014-03-10T13:15:00.000-06:00413.02014-03-10T13:30:00.000-06:00413.02014-03-10T13:45:00.000-06:00411.000000000000062014-03-10T14:00:00.000-06:00413.02014-03-10T14:15:00.000-06:00413.02014-03-10T14:30:00.000-06:00413.02014-03-10T14:45:00.000-06:00411.000000000000062014-03-10T15:00:00.000-06:00413.02014-03-10T15:15:00.000-06:00413.02014-03-10T15:30:00.000-06:00413.02014-03-10T15:45:00.000-06:00416.02014-03-10T16:00:00.000-06:00416.02014-03-10T16:15:00.000-06:00418.000000000000062014-03-10T16:30:00.000-06:00418.000000000000062014-03-10T16:45:00.000-06:00421.02014-03-10T17:00:00.000-06:00421.02014-03-10T17:15:00.000-06:00425.999999999999942014-03-10T17:30:00.000-06:00425.999999999999942014-03-10T17:45:00.000-06:00428.02014-03-10T18:00:00.000-06:00430.02014-03-10T18:15:00.000-06:00432.999999999999942014-03-10T18:30:00.000-06:00435.02014-03-10T18:45:00.000-06:00438.02014-03-10T19:00:00.000-06:00439.999999999999942014-03-10T19:15:00.000-06:00443.000000000000062014-03-10T19:30:00.000-06:00445.02014-03-10T19:45:00.000-06:00448.02014-03-10T20:00:00.000-06:00451.02014-03-10T20:15:00.000-06:00453.02014-03-10T20:30:00.000-06:00456.02014-03-10T20:45:00.000-06:00458.02014-03-10T21:00:00.000-06:00460.999999999999942014-03-10T21:15:00.000-06:00460.999999999999942014-03-10T21:30:00.000-06:00466.02014-03-10T21:45:00.000-06:00466.02014-03-10T22:00:00.000-06:00469.02014-03-10T22:15:00.000-06:00471.000000000000062014-03-10T22:30:00.000-06:00471.000000000000062014-03-10T22:45:00.000-06:00474.02014-03-10T23:00:00.000-06:00476.02014-03-10T23:15:00.000-06:00479.02014-03-10T23:30:00.000-06:00479.02014-03-10T23:45:00.000-06:00481.999999999999942014-03-11T00:00:00.000-06:00481.999999999999942014-03-11T00:15:00.000-06:00484.02014-03-11T00:30:00.000-06:00487.02014-03-11T00:45:00.000-06:00487.02014-03-11T01:00:00.000-06:00490.02014-03-11T01:15:00.000-06:00490.02014-03-11T01:30:00.000-06:00490.02014-03-11T01:45:00.000-06:00492.02014-03-11T02:00:00.000-06:00492.02014-03-11T02:15:00.000-06:00492.02014-03-11T02:30:00.000-06:00495.02014-03-11T02:45:00.000-06:00495.02014-03-11T03:00:00.000-06:00495.02014-03-11T03:15:00.000-06:00495.02014-03-11T03:30:00.000-06:00495.02014-03-11T03:45:00.000-06:00498.02014-03-11T04:00:00.000-06:00498.02014-03-11T04:15:00.000-06:00498.02014-03-11T04:30:00.000-06:00498.02014-03-11T04:45:00.000-06:00498.02014-03-11T05:00:00.000-06:00498.02014-03-11T05:15:00.000-06:00498.02014-03-11T05:30:00.000-06:00498.02014-03-11T05:45:00.000-06:00498.02014-03-11T06:00:00.000-06:00498.02014-03-11T06:15:00.000-06:00498.02014-03-11T06:30:00.000-06:00498.02014-03-11T06:45:00.000-06:00495.02014-03-11T07:00:00.000-06:00495.02014-03-11T07:15:00.000-06:00495.02014-03-11T07:30:00.000-06:00492.02014-03-11T07:45:00.000-06:00492.02014-03-11T08:00:00.000-06:00490.02014-03-11T08:15:00.000-06:00490.02014-03-11T08:30:00.000-06:00487.02014-03-11T08:45:00.000-06:00487.02014-03-11T09:00:00.000-06:00484.02014-03-11T09:15:00.000-06:00484.02014-03-11T09:30:00.000-06:00481.999999999999942014-03-11T09:45:00.000-06:00479.02014-03-11T10:00:00.000-06:00476.02014-03-11T10:15:00.000-06:00476.02014-03-11T10:30:00.000-06:00474.02014-03-11T10:45:00.000-06:00471.000000000000062014-03-11T11:00:00.000-06:00471.000000000000062014-03-11T11:15:00.000-06:00469.02014-03-11T11:30:00.000-06:00463.02014-03-11T11:45:00.000-06:00463.02014-03-11T12:00:00.000-06:00460.999999999999942014-03-11T12:15:00.000-06:00460.999999999999942014-03-11T12:30:00.000-06:00456.02014-03-11T12:45:00.000-06:00456.02014-03-11T13:00:00.000-06:00453.02014-03-11T13:15:00.000-06:00451.02014-03-11T13:30:00.000-06:00451.02014-03-11T13:45:00.000-06:00448.02014-03-11T14:00:00.000-06:00445.02014-03-11T14:15:00.000-06:00443.000000000000062014-03-11T14:30:00.000-06:00443.000000000000062014-03-11T14:45:00.000-06:00439.999999999999942014-03-11T15:00:00.000-06:00439.999999999999942014-03-11T15:15:00.000-06:00438.02014-03-11T15:30:00.000-06:00438.02014-03-11T15:45:00.000-06:00435.02014-03-11T16:00:00.000-06:00435.02014-03-11T16:15:00.000-06:00432.999999999999942014-03-11T16:30:00.000-06:00430.02014-03-11T16:45:00.000-06:00428.02014-03-11T17:00:00.000-06:00430.02014-03-11T17:15:00.000-06:00430.02014-03-11T17:30:00.000-06:00428.02014-03-11T17:45:00.000-06:00428.02014-03-11T18:00:00.000-06:00428.02014-03-11T18:15:00.000-06:00428.02014-03-11T18:30:00.000-06:00428.02014-03-11T18:45:00.000-06:00425.999999999999942014-03-11T19:00:00.000-06:00428.02014-03-11T19:15:00.000-06:00428.02014-03-11T19:30:00.000-06:00428.02014-03-11T19:45:00.000-06:00428.02014-03-11T20:00:00.000-06:00428.02014-03-11T20:15:00.000-06:00428.02014-03-11T20:30:00.000-06:00428.02014-03-11T20:45:00.000-06:00430.02014-03-11T21:00:00.000-06:00430.02014-03-11T21:15:00.000-06:00430.02014-03-11T21:30:00.000-06:00432.999999999999942014-03-11T21:45:00.000-06:00432.999999999999942014-03-11T22:00:00.000-06:00432.999999999999942014-03-11T22:15:00.000-06:00432.999999999999942014-03-11T22:30:00.000-06:00435.02014-03-11T22:45:00.000-06:00435.02014-03-11T23:00:00.000-06:00435.02014-03-11T23:15:00.000-06:00435.02014-03-11T23:30:00.000-06:00435.02014-03-11T23:45:00.000-06:00432.999999999999942014-03-12T00:00:00.000-06:00430.02014-03-12T00:15:00.000-06:00430.02014-03-12T00:30:00.000-06:00430.02014-03-12T00:45:00.000-06:00430.02014-03-12T01:00:00.000-06:00430.02014-03-12T01:15:00.000-06:00430.02014-03-12T01:30:00.000-06:00430.02014-03-12T01:45:00.000-06:00428.02014-03-12T02:00:00.000-06:00428.02014-03-12T16:15:00.000-06:00379.999999999999942014-03-12T16:30:00.000-06:00385.02014-03-12T16:45:00.000-06:00385.02014-03-12T17:00:00.000-06:00382.02014-03-12T17:15:00.000-06:00382.02014-03-12T17:30:00.000-06:00379.999999999999942014-03-12T17:45:00.000-06:00378.02014-03-12T18:00:00.000-06:00372.999999999999942014-03-12T18:15:00.000-06:00372.999999999999942014-03-14T13:30:00.000-06:00344.02014-03-14T13:45:00.000-06:00342.02014-03-14T14:00:00.000-06:00342.02014-03-14T14:15:00.000-06:00340.02014-03-14T14:30:00.000-06:00340.02014-03-14T14:45:00.000-06:00340.02014-03-14T15:00:00.000-06:00338.02014-03-14T15:15:00.000-06:00336.02014-03-14T15:30:00.000-06:00338.02014-03-14T15:45:00.000-06:00336.02014-03-14T16:00:00.000-06:00333.02014-03-14T16:15:00.000-06:00333.02014-03-14T16:30:00.000-06:00333.02014-03-14T16:45:00.000-06:00333.02014-03-14T17:00:00.000-06:00331.02014-03-14T17:15:00.000-06:00329.02014-03-14T17:30:00.000-06:00331.02014-03-14T17:45:00.000-06:00331.02014-03-14T18:00:00.000-06:00331.02014-03-14T18:15:00.000-06:00329.02014-03-14T18:30:00.000-06:00329.02014-03-14T18:45:00.000-06:00331.02014-03-14T19:00:00.000-06:00329.02014-03-14T19:15:00.000-06:00329.02014-03-14T19:30:00.000-06:00329.02014-03-14T19:45:00.000-06:00327.02014-03-14T20:00:00.000-06:00329.02014-03-14T20:15:00.000-06:00327.02014-03-14T20:30:00.000-06:00327.02014-03-14T20:45:00.000-06:00327.02014-03-14T21:00:00.000-06:00329.02014-03-14T21:15:00.000-06:00329.02014-03-14T21:30:00.000-06:00329.02014-03-14T21:45:00.000-06:00329.02014-03-14T22:00:00.000-06:00329.02014-03-14T22:15:00.000-06:00329.02014-03-14T22:30:00.000-06:00331.02014-03-14T22:45:00.000-06:00331.02014-03-14T23:00:00.000-06:00331.02014-03-14T23:15:00.000-06:00331.02014-03-14T23:30:00.000-06:00333.02014-03-14T23:45:00.000-06:00333.02014-03-15T00:00:00.000-06:00336.02014-03-15T00:15:00.000-06:00336.02014-03-15T00:30:00.000-06:00338.02014-03-15T00:45:00.000-06:00338.02014-03-15T01:00:00.000-06:00340.02014-03-15T01:15:00.000-06:00340.02014-03-15T01:30:00.000-06:00342.02014-03-15T01:45:00.000-06:00344.02014-03-15T02:00:00.000-06:00344.02014-03-15T02:15:00.000-06:00346.02014-03-15T02:30:00.000-06:00349.02014-03-15T02:45:00.000-06:00351.02014-03-15T03:00:00.000-06:00351.02014-03-15T03:15:00.000-06:00353.02014-03-15T03:30:00.000-06:00355.02014-03-15T03:45:00.000-06:00355.02014-03-15T04:00:00.000-06:00357.02014-03-15T04:15:00.000-06:00360.02014-03-15T04:30:00.000-06:00361.999999999999942014-03-15T04:45:00.000-06:00361.999999999999942014-03-15T05:00:00.000-06:00364.02014-03-15T05:15:00.000-06:00366.02014-03-15T05:30:00.000-06:00366.02014-03-15T05:45:00.000-06:00368.999999999999942014-03-15T06:00:00.000-06:00371.02014-03-15T06:15:00.000-06:00371.02014-03-15T06:30:00.000-06:00372.999999999999942014-03-15T06:45:00.000-06:00372.999999999999942014-03-15T07:00:00.000-06:00372.999999999999942014-03-15T07:15:00.000-06:00376.000000000000062014-03-15T07:30:00.000-06:00376.000000000000062014-03-15T07:45:00.000-06:00378.02014-03-15T08:00:00.000-06:00378.02014-03-15T08:15:00.000-06:00379.999999999999942014-03-15T08:30:00.000-06:00379.999999999999942014-03-15T08:45:00.000-06:00382.02014-03-15T09:00:00.000-06:00382.02014-03-15T09:15:00.000-06:00382.02014-03-15T09:30:00.000-06:00385.02014-03-15T09:45:00.000-06:00385.02014-03-15T10:00:00.000-06:00386.999999999999942014-03-15T10:15:00.000-06:00386.999999999999942014-03-15T10:30:00.000-06:00386.999999999999942014-03-15T10:45:00.000-06:00385.02014-03-15T11:00:00.000-06:00386.999999999999942014-03-15T11:15:00.000-06:00386.999999999999942014-03-15T11:30:00.000-06:00386.999999999999942014-03-15T11:45:00.000-06:00386.999999999999942014-03-15T12:00:00.000-06:00386.999999999999942014-03-15T12:15:00.000-06:00386.999999999999942014-03-15T12:30:00.000-06:00389.02014-03-15T12:45:00.000-06:00392.02014-03-15T13:00:00.000-06:00392.02014-03-15T13:15:00.000-06:00392.02014-03-15T13:30:00.000-06:00393.999999999999942014-03-15T13:45:00.000-06:00393.999999999999942014-03-15T14:00:00.000-06:00397.000000000000062014-03-15T14:15:00.000-06:00397.000000000000062014-03-15T14:30:00.000-06:00399.02014-03-15T14:45:00.000-06:00400.999999999999942014-03-15T15:00:00.000-06:00404.000000000000062014-03-15T15:15:00.000-06:00406.02014-03-15T15:30:00.000-06:00406.02014-03-15T15:45:00.000-06:00407.999999999999942014-03-15T16:00:00.000-06:00411.000000000000062014-03-15T16:15:00.000-06:00413.02014-03-15T16:30:00.000-06:00416.02014-03-15T16:45:00.000-06:00416.02014-03-15T17:00:00.000-06:00416.02014-03-15T17:15:00.000-06:00421.02014-03-15T17:30:00.000-06:00423.02014-03-15T17:45:00.000-06:00425.999999999999942014-03-15T18:00:00.000-06:00425.999999999999942014-03-15T18:15:00.000-06:00430.02014-03-15T18:30:00.000-06:00430.02014-03-15T18:45:00.000-06:00432.999999999999942014-03-15T19:00:00.000-06:00432.999999999999942014-03-15T19:15:00.000-06:00432.999999999999942014-03-15T19:30:00.000-06:00435.02014-03-15T19:45:00.000-06:00438.02014-03-15T20:00:00.000-06:00438.02014-03-15T20:15:00.000-06:00438.02014-03-15T20:30:00.000-06:00438.02014-03-15T20:45:00.000-06:00439.999999999999942014-03-15T21:00:00.000-06:00438.02014-03-15T21:15:00.000-06:00439.999999999999942014-03-15T21:30:00.000-06:00439.999999999999942014-03-15T21:45:00.000-06:00439.999999999999942014-03-15T22:00:00.000-06:00439.999999999999942014-03-15T22:15:00.000-06:00439.999999999999942014-03-15T22:30:00.000-06:00439.999999999999942014-03-15T22:45:00.000-06:00439.999999999999942014-03-15T23:00:00.000-06:00439.999999999999942014-03-15T23:15:00.000-06:00438.02014-03-15T23:30:00.000-06:00439.999999999999942014-03-15T23:45:00.000-06:00438.02014-03-16T00:00:00.000-06:00438.02014-03-16T00:15:00.000-06:00438.02014-03-16T00:30:00.000-06:00438.02014-03-16T00:45:00.000-06:00438.02014-03-16T01:00:00.000-06:00435.02014-03-16T01:15:00.000-06:00435.02014-03-16T01:30:00.000-06:00432.999999999999942014-03-16T01:45:00.000-06:00432.999999999999942014-03-16T02:00:00.000-06:00430.02014-03-16T02:15:00.000-06:00430.02014-03-16T02:30:00.000-06:00430.02014-03-16T02:45:00.000-06:00428.02014-03-16T03:00:00.000-06:00428.02014-03-16T03:15:00.000-06:00428.02014-03-16T03:30:00.000-06:00425.999999999999942014-03-16T03:45:00.000-06:00428.02014-03-16T04:00:00.000-06:00425.999999999999942014-03-16T04:15:00.000-06:00425.999999999999942014-03-16T04:30:00.000-06:00423.02014-03-16T04:45:00.000-06:00423.02014-03-16T05:00:00.000-06:00423.02014-03-16T05:15:00.000-06:00423.02014-03-16T05:30:00.000-06:00421.02014-03-16T05:45:00.000-06:00421.02014-03-16T06:00:00.000-06:00421.02014-03-16T06:15:00.000-06:00418.000000000000062014-03-16T06:30:00.000-06:00418.000000000000062014-03-16T06:45:00.000-06:00418.000000000000062014-03-16T07:00:00.000-06:00418.000000000000062014-03-16T07:15:00.000-06:00416.02014-03-16T07:30:00.000-06:00416.02014-03-16T07:45:00.000-06:00416.02014-03-16T08:00:00.000-06:00416.02014-03-16T08:15:00.000-06:00413.02014-03-16T08:30:00.000-06:00416.02014-03-16T08:45:00.000-06:00418.000000000000062014-03-16T09:00:00.000-06:00416.02014-03-16T09:15:00.000-06:00416.02014-03-16T09:30:00.000-06:00416.02014-03-16T09:45:00.000-06:00416.02014-03-16T10:00:00.000-06:00416.02014-03-16T10:15:00.000-06:00413.02014-03-16T10:30:00.000-06:00413.02014-03-16T10:45:00.000-06:00411.000000000000062014-03-16T11:00:00.000-06:00413.02014-03-16T11:15:00.000-06:00411.000000000000062014-03-16T11:30:00.000-06:00407.999999999999942014-03-16T11:45:00.000-06:00407.999999999999942014-03-16T12:00:00.000-06:00407.999999999999942014-03-16T12:15:00.000-06:00407.999999999999942014-03-16T12:30:00.000-06:00406.02014-03-16T12:45:00.000-06:00406.02014-03-16T13:00:00.000-06:00404.000000000000062014-03-16T13:15:00.000-06:00404.000000000000062014-03-16T13:30:00.000-06:00400.999999999999942014-03-16T13:45:00.000-06:00404.000000000000062014-03-16T14:00:00.000-06:00400.999999999999942014-03-16T14:15:00.000-06:00400.999999999999942014-03-16T14:30:00.000-06:00399.02014-03-16T14:45:00.000-06:00399.02014-03-16T15:00:00.000-06:00397.000000000000062014-03-16T15:15:00.000-06:00393.999999999999942014-03-16T15:30:00.000-06:00393.999999999999942014-03-16T15:45:00.000-06:00392.02014-03-16T16:00:00.000-06:00389.02014-03-16T16:15:00.000-06:00385.02014-03-16T16:30:00.000-06:00386.999999999999942014-03-16T16:45:00.000-06:00382.02014-03-16T17:00:00.000-06:00379.999999999999942014-03-16T17:15:00.000-06:00379.999999999999942014-03-16T17:30:00.000-06:00378.02014-03-16T17:45:00.000-06:00376.000000000000062014-03-16T18:00:00.000-06:00376.000000000000062014-03-16T18:15:00.000-06:00371.02014-03-16T18:30:00.000-06:00371.02014-03-16T18:45:00.000-06:00366.02014-03-16T19:00:00.000-06:00368.999999999999942014-03-16T19:15:00.000-06:00364.02014-03-16T19:30:00.000-06:00364.02014-03-16T19:45:00.000-06:00361.999999999999942014-03-16T20:00:00.000-06:00357.02014-03-16T20:15:00.000-06:00357.02014-03-16T20:30:00.000-06:00355.02014-03-16T20:45:00.000-06:00355.02014-03-16T21:00:00.000-06:00353.02014-03-16T21:15:00.000-06:00353.02014-03-16T21:30:00.000-06:00351.02014-03-16T21:45:00.000-06:00349.02014-03-16T22:00:00.000-06:00346.02014-03-16T22:15:00.000-06:00346.02014-03-16T22:30:00.000-06:00346.02014-03-16T22:45:00.000-06:00344.02014-03-16T23:00:00.000-06:00344.02014-03-16T23:15:00.000-06:00342.02014-03-16T23:30:00.000-06:00342.02014-03-16T23:45:00.000-06:00340.02014-03-17T00:00:00.000-06:00340.02014-03-17T00:15:00.000-06:00340.02014-03-17T00:30:00.000-06:00340.02014-03-17T00:45:00.000-06:00340.02014-03-17T01:00:00.000-06:00338.02014-03-17T01:15:00.000-06:00340.02014-03-17T01:30:00.000-06:00338.02014-03-17T01:45:00.000-06:00338.02014-03-17T02:00:00.000-06:00338.02014-03-17T02:15:00.000-06:00338.02014-03-17T02:30:00.000-06:00338.02014-03-17T02:45:00.000-06:00340.02014-03-17T03:00:00.000-06:00340.02014-03-17T03:15:00.000-06:00340.02014-03-17T03:30:00.000-06:00342.02014-03-17T03:45:00.000-06:00344.02014-03-17T04:00:00.000-06:00344.02014-03-17T04:15:00.000-06:00344.02014-03-17T04:30:00.000-06:00346.02014-03-17T04:45:00.000-06:00346.02014-03-17T05:00:00.000-06:00346.02014-03-17T05:15:00.000-06:00349.02014-03-17T05:30:00.000-06:00351.02014-03-17T05:45:00.000-06:00351.02014-03-17T06:00:00.000-06:00353.02014-03-17T06:15:00.000-06:00355.02014-03-17T06:30:00.000-06:00355.02014-03-17T06:45:00.000-06:00357.02014-03-17T07:00:00.000-06:00357.02014-03-17T07:15:00.000-06:00360.02014-03-17T07:30:00.000-06:00361.999999999999942014-03-17T07:45:00.000-06:00361.999999999999942014-03-17T08:00:00.000-06:00364.02014-03-17T08:15:00.000-06:00364.02014-03-17T08:30:00.000-06:00366.02014-03-17T08:45:00.000-06:00366.02014-03-17T09:00:00.000-06:00366.02014-03-17T09:15:00.000-06:00368.999999999999942014-03-17T09:30:00.000-06:00368.999999999999942014-03-17T09:45:00.000-06:00368.999999999999942014-03-17T10:00:00.000-06:00368.999999999999942014-03-17T10:15:00.000-06:00368.999999999999942014-03-17T10:30:00.000-06:00371.02014-03-17T10:45:00.000-06:00368.999999999999942014-03-17T11:00:00.000-06:00371.02014-03-17T11:15:00.000-06:00368.999999999999942014-03-17T11:30:00.000-06:00368.999999999999942014-03-17T11:45:00.000-06:00368.999999999999942014-03-17T12:00:00.000-06:00371.02014-03-17T12:15:00.000-06:00368.999999999999942014-03-17T12:30:00.000-06:00368.999999999999942014-03-17T12:45:00.000-06:00368.999999999999942014-03-17T13:00:00.000-06:00368.999999999999942014-03-17T13:15:00.000-06:00364.02014-03-17T13:30:00.000-06:00366.02014-03-17T13:45:00.000-06:00366.02014-03-17T14:00:00.000-06:00364.02014-03-17T14:15:00.000-06:00364.02014-03-17T14:30:00.000-06:00364.02014-03-17T14:45:00.000-06:00364.02014-03-17T15:00:00.000-06:00361.999999999999942014-03-17T15:15:00.000-06:00360.02014-03-17T15:30:00.000-06:00357.02014-03-17T15:45:00.000-06:00357.02014-03-17T16:00:00.000-06:00355.02014-03-17T16:15:00.000-06:00355.02014-03-17T16:30:00.000-06:00353.02014-03-17T16:45:00.000-06:00353.02014-03-17T17:00:00.000-06:00351.02014-03-17T17:15:00.000-06:00349.02014-03-17T17:30:00.000-06:00346.02014-03-17T17:45:00.000-06:00344.02014-03-17T18:00:00.000-06:00342.02014-03-17T18:15:00.000-06:00342.02014-03-17T18:30:00.000-06:00340.02014-03-17T18:45:00.000-06:00338.02014-03-17T19:00:00.000-06:00336.02014-03-17T19:15:00.000-06:00333.02014-03-17T19:30:00.000-06:00331.02014-03-17T19:45:00.000-06:00329.02014-03-17T20:00:00.000-06:00327.02014-03-17T20:15:00.000-06:00325.02014-03-17T20:30:00.000-06:00323.02014-03-17T20:45:00.000-06:00323.02014-03-17T21:00:00.000-06:00321.02014-03-17T21:15:00.000-06:00319.02014-03-17T21:30:00.000-06:00316.02014-03-17T21:45:00.000-06:00314.02014-03-17T22:00:00.000-06:00312.02014-03-17T22:15:00.000-06:00310.02014-03-17T22:30:00.000-06:00308.02014-03-17T22:45:00.000-06:00306.02014-03-17T23:00:00.000-06:00306.02014-03-17T23:15:00.000-06:00302.02014-03-17T23:30:00.000-06:00300.02014-03-17T23:45:00.000-06:00298.02014-03-18T00:00:00.000-06:00296.02014-03-18T00:15:00.000-06:00296.02014-03-18T00:30:00.000-06:00294.02014-03-18T00:45:00.000-06:00292.02014-03-18T01:00:00.000-06:00290.02014-03-18T01:15:00.000-06:00288.02014-03-18T01:30:00.000-06:00286.02014-03-18T01:45:00.000-06:00284.02014-03-18T02:00:00.000-06:00282.02014-03-18T02:15:00.000-06:00282.02014-03-18T02:30:00.000-06:00280.02014-03-18T02:45:00.000-06:00278.02014-03-18T03:00:00.000-06:00278.02014-03-18T03:15:00.000-06:00276.02014-03-18T03:30:00.000-06:00274.02014-03-18T03:45:00.000-06:00272.02014-03-18T04:00:00.000-06:00272.02014-03-18T04:15:00.000-06:00270.02014-03-18T04:30:00.000-06:00270.02014-03-18T04:45:00.000-06:00268.02014-03-18T05:00:00.000-06:00266.02014-03-18T05:15:00.000-06:00266.02014-03-18T05:30:00.000-06:00264.02014-03-18T05:45:00.000-06:00264.02014-03-18T06:00:00.000-06:00262.02014-03-18T06:15:00.000-06:00262.02014-03-18T06:30:00.000-06:00262.02014-03-18T06:45:00.000-06:00260.02014-03-18T07:00:00.000-06:00260.02014-03-18T07:15:00.000-06:00260.02014-03-18T07:30:00.000-06:00260.02014-03-18T07:45:00.000-06:00260.02014-03-18T08:00:00.000-06:00260.02014-03-18T08:15:00.000-06:00262.02014-03-18T08:30:00.000-06:00262.02014-03-18T08:45:00.000-06:00262.02014-03-18T09:00:00.000-06:00262.02014-03-18T09:15:00.000-06:00264.02014-03-18T09:30:00.000-06:00264.02014-03-18T09:45:00.000-06:00266.02014-03-18T10:00:00.000-06:00268.02014-03-18T10:15:00.000-06:00268.02014-03-18T10:30:00.000-06:00272.02014-03-18T10:45:00.000-06:00272.02014-03-18T11:00:00.000-06:00276.02014-03-18T11:15:00.000-06:00278.02014-03-18T11:30:00.000-06:00280.02014-03-18T11:45:00.000-06:00284.02014-03-18T12:00:00.000-06:00288.02014-03-18T12:15:00.000-06:00292.02014-03-18T12:30:00.000-06:00294.02014-03-18T12:45:00.000-06:00296.02014-03-18T13:00:00.000-06:00302.02014-03-18T13:15:00.000-06:00306.02014-03-18T13:30:00.000-06:00308.02014-03-18T13:45:00.000-06:00312.02014-03-18T14:00:00.000-06:00319.02014-03-18T14:15:00.000-06:00321.02014-03-18T14:30:00.000-06:00325.02014-03-18T14:45:00.000-06:00329.02014-03-18T15:00:00.000-06:00333.02014-03-18T15:15:00.000-06:00336.02014-03-18T15:30:00.000-06:00340.02014-03-18T15:45:00.000-06:00344.02014-03-18T16:00:00.000-06:00346.02014-03-18T16:15:00.000-06:00351.02014-03-18T16:30:00.000-06:00353.02014-03-18T16:45:00.000-06:00355.02014-03-18T17:00:00.000-06:00357.02014-03-18T17:15:00.000-06:00360.02014-03-18T17:30:00.000-06:00361.999999999999942014-03-18T17:45:00.000-06:00364.02014-03-18T18:00:00.000-06:00366.02014-03-18T18:15:00.000-06:00368.999999999999942014-03-18T18:30:00.000-06:00371.02014-03-18T18:45:00.000-06:00371.02014-03-18T19:00:00.000-06:00371.02014-03-18T19:15:00.000-06:00376.000000000000062014-03-18T19:30:00.000-06:00376.000000000000062014-03-18T19:45:00.000-06:00376.000000000000062014-03-18T20:00:00.000-06:00378.02014-03-18T20:15:00.000-06:00379.999999999999942014-03-18T20:30:00.000-06:00379.999999999999942014-03-18T20:45:00.000-06:00379.999999999999942014-03-18T21:00:00.000-06:00379.999999999999942014-03-18T21:15:00.000-06:00379.999999999999942014-03-18T21:30:00.000-06:00382.02014-03-18T21:45:00.000-06:00382.02014-03-18T22:00:00.000-06:00379.999999999999942014-03-18T22:15:00.000-06:00379.999999999999942014-03-18T22:30:00.000-06:00382.02014-03-18T22:45:00.000-06:00382.02014-03-18T23:00:00.000-06:00382.02014-03-18T23:15:00.000-06:00382.02014-03-18T23:30:00.000-06:00379.999999999999942014-03-18T23:45:00.000-06:00379.999999999999942014-03-19T00:00:00.000-06:00382.02014-03-19T00:15:00.000-06:00379.999999999999942014-03-19T00:30:00.000-06:00379.999999999999942014-03-19T00:45:00.000-06:00379.999999999999942014-03-19T01:00:00.000-06:00379.999999999999942014-03-19T01:15:00.000-06:00379.999999999999942014-03-19T01:30:00.000-06:00378.02014-03-19T01:45:00.000-06:00378.02014-03-19T02:00:00.000-06:00378.02014-03-19T02:15:00.000-06:00378.02014-03-19T02:30:00.000-06:00378.02014-03-19T02:45:00.000-06:00376.000000000000062014-03-19T03:00:00.000-06:00376.000000000000062014-03-19T03:15:00.000-06:00376.000000000000062014-03-19T03:30:00.000-06:00376.000000000000062014-03-19T03:45:00.000-06:00376.000000000000062014-03-19T04:00:00.000-06:00376.000000000000062014-03-19T04:15:00.000-06:00372.999999999999942014-03-19T04:30:00.000-06:00372.999999999999942014-03-19T04:45:00.000-06:00371.02014-03-19T05:00:00.000-06:00371.02014-03-19T05:15:00.000-06:00371.02014-03-19T05:30:00.000-06:00371.02014-03-19T05:45:00.000-06:00368.999999999999942014-03-19T06:00:00.000-06:00371.02014-03-19T06:15:00.000-06:00371.02014-03-19T06:30:00.000-06:00368.999999999999942014-03-19T06:45:00.000-06:00368.999999999999942014-03-19T07:00:00.000-06:00368.999999999999942014-03-19T07:15:00.000-06:00368.999999999999942014-03-19T07:30:00.000-06:00368.999999999999942014-03-19T07:45:00.000-06:00368.999999999999942014-03-19T08:00:00.000-06:00368.999999999999942014-03-19T08:15:00.000-06:00368.999999999999942014-03-19T08:30:00.000-06:00368.999999999999942014-03-19T08:45:00.000-06:00368.999999999999942014-03-19T09:00:00.000-06:00371.02014-03-19T09:15:00.000-06:00371.02014-03-19T09:30:00.000-06:00371.02014-03-19T09:45:00.000-06:00371.02014-03-19T10:00:00.000-06:00372.999999999999942014-03-19T10:15:00.000-06:00372.999999999999942014-03-19T10:30:00.000-06:00372.999999999999942014-03-19T10:45:00.000-06:00376.000000000000062014-03-19T11:00:00.000-06:00376.000000000000062014-03-19T11:15:00.000-06:00376.000000000000062014-03-19T11:30:00.000-06:00376.000000000000062014-03-19T11:45:00.000-06:00379.999999999999942014-03-19T12:00:00.000-06:00379.999999999999942014-03-19T12:15:00.000-06:00379.999999999999942014-03-19T12:30:00.000-06:00382.02014-03-19T12:45:00.000-06:00385.02014-03-19T13:00:00.000-06:00386.999999999999942014-03-19T13:15:00.000-06:00389.02014-03-19T13:30:00.000-06:00389.02014-03-19T13:45:00.000-06:00392.02014-03-19T14:00:00.000-06:00393.999999999999942014-03-19T14:15:00.000-06:00393.999999999999942014-03-19T14:30:00.000-06:00397.000000000000062014-03-19T14:45:00.000-06:00397.000000000000062014-03-19T15:00:00.000-06:00399.02014-03-19T15:15:00.000-06:00400.999999999999942014-03-19T15:30:00.000-06:00404.000000000000062014-03-19T15:45:00.000-06:00404.000000000000062014-03-19T16:00:00.000-06:00406.02014-03-19T16:15:00.000-06:00406.02014-03-19T16:30:00.000-06:00407.999999999999942014-03-19T16:45:00.000-06:00411.000000000000062014-03-19T17:00:00.000-06:00411.000000000000062014-03-19T17:15:00.000-06:00411.000000000000062014-03-19T17:30:00.000-06:00413.02014-03-19T17:45:00.000-06:00416.02014-03-19T18:00:00.000-06:00416.02014-03-19T18:15:00.000-06:00418.000000000000062014-03-19T18:30:00.000-06:00418.000000000000062014-03-19T18:45:00.000-06:00418.000000000000062014-03-19T19:00:00.000-06:00421.02014-03-19T19:15:00.000-06:00421.02014-03-19T19:30:00.000-06:00421.02014-03-19T19:45:00.000-06:00421.02014-03-19T20:00:00.000-06:00423.02014-03-19T20:15:00.000-06:00423.02014-03-19T20:30:00.000-06:00423.02014-03-19T20:45:00.000-06:00423.02014-03-19T21:00:00.000-06:00423.02014-03-19T21:15:00.000-06:00423.02014-03-19T21:30:00.000-06:00423.02014-03-19T21:45:00.000-06:00423.02014-03-19T22:00:00.000-06:00423.02014-03-19T22:15:00.000-06:00423.02014-03-19T22:30:00.000-06:00423.02014-03-19T22:45:00.000-06:00421.02014-03-19T23:00:00.000-06:00421.02014-03-19T23:15:00.000-06:00421.02014-03-19T23:30:00.000-06:00421.02014-03-19T23:45:00.000-06:00421.02014-03-20T00:00:00.000-06:00421.02014-03-20T00:15:00.000-06:00421.02014-03-20T00:30:00.000-06:00418.000000000000062014-03-20T00:45:00.000-06:00418.000000000000062014-03-20T01:00:00.000-06:00416.02014-03-20T01:15:00.000-06:00416.02014-03-20T01:30:00.000-06:00416.02014-03-20T01:45:00.000-06:00416.02014-03-20T02:00:00.000-06:00413.02014-03-20T02:15:00.000-06:00413.02014-03-20T02:30:00.000-06:00413.02014-03-20T02:45:00.000-06:00413.02014-03-20T03:00:00.000-06:00411.000000000000062014-03-20T03:15:00.000-06:00411.000000000000062014-03-20T03:30:00.000-06:00407.999999999999942014-03-20T03:45:00.000-06:00407.999999999999942014-03-20T04:00:00.000-06:00407.999999999999942014-03-20T04:15:00.000-06:00406.02014-03-20T04:30:00.000-06:00406.02014-03-20T04:45:00.000-06:00406.02014-03-20T05:00:00.000-06:00404.000000000000062014-03-20T05:15:00.000-06:00404.000000000000062014-03-20T05:30:00.000-06:00404.000000000000062014-03-20T05:45:00.000-06:00404.000000000000062014-03-20T06:00:00.000-06:00400.999999999999942014-03-20T06:15:00.000-06:00400.999999999999942014-03-20T06:30:00.000-06:00400.999999999999942014-03-20T06:45:00.000-06:00399.02014-03-20T07:00:00.000-06:00397.000000000000062014-03-20T07:15:00.000-06:00399.02014-03-20T07:30:00.000-06:00397.000000000000062014-03-20T07:45:00.000-06:00397.000000000000062014-03-20T08:00:00.000-06:00397.000000000000062014-03-20T08:15:00.000-06:00393.99999999999994 \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v20/TimeSeries_1.xml b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v20/TimeSeries_1.xml new file mode 100644 index 00000000..1b7a8ac4 --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v20/TimeSeries_1.xml @@ -0,0 +1,20 @@ +2011-01-01T00:00:00ZTranslation from WaterML1.1 response documentphenomenaUNDEFINEDVocab:USU5UNDEFINEDVocab:USU5quality0Raw dataRaw and unprocessed data and data products that have not undergone quality control. Depending on the variable, data type, and data transmission system, raw data may be available within seconds or minutes after the measurements have been made. Examples include real time precipitation, streamflow and water quality measurements.2008-03-24T11:30:002008-03-27T11:30:002008-03-27T11:30:00PT5SField Observation-9999Surface WaterNot ApplicabletruePT5S2008-03-24T11:30:005.00152008-03-24T12:00:005.18412008-03-24T12:30:004.67612008-03-24T13:00:0011.9082008-03-24T13:30:009.03272008-03-24T14:00:0012.43062008-03-24T14:30:007.90432008-03-24T15:00:005.18862008-03-24T15:30:009.80332008-03-24T16:00:003.94062008-03-24T16:30:002.8392008-03-24T17:00:004.86422008-03-24T17:30:008.69282008-03-24T18:00:0011.67932008-03-24T18:30:004.61192008-03-24T19:00:008.1542008-03-24T19:30:005.00662008-03-24T20:00:0011.27632008-03-24T20:30:009.64922008-03-24T21:00:0013.92212008-03-24T21:30:0010.68372008-03-24T22:00:0010.59542008-03-24T22:30:008.20392008-03-24T23:00:0015.82082008-03-24T23:30:0018.74342008-03-25T00:00:0018.96342008-03-25T00:30:0014.15052008-03-25T01:00:0012.45182008-03-25T01:30:0013.16082008-03-25T02:00:0045.0032008-03-25T02:30:0011.02532008-03-25T03:00:009.00962008-03-25T03:30:0013.67082008-03-25T04:00:0015.57852008-03-25T04:30:0015.30642008-03-25T05:00:0012.20152008-03-25T05:30:009.64362008-03-25T06:00:0015.37672008-03-25T06:30:008.36862008-03-25T07:00:0015.71372008-03-25T07:30:0016.90222008-03-25T08:00:0013.39272008-03-25T08:30:0012.89512008-03-25T09:00:0013.45262008-03-25T09:30:0011.41572008-03-25T10:00:0014.86922008-03-25T10:30:0022.7392008-03-25T11:00:006.51512008-03-25T11:30:005.11682008-03-25T12:00:0010.53052008-03-25T12:30:0016.86692008-03-25T13:00:0010.07832008-03-25T13:30:0017.66372008-03-25T14:00:006.56982008-03-25T14:30:0038.94862008-03-25T15:00:0013.19222008-03-25T15:30:004.2442008-03-25T16:00:009.68582008-03-25T16:30:0023.56432008-03-25T17:00:0011.29882008-03-25T17:30:006.74252008-03-25T18:00:0013.40522008-03-25T18:30:007.64632008-03-25T19:00:006.97412008-03-25T19:30:006.78052008-03-25T20:00:0016.50042008-03-25T20:30:0030.52212008-03-25T21:00:0016.80422008-03-25T21:30:0014.58482008-03-25T22:00:0014.50412008-03-25T22:30:0016.65562008-03-25T23:00:0011.45982008-03-25T23:30:0021.44982008-03-26T00:00:0022.50462008-03-26T00:30:00170.17212008-03-26T01:00:0014.33762008-03-26T01:30:007.5892008-03-26T02:00:0016.34392008-03-26T02:30:008.10422008-03-26T03:00:0011.8762008-03-26T03:30:0018.22512008-03-26T04:00:0024.56292008-03-26T04:30:0019.97722008-03-26T05:00:0022.68372008-03-26T05:30:009.73572008-03-26T06:00:0015.80742008-03-26T06:30:0020.69412008-03-26T07:00:0011.47872008-03-26T07:30:0010.7762008-03-26T08:00:0016.16112008-03-26T08:30:0027.23422008-03-26T09:00:0015.18132008-03-26T09:30:008.14792008-03-26T10:00:0027.57322008-03-26T10:30:007.09652008-03-26T11:00:0014.71542008-03-26T11:30:008.24712008-03-26T12:00:005.73222008-03-26T12:30:009.29342008-03-26T13:00:004.89472008-03-26T13:30:004.72942008-03-26T14:00:008.90212008-03-26T14:30:003.62962008-03-26T15:00:003.52192008-03-26T15:30:003.76522008-03-26T16:00:004.54342008-03-26T16:30:005.61592008-03-26T17:00:0016.80642008-03-26T17:30:007.42162008-03-26T18:00:008.42442008-03-26T18:30:0010.00442008-03-26T19:00:009.03622008-03-26T19:30:006.4062008-03-26T20:00:0024.89342008-03-26T20:30:005.50112008-03-26T21:00:008.82022008-03-26T21:30:0010.98062008-03-26T22:00:0010.0322008-03-26T22:30:008.9822008-03-26T23:00:0014.68382008-03-26T23:30:0011.95512008-03-27T00:00:0013.02912008-03-27T00:30:0015.12912008-03-27T01:00:008.95532008-03-27T01:30:006.38092008-03-27T02:00:0013.94082008-03-27T02:30:0011.2012008-03-27T03:00:003.82042008-03-27T03:30:0013.2922008-03-27T04:00:008.15542008-03-27T04:30:006.19132008-03-27T05:00:004.36472008-03-27T05:30:006.2542008-03-27T06:00:007.86912008-03-27T06:30:0016.50512008-03-27T07:00:0013.98072008-03-27T07:30:007.67252008-03-27T08:00:0010.2172008-03-27T08:30:0017.61022008-03-27T09:00:002.39962008-03-27T09:30:005.37632008-03-27T10:00:003.38822008-03-27T10:30:003.16192008-03-27T11:00:009.11672008-03-27T11:30:005.4257 \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v20/TimeSeries_2.xml b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v20/TimeSeries_2.xml new file mode 100644 index 00000000..230ef855 --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v20/TimeSeries_2.xml @@ -0,0 +1,20 @@ +2011-01-01T00:00:00ZTranslation from WaterML1.1 response documentphenomenaUNDEFINEDVocab:USU14UNDEFINEDVocab:USU14quality0Raw dataRaw and unprocessed data and data products that have not undergone quality control. Depending on the variable, data type, and data transmission system, raw data may be available within seconds or minutes after the measurements have been made. Examples include real time precipitation, streamflow and water quality measurements.2008-04-05T18:00:002008-04-08T18:00:002008-04-08T18:00:00PT1HField Observation-9999AirNot ApplicabletruePT1H2008-04-05T18:00:004.749372008-04-05T19:00:003.7405972008-04-05T20:00:001.6751912008-04-05T21:00:000.39508082008-04-05T22:00:00-0.80497522008-04-05T23:00:00-1.2573052008-04-06T00:00:00-1.5805972008-04-06T01:00:00-1.9104472008-04-06T02:00:00-2.2661112008-04-06T03:00:00-2.3798052008-04-06T04:00:00-1.9460362008-04-06T05:00:00-0.96638542008-04-06T06:00:00-0.80046662008-04-06T07:00:00-0.6550842008-04-06T08:00:000.58529162008-04-06T09:00:001.7844382008-04-06T10:00:003.099182008-04-06T11:00:004.4540232008-04-06T12:00:005.2368052008-04-06T13:00:004.5212652008-04-06T14:00:005.1521562008-04-06T15:00:007.2365942008-04-06T16:00:007.0976252008-04-06T17:00:006.5760882008-04-06T18:00:007.1064632008-04-06T19:00:005.2287272008-04-06T20:00:002.2671062008-04-06T21:00:001.4612742008-04-06T22:00:000.74782792008-04-06T23:00:00-0.1182142008-04-07T00:00:00-0.17475292008-04-07T01:00:00-0.29087242008-04-07T02:00:00-0.57542482008-04-07T03:00:00-0.3846252008-04-07T04:00:00-0.50482182008-04-07T05:00:00-0.2433972008-04-07T06:00:00-0.93992008-04-07T07:00:00-2.2543572008-04-07T08:00:00-0.67098642008-04-07T09:00:000.43453352008-04-07T10:00:001.1530042008-04-07T11:00:002.6373572008-04-07T12:00:002.9162112008-04-07T13:00:001.5973922008-04-07T14:00:002.6556572008-04-07T15:00:004.014162008-04-07T16:00:004.5962162008-04-07T17:00:004.6909982008-04-07T18:00:004.8345882008-04-07T19:00:004.218422008-04-07T20:00:002.9713252008-04-07T21:00:000.60798422008-04-07T22:00:000.10285012008-04-07T23:00:00-0.72399742008-04-08T00:00:00-1.0824582008-04-08T01:00:00-1.6675322008-04-08T02:00:00-1.6937812008-04-08T03:00:00-1.7273422008-04-08T04:00:00-2.2813552008-04-08T05:00:00-3.3020752008-04-08T06:00:00-3.6938212008-04-08T07:00:00-3.7986832008-04-08T08:00:00-1.7162492008-04-08T09:00:001.1146452008-04-08T10:00:002.2134892008-04-08T11:00:003.8737472008-04-08T12:00:005.2807662008-04-08T13:00:006.1357692008-04-08T14:00:006.8648822008-04-08T15:00:007.0652572008-04-08T16:00:006.0796242008-04-08T17:00:005.7023652008-04-08T18:00:005.35114 \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v20/TimeSeries_3.xml b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v20/TimeSeries_3.xml new file mode 100644 index 00000000..c1b2d324 --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/TestFiles/v20/TimeSeries_3.xml @@ -0,0 +1,20 @@ +2011-01-01T00:00:00ZTranslation from WaterML1.1 response documentphenomenaUNDEFINEDVocab:USU34UNDEFINEDVocab:USU34quality0Raw dataRaw and unprocessed data and data products that have not undergone quality control. Depending on the variable, data type, and data transmission system, raw data may be available within seconds or minutes after the measurements have been made. Examples include real time precipitation, streamflow and water quality measurements.2008-04-06T13:00:002008-04-09T13:00:002008-04-09T13:00:00PT30MField Observation-9999Surface WaterNot ApplicabletruePT30M2008-04-06T13:00:00419.16672008-04-06T13:30:00418.66672008-04-06T14:00:00417.52008-04-06T14:30:00416.66672008-04-06T15:00:00415.83332008-04-06T15:30:00418.33332008-04-06T16:00:004202008-04-06T16:30:00419.52008-04-06T17:00:004192008-04-06T17:30:00419.52008-04-06T18:00:00420.16672008-04-06T18:30:00420.83332008-04-06T19:00:004222008-04-06T19:30:00422.66672008-04-06T20:00:00422.83332008-04-06T20:30:00422.52008-04-06T21:00:00421.83332008-04-06T21:30:00419.52008-04-06T22:00:00416.33332008-04-06T22:30:00413.66672008-04-06T23:00:00410.52008-04-06T23:30:004082008-04-07T00:00:00405.33332008-04-07T00:30:00402.66672008-04-07T01:00:00400.66672008-04-07T01:30:00399.33332008-04-07T02:00:00398.66672008-04-07T02:30:00397.83332008-04-07T03:00:00397.33332008-04-07T03:30:00397.33332008-04-07T04:00:00397.52008-04-07T04:30:00397.66672008-04-07T05:00:00398.16672008-04-07T05:30:00399.66672008-04-07T06:00:004002008-04-07T06:30:004012008-04-07T07:00:00402.33332008-04-07T07:30:00403.16672008-04-07T08:00:004042008-04-07T08:30:00404.83332008-04-07T09:00:004062008-04-07T09:30:00406.66672008-04-07T10:00:00407.16672008-04-07T10:30:004082008-04-07T11:00:00407.83332008-04-07T11:30:00408.16672008-04-07T12:00:00408.66672008-04-07T12:30:004092008-04-07T13:00:00409.16672008-04-07T13:30:004092008-04-07T14:00:00409.33332008-04-07T14:30:004092008-04-07T15:00:00408.52008-04-07T15:30:00407.66672008-04-07T16:00:00408.33332008-04-07T16:30:00408.66672008-04-07T17:00:004092008-04-07T17:30:00409.66672008-04-07T18:00:004102008-04-07T18:30:00410.52008-04-07T19:00:00412.16672008-04-07T19:30:004132008-04-07T20:00:00413.66672008-04-07T20:30:00415.33332008-04-07T21:00:00416.16672008-04-07T21:30:00417.33332008-04-07T22:00:00418.66672008-04-07T22:30:00418.83332008-04-07T23:00:00419.33332008-04-07T23:30:00419.66672008-04-08T00:00:00420.16672008-04-08T00:30:00420.66672008-04-08T01:00:00421.33332008-04-08T01:30:00422.16672008-04-08T02:00:00422.66672008-04-08T02:30:00423.52008-04-08T03:00:004242008-04-08T03:30:00424.52008-04-08T04:00:00425.16672008-04-08T04:30:00426.16672008-04-08T05:00:00427.16672008-04-08T05:30:00427.83332008-04-08T06:00:00428.66672008-04-08T06:30:00429.52008-04-08T07:00:004302008-04-08T07:30:00430.83332008-04-08T08:00:00430.66672008-04-08T08:30:00431.52008-04-08T09:00:00431.52008-04-08T09:30:00431.66672008-04-08T10:00:00431.33332008-04-08T10:30:00430.83332008-04-08T11:00:00430.66672008-04-08T11:30:00430.33332008-04-08T12:00:00429.83332008-04-08T12:30:00429.52008-04-08T13:00:00428.33332008-04-08T13:30:00428.52008-04-08T14:00:00427.83332008-04-08T14:30:00427.16672008-04-08T15:00:004262008-04-08T15:30:00425.16672008-04-08T16:00:00424.52008-04-08T16:30:00423.52008-04-08T17:00:004232008-04-08T17:30:00422.33332008-04-08T18:00:004232008-04-08T18:30:00424.33332008-04-08T19:00:004262008-04-08T19:30:004282008-04-08T20:00:00430.16672008-04-08T20:30:00431.52008-04-08T21:00:00432.83332008-04-08T21:30:00433.66672008-04-08T22:00:00434.16672008-04-08T22:30:004352008-04-08T23:00:00435.33332008-04-08T23:30:00435.66672008-04-09T00:00:00435.33332008-04-09T00:30:00435.66672008-04-09T01:00:00436.16672008-04-09T01:30:00436.66672008-04-09T02:00:004372008-04-09T02:30:00437.66672008-04-09T03:00:00437.66672008-04-09T03:30:00438.16672008-04-09T04:00:00438.16672008-04-09T04:30:00438.83332008-04-09T05:00:00439.16672008-04-09T05:30:00439.83332008-04-09T06:00:00440.52008-04-09T06:30:00440.33332008-04-09T07:00:00440.33332008-04-09T07:30:00440.33332008-04-09T08:00:00440.66672008-04-09T08:30:00439.83332008-04-09T09:00:00439.52008-04-09T09:30:004392008-04-09T10:00:00438.16672008-04-09T10:30:004372008-04-09T11:00:00436.16672008-04-09T11:30:004352008-04-09T12:00:004352008-04-09T12:30:004332008-04-09T13:00:00427.8333 \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/WaterML/ParserFactoryTests.cs b/Source/Tests/HydroDesktop.WebServices.Tests/WaterML/ParserFactoryTests.cs new file mode 100644 index 00000000..9743513a --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/WaterML/ParserFactoryTests.cs @@ -0,0 +1,22 @@ +using System; +using HydroDesktop.Interfaces.ObjectModel; +using HydroDesktop.WebServices.WaterML; +using NUnit.Framework; + +namespace HydroDesktop.WebServices.Tests.WaterML +{ + [TestFixture] + public class ParserFactoryTests + { + [Test] + [TestCase(1.0, typeof(WaterML10Parser))] + [TestCase(1.1, typeof(WaterML11Parser))] + [TestCase(2.0, typeof(WaterML20Parser))] + public void GetParser(double version, Type type) + { + var wof = new DataServiceInfo {Version = version}; + var parser = ParserFactory.GetParser(wof); + Assert.AreEqual(type, parser.GetType()); + } + } +} diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/WaterML/ParserHelperTests.cs b/Source/Tests/HydroDesktop.WebServices.Tests/WaterML/ParserHelperTests.cs new file mode 100644 index 00000000..e54f05e9 --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/WaterML/ParserHelperTests.cs @@ -0,0 +1,19 @@ +using HydroDesktop.WebServices.WaterML; +using NUnit.Framework; + +namespace HydroDesktop.WebServices.Tests.WaterML +{ + [TestFixture] + public class ParserHelperTests + { + [Test] + [TestCase("+7:30", 7.5)] + [TestCase("-7:30", -7.5)] + [TestCase("-7:00", -7)] + public void ConvertUtcOffset(string str, double expected) + { + var actual = ParserHelper.ConvertUtcOffset(str); + Assert.AreEqual(expected, actual); + } + } +} \ No newline at end of file diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/WaterML/WaterML10ParserTests.cs b/Source/Tests/HydroDesktop.WebServices.Tests/WaterML/WaterML10ParserTests.cs new file mode 100644 index 00000000..b739625f --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/WaterML/WaterML10ParserTests.cs @@ -0,0 +1,60 @@ +using System; +using HydroDesktop.WebServices.WaterML; +using NUnit.Framework; + +namespace HydroDesktop.WebServices.Tests.WaterML +{ + [TestFixture] + public class WaterML10ParserTests + { + [TestCase(@"TestFiles\v10\NWISDV-08157700-NWISDV-00060-DataType-Average-20120603025214538.xml")] + [TestCase(@"TestFiles\v10\RioGrandeET-SEV-RioGrandeET-ET_Penman-20110211055032021.xml")] + public void TestParseDataSeries(String fileName) + { + var target = new WaterML10Parser(); + var seriesList = target.ParseGetValues(fileName); + + Assert.Greater(seriesList.Count, 0); + Assert.Greater(seriesList[0].ValueCount, 0, + "Error in filename '" + fileName + + "' the number of values in the seriesList must be greater than zero."); + } + + [TestCase(@"TestFiles\v10\Site-DCEW2-dcew.p1-20110216043840885.xml")] + [TestCase(@"TestFiles\v10\sites20100211051408633.xml")] + [TestCase(@"TestFiles\v10\sites20100828041541653.xml")] + [TestCase(@"TestFiles\v10\sites20100831054240254.xml")] + public void TestParseGetSites(String fileName) + { + var target = new WaterML10Parser(); + var sites = target.ParseGetSites(fileName); + Assert.Greater(sites.Count, 0, + "Error in file '" + fileName + "' the number of sites must be greater than zero."); + } + + [Test] + public void ParseSiteInfo() + { + var xmlPath = @"TestFiles\v10\Site-DCEW2-dcew.p1-20110216043840885.xml"; + var target = new WaterML10Parser(); + + var result = target.ParseGetSiteInfo(xmlPath); + Assert.IsTrue(result.Count > 1); + + var series = result[0]; + + // Site + var site = series.Site; + Assert.AreEqual("Ada", site.County); + Assert.AreEqual("Idaho", site.State); + Assert.AreEqual("Comments", site.Comments); + Assert.AreEqual(null, site.Country); + Assert.AreEqual(null, site.SiteType); + + + //QualityControlLevel + var qcl = series.QualityControlLevel; + Assert.AreEqual(2, qcl.OriginId); + } + } +} diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/WaterML/WaterML11ParserTests.cs b/Source/Tests/HydroDesktop.WebServices.Tests/WaterML/WaterML11ParserTests.cs new file mode 100644 index 00000000..9a172a62 --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/WaterML/WaterML11ParserTests.cs @@ -0,0 +1,92 @@ +using System; +using HydroDesktop.WebServices.WaterML; +using NUnit.Framework; + +namespace HydroDesktop.WebServices.Tests.WaterML +{ + [TestFixture] + public class WaterML11ParserTests + { + [Test] + public void ParseSiteInfo() + { + var xmlPath = @"TestFiles\v11\Site-RCEW2-012-20120604043508874.xml"; + var target = new WaterML11Parser(); + + var result = target.ParseGetSiteInfo(xmlPath); + Assert.IsTrue(result.Count > 1); + + var series = result[0]; + + // Site + var site = series.Site; + Assert.AreEqual("Owyhee", site.County); + Assert.AreEqual("Idaho", site.State); + Assert.AreEqual("Comments", site.Comments); + Assert.AreEqual(3.5, site.PosAccuracy_m); + Assert.AreEqual("Country", site.Country); + Assert.AreEqual("SiteType", site.SiteType); + + //QualityControlLevel + var qcl = series.QualityControlLevel; + Assert.AreEqual(1, qcl.OriginId); + Assert.AreEqual("1", qcl.Code); + Assert.AreEqual("Quality controlled data", qcl.Definition); + Assert.AreEqual("Explanation", qcl.Explanation); + } + + [Test] + public void ParseISOMetadata() + { + var xmlPath = @"TestFiles\v11\GetValues_Mendon_usu3.xml"; + var target = new WaterML11Parser(); + + var result = target.ParseGetValues(xmlPath); + var series = result[0]; + + var isoMetadata = series.Source.ISOMetadata; + + Assert.AreEqual("inlandWaters", isoMetadata.TopicCategory); + Assert.AreEqual("Little Bear River Conservation Effects Assessment Project water quality data.", isoMetadata.Title); + Assert.AreEqual("Abstract", isoMetadata.Abstract); + Assert.AreEqual("ProfileVersion", isoMetadata.ProfileVersion); + Assert.AreEqual("MetadataLink", isoMetadata.MetadataLink); + } + + [Test] + public void ParseDataValues() + { + var xmlPath = @"TestFiles\v11\GetValues_Mendon_usu3.xml"; + var target = new WaterML11Parser(); + + var result = target.ParseGetValues(xmlPath); + var series = result[0]; + + // Check first data value + var first = series.DataValueList[0]; + Assert.AreEqual(12.91645, first.Value); + Assert.AreEqual(new DateTime(2005, 08, 05, 07, 00, 00), first.DateTimeUTC); + Assert.AreEqual(new DateTime(2005, 08, 05, 00, 00, 00), first.LocalDateTime); + Assert.AreEqual(-7, first.UTCOffset); + + // Check last data value + var last = series.DataValueList[series.DataValueList.Count - 1]; + Assert.AreEqual(12.95674, last.Value); + Assert.AreEqual(new DateTime(2005, 08, 06, 07, 00, 00), last.DateTimeUTC); + Assert.AreEqual(new DateTime(2005, 08, 06, 00, 00, 00), last.LocalDateTime); + Assert.AreEqual(-7, last.UTCOffset); + + // Check series BeginDateTime/BeginDateTimeUTC, EndDateTime/EndDateTimeUTC + var expectedBeginDateTime = first.LocalDateTime; + var expectedBeginDateTimeUTC = first.DateTimeUTC; + + var expectedEndDateTime = last.LocalDateTime; + var expectedEndDateTimeUTC = last.DateTimeUTC; + + Assert.AreEqual(expectedBeginDateTime, series.BeginDateTime); + Assert.AreEqual(expectedBeginDateTimeUTC, series.BeginDateTimeUTC); + Assert.AreEqual(expectedEndDateTime, series.EndDateTime); + Assert.AreEqual(expectedEndDateTimeUTC, series.EndDateTimeUTC); + } + } +} diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/WaterML/WaterML20ParserTests.cs b/Source/Tests/HydroDesktop.WebServices.Tests/WaterML/WaterML20ParserTests.cs new file mode 100644 index 00000000..6239d51c --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/WaterML/WaterML20ParserTests.cs @@ -0,0 +1,28 @@ +using System; +using HydroDesktop.WebServices.WaterML; +using NUnit.Framework; + +namespace HydroDesktop.WebServices.Tests.WaterML +{ + [TestFixture] + public class WaterML20ParserTests + { + [Test] + [TestCase(@"TestFiles\v20\TimeSeries_1.xml", 145)] + [TestCase(@"TestFiles\v20\TimeSeries_2.xml", 73)] + [TestCase(@"TestFiles\v20\TimeSeries_3.xml", 145)] + [TestCase(@"TestFiles\v20\GetValues_Mendon_usu3_wml2.xml", 49)] + [TestCase(@"TestFiles\v20\Kisters_wml2.xml", 1110)] + public void ParseGetValues(string xmlFile, int valuesCount) + { + var target = new WaterML20Parser(); + var series = target.ParseGetValues(xmlFile); + Assert.IsTrue(series.Count > 0); + + var s = series[0]; + Assert.AreEqual(valuesCount, s.DataValueList.Count); + Assert.IsNotNull(s.Site); + Assert.IsNotNull(s.Variable); + } + } +} diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/WaterOneFlow/WaterOneFlowClientTests.cs b/Source/Tests/HydroDesktop.WebServices.Tests/WaterOneFlow/WaterOneFlowClientTests.cs new file mode 100644 index 00000000..854f7e0d --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/WaterOneFlow/WaterOneFlowClientTests.cs @@ -0,0 +1,132 @@ +using System; +using System.Globalization; +using System.Net; +using NUnit.Framework; +using HydroDesktop.WebServices.WaterOneFlow; + +namespace HydroDesktop.WebServices.Tests.WaterOneFlow +{ + [TestFixture] + public class WaterOneFlowClientTests + { + [Test] + [TestCase(@"http://icewater.boisestate.edu/dcew2dataservices/cuahsi_1_0.asmx?WSDL")] + [TestCase(@"http://icewater.usu.edu/MudLake/cuahsi_1_0.asmx?WSDL")] + [TestCase(@"http://hydrodata.info/webservices/cuahsi_1_1.asmx?WSDL")] + public void GetSites_SaveXmlFilesFlag_ReturnsSameData(string url) + { + try + { + var target = new WaterOneFlowClient(url, 5) {SaveXmlFiles = false}; + var sites1 = target.GetSites(); + + target.SaveXmlFiles = true; + var sites2 = target.GetSites(); + + Assert.AreEqual(sites1.Count, sites2.Count); + for (var i = 0; i < sites1.Count; i++) + { + var site1 = sites1[i]; + var site2 = sites2[i]; + + Assert.AreEqual(site1.Code, site2.Code); + Assert.AreEqual(site1.Name, site2.Name); + } + } + catch (WebException ex) + { + if (ex.Status.HasFlag(WebExceptionStatus.ProtocolError) || + ex.Status.HasFlag(WebExceptionStatus.Timeout)) + { + Assert.Inconclusive("Unable to test GetSites() from: " + url); + } + throw; + } + } + + [Test] + [TestCase(@"http://icewater.boisestate.edu/dcew2dataservices/cuahsi_1_0.asmx?WSDL", "DCEW2:dcew.w2")] + [TestCase(@"http://icewater.boisestate.edu/rcew2dataservices/cuahsi_1_1.asmx?WSDL", "RCEW2:012")] + [TestCase(@"http://icewater.usu.edu/MudLake/cuahsi_1_0.asmx?WSDL", "MudLake:USU-ML-Causeway")] + [TestCase(@"http://hydrodata.info/webservices/cuahsi_1_1.asmx?WSDL", "HCLIMATE:114570")] + public void GetSiteInfo_SaveXmlFilesFlag_ReturnsSameData(string url, string siteCode) + { + try + { + var target = new WaterOneFlowClient(url, 5) {SaveXmlFiles = false}; + var series1 = target.GetSiteInfo(siteCode); + + target.SaveXmlFiles = true; + var series2 = target.GetSiteInfo(siteCode); + + Assert.AreEqual(series1.Count, series2.Count); + for (var i = 0; i < series1.Count; i++) + { + var site1 = series1[i].Site; + var site2 = series2[i].Site; + + Assert.AreEqual(site1.Code, site2.Code); + Assert.AreEqual(site1.Name, site2.Name); + Assert.AreEqual(series1[i].ValueCount, series2[i].ValueCount); + } + } + catch (WebException ex) + { + if (ex.Status.HasFlag(WebExceptionStatus.ProtocolError) || + ex.Status.HasFlag(WebExceptionStatus.Timeout)) + { + Assert.Inconclusive("Unable to test GetSiteInfo() from: " + url); + } + throw; + } + } + + [Test] + [TestCase(@"http://icewater.boisestate.edu/dcew2dataservices/cuahsi_1_0.asmx?WSDL", "DCEW2:dcew.w2", + "ODMDCEW2:Thravg", "01/01/2000", "01/05/2000")] + [TestCase(@"http://icewater.boisestate.edu/rcew2dataservices/cuahsi_1_1.asmx?WSDL", "RCEW2:012", + "ODMRCEW2:hourly-precipitation", "07/01/2000", "08/01/2000")] + public void GetValues_SaveXmlFilesFlag_ReturnsSameData(string url, string siteCode, string varCode, + string startDate, string endDate) + { + const string DATES_FORMAT = "MM/dd/yyyy"; + var provider = CultureInfo.InvariantCulture; + + var target = new WaterOneFlowClient(url, 5); + var start = DateTime.ParseExact(startDate, DATES_FORMAT, provider); + var end = DateTime.ParseExact(endDate, DATES_FORMAT, provider); + try + { + target.SaveXmlFiles = false; + var series1 = target.GetValues(siteCode, varCode, start, end); + + target.SaveXmlFiles = true; + var series2 = target.GetValues(siteCode, varCode, start, end); + + Assert.AreEqual(series1.Count, series2.Count); + for (var i = 0; i < series1.Count; i++) + { + var site1 = series1[i].Site; + var site2 = series2[i].Site; + var var1 = series1[i].Variable; + var var2 = series2[i].Variable; + + Assert.AreEqual(site1.Code, site2.Code); + Assert.AreEqual(site1.Name, site2.Name); + Assert.AreEqual(series1[i].ValueCount, series2[i].ValueCount); + Assert.AreEqual(var1.Code, var2.Code); + Assert.AreEqual(var1.Name, var2.Name); + } + } + catch (WebException ex) + { + if (ex.Status.HasFlag(WebExceptionStatus.ProtocolError) || + ex.Status.HasFlag(WebExceptionStatus.Timeout)) + { + Assert.Inconclusive("Unable to test GetValues() from: " + url); + } + throw; + } + } + } +} diff --git a/Source/Tests/HydroDesktop.WebServices.Tests/packages.config b/Source/Tests/HydroDesktop.WebServices.Tests/packages.config new file mode 100644 index 00000000..5d74c4ad --- /dev/null +++ b/Source/Tests/HydroDesktop.WebServices.Tests/packages.config @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/hydrodesktop.sln b/Source/hydrodesktop.sln new file mode 100644 index 00000000..537da1a2 --- /dev/null +++ b/Source/hydrodesktop.sln @@ -0,0 +1,474 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{D1F7B81F-BCAB-40AC-BAB8-1D1CD57944D9}" + ProjectSection(SolutionItems) = preProject + .nuget\NuGet.targets = .nuget\NuGet.targets + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{60696D8B-A0C3-483C-BB92-EF9724274F1D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{2B9CA5B9-9FE1-4120-9A8E-305D05FFEA40}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Plugins", "Plugins", "{7F39DEEA-2812-48F6-A324-627A97C3DA89}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Common", "Core\HydroDesktop.Common\HydroDesktop.Common.csproj", "{882C41F5-6A96-419F-9153-8D277ED91464}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Configuration", "Core\HydroDesktop.Configuration\HydroDesktop.Configuration.csproj", "{0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Data", "Core\HydroDesktop.Data\HydroDesktop.Data.csproj", "{CEB869C6-ED48-4846-9040-4E82AB58B86B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Data.ODMCVServiceClient", "Core\HydroDesktop.Data.ODMCVServiceClient\HydroDesktop.Data.ODMCVServiceClient.csproj", "{7E4B6C24-4526-4995-9BDA-410CC41C7512}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Data.Shell", "Core\HydroDesktop.Data.Shell\HydroDesktop.Data.Shell.csproj", "{BE7E6470-D691-454D-9705-2B9E8F8C2EF1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.ErrorReporting", "Core\HydroDesktop.ErrorReporting\HydroDesktop.ErrorReporting.csproj", "{42B7A22C-FD5D-4EF3-856F-E01F8DD8A82B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Help", "Core\HydroDesktop.Help\HydroDesktop.Help.csproj", "{F09E70CC-9D65-45C2-A451-D22CFB400C26}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Interfaces", "Core\HydroDesktop.Interfaces\HydroDesktop.Interfaces.csproj", "{0B9BA90B-2016-4754-915A-0AD74FD0067A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.MainApplication", "Core\HydroDesktop.MainApplication\HydroDesktop.MainApplication.csproj", "{A064E7D2-5730-4214-A29F-FDB790691E47}" + ProjectSection(ProjectDependencies) = postProject + {2FAAF21B-10DD-4430-87DC-54E981495485} = {2FAAF21B-10DD-4430-87DC-54E981495485} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.ObjectModel.Controls", "Core\HydroDesktop.ObjectModel.Controls\HydroDesktop.ObjectModel.Controls.csproj", "{58B443B0-D995-434B-B403-D5D62959D32E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.WebServices", "Core\HydroDesktop.WebServices\HydroDesktop.WebServices.csproj", "{7D649595-3CD3-4F13-A59B-5F7B8716FDFA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.ZedGraphEx", "Core\HydroDesktop.ZedGraphEx\HydroDesktop.ZedGraphEx.csproj", "{9B0A0FAC-318F-4A27-A416-3977820B3B95}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Common.Tests", "Tests\HydroDesktop.Common.Tests\HydroDesktop.Common.Tests.csproj", "{233A27C0-65BF-4AB2-A9DF-BFE7460D1B47}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Data.Tests", "Tests\HydroDesktop.Data.Tests\HydroDesktop.Data.Tests.csproj", "{8FC4515D-D5EF-405D-BD8D-E5F481583313}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.WebServices.Tests", "Tests\HydroDesktop.WebServices.Tests\HydroDesktop.WebServices.Tests.csproj", "{AAC539BD-17E4-4FC0-8A9D-294DDA49104C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.WaterML2Client", "Plugins\HydroDesktop.Plugins.WaterML2Client\HydroDesktop.Plugins.WaterML2Client.csproj", "{D32C57DC-C687-4C24-9FA9-094BD91664F0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.AttributeDataExplorer", "Plugins\HydroDesktop.Plugins.AttributeDataExplorer\HydroDesktop.Plugins.AttributeDataExplorer.csproj", "{FCAD6257-6532-44F3-87B6-FB4981A6CF42}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Plugins.CRWRAggregation", "Plugins\Plugins.CRWRAggregation\Plugins.CRWRAggregation.csproj", "{C8630D6D-65EB-447B-B7F5-82CC0D35A8B8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.DownloadExtensions", "Plugins\HydroDesktop.Plugins.DownloadExtensions\HydroDesktop.Plugins.DownloadExtensions.csproj", "{F6A64307-6AA8-4753-A507-03E746BB49E4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.SplashScreenManager", "Plugins\HydroDesktop.Plugins.SplashScreenManager\HydroDesktop.Plugins.SplashScreenManager.csproj", "{3054526B-2F17-4093-B6AC-FB00846D6A41}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.MainPlugin", "Plugins\HydroDesktop.Plugins.MainPlugin\HydroDesktop.Plugins.MainPlugin.csproj", "{2FAAF21B-10DD-4430-87DC-54E981495485}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HydroDesktop", "HydroDesktop", "{8F16592A-496B-467E-95A8-DA5840E550D3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.Search", "Plugins\HydroDesktop.Plugins.Search\HydroDesktop.Plugins.Search.csproj", "{FB01F6EE-89C0-4A64-B023-C8CC566FF803}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "HydroDesktop.Plugins.EditView", "Plugins\HydroDesktop.Plugins.EditView\HydroDesktop.Plugins.EditView.vbproj", "{1119D6E1-5337-42C6-BBDA-3658808F319C}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "HydroDesktop.Plugins.GraphView", "Plugins\HydroDesktop.Plugins.GraphView\HydroDesktop.Plugins.GraphView.vbproj", "{3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.SeriesView", "Plugins\HydroDesktop.Plugins.SeriesView\HydroDesktop.Plugins.SeriesView.csproj", "{5B5ACBB1-74AE-4F51-890D-649309AD4E9C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.SimpleLegend", "Plugins\HydroDesktop.Plugins.SimpleLegend\HydroDesktop.Plugins.SimpleLegend.csproj", "{0913BF38-CA92-462C-8B77-BA8937A989F4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Plugins.HydroModeler", "Plugins\Plugins.HydroModeler\Plugins.HydroModeler.csproj", "{D26B704D-1FC9-4040-A29D-21FB8707ECE1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.HeaderControl", "Plugins\HydroDesktop.Plugins.HeaderControl\HydroDesktop.Plugins.HeaderControl.csproj", "{4CEB19CE-54D1-420C-A817-FB544DCF1DDE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.Docking", "Plugins\HydroDesktop.Plugins.Docking\HydroDesktop.Plugins.Docking.csproj", "{28B872F6-39C6-405B-B52B-AC95289B052B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.HelpTab", "Plugins\HydroDesktop.Plugins.HelpTab\HydroDesktop.Plugins.HelpTab.csproj", "{D61FCB88-FF61-4EF4-BC5D-6C037B4B6DB0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.DataAggregation", "Plugins\HydroDesktop.Plugins.DataAggregation\HydroDesktop.Plugins.DataAggregation.csproj", "{68883359-0DB6-4938-A35F-A8514810F04A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.DataDownload", "Plugins\HydroDesktop.Plugins.DataDownload\HydroDesktop.Plugins.DataDownload.csproj", "{CBC247A5-F50E-41ED-807C-94DE7E970DB9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.DataExport", "Plugins\HydroDesktop.Plugins.DataExport\HydroDesktop.Plugins.DataExport.csproj", "{9F73BC93-7B63-4D69-993A-03A0B2D0E2B2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.DataImport", "Plugins\HydroDesktop.Plugins.DataImport\HydroDesktop.Plugins.DataImport.csproj", "{9181CDE5-AD24-473D-A524-C3775563C902}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.ExcelExtension", "Plugins\HydroDesktop.Plugins.ExcelExtension\HydroDesktop.Plugins.ExcelExtension.csproj", "{32A0B21A-24AB-4E07-90E7-82F9C04C2A9D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.EPADelineation", "Plugins\HydroDesktop.Plugins.EPADelineation\HydroDesktop.Plugins.EPADelineation.csproj", "{11DA0AB7-F2EB-4D82-B72C-F255BA92426E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.HydroR", "Plugins\HydroDesktop.Plugins.HydroR\HydroDesktop.Plugins.HydroR.csproj", "{C872275F-6717-43F1-BD8E-AF4AC077DB43}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.HydroShare", "Plugins\HydroDesktop.Plugins.HydroShare\HydroDesktop.Plugins.HydroShare.csproj", "{764FCBD2-3B42-4B77-818A-4D4115C66C1D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.TableView", "Plugins\HydroDesktop.Plugins.TableView\HydroDesktop.Plugins.TableView.csproj", "{E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HydroDesktop.Plugins.MetadataFetcher", "Plugins\HydroDesktop.Plugins.MetadataFetcher\HydroDesktop.Plugins.MetadataFetcher.csproj", "{3AEF14A0-5567-4F53-A4E6-4F1F692A1448}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Plugins.ShaleNetwork", "Plugins\Plugins.ShaleNetwork\Plugins.ShaleNetwork.csproj", "{B0526359-9A59-42FE-AE66-B0ADED8AB53B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {882C41F5-6A96-419F-9153-8D277ED91464}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {882C41F5-6A96-419F-9153-8D277ED91464}.Debug|Any CPU.Build.0 = Debug|Any CPU + {882C41F5-6A96-419F-9153-8D277ED91464}.Debug|x86.ActiveCfg = Debug|x86 + {882C41F5-6A96-419F-9153-8D277ED91464}.Debug|x86.Build.0 = Debug|x86 + {882C41F5-6A96-419F-9153-8D277ED91464}.Release|Any CPU.ActiveCfg = Release|Any CPU + {882C41F5-6A96-419F-9153-8D277ED91464}.Release|Any CPU.Build.0 = Release|Any CPU + {882C41F5-6A96-419F-9153-8D277ED91464}.Release|x86.ActiveCfg = Release|x86 + {882C41F5-6A96-419F-9153-8D277ED91464}.Release|x86.Build.0 = Release|x86 + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Debug|x86.ActiveCfg = Debug|x86 + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Debug|x86.Build.0 = Debug|x86 + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Release|Any CPU.Build.0 = Release|Any CPU + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Release|x86.ActiveCfg = Release|x86 + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB}.Release|x86.Build.0 = Release|x86 + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Debug|x86.ActiveCfg = Debug|x86 + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Debug|x86.Build.0 = Debug|x86 + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Release|Any CPU.Build.0 = Release|Any CPU + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Release|x86.ActiveCfg = Release|x86 + {CEB869C6-ED48-4846-9040-4E82AB58B86B}.Release|x86.Build.0 = Release|x86 + {7E4B6C24-4526-4995-9BDA-410CC41C7512}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E4B6C24-4526-4995-9BDA-410CC41C7512}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E4B6C24-4526-4995-9BDA-410CC41C7512}.Debug|x86.ActiveCfg = Debug|x86 + {7E4B6C24-4526-4995-9BDA-410CC41C7512}.Debug|x86.Build.0 = Debug|x86 + {7E4B6C24-4526-4995-9BDA-410CC41C7512}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E4B6C24-4526-4995-9BDA-410CC41C7512}.Release|Any CPU.Build.0 = Release|Any CPU + {7E4B6C24-4526-4995-9BDA-410CC41C7512}.Release|x86.ActiveCfg = Release|x86 + {7E4B6C24-4526-4995-9BDA-410CC41C7512}.Release|x86.Build.0 = Release|x86 + {BE7E6470-D691-454D-9705-2B9E8F8C2EF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE7E6470-D691-454D-9705-2B9E8F8C2EF1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE7E6470-D691-454D-9705-2B9E8F8C2EF1}.Debug|x86.ActiveCfg = Debug|x86 + {BE7E6470-D691-454D-9705-2B9E8F8C2EF1}.Debug|x86.Build.0 = Debug|x86 + {BE7E6470-D691-454D-9705-2B9E8F8C2EF1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE7E6470-D691-454D-9705-2B9E8F8C2EF1}.Release|Any CPU.Build.0 = Release|Any CPU + {BE7E6470-D691-454D-9705-2B9E8F8C2EF1}.Release|x86.ActiveCfg = Release|x86 + {BE7E6470-D691-454D-9705-2B9E8F8C2EF1}.Release|x86.Build.0 = Release|x86 + {42B7A22C-FD5D-4EF3-856F-E01F8DD8A82B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42B7A22C-FD5D-4EF3-856F-E01F8DD8A82B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42B7A22C-FD5D-4EF3-856F-E01F8DD8A82B}.Debug|x86.ActiveCfg = Debug|x86 + {42B7A22C-FD5D-4EF3-856F-E01F8DD8A82B}.Debug|x86.Build.0 = Debug|x86 + {42B7A22C-FD5D-4EF3-856F-E01F8DD8A82B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42B7A22C-FD5D-4EF3-856F-E01F8DD8A82B}.Release|Any CPU.Build.0 = Release|Any CPU + {42B7A22C-FD5D-4EF3-856F-E01F8DD8A82B}.Release|x86.ActiveCfg = Release|x86 + {42B7A22C-FD5D-4EF3-856F-E01F8DD8A82B}.Release|x86.Build.0 = Release|x86 + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Debug|x86.ActiveCfg = Debug|x86 + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Debug|x86.Build.0 = Debug|x86 + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Release|Any CPU.Build.0 = Release|Any CPU + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Release|x86.ActiveCfg = Release|x86 + {F09E70CC-9D65-45C2-A451-D22CFB400C26}.Release|x86.Build.0 = Release|x86 + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Debug|x86.ActiveCfg = Debug|x86 + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Debug|x86.Build.0 = Debug|x86 + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Release|Any CPU.Build.0 = Release|Any CPU + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Release|x86.ActiveCfg = Release|x86 + {0B9BA90B-2016-4754-915A-0AD74FD0067A}.Release|x86.Build.0 = Release|x86 + {A064E7D2-5730-4214-A29F-FDB790691E47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A064E7D2-5730-4214-A29F-FDB790691E47}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A064E7D2-5730-4214-A29F-FDB790691E47}.Debug|x86.ActiveCfg = Debug|x86 + {A064E7D2-5730-4214-A29F-FDB790691E47}.Debug|x86.Build.0 = Debug|x86 + {A064E7D2-5730-4214-A29F-FDB790691E47}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A064E7D2-5730-4214-A29F-FDB790691E47}.Release|Any CPU.Build.0 = Release|Any CPU + {A064E7D2-5730-4214-A29F-FDB790691E47}.Release|x86.ActiveCfg = Release|x86 + {A064E7D2-5730-4214-A29F-FDB790691E47}.Release|x86.Build.0 = Release|x86 + {58B443B0-D995-434B-B403-D5D62959D32E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {58B443B0-D995-434B-B403-D5D62959D32E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {58B443B0-D995-434B-B403-D5D62959D32E}.Debug|x86.ActiveCfg = Debug|x86 + {58B443B0-D995-434B-B403-D5D62959D32E}.Debug|x86.Build.0 = Debug|x86 + {58B443B0-D995-434B-B403-D5D62959D32E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {58B443B0-D995-434B-B403-D5D62959D32E}.Release|Any CPU.Build.0 = Release|Any CPU + {58B443B0-D995-434B-B403-D5D62959D32E}.Release|x86.ActiveCfg = Release|x86 + {58B443B0-D995-434B-B403-D5D62959D32E}.Release|x86.Build.0 = Release|x86 + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Debug|x86.ActiveCfg = Debug|x86 + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Debug|x86.Build.0 = Debug|x86 + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Release|Any CPU.Build.0 = Release|Any CPU + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Release|x86.ActiveCfg = Release|x86 + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA}.Release|x86.Build.0 = Release|x86 + {9B0A0FAC-318F-4A27-A416-3977820B3B95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B0A0FAC-318F-4A27-A416-3977820B3B95}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B0A0FAC-318F-4A27-A416-3977820B3B95}.Debug|x86.ActiveCfg = Debug|x86 + {9B0A0FAC-318F-4A27-A416-3977820B3B95}.Debug|x86.Build.0 = Debug|x86 + {9B0A0FAC-318F-4A27-A416-3977820B3B95}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B0A0FAC-318F-4A27-A416-3977820B3B95}.Release|Any CPU.Build.0 = Release|Any CPU + {9B0A0FAC-318F-4A27-A416-3977820B3B95}.Release|x86.ActiveCfg = Release|x86 + {9B0A0FAC-318F-4A27-A416-3977820B3B95}.Release|x86.Build.0 = Release|x86 + {233A27C0-65BF-4AB2-A9DF-BFE7460D1B47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {233A27C0-65BF-4AB2-A9DF-BFE7460D1B47}.Debug|Any CPU.Build.0 = Debug|Any CPU + {233A27C0-65BF-4AB2-A9DF-BFE7460D1B47}.Debug|x86.ActiveCfg = Debug|x86 + {233A27C0-65BF-4AB2-A9DF-BFE7460D1B47}.Debug|x86.Build.0 = Debug|x86 + {233A27C0-65BF-4AB2-A9DF-BFE7460D1B47}.Release|Any CPU.ActiveCfg = Release|Any CPU + {233A27C0-65BF-4AB2-A9DF-BFE7460D1B47}.Release|Any CPU.Build.0 = Release|Any CPU + {233A27C0-65BF-4AB2-A9DF-BFE7460D1B47}.Release|x86.ActiveCfg = Release|x86 + {233A27C0-65BF-4AB2-A9DF-BFE7460D1B47}.Release|x86.Build.0 = Release|x86 + {8FC4515D-D5EF-405D-BD8D-E5F481583313}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8FC4515D-D5EF-405D-BD8D-E5F481583313}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8FC4515D-D5EF-405D-BD8D-E5F481583313}.Debug|x86.ActiveCfg = Debug|x86 + {8FC4515D-D5EF-405D-BD8D-E5F481583313}.Debug|x86.Build.0 = Debug|x86 + {8FC4515D-D5EF-405D-BD8D-E5F481583313}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8FC4515D-D5EF-405D-BD8D-E5F481583313}.Release|Any CPU.Build.0 = Release|Any CPU + {8FC4515D-D5EF-405D-BD8D-E5F481583313}.Release|x86.ActiveCfg = Release|x86 + {8FC4515D-D5EF-405D-BD8D-E5F481583313}.Release|x86.Build.0 = Release|x86 + {AAC539BD-17E4-4FC0-8A9D-294DDA49104C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AAC539BD-17E4-4FC0-8A9D-294DDA49104C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AAC539BD-17E4-4FC0-8A9D-294DDA49104C}.Debug|x86.ActiveCfg = Debug|x86 + {AAC539BD-17E4-4FC0-8A9D-294DDA49104C}.Debug|x86.Build.0 = Debug|x86 + {AAC539BD-17E4-4FC0-8A9D-294DDA49104C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AAC539BD-17E4-4FC0-8A9D-294DDA49104C}.Release|Any CPU.Build.0 = Release|Any CPU + {AAC539BD-17E4-4FC0-8A9D-294DDA49104C}.Release|x86.ActiveCfg = Release|x86 + {AAC539BD-17E4-4FC0-8A9D-294DDA49104C}.Release|x86.Build.0 = Release|x86 + {D32C57DC-C687-4C24-9FA9-094BD91664F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D32C57DC-C687-4C24-9FA9-094BD91664F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D32C57DC-C687-4C24-9FA9-094BD91664F0}.Debug|x86.ActiveCfg = Debug|Any CPU + {D32C57DC-C687-4C24-9FA9-094BD91664F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D32C57DC-C687-4C24-9FA9-094BD91664F0}.Release|Any CPU.Build.0 = Release|Any CPU + {D32C57DC-C687-4C24-9FA9-094BD91664F0}.Release|x86.ActiveCfg = Release|Any CPU + {FCAD6257-6532-44F3-87B6-FB4981A6CF42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FCAD6257-6532-44F3-87B6-FB4981A6CF42}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FCAD6257-6532-44F3-87B6-FB4981A6CF42}.Debug|x86.ActiveCfg = Debug|Any CPU + {FCAD6257-6532-44F3-87B6-FB4981A6CF42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FCAD6257-6532-44F3-87B6-FB4981A6CF42}.Release|Any CPU.Build.0 = Release|Any CPU + {FCAD6257-6532-44F3-87B6-FB4981A6CF42}.Release|x86.ActiveCfg = Release|Any CPU + {C8630D6D-65EB-447B-B7F5-82CC0D35A8B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C8630D6D-65EB-447B-B7F5-82CC0D35A8B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C8630D6D-65EB-447B-B7F5-82CC0D35A8B8}.Debug|x86.ActiveCfg = Debug|Any CPU + {C8630D6D-65EB-447B-B7F5-82CC0D35A8B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C8630D6D-65EB-447B-B7F5-82CC0D35A8B8}.Release|x86.ActiveCfg = Release|Any CPU + {F6A64307-6AA8-4753-A507-03E746BB49E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6A64307-6AA8-4753-A507-03E746BB49E4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F6A64307-6AA8-4753-A507-03E746BB49E4}.Debug|x86.ActiveCfg = Debug|x86 + {F6A64307-6AA8-4753-A507-03E746BB49E4}.Debug|x86.Build.0 = Debug|x86 + {F6A64307-6AA8-4753-A507-03E746BB49E4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F6A64307-6AA8-4753-A507-03E746BB49E4}.Release|Any CPU.Build.0 = Release|Any CPU + {F6A64307-6AA8-4753-A507-03E746BB49E4}.Release|x86.ActiveCfg = Release|x86 + {F6A64307-6AA8-4753-A507-03E746BB49E4}.Release|x86.Build.0 = Release|x86 + {3054526B-2F17-4093-B6AC-FB00846D6A41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3054526B-2F17-4093-B6AC-FB00846D6A41}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3054526B-2F17-4093-B6AC-FB00846D6A41}.Debug|x86.ActiveCfg = Debug|x86 + {3054526B-2F17-4093-B6AC-FB00846D6A41}.Debug|x86.Build.0 = Debug|x86 + {3054526B-2F17-4093-B6AC-FB00846D6A41}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3054526B-2F17-4093-B6AC-FB00846D6A41}.Release|Any CPU.Build.0 = Release|Any CPU + {3054526B-2F17-4093-B6AC-FB00846D6A41}.Release|x86.ActiveCfg = Release|x86 + {3054526B-2F17-4093-B6AC-FB00846D6A41}.Release|x86.Build.0 = Release|x86 + {2FAAF21B-10DD-4430-87DC-54E981495485}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2FAAF21B-10DD-4430-87DC-54E981495485}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2FAAF21B-10DD-4430-87DC-54E981495485}.Debug|x86.ActiveCfg = Debug|x86 + {2FAAF21B-10DD-4430-87DC-54E981495485}.Debug|x86.Build.0 = Debug|x86 + {2FAAF21B-10DD-4430-87DC-54E981495485}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2FAAF21B-10DD-4430-87DC-54E981495485}.Release|Any CPU.Build.0 = Release|Any CPU + {2FAAF21B-10DD-4430-87DC-54E981495485}.Release|x86.ActiveCfg = Release|x86 + {2FAAF21B-10DD-4430-87DC-54E981495485}.Release|x86.Build.0 = Release|x86 + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Debug|x86.ActiveCfg = Debug|x86 + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Debug|x86.Build.0 = Debug|x86 + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Release|Any CPU.Build.0 = Release|Any CPU + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Release|x86.ActiveCfg = Release|x86 + {FB01F6EE-89C0-4A64-B023-C8CC566FF803}.Release|x86.Build.0 = Release|x86 + {1119D6E1-5337-42C6-BBDA-3658808F319C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1119D6E1-5337-42C6-BBDA-3658808F319C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1119D6E1-5337-42C6-BBDA-3658808F319C}.Debug|x86.ActiveCfg = Debug|x86 + {1119D6E1-5337-42C6-BBDA-3658808F319C}.Debug|x86.Build.0 = Debug|x86 + {1119D6E1-5337-42C6-BBDA-3658808F319C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1119D6E1-5337-42C6-BBDA-3658808F319C}.Release|Any CPU.Build.0 = Release|Any CPU + {1119D6E1-5337-42C6-BBDA-3658808F319C}.Release|x86.ActiveCfg = Release|x86 + {1119D6E1-5337-42C6-BBDA-3658808F319C}.Release|x86.Build.0 = Release|x86 + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Debug|x86.ActiveCfg = Debug|x86 + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Debug|x86.Build.0 = Debug|x86 + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Release|Any CPU.Build.0 = Release|Any CPU + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Release|x86.ActiveCfg = Release|x86 + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34}.Release|x86.Build.0 = Release|x86 + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Debug|x86.ActiveCfg = Debug|x86 + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Debug|x86.Build.0 = Debug|x86 + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Release|Any CPU.Build.0 = Release|Any CPU + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Release|x86.ActiveCfg = Release|x86 + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C}.Release|x86.Build.0 = Release|x86 + {0913BF38-CA92-462C-8B77-BA8937A989F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0913BF38-CA92-462C-8B77-BA8937A989F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0913BF38-CA92-462C-8B77-BA8937A989F4}.Debug|x86.ActiveCfg = Debug|x86 + {0913BF38-CA92-462C-8B77-BA8937A989F4}.Debug|x86.Build.0 = Debug|x86 + {0913BF38-CA92-462C-8B77-BA8937A989F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0913BF38-CA92-462C-8B77-BA8937A989F4}.Release|Any CPU.Build.0 = Release|Any CPU + {0913BF38-CA92-462C-8B77-BA8937A989F4}.Release|x86.ActiveCfg = Release|x86 + {0913BF38-CA92-462C-8B77-BA8937A989F4}.Release|x86.Build.0 = Release|x86 + {D26B704D-1FC9-4040-A29D-21FB8707ECE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D26B704D-1FC9-4040-A29D-21FB8707ECE1}.Debug|x86.ActiveCfg = Debug|x86 + {D26B704D-1FC9-4040-A29D-21FB8707ECE1}.Debug|x86.Build.0 = Debug|x86 + {D26B704D-1FC9-4040-A29D-21FB8707ECE1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D26B704D-1FC9-4040-A29D-21FB8707ECE1}.Release|x86.ActiveCfg = Release|x86 + {D26B704D-1FC9-4040-A29D-21FB8707ECE1}.Release|x86.Build.0 = Release|x86 + {4CEB19CE-54D1-420C-A817-FB544DCF1DDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CEB19CE-54D1-420C-A817-FB544DCF1DDE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CEB19CE-54D1-420C-A817-FB544DCF1DDE}.Debug|x86.ActiveCfg = Debug|Any CPU + {4CEB19CE-54D1-420C-A817-FB544DCF1DDE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CEB19CE-54D1-420C-A817-FB544DCF1DDE}.Release|Any CPU.Build.0 = Release|Any CPU + {4CEB19CE-54D1-420C-A817-FB544DCF1DDE}.Release|x86.ActiveCfg = Release|Any CPU + {28B872F6-39C6-405B-B52B-AC95289B052B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28B872F6-39C6-405B-B52B-AC95289B052B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28B872F6-39C6-405B-B52B-AC95289B052B}.Debug|x86.ActiveCfg = Debug|x86 + {28B872F6-39C6-405B-B52B-AC95289B052B}.Debug|x86.Build.0 = Debug|x86 + {28B872F6-39C6-405B-B52B-AC95289B052B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28B872F6-39C6-405B-B52B-AC95289B052B}.Release|Any CPU.Build.0 = Release|Any CPU + {28B872F6-39C6-405B-B52B-AC95289B052B}.Release|x86.ActiveCfg = Release|x86 + {28B872F6-39C6-405B-B52B-AC95289B052B}.Release|x86.Build.0 = Release|x86 + {D61FCB88-FF61-4EF4-BC5D-6C037B4B6DB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D61FCB88-FF61-4EF4-BC5D-6C037B4B6DB0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D61FCB88-FF61-4EF4-BC5D-6C037B4B6DB0}.Debug|x86.ActiveCfg = Debug|x86 + {D61FCB88-FF61-4EF4-BC5D-6C037B4B6DB0}.Debug|x86.Build.0 = Debug|x86 + {D61FCB88-FF61-4EF4-BC5D-6C037B4B6DB0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D61FCB88-FF61-4EF4-BC5D-6C037B4B6DB0}.Release|Any CPU.Build.0 = Release|Any CPU + {D61FCB88-FF61-4EF4-BC5D-6C037B4B6DB0}.Release|x86.ActiveCfg = Release|x86 + {D61FCB88-FF61-4EF4-BC5D-6C037B4B6DB0}.Release|x86.Build.0 = Release|x86 + {68883359-0DB6-4938-A35F-A8514810F04A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68883359-0DB6-4938-A35F-A8514810F04A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {68883359-0DB6-4938-A35F-A8514810F04A}.Debug|x86.ActiveCfg = Debug|x86 + {68883359-0DB6-4938-A35F-A8514810F04A}.Debug|x86.Build.0 = Debug|x86 + {68883359-0DB6-4938-A35F-A8514810F04A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {68883359-0DB6-4938-A35F-A8514810F04A}.Release|Any CPU.Build.0 = Release|Any CPU + {68883359-0DB6-4938-A35F-A8514810F04A}.Release|x86.ActiveCfg = Release|x86 + {68883359-0DB6-4938-A35F-A8514810F04A}.Release|x86.Build.0 = Release|x86 + {CBC247A5-F50E-41ED-807C-94DE7E970DB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CBC247A5-F50E-41ED-807C-94DE7E970DB9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CBC247A5-F50E-41ED-807C-94DE7E970DB9}.Debug|x86.ActiveCfg = Debug|x86 + {CBC247A5-F50E-41ED-807C-94DE7E970DB9}.Debug|x86.Build.0 = Debug|x86 + {CBC247A5-F50E-41ED-807C-94DE7E970DB9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CBC247A5-F50E-41ED-807C-94DE7E970DB9}.Release|Any CPU.Build.0 = Release|Any CPU + {CBC247A5-F50E-41ED-807C-94DE7E970DB9}.Release|x86.ActiveCfg = Release|x86 + {CBC247A5-F50E-41ED-807C-94DE7E970DB9}.Release|x86.Build.0 = Release|x86 + {9F73BC93-7B63-4D69-993A-03A0B2D0E2B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F73BC93-7B63-4D69-993A-03A0B2D0E2B2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F73BC93-7B63-4D69-993A-03A0B2D0E2B2}.Debug|x86.ActiveCfg = Debug|x86 + {9F73BC93-7B63-4D69-993A-03A0B2D0E2B2}.Debug|x86.Build.0 = Debug|x86 + {9F73BC93-7B63-4D69-993A-03A0B2D0E2B2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F73BC93-7B63-4D69-993A-03A0B2D0E2B2}.Release|Any CPU.Build.0 = Release|Any CPU + {9F73BC93-7B63-4D69-993A-03A0B2D0E2B2}.Release|x86.ActiveCfg = Release|x86 + {9F73BC93-7B63-4D69-993A-03A0B2D0E2B2}.Release|x86.Build.0 = Release|x86 + {9181CDE5-AD24-473D-A524-C3775563C902}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9181CDE5-AD24-473D-A524-C3775563C902}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9181CDE5-AD24-473D-A524-C3775563C902}.Debug|x86.ActiveCfg = Debug|x86 + {9181CDE5-AD24-473D-A524-C3775563C902}.Debug|x86.Build.0 = Debug|x86 + {9181CDE5-AD24-473D-A524-C3775563C902}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9181CDE5-AD24-473D-A524-C3775563C902}.Release|Any CPU.Build.0 = Release|Any CPU + {9181CDE5-AD24-473D-A524-C3775563C902}.Release|x86.ActiveCfg = Release|x86 + {9181CDE5-AD24-473D-A524-C3775563C902}.Release|x86.Build.0 = Release|x86 + {32A0B21A-24AB-4E07-90E7-82F9C04C2A9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {32A0B21A-24AB-4E07-90E7-82F9C04C2A9D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {32A0B21A-24AB-4E07-90E7-82F9C04C2A9D}.Debug|x86.ActiveCfg = Debug|x86 + {32A0B21A-24AB-4E07-90E7-82F9C04C2A9D}.Debug|x86.Build.0 = Debug|x86 + {32A0B21A-24AB-4E07-90E7-82F9C04C2A9D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {32A0B21A-24AB-4E07-90E7-82F9C04C2A9D}.Release|Any CPU.Build.0 = Release|Any CPU + {32A0B21A-24AB-4E07-90E7-82F9C04C2A9D}.Release|x86.ActiveCfg = Release|x86 + {32A0B21A-24AB-4E07-90E7-82F9C04C2A9D}.Release|x86.Build.0 = Release|x86 + {11DA0AB7-F2EB-4D82-B72C-F255BA92426E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {11DA0AB7-F2EB-4D82-B72C-F255BA92426E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {11DA0AB7-F2EB-4D82-B72C-F255BA92426E}.Debug|x86.ActiveCfg = Debug|x86 + {11DA0AB7-F2EB-4D82-B72C-F255BA92426E}.Debug|x86.Build.0 = Debug|x86 + {11DA0AB7-F2EB-4D82-B72C-F255BA92426E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {11DA0AB7-F2EB-4D82-B72C-F255BA92426E}.Release|Any CPU.Build.0 = Release|Any CPU + {11DA0AB7-F2EB-4D82-B72C-F255BA92426E}.Release|x86.ActiveCfg = Release|x86 + {11DA0AB7-F2EB-4D82-B72C-F255BA92426E}.Release|x86.Build.0 = Release|x86 + {C872275F-6717-43F1-BD8E-AF4AC077DB43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C872275F-6717-43F1-BD8E-AF4AC077DB43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C872275F-6717-43F1-BD8E-AF4AC077DB43}.Debug|x86.ActiveCfg = Debug|x86 + {C872275F-6717-43F1-BD8E-AF4AC077DB43}.Debug|x86.Build.0 = Debug|x86 + {C872275F-6717-43F1-BD8E-AF4AC077DB43}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C872275F-6717-43F1-BD8E-AF4AC077DB43}.Release|Any CPU.Build.0 = Release|Any CPU + {C872275F-6717-43F1-BD8E-AF4AC077DB43}.Release|x86.ActiveCfg = Release|x86 + {C872275F-6717-43F1-BD8E-AF4AC077DB43}.Release|x86.Build.0 = Release|x86 + {764FCBD2-3B42-4B77-818A-4D4115C66C1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {764FCBD2-3B42-4B77-818A-4D4115C66C1D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {764FCBD2-3B42-4B77-818A-4D4115C66C1D}.Debug|x86.ActiveCfg = Debug|Any CPU + {764FCBD2-3B42-4B77-818A-4D4115C66C1D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {764FCBD2-3B42-4B77-818A-4D4115C66C1D}.Release|x86.ActiveCfg = Release|Any CPU + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Debug|x86.ActiveCfg = Debug|x86 + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Debug|x86.Build.0 = Debug|x86 + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Release|Any CPU.Build.0 = Release|Any CPU + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Release|x86.ActiveCfg = Release|x86 + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4}.Release|x86.Build.0 = Release|x86 + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Debug|x86.ActiveCfg = Debug|x86 + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Debug|x86.Build.0 = Debug|x86 + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Release|Any CPU.Build.0 = Release|Any CPU + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Release|x86.ActiveCfg = Release|x86 + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448}.Release|x86.Build.0 = Release|x86 + {B0526359-9A59-42FE-AE66-B0ADED8AB53B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0526359-9A59-42FE-AE66-B0ADED8AB53B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B0526359-9A59-42FE-AE66-B0ADED8AB53B}.Debug|x86.ActiveCfg = Debug|x86 + {B0526359-9A59-42FE-AE66-B0ADED8AB53B}.Debug|x86.Build.0 = Debug|x86 + {B0526359-9A59-42FE-AE66-B0ADED8AB53B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B0526359-9A59-42FE-AE66-B0ADED8AB53B}.Release|x86.ActiveCfg = Release|x86 + {B0526359-9A59-42FE-AE66-B0ADED8AB53B}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {233A27C0-65BF-4AB2-A9DF-BFE7460D1B47} = {60696D8B-A0C3-483C-BB92-EF9724274F1D} + {8FC4515D-D5EF-405D-BD8D-E5F481583313} = {60696D8B-A0C3-483C-BB92-EF9724274F1D} + {AAC539BD-17E4-4FC0-8A9D-294DDA49104C} = {60696D8B-A0C3-483C-BB92-EF9724274F1D} + {882C41F5-6A96-419F-9153-8D277ED91464} = {2B9CA5B9-9FE1-4120-9A8E-305D05FFEA40} + {0CCD3F11-0F48-427F-BC98-9DD6D875F4BB} = {2B9CA5B9-9FE1-4120-9A8E-305D05FFEA40} + {CEB869C6-ED48-4846-9040-4E82AB58B86B} = {2B9CA5B9-9FE1-4120-9A8E-305D05FFEA40} + {7E4B6C24-4526-4995-9BDA-410CC41C7512} = {2B9CA5B9-9FE1-4120-9A8E-305D05FFEA40} + {BE7E6470-D691-454D-9705-2B9E8F8C2EF1} = {2B9CA5B9-9FE1-4120-9A8E-305D05FFEA40} + {42B7A22C-FD5D-4EF3-856F-E01F8DD8A82B} = {2B9CA5B9-9FE1-4120-9A8E-305D05FFEA40} + {F09E70CC-9D65-45C2-A451-D22CFB400C26} = {2B9CA5B9-9FE1-4120-9A8E-305D05FFEA40} + {0B9BA90B-2016-4754-915A-0AD74FD0067A} = {2B9CA5B9-9FE1-4120-9A8E-305D05FFEA40} + {A064E7D2-5730-4214-A29F-FDB790691E47} = {2B9CA5B9-9FE1-4120-9A8E-305D05FFEA40} + {58B443B0-D995-434B-B403-D5D62959D32E} = {2B9CA5B9-9FE1-4120-9A8E-305D05FFEA40} + {7D649595-3CD3-4F13-A59B-5F7B8716FDFA} = {2B9CA5B9-9FE1-4120-9A8E-305D05FFEA40} + {9B0A0FAC-318F-4A27-A416-3977820B3B95} = {2B9CA5B9-9FE1-4120-9A8E-305D05FFEA40} + {8F16592A-496B-467E-95A8-DA5840E550D3} = {7F39DEEA-2812-48F6-A324-627A97C3DA89} + {C8630D6D-65EB-447B-B7F5-82CC0D35A8B8} = {7F39DEEA-2812-48F6-A324-627A97C3DA89} + {D26B704D-1FC9-4040-A29D-21FB8707ECE1} = {7F39DEEA-2812-48F6-A324-627A97C3DA89} + {B0526359-9A59-42FE-AE66-B0ADED8AB53B} = {7F39DEEA-2812-48F6-A324-627A97C3DA89} + {FCAD6257-6532-44F3-87B6-FB4981A6CF42} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {F6A64307-6AA8-4753-A507-03E746BB49E4} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {3054526B-2F17-4093-B6AC-FB00846D6A41} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {2FAAF21B-10DD-4430-87DC-54E981495485} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {D32C57DC-C687-4C24-9FA9-094BD91664F0} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {FB01F6EE-89C0-4A64-B023-C8CC566FF803} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {1119D6E1-5337-42C6-BBDA-3658808F319C} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {3DA5E14F-CECF-4C4E-89F5-A233A21BFF34} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {5B5ACBB1-74AE-4F51-890D-649309AD4E9C} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {0913BF38-CA92-462C-8B77-BA8937A989F4} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {4CEB19CE-54D1-420C-A817-FB544DCF1DDE} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {28B872F6-39C6-405B-B52B-AC95289B052B} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {D61FCB88-FF61-4EF4-BC5D-6C037B4B6DB0} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {68883359-0DB6-4938-A35F-A8514810F04A} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {CBC247A5-F50E-41ED-807C-94DE7E970DB9} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {9F73BC93-7B63-4D69-993A-03A0B2D0E2B2} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {9181CDE5-AD24-473D-A524-C3775563C902} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {32A0B21A-24AB-4E07-90E7-82F9C04C2A9D} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {11DA0AB7-F2EB-4D82-B72C-F255BA92426E} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {C872275F-6717-43F1-BD8E-AF4AC077DB43} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {764FCBD2-3B42-4B77-818A-4D4115C66C1D} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {E15F7F49-A879-4FE1-AF78-2EE7D2C9B7B4} = {8F16592A-496B-467E-95A8-DA5840E550D3} + {3AEF14A0-5567-4F53-A4E6-4F1F692A1448} = {8F16592A-496B-467E-95A8-DA5840E550D3} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.2\lib\NET35 + EndGlobalSection +EndGlobal diff --git a/SupportFiles/Mac Bundle Files/HydroDesktop.icns b/SupportFiles/Mac Bundle Files/HydroDesktop.icns new file mode 100644 index 00000000..40acd152 Binary files /dev/null and b/SupportFiles/Mac Bundle Files/HydroDesktop.icns differ diff --git a/SupportFiles/Mac Bundle Files/HydroDesktopScript b/SupportFiles/Mac Bundle Files/HydroDesktopScript new file mode 100644 index 00000000..bfd6fb8e --- /dev/null +++ b/SupportFiles/Mac Bundle Files/HydroDesktopScript @@ -0,0 +1,58 @@ +#!/bin/sh + +#get the bundle's MacOS directory full path +DIR=$(cd "$(dirname "$0")"; pwd) + +#change these values to match your app +EXE_PATH="$DIR/HydroDesktop_1_6_dev.exe" +PROCESS_NAME=HydroDesktop +APPNAME="HydroDesktop" + +#set up environment +MONO_FRAMEWORK_PATH=/Library/Frameworks/Mono.framework/Versions/Current +export DYLD_FALLBACK_LIBRARY_PATH="$DIR:$MONO_FRAMEWORK_PATH/lib:/lib:/usr/lib" +export PATH="$MONO_FRAMEWORK_PATH/bin:$PATH" + +#mono version check +REQUIRED_MAJOR=3 +REQUIRED_MINOR=0 + +VERSION_TITLE="Cannot launch $APPNAME" +VERSION_MSG="$APPNAME requires the Mono Framework version $REQUIRED_MAJOR.$REQUIRED_MINOR or later." +DOWNLOAD_URL="http://www.go-mono.com/mono-downloads/download.html" + +MONO_VERSION="$(mono --version | grep 'Mono JIT compiler version ' | cut -f5 -d\ )" +MONO_VERSION_MAJOR="$(echo $MONO_VERSION | cut -f1 -d.)" +MONO_VERSION_MINOR="$(echo $MONO_VERSION | cut -f2 -d.)" +if [ -z "$MONO_VERSION" ] \ + || [ $MONO_VERSION_MAJOR -lt $REQUIRED_MAJOR ] \ + || [ $MONO_VERSION_MAJOR -eq $REQUIRED_MAJOR -a $MONO_VERSION_MINOR -lt $REQUIRED_MINOR ] +then + osascript \ + -e "set question to display dialog \"$VERSION_MSG\" with title \"$VERSION_TITLE\" buttons {\"Cancel\", \"Download...\"} default button 2" \ + -e "if button returned of question is equal to \"Download...\" then open location \"$DOWNLOAD_URL\"" + echo "$VERSION_TITLE" + echo "$VERSION_MSG" + exit 1 +fi + +#get an exec command that will work on the current OS version +OSX_VERSION=$(uname -r | cut -f1 -d.) +if [ $OSX_VERSION -lt 9 ]; then # If OSX version is 10.4 + MONO_EXEC="exec mono" +else + MONO_EXEC="exec -a \"$PROCESS_NAME\" mono" +fi + +#create log file directory if it doesn't exist +LOG_FILE="$HOME/Library/Logs/$APPNAME/$APPNAME.log" +mkdir -p "`dirname \"$LOG_FILE\"`" + +echo "$MONO_EXEC $MONO_OPTIONS $EXE_PATH" + +MONO_LOG_LEVEL=debug MONO_LOG_MASK=dll mono "$EXE_PATH" +#run app using mono +#$MONO_EXEC $MONO_OPTIONS "$EXE_PATH" $* 2>&1 1> "$LOG_FILE" + +echo "Press any key to exit..." +read \ No newline at end of file diff --git a/SupportFiles/Mac Bundle Files/HydroDestkopBundleMaker.bat b/SupportFiles/Mac Bundle Files/HydroDestkopBundleMaker.bat new file mode 100644 index 00000000..e5dd18a5 --- /dev/null +++ b/SupportFiles/Mac Bundle Files/HydroDestkopBundleMaker.bat @@ -0,0 +1,61 @@ +:: This batch file copies the necessary files to create a Mac .app bundle. +:: Use the resulting folder (HydroDesktop.app) on Mac OS as an application. +:: The bundle can be used to create a .pkg with Apple's PackageMaker.app. + +::You can change the SOURCE and DESTINATION if necessary, otherwise leave as is. + +SET SOURCE=..\.. +SET DESTINATION=..\.. + +xcopy "%SOURCE%\Binaries\*.dll" /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\" +xcopy "%SOURCE%\Binaries\*.exe" /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\" +xcopy "%SOURCE%\Binaries\*.png" /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\" + +xcopy "%SOURCE%\Binaries\Mono Extensions\*.dll" /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Application Extensions\" + +xcopy "%SOURCE%\Binaries\Application Extensions\*.dll" /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Application Extensions\" + +xcopy "%SOURCE%\Binaries\Support\Mono\*.*" /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Support\Mono\" + +xcopy "%SOURCE%\Binaries\Plugins\*.dll" /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\DataAggregation\*.dll" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\DataAggregation\*.dll.config" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\DataDownload\*.dll" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\DataDownload\*.dll.config" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\EPADelineation\*.dll" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\EPADelineation\*.dll.config" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\ExcelExtension\*.dll" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\ExportToCSV\*.dll" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\ExportToCSV\*.dll.config" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\GraphView\GraphView.dll" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\EditView\EditView.dll" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\HelpTab\*.dll" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\HelpTab\*.dll.config" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\ImportFromWaterML\*.dll" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\MetadataFetcher\*.dll" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\Search3\*.dll" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\Search3\*.dll.config" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" +xcopy "%SOURCE%\Binaries\Plugins\Search3\Resources\*" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\Resources\" +xcopy "%SOURCE%\Binaries\Plugins\TableView\*.dll" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\Plugins\" + +GOTO ZedGraphFiles +xcopy "%SOURCE%\Binaries\de\*" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\de\" +xcopy "%SOURCE%\Binaries\es\*" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\es\" +xcopy "%SOURCE%\Binaries\fr\*" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\fr\" +xcopy "%SOURCE%\Binaries\hu\*" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\hu\" +xcopy "%SOURCE%\Binaries\it\*" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\it\" +xcopy "%SOURCE%\Binaries\ja\*" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\ja\" +xcopy "%SOURCE%\Binaries\pt\*" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\pt\" +xcopy "%SOURCE%\Binaries\ru\*" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\ru\" +xcopy "%SOURCE%\Binaries\sk\*" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\sk\" +xcopy "%SOURCE%\Binaries\sv\*" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\sv\" +xcopy "%SOURCE%\Binaries\tr\*" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\tr\" +xcopy "%SOURCE%\Binaries\zh-cn\*" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\zh-cn\" +xcopy "%SOURCE%\Binaries\zh-tw\*" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\zh-tw\" +:ZedGraphFiles + +xcopy "%SOURCE%\SupportFiles\Mac Bundle Files\Info.plist" /s /y "%DESTINATION%\HydroDesktop.app\Contents\" +xcopy "%SOURCE%\SupportFiles\Mac Bundle Files\HydroDesktopScript" /s /y "%DESTINATION%\HydroDesktop.app\Contents\MacOS\" +xcopy "%SOURCE%\SupportFiles\Mac Bundle Files\HydroDesktop.icns" /s /y "%DESTINATION%\HydroDesktop.app\Contents\Resources\" + +pause \ No newline at end of file diff --git a/SupportFiles/Mac Bundle Files/Info.plist b/SupportFiles/Mac Bundle Files/Info.plist new file mode 100644 index 00000000..d6c46c2a --- /dev/null +++ b/SupportFiles/Mac Bundle Files/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + HydroDesktopScript + CFBundleIconFile + HydroDesktop.icns + CFBundleIdentifier + edu.byu.hydrodesktop + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + HydroDesktop + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + xmmd + CFBundleVersion + 1.0 + NSAppleScriptEnabled + NO + + \ No newline at end of file diff --git a/SupportFiles/upload-plugin-hydrodesktop.bat b/SupportFiles/upload-plugin-hydrodesktop.bat new file mode 100644 index 00000000..d590696c --- /dev/null +++ b/SupportFiles/upload-plugin-hydrodesktop.bat @@ -0,0 +1,28 @@ +SET build.number=1.5.11 +CD E:\dev\HydroDesktop\source\ + +@echo Deleting all packages since we are going to upload all of the packages we find... +del *.nupkg + +CD DataAggregation\ +REN packages.config tempfile +CD .. + +.nuget\nuget.exe pack "DataAggregation\DataAggregation.csproj" -Version %build.number% -Build -Properties Configuration=Release + +CD DataAggregation\ +REN tempfile packages.config +CD .. + +@echo +@echo +@echo +@echo Ready to publish to nuget.org +@echo +@echo +@echo +pause + + + +forfiles /m DataAggregation.*.nupkg /c "cmd /c .nuget\nuget.exe push @FILE 546086eb-759c-4006-8209-787d4a4f448d -Source http://www.myget.org/F/hydrodesktop/api/v2/package \ No newline at end of file